commit 5a12e7c134274dba706667107d10d231517d3e05 Author: Patrick J Volkerding Date: Wed Aug 26 10:00:38 2009 -0500 Slackware 13.0 Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the credits. The ISOs are off to the replicator. This time it will be a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We're taking pre-orders now at store.slackware.com. Please consider picking up a copy to help support the project. Once again, thanks to the entire Slackware community for all the help testing and fixing things and offering suggestions during this development cycle. As always, have fun and enjoy! -P. diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..b1e223c1a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +LATEST_ADDITION_TO_CURRENT diff --git a/ANNOUNCE.13_0 b/ANNOUNCE.13_0 new file mode 100644 index 000000000..464591329 --- /dev/null +++ b/ANNOUNCE.13_0 @@ -0,0 +1,214 @@ + +Yes it's that time again! After many months of development and careful +testing, we are proud to announce the release of Slackware version 13.0! + +We are sure you'll agree that the improvements made in this release more +than warrant the major version bump up from the 12.x series. We've done our +best to bring the latest technology to Slackware while still maintaining the +stability and security that you have come to expect. Slackware is well known +for it's simplicity and the fact that we try to bring software to you in the +condition that the authors intended. + +Probably the biggest change is the addition of an official 64-bit port. +While the 32-bit (x86) version continues to be developed, this release brings +to you a complete port to 64-bit (x86_64). We know that many of you have +been waiting eagerly for this, and once you try it you'll see it was well +worth the wait. + +Slackware 13.0 brings many updates and enhancements, among which you'll find +two of the most advanced desktop environments available today: Xfce 4.6.1, +a fast and lightweight but visually appealing and easy to use desktop +environment, and KDE 4.2.4, a recent stable release of the new 4.2.x series +of the award-winning K Desktop Environment. We continue to make use of HAL +(Hardware Abstraction Layer) which allows the system administrator to grant +use of various hardware devices according to users' group membership so that +they will be able to use items such as USB flash sticks, USB cameras that +appear like USB storage, portable hard drives, CD and DVD media, MP3 players, +and more, all without requiring sudo, the mount or umount command. Just plug +and play. Properly set up, Slackware's desktop should be suitable for any +level of Linux experience. + +Slackware uses the 2.6.29.6 kernel bringing you advanced performance +features such as journaling filesystems, SCSI and ATA RAID volume support, +SATA support, Software RAID, LVM (the Logical Volume Manager), and +encrypted filesystems. Kernel support for X DRI (the Direct Rendering +Interface) brings high-speed hardware accelerated 3D graphics to Linux. + +There are two kinds of kernels in Slackware -- the huge kernels, which +contain support for just about every driver in the Linux kernel. These are +primarily intended to be used for installation, but there's no real reason +that you couldn't continue to run them after you have installed. The +other type of kernel is the generic kernel, in which nearly every driver +is built as a module. To use a generic kernel you'll need to build an +initrd to load your filesystem module and possibly your drive controller +or other drivers needed at boot time, configure LILO to load the initrd at +boot, and reinstall LILO. See the docs in /boot after installing for more +information. Slackware's Linux kernels come in both SMP and non-SMP types +now. The SMP kernel supports multiple processors, multi-core CPUs, +HyperThreading, and about every other optimization available. In our own +testing this kernel has proven to be fast, stable, and reliable. We +recommend using the SMP kernel even on single processor machines if it +will run on them. + +From the beginning, Slackware has offered a stable and secure Linux +distribution for UNIX veterans as well as an easy-to-use system for +beginners. Slackware includes everything you'll need to run a powerful +server or workstation. Each Slackware package follows the setup and +installation instructions from its author(s) as closely as possible, +offering you the most stable and easily expandable setup. + +Here are some of the advanced features of Slackware 13.0: + +- Runs the 2.6.29.6 version of the Linux kernel from ftp.kernel.org. + Also included is a kernel patched with Speakup to support speech + synthesizers providing access to Linux for the visually impaired + community. The 2.6.x kernel series has matured into a stable + kernel, and provides reliable performance for your desktop or + your production server. + +- System binaries are linked with the GNU C Library, version 2.9. + This version of glibc also has excellent compatibility with + existing binaries. + +- X11 based on the X.Org Foundation's modular X Window System. + There's been much activity in the X development world, and the + improvements in terms of performance and hardware support are + too numerous to mention them all here. + +- Installs gcc-4.3.3 as the default C, C++, Objective-C, + Fortran-77/95, and Ada 95 compiler. + +- Support for fully encrypted network connections with OpenSSL, + OpenSSH, OpenVPN, and GnuPG. + +- Apache (httpd) 2.2.13 web server with Dynamic Shared Object + support, SSL, and PHP 5.2.10. + +- PCMCIA, CardBus, USB, IEE1394 (FireWire) and ACPI support. This + makes Slackware a great operating system for your laptop. + +- The udev dynamic device management system for Linux 2.6.x. + This locates and configures most hardware automatically as it + is added (or removed) from the system, and creates the access + nodes in /dev. It also loads the kernel modules required by + sound cards and other hardware at boot time. + +- New development tools, including Perl 5.10.0, Python 2.6.2, + Ruby 1.8.7-p174, Subversion 1.6.4, git-1.6.4, mercurial-1.2.1, + graphical tools like Qt designer and KDevelop, and much more. + +- Updated versions of the Slackware package management tools make it + easy to add, remove, upgrade, and make your own Slackware packages. + Package tracking makes it easy to upgrade from Slackware 12.2 to + Slackware 13.0 (see CHANGES_AND_HINTS.TXT). The slackpkg tool can + also help update from an older version of Slackware to a newer one, + and keep your Slackware system up to date. In addition, the + slacktrack utility (in extra/) will help you build and maintain + your own packages. + +- Web browsers galore! Includes KDE's Konqueror 4.2.4, + SeaMonkey 1.1.17 (this is the replacement for the Mozilla + Suite), and the immensely popular Firefox 3.5.2, as well as + the Thunderbird 2.0.0.23 email and news client with advanced + junk mail filtering. + +- The complete K Desktop Environment (KDE) version 4.2.4, including + the KOffice productivity suite, networking tools, GUI development + with KDevelop, multimedia tools (including the amazing Amarok + music player and K3B disc burning software), the Konqueror web + browser and file manager, dozens of games and utilities, + international language support, and more. + +- A collection of GTK+ based applications including pidgin-2.5.9, + gimp-2.6.6, gkrellm-2.3.2, gxine-0.5.903, xchat-2.8.6, xsane-0.996, + and pan-0.133. + +- A repository of extra software packages compiled and ready to run. + This includes the Java(TM) 2 Software Development Kit Standard + Edition, an MPlayer browser plugin, alternate Intel video drivers + for X, and more (see the /extra directory). + +- Many more improved and upgraded packages than we can list here. For + a complete list of core packages in Slackware 13.0, see this file: + + ftp://ftp.slackware.com/pub/slackware/slackware-13.0/PACKAGES.TXT + + +Downloading Slackware 13.0: +--------------------------- + +The full version of Slackware Linux 13.0 is available for download from +the central Slackware FTP sites hosted by our friends at www.cwo.com +and osuosl.org: + + ftp://slackware.osuosl.org/pub/slackware/slackware-13.0/ + ftp://ftp.slackware.com/pub/slackware/slackware-13.0/ + +If the sites are busy, see the list of official mirror sites here: + + http://slackware.com/getslack/ + +We will be setting up BitTorrent downloads for the official ISO images. +Stay tuned to http://slackware.com for the latest updates. + +Instructions for burning the Slackware tree onto install discs may be +found in the isolinux directory. + + +Purchasing Slackware on CD-ROM or DVD: +-------------------------------------- + +Or, please consider purchasing the Slackware Linux 13.0 six CD-ROM set +or deluxe dual-sided DVD release directly from Slackware Linux, and +you'll be helping to support the continued development of Slackware Linux! + +The DVD release has the 32-bit x86 Slackware 13.0 release on one side, +and the 64-bit x86_64 Slackware 13.0 release on the other. Both sides +are bootable for easy installation, and includes everything from both +releases of Slackware 13.0, including the complete source code trees. + +The 6 CD-ROM release of Slackware 13.0 is the 32-bit x86 edition. It +includes a bootable first CD-ROM for easy installation, and everything +from the Slackware 13.0 32-bit x86 release is contained on 6 discs +labeled for easy reference. + +The Slackware 13.0 x86 6 CD-ROM set is $49.95 plus shipping, or choose +the Slackware 13.0 x86/x86_64 dual-sided DVD (also $49.95 plus shipping). + +Slackware Linux is also available by subscription. When we release a new +version of Slackware (which is normally once or twice a year) we ship it +to you and bill your credit card for a reduced subscription price +($32.99 for the CD-ROM set, or $39.95 for the DVD) plus shipping. + +For shipping options, see the Slackware store website. Before ordering +express shipping, you may wish to check that we have the product in stock. +We make releases to the net at the same time as disc production begins, +so there is a lag between the online release and the shipping of media. +But, even if you download now you can still buy the official media later. +You'll feel good, be helping the project, and have a great decorative +item perfect for any computer room shelf. :-) + + +Ordering Information: +--------------------- + + You can order online at the Slackware Linux store: + http://store.slackware.com + + Other Slackware items like t-shirts, caps, pins, and stickers + can also be found here. These will help you find and identify + yourself to your fellow Slackware users. :-) + + Order inquiries (including questions about becoming a Slackware + reseller) may be directed to this address: + info@slackware.com + + +Have fun! :^) I hope you find Slackware to be useful, and thanks +very much for your support of this project over the years. + +--- +Patrick J. Volkerding + +Visit us on the web at: http://slackware.com + diff --git a/BOOTING.TXT b/BOOTING.TXT new file mode 100644 index 000000000..476569086 --- /dev/null +++ b/BOOTING.TXT @@ -0,0 +1,546 @@ +Sun Oct 1 23:00:46 CDT 2006 + +NOTE: If you are interested in booting your system using PXE, a USB stick, +or a mini-ISO (which may then be used to start network (NFS) installations) +see Eric Hameleers' helpful page at this location: + + http://slackware.com:/~alien + +Since this is the 'BOOTING' file, pointing out the alternate installers +would be the on-topic thing to do here, but I'll also note that everything +else there is also pretty good, except that part where Alien BOB tries to +get people to gang up on me and get all of this stuff included. Shame, +shame! ;-) I'm trying to cobble together an operating system here, not +bundle every application on the planet! We're already at six ISO images, +and DVD5 is looking small! OK, just kidding. (mostly ;-) Eric's done a +massive amount of work on Slackware gratis, and we should all thank him +for the more complete and pleasant Slackware we now enjoy. :-) + +All that said, most of this file after this is about 10 years old and I'm +not sure how much (if any) of it still pertains to modern Linux. In most +cases Slackware on a DVD (or the first disc) should just boot automatically +from the primary DVD drive. Or, if you're booting from CD the first one +is the bootable one. Sometimes you need to go into the machine's BIOS and +make some adjustments to make the system boot from optical media (be +careful in there!) + +This file contains some helpful (hopefully! :^) information on what to do if +your Linux system won't boot properly. + +Section 1: What to do if after the installation process, the machine will + not boot. + +This problem is not uncommon. The reason for it is that the kernel your system +tries to boot after installation is not the same as the one used to install (the +bootdisk kernel). Typically the kernel that is installed to your hard drive +will contain more device drivers, and sometimes one of them won't like some +piece of hardware in your machine. + +There are a couple of approaches that can be used to deal with this situation. +Perhaps the simplest solution is to open up the machine and pull any cards that +aren't crucial, and then try to reboot the system. If this is successful, then +follow the instructions in the FAQ.TXT for building and installing a kernel +that is customized for your hardware. + +Another approach (that doesn't involve opening the machine) is to try to use the +bootdisk you installed with to kickstart the system. To do this, boot the disk +and then use the "mount" option to have the kernel boot the root partition on +your hard drive rather that a root/install disk. Let's assume your root Linux +partition is on /dev/hda2. To boot the system, you'd use this command at the +Syslinux "boot:" prompt on the bootdisk: + + mount noinitrd ro root=/dev/hda2 + +If you installed using the Slackware CDROM, you should boot from this CDROM +again and then load the kernel you used while installing, with additional +parameters to make it mount your hard drive's root partition. Let's assume +your root Linux partition is on /dev/hda2 and you used the 'sata.i' kernel. +To boot the system, you'd enter this command at the "boot: " prompt: + + sata.i root=/dev/hda2 noinitrd ro + + +Section 2: Trying to get the kernel to detect hardware. + +The first thing you should do is make sure you're using a kernel that supports +the hardware you're trying to use. If it doesn't, you've got a few options for +how to add the support. You can compile a custom kernel of your own, or you +can look for an appropriate pre-compiled kernel in the /kernels directory. +Another approach is to try loading a kernel module to add the extra support you +need. This is usually the fastest and easiest way to get a device working, so +you might want to try it first. Use 'vi' (or some other editor) to edit the +file /etc/rc.d/rc.modules. Look for a module that supports the hardware you +want to get working, remove the '#' from the beginning of the line, and fill in +any extra parameters that the module might require. + +If you install a new kernel, be sure to reinstall LILO afterwards (if you use +it). For more details on installing a kernel, see the FAQ.TXT. + +There are a number of extra parameters that can be used on the LILO bootdisk +prompt, with Loadlin, or in your /etc/lilo.conf. These flags help tell the +kernel which I/O port, IRQ, and so forth, that a particular piece of hardware +uses, so that if the kernel doesn't see a peripheral while autoscanning you +should be able to force detection by telling the kernel exactly where to look. + +To use an extra flag with a bootdisk, put the flags after the standard command +used to boot the system. So, to boot /dev/hda2 and try to force detection of +a Mitsumi CD-ROM drive with Mitsumi interface card, you might use something +like this at the LILO prompt: + +mount root=/dev/hda2 mcd=0x300,11 + +To use a parameter with Loadlin, just add it to the end of the boot command +in a similar fashion: + +loadlin vmlinuz root=/dev/hda2 mcd=0x300,11 + +Or, you can enclose the parameters in an append="" and add the line to your +/etc/lilo.conf. Don't forget to reinstall lilo after editing the +/etc/lilo.conf. To do this, just type "lilo" as root. + +Here's how the line you'd add to your /etc/lilo.conf looks: + +append="mcd=0x300,11" + +Here is a list of known kernel parameters from the Loadlin documentation: + + LOADLIN 1.5 ((C) 1994 lermen@elserv.ffm.fgan.de) + and + Linux version: 0.99.14, 0.99.15, 1.0, 1.1.47 + +This is a list of command line parameters recognized and interpreted by: +======================================================================== + + 1. LOADLIN + ramdisk=size (size in Kbytes) + or + ramdisk=size,no (same as above, but disk change prompt disabled) + e.g.: ramdisk=1440,no + vga=mode + + 2. The Linux kernel + mem=number (for > 0.99.15, number = end of physical memory in bytes) + root=device + ro + rw + no387 + debug sets console_loglevel = 10 + no-hlt disables check of HLT instruction at startup + + 3. init + single + auto + ro,rw,no387 (forwarded from the kernel) + + 4. Some drivers + reserve=port1,num1,...,port5,num5 #reserves 80x86 ioports + ether=irq,base_addr,mem_start,mem_end,dev_name + hd=cyl,head,sect # for 2 drives you need this twice + # first relates to drive 0 + bmouse=irq + max_scsi_luns=n # (n should be between 1 and 8) + st0x=base_address,irq # SEAGATE controller ST01/ST02 + tmc8xx=base_address,irq # Future Domain TMC-885,TMC-950 + t128=address,irq # Trantor T128/T128F/T228 + ncr5380=port,irq,dma # Generic NCR5380 driver + aha152x=portbase,irq,scsiid,reconnect # Adaptec AHA-152x driver + cdu31a=portbase,irq,PAS # Sony CDU-31a. Third parameter + # should be "PAS" if on a Pro-Audio Spectrum, or + # nothing if on something else. + xd=type,irq,iobase,dma + mcd=port,irq + sound=0x0TTPPPID, .. + sbpcd=sbport,SoundBlaster + sbpcd=LMport,LaserMate + sbpcd=SpeaFXport,SPEA + + + 5. Environment + All parameters of format name=xxxx which are not recognized by + the kernel or a driver are put onto the environment. + + LOADLIN itself always puts BOOT_IMAGE=imagefile onto the environ- + ment. The user may put additional values onto the environment in + order to allow /etc/rc to behave differently for a given condition. + + +============================================================================== + +Following are detailed descriptions: + + +Parameters recognized by LOADLIN: +================================= + + root=device + ----------- + device may be a symbolic device name such as "/dev/hda2" + or the numeric device number (hex) + (highbyte=major, lowbyte=minor) + recognized symbolic devices (with their partitions) are: + "hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde", + "fd", "xda", "xdb" + + There is a problem: + + Linux interprets the number following "/dev/hda" as a HEX number, + The device names in /dev of the Slackware distribution, however, + are numbered /dev/hda1 .. hda9 .. hda10 .. hda16, + instead of /dev/hda1 .. hda9 .. hdaa .. hdaf as Linus would have done. + + So, starting with version 1.3 of LOADLIN, I interpret the root device + myself and pass the device numerically in the boot sector. + My naming convention is a compromise which I hope will result in + fewer irritations: + + If the number following "/dev/hda, hdb, sda ..." + starts with 0, 0x or a..f, it is interpreted as a HEX number. + If it starts with 1..9 it is interpreted as a decimal number. + If none is appropriate, the string is passed to the command line. + (some later kernel versions may have other device names). + + Examples: + root=302 + root=0x201 + root=/dev/hda2 + root=/dev/sdaa same as root=/dev/sda10 or /dev/sda0xa + + Ramdisk size option (used with 1.2.x kernels) + + ramdisk=size + ------------ + size number of Kbytes for the RAMDISK device. + The image for the ramdisk is loaded by the + kernel at startup from a floppy drive, if + root=/dev/fdx is also given. + After loading the image, the kernel then makes + the ramdisk the root device (NOT the floppy). + In addition to this, LOADLIN prompts for inserting + the ramdisk image into the floppy drive if it no + longer needs the drive (i.e. after loading the kernel). + + Ramdisk options for new (1.3.x and 2.0.x) kernels + + load_ramdisk=1 + -------------- + This option tells the kernel that you wish to load + a ramdisk. With new Linux kernels, a size does not + need to be specified -- the kernel will dynamically + allocate the needed memory as the kernel is loaded. + + prompt_ramdisk=1 + ---------------- + + This option tells the kernel that you wish to be prompted + to insert the ramdisk before the kernel tries to load it. + Useful when loading the ramdisk from floppy disk. + + vga=mode + -------- + mode -3 the user is asked to specify the VGA mode + ask equal to -3 + -2 80x50 extended VGA mode + extended equal to -2 + -1 80x25 normal mode + normal equal to -1 + 0 as if "0" was entered at the boot prompt + . + . + n as if the number "n" was entered at the boot prompt + + ro + -- + "ro" forces the root device to be mounted read-only (Not for UMSDOS!) + + rw + -- + "rw" forces the root device to be mounted read/write. + +------------------------------------------------------------------------------ + +Parameters recognized only by the kernel: +========================================= + + mem=number + ---------- + number End of physical RAM, this is recognized by kernels + of 0.99.15 and higher and is useful if the exact + installed RAM size cannot be determined automatically. + + root=device + ----------- + device May be a symbolic device name such as "/dev/hda2" + or the numeric device number (highbyte=major, lowbyte=minor) + Recognized symbolic devices (with their partitions) are: + "hda", "hdb", "sda", "sdb", "sdc", "sdd", "sde", + "fd", "xda", "xdb" + But NOTE: old kernels < 1.1.47 have xda=0xC00, xdb=0xC40 + newer kernels have xda=0xD00, xdb=0xD40 + example: + root=302 + root=/dev/hda2 + +!! NOTE: Older kernels ( below Linux 1.0.5 ) have a little bug in +!! (init/main.c), but it is of little concern: +!! The last part of the symbolic device name ("hda2") is +!! passed as option parameter to init, so init will +!! say "illegal option", but continue without errors. +!! +!! Of greater concern is the too-small static buffer +!! "command_line" (80 bytes, in init/main.c). It is +!! preferable to set it to 512 and recompile the kernel. +!! +!! This bug is fixed with Linux 1.0.5, the "command_line" +!! is now 256 by default and (if needed ) can easily be changed +!! with #define COMMAND_LINE_SIZE xxxx in init/main.c (to a +!! maximum size of 2047). + + + no387 + ----- + "no387" disables use of the hardware math coprocessor. + + since 1.1.47 (or perhaps earlier) the following options are no more + passed to init: + + ro,rw,no387 + ----------- + + + the following are new: + + + debug sets console_loglevel = 10 + ----- + + no-hlt + ------ + disables check of HLT instruction at startup. + If you have a clone 486, this option is *very* useful. + +------------------------------------------------------------------------------ + +Option Parameters recognized by "init": +======================================= + + single + ------ + Enter "single user mode" on boot + + + auto + ---- + + ro,rw,no387 (forwarded from kernels < 1.1.47). (see !!comment!! above) + ----------- + + +------------------------------------------------------------------------------ + + + +Configuration of ethernet cards: +================================ + + ether=irq,base_addr,mem_start,mem_end,dev_name + --------------------------------------------- + irq number, IRQ-number (3..15) + base_addr number, IO-base (0x280,...) + mem_start number, shared mem start + mem_end number, shared mem end + dev_name string, + eth0..3 all configured ethernetcards + dl0 D-Link DE600 pocket adaptor + atp0 AT-LAN-TEC (RealTek) pocket adaptor + plip0..2 parallel IP (PLIP) + sl0..3 serial IP (SLIP) + example: + ether=10,0x280,0xc8000,0xcbfff,eth0 + + related files: net/inet/eth.c, drivers/net/Space.c + +------------------------------------------------------------------------------ + +Reserving I/O port space: +========================= + + reserve=port1,num1,...,port5,num5 + --------------------------------- + + portn first IOport-address in range + numn number of addresses in this range to reserve + (there will be bits set to "1" in "ioport_register") + + related files: kernel/ioport.c + + +------------------------------------------------------------------------------ + +Setting hard disk parameters for the root device: +================================================= + + hd=cyl,head,sect + --------------- + # NOTE: if you have two drives, you must put + # two hd= params into the commandline + # the first for drive 1, the second for drive 2 + # eg. + # loadlin zimage hd=1001,15,17 hd=989,15,56 root=/dev/hdb2 ro + # (this example from my machine however is not needed, + # you need it only, if Linux can't get the drive params properly + # from the BIOS). + related files: drivers/block/hd.c + config: CONFIG_BLK_DEV_HD + +------------------------------------------------------------------------------ + +Setting the IRQ for the bus-mouse: +================================== + + bmouse=irq + ---------- + related files: drivers/char/busmouse.c + config: CONFIG_BUSMOUSE + + + +------------------------------------------------------------------------------ + +Parameters for SCSI controllers: +================================ + + max_scsi_luns=n (n should be between 1 and 8) + + st0x=base_address,irq SEAGATE controller ST01/ST02 + + tmc8xx=base_address,irq Future Domain TMC-885,TMC-950 + + t128=address,irq Trantor T128/T128F/T228 + + ncr5380=port,irq,dma Generic NCR5380 driver + + aha152x=portbase,irq,scsiid,reconnect Adaptec AHA-152x driver + + + + related files: drivers/scsi/seagate.c, t128.c, g_NCR5380.c, aha152x.c + + config: CONFIG_SCSI_SEAGATE, CONFIG_SCSI_T128, + CONFIG_SCSI_GENERIC_NCR5380, CONFIG_SCSI_AHA152X + + +------------------------------------------------------------------------------ + +Parameters for SCSI Tapes: +========================= + + st=buffer_size,write_threshould,max_buffers + + buffer_size Size of tape buffer in Kbyte (i.e. ST_BLOCK_SIZE) + write_threshould Number of Kbytes to buffer before write. + (must be < buffer_size) + max_buffers Number of buffers to reserve + + related files: drivers/scsi/st.c + config: CONFIG_CHR_DEV_ST + +------------------------------------------------------------------------------ + +Parameter for XT hard disk controller (DTC 5150X): +================================================== + + xd=type,irq,iobase,dma + ---------------------- + + related files: drivers/block/xd.c + config: CONFIG_BLK_DEV_XD + +------------------------------------------------------------------------------ +Parameter for Sony CDU-31/33a CDROM driver: +=========================================== + + cdu31a=iobase,irq,PAS + --------------------- + + related files: drivers/block/cdu31a.c + include/linux/cdu31a.h + config: CONFIG_CDU31A + + WARNING - All autoprobes have been removed from the driver. + You MUST configure the CDU31A via a LILO config + at boot time or in lilo.conf. I have the + following in my lilo.conf: + + append="cdu31a=0x1f88,0,PAS" + + The first number is the I/O base address of the + card. The second is the interrupt (0 means none). + The third should be "PAS" if on a Pro-Audio + spectrum, or nothing if on something else. + + +------------------------------------------------------------------------------ +Parameter for Mitsumi CDROM driver: +=================================== + + mcd=port,irq + ------------ + + related files: drivers/block/mcd.c + config: CONFIG_MCD + + +------------------------------------------------------------------------------ + +Parameter for sound cards: +========================== + + sound=0x0TTPPPID, .. + ---------------- + all values are embedded in one longint, the above format + shows a hex number, each place is a hex-digit + + TT Supported card type. + This is the index into the list of configured cards + If all cards are configured (which normally is not the case) + the following order is kept: + Roland MPU-401 + Gravis Ultrasound + ProAudio Spectrum + SoundBlaster + SoundBlaster 16 + SB16 MPU-401 (SB16-MIDI port) + AdLib + + PPP Port Address + + I IRQ + + D DMA Channel + + + related files: drivers/sound/dev_table.h,dev_table.c + config: CONFIG_SOUND + +------------------------------------------------------------------------------ + +Parameter for IDE-style CD-ROM device driver (Kotobuki/Matsushita/Panasonic): +============================================================================= + + sbpcd=sbport,SoundBlaster + ------------------------ + sbpcd=LMport,LaserMate + ---------------------- + sbpcd=SpeaFXport,SPEA + ---------------------- + + sbport soundblaster base port +0x10 (i.e 0x230 = 0x220+0x10) + LMport MPU-type port at 0x300 or equivalent + SpeaFXport base port on SpeaFX card + + related files: drivers/block/sbpcd.c + config: CONFIG_SBPCD + + + +------------------------------------------------------------------------------ diff --git a/CHANGES_AND_HINTS.TXT b/CHANGES_AND_HINTS.TXT new file mode 100644 index 000000000..f4dbb456e --- /dev/null +++ b/CHANGES_AND_HINTS.TXT @@ -0,0 +1,373 @@ +This file documents the instructions for upgrading to Slackware 13.0, the +packages added, removed, renamed, and/or split during the development cycle +from Slackware 12.2 through 13.0, and some potential "gotchas" that users +can avoid by arming themselves with a little knowledge. + + +*** INSTRUCTIONS FOR UPGRADING FROM 12.2 *** + +Follow the instructions detailed in the UPGRADE.TXT located in this + directory. Note that upgrading from a Slackware version earlier + than 12.2 is NOT supported at all and will most likely not work. + +Also note that upgrading from 12.2 to 13.0 (64bit) is not supported. + + +*** PACKAGE ADDITIONS SINCE 12.2 *** + +a/xz +ap/cupsddk +ap/dc3dd +d/swig +kde/guidance-power-manager +kde/kaudiocreator +kde/kdebase-runtime +kde/kdebase-workspace +kde/kdepimlibs +kde/kdeplasma-addons +kde/kdevelop +kde/kdevplatform +kde/konq-plugins +kde/ktorrent (moved from /extra) +kde/mplayerthumbs +kde/skanlite +l/M2Crypto +l/PyQt +l/QScintilla +l/akonadi +l/automoc4 +l/babl +l/boost +l/chmlib +l/clucene +l/djvulibre +l/eigen2 +l/exiv2 +l/gegl +l/gmm +l/ilmbase +l/iso-codes +l/jasper +l/libarchive +l/libdvdread +l/libical +l/libmcrypt +l/libmsn +l/libnl +l/libspectre +l/libvncserver +l/libxklavier +l/libzip +l/openexr +l/phonon +l/pil +l/pycups +l/qca-cyrus-sasl +l/qca-gnupg +l/qca-ossl +l/qimageblitz +l/qtscriptgenerator +l/raptor +l/rasqal +l/redland +l/seamonkey-solibs +l/sip +l/soprano +l/strigi +l/taglib-extras +l/urwid +n/crda +n/iw +n/iwlwifi-5150-ucode +n/snownews +x/intel-gpu-tools +x/scim-input-pad +x/xcb-util +x/xorg-server-xephyr +x/xpyb +x/xscope +xap/MPlayer +xap/electricsheep +xap/thunar-volman +xap/xfce4-power-manager + +extra/kde3-compat/arts +extra/kde3-compat/kdelibs3 +extra/kde3-compat/qca-tls1 +extra/kde3-compat/qca1 +extra/kde3-compat/qt3 +extra/xf86-video-intel-alternate/xf86-video-intel-* (several alternate + versions of the Xorg intel driver just in case the default doesn't work + properly for you) + + +*** PACKAGE REMOVALS SINCE 12.2 *** + +kde/kdeaddons +kde/knemo +l/arts +l/beecrypt +l/dbus-qt3 +l/qca-tls +l/svgalib_helper (won't build on 2.6.28+ kernels) +n/bitchx +x/liboldX +x/xf86-input-calcomp +x/xf86-input-digitaledge +x/xf86-input-dmc +x/xf86-input-dynapro +x/xf86-input-elo2300 +x/xf86-input-jamstudio +x/xf86-input-magellan +x/xf86-input-magictouch +x/xf86-input-microtouch +x/xf86-input-palmax +x/xf86-input-spaceorb +x/xf86-input-summa +x/xf86-input-tek4957 +x/xf86-input-ur98 +x/xf86-video-cyrix +x/xf86-video-fbdev +x/xf86-video-i810 (use xf86-video-intel instead) +x/xf86-video-imstt +x/xf86-video-nsc +x/xf86-video-vga +x/xf86-video-via (use xf86-video-openchrome instead) +x/xphelloworld +x/xrx +xap/gimp-help-2 + + +*** OTHER NOTABLE CHANGES AND HINTS *** + +l/dbus moved to a/dbus + +New system user accounts: + oprofile (uid=51) + +New system group accounts: + oprofile (gid=51) + dialout (gid=16) + netdev (gid=86) + +The Slackware installer now uses udev to initialize your hardware, including + the network interface card(s). This has positive consequences for network + installations (using NFS, FTP, HTTP or SMB). You no longer have to run the + 'pcmcia' and 'network' scripts prior to running 'setup' - the network + interface will be created and intialized by udev. If a DHCP server is + found on your local network, the setup program will let you choose between + automatic configuration of your network interface using DHCP or specifying + a static IP address. Using udev, the commandline for fully unattended + configuration and startup of the dropbear SSH server has changed slightly. + Suppose you want to boot the 'hugesmp' kernel, use DHCP for interface eth0, + and you have a us-english keyboard layout: the commandline to auto-start + the SSH daemon in the installer would become: + hugesmp.s kbd=us nic=auto:eth0:dhcp + Note: if you do not want to use udev, the "auto" keyword in that example + commandline must be replaced with the actual name of the network module for + your card. If you do not want to use udev, you must add the parameter + "noudev" to the command line that boots the Slackware installer, and the + original ("old") Slackware hardware configuration scripts will be used. + +Use one of the provided generic kernels for daily use. Do not report + bugs until/unless you have reproduced them using one of the stock + generic kernels. You will need to create an initrd in order to boot + the generic kernels - see /boot/README.initrd for instructions. + The huge kernels are primarily intended as "installer" and "emergency" + kernels in case you forget to make an initrd. For most systems, you + should use the generic SMP kernel if it will run, even if your system is + not SMP-capable. Some newer hardware needs the local APIC enabled in the + SMP kernel, and theoretically there should not be a performance penalty + with using the SMP-capable kernel on a uniprocessor machine, as the SMP + kernel tests for this and makes necessary adjustments. Furthermore, the + kernel sources shipped with Slackware are configured for SMP usage, so you + won't have to modify those to build external modules (such as NVidia or + ATI proprietary drivers) if you use the SMP kernel. + + If you decide to use one of the non-SMP kernels, you will need to follow the + instructions in /extra/linux-2.6.29.6-nosmp-sdk/README.TXT to modify your + kernel sources for non-SMP usage. Note that this only applies if you are + using the Slackware-provided non-SMP kernel - if you build a custom kernel, + the symlinks at /lib/modules/$(uname -r)/{build,source} will point to the + correct kernel source so long as you don't (re)move it. + +As usual, there are changes in udev packaging that need mentioning... + As with 12.2, the system udev rules now reside in /lib/udev/rules.d/ + instead of /etc/udev/rules.d/ in older versions. There should never be + a reason to edit anything in /lib/udev/rules.d/, so if you think you have + a case where this is required, either you're wrong or it needs to be + addressed in the upstream source. However, you can override default rules + by placing one with an identical name inside /etc/udev/rules.d/ The rules + files in /etc/udev/rules.d/ are still intended to (maybe) be edited as + needed by local system administrators, and as such, the rules for optical + and network devices will still be placed there. + Also, be sure to have the new dialout group added to your system, or udev + will kindly remind you in the system logs... + +Due to the upgrade of kde from 3.5.10 to 4.2.4, you will need to move your + existing $HOME/.kde/ out of the way (either completely remove it or back + it up somewhere else if you think you might need it again for whatever + reason); otherwise, you will almost surely experience odd configuration + problems with kde applications. + +If mailto: links don't work properly (or at all) in firefox, you may have + to remove an existing $HOME/.mozilla/mimeTypes.rdf file and restart Firefox. + +If you are unable to access the cups configuration web interface from your + browser, you may have to blacklist the ipv6 module and reboot. This is + not an acceptable solution, of course, but it's the only one we have at + the moment. + +HP multifunction printer/scanners require that your user account be a member + of the "lp" group for hp-toolbox to work properly, and to use the scanner + portion of some (all?) units, you'll need to be a member of the "lp" group. + This is because hplip's udev rules set the device with group "lp" ownership. + +HAL is not new anymore, but here are a few notes related to it: + 1. User accounts with permission to mount removable devices must be in at + least the "plugdev" group. + 2. User accounts with permission to do power-management tasks, such as + suspend, hibernate, reboot, and shutdown, via HAL methods should be in + the "power" group. + 3. HAL will honor settings in /etc/fstab if a device is present there, so + you could technically have removable devices defined in /etc/fstab, but + if the fstab settings do not allow normal users to mount them (with the + "user" or "users" option), then HAL/dbus will not allow them to be + mounted either. In other words, for example, if your fstab line for the + cdrom/dvd drive includes the "owner" option, you will not be able to + mount it as a normal user. + 4. If you find a need for modified fdi files, those should be placed in the + relevant directories in /etc/hal/ instead of /usr/share/hal/ + +If you notice Xfce's Terminal and perhaps some other applications being drawn + very slowly in X, then you should try explicitly disabling the Composite + extension in /etc/X11/xorg.conf, or set XLIB_SKIP_ARGB_VISUALS=1 in your + environment prior to starting X. For more information on this, see: + http://bugzilla.xfce.org/show_bug.cgi?id=2792 + We've also gotten a report of some other things (such as VirtualBox) that + might benefit from this. + +Speaking of Xorg, the version of Xorg shipped with Slackware 13.0 will not + (in most cases) require an /etc/X11/xorg.conf file at all. Configuration of + input devices and such is handled by HAL, and the X server autoconfigures + everything else. You can still create an xorg.conf file if you wish, or you + can create a minimal xorg.conf with only the specific contents that you wish + to override (as an example, to use a binary-only video driver). + Due to removed drivers and other such changes, it's quite possible that your + old xorg.conf will not work correctly with this version of Xorg. + +If you need to use a non-US keyboard layout, then copy the file located at + /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi to /etc/hal/fdi/policy + and edit it to suit your needs. Have a look at the contents of that file + for an example and more information. If you prefer to do this the "old" way + using /etc/X11/xorg.conf, then you can use "X -configure" or "xorgsetup" to + generate an xorg.conf, then add the following lines to the "ServerFlags" + section to disable input device hotplugging via HAL: + Option "AllowEmptyInput" "false" + Option "AutoAddDevices" "false" + Option "AutoEnableDevices" "false" + This is also relevant if you prefer to disable HAL completely for whatever + reason. + +If you are using input hotplugging via HAL and a synaptics touchpad, then you + might need to copy /usr/share/hal/fdi/policy/11-x11-synaptics.fdi to + /etc/hal/fdi/policy/ and edit it to suit your needs. You can also use + synclient(1) to make changes "on the fly." + +If you want to try the new kernel mode setting (KMS), you don't have to + build a custom kernel; add this to your kernel's lilo stanza: + append = "i915.modeset=1" + +If you are using a KVM switch, you might experience problems with the mouse + when switching from one system to another. If so, you probably need to be + using the imps protocol for the psmouse driver, and that's a simple edit: + uncomment the following line in /etc/modprobe.d/psmouse.conf: + #options psmouse proto=imps + Next, unload and reload the psmouse module (do this as root): + modprobe -r psmouse ; modprobe psmouse + +If you have set up an encrypted root partition, you will need to have access + to your keyboard in order to type the passphrase. This may require you to + add the uhci-hcd and usbhid modules to your initrd image if you have a USB + keyboard. Also note that if you are using a non-US keyboard, you can use the + '-l' parameter to the 'mkinitrd' command in order to add support for this + keyboard to your initrd. + +If you have permission errors when attempting to burn a cdrom or dvd image, + such as the following: + /usr/bin/cdrecord: Operation not permitted. Cannot send SCSI cmd via ioctl + then cdrecord almost certainly needs root privileges to work correctly. + One potential solution is to make the cdrecord and cdrdao binaries suid root, + but this has possible security implications. The safest way to do that is + to make those binaries suid root, owned by a specific group, and executable + by only root and members of that group. For most people, the example below + will be sufficient (but adjust as desired depending on your specific needs): + chown root:cdrom /usr/bin/cdrecord /usr/bin/cdrdao + chmod 4750 /usr/bin/cdrecord /usr/bin/cdrdao + If you don't want all members of the 'cdrom' group to be able to execute the + two suid binaries, then create a special group (such as 'burning' which is + recommended by k3b), use it instead of 'cdrom' in the line above, and add + to it only the users you wish to have access to cdrecord and cdrdao. + +If you have compilation errors that look something like this: + /usr/include/asm-generic/fcntl.h:117: error: redefinition of 'struct flock' + /usr/include/bits/fcntl.h:142: error: previous definition of 'struct flock' + /usr/include/asm-generic/fcntl.h:140: error: redefinition of 'struct flock64' + /usr/include/bits/fcntl.h:157: error: previous definition of 'struct flock64' + See the following link for some pointers on fixing it: + http://www.mail-archive.com/blfs-dev@linuxfromscratch.org/msg08942.html + +Input methods for complex characters (CJK, which is shorthand for Chinese, + Japanese, Korean) and other non-latin character sets have been added. These + input methods use the SCIM (Smart Common Input Method) platform. + The environment variables for SCIM support are set in /etc/profile.d/scim.sh + The requirements for getting SCIM input methods to work in your X session + are as follows: + (1) Use a UTF-8 locale. Look in /etc/profile.d/lang.sh for setting your + language to (for instance) en_US.UTF-8. As a word of warning: maybe you + should leave root with a non-UTF-8 locale because you don't want root's + commands to be misinterpreted. You can add the following line to your + ~/.profile file to enable UTF-8 just for yourself: + export LANG=en_US.UTF-8 + (2) Make the scim profile scripts executable. These will setup your + environment correctly for the use of scim with X applications. Run: + chmod +x /etc/profile.d/scim.* + (3) Start the scim daemon as soon as your X session starts. The scim daemon + must be active before any of your X applications. In KDE, you can add a + shell script to the ~/.kde/Autostart folder that runs the command + "scim -d". In XFCE you can add "scim -d" to the Autostarted Applications. + If you boot your computer in runlevel 4 (the graphical XDM/KDM login) + you can simply add the line "scim -d" to your ~/.xprofile file. + This gives you a Desktop Environment independent way of starting scim. + When scim is running, you will see a small keyboard icon in your system tray. + Right-click it to enter SCIM Setup. In 'Global Setup' select your keyboard + layout, and you are ready to start entering just about any language + characters you wish! Press the magical key combo + in order to activate or deactivate SCIM input. The SCIM taskbar in the + desktop's corner allows you to select a language. As you type, SCIM will show + an overview of applicable character glyphs (if you are inputting complex + characters like Japanese). + +If you are using the pinentry-gtk2 interface (for entering passphrases with + gpg-agent), be aware that there is a bug in the way scim-bridge and the + pinentry-gtk2 interact. The result is that keyboard input does not register + with pinentry-gtk2. For the time being, either change the /usr/bin/pinentry + symlink to use the qt or curses frontend, or don't use scim. + +If you have an older machine (with a BIOS released prior to 2001) and it will + not power off on shutdown, try adding this to your kernel's lilo stanza: + append = "acpi=force" + +If you have a Dell Optiplex 760 (or perhaps some other machine that has the + newer ICH10 chipset), and it won't boot, try one of these: + 1. Update the BIOS image to at least A03 + 2. Turn C-States control off in the BIOS + 3. Boot with "hpet=disabled" + +If your wireless and/or bluetooth radios are not turned on by default after + booting up, you might need to load the rfkill-input module. If that solves + the problem for you, edit /etc/rc.d/rc.modules.local or /etc/rc.d/rc.local + to load the module on boot, or create /etc/modprobe.d/rfkill.conf and put + the following line in it: + install rfkill /sbin/modprobe -i rfkill ; /sbin/modprobe -i rfkill-input + diff --git a/COPYING b/COPYING new file mode 100644 index 000000000..e77696ae8 --- /dev/null +++ b/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYING3 b/COPYING3 new file mode 100644 index 000000000..94a9ed024 --- /dev/null +++ b/COPYING3 @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/COPYRIGHT.TXT b/COPYRIGHT.TXT new file mode 100644 index 000000000..35a8e8099 --- /dev/null +++ b/COPYRIGHT.TXT @@ -0,0 +1,402 @@ + +This is the Slackware COPYRIGHT file. This file provides documentation +about many of the licenses used by components included in Slackware, as +well as some acknowledgements (some required, some freely given). + +This is not meant to be a list of all copyrights and contributors. +For complete information about all copyrights and licenses, refer to +the package documentation installed under /usr/doc/ and to the +included source code. + +---------------- + +The Linux(R) kernel is licensed under the GPL version 2, which can +be found in the file COPYING. Linus offers his interpretation of how +the GPL applies to the kernel at the top of the COPYING file found in +the kernel sources. Here's the quote: + + "NOTE! This copyright does *not* cover user programs that use kernel + services by normal system calls - this is merely considered normal use + of the kernel, and does *not* fall under the heading of "derived work". + Also note that the GPL below is copyrighted by the Free Software + Foundation, but the instance of code that it refers to (the Linux + kernel) is copyrighted by me and others who actually wrote it. + + Also note that the only valid version of the GPL as far as the kernel + is concerned is _this_ particular version of the license (ie v2, not + v2.2 or v3.x or whatever), unless explicitly otherwise stated. + + Linus Torvalds" + +Linux is a Registered Trademark of Linus Torvalds. + +(see COPYING in /usr/src/linux) + +---------------- + +Many other software packages included in Slackware are licensed under the GNU +General Public License v2, which is included in the file COPYING. + +---------------- + +Some software packages included in Slackware are licensed under the GNU +General Public License v3, which is included in the file COPYING3. + +---------------- + +This product includes software developed by The XFree86 Project, Inc +(http://www.xfree86.org/) and its contributors. + +---------------- + + This product includes software developed by the University of + California, Berkeley and its contributors: + + Copyright (c) 1980,1983,1985,1986,1988,1990,1991 The Regents of the University + of California. 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. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgment: + This product includes software developed by the University of + California, Berkeley and its contributors. + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. + +---------------- + +Copyright (c) 2000,2001,2002,2003 The Regents of the Unviersity of Michigan +(kernel code, no stated license, presumed GPLv2) + +---------------- + + Copyright (c) 1999-2003 Ralf S. Engelschall + Copyright (c) 1999-2003 The OSSP Project + + 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. + + 3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by + Ralf S. Engelschall ." + + 4. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by + Ralf S. Engelschall ." + + THIS SOFTWARE IS PROVIDED BY RALF S. ENGELSCHALL ``AS IS'' AND ANY + EXPRESSED 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 RALF S. ENGELSCHALL OR + ITS 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. + +---------------- + +/* ==================================================================== + * Copyright (c) 1998-2007 The OpenSSL 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. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED 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 OpenSSL PROJECT OR + * ITS 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. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +---------------- + +The Slackware distribution contains Info-ZIP's compression utilities. +Info-ZIP's software (Zip, UnZip and related utilities) is free and can be +obtained as source code or executables from various sites, +including http://www.info-zip.org. This software is provided free - +there are no extra or hidden charges resulting from the use of this +compression code. Thanks Info-ZIP! :^) + +Zip/Unzip source can also be found in the source/a/infozip directory. + +---------------- + +The Slackware Installation scripts are: + + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999 Patrick Volkerding, Moorhead, Minnesota, USA. + Copyright 2001, 2002, 2003, 2004, 2005 Slackware Linux, Inc. Concord, CA, USA. + Copyright 2005, 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA. + All rights reserved. + + Redistribution and use of this software, with or without modification, is + permitted provided that the following conditions are met: + + 1. Redistributions of this software must retain the above copyright + notice, this list of conditions and the following disclaimer. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +---------------- + +Slackware is a registered trademark of Patrick Volkerding and Slackware Linux, Inc. +Permission to use the Slackware trademark to refer to the Slackware distribution +of Linux is hereby granted if the following conditions are met: + +1. In order to be called "Slackware", the distribution may not be altered + from the way it appears on the central FTP site (ftp.slackware.com). This + is to protect the integrity, reliability, and reputation of the Slackware + distribution. (Note that moving entire directories like "source" or + "contrib" to a second CD-ROM is allowable, but leaving them out and + distributing a single source-free disc is *not*, as indicated below) + Anyone wishing to distribute an altered version must have the changes + approved by volkerdi@slackware.com (i.e. certified to be reasonably + bug-free). If the changed distribution meets the required standards for + quality, then written permission to use the Slackware trademark may be + provided. + +2. All related source code must be included. (This is also required by the + GNU General Public License, and other licenses) + +3. Except by written permission from Slackware Linux, Inc., the Slackware + trademark may not be used as (or as part of) a product name, company + name, or registered domain name. + +4. Any approved use of "Slackware" must be followed by a circle-R, and must + acknowledge our ownership of the mark. + +Note that you can still redistribute a distribution that doesn't meet these +criteria, you just can't call it "Slackware". Personally, I hate restricting +things in any way, but these restrictions are not designed to make life +difficult for anyone. I just want to make sure that bugs are not added to +commercial redistributions of Slackware. They have been in the past, and +the resulting requests for help have flooded my mailbox! I'm just trying to +make sure that I have some recourse when something like that happens. + +Any questions about this policy should be directed to: + Patrick Volkerding + +---------------- + +This product includes software that is based in part of the work of the +FreeType Team ( http://www.freetype.org ). + +---------------- + +This product includes software developed by Christopher G. Demetriou. + +---------------- + +This product includes software developed by the NetBSD Foundation, +Inc. and its contributors. + +---------------- + +This product includes software developed by +X-Oz Tehnologies ( http://www.x-oz.com/ ). + +---------------- + +$File: LEGAL.NOTICE,v 1.15 2006/05/03 18:48:33 christos Exp $ +Copyright (c) Ian F. Darwin 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995. +Software written by Ian F. Darwin and others; +maintained 1994- Christos Zoulas. + +This software is not subject to any export provision of the United States +Department of Commerce, and may be exported to any country or planet. + +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 immediately at the beginning of the file, without modification, + 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. + +---------------- + +Although every effort has been made to provide a complete source tree for this +project, it's possible that something may have been forgotten. If you discover +anything is missing, we will provide copies - just ask! + +NOTE: We are required to provide any missing source to GPLv2'ed software for +3 years, per this section of the GNU General Public License: + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + +We are also required to do the above, or provide access to copy the source that +corresponds to your binaries from a network server in the case of materials +which are licensed under the GPLv3 (see COPYING3 for the complete license). + +If you find something is missing online (even if you don't need a copy), +please point it out to volkerdi@slackware.com so it can be fixed. + +If some source code falling under this or a similar license is missing from +a commercial Slackware release obtained from or manufactured by us, and you +want a copy, just ask volkerdi@slackware.com and we will be happy to arrange +for you to get a copy in compliance with the terms of the specific license. + diff --git a/CRYPTO_NOTICE.TXT b/CRYPTO_NOTICE.TXT new file mode 100644 index 000000000..bcd3f0322 --- /dev/null +++ b/CRYPTO_NOTICE.TXT @@ -0,0 +1,14 @@ + + Due to U.S. Exports Regulations, all cryptographic software on this + site is subject to the following legal notice: + + This site includes publicly available encryption source code + which, together with object code resulting from the compiling of + publicly available source code, may be exported from the United + States under License Exception "TSU" pursuant to 15 C.F.R. Section + 740.13(e). + + This legal notice applies to cryptographic software only. Please see + the Bureau of Industry and Security (http://www.bis.doc.gov/) for more + information about current U.S. regulations. + diff --git a/ChangeLog.txt b/ChangeLog.txt new file mode 100644 index 000000000..e7cd15efd --- /dev/null +++ b/ChangeLog.txt @@ -0,0 +1,1441 @@ +Wed Aug 26 10:00:38 CDT 2009 +Slackware 13.0 x86_64 is released as stable! Thanks to everyone who +helped make this release possible -- see the RELEASE_NOTES for the +credits. The ISOs are off to the replicator. This time it will be a +6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. +We're taking pre-orders now at store.slackware.com. Please consider +picking up a copy to help support the project. Once again, thanks to +the entire Slackware community for all the help testing and fixing +things and offering suggestions during this development cycle. +As always, have fun and enjoy! -P. +a/aaa_base-13.0-x86_64-2.txz: Rebuilt. + Updated the initial email to root. +extra/xf86-video-intel-alternate/xf86-video-intel-2.8.1-x86_64-1.txz: + Added. +extra/wicd/wicd-1.6.2.1-x86_64-1.txz: Upgraded. + Thanks to Adam Blackburn of the Wicd team working with us on this, + and to macavity for testing the hidden network changes. ++--------------------------+ +Tue Aug 25 05:31:05 CDT 2009 +f/linux-howtos-20090805-noarch-1.txz: Upgraded. +isolinux/initrd.img: Rebuilt. + Make the CD install disc swap more reliable on slow CD drives. +usb-and-pxe-installers/usbboot.img: Rebuilt. + Make the CD install disc swap more reliable on slow CD drives. ++--------------------------+ +Mon Aug 24 23:44:38 CDT 2009 +a/kbd-1.15-x86_64-3.txz: Rebuilt. Fixed the default font in unicode_start. + Thanks to Conraid and Dugan Chen. +ap/vim-7.2.245-x86_64-1.txz: Upgraded. +l/boost-1.38.0-x86_64-2.txz: Rebuilt. + Patched wrong BOOST_NO_EXCEPTIONS define placement. + Thanks to Steve from the GNOME SlackBuild project, and Christoph Willing. +n/network-scripts-13.0-noarch-2.txz: Rebuilt. Correct the comments about + DHCP timeout to say that it is 10 seconds. Thanks to Mark Payne. +xap/vim-gvim-7.2.245-x86_64-1.txz: Upgraded. ++--------------------------+ +Mon Aug 24 04:16:26 CDT 2009 +a/infozip-6.0-x86_64-1.txz: Upgraded. + Upgraded to Zip 3.0 and Unzip 6.0. + Thanks to Michal Dorocinski for the notice. +ap/sox-14.3.0-x86_64-1.txz: Upgraded. +n/bluez-utils-3.36-x86_64-7.txz: Rebuilt. + Fixed hardcoded /usr/lib path in rc.bluetooth and register-passkey. + Thanks to Michael Wagner. +isolinux/initrd.img: Rebuilt. + Fixed bad block checking option for ext* filesystems. + Thanks to Pete Cervasio. +usb-and-pxe-installers/usbboot.img: Rebuilt. + Fixed bad block checking option for ext* filesystems. + Thanks to Pete Cervasio. ++--------------------------+ +Sun Aug 23 23:17:38 CDT 2009 +a/cryptsetup-1.0.7-x86_64-1.txz: Upgraded. +isolinux/initrd.img: Rebuilt. Upgraded cryptsetup. +usb-and-pxe-installers/usbboot.img: Rebuilt. Upgraded cryptsetup. ++--------------------------+ +Sun Aug 23 16:53:59 CDT 2009 +isolinux/initrd.img: Rebuilt. +usb-and-pxe-installers/usbboot.img: Rebuilt. ++--------------------------+ +Sun Aug 23 02:32:16 CDT 2009 +a/etc-13.0-x86_64-2.txz: Rebuilt. Build package with $ARCH, not noarch. + Ensure that groups added through the install script have "root" as + members where appropriate. +l/icon-naming-utils-0.8.90-x86_64-2.txz: Rebuilt. + Build package with $ARCH, not noarch. +n/getmail-4.11.0-x86_64-1.txz: Upgraded. +xap/xgames-0.3-x86_64-2.txz: Rebuilt. + Merged fixes to xlander: + Avoid "warping" spacecraft position after pause for mouse click due to + paused time being added to frame time. + Decrease lateral thrust, but increase initial lateral velocity, to better + match the original gameplay (DEC microVAX, early 1990s). + Don't use unsigned (fix unsigned comparison warning). + Bump patchlevel. + Thanks to Gary Carvell. +Added 2.6.30.5 generic Linux kernel packages in /testing. Release time +is getting close, so we're sticking with the 2.6.29.6 kernels as the main +kernels for Slackware 13.0. Besides, we know of at least one tricky issue +with 2.6.30.x and the LILO bootloader, and the workaround that we know of +likely isn't going to work on BIOSes older than 2001. Be sure to read the +README_FIRST.TXT (really!) in the directory with the kernel packages if you +intend to try these. +testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txz: + Added. +testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txz: + Added. +testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txz: + Added. +testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txz: + Added. +testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txz: + Added. ++--------------------------+ +Sat Aug 22 02:00:23 CDT 2009 +a/aaa_elflibs-13.0-x86_64-2.txz: Rebuilt. Upgraded CUPS libraries. +a/cups-1.3.11-x86_64-1.txz: Upgraded. +ap/ghostscript-8.70-x86_64-1.txz: Upgraded. +ap/gutenprint-5.2.4-x86_64-1.txz: Upgraded. ++--------------------------+ +Thu Aug 20 22:41:16 CDT 2009 +x/xf86-input-evdev-2.2.5-x86_64-1.txz: Upgraded. +xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txz: Upgraded. + This upgrade fixes a security bug. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird20.html + (* Security fix *) +extra/brltty/brltty-4.0-x86_64-1.txz: Added. Braille display support. ++--------------------------+ +Wed Aug 19 16:02:54 CDT 2009 +xap/pidgin-2.5.9-x86_64-1.txz: Upgraded. + This update fixes a bug in Pidgin's MSN protocol implementation can allow + a remote attacker to send a malicious MSN message to a Pidgin user, which + will possibly cause arbitrary code to be executed as that user. + This issue was discovered by Federico Muttis of Core Security Technologies. + For more information, see: + http://www.coresecurity.com/content/libpurple-arbitrary-write + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2694 + (* Security fix *) ++--------------------------+ +Tue Aug 18 18:50:46 CDT 2009 + Patched kernels and kernel packages for Linux 2.6.29.6 to address + a bug in proto_ops structures which could allow a user to use the + kernel sendpage operation to execute arbitrary code in page zero. + This could allow local users to gain escalated privileges. + This flaw was discovered by Tavis Ormandy and Julien Tinnes of the + Google Security Team. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2692 + In addition, these kernels change the CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR + kernel config option value to 4096, which should prevent the execution + of arbitrary code by future NULL dereference bugs that might be found + in the kernel. If you are compiling your own kernel, please check this + option in your .config. If it is set to =0, you may wish to edit it + to 4096 (or some other value > 0) and then reconfigure, or the kernel + will not have default protection against zero page attacks from + userspace. + (* Security fix *) +a/kernel-firmware-2.6.29.6-noarch-2.txz: Rebuilt. +a/kernel-generic-2.6.29.6-x86_64-2.txz: Rebuilt. + Patched CVE-2009-2692, changed default vm.mmap_min_addr to 4096. + (* Security fix *) +a/kernel-huge-2.6.29.6-x86_64-2.txz: Rebuilt. + Patched CVE-2009-2692, changed default vm.mmap_min_addr to 4096. + (* Security fix *) +a/kernel-modules-2.6.29.6-x86_64-2.txz: Rebuilt. +a/pkgtools-13.0-noarch-3.tgz: Rebuilt. + Fixed hardcoded gzip in installpkg --warn. Thanks to Mathieu Bouillaguet. + Fixed upgradepkg to reject invalid extensions. Thanks to Andrew Psaltis. +ap/foomatic-filters-4.0.2-x86_64-1.txz: Upgraded. +d/kernel-headers-2.6.29.6-x86-2.txz: Rebuilt. +k/kernel-source-2.6.29.6-noarch-2.txz: Rebuilt. + Patched CVE-2009-2692, changed default vm.mmap_min_addr to 4096. + (* Security fix *) +l/libzip-0.9-x86_64-2.txz: Rebuilt. Get rid of hardlinked man pages. +n/pinentry-0.7.6-x86_64-1.txz: Upgraded. Thanks to Stuart Winter. +xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txz: Added. + Thanks to Vincent Batts for the build script. +isolinux/initrd.img: Rebuilt. + Patched CVE-2009-2692, changed default vm.mmap_min_addr to 4096. + (* Security fix *) +kernels/*: Rebuilt. + Patched CVE-2009-2692, changed default vm.mmap_min_addr to 4096. + (* Security fix *) +usb-and-pxe-installers/: Rebuilt. + Patched CVE-2009-2692, changed default vm.mmap_min_addr to 4096. + (* Security fix *) ++--------------------------+ +Fri Aug 14 15:12:05 CDT 2009 +a/aaa_elflibs-13.0-x86_64-1.txz: Upgraded. +a/mkinitrd-1.3.4-x86_64-3.txz: Rebuilt. Fixed quoting of "${MODULE_LIST}" +a/usbutils-0.82-x86_64-2.txz: Rebuilt. Updated usb.ids, removed usb.ids.gz. +ap/man-pages-3.22-noarch-2.txz: Rebuilt. Fixed missing part of doinst.sh. +kde/koffice-2.0.2-x86_64-1.txz: Upgraded. +kdei/koffice-l10n-*-2.0.2-noarch-1.txz: + Upgraded to KOffice 2.0.2 l10n packages. +l/jre-6u16-x86_64-1.txz: Upgraded. + Upgraded to Java(TM) 2 Platform Standard Edition Runtime Environment + Version 6.0 update 16. +n/curl-7.19.6-x86_64-1.txz: Upgraded. + This update fixes a security issue where a zero byte embedded in an SSL + or TLS certificate could fool cURL into validating the security of a + connection to a system that the certificate was not issued for. It has + been reported that at least one Certificate Authority allowed such + certificates to be issued. + For more information, see: + http://curl.haxx.se/docs/security.html + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2417 + (* Security fix *) +n/elm-2.5.8-x86_64-3.txz: Rebuilt. Fixed mailermode. +t/transfig-3.2.4-x86_64-2.txz: Reverted. This version is matched to + xfig-3.2.4. +t/xfig-3.2.4-x86_64-4.txz: Reverted. This is due to xfig-3.2.5b not working + correctly. .fig files will load, but making any changes causes xfig to + hang consuming 100% CPU. We couldn't find a fix, and honestly RC2 just + wasn't a good time to upgrade xfig (3.2.4 also required many patches to + work right). Sorry, but we'll look at this again in the next -current. +extra/aspell-word-lists/aspell-nb-0.50.1_0-noarch-4.txz: Added. +extra/jdk-6/jdk-6u16-x86_64-1.txz: Upgraded. + Upgraded to Java(TM) 2 Platform Standard Edition Development Kit + Version 6.0 update 16. +extra/wicd/wicd-1.6.2-x86_64-2.txz: Rebuilt. + Fixed a problem with hidden networks. Thanks to Robby Workman. +isolinux/initrd.img: Rebuilt. +usb-and-pxe-installers/: Rebuilt. ++--------------------------+ +Tue Aug 11 01:04:25 CDT 2009 +a/etc-13.0-noarch-1.txz: Upgraded. + Added root to power, netdev, and scanner groups in /etc/group. +a/pciutils-3.1.3-x86_64-1.txz: Upgraded. +a/rpm2tgz-1.1-x86_64-1.txz: Upgraded. Make .tgz with makepkg, not tar. +ap/man-1.6f-x86_64-2.txz: In man.conf, change nroff from using -Tlatin1 to + using -mandoc. Thanks to Ricardo Garcia. +ap/man-pages-3.22-noarch-1.txz: Upgraded. +d/guile-1.8.7-x86_64-1.txz: Upgraded. +kde/kaudiocreator-r1008583-x86_64-1.txz: Upgraded. +kde/kdelibs-4.2.4-x86_64-3.txz: Rebuilt. Patched kdesu to fix NOPASS option. + Thanks to Piter Punk! +l/imlib-1.9.15-x86_64-5.txz: Rebuilt. Fixed doc directory perms. +l/qt-r1008952-x86_64-1.txz: Upgraded. + Fixed symlink to QtDesignerComponents.pc. Thanks to oneforall. +n/httpd-2.2.13-x86_64-1.txz: Upgraded. + This is a bugfix release. It also upgrades the internal versions of apr and + apr-util to address CVE-2009-2412, but Slackware uses the system versions of + these libraries which have already been upgraded. +n/mailx-12.4-x86_64-1.txz: Upgraded. +n/netatalk-2.0.4-x86_64-2.txz: Rebuilt. + Don't install rc.atalk as executable by default. +t/transfig-3.2.5a-x86_64-1.txz: Upgraded. +t/xfig-3.2.5b-x86_64-1.txz: Upgraded. +x/xorg-cf-files-1.0.2-noarch-3.txz: Rebuilt. Fixed LibDir in X11.tmpl. +xap/gnuplot-4.2.5-x86_64-1.txz: Upgraded. +xap/xlockmore-5.28-x86_64-1.txz: Upgraded. ++--------------------------+ +Fri Aug 7 01:26:38 CDT 2009 +d/subversion-1.6.4-x86_64-1.txz: Upgraded. + Fixed heap overflow vulnerability on server and client. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2411 + http://subversion.tigris.org/security/CVE-2009-2411-advisory.txt + (* Security fix *) +l/apr-1.3.8-x86_64-1.txz: Upgraded. + Fix overflow in pools and rmm, where size alignment was taking place. + [Matt Lewis , Sander Striker] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2412 + (* Security fix *) +l/apr-util-1.3.9-x86_64-1.txz: Upgraded. + Fix overflow in rmm, where size alignment was taking place. + [Matt Lewis , Sander Striker] + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2412 + (* Security fix *) +l/qt-r1008078-x86_64-1.txz: Upgraded. + Added some missing symlinks to binaries and pkgconfig files. + Thanks to Heinz Wiesinger for the build script improvements! +n/httpd-2.2.12-x86_64-2.txz: Rebuilt. + Recompiled against the new apr and apr-util. This allows external modules + to be built without having to edit the new apr/apr-util version numbers into + the httpd config files. ++--------------------------+ +Thu Aug 6 00:48:30 CDT 2009 +Hi folks! We're going to call this set of updates RC2. There are still +README files to be handled (that's the nature of documentation, I guess), as +well as some other things remaining on the TODO list, but X seems pretty +stable now, and it seems like a release soon would be in order so that we +can march right back into development territory with -current again soon. :-) +Enjoy, and let us know about any problems you run into! +ap/mysql-5.0.84-x86_64-1.txz: Upgraded. +kde/kdebase-runtime-4.2.4-x86_64-2.txz: Rebuilt. + Applied patchset 969192 to fix improper clipping of text labels under icons + (such as in KMail). Thanks to Andrzej Szelachowski. +l/jre-6u15-x86_64-1.txz: Upgraded. + Upgraded to Java(TM) 2 Platform Standard Edition Runtime Environment + Version 6.0 update 15. +l/qt-r1006620-x86_64-1.txz: Upgraded to qt-copy r1006620 from svn. + We know about qt-copy.git and plan to adopt it sometime after the 13.0 + release, but would like to stick to close to the same Qt branch that + KDE 4.2.4 was developed on for now. +n/fetchmail-6.3.11-x86_64-1.txz: Upgraded. + This update fixes an SSL NUL prefix impersonation attack through NULs in a + part of a X.509 certificate's CommonName and subjectAltName fields. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2666 + (* Security fix *) +n/network-scripts-13.0-noarch-1.txz: Upgraded. Added new options to the + rc.inet1.conf file to adjust debugging level, or to turn off ipv4ll + (zeroconf) IP address assignment. Thanks to Eric Hameleers. +x/glew-1.5.1-x86_64-1.txz: Added. Needed by the Mesa demos. +x/libICE-1.0.5-x86_64-2.txz: Rebuilt. +x/libX11-1.2.2-x86_64-1.txz: Upgraded. +x/libdrm-2.4.12-x86_64-1.txz: Upgraded. +x/mesa-7.5-x86_64-1.txz: Upgraded. +x/pixman-0.15.18-x86_64-1.txz: Upgraded. +x/renderproto-0.11-noarch-1.txz: Upgraded. +x/rstart-1.0.3-x86_64-1.txz: Upgraded. +x/setxkbmap-1.1.0-x86_64-1.txz: Upgraded. +x/xf86-input-evdev-2.2.4-x86_64-1.txz: Upgraded. +x/xf86-input-synaptics-1.1.3-x86_64-1.txz: Upgraded. +x/xf86-video-apm-1.2.2-x86_64-1.txz: Upgraded. +x/xf86-video-ast-0.89.9-x86_64-1.txz: Upgraded. +x/xf86-video-cirrus-1.3.2-x86_64-1.txz: Upgraded. +x/xf86-video-glint-1.2.4-x86_64-1.txz: Upgraded. +x/xf86-video-i128-1.3.3-x86_64-1.txz: Upgraded. +x/xf86-video-i740-1.3.2-x86_64-1.txz: Upgraded. +x/xf86-video-intel-2.8.0-x86_64-1.txz: Upgraded. +x/xf86-video-mach64-6.8.2-x86_64-1.txz: Upgraded. +x/xf86-video-mga-1.4.11-x86_64-1.txz: Upgraded. +x/xf86-video-neomagic-1.2.4-x86_64-1.txz: Upgraded. +x/xf86-video-r128-6.8.1-x86_64-1.txz: Upgraded. +x/xf86-video-s3-0.6.3-x86_64-1.txz: Upgraded. +x/xf86-video-s3virge-1.10.4-x86_64-1.txz: Upgraded. +x/xf86-video-savage-2.3.1-x86_64-1.txz: Upgraded. +x/xf86-video-sis-0.10.2-x86_64-1.txz: Upgraded. +x/xf86-video-sisusb-0.9.3-x86_64-1.txz: Upgraded. +x/xf86-video-tdfx-1.4.3-x86_64-1.txz: Upgraded. +x/xf86-video-vesa-2.2.1-x86_64-1.txz: Upgraded. +x/xf86-video-voodoo-1.2.3-x86_64-1.txz: Upgraded. +x/xfs-1.1.0-x86_64-1.txz: Upgraded. +x/xkbcomp-1.1.0-x86_64-1.txz: Upgraded. +x/xorg-server-1.6.3-x86_64-1.txz: Upgraded. +x/xorg-server-xephyr-1.6.3-x86_64-1.txz: Upgraded. +x/xorg-server-xnest-1.6.3-x86_64-1.txz: Upgraded. +x/xorg-server-xvfb-1.6.3-x86_64-1.txz: Upgraded. +x/xtrans-1.2.4-noarch-1.txz: Upgraded. + Huge thanks to Robby Workman for preparing these X updates and getting + people to help test them! The new libdrm, mesa, xorg-server, and + the new Intel driver seem especially improved. :-) +xap/xfce-4.6.1-x86_64-5.txz: Rebuilt. Upgraded to Terminal-0.4.0 and added + some missing icons. Thanks to Robby Workman. +extra/jdk-6/jdk-6u15-x86_64-1.txz: Upgraded. + Upgraded to Java(TM) 2 Platform Standard Edition Development Kit + Version 6.0 update 15. +extra/xf86-video-intel-alternate/xf86-video-intel-2.7.1-x86_64-2.txz: + Moved from slackware64/x. ++--------------------------+ +Mon Aug 3 14:40:36 CDT 2009 +xap/mozilla-firefox-3.5.2-x86_64-1.txz: Upgraded. + This is thought to be just a regular update, as MFSA 2009-42 and MFSA 2009-43 + say that 3.5 is not vulnerable to those flaws. ++--------------------------+ +Sun Aug 2 16:25:44 CDT 2009 +ap/linuxdoc-tools-0.9.56-x86_64-5.txz: Rebuilt. Added a symlink to + isogrk4.ent that fixes the problems that we mentioned earlier. +d/git-1.6.4-x86_64-1.txz: Upgraded. +n/httpd-2.2.12-x86_64-1.txz: Upgraded. + This update fixes some security issues (from the CHANGES file): + *) SECURITY: CVE-2009-1891 (cve.mitre.org) + Fix a potential Denial-of-Service attack against mod_deflate or other + modules, by forcing the server to consume CPU time in compressing a + large file after a client disconnects. PR 39605. + [Joe Orton, Ruediger Pluem] + *) SECURITY: CVE-2009-1195 (cve.mitre.org) + Prevent the "Includes" Option from being enabled in an .htaccess + file if the AllowOverride restrictions do not permit it. + [Jonathan Peatfield , Joe Orton, + Ruediger Pluem, Jeff Trawick] + *) SECURITY: CVE-2009-1890 (cve.mitre.org) + Fix a potential Denial-of-Service attack against mod_proxy in a + reverse proxy configuration, where a remote attacker can force a + proxy process to consume CPU time indefinitely. [Nick Kew, Joe Orton] + *) SECURITY: CVE-2009-1191 (cve.mitre.org) + mod_proxy_ajp: Avoid delivering content from a previous request which + failed to send a request body. PR 46949 [Ruediger Pluem] + *) SECURITY: CVE-2009-0023, CVE-2009-1955, CVE-2009-1956 (cve.mitre.org) + The bundled copy of the APR-util library has been updated, fixing three + different security issues which may affect particular configurations + and third-party modules. + These last three CVEs were addressed in Slackware previously with an + update to new system apr and apr-util packages. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1891 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1195 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1890 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1191 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0023 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1955 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1956 + (* Security fix *) +n/irssi-0.8.14-x86_64-1.txz: Upgraded. ++--------------------------+ +Sat Aug 1 00:51:37 CDT 2009 +a/shadow-4.0.3-x86_64-18.txz: Rebuilt. In adduser, adjusted the search of + /etc/passwd to exclude the NIS inclusion string. + Thanks to Dominik L. Borkowski. +ap/linuxdoc-tools-0.9.56-x86_64-4.txz: Rebuilt. Upgraded a number of + component packages. + We also need some help debugging a problem with this package. + For details please see: + /usr/doc/linuxdoc-tools-0.9.56/Slackware-ChangeLog.txt +ap/slackpkg-2.80.2-noarch-3.tgz: Upgraded. Thanks to Piter Punk. +l/hal-0.5.11-x86_64-6.txz: Rebuilt. Rebuilt with some backported patches + from upstream to fix some bugs. + Patched the 10-keymap.fdi with comments and examples for configuring + keyboard layouts, both with and without input hotplugging. + Important changes to /etc/dbus-1/system.d/hal.conf, so be sure to move + the new config into place. + Thanks to Robby Workman. +l/hal-info-20090716-noarch-1.txz: Upgraded. ++--------------------------+ +Wed Jul 29 23:10:01 CDT 2009 +n/bind-9.4.3_P3-x86_64-1.txz: Upgraded. + This BIND update fixes a security problem where a specially crafted + dynamic update message packet will cause named to exit resulting in + a denial of service. + An active remote exploit is in wide circulation at this time. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0696 + https://www.isc.org/node/479 + (* Security fix *) ++--------------------------+ +Fri Jul 24 19:43:51 CDT 2009 +a/cxxlibs-6.0.10-x86_64-1.txz: Upgraded. Replaced libstdc++.so.6.0.9 with + libstdc++.so.6.0.10, and added libstdc++.so.5.0.7, which is needed by some + commercial software. Thanks to Fred Emmott for the build script help. +ap/dc3dd-6.12.3-x86_64-1.txz: Added. This is a version of dd that has been + patched to include a number of features useful for computer forensics. + Thanks to Barry J. Grundy for the build script. ++--------------------------+ +Sat Jul 18 20:17:35 CDT 2009 +a/pkgtools-13.0-noarch-2.tgz: Rebuilt. Patched installpkg to fix handling + of (some) broken packages. Thanks to Jan Rafaj. ++--------------------------+ +Sat Jul 18 16:04:24 CDT 2009 +x/pixman-0.15.10-x86_64-2.txz: Reverted to pixman-0.15.10. There seem to + be problems with all the newer versions we have tested, for example broken + compositing, or missing icons in the KDE4 tray. ++--------------------------+ +Fri Jul 17 21:05:16 CDT 2009 +a/e2fsprogs-1.41.8-x86_64-1.txz: Upgraded. +a/slocate-3.1-x86_64-3.txz: Rebuilt. Changed the daily updatedb cron job + to use "ionice -c3 nice -n 19". Thanks to Andy Alt. +a/sysvinit-scripts-1.2-noarch-30.txz: Rebuilt. Updated rescan-scsi-bus. +n/getmail-4.9.2-noarch-1.txz: Upgraded. +n/nmap-5.00-x86_64-1.txz: Upgraded. +n/snownews-1.5.11-x86_64-2.txz: Rebuilt. + Linked with ncursesw instead of regular ncurses for unicode support. + Thanks to Gwenhael Pierre Élie. +x/mesa-7.4.4-x86_64-2.txz: Rebuilt. Fixed paths in .pc files. + Thanks to Markus Rinne. +xap/mozilla-firefox-3.5.1-x86_64-2.txz: Rebuilt. + Updated to the slightly different 3.5.x Firefox logo png. +extra/slacktrack/slacktrack-2.06-x86_64-1.txz: Upgraded. + Thanks to Stuart Winter. +extra/xf86-video-intel-alternate/xf86-video-intel-2.7.99.901-x86_64-1.txz: + Added. The .902 driver seems to require KMS, while this one doesn't. ++--------------------------+ +Thu Jul 16 19:25:26 CDT 2009 +x/dri2proto-2.1-x86_64-1.txz: Upgraded. +x/inputproto-1.5.1-noarch-1.txz: Upgraded. +x/libFS-1.0.2-x86_64-1.txz: Upgraded. +x/libXaw-1.0.6-x86_64-1.txz: Upgraded. +x/libXt-1.0.6-x86_64-1.txz: Upgraded. +x/pixman-0.15.16-x86_64-1.txz: Upgraded. +x/util-macros-1.2.2-noarch-1.txz: Upgraded. +x/xf86-video-ati-6.12.2-x86_64-2.txz: Upgraded. +x/xf86-video-cirrus-1.3.1-x86_64-1.txz: Upgraded. +x/xf86-video-dummy-0.3.2-x86_64-1.txz: Upgraded. +x/xf86-video-glint-1.2.3-x86_64-1.txz: Upgraded. +x/xf86-video-i128-1.3.2-x86_64-1.txz: Upgraded. +x/xf86-video-i740-1.3.1-x86_64-1.txz: Upgraded. +x/xf86-video-intel-2.7.1-x86_64-2.txz: Rebuilt. +x/xf86-video-neomagic-1.2.3-x86_64-1.txz: Upgraded. +x/xf86-video-nv-2.1.14-x86_64-1.txz: Upgraded. +x/xf86-video-rendition-4.2.2-x86_64-1.txz: Upgraded. +x/xf86-video-s3-0.6.2-x86_64-1.txz: Upgraded. +x/xf86-video-s3virge-1.10.3-x86_64-1.txz: Upgraded. +x/xf86-video-savage-2.3.0-x86_64-1.txz: Upgraded. +x/xf86-video-siliconmotion-1.7.2-x86_64-1.txz: Upgraded. +x/xf86-video-sisusb-0.9.2-x86_64-1.txz: Upgraded. +x/xf86-video-tdfx-1.4.2-x86_64-1.txz: Upgraded. +x/xf86-video-trident-1.3.2-x86_64-1.txz: Upgraded. +x/xf86-video-tseng-1.2.2-x86_64-1.txz: Upgraded. +x/xf86-video-voodoo-1.2.2-x86_64-1.txz: Upgraded. +x/xorg-server-1.6.2-x86_64-1.txz: Upgraded. +x/xorg-server-xephyr-1.6.2-x86_64-1.txz: Upgraded. +x/xorg-server-xnest-1.6.2-x86_64-1.txz: Upgraded. +x/xorg-server-xvfb-1.6.2-x86_64-1.txz: Upgraded. +Just in case xf86-video-intel-2.7.1 has problems on your machine, perhaps +one of these versions will work better: +extra/xf86-video-intel-alternate/xf86-video-intel-2.5.1-x86_64-1.txz: + Added. +extra/xf86-video-intel-alternate/xf86-video-intel-2.6.3-x86_64-1.txz: + Added. +extra/xf86-video-intel-alternate/xf86-video-intel-2.7.99.902-x86_64-1.txz: + Added. + Thanks to Robby Workman for preparing these X updates. ++--------------------------+ +Thu Jul 16 13:14:54 CDT 2009 +xap/mozilla-firefox-3.5.1-x86_64-1.txz: Upgraded. + This fixes a vulnerability in Firefox 3.5's Just-in-time (JIT) JavaScript + compiler. For more information, see: + http://blog.mozilla.com/security/2009/07/14/critical-javascript-vulnerability-in-firefox-35/ + (* Security fix *) ++--------------------------+ +Wed Jul 15 20:51:29 CDT 2009 +a/kernel-firmware-2.6.29.6-noarch-1.txz: Upgraded. +a/kernel-generic-2.6.29.6-x86_64-1.txz: Upgraded. +a/kernel-huge-2.6.29.6-x86_64-1.txz: Upgraded. +a/kernel-modules-2.6.29.6-x86_64-1.txz: Upgraded. +a/mkinitrd-1.3.4-x86_64-2.txz: Rebuilt. Added a small patch to mkinitrd to + avoid an error message (harmless, but still) about a missing udevadm. + Thanks to Robby Workman. +a/shadow-4.0.3-x86_64-17.txz: Rebuilt. Added "power" and "netdev" to the + list of suggested groups for desktop users. +a/udev-141-x86_64-3.txz: Rebuilt. Added aic94xx to /etc/modprobe.d/blacklist. + Change config files in /etc/modprobe.d/ to use a .conf suffix in preparation + for newer versions of module-init-tools. + Let the psmouse module load with the default kernel configuration, rather + than forcing proto=imps. If this causes problems with your KVM, uncomment + the line in /etc/modprobe.d/psmouse. +ap/zsh-4.3.10-x86_64-1.txz: Upgraded. + Added support for xz file formats to zsh's completion. + Thanks to Andrew Psaltis for the patch. +d/kernel-headers-2.6.29.6-x86-1.txz: Upgraded. +k/kernel-source-2.6.29.6-noarch-1.txz: Upgraded. +n/dirmngr-1.0.3-x86_64-1.txz: Upgraded. +n/gnupg2-2.0.12-x86_64-1.txz: Upgraded. +n/iwlwifi-4965-ucode-228.61.2.24-fw-1.txz: Upgraded. +n/iwlwifi-5150-ucode-8.24.2.2-fw-1.txz: Added. +n/libksba-1.0.6-x86_64-1.txz: Upgraded. +x/mesa-7.4.4-x86_64-1.txz: Upgraded. (moved from /testing) +extra/bash-completion/bash-completion-20060301-noarch-2.txz: Added. +isolinux/initrd.img: Rebuilt. +kernels/*: Rebuilt. +usb-and-pxe-installers/: Rebuilt. ++--------------------------+ +Tue Jul 14 18:10:01 CDT 2009 +a/e2fsprogs-1.41.7-x86_64-1.txz: Upgraded. +ap/mc-20090714_git-x86_64-1.txz: Upgraded. +ap/slackpkg-2.80.1-noarch-2.tgz: Upgraded. Thanks to Piter Punk. +l/gnome-icon-theme-2.26.0-x86_64-1.txz: Upgraded. +l/libgsf-1.14.15-x86_64-1.txz: Upgraded. +n/dhcp-3.1.2p1-x86_64-1.txz: Upgraded. + A stack overflow vulnerability was fixed in dhclient that could allow + remote attackers to execute arbitrary commands as root on the system, + or simply terminate the client, by providing an over-long subnet-mask + option. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0692 + (* Security fix *) +extra/wicd/wicd-1.6.2-x86_64-1.txz: Upgraded. ++--------------------------+ +Sat Jul 11 18:31:32 CDT 2009 +l/qt-r994599-x86_64-1.txz: Upgraded to qt-copy-r994599. +n/php-5.2.10-x86_64-2.txz: Rebuilt. Installed the pear.php.net.reg and + pecl.php.net.reg files from php-5.2.9, since the ones installed by + php-5.2.10 are broken. Thanks to Mike Peachey for the bug report. +xap/mozilla-firefox-3.5-x86_64-1.txz: Upgraded to mozilla-firefox-3.5. ++--------------------------+ +Wed Jul 1 16:04:35 CDT 2009 +Hi folks -- the TODO isn't entirely empty here, but it's pretty much down +to minor nits, and so we're going to call this release candidate #1 and +(mostly) freeze further updates unless they happen to fix problems. +Regarding the kernel, 2.6.29.x has been well tested with this userspace +and seems like the best choice to ship for production use. Perhaps we +can put something else (at least source and configs) in /testing, though. +a/slocate-3.1-x86_64-2.txz: Rebuilt. Don't index cifs or tmpfs. + Add a few more directories to the list of paths to prune. + Thanks to Cor Molenaar and Erik Jan Tromp. +l/urwid-0.9.8.4-x86_64-1.txz: Added. Needed for wicd. +n/dnsmasq-2.49-x86_64-1.txz: Upgraded. +n/httpd-2.2.11-x86_64-2.txz: Rebuilt. This needed a recompile against the + new apr package to fix building new modules. + Thanks to Michael Johnson and Ian Carolan for reporting this issue. +n/iwlwifi-3945-ucode-15.32.2.9-fw-1.txz: Upgraded. +n/iwlwifi-5000-ucode-8.24.2.12-fw-1.txz: Upgraded. +n/php-5.2.10-x86_64-1.txz: Upgraded. +x/xorg-server-1.6.1-x86_64-2.txz: Rebuilt. + Fixed default-font-path. Thanks to Bruce Hill. + Patched a key repeat problem in XineramaCheckMotion. + Thanks to Adam Kennedy for pointing out the fix. +x/xorg-server-xephyr-1.6.1-x86_64-2.txz: Rebuilt. +x/xorg-server-xnest-1.6.1-x86_64-2.txz: Rebuilt. +x/xorg-server-xvfb-1.6.1-x86_64-2.txz: Rebuilt. +xap/electricsheep-20090306-x86_64-2.txz: Rebuilt. Patched to fix an issue + where mplayer needs a buffer when reading from a pipe. + Thanks to Eric Hameleers. +extra/wicd/wicd-1.6.1-x86_64-1.txz: Upgraded. Thanks to Robby Workman. ++--------------------------+ +Tue Jun 30 00:39:54 CDT 2009 +ap/ghostscript-8.64-x86_64-2.txz: Rebuilt. + Patched various problems with ghostscript that could lead to a denial + of service or the execution of arbitrary code when processing a malicious + or malformed file. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0196 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0583 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0584 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0792 + (* Security fix *) ++--------------------------+ +Mon Jun 29 14:44:25 CDT 2009 +kde/kdenetwork-4.2.4-x86_64-2.txz: Rebuilt. + Patched to fix Yahoo! protocol. Thanks to Matt Rogers. +xap/pidgin-2.5.8-x86_64-1.txz: Upgraded. ++--------------------------+ +Mon Jun 29 02:14:32 CDT 2009 +d/git-1.6.3.3-x86_64-1.txz: Upgraded. +d/subversion-1.6.3-x86_64-1.txz: Upgraded. +kde/amarok-2.1.1-x86_64-1.txz: Upgraded. +kde/koffice-2.0.1-x86_64-1.txz: Upgraded. +kdei/koffice-l10n-*-2.0.1-noarch-1.txz: + Upgraded to KOffice 2.0.1 l10n packages. ++--------------------------+ +Sat Jun 27 19:02:36 CDT 2009 +ap/most-5.0.0a-x86_64-2.txz: Fixed doc directory. + Thanks to Ellington Santos. +xap/mozilla-thunderbird-2.0.0.22-x86_64-1.txz: + Upgraded to thunderbird-2.0.0.22. + This upgrade fixes some more security bugs. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/thunderbird20.html + (* Security fix *) ++--------------------------+ +Fri Jun 26 22:06:58 CDT 2009 +n/samba-3.2.13-x86_64-1.txz: Upgraded. + This upgrade fixes the following security issues: + o CVE-2009-1888: + In Samba 3.0.31 to 3.3.5 (inclusive), an uninitialized read of a + data value can potentially affect access control when "dos filemode" + is set to "yes". + o CVE-2009-1886: + In Samba 3.2.0 to 3.2.12 (inclusive), the smbclient commands dealing + with file names treat user input as a format string to asprintf. + With a maliciously crafted file name smbclient can be made + to execute code triggered by the server. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1888 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1886 + (* Security fix *) +n/sendmail-8.14.3-x86_64-2.txz: Rebuilt. + Fixed missing praliases. Thanks to Mark Post. +n/sendmail-cf-8.14.3-noarch-2.txz: Rebuilt. +xap/MPlayer-r29390-x86_64-1.txz: Upgraded. +testing/packages/mesa-7.4.4-x86_64-1.txz: Upgraded. ++--------------------------+ +Wed Jun 24 19:48:10 CDT 2009 +l/seamonkey-solibs-1.1.17-x86_64-1.txz: + Upgraded to seamonkey-1.1.17 shared libraries. +xap/seamonkey-1.1.17-x86_64-1.txz: + Upgraded to seamonkey-1.1.17. + This release fixes some more security vulnerabilities. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/seamonkey11.html + (* Security fix *) ++--------------------------+ +Mon Jun 22 22:24:01 CDT 2009 +a/quota-3.17-x86_64-1.txz: Upgraded. +a/sharutils-4.7-x86_64-1.txz: Upgraded. +ap/lm_sensors-3.1.1-x86_64-1.txz: Upgraded. +ap/mc-20090621_git-x86_64-1.txz: Upgraded. +ap/most-5.0.0a-x86_64-1.txz: Upgraded. +l/exiv2-0.18.1-x86_64-1.txz: Upgraded. +l/slang-2.1.4-x86_64-1.txz: Upgraded. +extra/aspell-word-lists/aspell-pt_BR-20080707_0-noarch-4.txz: Added. ++--------------------------+ +Sun Jun 21 13:23:07 CDT 2009 +xap/pidgin-2.5.7-x86_64-1.txz: Upgraded. + This fixes the Yahoo protocol plugin. Thanks to Willy Sudiarto Raharjo + for letting us know about the problem and the new Pidgin release. ++--------------------------+ +Sat Jun 20 12:49:02 CDT 2009 +testing/packages/bash-4.0.024-x86_64-1.txz: Added. +testing/packages/mesa-7.4.3-x86_64-1.txz: Upgraded. ++--------------------------+ +Sat Jun 20 00:10:23 CDT 2009 +x/mesa-7.4.1-x86_64-2.txz: Rebuilt. The software rasterizer was missing + again. Thanks to Mark Post for catching the omission. ++--------------------------+ +Fri Jun 19 18:22:20 CDT 2009 +d/ruby-1.8.7_p174-x86_64-1.txz: Upgraded. + This fixes a denial of service issue caused by the BigDecimal method + handling large input values improperly that may allow attackers to + crash the interpreter. The issue affects most Rails applications. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1904 + (* Security fix *) +l/libpng-1.2.37-x86_64-1.txz: Upgraded. + This update fixes a possible security issue. Jeff Phillips discovered an + uninitialized-memory-read bug affecting interlaced images that may have + security implications. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2042 + (* Security fix *) +x/mesa-7.4.1-x86_64-1.txz: Upgraded. + Well, actually more like "switched", or "reverted". After many hours + trying to track down the reason for reported instability with X and + compositing (such as crashes when adjusting advanced desktop settings in + KDE), we've found that it seems to happen only with MesaLib 7.4.2. Rather + than trying to cherry-pick changes between 7.4.1 and 7.4.2, we've switched + to shipping 7.4.1 in the main tree, and have not run into any such problems + since making the switch. If people want to continue testing 7.4.2, we've + moved it into /testing. Let us know if you run into any problems with + 7.4.1 that are fixed with 7.4.2, and we'll take a look at individual diffs. +extra/kde3-compat/arts-1.5.10-x86_64-opt1.txz: Added. +extra/kde3-compat/k3b3-1.0.5-x86_64-opt1.txz: Added. + In case the KDE4 version of k3b is not stable, this KDE3 version may be + used along with the KDE3 compatibility packages in extra/kde3-compat/. +extra/kde3-compat/kdelibs3-3.5.10-x86_64-opt1.txz: Added. +extra/kde3-compat/qt3-3.3.8b-x86_64-opt2.txz: Rebuilt. +testing/packages/mesa-7.4.2-x86_64-2.txz: Moved to /testing due to apparent + regressions. ++--------------------------+ +Thu Jun 18 21:21:04 CDT 2009 +The last kernel updates had the wrong names in the ChangeLog due to a cut +and paste error from the IA32 ChangeLog, but it was actually a good thing +because we realized some of the slack-desc files were incorrect as well. +a/kernel-firmware-2.6.29.5-noarch-2.txz: Rebuilt. +a/kernel-generic-2.6.29.5-x86_64-2.txz: Rebuilt. +a/kernel-huge-2.6.29.5-x86_64-2.txz: Rebuilt. +a/kernel-modules-2.6.29.5-x86_64-2.txz: Rebuilt. +d/kernel-headers-2.6.29.5-x86-2.txz: Rebuilt. +l/seamonkey-solibs-1.1.16-x86_64-3.txz: Rebuilt. Fixed /usr/lib64/seamonkey + symlink and path in /etc/ld.so.conf. Thanks to Andy Holder. +k/kernel-source-2.6.29.5-noarch-2.txz: Rebuilt. +n/samba-3.2.12-x86_64-1.txz: Upgraded. +xap/seamonkey-1.1.16-x86_64-3.txz: Rebuilt. ++--------------------------+ +Wed Jun 17 22:11:29 CDT 2009 +a/cryptsetup-1.0.6-x86_64-2.txz: Rebuilt. Fixed cryptsetup to use + "udevadm settle" instead of the deprecated "udevsettle". + Thanks to Robby Workman. +a/kernel-firmware-2.6.29.5-noarch-1.tgz: Upgraded to Linux 2.6.29.5 firmware. +a/kernel-generic-2.6.29.5-x86_64-1.tgz: Upgraded to Linux 2.6.29.5. +a/kernel-huge-2.6.29.5-x86_64-1.tgz: Upgraded to Linux 2.6.29.5. +a/kernel-modules-2.6.29.5-x86_64-1.tgz: Upgraded to Linux 2.6.29.5 modules. +a/pkgtools-13.0-noarch-1.tgz: Bumped version number. +d/kernel-headers-2.6.29.5-x86-1.tgz: Upgraded to Linux 2.6.29.5 headers. +k/kernel-source-2.6.29.5-noarch-1.tgz: Upgraded to Linux 2.6.29.5 source. +l/jre-6u14-x86_64-1.txz: Upgraded to Java(TM) 2 Platform Standard Edition + Runtime Environment Version 6.0 update 14. +n/iproute2-2.6.29_1-x86_64-2.txz: Rebuilt. This needed a recompile + against the new iptables. Thanks to Lars Lindqvist. +extra/jdk-6/jdk-6u14-x86_64-1.txz: Upgraded to Java(TM) 2 Platform Standard + Edition Development Kit Version 6.0 update 14. +isolinux/initrd.img: Rebuilt. +kernels/*: Rebuilt. + Added speakup.s kernel. +usb-and-pxe-installers/: Rebuilt. ++--------------------------+ +Tue Jun 16 17:50:30 CDT 2009 +a/aaa_base-13.0-noarch-1.txz: Rebuilt. Updated slackware-version, and + fixed the /var/X11R6 symlink. +a/e2fsprogs-1.41.6-x86_64-1.txz: Upgraded. +a/ed-1.3-x86_64-1.txz: Upgraded. +a/file-5.03-x86_64-1.txz: Upgraded. +a/findutils-4.4.2-x86_64-1.txz: Upgraded. +a/jfsutils-1.1.14-x86_64-1.txz: Upgraded. +a/ntfs-3g-2009.4.4-x86_64-1.txz: Upgraded. +a/usbutils-0.82-x86_64-1.txz: Upgraded. +a/xfsprogs-3.0.1-x86_64-1.txz: Upgraded. +ap/dmapi-2.2.10-x86_64-1.txz: Upgraded. +ap/man-pages-3.21-noarch-1.txz: Upgraded. +ap/jove-4.16.0.70-x86_64-2.txz: Rebuilt. Fixed jove-recover symlink. +ap/sqlite-3.6.14.2-x86_64-1.txz: Upgraded. +ap/xfsdump-3.0.1-x86_64-1.txz: Upgraded. +d/git-1.6.3.2-x86_64-1.txz: Upgraded. +d/m4-1.4.13-x86_64-1.txz: Upgraded. +d/subversion-1.6.2-x86_64-1.txz: Upgraded. + Thanks to Robby Workman and Vincent Batts for work done on enabling the + bindings for Python, perl, and Ruby. +kde/kdelibs-4.2.4-x86_64-2.txz: Rebuilt. Patched popupapplet.cpp to fix + plasmaboard, a virtual keyboard for plasma. +l/apr-1.3.5-x86_64-1.txz: Upgraded. +l/apr-util-1.3.7-x86_64-1.txz: Upgraded. + Fix underflow in apr_strmatch_precompile. + Fix a denial of service attack against the apr_xml_* interface + using the "billion laughs" entity expansion technique. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0023 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1955 + (* Security fix *) +l/neon-0.28.4-x86_64-1.txz: Upgraded. +l/sdl-1.2.13-x86_64-4.txz: Upgraded. Use SDL_image-1.2.7, and compile SDL + without esd, as linking to esd breaks audio within VirtualBox. Thanks to + Luigi Trovato for the bug report. Also, compile without arts support. +l/seamonkey-solibs-1.1.16-x86_64-2.txz: Added. This is a subset of the + shared libraries from the seamonkey package used for runtime support of + programs (such as rpm) on machines without X, or applications for X. +n/bluez-utils-3.36-x86_64-6.txz: Rebuilt. Edited rc.bluetooth to start hidd + before any other bluetooth service. This avoids an address conflict that + can cause devices to fail to reconnect if the connection is lost. + Thanks to Heinz Wiesinger. +n/iptables-1.4.3.2-x86_64-1.txz: Upgraded. +n/iw-0.9.14-x86_64-1.txz: Upgraded. +n/lftp-3.7.14-x86_64-1.txz: Upgraded. +xap/mozilla-firefox-3.0.11-x86_64-1.txz: + Upgraded to firefox-3.0.11. + This fixes some security issues. + For more information, see: + http://www.mozilla.org/security/known-vulnerabilities/firefox30.html + (* Security fix *) +xap/seamonkey-1.1.16-x86_64-2.txz: Rebuilt. +xap/xfce4-power-manager-0.6.6-x86_64-1.txz: Upgraded. ++--------------------------+ +Thu Jun 11 13:57:36 CDT 2009 +l/gtk+2-2.14.7-x86_64-4.txz: Rebuilt. + Fixed update-gdk-pixbuf-loaders and update-gtk-immodules on x86_64. +l/pango-1.22.4-x86_64-4.txz: Rebuilt. + Fixed update-pango-querymodules on x86_64. +l/pycairo-1.8.4-x86_64-3.txz: Rebuilt. +l/vte-0.20.5-x86_64-1.txz: Upgraded. This reverts the soname bump in the + previous version of vte. :-/ +x/mesa-7.4.2-x86_64-2.txz: Rebuilt. Fixed missing DRI drivers. + Thanks to Jason Detring. +xap/xfce-4.6.1-x86_64-4.txz: Rebuilt against the new vte package. ++--------------------------+ +Wed Jun 10 13:23:30 CDT 2009 +This batch of updates includes a major overhaul of X.Org -- thanks to Robby +Workman for doing a huge amount of work updating the build scripts and testing +everything. A large number of packages were recompiled or upgraded to drop +references to the now-obsolete libxcb-xlib and libXaw8 libraries. We have +workarounds in place for old binaries so it wasn't strictly required, but +recompiling anyway gives a cleaner system. Enjoy! +a/apmd-3.2.2-x86_64-2.txz: Rebuilt. +a/dbus-1.2.14-x86_64-1.txz: Upgraded. +ap/gphoto2-2.4.5-x86_64-1.txz: Upgraded. +ap/gutenprint-5.2.3-x86_64-3.txz: Rebuilt. +ap/hplip-3.9.4b-x86_64-2.txz: Rebuilt. Changed the ./configure options to + restore foomatic-rip-hplip, as some printers still don't work using the + regular foomatic-rip filter. This might require your PPDs to be regenerated + by removing the printer and reinstalling it. Thanks to Robby Workman. +ap/normalize-0.7.7-x86_64-1.txz: Upgraded. +ap/pm-utils-1.2.5-x86_64-1.txz: Upgraded. +d/oprofile-0.9.4-x86_64-2.txz: Rebuilt. +d/python-2.6.2-x86_64-3.txz: Rebuilt. Fixed set_pre_input_hook in readline + module. Thanks to Sébastien Renard. +l/cairo-1.8.6-x86_64-3.txz: Rebuilt. +l/gd-2.0.35-x86_64-3.txz: Rebuilt. +l/gegl-0.0.22-x86_64-1.txz: Upgraded. +l/gstreamer-0.10.23-x86_64-1.txz: Upgraded. +l/gst-plugins-base-0.10.23-x86_64-1.txz: Upgraded. +l/gtk+-1.2.10-x86_64-5.txz: Rebuilt. +l/gtk+2-2.14.7-x86_64-3.txz: Rebuilt. Switched from using a patch for changing + the sysconfdir directory to a sed substitution in the SlackBuild. + Thanks to Andrey V. Panov for this improvement. +l/gtkspell-2.0.15-x86_64-1.txz: Upgraded. +l/hal-0.5.11-x86_64-5.txz: Rebuilt. Patched 10-keymap.fdi to allow the + Ctrl-Alt-Backspace key combination to continue to "zap" the X server as + the default has been for decades. Thanks to Robby Workman. +l/imlib-1.9.15-x86_64-4.txz: Rebuilt. +l/jasper-1.900.1-x86_64-2.txz: Rebuilt. +l/lesstif-0.95.0-x86_64-5.txz: Rebuilt. +l/libcaca-0.99.beta16-x86_64-3.txz: Rebuilt. +l/libglade-2.6.4-x86_64-2.txz: Rebuilt. +l/libgphoto2-2.4.6-x86_64-1.txz: Upgraded. +l/libgtkhtml-2.11.1-x86_64-2.txz: Rebuilt. +l/librsvg-2.26.0-x86_64-2.txz: Rebuilt. +l/libvisual-plugins-0.4.0-x86_64-2.txz: Rebuilt. +l/libwmf-0.2.8.4-x86_64-4.txz: Rebuilt. +l/libwmf-docs-0.2.8.4-noarch-4.txz: Rebuilt. +l/libwnck-2.26.1-x86_64-1.txz: Upgraded. +l/libxklavier-3.9-x86_64-2.txz: Rebuilt. +l/pango-1.22.4-x86_64-3.txz: Rebuilt, added x86_64 multilib support to + update script. +l/poppler-0.10.7-x86_64-1.txz: Upgraded. +l/pycairo-1.8.4-x86_64-2.txz: Rebuilt. +l/pygtk-2.14.1-x86_64-2.txz: Rebuilt. +l/sdl-1.2.13-x86_64-3.txz: Rebuilt. +l/startup-notification-0.9-x86_64-2.txz: Rebuilt. +l/t1lib-5.1.2-x86_64-1.txz: Upgraded. +l/vte-0.20.4-x86_64-1.txz: Upgraded. +t/tetex-3.0-x86_64-6.txz: Rebuilt. +t/tetex-doc-3.0-x86_64-6.txz: Rebuilt. +xap/gimp-2.6.6-x86_64-2.txz: Rebuilt. +xap/gucharmap-2.26.2-x86_64-1.txz: Upgraded. +xap/gxine-0.5.903-x86_64-2.txz: Rebuilt. +xap/imagemagick-6.5.3_3-x86_64-1.txz: Upgraded. +xap/pidgin-2.5.6-x86_64-2.txz: Rebuilt. +xap/rxvt-2.7.10-x86_64-4.txz: Rebuilt. +xap/windowmaker-20060427cvs-x86_64-2.txz: Rebuilt. +xap/xchat-2.8.6-x86_64-3.txz: Rebuilt. +xap/xfce-4.6.1-x86_64-3.txz: Rebuilt. +xap/xine-lib-1.1.16.3-x86_64-5.txz: Rebuilt. +xap/xmms-1.2.11-x86_64-3.txz: Rebuilt. Patched wmxmms to fix a problem with + ARGB visuals and GTK+ v1 apps. Thanks to Jason Detring. +Here are the package changes for the upgraded X series. +First we will list the removed X packages: +x/liboldX-1.0.1-x86_64-1.txz: Removed. +x/xf86-input-calcomp-1.1.2-x86_64-1.txz: Removed. +x/xf86-input-digitaledge-1.1.1-x86_64-1.txz: Removed. +x/xf86-input-dmc-1.1.2-x86_64-1.txz: Removed. +x/xf86-input-dynapro-1.1.2-x86_64-1.txz: Removed. +x/xf86-input-elo2300-1.1.2-x86_64-1.txz: Removed. +x/xf86-input-jamstudio-1.2.0-x86_64-1.txz: Removed. +x/xf86-input-magellan-1.2.0-x86_64-1.txz: Removed. +x/xf86-input-magictouch-1.0.0.5-x86_64-2.txz: Removed. +x/xf86-input-microtouch-1.2.0-x86_64-1.txz: Removed. +x/xf86-input-palmax-1.2.0-x86_64-1.txz: Removed. +x/xf86-input-spaceorb-1.1.1-x86_64-1.txz: Removed. +x/xf86-input-summa-1.2.0-x86_64-1.txz: Removed. +x/xf86-input-tek4957-1.2.0-x86_64-1.txz: Removed. +x/xf86-input-ur98-1.1.0-x86_64-2.txz: Removed. +x/xf86-video-cyrix-1.1.0-x86_64-2.txz: Removed. +x/xf86-video-fbdev-0.4.0-x86_64-1.txz: Removed. +x/xf86-video-i810-1.7.4-x86_64-2.txz: Removed. +x/xf86-video-imstt-1.1.0-x86_64-2.txz: Removed. +x/xf86-video-nsc-2.8.3-x86_64-1.txz: Removed. +x/xf86-video-vga-4.1.0-x86_64-2.txz: Removed. +x/xf86-video-via-0.2.2-x86_64-2.txz: Removed. +x/xphelloworld-1.0.1-x86_64-1.txz: Removed. +x/xrx-1.0.1-x86_64-1.txz: Removed. +Now, here are the upgraded, added, and rebuilt X packages: +x/appres-1.0.1-x86_64-2.txz: Rebuilt. +x/bdftopcf-1.0.1-x86_64-2.txz: Rebuilt. +x/beforelight-1.0.3-x86_64-1.txz: Upgraded. +x/bigreqsproto-1.0.2-noarch-2.txz: Rebuilt. +x/bitmap-1.0.3-x86_64-2.txz: Rebuilt. +x/compiz-0.7.8-x86_64-4.txz: Rebuilt. +x/compositeproto-0.4-noarch-2.txz: Rebuilt. +x/damageproto-1.1.0-noarch-2.txz: Rebuilt. +x/dmxproto-2.2.2-noarch-2.txz: Rebuilt. +x/dri2proto-2.0-x86_64-1.txz: Upgraded. +x/editres-1.0.3-x86_64-2.txz: Rebuilt. +x/encodings-1.0.2-noarch-2.txz: Rebuilt. +x/evieext-1.0.2-noarch-2.txz: Rebuilt. +x/fixesproto-4.0-noarch-2.txz: Rebuilt. +x/font-adobe-100dpi-1.0.0-noarch-3.txz: Rebuilt. +x/font-adobe-75dpi-1.0.0-noarch-3.txz: Rebuilt. +x/font-adobe-utopia-100dpi-1.0.1-noarch-3.txz: Rebuilt. +x/font-adobe-utopia-75dpi-1.0.1-noarch-3.txz: Rebuilt. +x/font-adobe-utopia-type1-1.0.1-noarch-3.txz: Rebuilt. +x/font-alias-1.0.1-noarch-2.txz: Rebuilt. +x/font-arabic-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-bh-100dpi-1.0.0-noarch-3.txz: Rebuilt. +x/font-bh-75dpi-1.0.0-noarch-3.txz: Rebuilt. +x/font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txz: Rebuilt. +x/font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txz: Rebuilt. +x/font-bh-ttf-1.0.0-noarch-3.txz: Rebuilt. +x/font-bh-type1-1.0.0-noarch-3.txz: Rebuilt. +x/font-bitstream-100dpi-1.0.0-noarch-3.txz: Rebuilt. +x/font-bitstream-75dpi-1.0.0-noarch-3.txz: Rebuilt. +x/font-bitstream-speedo-1.0.0-noarch-3.txz: Rebuilt. +x/font-bitstream-type1-1.0.0-noarch-3.txz: Rebuilt. +x/font-cronyx-cyrillic-1.0.0-noarch-3.txz: Rebuilt. +x/font-cursor-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-daewoo-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-dec-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-ibm-type1-1.0.0-noarch-3.txz: Rebuilt. +x/font-isas-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-jis-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-micro-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-misc-cyrillic-1.0.0-noarch-3.txz: Rebuilt. +x/font-misc-ethiopic-1.0.0-noarch-3.txz: Rebuilt. +x/font-misc-meltho-1.0.0-noarch-3.txz: Rebuilt. +x/font-misc-misc-1.0.0-noarch-4.txz: Rebuilt. +x/font-mutt-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-schumacher-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-screen-cyrillic-1.0.1-noarch-3.txz: Rebuilt. +x/font-sony-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-sun-misc-1.0.0-noarch-3.txz: Rebuilt. +x/font-util-1.0.1-x86_64-2.txz: Rebuilt. +x/font-winitzki-cyrillic-1.0.0-noarch-3.txz: Rebuilt. +x/font-xfree86-type1-1.0.1-noarch-2.txz: Rebuilt. +x/fontcacheproto-0.1.2-noarch-2.txz: Rebuilt. +x/fontsproto-2.0.2-noarch-2.txz: Rebuilt. +x/fonttosfnt-1.0.4-x86_64-1.txz: Upgraded. +x/fslsfonts-1.0.2-x86_64-1.txz: Upgraded. +x/fstobdf-1.0.3-x86_64-1.txz: Upgraded. +x/gccmakedep-1.0.2-noarch-2.txz: Rebuilt. +x/glproto-1.4.10-noarch-1.txz: Upgraded. +x/iceauth-1.0.2-x86_64-2.txz: Rebuilt. +x/ico-1.0.2-x86_64-2.txz: Rebuilt. +x/imake-1.0.2-x86_64-3.txz: Rebuilt. +x/inputproto-1.5.0-noarch-1.txz: Upgraded. +x/intel-gpu-tools-1.0.1-x86_64-1.txz: Added. +x/kbproto-1.0.3-noarch-2.txz: Rebuilt. +x/lbxproxy-1.0.1-x86_64-2.txz: Rebuilt. +x/libFS-1.0.1-x86_64-1.txz: Upgraded. +x/libICE-1.0.5-x86_64-1.txz: Upgraded. +x/libSM-1.1.0-x86_64-1.txz: Upgraded. +x/libX11-1.2-x86_64-1.txz: Upgraded. +x/libXScrnSaver-1.1.3-x86_64-2.txz: Rebuilt. +x/libXTrap-1.0.0-x86_64-2.txz: Rebuilt. +x/libXau-1.0.4-x86_64-2.txz: Rebuilt. +x/libXaw-1.0.5-x86_64-1.txz: Upgraded. +x/libXcomposite-0.4.0-x86_64-2.txz: Rebuilt. +x/libXcursor-1.1.9-x86_64-2.txz: Rebuilt. +x/libXdamage-1.1.1-x86_64-2.txz: Rebuilt. +x/libXdmcp-1.0.2-x86_64-2.txz: Rebuilt. +x/libXevie-1.0.2-x86_64-2.txz: Rebuilt. +x/libXext-1.0.5-x86_64-1.txz: Upgraded. +x/libXfixes-4.0.3-x86_64-2.txz: Rebuilt. +x/libXfont-1.4.0-x86_64-1.txz: Upgraded. +x/libXfontcache-1.0.4-x86_64-2.txz: Rebuilt. +x/libXft-2.1.13-x86_64-2.txz: Rebuilt. +x/libXi-1.2.1-x86_64-1.txz: Upgraded. +x/libXinerama-1.0.3-x86_64-2.txz: Rebuilt. +x/libXmu-1.0.4-x86_64-2.txz: Rebuilt. +x/libXp-1.0.0-x86_64-2.txz: Rebuilt. +x/libXpm-3.5.7-x86_64-2.txz: Rebuilt. +x/libXprintAppUtil-1.0.1-x86_64-2.txz: Rebuilt. +x/libXprintUtil-1.0.1-x86_64-2.txz: Rebuilt. +x/libXrandr-1.3.0-x86_64-1.txz: Upgraded. +x/libXrender-0.9.4-x86_64-2.txz: Rebuilt. +x/libXres-1.0.3-x86_64-2.txz: Rebuilt. +x/libXt-1.0.5-x86_64-2.txz: Rebuilt. +x/libXtst-1.0.3-x86_64-2.txz: Rebuilt. +x/libXv-1.0.4-x86_64-2.txz: Rebuilt. +x/libXvMC-1.0.4-x86_64-2.txz: Rebuilt. +x/libXxf86dga-1.0.2-x86_64-2.txz: Rebuilt. +x/libXxf86misc-1.0.1-x86_64-2.txz: Rebuilt. +x/libXxf86vm-1.0.2-x86_64-2.txz: Rebuilt. +x/libdmx-1.0.2-x86_64-2.txz: Rebuilt. +x/libdrm-2.4.11-x86_64-1.txz: Upgraded. +x/libfontenc-1.0.4-x86_64-2.txz: Rebuilt. +x/liblbxutil-1.0.1-x86_64-2.txz: Rebuilt. +x/libpciaccess-0.10.6-x86_64-1.txz: Upgraded. +x/libpthread-stubs-0.1-noarch-2.txz: Rebuilt. +x/libxcb-1.3-x86_64-1.txz: Upgraded. +x/libxkbfile-1.0.5-x86_64-2.txz: Rebuilt. +x/libxkbui-1.0.2-x86_64-2.txz: Rebuilt. +x/listres-1.0.1-x86_64-2.txz: Rebuilt. +x/lndir-1.0.1-x86_64-2.txz: Rebuilt. +x/luit-1.0.3-x86_64-2.txz: Rebuilt. +x/makedepend-1.0.1-x86_64-2.txz: Rebuilt. +x/mesa-7.4.2-x86_64-1.txz: Upgraded. +x/mkcomposecache-1.2-x86_64-2.txz: Rebuilt. +x/mkfontdir-1.0.4-noarch-2.txz: Rebuilt. +x/mkfontscale-1.0.6-x86_64-1.txz: Upgraded. +x/oclock-1.0.1-x86_64-2.txz: Rebuilt. +x/pixman-0.15.10-x86_64-1.txz: Upgraded. +x/printproto-1.0.4-noarch-2.txz: Rebuilt. +x/proxymngr-1.0.1-x86_64-2.txz: Rebuilt. +x/randrproto-1.3.0-noarch-1.txz: Upgraded. +x/recordproto-1.13.2-noarch-2.txz: Rebuilt. +x/rendercheck-1.3-x86_64-2.txz: Rebuilt. +x/renderproto-0.9.3-noarch-2.txz: Rebuilt. +x/resourceproto-1.0.2-noarch-2.txz: Rebuilt. +x/rgb-1.0.3-x86_64-1.txz: Upgraded. +x/rstart-1.0.2-x86_64-2.txz: Rebuilt. +x/scim-1.4.9-x86_64-4.txz: Rebuilt. +x/scim-anthy-1.2.4-x86_64-2.txz: Rebuilt. +x/scim-bridge-0.4.16-x86_64-4.txz: Rebuilt. +x/scim-hangul-0.3.2-x86_64-2.txz: Rebuilt. +x/scim-pinyin-0.5.91-x86_64-2.txz: Rebuilt. +x/scim-input-pad-0.1.2-x86_64-4.txz: Rebuilt. +x/scim-tables-0.5.9-x86_64-3.txz: Rebuilt. +x/scripts-1.0.1-noarch-2.txz: Rebuilt. +x/scrnsaverproto-1.1.0-noarch-2.txz: Rebuilt. +x/sessreg-1.0.4-x86_64-1.txz: Upgraded. +x/setxkbmap-1.0.4-x86_64-2.txz: Rebuilt. +x/showfont-1.0.2-x86_64-1.txz: Upgraded. +x/smproxy-1.0.2-x86_64-2.txz: Rebuilt. +x/trapproto-3.4.3-noarch-2.txz: Rebuilt. +x/twm-1.0.4-x86_64-2.txz: Rebuilt. +x/util-macros-1.2.1-noarch-1.txz: Upgraded. +x/videoproto-2.2.2-noarch-2.txz: Rebuilt. +x/viewres-1.0.1-x86_64-3.txz: Rebuilt. +x/x11-skel-7.4-x86_64-1.txz: Upgraded. +x/x11perf-1.5-x86_64-2.txz: Rebuilt. +x/xauth-1.0.3-x86_64-2.txz: Rebuilt. +x/xbacklight-1.1-x86_64-2.txz: Rebuilt. +x/xbiff-1.0.1-x86_64-2.txz: Rebuilt. +x/xbitmaps-1.0.1-noarch-2.txz: Rebuilt. +x/xcalc-1.0.2-x86_64-2.txz: Rebuilt. +x/xcb-proto-1.5-noarch-1.txz: Upgraded. +x/xcb-util-0.3.5-x86_64-1.txz: Added. +x/xclipboard-1.0.1-x86_64-2.txz: Rebuilt. +x/xclock-1.0.3-x86_64-2.txz: Rebuilt. +x/xcmiscproto-1.1.2-noarch-2.txz: Rebuilt. +x/xcmsdb-1.0.1-x86_64-2.txz: Rebuilt. +x/xcompmgr-1.1.4-x86_64-2.txz: Rebuilt. +x/xconsole-1.0.3-x86_64-2.txz: Rebuilt. +x/xcursor-themes-1.0.1-noarch-2.txz: Rebuilt. +x/xcursorgen-1.0.2-x86_64-2.txz: Rebuilt. +x/xdbedizzy-1.0.2-x86_64-2.txz: Rebuilt. +x/xditview-1.0.1-x86_64-2.txz: Rebuilt. +x/xdm-1.1.8-x86_64-1.txz: Upgraded. +x/xdpyinfo-1.0.3-x86_64-1.txz: Upgraded. +x/xdriinfo-1.0.2-x86_64-2.txz: Rebuilt. +x/xedit-1.1.2-x86_64-1.txz: Upgraded. +x/xev-1.0.3-x86_64-2.txz: Rebuilt. +x/xextproto-7.0.5-noarch-1.txz: Upgraded. +x/xeyes-1.0.1-x86_64-2.txz: Rebuilt. +x/xf86-input-acecad-1.3.0-x86_64-1.txz: Upgraded. +x/xf86-input-aiptek-1.2.0-x86_64-1.txz: Upgraded. +x/xf86-input-citron-2.2.2-x86_64-1.txz: Upgraded. +x/xf86-input-elographics-1.2.3-x86_64-2.txz: Rebuilt. +x/xf86-input-evdev-2.2.2-x86_64-1.txz: Upgraded. +x/xf86-input-fpit-1.3.0-x86_64-1.txz: Upgraded. +x/xf86-input-hyperpen-1.3.0-x86_64-1.txz: Upgraded. +x/xf86-input-joystick-1.4.0-x86_64-1.txz: Upgraded. +x/xf86-input-keyboard-1.3.2-x86_64-1.txz: Upgraded. +x/xf86-input-mouse-1.4.0-x86_64-1.txz: Upgraded. +x/xf86-input-mutouch-1.2.1-x86_64-2.txz: Rebuilt. +x/xf86-input-penmount-1.4.0-x86_64-1.txz: Upgraded. +x/xf86-input-synaptics-1.1.2-x86_64-1.txz: Upgraded. +x/xf86-input-vmmouse-12.6.4-x86_64-1.txz: Upgraded. +x/xf86-input-void-1.2.0-x86_64-1.txz: Upgraded. +x/xf86-video-apm-1.2.1-x86_64-1.txz: Upgraded. +x/xf86-video-ark-0.7.1-x86_64-1.txz: Upgraded. +x/xf86-video-ast-0.89.8-x86_64-1.txz: Upgraded. +x/xf86-video-ati-6.12.2-x86_64-1.txz: Upgraded. +x/xf86-video-chips-1.2.1-x86_64-1.txz: Upgraded. +x/xf86-video-cirrus-1.3.0-x86_64-1.txz: Upgraded. +x/xf86-video-dummy-0.3.1-x86_64-1.txz: Upgraded. +x/xf86-video-glint-1.2.2-x86_64-1.txz: Upgraded. +x/xf86-video-i128-1.3.1-x86_64-2.txz: Rebuilt. +x/xf86-video-i740-1.3.0-x86_64-1.txz: Upgraded. +x/xf86-video-intel-2.7.1-x86_64-1.txz: Upgraded. +x/xf86-video-mach64-6.8.1-x86_64-1.txz: Upgraded. +x/xf86-video-mga-1.4.10-x86_64-1.txz: Upgraded. +x/xf86-video-neomagic-1.2.2-x86_64-1.txz: Upgraded. +x/xf86-video-newport-0.2.2-x86_64-1.txz: Upgraded. +x/xf86-video-nv-2.1.13-x86_64-1.txz: Upgraded. +x/xf86-video-openchrome-0.2.903-x86_64-2.txz: Rebuilt. +x/xf86-video-r128-6.8.0-x86_64-2.txz: Rebuilt. +x/xf86-video-radeonhd-1.2.5-x86_64-1.txz: Upgraded. +x/xf86-video-rendition-4.2.1-x86_64-1.txz: Upgraded. +x/xf86-video-s3-0.6.1-x86_64-1.txz: Upgraded. +x/xf86-video-s3virge-1.10.2-x86_64-1.txz: Upgraded. +x/xf86-video-savage-2.2.1-x86_64-2.txz: Rebuilt. +x/xf86-video-siliconmotion-1.7.1-x86_64-1.txz: Upgraded. +x/xf86-video-sis-0.10.1-x86_64-1.txz: Upgraded. +x/xf86-video-sisusb-0.9.1-x86_64-1.txz: Upgraded. +x/xf86-video-tdfx-1.4.1-x86_64-1.txz: Upgraded. +x/xf86-video-tga-1.2.0-x86_64-1.txz: Upgraded. +x/xf86-video-trident-1.3.1-x86_64-1.txz: Upgraded. +x/xf86-video-tseng-1.2.1-x86_64-1.txz: Upgraded. +x/xf86-video-v4l-0.2.0-x86_64-2.txz: Rebuilt. +x/xf86-video-vesa-2.2.0-x86_64-1.txz: Upgraded. +x/xf86-video-vmware-10.16.6-x86_64-1.txz: Upgraded. +x/xf86-video-voodoo-1.2.1-x86_64-1.txz: Upgraded. +x/xf86bigfontproto-1.1.2-noarch-2.txz: Rebuilt. +x/xf86dga-1.0.2-x86_64-2.txz: Rebuilt. +x/xf86dgaproto-2.0.3-noarch-2.txz: Rebuilt. +x/xf86driproto-2.0.4-noarch-2.txz: Rebuilt. +x/xf86miscproto-0.9.2-noarch-2.txz: Rebuilt. +x/xf86rushproto-1.1.2-noarch-2.txz: Rebuilt. +x/xf86vidmodeproto-2.2.2-noarch-2.txz: Rebuilt. +x/xfd-1.0.1-x86_64-2.txz: Rebuilt. +x/xfindproxy-1.0.1-x86_64-2.txz: Rebuilt. +x/xfontsel-1.0.2-x86_64-2.txz: Rebuilt. +x/xfs-1.0.8-x86_64-1.txz: Upgraded. +x/xfsinfo-1.0.2-x86_64-1.txz: Upgraded. +x/xfwp-1.0.1-x86_64-2.txz: Rebuilt. +x/xgamma-1.0.2-x86_64-2.txz: Rebuilt. +x/xgc-1.0.1-x86_64-2.txz: Rebuilt. +x/xhost-1.0.2-x86_64-2.txz: Rebuilt. +x/xineramaproto-1.1.2-noarch-2.txz: Rebuilt. +x/xinit-1.1.1-x86_64-1.txz: Upgraded. +x/xinput-1.4.2-x86_64-1.txz: Upgraded. +x/xkbcomp-1.0.5-x86_64-1.txz: Upgraded. +x/xkbevd-1.0.2-x86_64-2.txz: Rebuilt. +x/xkbprint-1.0.1-x86_64-2.txz: Rebuilt. +x/xkbutils-1.0.1-x86_64-2.txz: Rebuilt. +x/xkeyboard-config-1.6-noarch-1.txz: Upgraded. +x/xkill-1.0.1-x86_64-2.txz: Rebuilt. +x/xload-1.0.2-x86_64-2.txz: Rebuilt. +x/xlogo-1.0.1-x86_64-2.txz: Rebuilt. +x/xlsatoms-1.0.1-x86_64-2.txz: Rebuilt. +x/xlsclients-1.0.1-x86_64-2.txz: Rebuilt. +x/xlsfonts-1.0.2-x86_64-2.txz: Rebuilt. +x/xmag-1.0.2-x86_64-2.txz: Rebuilt. +x/xman-1.0.3-x86_64-2.txz: Rebuilt. +x/xmessage-1.0.2-x86_64-2.txz: Rebuilt. +x/xmh-1.0.1-x86_64-2.txz: Rebuilt. +x/xmodmap-1.0.3-x86_64-2.txz: Rebuilt. +x/xmore-1.0.1-x86_64-2.txz: Rebuilt. +x/xorg-cf-files-1.0.2-noarch-2.txz: Rebuilt. +x/xorg-docs-1.4-noarch-2.txz: Rebuilt. +x/xorg-server-1.6.1-x86_64-1.txz: Upgraded. +x/xorg-server-xephyr-1.6.1-x86_64-1.txz: Added. +x/xorg-server-xnest-1.6.1-x86_64-1.txz: Upgraded. +x/xorg-server-xvfb-1.6.1-x86_64-1.txz: Upgraded. +x/xorg-sgml-doctools-1.2-noarch-2.txz: Rebuilt. +x/xplsprinters-1.0.1-x86_64-2.txz: Rebuilt. +x/xpr-1.0.2-x86_64-2.txz: Rebuilt. +x/xprehashprinterlist-1.0.1-x86_64-2.txz: Rebuilt. +x/xprop-1.0.4-x86_64-2.txz: Rebuilt. +x/xproto-7.0.15-noarch-1.txz: Upgraded. +x/xproxymanagementprotocol-1.0.2-noarch-2.txz: Rebuilt. +x/xpyb-1.1-x86_64-1.txz: Added. +x/xrandr-1.3.0-x86_64-1.txz: Upgraded. +x/xrdb-1.0.5-x86_64-2.txz: Rebuilt. +x/xrefresh-1.0.2-x86_64-2.txz: Rebuilt. +x/xscope-1.1-x86_64-1.txz: Added. +x/xset-1.0.4-x86_64-2.txz: Rebuilt. +x/xsetmode-1.0.0-x86_64-2.txz: Rebuilt. +x/xsetpointer-1.0.1-x86_64-2.txz: Rebuilt. +x/xsetroot-1.0.2-x86_64-2.txz: Rebuilt. +x/xsm-1.0.1-x86_64-2.txz: Rebuilt. +x/xstdcmap-1.0.1-x86_64-2.txz: Rebuilt. +x/xterm-243-x86_64-2.txz: Rebuilt. +x/xtrans-1.2.3-noarch-1.txz: Upgraded. +x/xtrap-1.0.2-x86_64-2.txz: Rebuilt. +x/xvidtune-1.0.1-x86_64-2.txz: Rebuilt. +x/xvinfo-1.0.2-x86_64-2.txz: Rebuilt. +x/xwd-1.0.2-x86_64-1.txz: Upgraded. +x/xwininfo-1.0.4-x86_64-1.txz: Upgraded. +x/xwud-1.0.1-x86_64-2.txz: Rebuilt. ++--------------------------+ +Sun Jun 7 17:48:06 CDT 2009 +kde/amarok-2.1-x86_64-2.txz: Recompiled to restore libgpod support. + Thanks to Carlos Corbacho. +l/libgpod-0.7.2-x86_64-1.txz: Upgraded to libgpod-0.7.2. +l/libkarma-0.1.1-x86_64-1.txz: Upgraded to libkarma-0.1.1. +l/libmtp-0.3.6-x86_64-1.txz: Upgraded to libmtp-0.3.6. ++--------------------------+ +Sat Jun 6 16:43:18 CDT 2009 +This batch of updates includes KDE 4.2.4. Thanks to the KDE team (it just keeps +getting better! :-), and to Eric Hameleers for updating the KDE build scripts. +a/kernel-modules-2.6.29.4-x86_64-3.txz: Fixed rc.modules to apply CPUfreq + settings to all online CPUs, not just cpu0. Thanks to Ellington Santos. +ap/linuxdoc-tools-0.9.56-x86_64-3.txz: Fixed to remove .pyc files already + present in the Python package. Thanks to Stuart Winter. +ap/mysql-5.0.82-x86_64-1.txz: Upgraded to mysql-5.0.82. +ap/rpm-4.7.0-x86_64-2.txz: Recompiled to add python bindings. +ap/slackpkg-2.71.2-noarch-2.tgz: Configure Slackware64 defaults for ARCH and + PKGMAIN. Thanks to Eric Hameleers. +d/pkg-config-0.23-x86_64-3.txz: Fixed lib64 pathnames in + /etc/profile.d/pkgconfig.* Thanks to Eric Hameleers. +kde/amarok-2.1-x86_64-1.txz: Upgraded to amarok-2.1. +kde/guidance-power-manager-4.2.4-x86_64-1.txz: + Upgraded to guidance-power-manager-4.2.4. +kde/kdeaccessibility-4.2.4-x86_64-1.txz: Upgraded to kdeaccessibility-4.2.4. +kde/kdeadmin-4.2.4-x86_64-1.txz: Upgraded to kdeadmin-4.2.4. +kde/kdeartwork-4.2.4-x86_64-1.txz: Upgraded to kdeartwork-4.2.4. +kde/kdebase-4.2.4-x86_64-1.txz: Upgraded to kdebase-4.2.4. +kde/kdebase-runtime-4.2.4-x86_64-1.txz: Upgraded to kdebase-runtime-4.2.4. +kde/kdebase-workspace-4.2.4-x86_64-1.txz: Upgraded to kdebase-workspace-4.2.4. +kde/kdebindings-4.2.4-x86_64-1.txz: Upgraded to kdebindings-4.2.4. +kde/kdeedu-4.2.4-x86_64-1.txz: Upgraded to kdeedu-4.2.4. +kde/kdegames-4.2.4-x86_64-1.txz: Upgraded to kdegames-4.2.4. +kde/kdegraphics-4.2.4-x86_64-1.txz: Upgraded to kdegraphics-4.2.4. +kde/kdelibs-4.2.4-x86_64-1.txz: Upgraded to kdelibs-4.2.4. +kde/kdemultimedia-4.2.4-x86_64-1.txz: Upgraded to kdemultimedia-4.2.4. +kde/kdenetwork-4.2.4-x86_64-1.txz: Upgraded to kdenetwork-4.2.4. +kde/kdepim-4.2.4-x86_64-1.txz: Upgraded to kdepim-4.2.4. +kde/kdepimlibs-4.2.4-x86_64-1.txz: Upgraded to kdepimlibs-4.2.4. +kde/kdeplasma-addons-4.2.4-x86_64-1.txz: Upgraded to kdeplasma-addons-4.2.4. +kde/kdesdk-4.2.4-x86_64-1.txz: Upgraded to kdesdk-4.2.4. +kde/kdetoys-4.2.4-x86_64-1.txz: Upgraded to kdetoys-4.2.4. +kde/kdeutils-4.2.4-x86_64-1.txz: Upgraded to kdeutils-4.2.4. +kde/kdewebdev-4.2.4-x86_64-1.txz: Upgraded to kdewebdev-4.2.4. +kde/koffice-2.0.0-x86_64-1.txz: Upgraded to koffice-2.0.0. +kde/konq-plugins-4.2.4-x86_64-1.txz: Upgraded to konq-plugins-4.2.4. +kde/ktorrent-3.2.2-x86_64-1.txz: Upgraded to ktorrent-3.2.2. +kde/mplayerthumbs-1.2-x86_64-2.txz: Recompiled. +kde/skanlite-0.3_kde4.2.4-x86_64-1.txz: Upgraded to skanlite-0.3_kde4.2.4. +kdei/kde-l10n-*-4.2.4-noarch-1.txz: Upgraded to KDE 4.2.4 l10n packages. +kdei/koffice-l10n-*-2.0.0-noarch-1.txz: + Upgraded to KOffice 2.0.0 l10n packages. +l/qtscriptgenerator-0.1.0-x86_64-1.txz: Added qtscriptgenerator-0.1.0, + needed by amarok. Thanks to Heinz Wiesinger for the build script. +l/taglib-extras-0.1.3-x86_64-1.txz: Added taglib-extras-0.1.3, + needed by amarok. +n/netatalk-2.0.4-x86_64-1.txz: Upgraded to netatalk-2.0.4. + Thanks to Robby Workman. +n/vsftpd-2.1.2-x86_64-1.txz: Upgraded to vsftpd-2.1.2. + Thanks to Robby Workman. +extra/slacktrack/slacktrack-2.05-x86_64-1.txz: Upgraded to slacktrack-2.05. + Thanks to Stuart Winter. ++--------------------------+ +Wed Jun 3 18:17:33 CDT 2009 +a/kernel-modules-2.6.29.4-x86_64-2.txz: Fixed missing rc.modules symlink. + Thanks to Ricardo Felipe Klein. +a/pkgtools-12.34567890-noarch-6.tgz: Patched makepkg to warn about possible + problems with /usr/share/info usage. Thanks to Robby Workman. +l/liboil-0.3.16-x86_64-1.txz: Upgraded to liboil-0.3.16. +n/ntp-4.2.4p7-x86_64-1.txz: Upgraded to ntp-4.2.4p7. + Stack-based buffer overflow in the cookedprint function in ntpq/ntpq.c in ntpq + in NTP before 4.2.4p7-RC2 allows arbitrary code execution by a malicious + remote NTP server. + Stack-based buffer overflow in the crypto_recv function in ntp_crypto.c in + ntpd in NTP before 4.2.4p7 allows remote attackers to execute arbitrary code. + This does not affect the Slackware ntpd as it does not link with openssl. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0159 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1252 + (* Security fix *) +extra/tightvnc/tightvnc-1.3.10-x86_64-1.txz: Upgraded to tightvnc-1.3.10. ++--------------------------+ +Sun May 31 13:11:58 CDT 2009 +xap/xine-lib-1.1.16.3-x86_64-4.txz: Fixed $ARCH typo, and added the + ${LIBDIRSUFFIX} to the created codecs directory. ++--------------------------+ +Fri May 29 17:16:40 CDT 2009 +a/kernel-firmware-2.6.29.4-noarch-1.txz: Upgraded to Linux 2.6.29.4 firmware. +a/kernel-generic-2.6.29.4-x86_64-1.txz: Upgraded to Linux 2.6.29.4. +a/kernel-huge-2.6.29.4-x86_64-1.txz: Upgraded to Linux 2.6.29.4. +a/kernel-modules-2.6.29.4-x86_64-1.txz: Upgraded to Linux 2.6.29.4 modules. +ap/vim-7.2.191-x86_64-1.txz: Patched vimrc to add the option + 'set backupskip+=/var/spool/cron/*', which should fix the problems with + using vim with "crontab -e". Note that if a global vimrc already exists + the new one will be installed as vimrc.new and must be moved into place. + Thanks to Rodrigo Bistolfi for the patch. +d/kernel-headers-2.6.29.4-x86-1.txz: Upgraded to Linux 2.6.29.4 headers. +k/kernel-source-2.6.29.4-noarch-1.txz: Upgraded to Linux 2.6.29.4 source. +xap/MPlayer-r29328-x86_64-1.txz: Upgraded to MPlayer-r29328, and changed the + codecs directory to /usr/lib64/codecs. +xap/vim-gvim-7.2.191-x86_64-1.txz: Recompiled. +xap/xine-lib-1.1.16.3-x86-64-3.txz: Recompiled, changed the codecs directory + to /usr/lib64/codecs. +isolinux/initrd.img: Rebuilt. +usb-and-pxe-installers/usbboot.img: Rebuilt. ++--------------------------+ +Tue May 26 18:05:17 CDT 2009 +a/kbd-1.15-x86_64-2.txz: Fixed directory perms in the documentation. +ap/linuxdoc-tools-0.9.56-x86_64-2.txz: Added missing asciidoc filters. + Thanks to 'oneforall' for the report. +xap/MPlayer-r29324-x86_64-1.txz: Upgraded to MPlayer-r29324. + Enable runtime CPU detection only for x86 and x86_64. +xap/pidgin-2.5.6-x86_64-1.txz: Upgraded to pidgin-2.5.6. + This version fixes security issues that could lead to a denial of service or + the execution of arbitrary code as the user running Pidgin. + For more information, see: + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1373 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1374 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1375 + http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1376 + (* Security fix *) ++--------------------------+ +Mon May 25 17:52:56 CDT 2009 +a/cryptsetup-1.0.6-x86_64-1.txz: Upgraded to cryptsetup-1.0.6. +d/binutils-2.18.50.0.9-x86_64-2.txz: Changes to enable multilib support. + Thanks to Fred Emmott. +d/gcc-4.3.3-x86_64-4.txz: Changes in specs file to enable multilib support. + Thanks to Fred Emmott. +d/gcc-g++-4.3.3-x86_64-4.txz: Recompiled. +d/gcc-gfortran-4.3.3-x86_64-4.txz: Recompiled. +d/gcc-gnat-4.3.3-x86_64-4.txz: Recompiled. +d/gcc-java-4.3.3-x86_64-4.txz: Recompiled. +d/gcc-objc-4.3.3-x86_64-4.txz: Recompiled. +xap/MPlayer-r29322-x86_64-1.txz: Upgraded to revision r29322. +isolinux/initrd.img: Rebuilt. +usb-and-pxe-installers/usbboot.img: Rebuilt. ++--------------------------+ +Sat May 23 03:09:39 CDT 2009 +We had to recompile ncurses with a couple extra ./configure options to fix +corruption in the nVidia driver installer screens, and this in turn required +recompiling quite a few more packages... +Thanks to Fred Emmott for helping us out with this. :-) +a/aaa_elflibs-12.34-x86_64-2.txz: Rebuilt. +a/dialog-1.1_20080819-x86_64-3.txz: Recompiled. +a/gawk-3.1.6-x86_64-2.txz: Recompiled. +a/less-418-x86_64-3.txz: Recompiled. +a/minicom-2.1-x86_64-3.txz: Recompiled. +a/procps-3.2.7-x86_64-3.txz: Recompiled. +a/shadow-4.0.3-x86_64-16.txz: Recompiled. +a/util-linux-ng-2.14.2-x86_64-2.txz: Recompiled. +ap/a2ps-4.14-x86_64-4.txz: Recompiled. +ap/alsa-utils-1.0.18-x86_64-2.txz: Recompiled. +ap/aumix-2.8-x86_64-2.txz: Recompiled. +ap/bc-1.06.95-x86_64-2.txz: Recompiled. +ap/bpe-2.01.00-x86_64-2.txz: Recompiled. +ap/cdrtools-2.01.01a57-x86_64-3.txz: Recompiled. +ap/gphoto2-2.4.4-x86_64-2.txz: Recompiled. +ap/gutenprint-5.2.3-x86_64-2.txz: Recompiled. +ap/joe-3.5-x86_64-2.txz: Recompiled. +ap/mysql-5.0.81-x86_64-2.txz: Recompiled. +ap/nano-2.0.9-x86_64-2.txz: Recompiled. +ap/rexima-1.4-x86_64-2.txz: Recompiled. +ap/sc-7.16-x86_64-2.txz: Recompiled. +ap/screen-4.0.3-x86_64-2.txz: Recompiled. +ap/sqlite-3.6.14-x86_64-2.txz: Recompiled. +ap/texinfo-4.13a-x86_64-3.txz: Recompiled. +ap/xfsdump-3.0.0-x86_64-2.txz: Recompiled. +ap/zsh-4.3.6-x86_64-2.txz: Recompiled. +d/clisp-2.47-x86_64-2.txz: Recompiled. +d/cmake-2.6.2-x86_64-2.txz: Recompiled. +d/cscope-15.6-x86_64-2.txz: Recompiled. +d/dev86-0.16.17-x86_64-2.txz: Recompiled. +d/gdb-6.8-x86_64-2.txz: Recompiled. +d/gettext-tools-0.17-x86_64-3.txz: Recompiled. +d/guile-1.8.6-x86_64-2.txz: Recompiled. +d/perl-5.10.0-x86_64-2.txz: Recompiled. +d/python-2.6.2-x86_64-2.txz: Recompiled. +d/ruby-1.8.7_p160-x86_64-2.txz: Recompiled. +e/emacs-22.3-x86_64-3.txz: Recompiled. +kde/kdeedu-4.2.3-x86_64-2.txz: Recompiled. +kde/kdepim-4.2.3-x86_64-2.txz: Recompiled. +kde/kdesdk-4.2.3-x86_64-2.txz: Recompiled. +kde/mplayerthumbs-1.2-x86_64-2.txz: Recompiled. +l/exiv2-0.18-x86_64-2.txz: Recompiled. +l/libcaca-0.99.beta16-x86_64-2.txz: Recompiled. +l/libgphoto2-2.4.4-x86_64-2.txz: Recompiled. +l/libnjb-2.2.6-x86_64-4.txz: Recompiled. +l/ncurses-5.7-x86_64-2.txz: Recompiled with --with-chtype=long + --with-mmask-t=long to fix issues with the nVidia installer. + Thanks to Fred Emmott. +l/openexr-1.6.1-x86_64-2.txz: Recompiled. +l/pilot-link-0.12.3-x86_64-9.txz: Recompiled. +l/vte-0.20.1-x86_64-2.txz: Recompiled. +n/alpine-2.00-x86_64-2.txz: Recompiled. +n/bind-9.4.3_P2-x86_64-2.txz: Use /dev/urandom to stop blocking on install. +n/elm-2.5.8-x86_64-2.txz: Recompiled. +n/epic4-2.8-x86_64-2.txz: Recompiled. +n/gnupg2-2.0.11-x86_64-2.txz: Recompiled. +n/gnutls-2.6.6-x86_64-2.txz: Recompiled. +n/imapd-2.00-x86_64-2.txz: Recompiled. +n/iptraf-3.0.0-x86_64-3.txz: Recompiled. +n/irssi-0.8.13-x86_64-2.txz: Recompiled. +n/lftp-3.7.8-x86_64-2.txz: Recompiled. +n/lynx-2.8.6rel.5-x86_64-2.txz: Recompiled. +n/mcabber-0.9.9-x86_64-2.txz: Recompiled. +n/metamail-2.7-x86_64-4.txz: Recompiled. +n/mtr-0.73-x86_64-2.txz: Recompiled. +n/mutt-1.4.2.3-x86_64-2.txz: Recompiled. +n/ncftp-3.2.2-x86_64-2.txz: Recompiled. +n/net-snmp-5.4.2.1-x86_64-2.txz: Recompiled. +n/netatalk-2.0.3-x86_64-2.txz: Recompiled. +n/netkit-bootparamd-0.17-x86_64-2.txz: Recompiled. +n/netkit-ntalk-0.17-x86_64-3.txz: Recompiled. +n/netwatch-1.3.0-x86_64-2.txz: Recompiled. +n/nn-6.7.3-x86_64-2.txz: Recompiled. +n/ntp-4.2.4p6-x86_64-2.txz: Recompiled. +n/openssh-5.2p1-x86_64-2.txz: Recompiled. +n/proftpd-1.3.2-x86_64-2.txz: Recompiled. +n/samba-3.2.10-x86_64-2.txz: Recompiled. +n/telnet-0.17-x86_64-2.txz: Recompiled. +n/tin-1.8.2-x86_64-2.txz: Recompiled. +n/trn-3.6-x86_64-2.txz: Recompiled. +n/wpa_supplicant-0.6.9-x86_64-2.txz: Recompiled. +n/ytalk-3.3.0-x86_64-2.txz: Recompiled. +x/scim-1.4.9-x86_64-3.txz: Recompiled. +x/scim-bridge-0.4.16-x86_64-3.txz: Recompiled. +x/scim-input-pad-0.1.2-x86_64-3.txz: Recompiled. +x/scim-tables-0.5.9-x86_64-2.txz: Recompiled. +x/xorg-server-1.4.2-x86_64-2.txz: Recompiled. +x/xorg-server-xnest-1.4.2-x86_64-2.txz: Recompiled. +x/xorg-server-xvfb-1.4.2-x86_64-2.txz: Recompiled. +xap/MPlayer-r29301-x86_64-2.txz: Recompiled. +xap/gftp-2.0.19-x86_64-2.txz: Recompiled. +xap/gnuchess-5.07-x86_64-4.txz: Recompiled. +xap/pidgin-2.5.5-x86_64-4.txz: Recompiled. +xap/sane-1.0.19-x86_64-4.txz: Recompiled. +xap/xine-lib-1.1.16.3-x86_64-2.txz: Recompiled. +xap/xine-ui-0.99.5-x86_64-2.txz: Recompiled. +y/bsd-games-2.13-x86_64-9.txz: Recompiled. ++--------------------------+ +Tue May 19 15:36:49 CDT 2009 + Ermm... is this thing on? + +Initial public release of Slackware64-current. +He's trying to lay low, but thanks to Eric Hameleers for the huge amount +of work he did to make this possible. :-) + +Enjoy! diff --git a/FILELIST.TXT b/FILELIST.TXT new file mode 100644 index 000000000..1d4c84c0f --- /dev/null +++ b/FILELIST.TXT @@ -0,0 +1,9103 @@ +Wed Aug 26 16:45:17 UTC 2009 + +Here is the file list for this directory. If you are using a +mirror site and find missing or extra files in the disk +subdirectories, please have the archive administrator refresh +the mirror. + +drwxr-xr-x 11 root root 4096 2009-08-26 16:44 . +-rw-r--r-- 1 root root 10116 2009-08-26 14:01 ./ANNOUNCE.13_0 +-rw-r--r-- 1 root root 20933 2006-10-02 04:36 ./BOOTING.TXT +-rw-r--r-- 1 root root 16707 2009-08-26 00:32 ./CHANGES_AND_HINTS.TXT +-rw-r--r-- 1 root root 631081 2009-08-26 15:20 ./CHECKSUMS.md5 +-rw-r--r-- 1 root root 197 2009-08-26 15:20 ./CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 17976 1994-06-10 02:28 ./COPYING +-rw-r--r-- 1 root root 35147 2007-06-30 04:21 ./COPYING3 +-rw-r--r-- 1 root root 19531 2009-08-26 02:07 ./COPYRIGHT.TXT +-rw-r--r-- 1 root root 616 2006-10-02 04:37 ./CRYPTO_NOTICE.TXT +-rw-r--r-- 1 root root 70342 2009-08-26 15:01 ./ChangeLog.txt +-rw-r--r-- 1 root root 823491 2009-08-26 15:18 ./FILELIST.TXT +-rw-r--r-- 1 root root 1565 2003-02-26 23:34 ./GPG-KEY +-rw-r--r-- 1 root root 518105 2009-08-26 15:15 ./PACKAGES.TXT +-rw-r--r-- 1 root root 9634 2009-08-26 02:12 ./README.TXT +-rw-r--r-- 1 root root 3723 2009-08-18 22:19 ./README.initrd +-rw-r--r-- 1 root root 33350 2009-07-22 22:28 ./README_CRYPT.TXT +-rw-r--r-- 1 root root 9068 2009-07-24 22:35 ./README_LVM.TXT +-rw-r--r-- 1 root root 17384 2009-08-25 06:31 ./README_RAID.TXT +-rw-r--r-- 1 root root 7700 2009-08-26 14:09 ./RELEASE_NOTES +-rw-r--r-- 1 root root 13855 2008-12-08 18:13 ./SPEAKUP_DOCS.TXT +-rw-r--r-- 1 root root 17294 2008-12-08 18:13 ./SPEAK_INSTALL.TXT +-rw-r--r-- 1 root root 57204 2009-08-26 14:19 ./Slackware-HOWTO +drwxr-xr-x 18 root root 4096 2009-08-26 15:12 ./extra +-rw-r--r-- 1 root root 33318 2009-08-26 15:12 ./extra/CHECKSUMS.md5 +-rw-r--r-- 1 root root 197 2009-08-26 15:12 ./extra/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 42466 2009-08-26 15:11 ./extra/FILE_LIST +-rw-r--r-- 1 root root 274995 2009-08-26 15:12 ./extra/MANIFEST.bz2 +-rw-r--r-- 1 root root 36016 2009-08-26 15:12 ./extra/PACKAGES.TXT +-rw-r--r-- 1 root root 149 2002-02-09 00:18 ./extra/README.TXT +drwxr-xr-x 2 root root 20480 2009-08-14 20:40 ./extra/aspell-word-lists +-rw-r--r-- 1 root root 171 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-af-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 868976 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-af-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-af-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 190 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-am-0.03_1-noarch-4.txt +-rw-r--r-- 1 root root 106700 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-am-0.03_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-am-0.03_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 195 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-az-0.02_0-noarch-4.txt +-rw-r--r-- 1 root root 126472 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-az-0.02_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-az-0.02_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 199 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-be-0.01-noarch-4.txt +-rw-r--r-- 1 root root 9455764 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-be-0.01-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-be-0.01-noarch-4.txz.asc +-rw-r--r-- 1 root root 171 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-bg-4.0_0-noarch-4.txt +-rw-r--r-- 1 root root 5413300 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-bg-4.0_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-bg-4.0_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 193 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-bn-0.01.1_1-noarch-4.txt +-rw-r--r-- 1 root root 582408 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-bn-0.01.1_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-bn-0.01.1_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 168 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-br-0.50_2-noarch-4.txt +-rw-r--r-- 1 root root 308936 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-br-0.50_2-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-br-0.50_2-noarch-4.txz.asc +-rw-r--r-- 1 root root 185 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ca-20040130_1-noarch-4.txt +-rw-r--r-- 1 root root 1052772 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ca-20040130_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ca-20040130_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 185 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-cs-20040614_1-noarch-4.txt +-rw-r--r-- 1 root root 2049648 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-cs-20040614_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-cs-20040614_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 203 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-csb-0.02_0-noarch-4.txt +-rw-r--r-- 1 root root 42324 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-csb-0.02_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-csb-0.02_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 167 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-cy-0.50_3-noarch-4.txt +-rw-r--r-- 1 root root 1745716 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-cy-0.50_3-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-cy-0.50_3-noarch-4.txz.asc +-rw-r--r-- 1 root root 182 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-da-1.4.42_1-noarch-4.txt +-rw-r--r-- 1 root root 3045652 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-da-1.4.42_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-da-1.4.42_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 186 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-de-20030222_1-noarch-4.txt +-rw-r--r-- 1 root root 2872868 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-de-20030222_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-de-20030222_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 167 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-el-0.50_3-noarch-4.txt +-rw-r--r-- 1 root root 3216592 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-el-0.50_3-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-el-0.50_3-noarch-4.txz.asc +-rw-r--r-- 1 root root 171 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-eo-0.50_2-noarch-4.txt +-rw-r--r-- 1 root root 3797376 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-eo-0.50_2-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-eo-0.50_2-noarch-4.txz.asc +-rw-r--r-- 1 root root 169 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-es-0.50_2-noarch-4.txt +-rw-r--r-- 1 root root 2958592 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-es-0.50_2-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-es-0.50_2-noarch-4.txz.asc +-rw-r--r-- 1 root root 176 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-et-0.1.21_1-noarch-4.txt +-rw-r--r-- 1 root root 877160 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-et-0.1.21_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-et-0.1.21_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 188 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-fa-0.02_0-noarch-4.txt +-rw-r--r-- 1 root root 1488308 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-fa-0.02_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-fa-0.02_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 175 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-fi-0.7_0-noarch-4.txt +-rw-r--r-- 1 root root 606924 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-fi-0.7_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-fi-0.7_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 186 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-fo-0.2.16_1-noarch-4.txt +-rw-r--r-- 1 root root 997552 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-fo-0.2.16_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-fo-0.2.16_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 168 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-fr-0.50_3-noarch-4.txt +-rw-r--r-- 1 root root 4365324 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-fr-0.50_3-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-fr-0.50_3-noarch-4.txz.asc +-rw-r--r-- 1 root root 183 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ga-3.6_0-noarch-4.txt +-rw-r--r-- 1 root root 2144676 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ga-3.6_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ga-3.6_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 194 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-gd-0.1.1_1-noarch-4.txt +-rw-r--r-- 1 root root 131084 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-gd-0.1.1_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-gd-0.1.1_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 170 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-gl-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 2981948 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-gl-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-gl-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 200 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-gu-0.02_0-noarch-4.txt +-rw-r--r-- 1 root root 59216 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-gu-0.02_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-gu-0.02_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 173 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-gv-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 218880 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-gv-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-gv-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 187 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-he-1.0_0-noarch-4.txt +-rw-r--r-- 1 root root 1991800 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-he-1.0_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-he-1.0_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 191 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hi-0.01_0-noarch-4.txt +-rw-r--r-- 1 root root 116448 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hi-0.01_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hi-0.01_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 190 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hil-0.11_0-noarch-4.txt +-rw-r--r-- 1 root root 114780 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hil-0.11_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hil-0.11_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 170 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-hr-0.51_0-noarch-4.txt +-rw-r--r-- 1 root root 1945240 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-hr-0.51_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-hr-0.51_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 209 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hsb-0.01_1-noarch-4.txt +-rw-r--r-- 1 root root 318392 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hsb-0.01_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hsb-0.01_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 177 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hu-0.99.4.2_0-noarch-4.txt +-rw-r--r-- 1 root root 1586716 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hu-0.99.4.2_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-hu-0.99.4.2_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 173 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-ia-0.50_1-noarch-4.txt +-rw-r--r-- 1 root root 549808 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-ia-0.50_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-ia-0.50_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-id-1.2_0-noarch-4.txt +-rw-r--r-- 1 root root 213320 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-id-1.2_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-id-1.2_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 171 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-is-0.51.1_0-noarch-4.txt +-rw-r--r-- 1 root root 1505496 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-is-0.51.1_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:55 ./extra/aspell-word-lists/aspell-is-0.51.1_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 186 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-it-2.2_20050523_0-noarch-4.txt +-rw-r--r-- 1 root root 643296 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-it-2.2_20050523_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-it-2.2_20050523_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 182 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ku-0.12_0-noarch-4.txt +-rw-r--r-- 1 root root 55296 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ku-0.12_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ku-0.12_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 173 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-la-20020503_0-noarch-4.txt +-rw-r--r-- 1 root root 122204 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-la-20020503_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-la-20020503_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 190 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-lt-1.1+cvs20060103_0-noarch-4.txt +-rw-r--r-- 1 root root 567968 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-lt-1.1+cvs20060103_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-lt-1.1+cvs20060103_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 175 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-lv-0.5.5_1-noarch-4.txt +-rw-r--r-- 1 root root 186808 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-lv-0.5.5_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-lv-0.5.5_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 176 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mg-0.03_0-noarch-4.txt +-rw-r--r-- 1 root root 116888 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mg-0.03_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mg-0.03_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 167 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mi-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 144836 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mi-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mi-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 172 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mk-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 1250820 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mk-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mk-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 192 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mn-0.01_0-noarch-4.txt +-rw-r--r-- 1 root root 68124 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mn-0.01_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mn-0.01_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 193 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mr-0.10_0-noarch-4.txt +-rw-r--r-- 1 root root 474624 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mr-0.10_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-mr-0.10_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 167 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-ms-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 116524 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-ms-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-ms-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 169 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mt-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 5060516 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mt-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-mt-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 178 2009-08-13 02:40 ./extra/aspell-word-lists/aspell-nb-0.50.1_0-noarch-4.txt +-rw-r--r-- 1 root root 3039436 2009-08-13 02:40 ./extra/aspell-word-lists/aspell-nb-0.50.1_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2009-08-13 02:40 ./extra/aspell-word-lists/aspell-nb-0.50.1_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 206 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-nds-0.01_0-noarch-4.txt +-rw-r--r-- 1 root root 39836 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-nds-0.01_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-nds-0.01_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 167 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-nl-0.50_2-noarch-4.txt +-rw-r--r-- 1 root root 1495132 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-nl-0.50_2-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-nl-0.50_2-noarch-4.txz.asc +-rw-r--r-- 1 root root 179 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-nn-0.50.1_1-noarch-4.txt +-rw-r--r-- 1 root root 1907332 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-nn-0.50.1_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-nn-0.50.1_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 171 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-no-0.50_2-noarch-4.txt +-rw-r--r-- 1 root root 1250336 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-no-0.50_2-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-no-0.50_2-noarch-4.txz.asc +-rw-r--r-- 1 root root 176 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ny-0.01_0-noarch-4.txt +-rw-r--r-- 1 root root 40792 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ny-0.01_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-ny-0.01_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 191 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-or-0.03_1-noarch-4.txt +-rw-r--r-- 1 root root 14948 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-or-0.03_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-or-0.03_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 196 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-pa-0.01_1-noarch-4.txt +-rw-r--r-- 1 root root 21904 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-pa-0.01_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-pa-0.01_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 168 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-pl-0.51_0-noarch-4.txt +-rw-r--r-- 1 root root 13943900 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-pl-0.51_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-pl-0.51_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 172 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-pt-0.50_2-noarch-4.txt +-rw-r--r-- 1 root root 2279084 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-pt-0.50_2-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-pt-0.50_2-noarch-4.txz.asc +-rw-r--r-- 1 root root 246 2009-06-22 22:05 ./extra/aspell-word-lists/aspell-pt_BR-20080707_0-noarch-4.txt +-rw-r--r-- 1 root root 2450800 2009-06-22 22:05 ./extra/aspell-word-lists/aspell-pt_BR-20080707_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2009-06-22 22:05 ./extra/aspell-word-lists/aspell-pt_BR-20080707_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 196 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-qu-0.02_0-noarch-4.txt +-rw-r--r-- 1 root root 303040 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-qu-0.02_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-qu-0.02_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 170 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-ro-0.50_2-noarch-4.txt +-rw-r--r-- 1 root root 281784 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-ro-0.50_2-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-ro-0.50_2-noarch-4.txz.asc +-rw-r--r-- 1 root root 192 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-ru-0.99f7_1-noarch-4.txt +-rw-r--r-- 1 root root 1425980 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-ru-0.99f7_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-ru-0.99f7_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 173 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-rw-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 37644 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-rw-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-rw-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 171 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-sc-1.0-noarch-4.txt +-rw-r--r-- 1 root root 4911444 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-sc-1.0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-sc-1.0-noarch-4.txz.asc +-rw-r--r-- 1 root root 168 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-sk-0.52_0-noarch-4.txt +-rw-r--r-- 1 root root 4641936 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-sk-0.52_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:56 ./extra/aspell-word-lists/aspell-sk-0.52_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 171 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sl-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 5272152 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sl-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sl-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 190 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-sr-0.02-noarch-4.txt +-rw-r--r-- 1 root root 3705620 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-sr-0.02-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-sr-0.02-noarch-4.txz.asc +-rw-r--r-- 1 root root 169 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sv-0.51_0-noarch-4.txt +-rw-r--r-- 1 root root 985180 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sv-0.51_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sv-0.51_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 169 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sw-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 301120 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sw-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-sw-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 191 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-ta-20040424_1-noarch-4.txt +-rw-r--r-- 1 root root 99988 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-ta-20040424_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-ta-20040424_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 195 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-te-0.01_2-noarch-4.txt +-rw-r--r-- 1 root root 906648 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-te-0.01_2-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-te-0.01_2-noarch-4.txz.asc +-rw-r--r-- 1 root root 179 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tet-0.1.1-noarch-4.txt +-rw-r--r-- 1 root root 65792 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tet-0.1.1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tet-0.1.1-noarch-4.txz.asc +-rw-r--r-- 1 root root 175 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tl-0.02_1-noarch-4.txt +-rw-r--r-- 1 root root 97512 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tl-0.02_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tl-0.02_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 176 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tn-1.0.1_0-noarch-4.txt +-rw-r--r-- 1 root root 42928 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tn-1.0.1_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./extra/aspell-word-lists/aspell-tn-1.0.1_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 169 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-tr-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 494344 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-tr-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-tr-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 171 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-uk-0.51_0-noarch-4.txt +-rw-r--r-- 1 root root 4719068 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-uk-0.51_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-uk-0.51_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 200 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-uk-1.1_0-noarch-4.txt +-rw-r--r-- 1 root root 527632 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-uk-1.1_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-uk-1.1_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 190 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-uz-0.5_0-noarch-4.txt +-rw-r--r-- 1 root root 235116 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-uz-0.5_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-uz-0.5_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 193 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-vi-0.01.1_1-noarch-4.txt +-rw-r--r-- 1 root root 42408 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-vi-0.01.1_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-vi-0.01.1_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 169 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-wa-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 647916 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-wa-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-wa-0.50_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 190 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-yi-0.01.1_1-noarch-4.txt +-rw-r--r-- 1 root root 396496 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-yi-0.01.1_1-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:59 ./extra/aspell-word-lists/aspell-yi-0.01.1_1-noarch-4.txz.asc +-rw-r--r-- 1 root root 166 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-zu-0.50_0-noarch-4.txt +-rw-r--r-- 1 root root 489764 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-zu-0.50_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:57 ./extra/aspell-word-lists/aspell-zu-0.50_0-noarch-4.txz.asc +drwxr-xr-x 2 root root 4096 2009-07-16 02:03 ./extra/bash-completion +-rw-r--r-- 1 root root 671 2009-07-15 22:52 ./extra/bash-completion/bash-completion-20060301-noarch-2.txt +-rw-r--r-- 1 root root 71528 2009-07-15 22:52 ./extra/bash-completion/bash-completion-20060301-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-07-15 22:52 ./extra/bash-completion/bash-completion-20060301-noarch-2.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-19 20:54 ./extra/bittorrent +-rw-r--r-- 1 root root 1279 2006-02-08 01:38 ./extra/bittorrent/README +-rw-r--r-- 1 root root 613 2009-05-01 11:16 ./extra/bittorrent/bittorrent-4.4.0-noarch-3.txt +-rw-r--r-- 1 root root 336536 2009-05-01 11:16 ./extra/bittorrent/bittorrent-4.4.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-05-01 11:16 ./extra/bittorrent/bittorrent-4.4.0-noarch-3.txz.asc +drwxr-xr-x 2 root root 4096 2009-08-21 04:03 ./extra/brltty +-rw-r--r-- 1 root root 326 2009-08-20 03:38 ./extra/brltty/brltty-4.0-x86_64-1.txt +-rw-r--r-- 1 root root 948368 2009-08-20 03:38 ./extra/brltty/brltty-4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-20 03:38 ./extra/brltty/brltty-4.0-x86_64-1.txz.asc +lrwxrwxrwx 1 root root 25 2009-08-26 16:30 ./extra/flashplayer-plugin -> source/flashplayer-plugin +drwxr-xr-x 2 root root 4096 2009-08-14 20:41 ./extra/jdk-6 +-rw-r--r-- 1 root root 402 2009-08-13 21:17 ./extra/jdk-6/jdk-6u16-x86_64-1.txt +-rw-r--r-- 1 root root 69476144 2009-08-13 21:17 ./extra/jdk-6/jdk-6u16-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-13 21:17 ./extra/jdk-6/jdk-6u16-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-06-19 23:56 ./extra/kde3-compat +-rw-r--r-- 1 root root 422 2009-06-19 01:27 ./extra/kde3-compat/arts-1.5.10-x86_64-opt1.txt +-rw-r--r-- 1 root root 941508 2009-06-19 01:27 ./extra/kde3-compat/arts-1.5.10-x86_64-opt1.txz +-rw-r--r-- 1 root root 197 2009-06-19 01:27 ./extra/kde3-compat/arts-1.5.10-x86_64-opt1.txz.asc +-rw-r--r-- 1 root root 408 2009-06-19 20:29 ./extra/kde3-compat/k3b3-1.0.5-x86_64-opt1.txt +-rw-r--r-- 1 root root 4592952 2009-06-19 20:29 ./extra/kde3-compat/k3b3-1.0.5-x86_64-opt1.txz +-rw-r--r-- 1 root root 197 2009-06-19 20:29 ./extra/kde3-compat/k3b3-1.0.5-x86_64-opt1.txz.asc +-rw-r--r-- 1 root root 199 2009-06-19 20:24 ./extra/kde3-compat/kdelibs3-3.5.10-x86_64-opt1.txt +-rw-r--r-- 1 root root 15596720 2009-06-19 20:24 ./extra/kde3-compat/kdelibs3-3.5.10-x86_64-opt1.txz +-rw-r--r-- 1 root root 197 2009-06-19 20:24 ./extra/kde3-compat/kdelibs3-3.5.10-x86_64-opt1.txz.asc +-rw-r--r-- 1 root root 557 2009-06-19 18:43 ./extra/kde3-compat/qt3-3.3.8b-x86_64-opt2.txt +-rw-r--r-- 1 root root 6269156 2009-06-19 18:43 ./extra/kde3-compat/qt3-3.3.8b-x86_64-opt2.txz +-rw-r--r-- 1 root root 197 2009-06-19 18:43 ./extra/kde3-compat/qt3-3.3.8b-x86_64-opt2.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-19 20:54 ./extra/mpg123 +-rw-r--r-- 1 root root 501 2009-03-17 23:08 ./extra/mpg123/mpg123-0.65-x86_64-1.txt +-rw-r--r-- 1 root root 137592 2009-03-17 23:08 ./extra/mpg123/mpg123-0.65-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-17 23:08 ./extra/mpg123/mpg123-0.65-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-19 20:54 ./extra/mplayerplug-in +-rw-r--r-- 1 root root 534 2009-05-19 19:32 ./extra/mplayerplug-in/mplayerplug-in-3.55-x86_64-1.txt +-rw-r--r-- 1 root root 176148 2009-05-19 19:32 ./extra/mplayerplug-in/mplayerplug-in-3.55-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-19 19:32 ./extra/mplayerplug-in/mplayerplug-in-3.55-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-19 20:54 ./extra/partitionmanager +-rw-r--r-- 1 root root 391 2009-01-13 21:35 ./extra/partitionmanager/partitionmanager-1.0.0_BETA1-x86_64-1.txt +-rw-r--r-- 1 root root 1541968 2009-01-13 21:35 ./extra/partitionmanager/partitionmanager-1.0.0_BETA1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-01-13 21:35 ./extra/partitionmanager/partitionmanager-1.0.0_BETA1-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-19 20:54 ./extra/recordmydesktop +-rw-r--r-- 1 root root 675 2009-05-12 22:09 ./extra/recordmydesktop/recordmydesktop-0.3.8.1-x86_64-2.txt +-rw-r--r-- 1 root root 128724 2009-05-12 22:09 ./extra/recordmydesktop/recordmydesktop-0.3.8.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-12 22:09 ./extra/recordmydesktop/recordmydesktop-0.3.8.1-x86_64-2.txz.asc +drwxr-xr-x 2 root root 4096 2009-07-18 02:15 ./extra/slacktrack +-rw-r--r-- 1 root root 27340 2009-05-15 22:42 ./extra/slacktrack/OVERVIEW +-rw-r--r-- 1 root root 464 2009-07-17 19:08 ./extra/slacktrack/slacktrack-2.06-x86_64-1.txt +-rw-r--r-- 1 root root 94400 2009-07-17 19:08 ./extra/slacktrack/slacktrack-2.06-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-17 19:08 ./extra/slacktrack/slacktrack-2.06-x86_64-1.txz.asc +drwxr-xr-x 18 root root 4096 2009-08-26 05:02 ./extra/source +drwxr-xr-x 2 root root 4096 2009-07-15 22:32 ./extra/source/bash-completion +-rw-r--r-- 1 root root 102357 2006-03-01 16:40 ./extra/source/bash-completion/bash-completion-20060301.tar.bz2 +-rw-r--r-- 1 root root 449 2009-07-15 21:46 ./extra/source/bash-completion/bash-completion-xz.diff.gz +-rwxr-xr-x 1 root root 1268 2009-07-15 22:51 ./extra/source/bash-completion/bash-completion.SlackBuild +-rw-r--r-- 1 root root 224 2004-09-06 20:22 ./extra/source/bash-completion/bash_completion.sh.gz +-rw-r--r-- 1 root root 1137 2008-02-11 03:48 ./extra/source/bash-completion/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 19:16 ./extra/source/bittorrent +-rw-r--r-- 1 root root 678768 2006-01-31 20:24 ./extra/source/bittorrent/BitTorrent-4.4.0.tar.bz2 +-rw-r--r-- 1 root root 940 2006-02-08 01:07 ./extra/source/bittorrent/bittorrent-xterm.sh.gz +-rwxr-xr-x 1 root root 2473 2009-05-19 20:11 ./extra/source/bittorrent/bittorrent.SlackBuild +-rw-r--r-- 1 root root 270 2006-02-08 01:08 ./extra/source/bittorrent/doinst.sh.gz +-rw-r--r-- 1 root root 1074 2003-09-21 04:50 ./extra/source/bittorrent/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-20 03:22 ./extra/source/brltty +-rw-r--r-- 1 root root 1272748 2009-05-15 04:09 ./extra/source/brltty/brltty-4.0.tar.xz +-rwxr-xr-x 1 root root 2315 2009-08-20 03:37 ./extra/source/brltty/brltty.SlackBuild +-rw-r--r-- 1 root root 783 2002-06-07 04:09 ./extra/source/brltty/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 19:25 ./extra/source/flashplayer-plugin +-rwxr-xr-- 1 root root 5699 2009-08-10 23:52 ./extra/source/flashplayer-plugin/flashplayer-plugin.SlackBuild +-rw-r--r-- 1 root root 1017 2008-12-16 13:11 ./extra/source/flashplayer-plugin/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 21:29 ./extra/source/grub +-rw-r--r-- 1 root root 7697 2009-03-14 03:58 ./extra/source/grub/grub-0.97-x86_64.patch.gz +-rw-r--r-- 1 root root 971783 2005-07-31 00:45 ./extra/source/grub/grub-0.97.tar.gz +-rw-r--r-- 1 root root 65 2005-05-08 03:16 ./extra/source/grub/grub-0.97.tar.gz.sig +-rwxr-xr-x 1 root root 3549 2009-05-19 20:11 ./extra/source/grub/grub.SlackBuild +-rw-r--r-- 1 root root 1746 2008-03-05 06:43 ./extra/source/grub/grub_support_256byte_inode.patch.gz +-rw-r--r-- 1 root root 11715 2006-03-25 17:05 ./extra/source/grub/grubconfig-1.28.tar.gz +-rw-r--r-- 1 root root 466 2007-06-06 03:32 ./extra/source/grub/grubconfig_localefix.patch.gz +-rw-r--r-- 1 root root 959 2005-09-01 15:26 ./extra/source/grub/slack-desc +drwxr-xr-x 3 root root 4096 2009-08-13 21:39 ./extra/source/jdk-6 +-r--r--r-- 1 root root 3767 2009-07-02 22:54 ./extra/source/jdk-6/COPYRIGHT +-rw-r--r-- 1 root root 270 2009-06-18 02:36 ./extra/source/jdk-6/HOWTO-BUILD-TXZ +-r--r--r-- 1 root root 17179 2009-07-02 22:54 ./extra/source/jdk-6/LICENSE +-r--r--r-- 1 root root 28329 2009-07-02 22:54 ./extra/source/jdk-6/README.html +-r--r--r-- 1 root root 25390 2009-07-02 22:54 ./extra/source/jdk-6/README_ja.html +-r--r--r-- 1 root root 20768 2009-07-02 22:54 ./extra/source/jdk-6/README_zh_CN.html +-rwxr-xr-x 1 root root 3894 2009-08-13 21:13 ./extra/source/jdk-6/jdk.SlackBuild +drwxr-xr-x 2 root root 4096 2007-09-01 23:13 ./extra/source/jdk-6/profile.d +-rwxr-xr-x 1 root root 143 2007-08-29 00:32 ./extra/source/jdk-6/profile.d/jdk.csh +-rwxr-xr-x 1 root root 146 2007-08-29 00:33 ./extra/source/jdk-6/profile.d/jdk.sh +-r--r--r-- 1 root root 5295 2009-08-06 00:48 ./extra/source/jdk-6/register.html +-r--r--r-- 1 root root 5727 2009-08-06 00:48 ./extra/source/jdk-6/register_ja.html +-r--r--r-- 1 root root 4905 2009-08-06 00:48 ./extra/source/jdk-6/register_zh_CN.html +-rw-r--r-- 1 root root 857 2009-08-13 21:13 ./extra/source/jdk-6/slack-desc +drwxr-xr-x 6 root root 4096 2009-06-19 18:53 ./extra/source/kde3-compat +drwxr-xr-x 2 root root 4096 2008-09-15 18:16 ./extra/source/kde3-compat/arts +-rw-r--r-- 1 root root 973382 2008-08-21 18:32 ./extra/source/kde3-compat/arts/arts-1.5.10.tar.bz2 +-rwxr-xr-x 1 root root 1333 2009-06-19 01:24 ./extra/source/kde3-compat/arts/arts.SlackBuild +-rw-r--r-- 1 root root 320 2006-09-19 22:07 ./extra/source/kde3-compat/arts/arts.tmpdir.diff.gz +-rw-r--r-- 1 root root 877 2002-03-29 01:31 ./extra/source/kde3-compat/arts/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-19 01:19 ./extra/source/kde3-compat/k3b3 +-rw-r--r-- 1 root root 5113060 2008-05-27 10:00 ./extra/source/kde3-compat/k3b3/k3b-1.0.5.tar.bz2 +-rwxr-xr-x 1 root root 1777 2009-06-19 20:06 ./extra/source/kde3-compat/k3b3/k3b3.SlackBuild +-rw-r--r-- 1 root root 863 2009-06-19 01:19 ./extra/source/kde3-compat/k3b3/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-19 00:33 ./extra/source/kde3-compat/kdelibs3 +-rw-r--r-- 1 root root 282 2009-06-19 00:33 ./extra/source/kde3-compat/kdelibs3/apply-patches.sh +-rw-r--r-- 1 root root 15614607 2008-08-21 18:32 ./extra/source/kde3-compat/kdelibs3/kdelibs-3.5.10.tar.bz2 +-rw-r--r-- 1 root root 402 2007-06-10 13:12 ./extra/source/kde3-compat/kdelibs3/kdelibs-utempter.diff.gz +-rw-r--r-- 1 root root 247 2009-06-19 00:28 ./extra/source/kde3-compat/kdelibs3/kdelibs.inotify.diff.gz +-rw-r--r-- 1 root root 347 2009-06-19 00:33 ./extra/source/kde3-compat/kdelibs3/kdelibs.no.inotify.externs.diff.gz +-rwxr-xr-x 1 root root 1633 2009-06-19 01:24 ./extra/source/kde3-compat/kdelibs3/kdelibs3.SlackBuild +-rw-r--r-- 1 root root 52 2009-06-19 17:54 ./extra/source/kde3-compat/kdelibs3/local.options +-rw-r--r-- 1 root root 658 2008-08-10 22:27 ./extra/source/kde3-compat/kdelibs3/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 19:16 ./extra/source/kde3-compat/qt3 +-rw-r--r-- 1 root root 237 2008-09-14 21:49 ./extra/source/kde3-compat/qt3/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2002-03-26 03:53 ./extra/source/kde3-compat/qt3/profile.d +-rwxr-xr-x 1 root root 685 2008-09-14 21:24 ./extra/source/kde3-compat/qt3/profile.d/qt.csh +-rwxr-xr-x 1 root root 585 2008-09-14 21:24 ./extra/source/kde3-compat/qt3/profile.d/qt.sh +-rw-r--r-- 1 root root 14345264 2008-01-18 08:12 ./extra/source/kde3-compat/qt3/qt-x11-free-3.3.8b.tar.bz2 +-rw-r--r-- 1 root root 199 2002-03-25 06:14 ./extra/source/kde3-compat/qt3/qt-x11.diff.gz +-rw-r--r-- 1 root root 221 2002-10-14 21:59 ./extra/source/kde3-compat/qt3/qt.mysql.h.diff.gz +-rw-r--r-- 1 root root 274 2006-01-19 22:12 ./extra/source/kde3-compat/qt3/qt.x86.cflags.diff.gz +-rwxr-xr-x 1 root root 6215 2009-06-19 18:39 ./extra/source/kde3-compat/qt3/qt3.SlackBuild +-rw-r--r-- 1 root root 1011 2008-08-10 20:31 ./extra/source/kde3-compat/qt3/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 19:16 ./extra/source/mpg123 +-rw-r--r-- 1 root root 529154 2007-02-07 09:27 ./extra/source/mpg123/mpg123-0.65.tar.bz2 +-rw-r--r-- 1 root root 65 2007-02-07 09:27 ./extra/source/mpg123/mpg123-0.65.tar.bz2.sig +-rwxr-xr-x 1 root root 3124 2009-05-19 20:11 ./extra/source/mpg123/mpg123.SlackBuild +-rw-r--r-- 1 root root 958 2007-02-14 20:29 ./extra/source/mpg123/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 19:29 ./extra/source/mplayerplug-in +-rw-r--r-- 1 root root 281845 2008-06-24 13:19 ./extra/source/mplayerplug-in/mplayerplug-in-3.55.tar.gz +-rwxr-xr-- 1 root root 8298 2009-05-19 20:12 ./extra/source/mplayerplug-in/mplayerplug-in.SlackBuild +-rw-r--r-- 1 root root 999 2006-11-06 21:20 ./extra/source/mplayerplug-in/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 19:16 ./extra/source/partitionmanager +-rw-r--r-- 1 root root 118 2007-12-24 16:27 ./extra/source/partitionmanager/doinst.sh.gz +-rw-r--r-- 1 root root 1406194 2009-01-13 12:00 ./extra/source/partitionmanager/partitionmanager-1.0.0-BETA1.tar.bz2 +-rwxr-xr-x 1 root root 2941 2009-05-19 20:12 ./extra/source/partitionmanager/partitionmanager.SlackBuild +-rw-r--r-- 1 root root 852 2009-01-13 16:02 ./extra/source/partitionmanager/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:26 ./extra/source/recordmydesktop +-rw-r--r-- 1 root root 185528 2008-11-23 15:35 ./extra/source/recordmydesktop/qt-recordmydesktop-0.3.8.tar.gz +-rw-r--r-- 1 root root 198732 2008-12-13 17:56 ./extra/source/recordmydesktop/recordmydesktop-0.3.8.1.tar.gz +-rwxr-xr-- 1 root root 8324 2009-05-19 20:26 ./extra/source/recordmydesktop/recordmydesktop.SlackBuild +-rw-r--r-- 1 root root 1141 2008-12-17 13:36 ./extra/source/recordmydesktop/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-17 19:08 ./extra/source/slacktrack +-rw-r--r-- 1 root root 97578 2009-07-17 14:16 ./extra/source/slacktrack/slacktrack-2.06-source.tar.gz +-rwxr-xr-x 1 root root 379 2009-07-17 19:08 ./extra/source/slacktrack/slacktrack.SlackBuild +drwxr-xr-x 2 root root 4096 2009-06-03 00:11 ./extra/source/tightvnc +-rw-r--r-- 1 root root 8109 2009-06-02 21:35 ./extra/source/tightvnc/_tightvnc.tar.gz +-rw-r--r-- 1 root root 387 2009-06-02 22:04 ./extra/source/tightvnc/doinst.sh.gz +-rw-r--r-- 1 root root 989 2008-12-04 21:29 ./extra/source/tightvnc/slack-desc +-rw-r--r-- 1 root root 1549080 2009-03-06 05:15 ./extra/source/tightvnc/tightvnc-1.3.10_unixsrc.tar.xz +-rwxr-xr-- 1 root root 4093 2009-06-14 18:18 ./extra/source/tightvnc/tightvnc.SlackBuild +-rw-r--r-- 1 root root 728 2009-06-02 21:57 ./extra/source/tightvnc/tightvnc.paths-and-perms.diff.gz +drwxr-xr-x 2 root root 4096 2009-08-26 03:57 ./extra/source/wicd +-rw-r--r-- 1 root root 775 2009-06-21 04:34 ./extra/source/wicd/README.SLACKWARE +-rw-r--r-- 1 root root 500 2009-05-30 01:47 ./extra/source/wicd/doinst.sh.gz +-rw-r--r-- 1 root root 863 2009-06-05 15:22 ./extra/source/wicd/slack-desc +-rw-r--r-- 1 root root 385828 2009-08-26 03:56 ./extra/source/wicd/wicd-1.6.2.1.tar.bz2 +-rwxr-xr-x 1 root root 2678 2009-08-26 03:40 ./extra/source/wicd/wicd.SlackBuild +drwxr-xr-x 2 root root 4096 2009-03-08 01:06 ./extra/source/xfce-goodies +drwxr-xr-x 2 root root 4096 2009-05-19 19:16 ./extra/source/yasm +-rw-r--r-- 1 root root 1047 2008-06-16 08:56 ./extra/source/yasm/slack-desc +-rw-r--r-- 1 root root 1419273 2009-04-10 06:10 ./extra/source/yasm/yasm-0.8.0.tar.gz +-rwxr-xr-- 1 root root 7082 2009-05-19 20:12 ./extra/source/yasm/yasm.SlackBuild +drwxr-xr-x 2 root root 4096 2009-06-03 23:48 ./extra/tightvnc +-rw-r--r-- 1 root root 530 2009-06-03 00:11 ./extra/tightvnc/tightvnc-1.3.10-x86_64-1.txt +-rw-r--r-- 1 root root 777368 2009-06-03 00:11 ./extra/tightvnc/tightvnc-1.3.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 00:11 ./extra/tightvnc/tightvnc-1.3.10-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-08-26 15:11 ./extra/wicd +-rw-r--r-- 1 root root 775 2009-06-21 04:34 ./extra/wicd/README.SLACKWARE +-rw-r--r-- 1 root root 407 2009-08-26 04:30 ./extra/wicd/wicd-1.6.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 347028 2009-08-26 04:30 ./extra/wicd/wicd-1.6.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-26 04:30 ./extra/wicd/wicd-1.6.2.1-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-08-26 15:11 ./extra/xf86-video-intel-alternate +-rw-r--r-- 1 root root 400 2009-07-16 22:32 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.5.1-x86_64-1.txt +-rw-r--r-- 1 root root 215412 2009-07-16 22:32 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.5.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:32 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.5.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-07-16 22:33 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 232544 2009-07-16 22:33 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:33 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-07-16 22:36 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.7.1-x86_64-2.txt +-rw-r--r-- 1 root root 236692 2009-07-16 22:36 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.7.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:36 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.7.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-08-26 03:50 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.8.1-x86_64-1.txt +-rw-r--r-- 1 root root 239368 2009-08-26 03:50 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.8.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-26 03:50 ./extra/xf86-video-intel-alternate/xf86-video-intel-2.8.1-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-19 20:54 ./extra/yasm +-rw-r--r-- 1 root root 592 2009-05-19 19:50 ./extra/yasm/yasm-0.8.0-x86_64-1.txt +-rw-r--r-- 1 root root 650504 2009-05-19 19:50 ./extra/yasm/yasm-0.8.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-19 19:50 ./extra/yasm/yasm-0.8.0-x86_64-1.txz.asc +drwxr-xr-x 3 root root 4096 2009-08-25 10:30 ./isolinux +-rw-r--r-- 1 root root 4739 2009-03-23 19:25 ./isolinux/README.TXT +-rw-r--r-- 1 root root 788 2007-03-17 19:50 ./isolinux/README_SPLIT.TXT +-rw-r--r-- 1 root root 653 2008-10-28 22:16 ./isolinux/f2.txt +-rw-r--r-- 1 root root 10656079 2009-08-25 10:28 ./isolinux/initrd.img +-rw-r--r-- 1 root root 50 2003-01-18 00:02 ./isolinux/iso.sort +-rw-r--r-- 1 root root 11559 2008-10-27 11:39 ./isolinux/isolinux.bin +-rw-r--r-- 1 root root 347 2008-10-28 22:13 ./isolinux/isolinux.cfg +-rw-r--r-- 1 root root 568 2009-07-28 19:32 ./isolinux/message.txt +drwxr-xr-x 2 root root 4096 2003-03-17 07:31 ./isolinux/sbootmgr +-rwxr-xr-x 1 root root 36064 1995-05-12 01:23 ./isolinux/sbootmgr/RAWRITE.EXE +-rw-r--r-- 1 root root 2138 1997-12-01 01:21 ./isolinux/sbootmgr/RAWRITE12.DOC +-rwxr-xr-x 1 root root 13052 1997-12-01 01:21 ./isolinux/sbootmgr/RAWRITE12.EXE +lrwxrwxrwx 1 root root 11 2009-08-26 16:31 ./isolinux/sbootmgr/RAWRITE13.EXE -> RAWRITE.EXE +-rw-r--r-- 1 root root 6170 2000-08-29 08:23 ./isolinux/sbootmgr/RAWRITENT.DOC +-rwxr-xr-x 1 root root 24576 2000-08-29 08:26 ./isolinux/sbootmgr/RAWRITENT.EXE +-rw-r--r-- 1 root root 1291 2003-03-17 07:31 ./isolinux/sbootmgr/README.TXT +-rw-r--r-- 1 root root 110592 2003-03-16 08:38 ./isolinux/sbootmgr/sbootmgr.dsk +-rw-r--r-- 1 root root 2823 2005-05-02 03:53 ./isolinux/setpkg +drwxr-xr-x 4 root root 4096 2009-08-18 22:40 ./kernels +-rw-r--r-- 1 root root 41 2009-07-15 21:54 ./kernels/VERSIONS.TXT +drwxr-xr-x 2 root root 4096 2009-08-17 16:59 ./kernels/huge.s +-rw-r--r-- 1 root root 405558 2009-08-17 16:58 ./kernels/huge.s/System.map.gz +-rw-r--r-- 1 root root 5004096 2009-08-17 16:58 ./kernels/huge.s/bzImage +-rw-r--r-- 1 root root 90685 2009-08-17 16:55 ./kernels/huge.s/config +drwxr-xr-x 2 root root 4096 2009-08-17 17:22 ./kernels/speakup.s +-rw-r--r-- 1 root root 410490 2009-08-17 17:05 ./kernels/speakup.s/System.map.gz +-rw-r--r-- 1 root root 5037536 2009-08-17 17:05 ./kernels/speakup.s/bzImage +-rw-r--r-- 1 root root 91169 2009-08-17 17:03 ./kernels/speakup.s/config +-rw-r--r-- 1 root root 11015 2009-08-17 17:13 ./kernels/speakup.s/speakup_decpc.ko +drwxr-xr-x 3 root root 4096 2009-05-19 20:55 ./pasture +-rw-r--r-- 1 root root 0 1993-07-11 05:00 ./pasture/CHECKSUMS.md5.asc +drwxr-xr-x 2 root root 4096 2009-05-19 20:16 ./pasture/source +drwxr-xr-x 3 root root 4096 2006-09-25 06:28 ./slackbook +drwxr-xr-x 11 root root 4096 2006-09-25 06:25 ./slackbook/html +-rw-r--r-- 1 root root 3259 2005-05-12 01:37 ./slackbook/html/TRADEMARKS.html +-rw-r--r-- 1 root root 4361 2005-04-23 19:49 ./slackbook/html/archive-files-bzip2.html +-rw-r--r-- 1 root root 9821 2005-05-10 15:25 ./slackbook/html/archive-files-tar.html +-rw-r--r-- 1 root root 3978 2005-04-23 19:49 ./slackbook/html/archive-files-zip.html +-rw-r--r-- 1 root root 5345 2005-04-23 19:49 ./slackbook/html/archive-files.html +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/basic-network-commands +-rw-r--r-- 1 root root 6838 2005-05-12 01:37 ./slackbook/html/basic-network-commands-dns.html +-rw-r--r-- 1 root root 9768 2005-05-05 12:47 ./slackbook/html/basic-network-commands-email.html +-rw-r--r-- 1 root root 4453 2005-05-05 12:47 ./slackbook/html/basic-network-commands-finger.html +-rw-r--r-- 1 root root 9338 2005-05-12 01:37 ./slackbook/html/basic-network-commands-ftp.html +-rw-r--r-- 1 root root 3890 2005-04-23 19:49 ./slackbook/html/basic-network-commands-ssh.html +-rw-r--r-- 1 root root 6210 2005-05-12 01:37 ./slackbook/html/basic-network-commands-talk.html +-rw-r--r-- 1 root root 6298 2005-05-12 01:37 ./slackbook/html/basic-network-commands-telnet.html +-rw-r--r-- 1 root root 4092 2005-05-05 12:47 ./slackbook/html/basic-network-commands-traceroute.html +-rw-r--r-- 1 root root 7857 2005-05-12 01:37 ./slackbook/html/basic-network-commands-web.html +-rw-r--r-- 1 root root 5418 2005-05-12 01:37 ./slackbook/html/basic-network-commands.html +-rw-r--r-- 1 root root 3421 2005-05-01 07:38 ./slackbook/html/basic-network-commands/elm.png +-rw-r--r-- 1 root root 5204 2005-05-01 07:38 ./slackbook/html/basic-network-commands/links.png +-rw-r--r-- 1 root root 7544 2005-05-01 07:38 ./slackbook/html/basic-network-commands/lynx.png +-rw-r--r-- 1 root root 2489 2005-05-01 07:38 ./slackbook/html/basic-network-commands/mutt.png +-rw-r--r-- 1 root root 4689 2005-05-01 07:38 ./slackbook/html/basic-network-commands/pine.png +-rw-r--r-- 1 root root 491 2005-05-01 07:38 ./slackbook/html/basic-network-commands/talk.png +-rw-r--r-- 1 root root 952 2005-05-01 07:38 ./slackbook/html/basic-network-commands/ytalk.png +-rw-r--r-- 1 root root 13925 2005-05-05 12:47 ./slackbook/html/book-preface.html +-rw-r--r-- 1 root root 517269 2005-05-12 01:38 ./slackbook/html/book.html +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/booting +-rw-r--r-- 1 root root 12607 2005-05-12 01:37 ./slackbook/html/booting-dual.html +-rw-r--r-- 1 root root 4110 2005-04-23 19:49 ./slackbook/html/booting-loadlin.html +-rw-r--r-- 1 root root 8952 2005-05-05 12:47 ./slackbook/html/booting.html +-rw-r--r-- 1 root root 6986 2005-05-01 10:05 ./slackbook/html/booting/setup-lilo-expert-w.png +-rw-r--r-- 1 root root 5824 2005-05-01 10:05 ./slackbook/html/booting/setup-lilo-w.png +-rw-r--r-- 1 root root 2950 2005-04-24 18:51 ./slackbook/html/docbook.css +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/emacs +-rw-r--r-- 1 root root 7301 2005-04-24 12:49 ./slackbook/html/emacs-basic-editing.html +-rw-r--r-- 1 root root 4989 2005-05-05 12:47 ./slackbook/html/emacs-buffers.html +-rw-r--r-- 1 root root 6305 2005-05-05 12:47 ./slackbook/html/emacs-modes.html +-rw-r--r-- 1 root root 4466 2005-05-05 12:47 ./slackbook/html/emacs-saving-files.html +-rw-r--r-- 1 root root 7785 2005-05-12 01:37 ./slackbook/html/emacs.html +-rw-r--r-- 1 root root 7842 2005-04-24 16:56 ./slackbook/html/emacs/emacs.png +-rw-r--r-- 1 root root 9989 2005-05-05 12:47 ./slackbook/html/essential-sysadmin-hardusers.html +-rw-r--r-- 1 root root 10340 2005-05-05 12:47 ./slackbook/html/essential-sysadmin-shutdown.html +-rw-r--r-- 1 root root 18830 2005-05-05 12:47 ./slackbook/html/essential-sysadmin.html +-rw-r--r-- 1 root root 5492 2005-05-12 01:37 ./slackbook/html/file-commands-copymove.html +-rw-r--r-- 1 root root 4959 2005-05-12 01:37 ./slackbook/html/file-commands-creation.html +-rw-r--r-- 1 root root 6218 2005-05-12 01:37 ./slackbook/html/file-commands-deletion.html +-rw-r--r-- 1 root root 4034 2005-04-25 16:19 ./slackbook/html/file-commands-link.html +-rw-r--r-- 1 root root 5596 2005-05-12 01:37 ./slackbook/html/file-commands-output.html +-rw-r--r-- 1 root root 5798 2005-05-12 01:37 ./slackbook/html/file-commands-pagers.html +-rw-r--r-- 1 root root 10160 2005-05-12 01:37 ./slackbook/html/file-commands.html +-rw-r--r-- 1 root root 4506 2005-04-25 15:47 ./slackbook/html/filesystem-structure-links.html +-rw-r--r-- 1 root root 8053 2005-05-12 01:37 ./slackbook/html/filesystem-structure-mounting.html +-rw-r--r-- 1 root root 3139 2005-04-15 07:18 ./slackbook/html/filesystem-structure-nfs.html +-rw-r--r-- 1 root root 10810 2005-05-12 01:37 ./slackbook/html/filesystem-structure-permissions.html +-rw-r--r-- 1 root root 6249 2005-05-05 12:47 ./slackbook/html/filesystem-structure.html +-rw-r--r-- 1 root root 18013 2005-05-05 12:47 ./slackbook/html/glossary.html +-rw-r--r-- 1 root root 21544 2005-05-12 01:37 ./slackbook/html/gpl.html +-rw-r--r-- 1 root root 9377 2006-06-20 20:42 ./slackbook/html/help-online.html +-rw-r--r-- 1 root root 10039 2005-05-12 01:37 ./slackbook/html/help.html +drwxr-xr-x 3 root root 4096 2006-09-25 06:25 ./slackbook/html/imagelib +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/imagelib/admon +-rw-r--r-- 1 root root 338 2005-04-24 14:04 ./slackbook/html/imagelib/admon/note.png +-rw-r--r-- 1 root root 1090 2005-04-24 14:04 ./slackbook/html/imagelib/admon/warning.png +-rw-r--r-- 1 root root 27647 2005-05-12 01:37 ./slackbook/html/index.html +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/installation +-rw-r--r-- 1 root root 9134 2005-04-24 14:04 ./slackbook/html/installation-partitioning.html +-rw-r--r-- 1 root root 13788 2005-05-12 01:37 ./slackbook/html/installation-requirements.html +-rw-r--r-- 1 root root 17913 2005-05-12 01:37 ./slackbook/html/installation-setup.html +-rw-r--r-- 1 root root 6196 2005-05-12 01:37 ./slackbook/html/installation.html +-rw-r--r-- 1 root root 4010 2005-05-01 09:28 ./slackbook/html/installation/setup-bootdisk-w.png +-rw-r--r-- 1 root root 3856 2005-05-01 09:28 ./slackbook/html/installation/setup-font-w.png +-rw-r--r-- 1 root root 3916 2005-05-01 09:28 ./slackbook/html/installation/setup-hardware-clock-w.png +-rw-r--r-- 1 root root 4715 2005-05-01 09:28 ./slackbook/html/installation/setup-help-w.png +-rw-r--r-- 1 root root 7100 2005-05-01 09:28 ./slackbook/html/installation/setup-install-w.png +-rw-r--r-- 1 root root 6442 2005-05-01 09:28 ./slackbook/html/installation/setup-kernel-w.png +-rw-r--r-- 1 root root 4526 2005-05-01 09:28 ./slackbook/html/installation/setup-keymap-w.png +-rw-r--r-- 1 root root 5824 2005-05-01 09:28 ./slackbook/html/installation/setup-lilo-w.png +-rw-r--r-- 1 root root 5356 2005-05-01 09:28 ./slackbook/html/installation/setup-modem-w.png +-rw-r--r-- 1 root root 6516 2005-05-01 09:28 ./slackbook/html/installation/setup-mouse-w.png +-rw-r--r-- 1 root root 5705 2005-05-01 09:28 ./slackbook/html/installation/setup-program-w.png +-rw-r--r-- 1 root root 6817 2005-05-01 09:28 ./slackbook/html/installation/setup-select-w.png +-rw-r--r-- 1 root root 3238 2005-05-01 09:28 ./slackbook/html/installation/setup-source-w.png +-rw-r--r-- 1 root root 3066 2005-05-01 09:28 ./slackbook/html/installation/setup-swap-w.png +-rw-r--r-- 1 root root 3153 2005-05-01 09:28 ./slackbook/html/installation/setup-target-w.png +-rw-r--r-- 1 root root 3593 2005-05-01 09:28 ./slackbook/html/installation/setup-timezone-w.png +-rw-r--r-- 1 root root 6767 2005-05-01 09:28 ./slackbook/html/installation/setup-xwmconfig-w.png +-rw-r--r-- 1 root root 6602 2005-05-05 12:47 ./slackbook/html/introduction-opensource.html +-rw-r--r-- 1 root root 4353 2005-04-15 07:18 ./slackbook/html/introduction-slackware.html +-rw-r--r-- 1 root root 5703 2005-05-05 12:47 ./slackbook/html/introduction.html +-rw-r--r-- 1 root root 9336 2005-05-07 01:34 ./slackbook/html/network-configuration-hardware.html +-rw-r--r-- 1 root root 13205 2005-05-07 01:34 ./slackbook/html/network-configuration-nfs.html +-rw-r--r-- 1 root root 5671 2005-05-12 01:37 ./slackbook/html/network-configuration-ppp.html +-rw-r--r-- 1 root root 14339 2005-05-07 01:34 ./slackbook/html/network-configuration-tcpip.html +-rw-r--r-- 1 root root 8762 2005-05-12 01:37 ./slackbook/html/network-configuration-wireless.html +-rw-r--r-- 1 root root 4503 2005-05-07 01:34 ./slackbook/html/network-configuration.html +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/package-management +-rw-r--r-- 1 root root 5411 2005-05-05 12:47 ./slackbook/html/package-management-making-packages.html +-rw-r--r-- 1 root root 4408 2005-05-12 01:37 ./slackbook/html/package-management-making-tags-and-tagfiles.html +-rw-r--r-- 1 root root 11962 2005-05-12 01:37 ./slackbook/html/package-management-package-utilities.html +-rw-r--r-- 1 root root 5784 2005-05-10 15:35 ./slackbook/html/package-management.html +-rw-r--r-- 1 root root 5817 2005-05-01 10:05 ./slackbook/html/package-management/pkgtool-view-w.png +-rw-r--r-- 1 root root 4784 2005-05-01 10:05 ./slackbook/html/package-management/pkgtool-w.png +-rw-r--r-- 1 root root 4873 2005-04-25 15:56 ./slackbook/html/process-control-foregrounding.html +-rw-r--r-- 1 root root 6934 2005-05-05 12:47 ./slackbook/html/process-control-kill.html +-rw-r--r-- 1 root root 11978 2005-05-09 18:46 ./slackbook/html/process-control-ps.html +-rw-r--r-- 1 root root 7703 2005-04-23 19:49 ./slackbook/html/process-control-top.html +-rw-r--r-- 1 root root 5264 2005-04-25 22:24 ./slackbook/html/process-control.html +-rw-r--r-- 1 root root 5421 2005-05-10 14:53 ./slackbook/html/security-current.html +-rw-r--r-- 1 root root 9659 2005-05-10 14:53 ./slackbook/html/security-host.html +-rw-r--r-- 1 root root 7349 2005-05-12 01:37 ./slackbook/html/security.html +-rw-r--r-- 1 root root 9018 2005-05-05 12:47 ./slackbook/html/shell-bash.html +-rw-r--r-- 1 root root 12375 2005-05-09 16:13 ./slackbook/html/shell-command-line.html +-rw-r--r-- 1 root root 6609 2005-05-12 01:37 ./slackbook/html/shell-vt.html +-rw-r--r-- 1 root root 6764 2005-05-12 01:37 ./slackbook/html/shell.html +-rw-r--r-- 1 root root 3675 2005-05-03 13:25 ./slackbook/html/slackware_logo.png +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/system-configuration +-rw-r--r-- 1 root root 14395 2005-05-12 01:37 ./slackbook/html/system-configuration-kernel.html +-rw-r--r-- 1 root root 21909 2005-05-12 01:37 ./slackbook/html/system-configuration.html +-rw-r--r-- 1 root root 6421 2005-05-01 10:05 ./slackbook/html/system-configuration/make-menuconfig-w.png +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/vi +-rw-r--r-- 1 root root 4292 2005-04-24 14:17 ./slackbook/html/vi-configuration.html +-rw-r--r-- 1 root root 6414 2005-05-12 01:37 ./slackbook/html/vi-keys.html +-rw-r--r-- 1 root root 9546 2005-05-12 01:37 ./slackbook/html/vi-modes.html +-rw-r--r-- 1 root root 4019 2005-04-24 14:17 ./slackbook/html/vi-opening-files.html +-rw-r--r-- 1 root root 3434 2005-04-23 21:44 ./slackbook/html/vi-quitting-vi.html +-rw-r--r-- 1 root root 3698 2005-04-23 19:49 ./slackbook/html/vi-saving-files.html +-rw-r--r-- 1 root root 7379 2005-05-05 12:47 ./slackbook/html/vi.html +-rw-r--r-- 1 root root 3515 2005-05-01 07:38 ./slackbook/html/vi/vim-splitedit.png +drwxr-xr-x 2 root root 4096 2006-09-25 06:25 ./slackbook/html/x-window-system +-rw-r--r-- 1 root root 7131 2005-04-23 19:49 ./slackbook/html/x-window-system-xdm.html +-rw-r--r-- 1 root root 5093 2005-05-05 12:47 ./slackbook/html/x-window-system-xinitrc.html +-rw-r--r-- 1 root root 3027 2005-04-23 19:49 ./slackbook/html/x-window-system-xorgsetup.html +-rw-r--r-- 1 root root 6352 2005-05-05 12:47 ./slackbook/html/x-window-system-xwmconfig.html +-rw-r--r-- 1 root root 9651 2005-05-09 14:36 ./slackbook/html/x-window-system.html +-rw-r--r-- 1 root root 4003 2005-05-01 10:05 ./slackbook/html/x-window-system/xorgconfig1-w.png +-rw-r--r-- 1 root root 6872 2005-05-01 10:05 ./slackbook/html/x-window-system/xorgconfig2-w.png +-rw-r--r-- 1 root root 3069 2005-05-01 10:05 ./slackbook/html/x-window-system/xorgconfig3-w.png +-rw-r--r-- 1 root root 5245 2005-05-01 10:05 ./slackbook/html/x-window-system/xorgconfig4-w.png +-rw-r--r-- 1 root root 6767 2005-05-01 10:05 ./slackbook/html/x-window-system/xwmconfig-w.png +-rw-r--r-- 1 root root 3839 2005-05-05 12:47 ./slackbook/html/zipslack-booting.html +-rw-r--r-- 1 root root 4577 2005-05-05 12:47 ./slackbook/html/zipslack-getting.html +-rw-r--r-- 1 root root 4260 2005-04-24 13:06 ./slackbook/html/zipslack.html +-rw-r--r-- 1 root root 1863038 2005-05-16 20:23 ./slackbook/slackbook-2.0.pdf +-rw-r--r-- 1 root root 3223923 2005-05-16 14:53 ./slackbook/slackbook-2.0.ps +drwxr-xr-x 17 root root 4096 2009-08-26 15:15 ./slackware64 +-rw-r--r-- 1 root root 206654 2009-08-26 15:15 ./slackware64/CHECKSUMS.md5 +-rw-r--r-- 1 root root 197 2009-08-26 15:15 ./slackware64/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 255808 2009-08-26 15:12 ./slackware64/FILE_LIST +-rw-r--r-- 1 root root 2189265 2009-08-26 15:14 ./slackware64/MANIFEST.bz2 +lrwxrwxrwx 1 root root 15 2009-08-26 16:31 ./slackware64/PACKAGES.TXT -> ../PACKAGES.TXT +drwxr-xr-x 2 root root 24576 2009-08-26 15:12 ./slackware64/a +-rw-r--r-- 1 root root 327 2009-08-26 03:23 ./slackware64/a/aaa_base-13.0-x86_64-2.txt +-rw-r--r-- 1 root root 10400 2009-08-26 03:23 ./slackware64/a/aaa_base-13.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-26 03:23 ./slackware64/a/aaa_base-13.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 568 2009-08-22 05:49 ./slackware64/a/aaa_elflibs-13.0-x86_64-2.txt +-rw-r--r-- 1 root root 3286488 2009-08-22 05:49 ./slackware64/a/aaa_elflibs-13.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-22 05:49 ./slackware64/a/aaa_elflibs-13.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 505 2009-02-22 16:06 ./slackware64/a/aaa_terminfo-5.7-noarch-1.txt +-rw-r--r-- 1 root root 42264 2009-02-22 16:06 ./slackware64/a/aaa_terminfo-5.7-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-02-22 16:06 ./slackware64/a/aaa_terminfo-5.7-noarch-1.txz.asc +-rw-r--r-- 1 root root 365 2008-09-24 20:28 ./slackware64/a/acl-2.2.47_1-x86_64-1.txt +-rw-r--r-- 1 root root 131136 2008-09-24 20:28 ./slackware64/a/acl-2.2.47_1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-24 20:28 ./slackware64/a/acl-2.2.47_1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 411 2008-11-26 21:39 ./slackware64/a/acpid-1.0.8-x86_64-2.txt +-rw-r--r-- 1 root root 19988 2008-11-26 21:39 ./slackware64/a/acpid-1.0.8-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-26 21:39 ./slackware64/a/acpid-1.0.8-x86_64-2.txz.asc +-rw-r--r-- 1 root root 554 2009-06-10 01:19 ./slackware64/a/apmd-3.2.2-x86_64-2.txt +-rw-r--r-- 1 root root 55280 2009-06-10 01:19 ./slackware64/a/apmd-3.2.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:19 ./slackware64/a/apmd-3.2.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 556 2009-03-08 22:21 ./slackware64/a/attr-2.4.43_1-x86_64-1.txt +-rw-r--r-- 1 root root 71360 2009-03-08 22:21 ./slackware64/a/attr-2.4.43_1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-08 22:21 ./slackware64/a/attr-2.4.43_1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 510 2008-09-21 15:56 ./slackware64/a/bash-3.1.017-x86_64-2.txt +-rw-r--r-- 1 root root 627892 2008-09-21 15:56 ./slackware64/a/bash-3.1.017-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-09-21 15:56 ./slackware64/a/bash-3.1.017-x86_64-2.txz.asc +-rw-r--r-- 1 root root 227 2008-09-21 22:01 ./slackware64/a/bin-11.1-x86_64-1.txt +-rw-r--r-- 1 root root 44196 2008-09-21 22:01 ./slackware64/a/bin-11.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-21 22:01 ./slackware64/a/bin-11.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 478 2008-09-21 16:05 ./slackware64/a/bzip2-1.0.5-x86_64-1.txt +-rw-r--r-- 1 root root 125916 2008-09-21 16:05 ./slackware64/a/bzip2-1.0.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-21 16:05 ./slackware64/a/bzip2-1.0.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 525 2009-05-08 19:52 ./slackware64/a/coreutils-7.4-x86_64-1.txt +-rw-r--r-- 1 root root 1892440 2009-05-08 19:52 ./slackware64/a/coreutils-7.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-08 19:52 ./slackware64/a/coreutils-7.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 487 2009-03-16 10:50 ./slackware64/a/cpio-2.9-x86_64-2.txt +-rw-r--r-- 1 root root 153068 2009-03-16 10:50 ./slackware64/a/cpio-2.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-03-16 10:50 ./slackware64/a/cpio-2.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 579 2009-08-24 03:29 ./slackware64/a/cryptsetup-1.0.7-x86_64-1.txt +-rw-r--r-- 1 root root 487912 2009-08-24 03:29 ./slackware64/a/cryptsetup-1.0.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-24 03:29 ./slackware64/a/cryptsetup-1.0.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 644 2009-08-22 05:31 ./slackware64/a/cups-1.3.11-x86_64-1.txt +-rw-r--r-- 1 root root 2059832 2009-08-22 05:31 ./slackware64/a/cups-1.3.11-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-22 05:31 ./slackware64/a/cups-1.3.11-x86_64-1.txz.asc +-rw-r--r-- 1 root root 280 2009-07-24 23:41 ./slackware64/a/cxxlibs-6.0.10-x86_64-1.txt +-rw-r--r-- 1 root root 870244 2009-07-24 23:41 ./slackware64/a/cxxlibs-6.0.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-24 23:41 ./slackware64/a/cxxlibs-6.0.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 491 2009-06-09 02:52 ./slackware64/a/dbus-1.2.14-x86_64-1.txt +-rw-r--r-- 1 root root 298920 2009-06-09 02:52 ./slackware64/a/dbus-1.2.14-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 02:52 ./slackware64/a/dbus-1.2.14-x86_64-1.txz.asc +-rw-r--r-- 1 root root 359 2008-10-21 12:32 ./slackware64/a/dcron-2.3.3-x86_64-6.txt +-rw-r--r-- 1 root root 20132 2008-10-21 12:32 ./slackware64/a/dcron-2.3.3-x86_64-6.txz +-rw-r--r-- 1 root root 197 2008-10-21 12:32 ./slackware64/a/dcron-2.3.3-x86_64-6.txz.asc +-rw-r--r-- 1 root root 518 2008-10-07 17:36 ./slackware64/a/device-mapper-1.02.28-x86_64-1.txt +-rw-r--r-- 1 root root 334852 2008-10-07 17:36 ./slackware64/a/device-mapper-1.02.28-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-07 17:36 ./slackware64/a/device-mapper-1.02.28-x86_64-1.txz.asc +-rw-r--r-- 1 root root 311 2008-09-25 21:53 ./slackware64/a/devs-2.3.1-noarch-25.txt +-rw-r--r-- 1 root root 98596 2008-09-25 21:53 ./slackware64/a/devs-2.3.1-noarch-25.txz +-rw-r--r-- 1 root root 197 2008-09-25 21:53 ./slackware64/a/devs-2.3.1-noarch-25.txz.asc +-rw-r--r-- 1 root root 513 2009-05-23 04:29 ./slackware64/a/dialog-1.1_20080819-x86_64-3.txt +-rw-r--r-- 1 root root 125096 2009-05-23 04:29 ./slackware64/a/dialog-1.1_20080819-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:29 ./slackware64/a/dialog-1.1_20080819-x86_64-3.txz.asc +-rw-r--r-- 1 root root 281 2008-09-23 20:57 ./slackware64/a/dosfstools-2.11-x86_64-1.txt +-rw-r--r-- 1 root root 48568 2008-09-23 20:57 ./slackware64/a/dosfstools-2.11-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-23 20:57 ./slackware64/a/dosfstools-2.11-x86_64-1.txz.asc +-rw-r--r-- 1 root root 343 2009-07-17 19:29 ./slackware64/a/e2fsprogs-1.41.8-x86_64-1.txt +-rw-r--r-- 1 root root 695200 2009-07-17 19:29 ./slackware64/a/e2fsprogs-1.41.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-17 19:29 ./slackware64/a/e2fsprogs-1.41.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 352 2009-06-12 21:01 ./slackware64/a/ed-1.3-x86_64-1.txt +-rw-r--r-- 1 root root 63748 2009-06-12 21:01 ./slackware64/a/ed-1.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 21:01 ./slackware64/a/ed-1.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 430 2008-10-02 11:28 ./slackware64/a/eject-2.1.5-x86_64-1.txt +-rw-r--r-- 1 root root 34388 2008-10-02 11:28 ./slackware64/a/eject-2.1.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 11:28 ./slackware64/a/eject-2.1.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 389 2008-09-23 19:35 ./slackware64/a/elvis-2.2_0-x86_64-2.txt +-rw-r--r-- 1 root root 699236 2008-09-23 19:35 ./slackware64/a/elvis-2.2_0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-09-23 19:35 ./slackware64/a/elvis-2.2_0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 203 2009-08-22 19:42 ./slackware64/a/etc-13.0-x86_64-2.txt +-rw-r--r-- 1 root root 205512 2009-08-22 19:42 ./slackware64/a/etc-13.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-22 19:42 ./slackware64/a/etc-13.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 225 2009-06-12 22:45 ./slackware64/a/file-5.03-x86_64-1.txt +-rw-r--r-- 1 root root 200252 2009-06-12 22:45 ./slackware64/a/file-5.03-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 22:45 ./slackware64/a/file-5.03-x86_64-1.txz.asc +-rw-r--r-- 1 root root 368 2009-06-13 00:03 ./slackware64/a/findutils-4.4.2-x86_64-1.txt +-rw-r--r-- 1 root root 414500 2009-06-13 00:03 ./slackware64/a/findutils-4.4.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-13 00:03 ./slackware64/a/findutils-4.4.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 271 2008-10-23 11:06 ./slackware64/a/floppy-5.4-x86_64-3.txt +-rw-r--r-- 1 root root 350400 2008-10-23 11:06 ./slackware64/a/floppy-5.4-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-10-23 11:06 ./slackware64/a/floppy-5.4-x86_64-3.txz.asc +-rw-r--r-- 1 root root 588 2009-05-23 04:34 ./slackware64/a/gawk-3.1.6-x86_64-2.txt +-rw-r--r-- 1 root root 758316 2009-05-23 04:34 ./slackware64/a/gawk-3.1.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:34 ./slackware64/a/gawk-3.1.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 498 2008-12-13 17:25 ./slackware64/a/genpower-1.0.5-x86_64-2.txt +-rw-r--r-- 1 root root 42648 2008-12-13 17:25 ./slackware64/a/genpower-1.0.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-12-13 17:25 ./slackware64/a/genpower-1.0.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 279 2008-09-21 18:25 ./slackware64/a/gettext-0.17-x86_64-2.txt +-rw-r--r-- 1 root root 107164 2008-09-21 18:25 ./slackware64/a/gettext-0.17-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-09-21 18:25 ./slackware64/a/gettext-0.17-x86_64-2.txz.asc +-rw-r--r-- 1 root root 510 2008-10-02 14:18 ./slackware64/a/getty-ps-2.1.0b-x86_64-1.txt +-rw-r--r-- 1 root root 64504 2008-10-02 14:18 ./slackware64/a/getty-ps-2.1.0b-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 14:18 ./slackware64/a/getty-ps-2.1.0b-x86_64-1.txz.asc +-rw-r--r-- 1 root root 323 2009-04-04 22:46 ./slackware64/a/glibc-solibs-2.9-x86_64-3.txt +-rw-r--r-- 1 root root 2358376 2009-04-04 22:46 ./slackware64/a/glibc-solibs-2.9-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-04-04 22:46 ./slackware64/a/glibc-solibs-2.9-x86_64-3.txz.asc +-rw-r--r-- 1 root root 500 2009-04-04 22:43 ./slackware64/a/glibc-zoneinfo-2.9-noarch-3.txt +-rw-r--r-- 1 root root 155692 2009-04-04 22:43 ./slackware64/a/glibc-zoneinfo-2.9-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-04-04 22:43 ./slackware64/a/glibc-zoneinfo-2.9-noarch-3.txz.asc +-rw-r--r-- 1 root root 511 2008-10-02 14:25 ./slackware64/a/gpm-1.20.1-x86_64-5.txt +-rw-r--r-- 1 root root 190476 2008-10-02 14:25 ./slackware64/a/gpm-1.20.1-x86_64-5.txz +-rw-r--r-- 1 root root 197 2008-10-02 14:25 ./slackware64/a/gpm-1.20.1-x86_64-5.txz.asc +-rw-r--r-- 1 root root 292 2009-03-04 21:56 ./slackware64/a/grep-2.5.4-x86_64-1.txt +-rw-r--r-- 1 root root 228932 2009-03-04 21:56 ./slackware64/a/grep-2.5.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-04 21:56 ./slackware64/a/grep-2.5.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 99203 2008-09-21 19:59 ./slackware64/a/gzip-1.3.12-x86_64-1.tgz +-rw-r--r-- 1 root root 197 2008-09-21 19:59 ./slackware64/a/gzip-1.3.12-x86_64-1.tgz.asc +-rw-r--r-- 1 root root 315 2008-09-21 19:59 ./slackware64/a/gzip-1.3.12-x86_64-1.txt +-rw-r--r-- 1 root root 348 2008-12-14 15:46 ./slackware64/a/hdparm-9.3-x86_64-1.txt +-rw-r--r-- 1 root root 54808 2008-12-14 15:46 ./slackware64/a/hdparm-9.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-14 15:46 ./slackware64/a/hdparm-9.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 466 2009-08-24 08:48 ./slackware64/a/infozip-6.0-x86_64-1.txt +-rw-r--r-- 1 root root 405240 2009-08-24 08:48 ./slackware64/a/infozip-6.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-24 08:48 ./slackware64/a/infozip-6.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 513 2008-10-02 14:34 ./slackware64/a/inotify-tools-3.13-x86_64-1.txt +-rw-r--r-- 1 root root 44260 2008-10-02 14:34 ./slackware64/a/inotify-tools-3.13-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 14:34 ./slackware64/a/inotify-tools-3.13-x86_64-1.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:05 ./slackware64/a/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/a/install.end +-rw-r--r-- 1 root root 539 2009-06-12 23:20 ./slackware64/a/jfsutils-1.1.14-x86_64-1.txt +-rw-r--r-- 1 root root 199652 2009-06-12 23:20 ./slackware64/a/jfsutils-1.1.14-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 23:20 ./slackware64/a/jfsutils-1.1.14-x86_64-1.txz.asc +-rw-r--r-- 1 root root 465 2009-08-25 01:23 ./slackware64/a/kbd-1.15-x86_64-3.txt +-rw-r--r-- 1 root root 1062556 2009-08-25 01:23 ./slackware64/a/kbd-1.15-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-08-25 01:23 ./slackware64/a/kbd-1.15-x86_64-3.txz.asc +-rw-r--r-- 1 root root 344 2009-08-17 07:48 ./slackware64/a/kernel-firmware-2.6.29.6-noarch-2.txt +-rw-r--r-- 1 root root 259884 2009-08-17 07:48 ./slackware64/a/kernel-firmware-2.6.29.6-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-08-17 07:48 ./slackware64/a/kernel-firmware-2.6.29.6-noarch-2.txz.asc +-rw-r--r-- 1 root root 626 2009-08-17 07:48 ./slackware64/a/kernel-generic-2.6.29.6-x86_64-2.txt +-rw-r--r-- 1 root root 2813668 2009-08-17 07:48 ./slackware64/a/kernel-generic-2.6.29.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-17 07:48 ./slackware64/a/kernel-generic-2.6.29.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 638 2009-08-17 16:59 ./slackware64/a/kernel-huge-2.6.29.6-x86_64-2.txt +-rw-r--r-- 1 root root 5281220 2009-08-17 16:59 ./slackware64/a/kernel-huge-2.6.29.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-17 16:59 ./slackware64/a/kernel-huge-2.6.29.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 520 2009-08-17 16:55 ./slackware64/a/kernel-modules-2.6.29.6-x86_64-2.txt +-rw-r--r-- 1 root root 15431916 2009-08-17 16:55 ./slackware64/a/kernel-modules-2.6.29.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-17 16:55 ./slackware64/a/kernel-modules-2.6.29.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 386 2009-05-23 04:40 ./slackware64/a/less-418-x86_64-3.txt +-rw-r--r-- 1 root root 110488 2009-05-23 04:40 ./slackware64/a/less-418-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:40 ./slackware64/a/less-418-x86_64-3.txz.asc +-rw-r--r-- 1 root root 152 2008-10-02 14:54 ./slackware64/a/lha-114i-x86_64-1.txt +-rw-r--r-- 1 root root 47640 2008-10-02 14:54 ./slackware64/a/lha-114i-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 14:54 ./slackware64/a/lha-114i-x86_64-1.txz.asc +-rw-r--r-- 1 root root 590 2009-02-27 11:49 ./slackware64/a/lilo-22.8-x86_64-14.txt +-rw-r--r-- 1 root root 260692 2009-02-27 11:49 ./slackware64/a/lilo-22.8-x86_64-14.txz +-rw-r--r-- 1 root root 197 2009-02-27 11:49 ./slackware64/a/lilo-22.8-x86_64-14.txz.asc +-rw-r--r-- 1 root root 533 2008-10-02 14:55 ./slackware64/a/logrotate-3.7.4-x86_64-1.txt +-rw-r--r-- 1 root root 31948 2008-10-02 14:55 ./slackware64/a/logrotate-3.7.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 14:55 ./slackware64/a/logrotate-3.7.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 557 2008-10-07 17:38 ./slackware64/a/lvm2-2.02.40-x86_64-1.txt +-rw-r--r-- 1 root root 791744 2008-10-07 17:38 ./slackware64/a/lvm2-2.02.40-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-07 17:38 ./slackware64/a/lvm2-2.02.40-x86_64-1.txz.asc +-rw-r--r-- 1 root root 7749 2009-07-15 23:35 ./slackware64/a/maketag +-rw-r--r-- 1 root root 7749 2009-07-15 23:35 ./slackware64/a/maketag.ez +-rw-r--r-- 1 root root 472 2008-10-02 15:21 ./slackware64/a/mdadm-2.6.4-x86_64-1.txt +-rw-r--r-- 1 root root 368524 2008-10-02 15:21 ./slackware64/a/mdadm-2.6.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 15:21 ./slackware64/a/mdadm-2.6.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 323 2009-05-23 04:44 ./slackware64/a/minicom-2.1-x86_64-3.txt +-rw-r--r-- 1 root root 229152 2009-05-23 04:44 ./slackware64/a/minicom-2.1-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:44 ./slackware64/a/minicom-2.1-x86_64-3.txz.asc +-rw-r--r-- 1 root root 529 2009-08-13 20:00 ./slackware64/a/mkinitrd-1.3.4-x86_64-3.txt +-rw-r--r-- 1 root root 1106712 2009-08-13 20:00 ./slackware64/a/mkinitrd-1.3.4-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-08-13 20:00 ./slackware64/a/mkinitrd-1.3.4-x86_64-3.txz.asc +-rw-r--r-- 1 root root 388 2009-03-13 11:53 ./slackware64/a/module-init-tools-3.6-x86_64-2.txt +-rw-r--r-- 1 root root 331584 2009-03-13 11:53 ./slackware64/a/module-init-tools-3.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-03-13 11:53 ./slackware64/a/module-init-tools-3.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 487 2008-10-02 19:42 ./slackware64/a/mt-st-0.9b-x86_64-2.txt +-rw-r--r-- 1 root root 30000 2008-10-02 19:42 ./slackware64/a/mt-st-0.9b-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-02 19:42 ./slackware64/a/mt-st-0.9b-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2008-10-02 19:48 ./slackware64/a/mtx-1.3.9-x86_64-2.txt +-rw-r--r-- 1 root root 58860 2008-10-02 19:48 ./slackware64/a/mtx-1.3.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-02 19:48 ./slackware64/a/mtx-1.3.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 560 2008-09-21 20:07 ./slackware64/a/ncompress-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 16192 2008-09-21 20:07 ./slackware64/a/ncompress-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-21 20:07 ./slackware64/a/ncompress-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 546 2009-06-12 23:24 ./slackware64/a/ntfs-3g-2009.4.4-x86_64-1.txt +-rw-r--r-- 1 root root 181388 2009-06-12 23:24 ./slackware64/a/ntfs-3g-2009.4.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 23:24 ./slackware64/a/ntfs-3g-2009.4.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 678 2009-04-29 11:07 ./slackware64/a/openssl-solibs-0.9.8k-x86_64-2.txt +-rw-r--r-- 1 root root 715688 2009-04-29 11:07 ./slackware64/a/openssl-solibs-0.9.8k-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-29 11:07 ./slackware64/a/openssl-solibs-0.9.8k-x86_64-2.txz.asc +-rw-r--r-- 1 root root 564 2008-09-23 17:41 ./slackware64/a/patch-2.5.4-x86_64-1.txt +-rw-r--r-- 1 root root 58092 2008-09-23 17:41 ./slackware64/a/patch-2.5.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-23 17:41 ./slackware64/a/patch-2.5.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 436 2009-08-09 02:53 ./slackware64/a/pciutils-3.1.3-x86_64-1.txt +-rw-r--r-- 1 root root 231404 2009-08-09 02:53 ./slackware64/a/pciutils-3.1.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-09 02:53 ./slackware64/a/pciutils-3.1.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 451 2009-04-21 18:56 ./slackware64/a/pcmciautils-015-x86_64-2.txt +-rw-r--r-- 1 root root 27608 2009-04-21 18:56 ./slackware64/a/pcmciautils-015-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-21 18:56 ./slackware64/a/pcmciautils-015-x86_64-2.txz.asc +-rw-r--r-- 1 root root 41328 2009-08-16 21:55 ./slackware64/a/pkgtools-13.0-noarch-3.tgz +-rw-r--r-- 1 root root 197 2009-08-16 21:55 ./slackware64/a/pkgtools-13.0-noarch-3.tgz.asc +-rw-r--r-- 1 root root 624 2009-08-16 21:55 ./slackware64/a/pkgtools-13.0-noarch-3.txt +-rw-r--r-- 1 root root 282 2009-05-23 06:22 ./slackware64/a/procps-3.2.7-x86_64-3.txt +-rw-r--r-- 1 root root 231048 2009-05-23 06:22 ./slackware64/a/procps-3.2.7-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:22 ./slackware64/a/procps-3.2.7-x86_64-3.txz.asc +-rw-r--r-- 1 root root 524 2009-06-22 20:00 ./slackware64/a/quota-3.17-x86_64-1.txt +-rw-r--r-- 1 root root 167344 2009-06-22 20:00 ./slackware64/a/quota-3.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-22 20:00 ./slackware64/a/quota-3.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 476 2009-03-04 20:34 ./slackware64/a/reiserfsprogs-3.6.21-x86_64-1.txt +-rw-r--r-- 1 root root 224836 2009-03-04 20:34 ./slackware64/a/reiserfsprogs-3.6.21-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-04 20:34 ./slackware64/a/reiserfsprogs-3.6.21-x86_64-1.txz.asc +-rw-r--r-- 1 root root 398 2009-08-08 22:50 ./slackware64/a/rpm2tgz-1.1-x86_64-1.txt +-rw-r--r-- 1 root root 4508 2009-08-08 22:50 ./slackware64/a/rpm2tgz-1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-08 22:50 ./slackware64/a/rpm2tgz-1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 467 2008-10-02 20:41 ./slackware64/a/sdparm-1.01-x86_64-2.txt +-rw-r--r-- 1 root root 91424 2008-10-02 20:41 ./slackware64/a/sdparm-1.01-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-02 20:41 ./slackware64/a/sdparm-1.01-x86_64-2.txz.asc +-rw-r--r-- 1 root root 408 2008-09-20 20:07 ./slackware64/a/sed-4.1.5-x86_64-1.txt +-rw-r--r-- 1 root root 142116 2008-09-20 20:07 ./slackware64/a/sed-4.1.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-20 20:07 ./slackware64/a/sed-4.1.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 536 2009-08-01 02:00 ./slackware64/a/shadow-4.0.3-x86_64-18.txt +-rw-r--r-- 1 root root 610600 2009-08-01 02:00 ./slackware64/a/shadow-4.0.3-x86_64-18.txz +-rw-r--r-- 1 root root 197 2009-08-01 02:00 ./slackware64/a/shadow-4.0.3-x86_64-18.txz.asc +-rw-r--r-- 1 root root 627 2009-06-22 18:50 ./slackware64/a/sharutils-4.7-x86_64-1.txt +-rw-r--r-- 1 root root 166144 2009-06-22 18:50 ./slackware64/a/sharutils-4.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-22 18:50 ./slackware64/a/sharutils-4.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 553 2009-07-18 00:43 ./slackware64/a/slocate-3.1-x86_64-3.txt +-rw-r--r-- 1 root root 28148 2009-07-18 00:43 ./slackware64/a/slocate-3.1-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-07-18 00:43 ./slackware64/a/slocate-3.1-x86_64-3.txz.asc +-rw-r--r-- 1 root root 710 2008-10-02 20:55 ./slackware64/a/smartmontools-5.38-x86_64-1.txt +-rw-r--r-- 1 root root 199512 2008-10-02 20:55 ./slackware64/a/smartmontools-5.38-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 20:55 ./slackware64/a/smartmontools-5.38-x86_64-1.txz.asc +-rw-r--r-- 1 root root 285 2008-10-02 20:57 ./slackware64/a/splitvt-1.6.5-x86_64-1.txt +-rw-r--r-- 1 root root 28700 2008-10-02 20:57 ./slackware64/a/splitvt-1.6.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 20:57 ./slackware64/a/splitvt-1.6.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 544 2008-09-25 22:00 ./slackware64/a/sysfsutils-2.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 39392 2008-09-25 22:00 ./slackware64/a/sysfsutils-2.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-25 22:00 ./slackware64/a/sysfsutils-2.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 457 2008-09-23 17:49 ./slackware64/a/sysklogd-1.4.1-x86_64-10.txt +-rw-r--r-- 1 root root 57760 2008-09-23 17:49 ./slackware64/a/sysklogd-1.4.1-x86_64-10.txz +-rw-r--r-- 1 root root 197 2008-09-23 17:49 ./slackware64/a/sysklogd-1.4.1-x86_64-10.txz.asc +-rw-r--r-- 1 root root 518 2008-09-25 21:56 ./slackware64/a/syslinux-3.52-x86_64-1.txt +-rw-r--r-- 1 root root 232496 2008-09-25 21:56 ./slackware64/a/syslinux-3.52-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-25 21:56 ./slackware64/a/syslinux-3.52-x86_64-1.txz.asc +-rw-r--r-- 1 root root 513 2008-09-25 17:31 ./slackware64/a/sysvinit-2.86-x86_64-6.txt +-rw-r--r-- 1 root root 60428 2008-09-25 17:31 ./slackware64/a/sysvinit-2.86-x86_64-6.txz +-rw-r--r-- 1 root root 197 2008-09-25 17:31 ./slackware64/a/sysvinit-2.86-x86_64-6.txz.asc +-rw-r--r-- 1 root root 695 2008-09-23 17:55 ./slackware64/a/sysvinit-functions-8.53-x86_64-2.txt +-rw-r--r-- 1 root root 30356 2008-09-23 17:55 ./slackware64/a/sysvinit-functions-8.53-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-09-23 17:55 ./slackware64/a/sysvinit-functions-8.53-x86_64-2.txz.asc +-rw-r--r-- 1 root root 379 2009-07-18 01:39 ./slackware64/a/sysvinit-scripts-1.2-noarch-30.txt +-rw-r--r-- 1 root root 17316 2009-07-18 01:39 ./slackware64/a/sysvinit-scripts-1.2-noarch-30.txz +-rw-r--r-- 1 root root 197 2009-07-18 01:39 ./slackware64/a/sysvinit-scripts-1.2-noarch-30.txz.asc +-rw-r--r-- 1 root root 1160 2009-07-15 23:35 ./slackware64/a/tagfile +-rw-r--r-- 1 root root 980855 2009-05-06 21:52 ./slackware64/a/tar-1.22-x86_64-2.tgz +-rw-r--r-- 1 root root 197 2009-05-06 21:52 ./slackware64/a/tar-1.22-x86_64-2.tgz.asc +-rw-r--r-- 1 root root 380 2009-05-06 21:52 ./slackware64/a/tar-1.22-x86_64-2.txt +-rw-r--r-- 1 root root 431 2008-10-02 21:05 ./slackware64/a/tcsh-6.15.00-x86_64-1.txt +-rw-r--r-- 1 root root 273964 2008-10-02 21:05 ./slackware64/a/tcsh-6.15.00-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 21:05 ./slackware64/a/tcsh-6.15.00-x86_64-1.txz.asc +-rw-r--r-- 1 root root 432 2008-09-25 21:54 ./slackware64/a/time-1.7-x86_64-1.txt +-rw-r--r-- 1 root root 18340 2008-09-25 21:54 ./slackware64/a/time-1.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-25 21:54 ./slackware64/a/time-1.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 418 2009-04-11 20:16 ./slackware64/a/tree-1.5.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 29464 2009-04-11 20:16 ./slackware64/a/tree-1.5.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-11 20:16 ./slackware64/a/tree-1.5.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 369 2009-07-15 03:59 ./slackware64/a/udev-141-x86_64-3.txt +-rw-r--r-- 1 root root 168680 2009-07-15 03:59 ./slackware64/a/udev-141-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-07-15 03:59 ./slackware64/a/udev-141-x86_64-3.txz.asc +-rw-r--r-- 1 root root 392 2008-10-02 21:07 ./slackware64/a/unarj-265-x86_64-1.txt +-rw-r--r-- 1 root root 16528 2008-10-02 21:07 ./slackware64/a/unarj-265-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 21:07 ./slackware64/a/unarj-265-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-08-13 02:56 ./slackware64/a/usbutils-0.82-x86_64-2.txt +-rw-r--r-- 1 root root 143932 2009-08-13 02:56 ./slackware64/a/usbutils-0.82-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-13 02:56 ./slackware64/a/usbutils-0.82-x86_64-2.txz.asc +-rw-r--r-- 1 root root 350 2008-09-28 20:45 ./slackware64/a/utempter-1.1.4-x86_64-1.txt +-rw-r--r-- 1 root root 13872 2008-09-28 20:45 ./slackware64/a/utempter-1.1.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-28 20:45 ./slackware64/a/utempter-1.1.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 446 2009-05-23 06:43 ./slackware64/a/util-linux-ng-2.14.2-x86_64-2.txt +-rw-r--r-- 1 root root 1179332 2009-05-23 06:43 ./slackware64/a/util-linux-ng-2.14.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:43 ./slackware64/a/util-linux-ng-2.14.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 582 2009-03-03 23:24 ./slackware64/a/which-2.20-x86_64-1.txt +-rw-r--r-- 1 root root 28780 2009-03-03 23:24 ./slackware64/a/which-2.20-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-03 23:24 ./slackware64/a/which-2.20-x86_64-1.txz.asc +-rw-r--r-- 1 root root 495 2009-06-13 04:33 ./slackware64/a/xfsprogs-3.0.1-x86_64-1.txt +-rw-r--r-- 1 root root 609544 2009-06-13 04:33 ./slackware64/a/xfsprogs-3.0.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-13 04:33 ./slackware64/a/xfsprogs-3.0.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 195779 2009-04-08 20:27 ./slackware64/a/xz-4.999.8beta-x86_64-1.tgz +-rw-r--r-- 1 root root 197 2009-04-08 20:27 ./slackware64/a/xz-4.999.8beta-x86_64-1.tgz.asc +-rw-r--r-- 1 root root 499 2009-04-08 20:27 ./slackware64/a/xz-4.999.8beta-x86_64-1.txt +-rw-r--r-- 1 root root 542 2008-10-02 21:13 ./slackware64/a/zoo-2.10-x86_64-1.txt +-rw-r--r-- 1 root root 54236 2008-10-02 21:13 ./slackware64/a/zoo-2.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 21:13 ./slackware64/a/zoo-2.10-x86_64-1.txz.asc +drwxr-xr-x 2 root root 16384 2009-08-25 04:55 ./slackware64/ap +-rw-r--r-- 1 root root 445 2009-05-23 04:17 ./slackware64/ap/a2ps-4.14-x86_64-4.txt +-rw-r--r-- 1 root root 760096 2009-05-23 04:17 ./slackware64/ap/a2ps-4.14-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:17 ./slackware64/ap/a2ps-4.14-x86_64-4.txz.asc +-rw-r--r-- 1 root root 599 2008-11-30 13:17 ./slackware64/ap/acct-6.4pre1-x86_64-1.txt +-rw-r--r-- 1 root root 87636 2008-11-30 13:17 ./slackware64/ap/acct-6.4pre1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-30 13:17 ./slackware64/ap/acct-6.4pre1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 625 2009-05-23 04:17 ./slackware64/ap/alsa-utils-1.0.18-x86_64-2.txt +-rw-r--r-- 1 root root 912916 2009-05-23 04:17 ./slackware64/ap/alsa-utils-1.0.18-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:17 ./slackware64/ap/alsa-utils-1.0.18-x86_64-2.txz.asc +-rw-r--r-- 1 root root 275 2008-10-02 22:32 ./slackware64/ap/amp-0.7.6-x86_64-1.txt +-rw-r--r-- 1 root root 44568 2008-10-02 22:32 ./slackware64/ap/amp-0.7.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 22:32 ./slackware64/ap/amp-0.7.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 525 2008-10-02 22:40 ./slackware64/ap/ash-0.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 79140 2008-10-02 22:40 ./slackware64/ap/ash-0.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-02 22:40 ./slackware64/ap/ash-0.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 284 2008-10-21 13:01 ./slackware64/ap/at-3.1.10-x86_64-1.txt +-rw-r--r-- 1 root root 38884 2008-10-21 13:01 ./slackware64/ap/at-3.1.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-21 13:01 ./slackware64/ap/at-3.1.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 308 2009-05-23 04:18 ./slackware64/ap/aumix-2.8-x86_64-2.txt +-rw-r--r-- 1 root root 56448 2009-05-23 04:18 ./slackware64/ap/aumix-2.8-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:18 ./slackware64/ap/aumix-2.8-x86_64-2.txz.asc +-rw-r--r-- 1 root root 386 2009-05-23 04:18 ./slackware64/ap/bc-1.06.95-x86_64-2.txt +-rw-r--r-- 1 root root 102072 2009-05-23 04:18 ./slackware64/ap/bc-1.06.95-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:18 ./slackware64/ap/bc-1.06.95-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-05-23 04:18 ./slackware64/ap/bpe-2.01.00-x86_64-2.txt +-rw-r--r-- 1 root root 47880 2009-05-23 04:18 ./slackware64/ap/bpe-2.01.00-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:18 ./slackware64/ap/bpe-2.01.00-x86_64-2.txz.asc +-rw-r--r-- 1 root root 595 2008-11-26 15:53 ./slackware64/ap/cdparanoia-III_10.2-x86_64-1.txt +-rw-r--r-- 1 root root 97840 2008-11-26 15:53 ./slackware64/ap/cdparanoia-III_10.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-26 15:53 ./slackware64/ap/cdparanoia-III_10.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2008-10-21 11:12 ./slackware64/ap/cdrdao-1.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 305140 2008-10-21 11:12 ./slackware64/ap/cdrdao-1.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-21 11:12 ./slackware64/ap/cdrdao-1.2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 409 2009-05-23 04:20 ./slackware64/ap/cdrtools-2.01.01a57-x86_64-3.txt +-rw-r--r-- 1 root root 843064 2009-05-23 04:20 ./slackware64/ap/cdrtools-2.01.01a57-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:20 ./slackware64/ap/cdrtools-2.01.01a57-x86_64-3.txz.asc +-rw-r--r-- 1 root root 531 2009-03-09 11:10 ./slackware64/ap/cupsddk-1.2.3-x86_64-1.txt +-rw-r--r-- 1 root root 291460 2009-03-09 11:10 ./slackware64/ap/cupsddk-1.2.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 11:10 ./slackware64/ap/cupsddk-1.2.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 456 2009-07-22 22:13 ./slackware64/ap/dc3dd-6.12.3-x86_64-1.txt +-rw-r--r-- 1 root root 116972 2009-07-22 22:13 ./slackware64/ap/dc3dd-6.12.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-22 22:13 ./slackware64/ap/dc3dd-6.12.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 409 2008-10-21 13:20 ./slackware64/ap/diffstat-1.43-x86_64-1.txt +-rw-r--r-- 1 root root 15012 2008-10-21 13:20 ./slackware64/ap/diffstat-1.43-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-21 13:20 ./slackware64/ap/diffstat-1.43-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2008-09-21 16:13 ./slackware64/ap/diffutils-2.8.1-x86_64-3.txt +-rw-r--r-- 1 root root 185580 2008-09-21 16:13 ./slackware64/ap/diffutils-2.8.1-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-09-21 16:13 ./slackware64/ap/diffutils-2.8.1-x86_64-3.txz.asc +-rw-r--r-- 1 root root 348 2009-06-13 04:42 ./slackware64/ap/dmapi-2.2.10-x86_64-1.txt +-rw-r--r-- 1 root root 30804 2009-06-13 04:42 ./slackware64/ap/dmapi-2.2.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-13 04:42 ./slackware64/ap/dmapi-2.2.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 473 2008-11-27 10:06 ./slackware64/ap/dmidecode-2.10-x86_64-1.txt +-rw-r--r-- 1 root root 51512 2008-11-27 10:06 ./slackware64/ap/dmidecode-2.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-27 10:06 ./slackware64/ap/dmidecode-2.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 360 2008-10-21 19:37 ./slackware64/ap/dvd+rw-tools-7.1-x86_64-1.txt +-rw-r--r-- 1 root root 104856 2008-10-21 19:37 ./slackware64/ap/dvd+rw-tools-7.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-21 19:37 ./slackware64/ap/dvd+rw-tools-7.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 461 2008-11-04 22:16 ./slackware64/ap/enscript-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 331356 2008-11-04 22:16 ./slackware64/ap/enscript-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-04 22:16 ./slackware64/ap/enscript-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 603 2008-10-21 20:53 ./slackware64/ap/flac-1.2.1-x86_64-2.txt +-rw-r--r-- 1 root root 761720 2008-10-21 20:53 ./slackware64/ap/flac-1.2.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-21 20:53 ./slackware64/ap/flac-1.2.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 637 2009-08-18 20:55 ./slackware64/ap/foomatic-filters-4.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 105692 2009-08-18 20:55 ./slackware64/ap/foomatic-filters-4.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-18 20:55 ./slackware64/ap/foomatic-filters-4.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 549 2009-08-22 05:42 ./slackware64/ap/ghostscript-8.70-x86_64-1.txt +-rw-r--r-- 1 root root 10665648 2009-08-22 05:42 ./slackware64/ap/ghostscript-8.70-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-22 05:42 ./slackware64/ap/ghostscript-8.70-x86_64-1.txz.asc +-rw-r--r-- 1 root root 368 2008-10-01 19:55 ./slackware64/ap/ghostscript-fonts-std-8.11-noarch-1.txt +-rw-r--r-- 1 root root 3517036 2008-10-01 19:55 ./slackware64/ap/ghostscript-fonts-std-8.11-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-10-01 19:55 ./slackware64/ap/ghostscript-fonts-std-8.11-noarch-1.txz.asc +-rw-r--r-- 1 root root 303 2009-06-09 19:20 ./slackware64/ap/gphoto2-2.4.5-x86_64-1.txt +-rw-r--r-- 1 root root 144544 2009-06-09 19:20 ./slackware64/ap/gphoto2-2.4.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:20 ./slackware64/ap/gphoto2-2.4.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 431 2009-03-04 21:45 ./slackware64/ap/groff-1.20.1-x86_64-1.txt +-rw-r--r-- 1 root root 1867680 2009-03-04 21:45 ./slackware64/ap/groff-1.20.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-04 21:45 ./slackware64/ap/groff-1.20.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 549 2009-08-22 05:45 ./slackware64/ap/gutenprint-5.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 2000156 2009-08-22 05:45 ./slackware64/ap/gutenprint-5.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-22 05:45 ./slackware64/ap/gutenprint-5.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 477 2009-06-09 20:29 ./slackware64/ap/hplip-3.9.4b-x86_64-2.txt +-rw-r--r-- 1 root root 9340524 2009-06-09 20:29 ./slackware64/ap/hplip-3.9.4b-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 20:29 ./slackware64/ap/hplip-3.9.4b-x86_64-2.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/ap/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/ap/install.end +-rw-r--r-- 1 root root 600 2009-03-16 21:02 ./slackware64/ap/ispell-3.2.06-x86_64-1.txt +-rw-r--r-- 1 root root 347684 2009-03-16 21:02 ./slackware64/ap/ispell-3.2.06-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-16 21:02 ./slackware64/ap/ispell-3.2.06-x86_64-1.txz.asc +-rw-r--r-- 1 root root 484 2008-10-23 13:25 ./slackware64/ap/jed-0.99_18-x86_64-3.txt +-rw-r--r-- 1 root root 499568 2008-10-23 13:25 ./slackware64/ap/jed-0.99_18-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-10-23 13:25 ./slackware64/ap/jed-0.99_18-x86_64-3.txz.asc +-rw-r--r-- 1 root root 145 2009-05-23 04:40 ./slackware64/ap/joe-3.5-x86_64-2.txt +-rw-r--r-- 1 root root 288256 2009-05-23 04:40 ./slackware64/ap/joe-3.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:40 ./slackware64/ap/joe-3.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 337 2009-06-16 18:40 ./slackware64/ap/jove-4.16.0.70-x86_64-2.txt +-rw-r--r-- 1 root root 162100 2009-06-16 18:40 ./slackware64/ap/jove-4.16.0.70-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-16 18:40 ./slackware64/ap/jove-4.16.0.70-x86_64-2.txz.asc +-rw-r--r-- 1 root root 540 2008-11-04 22:45 ./slackware64/ap/ksh93-2007_03_28-x86_64-2.txt +-rw-r--r-- 1 root root 683104 2008-11-04 22:45 ./slackware64/ap/ksh93-2007_03_28-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-04 22:45 ./slackware64/ap/ksh93-2007_03_28-x86_64-2.txz.asc +-rw-r--r-- 1 root root 316 2008-12-12 21:14 ./slackware64/ap/libx86-1.1-x86_64-1.txt +-rw-r--r-- 1 root root 59200 2008-12-12 21:14 ./slackware64/ap/libx86-1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-12 21:14 ./slackware64/ap/libx86-1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 701 2009-08-02 20:39 ./slackware64/ap/linuxdoc-tools-0.9.56-x86_64-5.txt +-rw-r--r-- 1 root root 4536640 2009-08-02 20:39 ./slackware64/ap/linuxdoc-tools-0.9.56-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-08-02 20:39 ./slackware64/ap/linuxdoc-tools-0.9.56-x86_64-5.txz.asc +-rw-r--r-- 1 root root 644 2009-06-22 21:43 ./slackware64/ap/lm_sensors-3.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 123048 2009-06-22 21:43 ./slackware64/ap/lm_sensors-3.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-22 21:43 ./slackware64/ap/lm_sensors-3.1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 333 2008-09-28 15:34 ./slackware64/ap/lsof-4.78-x86_64-1.txt +-rw-r--r-- 1 root root 263356 2008-09-28 15:34 ./slackware64/ap/lsof-4.78-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-28 15:34 ./slackware64/ap/lsof-4.78-x86_64-1.txz.asc +-rw-r--r-- 1 root root 367 2009-03-08 23:30 ./slackware64/ap/lsscsi-0.22-x86_64-1.txt +-rw-r--r-- 1 root root 30620 2009-03-08 23:30 ./slackware64/ap/lsscsi-0.22-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-08 23:30 ./slackware64/ap/lsscsi-0.22-x86_64-1.txz.asc +-rw-r--r-- 1 root root 339 2008-11-26 18:35 ./slackware64/ap/madplay-0.15.2b-x86_64-2.txt +-rw-r--r-- 1 root root 60436 2008-11-26 18:35 ./slackware64/ap/madplay-0.15.2b-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-26 18:35 ./slackware64/ap/madplay-0.15.2b-x86_64-2.txz.asc +-rw-r--r-- 1 root root 5392 2009-07-22 22:22 ./slackware64/ap/maketag +-rw-r--r-- 1 root root 5392 2009-07-22 22:22 ./slackware64/ap/maketag.ez +-rw-r--r-- 1 root root 447 2009-08-09 02:17 ./slackware64/ap/man-1.6f-x86_64-2.txt +-rw-r--r-- 1 root root 211888 2009-08-09 02:17 ./slackware64/ap/man-1.6f-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-09 02:17 ./slackware64/ap/man-1.6f-x86_64-2.txz.asc +-rw-r--r-- 1 root root 490 2009-08-11 21:36 ./slackware64/ap/man-pages-3.22-noarch-2.txt +-rw-r--r-- 1 root root 2440520 2009-08-11 21:36 ./slackware64/ap/man-pages-3.22-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-08-11 21:36 ./slackware64/ap/man-pages-3.22-noarch-2.txz.asc +-rw-r--r-- 1 root root 451 2009-07-14 21:22 ./slackware64/ap/mc-20090714_git-x86_64-1.txt +-rw-r--r-- 1 root root 1507816 2009-07-14 21:22 ./slackware64/ap/mc-20090714_git-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-14 21:22 ./slackware64/ap/mc-20090714_git-x86_64-1.txz.asc +-rw-r--r-- 1 root root 378 2009-06-25 23:08 ./slackware64/ap/most-5.0.0a-x86_64-2.txt +-rw-r--r-- 1 root root 45504 2009-06-25 23:08 ./slackware64/ap/most-5.0.0a-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-25 23:08 ./slackware64/ap/most-5.0.0a-x86_64-2.txz.asc +-rw-r--r-- 1 root root 459 2008-10-23 18:33 ./slackware64/ap/mpg321-0.2.10-x86_64-2.txt +-rw-r--r-- 1 root root 35488 2008-10-23 18:33 ./slackware64/ap/mpg321-0.2.10-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-23 18:33 ./slackware64/ap/mpg321-0.2.10-x86_64-2.txz.asc +-rw-r--r-- 1 root root 360 2009-08-04 01:45 ./slackware64/ap/mysql-5.0.84-x86_64-1.txt +-rw-r--r-- 1 root root 6027560 2009-08-04 01:45 ./slackware64/ap/mysql-5.0.84-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 01:45 ./slackware64/ap/mysql-5.0.84-x86_64-1.txz.asc +-rw-r--r-- 1 root root 415 2009-05-23 04:48 ./slackware64/ap/nano-2.0.9-x86_64-2.txt +-rw-r--r-- 1 root root 304420 2009-05-23 04:48 ./slackware64/ap/nano-2.0.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:48 ./slackware64/ap/nano-2.0.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 514 2009-06-10 01:27 ./slackware64/ap/normalize-0.7.7-x86_64-1.txt +-rw-r--r-- 1 root root 60608 2009-06-10 01:27 ./slackware64/ap/normalize-0.7.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:27 ./slackware64/ap/normalize-0.7.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 604 2008-10-23 19:18 ./slackware64/ap/ntfsprogs-2.0.0-x86_64-2.txt +-rw-r--r-- 1 root root 273544 2008-10-23 19:18 ./slackware64/ap/ntfsprogs-2.0.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-23 19:18 ./slackware64/ap/ntfsprogs-2.0.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 375 2009-06-09 23:36 ./slackware64/ap/pm-utils-1.2.5-x86_64-1.txt +-rw-r--r-- 1 root root 41868 2009-06-09 23:36 ./slackware64/ap/pm-utils-1.2.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 23:36 ./slackware64/ap/pm-utils-1.2.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 345 2008-12-12 21:07 ./slackware64/ap/radeontool-1.5-x86_64-1.txt +-rw-r--r-- 1 root root 5368 2008-12-12 21:07 ./slackware64/ap/radeontool-1.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-12 21:07 ./slackware64/ap/radeontool-1.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 372 2009-05-23 06:26 ./slackware64/ap/rexima-1.4-x86_64-2.txt +-rw-r--r-- 1 root root 16960 2009-05-23 06:26 ./slackware64/ap/rexima-1.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:26 ./slackware64/ap/rexima-1.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 493 2009-06-04 21:38 ./slackware64/ap/rpm-4.7.0-x86_64-2.txt +-rw-r--r-- 1 root root 821012 2009-06-04 21:38 ./slackware64/ap/rpm-4.7.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-04 21:38 ./slackware64/ap/rpm-4.7.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 268 2008-10-23 19:33 ./slackware64/ap/rzip-2.1-x86_64-1.txt +-rw-r--r-- 1 root root 20372 2008-10-23 19:33 ./slackware64/ap/rzip-2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-23 19:33 ./slackware64/ap/rzip-2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 123 2009-05-23 06:36 ./slackware64/ap/sc-7.16-x86_64-2.txt +-rw-r--r-- 1 root root 195156 2009-05-23 06:36 ./slackware64/ap/sc-7.16-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:36 ./slackware64/ap/sc-7.16-x86_64-2.txz.asc +-rw-r--r-- 1 root root 654 2009-05-23 06:38 ./slackware64/ap/screen-4.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 492712 2009-05-23 06:38 ./slackware64/ap/screen-4.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:38 ./slackware64/ap/screen-4.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 455 2008-12-14 23:45 ./slackware64/ap/seejpeg-1.10-x86_64-1.txt +-rw-r--r-- 1 root root 53832 2008-12-14 23:45 ./slackware64/ap/seejpeg-1.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-14 23:45 ./slackware64/ap/seejpeg-1.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 51970 2009-07-30 18:04 ./slackware64/ap/slackpkg-2.80.2-noarch-3.tgz +-rw-r--r-- 1 root root 197 2009-07-30 18:04 ./slackware64/ap/slackpkg-2.80.2-noarch-3.tgz.asc +-rw-r--r-- 1 root root 441 2009-07-30 18:04 ./slackware64/ap/slackpkg-2.80.2-noarch-3.txt +-rw-r--r-- 1 root root 256 2009-08-24 07:02 ./slackware64/ap/sox-14.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 336520 2009-08-24 07:02 ./slackware64/ap/sox-14.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-24 07:02 ./slackware64/ap/sox-14.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 484 2009-06-12 23:11 ./slackware64/ap/sqlite-3.6.14.2-x86_64-1.txt +-rw-r--r-- 1 root root 307424 2009-06-12 23:11 ./slackware64/ap/sqlite-3.6.14.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 23:11 ./slackware64/ap/sqlite-3.6.14.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 414 2008-10-13 19:07 ./slackware64/ap/sudo-1.6.8p12-x86_64-1.txt +-rw-r--r-- 1 root root 114472 2008-10-13 19:07 ./slackware64/ap/sudo-1.6.8p12-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-13 19:07 ./slackware64/ap/sudo-1.6.8p12-x86_64-1.txz.asc +-rw-r--r-- 1 root root 338 2008-09-28 15:36 ./slackware64/ap/sysstat-7.0.0-x86_64-1.txt +-rw-r--r-- 1 root root 100508 2008-09-28 15:36 ./slackware64/ap/sysstat-7.0.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-28 15:36 ./slackware64/ap/sysstat-7.0.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 782 2009-07-22 22:22 ./slackware64/ap/tagfile +-rw-r--r-- 1 root root 616 2009-05-23 06:39 ./slackware64/ap/texinfo-4.13a-x86_64-3.txt +-rw-r--r-- 1 root root 760236 2009-05-23 06:39 ./slackware64/ap/texinfo-4.13a-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:39 ./slackware64/ap/texinfo-4.13a-x86_64-3.txz.asc +-rw-r--r-- 1 root root 375 2008-12-12 21:18 ./slackware64/ap/vbetool-1.1-x86_64-1.txt +-rw-r--r-- 1 root root 22748 2008-12-12 21:18 ./slackware64/ap/vbetool-1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-12 21:18 ./slackware64/ap/vbetool-1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 385 2009-08-25 01:13 ./slackware64/ap/vim-7.2.245-x86_64-1.txt +-rw-r--r-- 1 root root 6243108 2009-08-25 01:13 ./slackware64/ap/vim-7.2.245-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-25 01:13 ./slackware64/ap/vim-7.2.245-x86_64-1.txz.asc +-rw-r--r-- 1 root root 608 2008-10-23 20:24 ./slackware64/ap/vorbis-tools-1.2.0-x86_64-1.txt +-rw-r--r-- 1 root root 138612 2008-10-23 20:24 ./slackware64/ap/vorbis-tools-1.2.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-23 20:24 ./slackware64/ap/vorbis-tools-1.2.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 230 2008-10-23 20:36 ./slackware64/ap/workbone-2.40-x86_64-3.txt +-rw-r--r-- 1 root root 11892 2008-10-23 20:36 ./slackware64/ap/workbone-2.40-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-10-23 20:36 ./slackware64/ap/workbone-2.40-x86_64-3.txz.asc +-rw-r--r-- 1 root root 525 2009-06-13 04:43 ./slackware64/ap/xfsdump-3.0.1-x86_64-1.txt +-rw-r--r-- 1 root root 301164 2009-06-13 04:43 ./slackware64/ap/xfsdump-3.0.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-13 04:43 ./slackware64/ap/xfsdump-3.0.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 508 2009-07-16 00:07 ./slackware64/ap/zsh-4.3.10-x86_64-1.txt +-rw-r--r-- 1 root root 2252580 2009-07-16 00:07 ./slackware64/ap/zsh-4.3.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 00:07 ./slackware64/ap/zsh-4.3.10-x86_64-1.txz.asc +drwxr-xr-x 2 root root 12288 2009-08-19 00:23 ./slackware64/d +-rw-r--r-- 1 root root 631 2008-10-07 17:08 ./slackware64/d/autoconf-2.63-noarch-1.txt +-rw-r--r-- 1 root root 621992 2008-10-07 17:08 ./slackware64/d/autoconf-2.63-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-10-07 17:08 ./slackware64/d/autoconf-2.63-noarch-1.txz.asc +-rw-r--r-- 1 root root 627 2008-10-07 17:09 ./slackware64/d/automake-1.10.1-noarch-1.txt +-rw-r--r-- 1 root root 529340 2008-10-07 17:09 ./slackware64/d/automake-1.10.1-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-10-07 17:09 ./slackware64/d/automake-1.10.1-noarch-1.txz.asc +-rw-r--r-- 1 root root 443 2009-05-24 18:33 ./slackware64/d/binutils-2.18.50.0.9-x86_64-2.txt +-rw-r--r-- 1 root root 2402568 2009-05-24 18:33 ./slackware64/d/binutils-2.18.50.0.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-24 18:33 ./slackware64/d/binutils-2.18.50.0.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 471 2009-02-22 16:31 ./slackware64/d/bison-2.4.1-x86_64-1.txt +-rw-r--r-- 1 root root 411800 2009-02-22 16:31 ./slackware64/d/bison-2.4.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-02-22 16:31 ./slackware64/d/bison-2.4.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 314 2008-10-31 22:57 ./slackware64/d/ccache-2.4-x86_64-1.txt +-rw-r--r-- 1 root root 24380 2008-10-31 22:57 ./slackware64/d/ccache-2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 22:57 ./slackware64/d/ccache-2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 665 2009-05-23 04:27 ./slackware64/d/clisp-2.47-x86_64-2.txt +-rw-r--r-- 1 root root 3894640 2009-05-23 04:27 ./slackware64/d/clisp-2.47-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:27 ./slackware64/d/clisp-2.47-x86_64-2.txz.asc +-rw-r--r-- 1 root root 397 2009-05-23 04:28 ./slackware64/d/cmake-2.6.2-x86_64-2.txt +-rw-r--r-- 1 root root 3584996 2009-05-23 04:28 ./slackware64/d/cmake-2.6.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:28 ./slackware64/d/cmake-2.6.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 350 2009-05-23 04:28 ./slackware64/d/cscope-15.6-x86_64-2.txt +-rw-r--r-- 1 root root 90572 2009-05-23 04:28 ./slackware64/d/cscope-15.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:28 ./slackware64/d/cscope-15.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 538 2008-10-15 23:21 ./slackware64/d/cvs-1.11.23-x86_64-1.txt +-rw-r--r-- 1 root root 859048 2008-10-15 23:21 ./slackware64/d/cvs-1.11.23-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-15 23:21 ./slackware64/d/cvs-1.11.23-x86_64-1.txz.asc +-rw-r--r-- 1 root root 412 2009-05-23 04:29 ./slackware64/d/dev86-0.16.17-x86_64-2.txt +-rw-r--r-- 1 root root 287864 2009-05-23 04:29 ./slackware64/d/dev86-0.16.17-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:29 ./slackware64/d/dev86-0.16.17-x86_64-2.txz.asc +-rw-r--r-- 1 root root 483 2008-11-04 11:53 ./slackware64/d/distcc-2.18.3-x86_64-2.txt +-rw-r--r-- 1 root root 116144 2008-11-04 11:53 ./slackware64/d/distcc-2.18.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-04 11:53 ./slackware64/d/distcc-2.18.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 511 2009-03-09 19:35 ./slackware64/d/doxygen-1.5.8-x86_64-1.txt +-rw-r--r-- 1 root root 2556604 2009-03-09 19:35 ./slackware64/d/doxygen-1.5.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 19:35 ./slackware64/d/doxygen-1.5.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 331 2008-10-22 21:35 ./slackware64/d/flex-2.5.35-x86_64-1.txt +-rw-r--r-- 1 root root 270228 2008-10-22 21:35 ./slackware64/d/flex-2.5.35-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-22 21:35 ./slackware64/d/flex-2.5.35-x86_64-1.txz.asc +-rw-r--r-- 1 root root 302 2009-05-24 20:28 ./slackware64/d/gcc-4.3.3-x86_64-4.txt +-rw-r--r-- 1 root root 6870956 2009-05-24 20:28 ./slackware64/d/gcc-4.3.3-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-24 20:28 ./slackware64/d/gcc-4.3.3-x86_64-4.txz.asc +-rw-r--r-- 1 root root 295 2009-05-24 20:29 ./slackware64/d/gcc-g++-4.3.3-x86_64-4.txt +-rw-r--r-- 1 root root 4533548 2009-05-24 20:29 ./slackware64/d/gcc-g++-4.3.3-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-24 20:29 ./slackware64/d/gcc-g++-4.3.3-x86_64-4.txz.asc +-rw-r--r-- 1 root root 768 2009-05-24 20:29 ./slackware64/d/gcc-gfortran-4.3.3-x86_64-4.txt +-rw-r--r-- 1 root root 3203716 2009-05-24 20:29 ./slackware64/d/gcc-gfortran-4.3.3-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-24 20:29 ./slackware64/d/gcc-gfortran-4.3.3-x86_64-4.txz.asc +-rw-r--r-- 1 root root 384 2009-05-24 20:30 ./slackware64/d/gcc-gnat-4.3.3-x86_64-4.txt +-rw-r--r-- 1 root root 8963896 2009-05-24 20:30 ./slackware64/d/gcc-gnat-4.3.3-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-24 20:30 ./slackware64/d/gcc-gnat-4.3.3-x86_64-4.txz.asc +-rw-r--r-- 1 root root 358 2009-05-24 20:33 ./slackware64/d/gcc-java-4.3.3-x86_64-4.txt +-rw-r--r-- 1 root root 31737284 2009-05-24 20:33 ./slackware64/d/gcc-java-4.3.3-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-24 20:33 ./slackware64/d/gcc-java-4.3.3-x86_64-4.txz.asc +-rw-r--r-- 1 root root 503 2009-05-24 20:33 ./slackware64/d/gcc-objc-4.3.3-x86_64-4.txt +-rw-r--r-- 1 root root 2716672 2009-05-24 20:33 ./slackware64/d/gcc-objc-4.3.3-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-24 20:33 ./slackware64/d/gcc-objc-4.3.3-x86_64-4.txz.asc +-rw-r--r-- 1 root root 757 2009-05-23 04:36 ./slackware64/d/gdb-6.8-x86_64-2.txt +-rw-r--r-- 1 root root 1910156 2009-05-23 04:36 ./slackware64/d/gdb-6.8-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:36 ./slackware64/d/gdb-6.8-x86_64-2.txz.asc +-rw-r--r-- 1 root root 629 2009-05-23 04:00 ./slackware64/d/gettext-tools-0.17-x86_64-3.txt +-rw-r--r-- 1 root root 2286532 2009-05-23 04:00 ./slackware64/d/gettext-tools-0.17-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:00 ./slackware64/d/gettext-tools-0.17-x86_64-3.txz.asc +-rw-r--r-- 1 root root 397 2009-08-02 03:08 ./slackware64/d/git-1.6.4-x86_64-1.txt +-rw-r--r-- 1 root root 2473360 2009-08-02 03:08 ./slackware64/d/git-1.6.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-02 03:08 ./slackware64/d/git-1.6.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 562 2008-10-14 21:07 ./slackware64/d/gperf-3.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 85320 2008-10-14 21:07 ./slackware64/d/gperf-3.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-14 21:07 ./slackware64/d/gperf-3.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 438 2009-08-11 00:58 ./slackware64/d/guile-1.8.7-x86_64-1.txt +-rw-r--r-- 1 root root 1526564 2009-08-11 00:58 ./slackware64/d/guile-1.8.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-11 00:58 ./slackware64/d/guile-1.8.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 432 2009-03-04 22:25 ./slackware64/d/indent-2.2.10-x86_64-1.txt +-rw-r--r-- 1 root root 122708 2009-03-04 22:25 ./slackware64/d/indent-2.2.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-04 22:25 ./slackware64/d/indent-2.2.10-x86_64-1.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/d/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/d/install.end +-rw-r--r-- 1 root root 233 2008-10-22 22:24 ./slackware64/d/intltool-0.40.5-x86_64-1.txt +-rw-r--r-- 1 root root 53588 2008-10-22 22:24 ./slackware64/d/intltool-0.40.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-22 22:24 ./slackware64/d/intltool-0.40.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 332 2009-08-17 07:42 ./slackware64/d/kernel-headers-2.6.29.6-x86-2.txt +-rw-r--r-- 1 root root 536468 2009-08-17 07:42 ./slackware64/d/kernel-headers-2.6.29.6-x86-2.txz +-rw-r--r-- 1 root root 197 2009-08-17 07:42 ./slackware64/d/kernel-headers-2.6.29.6-x86-2.txz.asc +-rw-r--r-- 1 root root 500 2008-10-07 17:07 ./slackware64/d/libtool-1.5.26-x86_64-1.txt +-rw-r--r-- 1 root root 305596 2008-10-07 17:07 ./slackware64/d/libtool-1.5.26-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-07 17:07 ./slackware64/d/libtool-1.5.26-x86_64-1.txz.asc +-rw-r--r-- 1 root root 475 2009-06-12 22:10 ./slackware64/d/m4-1.4.13-x86_64-1.txt +-rw-r--r-- 1 root root 239340 2009-06-12 22:10 ./slackware64/d/m4-1.4.13-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 22:10 ./slackware64/d/m4-1.4.13-x86_64-1.txz.asc +-rw-r--r-- 1 root root 468 2008-09-21 20:43 ./slackware64/d/make-3.81-x86_64-1.txt +-rw-r--r-- 1 root root 381000 2008-09-21 20:43 ./slackware64/d/make-3.81-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-21 20:43 ./slackware64/d/make-3.81-x86_64-1.txz.asc +-rw-r--r-- 1 root root 3573 2009-07-15 23:35 ./slackware64/d/maketag +-rw-r--r-- 1 root root 3573 2009-07-15 23:35 ./slackware64/d/maketag.ez +-rw-r--r-- 1 root root 664 2009-04-30 20:29 ./slackware64/d/mercurial-1.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 878320 2009-04-30 20:29 ./slackware64/d/mercurial-1.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:29 ./slackware64/d/mercurial-1.2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 310 2009-03-24 10:40 ./slackware64/d/nasm-2.05.01-x86_64-1.txt +-rw-r--r-- 1 root root 360016 2009-03-24 10:40 ./slackware64/d/nasm-2.05.01-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-24 10:40 ./slackware64/d/nasm-2.05.01-x86_64-1.txz.asc +-rw-r--r-- 1 root root 506 2009-06-09 18:33 ./slackware64/d/oprofile-0.9.4-x86_64-2.txt +-rw-r--r-- 1 root root 624520 2009-06-09 18:33 ./slackware64/d/oprofile-0.9.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 18:33 ./slackware64/d/oprofile-0.9.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 546 2008-11-04 12:43 ./slackware64/d/p2c-1.21alpha2-x86_64-3.txt +-rw-r--r-- 1 root root 314736 2008-11-04 12:43 ./slackware64/d/p2c-1.21alpha2-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-11-04 12:43 ./slackware64/d/p2c-1.21alpha2-x86_64-3.txz.asc +-rw-r--r-- 1 root root 516 2009-05-23 06:17 ./slackware64/d/perl-5.10.0-x86_64-2.txt +-rw-r--r-- 1 root root 13025648 2009-05-23 06:17 ./slackware64/d/perl-5.10.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:17 ./slackware64/d/perl-5.10.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 446 2009-06-06 21:19 ./slackware64/d/pkg-config-0.23-x86_64-3.txt +-rw-r--r-- 1 root root 60320 2009-06-06 21:19 ./slackware64/d/pkg-config-0.23-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-06 21:19 ./slackware64/d/pkg-config-0.23-x86_64-3.txz.asc +-rw-r--r-- 1 root root 339 2008-09-21 20:59 ./slackware64/d/pmake-1.111-x86_64-3.txt +-rw-r--r-- 1 root root 82500 2008-09-21 20:59 ./slackware64/d/pmake-1.111-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-09-21 20:59 ./slackware64/d/pmake-1.111-x86_64-3.txz.asc +-rw-r--r-- 1 root root 438 2009-06-09 19:37 ./slackware64/d/python-2.6.2-x86_64-3.txt +-rw-r--r-- 1 root root 11911080 2009-06-09 19:37 ./slackware64/d/python-2.6.2-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:37 ./slackware64/d/python-2.6.2-x86_64-3.txz.asc +-rw-r--r-- 1 root root 322 2008-10-15 23:23 ./slackware64/d/rcs-5.7-x86_64-2.txt +-rw-r--r-- 1 root root 151448 2008-10-15 23:23 ./slackware64/d/rcs-5.7-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-15 23:23 ./slackware64/d/rcs-5.7-x86_64-2.txz.asc +-rw-r--r-- 1 root root 410 2009-06-19 20:29 ./slackware64/d/ruby-1.8.7_p174-x86_64-1.txt +-rw-r--r-- 1 root root 2363856 2009-06-19 20:29 ./slackware64/d/ruby-1.8.7_p174-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-19 20:29 ./slackware64/d/ruby-1.8.7_p174-x86_64-1.txz.asc +-rw-r--r-- 1 root root 550 2008-11-04 13:20 ./slackware64/d/strace-4.5.18-x86_64-1.txt +-rw-r--r-- 1 root root 96832 2008-11-04 13:20 ./slackware64/d/strace-4.5.18-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-04 13:20 ./slackware64/d/strace-4.5.18-x86_64-1.txz.asc +-rw-r--r-- 1 root root 597 2009-08-07 02:14 ./slackware64/d/subversion-1.6.4-x86_64-1.txt +-rw-r--r-- 1 root root 3319480 2009-08-07 02:14 ./slackware64/d/subversion-1.6.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-07 02:14 ./slackware64/d/subversion-1.6.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 561 2009-03-09 08:59 ./slackware64/d/swig-1.3.38-x86_64-1.txt +-rw-r--r-- 1 root root 1980624 2009-03-09 08:59 ./slackware64/d/swig-1.3.38-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 08:59 ./slackware64/d/swig-1.3.38-x86_64-1.txz.asc +-rw-r--r-- 1 root root 483 2009-07-15 23:35 ./slackware64/d/tagfile +drwxr-xr-x 2 root root 4096 2009-05-23 08:11 ./slackware64/e +-rw-r--r-- 1 root root 471 2009-05-23 04:32 ./slackware64/e/emacs-22.3-x86_64-3.txt +-rw-r--r-- 1 root root 29344592 2009-05-23 04:32 ./slackware64/e/emacs-22.3-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:32 ./slackware64/e/emacs-22.3-x86_64-3.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/e/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/e/install.end +-rw-r--r-- 1 root root 953 2009-04-30 20:00 ./slackware64/e/maketag +-rw-r--r-- 1 root root 953 2009-04-30 20:00 ./slackware64/e/maketag.ez +-rw-r--r-- 1 root root 10 2009-04-30 20:00 ./slackware64/e/tagfile +drwxr-xr-x 2 root root 4096 2009-08-25 10:42 ./slackware64/f +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/f/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/f/install.end +-rw-r--r-- 1 root root 502 2006-03-01 02:48 ./slackware64/f/linux-faqs-20060228-noarch-1.txt +-rw-r--r-- 1 root root 287176 2006-03-01 02:48 ./slackware64/f/linux-faqs-20060228-noarch-1.txz +-rw-r--r-- 1 root root 197 2006-03-01 02:48 ./slackware64/f/linux-faqs-20060228-noarch-1.txz.asc +-rw-r--r-- 1 root root 341 2009-08-25 06:54 ./slackware64/f/linux-howtos-20090805-noarch-1.txt +-rw-r--r-- 1 root root 6592280 2009-08-25 06:54 ./slackware64/f/linux-howtos-20090805-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-25 06:54 ./slackware64/f/linux-howtos-20090805-noarch-1.txz.asc +-rw-r--r-- 1 root root 1064 2009-04-30 20:00 ./slackware64/f/maketag +-rw-r--r-- 1 root root 1064 2009-04-30 20:00 ./slackware64/f/maketag.ez +-rw-r--r-- 1 root root 32 2009-04-30 20:00 ./slackware64/f/tagfile +drwxr-xr-x 2 root root 4096 2009-08-19 00:23 ./slackware64/k +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/k/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/k/install.end +-rw-r--r-- 1 root root 394 2009-08-18 22:13 ./slackware64/k/kernel-source-2.6.29.6-noarch-2.txt +-rw-r--r-- 1 root root 49136492 2009-08-18 22:13 ./slackware64/k/kernel-source-2.6.29.6-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-08-18 22:13 ./slackware64/k/kernel-source-2.6.29.6-noarch-2.txz.asc +-rw-r--r-- 1 root root 1161 2009-07-15 23:35 ./slackware64/k/maketag +-rw-r--r-- 1 root root 1161 2009-07-15 23:35 ./slackware64/k/maketag.ez +-rw-r--r-- 1 root root 18 2009-07-15 23:35 ./slackware64/k/tagfile +drwxr-xr-x 2 root root 4096 2009-08-14 20:41 ./slackware64/kde +-rw-r--r-- 1 root root 322 2009-06-29 00:39 ./slackware64/kde/amarok-2.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 4974340 2009-06-29 00:39 ./slackware64/kde/amarok-2.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-29 00:39 ./slackware64/kde/amarok-2.1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 474 2009-06-03 17:43 ./slackware64/kde/guidance-power-manager-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 54664 2009-06-03 17:43 ./slackware64/kde/guidance-power-manager-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 17:43 ./slackware64/kde/guidance-power-manager-4.2.4-x86_64-1.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/kde/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/kde/install.end +-rw-r--r-- 1 root root 382 2009-04-08 21:55 ./slackware64/kde/k3b-r948463-x86_64-1.txt +-rw-r--r-- 1 root root 3803460 2009-04-08 21:55 ./slackware64/kde/k3b-r948463-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-08 21:55 ./slackware64/kde/k3b-r948463-x86_64-1.txz.asc +-rw-r--r-- 1 root root 295 2009-08-07 23:21 ./slackware64/kde/kaudiocreator-r1008583-x86_64-1.txt +-rw-r--r-- 1 root root 115600 2009-08-07 23:21 ./slackware64/kde/kaudiocreator-r1008583-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-07 23:21 ./slackware64/kde/kaudiocreator-r1008583-x86_64-1.txz.asc +-rw-r--r-- 1 root root 381 2009-06-03 12:30 ./slackware64/kde/kdeaccessibility-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 5170012 2009-06-03 12:30 ./slackware64/kde/kdeaccessibility-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 12:30 ./slackware64/kde/kdeaccessibility-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 152 2009-06-03 13:18 ./slackware64/kde/kdeadmin-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 1723992 2009-06-03 13:18 ./slackware64/kde/kdeadmin-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 13:18 ./slackware64/kde/kdeadmin-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 215 2009-06-03 13:20 ./slackware64/kde/kdeartwork-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 17040280 2009-06-03 13:20 ./slackware64/kde/kdeartwork-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 13:20 ./slackware64/kde/kdeartwork-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 290 2009-06-03 11:42 ./slackware64/kde/kdebase-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 4491108 2009-06-03 11:42 ./slackware64/kde/kdebase-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 11:42 ./slackware64/kde/kdebase-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 274 2009-08-05 19:09 ./slackware64/kde/kdebase-runtime-4.2.4-x86_64-2.txt +-rw-r--r-- 1 root root 59300296 2009-08-05 19:09 ./slackware64/kde/kdebase-runtime-4.2.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-05 19:09 ./slackware64/kde/kdebase-runtime-4.2.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 366 2009-06-03 12:14 ./slackware64/kde/kdebase-workspace-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 51549124 2009-06-03 12:14 ./slackware64/kde/kdebase-workspace-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 12:14 ./slackware64/kde/kdebase-workspace-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 419 2009-06-03 16:30 ./slackware64/kde/kdebindings-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 6011244 2009-06-03 16:30 ./slackware64/kde/kdebindings-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 16:30 ./slackware64/kde/kdebindings-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 129 2009-06-03 15:50 ./slackware64/kde/kdeedu-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 50847768 2009-06-03 15:50 ./slackware64/kde/kdeedu-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 15:50 ./slackware64/kde/kdeedu-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 172 2009-06-03 13:37 ./slackware64/kde/kdegames-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 31238492 2009-06-03 13:37 ./slackware64/kde/kdegames-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 13:37 ./slackware64/kde/kdegames-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 320 2009-06-03 13:51 ./slackware64/kde/kdegraphics-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 3669340 2009-06-03 13:51 ./slackware64/kde/kdegraphics-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 13:51 ./slackware64/kde/kdegraphics-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 177 2009-08-07 22:54 ./slackware64/kde/kdelibs-4.2.4-x86_64-3.txt +-rw-r--r-- 1 root root 10474008 2009-08-07 22:54 ./slackware64/kde/kdelibs-4.2.4-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-08-07 22:54 ./slackware64/kde/kdelibs-4.2.4-x86_64-3.txz.asc +-rw-r--r-- 1 root root 457 2009-06-03 12:44 ./slackware64/kde/kdemultimedia-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 1562720 2009-06-03 12:44 ./slackware64/kde/kdemultimedia-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 12:44 ./slackware64/kde/kdemultimedia-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 228 2009-06-29 19:41 ./slackware64/kde/kdenetwork-4.2.4-x86_64-2.txt +-rw-r--r-- 1 root root 7485748 2009-06-29 19:41 ./slackware64/kde/kdenetwork-4.2.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-29 19:41 ./slackware64/kde/kdenetwork-4.2.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 366 2009-06-03 15:20 ./slackware64/kde/kdepim-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 13861308 2009-06-03 15:20 ./slackware64/kde/kdepim-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 15:20 ./slackware64/kde/kdepim-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 250 2009-06-03 10:55 ./slackware64/kde/kdepimlibs-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 1778440 2009-06-03 10:55 ./slackware64/kde/kdepimlibs-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 10:55 ./slackware64/kde/kdepimlibs-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 298 2009-06-03 15:56 ./slackware64/kde/kdeplasma-addons-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 4525256 2009-06-03 15:56 ./slackware64/kde/kdeplasma-addons-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 15:56 ./slackware64/kde/kdeplasma-addons-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 295 2009-06-03 14:16 ./slackware64/kde/kdesdk-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 6296572 2009-06-03 14:16 ./slackware64/kde/kdesdk-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 14:16 ./slackware64/kde/kdesdk-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 216 2009-06-03 13:38 ./slackware64/kde/kdetoys-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 1205168 2009-06-03 13:38 ./slackware64/kde/kdetoys-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 13:38 ./slackware64/kde/kdetoys-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 297 2009-06-03 12:39 ./slackware64/kde/kdeutils-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 2422476 2009-06-03 12:39 ./slackware64/kde/kdeutils-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 12:39 ./slackware64/kde/kdeutils-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 216 2009-02-07 14:13 ./slackware64/kde/kdevelop-3.9.91-x86_64-1.txt +-rw-r--r-- 1 root root 1320996 2009-02-07 14:13 ./slackware64/kde/kdevelop-3.9.91-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-02-07 14:13 ./slackware64/kde/kdevelop-3.9.91-x86_64-1.txz.asc +-rw-r--r-- 1 root root 247 2009-02-07 14:04 ./slackware64/kde/kdevplatform-0.9.91-x86_64-1.txt +-rw-r--r-- 1 root root 1561424 2009-02-07 14:04 ./slackware64/kde/kdevplatform-0.9.91-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-02-07 14:04 ./slackware64/kde/kdevplatform-0.9.91-x86_64-1.txz.asc +-rw-r--r-- 1 root root 291 2009-06-06 02:15 ./slackware64/kde/kdewebdev-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 1793132 2009-06-06 02:15 ./slackware64/kde/kdewebdev-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-06 02:15 ./slackware64/kde/kdewebdev-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 493 2009-08-12 22:18 ./slackware64/kde/koffice-2.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 38711064 2009-08-12 22:18 ./slackware64/kde/koffice-2.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:18 ./slackware64/kde/koffice-2.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 519 2009-06-03 16:42 ./slackware64/kde/konq-plugins-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 1159904 2009-06-03 16:42 ./slackware64/kde/konq-plugins-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 16:42 ./slackware64/kde/konq-plugins-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 594 2009-06-03 17:51 ./slackware64/kde/ktorrent-3.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 2525444 2009-06-03 17:51 ./slackware64/kde/ktorrent-3.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 17:51 ./slackware64/kde/ktorrent-3.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 3413 2009-06-06 01:36 ./slackware64/kde/maketag +-rw-r--r-- 1 root root 3413 2009-06-06 01:36 ./slackware64/kde/maketag.ez +-rw-r--r-- 1 root root 413 2009-05-23 04:44 ./slackware64/kde/mplayerthumbs-1.2-x86_64-2.txt +-rw-r--r-- 1 root root 32300 2009-05-23 04:44 ./slackware64/kde/mplayerthumbs-1.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:44 ./slackware64/kde/mplayerthumbs-1.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 207 2009-06-03 17:51 ./slackware64/kde/skanlite-0.3_kde4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 1183844 2009-06-03 17:51 ./slackware64/kde/skanlite-0.3_kde4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 17:51 ./slackware64/kde/skanlite-0.3_kde4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 468 2009-06-06 01:36 ./slackware64/kde/tagfile +drwxr-xr-x 2 root root 24576 2009-08-14 20:42 ./slackware64/kdei +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/kdei/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/kdei/install.end +-rw-r--r-- 1 root root 188 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-ar-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1963216 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-ar-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-ar-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 191 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-bg-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 958368 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-bg-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-bg-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 225 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-bn_IN-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 229920 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-bn_IN-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 18:58 ./slackware64/kdei/kde-l10n-bn_IN-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 19:03 ./slackware64/kdei/kde-l10n-ca-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 3428040 2009-06-03 19:03 ./slackware64/kdei/kde-l10n-ca-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:03 ./slackware64/kdei/kde-l10n-ca-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 187 2009-06-03 19:04 ./slackware64/kdei/kde-l10n-cs-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 2347852 2009-06-03 19:04 ./slackware64/kdei/kde-l10n-cs-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:04 ./slackware64/kdei/kde-l10n-cs-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 203 2009-06-03 19:04 ./slackware64/kdei/kde-l10n-csb-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 315064 2009-06-03 19:04 ./slackware64/kdei/kde-l10n-csb-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:04 ./slackware64/kdei/kde-l10n-csb-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 19:10 ./slackware64/kdei/kde-l10n-da-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 16860936 2009-06-03 19:10 ./slackware64/kdei/kde-l10n-da-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:10 ./slackware64/kdei/kde-l10n-da-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 19:18 ./slackware64/kdei/kde-l10n-de-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 17287888 2009-06-03 19:18 ./slackware64/kdei/kde-l10n-de-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:18 ./slackware64/kdei/kde-l10n-de-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 187 2009-06-03 19:18 ./slackware64/kdei/kde-l10n-el-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1847204 2009-06-03 19:18 ./slackware64/kdei/kde-l10n-el-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:18 ./slackware64/kdei/kde-l10n-el-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 230 2009-06-03 19:21 ./slackware64/kdei/kde-l10n-en_GB-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 2968980 2009-06-03 19:21 ./slackware64/kdei/kde-l10n-en_GB-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:21 ./slackware64/kdei/kde-l10n-en_GB-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 19:28 ./slackware64/kdei/kde-l10n-es-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 15724708 2009-06-03 19:28 ./slackware64/kdei/kde-l10n-es-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:28 ./slackware64/kdei/kde-l10n-es-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 190 2009-06-03 19:35 ./slackware64/kdei/kde-l10n-et-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 7758616 2009-06-03 19:35 ./slackware64/kdei/kde-l10n-et-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:35 ./slackware64/kdei/kde-l10n-et-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 19:35 ./slackware64/kdei/kde-l10n-eu-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1104620 2009-06-03 19:35 ./slackware64/kdei/kde-l10n-eu-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:35 ./slackware64/kdei/kde-l10n-eu-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 19:36 ./slackware64/kdei/kde-l10n-fi-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1289824 2009-06-03 19:36 ./slackware64/kdei/kde-l10n-fi-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:36 ./slackware64/kdei/kde-l10n-fi-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 19:44 ./slackware64/kdei/kde-l10n-fr-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 18832360 2009-06-03 19:44 ./slackware64/kdei/kde-l10n-fr-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:44 ./slackware64/kdei/kde-l10n-fr-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 187 2009-06-03 19:44 ./slackware64/kdei/kde-l10n-ga-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1096476 2009-06-03 19:44 ./slackware64/kdei/kde-l10n-ga-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:44 ./slackware64/kdei/kde-l10n-ga-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 190 2009-06-03 19:46 ./slackware64/kdei/kde-l10n-gl-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 3089772 2009-06-03 19:46 ./slackware64/kdei/kde-l10n-gl-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:46 ./slackware64/kdei/kde-l10n-gl-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 190 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-gu-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 411380 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-gu-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-gu-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-he-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1212988 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-he-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-he-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 187 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-hi-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 991136 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-hi-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:47 ./slackware64/kdei/kde-l10n-hi-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 191 2009-06-03 19:49 ./slackware64/kdei/kde-l10n-hu-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 3660752 2009-06-03 19:49 ./slackware64/kdei/kde-l10n-hu-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:49 ./slackware64/kdei/kde-l10n-hu-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 191 2009-06-03 19:50 ./slackware64/kdei/kde-l10n-is-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 889140 2009-06-03 19:50 ./slackware64/kdei/kde-l10n-is-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 19:50 ./slackware64/kdei/kde-l10n-is-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:01 ./slackware64/kdei/kde-l10n-it-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 9874236 2009-06-03 20:01 ./slackware64/kdei/kde-l10n-it-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:01 ./slackware64/kdei/kde-l10n-it-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 190 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-ja-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 2165364 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-ja-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-ja-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-kk-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 772824 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-kk-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-kk-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 187 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-km-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1339200 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-km-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:02 ./slackware64/kdei/kde-l10n-km-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-kn-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 255064 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-kn-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-kn-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-ko-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 864844 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-ko-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-ko-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-ku-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 278408 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-ku-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:03 ./slackware64/kdei/kde-l10n-ku-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 192 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-lt-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1076124 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-lt-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-lt-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-lv-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1083572 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-lv-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-lv-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 202 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-mai-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 449408 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-mai-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:04 ./slackware64/kdei/kde-l10n-mai-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 192 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-mk-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 841812 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-mk-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-mk-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 191 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-ml-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 19126956 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-ml-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-ml-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-mr-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 200592 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-mr-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:05 ./slackware64/kdei/kde-l10n-mr-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 201 2009-06-03 20:06 ./slackware64/kdei/kde-l10n-nb-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1872308 2009-06-03 20:06 ./slackware64/kdei/kde-l10n-nb-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:06 ./slackware64/kdei/kde-l10n-nb-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 203 2009-06-03 20:07 ./slackware64/kdei/kde-l10n-nds-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 2915236 2009-06-03 20:07 ./slackware64/kdei/kde-l10n-nds-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:07 ./slackware64/kdei/kde-l10n-nds-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 187 2009-06-03 20:12 ./slackware64/kdei/kde-l10n-nl-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 11785764 2009-06-03 20:12 ./slackware64/kdei/kde-l10n-nl-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:12 ./slackware64/kdei/kde-l10n-nl-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 201 2009-06-03 20:13 ./slackware64/kdei/kde-l10n-nn-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1357592 2009-06-03 20:13 ./slackware64/kdei/kde-l10n-nn-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:13 ./slackware64/kdei/kde-l10n-nn-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:13 ./slackware64/kdei/kde-l10n-pa-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 767928 2009-06-03 20:13 ./slackware64/kdei/kde-l10n-pa-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:13 ./slackware64/kdei/kde-l10n-pa-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 20:14 ./slackware64/kdei/kde-l10n-pl-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 2883392 2009-06-03 20:14 ./slackware64/kdei/kde-l10n-pl-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:14 ./slackware64/kdei/kde-l10n-pl-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 192 2009-06-03 20:23 ./slackware64/kdei/kde-l10n-pt-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 5640556 2009-06-03 20:23 ./slackware64/kdei/kde-l10n-pt-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:23 ./slackware64/kdei/kde-l10n-pt-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 238 2009-06-03 20:30 ./slackware64/kdei/kde-l10n-pt_BR-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 10807452 2009-06-03 20:30 ./slackware64/kdei/kde-l10n-pt_BR-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:30 ./slackware64/kdei/kde-l10n-pt_BR-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 190 2009-06-03 20:31 ./slackware64/kdei/kde-l10n-ro-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 2390076 2009-06-03 20:31 ./slackware64/kdei/kde-l10n-ro-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:31 ./slackware64/kdei/kde-l10n-ro-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:38 ./slackware64/kdei/kde-l10n-ru-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 4486976 2009-06-03 20:38 ./slackware64/kdei/kde-l10n-ru-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:38 ./slackware64/kdei/kde-l10n-ru-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 188 2009-06-03 20:38 ./slackware64/kdei/kde-l10n-sk-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1137504 2009-06-03 20:38 ./slackware64/kdei/kde-l10n-sk-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:38 ./slackware64/kdei/kde-l10n-sk-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 191 2009-06-03 20:39 ./slackware64/kdei/kde-l10n-sl-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 2762260 2009-06-03 20:39 ./slackware64/kdei/kde-l10n-sl-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:39 ./slackware64/kdei/kde-l10n-sl-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:45 ./slackware64/kdei/kde-l10n-sr-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 3408380 2009-06-03 20:45 ./slackware64/kdei/kde-l10n-sr-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:45 ./slackware64/kdei/kde-l10n-sr-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:54 ./slackware64/kdei/kde-l10n-sv-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 19270940 2009-06-03 20:54 ./slackware64/kdei/kde-l10n-sv-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:54 ./slackware64/kdei/kde-l10n-sv-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 187 2009-06-03 20:54 ./slackware64/kdei/kde-l10n-tg-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 871372 2009-06-03 20:54 ./slackware64/kdei/kde-l10n-tg-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:54 ./slackware64/kdei/kde-l10n-tg-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 186 2009-06-03 20:55 ./slackware64/kdei/kde-l10n-th-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 831272 2009-06-03 20:55 ./slackware64/kdei/kde-l10n-th-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:55 ./slackware64/kdei/kde-l10n-th-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 20:55 ./slackware64/kdei/kde-l10n-tr-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1444844 2009-06-03 20:55 ./slackware64/kdei/kde-l10n-tr-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 20:55 ./slackware64/kdei/kde-l10n-tr-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 191 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-uk-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 7475956 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-uk-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-uk-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 189 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-wa-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 452408 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-wa-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-wa-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 236 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-zh_CN-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 2788680 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-zh_CN-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 21:05 ./slackware64/kdei/kde-l10n-zh_CN-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 225 2009-06-03 21:06 ./slackware64/kdei/kde-l10n-zh_TW-4.2.4-noarch-1.txt +-rw-r--r-- 1 root root 1780256 2009-06-03 21:06 ./slackware64/kdei/kde-l10n-zh_TW-4.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 21:06 ./slackware64/kdei/kde-l10n-zh_TW-4.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 241 2009-08-12 22:29 ./slackware64/kdei/koffice-l10n-ca-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 777000 2009-08-12 22:29 ./slackware64/kdei/koffice-l10n-ca-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:29 ./slackware64/kdei/koffice-l10n-ca-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 239 2009-08-12 22:29 ./slackware64/kdei/koffice-l10n-cs-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 131880 2009-08-12 22:29 ./slackware64/kdei/koffice-l10n-cs-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:29 ./slackware64/kdei/koffice-l10n-cs-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 240 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-da-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 768308 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-da-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-da-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 240 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-de-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 4885012 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-de-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-de-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 239 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-el-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 222360 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-el-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:30 ./slackware64/kdei/koffice-l10n-el-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 282 2009-08-12 22:31 ./slackware64/kdei/koffice-l10n-en_GB-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 139784 2009-08-12 22:31 ./slackware64/kdei/koffice-l10n-en_GB-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:31 ./slackware64/kdei/koffice-l10n-en_GB-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 241 2009-08-12 22:31 ./slackware64/kdei/koffice-l10n-es-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 5225336 2009-08-12 22:31 ./slackware64/kdei/koffice-l10n-es-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:31 ./slackware64/kdei/koffice-l10n-es-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 242 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-et-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 851784 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-et-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-et-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 240 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-fr-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 4247592 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-fr-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-fr-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 243 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-fy-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 175772 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-fy-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:32 ./slackware64/kdei/koffice-l10n-fy-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 242 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-gl-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 240936 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-gl-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-gl-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 239 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-hi-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 143628 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-hi-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-hi-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 241 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-it-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 748480 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-it-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-it-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 242 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-ja-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 175780 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-ja-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-ja-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 240 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-kk-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 213432 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-kk-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-kk-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 253 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-nb-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 203240 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-nb-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:33 ./slackware64/kdei/koffice-l10n-nb-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 255 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-nds-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 206288 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-nds-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-nds-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 239 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-nl-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 2565304 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-nl-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-nl-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 240 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-pl-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 174328 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-pl-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:34 ./slackware64/kdei/koffice-l10n-pl-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 244 2009-08-12 22:35 ./slackware64/kdei/koffice-l10n-pt-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 803840 2009-08-12 22:35 ./slackware64/kdei/koffice-l10n-pt-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:35 ./slackware64/kdei/koffice-l10n-pt-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 287 2009-08-12 22:36 ./slackware64/kdei/koffice-l10n-pt_BR-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 1865328 2009-08-12 22:36 ./slackware64/kdei/koffice-l10n-pt_BR-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:36 ./slackware64/kdei/koffice-l10n-pt_BR-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 241 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-sv-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 5179632 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-sv-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-sv-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 241 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-tr-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 145868 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-tr-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-tr-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 243 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-uk-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 591408 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-uk-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-uk-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 241 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-wa-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 144512 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-wa-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-wa-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 288 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-zh_CN-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 145104 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-zh_CN-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-zh_CN-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 277 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-zh_TW-2.0.2-noarch-1.txt +-rw-r--r-- 1 root root 200292 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-zh_TW-2.0.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-12 22:37 ./slackware64/kdei/koffice-l10n-zh_TW-2.0.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 7414 2009-06-29 02:02 ./slackware64/kdei/maketag +-rw-r--r-- 1 root root 7414 2009-06-29 02:02 ./slackware64/kdei/maketag.ez +-rw-r--r-- 1 root root 1467 2009-06-29 02:02 ./slackware64/kdei/tagfile +drwxr-xr-x 2 root root 40960 2009-08-25 04:55 ./slackware64/l +-rw-r--r-- 1 root root 592 2009-04-30 21:19 ./slackware64/l/M2Crypto-0.19.1-x86_64-2.txt +-rw-r--r-- 1 root root 212264 2009-04-30 21:19 ./slackware64/l/M2Crypto-0.19.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 21:19 ./slackware64/l/M2Crypto-0.19.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 276 2009-04-30 21:41 ./slackware64/l/PyQt-4.4.4-x86_64-2.txt +-rw-r--r-- 1 root root 7003204 2009-04-30 21:41 ./slackware64/l/PyQt-4.4.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 21:41 ./slackware64/l/PyQt-4.4.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 670 2009-05-01 08:15 ./slackware64/l/QScintilla-2.3.2-x86_64-2.txt +-rw-r--r-- 1 root root 1052696 2009-05-01 08:15 ./slackware64/l/QScintilla-2.3.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-01 08:15 ./slackware64/l/QScintilla-2.3.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 995 2008-10-23 12:12 ./slackware64/l/aalib-1.4rc5-x86_64-2.txt +-rw-r--r-- 1 root root 148996 2008-10-23 12:12 ./slackware64/l/aalib-1.4rc5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-23 12:12 ./slackware64/l/aalib-1.4rc5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 383 2009-04-30 20:06 ./slackware64/l/akonadi-1.1.2-x86_64-1.txt +-rw-r--r-- 1 root root 404084 2009-04-30 20:06 ./slackware64/l/akonadi-1.1.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:06 ./slackware64/l/akonadi-1.1.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 402 2009-05-02 09:42 ./slackware64/l/alsa-lib-1.0.18-x86_64-2.txt +-rw-r--r-- 1 root root 364108 2009-05-02 09:42 ./slackware64/l/alsa-lib-1.0.18-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-02 09:42 ./slackware64/l/alsa-lib-1.0.18-x86_64-2.txz.asc +-rw-r--r-- 1 root root 503 2008-10-03 21:46 ./slackware64/l/alsa-oss-1.0.17-x86_64-1.txt +-rw-r--r-- 1 root root 31944 2008-10-03 21:46 ./slackware64/l/alsa-oss-1.0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-03 21:46 ./slackware64/l/alsa-oss-1.0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 275 2009-08-06 23:07 ./slackware64/l/apr-1.3.8-x86_64-1.txt +-rw-r--r-- 1 root root 220360 2009-08-06 23:07 ./slackware64/l/apr-1.3.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-06 23:07 ./slackware64/l/apr-1.3.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 483 2009-08-06 23:09 ./slackware64/l/apr-util-1.3.9-x86_64-1.txt +-rw-r--r-- 1 root root 114340 2009-08-06 23:09 ./slackware64/l/apr-util-1.3.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-06 23:09 ./slackware64/l/apr-util-1.3.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 251 2008-10-03 20:52 ./slackware64/l/aspell-0.60.5-x86_64-2.txt +-rw-r--r-- 1 root root 598772 2008-10-03 20:52 ./slackware64/l/aspell-0.60.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:52 ./slackware64/l/aspell-0.60.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 175 2008-10-03 20:58 ./slackware64/l/aspell-en-6.0_0-noarch-4.txt +-rw-r--r-- 1 root root 1090944 2008-10-03 20:58 ./slackware64/l/aspell-en-6.0_0-noarch-4.txz +-rw-r--r-- 1 root root 197 2008-10-03 20:58 ./slackware64/l/aspell-en-6.0_0-noarch-4.txz.asc +-rw-r--r-- 1 root root 173 2009-04-01 10:18 ./slackware64/l/atk-1.26.0-x86_64-1.txt +-rw-r--r-- 1 root root 227492 2009-04-01 10:18 ./slackware64/l/atk-1.26.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-01 10:18 ./slackware64/l/atk-1.26.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 315 2008-10-13 20:08 ./slackware64/l/audiofile-0.2.6-x86_64-2.txt +-rw-r--r-- 1 root root 118384 2008-10-13 20:08 ./slackware64/l/audiofile-0.2.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-13 20:08 ./slackware64/l/audiofile-0.2.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 454 2009-01-22 19:43 ./slackware64/l/automoc4-0.9.88-x86_64-1.txt +-rw-r--r-- 1 root root 25480 2009-01-22 19:43 ./slackware64/l/automoc4-0.9.88-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-01-22 19:43 ./slackware64/l/automoc4-0.9.88-x86_64-1.txz.asc +-rw-r--r-- 1 root root 517 2009-03-05 00:57 ./slackware64/l/babl-0.0.22-x86_64-1.txt +-rw-r--r-- 1 root root 77180 2009-03-05 00:57 ./slackware64/l/babl-0.0.22-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-05 00:57 ./slackware64/l/babl-0.0.22-x86_64-1.txz.asc +-rw-r--r-- 1 root root 433 2009-08-25 02:32 ./slackware64/l/boost-1.38.0-x86_64-2.txt +-rw-r--r-- 1 root root 4493448 2009-08-25 02:32 ./slackware64/l/boost-1.38.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-25 02:32 ./slackware64/l/boost-1.38.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 394 2009-06-09 00:46 ./slackware64/l/cairo-1.8.6-x86_64-3.txt +-rw-r--r-- 1 root root 373352 2009-06-09 00:46 ./slackware64/l/cairo-1.8.6-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:46 ./slackware64/l/cairo-1.8.6-x86_64-3.txz.asc +-rw-r--r-- 1 root root 472 2008-12-16 19:11 ./slackware64/l/chmlib-0.39-x86_64-1.txt +-rw-r--r-- 1 root root 24700 2008-12-16 19:11 ./slackware64/l/chmlib-0.39-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 19:11 ./slackware64/l/chmlib-0.39-x86_64-1.txz.asc +-rw-r--r-- 1 root root 279 2009-01-20 15:20 ./slackware64/l/clucene-0.9.21b-x86_64-1.txt +-rw-r--r-- 1 root root 382268 2009-01-20 15:20 ./slackware64/l/clucene-0.9.21b-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-01-20 15:20 ./slackware64/l/clucene-0.9.21b-x86_64-1.txz.asc +-rw-r--r-- 1 root root 364 2008-09-29 19:55 ./slackware64/l/db42-4.2.52-x86_64-3.txt +-rw-r--r-- 1 root root 380400 2008-09-29 19:55 ./slackware64/l/db42-4.2.52-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-09-29 19:55 ./slackware64/l/db42-4.2.52-x86_64-3.txz.asc +-rw-r--r-- 1 root root 363 2008-09-29 20:01 ./slackware64/l/db44-4.4.20-x86_64-2.txt +-rw-r--r-- 1 root root 705520 2008-09-29 20:01 ./slackware64/l/db44-4.4.20-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-09-29 20:01 ./slackware64/l/db44-4.4.20-x86_64-2.txz.asc +-rw-r--r-- 1 root root 222 2009-03-09 21:05 ./slackware64/l/dbus-glib-0.80-x86_64-1.txt +-rw-r--r-- 1 root root 111816 2009-03-09 21:05 ./slackware64/l/dbus-glib-0.80-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 21:05 ./slackware64/l/dbus-glib-0.80-x86_64-1.txz.asc +-rw-r--r-- 1 root root 246 2009-04-30 20:20 ./slackware64/l/dbus-python-0.83.0-x86_64-2.txt +-rw-r--r-- 1 root root 106036 2009-04-30 20:20 ./slackware64/l/dbus-python-0.83.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:20 ./slackware64/l/dbus-python-0.83.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 655 2008-11-05 15:01 ./slackware64/l/desktop-file-utils-0.15-x86_64-1.txt +-rw-r--r-- 1 root root 34924 2008-11-05 15:01 ./slackware64/l/desktop-file-utils-0.15-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-05 15:01 ./slackware64/l/desktop-file-utils-0.15-x86_64-1.txz.asc +-rw-r--r-- 1 root root 561 2008-12-16 19:38 ./slackware64/l/djvulibre-3.5.21-x86_64-1.txt +-rw-r--r-- 1 root root 917520 2008-12-16 19:38 ./slackware64/l/djvulibre-3.5.21-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 19:38 ./slackware64/l/djvulibre-3.5.21-x86_64-1.txz.asc +-rw-r--r-- 1 root root 257 2009-04-03 15:22 ./slackware64/l/eigen2-r948353-x86_64-1.txt +-rw-r--r-- 1 root root 176108 2009-04-03 15:22 ./slackware64/l/eigen2-r948353-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-03 15:22 ./slackware64/l/eigen2-r948353-x86_64-1.txz.asc +-rw-r--r-- 1 root root 346 2008-10-03 21:06 ./slackware64/l/enchant-1.4.2-x86_64-1.txt +-rw-r--r-- 1 root root 133920 2008-10-03 21:06 ./slackware64/l/enchant-1.4.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-03 21:06 ./slackware64/l/enchant-1.4.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 505 2009-04-08 20:17 ./slackware64/l/esound-0.2.41-x86_64-1.txt +-rw-r--r-- 1 root root 98952 2009-04-08 20:17 ./slackware64/l/esound-0.2.41-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-08 20:17 ./slackware64/l/esound-0.2.41-x86_64-1.txz.asc +-rw-r--r-- 1 root root 257 2009-06-22 19:24 ./slackware64/l/exiv2-0.18.1-x86_64-1.txt +-rw-r--r-- 1 root root 705080 2009-06-22 19:24 ./slackware64/l/exiv2-0.18.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-22 19:24 ./slackware64/l/exiv2-0.18.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 264 2008-09-28 21:05 ./slackware64/l/expat-2.0.1-x86_64-1.txt +-rw-r--r-- 1 root root 109568 2008-09-28 21:05 ./slackware64/l/expat-2.0.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-28 21:05 ./slackware64/l/expat-2.0.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 344 2009-03-14 10:43 ./slackware64/l/freetype-2.3.9-x86_64-1.txt +-rw-r--r-- 1 root root 406944 2009-03-14 10:43 ./slackware64/l/freetype-2.3.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-14 10:43 ./slackware64/l/freetype-2.3.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 353 2008-10-08 20:29 ./slackware64/l/fribidi-0.10.9-x86_64-2.txt +-rw-r--r-- 1 root root 45716 2008-10-08 20:29 ./slackware64/l/fribidi-0.10.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-08 20:29 ./slackware64/l/fribidi-0.10.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 391 2008-10-22 23:03 ./slackware64/l/fuse-2.7.4-x86_64-2.txt +-rw-r--r-- 1 root root 113692 2008-10-22 23:03 ./slackware64/l/fuse-2.7.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-22 23:03 ./slackware64/l/fuse-2.7.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 297 2009-04-30 20:22 ./slackware64/l/gamin-0.1.10-x86_64-2.txt +-rw-r--r-- 1 root root 98416 2009-04-30 20:22 ./slackware64/l/gamin-0.1.10-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:22 ./slackware64/l/gamin-0.1.10-x86_64-2.txz.asc +-rw-r--r-- 1 root root 469 2009-06-09 00:40 ./slackware64/l/gd-2.0.35-x86_64-3.txt +-rw-r--r-- 1 root root 144172 2009-06-09 00:40 ./slackware64/l/gd-2.0.35-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:40 ./slackware64/l/gd-2.0.35-x86_64-3.txz.asc +-rw-r--r-- 1 root root 186 2008-09-28 22:46 ./slackware64/l/gdbm-1.8.3-x86_64-4.txt +-rw-r--r-- 1 root root 43824 2008-09-28 22:46 ./slackware64/l/gdbm-1.8.3-x86_64-4.txz +-rw-r--r-- 1 root root 197 2008-09-28 22:46 ./slackware64/l/gdbm-1.8.3-x86_64-4.txz.asc +-rw-r--r-- 1 root root 405 2009-06-09 19:00 ./slackware64/l/gegl-0.0.22-x86_64-1.txt +-rw-r--r-- 1 root root 345144 2009-06-09 19:00 ./slackware64/l/gegl-0.0.22-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:00 ./slackware64/l/gegl-0.0.22-x86_64-1.txz.asc +-rw-r--r-- 1 root root 302 2008-09-28 19:59 ./slackware64/l/glib-1.2.10-x86_64-3.txt +-rw-r--r-- 1 root root 146248 2008-09-28 19:59 ./slackware64/l/glib-1.2.10-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-09-28 19:59 ./slackware64/l/glib-1.2.10-x86_64-3.txz.asc +-rw-r--r-- 1 root root 235 2009-03-29 10:41 ./slackware64/l/glib2-2.18.4-x86_64-1.txt +-rw-r--r-- 1 root root 1770076 2009-03-29 10:41 ./slackware64/l/glib2-2.18.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-29 10:41 ./slackware64/l/glib2-2.18.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 389 2009-04-04 22:46 ./slackware64/l/glibc-2.9-x86_64-3.txt +-rw-r--r-- 1 root root 10948996 2009-04-04 22:46 ./slackware64/l/glibc-2.9-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-04-04 22:46 ./slackware64/l/glibc-2.9-x86_64-3.txz.asc +-rw-r--r-- 1 root root 333 2009-04-04 22:44 ./slackware64/l/glibc-i18n-2.9-x86_64-3.txt +-rw-r--r-- 1 root root 5890028 2009-04-04 22:44 ./slackware64/l/glibc-i18n-2.9-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-04-04 22:44 ./slackware64/l/glibc-i18n-2.9-x86_64-3.txz.asc +-rw-r--r-- 1 root root 508 2009-04-04 22:43 ./slackware64/l/glibc-profile-2.9-x86_64-3.txt +-rw-r--r-- 1 root root 1096816 2009-04-04 22:43 ./slackware64/l/glibc-profile-2.9-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-04-04 22:43 ./slackware64/l/glibc-profile-2.9-x86_64-3.txz.asc +-rw-r--r-- 1 root root 297 2008-10-08 21:08 ./slackware64/l/gmime-2.2.23-x86_64-1.txt +-rw-r--r-- 1 root root 285512 2008-10-08 21:08 ./slackware64/l/gmime-2.2.23-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-08 21:08 ./slackware64/l/gmime-2.2.23-x86_64-1.txz.asc +-rw-r--r-- 1 root root 579 2008-12-16 19:49 ./slackware64/l/gmm-3.1-noarch-1.txt +-rw-r--r-- 1 root root 110636 2008-12-16 19:49 ./slackware64/l/gmm-3.1-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 19:49 ./slackware64/l/gmm-3.1-noarch-1.txz.asc +-rw-r--r-- 1 root root 312 2009-03-03 23:40 ./slackware64/l/gmp-4.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 344696 2009-03-03 23:40 ./slackware64/l/gmp-4.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-03 23:40 ./slackware64/l/gmp-4.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 299 2009-07-14 21:49 ./slackware64/l/gnome-icon-theme-2.26.0-x86_64-1.txt +-rw-r--r-- 1 root root 2813824 2009-07-14 21:49 ./slackware64/l/gnome-icon-theme-2.26.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-14 21:49 ./slackware64/l/gnome-icon-theme-2.26.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 609 2009-06-09 18:50 ./slackware64/l/gst-plugins-base-0.10.23-x86_64-1.txt +-rw-r--r-- 1 root root 1029512 2009-06-09 18:50 ./slackware64/l/gst-plugins-base-0.10.23-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 18:50 ./slackware64/l/gst-plugins-base-0.10.23-x86_64-1.txz.asc +-rw-r--r-- 1 root root 602 2009-06-09 18:44 ./slackware64/l/gstreamer-0.10.23-x86_64-1.txt +-rw-r--r-- 1 root root 1027328 2009-06-09 18:44 ./slackware64/l/gstreamer-0.10.23-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 18:44 ./slackware64/l/gstreamer-0.10.23-x86_64-1.txz.asc +-rw-r--r-- 1 root root 351 2009-06-09 02:23 ./slackware64/l/gtk+-1.2.10-x86_64-5.txt +-rw-r--r-- 1 root root 1046588 2009-06-09 02:23 ./slackware64/l/gtk+-1.2.10-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-06-09 02:23 ./slackware64/l/gtk+-1.2.10-x86_64-5.txz.asc +-rw-r--r-- 1 root root 335 2009-06-11 17:25 ./slackware64/l/gtk+2-2.14.7-x86_64-4.txt +-rw-r--r-- 1 root root 5980120 2009-06-11 17:25 ./slackware64/l/gtk+2-2.14.7-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-11 17:25 ./slackware64/l/gtk+2-2.14.7-x86_64-4.txz.asc +-rw-r--r-- 1 root root 330 2009-06-09 05:28 ./slackware64/l/gtkspell-2.0.15-x86_64-1.txt +-rw-r--r-- 1 root root 32692 2009-06-09 05:28 ./slackware64/l/gtkspell-2.0.15-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 05:28 ./slackware64/l/gtkspell-2.0.15-x86_64-1.txz.asc +-rw-r--r-- 1 root root 601 2009-08-01 05:47 ./slackware64/l/hal-0.5.11-x86_64-6.txt +-rw-r--r-- 1 root root 572964 2009-08-01 05:47 ./slackware64/l/hal-0.5.11-x86_64-6.txz +-rw-r--r-- 1 root root 197 2009-08-01 05:47 ./slackware64/l/hal-0.5.11-x86_64-6.txz.asc +-rw-r--r-- 1 root root 297 2009-08-01 05:48 ./slackware64/l/hal-info-20090716-noarch-1.txt +-rw-r--r-- 1 root root 46420 2009-08-01 05:48 ./slackware64/l/hal-info-20090716-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-01 05:48 ./slackware64/l/hal-info-20090716-noarch-1.txz.asc +-rw-r--r-- 1 root root 445 2009-03-14 10:54 ./slackware64/l/hicolor-icon-theme-0.10-noarch-5.txt +-rw-r--r-- 1 root root 11656 2009-03-14 10:54 ./slackware64/l/hicolor-icon-theme-0.10-noarch-5.txz +-rw-r--r-- 1 root root 197 2009-03-14 10:54 ./slackware64/l/hicolor-icon-theme-0.10-noarch-5.txz.asc +-rw-r--r-- 1 root root 464 2009-08-22 19:44 ./slackware64/l/icon-naming-utils-0.8.90-x86_64-2.txt +-rw-r--r-- 1 root root 14068 2009-08-22 19:44 ./slackware64/l/icon-naming-utils-0.8.90-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-22 19:44 ./slackware64/l/icon-naming-utils-0.8.90-x86_64-2.txz.asc +-rw-r--r-- 1 root root 371 2008-12-16 19:54 ./slackware64/l/ilmbase-1.0.1-x86_64-1.txt +-rw-r--r-- 1 root root 108700 2008-12-16 19:54 ./slackware64/l/ilmbase-1.0.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 19:54 ./slackware64/l/ilmbase-1.0.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 401 2009-08-11 04:01 ./slackware64/l/imlib-1.9.15-x86_64-5.txt +-rw-r--r-- 1 root root 463196 2009-08-11 04:01 ./slackware64/l/imlib-1.9.15-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-08-11 04:01 ./slackware64/l/imlib-1.9.15-x86_64-5.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/l/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/l/install.end +-rw-r--r-- 1 root root 392 2009-04-03 19:12 ./slackware64/l/iso-codes-3.8-noarch-1.txt +-rw-r--r-- 1 root root 1042596 2009-04-03 19:12 ./slackware64/l/iso-codes-3.8-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-04-03 19:12 ./slackware64/l/iso-codes-3.8-noarch-1.txz.asc +-rw-r--r-- 1 root root 382 2009-06-09 01:00 ./slackware64/l/jasper-1.900.1-x86_64-2.txt +-rw-r--r-- 1 root root 156644 2009-06-09 01:00 ./slackware64/l/jasper-1.900.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 01:00 ./slackware64/l/jasper-1.900.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 554 2009-08-13 21:40 ./slackware64/l/jre-6u16-x86_64-1.txt +-rw-r--r-- 1 root root 19434728 2009-08-13 21:40 ./slackware64/l/jre-6u16-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-13 21:40 ./slackware64/l/jre-6u16-x86_64-1.txz.asc +-rw-r--r-- 1 root root 210 2009-03-24 10:31 ./slackware64/l/lcms-1.18-x86_64-1.txt +-rw-r--r-- 1 root root 176456 2009-03-24 10:31 ./slackware64/l/lcms-1.18-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-24 10:31 ./slackware64/l/lcms-1.18-x86_64-1.txz.asc +-rw-r--r-- 1 root root 526 2009-06-09 05:54 ./slackware64/l/lesstif-0.95.0-x86_64-5.txt +-rw-r--r-- 1 root root 1382932 2009-06-09 05:54 ./slackware64/l/lesstif-0.95.0-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-06-09 05:54 ./slackware64/l/lesstif-0.95.0-x86_64-5.txz.asc +-rw-r--r-- 1 root root 505 2008-10-08 21:20 ./slackware64/l/libaio-0.3.106-x86_64-1.txt +-rw-r--r-- 1 root root 12992 2008-10-08 21:20 ./slackware64/l/libaio-0.3.106-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-08 21:20 ./slackware64/l/libaio-0.3.106-x86_64-1.txz.asc +-rw-r--r-- 1 root root 428 2008-10-08 21:22 ./slackware64/l/libao-0.8.8-x86_64-1.txt +-rw-r--r-- 1 root root 35288 2008-10-08 21:22 ./slackware64/l/libao-0.8.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-08 21:22 ./slackware64/l/libao-0.8.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 415 2009-03-08 22:47 ./slackware64/l/libarchive-2.6.2-x86_64-1.txt +-rw-r--r-- 1 root root 177548 2009-03-08 22:47 ./slackware64/l/libarchive-2.6.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-08 22:47 ./slackware64/l/libarchive-2.6.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2008-10-08 21:23 ./slackware64/l/libart_lgpl-2.3.20-x86_64-1.txt +-rw-r--r-- 1 root root 74044 2008-10-08 21:23 ./slackware64/l/libart_lgpl-2.3.20-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-08 21:23 ./slackware64/l/libart_lgpl-2.3.20-x86_64-1.txz.asc +-rw-r--r-- 1 root root 359 2009-06-09 01:22 ./slackware64/l/libcaca-0.99.beta16-x86_64-3.txt +-rw-r--r-- 1 root root 433140 2009-06-09 01:22 ./slackware64/l/libcaca-0.99.beta16-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-09 01:22 ./slackware64/l/libcaca-0.99.beta16-x86_64-3.txz.asc +-rw-r--r-- 1 root root 380 2009-04-11 20:17 ./slackware64/l/libcap-2.16-x86_64-2.txt +-rw-r--r-- 1 root root 48764 2009-04-11 20:17 ./slackware64/l/libcap-2.16-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-11 20:17 ./slackware64/l/libcap-2.16-x86_64-2.txz.asc +-rw-r--r-- 1 root root 328 2008-10-08 21:31 ./slackware64/l/libcddb-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 64056 2008-10-08 21:31 ./slackware64/l/libcddb-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-08 21:31 ./slackware64/l/libcddb-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 554 2008-10-08 21:33 ./slackware64/l/libcdio-0.79-x86_64-1.txt +-rw-r--r-- 1 root root 280832 2008-10-08 21:33 ./slackware64/l/libcdio-0.79-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-08 21:33 ./slackware64/l/libcdio-0.79-x86_64-1.txz.asc +-rw-r--r-- 1 root root 398 2009-03-09 11:04 ./slackware64/l/libdvdread-4.1.3-x86_64-1.txt +-rw-r--r-- 1 root root 69700 2009-03-09 11:04 ./slackware64/l/libdvdread-4.1.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 11:04 ./slackware64/l/libdvdread-4.1.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 397 2008-10-08 21:39 ./slackware64/l/libexif-0.6.16-x86_64-1.txt +-rw-r--r-- 1 root root 154192 2008-10-08 21:39 ./slackware64/l/libexif-0.6.16-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-08 21:39 ./slackware64/l/libexif-0.6.16-x86_64-1.txz.asc +-rw-r--r-- 1 root root 349 2009-06-09 05:43 ./slackware64/l/libglade-2.6.4-x86_64-2.txt +-rw-r--r-- 1 root root 78356 2009-06-09 05:43 ./slackware64/l/libglade-2.6.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 05:43 ./slackware64/l/libglade-2.6.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 293 2009-06-09 19:18 ./slackware64/l/libgphoto2-2.4.6-x86_64-1.txt +-rw-r--r-- 1 root root 939364 2009-06-09 19:18 ./slackware64/l/libgphoto2-2.4.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:18 ./slackware64/l/libgphoto2-2.4.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 518 2009-06-07 20:32 ./slackware64/l/libgpod-0.7.2-x86_64-1.txt +-rw-r--r-- 1 root root 270828 2009-06-07 20:32 ./slackware64/l/libgpod-0.7.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-07 20:32 ./slackware64/l/libgpod-0.7.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 336 2009-07-13 17:15 ./slackware64/l/libgsf-1.14.15-x86_64-1.txt +-rw-r--r-- 1 root root 180184 2009-07-13 17:15 ./slackware64/l/libgsf-1.14.15-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-13 17:15 ./slackware64/l/libgsf-1.14.15-x86_64-1.txz.asc +-rw-r--r-- 1 root root 340 2009-06-09 00:50 ./slackware64/l/libgtkhtml-2.11.1-x86_64-2.txt +-rw-r--r-- 1 root root 167168 2009-06-09 00:50 ./slackware64/l/libgtkhtml-2.11.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:50 ./slackware64/l/libgtkhtml-2.11.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 466 2009-04-03 19:34 ./slackware64/l/libical-0.43-x86_64-1.txt +-rw-r--r-- 1 root root 242064 2009-04-03 19:34 ./slackware64/l/libical-0.43-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-03 19:34 ./slackware64/l/libical-0.43-x86_64-1.txz.asc +-rw-r--r-- 1 root root 318 2009-03-24 10:29 ./slackware64/l/libid3tag-0.15.1b-x86_64-3.txt +-rw-r--r-- 1 root root 35808 2009-03-24 10:29 ./slackware64/l/libid3tag-0.15.1b-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-03-24 10:29 ./slackware64/l/libid3tag-0.15.1b-x86_64-3.txz.asc +-rw-r--r-- 1 root root 338 2008-10-09 13:08 ./slackware64/l/libidl-0.8.10-x86_64-1.txt +-rw-r--r-- 1 root root 81336 2008-10-09 13:08 ./slackware64/l/libidl-0.8.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-09 13:08 ./slackware64/l/libidl-0.8.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 336 2008-10-09 13:10 ./slackware64/l/libidn-1.5-x86_64-1.txt +-rw-r--r-- 1 root root 262696 2008-10-09 13:10 ./slackware64/l/libidn-1.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-09 13:10 ./slackware64/l/libidn-1.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 380 2009-04-30 20:35 ./slackware64/l/libieee1284-0.2.11-x86_64-2.txt +-rw-r--r-- 1 root root 75032 2009-04-30 20:35 ./slackware64/l/libieee1284-0.2.11-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:35 ./slackware64/l/libieee1284-0.2.11-x86_64-2.txz.asc +-rw-r--r-- 1 root root 662 2008-09-28 21:31 ./slackware64/l/libjpeg-6b-x86_64-5.txt +-rw-r--r-- 1 root root 225196 2008-09-28 21:31 ./slackware64/l/libjpeg-6b-x86_64-5.txz +-rw-r--r-- 1 root root 197 2008-09-28 21:31 ./slackware64/l/libjpeg-6b-x86_64-5.txz.asc +-rw-r--r-- 1 root root 357 2009-06-07 20:28 ./slackware64/l/libkarma-0.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 56268 2009-06-07 20:28 ./slackware64/l/libkarma-0.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-07 20:28 ./slackware64/l/libkarma-0.1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 600 2008-10-09 14:07 ./slackware64/l/libmad-0.15.1b-x86_64-3.txt +-rw-r--r-- 1 root root 70860 2008-10-09 14:07 ./slackware64/l/libmad-0.15.1b-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-10-09 14:07 ./slackware64/l/libmad-0.15.1b-x86_64-3.txz.asc +-rw-r--r-- 1 root root 552 2009-04-05 13:37 ./slackware64/l/libmcrypt-2.5.8-x86_64-1.txt +-rw-r--r-- 1 root root 81464 2009-04-05 13:37 ./slackware64/l/libmcrypt-2.5.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-05 13:37 ./slackware64/l/libmcrypt-2.5.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 509 2009-03-08 23:26 ./slackware64/l/libmcs-0.7.1-x86_64-1.txt +-rw-r--r-- 1 root root 16104 2009-03-08 23:26 ./slackware64/l/libmcs-0.7.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-08 23:26 ./slackware64/l/libmcs-0.7.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 484 2008-10-09 14:27 ./slackware64/l/libmng-1.0.10-x86_64-1.txt +-rw-r--r-- 1 root root 207044 2008-10-09 14:27 ./slackware64/l/libmng-1.0.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-09 14:27 ./slackware64/l/libmng-1.0.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 399 2008-10-09 13:37 ./slackware64/l/libmowgli-0.6.0-x86_64-1.txt +-rw-r--r-- 1 root root 28444 2008-10-09 13:37 ./slackware64/l/libmowgli-0.6.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-09 13:37 ./slackware64/l/libmowgli-0.6.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 315 2009-04-30 20:31 ./slackware64/l/libmsn-r96-x86_64-1.txt +-rw-r--r-- 1 root root 242684 2009-04-30 20:31 ./slackware64/l/libmsn-r96-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:31 ./slackware64/l/libmsn-r96-x86_64-1.txz.asc +-rw-r--r-- 1 root root 599 2009-06-07 22:23 ./slackware64/l/libmtp-0.3.6-x86_64-1.txt +-rw-r--r-- 1 root root 204092 2009-06-07 22:23 ./slackware64/l/libmtp-0.3.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-07 22:23 ./slackware64/l/libmtp-0.3.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 540 2009-05-23 04:43 ./slackware64/l/libnjb-2.2.6-x86_64-4.txt +-rw-r--r-- 1 root root 219696 2009-05-23 04:43 ./slackware64/l/libnjb-2.2.6-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:43 ./slackware64/l/libnjb-2.2.6-x86_64-4.txz.asc +-rw-r--r-- 1 root root 330 2009-03-31 10:18 ./slackware64/l/libnl-1.1-x86_64-1.txt +-rw-r--r-- 1 root root 119472 2009-03-31 10:18 ./slackware64/l/libnl-1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-31 10:18 ./slackware64/l/libnl-1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 305 2008-10-09 14:04 ./slackware64/l/libogg-1.1.3-x86_64-2.txt +-rw-r--r-- 1 root root 57256 2008-10-09 14:04 ./slackware64/l/libogg-1.1.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-09 14:04 ./slackware64/l/libogg-1.1.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 576 2009-06-02 22:11 ./slackware64/l/liboil-0.3.16-x86_64-1.txt +-rw-r--r-- 1 root root 159048 2009-06-02 22:11 ./slackware64/l/liboil-0.3.16-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-02 22:11 ./slackware64/l/liboil-0.3.16-x86_64-1.txz.asc +-rw-r--r-- 1 root root 492 2009-06-19 21:52 ./slackware64/l/libpng-1.2.37-x86_64-1.txt +-rw-r--r-- 1 root root 316160 2009-06-19 21:52 ./slackware64/l/libpng-1.2.37-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-19 21:52 ./slackware64/l/libpng-1.2.37-x86_64-1.txz.asc +-rw-r--r-- 1 root root 330 2008-10-09 14:56 ./slackware64/l/libraw1394-2.0.0-x86_64-1.txt +-rw-r--r-- 1 root root 51916 2008-10-09 14:56 ./slackware64/l/libraw1394-2.0.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-09 14:56 ./slackware64/l/libraw1394-2.0.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 174 2009-06-09 00:47 ./slackware64/l/librsvg-2.26.0-x86_64-2.txt +-rw-r--r-- 1 root root 134920 2009-06-09 00:47 ./slackware64/l/librsvg-2.26.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:47 ./slackware64/l/librsvg-2.26.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 413 2009-04-03 19:37 ./slackware64/l/libspectre-0.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 36788 2009-04-03 19:37 ./slackware64/l/libspectre-0.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-03 19:37 ./slackware64/l/libspectre-0.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 477 2008-09-28 22:17 ./slackware64/l/libtermcap-1.2.3-x86_64-7.txt +-rw-r--r-- 1 root root 59224 2008-09-28 22:17 ./slackware64/l/libtermcap-1.2.3-x86_64-7.txz +-rw-r--r-- 1 root root 197 2008-09-28 22:17 ./slackware64/l/libtermcap-1.2.3-x86_64-7.txz.asc +-rw-r--r-- 1 root root 625 2009-04-07 17:26 ./slackware64/l/libtheora-1.0-x86_64-1.txt +-rw-r--r-- 1 root root 153448 2009-04-07 17:26 ./slackware64/l/libtheora-1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-07 17:26 ./slackware64/l/libtheora-1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 394 2008-09-23 22:07 ./slackware64/l/libtiff-3.8.2-x86_64-3.txt +-rw-r--r-- 1 root root 385396 2008-09-23 22:07 ./slackware64/l/libtiff-3.8.2-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-09-23 22:07 ./slackware64/l/libtiff-3.8.2-x86_64-3.txz.asc +-rw-r--r-- 1 root root 344 2008-10-09 15:34 ./slackware64/l/libungif-4.1.4-x86_64-4.txt +-rw-r--r-- 1 root root 168452 2008-10-09 15:34 ./slackware64/l/libungif-4.1.4-x86_64-4.txz +-rw-r--r-- 1 root root 197 2008-10-09 15:34 ./slackware64/l/libungif-4.1.4-x86_64-4.txz.asc +-rw-r--r-- 1 root root 246 2008-10-01 21:17 ./slackware64/l/libusb-0.1.12-x86_64-2.txt +-rw-r--r-- 1 root root 91620 2008-10-01 21:17 ./slackware64/l/libusb-0.1.12-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-01 21:17 ./slackware64/l/libusb-0.1.12-x86_64-2.txz.asc +-rw-r--r-- 1 root root 544 2008-10-10 08:57 ./slackware64/l/libvisual-0.4.0-x86_64-2.txt +-rw-r--r-- 1 root root 127060 2008-10-10 08:57 ./slackware64/l/libvisual-0.4.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-10 08:57 ./slackware64/l/libvisual-0.4.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 722 2009-06-10 01:25 ./slackware64/l/libvisual-plugins-0.4.0-x86_64-2.txt +-rw-r--r-- 1 root root 220752 2009-06-10 01:25 ./slackware64/l/libvisual-plugins-0.4.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:25 ./slackware64/l/libvisual-plugins-0.4.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 374 2009-04-03 18:56 ./slackware64/l/libvncserver-0.9.7-x86_64-1.txt +-rw-r--r-- 1 root root 187868 2009-04-03 18:56 ./slackware64/l/libvncserver-0.9.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-03 18:56 ./slackware64/l/libvncserver-0.9.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 560 2008-10-09 14:05 ./slackware64/l/libvorbis-1.2.0-x86_64-1.txt +-rw-r--r-- 1 root root 401704 2008-10-09 14:05 ./slackware64/l/libvorbis-1.2.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-09 14:05 ./slackware64/l/libvorbis-1.2.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 288 2009-06-09 02:26 ./slackware64/l/libwmf-0.2.8.4-x86_64-4.txt +-rw-r--r-- 1 root root 749260 2009-06-09 02:26 ./slackware64/l/libwmf-0.2.8.4-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-09 02:26 ./slackware64/l/libwmf-0.2.8.4-x86_64-4.txz.asc +-rw-r--r-- 1 root root 305 2009-06-09 02:26 ./slackware64/l/libwmf-docs-0.2.8.4-noarch-4.txt +-rw-r--r-- 1 root root 206948 2009-06-09 02:26 ./slackware64/l/libwmf-docs-0.2.8.4-noarch-4.txz +-rw-r--r-- 1 root root 197 2009-06-09 02:26 ./slackware64/l/libwmf-docs-0.2.8.4-noarch-4.txz.asc +-rw-r--r-- 1 root root 475 2009-06-09 02:17 ./slackware64/l/libwnck-2.26.1-x86_64-1.txt +-rw-r--r-- 1 root root 324120 2009-06-09 02:17 ./slackware64/l/libwnck-2.26.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 02:17 ./slackware64/l/libwnck-2.26.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 316 2008-10-20 20:14 ./slackware64/l/libwpd-0.8.14-x86_64-1.txt +-rw-r--r-- 1 root root 198748 2008-10-20 20:14 ./slackware64/l/libwpd-0.8.14-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-20 20:14 ./slackware64/l/libwpd-0.8.14-x86_64-1.txz.asc +-rw-r--r-- 1 root root 292 2009-06-09 02:19 ./slackware64/l/libxklavier-3.9-x86_64-2.txt +-rw-r--r-- 1 root root 72804 2009-06-09 02:19 ./slackware64/l/libxklavier-3.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 02:19 ./slackware64/l/libxklavier-3.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 522 2009-05-18 08:17 ./slackware64/l/libxml2-2.7.3-x86_64-3.txt +-rw-r--r-- 1 root root 1381656 2009-05-18 08:17 ./slackware64/l/libxml2-2.7.3-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-18 08:17 ./slackware64/l/libxml2-2.7.3-x86_64-3.txz.asc +-rw-r--r-- 1 root root 220 2009-04-30 21:17 ./slackware64/l/libxslt-1.1.24-x86_64-2.txt +-rw-r--r-- 1 root root 398616 2009-04-30 21:17 ./slackware64/l/libxslt-1.1.24-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 21:17 ./slackware64/l/libxslt-1.1.24-x86_64-2.txz.asc +-rw-r--r-- 1 root root 429 2009-08-16 22:11 ./slackware64/l/libzip-0.9-x86_64-2.txt +-rw-r--r-- 1 root root 89568 2009-08-16 22:11 ./slackware64/l/libzip-0.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-16 22:11 ./slackware64/l/libzip-0.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 273 2008-10-10 09:38 ./slackware64/l/lzo-2.02-x86_64-1.txt +-rw-r--r-- 1 root root 70632 2008-10-10 09:38 ./slackware64/l/lzo-2.02-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-10 09:38 ./slackware64/l/lzo-2.02-x86_64-1.txz.asc +-rw-r--r-- 1 root root 12155 2009-07-01 18:29 ./slackware64/l/maketag +-rw-r--r-- 1 root root 12155 2009-07-01 18:29 ./slackware64/l/maketag.ez +-rw-r--r-- 1 root root 468 2008-10-10 09:43 ./slackware64/l/mhash-0.9.9-x86_64-1.txt +-rw-r--r-- 1 root root 112176 2008-10-10 09:43 ./slackware64/l/mhash-0.9.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-10 09:43 ./slackware64/l/mhash-0.9.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 550 2008-10-10 09:58 ./slackware64/l/mm-1.4.2-x86_64-2.txt +-rw-r--r-- 1 root root 32612 2008-10-10 09:58 ./slackware64/l/mm-1.4.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-10 09:58 ./slackware64/l/mm-1.4.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 587 2008-10-10 10:18 ./slackware64/l/mpfr-2.3.1-x86_64-1.txt +-rw-r--r-- 1 root root 231972 2008-10-10 10:18 ./slackware64/l/mpfr-2.3.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-10 10:18 ./slackware64/l/mpfr-2.3.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 446 2009-05-23 03:58 ./slackware64/l/ncurses-5.7-x86_64-2.txt +-rw-r--r-- 1 root root 1152080 2009-05-23 03:58 ./slackware64/l/ncurses-5.7-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 03:58 ./slackware64/l/ncurses-5.7-x86_64-2.txz.asc +-rw-r--r-- 1 root root 343 2009-06-13 02:29 ./slackware64/l/neon-0.28.4-x86_64-1.txt +-rw-r--r-- 1 root root 213476 2009-06-13 02:29 ./slackware64/l/neon-0.28.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-13 02:29 ./slackware64/l/neon-0.28.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 231 2008-12-15 00:06 ./slackware64/l/netpbm-10.35.22-x86_64-1.txt +-rw-r--r-- 1 root root 1513060 2008-12-15 00:06 ./slackware64/l/netpbm-10.35.22-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-15 00:06 ./slackware64/l/netpbm-10.35.22-x86_64-1.txz.asc +-rw-r--r-- 1 root root 457 2009-05-23 06:03 ./slackware64/l/openexr-1.6.1-x86_64-2.txt +-rw-r--r-- 1 root root 2948284 2009-05-23 06:03 ./slackware64/l/openexr-1.6.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:03 ./slackware64/l/openexr-1.6.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 429 2009-06-11 17:13 ./slackware64/l/pango-1.22.4-x86_64-4.txt +-rw-r--r-- 1 root root 480168 2009-06-11 17:13 ./slackware64/l/pango-1.22.4-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-11 17:13 ./slackware64/l/pango-1.22.4-x86_64-4.txz.asc +-rw-r--r-- 1 root root 384 2008-10-07 17:42 ./slackware64/l/parted-1.8.8-x86_64-2.txt +-rw-r--r-- 1 root root 395636 2008-10-07 17:42 ./slackware64/l/parted-1.8.8-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-07 17:42 ./slackware64/l/parted-1.8.8-x86_64-2.txz.asc +-rw-r--r-- 1 root root 364 2008-10-10 11:27 ./slackware64/l/pcre-7.7-x86_64-1.txt +-rw-r--r-- 1 root root 355980 2008-10-10 11:27 ./slackware64/l/pcre-7.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-10 11:27 ./slackware64/l/pcre-7.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 172 2009-02-28 23:50 ./slackware64/l/phonon-4.3.1-x86_64-1.txt +-rw-r--r-- 1 root root 284324 2009-02-28 23:50 ./slackware64/l/phonon-4.3.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-02-28 23:50 ./slackware64/l/phonon-4.3.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 419 2009-04-30 20:45 ./slackware64/l/pil-1.1.6-x86_64-1.txt +-rw-r--r-- 1 root root 341512 2009-04-30 20:45 ./slackware64/l/pil-1.1.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:45 ./slackware64/l/pil-1.1.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 416 2009-05-23 07:21 ./slackware64/l/pilot-link-0.12.3-x86_64-9.txt +-rw-r--r-- 1 root root 537704 2009-05-23 07:21 ./slackware64/l/pilot-link-0.12.3-x86_64-9.txz +-rw-r--r-- 1 root root 197 2009-05-23 07:21 ./slackware64/l/pilot-link-0.12.3-x86_64-9.txz.asc +-rw-r--r-- 1 root root 494 2009-06-09 04:02 ./slackware64/l/poppler-0.10.7-x86_64-1.txt +-rw-r--r-- 1 root root 882696 2009-06-09 04:02 ./slackware64/l/poppler-0.10.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 04:02 ./slackware64/l/poppler-0.10.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 601 2009-03-05 01:26 ./slackware64/l/poppler-data-0.2.1-noarch-1.txt +-rw-r--r-- 1 root root 1456256 2009-03-05 01:26 ./slackware64/l/poppler-data-0.2.1-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-03-05 01:26 ./slackware64/l/poppler-data-0.2.1-noarch-1.txz.asc +-rw-r--r-- 1 root root 592 2008-09-28 20:21 ./slackware64/l/popt-1.7-x86_64-2.txt +-rw-r--r-- 1 root root 40680 2008-09-28 20:21 ./slackware64/l/popt-1.7-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-09-28 20:21 ./slackware64/l/popt-1.7-x86_64-2.txz.asc +-rw-r--r-- 1 root root 286 2009-06-11 16:58 ./slackware64/l/pycairo-1.8.4-x86_64-3.txt +-rw-r--r-- 1 root root 61264 2009-06-11 16:58 ./slackware64/l/pycairo-1.8.4-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-11 16:58 ./slackware64/l/pycairo-1.8.4-x86_64-3.txz.asc +-rw-r--r-- 1 root root 239 2009-04-30 20:18 ./slackware64/l/pycups-1.9.45-x86_64-2.txt +-rw-r--r-- 1 root root 44540 2009-04-30 20:18 ./slackware64/l/pycups-1.9.45-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:18 ./slackware64/l/pycups-1.9.45-x86_64-2.txz.asc +-rw-r--r-- 1 root root 398 2009-04-30 20:11 ./slackware64/l/pygobject-2.16.1-x86_64-1.txt +-rw-r--r-- 1 root root 290264 2009-04-30 20:11 ./slackware64/l/pygobject-2.16.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-30 20:11 ./slackware64/l/pygobject-2.16.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 320 2009-06-09 04:08 ./slackware64/l/pygtk-2.14.1-x86_64-2.txt +-rw-r--r-- 1 root root 1622568 2009-06-09 04:08 ./slackware64/l/pygtk-2.14.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 04:08 ./slackware64/l/pygtk-2.14.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 392 2009-04-30 21:22 ./slackware64/l/pyrex-0.9.8.5-x86_64-2.txt +-rw-r--r-- 1 root root 234088 2009-04-30 21:22 ./slackware64/l/pyrex-0.9.8.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 21:22 ./slackware64/l/pyrex-0.9.8.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 567 2008-12-16 15:22 ./slackware64/l/qca-2.0.1-x86_64-1.txt +-rw-r--r-- 1 root root 539204 2008-12-16 15:22 ./slackware64/l/qca-2.0.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 15:22 ./slackware64/l/qca-2.0.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 280 2008-12-16 15:26 ./slackware64/l/qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txt +-rw-r--r-- 1 root root 25916 2008-12-16 15:26 ./slackware64/l/qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 15:26 ./slackware64/l/qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 200 2008-12-16 15:29 ./slackware64/l/qca-gnupg-2.0.0_beta3-x86_64-1.txt +-rw-r--r-- 1 root root 83252 2008-12-16 15:29 ./slackware64/l/qca-gnupg-2.0.0_beta3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 15:29 ./slackware64/l/qca-gnupg-2.0.0_beta3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 493 2008-12-16 15:39 ./slackware64/l/qca-ossl-2.0.0_beta3-x86_64-1.txt +-rw-r--r-- 1 root root 92288 2008-12-16 15:39 ./slackware64/l/qca-ossl-2.0.0_beta3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 15:39 ./slackware64/l/qca-ossl-2.0.0_beta3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 395 2009-04-03 19:40 ./slackware64/l/qimageblitz-r948358-x86_64-1.txt +-rw-r--r-- 1 root root 70036 2009-04-03 19:40 ./slackware64/l/qimageblitz-r948358-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-03 19:40 ./slackware64/l/qimageblitz-r948358-x86_64-1.txz.asc +-rw-r--r-- 1 root root 235 2009-08-08 20:27 ./slackware64/l/qt-r1008952-x86_64-1.txt +-rw-r--r-- 1 root root 41978140 2009-08-08 20:27 ./slackware64/l/qt-r1008952-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-08 20:27 ./slackware64/l/qt-r1008952-x86_64-1.txz.asc +-rw-r--r-- 1 root root 488 2009-06-05 14:59 ./slackware64/l/qtscriptgenerator-0.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 3644212 2009-06-05 14:59 ./slackware64/l/qtscriptgenerator-0.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-05 14:59 ./slackware64/l/qtscriptgenerator-0.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 545 2008-12-16 10:53 ./slackware64/l/raptor-1.4.18-x86_64-1.txt +-rw-r--r-- 1 root root 394868 2008-12-16 10:53 ./slackware64/l/raptor-1.4.18-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 10:53 ./slackware64/l/raptor-1.4.18-x86_64-1.txz.asc +-rw-r--r-- 1 root root 428 2008-12-16 11:25 ./slackware64/l/rasqal-0.9.16-x86_64-1.txt +-rw-r--r-- 1 root root 173012 2008-12-16 11:25 ./slackware64/l/rasqal-0.9.16-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 11:25 ./slackware64/l/rasqal-0.9.16-x86_64-1.txz.asc +-rw-r--r-- 1 root root 559 2009-02-22 15:40 ./slackware64/l/readline-5.2-x86_64-4.txt +-rw-r--r-- 1 root root 280136 2009-02-22 15:40 ./slackware64/l/readline-5.2-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-02-22 15:40 ./slackware64/l/readline-5.2-x86_64-4.txz.asc +-rw-r--r-- 1 root root 528 2008-12-16 11:31 ./slackware64/l/redland-1.0.8-x86_64-1.txt +-rw-r--r-- 1 root root 235308 2008-12-16 11:31 ./slackware64/l/redland-1.0.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-16 11:31 ./slackware64/l/redland-1.0.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 487 2009-06-16 01:50 ./slackware64/l/sdl-1.2.13-x86_64-4.txt +-rw-r--r-- 1 root root 594476 2009-06-16 01:50 ./slackware64/l/sdl-1.2.13-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-16 01:50 ./slackware64/l/sdl-1.2.13-x86_64-4.txz.asc +-rw-r--r-- 1 root root 782 2009-06-24 19:08 ./slackware64/l/seamonkey-solibs-1.1.17-x86_64-1.txt +-rw-r--r-- 1 root root 983996 2009-06-24 19:08 ./slackware64/l/seamonkey-solibs-1.1.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-24 19:08 ./slackware64/l/seamonkey-solibs-1.1.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 512 2009-03-09 20:57 ./slackware64/l/shared-mime-info-0.60-x86_64-1.txt +-rw-r--r-- 1 root root 276020 2009-03-09 20:57 ./slackware64/l/shared-mime-info-0.60-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 20:57 ./slackware64/l/shared-mime-info-0.60-x86_64-1.txz.asc +-rw-r--r-- 1 root root 395 2009-04-30 21:20 ./slackware64/l/sip-4.7.9-x86_64-2.txt +-rw-r--r-- 1 root root 221548 2009-04-30 21:20 ./slackware64/l/sip-4.7.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-30 21:20 ./slackware64/l/sip-4.7.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 538 2009-06-22 02:49 ./slackware64/l/slang-2.1.4-x86_64-1.txt +-rw-r--r-- 1 root root 358544 2009-06-22 02:49 ./slackware64/l/slang-2.1.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-22 02:49 ./slackware64/l/slang-2.1.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 549 2008-10-13 21:08 ./slackware64/l/slang1-1.4.9-x86_64-1.txt +-rw-r--r-- 1 root root 191920 2008-10-13 21:08 ./slackware64/l/slang1-1.4.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-13 21:08 ./slackware64/l/slang1-1.4.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 389 2009-03-29 10:46 ./slackware64/l/soprano-2.2.3-x86_64-1.txt +-rw-r--r-- 1 root root 1992288 2009-03-29 10:46 ./slackware64/l/soprano-2.2.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-29 10:46 ./slackware64/l/soprano-2.2.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 359 2009-06-09 02:21 ./slackware64/l/startup-notification-0.9-x86_64-2.txt +-rw-r--r-- 1 root root 36124 2009-06-09 02:21 ./slackware64/l/startup-notification-0.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 02:21 ./slackware64/l/startup-notification-0.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 509 2009-04-03 19:30 ./slackware64/l/strigi-0.6.4-x86_64-1.txt +-rw-r--r-- 1 root root 608604 2009-04-03 19:30 ./slackware64/l/strigi-0.6.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-03 19:30 ./slackware64/l/strigi-0.6.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 344 2009-03-10 11:44 ./slackware64/l/svgalib-1.9.25-x86_64-2.txt +-rw-r--r-- 1 root root 596412 2009-03-10 11:44 ./slackware64/l/svgalib-1.9.25-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-03-10 11:44 ./slackware64/l/svgalib-1.9.25-x86_64-2.txz.asc +-rw-r--r-- 1 root root 357 2009-06-09 00:44 ./slackware64/l/t1lib-5.1.2-x86_64-1.txt +-rw-r--r-- 1 root root 932020 2009-06-09 00:44 ./slackware64/l/t1lib-5.1.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:44 ./slackware64/l/t1lib-5.1.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 2094 2009-07-01 18:29 ./slackware64/l/tagfile +-rw-r--r-- 1 root root 340 2008-10-09 14:09 ./slackware64/l/taglib-1.5-x86_64-1.txt +-rw-r--r-- 1 root root 169972 2008-10-09 14:09 ./slackware64/l/taglib-1.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-09 14:09 ./slackware64/l/taglib-1.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 521 2009-06-05 10:12 ./slackware64/l/taglib-extras-0.1.3-x86_64-1.txt +-rw-r--r-- 1 root root 73116 2009-06-05 10:12 ./slackware64/l/taglib-extras-0.1.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-05 10:12 ./slackware64/l/taglib-extras-0.1.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 523 2009-03-06 09:44 ./slackware64/l/tango-icon-theme-0.8.90-noarch-1.txt +-rw-r--r-- 1 root root 1245240 2009-03-06 09:44 ./slackware64/l/tango-icon-theme-0.8.90-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-03-06 09:44 ./slackware64/l/tango-icon-theme-0.8.90-noarch-1.txz.asc +-rw-r--r-- 1 root root 541 2008-10-23 08:28 ./slackware64/l/tango-icon-theme-extras-0.1.0-noarch-1.txt +-rw-r--r-- 1 root root 55540 2008-10-23 08:28 ./slackware64/l/tango-icon-theme-extras-0.1.0-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-10-23 08:28 ./slackware64/l/tango-icon-theme-extras-0.1.0-noarch-1.txz.asc +-rw-r--r-- 1 root root 386 2009-07-01 18:23 ./slackware64/l/urwid-0.9.8.4-x86_64-1.txt +-rw-r--r-- 1 root root 193868 2009-07-01 18:23 ./slackware64/l/urwid-0.9.8.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-01 18:23 ./slackware64/l/urwid-0.9.8.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 256 2009-06-11 18:08 ./slackware64/l/vte-0.20.5-x86_64-1.txt +-rw-r--r-- 1 root root 318296 2009-06-11 18:08 ./slackware64/l/vte-0.20.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-11 18:08 ./slackware64/l/vte-0.20.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 381 2008-10-13 21:17 ./slackware64/l/wavpack-4.41.0-x86_64-1.txt +-rw-r--r-- 1 root root 100568 2008-10-13 21:17 ./slackware64/l/wavpack-4.41.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-13 21:17 ./slackware64/l/wavpack-4.41.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 422 2008-10-20 20:16 ./slackware64/l/wv2-0.2.3-x86_64-1.txt +-rw-r--r-- 1 root root 227912 2008-10-20 20:16 ./slackware64/l/wv2-0.2.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-20 20:16 ./slackware64/l/wv2-0.2.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 359 2008-09-21 08:11 ./slackware64/l/zlib-1.2.3-x86_64-2.txt +-rw-r--r-- 1 root root 83180 2008-09-21 08:11 ./slackware64/l/zlib-1.2.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-09-21 08:11 ./slackware64/l/zlib-1.2.3-x86_64-2.txz.asc +drwxr-xr-x 2 root root 28672 2009-08-25 04:55 ./slackware64/n +-rw-r--r-- 1 root root 645 2009-05-23 04:11 ./slackware64/n/alpine-2.00-x86_64-2.txt +-rw-r--r-- 1 root root 1929600 2009-05-23 04:11 ./slackware64/n/alpine-2.00-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:11 ./slackware64/n/alpine-2.00-x86_64-2.txz.asc +-rw-r--r-- 1 root root 416 2008-10-23 23:01 ./slackware64/n/autofs-3.1.7-x86_64-1.txt +-rw-r--r-- 1 root root 52024 2008-10-23 23:01 ./slackware64/n/autofs-3.1.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-23 23:01 ./slackware64/n/autofs-3.1.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 686 2008-10-23 23:09 ./slackware64/n/biff+comsat-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 10972 2008-10-23 23:09 ./slackware64/n/biff+comsat-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-23 23:09 ./slackware64/n/biff+comsat-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 336 2009-07-29 22:13 ./slackware64/n/bind-9.4.3_P3-x86_64-1.txt +-rw-r--r-- 1 root root 1679332 2009-07-29 22:13 ./slackware64/n/bind-9.4.3_P3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-29 22:13 ./slackware64/n/bind-9.4.3_P3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 367 2008-10-23 23:26 ./slackware64/n/bluez-firmware-1.2-x86_64-1.txt +-rw-r--r-- 1 root root 71980 2008-10-23 23:26 ./slackware64/n/bluez-firmware-1.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-23 23:26 ./slackware64/n/bluez-firmware-1.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 449 2008-11-26 18:51 ./slackware64/n/bluez-hcidump-1.42-x86_64-2.txt +-rw-r--r-- 1 root root 93036 2008-11-26 18:51 ./slackware64/n/bluez-hcidump-1.42-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-26 18:51 ./slackware64/n/bluez-hcidump-1.42-x86_64-2.txz.asc +-rw-r--r-- 1 root root 338 2008-11-26 18:41 ./slackware64/n/bluez-libs-3.36-x86_64-2.txt +-rw-r--r-- 1 root root 63732 2008-11-26 18:41 ./slackware64/n/bluez-libs-3.36-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-26 18:41 ./slackware64/n/bluez-libs-3.36-x86_64-2.txz.asc +-rw-r--r-- 1 root root 324 2009-08-24 09:09 ./slackware64/n/bluez-utils-3.36-x86_64-7.txt +-rw-r--r-- 1 root root 408672 2009-08-24 09:09 ./slackware64/n/bluez-utils-3.36-x86_64-7.txz +-rw-r--r-- 1 root root 197 2009-08-24 09:09 ./slackware64/n/bluez-utils-3.36-x86_64-7.txz.asc +-rw-r--r-- 1 root root 420 2008-10-14 11:45 ./slackware64/n/bootp-2.4.3-x86_64-2.txt +-rw-r--r-- 1 root root 49328 2008-10-14 11:45 ./slackware64/n/bootp-2.4.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-14 11:45 ./slackware64/n/bootp-2.4.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 591 2008-11-30 11:29 ./slackware64/n/bridge-utils-1.2-x86_64-2.txt +-rw-r--r-- 1 root root 28392 2008-11-30 11:29 ./slackware64/n/bridge-utils-1.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-30 11:29 ./slackware64/n/bridge-utils-1.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 613 2008-10-25 11:36 ./slackware64/n/bsd-finger-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 18984 2008-10-25 11:36 ./slackware64/n/bsd-finger-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-25 11:36 ./slackware64/n/bsd-finger-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 415 2009-04-11 20:18 ./slackware64/n/crda-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 13208 2009-04-11 20:18 ./slackware64/n/crda-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-11 20:18 ./slackware64/n/crda-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 555 2009-08-13 03:36 ./slackware64/n/curl-7.19.6-x86_64-1.txt +-rw-r--r-- 1 root root 616704 2009-08-13 03:36 ./slackware64/n/curl-7.19.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-13 03:36 ./slackware64/n/curl-7.19.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 375 2009-05-15 17:09 ./slackware64/n/cyrus-sasl-2.1.23-x86_64-1.txt +-rw-r--r-- 1 root root 413528 2009-05-15 17:09 ./slackware64/n/cyrus-sasl-2.1.23-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-15 17:09 ./slackware64/n/cyrus-sasl-2.1.23-x86_64-1.txz.asc +-rw-r--r-- 1 root root 644 2009-07-14 21:58 ./slackware64/n/dhcp-3.1.2p1-x86_64-1.txt +-rw-r--r-- 1 root root 493060 2009-07-14 21:58 ./slackware64/n/dhcp-3.1.2p1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-14 21:58 ./slackware64/n/dhcp-3.1.2p1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 443 2009-03-09 15:38 ./slackware64/n/dhcpcd-3.2.3-x86_64-1.txt +-rw-r--r-- 1 root root 35992 2009-03-09 15:38 ./slackware64/n/dhcpcd-3.2.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 15:38 ./slackware64/n/dhcpcd-3.2.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 494 2009-07-15 01:48 ./slackware64/n/dirmngr-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 202748 2009-07-15 01:48 ./slackware64/n/dirmngr-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-15 01:48 ./slackware64/n/dirmngr-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 396 2009-07-01 03:46 ./slackware64/n/dnsmasq-2.49-x86_64-1.txt +-rw-r--r-- 1 root root 204152 2009-07-01 03:46 ./slackware64/n/dnsmasq-2.49-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-01 03:46 ./slackware64/n/dnsmasq-2.49-x86_64-1.txz.asc +-rw-r--r-- 1 root root 224 2009-08-13 19:06 ./slackware64/n/elm-2.5.8-x86_64-3.txt +-rw-r--r-- 1 root root 254788 2009-08-13 19:06 ./slackware64/n/elm-2.5.8-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-08-13 19:06 ./slackware64/n/elm-2.5.8-x86_64-3.txz.asc +-rw-r--r-- 1 root root 321 2009-05-23 04:32 ./slackware64/n/epic4-2.8-x86_64-2.txt +-rw-r--r-- 1 root root 629208 2009-05-23 04:32 ./slackware64/n/epic4-2.8-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:32 ./slackware64/n/epic4-2.8-x86_64-2.txz.asc +-rw-r--r-- 1 root root 441 2008-12-13 17:21 ./slackware64/n/ethtool-6-x86_64-1.txt +-rw-r--r-- 1 root root 50184 2008-12-13 17:21 ./slackware64/n/ethtool-6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-13 17:21 ./slackware64/n/ethtool-6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 607 2009-08-06 04:49 ./slackware64/n/fetchmail-6.3.11-x86_64-1.txt +-rw-r--r-- 1 root root 566672 2009-08-06 04:49 ./slackware64/n/fetchmail-6.3.11-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-06 04:49 ./slackware64/n/fetchmail-6.3.11-x86_64-1.txz.asc +-rw-r--r-- 1 root root 363 2009-08-22 19:55 ./slackware64/n/getmail-4.11.0-x86_64-1.txt +-rw-r--r-- 1 root root 141184 2009-08-22 19:55 ./slackware64/n/getmail-4.11.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-22 19:55 ./slackware64/n/getmail-4.11.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 371 2008-10-14 12:11 ./slackware64/n/gnupg-1.4.9-x86_64-1.txt +-rw-r--r-- 1 root root 1072076 2008-10-14 12:11 ./slackware64/n/gnupg-1.4.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-14 12:11 ./slackware64/n/gnupg-1.4.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 601 2009-07-15 01:49 ./slackware64/n/gnupg2-2.0.12-x86_64-1.txt +-rw-r--r-- 1 root root 1572996 2009-07-15 01:49 ./slackware64/n/gnupg2-2.0.12-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-15 01:49 ./slackware64/n/gnupg2-2.0.12-x86_64-1.txz.asc +-rw-r--r-- 1 root root 493 2009-05-23 04:37 ./slackware64/n/gnutls-2.6.6-x86_64-2.txt +-rw-r--r-- 1 root root 1448772 2009-05-23 04:37 ./slackware64/n/gnutls-2.6.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:37 ./slackware64/n/gnutls-2.6.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 287 2008-10-20 21:14 ./slackware64/n/gpa-0.7.5-x86_64-1.txt +-rw-r--r-- 1 root root 185464 2008-10-20 21:14 ./slackware64/n/gpa-0.7.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-20 21:14 ./slackware64/n/gpa-0.7.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 539 2009-03-09 10:31 ./slackware64/n/gpgme-1.1.8-x86_64-1.txt +-rw-r--r-- 1 root root 233608 2009-03-09 10:31 ./slackware64/n/gpgme-1.1.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 10:31 ./slackware64/n/gpgme-1.1.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 435 2008-10-15 16:36 ./slackware64/n/htdig-3.2.0b6-x86_64-3.txt +-rw-r--r-- 1 root root 939096 2008-10-15 16:36 ./slackware64/n/htdig-3.2.0b6-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-10-15 16:36 ./slackware64/n/htdig-3.2.0b6-x86_64-3.txz.asc +-rw-r--r-- 1 root root 514 2009-08-10 19:08 ./slackware64/n/httpd-2.2.13-x86_64-1.txt +-rw-r--r-- 1 root root 1441112 2009-08-10 19:08 ./slackware64/n/httpd-2.2.13-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-10 19:08 ./slackware64/n/httpd-2.2.13-x86_64-1.txz.asc +-rw-r--r-- 1 root root 366 2008-10-25 12:08 ./slackware64/n/icmpinfo-1.11-x86_64-1.txt +-rw-r--r-- 1 root root 9396 2008-10-25 12:08 ./slackware64/n/icmpinfo-1.11-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-25 12:08 ./slackware64/n/icmpinfo-1.11-x86_64-1.txz.asc +-rw-r--r-- 1 root root 293 2009-05-23 04:11 ./slackware64/n/imapd-2.00-x86_64-2.txt +-rw-r--r-- 1 root root 466172 2009-05-23 04:11 ./slackware64/n/imapd-2.00-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:11 ./slackware64/n/imapd-2.00-x86_64-2.txz.asc +-rw-r--r-- 1 root root 454 2008-10-14 15:47 ./slackware64/n/inetd-1.79s-x86_64-8.txt +-rw-r--r-- 1 root root 20976 2008-10-14 15:47 ./slackware64/n/inetd-1.79s-x86_64-8.txz +-rw-r--r-- 1 root root 197 2008-10-14 15:47 ./slackware64/n/inetd-1.79s-x86_64-8.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/n/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/n/install.end +-rw-r--r-- 1 root root 478 2009-06-17 18:55 ./slackware64/n/iproute2-2.6.29_1-x86_64-2.txt +-rw-r--r-- 1 root root 366748 2009-06-17 18:55 ./slackware64/n/iproute2-2.6.29_1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-17 18:55 ./slackware64/n/iproute2-2.6.29_1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 670 2009-06-12 23:01 ./slackware64/n/iptables-1.4.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 297212 2009-06-12 23:01 ./slackware64/n/iptables-1.4.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 23:01 ./slackware64/n/iptables-1.4.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 549 2009-05-23 04:39 ./slackware64/n/iptraf-3.0.0-x86_64-3.txt +-rw-r--r-- 1 root root 280608 2009-05-23 04:39 ./slackware64/n/iptraf-3.0.0-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:39 ./slackware64/n/iptraf-3.0.0-x86_64-3.txz.asc +-rw-r--r-- 1 root root 423 2008-10-25 12:10 ./slackware64/n/iputils-s20070202-x86_64-2.txt +-rw-r--r-- 1 root root 68752 2008-10-25 12:10 ./slackware64/n/iputils-s20070202-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-25 12:10 ./slackware64/n/iputils-s20070202-x86_64-2.txz.asc +-rw-r--r-- 1 root root 479 2008-11-04 11:29 ./slackware64/n/ipw2100-fw-1.3-fw-1.txt +-rw-r--r-- 1 root root 119440 2008-11-04 11:29 ./slackware64/n/ipw2100-fw-1.3-fw-1.txz +-rw-r--r-- 1 root root 197 2008-11-04 11:29 ./slackware64/n/ipw2100-fw-1.3-fw-1.txz.asc +-rw-r--r-- 1 root root 532 2008-11-04 11:29 ./slackware64/n/ipw2200-fw-3.0-fw-2.txt +-rw-r--r-- 1 root root 117360 2008-11-04 11:29 ./slackware64/n/ipw2200-fw-3.0-fw-2.txz +-rw-r--r-- 1 root root 197 2008-11-04 11:29 ./slackware64/n/ipw2200-fw-3.0-fw-2.txz.asc +-rw-r--r-- 1 root root 333 2009-08-01 20:54 ./slackware64/n/irssi-0.8.14-x86_64-1.txt +-rw-r--r-- 1 root root 1090896 2009-08-01 20:54 ./slackware64/n/irssi-0.8.14-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-01 20:54 ./slackware64/n/irssi-0.8.14-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-12 23:55 ./slackware64/n/iw-0.9.14-x86_64-1.txt +-rw-r--r-- 1 root root 24904 2009-06-12 23:55 ./slackware64/n/iw-0.9.14-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 23:55 ./slackware64/n/iw-0.9.14-x86_64-1.txz.asc +-rw-r--r-- 1 root root 518 2009-07-01 18:12 ./slackware64/n/iwlwifi-3945-ucode-15.32.2.9-fw-1.txt +-rw-r--r-- 1 root root 65720 2009-07-01 18:12 ./slackware64/n/iwlwifi-3945-ucode-15.32.2.9-fw-1.txz +-rw-r--r-- 1 root root 197 2009-07-01 18:12 ./slackware64/n/iwlwifi-3945-ucode-15.32.2.9-fw-1.txz.asc +-rw-r--r-- 1 root root 518 2009-07-16 00:54 ./slackware64/n/iwlwifi-4965-ucode-228.61.2.24-fw-1.txt +-rw-r--r-- 1 root root 77788 2009-07-16 00:54 ./slackware64/n/iwlwifi-4965-ucode-228.61.2.24-fw-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 00:54 ./slackware64/n/iwlwifi-4965-ucode-228.61.2.24-fw-1.txz.asc +-rw-r--r-- 1 root root 512 2009-07-01 18:12 ./slackware64/n/iwlwifi-5000-ucode-8.24.2.12-fw-1.txt +-rw-r--r-- 1 root root 197848 2009-07-01 18:12 ./slackware64/n/iwlwifi-5000-ucode-8.24.2.12-fw-1.txz +-rw-r--r-- 1 root root 197 2009-07-01 18:12 ./slackware64/n/iwlwifi-5000-ucode-8.24.2.12-fw-1.txz.asc +-rw-r--r-- 1 root root 509 2009-07-15 01:51 ./slackware64/n/iwlwifi-5150-ucode-8.24.2.2-fw-1.txt +-rw-r--r-- 1 root root 115588 2009-07-15 01:51 ./slackware64/n/iwlwifi-5150-ucode-8.24.2.2-fw-1.txz +-rw-r--r-- 1 root root 197 2009-07-15 01:51 ./slackware64/n/iwlwifi-5150-ucode-8.24.2.2-fw-1.txz.asc +-rw-r--r-- 1 root root 582 2009-06-12 22:12 ./slackware64/n/lftp-3.7.14-x86_64-1.txt +-rw-r--r-- 1 root root 646052 2009-06-12 22:12 ./slackware64/n/lftp-3.7.14-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 22:12 ./slackware64/n/lftp-3.7.14-x86_64-1.txz.asc +-rw-r--r-- 1 root root 252 2008-10-14 13:01 ./slackware64/n/libassuan-1.0.4-x86_64-1.txt +-rw-r--r-- 1 root root 91588 2008-10-14 13:01 ./slackware64/n/libassuan-1.0.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-14 13:01 ./slackware64/n/libassuan-1.0.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 245 2009-03-31 10:23 ./slackware64/n/libgcrypt-1.4.4-x86_64-1.txt +-rw-r--r-- 1 root root 393880 2009-03-31 10:23 ./slackware64/n/libgcrypt-1.4.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-31 10:23 ./slackware64/n/libgcrypt-1.4.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 393 2009-03-09 10:25 ./slackware64/n/libgpg-error-1.7-x86_64-1.txt +-rw-r--r-- 1 root root 63760 2009-03-09 10:25 ./slackware64/n/libgpg-error-1.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-09 10:25 ./slackware64/n/libgpg-error-1.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 332 2009-07-15 01:47 ./slackware64/n/libksba-1.0.6-x86_64-1.txt +-rw-r--r-- 1 root root 127008 2009-07-15 01:47 ./slackware64/n/libksba-1.0.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-15 01:47 ./slackware64/n/libksba-1.0.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 446 2008-10-28 18:55 ./slackware64/n/links-2.2-x86_64-1.txt +-rw-r--r-- 1 root root 1838132 2008-10-28 18:55 ./slackware64/n/links-2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-28 18:55 ./slackware64/n/links-2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 498 2009-05-23 04:43 ./slackware64/n/lynx-2.8.6rel.5-x86_64-2.txt +-rw-r--r-- 1 root root 1520412 2009-05-23 04:43 ./slackware64/n/lynx-2.8.6rel.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:43 ./slackware64/n/lynx-2.8.6rel.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 567 2009-08-11 01:02 ./slackware64/n/mailx-12.4-x86_64-1.txt +-rw-r--r-- 1 root root 240064 2009-08-11 01:02 ./slackware64/n/mailx-12.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-11 01:02 ./slackware64/n/mailx-12.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 9610 2009-07-15 01:52 ./slackware64/n/maketag +-rw-r--r-- 1 root root 9610 2009-07-15 01:52 ./slackware64/n/maketag.ez +-rw-r--r-- 1 root root 418 2009-05-23 04:44 ./slackware64/n/mcabber-0.9.9-x86_64-2.txt +-rw-r--r-- 1 root root 232524 2009-05-23 04:44 ./slackware64/n/mcabber-0.9.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:44 ./slackware64/n/mcabber-0.9.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 468 2009-05-23 04:44 ./slackware64/n/metamail-2.7-x86_64-4.txt +-rw-r--r-- 1 root root 125932 2009-05-23 04:44 ./slackware64/n/metamail-2.7-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:44 ./slackware64/n/metamail-2.7-x86_64-4.txz.asc +-rw-r--r-- 1 root root 325 2009-05-23 04:45 ./slackware64/n/mtr-0.73-x86_64-2.txt +-rw-r--r-- 1 root root 50584 2009-05-23 04:45 ./slackware64/n/mtr-0.73-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:45 ./slackware64/n/mtr-0.73-x86_64-2.txz.asc +-rw-r--r-- 1 root root 411 2009-05-23 04:45 ./slackware64/n/mutt-1.4.2.3-x86_64-2.txt +-rw-r--r-- 1 root root 702520 2009-05-23 04:45 ./slackware64/n/mutt-1.4.2.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:45 ./slackware64/n/mutt-1.4.2.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 628 2008-10-28 20:33 ./slackware64/n/nc-1.10-x86_64-1.txt +-rw-r--r-- 1 root root 53592 2008-10-28 20:33 ./slackware64/n/nc-1.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-28 20:33 ./slackware64/n/nc-1.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 337 2009-05-23 04:48 ./slackware64/n/ncftp-3.2.2-x86_64-2.txt +-rw-r--r-- 1 root root 260568 2009-05-23 04:48 ./slackware64/n/ncftp-3.2.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:48 ./slackware64/n/ncftp-3.2.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 451 2009-05-23 07:13 ./slackware64/n/net-snmp-5.4.2.1-x86_64-2.txt +-rw-r--r-- 1 root root 1933716 2009-05-23 07:13 ./slackware64/n/net-snmp-5.4.2.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 07:13 ./slackware64/n/net-snmp-5.4.2.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 449 2008-09-28 16:04 ./slackware64/n/net-tools-1.60-x86_64-2.txt +-rw-r--r-- 1 root root 120592 2008-09-28 16:04 ./slackware64/n/net-tools-1.60-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-09-28 16:04 ./slackware64/n/net-tools-1.60-x86_64-2.txz.asc +-rw-r--r-- 1 root root 581 2009-08-11 00:22 ./slackware64/n/netatalk-2.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 476224 2009-08-11 00:22 ./slackware64/n/netatalk-2.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-11 00:22 ./slackware64/n/netatalk-2.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 649 2008-10-28 20:59 ./slackware64/n/netdate-bsd4-x86_64-1.txt +-rw-r--r-- 1 root root 8812 2008-10-28 20:59 ./slackware64/n/netdate-bsd4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-28 20:59 ./slackware64/n/netdate-bsd4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 518 2009-05-23 04:52 ./slackware64/n/netkit-bootparamd-0.17-x86_64-2.txt +-rw-r--r-- 1 root root 9232 2009-05-23 04:52 ./slackware64/n/netkit-bootparamd-0.17-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:52 ./slackware64/n/netkit-bootparamd-0.17-x86_64-2.txz.asc +-rw-r--r-- 1 root root 444 2008-09-23 22:37 ./slackware64/n/netkit-ftp-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 44944 2008-09-23 22:37 ./slackware64/n/netkit-ftp-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-23 22:37 ./slackware64/n/netkit-ftp-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 478 2009-05-23 04:52 ./slackware64/n/netkit-ntalk-0.17-x86_64-3.txt +-rw-r--r-- 1 root root 26168 2009-05-23 04:52 ./slackware64/n/netkit-ntalk-0.17-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:52 ./slackware64/n/netkit-ntalk-0.17-x86_64-3.txz.asc +-rw-r--r-- 1 root root 636 2008-09-23 22:51 ./slackware64/n/netkit-routed-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 25544 2008-09-23 22:51 ./slackware64/n/netkit-routed-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-23 22:51 ./slackware64/n/netkit-routed-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 423 2008-09-23 22:52 ./slackware64/n/netkit-rsh-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 42092 2008-09-23 22:52 ./slackware64/n/netkit-rsh-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-23 22:52 ./slackware64/n/netkit-rsh-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 696 2008-09-23 22:55 ./slackware64/n/netkit-rusers-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 17720 2008-09-23 22:55 ./slackware64/n/netkit-rusers-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-23 22:55 ./slackware64/n/netkit-rusers-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 462 2008-09-23 22:56 ./slackware64/n/netkit-rwall-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 10388 2008-09-23 22:56 ./slackware64/n/netkit-rwall-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-23 22:56 ./slackware64/n/netkit-rwall-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 691 2008-12-14 22:23 ./slackware64/n/netkit-rwho-0.17-x86_64-2.txt +-rw-r--r-- 1 root root 17040 2008-12-14 22:23 ./slackware64/n/netkit-rwho-0.17-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-12-14 22:23 ./slackware64/n/netkit-rwho-0.17-x86_64-2.txz.asc +-rw-r--r-- 1 root root 407 2008-12-14 22:28 ./slackware64/n/netkit-timed-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 30900 2008-12-14 22:28 ./slackware64/n/netkit-timed-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-14 22:28 ./slackware64/n/netkit-timed-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 560 2008-10-15 18:12 ./slackware64/n/netpipes-4.2-x86_64-1.txt +-rw-r--r-- 1 root root 70156 2008-10-15 18:12 ./slackware64/n/netpipes-4.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-15 18:12 ./slackware64/n/netpipes-4.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 306 2009-05-23 04:52 ./slackware64/n/netwatch-1.3.0-x86_64-2.txt +-rw-r--r-- 1 root root 95588 2009-05-23 04:52 ./slackware64/n/netwatch-1.3.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:52 ./slackware64/n/netwatch-1.3.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 583 2009-08-25 04:38 ./slackware64/n/network-scripts-13.0-noarch-2.txt +-rw-r--r-- 1 root root 20032 2009-08-25 04:38 ./slackware64/n/network-scripts-13.0-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-08-25 04:38 ./slackware64/n/network-scripts-13.0-noarch-2.txz.asc +-rw-r--r-- 1 root root 560 2008-10-28 21:07 ./slackware64/n/netwrite-0.17-x86_64-1.txt +-rw-r--r-- 1 root root 6836 2008-10-28 21:07 ./slackware64/n/netwrite-0.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-28 21:07 ./slackware64/n/netwrite-0.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 511 2008-10-28 21:08 ./slackware64/n/newspost-2.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 42084 2008-10-28 21:08 ./slackware64/n/newspost-2.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-28 21:08 ./slackware64/n/newspost-2.1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2008-10-28 10:50 ./slackware64/n/nfs-utils-1.1.4-x86_64-1.txt +-rw-r--r-- 1 root root 161716 2008-10-28 10:50 ./slackware64/n/nfs-utils-1.1.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-28 10:50 ./slackware64/n/nfs-utils-1.1.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 652 2009-07-17 05:05 ./slackware64/n/nmap-5.00-x86_64-1.txt +-rw-r--r-- 1 root root 1835304 2009-07-17 05:05 ./slackware64/n/nmap-5.00-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-17 05:05 ./slackware64/n/nmap-5.00-x86_64-1.txz.asc +-rw-r--r-- 1 root root 444 2009-05-23 06:02 ./slackware64/n/nn-6.7.3-x86_64-2.txt +-rw-r--r-- 1 root root 304732 2009-05-23 06:02 ./slackware64/n/nn-6.7.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:02 ./slackware64/n/nn-6.7.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 532 2009-06-03 21:07 ./slackware64/n/ntp-4.2.4p7-x86_64-1.txt +-rw-r--r-- 1 root root 1195940 2009-06-03 21:07 ./slackware64/n/ntp-4.2.4p7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 21:07 ./slackware64/n/ntp-4.2.4p7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 466 2009-05-01 08:43 ./slackware64/n/obexftp-0.23-x86_64-1.txt +-rw-r--r-- 1 root root 97928 2009-05-01 08:43 ./slackware64/n/obexftp-0.23-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-01 08:43 ./slackware64/n/obexftp-0.23-x86_64-1.txz.asc +-rw-r--r-- 1 root root 565 2008-09-28 23:07 ./slackware64/n/openldap-client-2.3.43-x86_64-1.txt +-rw-r--r-- 1 root root 311860 2008-09-28 23:07 ./slackware64/n/openldap-client-2.3.43-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-09-28 23:07 ./slackware64/n/openldap-client-2.3.43-x86_64-1.txz.asc +-rw-r--r-- 1 root root 538 2008-11-26 18:53 ./slackware64/n/openobex-1.3-x86_64-3.txt +-rw-r--r-- 1 root root 51396 2008-11-26 18:53 ./slackware64/n/openobex-1.3-x86_64-3.txz +-rw-r--r-- 1 root root 197 2008-11-26 18:53 ./slackware64/n/openobex-1.3-x86_64-3.txz.asc +-rw-r--r-- 1 root root 676 2009-05-23 06:04 ./slackware64/n/openssh-5.2p1-x86_64-2.txt +-rw-r--r-- 1 root root 494148 2009-05-23 06:04 ./slackware64/n/openssh-5.2p1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:04 ./slackware64/n/openssh-5.2p1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 561 2009-04-29 11:07 ./slackware64/n/openssl-0.9.8k-x86_64-2.txt +-rw-r--r-- 1 root root 2467436 2009-04-29 11:07 ./slackware64/n/openssl-0.9.8k-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-04-29 11:07 ./slackware64/n/openssl-0.9.8k-x86_64-2.txz.asc +-rw-r--r-- 1 root root 430 2008-10-28 21:33 ./slackware64/n/openvpn-2.0.9-x86_64-1.txt +-rw-r--r-- 1 root root 281992 2008-10-28 21:33 ./slackware64/n/openvpn-2.0.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-28 21:33 ./slackware64/n/openvpn-2.0.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 376 2009-07-11 21:23 ./slackware64/n/php-5.2.10-x86_64-2.txt +-rw-r--r-- 1 root root 4556872 2009-07-11 21:23 ./slackware64/n/php-5.2.10-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-07-11 21:23 ./slackware64/n/php-5.2.10-x86_64-2.txz.asc +-rw-r--r-- 1 root root 578 2008-10-28 21:36 ./slackware64/n/pidentd-3.0.19-x86_64-1.txt +-rw-r--r-- 1 root root 42368 2008-10-28 21:36 ./slackware64/n/pidentd-3.0.19-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-28 21:36 ./slackware64/n/pidentd-3.0.19-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-08-18 18:44 ./slackware64/n/pinentry-0.7.6-x86_64-1.txt +-rw-r--r-- 1 root root 105260 2009-08-18 18:44 ./slackware64/n/pinentry-0.7.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-18 18:44 ./slackware64/n/pinentry-0.7.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 545 2008-10-31 09:53 ./slackware64/n/popa3d-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 20584 2008-10-31 09:53 ./slackware64/n/popa3d-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-31 09:53 ./slackware64/n/popa3d-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 529 2008-10-14 18:37 ./slackware64/n/portmap-6.0-x86_64-1.txt +-rw-r--r-- 1 root root 27588 2008-10-14 18:37 ./slackware64/n/portmap-6.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-14 18:37 ./slackware64/n/portmap-6.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 451 2008-10-31 10:30 ./slackware64/n/ppp-2.4.4-x86_64-1.txt +-rw-r--r-- 1 root root 351424 2008-10-31 10:30 ./slackware64/n/ppp-2.4.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 10:30 ./slackware64/n/ppp-2.4.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 687 2008-10-31 11:09 ./slackware64/n/procmail-3.22-x86_64-2.txt +-rw-r--r-- 1 root root 132440 2008-10-31 11:09 ./slackware64/n/procmail-3.22-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-31 11:09 ./slackware64/n/procmail-3.22-x86_64-2.txz.asc +-rw-r--r-- 1 root root 339 2009-05-23 06:23 ./slackware64/n/proftpd-1.3.2-x86_64-2.txt +-rw-r--r-- 1 root root 730776 2009-05-23 06:23 ./slackware64/n/proftpd-1.3.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:23 ./slackware64/n/proftpd-1.3.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 488 2008-10-31 11:31 ./slackware64/n/pssh-1.3.1-noarch-1.txt +-rw-r--r-- 1 root root 11096 2008-10-31 11:31 ./slackware64/n/pssh-1.3.1-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 11:31 ./slackware64/n/pssh-1.3.1-noarch-1.txz.asc +-rw-r--r-- 1 root root 472 2008-10-14 13:00 ./slackware64/n/pth-2.0.7-x86_64-1.txt +-rw-r--r-- 1 root root 101100 2008-10-14 13:00 ./slackware64/n/pth-2.0.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-14 13:00 ./slackware64/n/pth-2.0.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 355 2008-10-31 11:33 ./slackware64/n/rdist-6.1.5-x86_64-1.txt +-rw-r--r-- 1 root root 55360 2008-10-31 11:33 ./slackware64/n/rdist-6.1.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 11:33 ./slackware64/n/rdist-6.1.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 499 2008-10-31 11:43 ./slackware64/n/rp-pppoe-3.10-x86_64-1.txt +-rw-r--r-- 1 root root 84764 2008-10-31 11:43 ./slackware64/n/rp-pppoe-3.10-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 11:43 ./slackware64/n/rp-pppoe-3.10-x86_64-1.txz.asc +-rw-r--r-- 1 root root 494 2009-05-16 00:21 ./slackware64/n/rsync-3.0.6-x86_64-1.txt +-rw-r--r-- 1 root root 267532 2009-05-16 00:21 ./slackware64/n/rsync-3.0.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-16 00:21 ./slackware64/n/rsync-3.0.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 273 2008-11-04 11:37 ./slackware64/n/rt61-firmware-1.2-fw-1.txt +-rw-r--r-- 1 root root 7224 2008-11-04 11:37 ./slackware64/n/rt61-firmware-1.2-fw-1.txz +-rw-r--r-- 1 root root 197 2008-11-04 11:37 ./slackware64/n/rt61-firmware-1.2-fw-1.txz.asc +-rw-r--r-- 1 root root 287 2008-11-04 11:49 ./slackware64/n/rt71w-firmware-1.8-fw-1.txt +-rw-r--r-- 1 root root 2808 2008-11-04 11:49 ./slackware64/n/rt71w-firmware-1.8-fw-1.txz +-rw-r--r-- 1 root root 197 2008-11-04 11:49 ./slackware64/n/rt71w-firmware-1.8-fw-1.txz.asc +-rw-r--r-- 1 root root 555 2009-06-26 04:22 ./slackware64/n/samba-3.2.13-x86_64-1.txt +-rw-r--r-- 1 root root 17557044 2009-06-26 04:22 ./slackware64/n/samba-3.2.13-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-26 04:22 ./slackware64/n/samba-3.2.13-x86_64-1.txz.asc +-rw-r--r-- 1 root root 503 2009-06-26 19:59 ./slackware64/n/sendmail-8.14.3-x86_64-2.txt +-rw-r--r-- 1 root root 942004 2009-06-26 19:59 ./slackware64/n/sendmail-8.14.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-26 19:59 ./slackware64/n/sendmail-8.14.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 588 2009-06-26 19:59 ./slackware64/n/sendmail-cf-8.14.3-noarch-2.txt +-rw-r--r-- 1 root root 114356 2009-06-26 19:59 ./slackware64/n/sendmail-cf-8.14.3-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-26 19:59 ./slackware64/n/sendmail-cf-8.14.3-noarch-2.txz.asc +-rw-r--r-- 1 root root 309 2008-11-26 20:05 ./slackware64/n/slrn-0.9.9p1-x86_64-2.txt +-rw-r--r-- 1 root root 454304 2008-11-26 20:05 ./slackware64/n/slrn-0.9.9p1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-26 20:05 ./slackware64/n/slrn-0.9.9p1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 415 2009-07-17 23:03 ./slackware64/n/snownews-1.5.11-x86_64-2.txt +-rw-r--r-- 1 root root 126472 2009-07-17 23:03 ./slackware64/n/snownews-1.5.11-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-07-17 23:03 ./slackware64/n/snownews-1.5.11-x86_64-2.txz.asc +-rw-r--r-- 1 root root 510 2008-10-31 13:17 ./slackware64/n/stunnel-4.17-x86_64-1.txt +-rw-r--r-- 1 root root 103788 2008-10-31 13:17 ./slackware64/n/stunnel-4.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 13:17 ./slackware64/n/stunnel-4.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 1594 2009-07-15 01:52 ./slackware64/n/tagfile +-rw-r--r-- 1 root root 649 2008-10-13 20:26 ./slackware64/n/tcp_wrappers-7.6-x86_64-1.txt +-rw-r--r-- 1 root root 78592 2008-10-13 20:26 ./slackware64/n/tcp_wrappers-7.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-13 20:26 ./slackware64/n/tcp_wrappers-7.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2008-11-26 16:23 ./slackware64/n/tcpdump-4.0.0-x86_64-1.txt +-rw-r--r-- 1 root root 471672 2008-11-26 16:23 ./slackware64/n/tcpdump-4.0.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-26 16:23 ./slackware64/n/tcpdump-4.0.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 557 2009-05-23 06:39 ./slackware64/n/telnet-0.17-x86_64-2.txt +-rw-r--r-- 1 root root 63900 2009-05-23 06:39 ./slackware64/n/telnet-0.17-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:39 ./slackware64/n/telnet-0.17-x86_64-2.txz.asc +-rw-r--r-- 1 root root 555 2008-10-31 13:28 ./slackware64/n/tftp-hpa-0.48-x86_64-1.txt +-rw-r--r-- 1 root root 49792 2008-10-31 13:28 ./slackware64/n/tftp-hpa-0.48-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 13:28 ./slackware64/n/tftp-hpa-0.48-x86_64-1.txz.asc +-rw-r--r-- 1 root root 490 2009-05-23 06:40 ./slackware64/n/tin-1.8.2-x86_64-2.txt +-rw-r--r-- 1 root root 523776 2009-05-23 06:40 ./slackware64/n/tin-1.8.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:40 ./slackware64/n/tin-1.8.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 508 2008-10-31 13:36 ./slackware64/n/traceroute-1.4a12-x86_64-2.txt +-rw-r--r-- 1 root root 20048 2008-10-31 13:36 ./slackware64/n/traceroute-1.4a12-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-31 13:36 ./slackware64/n/traceroute-1.4a12-x86_64-2.txz.asc +-rw-r--r-- 1 root root 290 2009-05-23 06:43 ./slackware64/n/trn-3.6-x86_64-2.txt +-rw-r--r-- 1 root root 188992 2009-05-23 06:43 ./slackware64/n/trn-3.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:43 ./slackware64/n/trn-3.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 282 2008-10-31 13:45 ./slackware64/n/uucp-1.07-x86_64-1.txt +-rw-r--r-- 1 root root 376540 2008-10-31 13:45 ./slackware64/n/uucp-1.07-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 13:45 ./slackware64/n/uucp-1.07-x86_64-1.txz.asc +-rw-r--r-- 1 root root 433 2008-10-31 13:54 ./slackware64/n/vlan-1.9-x86_64-2.txt +-rw-r--r-- 1 root root 24048 2008-10-31 13:54 ./slackware64/n/vlan-1.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-31 13:54 ./slackware64/n/vlan-1.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 496 2009-06-06 21:25 ./slackware64/n/vsftpd-2.1.2-x86_64-1.txt +-rw-r--r-- 1 root root 119856 2009-06-06 21:25 ./slackware64/n/vsftpd-2.1.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-06 21:25 ./slackware64/n/vsftpd-2.1.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 398 2008-10-07 17:50 ./slackware64/n/wget-1.11.4-x86_64-1.txt +-rw-r--r-- 1 root root 379692 2008-10-07 17:50 ./slackware64/n/wget-1.11.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-07 17:50 ./slackware64/n/wget-1.11.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 385 2008-10-14 18:24 ./slackware64/n/whois-4.7.26-x86_64-1.txt +-rw-r--r-- 1 root root 37112 2008-10-14 18:24 ./slackware64/n/whois-4.7.26-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-14 18:24 ./slackware64/n/whois-4.7.26-x86_64-1.txz.asc +-rw-r--r-- 1 root root 682 2009-04-28 17:32 ./slackware64/n/wireless-tools-29-x86_64-5.txt +-rw-r--r-- 1 root root 129932 2009-04-28 17:32 ./slackware64/n/wireless-tools-29-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-04-28 17:32 ./slackware64/n/wireless-tools-29-x86_64-5.txz.asc +-rw-r--r-- 1 root root 603 2009-05-23 06:44 ./slackware64/n/wpa_supplicant-0.6.9-x86_64-2.txt +-rw-r--r-- 1 root root 326344 2009-05-23 06:44 ./slackware64/n/wpa_supplicant-0.6.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:44 ./slackware64/n/wpa_supplicant-0.6.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 407 2008-10-31 14:00 ./slackware64/n/yptools-2.9-x86_64-1.txt +-rw-r--r-- 1 root root 161816 2008-10-31 14:00 ./slackware64/n/yptools-2.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-31 14:00 ./slackware64/n/yptools-2.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 289 2009-05-23 06:55 ./slackware64/n/ytalk-3.3.0-x86_64-2.txt +-rw-r--r-- 1 root root 49704 2009-05-23 06:55 ./slackware64/n/ytalk-3.3.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:55 ./slackware64/n/ytalk-3.3.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 651 2008-11-04 11:50 ./slackware64/n/zd1211-firmware-1.4-fw-1.txt +-rw-r--r-- 1 root root 33896 2008-11-04 11:50 ./slackware64/n/zd1211-firmware-1.4-fw-1.txz +-rw-r--r-- 1 root root 197 2008-11-04 11:50 ./slackware64/n/zd1211-firmware-1.4-fw-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-08-13 01:18 ./slackware64/t +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/t/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/t/install.end +-rw-r--r-- 1 root root 1157 2009-04-30 20:01 ./slackware64/t/maketag +-rw-r--r-- 1 root root 1157 2009-04-30 20:01 ./slackware64/t/maketag.ez +-rw-r--r-- 1 root root 46 2009-04-30 20:01 ./slackware64/t/tagfile +-rw-r--r-- 1 root root 338 2009-06-09 20:01 ./slackware64/t/tetex-3.0-x86_64-6.txt +-rw-r--r-- 1 root root 36557048 2009-06-09 20:01 ./slackware64/t/tetex-3.0-x86_64-6.txz +-rw-r--r-- 1 root root 197 2009-06-09 20:01 ./slackware64/t/tetex-3.0-x86_64-6.txz.asc +-rw-r--r-- 1 root root 524 2009-06-09 20:02 ./slackware64/t/tetex-doc-3.0-x86_64-6.txt +-rw-r--r-- 1 root root 43928904 2009-06-09 20:02 ./slackware64/t/tetex-doc-3.0-x86_64-6.txz +-rw-r--r-- 1 root root 197 2009-06-09 20:02 ./slackware64/t/tetex-doc-3.0-x86_64-6.txz.asc +-rw-r--r-- 1 root root 444 2009-03-16 21:31 ./slackware64/t/transfig-3.2.4-x86_64-2.txt +-rw-r--r-- 1 root root 208876 2009-03-16 21:31 ./slackware64/t/transfig-3.2.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-03-16 21:31 ./slackware64/t/transfig-3.2.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 431 2009-03-16 21:44 ./slackware64/t/xfig-3.2.4-x86_64-3.txt +-rw-r--r-- 1 root root 3022232 2009-03-16 21:44 ./slackware64/t/xfig-3.2.4-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-03-16 21:44 ./slackware64/t/xfig-3.2.4-x86_64-3.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-19 20:55 ./slackware64/tcl +-rw-r--r-- 1 root root 533 2009-05-12 20:41 ./slackware64/tcl/expect-5.44.1.11-x86_64-3.txt +-rw-r--r-- 1 root root 301320 2009-05-12 20:41 ./slackware64/tcl/expect-5.44.1.11-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-05-12 20:41 ./slackware64/tcl/expect-5.44.1.11-x86_64-3.txz.asc +-rw-r--r-- 1 root root 469 2008-11-06 11:59 ./slackware64/tcl/hfsutils-3.2.6-x86_64-4.txt +-rw-r--r-- 1 root root 140068 2008-11-06 11:59 ./slackware64/tcl/hfsutils-3.2.6-x86_64-4.txz +-rw-r--r-- 1 root root 197 2008-11-06 11:59 ./slackware64/tcl/hfsutils-3.2.6-x86_64-4.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/tcl/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/tcl/install.end +-rw-r--r-- 1 root root 1285 2009-04-30 20:01 ./slackware64/tcl/maketag +-rw-r--r-- 1 root root 1285 2009-04-30 20:01 ./slackware64/tcl/maketag.ez +-rw-r--r-- 1 root root 56 2009-04-30 20:01 ./slackware64/tcl/tagfile +-rw-r--r-- 1 root root 259 2009-04-29 19:40 ./slackware64/tcl/tcl-8.5.7-x86_64-1.txt +-rw-r--r-- 1 root root 1703356 2009-04-29 19:40 ./slackware64/tcl/tcl-8.5.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-29 19:40 ./slackware64/tcl/tcl-8.5.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 555 2008-11-04 11:21 ./slackware64/tcl/tclx-8.4-x86_64-2.txt +-rw-r--r-- 1 root root 112680 2008-11-04 11:21 ./slackware64/tcl/tclx-8.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-04 11:21 ./slackware64/tcl/tclx-8.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 406 2008-12-13 18:46 ./slackware64/tcl/tix-8.4.3-x86_64-1.txt +-rw-r--r-- 1 root root 536384 2008-12-13 18:46 ./slackware64/tcl/tix-8.4.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-12-13 18:46 ./slackware64/tcl/tix-8.4.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 198 2009-04-29 19:43 ./slackware64/tcl/tk-8.5.7-x86_64-1.txt +-rw-r--r-- 1 root root 1648848 2009-04-29 19:43 ./slackware64/tcl/tk-8.5.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-29 19:43 ./slackware64/tcl/tk-8.5.7-x86_64-1.txz.asc +drwxr-xr-x 2 root root 77824 2009-08-21 04:04 ./slackware64/x +-rw-r--r-- 1 root root 258 2008-11-05 12:50 ./slackware64/x/anthy-9100e-x86_64-1.txt +-rw-r--r-- 1 root root 4869552 2008-11-05 12:50 ./slackware64/x/anthy-9100e-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-05 12:50 ./slackware64/x/anthy-9100e-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:36 ./slackware64/x/appres-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 5028 2009-06-03 05:36 ./slackware64/x/appres-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/appres-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:36 ./slackware64/x/bdftopcf-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 5044 2009-06-03 05:36 ./slackware64/x/bdftopcf-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/bdftopcf-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:36 ./slackware64/x/beforelight-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 5568 2009-06-03 05:36 ./slackware64/x/beforelight-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/beforelight-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:25 ./slackware64/x/bigreqsproto-1.0.2-noarch-2.txt +-rw-r--r-- 1 root root 1804 2009-06-03 05:25 ./slackware64/x/bigreqsproto-1.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/bigreqsproto-1.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:36 ./slackware64/x/bitmap-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 47404 2009-06-03 05:36 ./slackware64/x/bitmap-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/bitmap-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:37 ./slackware64/x/compiz-0.7.8-x86_64-4.txt +-rw-r--r-- 1 root root 410788 2009-06-03 05:37 ./slackware64/x/compiz-0.7.8-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:37 ./slackware64/x/compiz-0.7.8-x86_64-4.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:25 ./slackware64/x/compositeproto-0.4-noarch-2.txt +-rw-r--r-- 1 root root 6828 2009-06-03 05:25 ./slackware64/x/compositeproto-0.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/compositeproto-0.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:25 ./slackware64/x/damageproto-1.1.0-noarch-2.txt +-rw-r--r-- 1 root root 5240 2009-06-03 05:25 ./slackware64/x/damageproto-1.1.0-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/damageproto-1.1.0-noarch-2.txz.asc +-rw-r--r-- 1 root root 536 2009-04-11 20:19 ./slackware64/x/dejavu-fonts-ttf-2.29-noarch-1.txt +-rw-r--r-- 1 root root 2045904 2009-04-11 20:19 ./slackware64/x/dejavu-fonts-ttf-2.29-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-04-11 20:19 ./slackware64/x/dejavu-fonts-ttf-2.29-noarch-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:25 ./slackware64/x/dmxproto-2.2.2-noarch-2.txt +-rw-r--r-- 1 root root 4132 2009-06-03 05:25 ./slackware64/x/dmxproto-2.2.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/dmxproto-2.2.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 309 2009-07-16 22:27 ./slackware64/x/dri2proto-2.1-x86_64-1.txt +-rw-r--r-- 1 root root 2396 2009-07-16 22:27 ./slackware64/x/dri2proto-2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:27 ./slackware64/x/dri2proto-2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:38 ./slackware64/x/editres-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 34480 2009-06-03 05:38 ./slackware64/x/editres-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/editres-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:55 ./slackware64/x/encodings-1.0.2-noarch-2.txt +-rw-r--r-- 1 root root 570668 2009-06-03 05:55 ./slackware64/x/encodings-1.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:55 ./slackware64/x/encodings-1.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:25 ./slackware64/x/evieext-1.0.2-noarch-2.txt +-rw-r--r-- 1 root root 2328 2009-06-03 05:25 ./slackware64/x/evieext-1.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/evieext-1.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/fixesproto-4.0-noarch-2.txt +-rw-r--r-- 1 root root 3536 2009-06-03 05:25 ./slackware64/x/fixesproto-4.0-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/fixesproto-4.0-noarch-2.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:56 ./slackware64/x/font-adobe-100dpi-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 6179928 2009-06-03 05:56 ./slackware64/x/font-adobe-100dpi-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:56 ./slackware64/x/font-adobe-100dpi-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:56 ./slackware64/x/font-adobe-75dpi-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 5467284 2009-06-03 05:56 ./slackware64/x/font-adobe-75dpi-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:56 ./slackware64/x/font-adobe-75dpi-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 504 2009-06-03 05:56 ./slackware64/x/font-adobe-utopia-100dpi-1.0.1-noarch-3.txt +-rw-r--r-- 1 root root 1461380 2009-06-03 05:56 ./slackware64/x/font-adobe-utopia-100dpi-1.0.1-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:56 ./slackware64/x/font-adobe-utopia-100dpi-1.0.1-noarch-3.txz.asc +-rw-r--r-- 1 root root 491 2009-06-03 05:57 ./slackware64/x/font-adobe-utopia-75dpi-1.0.1-noarch-3.txt +-rw-r--r-- 1 root root 1214572 2009-06-03 05:57 ./slackware64/x/font-adobe-utopia-75dpi-1.0.1-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:57 ./slackware64/x/font-adobe-utopia-75dpi-1.0.1-noarch-3.txz.asc +-rw-r--r-- 1 root root 491 2009-06-03 05:57 ./slackware64/x/font-adobe-utopia-type1-1.0.1-noarch-3.txt +-rw-r--r-- 1 root root 166912 2009-06-03 05:57 ./slackware64/x/font-adobe-utopia-type1-1.0.1-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:57 ./slackware64/x/font-adobe-utopia-type1-1.0.1-noarch-3.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:57 ./slackware64/x/font-alias-1.0.1-noarch-2.txt +-rw-r--r-- 1 root root 2656 2009-06-03 05:57 ./slackware64/x/font-alias-1.0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:57 ./slackware64/x/font-alias-1.0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:57 ./slackware64/x/font-arabic-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 14108 2009-06-03 05:57 ./slackware64/x/font-arabic-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:57 ./slackware64/x/font-arabic-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:57 ./slackware64/x/font-bh-100dpi-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 3778212 2009-06-03 05:57 ./slackware64/x/font-bh-100dpi-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:57 ./slackware64/x/font-bh-100dpi-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:57 ./slackware64/x/font-bh-75dpi-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 3243672 2009-06-03 05:57 ./slackware64/x/font-bh-75dpi-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:57 ./slackware64/x/font-bh-75dpi-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 595 2009-06-03 05:58 ./slackware64/x/font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 852164 2009-06-03 05:58 ./slackware64/x/font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 582 2009-06-03 05:58 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 743200 2009-06-03 05:58 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:58 ./slackware64/x/font-bh-ttf-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 276072 2009-06-03 05:58 ./slackware64/x/font-bh-ttf-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-bh-ttf-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:58 ./slackware64/x/font-bh-type1-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 529980 2009-06-03 05:58 ./slackware64/x/font-bh-type1-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-bh-type1-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 465 2009-06-03 05:58 ./slackware64/x/font-bitstream-100dpi-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 161336 2009-06-03 05:58 ./slackware64/x/font-bitstream-100dpi-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-bitstream-100dpi-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 452 2009-06-03 05:58 ./slackware64/x/font-bitstream-75dpi-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 141068 2009-06-03 05:58 ./slackware64/x/font-bitstream-75dpi-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-bitstream-75dpi-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 465 2009-06-03 05:58 ./slackware64/x/font-bitstream-speedo-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 239452 2009-06-03 05:58 ./slackware64/x/font-bitstream-speedo-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-bitstream-speedo-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 452 2009-06-03 05:58 ./slackware64/x/font-bitstream-type1-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 300696 2009-06-03 05:58 ./slackware64/x/font-bitstream-type1-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-bitstream-type1-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 452 2009-06-03 05:58 ./slackware64/x/font-cronyx-cyrillic-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 303200 2009-06-03 05:58 ./slackware64/x/font-cronyx-cyrillic-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-cronyx-cyrillic-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:58 ./slackware64/x/font-cursor-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 6200 2009-06-03 05:58 ./slackware64/x/font-cursor-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-cursor-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:58 ./slackware64/x/font-daewoo-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 661760 2009-06-03 05:58 ./slackware64/x/font-daewoo-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-daewoo-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:58 ./slackware64/x/font-dec-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 4284 2009-06-03 05:58 ./slackware64/x/font-dec-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-dec-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:58 ./slackware64/x/font-ibm-type1-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 279916 2009-06-03 05:58 ./slackware64/x/font-ibm-type1-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-ibm-type1-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:58 ./slackware64/x/font-isas-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 798336 2009-06-03 05:58 ./slackware64/x/font-isas-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-isas-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:58 ./slackware64/x/font-jis-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 537344 2009-06-03 05:58 ./slackware64/x/font-jis-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-jis-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 387 2009-06-03 05:58 ./slackware64/x/font-micro-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 2632 2009-06-03 05:58 ./slackware64/x/font-micro-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:58 ./slackware64/x/font-micro-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:59 ./slackware64/x/font-misc-cyrillic-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 66932 2009-06-03 05:59 ./slackware64/x/font-misc-cyrillic-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-misc-cyrillic-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:59 ./slackware64/x/font-misc-ethiopic-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 128860 2009-06-03 05:59 ./slackware64/x/font-misc-ethiopic-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-misc-ethiopic-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:59 ./slackware64/x/font-misc-meltho-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 737260 2009-06-03 05:59 ./slackware64/x/font-misc-meltho-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-misc-meltho-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:59 ./slackware64/x/font-misc-misc-1.0.0-noarch-4.txt +-rw-r--r-- 1 root root 3479852 2009-06-03 05:59 ./slackware64/x/font-misc-misc-1.0.0-noarch-4.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-misc-misc-1.0.0-noarch-4.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:59 ./slackware64/x/font-mutt-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 209208 2009-06-03 05:59 ./slackware64/x/font-mutt-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-mutt-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 452 2009-06-03 05:59 ./slackware64/x/font-schumacher-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 154656 2009-06-03 05:59 ./slackware64/x/font-schumacher-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-schumacher-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 452 2009-06-03 05:59 ./slackware64/x/font-screen-cyrillic-1.0.1-noarch-3.txt +-rw-r--r-- 1 root root 10136 2009-06-03 05:59 ./slackware64/x/font-screen-cyrillic-1.0.1-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-screen-cyrillic-1.0.1-noarch-3.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:59 ./slackware64/x/font-sony-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 20868 2009-06-03 05:59 ./slackware64/x/font-sony-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-sony-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:59 ./slackware64/x/font-sun-misc-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 26820 2009-06-03 05:59 ./slackware64/x/font-sun-misc-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-sun-misc-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:59 ./slackware64/x/font-util-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 22324 2009-06-03 05:59 ./slackware64/x/font-util-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-util-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 478 2009-06-03 05:59 ./slackware64/x/font-winitzki-cyrillic-1.0.0-noarch-3.txt +-rw-r--r-- 1 root root 5784 2009-06-03 05:59 ./slackware64/x/font-winitzki-cyrillic-1.0.0-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-winitzki-cyrillic-1.0.0-noarch-3.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:59 ./slackware64/x/font-xfree86-type1-1.0.1-noarch-2.txt +-rw-r--r-- 1 root root 28372 2009-06-03 05:59 ./slackware64/x/font-xfree86-type1-1.0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:59 ./slackware64/x/font-xfree86-type1-1.0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:25 ./slackware64/x/fontcacheproto-0.1.2-noarch-2.txt +-rw-r--r-- 1 root root 2676 2009-06-03 05:25 ./slackware64/x/fontcacheproto-0.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/fontcacheproto-0.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 348 2008-10-14 20:47 ./slackware64/x/fontconfig-2.6.0-x86_64-2.txt +-rw-r--r-- 1 root root 240284 2008-10-14 20:47 ./slackware64/x/fontconfig-2.6.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-10-14 20:47 ./slackware64/x/fontconfig-2.6.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/fontsproto-2.0.2-noarch-2.txt +-rw-r--r-- 1 root root 9328 2009-06-03 05:25 ./slackware64/x/fontsproto-2.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/fontsproto-2.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:38 ./slackware64/x/fonttosfnt-1.0.4-x86_64-1.txt +-rw-r--r-- 1 root root 16584 2009-06-03 05:38 ./slackware64/x/fonttosfnt-1.0.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/fonttosfnt-1.0.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:38 ./slackware64/x/fslsfonts-1.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 7476 2009-06-03 05:38 ./slackware64/x/fslsfonts-1.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/fslsfonts-1.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:38 ./slackware64/x/fstobdf-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 6916 2009-06-03 05:38 ./slackware64/x/fstobdf-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/fstobdf-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:26 ./slackware64/x/gccmakedep-1.0.2-noarch-2.txt +-rw-r--r-- 1 root root 3016 2009-06-03 05:26 ./slackware64/x/gccmakedep-1.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/gccmakedep-1.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 385 2009-08-04 00:34 ./slackware64/x/glew-1.5.1-x86_64-1.txt +-rw-r--r-- 1 root root 221688 2009-08-04 00:34 ./slackware64/x/glew-1.5.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:34 ./slackware64/x/glew-1.5.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:25 ./slackware64/x/glproto-1.4.10-noarch-1.txt +-rw-r--r-- 1 root root 17212 2009-06-03 05:25 ./slackware64/x/glproto-1.4.10-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/glproto-1.4.10-noarch-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:38 ./slackware64/x/iceauth-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 12140 2009-06-03 05:38 ./slackware64/x/iceauth-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/iceauth-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:38 ./slackware64/x/ico-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 12316 2009-06-03 05:38 ./slackware64/x/ico-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/ico-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:26 ./slackware64/x/imake-1.0.2-x86_64-3.txt +-rw-r--r-- 1 root root 27928 2009-06-03 05:26 ./slackware64/x/imake-1.0.2-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/imake-1.0.2-x86_64-3.txz.asc +-rw-r--r-- 1 root root 322 2009-07-16 22:27 ./slackware64/x/inputproto-1.5.1-noarch-1.txt +-rw-r--r-- 1 root root 12456 2009-07-16 22:27 ./slackware64/x/inputproto-1.5.1-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:27 ./slackware64/x/inputproto-1.5.1-noarch-1.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/x/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/x/install.end +-rw-r--r-- 1 root root 420 2009-06-03 05:38 ./slackware64/x/intel-gpu-tools-1.0.1-x86_64-1.txt +-rw-r--r-- 1 root root 29568 2009-06-03 05:38 ./slackware64/x/intel-gpu-tools-1.0.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/intel-gpu-tools-1.0.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:25 ./slackware64/x/kbproto-1.0.3-noarch-2.txt +-rw-r--r-- 1 root root 22192 2009-06-03 05:25 ./slackware64/x/kbproto-1.0.3-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/kbproto-1.0.3-noarch-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:38 ./slackware64/x/lbxproxy-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 72016 2009-06-03 05:38 ./slackware64/x/lbxproxy-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/lbxproxy-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-07-16 22:27 ./slackware64/x/libFS-1.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 23296 2009-07-16 22:27 ./slackware64/x/libFS-1.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:27 ./slackware64/x/libFS-1.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-08-04 00:34 ./slackware64/x/libICE-1.0.5-x86_64-2.txt +-rw-r--r-- 1 root root 42520 2009-08-04 00:34 ./slackware64/x/libICE-1.0.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:34 ./slackware64/x/libICE-1.0.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:28 ./slackware64/x/libSM-1.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 18640 2009-06-03 05:28 ./slackware64/x/libSM-1.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:28 ./slackware64/x/libSM-1.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-08-04 00:35 ./slackware64/x/libX11-1.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 1599136 2009-08-04 00:35 ./slackware64/x/libX11-1.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/libX11-1.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:29 ./slackware64/x/libXScrnSaver-1.1.3-x86_64-2.txt +-rw-r--r-- 1 root root 10652 2009-06-03 05:29 ./slackware64/x/libXScrnSaver-1.1.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:29 ./slackware64/x/libXScrnSaver-1.1.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:30 ./slackware64/x/libXTrap-1.0.0-x86_64-2.txt +-rw-r--r-- 1 root root 13612 2009-06-03 05:30 ./slackware64/x/libXTrap-1.0.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:30 ./slackware64/x/libXTrap-1.0.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:30 ./slackware64/x/libXau-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 9044 2009-06-03 05:30 ./slackware64/x/libXau-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:30 ./slackware64/x/libXau-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-07-16 22:28 ./slackware64/x/libXaw-1.0.6-x86_64-1.txt +-rw-r--r-- 1 root root 247384 2009-07-16 22:28 ./slackware64/x/libXaw-1.0.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:28 ./slackware64/x/libXaw-1.0.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:30 ./slackware64/x/libXcomposite-0.4.0-x86_64-2.txt +-rw-r--r-- 1 root root 9024 2009-06-03 05:30 ./slackware64/x/libXcomposite-0.4.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:30 ./slackware64/x/libXcomposite-0.4.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:31 ./slackware64/x/libXcursor-1.1.9-x86_64-2.txt +-rw-r--r-- 1 root root 25596 2009-06-03 05:31 ./slackware64/x/libXcursor-1.1.9-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXcursor-1.1.9-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:31 ./slackware64/x/libXdamage-1.1.1-x86_64-2.txt +-rw-r--r-- 1 root root 5400 2009-06-03 05:31 ./slackware64/x/libXdamage-1.1.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXdamage-1.1.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 9884 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXdmcp-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 5852 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXevie-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txt +-rw-r--r-- 1 root root 71068 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXext-1.0.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 10712 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:31 ./slackware64/x/libXfixes-4.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 117940 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXfont-1.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 5636 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXfontcache-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txt +-rw-r--r-- 1 root root 45100 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXft-2.1.13-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 60916 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXi-1.2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 6396 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXinerama-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 53032 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:32 ./slackware64/x/libXmu-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txt +-rw-r--r-- 1 root root 77220 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXp-1.0.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txt +-rw-r--r-- 1 root root 46672 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXpm-3.5.7-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7672 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXprintAppUtil-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 15644 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXprintUtil-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 20872 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXrandr-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txt +-rw-r--r-- 1 root root 17612 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXrender-0.9.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 6436 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:33 ./slackware64/x/libXres-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txt +-rw-r--r-- 1 root root 418692 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:28 ./slackware64/x/libXt-1.0.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 12320 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXtst-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 26028 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXv-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 11224 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:34 ./slackware64/x/libXvMC-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 14092 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86dga-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7904 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86misc-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 11748 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libXxf86vm-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 30944 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libdmx-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 260 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txt +-rw-r--r-- 1 root root 89912 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:30 ./slackware64/x/libdrm-2.4.12-x86_64-1.txz.asc +-rw-r--r-- 1 root root 581 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txt +-rw-r--r-- 1 root root 683360 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 15:32 ./slackware64/x/liberation-fonts-ttf-1.04-noarch-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 12980 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libfontenc-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 381 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txt +-rw-r--r-- 1 root root 1857876 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-05 14:32 ./slackware64/x/libhangul-0.0.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 14760 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/liblbxutil-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txt +-rw-r--r-- 1 root root 13408 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libpciaccess-0.10.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txt +-rw-r--r-- 1 root root 1844 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:35 ./slackware64/x/libpthread-stubs-0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 446 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txt +-rw-r--r-- 1 root root 217132 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/libxcb-1.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txt +-rw-r--r-- 1 root root 64492 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/libxkbfile-1.0.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 8080 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:36 ./slackware64/x/libxkbui-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 6272 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/listres-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 6580 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/lndir-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 18164 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/luit-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 416 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txt +-rw-r--r-- 1 root root 2163616 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-20 14:11 ./slackware64/x/m17n-lib-1.5.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 17904 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/makedepend-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 24094 2009-08-04 17:39 ./slackware64/x/maketag +-rw-r--r-- 1 root root 24094 2009-08-04 17:39 ./slackware64/x/maketag.ez +-rw-r--r-- 1 root root 335 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txt +-rw-r--r-- 1 root root 4099312 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:32 ./slackware64/x/mesa-7.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txt +-rw-r--r-- 1 root root 3800 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkcomposecache-1.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txt +-rw-r--r-- 1 root root 4136 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkfontdir-1.0.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txt +-rw-r--r-- 1 root root 14996 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/mkfontscale-1.0.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 9056 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/oclock-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 337 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txt +-rw-r--r-- 1 root root 123344 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/pixman-0.15.18-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txt +-rw-r--r-- 1 root root 8176 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/printproto-1.0.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 15644 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/proxymngr-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txt +-rw-r--r-- 1 root root 23408 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/randrproto-1.3.0-noarch-1.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txt +-rw-r--r-- 1 root root 3956 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/recordproto-1.13.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txt +-rw-r--r-- 1 root root 18748 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:38 ./slackware64/x/rendercheck-1.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txt +-rw-r--r-- 1 root root 15320 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/renderproto-0.11-noarch-1.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txt +-rw-r--r-- 1 root root 1448 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/resourceproto-1.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 7676 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/rgb-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 16596 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:52 ./slackware64/x/rstart-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 403 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txt +-rw-r--r-- 1 root root 5974804 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 16:24 ./slackware64/x/sazanami-fonts-ttf-20040629-noarch-1.txz.asc +-rw-r--r-- 1 root root 330 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txt +-rw-r--r-- 1 root root 1055072 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:28 ./slackware64/x/scim-1.4.9-x86_64-4.txz.asc +-rw-r--r-- 1 root root 508 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txt +-rw-r--r-- 1 root root 250080 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:43 ./slackware64/x/scim-anthy-1.2.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 505 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txt +-rw-r--r-- 1 root root 115348 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:46 ./slackware64/x/scim-bridge-0.4.16-x86_64-4.txz.asc +-rw-r--r-- 1 root root 611 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txt +-rw-r--r-- 1 root root 44956 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:52 ./slackware64/x/scim-hangul-0.3.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 356 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txt +-rw-r--r-- 1 root root 69624 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:53 ./slackware64/x/scim-input-pad-0.1.2-x86_64-4.txz.asc +-rw-r--r-- 1 root root 402 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txt +-rw-r--r-- 1 root root 32356 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-04-20 14:18 ./slackware64/x/scim-m17n-0.2.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 386 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txt +-rw-r--r-- 1 root root 1670432 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:55 ./slackware64/x/scim-pinyin-0.5.91-x86_64-2.txz.asc +-rw-r--r-- 1 root root 289 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txt +-rw-r--r-- 1 root root 3977628 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:56 ./slackware64/x/scim-tables-0.5.9-x86_64-3.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txt +-rw-r--r-- 1 root root 6628 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/scripts-1.0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txt +-rw-r--r-- 1 root root 3344 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/scrnsaverproto-1.1.0-noarch-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txt +-rw-r--r-- 1 root root 6516 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/sessreg-1.0.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 309 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 10400 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/setxkbmap-1.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 6660 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/showfont-1.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 473 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txt +-rw-r--r-- 1 root root 67728 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 18:22 ./slackware64/x/sinhala_lklug-font-ttf-20060929-noarch-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 10800 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/smproxy-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 4874 2009-08-04 17:39 ./slackware64/x/tagfile +-rw-r--r-- 1 root root 561 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txt +-rw-r--r-- 1 root root 860064 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 18:23 ./slackware64/x/tibmachuni-font-ttf-1.901-noarch-1.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txt +-rw-r--r-- 1 root root 12824 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/trapproto-3.4.3-noarch-2.txz.asc +-rw-r--r-- 1 root root 621 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txt +-rw-r--r-- 1 root root 2183528 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 18:24 ./slackware64/x/ttf-indic-fonts-0.4.7.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 93544 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/twm-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txt +-rw-r--r-- 1 root root 5852 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:27 ./slackware64/x/util-macros-1.2.2-noarch-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txt +-rw-r--r-- 1 root root 6984 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/videoproto-2.2.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txt +-rw-r--r-- 1 root root 12932 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/viewres-1.0.1-x86_64-3.txz.asc +-rw-r--r-- 1 root root 686 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txt +-rw-r--r-- 1 root root 5752036 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-04-20 19:13 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz.asc +-rw-r--r-- 1 root root 607 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txt +-rw-r--r-- 1 root root 12176 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-08 20:29 ./slackware64/x/x11-skel-7.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txt +-rw-r--r-- 1 root root 55076 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/x11perf-1.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 19740 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xauth-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 519 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txt +-rw-r--r-- 1 root root 166100 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-04 22:19 ./slackware64/x/xaw3d-1.5E-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txt +-rw-r--r-- 1 root root 5360 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xbacklight-1.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 9536 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xbiff-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txt +-rw-r--r-- 1 root root 18084 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xbitmaps-1.0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 20380 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcalc-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txt +-rw-r--r-- 1 root root 45456 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xcb-proto-1.5-noarch-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txt +-rw-r--r-- 1 root root 44636 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xcb-util-0.3.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 14112 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xclipboard-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 20296 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xclock-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txt +-rw-r--r-- 1 root root 1928 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xcmiscproto-1.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 13724 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcmsdb-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txt +-rw-r--r-- 1 root root 15212 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:39 ./slackware64/x/xcompmgr-1.1.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 8736 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xconsole-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txt +-rw-r--r-- 1 root root 293464 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xcursor-themes-1.0.1-noarch-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 6632 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xcursorgen-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 8492 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdbedizzy-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 550 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txt +-rw-r--r-- 1 root root 42388 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-02-03 19:45 ./slackware64/x/xdg-utils-1.0.2-noarch-3.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 21056 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xditview-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txt +-rw-r--r-- 1 root root 97808 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdm-1.1.8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txt +-rw-r--r-- 1 root root 15544 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdpyinfo-1.0.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 3892 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xdriinfo-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txt +-rw-r--r-- 1 root root 282684 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xedit-1.1.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 10480 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xev-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txt +-rw-r--r-- 1 root root 31640 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xextproto-7.0.5-noarch-1.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7188 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:40 ./slackware64/x/xeyes-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 9472 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-acecad-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txt +-rw-r--r-- 1 root root 13680 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-aiptek-1.2.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 23828 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xf86-input-citron-2.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 478 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txt +-rw-r--r-- 1 root root 9236 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-elographics-1.2.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txt +-rw-r--r-- 1 root root 18612 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-21 03:15 ./slackware64/x/xf86-input-evdev-2.2.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 7800 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-fpit-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 8452 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-hyperpen-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 38372 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:45 ./slackware64/x/xf86-input-joystick-1.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 12080 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-keyboard-1.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 24608 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-mouse-1.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txt +-rw-r--r-- 1 root root 9072 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-mutouch-1.2.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txt +-rw-r--r-- 1 root root 7344 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:46 ./slackware64/x/xf86-input-penmount-1.4.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 452 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txt +-rw-r--r-- 1 root root 53688 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-input-synaptics-1.1.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txt +-rw-r--r-- 1 root root 11292 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-input-vmmouse-12.6.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txt +-rw-r--r-- 1 root root 4108 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-input-void-1.2.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 50348 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-video-apm-1.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txt +-rw-r--r-- 1 root root 9412 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:47 ./slackware64/x/xf86-video-ark-0.7.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txt +-rw-r--r-- 1 root root 21168 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:35 ./slackware64/x/xf86-video-ast-0.89.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txt +-rw-r--r-- 1 root root 235436 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:31 ./slackware64/x/xf86-video-ati-6.12.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 58656 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:48 ./slackware64/x/xf86-video-chips-1.2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 28780 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-cirrus-1.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 7004 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:31 ./slackware64/x/xf86-video-dummy-0.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 77132 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-glint-1.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txt +-rw-r--r-- 1 root root 22124 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-i128-1.3.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 20844 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:36 ./slackware64/x/xf86-video-i740-1.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txt +-rw-r--r-- 1 root root 239016 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-intel-2.8.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txt +-rw-r--r-- 1 root root 70800 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-mach64-6.8.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txt +-rw-r--r-- 1 root root 74336 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-mga-1.4.11-x86_64-1.txz.asc +-rw-r--r-- 1 root root 439 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txt +-rw-r--r-- 1 root root 29836 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-neomagic-1.2.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 15988 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:51 ./slackware64/x/xf86-video-newport-0.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txt +-rw-r--r-- 1 root root 70340 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-nv-2.1.14-x86_64-1.txz.asc +-rw-r--r-- 1 root root 465 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txt +-rw-r--r-- 1 root root 120584 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:52 ./slackware64/x/xf86-video-openchrome-0.2.903-x86_64-2.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txt +-rw-r--r-- 1 root root 43168 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:37 ./slackware64/x/xf86-video-r128-6.8.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 485 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txt +-rw-r--r-- 1 root root 180840 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:52 ./slackware64/x/xf86-video-radeonhd-1.2.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 452 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 35940 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-rendition-4.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 361 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 29404 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-s3-0.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txt +-rw-r--r-- 1 root root 32672 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-s3virge-1.10.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txt +-rw-r--r-- 1 root root 60368 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-savage-2.3.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 504 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txt +-rw-r--r-- 1 root root 47860 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:34 ./slackware64/x/xf86-video-siliconmotion-1.7.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txt +-rw-r--r-- 1 root root 232268 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-sis-0.10.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txt +-rw-r--r-- 1 root root 35096 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-sisusb-0.9.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txt +-rw-r--r-- 1 root root 30684 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-tdfx-1.4.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txt +-rw-r--r-- 1 root root 22740 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:54 ./slackware64/x/xf86-video-tga-1.2.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 59696 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:35 ./slackware64/x/xf86-video-trident-1.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txt +-rw-r--r-- 1 root root 21792 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-07-16 22:35 ./slackware64/x/xf86-video-tseng-1.2.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 374 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txt +-rw-r--r-- 1 root root 8580 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:54 ./slackware64/x/xf86-video-v4l-0.2.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 387 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txt +-rw-r--r-- 1 root root 11952 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-vesa-2.2.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txt +-rw-r--r-- 1 root root 20968 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:55 ./slackware64/x/xf86-video-vmware-10.16.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 413 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txt +-rw-r--r-- 1 root root 13332 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xf86-video-voodoo-1.2.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txt +-rw-r--r-- 1 root root 1948 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86bigfontproto-1.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 4784 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xf86dga-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txt +-rw-r--r-- 1 root root 4408 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86dgaproto-2.0.3-noarch-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txt +-rw-r--r-- 1 root root 3256 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86driproto-2.0.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txt +-rw-r--r-- 1 root root 2860 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86miscproto-0.9.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txt +-rw-r--r-- 1 root root 2148 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86rushproto-1.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txt +-rw-r--r-- 1 root root 4428 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xf86vidmodeproto-2.2.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 14136 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfd-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7372 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfindproxy-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 21676 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfontsel-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 55536 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:38 ./slackware64/x/xfs-1.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 4592 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfsinfo-1.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 21568 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xfwp-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 5540 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xgamma-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 23680 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xgc-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 8988 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xhost-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 361 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txt +-rw-r--r-- 1 root root 3176 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:25 ./slackware64/x/xineramaproto-1.1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 14244 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xinit-1.1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 468 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txt +-rw-r--r-- 1 root root 11296 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xinput-1.4.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 283 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txt +-rw-r--r-- 1 root root 78844 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:39 ./slackware64/x/xkbcomp-1.1.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 16852 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbevd-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 42012 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbprint-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 13912 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkbutils-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 400 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txt +-rw-r--r-- 1 root root 394820 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xkeyboard-config-1.6-noarch-1.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 7024 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:41 ./slackware64/x/xkill-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 7856 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xload-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 8868 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlogo-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 5036 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsatoms-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 322 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 5676 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsclients-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 11372 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xlsfonts-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 16192 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmag-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 32776 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xman-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 10120 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmessage-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 71004 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmh-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 283 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txt +-rw-r--r-- 1 root root 17852 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmodmap-1.0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 4936 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xmore-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 361 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txt +-rw-r--r-- 1 root root 163608 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txz +-rw-r--r-- 1 root root 197 2009-08-11 03:33 ./slackware64/x/xorg-cf-files-1.0.2-noarch-3.txz.asc +-rw-r--r-- 1 root root 309 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txt +-rw-r--r-- 1 root root 5630612 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xorg-docs-1.4-noarch-2.txz.asc +-rw-r--r-- 1 root root 698 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 1643972 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 370 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 690832 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xephyr-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 595 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 534068 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xnest-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 693 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txt +-rw-r--r-- 1 root root 621068 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xorg-server-xvfb-1.6.3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 426 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txt +-rw-r--r-- 1 root root 1276 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:44 ./slackware64/x/xorg-sgml-doctools-1.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 348 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 5424 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xplsprinters-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 29956 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xpr-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 439 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 3848 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xprehashprinterlist-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 19868 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xprop-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txt +-rw-r--r-- 1 root root 59632 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xproto-7.0.15-noarch-1.txz.asc +-rw-r--r-- 1 root root 504 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txt +-rw-r--r-- 1 root root 2008 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:26 ./slackware64/x/xproxymanagementprotocol-1.0.2-noarch-2.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txt +-rw-r--r-- 1 root root 101144 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:27 ./slackware64/x/xpyb-1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txt +-rw-r--r-- 1 root root 30304 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrandr-1.3.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txt +-rw-r--r-- 1 root root 15544 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrdb-1.0.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 6096 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:42 ./slackware64/x/xrefresh-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txt +-rw-r--r-- 1 root root 52100 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xscope-1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txt +-rw-r--r-- 1 root root 17292 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xset-1.0.4-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txt +-rw-r--r-- 1 root root 3428 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetmode-1.0.0-x86_64-2.txz.asc +-rw-r--r-- 1 root root 335 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 3908 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetpointer-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 8308 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsetroot-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 41896 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xsm-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 6512 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xstdcmap-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 308 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txt +-rw-r--r-- 1 root root 224644 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 00:02 ./slackware64/x/xterm-243-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txt +-rw-r--r-- 1 root root 37704 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txz +-rw-r--r-- 1 root root 197 2009-08-04 00:40 ./slackware64/x/xtrans-1.2.4-noarch-1.txz.asc +-rw-r--r-- 1 root root 257 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 16856 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xtrap-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 16548 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xvidtune-1.0.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 270 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txt +-rw-r--r-- 1 root root 5052 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xvinfo-1.0.2-x86_64-2.txz.asc +-rw-r--r-- 1 root root 231 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txt +-rw-r--r-- 1 root root 14344 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwd-1.0.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 296 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txt +-rw-r--r-- 1 root root 14856 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwininfo-1.0.4-x86_64-1.txz.asc +-rw-r--r-- 1 root root 244 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txt +-rw-r--r-- 1 root root 13624 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-03 05:43 ./slackware64/x/xwud-1.0.1-x86_64-2.txz.asc +drwxr-xr-x 2 root root 12288 2009-08-25 04:55 ./slackware64/xap +-rw-r--r-- 1 root root 479 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txt +-rw-r--r-- 1 root root 7493452 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-26 00:18 ./slackware64/xap/MPlayer-r29390-x86_64-1.txz.asc +-rw-r--r-- 1 root root 615 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txt +-rw-r--r-- 1 root root 849348 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-04-11 15:56 ./slackware64/xap/audacious-1.5.1-x86_64-3.txz.asc +-rw-r--r-- 1 root root 424 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txt +-rw-r--r-- 1 root root 1032960 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txz +-rw-r--r-- 1 root root 197 2008-11-30 13:00 ./slackware64/xap/audacious-plugins-1.5.1-x86_64-4.txz.asc +-rw-r--r-- 1 root root 441 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txt +-rw-r--r-- 1 root root 260988 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txz +-rw-r--r-- 1 root root 197 2008-10-25 18:05 ./slackware64/xap/blackbox-0.65.0-x86_64-4.txz.asc +-rw-r--r-- 1 root root 652 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txt +-rw-r--r-- 1 root root 2460256 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-07-01 20:32 ./slackware64/xap/electricsheep-20090306-x86_64-2.txz.asc +-rw-r--r-- 1 root root 229 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txt +-rw-r--r-- 1 root root 726900 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-29 10:30 ./slackware64/xap/fluxbox-1.1.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 337 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txt +-rw-r--r-- 1 root root 1000700 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-25 22:52 ./slackware64/xap/fvwm-2.4.20-x86_64-1.txz.asc +-rw-r--r-- 1 root root 444 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txt +-rw-r--r-- 1 root root 589988 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:36 ./slackware64/xap/gftp-2.0.19-x86_64-2.txz.asc +-rw-r--r-- 1 root root 473 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txt +-rw-r--r-- 1 root root 9795212 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:11 ./slackware64/xap/gimp-2.6.6-x86_64-2.txz.asc +-rw-r--r-- 1 root root 513 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txt +-rw-r--r-- 1 root root 514812 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-10-29 10:13 ./slackware64/xap/gkrellm-2.3.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 337 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txt +-rw-r--r-- 1 root root 853964 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:36 ./slackware64/xap/gnuchess-5.07-x86_64-4.txz.asc +-rw-r--r-- 1 root root 647 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txt +-rw-r--r-- 1 root root 1051980 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-11 00:49 ./slackware64/xap/gnuplot-4.2.5-x86_64-1.txz.asc +-rw-r--r-- 1 root root 272 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txt +-rw-r--r-- 1 root root 650192 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-04 14:14 ./slackware64/xap/gqview-2.1.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 209 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txt +-rw-r--r-- 1 root root 1926508 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 05:41 ./slackware64/xap/gucharmap-2.26.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 370 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txt +-rw-r--r-- 1 root root 183192 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-09 21:44 ./slackware64/xap/gv-3.6.7-x86_64-1.txz.asc +-rw-r--r-- 1 root root 336 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txt +-rw-r--r-- 1 root root 366732 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-10 01:22 ./slackware64/xap/gxine-0.5.903-x86_64-2.txz.asc +-rw-r--r-- 1 root root 540 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txt +-rw-r--r-- 1 root root 4313328 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-09 05:51 ./slackware64/xap/imagemagick-6.5.3_3-x86_64-1.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/xap/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/xap/install.end +-rw-r--r-- 1 root root 4073 2009-08-19 00:07 ./slackware64/xap/maketag +-rw-r--r-- 1 root root 4073 2009-08-19 00:07 ./slackware64/xap/maketag.ez +-rw-r--r-- 1 root root 527 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txt +-rw-r--r-- 1 root root 8883560 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-03 19:09 ./slackware64/xap/mozilla-firefox-3.5.2-x86_64-1.txz.asc +-rw-r--r-- 1 root root 702 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txt +-rw-r--r-- 1 root root 10010248 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-21 02:53 ./slackware64/xap/mozilla-thunderbird-2.0.0.23-x86_64-1.txz.asc +-rw-r--r-- 1 root root 267 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txt +-rw-r--r-- 1 root root 740284 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 15:38 ./slackware64/xap/pan-0.133-x86_64-1.txz.asc +-rw-r--r-- 1 root root 469 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txt +-rw-r--r-- 1 root root 6119640 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-19 18:02 ./slackware64/xap/pidgin-2.5.9-x86_64-1.txz.asc +-rw-r--r-- 1 root root 395 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txt +-rw-r--r-- 1 root root 130948 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 15:45 ./slackware64/xap/rdesktop-1.6.0-x86_64-1.txz.asc +-rw-r--r-- 1 root root 425 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txt +-rw-r--r-- 1 root root 162500 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:32 ./slackware64/xap/rxvt-2.7.10-x86_64-4.txz.asc +-rw-r--r-- 1 root root 321 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txt +-rw-r--r-- 1 root root 2413448 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:36 ./slackware64/xap/sane-1.0.19-x86_64-4.txz.asc +-rw-r--r-- 1 root root 534 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txt +-rw-r--r-- 1 root root 13176452 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-24 19:08 ./slackware64/xap/seamonkey-1.1.17-x86_64-1.txz.asc +-rw-r--r-- 1 root root 609 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txt +-rw-r--r-- 1 root root 113164 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-03-16 23:11 ./slackware64/xap/seyon-2.20c-x86_64-3.txz.asc +-rw-r--r-- 1 root root 588 2009-08-19 00:07 ./slackware64/xap/tagfile +-rw-r--r-- 1 root root 488 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txt +-rw-r--r-- 1 root root 70548 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-03-16 12:27 ./slackware64/xap/thunar-volman-0.3.80-x86_64-1.txz.asc +-rw-r--r-- 1 root root 505 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txt +-rw-r--r-- 1 root root 1450992 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-25 01:14 ./slackware64/xap/vim-gvim-7.2.245-x86_64-1.txz.asc +-rw-r--r-- 1 root root 455 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txt +-rw-r--r-- 1 root root 1783284 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-06-09 20:06 ./slackware64/xap/windowmaker-20060427cvs-x86_64-2.txz.asc +-rw-r--r-- 1 root root 308 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txt +-rw-r--r-- 1 root root 20584 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-18 23:17 ./slackware64/xap/x11-ssh-askpass-1.2.4.1-x86_64-1.txz.asc +-rw-r--r-- 1 root root 310 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txt +-rw-r--r-- 1 root root 508772 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 15:59 ./slackware64/xap/x3270-3.3.7p8-x86_64-1.txz.asc +-rw-r--r-- 1 root root 164 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txt +-rw-r--r-- 1 root root 1723072 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-09 19:34 ./slackware64/xap/xchat-2.8.6-x86_64-3.txz.asc +-rw-r--r-- 1 root root 309 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txt +-rw-r--r-- 1 root root 12328656 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-08-06 03:16 ./slackware64/xap/xfce-4.6.1-x86_64-5.txz.asc +-rw-r--r-- 1 root root 472 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txt +-rw-r--r-- 1 root root 237912 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-12 20:54 ./slackware64/xap/xfce4-power-manager-0.6.6-x86_64-1.txz.asc +-rw-r--r-- 1 root root 411 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txt +-rw-r--r-- 1 root root 837944 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 14:17 ./slackware64/xap/xfractint-20.04p09-x86_64-1.txz.asc +-rw-r--r-- 1 root root 239 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txt +-rw-r--r-- 1 root root 103428 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-08-22 21:21 ./slackware64/xap/xgames-0.3-x86_64-2.txz.asc +-rw-r--r-- 1 root root 468 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txt +-rw-r--r-- 1 root root 3579360 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txz +-rw-r--r-- 1 root root 197 2009-06-09 18:54 ./slackware64/xap/xine-lib-1.1.16.3-x86_64-5.txz.asc +-rw-r--r-- 1 root root 374 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txt +-rw-r--r-- 1 root root 1278736 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-23 06:54 ./slackware64/xap/xine-ui-0.99.5-x86_64-2.txz.asc +-rw-r--r-- 1 root root 462 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txt +-rw-r--r-- 1 root root 985268 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-08-08 01:11 ./slackware64/xap/xlockmore-5.28-x86_64-1.txz.asc +-rw-r--r-- 1 root root 379 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txt +-rw-r--r-- 1 root root 1025152 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txz +-rw-r--r-- 1 root root 197 2009-06-09 20:22 ./slackware64/xap/xmms-1.2.11-x86_64-3.txz.asc +-rw-r--r-- 1 root root 445 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txt +-rw-r--r-- 1 root root 319984 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-06 21:50 ./slackware64/xap/xpaint-2.7.8.1-x86_64-2.txz.asc +-rw-r--r-- 1 root root 256 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txt +-rw-r--r-- 1 root root 1509652 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-05-10 10:58 ./slackware64/xap/xpdf-3.02pl3-x86_64-1.txz.asc +-rw-r--r-- 1 root root 499 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txt +-rw-r--r-- 1 root root 1624816 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txz +-rw-r--r-- 1 root root 197 2008-11-06 22:11 ./slackware64/xap/xsane-0.996-x86_64-1.txz.asc +-rw-r--r-- 1 root root 424 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txt +-rw-r--r-- 1 root root 3422516 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txz +-rw-r--r-- 1 root root 197 2009-05-16 00:18 ./slackware64/xap/xscreensaver-5.08-x86_64-2.txz.asc +-rw-r--r-- 1 root root 235 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txt +-rw-r--r-- 1 root root 925876 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txz +-rw-r--r-- 1 root root 197 2008-11-06 22:31 ./slackware64/xap/xv-3.10a-x86_64-5.txz.asc +-rw-r--r-- 1 root root 418 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txt +-rw-r--r-- 1 root root 50184 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txz +-rw-r--r-- 1 root root 197 2008-11-06 22:42 ./slackware64/xap/xxgdb-1.12-x86_64-2.txz.asc +drwxr-xr-x 2 root root 4096 2009-05-23 08:11 ./slackware64/y +-rw-r--r-- 1 root root 596 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txt +-rw-r--r-- 1 root root 1754988 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txz +-rw-r--r-- 1 root root 197 2009-05-23 04:18 ./slackware64/y/bsd-games-2.13-x86_64-9.txz.asc +-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/y/install-packages +-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/y/install.end +-rw-r--r-- 1 root root 1136 2009-04-30 20:01 ./slackware64/y/maketag +-rw-r--r-- 1 root root 1136 2009-04-30 20:01 ./slackware64/y/maketag.ez +-rw-r--r-- 1 root root 14 2009-04-30 20:01 ./slackware64/y/tagfile +drwxr-xr-x 18 root root 4096 2009-08-26 15:18 ./source +-rw-r--r-- 1 root root 311441 2009-08-26 15:18 ./source/CHECKSUMS.md5 +-rw-r--r-- 1 root root 197 2009-08-26 15:18 ./source/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 434507 2009-08-26 15:17 ./source/FILE_LIST +-rw-r--r-- 1 root root 6118676 2009-08-26 15:17 ./source/MANIFEST.bz2 +drwxr-xr-x 90 root root 4096 2009-08-26 03:22 ./source/a +drwxr-xr-x 2 root root 4096 2009-08-26 03:17 ./source/a/aaa_base +-rw-r--r-- 1 root root 11004 2009-08-26 03:17 ./source/a/aaa_base/_aaa_base.tar.gz +-rwxr-xr-x 1 root root 1812 2009-08-26 03:23 ./source/a/aaa_base/aaa_base.SlackBuild +-rw-r--r-- 1 root root 786 2002-03-28 08:05 ./source/a/aaa_base/slack-desc +-rw-r--r-- 1 root root 21 2009-06-16 18:05 ./source/a/aaa_base/slackware-version +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/aaa_elflibs +-rwxr-xr-x 1 root root 2335 2009-08-22 05:48 ./source/a/aaa_elflibs/aaa_elflibs.SlackBuild +-rw-r--r-- 1 root root 1030 2004-06-14 04:14 ./source/a/aaa_elflibs/slack-desc +-rw-r--r-- 1 root root 1233 2009-03-30 07:39 ./source/a/aaa_elflibs/symlinks-to-tracked-libs +-rw-r--r-- 1 root root 170 2008-04-03 04:10 ./source/a/aaa_elflibs/tracked-files +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/aaa_terminfo +-rwxr-xr-x 1 root root 2183 2009-05-19 20:05 ./source/a/aaa_terminfo/aaa_terminfo.SlackBuild +-rw-r--r-- 1 root root 968 2007-01-02 23:40 ./source/a/aaa_terminfo/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/acl +-rwxr-xr-x 1 root root 3474 2009-05-19 20:05 ./source/a/acl/acl.SlackBuild +-rw-r--r-- 1 root root 507 2008-04-01 04:58 ./source/a/acl/acl.destdir.diff.gz +-rw-r--r-- 1 root root 154823 2008-02-11 06:35 ./source/a/acl/acl_2.2.47-1.tar.gz +-rw-r--r-- 1 root root 819 2006-02-21 04:39 ./source/a/acl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/acpid +-rw-r--r-- 1 root root 224 2004-02-05 01:54 ./source/a/acpid/acpi_handler.sh.gz +-rw-r--r-- 1 root root 23988 2008-10-29 03:57 ./source/a/acpid/acpid-1.0.8.tar.bz2 +-rwxr-xr-x 1 root root 2592 2009-05-19 20:05 ./source/a/acpid/acpid.SlackBuild +-rw-r--r-- 1 root root 399 2002-05-16 21:44 ./source/a/acpid/default.gz +-rw-r--r-- 1 root root 277 2008-11-19 23:29 ./source/a/acpid/doinst.sh.gz +-rw-r--r-- 1 root root 258 2003-08-28 06:56 ./source/a/acpid/rc.acpid.gz +-rw-r--r-- 1 root root 867 2002-05-16 21:59 ./source/a/acpid/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/apmd +-rw-r--r-- 1 root root 61686 2004-04-30 04:29 ./source/a/apmd/apmd-3.2.2.tar.bz2 +-rwxr-xr-x 1 root root 3158 2009-06-10 01:19 ./source/a/apmd/apmd.SlackBuild +-rw-r--r-- 1 root root 1009 2002-02-22 00:45 ./source/a/apmd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/attr +-rwxr-xr-x 1 root root 3521 2009-05-19 20:05 ./source/a/attr/attr.SlackBuild +-rw-r--r-- 1 root root 510 2008-04-01 04:54 ./source/a/attr/attr.destdir.diff.gz +-rw-r--r-- 1 root root 116991 2008-07-03 07:41 ./source/a/attr/attr_2.4.43-1.tar.gz +-rw-r--r-- 1 root root 88 2006-02-28 00:02 ./source/a/attr/build +-rw-r--r-- 1 root root 1011 2006-02-21 04:44 ./source/a/attr/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/bash +-rw-r--r-- 1 root root 2533934 2005-12-08 16:51 ./source/a/bash/bash-3.1.tar.gz +-rwxr-xr-x 1 root root 3185 2009-05-19 20:05 ./source/a/bash/bash.SlackBuild +-rw-r--r-- 1 root root 205 2002-08-27 00:02 ./source/a/bash/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2006-05-13 23:54 ./source/a/bash/patches +-rw-r--r-- 1 root root 1120 2005-12-21 22:49 ./source/a/bash/patches/bash31-001.gz +-rw-r--r-- 1 root root 2247 2006-01-09 17:02 ./source/a/bash/patches/bash31-002.gz +-rw-r--r-- 1 root root 762 2006-01-09 17:02 ./source/a/bash/patches/bash31-003.gz +-rw-r--r-- 1 root root 684 2006-01-09 17:02 ./source/a/bash/patches/bash31-004.gz +-rw-r--r-- 1 root root 692 2006-01-09 17:02 ./source/a/bash/patches/bash31-005.gz +-rw-r--r-- 1 root root 730 2006-02-03 20:46 ./source/a/bash/patches/bash31-006.gz +-rw-r--r-- 1 root root 1289 2006-02-03 20:46 ./source/a/bash/patches/bash31-007.gz +-rw-r--r-- 1 root root 669 2006-02-15 22:20 ./source/a/bash/patches/bash31-008.gz +-rw-r--r-- 1 root root 872 2006-02-20 13:30 ./source/a/bash/patches/bash31-009.gz +-rw-r--r-- 1 root root 914 2006-02-20 13:30 ./source/a/bash/patches/bash31-010.gz +-rw-r--r-- 1 root root 682 2006-02-27 22:45 ./source/a/bash/patches/bash31-011.gz +-rw-r--r-- 1 root root 614 2006-03-16 14:14 ./source/a/bash/patches/bash31-012.gz +-rw-r--r-- 1 root root 589 2006-03-16 14:14 ./source/a/bash/patches/bash31-013.gz +-rw-r--r-- 1 root root 1155 2006-03-16 14:14 ./source/a/bash/patches/bash31-014.gz +-rw-r--r-- 1 root root 1084 2006-03-30 14:20 ./source/a/bash/patches/bash31-015.gz +-rw-r--r-- 1 root root 696 2006-03-30 14:20 ./source/a/bash/patches/bash31-016.gz +-rw-r--r-- 1 root root 1276 2006-04-12 15:26 ./source/a/bash/patches/bash31-017.gz +-rw-r--r-- 1 root root 965 2002-03-23 21:47 ./source/a/bash/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/bin +-rw-r--r-- 1 root root 7275 1994-12-30 09:11 ./source/a/bin/banners.tar.gz +-rwxr-xr-x 1 root root 4222 2009-05-19 20:05 ./source/a/bin/bin.SlackBuild +-rw-r--r-- 1 root root 478 2004-02-24 17:32 ./source/a/bin/debianutils_2.7.dsc +-rw-r--r-- 1 root root 165590 2004-02-24 17:32 ./source/a/bin/debianutils_2.7.tar.gz +-rw-r--r-- 1 root root 27721 1999-10-07 14:42 ./source/a/bin/fbset-2.1.tar.gz +drwxr-xr-x 2 root root 4096 2006-12-23 06:28 ./source/a/bin/scripts +-rw-r--r-- 1 root root 195 2002-02-21 21:08 ./source/a/bin/scripts/diskcopy.gz +-rw-r--r-- 1 root root 595 1993-05-02 00:04 ./source/a/bin/scripts/xx.gz +-rw-r--r-- 1 root root 681 2006-12-21 20:40 ./source/a/bin/slack-desc +-rw-r--r-- 1 root root 2403 1997-06-15 20:38 ./source/a/bin/todos.tar.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/bzip2 +-rw-r--r-- 1 root root 280 2007-01-24 04:02 ./source/a/bzip2/bzip2-1.0.4.saneso.diff.gz +-rw-r--r-- 1 root root 841402 2008-03-17 23:25 ./source/a/bzip2/bzip2-1.0.5.tar.gz +-rwxr-xr-x 1 root root 3679 2009-05-19 20:05 ./source/a/bzip2/bzip2.SlackBuild +-rw-r--r-- 1 root root 934 2002-02-19 04:26 ./source/a/bzip2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/coreutils +-rw-r--r-- 1 root root 1723 2009-04-11 18:47 ./source/a/coreutils/DIR_COLORS.gz +-rw-r--r-- 1 root root 4048924 2009-05-07 17:05 ./source/a/coreutils/coreutils-7.4.tar.xz +-rw-r--r-- 1 root root 835 2009-05-07 17:05 ./source/a/coreutils/coreutils-7.4.tar.xz.sig +-rw-r--r-- 1 root root 779 2007-01-01 22:56 ./source/a/coreutils/coreutils-dircolors.csh.gz +-rw-r--r-- 1 root root 1066 2007-01-01 22:57 ./source/a/coreutils/coreutils-dircolors.sh.gz +-rwxr-xr-x 1 root root 6211 2009-05-19 20:05 ./source/a/coreutils/coreutils.SlackBuild +-rw-r--r-- 1 root root 1794 2009-02-23 03:30 ./source/a/coreutils/coreutils.uname.diff.gz +-rw-r--r-- 1 root root 270 2009-02-23 03:00 ./source/a/coreutils/doinst.sh.gz +-rw-r--r-- 1 root root 985 2003-05-20 21:33 ./source/a/coreutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/cpio +-rw-r--r-- 1 root root 348 2009-03-15 20:17 ./source/a/cpio/cpio-2.9.gcc43.diff.gz +-rw-r--r-- 1 root root 758195 2007-06-29 16:51 ./source/a/cpio/cpio-2.9.tar.bz2 +-rwxr-xr-x 1 root root 3664 2009-05-19 20:05 ./source/a/cpio/cpio.SlackBuild +-rw-r--r-- 1 root root 942 2002-03-23 21:52 ./source/a/cpio/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-24 03:23 ./source/a/cryptsetup +-rw-r--r-- 1 root root 417339 2009-07-22 11:28 ./source/a/cryptsetup/cryptsetup-1.0.7.tar.bz2 +-rw-r--r-- 1 root root 197 2009-07-22 11:29 ./source/a/cryptsetup/cryptsetup-1.0.7.tar.bz2.asc +-rwxr-xr-x 1 root root 4440 2009-08-24 03:28 ./source/a/cryptsetup/cryptsetup.SlackBuild +-rw-r--r-- 1 root root 1042 2007-05-26 11:18 ./source/a/cryptsetup/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-22 02:31 ./source/a/cups +-rw-r--r-- 1 root root 3048852 2009-07-02 22:13 ./source/a/cups/cups-1.3.11-source.tar.xz +-rw-r--r-- 1 root root 199167 2004-01-03 18:49 ./source/a/cups/cups-samba-5.0rc3.tar.gz +-rw-r--r-- 1 root root 38284 2006-04-19 23:55 ./source/a/cups/cups-windows-6.0-source.tar.bz2 +-rwxr-xr-x 1 root root 5487 2009-08-22 05:30 ./source/a/cups/cups.SlackBuild +-rw-r--r-- 1 root root 286 2009-08-22 01:18 ./source/a/cups/cups.firefox.desktop.diff.gz +-rw-r--r-- 1 root root 453 2007-05-09 21:13 ./source/a/cups/doinst.sh.gz +-rw-r--r-- 1 root root 1099 2002-02-01 20:47 ./source/a/cups/slack-desc +drwxr-xr-x 3 root root 4096 2009-07-24 23:40 ./source/a/cxxlibs +-rwxr-xr-x 1 root root 1825 2009-07-24 23:41 ./source/a/cxxlibs/cxxlibs.SlackBuild +drwxr-xr-x 2 root root 4096 2009-07-24 21:14 ./source/a/cxxlibs/oldgcc +-rw-r--r-- 1 root root 23972413 2007-05-31 19:07 ./source/a/cxxlibs/oldgcc/gcc-3.3.6.tar.bz2 +-rw-r--r-- 1 root root 65 2007-05-31 19:07 ./source/a/cxxlibs/oldgcc/gcc-3.3.6.tar.bz2.sig +-rwxr-xr-x 1 root root 2455 2009-07-24 21:15 ./source/a/cxxlibs/oldgcc/oldgcc.build +-rw-r--r-- 1 root root 738 2002-03-23 21:52 ./source/a/cxxlibs/slack-desc +-rw-r--r-- 1 root root 224 2008-04-03 05:03 ./source/a/cxxlibs/symlinks-to-tracked-libs +-rw-r--r-- 1 root root 52 2009-07-24 23:39 ./source/a/cxxlibs/symlinks-to-tracked-libs64 +drwxr-xr-x 2 root root 4096 2009-06-09 02:52 ./source/a/dbus +-rw-r--r-- 1 root root 1001892 2009-05-13 03:29 ./source/a/dbus/dbus-1.2.14.tar.xz +-rwxr-xr-x 1 root root 3600 2009-06-09 02:52 ./source/a/dbus/dbus.SlackBuild +-rw-r--r-- 1 root root 355 2008-09-23 18:06 ./source/a/dbus/doinst.sh.gz +-rw-r--r-- 1 root root 773 2008-10-08 00:14 ./source/a/dbus/rc.messagebus.gz +-rw-r--r-- 1 root root 945 2007-10-21 22:41 ./source/a/dbus/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/dcron +-rw-r--r-- 1 root root 1127 2006-12-13 22:28 ./source/a/dcron/_dcron.tar.gz +-rw-r--r-- 1 root root 350 2002-02-20 22:33 ./source/a/dcron/dcron-2.3.3.crontab.diff4.gz +-rw-r--r-- 1 root root 544 1999-08-26 21:57 ./source/a/dcron/dcron-2.3.3.diff.gz +-rw-r--r-- 1 root root 3987 2000-05-12 22:10 ./source/a/dcron/dcron-2.3.3.diff2.gz +-rw-r--r-- 1 root root 192 2001-05-30 21:13 ./source/a/dcron/dcron-2.3.3.diff3.gz +-rw-r--r-- 1 root root 594 1998-02-16 19:35 ./source/a/dcron/dcron-2.3.3.lsm +-rw-r--r-- 1 root root 22962 1998-02-16 19:35 ./source/a/dcron/dcron-2.3.3.tar.gz +-rw-r--r-- 1 root root 168 2002-04-09 08:07 ./source/a/dcron/dcron-2.3.3.version.diff.gz +-rwxr-xr-x 1 root root 2957 2009-05-19 20:05 ./source/a/dcron/dcron.SlackBuild +-rw-r--r-- 1 root root 208 2005-09-11 23:38 ./source/a/dcron/dcron.fork.diff.gz +-rw-r--r-- 1 root root 198 1999-04-05 02:13 ./source/a/dcron/dcron.tmpdir.diff.gz +-rw-r--r-- 1 root root 699 2002-04-15 02:48 ./source/a/dcron/run-parts.8.gz +-rw-r--r-- 1 root root 566 2002-04-15 02:48 ./source/a/dcron/run-parts.gz +-rw-r--r-- 1 root root 815 2002-02-21 22:50 ./source/a/dcron/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/device-mapper +-rw-r--r-- 1 root root 1364 2008-10-06 11:19 ./source/a/device-mapper/64-device-mapper.rules +-rw-r--r-- 1 root root 167532 2008-10-06 11:19 ./source/a/device-mapper/device-mapper.1.02.28.tar.bz2 +-rwxr-xr-x 1 root root 3645 2009-05-19 20:05 ./source/a/device-mapper/device-mapper.SlackBuild +-rw-r--r-- 1 root root 983 2008-02-08 17:25 ./source/a/device-mapper/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/devs +-rw-r--r-- 1 root root 92572 2006-09-20 03:46 ./source/a/devs/_devs.tar.gz +-rwxr-xr-x 1 root root 2044 2009-05-19 20:05 ./source/a/devs/devs.SlackBuild +-rw-r--r-- 1 root root 423 2002-06-09 19:32 ./source/a/devs/makedev.hd.diff.gz +-rw-r--r-- 1 root root 27096 2000-11-11 19:33 ./source/a/devs/makedev_2.3.1-46.2.diff.gz +-rw-r--r-- 1 root root 602 2003-09-02 20:00 ./source/a/devs/makedev_2.3.1.hd.diff.gz +-rw-r--r-- 1 root root 10037 1998-09-07 17:52 ./source/a/devs/makedev_2.3.1.orig.tar.gz +-rw-r--r-- 1 root root 262 2004-05-21 02:29 ./source/a/devs/makedev_2.3.1.slack.diff.gz +-rw-r--r-- 1 root root 766 2002-03-20 01:10 ./source/a/devs/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/dialog +-rw-r--r-- 1 root root 301393 2008-08-20 00:36 ./source/a/dialog/dialog-1.1-20080819.tar.bz2 +-rwxr-xr-x 1 root root 3537 2009-05-23 00:41 ./source/a/dialog/dialog.SlackBuild +-rw-r--r-- 1 root root 334 2009-04-23 01:28 ./source/a/dialog/dialog.smaller.min.height.diff.gz +-rw-r--r-- 1 root root 970 2007-01-02 22:29 ./source/a/dialog/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/dosfstools +-rw-r--r-- 1 root root 68346 2005-03-12 16:33 ./source/a/dosfstools/dosfstools-2.11.src.tar.gz +-rwxr-xr-x 1 root root 2605 2009-05-19 20:05 ./source/a/dosfstools/dosfstools.SlackBuild +-rw-r--r-- 1 root root 742 2006-12-21 20:33 ./source/a/dosfstools/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-17 06:50 ./source/a/e2fsprogs +-rw-r--r-- 1 root root 325 2009-05-30 01:25 ./source/a/e2fsprogs/doinst.sh.gz +-rw-r--r-- 1 root root 3339836 2009-07-16 00:12 ./source/a/e2fsprogs/e2fsprogs-1.41.8.tar.xz +-rwxr-xr-x 1 root root 4945 2009-07-17 06:41 ./source/a/e2fsprogs/e2fsprogs.SlackBuild +-rw-r--r-- 1 root root 803 2009-05-30 01:25 ./source/a/e2fsprogs/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 20:59 ./source/a/ed +-rw-r--r-- 1 root root 69427 2009-05-23 22:58 ./source/a/ed/ed-1.3.tar.bz2 +-rwxr-xr-x 1 root root 3177 2009-06-12 21:01 ./source/a/ed/ed.SlackBuild +-rw-r--r-- 1 root root 805 2006-12-13 23:11 ./source/a/ed/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/eject +-rw-r--r-- 1 root root 107301 2006-06-04 19:58 ./source/a/eject/eject-2.1.5.tar.bz2 +-rwxr-xr-x 1 root root 3093 2009-05-19 20:05 ./source/a/eject/eject.SlackBuild +-rw-r--r-- 1 root root 886 2006-12-14 01:32 ./source/a/eject/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/elvis +-rw-r--r-- 1 root root 1143603 2003-10-21 02:35 ./source/a/elvis/elvis-2.2_0.tar.bz2 +-rwxr-xr-x 1 root root 3567 2009-05-19 20:05 ./source/a/elvis/elvis.SlackBuild +-rw-r--r-- 1 root root 1633 2004-02-22 06:19 ./source/a/elvis/elvis.clr +-rw-r--r-- 1 root root 1584 2003-10-21 02:32 ./source/a/elvis/elvis.clr.orig +-rw-r--r-- 1 root root 845 2008-02-11 03:44 ./source/a/elvis/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-22 19:29 ./source/a/etc +-rw-r--r-- 1 root root 31788 2009-08-22 19:29 ./source/a/etc/_etc.tar.gz +-rwxr-xr-x 1 root root 1761 2009-08-22 19:42 ./source/a/etc/etc.SlackBuild +-rw-r--r-- 1 root root 536 2002-10-11 20:17 ./source/a/etc/nsswitch.conf.gz +-rw-r--r-- 1 root root 657 2002-03-23 21:54 ./source/a/etc/slack-desc +-rw-r--r-- 1 root root 226973 2000-03-02 23:51 ./source/a/etc/termcap-BSD.gz +drwxr-xr-x 2 root root 4096 2009-06-12 23:07 ./source/a/file +-rw-r--r-- 1 root root 471570 2009-05-06 20:52 ./source/a/file/file-5.03.tar.bz2 +-rwxr-xr-x 1 root root 4399 2009-06-12 22:44 ./source/a/file/file.SlackBuild +-rw-r--r-- 1 root root 195 2009-02-23 01:20 ./source/a/file/file.crdaregbin.magic.gz +-rw-r--r-- 1 root root 212 2009-06-12 22:40 ./source/a/file/file.etc.file.diff.gz +-rw-r--r-- 1 root root 336 2009-02-09 04:19 ./source/a/file/file.quiet.diff.gz +-rw-r--r-- 1 root root 272 2009-02-09 04:17 ./source/a/file/file.short.diff.gz +-rw-r--r-- 1 root root 248 2009-04-23 04:50 ./source/a/file/file.xz.magic.gz +-rw-r--r-- 1 root root 214 2005-09-07 03:59 ./source/a/file/file.zisofs.magic.gz +-rw-r--r-- 1 root root 680 2006-12-13 22:49 ./source/a/file/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-13 00:01 ./source/a/findutils +-rw-r--r-- 1 root root 1114432 2009-06-06 14:38 ./source/a/findutils/findutils-4.4.2.tar.xz +-rwxr-xr-x 1 root root 3575 2009-06-13 00:02 ./source/a/findutils/findutils.SlackBuild +-rw-r--r-- 1 root root 186 2009-02-21 21:50 ./source/a/findutils/findutils.no.default.options.warnings.diff.gz +-rw-r--r-- 1 root root 359 2009-02-21 21:19 ./source/a/findutils/findutils.nolocate.diff.gz +-rw-r--r-- 1 root root 828 2002-04-07 10:22 ./source/a/findutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/floppy +-rw-r--r-- 1 root root 25310 2002-05-01 02:18 ./source/a/floppy/fdutils-5.4-20020222.diff.gz +-rw-r--r-- 1 root root 190535 2001-02-04 04:36 ./source/a/floppy/fdutils-5.4.tar.gz +-rw-r--r-- 1 root root 182 2001-02-04 05:02 ./source/a/floppy/fdutils.mediaprm.diff.gz +-rwxr-xr-x 1 root root 3386 2009-05-19 20:05 ./source/a/floppy/floppy.SlackBuild +-rw-r--r-- 1 root root 11298 2002-05-01 02:21 ./source/a/floppy/mediaprm +-rw-r--r-- 1 root root 286730 2001-05-27 12:42 ./source/a/floppy/mtools-3.9.8.tar.gz +-rw-r--r-- 1 root root 1914 2001-02-04 04:50 ./source/a/floppy/mtools.conf +-rw-r--r-- 1 root root 728 2002-03-23 21:55 ./source/a/floppy/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/gawk +-rw-r--r-- 1 root root 1861630 2007-10-25 21:58 ./source/a/gawk/gawk-3.1.6.tar.bz2 +-rw-r--r-- 1 root root 189 2007-10-25 21:58 ./source/a/gawk/gawk-3.1.6.tar.bz2.sig +-rwxr-xr-x 1 root root 2901 2009-05-23 00:41 ./source/a/gawk/gawk.SlackBuild +-rw-r--r-- 1 root root 1043 2002-03-23 21:56 ./source/a/gawk/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/genpower +-rw-r--r-- 1 root root 66728 2005-01-04 22:32 ./source/a/genpower/genpower-1.0.5.tar.gz +-rwxr-xr-x 1 root root 3077 2009-05-19 20:05 ./source/a/genpower/genpower.SlackBuild +-rw-r--r-- 1 root root 514 2008-12-03 00:22 ./source/a/genpower/genpower.halt.diff.gz +-rw-r--r-- 1 root root 460 2002-04-11 03:18 ./source/a/genpower/genpower.var.diff.gz +-rw-r--r-- 1 root root 957 2002-04-11 05:06 ./source/a/genpower/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gettext +-rw-r--r-- 1 root root 8236607 2007-11-07 03:14 ./source/a/gettext/gettext-0.17.tar.bz2 +-rwxr-xr-x 1 root root 3274 2009-05-22 22:33 ./source/a/gettext/gettext-tools.SlackBuild +-rwxr-xr-x 1 root root 3106 2009-05-19 20:05 ./source/a/gettext/gettext.SlackBuild +-rw-r--r-- 1 root root 737 2008-02-11 03:44 ./source/a/gettext/slack-desc +-rw-r--r-- 1 root root 1093 2008-02-11 03:44 ./source/a/gettext/slack-desc.gettext-tools +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/getty-ps +-rwxr-xr-x 1 root root 2667 2009-05-19 20:05 ./source/a/getty-ps/getty-ps.SlackBuild +-rw-r--r-- 1 root root 3609 2005-07-21 12:27 ./source/a/getty-ps/getty.bugfixes.diff.gz +-rw-r--r-- 1 root root 1223 2002-10-04 05:00 ./source/a/getty-ps/getty_ps-2.1.0.lsm +-rw-r--r-- 1 root root 117414 2005-07-21 12:27 ./source/a/getty-ps/getty_ps-2.1.0b.tar.gz +-rw-r--r-- 1 root root 969 2008-02-11 03:44 ./source/a/getty-ps/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gpm +-rw-r--r-- 1 root root 344 2004-10-13 20:51 ./source/a/gpm/gpm-1.20.1-consolename.patch.gz +-rw-r--r-- 1 root root 404 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-gpmopen.patch.gz +-rw-r--r-- 1 root root 274 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-idie.patch.gz +-rw-r--r-- 1 root root 289 2006-12-12 02:00 ./source/a/gpm/gpm-1.20.1-input-defines.diff.gz +-rw-r--r-- 1 root root 301 2004-09-23 18:46 ./source/a/gpm/gpm-1.20.1-input.patch.gz +-rw-r--r-- 1 root root 362 2006-01-18 12:07 ./source/a/gpm/gpm-1.20.1-lib-silent.patch.gz +-rw-r--r-- 1 root root 294 2004-09-09 05:51 ./source/a/gpm/gpm-1.20.1-math.patch.gz +-rw-r--r-- 1 root root 791 2004-10-20 21:28 ./source/a/gpm/gpm-1.20.1-multilib.patch.gz +-rw-r--r-- 1 root root 356 2006-01-18 12:07 ./source/a/gpm/gpm-1.20.1-no-console-error.patch.gz +-rw-r--r-- 1 root root 249 2004-10-13 20:03 ./source/a/gpm/gpm-1.20.1-nodebug.patch.gz +-rw-r--r-- 1 root root 237 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-subscript.patch.gz +-rw-r--r-- 1 root root 515 2004-09-09 05:52 ./source/a/gpm/gpm-1.20.1-weak-wgetch.patch.gz +-rw-r--r-- 1 root root 651 2006-08-20 19:46 ./source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff.gz +-rw-r--r-- 1 root root 565014 2004-06-25 18:13 ./source/a/gpm/gpm-1.20.1.tar.bz2 +-rw-r--r-- 1 root root 59408 2004-09-09 05:52 ./source/a/gpm/gpm-evdev-cumulative.patch.gz +-rwxr-xr-x 1 root root 5475 2009-05-19 20:05 ./source/a/gpm/gpm.SlackBuild +-rw-r--r-- 1 root root 285 2006-02-07 21:26 ./source/a/gpm/gpm.evdevmakefile.patch.gz +-rw-r--r-- 1 root root 4268 2004-09-09 05:52 ./source/a/gpm/inputattach.c.gz +-rw-r--r-- 1 root root 168 2001-04-15 23:47 ./source/a/gpm/mouseconfig.gz +-rw-r--r-- 1 root root 2117 2008-03-15 20:30 ./source/a/gpm/setup.mouse.gz +-rw-r--r-- 1 root root 965 2002-05-29 01:05 ./source/a/gpm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/grep +-rw-r--r-- 1 root root 723181 2009-02-10 13:58 ./source/a/grep/grep-2.5.4.tar.bz2 +-rwxr-xr-x 1 root root 3292 2009-05-19 20:05 ./source/a/grep/grep.SlackBuild +-rw-r--r-- 1 root root 747 2002-04-02 08:53 ./source/a/grep/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/gzip +-rw-r--r-- 1 root root 383783 2007-04-14 02:32 ./source/a/gzip/gzip-1.3.12.tar.bz2 +-rw-r--r-- 1 root root 189 2007-04-14 02:32 ./source/a/gzip/gzip-1.3.12.tar.sig +-rwxr-xr-x 1 root root 4295 2009-05-19 20:05 ./source/a/gzip/gzip.SlackBuild +-rw-r--r-- 1 root root 770 2002-03-23 21:58 ./source/a/gzip/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/hdparm +-rw-r--r-- 1 root root 82912 2008-11-04 18:01 ./source/a/hdparm/hdparm-9.3.tar.bz2 +-rwxr-xr-x 1 root root 2226 2009-05-19 20:05 ./source/a/hdparm/hdparm.SlackBuild +-rw-r--r-- 1 root root 805 2002-02-22 00:10 ./source/a/hdparm/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-24 08:47 ./source/a/infozip +-rwxr-xr-x 1 root root 3159 2009-08-24 08:48 ./source/a/infozip/infozip.SlackBuild +-rw-r--r-- 1 root root 924 2002-03-29 01:12 ./source/a/infozip/slack-desc +-rw-r--r-- 1 root root 882180 2009-01-02 16:33 ./source/a/infozip/unzip60.tar.xz +-rw-r--r-- 1 root root 775420 2008-07-05 17:31 ./source/a/infozip/zip30.tar.xz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/inotify-tools +-rw-r--r-- 1 root root 283893 2008-01-01 08:51 ./source/a/inotify-tools/inotify-tools-3.13.tar.bz2 +-rwxr-xr-x 1 root root 3344 2009-05-19 20:05 ./source/a/inotify-tools/inotify-tools.SlackBuild +-rw-r--r-- 1 root root 977 2008-02-11 03:44 ./source/a/inotify-tools/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 23:20 ./source/a/jfsutils +-rw-r--r-- 1 root root 414662 2009-04-06 19:17 ./source/a/jfsutils/jfsutils-1.1.14.tar.bz2 +-rwxr-xr-x 1 root root 3047 2009-06-12 23:20 ./source/a/jfsutils/jfsutils.SlackBuild +-rw-r--r-- 1 root root 998 2003-02-16 21:43 ./source/a/jfsutils/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-16 19:10 ./source/a/kbd +-rwxr-xr-x 1 root root 5901 2009-08-25 01:23 ./source/a/kbd/kbd.SlackBuild +-rw-r--r-- 1 root root 11611 2009-05-16 22:41 ./source/a/kbd/setconsolefont +-rw-r--r-- 1 root root 283 2009-05-14 19:13 ./source/a/kbd/setup.setconsolefont +-rw-r--r-- 1 root root 919 2003-02-27 23:42 ./source/a/kbd/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-25 01:23 ./source/a/kbd/sources +-rw-r--r-- 1 root root 24797 2001-05-26 05:49 ./source/a/kbd/sources/extraf.tgz +-rw-r--r-- 1 root root 960 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-keycodes-man.patch.gz +-rw-r--r-- 1 root root 522 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-po.patch.gz +-rw-r--r-- 1 root root 659 2009-03-05 12:52 ./source/a/kbd/sources/kbd-1.15-quiet_doc.patch.gz +-rw-r--r-- 1 root root 270 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch.gz +-rw-r--r-- 1 root root 1243 2009-01-08 14:46 ./source/a/kbd/sources/kbd-1.15-sparc.patch.gz +-rw-r--r-- 1 root root 399 2009-08-25 01:23 ./source/a/kbd/sources/kbd-1.15-unicode_start.patch.gz +-rw-r--r-- 1 root root 875463 2008-12-01 19:58 ./source/a/kbd/sources/kbd-1.15.tar.bz2 +-rw-r--r-- 1 root root 248 2008-12-01 19:58 ./source/a/kbd/sources/kbd-1.15.tar.bz2.sign +-rw-r--r-- 1 root root 4291 2007-10-15 12:16 ./source/a/kbd/sources/kbd-latarcyrheb-16-fixed.tar.bz2 +-rw-r--r-- 1 root root 6155 2006-09-29 11:13 ./source/a/kbd/sources/kbd-latsun-fonts.tar.bz2 +-rw-r--r-- 1 root root 224 2004-05-30 04:18 ./source/a/kbd/sources/nl.euro.diff.gz +-rw-r--r-- 1 root root 2338 2007-11-14 11:41 ./source/a/kbd/sources/ro_maps.tar.bz2 +-rw-r--r-- 1 root root 3543 2002-05-24 21:22 ./source/a/kbd/sources/speakup-jfw.tar.gz +-rw-r--r-- 1 root root 2246 2001-10-05 13:14 ./source/a/kbd/sources/speakupmap.map.gz +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/less +-rw-r--r-- 1 root root 241227 2008-01-08 22:20 ./source/a/less/less-418.tar.bz2 +-rwxr-xr-x 1 root root 3097 2009-05-23 00:41 ./source/a/less/less.SlackBuild +-rw-r--r-- 1 root root 313 2002-05-28 00:15 ./source/a/less/less.sysconfdir.diff.gz +-rw-r--r-- 1 root root 1343 2009-04-11 17:48 ./source/a/less/lesspipe.sh.gz +-rw-r--r-- 1 root root 841 2002-03-23 22:00 ./source/a/less/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/lha +-rw-r--r-- 1 root root 64608 2000-12-15 12:20 ./source/a/lha/lha-114i.tar.gz +-rwxr-xr-x 1 root root 2533 2009-05-19 20:05 ./source/a/lha/lha.SlackBuild +-rw-r--r-- 1 root root 45132 2006-12-13 19:47 ./source/a/lha/lha_1.14i-10.1.diff.gz +-rw-r--r-- 1 root root 606 2006-12-23 05:46 ./source/a/lha/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/lilo +-rw-r--r-- 1 root root 437555 2007-02-19 18:18 ./source/a/lilo/lilo-22.8.src.tar.gz +-rw-r--r-- 1 root root 536 2007-02-19 18:18 ./source/a/lilo/lilo-22.8.src.tar.gz.sig +-rwxr-xr-x 1 root root 2785 2009-05-19 20:05 ./source/a/lilo/lilo.SlackBuild +-rw-r--r-- 1 root root 38380 2009-02-23 11:00 ./source/a/lilo/liloconfig +-rw-r--r-- 1 root root 105 2002-03-09 08:27 ./source/a/lilo/setup.liloconfig +-rw-r--r-- 1 root root 1045 2002-03-23 22:00 ./source/a/lilo/slack-desc +-rw-r--r-- 1 root root 15754 2008-02-22 00:08 ./source/a/lilo/slack.bmp +-rw-r--r-- 1 root root 133 2008-02-22 00:08 ./source/a/lilo/slack.dat +-rw-r--r-- 1 root root 17318 2008-12-09 00:56 ./source/a/lilo/slack64.bmp +-rw-r--r-- 1 root root 3331 1994-07-08 18:55 ./source/a/lilo/text.lilohelp +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/logrotate +-rw-r--r-- 1 root root 1258 2006-09-21 06:38 ./source/a/logrotate/_logrotate.tar.gz +-rw-r--r-- 1 root root 38611 2006-07-24 12:13 ./source/a/logrotate/logrotate-3.7.4.tar.gz +-rwxr-xr-x 1 root root 2255 2009-05-19 20:05 ./source/a/logrotate/logrotate.SlackBuild +-rw-r--r-- 1 root root 775 2006-09-21 06:09 ./source/a/logrotate/logrotate.slackware.diff.gz +-rw-r--r-- 1 root root 989 2002-04-07 06:41 ./source/a/logrotate/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:17 ./source/a/lvm2 +-rw-r--r-- 1 root root 474231 2008-10-06 12:21 ./source/a/lvm2/LVM2.2.02.40.tar.bz2 +-rw-r--r-- 1 root root 271 2008-10-06 12:21 ./source/a/lvm2/doinst.sh.gz +-rwxr-xr-x 1 root root 3093 2009-05-19 20:05 ./source/a/lvm2/lvm2.SlackBuild +-rw-r--r-- 1 root root 1012 2008-02-08 17:26 ./source/a/lvm2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mdadm +-rw-r--r-- 1 root root 261 2004-05-27 18:31 ./source/a/mdadm/doinst.sh.gz +-rw-r--r-- 1 root root 152401 2007-10-19 04:12 ./source/a/mdadm/mdadm-2.6.4.tar.bz2 +-rw-r--r-- 1 root root 248 2007-10-19 04:12 ./source/a/mdadm/mdadm-2.6.4.tar.bz2.sign +-rwxr-xr-x 1 root root 2543 2009-05-19 20:05 ./source/a/mdadm/mdadm.SlackBuild +-rw-r--r-- 1 root root 347 2006-06-25 05:30 ./source/a/mdadm/mdadm.static.small.diff.gz +-rw-r--r-- 1 root root 928 2004-05-27 18:23 ./source/a/mdadm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/minicom +-rw-r--r-- 1 root root 503 2008-09-30 10:20 ./source/a/minicom/config.sub-x86_64.diff.gz +-rw-r--r-- 1 root root 289 2004-09-04 21:22 ./source/a/minicom/doinst.sh.gz +-rw-r--r-- 1 root root 16580 2001-03-25 19:17 ./source/a/minicom/lrzsz_0.12.21-4.diff.gz +-rw-r--r-- 1 root root 287790 1999-09-19 19:01 ./source/a/minicom/lrzsz_0.12.21.orig.tar.gz +-rw-r--r-- 1 root root 607939 2003-09-17 21:55 ./source/a/minicom/minicom-2.1.tar.gz +-rw-r--r-- 1 root root 189 2003-09-17 21:54 ./source/a/minicom/minicom-2.1.tar.gz.asc +-rwxr-xr-x 1 root root 4338 2009-05-23 00:41 ./source/a/minicom/minicom.SlackBuild +-rw-r--r-- 1 root root 570 2004-09-04 21:17 ./source/a/minicom/minicom.users.gz +-rw-r--r-- 1 root root 92 2004-09-04 21:16 ./source/a/minicom/minirc.dfl.gz +-rw-r--r-- 1 root root 781 2002-03-29 01:13 ./source/a/minicom/slack-desc +-rw-r--r-- 1 root root 568 2008-10-02 19:18 ./source/a/minicom/wintcap.diff.gz +drwxr-xr-x 3 root root 4096 2009-07-15 19:16 ./source/a/mkinitrd +-rw-r--r-- 1 root root 3723 2009-06-17 06:49 ./source/a/mkinitrd/README.initrd +-rw-r--r-- 1 root root 2386 2009-04-21 03:21 ./source/a/mkinitrd/_initrd-tree.tar.gz +drwxr-xr-x 2 root root 4096 2008-11-30 10:20 ./source/a/mkinitrd/archive +-rw-r--r-- 1 root root 1924980 2008-08-21 19:40 ./source/a/mkinitrd/archive/busybox-1.11.2.tar.bz2 +-rw-r--r-- 1 root root 2017989 2008-08-20 23:27 ./source/a/mkinitrd/archive/busybox-1.12.0.tar.bz2 +-rw-r--r-- 1 root root 280 2007-11-27 21:36 ./source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff.gz +-rw-r--r-- 1 root root 470 2007-10-09 23:51 ./source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff.gz +-rw-r--r-- 1 root root 1729040 2007-10-09 23:52 ./source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2 +-rw-r--r-- 1 root root 535 2007-10-09 23:52 ./source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign +-rw-r--r-- 1 root root 20223 2008-09-23 21:26 ./source/a/mkinitrd/archive/busybox-dot-config.1.11.2 +-rw-r--r-- 1 root root 20380 2008-09-25 10:39 ./source/a/mkinitrd/archive/busybox-dot-config.1.12.0 +-rw-r--r-- 1 root root 20369 2008-11-07 10:25 ./source/a/mkinitrd/archive/busybox-dot-config.1.12.1 +-rw-r--r-- 1 root root 17000 2008-04-03 23:06 ./source/a/mkinitrd/archive/busybox-dot-config.1.7.2 +-rw-r--r-- 1 root root 2022321 2008-09-28 18:08 ./source/a/mkinitrd/busybox-1.12.1.tar.bz2 +-rw-r--r-- 1 root root 218 2008-11-07 01:40 ./source/a/mkinitrd/busybox-1.12.1_inotify.diff.gz +-rw-r--r-- 1 root root 20369 2008-11-30 10:19 ./source/a/mkinitrd/busybox-dot-config +-rwxr-xr-x 1 root root 7749 2009-04-02 22:13 ./source/a/mkinitrd/init +-rw-r--r-- 1 root root 29903 2009-05-17 07:21 ./source/a/mkinitrd/keymaps.tar.gz +-rw-r--r-- 1 root root 16243 2009-08-13 19:41 ./source/a/mkinitrd/mkinitrd +-rw-r--r-- 1 root root 5889 2008-04-20 05:17 ./source/a/mkinitrd/mkinitrd.8 +-rwxr-xr-x 1 root root 4150 2009-08-13 20:00 ./source/a/mkinitrd/mkinitrd.SlackBuild +-rw-r--r-- 1 root root 4227 2008-12-19 13:11 ./source/a/mkinitrd/mkinitrd.conf.5 +-rw-r--r-- 1 root root 343 2008-04-03 23:06 ./source/a/mkinitrd/mkinitrd.conf.sample +-rw-r--r-- 1 root root 27049 2009-05-17 07:21 ./source/a/mkinitrd/mkinitrd_command_generator.sh +-rw-r--r-- 1 root root 454 2008-12-11 11:02 ./source/a/mkinitrd/mkinitrd_kernelcheck.diff +-rw-r--r-- 1 root root 988 2008-04-03 23:07 ./source/a/mkinitrd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/module-init-tools +-rw-r--r-- 1 root root 467 2007-09-24 14:55 ./source/a/module-init-tools/doinst.sh.gz +-rw-r--r-- 1 root root 642 2009-02-08 07:43 ./source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff.gz +-rw-r--r-- 1 root root 801 2009-02-08 07:58 ./source/a/module-init-tools/modprobe.ignore_some_suffixes.diff.gz +-rw-r--r-- 1 root root 960 2009-03-13 11:48 ./source/a/module-init-tools/modprobe.no_sys_check.diff.gz +-rw-r--r-- 1 root root 230327 2009-02-04 21:30 ./source/a/module-init-tools/module-init-tools-3.6.tar.bz2 +-rwxr-xr-x 1 root root 4097 2009-05-19 20:05 ./source/a/module-init-tools/module-init-tools.SlackBuild +-rw-r--r-- 1 root root 856 2007-02-21 20:22 ./source/a/module-init-tools/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mt-st +-rw-r--r-- 1 root root 375 2007-05-15 02:19 ./source/a/mt-st/_mt-st.tar.gz +-rw-r--r-- 1 root root 36537 2005-08-21 19:14 ./source/a/mt-st/mt-st-0.9b.tar.gz +-rwxr-xr-x 1 root root 2702 2009-05-19 20:05 ./source/a/mt-st/mt-st.SlackBuild +-rw-r--r-- 1 root root 949 2005-04-07 06:26 ./source/a/mt-st/mt-st.config.diff.gz +-rw-r--r-- 1 root root 358 2005-10-25 10:17 ./source/a/mt-st/mt-st.man.diff.gz +-rw-r--r-- 1 root root 236 2004-09-09 08:51 ./source/a/mt-st/mt-st.sdlt.diff.gz +-rw-r--r-- 1 root root 943 2002-02-24 20:29 ./source/a/mt-st/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/mtx +-rw-r--r-- 1 root root 220990 2007-01-25 23:16 ./source/a/mtx/mtx-1.3.9.tar.gz +-rwxr-xr-x 1 root root 2745 2009-05-19 20:05 ./source/a/mtx/mtx.SlackBuild +-rw-r--r-- 1 root root 854 2007-01-25 23:21 ./source/a/mtx/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/ncompress +-rw-r--r-- 1 root root 304 2006-08-11 11:44 ./source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch.gz +-rw-r--r-- 1 root root 207 2006-09-19 12:34 ./source/a/ncompress/ncompress-4.2.4-endians.patch.gz +-rw-r--r-- 1 root root 32533 1996-12-24 07:00 ./source/a/ncompress/ncompress-4.2.4.tar.gz +-rw-r--r-- 1 root root 220 2004-10-05 09:15 ./source/a/ncompress/ncompress.2GB.diff.gz +-rwxr-xr-x 1 root root 3100 2009-05-19 20:05 ./source/a/ncompress/ncompress.SlackBuild +-rw-r--r-- 1 root root 1164 2004-09-09 09:01 ./source/a/ncompress/ncompress.filenamelen.diff.gz +-rw-r--r-- 1 root root 773 2004-09-09 09:01 ./source/a/ncompress/ncompress.lfs2.diff.gz +-rw-r--r-- 1 root root 952 2004-09-09 09:00 ./source/a/ncompress/ncompress.make.diff.gz +-rw-r--r-- 1 root root 389 2006-04-21 12:20 ./source/a/ncompress/ncompress.zerobyteforce.diff.gz +-rw-r--r-- 1 root root 1020 2006-12-14 01:48 ./source/a/ncompress/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 23:23 ./source/a/ntfs-3g +-rw-r--r-- 1 root root 481 2008-03-15 01:38 ./source/a/ntfs-3g/10-ntfs-3g-policy.fdi +-rw-r--r-- 1 root root 492893 2009-04-02 23:01 ./source/a/ntfs-3g/ntfs-3g-2009.4.4.tar.bz2 +-rwxr-xr-x 1 root root 3350 2009-06-12 23:23 ./source/a/ntfs-3g/ntfs-3g.SlackBuild +-rw-r--r-- 1 root root 1003 2008-03-15 03:46 ./source/a/ntfs-3g/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/patch +-rw-r--r-- 1 root root 186879 1999-08-31 09:17 ./source/a/patch/patch-2.5.4.tar.gz +-rwxr-xr-x 1 root root 2191 2009-05-19 20:05 ./source/a/patch/patch.SlackBuild +-rw-r--r-- 1 root root 1020 2006-12-14 02:21 ./source/a/patch/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-29 07:48 ./source/a/pciutils +-rw-r--r-- 1 root root 271733 2009-07-29 07:19 ./source/a/pciutils/pciutils-3.1.3.tar.bz2 +-rwxr-xr-x 1 root root 3190 2009-08-09 02:53 ./source/a/pciutils/pciutils.SlackBuild +-rw-r--r-- 1 root root 306 2009-07-29 07:26 ./source/a/pciutils/pciutils.ids.dest.diff.gz +-rw-r--r-- 1 root root 92 2008-04-01 21:00 ./source/a/pciutils/pciutils.url +-rw-r--r-- 1 root root 895 2006-12-19 23:55 ./source/a/pciutils/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-23 02:18 ./source/a/pcmciautils +-rw-r--r-- 1 root root 1429 2007-03-16 14:50 ./source/a/pcmciautils/cis-cs-3.2.8.tar.gz +drwxr-xr-x 2 root root 4096 2008-09-12 04:35 ./source/a/pcmciautils/config +-rw-r--r-- 1 root root 926 2007-03-16 20:00 ./source/a/pcmciautils/config/60-pcmcia.rules +-rw-r--r-- 1 root root 2577 2008-03-05 03:14 ./source/a/pcmciautils/config/config.opts +-rwxr-xr-x 1 root root 1722 2007-03-16 21:09 ./source/a/pcmciautils/config/rc.pcmcia +-rw-r--r-- 1 root root 277 2009-04-14 04:38 ./source/a/pcmciautils/doinst.sh.gz +-rw-r--r-- 1 root root 43239 2008-07-15 04:16 ./source/a/pcmciautils/pcmciautils-015.tar.bz2 +-rwxr-xr-x 1 root root 3555 2009-05-19 20:05 ./source/a/pcmciautils/pcmciautils.SlackBuild +-rw-r--r-- 1 root root 914 2009-04-14 04:35 ./source/a/pcmciautils/slack-desc +drwxr-xr-x 5 root root 4096 2009-05-19 20:05 ./source/a/pkgtools +drwxr-xr-x 2 root root 4096 2009-04-11 21:15 ./source/a/pkgtools/manpages +-rw-r--r-- 1 root root 1256 2009-04-11 20:54 ./source/a/pkgtools/manpages/explodepkg.8 +-rw-r--r-- 1 root root 2561 2009-04-11 20:52 ./source/a/pkgtools/manpages/installpkg.8 +-rw-r--r-- 1 root root 4557 2009-04-11 20:51 ./source/a/pkgtools/manpages/makepkg.8 +-rw-r--r-- 1 root root 2518 2009-04-11 21:11 ./source/a/pkgtools/manpages/pkgtool.8 +-rw-r--r-- 1 root root 3080 2009-04-11 21:15 ./source/a/pkgtools/manpages/removepkg.8 +-rw-r--r-- 1 root root 3199 2001-06-07 08:29 ./source/a/pkgtools/manpages/setup.8-deprecated +-rw-r--r-- 1 root root 2665 2009-04-11 21:14 ./source/a/pkgtools/manpages/upgradepkg.8 +drwxr-xr-x 2 root root 4096 2008-04-19 23:44 ./source/a/pkgtools/obsolete-scripts +-rw-r--r-- 1 root root 155 2008-04-19 23:44 ./source/a/pkgtools/obsolete-scripts/README +-rw-r--r-- 1 root root 1326 2003-02-16 00:57 ./source/a/pkgtools/obsolete-scripts/setup.90.modem-device +-rwxr-xr-x 1 root root 2483 2009-08-16 21:35 ./source/a/pkgtools/pkgtools.SlackBuild +drwxr-xr-x 2 root root 4096 2009-06-02 04:12 ./source/a/pkgtools/scripts +-rw-r--r-- 1 root root 3170 2009-04-06 02:21 ./source/a/pkgtools/scripts/explodepkg +-rw-r--r-- 1 root root 19653 2009-08-16 21:22 ./source/a/pkgtools/scripts/installpkg +-rw-r--r-- 1 root root 13749 2009-04-06 02:14 ./source/a/pkgtools/scripts/makebootdisk +-rw-r--r-- 1 root root 11315 2009-06-02 04:12 ./source/a/pkgtools/scripts/makepkg +-rw-r--r-- 1 root root 22615 2009-06-18 02:24 ./source/a/pkgtools/scripts/pkgtool +-rw-r--r-- 1 root root 14048 2009-04-28 20:44 ./source/a/pkgtools/scripts/removepkg +-rw-r--r-- 1 root root 170 2003-02-16 00:56 ./source/a/pkgtools/scripts/setup.70.install-kernel +-rw-r--r-- 1 root root 6356 2008-03-18 19:39 ./source/a/pkgtools/scripts/setup.80.make-bootdisk +-rw-r--r-- 1 root root 1070 2007-06-27 00:28 ./source/a/pkgtools/scripts/setup.htmlview +-rw-r--r-- 1 root root 7421 2008-03-19 08:13 ./source/a/pkgtools/scripts/setup.services +-rw-r--r-- 1 root root 12087 2009-08-16 21:38 ./source/a/pkgtools/scripts/upgradepkg +-rw-r--r-- 1 root root 1083 2002-03-23 04:15 ./source/a/pkgtools/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/a/procps +-rw-r--r-- 1 root root 24365 2001-03-02 18:54 ./source/a/procps/procinfo-18.tar.gz +-rw-r--r-- 1 root root 213 2003-02-07 21:39 ./source/a/procps/procinfo.gcc3.diff.gz +-rw-r--r-- 1 root root 504 2001-03-02 18:54 ./source/a/procps/procinfo.lsm +-rw-r--r-- 1 root root 824 2008-09-19 19:04 ./source/a/procps/procps-3.2.7-ps-eip64.diff.gz +-rw-r--r-- 1 root root 281965 2006-06-25 06:14 ./source/a/procps/procps-3.2.7.tar.gz +-rwxr-xr-x 1 root root 6216 2009-05-23 00:41 ./source/a/procps/procps.SlackBuild +-rw-r--r-- 1 root root 854 2004-08-17 01:30 ./source/a/procps/procps.nowarning.diff.gz +-rw-r--r-- 1 root root 182 2003-02-02 19:47 ./source/a/procps/procps.w.showfrom.diff.gz +-rw-r--r-- 1 root root 257325 2006-09-14 23:06 ./source/a/procps/psmisc-22.3.tar.gz +-rw-r--r-- 1 root root 739 2004-05-27 21:01 ./source/a/procps/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-22 20:00 ./source/a/quota +-rw-r--r-- 1 root root 216356 2009-01-05 14:29 ./source/a/quota/quota-3.17.tar.xz +-rwxr-xr-x 1 root root 3539 2009-06-22 19:58 ./source/a/quota/quota.SlackBuild +-rw-r--r-- 1 root root 980 2002-03-31 08:30 ./source/a/quota/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/reiserfsprogs +-rw-r--r-- 1 root root 324847 2009-01-12 22:13 ./source/a/reiserfsprogs/reiserfsprogs-3.6.21.tar.bz2 +-rwxr-xr-x 1 root root 3507 2009-05-19 20:05 ./source/a/reiserfsprogs/reiserfsprogs.SlackBuild +-rw-r--r-- 1 root root 940 2008-02-11 03:44 ./source/a/reiserfsprogs/slack-desc +drwxr-xr-x 2 root root 4096 2006-12-23 06:44 ./source/a/rpm2tgz +-rw-r--r-- 1 root root 1809 2002-11-27 21:47 ./source/a/rpm2tgz/getrpmtype.tar.gz +-rw-r--r-- 1 root root 4439 2009-08-08 22:26 ./source/a/rpm2tgz/rpm2targz +-rw-r--r-- 1 root root 986 2006-12-23 06:51 ./source/a/rpm2tgz/rpm2targz.README +-rwxr-xr-x 1 root root 2128 2009-08-08 22:50 ./source/a/rpm2tgz/rpm2tgz.SlackBuild +-rw-r--r-- 1 root root 835 2004-06-13 23:10 ./source/a/rpm2tgz/rpmoffset.c +-rw-r--r-- 1 root root 856 2008-02-11 03:44 ./source/a/rpm2tgz/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sdparm +-rw-r--r-- 1 root root 195605 2007-04-07 21:15 ./source/a/sdparm/sdparm-1.01.tar.bz2 +-rwxr-xr-x 1 root root 3176 2009-05-19 20:05 ./source/a/sdparm/sdparm.SlackBuild +-rw-r--r-- 1 root root 924 2007-06-02 18:27 ./source/a/sdparm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sed +-rw-r--r-- 1 root root 799584 2006-02-03 09:51 ./source/a/sed/sed-4.1.5.tar.gz +-rw-r--r-- 1 root root 65 2006-02-03 09:51 ./source/a/sed/sed-4.1.5.tar.gz.sig +-rwxr-xr-x 1 root root 2485 2009-05-19 20:05 ./source/a/sed/sed.SlackBuild +-rw-r--r-- 1 root root 862 2003-09-01 21:35 ./source/a/sed/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/a/shadow +-rw-r--r-- 1 root root 1293 2006-08-22 20:06 ./source/a/shadow/_shadow.tar.gz +-rw-r--r-- 1 root root 15448 2009-08-01 01:59 ./source/a/shadow/adduser +-rw-r--r-- 1 root root 778357 2002-03-14 04:27 ./source/a/shadow/shadow-4.0.3.tar.bz2 +-rw-r--r-- 1 root root 1471 2008-11-30 19:01 ./source/a/shadow/shadow-4.0.3.x86_64.diff.gz +-rwxr-xr-x 1 root root 5002 2009-08-01 00:25 ./source/a/shadow/shadow.SlackBuild +-rw-r--r-- 1 root root 178 2006-08-13 00:03 ./source/a/shadow/shadow.gcc34.diff.gz +-rw-r--r-- 1 root root 1108 2008-03-24 20:11 ./source/a/shadow/shadow.login.defs.diff.gz +-rw-r--r-- 1 root root 353 2003-06-01 04:21 ./source/a/shadow/shadow.newgrp.getlogin.gz +-rw-r--r-- 1 root root 366 2002-10-13 19:47 ./source/a/shadow/shadow.newgrp.nopam.gz +-rw-r--r-- 1 root root 1248 2006-08-20 23:32 ./source/a/shadow/shadow.remove.obsolete.options.diff.gz +-rw-r--r-- 1 root root 657 2003-06-23 23:35 ./source/a/shadow/shadow.shadowconfig.diff.gz +-rw-r--r-- 1 root root 993 2002-04-30 23:51 ./source/a/shadow/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-22 18:47 ./source/a/sharutils +-rw-r--r-- 1 root root 640932 2007-07-01 12:05 ./source/a/sharutils/sharutils-4.7.tar.bz2 +-rw-r--r-- 1 root root 65 2007-07-01 12:05 ./source/a/sharutils/sharutils-4.7.tar.bz2.sig +-rwxr-xr-x 1 root root 2632 2009-06-22 18:50 ./source/a/sharutils/sharutils.SlackBuild +-rw-r--r-- 1 root root 1087 2006-05-19 01:57 ./source/a/sharutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-30 19:16 ./source/a/slocate +-rw-r--r-- 1 root root 941 2009-07-18 00:05 ./source/a/slocate/_slocate.tar.gz +-rw-r--r-- 1 root root 1011 2002-04-07 09:50 ./source/a/slocate/slack-desc +-rw-r--r-- 1 root root 37748 2006-03-08 05:05 ./source/a/slocate/slocate-3.1.tar.gz +-rw-r--r-- 1 root root 189 2006-03-08 05:05 ./source/a/slocate/slocate-3.1.tar.gz.sign +-rwxr-xr-x 1 root root 2430 2009-07-18 00:43 ./source/a/slocate/slocate.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/smartmontools +-rw-r--r-- 1 root root 270 2004-04-12 02:03 ./source/a/smartmontools/doinst.sh.gz +-rw-r--r-- 1 root root 1174 2002-10-21 22:55 ./source/a/smartmontools/slack-desc +-rw-r--r-- 1 root root 500392 2008-03-10 11:08 ./source/a/smartmontools/smartmontools-5.38.tar.bz2 +-rwxr-xr-x 1 root root 2485 2009-05-19 20:05 ./source/a/smartmontools/smartmontools.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/splitvt +-rw-r--r-- 1 root root 743 2006-12-13 23:26 ./source/a/splitvt/slack-desc +-rw-r--r-- 1 root root 64301 2001-01-18 07:58 ./source/a/splitvt/splitvt-1.6.5.tar.gz +-rwxr-xr-x 1 root root 2281 2009-05-19 20:05 ./source/a/splitvt/splitvt.SlackBuild +-rw-r--r-- 1 root root 10403 2005-07-19 22:17 ./source/a/splitvt/splitvt_1.6.5-9.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysfsutils +-rw-r--r-- 1 root root 1005 2006-08-03 23:45 ./source/a/sysfsutils/slack-desc +-rw-r--r-- 1 root root 288189 2006-12-12 01:33 ./source/a/sysfsutils/sysfsutils-2.1.0.tar.bz2 +-rwxr-xr-x 1 root root 3195 2009-05-19 20:05 ./source/a/sysfsutils/sysfsutils.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysklogd +-rw-r--r-- 1 root root 2289 2007-04-09 23:11 ./source/a/sysklogd/_sysklogd.tar.gz +-rw-r--r-- 1 root root 916 2002-03-23 22:05 ./source/a/sysklogd/slack-desc +-rw-r--r-- 1 root root 862 2007-04-09 23:25 ./source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff.gz +-rw-r--r-- 1 root root 1197 2001-03-11 21:33 ./source/a/sysklogd/sysklogd-1.4.1.lsm +-rw-r--r-- 1 root root 81784 2001-03-11 21:33 ./source/a/sysklogd/sysklogd-1.4.1.tar.gz +-rwxr-xr-x 1 root root 2850 2009-05-19 20:05 ./source/a/sysklogd/sysklogd.SlackBuild +-rw-r--r-- 1 root root 26587 2006-09-28 21:52 ./source/a/sysklogd/sysklogd_1.4.1-20.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/syslinux +-rw-r--r-- 1 root root 977 2002-03-22 08:06 ./source/a/syslinux/slack-desc +-rw-r--r-- 1 root root 1691659 2007-09-25 23:37 ./source/a/syslinux/syslinux-3.52.tar.bz2 +-rw-r--r-- 1 root root 248 2007-09-25 23:37 ./source/a/syslinux/syslinux-3.52.tar.bz2.sign +-rwxr-xr-x 1 root root 2829 2009-05-19 20:05 ./source/a/syslinux/syslinux.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysvinit +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/sysvinit-functions +-rw-r--r-- 1 root root 832 2007-04-29 18:51 ./source/a/sysvinit-functions/README.functions +-rw-r--r-- 1 root root 226 2007-05-15 02:38 ./source/a/sysvinit-functions/doinst.sh.gz +-rw-r--r-- 1 root root 10001 2007-04-29 18:21 ./source/a/sysvinit-functions/function-src-8.53.tar.bz2 +-rw-r--r-- 1 root root 13913 2006-10-26 20:57 ./source/a/sysvinit-functions/functions +-rw-r--r-- 1 root root 1164 2007-05-15 02:46 ./source/a/sysvinit-functions/slack-desc +-rwxr-xr-x 1 root root 3054 2009-05-19 20:05 ./source/a/sysvinit-functions/sysvinit-functions.SlackBuild +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/sysvinit-scripts +-rw-r--r-- 1 root root 339 2008-03-19 08:28 ./source/a/sysvinit-scripts/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2008-03-31 03:07 ./source/a/sysvinit-scripts/scripts +-rw-r--r-- 1 root root 60 2006-08-01 03:00 ./source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh +-rw-r--r-- 1 root root 2467 2006-07-26 23:41 ./source/a/sysvinit-scripts/scripts/inittab +-rw-r--r-- 1 root root 1282 2007-03-27 01:12 ./source/a/sysvinit-scripts/scripts/rc.4 +-rw-r--r-- 1 root root 7453 2008-12-02 20:32 ./source/a/sysvinit-scripts/scripts/rc.6 +-rw-r--r-- 1 root root 2425 2008-12-02 20:31 ./source/a/sysvinit-scripts/scripts/rc.K +-rw-r--r-- 1 root root 10906 2009-04-25 22:01 ./source/a/sysvinit-scripts/scripts/rc.M +-rw-r--r-- 1 root root 14253 2009-04-22 02:48 ./source/a/sysvinit-scripts/scripts/rc.S +-rw-r--r-- 1 root root 272 2006-08-12 02:07 ./source/a/sysvinit-scripts/scripts/rc.local +-rw-r--r-- 1 root root 1740 1999-09-11 20:48 ./source/a/sysvinit-scripts/scripts/rc.sysvinit +-rw-r--r-- 1 root root 15654 2008-10-29 10:07 ./source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh +-rw-r--r-- 1 root root 846 2007-05-15 02:47 ./source/a/sysvinit-scripts/slack-desc +-rwxr-xr-x 1 root root 2177 2009-07-18 01:39 ./source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild +-rw-r--r-- 1 root root 681 2007-04-16 19:42 ./source/a/sysvinit/doinst.sh.gz +-rw-r--r-- 1 root root 972 2002-03-22 05:59 ./source/a/sysvinit/slack-desc +-rw-r--r-- 1 root root 489 2008-09-22 09:55 ./source/a/sysvinit/sysvinit-2.86-timeval.patch.gz +-rw-r--r-- 1 root root 99009 2006-12-08 20:10 ./source/a/sysvinit/sysvinit-2.86.tar.gz +-rwxr-xr-x 1 root root 3836 2009-05-19 20:05 ./source/a/sysvinit/sysvinit.SlackBuild +-rw-r--r-- 1 root root 1729 2008-04-03 02:33 ./source/a/sysvinit/sysvinit.diff.gz +-rw-r--r-- 1 root root 1107 2005-12-19 21:12 ./source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tar +-rw-r--r-- 1 root root 2429 1995-01-07 08:18 ./source/a/tar/rmt.8.gz +-rw-r--r-- 1 root root 834 2002-03-23 22:06 ./source/a/tar/slack-desc +-rw-r--r-- 1 root root 949 2006-11-30 21:52 ./source/a/tar/tar-1.13.bzip2.diff.gz +-rw-r--r-- 1 root root 1052531 1999-07-08 05:50 ./source/a/tar/tar-1.13.tar.gz +-rw-r--r-- 1 root root 218 2009-05-06 21:08 ./source/a/tar/tar-1.22-support_txz.diff.gz +-rw-r--r-- 1 root root 2094575 2009-03-05 07:46 ./source/a/tar/tar-1.22.tar.bz2 +-rw-r--r-- 1 root root 2676 2002-02-22 03:24 ./source/a/tar/tar.1.gz +-rwxr-xr-x 1 root root 4539 2009-05-19 20:05 ./source/a/tar/tar.SlackBuild +-rw-r--r-- 1 root root 498 2004-06-06 20:15 ./source/a/tar/tar.nolonezero.diff.gz +-rw-r--r-- 1 root root 312 2009-03-10 01:18 ./source/a/tar/tar.norecordsizespam.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tcsh +-rw-r--r-- 1 root root 146 1995-08-06 23:12 ./source/a/tcsh/doinst.sh.gz +-rw-r--r-- 1 root root 886 2002-03-23 22:06 ./source/a/tcsh/slack-desc +-rw-r--r-- 1 root root 727440 2007-03-03 20:08 ./source/a/tcsh/tcsh-6.15.00.tar.bz2 +-rwxr-xr-x 1 root root 3004 2009-05-19 20:05 ./source/a/tcsh/tcsh.SlackBuild +-rw-r--r-- 1 root root 202 2006-02-09 20:33 ./source/a/tcsh/tcsh.nobuiltincolorls.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/time +-rw-r--r-- 1 root root 887 2008-02-11 03:44 ./source/a/time/slack-desc +-rw-r--r-- 1 root root 103066 1996-07-11 15:08 ./source/a/time/time-1.7.tar.gz +-rwxr-xr-x 1 root root 2263 2009-05-19 20:05 ./source/a/time/time.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/tree +-rw-r--r-- 1 root root 873 2006-12-23 06:19 ./source/a/tree/slack-desc +-rw-r--r-- 1 root root 31732 2009-01-22 15:17 ./source/a/tree/tree-1.5.2.2.tar.bz2 +-rwxr-xr-x 1 root root 2260 2009-05-19 20:05 ./source/a/tree/tree.SlackBuild +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/a/udev +drwxr-xr-x 6 root root 4096 2008-12-01 02:00 ./source/a/udev/config +drwxr-xr-x 2 root root 4096 2009-07-15 03:58 ./source/a/udev/config/modprobe.d +-rw-r--r-- 1 root root 6251 2009-07-15 02:38 ./source/a/udev/config/modprobe.d/blacklist.conf.new +-rw-r--r-- 1 root root 443 2009-04-20 23:01 ./source/a/udev/config/modprobe.d/isapnp.conf.new +-rw-r--r-- 1 root root 265 2009-07-15 03:54 ./source/a/udev/config/modprobe.d/psmouse.conf.new +-rw-r--r-- 1 root root 244 2008-12-01 02:00 ./source/a/udev/config/modprobe.d/usb-controller.conf.new +drwxr-xr-x 2 root root 4096 2008-12-01 02:59 ./source/a/udev/config/rc.d +-rw-r--r-- 1 root root 4231 2009-04-22 02:01 ./source/a/udev/config/rc.d/rc.udev.new +drwxr-xr-x 2 root root 4096 2008-08-31 06:31 ./source/a/udev/config/rules.d +-rw-r--r-- 1 root root 444 2008-12-03 23:46 ./source/a/udev/config/rules.d/40-slackware.rules +-rw-r--r-- 1 root root 1828 2009-04-22 02:06 ./source/a/udev/config/rules.d/65-permissions.rules +-rw-r--r-- 1 root root 305 2007-10-15 19:09 ./source/a/udev/config/rules.d/90-network.rules +drwxr-xr-x 2 root root 4096 2008-08-30 22:16 ./source/a/udev/config/scripts +-rwxr-xr-x 1 root root 1978 2007-09-22 22:06 ./source/a/udev/config/scripts/nethelper.sh +-rw-r--r-- 1 root root 485 2008-08-31 03:46 ./source/a/udev/config/udev.conf +-rw-r--r-- 1 root root 555 2009-07-15 03:52 ./source/a/udev/doinst.sh.gz +-rw-r--r-- 1 root root 758 2007-08-22 23:19 ./source/a/udev/rule_generator.diff.gz +-rw-r--r-- 1 root root 825 2009-04-20 23:01 ./source/a/udev/slack-desc +-rw-r--r-- 1 root root 448373 2009-04-09 12:53 ./source/a/udev/udev-141.tar.bz2 +-rw-r--r-- 1 root root 248 2009-04-08 23:38 ./source/a/udev/udev-141.tar.bz2.sign +-rw-r--r-- 1 root root 455 2008-10-09 12:40 ./source/a/udev/udev-fixed-devices.tar.gz +-rwxr-xr-x 1 root root 4370 2009-07-15 02:42 ./source/a/udev/udev.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/unarj +-rw-r--r-- 1 root root 269 2006-12-23 05:36 ./source/a/unarj/Makefile.gz +-rw-r--r-- 1 root root 848 2006-12-23 05:29 ./source/a/unarj/slack-desc +-rwxr-xr-x 1 root root 1993 2009-05-19 20:05 ./source/a/unarj/unarj.SlackBuild +-rw-r--r-- 1 root root 23151 2002-06-05 05:00 ./source/a/unarj/unarj265.tar.gz +drwxr-xr-x 2 root root 4096 2009-08-13 02:53 ./source/a/usbutils +-rw-r--r-- 1 root root 781 2009-05-30 01:47 ./source/a/usbutils/slack-desc +-rw-r--r-- 1 root root 218443 2009-05-06 22:22 ./source/a/usbutils/usbutils-0.82.tar.bz2 +-rwxr-xr-x 1 root root 3735 2009-08-13 02:56 ./source/a/usbutils/usbutils.SlackBuild +-rw-r--r-- 1 root root 220 2009-05-30 01:47 ./source/a/usbutils/usbutils.ids.dest.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/utempter +-rw-r--r-- 1 root root 230 2006-12-12 23:47 ./source/a/utempter/doinst.sh.gz +-rw-r--r-- 1 root root 14583 2005-12-11 13:16 ./source/a/utempter/libutempter-1.1.4.tar.bz2 +-rw-r--r-- 1 root root 189 2005-12-12 12:56 ./source/a/utempter/libutempter-1.1.4.tar.bz2.asc +-rw-r--r-- 1 root root 809 2003-06-08 01:36 ./source/a/utempter/slack-desc +-rwxr-xr-x 1 root root 2843 2009-05-19 20:05 ./source/a/utempter/utempter.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/a/util-linux-ng +-rw-r--r-- 1 root root 43150 2007-10-07 02:17 ./source/a/util-linux-ng/adjtimex_1.23-1.diff.gz +-rw-r--r-- 1 root root 56580 2007-10-07 02:17 ./source/a/util-linux-ng/adjtimex_1.23.orig.tar.gz +-rw-r--r-- 1 root root 4513 2008-03-17 05:37 ./source/a/util-linux-ng/bsdstrings.tar.gz +-rw-r--r-- 1 root root 337 2008-03-17 05:47 ./source/a/util-linux-ng/doinst.sh.gz +-rw-r--r-- 1 root root 198520 2001-04-15 14:21 ./source/a/util-linux-ng/net-tools-1.60.tar.bz2 +-rw-r--r-- 1 root root 650 2001-03-22 05:23 ./source/a/util-linux-ng/net-tools.diff.gz +-rw-r--r-- 1 root root 173444 2007-12-02 05:47 ./source/a/util-linux-ng/net-tools_1.60-19.diff.gz +-rw-r--r-- 1 root root 1266 2009-02-09 22:33 ./source/a/util-linux-ng/scsi_ioctl.h +-rw-r--r-- 1 root root 52437 2008-03-17 05:37 ./source/a/util-linux-ng/setserial-2.17.tar.gz +-rw-r--r-- 1 root root 729 2008-03-17 05:37 ./source/a/util-linux-ng/setserial-rc.serial.diff.gz +-rw-r--r-- 1 root root 904 2008-03-17 04:45 ./source/a/util-linux-ng/slack-desc +-rw-r--r-- 1 root root 2956769 2009-02-09 17:06 ./source/a/util-linux-ng/util-linux-ng-2.14.2.tar.bz2 +-rwxr-xr-x 1 root root 8503 2009-05-23 00:42 ./source/a/util-linux-ng/util-linux-ng.SlackBuild +-rw-r--r-- 1 root root 266 2008-03-31 19:54 ./source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff.gz +-rw-r--r-- 1 root root 11130 2008-03-17 05:37 ./source/a/util-linux-ng/ziptool-1.4.0.tar.bz2 +-rw-r--r-- 1 root root 386 2009-02-09 22:34 ./source/a/util-linux-ng/ziptool-fix_build.patch.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/which +-rw-r--r-- 1 root root 1038 2006-12-14 02:00 ./source/a/which/slack-desc +-rw-r--r-- 1 root root 135372 2008-08-06 15:21 ./source/a/which/which-2.20.tar.gz +-rw-r--r-- 1 root root 152 2008-08-06 15:21 ./source/a/which/which-2.20.tar.gz.sig +-rwxr-xr-x 1 root root 2806 2009-05-19 20:05 ./source/a/which/which.SlackBuild +drwxr-xr-x 2 root root 4096 2009-06-16 06:30 ./source/a/xfsprogs +-rw-r--r-- 1 root root 954 2006-02-21 05:35 ./source/a/xfsprogs/slack-desc +-rw-r--r-- 1 root root 840452 2009-05-05 17:29 ./source/a/xfsprogs/xfsprogs-3.0.1.tar.xz +-rwxr-xr-x 1 root root 3487 2009-06-13 04:32 ./source/a/xfsprogs/xfsprogs.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/xz +-rw-r--r-- 1 root root 952 2009-04-08 00:19 ./source/a/xz/slack-desc +-rw-r--r-- 1 root root 666579 2009-03-23 02:00 ./source/a/xz/xz-4.999.8beta.tar.bz2 +-rwxr-xr-x 1 root root 4125 2009-05-19 20:05 ./source/a/xz/xz.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/a/zoo +-rw-r--r-- 1 root root 996 2006-12-14 01:08 ./source/a/zoo/slack-desc +-rw-r--r-- 1 root root 173607 1994-12-30 20:19 ./source/a/zoo/zoo-2.10.tar.gz +-rwxr-xr-x 1 root root 2565 2009-05-19 20:05 ./source/a/zoo/zoo.SlackBuild +-rw-r--r-- 1 root root 12333 2006-05-29 21:19 ./source/a/zoo/zoo_2.10-18.diff.gz +drwxr-xr-x 70 root root 4096 2009-08-22 05:44 ./source/ap +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/a2ps +-rw-r--r-- 1 root root 1814364 2007-12-29 03:53 ./source/ap/a2ps/a2ps-4.14.tar.bz2 +-rwxr-xr-x 1 root root 4858 2009-05-23 00:41 ./source/ap/a2ps/a2ps.SlackBuild +-rw-r--r-- 1 root root 298 2009-03-31 01:11 ./source/ap/a2ps/a2ps.a2ps_cfg.in.diff.gz +-rw-r--r-- 1 root root 249 2001-01-19 05:15 ./source/ap/a2ps/a2ps.diff.gz +-rw-r--r-- 1 root root 62039 1997-08-28 13:11 ./source/ap/a2ps/psutils-1.17.tar.gz +-rw-r--r-- 1 root root 574 2009-03-04 01:22 ./source/ap/a2ps/psutils.destdir.diff.gz +-rw-r--r-- 1 root root 471 2001-01-19 04:54 ./source/ap/a2ps/psutils.diff.gz +-rw-r--r-- 1 root root 900 2002-03-29 03:05 ./source/ap/a2ps/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/acct +-rw-r--r-- 1 root root 23954 2008-03-08 08:47 ./source/ap/acct/acct-6.4pre1-6.diff.gz +-rw-r--r-- 1 root root 261410 2006-11-04 12:47 ./source/ap/acct/acct-6.4pre1.tar.bz2 +-rwxr-xr-x 1 root root 4051 2009-05-19 20:05 ./source/ap/acct/acct.SlackBuild +-rw-r--r-- 1 root root 309 2008-11-12 18:52 ./source/ap/acct/acct.logdir.fhs.diff.gz +-rw-r--r-- 1 root root 1054 2008-11-12 20:20 ./source/ap/acct/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/alsa-utils +-rw-r--r-- 1 root root 1039779 2008-10-29 12:51 ./source/ap/alsa-utils/alsa-utils-1.0.18.tar.bz2 +-rwxr-xr-x 1 root root 3220 2009-05-23 00:41 ./source/ap/alsa-utils/alsa-utils.SlackBuild +-rw-r--r-- 1 root root 899 2007-06-06 00:01 ./source/ap/alsa-utils/alsa-utils.alsaconf.diff.gz +-rw-r--r-- 1 root root 1090 2008-12-03 01:49 ./source/ap/alsa-utils/rc.alsa.gz +-rw-r--r-- 1 root root 1086 2003-08-29 06:09 ./source/ap/alsa-utils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/amp +-rw-r--r-- 1 root root 236 2002-02-24 19:46 ./source/ap/amp/_amp.tar.gz +-rw-r--r-- 1 root root 100337 1999-03-17 18:11 ./source/ap/amp/amp-0.7.6.tar.gz +-rw-r--r-- 1 root root 239 2008-10-01 07:38 ./source/ap/amp/amp-gcc34.diff.gz +-rwxr-xr-x 1 root root 2004 2009-05-19 20:05 ./source/ap/amp/amp.SlackBuild +-rw-r--r-- 1 root root 1514 1999-03-17 18:33 ./source/ap/amp/license_excerpts +-rw-r--r-- 1 root root 729 2002-03-29 01:09 ./source/ap/amp/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/ap/ash +-rw-r--r-- 1 root root 7174 1998-10-19 21:42 ./source/ap/ash/_ash.tar.gz +-rw-r--r-- 1 root root 121233 2001-01-12 16:50 ./source/ap/ash/ash-0.4.0.tar.gz +-rwxr-xr-x 1 root root 2761 2009-05-19 20:05 ./source/ap/ash/ash.SlackBuild +drwxr-xr-x 2 root root 4096 2002-06-02 18:56 ./source/ap/ash/patches +-rw-r--r-- 1 root root 6275 2002-06-02 18:57 ./source/ap/ash/patches/ash-builtin.patch.gz +-rw-r--r-- 1 root root 6506 2002-06-02 18:57 ./source/ap/ash/patches/ash-debian.patch.gz +-rw-r--r-- 1 root root 832 2002-06-02 18:57 ./source/ap/ash/patches/ash-echo.patch.gz +-rw-r--r-- 1 root root 707 2002-06-02 18:57 ./source/ap/ash/patches/ash-freebsd.patch.gz +-rw-r--r-- 1 root root 312 2002-06-02 18:57 ./source/ap/ash/patches/ash-getcwd.patch.gz +-rw-r--r-- 1 root root 1585 2002-06-02 18:57 ./source/ap/ash/patches/ash-getopt.patch.gz +-rw-r--r-- 1 root root 2937 2002-06-02 18:57 ./source/ap/ash/patches/ash-glob.patch.gz +-rw-r--r-- 1 root root 4555 2002-06-02 18:57 ./source/ap/ash/patches/ash-hetio.patch.gz +-rw-r--r-- 1 root root 1004 2002-06-02 18:57 ./source/ap/ash/patches/ash-jobs.patch.gz +-rw-r--r-- 1 root root 5625 2002-06-02 18:57 ./source/ap/ash/patches/ash-kill.patch.gz +-rw-r--r-- 1 root root 1338 2002-06-02 18:57 ./source/ap/ash/patches/ash-makefile.patch.gz +-rw-r--r-- 1 root root 718 2002-06-02 18:57 ./source/ap/ash/patches/ash-manpage.patch.gz +-rw-r--r-- 1 root root 2357 2002-06-02 18:57 ./source/ap/ash/patches/ash-memout.patch.gz +-rw-r--r-- 1 root root 1499 2002-06-02 18:57 ./source/ap/ash/patches/ash-misc.patch.gz +-rw-r--r-- 1 root root 388 2002-06-02 18:57 ./source/ap/ash/patches/ash-ppid.patch.gz +-rw-r--r-- 1 root root 3928 2002-06-02 18:57 ./source/ap/ash/patches/ash-redir.patch.gz +-rw-r--r-- 1 root root 4570 2002-06-02 18:57 ./source/ap/ash/patches/ash-setmode.patch.gz +-rw-r--r-- 1 root root 261 2002-06-02 18:57 ./source/ap/ash/patches/ash-sighup.patch.gz +-rw-r--r-- 1 root root 2215 2002-06-02 18:57 ./source/ap/ash/patches/ash-syntax.patch.gz +-rw-r--r-- 1 root root 3668 2002-06-02 18:57 ./source/ap/ash/patches/ash-test.patch.gz +-rw-r--r-- 1 root root 585 2002-06-02 18:57 ./source/ap/ash/patches/ash-times.patch.gz +-rw-r--r-- 1 root root 979 2002-06-02 19:04 ./source/ap/ash/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/at +-rw-r--r-- 1 root root 86817 2006-01-03 07:32 ./source/ap/at/at-3.1.10.tar.bz2 +-rwxr-xr-x 1 root root 3083 2009-05-19 20:05 ./source/ap/at/at.SlackBuild +-rw-r--r-- 1 root root 414 2006-08-03 00:45 ./source/ap/at/doinst.sh.gz +-rw-r--r-- 1 root root 737 2003-11-23 18:46 ./source/ap/at/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/aumix +-rw-r--r-- 1 root root 157503 2002-11-25 01:36 ./source/ap/aumix/aumix-2.8.tar.bz2 +-rwxr-xr-x 1 root root 2149 2009-05-23 00:41 ./source/ap/aumix/aumix.SlackBuild +-rw-r--r-- 1 root root 609 2003-08-29 06:17 ./source/ap/aumix/aumix.alsa.diff.gz +-rw-r--r-- 1 root root 764 2002-06-05 04:41 ./source/ap/aumix/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/bc +-rw-r--r-- 1 root root 290069 2006-09-05 02:43 ./source/ap/bc/bc-1.06.95.tar.bz2 +-rw-r--r-- 1 root root 184 2006-09-05 02:43 ./source/ap/bc/bc-1.06.95.tar.bz2.sig +-rwxr-xr-x 1 root root 3270 2009-05-23 00:41 ./source/ap/bc/bc.SlackBuild +-rw-r--r-- 1 root root 839 2002-05-13 17:58 ./source/ap/bc/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/bpe +-rw-r--r-- 1 root root 115498 2001-01-02 06:38 ./source/ap/bpe/bpe-2.01.00.tar.gz +-rwxr-xr-x 1 root root 2200 2009-05-23 00:41 ./source/ap/bpe/bpe.SlackBuild +-rw-r--r-- 1 root root 789 2004-06-06 22:28 ./source/ap/bpe/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/cdparanoia +-rw-r--r-- 1 root root 183236 2008-09-11 21:36 ./source/ap/cdparanoia/cdparanoia-III-10.2.src.tar.gz +-rw-r--r-- 1 root root 3327 2008-10-19 15:49 ./source/ap/cdparanoia/cdparanoia-III-10.2_cdda_private.patch.gz +-rwxr-xr-x 1 root root 3882 2009-05-19 20:05 ./source/ap/cdparanoia/cdparanoia.SlackBuild +-rw-r--r-- 1 root root 1056 2007-11-17 04:37 ./source/ap/cdparanoia/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/cdrdao +-rw-r--r-- 1 root root 1384615 2005-11-24 07:55 ./source/ap/cdrdao/cdrdao-1.2.1.tar.bz2 +-rwxr-xr-x 1 root root 2536 2009-05-19 20:05 ./source/ap/cdrdao/cdrdao.SlackBuild +-rw-r--r-- 1 root root 753 2002-03-23 22:15 ./source/ap/cdrdao/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/cdrtools +-rw-r--r-- 1 root root 1779673 2009-01-30 00:08 ./source/ap/cdrtools/cdrtools-2.01.01a57.tar.bz2 +-rwxr-xr-x 1 root root 4684 2009-05-23 00:41 ./source/ap/cdrtools/cdrtools.SlackBuild +-rw-r--r-- 1 root root 281 2008-02-28 05:50 ./source/ap/cdrtools/doinst.sh.gz +-rw-r--r-- 1 root root 868 2008-02-11 03:44 ./source/ap/cdrtools/slack-desc +-rw-r--r-- 1 root root 52968 2007-05-17 05:50 ./source/ap/cdrtools/zisofs-tools-1.0.8.tar.bz2 +-rw-r--r-- 1 root root 248 2007-05-17 05:50 ./source/ap/cdrtools/zisofs-tools-1.0.8.tar.bz2.sign +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/cupsddk +-rw-r--r-- 1 root root 2082214 2009-03-04 20:19 ./source/ap/cupsddk/cupsddk-1.2.3-source.tar.bz2 +-rwxr-xr-x 1 root root 2686 2009-05-19 20:05 ./source/ap/cupsddk/cupsddk.SlackBuild +-rw-r--r-- 1 root root 989 2009-03-05 16:01 ./source/ap/cupsddk/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-22 21:58 ./source/ap/dc3dd +-rw-r--r-- 1 root root 2138588 2009-03-19 19:59 ./source/ap/dc3dd/dc3dd-6.12.3.tar.xz +-rwxr-xr-x 1 root root 2910 2009-07-22 22:07 ./source/ap/dc3dd/dc3dd.SlackBuild +-rw-r--r-- 1 root root 913 2009-02-14 22:30 ./source/ap/dc3dd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/diffstat +-rw-r--r-- 1 root root 88470 2006-07-17 00:14 ./source/ap/diffstat/diffstat-1.43.tar.bz2 +-rwxr-xr-x 1 root root 3016 2009-05-19 20:05 ./source/ap/diffstat/diffstat.SlackBuild +-rw-r--r-- 1 root root 868 2006-09-20 05:07 ./source/ap/diffstat/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/diffutils +-rw-r--r-- 1 root root 780086 2002-04-06 01:13 ./source/ap/diffutils/diffutils-2.8.1.tar.gz +-rw-r--r-- 1 root root 357 2006-08-21 02:41 ./source/ap/diffutils/diffutils-sdiff-no-waitpid.patch.gz +-rwxr-xr-x 1 root root 3271 2009-05-19 20:05 ./source/ap/diffutils/diffutils.SlackBuild +-rw-r--r-- 1 root root 321 2006-08-21 02:46 ./source/ap/diffutils/doinst.sh.gz +-rw-r--r-- 1 root root 743 2002-03-23 22:17 ./source/ap/diffutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-13 04:41 ./source/ap/dmapi +-rw-r--r-- 1 root root 196416 2009-05-05 17:24 ./source/ap/dmapi/dmapi-2.2.10.tar.xz +-rwxr-xr-x 1 root root 3523 2009-06-13 04:42 ./source/ap/dmapi/dmapi.SlackBuild +-rw-r--r-- 1 root root 526 2008-04-01 05:05 ./source/ap/dmapi/dmapi.destdir.diff.gz +-rw-r--r-- 1 root root 804 2006-02-21 05:56 ./source/ap/dmapi/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/dmidecode +-rw-r--r-- 1 root root 51904 2008-11-23 20:56 ./source/ap/dmidecode/dmidecode-2.10.tar.bz2 +-rw-r--r-- 1 root root 65 2008-11-23 20:56 ./source/ap/dmidecode/dmidecode-2.10.tar.bz2.sig +-rwxr-xr-x 1 root root 2905 2009-05-19 20:05 ./source/ap/dmidecode/dmidecode.SlackBuild +-rw-r--r-- 1 root root 215 2007-05-02 19:54 ./source/ap/dmidecode/dmidecode.makefile.diff.gz +-rw-r--r-- 1 root root 933 2007-05-02 20:04 ./source/ap/dmidecode/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/dvd+rw-tools +-rw-r--r-- 1 root root 140846 2008-03-05 08:44 ./source/ap/dvd+rw-tools/dvd+rw-tools-7.1.tar.gz +-rwxr-xr-x 1 root root 2462 2009-05-19 20:05 ./source/ap/dvd+rw-tools/dvd+rw-tools.SlackBuild +-rw-r--r-- 1 root root 185 2008-04-07 04:06 ./source/ap/dvd+rw-tools/dvd+rw-tools.limits.h.diff.gz +-rw-r--r-- 1 root root 49 2003-09-02 03:20 ./source/ap/dvd+rw-tools/dvd+rw-tools.url +-rw-r--r-- 1 root root 823 2008-02-11 03:44 ./source/ap/dvd+rw-tools/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/enscript +-rw-r--r-- 1 root root 814308 2002-01-24 07:39 ./source/ap/enscript/enscript-1.6.3.tar.gz +-rwxr-xr-x 1 root root 2878 2009-05-19 20:05 ./source/ap/enscript/enscript.SlackBuild +-rw-r--r-- 1 root root 920 2002-03-23 22:26 ./source/ap/enscript/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/flac +-rw-r--r-- 1 root root 1459486 2007-09-18 20:12 ./source/ap/flac/flac-1.2.1.tar.bz2 +-rwxr-xr-x 1 root root 3497 2009-05-19 20:05 ./source/ap/flac/flac.SlackBuild +-rw-r--r-- 1 root root 371 2008-03-08 21:48 ./source/ap/flac/flac.man.diff.gz +-rw-r--r-- 1 root root 1058 2002-08-26 19:03 ./source/ap/flac/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-18 20:29 ./source/ap/foomatic-filters +-rw-r--r-- 1 root root 275 2007-09-26 20:11 ./source/ap/foomatic-filters/doinst.sh.gz +-rw-r--r-- 1 root root 238373 2009-06-24 11:54 ./source/ap/foomatic-filters/foomatic-filters-4.0.2.tar.gz +-rwxr-xr-x 1 root root 3684 2009-08-18 20:55 ./source/ap/foomatic-filters/foomatic-filters.SlackBuild +-rw-r--r-- 1 root root 1104 2008-02-11 03:44 ./source/ap/foomatic-filters/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-22 01:42 ./source/ap/ghostscript +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/ghostscript-fonts-std +-rw-r--r-- 1 root root 165 2007-02-19 00:49 ./source/ap/ghostscript-fonts-std/doinst.sh.gz +-rw-r--r-- 1 root root 3621829 2003-07-24 12:38 ./source/ap/ghostscript-fonts-std/ghostscript-fonts-std-8.11.tar.bz2 +-rwxr-xr-x 1 root root 2267 2009-05-19 20:05 ./source/ap/ghostscript-fonts-std/ghostscript-fonts-std.SlackBuild +-rw-r--r-- 1 root root 840 2007-02-19 00:47 ./source/ap/ghostscript-fonts-std/slack-desc +-rw-r--r-- 1 root root 1436 2008-04-11 20:41 ./source/ap/ghostscript/cidfmap.gz +-rw-r--r-- 1 root root 12676720 2009-07-31 22:59 ./source/ap/ghostscript/ghostscript-8.70.tar.xz +-rwxr-xr-x 1 root root 4956 2009-08-22 05:34 ./source/ap/ghostscript/ghostscript.SlackBuild +-rw-r--r-- 1 root root 1011 2008-03-02 02:54 ./source/ap/ghostscript/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 19:18 ./source/ap/gphoto2 +-rw-r--r-- 1 root root 598659 2009-04-02 15:16 ./source/ap/gphoto2/gphoto2-2.4.5.tar.bz2 +-rwxr-xr-x 1 root root 2934 2009-06-09 19:18 ./source/ap/gphoto2/gphoto2.SlackBuild +-rw-r--r-- 1 root root 762 2008-09-11 03:57 ./source/ap/gphoto2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/groff +-rw-r--r-- 1 root root 2842508 2009-01-09 14:34 ./source/ap/groff/groff-1.20.1.tar.bz2 +-rwxr-xr-x 1 root root 4105 2009-05-19 20:05 ./source/ap/groff/groff.SlackBuild +-rw-r--r-- 1 root root 270 2009-01-14 04:15 ./source/ap/groff/groff.docdir.diff.gz +-rw-r--r-- 1 root root 459 2005-06-23 01:46 ./source/ap/groff/groff.man.mdoc.local.gz +-rw-r--r-- 1 root root 887 2002-03-23 22:27 ./source/ap/groff/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-22 02:33 ./source/ap/gutenprint +-rw-r--r-- 1 root root 4017848 2009-07-30 01:49 ./source/ap/gutenprint/gutenprint-5.2.4.tar.xz +-rwxr-xr-x 1 root root 3525 2009-08-22 05:44 ./source/ap/gutenprint/gutenprint.SlackBuild +-rw-r--r-- 1 root root 1010 2006-08-12 05:40 ./source/ap/gutenprint/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 20:27 ./source/ap/hplip +-rw-r--r-- 1 root root 118 2009-03-05 16:38 ./source/ap/hplip/doinst.sh.gz +-rw-r--r-- 1 root root 14039442 2009-04-29 21:21 ./source/ap/hplip/hplip-3.9.4b.tar.bz2 +-rwxr-xr-x 1 root root 3550 2009-06-09 20:28 ./source/ap/hplip/hplip.SlackBuild +-rw-r--r-- 1 root root 583 2009-06-09 05:44 ./source/ap/hplip/hplip.prevent_segfault.diff.gz +-rw-r--r-- 1 root root 935 2009-03-05 17:13 ./source/ap/hplip/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/ispell +-rw-r--r-- 1 root root 580742 2001-08-01 22:17 ./source/ap/ispell/ispell-3.2.06.tar.gz +-rwxr-xr-x 1 root root 3076 2009-05-19 20:05 ./source/ap/ispell/ispell.SlackBuild +-rw-r--r-- 1 root root 5808 2001-06-08 20:52 ./source/ap/ispell/ispell.diff.gz +-rw-r--r-- 1 root root 1057 2002-03-23 22:27 ./source/ap/ispell/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/jed +-rw-r--r-- 1 root root 762826 2006-04-03 02:18 ./source/ap/jed/jed-0.99-18.tar.bz2 +-rw-r--r-- 1 root root 261 2006-04-03 02:28 ./source/ap/jed/jed-0.99-18.tar.bz2.sig +-rwxr-xr-x 1 root root 2986 2009-05-19 20:05 ./source/ap/jed/jed.SlackBuild +-rw-r--r-- 1 root root 305 2006-06-26 04:10 ./source/ap/jed/jed.mouse.diff.gz +-rw-r--r-- 1 root root 258 2006-06-26 04:15 ./source/ap/jed/jed.multibyte.diff.gz +-rw-r--r-- 1 root root 938 2002-03-23 22:28 ./source/ap/jed/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/joe +-rw-r--r-- 1 root root 492145 2006-07-20 19:45 ./source/ap/joe/joe-3.5.tar.bz2 +-rwxr-xr-x 1 root root 2375 2009-05-23 00:41 ./source/ap/joe/joe.SlackBuild +-rw-r--r-- 1 root root 599 2002-02-24 21:25 ./source/ap/joe/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/jove +-rwxr-xr-x 1 root root 2850 2009-06-16 18:40 ./source/ap/jove/jove.SlackBuild +-rw-r--r-- 1 root root 1709 2009-03-04 05:45 ./source/ap/jove/jove.makefile.diff.gz +-rw-r--r-- 1 root root 451492 2009-03-04 05:45 ./source/ap/jove/jove4.16.0.70.tar.gz +-rw-r--r-- 1 root root 792 2009-03-04 05:45 ./source/ap/jove/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/ksh93 +-rw-r--r-- 1 root root 12885 2004-12-16 17:19 ./source/ap/ksh93/CPL +-rw-r--r-- 1 root root 344670 2007-04-15 20:14 ./source/ap/ksh93/INIT.2007-03-28.tgz +-rw-r--r-- 1 root root 611444 2007-04-15 20:15 ./source/ap/ksh93/ast-ksh-locale.2007-03-28.tgz +-rw-r--r-- 1 root root 1646999 2007-04-15 20:15 ./source/ap/ksh93/ast-ksh.2007-03-28.tgz +-rwxr-xr-x 1 root root 4943 2009-05-19 20:05 ./source/ap/ksh93/ksh93.SlackBuild +-rw-r--r-- 1 root root 996 2002-03-23 22:28 ./source/ap/ksh93/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/libx86 +-rw-r--r-- 1 root root 87428 2008-05-19 09:30 ./source/ap/libx86/libx86-1.1.tar.gz +-rwxr-xr-x 1 root root 2627 2009-05-19 20:05 ./source/ap/libx86/libx86.SlackBuild +-rw-r--r-- 1 root root 127 2008-11-24 18:21 ./source/ap/libx86/libx86.info +-rw-r--r-- 1 root root 324 2008-11-24 08:27 ./source/ap/libx86/lrmi.c.diff.gz +-rw-r--r-- 1 root root 769 2008-11-24 18:22 ./source/ap/libx86/slack-desc +drwxr-xr-x 4 root root 4096 2009-08-02 20:41 ./source/ap/linuxdoc-tools +-rw-r--r-- 1 root root 4268 2009-08-02 19:03 ./source/ap/linuxdoc-tools/ChangeLog.txt +drwxr-xr-x 2 root root 4096 2005-10-04 18:51 ./source/ap/linuxdoc-tools/arm +-rwxr-xr-x 1 root root 1591 2009-07-18 12:15 ./source/ap/linuxdoc-tools/arm/build +-rwxr-xr-x 1 root root 28 2006-02-05 00:16 ./source/ap/linuxdoc-tools/linuxdoc-tools.SlackBuild +-rwxr-xr-x 1 root root 30046 2009-08-02 18:28 ./source/ap/linuxdoc-tools/linuxdoc-tools.build +-rwxr-xr-x 1 root root 2739 2009-08-02 19:26 ./source/ap/linuxdoc-tools/postbuildfixes.sh +-rw-r--r-- 1 root root 1166 2006-06-26 15:17 ./source/ap/linuxdoc-tools/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-31 23:53 ./source/ap/linuxdoc-tools/sources +-rw-r--r-- 1 root root 1189280 2009-05-26 21:26 ./source/ap/linuxdoc-tools/sources/asciidoc-8.4.5.tar.gz +-rw-r--r-- 1 root root 277650 2007-05-05 12:33 ./source/ap/linuxdoc-tools/sources/docbook-dsssl-1.79.tar.bz2 +-rw-r--r-- 1 root root 142278 2004-11-12 12:42 ./source/ap/linuxdoc-tools/sources/docbook-dsssl-doc-1.79.tar.bz2 +-rw-r--r-- 1 root root 3748236 2009-07-18 10:12 ./source/ap/linuxdoc-tools/sources/docbook-style-xsl-1.75.1-1.fc12.src.rpm +-rw-r--r-- 1 root root 163253 2009-07-18 09:01 ./source/ap/linuxdoc-tools/sources/docbook-utils-0.6.14-17.fc12.src.rpm +-rw-r--r-- 1 root root 98497 2006-10-26 17:17 ./source/ap/linuxdoc-tools/sources/docbook-xml-4.5.zip +-rw-r--r-- 1 root root 13530 2007-09-26 22:02 ./source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff.gz +-rw-r--r-- 1 root root 476372 2007-04-11 01:17 ./source/ap/linuxdoc-tools/sources/docbook_4.5.orig.tar.gz +-rw-r--r-- 1 root root 725038 2009-06-28 03:16 ./source/ap/linuxdoc-tools/sources/gnome-doc-utils-0.17.2.tar.bz2 +-rw-r--r-- 1 root root 453459 2008-11-16 19:21 ./source/ap/linuxdoc-tools/sources/gtk-doc-1.11.tar.bz2 +-rw-r--r-- 1 root root 8329 2008-01-04 17:02 ./source/ap/linuxdoc-tools/sources/libsgmls-perl_1.03ii-32.diff.gz +-rw-r--r-- 1 root root 92130 2001-04-15 16:15 ./source/ap/linuxdoc-tools/sources/libsgmls-perl_1.03ii.orig.tar.gz +-rw-r--r-- 1 root root 328 2009-05-12 19:19 ./source/ap/linuxdoc-tools/sources/linuxdoc-tools.lib64.diff +-rw-r--r-- 1 root root 610443 2008-07-07 11:17 ./source/ap/linuxdoc-tools/sources/linuxdoc-tools_0.9.56.tar.gz +-rw-r--r-- 1 root root 1058451 2003-04-18 20:32 ./source/ap/linuxdoc-tools/sources/openjade-1.3.3-pre1.tar.gz +-rw-r--r-- 1 root root 1524905 2009-03-13 19:31 ./source/ap/linuxdoc-tools/sources/opensp-1.5.2-11.fc11.src.rpm +-rw-r--r-- 1 root root 95270 2009-07-18 09:10 ./source/ap/linuxdoc-tools/sources/sgml-common-0.6.3-29.fc12.src.rpm +-rwxr-xr-x 1 root root 3511 2009-07-31 23:17 ./source/ap/linuxdoc-tools/sources/source.download +-rw-r--r-- 1 root root 103939 2009-03-25 15:02 ./source/ap/linuxdoc-tools/sources/xmlto-0.0.22.tar.bz2 +-rwxr-xr-x 1 root root 2612 2009-08-02 19:09 ./source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools +drwxr-xr-x 2 root root 4096 2009-06-22 22:26 ./source/ap/lm_sensors +-rw-r--r-- 1 root root 154551 2009-06-21 19:03 ./source/ap/lm_sensors/lm_sensors-3.1.1.tar.bz2 +-rw-r--r-- 1 root root 65 2009-06-21 19:03 ./source/ap/lm_sensors/lm_sensors-3.1.1.tar.bz2.sig +-rwxr-xr-x 1 root root 3453 2009-06-22 21:43 ./source/ap/lm_sensors/lm_sensors.SlackBuild +-rw-r--r-- 1 root root 312 2008-10-26 01:06 ./source/ap/lm_sensors/lm_sensors.makefile.diff.gz +-rw-r--r-- 1 root root 1105 2006-09-20 03:52 ./source/ap/lm_sensors/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/lsof +-rwxr-xr-x 1 root root 2459 2009-05-19 20:05 ./source/ap/lsof/lsof.SlackBuild +-rw-r--r-- 1 root root 756729 2007-04-24 19:05 ./source/ap/lsof/lsof_4.78.tar.bz2 +-rw-r--r-- 1 root root 152 2007-04-24 19:05 ./source/ap/lsof/lsof_4.78.tar.bz2.sig +-rw-r--r-- 1 root root 789 2002-03-17 00:42 ./source/ap/lsof/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/lsscsi +-rw-r--r-- 1 root root 107376 2009-01-23 16:50 ./source/ap/lsscsi/lsscsi-0.22.tar.bz2 +-rwxr-xr-x 1 root root 3183 2009-05-19 20:05 ./source/ap/lsscsi/lsscsi.SlackBuild +-rw-r--r-- 1 root root 36 2008-11-29 19:46 ./source/ap/lsscsi/lsscsi.url +-rw-r--r-- 1 root root 825 2007-05-02 19:26 ./source/ap/lsscsi/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/madplay +-rw-r--r-- 1 root root 590929 2004-02-23 23:28 ./source/ap/madplay/madplay-0.15.2b.tar.gz +-rw-r--r-- 1 root root 174 2004-02-23 23:28 ./source/ap/madplay/madplay-0.15.2b.tar.gz.sign +-rwxr-xr-x 1 root root 2458 2009-05-19 20:05 ./source/ap/madplay/madplay.SlackBuild +-rw-r--r-- 1 root root 797 2003-09-10 00:59 ./source/ap/madplay/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-09 01:53 ./source/ap/man +drwxr-xr-x 2 root root 4096 2009-08-11 21:10 ./source/ap/man-pages +-rw-r--r-- 1 root root 147 2008-07-17 17:25 ./source/ap/man-pages/doinst.sh.gz +-rw-r--r-- 1 root root 1090236 2009-07-26 18:30 ./source/ap/man-pages/man-pages-3.22.tar.bz2 +-rw-r--r-- 1 root root 971300 2008-06-17 11:18 ./source/ap/man-pages/man-pages-posix-2003-a.tar.bz2 +-rwxr-xr-x 1 root root 3616 2009-08-11 21:10 ./source/ap/man-pages/man-pages.SlackBuild +-rw-r--r-- 1 root root 950 2008-07-17 17:29 ./source/ap/man-pages/slack-desc +-rw-r--r-- 1 root root 156268 2009-06-14 02:57 ./source/ap/man-pages/whatis.sample.xz +-rw-r--r-- 1 root root 274 2008-04-09 19:04 ./source/ap/man/doinst.sh.gz +-rw-r--r-- 1 root root 215 2009-08-09 01:53 ./source/ap/man/man-1.6f.nroff.mandoc.diff.gz +-rw-r--r-- 1 root root 223765 2007-12-31 22:38 ./source/ap/man/man-1.6f.tar.bz2 +-rwxr-xr-x 1 root root 3000 2009-08-09 02:17 ./source/ap/man/man.SlackBuild +-rw-r--r-- 1 root root 901 2002-03-23 22:29 ./source/ap/man/slack-desc +drwxr-xr-x 3 root root 4096 2009-07-14 20:22 ./source/ap/mc +-rw-r--r-- 1 root root 1456708 2009-07-14 18:50 ./source/ap/mc/mc-20090714_git.tar.xz +-rwxr-xr-x 1 root root 3233 2009-07-14 21:21 ./source/ap/mc/mc.SlackBuild +drwxr-xr-x 2 root root 4096 2009-07-14 20:23 ./source/ap/mc/profile.d +-rwxr-xr-x 1 root root 389 2008-11-29 19:55 ./source/ap/mc/profile.d/mc-wrapper.csh +-rwxr-xr-x 1 root root 315 2008-11-29 19:55 ./source/ap/mc/profile.d/mc-wrapper.sh +-rwxr-xr-x 1 root root 51 2008-11-29 19:55 ./source/ap/mc/profile.d/mc.csh +-rwxr-xr-x 1 root root 45 2008-11-29 19:55 ./source/ap/mc/profile.d/mc.sh +-rw-r--r-- 1 root root 904 2002-02-26 05:38 ./source/ap/mc/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-22 02:44 ./source/ap/most +-rw-r--r-- 1 root root 131130 2007-09-09 16:16 ./source/ap/most/most-5.0.0a.tar.bz2 +-rwxr-xr-x 1 root root 2651 2009-06-25 23:08 ./source/ap/most/most.SlackBuild +-rw-r--r-- 1 root root 833 2003-06-06 00:54 ./source/ap/most/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/mpg321 +-rw-r--r-- 1 root root 113449 2002-03-24 05:53 ./source/ap/mpg321/mpg321-0.2.10.tar.gz +-rwxr-xr-x 1 root root 2286 2009-05-19 20:05 ./source/ap/mpg321/mpg321.SlackBuild +-rw-r--r-- 1 root root 916 2002-05-17 20:39 ./source/ap/mpg321/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-04 01:40 ./source/ap/mysql +-rw-r--r-- 1 root root 330 2008-10-02 04:21 ./source/ap/mysql/doinst.sh.gz +-rw-r--r-- 1 root root 81 2009-06-06 19:32 ./source/ap/mysql/mirror-url +-rw-r--r-- 1 root root 24660560 2009-07-07 14:05 ./source/ap/mysql/mysql-5.0.84.tar.xz +-rwxr-xr-x 1 root root 1304 2009-08-04 01:40 ./source/ap/mysql/mysql-embedded.build +-rwxr-xr-x 1 root root 5124 2009-08-04 01:40 ./source/ap/mysql/mysql.SlackBuild +-rw-r--r-- 1 root root 1208 2008-04-17 20:26 ./source/ap/mysql/rc.mysqld.gz +-rw-r--r-- 1 root root 816 2002-03-23 22:31 ./source/ap/mysql/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/nano +-rw-r--r-- 1 root root 935683 2008-09-10 15:58 ./source/ap/nano/nano-2.0.9.tar.bz2 +-rwxr-xr-x 1 root root 3323 2009-05-23 00:41 ./source/ap/nano/nano.SlackBuild +-rw-r--r-- 1 root root 870 2007-04-07 20:52 ./source/ap/nano/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-10 01:26 ./source/ap/normalize +-rw-r--r-- 1 root root 388777 2005-09-14 18:46 ./source/ap/normalize/normalize-0.7.7.tar.bz2 +-rwxr-xr-x 1 root root 2475 2009-06-10 01:26 ./source/ap/normalize/normalize.SlackBuild +-rw-r--r-- 1 root root 971 2004-05-25 04:30 ./source/ap/normalize/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/ntfsprogs +-rw-r--r-- 1 root root 678114 2007-09-29 07:37 ./source/ap/ntfsprogs/ntfsprogs-2.0.0.tar.bz2 +-rwxr-xr-x 1 root root 3560 2009-05-19 20:05 ./source/ap/ntfsprogs/ntfsprogs.SlackBuild +-rw-r--r-- 1 root root 1064 2008-02-29 05:35 ./source/ap/ntfsprogs/slack-desc +drwxr-xr-x 2 root root 4096 2009-04-14 04:07 ./source/ap/pm-utils +-rw-r--r-- 1 root root 5411 2009-04-14 04:05 ./source/ap/pm-utils/README.SLACKWARE +-rw-r--r-- 1 root root 131736 2009-04-14 04:02 ./source/ap/pm-utils/pm-utils-1.2.5.tar.xz +-rwxr-xr-x 1 root root 3191 2009-06-09 23:36 ./source/ap/pm-utils/pm-utils.SlackBuild +-rw-r--r-- 1 root root 32 2009-04-14 04:05 ./source/ap/pm-utils/pm-utils.url +-rw-r--r-- 1 root root 835 2009-04-14 04:05 ./source/ap/pm-utils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/radeontool +-rw-r--r-- 1 root root 20869 2008-11-24 19:14 ./source/ap/radeontool/radeontool-1.5.tar.gz +-rwxr-xr-x 1 root root 2280 2009-05-19 20:05 ./source/ap/radeontool/radeontool.SlackBuild +-rw-r--r-- 1 root root 219 2008-11-24 19:22 ./source/ap/radeontool/radeontool.c.diff.gz +-rw-r--r-- 1 root root 247 2008-11-24 19:15 ./source/ap/radeontool/radeontool.info +-rw-r--r-- 1 root root 802 2008-11-24 19:37 ./source/ap/radeontool/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/ap/rexima +-rw-r--r-- 1 root root 15903 2003-07-01 08:56 ./source/ap/rexima/rexima-1.4.tar.gz +-rwxr-xr-x 1 root root 2106 2009-05-23 00:41 ./source/ap/rexima/rexima.SlackBuild +-rw-r--r-- 1 root root 829 2002-05-29 20:44 ./source/ap/rexima/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/rpm +-rw-r--r-- 1 root root 133 2008-06-30 19:30 ./source/ap/rpm/Packages.gz +-rw-r--r-- 1 root root 132 2001-05-22 21:12 ./source/ap/rpm/doinst.sh.gz +-rw-r--r-- 1 root root 2596088 2009-04-22 19:31 ./source/ap/rpm/rpm-4.7.0.tar.xz +-rwxr-xr-x 1 root root 3745 2009-06-04 21:37 ./source/ap/rpm/rpm.SlackBuild +-rw-r--r-- 1 root root 948 2009-04-23 03:04 ./source/ap/rpm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/rzip +-rw-r--r-- 1 root root 46785 2006-02-14 00:41 ./source/ap/rzip/rzip-2.1.tar.gz +-rwxr-xr-x 1 root root 2451 2009-05-19 20:05 ./source/ap/rzip/rzip.SlackBuild +-rw-r--r-- 1 root root 723 2004-06-03 03:13 ./source/ap/rzip/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/ap/sc +-rw-r--r-- 1 root root 309 1999-08-03 23:52 ./source/ap/sc/_sc.tar.gz +-rw-r--r-- 1 root root 636 2002-09-20 05:00 ./source/ap/sc/sc-7.16.lsm +-rw-r--r-- 1 root root 210809 2002-09-20 05:00 ./source/ap/sc/sc-7.16.tar.gz +-rw-r--r-- 1 root root 187 2008-10-23 19:40 ./source/ap/sc/sc-gcc34.diff.gz +-rw-r--r-- 1 root root 208 2008-10-23 19:41 ./source/ap/sc/sc-malloc.diff.gz +-rwxr-xr-x 1 root root 2764 2009-05-23 00:42 ./source/ap/sc/sc.SlackBuild +-rw-r--r-- 1 root root 576 2002-02-24 21:19 ./source/ap/sc/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/ap/screen +-rw-r--r-- 1 root root 741741 2006-10-23 13:10 ./source/ap/screen/screen-4.0.3.tar.bz2 +-rwxr-xr-x 1 root root 3756 2009-05-23 00:42 ./source/ap/screen/screen.SlackBuild +-rw-r--r-- 1 root root 1111 2002-03-23 22:34 ./source/ap/screen/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/seejpeg +-rw-r--r-- 1 root root 227 2000-04-30 06:01 ./source/ap/seejpeg/_seejpeg.tar.gz +-rw-r--r-- 1 root root 500701 1996-07-25 23:00 ./source/ap/seejpeg/libjpeg-6a.tar.gz +-rw-r--r-- 1 root root 654 2000-04-30 05:52 ./source/ap/seejpeg/seejpeg-1.10.diff.gz +-rw-r--r-- 1 root root 855 1999-11-09 00:03 ./source/ap/seejpeg/seejpeg-1.10.lsm +-rw-r--r-- 1 root root 46550 1999-11-09 00:03 ./source/ap/seejpeg/seejpeg-1.10.tgz +-rwxr-xr-x 1 root root 2281 2009-05-19 20:05 ./source/ap/seejpeg/seejpeg.SlackBuild +-rw-r--r-- 1 root root 913 2002-03-23 22:34 ./source/ap/seejpeg/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 19:16 ./source/ap/slackpkg +-rw-r--r-- 1 root root 69 2008-11-21 19:07 ./source/ap/slackpkg/README +drwxr-xr-x 2 root root 4096 2009-08-24 07:00 ./source/ap/sox +-rw-r--r-- 1 root root 710 2002-03-23 22:35 ./source/ap/sox/slack-desc +-rw-r--r-- 1 root root 688296 2009-06-21 20:05 ./source/ap/sox/sox-14.3.0.tar.xz +-rwxr-xr-x 1 root root 2835 2009-08-24 07:00 ./source/ap/sox/sox.SlackBuild +drwxr-xr-x 2 root root 4096 2009-06-12 23:10 ./source/ap/sqlite +-rw-r--r-- 1 root root 1684 2008-08-01 05:31 ./source/ap/sqlite/COPYRIGHT.gz +-rw-r--r-- 1 root root 942 2008-08-01 01:21 ./source/ap/sqlite/slack-desc +-rw-r--r-- 1 root root 1838140 2009-06-02 19:20 ./source/ap/sqlite/sqlite-3.6.14.2.tar.xz +-rwxr-xr-x 1 root root 3381 2009-06-12 22:07 ./source/ap/sqlite/sqlite.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/sudo +-rw-r--r-- 1 root root 275 2004-09-19 00:25 ./source/ap/sudo/doinst.sh.gz +-rw-r--r-- 1 root root 869 2002-03-23 22:36 ./source/ap/sudo/slack-desc +-rw-r--r-- 1 root root 585643 2005-11-08 18:28 ./source/ap/sudo/sudo-1.6.8p12.tar.gz +-rw-r--r-- 1 root root 65 2005-11-08 18:50 ./source/ap/sudo/sudo-1.6.8p12.tar.gz.sig +-rwxr-xr-x 1 root root 2765 2009-05-19 20:05 ./source/ap/sudo/sudo.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/sysstat +-rw-r--r-- 1 root root 796 2006-08-15 03:11 ./source/ap/sysstat/slack-desc +-rw-r--r-- 1 root root 120803 2006-07-09 09:57 ./source/ap/sysstat/sysstat-7.0.0.tar.bz2 +-rwxr-xr-x 1 root root 3638 2009-05-19 20:05 ./source/ap/sysstat/sysstat.SlackBuild +-rw-r--r-- 1 root root 673 2006-08-15 02:41 ./source/ap/sysstat/sysstat.etc.sysstat.diff.gz +-rw-r--r-- 1 root root 498 2006-08-15 02:55 ./source/ap/sysstat/sysstat.prefix.usr.diff.gz +-rw-r--r-- 1 root root 454 2006-08-15 03:04 ./source/ap/sysstat/sysstat.var.run.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/ap/texinfo +-rw-r--r-- 1 root root 5853 2008-11-20 23:57 ./source/ap/texinfo/dir.gz +-rw-r--r-- 1 root root 251 2008-11-21 00:01 ./source/ap/texinfo/doinst.sh.gz +-rw-r--r-- 1 root root 1074 2002-03-22 20:41 ./source/ap/texinfo/slack-desc +-rw-r--r-- 1 root root 1969110 2008-09-29 15:17 ./source/ap/texinfo/texinfo-4.13a.tar.bz2 +-rwxr-xr-x 1 root root 2867 2009-05-23 00:42 ./source/ap/texinfo/texinfo.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/vbetool +-rw-r--r-- 1 root root 833 2008-11-24 18:23 ./source/ap/vbetool/slack-desc +-rw-r--r-- 1 root root 182826 2008-05-16 12:56 ./source/ap/vbetool/vbetool-1.1.tar.gz +-rwxr-xr-x 1 root root 2546 2009-05-19 20:05 ./source/ap/vbetool/vbetool.SlackBuild +-rw-r--r-- 1 root root 129 2008-11-24 18:23 ./source/ap/vbetool/vbetool.info +drwxr-xr-x 3 root root 4096 2009-05-28 18:09 ./source/ap/vim +-rw-r--r-- 1 root root 287496 2007-09-05 04:42 ./source/ap/vim/ctags-5.7.tar.gz +-rw-r--r-- 1 root root 118 2006-08-23 23:20 ./source/ap/vim/doinst.sh.gz +-rw-r--r-- 1 root root 4203 2007-02-16 22:42 ./source/ap/vim/gvim.desktop +-rw-r--r-- 1 root root 8249 2006-01-19 17:01 ./source/ap/vim/gvim.png +drwxr-xr-x 2 root root 12288 2009-08-25 01:11 ./source/ap/vim/patches +-rw-r--r-- 1 root root 972 2008-08-17 21:03 ./source/ap/vim/patches/7.2.001.gz +-rw-r--r-- 1 root root 829 2008-08-17 21:45 ./source/ap/vim/patches/7.2.002.gz +-rw-r--r-- 1 root root 1380 2008-08-25 02:14 ./source/ap/vim/patches/7.2.003.gz +-rw-r--r-- 1 root root 1324 2008-08-25 02:36 ./source/ap/vim/patches/7.2.004.gz +-rw-r--r-- 1 root root 1621 2008-08-25 02:51 ./source/ap/vim/patches/7.2.005.gz +-rw-r--r-- 1 root root 871 2008-08-25 03:04 ./source/ap/vim/patches/7.2.006.gz +-rw-r--r-- 1 root root 4921 2008-09-01 14:53 ./source/ap/vim/patches/7.2.007.gz +-rw-r--r-- 1 root root 934 2008-09-01 15:33 ./source/ap/vim/patches/7.2.008.gz +-rw-r--r-- 1 root root 1032 2008-09-01 15:56 ./source/ap/vim/patches/7.2.009.gz +-rw-r--r-- 1 root root 2228 2008-09-06 14:45 ./source/ap/vim/patches/7.2.010.gz +-rw-r--r-- 1 root root 1257 2008-09-07 11:55 ./source/ap/vim/patches/7.2.011.gz +-rw-r--r-- 1 root root 739 2008-09-07 13:50 ./source/ap/vim/patches/7.2.012.gz +-rw-r--r-- 1 root root 1726 2008-09-07 19:49 ./source/ap/vim/patches/7.2.013.gz +-rw-r--r-- 1 root root 846 2008-09-10 13:39 ./source/ap/vim/patches/7.2.014.gz +-rw-r--r-- 1 root root 936 2008-09-10 16:27 ./source/ap/vim/patches/7.2.015.gz +-rw-r--r-- 1 root root 2018 2008-09-14 12:43 ./source/ap/vim/patches/7.2.016.gz +-rw-r--r-- 1 root root 1895 2008-09-14 13:59 ./source/ap/vim/patches/7.2.017.gz +-rw-r--r-- 1 root root 774 2008-09-14 19:42 ./source/ap/vim/patches/7.2.018.gz +-rw-r--r-- 1 root root 1131 2008-09-18 10:45 ./source/ap/vim/patches/7.2.019.gz +-rw-r--r-- 1 root root 822 2008-09-18 18:56 ./source/ap/vim/patches/7.2.020.gz +-rw-r--r-- 1 root root 1689 2008-09-18 19:30 ./source/ap/vim/patches/7.2.021.gz +-rw-r--r-- 1 root root 1596 2008-09-20 14:27 ./source/ap/vim/patches/7.2.022.gz +-rw-r--r-- 1 root root 992 2008-10-01 19:10 ./source/ap/vim/patches/7.2.023.gz +-rw-r--r-- 1 root root 800 2008-10-02 20:49 ./source/ap/vim/patches/7.2.024.gz +-rw-r--r-- 1 root root 796 2008-10-02 20:56 ./source/ap/vim/patches/7.2.025.gz +-rw-r--r-- 1 root root 1362 2008-11-01 12:53 ./source/ap/vim/patches/7.2.026.gz +-rw-r--r-- 1 root root 1144 2008-11-06 09:24 ./source/ap/vim/patches/7.2.027.gz +-rw-r--r-- 1 root root 788 2008-11-06 10:06 ./source/ap/vim/patches/7.2.028.gz +-rw-r--r-- 1 root root 690 2008-11-06 16:16 ./source/ap/vim/patches/7.2.029.gz +-rw-r--r-- 1 root root 834 2008-11-06 19:47 ./source/ap/vim/patches/7.2.030.gz +-rw-r--r-- 1 root root 10923 2008-11-09 12:45 ./source/ap/vim/patches/7.2.031.gz +-rw-r--r-- 1 root root 795 2008-11-09 16:21 ./source/ap/vim/patches/7.2.032.gz +-rw-r--r-- 1 root root 1000 2008-11-11 20:57 ./source/ap/vim/patches/7.2.033.gz +-rw-r--r-- 1 root root 1057 2008-11-12 11:52 ./source/ap/vim/patches/7.2.034.gz +-rw-r--r-- 1 root root 1286 2008-11-12 12:09 ./source/ap/vim/patches/7.2.035.gz +-rw-r--r-- 1 root root 2305 2008-11-12 12:36 ./source/ap/vim/patches/7.2.036.gz +-rw-r--r-- 1 root root 822 2008-11-12 13:10 ./source/ap/vim/patches/7.2.037.gz +-rw-r--r-- 1 root root 985 2008-11-12 13:52 ./source/ap/vim/patches/7.2.038.gz +-rw-r--r-- 1 root root 776 2008-11-12 14:29 ./source/ap/vim/patches/7.2.039.gz +-rw-r--r-- 1 root root 986 2008-11-12 15:06 ./source/ap/vim/patches/7.2.040.gz +-rw-r--r-- 1 root root 5431 2008-11-15 13:11 ./source/ap/vim/patches/7.2.041.gz +-rw-r--r-- 1 root root 1757 2008-11-15 15:07 ./source/ap/vim/patches/7.2.042.gz +-rw-r--r-- 1 root root 1074 2008-11-20 09:28 ./source/ap/vim/patches/7.2.043.gz +-rw-r--r-- 1 root root 1818 2008-11-20 09:37 ./source/ap/vim/patches/7.2.044.gz +-rw-r--r-- 1 root root 1035 2008-11-20 10:04 ./source/ap/vim/patches/7.2.045.gz +-rw-r--r-- 1 root root 892 2008-11-20 10:56 ./source/ap/vim/patches/7.2.046.gz +-rw-r--r-- 1 root root 1196 2008-11-20 15:12 ./source/ap/vim/patches/7.2.047.gz +-rw-r--r-- 1 root root 1681 2008-11-20 15:12 ./source/ap/vim/patches/7.2.048.gz +-rw-r--r-- 1 root root 6742 2008-11-20 16:10 ./source/ap/vim/patches/7.2.049.gz +-rw-r--r-- 1 root root 2154 2008-11-28 09:09 ./source/ap/vim/patches/7.2.050.gz +-rw-r--r-- 1 root root 3820 2008-11-28 10:01 ./source/ap/vim/patches/7.2.051.gz +-rw-r--r-- 1 root root 1066 2008-11-28 10:16 ./source/ap/vim/patches/7.2.052.gz +-rw-r--r-- 1 root root 849 2008-11-28 10:48 ./source/ap/vim/patches/7.2.053.gz +-rw-r--r-- 1 root root 879 2008-11-28 11:06 ./source/ap/vim/patches/7.2.054.gz +-rw-r--r-- 1 root root 8518 2008-11-28 20:27 ./source/ap/vim/patches/7.2.055.gz +-rw-r--r-- 1 root root 846 2008-11-29 19:11 ./source/ap/vim/patches/7.2.056.gz +-rw-r--r-- 1 root root 1293 2008-11-29 19:19 ./source/ap/vim/patches/7.2.057.gz +-rw-r--r-- 1 root root 1183 2008-11-30 11:15 ./source/ap/vim/patches/7.2.058.gz +-rw-r--r-- 1 root root 904 2008-11-30 14:16 ./source/ap/vim/patches/7.2.059.gz +-rw-r--r-- 1 root root 8301 2008-11-30 20:13 ./source/ap/vim/patches/7.2.060.gz +-rw-r--r-- 1 root root 966 2008-12-03 08:53 ./source/ap/vim/patches/7.2.061.gz +-rw-r--r-- 1 root root 842 2008-12-03 10:22 ./source/ap/vim/patches/7.2.062.gz +-rw-r--r-- 1 root root 1095 2008-12-03 11:45 ./source/ap/vim/patches/7.2.063.gz +-rw-r--r-- 1 root root 922 2008-12-03 12:21 ./source/ap/vim/patches/7.2.064.gz +-rw-r--r-- 1 root root 1578 2008-12-03 17:50 ./source/ap/vim/patches/7.2.065.gz +-rw-r--r-- 1 root root 1155 2008-12-09 09:57 ./source/ap/vim/patches/7.2.066.gz +-rw-r--r-- 1 root root 774 2008-12-09 10:20 ./source/ap/vim/patches/7.2.067.gz +-rw-r--r-- 1 root root 1138 2008-12-09 11:29 ./source/ap/vim/patches/7.2.068.gz +-rw-r--r-- 1 root root 827 2008-12-09 21:35 ./source/ap/vim/patches/7.2.069.gz +-rw-r--r-- 1 root root 4840 2008-12-21 12:04 ./source/ap/vim/patches/7.2.070.gz +-rw-r--r-- 1 root root 1147 2008-12-24 11:44 ./source/ap/vim/patches/7.2.071.gz +-rw-r--r-- 1 root root 790 2008-12-31 13:03 ./source/ap/vim/patches/7.2.072.gz +-rw-r--r-- 1 root root 1423 2008-12-24 11:54 ./source/ap/vim/patches/7.2.073.gz +-rw-r--r-- 1 root root 922 2008-12-24 11:57 ./source/ap/vim/patches/7.2.074.gz +-rw-r--r-- 1 root root 1032 2008-12-24 12:11 ./source/ap/vim/patches/7.2.075.gz +-rw-r--r-- 1 root root 1330 2008-12-30 15:17 ./source/ap/vim/patches/7.2.076.gz +-rw-r--r-- 1 root root 1797 2008-12-31 15:22 ./source/ap/vim/patches/7.2.077.gz +-rw-r--r-- 1 root root 1310 2009-01-06 14:03 ./source/ap/vim/patches/7.2.078.gz +-rw-r--r-- 1 root root 2377 2009-01-06 15:15 ./source/ap/vim/patches/7.2.079.gz +-rw-r--r-- 1 root root 2883 2009-01-13 11:30 ./source/ap/vim/patches/7.2.080.gz +-rw-r--r-- 1 root root 908 2009-01-13 15:39 ./source/ap/vim/patches/7.2.081.gz +-rw-r--r-- 1 root root 1085 2009-01-13 15:58 ./source/ap/vim/patches/7.2.082.gz +-rw-r--r-- 1 root root 852 2009-01-13 16:28 ./source/ap/vim/patches/7.2.083.gz +-rw-r--r-- 1 root root 1594 2009-01-13 17:12 ./source/ap/vim/patches/7.2.084.gz +-rw-r--r-- 1 root root 934 2009-01-22 17:33 ./source/ap/vim/patches/7.2.085.gz +-rw-r--r-- 1 root root 1244 2009-01-22 19:49 ./source/ap/vim/patches/7.2.086.gz +-rw-r--r-- 1 root root 804 2009-01-22 20:32 ./source/ap/vim/patches/7.2.087.gz +-rw-r--r-- 1 root root 1254 2009-01-22 20:50 ./source/ap/vim/patches/7.2.088.gz +-rw-r--r-- 1 root root 1158 2009-01-28 13:18 ./source/ap/vim/patches/7.2.089.gz +-rw-r--r-- 1 root root 1521 2009-01-28 14:43 ./source/ap/vim/patches/7.2.090.gz +-rw-r--r-- 1 root root 1036 2009-01-28 15:05 ./source/ap/vim/patches/7.2.091.gz +-rw-r--r-- 1 root root 1839 2009-01-28 18:09 ./source/ap/vim/patches/7.2.092.gz +-rw-r--r-- 1 root root 2221 2009-01-28 20:23 ./source/ap/vim/patches/7.2.093.gz +-rw-r--r-- 1 root root 1373 2009-02-04 10:21 ./source/ap/vim/patches/7.2.094.gz +-rw-r--r-- 1 root root 907 2009-02-04 10:46 ./source/ap/vim/patches/7.2.095.gz +-rw-r--r-- 1 root root 759 2009-02-04 12:15 ./source/ap/vim/patches/7.2.096.gz +-rw-r--r-- 1 root root 933 2009-02-04 13:19 ./source/ap/vim/patches/7.2.097.gz +-rw-r--r-- 1 root root 843 2009-02-04 15:27 ./source/ap/vim/patches/7.2.098.gz +-rw-r--r-- 1 root root 1459 2009-02-04 16:29 ./source/ap/vim/patches/7.2.099.gz +-rw-r--r-- 1 root root 1654 2009-02-04 16:51 ./source/ap/vim/patches/7.2.100.gz +-rw-r--r-- 1 root root 755 2009-02-04 17:35 ./source/ap/vim/patches/7.2.101.gz +-rw-r--r-- 1 root root 813 2009-02-05 19:48 ./source/ap/vim/patches/7.2.102.gz +-rw-r--r-- 1 root root 1643 2009-02-11 10:35 ./source/ap/vim/patches/7.2.103.gz +-rw-r--r-- 1 root root 881 2009-02-11 15:04 ./source/ap/vim/patches/7.2.104.gz +-rw-r--r-- 1 root root 1034 2009-02-11 15:47 ./source/ap/vim/patches/7.2.105.gz +-rw-r--r-- 1 root root 1380 2009-02-11 16:59 ./source/ap/vim/patches/7.2.106.gz +-rw-r--r-- 1 root root 917 2009-02-11 17:48 ./source/ap/vim/patches/7.2.107.gz +-rw-r--r-- 1 root root 891 2009-02-11 21:48 ./source/ap/vim/patches/7.2.108.gz +-rw-r--r-- 1 root root 4064 2009-02-21 19:29 ./source/ap/vim/patches/7.2.109.gz +-rw-r--r-- 1 root root 731 2009-02-21 19:38 ./source/ap/vim/patches/7.2.110.gz +-rw-r--r-- 1 root root 1151 2009-02-21 20:12 ./source/ap/vim/patches/7.2.111.gz +-rw-r--r-- 1 root root 827 2009-02-21 20:26 ./source/ap/vim/patches/7.2.112.gz +-rw-r--r-- 1 root root 1079 2009-02-21 21:04 ./source/ap/vim/patches/7.2.113.gz +-rw-r--r-- 1 root root 1001 2009-02-21 21:14 ./source/ap/vim/patches/7.2.114.gz +-rw-r--r-- 1 root root 1192 2009-02-21 21:30 ./source/ap/vim/patches/7.2.115.gz +-rw-r--r-- 1 root root 898 2009-02-21 21:58 ./source/ap/vim/patches/7.2.116.gz +-rw-r--r-- 1 root root 1090 2009-02-21 23:03 ./source/ap/vim/patches/7.2.117.gz +-rw-r--r-- 1 root root 979 2009-02-21 23:59 ./source/ap/vim/patches/7.2.118.gz +-rw-r--r-- 1 root root 759 2009-02-22 00:15 ./source/ap/vim/patches/7.2.119.gz +-rw-r--r-- 1 root root 2555 2009-02-22 01:38 ./source/ap/vim/patches/7.2.120.gz +-rw-r--r-- 1 root root 1839 2009-02-22 05:54 ./source/ap/vim/patches/7.2.121.gz +-rw-r--r-- 1 root root 1243 2009-02-22 20:14 ./source/ap/vim/patches/7.2.122.gz +-rw-r--r-- 1 root root 874 2009-02-22 22:44 ./source/ap/vim/patches/7.2.123.gz +-rw-r--r-- 1 root root 1315 2009-02-22 23:55 ./source/ap/vim/patches/7.2.124.gz +-rw-r--r-- 1 root root 1454 2009-02-24 03:12 ./source/ap/vim/patches/7.2.125.gz +-rw-r--r-- 1 root root 1784 2009-02-24 03:30 ./source/ap/vim/patches/7.2.126.gz +-rw-r--r-- 1 root root 881 2009-02-24 03:38 ./source/ap/vim/patches/7.2.127.gz +-rw-r--r-- 1 root root 815 2009-03-01 01:46 ./source/ap/vim/patches/7.2.128.gz +-rw-r--r-- 1 root root 1012 2009-03-02 01:13 ./source/ap/vim/patches/7.2.129.gz +-rw-r--r-- 1 root root 4075 2009-03-02 01:46 ./source/ap/vim/patches/7.2.130.gz +-rw-r--r-- 1 root root 1138 2009-03-04 03:17 ./source/ap/vim/patches/7.2.131.gz +-rw-r--r-- 1 root root 2826 2009-03-05 02:16 ./source/ap/vim/patches/7.2.132.gz +-rw-r--r-- 1 root root 856 2009-03-11 11:47 ./source/ap/vim/patches/7.2.133.gz +-rw-r--r-- 1 root root 960 2009-03-11 12:11 ./source/ap/vim/patches/7.2.134.gz +-rw-r--r-- 1 root root 940 2009-03-11 14:10 ./source/ap/vim/patches/7.2.135.gz +-rw-r--r-- 1 root root 740 2009-03-11 14:37 ./source/ap/vim/patches/7.2.136.gz +-rw-r--r-- 1 root root 3549 2009-03-11 15:29 ./source/ap/vim/patches/7.2.137.gz +-rw-r--r-- 1 root root 1347 2009-03-11 15:37 ./source/ap/vim/patches/7.2.138.gz +-rw-r--r-- 1 root root 995 2009-03-11 16:29 ./source/ap/vim/patches/7.2.139.gz +-rw-r--r-- 1 root root 984 2009-03-11 16:46 ./source/ap/vim/patches/7.2.140.gz +-rw-r--r-- 1 root root 2187 2009-03-11 16:58 ./source/ap/vim/patches/7.2.141.gz +-rw-r--r-- 1 root root 886 2009-03-18 11:22 ./source/ap/vim/patches/7.2.142.gz +-rw-r--r-- 1 root root 2618 2009-03-18 11:52 ./source/ap/vim/patches/7.2.143.gz +-rw-r--r-- 1 root root 1053 2009-03-18 13:22 ./source/ap/vim/patches/7.2.144.gz +-rw-r--r-- 1 root root 1396 2009-03-18 13:34 ./source/ap/vim/patches/7.2.145.gz +-rw-r--r-- 1 root root 1461 2009-03-18 14:41 ./source/ap/vim/patches/7.2.146.gz +-rw-r--r-- 1 root root 791 2009-03-18 15:29 ./source/ap/vim/patches/7.2.147.gz +-rw-r--r-- 1 root root 1566 2009-03-20 11:33 ./source/ap/vim/patches/7.2.148.gz +-rw-r--r-- 1 root root 4591 2009-04-22 10:56 ./source/ap/vim/patches/7.2.149.gz +-rw-r--r-- 1 root root 6762 2009-04-22 11:08 ./source/ap/vim/patches/7.2.150.gz +-rw-r--r-- 1 root root 782 2009-04-22 11:52 ./source/ap/vim/patches/7.2.151.gz +-rw-r--r-- 1 root root 1353 2009-04-22 12:44 ./source/ap/vim/patches/7.2.152.gz +-rw-r--r-- 1 root root 1187 2009-04-22 13:39 ./source/ap/vim/patches/7.2.153.gz +-rw-r--r-- 1 root root 1144 2009-04-22 13:58 ./source/ap/vim/patches/7.2.154.gz +-rw-r--r-- 1 root root 710 2009-04-22 14:10 ./source/ap/vim/patches/7.2.155.gz +-rw-r--r-- 1 root root 1842 2009-04-22 14:24 ./source/ap/vim/patches/7.2.156.gz +-rw-r--r-- 1 root root 1572 2009-04-22 15:45 ./source/ap/vim/patches/7.2.157.gz +-rw-r--r-- 1 root root 958 2009-04-22 15:45 ./source/ap/vim/patches/7.2.158.gz +-rw-r--r-- 1 root root 918 2009-04-22 15:53 ./source/ap/vim/patches/7.2.159.gz +-rw-r--r-- 1 root root 705 2009-04-22 16:45 ./source/ap/vim/patches/7.2.160.gz +-rw-r--r-- 1 root root 1802 2009-04-29 09:03 ./source/ap/vim/patches/7.2.161.gz +-rw-r--r-- 1 root root 1029 2009-04-29 09:53 ./source/ap/vim/patches/7.2.162.gz +-rw-r--r-- 1 root root 962 2009-04-29 15:42 ./source/ap/vim/patches/7.2.163.gz +-rw-r--r-- 1 root root 1471 2009-04-29 15:42 ./source/ap/vim/patches/7.2.164.gz +-rw-r--r-- 1 root root 828 2009-04-29 16:04 ./source/ap/vim/patches/7.2.165.gz +-rw-r--r-- 1 root root 3389 2009-04-29 16:47 ./source/ap/vim/patches/7.2.166.gz +-rw-r--r-- 1 root root 13059 2009-05-13 12:09 ./source/ap/vim/patches/7.2.167.gz +-rw-r--r-- 1 root root 1051 2009-05-13 12:50 ./source/ap/vim/patches/7.2.168.gz +-rw-r--r-- 1 root root 8954 2009-05-13 16:56 ./source/ap/vim/patches/7.2.169.gz +-rw-r--r-- 1 root root 1387 2009-05-13 18:48 ./source/ap/vim/patches/7.2.170.gz +-rw-r--r-- 1 root root 1004 2009-05-14 19:52 ./source/ap/vim/patches/7.2.171.gz +-rw-r--r-- 1 root root 983 2009-05-14 20:01 ./source/ap/vim/patches/7.2.172.gz +-rw-r--r-- 1 root root 4735 2009-05-14 20:20 ./source/ap/vim/patches/7.2.173.gz +-rw-r--r-- 1 root root 9716 2009-05-15 19:32 ./source/ap/vim/patches/7.2.174.gz +-rw-r--r-- 1 root root 735 2009-05-16 14:16 ./source/ap/vim/patches/7.2.175.gz +-rw-r--r-- 1 root root 2061 2009-05-16 14:37 ./source/ap/vim/patches/7.2.176.gz +-rw-r--r-- 1 root root 10066 2009-05-16 15:31 ./source/ap/vim/patches/7.2.177.gz +-rw-r--r-- 1 root root 1390 2009-05-16 19:07 ./source/ap/vim/patches/7.2.178.gz +-rw-r--r-- 1 root root 1233 2009-05-17 09:59 ./source/ap/vim/patches/7.2.179.gz +-rw-r--r-- 1 root root 25733 2009-05-17 11:31 ./source/ap/vim/patches/7.2.180.gz +-rw-r--r-- 1 root root 11581 2009-05-17 14:24 ./source/ap/vim/patches/7.2.181.gz +-rw-r--r-- 1 root root 988 2009-05-17 21:26 ./source/ap/vim/patches/7.2.182.gz +-rw-r--r-- 1 root root 9233 2009-05-21 13:21 ./source/ap/vim/patches/7.2.183.gz +-rw-r--r-- 1 root root 16204 2009-05-21 21:26 ./source/ap/vim/patches/7.2.184.gz +-rw-r--r-- 1 root root 2598 2009-05-22 16:21 ./source/ap/vim/patches/7.2.185.gz +-rw-r--r-- 1 root root 1610 2009-05-22 19:08 ./source/ap/vim/patches/7.2.186.gz +-rw-r--r-- 1 root root 1211 2009-05-23 12:28 ./source/ap/vim/patches/7.2.187.gz +-rw-r--r-- 1 root root 2785 2009-05-24 11:41 ./source/ap/vim/patches/7.2.188.gz +-rw-r--r-- 1 root root 1195 2009-05-26 09:03 ./source/ap/vim/patches/7.2.189.gz +-rw-r--r-- 1 root root 1894 2009-05-26 16:13 ./source/ap/vim/patches/7.2.190.gz +-rw-r--r-- 1 root root 22827 2009-05-26 20:59 ./source/ap/vim/patches/7.2.191.gz +-rw-r--r-- 1 root root 1455 2009-06-03 11:22 ./source/ap/vim/patches/7.2.192.gz +-rw-r--r-- 1 root root 759 2009-06-03 12:26 ./source/ap/vim/patches/7.2.193.gz +-rw-r--r-- 1 root root 741 2009-06-03 13:05 ./source/ap/vim/patches/7.2.194.gz +-rw-r--r-- 1 root root 1054 2009-06-03 20:06 ./source/ap/vim/patches/7.2.195.gz +-rw-r--r-- 1 root root 1474 2009-06-03 20:08 ./source/ap/vim/patches/7.2.196.gz +-rw-r--r-- 1 root root 778 2009-06-10 16:16 ./source/ap/vim/patches/7.2.197.gz +-rw-r--r-- 1 root root 967 2009-06-16 09:08 ./source/ap/vim/patches/7.2.198.gz +-rw-r--r-- 1 root root 860 2009-06-16 12:32 ./source/ap/vim/patches/7.2.199.gz +-rw-r--r-- 1 root root 3075 2009-06-16 13:12 ./source/ap/vim/patches/7.2.200.gz +-rw-r--r-- 1 root root 4092 2009-06-16 13:23 ./source/ap/vim/patches/7.2.201.gz +-rw-r--r-- 1 root root 996 2009-06-16 13:36 ./source/ap/vim/patches/7.2.202.gz +-rw-r--r-- 1 root root 9493 2009-06-16 14:02 ./source/ap/vim/patches/7.2.203.gz +-rw-r--r-- 1 root root 1525 2009-06-16 14:35 ./source/ap/vim/patches/7.2.204.gz +-rw-r--r-- 1 root root 1150 2009-06-16 14:45 ./source/ap/vim/patches/7.2.205.gz +-rw-r--r-- 1 root root 809 2009-06-16 15:23 ./source/ap/vim/patches/7.2.206.gz +-rw-r--r-- 1 root root 1183 2009-06-16 15:23 ./source/ap/vim/patches/7.2.207.gz +-rw-r--r-- 1 root root 1250 2009-06-16 15:51 ./source/ap/vim/patches/7.2.208.gz +-rw-r--r-- 1 root root 1125 2009-06-16 16:16 ./source/ap/vim/patches/7.2.209.gz +-rw-r--r-- 1 root root 914 2009-06-24 09:59 ./source/ap/vim/patches/7.2.210.gz +-rw-r--r-- 1 root root 799 2009-06-24 14:26 ./source/ap/vim/patches/7.2.211.gz +-rw-r--r-- 1 root root 846 2009-06-24 14:41 ./source/ap/vim/patches/7.2.212.gz +-rw-r--r-- 1 root root 761 2009-06-24 14:51 ./source/ap/vim/patches/7.2.213.gz +-rw-r--r-- 1 root root 888 2009-06-24 15:05 ./source/ap/vim/patches/7.2.214.gz +-rw-r--r-- 1 root root 2692 2009-06-24 15:32 ./source/ap/vim/patches/7.2.215.gz +-rw-r--r-- 1 root root 1668 2009-06-24 15:51 ./source/ap/vim/patches/7.2.216.gz +-rw-r--r-- 1 root root 924 2009-06-24 16:08 ./source/ap/vim/patches/7.2.217.gz +-rw-r--r-- 1 root root 765 2009-06-24 16:32 ./source/ap/vim/patches/7.2.218.gz +-rw-r--r-- 1 root root 981 2009-07-01 14:13 ./source/ap/vim/patches/7.2.219.gz +-rw-r--r-- 1 root root 1189 2009-07-01 15:13 ./source/ap/vim/patches/7.2.220.gz +-rw-r--r-- 1 root root 2458 2009-07-01 16:02 ./source/ap/vim/patches/7.2.221.gz +-rw-r--r-- 1 root root 980 2009-07-01 18:19 ./source/ap/vim/patches/7.2.222.gz +-rw-r--r-- 1 root root 1935 2009-07-09 13:56 ./source/ap/vim/patches/7.2.223.gz +-rw-r--r-- 1 root root 1164 2009-07-09 16:16 ./source/ap/vim/patches/7.2.224.gz +-rw-r--r-- 1 root root 1237 2009-07-09 16:24 ./source/ap/vim/patches/7.2.225.gz +-rw-r--r-- 1 root root 2108 2009-07-09 18:06 ./source/ap/vim/patches/7.2.226.gz +-rw-r--r-- 1 root root 773 2009-07-09 18:14 ./source/ap/vim/patches/7.2.227.gz +-rw-r--r-- 1 root root 4016 2009-07-09 19:22 ./source/ap/vim/patches/7.2.228.gz +-rw-r--r-- 1 root root 776 2009-07-14 10:20 ./source/ap/vim/patches/7.2.229.gz +-rw-r--r-- 1 root root 932 2009-07-14 11:45 ./source/ap/vim/patches/7.2.230.gz +-rw-r--r-- 1 root root 827 2009-07-14 14:05 ./source/ap/vim/patches/7.2.231.gz +-rw-r--r-- 1 root root 1232 2009-07-14 15:39 ./source/ap/vim/patches/7.2.232.gz +-rw-r--r-- 1 root root 1228 2009-07-14 16:38 ./source/ap/vim/patches/7.2.233.gz +-rw-r--r-- 1 root root 1397 2009-07-14 19:42 ./source/ap/vim/patches/7.2.234.gz +-rw-r--r-- 1 root root 1129 2009-07-22 09:06 ./source/ap/vim/patches/7.2.235.gz +-rw-r--r-- 1 root root 1016 2009-07-22 09:17 ./source/ap/vim/patches/7.2.236.gz +-rw-r--r-- 1 root root 788 2009-07-22 11:28 ./source/ap/vim/patches/7.2.237.gz +-rw-r--r-- 1 root root 1526 2009-07-22 12:28 ./source/ap/vim/patches/7.2.238.gz +-rw-r--r-- 1 root root 1653 2009-07-22 14:23 ./source/ap/vim/patches/7.2.239.gz +-rw-r--r-- 1 root root 1074 2009-07-29 09:11 ./source/ap/vim/patches/7.2.240.gz +-rw-r--r-- 1 root root 2103 2009-07-29 10:11 ./source/ap/vim/patches/7.2.241.gz +-rw-r--r-- 1 root root 1091 2009-07-29 13:42 ./source/ap/vim/patches/7.2.242.gz +-rw-r--r-- 1 root root 954 2009-07-29 14:09 ./source/ap/vim/patches/7.2.243.gz +-rw-r--r-- 1 root root 1843 2009-07-29 16:07 ./source/ap/vim/patches/7.2.244.gz +-rw-r--r-- 1 root root 1759 2009-07-29 16:31 ./source/ap/vim/patches/7.2.245.gz +-rw-r--r-- 1 root root 839 2006-07-21 04:09 ./source/ap/vim/slack-desc.vim +-rw-r--r-- 1 root root 964 2006-07-21 06:24 ./source/ap/vim/slack-desc.vim-gvim +-rw-r--r-- 1 root root 565740 2008-08-09 16:48 ./source/ap/vim/vim-7.2-lang.tar.xz +-rw-r--r-- 1 root root 5866332 2008-09-06 14:35 ./source/ap/vim/vim-7.2.tar.xz +-rwxr-xr-x 1 root root 5712 2009-05-28 18:24 ./source/ap/vim/vim-gvim.SlackBuild +-rwxr-xr-x 1 root root 6007 2009-05-28 18:24 ./source/ap/vim/vim.SlackBuild +-rw-r--r-- 1 root root 303 2009-05-28 18:19 ./source/ap/vim/vim.vimrc.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/vorbis-tools +-rw-r--r-- 1 root root 1071 2003-12-19 00:21 ./source/ap/vorbis-tools/slack-desc +-rw-r--r-- 1 root root 739539 2008-03-03 06:30 ./source/ap/vorbis-tools/vorbis-tools-1.2.0.tar.bz2 +-rwxr-xr-x 1 root root 2426 2009-05-19 20:05 ./source/ap/vorbis-tools/vorbis-tools.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/ap/workbone +-rw-r--r-- 1 root root 689 2002-03-23 22:37 ./source/ap/workbone/slack-desc +-rw-r--r-- 1 root root 262 2003-02-14 08:22 ./source/ap/workbone/workbone.1.diff.gz +-rwxr-xr-x 1 root root 2275 2009-05-19 20:05 ./source/ap/workbone/workbone.SlackBuild +-rw-r--r-- 1 root root 3330 2002-04-24 15:17 ./source/ap/workbone/workbone_2.40-3.diff.gz +-rw-r--r-- 1 root root 21877 1998-10-15 07:00 ./source/ap/workbone/workbone_2.40.orig.tar.gz +drwxr-xr-x 2 root root 4096 2009-06-13 04:43 ./source/ap/xfsdump +-rw-r--r-- 1 root root 983 2006-02-22 20:00 ./source/ap/xfsdump/slack-desc +-rw-r--r-- 1 root root 560820 2009-05-05 17:21 ./source/ap/xfsdump/xfsdump-3.0.1.tar.xz +-rwxr-xr-x 1 root root 3205 2009-06-13 04:43 ./source/ap/xfsdump/xfsdump.SlackBuild +-rw-r--r-- 1 root root 509 2008-04-01 05:07 ./source/ap/xfsdump/xfsdump.destdir.diff.gz +drwxr-xr-x 2 root root 4096 2009-07-15 04:39 ./source/ap/zsh +-rw-r--r-- 1 root root 140 2007-04-10 01:12 ./source/ap/zsh/doinst.sh.gz +-rw-r--r-- 1 root root 962 2002-02-14 08:13 ./source/ap/zsh/slack-desc +-rw-r--r-- 1 root root 560 2009-07-15 04:38 ./source/ap/zsh/zsh-4.3.10-add_new_pkg_completion.diff.gz +-rw-r--r-- 1 root root 2533240 2009-07-15 04:33 ./source/ap/zsh/zsh-4.3.10-doc.tar.xz +-rw-r--r-- 1 root root 2302728 2009-07-15 04:34 ./source/ap/zsh/zsh-4.3.10.tar.xz +-rwxr-xr-x 1 root root 3391 2009-07-16 00:05 ./source/ap/zsh/zsh.SlackBuild +drwxr-xr-x 39 root root 4096 2009-08-11 00:57 ./source/d +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/autoconf +-rw-r--r-- 1 root root 1195259 2008-09-26 20:15 ./source/d/autoconf/autoconf-2.63.tar.bz2 +-rwxr-xr-x 1 root root 2165 2009-05-19 20:05 ./source/d/autoconf/autoconf.SlackBuild +-rw-r--r-- 1 root root 339 2001-05-30 01:40 ./source/d/autoconf/doinst.sh.gz +-rw-r--r-- 1 root root 1090 2002-03-23 22:38 ./source/d/autoconf/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/automake +-rw-r--r-- 1 root root 918341 2008-09-26 20:15 ./source/d/automake/automake-1.10.1.tar.bz2 +-rwxr-xr-x 1 root root 2590 2009-05-19 20:05 ./source/d/automake/automake.SlackBuild +-rw-r--r-- 1 root root 348 2001-05-30 01:49 ./source/d/automake/doinst.sh.gz +-rw-r--r-- 1 root root 1086 2002-03-23 22:39 ./source/d/automake/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-25 20:50 ./source/d/binutils +-rw-r--r-- 1 root root 15081266 2008-10-14 19:21 ./source/d/binutils/binutils-2.18.50.0.9.tar.bz2 +-rwxr-xr-x 1 root root 3953 2009-05-24 18:28 ./source/d/binutils/binutils.SlackBuild +-rw-r--r-- 1 root root 36546 2008-08-23 18:53 ./source/d/binutils/release.binutils-2.18.50.0.9 +-rw-r--r-- 1 root root 902 2002-03-22 21:41 ./source/d/binutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/bison +-rw-r--r-- 1 root root 1467784 2008-12-11 22:29 ./source/d/bison/bison-2.4.1.tar.bz2 +-rw-r--r-- 1 root root 65 2008-12-11 22:29 ./source/d/bison/bison-2.4.1.tar.bz2.sig +-rwxr-xr-x 1 root root 2556 2009-05-19 20:05 ./source/d/bison/bison.SlackBuild +-rw-r--r-- 1 root root 927 2002-03-23 22:41 ./source/d/bison/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/ccache +-rw-r--r-- 1 root root 86363 2004-09-13 20:14 ./source/d/ccache/ccache-2.4.tar.gz +-rwxr-xr-x 1 root root 2171 2009-05-19 20:05 ./source/d/ccache/ccache.SlackBuild +-rw-r--r-- 1 root root 771 2003-03-18 06:44 ./source/d/ccache/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/d/clisp +-rw-r--r-- 1 root root 7543689 2008-10-24 02:33 ./source/d/clisp/clisp-2.47.tar.bz2 +-rw-r--r-- 1 root root 65 2008-10-24 02:33 ./source/d/clisp/clisp-2.47.tar.bz2.sig +-rwxr-xr-x 1 root root 5482 2009-05-23 00:41 ./source/d/clisp/clisp.SlackBuild +-rw-r--r-- 1 root root 898945 2008-09-11 09:39 ./source/d/clisp/ffcall-20080704cvs.tar.bz2 +-rw-r--r-- 1 root root 281651 2008-08-24 23:36 ./source/d/clisp/libsigsegv-2.6.tar.bz2 +-rw-r--r-- 1 root root 1121 2003-07-17 21:01 ./source/d/clisp/slack-desc +-rwxr-xr-x 1 root root 242 2008-09-11 11:59 ./source/d/clisp/source.download +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/d/cmake +-rw-r--r-- 1 root root 2713258 2008-09-25 14:28 ./source/d/cmake/cmake-2.6.2.tar.bz2 +-rwxr-xr-x 1 root root 2766 2009-05-23 00:41 ./source/d/cmake/cmake.SlackBuild +-rw-r--r-- 1 root root 852 2008-04-09 20:37 ./source/d/cmake/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/d/cscope +-rw-r--r-- 1 root root 332824 2006-09-30 21:37 ./source/d/cscope/cscope-15.6.tar.bz2 +-rwxr-xr-x 1 root root 2350 2009-05-23 00:41 ./source/d/cscope/cscope.SlackBuild +-rw-r--r-- 1 root root 805 2003-08-20 00:37 ./source/d/cscope/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/cvs +-rw-r--r-- 1 root root 2942652 2008-05-08 04:58 ./source/d/cvs/cvs-1.11.23.tar.bz2 +-rw-r--r-- 1 root root 65 2008-05-08 04:58 ./source/d/cvs/cvs-1.11.23.tar.bz2.sig +-rwxr-xr-x 1 root root 2850 2009-05-19 20:05 ./source/d/cvs/cvs.SlackBuild +-rw-r--r-- 1 root root 992 2002-02-23 03:00 ./source/d/cvs/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/d/dev86 +-rw-r--r-- 1 root root 703028 2007-10-16 12:48 ./source/d/dev86/Dev86src-0.16.17.tar.gz +-rw-r--r-- 1 root root 408 2008-03-28 23:59 ./source/d/dev86/README +-rw-r--r-- 1 root root 361 2008-09-23 19:43 ./source/d/dev86/dev86-x86_64.noelks.patch.gz +-rw-r--r-- 1 root root 342 2008-09-22 21:52 ./source/d/dev86/dev86-x86_64.patch.gz +-rwxr-xr-x 1 root root 3352 2009-05-23 00:41 ./source/d/dev86/dev86.SlackBuild +-rw-r--r-- 1 root root 312 2008-03-29 05:05 ./source/d/dev86/dev86.info +-rw-r--r-- 1 root root 490 2008-09-18 05:36 ./source/d/dev86/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/distcc +-rw-r--r-- 1 root root 341601 2004-12-22 00:09 ./source/d/distcc/distcc-2.18.3.tar.bz2 +-rw-r--r-- 1 root root 189 2004-12-22 00:09 ./source/d/distcc/distcc-2.18.3.tar.bz2.asc +-rwxr-xr-x 1 root root 2645 2009-05-19 20:05 ./source/d/distcc/distcc.SlackBuild +-rw-r--r-- 1 root root 940 2003-02-19 22:05 ./source/d/distcc/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:19 ./source/d/doxygen +-rw-r--r-- 1 root root 3331513 2008-12-27 13:14 ./source/d/doxygen/doxygen-1.5.8.src.tar.bz2 +-rwxr-xr-x 1 root root 2971 2009-05-19 20:05 ./source/d/doxygen/doxygen.SlackBuild +-rw-r--r-- 1 root root 331 2009-03-09 19:22 ./source/d/doxygen/doxygen.qt4.diff.gz +-rw-r--r-- 1 root root 969 2008-02-11 03:44 ./source/d/doxygen/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/flex +-rw-r--r-- 1 root root 1256501 2008-02-26 21:40 ./source/d/flex/flex-2.5.35.tar.bz2 +-rwxr-xr-x 1 root root 3290 2009-05-19 20:05 ./source/d/flex/flex.SlackBuild +-rw-r--r-- 1 root root 786 2006-09-20 03:05 ./source/d/flex/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-25 20:50 ./source/d/gcc +-rw-r--r-- 1 root root 1377431 2007-07-27 21:07 ./source/d/gcc/ecj-4.3.jar +-rw-r--r-- 1 root root 48427828 2009-01-24 13:42 ./source/d/gcc/gcc-4.3.3.tar.xz +-rw-r--r-- 1 root root 522 2009-01-29 07:18 ./source/d/gcc/gcc-no_fixincludes.diff.gz +-rwxr-xr-x 1 root root 19164 2009-05-24 17:41 ./source/d/gcc/gcc.SlackBuild +-rw-r--r-- 1 root root 756 2002-02-21 23:00 ./source/d/gcc/slack-desc.gcc +-rw-r--r-- 1 root root 753 2002-02-21 23:00 ./source/d/gcc/slack-desc.gcc-g++ +-rw-r--r-- 1 root root 1231 2007-11-08 22:00 ./source/d/gcc/slack-desc.gcc-gfortran +-rw-r--r-- 1 root root 843 2006-07-30 03:26 ./source/d/gcc/slack-desc.gcc-gnat +-rw-r--r-- 1 root root 817 2006-07-30 03:26 ./source/d/gcc/slack-desc.gcc-java +-rw-r--r-- 1 root root 962 2006-07-30 03:27 ./source/d/gcc/slack-desc.gcc-objc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/d/gdb +-rw-r--r-- 1 root root 15581509 2008-03-27 18:46 ./source/d/gdb/gdb-6.8.tar.bz2 +-rw-r--r-- 1 root root 65 2008-03-27 18:46 ./source/d/gdb/gdb-6.8.tar.bz2.sig +-rwxr-xr-x 1 root root 3434 2009-05-23 00:41 ./source/d/gdb/gdb.SlackBuild +-rw-r--r-- 1 root root 1211 2008-02-11 03:44 ./source/d/gdb/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-02 02:06 ./source/d/git +-rw-r--r-- 1 root root 248 2009-07-29 08:18 ./source/d/git/git-1.6.4.tar.sign +-rw-r--r-- 1 root root 1950436 2009-07-29 08:18 ./source/d/git/git-1.6.4.tar.xz +-rwxr-xr-x 1 root root 4273 2009-08-02 03:02 ./source/d/git/git.SlackBuild +-rw-r--r-- 1 root root 851 2009-05-30 01:25 ./source/d/git/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/gperf +-rw-r--r-- 1 root root 708380 2007-05-08 16:14 ./source/d/gperf/gperf-3.0.3.tar.bz2 +-rwxr-xr-x 1 root root 3061 2009-05-19 20:05 ./source/d/gperf/gperf.SlackBuild +-rw-r--r-- 1 root root 1018 2007-02-14 20:50 ./source/d/gperf/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-10 23:18 ./source/d/guile +-rw-r--r-- 1 root root 2303124 2009-07-05 20:52 ./source/d/guile/guile-1.8.7.tar.xz +-rwxr-xr-x 1 root root 3040 2009-08-11 00:57 ./source/d/guile/guile.SlackBuild +-rw-r--r-- 1 root root 894 2008-02-11 03:44 ./source/d/guile/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/indent +-rw-r--r-- 1 root root 531879 2009-03-04 04:05 ./source/d/indent/indent-2.2.10.tar.bz2 +-rwxr-xr-x 1 root root 3283 2009-05-19 20:05 ./source/d/indent/indent.SlackBuild +-rw-r--r-- 1 root root 889 2009-03-04 04:05 ./source/d/indent/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/intltool +-rw-r--r-- 1 root root 141110 2008-10-15 02:52 ./source/d/intltool/intltool-0.40.5.tar.bz2 +-rwxr-xr-x 1 root root 3124 2009-05-19 20:05 ./source/d/intltool/intltool.SlackBuild +-rw-r--r-- 1 root root 692 2008-09-18 04:58 ./source/d/intltool/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-29 19:19 ./source/d/kernel-headers +-rw-r--r-- 1 root root 797 2003-09-04 03:56 ./source/d/kernel-headers/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/libtool +-rw-r--r-- 1 root root 385 2000-06-19 08:58 ./source/d/libtool/doinst.sh.gz +-rw-r--r-- 1 root root 1875269 2008-09-29 15:20 ./source/d/libtool/libtool-1.5.26.tar.bz2 +-rwxr-xr-x 1 root root 2781 2009-05-19 20:05 ./source/d/libtool/libtool.SlackBuild +-rw-r--r-- 1 root root 380 2008-10-01 19:00 ./source/d/libtool/libtool.no.moved.warning.diff.gz +-rw-r--r-- 1 root root 958 2002-03-23 22:44 ./source/d/libtool/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-14 03:01 ./source/d/m4 +-rw-r--r-- 1 root root 835808 2009-04-01 14:55 ./source/d/m4/m4-1.4.13.tar.xz +-rwxr-xr-x 1 root root 3538 2009-06-12 22:09 ./source/d/m4/m4.SlackBuild +-rw-r--r-- 1 root root 928 2008-10-15 04:26 ./source/d/m4/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/make +-rw-r--r-- 1 root root 1151445 2006-04-01 06:48 ./source/d/make/make-3.81.tar.bz2 +-rw-r--r-- 1 root root 65 2006-04-01 06:49 ./source/d/make/make-3.81.tar.bz2.sig +-rwxr-xr-x 1 root root 2696 2009-05-19 20:05 ./source/d/make/make.SlackBuild +-rw-r--r-- 1 root root 923 2002-03-23 22:51 ./source/d/make/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/mercurial +-rw-r--r-- 1 root root 944023 2009-03-20 23:26 ./source/d/mercurial/mercurial-1.2.1.tar.bz2 +-rwxr-xr-x 1 root root 2239 2009-05-19 20:05 ./source/d/mercurial/mercurial.SlackBuild +-rw-r--r-- 1 root root 1253 2006-05-14 00:35 ./source/d/mercurial/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/nasm +-rw-r--r-- 1 root root 791984 2008-10-29 21:24 ./source/d/nasm/nasm-2.05.01.tar.bz2 +-rwxr-xr-x 1 root root 2427 2009-05-19 20:05 ./source/d/nasm/nasm.SlackBuild +-rw-r--r-- 1 root root 765 2002-05-28 01:27 ./source/d/nasm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/oprofile +-rw-r--r-- 1 root root 896285 2008-07-17 23:29 ./source/d/oprofile/oprofile-0.9.4.tar.bz2 +-rwxr-xr-x 1 root root 2882 2009-06-09 18:32 ./source/d/oprofile/oprofile.SlackBuild +-rw-r--r-- 1 root root 965 2003-09-08 04:40 ./source/d/oprofile/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/p2c +-rw-r--r-- 1 root root 409 2007-06-02 17:34 ./source/d/p2c/_p2c.tar.gz +-rw-r--r-- 1 root root 423399 1996-07-04 13:29 ./source/d/p2c/p2c-1.21alpha2.tar.gz +-rwxr-xr-x 1 root root 4107 2009-05-19 20:05 ./source/d/p2c/p2c.SlackBuild +-rw-r--r-- 1 root root 268 2007-06-02 17:54 ./source/d/p2c/p2c.examples.diff.gz +-rw-r--r-- 1 root root 4450 2005-05-05 14:47 ./source/d/p2c/p2c_1.21alpha2-2.1.diff.gz +-rw-r--r-- 1 root root 168 2008-10-31 22:43 ./source/d/p2c/p2c_time.diff.gz +-rw-r--r-- 1 root root 1000 2002-03-23 22:52 ./source/d/p2c/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:15 ./source/d/perl +-rw-r--r-- 1 root root 125033 2008-08-15 14:06 ./source/d/perl/DBD-mysql-4.008.tar.gz +-rw-r--r-- 1 root root 504385 2008-07-22 21:50 ./source/d/perl/DBI-1.607.tar.gz +-rw-r--r-- 1 root root 96676 2008-06-16 09:04 ./source/d/perl/URI-1.37.tar.gz +-rw-r--r-- 1 root root 230002 2007-11-20 14:35 ./source/d/perl/XML-Parser-2.36.tar.gz +-rw-r--r-- 1 root root 71129 2007-08-15 10:39 ./source/d/perl/XML-Simple-2.18.tar.gz +-rw-r--r-- 1 root root 304 2008-09-07 22:44 ./source/d/perl/doinst.sh.gz +-rw-r--r-- 1 root root 12426022 2007-12-18 17:41 ./source/d/perl/perl-5.10.0.tar.bz2 +-rwxr-xr-x 1 root root 8128 2009-05-23 00:41 ./source/d/perl/perl.SlackBuild +-rw-r--r-- 1 root root 606 2008-09-21 00:04 ./source/d/perl/perl.configure.multilib.patch.gz +-rw-r--r-- 1 root root 971 2002-07-23 05:23 ./source/d/perl/slack-desc +drwxr-xr-x 3 root root 4096 2009-06-06 21:40 ./source/d/pkg-config +-rw-r--r-- 1 root root 143 2008-04-09 21:47 ./source/d/pkg-config/doinst.sh.gz +-rw-r--r-- 1 root root 749443 2008-01-16 22:54 ./source/d/pkg-config/pkg-config-0.23.tar.bz2 +-rwxr-xr-x 1 root root 3092 2009-06-06 21:18 ./source/d/pkg-config/pkg-config.SlackBuild +drwxr-xr-x 2 root root 4096 2006-08-20 04:13 ./source/d/pkg-config/scripts +-rwxr-xr-x 1 root root 194 2007-05-24 05:41 ./source/d/pkg-config/scripts/pkgconfig.csh +-rwxr-xr-x 1 root root 204 2007-05-24 05:41 ./source/d/pkg-config/scripts/pkgconfig.sh +-rw-r--r-- 1 root root 907 2008-02-11 03:44 ./source/d/pkg-config/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/pmake +-rw-r--r-- 1 root root 264383 2005-07-07 09:32 ./source/d/pmake/pmake-1.111.tar.gz +-rwxr-xr-x 1 root root 3801 2009-05-19 20:05 ./source/d/pmake/pmake.SlackBuild +-rw-r--r-- 1 root root 265 2007-03-24 23:38 ./source/d/pmake/pmake.strerror.strdup.diff.gz +-rw-r--r-- 1 root root 38071 2007-02-09 20:45 ./source/d/pmake/pmake.txt.gz +-rw-r--r-- 1 root root 26675 2005-07-07 09:32 ./source/d/pmake/pmake_1.111-1.diff.gz +-rw-r--r-- 1 root root 795 2007-02-09 21:04 ./source/d/pmake/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 19:23 ./source/d/python +-rw-r--r-- 1 root root 9415824 2009-04-15 00:05 ./source/d/python/Python-2.6.2.tar.xz +-rw-r--r-- 1 root root 1240232 2009-04-29 05:44 ./source/d/python/python-2.6.2-docs-text.tar.xz +-rwxr-xr-x 1 root root 4399 2009-08-14 19:19 ./source/d/python/python.SlackBuild +-rw-r--r-- 1 root root 477 2009-04-29 20:18 ./source/d/python/python.pure64.diff.gz +-rw-r--r-- 1 root root 325 2009-06-09 19:23 ./source/d/python/python.readline.set_pre_input_hook.diff.gz +-rw-r--r-- 1 root root 2164 2009-04-29 20:12 ./source/d/python/python.x86_64.diff.gz +-rw-r--r-- 1 root root 895 2002-03-23 22:54 ./source/d/python/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/rcs +-rw-r--r-- 1 root root 10982 2007-06-27 22:53 ./source/d/rcs/_rcs.tar.gz +-rw-r--r-- 1 root root 270 1995-08-12 19:26 ./source/d/rcs/rcs-5.7.diff.gz +-rw-r--r-- 1 root root 282413 1995-06-16 14:53 ./source/d/rcs/rcs-5.7.tar.gz +-rwxr-xr-x 1 root root 2738 2009-05-19 20:05 ./source/d/rcs/rcs.SlackBuild +-rw-r--r-- 1 root root 776 2002-03-23 22:58 ./source/d/rcs/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-19 20:23 ./source/d/ruby +-rw-r--r-- 1 root root 3554372 2009-06-15 23:58 ./source/d/ruby/ruby-1.8.7-p174.tar.xz +-rwxr-xr-x 1 root root 3167 2009-06-19 20:24 ./source/d/ruby/ruby.SlackBuild +-rw-r--r-- 1 root root 372 2009-04-29 18:35 ./source/d/ruby/ruby.x86_64.diff.gz +-rw-r--r-- 1 root root 865 2006-07-20 06:49 ./source/d/ruby/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/strace +-rw-r--r-- 1 root root 1007 2002-04-06 20:28 ./source/d/strace/slack-desc +-rw-r--r-- 1 root root 480973 2008-08-29 00:40 ./source/d/strace/strace-4.5.18.tar.bz2 +-rwxr-xr-x 1 root root 2446 2009-05-19 20:05 ./source/d/strace/strace.SlackBuild +drwxr-xr-x 2 root root 4096 2009-08-07 01:30 ./source/d/subversion +-rwxr-xr-x 1 root root 185 2009-05-30 01:45 ./source/d/subversion/get-svn-book.sh +-rw-r--r-- 1 root root 1058 2009-05-30 01:45 ./source/d/subversion/slack-desc +-rw-r--r-- 1 root root 4444148 2009-08-06 20:56 ./source/d/subversion/subversion-1.6.4.tar.xz +-rwxr-xr-x 1 root root 4973 2009-08-07 02:09 ./source/d/subversion/subversion.SlackBuild +-rw-r--r-- 1 root root 414263 2009-08-06 06:02 ./source/d/subversion/svn-book-html.tar.bz2 +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/d/swig +-rw-r--r-- 1 root root 1018 2009-03-08 02:10 ./source/d/swig/slack-desc +-rw-r--r-- 1 root root 3888548 2009-01-31 23:59 ./source/d/swig/swig-1.3.38.tar.bz2 +-rwxr-xr-x 1 root root 3231 2009-05-19 20:05 ./source/d/swig/swig.SlackBuild +-rw-r--r-- 1 root root 61 2009-02-23 00:35 ./source/d/swig/swig.url +drwxr-xr-x 3 root root 4096 2008-11-05 12:24 ./source/e +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/e/emacs +-rw-r--r-- 1 root root 478 2008-04-06 03:10 ./source/e/emacs/doinst.sh +-rw-r--r-- 1 root root 31856408 2008-09-05 16:34 ./source/e/emacs/emacs-22.3.tar.bz2 +-rwxr-xr-x 1 root root 4981 2009-05-23 00:41 ./source/e/emacs/emacs.SlackBuild +-rw-r--r-- 1 root root 267 2008-04-06 03:18 ./source/e/emacs/emacs.info +-rw-r--r-- 1 root root 549 2008-04-06 03:11 ./source/e/emacs/slack-desc +drwxr-xr-x 2 root root 4096 2009-03-16 21:18 ./source/f +-rw-r--r-- 1 root root 963 2002-02-25 21:44 ./source/f/slack-desc.linux-faqs +-rw-r--r-- 1 root root 804 2002-02-25 21:55 ./source/f/slack-desc.linux-howtos +drwxr-xr-x 3 root root 4096 2009-06-01 17:18 ./source/installer +-rw-r--r-- 1 root root 2022321 2008-09-28 18:08 ./source/installer/busybox-1.12.1.tar.bz2 +-rw-r--r-- 1 root root 218 2008-11-07 01:40 ./source/installer/busybox-1.12.1_inotify.diff.gz +-rw-r--r-- 1 root root 22377 2009-05-06 22:27 ./source/installer/busybox-dot-config +-rwxr-xr-x 1 root root 2067 2009-06-01 17:18 ./source/installer/busybox.SlackBuild +drwxr-xr-x 2 root root 4096 2008-03-13 13:43 ./source/installer/dropbear +-rw-r--r-- 1 root root 372 2008-03-13 13:43 ./source/installer/dropbear/doinst.sh +-rw-r--r-- 1 root root 1589729 2008-03-13 13:43 ./source/installer/dropbear/dropbear-0.50.tar.bz2 +-rwxr-xr-- 1 root root 4332 2008-03-13 13:43 ./source/installer/dropbear/dropbear.Slackbuild +-rw-r--r-- 1 root root 414 2008-03-13 13:43 ./source/installer/dropbear/dropbear.xauth.patch +-rw-r--r-- 1 root root 582 2008-03-13 13:43 ./source/installer/dropbear/dropbear_dbclientpath.patch +-rw-r--r-- 1 root root 1887 2008-03-13 13:43 ./source/installer/dropbear/dropbear_emptypass.patch +-rw-r--r-- 1 root root 1795 2008-03-13 13:43 ./source/installer/dropbear/rc.dropbear.new +-rw-r--r-- 1 root root 890 2008-03-13 13:43 ./source/installer/dropbear/slack-desc +drwxr-xr-x 6 root root 4096 2009-08-18 22:38 ./source/k +-rw-r--r-- 1 root root 788 2009-07-14 19:15 ./source/k/2.6.29.x-intel-crash-patch.diff.gz +-rw-r--r-- 1 root root 1208 2009-07-15 22:54 ./source/k/README.TXT +-rw-r--r-- 1 root root 292 2009-08-18 21:57 ./source/k/README_SECURITY.TXT +-rw-r--r-- 1 root root 2586 2009-07-15 22:54 ./source/k/README_SPEAKUP_PATCH.TXT +-rw-r--r-- 1 root root 90657 2009-08-17 07:22 ./source/k/config-generic-2.6.29.6 +-rw-r--r-- 1 root root 90685 2009-08-17 16:55 ./source/k/config-huge-2.6.29.6 +-rw-r--r-- 1 root root 91169 2009-08-17 17:03 ./source/k/config-speakup-2.6.29.6 +drwxr-xr-x 2 root root 4096 2009-08-17 07:48 ./source/k/kernel-firmware +-rwxr-xr-x 1 root root 1679 2009-08-17 07:48 ./source/k/kernel-firmware/kernel-firmware.SlackBuild +-rw-r--r-- 1 root root 344 2008-10-16 03:59 ./source/k/kernel-firmware/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-17 07:48 ./source/k/kernel-generic +-rwxr-xr-x 1 root root 2909 2009-08-17 07:48 ./source/k/kernel-generic/kernel-generic.SlackBuild +-rw-r--r-- 1 root root 1091 2009-06-18 17:37 ./source/k/kernel-generic/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-17 16:59 ./source/k/kernel-huge +-rwxr-xr-x 1 root root 2906 2009-08-17 16:59 ./source/k/kernel-huge/kernel-huge.SlackBuild +-rw-r--r-- 1 root root 1100 2009-06-18 17:36 ./source/k/kernel-huge/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-17 07:48 ./source/k/kernel-modules +-rwxr-xr-x 1 root root 2872 2009-08-17 07:48 ./source/k/kernel-modules/kernel-modules.SlackBuild +-rwxr-xr-x 1 root root 35406 2009-06-04 22:36 ./source/k/kernel-modules/rc.modules.new +-rw-r--r-- 1 root root 985 2009-06-18 17:37 ./source/k/kernel-modules/slack-desc +-rw-r--r-- 1 root root 248 2009-08-17 01:17 ./source/k/linux-2.6.29.6-01-sendpage.diff.gz +-rw-r--r-- 1 root root 293 2009-08-17 02:04 ./source/k/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff.gz +-rw-r--r-- 1 root root 248 2009-07-02 23:43 ./source/k/linux-2.6.29.6.tar.sign +-rw-r--r-- 1 root root 46465516 2009-07-02 23:43 ./source/k/linux-2.6.29.6.tar.xz +-rw-r--r-- 1 root root 262123 2009-02-26 23:24 ./source/k/speakup-2009-02-24.tar.bz2 +drwxr-xr-x 34 root root 4096 2009-08-07 22:41 ./source/kde +-rwxr-xr-x 1 root root 1859 2009-05-19 20:05 ./source/kde/KDE.SlackBuild +-rw-r--r-- 1 root root 1027 2009-06-03 07:54 ./source/kde/KDE.options +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/amarok +-rwxr-xr-x 1 root root 4691 2009-07-30 19:48 ./source/kde/amarok/amarok.SlackBuild +-rw-r--r-- 1 root root 452 2009-06-05 10:59 ./source/kde/amarok/amarok.qtscript.optional.diff.gz +-rw-r--r-- 1 root root 118 2008-05-17 02:40 ./source/kde/amarok/doinst.sh.gz +-rw-r--r-- 1 root root 23 2009-06-29 00:35 ./source/kde/amarok/local.options +-rw-r--r-- 1 root root 779 2008-05-26 06:10 ./source/kde/amarok/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/guidance-power-manager +-rwxr-xr-x 1 root root 2775 2009-05-19 20:05 ./source/kde/guidance-power-manager/guidance-power-manager.SlackBuild +-rw-r--r-- 1 root root 947 2008-08-01 06:02 ./source/kde/guidance-power-manager/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/k3b +-rw-r--r-- 1 root root 118 2008-05-17 02:40 ./source/kde/k3b/doinst.sh.gz +-rwxr-xr-x 1 root root 2914 2009-05-19 20:05 ./source/kde/k3b/k3b.SlackBuild +-rw-r--r-- 1 root root 311591 2009-04-03 19:16 ./source/kde/k3b/k3b.internal.libsamplerate.diff.gz +-rw-r--r-- 1 root root 15 2009-06-03 09:43 ./source/kde/k3b/local.options +-rw-r--r-- 1 root root 836 2004-06-15 19:08 ./source/kde/k3b/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kaudiocreator +-rw-r--r-- 1 root root 118 2008-05-17 02:40 ./source/kde/kaudiocreator/doinst.sh.gz +-rwxr-xr-x 1 root root 2785 2009-05-19 20:05 ./source/kde/kaudiocreator/kaudiocreator.SlackBuild +-rw-r--r-- 1 root root 17 2009-08-07 23:21 ./source/kde/kaudiocreator/local.options +-rw-r--r-- 1 root root 752 2008-08-01 06:02 ./source/kde/kaudiocreator/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdeaccessibility +-rw-r--r-- 1 root root 118 2007-12-21 07:15 ./source/kde/kdeaccessibility/doinst.sh.gz +-rwxr-xr-x 1 root root 2915 2009-05-19 20:05 ./source/kde/kdeaccessibility/kdeaccessibility.SlackBuild +-rw-r--r-- 1 root root 848 2004-02-02 21:16 ./source/kde/kdeaccessibility/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdeadmin +-rw-r--r-- 1 root root 118 2007-12-21 07:36 ./source/kde/kdeadmin/doinst.sh.gz +-rwxr-xr-x 1 root root 2874 2009-05-19 20:05 ./source/kde/kdeadmin/kdeadmin.SlackBuild +-rw-r--r-- 1 root root 609 2007-12-21 07:36 ./source/kde/kdeadmin/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdeartwork +-rw-r--r-- 1 root root 118 2007-12-21 07:45 ./source/kde/kdeartwork/doinst.sh.gz +-rwxr-xr-x 1 root root 2880 2009-05-19 20:05 ./source/kde/kdeartwork/kdeartwork.SlackBuild +-rw-r--r-- 1 root root 671 2007-12-21 07:46 ./source/kde/kdeartwork/slack-desc +drwxr-xr-x 4 root root 4096 2009-06-06 01:24 ./source/kde/kdebase +drwxr-xr-x 2 root root 4096 2009-08-05 19:04 ./source/kde/kdebase-runtime +-rw-r--r-- 1 root root 118 2007-12-21 04:58 ./source/kde/kdebase-runtime/doinst.sh.gz +-rw-r--r-- 1 root root 404 2009-08-05 18:57 ./source/kde/kdebase-runtime/kdebase-runtime-text-render-969192.diff.gz +-rwxr-xr-x 1 root root 3206 2009-08-05 19:04 ./source/kde/kdebase-runtime/kdebase-runtime.SlackBuild +-rw-r--r-- 1 root root 8 2009-08-05 19:04 ./source/kde/kdebase-runtime/local.options +-rw-r--r-- 1 root root 739 2008-08-01 06:03 ./source/kde/kdebase-runtime/slack-desc +drwxr-xr-x 4 root root 4096 2009-06-06 01:24 ./source/kde/kdebase-workspace +drwxr-xr-x 2 root root 4096 2007-12-21 06:08 ./source/kde/kdebase-workspace/config +-rw-r--r-- 1 root root 2551 2007-12-21 05:56 ./source/kde/kdebase-workspace/config/Xsession +-rw-r--r-- 1 root root 1844 2007-12-21 05:53 ./source/kde/kdebase-workspace/config/Xsession.orig +-rw-r--r-- 1 root root 361 2007-12-21 06:10 ./source/kde/kdebase-workspace/doinst.sh.gz +-rwxr-xr-x 1 root root 3966 2009-05-19 20:05 ./source/kde/kdebase-workspace/kdebase-workspace.SlackBuild +-rw-r--r-- 1 root root 456 2008-08-01 06:04 ./source/kde/kdebase-workspace/slack-desc +drwxr-xr-x 2 root root 4096 2001-02-06 04:04 ./source/kde/kdebase-workspace/xinit +-rwxr-xr-x 1 root root 516 2007-02-15 09:18 ./source/kde/kdebase-workspace/xinit/xinitrc.kde +drwxr-xr-x 2 root root 4096 2008-09-16 01:19 ./source/kde/kdebase/config +-rw-r--r-- 1 root root 69 2006-08-23 21:34 ./source/kde/kdebase/config/kdeglobals +-rw-r--r-- 1 root root 124 2009-01-21 23:18 ./source/kde/kdebase/doinst.sh.gz +-rwxr-xr-x 1 root root 3769 2009-05-19 20:05 ./source/kde/kdebase/kdebase.SlackBuild +drwxr-xr-x 2 root root 4096 2001-02-06 04:04 ./source/kde/kdebase/profile.d +-rwxr-xr-x 1 root root 274 2008-07-11 02:34 ./source/kde/kdebase/profile.d/kde.csh +-rwxr-xr-x 1 root root 261 2008-07-11 02:33 ./source/kde/kdebase/profile.d/kde.sh +-rw-r--r-- 1 root root 748 2008-08-01 06:04 ./source/kde/kdebase/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdebindings +-rwxr-xr-x 1 root root 3296 2009-05-19 20:05 ./source/kde/kdebindings/kdebindings.SlackBuild +-rw-r--r-- 1 root root 881 2008-08-01 06:06 ./source/kde/kdebindings/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdeedu +-rw-r--r-- 1 root root 118 2007-12-21 12:20 ./source/kde/kdeedu/doinst.sh.gz +-rwxr-xr-x 1 root root 2860 2009-05-19 20:05 ./source/kde/kdeedu/kdeedu.SlackBuild +-rw-r--r-- 1 root root 586 2002-03-27 03:31 ./source/kde/kdeedu/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdegames +-rw-r--r-- 1 root root 118 2007-12-21 12:16 ./source/kde/kdegames/doinst.sh.gz +-rwxr-xr-x 1 root root 2874 2009-05-19 20:05 ./source/kde/kdegames/kdegames.SlackBuild +-rw-r--r-- 1 root root 631 2006-07-24 07:01 ./source/kde/kdegames/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdegraphics +-rw-r--r-- 1 root root 118 2007-12-21 13:11 ./source/kde/kdegraphics/doinst.sh.gz +-rwxr-xr-x 1 root root 2908 2009-05-19 20:05 ./source/kde/kdegraphics/kdegraphics.SlackBuild +-rw-r--r-- 1 root root 782 2008-08-01 06:09 ./source/kde/kdegraphics/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-07 22:17 ./source/kde/kdelibs +-rw-r--r-- 1 root root 142 2007-12-20 04:10 ./source/kde/kdelibs/doinst.sh.gz +-rw-r--r-- 1 root root 749 2009-06-12 19:53 ./source/kde/kdelibs/fixPopupForPlasmaboard.diff.gz +-rwxr-xr-x 1 root root 3126 2009-08-07 22:17 ./source/kde/kdelibs/kdelibs.SlackBuild +-rw-r--r-- 1 root root 1064 2009-08-06 07:20 ./source/kde/kdelibs/kdesu-allow_NOPASS_in_suauth.patch.gz +-rw-r--r-- 1 root root 8 2009-08-07 22:17 ./source/kde/kdelibs/local.options +-rw-r--r-- 1 root root 635 2006-07-24 06:55 ./source/kde/kdelibs/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdemultimedia +-rw-r--r-- 1 root root 118 2007-12-21 07:19 ./source/kde/kdemultimedia/doinst.sh.gz +-rwxr-xr-x 1 root root 2917 2009-05-19 20:05 ./source/kde/kdemultimedia/kdemultimedia.SlackBuild +-rw-r--r-- 1 root root 921 2008-08-01 06:10 ./source/kde/kdemultimedia/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-29 19:34 ./source/kde/kdenetwork +-rw-r--r-- 1 root root 118 2007-12-21 07:33 ./source/kde/kdenetwork/doinst.sh.gz +-rwxr-xr-x 1 root root 2955 2009-06-29 19:18 ./source/kde/kdenetwork/kdenetwork.SlackBuild +-rw-r--r-- 1 root root 3565 2009-06-29 19:16 ./source/kde/kdenetwork/kopete-r986796.diff.gz +-rw-r--r-- 1 root root 8 2009-06-29 19:18 ./source/kde/kdenetwork/local.options +-rw-r--r-- 1 root root 689 2003-09-14 13:23 ./source/kde/kdenetwork/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdepim +-rw-r--r-- 1 root root 118 2007-12-21 13:41 ./source/kde/kdepim/doinst.sh.gz +-rwxr-xr-x 1 root root 2866 2009-05-19 20:05 ./source/kde/kdepim/kdepim.SlackBuild +-rw-r--r-- 1 root root 822 2007-12-21 15:19 ./source/kde/kdepim/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdepimlibs +-rwxr-xr-x 1 root root 2877 2009-05-19 20:05 ./source/kde/kdepimlibs/kdepimlibs.SlackBuild +-rw-r--r-- 1 root root 711 2008-08-01 06:11 ./source/kde/kdepimlibs/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdeplasma-addons +-rw-r--r-- 1 root root 118 2007-12-21 12:17 ./source/kde/kdeplasma-addons/doinst.sh.gz +-rwxr-xr-x 1 root root 2915 2009-05-19 20:05 ./source/kde/kdeplasma-addons/kdeplasma-addons.SlackBuild +-rw-r--r-- 1 root root 765 2008-08-01 06:15 ./source/kde/kdeplasma-addons/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdesdk +-rw-r--r-- 1 root root 118 2007-12-21 13:10 ./source/kde/kdesdk/doinst.sh.gz +-rwxr-xr-x 1 root root 2852 2009-05-19 20:05 ./source/kde/kdesdk/kdesdk.SlackBuild +-rw-r--r-- 1 root root 751 2007-12-21 14:37 ./source/kde/kdesdk/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdetoys +-rw-r--r-- 1 root root 118 2007-12-21 12:17 ./source/kde/kdetoys/doinst.sh.gz +-rwxr-xr-x 1 root root 2867 2009-05-19 20:05 ./source/kde/kdetoys/kdetoys.SlackBuild +-rw-r--r-- 1 root root 674 2008-08-01 06:17 ./source/kde/kdetoys/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdeutils +-rw-r--r-- 1 root root 118 2007-12-21 07:16 ./source/kde/kdeutils/doinst.sh.gz +-rwxr-xr-x 1 root root 2883 2009-05-19 20:05 ./source/kde/kdeutils/kdeutils.SlackBuild +-rw-r--r-- 1 root root 753 2008-08-01 06:20 ./source/kde/kdeutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdevelop +-rw-r--r-- 1 root root 118 2007-12-24 16:27 ./source/kde/kdevelop/doinst.sh.gz +-rwxr-xr-x 1 root root 2912 2009-05-19 20:05 ./source/kde/kdevelop/kdevelop.SlackBuild +-rw-r--r-- 1 root root 15 2009-02-07 13:45 ./source/kde/kdevelop/local.options +-rw-r--r-- 1 root root 675 2008-02-11 03:44 ./source/kde/kdevelop/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/kdevplatform +-rw-r--r-- 1 root root 118 2007-12-24 16:27 ./source/kde/kdevplatform/doinst.sh.gz +-rwxr-xr-x 1 root root 2922 2009-05-19 20:05 ./source/kde/kdevplatform/kdevplatform.SlackBuild +-rw-r--r-- 1 root root 15 2009-02-07 13:44 ./source/kde/kdevplatform/local.options +-rw-r--r-- 1 root root 710 2009-01-13 15:04 ./source/kde/kdevplatform/slack-desc +drwxr-xr-x 3 root root 4096 2009-06-06 01:24 ./source/kde/kdewebdev +-rw-r--r-- 1 root root 118 2007-12-21 15:17 ./source/kde/kdewebdev/doinst.sh.gz +-rw-r--r-- 1 root root 391 2008-12-29 21:48 ./source/kde/kdewebdev/kde4-kdewebdev-findtidy.diff.gz +-rwxr-xr-x 1 root root 3286 2009-05-19 20:05 ./source/kde/kdewebdev/kdewebdev.SlackBuild +-rw-r--r-- 1 root root 747 2007-12-21 13:38 ./source/kde/kdewebdev/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 02:12 ./source/kde/kdewebdev/tidy +-rwxr-xr-x 1 root root 1682 2009-05-07 03:57 ./source/kde/kdewebdev/tidy/get-tidy-cvs.sh +-rw-r--r-- 1 root root 338376 2009-06-05 04:03 ./source/kde/kdewebdev/tidy/tidy-20090604T2303.tar.xz +-rwxr-xr-x 1 root root 2973 2009-06-06 02:12 ./source/kde/kdewebdev/tidy/tidy.SlackBuild +-rwxr-xr-x 1 root root 2591 2009-06-06 02:12 ./source/kde/kdewebdev/tidy/tidy.build +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/koffice +-rw-r--r-- 1 root root 118 2007-12-24 16:27 ./source/kde/koffice/doinst.sh.gz +-rwxr-xr-x 1 root root 2868 2009-05-19 20:05 ./source/kde/koffice/koffice.SlackBuild +-rw-r--r-- 1 root root 14 2009-08-12 20:53 ./source/kde/koffice/local.options +-rw-r--r-- 1 root root 951 2007-12-24 16:26 ./source/kde/koffice/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/konq-plugins +-rwxr-xr-x 1 root root 2880 2009-05-19 20:05 ./source/kde/konq-plugins/konq-plugins.SlackBuild +-rw-r--r-- 1 root root 982 2008-11-24 21:25 ./source/kde/konq-plugins/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/ktorrent +-rw-r--r-- 1 root root 118 2008-05-17 02:40 ./source/kde/ktorrent/doinst.sh.gz +-rwxr-xr-x 1 root root 2876 2009-05-19 20:05 ./source/kde/ktorrent/ktorrent.SlackBuild +-rw-r--r-- 1 root root 14 2009-06-03 09:48 ./source/kde/ktorrent/local.options +-rw-r--r-- 1 root root 1053 2006-08-30 03:35 ./source/kde/ktorrent/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/mplayerthumbs +-rw-r--r-- 1 root root 20492 2009-03-20 12:49 ./source/kde/mplayerthumbs/mplayerthumbs-1.2.tar.gz +-rwxr-xr-x 1 root root 3571 2009-05-23 00:41 ./source/kde/mplayerthumbs/mplayerthumbs.SlackBuild +-rw-r--r-- 1 root root 877 2009-03-20 21:14 ./source/kde/mplayerthumbs/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/kde/skanlite +-rw-r--r-- 1 root root 118 2008-05-17 02:40 ./source/kde/skanlite/doinst.sh.gz +-rw-r--r-- 1 root root 21 2009-06-03 07:29 ./source/kde/skanlite/local.options +-rwxr-xr-x 1 root root 2843 2009-05-19 20:05 ./source/kde/skanlite/skanlite.SlackBuild +-rw-r--r-- 1 root root 666 2009-01-14 00:18 ./source/kde/skanlite/slack-desc +drwxr-xr-x 3 root root 4096 2009-08-12 20:55 ./source/kde/src +drwxr-xr-x 2 root root 4096 2009-08-07 23:21 ./source/kde/src/extragear +-rw-r--r-- 1 root root 3914560 2009-06-12 16:08 ./source/kde/src/extragear/amarok-2.1.1.tar.xz +-rw-r--r-- 1 root root 75076 2009-06-02 21:18 ./source/kde/src/extragear/guidance-power-manager-4.2.4.tar.xz +-rw-r--r-- 1 root root 3405904 2009-04-03 06:18 ./source/kde/src/extragear/k3b-r948463.tar.xz +-rw-r--r-- 1 root root 56272 2009-08-07 23:20 ./source/kde/src/extragear/kaudiocreator-r1008583.tar.xz +-rw-r--r-- 1 root root 817500 2009-06-02 21:19 ./source/kde/src/extragear/konq-plugins-4.2.4.tar.xz +-rw-r--r-- 1 root root 1864716 2009-06-01 17:06 ./source/kde/src/extragear/ktorrent-3.2.2.tar.xz +-rw-r--r-- 1 root root 1152100 2009-06-02 21:20 ./source/kde/src/extragear/skanlite-0.3-kde4.2.4.tar.xz +-rw-r--r-- 1 root root 5292216 2009-05-28 20:49 ./source/kde/src/kdeaccessibility-4.2.4.tar.xz +-rw-r--r-- 1 root root 1704248 2009-05-28 20:49 ./source/kde/src/kdeadmin-4.2.4.tar.xz +-rw-r--r-- 1 root root 20787568 2009-05-28 20:49 ./source/kde/src/kdeartwork-4.2.4.tar.xz +-rw-r--r-- 1 root root 3881684 2009-05-28 20:49 ./source/kde/src/kdebase-4.2.4.tar.xz +-rw-r--r-- 1 root root 57911848 2009-05-28 20:49 ./source/kde/src/kdebase-runtime-4.2.4.tar.xz +-rw-r--r-- 1 root root 49513980 2009-05-28 20:49 ./source/kde/src/kdebase-workspace-4.2.4.tar.xz +-rw-r--r-- 1 root root 3965692 2009-05-28 20:50 ./source/kde/src/kdebindings-4.2.4.tar.xz +-rw-r--r-- 1 root root 52980056 2009-05-28 20:50 ./source/kde/src/kdeedu-4.2.4.tar.xz +-rw-r--r-- 1 root root 33984356 2009-05-28 20:49 ./source/kde/src/kdegames-4.2.4.tar.xz +-rw-r--r-- 1 root root 3311800 2009-05-28 20:50 ./source/kde/src/kdegraphics-4.2.4.tar.xz +-rw-r--r-- 1 root root 8392792 2009-05-31 15:41 ./source/kde/src/kdelibs-4.2.4.tar.xz +-rw-r--r-- 1 root root 1413780 2009-05-28 20:50 ./source/kde/src/kdemultimedia-4.2.4.tar.xz +-rw-r--r-- 1 root root 6151504 2009-05-31 15:41 ./source/kde/src/kdenetwork-4.2.4.tar.xz +-rw-r--r-- 1 root root 10864672 2009-05-29 12:19 ./source/kde/src/kdepim-4.2.4.tar.xz +-rw-r--r-- 1 root root 1341996 2009-05-28 20:49 ./source/kde/src/kdepimlibs-4.2.4.tar.xz +-rw-r--r-- 1 root root 4114396 2009-05-28 20:50 ./source/kde/src/kdeplasma-addons-4.2.4.tar.xz +-rw-r--r-- 1 root root 4732836 2009-05-28 20:50 ./source/kde/src/kdesdk-4.2.4.tar.xz +-rw-r--r-- 1 root root 1144236 2009-05-28 20:49 ./source/kde/src/kdetoys-4.2.4.tar.xz +-rw-r--r-- 1 root root 2192328 2009-05-28 20:49 ./source/kde/src/kdeutils-4.2.4.tar.xz +-rw-r--r-- 1 root root 2481808 2009-02-07 13:43 ./source/kde/src/kdevelop-3.9.91.tar.xz +-rw-r--r-- 1 root root 752324 2009-02-07 13:43 ./source/kde/src/kdevplatform-0.9.91.tar.xz +-rw-r--r-- 1 root root 2364684 2009-05-28 20:49 ./source/kde/src/kdewebdev-4.2.4.tar.xz +-rw-r--r-- 1 root root 77165068 2009-08-06 19:15 ./source/kde/src/koffice-2.0.2.tar.xz +drwxr-xr-x 5 root root 4096 2009-06-05 22:52 ./source/kdei +-rw-r--r-- 1 root root 3047691 2009-05-28 21:39 ./source/kdei/kde-l10n-ar-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1648875 2009-05-28 21:40 ./source/kdei/kde-l10n-bg-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 298627 2009-05-28 21:39 ./source/kdei/kde-l10n-bn_IN-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3803446 2009-05-28 21:40 ./source/kdei/kde-l10n-ca-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3099171 2009-05-28 21:39 ./source/kdei/kde-l10n-cs-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 407541 2009-05-28 21:40 ./source/kdei/kde-l10n-csb-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 17846324 2009-05-28 21:39 ./source/kdei/kde-l10n-da-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 18456609 2009-05-28 21:40 ./source/kdei/kde-l10n-de-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 2137632 2009-05-28 21:39 ./source/kdei/kde-l10n-el-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3709411 2009-05-28 21:39 ./source/kdei/kde-l10n-en_GB-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 18086558 2009-05-28 21:40 ./source/kdei/kde-l10n-es-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 8530370 2009-05-28 21:39 ./source/kdei/kde-l10n-et-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1919053 2009-05-28 21:39 ./source/kdei/kde-l10n-eu-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 2015413 2009-05-28 21:39 ./source/kdei/kde-l10n-fi-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 21447207 2009-05-28 21:39 ./source/kdei/kde-l10n-fr-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1885743 2009-05-28 21:39 ./source/kdei/kde-l10n-ga-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3459538 2009-05-28 21:39 ./source/kdei/kde-l10n-gl-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 552252 2009-05-28 21:39 ./source/kdei/kde-l10n-gu-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 2023647 2009-05-28 21:39 ./source/kdei/kde-l10n-he-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1632630 2009-05-28 21:39 ./source/kdei/kde-l10n-hi-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 4178697 2009-05-28 21:40 ./source/kdei/kde-l10n-hu-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1631051 2009-05-28 21:40 ./source/kdei/kde-l10n-is-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 10820811 2009-05-28 21:39 ./source/kdei/kde-l10n-it-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 2438865 2009-05-28 21:39 ./source/kdei/kde-l10n-ja-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1208684 2009-05-28 21:40 ./source/kdei/kde-l10n-kk-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1821029 2009-05-28 21:40 ./source/kdei/kde-l10n-km-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 317775 2009-05-28 21:39 ./source/kdei/kde-l10n-kn-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1264073 2009-05-28 21:39 ./source/kdei/kde-l10n-ko-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 612206 2009-05-28 21:39 ./source/kdei/kde-l10n-ku-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1887943 2009-05-28 21:40 ./source/kdei/kde-l10n-lt-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1529255 2009-05-28 21:40 ./source/kdei/kde-l10n-lv-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1358375 2009-05-28 21:40 ./source/kdei/kde-l10n-mai-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1672657 2009-05-28 21:39 ./source/kdei/kde-l10n-mk-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 20144243 2009-05-28 21:40 ./source/kdei/kde-l10n-ml-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 283455 2009-05-28 21:39 ./source/kdei/kde-l10n-mr-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 2366916 2009-05-28 21:39 ./source/kdei/kde-l10n-nb-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3389897 2009-05-28 21:40 ./source/kdei/kde-l10n-nds-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 12591866 2009-05-28 21:39 ./source/kdei/kde-l10n-nl-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1997128 2009-05-28 21:39 ./source/kdei/kde-l10n-nn-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1453172 2009-05-28 21:40 ./source/kdei/kde-l10n-pa-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3247123 2009-05-28 21:39 ./source/kdei/kde-l10n-pl-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 6319138 2009-05-28 21:39 ./source/kdei/kde-l10n-pt-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 11571252 2009-05-28 21:39 ./source/kdei/kde-l10n-pt_BR-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3086549 2009-05-28 21:39 ./source/kdei/kde-l10n-ro-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 5497566 2009-05-28 21:40 ./source/kdei/kde-l10n-ru-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 2095473 2009-05-28 21:40 ./source/kdei/kde-l10n-sk-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 4171478 2009-05-28 21:39 ./source/kdei/kde-l10n-sl-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3704778 2009-05-28 21:40 ./source/kdei/kde-l10n-sr-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 21055599 2009-05-28 21:39 ./source/kdei/kde-l10n-sv-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1849772 2009-05-28 21:40 ./source/kdei/kde-l10n-tg-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 1121341 2009-05-28 21:39 ./source/kdei/kde-l10n-th-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 2014892 2009-05-28 21:40 ./source/kdei/kde-l10n-tr-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 7868780 2009-05-28 21:40 ./source/kdei/kde-l10n-uk-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 813463 2009-05-28 21:40 ./source/kdei/kde-l10n-wa-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 3150800 2009-05-28 21:39 ./source/kdei/kde-l10n-zh_CN-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 2086297 2009-05-28 21:39 ./source/kdei/kde-l10n-zh_TW-4.2.4.tar.bz2 +-rwxr-xr-x 1 root root 3985 2009-06-05 18:51 ./source/kdei/kde-l10n.SlackBuild +drwxr-xr-x 3 root root 4096 2009-08-12 22:28 ./source/kdei/koffice +-rw-r--r-- 1 root root 854883 2009-08-06 19:16 ./source/kdei/koffice/koffice-l10n-ca-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 254180 2009-08-06 19:20 ./source/kdei/koffice/koffice-l10n-cs-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 906844 2009-08-06 19:21 ./source/kdei/koffice/koffice-l10n-da-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 5148595 2009-08-06 19:19 ./source/kdei/koffice/koffice-l10n-de-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 261106 2009-08-06 19:17 ./source/kdei/koffice/koffice-l10n-el-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 280251 2009-08-06 19:19 ./source/kdei/koffice/koffice-l10n-en_GB-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 5663403 2009-08-06 19:17 ./source/kdei/koffice/koffice-l10n-es-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 922171 2009-08-06 19:18 ./source/kdei/koffice/koffice-l10n-et-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 6205784 2009-08-06 19:21 ./source/kdei/koffice/koffice-l10n-fr-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 263453 2009-08-06 19:15 ./source/kdei/koffice/koffice-l10n-fy-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 297305 2009-08-06 19:21 ./source/kdei/koffice/koffice-l10n-gl-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 224589 2009-08-06 19:16 ./source/kdei/koffice/koffice-l10n-hi-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 903186 2009-08-06 19:18 ./source/kdei/koffice/koffice-l10n-it-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 225427 2009-08-06 19:17 ./source/kdei/koffice/koffice-l10n-ja-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 247510 2009-08-06 19:20 ./source/kdei/koffice/koffice-l10n-kk-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 273104 2009-08-06 19:19 ./source/kdei/koffice/koffice-l10n-nb-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 872871 2009-08-06 19:16 ./source/kdei/koffice/koffice-l10n-nds-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 2732895 2009-08-06 19:16 ./source/kdei/koffice/koffice-l10n-nl-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 265677 2009-08-06 19:15 ./source/kdei/koffice/koffice-l10n-pl-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 874297 2009-08-06 19:16 ./source/kdei/koffice/koffice-l10n-pt-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 2008686 2009-08-06 19:21 ./source/kdei/koffice/koffice-l10n-pt_BR-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 5428252 2009-08-06 19:20 ./source/kdei/koffice/koffice-l10n-sv-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 232596 2009-08-06 19:20 ./source/kdei/koffice/koffice-l10n-tr-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 653243 2009-08-06 19:19 ./source/kdei/koffice/koffice-l10n-uk-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 234910 2009-08-06 19:19 ./source/kdei/koffice/koffice-l10n-wa-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 217799 2009-08-06 19:19 ./source/kdei/koffice/koffice-l10n-zh_CN-2.0.2.tar.bz2 +-rw-r--r-- 1 root root 244029 2009-08-06 19:15 ./source/kdei/koffice/koffice-l10n-zh_TW-2.0.2.tar.bz2 +-rwxr-xr-x 1 root root 4017 2009-08-12 22:25 ./source/kdei/koffice/koffice-l10n.SlackBuild +-rw-r--r-- 1 root root 94 2009-08-12 22:28 ./source/kdei/koffice/languages +drwxr-xr-x 2 root root 4096 2009-06-05 22:51 ./source/kdei/koffice/slack-desc +-rw-r--r-- 1 root root 709 2005-06-23 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-af +-rw-r--r-- 1 root root 240 2005-06-23 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ar +-rw-r--r-- 1 root root 711 2005-06-23 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-az +-rw-r--r-- 1 root root 243 2007-06-11 08:45 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-bg +-rw-r--r-- 1 root root 706 2005-06-23 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-br +-rw-r--r-- 1 root root 241 2005-06-23 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-bs +-rw-r--r-- 1 root root 241 2005-06-23 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ca +-rw-r--r-- 1 root root 705 2005-06-23 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-cs +-rw-r--r-- 1 root root 239 2005-06-23 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-cy +-rw-r--r-- 1 root root 706 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-da +-rw-r--r-- 1 root root 706 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-de +-rw-r--r-- 1 root root 239 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-el +-rw-r--r-- 1 root root 751 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-en_GB +-rw-r--r-- 1 root root 709 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-eo +-rw-r--r-- 1 root root 707 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-es +-rw-r--r-- 1 root root 708 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-et +-rw-r--r-- 1 root root 706 2006-01-29 02:25 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-eu +-rw-r--r-- 1 root root 249 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fa +-rw-r--r-- 1 root root 241 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fi +-rw-r--r-- 1 root root 706 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fr +-rw-r--r-- 1 root root 243 2008-11-24 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fy +-rw-r--r-- 1 root root 712 2006-04-17 05:24 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ga +-rw-r--r-- 1 root root 708 2007-02-16 22:10 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-gl +-rw-r--r-- 1 root root 240 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-he +-rw-r--r-- 1 root root 239 2006-04-17 05:25 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hi +-rw-r--r-- 1 root root 259 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hsb +-rw-r--r-- 1 root root 709 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hu +-rw-r--r-- 1 root root 243 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-is +-rw-r--r-- 1 root root 707 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-it +-rw-r--r-- 1 root root 708 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ja +-rw-r--r-- 1 root root 240 2008-11-24 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-kk +-rw-r--r-- 1 root root 705 2007-04-22 20:28 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-km +-rw-r--r-- 1 root root 237 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lo +-rw-r--r-- 1 root root 710 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lt +-rw-r--r-- 1 root root 241 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lv +-rw-r--r-- 1 root root 244 2007-02-16 22:11 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-mk +-rw-r--r-- 1 root root 705 2006-06-02 20:44 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ms +-rw-r--r-- 1 root root 707 2005-06-23 22:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-mt +-rw-r--r-- 1 root root 253 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nb +-rw-r--r-- 1 root root 255 2007-06-11 08:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nds +-rw-r--r-- 1 root root 240 2007-06-11 08:47 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ne +-rw-r--r-- 1 root root 705 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nl +-rw-r--r-- 1 root root 253 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nn +-rw-r--r-- 1 root root 719 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-no +-rw-r--r-- 1 root root 758 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-no_NY +-rw-r--r-- 1 root root 706 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pl +-rw-r--r-- 1 root root 710 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pt +-rw-r--r-- 1 root root 756 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pt_BR +-rw-r--r-- 1 root root 708 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ro +-rw-r--r-- 1 root root 707 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ru +-rw-r--r-- 1 root root 713 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-se +-rw-r--r-- 1 root root 706 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sk +-rw-r--r-- 1 root root 709 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sl +-rw-r--r-- 1 root root 707 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sr +-rw-r--r-- 1 root root 788 2005-07-27 22:46 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sr@Latn +-rw-r--r-- 1 root root 707 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sv +-rw-r--r-- 1 root root 705 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ta +-rw-r--r-- 1 root root 239 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-tg +-rw-r--r-- 1 root root 238 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-th +-rw-r--r-- 1 root root 707 2005-06-23 22:48 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-tr +-rw-r--r-- 1 root root 709 2005-06-23 22:49 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-uk +-rw-r--r-- 1 root root 239 2006-04-17 05:27 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-uz +-rw-r--r-- 1 root root 251 2005-06-23 22:49 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ven +-rw-r--r-- 1 root root 707 2009-06-03 08:13 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-wa +-rw-r--r-- 1 root root 239 2005-06-23 22:49 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-xh +-rw-r--r-- 1 root root 288 2005-06-23 22:49 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zh_CN +-rw-r--r-- 1 root root 277 2005-06-23 22:49 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zh_TW +-rw-r--r-- 1 root root 238 2005-06-23 22:49 ./source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zu +-rw-r--r-- 1 root root 186 2009-06-05 18:53 ./source/kdei/languages +drwxr-xr-x 2 root root 4096 2008-05-26 07:17 ./source/kdei/local.options +drwxr-xr-x 2 root root 4096 2009-03-31 12:51 ./source/kdei/slack-desc +-rw-r--r-- 1 root root 188 2009-01-21 22:32 ./source/kdei/slack-desc/slack-desc.kde-l10n-ar +-rw-r--r-- 1 root root 191 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-bg +-rw-r--r-- 1 root root 225 2009-03-06 20:29 ./source/kdei/slack-desc/slack-desc.kde-l10n-bn_IN +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-ca +-rw-r--r-- 1 root root 187 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-cs +-rw-r--r-- 1 root root 203 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-csb +-rw-r--r-- 1 root root 188 2008-07-26 01:24 ./source/kdei/slack-desc/slack-desc.kde-l10n-da +-rw-r--r-- 1 root root 188 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-de +-rw-r--r-- 1 root root 187 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-el +-rw-r--r-- 1 root root 230 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-en_GB +-rw-r--r-- 1 root root 191 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-eo +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-es +-rw-r--r-- 1 root root 190 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-et +-rw-r--r-- 1 root root 188 2009-03-06 22:05 ./source/kdei/slack-desc/slack-desc.kde-l10n-eu +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-fi +-rw-r--r-- 1 root root 188 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-fr +-rw-r--r-- 1 root root 191 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-fy +-rw-r--r-- 1 root root 187 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-ga +-rw-r--r-- 1 root root 190 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-gl +-rw-r--r-- 1 root root 190 2009-01-21 22:33 ./source/kdei/slack-desc/slack-desc.kde-l10n-gu +-rw-r--r-- 1 root root 188 2009-01-21 22:34 ./source/kdei/slack-desc/slack-desc.kde-l10n-he +-rw-r--r-- 1 root root 187 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-hi +-rw-r--r-- 1 root root 191 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-hu +-rw-r--r-- 1 root root 191 2009-03-06 22:06 ./source/kdei/slack-desc/slack-desc.kde-l10n-is +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-it +-rw-r--r-- 1 root root 190 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-ja +-rw-r--r-- 1 root root 188 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-kk +-rw-r--r-- 1 root root 187 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-km +-rw-r--r-- 1 root root 189 2009-03-06 20:30 ./source/kdei/slack-desc/slack-desc.kde-l10n-kn +-rw-r--r-- 1 root root 188 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-ko +-rw-r--r-- 1 root root 189 2008-07-26 01:59 ./source/kdei/slack-desc/slack-desc.kde-l10n-ku +-rw-r--r-- 1 root root 192 2008-07-26 01:58 ./source/kdei/slack-desc/slack-desc.kde-l10n-lt +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-lv +-rw-r--r-- 1 root root 202 2009-01-27 05:28 ./source/kdei/slack-desc/slack-desc.kde-l10n-mai +-rw-r--r-- 1 root root 192 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-mk +-rw-r--r-- 1 root root 191 2008-07-26 01:59 ./source/kdei/slack-desc/slack-desc.kde-l10n-ml +-rw-r--r-- 1 root root 189 2009-03-06 20:31 ./source/kdei/slack-desc/slack-desc.kde-l10n-mr +-rw-r--r-- 1 root root 201 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-nb +-rw-r--r-- 1 root root 203 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-nds +-rw-r--r-- 1 root root 187 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-nl +-rw-r--r-- 1 root root 201 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-nn +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-pa +-rw-r--r-- 1 root root 188 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-pl +-rw-r--r-- 1 root root 192 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-pt +-rw-r--r-- 1 root root 238 2008-05-26 07:01 ./source/kdei/slack-desc/slack-desc.kde-l10n-pt_BR +-rw-r--r-- 1 root root 190 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-ro +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-ru +-rw-r--r-- 1 root root 188 2009-04-03 21:25 ./source/kdei/slack-desc/slack-desc.kde-l10n-sk +-rw-r--r-- 1 root root 191 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-sl +-rw-r--r-- 1 root root 189 2008-07-26 01:58 ./source/kdei/slack-desc/slack-desc.kde-l10n-sr +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-sv +-rw-r--r-- 1 root root 187 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-ta +-rw-r--r-- 1 root root 187 2009-03-06 22:07 ./source/kdei/slack-desc/slack-desc.kde-l10n-tg +-rw-r--r-- 1 root root 186 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-th +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-tr +-rw-r--r-- 1 root root 191 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-uk +-rw-r--r-- 1 root root 189 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-wa +-rw-r--r-- 1 root root 236 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-zh_CN +-rw-r--r-- 1 root root 225 2008-05-26 06:46 ./source/kdei/slack-desc/slack-desc.kde-l10n-zh_TW +drwxr-xr-x 167 root root 4096 2009-08-25 02:11 ./source/l +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/M2Crypto +-rw-r--r-- 1 root root 309578 2009-02-23 00:48 ./source/l/M2Crypto/M2Crypto-0.19.1.tar.bz2 +-rwxr-xr-x 1 root root 2428 2009-05-19 20:05 ./source/l/M2Crypto/M2Crypto.SlackBuild +-rw-r--r-- 1 root root 1050 2009-03-31 01:47 ./source/l/M2Crypto/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/PyQt +-rw-r--r-- 1 root root 6085598 2008-12-18 19:57 ./source/l/PyQt/PyQt-x11-gpl-4.4.4.tar.bz2 +-rwxr-xr-x 1 root root 2580 2009-05-19 20:05 ./source/l/PyQt/PyQt.SlackBuild +-rw-r--r-- 1 root root 158 2008-05-26 07:48 ./source/l/PyQt/PyQt.info +-rw-r--r-- 1 root root 732 2008-07-31 03:50 ./source/l/PyQt/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/QScintilla +-rw-r--r-- 1 root root 1449615 2008-11-17 13:54 ./source/l/QScintilla/QScintilla-gpl-2.3.2.tar.bz2 +-rwxr-xr-x 1 root root 2758 2009-05-19 20:05 ./source/l/QScintilla/QScintilla.SlackBuild +-rw-r--r-- 1 root root 310 2008-05-26 02:36 ./source/l/QScintilla/QScintilla.info +-rw-r--r-- 1 root root 1127 2008-07-31 04:32 ./source/l/QScintilla/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/aalib +-rw-r--r-- 1 root root 391028 2001-04-26 15:56 ./source/l/aalib/aalib-1.4rc5.tar.gz +-rwxr-xr-x 1 root root 3396 2009-05-19 20:05 ./source/l/aalib/aalib.SlackBuild +-rw-r--r-- 1 root root 1451 2002-03-28 07:45 ./source/l/aalib/slack-desc +-rw-r--r-- 1 root root 1305 2002-03-28 07:43 ./source/l/aalib/slack-desc.11line +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/akonadi +-rw-r--r-- 1 root root 135407 2009-04-30 19:29 ./source/l/akonadi/akonadi-1.1.2.tar.bz2 +-rwxr-xr-x 1 root root 2809 2009-05-19 20:05 ./source/l/akonadi/akonadi.SlackBuild +-rw-r--r-- 1 root root 110 2008-04-30 19:12 ./source/l/akonadi/doinst.sh.gz +-rw-r--r-- 1 root root 840 2008-08-01 03:37 ./source/l/akonadi/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/alsa-lib +-rw-r--r-- 1 root root 790052 2008-10-29 12:51 ./source/l/alsa-lib/alsa-lib-1.0.18.tar.bz2 +-rwxr-xr-x 1 root root 2621 2009-05-19 20:05 ./source/l/alsa-lib/alsa-lib.SlackBuild +-rw-r--r-- 1 root root 861 2003-08-29 05:32 ./source/l/alsa-lib/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/alsa-oss +-rw-r--r-- 1 root root 248726 2008-07-14 09:20 ./source/l/alsa-oss/alsa-oss-1.0.17.tar.bz2 +-rwxr-xr-x 1 root root 2601 2009-05-19 20:05 ./source/l/alsa-oss/alsa-oss.SlackBuild +-rw-r--r-- 1 root root 962 2003-08-29 06:30 ./source/l/alsa-oss/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-06 20:37 ./source/l/apr +drwxr-xr-x 2 root root 4096 2009-08-06 20:38 ./source/l/apr-util +-rw-r--r-- 1 root root 589942 2009-08-04 21:09 ./source/l/apr-util/apr-util-1.3.9.tar.bz2 +-rw-r--r-- 1 root root 835 2009-08-04 21:09 ./source/l/apr-util/apr-util-1.3.9.tar.bz2.asc +-rwxr-xr-x 1 root root 3205 2009-08-06 23:09 ./source/l/apr-util/apr-util.SlackBuild +-rw-r--r-- 1 root root 942 2006-07-29 21:51 ./source/l/apr-util/slack-desc +-rw-r--r-- 1 root root 940394 2009-08-04 21:08 ./source/l/apr/apr-1.3.8.tar.bz2 +-rw-r--r-- 1 root root 835 2009-08-04 21:08 ./source/l/apr/apr-1.3.8.tar.bz2.asc +-rwxr-xr-x 1 root root 2694 2009-08-06 23:06 ./source/l/apr/apr.SlackBuild +-rw-r--r-- 1 root root 729 2006-07-29 07:49 ./source/l/apr/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/l/aspell +drwxr-xr-x 2 root root 4096 2009-08-13 02:39 ./source/l/aspell-dict +-rw-r--r-- 1 root root 256111 2004-03-15 00:39 ./source/l/aspell-dict/aspell-af-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 68055 2003-04-17 02:03 ./source/l/aspell-dict/aspell-br-0.50-2.tar.bz2 +-rw-r--r-- 1 root root 117652 2003-04-17 02:03 ./source/l/aspell-dict/aspell-cy-0.50-3.tar.bz2 +-rwxr-xr-x 1 root root 2446 2009-05-19 20:05 ./source/l/aspell-dict/aspell-dict.SlackBuild +-rw-r--r-- 1 root root 328225 2003-04-17 02:03 ./source/l/aspell-dict/aspell-el-0.50-3.tar.bz2 +-rw-r--r-- 1 root root 89703 2003-04-17 02:03 ./source/l/aspell-dict/aspell-eo-0.50-2.tar.bz2 +-rw-r--r-- 1 root root 157809 2003-04-17 02:03 ./source/l/aspell-dict/aspell-es-0.50-2.tar.bz2 +-rw-r--r-- 1 root root 283086 2003-04-17 02:03 ./source/l/aspell-dict/aspell-fr-0.50-3.tar.bz2 +-rw-r--r-- 1 root root 112313 2004-03-10 09:57 ./source/l/aspell-dict/aspell-gl-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 69462 2004-04-05 21:17 ./source/l/aspell-dict/aspell-gv-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 208118 2004-03-30 08:07 ./source/l/aspell-dict/aspell-hr-0.51-0.tar.bz2 +-rw-r--r-- 1 root root 70883 2004-03-30 10:04 ./source/l/aspell-dict/aspell-ia-0.50-1.tar.bz2 +-rw-r--r-- 1 root root 323850 2004-03-13 11:17 ./source/l/aspell-dict/aspell-is-0.51.1-0.tar.bz2 +-rw-r--r-- 1 root root 57818 2004-03-15 00:40 ./source/l/aspell-dict/aspell-mi-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 122690 2004-04-23 18:46 ./source/l/aspell-dict/aspell-mk-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 50368 2004-03-15 00:40 ./source/l/aspell-dict/aspell-ms-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 124114 2004-03-25 00:02 ./source/l/aspell-dict/aspell-mt-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 423161 2009-07-21 19:10 ./source/l/aspell-dict/aspell-nb-0.50.1-0.tar.bz2 +-rw-r--r-- 1 root root 428365 2003-04-17 02:03 ./source/l/aspell-dict/aspell-nl-0.50-2.tar.bz2 +-rw-r--r-- 1 root root 335156 2004-04-05 07:11 ./source/l/aspell-dict/aspell-nn-0.50.1-1.tar.bz2 +-rw-r--r-- 1 root root 286696 2003-04-17 02:03 ./source/l/aspell-dict/aspell-no-0.50-2.tar.bz2 +-rw-r--r-- 1 root root 624458 2004-03-10 09:47 ./source/l/aspell-dict/aspell-pl-0.51-0.tar.bz2 +-rw-r--r-- 1 root root 201341 2003-04-17 02:03 ./source/l/aspell-dict/aspell-pt-0.50-2.tar.bz2 +-rw-r--r-- 1 root root 64110 2003-04-17 02:03 ./source/l/aspell-dict/aspell-ro-0.50-2.tar.bz2 +-rw-r--r-- 1 root root 21821 2004-05-19 18:04 ./source/l/aspell-dict/aspell-rw-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 383840 2004-04-16 02:14 ./source/l/aspell-dict/aspell-sk-0.52-0.tar.bz2 +-rw-r--r-- 1 root root 215463 2004-03-15 00:40 ./source/l/aspell-dict/aspell-sl-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 93942 2004-03-10 09:48 ./source/l/aspell-dict/aspell-sv-0.51-0.tar.bz2 +-rw-r--r-- 1 root root 102172 2004-03-29 12:07 ./source/l/aspell-dict/aspell-sw-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 84846 2004-03-29 10:22 ./source/l/aspell-dict/aspell-tr-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 382513 2004-03-10 09:48 ./source/l/aspell-dict/aspell-uk-0.51-0.tar.bz2 +-rw-r--r-- 1 root root 50363 2004-03-29 09:35 ./source/l/aspell-dict/aspell-wa-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 168226 2004-03-29 12:07 ./source/l/aspell-dict/aspell-zu-0.50-0.tar.bz2 +-rw-r--r-- 1 root root 653405 2004-07-05 21:42 ./source/l/aspell-dict/aspell5-be-0.01.tar.bz2 +-rw-r--r-- 1 root root 176676 2004-05-28 15:49 ./source/l/aspell-dict/aspell5-bg-4.0-0.tar.bz2 +-rw-r--r-- 1 root root 317688 2004-08-13 02:35 ./source/l/aspell-dict/aspell5-da-1.4.42-1.tar.bz2 +-rw-r--r-- 1 root root 165901 2004-08-13 02:36 ./source/l/aspell-dict/aspell5-fo-0.2.16-1.tar.bz2 +-rw-r--r-- 1 root root 539910 2005-01-07 21:36 ./source/l/aspell-dict/aspell5-ga-3.6-0.tar.bz2 +-rw-r--r-- 1 root root 51167 2004-08-13 02:37 ./source/l/aspell-dict/aspell5-gd-0.1.1-1.tar.bz2 +-rw-r--r-- 1 root root 46288 2005-04-06 22:05 ./source/l/aspell-dict/aspell5-hil-0.11-0.tar.bz2 +-rw-r--r-- 1 root root 76958 2004-08-12 15:04 ./source/l/aspell-dict/aspell5-id-1.2-0.tar.bz2 +-rw-r--r-- 1 root root 23870 2004-09-22 17:27 ./source/l/aspell-dict/aspell5-ku-0.12-0.tar.bz2 +-rw-r--r-- 1 root root 45331 2004-09-10 23:38 ./source/l/aspell-dict/aspell5-mg-0.03-0.tar.bz2 +-rw-r--r-- 1 root root 22952 2004-08-10 14:49 ./source/l/aspell-dict/aspell5-ny-0.01-0.tar.bz2 +-rw-r--r-- 1 root root 281538 2004-06-01 13:33 ./source/l/aspell-dict/aspell5-sc-1.0.tar.bz2 +-rw-r--r-- 1 root root 33044 2004-06-02 14:11 ./source/l/aspell-dict/aspell5-tet-0.1.1.tar.bz2 +-rw-r--r-- 1 root root 40642 2004-08-06 15:21 ./source/l/aspell-dict/aspell5-tl-0.02-1.tar.bz2 +-rw-r--r-- 1 root root 22127 2004-08-13 02:38 ./source/l/aspell-dict/aspell5-tn-1.0.1-0.tar.bz2 +-rw-r--r-- 1 root root 40493 2004-12-28 14:21 ./source/l/aspell-dict/aspell6-am-0.03-1.tar.bz2 +-rw-r--r-- 1 root root 50588 2004-08-27 06:06 ./source/l/aspell-dict/aspell6-az-0.02-0.tar.bz2 +-rw-r--r-- 1 root root 117436 2004-08-27 06:06 ./source/l/aspell-dict/aspell6-bn-0.01.1-1.tar.bz2 +-rw-r--r-- 1 root root 222986 2004-08-27 06:06 ./source/l/aspell-dict/aspell6-ca-20040130-1.tar.bz2 +-rw-r--r-- 1 root root 451507 2004-08-27 06:06 ./source/l/aspell-dict/aspell6-cs-20040614-1.tar.bz2 +-rw-r--r-- 1 root root 32694 2005-03-11 20:40 ./source/l/aspell-dict/aspell6-csb-0.02-0.tar.bz2 +-rw-r--r-- 1 root root 274407 2004-11-04 02:48 ./source/l/aspell-dict/aspell6-de-20030222-1.tar.bz2 +-rw-r--r-- 1 root root 182442 2004-08-27 06:37 ./source/l/aspell-dict/aspell6-en-6.0-0.tar.bz2 +-rw-r--r-- 1 root root 338155 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-et-0.1.21-1.tar.bz2 +-rw-r--r-- 1 root root 97168 2004-11-04 02:01 ./source/l/aspell-dict/aspell6-fa-0.02-0.tar.bz2 +-rw-r--r-- 1 root root 209249 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-fi-0.7-0.tar.bz2 +-rw-r--r-- 1 root root 30949 2006-01-17 06:49 ./source/l/aspell-dict/aspell6-gu-0.02-0.tar.bz2 +-rw-r--r-- 1 root root 122781 2006-05-21 23:39 ./source/l/aspell-dict/aspell6-he-1.0-0.tar.bz2 +-rw-r--r-- 1 root root 51021 2005-01-27 13:35 ./source/l/aspell-dict/aspell6-hi-0.01-0.tar.bz2 +-rw-r--r-- 1 root root 109026 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-hsb-0.01-1.tar.bz2 +-rw-r--r-- 1 root root 375949 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-hu-0.99.4.2-0.tar.bz2 +-rw-r--r-- 1 root root 216189 2005-06-01 06:35 ./source/l/aspell-dict/aspell6-it-2.2_20050523-0.tar.bz2 +-rw-r--r-- 1 root root 42722 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-la-20020503-0.tar.bz2 +-rw-r--r-- 1 root root 153912 2006-01-18 00:22 ./source/l/aspell-dict/aspell6-lt-1.1+cvs20060103-0.tar.bz2 +-rw-r--r-- 1 root root 72416 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-lv-0.5.5-1.tar.bz2 +-rw-r--r-- 1 root root 35446 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-mn-0.01-0.tar.bz2 +-rw-r--r-- 1 root root 151720 2005-05-25 15:58 ./source/l/aspell-dict/aspell6-mr-0.10-0.tar.bz2 +-rw-r--r-- 1 root root 32658 2004-12-28 02:31 ./source/l/aspell-dict/aspell6-nds-0.01-0.tar.bz2 +-rw-r--r-- 1 root root 20525 2005-01-25 14:21 ./source/l/aspell-dict/aspell6-or-0.03-1.tar.bz2 +-rw-r--r-- 1 root root 22143 2005-01-25 14:21 ./source/l/aspell-dict/aspell6-pa-0.01-1.tar.bz2 +-rw-r--r-- 1 root root 864887 2008-07-18 05:44 ./source/l/aspell-dict/aspell6-pt_BR-20080707-0.tar.bz2 +-rw-r--r-- 1 root root 85541 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-qu-0.02-0.tar.bz2 +-rw-r--r-- 1 root root 427312 2004-08-27 06:37 ./source/l/aspell-dict/aspell6-ru-0.99f7-1.tar.bz2 +-rw-r--r-- 1 root root 574923 2005-11-11 02:14 ./source/l/aspell-dict/aspell6-sr-0.02.tar.bz2 +-rw-r--r-- 1 root root 44452 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-ta-20040424-1.tar.bz2 +-rw-r--r-- 1 root root 310738 2005-09-29 06:21 ./source/l/aspell-dict/aspell6-te-0.01-2.tar.bz2 +-rw-r--r-- 1 root root 179098 2005-11-06 20:39 ./source/l/aspell-dict/aspell6-uk-1.1-0.tar.bz2 +-rw-r--r-- 1 root root 71160 2006-01-15 23:09 ./source/l/aspell-dict/aspell6-uz-0.5-0.tar.bz2 +-rw-r--r-- 1 root root 30843 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-vi-0.01.1-1.tar.bz2 +-rw-r--r-- 1 root root 74382 2004-08-27 06:11 ./source/l/aspell-dict/aspell6-yi-0.01.1-1.tar.bz2 +-rw-r--r-- 1 root root 1139127 2006-12-19 13:26 ./source/l/aspell/aspell-0.60.5.tar.bz2 +-rwxr-xr-x 1 root root 2950 2009-05-23 00:41 ./source/l/aspell/aspell.SlackBuild +-rw-r--r-- 1 root root 708 2003-01-13 23:01 ./source/l/aspell/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/atk +-rw-r--r-- 1 root root 719807 2009-03-23 15:09 ./source/l/atk/atk-1.26.0.tar.bz2 +-rwxr-xr-x 1 root root 2491 2009-05-19 20:05 ./source/l/atk/atk.SlackBuild +-rw-r--r-- 1 root root 627 2008-02-11 03:44 ./source/l/atk/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/audiofile +-rw-r--r-- 1 root root 278694 2004-04-21 19:32 ./source/l/audiofile/audiofile-0.2.6.tar.bz2 +-rwxr-xr-x 1 root root 3309 2009-05-19 20:05 ./source/l/audiofile/audiofile.SlackBuild +-rw-r--r-- 1 root root 775 2002-02-09 00:27 ./source/l/audiofile/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/automoc4 +-rw-r--r-- 1 root root 9153 2009-01-22 18:51 ./source/l/automoc4/automoc4-0.9.88.tar.bz2 +-rwxr-xr-x 1 root root 2450 2009-05-19 20:05 ./source/l/automoc4/automoc4.SlackBuild +-rw-r--r-- 1 root root 912 2009-01-03 21:13 ./source/l/automoc4/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/babl +-rw-r--r-- 1 root root 396413 2008-10-01 19:33 ./source/l/babl/babl-0.0.22.tar.bz2 +-rwxr-xr-x 1 root root 2626 2009-05-19 20:05 ./source/l/babl/babl.SlackBuild +-rw-r--r-- 1 root root 975 2008-10-02 04:36 ./source/l/babl/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-25 01:45 ./source/l/boost +-rwxr-xr-x 1 root root 4607 2009-08-25 02:12 ./source/l/boost/boost.SlackBuild +-rw-r--r-- 1 root root 282 2009-08-25 01:45 ./source/l/boost/boost.ifdef_placement.diff.gz +-rw-r--r-- 1 root root 29164877 2009-02-08 13:09 ./source/l/boost/boost_1_38_0.tar.bz2 +-rw-r--r-- 1 root root 889 2008-08-01 01:35 ./source/l/boost/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/cairo +-rw-r--r-- 1 root root 5367390 2008-12-14 16:32 ./source/l/cairo/cairo-1.8.6.tar.bz2 +-rwxr-xr-x 1 root root 2675 2009-06-09 00:45 ./source/l/cairo/cairo.SlackBuild +-rw-r--r-- 1 root root 851 2006-01-18 02:12 ./source/l/cairo/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/chmlib +-rw-r--r-- 1 root root 263013 2007-01-25 02:26 ./source/l/chmlib/chmlib-0.39.tar.bz2 +-rwxr-xr-x 1 root root 2626 2009-05-19 20:05 ./source/l/chmlib/chmlib.SlackBuild +-rw-r--r-- 1 root root 164 2008-01-08 04:13 ./source/l/chmlib/chmlib.info +-rw-r--r-- 1 root root 927 2008-08-01 05:34 ./source/l/chmlib/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/clucene +-rw-r--r-- 1 root root 1539103 2008-10-23 18:18 ./source/l/clucene/clucene-core-0.9.21b.tar.bz2 +-rwxr-xr-x 1 root root 2753 2009-05-19 20:05 ./source/l/clucene/clucene.SlackBuild +-rw-r--r-- 1 root root 198 2007-12-20 00:45 ./source/l/clucene/clucene.info +-rw-r--r-- 1 root root 357 2008-08-01 05:36 ./source/l/clucene/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/db42 +-rw-r--r-- 1 root root 3045196 2003-12-04 17:46 ./source/l/db42/db-4.2.52.tar.bz2 +-rwxr-xr-x 1 root root 4435 2009-05-19 20:05 ./source/l/db42/db42.SlackBuild +-rw-r--r-- 1 root root 544 2003-12-19 03:16 ./source/l/db42/patch.4.2.52.1.gz +-rw-r--r-- 1 root root 466 2004-02-02 20:19 ./source/l/db42/patch.4.2.52.2.gz +-rw-r--r-- 1 root root 1683 2005-12-09 11:17 ./source/l/db42/patch.4.2.52.3.gz +-rw-r--r-- 1 root root 427 2005-12-09 11:17 ./source/l/db42/patch.4.2.52.4.gz +-rw-r--r-- 1 root root 819 2006-03-04 22:50 ./source/l/db42/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/db44 +-rw-r--r-- 1 root root 6886251 2006-01-10 16:38 ./source/l/db44/db-4.4.20.tar.bz2 +-rwxr-xr-x 1 root root 4029 2009-05-19 20:05 ./source/l/db44/db44.SlackBuild +-rw-r--r-- 1 root root 515 2006-02-03 06:33 ./source/l/db44/patch.4.4.20.1.gz +-rw-r--r-- 1 root root 392 2006-02-03 06:33 ./source/l/db44/patch.4.4.20.2.gz +-rw-r--r-- 1 root root 818 2006-03-08 22:05 ./source/l/db44/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/dbus-glib +-rw-r--r-- 1 root root 688789 2009-03-09 17:26 ./source/l/dbus-glib/dbus-glib-0.80.tar.gz +-rwxr-xr-x 1 root root 2742 2009-05-19 20:05 ./source/l/dbus-glib/dbus-glib.SlackBuild +-rw-r--r-- 1 root root 681 2007-03-16 03:46 ./source/l/dbus-glib/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/dbus-python +-rw-r--r-- 1 root root 393145 2008-09-23 18:04 ./source/l/dbus-python/dbus-python-0.83.0.tar.bz2 +-rwxr-xr-x 1 root root 2813 2009-05-19 20:05 ./source/l/dbus-python/dbus-python.SlackBuild +-rw-r--r-- 1 root root 702 2008-04-04 16:21 ./source/l/dbus-python/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/desktop-file-utils +-rw-r--r-- 1 root root 242650 2008-10-07 20:21 ./source/l/desktop-file-utils/desktop-file-utils-0.15.tar.bz2 +-rwxr-xr-x 1 root root 3398 2009-05-19 20:05 ./source/l/desktop-file-utils/desktop-file-utils.SlackBuild +-rw-r--r-- 1 root root 128 2008-10-07 22:57 ./source/l/desktop-file-utils/doinst.sh.gz +-rw-r--r-- 1 root root 1124 2006-09-17 22:26 ./source/l/desktop-file-utils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/djvulibre +-rw-r--r-- 1 root root 2666939 2008-08-23 12:35 ./source/l/djvulibre/djvulibre-3.5.21.tar.bz2 +-rwxr-xr-x 1 root root 3787 2009-05-19 20:05 ./source/l/djvulibre/djvulibre.SlackBuild +-rw-r--r-- 1 root root 257 2008-04-11 18:10 ./source/l/djvulibre/djvulibre.info +-rw-r--r-- 1 root root 140 2008-04-11 19:37 ./source/l/djvulibre/doinst.sh.gz +-rw-r--r-- 1 root root 1019 2008-08-01 02:56 ./source/l/djvulibre/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/eigen2 +-rw-r--r-- 1 root root 414048 2009-04-02 20:30 ./source/l/eigen2/eigen2-r948353.tar.bz2 +-rwxr-xr-x 1 root root 2576 2009-05-19 20:05 ./source/l/eigen2/eigen2.SlackBuild +-rw-r--r-- 1 root root 712 2008-11-23 23:23 ./source/l/eigen2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/enchant +-rw-r--r-- 1 root root 465386 2008-05-05 20:30 ./source/l/enchant/enchant-1.4.2.tar.bz2 +-rwxr-xr-x 1 root root 2984 2009-05-19 20:05 ./source/l/enchant/enchant.SlackBuild +-rw-r--r-- 1 root root 113 2008-07-24 14:53 ./source/l/enchant/enchant.info +-rw-r--r-- 1 root root 802 2008-08-01 04:51 ./source/l/enchant/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/esound +-rw-r--r-- 1 root root 262 2009-03-23 15:57 ./source/l/esound/doinst.sh.gz +-rw-r--r-- 1 root root 396474 2009-03-23 15:10 ./source/l/esound/esound-0.2.41.tar.bz2 +-rwxr-xr-x 1 root root 3254 2009-05-19 20:05 ./source/l/esound/esound.SlackBuild +-rw-r--r-- 1 root root 962 2002-04-02 06:54 ./source/l/esound/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-22 19:17 ./source/l/exiv2 +-rw-r--r-- 1 root root 1165544 2009-04-05 15:53 ./source/l/exiv2/exiv2-0.18.1.tar.xz +-rwxr-xr-x 1 root root 2883 2009-06-22 19:23 ./source/l/exiv2/exiv2.SlackBuild +-rw-r--r-- 1 root root 714 2008-08-01 04:53 ./source/l/exiv2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/expat +-rw-r--r-- 1 root root 446456 2007-06-07 02:37 ./source/l/expat/expat-2.0.1.tar.gz +-rwxr-xr-x 1 root root 2379 2009-05-19 20:05 ./source/l/expat/expat.SlackBuild +-rw-r--r-- 1 root root 720 2008-02-11 03:44 ./source/l/expat/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/freetype +-rw-r--r-- 1 root root 1363190 2009-03-12 09:57 ./source/l/freetype/freetype-2.3.9.tar.bz2 +-rw-r--r-- 1 root root 34432 2009-03-13 17:53 ./source/l/freetype/freetype-2.3.9.tar.bz2.asc +-rwxr-xr-x 1 root root 3851 2009-05-19 20:05 ./source/l/freetype/freetype.SlackBuild +-rw-r--r-- 1 root root 302 2007-09-13 01:58 ./source/l/freetype/freetype.bytecode.interpreter.diff.gz +-rw-r--r-- 1 root root 493 2004-06-05 20:44 ./source/l/freetype/freetype.illadvisederror.diff.gz +-rw-r--r-- 1 root root 295 2007-04-21 20:07 ./source/l/freetype/freetype.subpixel.rendering.diff.gz +-rw-r--r-- 1 root root 803 2006-07-22 01:26 ./source/l/freetype/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/fribidi +-rw-r--r-- 1 root root 490862 2007-08-09 23:44 ./source/l/fribidi/fribidi-0.10.9.tar.bz2 +-rwxr-xr-x 1 root root 2461 2009-05-19 20:05 ./source/l/fribidi/fribidi.SlackBuild +-rw-r--r-- 1 root root 811 2008-04-08 03:40 ./source/l/fribidi/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/fuse +-rw-r--r-- 1 root root 336 2007-12-07 22:12 ./source/l/fuse/doinst.sh.gz +-rw-r--r-- 1 root root 506658 2008-07-25 19:05 ./source/l/fuse/fuse-2.7.4.tar.gz +-rwxr-xr-x 1 root root 3449 2009-05-19 20:05 ./source/l/fuse/fuse.SlackBuild +-rw-r--r-- 1 root root 846 2008-03-08 01:51 ./source/l/fuse/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/gamin +-rw-r--r-- 1 root root 438451 2009-03-09 18:58 ./source/l/gamin/gamin-0.1.10.tar.bz2 +-rwxr-xr-x 1 root root 2866 2009-05-19 20:05 ./source/l/gamin/gamin.SlackBuild +-rw-r--r-- 1 root root 753 2007-03-16 02:26 ./source/l/gamin/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/gd +-rw-r--r-- 1 root root 1212730 2007-06-21 19:48 ./source/l/gd/gd-2.0.35.tar.bz2 +-rwxr-xr-x 1 root root 3384 2009-06-09 00:40 ./source/l/gd/gd.SlackBuild +-rw-r--r-- 1 root root 366 2007-06-27 06:07 ./source/l/gd/gdlib.pc +-rw-r--r-- 1 root root 922 2006-08-16 06:37 ./source/l/gd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/gdbm +-rw-r--r-- 1 root root 228695 2002-10-16 18:01 ./source/l/gdbm/gdbm-1.8.3.tar.gz +-rwxr-xr-x 1 root root 2893 2009-05-19 20:05 ./source/l/gdbm/gdbm.SlackBuild +-rw-r--r-- 1 root root 641 2002-03-23 23:12 ./source/l/gdbm/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 18:59 ./source/l/gegl +-rw-r--r-- 1 root root 1255087 2008-12-31 16:50 ./source/l/gegl/gegl-0.0.22.tar.bz2 +-rwxr-xr-x 1 root root 2703 2009-06-09 18:59 ./source/l/gegl/gegl.SlackBuild +-rw-r--r-- 1 root root 862 2008-10-02 04:29 ./source/l/gegl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/glib +-rw-r--r-- 1 root root 346080 2001-03-15 14:59 ./source/l/glib/glib-1.2.10.tar.bz2 +-rwxr-xr-x 1 root root 3427 2009-05-19 20:05 ./source/l/glib/glib.SlackBuild +-rw-r--r-- 1 root root 110117 2006-12-01 09:17 ./source/l/glib/glib1.2_1.2.10-17.diff.bz2 +-rw-r--r-- 1 root root 757 2007-03-08 16:59 ./source/l/glib/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/glib2 +-rw-r--r-- 1 root root 406 2008-04-10 04:31 ./source/l/glib2/doinst.sh.gz +-rw-r--r-- 1 root root 4809051 2009-01-09 19:36 ./source/l/glib2/glib-2.18.4.tar.bz2 +-rw-r--r-- 1 root root 1062 2009-03-12 14:38 ./source/l/glib2/glib-CVE-2008-4316.diff.gz +-rwxr-xr-x 1 root root 3122 2009-05-19 20:05 ./source/l/glib2/glib2.SlackBuild +-rw-r--r-- 1 root root 999 2008-03-18 07:10 ./source/l/glib2/libglib2.csh +-rw-r--r-- 1 root root 982 2008-03-18 07:08 ./source/l/glib2/libglib2.sh +-rw-r--r-- 1 root root 691 2003-01-11 05:50 ./source/l/glib2/slack-desc +drwxr-xr-x 4 root root 4096 2009-05-19 20:05 ./source/l/glibc +-rw-r--r-- 1 root root 7244 2009-01-29 04:59 ./source/l/glibc/doinst.sh-glibc +-rw-r--r-- 1 root root 4504 2009-01-29 04:59 ./source/l/glibc/doinst.sh-glibc-solibs +-rw-r--r-- 1 root root 1029 2007-02-18 04:26 ./source/l/glibc/doinst.sh-glibc-zoneinfo +-rw-r--r-- 1 root root 652 2009-01-09 04:49 ./source/l/glibc/glibc-2.10-dns-no-gethostbyname4.diff.gz +-rw-r--r-- 1 root root 16425893 2009-03-16 08:07 ./source/l/glibc/glibc-2.9-20090316.tar.bz2 +-rwxr-xr-x 1 root root 174 2004-08-09 06:21 ./source/l/glibc/glibc-cvs-checkout.sh +-rw-r--r-- 1 root root 101939 2007-10-19 21:45 ./source/l/glibc/glibc-libidn-2.7.tar.bz2 +-rw-r--r-- 1 root root 65 2007-10-19 21:45 ./source/l/glibc/glibc-libidn-2.7.tar.bz2.sig +-rwxr-xr-x 1 root root 14481 2009-05-19 20:05 ./source/l/glibc/glibc.SlackBuild +-rw-r--r-- 1 root root 183 2006-10-11 03:11 ./source/l/glibc/glibc.getcwd.max.macro.diff.gz +-rw-r--r-- 1 root root 304 2004-08-04 00:21 ./source/l/glibc/glibc.locale.no-archive.diff.gz +-rw-r--r-- 1 root root 325 2006-10-11 01:49 ./source/l/glibc/glibc.nis-netgroups.diff.gz +-rw-r--r-- 1 root root 246 2009-02-24 23:39 ./source/l/glibc/glibc.revert.to.fix.build.breakages.diff.gz +-rw-r--r-- 1 root root 213 2006-08-22 06:33 ./source/l/glibc/glibc.ru_RU.CP1251.diff.gz +-rw-r--r-- 1 root root 254 2007-10-31 01:17 ./source/l/glibc/is_IS.diff.gz +drwxr-xr-x 2 root root 4096 2006-09-14 06:32 ./source/l/glibc/profile.d +-rwxr-xr-x 1 root root 328 2006-09-14 08:26 ./source/l/glibc/profile.d/glibc.csh.new +-rwxr-xr-x 1 root root 325 2006-09-14 08:26 ./source/l/glibc/profile.d/glibc.sh.new +-rw-r--r-- 1 root root 845 2002-10-11 19:15 ./source/l/glibc/slack-desc.glibc +-rw-r--r-- 1 root root 1139 2002-10-12 04:15 ./source/l/glibc/slack-desc.glibc-debug +-rw-r--r-- 1 root root 794 2002-05-01 00:01 ./source/l/glibc/slack-desc.glibc-i18n +-rw-r--r-- 1 root root 972 2005-11-18 17:02 ./source/l/glibc/slack-desc.glibc-profile +-rw-r--r-- 1 root root 786 2002-03-23 23:26 ./source/l/glibc/slack-desc.glibc-solibs +-rw-r--r-- 1 root root 1227 2006-11-23 03:35 ./source/l/glibc/slack-desc.glibc-solibs-linuxthreads +-rw-r--r-- 1 root root 965 2007-04-30 20:52 ./source/l/glibc/slack-desc.glibc-zoneinfo +drwxr-xr-x 3 root root 4096 2009-02-25 00:09 ./source/l/glibc/timezone-scripts +-rw-r--r-- 1 root root 2106 2006-12-04 00:32 ./source/l/glibc/timezone-scripts/output-updated-timeconfig.sh +drwxr-xr-x 2 root root 4096 2006-12-03 23:10 ./source/l/glibc/timezone-scripts/parts +-rw-r--r-- 1 root root 4398 2008-03-10 11:39 ./source/l/glibc/timezone-scripts/parts/00 +-rw-r--r-- 1 root root 44857 2007-09-18 00:33 ./source/l/glibc/timezone-scripts/parts/01 +-rw-r--r-- 1 root root 443 2006-12-03 22:53 ./source/l/glibc/timezone-scripts/parts/02 +-rw-r--r-- 1 root root 31601 2007-09-18 00:34 ./source/l/glibc/timezone-scripts/parts/03 +-rw-r--r-- 1 root root 857 2006-12-03 22:54 ./source/l/glibc/timezone-scripts/parts/04 +-rw-r--r-- 1 root root 87 2006-12-03 23:10 ./source/l/glibc/timezone-scripts/parts/README +-rw-r--r-- 1 root root 66 2003-02-16 21:17 ./source/l/glibc/timezone-scripts/setup.timeconfig +-rw-r--r-- 1 root root 84202 2009-02-25 00:09 ./source/l/glibc/timezone-scripts/timeconfig +-rw-r--r-- 1 root root 190134 2009-03-23 13:38 ./source/l/glibc/tzcode2009d.tar.gz +-rw-r--r-- 1 root root 176911 2009-03-23 13:38 ./source/l/glibc/tzdata2009d.tar.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/gmime +-rw-r--r-- 1 root root 823466 2008-09-14 17:48 ./source/l/gmime/gmime-2.2.23.tar.bz2 +-rwxr-xr-x 1 root root 3304 2009-05-19 20:05 ./source/l/gmime/gmime.SlackBuild +-rw-r--r-- 1 root root 753 2007-03-14 03:39 ./source/l/gmime/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/gmm +-rw-r--r-- 1 root root 333173 2008-09-09 18:47 ./source/l/gmm/gmm-3.1.tar.bz2 +-rwxr-xr-x 1 root root 2111 2009-05-19 20:05 ./source/l/gmm/gmm.SlackBuild +-rw-r--r-- 1 root root 117 2008-07-25 02:47 ./source/l/gmm/gmm.info +-rw-r--r-- 1 root root 1035 2008-08-01 03:49 ./source/l/gmm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/gmp +-rw-r--r-- 1 root root 1710660 2008-09-20 10:16 ./source/l/gmp/gmp-4.2.4.tar.bz2 +-rw-r--r-- 1 root root 72 2008-09-20 10:16 ./source/l/gmp/gmp-4.2.4.tar.bz2.sig +-rwxr-xr-x 1 root root 2569 2009-05-19 20:05 ./source/l/gmp/gmp.SlackBuild +-rw-r--r-- 1 root root 766 2003-06-24 00:14 ./source/l/gmp/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-14 19:52 ./source/l/gnome-icon-theme +-rw-r--r-- 1 root root 138 2009-07-14 19:52 ./source/l/gnome-icon-theme/doinst.sh.gz +-rw-r--r-- 1 root root 2964056 2009-07-10 21:40 ./source/l/gnome-icon-theme/gnome-icon-theme-2.26.0.tar.xz +-rwxr-xr-x 1 root root 2427 2009-07-14 21:47 ./source/l/gnome-icon-theme/gnome-icon-theme.SlackBuild +-rw-r--r-- 1 root root 345 2008-02-10 01:56 ./source/l/gnome-icon-theme/gnome-icon-theme.pkgconfig.path.diff.gz +-rw-r--r-- 1 root root 766 2008-02-11 03:44 ./source/l/gnome-icon-theme/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 00:07 ./source/l/gst-plugins-base +-rw-r--r-- 1 root root 1674440 2009-05-11 01:47 ./source/l/gst-plugins-base/gst-plugins-base-0.10.23.tar.xz +-rwxr-xr-x 1 root root 3001 2009-06-09 00:07 ./source/l/gst-plugins-base/gst-plugins-base.SlackBuild +-rw-r--r-- 1 root root 1067 2008-08-01 03:34 ./source/l/gst-plugins-base/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-08 23:38 ./source/l/gstreamer +-rw-r--r-- 1 root root 2367044 2009-05-11 01:44 ./source/l/gstreamer/gstreamer-0.10.23.tar.xz +-rwxr-xr-x 1 root root 3274 2009-06-08 23:38 ./source/l/gstreamer/gstreamer.SlackBuild +-rw-r--r-- 1 root root 1060 2008-08-01 03:31 ./source/l/gstreamer/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/gtk+ +-rw-r--r-- 1 root root 2248773 2001-04-02 03:04 ./source/l/gtk+/gtk+-1.2.10.tar.bz2 +-rwxr-xr-x 1 root root 3533 2009-06-09 02:22 ./source/l/gtk+/gtk+.SlackBuild +-rw-r--r-- 1 root root 159953 2005-10-06 11:17 ./source/l/gtk+/gtk+1.2_1.2.10-18.diff.bz2 +-rw-r--r-- 1 root root 806 2007-03-08 17:07 ./source/l/gtk+/slack-desc +drwxr-xr-x 3 root root 4096 2009-06-09 03:59 ./source/l/gtk+2 +-rw-r--r-- 1 root root 673 2009-04-06 00:28 ./source/l/gtk+2/doinst.sh.gz +-rw-r--r-- 1 root root 17475873 2009-01-09 01:19 ./source/l/gtk+2/gtk+-2.14.7.tar.bz2 +-rwxr-xr-x 1 root root 6118 2009-06-11 17:15 ./source/l/gtk+2/gtk+2.SlackBuild +-rw-r--r-- 1 root root 291 2008-12-17 03:35 ./source/l/gtk+2/gtk.nsplugin.diff.gz +-rw-r--r-- 1 root root 238 2008-12-16 21:37 ./source/l/gtk+2/gtk.pnglz.diff.gz +drwxr-xr-x 2 root root 4096 2003-01-11 06:27 ./source/l/gtk+2/profile.d +-rwxr-xr-x 1 root root 32 2003-01-11 06:27 ./source/l/gtk+2/profile.d/gtk+.csh +-rwxr-xr-x 1 root root 43 2003-01-11 06:28 ./source/l/gtk+2/profile.d/gtk+.sh +-rw-r--r-- 1 root root 791 2008-02-11 03:44 ./source/l/gtk+2/slack-desc +-rw-r--r-- 1 root root 2476 2009-08-11 18:04 ./source/l/gtk+2/update-gdk-pixbuf-loaders +-rw-r--r-- 1 root root 2412 2009-08-11 18:04 ./source/l/gtk+2/update-gtk-immodules +drwxr-xr-x 2 root root 4096 2009-06-09 05:27 ./source/l/gtkspell +-rw-r--r-- 1 root root 277039 2008-12-03 21:24 ./source/l/gtkspell/gtkspell-2.0.15.tar.bz2 +-rwxr-xr-x 1 root root 3288 2009-05-19 20:05 ./source/l/gtkspell/gtkspell.SlackBuild +-rw-r--r-- 1 root root 789 2008-09-18 22:42 ./source/l/gtkspell/slack-desc +drwxr-xr-x 3 root root 4096 2009-07-30 21:24 ./source/l/hal +drwxr-xr-x 2 root root 4096 2009-07-19 23:47 ./source/l/hal-info +-rw-r--r-- 1 root root 138674 2009-07-16 13:30 ./source/l/hal-info/hal-info-20090716.tar.gz +-rwxr-xr-x 1 root root 2064 2009-07-16 17:21 ./source/l/hal-info/hal-info.SlackBuild +-rw-r--r-- 1 root root 757 2009-04-14 19:53 ./source/l/hal-info/slack-desc +-rw-r--r-- 1 root root 354 2008-05-08 03:57 ./source/l/hal/doinst.sh.gz +-rw-r--r-- 1 root root 1080892 2008-05-07 23:40 ./source/l/hal/hal-0.5.11.tar.xz +-rwxr-xr-x 1 root root 5606 2009-08-01 05:46 ./source/l/hal/hal.SlackBuild +-rw-r--r-- 1 root root 643 2009-07-16 22:52 ./source/l/hal/hal.conf.gz +drwxr-xr-x 2 root root 4096 2009-07-30 21:23 ./source/l/hal/patches +-rw-r--r-- 1 root root 1205 2009-07-21 05:06 ./source/l/hal/patches/10-keymap.fdi-restore_zap.diff.gz +-rw-r--r-- 1 root root 423 2009-07-16 21:15 ./source/l/hal/patches/allow_uid_gid_ntfs.diff.gz +-rw-r--r-- 1 root root 641 2009-07-16 19:42 ./source/l/hal/patches/check_udi_properly.diff.gz +-rw-r--r-- 1 root root 658 2009-07-16 21:19 ./source/l/hal/patches/fix_led_crash.diff.gz +-rw-r--r-- 1 root root 758 2009-07-16 21:24 ./source/l/hal/patches/fix_md_crash.diff.gz +-rw-r--r-- 1 root root 681 2009-07-30 21:23 ./source/l/hal/patches/fix_segfault_in_mdraid.diff.gz +-rw-r--r-- 1 root root 991 2009-07-16 21:20 ./source/l/hal/patches/fixup_udi_strings.diff.gz +-rw-r--r-- 1 root root 1047 2009-07-30 21:17 ./source/l/hal/patches/hide_more_invalid_partitions.diff.gz +-rw-r--r-- 1 root root 974 2009-07-16 21:22 ./source/l/hal/patches/ignore_dupe_add_events.diff.gz +-rw-r--r-- 1 root root 486 2009-07-27 01:50 ./source/l/hal/patches/regen_fdi_cache_if_zero_size.diff.gz +-rw-r--r-- 1 root root 1131 2009-07-16 21:24 ./source/l/hal/patches/set_X_keymap_properly.diff.gz +-rw-r--r-- 1 root root 709 2009-07-16 21:18 ./source/l/hal/patches/use_udevadm_not_udevinfo.patch.gz +-rw-r--r-- 1 root root 438 2009-03-25 20:36 ./source/l/hal/rc.hald.gz +-rw-r--r-- 1 root root 1055 2008-05-13 00:48 ./source/l/hal/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/hicolor-icon-theme +-rw-r--r-- 1 root root 542 2008-03-18 01:10 ./source/l/hicolor-icon-theme/doinst.sh.gz +-rw-r--r-- 1 root root 33616 2006-11-22 12:02 ./source/l/hicolor-icon-theme/hicolor-icon-theme-0.10.tar.gz +-rwxr-xr-x 1 root root 2270 2009-05-19 20:05 ./source/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild +-rw-r--r-- 1 root root 522 2008-03-18 01:11 ./source/l/hicolor-icon-theme/setup.08.gtk-update-icon-cache +-rw-r--r-- 1 root root 914 2006-08-11 03:58 ./source/l/hicolor-icon-theme/slack-desc +drwxr-xr-x 2 root root 4096 2009-03-05 23:09 ./source/l/icon-naming-utils +-rw-r--r-- 1 root root 70352 2009-02-21 03:41 ./source/l/icon-naming-utils/icon-naming-utils-0.8.90.tar.gz +-rwxr-xr-x 1 root root 2235 2009-08-22 19:44 ./source/l/icon-naming-utils/icon-naming-utils.SlackBuild +-rw-r--r-- 1 root root 219 2009-03-05 22:05 ./source/l/icon-naming-utils/icon-naming-utils.pkgconfigdir.diff.gz +-rw-r--r-- 1 root root 917 2009-03-05 22:59 ./source/l/icon-naming-utils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/ilmbase +-rw-r--r-- 1 root root 323959 2007-10-22 21:53 ./source/l/ilmbase/ilmbase-1.0.1.tar.bz2 +-rwxr-xr-x 1 root root 2695 2009-05-19 20:05 ./source/l/ilmbase/ilmbase.SlackBuild +-rw-r--r-- 1 root root 162 2008-04-29 21:14 ./source/l/ilmbase/ilmbase.info +-rw-r--r-- 1 root root 829 2008-08-01 03:47 ./source/l/ilmbase/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/imlib +-rw-r--r-- 1 root root 683242 2004-09-24 14:45 ./source/l/imlib/imlib-1.9.15.tar.bz2 +-rwxr-xr-x 1 root root 2877 2009-08-11 04:00 ./source/l/imlib/imlib.SlackBuild +-rw-r--r-- 1 root root 799 2008-04-28 21:21 ./source/l/imlib/imlib.mitshm.render.diff.gz +-rw-r--r-- 1 root root 857 2008-02-11 03:44 ./source/l/imlib/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/iso-codes +-rw-r--r-- 1 root root 5323027 2009-04-02 14:23 ./source/l/iso-codes/iso-codes-3.8.tar.bz2 +-rwxr-xr-x 1 root root 2137 2009-05-19 20:05 ./source/l/iso-codes/iso-codes.SlackBuild +-rw-r--r-- 1 root root 212 2008-11-14 15:31 ./source/l/iso-codes/iso-codes.info +-rw-r--r-- 1 root root 471 2008-11-14 15:29 ./source/l/iso-codes/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/jasper +-rw-r--r-- 1 root root 958519 2009-04-03 00:58 ./source/l/jasper/jasper-1.900.1.tar.bz2 +-rwxr-xr-x 1 root root 3101 2009-06-09 00:59 ./source/l/jasper/jasper.SlackBuild +-rw-r--r-- 1 root root 839 2007-09-16 15:27 ./source/l/jasper/slack-desc +drwxr-xr-x 3 root root 4096 2009-08-13 21:39 ./source/l/jre +-rw-r--r-- 1 root root 3767 2009-07-02 22:52 ./source/l/jre/COPYRIGHT +-rw-r--r-- 1 root root 12720 2009-07-02 22:52 ./source/l/jre/LICENSE +-rw-r--r-- 1 root root 15906 2009-07-02 22:52 ./source/l/jre/README +-rw-r--r-- 1 root root 249556 2009-07-02 22:52 ./source/l/jre/THIRDPARTYLICENSEREADME.txt +-rw-r--r-- 1 root root 968 2009-07-02 22:52 ./source/l/jre/Welcome.html +-rw-r--r-- 1 root root 20271039 2009-08-13 20:26 ./source/l/jre/jre-6u16-linux-x64.bin +-rwxr-xr-x 1 root root 4240 2009-08-13 21:14 ./source/l/jre/jre.SlackBuild +drwxr-xr-x 2 root root 4096 2009-04-29 19:47 ./source/l/jre/profile.d +-rwxr-xr-x 1 root root 122 2009-04-29 17:28 ./source/l/jre/profile.d/jre.csh +-rwxr-xr-x 1 root root 125 2009-04-29 17:29 ./source/l/jre/profile.d/jre.sh +-rw-r--r-- 1 root root 1007 2009-08-13 21:13 ./source/l/jre/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/lcms +-rw-r--r-- 1 root root 714402 2009-03-22 17:18 ./source/l/lcms/lcms-1.18.tar.bz2 +-rwxr-xr-x 1 root root 2581 2009-05-19 20:05 ./source/l/lcms/lcms.SlackBuild +-rw-r--r-- 1 root root 665 2004-02-22 08:32 ./source/l/lcms/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:22 ./source/l/lesstif +-rw-r--r-- 1 root root 210 2007-02-07 06:18 ./source/l/lesstif/doinst.sh.gz +-rw-r--r-- 1 root root 2459799 2006-06-10 09:43 ./source/l/lesstif/lesstif-0.95.0.tar.bz2 +-rw-r--r-- 1 root root 507 2008-10-21 20:43 ./source/l/lesstif/lesstif.Makefile.in.patch.gz +-rw-r--r-- 1 root root 737 2008-10-21 20:30 ./source/l/lesstif/lesstif.PutPixel32.patch.gz +-rwxr-xr-x 1 root root 4189 2009-06-09 05:52 ./source/l/lesstif/lesstif.SlackBuild +-rw-r--r-- 1 root root 323 2009-03-16 20:29 ./source/l/lesstif/lesstif.gcc42.diff.gz +-rw-r--r-- 1 root root 267 2009-03-23 21:35 ./source/l/lesstif/lesstif.rendertable.check.diff.gz +-rw-r--r-- 1 root root 588 2008-10-17 20:29 ./source/l/lesstif/lesstif.x86_64.patch.gz +-rw-r--r-- 1 root root 984 2002-03-23 23:35 ./source/l/lesstif/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libaio +-rw-r--r-- 1 root root 50659 2006-01-04 16:03 ./source/l/libaio/libaio-0.3.106.tar.gz +-rwxr-xr-x 1 root root 3140 2009-05-19 20:05 ./source/l/libaio/libaio.SlackBuild +-rw-r--r-- 1 root root 962 2008-04-10 03:50 ./source/l/libaio/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libao +-rw-r--r-- 1 root root 405619 2007-05-24 11:20 ./source/l/libao/libao-0.8.8.tar.gz +-rwxr-xr-x 1 root root 2356 2009-05-19 20:05 ./source/l/libao/libao.SlackBuild +-rw-r--r-- 1 root root 884 2003-12-19 00:27 ./source/l/libao/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libarchive +-rw-r--r-- 1 root root 701559 2009-03-07 18:00 ./source/l/libarchive/libarchive-2.6.2.tar.bz2 +-rwxr-xr-x 1 root root 2851 2009-05-19 20:05 ./source/l/libarchive/libarchive.SlackBuild +-rw-r--r-- 1 root root 145 2008-07-24 14:59 ./source/l/libarchive/libarchive.info +-rw-r--r-- 1 root root 872 2009-03-07 18:02 ./source/l/libarchive/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libart_lgpl +-rw-r--r-- 1 root root 302903 2008-01-30 10:10 ./source/l/libart_lgpl/libart_lgpl-2.3.20.tar.bz2 +-rwxr-xr-x 1 root root 2476 2009-05-19 20:05 ./source/l/libart_lgpl/libart_lgpl.SlackBuild +-rw-r--r-- 1 root root 823 2007-05-04 21:13 ./source/l/libart_lgpl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/l/libcaca +-rw-r--r-- 1 root root 750005 2008-10-18 12:58 ./source/l/libcaca/libcaca-0.99.beta16.tar.bz2 +-rwxr-xr-x 1 root root 3330 2009-06-09 01:21 ./source/l/libcaca/libcaca.SlackBuild +-rw-r--r-- 1 root root 817 2004-04-20 23:03 ./source/l/libcaca/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libcap +-rw-r--r-- 1 root root 553 2008-10-30 18:03 ./source/l/libcap/README.SLACKWARE +-rw-r--r-- 1 root root 11907 2008-03-29 00:07 ./source/l/libcap/capfaq-0.2.txt +-rw-r--r-- 1 root root 48451 2008-12-04 07:07 ./source/l/libcap/libcap-2.16.tar.bz2 +-rw-r--r-- 1 root root 248 2008-12-04 07:07 ./source/l/libcap/libcap-2.16.tar.bz2.sign +-rwxr-xr-x 1 root root 3399 2009-05-19 20:05 ./source/l/libcap/libcap.SlackBuild +-rw-r--r-- 1 root root 194 2009-04-11 18:20 ./source/l/libcap/libcap.capability.h.fix.broken.includes.diff.gz +-rw-r--r-- 1 root root 837 2008-10-30 18:03 ./source/l/libcap/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libcddb +-rw-r--r-- 1 root root 329319 2006-10-15 12:15 ./source/l/libcddb/libcddb-1.3.0.tar.bz2 +-rwxr-xr-x 1 root root 3265 2009-05-19 20:05 ./source/l/libcddb/libcddb.SlackBuild +-rw-r--r-- 1 root root 786 2008-03-10 09:31 ./source/l/libcddb/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/l/libcdio +-rw-r--r-- 1 root root 1308090 2007-10-27 05:07 ./source/l/libcdio/libcdio-0.79.tar.bz2 +-rwxr-xr-x 1 root root 3300 2009-05-23 00:41 ./source/l/libcdio/libcdio.SlackBuild +-rw-r--r-- 1 root root 1012 2008-03-10 09:14 ./source/l/libcdio/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libdvdread +-rw-r--r-- 1 root root 96899 2008-09-07 14:22 ./source/l/libdvdread/libdvdread-4.1.3.tar.bz2 +-rwxr-xr-x 1 root root 2533 2009-05-19 20:05 ./source/l/libdvdread/libdvdread.SlackBuild +-rw-r--r-- 1 root root 858 2009-03-08 00:28 ./source/l/libdvdread/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libexif +-rw-r--r-- 1 root root 691528 2007-06-12 14:06 ./source/l/libexif/libexif-0.6.16.tar.bz2 +-rwxr-xr-x 1 root root 2648 2009-05-19 20:05 ./source/l/libexif/libexif.SlackBuild +-rw-r--r-- 1 root root 190 2007-05-28 17:50 ./source/l/libexif/libexif.pc.diff.gz +-rw-r--r-- 1 root root 855 2008-02-11 03:44 ./source/l/libexif/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libglade +-rw-r--r-- 1 root root 356119 2009-03-23 15:10 ./source/l/libglade/libglade-2.6.4.tar.bz2 +-rwxr-xr-x 1 root root 2769 2009-06-09 05:43 ./source/l/libglade/libglade.SlackBuild +-rw-r--r-- 1 root root 808 2008-02-11 03:44 ./source/l/libglade/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 19:16 ./source/l/libgphoto2 +-rw-r--r-- 1 root root 4220396 2009-05-17 20:44 ./source/l/libgphoto2/libgphoto2-2.4.6.tar.xz +-rwxr-xr-x 1 root root 5002 2009-06-09 19:17 ./source/l/libgphoto2/libgphoto2.SlackBuild +-rw-r--r-- 1 root root 749 2008-04-27 02:39 ./source/l/libgphoto2/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-07 20:31 ./source/l/libgpod +-rw-r--r-- 1 root root 594656 2009-04-15 21:41 ./source/l/libgpod/libgpod-0.7.2.tar.xz +-rwxr-xr-x 1 root root 3542 2009-06-07 20:32 ./source/l/libgpod/libgpod.SlackBuild +-rw-r--r-- 1 root root 976 2006-09-06 23:53 ./source/l/libgpod/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-13 16:59 ./source/l/libgsf +-rw-r--r-- 1 root root 589878 2009-06-20 15:14 ./source/l/libgsf/libgsf-1.14.15.tar.bz2 +-rwxr-xr-x 1 root root 3285 2009-07-13 17:15 ./source/l/libgsf/libgsf.SlackBuild +-rw-r--r-- 1 root root 793 2006-04-15 21:17 ./source/l/libgsf/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libgtkhtml +-rw-r--r-- 1 root root 597923 2007-08-14 00:20 ./source/l/libgtkhtml/libgtkhtml-2.11.1.tar.bz2 +-rwxr-xr-x 1 root root 3316 2009-06-09 00:49 ./source/l/libgtkhtml/libgtkhtml.SlackBuild +-rw-r--r-- 1 root root 801 2008-02-11 03:44 ./source/l/libgtkhtml/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libical +-rw-r--r-- 1 root root 438 2008-11-02 11:50 ./source/l/libical/README +-rw-r--r-- 1 root root 759128 2009-01-12 03:01 ./source/l/libical/libical-0.43.tar.bz2 +-rwxr-xr-x 1 root root 3024 2009-05-19 20:05 ./source/l/libical/libical.SlackBuild +-rw-r--r-- 1 root root 272 2008-11-02 20:27 ./source/l/libical/libical.info +-rw-r--r-- 1 root root 923 2008-10-28 10:13 ./source/l/libical/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libid3tag +-rw-r--r-- 1 root root 222 2009-03-23 21:58 ./source/l/libid3tag/id3tag.pc +-rw-r--r-- 1 root root 338143 2004-02-17 03:54 ./source/l/libid3tag/libid3tag-0.15.1b.tar.gz +-rw-r--r-- 1 root root 189 2004-02-18 03:17 ./source/l/libid3tag/libid3tag-0.15.1b.tar.gz.sign +-rwxr-xr-x 1 root root 3529 2009-05-19 20:05 ./source/l/libid3tag/libid3tag.SlackBuild +-rw-r--r-- 1 root root 778 2003-09-10 01:00 ./source/l/libid3tag/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libidl +-rw-r--r-- 1 root root 372665 2008-01-29 14:11 ./source/l/libidl/libIDL-0.8.10.tar.bz2 +-rwxr-xr-x 1 root root 2617 2009-05-19 20:05 ./source/l/libidl/libidl.SlackBuild +-rw-r--r-- 1 root root 795 2008-02-11 03:44 ./source/l/libidl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libidn +-rw-r--r-- 1 root root 2174951 2008-02-19 19:29 ./source/l/libidn/libidn-1.5.tar.bz2 +-rwxr-xr-x 1 root root 3075 2009-05-19 20:05 ./source/l/libidn/libidn.SlackBuild +-rw-r--r-- 1 root root 793 2004-10-14 02:11 ./source/l/libidn/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libieee1284 +-rw-r--r-- 1 root root 278804 2007-09-18 10:03 ./source/l/libieee1284/libieee1284-0.2.11.tar.bz2 +-rwxr-xr-x 1 root root 3222 2009-05-19 20:05 ./source/l/libieee1284/libieee1284.SlackBuild +-rw-r--r-- 1 root root 842 2008-02-11 03:44 ./source/l/libieee1284/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libjpeg +-rw-r--r-- 1 root root 439 2006-12-11 21:45 ./source/l/libjpeg/_libjpeg.tar.gz +-rw-r--r-- 1 root root 943 1999-03-12 19:50 ./source/l/libjpeg/jpeg-6b.diff.gz +-rw-r--r-- 1 root root 613261 1998-03-27 22:46 ./source/l/libjpeg/jpegsrc.v6b.tar.gz +-rwxr-xr-x 1 root root 3085 2009-05-19 20:05 ./source/l/libjpeg/libjpeg.SlackBuild +-rw-r--r-- 1 root root 1120 2002-03-23 23:37 ./source/l/libjpeg/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-07 20:28 ./source/l/libkarma +-rw-r--r-- 1 root root 81330 2009-06-06 18:10 ./source/l/libkarma/libkarma-0.1.1.tar.gz +-rwxr-xr-x 1 root root 3275 2009-06-07 20:28 ./source/l/libkarma/libkarma.SlackBuild +-rw-r--r-- 1 root root 816 2007-02-15 18:44 ./source/l/libkarma/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libmad +-rw-r--r-- 1 root root 502379 2004-02-17 03:55 ./source/l/libmad/libmad-0.15.1b.tar.gz +-rw-r--r-- 1 root root 189 2004-02-18 03:17 ./source/l/libmad/libmad-0.15.1b.tar.gz.sign +-rwxr-xr-x 1 root root 3493 2009-05-19 20:05 ./source/l/libmad/libmad.SlackBuild +-rw-r--r-- 1 root root 207 2008-02-19 05:30 ./source/l/libmad/mad.pc +-rw-r--r-- 1 root root 1055 2003-09-10 01:00 ./source/l/libmad/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libmcrypt +-rw-r--r-- 1 root root 875425 2007-02-19 06:56 ./source/l/libmcrypt/libmcrypt-2.5.8.tar.bz2 +-rwxr-xr-x 1 root root 3302 2009-05-19 20:05 ./source/l/libmcrypt/libmcrypt.SlackBuild +-rw-r--r-- 1 root root 634 2009-04-04 21:41 ./source/l/libmcrypt/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libmcs +-rw-r--r-- 1 root root 91540 2008-04-20 22:06 ./source/l/libmcs/libmcs-0.7.1.tar.bz2 +-rwxr-xr-x 1 root root 3314 2009-05-19 20:05 ./source/l/libmcs/libmcs.SlackBuild +-rw-r--r-- 1 root root 966 2008-02-27 02:02 ./source/l/libmcs/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libmng +-rw-r--r-- 1 root root 852635 2007-07-13 13:23 ./source/l/libmng/libmng-1.0.10.tar.bz2 +-rwxr-xr-x 1 root root 3379 2009-05-19 20:05 ./source/l/libmng/libmng.SlackBuild +-rw-r--r-- 1 root root 941 2003-08-04 20:41 ./source/l/libmng/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libmowgli +-rw-r--r-- 1 root root 92904 2007-12-27 23:15 ./source/l/libmowgli/libmowgli-0.6.0.tar.bz2 +-rwxr-xr-x 1 root root 3529 2009-05-19 20:05 ./source/l/libmowgli/libmowgli.SlackBuild +-rw-r--r-- 1 root root 859 2008-01-30 06:50 ./source/l/libmowgli/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libmsn +-rw-r--r-- 1 root root 99750 2009-04-30 19:04 ./source/l/libmsn/libmsn-r96.tar.bz2 +-rwxr-xr-x 1 root root 2613 2009-05-19 20:05 ./source/l/libmsn/libmsn.SlackBuild +-rw-r--r-- 1 root root 771 2009-01-23 08:14 ./source/l/libmsn/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-07 20:30 ./source/l/libmtp +-rw-r--r-- 1 root root 364192 2009-01-22 00:03 ./source/l/libmtp/libmtp-0.3.6.tar.xz +-rwxr-xr-x 1 root root 3639 2009-06-07 22:23 ./source/l/libmtp/libmtp.SlackBuild +-rw-r--r-- 1 root root 1056 2006-09-07 03:50 ./source/l/libmtp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/l/libnjb +-rw-r--r-- 1 root root 1674 2007-10-26 01:41 ./source/l/libnjb/80-libnjb.rules +-rw-r--r-- 1 root root 404914 2007-09-05 21:38 ./source/l/libnjb/libnjb-2.2.6.tar.bz2 +-rwxr-xr-x 1 root root 3829 2009-05-23 00:41 ./source/l/libnjb/libnjb.SlackBuild +-rw-r--r-- 1 root root 997 2006-09-07 00:24 ./source/l/libnjb/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libnl +-rw-r--r-- 1 root root 217408 2008-06-08 22:23 ./source/l/libnl/libnl-1.1.tar.bz2 +-rw-r--r-- 1 root root 237 2009-02-23 00:09 ./source/l/libnl/libnl-include_limits.h.patch.gz +-rwxr-xr-x 1 root root 2778 2009-05-19 20:05 ./source/l/libnl/libnl.SlackBuild +-rw-r--r-- 1 root root 112 2009-02-23 00:22 ./source/l/libnl/libnl.info +-rw-r--r-- 1 root root 786 2008-06-08 22:23 ./source/l/libnl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libogg +-rw-r--r-- 1 root root 296780 2005-11-28 04:30 ./source/l/libogg/libogg-1.1.3.tar.bz2 +-rwxr-xr-x 1 root root 2448 2009-05-19 20:05 ./source/l/libogg/libogg.SlackBuild +-rw-r--r-- 1 root root 762 2003-12-19 00:28 ./source/l/libogg/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-02 22:03 ./source/l/liboil +-rw-r--r-- 1 root root 481104 2009-03-19 21:12 ./source/l/liboil/liboil-0.3.16.tar.xz +-rwxr-xr-x 1 root root 2857 2009-06-02 22:10 ./source/l/liboil/liboil.SlackBuild +-rw-r--r-- 1 root root 1033 2008-08-01 05:06 ./source/l/liboil/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-19 21:51 ./source/l/libpng +-rw-r--r-- 1 root root 660314 2009-06-04 11:08 ./source/l/libpng/libpng-1.2.37.tar.bz2 +-rwxr-xr-x 1 root root 3094 2009-06-19 21:51 ./source/l/libpng/libpng.SlackBuild +-rw-r--r-- 1 root root 315 2006-08-27 02:23 ./source/l/libpng/libpng.libs.diff.gz +-rw-r--r-- 1 root root 949 2002-03-23 23:42 ./source/l/libpng/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libraw1394 +-rw-r--r-- 1 root root 191 2007-12-09 17:25 ./source/l/libraw1394/README +-rw-r--r-- 1 root root 283790 2008-07-18 07:46 ./source/l/libraw1394/libraw1394-2.0.0.tar.bz2 +-rwxr-xr-x 1 root root 2919 2009-05-19 20:05 ./source/l/libraw1394/libraw1394.SlackBuild +-rw-r--r-- 1 root root 161 2008-01-08 04:18 ./source/l/libraw1394/libraw1394.info +-rw-r--r-- 1 root root 786 2008-08-01 05:09 ./source/l/libraw1394/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/librsvg +-rw-r--r-- 1 root root 477499 2009-03-16 19:26 ./source/l/librsvg/librsvg-2.26.0.tar.bz2 +-rwxr-xr-x 1 root root 2945 2009-06-09 00:47 ./source/l/librsvg/librsvg.SlackBuild +-rw-r--r-- 1 root root 361 2008-10-05 22:10 ./source/l/librsvg/librsvg_seamonkey-config.diff.gz +-rw-r--r-- 1 root root 632 2008-02-11 03:44 ./source/l/librsvg/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libspectre +-rw-r--r-- 1 root root 273283 2008-11-25 16:25 ./source/l/libspectre/libspectre-0.2.2.tar.bz2 +-rwxr-xr-x 1 root root 2989 2009-05-19 20:05 ./source/l/libspectre/libspectre.SlackBuild +-rw-r--r-- 1 root root 870 2008-10-09 06:04 ./source/l/libspectre/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:22 ./source/l/libtermcap +-rwxr-xr-x 1 root root 2588 2009-05-19 20:05 ./source/l/libtermcap/libtermcap.SlackBuild +-rw-r--r-- 1 root root 938 2008-02-11 03:44 ./source/l/libtermcap/slack-desc +-rw-r--r-- 1 root root 213 2002-02-15 01:11 ./source/l/libtermcap/termcap-compat_1.2.3.diff.gz +-rw-r--r-- 1 root root 655 2000-02-04 13:21 ./source/l/libtermcap/termcap-compat_1.2.3.dsc +-rw-r--r-- 1 root root 552156 2000-02-04 13:21 ./source/l/libtermcap/termcap-compat_1.2.3.tar.gz +-rw-r--r-- 1 root root 233 2003-01-03 22:22 ./source/l/libtermcap/termcap.bufsize.diff.gz +-rw-r--r-- 1 root root 365 2000-05-10 02:26 ./source/l/libtermcap/termcap.h.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libtheora +-rw-r--r-- 1 root root 1652987 2008-11-03 18:54 ./source/l/libtheora/libtheora-1.0.tar.bz2 +-rwxr-xr-x 1 root root 3400 2009-05-19 20:05 ./source/l/libtheora/libtheora.SlackBuild +-rw-r--r-- 1 root root 1085 2006-09-16 06:01 ./source/l/libtheora/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libtiff +-rwxr-xr-x 1 root root 3066 2009-05-19 20:05 ./source/l/libtiff/libtiff.SlackBuild +-rw-r--r-- 1 root root 852 2004-10-28 01:28 ./source/l/libtiff/slack-desc +-rw-r--r-- 1 root root 6121 2006-08-18 03:03 ./source/l/libtiff/tiff-3.8.2.goo-sec.diff.gz +-rw-r--r-- 1 root root 1095544 2006-03-23 15:15 ./source/l/libtiff/tiff-3.8.2.tar.bz2 +-rw-r--r-- 1 root root 423 2006-08-18 03:03 ./source/l/libtiff/tiff-3.8.2.tiffsplit.commandline.overflow.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libungif +-rw-r--r-- 1 root root 482222 2005-10-19 05:43 ./source/l/libungif/libungif-4.1.4.tar.bz2 +-rwxr-xr-x 1 root root 2922 2009-05-19 20:05 ./source/l/libungif/libungif.SlackBuild +-rw-r--r-- 1 root root 800 2006-04-16 00:12 ./source/l/libungif/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libusb +-rw-r--r-- 1 root root 389343 2006-03-04 04:49 ./source/l/libusb/libusb-0.1.12.tar.gz +-rwxr-xr-x 1 root root 3061 2009-05-19 20:05 ./source/l/libusb/libusb.SlackBuild +-rw-r--r-- 1 root root 703 2003-01-10 20:30 ./source/l/libusb/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libvisual +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libvisual-plugins +-rw-r--r-- 1 root root 575514 2006-03-20 21:09 ./source/l/libvisual-plugins/libvisual-plugins-0.4.0.tar.bz2 +-rwxr-xr-x 1 root root 3078 2009-06-10 01:24 ./source/l/libvisual-plugins/libvisual-plugins.SlackBuild +-rw-r--r-- 1 root root 912 2008-09-12 05:08 ./source/l/libvisual-plugins/libvisual-plugins.gstreamer.diff.gz +-rw-r--r-- 1 root root 1190 2008-09-12 05:35 ./source/l/libvisual-plugins/slack-desc +-rw-r--r-- 1 root root 430496 2006-03-20 21:08 ./source/l/libvisual/libvisual-0.4.0.tar.bz2 +-rwxr-xr-x 1 root root 3129 2009-05-19 20:05 ./source/l/libvisual/libvisual.SlackBuild +-rw-r--r-- 1 root root 1004 2006-08-23 20:17 ./source/l/libvisual/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libvncserver +-rw-r--r-- 1 root root 797659 2009-01-31 04:21 ./source/l/libvncserver/LibVNCServer-0.9.7.tar.bz2 +-rwxr-xr-x 1 root root 2862 2009-05-19 20:05 ./source/l/libvncserver/libvncserver.SlackBuild +-rw-r--r-- 1 root root 211 2008-01-08 04:53 ./source/l/libvncserver/libvncserver.info +-rw-r--r-- 1 root root 830 2008-08-01 05:11 ./source/l/libvncserver/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libvorbis +-rw-r--r-- 1 root root 1214374 2007-07-25 16:52 ./source/l/libvorbis/libvorbis-1.2.0.tar.bz2 +-rwxr-xr-x 1 root root 2473 2009-05-19 20:05 ./source/l/libvorbis/libvorbis.SlackBuild +-rw-r--r-- 1 root root 1020 2003-12-18 23:44 ./source/l/libvorbis/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libwmf +-rw-r--r-- 1 root root 1515265 2006-06-14 06:20 ./source/l/libwmf/libwmf-0.2.8.4.tar.bz2 +-rwxr-xr-x 1 root root 2762 2009-06-09 02:26 ./source/l/libwmf/libwmf.SlackBuild +-rw-r--r-- 1 root root 745 2003-12-15 20:23 ./source/l/libwmf/slack-desc +-rw-r--r-- 1 root root 767 2003-12-15 20:29 ./source/l/libwmf/slack-desc-docs +drwxr-xr-x 2 root root 4096 2009-06-09 02:16 ./source/l/libwnck +-rw-r--r-- 1 root root 711253 2009-04-14 00:07 ./source/l/libwnck/libwnck-2.26.1.tar.bz2 +-rwxr-xr-x 1 root root 2892 2009-06-09 02:16 ./source/l/libwnck/libwnck.SlackBuild +-rw-r--r-- 1 root root 933 2007-09-15 21:46 ./source/l/libwnck/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libwpd +-rw-r--r-- 1 root root 424176 2008-02-12 13:46 ./source/l/libwpd/libwpd-0.8.14.tar.bz2 +-rwxr-xr-x 1 root root 2617 2009-05-19 20:05 ./source/l/libwpd/libwpd.SlackBuild +-rw-r--r-- 1 root root 773 2006-04-15 21:37 ./source/l/libwpd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libxklavier +-rw-r--r-- 1 root root 339409 2009-03-18 22:09 ./source/l/libxklavier/libxklavier-3.9.tar.bz2 +-rwxr-xr-x 1 root root 2787 2009-06-09 02:19 ./source/l/libxklavier/libxklavier.SlackBuild +-rw-r--r-- 1 root root 748 2008-08-01 05:15 ./source/l/libxklavier/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libxml2 +-rw-r--r-- 1 root root 2631584 2009-01-18 21:43 ./source/l/libxml2/libxml2-2.7.3.tar.xz +-rwxr-xr-x 1 root root 3081 2009-05-19 20:05 ./source/l/libxml2/libxml2.SlackBuild +-rw-r--r-- 1 root root 980 2008-01-08 23:42 ./source/l/libxml2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/libxslt +-rw-r--r-- 1 root root 2298341 2008-05-13 15:54 ./source/l/libxslt/libxslt-1.1.24.tar.bz2 +-rwxr-xr-x 1 root root 2809 2009-05-19 20:05 ./source/l/libxslt/libxslt.SlackBuild +-rw-r--r-- 1 root root 678 2005-03-26 23:49 ./source/l/libxslt/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-16 22:11 ./source/l/libzip +-rw-r--r-- 1 root root 307116 2008-07-25 10:49 ./source/l/libzip/libzip-0.9.tar.bz2 +-rwxr-xr-x 1 root root 3467 2009-08-16 22:11 ./source/l/libzip/libzip.SlackBuild +-rw-r--r-- 1 root root 163 2008-01-08 04:45 ./source/l/libzip/libzip.info +-rw-r--r-- 1 root root 882 2008-08-01 05:16 ./source/l/libzip/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/lzo +-rw-r--r-- 1 root root 280 2006-12-11 19:07 ./source/l/lzo/.lzo.info +-rw-r--r-- 1 root root 599387 2005-10-17 16:10 ./source/l/lzo/lzo-2.02.tar.gz +-rwxr-xr-x 1 root root 2707 2009-05-19 20:05 ./source/l/lzo/lzo.SlackBuild +-rw-r--r-- 1 root root 728 2007-06-10 00:52 ./source/l/lzo/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/mhash +-rw-r--r-- 1 root root 634563 2007-04-05 02:35 ./source/l/mhash/mhash-0.9.9.tar.bz2 +-rwxr-xr-x 1 root root 2544 2009-05-19 20:05 ./source/l/mhash/mhash.SlackBuild +-rw-r--r-- 1 root root 924 2004-05-30 05:13 ./source/l/mhash/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/mm +-rw-r--r-- 1 root root 248658 2006-08-15 07:05 ./source/l/mm/mm-1.4.2.tar.bz2 +-rwxr-xr-x 1 root root 3497 2009-05-19 20:05 ./source/l/mm/mm.SlackBuild +-rw-r--r-- 1 root root 1003 2006-08-10 00:38 ./source/l/mm/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/l/mpfr +-rw-r--r-- 1 root root 888921 2008-01-29 08:51 ./source/l/mpfr/mpfr-2.3.1.tar.bz2 +-rwxr-xr-x 1 root root 2844 2009-05-19 20:05 ./source/l/mpfr/mpfr.SlackBuild +drwxr-xr-x 2 root root 4096 2008-02-27 02:13 ./source/l/mpfr/patches +-rw-r--r-- 1 root root 1042 2006-05-08 19:39 ./source/l/mpfr/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/l/ncurses +-rw-r--r-- 1 root root 5711 2002-10-08 13:32 ./source/l/ncurses/Eterm.ti +-rw-r--r-- 1 root root 2445052 2008-11-03 21:52 ./source/l/ncurses/ncurses-5.7.tar.gz +-rw-r--r-- 1 root root 266 2008-11-03 21:53 ./source/l/ncurses/ncurses-5.7.tar.gz.asc +-rwxr-xr-x 1 root root 4742 2009-05-22 21:51 ./source/l/ncurses/ncurses.SlackBuild +-rw-r--r-- 1 root root 273 2006-12-27 23:21 ./source/l/ncurses/ncurses.mkhashsize.diff.gz +drwxr-xr-x 2 root root 4096 2009-02-21 23:09 ./source/l/ncurses/patches +-rw-r--r-- 1 root root 2649 2001-03-15 03:08 ./source/l/ncurses/rxvt.terminfo +-rw-r--r-- 1 root root 3709 2003-07-21 15:33 ./source/l/ncurses/screeninfo.src +-rw-r--r-- 1 root root 904 2008-02-11 03:44 ./source/l/ncurses/slack-desc +-rw-r--r-- 1 root root 42014 2007-11-11 23:26 ./source/l/ncurses/xterm.terminfo +drwxr-xr-x 2 root root 4096 2009-06-13 02:28 ./source/l/neon +-rw-r--r-- 1 root root 532304 2009-03-03 20:47 ./source/l/neon/neon-0.28.4.tar.xz +-rwxr-xr-x 1 root root 3363 2009-06-13 02:28 ./source/l/neon/neon.SlackBuild +-rw-r--r-- 1 root root 798 2006-09-18 07:08 ./source/l/neon/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/l/netpbm +-rw-r--r-- 1 root root 9355 2007-02-16 00:36 ./source/l/netpbm/Makefile.config.gz +-rw-r--r-- 1 root root 2058236 2007-02-16 01:13 ./source/l/netpbm/netpbm-10.35.22.tar.bz2 +-rw-r--r-- 1 root root 322974 2004-04-11 19:27 ./source/l/netpbm/netpbm-manpages.tar.bz2 +-rwxr-xr-x 1 root root 3591 2009-05-23 00:41 ./source/l/netpbm/netpbm.SlackBuild +-rw-r--r-- 1 root root 688 2004-04-11 19:47 ./source/l/netpbm/slack-desc +-rwxr-xr-x 1 root root 77 2007-02-16 00:17 ./source/l/netpbm/svn-checkout-stable.sh +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/l/openexr +-rw-r--r-- 1 root root 12864668 2007-10-22 21:54 ./source/l/openexr/openexr-1.6.1.tar.bz2 +-rwxr-xr-x 1 root root 2884 2009-05-23 00:41 ./source/l/openexr/openexr.SlackBuild +-rw-r--r-- 1 root root 184 2009-04-06 19:06 ./source/l/openexr/openexr.gcc43.diff.gz +-rw-r--r-- 1 root root 162 2008-04-29 21:13 ./source/l/openexr/openexr.info +-rw-r--r-- 1 root root 915 2008-08-01 02:42 ./source/l/openexr/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 02:36 ./source/l/pango +-rw-r--r-- 1 root root 1496168 2008-12-16 06:28 ./source/l/pango/pango-1.22.4.tar.bz2 +-rwxr-xr-x 1 root root 4557 2009-06-11 17:12 ./source/l/pango/pango.SlackBuild +-rw-r--r-- 1 root root 450 2009-03-04 23:00 ./source/l/pango/pango.etc.host.location.diff.gz +-rw-r--r-- 1 root root 885 2008-02-11 03:44 ./source/l/pango/slack-desc +-rw-r--r-- 1 root root 2324 2009-08-11 18:03 ./source/l/pango/update-pango-querymodules +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/l/parted +-rw-r--r-- 1 root root 1553881 2007-08-09 19:46 ./source/l/parted/parted-1.8.8.tar.bz2 +-rw-r--r-- 1 root root 65 2007-08-09 19:47 ./source/l/parted/parted-1.8.8.tar.bz2.sig +-rwxr-xr-x 1 root root 3497 2009-05-23 00:41 ./source/l/parted/parted.SlackBuild +-rwxr-xr-x 1 root root 3509 2008-10-07 17:47 ./source/l/parted/parted.SlackBuild.static +-rw-r--r-- 1 root root 270 2007-04-23 21:37 ./source/l/parted/parted.configure.diff.gz +-rw-r--r-- 1 root root 840 2002-06-05 05:27 ./source/l/parted/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/pcre +-rw-r--r-- 1 root root 818897 2008-05-07 16:39 ./source/l/pcre/pcre-7.7.tar.bz2 +-rw-r--r-- 1 root root 287 2008-05-07 16:39 ./source/l/pcre/pcre-7.7.tar.bz2.sig +-rwxr-xr-x 1 root root 3330 2009-05-19 20:05 ./source/l/pcre/pcre.SlackBuild +-rw-r--r-- 1 root root 819 2002-03-30 19:17 ./source/l/pcre/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:22 ./source/l/phonon +-rw-r--r-- 1 root root 575856 2009-02-27 10:22 ./source/l/phonon/phonon-4.3.1.tar.bz2 +-rwxr-xr-x 1 root root 2950 2009-05-19 20:05 ./source/l/phonon/phonon.SlackBuild +-rw-r--r-- 1 root root 629 2008-08-01 05:46 ./source/l/phonon/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/pil +-rw-r--r-- 1 root root 369382 2007-08-05 16:12 ./source/l/pil/Imaging-1.1.6.tar.bz2 +-rwxr-xr-x 1 root root 2534 2009-05-19 20:05 ./source/l/pil/pil.SlackBuild +-rw-r--r-- 1 root root 873 2009-04-30 19:57 ./source/l/pil/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/l/pilot-link +-rw-r--r-- 1 root root 960812 2007-11-12 18:17 ./source/l/pilot-link/pilot-link-0.12.3.tar.bz2 +-rw-r--r-- 1 root root 189 2007-11-12 18:17 ./source/l/pilot-link/pilot-link-0.12.3.tar.bz2.asc +-rwxr-xr-x 1 root root 3562 2009-05-23 00:41 ./source/l/pilot-link/pilot-link.SlackBuild +-rw-r--r-- 1 root root 877 2008-02-11 03:44 ./source/l/pilot-link/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 04:01 ./source/l/poppler +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/poppler-data +-rw-r--r-- 1 root root 3460244 2008-09-30 21:02 ./source/l/poppler-data/poppler-data-0.2.1.tar.bz2 +-rwxr-xr-x 1 root root 2030 2009-05-19 20:05 ./source/l/poppler-data/poppler-data.SlackBuild +-rw-r--r-- 1 root root 1064 2007-04-12 01:35 ./source/l/poppler-data/slack-desc +-rw-r--r-- 1 root root 1017696 2009-05-16 16:19 ./source/l/poppler/poppler-0.10.7.tar.xz +-rwxr-xr-x 1 root root 3110 2009-06-09 04:01 ./source/l/poppler/poppler.SlackBuild +-rw-r--r-- 1 root root 952 2007-04-10 20:40 ./source/l/poppler/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/popt +-rw-r--r-- 1 root root 489869 2002-09-17 20:57 ./source/l/popt/popt-1.7.tar.bz2 +-rwxr-xr-x 1 root root 3243 2009-05-19 20:05 ./source/l/popt/popt.SlackBuild +-rw-r--r-- 1 root root 1047 2003-02-22 21:32 ./source/l/popt/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/pycairo +-rw-r--r-- 1 root root 428965 2009-03-19 08:51 ./source/l/pycairo/pycairo-1.8.4.tar.bz2 +-rwxr-xr-x 1 root root 2788 2009-06-11 16:57 ./source/l/pycairo/pycairo.SlackBuild +-rw-r--r-- 1 root root 110 2009-02-17 01:57 ./source/l/pycairo/pycairo.info +-rw-r--r-- 1 root root 744 2008-02-11 03:44 ./source/l/pycairo/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/pycups +-rw-r--r-- 1 root root 39968 2009-01-08 17:16 ./source/l/pycups/pycups-1.9.45.tar.bz2 +-rwxr-xr-x 1 root root 2206 2009-05-19 20:05 ./source/l/pycups/pycups.SlackBuild +-rw-r--r-- 1 root root 121 2008-07-25 02:41 ./source/l/pycups/pycups.info +-rw-r--r-- 1 root root 688 2008-08-01 05:49 ./source/l/pycups/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/pygobject +-rw-r--r-- 1 root root 522347 2009-02-22 11:29 ./source/l/pygobject/pygobject-2.16.1.tar.bz2 +-rwxr-xr-x 1 root root 2776 2009-05-19 20:05 ./source/l/pygobject/pygobject.SlackBuild +-rw-r--r-- 1 root root 123 2009-02-17 01:52 ./source/l/pygobject/pygobject.info +-rw-r--r-- 1 root root 858 2008-02-11 03:44 ./source/l/pygobject/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 04:05 ./source/l/pygtk +-rw-r--r-- 1 root root 2210535 2009-03-06 01:15 ./source/l/pygtk/pygtk-2.14.1.tar.bz2 +-rwxr-xr-x 1 root root 2789 2009-06-09 04:06 ./source/l/pygtk/pygtk.SlackBuild +-rw-r--r-- 1 root root 777 2008-01-09 04:33 ./source/l/pygtk/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/pyrex +-rw-r--r-- 1 root root 192596 2009-03-05 18:32 ./source/l/pyrex/Pyrex-0.9.8.5.tar.bz2 +-rw-r--r-- 1 root root 58 2009-03-05 18:42 ./source/l/pyrex/Pyrex.url +-rwxr-xr-x 1 root root 2396 2009-05-19 20:05 ./source/l/pyrex/pyrex.SlackBuild +-rw-r--r-- 1 root root 847 2009-03-05 18:42 ./source/l/pyrex/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/qca +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/qca-cyrus-sasl +-rw-r--r-- 1 root root 24075 2007-11-08 04:25 ./source/l/qca-cyrus-sasl/qca-cyrus-sasl-2.0.0-beta3.tar.bz2 +-rwxr-xr-x 1 root root 2624 2009-05-19 20:05 ./source/l/qca-cyrus-sasl/qca-cyrus-sasl.SlackBuild +-rw-r--r-- 1 root root 736 2008-07-31 03:43 ./source/l/qca-cyrus-sasl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/qca-gnupg +-rw-r--r-- 1 root root 38177 2008-04-23 23:14 ./source/l/qca-gnupg/qca-gnupg-2.0.0-beta3.tar.bz2 +-rwxr-xr-x 1 root root 2614 2009-05-19 20:05 ./source/l/qca-gnupg/qca-gnupg.SlackBuild +-rw-r--r-- 1 root root 656 2008-07-31 03:43 ./source/l/qca-gnupg/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 02:23 ./source/l/qca-ossl +-rw-r--r-- 1 root root 49188 2007-12-11 17:47 ./source/l/qca-ossl/qca-ossl-2.0.0-beta3.tar.bz2 +-rwxr-xr-x 1 root root 2734 2009-05-19 20:05 ./source/l/qca-ossl/qca-ossl.SlackBuild +-rw-r--r-- 1 root root 443 2008-12-16 15:36 ./source/l/qca-ossl/qca-ossl.nowhirlpool.diff.gz +-rw-r--r-- 1 root root 947 2008-07-31 03:44 ./source/l/qca-ossl/slack-desc +-rw-r--r-- 1 root root 1925152 2008-07-21 17:21 ./source/l/qca/qca-2.0.1.tar.bz2 +-rwxr-xr-x 1 root root 2643 2009-05-19 20:05 ./source/l/qca/qca.SlackBuild +-rw-r--r-- 1 root root 112 2008-07-24 15:03 ./source/l/qca/qca.info +-rw-r--r-- 1 root root 1021 2006-07-31 21:42 ./source/l/qca/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/qimageblitz +-rw-r--r-- 1 root root 57639 2009-04-02 20:53 ./source/l/qimageblitz/qimageblitz-r948358.tar.bz2 +-rwxr-xr-x 1 root root 2693 2009-05-19 20:05 ./source/l/qimageblitz/qimageblitz.SlackBuild +-rw-r--r-- 1 root root 278 2007-12-18 16:29 ./source/l/qimageblitz/qimageblitz.info +-rw-r--r-- 1 root root 851 2008-08-01 05:40 ./source/l/qimageblitz/slack-desc +drwxr-xr-x 3 root root 4096 2009-08-08 19:24 ./source/l/qt +-rw-r--r-- 1 root root 204 2008-09-13 20:26 ./source/l/qt/README +-rw-r--r-- 1 root root 92 2007-12-22 17:48 ./source/l/qt/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2008-10-03 20:21 ./source/l/qt/profile.d +-rwxr-xr-x 1 root root 661 2008-10-03 20:23 ./source/l/qt/profile.d/qt4.csh +-rwxr-xr-x 1 root root 561 2008-10-03 20:23 ./source/l/qt/profile.d/qt4.sh +-rw-r--r-- 1 root root 49638532 2009-08-08 19:21 ./source/l/qt/qt-r1008952.tar.xz +-rwxr-xr-x 1 root root 5804 2009-08-08 18:59 ./source/l/qt/qt.SlackBuild +-rw-r--r-- 1 root root 277 2008-04-03 01:53 ./source/l/qt/qt.mysql.h.diff.gz +-rw-r--r-- 1 root root 260 2007-12-22 06:24 ./source/l/qt/qt.x86.cflags.diff.gz +-rw-r--r-- 1 root root 688 2008-04-06 01:19 ./source/l/qt/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/l/qtscriptgenerator +-rw-r--r-- 1 root root 564 2009-06-05 09:21 ./source/l/qtscriptgenerator/include-everything.patch.gz +-rw-r--r-- 1 root root 374223 2009-06-05 09:22 ./source/l/qtscriptgenerator/qtscriptgenerator-src-0.1.0.tar.gz +-rwxr-xr-x 1 root root 3574 2009-06-05 14:31 ./source/l/qtscriptgenerator/qtscriptgenerator.SlackBuild +-rw-r--r-- 1 root root 292 2009-06-05 09:22 ./source/l/qtscriptgenerator/qtscriptgenerator.info +-rw-r--r-- 1 root root 945 2009-06-05 09:34 ./source/l/qtscriptgenerator/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/raptor +-rw-r--r-- 1 root root 1188777 2008-06-26 04:04 ./source/l/raptor/raptor-1.4.18.tar.bz2 +-rwxr-xr-x 1 root root 2967 2009-05-19 20:05 ./source/l/raptor/raptor.SlackBuild +-rw-r--r-- 1 root root 96 2008-06-28 05:51 ./source/l/raptor/raptor.info +-rw-r--r-- 1 root root 624 2008-08-01 05:21 ./source/l/raptor/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/rasqal +-rw-r--r-- 1 root root 755631 2008-07-05 23:54 ./source/l/rasqal/rasqal-0.9.16.tar.bz2 +-rwxr-xr-x 1 root root 2950 2009-05-19 20:05 ./source/l/rasqal/rasqal.SlackBuild +-rw-r--r-- 1 root root 171 2007-12-20 01:01 ./source/l/rasqal/rasqal.info +-rw-r--r-- 1 root root 507 2008-08-01 05:23 ./source/l/rasqal/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/l/readline +drwxr-xr-x 2 root root 4096 2009-02-21 22:42 ./source/l/readline/readline-5.2-patches +-rw-r--r-- 1 root root 874 2006-12-12 21:25 ./source/l/readline/readline-5.2-patches/readline52-001 +-rw-r--r-- 1 root root 65 2006-12-12 21:25 ./source/l/readline/readline-5.2-patches/readline52-001.sig +-rw-r--r-- 1 root root 1433 2007-03-21 18:47 ./source/l/readline/readline-5.2-patches/readline52-002 +-rw-r--r-- 1 root root 65 2007-03-21 18:47 ./source/l/readline/readline-5.2-patches/readline52-002.sig +-rw-r--r-- 1 root root 1204 2007-04-25 18:00 ./source/l/readline/readline-5.2-patches/readline52-003 +-rw-r--r-- 1 root root 65 2007-04-25 18:00 ./source/l/readline/readline-5.2-patches/readline52-003.sig +-rw-r--r-- 1 root root 2192 2007-04-25 18:00 ./source/l/readline/readline-5.2-patches/readline52-004 +-rw-r--r-- 1 root root 65 2007-04-25 18:00 ./source/l/readline/readline-5.2-patches/readline52-004.sig +-rw-r--r-- 1 root root 8029 2007-08-22 13:22 ./source/l/readline/readline-5.2-patches/readline52-005 +-rw-r--r-- 1 root root 65 2007-08-22 13:22 ./source/l/readline/readline-5.2-patches/readline52-005.sig +-rw-r--r-- 1 root root 2820 2007-08-22 13:22 ./source/l/readline/readline-5.2-patches/readline52-006 +-rw-r--r-- 1 root root 65 2007-08-22 13:22 ./source/l/readline/readline-5.2-patches/readline52-006.sig +-rw-r--r-- 1 root root 1523 2007-08-22 13:22 ./source/l/readline/readline-5.2-patches/readline52-007 +-rw-r--r-- 1 root root 65 2007-08-22 13:22 ./source/l/readline/readline-5.2-patches/readline52-007.sig +-rw-r--r-- 1 root root 2277 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-008 +-rw-r--r-- 1 root root 65 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-008.sig +-rw-r--r-- 1 root root 1332 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-009 +-rw-r--r-- 1 root root 65 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-009.sig +-rw-r--r-- 1 root root 1543 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-010 +-rw-r--r-- 1 root root 65 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-010.sig +-rw-r--r-- 1 root root 886 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-011 +-rw-r--r-- 1 root root 65 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-011.sig +-rw-r--r-- 1 root root 3870 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-012 +-rw-r--r-- 1 root root 65 2007-12-15 03:56 ./source/l/readline/readline-5.2-patches/readline52-012.sig +-rw-r--r-- 1 root root 5147 2008-11-18 16:19 ./source/l/readline/readline-5.2-patches/readline52-013 +-rw-r--r-- 1 root root 65 2008-11-18 16:19 ./source/l/readline/readline-5.2-patches/readline52-013.sig +-rw-r--r-- 1 root root 1693789 2006-10-11 16:12 ./source/l/readline/readline-5.2.tar.bz2 +-rwxr-xr-x 1 root root 2767 2009-05-19 20:05 ./source/l/readline/readline.SlackBuild +-rw-r--r-- 1 root root 1018 2002-03-23 23:44 ./source/l/readline/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/redland +-rw-r--r-- 1 root root 2844315 2008-07-06 00:46 ./source/l/redland/redland-1.0.8.tar.bz2 +-rwxr-xr-x 1 root root 3004 2009-05-19 20:05 ./source/l/redland/redland.SlackBuild +-rw-r--r-- 1 root root 171 2008-02-10 17:30 ./source/l/redland/redland.info +-rw-r--r-- 1 root root 606 2008-08-01 05:25 ./source/l/redland/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-16 01:42 ./source/l/sdl +-rw-r--r-- 1 root root 3001341 2007-12-31 06:35 ./source/l/sdl/SDL-1.2.13.tar.bz2 +-rw-r--r-- 1 root root 1230929 2008-11-24 06:54 ./source/l/sdl/SDL_image-1.2.7.tar.bz2 +-rw-r--r-- 1 root root 2012141 2007-07-21 07:17 ./source/l/sdl/SDL_mixer-1.2.8.tar.bz2 +-rw-r--r-- 1 root root 246 2008-03-13 19:38 ./source/l/sdl/SDL_mixer-1.2.8.usrlocal.diff.gz +-rw-r--r-- 1 root root 277828 2007-07-21 08:04 ./source/l/sdl/SDL_net-1.2.7.tar.bz2 +-rw-r--r-- 1 root root 3066276 2007-07-21 17:27 ./source/l/sdl/SDL_ttf-2.0.9.tar.bz2 +-rwxr-xr-x 1 root root 6041 2009-06-16 01:48 ./source/l/sdl/sdl.SlackBuild +-rw-r--r-- 1 root root 941 2004-03-27 18:28 ./source/l/sdl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/shared-mime-info +-rw-r--r-- 1 root root 117 2009-03-09 17:14 ./source/l/shared-mime-info/doinst.sh.gz +-rw-r--r-- 1 root root 457377 2009-03-09 17:01 ./source/l/shared-mime-info/shared-mime-info-0.60.tar.bz2 +-rwxr-xr-x 1 root root 3179 2009-05-19 20:05 ./source/l/shared-mime-info/shared-mime-info.SlackBuild +-rw-r--r-- 1 root root 979 2007-12-23 22:25 ./source/l/shared-mime-info/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/sip +-rw-r--r-- 1 root root 337579 2008-12-18 19:31 ./source/l/sip/sip-4.7.9.tar.bz2 +-rwxr-xr-x 1 root root 2740 2009-05-19 20:05 ./source/l/sip/sip.SlackBuild +-rw-r--r-- 1 root root 147 2008-06-21 14:38 ./source/l/sip/sip.info +-rw-r--r-- 1 root root 849 2008-08-01 05:27 ./source/l/sip/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-22 02:48 ./source/l/slang +-rw-r--r-- 1 root root 994 2006-08-01 05:37 ./source/l/slang/slack-desc +-rw-r--r-- 1 root root 1283938 2008-09-07 22:32 ./source/l/slang/slang-2.1.4.tar.bz2 +-rw-r--r-- 1 root root 261 2008-09-07 22:34 ./source/l/slang/slang-2.1.4.tar.bz2.asc +-rwxr-xr-x 1 root root 3462 2009-06-22 02:49 ./source/l/slang/slang.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/slang1 +-rw-r--r-- 1 root root 1006 2006-08-01 05:37 ./source/l/slang1/slack-desc +-rw-r--r-- 1 root root 631079 2003-03-23 05:58 ./source/l/slang1/slang-1.4.9.tar.bz2 +-rwxr-xr-x 1 root root 2987 2009-05-19 20:05 ./source/l/slang1/slang1.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/soprano +-rw-r--r-- 1 root root 845 2009-03-08 00:29 ./source/l/soprano/slack-desc +-rw-r--r-- 1 root root 1849174 2009-03-02 08:26 ./source/l/soprano/soprano-2.2.3.tar.bz2 +-rwxr-xr-x 1 root root 2694 2009-05-19 20:05 ./source/l/soprano/soprano.SlackBuild +-rw-r--r-- 1 root root 43 2008-04-21 14:15 ./source/l/soprano/soprano.info +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/startup-notification +-rw-r--r-- 1 root root 830 2008-02-11 03:44 ./source/l/startup-notification/slack-desc +-rw-r--r-- 1 root root 226231 2007-03-17 19:32 ./source/l/startup-notification/startup-notification-0.9.tar.bz2 +-rwxr-xr-x 1 root root 2721 2009-06-09 02:21 ./source/l/startup-notification/startup-notification.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/strigi +-rw-r--r-- 1 root root 965 2008-08-01 01:27 ./source/l/strigi/slack-desc +-rw-r--r-- 1 root root 895552 2009-02-01 20:46 ./source/l/strigi/strigi-0.6.4.tar.bz2 +-rwxr-xr-x 1 root root 2770 2009-05-19 20:05 ./source/l/strigi/strigi.SlackBuild +-rw-r--r-- 1 root root 146 2008-05-17 02:12 ./source/l/strigi/strigi.info +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/svgalib +-rw-r--r-- 1 root root 802 2009-03-09 23:10 ./source/l/svgalib/slack-desc +-rw-r--r-- 1 root root 509 2008-05-31 14:12 ./source/l/svgalib/svgalib-1.9.25-kernel-2.6.26.diff.gz +-rw-r--r-- 1 root root 807984 2006-07-14 11:57 ./source/l/svgalib/svgalib-1.9.25.tar.bz2 +-rwxr-xr-x 1 root root 3717 2009-05-19 20:05 ./source/l/svgalib/svgalib.SlackBuild +-rw-r--r-- 1 root root 271 2009-03-09 23:07 ./source/l/svgalib/svgalib.nohelper.diff.gz +-rw-r--r-- 1 root root 282 2007-03-30 00:48 ./source/l/svgalib/svgalib.prefix.diff.gz +drwxr-xr-x 2 root root 4096 2009-06-09 00:43 ./source/l/t1lib +-rw-r--r-- 1 root root 813 2002-04-30 02:17 ./source/l/t1lib/slack-desc +-rw-r--r-- 1 root root 1429408 2007-12-23 16:07 ./source/l/t1lib/t1lib-5.1.2.tar.xz +-rwxr-xr-x 1 root root 3576 2009-06-09 00:43 ./source/l/t1lib/t1lib.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/taglib +drwxr-xr-x 2 root root 4096 2009-06-06 01:24 ./source/l/taglib-extras +-rw-r--r-- 1 root root 985 2009-06-05 09:55 ./source/l/taglib-extras/slack-desc +-rw-r--r-- 1 root root 48904 2009-05-02 12:44 ./source/l/taglib-extras/taglib-extras-0.1.3.tar.gz +-rwxr-xr-x 1 root root 2832 2009-06-05 10:12 ./source/l/taglib-extras/taglib-extras.SlackBuild +-rw-r--r-- 1 root root 797 2004-02-22 08:50 ./source/l/taglib/slack-desc +-rw-r--r-- 1 root root 998425 2008-02-21 00:51 ./source/l/taglib/taglib-1.5.tar.bz2 +-rwxr-xr-x 1 root root 2523 2009-05-19 20:05 ./source/l/taglib/taglib.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/tango-icon-theme +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/tango-icon-theme-extras +-rw-r--r-- 1 root root 1015 2008-02-27 07:27 ./source/l/tango-icon-theme-extras/slack-desc +-rw-r--r-- 1 root root 128095 2006-06-01 19:07 ./source/l/tango-icon-theme-extras/tango-icon-theme-extras-0.1.0.tar.bz2 +-rwxr-xr-x 1 root root 2937 2009-05-19 20:05 ./source/l/tango-icon-theme-extras/tango-icon-theme-extras.SlackBuild +-rw-r--r-- 1 root root 990 2008-02-27 07:13 ./source/l/tango-icon-theme/slack-desc +-rw-r--r-- 1 root root 1376581 2009-02-26 03:21 ./source/l/tango-icon-theme/tango-icon-theme-0.8.90.tar.bz2 +-rwxr-xr-x 1 root root 2033 2009-05-19 20:05 ./source/l/tango-icon-theme/tango-icon-theme.SlackBuild +drwxr-xr-x 2 root root 4096 2009-04-21 15:09 ./source/l/urwid +-rw-r--r-- 1 root root 9389 2009-03-13 22:05 ./source/l/urwid/LICENSE.gz +-rw-r--r-- 1 root root 843 2009-04-21 15:06 ./source/l/urwid/slack-desc +-rw-r--r-- 1 root root 184002 2009-03-13 19:38 ./source/l/urwid/urwid-0.9.8.4.tar.gz +-rwxr-xr-x 1 root root 2637 2009-07-01 18:23 ./source/l/urwid/urwid.SlackBuild +-rw-r--r-- 1 root root 24 2009-03-14 23:33 ./source/l/urwid/urwid.url +drwxr-xr-x 2 root root 4096 2009-06-11 17:47 ./source/l/vte +-rw-r--r-- 1 root root 710 2007-02-17 03:01 ./source/l/vte/slack-desc +-rw-r--r-- 1 root root 917092 2009-06-10 00:56 ./source/l/vte/vte-0.20.5.tar.xz +-rwxr-xr-x 1 root root 3312 2009-06-11 18:07 ./source/l/vte/vte.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/wavpack +-rw-r--r-- 1 root root 841 2008-03-16 05:02 ./source/l/wavpack/slack-desc +-rw-r--r-- 1 root root 329241 2007-05-08 00:47 ./source/l/wavpack/wavpack-4.41.0.tar.bz2 +-rwxr-xr-x 1 root root 2754 2009-05-19 20:05 ./source/l/wavpack/wavpack.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/wv2 +-rw-r--r-- 1 root root 876 2003-11-17 01:49 ./source/l/wv2/slack-desc +-rw-r--r-- 1 root root 908983 2006-06-12 17:13 ./source/l/wv2/wv2-0.2.3.tar.bz2 +-rw-r--r-- 1 root root 189 2006-06-12 17:13 ./source/l/wv2/wv2-0.2.3.tar.bz2.asc +-rwxr-xr-x 1 root root 2540 2009-05-19 20:05 ./source/l/wv2/wv2.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/l/zlib +-rw-r--r-- 1 root root 814 2002-02-15 03:04 ./source/l/zlib/slack-desc +-rw-r--r-- 1 root root 425209 2005-07-18 13:39 ./source/l/zlib/zlib-1.2.3.tar.bz2 +-rwxr-xr-x 1 root root 2956 2009-05-19 20:05 ./source/l/zlib/zlib.SlackBuild +drwxr-xr-x 125 root root 4096 2009-08-18 18:44 ./source/n +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/alpine +-rw-r--r-- 1 root root 5222673 2008-08-26 01:20 ./source/n/alpine/alpine-2.00.tar.bz2 +-rwxr-xr-x 1 root root 6321 2009-05-23 04:11 ./source/n/alpine/alpine.SlackBuild +-rw-r--r-- 1 root root 255 2008-08-07 02:01 ./source/n/alpine/alpine.config.h.diff.gz +-rw-r--r-- 1 root root 301 2008-08-07 01:01 ./source/n/alpine/alpine.manpage.diff.gz +-rw-r--r-- 1 root root 2493 2008-08-07 19:00 ./source/n/alpine/alpine.tech-notes.txt.diff.gz +-rw-r--r-- 1 root root 472 2008-08-07 03:57 ./source/n/alpine/doinst.sh.alpine +-rw-r--r-- 1 root root 737 2008-08-07 02:33 ./source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff.gz +-rw-r--r-- 1 root root 38103 2002-11-24 23:01 ./source/n/alpine/pinepgp-0.18.0.tar.gz +-rw-r--r-- 1 root root 72 2002-11-24 23:01 ./source/n/alpine/pinepgp-0.18.0.tar.gz.sig +-rw-r--r-- 1 root root 157 2008-08-07 02:50 ./source/n/alpine/pinepgp.pinegpgp.in.diff.gz +-rw-r--r-- 1 root root 1102 2008-08-07 00:54 ./source/n/alpine/slack-desc.alpine +-rw-r--r-- 1 root root 749 2008-08-07 00:39 ./source/n/alpine/slack-desc.imapd +drwxr-xr-x 2 root root 4096 2009-05-23 02:35 ./source/n/autofs +-rw-r--r-- 1 root root 173 2001-03-24 22:18 ./source/n/autofs/autofs-3.1.7.diff.gz +-rw-r--r-- 1 root root 57000 2000-11-04 07:05 ./source/n/autofs/autofs-3.1.7.tar.bz2 +-rw-r--r-- 1 root root 248 2000-11-04 07:05 ./source/n/autofs/autofs-3.1.7.tar.bz2.sign +-rwxr-xr-x 1 root root 2810 2009-05-19 20:05 ./source/n/autofs/autofs.SlackBuild +-rw-r--r-- 1 root root 253 2008-10-23 22:33 ./source/n/autofs/autofs.gcc.fix.diff.gz +-rw-r--r-- 1 root root 284 2008-10-23 22:30 ./source/n/autofs/autofs.x86_64.diff.gz +-rw-r--r-- 1 root root 873 2002-02-27 02:39 ./source/n/autofs/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/biff+comsat +-rw-r--r-- 1 root root 195 2001-02-26 02:06 ./source/n/biff+comsat/biff+comsat-0.17.diff.gz +-rw-r--r-- 1 root root 13700 2000-07-31 02:56 ./source/n/biff+comsat/biff+comsat-0.17.tar.gz +-rwxr-xr-x 1 root root 2603 2009-05-19 20:05 ./source/n/biff+comsat/biff+comsat.SlackBuild +-rw-r--r-- 1 root root 729 2004-06-21 20:51 ./source/n/biff+comsat/biff+comsat.badutmp.diff.gz +-rw-r--r-- 1 root root 1222 2001-06-03 08:32 ./source/n/biff+comsat/biff+comsat.offset.diff.gz +-rw-r--r-- 1 root root 1148 2007-04-30 01:44 ./source/n/biff+comsat/slack-desc +drwxr-xr-x 3 root root 4096 2009-07-29 21:09 ./source/n/bind +-rw-r--r-- 1 root root 5120 2007-06-08 04:48 ./source/n/bind/3link.sh +-rw-r--r-- 1 root root 6544968 2009-07-28 17:24 ./source/n/bind/bind-9.4.3-P3.tar.gz +-rw-r--r-- 1 root root 481 2009-07-29 15:19 ./source/n/bind/bind-9.4.3-P3.tar.gz.asc +-rwxr-xr-x 1 root root 5191 2009-07-29 22:11 ./source/n/bind/bind.SlackBuild +-rw-r--r-- 1 root root 230 2007-06-08 04:17 ./source/n/bind/bind.man.diff.gz +-rw-r--r-- 1 root root 280 2006-02-18 19:10 ./source/n/bind/bind.so_bsdcompat.diff.gz +-rw-r--r-- 1 root root 290 2002-02-27 02:51 ./source/n/bind/bind.var.run.named.diff.gz +drwxr-xr-x 2 root root 4096 2008-04-13 21:26 ./source/n/bind/caching-example +-rw-r--r-- 1 root root 195 2001-05-18 02:03 ./source/n/bind/caching-example/localhost.zone +-rw-r--r-- 1 root root 681 2008-04-13 21:47 ./source/n/bind/caching-example/named.conf +-rw-r--r-- 1 root root 433 2001-05-18 02:03 ./source/n/bind/caching-example/named.local +-rw-r--r-- 1 root root 2878 2008-02-04 20:07 ./source/n/bind/caching-example/named.root +-rw-r--r-- 1 root root 514 2009-05-23 08:11 ./source/n/bind/doinst.sh.gz +-rw-r--r-- 1 root root 3116 2008-04-13 21:48 ./source/n/bind/rc.bind +-rw-r--r-- 1 root root 791 2002-02-27 02:45 ./source/n/bind/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/bluez-firmware +-rw-r--r-- 1 root root 262963 2007-04-23 22:58 ./source/n/bluez-firmware/bluez-firmware-1.2.tar.bz2 +-rwxr-xr-x 1 root root 2948 2009-05-19 20:05 ./source/n/bluez-firmware/bluez-firmware.SlackBuild +-rw-r--r-- 1 root root 832 2007-04-23 22:59 ./source/n/bluez-firmware/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/bluez-hcidump +-rw-r--r-- 1 root root 122212 2008-06-15 20:41 ./source/n/bluez-hcidump/bluez-hcidump-1.42.tar.bz2 +-rwxr-xr-x 1 root root 3172 2009-05-19 20:05 ./source/n/bluez-hcidump/bluez-hcidump.SlackBuild +-rw-r--r-- 1 root root 913 2007-04-23 23:29 ./source/n/bluez-hcidump/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/bluez-libs +-rw-r--r-- 1 root root 256188 2008-07-11 10:46 ./source/n/bluez-libs/bluez-libs-3.36.tar.bz2 +-rwxr-xr-x 1 root root 3252 2009-05-19 20:05 ./source/n/bluez-libs/bluez-libs.SlackBuild +-rw-r--r-- 1 root root 799 2007-04-23 22:56 ./source/n/bluez-libs/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/bluez-utils +-rw-r--r-- 1 root root 2199 2007-12-03 20:51 ./source/n/bluez-utils/60-bluetooth.rules +-rw-r--r-- 1 root root 696 2007-02-25 01:09 ./source/n/bluez-utils/README.SLACKWARE +-rw-r--r-- 1 root root 9792 2007-02-25 01:09 ./source/n/bluez-utils/add-passkey.c +-rw-r--r-- 1 root root 685 2009-01-26 01:12 ./source/n/bluez-utils/bluetooth.conf +-rw-r--r-- 1 root root 732205 2008-07-11 10:47 ./source/n/bluez-utils/bluez-utils-3.36.tar.bz2 +-rwxr-xr-x 1 root root 5588 2009-08-24 09:08 ./source/n/bluez-utils/bluez-utils.SlackBuild +-rw-r--r-- 1 root root 395 2009-01-26 01:26 ./source/n/bluez-utils/doinst.sh.gz +-rw-r--r-- 1 root root 3299 2009-06-12 19:10 ./source/n/bluez-utils/rc.bluetooth +-rw-r--r-- 1 root root 1051 2008-09-18 05:45 ./source/n/bluez-utils/rc.bluetooth.conf +-rw-r--r-- 1 root root 536 2007-02-25 01:09 ./source/n/bluez-utils/register-passkeys +-rw-r--r-- 1 root root 786 2007-05-15 23:04 ./source/n/bluez-utils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/bootp +-rw-r--r-- 1 root root 616 2006-06-09 23:31 ./source/n/bootp/_bootp.tar.gz +-rwxr-xr-x 1 root root 2527 2009-05-19 20:05 ./source/n/bootp/bootp.SlackBuild +-rw-r--r-- 1 root root 23147 2006-02-17 23:17 ./source/n/bootp/bootp_2.4.3-15.diff.gz +-rw-r--r-- 1 root root 89235 1999-03-18 19:52 ./source/n/bootp/bootp_2.4.3.orig.tar.gz +-rw-r--r-- 1 root root 643 2002-02-27 00:08 ./source/n/bootp/bootptab.gz +-rw-r--r-- 1 root root 876 2008-02-11 03:44 ./source/n/bootp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/bridge-utils +-rw-r--r-- 1 root root 32261 2006-09-09 05:30 ./source/n/bridge-utils/bridge-utils-1.2.tar.gz +-rwxr-xr-x 1 root root 2881 2009-05-19 20:05 ./source/n/bridge-utils/bridge-utils.SlackBuild +-rw-r--r-- 1 root root 305 2008-11-29 20:10 ./source/n/bridge-utils/bridge-utils.isbridge.diff.gz +-rw-r--r-- 1 root root 1054 2007-04-29 20:48 ./source/n/bridge-utils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/bsd-finger +-rw-r--r-- 1 root root 273 2001-02-26 01:21 ./source/n/bsd-finger/bsd-finger-0.17.diff.gz +-rw-r--r-- 1 root root 25521 2000-07-31 02:56 ./source/n/bsd-finger/bsd-finger-0.17.tar.gz +-rwxr-xr-x 1 root root 2222 2009-05-19 20:05 ./source/n/bsd-finger/bsd-finger.SlackBuild +-rw-r--r-- 1 root root 1075 2007-04-30 01:53 ./source/n/bsd-finger/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/crda +-rw-r--r-- 1 root root 21013 2009-02-22 22:51 ./source/n/crda/crda-1.0.1.tar.bz2 +-rwxr-xr-x 1 root root 3345 2009-05-19 20:05 ./source/n/crda/crda.SlackBuild +-rw-r--r-- 1 root root 380 2009-02-23 01:33 ./source/n/crda/get_regdb.sh +-rw-r--r-- 1 root root 870 2009-03-09 05:07 ./source/n/crda/slack-desc +-rw-r--r-- 1 root root 41997 2009-02-22 23:03 ./source/n/crda/wireless-regdb-git_20090222.tar.bz2 +drwxr-xr-x 2 root root 4096 2009-08-13 03:34 ./source/n/curl +-rw-r--r-- 1 root root 99114 2009-03-26 21:22 ./source/n/curl/cacert.pem.bz2 +-rw-r--r-- 1 root root 2347791 2009-08-12 09:01 ./source/n/curl/curl-7.19.6.tar.bz2 +-rw-r--r-- 1 root root 197 2009-08-12 09:01 ./source/n/curl/curl-7.19.6.tar.bz2.asc +-rwxr-xr-x 1 root root 3409 2009-08-13 03:34 ./source/n/curl/curl.SlackBuild +-rw-r--r-- 1 root root 1010 2008-02-11 03:44 ./source/n/curl/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/cyrus-sasl +-rw-r--r-- 1 root root 906552 2009-05-14 13:48 ./source/n/cyrus-sasl/cyrus-sasl-2.1.23.tar.xz +-rwxr-xr-x 1 root root 3358 2009-05-19 20:05 ./source/n/cyrus-sasl/cyrus-sasl.SlackBuild +-rw-r--r-- 1 root root 275 2005-07-24 22:43 ./source/n/cyrus-sasl/doinst.sh.gz +-rw-r--r-- 1 root root 580 2005-07-25 00:10 ./source/n/cyrus-sasl/rc.saslauthd.gz +-rw-r--r-- 1 root root 836 2005-04-18 23:31 ./source/n/cyrus-sasl/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-15 19:29 ./source/n/dhcp +-rw-r--r-- 1 root root 792355 2009-07-14 17:00 ./source/n/dhcp/dhcp-3.1.2p1.tar.gz +-rw-r--r-- 1 root root 479 2009-07-14 17:02 ./source/n/dhcp/dhcp-3.1.2p1.tar.gz.asc +-rwxr-xr-x 1 root root 3430 2009-07-14 21:57 ./source/n/dhcp/dhcp.SlackBuild +-rw-r--r-- 1 root root 1099 2002-02-27 02:14 ./source/n/dhcp/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-23 02:24 ./source/n/dhcpcd +-rw-r--r-- 1 root root 759 2009-03-09 04:20 ./source/n/dhcpcd/COPYRIGHT.gz +-rw-r--r-- 1 root root 45030 2008-08-26 03:12 ./source/n/dhcpcd/dhcpcd-3.2.3.tar.bz2 +-rwxr-xr-x 1 root root 4495 2009-05-19 20:05 ./source/n/dhcpcd/dhcpcd.SlackBuild +-rw-r--r-- 1 root root 442 2008-11-07 00:15 ./source/n/dhcpcd/dhcpcd.vararg.diff.gz +drwxr-xr-x 2 root root 4096 2009-03-07 01:36 ./source/n/dhcpcd/patches +-rw-r--r-- 1 root root 311 2009-03-06 20:55 ./source/n/dhcpcd/patches/config.h.diff.gz +-rw-r--r-- 1 root root 258 2009-03-07 01:36 ./source/n/dhcpcd/patches/dhcpcd.8.in.diff.gz +-rw-r--r-- 1 root root 391 2009-03-07 01:24 ./source/n/dhcpcd/patches/dhcpcd.sh.diff.gz +-rw-r--r-- 1 root root 900 2008-04-10 21:01 ./source/n/dhcpcd/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-04 06:54 ./source/n/dirmngr +-rw-r--r-- 1 root root 556184 2009-06-18 02:19 ./source/n/dirmngr/dirmngr-1.0.3.tar.bz2 +-rwxr-xr-x 1 root root 2976 2009-07-15 01:45 ./source/n/dirmngr/dirmngr.SlackBuild +-rw-r--r-- 1 root root 952 2007-03-15 20:48 ./source/n/dirmngr/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-01 03:46 ./source/n/dnsmasq +-rw-r--r-- 1 root root 310593 2009-06-10 19:55 ./source/n/dnsmasq/dnsmasq-2.49.tar.bz2 +-rwxr-xr-x 1 root root 2877 2009-07-01 03:46 ./source/n/dnsmasq/dnsmasq.SlackBuild +-rw-r--r-- 1 root root 472 2009-02-19 23:51 ./source/n/dnsmasq/dnsmasq.leasedir.diff.gz +-rw-r--r-- 1 root root 302 2005-10-16 20:00 ./source/n/dnsmasq/doinst.sh.gz +-rw-r--r-- 1 root root 265 2005-10-16 20:02 ./source/n/dnsmasq/rc.dnsmasq.gz +-rw-r--r-- 1 root root 854 2005-10-16 20:03 ./source/n/dnsmasq/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/elm +-rw-r--r-- 1 root root 4400 2009-08-13 19:04 ./source/n/elm/config.sh +-rwxr-xr-x 1 root root 2597 2009-08-13 19:06 ./source/n/elm/elm.SlackBuild +-rw-r--r-- 1 root root 481431 2005-08-18 13:25 ./source/n/elm/elm2.5.8.tar.bz2 +-rw-r--r-- 1 root root 678 2002-03-05 02:32 ./source/n/elm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/epic4 +-rw-r--r-- 1 root root 628431 2007-09-18 02:33 ./source/n/epic4/epic4-2.8.tar.bz2 +-rw-r--r-- 1 root root 240554 2007-05-09 21:41 ./source/n/epic4/epic4-help-20070509.tar.bz2 +-rwxr-xr-x 1 root root 2754 2009-05-23 00:41 ./source/n/epic4/epic4.SlackBuild +-rw-r--r-- 1 root root 777 2002-03-23 23:48 ./source/n/epic4/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/ethtool +-rw-r--r-- 1 root root 129849 2007-07-26 17:43 ./source/n/ethtool/ethtool-6.tar.gz +-rwxr-xr-x 1 root root 1857 2009-05-19 20:05 ./source/n/ethtool/ethtool.SlackBuild +-rw-r--r-- 1 root root 899 2007-04-29 22:26 ./source/n/ethtool/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-06 04:28 ./source/n/fetchmail +-rw-r--r-- 1 root root 1608923 2009-08-06 04:27 ./source/n/fetchmail/fetchmail-6.3.11.tar.bz2 +-rw-r--r-- 1 root root 197 2009-08-06 04:26 ./source/n/fetchmail/fetchmail-6.3.11.tar.bz2.asc +-rwxr-xr-x 1 root root 2889 2009-08-06 04:49 ./source/n/fetchmail/fetchmail.SlackBuild +-rw-r--r-- 1 root root 1067 2007-05-07 03:49 ./source/n/fetchmail/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-22 19:54 ./source/n/getmail +-rw-r--r-- 1 root root 153548 2009-08-08 20:30 ./source/n/getmail/getmail-4.11.0.tar.gz +-rwxr-xr-x 1 root root 1702 2009-08-22 19:55 ./source/n/getmail/getmail.SlackBuild +-rw-r--r-- 1 root root 821 2003-09-10 04:59 ./source/n/getmail/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/gnupg +-rw-r--r-- 1 root root 3328743 2008-03-26 17:46 ./source/n/gnupg/gnupg-1.4.9.tar.bz2 +-rw-r--r-- 1 root root 158 2008-03-26 17:46 ./source/n/gnupg/gnupg-1.4.9.tar.bz2.sig +-rwxr-xr-x 1 root root 2789 2009-05-19 20:05 ./source/n/gnupg/gnupg.SlackBuild +-rw-r--r-- 1 root root 827 2003-02-25 23:37 ./source/n/gnupg/slack-desc.gnupg +drwxr-xr-x 2 root root 4096 2009-07-04 06:55 ./source/n/gnupg2 +-rw-r--r-- 1 root root 3924196 2009-06-18 02:18 ./source/n/gnupg2/gnupg-2.0.12.tar.bz2 +-rwxr-xr-x 1 root root 4371 2009-07-15 01:46 ./source/n/gnupg2/gnupg2.SlackBuild +-rw-r--r-- 1 root root 1058 2008-02-11 03:44 ./source/n/gnupg2/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/gnutls +-rw-r--r-- 1 root root 3970240 2009-04-30 10:34 ./source/n/gnutls/gnutls-2.6.6.tar.xz +-rwxr-xr-x 1 root root 3257 2009-05-23 00:41 ./source/n/gnutls/gnutls.SlackBuild +-rw-r--r-- 1 root root 950 2007-03-16 01:33 ./source/n/gnutls/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/gpa +-rw-r--r-- 1 root root 270 2007-03-16 00:41 ./source/n/gpa/doinst.sh.gz +-rw-r--r-- 1 root root 564252 2007-03-06 14:54 ./source/n/gpa/gpa-0.7.5.tar.bz2 +-rwxr-xr-x 1 root root 2771 2009-05-19 20:05 ./source/n/gpa/gpa.SlackBuild +-rw-r--r-- 1 root root 741 2007-03-15 20:46 ./source/n/gpa/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/gpgme +-rw-r--r-- 1 root root 827069 2009-01-13 04:06 ./source/n/gpgme/gpgme-1.1.8.tar.bz2 +-rwxr-xr-x 1 root root 2722 2009-05-19 20:05 ./source/n/gpgme/gpgme.SlackBuild +-rw-r--r-- 1 root root 995 2007-03-15 20:46 ./source/n/gpgme/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/htdig +-rw-r--r-- 1 root root 274 2007-04-07 22:58 ./source/n/htdig/doinst.sh.gz +-rw-r--r-- 1 root root 3347 2007-04-07 22:30 ./source/n/htdig/htdig-3.2.0b6.diff.gz +-rw-r--r-- 1 root root 2498246 2004-07-13 14:21 ./source/n/htdig/htdig-3.2.0b6.tar.bz2 +-rwxr-xr-x 1 root root 4079 2009-05-19 20:05 ./source/n/htdig/htdig.SlackBuild +-rw-r--r-- 1 root root 288 2007-05-02 18:02 ./source/n/htdig/htdig.conf.diff.gz +-rw-r--r-- 1 root root 891 2007-04-07 18:26 ./source/n/htdig/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-10 19:07 ./source/n/httpd +-rw-r--r-- 1 root root 1409 2007-05-18 22:51 ./source/n/httpd/README +-rw-r--r-- 1 root root 439 2007-06-05 19:38 ./source/n/httpd/config.layout.diff.gz +-rw-r--r-- 1 root root 702 2008-07-24 20:29 ./source/n/httpd/doinst.sh.gz +-rw-r--r-- 1 root root 5300199 2009-08-06 07:46 ./source/n/httpd/httpd-2.2.13.tar.bz2 +-rw-r--r-- 1 root root 835 2009-08-06 07:46 ./source/n/httpd/httpd-2.2.13.tar.bz2.asc +-rwxr-xr-x 1 root root 6445 2009-08-10 19:07 ./source/n/httpd/httpd.SlackBuild +-rw-r--r-- 1 root root 214 2007-05-18 20:56 ./source/n/httpd/httpd.nossldefault.diff.gz +-rw-r--r-- 1 root root 237 2008-02-14 21:36 ./source/n/httpd/httpd.runasapache.diff.gz +-rw-r--r-- 1 root root 159 2007-05-23 18:30 ./source/n/httpd/logrotate.httpd +-rw-r--r-- 1 root root 703 2007-05-27 01:49 ./source/n/httpd/rc.httpd +-rw-r--r-- 1 root root 970 2007-05-18 04:13 ./source/n/httpd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/icmpinfo +-rw-r--r-- 1 root root 2263 2007-04-29 20:13 ./source/n/icmpinfo/icmpinfo-1.11.diff.gz +-rw-r--r-- 1 root root 11873 1995-08-23 23:00 ./source/n/icmpinfo/icmpinfo-1.11.tar.gz +-rwxr-xr-x 1 root root 2206 2009-05-19 20:05 ./source/n/icmpinfo/icmpinfo.SlackBuild +-rw-r--r-- 1 root root 826 2007-04-29 20:21 ./source/n/icmpinfo/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/inetd +-rw-r--r-- 1 root root 4876 2007-06-30 20:02 ./source/n/inetd/_inetd.tar.gz +-rw-r--r-- 1 root root 6436 2001-02-07 01:19 ./source/n/inetd/inetd-OpenBSD-1.79.diff.gz +-rw-r--r-- 1 root root 19053 2001-02-06 20:48 ./source/n/inetd/inetd-OpenBSD-1.79.tar.gz +-rwxr-xr-x 1 root root 2134 2009-05-19 20:05 ./source/n/inetd/inetd.SlackBuild +-rw-r--r-- 1 root root 889 2003-09-06 23:32 ./source/n/inetd/inetd.loopingdos.diff.gz +-rw-r--r-- 1 root root 910 2002-03-22 02:34 ./source/n/inetd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/iproute2 +-rw-r--r-- 1 root root 305 2008-10-04 01:56 ./source/n/iproute2/doinst.sh.gz +-rw-r--r-- 1 root root 367905 2009-03-24 22:16 ./source/n/iproute2/iproute2-2.6.29-1.tar.bz2 +-rw-r--r-- 1 root root 72 2009-03-24 22:16 ./source/n/iproute2/iproute2-2.6.29-1.tar.bz2.sig +-rwxr-xr-x 1 root root 4196 2009-06-17 18:55 ./source/n/iproute2/iproute2.SlackBuild +-rw-r--r-- 1 root root 269 2008-10-04 01:34 ./source/n/iproute2/iproute2.dbpath.diff.gz +-rw-r--r-- 1 root root 250 2008-10-04 01:38 ./source/n/iproute2/iproute2.iptablespath.diff.gz +-rw-r--r-- 1 root root 937 2004-06-12 22:12 ./source/n/iproute2/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 22:57 ./source/n/iptables +-rw-r--r-- 1 root root 432131 2009-04-06 11:22 ./source/n/iptables/iptables-1.4.3.2.tar.bz2 +-rwxr-xr-x 1 root root 3080 2009-06-12 22:58 ./source/n/iptables/iptables.SlackBuild +-rw-r--r-- 1 root root 1129 2006-09-03 06:14 ./source/n/iptables/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/iptraf +-rw-r--r-- 1 root root 575169 2005-09-13 09:27 ./source/n/iptraf/iptraf-3.0.0.tar.gz +-rwxr-xr-x 1 root root 2933 2009-05-23 00:41 ./source/n/iptraf/iptraf.SlackBuild +-rw-r--r-- 1 root root 341 2003-03-14 21:41 ./source/n/iptraf/iptraf.paths.diff.gz +-rw-r--r-- 1 root root 13181 2007-09-29 11:02 ./source/n/iptraf/iptraf_3.0.0-6.diff.gz +-rw-r--r-- 1 root root 1006 2008-02-11 03:44 ./source/n/iptraf/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/iputils +-rw-r--r-- 1 root root 88678 2007-02-02 13:01 ./source/n/iputils/iputils-s20070202.tar.bz2 +-rwxr-xr-x 1 root root 3052 2009-05-19 20:05 ./source/n/iputils/iputils.SlackBuild +-rw-r--r-- 1 root root 881 2007-04-30 00:45 ./source/n/iputils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/ipw2100-fw +-rw-r--r-- 1 root root 177519 2008-03-09 04:43 ./source/n/ipw2100-fw/ipw2100-fw-1.3.tar.bz2 +-rwxr-xr-x 1 root root 2935 2009-05-19 20:05 ./source/n/ipw2100-fw/ipw2100-fw.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/ipw2200-fw +-rw-r--r-- 1 root root 174695 2008-03-10 20:39 ./source/n/ipw2200-fw/ipw2200-fw-3.0.tar.bz2 +-rwxr-xr-x 1 root root 2801 2009-05-19 20:05 ./source/n/ipw2200-fw/ipw2200-fw.SlackBuild +drwxr-xr-x 2 root root 4096 2009-07-30 20:54 ./source/n/irssi +-rw-r--r-- 1 root root 264 2009-07-29 00:34 ./source/n/irssi/doinst.sh.gz +-rw-r--r-- 1 root root 370 2009-07-30 20:54 ./source/n/irssi/irsi-0.8.14.manpage_fix.diff.gz +-rw-r--r-- 1 root root 944708 2009-07-29 00:13 ./source/n/irssi/irssi-0.8.14.tar.bz2 +-rw-r--r-- 1 root root 197 2009-07-29 00:12 ./source/n/irssi/irssi-0.8.14.tar.bz2.sig +-rwxr-xr-x 1 root root 3989 2009-07-30 20:54 ./source/n/irssi/irssi.SlackBuild +-rw-r--r-- 1 root root 789 2003-12-13 20:28 ./source/n/irssi/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 23:54 ./source/n/iw +-rw-r--r-- 1 root root 33326 2009-06-12 23:54 ./source/n/iw/iw-0.9.14.tar.bz2 +-rwxr-xr-x 1 root root 2488 2009-06-12 23:54 ./source/n/iw/iw.SlackBuild +-rw-r--r-- 1 root root 132 2009-04-01 01:22 ./source/n/iw/iw.info +-rw-r--r-- 1 root root 883 2009-04-01 01:20 ./source/n/iw/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-13 03:20 ./source/n/iwlwifi-3945-ucode +-rw-r--r-- 1 root root 65335 2008-10-21 17:38 ./source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode-15.28.1.8.tar.bz2 +-rw-r--r-- 1 root root 65524 2009-06-13 00:05 ./source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode-15.32.2.9.tar.bz2 +-rwxr-xr-x 1 root root 2043 2009-06-13 03:22 ./source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode.SlackBuild +-rw-r--r-- 1 root root 987 2008-10-24 03:04 ./source/n/iwlwifi-3945-ucode/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-15 03:38 ./source/n/iwlwifi-4965-ucode +-rw-r--r-- 1 root root 79274 2008-07-04 01:33 ./source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode-228.57.1.21.tar.bz2 +-rw-r--r-- 1 root root 79368 2009-07-09 21:16 ./source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode-228.61.2.24.tar.bz2 +-rwxr-xr-x 1 root root 2043 2009-05-08 02:59 ./source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode.SlackBuild +-rw-r--r-- 1 root root 987 2008-10-24 03:09 ./source/n/iwlwifi-4965-ucode/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-13 03:27 ./source/n/iwlwifi-5000-ucode +-rw-r--r-- 1 root root 147606 2008-10-06 17:05 ./source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode-5.4.A.11.tar.bz2 +-rw-r--r-- 1 root root 152530 2009-06-13 00:05 ./source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode-8.24.2.12.tar.bz2 +-rwxr-xr-x 1 root root 2037 2009-06-13 03:29 ./source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode.SlackBuild +-rw-r--r-- 1 root root 981 2008-10-24 03:10 ./source/n/iwlwifi-5000-ucode/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-13 03:34 ./source/n/iwlwifi-5150-ucode +-rw-r--r-- 1 root root 144943 2009-06-13 00:05 ./source/n/iwlwifi-5150-ucode/iwlwifi-5150-ucode-8.24.2.2.tar.bz2 +-rwxr-xr-x 1 root root 2037 2009-06-13 03:34 ./source/n/iwlwifi-5150-ucode/iwlwifi-5150-ucode.SlackBuild +-rw-r--r-- 1 root root 978 2009-06-13 03:35 ./source/n/iwlwifi-5150-ucode/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-12 23:14 ./source/n/lftp +-rw-r--r-- 1 root root 263 2009-05-31 06:11 ./source/n/lftp/doinst.sh.gz +-rw-r--r-- 1 root root 1490470 2009-05-15 06:44 ./source/n/lftp/lftp-3.7.14.tar.bz2 +-rwxr-xr-x 1 root root 3071 2009-06-12 22:11 ./source/n/lftp/lftp.SlackBuild +-rw-r--r-- 1 root root 1037 2002-04-06 20:20 ./source/n/lftp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/libassuan +-rw-r--r-- 1 root root 297123 2007-12-12 16:15 ./source/n/libassuan/libassuan-1.0.4.tar.bz2 +-rw-r--r-- 1 root root 152 2007-12-12 16:15 ./source/n/libassuan/libassuan-1.0.4.tar.bz2.sig +-rwxr-xr-x 1 root root 2747 2009-05-19 20:05 ./source/n/libassuan/libassuan.SlackBuild +-rw-r--r-- 1 root root 712 2007-03-15 20:46 ./source/n/libassuan/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/libgcrypt +-rw-r--r-- 1 root root 1143139 2009-03-23 15:11 ./source/n/libgcrypt/libgcrypt-1.4.4.tar.bz2 +-rwxr-xr-x 1 root root 2840 2009-05-19 20:05 ./source/n/libgcrypt/libgcrypt.SlackBuild +-rw-r--r-- 1 root root 705 2007-03-15 20:47 ./source/n/libgcrypt/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/libgpg-error +-rw-r--r-- 1 root root 403751 2009-01-13 04:56 ./source/n/libgpg-error/libgpg-error-1.7.tar.bz2 +-rwxr-xr-x 1 root root 2716 2009-05-19 20:05 ./source/n/libgpg-error/libgpg-error.SlackBuild +-rw-r--r-- 1 root root 856 2007-03-15 20:47 ./source/n/libgpg-error/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-04 06:52 ./source/n/libksba +-rw-r--r-- 1 root root 569181 2009-06-18 02:20 ./source/n/libksba/libksba-1.0.6.tar.bz2 +-rwxr-xr-x 1 root root 2786 2009-07-15 01:45 ./source/n/libksba/libksba.SlackBuild +-rw-r--r-- 1 root root 790 2007-03-15 20:47 ./source/n/libksba/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/links +-rw-r--r-- 1 root root 3832115 2008-09-29 15:15 ./source/n/links/links-2.2.tar.bz2 +-rwxr-xr-x 1 root root 2963 2009-05-19 20:05 ./source/n/links/links.SlackBuild +-rw-r--r-- 1 root root 902 2003-08-19 20:03 ./source/n/links/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/lynx +-rwxr-xr-x 1 root root 3810 2009-05-23 00:41 ./source/n/lynx/lynx.SlackBuild +-rw-r--r-- 1 root root 305 2002-02-27 07:24 ./source/n/lynx/lynx.cfg.diff.gz +-rw-r--r-- 1 root root 514 2007-02-10 20:13 ./source/n/lynx/lynx.path.diff.gz +-rw-r--r-- 1 root root 2290787 2007-05-10 00:29 ./source/n/lynx/lynx2.8.6rel.5.tar.bz2 +-rw-r--r-- 1 root root 953 2002-02-27 06:50 ./source/n/lynx/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-10 23:26 ./source/n/mailx +-rw-r--r-- 1 root root 281 2006-09-20 05:36 ./source/n/mailx/doinst.sh.gz +-rw-r--r-- 1 root root 271482 2008-07-28 22:39 ./source/n/mailx/mailx-12.4.tar.bz2 +-rwxr-xr-x 1 root root 3124 2009-08-11 01:02 ./source/n/mailx/mailx.SlackBuild +-rw-r--r-- 1 root root 1023 2008-04-11 02:52 ./source/n/mailx/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/mcabber +-rw-r--r-- 1 root root 492360 2008-10-09 20:18 ./source/n/mcabber/mcabber-0.9.9.tar.bz2 +-rwxr-xr-x 1 root root 3156 2009-05-23 00:41 ./source/n/mcabber/mcabber.SlackBuild +-rw-r--r-- 1 root root 876 2007-06-14 00:35 ./source/n/mcabber/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/metamail +-rw-r--r-- 1 root root 125480 1994-02-18 21:07 ./source/n/metamail/metamail-2.7.tar.xz +-rwxr-xr-x 1 root root 4198 2009-05-23 00:41 ./source/n/metamail/metamail.SlackBuild +-rw-r--r-- 1 root root 20532 2009-04-23 21:04 ./source/n/metamail/metamail.automake.diff.xz +-rw-r--r-- 1 root root 201660 2006-07-19 03:47 ./source/n/metamail/metamail_2.7-52.diff.xz +-rw-r--r-- 1 root root 927 2002-03-23 23:50 ./source/n/metamail/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/mtr +-rw-r--r-- 1 root root 362 2008-07-24 17:59 ./source/n/mtr/mtr-0.73.configure.error.diff.gz +-rw-r--r-- 1 root root 460708 2008-04-07 16:32 ./source/n/mtr/mtr-0.73.tar.bz2 +-rwxr-xr-x 1 root root 2840 2009-05-23 00:41 ./source/n/mtr/mtr.SlackBuild +-rw-r--r-- 1 root root 779 2007-06-04 22:06 ./source/n/mtr/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/mutt +-rw-r--r-- 1 root root 264 2002-06-01 05:12 ./source/n/mutt/doinst.sh.gz +-rw-r--r-- 1 root root 1782828 2007-05-27 00:59 ./source/n/mutt/mutt-1.4.2.3.tar.bz2 +-rwxr-xr-x 1 root root 2897 2009-05-23 00:41 ./source/n/mutt/mutt.SlackBuild +-rw-r--r-- 1 root root 866 2008-02-11 03:44 ./source/n/mutt/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/nc +-rw-r--r-- 1 root root 10439 2002-03-14 16:47 ./source/n/nc/nc-110-21.diff.gz +-rwxr-xr-x 1 root root 2370 2009-05-19 20:05 ./source/n/nc/nc.SlackBuild +-rw-r--r-- 1 root root 641 2002-05-28 21:39 ./source/n/nc/nc.diff.gz +-rw-r--r-- 1 root root 75267 2002-05-28 18:18 ./source/n/nc/nc110.tgz +-rw-r--r-- 1 root root 1081 2002-05-28 21:54 ./source/n/nc/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/ncftp +-rw-r--r-- 1 root root 423140 2008-09-29 15:15 ./source/n/ncftp/ncftp-3.2.2-src.tar.bz2 +-rwxr-xr-x 1 root root 2869 2009-05-23 00:41 ./source/n/ncftp/ncftp.SlackBuild +-rw-r--r-- 1 root root 793 2008-02-11 03:44 ./source/n/ncftp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/net-snmp +-rw-r--r-- 1 root root 344 2007-06-19 03:37 ./source/n/net-snmp/doinst.sh.gz +-rw-r--r-- 1 root root 3734307 2008-10-31 16:17 ./source/n/net-snmp/net-snmp-5.4.2.1.tar.bz2 +-rwxr-xr-x 1 root root 4235 2009-05-23 00:41 ./source/n/net-snmp/net-snmp.SlackBuild +-rw-r--r-- 1 root root 895 2007-06-19 03:36 ./source/n/net-snmp/rc.snmpd +-rw-r--r-- 1 root root 910 2007-04-16 17:27 ./source/n/net-snmp/slack-desc +-rw-r--r-- 1 root root 4909 2007-04-16 18:39 ./source/n/net-snmp/snmpd.conf.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/net-tools +-rw-r--r-- 1 root root 1334 2007-04-29 20:01 ./source/n/net-tools/ipmask.8 +-rw-r--r-- 1 root root 2216 1994-08-15 19:16 ./source/n/net-tools/ipmask.c +-rw-r--r-- 1 root root 198520 2001-04-15 14:21 ./source/n/net-tools/net-tools-1.60.tar.bz2 +-rwxr-xr-x 1 root root 3806 2009-05-19 20:05 ./source/n/net-tools/net-tools.SlackBuild +-rw-r--r-- 1 root root 650 2001-03-22 05:23 ./source/n/net-tools/net-tools.diff.gz +-rw-r--r-- 1 root root 173444 2007-12-02 05:47 ./source/n/net-tools/net-tools_1.60-19.diff.gz +-rw-r--r-- 1 root root 909 2007-04-29 19:40 ./source/n/net-tools/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-06 22:35 ./source/n/netatalk +-rw-r--r-- 1 root root 0 2003-02-02 04:37 ./source/n/netatalk/afppasswd +-rw-r--r-- 1 root root 334 2009-05-31 04:29 ./source/n/netatalk/doinst.sh.gz +-rw-r--r-- 1 root root 320 2009-05-31 04:20 ./source/n/netatalk/netatalk-2.0.4-afpdconf.diff.gz +-rw-r--r-- 1 root root 486 2009-05-31 04:12 ./source/n/netatalk/netatalk-2.0.4-without_xfs.diff.gz +-rw-r--r-- 1 root root 771008 2009-05-30 20:22 ./source/n/netatalk/netatalk-2.0.4.tar.xz +-rwxr-xr-x 1 root root 4317 2009-08-11 00:20 ./source/n/netatalk/netatalk.SlackBuild +-rw-r--r-- 1 root root 292 2004-10-28 18:43 ./source/n/netatalk/netatalk.etc2ps.diff.gz +-rw-r--r-- 1 root root 1032 2003-02-02 03:47 ./source/n/netatalk/rc.atalk.new +-rw-r--r-- 1 root root 1040 2003-02-02 00:09 ./source/n/netatalk/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/netdate +-rwxr-xr-x 1 root root 2146 2009-05-19 20:05 ./source/n/netdate/netdate.SlackBuild +-rw-r--r-- 1 root root 3766 1999-08-04 23:51 ./source/n/netdate/netdate.diff.gz +-rw-r--r-- 1 root root 164 2001-02-26 02:37 ./source/n/netdate/netdate.diff2.gz +-rw-r--r-- 1 root root 6755 1996-08-15 02:58 ./source/n/netdate/netdate.tar.gz +-rw-r--r-- 1 root root 1107 2007-04-30 02:16 ./source/n/netdate/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/netkit-bootparamd +-rw-r--r-- 1 root root 13934 2000-07-31 02:57 ./source/n/netkit-bootparamd/netkit-bootparamd-0.17.tar.gz +-rwxr-xr-x 1 root root 2173 2009-05-23 00:41 ./source/n/netkit-bootparamd/netkit-bootparamd.SlackBuild +-rw-r--r-- 1 root root 986 2007-04-30 01:02 ./source/n/netkit-bootparamd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/netkit-ftp +-rw-r--r-- 1 root root 53934 2000-07-31 03:01 ./source/n/netkit-ftp/netkit-ftp-0.17.tar.gz +-rwxr-xr-x 1 root root 2012 2009-05-23 00:41 ./source/n/netkit-ftp/netkit-ftp.SlackBuild +-rw-r--r-- 1 root root 905 2007-04-30 01:21 ./source/n/netkit-ftp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/netkit-ntalk +-rw-r--r-- 1 root root 842 2000-06-08 02:04 ./source/n/netkit-ntalk/netkit-ntalk-0.11.diff.gz +-rw-r--r-- 1 root root 30632 2000-06-08 02:04 ./source/n/netkit-ntalk/netkit-ntalk-0.11.tar.gz +-rw-r--r-- 1 root root 230 2001-02-26 02:46 ./source/n/netkit-ntalk/netkit-ntalk-0.17.diff.gz +-rw-r--r-- 1 root root 37396 2000-07-31 03:02 ./source/n/netkit-ntalk/netkit-ntalk-0.17.tar.gz +-rwxr-xr-x 1 root root 2908 2009-05-23 00:41 ./source/n/netkit-ntalk/netkit-ntalk.SlackBuild +-rw-r--r-- 1 root root 551 2004-11-04 03:51 ./source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch.gz +-rw-r--r-- 1 root root 941 2007-05-07 04:09 ./source/n/netkit-ntalk/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/netkit-routed +-rw-r--r-- 1 root root 305 2001-02-26 02:15 ./source/n/netkit-routed/netkit-routed-0.17.diff.gz +-rw-r--r-- 1 root root 36435 2000-07-31 03:02 ./source/n/netkit-routed/netkit-routed-0.17.tar.gz +-rwxr-xr-x 1 root root 2396 2009-05-19 20:05 ./source/n/netkit-routed/netkit-routed.SlackBuild +-rw-r--r-- 1 root root 8075 2000-12-26 15:14 ./source/n/netkit-routed/routed.18.candidate.final.patch.gz +-rw-r--r-- 1 root root 1100 2007-04-29 23:36 ./source/n/netkit-routed/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/netkit-rsh +-rw-r--r-- 1 root root 58268 2000-07-31 03:02 ./source/n/netkit-rsh/netkit-rsh-0.17.tar.gz +-rwxr-xr-x 1 root root 2810 2009-05-19 20:05 ./source/n/netkit-rsh/netkit-rsh.SlackBuild +-rw-r--r-- 1 root root 884 2007-04-30 00:06 ./source/n/netkit-rsh/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/netkit-rusers +-rw-r--r-- 1 root root 221 2001-02-26 02:17 ./source/n/netkit-rusers/netkit-rusers-0.17.diff.gz +-rw-r--r-- 1 root root 22063 2000-07-31 03:03 ./source/n/netkit-rusers/netkit-rusers-0.17.tar.gz +-rwxr-xr-x 1 root root 2379 2009-05-19 20:05 ./source/n/netkit-rusers/netkit-rusers.SlackBuild +-rw-r--r-- 1 root root 1160 2007-04-30 02:04 ./source/n/netkit-rusers/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/netkit-rwall +-rw-r--r-- 1 root root 11861 2000-07-31 03:03 ./source/n/netkit-rwall/netkit-rwall-0.17.tar.gz +-rwxr-xr-x 1 root root 2199 2009-05-19 20:05 ./source/n/netkit-rwall/netkit-rwall.SlackBuild +-rw-r--r-- 1 root root 925 2007-04-30 02:12 ./source/n/netkit-rwall/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/netkit-rwho +-rw-r--r-- 1 root root 159 2001-02-26 02:19 ./source/n/netkit-rwho/netkit-rwho-0.17.diff.gz +-rw-r--r-- 1 root root 20610 2000-07-31 03:03 ./source/n/netkit-rwho/netkit-rwho-0.17.tar.gz +-rwxr-xr-x 1 root root 2461 2009-05-19 20:05 ./source/n/netkit-rwho/netkit-rwho.SlackBuild +-rw-r--r-- 1 root root 225 2008-12-14 22:21 ./source/n/netkit-rwho/rwhod_getloadavg.diff.gz +-rw-r--r-- 1 root root 1153 2007-04-30 02:42 ./source/n/netkit-rwho/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/netkit-timed +-rw-r--r-- 1 root root 243 2001-01-07 21:30 ./source/n/netkit-timed/netkit-timed-0.17.diff.gz +-rw-r--r-- 1 root root 48655 2000-07-31 03:04 ./source/n/netkit-timed/netkit-timed-0.17.tar.gz +-rwxr-xr-x 1 root root 2261 2009-05-19 20:05 ./source/n/netkit-timed/netkit-timed.SlackBuild +-rw-r--r-- 1 root root 870 2007-04-30 02:22 ./source/n/netkit-timed/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 21:29 ./source/n/netpipes +-rw-r--r-- 1 root root 365 1999-02-07 16:28 ./source/n/netpipes/_netpipes.tar.gz +-rw-r--r-- 1 root root 75276 1999-01-30 17:09 ./source/n/netpipes/netpipes-4.2-export.tar.gz +-rwxr-xr-x 1 root root 2234 2009-05-19 20:05 ./source/n/netpipes/netpipes.SlackBuild +-rw-r--r-- 1 root root 1019 2008-02-11 03:44 ./source/n/netpipes/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/netwatch +-rw-r--r-- 1 root root 187936 2009-03-04 08:01 ./source/n/netwatch/netwatch-1.3.0-1.tar.gz +-rwxr-xr-x 1 root root 3105 2009-05-23 00:41 ./source/n/netwatch/netwatch.SlackBuild +-rw-r--r-- 1 root root 491 2009-03-04 08:01 ./source/n/netwatch/netwatch.makefile.diff.gz +-rw-r--r-- 1 root root 233 2009-03-04 08:01 ./source/n/netwatch/netwatch.phonemyself.diff.gz +-rw-r--r-- 1 root root 765 2009-03-04 08:01 ./source/n/netwatch/slack-desc +drwxr-xr-x 4 root root 4096 2008-12-06 21:40 ./source/n/network-scripts +-rw-r--r-- 1 root root 3038 2005-05-20 20:48 ./source/n/network-scripts/README.rc.inet1 +-rw-r--r-- 1 root root 485 2007-04-26 01:50 ./source/n/network-scripts/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2009-08-05 18:51 ./source/n/network-scripts/manpages +-rw-r--r-- 1 root root 3299 2009-08-05 18:51 ./source/n/network-scripts/manpages/rc.inet1.8 +-rw-r--r-- 1 root root 5525 2009-08-05 18:51 ./source/n/network-scripts/manpages/rc.inet1.conf.5 +-rwxr-xr-x 1 root root 2468 2009-08-25 04:38 ./source/n/network-scripts/network-scripts.SlackBuild +drwxr-xr-x 2 root root 4096 2009-08-05 18:51 ./source/n/network-scripts/scripts +-rw-r--r-- 1 root root 21 1999-01-28 01:15 ./source/n/network-scripts/scripts/HOSTNAME +-rw-r--r-- 1 root root 27 1994-07-07 15:39 ./source/n/network-scripts/scripts/host.conf +-rw-r--r-- 1 root root 627 2003-08-27 01:07 ./source/n/network-scripts/scripts/hosts +-rw-r--r-- 1 root root 293 1993-11-26 01:54 ./source/n/network-scripts/scripts/hosts.allow +-rw-r--r-- 1 root root 296 1993-11-26 01:54 ./source/n/network-scripts/scripts/hosts.deny +-rw-r--r-- 1 root root 320 1998-02-09 01:57 ./source/n/network-scripts/scripts/hosts.equiv +-rw-r--r-- 1 root root 20016 2008-12-07 07:34 ./source/n/network-scripts/scripts/netconfig +-rw-r--r-- 1 root root 233 1999-10-07 05:21 ./source/n/network-scripts/scripts/networks +-rw-r--r-- 1 root root 24 1998-02-09 02:21 ./source/n/network-scripts/scripts/nntpserver +-rw-r--r-- 1 root root 5748 2002-02-10 09:01 ./source/n/network-scripts/scripts/protocols +-rw-r--r-- 1 root root 9579 2009-08-25 04:37 ./source/n/network-scripts/scripts/rc.inet1 +-rw-r--r-- 1 root root 4752 2009-08-25 04:37 ./source/n/network-scripts/scripts/rc.inet1.conf +-rw-r--r-- 1 root root 4847 2007-09-17 22:07 ./source/n/network-scripts/scripts/rc.inet2 +-rw-r--r-- 1 root root 2684 2008-12-03 22:58 ./source/n/network-scripts/scripts/rc.ip_forward +-rw-r--r-- 1 root root 19 1999-01-28 01:15 ./source/n/network-scripts/scripts/resolv.conf +-rw-r--r-- 1 root root 349 2003-02-18 23:53 ./source/n/network-scripts/scripts/setup.netconfig +-rw-r--r-- 1 root root 1049 2008-02-11 03:44 ./source/n/network-scripts/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/netwrite +-rw-r--r-- 1 root root 266 2001-02-26 02:24 ./source/n/netwrite/netwrite-0.17.diff.gz +-rw-r--r-- 1 root root 16110 2000-07-31 03:04 ./source/n/netwrite/netwrite-0.17.tar.gz +-rwxr-xr-x 1 root root 2492 2009-05-19 20:05 ./source/n/netwrite/netwrite.SlackBuild +-rw-r--r-- 1 root root 1019 2007-04-30 02:34 ./source/n/netwrite/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/newspost +-rw-r--r-- 1 root root 61412 2003-05-05 14:28 ./source/n/newspost/newspost-2.1.1.tar.gz +-rwxr-xr-x 1 root root 2139 2009-05-19 20:05 ./source/n/newspost/newspost.SlackBuild +-rw-r--r-- 1 root root 970 2003-07-18 22:21 ./source/n/newspost/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/nfs-utils +-rw-r--r-- 1 root root 1177 2007-05-17 23:17 ./source/n/nfs-utils/_nfs-utils.tar.gz +-rw-r--r-- 1 root root 588368 2008-10-17 15:08 ./source/n/nfs-utils/nfs-utils-1.1.4.tar.bz2 +-rw-r--r-- 1 root root 248 2008-10-17 15:08 ./source/n/nfs-utils/nfs-utils-1.1.4.tar.bz2.sign +-rwxr-xr-x 1 root root 4767 2009-05-19 20:05 ./source/n/nfs-utils/nfs-utils.SlackBuild +-rw-r--r-- 1 root root 255 2008-03-31 22:19 ./source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff.gz +-rw-r--r-- 1 root root 2457 2008-03-31 22:23 ./source/n/nfs-utils/rc.nfsd +-rw-r--r-- 1 root root 782 2003-02-02 05:38 ./source/n/nfs-utils/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-17 05:00 ./source/n/nmap +-rw-r--r-- 1 root root 7987808 2009-07-16 16:04 ./source/n/nmap/nmap-5.00.tar.xz +-rwxr-xr-x 1 root root 4166 2009-07-17 05:03 ./source/n/nmap/nmap.SlackBuild +-rw-r--r-- 1 root root 302 2009-04-30 22:29 ./source/n/nmap/nmap.ndiff.mandir.diff.gz +-rw-r--r-- 1 root root 1107 2002-03-29 08:29 ./source/n/nmap/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/nn +-rw-r--r-- 1 root root 4844 2001-07-02 05:31 ./source/n/nn/NNTP.gz +-rw-r--r-- 1 root root 315 2006-06-27 21:55 ./source/n/nn/doinst.sh.gz +-rw-r--r-- 1 root root 352656 2005-11-18 13:08 ./source/n/nn/nn-6.7.3.tar.bz2 +-rwxr-xr-x 1 root root 3608 2009-05-23 00:41 ./source/n/nn/nn.SlackBuild +-rw-r--r-- 1 root root 287 2006-06-27 22:14 ./source/n/nn/nn.badnntphost.diff.gz +-rw-r--r-- 1 root root 1349 2009-03-17 00:18 ./source/n/nn/nn.destdir.diff.gz +-rw-r--r-- 1 root root 905 2006-06-27 21:33 ./source/n/nn/nn.diff.gz +-rw-r--r-- 1 root root 53 2006-06-27 21:53 ./source/n/nn/nntpserver.gz +-rw-r--r-- 1 root root 897 2002-03-29 01:23 ./source/n/nn/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-03 21:06 ./source/n/ntp +-rw-r--r-- 1 root root 314 2007-05-07 04:51 ./source/n/ntp/doinst.sh.gz +-rw-r--r-- 1 root root 2144620 2009-05-18 09:53 ./source/n/ntp/ntp-4.2.4p7.tar.xz +-rwxr-xr-x 1 root root 3454 2009-06-03 21:06 ./source/n/ntp/ntp.SlackBuild +-rw-r--r-- 1 root root 1664 2007-05-07 04:46 ./source/n/ntp/ntp.conf +-rw-r--r-- 1 root root 22 1999-10-07 19:50 ./source/n/ntp/ntp.keys +-rw-r--r-- 1 root root 749 2008-11-22 06:11 ./source/n/ntp/rc.ntpd +-rw-r--r-- 1 root root 986 2002-02-27 23:02 ./source/n/ntp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/obexftp +-rw-r--r-- 1 root root 402552 2009-02-17 18:54 ./source/n/obexftp/obexftp-0.23.tar.bz2 +-rwxr-xr-x 1 root root 4208 2009-05-19 20:05 ./source/n/obexftp/obexftp.SlackBuild +-rw-r--r-- 1 root root 924 2007-05-18 03:09 ./source/n/obexftp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/openldap-client +-rw-r--r-- 1 root root 275 2006-01-17 21:18 ./source/n/openldap-client/doinst.sh.gz +-rw-r--r-- 1 root root 2957466 2008-07-17 04:35 ./source/n/openldap-client/openldap-2.3.43.tar.bz2 +-rwxr-xr-x 1 root root 3857 2009-05-19 20:05 ./source/n/openldap-client/openldap-client.SlackBuild +-rw-r--r-- 1 root root 1027 2006-01-18 01:55 ./source/n/openldap-client/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/openobex +-rw-r--r-- 1 root root 254656 2006-06-14 12:04 ./source/n/openobex/openobex-1.3.tar.bz2 +-rwxr-xr-x 1 root root 3326 2009-05-19 20:05 ./source/n/openobex/openobex.SlackBuild +-rw-r--r-- 1 root root 997 2007-05-12 23:06 ./source/n/openobex/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/n/openssh +-rw-r--r-- 1 root root 470 2006-09-28 21:11 ./source/n/openssh/doinst.sh.gz +-rw-r--r-- 1 root root 816807 2009-02-23 00:26 ./source/n/openssh/openssh-5.2p1.tar.bz2 +-rwxr-xr-x 1 root root 4419 2009-05-23 00:41 ./source/n/openssh/openssh.SlackBuild +-rw-r--r-- 1 root root 1477 2007-04-02 00:05 ./source/n/openssh/rc.sshd +-rw-r--r-- 1 root root 1134 2002-03-07 23:03 ./source/n/openssh/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/openssl +-rw-r--r-- 1 root root 1727 2007-06-13 04:45 ./source/n/openssl/certwatch.gz +-rw-r--r-- 1 root root 281 2007-06-13 17:20 ./source/n/openssl/doinst.sh-openssl-solibs.gz +-rw-r--r-- 1 root root 336 2007-06-13 04:52 ./source/n/openssl/doinst.sh-openssl.gz +-rw-r--r-- 1 root root 3058579 2009-03-25 12:21 ./source/n/openssl/openssl-0.9.8k.tar.bz2 +-rwxr-xr-x 1 root root 5330 2009-05-19 20:05 ./source/n/openssl/openssl.SlackBuild +-rw-r--r-- 1 root root 362 2009-04-16 09:10 ./source/n/openssl/openssl.no-extssl.diff.gz +-rw-r--r-- 1 root root 501 2006-01-17 23:28 ./source/n/openssl/openssl.optsx86.diff.gz +-rw-r--r-- 1 root root 283 2005-10-13 03:02 ./source/n/openssl/openssl.soname.diff.gz +-rw-r--r-- 1 root root 1019 2002-04-06 20:23 ./source/n/openssl/slack-desc.openssl +-rw-r--r-- 1 root root 1143 2002-03-23 22:11 ./source/n/openssl/slack-desc.openssl-solibs +drwxr-xr-x 2 root root 4096 2009-05-23 02:26 ./source/n/openvpn +-rw-r--r-- 1 root root 1375 2007-06-10 01:25 ./source/n/openvpn/README +-rw-r--r-- 1 root root 669076 2006-10-01 12:44 ./source/n/openvpn/openvpn-2.0.9.tar.gz +-rw-r--r-- 1 root root 189 2006-10-01 12:48 ./source/n/openvpn/openvpn-2.0.9.tar.gz.asc +-rwxr-xr-x 1 root root 3987 2009-05-19 20:05 ./source/n/openvpn/openvpn.SlackBuild +-rw-r--r-- 1 root root 6942 2007-06-12 03:48 ./source/n/openvpn/openvpn.conf.sample +-rw-r--r-- 1 root root 888 2007-06-10 01:23 ./source/n/openvpn/slack-desc +drwxr-xr-x 4 root root 4096 2009-07-11 21:00 ./source/n/php +drwxr-xr-x 2 root root 4096 2009-07-11 21:00 ./source/n/php/channels +-rw-r--r-- 1 root root 1470 2009-04-04 22:17 ./source/n/php/channels/pear.php.net.reg +-rw-r--r-- 1 root root 1576 2009-04-04 22:17 ./source/n/php/channels/pecl.php.net.reg +-rw-r--r-- 1 root root 151 2007-05-19 01:27 ./source/n/php/doinst.sh.gz +-rw-r--r-- 1 root root 903 2007-09-08 20:16 ./source/n/php/mod_php.conf.example +drwxr-xr-x 2 root root 4096 2008-05-07 05:21 ./source/n/php/pear +-rw-r--r-- 1 root root 8808759 2009-06-17 12:43 ./source/n/php/php-5.2.10.tar.bz2 +-rwxr-xr-x 1 root root 8793 2009-07-11 21:17 ./source/n/php/php.SlackBuild +-rw-r--r-- 1 root root 1115 2007-06-29 04:43 ./source/n/php/php.ini.diff.gz +-rw-r--r-- 1 root root 1120 2007-06-29 05:15 ./source/n/php/php.recommended.ini.diff.gz +-rw-r--r-- 1 root root 830 2005-12-09 05:18 ./source/n/php/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/pidentd +-rw-r--r-- 1 root root 296 2002-04-05 23:57 ./source/n/pidentd/doinst.sh.gz +-rw-r--r-- 1 root root 145505 2005-10-18 14:06 ./source/n/pidentd/pidentd-3.0.19.tar.gz +-rw-r--r-- 1 root root 185 2005-10-18 14:06 ./source/n/pidentd/pidentd-3.0.19.tar.gz.sig +-rwxr-xr-x 1 root root 2837 2009-05-19 20:05 ./source/n/pidentd/pidentd.SlackBuild +-rw-r--r-- 1 root root 893 2004-06-13 20:28 ./source/n/pidentd/pidentd.conf.diff.gz +-rw-r--r-- 1 root root 1036 2002-04-06 00:20 ./source/n/pidentd/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-18 17:35 ./source/n/pinentry +-rw-r--r-- 1 root root 382981 2009-06-19 01:07 ./source/n/pinentry/pinentry-0.7.6.tar.bz2 +-rwxr-xr-x 1 root root 3453 2009-08-18 18:44 ./source/n/pinentry/pinentry.SlackBuild +-rw-r--r-- 1 root root 781 2007-03-15 20:47 ./source/n/pinentry/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/popa3d +-rw-r--r-- 1 root root 164 2006-09-30 23:56 ./source/n/popa3d/doinst.sh.gz +-rw-r--r-- 1 root root 32848 2006-05-23 00:47 ./source/n/popa3d/popa3d-1.0.2.tar.gz +-rw-r--r-- 1 root root 331 2006-05-23 00:47 ./source/n/popa3d/popa3d-1.0.2.tar.gz.sign +-rwxr-xr-x 1 root root 2520 2009-05-19 20:05 ./source/n/popa3d/popa3d.SlackBuild +-rw-r--r-- 1 root root 769 2006-03-12 22:23 ./source/n/popa3d/popa3d.diff.gz +-rw-r--r-- 1 root root 1002 2004-02-21 20:45 ./source/n/popa3d/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/portmap +-rw-r--r-- 1 root root 271 2006-09-21 03:15 ./source/n/portmap/doinst.sh.gz +-rw-r--r-- 1 root root 20092 2007-05-11 03:06 ./source/n/portmap/portmap-6.0.tar.bz2 +-rwxr-xr-x 1 root root 2876 2009-05-19 20:05 ./source/n/portmap/portmap.SlackBuild +-rw-r--r-- 1 root root 217 2007-05-17 22:45 ./source/n/portmap/portmap.lwrap.needs.lnsl.diff.gz +-rw-r--r-- 1 root root 610 2007-05-17 22:51 ./source/n/portmap/rc.rpc.gz +-rw-r--r-- 1 root root 987 2002-03-22 03:05 ./source/n/portmap/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/ppp +-rw-r--r-- 1 root root 324 2004-02-23 06:39 ./source/n/ppp/doinst.sh.gz +-rw-r--r-- 1 root root 3620 1999-09-30 05:49 ./source/n/ppp/options.new.gz +-rw-r--r-- 1 root root 555916 2006-06-28 00:30 ./source/n/ppp/ppp-2.4.4.tar.bz2 +-rwxr-xr-x 1 root root 5071 2009-05-19 20:05 ./source/n/ppp/ppp.SlackBuild +-rw-r--r-- 1 root root 401 2004-02-23 05:37 ./source/n/ppp/ppp.slack.diff.gz +-rw-r--r-- 1 root root 348 2002-05-20 02:06 ./source/n/ppp/pppsetup-1.98.backupfiles.diff.gz +-rw-r--r-- 1 root root 1303 2002-05-20 01:53 ./source/n/ppp/pppsetup-1.98.moredevs.diff.gz +-rw-r--r-- 1 root root 270 2000-10-21 00:47 ./source/n/ppp/pppsetup-1.98.pppoff.diff.gz +-rw-r--r-- 1 root root 11656 2000-06-18 21:01 ./source/n/ppp/pppsetup-1.98.slack.diff.gz +-rw-r--r-- 1 root root 78697 1998-03-04 21:07 ./source/n/ppp/pppsetup-1.98.tar.gz +-rw-r--r-- 1 root root 812 2005-07-25 05:56 ./source/n/ppp/radius.msdict.gz +-rw-r--r-- 1 root root 119071 2002-02-03 13:59 ./source/n/ppp/radiusclient-0.3.2.tar.bz2 +-rw-r--r-- 1 root root 372 2005-07-25 05:56 ./source/n/ppp/realms.gz +-rw-r--r-- 1 root root 129 2005-07-25 05:56 ./source/n/ppp/servers.gz +-rw-r--r-- 1 root root 905 2002-03-07 03:31 ./source/n/ppp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/procmail +-rw-r--r-- 1 root root 294 2001-08-21 22:22 ./source/n/procmail/_procmail.tar.gz +-rw-r--r-- 1 root root 226817 2001-09-11 05:10 ./source/n/procmail/procmail-3.22.tar.gz +-rw-r--r-- 1 root root 366 2001-09-11 05:10 ./source/n/procmail/procmail-3.22.tar.gz.sig +-rwxr-xr-x 1 root root 2665 2009-05-19 20:05 ./source/n/procmail/procmail.SlackBuild +-rw-r--r-- 1 root root 277 2006-09-19 04:10 ./source/n/procmail/procmail.lfs.diff.gz +-rw-r--r-- 1 root root 13073 2002-12-26 21:18 ./source/n/procmail/procmail_3.22-5.diff.gz +-rw-r--r-- 1 root root 1146 2002-04-06 20:25 ./source/n/procmail/slack-desc +drwxr-xr-x 3 root root 4096 2009-05-23 00:41 ./source/n/proftpd +-rw-r--r-- 1 root root 775 2006-11-28 21:19 ./source/n/proftpd/_proftpd.tar.gz +-rw-r--r-- 1 root root 306 2003-03-06 07:52 ./source/n/proftpd/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2001-02-26 07:35 ./source/n/proftpd/etc +-rw-r--r-- 1 root root 581 2001-02-26 07:31 ./source/n/proftpd/etc/ftpusers +-rw-r--r-- 1 root root 2046 2008-07-29 18:18 ./source/n/proftpd/etc/proftpd.conf +-rw-r--r-- 1 root root 2457498 2009-02-05 19:19 ./source/n/proftpd/proftpd-1.3.2.tar.bz2 +-rw-r--r-- 1 root root 174 2009-02-05 19:19 ./source/n/proftpd/proftpd-1.3.2.tar.bz2.asc +-rwxr-xr-x 1 root root 3647 2009-05-23 00:41 ./source/n/proftpd/proftpd.SlackBuild +-rw-r--r-- 1 root root 797 2004-09-18 22:48 ./source/n/proftpd/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/pssh +-rw-r--r-- 1 root root 37742 2007-04-11 22:42 ./source/n/pssh/pssh-1.3.1.tar.gz +-rwxr-xr-x 1 root root 2571 2009-05-19 20:05 ./source/n/pssh/pssh.SlackBuild +-rw-r--r-- 1 root root 943 2007-06-27 06:25 ./source/n/pssh/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/pth +-rw-r--r-- 1 root root 507518 2007-01-05 15:04 ./source/n/pth/pth-2.0.7.tar.bz2 +-rwxr-xr-x 1 root root 3228 2009-05-19 20:05 ./source/n/pth/pth.SlackBuild +-rw-r--r-- 1 root root 926 2007-03-15 20:48 ./source/n/pth/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/rdist +-rw-r--r-- 1 root root 240 2002-02-14 22:34 ./source/n/rdist/_rdist.tar.gz +-rw-r--r-- 1 root root 926 2006-08-12 21:24 ./source/n/rdist/rdist-6.1.5-bison.diff.gz +-rw-r--r-- 1 root root 12148 2008-10-27 20:26 ./source/n/rdist/rdist-6.1.5-cleanup.diff.gz +-rw-r--r-- 1 root root 230 2006-08-12 21:24 ./source/n/rdist/rdist-6.1.5-varargs.diff.gz +-rw-r--r-- 1 root root 1244 2001-04-03 17:56 ./source/n/rdist/rdist-6.1.5.diff.gz +-rw-r--r-- 1 root root 117861 2001-04-03 17:01 ./source/n/rdist/rdist-6.1.5.tar.gz +-rwxr-xr-x 1 root root 2520 2009-05-19 20:05 ./source/n/rdist/rdist.SlackBuild +-rw-r--r-- 1 root root 811 2008-02-11 03:44 ./source/n/rdist/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/rp-pppoe +-rw-r--r-- 1 root root 307 2005-09-03 17:27 ./source/n/rp-pppoe/doinst.sh.gz +-rw-r--r-- 1 root root 215288 2008-06-30 14:01 ./source/n/rp-pppoe/rp-pppoe-3.10.tar.gz +-rwxr-xr-x 1 root root 2574 2009-05-19 20:05 ./source/n/rp-pppoe/rp-pppoe.SlackBuild +-rw-r--r-- 1 root root 958 2002-04-15 04:13 ./source/n/rp-pppoe/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/rsync +-rw-r--r-- 1 root root 561172 2009-05-08 17:43 ./source/n/rsync/rsync-3.0.6.tar.xz +-rwxr-xr-x 1 root root 2680 2009-08-11 06:30 ./source/n/rsync/rsync.SlackBuild +-rw-r--r-- 1 root root 950 2008-02-11 03:44 ./source/n/rsync/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/rt61-firmware +-rw-r--r-- 1 root root 13937 2008-03-10 10:04 ./source/n/rt61-firmware/RT61_Firmware_V1.2.zip +-rwxr-xr-x 1 root root 1994 2009-05-19 20:05 ./source/n/rt61-firmware/rt61-firmware.SlackBuild +-rw-r--r-- 1 root root 737 2008-03-10 10:21 ./source/n/rt61-firmware/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/rt71w-firmware +-rw-r--r-- 1 root root 2679 2008-03-10 10:04 ./source/n/rt71w-firmware/RT71W_Firmware_V1.8.zip +-rwxr-xr-x 1 root root 1997 2009-05-19 20:05 ./source/n/rt71w-firmware/rt71w-firmware.SlackBuild +-rw-r--r-- 1 root root 752 2008-03-10 10:26 ./source/n/rt71w-firmware/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-26 02:06 ./source/n/samba +-rw-r--r-- 1 root root 374 2003-03-07 21:49 ./source/n/samba/doinst.sh.gz +-rw-r--r-- 1 root root 791 2003-10-01 04:12 ./source/n/samba/rc.samba +-rw-r--r-- 1 root root 10268584 2009-06-26 02:05 ./source/n/samba/samba-3.2.13.tar.xz +-rwxr-xr-x 1 root root 6466 2009-07-11 20:28 ./source/n/samba/samba.SlackBuild +-rw-r--r-- 1 root root 1011 2002-03-06 04:53 ./source/n/samba/slack-desc +-rw-r--r-- 1 root root 9672 2008-05-28 18:53 ./source/n/samba/smb.conf.default +-rw-r--r-- 1 root root 9684 2008-05-28 12:41 ./source/n/samba/smb.conf.default.orig +-rw-r--r-- 1 root root 523 2008-05-28 18:58 ./source/n/samba/smb.conf.diff.gz +drwxr-xr-x 2 root root 4096 2009-06-26 19:34 ./source/n/sendmail +-rw-r--r-- 1 root root 799 2008-04-12 05:48 ./source/n/sendmail/Build.gz +-rwxr-xr-x 1 root root 63 2008-11-26 21:58 ./source/n/sendmail/SlackBuild +-rwxr-xr-x 1 root root 5418 2009-06-26 19:59 ./source/n/sendmail/SlackBuild-sendmail +-rwxr-xr-x 1 root root 2104 2009-06-26 19:29 ./source/n/sendmail/SlackBuild-sendmail-cf +-rw-r--r-- 1 root root 4793 2009-06-26 19:34 ./source/n/sendmail/_sendmail.tar.gz +-rw-r--r-- 1 root root 224 2002-02-14 01:48 ./source/n/sendmail/linux.uucp.mc +-rw-r--r-- 1 root root 2742 2008-04-12 06:41 ./source/n/sendmail/sendmail-slackware-tls-sasl.mc +-rw-r--r-- 1 root root 2510 2008-04-12 07:06 ./source/n/sendmail/sendmail-slackware-tls.mc +-rw-r--r-- 1 root root 1825 2003-05-05 03:34 ./source/n/sendmail/sendmail-slackware.mc +-rw-r--r-- 1 root root 2069209 2008-05-03 16:56 ./source/n/sendmail/sendmail.8.14.3.tar.gz +-rw-r--r-- 1 root root 152 2008-05-03 16:56 ./source/n/sendmail/sendmail.8.14.3.tar.gz.sig +-rw-r--r-- 1 root root 429 2008-04-12 06:42 ./source/n/sendmail/site.config.m4 +-rw-r--r-- 1 root root 962 2002-06-01 20:17 ./source/n/sendmail/slack-desc.sendmail +-rw-r--r-- 1 root root 1050 2002-06-01 20:19 ./source/n/sendmail/slack-desc.sendmail-cf +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/slrn +-rw-r--r-- 1 root root 264 2008-10-25 19:10 ./source/n/slrn/doinst.sh.gz +-rw-r--r-- 1 root root 764 2008-11-11 20:39 ./source/n/slrn/slack-desc +-rw-r--r-- 1 root root 1040218 2008-10-25 19:16 ./source/n/slrn/slrn-0.9.9p1.tar.bz2 +-rwxr-xr-x 1 root root 3480 2009-05-19 20:05 ./source/n/slrn/slrn.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/snownews +-rw-r--r-- 1 root root 874 2009-05-17 03:56 ./source/n/snownews/slack-desc +-rw-r--r-- 1 root root 172814 2009-03-19 12:16 ./source/n/snownews/snownews-1.5.11.tar.gz +-rw-r--r-- 1 root root 194 2009-03-19 12:17 ./source/n/snownews/snownews-1.5.11.tar.gz.asc +-rwxr-xr-x 1 root root 2888 2009-07-17 23:02 ./source/n/snownews/snownews.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/stunnel +-rw-r--r-- 1 root root 265 2005-01-09 07:05 ./source/n/stunnel/doinst.sh.gz +-rw-r--r-- 1 root root 290 2003-08-28 23:32 ./source/n/stunnel/generate-stunnel-key.sh +-rw-r--r-- 1 root root 968 2003-08-28 23:04 ./source/n/stunnel/slack-desc +-rw-r--r-- 1 root root 507158 2006-09-10 21:13 ./source/n/stunnel/stunnel-4.17.tar.gz +-rw-r--r-- 1 root root 189 2006-09-10 21:13 ./source/n/stunnel/stunnel-4.17.tar.gz.asc +-rwxr-xr-x 1 root root 3448 2009-05-19 20:05 ./source/n/stunnel/stunnel.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/tcp_wrappers +-rw-r--r-- 1 root root 1112 2007-04-29 22:11 ./source/n/tcp_wrappers/slack-desc +-rwxr-xr-x 1 root root 3004 2009-05-19 20:05 ./source/n/tcp_wrappers/tcp_wrappers.SlackBuild +-rw-r--r-- 1 root root 118844 2004-02-22 22:48 ./source/n/tcp_wrappers/tcp_wrappers_7.6.tar.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/tcpdump +-rw-r--r-- 1 root root 524273 2008-10-28 18:36 ./source/n/tcpdump/libpcap-1.0.0.tar.gz +-rw-r--r-- 1 root root 65 2008-10-28 18:36 ./source/n/tcpdump/libpcap-1.0.0.tar.gz.sig +-rw-r--r-- 1 root root 832 2008-02-11 03:44 ./source/n/tcpdump/slack-desc +-rw-r--r-- 1 root root 708774 2008-10-28 18:03 ./source/n/tcpdump/tcpdump-4.0.0.tar.gz +-rw-r--r-- 1 root root 65 2008-10-28 18:36 ./source/n/tcpdump/tcpdump-4.0.0.tar.gz.sig +-rwxr-xr-x 1 root root 3756 2009-05-19 20:05 ./source/n/tcpdump/tcpdump.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/n/telnet +-rw-r--r-- 1 root root 522 2001-08-09 19:36 ./source/n/telnet/netkit-telnet-0.17-ayt.patch.gz +-rw-r--r-- 1 root root 176 2001-02-26 02:21 ./source/n/telnet/netkit-telnet-0.17.diff.gz +-rw-r--r-- 1 root root 133749 2000-07-31 03:04 ./source/n/telnet/netkit-telnet-0.17.tar.gz +-rw-r--r-- 1 root root 1014 2007-04-29 23:47 ./source/n/telnet/slack-desc +-rw-r--r-- 1 root root 2605 2005-08-28 22:42 ./source/n/telnet/telnet-OpenBSD-014_telnet.diff.gz +-rw-r--r-- 1 root root 869 2002-03-22 04:41 ./source/n/telnet/telnet-OpenBSD-20020321.diff.gz +-rw-r--r-- 1 root root 104068 2002-03-22 04:19 ./source/n/telnet/telnet-OpenBSD-20020321.tar.gz +-rwxr-xr-x 1 root root 2681 2009-05-23 00:42 ./source/n/telnet/telnet.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/tftp-hpa +-rw-r--r-- 1 root root 1015 2007-04-29 21:07 ./source/n/tftp-hpa/slack-desc +-rw-r--r-- 1 root root 83818 2007-01-30 23:52 ./source/n/tftp-hpa/tftp-hpa-0.48.tar.bz2 +-rw-r--r-- 1 root root 248 2007-01-30 23:52 ./source/n/tftp-hpa/tftp-hpa-0.48.tar.bz2.sign +-rwxr-xr-x 1 root root 2411 2009-05-19 20:05 ./source/n/tftp-hpa/tftp-hpa.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/n/tin +-rw-r--r-- 1 root root 944 2002-03-06 05:36 ./source/n/tin/slack-desc +-rw-r--r-- 1 root root 1436706 2006-04-25 12:23 ./source/n/tin/tin-1.8.2.tar.bz2 +-rw-r--r-- 1 root root 286 2006-04-25 12:30 ./source/n/tin/tin-1.8.2.tar.bz2.sign +-rwxr-xr-x 1 root root 2927 2009-05-23 00:42 ./source/n/tin/tin.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/traceroute +-rw-r--r-- 1 root root 969 2002-03-16 05:59 ./source/n/traceroute/slack-desc +-rw-r--r-- 1 root root 74917 2000-12-18 09:38 ./source/n/traceroute/traceroute-1.4a12.tar.gz +-rwxr-xr-x 1 root root 2658 2009-05-19 20:05 ./source/n/traceroute/traceroute.SlackBuild +-rw-r--r-- 1 root root 529 2003-02-04 11:41 ./source/n/traceroute/traceroute.no.domain.strip.diff.gz +-rw-r--r-- 1 root root 9503 2001-07-16 09:30 ./source/n/traceroute/traceroute_1.4a12-5.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/n/trn +-rw-r--r-- 1 root root 5599 1998-10-26 17:07 ./source/n/trn/_trn.tar.gz +-rw-r--r-- 1 root root 1697 2002-03-07 02:29 ./source/n/trn/config.sh.gz +-rw-r--r-- 1 root root 1716 2009-03-16 23:47 ./source/n/trn/config.x86_64.sh.gz +-rw-r--r-- 1 root root 744 2002-03-06 08:04 ./source/n/trn/slack-desc +-rw-r--r-- 1 root root 325115 1995-01-09 07:11 ./source/n/trn/trn-3.6.tar.gz +-rwxr-xr-x 1 root root 2627 2009-05-23 00:42 ./source/n/trn/trn.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/uucp +-rw-r--r-- 1 root root 1001 2003-06-05 22:07 ./source/n/uucp/_uucp.tar.gz +-rw-r--r-- 1 root root 1777 2003-06-05 21:46 ./source/n/uucp/policy.h.diff.gz +-rw-r--r-- 1 root root 737 2002-02-27 23:14 ./source/n/uucp/slack-desc +-rw-r--r-- 1 root root 1013234 2003-06-04 00:51 ./source/n/uucp/uucp-1.07.tar.gz +-rwxr-xr-x 1 root root 2368 2009-05-19 20:05 ./source/n/uucp/uucp.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/vlan +-rw-r--r-- 1 root root 888 2007-04-29 22:43 ./source/n/vlan/slack-desc +-rw-r--r-- 1 root root 132059 2005-10-20 09:17 ./source/n/vlan/vlan.1.9.tar.bz2 +-rwxr-xr-x 1 root root 2054 2009-05-19 20:05 ./source/n/vlan/vlan.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-31 05:49 ./source/n/vsftpd +-rw-r--r-- 1 root root 283 2009-02-19 17:05 ./source/n/vsftpd/doinst.sh.gz +-rw-r--r-- 1 root root 953 2004-09-03 18:38 ./source/n/vsftpd/slack-desc +-rw-r--r-- 1 root root 142708 2009-05-30 20:15 ./source/n/vsftpd/vsftpd-2.1.2.tar.xz +-rwxr-xr-x 1 root root 2995 2009-06-06 21:25 ./source/n/vsftpd/vsftpd.SlackBuild +-rw-r--r-- 1 root root 198 2004-09-03 18:41 ./source/n/vsftpd/vsftpd.builddefs.diff.gz +-rw-r--r-- 1 root root 965 2009-03-30 03:09 ./source/n/vsftpd/vsftpd.conf.diff.gz +-rw-r--r-- 1 root root 115 2004-09-03 18:59 ./source/n/vsftpd/vsftpd.log.gz +-rw-r--r-- 1 root root 859 2009-05-31 05:42 ./source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/wget +-rw-r--r-- 1 root root 264 2008-10-01 23:27 ./source/n/wget/doinst.sh.gz +-rw-r--r-- 1 root root 853 2002-03-23 23:56 ./source/n/wget/slack-desc +-rw-r--r-- 1 root root 954561 2008-09-29 15:17 ./source/n/wget/wget-1.11.4.tar.bz2 +-rwxr-xr-x 1 root root 2627 2009-05-19 20:05 ./source/n/wget/wget.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/whois +-rw-r--r-- 1 root root 841 2004-06-13 00:33 ./source/n/whois/slack-desc +-rwxr-xr-x 1 root root 2436 2009-05-19 20:05 ./source/n/whois/whois.SlackBuild +-rw-r--r-- 1 root root 67809 2008-04-06 18:47 ./source/n/whois/whois_4.7.26.tar.gz +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/n/wireless-tools +-rw-r--r-- 1 root root 389 2007-05-10 01:04 ./source/n/wireless-tools/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2007-05-19 05:44 ./source/n/wireless-tools/scripts +-rw-r--r-- 1 root root 12494 2009-04-27 18:31 ./source/n/wireless-tools/scripts/rc.wireless +-rw-r--r-- 1 root root 7320 2007-05-09 17:42 ./source/n/wireless-tools/scripts/rc.wireless.conf +-rw-r--r-- 1 root root 1147 2006-04-30 01:08 ./source/n/wireless-tools/slack-desc +-rw-r--r-- 1 root root 294417 2007-09-18 00:23 ./source/n/wireless-tools/wireless_tools.29.tar.gz +-rwxr-xr-x 1 root root 3481 2009-05-19 20:05 ./source/n/wireless-tools/wireless_tools.SlackBuild +-rw-r--r-- 1 root root 227 2005-07-14 05:20 ./source/n/wireless-tools/wireless_tools.nowhine.diff.gz +-rw-r--r-- 1 root root 287 2005-07-25 07:19 ./source/n/wireless-tools/wireless_tools.static.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/n/wpa_supplicant +-rw-r--r-- 1 root root 2080 2005-08-06 20:17 ./source/n/wpa_supplicant/README.slackware +-rw-r--r-- 1 root root 1067 2008-02-28 05:38 ./source/n/wpa_supplicant/slack-desc +-rw-r--r-- 1 root root 5124 2009-04-20 18:10 ./source/n/wpa_supplicant/wpa_gui.png +-rw-r--r-- 1 root root 889610 2009-04-20 14:30 ./source/n/wpa_supplicant/wpa_supplicant-0.6.9.tar.bz2 +-rwxr-xr-x 1 root root 7323 2009-05-23 00:42 ./source/n/wpa_supplicant/wpa_supplicant.SlackBuild +-rw-r--r-- 1 root root 500 2009-04-20 14:56 ./source/n/wpa_supplicant/wpa_supplicant.defconfig +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/yptools +-rw-r--r-- 1 root root 616 2000-11-24 23:39 ./source/n/yptools/nsswitch.conf-nis.gz +-rw-r--r-- 1 root root 922 2002-05-31 06:11 ./source/n/yptools/rc.yp.gz +-rw-r--r-- 1 root root 865 2002-03-05 19:13 ./source/n/yptools/slack-desc +-rw-r--r-- 1 root root 159315 2004-06-21 12:32 ./source/n/yptools/yp-tools-2.9.tar.bz2 +-rw-r--r-- 1 root root 248 2004-06-21 12:32 ./source/n/yptools/yp-tools-2.9.tar.bz2.sign +-rw-r--r-- 1 root root 159660 2005-07-03 16:54 ./source/n/yptools/ypbind-mt-1.19.1.tar.bz2 +-rw-r--r-- 1 root root 248 2005-07-03 16:54 ./source/n/yptools/ypbind-mt-1.19.1.tar.bz2.sign +-rw-r--r-- 1 root root 172987 2005-07-20 13:37 ./source/n/yptools/ypserv-2.18.tar.bz2 +-rw-r--r-- 1 root root 248 2005-07-20 13:37 ./source/n/yptools/ypserv-2.18.tar.bz2.sign +-rwxr-xr-x 1 root root 9013 2009-05-19 20:05 ./source/n/yptools/yptools.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/n/ytalk +-rw-r--r-- 1 root root 269 2006-02-03 23:28 ./source/n/ytalk/doinst.sh.gz +-rw-r--r-- 1 root root 745 2002-03-25 03:59 ./source/n/ytalk/slack-desc +-rw-r--r-- 1 root root 110912 2005-02-13 14:14 ./source/n/ytalk/ytalk-3.3.0.tar.bz2 +-rwxr-xr-x 1 root root 2544 2009-05-23 00:42 ./source/n/ytalk/ytalk.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/n/zd1211-firmware +-rw-r--r-- 1 root root 39061 2007-10-04 11:55 ./source/n/zd1211-firmware/zd1211-firmware-1.4.tar.bz2 +-rwxr-xr-x 1 root root 2935 2009-05-19 20:05 ./source/n/zd1211-firmware/zd1211-firmware.SlackBuild +drwxr-xr-x 5 root root 4096 2009-08-13 01:17 ./source/t +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/t/tetex +-rw-r--r-- 1 root root 103137 2005-10-04 18:51 ./source/t/tetex/jadetex-3.13.tar.gz +-rwxr-xr-x 1 root root 2073 2008-10-15 15:01 ./source/t/tetex/jadetex.build +drwxr-xr-x 2 root root 4096 2002-08-28 23:00 ./source/t/tetex/profile.d +-rwxr-xr-x 1 root root 134 2000-04-24 19:46 ./source/t/tetex/profile.d/tetex.csh +-rwxr-xr-x 1 root root 118 2000-04-24 19:46 ./source/t/tetex/profile.d/tetex.sh +-rw-r--r-- 1 root root 794 2002-08-28 22:34 ./source/t/tetex/slack-desc.tetex +-rw-r--r-- 1 root root 984 2005-02-18 01:42 ./source/t/tetex/slack-desc.tetex-doc +-rw-r--r-- 1 root root 7049516 2005-02-06 19:40 ./source/t/tetex/tetex-src-3.0.tar.xz +-rw-r--r-- 1 root root 75797944 2005-02-06 19:41 ./source/t/tetex/tetex-texmf-3.0.tar.xz +-rw-r--r-- 1 root root 47549400 2005-02-06 19:41 ./source/t/tetex/tetex-texmfsrc-3.0.tar.xz +-rw-r--r-- 1 root root 1759 2006-01-17 12:14 ./source/t/tetex/tetex.CVE-2005-3193.diff.gz +-rwxr-xr-x 1 root root 8306 2009-06-09 19:39 ./source/t/tetex/tetex.SlackBuild +-rw-r--r-- 1 root root 303 2005-02-10 20:29 ./source/t/tetex/tetex.amstex.fmtutil.diff.gz +-rw-r--r-- 1 root root 633 2006-05-16 21:40 ./source/t/tetex/tetex.browsers.diff.gz +-rw-r--r-- 1 root root 504 2004-09-09 13:25 ./source/t/tetex/tetex.dvipdfm.mkstemp.diff.gz +-rw-r--r-- 1 root root 239 2005-07-18 00:11 ./source/t/tetex/tetex.etex.diff.gz +-rw-r--r-- 1 root root 375 2007-06-28 02:45 ./source/t/tetex/tetex.fontcachedirinhome.diff.gz +-rw-r--r-- 1 root root 2480 2005-02-10 20:29 ./source/t/tetex/tetex.scripts.mktemp.diff.gz +-rw-r--r-- 1 root root 724 2005-11-09 10:00 ./source/t/tetex/tetex.tmp.cleanup.diff.gz +-rw-r--r-- 1 root root 250 2005-02-10 20:29 ./source/t/tetex/tetex.var.fonts.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/t/transfig +-rw-r--r-- 1 root root 903 2008-02-11 03:44 ./source/t/transfig/slack-desc +-rw-r--r-- 1 root root 601 2007-02-19 22:21 ./source/t/transfig/transfig.3.2.4-gcc4.patch.gz +-rw-r--r-- 1 root root 326284 2002-12-19 18:38 ./source/t/transfig/transfig.3.2.4.tar.gz +-rwxr-xr-x 1 root root 3299 2009-05-19 20:05 ./source/t/transfig/transfig.SlackBuild +-rw-r--r-- 1 root root 479 2007-02-19 22:21 ./source/t/transfig/transfig.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/t/xfig +-rw-r--r-- 1 root root 886 2008-02-11 03:44 ./source/t/xfig/slack-desc +-rw-r--r-- 1 root root 3177 2004-02-05 12:49 ./source/t/xfig/xfig-3.2.4-mkstemp.diff.gz +-rw-r--r-- 1 root root 604 2004-02-03 17:52 ./source/t/xfig/xfig.3.2.3d-international-std-fonts.diff.gz +-rw-r--r-- 1 root root 149 2004-02-03 17:53 ./source/t/xfig/xfig.3.2.3d-xcolor.diff.gz +-rw-r--r-- 1 root root 545 2004-02-03 17:51 ./source/t/xfig/xfig.3.2.3d-xim.diff.gz +-rw-r--r-- 1 root root 210 2005-10-06 17:19 ./source/t/xfig/xfig.3.2.4-gcc4.diff.gz +-rw-r--r-- 1 root root 1386 2006-11-16 13:30 ./source/t/xfig/xfig.3.2.4-locale.diff.gz +-rw-r--r-- 1 root root 577 2004-03-22 12:26 ./source/t/xfig/xfig.3.2.4-null.diff.gz +-rw-r--r-- 1 root root 1695 2004-08-25 12:26 ./source/t/xfig/xfig.3.2.4-quiet.diff.gz +-rw-r--r-- 1 root root 1599 2005-10-06 17:19 ./source/t/xfig/xfig.3.2.4-urw-fonts.diff.gz +-rw-r--r-- 1 root root 5582 2008-04-14 04:41 ./source/t/xfig/xfig.3.2.4.diff.gz +-rw-r--r-- 1 root root 3666286 2006-08-15 00:06 ./source/t/xfig/xfig.3.2.4.full.tar.bz2 +-rwxr-xr-x 1 root root 3690 2009-05-19 20:05 ./source/t/xfig/xfig.SlackBuild +-rw-r--r-- 1 root root 288 2007-02-19 09:33 ./source/t/xfig/xfig.docs.location.diff.gz +-rw-r--r-- 1 root root 578 2007-02-19 09:06 ./source/t/xfig/xfig.fig.ad.diff.gz +-rw-r--r-- 1 root root 402 2006-08-14 23:55 ./source/t/xfig/xfig.no.pdf.ref.diff.gz +-rw-r--r-- 1 root root 286 2006-08-15 00:21 ./source/t/xfig/xfig.no.xfig_ref_en.pdf.diff.gz +drwxr-xr-x 8 root root 4096 2008-11-07 15:27 ./source/tcl +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/tcl/expect +-rw-r--r-- 1 root root 567944 2008-10-29 18:15 ./source/tcl/expect/expect-5.44.1.11.tar.bz2 +-rwxr-xr-x 1 root root 3863 2009-05-23 00:41 ./source/tcl/expect/expect.SlackBuild +-rw-r--r-- 1 root root 221 2009-05-11 21:26 ./source/tcl/expect/expect.exp_main_tk.c.version.require.diff.gz +-rw-r--r-- 1 root root 990 2008-02-11 03:44 ./source/tcl/expect/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/tcl/hfsutils +-rw-r--r-- 1 root root 207697 1998-11-02 23:34 ./source/tcl/hfsutils/hfsutils-3.2.6.tar.gz +-rw-r--r-- 1 root root 286 1998-11-02 23:39 ./source/tcl/hfsutils/hfsutils-3.2.6.tar.gz.sign +-rwxr-xr-x 1 root root 4449 2009-05-19 20:05 ./source/tcl/hfsutils/hfsutils.SlackBuild +-rw-r--r-- 1 root root 209 2005-07-11 02:18 ./source/tcl/hfsutils/hfsutils.errno.diff.gz +-rw-r--r-- 1 root root 928 2008-02-11 03:44 ./source/tcl/hfsutils/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/tcl/tcl +-rw-r--r-- 1 root root 713 2002-03-23 23:59 ./source/tcl/tcl/slack-desc +-rwxr-xr-x 1 root root 3637 2009-05-19 20:05 ./source/tcl/tcl/tcl.SlackBuild +-rw-r--r-- 1 root root 2817904 2009-04-15 20:19 ./source/tcl/tcl/tcl8.5.7-src.tar.xz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/tcl/tclx +-rw-r--r-- 1 root root 1010 2002-03-24 00:00 ./source/tcl/tclx/slack-desc +-rw-r--r-- 1 root root 353 2007-02-21 04:54 ./source/tcl/tclx/tclx-8.4.configure.diff.gz +-rw-r--r-- 1 root root 270 2007-02-21 04:54 ./source/tcl/tclx/tclx-8.4.gcc4.diff.gz +-rwxr-xr-x 1 root root 3585 2009-05-19 20:05 ./source/tcl/tclx/tclx.SlackBuild +-rw-r--r-- 1 root root 313595 2006-02-03 15:28 ./source/tcl/tclx/tclx8.4.tar.bz2 +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/tcl/tix +-rw-r--r-- 1 root root 1831503 2008-07-28 19:37 ./source/tcl/tix/Tix8.4.3.tar.gz +-rw-r--r-- 1 root root 860 2002-03-24 00:02 ./source/tcl/tix/slack-desc +-rwxr-xr-x 1 root root 3043 2009-05-19 20:05 ./source/tcl/tix/tix.SlackBuild +-rw-r--r-- 1 root root 236 2006-11-18 04:05 ./source/tcl/tix/tix.soname.patch.gz +-rw-r--r-- 1 root root 1908 2008-09-09 00:46 ./source/tcl/tix/tix.tcl8.5.patch.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/tcl/tk +-rw-r--r-- 1 root root 651 2002-03-24 00:03 ./source/tcl/tk/slack-desc +-rwxr-xr-x 1 root root 3526 2009-05-19 20:05 ./source/tcl/tk/tk.SlackBuild +-rw-r--r-- 1 root root 2520152 2009-04-15 15:11 ./source/tcl/tk/tk8.5.7-src.tar.xz +drwxr-xr-x 29 root root 4096 2009-08-04 00:09 ./source/x +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/anthy +-rw-r--r-- 1 root root 4235687 2008-01-28 15:07 ./source/x/anthy/anthy-9100e.tar.gz +-rwxr-xr-x 1 root root 3610 2009-05-19 20:05 ./source/x/anthy/anthy.SlackBuild +-rw-r--r-- 1 root root 714 2008-02-13 08:13 ./source/x/anthy/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/dejavu-fonts-ttf +-rw-r--r-- 1 root root 4157803 2009-03-08 19:23 ./source/x/dejavu-fonts-ttf/dejavu-fonts-ttf-2.29.tar.bz2 +-rwxr-xr-x 1 root root 2722 2009-05-19 20:05 ./source/x/dejavu-fonts-ttf/dejavu-fonts-ttf.SlackBuild +-rw-r--r-- 1 root root 167 2007-03-24 05:03 ./source/x/dejavu-fonts-ttf/doinst.sh.gz +-rw-r--r-- 1 root root 1003 2008-08-03 19:13 ./source/x/dejavu-fonts-ttf/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/fontconfig +-rw-r--r-- 1 root root 1115512 2008-06-01 02:43 ./source/x/fontconfig/fontconfig-2.6.0.tar.bz2 +-rwxr-xr-x 1 root root 5103 2009-05-19 20:05 ./source/x/fontconfig/fontconfig.SlackBuild +-rw-r--r-- 1 root root 476 2008-09-18 02:57 ./source/x/fontconfig/fontconfig.dejavu.diff.gz +-rw-r--r-- 1 root root 395 2008-09-22 20:44 ./source/x/fontconfig/fontconfig.font.dir.list.diff.gz +-rw-r--r-- 1 root root 657 2007-01-25 05:00 ./source/x/fontconfig/setup.05.fontconfig +-rw-r--r-- 1 root root 809 2006-07-22 02:47 ./source/x/fontconfig/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-23 06:22 ./source/x/glew +-rw-r--r-- 1 root root 241696 2009-05-30 01:35 ./source/x/glew/glew-1.5.1-src.tar.xz +-rwxr-xr-x 1 root root 2733 2009-08-04 00:09 ./source/x/glew/glew.SlackBuild +-rw-r--r-- 1 root root 85 2009-07-23 06:15 ./source/x/glew/glew.url +-rw-r--r-- 1 root root 840 2009-07-23 06:21 ./source/x/glew/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-22 07:14 ./source/x/libdrm +-rw-r--r-- 1 root root 346076 2009-07-22 02:58 ./source/x/libdrm/libdrm-2.4.12.tar.xz +-rwxr-xr-x 1 root root 3130 2009-08-04 00:10 ./source/x/libdrm/libdrm.SlackBuild +-rw-r--r-- 1 root root 717 2007-02-01 01:33 ./source/x/libdrm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/liberation-fonts-ttf +-rw-r--r-- 1 root root 942 2008-03-27 11:15 ./source/x/liberation-fonts-ttf/60-liberation.conf +-rw-r--r-- 1 root root 167 2007-03-24 05:03 ./source/x/liberation-fonts-ttf/doinst.sh.gz +-rw-r--r-- 1 root root 848983 2008-07-17 10:27 ./source/x/liberation-fonts-ttf/liberation-fonts-1.04.tar.bz2 +-rwxr-xr-x 1 root root 2251 2009-05-19 20:05 ./source/x/liberation-fonts-ttf/liberation-fonts-ttf.SlackBuild +-rw-r--r-- 1 root root 1042 2008-01-02 05:15 ./source/x/liberation-fonts-ttf/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/libhangul +-rw-r--r-- 1 root root 2791830 2008-02-04 12:36 ./source/x/libhangul/libhangul-0.0.7.tar.gz +-rwxr-xr-x 1 root root 3514 2009-05-19 20:05 ./source/x/libhangul/libhangul.SlackBuild +-rw-r--r-- 1 root root 841 2008-02-13 08:10 ./source/x/libhangul/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/m17n-lib +-rw-r--r-- 1 root root 1983 2008-01-29 10:34 ./source/x/m17n-lib/internal-flt.h +-rw-r--r-- 1 root root 1323620 2009-03-03 00:46 ./source/x/m17n-lib/m17n-db-1.5.4.tar.gz +-rw-r--r-- 1 root root 2383096 2009-02-25 03:53 ./source/x/m17n-lib/m17n-docs-1.5.2.tar.gz +-rw-r--r-- 1 root root 1483 2008-01-29 13:16 ./source/x/m17n-lib/m17n-docs_makefile.patch +-rw-r--r-- 1 root root 962454 2009-03-03 00:46 ./source/x/m17n-lib/m17n-lib-1.5.4.tar.gz +-rwxr-xr-x 1 root root 5451 2009-05-19 20:05 ./source/x/m17n-lib/m17n-lib.SlackBuild +-rw-r--r-- 1 root root 875 2008-02-13 08:20 ./source/x/m17n-lib/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-23 06:25 ./source/x/mesa +-rw-r--r-- 1 root root 1226672 2009-07-23 06:25 ./source/x/mesa/MesaDemos-7.5.tar.xz +-rw-r--r-- 1 root root 251084 2009-07-23 06:25 ./source/x/mesa/MesaGLUT-7.5.tar.xz +-rw-r--r-- 1 root root 3601424 2009-07-23 06:25 ./source/x/mesa/MesaLib-7.5.tar.xz +-rw-r--r-- 1 root root 352 2008-03-10 07:13 ./source/x/mesa/README.GIT +-rw-r--r-- 1 root root 301 2008-03-10 07:14 ./source/x/mesa/get-mesa.sh +-rwxr-xr-x 1 root root 4023 2009-08-04 00:10 ./source/x/mesa/mesa.SlackBuild +-rw-r--r-- 1 root root 790 2007-02-05 00:06 ./source/x/mesa/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/sazanami-fonts-ttf +-rw-r--r-- 1 root root 8622710 2004-06-29 13:55 ./source/x/sazanami-fonts-ttf/sazanami-20040629.tar.bz2 +-rwxr-xr-x 1 root root 3319 2009-05-19 20:05 ./source/x/sazanami-fonts-ttf/sazanami-fonts-ttf.SlackBuild +-rw-r--r-- 1 root root 872 2008-02-12 06:53 ./source/x/sazanami-fonts-ttf/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/x/scim +drwxr-xr-x 2 root root 4096 2009-06-10 01:42 ./source/x/scim-anthy +-rw-r--r-- 1 root root 649495 2007-05-21 08:47 ./source/x/scim-anthy/scim-anthy-1.2.4.tar.gz +-rwxr-xr-x 1 root root 3585 2009-06-10 01:43 ./source/x/scim-anthy/scim-anthy.SlackBuild +-rw-r--r-- 1 root root 553 2009-06-10 01:42 ./source/x/scim-anthy/scim-anthy.gcc43.diff.gz +-rw-r--r-- 1 root root 969 2008-02-13 08:28 ./source/x/scim-anthy/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/x/scim-bridge +-rw-r--r-- 1 root root 508870 2009-04-19 04:08 ./source/x/scim-bridge/scim-bridge-0.4.16.tar.gz +-rwxr-xr-x 1 root root 4354 2009-06-10 01:45 ./source/x/scim-bridge/scim-bridge.SlackBuild +-rw-r--r-- 1 root root 967 2008-02-13 09:11 ./source/x/scim-bridge/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-10 01:50 ./source/x/scim-hangul +-rw-r--r-- 1 root root 1176577 2007-12-30 07:57 ./source/x/scim-hangul/scim-hangul-0.3.2.tar.gz +-rwxr-xr-x 1 root root 3579 2009-06-10 01:52 ./source/x/scim-hangul/scim-hangul.SlackBuild +-rw-r--r-- 1 root root 278 2009-06-10 01:50 ./source/x/scim-hangul/scim-hangul.gcc43.diff.gz +-rw-r--r-- 1 root root 1073 2008-02-04 12:34 ./source/x/scim-hangul/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/x/scim-input-pad +-rw-r--r-- 1 root root 442263 2009-04-19 04:09 ./source/x/scim-input-pad/scim-input-pad-0.1.2.tar.bz2 +-rwxr-xr-x 1 root root 3330 2009-06-10 01:53 ./source/x/scim-input-pad/scim-input-pad.SlackBuild +-rw-r--r-- 1 root root 821 2009-04-20 12:57 ./source/x/scim-input-pad/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/scim-m17n +-rw-r--r-- 1 root root 355801 2009-04-19 04:11 ./source/x/scim-m17n/scim-m17n-0.2.3.tar.gz +-rwxr-xr-x 1 root root 3833 2009-05-19 20:05 ./source/x/scim-m17n/scim-m17n.SlackBuild +-rw-r--r-- 1 root root 862 2008-02-13 09:16 ./source/x/scim-m17n/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/scim-pinyin +-rw-r--r-- 1 root root 5492055 2005-08-12 01:44 ./source/x/scim-pinyin/scim-pinyin-0.5.91.tar.gz +-rwxr-xr-x 1 root root 3921 2009-06-10 01:54 ./source/x/scim-pinyin/scim-pinyin.SlackBuild +-rw-r--r-- 1 root root 448 2009-03-16 13:59 ./source/x/scim-pinyin/scim-pinyin.gcc43.diff.gz +-rw-r--r-- 1 root root 848 2008-02-13 09:19 ./source/x/scim-pinyin/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/x/scim-tables +-rw-r--r-- 1 root root 7256429 2009-01-25 03:06 ./source/x/scim-tables/scim-tables-0.5.9.tar.gz +-rwxr-xr-x 1 root root 3688 2009-06-10 01:55 ./source/x/scim-tables/scim-tables.SlackBuild +-rw-r--r-- 1 root root 751 2008-02-13 09:25 ./source/x/scim-tables/slack-desc +-rw-r--r-- 1 root root 2928091 2009-04-19 04:29 ./source/x/scim/scim-1.4.9.tar.gz +-rw-r--r-- 1 root root 1411 2007-10-28 14:28 ./source/x/scim/scim-setup.desktop +-rwxr-xr-x 1 root root 8930 2009-06-09 00:27 ./source/x/scim/scim.SlackBuild +-rw-r--r-- 1 root root 423 2008-03-31 21:12 ./source/x/scim/scim.desktop +-rw-r--r-- 1 root root 785 2008-02-16 23:16 ./source/x/scim/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/sinhala_lklug-font-ttf +-rwxr-xr-x 1 root root 3389 2009-05-19 20:05 ./source/x/sinhala_lklug-font-ttf/sinhala_lklug-font-ttf.SlackBuild +-rw-r--r-- 1 root root 300476 2006-09-29 19:19 ./source/x/sinhala_lklug-font-ttf/sinhala_lklug.ttf +-rw-r--r-- 1 root root 946 2008-02-12 06:59 ./source/x/sinhala_lklug-font-ttf/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/tibmachuni-font-ttf +-rw-r--r-- 1 root root 1664901 2008-01-27 22:16 ./source/x/tibmachuni-font-ttf/TibetanMachineUnicodeFont.zip +-rw-r--r-- 1 root root 1031 2008-02-16 02:42 ./source/x/tibmachuni-font-ttf/slack-desc +-rwxr-xr-x 1 root root 3803 2009-05-19 20:05 ./source/x/tibmachuni-font-ttf/tibmachuni-font-ttf.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/ttf-indic-fonts +-rw-r--r-- 1 root root 6168 2005-05-14 06:49 ./source/x/ttf-indic-fonts/COPYING.bz2 +-rw-r--r-- 1 root root 33862 2006-01-30 12:58 ./source/x/ttf-indic-fonts/Samyak_Malayalam.ttf.bz2 +-rw-r--r-- 1 root root 122 2006-09-21 08:00 ./source/x/ttf-indic-fonts/Samyak_Malayalam.url +-rw-r--r-- 1 root root 170 2007-04-22 20:40 ./source/x/ttf-indic-fonts/doinst.sh.gz +-rw-r--r-- 1 root root 1087 2006-09-21 08:19 ./source/x/ttf-indic-fonts/slack-desc +-rw-r--r-- 1 root root 2925975 2006-12-26 08:32 ./source/x/ttf-indic-fonts/ttf-indic-fonts-0.4.7.4.tar.bz2 +-rwxr-xr-x 1 root root 3351 2009-05-19 20:05 ./source/x/ttf-indic-fonts/ttf-indic-fonts.SlackBuild +-rw-r--r-- 1 root root 757 2006-09-21 07:19 ./source/x/ttf-indic-fonts/ttf-indic-fonts.copyright.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/wqy-zenhei-font-ttf +-rw-r--r-- 1 root root 1156 2008-02-20 01:44 ./source/x/wqy-zenhei-font-ttf/slack-desc +-rw-r--r-- 1 root root 6649596 2009-04-20 19:06 ./source/x/wqy-zenhei-font-ttf/wqy-zenhei-0.8.38-1.tar.bz2 +-rwxr-xr-x 1 root root 3953 2009-05-19 20:05 ./source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild +drwxr-xr-x 10 root root 4096 2009-08-01 05:02 ./source/x/x11 +drwxr-xr-x 4 root root 4096 2009-06-08 20:25 ./source/x/x11-skel +-rw-r--r-- 1 root root 578 2009-06-08 20:24 ./source/x/x11-skel/doinst.sh.gz +drwxr-xr-x 2 root root 4096 2007-02-14 19:32 ./source/x/x11-skel/manpages +-rw-r--r-- 1 root root 1060 2002-05-31 22:23 ./source/x/x11-skel/manpages/xwmconfig.1 +drwxr-xr-x 2 root root 4096 2007-02-14 19:15 ./source/x/x11-skel/scripts +-rw-r--r-- 1 root root 358 2006-08-10 03:33 ./source/x/x11-skel/scripts/setup.xwmconfig +-rw-r--r-- 1 root root 17100 2007-02-12 21:14 ./source/x/x11-skel/scripts/xorg.conf-fbdev +-rw-r--r-- 1 root root 15858 2007-02-12 21:14 ./source/x/x11-skel/scripts/xorg.conf-vesa +-rw-r--r-- 1 root root 12785 2006-08-21 01:53 ./source/x/x11-skel/scripts/xorgsetup +-rw-r--r-- 1 root root 7460 2009-03-09 23:19 ./source/x/x11-skel/scripts/xwmconfig +-rw-r--r-- 1 root root 1066 2007-05-28 21:04 ./source/x/x11-skel/slack-desc +-rwxr-xr-x 1 root root 2315 2009-06-08 20:29 ./source/x/x11-skel/x11-skel.SlackBuild +-rw-r--r-- 1 root root 183 2009-05-30 01:47 ./source/x/x11/arch.use.flags +drwxr-xr-x 2 root root 4096 2009-08-04 00:52 ./source/x/x11/build +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/appres +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/bdftopcf +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/bigreqsproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/bitmap +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/compiz +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/compositeproto +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/damageproto +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/dmxproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/editres +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/encodings +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/evieext +-rw-r--r-- 1 root root 2 2009-08-01 03:35 ./source/x/x11/build/fixesproto +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-adobe-100dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-adobe-75dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-adobe-utopia-100dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-adobe-utopia-75dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-adobe-utopia-type1 +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-alias +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-arabic-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bh-100dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bh-75dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bh-lucidatypewriter-100dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bh-lucidatypewriter-75dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bh-ttf +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bh-type1 +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bitstream-100dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bitstream-75dpi +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bitstream-speedo +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-bitstream-type1 +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-cronyx-cyrillic +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-cursor-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-daewoo-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-dec-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-ibm-type1 +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-isas-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-jis-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-micro-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-misc-cyrillic +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-misc-ethiopic +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-misc-meltho +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-misc-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-mutt-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-schumacher-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-screen-cyrillic +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-sony-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-sun-misc +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-util +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-winitzki-cyrillic +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/font-xfree86-type1 +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/fontcacheproto +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/fontsproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/gccmakedep +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/iceauth +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/ico +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/imake +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/kbproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/lbxproxy +-rw-r--r-- 1 root root 2 2009-08-01 03:10 ./source/x/x11/build/libICE +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXScrnSaver +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXTrap +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXau +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXcomposite +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXcursor +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXdamage +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXdmcp +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXevie +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXfixes +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXfontcache +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXft +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXinerama +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXmu +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXp +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXpm +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXprintAppUtil +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXprintUtil +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXrender +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXres +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXtst +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXv +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXvMC +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXxf86dga +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXxf86misc +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libXxf86vm +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libdmx +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libfontenc +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/liblbxutil +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libpthread-stubs +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libxkbfile +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/libxkbui +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/listres +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/lndir +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/luit +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/makedepend +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/mkcomposecache +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/mkfontdir +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/oclock +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/printproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/proxymngr +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/recordproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/rendercheck +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/resourceproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/scripts +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/scrnsaverproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/smproxy +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/trapproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/twm +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/videoproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/viewres +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/x11perf +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xauth +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xbacklight +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xbiff +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xbitmaps +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xcalc +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xclipboard +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xclock +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/xcmiscproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xcmsdb +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xcompmgr +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xconsole +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xcursor-themes +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xcursorgen +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xdbedizzy +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xditview +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xdriinfo +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xev +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xeyes +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xf86-input-elographics +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xf86-input-mutouch +-rw-r--r-- 1 root root 2 2009-07-10 04:55 ./source/x/x11/build/xf86-video-ati +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xf86-video-nsc +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xf86-video-openchrome +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xf86-video-v4l +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/xf86bigfontproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xf86dga +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/xf86dgaproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xf86driproto +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/xf86miscproto +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/xf86rushproto +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/xf86vidmodeproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xfd +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xfindproxy +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xfontsel +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xfwp +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xgamma +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xgc +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xhost +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/xineramaproto +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xkbevd +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xkbprint +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xkbutils +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xkill +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xload +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xlogo +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xlsatoms +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xlsclients +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xlsfonts +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xmag +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xman +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xmessage +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xmh +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xmodmap +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xmore +-rw-r--r-- 1 root root 2 2009-08-11 03:18 ./source/x/x11/build/xorg-cf-files +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xorg-docs +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xorg-sgml-doctools +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xplsprinters +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xpr +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xprehashprinterlist +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xprop +-rw-r--r-- 1 root root 2 2009-06-03 02:16 ./source/x/x11/build/xproxymanagementprotocol +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xrdb +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xrefresh +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xset +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xsetmode +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xsetpointer +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xsetroot +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xsm +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xstdcmap +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xtrap +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xvidtune +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xvinfo +-rw-r--r-- 1 root root 2 2009-06-03 02:17 ./source/x/x11/build/xwud +drwxr-xr-x 2 root root 4096 2009-08-01 03:17 ./source/x/x11/configure +-rw-r--r-- 1 root root 334 2009-02-10 21:18 ./source/x/x11/configure/compiz +-rw-r--r-- 1 root root 257 2008-10-14 22:49 ./source/x/x11/configure/configure +-rw-r--r-- 1 root root 276 2008-10-14 22:50 ./source/x/x11/configure/libX11 +-rw-r--r-- 1 root root 304 2008-10-14 22:51 ./source/x/x11/configure/libXt +-rw-r--r-- 1 root root 384 2009-07-10 03:05 ./source/x/x11/configure/pixman +-rw-r--r-- 1 root root 276 2009-07-24 04:25 ./source/x/x11/configure/setxkbmap +-rw-r--r-- 1 root root 539 2009-07-10 03:45 ./source/x/x11/configure/xf86-video-ati +-rw-r--r-- 1 root root 539 2009-07-10 03:44 ./source/x/x11/configure/xf86-video-nv +-rw-r--r-- 1 root root 282 2009-08-01 03:17 ./source/x/x11/configure/xfs +-rw-r--r-- 1 root root 276 2009-07-24 04:28 ./source/x/x11/configure/xkbcomp +-rw-r--r-- 1 root root 345 2008-10-14 22:51 ./source/x/x11/configure/xkeyboard-config +-rw-r--r-- 1 root root 317 2008-10-14 22:51 ./source/x/x11/configure/xorg-docs +-rw-r--r-- 1 root root 1392 2009-07-24 04:33 ./source/x/x11/configure/xorg-server +drwxr-xr-x 2 root root 4096 2009-08-01 05:00 ./source/x/x11/doinst.sh +-rw-r--r-- 1 root root 237 2007-03-24 03:59 ./source/x/x11/doinst.sh/font-adobe-100dpi +-rw-r--r-- 1 root root 236 2007-03-24 03:59 ./source/x/x11/doinst.sh/font-adobe-75dpi +-rw-r--r-- 1 root root 237 2007-03-24 03:59 ./source/x/x11/doinst.sh/font-adobe-utopia-100dpi +-rw-r--r-- 1 root root 236 2007-03-24 03:59 ./source/x/x11/doinst.sh/font-adobe-utopia-75dpi +-rw-r--r-- 1 root root 236 2007-03-24 03:59 ./source/x/x11/doinst.sh/font-adobe-utopia-type1 +-rw-r--r-- 1 root root 301 2007-03-24 04:06 ./source/x/x11/doinst.sh/font-arabic-misc +-rw-r--r-- 1 root root 237 2007-03-24 04:00 ./source/x/x11/doinst.sh/font-bh-100dpi +-rw-r--r-- 1 root root 236 2007-03-24 04:00 ./source/x/x11/doinst.sh/font-bh-75dpi +-rw-r--r-- 1 root root 237 2007-03-24 04:00 ./source/x/x11/doinst.sh/font-bh-lucidatypewriter-100dpi +-rw-r--r-- 1 root root 236 2007-03-24 04:00 ./source/x/x11/doinst.sh/font-bh-lucidatypewriter-75dpi +-rw-r--r-- 1 root root 234 2007-03-24 04:00 ./source/x/x11/doinst.sh/font-bh-ttf +-rw-r--r-- 1 root root 236 2007-03-24 04:00 ./source/x/x11/doinst.sh/font-bh-type1 +-rw-r--r-- 1 root root 237 2007-03-24 04:01 ./source/x/x11/doinst.sh/font-bitstream-100dpi +-rw-r--r-- 1 root root 236 2007-03-24 04:01 ./source/x/x11/doinst.sh/font-bitstream-75dpi +-rw-r--r-- 1 root root 237 2007-03-24 04:02 ./source/x/x11/doinst.sh/font-bitstream-speedo +-rw-r--r-- 1 root root 236 2007-03-24 04:02 ./source/x/x11/doinst.sh/font-bitstream-type1 +-rw-r--r-- 1 root root 239 2007-03-24 04:03 ./source/x/x11/doinst.sh/font-cronyx-cyrillic +-rw-r--r-- 1 root root 301 2007-03-24 04:07 ./source/x/x11/doinst.sh/font-cursor-misc +-rw-r--r-- 1 root root 301 2007-03-24 04:07 ./source/x/x11/doinst.sh/font-daewoo-misc +-rw-r--r-- 1 root root 301 2007-03-24 04:07 ./source/x/x11/doinst.sh/font-dec-misc +-rw-r--r-- 1 root root 236 2007-03-24 04:07 ./source/x/x11/doinst.sh/font-ibm-type1 +-rw-r--r-- 1 root root 301 2007-03-24 04:07 ./source/x/x11/doinst.sh/font-isas-misc +-rw-r--r-- 1 root root 301 2007-03-24 04:07 ./source/x/x11/doinst.sh/font-jis-misc +-rw-r--r-- 1 root root 301 2007-03-24 04:07 ./source/x/x11/doinst.sh/font-micro-misc +-rw-r--r-- 1 root root 239 2007-03-24 04:04 ./source/x/x11/doinst.sh/font-misc-cyrillic +-rw-r--r-- 1 root root 300 2007-03-24 04:04 ./source/x/x11/doinst.sh/font-misc-ethiopic +-rw-r--r-- 1 root root 234 2007-03-24 04:04 ./source/x/x11/doinst.sh/font-misc-meltho +-rw-r--r-- 1 root root 301 2007-03-24 04:04 ./source/x/x11/doinst.sh/font-misc-misc +-rw-r--r-- 1 root root 301 2007-03-24 04:05 ./source/x/x11/doinst.sh/font-mutt-misc +-rw-r--r-- 1 root root 301 2007-03-24 04:05 ./source/x/x11/doinst.sh/font-schumacher-misc +-rw-r--r-- 1 root root 239 2007-03-24 04:05 ./source/x/x11/doinst.sh/font-screen-cyrillic +-rw-r--r-- 1 root root 301 2007-03-24 04:05 ./source/x/x11/doinst.sh/font-sony-misc +-rw-r--r-- 1 root root 301 2007-03-24 04:06 ./source/x/x11/doinst.sh/font-sun-misc +-rw-r--r-- 1 root root 239 2007-03-24 04:06 ./source/x/x11/doinst.sh/font-winitzki-cyrillic +-rw-r--r-- 1 root root 236 2007-03-24 04:06 ./source/x/x11/doinst.sh/font-xfree86-type1 +-rw-r--r-- 1 root root 447 2007-02-14 01:29 ./source/x/x11/doinst.sh/xdm +-rw-r--r-- 1 root root 377 2009-08-01 05:01 ./source/x/x11/doinst.sh/xfs +-rw-r--r-- 1 root root 176 2007-07-01 03:16 ./source/x/x11/doinst.sh/xinit +-rw-r--r-- 1 root root 247 2007-06-09 21:54 ./source/x/x11/doinst.sh/xkeyboard-config +-rw-r--r-- 1 root root 212 2007-02-13 20:05 ./source/x/x11/doinst.sh/xorg-cf-files +drwxr-xr-x 2 root root 4096 2009-05-30 01:47 ./source/x/x11/makepkg +-rw-r--r-- 1 root root 2198 2009-06-03 04:55 ./source/x/x11/makepkg/xorg-server +-rw-r--r-- 1 root root 4083 2009-06-05 16:50 ./source/x/x11/modularize +-rw-r--r-- 1 root root 1336 2009-08-11 03:21 ./source/x/x11/noarch +-rw-r--r-- 1 root root 726 2009-06-08 22:38 ./source/x/x11/package-blacklist +drwxr-xr-x 5 root root 4096 2009-08-01 05:28 ./source/x/x11/patch +drwxr-xr-x 2 root root 4096 2009-05-30 01:47 ./source/x/x11/patch/compiz +-rw-r--r-- 1 root root 263 2009-05-30 01:47 ./source/x/x11/patch/compiz.patch +-rw-r--r-- 1 root root 659 2009-05-30 01:47 ./source/x/x11/patch/compiz/compiz-0.7.8-kde42-crash.patch.gz +-rw-r--r-- 1 root root 356 2009-05-30 01:47 ./source/x/x11/patch/compiz/compiz-0.7.8-kde42-krunner.patch.gz +-rw-r--r-- 1 root root 1095 2009-05-30 01:47 ./source/x/x11/patch/compiz/compiz-0.7.8-kde42.patch.gz +drwxr-xr-x 2 root root 4096 2009-08-01 05:02 ./source/x/x11/patch/xorg-server +-rw-r--r-- 1 root root 93 2009-08-01 05:02 ./source/x/x11/patch/xorg-server.patch +-rw-r--r-- 1 root root 245 2009-05-30 01:47 ./source/x/x11/patch/xorg-server/x11.startwithblackscreen.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-30 01:47 ./source/x/x11/patch/xscope +-rw-r--r-- 1 root root 82 2009-05-30 01:47 ./source/x/x11/patch/xscope.patch +-rw-r--r-- 1 root root 243 2009-05-30 01:47 ./source/x/x11/patch/xscope/xscope-1.1-scope.c.diff.gz +drwxr-xr-x 7 root root 4096 2009-08-11 03:27 ./source/x/x11/post-install +-rw-r--r-- 1 root root 357 2007-02-16 21:17 ./source/x/x11/post-install/beforelight.post-install +-rw-r--r-- 1 root root 275 2007-02-14 02:06 ./source/x/x11/post-install/encodings.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-adobe-100dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-adobe-75dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-adobe-utopia-100dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-adobe-utopia-75dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-adobe-utopia-type1.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-alias.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-arabic-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bh-100dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bh-75dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bh-lucidatypewriter-100dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bh-lucidatypewriter-75dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bh-ttf.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bh-type1.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bitstream-100dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bitstream-75dpi.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bitstream-speedo.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-bitstream-type1.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-cronyx-cyrillic.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-cursor-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-daewoo-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-dec-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-ibm-type1.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-isas-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-jis-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-micro-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-misc-cyrillic.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-misc-ethiopic.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-misc-meltho.post-install +-rw-r--r-- 1 root root 664 2008-02-01 03:22 ./source/x/x11/post-install/font-misc-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-mutt-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-schumacher-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-screen-cyrillic.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-sony-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-sun-misc.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-util.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-winitzki-cyrillic.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/font-xfree86-type1.post-install +-rw-r--r-- 1 root root 110 2007-02-13 23:21 ./source/x/x11/post-install/lbxproxy.post-install +-rw-r--r-- 1 root root 1765 2009-06-08 19:45 ./source/x/x11/post-install/libXaw.post-install +-rw-r--r-- 1 root root 183 2007-02-14 06:42 ./source/x/x11/post-install/libpthread-stubs.post-install +-rw-r--r-- 1 root root 2320 2009-06-03 04:06 ./source/x/x11/post-install/libxcb.post-install +drwxr-xr-x 2 root root 4096 2007-03-24 04:12 ./source/x/x11/post-install/mkfontdir +-rw-r--r-- 1 root root 221 2007-03-24 04:13 ./source/x/x11/post-install/mkfontdir.post-install +-rw-r--r-- 1 root root 1012 2007-03-23 20:46 ./source/x/x11/post-install/mkfontdir/setup.04.mkfontdir +-rw-r--r-- 1 root root 286 2008-04-26 21:33 ./source/x/x11/post-install/pixman.post-install +-rw-r--r-- 1 root root 112 2007-02-13 23:23 ./source/x/x11/post-install/proxymngr.post-install +-rw-r--r-- 1 root root 106 2007-02-13 23:24 ./source/x/x11/post-install/rstart.post-install +drwxr-xr-x 2 root root 4096 2007-02-22 01:03 ./source/x/x11/post-install/twm +-rw-r--r-- 1 root root 175 2007-02-22 01:05 ./source/x/x11/post-install/twm.post-install +-rw-r--r-- 1 root root 733 2007-03-24 03:56 ./source/x/x11/post-install/twm/xinitrc.twm +-rw-r--r-- 1 root root 344 2007-02-13 23:28 ./source/x/x11/post-install/x11-app-test.post-install +-rw-r--r-- 1 root root 275 2007-02-13 21:50 ./source/x/x11/post-install/x11-font.post-install +-rw-r--r-- 1 root root 68 2007-02-13 21:50 ./source/x/x11/post-install/x11-util.post-install +-rw-r--r-- 1 root root 155 2007-02-14 06:42 ./source/x/x11/post-install/xcb-proto.post-install +drwxr-xr-x 2 root root 4096 2007-02-14 01:08 ./source/x/x11/post-install/xdm +-rw-r--r-- 1 root root 585 2007-02-14 05:54 ./source/x/x11/post-install/xdm.post-install +-rwxr-xr-x 1 root root 5401 2007-02-14 01:17 ./source/x/x11/post-install/xdm/Xsession +-rwxr-xr-x 1 root root 708 2001-02-17 22:27 ./source/x/x11/post-install/xdm/Xsession.orig +-rwxr-xr-x 1 root root 503 2007-02-14 01:22 ./source/x/x11/post-install/xdm/Xsetup_0 +-rwxr-xr-x 1 root root 145 2007-02-13 06:04 ./source/x/x11/post-install/xdm/Xsetup_0.orig +-rw-r--r-- 1 root root 40 2008-09-15 22:43 ./source/x/x11/post-install/xf86-input-joystick.post-install +-rw-r--r-- 1 root root 309 2009-05-30 01:47 ./source/x/x11/post-install/xf86-input-synaptics.post-install +-rw-r--r-- 1 root root 54 2009-08-01 05:00 ./source/x/x11/post-install/xfs.post-install +drwxr-xr-x 2 root root 4096 2007-07-01 03:06 ./source/x/x11/post-install/xinit +-rw-r--r-- 1 root root 637 2007-07-01 03:13 ./source/x/x11/post-install/xinit.post-install +-rw-r--r-- 1 root root 321 2003-03-16 21:36 ./source/x/x11/post-install/xinit/README.Xmodmap +-rw-r--r-- 1 root root 341 2007-02-18 03:51 ./source/x/x11/post-install/xkeyboard-config.post-install +drwxr-xr-x 2 root root 4096 2009-08-11 03:27 ./source/x/x11/post-install/xorg-cf-files +-rw-r--r-- 1 root root 237 2009-08-11 03:32 ./source/x/x11/post-install/xorg-cf-files.post-install +-rw-r--r-- 1 root root 203 2009-08-11 03:26 ./source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff.gz +-rw-r--r-- 1 root root 30 2007-02-14 01:57 ./source/x/x11/post-install/xorg-docs.post-install +-rw-r--r-- 1 root root 476 2009-08-02 03:48 ./source/x/x11/post-install/xorg-server.post-install +-rw-r--r-- 1 root root 100 2007-02-13 23:26 ./source/x/x11/post-install/xsm.post-install +drwxr-xr-x 2 root root 16384 2009-05-30 01:47 ./source/x/x11/slack-desc +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/applewmproto +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/appres +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/bdftopcf +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/beforelight +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/bigreqsproto +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/bitmap +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/compiz +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/compositeproto +-rw-r--r-- 1 root root 755 2009-05-30 01:47 ./source/x/x11/slack-desc/constype +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/damageproto +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/dmxproto +-rw-r--r-- 1 root root 769 2008-09-18 04:02 ./source/x/x11/slack-desc/dri2proto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/editres +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/encodings +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/evieext +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fixesproto +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-100dpi +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-75dpi +-rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-100dpi +-rw-r--r-- 1 root root 965 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-75dpi +-rw-r--r-- 1 root root 965 2007-02-13 23:03 ./source/x/x11/slack-desc/font-adobe-utopia-type1 +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/font-alias +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-arabic-misc +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-100dpi +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-75dpi +-rw-r--r-- 1 root root 1077 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-lucidatypewriter-100dpi +-rw-r--r-- 1 root root 1063 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-lucidatypewriter-75dpi +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-ttf +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bh-type1 +-rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-100dpi +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-75dpi +-rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-speedo +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-bitstream-type1 +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-cronyx-cyrillic +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-cursor-misc +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-daewoo-misc +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-dec-misc +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-ibm-type1 +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-isas-misc +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-jis-misc +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/font-micro-misc +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-cyrillic +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-ethiopic +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-meltho +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-misc-misc +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-mutt-misc +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-schumacher-misc +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/font-screen-cyrillic +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/font-sony-misc +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/font-sun-misc +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/font-util +-rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/font-winitzki-cyrillic +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/font-xfree86-type1 +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/fontcacheproto +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fontsproto +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/fonttosfnt +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/fslsfonts +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/fstobdf +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/gccmakedep +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/glproto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/iceauth +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/ico +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/imake +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/inputproto +-rw-r--r-- 1 root root 886 2009-06-03 05:02 ./source/x/x11/slack-desc/intel-gpu-tools +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/kbproto +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/lbxproxy +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libAppleWM +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libFS +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libICE +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libSM +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/libWindowsWM +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libX11 +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXScrnSaver +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXTrap +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXau +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXaw +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXcomposite +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXcursor +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXdamage +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXdmcp +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXevie +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXext +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfixes +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfont +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXfontcache +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXft +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXi +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/libXinerama +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXmu +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXp +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libXpm +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/libXprintAppUtil +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/libXprintUtil +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/libXrandr +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXrender +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXres +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXt +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXtst +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/libXv +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/libXvMC +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86dga +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86misc +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libXxf86vm +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/libdmx +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libfontenc +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/liblbxutil +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/liboldX +-rw-r--r-- 1 root root 811 2008-03-10 05:32 ./source/x/x11/slack-desc/libpciaccess +-rw-r--r-- 1 root root 867 2007-02-14 06:45 ./source/x/x11/slack-desc/libpthread-stubs +-rw-r--r-- 1 root root 903 2007-02-14 06:52 ./source/x/x11/slack-desc/libxcb +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/libxkbfile +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/libxkbui +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/listres +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/lndir +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/luit +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/makedepend +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/mkcfm +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/mkcomposecache +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/mkfontdir +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/mkfontscale +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/oclock +-rw-r--r-- 1 root root 794 2007-09-16 00:32 ./source/x/x11/slack-desc/pixman +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/printproto +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/proxymngr +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/randrproto +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/recordproto +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/rendercheck +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/renderproto +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/resourceproto +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/rgb +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/rstart +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/scripts +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/scrnsaverproto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/sessreg +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/setxkbmap +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/showfont +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/smproxy +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/trapproto +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/twm +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/util-macros +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/videoproto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/viewres +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/windowswmproto +-rw-r--r-- 1 root root 677 2007-02-05 01:25 ./source/x/x11/slack-desc/x11-app +-rw-r--r-- 1 root root 601 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-data +-rw-r--r-- 1 root root 587 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-doc +-rw-r--r-- 1 root root 637 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-driver +-rw-r--r-- 1 root root 605 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-font +-rw-r--r-- 1 root root 598 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-lib +-rw-r--r-- 1 root root 621 2007-02-05 04:36 ./source/x/x11/slack-desc/x11-proto +-rw-r--r-- 1 root root 613 2007-02-05 01:31 ./source/x/x11/slack-desc/x11-util +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/x11perf +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xauth +-rw-r--r-- 1 root root 782 2007-09-16 00:02 ./source/x/x11/slack-desc/xbacklight +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xbiff +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xbitmaps +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xcalc +-rw-r--r-- 1 root root 769 2007-02-14 06:46 ./source/x/x11/slack-desc/xcb-proto +-rw-r--r-- 1 root root 756 2009-05-30 01:47 ./source/x/x11/slack-desc/xcb-util +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xclipboard +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xclock +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/xcmiscproto +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xcmsdb +-rw-r--r-- 1 root root 755 2008-03-10 05:33 ./source/x/x11/slack-desc/xcompmgr +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xconsole +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xcursor-themes +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xcursorgen +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xdbedizzy +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xditview +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xdm +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xdpyinfo +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xdriinfo +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xedit +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xev +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xextproto +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xeyes +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-acecad +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-aiptek +-rw-r--r-- 1 root root 895 2008-11-19 21:28 ./source/x/x11/slack-desc/xf86-input-calcomp +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-citron +-rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-digitaledge +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-dmc +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-dynapro +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-elo2300 +-rw-r--r-- 1 root root 951 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-elographics +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-evdev +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-fpit +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-hyperpen +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-jamstudio +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-joystick +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-keyboard +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-magellan +-rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-magictouch +-rw-r--r-- 1 root root 937 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-microtouch +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-mouse +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-mutouch +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-palmax +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-penmount +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-spaceorb +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-summa +-rw-r--r-- 1 root root 923 2008-11-18 18:09 ./source/x/x11/slack-desc/xf86-input-synaptics +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-tek4957 +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-ur98 +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-vmmouse +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-input-void +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-apm +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ark +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ast +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-ati +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-chips +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-cirrus +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-cyrix +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-dummy +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-fbdev +-rw-r--r-- 1 root root 902 2008-04-03 02:30 ./source/x/x11/slack-desc/xf86-video-geode +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-glint +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i128 +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i740 +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-i810 +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-impact +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-imstt +-rw-r--r-- 1 root root 867 2007-03-07 21:18 ./source/x/x11/slack-desc/xf86-video-intel +-rw-r--r-- 1 root root 881 2008-07-10 23:31 ./source/x/x11/slack-desc/xf86-video-mach64 +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-mga +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-neomagic +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-newport +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-nsc +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-nv +-rw-r--r-- 1 root root 937 2008-11-18 19:25 ./source/x/x11/slack-desc/xf86-video-openchrome +-rw-r--r-- 1 root root 853 2008-07-10 23:31 ./source/x/x11/slack-desc/xf86-video-r128 +-rw-r--r-- 1 root root 955 2008-04-12 05:04 ./source/x/x11/slack-desc/xf86-video-radeonhd +-rw-r--r-- 1 root root 923 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-rendition +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-s3 +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-s3virge +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-savage +-rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-siliconmotion +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sis +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sisusb +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunbw2 +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg14 +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg3 +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suncg6 +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunffb +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-sunleo +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-suntcx +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tdfx +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tga +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-trident +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-tseng +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-v4l +-rw-r--r-- 1 root root 955 2007-04-06 22:22 ./source/x/x11/slack-desc/xf86-video-vermilion +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vesa +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vga +-rw-r--r-- 1 root root 839 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-via +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-vmware +-rw-r--r-- 1 root root 881 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-voodoo +-rw-r--r-- 1 root root 853 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86-video-wsfb +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86bigfontproto +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86dga +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86dgaproto +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86driproto +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86miscproto +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86rushproto +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xf86vidmodeproto +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xfd +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xfindproxy +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xfontsel +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xfs +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xfsinfo +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xfwp +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xgamma +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xgc +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xhost +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xineramaproto +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xinit +-rw-r--r-- 1 root root 923 2008-01-31 06:21 ./source/x/x11/slack-desc/xinput +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbcomp +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbdata +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbevd +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbprint +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xkbutils +-rw-r--r-- 1 root root 867 2007-02-13 23:03 ./source/x/x11/slack-desc/xkeyboard-config +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xkill +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xload +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xlogo +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsatoms +-rw-r--r-- 1 root root 783 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsclients +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xlsfonts +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xmag +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xman +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xmessage +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xmh +-rw-r--r-- 1 root root 741 2007-02-13 23:03 ./source/x/x11/slack-desc/xmodmap +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xmore +-rw-r--r-- 1 root root 825 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-cf-files +-rw-r--r-- 1 root root 769 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-docs +-rw-r--r-- 1 root root 1160 2007-02-13 18:20 ./source/x/x11/slack-desc/xorg-server +-rw-r--r-- 1 root root 901 2007-02-14 10:05 ./source/x/x11/slack-desc/xorg-server-xdmx +-rw-r--r-- 1 root root 839 2009-05-30 01:47 ./source/x/x11/slack-desc/xorg-server-xephyr +-rw-r--r-- 1 root root 1063 2007-02-13 18:18 ./source/x/x11/slack-desc/xorg-server-xnest +-rw-r--r-- 1 root root 1160 2007-02-13 18:20 ./source/x/x11/slack-desc/xorg-server-xvfb +-rw-r--r-- 1 root root 895 2007-02-13 23:03 ./source/x/x11/slack-desc/xorg-sgml-doctools +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xphelloworld +-rw-r--r-- 1 root root 811 2007-02-13 23:03 ./source/x/x11/slack-desc/xplsprinters +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xpr +-rw-r--r-- 1 root root 909 2007-02-13 23:03 ./source/x/x11/slack-desc/xprehashprinterlist +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xprop +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xproto +-rw-r--r-- 1 root root 979 2007-02-13 23:03 ./source/x/x11/slack-desc/xproxymanagementprotocol +-rw-r--r-- 1 root root 700 2009-05-30 01:47 ./source/x/x11/slack-desc/xpyb +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xrandr +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xrdb +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xrefresh +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xrx +-rw-r--r-- 1 root root 727 2009-05-30 01:47 ./source/x/x11/slack-desc/xscope +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xset +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetmode +-rw-r--r-- 1 root root 797 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetpointer +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xsetroot +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xsm +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xstdcmap +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xtrans +-rw-r--r-- 1 root root 713 2007-02-13 23:03 ./source/x/x11/slack-desc/xtrap +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xvidtune +-rw-r--r-- 1 root root 727 2007-02-13 23:03 ./source/x/x11/slack-desc/xvinfo +-rw-r--r-- 1 root root 685 2007-02-13 23:03 ./source/x/x11/slack-desc/xwd +-rw-r--r-- 1 root root 755 2007-02-13 23:03 ./source/x/x11/slack-desc/xwininfo +-rw-r--r-- 1 root root 699 2007-02-13 23:03 ./source/x/x11/slack-desc/xwud +drwxr-xr-x 12 root root 4096 2009-08-01 02:35 ./source/x/x11/src +drwxr-xr-x 2 root root 4096 2009-08-03 22:31 ./source/x/x11/src/app +-rw-r--r-- 1 root root 78644 2007-01-23 02:18 ./source/x/x11/src/app/appres-1.0.1.tar.xz +-rw-r--r-- 1 root root 78868 2007-04-26 00:19 ./source/x/x11/src/app/bdftopcf-1.0.1.tar.xz +-rw-r--r-- 1 root root 79116 2007-09-08 20:25 ./source/x/x11/src/app/beforelight-1.0.3.tar.xz +-rw-r--r-- 1 root root 117944 2007-01-23 21:54 ./source/x/x11/src/app/bitmap-1.0.3.tar.xz +-rw-r--r-- 1 root root 845256 2008-09-17 12:13 ./source/x/x11/src/app/compiz-0.7.8.tar.xz +-rw-r--r-- 1 root root 81568 2007-08-28 23:08 ./source/x/x11/src/app/constype-1.0.1.tar.xz +-rw-r--r-- 1 root root 118876 2007-01-24 01:10 ./source/x/x11/src/app/editres-1.0.3.tar.xz +-rw-r--r-- 1 root root 98084 2008-05-10 22:53 ./source/x/x11/src/app/fonttosfnt-1.0.4.tar.xz +-rw-r--r-- 1 root root 81636 2008-05-23 23:33 ./source/x/x11/src/app/fslsfonts-1.0.2.tar.xz +-rw-r--r-- 1 root root 83136 2008-05-23 23:55 ./source/x/x11/src/app/fstobdf-1.0.3.tar.xz +-rw-r--r-- 1 root root 89364 2007-07-24 01:28 ./source/x/x11/src/app/iceauth-1.0.2.tar.xz +-rw-r--r-- 1 root root 89560 2007-07-21 00:22 ./source/x/x11/src/app/ico-1.0.2.tar.xz +-rw-r--r-- 1 root root 233128 2009-05-19 23:51 ./source/x/x11/src/app/intel-gpu-tools-1.0.1.tar.xz +-rw-r--r-- 1 root root 169456 2006-01-18 23:51 ./source/x/x11/src/app/lbxproxy-1.0.1.tar.xz +-rw-r--r-- 1 root root 70920 2006-01-18 23:51 ./source/x/x11/src/app/listres-1.0.1.tar.xz +-rw-r--r-- 1 root root 95920 2008-01-31 23:37 ./source/x/x11/src/app/luit-1.0.3.tar.xz +-rw-r--r-- 1 root root 70424 2006-01-18 23:51 ./source/x/x11/src/app/mkcfm-1.0.1.tar.xz +-rw-r--r-- 1 root root 60884 2007-01-29 11:59 ./source/x/x11/src/app/mkcomposecache-1.2.tar.xz +-rw-r--r-- 1 root root 65480 2008-03-06 21:48 ./source/x/x11/src/app/mkfontdir-1.0.4.tar.xz +-rw-r--r-- 1 root root 96952 2008-12-19 01:09 ./source/x/x11/src/app/mkfontscale-1.0.6.tar.xz +-rw-r--r-- 1 root root 76552 2006-01-18 23:51 ./source/x/x11/src/app/oclock-1.0.1.tar.xz +-rw-r--r-- 1 root root 84328 2006-01-18 23:51 ./source/x/x11/src/app/proxymngr-1.0.1.tar.xz +-rw-r--r-- 1 root root 81948 2008-03-07 21:48 ./source/x/x11/src/app/rendercheck-1.3.tar.xz +-rw-r--r-- 1 root root 93640 2008-06-06 03:18 ./source/x/x11/src/app/rgb-1.0.3.tar.xz +-rw-r--r-- 1 root root 96964 2009-08-02 13:41 ./source/x/x11/src/app/rstart-1.0.3.tar.xz +-rw-r--r-- 1 root root 67148 2006-01-18 23:51 ./source/x/x11/src/app/scripts-1.0.1.tar.xz +-rw-r--r-- 1 root root 88680 2008-06-11 22:50 ./source/x/x11/src/app/sessreg-1.0.4.tar.xz +-rw-r--r-- 1 root root 91836 2009-07-08 23:20 ./source/x/x11/src/app/setxkbmap-1.1.0.tar.xz +-rw-r--r-- 1 root root 83512 2008-05-24 00:14 ./source/x/x11/src/app/showfont-1.0.2.tar.xz +-rw-r--r-- 1 root root 80860 2006-04-02 00:41 ./source/x/x11/src/app/smproxy-1.0.2.tar.xz +-rw-r--r-- 1 root root 220032 2008-03-06 21:53 ./source/x/x11/src/app/twm-1.0.4.tar.xz +-rw-r--r-- 1 root root 78176 2006-01-18 23:51 ./source/x/x11/src/app/viewres-1.0.1.tar.xz +-rw-r--r-- 1 root root 132064 2008-03-07 21:55 ./source/x/x11/src/app/x11perf-1.5.tar.xz +-rw-r--r-- 1 root root 104196 2008-03-06 21:57 ./source/x/x11/src/app/xauth-1.0.3.tar.xz +-rw-r--r-- 1 root root 74184 2007-06-21 13:55 ./source/x/x11/src/app/xbacklight-1.1.tar.xz +-rw-r--r-- 1 root root 77224 2006-01-18 23:51 ./source/x/x11/src/app/xbiff-1.0.1.tar.xz +-rw-r--r-- 1 root root 96788 2007-08-21 18:28 ./source/x/x11/src/app/xcalc-1.0.2.tar.xz +-rw-r--r-- 1 root root 76940 2006-01-18 23:51 ./source/x/x11/src/app/xclipboard-1.0.1.tar.xz +-rw-r--r-- 1 root root 102988 2007-08-06 22:48 ./source/x/x11/src/app/xclock-1.0.3.tar.xz +-rw-r--r-- 1 root root 85988 2006-01-18 23:51 ./source/x/x11/src/app/xcmsdb-1.0.1.tar.xz +-rw-r--r-- 1 root root 73296 2008-03-06 22:02 ./source/x/x11/src/app/xcompmgr-1.1.4.tar.xz +-rw-r--r-- 1 root root 91192 2007-08-21 02:04 ./source/x/x11/src/app/xconsole-1.0.3.tar.xz +-rw-r--r-- 1 root root 83576 2007-08-21 01:32 ./source/x/x11/src/app/xcursorgen-1.0.2.tar.xz +-rw-r--r-- 1 root root 81204 2006-10-13 21:48 ./source/x/x11/src/app/xdbedizzy-1.0.2.tar.xz +-rw-r--r-- 1 root root 94716 2006-01-18 23:51 ./source/x/x11/src/app/xditview-1.0.1.tar.xz +-rw-r--r-- 1 root root 323404 2008-05-21 18:28 ./source/x/x11/src/app/xdm-1.1.8.tar.xz +-rw-r--r-- 1 root root 95224 2008-05-21 18:23 ./source/x/x11/src/app/xdpyinfo-1.0.3.tar.xz +-rw-r--r-- 1 root root 82072 2007-08-17 23:28 ./source/x/x11/src/app/xdriinfo-1.0.2.tar.xz +-rw-r--r-- 1 root root 452488 2008-11-07 19:14 ./source/x/x11/src/app/xedit-1.1.2.tar.xz +-rw-r--r-- 1 root root 85228 2008-03-07 22:15 ./source/x/x11/src/app/xev-1.0.3.tar.xz +-rw-r--r-- 1 root root 74588 2006-01-18 23:51 ./source/x/x11/src/app/xeyes-1.0.1.tar.xz +-rw-r--r-- 1 root root 74620 2006-10-13 21:50 ./source/x/x11/src/app/xf86dga-1.0.2.tar.xz +-rw-r--r-- 1 root root 81676 2006-01-18 23:51 ./source/x/x11/src/app/xfd-1.0.1.tar.xz +-rw-r--r-- 1 root root 71840 2006-01-18 23:51 ./source/x/x11/src/app/xfindproxy-1.0.1.tar.xz +-rw-r--r-- 1 root root 97148 2007-02-01 21:06 ./source/x/x11/src/app/xfontsel-1.0.2.tar.xz +-rw-r--r-- 1 root root 174808 2009-08-01 03:13 ./source/x/x11/src/app/xfs-1.1.0.tar.xz +-rw-r--r-- 1 root root 81172 2008-05-23 23:17 ./source/x/x11/src/app/xfsinfo-1.0.2.tar.xz +-rw-r--r-- 1 root root 98048 2006-01-18 23:51 ./source/x/x11/src/app/xfwp-1.0.1.tar.xz +-rw-r--r-- 1 root root 79880 2007-08-07 01:57 ./source/x/x11/src/app/xgamma-1.0.2.tar.xz +-rw-r--r-- 1 root root 119636 2006-01-18 23:51 ./source/x/x11/src/app/xgc-1.0.1.tar.xz +-rw-r--r-- 1 root root 90752 2007-07-16 23:04 ./source/x/x11/src/app/xhost-1.0.2.tar.xz +-rw-r--r-- 1 root root 117264 2008-12-17 23:43 ./source/x/x11/src/app/xinit-1.1.1.tar.xz +-rw-r--r-- 1 root root 99044 2009-05-07 05:25 ./source/x/x11/src/app/xinput-1.4.2.tar.xz +-rw-r--r-- 1 root root 197672 2009-07-08 22:58 ./source/x/x11/src/app/xkbcomp-1.1.0.tar.xz +-rw-r--r-- 1 root root 99508 2006-04-02 01:09 ./source/x/x11/src/app/xkbevd-1.0.2.tar.xz +-rw-r--r-- 1 root root 105928 2006-01-18 23:51 ./source/x/x11/src/app/xkbprint-1.0.1.tar.xz +-rw-r--r-- 1 root root 59792 2006-01-18 23:51 ./source/x/x11/src/app/xkbutils-1.0.1.tar.xz +-rw-r--r-- 1 root root 71472 2006-01-18 23:51 ./source/x/x11/src/app/xkill-1.0.1.tar.xz +-rw-r--r-- 1 root root 85624 2007-03-22 05:35 ./source/x/x11/src/app/xload-1.0.2.tar.xz +-rw-r--r-- 1 root root 80120 2006-01-18 23:51 ./source/x/x11/src/app/xlogo-1.0.1.tar.xz +-rw-r--r-- 1 root root 69384 2006-01-18 23:51 ./source/x/x11/src/app/xlsatoms-1.0.1.tar.xz +-rw-r--r-- 1 root root 69924 2006-01-18 23:51 ./source/x/x11/src/app/xlsclients-1.0.1.tar.xz +-rw-r--r-- 1 root root 91080 2007-02-01 22:15 ./source/x/x11/src/app/xlsfonts-1.0.2.tar.xz +-rw-r--r-- 1 root root 97920 2007-08-16 01:05 ./source/x/x11/src/app/xmag-1.0.2.tar.xz +-rw-r--r-- 1 root root 133816 2007-08-10 14:22 ./source/x/x11/src/app/xman-1.0.3.tar.xz +-rw-r--r-- 1 root root 87812 2007-08-10 09:25 ./source/x/x11/src/app/xmessage-1.0.2.tar.xz +-rw-r--r-- 1 root root 147888 2006-01-18 23:51 ./source/x/x11/src/app/xmh-1.0.1.tar.xz +-rw-r--r-- 1 root root 95024 2007-08-06 23:03 ./source/x/x11/src/app/xmodmap-1.0.3.tar.xz +-rw-r--r-- 1 root root 85148 2006-01-18 23:51 ./source/x/x11/src/app/xmore-1.0.1.tar.xz +-rw-r--r-- 1 root root 64084 2006-01-18 23:51 ./source/x/x11/src/app/xphelloworld-1.0.1.tar.xz +-rw-r--r-- 1 root root 71268 2006-01-18 23:51 ./source/x/x11/src/app/xplsprinters-1.0.1.tar.xz +-rw-r--r-- 1 root root 107484 2007-01-28 09:32 ./source/x/x11/src/app/xpr-1.0.2.tar.xz +-rw-r--r-- 1 root root 70076 2006-01-18 23:51 ./source/x/x11/src/app/xprehashprinterlist-1.0.1.tar.xz +-rw-r--r-- 1 root root 100896 2008-03-07 22:24 ./source/x/x11/src/app/xprop-1.0.4.tar.xz +-rw-r--r-- 1 root root 118860 2009-04-01 15:04 ./source/x/x11/src/app/xrandr-1.3.0.tar.xz +-rw-r--r-- 1 root root 94188 2008-03-06 22:16 ./source/x/x11/src/app/xrdb-1.0.5.tar.xz +-rw-r--r-- 1 root root 74764 2006-04-02 01:16 ./source/x/x11/src/app/xrefresh-1.0.2.tar.xz +-rw-r--r-- 1 root root 122604 2008-09-23 02:21 ./source/x/x11/src/app/xscope-1.1.tar.xz +-rw-r--r-- 1 root root 95868 2008-03-06 22:29 ./source/x/x11/src/app/xset-1.0.4.tar.xz +-rw-r--r-- 1 root root 68360 2006-01-18 23:51 ./source/x/x11/src/app/xsetmode-1.0.0.tar.xz +-rw-r--r-- 1 root root 76884 2006-11-02 01:38 ./source/x/x11/src/app/xsetpointer-1.0.1.tar.xz +-rw-r--r-- 1 root root 81732 2007-08-10 08:59 ./source/x/x11/src/app/xsetroot-1.0.2.tar.xz +-rw-r--r-- 1 root root 110080 2006-01-18 23:51 ./source/x/x11/src/app/xsm-1.0.1.tar.xz +-rw-r--r-- 1 root root 70724 2006-01-18 23:51 ./source/x/x11/src/app/xstdcmap-1.0.1.tar.xz +-rw-r--r-- 1 root root 88004 2006-05-12 16:23 ./source/x/x11/src/app/xtrap-1.0.2.tar.xz +-rw-r--r-- 1 root root 80872 2006-01-18 23:51 ./source/x/x11/src/app/xvidtune-1.0.1.tar.xz +-rw-r--r-- 1 root root 80204 2007-08-16 23:27 ./source/x/x11/src/app/xvinfo-1.0.2.tar.xz +-rw-r--r-- 1 root root 102728 2008-06-29 15:31 ./source/x/x11/src/app/xwd-1.0.2.tar.xz +-rw-r--r-- 1 root root 93464 2008-06-29 15:50 ./source/x/x11/src/app/xwininfo-1.0.4.tar.xz +-rw-r--r-- 1 root root 76664 2006-01-18 23:51 ./source/x/x11/src/app/xwud-1.0.1.tar.xz +drwxr-xr-x 2 root root 4096 2009-05-27 00:05 ./source/x/x11/src/data +-rw-r--r-- 1 root root 54248 2006-01-18 23:51 ./source/x/x11/src/data/xbitmaps-1.0.1.tar.xz +-rw-r--r-- 1 root root 1439460 2006-01-18 23:51 ./source/x/x11/src/data/xcursor-themes-1.0.1.tar.xz +-rw-r--r-- 1 root root 514092 2009-05-27 00:05 ./source/x/x11/src/data/xkeyboard-config-1.6.tar.xz +drwxr-xr-x 2 root root 4096 2007-03-03 20:32 ./source/x/x11/src/doc +-rw-r--r-- 1 root root 7580256 2007-03-03 20:10 ./source/x/x11/src/doc/xorg-docs-1.4.tar.xz +-rw-r--r-- 1 root root 36620 2007-03-03 20:32 ./source/x/x11/src/doc/xorg-sgml-doctools-1.2.tar.xz +drwxr-xr-x 2 root root 4096 2009-08-26 03:48 ./source/x/x11/src/driver +-rw-r--r-- 1 root root 191536 2009-02-24 03:28 ./source/x/x11/src/driver/xf86-input-acecad-1.3.0.tar.xz +-rw-r--r-- 1 root root 200028 2009-02-24 03:49 ./source/x/x11/src/driver/xf86-input-aiptek-1.2.0.tar.xz +-rw-r--r-- 1 root root 183984 2008-03-20 19:04 ./source/x/x11/src/driver/xf86-input-calcomp-1.1.2.tar.xz +-rw-r--r-- 1 root root 207380 2009-04-29 00:56 ./source/x/x11/src/driver/xf86-input-citron-2.2.2.tar.xz +-rw-r--r-- 1 root root 182548 2008-03-20 19:15 ./source/x/x11/src/driver/xf86-input-digitaledge-1.1.1.tar.xz +-rw-r--r-- 1 root root 181760 2008-03-20 19:18 ./source/x/x11/src/driver/xf86-input-dmc-1.1.2.tar.xz +-rw-r--r-- 1 root root 181148 2008-03-20 19:23 ./source/x/x11/src/driver/xf86-input-dynapro-1.1.2.tar.xz +-rw-r--r-- 1 root root 183804 2008-05-21 18:58 ./source/x/x11/src/driver/xf86-input-elo2300-1.1.2.tar.xz +-rw-r--r-- 1 root root 189608 2008-10-21 05:10 ./source/x/x11/src/driver/xf86-input-elographics-1.2.3.tar.xz +-rw-r--r-- 1 root root 250780 2009-08-20 23:31 ./source/x/x11/src/driver/xf86-input-evdev-2.2.5.tar.xz +-rw-r--r-- 1 root root 189848 2009-02-18 01:42 ./source/x/x11/src/driver/xf86-input-fpit-1.3.0.tar.xz +-rw-r--r-- 1 root root 183932 2009-02-27 00:32 ./source/x/x11/src/driver/xf86-input-hyperpen-1.3.0.tar.xz +-rw-r--r-- 1 root root 177228 2008-03-20 19:59 ./source/x/x11/src/driver/xf86-input-jamstudio-1.2.0.tar.xz +-rw-r--r-- 1 root root 251880 2008-12-28 19:58 ./source/x/x11/src/driver/xf86-input-joystick-1.4.0.tar.xz +-rw-r--r-- 1 root root 216708 2009-01-07 17:43 ./source/x/x11/src/driver/xf86-input-keyboard-1.3.2.tar.xz +-rw-r--r-- 1 root root 181608 2008-03-20 20:12 ./source/x/x11/src/driver/xf86-input-magellan-1.2.0.tar.xz +-rw-r--r-- 1 root root 161972 2006-01-18 23:51 ./source/x/x11/src/driver/xf86-input-magictouch-1.0.0.5.tar.xz +-rw-r--r-- 1 root root 184172 2008-03-20 20:22 ./source/x/x11/src/driver/xf86-input-microtouch-1.2.0.tar.xz +-rw-r--r-- 1 root root 235672 2009-01-10 02:45 ./source/x/x11/src/driver/xf86-input-mouse-1.4.0.tar.xz +-rw-r--r-- 1 root root 185284 2008-10-01 23:51 ./source/x/x11/src/driver/xf86-input-mutouch-1.2.1.tar.xz +-rw-r--r-- 1 root root 180076 2008-03-20 20:35 ./source/x/x11/src/driver/xf86-input-palmax-1.2.0.tar.xz +-rw-r--r-- 1 root root 185904 2009-02-19 06:36 ./source/x/x11/src/driver/xf86-input-penmount-1.4.0.tar.xz +-rw-r--r-- 1 root root 180460 2007-09-10 17:16 ./source/x/x11/src/driver/xf86-input-spaceorb-1.1.1.tar.xz +-rw-r--r-- 1 root root 184212 2008-03-20 20:45 ./source/x/x11/src/driver/xf86-input-summa-1.2.0.tar.xz +-rw-r--r-- 1 root root 247252 2009-08-03 01:41 ./source/x/x11/src/driver/xf86-input-synaptics-1.1.3.tar.xz +-rw-r--r-- 1 root root 179536 2008-03-20 20:49 ./source/x/x11/src/driver/xf86-input-tek4957-1.2.0.tar.xz +-rw-r--r-- 1 root root 171836 2006-04-07 22:09 ./source/x/x11/src/driver/xf86-input-ur98-1.1.0.tar.xz +-rw-r--r-- 1 root root 194012 2009-05-11 17:37 ./source/x/x11/src/driver/xf86-input-vmmouse-12.6.4.tar.xz +-rw-r--r-- 1 root root 182900 2009-02-24 22:56 ./source/x/x11/src/driver/xf86-input-void-1.2.0.tar.xz +-rw-r--r-- 1 root root 223284 2009-07-30 01:25 ./source/x/x11/src/driver/xf86-video-apm-1.2.2.tar.xz +-rw-r--r-- 1 root root 183220 2008-12-22 05:26 ./source/x/x11/src/driver/xf86-video-ark-0.7.1.tar.xz +-rw-r--r-- 1 root root 208756 2009-07-30 02:29 ./source/x/x11/src/driver/xf86-video-ast-0.89.9.tar.xz +-rw-r--r-- 1 root root 748288 2009-04-08 14:37 ./source/x/x11/src/driver/xf86-video-ati-6.12.2.tar.xz +-rw-r--r-- 1 root root 273428 2008-12-22 04:27 ./source/x/x11/src/driver/xf86-video-chips-1.2.1.tar.xz +-rw-r--r-- 1 root root 223812 2009-07-30 02:12 ./source/x/x11/src/driver/xf86-video-cirrus-1.3.2.tar.xz +-rw-r--r-- 1 root root 189032 2006-04-07 22:43 ./source/x/x11/src/driver/xf86-video-cyrix-1.1.0.tar.xz +-rw-r--r-- 1 root root 196748 2009-07-02 15:09 ./source/x/x11/src/driver/xf86-video-dummy-0.3.2.tar.xz +-rw-r--r-- 1 root root 499472 2009-06-19 13:58 ./source/x/x11/src/driver/xf86-video-geode-2.11.3.tar.xz +-rw-r--r-- 1 root root 190248 2009-02-25 00:23 ./source/x/x11/src/driver/xf86-video-glide-1.0.2.tar.xz +-rw-r--r-- 1 root root 281928 2009-07-30 02:13 ./source/x/x11/src/driver/xf86-video-glint-1.2.4.tar.xz +-rw-r--r-- 1 root root 216052 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-i128-1.3.3.tar.xz +-rw-r--r-- 1 root root 209584 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-i740-1.3.2.tar.xz +-rw-r--r-- 1 root root 178892 2006-06-28 01:36 ./source/x/x11/src/driver/xf86-video-impact-0.2.0.tar.xz +-rw-r--r-- 1 root root 175160 2006-04-07 22:43 ./source/x/x11/src/driver/xf86-video-imstt-1.1.0.tar.xz +-rw-r--r-- 1 root root 566640 2008-11-13 20:38 ./source/x/x11/src/driver/xf86-video-intel-2.5.1.tar.xz +-rw-r--r-- 1 root root 602624 2009-03-02 20:17 ./source/x/x11/src/driver/xf86-video-intel-2.6.3.tar.xz +-rw-r--r-- 1 root root 625972 2009-05-13 00:16 ./source/x/x11/src/driver/xf86-video-intel-2.7.1.tar.xz +-rw-r--r-- 1 root root 585420 2009-07-21 06:16 ./source/x/x11/src/driver/xf86-video-intel-2.8.0.tar.xz +-rw-r--r-- 1 root root 587556 2009-08-25 23:59 ./source/x/x11/src/driver/xf86-video-intel-2.8.1.tar.xz +-rw-r--r-- 1 root root 416140 2009-07-30 02:14 ./source/x/x11/src/driver/xf86-video-mach64-6.8.2.tar.xz +-rw-r--r-- 1 root root 331660 2009-07-30 02:15 ./source/x/x11/src/driver/xf86-video-mga-1.4.11.tar.xz +-rw-r--r-- 1 root root 218964 2009-07-30 02:18 ./source/x/x11/src/driver/xf86-video-neomagic-1.2.4.tar.xz +-rw-r--r-- 1 root root 216404 2009-05-15 01:12 ./source/x/x11/src/driver/xf86-video-newport-0.2.2.tar.xz +-rw-r--r-- 1 root root 378740 2007-09-05 01:11 ./source/x/x11/src/driver/xf86-video-nsc-2.8.3.tar.xz +-rw-r--r-- 1 root root 342232 2009-07-02 19:15 ./source/x/x11/src/driver/xf86-video-nv-2.1.14.tar.xz +-rw-r--r-- 1 root root 349420 2008-08-18 23:15 ./source/x/x11/src/driver/xf86-video-openchrome-0.2.903.tar.xz +-rw-r--r-- 1 root root 351232 2009-07-30 02:15 ./source/x/x11/src/driver/xf86-video-r128-6.8.1.tar.xz +-rw-r--r-- 1 root root 631392 2009-04-09 13:18 ./source/x/x11/src/driver/xf86-video-radeonhd-1.2.5.tar.xz +-rw-r--r-- 1 root root 256504 2009-07-02 15:31 ./source/x/x11/src/driver/xf86-video-rendition-4.2.2.tar.xz +-rw-r--r-- 1 root root 214920 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-s3-0.6.3.tar.xz +-rw-r--r-- 1 root root 236912 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-s3virge-1.10.4.tar.xz +-rw-r--r-- 1 root root 269908 2009-07-30 02:24 ./source/x/x11/src/driver/xf86-video-savage-2.3.1.tar.xz +-rw-r--r-- 1 root root 281968 2009-07-02 15:44 ./source/x/x11/src/driver/xf86-video-siliconmotion-1.7.2.tar.xz +-rw-r--r-- 1 root root 524420 2009-07-30 02:16 ./source/x/x11/src/driver/xf86-video-sis-0.10.2.tar.xz +-rw-r--r-- 1 root root 261784 2009-07-30 02:28 ./source/x/x11/src/driver/xf86-video-sisusb-0.9.3.tar.xz +-rw-r--r-- 1 root root 227984 2009-07-30 02:17 ./source/x/x11/src/driver/xf86-video-tdfx-1.4.3.tar.xz +-rw-r--r-- 1 root root 211820 2008-09-03 22:16 ./source/x/x11/src/driver/xf86-video-tga-1.2.0.tar.xz +-rw-r--r-- 1 root root 248272 2009-07-02 15:51 ./source/x/x11/src/driver/xf86-video-trident-1.3.2.tar.xz +-rw-r--r-- 1 root root 236344 2009-07-02 15:53 ./source/x/x11/src/driver/xf86-video-tseng-1.2.2.tar.xz +-rw-r--r-- 1 root root 183872 2008-03-19 20:58 ./source/x/x11/src/driver/xf86-video-v4l-0.2.0.tar.xz +-rw-r--r-- 1 root root 191028 2007-04-05 14:50 ./source/x/x11/src/driver/xf86-video-vermilion-1.0.1.tar.xz +-rw-r--r-- 1 root root 191708 2009-07-30 02:17 ./source/x/x11/src/driver/xf86-video-vesa-2.2.1.tar.xz +-rw-r--r-- 1 root root 174860 2006-04-07 22:44 ./source/x/x11/src/driver/xf86-video-vga-4.1.0.tar.xz +-rw-r--r-- 1 root root 217192 2009-07-21 18:11 ./source/x/x11/src/driver/xf86-video-vmware-10.16.7.tar.xz +-rw-r--r-- 1 root root 199400 2009-07-30 02:18 ./source/x/x11/src/driver/xf86-video-voodoo-1.2.3.tar.xz +-rw-r--r-- 1 root root 178588 2007-01-02 15:15 ./source/x/x11/src/driver/xf86-video-wsfb-0.2.1.tar.xz +-rw-r--r-- 1 root root 346324 2007-08-27 23:56 ./source/x/x11/src/driver/xf86-video-xgi-1.5.0.tar.xz +-rw-r--r-- 1 root root 269476 2008-05-01 20:06 ./source/x/x11/src/driver/xf86-video-xgixp-1.7.99.3.tar.xz +drwxr-xr-x 2 root root 4096 2008-03-07 01:23 ./source/x/x11/src/font +-rw-r--r-- 1 root root 248036 2006-11-08 14:03 ./source/x/x11/src/font/encodings-1.0.2.tar.xz +-rw-r--r-- 1 root root 894236 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-100dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 747096 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-75dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 246640 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-100dpi-1.0.1.tar.xz +-rw-r--r-- 1 root root 197904 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-75dpi-1.0.1.tar.xz +-rw-r--r-- 1 root root 207816 2006-01-18 23:51 ./source/x/x11/src/font/font-adobe-utopia-type1-1.0.1.tar.xz +-rw-r--r-- 1 root root 38596 2006-01-18 23:51 ./source/x/x11/src/font/font-alias-1.0.1.tar.xz +-rw-r--r-- 1 root root 47268 2006-01-18 23:51 ./source/x/x11/src/font/font-arabic-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 545340 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-100dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 446048 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-75dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 164756 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-lucidatypewriter-100dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 142092 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-lucidatypewriter-75dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 312480 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-ttf-1.0.0.tar.xz +-rw-r--r-- 1 root root 570392 2006-01-18 23:51 ./source/x/x11/src/font/font-bh-type1-1.0.0.tar.xz +-rw-r--r-- 1 root root 119016 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-100dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 101740 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-75dpi-1.0.0.tar.xz +-rw-r--r-- 1 root root 274744 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-speedo-1.0.0.tar.xz +-rw-r--r-- 1 root root 335976 2006-01-18 23:51 ./source/x/x11/src/font/font-bitstream-type1-1.0.0.tar.xz +-rw-r--r-- 1 root root 181532 2006-01-18 23:51 ./source/x/x11/src/font/font-cronyx-cyrillic-1.0.0.tar.xz +-rw-r--r-- 1 root root 39880 2006-01-18 23:51 ./source/x/x11/src/font/font-cursor-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 453956 2006-01-18 23:51 ./source/x/x11/src/font/font-daewoo-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 37860 2006-01-18 23:51 ./source/x/x11/src/font/font-dec-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 317652 2006-01-18 23:51 ./source/x/x11/src/font/font-ibm-type1-1.0.0.tar.xz +-rw-r--r-- 1 root root 665684 2006-01-18 23:51 ./source/x/x11/src/font/font-isas-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 463920 2006-01-18 23:51 ./source/x/x11/src/font/font-jis-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 36340 2006-01-18 23:51 ./source/x/x11/src/font/font-micro-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 66352 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-cyrillic-1.0.0.tar.xz +-rw-r--r-- 1 root root 163988 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-ethiopic-1.0.0.tar.xz +-rw-r--r-- 1 root root 770636 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-meltho-1.0.0.tar.xz +-rw-r--r-- 1 root root 1351952 2006-01-18 23:51 ./source/x/x11/src/font/font-misc-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 164816 2006-01-18 23:51 ./source/x/x11/src/font/font-mutt-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 75392 2006-01-18 23:51 ./source/x/x11/src/font/font-schumacher-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 42372 2006-11-08 17:25 ./source/x/x11/src/font/font-screen-cyrillic-1.0.1.tar.xz +-rw-r--r-- 1 root root 44676 2006-01-18 23:51 ./source/x/x11/src/font/font-sony-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 52212 2006-01-18 23:51 ./source/x/x11/src/font/font-sun-misc-1.0.0.tar.xz +-rw-r--r-- 1 root root 88028 2006-05-19 18:35 ./source/x/x11/src/font/font-util-1.0.1.tar.xz +-rw-r--r-- 1 root root 38556 2006-01-18 23:51 ./source/x/x11/src/font/font-winitzki-cyrillic-1.0.0.tar.xz +-rw-r--r-- 1 root root 67212 2008-03-07 01:23 ./source/x/x11/src/font/font-xfree86-type1-1.0.1.tar.xz +drwxr-xr-x 2 root root 4096 2009-08-01 02:32 ./source/x/x11/src/lib +-rw-r--r-- 1 root root 202008 2009-07-07 22:57 ./source/x/x11/src/lib/libFS-1.0.2.tar.xz +-rw-r--r-- 1 root root 216516 2009-01-06 19:57 ./source/x/x11/src/lib/libICE-1.0.5.tar.xz +-rw-r--r-- 1 root root 192216 2008-07-02 18:06 ./source/x/x11/src/lib/libSM-1.1.0.tar.xz +-rw-r--r-- 1 root root 1317640 2009-07-20 06:42 ./source/x/x11/src/lib/libX11-1.2.2.tar.xz +-rw-r--r-- 1 root root 182092 2008-03-18 01:33 ./source/x/x11/src/lib/libXScrnSaver-1.1.3.tar.xz +-rw-r--r-- 1 root root 166564 2006-01-18 23:51 ./source/x/x11/src/lib/libXTrap-1.0.0.tar.xz +-rw-r--r-- 1 root root 187444 2008-08-26 21:24 ./source/x/x11/src/lib/libXau-1.0.4.tar.xz +-rw-r--r-- 1 root root 448120 2009-07-02 17:37 ./source/x/x11/src/lib/libXaw-1.0.6.tar.xz +-rw-r--r-- 1 root root 180416 2007-07-04 02:53 ./source/x/x11/src/lib/libXcomposite-0.4.0.tar.xz +-rw-r--r-- 1 root root 196280 2007-08-24 21:06 ./source/x/x11/src/lib/libXcursor-1.1.9.tar.xz +-rw-r--r-- 1 root root 168644 2007-03-14 19:06 ./source/x/x11/src/lib/libXdamage-1.1.1.tar.xz +-rw-r--r-- 1 root root 183936 2006-08-11 22:05 ./source/x/x11/src/lib/libXdmcp-1.0.2.tar.xz +-rw-r--r-- 1 root root 171968 2006-10-13 20:03 ./source/x/x11/src/lib/libXevie-1.0.2.tar.xz +-rw-r--r-- 1 root root 241100 2009-01-29 23:10 ./source/x/x11/src/lib/libXext-1.0.5.tar.xz +-rw-r--r-- 1 root root 176204 2006-11-08 14:15 ./source/x/x11/src/lib/libXfixes-4.0.3.tar.xz +-rw-r--r-- 1 root root 352132 2009-02-18 18:53 ./source/x/x11/src/lib/libXfont-1.4.0.tar.xz +-rw-r--r-- 1 root root 175956 2006-12-15 23:28 ./source/x/x11/src/lib/libXfontcache-1.0.4.tar.xz +-rw-r--r-- 1 root root 215192 2008-07-02 19:49 ./source/x/x11/src/lib/libXft-2.1.13.tar.xz +-rw-r--r-- 1 root root 219888 2009-02-25 23:27 ./source/x/x11/src/lib/libXi-1.2.1.tar.xz +-rw-r--r-- 1 root root 180280 2008-03-06 20:43 ./source/x/x11/src/lib/libXinerama-1.0.3.tar.xz +-rw-r--r-- 1 root root 244428 2008-01-14 22:25 ./source/x/x11/src/lib/libXmu-1.0.4.tar.xz +-rw-r--r-- 1 root root 187292 2006-01-18 23:51 ./source/x/x11/src/lib/libXp-1.0.0.tar.xz +-rw-r--r-- 1 root root 297804 2007-08-22 20:29 ./source/x/x11/src/lib/libXpm-3.5.7.tar.xz +-rw-r--r-- 1 root root 156780 2006-01-18 23:51 ./source/x/x11/src/lib/libXprintAppUtil-1.0.1.tar.xz +-rw-r--r-- 1 root root 168108 2006-01-18 23:51 ./source/x/x11/src/lib/libXprintUtil-1.0.1.tar.xz +-rw-r--r-- 1 root root 213480 2009-03-06 14:17 ./source/x/x11/src/lib/libXrandr-1.3.0.tar.xz +-rw-r--r-- 1 root root 189444 2007-09-05 15:23 ./source/x/x11/src/lib/libXrender-0.9.4.tar.xz +-rw-r--r-- 1 root root 179104 2006-12-15 23:31 ./source/x/x11/src/lib/libXres-1.0.3.tar.xz +-rw-r--r-- 1 root root 457508 2009-07-02 17:28 ./source/x/x11/src/lib/libXt-1.0.6.tar.xz +-rw-r--r-- 1 root root 186500 2007-08-17 22:03 ./source/x/x11/src/lib/libXtst-1.0.3.tar.xz +-rw-r--r-- 1 root root 188440 2008-03-18 03:02 ./source/x/x11/src/lib/libXv-1.0.4.tar.xz +-rw-r--r-- 1 root root 183168 2006-12-15 23:34 ./source/x/x11/src/lib/libXvMC-1.0.4.tar.xz +-rw-r--r-- 1 root root 181388 2007-09-05 17:21 ./source/x/x11/src/lib/libXxf86dga-1.0.2.tar.xz +-rw-r--r-- 1 root root 168900 2006-04-27 00:26 ./source/x/x11/src/lib/libXxf86misc-1.0.1.tar.xz +-rw-r--r-- 1 root root 183588 2008-07-02 19:44 ./source/x/x11/src/lib/libXxf86vm-1.0.2.tar.xz +-rw-r--r-- 1 root root 176048 2006-04-26 23:51 ./source/x/x11/src/lib/libdmx-1.0.2.tar.xz +-rw-r--r-- 1 root root 184784 2006-12-15 23:20 ./source/x/x11/src/lib/libfontenc-1.0.4.tar.xz +-rw-r--r-- 1 root root 185464 2006-05-19 18:37 ./source/x/x11/src/lib/liblbxutil-1.0.1.tar.xz +-rw-r--r-- 1 root root 216668 2009-04-24 23:36 ./source/x/x11/src/lib/libpciaccess-0.10.6.tar.xz +-rw-r--r-- 1 root root 162620 2006-11-24 07:47 ./source/x/x11/src/lib/libpthread-stubs-0.1.tar.xz +-rw-r--r-- 1 root root 223076 2008-03-18 02:50 ./source/x/x11/src/lib/libxkbfile-1.0.5.tar.xz +-rw-r--r-- 1 root root 168088 2006-04-27 00:18 ./source/x/x11/src/lib/libxkbui-1.0.2.tar.xz +-rw-r--r-- 1 root root 306896 2009-07-21 18:10 ./source/x/x11/src/lib/pixman-0.15.18.tar.xz +-rw-r--r-- 1 root root 100236 2009-08-01 00:28 ./source/x/x11/src/lib/xtrans-1.2.4.tar.xz +drwxr-xr-x 2 root root 4096 2009-08-01 03:33 ./source/x/x11/src/proto +-rw-r--r-- 1 root root 34512 2006-01-18 23:51 ./source/x/x11/src/proto/bigreqsproto-1.0.2.tar.xz +-rw-r--r-- 1 root root 42816 2007-07-03 21:20 ./source/x/x11/src/proto/compositeproto-0.4.tar.xz +-rw-r--r-- 1 root root 39112 2007-01-10 00:48 ./source/x/x11/src/proto/damageproto-1.1.0.tar.xz +-rw-r--r-- 1 root root 36948 2006-01-18 23:51 ./source/x/x11/src/proto/dmxproto-2.2.2.tar.xz +-rw-r--r-- 1 root root 47952 2009-07-09 19:55 ./source/x/x11/src/proto/dri2proto-2.1.tar.xz +-rw-r--r-- 1 root root 35232 2006-01-18 23:51 ./source/x/x11/src/proto/evieext-1.0.2.tar.xz +-rw-r--r-- 1 root root 36216 2009-08-01 03:33 ./source/x/x11/src/proto/fixesproto-4.0.tar.xz +-rw-r--r-- 1 root root 35784 2006-01-18 23:51 ./source/x/x11/src/proto/fontcacheproto-0.1.2.tar.xz +-rw-r--r-- 1 root root 41984 2006-01-18 23:51 ./source/x/x11/src/proto/fontsproto-2.0.2.tar.xz +-rw-r--r-- 1 root root 62416 2009-05-26 21:17 ./source/x/x11/src/proto/glproto-1.4.10.tar.xz +-rw-r--r-- 1 root root 58048 2009-06-18 01:52 ./source/x/x11/src/proto/inputproto-1.5.1.tar.xz +-rw-r--r-- 1 root root 54644 2006-07-18 19:24 ./source/x/x11/src/proto/kbproto-1.0.3.tar.xz +-rw-r--r-- 1 root root 46304 2008-03-06 21:25 ./source/x/x11/src/proto/printproto-1.0.4.tar.xz +-rw-r--r-- 1 root root 70912 2009-03-06 14:05 ./source/x/x11/src/proto/randrproto-1.3.0.tar.xz +-rw-r--r-- 1 root root 36812 2006-01-18 23:51 ./source/x/x11/src/proto/recordproto-1.13.2.tar.xz +-rw-r--r-- 1 root root 60804 2009-07-15 03:54 ./source/x/x11/src/proto/renderproto-0.11.tar.xz +-rw-r--r-- 1 root root 34692 2006-01-18 23:51 ./source/x/x11/src/proto/resourceproto-1.0.2.tar.xz +-rw-r--r-- 1 root root 35612 2006-04-01 21:43 ./source/x/x11/src/proto/scrnsaverproto-1.1.0.tar.xz +-rw-r--r-- 1 root root 45604 2006-01-18 23:51 ./source/x/x11/src/proto/trapproto-3.4.3.tar.xz +-rw-r--r-- 1 root root 39784 2006-01-18 23:51 ./source/x/x11/src/proto/videoproto-2.2.2.tar.xz +-rw-r--r-- 1 root root 34604 2006-01-18 23:51 ./source/x/x11/src/proto/xcmiscproto-1.1.2.tar.xz +-rw-r--r-- 1 root root 75732 2009-01-29 18:57 ./source/x/x11/src/proto/xextproto-7.0.5.tar.xz +-rw-r--r-- 1 root root 35220 2006-01-18 23:51 ./source/x/x11/src/proto/xf86bigfontproto-1.1.2.tar.xz +-rw-r--r-- 1 root root 40624 2007-09-05 17:14 ./source/x/x11/src/proto/xf86dgaproto-2.0.3.tar.xz +-rw-r--r-- 1 root root 40948 2008-04-01 17:44 ./source/x/x11/src/proto/xf86driproto-2.0.4.tar.xz +-rw-r--r-- 1 root root 36128 2006-01-18 23:51 ./source/x/x11/src/proto/xf86miscproto-0.9.2.tar.xz +-rw-r--r-- 1 root root 35400 2006-01-18 23:51 ./source/x/x11/src/proto/xf86rushproto-1.1.2.tar.xz +-rw-r--r-- 1 root root 37040 2006-01-18 23:51 ./source/x/x11/src/proto/xf86vidmodeproto-2.2.2.tar.xz +-rw-r--r-- 1 root root 35832 2006-01-18 23:51 ./source/x/x11/src/proto/xineramaproto-1.1.2.tar.xz +-rw-r--r-- 1 root root 141528 2009-03-02 19:02 ./source/x/x11/src/proto/xproto-7.0.15.tar.xz +-rw-r--r-- 1 root root 34688 2006-01-18 23:51 ./source/x/x11/src/proto/xproxymanagementprotocol-1.0.2.tar.xz +drwxr-xr-x 2 root root 4096 2009-07-09 18:51 ./source/x/x11/src/util +-rw-r--r-- 1 root root 65616 2006-05-19 18:42 ./source/x/x11/src/util/gccmakedep-1.0.2.tar.xz +-rw-r--r-- 1 root root 105808 2006-05-19 18:45 ./source/x/x11/src/util/imake-1.0.2.tar.xz +-rw-r--r-- 1 root root 70672 2006-01-18 23:51 ./source/x/x11/src/util/lndir-1.0.1.tar.xz +-rw-r--r-- 1 root root 101024 2007-03-21 20:43 ./source/x/x11/src/util/makedepend-1.0.1.tar.xz +-rw-r--r-- 1 root root 46276 2009-06-18 20:05 ./source/x/x11/src/util/util-macros-1.2.2.tar.xz +-rw-r--r-- 1 root root 235664 2006-05-19 18:41 ./source/x/x11/src/util/xorg-cf-files-1.0.2.tar.xz +drwxr-xr-x 2 root root 4096 2009-05-29 06:37 ./source/x/x11/src/xcb +-rw-r--r-- 1 root root 278996 2009-05-29 06:30 ./source/x/x11/src/xcb/libxcb-1.3.tar.xz +-rw-r--r-- 1 root root 87048 2009-05-29 06:15 ./source/x/x11/src/xcb/xcb-proto-1.5.tar.xz +-rw-r--r-- 1 root root 234900 2009-05-29 06:37 ./source/x/x11/src/xcb/xcb-util-0.3.5.tar.xz +-rw-r--r-- 1 root root 244308 2009-04-08 04:28 ./source/x/x11/src/xcb/xpyb-1.1.tar.xz +drwxr-xr-x 2 root root 4096 2009-08-01 20:47 ./source/x/x11/src/xserver +-rw-r--r-- 1 root root 3760472 2009-08-01 12:59 ./source/x/x11/src/xserver/xorg-server-1.6.3.tar.xz +-rwxr-xr-x 1 root root 10950 2009-08-04 00:10 ./source/x/x11/x11.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/xaw3d +-rw-r--r-- 1 root root 5180 2008-11-04 15:06 ./source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff.gz +-rw-r--r-- 1 root root 579 2008-11-04 15:02 ./source/x/xaw3d/Xaw3d-1.5E.diff.gz +-rw-r--r-- 1 root root 309264 2008-11-04 14:57 ./source/x/xaw3d/Xaw3d-1.5E.tar.gz +-rw-r--r-- 1 root root 975 2002-03-23 23:45 ./source/x/xaw3d/slack-desc +-rwxr-xr-x 1 root root 3773 2009-05-19 20:05 ./source/x/xaw3d/xaw3d.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/x/xdg-utils +-rw-r--r-- 1 root root 1432 2009-02-02 23:25 ./source/x/xdg-utils/doinst.sh.gz +-rw-r--r-- 1 root root 1010 2008-08-01 05:42 ./source/x/xdg-utils/slack-desc +-rw-r--r-- 1 root root 284747 2009-02-02 23:19 ./source/x/xdg-utils/xdg-utils-20090202cvs.tar.bz2 +-rwxr-xr-x 1 root root 327 2009-02-02 19:15 ./source/x/xdg-utils/xdg-utils-cvs_checkout.sh +-rwxr-xr-x 1 root root 2310 2009-05-19 20:05 ./source/x/xdg-utils/xdg-utils.SlackBuild +-rw-r--r-- 1 root root 121 2008-07-12 04:41 ./source/x/xdg-utils/xdg-utils.info +drwxr-xr-x 3 root root 4096 2009-06-03 19:52 ./source/x/xterm +drwxr-xr-x 2 root root 4096 2008-02-21 20:54 ./source/x/xterm/patches +-rw-r--r-- 1 root root 764 2007-02-11 23:54 ./source/x/xterm/slack-desc +-rw-r--r-- 1 root root 612032 2009-03-28 20:18 ./source/x/xterm/xterm-243.tar.xz +-rwxr-xr-x 1 root root 3428 2009-06-09 00:02 ./source/x/xterm/xterm.SlackBuild +drwxr-xr-x 47 root root 4096 2009-08-18 23:17 ./source/xap +drwxr-xr-x 2 root root 4096 2009-06-25 23:48 ./source/xap/MPlayer +-rw-r--r-- 1 root root 222567 2006-12-23 03:06 ./source/xap/MPlayer/Blue-1.7.tar.bz2 +-rwxr-xr-- 1 root root 15071 2009-06-26 00:11 ./source/xap/MPlayer/MPlayer.SlackBuild +-rw-r--r-- 1 root root 6987244 2009-06-25 23:48 ./source/xap/MPlayer/MPlayer_nolibdvdcss-r29390.tar.xz +-rw-r--r-- 1 root root 937 2009-05-15 20:43 ./source/xap/MPlayer/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/audacious +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/audacious-plugins +-rw-r--r-- 1 root root 238 2008-11-29 20:13 ./source/xap/audacious-plugins/amidi-plug.fix-drct.diff.gz +-rw-r--r-- 1 root root 2239522 2008-05-23 22:38 ./source/xap/audacious-plugins/audacious-plugins-1.5.1.tar.bz2 +-rwxr-xr-x 1 root root 3608 2009-05-19 20:05 ./source/xap/audacious-plugins/audacious-plugins.SlackBuild +-rw-r--r-- 1 root root 345 2008-09-14 19:29 ./source/xap/audacious-plugins/audacious-plugins.libmtp8.diff.gz +-rw-r--r-- 1 root root 892 2007-03-08 06:08 ./source/xap/audacious-plugins/slack-desc +-rw-r--r-- 1 root root 1374028 2008-05-23 21:54 ./source/xap/audacious/audacious-1.5.1.tar.bz2 +-rwxr-xr-x 1 root root 3739 2009-05-19 20:05 ./source/xap/audacious/audacious.SlackBuild +-rw-r--r-- 1 root root 406 2009-04-10 22:03 ./source/xap/audacious/audacious.handle_cmd_line_options.diff.gz +-rw-r--r-- 1 root root 1075 2007-03-08 05:46 ./source/xap/audacious/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/blackbox +-rw-r--r-- 1 root root 185230 2002-11-04 01:43 ./source/xap/blackbox/bbkeys-0.8.6.tar.gz +-rw-r--r-- 1 root root 292950 2002-09-18 18:11 ./source/xap/blackbox/blackbox-0.65.0.tar.gz +-rwxr-xr-x 1 root root 4112 2009-05-19 20:05 ./source/xap/blackbox/blackbox.SlackBuild +-rw-r--r-- 1 root root 72210 2005-01-19 03:32 ./source/xap/blackbox/blackbox_0.65.0-5.diff.gz +-rw-r--r-- 1 root root 900 2002-05-05 23:41 ./source/xap/blackbox/slack-desc +-rw-r--r-- 1 root root 288 2007-02-07 04:58 ./source/xap/blackbox/xinitrc.blackbox.gz +drwxr-xr-x 2 root root 4096 2009-07-01 20:18 ./source/xap/electricsheep +-rw-r--r-- 1 root root 1306 2009-01-07 22:42 ./source/xap/electricsheep/README.slackware +-rw-r--r-- 1 root root 3116176 2009-03-06 00:30 ./source/xap/electricsheep/electricsheep-20090306.tar.xz +-rwxr-xr-- 1 root root 9392 2009-07-01 20:27 ./source/xap/electricsheep/electricsheep.SlackBuild +-rw-r--r-- 1 root root 268 2009-07-01 19:53 ./source/xap/electricsheep/electricsheep.mplayer.diff.gz +-rw-r--r-- 1 root root 524 2009-01-07 21:38 ./source/xap/electricsheep/electricsheep_gnome-open.patch +-rw-r--r-- 1 root root 1116 2008-12-15 23:44 ./source/xap/electricsheep/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/fluxbox +-rw-r--r-- 1 root root 777660 2008-09-19 16:00 ./source/xap/fluxbox/fluxbox-1.1.1.tar.bz2 +-rwxr-xr-x 1 root root 2765 2009-05-19 20:05 ./source/xap/fluxbox/fluxbox.SlackBuild +-rw-r--r-- 1 root root 687 2005-07-21 19:03 ./source/xap/fluxbox/slack-desc +-rw-r--r-- 1 root root 289 2007-02-07 04:48 ./source/xap/fluxbox/xinitrc.fluxbox.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/fvwm +-rw-r--r-- 1 root root 23007 2007-02-18 02:02 ./source/xap/fvwm/ancient-icons.tar.gz +-rw-r--r-- 1 root root 279 2004-04-05 01:55 ./source/xap/fvwm/doinst.sh.gz +-rw-r--r-- 1 root root 1426470 2006-12-09 12:39 ./source/xap/fvwm/fvwm-2.4.20.tar.bz2 +-rwxr-xr-x 1 root root 3827 2009-05-19 20:05 ./source/xap/fvwm/fvwm.SlackBuild +-rw-r--r-- 1 root root 442 1999-09-13 19:12 ./source/xap/fvwm/fvwm.colormap.diff.gz +-rw-r--r-- 1 root root 792 2008-02-11 03:44 ./source/xap/fvwm/slack-desc +-rw-r--r-- 1 root root 7625 2007-02-18 02:15 ./source/xap/fvwm/system.fvwm2rc.gz +-rw-r--r-- 1 root root 291 2007-02-18 02:12 ./source/xap/fvwm/xinitrc.fvwm2.gz +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/gftp +-rw-r--r-- 1 root root 1687167 2008-12-02 14:07 ./source/xap/gftp/gftp-2.0.19.tar.bz2 +-rwxr-xr-x 1 root root 2997 2009-05-23 00:41 ./source/xap/gftp/gftp.SlackBuild +-rw-r--r-- 1 root root 304 2008-12-02 20:08 ./source/xap/gftp/gftp.desktop.gz +-rw-r--r-- 1 root root 899 2008-02-11 03:44 ./source/xap/gftp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gimp +-rw-r--r-- 1 root root 16075908 2009-03-16 21:56 ./source/xap/gimp/gimp-2.6.6.tar.bz2 +-rwxr-xr-x 1 root root 3223 2009-06-09 19:03 ./source/xap/gimp/gimp.SlackBuild +-rw-r--r-- 1 root root 928 2003-01-29 03:18 ./source/xap/gimp/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gkrellm +-rw-r--r-- 1 root root 747697 2008-10-04 02:03 ./source/xap/gkrellm/gkrellm-2.3.2.tar.bz2 +-rw-r--r-- 1 root root 12374 2004-02-01 16:30 ./source/xap/gkrellm/gkrellm-countdown-0.1.1.tar.gz +-rwxr-xr-x 1 root root 3712 2009-05-19 20:05 ./source/xap/gkrellm/gkrellm.SlackBuild +-rw-r--r-- 1 root root 211 2008-10-26 01:35 ./source/xap/gkrellm/gkrellm.theme.defaults.diff.gz +-rw-r--r-- 1 root root 971 2004-04-29 18:52 ./source/xap/gkrellm/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/gnuchess +-rw-r--r-- 1 root root 142963 2004-01-19 11:50 ./source/xap/gnuchess/Sjeng-Free-11.2.tar.bz2 +-rw-r--r-- 1 root root 652 2004-10-27 05:47 ./source/xap/gnuchess/chess.png +-rw-r--r-- 1 root root 428502 2007-01-22 18:04 ./source/xap/gnuchess/eboard-1.0.3.tar.bz2 +-rw-r--r-- 1 root root 224 2004-10-27 06:07 ./source/xap/gnuchess/eboard.desktop +-rw-r--r-- 1 root root 193507 2003-08-07 14:15 ./source/xap/gnuchess/gnuchess-5.07.tar.bz2 +-rwxr-xr-x 1 root root 5563 2009-05-23 00:41 ./source/xap/gnuchess/gnuchess.SlackBuild +-rw-r--r-- 1 root root 1229 2007-05-16 00:54 ./source/xap/gnuchess/gnuchess.SlackBuild.diff.gz +-rw-r--r-- 1 root root 241 2007-05-16 00:54 ./source/xap/gnuchess/gnuchess.gcc4_fix.diff.gz +-rw-r--r-- 1 root root 796 2004-10-27 22:53 ./source/xap/gnuchess/slack-desc +-rw-r--r-- 1 root root 786236 2004-10-27 22:40 ./source/xap/gnuchess/xboard-4.2.7.tar.bz2 +-rw-r--r-- 1 root root 1311 2007-05-16 00:54 ./source/xap/gnuchess/xboard.buffer_overflow_fix.diff.gz +-rw-r--r-- 1 root root 224 2004-10-27 06:04 ./source/xap/gnuchess/xboard.desktop +-rw-r--r-- 1 root root 310 2004-10-27 22:40 ./source/xap/gnuchess/xboard.infodir.diff.gz +drwxr-xr-x 2 root root 4096 2009-08-10 23:29 ./source/xap/gnuplot +-rw-r--r-- 1 root root 1926696 2009-03-30 05:16 ./source/xap/gnuplot/gnuplot-4.2.5.tar.xz +-rwxr-xr-x 1 root root 3411 2009-08-11 00:48 ./source/xap/gnuplot/gnuplot.SlackBuild +-rw-r--r-- 1 root root 1105 2002-03-16 08:23 ./source/xap/gnuplot/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gqview +-rw-r--r-- 1 root root 158 2007-02-18 22:16 ./source/xap/gqview/doinst.sh.gz +-rw-r--r-- 1 root root 1101019 2006-12-03 02:19 ./source/xap/gqview/gqview-2.1.5.tar.bz2 +-rwxr-xr-x 1 root root 3148 2009-05-19 20:05 ./source/xap/gqview/gqview.SlackBuild +-rw-r--r-- 1 root root 729 2007-04-01 22:31 ./source/xap/gqview/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-09 05:40 ./source/xap/gucharmap +-rw-r--r-- 1 root root 121 2009-03-23 15:07 ./source/xap/gucharmap/doinst.sh.gz +-rw-r--r-- 1 root root 2429228 2009-05-18 20:37 ./source/xap/gucharmap/gucharmap-2.26.2.tar.xz +-rwxr-xr-x 1 root root 2832 2009-06-09 06:20 ./source/xap/gucharmap/gucharmap.SlackBuild +-rw-r--r-- 1 root root 669 2004-10-13 19:31 ./source/xap/gucharmap/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gv +-rw-r--r-- 1 root root 378928 2009-03-22 09:11 ./source/xap/gv/gv-3.6.7.tar.xz +-rwxr-xr-x 1 root root 3221 2009-05-19 20:05 ./source/xap/gv/gv.SlackBuild +-rw-r--r-- 1 root root 823 2002-03-15 04:27 ./source/xap/gv/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/gxine +-rw-r--r-- 1 root root 1112012 2008-06-12 21:44 ./source/xap/gxine/gxine-0.5.903.tar.bz2 +-rwxr-xr-x 1 root root 3142 2009-06-10 01:22 ./source/xap/gxine/gxine.SlackBuild +-rw-r--r-- 1 root root 453 2006-02-02 19:36 ./source/xap/gxine/gxine.desktop.gz +-rw-r--r-- 1 root root 792 2003-09-23 02:20 ./source/xap/gxine/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-15 01:56 ./source/xap/imagemagick +-rw-r--r-- 1 root root 5842976 2009-06-06 00:42 ./source/xap/imagemagick/ImageMagick-6.5.3-3.tar.xz +-rwxr-xr-x 1 root root 4503 2009-06-09 05:49 ./source/xap/imagemagick/imagemagick.SlackBuild +-rw-r--r-- 1 root root 1002 2004-04-11 20:51 ./source/xap/imagemagick/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-03 18:45 ./source/xap/mozilla-firefox +-rw-r--r-- 1 root root 46787928 2009-07-30 15:35 ./source/xap/mozilla-firefox/firefox-3.5.2-source.tar.bz2 +-rw-r--r-- 1 root root 194 2009-07-31 00:28 ./source/xap/mozilla-firefox/firefox-3.5.2-source.tar.bz2.asc +-rw-r--r-- 1 root root 327 2008-06-17 17:19 ./source/xap/mozilla-firefox/firefox.moz_plugin_path.diff.gz +-rw-r--r-- 1 root root 24263 2009-06-18 08:34 ./source/xap/mozilla-firefox/firefox.png +-rw-r--r-- 1 root root 462 2009-07-01 06:05 ./source/xap/mozilla-firefox/mimeTypes.rdf.gz +-rw-r--r-- 1 root root 680 2009-07-01 13:28 ./source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff.gz +-rwxr-xr-x 1 root root 6060 2009-08-03 18:45 ./source/xap/mozilla-firefox/mozilla-firefox.SlackBuild +-rw-r--r-- 1 root root 2620 2009-07-01 06:10 ./source/xap/mozilla-firefox/mozilla-firefox.desktop +-rw-r--r-- 1 root root 993 2005-03-08 04:51 ./source/xap/mozilla-firefox/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-20 21:40 ./source/xap/mozilla-thunderbird +-rw-r--r-- 1 root root 308 2005-12-09 22:22 ./source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff.gz +-rwxr-xr-x 1 root root 4561 2009-08-20 21:40 ./source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild +-rw-r--r-- 1 root root 3378 2005-03-08 05:13 ./source/xap/mozilla-thunderbird/mozilla-thunderbird.desktop +-rw-r--r-- 1 root root 1172 2005-03-08 04:50 ./source/xap/mozilla-thunderbird/slack-desc +-rw-r--r-- 1 root root 38860245 2009-08-19 21:22 ./source/xap/mozilla-thunderbird/thunderbird-2.0.0.23-source.tar.bz2 +-rw-r--r-- 1 root root 194 2009-08-19 21:42 ./source/xap/mozilla-thunderbird/thunderbird-2.0.0.23-source.tar.bz2.asc +-rw-r--r-- 1 root root 2980 2005-03-08 22:19 ./source/xap/mozilla-thunderbird/thunderbird.png +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/pan +-rw-r--r-- 1 root root 1452883 2008-07-30 02:46 ./source/xap/pan/pan-0.133.tar.bz2 +-rwxr-xr-x 1 root root 3212 2009-05-19 20:05 ./source/xap/pan/pan.SlackBuild +-rw-r--r-- 1 root root 721 2008-02-11 03:44 ./source/xap/pan/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-19 17:56 ./source/xap/pidgin +-rw-r--r-- 1 root root 6319964 2009-08-18 17:14 ./source/xap/pidgin/pidgin-2.5.9.tar.xz +-rw-r--r-- 1 root root 586394 2008-03-09 08:03 ./source/xap/pidgin/pidgin-encryption-3.0.tar.gz +-rwxr-xr-x 1 root root 5725 2009-08-19 17:59 ./source/xap/pidgin/pidgin.SlackBuild +-rw-r--r-- 1 root root 321 2008-12-07 04:57 ./source/xap/pidgin/purple-allow-sign-rsa-md5.patch.gz +-rw-r--r-- 1 root root 926 2008-03-09 08:06 ./source/xap/pidgin/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/rdesktop +-rw-r--r-- 1 root root 243001 2008-05-11 06:24 ./source/xap/rdesktop/rdesktop-1.6.0.tar.bz2 +-rwxr-xr-x 1 root root 3067 2009-05-19 20:05 ./source/xap/rdesktop/rdesktop.SlackBuild +-rw-r--r-- 1 root root 854 2006-09-12 01:52 ./source/xap/rdesktop/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/rxvt +-rw-r--r-- 1 root root 493199 2003-03-26 06:47 ./source/xap/rxvt/rxvt-2.7.10.tar.bz2 +-rwxr-xr-x 1 root root 3012 2009-06-09 19:32 ./source/xap/rxvt/rxvt.SlackBuild +-rw-r--r-- 1 root root 2002 2003-06-08 04:09 ./source/xap/rxvt/rxvt.utempter.diff.gz +-rw-r--r-- 1 root root 880 2002-03-10 07:02 ./source/xap/rxvt/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/xap/sane +-rw-r--r-- 1 root root 133 2006-09-23 08:33 ./source/xap/sane/dll.conf.additions.gz +-rw-r--r-- 1 root root 285 2008-02-12 16:23 ./source/xap/sane/doinst.sh.gz +-rw-r--r-- 1 root root 3126540 2008-02-12 02:12 ./source/xap/sane/sane-backends-1.0.19.tar.bz2 +-rw-r--r-- 1 root root 190172 2005-09-18 07:21 ./source/xap/sane/sane-frontends-1.0.14.tar.bz2 +-rwxr-xr-x 1 root root 4209 2009-05-23 00:41 ./source/xap/sane/sane.SlackBuild +-rw-r--r-- 1 root root 776 2002-04-04 02:41 ./source/xap/sane/slack-desc +drwxr-xr-x 2 root root 4096 2009-06-24 18:25 ./source/xap/seamonkey +-rw-r--r-- 1 root root 231 2007-06-01 23:47 ./source/xap/seamonkey/doinst.sh.gz +-rw-r--r-- 1 root root 28513384 2009-06-06 21:58 ./source/xap/seamonkey/seamonkey-1.1.17.source.tar.xz +-rw-r--r-- 1 root root 12796 2006-02-09 03:17 ./source/xap/seamonkey/seamonkey-icon.png +-rw-r--r-- 1 root root 185 2006-02-09 03:40 ./source/xap/seamonkey/seamonkey-mail-icon.png +-rw-r--r-- 1 root root 207 2006-02-09 03:23 ./source/xap/seamonkey/seamonkey-mail.desktop +-rwxr-xr-x 1 root root 8518 2009-06-24 18:46 ./source/xap/seamonkey/seamonkey.SlackBuild +-rw-r--r-- 1 root root 178 2006-02-09 03:23 ./source/xap/seamonkey/seamonkey.desktop +-rw-r--r-- 1 root root 333 2007-02-20 03:25 ./source/xap/seamonkey/seamonkey.moz_plugin_path.diff.gz +-rw-r--r-- 1 root root 994 2006-02-09 02:07 ./source/xap/seamonkey/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/seyon +-rw-r--r-- 1 root root 713 1999-05-09 22:46 ./source/xap/seyon/seyon-2.20c.lsm +-rw-r--r-- 1 root root 167487 1999-05-09 22:47 ./source/xap/seyon/seyon-2.20c.tar.gz +-rwxr-xr-x 1 root root 3601 2009-05-19 20:05 ./source/xap/seyon/seyon.SlackBuild +-rw-r--r-- 1 root root 36723 2005-01-03 22:32 ./source/xap/seyon/seyon_2.20c-16.diff.gz +-rw-r--r-- 1 root root 1065 2002-03-24 00:53 ./source/xap/seyon/slack-desc +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/thunar-volman +-rw-r--r-- 1 root root 946 2009-02-26 03:27 ./source/xap/thunar-volman/slack-desc +-rw-r--r-- 1 root root 353504 2008-09-14 13:04 ./source/xap/thunar-volman/thunar-volman-0.3.80.tar.bz2 +-rwxr-xr-x 1 root root 2594 2009-05-19 20:05 ./source/xap/thunar-volman/thunar-volman.SlackBuild +lrwxrwxrwx 1 root root 9 2009-08-26 16:34 ./source/xap/vim-gvim -> ../ap/vim +drwxr-xr-x 2 root root 4096 2009-05-23 02:30 ./source/xap/windowmaker +-rw-r--r-- 1 root root 2078830 2008-07-30 06:57 ./source/xap/windowmaker/WindowMaker-20060427cvs.tar.bz2 +-rw-r--r-- 1 root root 238018 1999-04-01 14:30 ./source/xap/windowmaker/WindowMaker-extra-0.1.tar.gz +-rw-r--r-- 1 root root 917 2004-10-28 06:46 ./source/xap/windowmaker/slack-desc +-rwxr-xr-x 1 root root 3964 2009-06-09 20:05 ./source/xap/windowmaker/windowmaker.SlackBuild +-rw-r--r-- 1 root root 390 2008-07-30 05:51 ./source/xap/windowmaker/windowmaker.no-mmx.diff.gz +-rw-r--r-- 1 root root 669 2002-05-30 20:16 ./source/xap/windowmaker/wmaker.inst.diff.gz +-rw-r--r-- 1 root root 788 2002-05-30 20:01 ./source/xap/windowmaker/xinitrc.wmaker +drwxr-xr-x 2 root root 4096 2009-08-18 22:26 ./source/xap/x11-ssh-askpass +-rw-r--r-- 1 root root 533 2009-07-11 03:15 ./source/xap/x11-ssh-askpass/README +-rw-r--r-- 1 root root 765 2009-01-17 08:31 ./source/xap/x11-ssh-askpass/slack-desc +-rw-r--r-- 1 root root 29229 2009-07-20 23:44 ./source/xap/x11-ssh-askpass/x11-ssh-askpass-1.2.4.1.tar.gz +-rwxr-xr-x 1 root root 1634 2009-08-18 23:17 ./source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild +-rw-r--r-- 1 root root 349 2009-07-11 03:15 ./source/xap/x11-ssh-askpass/x11-ssh-askpass.info +-rw-r--r-- 1 root root 261 2008-03-29 00:07 ./source/xap/x11-ssh-askpass/xprofile.sample +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/x3270 +-rw-r--r-- 1 root root 391 2007-04-02 02:36 ./source/xap/x3270/doinst.sh.gz +-rw-r--r-- 1 root root 766 2002-03-12 06:49 ./source/xap/x3270/slack-desc +-rw-r--r-- 1 root root 854545 2008-08-28 19:23 ./source/xap/x3270/x3270-3.3.7p8.tar.bz2 +-rwxr-xr-x 1 root root 2936 2009-05-19 20:05 ./source/xap/x3270/x3270.SlackBuild +drwxr-xr-x 3 root root 4096 2009-05-19 20:05 ./source/xap/xchat +drwxr-xr-x 2 root root 4096 2009-04-10 14:28 ./source/xap/xchat/patches +-rw-r--r-- 1 root root 43 2007-02-15 05:32 ./source/xap/xchat/patches/patches.url +-rw-r--r-- 1 root root 903 2008-06-24 11:43 ./source/xap/xchat/patches/xc286-smallfixes.diff.gz +-rw-r--r-- 1 root root 848 2009-04-10 14:24 ./source/xap/xchat/patches/xchat.gtk_2_14.diff.gz +-rw-r--r-- 1 root root 620 2008-02-11 03:44 ./source/xap/xchat/slack-desc +-rw-r--r-- 1 root root 1423645 2008-06-12 08:47 ./source/xap/xchat/xchat-2.8.6.tar.bz2 +-rwxr-xr-x 1 root root 3268 2009-06-09 19:33 ./source/xap/xchat/xchat.SlackBuild +drwxr-xr-x 5 root root 4096 2009-07-31 06:11 ./source/xap/xfce +-rw-r--r-- 1 root root 26680 2009-07-31 06:10 ./source/xap/xfce/icons.tar.xz +drwxr-xr-x 2 root root 4096 2009-07-31 06:05 ./source/xap/xfce/patches +-rw-r--r-- 1 root root 861 2009-07-19 22:36 ./source/xap/xfce/patches/exo_quoting_fix.diff.gz +-rw-r--r-- 1 root root 746 2009-03-14 23:51 ./source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff.gz +-rw-r--r-- 1 root root 1014 2009-03-06 01:25 ./source/xap/xfce/patches/migrate-itheme-smartly.diff.gz +-rw-r--r-- 1 root root 898 2009-07-20 18:51 ./source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff.gz +-rw-r--r-- 1 root root 1559 2009-07-21 00:37 ./source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff.gz +-rw-r--r-- 1 root root 233 2009-03-01 16:14 ./source/xap/xfce/patches/xfcalendar.desktop.in.diff.gz +-rw-r--r-- 1 root root 289 2009-07-31 06:04 ./source/xap/xfce/patches/xfdesktop-fix_education_icon.diff.gz +drwxr-xr-x 2 root root 4096 2007-04-21 19:12 ./source/xap/xfce/profile.d +-rwxr-xr-x 1 root root 162 2007-06-29 01:03 ./source/xap/xfce/profile.d/xfce.csh +-rwxr-xr-x 1 root root 170 2007-04-21 19:14 ./source/xap/xfce/profile.d/xfce.sh +-rw-r--r-- 1 root root 764 2008-04-06 20:19 ./source/xap/xfce/slack-desc +drwxr-xr-x 2 root root 4096 2009-07-20 19:45 ./source/xap/xfce/src +-rw-r--r-- 1 root root 1368876 2009-07-20 18:15 ./source/xap/xfce/src/Terminal-0.4.0.tar.xz +-rw-r--r-- 1 root root 3473596 2009-04-19 07:55 ./source/xap/xfce/src/Thunar-1.0.1.tar.xz +-rw-r--r-- 1 root root 1163740 2009-04-19 07:55 ./source/xap/xfce/src/exo-0.3.101.tar.xz +-rw-r--r-- 1 root root 228668 2009-02-26 01:41 ./source/xap/xfce/src/gtk-xfce-engine-2.6.0.tar.xz +-rw-r--r-- 1 root root 331932 2009-04-19 07:55 ./source/xap/xfce/src/libxfce4menu-4.6.1.tar.xz +-rw-r--r-- 1 root root 332712 2009-04-19 07:55 ./source/xap/xfce/src/libxfce4util-4.6.1.tar.xz +-rw-r--r-- 1 root root 551248 2009-04-19 07:55 ./source/xap/xfce/src/libxfcegui4-4.6.1.tar.xz +-rw-r--r-- 1 root root 269176 2009-02-26 18:56 ./source/xap/xfce/src/mousepad-0.2.16.tar.xz +-rw-r--r-- 1 root root 1698784 2009-04-19 07:55 ./source/xap/xfce/src/orage-4.6.1.tar.xz +-rw-r--r-- 1 root root 501132 2009-04-19 07:55 ./source/xap/xfce/src/xfce-utils-4.6.1.tar.xz +-rw-r--r-- 1 root root 259900 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-appfinder-4.6.1.tar.xz +-rw-r--r-- 1 root root 58600 2009-02-26 01:41 ./source/xap/xfce/src/xfce4-dev-tools-4.6.0.tar.xz +-rw-r--r-- 1 root root 334516 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-mixer-4.6.1.tar.xz +-rw-r--r-- 1 root root 746908 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-panel-4.6.1.tar.xz +-rw-r--r-- 1 root root 1201756 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-session-4.6.1.tar.xz +-rw-r--r-- 1 root root 416284 2009-04-19 07:55 ./source/xap/xfce/src/xfce4-settings-4.6.1.tar.xz +-rw-r--r-- 1 root root 354500 2009-04-19 07:55 ./source/xap/xfce/src/xfconf-4.6.1.tar.xz +-rw-r--r-- 1 root root 3136772 2009-04-19 07:55 ./source/xap/xfce/src/xfdesktop-4.6.1.tar.xz +-rw-r--r-- 1 root root 728660 2009-04-19 07:55 ./source/xap/xfce/src/xfprint-4.6.1.tar.xz +-rw-r--r-- 1 root root 1543832 2009-04-19 07:55 ./source/xap/xfce/src/xfwm4-4.6.1.tar.xz +-rw-r--r-- 1 root root 372732 2009-02-26 01:41 ./source/xap/xfce/src/xfwm4-themes-4.6.0.tar.xz +-rwxr-xr-x 1 root root 7204 2009-07-31 06:41 ./source/xap/xfce/xfce.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-15 13:16 ./source/xap/xfce4-power-manager +-rw-r--r-- 1 root root 172 2009-02-08 07:12 ./source/xap/xfce4-power-manager/doinst.sh.gz +-rw-r--r-- 1 root root 936 2009-03-06 23:51 ./source/xap/xfce4-power-manager/slack-desc +-rw-r--r-- 1 root root 419675 2009-05-15 12:58 ./source/xap/xfce4-power-manager/xfce4-power-manager-0.6.6.tar.bz2 +-rwxr-xr-x 1 root root 2888 2009-06-12 20:54 ./source/xap/xfce4-power-manager/xfce4-power-manager.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xfractint +-rw-r--r-- 1 root root 103531 2002-03-14 20:57 ./source/xap/xfractint/palette.maps.tar.gz +-rw-r--r-- 1 root root 871 2002-03-14 20:25 ./source/xap/xfractint/slack-desc +-rw-r--r-- 1 root root 1212397 2008-10-14 01:16 ./source/xap/xfractint/xfractint-20.04p09.tar.bz2 +-rwxr-xr-x 1 root root 3446 2009-05-19 20:05 ./source/xap/xfractint/xfractint.SlackBuild +drwxr-xr-x 2 root root 4096 2009-08-22 21:20 ./source/xap/xgames +-rw-r--r-- 1 root root 269 1999-08-04 18:49 ./source/xap/xgames/maze.diff.gz +-rw-r--r-- 1 root root 7945 1994-10-22 00:44 ./source/xap/xgames/maze.tar.gz +-rw-r--r-- 1 root root 696 2007-03-01 22:04 ./source/xap/xgames/slack-desc +-rw-r--r-- 1 root root 871 2007-02-22 02:20 ./source/xap/xgames/spider.diff.gz +-rw-r--r-- 1 root root 130637 1993-12-04 17:22 ./source/xap/xgames/spider.tar.gz +-rw-r--r-- 1 root root 287 1999-08-04 18:54 ./source/xap/xgames/xcolormap.diff.gz +-rw-r--r-- 1 root root 2808 1993-12-04 17:18 ./source/xap/xgames/xcolormap.tar.gz +-rw-r--r-- 1 root root 5937 1993-12-04 17:18 ./source/xap/xgames/xcuckoo-1.1.tar.gz +-rw-r--r-- 1 root root 228 2007-02-28 19:11 ./source/xap/xgames/xcuckoo.diff.gz +-rwxr-xr-x 1 root root 4706 2009-08-22 21:21 ./source/xap/xgames/xgames.SlackBuild +-rw-r--r-- 1 root root 1150 2009-08-22 20:58 ./source/xap/xgames/xlander-2009-07-18.diff.gz +-rw-r--r-- 1 root root 2543 2007-03-01 18:44 ./source/xap/xgames/xlander.fixes.diff.gz +-rw-r--r-- 1 root root 15612 1995-06-17 19:23 ./source/xap/xgames/xlander.tar.gz +-rw-r--r-- 1 root root 12791 2008-10-25 13:16 ./source/xap/xgames/xminesweep3.0.tar.gz +-rw-r--r-- 1 root root 22849 1999-08-04 19:05 ./source/xap/xgames/xneko.tar.gz +-rw-r--r-- 1 root root 21694 1993-12-02 07:19 ./source/xap/xgames/xroach.tar.gz +-rw-r--r-- 1 root root 37809 1995-12-01 02:04 ./source/xap/xgames/xsnow-1.40.tar.gz +drwxr-xr-x 2 root root 4096 2009-04-06 21:09 ./source/xap/xine-lib +-rw-r--r-- 1 root root 927 2003-08-12 00:43 ./source/xap/xine-lib/slack-desc +-rw-r--r-- 1 root root 7468182 2009-04-03 16:02 ./source/xap/xine-lib/xine-lib-1.1.16.3.tar.bz2 +-rwxr-xr-x 1 root root 3060 2009-06-14 03:43 ./source/xap/xine-lib/xine-lib.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-23 00:42 ./source/xap/xine-ui +-rw-r--r-- 1 root root 832 2003-08-12 01:07 ./source/xap/xine-ui/slack-desc +-rw-r--r-- 1 root root 2138011 2007-05-03 22:47 ./source/xap/xine-ui/xine-ui-0.99.5.tar.bz2 +-rwxr-xr-x 1 root root 2723 2009-05-23 00:42 ./source/xap/xine-ui/xine-ui.SlackBuild +-rw-r--r-- 1 root root 258 2007-05-04 22:27 ./source/xap/xine-ui/xine.desktop.gz +drwxr-xr-x 2 root root 4096 2009-08-08 00:54 ./source/xap/xlockmore +-rw-r--r-- 1 root root 225 2002-02-23 22:23 ./source/xap/xlockmore/l-bob.README +-rw-r--r-- 1 root root 27870 1998-04-01 15:09 ./source/xap/xlockmore/l-bob.xbm +-rw-r--r-- 1 root root 15190 1998-04-01 15:09 ./source/xap/xlockmore/l-linux.xbm +-rw-r--r-- 1 root root 7025 2002-02-23 21:40 ./source/xap/xlockmore/s-bob.xbm +-rw-r--r-- 1 root root 922 2002-03-24 00:54 ./source/xap/xlockmore/slack-desc +-rw-r--r-- 1 root root 1901583 2009-04-13 23:37 ./source/xap/xlockmore/xlockmore-5.28.tar.bz2 +-rw-r--r-- 1 root root 194 2009-04-13 23:37 ./source/xap/xlockmore/xlockmore-5.28.tar.bz2.asc +-rwxr-xr-x 1 root root 3449 2009-08-08 01:09 ./source/xap/xlockmore/xlockmore.SlackBuild +-rw-r--r-- 1 root root 371 2002-05-30 04:25 ./source/xap/xlockmore/xlockmore.bitmap.diff.gz +drwxr-xr-x 2 root root 4096 2009-06-09 20:20 ./source/xap/xmms +-rw-r--r-- 1 root root 236839 2004-03-02 22:28 ./source/xap/xmms/arts_output-0.7.1.tar.gz +-rw-r--r-- 1 root root 834 2004-02-24 02:30 ./source/xap/xmms/slack-desc +-rw-r--r-- 1 root root 2581032 2007-11-16 22:53 ./source/xap/xmms/xmms-1.2.11.tar.bz2 +-rwxr-xr-x 1 root root 2938 2009-06-09 20:21 ./source/xap/xmms/xmms.SlackBuild +-rw-r--r-- 1 root root 525 2008-09-11 20:50 ./source/xap/xmms/xmms.desktop +-rw-r--r-- 1 root root 279 2008-09-12 20:50 ./source/xap/xmms/xmms.gtk.doublesize.diff.gz +-rw-r--r-- 1 root root 260 2009-06-09 20:19 ./source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xpaint +-rw-r--r-- 1 root root 902 2002-03-12 23:40 ./source/xap/xpaint/slack-desc +-rw-r--r-- 1 root root 459429 2005-09-09 20:02 ./source/xap/xpaint/xpaint-2.7.8.1.tar.bz2 +-rwxr-xr-x 1 root root 3529 2009-05-19 20:05 ./source/xap/xpaint/xpaint.SlackBuild +-rw-r--r-- 1 root root 702 2007-05-10 21:48 ./source/xap/xpaint/xpaint_2.7.8.1-1.2.diff.gz +-rw-r--r-- 1 root root 314 2008-11-06 21:49 ./source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xpdf +-rw-r--r-- 1 root root 532 2007-08-08 19:25 ./source/xap/xpdf/VendorP.h.buggy.diff +-rw-r--r-- 1 root root 711 2007-04-12 01:49 ./source/xap/xpdf/slack-desc +-rw-r--r-- 1 root root 674912 2007-02-27 22:56 ./source/xap/xpdf/xpdf-3.02.tar.gz +-rw-r--r-- 1 root root 189 2007-02-27 22:50 ./source/xap/xpdf/xpdf-3.02.tar.gz.sig +-rw-r--r-- 1 root root 1050 2007-07-30 18:51 ./source/xap/xpdf/xpdf-3.02pl1.patch +-rw-r--r-- 1 root root 189 2007-07-30 18:51 ./source/xap/xpdf/xpdf-3.02pl1.patch.sig +-rw-r--r-- 1 root root 20843 2007-11-07 18:16 ./source/xap/xpdf/xpdf-3.02pl2.patch +-rw-r--r-- 1 root root 189 2007-11-07 18:16 ./source/xap/xpdf/xpdf-3.02pl2.patch.sig +-rw-r--r-- 1 root root 30727 2009-04-16 19:18 ./source/xap/xpdf/xpdf-3.02pl3.patch +-rw-r--r-- 1 root root 197 2009-04-16 19:18 ./source/xap/xpdf/xpdf-3.02pl3.patch.sig +-rw-r--r-- 1 root root 207 2008-03-02 07:24 ./source/xap/xpdf/xpdf-arabic.diff.gz +-rw-r--r-- 1 root root 1058 2004-07-18 23:14 ./source/xap/xpdf/xpdf-arabic.tar.gz +-rw-r--r-- 1 root root 375 2008-03-02 07:46 ./source/xap/xpdf/xpdf-chinese-simplified.diff.gz +-rw-r--r-- 1 root root 835960 2004-07-27 22:29 ./source/xap/xpdf/xpdf-chinese-simplified.tar.gz +-rw-r--r-- 1 root root 354 2008-03-02 07:45 ./source/xap/xpdf/xpdf-chinese-traditional.diff.gz +-rw-r--r-- 1 root root 794604 2004-07-27 22:30 ./source/xap/xpdf/xpdf-chinese-traditional.tar.gz +-rw-r--r-- 1 root root 242 2008-03-02 07:27 ./source/xap/xpdf/xpdf-cyrillic.diff.gz +-rw-r--r-- 1 root root 1660 2004-07-18 23:15 ./source/xap/xpdf/xpdf-cyrillic.tar.gz +-rw-r--r-- 1 root root 236 2008-03-02 07:28 ./source/xap/xpdf/xpdf-greek.diff.gz +-rw-r--r-- 1 root root 1263 2004-07-18 23:15 ./source/xap/xpdf/xpdf-greek.tar.gz +-rw-r--r-- 1 root root 224 2008-03-02 07:28 ./source/xap/xpdf/xpdf-hebrew.diff.gz +-rw-r--r-- 1 root root 1314 2004-07-18 23:15 ./source/xap/xpdf/xpdf-hebrew.tar.gz +-rw-r--r-- 1 root root 750 2008-03-02 07:48 ./source/xap/xpdf/xpdf-japanese.diff.gz +-rw-r--r-- 1 root root 494803 2004-07-27 22:30 ./source/xap/xpdf/xpdf-japanese.tar.gz +-rw-r--r-- 1 root root 312 2008-03-02 07:34 ./source/xap/xpdf/xpdf-korean.diff.gz +-rw-r--r-- 1 root root 470455 2005-07-07 18:05 ./source/xap/xpdf/xpdf-korean.tar.gz +-rw-r--r-- 1 root root 200 2008-03-02 07:36 ./source/xap/xpdf/xpdf-latin2.diff.gz +-rw-r--r-- 1 root root 1435 2004-07-18 23:15 ./source/xap/xpdf/xpdf-latin2.tar.gz +-rw-r--r-- 1 root root 498 2007-04-12 00:58 ./source/xap/xpdf/xpdf-resizefix.diff.gz +-rw-r--r-- 1 root root 231 2008-03-02 07:36 ./source/xap/xpdf/xpdf-thai.diff.gz +-rw-r--r-- 1 root root 1873 2004-07-18 23:17 ./source/xap/xpdf/xpdf-thai.tar.gz +-rw-r--r-- 1 root root 210 2008-03-02 07:37 ./source/xap/xpdf/xpdf-turkish.diff.gz +-rw-r--r-- 1 root root 1140 2004-07-18 23:17 ./source/xap/xpdf/xpdf-turkish.tar.gz +-rwxr-xr-x 1 root root 4735 2009-05-19 20:05 ./source/xap/xpdf/xpdf.SlackBuild +-rw-r--r-- 1 root root 3290 2008-03-18 02:37 ./source/xap/xpdf/xpdf.desktop +-rw-r--r-- 1 root root 37396 2007-11-12 05:27 ./source/xap/xpdf/xpdf_3.02-1.3.diff.gz +-rw-r--r-- 1 root root 636 2007-02-18 03:26 ./source/xap/xpdf/xpdfrc.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xsane +-rw-r--r-- 1 root root 955 2004-05-11 19:29 ./source/xap/xsane/slack-desc +-rw-r--r-- 1 root root 2531642 2008-09-21 18:31 ./source/xap/xsane/xsane-0.996.tar.bz2 +-rwxr-xr-x 1 root root 2842 2009-05-19 20:05 ./source/xap/xsane/xsane.SlackBuild +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xscreensaver +-rw-r--r-- 1 root root 2868 2008-10-17 04:30 ./source/xap/xscreensaver/setuid.c.gz +-rw-r--r-- 1 root root 887 2008-10-17 04:31 ./source/xap/xscreensaver/slack-desc +-rw-r--r-- 1 root root 3310808 2008-12-28 07:59 ./source/xap/xscreensaver/xscreensaver-5.08.tar.xz +-rwxr-xr-x 1 root root 3186 2009-05-19 20:05 ./source/xap/xscreensaver/xscreensaver.SlackBuild +-rw-r--r-- 1 root root 285 2009-05-15 21:22 ./source/xap/xscreensaver/xscreensaver.electricsheep.diff.gz +-rw-r--r-- 1 root root 1763 2008-10-17 04:32 ./source/xap/xscreensaver/xscreensaver.setuid.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xv +-rw-r--r-- 1 root root 688 2002-03-10 06:26 ./source/xap/xv/slack-desc +-rw-r--r-- 1 root root 2271704 1994-12-22 15:50 ./source/xap/xv/xv-3.10.tar.gz +-rw-r--r-- 1 root root 20873 2005-05-01 20:45 ./source/xap/xv/xv-3.10a-jumbo-README.txt +-rw-r--r-- 1 root root 172642 2005-05-01 20:51 ./source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt.bz2 +-rw-r--r-- 1 root root 197713 2005-04-11 03:01 ./source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt.bz2 +-rw-r--r-- 1 root root 21943 1996-10-05 19:33 ./source/xap/xv/xv-3.10a.patch.gz +-rwxr-xr-x 1 root root 2734 2009-05-19 20:05 ./source/xap/xv/xv.SlackBuild +-rw-r--r-- 1 root root 200 2005-07-12 22:17 ./source/xap/xv/xv.prefix.diff.gz +-rw-r--r-- 1 root root 321 2008-11-06 22:29 ./source/xap/xv/xv.prefix_x86_64.diff.gz +drwxr-xr-x 2 root root 4096 2009-05-19 20:05 ./source/xap/xxgdb +-rw-r--r-- 1 root root 874 2002-03-13 02:25 ./source/xap/xxgdb/slack-desc +-rw-r--r-- 1 root root 115537 1995-11-19 16:40 ./source/xap/xxgdb/xxgdb-1.12.tar.gz +-rwxr-xr-x 1 root root 3066 2009-05-19 20:05 ./source/xap/xxgdb/xxgdb.SlackBuild +-rw-r--r-- 1 root root 607 2007-02-21 18:30 ./source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff.gz +drwxr-xr-x 3 root root 4096 2008-10-28 21:34 ./source/y +drwxr-xr-x 2 root root 4096 2009-05-23 00:41 ./source/y/bsd-games +-rw-r--r-- 1 root root 825 2001-08-30 23:25 ./source/y/bsd-games/bsd-games-2.13.lsm +-rw-r--r-- 1 root root 1861269 2001-08-30 23:25 ./source/y/bsd-games/bsd-games-2.13.tar.bz2 +-rw-r--r-- 1 root root 164 1999-09-27 21:18 ./source/y/bsd-games/bsd-games-login-fortune.csh +-rw-r--r-- 1 root root 141 2003-03-14 00:40 ./source/y/bsd-games/bsd-games-login-fortune.sh +-rwxr-xr-x 1 root root 6427 2009-05-23 00:41 ./source/y/bsd-games/bsd-games.SlackBuild +-rw-r--r-- 1 root root 563 2003-02-03 21:48 ./source/y/bsd-games/bsd-games.config.params.diff.gz +-rw-r--r-- 1 root root 283 2003-02-03 22:28 ./source/y/bsd-games/bsd-games.fortlen.diff.gz +-rw-r--r-- 1 root root 181 2002-03-10 05:27 ./source/y/bsd-games/bsd-games.fortunepath.diff.gz +-rw-r--r-- 1 root root 265 2006-09-07 02:18 ./source/y/bsd-games/bsd-games.ospeed.diff.gz +-rw-r--r-- 1 root root 386 2007-08-27 17:51 ./source/y/bsd-games/bsd-games.phantasia_install_fix.diff.gz +-rw-r--r-- 1 root root 1960 2006-09-09 00:47 ./source/y/bsd-games/bsd-games.pom.diff.gz +-rw-r--r-- 1 root root 353 2003-02-03 22:51 ./source/y/bsd-games/bsd-games.strfile.8.diff.gz +-rw-r--r-- 1 root root 405 2007-08-27 17:57 ./source/y/bsd-games/bsd-games.trek-gcc4.diff.gz +-rw-r--r-- 1 root root 15107 2002-03-10 05:09 ./source/y/bsd-games/fortunes-linuxcookie.tar.gz +-rw-r--r-- 1 root root 364407 2002-03-10 05:09 ./source/y/bsd-games/fortunes-o.tar.gz +-rw-r--r-- 1 root root 104848 1993-10-25 00:02 ./source/y/bsd-games/hangman-words.gz +-rw-r--r-- 1 root root 1056 2002-03-10 04:51 ./source/y/bsd-games/slack-desc +drwxr-xr-x 4 root root 4096 2009-08-23 08:05 ./testing +-rw-r--r-- 1 root root 6486 2009-08-23 08:05 ./testing/CHECKSUMS.md5 +-rw-r--r-- 1 root root 197 2009-08-23 08:05 ./testing/CHECKSUMS.md5.asc +-rw-r--r-- 1 root root 8043 2009-08-23 08:05 ./testing/FILE_LIST +-rw-r--r-- 1 root root 266389 2009-08-23 08:05 ./testing/MANIFEST.bz2 +-rw-r--r-- 1 root root 3805 2009-08-23 08:05 ./testing/PACKAGES.TXT +drwxr-xr-x 3 root root 4096 2009-08-25 04:31 ./testing/packages +-rw-r--r-- 1 root root 510 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txt +-rw-r--r-- 1 root root 875636 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txz +-rw-r--r-- 1 root root 197 2009-06-20 17:48 ./testing/packages/bash-4.0.024-x86_64-1.txz.asc +drwxr-xr-x 2 root root 4096 2009-08-23 08:05 ./testing/packages/linux-2.6.30.5 +-rw-r--r-- 1 root root 3420 2009-08-23 07:23 ./testing/packages/linux-2.6.30.5/README_FIRST.TXT +-rw-r--r-- 1 root root 344 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txt +-rw-r--r-- 1 root root 470352 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txz.asc +-rw-r--r-- 1 root root 626 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txt +-rw-r--r-- 1 root root 3068024 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 00:55 ./testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txz.asc +-rw-r--r-- 1 root root 332 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txt +-rw-r--r-- 1 root root 525272 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 00:48 ./testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txz.asc +-rw-r--r-- 1 root root 520 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txt +-rw-r--r-- 1 root root 16707836 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 05:03 ./testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txz.asc +-rw-r--r-- 1 root root 317 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txt +-rw-r--r-- 1 root root 50832812 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txz +-rw-r--r-- 1 root root 197 2009-08-23 00:47 ./testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txz.asc +drwxr-xr-x 4 root root 4096 2009-08-25 04:31 ./testing/source +drwxr-xr-x 3 root root 4096 2009-02-23 21:59 ./testing/source/bash +drwxr-xr-x 2 root root 4096 2009-06-20 17:38 ./testing/source/bash/bash-4.0-patches +-rw-r--r-- 1 root root 5156 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-001 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-001.sig +-rw-r--r-- 1 root root 1220 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-002 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-002.sig +-rw-r--r-- 1 root root 1749 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-003 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-003.sig +-rw-r--r-- 1 root root 1347 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-004 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-004.sig +-rw-r--r-- 1 root root 2021 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-005 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-005.sig +-rw-r--r-- 1 root root 1133 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-006 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-006.sig +-rw-r--r-- 1 root root 6920 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-007 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-007.sig +-rw-r--r-- 1 root root 1196 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-008 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-008.sig +-rw-r--r-- 1 root root 1821 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-009 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-009.sig +-rw-r--r-- 1 root root 2152 2009-03-09 15:00 ./testing/source/bash/bash-4.0-patches/bash40-010 +-rw-r--r-- 1 root root 65 2009-03-09 15:01 ./testing/source/bash/bash-4.0-patches/bash40-010.sig +-rw-r--r-- 1 root root 1383 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-011 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-011.sig +-rw-r--r-- 1 root root 1459 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-012 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-012.sig +-rw-r--r-- 1 root root 4629 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-013 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-013.sig +-rw-r--r-- 1 root root 3709 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-014 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-014.sig +-rw-r--r-- 1 root root 1914 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-015 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-015.sig +-rw-r--r-- 1 root root 3032 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-016 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-016.sig +-rw-r--r-- 1 root root 1496 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-017 +-rw-r--r-- 1 root root 65 2009-04-06 12:35 ./testing/source/bash/bash-4.0-patches/bash40-017.sig +-rw-r--r-- 1 root root 2614 2009-05-16 20:39 ./testing/source/bash/bash-4.0-patches/bash40-018 +-rw-r--r-- 1 root root 65 2009-05-16 20:39 ./testing/source/bash/bash-4.0-patches/bash40-018.sig +-rw-r--r-- 1 root root 3309 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-019 +-rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-019.sig +-rw-r--r-- 1 root root 2666 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-020 +-rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-020.sig +-rw-r--r-- 1 root root 1547 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-021 +-rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-021.sig +-rw-r--r-- 1 root root 1592 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-022 +-rw-r--r-- 1 root root 65 2009-05-16 20:40 ./testing/source/bash/bash-4.0-patches/bash40-022.sig +-rw-r--r-- 1 root root 2148 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-023 +-rw-r--r-- 1 root root 65 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-023.sig +-rw-r--r-- 1 root root 3049 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-024 +-rw-r--r-- 1 root root 65 2009-05-16 20:41 ./testing/source/bash/bash-4.0-patches/bash40-024.sig +-rw-r--r-- 1 root root 4707018 2009-02-20 20:09 ./testing/source/bash/bash-4.0.tar.bz2 +-rwxr-xr-x 1 root root 2109 2009-06-20 17:47 ./testing/source/bash/bash.SlackBuild +-rw-r--r-- 1 root root 189 2009-02-23 21:59 ./testing/source/bash/doinst.sh.gz +-rw-r--r-- 1 root root 965 2002-03-23 21:47 ./testing/source/bash/slack-desc +drwxr-xr-x 2 root root 4096 2009-08-23 07:44 ./testing/source/linux-2.6.30.5 +-rw-r--r-- 1 root root 94034 2009-08-23 00:55 ./testing/source/linux-2.6.30.5/config-generic-2.6.30.5 +drwxr-xr-x 2 root root 4096 2009-08-25 10:30 ./usb-and-pxe-installers +-rw-r--r-- 1 root root 31142 2009-07-22 14:49 ./usb-and-pxe-installers/README_PXE.TXT +-rw-r--r-- 1 root root 7938 2009-07-22 14:47 ./usb-and-pxe-installers/README_USB.TXT +-rw-r--r-- 1 root root 345 2009-02-17 13:57 ./usb-and-pxe-installers/pxelinux.cfg_default +-rw-r--r-- 1 root root 21266432 2009-08-25 10:28 ./usb-and-pxe-installers/usbboot.img +-rw-r--r-- 1 root root 7908 2009-05-14 10:30 ./usb-and-pxe-installers/usbimg2disk.sh diff --git a/GPG-KEY b/GPG-KEY new file mode 100644 index 000000000..d6340f0c3 --- /dev/null +++ b/GPG-KEY @@ -0,0 +1,31 @@ +security@slackware.com public key + +Type bits/keyID Date User ID +pub 1024D/40102233 2003-02-26 Slackware Linux Project +sub 1024g/4E523569 2003-02-26 [expires: 2012-12-21] + +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.1 (GNU/Linux) + +mQGiBD5dIFQRBADB31WinbXdaGk/8RNkpnZclu1w3Xmd5ItACDLB2FhOhArw35EA +MOYzxI0gRtDNWN4pn9n74q4HbFzyRWElThWRtBTYLEpImzrk7HYVCjMxjw5A0fTr +88aiHOth5aS0vPAoq+3TYn6JDSipf2bR03G2JVwgj3Iu066pX4naivNm8wCgldHG +F3y9vT3UPYh3QFgEUlCalt0D/3n6NopRYy0hMN6BPu+NarXwv6NQ9g0GV5FNjEEr +igkrD/htqCyWAUl8zyCKKUFZZx4UGBRZ5guCdNzwgYH3yn3aVMhJYQ6tcSlLsj3f +JIz4LAZ3+rI77rbn7gHHdp7CSAuV+QHv3aNanUD/KGz5SPSvF4w+5qRM4PfPNT1h +LMV8BACzxiyX7vzeE4ZxNYvcuCtv0mvEHl9yD66NFA35RvXaO0QiRVYeoUa5JOQZ +gwq+fIB0zgsEYDhXFkC1hM/QL4NccMRk8C09nFn4eiz4dAEnwKt4rLCJKhkLl1DW +TSoXHe/dOXaLnFyLzB1J8hEYmUvw3SwPt//wMqDiVBLeZfFcdLQwU2xhY2t3YXJl +IExpbnV4IFByb2plY3QgPHNlY3VyaXR5QHNsYWNrd2FyZS5jb20+iF8EExECAB8F +Aj5dIFQFCRJ3owAECwcDAgMVAgMDFgIBAh4BAheAAAoJEGpEY8BAECIzee0An3My +boalJ5nLePD0HCzMuf8Ix8gPAJ9lnU1wqNVGza0t89ACTurDoppQ2rkBDQQ+XSBV +EAQA3VYlpPyRKdOKoM6t1SwNG0YgVFSvxy/eiratBf7misDBsJeH86Pf8H9OfVHO +cqscLiC+iqvDgqeTUX9vASjlnvcoS/3H5TDPlxiifIDggqd2euNtJ8+lyXRBV6yP +sBIA6zki9cR4zphe48hKpSsDfj7uL5sfyc2UmKKboSu3x7cAAwUD/1jmoLQs9bIt +bTosoy+5+Uzrl0ShRlv+iZV8RPzAMFuRJNxUJkUmmThowtXRaPKFI9AVd+pP44aA +J+zxCPtS2isiW20AxubJoBPpXcVatJWi4sG+TM5Z5VRoLg7tIDNVWsyHGXPAhIG2 +Y8Z1kyWwb4P8A/W2b1ZCqS7Fx4yEhTikiEwEGBECAAwFAj5dIFUFCRJ3owAACgkQ +akRjwEAQIjM1uwCdE7V4mPCqdby/nV699NxKX0iW/OsAniaVhEip8Ptff74Sv4JV +tb+Sth2l +=H5uu +-----END PGP PUBLIC KEY BLOCK----- diff --git a/README.TXT b/README.TXT new file mode 100644 index 000000000..74bce67a1 --- /dev/null +++ b/README.TXT @@ -0,0 +1,192 @@ + +Welcome to Slackware 13.0! (64-bit x86_64 edition) + +Slackware 13.0 is a complete distribution of the Linux operating system. + +Here are some versions of major components of Slackware 13.0: + +- Linux kernel 2.6.29.6 +- C compiler gcc-4.3.3 +- Binutils 2.18.50.0.9 +- GNU C Library glibc-2.9 +- X Window System Updated (but not "bleeding edge") packages + from X.Org +- KDE 4.2.4 +- Xfce 4.6.1 + +For installation instructions, see the file 'Slackware-HOWTO'. + +For important hints about this release, see the file 'CHANGES_AND_HINTS.TXT'. + +These are some of the important files and directories found on the Slackware +FTP site: + + ftp://ftp.slackware.com/pub/slackware/slackware-13.0/ + +There is also a newer (and faster) primary FTP site for Slackware here: + + ftp://slackware.osuosl.org/pub/slackware/slackware-13.0/ + +Thanks to cwo.com for continuing to help us with hosting for our web site +and ftp.slackware.com, and to the OSU Open Source Lab for hosting our +archives at slackware.osuosl.org. + +If you're reading this on a CD-ROM, these directories will probably be +split across several discs. + +. +|-- ANNOUNCE.13_0 Announcement for Slackware 13.0. +|-- BOOTING.TXT Tips for troubleshooting boot problems. +|-- CHANGES_AND_HINTS.TXT A summary of major changes from Slackware 12.2 +| to 13.0 and common pitfalls. Slackware 13.0 +| x86_64 (Slackware64) is the first release to the +| 64-bit x86_64 architecture, but the information +| contained in this file is still useful. +|-- CHECKSUMS.md5 MD5 format file checksums. +|-- COPYING The GNU Public License, version 2. +|-- COPYING3 The GNU Public License, version 3. +|-- COPYRIGHT.TXT Slackware copyright and trademark information. +|-- CRYPTO_NOTICE.TXT Legal information about encryption in Slackware. +|-- ChangeLog.txt Log of system changes. +|-- FILELIST.TXT List of files on the Slackware FTP site. +|-- GPG-KEY The GnuPG key used to verify Slackware packages. +|-- PACKAGES.TXT A detailed list of the core Slackware packages. +|-- README.initrd Information about building an initrd for use with +| a generic Linux kernel. +|-- README_CRYPT.TXT Information about installing Slackware with +| encrypted LVM. +|-- README_LVM.TXT Information about how to install Slackware onto LVM +| (including the /, if you want). +|-- README_RAID.TXT Information about installing Slackware using the +| kernel's Software RAID (md) levels. +|-- SPEAKUP_DOCS.TXT Documentation for the Speakup speech synth software. +|-- SPEAK_INSTALL.TXT How to install with Speakup speech synthesis. +| +|-- Slackware-HOWTO Instructions for installing Slackware from CD. +| If you're new to Slackware, start with this. +| +|-- extra/ Extra packages for Slackware like: +| | aspell-word-lists, bash-completion, bittorrent, +| | brltty, the Java(TM) JDK, kde3-compat, mpg123, +| | mplayerplug-in, partitionmanager (GUI partitioning +| | tool for KDE4), slacktrack, tightvnc, wicd and +| | xf86-video-intel-alternate (alternate video drivers +| | that may help cure instabilities on some Intel +| | chipsets), yasm assembler. +| | +| `-- source/ Source code for the extra packages. +| +|-- isolinux/ The ISOLINUX loader and initrd.img used to install +| | Slackware from installation media or the network. +| | Also found here is a README.TXT file describing how +| | to create a Slackware installation ISO image and +| | burn it to CD-R or DVD-(+)R. +| | +| |-- README.TXT How to burn a Bootable Slackware disc. +| | +| `-- initrd.img Installation initrd (can also be loaded with Loadlin) +| +|-- kernels/ Precompiled Linux 2.6.29.6 kernel images. +| | +| |-- huge.s The default standard install kernel for Slackware. +| | This supports pretty much everything in the +| | 2.6.29.6 kernel. This kernel requires an x86_64 +| | (also known as AMD64, EM64T, or Intel 64) capable +| | 64-bit CPU. +| | +| `-- speakup.s A huge.s kernel patched to support speakup +| speech output through various hardware and +| software speech synthesizers. +| +|-- pasture/ Used to store packages that have been removed from +| | Slackware, but are useful enough to keep around. +| | This is currently empty in x86_64 Slackware. +| | +| `-- source/ Source code directory for the pasture packages. +| This directory is also currently empty. +| +|-- slackware/ This directory contains the core software packages +| | for Slackware 13.0. +| | +| |-- a/ The A (base) package series. +| |-- ap/ The AP (applications) package series. +| |-- d/ The D (development) package series. +| |-- e/ The E (GNU Emacs) package series. +| |-- f/ The F (FAQ/Documentation) package series. +| |-- k/ The K (kernel source) package series. +| |-- kde/ The KDE package series. +| |-- kdei/ The KDE internationalization package series. +| |-- l/ The L (libraries) package series. +| |-- n/ The N (networking) package series. +| |-- t/ The T (TeX) package series. +| |-- tcl/ The TCL (Tcl/Tk and related) package series. +| |-- x/ The X (X Window System) package series. +| |-- xap/ The XAP (X applications) package series. +| `-- y/ The Y (BSD games) package series. +| +|-- source/ This directory contains source code for the core +| | software packages in Slackware. +| | +| |-- a/ Source for the A (base) series. +| |-- ap/ Source for the AP (applications) series. +| |-- d/ Source for the D (development) series. +| |-- e/ Source for the E (GNU Emacs) series. +| |-- f/ slack-desc files for the F (FAQ) series. +| |-- installer/ Source for utilities used in the installer. +| |-- k/ Source for the K (kernel source) series. +| |-- kde/ Source for the KDE series. +| |-- kdei/ Source for the KDEI series. +| |-- l/ Source for the L (libraries) series. +| |-- n/ Source for the N (networking) series. +| |-- t/ Source for the T (TeX) series. +| |-- tcl/ Source for the TCL (Tcl/Tk and related) series. +| |-- x/ Source for the X (X Window System) series. +| |-- xap/ Source for the XAP (X applications) series. +| `-- y/ Source for the Y (BSD games) series. +| +|-- testing/ This directory contains packages being tested +| | for possible use in future versions of Slackware. +| | You'll find bash-4.0 and linux kernel 2.6.30.5 +| | packages here. We considered it a little early to +| | replace the versions in the main tree but these +| | may be useful if your hardware requires a newer +| | kernel or you want some of the features of the +| | next generation bash. These packages should not +| | be considered supported or necessarily secure, but +| | may still useful. +| | +| `--- source/ This directory contains source code for the +| packages in testing. +| +`-- usb-and-pxe-installers These are alternate installers useful + | for large-scale Linux deployment or if + | your machine can boot PXE and/or USB but + | not an optical disc. For PXE, the initrd.img + | file in isolinux/ is also required. + | + |-- README_PXE.TXT + |-- README_USB.TXT + |-- pxelinux.cfg_default + `-- usbboot.img The Slackware installer for bootable USB flash. + + +If you like Slackware, please consider supporting the project by becoming +a Slackware subscriber. The announcement (ANNOUNCE_13.0) in this directory +has information about ordering or subscribing to the Slackware CD-ROM or +DVD releases. Note that at this time the x86_64 release is only available +as part of the DVD -- if there's interest in a CD-ROM version, let us know. +You can find out about ordering Slackware on media, or read more about it +(and check out other Slackware-related items for sale) by visiting the +Slackware store. We also gratefully accept financial contributions under +the "All" section of the store site menu. + +Thanks for your consideration and help! + + http://store.slackware.com + + +Enjoy! + +Patrick Volkerding +volkerdi@slackware.com + diff --git a/README.initrd b/README.initrd new file mode 100644 index 000000000..20ec4054b --- /dev/null +++ b/README.initrd @@ -0,0 +1,100 @@ + +Slackware initrd mini HOWTO +by Patrick Volkerding, volkerdi@slackware.com +Sun Jul 12 23:23:24 CDT 2009 + +This document describes how to create and install an initrd, which may be +required to use the 2.6 kernel. Also see "man mkinitrd". + +1. What is an initrd? +2. Why to I need an initrd? +3. How do I build the initrd? +4. Now that I've built an initrd, how do I use it? + + +1. What is an initrd? + +Initrd stands for "initial ramdisk". An initial ramdisk is a very small +Linux filesystem that is loaded into RAM and mounted as the kernel boots, +and before the main root filesystem is mounted. + +2. Why do I need an initrd? + +The usual reason to use an initrd is because you need to load kernel +modules before mounting the root partition. Usually these modules are +required to support the filesystem used by the root partition (ext3, +reiserfs, xfs), or perhaps the controller that the hard drive is attached +to (SCSI, RAID, etc). Essentially, there are so many different options +available in modern Linux kernels that it isn't practical to try to ship +many different kernels to try to cover everyone's needs. It's a lot more +flexible to ship a generic kernel and a set of kernel modules for it. + +3. How do I build the initrd? + +The easiest way to make the initrd is to use the mkinitrd script included +in Slackware's mkinitrd package. We'll walk through the process of +upgrading to the generic 2.6.29.6 Linux kernel using the packages +found in Slackware's slackware/a/ directory. + +First, make sure the kernel, kernel modules, and mkinitrd package are +installed (the current version numbers might be a little different, so +this is just an example): + + installpkg kernel-generic-2.6.29.6-i686-2.txz + installpkg kernel-modules-2.6.29.6-i686-2.txz + installpkg mkinitrd-1.3.4-i486-3.txz + +Change into the /boot directory: + + cd /boot + +Now you'll want to run "mkinitrd". I'm using reiserfs for my root +filesystem, and since it's an IDE system the reiserfs module will be +the only one I need to load: + + mkinitrd -c -k 2.6.29.6 -m reiserfs + +This should do two things. First, it will create a directory +/boot/initrd-tree containing the initrd's filesystem. Then it will +create an initrd (/boot/initrd.gz) from this tree. If you wanted to, +you could make some additional changes in /boot/initrd-tree/ and +then run mkinitrd again without options to rebuild the image. That's +optional, though, and only advanced users will need to think about that. + +Here's another example: Build an initrd image using Linux 2.6.29.6 +kernel modules for a system with an ext3 root partition on /dev/hdb3. +Note that you need the mbcache, jbd, and ext3 modules to use ext3: + + mkinitrd -c -k 2.6.29.6 -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3 + + +4. Now that I've built an initrd, how do I use it? + +Now that you've got an initrd (/boot/initrd.gz), you'll want to load +it along with the kernel at boot time. If you use LILO for your boot +loader you'll need to edit /etc/lilo.conf and add a line to load the +initrd. Here's an example section of lilo.conf showing how this is +done: + +# Linux bootable partition config begins +image = /boot/vmlinuz-generic-2.6.29.6 + initrd = /boot/initrd.gz + root = /dev/hda6 + label = Lnx26296 + read-only +# Linux bootable partition config ends + +The initrd is loaded by the "initrd = /boot/initrd.gz" line. +Just add the line right below the line for the kernel image you use. +Save the file, and then run LILO again ('lilo' at the command line). +You'll need to run lilo every time you edit lilo.conf or rebuild the +initrd. + +Other bootloaders such as syslinux also support the use of an initrd. +See the documentation for those programs for details on using an +initrd with them. + + +--------- + +Have fun! diff --git a/README_CRYPT.TXT b/README_CRYPT.TXT new file mode 100644 index 000000000..083891b58 --- /dev/null +++ b/README_CRYPT.TXT @@ -0,0 +1,639 @@ + +Installing Slackware on encrypted volumes +========================================= + + +Contents: + +* Introduction +* Using cryptsetup during Slackware installation +* Encrypting your '/home' partition +* Encrypted swap +* Encrypted root filesystem +* Combining LUKS and LVM +* Hibernation (suspend-to-disk) +* Additional passphrases, keyfiles +* A note on custom kernels +* A mkinitrd helper script + + +Introduction +------------ + + Increasingly common in modern Linux distributions is the ability to +install onto an encrypted partition (or drive, or volume). Especially for +people with a laptop who are traveling a lot, it adds a lot to the security +of your data if access to that data is denied to the potential thief of +your computer. + + Starting with release 12.0, Slackware has support for LVM built into the +installer. With a little more effort, the installer offers the opportunity to +use transparent encryption on the partitions/volumes/disks where you install +Slackware. You can combine the use of LVM and encryption to minimize the +number of times you need to enter an unlock passphrase. If you want to know +more about setting up and using LVM during the installation, read the file +'README_LVM.TXT'. + + Slackware uses device-mapper and cryptsetup to achieve transparent +encryption of your data partitions and your swap. Cryptsetup uses a +concept called LUKS (Linux Unified Key Setup) which enables you to change +your unlock password for the encrypted volume without having to re-encrypt +all of your data. You can even assign multiple passphrases to an encrypted +volume, so that other people besides you are able to unlock the encryption +without the need to know _your_ passphrase. + + When preparing a partition for transparent encryption with cryptsetup, +the program will ask you for a password. This password is used to encrypt +another randomly generated password and this particular password is used +to actually encrypt the data inside the mapped volume. Cryptsetup will +create a mapped device and make this block device available under the +'/dev/mapper' directory. Any data read from or written to this mapped device +will automatically be decrypted from / encrypted to the actual partition. + + A big NOTE finally. When you encrypt your root filesystem, you will have +to make sure that there will be at least one (small) partition which is +left unencrypted. This partition must contain the kernel(s) you want to boot +from, and the initrd image that is needed with encrypted volumes. You need +to install LILO either to the MBR - or if that is not possible, into the +root sector of this small unencrypted partition. You will probably guess +why we can not use an encrypted partition for this... + + +Using cryptsetup during Slackware installation +---------------------------------------------- + + We are going to enable encryption on some or all of our partitions or +volumes before installing Slackware onto them. The first section to follow +deals with encrypting a single partition which is not the root partition. +Typically, people have a need to encrypt their homedirectories and that is +where that section will focus on. Next is a section on encrypting your +swap partition in addition to your /home partition. The swap partition +contains valuable information for a data thief, even after you power off +your computer. By encrypting the swap partition we deny the potential thief +access to this data. The section following that will show you how to get +a fully encrypted system, by encrypting the root ('/') filesystem as well. +This is a little harder to do, but probably worth the effort. + + To make it more interesting, _and_ easier to use, we will devote a final +section to using a combination of LVM and disk encryption. As an example, +we will create a single big encrypted partition, and inside that encrypted +'container' we create several Logical Volumes which we will use as our root +(/), /home and swap partitions. The advantages of this approach are, that you +will need only a single passphrase to unlock your computer, and you will not +have to maintain an '/etc/crypttab' file containing information about encrypted +volumes that need to be unlocked during boot-up. Additionally, we will be +rewarded with a swap partition that we can use for suspend-to-disk and that +will remain encrypted after shutdown (so that for instance a potential data +thief will not be able to get to your valuable data even if you hibernated +your laptop). + + If you choose this last option to get a fully encrypted Slackware, it is +advisable to read the 'README_LVM.TXT' file to make yourself more familiar +with the process of creating and using Logical Volumes during installation +of Slackware. And then, skip right through to the section of this document +called "Combining LUKS and LVM". + + +Encrypting your '/home' partition +--------------------------------- + + After the computer boots up from the install CD/DVD (or USB flash disk, +or PXE) and you find yourself at the '#' prompt, the first thing to do is +use 'fdisk' or 'cfdisk' to create any partitions you need for your Slackware. +Next, use 'cryptsetup' to prepare the partitions you intend to be +encrypted. Note: this section of the README concerns itself with setting +up encrypted *data* partitions. If you want to know how to configure an +encrypted *swap* partition, skip to the section called "Encrypted swap". + + Suppose, you want to encrypt the partition called '/dev/sdx2' and use it +as your '/home' filesystem. (Please replace '/dev/sdx2' with the name of YOUR +PARTITION in the next series of examples). Several of the commands shown below +will irrevocably destroy any data that you currently have on the partition. It +is a good idea to double check the output from 'fdisk -l' before you start. + +* To begin with, we are going to fill the partition with random data. This +will make it a lot harder for any forensics expert to determine where your +encrypted data resides on that partition after we're finished installing +Slackware onto it. The process will take a long time - depending on the +size of your partition it may take hours or more. if you're not _too_ +concerned with the possibility of an FBI agent confiscating your computer, +you can skip this command: + + # dd if=/dev/urandom of=/dev/sdx2 + +* Prepare the partition for encryption. You will be asked twice to enter +a passphrase. Note that a passphrase is not limited to a single word. The +passphrase may contain spaces. We will use a key size of 256 bits. The +default cipher is 'aes', with mode 'cbc-essiv:sha256' which is safe enough. + + # cryptsetup -s 256 -y luksFormat /dev/sdx2 + +You can dump information about the encrypted partition to your console by +running the following command: + + # cryptsetup luksDump /dev/sdx2 + +* Now we will 'open' the encrypted partition and let the devicemapper create +a mapped block device. We will use the mapped device which behaves just like +an ordinary disk partition when we get to the TARGET selection in 'setup'. The +mapped device nodes will be created in the directory '/dev/mapper'. The command +will ask you for the passphrase which you entered during the "luksFormat" +operation. The last argument that the command takes is the name of the mapped +device. We will call our mapped device 'crypthome' (any name will do). It +will be available for use as the block device '/dev/mapper/crypthome'. + + # cryptsetup luksOpen /dev/sdx2 crypthome + +* We've now finished our preparations, and it is time to start the 'setup' +program and install Slackware. This setup does not differ at all from the +setup you have become used to. The only notable difference lies in the +names of the devices you will select for your target partitions. Be sure +to read until the end of the story though, because we will have to do some +postprocessing in order to make your encrypted partitions available after +reboot (setup can not yet do all of this automatically). + +* In setup, under "ADDSWAP", proceed as usual and configure a normal +unencrypted swap partition, even if you want to have your swap encrypted. +We will take care of swap encryption after the installation of Slackware +finishes. + +* In setup, when you choose "TARGET" in the main menu, you will notice that +the mapped device is available in the 'Linux partition' selection as +"/dev/mapper/crypthome". Select the partition you designated for your +root ('/') filesystem, and next select "/dev/mapper/crypthome" for your +'/home' filesystem. Create any filesystem you like on them. My favorite +fstype still is ext3, but you can choose xfs or jfs for stability and speed. + +NOTE: The underlying partition will *also* be visible in the target selection + menu. Be very careful NOT to select this device ('/dev/sdx2' in our + example) for any other filesystem you wish to create, or you will + destroy the data on the encrypted partition. + +* At the end of the Slackware installation when you select "Exit", don't +reboot just yet! We are going to create a configuration file for +the cryptsetup program, called '/etc/crypttab'. This file contains the +information cryptsetup needs for unlocking your encrypted volume and mapping +it to the correct device name. The file '/etc/crypttab' contains lines of the +format: "mappedname devicename password options". Since we are still inside +the installer, the root filesystem of our fresh Slackware installation is +still mounted under '/mnt'. For our example where we encrypted '/dev/sdx2' +and mapped the unlocked device to '/dev/mapper/crypthome', we need this +single line in '/etc/crypttab': + +crypthome /dev/sdx2 + +So, we need to run the command: + + # echo "crypthome /dev/sdx2" > /mnt/etc/crypttab + +in order to create the file with the required content (I am assuming here +that the file did not yet exist... the above command will overwrite the +data in the file should it have existed). You can of course also just +start the 'vi' editor and add the above line. When the password is not +listed in the crypttab file (potentially very unsafe of course) cryptsetup +will ask you for the password when your computer boots. + + +Encrypted swap +-------------- + + In the previous chapter we have installed Slackware using an encrypted +/home partition, but left the swap partition unencrypted. We are going +to take care of that 'omission' right now, because we do not want to give +a potential data thief access to any sensitive data which landed on your +disk because of the kernel's memory swapping process. + +It really is very simple and straight-forward. It is also independent of +whether or not you are using encryption for any other (data) partition. +Add the following line to the 'crypttab' file on your fresh installation +of Slackware - for the sake of this example I am assuming that the swap +partition you chose is '/dev/sdx3': + +cryptswap /dev/sdx3 none swap + +You can use the 'vi' editor to add this line to '/mnt/etc/crypttab'. +You can also choose to run the following command which adds that line to +the end of the file: + + # echo "cryptswap /dev/sdx3 none swap" >> /mnt/etc/crypttab + +We need to edit the 'fstab' file of your Slackware installation so that +the correct device will be used for the swap after your computer reboots +(the device '/dev/sdx3' will no longer be useful, but '/dev/mapper/cryptswap +will'). The line in '/mnt/etc/fstab' for your swap will look like this at +first: + +/dev/sdx3 swap swap defaults 0 0 + +and you will have to change it so that it becomes like this: + +/dev/mapper/cryptswap swap swap defaults 0 0 + + These two edits are sufficient. The above instructions assume that you +edited the 'crypttab' file at the end of a Slackware installation, but in +fact you can do this at any time. The Slackware boot-up process will +take care of the rest. At shutdown of your Slackware, the encrypted swap +partition will be reformatted as a normal unencrypted swap, so that any +other OS-es you might be running in a multi-boot configuration will have +no problems in using this swap partition as well. + +NOTE: the swap partition is encrypted with a new randomly generated key every + time your computer boots. + There is no need to ever enter a passphrase! + +NOTE: having an encrypted swap like this causes a re-format of the swap + partition on avery boot-up and shutdown. This is perfectly OK as long + as you do not change the order of your hard disks. If you add a disk, + or move this disk to another computer, the device name may change (for + instance from sda to sdb) and if you forget to modify '/etc/crypttab' + your system may end up formatting the wrong partition! + For this reason alone, it is recommended that you implement disk + encryption including swap using the "Combining LUKS and LVM" method + described in the chapter with the same name! + + +Encrypted root filesystem +------------------------- + + You can go one step further than merely encrypting your '/home' +filesystem's partition. You can choose to encrypt _all_ of your Slackware +partitions, including the root partition. In that case you will have to +perform some additional post-install configuration before you reboot your +Slackware box. + +NOTE: the method described here will result in having several independently + encrypted partitions. This may require you to enter multiple + passphrases in order to unlock all of these partitions. If you want to + unlock your complete system using a single passphrase, and if you do + not shy back from using LVM, then the better alternative is to follow + the instructions in the "Combining LUKS and LVM" chapter which follows + next. If you think that LVM adds one layer of complexity too much, + then just read on and implement the solution described right here. + +* Be sure to create a small partition which you leave *unencrypted*. Tell +the installer to mount it under '/boot'. The kernel and the initrd (with +the cryptsetup and additional required kernel modules) will go there. We are +going to assume that Slackware is the only OS on the computer so that you +can tell lilo to install the bootloader in the MBR (which is the default +option). Lilo is able to boot a Windows if you already had that installed on +your computer, so even in the dual-boot situation it should be safe to use +the MBR. With other Linux distributions already present on the computer, +things may be a little more difficult - you will have to install lilo to +the /boot partition then. + +* Perform a Slackware install just like I described above, creating +additional encrypted partitions and mapping them to appropriate names - +for this example I assume that you map the encrypted root partition +'/dev/sdx1' to 'cryptroot'. When the LILO configuration pops up, tell lilo +that your root partition is '/dev/mapper/cryptroot'. Lilo will try to +install and fail, and will tell you so. It will however have written a +'lilo.conf' file which we can edit in a follow-up action. Proceed with +the installation and at the end, exit the setup program but do _not_ +reboot just yet. + +* After you are returned to the command prompt, perform a 'chroot' into the +new installation. All the filesystems are still mounted, and the Slackware +installer will already have mounted the /sys and /proc filesystems for use +in the 'chroot'. We only need to run the following command: + + # chroot /mnt + +* Next, now that we are in the chroot, create the initrd with LVM (if you +used Logical Volumes) and CRYPT support - or else your Slackware computer +will not be able to proceed past the initial stage of booting the kernel. +The initial ramdisk (initrd) contains a small filesystem with the tools +needed to unlock the root filesystem, so that the kernel can start the init +program. In the example command line below which creates the 'initrd.gz' +image I assume that the root filesystem is 'ext3', we used the mapped device +'cryptroot' for the root filesystem on the real partition '/dev/sdx1', +and are running the Slackware 13.0 default SMP kernel '2.6.29.6-smp' +and we did not use Logical Volumes (more about that in the next section): + + # mkinitrd -c -k 2.6.29.6-smp -m ext3 -f ext3 -r cryptroot -C /dev/sdx1 + +* The resulting initrd image will be written to the file '/boot/initrd.gz' +by default. We still need to tell lilo about this initrd. Open the +configuration file '/etc/lilo.conf' in an editor such as vi or pico - +it should already have been generated by the 'liloconfig' part of setup. +Look for the "Linux bootable partition config" and add a line for the initrd. +We also need to change the kernel file to a generic kernel, because lilo +is unable to combine the 'huge' kernels in Slackware 13.0 with an initrd +image - it will complain about "The initial RAM disk is too big to fit +between the kernel and the 15M-16M memory hole" if you try with a 'huge' +kernel. We can live with that, since the 'huge' kernels are not meant +for day-to-day use anyway. They are meant to install Slackware on a wide +range of computers and that is why they are 'huge'. The linux part of +'/etc/lilo.conf' should end up looking somewhat like this: + +image = /boot/vmlinuz-generic-smp-2.6.29.6-smp + initrd = /boot/initrd.gz + root = /dev/mapper/cryptroot + label = linux + read-only + +If you add the above section as an extra instead of editing what's already +present, make sure that the label you use ('linux' in the example above) +is unique in the configuration file. + +* If you have another OS on your computer and can not install lilo to the +MBR, you will have selected "Install to superblock (Root)" instead. In +that case, we have one additional change to make, and that is almost at the +top of the file. Look up the line that says "boot = /dev/mapper/cryptroot" +which is the device for your root partition and which was the reason for +lilo failing to install. Change the boot device to the name of the small +*unencrypted* partition you've created at the beginning and which is +mounted under '/boot'. Assuming the name of that partition is '/dev/sdx4', +the "boot =" line must become like this: + + boot = /dev/sdx4 + +We are done. Write the changes, exit the editor and run the command 'lilo'. +Lilo will issue a couple of warnings concerning a difference in what +'/proc/partitions' reports and what lilo thinks are the available partitions, +but it is safe to ignore these. +Reboot now, and you will be presented with a "Enter passphrase: " +prompt. After entering the passphrase which unlocks your root filesystem, +the system will boot into Slackware. If there are other encrypted partitions, +you will be prompted for their respective passphrases, too. + + +Combining LUKS and LVM +---------------------- + + Until now, we have been occupying ourselves with encrypting separate +partitions. This is all fully functional, but there are a few drawbacks. +One, you will need to enter a passphrase for every partition you have encrypted +(except for the swap which Slackware encrypts with a random passphrase +on every boot). Two, the method used for encrypting the swap partition +prohibits the use of the swap as a hibernation partition. And since the +initrd of Slackware 13.0 supports hibernation, it would be a shame not to be +able to use this feature on your laptop (which, because of it's portability, +is the primary target for full disk encryption anyway). + + This section of the README_CRYPT.TXT will deal with these drawbacks and +offer you full disk encryption (including swap) that needs only a single +passphrase to unlock and allows for hibernation (suspend-to-disk). + + We are assuming that Slackware will be the only Operating System on your +computer. In case you already have an OS installed (such as MS Windows), the +procedure may be a little different because you can not always install lilo to +the MBR. After booting from the Slackware installation medium, we will +create a small unencrypted partition that will contain the Linux kernels and +the initrd image(s). The rest of the disk's free space will be dedicated to +a single partition which we are going to encrypt. On top of the encrypted +volume, we are going to create several Logical Volumes, and these LV's +are going to be formatted as our Slackware partitions ('/', '/home' and +'swap'). These are the steps in more detail: + +* Use (c)fdisk to create your partitions. For the sake of this example, I +am going to assume that /dev/sdx1 is a 100 MB large partition and /dev/sdx2 +is the large partition that eats up the remainder of your disk's free space. + +* First, create a LUKS-encrypted volume on top of /dev/sdx2 after you +have optionally filled the partition with random data (read the section +"Encrypting your '/home' partition" for more information about why you +would want to fill your partition with random data first): + + # dd if=/dev/urandom of=/dev/sdx2 + +* Prepare the partition for encryption. You will be asked twice to enter +a passphrase. Note that a passphrase is not limited to a single word. The +passphrase may contain spaces. We will use a key size of 256 bits. The +default cipher is 'aes', with mode 'cbc-essiv:sha256' which is safe enough. + + # cryptsetup -s 256 -y luksFormat /dev/sdx2 + +* Open the encrypted partition so that we can start using the mapped device +which exposes the partition as an unencrypted block device. The command +will ask you for the passphrase which you entered during the "luksFormat" +operation. The last argument that the command takes is the name of the mapped +device. We will call our mapped device 'slackluks' because I am not feeling +original today. The mapped device which we will be using for unencrypted +operations will therefore be '/dev/mapper/slackluks'. + + # cryptsetup luksOpen /dev/sdx2 slackluks + +* The LVM part is next. Create a Physical Volume (PV) on device +'/dev/mapper/slackluks', a Volume Group (VG) called 'cryptvg' - any name will +do - on the PV, and three Logical Volumes (LV's) in the VG, one for your +root partition (5 GB in size), one for the /home partition (10 GB in size) +and a third which we will use for swap (1 GB in size). You will probably +use different sizes depending on your environment and wishes, but keep the +sum of the LV sizes less than the total size of the Physical Volume: + + # pvcreate /dev/mapper/slackluks + + # vgcreate cryptvg /dev/mapper/slackluks + + # lvcreate -L 5G -n root cryptvg + + # lvcreate -L 10G -n home cryptvg + + # lvcreate -L 1G -n swap cryptvg + +* Create the device nodes needed before activating the volumes, and finally +activate the volumes so that we can format the 'swap' volume. + + # vgscan --mknodes + + # vgchange -ay + +* Finally, run 'mkswap' so that the 'setup' program will identify the 'swap' +LV as a valid swap partition: + + # mkswap /dev/cryptvg/swap + +* With the system properly prepared, you can launch 'setup'. The 'setup' +program will identify the LV swap volume and activate it. When appointing +the partitions to use for your filesystems, select '/dev/cryptvg/root' for the +root partition, next select '/dev/cryptvg/home' to be used for your /home . +And lastly, assign the partition /dev/sdx1 to a /boot filesystem. This +'/boot' filesystem will be the only unencrypted part of your computer. + + You will notice that there are several more devices to select from but +*don't* touch these! The devices such as /dev/mapper/* are the underlying +device names for the encrypted and LVM volumes. If you choose to touch any +of these, you will destroy the data on the /dev/cryptvg/* volumes which you +are using. +After partitioning, we end up with a filesystem configuration like this: + + /dev/cryptvg/root / + /dev/cryptvg/home /home + /dev/sdx1 /boot + +* When installation of the packages has finished, the system configuration will +start, and one of the dialogs will be for 'liloconfig'. The assumption is that +you are installing Slackware as the only OS on your computer. This means that +you must install lilo to the MBR. Even if you have another OS like MS Windows +installed already, Slackware's lilo bootloader will be able to boot Windows +if you install lilo to the MBR. Choose "expert lilo configuration" with the +option "Install to Master Boot Record (MBR)". Select '/dev/cryptvg/root' as +the root partition to boot. Add any Windows partition to lilo if you want to +dual-boot Windows. Finally, when liloconfig installs the bootloader, you may +see an error message stating that the "installation failed". Ignore this, +because we will have to add an initrd to '/etc/lilo.conf' anyway and re-run +lilo. We will do this after the Slackware installation has come to it's end. + +* Let the installation complete, and after you select "EXIT" you will be +returned to the command prompt. DO NOT reboot just yet! This is the moment +where we fix our bootloader. To do so, we will 'chroot' (change root) into +our freshly installed Slackware filesystem. The setup program has done all +the preparations already, such as re-mounting /sys and /proc below /mnt and +generating LVM device nodes in /mnt . Enter the 'chroot' using the command: + + # chroot /mnt + +* In the chroot, you create an initrd image with LVM and CRYPT support - +or else your Slackware computer will not be able to proceed past the initial +stage of booting the kernel. The initial ramdisk (initrd) contains a small +filesystem with the tools needed to unlock the root filesystem, so that +the kernel can start the init program. In the example command line below +which creates the 'initrd.gz' image I assume that you formatted the root +filesystem as 'ext3', and will be running the Slackware 13.0 default SMP +kernel '2.6.29.6-smp' : + + # mkinitrd -c -k 2.6.29.6-smp -m ext3 -f ext3 -r /dev/cryptvg/root -C /dev/sdx2 -L + +NOTE: if you use a non-US keyboard and need to enter a passphrase during boot, + this may be problematic if the keyboard mapping is US while Slackware + runs from the initrd filesystem. In this case, add support for your + keyboard to the initrd image using this additional parameter to the + 'mkinitrd' command above: "-l ". The string is the + same as the one you select in the installer when your keyboard is + non-US. Example for a dutch keyboard: "-l nl". + +* The resulting initrd image will be written to the file '/boot/initrd.gz' +by default. We still need to tell lilo about this initrd, so open the +configuration file '/etc/lilo.conf' in an editor such as vi or pico - +it should already have been generated by the 'liloconfig' part of setup. +Look for the "Linux bootable partition config" and add a line for the initrd. +We also need to change the kernel file to a generic kernel, because lilo +is unable to combine the 'huge' kernels in Slackware 13.0 with an initrd +image - it will complain about "The initial RAM disk is too big to fit +between the kernel and the 15M-16M memory hole" if you try a 'huge' +kernel. We can live with that, since the 'huge' kernels are not meant +for day-to-day use anyway. They are meant to install Slackware on a wide +range of computers and that is why they are 'huge'. The linux part of +'/etc/lilo.conf' should end up looking somewhat like this: + +image = /boot/vmlinuz-generic-smp-2.6.29.6-smp + initrd = /boot/initrd.gz + root = /dev/cryptvg/root + label = linux + read-only + + If you add the above section as an extra instead of editing what's +already present, make sure that the label you use ('linux' in the example +above) is unique in the configuration file. + + We are done. Save your changes, exit the editor and run the command +'lilo'. Lilo will issue a couple of warnings concerning a difference in +what '/proc/partitions' reports and what lilo thinks are the available +partitions, but it is safe to ignore these. Reboot now, and you will be +presented with a "Enter passphrase: " prompt. After entering the passphrase +which unlocks your encrypted partition, the system will boot into Slackware. +You will be able to work as usual, and when you shut the machine down (or +suspend to disk using the swap partition) all your data (including swap) +will be encrypted when stored on disk. + + As you may have noticed, there was no need to create a file '/etc/crypttab' +this time. Also, there is only a single passphrase to enter. Additionally, +the swap is encrypted by default which is a big plus if you intend to use a +laptop and carry it around with you in a hibernated state. All considered, +this is the most elegant way of encrypting your Slackware computer if you +do not mind using LVM. + + +Additional passphrases, keyfiles +-------------------------------- + +The cryptsetup program assigns 7 'key slots' to any partition or volume +it encrypts. Each of those seven slots can contain a key to unlock the +partition's data. The key can be a passphrase, but the content of a +*keyfile* is another option. You can then pass the name of a file as a +parameter to cryptsetup in order to unlock an encrypted volume so that +you won't have to type a passphrase. This creates the possibility to +use a keyfile on a removable USB flash disk for unlocking your Slackware +computer. Slackware has partial support for keyfiles: if the file can be +found, it will be used and you won't have to type a passphrase. A file on a +USB stick will *not* be found on boot because the stick's filesystem is not +mounted. Future versions of Slackware may support USB sticks as unlocking +mechanism. For now, if you encrypt your root filesystem, you will have to +enter a passphrase to boot into it. After the root filesystem is unlocked +and mounted, it is completely safe to have a keyfile for _additional_ +encrypted filesystems stored in for instance the '/root' directory. That +way, you have only one passphrase to type. + + +Hibernation (suspend-to-disk) +----------------------------- + + I will touch briefly on the subject of enabling 'suspend-to-disk' +because it is not documented properly anywhere else. Configuring your +Slackware computer for hibernation can be done at any time, it is not +required to do this during installation of Slackware. Suppose you want +to use the swap partition '/dev/cryptvg/swap' for hibernation, then you +must perform the following two steps: +(1) add "resume=/dev/cryptvg/swap" to the 'append =' line in your + '/etc/lilo.conf' file. The 'append' line may end up looking like this: + append = "vt.default_utf8=0 resume=/dev/cryptvg/swap" +(2) add "-h /dev/cryptvg/swap" as an extra parameter to your mkinitrd command + to create an initrd with support for resuming from a swap partition. + Do not forget to run 'lilo' after creating the new initrd.gz file! + + +A note on custom kernels +------------------------ + + If you want to compile your own custom kernel to work with LUKS encrypted +partitions, you need to enable at least the following two options in your +kernel configuration: + +Multiple devices driver support (RAID and LVM) ---> + <*> Device mapper support + <*> Crypt target support + +This is equivalent to the following options in your .config file: + +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y + +Do not compile these as module! They are required in your kernel. + + +A mkinitrd helper script +------------------------ + + The mkinitrd package in Slackware 13.0 ships with a script called +'mkinitrd_command_generator.sh'. If you run this script, it will analyze +your Slackware configuration and make a smart suggestion about the 'mkinitrd' +command you have to type in order to create an initrd.gz with all the bells +& whistles. The script will recognize your kernel version, root partition +and filesystem, it will find out if you are using LUKS and/or LVM and will +determine what kernel modules your initrd needs to mount the root filesystem. +The following command will save you the headache of figuring this out all +by yourself: + + # /usr/share/mkinitrd/mkinitrd_command_generator.sh -r + +It should emit a string like this (your system will probably give different +parameter values): + +mkinitrd -c -k 2.6.29.6-smp -m ext3 -f ext3 -r /dev/cryptvg/root -C /dev/sdx2 -L + +You can copy and paste this output to your command prompt, and add any other +parameters you need such as "-h" to indicate a hibernation partition or +"-l" to indicate you are using a non-US keyboard layout. You can even run +the script in full interactive mode by using the "-i" parameter, and it will +guide you through the process of generating a mkinitrd commandline. + + +============================================================================== + +Good luck with your fresh Slackware installion on encrypted partition(s)! + +============================================================================== +Author: + Eric Hameleers 23-jul-2009 +URLs: + http://www.slackware.com/~alien/dokuwiki/doku.php?id=slackware:setup diff --git a/README_LVM.TXT b/README_LVM.TXT new file mode 100644 index 000000000..87c45cf2c --- /dev/null +++ b/README_LVM.TXT @@ -0,0 +1,196 @@ + +Installing Slackware on Logical volumes +======================================= + + +Introduction +------------ + + For a long time, it has been common for other distros to support +installation to Logical Volumes. In Slackware, the installer has never +supported this, but the gurus usually would find a way to create logical +volumes and install or migrate their Slackware onto those. Having your +Slackware installed fully on LVM was near impossible until Slackware 12.0. +Slackware 13.0 has improved support for LVM built into the installer. + + +Preparing Logical Volumes (LV) +------------------------------ + +* Existing LV + The Slackware installer will recognize and activate any pre-existing +Logical Volumes on your hard drive(s). These Logical Volumes will be +selectable targets for the creation of the filesystems (like /, /usr, /home, +/var) + +* New LV + When you need to create the LV, you need to do this before starting the +'setup' program. You may have to run (c)fdisk first to create the partition +you want to use for setting up the logical volumes. For any partition you +create and that you want to use for LVM, you should set the partition type +to '8e' (Linux LVM). + + In the next example, I will assume we use a single 10 GB partition +'/dev/sda1' for our Volume Group (VG). With LVM, it is possible to use +multiple physical volumes (i.e. partitions, whole disks) for a VG, but that is +left as an exercise for the reader. You can always add extra physical volumes +to your VG later. We will create a VG called 'myvg' and on that VG create two +LV's called 'root' and 'home'. The first is going to contain the root partition +('/') and the second will become our '/home' partition. + + After booting your computer from the Slackware CD/DVD/USB, and logging in +as root, you run the following sequence of commands to create the Physical +Volume (PV), the Volume Group (VG) within that PV and two LV's of size 5GB +(root) and 3GB (home) inside the VG: + + # pvcreate /dev/sda1 + + # vgcreate myvg /dev/sda1 + + # lvcreate -L 5G -n root myvg + + # lvcreate -L 3G -n home myvg + + ======================================================================== + NOTE: if you want, you can just allocate all remaining space inside the + VG to a Logical Volume. Suppose we want to allocate all available + space to our 'home' LV, then this will the command to use instead + of the previous one (note the use of '-l' instead of '-L'): + + # lvcreate -l 100%FREE -n home myvg + ======================================================================== + + Next, we create the device nodes needed before activating the volumes, and +finally we activate the volumes (the last command is not really needed because +'setup' will run it anyway): + + # vgscan --mknodes + + # vgchange -ay + +This is all we need to do before running 'setup'. + + +Using LVM during setup +---------------------- + + In setup, when you choose "TARGET" in the main menu, you will notice that +the LV's are available in the Linux partition selection. Our two LV's "root" +and "home" are visible as "/dev/myvg/root" and "/dev/myvg/home". Select the +first for your root ('/') filesystem, and the other for your /home filesystem. +Create any filesystem you like on them. My favorite fstype still is ext3, +but you can choose ext4, xfs or jfs for stability and speed. + + Setup will proceed as usual, but when you get to the point where you are +presented with the lilo configuration dialog, it is almost time to perform +one final manual tweak. Proceed with configuring your lilo as usual, and +select '/dev/myvg/root' as your root filesystem to boot. When you install +lilo, it will probably not complain, but be aware that having your root +filesystem on a Logical Volume requires an initial ramdisk (initrd). The +Slackware installer will not create it for you, and this requires some +manual intervention after the setup program has finished and you've been +returned to the command prompt. For now, you can continue with the Slackware +setup as usual, but at the end, do not reboot just yet! + + At the end of the setup program it will prompt you to select "EXIT" and +press 'Ctrl-Alt-Del' to reboot the computer. Exit the menu but DO NOT +reboot just yet! At this point, we are going to create our initrd image. +Fortunately, the Slackware installer has done some of the work for us. +It will have created the LVM device nodes which lilo needs in order to +install successfully. The installer will have mounted the /sys and /proc +filesystems as well. Inside a 'chroot' we will create an initrd image +and configure lilo to use it with the generic kernel. Be aware that +Slackware's 'huge' kernels are too big to work with an initrd image using +the lilo bootloader. Lilo will complain that there is too little space +left in the 15M-16M 'memory hole'. +We are going to 'chroot' into our fresh installation: + + # chroot /mnt + + Next, while we are in the chroot, create the initrd with LVM support - +in the example command line I assume that the root filesystem is 'ext3', +we used the LV '/dev/myvg/root' as the root device, and are running the +Slackware 13.0 default SMP kernel '2.6.29.6-smp': + + # mkinitrd -c -k 2.6.29.6-smp -m ext3 -f ext3 -r /dev/myvg/root -L + + The resulting initrd image will be written to the file '/boot/initrd.gz' +by default. We still need to tell lilo about this initrd, so open the +configuration file '/etc/lilo.conf' in an editor such as vi or pico - it +should already have been generated by the 'liloconfig' part of setup. Look +for the "Linux bootable partition config" and add a line for the initrd. +Additionally, we change the filename of the kernel to be used. The default +filename added by 'liloconfig' is '/boot/vmlinuz' which is a symbolic link to +the huge SMP kernel. Remember that we need a 'generic' kernel with the initrd. +The end result should look somewhat like this: + + image = /boot/vmlinuz-generic-smp-2.6.29.6-smp + initrd = /boot/initrd.gz + root = /dev/myvg/root + label = linux + read-only + + Double-check that the label you are using ('linux' in the above example) +is unique in the /etc/lilo.conf file. If you are satisfied that everything +looks OK, write the changes, exit the editor and (re-) run lilo while in +the chroot. Lilo will issue a couple of warnings concerning a difference in +what /proc/partitions reports and what lilo thinks are available partitions, +but it is safe to ignore these. + + ===================================================================== + An alternative method of creating the commandline for mkinitrd is + to use the '/usr/share/mkinitrd_command_generator.sh' script that is + part of the mkinitrd package. This script will analyze your Slackware + installation and show you a useable 'mkinitrd' commandline: + + # /usr/share/mkinitrd/mkinitrd_command_generator.sh -r + + The above command would emit a commandline (almost) exactly as I + showed earlier in this README. If you are satisfied that it is the + correct command for you, then there is no need to type it manually; + just enclose the above line in "$()" which will actually run the command + and create your initrd: + + # $( /usr/share/mkinitrd/mkinitrd_command_generator.sh -r ) + + All that is left then is to update /etc/lilo.conf and run 'lilo'. + ===================================================================== + + You're done in the chroot now. Exit the chroot by running the command +'exit' and return the original console prompt (not that this looks any +different from the prompt inside the 'chroot' environment!). + + This completes the installation of Slackware. Good luck with your fresh +'Slackware with a root filesystem-on-LVM' ! + + +A word about using a Logical Volume for SWAP +-------------------------------------------- + + The setup program is able to detect a Logical Volume and use it as a swap +partition, on the condition that you have manually formatted the LV as +swap before you start 'setup'. That way, you will be able to select it as a +usable swap partition in the ADDSWAP section. The setup program will inspect +all your logical volumes for a swap header. Here is how you create the LV, +assuming you already created the Volume Group 'myvg' earlier - see above - +and left enough unallocated space in that VG: + + # lvcreate -L 1G -n swap myvg + +This command creates a 1 GB large Logical Volume called 'swap' (but any +name will do) in the 'myvg' Volume Group. Next, format the volume for +use as swap partition: + + # mkswap /dev/myvg/swap + +This is enough to get it recognized by the setup program. Have fun! + + +======================================================== +Author: + Eric Hameleers 25-jul-2009 +Wiki URLs: + http://www.slackware.com/~alien/dokuwiki/doku.php?id=slackware:setup +Documentation: + /usr/doc/Linux-HOWTOs/LVM-HOWTO + diff --git a/README_RAID.TXT b/README_RAID.TXT new file mode 100644 index 000000000..38f278287 --- /dev/null +++ b/README_RAID.TXT @@ -0,0 +1,508 @@ +Slackware RAID HOWTO + +Version 1.00 +2008/04/29 + +by Amritpal Bath + + + +Contents +=============================================================================== + +- Introduction +- Warnings +- Planning +- Setup +- Using the generic kernel +- Troubleshooting +- Appendices +- Acknowledgements/References + + + + +Introduction +=============================================================================== + +This document explains how to install Slackware 13.0 (and beyond) on a +software RAID root filesystem. It is meant to cover only software raid. +If you are using a RAID expansion card, or the RAID functionality that came +with your motherboard, this document will not be useful for you. + +In order to follow this document, your computer must have two or more empty +hard drives. While it is possible to be creative and create RAID arrays on +drives that already contain data, it can be error prone, so it is not +covered in this document. + + + + +Warnings +=============================================================================== + +If you perform the following instructions on hard drives with data on them, +YOU WILL LOSE ALL OF YOUR DATA. + +If you wish to perform these operations on hard drives that hold data of +any importance, you MUST BACKUP YOUR DATA. The procedure below will +destroy all of the data on your hard drives, so any important data will +need to be restored from your backups. + + + +One more time: *BACKUP YOUR DATA, OR YOU WILL LOSE IT!* + +If you don't backup your data and end up losing it, it will be your fault. +There is nothing I can do to help you in that case. + +Now, on with the show... :) + + + + +Planning +=============================================================================== + +The first step is to determine which RAID level you want to use. + +It is recommended that you familiarize yourself with basic RAID concepts, +such as the various RAID levels that are available to you. You can read +about these in various places - consult your favorite search engine about +"raid levels", or see the References section. + +Here's a quick summary of the more common RAID levels: + + - RAID 0: Requires 2 drives, can use more. Offers no redundancy, but + improves performance by "striping", or interleaving, data between all + drives. This RAID level does not help protect your data at all. + If you lose one drive, all of your data will be lost. + + - RAID 1: Requires 2 drives, can use more. Offers data redundancy by + mirroring data across all drives. This RAID level is the simplest way + to protect your data, but is not the most space-efficient method. For + example, if you use 3 drives in a RAID 1 array, you gain redundancy, but + you still have only 1 disk's worth of space available for use. + + - RAID 5: Requires 3 drives, can use more. Offers data redundancy by + storing parity data on each drive. Exactly one disk's worth of space + will be used to hold parity data, so while this RAID level is heaviest + on the CPU, it is also the most space efficient way of protecting your + data. For example, if you use 5 drives to create a RAID 5 array, you + will only lose 1 disk's worth of space (unlike RAID 1), so you will + end up with 4 disk's worth of space available for use. While simple to + setup, this level is not quite as straightforward as setting up RAID 1. + + + + +Setup +=============================================================================== + +=== Partition hard drives === + +Once you have booted the Slackware installer CD, the first step is to +partition the hard drives that will be used in the RAID array(s). + +I will assume that your first RAID hard drive is /dev/sda. If it is +/dev/hda or something similar, adjust the following commands appropriately. + +You can see your drives by running: cat /proc/partitions + + - /boot: RAID 0 and RAID 5 users will require a separate boot partition, as + the computer's BIOS will not understand striped devices. For + simplicity's sake, we will make /boot a small RAID 1 (mirror) array. + This means that in the case of RAID 0, it will not matter which drive + your BIOS attempts to boot, and in the case of RAID 5, losing one drive + will not result in losing your /boot partition. + + I recommend at least 30MB for this partition, to give yourself room to + play with multiple kernels in the future, should the need arise. I tend + to use 100MB, so I can put all sorts of bootable images on the partition, + such as MemTest86, for example. + + Go ahead and create a small boot partition now on /dev/sda, via cfdisk + (or fdisk, if you prefer). + + Ensure that the partition type is Linux RAID Autodetect (type FD). + + + - /: Every setup will require a root partition. :) You will likely want to + create a partition takes up most of the rest of the drive. Unless you + are using LVM (not covered in this document), remember to save some space + after this partition for your swap partition! (see below) + + If you are not creating a swap partition, I recommend leaving 100MB of + unused space at the end of the drive. (see "safety" for explanation) + + Go ahead and create your main partition now on /dev/sda, via cfdisk + (or fdisk, if you prefer). + + Ensure that the partition type is Linux RAID Autodetect (type FD). + + + - swap: Swap space is where Linux stores data when you're running low on + available RAM. For fairly obvious reasons, building this on RAID 0 could + be painful (if that array develops a bad sector, for example), so I tend + to build swap on RAID 1 as well. If you understand the danger and still + want to build swap on RAID 0 to eke out as much performance as possible, + go for it. + + For RAID 1 swap, create a partition that is the exact size that you want + your swap space to be (for example, 2GB, if you can't decide). + + For RAID 0 swap (not recommended), create a partition that is equivalent + to the swap size you want, divided by the number of drives that will be + in the array. + + For example, 2GB / 3 drives = 683MB swap partition on /dev/sda. + + Ensure that the partition type is Linux RAID Autodetect (type FD). + + I recommend leaving 100MB of unused space at the end of the drive. + (see "safety" for explanation) + + See also: Appendix A - Striping swap space without RAID 0. + + + - safety! I highly recommend leaving 100MB of unpartitioned space at the + end of each drive that will be used in the RAID array(s). + + In the event that you need to replace one of the drives in the array, + there is no guarantee that the new drive will be exactly the same size as + the drive that you are replacing. For example, even if both drives are + 750GB, they may be different revisions or manufacturers, and thus have a + size difference of some small number of megabytes. + + This is, however, enough to throw a wrench in your drive-replacement + plans - you cannot replace a failed RAID drive with one of a smaller size, + for obvious reasons. Having that small 100MB buffer just may save your + bacon. + + + +=== Copy and review partitions === + +Now that /dev/sda is partitioned as appropriate, copy the partitions to all +the other drives to be used in your RAID arrays. + +An easy way to do this is: + sfdisk -d /dev/sda | sfdisk /dev/sdb + +This will destroy all partitions on /dev/sdb, and replicate /dev/sda's +partition setup onto it. + +After this, your partitions should look something like the following: + + - RAID 0: + /dev/sda1 30MB /dev/sdb1 30MB + /dev/sda2 100GB /dev/sdb2 100GB + /dev/sda3 2GB /dev/sdb3 2GB + + - RAID 1: + /dev/sda1 100GB /dev/sdb1 100GB + /dev/sda2 2GB /dev/sdb2 2GB + + - RAID 5: + /dev/sda1 30MB /dev/sdb1 30MB /dev/sdc1 30MB + /dev/sda2 100GB /dev/sdb2 100GB /dev/sdc2 100GB + /dev/sda3 2GB /dev/sdb3 2GB /dev/sdc3 2GB + +All partition types should be Linux RAID Autodetect (type fd). + + + +=== Create RAID arrays === + +Now it's time to create the actual RAID arrays based on the partitions that +were created. + +The parameters for each of these RAID commands specifies, in order: + - the RAID device node to create (--create /dev/mdX) + - the RAID level to use for this array (--level X) + - how many devices (partitions) to use in the array (--raid-devices X) + - the actual list of devices (/dev/sdaX /dev/sdbX /dev/sdcX) + +Start by creating the RAID array for your root filesystem. + + - RAID 0: + mdadm --create /dev/md0 --level 0 --raid-devices 2 \ + /dev/sda2 /dev/sdb2 + + - RAID 1: + mdadm --create /dev/md0 --level 1 --raid-devices 2 \ + /dev/sda1 /dev/sdb1 + + - RAID 5: + mdadm --create /dev/md0 --level 5 --raid-devices 3 \ + /dev/sda2 /dev/sdb2 /dev/sdc2 + + +Next, let's create the array for the swap partition. This will be RAID 1 +regardless of which RAID level your root filesystem uses, but given our +partition layouts, each command will still be slightly different. + + - RAID 0: + mdadm --create /dev/md1 --level 1 --raid-devices 2 \ + /dev/sda3 /dev/sdb3 + + - RAID 1: + mdadm --create /dev/md1 --level 1 --raid-devices 2 \ + /dev/sda2 /dev/sdb2 + + - RAID 5: + mdadm --create /dev/md1 --level 1 --raid-devices 3 \ + /dev/sda3 /dev/sdb3 /dev/sdc3 + + +Finally, RAID 0 and RAID 5 users will need to create their /boot array. +RAID 1 users do not need to do this. + + - RAID 0: + mdadm --create /dev/md2 --level 1 --raid-devices 2 \ + /dev/sda1 /dev/sdb1 + + - RAID 5: + mdadm --create /dev/md2 --level 1 --raid-devices 3 \ + /dev/sda1 /dev/sdb1 /dev/sdc1 + + +We're all done creating our arrays! Yay! + + + +=== Run Slackware setup === + +First, let's format our swap array, so the installer recognizes it: + mkswap /dev/md1 + +Now run 'setup' as normal. + +When you choose to setup your swap partitions, /dev/md1 will show up. +Continue with this selected. + +When asked for the target partition, choose the root array (/dev/md0). + +You may choose the format method and filesystem of your choice. + +RAID 0 and RAID 5 users must also setup /boot. When asked about setting up +extra partitions, choose /dev/md2. When asked where to mount this device, +enter "/boot". + +After this, continue installation as normal. + +For LILO configuration: + - When asked about LILO, choose the "simple" setup. + - When asked about additional "append=" parameters, RAID 0 and + RAID 5 users should type in "root=/dev/md0", to ensure that the proper + array is mounted on / at bootup. + - When asked about where to install LILO, choose MBR. + +You may see some warnings scroll by. This is OK. + + + +=== Finishing touches === + +After exiting the installer, we have just a few settings to tweak. + +Start by switching into your actual installation directory: + - chroot /mnt + + +Let's make sure LILO boots from the RAID arrays properly. Using your +favorite editor (vim/nano/pico), edit /etc/lilo.conf: + - add a new line (add it anywhere, but don't indent it): + raid-extra-boot = mbr-only + - You will need to change the following line: + boot = + RAID 0 and RAID 5 users, change it to: + boot = /dev/md2 + RAID 1 users, change it to: + boot = /dev/md0 + + - Save the file and exit your editor. + - run "lilo". + + +When that's done, let's exit the installation and reboot: + - exit + - reboot + +Voila! + + + + +Using the generic kernel +=============================================================================== + +The official Slackware recommendation is to switch to the "generic" +Slackware kernel after installation has been completed. If you wish to use +the generic kernel, you must create an initrd. This section gives a quick +example of booting a RAID system in this fashion. + +If you require more information on initrds, please read /boot/README.initrd. + + +Typically, a user switches to a generic kernel by booting the system, and +afterwards running the following: + - cd /boot + - rm vmlinuz System.map config + - ln -s vmlinuz-generic-smp-* vmlinuz + - ln -s System.map-generic-smp-* System.map + - ln -s config-generic-smp-* config + +Don't run lilo yet, we'll do that soon. + + +Next, edit (create, if necessary) /etc/mkinitrd.conf and add: + MODULE_LIST="ext3" + RAID="1" + +Obviously, this assumes that you are using the EXT3 filesystem. If you are +using another filesystem, adjust the module appropriately (reiserfs or xfs, +for example). If you wish to read more about the MODULE_LIST variable, +consult "man mkinitrd.conf". + +Note: If the module for your hard drive controller is not compiled into the +generic kernel, you will want to add that module to the MODULE_LIST variable +in mkinitrd.conf. For example, my controller requires the mptspi module, so +my /etc/mkinitrd.conf looks like: + MODULE_LIST="ext3:mptspi" + RAID="1" + + +We're almost done. + +Edit /etc/lilo.conf, and find the line at the very end that says: + image = /boot/vmlinuz +Add a new line after it that says: + initrd = /boot/initrd.gz +In this case, be sure to indent the line you've added! + + +Next, create the initrd based on the config file created earlier. + mkinitrd -F + + +Finally, run "lilo" to make the new settings take effect, give yourself a +pat on the back, and reboot your finished system. :) + + + + +Troubleshooting +=============================================================================== + +Any number of typos can result in a system that does not boot on its own, +but all is not lost. Put the rubber chicken and the lemon away... + +Booting your Slackware media (DVD, for example) can make it very easy to +switch into your installed system and make repairs: + + - Boot Slackware CD/DVD. + - Login to installer as normal. + - Scan for, and then assemble the RAID arrays: + mdadm -Es > /etc/mdadm.conf + mdadm -As + - Mount root partition: + mount /dev/md0 /mnt + - Switch to installed OS: + chroot /mnt + - Mount remaining filesystems: + mount /boot (RAID 0 and RAID 5 users only) + mount /proc + mount sys /sys -t sysfs + +At this point, you can bring up your favorite editor, tweak config files, +re-run mkinitrd/lilo/etc as you wish, or anything else you need to do to +make your system bootable again. + +When you're finished making your changes, rebooting is simple: + + - cd / + - umount boot proc sys + - exit + - reboot + +If you are having issues that you're unable to resolve, shoot me an email. +Perhaps the answer will make it into this section. :) + + + + +Appendices +=============================================================================== + +=== Appendix A: Striping swap space without RAID 0 === + +For completeness' sake, I should mention that swap space can be striped to +improve performance without creating a RAID 0 array. + +To accomplish this, start by forgetting about any instructions having to do +with /dev/md1, which would be our swap array - create the swap partitions on +the hard drives, but do not create this particular array. + +When creating the swap partitions, ensure that the partition type is set to +Linux Swap (type 82). + +During setup, the installer will recognize the swap partitions. Ensure that +all of them are selected, and continue as normal. + + +After installation is complete, go ahead and boot your system - we can +finish this once the system is booted, in the interest of simplicity. + + +When the system boots, edit /etc/fstab with your favorite editor. Find the +lines that describe your swap partitions - they say "swap" in the second +column. + +Each of these lines says "default" in the fourth column. Simply change that +to "default,pri=0" for each line. + +After saving the file, either reboot, or simply run: + swapoff -a + swapon -a + +To confirm that the setting has taken effect, you can run: + swapon -s + +Verify that the Priority column reads 0 for each partition, and we're done! + + + + +Acknowledgements/References +=============================================================================== + +- In depth explanation of RAID levels: + "LasCon Storage - Different types of RAID" + http://www.lascon.co.uk/d008005.htm + +- Thanks to John Jenkins (mrgoblin) for some tips in: + "Installing with Raid on Slackware 12.0+" + http://www.userlocal.com/articles/raid1-slackware-12.php + +- Thanks to Karl Magnus Kolstø (karlmag) for his original writeup on + Slackware and RAID, ages ago! + "INSTALLING SLACKWARE LINUX version 8.1 WITH ROOT PARTITION ON A SOFTWARE + RAID level 0 DEVICE" + http://www.userlocal.com/articles/raid0-slackware-linux.php + +- Of course, thanks to Patrick "The Man" Volkerding for creating Slackware! + http://slackware.com/ + +- Also thanks to the rest of the guys that proofread, tested, and suggested! + Eric Hameleers (alienBOB), Robby Workman, Alan Hicks, + Piter Punk, Erik Jan Tromp (alphageek)... + +- My contact info: + Primary email: amrit@slackware.com + Secondary email: amrit@transamrit.net + On certain IRC networks: "amrit" (or some variation :) ) + +- This latest version of this document can be found at: + http://slackware.com/~amrit/ + http://transamrit.net/docs/slackware/ diff --git a/READ_DVD.TXT b/READ_DVD.TXT new file mode 100644 index 000000000..9fe54b21f --- /dev/null +++ b/READ_DVD.TXT @@ -0,0 +1,9105 @@ + +Welcome to the Slackware Linux version 13.0 64-bit x86_64 DVD. + +Here's a tree showing the contents of this disc. For complete details, +see additional documentation files. + +. +|-- ANNOUNCE.13_0 +|-- BOOTING.TXT +|-- CHANGES_AND_HINTS.TXT +|-- CHECKSUMS.md5 +|-- CHECKSUMS.md5.asc +|-- COPYING +|-- COPYING3 +|-- COPYRIGHT.TXT +|-- CRYPTO_NOTICE.TXT +|-- ChangeLog.txt +|-- FILELIST.TXT +|-- GPG-KEY +|-- PACKAGES.TXT +|-- README.TXT +|-- README.initrd +|-- README_CRYPT.TXT +|-- README_LVM.TXT +|-- README_RAID.TXT +|-- READ_DVD.TXT +|-- RELEASE_NOTES +|-- SPEAKUP_DOCS.TXT +|-- SPEAK_INSTALL.TXT +|-- Slackware-HOWTO +|-- extra +| |-- CHECKSUMS.md5 +| |-- CHECKSUMS.md5.asc +| |-- FILE_LIST +| |-- MANIFEST.bz2 +| |-- PACKAGES.TXT +| |-- README.TXT +| |-- aspell-word-lists +| | |-- aspell-af-0.50_0-noarch-4.txt +| | |-- aspell-af-0.50_0-noarch-4.txz +| | |-- aspell-af-0.50_0-noarch-4.txz.asc +| | |-- aspell-am-0.03_1-noarch-4.txt +| | |-- aspell-am-0.03_1-noarch-4.txz +| | |-- aspell-am-0.03_1-noarch-4.txz.asc +| | |-- aspell-az-0.02_0-noarch-4.txt +| | |-- aspell-az-0.02_0-noarch-4.txz +| | |-- aspell-az-0.02_0-noarch-4.txz.asc +| | |-- aspell-be-0.01-noarch-4.txt +| | |-- aspell-be-0.01-noarch-4.txz +| | |-- aspell-be-0.01-noarch-4.txz.asc +| | |-- aspell-bg-4.0_0-noarch-4.txt +| | |-- aspell-bg-4.0_0-noarch-4.txz +| | |-- aspell-bg-4.0_0-noarch-4.txz.asc +| | |-- aspell-bn-0.01.1_1-noarch-4.txt +| | |-- aspell-bn-0.01.1_1-noarch-4.txz +| | |-- aspell-bn-0.01.1_1-noarch-4.txz.asc +| | |-- aspell-br-0.50_2-noarch-4.txt +| | |-- aspell-br-0.50_2-noarch-4.txz +| | |-- aspell-br-0.50_2-noarch-4.txz.asc +| | |-- aspell-ca-20040130_1-noarch-4.txt +| | |-- aspell-ca-20040130_1-noarch-4.txz +| | |-- aspell-ca-20040130_1-noarch-4.txz.asc +| | |-- aspell-cs-20040614_1-noarch-4.txt +| | |-- aspell-cs-20040614_1-noarch-4.txz +| | |-- aspell-cs-20040614_1-noarch-4.txz.asc +| | |-- aspell-csb-0.02_0-noarch-4.txt +| | |-- aspell-csb-0.02_0-noarch-4.txz +| | |-- aspell-csb-0.02_0-noarch-4.txz.asc +| | |-- aspell-cy-0.50_3-noarch-4.txt +| | |-- aspell-cy-0.50_3-noarch-4.txz +| | |-- aspell-cy-0.50_3-noarch-4.txz.asc +| | |-- aspell-da-1.4.42_1-noarch-4.txt +| | |-- aspell-da-1.4.42_1-noarch-4.txz +| | |-- aspell-da-1.4.42_1-noarch-4.txz.asc +| | |-- aspell-de-20030222_1-noarch-4.txt +| | |-- aspell-de-20030222_1-noarch-4.txz +| | |-- aspell-de-20030222_1-noarch-4.txz.asc +| | |-- aspell-el-0.50_3-noarch-4.txt +| | |-- aspell-el-0.50_3-noarch-4.txz +| | |-- aspell-el-0.50_3-noarch-4.txz.asc +| | |-- aspell-eo-0.50_2-noarch-4.txt +| | |-- aspell-eo-0.50_2-noarch-4.txz +| | |-- aspell-eo-0.50_2-noarch-4.txz.asc +| | |-- aspell-es-0.50_2-noarch-4.txt +| | |-- aspell-es-0.50_2-noarch-4.txz +| | |-- aspell-es-0.50_2-noarch-4.txz.asc +| | |-- aspell-et-0.1.21_1-noarch-4.txt +| | |-- aspell-et-0.1.21_1-noarch-4.txz +| | |-- aspell-et-0.1.21_1-noarch-4.txz.asc +| | |-- aspell-fa-0.02_0-noarch-4.txt +| | |-- aspell-fa-0.02_0-noarch-4.txz +| | |-- aspell-fa-0.02_0-noarch-4.txz.asc +| | |-- aspell-fi-0.7_0-noarch-4.txt +| | |-- aspell-fi-0.7_0-noarch-4.txz +| | |-- aspell-fi-0.7_0-noarch-4.txz.asc +| | |-- aspell-fo-0.2.16_1-noarch-4.txt +| | |-- aspell-fo-0.2.16_1-noarch-4.txz +| | |-- aspell-fo-0.2.16_1-noarch-4.txz.asc +| | |-- aspell-fr-0.50_3-noarch-4.txt +| | |-- aspell-fr-0.50_3-noarch-4.txz +| | |-- aspell-fr-0.50_3-noarch-4.txz.asc +| | |-- aspell-ga-3.6_0-noarch-4.txt +| | |-- aspell-ga-3.6_0-noarch-4.txz +| | |-- aspell-ga-3.6_0-noarch-4.txz.asc +| | |-- aspell-gd-0.1.1_1-noarch-4.txt +| | |-- aspell-gd-0.1.1_1-noarch-4.txz +| | |-- aspell-gd-0.1.1_1-noarch-4.txz.asc +| | |-- aspell-gl-0.50_0-noarch-4.txt +| | |-- aspell-gl-0.50_0-noarch-4.txz +| | |-- aspell-gl-0.50_0-noarch-4.txz.asc +| | |-- aspell-gu-0.02_0-noarch-4.txt +| | |-- aspell-gu-0.02_0-noarch-4.txz +| | |-- aspell-gu-0.02_0-noarch-4.txz.asc +| | |-- aspell-gv-0.50_0-noarch-4.txt +| | |-- aspell-gv-0.50_0-noarch-4.txz +| | |-- aspell-gv-0.50_0-noarch-4.txz.asc +| | |-- aspell-he-1.0_0-noarch-4.txt +| | |-- aspell-he-1.0_0-noarch-4.txz +| | |-- aspell-he-1.0_0-noarch-4.txz.asc +| | |-- aspell-hi-0.01_0-noarch-4.txt +| | |-- aspell-hi-0.01_0-noarch-4.txz +| | |-- aspell-hi-0.01_0-noarch-4.txz.asc +| | |-- aspell-hil-0.11_0-noarch-4.txt +| | |-- aspell-hil-0.11_0-noarch-4.txz +| | |-- aspell-hil-0.11_0-noarch-4.txz.asc +| | |-- aspell-hr-0.51_0-noarch-4.txt +| | |-- aspell-hr-0.51_0-noarch-4.txz +| | |-- aspell-hr-0.51_0-noarch-4.txz.asc +| | |-- aspell-hsb-0.01_1-noarch-4.txt +| | |-- aspell-hsb-0.01_1-noarch-4.txz +| | |-- aspell-hsb-0.01_1-noarch-4.txz.asc +| | |-- aspell-hu-0.99.4.2_0-noarch-4.txt +| | |-- aspell-hu-0.99.4.2_0-noarch-4.txz +| | |-- aspell-hu-0.99.4.2_0-noarch-4.txz.asc +| | |-- aspell-ia-0.50_1-noarch-4.txt +| | |-- aspell-ia-0.50_1-noarch-4.txz +| | |-- aspell-ia-0.50_1-noarch-4.txz.asc +| | |-- aspell-id-1.2_0-noarch-4.txt +| | |-- aspell-id-1.2_0-noarch-4.txz +| | |-- aspell-id-1.2_0-noarch-4.txz.asc +| | |-- aspell-is-0.51.1_0-noarch-4.txt +| | |-- aspell-is-0.51.1_0-noarch-4.txz +| | |-- aspell-is-0.51.1_0-noarch-4.txz.asc +| | |-- aspell-it-2.2_20050523_0-noarch-4.txt +| | |-- aspell-it-2.2_20050523_0-noarch-4.txz +| | |-- aspell-it-2.2_20050523_0-noarch-4.txz.asc +| | |-- aspell-ku-0.12_0-noarch-4.txt +| | |-- aspell-ku-0.12_0-noarch-4.txz +| | |-- aspell-ku-0.12_0-noarch-4.txz.asc +| | |-- aspell-la-20020503_0-noarch-4.txt +| | |-- aspell-la-20020503_0-noarch-4.txz +| | |-- aspell-la-20020503_0-noarch-4.txz.asc +| | |-- aspell-lt-1.1+cvs20060103_0-noarch-4.txt +| | |-- aspell-lt-1.1+cvs20060103_0-noarch-4.txz +| | |-- aspell-lt-1.1+cvs20060103_0-noarch-4.txz.asc +| | |-- aspell-lv-0.5.5_1-noarch-4.txt +| | |-- aspell-lv-0.5.5_1-noarch-4.txz +| | |-- aspell-lv-0.5.5_1-noarch-4.txz.asc +| | |-- aspell-mg-0.03_0-noarch-4.txt +| | |-- aspell-mg-0.03_0-noarch-4.txz +| | |-- aspell-mg-0.03_0-noarch-4.txz.asc +| | |-- aspell-mi-0.50_0-noarch-4.txt +| | |-- aspell-mi-0.50_0-noarch-4.txz +| | |-- aspell-mi-0.50_0-noarch-4.txz.asc +| | |-- aspell-mk-0.50_0-noarch-4.txt +| | |-- aspell-mk-0.50_0-noarch-4.txz +| | |-- aspell-mk-0.50_0-noarch-4.txz.asc +| | |-- aspell-mn-0.01_0-noarch-4.txt +| | |-- aspell-mn-0.01_0-noarch-4.txz +| | |-- aspell-mn-0.01_0-noarch-4.txz.asc +| | |-- aspell-mr-0.10_0-noarch-4.txt +| | |-- aspell-mr-0.10_0-noarch-4.txz +| | |-- aspell-mr-0.10_0-noarch-4.txz.asc +| | |-- aspell-ms-0.50_0-noarch-4.txt +| | |-- aspell-ms-0.50_0-noarch-4.txz +| | |-- aspell-ms-0.50_0-noarch-4.txz.asc +| | |-- aspell-mt-0.50_0-noarch-4.txt +| | |-- aspell-mt-0.50_0-noarch-4.txz +| | |-- aspell-mt-0.50_0-noarch-4.txz.asc +| | |-- aspell-nb-0.50.1_0-noarch-4.txt +| | |-- aspell-nb-0.50.1_0-noarch-4.txz +| | |-- aspell-nb-0.50.1_0-noarch-4.txz.asc +| | |-- aspell-nds-0.01_0-noarch-4.txt +| | |-- aspell-nds-0.01_0-noarch-4.txz +| | |-- aspell-nds-0.01_0-noarch-4.txz.asc +| | |-- aspell-nl-0.50_2-noarch-4.txt +| | |-- aspell-nl-0.50_2-noarch-4.txz +| | |-- aspell-nl-0.50_2-noarch-4.txz.asc +| | |-- aspell-nn-0.50.1_1-noarch-4.txt +| | |-- aspell-nn-0.50.1_1-noarch-4.txz +| | |-- aspell-nn-0.50.1_1-noarch-4.txz.asc +| | |-- aspell-no-0.50_2-noarch-4.txt +| | |-- aspell-no-0.50_2-noarch-4.txz +| | |-- aspell-no-0.50_2-noarch-4.txz.asc +| | |-- aspell-ny-0.01_0-noarch-4.txt +| | |-- aspell-ny-0.01_0-noarch-4.txz +| | |-- aspell-ny-0.01_0-noarch-4.txz.asc +| | |-- aspell-or-0.03_1-noarch-4.txt +| | |-- aspell-or-0.03_1-noarch-4.txz +| | |-- aspell-or-0.03_1-noarch-4.txz.asc +| | |-- aspell-pa-0.01_1-noarch-4.txt +| | |-- aspell-pa-0.01_1-noarch-4.txz +| | |-- aspell-pa-0.01_1-noarch-4.txz.asc +| | |-- aspell-pl-0.51_0-noarch-4.txt +| | |-- aspell-pl-0.51_0-noarch-4.txz +| | |-- aspell-pl-0.51_0-noarch-4.txz.asc +| | |-- aspell-pt-0.50_2-noarch-4.txt +| | |-- aspell-pt-0.50_2-noarch-4.txz +| | |-- aspell-pt-0.50_2-noarch-4.txz.asc +| | |-- aspell-pt_BR-20080707_0-noarch-4.txt +| | |-- aspell-pt_BR-20080707_0-noarch-4.txz +| | |-- aspell-pt_BR-20080707_0-noarch-4.txz.asc +| | |-- aspell-qu-0.02_0-noarch-4.txt +| | |-- aspell-qu-0.02_0-noarch-4.txz +| | |-- aspell-qu-0.02_0-noarch-4.txz.asc +| | |-- aspell-ro-0.50_2-noarch-4.txt +| | |-- aspell-ro-0.50_2-noarch-4.txz +| | |-- aspell-ro-0.50_2-noarch-4.txz.asc +| | |-- aspell-ru-0.99f7_1-noarch-4.txt +| | |-- aspell-ru-0.99f7_1-noarch-4.txz +| | |-- aspell-ru-0.99f7_1-noarch-4.txz.asc +| | |-- aspell-rw-0.50_0-noarch-4.txt +| | |-- aspell-rw-0.50_0-noarch-4.txz +| | |-- aspell-rw-0.50_0-noarch-4.txz.asc +| | |-- aspell-sc-1.0-noarch-4.txt +| | |-- aspell-sc-1.0-noarch-4.txz +| | |-- aspell-sc-1.0-noarch-4.txz.asc +| | |-- aspell-sk-0.52_0-noarch-4.txt +| | |-- aspell-sk-0.52_0-noarch-4.txz +| | |-- aspell-sk-0.52_0-noarch-4.txz.asc +| | |-- aspell-sl-0.50_0-noarch-4.txt +| | |-- aspell-sl-0.50_0-noarch-4.txz +| | |-- aspell-sl-0.50_0-noarch-4.txz.asc +| | |-- aspell-sr-0.02-noarch-4.txt +| | |-- aspell-sr-0.02-noarch-4.txz +| | |-- aspell-sr-0.02-noarch-4.txz.asc +| | |-- aspell-sv-0.51_0-noarch-4.txt +| | |-- aspell-sv-0.51_0-noarch-4.txz +| | |-- aspell-sv-0.51_0-noarch-4.txz.asc +| | |-- aspell-sw-0.50_0-noarch-4.txt +| | |-- aspell-sw-0.50_0-noarch-4.txz +| | |-- aspell-sw-0.50_0-noarch-4.txz.asc +| | |-- aspell-ta-20040424_1-noarch-4.txt +| | |-- aspell-ta-20040424_1-noarch-4.txz +| | |-- aspell-ta-20040424_1-noarch-4.txz.asc +| | |-- aspell-te-0.01_2-noarch-4.txt +| | |-- aspell-te-0.01_2-noarch-4.txz +| | |-- aspell-te-0.01_2-noarch-4.txz.asc +| | |-- aspell-tet-0.1.1-noarch-4.txt +| | |-- aspell-tet-0.1.1-noarch-4.txz +| | |-- aspell-tet-0.1.1-noarch-4.txz.asc +| | |-- aspell-tl-0.02_1-noarch-4.txt +| | |-- aspell-tl-0.02_1-noarch-4.txz +| | |-- aspell-tl-0.02_1-noarch-4.txz.asc +| | |-- aspell-tn-1.0.1_0-noarch-4.txt +| | |-- aspell-tn-1.0.1_0-noarch-4.txz +| | |-- aspell-tn-1.0.1_0-noarch-4.txz.asc +| | |-- aspell-tr-0.50_0-noarch-4.txt +| | |-- aspell-tr-0.50_0-noarch-4.txz +| | |-- aspell-tr-0.50_0-noarch-4.txz.asc +| | |-- aspell-uk-0.51_0-noarch-4.txt +| | |-- aspell-uk-0.51_0-noarch-4.txz +| | |-- aspell-uk-0.51_0-noarch-4.txz.asc +| | |-- aspell-uk-1.1_0-noarch-4.txt +| | |-- aspell-uk-1.1_0-noarch-4.txz +| | |-- aspell-uk-1.1_0-noarch-4.txz.asc +| | |-- aspell-uz-0.5_0-noarch-4.txt +| | |-- aspell-uz-0.5_0-noarch-4.txz +| | |-- aspell-uz-0.5_0-noarch-4.txz.asc +| | |-- aspell-vi-0.01.1_1-noarch-4.txt +| | |-- aspell-vi-0.01.1_1-noarch-4.txz +| | |-- aspell-vi-0.01.1_1-noarch-4.txz.asc +| | |-- aspell-wa-0.50_0-noarch-4.txt +| | |-- aspell-wa-0.50_0-noarch-4.txz +| | |-- aspell-wa-0.50_0-noarch-4.txz.asc +| | |-- aspell-yi-0.01.1_1-noarch-4.txt +| | |-- aspell-yi-0.01.1_1-noarch-4.txz +| | |-- aspell-yi-0.01.1_1-noarch-4.txz.asc +| | |-- aspell-zu-0.50_0-noarch-4.txt +| | |-- aspell-zu-0.50_0-noarch-4.txz +| | `-- aspell-zu-0.50_0-noarch-4.txz.asc +| |-- bash-completion +| | |-- bash-completion-20060301-noarch-2.txt +| | |-- bash-completion-20060301-noarch-2.txz +| | `-- bash-completion-20060301-noarch-2.txz.asc +| |-- bittorrent +| | |-- README +| | |-- bittorrent-4.4.0-noarch-3.txt +| | |-- bittorrent-4.4.0-noarch-3.txz +| | `-- bittorrent-4.4.0-noarch-3.txz.asc +| |-- brltty +| | |-- brltty-4.0-x86_64-1.txt +| | |-- brltty-4.0-x86_64-1.txz +| | `-- brltty-4.0-x86_64-1.txz.asc +| |-- flashplayer-plugin -> source/flashplayer-plugin +| |-- jdk-6 +| | |-- jdk-6u16-x86_64-1.txt +| | |-- jdk-6u16-x86_64-1.txz +| | `-- jdk-6u16-x86_64-1.txz.asc +| |-- kde3-compat +| | |-- arts-1.5.10-x86_64-opt1.txt +| | |-- arts-1.5.10-x86_64-opt1.txz +| | |-- arts-1.5.10-x86_64-opt1.txz.asc +| | |-- k3b3-1.0.5-x86_64-opt1.txt +| | |-- k3b3-1.0.5-x86_64-opt1.txz +| | |-- k3b3-1.0.5-x86_64-opt1.txz.asc +| | |-- kdelibs3-3.5.10-x86_64-opt1.txt +| | |-- kdelibs3-3.5.10-x86_64-opt1.txz +| | |-- kdelibs3-3.5.10-x86_64-opt1.txz.asc +| | |-- qt3-3.3.8b-x86_64-opt2.txt +| | |-- qt3-3.3.8b-x86_64-opt2.txz +| | `-- qt3-3.3.8b-x86_64-opt2.txz.asc +| |-- mpg123 +| | |-- mpg123-0.65-x86_64-1.txt +| | |-- mpg123-0.65-x86_64-1.txz +| | `-- mpg123-0.65-x86_64-1.txz.asc +| |-- mplayerplug-in +| | |-- mplayerplug-in-3.55-x86_64-1.txt +| | |-- mplayerplug-in-3.55-x86_64-1.txz +| | `-- mplayerplug-in-3.55-x86_64-1.txz.asc +| |-- partitionmanager +| | |-- partitionmanager-1.0.0_BETA1-x86_64-1.txt +| | |-- partitionmanager-1.0.0_BETA1-x86_64-1.txz +| | `-- partitionmanager-1.0.0_BETA1-x86_64-1.txz.asc +| |-- recordmydesktop +| | |-- recordmydesktop-0.3.8.1-x86_64-2.txt +| | |-- recordmydesktop-0.3.8.1-x86_64-2.txz +| | `-- recordmydesktop-0.3.8.1-x86_64-2.txz.asc +| |-- slacktrack +| | |-- OVERVIEW +| | |-- slacktrack-2.06-x86_64-1.txt +| | |-- slacktrack-2.06-x86_64-1.txz +| | `-- slacktrack-2.06-x86_64-1.txz.asc +| |-- source +| | |-- bash-completion +| | | |-- bash-completion-20060301.tar.bz2 +| | | |-- bash-completion-xz.diff.gz +| | | |-- bash-completion.SlackBuild +| | | |-- bash_completion.sh.gz +| | | `-- slack-desc +| | |-- bittorrent +| | | |-- BitTorrent-4.4.0.tar.bz2 +| | | |-- bittorrent-xterm.sh.gz +| | | |-- bittorrent.SlackBuild +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- brltty +| | | |-- brltty-4.0.tar.xz +| | | |-- brltty.SlackBuild +| | | `-- slack-desc +| | |-- flashplayer-plugin +| | | |-- flashplayer-plugin.SlackBuild +| | | `-- slack-desc +| | |-- grub +| | | |-- grub-0.97-x86_64.patch.gz +| | | |-- grub-0.97.tar.gz +| | | |-- grub-0.97.tar.gz.sig +| | | |-- grub.SlackBuild +| | | |-- grub_support_256byte_inode.patch.gz +| | | |-- grubconfig-1.28.tar.gz +| | | |-- grubconfig_localefix.patch.gz +| | | `-- slack-desc +| | |-- jdk-6 +| | | |-- COPYRIGHT +| | | |-- HOWTO-BUILD-TXZ +| | | |-- LICENSE +| | | |-- README.html +| | | |-- README_ja.html +| | | |-- README_zh_CN.html +| | | |-- jdk.SlackBuild +| | | |-- profile.d +| | | | |-- jdk.csh +| | | | `-- jdk.sh +| | | |-- register.html +| | | |-- register_ja.html +| | | |-- register_zh_CN.html +| | | `-- slack-desc +| | |-- kde3-compat +| | | |-- arts +| | | | |-- arts-1.5.10.tar.bz2 +| | | | |-- arts.SlackBuild +| | | | |-- arts.tmpdir.diff.gz +| | | | `-- slack-desc +| | | |-- k3b3 +| | | | |-- k3b-1.0.5.tar.bz2 +| | | | |-- k3b3.SlackBuild +| | | | `-- slack-desc +| | | |-- kdelibs3 +| | | | |-- apply-patches.sh +| | | | |-- kdelibs-3.5.10.tar.bz2 +| | | | |-- kdelibs-utempter.diff.gz +| | | | |-- kdelibs.inotify.diff.gz +| | | | |-- kdelibs.no.inotify.externs.diff.gz +| | | | |-- kdelibs3.SlackBuild +| | | | |-- local.options +| | | | `-- slack-desc +| | | `-- qt3 +| | | |-- doinst.sh.gz +| | | |-- profile.d +| | | | |-- qt.csh +| | | | `-- qt.sh +| | | |-- qt-x11-free-3.3.8b.tar.bz2 +| | | |-- qt-x11.diff.gz +| | | |-- qt.mysql.h.diff.gz +| | | |-- qt.x86.cflags.diff.gz +| | | |-- qt3.SlackBuild +| | | `-- slack-desc +| | |-- mpg123 +| | | |-- mpg123-0.65.tar.bz2 +| | | |-- mpg123-0.65.tar.bz2.sig +| | | |-- mpg123.SlackBuild +| | | `-- slack-desc +| | |-- mplayerplug-in +| | | |-- mplayerplug-in-3.55.tar.gz +| | | |-- mplayerplug-in.SlackBuild +| | | `-- slack-desc +| | |-- partitionmanager +| | | |-- doinst.sh.gz +| | | |-- partitionmanager-1.0.0-BETA1.tar.bz2 +| | | |-- partitionmanager.SlackBuild +| | | `-- slack-desc +| | |-- recordmydesktop +| | | |-- qt-recordmydesktop-0.3.8.tar.gz +| | | |-- recordmydesktop-0.3.8.1.tar.gz +| | | |-- recordmydesktop.SlackBuild +| | | `-- slack-desc +| | |-- slacktrack +| | | |-- slacktrack-2.06-source.tar.gz +| | | `-- slacktrack.SlackBuild +| | |-- tightvnc +| | | |-- _tightvnc.tar.gz +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- tightvnc-1.3.10_unixsrc.tar.xz +| | | |-- tightvnc.SlackBuild +| | | `-- tightvnc.paths-and-perms.diff.gz +| | |-- wicd +| | | |-- README.SLACKWARE +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- wicd-1.6.2.1.tar.bz2 +| | | `-- wicd.SlackBuild +| | |-- xfce-goodies +| | `-- yasm +| | |-- slack-desc +| | |-- yasm-0.8.0.tar.gz +| | `-- yasm.SlackBuild +| |-- tightvnc +| | |-- tightvnc-1.3.10-x86_64-1.txt +| | |-- tightvnc-1.3.10-x86_64-1.txz +| | `-- tightvnc-1.3.10-x86_64-1.txz.asc +| |-- wicd +| | |-- README.SLACKWARE +| | |-- wicd-1.6.2.1-x86_64-1.txt +| | |-- wicd-1.6.2.1-x86_64-1.txz +| | `-- wicd-1.6.2.1-x86_64-1.txz.asc +| |-- xf86-video-intel-alternate +| | |-- xf86-video-intel-2.5.1-x86_64-1.txt +| | |-- xf86-video-intel-2.5.1-x86_64-1.txz +| | |-- xf86-video-intel-2.5.1-x86_64-1.txz.asc +| | |-- xf86-video-intel-2.6.3-x86_64-1.txt +| | |-- xf86-video-intel-2.6.3-x86_64-1.txz +| | |-- xf86-video-intel-2.6.3-x86_64-1.txz.asc +| | |-- xf86-video-intel-2.7.1-x86_64-2.txt +| | |-- xf86-video-intel-2.7.1-x86_64-2.txz +| | |-- xf86-video-intel-2.7.1-x86_64-2.txz.asc +| | |-- xf86-video-intel-2.8.1-x86_64-1.txt +| | |-- xf86-video-intel-2.8.1-x86_64-1.txz +| | `-- xf86-video-intel-2.8.1-x86_64-1.txz.asc +| `-- yasm +| |-- yasm-0.8.0-x86_64-1.txt +| |-- yasm-0.8.0-x86_64-1.txz +| `-- yasm-0.8.0-x86_64-1.txz.asc +|-- isolinux +| |-- README.TXT +| |-- README_SPLIT.TXT +| |-- f2.txt +| |-- initrd.img +| |-- iso.sort +| |-- isolinux.bin +| |-- isolinux.cfg +| |-- message.txt +| |-- sbootmgr +| | |-- RAWRITE.EXE +| | |-- RAWRITE12.DOC +| | |-- RAWRITE12.EXE +| | |-- RAWRITE13.EXE -> RAWRITE.EXE +| | |-- RAWRITENT.DOC +| | |-- RAWRITENT.EXE +| | |-- README.TXT +| | `-- sbootmgr.dsk +| `-- setpkg +|-- kernels +| |-- VERSIONS.TXT +| |-- huge.s +| | |-- System.map.gz +| | |-- bzImage +| | `-- config +| `-- speakup.s +| |-- System.map.gz +| |-- bzImage +| |-- config +| `-- speakup_decpc.ko +|-- pasture +| |-- CHECKSUMS.md5.asc +| `-- source +|-- slackbook +| |-- html +| | |-- TRADEMARKS.html +| | |-- archive-files-bzip2.html +| | |-- archive-files-tar.html +| | |-- archive-files-zip.html +| | |-- archive-files.html +| | |-- basic-network-commands +| | | |-- elm.png +| | | |-- links.png +| | | |-- lynx.png +| | | |-- mutt.png +| | | |-- pine.png +| | | |-- talk.png +| | | `-- ytalk.png +| | |-- basic-network-commands-dns.html +| | |-- basic-network-commands-email.html +| | |-- basic-network-commands-finger.html +| | |-- basic-network-commands-ftp.html +| | |-- basic-network-commands-ssh.html +| | |-- basic-network-commands-talk.html +| | |-- basic-network-commands-telnet.html +| | |-- basic-network-commands-traceroute.html +| | |-- basic-network-commands-web.html +| | |-- basic-network-commands.html +| | |-- book-preface.html +| | |-- book.html +| | |-- booting +| | | |-- setup-lilo-expert-w.png +| | | `-- setup-lilo-w.png +| | |-- booting-dual.html +| | |-- booting-loadlin.html +| | |-- booting.html +| | |-- docbook.css +| | |-- emacs +| | | `-- emacs.png +| | |-- emacs-basic-editing.html +| | |-- emacs-buffers.html +| | |-- emacs-modes.html +| | |-- emacs-saving-files.html +| | |-- emacs.html +| | |-- essential-sysadmin-hardusers.html +| | |-- essential-sysadmin-shutdown.html +| | |-- essential-sysadmin.html +| | |-- file-commands-copymove.html +| | |-- file-commands-creation.html +| | |-- file-commands-deletion.html +| | |-- file-commands-link.html +| | |-- file-commands-output.html +| | |-- file-commands-pagers.html +| | |-- file-commands.html +| | |-- filesystem-structure-links.html +| | |-- filesystem-structure-mounting.html +| | |-- filesystem-structure-nfs.html +| | |-- filesystem-structure-permissions.html +| | |-- filesystem-structure.html +| | |-- glossary.html +| | |-- gpl.html +| | |-- help-online.html +| | |-- help.html +| | |-- imagelib +| | | `-- admon +| | | |-- note.png +| | | `-- warning.png +| | |-- index.html +| | |-- installation +| | | |-- setup-bootdisk-w.png +| | | |-- setup-font-w.png +| | | |-- setup-hardware-clock-w.png +| | | |-- setup-help-w.png +| | | |-- setup-install-w.png +| | | |-- setup-kernel-w.png +| | | |-- setup-keymap-w.png +| | | |-- setup-lilo-w.png +| | | |-- setup-modem-w.png +| | | |-- setup-mouse-w.png +| | | |-- setup-program-w.png +| | | |-- setup-select-w.png +| | | |-- setup-source-w.png +| | | |-- setup-swap-w.png +| | | |-- setup-target-w.png +| | | |-- setup-timezone-w.png +| | | `-- setup-xwmconfig-w.png +| | |-- installation-partitioning.html +| | |-- installation-requirements.html +| | |-- installation-setup.html +| | |-- installation.html +| | |-- introduction-opensource.html +| | |-- introduction-slackware.html +| | |-- introduction.html +| | |-- network-configuration-hardware.html +| | |-- network-configuration-nfs.html +| | |-- network-configuration-ppp.html +| | |-- network-configuration-tcpip.html +| | |-- network-configuration-wireless.html +| | |-- network-configuration.html +| | |-- package-management +| | | |-- pkgtool-view-w.png +| | | `-- pkgtool-w.png +| | |-- package-management-making-packages.html +| | |-- package-management-making-tags-and-tagfiles.html +| | |-- package-management-package-utilities.html +| | |-- package-management.html +| | |-- process-control-foregrounding.html +| | |-- process-control-kill.html +| | |-- process-control-ps.html +| | |-- process-control-top.html +| | |-- process-control.html +| | |-- security-current.html +| | |-- security-host.html +| | |-- security.html +| | |-- shell-bash.html +| | |-- shell-command-line.html +| | |-- shell-vt.html +| | |-- shell.html +| | |-- slackware_logo.png +| | |-- system-configuration +| | | `-- make-menuconfig-w.png +| | |-- system-configuration-kernel.html +| | |-- system-configuration.html +| | |-- vi +| | | `-- vim-splitedit.png +| | |-- vi-configuration.html +| | |-- vi-keys.html +| | |-- vi-modes.html +| | |-- vi-opening-files.html +| | |-- vi-quitting-vi.html +| | |-- vi-saving-files.html +| | |-- vi.html +| | |-- x-window-system +| | | |-- xorgconfig1-w.png +| | | |-- xorgconfig2-w.png +| | | |-- xorgconfig3-w.png +| | | |-- xorgconfig4-w.png +| | | `-- xwmconfig-w.png +| | |-- x-window-system-xdm.html +| | |-- x-window-system-xinitrc.html +| | |-- x-window-system-xorgsetup.html +| | |-- x-window-system-xwmconfig.html +| | |-- x-window-system.html +| | |-- zipslack-booting.html +| | |-- zipslack-getting.html +| | `-- zipslack.html +| |-- slackbook-2.0.pdf +| `-- slackbook-2.0.ps +|-- slackware64 +| |-- CHECKSUMS.md5 +| |-- CHECKSUMS.md5.asc +| |-- FILE_LIST +| |-- MANIFEST.bz2 +| |-- PACKAGES.TXT -> ../PACKAGES.TXT +| |-- a +| | |-- aaa_base-13.0-x86_64-2.txt +| | |-- aaa_base-13.0-x86_64-2.txz +| | |-- aaa_base-13.0-x86_64-2.txz.asc +| | |-- aaa_elflibs-13.0-x86_64-2.txt +| | |-- aaa_elflibs-13.0-x86_64-2.txz +| | |-- aaa_elflibs-13.0-x86_64-2.txz.asc +| | |-- aaa_terminfo-5.7-noarch-1.txt +| | |-- aaa_terminfo-5.7-noarch-1.txz +| | |-- aaa_terminfo-5.7-noarch-1.txz.asc +| | |-- acl-2.2.47_1-x86_64-1.txt +| | |-- acl-2.2.47_1-x86_64-1.txz +| | |-- acl-2.2.47_1-x86_64-1.txz.asc +| | |-- acpid-1.0.8-x86_64-2.txt +| | |-- acpid-1.0.8-x86_64-2.txz +| | |-- acpid-1.0.8-x86_64-2.txz.asc +| | |-- apmd-3.2.2-x86_64-2.txt +| | |-- apmd-3.2.2-x86_64-2.txz +| | |-- apmd-3.2.2-x86_64-2.txz.asc +| | |-- attr-2.4.43_1-x86_64-1.txt +| | |-- attr-2.4.43_1-x86_64-1.txz +| | |-- attr-2.4.43_1-x86_64-1.txz.asc +| | |-- bash-3.1.017-x86_64-2.txt +| | |-- bash-3.1.017-x86_64-2.txz +| | |-- bash-3.1.017-x86_64-2.txz.asc +| | |-- bin-11.1-x86_64-1.txt +| | |-- bin-11.1-x86_64-1.txz +| | |-- bin-11.1-x86_64-1.txz.asc +| | |-- bzip2-1.0.5-x86_64-1.txt +| | |-- bzip2-1.0.5-x86_64-1.txz +| | |-- bzip2-1.0.5-x86_64-1.txz.asc +| | |-- coreutils-7.4-x86_64-1.txt +| | |-- coreutils-7.4-x86_64-1.txz +| | |-- coreutils-7.4-x86_64-1.txz.asc +| | |-- cpio-2.9-x86_64-2.txt +| | |-- cpio-2.9-x86_64-2.txz +| | |-- cpio-2.9-x86_64-2.txz.asc +| | |-- cryptsetup-1.0.7-x86_64-1.txt +| | |-- cryptsetup-1.0.7-x86_64-1.txz +| | |-- cryptsetup-1.0.7-x86_64-1.txz.asc +| | |-- cups-1.3.11-x86_64-1.txt +| | |-- cups-1.3.11-x86_64-1.txz +| | |-- cups-1.3.11-x86_64-1.txz.asc +| | |-- cxxlibs-6.0.10-x86_64-1.txt +| | |-- cxxlibs-6.0.10-x86_64-1.txz +| | |-- cxxlibs-6.0.10-x86_64-1.txz.asc +| | |-- dbus-1.2.14-x86_64-1.txt +| | |-- dbus-1.2.14-x86_64-1.txz +| | |-- dbus-1.2.14-x86_64-1.txz.asc +| | |-- dcron-2.3.3-x86_64-6.txt +| | |-- dcron-2.3.3-x86_64-6.txz +| | |-- dcron-2.3.3-x86_64-6.txz.asc +| | |-- device-mapper-1.02.28-x86_64-1.txt +| | |-- device-mapper-1.02.28-x86_64-1.txz +| | |-- device-mapper-1.02.28-x86_64-1.txz.asc +| | |-- devs-2.3.1-noarch-25.txt +| | |-- devs-2.3.1-noarch-25.txz +| | |-- devs-2.3.1-noarch-25.txz.asc +| | |-- dialog-1.1_20080819-x86_64-3.txt +| | |-- dialog-1.1_20080819-x86_64-3.txz +| | |-- dialog-1.1_20080819-x86_64-3.txz.asc +| | |-- dosfstools-2.11-x86_64-1.txt +| | |-- dosfstools-2.11-x86_64-1.txz +| | |-- dosfstools-2.11-x86_64-1.txz.asc +| | |-- e2fsprogs-1.41.8-x86_64-1.txt +| | |-- e2fsprogs-1.41.8-x86_64-1.txz +| | |-- e2fsprogs-1.41.8-x86_64-1.txz.asc +| | |-- ed-1.3-x86_64-1.txt +| | |-- ed-1.3-x86_64-1.txz +| | |-- ed-1.3-x86_64-1.txz.asc +| | |-- eject-2.1.5-x86_64-1.txt +| | |-- eject-2.1.5-x86_64-1.txz +| | |-- eject-2.1.5-x86_64-1.txz.asc +| | |-- elvis-2.2_0-x86_64-2.txt +| | |-- elvis-2.2_0-x86_64-2.txz +| | |-- elvis-2.2_0-x86_64-2.txz.asc +| | |-- etc-13.0-x86_64-2.txt +| | |-- etc-13.0-x86_64-2.txz +| | |-- etc-13.0-x86_64-2.txz.asc +| | |-- file-5.03-x86_64-1.txt +| | |-- file-5.03-x86_64-1.txz +| | |-- file-5.03-x86_64-1.txz.asc +| | |-- findutils-4.4.2-x86_64-1.txt +| | |-- findutils-4.4.2-x86_64-1.txz +| | |-- findutils-4.4.2-x86_64-1.txz.asc +| | |-- floppy-5.4-x86_64-3.txt +| | |-- floppy-5.4-x86_64-3.txz +| | |-- floppy-5.4-x86_64-3.txz.asc +| | |-- gawk-3.1.6-x86_64-2.txt +| | |-- gawk-3.1.6-x86_64-2.txz +| | |-- gawk-3.1.6-x86_64-2.txz.asc +| | |-- genpower-1.0.5-x86_64-2.txt +| | |-- genpower-1.0.5-x86_64-2.txz +| | |-- genpower-1.0.5-x86_64-2.txz.asc +| | |-- gettext-0.17-x86_64-2.txt +| | |-- gettext-0.17-x86_64-2.txz +| | |-- gettext-0.17-x86_64-2.txz.asc +| | |-- getty-ps-2.1.0b-x86_64-1.txt +| | |-- getty-ps-2.1.0b-x86_64-1.txz +| | |-- getty-ps-2.1.0b-x86_64-1.txz.asc +| | |-- glibc-solibs-2.9-x86_64-3.txt +| | |-- glibc-solibs-2.9-x86_64-3.txz +| | |-- glibc-solibs-2.9-x86_64-3.txz.asc +| | |-- glibc-zoneinfo-2.9-noarch-3.txt +| | |-- glibc-zoneinfo-2.9-noarch-3.txz +| | |-- glibc-zoneinfo-2.9-noarch-3.txz.asc +| | |-- gpm-1.20.1-x86_64-5.txt +| | |-- gpm-1.20.1-x86_64-5.txz +| | |-- gpm-1.20.1-x86_64-5.txz.asc +| | |-- grep-2.5.4-x86_64-1.txt +| | |-- grep-2.5.4-x86_64-1.txz +| | |-- grep-2.5.4-x86_64-1.txz.asc +| | |-- gzip-1.3.12-x86_64-1.tgz +| | |-- gzip-1.3.12-x86_64-1.tgz.asc +| | |-- gzip-1.3.12-x86_64-1.txt +| | |-- hdparm-9.3-x86_64-1.txt +| | |-- hdparm-9.3-x86_64-1.txz +| | |-- hdparm-9.3-x86_64-1.txz.asc +| | |-- infozip-6.0-x86_64-1.txt +| | |-- infozip-6.0-x86_64-1.txz +| | |-- infozip-6.0-x86_64-1.txz.asc +| | |-- inotify-tools-3.13-x86_64-1.txt +| | |-- inotify-tools-3.13-x86_64-1.txz +| | |-- inotify-tools-3.13-x86_64-1.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- jfsutils-1.1.14-x86_64-1.txt +| | |-- jfsutils-1.1.14-x86_64-1.txz +| | |-- jfsutils-1.1.14-x86_64-1.txz.asc +| | |-- kbd-1.15-x86_64-3.txt +| | |-- kbd-1.15-x86_64-3.txz +| | |-- kbd-1.15-x86_64-3.txz.asc +| | |-- kernel-firmware-2.6.29.6-noarch-2.txt +| | |-- kernel-firmware-2.6.29.6-noarch-2.txz +| | |-- kernel-firmware-2.6.29.6-noarch-2.txz.asc +| | |-- kernel-generic-2.6.29.6-x86_64-2.txt +| | |-- kernel-generic-2.6.29.6-x86_64-2.txz +| | |-- kernel-generic-2.6.29.6-x86_64-2.txz.asc +| | |-- kernel-huge-2.6.29.6-x86_64-2.txt +| | |-- kernel-huge-2.6.29.6-x86_64-2.txz +| | |-- kernel-huge-2.6.29.6-x86_64-2.txz.asc +| | |-- kernel-modules-2.6.29.6-x86_64-2.txt +| | |-- kernel-modules-2.6.29.6-x86_64-2.txz +| | |-- kernel-modules-2.6.29.6-x86_64-2.txz.asc +| | |-- less-418-x86_64-3.txt +| | |-- less-418-x86_64-3.txz +| | |-- less-418-x86_64-3.txz.asc +| | |-- lha-114i-x86_64-1.txt +| | |-- lha-114i-x86_64-1.txz +| | |-- lha-114i-x86_64-1.txz.asc +| | |-- lilo-22.8-x86_64-14.txt +| | |-- lilo-22.8-x86_64-14.txz +| | |-- lilo-22.8-x86_64-14.txz.asc +| | |-- logrotate-3.7.4-x86_64-1.txt +| | |-- logrotate-3.7.4-x86_64-1.txz +| | |-- logrotate-3.7.4-x86_64-1.txz.asc +| | |-- lvm2-2.02.40-x86_64-1.txt +| | |-- lvm2-2.02.40-x86_64-1.txz +| | |-- lvm2-2.02.40-x86_64-1.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | |-- mdadm-2.6.4-x86_64-1.txt +| | |-- mdadm-2.6.4-x86_64-1.txz +| | |-- mdadm-2.6.4-x86_64-1.txz.asc +| | |-- minicom-2.1-x86_64-3.txt +| | |-- minicom-2.1-x86_64-3.txz +| | |-- minicom-2.1-x86_64-3.txz.asc +| | |-- mkinitrd-1.3.4-x86_64-3.txt +| | |-- mkinitrd-1.3.4-x86_64-3.txz +| | |-- mkinitrd-1.3.4-x86_64-3.txz.asc +| | |-- module-init-tools-3.6-x86_64-2.txt +| | |-- module-init-tools-3.6-x86_64-2.txz +| | |-- module-init-tools-3.6-x86_64-2.txz.asc +| | |-- mt-st-0.9b-x86_64-2.txt +| | |-- mt-st-0.9b-x86_64-2.txz +| | |-- mt-st-0.9b-x86_64-2.txz.asc +| | |-- mtx-1.3.9-x86_64-2.txt +| | |-- mtx-1.3.9-x86_64-2.txz +| | |-- mtx-1.3.9-x86_64-2.txz.asc +| | |-- ncompress-4.2.4-x86_64-1.txt +| | |-- ncompress-4.2.4-x86_64-1.txz +| | |-- ncompress-4.2.4-x86_64-1.txz.asc +| | |-- ntfs-3g-2009.4.4-x86_64-1.txt +| | |-- ntfs-3g-2009.4.4-x86_64-1.txz +| | |-- ntfs-3g-2009.4.4-x86_64-1.txz.asc +| | |-- openssl-solibs-0.9.8k-x86_64-2.txt +| | |-- openssl-solibs-0.9.8k-x86_64-2.txz +| | |-- openssl-solibs-0.9.8k-x86_64-2.txz.asc +| | |-- patch-2.5.4-x86_64-1.txt +| | |-- patch-2.5.4-x86_64-1.txz +| | |-- patch-2.5.4-x86_64-1.txz.asc +| | |-- pciutils-3.1.3-x86_64-1.txt +| | |-- pciutils-3.1.3-x86_64-1.txz +| | |-- pciutils-3.1.3-x86_64-1.txz.asc +| | |-- pcmciautils-015-x86_64-2.txt +| | |-- pcmciautils-015-x86_64-2.txz +| | |-- pcmciautils-015-x86_64-2.txz.asc +| | |-- pkgtools-13.0-noarch-3.tgz +| | |-- pkgtools-13.0-noarch-3.tgz.asc +| | |-- pkgtools-13.0-noarch-3.txt +| | |-- procps-3.2.7-x86_64-3.txt +| | |-- procps-3.2.7-x86_64-3.txz +| | |-- procps-3.2.7-x86_64-3.txz.asc +| | |-- quota-3.17-x86_64-1.txt +| | |-- quota-3.17-x86_64-1.txz +| | |-- quota-3.17-x86_64-1.txz.asc +| | |-- reiserfsprogs-3.6.21-x86_64-1.txt +| | |-- reiserfsprogs-3.6.21-x86_64-1.txz +| | |-- reiserfsprogs-3.6.21-x86_64-1.txz.asc +| | |-- rpm2tgz-1.1-x86_64-1.txt +| | |-- rpm2tgz-1.1-x86_64-1.txz +| | |-- rpm2tgz-1.1-x86_64-1.txz.asc +| | |-- sdparm-1.01-x86_64-2.txt +| | |-- sdparm-1.01-x86_64-2.txz +| | |-- sdparm-1.01-x86_64-2.txz.asc +| | |-- sed-4.1.5-x86_64-1.txt +| | |-- sed-4.1.5-x86_64-1.txz +| | |-- sed-4.1.5-x86_64-1.txz.asc +| | |-- shadow-4.0.3-x86_64-18.txt +| | |-- shadow-4.0.3-x86_64-18.txz +| | |-- shadow-4.0.3-x86_64-18.txz.asc +| | |-- sharutils-4.7-x86_64-1.txt +| | |-- sharutils-4.7-x86_64-1.txz +| | |-- sharutils-4.7-x86_64-1.txz.asc +| | |-- slocate-3.1-x86_64-3.txt +| | |-- slocate-3.1-x86_64-3.txz +| | |-- slocate-3.1-x86_64-3.txz.asc +| | |-- smartmontools-5.38-x86_64-1.txt +| | |-- smartmontools-5.38-x86_64-1.txz +| | |-- smartmontools-5.38-x86_64-1.txz.asc +| | |-- splitvt-1.6.5-x86_64-1.txt +| | |-- splitvt-1.6.5-x86_64-1.txz +| | |-- splitvt-1.6.5-x86_64-1.txz.asc +| | |-- sysfsutils-2.1.0-x86_64-1.txt +| | |-- sysfsutils-2.1.0-x86_64-1.txz +| | |-- sysfsutils-2.1.0-x86_64-1.txz.asc +| | |-- sysklogd-1.4.1-x86_64-10.txt +| | |-- sysklogd-1.4.1-x86_64-10.txz +| | |-- sysklogd-1.4.1-x86_64-10.txz.asc +| | |-- syslinux-3.52-x86_64-1.txt +| | |-- syslinux-3.52-x86_64-1.txz +| | |-- syslinux-3.52-x86_64-1.txz.asc +| | |-- sysvinit-2.86-x86_64-6.txt +| | |-- sysvinit-2.86-x86_64-6.txz +| | |-- sysvinit-2.86-x86_64-6.txz.asc +| | |-- sysvinit-functions-8.53-x86_64-2.txt +| | |-- sysvinit-functions-8.53-x86_64-2.txz +| | |-- sysvinit-functions-8.53-x86_64-2.txz.asc +| | |-- sysvinit-scripts-1.2-noarch-30.txt +| | |-- sysvinit-scripts-1.2-noarch-30.txz +| | |-- sysvinit-scripts-1.2-noarch-30.txz.asc +| | |-- tagfile +| | |-- tar-1.22-x86_64-2.tgz +| | |-- tar-1.22-x86_64-2.tgz.asc +| | |-- tar-1.22-x86_64-2.txt +| | |-- tcsh-6.15.00-x86_64-1.txt +| | |-- tcsh-6.15.00-x86_64-1.txz +| | |-- tcsh-6.15.00-x86_64-1.txz.asc +| | |-- time-1.7-x86_64-1.txt +| | |-- time-1.7-x86_64-1.txz +| | |-- time-1.7-x86_64-1.txz.asc +| | |-- tree-1.5.2.2-x86_64-1.txt +| | |-- tree-1.5.2.2-x86_64-1.txz +| | |-- tree-1.5.2.2-x86_64-1.txz.asc +| | |-- udev-141-x86_64-3.txt +| | |-- udev-141-x86_64-3.txz +| | |-- udev-141-x86_64-3.txz.asc +| | |-- unarj-265-x86_64-1.txt +| | |-- unarj-265-x86_64-1.txz +| | |-- unarj-265-x86_64-1.txz.asc +| | |-- usbutils-0.82-x86_64-2.txt +| | |-- usbutils-0.82-x86_64-2.txz +| | |-- usbutils-0.82-x86_64-2.txz.asc +| | |-- utempter-1.1.4-x86_64-1.txt +| | |-- utempter-1.1.4-x86_64-1.txz +| | |-- utempter-1.1.4-x86_64-1.txz.asc +| | |-- util-linux-ng-2.14.2-x86_64-2.txt +| | |-- util-linux-ng-2.14.2-x86_64-2.txz +| | |-- util-linux-ng-2.14.2-x86_64-2.txz.asc +| | |-- which-2.20-x86_64-1.txt +| | |-- which-2.20-x86_64-1.txz +| | |-- which-2.20-x86_64-1.txz.asc +| | |-- xfsprogs-3.0.1-x86_64-1.txt +| | |-- xfsprogs-3.0.1-x86_64-1.txz +| | |-- xfsprogs-3.0.1-x86_64-1.txz.asc +| | |-- xz-4.999.8beta-x86_64-1.tgz +| | |-- xz-4.999.8beta-x86_64-1.tgz.asc +| | |-- xz-4.999.8beta-x86_64-1.txt +| | |-- zoo-2.10-x86_64-1.txt +| | |-- zoo-2.10-x86_64-1.txz +| | `-- zoo-2.10-x86_64-1.txz.asc +| |-- ap +| | |-- a2ps-4.14-x86_64-4.txt +| | |-- a2ps-4.14-x86_64-4.txz +| | |-- a2ps-4.14-x86_64-4.txz.asc +| | |-- acct-6.4pre1-x86_64-1.txt +| | |-- acct-6.4pre1-x86_64-1.txz +| | |-- acct-6.4pre1-x86_64-1.txz.asc +| | |-- alsa-utils-1.0.18-x86_64-2.txt +| | |-- alsa-utils-1.0.18-x86_64-2.txz +| | |-- alsa-utils-1.0.18-x86_64-2.txz.asc +| | |-- amp-0.7.6-x86_64-1.txt +| | |-- amp-0.7.6-x86_64-1.txz +| | |-- amp-0.7.6-x86_64-1.txz.asc +| | |-- ash-0.4.0-x86_64-1.txt +| | |-- ash-0.4.0-x86_64-1.txz +| | |-- ash-0.4.0-x86_64-1.txz.asc +| | |-- at-3.1.10-x86_64-1.txt +| | |-- at-3.1.10-x86_64-1.txz +| | |-- at-3.1.10-x86_64-1.txz.asc +| | |-- aumix-2.8-x86_64-2.txt +| | |-- aumix-2.8-x86_64-2.txz +| | |-- aumix-2.8-x86_64-2.txz.asc +| | |-- bc-1.06.95-x86_64-2.txt +| | |-- bc-1.06.95-x86_64-2.txz +| | |-- bc-1.06.95-x86_64-2.txz.asc +| | |-- bpe-2.01.00-x86_64-2.txt +| | |-- bpe-2.01.00-x86_64-2.txz +| | |-- bpe-2.01.00-x86_64-2.txz.asc +| | |-- cdparanoia-III_10.2-x86_64-1.txt +| | |-- cdparanoia-III_10.2-x86_64-1.txz +| | |-- cdparanoia-III_10.2-x86_64-1.txz.asc +| | |-- cdrdao-1.2.1-x86_64-1.txt +| | |-- cdrdao-1.2.1-x86_64-1.txz +| | |-- cdrdao-1.2.1-x86_64-1.txz.asc +| | |-- cdrtools-2.01.01a57-x86_64-3.txt +| | |-- cdrtools-2.01.01a57-x86_64-3.txz +| | |-- cdrtools-2.01.01a57-x86_64-3.txz.asc +| | |-- cupsddk-1.2.3-x86_64-1.txt +| | |-- cupsddk-1.2.3-x86_64-1.txz +| | |-- cupsddk-1.2.3-x86_64-1.txz.asc +| | |-- dc3dd-6.12.3-x86_64-1.txt +| | |-- dc3dd-6.12.3-x86_64-1.txz +| | |-- dc3dd-6.12.3-x86_64-1.txz.asc +| | |-- diffstat-1.43-x86_64-1.txt +| | |-- diffstat-1.43-x86_64-1.txz +| | |-- diffstat-1.43-x86_64-1.txz.asc +| | |-- diffutils-2.8.1-x86_64-3.txt +| | |-- diffutils-2.8.1-x86_64-3.txz +| | |-- diffutils-2.8.1-x86_64-3.txz.asc +| | |-- dmapi-2.2.10-x86_64-1.txt +| | |-- dmapi-2.2.10-x86_64-1.txz +| | |-- dmapi-2.2.10-x86_64-1.txz.asc +| | |-- dmidecode-2.10-x86_64-1.txt +| | |-- dmidecode-2.10-x86_64-1.txz +| | |-- dmidecode-2.10-x86_64-1.txz.asc +| | |-- dvd+rw-tools-7.1-x86_64-1.txt +| | |-- dvd+rw-tools-7.1-x86_64-1.txz +| | |-- dvd+rw-tools-7.1-x86_64-1.txz.asc +| | |-- enscript-1.6.3-x86_64-1.txt +| | |-- enscript-1.6.3-x86_64-1.txz +| | |-- enscript-1.6.3-x86_64-1.txz.asc +| | |-- flac-1.2.1-x86_64-2.txt +| | |-- flac-1.2.1-x86_64-2.txz +| | |-- flac-1.2.1-x86_64-2.txz.asc +| | |-- foomatic-filters-4.0.2-x86_64-1.txt +| | |-- foomatic-filters-4.0.2-x86_64-1.txz +| | |-- foomatic-filters-4.0.2-x86_64-1.txz.asc +| | |-- ghostscript-8.70-x86_64-1.txt +| | |-- ghostscript-8.70-x86_64-1.txz +| | |-- ghostscript-8.70-x86_64-1.txz.asc +| | |-- ghostscript-fonts-std-8.11-noarch-1.txt +| | |-- ghostscript-fonts-std-8.11-noarch-1.txz +| | |-- ghostscript-fonts-std-8.11-noarch-1.txz.asc +| | |-- gphoto2-2.4.5-x86_64-1.txt +| | |-- gphoto2-2.4.5-x86_64-1.txz +| | |-- gphoto2-2.4.5-x86_64-1.txz.asc +| | |-- groff-1.20.1-x86_64-1.txt +| | |-- groff-1.20.1-x86_64-1.txz +| | |-- groff-1.20.1-x86_64-1.txz.asc +| | |-- gutenprint-5.2.4-x86_64-1.txt +| | |-- gutenprint-5.2.4-x86_64-1.txz +| | |-- gutenprint-5.2.4-x86_64-1.txz.asc +| | |-- hplip-3.9.4b-x86_64-2.txt +| | |-- hplip-3.9.4b-x86_64-2.txz +| | |-- hplip-3.9.4b-x86_64-2.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- ispell-3.2.06-x86_64-1.txt +| | |-- ispell-3.2.06-x86_64-1.txz +| | |-- ispell-3.2.06-x86_64-1.txz.asc +| | |-- jed-0.99_18-x86_64-3.txt +| | |-- jed-0.99_18-x86_64-3.txz +| | |-- jed-0.99_18-x86_64-3.txz.asc +| | |-- joe-3.5-x86_64-2.txt +| | |-- joe-3.5-x86_64-2.txz +| | |-- joe-3.5-x86_64-2.txz.asc +| | |-- jove-4.16.0.70-x86_64-2.txt +| | |-- jove-4.16.0.70-x86_64-2.txz +| | |-- jove-4.16.0.70-x86_64-2.txz.asc +| | |-- ksh93-2007_03_28-x86_64-2.txt +| | |-- ksh93-2007_03_28-x86_64-2.txz +| | |-- ksh93-2007_03_28-x86_64-2.txz.asc +| | |-- libx86-1.1-x86_64-1.txt +| | |-- libx86-1.1-x86_64-1.txz +| | |-- libx86-1.1-x86_64-1.txz.asc +| | |-- linuxdoc-tools-0.9.56-x86_64-5.txt +| | |-- linuxdoc-tools-0.9.56-x86_64-5.txz +| | |-- linuxdoc-tools-0.9.56-x86_64-5.txz.asc +| | |-- lm_sensors-3.1.1-x86_64-1.txt +| | |-- lm_sensors-3.1.1-x86_64-1.txz +| | |-- lm_sensors-3.1.1-x86_64-1.txz.asc +| | |-- lsof-4.78-x86_64-1.txt +| | |-- lsof-4.78-x86_64-1.txz +| | |-- lsof-4.78-x86_64-1.txz.asc +| | |-- lsscsi-0.22-x86_64-1.txt +| | |-- lsscsi-0.22-x86_64-1.txz +| | |-- lsscsi-0.22-x86_64-1.txz.asc +| | |-- madplay-0.15.2b-x86_64-2.txt +| | |-- madplay-0.15.2b-x86_64-2.txz +| | |-- madplay-0.15.2b-x86_64-2.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | |-- man-1.6f-x86_64-2.txt +| | |-- man-1.6f-x86_64-2.txz +| | |-- man-1.6f-x86_64-2.txz.asc +| | |-- man-pages-3.22-noarch-2.txt +| | |-- man-pages-3.22-noarch-2.txz +| | |-- man-pages-3.22-noarch-2.txz.asc +| | |-- mc-20090714_git-x86_64-1.txt +| | |-- mc-20090714_git-x86_64-1.txz +| | |-- mc-20090714_git-x86_64-1.txz.asc +| | |-- most-5.0.0a-x86_64-2.txt +| | |-- most-5.0.0a-x86_64-2.txz +| | |-- most-5.0.0a-x86_64-2.txz.asc +| | |-- mpg321-0.2.10-x86_64-2.txt +| | |-- mpg321-0.2.10-x86_64-2.txz +| | |-- mpg321-0.2.10-x86_64-2.txz.asc +| | |-- mysql-5.0.84-x86_64-1.txt +| | |-- mysql-5.0.84-x86_64-1.txz +| | |-- mysql-5.0.84-x86_64-1.txz.asc +| | |-- nano-2.0.9-x86_64-2.txt +| | |-- nano-2.0.9-x86_64-2.txz +| | |-- nano-2.0.9-x86_64-2.txz.asc +| | |-- normalize-0.7.7-x86_64-1.txt +| | |-- normalize-0.7.7-x86_64-1.txz +| | |-- normalize-0.7.7-x86_64-1.txz.asc +| | |-- ntfsprogs-2.0.0-x86_64-2.txt +| | |-- ntfsprogs-2.0.0-x86_64-2.txz +| | |-- ntfsprogs-2.0.0-x86_64-2.txz.asc +| | |-- pm-utils-1.2.5-x86_64-1.txt +| | |-- pm-utils-1.2.5-x86_64-1.txz +| | |-- pm-utils-1.2.5-x86_64-1.txz.asc +| | |-- radeontool-1.5-x86_64-1.txt +| | |-- radeontool-1.5-x86_64-1.txz +| | |-- radeontool-1.5-x86_64-1.txz.asc +| | |-- rexima-1.4-x86_64-2.txt +| | |-- rexima-1.4-x86_64-2.txz +| | |-- rexima-1.4-x86_64-2.txz.asc +| | |-- rpm-4.7.0-x86_64-2.txt +| | |-- rpm-4.7.0-x86_64-2.txz +| | |-- rpm-4.7.0-x86_64-2.txz.asc +| | |-- rzip-2.1-x86_64-1.txt +| | |-- rzip-2.1-x86_64-1.txz +| | |-- rzip-2.1-x86_64-1.txz.asc +| | |-- sc-7.16-x86_64-2.txt +| | |-- sc-7.16-x86_64-2.txz +| | |-- sc-7.16-x86_64-2.txz.asc +| | |-- screen-4.0.3-x86_64-2.txt +| | |-- screen-4.0.3-x86_64-2.txz +| | |-- screen-4.0.3-x86_64-2.txz.asc +| | |-- seejpeg-1.10-x86_64-1.txt +| | |-- seejpeg-1.10-x86_64-1.txz +| | |-- seejpeg-1.10-x86_64-1.txz.asc +| | |-- slackpkg-2.80.2-noarch-3.tgz +| | |-- slackpkg-2.80.2-noarch-3.tgz.asc +| | |-- slackpkg-2.80.2-noarch-3.txt +| | |-- sox-14.3.0-x86_64-1.txt +| | |-- sox-14.3.0-x86_64-1.txz +| | |-- sox-14.3.0-x86_64-1.txz.asc +| | |-- sqlite-3.6.14.2-x86_64-1.txt +| | |-- sqlite-3.6.14.2-x86_64-1.txz +| | |-- sqlite-3.6.14.2-x86_64-1.txz.asc +| | |-- sudo-1.6.8p12-x86_64-1.txt +| | |-- sudo-1.6.8p12-x86_64-1.txz +| | |-- sudo-1.6.8p12-x86_64-1.txz.asc +| | |-- sysstat-7.0.0-x86_64-1.txt +| | |-- sysstat-7.0.0-x86_64-1.txz +| | |-- sysstat-7.0.0-x86_64-1.txz.asc +| | |-- tagfile +| | |-- texinfo-4.13a-x86_64-3.txt +| | |-- texinfo-4.13a-x86_64-3.txz +| | |-- texinfo-4.13a-x86_64-3.txz.asc +| | |-- vbetool-1.1-x86_64-1.txt +| | |-- vbetool-1.1-x86_64-1.txz +| | |-- vbetool-1.1-x86_64-1.txz.asc +| | |-- vim-7.2.245-x86_64-1.txt +| | |-- vim-7.2.245-x86_64-1.txz +| | |-- vim-7.2.245-x86_64-1.txz.asc +| | |-- vorbis-tools-1.2.0-x86_64-1.txt +| | |-- vorbis-tools-1.2.0-x86_64-1.txz +| | |-- vorbis-tools-1.2.0-x86_64-1.txz.asc +| | |-- workbone-2.40-x86_64-3.txt +| | |-- workbone-2.40-x86_64-3.txz +| | |-- workbone-2.40-x86_64-3.txz.asc +| | |-- xfsdump-3.0.1-x86_64-1.txt +| | |-- xfsdump-3.0.1-x86_64-1.txz +| | |-- xfsdump-3.0.1-x86_64-1.txz.asc +| | |-- zsh-4.3.10-x86_64-1.txt +| | |-- zsh-4.3.10-x86_64-1.txz +| | `-- zsh-4.3.10-x86_64-1.txz.asc +| |-- d +| | |-- autoconf-2.63-noarch-1.txt +| | |-- autoconf-2.63-noarch-1.txz +| | |-- autoconf-2.63-noarch-1.txz.asc +| | |-- automake-1.10.1-noarch-1.txt +| | |-- automake-1.10.1-noarch-1.txz +| | |-- automake-1.10.1-noarch-1.txz.asc +| | |-- binutils-2.18.50.0.9-x86_64-2.txt +| | |-- binutils-2.18.50.0.9-x86_64-2.txz +| | |-- binutils-2.18.50.0.9-x86_64-2.txz.asc +| | |-- bison-2.4.1-x86_64-1.txt +| | |-- bison-2.4.1-x86_64-1.txz +| | |-- bison-2.4.1-x86_64-1.txz.asc +| | |-- ccache-2.4-x86_64-1.txt +| | |-- ccache-2.4-x86_64-1.txz +| | |-- ccache-2.4-x86_64-1.txz.asc +| | |-- clisp-2.47-x86_64-2.txt +| | |-- clisp-2.47-x86_64-2.txz +| | |-- clisp-2.47-x86_64-2.txz.asc +| | |-- cmake-2.6.2-x86_64-2.txt +| | |-- cmake-2.6.2-x86_64-2.txz +| | |-- cmake-2.6.2-x86_64-2.txz.asc +| | |-- cscope-15.6-x86_64-2.txt +| | |-- cscope-15.6-x86_64-2.txz +| | |-- cscope-15.6-x86_64-2.txz.asc +| | |-- cvs-1.11.23-x86_64-1.txt +| | |-- cvs-1.11.23-x86_64-1.txz +| | |-- cvs-1.11.23-x86_64-1.txz.asc +| | |-- dev86-0.16.17-x86_64-2.txt +| | |-- dev86-0.16.17-x86_64-2.txz +| | |-- dev86-0.16.17-x86_64-2.txz.asc +| | |-- distcc-2.18.3-x86_64-2.txt +| | |-- distcc-2.18.3-x86_64-2.txz +| | |-- distcc-2.18.3-x86_64-2.txz.asc +| | |-- doxygen-1.5.8-x86_64-1.txt +| | |-- doxygen-1.5.8-x86_64-1.txz +| | |-- doxygen-1.5.8-x86_64-1.txz.asc +| | |-- flex-2.5.35-x86_64-1.txt +| | |-- flex-2.5.35-x86_64-1.txz +| | |-- flex-2.5.35-x86_64-1.txz.asc +| | |-- gcc-4.3.3-x86_64-4.txt +| | |-- gcc-4.3.3-x86_64-4.txz +| | |-- gcc-4.3.3-x86_64-4.txz.asc +| | |-- gcc-g++-4.3.3-x86_64-4.txt +| | |-- gcc-g++-4.3.3-x86_64-4.txz +| | |-- gcc-g++-4.3.3-x86_64-4.txz.asc +| | |-- gcc-gfortran-4.3.3-x86_64-4.txt +| | |-- gcc-gfortran-4.3.3-x86_64-4.txz +| | |-- gcc-gfortran-4.3.3-x86_64-4.txz.asc +| | |-- gcc-gnat-4.3.3-x86_64-4.txt +| | |-- gcc-gnat-4.3.3-x86_64-4.txz +| | |-- gcc-gnat-4.3.3-x86_64-4.txz.asc +| | |-- gcc-java-4.3.3-x86_64-4.txt +| | |-- gcc-java-4.3.3-x86_64-4.txz +| | |-- gcc-java-4.3.3-x86_64-4.txz.asc +| | |-- gcc-objc-4.3.3-x86_64-4.txt +| | |-- gcc-objc-4.3.3-x86_64-4.txz +| | |-- gcc-objc-4.3.3-x86_64-4.txz.asc +| | |-- gdb-6.8-x86_64-2.txt +| | |-- gdb-6.8-x86_64-2.txz +| | |-- gdb-6.8-x86_64-2.txz.asc +| | |-- gettext-tools-0.17-x86_64-3.txt +| | |-- gettext-tools-0.17-x86_64-3.txz +| | |-- gettext-tools-0.17-x86_64-3.txz.asc +| | |-- git-1.6.4-x86_64-1.txt +| | |-- git-1.6.4-x86_64-1.txz +| | |-- git-1.6.4-x86_64-1.txz.asc +| | |-- gperf-3.0.3-x86_64-1.txt +| | |-- gperf-3.0.3-x86_64-1.txz +| | |-- gperf-3.0.3-x86_64-1.txz.asc +| | |-- guile-1.8.7-x86_64-1.txt +| | |-- guile-1.8.7-x86_64-1.txz +| | |-- guile-1.8.7-x86_64-1.txz.asc +| | |-- indent-2.2.10-x86_64-1.txt +| | |-- indent-2.2.10-x86_64-1.txz +| | |-- indent-2.2.10-x86_64-1.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- intltool-0.40.5-x86_64-1.txt +| | |-- intltool-0.40.5-x86_64-1.txz +| | |-- intltool-0.40.5-x86_64-1.txz.asc +| | |-- kernel-headers-2.6.29.6-x86-2.txt +| | |-- kernel-headers-2.6.29.6-x86-2.txz +| | |-- kernel-headers-2.6.29.6-x86-2.txz.asc +| | |-- libtool-1.5.26-x86_64-1.txt +| | |-- libtool-1.5.26-x86_64-1.txz +| | |-- libtool-1.5.26-x86_64-1.txz.asc +| | |-- m4-1.4.13-x86_64-1.txt +| | |-- m4-1.4.13-x86_64-1.txz +| | |-- m4-1.4.13-x86_64-1.txz.asc +| | |-- make-3.81-x86_64-1.txt +| | |-- make-3.81-x86_64-1.txz +| | |-- make-3.81-x86_64-1.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | |-- mercurial-1.2.1-x86_64-1.txt +| | |-- mercurial-1.2.1-x86_64-1.txz +| | |-- mercurial-1.2.1-x86_64-1.txz.asc +| | |-- nasm-2.05.01-x86_64-1.txt +| | |-- nasm-2.05.01-x86_64-1.txz +| | |-- nasm-2.05.01-x86_64-1.txz.asc +| | |-- oprofile-0.9.4-x86_64-2.txt +| | |-- oprofile-0.9.4-x86_64-2.txz +| | |-- oprofile-0.9.4-x86_64-2.txz.asc +| | |-- p2c-1.21alpha2-x86_64-3.txt +| | |-- p2c-1.21alpha2-x86_64-3.txz +| | |-- p2c-1.21alpha2-x86_64-3.txz.asc +| | |-- perl-5.10.0-x86_64-2.txt +| | |-- perl-5.10.0-x86_64-2.txz +| | |-- perl-5.10.0-x86_64-2.txz.asc +| | |-- pkg-config-0.23-x86_64-3.txt +| | |-- pkg-config-0.23-x86_64-3.txz +| | |-- pkg-config-0.23-x86_64-3.txz.asc +| | |-- pmake-1.111-x86_64-3.txt +| | |-- pmake-1.111-x86_64-3.txz +| | |-- pmake-1.111-x86_64-3.txz.asc +| | |-- python-2.6.2-x86_64-3.txt +| | |-- python-2.6.2-x86_64-3.txz +| | |-- python-2.6.2-x86_64-3.txz.asc +| | |-- rcs-5.7-x86_64-2.txt +| | |-- rcs-5.7-x86_64-2.txz +| | |-- rcs-5.7-x86_64-2.txz.asc +| | |-- ruby-1.8.7_p174-x86_64-1.txt +| | |-- ruby-1.8.7_p174-x86_64-1.txz +| | |-- ruby-1.8.7_p174-x86_64-1.txz.asc +| | |-- strace-4.5.18-x86_64-1.txt +| | |-- strace-4.5.18-x86_64-1.txz +| | |-- strace-4.5.18-x86_64-1.txz.asc +| | |-- subversion-1.6.4-x86_64-1.txt +| | |-- subversion-1.6.4-x86_64-1.txz +| | |-- subversion-1.6.4-x86_64-1.txz.asc +| | |-- swig-1.3.38-x86_64-1.txt +| | |-- swig-1.3.38-x86_64-1.txz +| | |-- swig-1.3.38-x86_64-1.txz.asc +| | `-- tagfile +| |-- e +| | |-- emacs-22.3-x86_64-3.txt +| | |-- emacs-22.3-x86_64-3.txz +| | |-- emacs-22.3-x86_64-3.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- maketag +| | |-- maketag.ez +| | `-- tagfile +| |-- f +| | |-- install-packages +| | |-- install.end +| | |-- linux-faqs-20060228-noarch-1.txt +| | |-- linux-faqs-20060228-noarch-1.txz +| | |-- linux-faqs-20060228-noarch-1.txz.asc +| | |-- linux-howtos-20090805-noarch-1.txt +| | |-- linux-howtos-20090805-noarch-1.txz +| | |-- linux-howtos-20090805-noarch-1.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | `-- tagfile +| |-- k +| | |-- install-packages +| | |-- install.end +| | |-- kernel-source-2.6.29.6-noarch-2.txt +| | |-- kernel-source-2.6.29.6-noarch-2.txz +| | |-- kernel-source-2.6.29.6-noarch-2.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | `-- tagfile +| |-- kde +| | |-- amarok-2.1.1-x86_64-1.txt +| | |-- amarok-2.1.1-x86_64-1.txz +| | |-- amarok-2.1.1-x86_64-1.txz.asc +| | |-- guidance-power-manager-4.2.4-x86_64-1.txt +| | |-- guidance-power-manager-4.2.4-x86_64-1.txz +| | |-- guidance-power-manager-4.2.4-x86_64-1.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- k3b-r948463-x86_64-1.txt +| | |-- k3b-r948463-x86_64-1.txz +| | |-- k3b-r948463-x86_64-1.txz.asc +| | |-- kaudiocreator-r1008583-x86_64-1.txt +| | |-- kaudiocreator-r1008583-x86_64-1.txz +| | |-- kaudiocreator-r1008583-x86_64-1.txz.asc +| | |-- kdeaccessibility-4.2.4-x86_64-1.txt +| | |-- kdeaccessibility-4.2.4-x86_64-1.txz +| | |-- kdeaccessibility-4.2.4-x86_64-1.txz.asc +| | |-- kdeadmin-4.2.4-x86_64-1.txt +| | |-- kdeadmin-4.2.4-x86_64-1.txz +| | |-- kdeadmin-4.2.4-x86_64-1.txz.asc +| | |-- kdeartwork-4.2.4-x86_64-1.txt +| | |-- kdeartwork-4.2.4-x86_64-1.txz +| | |-- kdeartwork-4.2.4-x86_64-1.txz.asc +| | |-- kdebase-4.2.4-x86_64-1.txt +| | |-- kdebase-4.2.4-x86_64-1.txz +| | |-- kdebase-4.2.4-x86_64-1.txz.asc +| | |-- kdebase-runtime-4.2.4-x86_64-2.txt +| | |-- kdebase-runtime-4.2.4-x86_64-2.txz +| | |-- kdebase-runtime-4.2.4-x86_64-2.txz.asc +| | |-- kdebase-workspace-4.2.4-x86_64-1.txt +| | |-- kdebase-workspace-4.2.4-x86_64-1.txz +| | |-- kdebase-workspace-4.2.4-x86_64-1.txz.asc +| | |-- kdebindings-4.2.4-x86_64-1.txt +| | |-- kdebindings-4.2.4-x86_64-1.txz +| | |-- kdebindings-4.2.4-x86_64-1.txz.asc +| | |-- kdeedu-4.2.4-x86_64-1.txt +| | |-- kdeedu-4.2.4-x86_64-1.txz +| | |-- kdeedu-4.2.4-x86_64-1.txz.asc +| | |-- kdegames-4.2.4-x86_64-1.txt +| | |-- kdegames-4.2.4-x86_64-1.txz +| | |-- kdegames-4.2.4-x86_64-1.txz.asc +| | |-- kdegraphics-4.2.4-x86_64-1.txt +| | |-- kdegraphics-4.2.4-x86_64-1.txz +| | |-- kdegraphics-4.2.4-x86_64-1.txz.asc +| | |-- kdelibs-4.2.4-x86_64-3.txt +| | |-- kdelibs-4.2.4-x86_64-3.txz +| | |-- kdelibs-4.2.4-x86_64-3.txz.asc +| | |-- kdemultimedia-4.2.4-x86_64-1.txt +| | |-- kdemultimedia-4.2.4-x86_64-1.txz +| | |-- kdemultimedia-4.2.4-x86_64-1.txz.asc +| | |-- kdenetwork-4.2.4-x86_64-2.txt +| | |-- kdenetwork-4.2.4-x86_64-2.txz +| | |-- kdenetwork-4.2.4-x86_64-2.txz.asc +| | |-- kdepim-4.2.4-x86_64-1.txt +| | |-- kdepim-4.2.4-x86_64-1.txz +| | |-- kdepim-4.2.4-x86_64-1.txz.asc +| | |-- kdepimlibs-4.2.4-x86_64-1.txt +| | |-- kdepimlibs-4.2.4-x86_64-1.txz +| | |-- kdepimlibs-4.2.4-x86_64-1.txz.asc +| | |-- kdeplasma-addons-4.2.4-x86_64-1.txt +| | |-- kdeplasma-addons-4.2.4-x86_64-1.txz +| | |-- kdeplasma-addons-4.2.4-x86_64-1.txz.asc +| | |-- kdesdk-4.2.4-x86_64-1.txt +| | |-- kdesdk-4.2.4-x86_64-1.txz +| | |-- kdesdk-4.2.4-x86_64-1.txz.asc +| | |-- kdetoys-4.2.4-x86_64-1.txt +| | |-- kdetoys-4.2.4-x86_64-1.txz +| | |-- kdetoys-4.2.4-x86_64-1.txz.asc +| | |-- kdeutils-4.2.4-x86_64-1.txt +| | |-- kdeutils-4.2.4-x86_64-1.txz +| | |-- kdeutils-4.2.4-x86_64-1.txz.asc +| | |-- kdevelop-3.9.91-x86_64-1.txt +| | |-- kdevelop-3.9.91-x86_64-1.txz +| | |-- kdevelop-3.9.91-x86_64-1.txz.asc +| | |-- kdevplatform-0.9.91-x86_64-1.txt +| | |-- kdevplatform-0.9.91-x86_64-1.txz +| | |-- kdevplatform-0.9.91-x86_64-1.txz.asc +| | |-- kdewebdev-4.2.4-x86_64-1.txt +| | |-- kdewebdev-4.2.4-x86_64-1.txz +| | |-- kdewebdev-4.2.4-x86_64-1.txz.asc +| | |-- koffice-2.0.2-x86_64-1.txt +| | |-- koffice-2.0.2-x86_64-1.txz +| | |-- koffice-2.0.2-x86_64-1.txz.asc +| | |-- konq-plugins-4.2.4-x86_64-1.txt +| | |-- konq-plugins-4.2.4-x86_64-1.txz +| | |-- konq-plugins-4.2.4-x86_64-1.txz.asc +| | |-- ktorrent-3.2.2-x86_64-1.txt +| | |-- ktorrent-3.2.2-x86_64-1.txz +| | |-- ktorrent-3.2.2-x86_64-1.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | |-- mplayerthumbs-1.2-x86_64-2.txt +| | |-- mplayerthumbs-1.2-x86_64-2.txz +| | |-- mplayerthumbs-1.2-x86_64-2.txz.asc +| | |-- skanlite-0.3_kde4.2.4-x86_64-1.txt +| | |-- skanlite-0.3_kde4.2.4-x86_64-1.txz +| | |-- skanlite-0.3_kde4.2.4-x86_64-1.txz.asc +| | `-- tagfile +| |-- kdei +| | |-- install-packages +| | |-- install.end +| | |-- kde-l10n-ar-4.2.4-noarch-1.txt +| | |-- kde-l10n-ar-4.2.4-noarch-1.txz +| | |-- kde-l10n-ar-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-bg-4.2.4-noarch-1.txt +| | |-- kde-l10n-bg-4.2.4-noarch-1.txz +| | |-- kde-l10n-bg-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-bn_IN-4.2.4-noarch-1.txt +| | |-- kde-l10n-bn_IN-4.2.4-noarch-1.txz +| | |-- kde-l10n-bn_IN-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-ca-4.2.4-noarch-1.txt +| | |-- kde-l10n-ca-4.2.4-noarch-1.txz +| | |-- kde-l10n-ca-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-cs-4.2.4-noarch-1.txt +| | |-- kde-l10n-cs-4.2.4-noarch-1.txz +| | |-- kde-l10n-cs-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-csb-4.2.4-noarch-1.txt +| | |-- kde-l10n-csb-4.2.4-noarch-1.txz +| | |-- kde-l10n-csb-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-da-4.2.4-noarch-1.txt +| | |-- kde-l10n-da-4.2.4-noarch-1.txz +| | |-- kde-l10n-da-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-de-4.2.4-noarch-1.txt +| | |-- kde-l10n-de-4.2.4-noarch-1.txz +| | |-- kde-l10n-de-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-el-4.2.4-noarch-1.txt +| | |-- kde-l10n-el-4.2.4-noarch-1.txz +| | |-- kde-l10n-el-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-en_GB-4.2.4-noarch-1.txt +| | |-- kde-l10n-en_GB-4.2.4-noarch-1.txz +| | |-- kde-l10n-en_GB-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-es-4.2.4-noarch-1.txt +| | |-- kde-l10n-es-4.2.4-noarch-1.txz +| | |-- kde-l10n-es-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-et-4.2.4-noarch-1.txt +| | |-- kde-l10n-et-4.2.4-noarch-1.txz +| | |-- kde-l10n-et-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-eu-4.2.4-noarch-1.txt +| | |-- kde-l10n-eu-4.2.4-noarch-1.txz +| | |-- kde-l10n-eu-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-fi-4.2.4-noarch-1.txt +| | |-- kde-l10n-fi-4.2.4-noarch-1.txz +| | |-- kde-l10n-fi-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-fr-4.2.4-noarch-1.txt +| | |-- kde-l10n-fr-4.2.4-noarch-1.txz +| | |-- kde-l10n-fr-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-ga-4.2.4-noarch-1.txt +| | |-- kde-l10n-ga-4.2.4-noarch-1.txz +| | |-- kde-l10n-ga-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-gl-4.2.4-noarch-1.txt +| | |-- kde-l10n-gl-4.2.4-noarch-1.txz +| | |-- kde-l10n-gl-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-gu-4.2.4-noarch-1.txt +| | |-- kde-l10n-gu-4.2.4-noarch-1.txz +| | |-- kde-l10n-gu-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-he-4.2.4-noarch-1.txt +| | |-- kde-l10n-he-4.2.4-noarch-1.txz +| | |-- kde-l10n-he-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-hi-4.2.4-noarch-1.txt +| | |-- kde-l10n-hi-4.2.4-noarch-1.txz +| | |-- kde-l10n-hi-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-hu-4.2.4-noarch-1.txt +| | |-- kde-l10n-hu-4.2.4-noarch-1.txz +| | |-- kde-l10n-hu-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-is-4.2.4-noarch-1.txt +| | |-- kde-l10n-is-4.2.4-noarch-1.txz +| | |-- kde-l10n-is-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-it-4.2.4-noarch-1.txt +| | |-- kde-l10n-it-4.2.4-noarch-1.txz +| | |-- kde-l10n-it-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-ja-4.2.4-noarch-1.txt +| | |-- kde-l10n-ja-4.2.4-noarch-1.txz +| | |-- kde-l10n-ja-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-kk-4.2.4-noarch-1.txt +| | |-- kde-l10n-kk-4.2.4-noarch-1.txz +| | |-- kde-l10n-kk-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-km-4.2.4-noarch-1.txt +| | |-- kde-l10n-km-4.2.4-noarch-1.txz +| | |-- kde-l10n-km-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-kn-4.2.4-noarch-1.txt +| | |-- kde-l10n-kn-4.2.4-noarch-1.txz +| | |-- kde-l10n-kn-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-ko-4.2.4-noarch-1.txt +| | |-- kde-l10n-ko-4.2.4-noarch-1.txz +| | |-- kde-l10n-ko-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-ku-4.2.4-noarch-1.txt +| | |-- kde-l10n-ku-4.2.4-noarch-1.txz +| | |-- kde-l10n-ku-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-lt-4.2.4-noarch-1.txt +| | |-- kde-l10n-lt-4.2.4-noarch-1.txz +| | |-- kde-l10n-lt-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-lv-4.2.4-noarch-1.txt +| | |-- kde-l10n-lv-4.2.4-noarch-1.txz +| | |-- kde-l10n-lv-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-mai-4.2.4-noarch-1.txt +| | |-- kde-l10n-mai-4.2.4-noarch-1.txz +| | |-- kde-l10n-mai-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-mk-4.2.4-noarch-1.txt +| | |-- kde-l10n-mk-4.2.4-noarch-1.txz +| | |-- kde-l10n-mk-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-ml-4.2.4-noarch-1.txt +| | |-- kde-l10n-ml-4.2.4-noarch-1.txz +| | |-- kde-l10n-ml-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-mr-4.2.4-noarch-1.txt +| | |-- kde-l10n-mr-4.2.4-noarch-1.txz +| | |-- kde-l10n-mr-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-nb-4.2.4-noarch-1.txt +| | |-- kde-l10n-nb-4.2.4-noarch-1.txz +| | |-- kde-l10n-nb-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-nds-4.2.4-noarch-1.txt +| | |-- kde-l10n-nds-4.2.4-noarch-1.txz +| | |-- kde-l10n-nds-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-nl-4.2.4-noarch-1.txt +| | |-- kde-l10n-nl-4.2.4-noarch-1.txz +| | |-- kde-l10n-nl-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-nn-4.2.4-noarch-1.txt +| | |-- kde-l10n-nn-4.2.4-noarch-1.txz +| | |-- kde-l10n-nn-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-pa-4.2.4-noarch-1.txt +| | |-- kde-l10n-pa-4.2.4-noarch-1.txz +| | |-- kde-l10n-pa-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-pl-4.2.4-noarch-1.txt +| | |-- kde-l10n-pl-4.2.4-noarch-1.txz +| | |-- kde-l10n-pl-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-pt-4.2.4-noarch-1.txt +| | |-- kde-l10n-pt-4.2.4-noarch-1.txz +| | |-- kde-l10n-pt-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-pt_BR-4.2.4-noarch-1.txt +| | |-- kde-l10n-pt_BR-4.2.4-noarch-1.txz +| | |-- kde-l10n-pt_BR-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-ro-4.2.4-noarch-1.txt +| | |-- kde-l10n-ro-4.2.4-noarch-1.txz +| | |-- kde-l10n-ro-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-ru-4.2.4-noarch-1.txt +| | |-- kde-l10n-ru-4.2.4-noarch-1.txz +| | |-- kde-l10n-ru-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-sk-4.2.4-noarch-1.txt +| | |-- kde-l10n-sk-4.2.4-noarch-1.txz +| | |-- kde-l10n-sk-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-sl-4.2.4-noarch-1.txt +| | |-- kde-l10n-sl-4.2.4-noarch-1.txz +| | |-- kde-l10n-sl-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-sr-4.2.4-noarch-1.txt +| | |-- kde-l10n-sr-4.2.4-noarch-1.txz +| | |-- kde-l10n-sr-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-sv-4.2.4-noarch-1.txt +| | |-- kde-l10n-sv-4.2.4-noarch-1.txz +| | |-- kde-l10n-sv-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-tg-4.2.4-noarch-1.txt +| | |-- kde-l10n-tg-4.2.4-noarch-1.txz +| | |-- kde-l10n-tg-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-th-4.2.4-noarch-1.txt +| | |-- kde-l10n-th-4.2.4-noarch-1.txz +| | |-- kde-l10n-th-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-tr-4.2.4-noarch-1.txt +| | |-- kde-l10n-tr-4.2.4-noarch-1.txz +| | |-- kde-l10n-tr-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-uk-4.2.4-noarch-1.txt +| | |-- kde-l10n-uk-4.2.4-noarch-1.txz +| | |-- kde-l10n-uk-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-wa-4.2.4-noarch-1.txt +| | |-- kde-l10n-wa-4.2.4-noarch-1.txz +| | |-- kde-l10n-wa-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-zh_CN-4.2.4-noarch-1.txt +| | |-- kde-l10n-zh_CN-4.2.4-noarch-1.txz +| | |-- kde-l10n-zh_CN-4.2.4-noarch-1.txz.asc +| | |-- kde-l10n-zh_TW-4.2.4-noarch-1.txt +| | |-- kde-l10n-zh_TW-4.2.4-noarch-1.txz +| | |-- kde-l10n-zh_TW-4.2.4-noarch-1.txz.asc +| | |-- koffice-l10n-ca-2.0.2-noarch-1.txt +| | |-- koffice-l10n-ca-2.0.2-noarch-1.txz +| | |-- koffice-l10n-ca-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-cs-2.0.2-noarch-1.txt +| | |-- koffice-l10n-cs-2.0.2-noarch-1.txz +| | |-- koffice-l10n-cs-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-da-2.0.2-noarch-1.txt +| | |-- koffice-l10n-da-2.0.2-noarch-1.txz +| | |-- koffice-l10n-da-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-de-2.0.2-noarch-1.txt +| | |-- koffice-l10n-de-2.0.2-noarch-1.txz +| | |-- koffice-l10n-de-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-el-2.0.2-noarch-1.txt +| | |-- koffice-l10n-el-2.0.2-noarch-1.txz +| | |-- koffice-l10n-el-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-en_GB-2.0.2-noarch-1.txt +| | |-- koffice-l10n-en_GB-2.0.2-noarch-1.txz +| | |-- koffice-l10n-en_GB-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-es-2.0.2-noarch-1.txt +| | |-- koffice-l10n-es-2.0.2-noarch-1.txz +| | |-- koffice-l10n-es-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-et-2.0.2-noarch-1.txt +| | |-- koffice-l10n-et-2.0.2-noarch-1.txz +| | |-- koffice-l10n-et-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-fr-2.0.2-noarch-1.txt +| | |-- koffice-l10n-fr-2.0.2-noarch-1.txz +| | |-- koffice-l10n-fr-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-fy-2.0.2-noarch-1.txt +| | |-- koffice-l10n-fy-2.0.2-noarch-1.txz +| | |-- koffice-l10n-fy-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-gl-2.0.2-noarch-1.txt +| | |-- koffice-l10n-gl-2.0.2-noarch-1.txz +| | |-- koffice-l10n-gl-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-hi-2.0.2-noarch-1.txt +| | |-- koffice-l10n-hi-2.0.2-noarch-1.txz +| | |-- koffice-l10n-hi-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-it-2.0.2-noarch-1.txt +| | |-- koffice-l10n-it-2.0.2-noarch-1.txz +| | |-- koffice-l10n-it-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-ja-2.0.2-noarch-1.txt +| | |-- koffice-l10n-ja-2.0.2-noarch-1.txz +| | |-- koffice-l10n-ja-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-kk-2.0.2-noarch-1.txt +| | |-- koffice-l10n-kk-2.0.2-noarch-1.txz +| | |-- koffice-l10n-kk-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-nb-2.0.2-noarch-1.txt +| | |-- koffice-l10n-nb-2.0.2-noarch-1.txz +| | |-- koffice-l10n-nb-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-nds-2.0.2-noarch-1.txt +| | |-- koffice-l10n-nds-2.0.2-noarch-1.txz +| | |-- koffice-l10n-nds-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-nl-2.0.2-noarch-1.txt +| | |-- koffice-l10n-nl-2.0.2-noarch-1.txz +| | |-- koffice-l10n-nl-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-pl-2.0.2-noarch-1.txt +| | |-- koffice-l10n-pl-2.0.2-noarch-1.txz +| | |-- koffice-l10n-pl-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-pt-2.0.2-noarch-1.txt +| | |-- koffice-l10n-pt-2.0.2-noarch-1.txz +| | |-- koffice-l10n-pt-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-pt_BR-2.0.2-noarch-1.txt +| | |-- koffice-l10n-pt_BR-2.0.2-noarch-1.txz +| | |-- koffice-l10n-pt_BR-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-sv-2.0.2-noarch-1.txt +| | |-- koffice-l10n-sv-2.0.2-noarch-1.txz +| | |-- koffice-l10n-sv-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-tr-2.0.2-noarch-1.txt +| | |-- koffice-l10n-tr-2.0.2-noarch-1.txz +| | |-- koffice-l10n-tr-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-uk-2.0.2-noarch-1.txt +| | |-- koffice-l10n-uk-2.0.2-noarch-1.txz +| | |-- koffice-l10n-uk-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-wa-2.0.2-noarch-1.txt +| | |-- koffice-l10n-wa-2.0.2-noarch-1.txz +| | |-- koffice-l10n-wa-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-zh_CN-2.0.2-noarch-1.txt +| | |-- koffice-l10n-zh_CN-2.0.2-noarch-1.txz +| | |-- koffice-l10n-zh_CN-2.0.2-noarch-1.txz.asc +| | |-- koffice-l10n-zh_TW-2.0.2-noarch-1.txt +| | |-- koffice-l10n-zh_TW-2.0.2-noarch-1.txz +| | |-- koffice-l10n-zh_TW-2.0.2-noarch-1.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | `-- tagfile +| |-- l +| | |-- M2Crypto-0.19.1-x86_64-2.txt +| | |-- M2Crypto-0.19.1-x86_64-2.txz +| | |-- M2Crypto-0.19.1-x86_64-2.txz.asc +| | |-- PyQt-4.4.4-x86_64-2.txt +| | |-- PyQt-4.4.4-x86_64-2.txz +| | |-- PyQt-4.4.4-x86_64-2.txz.asc +| | |-- QScintilla-2.3.2-x86_64-2.txt +| | |-- QScintilla-2.3.2-x86_64-2.txz +| | |-- QScintilla-2.3.2-x86_64-2.txz.asc +| | |-- aalib-1.4rc5-x86_64-2.txt +| | |-- aalib-1.4rc5-x86_64-2.txz +| | |-- aalib-1.4rc5-x86_64-2.txz.asc +| | |-- akonadi-1.1.2-x86_64-1.txt +| | |-- akonadi-1.1.2-x86_64-1.txz +| | |-- akonadi-1.1.2-x86_64-1.txz.asc +| | |-- alsa-lib-1.0.18-x86_64-2.txt +| | |-- alsa-lib-1.0.18-x86_64-2.txz +| | |-- alsa-lib-1.0.18-x86_64-2.txz.asc +| | |-- alsa-oss-1.0.17-x86_64-1.txt +| | |-- alsa-oss-1.0.17-x86_64-1.txz +| | |-- alsa-oss-1.0.17-x86_64-1.txz.asc +| | |-- apr-1.3.8-x86_64-1.txt +| | |-- apr-1.3.8-x86_64-1.txz +| | |-- apr-1.3.8-x86_64-1.txz.asc +| | |-- apr-util-1.3.9-x86_64-1.txt +| | |-- apr-util-1.3.9-x86_64-1.txz +| | |-- apr-util-1.3.9-x86_64-1.txz.asc +| | |-- aspell-0.60.5-x86_64-2.txt +| | |-- aspell-0.60.5-x86_64-2.txz +| | |-- aspell-0.60.5-x86_64-2.txz.asc +| | |-- aspell-en-6.0_0-noarch-4.txt +| | |-- aspell-en-6.0_0-noarch-4.txz +| | |-- aspell-en-6.0_0-noarch-4.txz.asc +| | |-- atk-1.26.0-x86_64-1.txt +| | |-- atk-1.26.0-x86_64-1.txz +| | |-- atk-1.26.0-x86_64-1.txz.asc +| | |-- audiofile-0.2.6-x86_64-2.txt +| | |-- audiofile-0.2.6-x86_64-2.txz +| | |-- audiofile-0.2.6-x86_64-2.txz.asc +| | |-- automoc4-0.9.88-x86_64-1.txt +| | |-- automoc4-0.9.88-x86_64-1.txz +| | |-- automoc4-0.9.88-x86_64-1.txz.asc +| | |-- babl-0.0.22-x86_64-1.txt +| | |-- babl-0.0.22-x86_64-1.txz +| | |-- babl-0.0.22-x86_64-1.txz.asc +| | |-- boost-1.38.0-x86_64-2.txt +| | |-- boost-1.38.0-x86_64-2.txz +| | |-- boost-1.38.0-x86_64-2.txz.asc +| | |-- cairo-1.8.6-x86_64-3.txt +| | |-- cairo-1.8.6-x86_64-3.txz +| | |-- cairo-1.8.6-x86_64-3.txz.asc +| | |-- chmlib-0.39-x86_64-1.txt +| | |-- chmlib-0.39-x86_64-1.txz +| | |-- chmlib-0.39-x86_64-1.txz.asc +| | |-- clucene-0.9.21b-x86_64-1.txt +| | |-- clucene-0.9.21b-x86_64-1.txz +| | |-- clucene-0.9.21b-x86_64-1.txz.asc +| | |-- db42-4.2.52-x86_64-3.txt +| | |-- db42-4.2.52-x86_64-3.txz +| | |-- db42-4.2.52-x86_64-3.txz.asc +| | |-- db44-4.4.20-x86_64-2.txt +| | |-- db44-4.4.20-x86_64-2.txz +| | |-- db44-4.4.20-x86_64-2.txz.asc +| | |-- dbus-glib-0.80-x86_64-1.txt +| | |-- dbus-glib-0.80-x86_64-1.txz +| | |-- dbus-glib-0.80-x86_64-1.txz.asc +| | |-- dbus-python-0.83.0-x86_64-2.txt +| | |-- dbus-python-0.83.0-x86_64-2.txz +| | |-- dbus-python-0.83.0-x86_64-2.txz.asc +| | |-- desktop-file-utils-0.15-x86_64-1.txt +| | |-- desktop-file-utils-0.15-x86_64-1.txz +| | |-- desktop-file-utils-0.15-x86_64-1.txz.asc +| | |-- djvulibre-3.5.21-x86_64-1.txt +| | |-- djvulibre-3.5.21-x86_64-1.txz +| | |-- djvulibre-3.5.21-x86_64-1.txz.asc +| | |-- eigen2-r948353-x86_64-1.txt +| | |-- eigen2-r948353-x86_64-1.txz +| | |-- eigen2-r948353-x86_64-1.txz.asc +| | |-- enchant-1.4.2-x86_64-1.txt +| | |-- enchant-1.4.2-x86_64-1.txz +| | |-- enchant-1.4.2-x86_64-1.txz.asc +| | |-- esound-0.2.41-x86_64-1.txt +| | |-- esound-0.2.41-x86_64-1.txz +| | |-- esound-0.2.41-x86_64-1.txz.asc +| | |-- exiv2-0.18.1-x86_64-1.txt +| | |-- exiv2-0.18.1-x86_64-1.txz +| | |-- exiv2-0.18.1-x86_64-1.txz.asc +| | |-- expat-2.0.1-x86_64-1.txt +| | |-- expat-2.0.1-x86_64-1.txz +| | |-- expat-2.0.1-x86_64-1.txz.asc +| | |-- freetype-2.3.9-x86_64-1.txt +| | |-- freetype-2.3.9-x86_64-1.txz +| | |-- freetype-2.3.9-x86_64-1.txz.asc +| | |-- fribidi-0.10.9-x86_64-2.txt +| | |-- fribidi-0.10.9-x86_64-2.txz +| | |-- fribidi-0.10.9-x86_64-2.txz.asc +| | |-- fuse-2.7.4-x86_64-2.txt +| | |-- fuse-2.7.4-x86_64-2.txz +| | |-- fuse-2.7.4-x86_64-2.txz.asc +| | |-- gamin-0.1.10-x86_64-2.txt +| | |-- gamin-0.1.10-x86_64-2.txz +| | |-- gamin-0.1.10-x86_64-2.txz.asc +| | |-- gd-2.0.35-x86_64-3.txt +| | |-- gd-2.0.35-x86_64-3.txz +| | |-- gd-2.0.35-x86_64-3.txz.asc +| | |-- gdbm-1.8.3-x86_64-4.txt +| | |-- gdbm-1.8.3-x86_64-4.txz +| | |-- gdbm-1.8.3-x86_64-4.txz.asc +| | |-- gegl-0.0.22-x86_64-1.txt +| | |-- gegl-0.0.22-x86_64-1.txz +| | |-- gegl-0.0.22-x86_64-1.txz.asc +| | |-- glib-1.2.10-x86_64-3.txt +| | |-- glib-1.2.10-x86_64-3.txz +| | |-- glib-1.2.10-x86_64-3.txz.asc +| | |-- glib2-2.18.4-x86_64-1.txt +| | |-- glib2-2.18.4-x86_64-1.txz +| | |-- glib2-2.18.4-x86_64-1.txz.asc +| | |-- glibc-2.9-x86_64-3.txt +| | |-- glibc-2.9-x86_64-3.txz +| | |-- glibc-2.9-x86_64-3.txz.asc +| | |-- glibc-i18n-2.9-x86_64-3.txt +| | |-- glibc-i18n-2.9-x86_64-3.txz +| | |-- glibc-i18n-2.9-x86_64-3.txz.asc +| | |-- glibc-profile-2.9-x86_64-3.txt +| | |-- glibc-profile-2.9-x86_64-3.txz +| | |-- glibc-profile-2.9-x86_64-3.txz.asc +| | |-- gmime-2.2.23-x86_64-1.txt +| | |-- gmime-2.2.23-x86_64-1.txz +| | |-- gmime-2.2.23-x86_64-1.txz.asc +| | |-- gmm-3.1-noarch-1.txt +| | |-- gmm-3.1-noarch-1.txz +| | |-- gmm-3.1-noarch-1.txz.asc +| | |-- gmp-4.2.4-x86_64-1.txt +| | |-- gmp-4.2.4-x86_64-1.txz +| | |-- gmp-4.2.4-x86_64-1.txz.asc +| | |-- gnome-icon-theme-2.26.0-x86_64-1.txt +| | |-- gnome-icon-theme-2.26.0-x86_64-1.txz +| | |-- gnome-icon-theme-2.26.0-x86_64-1.txz.asc +| | |-- gst-plugins-base-0.10.23-x86_64-1.txt +| | |-- gst-plugins-base-0.10.23-x86_64-1.txz +| | |-- gst-plugins-base-0.10.23-x86_64-1.txz.asc +| | |-- gstreamer-0.10.23-x86_64-1.txt +| | |-- gstreamer-0.10.23-x86_64-1.txz +| | |-- gstreamer-0.10.23-x86_64-1.txz.asc +| | |-- gtk+-1.2.10-x86_64-5.txt +| | |-- gtk+-1.2.10-x86_64-5.txz +| | |-- gtk+-1.2.10-x86_64-5.txz.asc +| | |-- gtk+2-2.14.7-x86_64-4.txt +| | |-- gtk+2-2.14.7-x86_64-4.txz +| | |-- gtk+2-2.14.7-x86_64-4.txz.asc +| | |-- gtkspell-2.0.15-x86_64-1.txt +| | |-- gtkspell-2.0.15-x86_64-1.txz +| | |-- gtkspell-2.0.15-x86_64-1.txz.asc +| | |-- hal-0.5.11-x86_64-6.txt +| | |-- hal-0.5.11-x86_64-6.txz +| | |-- hal-0.5.11-x86_64-6.txz.asc +| | |-- hal-info-20090716-noarch-1.txt +| | |-- hal-info-20090716-noarch-1.txz +| | |-- hal-info-20090716-noarch-1.txz.asc +| | |-- hicolor-icon-theme-0.10-noarch-5.txt +| | |-- hicolor-icon-theme-0.10-noarch-5.txz +| | |-- hicolor-icon-theme-0.10-noarch-5.txz.asc +| | |-- icon-naming-utils-0.8.90-x86_64-2.txt +| | |-- icon-naming-utils-0.8.90-x86_64-2.txz +| | |-- icon-naming-utils-0.8.90-x86_64-2.txz.asc +| | |-- ilmbase-1.0.1-x86_64-1.txt +| | |-- ilmbase-1.0.1-x86_64-1.txz +| | |-- ilmbase-1.0.1-x86_64-1.txz.asc +| | |-- imlib-1.9.15-x86_64-5.txt +| | |-- imlib-1.9.15-x86_64-5.txz +| | |-- imlib-1.9.15-x86_64-5.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- iso-codes-3.8-noarch-1.txt +| | |-- iso-codes-3.8-noarch-1.txz +| | |-- iso-codes-3.8-noarch-1.txz.asc +| | |-- jasper-1.900.1-x86_64-2.txt +| | |-- jasper-1.900.1-x86_64-2.txz +| | |-- jasper-1.900.1-x86_64-2.txz.asc +| | |-- jre-6u16-x86_64-1.txt +| | |-- jre-6u16-x86_64-1.txz +| | |-- jre-6u16-x86_64-1.txz.asc +| | |-- lcms-1.18-x86_64-1.txt +| | |-- lcms-1.18-x86_64-1.txz +| | |-- lcms-1.18-x86_64-1.txz.asc +| | |-- lesstif-0.95.0-x86_64-5.txt +| | |-- lesstif-0.95.0-x86_64-5.txz +| | |-- lesstif-0.95.0-x86_64-5.txz.asc +| | |-- libaio-0.3.106-x86_64-1.txt +| | |-- libaio-0.3.106-x86_64-1.txz +| | |-- libaio-0.3.106-x86_64-1.txz.asc +| | |-- libao-0.8.8-x86_64-1.txt +| | |-- libao-0.8.8-x86_64-1.txz +| | |-- libao-0.8.8-x86_64-1.txz.asc +| | |-- libarchive-2.6.2-x86_64-1.txt +| | |-- libarchive-2.6.2-x86_64-1.txz +| | |-- libarchive-2.6.2-x86_64-1.txz.asc +| | |-- libart_lgpl-2.3.20-x86_64-1.txt +| | |-- libart_lgpl-2.3.20-x86_64-1.txz +| | |-- libart_lgpl-2.3.20-x86_64-1.txz.asc +| | |-- libcaca-0.99.beta16-x86_64-3.txt +| | |-- libcaca-0.99.beta16-x86_64-3.txz +| | |-- libcaca-0.99.beta16-x86_64-3.txz.asc +| | |-- libcap-2.16-x86_64-2.txt +| | |-- libcap-2.16-x86_64-2.txz +| | |-- libcap-2.16-x86_64-2.txz.asc +| | |-- libcddb-1.3.0-x86_64-1.txt +| | |-- libcddb-1.3.0-x86_64-1.txz +| | |-- libcddb-1.3.0-x86_64-1.txz.asc +| | |-- libcdio-0.79-x86_64-1.txt +| | |-- libcdio-0.79-x86_64-1.txz +| | |-- libcdio-0.79-x86_64-1.txz.asc +| | |-- libdvdread-4.1.3-x86_64-1.txt +| | |-- libdvdread-4.1.3-x86_64-1.txz +| | |-- libdvdread-4.1.3-x86_64-1.txz.asc +| | |-- libexif-0.6.16-x86_64-1.txt +| | |-- libexif-0.6.16-x86_64-1.txz +| | |-- libexif-0.6.16-x86_64-1.txz.asc +| | |-- libglade-2.6.4-x86_64-2.txt +| | |-- libglade-2.6.4-x86_64-2.txz +| | |-- libglade-2.6.4-x86_64-2.txz.asc +| | |-- libgphoto2-2.4.6-x86_64-1.txt +| | |-- libgphoto2-2.4.6-x86_64-1.txz +| | |-- libgphoto2-2.4.6-x86_64-1.txz.asc +| | |-- libgpod-0.7.2-x86_64-1.txt +| | |-- libgpod-0.7.2-x86_64-1.txz +| | |-- libgpod-0.7.2-x86_64-1.txz.asc +| | |-- libgsf-1.14.15-x86_64-1.txt +| | |-- libgsf-1.14.15-x86_64-1.txz +| | |-- libgsf-1.14.15-x86_64-1.txz.asc +| | |-- libgtkhtml-2.11.1-x86_64-2.txt +| | |-- libgtkhtml-2.11.1-x86_64-2.txz +| | |-- libgtkhtml-2.11.1-x86_64-2.txz.asc +| | |-- libical-0.43-x86_64-1.txt +| | |-- libical-0.43-x86_64-1.txz +| | |-- libical-0.43-x86_64-1.txz.asc +| | |-- libid3tag-0.15.1b-x86_64-3.txt +| | |-- libid3tag-0.15.1b-x86_64-3.txz +| | |-- libid3tag-0.15.1b-x86_64-3.txz.asc +| | |-- libidl-0.8.10-x86_64-1.txt +| | |-- libidl-0.8.10-x86_64-1.txz +| | |-- libidl-0.8.10-x86_64-1.txz.asc +| | |-- libidn-1.5-x86_64-1.txt +| | |-- libidn-1.5-x86_64-1.txz +| | |-- libidn-1.5-x86_64-1.txz.asc +| | |-- libieee1284-0.2.11-x86_64-2.txt +| | |-- libieee1284-0.2.11-x86_64-2.txz +| | |-- libieee1284-0.2.11-x86_64-2.txz.asc +| | |-- libjpeg-6b-x86_64-5.txt +| | |-- libjpeg-6b-x86_64-5.txz +| | |-- libjpeg-6b-x86_64-5.txz.asc +| | |-- libkarma-0.1.1-x86_64-1.txt +| | |-- libkarma-0.1.1-x86_64-1.txz +| | |-- libkarma-0.1.1-x86_64-1.txz.asc +| | |-- libmad-0.15.1b-x86_64-3.txt +| | |-- libmad-0.15.1b-x86_64-3.txz +| | |-- libmad-0.15.1b-x86_64-3.txz.asc +| | |-- libmcrypt-2.5.8-x86_64-1.txt +| | |-- libmcrypt-2.5.8-x86_64-1.txz +| | |-- libmcrypt-2.5.8-x86_64-1.txz.asc +| | |-- libmcs-0.7.1-x86_64-1.txt +| | |-- libmcs-0.7.1-x86_64-1.txz +| | |-- libmcs-0.7.1-x86_64-1.txz.asc +| | |-- libmng-1.0.10-x86_64-1.txt +| | |-- libmng-1.0.10-x86_64-1.txz +| | |-- libmng-1.0.10-x86_64-1.txz.asc +| | |-- libmowgli-0.6.0-x86_64-1.txt +| | |-- libmowgli-0.6.0-x86_64-1.txz +| | |-- libmowgli-0.6.0-x86_64-1.txz.asc +| | |-- libmsn-r96-x86_64-1.txt +| | |-- libmsn-r96-x86_64-1.txz +| | |-- libmsn-r96-x86_64-1.txz.asc +| | |-- libmtp-0.3.6-x86_64-1.txt +| | |-- libmtp-0.3.6-x86_64-1.txz +| | |-- libmtp-0.3.6-x86_64-1.txz.asc +| | |-- libnjb-2.2.6-x86_64-4.txt +| | |-- libnjb-2.2.6-x86_64-4.txz +| | |-- libnjb-2.2.6-x86_64-4.txz.asc +| | |-- libnl-1.1-x86_64-1.txt +| | |-- libnl-1.1-x86_64-1.txz +| | |-- libnl-1.1-x86_64-1.txz.asc +| | |-- libogg-1.1.3-x86_64-2.txt +| | |-- libogg-1.1.3-x86_64-2.txz +| | |-- libogg-1.1.3-x86_64-2.txz.asc +| | |-- liboil-0.3.16-x86_64-1.txt +| | |-- liboil-0.3.16-x86_64-1.txz +| | |-- liboil-0.3.16-x86_64-1.txz.asc +| | |-- libpng-1.2.37-x86_64-1.txt +| | |-- libpng-1.2.37-x86_64-1.txz +| | |-- libpng-1.2.37-x86_64-1.txz.asc +| | |-- libraw1394-2.0.0-x86_64-1.txt +| | |-- libraw1394-2.0.0-x86_64-1.txz +| | |-- libraw1394-2.0.0-x86_64-1.txz.asc +| | |-- librsvg-2.26.0-x86_64-2.txt +| | |-- librsvg-2.26.0-x86_64-2.txz +| | |-- librsvg-2.26.0-x86_64-2.txz.asc +| | |-- libspectre-0.2.2-x86_64-1.txt +| | |-- libspectre-0.2.2-x86_64-1.txz +| | |-- libspectre-0.2.2-x86_64-1.txz.asc +| | |-- libtermcap-1.2.3-x86_64-7.txt +| | |-- libtermcap-1.2.3-x86_64-7.txz +| | |-- libtermcap-1.2.3-x86_64-7.txz.asc +| | |-- libtheora-1.0-x86_64-1.txt +| | |-- libtheora-1.0-x86_64-1.txz +| | |-- libtheora-1.0-x86_64-1.txz.asc +| | |-- libtiff-3.8.2-x86_64-3.txt +| | |-- libtiff-3.8.2-x86_64-3.txz +| | |-- libtiff-3.8.2-x86_64-3.txz.asc +| | |-- libungif-4.1.4-x86_64-4.txt +| | |-- libungif-4.1.4-x86_64-4.txz +| | |-- libungif-4.1.4-x86_64-4.txz.asc +| | |-- libusb-0.1.12-x86_64-2.txt +| | |-- libusb-0.1.12-x86_64-2.txz +| | |-- libusb-0.1.12-x86_64-2.txz.asc +| | |-- libvisual-0.4.0-x86_64-2.txt +| | |-- libvisual-0.4.0-x86_64-2.txz +| | |-- libvisual-0.4.0-x86_64-2.txz.asc +| | |-- libvisual-plugins-0.4.0-x86_64-2.txt +| | |-- libvisual-plugins-0.4.0-x86_64-2.txz +| | |-- libvisual-plugins-0.4.0-x86_64-2.txz.asc +| | |-- libvncserver-0.9.7-x86_64-1.txt +| | |-- libvncserver-0.9.7-x86_64-1.txz +| | |-- libvncserver-0.9.7-x86_64-1.txz.asc +| | |-- libvorbis-1.2.0-x86_64-1.txt +| | |-- libvorbis-1.2.0-x86_64-1.txz +| | |-- libvorbis-1.2.0-x86_64-1.txz.asc +| | |-- libwmf-0.2.8.4-x86_64-4.txt +| | |-- libwmf-0.2.8.4-x86_64-4.txz +| | |-- libwmf-0.2.8.4-x86_64-4.txz.asc +| | |-- libwmf-docs-0.2.8.4-noarch-4.txt +| | |-- libwmf-docs-0.2.8.4-noarch-4.txz +| | |-- libwmf-docs-0.2.8.4-noarch-4.txz.asc +| | |-- libwnck-2.26.1-x86_64-1.txt +| | |-- libwnck-2.26.1-x86_64-1.txz +| | |-- libwnck-2.26.1-x86_64-1.txz.asc +| | |-- libwpd-0.8.14-x86_64-1.txt +| | |-- libwpd-0.8.14-x86_64-1.txz +| | |-- libwpd-0.8.14-x86_64-1.txz.asc +| | |-- libxklavier-3.9-x86_64-2.txt +| | |-- libxklavier-3.9-x86_64-2.txz +| | |-- libxklavier-3.9-x86_64-2.txz.asc +| | |-- libxml2-2.7.3-x86_64-3.txt +| | |-- libxml2-2.7.3-x86_64-3.txz +| | |-- libxml2-2.7.3-x86_64-3.txz.asc +| | |-- libxslt-1.1.24-x86_64-2.txt +| | |-- libxslt-1.1.24-x86_64-2.txz +| | |-- libxslt-1.1.24-x86_64-2.txz.asc +| | |-- libzip-0.9-x86_64-2.txt +| | |-- libzip-0.9-x86_64-2.txz +| | |-- libzip-0.9-x86_64-2.txz.asc +| | |-- lzo-2.02-x86_64-1.txt +| | |-- lzo-2.02-x86_64-1.txz +| | |-- lzo-2.02-x86_64-1.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | |-- mhash-0.9.9-x86_64-1.txt +| | |-- mhash-0.9.9-x86_64-1.txz +| | |-- mhash-0.9.9-x86_64-1.txz.asc +| | |-- mm-1.4.2-x86_64-2.txt +| | |-- mm-1.4.2-x86_64-2.txz +| | |-- mm-1.4.2-x86_64-2.txz.asc +| | |-- mpfr-2.3.1-x86_64-1.txt +| | |-- mpfr-2.3.1-x86_64-1.txz +| | |-- mpfr-2.3.1-x86_64-1.txz.asc +| | |-- ncurses-5.7-x86_64-2.txt +| | |-- ncurses-5.7-x86_64-2.txz +| | |-- ncurses-5.7-x86_64-2.txz.asc +| | |-- neon-0.28.4-x86_64-1.txt +| | |-- neon-0.28.4-x86_64-1.txz +| | |-- neon-0.28.4-x86_64-1.txz.asc +| | |-- netpbm-10.35.22-x86_64-1.txt +| | |-- netpbm-10.35.22-x86_64-1.txz +| | |-- netpbm-10.35.22-x86_64-1.txz.asc +| | |-- openexr-1.6.1-x86_64-2.txt +| | |-- openexr-1.6.1-x86_64-2.txz +| | |-- openexr-1.6.1-x86_64-2.txz.asc +| | |-- pango-1.22.4-x86_64-4.txt +| | |-- pango-1.22.4-x86_64-4.txz +| | |-- pango-1.22.4-x86_64-4.txz.asc +| | |-- parted-1.8.8-x86_64-2.txt +| | |-- parted-1.8.8-x86_64-2.txz +| | |-- parted-1.8.8-x86_64-2.txz.asc +| | |-- pcre-7.7-x86_64-1.txt +| | |-- pcre-7.7-x86_64-1.txz +| | |-- pcre-7.7-x86_64-1.txz.asc +| | |-- phonon-4.3.1-x86_64-1.txt +| | |-- phonon-4.3.1-x86_64-1.txz +| | |-- phonon-4.3.1-x86_64-1.txz.asc +| | |-- pil-1.1.6-x86_64-1.txt +| | |-- pil-1.1.6-x86_64-1.txz +| | |-- pil-1.1.6-x86_64-1.txz.asc +| | |-- pilot-link-0.12.3-x86_64-9.txt +| | |-- pilot-link-0.12.3-x86_64-9.txz +| | |-- pilot-link-0.12.3-x86_64-9.txz.asc +| | |-- poppler-0.10.7-x86_64-1.txt +| | |-- poppler-0.10.7-x86_64-1.txz +| | |-- poppler-0.10.7-x86_64-1.txz.asc +| | |-- poppler-data-0.2.1-noarch-1.txt +| | |-- poppler-data-0.2.1-noarch-1.txz +| | |-- poppler-data-0.2.1-noarch-1.txz.asc +| | |-- popt-1.7-x86_64-2.txt +| | |-- popt-1.7-x86_64-2.txz +| | |-- popt-1.7-x86_64-2.txz.asc +| | |-- pycairo-1.8.4-x86_64-3.txt +| | |-- pycairo-1.8.4-x86_64-3.txz +| | |-- pycairo-1.8.4-x86_64-3.txz.asc +| | |-- pycups-1.9.45-x86_64-2.txt +| | |-- pycups-1.9.45-x86_64-2.txz +| | |-- pycups-1.9.45-x86_64-2.txz.asc +| | |-- pygobject-2.16.1-x86_64-1.txt +| | |-- pygobject-2.16.1-x86_64-1.txz +| | |-- pygobject-2.16.1-x86_64-1.txz.asc +| | |-- pygtk-2.14.1-x86_64-2.txt +| | |-- pygtk-2.14.1-x86_64-2.txz +| | |-- pygtk-2.14.1-x86_64-2.txz.asc +| | |-- pyrex-0.9.8.5-x86_64-2.txt +| | |-- pyrex-0.9.8.5-x86_64-2.txz +| | |-- pyrex-0.9.8.5-x86_64-2.txz.asc +| | |-- qca-2.0.1-x86_64-1.txt +| | |-- qca-2.0.1-x86_64-1.txz +| | |-- qca-2.0.1-x86_64-1.txz.asc +| | |-- qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txt +| | |-- qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txz +| | |-- qca-cyrus-sasl-2.0.0_beta3-x86_64-1.txz.asc +| | |-- qca-gnupg-2.0.0_beta3-x86_64-1.txt +| | |-- qca-gnupg-2.0.0_beta3-x86_64-1.txz +| | |-- qca-gnupg-2.0.0_beta3-x86_64-1.txz.asc +| | |-- qca-ossl-2.0.0_beta3-x86_64-1.txt +| | |-- qca-ossl-2.0.0_beta3-x86_64-1.txz +| | |-- qca-ossl-2.0.0_beta3-x86_64-1.txz.asc +| | |-- qimageblitz-r948358-x86_64-1.txt +| | |-- qimageblitz-r948358-x86_64-1.txz +| | |-- qimageblitz-r948358-x86_64-1.txz.asc +| | |-- qt-r1008952-x86_64-1.txt +| | |-- qt-r1008952-x86_64-1.txz +| | |-- qt-r1008952-x86_64-1.txz.asc +| | |-- qtscriptgenerator-0.1.0-x86_64-1.txt +| | |-- qtscriptgenerator-0.1.0-x86_64-1.txz +| | |-- qtscriptgenerator-0.1.0-x86_64-1.txz.asc +| | |-- raptor-1.4.18-x86_64-1.txt +| | |-- raptor-1.4.18-x86_64-1.txz +| | |-- raptor-1.4.18-x86_64-1.txz.asc +| | |-- rasqal-0.9.16-x86_64-1.txt +| | |-- rasqal-0.9.16-x86_64-1.txz +| | |-- rasqal-0.9.16-x86_64-1.txz.asc +| | |-- readline-5.2-x86_64-4.txt +| | |-- readline-5.2-x86_64-4.txz +| | |-- readline-5.2-x86_64-4.txz.asc +| | |-- redland-1.0.8-x86_64-1.txt +| | |-- redland-1.0.8-x86_64-1.txz +| | |-- redland-1.0.8-x86_64-1.txz.asc +| | |-- sdl-1.2.13-x86_64-4.txt +| | |-- sdl-1.2.13-x86_64-4.txz +| | |-- sdl-1.2.13-x86_64-4.txz.asc +| | |-- seamonkey-solibs-1.1.17-x86_64-1.txt +| | |-- seamonkey-solibs-1.1.17-x86_64-1.txz +| | |-- seamonkey-solibs-1.1.17-x86_64-1.txz.asc +| | |-- shared-mime-info-0.60-x86_64-1.txt +| | |-- shared-mime-info-0.60-x86_64-1.txz +| | |-- shared-mime-info-0.60-x86_64-1.txz.asc +| | |-- sip-4.7.9-x86_64-2.txt +| | |-- sip-4.7.9-x86_64-2.txz +| | |-- sip-4.7.9-x86_64-2.txz.asc +| | |-- slang-2.1.4-x86_64-1.txt +| | |-- slang-2.1.4-x86_64-1.txz +| | |-- slang-2.1.4-x86_64-1.txz.asc +| | |-- slang1-1.4.9-x86_64-1.txt +| | |-- slang1-1.4.9-x86_64-1.txz +| | |-- slang1-1.4.9-x86_64-1.txz.asc +| | |-- soprano-2.2.3-x86_64-1.txt +| | |-- soprano-2.2.3-x86_64-1.txz +| | |-- soprano-2.2.3-x86_64-1.txz.asc +| | |-- startup-notification-0.9-x86_64-2.txt +| | |-- startup-notification-0.9-x86_64-2.txz +| | |-- startup-notification-0.9-x86_64-2.txz.asc +| | |-- strigi-0.6.4-x86_64-1.txt +| | |-- strigi-0.6.4-x86_64-1.txz +| | |-- strigi-0.6.4-x86_64-1.txz.asc +| | |-- svgalib-1.9.25-x86_64-2.txt +| | |-- svgalib-1.9.25-x86_64-2.txz +| | |-- svgalib-1.9.25-x86_64-2.txz.asc +| | |-- t1lib-5.1.2-x86_64-1.txt +| | |-- t1lib-5.1.2-x86_64-1.txz +| | |-- t1lib-5.1.2-x86_64-1.txz.asc +| | |-- tagfile +| | |-- taglib-1.5-x86_64-1.txt +| | |-- taglib-1.5-x86_64-1.txz +| | |-- taglib-1.5-x86_64-1.txz.asc +| | |-- taglib-extras-0.1.3-x86_64-1.txt +| | |-- taglib-extras-0.1.3-x86_64-1.txz +| | |-- taglib-extras-0.1.3-x86_64-1.txz.asc +| | |-- tango-icon-theme-0.8.90-noarch-1.txt +| | |-- tango-icon-theme-0.8.90-noarch-1.txz +| | |-- tango-icon-theme-0.8.90-noarch-1.txz.asc +| | |-- tango-icon-theme-extras-0.1.0-noarch-1.txt +| | |-- tango-icon-theme-extras-0.1.0-noarch-1.txz +| | |-- tango-icon-theme-extras-0.1.0-noarch-1.txz.asc +| | |-- urwid-0.9.8.4-x86_64-1.txt +| | |-- urwid-0.9.8.4-x86_64-1.txz +| | |-- urwid-0.9.8.4-x86_64-1.txz.asc +| | |-- vte-0.20.5-x86_64-1.txt +| | |-- vte-0.20.5-x86_64-1.txz +| | |-- vte-0.20.5-x86_64-1.txz.asc +| | |-- wavpack-4.41.0-x86_64-1.txt +| | |-- wavpack-4.41.0-x86_64-1.txz +| | |-- wavpack-4.41.0-x86_64-1.txz.asc +| | |-- wv2-0.2.3-x86_64-1.txt +| | |-- wv2-0.2.3-x86_64-1.txz +| | |-- wv2-0.2.3-x86_64-1.txz.asc +| | |-- zlib-1.2.3-x86_64-2.txt +| | |-- zlib-1.2.3-x86_64-2.txz +| | `-- zlib-1.2.3-x86_64-2.txz.asc +| |-- n +| | |-- alpine-2.00-x86_64-2.txt +| | |-- alpine-2.00-x86_64-2.txz +| | |-- alpine-2.00-x86_64-2.txz.asc +| | |-- autofs-3.1.7-x86_64-1.txt +| | |-- autofs-3.1.7-x86_64-1.txz +| | |-- autofs-3.1.7-x86_64-1.txz.asc +| | |-- biff+comsat-0.17-x86_64-1.txt +| | |-- biff+comsat-0.17-x86_64-1.txz +| | |-- biff+comsat-0.17-x86_64-1.txz.asc +| | |-- bind-9.4.3_P3-x86_64-1.txt +| | |-- bind-9.4.3_P3-x86_64-1.txz +| | |-- bind-9.4.3_P3-x86_64-1.txz.asc +| | |-- bluez-firmware-1.2-x86_64-1.txt +| | |-- bluez-firmware-1.2-x86_64-1.txz +| | |-- bluez-firmware-1.2-x86_64-1.txz.asc +| | |-- bluez-hcidump-1.42-x86_64-2.txt +| | |-- bluez-hcidump-1.42-x86_64-2.txz +| | |-- bluez-hcidump-1.42-x86_64-2.txz.asc +| | |-- bluez-libs-3.36-x86_64-2.txt +| | |-- bluez-libs-3.36-x86_64-2.txz +| | |-- bluez-libs-3.36-x86_64-2.txz.asc +| | |-- bluez-utils-3.36-x86_64-7.txt +| | |-- bluez-utils-3.36-x86_64-7.txz +| | |-- bluez-utils-3.36-x86_64-7.txz.asc +| | |-- bootp-2.4.3-x86_64-2.txt +| | |-- bootp-2.4.3-x86_64-2.txz +| | |-- bootp-2.4.3-x86_64-2.txz.asc +| | |-- bridge-utils-1.2-x86_64-2.txt +| | |-- bridge-utils-1.2-x86_64-2.txz +| | |-- bridge-utils-1.2-x86_64-2.txz.asc +| | |-- bsd-finger-0.17-x86_64-1.txt +| | |-- bsd-finger-0.17-x86_64-1.txz +| | |-- bsd-finger-0.17-x86_64-1.txz.asc +| | |-- crda-1.0.1-x86_64-2.txt +| | |-- crda-1.0.1-x86_64-2.txz +| | |-- crda-1.0.1-x86_64-2.txz.asc +| | |-- curl-7.19.6-x86_64-1.txt +| | |-- curl-7.19.6-x86_64-1.txz +| | |-- curl-7.19.6-x86_64-1.txz.asc +| | |-- cyrus-sasl-2.1.23-x86_64-1.txt +| | |-- cyrus-sasl-2.1.23-x86_64-1.txz +| | |-- cyrus-sasl-2.1.23-x86_64-1.txz.asc +| | |-- dhcp-3.1.2p1-x86_64-1.txt +| | |-- dhcp-3.1.2p1-x86_64-1.txz +| | |-- dhcp-3.1.2p1-x86_64-1.txz.asc +| | |-- dhcpcd-3.2.3-x86_64-1.txt +| | |-- dhcpcd-3.2.3-x86_64-1.txz +| | |-- dhcpcd-3.2.3-x86_64-1.txz.asc +| | |-- dirmngr-1.0.3-x86_64-1.txt +| | |-- dirmngr-1.0.3-x86_64-1.txz +| | |-- dirmngr-1.0.3-x86_64-1.txz.asc +| | |-- dnsmasq-2.49-x86_64-1.txt +| | |-- dnsmasq-2.49-x86_64-1.txz +| | |-- dnsmasq-2.49-x86_64-1.txz.asc +| | |-- elm-2.5.8-x86_64-3.txt +| | |-- elm-2.5.8-x86_64-3.txz +| | |-- elm-2.5.8-x86_64-3.txz.asc +| | |-- epic4-2.8-x86_64-2.txt +| | |-- epic4-2.8-x86_64-2.txz +| | |-- epic4-2.8-x86_64-2.txz.asc +| | |-- ethtool-6-x86_64-1.txt +| | |-- ethtool-6-x86_64-1.txz +| | |-- ethtool-6-x86_64-1.txz.asc +| | |-- fetchmail-6.3.11-x86_64-1.txt +| | |-- fetchmail-6.3.11-x86_64-1.txz +| | |-- fetchmail-6.3.11-x86_64-1.txz.asc +| | |-- getmail-4.11.0-x86_64-1.txt +| | |-- getmail-4.11.0-x86_64-1.txz +| | |-- getmail-4.11.0-x86_64-1.txz.asc +| | |-- gnupg-1.4.9-x86_64-1.txt +| | |-- gnupg-1.4.9-x86_64-1.txz +| | |-- gnupg-1.4.9-x86_64-1.txz.asc +| | |-- gnupg2-2.0.12-x86_64-1.txt +| | |-- gnupg2-2.0.12-x86_64-1.txz +| | |-- gnupg2-2.0.12-x86_64-1.txz.asc +| | |-- gnutls-2.6.6-x86_64-2.txt +| | |-- gnutls-2.6.6-x86_64-2.txz +| | |-- gnutls-2.6.6-x86_64-2.txz.asc +| | |-- gpa-0.7.5-x86_64-1.txt +| | |-- gpa-0.7.5-x86_64-1.txz +| | |-- gpa-0.7.5-x86_64-1.txz.asc +| | |-- gpgme-1.1.8-x86_64-1.txt +| | |-- gpgme-1.1.8-x86_64-1.txz +| | |-- gpgme-1.1.8-x86_64-1.txz.asc +| | |-- htdig-3.2.0b6-x86_64-3.txt +| | |-- htdig-3.2.0b6-x86_64-3.txz +| | |-- htdig-3.2.0b6-x86_64-3.txz.asc +| | |-- httpd-2.2.13-x86_64-1.txt +| | |-- httpd-2.2.13-x86_64-1.txz +| | |-- httpd-2.2.13-x86_64-1.txz.asc +| | |-- icmpinfo-1.11-x86_64-1.txt +| | |-- icmpinfo-1.11-x86_64-1.txz +| | |-- icmpinfo-1.11-x86_64-1.txz.asc +| | |-- imapd-2.00-x86_64-2.txt +| | |-- imapd-2.00-x86_64-2.txz +| | |-- imapd-2.00-x86_64-2.txz.asc +| | |-- inetd-1.79s-x86_64-8.txt +| | |-- inetd-1.79s-x86_64-8.txz +| | |-- inetd-1.79s-x86_64-8.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- iproute2-2.6.29_1-x86_64-2.txt +| | |-- iproute2-2.6.29_1-x86_64-2.txz +| | |-- iproute2-2.6.29_1-x86_64-2.txz.asc +| | |-- iptables-1.4.3.2-x86_64-1.txt +| | |-- iptables-1.4.3.2-x86_64-1.txz +| | |-- iptables-1.4.3.2-x86_64-1.txz.asc +| | |-- iptraf-3.0.0-x86_64-3.txt +| | |-- iptraf-3.0.0-x86_64-3.txz +| | |-- iptraf-3.0.0-x86_64-3.txz.asc +| | |-- iputils-s20070202-x86_64-2.txt +| | |-- iputils-s20070202-x86_64-2.txz +| | |-- iputils-s20070202-x86_64-2.txz.asc +| | |-- ipw2100-fw-1.3-fw-1.txt +| | |-- ipw2100-fw-1.3-fw-1.txz +| | |-- ipw2100-fw-1.3-fw-1.txz.asc +| | |-- ipw2200-fw-3.0-fw-2.txt +| | |-- ipw2200-fw-3.0-fw-2.txz +| | |-- ipw2200-fw-3.0-fw-2.txz.asc +| | |-- irssi-0.8.14-x86_64-1.txt +| | |-- irssi-0.8.14-x86_64-1.txz +| | |-- irssi-0.8.14-x86_64-1.txz.asc +| | |-- iw-0.9.14-x86_64-1.txt +| | |-- iw-0.9.14-x86_64-1.txz +| | |-- iw-0.9.14-x86_64-1.txz.asc +| | |-- iwlwifi-3945-ucode-15.32.2.9-fw-1.txt +| | |-- iwlwifi-3945-ucode-15.32.2.9-fw-1.txz +| | |-- iwlwifi-3945-ucode-15.32.2.9-fw-1.txz.asc +| | |-- iwlwifi-4965-ucode-228.61.2.24-fw-1.txt +| | |-- iwlwifi-4965-ucode-228.61.2.24-fw-1.txz +| | |-- iwlwifi-4965-ucode-228.61.2.24-fw-1.txz.asc +| | |-- iwlwifi-5000-ucode-8.24.2.12-fw-1.txt +| | |-- iwlwifi-5000-ucode-8.24.2.12-fw-1.txz +| | |-- iwlwifi-5000-ucode-8.24.2.12-fw-1.txz.asc +| | |-- iwlwifi-5150-ucode-8.24.2.2-fw-1.txt +| | |-- iwlwifi-5150-ucode-8.24.2.2-fw-1.txz +| | |-- iwlwifi-5150-ucode-8.24.2.2-fw-1.txz.asc +| | |-- lftp-3.7.14-x86_64-1.txt +| | |-- lftp-3.7.14-x86_64-1.txz +| | |-- lftp-3.7.14-x86_64-1.txz.asc +| | |-- libassuan-1.0.4-x86_64-1.txt +| | |-- libassuan-1.0.4-x86_64-1.txz +| | |-- libassuan-1.0.4-x86_64-1.txz.asc +| | |-- libgcrypt-1.4.4-x86_64-1.txt +| | |-- libgcrypt-1.4.4-x86_64-1.txz +| | |-- libgcrypt-1.4.4-x86_64-1.txz.asc +| | |-- libgpg-error-1.7-x86_64-1.txt +| | |-- libgpg-error-1.7-x86_64-1.txz +| | |-- libgpg-error-1.7-x86_64-1.txz.asc +| | |-- libksba-1.0.6-x86_64-1.txt +| | |-- libksba-1.0.6-x86_64-1.txz +| | |-- libksba-1.0.6-x86_64-1.txz.asc +| | |-- links-2.2-x86_64-1.txt +| | |-- links-2.2-x86_64-1.txz +| | |-- links-2.2-x86_64-1.txz.asc +| | |-- lynx-2.8.6rel.5-x86_64-2.txt +| | |-- lynx-2.8.6rel.5-x86_64-2.txz +| | |-- lynx-2.8.6rel.5-x86_64-2.txz.asc +| | |-- mailx-12.4-x86_64-1.txt +| | |-- mailx-12.4-x86_64-1.txz +| | |-- mailx-12.4-x86_64-1.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | |-- mcabber-0.9.9-x86_64-2.txt +| | |-- mcabber-0.9.9-x86_64-2.txz +| | |-- mcabber-0.9.9-x86_64-2.txz.asc +| | |-- metamail-2.7-x86_64-4.txt +| | |-- metamail-2.7-x86_64-4.txz +| | |-- metamail-2.7-x86_64-4.txz.asc +| | |-- mtr-0.73-x86_64-2.txt +| | |-- mtr-0.73-x86_64-2.txz +| | |-- mtr-0.73-x86_64-2.txz.asc +| | |-- mutt-1.4.2.3-x86_64-2.txt +| | |-- mutt-1.4.2.3-x86_64-2.txz +| | |-- mutt-1.4.2.3-x86_64-2.txz.asc +| | |-- nc-1.10-x86_64-1.txt +| | |-- nc-1.10-x86_64-1.txz +| | |-- nc-1.10-x86_64-1.txz.asc +| | |-- ncftp-3.2.2-x86_64-2.txt +| | |-- ncftp-3.2.2-x86_64-2.txz +| | |-- ncftp-3.2.2-x86_64-2.txz.asc +| | |-- net-snmp-5.4.2.1-x86_64-2.txt +| | |-- net-snmp-5.4.2.1-x86_64-2.txz +| | |-- net-snmp-5.4.2.1-x86_64-2.txz.asc +| | |-- net-tools-1.60-x86_64-2.txt +| | |-- net-tools-1.60-x86_64-2.txz +| | |-- net-tools-1.60-x86_64-2.txz.asc +| | |-- netatalk-2.0.4-x86_64-2.txt +| | |-- netatalk-2.0.4-x86_64-2.txz +| | |-- netatalk-2.0.4-x86_64-2.txz.asc +| | |-- netdate-bsd4-x86_64-1.txt +| | |-- netdate-bsd4-x86_64-1.txz +| | |-- netdate-bsd4-x86_64-1.txz.asc +| | |-- netkit-bootparamd-0.17-x86_64-2.txt +| | |-- netkit-bootparamd-0.17-x86_64-2.txz +| | |-- netkit-bootparamd-0.17-x86_64-2.txz.asc +| | |-- netkit-ftp-0.17-x86_64-1.txt +| | |-- netkit-ftp-0.17-x86_64-1.txz +| | |-- netkit-ftp-0.17-x86_64-1.txz.asc +| | |-- netkit-ntalk-0.17-x86_64-3.txt +| | |-- netkit-ntalk-0.17-x86_64-3.txz +| | |-- netkit-ntalk-0.17-x86_64-3.txz.asc +| | |-- netkit-routed-0.17-x86_64-1.txt +| | |-- netkit-routed-0.17-x86_64-1.txz +| | |-- netkit-routed-0.17-x86_64-1.txz.asc +| | |-- netkit-rsh-0.17-x86_64-1.txt +| | |-- netkit-rsh-0.17-x86_64-1.txz +| | |-- netkit-rsh-0.17-x86_64-1.txz.asc +| | |-- netkit-rusers-0.17-x86_64-1.txt +| | |-- netkit-rusers-0.17-x86_64-1.txz +| | |-- netkit-rusers-0.17-x86_64-1.txz.asc +| | |-- netkit-rwall-0.17-x86_64-1.txt +| | |-- netkit-rwall-0.17-x86_64-1.txz +| | |-- netkit-rwall-0.17-x86_64-1.txz.asc +| | |-- netkit-rwho-0.17-x86_64-2.txt +| | |-- netkit-rwho-0.17-x86_64-2.txz +| | |-- netkit-rwho-0.17-x86_64-2.txz.asc +| | |-- netkit-timed-0.17-x86_64-1.txt +| | |-- netkit-timed-0.17-x86_64-1.txz +| | |-- netkit-timed-0.17-x86_64-1.txz.asc +| | |-- netpipes-4.2-x86_64-1.txt +| | |-- netpipes-4.2-x86_64-1.txz +| | |-- netpipes-4.2-x86_64-1.txz.asc +| | |-- netwatch-1.3.0-x86_64-2.txt +| | |-- netwatch-1.3.0-x86_64-2.txz +| | |-- netwatch-1.3.0-x86_64-2.txz.asc +| | |-- network-scripts-13.0-noarch-2.txt +| | |-- network-scripts-13.0-noarch-2.txz +| | |-- network-scripts-13.0-noarch-2.txz.asc +| | |-- netwrite-0.17-x86_64-1.txt +| | |-- netwrite-0.17-x86_64-1.txz +| | |-- netwrite-0.17-x86_64-1.txz.asc +| | |-- newspost-2.1.1-x86_64-1.txt +| | |-- newspost-2.1.1-x86_64-1.txz +| | |-- newspost-2.1.1-x86_64-1.txz.asc +| | |-- nfs-utils-1.1.4-x86_64-1.txt +| | |-- nfs-utils-1.1.4-x86_64-1.txz +| | |-- nfs-utils-1.1.4-x86_64-1.txz.asc +| | |-- nmap-5.00-x86_64-1.txt +| | |-- nmap-5.00-x86_64-1.txz +| | |-- nmap-5.00-x86_64-1.txz.asc +| | |-- nn-6.7.3-x86_64-2.txt +| | |-- nn-6.7.3-x86_64-2.txz +| | |-- nn-6.7.3-x86_64-2.txz.asc +| | |-- ntp-4.2.4p7-x86_64-1.txt +| | |-- ntp-4.2.4p7-x86_64-1.txz +| | |-- ntp-4.2.4p7-x86_64-1.txz.asc +| | |-- obexftp-0.23-x86_64-1.txt +| | |-- obexftp-0.23-x86_64-1.txz +| | |-- obexftp-0.23-x86_64-1.txz.asc +| | |-- openldap-client-2.3.43-x86_64-1.txt +| | |-- openldap-client-2.3.43-x86_64-1.txz +| | |-- openldap-client-2.3.43-x86_64-1.txz.asc +| | |-- openobex-1.3-x86_64-3.txt +| | |-- openobex-1.3-x86_64-3.txz +| | |-- openobex-1.3-x86_64-3.txz.asc +| | |-- openssh-5.2p1-x86_64-2.txt +| | |-- openssh-5.2p1-x86_64-2.txz +| | |-- openssh-5.2p1-x86_64-2.txz.asc +| | |-- openssl-0.9.8k-x86_64-2.txt +| | |-- openssl-0.9.8k-x86_64-2.txz +| | |-- openssl-0.9.8k-x86_64-2.txz.asc +| | |-- openvpn-2.0.9-x86_64-1.txt +| | |-- openvpn-2.0.9-x86_64-1.txz +| | |-- openvpn-2.0.9-x86_64-1.txz.asc +| | |-- php-5.2.10-x86_64-2.txt +| | |-- php-5.2.10-x86_64-2.txz +| | |-- php-5.2.10-x86_64-2.txz.asc +| | |-- pidentd-3.0.19-x86_64-1.txt +| | |-- pidentd-3.0.19-x86_64-1.txz +| | |-- pidentd-3.0.19-x86_64-1.txz.asc +| | |-- pinentry-0.7.6-x86_64-1.txt +| | |-- pinentry-0.7.6-x86_64-1.txz +| | |-- pinentry-0.7.6-x86_64-1.txz.asc +| | |-- popa3d-1.0.2-x86_64-2.txt +| | |-- popa3d-1.0.2-x86_64-2.txz +| | |-- popa3d-1.0.2-x86_64-2.txz.asc +| | |-- portmap-6.0-x86_64-1.txt +| | |-- portmap-6.0-x86_64-1.txz +| | |-- portmap-6.0-x86_64-1.txz.asc +| | |-- ppp-2.4.4-x86_64-1.txt +| | |-- ppp-2.4.4-x86_64-1.txz +| | |-- ppp-2.4.4-x86_64-1.txz.asc +| | |-- procmail-3.22-x86_64-2.txt +| | |-- procmail-3.22-x86_64-2.txz +| | |-- procmail-3.22-x86_64-2.txz.asc +| | |-- proftpd-1.3.2-x86_64-2.txt +| | |-- proftpd-1.3.2-x86_64-2.txz +| | |-- proftpd-1.3.2-x86_64-2.txz.asc +| | |-- pssh-1.3.1-noarch-1.txt +| | |-- pssh-1.3.1-noarch-1.txz +| | |-- pssh-1.3.1-noarch-1.txz.asc +| | |-- pth-2.0.7-x86_64-1.txt +| | |-- pth-2.0.7-x86_64-1.txz +| | |-- pth-2.0.7-x86_64-1.txz.asc +| | |-- rdist-6.1.5-x86_64-1.txt +| | |-- rdist-6.1.5-x86_64-1.txz +| | |-- rdist-6.1.5-x86_64-1.txz.asc +| | |-- rp-pppoe-3.10-x86_64-1.txt +| | |-- rp-pppoe-3.10-x86_64-1.txz +| | |-- rp-pppoe-3.10-x86_64-1.txz.asc +| | |-- rsync-3.0.6-x86_64-1.txt +| | |-- rsync-3.0.6-x86_64-1.txz +| | |-- rsync-3.0.6-x86_64-1.txz.asc +| | |-- rt61-firmware-1.2-fw-1.txt +| | |-- rt61-firmware-1.2-fw-1.txz +| | |-- rt61-firmware-1.2-fw-1.txz.asc +| | |-- rt71w-firmware-1.8-fw-1.txt +| | |-- rt71w-firmware-1.8-fw-1.txz +| | |-- rt71w-firmware-1.8-fw-1.txz.asc +| | |-- samba-3.2.13-x86_64-1.txt +| | |-- samba-3.2.13-x86_64-1.txz +| | |-- samba-3.2.13-x86_64-1.txz.asc +| | |-- sendmail-8.14.3-x86_64-2.txt +| | |-- sendmail-8.14.3-x86_64-2.txz +| | |-- sendmail-8.14.3-x86_64-2.txz.asc +| | |-- sendmail-cf-8.14.3-noarch-2.txt +| | |-- sendmail-cf-8.14.3-noarch-2.txz +| | |-- sendmail-cf-8.14.3-noarch-2.txz.asc +| | |-- slrn-0.9.9p1-x86_64-2.txt +| | |-- slrn-0.9.9p1-x86_64-2.txz +| | |-- slrn-0.9.9p1-x86_64-2.txz.asc +| | |-- snownews-1.5.11-x86_64-2.txt +| | |-- snownews-1.5.11-x86_64-2.txz +| | |-- snownews-1.5.11-x86_64-2.txz.asc +| | |-- stunnel-4.17-x86_64-1.txt +| | |-- stunnel-4.17-x86_64-1.txz +| | |-- stunnel-4.17-x86_64-1.txz.asc +| | |-- tagfile +| | |-- tcp_wrappers-7.6-x86_64-1.txt +| | |-- tcp_wrappers-7.6-x86_64-1.txz +| | |-- tcp_wrappers-7.6-x86_64-1.txz.asc +| | |-- tcpdump-4.0.0-x86_64-1.txt +| | |-- tcpdump-4.0.0-x86_64-1.txz +| | |-- tcpdump-4.0.0-x86_64-1.txz.asc +| | |-- telnet-0.17-x86_64-2.txt +| | |-- telnet-0.17-x86_64-2.txz +| | |-- telnet-0.17-x86_64-2.txz.asc +| | |-- tftp-hpa-0.48-x86_64-1.txt +| | |-- tftp-hpa-0.48-x86_64-1.txz +| | |-- tftp-hpa-0.48-x86_64-1.txz.asc +| | |-- tin-1.8.2-x86_64-2.txt +| | |-- tin-1.8.2-x86_64-2.txz +| | |-- tin-1.8.2-x86_64-2.txz.asc +| | |-- traceroute-1.4a12-x86_64-2.txt +| | |-- traceroute-1.4a12-x86_64-2.txz +| | |-- traceroute-1.4a12-x86_64-2.txz.asc +| | |-- trn-3.6-x86_64-2.txt +| | |-- trn-3.6-x86_64-2.txz +| | |-- trn-3.6-x86_64-2.txz.asc +| | |-- uucp-1.07-x86_64-1.txt +| | |-- uucp-1.07-x86_64-1.txz +| | |-- uucp-1.07-x86_64-1.txz.asc +| | |-- vlan-1.9-x86_64-2.txt +| | |-- vlan-1.9-x86_64-2.txz +| | |-- vlan-1.9-x86_64-2.txz.asc +| | |-- vsftpd-2.1.2-x86_64-1.txt +| | |-- vsftpd-2.1.2-x86_64-1.txz +| | |-- vsftpd-2.1.2-x86_64-1.txz.asc +| | |-- wget-1.11.4-x86_64-1.txt +| | |-- wget-1.11.4-x86_64-1.txz +| | |-- wget-1.11.4-x86_64-1.txz.asc +| | |-- whois-4.7.26-x86_64-1.txt +| | |-- whois-4.7.26-x86_64-1.txz +| | |-- whois-4.7.26-x86_64-1.txz.asc +| | |-- wireless-tools-29-x86_64-5.txt +| | |-- wireless-tools-29-x86_64-5.txz +| | |-- wireless-tools-29-x86_64-5.txz.asc +| | |-- wpa_supplicant-0.6.9-x86_64-2.txt +| | |-- wpa_supplicant-0.6.9-x86_64-2.txz +| | |-- wpa_supplicant-0.6.9-x86_64-2.txz.asc +| | |-- yptools-2.9-x86_64-1.txt +| | |-- yptools-2.9-x86_64-1.txz +| | |-- yptools-2.9-x86_64-1.txz.asc +| | |-- ytalk-3.3.0-x86_64-2.txt +| | |-- ytalk-3.3.0-x86_64-2.txz +| | |-- ytalk-3.3.0-x86_64-2.txz.asc +| | |-- zd1211-firmware-1.4-fw-1.txt +| | |-- zd1211-firmware-1.4-fw-1.txz +| | `-- zd1211-firmware-1.4-fw-1.txz.asc +| |-- t +| | |-- install-packages +| | |-- install.end +| | |-- maketag +| | |-- maketag.ez +| | |-- tagfile +| | |-- tetex-3.0-x86_64-6.txt +| | |-- tetex-3.0-x86_64-6.txz +| | |-- tetex-3.0-x86_64-6.txz.asc +| | |-- tetex-doc-3.0-x86_64-6.txt +| | |-- tetex-doc-3.0-x86_64-6.txz +| | |-- tetex-doc-3.0-x86_64-6.txz.asc +| | |-- transfig-3.2.4-x86_64-2.txt +| | |-- transfig-3.2.4-x86_64-2.txz +| | |-- transfig-3.2.4-x86_64-2.txz.asc +| | |-- xfig-3.2.4-x86_64-3.txt +| | |-- xfig-3.2.4-x86_64-3.txz +| | `-- xfig-3.2.4-x86_64-3.txz.asc +| |-- tcl +| | |-- expect-5.44.1.11-x86_64-3.txt +| | |-- expect-5.44.1.11-x86_64-3.txz +| | |-- expect-5.44.1.11-x86_64-3.txz.asc +| | |-- hfsutils-3.2.6-x86_64-4.txt +| | |-- hfsutils-3.2.6-x86_64-4.txz +| | |-- hfsutils-3.2.6-x86_64-4.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- maketag +| | |-- maketag.ez +| | |-- tagfile +| | |-- tcl-8.5.7-x86_64-1.txt +| | |-- tcl-8.5.7-x86_64-1.txz +| | |-- tcl-8.5.7-x86_64-1.txz.asc +| | |-- tclx-8.4-x86_64-2.txt +| | |-- tclx-8.4-x86_64-2.txz +| | |-- tclx-8.4-x86_64-2.txz.asc +| | |-- tix-8.4.3-x86_64-1.txt +| | |-- tix-8.4.3-x86_64-1.txz +| | |-- tix-8.4.3-x86_64-1.txz.asc +| | |-- tk-8.5.7-x86_64-1.txt +| | |-- tk-8.5.7-x86_64-1.txz +| | `-- tk-8.5.7-x86_64-1.txz.asc +| |-- x +| | |-- anthy-9100e-x86_64-1.txt +| | |-- anthy-9100e-x86_64-1.txz +| | |-- anthy-9100e-x86_64-1.txz.asc +| | |-- appres-1.0.1-x86_64-2.txt +| | |-- appres-1.0.1-x86_64-2.txz +| | |-- appres-1.0.1-x86_64-2.txz.asc +| | |-- bdftopcf-1.0.1-x86_64-2.txt +| | |-- bdftopcf-1.0.1-x86_64-2.txz +| | |-- bdftopcf-1.0.1-x86_64-2.txz.asc +| | |-- beforelight-1.0.3-x86_64-1.txt +| | |-- beforelight-1.0.3-x86_64-1.txz +| | |-- beforelight-1.0.3-x86_64-1.txz.asc +| | |-- bigreqsproto-1.0.2-noarch-2.txt +| | |-- bigreqsproto-1.0.2-noarch-2.txz +| | |-- bigreqsproto-1.0.2-noarch-2.txz.asc +| | |-- bitmap-1.0.3-x86_64-2.txt +| | |-- bitmap-1.0.3-x86_64-2.txz +| | |-- bitmap-1.0.3-x86_64-2.txz.asc +| | |-- compiz-0.7.8-x86_64-4.txt +| | |-- compiz-0.7.8-x86_64-4.txz +| | |-- compiz-0.7.8-x86_64-4.txz.asc +| | |-- compositeproto-0.4-noarch-2.txt +| | |-- compositeproto-0.4-noarch-2.txz +| | |-- compositeproto-0.4-noarch-2.txz.asc +| | |-- damageproto-1.1.0-noarch-2.txt +| | |-- damageproto-1.1.0-noarch-2.txz +| | |-- damageproto-1.1.0-noarch-2.txz.asc +| | |-- dejavu-fonts-ttf-2.29-noarch-1.txt +| | |-- dejavu-fonts-ttf-2.29-noarch-1.txz +| | |-- dejavu-fonts-ttf-2.29-noarch-1.txz.asc +| | |-- dmxproto-2.2.2-noarch-2.txt +| | |-- dmxproto-2.2.2-noarch-2.txz +| | |-- dmxproto-2.2.2-noarch-2.txz.asc +| | |-- dri2proto-2.1-x86_64-1.txt +| | |-- dri2proto-2.1-x86_64-1.txz +| | |-- dri2proto-2.1-x86_64-1.txz.asc +| | |-- editres-1.0.3-x86_64-2.txt +| | |-- editres-1.0.3-x86_64-2.txz +| | |-- editres-1.0.3-x86_64-2.txz.asc +| | |-- encodings-1.0.2-noarch-2.txt +| | |-- encodings-1.0.2-noarch-2.txz +| | |-- encodings-1.0.2-noarch-2.txz.asc +| | |-- evieext-1.0.2-noarch-2.txt +| | |-- evieext-1.0.2-noarch-2.txz +| | |-- evieext-1.0.2-noarch-2.txz.asc +| | |-- fixesproto-4.0-noarch-2.txt +| | |-- fixesproto-4.0-noarch-2.txz +| | |-- fixesproto-4.0-noarch-2.txz.asc +| | |-- font-adobe-100dpi-1.0.0-noarch-3.txt +| | |-- font-adobe-100dpi-1.0.0-noarch-3.txz +| | |-- font-adobe-100dpi-1.0.0-noarch-3.txz.asc +| | |-- font-adobe-75dpi-1.0.0-noarch-3.txt +| | |-- font-adobe-75dpi-1.0.0-noarch-3.txz +| | |-- font-adobe-75dpi-1.0.0-noarch-3.txz.asc +| | |-- font-adobe-utopia-100dpi-1.0.1-noarch-3.txt +| | |-- font-adobe-utopia-100dpi-1.0.1-noarch-3.txz +| | |-- font-adobe-utopia-100dpi-1.0.1-noarch-3.txz.asc +| | |-- font-adobe-utopia-75dpi-1.0.1-noarch-3.txt +| | |-- font-adobe-utopia-75dpi-1.0.1-noarch-3.txz +| | |-- font-adobe-utopia-75dpi-1.0.1-noarch-3.txz.asc +| | |-- font-adobe-utopia-type1-1.0.1-noarch-3.txt +| | |-- font-adobe-utopia-type1-1.0.1-noarch-3.txz +| | |-- font-adobe-utopia-type1-1.0.1-noarch-3.txz.asc +| | |-- font-alias-1.0.1-noarch-2.txt +| | |-- font-alias-1.0.1-noarch-2.txz +| | |-- font-alias-1.0.1-noarch-2.txz.asc +| | |-- font-arabic-misc-1.0.0-noarch-3.txt +| | |-- font-arabic-misc-1.0.0-noarch-3.txz +| | |-- font-arabic-misc-1.0.0-noarch-3.txz.asc +| | |-- font-bh-100dpi-1.0.0-noarch-3.txt +| | |-- font-bh-100dpi-1.0.0-noarch-3.txz +| | |-- font-bh-100dpi-1.0.0-noarch-3.txz.asc +| | |-- font-bh-75dpi-1.0.0-noarch-3.txt +| | |-- font-bh-75dpi-1.0.0-noarch-3.txz +| | |-- font-bh-75dpi-1.0.0-noarch-3.txz.asc +| | |-- font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txt +| | |-- font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txz +| | |-- font-bh-lucidatypewriter-100dpi-1.0.0-noarch-3.txz.asc +| | |-- font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txt +| | |-- font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txz +| | |-- font-bh-lucidatypewriter-75dpi-1.0.0-noarch-3.txz.asc +| | |-- font-bh-ttf-1.0.0-noarch-3.txt +| | |-- font-bh-ttf-1.0.0-noarch-3.txz +| | |-- font-bh-ttf-1.0.0-noarch-3.txz.asc +| | |-- font-bh-type1-1.0.0-noarch-3.txt +| | |-- font-bh-type1-1.0.0-noarch-3.txz +| | |-- font-bh-type1-1.0.0-noarch-3.txz.asc +| | |-- font-bitstream-100dpi-1.0.0-noarch-3.txt +| | |-- font-bitstream-100dpi-1.0.0-noarch-3.txz +| | |-- font-bitstream-100dpi-1.0.0-noarch-3.txz.asc +| | |-- font-bitstream-75dpi-1.0.0-noarch-3.txt +| | |-- font-bitstream-75dpi-1.0.0-noarch-3.txz +| | |-- font-bitstream-75dpi-1.0.0-noarch-3.txz.asc +| | |-- font-bitstream-speedo-1.0.0-noarch-3.txt +| | |-- font-bitstream-speedo-1.0.0-noarch-3.txz +| | |-- font-bitstream-speedo-1.0.0-noarch-3.txz.asc +| | |-- font-bitstream-type1-1.0.0-noarch-3.txt +| | |-- font-bitstream-type1-1.0.0-noarch-3.txz +| | |-- font-bitstream-type1-1.0.0-noarch-3.txz.asc +| | |-- font-cronyx-cyrillic-1.0.0-noarch-3.txt +| | |-- font-cronyx-cyrillic-1.0.0-noarch-3.txz +| | |-- font-cronyx-cyrillic-1.0.0-noarch-3.txz.asc +| | |-- font-cursor-misc-1.0.0-noarch-3.txt +| | |-- font-cursor-misc-1.0.0-noarch-3.txz +| | |-- font-cursor-misc-1.0.0-noarch-3.txz.asc +| | |-- font-daewoo-misc-1.0.0-noarch-3.txt +| | |-- font-daewoo-misc-1.0.0-noarch-3.txz +| | |-- font-daewoo-misc-1.0.0-noarch-3.txz.asc +| | |-- font-dec-misc-1.0.0-noarch-3.txt +| | |-- font-dec-misc-1.0.0-noarch-3.txz +| | |-- font-dec-misc-1.0.0-noarch-3.txz.asc +| | |-- font-ibm-type1-1.0.0-noarch-3.txt +| | |-- font-ibm-type1-1.0.0-noarch-3.txz +| | |-- font-ibm-type1-1.0.0-noarch-3.txz.asc +| | |-- font-isas-misc-1.0.0-noarch-3.txt +| | |-- font-isas-misc-1.0.0-noarch-3.txz +| | |-- font-isas-misc-1.0.0-noarch-3.txz.asc +| | |-- font-jis-misc-1.0.0-noarch-3.txt +| | |-- font-jis-misc-1.0.0-noarch-3.txz +| | |-- font-jis-misc-1.0.0-noarch-3.txz.asc +| | |-- font-micro-misc-1.0.0-noarch-3.txt +| | |-- font-micro-misc-1.0.0-noarch-3.txz +| | |-- font-micro-misc-1.0.0-noarch-3.txz.asc +| | |-- font-misc-cyrillic-1.0.0-noarch-3.txt +| | |-- font-misc-cyrillic-1.0.0-noarch-3.txz +| | |-- font-misc-cyrillic-1.0.0-noarch-3.txz.asc +| | |-- font-misc-ethiopic-1.0.0-noarch-3.txt +| | |-- font-misc-ethiopic-1.0.0-noarch-3.txz +| | |-- font-misc-ethiopic-1.0.0-noarch-3.txz.asc +| | |-- font-misc-meltho-1.0.0-noarch-3.txt +| | |-- font-misc-meltho-1.0.0-noarch-3.txz +| | |-- font-misc-meltho-1.0.0-noarch-3.txz.asc +| | |-- font-misc-misc-1.0.0-noarch-4.txt +| | |-- font-misc-misc-1.0.0-noarch-4.txz +| | |-- font-misc-misc-1.0.0-noarch-4.txz.asc +| | |-- font-mutt-misc-1.0.0-noarch-3.txt +| | |-- font-mutt-misc-1.0.0-noarch-3.txz +| | |-- font-mutt-misc-1.0.0-noarch-3.txz.asc +| | |-- font-schumacher-misc-1.0.0-noarch-3.txt +| | |-- font-schumacher-misc-1.0.0-noarch-3.txz +| | |-- font-schumacher-misc-1.0.0-noarch-3.txz.asc +| | |-- font-screen-cyrillic-1.0.1-noarch-3.txt +| | |-- font-screen-cyrillic-1.0.1-noarch-3.txz +| | |-- font-screen-cyrillic-1.0.1-noarch-3.txz.asc +| | |-- font-sony-misc-1.0.0-noarch-3.txt +| | |-- font-sony-misc-1.0.0-noarch-3.txz +| | |-- font-sony-misc-1.0.0-noarch-3.txz.asc +| | |-- font-sun-misc-1.0.0-noarch-3.txt +| | |-- font-sun-misc-1.0.0-noarch-3.txz +| | |-- font-sun-misc-1.0.0-noarch-3.txz.asc +| | |-- font-util-1.0.1-x86_64-2.txt +| | |-- font-util-1.0.1-x86_64-2.txz +| | |-- font-util-1.0.1-x86_64-2.txz.asc +| | |-- font-winitzki-cyrillic-1.0.0-noarch-3.txt +| | |-- font-winitzki-cyrillic-1.0.0-noarch-3.txz +| | |-- font-winitzki-cyrillic-1.0.0-noarch-3.txz.asc +| | |-- font-xfree86-type1-1.0.1-noarch-2.txt +| | |-- font-xfree86-type1-1.0.1-noarch-2.txz +| | |-- font-xfree86-type1-1.0.1-noarch-2.txz.asc +| | |-- fontcacheproto-0.1.2-noarch-2.txt +| | |-- fontcacheproto-0.1.2-noarch-2.txz +| | |-- fontcacheproto-0.1.2-noarch-2.txz.asc +| | |-- fontconfig-2.6.0-x86_64-2.txt +| | |-- fontconfig-2.6.0-x86_64-2.txz +| | |-- fontconfig-2.6.0-x86_64-2.txz.asc +| | |-- fontsproto-2.0.2-noarch-2.txt +| | |-- fontsproto-2.0.2-noarch-2.txz +| | |-- fontsproto-2.0.2-noarch-2.txz.asc +| | |-- fonttosfnt-1.0.4-x86_64-1.txt +| | |-- fonttosfnt-1.0.4-x86_64-1.txz +| | |-- fonttosfnt-1.0.4-x86_64-1.txz.asc +| | |-- fslsfonts-1.0.2-x86_64-1.txt +| | |-- fslsfonts-1.0.2-x86_64-1.txz +| | |-- fslsfonts-1.0.2-x86_64-1.txz.asc +| | |-- fstobdf-1.0.3-x86_64-1.txt +| | |-- fstobdf-1.0.3-x86_64-1.txz +| | |-- fstobdf-1.0.3-x86_64-1.txz.asc +| | |-- gccmakedep-1.0.2-noarch-2.txt +| | |-- gccmakedep-1.0.2-noarch-2.txz +| | |-- gccmakedep-1.0.2-noarch-2.txz.asc +| | |-- glew-1.5.1-x86_64-1.txt +| | |-- glew-1.5.1-x86_64-1.txz +| | |-- glew-1.5.1-x86_64-1.txz.asc +| | |-- glproto-1.4.10-noarch-1.txt +| | |-- glproto-1.4.10-noarch-1.txz +| | |-- glproto-1.4.10-noarch-1.txz.asc +| | |-- iceauth-1.0.2-x86_64-2.txt +| | |-- iceauth-1.0.2-x86_64-2.txz +| | |-- iceauth-1.0.2-x86_64-2.txz.asc +| | |-- ico-1.0.2-x86_64-2.txt +| | |-- ico-1.0.2-x86_64-2.txz +| | |-- ico-1.0.2-x86_64-2.txz.asc +| | |-- imake-1.0.2-x86_64-3.txt +| | |-- imake-1.0.2-x86_64-3.txz +| | |-- imake-1.0.2-x86_64-3.txz.asc +| | |-- inputproto-1.5.1-noarch-1.txt +| | |-- inputproto-1.5.1-noarch-1.txz +| | |-- inputproto-1.5.1-noarch-1.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- intel-gpu-tools-1.0.1-x86_64-1.txt +| | |-- intel-gpu-tools-1.0.1-x86_64-1.txz +| | |-- intel-gpu-tools-1.0.1-x86_64-1.txz.asc +| | |-- kbproto-1.0.3-noarch-2.txt +| | |-- kbproto-1.0.3-noarch-2.txz +| | |-- kbproto-1.0.3-noarch-2.txz.asc +| | |-- lbxproxy-1.0.1-x86_64-2.txt +| | |-- lbxproxy-1.0.1-x86_64-2.txz +| | |-- lbxproxy-1.0.1-x86_64-2.txz.asc +| | |-- libFS-1.0.2-x86_64-1.txt +| | |-- libFS-1.0.2-x86_64-1.txz +| | |-- libFS-1.0.2-x86_64-1.txz.asc +| | |-- libICE-1.0.5-x86_64-2.txt +| | |-- libICE-1.0.5-x86_64-2.txz +| | |-- libICE-1.0.5-x86_64-2.txz.asc +| | |-- libSM-1.1.0-x86_64-1.txt +| | |-- libSM-1.1.0-x86_64-1.txz +| | |-- libSM-1.1.0-x86_64-1.txz.asc +| | |-- libX11-1.2.2-x86_64-1.txt +| | |-- libX11-1.2.2-x86_64-1.txz +| | |-- libX11-1.2.2-x86_64-1.txz.asc +| | |-- libXScrnSaver-1.1.3-x86_64-2.txt +| | |-- libXScrnSaver-1.1.3-x86_64-2.txz +| | |-- libXScrnSaver-1.1.3-x86_64-2.txz.asc +| | |-- libXTrap-1.0.0-x86_64-2.txt +| | |-- libXTrap-1.0.0-x86_64-2.txz +| | |-- libXTrap-1.0.0-x86_64-2.txz.asc +| | |-- libXau-1.0.4-x86_64-2.txt +| | |-- libXau-1.0.4-x86_64-2.txz +| | |-- libXau-1.0.4-x86_64-2.txz.asc +| | |-- libXaw-1.0.6-x86_64-1.txt +| | |-- libXaw-1.0.6-x86_64-1.txz +| | |-- libXaw-1.0.6-x86_64-1.txz.asc +| | |-- libXcomposite-0.4.0-x86_64-2.txt +| | |-- libXcomposite-0.4.0-x86_64-2.txz +| | |-- libXcomposite-0.4.0-x86_64-2.txz.asc +| | |-- libXcursor-1.1.9-x86_64-2.txt +| | |-- libXcursor-1.1.9-x86_64-2.txz +| | |-- libXcursor-1.1.9-x86_64-2.txz.asc +| | |-- libXdamage-1.1.1-x86_64-2.txt +| | |-- libXdamage-1.1.1-x86_64-2.txz +| | |-- libXdamage-1.1.1-x86_64-2.txz.asc +| | |-- libXdmcp-1.0.2-x86_64-2.txt +| | |-- libXdmcp-1.0.2-x86_64-2.txz +| | |-- libXdmcp-1.0.2-x86_64-2.txz.asc +| | |-- libXevie-1.0.2-x86_64-2.txt +| | |-- libXevie-1.0.2-x86_64-2.txz +| | |-- libXevie-1.0.2-x86_64-2.txz.asc +| | |-- libXext-1.0.5-x86_64-1.txt +| | |-- libXext-1.0.5-x86_64-1.txz +| | |-- libXext-1.0.5-x86_64-1.txz.asc +| | |-- libXfixes-4.0.3-x86_64-2.txt +| | |-- libXfixes-4.0.3-x86_64-2.txz +| | |-- libXfixes-4.0.3-x86_64-2.txz.asc +| | |-- libXfont-1.4.0-x86_64-1.txt +| | |-- libXfont-1.4.0-x86_64-1.txz +| | |-- libXfont-1.4.0-x86_64-1.txz.asc +| | |-- libXfontcache-1.0.4-x86_64-2.txt +| | |-- libXfontcache-1.0.4-x86_64-2.txz +| | |-- libXfontcache-1.0.4-x86_64-2.txz.asc +| | |-- libXft-2.1.13-x86_64-2.txt +| | |-- libXft-2.1.13-x86_64-2.txz +| | |-- libXft-2.1.13-x86_64-2.txz.asc +| | |-- libXi-1.2.1-x86_64-1.txt +| | |-- libXi-1.2.1-x86_64-1.txz +| | |-- libXi-1.2.1-x86_64-1.txz.asc +| | |-- libXinerama-1.0.3-x86_64-2.txt +| | |-- libXinerama-1.0.3-x86_64-2.txz +| | |-- libXinerama-1.0.3-x86_64-2.txz.asc +| | |-- libXmu-1.0.4-x86_64-2.txt +| | |-- libXmu-1.0.4-x86_64-2.txz +| | |-- libXmu-1.0.4-x86_64-2.txz.asc +| | |-- libXp-1.0.0-x86_64-2.txt +| | |-- libXp-1.0.0-x86_64-2.txz +| | |-- libXp-1.0.0-x86_64-2.txz.asc +| | |-- libXpm-3.5.7-x86_64-2.txt +| | |-- libXpm-3.5.7-x86_64-2.txz +| | |-- libXpm-3.5.7-x86_64-2.txz.asc +| | |-- libXprintAppUtil-1.0.1-x86_64-2.txt +| | |-- libXprintAppUtil-1.0.1-x86_64-2.txz +| | |-- libXprintAppUtil-1.0.1-x86_64-2.txz.asc +| | |-- libXprintUtil-1.0.1-x86_64-2.txt +| | |-- libXprintUtil-1.0.1-x86_64-2.txz +| | |-- libXprintUtil-1.0.1-x86_64-2.txz.asc +| | |-- libXrandr-1.3.0-x86_64-1.txt +| | |-- libXrandr-1.3.0-x86_64-1.txz +| | |-- libXrandr-1.3.0-x86_64-1.txz.asc +| | |-- libXrender-0.9.4-x86_64-2.txt +| | |-- libXrender-0.9.4-x86_64-2.txz +| | |-- libXrender-0.9.4-x86_64-2.txz.asc +| | |-- libXres-1.0.3-x86_64-2.txt +| | |-- libXres-1.0.3-x86_64-2.txz +| | |-- libXres-1.0.3-x86_64-2.txz.asc +| | |-- libXt-1.0.6-x86_64-1.txt +| | |-- libXt-1.0.6-x86_64-1.txz +| | |-- libXt-1.0.6-x86_64-1.txz.asc +| | |-- libXtst-1.0.3-x86_64-2.txt +| | |-- libXtst-1.0.3-x86_64-2.txz +| | |-- libXtst-1.0.3-x86_64-2.txz.asc +| | |-- libXv-1.0.4-x86_64-2.txt +| | |-- libXv-1.0.4-x86_64-2.txz +| | |-- libXv-1.0.4-x86_64-2.txz.asc +| | |-- libXvMC-1.0.4-x86_64-2.txt +| | |-- libXvMC-1.0.4-x86_64-2.txz +| | |-- libXvMC-1.0.4-x86_64-2.txz.asc +| | |-- libXxf86dga-1.0.2-x86_64-2.txt +| | |-- libXxf86dga-1.0.2-x86_64-2.txz +| | |-- libXxf86dga-1.0.2-x86_64-2.txz.asc +| | |-- libXxf86misc-1.0.1-x86_64-2.txt +| | |-- libXxf86misc-1.0.1-x86_64-2.txz +| | |-- libXxf86misc-1.0.1-x86_64-2.txz.asc +| | |-- libXxf86vm-1.0.2-x86_64-2.txt +| | |-- libXxf86vm-1.0.2-x86_64-2.txz +| | |-- libXxf86vm-1.0.2-x86_64-2.txz.asc +| | |-- libdmx-1.0.2-x86_64-2.txt +| | |-- libdmx-1.0.2-x86_64-2.txz +| | |-- libdmx-1.0.2-x86_64-2.txz.asc +| | |-- libdrm-2.4.12-x86_64-1.txt +| | |-- libdrm-2.4.12-x86_64-1.txz +| | |-- libdrm-2.4.12-x86_64-1.txz.asc +| | |-- liberation-fonts-ttf-1.04-noarch-1.txt +| | |-- liberation-fonts-ttf-1.04-noarch-1.txz +| | |-- liberation-fonts-ttf-1.04-noarch-1.txz.asc +| | |-- libfontenc-1.0.4-x86_64-2.txt +| | |-- libfontenc-1.0.4-x86_64-2.txz +| | |-- libfontenc-1.0.4-x86_64-2.txz.asc +| | |-- libhangul-0.0.7-x86_64-1.txt +| | |-- libhangul-0.0.7-x86_64-1.txz +| | |-- libhangul-0.0.7-x86_64-1.txz.asc +| | |-- liblbxutil-1.0.1-x86_64-2.txt +| | |-- liblbxutil-1.0.1-x86_64-2.txz +| | |-- liblbxutil-1.0.1-x86_64-2.txz.asc +| | |-- libpciaccess-0.10.6-x86_64-1.txt +| | |-- libpciaccess-0.10.6-x86_64-1.txz +| | |-- libpciaccess-0.10.6-x86_64-1.txz.asc +| | |-- libpthread-stubs-0.1-noarch-2.txt +| | |-- libpthread-stubs-0.1-noarch-2.txz +| | |-- libpthread-stubs-0.1-noarch-2.txz.asc +| | |-- libxcb-1.3-x86_64-1.txt +| | |-- libxcb-1.3-x86_64-1.txz +| | |-- libxcb-1.3-x86_64-1.txz.asc +| | |-- libxkbfile-1.0.5-x86_64-2.txt +| | |-- libxkbfile-1.0.5-x86_64-2.txz +| | |-- libxkbfile-1.0.5-x86_64-2.txz.asc +| | |-- libxkbui-1.0.2-x86_64-2.txt +| | |-- libxkbui-1.0.2-x86_64-2.txz +| | |-- libxkbui-1.0.2-x86_64-2.txz.asc +| | |-- listres-1.0.1-x86_64-2.txt +| | |-- listres-1.0.1-x86_64-2.txz +| | |-- listres-1.0.1-x86_64-2.txz.asc +| | |-- lndir-1.0.1-x86_64-2.txt +| | |-- lndir-1.0.1-x86_64-2.txz +| | |-- lndir-1.0.1-x86_64-2.txz.asc +| | |-- luit-1.0.3-x86_64-2.txt +| | |-- luit-1.0.3-x86_64-2.txz +| | |-- luit-1.0.3-x86_64-2.txz.asc +| | |-- m17n-lib-1.5.4-x86_64-1.txt +| | |-- m17n-lib-1.5.4-x86_64-1.txz +| | |-- m17n-lib-1.5.4-x86_64-1.txz.asc +| | |-- makedepend-1.0.1-x86_64-2.txt +| | |-- makedepend-1.0.1-x86_64-2.txz +| | |-- makedepend-1.0.1-x86_64-2.txz.asc +| | |-- maketag +| | |-- maketag.ez +| | |-- mesa-7.5-x86_64-1.txt +| | |-- mesa-7.5-x86_64-1.txz +| | |-- mesa-7.5-x86_64-1.txz.asc +| | |-- mkcomposecache-1.2-x86_64-2.txt +| | |-- mkcomposecache-1.2-x86_64-2.txz +| | |-- mkcomposecache-1.2-x86_64-2.txz.asc +| | |-- mkfontdir-1.0.4-noarch-2.txt +| | |-- mkfontdir-1.0.4-noarch-2.txz +| | |-- mkfontdir-1.0.4-noarch-2.txz.asc +| | |-- mkfontscale-1.0.6-x86_64-1.txt +| | |-- mkfontscale-1.0.6-x86_64-1.txz +| | |-- mkfontscale-1.0.6-x86_64-1.txz.asc +| | |-- oclock-1.0.1-x86_64-2.txt +| | |-- oclock-1.0.1-x86_64-2.txz +| | |-- oclock-1.0.1-x86_64-2.txz.asc +| | |-- pixman-0.15.18-x86_64-1.txt +| | |-- pixman-0.15.18-x86_64-1.txz +| | |-- pixman-0.15.18-x86_64-1.txz.asc +| | |-- printproto-1.0.4-noarch-2.txt +| | |-- printproto-1.0.4-noarch-2.txz +| | |-- printproto-1.0.4-noarch-2.txz.asc +| | |-- proxymngr-1.0.1-x86_64-2.txt +| | |-- proxymngr-1.0.1-x86_64-2.txz +| | |-- proxymngr-1.0.1-x86_64-2.txz.asc +| | |-- randrproto-1.3.0-noarch-1.txt +| | |-- randrproto-1.3.0-noarch-1.txz +| | |-- randrproto-1.3.0-noarch-1.txz.asc +| | |-- recordproto-1.13.2-noarch-2.txt +| | |-- recordproto-1.13.2-noarch-2.txz +| | |-- recordproto-1.13.2-noarch-2.txz.asc +| | |-- rendercheck-1.3-x86_64-2.txt +| | |-- rendercheck-1.3-x86_64-2.txz +| | |-- rendercheck-1.3-x86_64-2.txz.asc +| | |-- renderproto-0.11-noarch-1.txt +| | |-- renderproto-0.11-noarch-1.txz +| | |-- renderproto-0.11-noarch-1.txz.asc +| | |-- resourceproto-1.0.2-noarch-2.txt +| | |-- resourceproto-1.0.2-noarch-2.txz +| | |-- resourceproto-1.0.2-noarch-2.txz.asc +| | |-- rgb-1.0.3-x86_64-1.txt +| | |-- rgb-1.0.3-x86_64-1.txz +| | |-- rgb-1.0.3-x86_64-1.txz.asc +| | |-- rstart-1.0.3-x86_64-1.txt +| | |-- rstart-1.0.3-x86_64-1.txz +| | |-- rstart-1.0.3-x86_64-1.txz.asc +| | |-- sazanami-fonts-ttf-20040629-noarch-1.txt +| | |-- sazanami-fonts-ttf-20040629-noarch-1.txz +| | |-- sazanami-fonts-ttf-20040629-noarch-1.txz.asc +| | |-- scim-1.4.9-x86_64-4.txt +| | |-- scim-1.4.9-x86_64-4.txz +| | |-- scim-1.4.9-x86_64-4.txz.asc +| | |-- scim-anthy-1.2.4-x86_64-2.txt +| | |-- scim-anthy-1.2.4-x86_64-2.txz +| | |-- scim-anthy-1.2.4-x86_64-2.txz.asc +| | |-- scim-bridge-0.4.16-x86_64-4.txt +| | |-- scim-bridge-0.4.16-x86_64-4.txz +| | |-- scim-bridge-0.4.16-x86_64-4.txz.asc +| | |-- scim-hangul-0.3.2-x86_64-2.txt +| | |-- scim-hangul-0.3.2-x86_64-2.txz +| | |-- scim-hangul-0.3.2-x86_64-2.txz.asc +| | |-- scim-input-pad-0.1.2-x86_64-4.txt +| | |-- scim-input-pad-0.1.2-x86_64-4.txz +| | |-- scim-input-pad-0.1.2-x86_64-4.txz.asc +| | |-- scim-m17n-0.2.3-x86_64-1.txt +| | |-- scim-m17n-0.2.3-x86_64-1.txz +| | |-- scim-m17n-0.2.3-x86_64-1.txz.asc +| | |-- scim-pinyin-0.5.91-x86_64-2.txt +| | |-- scim-pinyin-0.5.91-x86_64-2.txz +| | |-- scim-pinyin-0.5.91-x86_64-2.txz.asc +| | |-- scim-tables-0.5.9-x86_64-3.txt +| | |-- scim-tables-0.5.9-x86_64-3.txz +| | |-- scim-tables-0.5.9-x86_64-3.txz.asc +| | |-- scripts-1.0.1-noarch-2.txt +| | |-- scripts-1.0.1-noarch-2.txz +| | |-- scripts-1.0.1-noarch-2.txz.asc +| | |-- scrnsaverproto-1.1.0-noarch-2.txt +| | |-- scrnsaverproto-1.1.0-noarch-2.txz +| | |-- scrnsaverproto-1.1.0-noarch-2.txz.asc +| | |-- sessreg-1.0.4-x86_64-1.txt +| | |-- sessreg-1.0.4-x86_64-1.txz +| | |-- sessreg-1.0.4-x86_64-1.txz.asc +| | |-- setxkbmap-1.1.0-x86_64-1.txt +| | |-- setxkbmap-1.1.0-x86_64-1.txz +| | |-- setxkbmap-1.1.0-x86_64-1.txz.asc +| | |-- showfont-1.0.2-x86_64-1.txt +| | |-- showfont-1.0.2-x86_64-1.txz +| | |-- showfont-1.0.2-x86_64-1.txz.asc +| | |-- sinhala_lklug-font-ttf-20060929-noarch-1.txt +| | |-- sinhala_lklug-font-ttf-20060929-noarch-1.txz +| | |-- sinhala_lklug-font-ttf-20060929-noarch-1.txz.asc +| | |-- smproxy-1.0.2-x86_64-2.txt +| | |-- smproxy-1.0.2-x86_64-2.txz +| | |-- smproxy-1.0.2-x86_64-2.txz.asc +| | |-- tagfile +| | |-- tibmachuni-font-ttf-1.901-noarch-1.txt +| | |-- tibmachuni-font-ttf-1.901-noarch-1.txz +| | |-- tibmachuni-font-ttf-1.901-noarch-1.txz.asc +| | |-- trapproto-3.4.3-noarch-2.txt +| | |-- trapproto-3.4.3-noarch-2.txz +| | |-- trapproto-3.4.3-noarch-2.txz.asc +| | |-- ttf-indic-fonts-0.4.7.4-noarch-1.txt +| | |-- ttf-indic-fonts-0.4.7.4-noarch-1.txz +| | |-- ttf-indic-fonts-0.4.7.4-noarch-1.txz.asc +| | |-- twm-1.0.4-x86_64-2.txt +| | |-- twm-1.0.4-x86_64-2.txz +| | |-- twm-1.0.4-x86_64-2.txz.asc +| | |-- util-macros-1.2.2-noarch-1.txt +| | |-- util-macros-1.2.2-noarch-1.txz +| | |-- util-macros-1.2.2-noarch-1.txz.asc +| | |-- videoproto-2.2.2-noarch-2.txt +| | |-- videoproto-2.2.2-noarch-2.txz +| | |-- videoproto-2.2.2-noarch-2.txz.asc +| | |-- viewres-1.0.1-x86_64-3.txt +| | |-- viewres-1.0.1-x86_64-3.txz +| | |-- viewres-1.0.1-x86_64-3.txz.asc +| | |-- wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txt +| | |-- wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz +| | |-- wqy-zenhei-font-ttf-0.8.38_1-noarch-1.txz.asc +| | |-- x11-skel-7.4-x86_64-1.txt +| | |-- x11-skel-7.4-x86_64-1.txz +| | |-- x11-skel-7.4-x86_64-1.txz.asc +| | |-- x11perf-1.5-x86_64-2.txt +| | |-- x11perf-1.5-x86_64-2.txz +| | |-- x11perf-1.5-x86_64-2.txz.asc +| | |-- xauth-1.0.3-x86_64-2.txt +| | |-- xauth-1.0.3-x86_64-2.txz +| | |-- xauth-1.0.3-x86_64-2.txz.asc +| | |-- xaw3d-1.5E-x86_64-1.txt +| | |-- xaw3d-1.5E-x86_64-1.txz +| | |-- xaw3d-1.5E-x86_64-1.txz.asc +| | |-- xbacklight-1.1-x86_64-2.txt +| | |-- xbacklight-1.1-x86_64-2.txz +| | |-- xbacklight-1.1-x86_64-2.txz.asc +| | |-- xbiff-1.0.1-x86_64-2.txt +| | |-- xbiff-1.0.1-x86_64-2.txz +| | |-- xbiff-1.0.1-x86_64-2.txz.asc +| | |-- xbitmaps-1.0.1-noarch-2.txt +| | |-- xbitmaps-1.0.1-noarch-2.txz +| | |-- xbitmaps-1.0.1-noarch-2.txz.asc +| | |-- xcalc-1.0.2-x86_64-2.txt +| | |-- xcalc-1.0.2-x86_64-2.txz +| | |-- xcalc-1.0.2-x86_64-2.txz.asc +| | |-- xcb-proto-1.5-noarch-1.txt +| | |-- xcb-proto-1.5-noarch-1.txz +| | |-- xcb-proto-1.5-noarch-1.txz.asc +| | |-- xcb-util-0.3.5-x86_64-1.txt +| | |-- xcb-util-0.3.5-x86_64-1.txz +| | |-- xcb-util-0.3.5-x86_64-1.txz.asc +| | |-- xclipboard-1.0.1-x86_64-2.txt +| | |-- xclipboard-1.0.1-x86_64-2.txz +| | |-- xclipboard-1.0.1-x86_64-2.txz.asc +| | |-- xclock-1.0.3-x86_64-2.txt +| | |-- xclock-1.0.3-x86_64-2.txz +| | |-- xclock-1.0.3-x86_64-2.txz.asc +| | |-- xcmiscproto-1.1.2-noarch-2.txt +| | |-- xcmiscproto-1.1.2-noarch-2.txz +| | |-- xcmiscproto-1.1.2-noarch-2.txz.asc +| | |-- xcmsdb-1.0.1-x86_64-2.txt +| | |-- xcmsdb-1.0.1-x86_64-2.txz +| | |-- xcmsdb-1.0.1-x86_64-2.txz.asc +| | |-- xcompmgr-1.1.4-x86_64-2.txt +| | |-- xcompmgr-1.1.4-x86_64-2.txz +| | |-- xcompmgr-1.1.4-x86_64-2.txz.asc +| | |-- xconsole-1.0.3-x86_64-2.txt +| | |-- xconsole-1.0.3-x86_64-2.txz +| | |-- xconsole-1.0.3-x86_64-2.txz.asc +| | |-- xcursor-themes-1.0.1-noarch-2.txt +| | |-- xcursor-themes-1.0.1-noarch-2.txz +| | |-- xcursor-themes-1.0.1-noarch-2.txz.asc +| | |-- xcursorgen-1.0.2-x86_64-2.txt +| | |-- xcursorgen-1.0.2-x86_64-2.txz +| | |-- xcursorgen-1.0.2-x86_64-2.txz.asc +| | |-- xdbedizzy-1.0.2-x86_64-2.txt +| | |-- xdbedizzy-1.0.2-x86_64-2.txz +| | |-- xdbedizzy-1.0.2-x86_64-2.txz.asc +| | |-- xdg-utils-1.0.2-noarch-3.txt +| | |-- xdg-utils-1.0.2-noarch-3.txz +| | |-- xdg-utils-1.0.2-noarch-3.txz.asc +| | |-- xditview-1.0.1-x86_64-2.txt +| | |-- xditview-1.0.1-x86_64-2.txz +| | |-- xditview-1.0.1-x86_64-2.txz.asc +| | |-- xdm-1.1.8-x86_64-1.txt +| | |-- xdm-1.1.8-x86_64-1.txz +| | |-- xdm-1.1.8-x86_64-1.txz.asc +| | |-- xdpyinfo-1.0.3-x86_64-1.txt +| | |-- xdpyinfo-1.0.3-x86_64-1.txz +| | |-- xdpyinfo-1.0.3-x86_64-1.txz.asc +| | |-- xdriinfo-1.0.2-x86_64-2.txt +| | |-- xdriinfo-1.0.2-x86_64-2.txz +| | |-- xdriinfo-1.0.2-x86_64-2.txz.asc +| | |-- xedit-1.1.2-x86_64-1.txt +| | |-- xedit-1.1.2-x86_64-1.txz +| | |-- xedit-1.1.2-x86_64-1.txz.asc +| | |-- xev-1.0.3-x86_64-2.txt +| | |-- xev-1.0.3-x86_64-2.txz +| | |-- xev-1.0.3-x86_64-2.txz.asc +| | |-- xextproto-7.0.5-noarch-1.txt +| | |-- xextproto-7.0.5-noarch-1.txz +| | |-- xextproto-7.0.5-noarch-1.txz.asc +| | |-- xeyes-1.0.1-x86_64-2.txt +| | |-- xeyes-1.0.1-x86_64-2.txz +| | |-- xeyes-1.0.1-x86_64-2.txz.asc +| | |-- xf86-input-acecad-1.3.0-x86_64-1.txt +| | |-- xf86-input-acecad-1.3.0-x86_64-1.txz +| | |-- xf86-input-acecad-1.3.0-x86_64-1.txz.asc +| | |-- xf86-input-aiptek-1.2.0-x86_64-1.txt +| | |-- xf86-input-aiptek-1.2.0-x86_64-1.txz +| | |-- xf86-input-aiptek-1.2.0-x86_64-1.txz.asc +| | |-- xf86-input-citron-2.2.2-x86_64-1.txt +| | |-- xf86-input-citron-2.2.2-x86_64-1.txz +| | |-- xf86-input-citron-2.2.2-x86_64-1.txz.asc +| | |-- xf86-input-elographics-1.2.3-x86_64-2.txt +| | |-- xf86-input-elographics-1.2.3-x86_64-2.txz +| | |-- xf86-input-elographics-1.2.3-x86_64-2.txz.asc +| | |-- xf86-input-evdev-2.2.5-x86_64-1.txt +| | |-- xf86-input-evdev-2.2.5-x86_64-1.txz +| | |-- xf86-input-evdev-2.2.5-x86_64-1.txz.asc +| | |-- xf86-input-fpit-1.3.0-x86_64-1.txt +| | |-- xf86-input-fpit-1.3.0-x86_64-1.txz +| | |-- xf86-input-fpit-1.3.0-x86_64-1.txz.asc +| | |-- xf86-input-hyperpen-1.3.0-x86_64-1.txt +| | |-- xf86-input-hyperpen-1.3.0-x86_64-1.txz +| | |-- xf86-input-hyperpen-1.3.0-x86_64-1.txz.asc +| | |-- xf86-input-joystick-1.4.0-x86_64-1.txt +| | |-- xf86-input-joystick-1.4.0-x86_64-1.txz +| | |-- xf86-input-joystick-1.4.0-x86_64-1.txz.asc +| | |-- xf86-input-keyboard-1.3.2-x86_64-1.txt +| | |-- xf86-input-keyboard-1.3.2-x86_64-1.txz +| | |-- xf86-input-keyboard-1.3.2-x86_64-1.txz.asc +| | |-- xf86-input-mouse-1.4.0-x86_64-1.txt +| | |-- xf86-input-mouse-1.4.0-x86_64-1.txz +| | |-- xf86-input-mouse-1.4.0-x86_64-1.txz.asc +| | |-- xf86-input-mutouch-1.2.1-x86_64-2.txt +| | |-- xf86-input-mutouch-1.2.1-x86_64-2.txz +| | |-- xf86-input-mutouch-1.2.1-x86_64-2.txz.asc +| | |-- xf86-input-penmount-1.4.0-x86_64-1.txt +| | |-- xf86-input-penmount-1.4.0-x86_64-1.txz +| | |-- xf86-input-penmount-1.4.0-x86_64-1.txz.asc +| | |-- xf86-input-synaptics-1.1.3-x86_64-1.txt +| | |-- xf86-input-synaptics-1.1.3-x86_64-1.txz +| | |-- xf86-input-synaptics-1.1.3-x86_64-1.txz.asc +| | |-- xf86-input-vmmouse-12.6.4-x86_64-1.txt +| | |-- xf86-input-vmmouse-12.6.4-x86_64-1.txz +| | |-- xf86-input-vmmouse-12.6.4-x86_64-1.txz.asc +| | |-- xf86-input-void-1.2.0-x86_64-1.txt +| | |-- xf86-input-void-1.2.0-x86_64-1.txz +| | |-- xf86-input-void-1.2.0-x86_64-1.txz.asc +| | |-- xf86-video-apm-1.2.2-x86_64-1.txt +| | |-- xf86-video-apm-1.2.2-x86_64-1.txz +| | |-- xf86-video-apm-1.2.2-x86_64-1.txz.asc +| | |-- xf86-video-ark-0.7.1-x86_64-1.txt +| | |-- xf86-video-ark-0.7.1-x86_64-1.txz +| | |-- xf86-video-ark-0.7.1-x86_64-1.txz.asc +| | |-- xf86-video-ast-0.89.9-x86_64-1.txt +| | |-- xf86-video-ast-0.89.9-x86_64-1.txz +| | |-- xf86-video-ast-0.89.9-x86_64-1.txz.asc +| | |-- xf86-video-ati-6.12.2-x86_64-2.txt +| | |-- xf86-video-ati-6.12.2-x86_64-2.txz +| | |-- xf86-video-ati-6.12.2-x86_64-2.txz.asc +| | |-- xf86-video-chips-1.2.1-x86_64-1.txt +| | |-- xf86-video-chips-1.2.1-x86_64-1.txz +| | |-- xf86-video-chips-1.2.1-x86_64-1.txz.asc +| | |-- xf86-video-cirrus-1.3.2-x86_64-1.txt +| | |-- xf86-video-cirrus-1.3.2-x86_64-1.txz +| | |-- xf86-video-cirrus-1.3.2-x86_64-1.txz.asc +| | |-- xf86-video-dummy-0.3.2-x86_64-1.txt +| | |-- xf86-video-dummy-0.3.2-x86_64-1.txz +| | |-- xf86-video-dummy-0.3.2-x86_64-1.txz.asc +| | |-- xf86-video-glint-1.2.4-x86_64-1.txt +| | |-- xf86-video-glint-1.2.4-x86_64-1.txz +| | |-- xf86-video-glint-1.2.4-x86_64-1.txz.asc +| | |-- xf86-video-i128-1.3.3-x86_64-1.txt +| | |-- xf86-video-i128-1.3.3-x86_64-1.txz +| | |-- xf86-video-i128-1.3.3-x86_64-1.txz.asc +| | |-- xf86-video-i740-1.3.2-x86_64-1.txt +| | |-- xf86-video-i740-1.3.2-x86_64-1.txz +| | |-- xf86-video-i740-1.3.2-x86_64-1.txz.asc +| | |-- xf86-video-intel-2.8.0-x86_64-1.txt +| | |-- xf86-video-intel-2.8.0-x86_64-1.txz +| | |-- xf86-video-intel-2.8.0-x86_64-1.txz.asc +| | |-- xf86-video-mach64-6.8.2-x86_64-1.txt +| | |-- xf86-video-mach64-6.8.2-x86_64-1.txz +| | |-- xf86-video-mach64-6.8.2-x86_64-1.txz.asc +| | |-- xf86-video-mga-1.4.11-x86_64-1.txt +| | |-- xf86-video-mga-1.4.11-x86_64-1.txz +| | |-- xf86-video-mga-1.4.11-x86_64-1.txz.asc +| | |-- xf86-video-neomagic-1.2.4-x86_64-1.txt +| | |-- xf86-video-neomagic-1.2.4-x86_64-1.txz +| | |-- xf86-video-neomagic-1.2.4-x86_64-1.txz.asc +| | |-- xf86-video-newport-0.2.2-x86_64-1.txt +| | |-- xf86-video-newport-0.2.2-x86_64-1.txz +| | |-- xf86-video-newport-0.2.2-x86_64-1.txz.asc +| | |-- xf86-video-nv-2.1.14-x86_64-1.txt +| | |-- xf86-video-nv-2.1.14-x86_64-1.txz +| | |-- xf86-video-nv-2.1.14-x86_64-1.txz.asc +| | |-- xf86-video-openchrome-0.2.903-x86_64-2.txt +| | |-- xf86-video-openchrome-0.2.903-x86_64-2.txz +| | |-- xf86-video-openchrome-0.2.903-x86_64-2.txz.asc +| | |-- xf86-video-r128-6.8.1-x86_64-1.txt +| | |-- xf86-video-r128-6.8.1-x86_64-1.txz +| | |-- xf86-video-r128-6.8.1-x86_64-1.txz.asc +| | |-- xf86-video-radeonhd-1.2.5-x86_64-1.txt +| | |-- xf86-video-radeonhd-1.2.5-x86_64-1.txz +| | |-- xf86-video-radeonhd-1.2.5-x86_64-1.txz.asc +| | |-- xf86-video-rendition-4.2.2-x86_64-1.txt +| | |-- xf86-video-rendition-4.2.2-x86_64-1.txz +| | |-- xf86-video-rendition-4.2.2-x86_64-1.txz.asc +| | |-- xf86-video-s3-0.6.3-x86_64-1.txt +| | |-- xf86-video-s3-0.6.3-x86_64-1.txz +| | |-- xf86-video-s3-0.6.3-x86_64-1.txz.asc +| | |-- xf86-video-s3virge-1.10.4-x86_64-1.txt +| | |-- xf86-video-s3virge-1.10.4-x86_64-1.txz +| | |-- xf86-video-s3virge-1.10.4-x86_64-1.txz.asc +| | |-- xf86-video-savage-2.3.1-x86_64-1.txt +| | |-- xf86-video-savage-2.3.1-x86_64-1.txz +| | |-- xf86-video-savage-2.3.1-x86_64-1.txz.asc +| | |-- xf86-video-siliconmotion-1.7.2-x86_64-1.txt +| | |-- xf86-video-siliconmotion-1.7.2-x86_64-1.txz +| | |-- xf86-video-siliconmotion-1.7.2-x86_64-1.txz.asc +| | |-- xf86-video-sis-0.10.2-x86_64-1.txt +| | |-- xf86-video-sis-0.10.2-x86_64-1.txz +| | |-- xf86-video-sis-0.10.2-x86_64-1.txz.asc +| | |-- xf86-video-sisusb-0.9.3-x86_64-1.txt +| | |-- xf86-video-sisusb-0.9.3-x86_64-1.txz +| | |-- xf86-video-sisusb-0.9.3-x86_64-1.txz.asc +| | |-- xf86-video-tdfx-1.4.3-x86_64-1.txt +| | |-- xf86-video-tdfx-1.4.3-x86_64-1.txz +| | |-- xf86-video-tdfx-1.4.3-x86_64-1.txz.asc +| | |-- xf86-video-tga-1.2.0-x86_64-1.txt +| | |-- xf86-video-tga-1.2.0-x86_64-1.txz +| | |-- xf86-video-tga-1.2.0-x86_64-1.txz.asc +| | |-- xf86-video-trident-1.3.2-x86_64-1.txt +| | |-- xf86-video-trident-1.3.2-x86_64-1.txz +| | |-- xf86-video-trident-1.3.2-x86_64-1.txz.asc +| | |-- xf86-video-tseng-1.2.2-x86_64-1.txt +| | |-- xf86-video-tseng-1.2.2-x86_64-1.txz +| | |-- xf86-video-tseng-1.2.2-x86_64-1.txz.asc +| | |-- xf86-video-v4l-0.2.0-x86_64-2.txt +| | |-- xf86-video-v4l-0.2.0-x86_64-2.txz +| | |-- xf86-video-v4l-0.2.0-x86_64-2.txz.asc +| | |-- xf86-video-vesa-2.2.1-x86_64-1.txt +| | |-- xf86-video-vesa-2.2.1-x86_64-1.txz +| | |-- xf86-video-vesa-2.2.1-x86_64-1.txz.asc +| | |-- xf86-video-vmware-10.16.6-x86_64-1.txt +| | |-- xf86-video-vmware-10.16.6-x86_64-1.txz +| | |-- xf86-video-vmware-10.16.6-x86_64-1.txz.asc +| | |-- xf86-video-voodoo-1.2.3-x86_64-1.txt +| | |-- xf86-video-voodoo-1.2.3-x86_64-1.txz +| | |-- xf86-video-voodoo-1.2.3-x86_64-1.txz.asc +| | |-- xf86bigfontproto-1.1.2-noarch-2.txt +| | |-- xf86bigfontproto-1.1.2-noarch-2.txz +| | |-- xf86bigfontproto-1.1.2-noarch-2.txz.asc +| | |-- xf86dga-1.0.2-x86_64-2.txt +| | |-- xf86dga-1.0.2-x86_64-2.txz +| | |-- xf86dga-1.0.2-x86_64-2.txz.asc +| | |-- xf86dgaproto-2.0.3-noarch-2.txt +| | |-- xf86dgaproto-2.0.3-noarch-2.txz +| | |-- xf86dgaproto-2.0.3-noarch-2.txz.asc +| | |-- xf86driproto-2.0.4-noarch-2.txt +| | |-- xf86driproto-2.0.4-noarch-2.txz +| | |-- xf86driproto-2.0.4-noarch-2.txz.asc +| | |-- xf86miscproto-0.9.2-noarch-2.txt +| | |-- xf86miscproto-0.9.2-noarch-2.txz +| | |-- xf86miscproto-0.9.2-noarch-2.txz.asc +| | |-- xf86rushproto-1.1.2-noarch-2.txt +| | |-- xf86rushproto-1.1.2-noarch-2.txz +| | |-- xf86rushproto-1.1.2-noarch-2.txz.asc +| | |-- xf86vidmodeproto-2.2.2-noarch-2.txt +| | |-- xf86vidmodeproto-2.2.2-noarch-2.txz +| | |-- xf86vidmodeproto-2.2.2-noarch-2.txz.asc +| | |-- xfd-1.0.1-x86_64-2.txt +| | |-- xfd-1.0.1-x86_64-2.txz +| | |-- xfd-1.0.1-x86_64-2.txz.asc +| | |-- xfindproxy-1.0.1-x86_64-2.txt +| | |-- xfindproxy-1.0.1-x86_64-2.txz +| | |-- xfindproxy-1.0.1-x86_64-2.txz.asc +| | |-- xfontsel-1.0.2-x86_64-2.txt +| | |-- xfontsel-1.0.2-x86_64-2.txz +| | |-- xfontsel-1.0.2-x86_64-2.txz.asc +| | |-- xfs-1.1.0-x86_64-1.txt +| | |-- xfs-1.1.0-x86_64-1.txz +| | |-- xfs-1.1.0-x86_64-1.txz.asc +| | |-- xfsinfo-1.0.2-x86_64-1.txt +| | |-- xfsinfo-1.0.2-x86_64-1.txz +| | |-- xfsinfo-1.0.2-x86_64-1.txz.asc +| | |-- xfwp-1.0.1-x86_64-2.txt +| | |-- xfwp-1.0.1-x86_64-2.txz +| | |-- xfwp-1.0.1-x86_64-2.txz.asc +| | |-- xgamma-1.0.2-x86_64-2.txt +| | |-- xgamma-1.0.2-x86_64-2.txz +| | |-- xgamma-1.0.2-x86_64-2.txz.asc +| | |-- xgc-1.0.1-x86_64-2.txt +| | |-- xgc-1.0.1-x86_64-2.txz +| | |-- xgc-1.0.1-x86_64-2.txz.asc +| | |-- xhost-1.0.2-x86_64-2.txt +| | |-- xhost-1.0.2-x86_64-2.txz +| | |-- xhost-1.0.2-x86_64-2.txz.asc +| | |-- xineramaproto-1.1.2-noarch-2.txt +| | |-- xineramaproto-1.1.2-noarch-2.txz +| | |-- xineramaproto-1.1.2-noarch-2.txz.asc +| | |-- xinit-1.1.1-x86_64-1.txt +| | |-- xinit-1.1.1-x86_64-1.txz +| | |-- xinit-1.1.1-x86_64-1.txz.asc +| | |-- xinput-1.4.2-x86_64-1.txt +| | |-- xinput-1.4.2-x86_64-1.txz +| | |-- xinput-1.4.2-x86_64-1.txz.asc +| | |-- xkbcomp-1.1.0-x86_64-1.txt +| | |-- xkbcomp-1.1.0-x86_64-1.txz +| | |-- xkbcomp-1.1.0-x86_64-1.txz.asc +| | |-- xkbevd-1.0.2-x86_64-2.txt +| | |-- xkbevd-1.0.2-x86_64-2.txz +| | |-- xkbevd-1.0.2-x86_64-2.txz.asc +| | |-- xkbprint-1.0.1-x86_64-2.txt +| | |-- xkbprint-1.0.1-x86_64-2.txz +| | |-- xkbprint-1.0.1-x86_64-2.txz.asc +| | |-- xkbutils-1.0.1-x86_64-2.txt +| | |-- xkbutils-1.0.1-x86_64-2.txz +| | |-- xkbutils-1.0.1-x86_64-2.txz.asc +| | |-- xkeyboard-config-1.6-noarch-1.txt +| | |-- xkeyboard-config-1.6-noarch-1.txz +| | |-- xkeyboard-config-1.6-noarch-1.txz.asc +| | |-- xkill-1.0.1-x86_64-2.txt +| | |-- xkill-1.0.1-x86_64-2.txz +| | |-- xkill-1.0.1-x86_64-2.txz.asc +| | |-- xload-1.0.2-x86_64-2.txt +| | |-- xload-1.0.2-x86_64-2.txz +| | |-- xload-1.0.2-x86_64-2.txz.asc +| | |-- xlogo-1.0.1-x86_64-2.txt +| | |-- xlogo-1.0.1-x86_64-2.txz +| | |-- xlogo-1.0.1-x86_64-2.txz.asc +| | |-- xlsatoms-1.0.1-x86_64-2.txt +| | |-- xlsatoms-1.0.1-x86_64-2.txz +| | |-- xlsatoms-1.0.1-x86_64-2.txz.asc +| | |-- xlsclients-1.0.1-x86_64-2.txt +| | |-- xlsclients-1.0.1-x86_64-2.txz +| | |-- xlsclients-1.0.1-x86_64-2.txz.asc +| | |-- xlsfonts-1.0.2-x86_64-2.txt +| | |-- xlsfonts-1.0.2-x86_64-2.txz +| | |-- xlsfonts-1.0.2-x86_64-2.txz.asc +| | |-- xmag-1.0.2-x86_64-2.txt +| | |-- xmag-1.0.2-x86_64-2.txz +| | |-- xmag-1.0.2-x86_64-2.txz.asc +| | |-- xman-1.0.3-x86_64-2.txt +| | |-- xman-1.0.3-x86_64-2.txz +| | |-- xman-1.0.3-x86_64-2.txz.asc +| | |-- xmessage-1.0.2-x86_64-2.txt +| | |-- xmessage-1.0.2-x86_64-2.txz +| | |-- xmessage-1.0.2-x86_64-2.txz.asc +| | |-- xmh-1.0.1-x86_64-2.txt +| | |-- xmh-1.0.1-x86_64-2.txz +| | |-- xmh-1.0.1-x86_64-2.txz.asc +| | |-- xmodmap-1.0.3-x86_64-2.txt +| | |-- xmodmap-1.0.3-x86_64-2.txz +| | |-- xmodmap-1.0.3-x86_64-2.txz.asc +| | |-- xmore-1.0.1-x86_64-2.txt +| | |-- xmore-1.0.1-x86_64-2.txz +| | |-- xmore-1.0.1-x86_64-2.txz.asc +| | |-- xorg-cf-files-1.0.2-noarch-3.txt +| | |-- xorg-cf-files-1.0.2-noarch-3.txz +| | |-- xorg-cf-files-1.0.2-noarch-3.txz.asc +| | |-- xorg-docs-1.4-noarch-2.txt +| | |-- xorg-docs-1.4-noarch-2.txz +| | |-- xorg-docs-1.4-noarch-2.txz.asc +| | |-- xorg-server-1.6.3-x86_64-1.txt +| | |-- xorg-server-1.6.3-x86_64-1.txz +| | |-- xorg-server-1.6.3-x86_64-1.txz.asc +| | |-- xorg-server-xephyr-1.6.3-x86_64-1.txt +| | |-- xorg-server-xephyr-1.6.3-x86_64-1.txz +| | |-- xorg-server-xephyr-1.6.3-x86_64-1.txz.asc +| | |-- xorg-server-xnest-1.6.3-x86_64-1.txt +| | |-- xorg-server-xnest-1.6.3-x86_64-1.txz +| | |-- xorg-server-xnest-1.6.3-x86_64-1.txz.asc +| | |-- xorg-server-xvfb-1.6.3-x86_64-1.txt +| | |-- xorg-server-xvfb-1.6.3-x86_64-1.txz +| | |-- xorg-server-xvfb-1.6.3-x86_64-1.txz.asc +| | |-- xorg-sgml-doctools-1.2-noarch-2.txt +| | |-- xorg-sgml-doctools-1.2-noarch-2.txz +| | |-- xorg-sgml-doctools-1.2-noarch-2.txz.asc +| | |-- xplsprinters-1.0.1-x86_64-2.txt +| | |-- xplsprinters-1.0.1-x86_64-2.txz +| | |-- xplsprinters-1.0.1-x86_64-2.txz.asc +| | |-- xpr-1.0.2-x86_64-2.txt +| | |-- xpr-1.0.2-x86_64-2.txz +| | |-- xpr-1.0.2-x86_64-2.txz.asc +| | |-- xprehashprinterlist-1.0.1-x86_64-2.txt +| | |-- xprehashprinterlist-1.0.1-x86_64-2.txz +| | |-- xprehashprinterlist-1.0.1-x86_64-2.txz.asc +| | |-- xprop-1.0.4-x86_64-2.txt +| | |-- xprop-1.0.4-x86_64-2.txz +| | |-- xprop-1.0.4-x86_64-2.txz.asc +| | |-- xproto-7.0.15-noarch-1.txt +| | |-- xproto-7.0.15-noarch-1.txz +| | |-- xproto-7.0.15-noarch-1.txz.asc +| | |-- xproxymanagementprotocol-1.0.2-noarch-2.txt +| | |-- xproxymanagementprotocol-1.0.2-noarch-2.txz +| | |-- xproxymanagementprotocol-1.0.2-noarch-2.txz.asc +| | |-- xpyb-1.1-x86_64-1.txt +| | |-- xpyb-1.1-x86_64-1.txz +| | |-- xpyb-1.1-x86_64-1.txz.asc +| | |-- xrandr-1.3.0-x86_64-1.txt +| | |-- xrandr-1.3.0-x86_64-1.txz +| | |-- xrandr-1.3.0-x86_64-1.txz.asc +| | |-- xrdb-1.0.5-x86_64-2.txt +| | |-- xrdb-1.0.5-x86_64-2.txz +| | |-- xrdb-1.0.5-x86_64-2.txz.asc +| | |-- xrefresh-1.0.2-x86_64-2.txt +| | |-- xrefresh-1.0.2-x86_64-2.txz +| | |-- xrefresh-1.0.2-x86_64-2.txz.asc +| | |-- xscope-1.1-x86_64-1.txt +| | |-- xscope-1.1-x86_64-1.txz +| | |-- xscope-1.1-x86_64-1.txz.asc +| | |-- xset-1.0.4-x86_64-2.txt +| | |-- xset-1.0.4-x86_64-2.txz +| | |-- xset-1.0.4-x86_64-2.txz.asc +| | |-- xsetmode-1.0.0-x86_64-2.txt +| | |-- xsetmode-1.0.0-x86_64-2.txz +| | |-- xsetmode-1.0.0-x86_64-2.txz.asc +| | |-- xsetpointer-1.0.1-x86_64-2.txt +| | |-- xsetpointer-1.0.1-x86_64-2.txz +| | |-- xsetpointer-1.0.1-x86_64-2.txz.asc +| | |-- xsetroot-1.0.2-x86_64-2.txt +| | |-- xsetroot-1.0.2-x86_64-2.txz +| | |-- xsetroot-1.0.2-x86_64-2.txz.asc +| | |-- xsm-1.0.1-x86_64-2.txt +| | |-- xsm-1.0.1-x86_64-2.txz +| | |-- xsm-1.0.1-x86_64-2.txz.asc +| | |-- xstdcmap-1.0.1-x86_64-2.txt +| | |-- xstdcmap-1.0.1-x86_64-2.txz +| | |-- xstdcmap-1.0.1-x86_64-2.txz.asc +| | |-- xterm-243-x86_64-2.txt +| | |-- xterm-243-x86_64-2.txz +| | |-- xterm-243-x86_64-2.txz.asc +| | |-- xtrans-1.2.4-noarch-1.txt +| | |-- xtrans-1.2.4-noarch-1.txz +| | |-- xtrans-1.2.4-noarch-1.txz.asc +| | |-- xtrap-1.0.2-x86_64-2.txt +| | |-- xtrap-1.0.2-x86_64-2.txz +| | |-- xtrap-1.0.2-x86_64-2.txz.asc +| | |-- xvidtune-1.0.1-x86_64-2.txt +| | |-- xvidtune-1.0.1-x86_64-2.txz +| | |-- xvidtune-1.0.1-x86_64-2.txz.asc +| | |-- xvinfo-1.0.2-x86_64-2.txt +| | |-- xvinfo-1.0.2-x86_64-2.txz +| | |-- xvinfo-1.0.2-x86_64-2.txz.asc +| | |-- xwd-1.0.2-x86_64-1.txt +| | |-- xwd-1.0.2-x86_64-1.txz +| | |-- xwd-1.0.2-x86_64-1.txz.asc +| | |-- xwininfo-1.0.4-x86_64-1.txt +| | |-- xwininfo-1.0.4-x86_64-1.txz +| | |-- xwininfo-1.0.4-x86_64-1.txz.asc +| | |-- xwud-1.0.1-x86_64-2.txt +| | |-- xwud-1.0.1-x86_64-2.txz +| | `-- xwud-1.0.1-x86_64-2.txz.asc +| |-- xap +| | |-- MPlayer-r29390-x86_64-1.txt +| | |-- MPlayer-r29390-x86_64-1.txz +| | |-- MPlayer-r29390-x86_64-1.txz.asc +| | |-- audacious-1.5.1-x86_64-3.txt +| | |-- audacious-1.5.1-x86_64-3.txz +| | |-- audacious-1.5.1-x86_64-3.txz.asc +| | |-- audacious-plugins-1.5.1-x86_64-4.txt +| | |-- audacious-plugins-1.5.1-x86_64-4.txz +| | |-- audacious-plugins-1.5.1-x86_64-4.txz.asc +| | |-- blackbox-0.65.0-x86_64-4.txt +| | |-- blackbox-0.65.0-x86_64-4.txz +| | |-- blackbox-0.65.0-x86_64-4.txz.asc +| | |-- electricsheep-20090306-x86_64-2.txt +| | |-- electricsheep-20090306-x86_64-2.txz +| | |-- electricsheep-20090306-x86_64-2.txz.asc +| | |-- fluxbox-1.1.1-x86_64-1.txt +| | |-- fluxbox-1.1.1-x86_64-1.txz +| | |-- fluxbox-1.1.1-x86_64-1.txz.asc +| | |-- fvwm-2.4.20-x86_64-1.txt +| | |-- fvwm-2.4.20-x86_64-1.txz +| | |-- fvwm-2.4.20-x86_64-1.txz.asc +| | |-- gftp-2.0.19-x86_64-2.txt +| | |-- gftp-2.0.19-x86_64-2.txz +| | |-- gftp-2.0.19-x86_64-2.txz.asc +| | |-- gimp-2.6.6-x86_64-2.txt +| | |-- gimp-2.6.6-x86_64-2.txz +| | |-- gimp-2.6.6-x86_64-2.txz.asc +| | |-- gkrellm-2.3.2-x86_64-1.txt +| | |-- gkrellm-2.3.2-x86_64-1.txz +| | |-- gkrellm-2.3.2-x86_64-1.txz.asc +| | |-- gnuchess-5.07-x86_64-4.txt +| | |-- gnuchess-5.07-x86_64-4.txz +| | |-- gnuchess-5.07-x86_64-4.txz.asc +| | |-- gnuplot-4.2.5-x86_64-1.txt +| | |-- gnuplot-4.2.5-x86_64-1.txz +| | |-- gnuplot-4.2.5-x86_64-1.txz.asc +| | |-- gqview-2.1.5-x86_64-2.txt +| | |-- gqview-2.1.5-x86_64-2.txz +| | |-- gqview-2.1.5-x86_64-2.txz.asc +| | |-- gucharmap-2.26.2-x86_64-1.txt +| | |-- gucharmap-2.26.2-x86_64-1.txz +| | |-- gucharmap-2.26.2-x86_64-1.txz.asc +| | |-- gv-3.6.7-x86_64-1.txt +| | |-- gv-3.6.7-x86_64-1.txz +| | |-- gv-3.6.7-x86_64-1.txz.asc +| | |-- gxine-0.5.903-x86_64-2.txt +| | |-- gxine-0.5.903-x86_64-2.txz +| | |-- gxine-0.5.903-x86_64-2.txz.asc +| | |-- imagemagick-6.5.3_3-x86_64-1.txt +| | |-- imagemagick-6.5.3_3-x86_64-1.txz +| | |-- imagemagick-6.5.3_3-x86_64-1.txz.asc +| | |-- install-packages +| | |-- install.end +| | |-- maketag +| | |-- maketag.ez +| | |-- mozilla-firefox-3.5.2-x86_64-1.txt +| | |-- mozilla-firefox-3.5.2-x86_64-1.txz +| | |-- mozilla-firefox-3.5.2-x86_64-1.txz.asc +| | |-- mozilla-thunderbird-2.0.0.23-x86_64-1.txt +| | |-- mozilla-thunderbird-2.0.0.23-x86_64-1.txz +| | |-- mozilla-thunderbird-2.0.0.23-x86_64-1.txz.asc +| | |-- pan-0.133-x86_64-1.txt +| | |-- pan-0.133-x86_64-1.txz +| | |-- pan-0.133-x86_64-1.txz.asc +| | |-- pidgin-2.5.9-x86_64-1.txt +| | |-- pidgin-2.5.9-x86_64-1.txz +| | |-- pidgin-2.5.9-x86_64-1.txz.asc +| | |-- rdesktop-1.6.0-x86_64-1.txt +| | |-- rdesktop-1.6.0-x86_64-1.txz +| | |-- rdesktop-1.6.0-x86_64-1.txz.asc +| | |-- rxvt-2.7.10-x86_64-4.txt +| | |-- rxvt-2.7.10-x86_64-4.txz +| | |-- rxvt-2.7.10-x86_64-4.txz.asc +| | |-- sane-1.0.19-x86_64-4.txt +| | |-- sane-1.0.19-x86_64-4.txz +| | |-- sane-1.0.19-x86_64-4.txz.asc +| | |-- seamonkey-1.1.17-x86_64-1.txt +| | |-- seamonkey-1.1.17-x86_64-1.txz +| | |-- seamonkey-1.1.17-x86_64-1.txz.asc +| | |-- seyon-2.20c-x86_64-3.txt +| | |-- seyon-2.20c-x86_64-3.txz +| | |-- seyon-2.20c-x86_64-3.txz.asc +| | |-- tagfile +| | |-- thunar-volman-0.3.80-x86_64-1.txt +| | |-- thunar-volman-0.3.80-x86_64-1.txz +| | |-- thunar-volman-0.3.80-x86_64-1.txz.asc +| | |-- vim-gvim-7.2.245-x86_64-1.txt +| | |-- vim-gvim-7.2.245-x86_64-1.txz +| | |-- vim-gvim-7.2.245-x86_64-1.txz.asc +| | |-- windowmaker-20060427cvs-x86_64-2.txt +| | |-- windowmaker-20060427cvs-x86_64-2.txz +| | |-- windowmaker-20060427cvs-x86_64-2.txz.asc +| | |-- x11-ssh-askpass-1.2.4.1-x86_64-1.txt +| | |-- x11-ssh-askpass-1.2.4.1-x86_64-1.txz +| | |-- x11-ssh-askpass-1.2.4.1-x86_64-1.txz.asc +| | |-- x3270-3.3.7p8-x86_64-1.txt +| | |-- x3270-3.3.7p8-x86_64-1.txz +| | |-- x3270-3.3.7p8-x86_64-1.txz.asc +| | |-- xchat-2.8.6-x86_64-3.txt +| | |-- xchat-2.8.6-x86_64-3.txz +| | |-- xchat-2.8.6-x86_64-3.txz.asc +| | |-- xfce-4.6.1-x86_64-5.txt +| | |-- xfce-4.6.1-x86_64-5.txz +| | |-- xfce-4.6.1-x86_64-5.txz.asc +| | |-- xfce4-power-manager-0.6.6-x86_64-1.txt +| | |-- xfce4-power-manager-0.6.6-x86_64-1.txz +| | |-- xfce4-power-manager-0.6.6-x86_64-1.txz.asc +| | |-- xfractint-20.04p09-x86_64-1.txt +| | |-- xfractint-20.04p09-x86_64-1.txz +| | |-- xfractint-20.04p09-x86_64-1.txz.asc +| | |-- xgames-0.3-x86_64-2.txt +| | |-- xgames-0.3-x86_64-2.txz +| | |-- xgames-0.3-x86_64-2.txz.asc +| | |-- xine-lib-1.1.16.3-x86_64-5.txt +| | |-- xine-lib-1.1.16.3-x86_64-5.txz +| | |-- xine-lib-1.1.16.3-x86_64-5.txz.asc +| | |-- xine-ui-0.99.5-x86_64-2.txt +| | |-- xine-ui-0.99.5-x86_64-2.txz +| | |-- xine-ui-0.99.5-x86_64-2.txz.asc +| | |-- xlockmore-5.28-x86_64-1.txt +| | |-- xlockmore-5.28-x86_64-1.txz +| | |-- xlockmore-5.28-x86_64-1.txz.asc +| | |-- xmms-1.2.11-x86_64-3.txt +| | |-- xmms-1.2.11-x86_64-3.txz +| | |-- xmms-1.2.11-x86_64-3.txz.asc +| | |-- xpaint-2.7.8.1-x86_64-2.txt +| | |-- xpaint-2.7.8.1-x86_64-2.txz +| | |-- xpaint-2.7.8.1-x86_64-2.txz.asc +| | |-- xpdf-3.02pl3-x86_64-1.txt +| | |-- xpdf-3.02pl3-x86_64-1.txz +| | |-- xpdf-3.02pl3-x86_64-1.txz.asc +| | |-- xsane-0.996-x86_64-1.txt +| | |-- xsane-0.996-x86_64-1.txz +| | |-- xsane-0.996-x86_64-1.txz.asc +| | |-- xscreensaver-5.08-x86_64-2.txt +| | |-- xscreensaver-5.08-x86_64-2.txz +| | |-- xscreensaver-5.08-x86_64-2.txz.asc +| | |-- xv-3.10a-x86_64-5.txt +| | |-- xv-3.10a-x86_64-5.txz +| | |-- xv-3.10a-x86_64-5.txz.asc +| | |-- xxgdb-1.12-x86_64-2.txt +| | |-- xxgdb-1.12-x86_64-2.txz +| | `-- xxgdb-1.12-x86_64-2.txz.asc +| `-- y +| |-- bsd-games-2.13-x86_64-9.txt +| |-- bsd-games-2.13-x86_64-9.txz +| |-- bsd-games-2.13-x86_64-9.txz.asc +| |-- install-packages +| |-- install.end +| |-- maketag +| |-- maketag.ez +| `-- tagfile +|-- source +| |-- CHECKSUMS.md5 +| |-- CHECKSUMS.md5.asc +| |-- FILE_LIST +| |-- MANIFEST.bz2 +| |-- a +| | |-- aaa_base +| | | |-- _aaa_base.tar.gz +| | | |-- aaa_base.SlackBuild +| | | |-- slack-desc +| | | `-- slackware-version +| | |-- aaa_elflibs +| | | |-- aaa_elflibs.SlackBuild +| | | |-- slack-desc +| | | |-- symlinks-to-tracked-libs +| | | `-- tracked-files +| | |-- aaa_terminfo +| | | |-- aaa_terminfo.SlackBuild +| | | `-- slack-desc +| | |-- acl +| | | |-- acl.SlackBuild +| | | |-- acl.destdir.diff.gz +| | | |-- acl_2.2.47-1.tar.gz +| | | `-- slack-desc +| | |-- acpid +| | | |-- acpi_handler.sh.gz +| | | |-- acpid-1.0.8.tar.bz2 +| | | |-- acpid.SlackBuild +| | | |-- default.gz +| | | |-- doinst.sh.gz +| | | |-- rc.acpid.gz +| | | `-- slack-desc +| | |-- apmd +| | | |-- apmd-3.2.2.tar.bz2 +| | | |-- apmd.SlackBuild +| | | `-- slack-desc +| | |-- attr +| | | |-- attr.SlackBuild +| | | |-- attr.destdir.diff.gz +| | | |-- attr_2.4.43-1.tar.gz +| | | |-- build +| | | `-- slack-desc +| | |-- bash +| | | |-- bash-3.1.tar.gz +| | | |-- bash.SlackBuild +| | | |-- doinst.sh.gz +| | | |-- patches +| | | | |-- bash31-001.gz +| | | | |-- bash31-002.gz +| | | | |-- bash31-003.gz +| | | | |-- bash31-004.gz +| | | | |-- bash31-005.gz +| | | | |-- bash31-006.gz +| | | | |-- bash31-007.gz +| | | | |-- bash31-008.gz +| | | | |-- bash31-009.gz +| | | | |-- bash31-010.gz +| | | | |-- bash31-011.gz +| | | | |-- bash31-012.gz +| | | | |-- bash31-013.gz +| | | | |-- bash31-014.gz +| | | | |-- bash31-015.gz +| | | | |-- bash31-016.gz +| | | | `-- bash31-017.gz +| | | `-- slack-desc +| | |-- bin +| | | |-- banners.tar.gz +| | | |-- bin.SlackBuild +| | | |-- debianutils_2.7.dsc +| | | |-- debianutils_2.7.tar.gz +| | | |-- fbset-2.1.tar.gz +| | | |-- scripts +| | | | |-- diskcopy.gz +| | | | `-- xx.gz +| | | |-- slack-desc +| | | `-- todos.tar.gz +| | |-- bzip2 +| | | |-- bzip2-1.0.4.saneso.diff.gz +| | | |-- bzip2-1.0.5.tar.gz +| | | |-- bzip2.SlackBuild +| | | `-- slack-desc +| | |-- coreutils +| | | |-- DIR_COLORS.gz +| | | |-- coreutils-7.4.tar.xz +| | | |-- coreutils-7.4.tar.xz.sig +| | | |-- coreutils-dircolors.csh.gz +| | | |-- coreutils-dircolors.sh.gz +| | | |-- coreutils.SlackBuild +| | | |-- coreutils.uname.diff.gz +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- cpio +| | | |-- cpio-2.9.gcc43.diff.gz +| | | |-- cpio-2.9.tar.bz2 +| | | |-- cpio.SlackBuild +| | | `-- slack-desc +| | |-- cryptsetup +| | | |-- cryptsetup-1.0.7.tar.bz2 +| | | |-- cryptsetup-1.0.7.tar.bz2.asc +| | | |-- cryptsetup.SlackBuild +| | | `-- slack-desc +| | |-- cups +| | | |-- cups-1.3.11-source.tar.xz +| | | |-- cups-samba-5.0rc3.tar.gz +| | | |-- cups-windows-6.0-source.tar.bz2 +| | | |-- cups.SlackBuild +| | | |-- cups.firefox.desktop.diff.gz +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- cxxlibs +| | | |-- cxxlibs.SlackBuild +| | | |-- oldgcc +| | | | |-- gcc-3.3.6.tar.bz2 +| | | | |-- gcc-3.3.6.tar.bz2.sig +| | | | `-- oldgcc.build +| | | |-- slack-desc +| | | |-- symlinks-to-tracked-libs +| | | `-- symlinks-to-tracked-libs64 +| | |-- dbus +| | | |-- dbus-1.2.14.tar.xz +| | | |-- dbus.SlackBuild +| | | |-- doinst.sh.gz +| | | |-- rc.messagebus.gz +| | | `-- slack-desc +| | |-- dcron +| | | |-- _dcron.tar.gz +| | | |-- dcron-2.3.3.crontab.diff4.gz +| | | |-- dcron-2.3.3.diff.gz +| | | |-- dcron-2.3.3.diff2.gz +| | | |-- dcron-2.3.3.diff3.gz +| | | |-- dcron-2.3.3.lsm +| | | |-- dcron-2.3.3.tar.gz +| | | |-- dcron-2.3.3.version.diff.gz +| | | |-- dcron.SlackBuild +| | | |-- dcron.fork.diff.gz +| | | |-- dcron.tmpdir.diff.gz +| | | |-- run-parts.8.gz +| | | |-- run-parts.gz +| | | `-- slack-desc +| | |-- device-mapper +| | | |-- 64-device-mapper.rules +| | | |-- device-mapper.1.02.28.tar.bz2 +| | | |-- device-mapper.SlackBuild +| | | `-- slack-desc +| | |-- devs +| | | |-- _devs.tar.gz +| | | |-- devs.SlackBuild +| | | |-- makedev.hd.diff.gz +| | | |-- makedev_2.3.1-46.2.diff.gz +| | | |-- makedev_2.3.1.hd.diff.gz +| | | |-- makedev_2.3.1.orig.tar.gz +| | | |-- makedev_2.3.1.slack.diff.gz +| | | `-- slack-desc +| | |-- dialog +| | | |-- dialog-1.1-20080819.tar.bz2 +| | | |-- dialog.SlackBuild +| | | |-- dialog.smaller.min.height.diff.gz +| | | `-- slack-desc +| | |-- dosfstools +| | | |-- dosfstools-2.11.src.tar.gz +| | | |-- dosfstools.SlackBuild +| | | `-- slack-desc +| | |-- e2fsprogs +| | | |-- doinst.sh.gz +| | | |-- e2fsprogs-1.41.8.tar.xz +| | | |-- e2fsprogs.SlackBuild +| | | `-- slack-desc +| | |-- ed +| | | |-- ed-1.3.tar.bz2 +| | | |-- ed.SlackBuild +| | | `-- slack-desc +| | |-- eject +| | | |-- eject-2.1.5.tar.bz2 +| | | |-- eject.SlackBuild +| | | `-- slack-desc +| | |-- elvis +| | | |-- elvis-2.2_0.tar.bz2 +| | | |-- elvis.SlackBuild +| | | |-- elvis.clr +| | | |-- elvis.clr.orig +| | | `-- slack-desc +| | |-- etc +| | | |-- _etc.tar.gz +| | | |-- etc.SlackBuild +| | | |-- nsswitch.conf.gz +| | | |-- slack-desc +| | | `-- termcap-BSD.gz +| | |-- file +| | | |-- file-5.03.tar.bz2 +| | | |-- file.SlackBuild +| | | |-- file.crdaregbin.magic.gz +| | | |-- file.etc.file.diff.gz +| | | |-- file.quiet.diff.gz +| | | |-- file.short.diff.gz +| | | |-- file.xz.magic.gz +| | | |-- file.zisofs.magic.gz +| | | `-- slack-desc +| | |-- findutils +| | | |-- findutils-4.4.2.tar.xz +| | | |-- findutils.SlackBuild +| | | |-- findutils.no.default.options.warnings.diff.gz +| | | |-- findutils.nolocate.diff.gz +| | | `-- slack-desc +| | |-- floppy +| | | |-- fdutils-5.4-20020222.diff.gz +| | | |-- fdutils-5.4.tar.gz +| | | |-- fdutils.mediaprm.diff.gz +| | | |-- floppy.SlackBuild +| | | |-- mediaprm +| | | |-- mtools-3.9.8.tar.gz +| | | |-- mtools.conf +| | | `-- slack-desc +| | |-- gawk +| | | |-- gawk-3.1.6.tar.bz2 +| | | |-- gawk-3.1.6.tar.bz2.sig +| | | |-- gawk.SlackBuild +| | | `-- slack-desc +| | |-- genpower +| | | |-- genpower-1.0.5.tar.gz +| | | |-- genpower.SlackBuild +| | | |-- genpower.halt.diff.gz +| | | |-- genpower.var.diff.gz +| | | `-- slack-desc +| | |-- gettext +| | | |-- gettext-0.17.tar.bz2 +| | | |-- gettext-tools.SlackBuild +| | | |-- gettext.SlackBuild +| | | |-- slack-desc +| | | `-- slack-desc.gettext-tools +| | |-- getty-ps +| | | |-- getty-ps.SlackBuild +| | | |-- getty.bugfixes.diff.gz +| | | |-- getty_ps-2.1.0.lsm +| | | |-- getty_ps-2.1.0b.tar.gz +| | | `-- slack-desc +| | |-- gpm +| | | |-- gpm-1.20.1-consolename.patch.gz +| | | |-- gpm-1.20.1-gpmopen.patch.gz +| | | |-- gpm-1.20.1-idie.patch.gz +| | | |-- gpm-1.20.1-input-defines.diff.gz +| | | |-- gpm-1.20.1-input.patch.gz +| | | |-- gpm-1.20.1-lib-silent.patch.gz +| | | |-- gpm-1.20.1-math.patch.gz +| | | |-- gpm-1.20.1-multilib.patch.gz +| | | |-- gpm-1.20.1-no-console-error.patch.gz +| | | |-- gpm-1.20.1-nodebug.patch.gz +| | | |-- gpm-1.20.1-subscript.patch.gz +| | | |-- gpm-1.20.1-weak-wgetch.patch.gz +| | | |-- gpm-1.20.1.send-noise-to-syslogs.diff.gz +| | | |-- gpm-1.20.1.tar.bz2 +| | | |-- gpm-evdev-cumulative.patch.gz +| | | |-- gpm.SlackBuild +| | | |-- gpm.evdevmakefile.patch.gz +| | | |-- inputattach.c.gz +| | | |-- mouseconfig.gz +| | | |-- setup.mouse.gz +| | | `-- slack-desc +| | |-- grep +| | | |-- grep-2.5.4.tar.bz2 +| | | |-- grep.SlackBuild +| | | `-- slack-desc +| | |-- gzip +| | | |-- gzip-1.3.12.tar.bz2 +| | | |-- gzip-1.3.12.tar.sig +| | | |-- gzip.SlackBuild +| | | `-- slack-desc +| | |-- hdparm +| | | |-- hdparm-9.3.tar.bz2 +| | | |-- hdparm.SlackBuild +| | | `-- slack-desc +| | |-- infozip +| | | |-- infozip.SlackBuild +| | | |-- slack-desc +| | | |-- unzip60.tar.xz +| | | `-- zip30.tar.xz +| | |-- inotify-tools +| | | |-- inotify-tools-3.13.tar.bz2 +| | | |-- inotify-tools.SlackBuild +| | | `-- slack-desc +| | |-- jfsutils +| | | |-- jfsutils-1.1.14.tar.bz2 +| | | |-- jfsutils.SlackBuild +| | | `-- slack-desc +| | |-- kbd +| | | |-- kbd.SlackBuild +| | | |-- setconsolefont +| | | |-- setup.setconsolefont +| | | |-- slack-desc +| | | `-- sources +| | | |-- extraf.tgz +| | | |-- kbd-1.15-keycodes-man.patch.gz +| | | |-- kbd-1.15-po.patch.gz +| | | |-- kbd-1.15-quiet_doc.patch.gz +| | | |-- kbd-1.15-resizecon-x86_64.patch.gz +| | | |-- kbd-1.15-sparc.patch.gz +| | | |-- kbd-1.15-unicode_start.patch.gz +| | | |-- kbd-1.15.tar.bz2 +| | | |-- kbd-1.15.tar.bz2.sign +| | | |-- kbd-latarcyrheb-16-fixed.tar.bz2 +| | | |-- kbd-latsun-fonts.tar.bz2 +| | | |-- nl.euro.diff.gz +| | | |-- ro_maps.tar.bz2 +| | | |-- speakup-jfw.tar.gz +| | | `-- speakupmap.map.gz +| | |-- less +| | | |-- less-418.tar.bz2 +| | | |-- less.SlackBuild +| | | |-- less.sysconfdir.diff.gz +| | | |-- lesspipe.sh.gz +| | | `-- slack-desc +| | |-- lha +| | | |-- lha-114i.tar.gz +| | | |-- lha.SlackBuild +| | | |-- lha_1.14i-10.1.diff.gz +| | | `-- slack-desc +| | |-- lilo +| | | |-- lilo-22.8.src.tar.gz +| | | |-- lilo-22.8.src.tar.gz.sig +| | | |-- lilo.SlackBuild +| | | |-- liloconfig +| | | |-- setup.liloconfig +| | | |-- slack-desc +| | | |-- slack.bmp +| | | |-- slack.dat +| | | |-- slack64.bmp +| | | `-- text.lilohelp +| | |-- logrotate +| | | |-- _logrotate.tar.gz +| | | |-- logrotate-3.7.4.tar.gz +| | | |-- logrotate.SlackBuild +| | | |-- logrotate.slackware.diff.gz +| | | `-- slack-desc +| | |-- lvm2 +| | | |-- LVM2.2.02.40.tar.bz2 +| | | |-- doinst.sh.gz +| | | |-- lvm2.SlackBuild +| | | `-- slack-desc +| | |-- mdadm +| | | |-- doinst.sh.gz +| | | |-- mdadm-2.6.4.tar.bz2 +| | | |-- mdadm-2.6.4.tar.bz2.sign +| | | |-- mdadm.SlackBuild +| | | |-- mdadm.static.small.diff.gz +| | | `-- slack-desc +| | |-- minicom +| | | |-- config.sub-x86_64.diff.gz +| | | |-- doinst.sh.gz +| | | |-- lrzsz_0.12.21-4.diff.gz +| | | |-- lrzsz_0.12.21.orig.tar.gz +| | | |-- minicom-2.1.tar.gz +| | | |-- minicom-2.1.tar.gz.asc +| | | |-- minicom.SlackBuild +| | | |-- minicom.users.gz +| | | |-- minirc.dfl.gz +| | | |-- slack-desc +| | | `-- wintcap.diff.gz +| | |-- mkinitrd +| | | |-- README.initrd +| | | |-- _initrd-tree.tar.gz +| | | |-- archive +| | | | |-- busybox-1.11.2.tar.bz2 +| | | | |-- busybox-1.12.0.tar.bz2 +| | | | |-- busybox-1.7.2.no-gc-sections.diff.gz +| | | | |-- busybox-1.7.2.remove_warning.diff.gz +| | | | |-- busybox-1.7.2.tar.bz2 +| | | | |-- busybox-1.7.2.tar.bz2.sign +| | | | |-- busybox-dot-config.1.11.2 +| | | | |-- busybox-dot-config.1.12.0 +| | | | |-- busybox-dot-config.1.12.1 +| | | | `-- busybox-dot-config.1.7.2 +| | | |-- busybox-1.12.1.tar.bz2 +| | | |-- busybox-1.12.1_inotify.diff.gz +| | | |-- busybox-dot-config +| | | |-- init +| | | |-- keymaps.tar.gz +| | | |-- mkinitrd +| | | |-- mkinitrd.8 +| | | |-- mkinitrd.SlackBuild +| | | |-- mkinitrd.conf.5 +| | | |-- mkinitrd.conf.sample +| | | |-- mkinitrd_command_generator.sh +| | | |-- mkinitrd_kernelcheck.diff +| | | `-- slack-desc +| | |-- module-init-tools +| | | |-- doinst.sh.gz +| | | |-- modprobe.favor.etc.modprobe.d.diff.gz +| | | |-- modprobe.ignore_some_suffixes.diff.gz +| | | |-- modprobe.no_sys_check.diff.gz +| | | |-- module-init-tools-3.6.tar.bz2 +| | | |-- module-init-tools.SlackBuild +| | | `-- slack-desc +| | |-- mt-st +| | | |-- _mt-st.tar.gz +| | | |-- mt-st-0.9b.tar.gz +| | | |-- mt-st.SlackBuild +| | | |-- mt-st.config.diff.gz +| | | |-- mt-st.man.diff.gz +| | | |-- mt-st.sdlt.diff.gz +| | | `-- slack-desc +| | |-- mtx +| | | |-- mtx-1.3.9.tar.gz +| | | |-- mtx.SlackBuild +| | | `-- slack-desc +| | |-- ncompress +| | | |-- ncompress-4.2.4-bssUnderflow.patch.gz +| | | |-- ncompress-4.2.4-endians.patch.gz +| | | |-- ncompress-4.2.4.tar.gz +| | | |-- ncompress.2GB.diff.gz +| | | |-- ncompress.SlackBuild +| | | |-- ncompress.filenamelen.diff.gz +| | | |-- ncompress.lfs2.diff.gz +| | | |-- ncompress.make.diff.gz +| | | |-- ncompress.zerobyteforce.diff.gz +| | | `-- slack-desc +| | |-- ntfs-3g +| | | |-- 10-ntfs-3g-policy.fdi +| | | |-- ntfs-3g-2009.4.4.tar.bz2 +| | | |-- ntfs-3g.SlackBuild +| | | `-- slack-desc +| | |-- patch +| | | |-- patch-2.5.4.tar.gz +| | | |-- patch.SlackBuild +| | | `-- slack-desc +| | |-- pciutils +| | | |-- pciutils-3.1.3.tar.bz2 +| | | |-- pciutils.SlackBuild +| | | |-- pciutils.ids.dest.diff.gz +| | | |-- pciutils.url +| | | `-- slack-desc +| | |-- pcmciautils +| | | |-- cis-cs-3.2.8.tar.gz +| | | |-- config +| | | | |-- 60-pcmcia.rules +| | | | |-- config.opts +| | | | `-- rc.pcmcia +| | | |-- doinst.sh.gz +| | | |-- pcmciautils-015.tar.bz2 +| | | |-- pcmciautils.SlackBuild +| | | `-- slack-desc +| | |-- pkgtools +| | | |-- manpages +| | | | |-- explodepkg.8 +| | | | |-- installpkg.8 +| | | | |-- makepkg.8 +| | | | |-- pkgtool.8 +| | | | |-- removepkg.8 +| | | | |-- setup.8-deprecated +| | | | `-- upgradepkg.8 +| | | |-- obsolete-scripts +| | | | |-- README +| | | | `-- setup.90.modem-device +| | | |-- pkgtools.SlackBuild +| | | |-- scripts +| | | | |-- explodepkg +| | | | |-- installpkg +| | | | |-- makebootdisk +| | | | |-- makepkg +| | | | |-- pkgtool +| | | | |-- removepkg +| | | | |-- setup.70.install-kernel +| | | | |-- setup.80.make-bootdisk +| | | | |-- setup.htmlview +| | | | |-- setup.services +| | | | `-- upgradepkg +| | | `-- slack-desc +| | |-- procps +| | | |-- procinfo-18.tar.gz +| | | |-- procinfo.gcc3.diff.gz +| | | |-- procinfo.lsm +| | | |-- procps-3.2.7-ps-eip64.diff.gz +| | | |-- procps-3.2.7.tar.gz +| | | |-- procps.SlackBuild +| | | |-- procps.nowarning.diff.gz +| | | |-- procps.w.showfrom.diff.gz +| | | |-- psmisc-22.3.tar.gz +| | | `-- slack-desc +| | |-- quota +| | | |-- quota-3.17.tar.xz +| | | |-- quota.SlackBuild +| | | `-- slack-desc +| | |-- reiserfsprogs +| | | |-- reiserfsprogs-3.6.21.tar.bz2 +| | | |-- reiserfsprogs.SlackBuild +| | | `-- slack-desc +| | |-- rpm2tgz +| | | |-- getrpmtype.tar.gz +| | | |-- rpm2targz +| | | |-- rpm2targz.README +| | | |-- rpm2tgz.SlackBuild +| | | |-- rpmoffset.c +| | | `-- slack-desc +| | |-- sdparm +| | | |-- sdparm-1.01.tar.bz2 +| | | |-- sdparm.SlackBuild +| | | `-- slack-desc +| | |-- sed +| | | |-- sed-4.1.5.tar.gz +| | | |-- sed-4.1.5.tar.gz.sig +| | | |-- sed.SlackBuild +| | | `-- slack-desc +| | |-- shadow +| | | |-- _shadow.tar.gz +| | | |-- adduser +| | | |-- shadow-4.0.3.tar.bz2 +| | | |-- shadow-4.0.3.x86_64.diff.gz +| | | |-- shadow.SlackBuild +| | | |-- shadow.gcc34.diff.gz +| | | |-- shadow.login.defs.diff.gz +| | | |-- shadow.newgrp.getlogin.gz +| | | |-- shadow.newgrp.nopam.gz +| | | |-- shadow.remove.obsolete.options.diff.gz +| | | |-- shadow.shadowconfig.diff.gz +| | | `-- slack-desc +| | |-- sharutils +| | | |-- sharutils-4.7.tar.bz2 +| | | |-- sharutils-4.7.tar.bz2.sig +| | | |-- sharutils.SlackBuild +| | | `-- slack-desc +| | |-- slocate +| | | |-- _slocate.tar.gz +| | | |-- slack-desc +| | | |-- slocate-3.1.tar.gz +| | | |-- slocate-3.1.tar.gz.sign +| | | `-- slocate.SlackBuild +| | |-- smartmontools +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- smartmontools-5.38.tar.bz2 +| | | `-- smartmontools.SlackBuild +| | |-- splitvt +| | | |-- slack-desc +| | | |-- splitvt-1.6.5.tar.gz +| | | |-- splitvt.SlackBuild +| | | `-- splitvt_1.6.5-9.diff.gz +| | |-- sysfsutils +| | | |-- slack-desc +| | | |-- sysfsutils-2.1.0.tar.bz2 +| | | `-- sysfsutils.SlackBuild +| | |-- sysklogd +| | | |-- _sysklogd.tar.gz +| | | |-- slack-desc +| | | |-- sysklogd-1.4.1-owl-syslogd-crunch_list.diff.gz +| | | |-- sysklogd-1.4.1.lsm +| | | |-- sysklogd-1.4.1.tar.gz +| | | |-- sysklogd.SlackBuild +| | | `-- sysklogd_1.4.1-20.diff.gz +| | |-- syslinux +| | | |-- slack-desc +| | | |-- syslinux-3.52.tar.bz2 +| | | |-- syslinux-3.52.tar.bz2.sign +| | | `-- syslinux.SlackBuild +| | |-- sysvinit +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- sysvinit-2.86-timeval.patch.gz +| | | |-- sysvinit-2.86.tar.gz +| | | |-- sysvinit.SlackBuild +| | | |-- sysvinit.diff.gz +| | | `-- sysvinit.pidof.rhforkseverything.diff.gz +| | |-- sysvinit-functions +| | | |-- README.functions +| | | |-- doinst.sh.gz +| | | |-- function-src-8.53.tar.bz2 +| | | |-- functions +| | | |-- slack-desc +| | | `-- sysvinit-functions.SlackBuild +| | |-- sysvinit-scripts +| | | |-- doinst.sh.gz +| | | |-- scripts +| | | | |-- fetch-rescan-scsi-bus.sh +| | | | |-- inittab +| | | | |-- rc.4 +| | | | |-- rc.6 +| | | | |-- rc.K +| | | | |-- rc.M +| | | | |-- rc.S +| | | | |-- rc.local +| | | | |-- rc.sysvinit +| | | | `-- rescan-scsi-bus.sh +| | | |-- slack-desc +| | | `-- sysvinit-scripts.SlackBuild +| | |-- tar +| | | |-- rmt.8.gz +| | | |-- slack-desc +| | | |-- tar-1.13.bzip2.diff.gz +| | | |-- tar-1.13.tar.gz +| | | |-- tar-1.22-support_txz.diff.gz +| | | |-- tar-1.22.tar.bz2 +| | | |-- tar.1.gz +| | | |-- tar.SlackBuild +| | | |-- tar.nolonezero.diff.gz +| | | `-- tar.norecordsizespam.diff.gz +| | |-- tcsh +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- tcsh-6.15.00.tar.bz2 +| | | |-- tcsh.SlackBuild +| | | `-- tcsh.nobuiltincolorls.diff.gz +| | |-- time +| | | |-- slack-desc +| | | |-- time-1.7.tar.gz +| | | `-- time.SlackBuild +| | |-- tree +| | | |-- slack-desc +| | | |-- tree-1.5.2.2.tar.bz2 +| | | `-- tree.SlackBuild +| | |-- udev +| | | |-- config +| | | | |-- modprobe.d +| | | | | |-- blacklist.conf.new +| | | | | |-- isapnp.conf.new +| | | | | |-- psmouse.conf.new +| | | | | `-- usb-controller.conf.new +| | | | |-- rc.d +| | | | | `-- rc.udev.new +| | | | |-- rules.d +| | | | | |-- 40-slackware.rules +| | | | | |-- 65-permissions.rules +| | | | | `-- 90-network.rules +| | | | |-- scripts +| | | | | `-- nethelper.sh +| | | | `-- udev.conf +| | | |-- doinst.sh.gz +| | | |-- rule_generator.diff.gz +| | | |-- slack-desc +| | | |-- udev-141.tar.bz2 +| | | |-- udev-141.tar.bz2.sign +| | | |-- udev-fixed-devices.tar.gz +| | | `-- udev.SlackBuild +| | |-- unarj +| | | |-- Makefile.gz +| | | |-- slack-desc +| | | |-- unarj.SlackBuild +| | | `-- unarj265.tar.gz +| | |-- usbutils +| | | |-- slack-desc +| | | |-- usbutils-0.82.tar.bz2 +| | | |-- usbutils.SlackBuild +| | | `-- usbutils.ids.dest.gz +| | |-- utempter +| | | |-- doinst.sh.gz +| | | |-- libutempter-1.1.4.tar.bz2 +| | | |-- libutempter-1.1.4.tar.bz2.asc +| | | |-- slack-desc +| | | `-- utempter.SlackBuild +| | |-- util-linux-ng +| | | |-- adjtimex_1.23-1.diff.gz +| | | |-- adjtimex_1.23.orig.tar.gz +| | | |-- bsdstrings.tar.gz +| | | |-- doinst.sh.gz +| | | |-- net-tools-1.60.tar.bz2 +| | | |-- net-tools.diff.gz +| | | |-- net-tools_1.60-19.diff.gz +| | | |-- scsi_ioctl.h +| | | |-- setserial-2.17.tar.gz +| | | |-- setserial-rc.serial.diff.gz +| | | |-- slack-desc +| | | |-- util-linux-ng-2.14.2.tar.bz2 +| | | |-- util-linux-ng.SlackBuild +| | | |-- util-linux-ng.fdisk-no-solaris.diff.gz +| | | |-- ziptool-1.4.0.tar.bz2 +| | | `-- ziptool-fix_build.patch.gz +| | |-- which +| | | |-- slack-desc +| | | |-- which-2.20.tar.gz +| | | |-- which-2.20.tar.gz.sig +| | | `-- which.SlackBuild +| | |-- xfsprogs +| | | |-- slack-desc +| | | |-- xfsprogs-3.0.1.tar.xz +| | | `-- xfsprogs.SlackBuild +| | |-- xz +| | | |-- slack-desc +| | | |-- xz-4.999.8beta.tar.bz2 +| | | `-- xz.SlackBuild +| | `-- zoo +| | |-- slack-desc +| | |-- zoo-2.10.tar.gz +| | |-- zoo.SlackBuild +| | `-- zoo_2.10-18.diff.gz +| |-- ap +| | |-- a2ps +| | | |-- a2ps-4.14.tar.bz2 +| | | |-- a2ps.SlackBuild +| | | |-- a2ps.a2ps_cfg.in.diff.gz +| | | |-- a2ps.diff.gz +| | | |-- psutils-1.17.tar.gz +| | | |-- psutils.destdir.diff.gz +| | | |-- psutils.diff.gz +| | | `-- slack-desc +| | |-- acct +| | | |-- acct-6.4pre1-6.diff.gz +| | | |-- acct-6.4pre1.tar.bz2 +| | | |-- acct.SlackBuild +| | | |-- acct.logdir.fhs.diff.gz +| | | `-- slack-desc +| | |-- alsa-utils +| | | |-- alsa-utils-1.0.18.tar.bz2 +| | | |-- alsa-utils.SlackBuild +| | | |-- alsa-utils.alsaconf.diff.gz +| | | |-- rc.alsa.gz +| | | `-- slack-desc +| | |-- amp +| | | |-- _amp.tar.gz +| | | |-- amp-0.7.6.tar.gz +| | | |-- amp-gcc34.diff.gz +| | | |-- amp.SlackBuild +| | | |-- license_excerpts +| | | `-- slack-desc +| | |-- ash +| | | |-- _ash.tar.gz +| | | |-- ash-0.4.0.tar.gz +| | | |-- ash.SlackBuild +| | | |-- patches +| | | | |-- ash-builtin.patch.gz +| | | | |-- ash-debian.patch.gz +| | | | |-- ash-echo.patch.gz +| | | | |-- ash-freebsd.patch.gz +| | | | |-- ash-getcwd.patch.gz +| | | | |-- ash-getopt.patch.gz +| | | | |-- ash-glob.patch.gz +| | | | |-- ash-hetio.patch.gz +| | | | |-- ash-jobs.patch.gz +| | | | |-- ash-kill.patch.gz +| | | | |-- ash-makefile.patch.gz +| | | | |-- ash-manpage.patch.gz +| | | | |-- ash-memout.patch.gz +| | | | |-- ash-misc.patch.gz +| | | | |-- ash-ppid.patch.gz +| | | | |-- ash-redir.patch.gz +| | | | |-- ash-setmode.patch.gz +| | | | |-- ash-sighup.patch.gz +| | | | |-- ash-syntax.patch.gz +| | | | |-- ash-test.patch.gz +| | | | `-- ash-times.patch.gz +| | | `-- slack-desc +| | |-- at +| | | |-- at-3.1.10.tar.bz2 +| | | |-- at.SlackBuild +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- aumix +| | | |-- aumix-2.8.tar.bz2 +| | | |-- aumix.SlackBuild +| | | |-- aumix.alsa.diff.gz +| | | `-- slack-desc +| | |-- bc +| | | |-- bc-1.06.95.tar.bz2 +| | | |-- bc-1.06.95.tar.bz2.sig +| | | |-- bc.SlackBuild +| | | `-- slack-desc +| | |-- bpe +| | | |-- bpe-2.01.00.tar.gz +| | | |-- bpe.SlackBuild +| | | `-- slack-desc +| | |-- cdparanoia +| | | |-- cdparanoia-III-10.2.src.tar.gz +| | | |-- cdparanoia-III-10.2_cdda_private.patch.gz +| | | |-- cdparanoia.SlackBuild +| | | `-- slack-desc +| | |-- cdrdao +| | | |-- cdrdao-1.2.1.tar.bz2 +| | | |-- cdrdao.SlackBuild +| | | `-- slack-desc +| | |-- cdrtools +| | | |-- cdrtools-2.01.01a57.tar.bz2 +| | | |-- cdrtools.SlackBuild +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- zisofs-tools-1.0.8.tar.bz2 +| | | `-- zisofs-tools-1.0.8.tar.bz2.sign +| | |-- cupsddk +| | | |-- cupsddk-1.2.3-source.tar.bz2 +| | | |-- cupsddk.SlackBuild +| | | `-- slack-desc +| | |-- dc3dd +| | | |-- dc3dd-6.12.3.tar.xz +| | | |-- dc3dd.SlackBuild +| | | `-- slack-desc +| | |-- diffstat +| | | |-- diffstat-1.43.tar.bz2 +| | | |-- diffstat.SlackBuild +| | | `-- slack-desc +| | |-- diffutils +| | | |-- diffutils-2.8.1.tar.gz +| | | |-- diffutils-sdiff-no-waitpid.patch.gz +| | | |-- diffutils.SlackBuild +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- dmapi +| | | |-- dmapi-2.2.10.tar.xz +| | | |-- dmapi.SlackBuild +| | | |-- dmapi.destdir.diff.gz +| | | `-- slack-desc +| | |-- dmidecode +| | | |-- dmidecode-2.10.tar.bz2 +| | | |-- dmidecode-2.10.tar.bz2.sig +| | | |-- dmidecode.SlackBuild +| | | |-- dmidecode.makefile.diff.gz +| | | `-- slack-desc +| | |-- dvd+rw-tools +| | | |-- dvd+rw-tools-7.1.tar.gz +| | | |-- dvd+rw-tools.SlackBuild +| | | |-- dvd+rw-tools.limits.h.diff.gz +| | | |-- dvd+rw-tools.url +| | | `-- slack-desc +| | |-- enscript +| | | |-- enscript-1.6.3.tar.gz +| | | |-- enscript.SlackBuild +| | | `-- slack-desc +| | |-- flac +| | | |-- flac-1.2.1.tar.bz2 +| | | |-- flac.SlackBuild +| | | |-- flac.man.diff.gz +| | | `-- slack-desc +| | |-- foomatic-filters +| | | |-- doinst.sh.gz +| | | |-- foomatic-filters-4.0.2.tar.gz +| | | |-- foomatic-filters.SlackBuild +| | | `-- slack-desc +| | |-- ghostscript +| | | |-- cidfmap.gz +| | | |-- ghostscript-8.70.tar.xz +| | | |-- ghostscript.SlackBuild +| | | `-- slack-desc +| | |-- ghostscript-fonts-std +| | | |-- doinst.sh.gz +| | | |-- ghostscript-fonts-std-8.11.tar.bz2 +| | | |-- ghostscript-fonts-std.SlackBuild +| | | `-- slack-desc +| | |-- gphoto2 +| | | |-- gphoto2-2.4.5.tar.bz2 +| | | |-- gphoto2.SlackBuild +| | | `-- slack-desc +| | |-- groff +| | | |-- groff-1.20.1.tar.bz2 +| | | |-- groff.SlackBuild +| | | |-- groff.docdir.diff.gz +| | | |-- groff.man.mdoc.local.gz +| | | `-- slack-desc +| | |-- gutenprint +| | | |-- gutenprint-5.2.4.tar.xz +| | | |-- gutenprint.SlackBuild +| | | `-- slack-desc +| | |-- hplip +| | | |-- doinst.sh.gz +| | | |-- hplip-3.9.4b.tar.bz2 +| | | |-- hplip.SlackBuild +| | | |-- hplip.prevent_segfault.diff.gz +| | | `-- slack-desc +| | |-- ispell +| | | |-- ispell-3.2.06.tar.gz +| | | |-- ispell.SlackBuild +| | | |-- ispell.diff.gz +| | | `-- slack-desc +| | |-- jed +| | | |-- jed-0.99-18.tar.bz2 +| | | |-- jed-0.99-18.tar.bz2.sig +| | | |-- jed.SlackBuild +| | | |-- jed.mouse.diff.gz +| | | |-- jed.multibyte.diff.gz +| | | `-- slack-desc +| | |-- joe +| | | |-- joe-3.5.tar.bz2 +| | | |-- joe.SlackBuild +| | | `-- slack-desc +| | |-- jove +| | | |-- jove.SlackBuild +| | | |-- jove.makefile.diff.gz +| | | |-- jove4.16.0.70.tar.gz +| | | `-- slack-desc +| | |-- ksh93 +| | | |-- CPL +| | | |-- INIT.2007-03-28.tgz +| | | |-- ast-ksh-locale.2007-03-28.tgz +| | | |-- ast-ksh.2007-03-28.tgz +| | | |-- ksh93.SlackBuild +| | | `-- slack-desc +| | |-- libx86 +| | | |-- libx86-1.1.tar.gz +| | | |-- libx86.SlackBuild +| | | |-- libx86.info +| | | |-- lrmi.c.diff.gz +| | | `-- slack-desc +| | |-- linuxdoc-tools +| | | |-- ChangeLog.txt +| | | |-- arm +| | | | `-- build +| | | |-- linuxdoc-tools.SlackBuild +| | | |-- linuxdoc-tools.build +| | | |-- postbuildfixes.sh +| | | |-- slack-desc +| | | |-- sources +| | | | |-- asciidoc-8.4.5.tar.gz +| | | | |-- docbook-dsssl-1.79.tar.bz2 +| | | | |-- docbook-dsssl-doc-1.79.tar.bz2 +| | | | |-- docbook-style-xsl-1.75.1-1.fc12.src.rpm +| | | | |-- docbook-utils-0.6.14-17.fc12.src.rpm +| | | | |-- docbook-xml-4.5.zip +| | | | |-- docbook_4.5-4.diff.gz +| | | | |-- docbook_4.5.orig.tar.gz +| | | | |-- gnome-doc-utils-0.17.2.tar.bz2 +| | | | |-- gtk-doc-1.11.tar.bz2 +| | | | |-- libsgmls-perl_1.03ii-32.diff.gz +| | | | |-- libsgmls-perl_1.03ii.orig.tar.gz +| | | | |-- linuxdoc-tools.lib64.diff +| | | | |-- linuxdoc-tools_0.9.56.tar.gz +| | | | |-- openjade-1.3.3-pre1.tar.gz +| | | | |-- opensp-1.5.2-11.fc11.src.rpm +| | | | |-- sgml-common-0.6.3-29.fc12.src.rpm +| | | | |-- source.download +| | | | `-- xmlto-0.0.22.tar.bz2 +| | | `-- trackbuild.linuxdoc-tools +| | |-- lm_sensors +| | | |-- lm_sensors-3.1.1.tar.bz2 +| | | |-- lm_sensors-3.1.1.tar.bz2.sig +| | | |-- lm_sensors.SlackBuild +| | | |-- lm_sensors.makefile.diff.gz +| | | `-- slack-desc +| | |-- lsof +| | | |-- lsof.SlackBuild +| | | |-- lsof_4.78.tar.bz2 +| | | |-- lsof_4.78.tar.bz2.sig +| | | `-- slack-desc +| | |-- lsscsi +| | | |-- lsscsi-0.22.tar.bz2 +| | | |-- lsscsi.SlackBuild +| | | |-- lsscsi.url +| | | `-- slack-desc +| | |-- madplay +| | | |-- madplay-0.15.2b.tar.gz +| | | |-- madplay-0.15.2b.tar.gz.sign +| | | |-- madplay.SlackBuild +| | | `-- slack-desc +| | |-- man +| | | |-- doinst.sh.gz +| | | |-- man-1.6f.nroff.mandoc.diff.gz +| | | |-- man-1.6f.tar.bz2 +| | | |-- man.SlackBuild +| | | `-- slack-desc +| | |-- man-pages +| | | |-- doinst.sh.gz +| | | |-- man-pages-3.22.tar.bz2 +| | | |-- man-pages-posix-2003-a.tar.bz2 +| | | |-- man-pages.SlackBuild +| | | |-- slack-desc +| | | `-- whatis.sample.xz +| | |-- mc +| | | |-- mc-20090714_git.tar.xz +| | | |-- mc.SlackBuild +| | | |-- profile.d +| | | | |-- mc-wrapper.csh +| | | | |-- mc-wrapper.sh +| | | | |-- mc.csh +| | | | `-- mc.sh +| | | `-- slack-desc +| | |-- most +| | | |-- most-5.0.0a.tar.bz2 +| | | |-- most.SlackBuild +| | | `-- slack-desc +| | |-- mpg321 +| | | |-- mpg321-0.2.10.tar.gz +| | | |-- mpg321.SlackBuild +| | | `-- slack-desc +| | |-- mysql +| | | |-- doinst.sh.gz +| | | |-- mirror-url +| | | |-- mysql-5.0.84.tar.xz +| | | |-- mysql-embedded.build +| | | |-- mysql.SlackBuild +| | | |-- rc.mysqld.gz +| | | `-- slack-desc +| | |-- nano +| | | |-- nano-2.0.9.tar.bz2 +| | | |-- nano.SlackBuild +| | | `-- slack-desc +| | |-- normalize +| | | |-- normalize-0.7.7.tar.bz2 +| | | |-- normalize.SlackBuild +| | | `-- slack-desc +| | |-- ntfsprogs +| | | |-- ntfsprogs-2.0.0.tar.bz2 +| | | |-- ntfsprogs.SlackBuild +| | | `-- slack-desc +| | |-- pm-utils +| | | |-- README.SLACKWARE +| | | |-- pm-utils-1.2.5.tar.xz +| | | |-- pm-utils.SlackBuild +| | | |-- pm-utils.url +| | | `-- slack-desc +| | |-- radeontool +| | | |-- radeontool-1.5.tar.gz +| | | |-- radeontool.SlackBuild +| | | |-- radeontool.c.diff.gz +| | | |-- radeontool.info +| | | `-- slack-desc +| | |-- rexima +| | | |-- rexima-1.4.tar.gz +| | | |-- rexima.SlackBuild +| | | `-- slack-desc +| | |-- rpm +| | | |-- Packages.gz +| | | |-- doinst.sh.gz +| | | |-- rpm-4.7.0.tar.xz +| | | |-- rpm.SlackBuild +| | | `-- slack-desc +| | |-- rzip +| | | |-- rzip-2.1.tar.gz +| | | |-- rzip.SlackBuild +| | | `-- slack-desc +| | |-- sc +| | | |-- _sc.tar.gz +| | | |-- sc-7.16.lsm +| | | |-- sc-7.16.tar.gz +| | | |-- sc-gcc34.diff.gz +| | | |-- sc-malloc.diff.gz +| | | |-- sc.SlackBuild +| | | `-- slack-desc +| | |-- screen +| | | |-- screen-4.0.3.tar.bz2 +| | | |-- screen.SlackBuild +| | | `-- slack-desc +| | |-- seejpeg +| | | |-- _seejpeg.tar.gz +| | | |-- libjpeg-6a.tar.gz +| | | |-- seejpeg-1.10.diff.gz +| | | |-- seejpeg-1.10.lsm +| | | |-- seejpeg-1.10.tgz +| | | |-- seejpeg.SlackBuild +| | | `-- slack-desc +| | |-- slackpkg +| | | `-- README +| | |-- sox +| | | |-- slack-desc +| | | |-- sox-14.3.0.tar.xz +| | | `-- sox.SlackBuild +| | |-- sqlite +| | | |-- COPYRIGHT.gz +| | | |-- slack-desc +| | | |-- sqlite-3.6.14.2.tar.xz +| | | `-- sqlite.SlackBuild +| | |-- sudo +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- sudo-1.6.8p12.tar.gz +| | | |-- sudo-1.6.8p12.tar.gz.sig +| | | `-- sudo.SlackBuild +| | |-- sysstat +| | | |-- slack-desc +| | | |-- sysstat-7.0.0.tar.bz2 +| | | |-- sysstat.SlackBuild +| | | |-- sysstat.etc.sysstat.diff.gz +| | | |-- sysstat.prefix.usr.diff.gz +| | | `-- sysstat.var.run.diff.gz +| | |-- texinfo +| | | |-- dir.gz +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- texinfo-4.13a.tar.bz2 +| | | `-- texinfo.SlackBuild +| | |-- vbetool +| | | |-- slack-desc +| | | |-- vbetool-1.1.tar.gz +| | | |-- vbetool.SlackBuild +| | | `-- vbetool.info +| | |-- vim +| | | |-- ctags-5.7.tar.gz +| | | |-- doinst.sh.gz +| | | |-- gvim.desktop +| | | |-- gvim.png +| | | |-- patches +| | | | |-- 7.2.001.gz +| | | | |-- 7.2.002.gz +| | | | |-- 7.2.003.gz +| | | | |-- 7.2.004.gz +| | | | |-- 7.2.005.gz +| | | | |-- 7.2.006.gz +| | | | |-- 7.2.007.gz +| | | | |-- 7.2.008.gz +| | | | |-- 7.2.009.gz +| | | | |-- 7.2.010.gz +| | | | |-- 7.2.011.gz +| | | | |-- 7.2.012.gz +| | | | |-- 7.2.013.gz +| | | | |-- 7.2.014.gz +| | | | |-- 7.2.015.gz +| | | | |-- 7.2.016.gz +| | | | |-- 7.2.017.gz +| | | | |-- 7.2.018.gz +| | | | |-- 7.2.019.gz +| | | | |-- 7.2.020.gz +| | | | |-- 7.2.021.gz +| | | | |-- 7.2.022.gz +| | | | |-- 7.2.023.gz +| | | | |-- 7.2.024.gz +| | | | |-- 7.2.025.gz +| | | | |-- 7.2.026.gz +| | | | |-- 7.2.027.gz +| | | | |-- 7.2.028.gz +| | | | |-- 7.2.029.gz +| | | | |-- 7.2.030.gz +| | | | |-- 7.2.031.gz +| | | | |-- 7.2.032.gz +| | | | |-- 7.2.033.gz +| | | | |-- 7.2.034.gz +| | | | |-- 7.2.035.gz +| | | | |-- 7.2.036.gz +| | | | |-- 7.2.037.gz +| | | | |-- 7.2.038.gz +| | | | |-- 7.2.039.gz +| | | | |-- 7.2.040.gz +| | | | |-- 7.2.041.gz +| | | | |-- 7.2.042.gz +| | | | |-- 7.2.043.gz +| | | | |-- 7.2.044.gz +| | | | |-- 7.2.045.gz +| | | | |-- 7.2.046.gz +| | | | |-- 7.2.047.gz +| | | | |-- 7.2.048.gz +| | | | |-- 7.2.049.gz +| | | | |-- 7.2.050.gz +| | | | |-- 7.2.051.gz +| | | | |-- 7.2.052.gz +| | | | |-- 7.2.053.gz +| | | | |-- 7.2.054.gz +| | | | |-- 7.2.055.gz +| | | | |-- 7.2.056.gz +| | | | |-- 7.2.057.gz +| | | | |-- 7.2.058.gz +| | | | |-- 7.2.059.gz +| | | | |-- 7.2.060.gz +| | | | |-- 7.2.061.gz +| | | | |-- 7.2.062.gz +| | | | |-- 7.2.063.gz +| | | | |-- 7.2.064.gz +| | | | |-- 7.2.065.gz +| | | | |-- 7.2.066.gz +| | | | |-- 7.2.067.gz +| | | | |-- 7.2.068.gz +| | | | |-- 7.2.069.gz +| | | | |-- 7.2.070.gz +| | | | |-- 7.2.071.gz +| | | | |-- 7.2.072.gz +| | | | |-- 7.2.073.gz +| | | | |-- 7.2.074.gz +| | | | |-- 7.2.075.gz +| | | | |-- 7.2.076.gz +| | | | |-- 7.2.077.gz +| | | | |-- 7.2.078.gz +| | | | |-- 7.2.079.gz +| | | | |-- 7.2.080.gz +| | | | |-- 7.2.081.gz +| | | | |-- 7.2.082.gz +| | | | |-- 7.2.083.gz +| | | | |-- 7.2.084.gz +| | | | |-- 7.2.085.gz +| | | | |-- 7.2.086.gz +| | | | |-- 7.2.087.gz +| | | | |-- 7.2.088.gz +| | | | |-- 7.2.089.gz +| | | | |-- 7.2.090.gz +| | | | |-- 7.2.091.gz +| | | | |-- 7.2.092.gz +| | | | |-- 7.2.093.gz +| | | | |-- 7.2.094.gz +| | | | |-- 7.2.095.gz +| | | | |-- 7.2.096.gz +| | | | |-- 7.2.097.gz +| | | | |-- 7.2.098.gz +| | | | |-- 7.2.099.gz +| | | | |-- 7.2.100.gz +| | | | |-- 7.2.101.gz +| | | | |-- 7.2.102.gz +| | | | |-- 7.2.103.gz +| | | | |-- 7.2.104.gz +| | | | |-- 7.2.105.gz +| | | | |-- 7.2.106.gz +| | | | |-- 7.2.107.gz +| | | | |-- 7.2.108.gz +| | | | |-- 7.2.109.gz +| | | | |-- 7.2.110.gz +| | | | |-- 7.2.111.gz +| | | | |-- 7.2.112.gz +| | | | |-- 7.2.113.gz +| | | | |-- 7.2.114.gz +| | | | |-- 7.2.115.gz +| | | | |-- 7.2.116.gz +| | | | |-- 7.2.117.gz +| | | | |-- 7.2.118.gz +| | | | |-- 7.2.119.gz +| | | | |-- 7.2.120.gz +| | | | |-- 7.2.121.gz +| | | | |-- 7.2.122.gz +| | | | |-- 7.2.123.gz +| | | | |-- 7.2.124.gz +| | | | |-- 7.2.125.gz +| | | | |-- 7.2.126.gz +| | | | |-- 7.2.127.gz +| | | | |-- 7.2.128.gz +| | | | |-- 7.2.129.gz +| | | | |-- 7.2.130.gz +| | | | |-- 7.2.131.gz +| | | | |-- 7.2.132.gz +| | | | |-- 7.2.133.gz +| | | | |-- 7.2.134.gz +| | | | |-- 7.2.135.gz +| | | | |-- 7.2.136.gz +| | | | |-- 7.2.137.gz +| | | | |-- 7.2.138.gz +| | | | |-- 7.2.139.gz +| | | | |-- 7.2.140.gz +| | | | |-- 7.2.141.gz +| | | | |-- 7.2.142.gz +| | | | |-- 7.2.143.gz +| | | | |-- 7.2.144.gz +| | | | |-- 7.2.145.gz +| | | | |-- 7.2.146.gz +| | | | |-- 7.2.147.gz +| | | | |-- 7.2.148.gz +| | | | |-- 7.2.149.gz +| | | | |-- 7.2.150.gz +| | | | |-- 7.2.151.gz +| | | | |-- 7.2.152.gz +| | | | |-- 7.2.153.gz +| | | | |-- 7.2.154.gz +| | | | |-- 7.2.155.gz +| | | | |-- 7.2.156.gz +| | | | |-- 7.2.157.gz +| | | | |-- 7.2.158.gz +| | | | |-- 7.2.159.gz +| | | | |-- 7.2.160.gz +| | | | |-- 7.2.161.gz +| | | | |-- 7.2.162.gz +| | | | |-- 7.2.163.gz +| | | | |-- 7.2.164.gz +| | | | |-- 7.2.165.gz +| | | | |-- 7.2.166.gz +| | | | |-- 7.2.167.gz +| | | | |-- 7.2.168.gz +| | | | |-- 7.2.169.gz +| | | | |-- 7.2.170.gz +| | | | |-- 7.2.171.gz +| | | | |-- 7.2.172.gz +| | | | |-- 7.2.173.gz +| | | | |-- 7.2.174.gz +| | | | |-- 7.2.175.gz +| | | | |-- 7.2.176.gz +| | | | |-- 7.2.177.gz +| | | | |-- 7.2.178.gz +| | | | |-- 7.2.179.gz +| | | | |-- 7.2.180.gz +| | | | |-- 7.2.181.gz +| | | | |-- 7.2.182.gz +| | | | |-- 7.2.183.gz +| | | | |-- 7.2.184.gz +| | | | |-- 7.2.185.gz +| | | | |-- 7.2.186.gz +| | | | |-- 7.2.187.gz +| | | | |-- 7.2.188.gz +| | | | |-- 7.2.189.gz +| | | | |-- 7.2.190.gz +| | | | |-- 7.2.191.gz +| | | | |-- 7.2.192.gz +| | | | |-- 7.2.193.gz +| | | | |-- 7.2.194.gz +| | | | |-- 7.2.195.gz +| | | | |-- 7.2.196.gz +| | | | |-- 7.2.197.gz +| | | | |-- 7.2.198.gz +| | | | |-- 7.2.199.gz +| | | | |-- 7.2.200.gz +| | | | |-- 7.2.201.gz +| | | | |-- 7.2.202.gz +| | | | |-- 7.2.203.gz +| | | | |-- 7.2.204.gz +| | | | |-- 7.2.205.gz +| | | | |-- 7.2.206.gz +| | | | |-- 7.2.207.gz +| | | | |-- 7.2.208.gz +| | | | |-- 7.2.209.gz +| | | | |-- 7.2.210.gz +| | | | |-- 7.2.211.gz +| | | | |-- 7.2.212.gz +| | | | |-- 7.2.213.gz +| | | | |-- 7.2.214.gz +| | | | |-- 7.2.215.gz +| | | | |-- 7.2.216.gz +| | | | |-- 7.2.217.gz +| | | | |-- 7.2.218.gz +| | | | |-- 7.2.219.gz +| | | | |-- 7.2.220.gz +| | | | |-- 7.2.221.gz +| | | | |-- 7.2.222.gz +| | | | |-- 7.2.223.gz +| | | | |-- 7.2.224.gz +| | | | |-- 7.2.225.gz +| | | | |-- 7.2.226.gz +| | | | |-- 7.2.227.gz +| | | | |-- 7.2.228.gz +| | | | |-- 7.2.229.gz +| | | | |-- 7.2.230.gz +| | | | |-- 7.2.231.gz +| | | | |-- 7.2.232.gz +| | | | |-- 7.2.233.gz +| | | | |-- 7.2.234.gz +| | | | |-- 7.2.235.gz +| | | | |-- 7.2.236.gz +| | | | |-- 7.2.237.gz +| | | | |-- 7.2.238.gz +| | | | |-- 7.2.239.gz +| | | | |-- 7.2.240.gz +| | | | |-- 7.2.241.gz +| | | | |-- 7.2.242.gz +| | | | |-- 7.2.243.gz +| | | | |-- 7.2.244.gz +| | | | `-- 7.2.245.gz +| | | |-- slack-desc.vim +| | | |-- slack-desc.vim-gvim +| | | |-- vim-7.2-lang.tar.xz +| | | |-- vim-7.2.tar.xz +| | | |-- vim-gvim.SlackBuild +| | | |-- vim.SlackBuild +| | | `-- vim.vimrc.diff.gz +| | |-- vorbis-tools +| | | |-- slack-desc +| | | |-- vorbis-tools-1.2.0.tar.bz2 +| | | `-- vorbis-tools.SlackBuild +| | |-- workbone +| | | |-- slack-desc +| | | |-- workbone.1.diff.gz +| | | |-- workbone.SlackBuild +| | | |-- workbone_2.40-3.diff.gz +| | | `-- workbone_2.40.orig.tar.gz +| | |-- xfsdump +| | | |-- slack-desc +| | | |-- xfsdump-3.0.1.tar.xz +| | | |-- xfsdump.SlackBuild +| | | `-- xfsdump.destdir.diff.gz +| | `-- zsh +| | |-- doinst.sh.gz +| | |-- slack-desc +| | |-- zsh-4.3.10-add_new_pkg_completion.diff.gz +| | |-- zsh-4.3.10-doc.tar.xz +| | |-- zsh-4.3.10.tar.xz +| | `-- zsh.SlackBuild +| |-- d +| | |-- autoconf +| | | |-- autoconf-2.63.tar.bz2 +| | | |-- autoconf.SlackBuild +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- automake +| | | |-- automake-1.10.1.tar.bz2 +| | | |-- automake.SlackBuild +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- binutils +| | | |-- binutils-2.18.50.0.9.tar.bz2 +| | | |-- binutils.SlackBuild +| | | |-- release.binutils-2.18.50.0.9 +| | | `-- slack-desc +| | |-- bison +| | | |-- bison-2.4.1.tar.bz2 +| | | |-- bison-2.4.1.tar.bz2.sig +| | | |-- bison.SlackBuild +| | | `-- slack-desc +| | |-- ccache +| | | |-- ccache-2.4.tar.gz +| | | |-- ccache.SlackBuild +| | | `-- slack-desc +| | |-- clisp +| | | |-- clisp-2.47.tar.bz2 +| | | |-- clisp-2.47.tar.bz2.sig +| | | |-- clisp.SlackBuild +| | | |-- ffcall-20080704cvs.tar.bz2 +| | | |-- libsigsegv-2.6.tar.bz2 +| | | |-- slack-desc +| | | `-- source.download +| | |-- cmake +| | | |-- cmake-2.6.2.tar.bz2 +| | | |-- cmake.SlackBuild +| | | `-- slack-desc +| | |-- cscope +| | | |-- cscope-15.6.tar.bz2 +| | | |-- cscope.SlackBuild +| | | `-- slack-desc +| | |-- cvs +| | | |-- cvs-1.11.23.tar.bz2 +| | | |-- cvs-1.11.23.tar.bz2.sig +| | | |-- cvs.SlackBuild +| | | `-- slack-desc +| | |-- dev86 +| | | |-- Dev86src-0.16.17.tar.gz +| | | |-- README +| | | |-- dev86-x86_64.noelks.patch.gz +| | | |-- dev86-x86_64.patch.gz +| | | |-- dev86.SlackBuild +| | | |-- dev86.info +| | | `-- slack-desc +| | |-- distcc +| | | |-- distcc-2.18.3.tar.bz2 +| | | |-- distcc-2.18.3.tar.bz2.asc +| | | |-- distcc.SlackBuild +| | | `-- slack-desc +| | |-- doxygen +| | | |-- doxygen-1.5.8.src.tar.bz2 +| | | |-- doxygen.SlackBuild +| | | |-- doxygen.qt4.diff.gz +| | | `-- slack-desc +| | |-- flex +| | | |-- flex-2.5.35.tar.bz2 +| | | |-- flex.SlackBuild +| | | `-- slack-desc +| | |-- gcc +| | | |-- ecj-4.3.jar +| | | |-- gcc-4.3.3.tar.xz +| | | |-- gcc-no_fixincludes.diff.gz +| | | |-- gcc.SlackBuild +| | | |-- slack-desc.gcc +| | | |-- slack-desc.gcc-g++ +| | | |-- slack-desc.gcc-gfortran +| | | |-- slack-desc.gcc-gnat +| | | |-- slack-desc.gcc-java +| | | `-- slack-desc.gcc-objc +| | |-- gdb +| | | |-- gdb-6.8.tar.bz2 +| | | |-- gdb-6.8.tar.bz2.sig +| | | |-- gdb.SlackBuild +| | | `-- slack-desc +| | |-- git +| | | |-- git-1.6.4.tar.sign +| | | |-- git-1.6.4.tar.xz +| | | |-- git.SlackBuild +| | | `-- slack-desc +| | |-- gperf +| | | |-- gperf-3.0.3.tar.bz2 +| | | |-- gperf.SlackBuild +| | | `-- slack-desc +| | |-- guile +| | | |-- guile-1.8.7.tar.xz +| | | |-- guile.SlackBuild +| | | `-- slack-desc +| | |-- indent +| | | |-- indent-2.2.10.tar.bz2 +| | | |-- indent.SlackBuild +| | | `-- slack-desc +| | |-- intltool +| | | |-- intltool-0.40.5.tar.bz2 +| | | |-- intltool.SlackBuild +| | | `-- slack-desc +| | |-- kernel-headers +| | | `-- slack-desc +| | |-- libtool +| | | |-- doinst.sh.gz +| | | |-- libtool-1.5.26.tar.bz2 +| | | |-- libtool.SlackBuild +| | | |-- libtool.no.moved.warning.diff.gz +| | | `-- slack-desc +| | |-- m4 +| | | |-- m4-1.4.13.tar.xz +| | | |-- m4.SlackBuild +| | | `-- slack-desc +| | |-- make +| | | |-- make-3.81.tar.bz2 +| | | |-- make-3.81.tar.bz2.sig +| | | |-- make.SlackBuild +| | | `-- slack-desc +| | |-- mercurial +| | | |-- mercurial-1.2.1.tar.bz2 +| | | |-- mercurial.SlackBuild +| | | `-- slack-desc +| | |-- nasm +| | | |-- nasm-2.05.01.tar.bz2 +| | | |-- nasm.SlackBuild +| | | `-- slack-desc +| | |-- oprofile +| | | |-- oprofile-0.9.4.tar.bz2 +| | | |-- oprofile.SlackBuild +| | | `-- slack-desc +| | |-- p2c +| | | |-- _p2c.tar.gz +| | | |-- p2c-1.21alpha2.tar.gz +| | | |-- p2c.SlackBuild +| | | |-- p2c.examples.diff.gz +| | | |-- p2c_1.21alpha2-2.1.diff.gz +| | | |-- p2c_time.diff.gz +| | | `-- slack-desc +| | |-- perl +| | | |-- DBD-mysql-4.008.tar.gz +| | | |-- DBI-1.607.tar.gz +| | | |-- URI-1.37.tar.gz +| | | |-- XML-Parser-2.36.tar.gz +| | | |-- XML-Simple-2.18.tar.gz +| | | |-- doinst.sh.gz +| | | |-- perl-5.10.0.tar.bz2 +| | | |-- perl.SlackBuild +| | | |-- perl.configure.multilib.patch.gz +| | | `-- slack-desc +| | |-- pkg-config +| | | |-- doinst.sh.gz +| | | |-- pkg-config-0.23.tar.bz2 +| | | |-- pkg-config.SlackBuild +| | | |-- scripts +| | | | |-- pkgconfig.csh +| | | | `-- pkgconfig.sh +| | | `-- slack-desc +| | |-- pmake +| | | |-- pmake-1.111.tar.gz +| | | |-- pmake.SlackBuild +| | | |-- pmake.strerror.strdup.diff.gz +| | | |-- pmake.txt.gz +| | | |-- pmake_1.111-1.diff.gz +| | | `-- slack-desc +| | |-- python +| | | |-- Python-2.6.2.tar.xz +| | | |-- python-2.6.2-docs-text.tar.xz +| | | |-- python.SlackBuild +| | | |-- python.pure64.diff.gz +| | | |-- python.readline.set_pre_input_hook.diff.gz +| | | |-- python.x86_64.diff.gz +| | | `-- slack-desc +| | |-- rcs +| | | |-- _rcs.tar.gz +| | | |-- rcs-5.7.diff.gz +| | | |-- rcs-5.7.tar.gz +| | | |-- rcs.SlackBuild +| | | `-- slack-desc +| | |-- ruby +| | | |-- ruby-1.8.7-p174.tar.xz +| | | |-- ruby.SlackBuild +| | | |-- ruby.x86_64.diff.gz +| | | `-- slack-desc +| | |-- strace +| | | |-- slack-desc +| | | |-- strace-4.5.18.tar.bz2 +| | | `-- strace.SlackBuild +| | |-- subversion +| | | |-- get-svn-book.sh +| | | |-- slack-desc +| | | |-- subversion-1.6.4.tar.xz +| | | |-- subversion.SlackBuild +| | | `-- svn-book-html.tar.bz2 +| | `-- swig +| | |-- slack-desc +| | |-- swig-1.3.38.tar.bz2 +| | |-- swig.SlackBuild +| | `-- swig.url +| |-- e +| | `-- emacs +| | |-- doinst.sh +| | |-- emacs-22.3.tar.bz2 +| | |-- emacs.SlackBuild +| | |-- emacs.info +| | `-- slack-desc +| |-- f +| | |-- slack-desc.linux-faqs +| | `-- slack-desc.linux-howtos +| |-- installer +| | |-- busybox-1.12.1.tar.bz2 +| | |-- busybox-1.12.1_inotify.diff.gz +| | |-- busybox-dot-config +| | |-- busybox.SlackBuild +| | `-- dropbear +| | |-- doinst.sh +| | |-- dropbear-0.50.tar.bz2 +| | |-- dropbear.Slackbuild +| | |-- dropbear.xauth.patch +| | |-- dropbear_dbclientpath.patch +| | |-- dropbear_emptypass.patch +| | |-- rc.dropbear.new +| | `-- slack-desc +| |-- k +| | |-- 2.6.29.x-intel-crash-patch.diff.gz +| | |-- README.TXT +| | |-- README_SECURITY.TXT +| | |-- README_SPEAKUP_PATCH.TXT +| | |-- config-generic-2.6.29.6 +| | |-- config-huge-2.6.29.6 +| | |-- config-speakup-2.6.29.6 +| | |-- kernel-firmware +| | | |-- kernel-firmware.SlackBuild +| | | `-- slack-desc +| | |-- kernel-generic +| | | |-- kernel-generic.SlackBuild +| | | `-- slack-desc +| | |-- kernel-huge +| | | |-- kernel-huge.SlackBuild +| | | `-- slack-desc +| | |-- kernel-modules +| | | |-- kernel-modules.SlackBuild +| | | |-- rc.modules.new +| | | `-- slack-desc +| | |-- linux-2.6.29.6-01-sendpage.diff.gz +| | |-- linux-2.6.29.6-02-default-mmap_min_addr-4096.diff.gz +| | |-- linux-2.6.29.6.tar.sign +| | |-- linux-2.6.29.6.tar.xz +| | `-- speakup-2009-02-24.tar.bz2 +| |-- kde +| | |-- KDE.SlackBuild +| | |-- KDE.options +| | |-- amarok +| | | |-- amarok.SlackBuild +| | | |-- amarok.qtscript.optional.diff.gz +| | | |-- doinst.sh.gz +| | | |-- local.options +| | | `-- slack-desc +| | |-- guidance-power-manager +| | | |-- guidance-power-manager.SlackBuild +| | | `-- slack-desc +| | |-- k3b +| | | |-- doinst.sh.gz +| | | |-- k3b.SlackBuild +| | | |-- k3b.internal.libsamplerate.diff.gz +| | | |-- local.options +| | | `-- slack-desc +| | |-- kaudiocreator +| | | |-- doinst.sh.gz +| | | |-- kaudiocreator.SlackBuild +| | | |-- local.options +| | | `-- slack-desc +| | |-- kdeaccessibility +| | | |-- doinst.sh.gz +| | | |-- kdeaccessibility.SlackBuild +| | | `-- slack-desc +| | |-- kdeadmin +| | | |-- doinst.sh.gz +| | | |-- kdeadmin.SlackBuild +| | | `-- slack-desc +| | |-- kdeartwork +| | | |-- doinst.sh.gz +| | | |-- kdeartwork.SlackBuild +| | | `-- slack-desc +| | |-- kdebase +| | | |-- config +| | | | `-- kdeglobals +| | | |-- doinst.sh.gz +| | | |-- kdebase.SlackBuild +| | | |-- profile.d +| | | | |-- kde.csh +| | | | `-- kde.sh +| | | `-- slack-desc +| | |-- kdebase-runtime +| | | |-- doinst.sh.gz +| | | |-- kdebase-runtime-text-render-969192.diff.gz +| | | |-- kdebase-runtime.SlackBuild +| | | |-- local.options +| | | `-- slack-desc +| | |-- kdebase-workspace +| | | |-- config +| | | | |-- Xsession +| | | | `-- Xsession.orig +| | | |-- doinst.sh.gz +| | | |-- kdebase-workspace.SlackBuild +| | | |-- slack-desc +| | | `-- xinit +| | | `-- xinitrc.kde +| | |-- kdebindings +| | | |-- kdebindings.SlackBuild +| | | `-- slack-desc +| | |-- kdeedu +| | | |-- doinst.sh.gz +| | | |-- kdeedu.SlackBuild +| | | `-- slack-desc +| | |-- kdegames +| | | |-- doinst.sh.gz +| | | |-- kdegames.SlackBuild +| | | `-- slack-desc +| | |-- kdegraphics +| | | |-- doinst.sh.gz +| | | |-- kdegraphics.SlackBuild +| | | `-- slack-desc +| | |-- kdelibs +| | | |-- doinst.sh.gz +| | | |-- fixPopupForPlasmaboard.diff.gz +| | | |-- kdelibs.SlackBuild +| | | |-- kdesu-allow_NOPASS_in_suauth.patch.gz +| | | |-- local.options +| | | `-- slack-desc +| | |-- kdemultimedia +| | | |-- doinst.sh.gz +| | | |-- kdemultimedia.SlackBuild +| | | `-- slack-desc +| | |-- kdenetwork +| | | |-- doinst.sh.gz +| | | |-- kdenetwork.SlackBuild +| | | |-- kopete-r986796.diff.gz +| | | |-- local.options +| | | `-- slack-desc +| | |-- kdepim +| | | |-- doinst.sh.gz +| | | |-- kdepim.SlackBuild +| | | `-- slack-desc +| | |-- kdepimlibs +| | | |-- kdepimlibs.SlackBuild +| | | `-- slack-desc +| | |-- kdeplasma-addons +| | | |-- doinst.sh.gz +| | | |-- kdeplasma-addons.SlackBuild +| | | `-- slack-desc +| | |-- kdesdk +| | | |-- doinst.sh.gz +| | | |-- kdesdk.SlackBuild +| | | `-- slack-desc +| | |-- kdetoys +| | | |-- doinst.sh.gz +| | | |-- kdetoys.SlackBuild +| | | `-- slack-desc +| | |-- kdeutils +| | | |-- doinst.sh.gz +| | | |-- kdeutils.SlackBuild +| | | `-- slack-desc +| | |-- kdevelop +| | | |-- doinst.sh.gz +| | | |-- kdevelop.SlackBuild +| | | |-- local.options +| | | `-- slack-desc +| | |-- kdevplatform +| | | |-- doinst.sh.gz +| | | |-- kdevplatform.SlackBuild +| | | |-- local.options +| | | `-- slack-desc +| | |-- kdewebdev +| | | |-- doinst.sh.gz +| | | |-- kde4-kdewebdev-findtidy.diff.gz +| | | |-- kdewebdev.SlackBuild +| | | |-- slack-desc +| | | `-- tidy +| | | |-- get-tidy-cvs.sh +| | | |-- tidy-20090604T2303.tar.xz +| | | |-- tidy.SlackBuild +| | | `-- tidy.build +| | |-- koffice +| | | |-- doinst.sh.gz +| | | |-- koffice.SlackBuild +| | | |-- local.options +| | | `-- slack-desc +| | |-- konq-plugins +| | | |-- konq-plugins.SlackBuild +| | | `-- slack-desc +| | |-- ktorrent +| | | |-- doinst.sh.gz +| | | |-- ktorrent.SlackBuild +| | | |-- local.options +| | | `-- slack-desc +| | |-- mplayerthumbs +| | | |-- mplayerthumbs-1.2.tar.gz +| | | |-- mplayerthumbs.SlackBuild +| | | `-- slack-desc +| | |-- skanlite +| | | |-- doinst.sh.gz +| | | |-- local.options +| | | |-- skanlite.SlackBuild +| | | `-- slack-desc +| | `-- src +| | |-- extragear +| | | |-- amarok-2.1.1.tar.xz +| | | |-- guidance-power-manager-4.2.4.tar.xz +| | | |-- k3b-r948463.tar.xz +| | | |-- kaudiocreator-r1008583.tar.xz +| | | |-- konq-plugins-4.2.4.tar.xz +| | | |-- ktorrent-3.2.2.tar.xz +| | | `-- skanlite-0.3-kde4.2.4.tar.xz +| | |-- kdeaccessibility-4.2.4.tar.xz +| | |-- kdeadmin-4.2.4.tar.xz +| | |-- kdeartwork-4.2.4.tar.xz +| | |-- kdebase-4.2.4.tar.xz +| | |-- kdebase-runtime-4.2.4.tar.xz +| | |-- kdebase-workspace-4.2.4.tar.xz +| | |-- kdebindings-4.2.4.tar.xz +| | |-- kdeedu-4.2.4.tar.xz +| | |-- kdegames-4.2.4.tar.xz +| | |-- kdegraphics-4.2.4.tar.xz +| | |-- kdelibs-4.2.4.tar.xz +| | |-- kdemultimedia-4.2.4.tar.xz +| | |-- kdenetwork-4.2.4.tar.xz +| | |-- kdepim-4.2.4.tar.xz +| | |-- kdepimlibs-4.2.4.tar.xz +| | |-- kdeplasma-addons-4.2.4.tar.xz +| | |-- kdesdk-4.2.4.tar.xz +| | |-- kdetoys-4.2.4.tar.xz +| | |-- kdeutils-4.2.4.tar.xz +| | |-- kdevelop-3.9.91.tar.xz +| | |-- kdevplatform-0.9.91.tar.xz +| | |-- kdewebdev-4.2.4.tar.xz +| | `-- koffice-2.0.2.tar.xz +| |-- kdei +| | |-- kde-l10n-ar-4.2.4.tar.bz2 +| | |-- kde-l10n-bg-4.2.4.tar.bz2 +| | |-- kde-l10n-bn_IN-4.2.4.tar.bz2 +| | |-- kde-l10n-ca-4.2.4.tar.bz2 +| | |-- kde-l10n-cs-4.2.4.tar.bz2 +| | |-- kde-l10n-csb-4.2.4.tar.bz2 +| | |-- kde-l10n-da-4.2.4.tar.bz2 +| | |-- kde-l10n-de-4.2.4.tar.bz2 +| | |-- kde-l10n-el-4.2.4.tar.bz2 +| | |-- kde-l10n-en_GB-4.2.4.tar.bz2 +| | |-- kde-l10n-es-4.2.4.tar.bz2 +| | |-- kde-l10n-et-4.2.4.tar.bz2 +| | |-- kde-l10n-eu-4.2.4.tar.bz2 +| | |-- kde-l10n-fi-4.2.4.tar.bz2 +| | |-- kde-l10n-fr-4.2.4.tar.bz2 +| | |-- kde-l10n-ga-4.2.4.tar.bz2 +| | |-- kde-l10n-gl-4.2.4.tar.bz2 +| | |-- kde-l10n-gu-4.2.4.tar.bz2 +| | |-- kde-l10n-he-4.2.4.tar.bz2 +| | |-- kde-l10n-hi-4.2.4.tar.bz2 +| | |-- kde-l10n-hu-4.2.4.tar.bz2 +| | |-- kde-l10n-is-4.2.4.tar.bz2 +| | |-- kde-l10n-it-4.2.4.tar.bz2 +| | |-- kde-l10n-ja-4.2.4.tar.bz2 +| | |-- kde-l10n-kk-4.2.4.tar.bz2 +| | |-- kde-l10n-km-4.2.4.tar.bz2 +| | |-- kde-l10n-kn-4.2.4.tar.bz2 +| | |-- kde-l10n-ko-4.2.4.tar.bz2 +| | |-- kde-l10n-ku-4.2.4.tar.bz2 +| | |-- kde-l10n-lt-4.2.4.tar.bz2 +| | |-- kde-l10n-lv-4.2.4.tar.bz2 +| | |-- kde-l10n-mai-4.2.4.tar.bz2 +| | |-- kde-l10n-mk-4.2.4.tar.bz2 +| | |-- kde-l10n-ml-4.2.4.tar.bz2 +| | |-- kde-l10n-mr-4.2.4.tar.bz2 +| | |-- kde-l10n-nb-4.2.4.tar.bz2 +| | |-- kde-l10n-nds-4.2.4.tar.bz2 +| | |-- kde-l10n-nl-4.2.4.tar.bz2 +| | |-- kde-l10n-nn-4.2.4.tar.bz2 +| | |-- kde-l10n-pa-4.2.4.tar.bz2 +| | |-- kde-l10n-pl-4.2.4.tar.bz2 +| | |-- kde-l10n-pt-4.2.4.tar.bz2 +| | |-- kde-l10n-pt_BR-4.2.4.tar.bz2 +| | |-- kde-l10n-ro-4.2.4.tar.bz2 +| | |-- kde-l10n-ru-4.2.4.tar.bz2 +| | |-- kde-l10n-sk-4.2.4.tar.bz2 +| | |-- kde-l10n-sl-4.2.4.tar.bz2 +| | |-- kde-l10n-sr-4.2.4.tar.bz2 +| | |-- kde-l10n-sv-4.2.4.tar.bz2 +| | |-- kde-l10n-tg-4.2.4.tar.bz2 +| | |-- kde-l10n-th-4.2.4.tar.bz2 +| | |-- kde-l10n-tr-4.2.4.tar.bz2 +| | |-- kde-l10n-uk-4.2.4.tar.bz2 +| | |-- kde-l10n-wa-4.2.4.tar.bz2 +| | |-- kde-l10n-zh_CN-4.2.4.tar.bz2 +| | |-- kde-l10n-zh_TW-4.2.4.tar.bz2 +| | |-- kde-l10n.SlackBuild +| | |-- koffice +| | | |-- koffice-l10n-ca-2.0.2.tar.bz2 +| | | |-- koffice-l10n-cs-2.0.2.tar.bz2 +| | | |-- koffice-l10n-da-2.0.2.tar.bz2 +| | | |-- koffice-l10n-de-2.0.2.tar.bz2 +| | | |-- koffice-l10n-el-2.0.2.tar.bz2 +| | | |-- koffice-l10n-en_GB-2.0.2.tar.bz2 +| | | |-- koffice-l10n-es-2.0.2.tar.bz2 +| | | |-- koffice-l10n-et-2.0.2.tar.bz2 +| | | |-- koffice-l10n-fr-2.0.2.tar.bz2 +| | | |-- koffice-l10n-fy-2.0.2.tar.bz2 +| | | |-- koffice-l10n-gl-2.0.2.tar.bz2 +| | | |-- koffice-l10n-hi-2.0.2.tar.bz2 +| | | |-- koffice-l10n-it-2.0.2.tar.bz2 +| | | |-- koffice-l10n-ja-2.0.2.tar.bz2 +| | | |-- koffice-l10n-kk-2.0.2.tar.bz2 +| | | |-- koffice-l10n-nb-2.0.2.tar.bz2 +| | | |-- koffice-l10n-nds-2.0.2.tar.bz2 +| | | |-- koffice-l10n-nl-2.0.2.tar.bz2 +| | | |-- koffice-l10n-pl-2.0.2.tar.bz2 +| | | |-- koffice-l10n-pt-2.0.2.tar.bz2 +| | | |-- koffice-l10n-pt_BR-2.0.2.tar.bz2 +| | | |-- koffice-l10n-sv-2.0.2.tar.bz2 +| | | |-- koffice-l10n-tr-2.0.2.tar.bz2 +| | | |-- koffice-l10n-uk-2.0.2.tar.bz2 +| | | |-- koffice-l10n-wa-2.0.2.tar.bz2 +| | | |-- koffice-l10n-zh_CN-2.0.2.tar.bz2 +| | | |-- koffice-l10n-zh_TW-2.0.2.tar.bz2 +| | | |-- koffice-l10n.SlackBuild +| | | |-- languages +| | | `-- slack-desc +| | | |-- slack-desc.koffice-l10n-af +| | | |-- slack-desc.koffice-l10n-ar +| | | |-- slack-desc.koffice-l10n-az +| | | |-- slack-desc.koffice-l10n-bg +| | | |-- slack-desc.koffice-l10n-br +| | | |-- slack-desc.koffice-l10n-bs +| | | |-- slack-desc.koffice-l10n-ca +| | | |-- slack-desc.koffice-l10n-cs +| | | |-- slack-desc.koffice-l10n-cy +| | | |-- slack-desc.koffice-l10n-da +| | | |-- slack-desc.koffice-l10n-de +| | | |-- slack-desc.koffice-l10n-el +| | | |-- slack-desc.koffice-l10n-en_GB +| | | |-- slack-desc.koffice-l10n-eo +| | | |-- slack-desc.koffice-l10n-es +| | | |-- slack-desc.koffice-l10n-et +| | | |-- slack-desc.koffice-l10n-eu +| | | |-- slack-desc.koffice-l10n-fa +| | | |-- slack-desc.koffice-l10n-fi +| | | |-- slack-desc.koffice-l10n-fr +| | | |-- slack-desc.koffice-l10n-fy +| | | |-- slack-desc.koffice-l10n-ga +| | | |-- slack-desc.koffice-l10n-gl +| | | |-- slack-desc.koffice-l10n-he +| | | |-- slack-desc.koffice-l10n-hi +| | | |-- slack-desc.koffice-l10n-hsb +| | | |-- slack-desc.koffice-l10n-hu +| | | |-- slack-desc.koffice-l10n-is +| | | |-- slack-desc.koffice-l10n-it +| | | |-- slack-desc.koffice-l10n-ja +| | | |-- slack-desc.koffice-l10n-kk +| | | |-- slack-desc.koffice-l10n-km +| | | |-- slack-desc.koffice-l10n-lo +| | | |-- slack-desc.koffice-l10n-lt +| | | |-- slack-desc.koffice-l10n-lv +| | | |-- slack-desc.koffice-l10n-mk +| | | |-- slack-desc.koffice-l10n-ms +| | | |-- slack-desc.koffice-l10n-mt +| | | |-- slack-desc.koffice-l10n-nb +| | | |-- slack-desc.koffice-l10n-nds +| | | |-- slack-desc.koffice-l10n-ne +| | | |-- slack-desc.koffice-l10n-nl +| | | |-- slack-desc.koffice-l10n-nn +| | | |-- slack-desc.koffice-l10n-no +| | | |-- slack-desc.koffice-l10n-no_NY +| | | |-- slack-desc.koffice-l10n-pl +| | | |-- slack-desc.koffice-l10n-pt +| | | |-- slack-desc.koffice-l10n-pt_BR +| | | |-- slack-desc.koffice-l10n-ro +| | | |-- slack-desc.koffice-l10n-ru +| | | |-- slack-desc.koffice-l10n-se +| | | |-- slack-desc.koffice-l10n-sk +| | | |-- slack-desc.koffice-l10n-sl +| | | |-- slack-desc.koffice-l10n-sr +| | | |-- slack-desc.koffice-l10n-sr@Latn +| | | |-- slack-desc.koffice-l10n-sv +| | | |-- slack-desc.koffice-l10n-ta +| | | |-- slack-desc.koffice-l10n-tg +| | | |-- slack-desc.koffice-l10n-th +| | | |-- slack-desc.koffice-l10n-tr +| | | |-- slack-desc.koffice-l10n-uk +| | | |-- slack-desc.koffice-l10n-uz +| | | |-- slack-desc.koffice-l10n-ven +| | | |-- slack-desc.koffice-l10n-wa +| | | |-- slack-desc.koffice-l10n-xh +| | | |-- slack-desc.koffice-l10n-zh_CN +| | | |-- slack-desc.koffice-l10n-zh_TW +| | | `-- slack-desc.koffice-l10n-zu +| | |-- languages +| | |-- local.options +| | `-- slack-desc +| | |-- slack-desc.kde-l10n-ar +| | |-- slack-desc.kde-l10n-bg +| | |-- slack-desc.kde-l10n-bn_IN +| | |-- slack-desc.kde-l10n-ca +| | |-- slack-desc.kde-l10n-cs +| | |-- slack-desc.kde-l10n-csb +| | |-- slack-desc.kde-l10n-da +| | |-- slack-desc.kde-l10n-de +| | |-- slack-desc.kde-l10n-el +| | |-- slack-desc.kde-l10n-en_GB +| | |-- slack-desc.kde-l10n-eo +| | |-- slack-desc.kde-l10n-es +| | |-- slack-desc.kde-l10n-et +| | |-- slack-desc.kde-l10n-eu +| | |-- slack-desc.kde-l10n-fi +| | |-- slack-desc.kde-l10n-fr +| | |-- slack-desc.kde-l10n-fy +| | |-- slack-desc.kde-l10n-ga +| | |-- slack-desc.kde-l10n-gl +| | |-- slack-desc.kde-l10n-gu +| | |-- slack-desc.kde-l10n-he +| | |-- slack-desc.kde-l10n-hi +| | |-- slack-desc.kde-l10n-hu +| | |-- slack-desc.kde-l10n-is +| | |-- slack-desc.kde-l10n-it +| | |-- slack-desc.kde-l10n-ja +| | |-- slack-desc.kde-l10n-kk +| | |-- slack-desc.kde-l10n-km +| | |-- slack-desc.kde-l10n-kn +| | |-- slack-desc.kde-l10n-ko +| | |-- slack-desc.kde-l10n-ku +| | |-- slack-desc.kde-l10n-lt +| | |-- slack-desc.kde-l10n-lv +| | |-- slack-desc.kde-l10n-mai +| | |-- slack-desc.kde-l10n-mk +| | |-- slack-desc.kde-l10n-ml +| | |-- slack-desc.kde-l10n-mr +| | |-- slack-desc.kde-l10n-nb +| | |-- slack-desc.kde-l10n-nds +| | |-- slack-desc.kde-l10n-nl +| | |-- slack-desc.kde-l10n-nn +| | |-- slack-desc.kde-l10n-pa +| | |-- slack-desc.kde-l10n-pl +| | |-- slack-desc.kde-l10n-pt +| | |-- slack-desc.kde-l10n-pt_BR +| | |-- slack-desc.kde-l10n-ro +| | |-- slack-desc.kde-l10n-ru +| | |-- slack-desc.kde-l10n-sk +| | |-- slack-desc.kde-l10n-sl +| | |-- slack-desc.kde-l10n-sr +| | |-- slack-desc.kde-l10n-sv +| | |-- slack-desc.kde-l10n-ta +| | |-- slack-desc.kde-l10n-tg +| | |-- slack-desc.kde-l10n-th +| | |-- slack-desc.kde-l10n-tr +| | |-- slack-desc.kde-l10n-uk +| | |-- slack-desc.kde-l10n-wa +| | |-- slack-desc.kde-l10n-zh_CN +| | `-- slack-desc.kde-l10n-zh_TW +| |-- l +| | |-- M2Crypto +| | | |-- M2Crypto-0.19.1.tar.bz2 +| | | |-- M2Crypto.SlackBuild +| | | `-- slack-desc +| | |-- PyQt +| | | |-- PyQt-x11-gpl-4.4.4.tar.bz2 +| | | |-- PyQt.SlackBuild +| | | |-- PyQt.info +| | | `-- slack-desc +| | |-- QScintilla +| | | |-- QScintilla-gpl-2.3.2.tar.bz2 +| | | |-- QScintilla.SlackBuild +| | | |-- QScintilla.info +| | | `-- slack-desc +| | |-- aalib +| | | |-- aalib-1.4rc5.tar.gz +| | | |-- aalib.SlackBuild +| | | |-- slack-desc +| | | `-- slack-desc.11line +| | |-- akonadi +| | | |-- akonadi-1.1.2.tar.bz2 +| | | |-- akonadi.SlackBuild +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- alsa-lib +| | | |-- alsa-lib-1.0.18.tar.bz2 +| | | |-- alsa-lib.SlackBuild +| | | `-- slack-desc +| | |-- alsa-oss +| | | |-- alsa-oss-1.0.17.tar.bz2 +| | | |-- alsa-oss.SlackBuild +| | | `-- slack-desc +| | |-- apr +| | | |-- apr-1.3.8.tar.bz2 +| | | |-- apr-1.3.8.tar.bz2.asc +| | | |-- apr.SlackBuild +| | | `-- slack-desc +| | |-- apr-util +| | | |-- apr-util-1.3.9.tar.bz2 +| | | |-- apr-util-1.3.9.tar.bz2.asc +| | | |-- apr-util.SlackBuild +| | | `-- slack-desc +| | |-- aspell +| | | |-- aspell-0.60.5.tar.bz2 +| | | |-- aspell.SlackBuild +| | | `-- slack-desc +| | |-- aspell-dict +| | | |-- aspell-af-0.50-0.tar.bz2 +| | | |-- aspell-br-0.50-2.tar.bz2 +| | | |-- aspell-cy-0.50-3.tar.bz2 +| | | |-- aspell-dict.SlackBuild +| | | |-- aspell-el-0.50-3.tar.bz2 +| | | |-- aspell-eo-0.50-2.tar.bz2 +| | | |-- aspell-es-0.50-2.tar.bz2 +| | | |-- aspell-fr-0.50-3.tar.bz2 +| | | |-- aspell-gl-0.50-0.tar.bz2 +| | | |-- aspell-gv-0.50-0.tar.bz2 +| | | |-- aspell-hr-0.51-0.tar.bz2 +| | | |-- aspell-ia-0.50-1.tar.bz2 +| | | |-- aspell-is-0.51.1-0.tar.bz2 +| | | |-- aspell-mi-0.50-0.tar.bz2 +| | | |-- aspell-mk-0.50-0.tar.bz2 +| | | |-- aspell-ms-0.50-0.tar.bz2 +| | | |-- aspell-mt-0.50-0.tar.bz2 +| | | |-- aspell-nb-0.50.1-0.tar.bz2 +| | | |-- aspell-nl-0.50-2.tar.bz2 +| | | |-- aspell-nn-0.50.1-1.tar.bz2 +| | | |-- aspell-no-0.50-2.tar.bz2 +| | | |-- aspell-pl-0.51-0.tar.bz2 +| | | |-- aspell-pt-0.50-2.tar.bz2 +| | | |-- aspell-ro-0.50-2.tar.bz2 +| | | |-- aspell-rw-0.50-0.tar.bz2 +| | | |-- aspell-sk-0.52-0.tar.bz2 +| | | |-- aspell-sl-0.50-0.tar.bz2 +| | | |-- aspell-sv-0.51-0.tar.bz2 +| | | |-- aspell-sw-0.50-0.tar.bz2 +| | | |-- aspell-tr-0.50-0.tar.bz2 +| | | |-- aspell-uk-0.51-0.tar.bz2 +| | | |-- aspell-wa-0.50-0.tar.bz2 +| | | |-- aspell-zu-0.50-0.tar.bz2 +| | | |-- aspell5-be-0.01.tar.bz2 +| | | |-- aspell5-bg-4.0-0.tar.bz2 +| | | |-- aspell5-da-1.4.42-1.tar.bz2 +| | | |-- aspell5-fo-0.2.16-1.tar.bz2 +| | | |-- aspell5-ga-3.6-0.tar.bz2 +| | | |-- aspell5-gd-0.1.1-1.tar.bz2 +| | | |-- aspell5-hil-0.11-0.tar.bz2 +| | | |-- aspell5-id-1.2-0.tar.bz2 +| | | |-- aspell5-ku-0.12-0.tar.bz2 +| | | |-- aspell5-mg-0.03-0.tar.bz2 +| | | |-- aspell5-ny-0.01-0.tar.bz2 +| | | |-- aspell5-sc-1.0.tar.bz2 +| | | |-- aspell5-tet-0.1.1.tar.bz2 +| | | |-- aspell5-tl-0.02-1.tar.bz2 +| | | |-- aspell5-tn-1.0.1-0.tar.bz2 +| | | |-- aspell6-am-0.03-1.tar.bz2 +| | | |-- aspell6-az-0.02-0.tar.bz2 +| | | |-- aspell6-bn-0.01.1-1.tar.bz2 +| | | |-- aspell6-ca-20040130-1.tar.bz2 +| | | |-- aspell6-cs-20040614-1.tar.bz2 +| | | |-- aspell6-csb-0.02-0.tar.bz2 +| | | |-- aspell6-de-20030222-1.tar.bz2 +| | | |-- aspell6-en-6.0-0.tar.bz2 +| | | |-- aspell6-et-0.1.21-1.tar.bz2 +| | | |-- aspell6-fa-0.02-0.tar.bz2 +| | | |-- aspell6-fi-0.7-0.tar.bz2 +| | | |-- aspell6-gu-0.02-0.tar.bz2 +| | | |-- aspell6-he-1.0-0.tar.bz2 +| | | |-- aspell6-hi-0.01-0.tar.bz2 +| | | |-- aspell6-hsb-0.01-1.tar.bz2 +| | | |-- aspell6-hu-0.99.4.2-0.tar.bz2 +| | | |-- aspell6-it-2.2_20050523-0.tar.bz2 +| | | |-- aspell6-la-20020503-0.tar.bz2 +| | | |-- aspell6-lt-1.1+cvs20060103-0.tar.bz2 +| | | |-- aspell6-lv-0.5.5-1.tar.bz2 +| | | |-- aspell6-mn-0.01-0.tar.bz2 +| | | |-- aspell6-mr-0.10-0.tar.bz2 +| | | |-- aspell6-nds-0.01-0.tar.bz2 +| | | |-- aspell6-or-0.03-1.tar.bz2 +| | | |-- aspell6-pa-0.01-1.tar.bz2 +| | | |-- aspell6-pt_BR-20080707-0.tar.bz2 +| | | |-- aspell6-qu-0.02-0.tar.bz2 +| | | |-- aspell6-ru-0.99f7-1.tar.bz2 +| | | |-- aspell6-sr-0.02.tar.bz2 +| | | |-- aspell6-ta-20040424-1.tar.bz2 +| | | |-- aspell6-te-0.01-2.tar.bz2 +| | | |-- aspell6-uk-1.1-0.tar.bz2 +| | | |-- aspell6-uz-0.5-0.tar.bz2 +| | | |-- aspell6-vi-0.01.1-1.tar.bz2 +| | | `-- aspell6-yi-0.01.1-1.tar.bz2 +| | |-- atk +| | | |-- atk-1.26.0.tar.bz2 +| | | |-- atk.SlackBuild +| | | `-- slack-desc +| | |-- audiofile +| | | |-- audiofile-0.2.6.tar.bz2 +| | | |-- audiofile.SlackBuild +| | | `-- slack-desc +| | |-- automoc4 +| | | |-- automoc4-0.9.88.tar.bz2 +| | | |-- automoc4.SlackBuild +| | | `-- slack-desc +| | |-- babl +| | | |-- babl-0.0.22.tar.bz2 +| | | |-- babl.SlackBuild +| | | `-- slack-desc +| | |-- boost +| | | |-- boost.SlackBuild +| | | |-- boost.ifdef_placement.diff.gz +| | | |-- boost_1_38_0.tar.bz2 +| | | `-- slack-desc +| | |-- cairo +| | | |-- cairo-1.8.6.tar.bz2 +| | | |-- cairo.SlackBuild +| | | `-- slack-desc +| | |-- chmlib +| | | |-- chmlib-0.39.tar.bz2 +| | | |-- chmlib.SlackBuild +| | | |-- chmlib.info +| | | `-- slack-desc +| | |-- clucene +| | | |-- clucene-core-0.9.21b.tar.bz2 +| | | |-- clucene.SlackBuild +| | | |-- clucene.info +| | | `-- slack-desc +| | |-- db42 +| | | |-- db-4.2.52.tar.bz2 +| | | |-- db42.SlackBuild +| | | |-- patch.4.2.52.1.gz +| | | |-- patch.4.2.52.2.gz +| | | |-- patch.4.2.52.3.gz +| | | |-- patch.4.2.52.4.gz +| | | `-- slack-desc +| | |-- db44 +| | | |-- db-4.4.20.tar.bz2 +| | | |-- db44.SlackBuild +| | | |-- patch.4.4.20.1.gz +| | | |-- patch.4.4.20.2.gz +| | | `-- slack-desc +| | |-- dbus-glib +| | | |-- dbus-glib-0.80.tar.gz +| | | |-- dbus-glib.SlackBuild +| | | `-- slack-desc +| | |-- dbus-python +| | | |-- dbus-python-0.83.0.tar.bz2 +| | | |-- dbus-python.SlackBuild +| | | `-- slack-desc +| | |-- desktop-file-utils +| | | |-- desktop-file-utils-0.15.tar.bz2 +| | | |-- desktop-file-utils.SlackBuild +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- djvulibre +| | | |-- djvulibre-3.5.21.tar.bz2 +| | | |-- djvulibre.SlackBuild +| | | |-- djvulibre.info +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- eigen2 +| | | |-- eigen2-r948353.tar.bz2 +| | | |-- eigen2.SlackBuild +| | | `-- slack-desc +| | |-- enchant +| | | |-- enchant-1.4.2.tar.bz2 +| | | |-- enchant.SlackBuild +| | | |-- enchant.info +| | | `-- slack-desc +| | |-- esound +| | | |-- doinst.sh.gz +| | | |-- esound-0.2.41.tar.bz2 +| | | |-- esound.SlackBuild +| | | `-- slack-desc +| | |-- exiv2 +| | | |-- exiv2-0.18.1.tar.xz +| | | |-- exiv2.SlackBuild +| | | `-- slack-desc +| | |-- expat +| | | |-- expat-2.0.1.tar.gz +| | | |-- expat.SlackBuild +| | | `-- slack-desc +| | |-- freetype +| | | |-- freetype-2.3.9.tar.bz2 +| | | |-- freetype-2.3.9.tar.bz2.asc +| | | |-- freetype.SlackBuild +| | | |-- freetype.bytecode.interpreter.diff.gz +| | | |-- freetype.illadvisederror.diff.gz +| | | |-- freetype.subpixel.rendering.diff.gz +| | | `-- slack-desc +| | |-- fribidi +| | | |-- fribidi-0.10.9.tar.bz2 +| | | |-- fribidi.SlackBuild +| | | `-- slack-desc +| | |-- fuse +| | | |-- doinst.sh.gz +| | | |-- fuse-2.7.4.tar.gz +| | | |-- fuse.SlackBuild +| | | `-- slack-desc +| | |-- gamin +| | | |-- gamin-0.1.10.tar.bz2 +| | | |-- gamin.SlackBuild +| | | `-- slack-desc +| | |-- gd +| | | |-- gd-2.0.35.tar.bz2 +| | | |-- gd.SlackBuild +| | | |-- gdlib.pc +| | | `-- slack-desc +| | |-- gdbm +| | | |-- gdbm-1.8.3.tar.gz +| | | |-- gdbm.SlackBuild +| | | `-- slack-desc +| | |-- gegl +| | | |-- gegl-0.0.22.tar.bz2 +| | | |-- gegl.SlackBuild +| | | `-- slack-desc +| | |-- glib +| | | |-- glib-1.2.10.tar.bz2 +| | | |-- glib.SlackBuild +| | | |-- glib1.2_1.2.10-17.diff.bz2 +| | | `-- slack-desc +| | |-- glib2 +| | | |-- doinst.sh.gz +| | | |-- glib-2.18.4.tar.bz2 +| | | |-- glib-CVE-2008-4316.diff.gz +| | | |-- glib2.SlackBuild +| | | |-- libglib2.csh +| | | |-- libglib2.sh +| | | `-- slack-desc +| | |-- glibc +| | | |-- doinst.sh-glibc +| | | |-- doinst.sh-glibc-solibs +| | | |-- doinst.sh-glibc-zoneinfo +| | | |-- glibc-2.10-dns-no-gethostbyname4.diff.gz +| | | |-- glibc-2.9-20090316.tar.bz2 +| | | |-- glibc-cvs-checkout.sh +| | | |-- glibc-libidn-2.7.tar.bz2 +| | | |-- glibc-libidn-2.7.tar.bz2.sig +| | | |-- glibc.SlackBuild +| | | |-- glibc.getcwd.max.macro.diff.gz +| | | |-- glibc.locale.no-archive.diff.gz +| | | |-- glibc.nis-netgroups.diff.gz +| | | |-- glibc.revert.to.fix.build.breakages.diff.gz +| | | |-- glibc.ru_RU.CP1251.diff.gz +| | | |-- is_IS.diff.gz +| | | |-- profile.d +| | | | |-- glibc.csh.new +| | | | `-- glibc.sh.new +| | | |-- slack-desc.glibc +| | | |-- slack-desc.glibc-debug +| | | |-- slack-desc.glibc-i18n +| | | |-- slack-desc.glibc-profile +| | | |-- slack-desc.glibc-solibs +| | | |-- slack-desc.glibc-solibs-linuxthreads +| | | |-- slack-desc.glibc-zoneinfo +| | | |-- timezone-scripts +| | | | |-- output-updated-timeconfig.sh +| | | | |-- parts +| | | | | |-- 00 +| | | | | |-- 01 +| | | | | |-- 02 +| | | | | |-- 03 +| | | | | |-- 04 +| | | | | `-- README +| | | | |-- setup.timeconfig +| | | | `-- timeconfig +| | | |-- tzcode2009d.tar.gz +| | | `-- tzdata2009d.tar.gz +| | |-- gmime +| | | |-- gmime-2.2.23.tar.bz2 +| | | |-- gmime.SlackBuild +| | | `-- slack-desc +| | |-- gmm +| | | |-- gmm-3.1.tar.bz2 +| | | |-- gmm.SlackBuild +| | | |-- gmm.info +| | | `-- slack-desc +| | |-- gmp +| | | |-- gmp-4.2.4.tar.bz2 +| | | |-- gmp-4.2.4.tar.bz2.sig +| | | |-- gmp.SlackBuild +| | | `-- slack-desc +| | |-- gnome-icon-theme +| | | |-- doinst.sh.gz +| | | |-- gnome-icon-theme-2.26.0.tar.xz +| | | |-- gnome-icon-theme.SlackBuild +| | | |-- gnome-icon-theme.pkgconfig.path.diff.gz +| | | `-- slack-desc +| | |-- gst-plugins-base +| | | |-- gst-plugins-base-0.10.23.tar.xz +| | | |-- gst-plugins-base.SlackBuild +| | | `-- slack-desc +| | |-- gstreamer +| | | |-- gstreamer-0.10.23.tar.xz +| | | |-- gstreamer.SlackBuild +| | | `-- slack-desc +| | |-- gtk+ +| | | |-- gtk+-1.2.10.tar.bz2 +| | | |-- gtk+.SlackBuild +| | | |-- gtk+1.2_1.2.10-18.diff.bz2 +| | | `-- slack-desc +| | |-- gtk+2 +| | | |-- doinst.sh.gz +| | | |-- gtk+-2.14.7.tar.bz2 +| | | |-- gtk+2.SlackBuild +| | | |-- gtk.nsplugin.diff.gz +| | | |-- gtk.pnglz.diff.gz +| | | |-- profile.d +| | | | |-- gtk+.csh +| | | | `-- gtk+.sh +| | | |-- slack-desc +| | | |-- update-gdk-pixbuf-loaders +| | | `-- update-gtk-immodules +| | |-- gtkspell +| | | |-- gtkspell-2.0.15.tar.bz2 +| | | |-- gtkspell.SlackBuild +| | | `-- slack-desc +| | |-- hal +| | | |-- doinst.sh.gz +| | | |-- hal-0.5.11.tar.xz +| | | |-- hal.SlackBuild +| | | |-- hal.conf.gz +| | | |-- patches +| | | | |-- 10-keymap.fdi-restore_zap.diff.gz +| | | | |-- allow_uid_gid_ntfs.diff.gz +| | | | |-- check_udi_properly.diff.gz +| | | | |-- fix_led_crash.diff.gz +| | | | |-- fix_md_crash.diff.gz +| | | | |-- fix_segfault_in_mdraid.diff.gz +| | | | |-- fixup_udi_strings.diff.gz +| | | | |-- hide_more_invalid_partitions.diff.gz +| | | | |-- ignore_dupe_add_events.diff.gz +| | | | |-- regen_fdi_cache_if_zero_size.diff.gz +| | | | |-- set_X_keymap_properly.diff.gz +| | | | `-- use_udevadm_not_udevinfo.patch.gz +| | | |-- rc.hald.gz +| | | `-- slack-desc +| | |-- hal-info +| | | |-- hal-info-20090716.tar.gz +| | | |-- hal-info.SlackBuild +| | | `-- slack-desc +| | |-- hicolor-icon-theme +| | | |-- doinst.sh.gz +| | | |-- hicolor-icon-theme-0.10.tar.gz +| | | |-- hicolor-icon-theme.SlackBuild +| | | |-- setup.08.gtk-update-icon-cache +| | | `-- slack-desc +| | |-- icon-naming-utils +| | | |-- icon-naming-utils-0.8.90.tar.gz +| | | |-- icon-naming-utils.SlackBuild +| | | |-- icon-naming-utils.pkgconfigdir.diff.gz +| | | `-- slack-desc +| | |-- ilmbase +| | | |-- ilmbase-1.0.1.tar.bz2 +| | | |-- ilmbase.SlackBuild +| | | |-- ilmbase.info +| | | `-- slack-desc +| | |-- imlib +| | | |-- imlib-1.9.15.tar.bz2 +| | | |-- imlib.SlackBuild +| | | |-- imlib.mitshm.render.diff.gz +| | | `-- slack-desc +| | |-- iso-codes +| | | |-- iso-codes-3.8.tar.bz2 +| | | |-- iso-codes.SlackBuild +| | | |-- iso-codes.info +| | | `-- slack-desc +| | |-- jasper +| | | |-- jasper-1.900.1.tar.bz2 +| | | |-- jasper.SlackBuild +| | | `-- slack-desc +| | |-- jre +| | | |-- COPYRIGHT +| | | |-- LICENSE +| | | |-- README +| | | |-- THIRDPARTYLICENSEREADME.txt +| | | |-- Welcome.html +| | | |-- jre-6u16-linux-x64.bin +| | | |-- jre.SlackBuild +| | | |-- profile.d +| | | | |-- jre.csh +| | | | `-- jre.sh +| | | `-- slack-desc +| | |-- lcms +| | | |-- lcms-1.18.tar.bz2 +| | | |-- lcms.SlackBuild +| | | `-- slack-desc +| | |-- lesstif +| | | |-- doinst.sh.gz +| | | |-- lesstif-0.95.0.tar.bz2 +| | | |-- lesstif.Makefile.in.patch.gz +| | | |-- lesstif.PutPixel32.patch.gz +| | | |-- lesstif.SlackBuild +| | | |-- lesstif.gcc42.diff.gz +| | | |-- lesstif.rendertable.check.diff.gz +| | | |-- lesstif.x86_64.patch.gz +| | | `-- slack-desc +| | |-- libaio +| | | |-- libaio-0.3.106.tar.gz +| | | |-- libaio.SlackBuild +| | | `-- slack-desc +| | |-- libao +| | | |-- libao-0.8.8.tar.gz +| | | |-- libao.SlackBuild +| | | `-- slack-desc +| | |-- libarchive +| | | |-- libarchive-2.6.2.tar.bz2 +| | | |-- libarchive.SlackBuild +| | | |-- libarchive.info +| | | `-- slack-desc +| | |-- libart_lgpl +| | | |-- libart_lgpl-2.3.20.tar.bz2 +| | | |-- libart_lgpl.SlackBuild +| | | `-- slack-desc +| | |-- libcaca +| | | |-- libcaca-0.99.beta16.tar.bz2 +| | | |-- libcaca.SlackBuild +| | | `-- slack-desc +| | |-- libcap +| | | |-- README.SLACKWARE +| | | |-- capfaq-0.2.txt +| | | |-- libcap-2.16.tar.bz2 +| | | |-- libcap-2.16.tar.bz2.sign +| | | |-- libcap.SlackBuild +| | | |-- libcap.capability.h.fix.broken.includes.diff.gz +| | | `-- slack-desc +| | |-- libcddb +| | | |-- libcddb-1.3.0.tar.bz2 +| | | |-- libcddb.SlackBuild +| | | `-- slack-desc +| | |-- libcdio +| | | |-- libcdio-0.79.tar.bz2 +| | | |-- libcdio.SlackBuild +| | | `-- slack-desc +| | |-- libdvdread +| | | |-- libdvdread-4.1.3.tar.bz2 +| | | |-- libdvdread.SlackBuild +| | | `-- slack-desc +| | |-- libexif +| | | |-- libexif-0.6.16.tar.bz2 +| | | |-- libexif.SlackBuild +| | | |-- libexif.pc.diff.gz +| | | `-- slack-desc +| | |-- libglade +| | | |-- libglade-2.6.4.tar.bz2 +| | | |-- libglade.SlackBuild +| | | `-- slack-desc +| | |-- libgphoto2 +| | | |-- libgphoto2-2.4.6.tar.xz +| | | |-- libgphoto2.SlackBuild +| | | `-- slack-desc +| | |-- libgpod +| | | |-- libgpod-0.7.2.tar.xz +| | | |-- libgpod.SlackBuild +| | | `-- slack-desc +| | |-- libgsf +| | | |-- libgsf-1.14.15.tar.bz2 +| | | |-- libgsf.SlackBuild +| | | `-- slack-desc +| | |-- libgtkhtml +| | | |-- libgtkhtml-2.11.1.tar.bz2 +| | | |-- libgtkhtml.SlackBuild +| | | `-- slack-desc +| | |-- libical +| | | |-- README +| | | |-- libical-0.43.tar.bz2 +| | | |-- libical.SlackBuild +| | | |-- libical.info +| | | `-- slack-desc +| | |-- libid3tag +| | | |-- id3tag.pc +| | | |-- libid3tag-0.15.1b.tar.gz +| | | |-- libid3tag-0.15.1b.tar.gz.sign +| | | |-- libid3tag.SlackBuild +| | | `-- slack-desc +| | |-- libidl +| | | |-- libIDL-0.8.10.tar.bz2 +| | | |-- libidl.SlackBuild +| | | `-- slack-desc +| | |-- libidn +| | | |-- libidn-1.5.tar.bz2 +| | | |-- libidn.SlackBuild +| | | `-- slack-desc +| | |-- libieee1284 +| | | |-- libieee1284-0.2.11.tar.bz2 +| | | |-- libieee1284.SlackBuild +| | | `-- slack-desc +| | |-- libjpeg +| | | |-- _libjpeg.tar.gz +| | | |-- jpeg-6b.diff.gz +| | | |-- jpegsrc.v6b.tar.gz +| | | |-- libjpeg.SlackBuild +| | | `-- slack-desc +| | |-- libkarma +| | | |-- libkarma-0.1.1.tar.gz +| | | |-- libkarma.SlackBuild +| | | `-- slack-desc +| | |-- libmad +| | | |-- libmad-0.15.1b.tar.gz +| | | |-- libmad-0.15.1b.tar.gz.sign +| | | |-- libmad.SlackBuild +| | | |-- mad.pc +| | | `-- slack-desc +| | |-- libmcrypt +| | | |-- libmcrypt-2.5.8.tar.bz2 +| | | |-- libmcrypt.SlackBuild +| | | `-- slack-desc +| | |-- libmcs +| | | |-- libmcs-0.7.1.tar.bz2 +| | | |-- libmcs.SlackBuild +| | | `-- slack-desc +| | |-- libmng +| | | |-- libmng-1.0.10.tar.bz2 +| | | |-- libmng.SlackBuild +| | | `-- slack-desc +| | |-- libmowgli +| | | |-- libmowgli-0.6.0.tar.bz2 +| | | |-- libmowgli.SlackBuild +| | | `-- slack-desc +| | |-- libmsn +| | | |-- libmsn-r96.tar.bz2 +| | | |-- libmsn.SlackBuild +| | | `-- slack-desc +| | |-- libmtp +| | | |-- libmtp-0.3.6.tar.xz +| | | |-- libmtp.SlackBuild +| | | `-- slack-desc +| | |-- libnjb +| | | |-- 80-libnjb.rules +| | | |-- libnjb-2.2.6.tar.bz2 +| | | |-- libnjb.SlackBuild +| | | `-- slack-desc +| | |-- libnl +| | | |-- libnl-1.1.tar.bz2 +| | | |-- libnl-include_limits.h.patch.gz +| | | |-- libnl.SlackBuild +| | | |-- libnl.info +| | | `-- slack-desc +| | |-- libogg +| | | |-- libogg-1.1.3.tar.bz2 +| | | |-- libogg.SlackBuild +| | | `-- slack-desc +| | |-- liboil +| | | |-- liboil-0.3.16.tar.xz +| | | |-- liboil.SlackBuild +| | | `-- slack-desc +| | |-- libpng +| | | |-- libpng-1.2.37.tar.bz2 +| | | |-- libpng.SlackBuild +| | | |-- libpng.libs.diff.gz +| | | `-- slack-desc +| | |-- libraw1394 +| | | |-- README +| | | |-- libraw1394-2.0.0.tar.bz2 +| | | |-- libraw1394.SlackBuild +| | | |-- libraw1394.info +| | | `-- slack-desc +| | |-- librsvg +| | | |-- librsvg-2.26.0.tar.bz2 +| | | |-- librsvg.SlackBuild +| | | |-- librsvg_seamonkey-config.diff.gz +| | | `-- slack-desc +| | |-- libspectre +| | | |-- libspectre-0.2.2.tar.bz2 +| | | |-- libspectre.SlackBuild +| | | `-- slack-desc +| | |-- libtermcap +| | | |-- libtermcap.SlackBuild +| | | |-- slack-desc +| | | |-- termcap-compat_1.2.3.diff.gz +| | | |-- termcap-compat_1.2.3.dsc +| | | |-- termcap-compat_1.2.3.tar.gz +| | | |-- termcap.bufsize.diff.gz +| | | `-- termcap.h.diff.gz +| | |-- libtheora +| | | |-- libtheora-1.0.tar.bz2 +| | | |-- libtheora.SlackBuild +| | | `-- slack-desc +| | |-- libtiff +| | | |-- libtiff.SlackBuild +| | | |-- slack-desc +| | | |-- tiff-3.8.2.goo-sec.diff.gz +| | | |-- tiff-3.8.2.tar.bz2 +| | | `-- tiff-3.8.2.tiffsplit.commandline.overflow.diff.gz +| | |-- libungif +| | | |-- libungif-4.1.4.tar.bz2 +| | | |-- libungif.SlackBuild +| | | `-- slack-desc +| | |-- libusb +| | | |-- libusb-0.1.12.tar.gz +| | | |-- libusb.SlackBuild +| | | `-- slack-desc +| | |-- libvisual +| | | |-- libvisual-0.4.0.tar.bz2 +| | | |-- libvisual.SlackBuild +| | | `-- slack-desc +| | |-- libvisual-plugins +| | | |-- libvisual-plugins-0.4.0.tar.bz2 +| | | |-- libvisual-plugins.SlackBuild +| | | |-- libvisual-plugins.gstreamer.diff.gz +| | | `-- slack-desc +| | |-- libvncserver +| | | |-- LibVNCServer-0.9.7.tar.bz2 +| | | |-- libvncserver.SlackBuild +| | | |-- libvncserver.info +| | | `-- slack-desc +| | |-- libvorbis +| | | |-- libvorbis-1.2.0.tar.bz2 +| | | |-- libvorbis.SlackBuild +| | | `-- slack-desc +| | |-- libwmf +| | | |-- libwmf-0.2.8.4.tar.bz2 +| | | |-- libwmf.SlackBuild +| | | |-- slack-desc +| | | `-- slack-desc-docs +| | |-- libwnck +| | | |-- libwnck-2.26.1.tar.bz2 +| | | |-- libwnck.SlackBuild +| | | `-- slack-desc +| | |-- libwpd +| | | |-- libwpd-0.8.14.tar.bz2 +| | | |-- libwpd.SlackBuild +| | | `-- slack-desc +| | |-- libxklavier +| | | |-- libxklavier-3.9.tar.bz2 +| | | |-- libxklavier.SlackBuild +| | | `-- slack-desc +| | |-- libxml2 +| | | |-- libxml2-2.7.3.tar.xz +| | | |-- libxml2.SlackBuild +| | | `-- slack-desc +| | |-- libxslt +| | | |-- libxslt-1.1.24.tar.bz2 +| | | |-- libxslt.SlackBuild +| | | `-- slack-desc +| | |-- libzip +| | | |-- libzip-0.9.tar.bz2 +| | | |-- libzip.SlackBuild +| | | |-- libzip.info +| | | `-- slack-desc +| | |-- lzo +| | | |-- lzo-2.02.tar.gz +| | | |-- lzo.SlackBuild +| | | `-- slack-desc +| | |-- mhash +| | | |-- mhash-0.9.9.tar.bz2 +| | | |-- mhash.SlackBuild +| | | `-- slack-desc +| | |-- mm +| | | |-- mm-1.4.2.tar.bz2 +| | | |-- mm.SlackBuild +| | | `-- slack-desc +| | |-- mpfr +| | | |-- mpfr-2.3.1.tar.bz2 +| | | |-- mpfr.SlackBuild +| | | |-- patches +| | | `-- slack-desc +| | |-- ncurses +| | | |-- Eterm.ti +| | | |-- ncurses-5.7.tar.gz +| | | |-- ncurses-5.7.tar.gz.asc +| | | |-- ncurses.SlackBuild +| | | |-- ncurses.mkhashsize.diff.gz +| | | |-- patches +| | | |-- rxvt.terminfo +| | | |-- screeninfo.src +| | | |-- slack-desc +| | | `-- xterm.terminfo +| | |-- neon +| | | |-- neon-0.28.4.tar.xz +| | | |-- neon.SlackBuild +| | | `-- slack-desc +| | |-- netpbm +| | | |-- Makefile.config.gz +| | | |-- netpbm-10.35.22.tar.bz2 +| | | |-- netpbm-manpages.tar.bz2 +| | | |-- netpbm.SlackBuild +| | | |-- slack-desc +| | | `-- svn-checkout-stable.sh +| | |-- openexr +| | | |-- openexr-1.6.1.tar.bz2 +| | | |-- openexr.SlackBuild +| | | |-- openexr.gcc43.diff.gz +| | | |-- openexr.info +| | | `-- slack-desc +| | |-- pango +| | | |-- pango-1.22.4.tar.bz2 +| | | |-- pango.SlackBuild +| | | |-- pango.etc.host.location.diff.gz +| | | |-- slack-desc +| | | `-- update-pango-querymodules +| | |-- parted +| | | |-- parted-1.8.8.tar.bz2 +| | | |-- parted-1.8.8.tar.bz2.sig +| | | |-- parted.SlackBuild +| | | |-- parted.SlackBuild.static +| | | |-- parted.configure.diff.gz +| | | `-- slack-desc +| | |-- pcre +| | | |-- pcre-7.7.tar.bz2 +| | | |-- pcre-7.7.tar.bz2.sig +| | | |-- pcre.SlackBuild +| | | `-- slack-desc +| | |-- phonon +| | | |-- phonon-4.3.1.tar.bz2 +| | | |-- phonon.SlackBuild +| | | `-- slack-desc +| | |-- pil +| | | |-- Imaging-1.1.6.tar.bz2 +| | | |-- pil.SlackBuild +| | | `-- slack-desc +| | |-- pilot-link +| | | |-- pilot-link-0.12.3.tar.bz2 +| | | |-- pilot-link-0.12.3.tar.bz2.asc +| | | |-- pilot-link.SlackBuild +| | | `-- slack-desc +| | |-- poppler +| | | |-- poppler-0.10.7.tar.xz +| | | |-- poppler.SlackBuild +| | | `-- slack-desc +| | |-- poppler-data +| | | |-- poppler-data-0.2.1.tar.bz2 +| | | |-- poppler-data.SlackBuild +| | | `-- slack-desc +| | |-- popt +| | | |-- popt-1.7.tar.bz2 +| | | |-- popt.SlackBuild +| | | `-- slack-desc +| | |-- pycairo +| | | |-- pycairo-1.8.4.tar.bz2 +| | | |-- pycairo.SlackBuild +| | | |-- pycairo.info +| | | `-- slack-desc +| | |-- pycups +| | | |-- pycups-1.9.45.tar.bz2 +| | | |-- pycups.SlackBuild +| | | |-- pycups.info +| | | `-- slack-desc +| | |-- pygobject +| | | |-- pygobject-2.16.1.tar.bz2 +| | | |-- pygobject.SlackBuild +| | | |-- pygobject.info +| | | `-- slack-desc +| | |-- pygtk +| | | |-- pygtk-2.14.1.tar.bz2 +| | | |-- pygtk.SlackBuild +| | | `-- slack-desc +| | |-- pyrex +| | | |-- Pyrex-0.9.8.5.tar.bz2 +| | | |-- Pyrex.url +| | | |-- pyrex.SlackBuild +| | | `-- slack-desc +| | |-- qca +| | | |-- qca-2.0.1.tar.bz2 +| | | |-- qca.SlackBuild +| | | |-- qca.info +| | | `-- slack-desc +| | |-- qca-cyrus-sasl +| | | |-- qca-cyrus-sasl-2.0.0-beta3.tar.bz2 +| | | |-- qca-cyrus-sasl.SlackBuild +| | | `-- slack-desc +| | |-- qca-gnupg +| | | |-- qca-gnupg-2.0.0-beta3.tar.bz2 +| | | |-- qca-gnupg.SlackBuild +| | | `-- slack-desc +| | |-- qca-ossl +| | | |-- qca-ossl-2.0.0-beta3.tar.bz2 +| | | |-- qca-ossl.SlackBuild +| | | |-- qca-ossl.nowhirlpool.diff.gz +| | | `-- slack-desc +| | |-- qimageblitz +| | | |-- qimageblitz-r948358.tar.bz2 +| | | |-- qimageblitz.SlackBuild +| | | |-- qimageblitz.info +| | | `-- slack-desc +| | |-- qt +| | | |-- README +| | | |-- doinst.sh.gz +| | | |-- profile.d +| | | | |-- qt4.csh +| | | | `-- qt4.sh +| | | |-- qt-r1008952.tar.xz +| | | |-- qt.SlackBuild +| | | |-- qt.mysql.h.diff.gz +| | | |-- qt.x86.cflags.diff.gz +| | | `-- slack-desc +| | |-- qtscriptgenerator +| | | |-- include-everything.patch.gz +| | | |-- qtscriptgenerator-src-0.1.0.tar.gz +| | | |-- qtscriptgenerator.SlackBuild +| | | |-- qtscriptgenerator.info +| | | `-- slack-desc +| | |-- raptor +| | | |-- raptor-1.4.18.tar.bz2 +| | | |-- raptor.SlackBuild +| | | |-- raptor.info +| | | `-- slack-desc +| | |-- rasqal +| | | |-- rasqal-0.9.16.tar.bz2 +| | | |-- rasqal.SlackBuild +| | | |-- rasqal.info +| | | `-- slack-desc +| | |-- readline +| | | |-- readline-5.2-patches +| | | | |-- readline52-001 +| | | | |-- readline52-001.sig +| | | | |-- readline52-002 +| | | | |-- readline52-002.sig +| | | | |-- readline52-003 +| | | | |-- readline52-003.sig +| | | | |-- readline52-004 +| | | | |-- readline52-004.sig +| | | | |-- readline52-005 +| | | | |-- readline52-005.sig +| | | | |-- readline52-006 +| | | | |-- readline52-006.sig +| | | | |-- readline52-007 +| | | | |-- readline52-007.sig +| | | | |-- readline52-008 +| | | | |-- readline52-008.sig +| | | | |-- readline52-009 +| | | | |-- readline52-009.sig +| | | | |-- readline52-010 +| | | | |-- readline52-010.sig +| | | | |-- readline52-011 +| | | | |-- readline52-011.sig +| | | | |-- readline52-012 +| | | | |-- readline52-012.sig +| | | | |-- readline52-013 +| | | | `-- readline52-013.sig +| | | |-- readline-5.2.tar.bz2 +| | | |-- readline.SlackBuild +| | | `-- slack-desc +| | |-- redland +| | | |-- redland-1.0.8.tar.bz2 +| | | |-- redland.SlackBuild +| | | |-- redland.info +| | | `-- slack-desc +| | |-- sdl +| | | |-- SDL-1.2.13.tar.bz2 +| | | |-- SDL_image-1.2.7.tar.bz2 +| | | |-- SDL_mixer-1.2.8.tar.bz2 +| | | |-- SDL_mixer-1.2.8.usrlocal.diff.gz +| | | |-- SDL_net-1.2.7.tar.bz2 +| | | |-- SDL_ttf-2.0.9.tar.bz2 +| | | |-- sdl.SlackBuild +| | | `-- slack-desc +| | |-- shared-mime-info +| | | |-- doinst.sh.gz +| | | |-- shared-mime-info-0.60.tar.bz2 +| | | |-- shared-mime-info.SlackBuild +| | | `-- slack-desc +| | |-- sip +| | | |-- sip-4.7.9.tar.bz2 +| | | |-- sip.SlackBuild +| | | |-- sip.info +| | | `-- slack-desc +| | |-- slang +| | | |-- slack-desc +| | | |-- slang-2.1.4.tar.bz2 +| | | |-- slang-2.1.4.tar.bz2.asc +| | | `-- slang.SlackBuild +| | |-- slang1 +| | | |-- slack-desc +| | | |-- slang-1.4.9.tar.bz2 +| | | `-- slang1.SlackBuild +| | |-- soprano +| | | |-- slack-desc +| | | |-- soprano-2.2.3.tar.bz2 +| | | |-- soprano.SlackBuild +| | | `-- soprano.info +| | |-- startup-notification +| | | |-- slack-desc +| | | |-- startup-notification-0.9.tar.bz2 +| | | `-- startup-notification.SlackBuild +| | |-- strigi +| | | |-- slack-desc +| | | |-- strigi-0.6.4.tar.bz2 +| | | |-- strigi.SlackBuild +| | | `-- strigi.info +| | |-- svgalib +| | | |-- slack-desc +| | | |-- svgalib-1.9.25-kernel-2.6.26.diff.gz +| | | |-- svgalib-1.9.25.tar.bz2 +| | | |-- svgalib.SlackBuild +| | | |-- svgalib.nohelper.diff.gz +| | | `-- svgalib.prefix.diff.gz +| | |-- t1lib +| | | |-- slack-desc +| | | |-- t1lib-5.1.2.tar.xz +| | | `-- t1lib.SlackBuild +| | |-- taglib +| | | |-- slack-desc +| | | |-- taglib-1.5.tar.bz2 +| | | `-- taglib.SlackBuild +| | |-- taglib-extras +| | | |-- slack-desc +| | | |-- taglib-extras-0.1.3.tar.gz +| | | `-- taglib-extras.SlackBuild +| | |-- tango-icon-theme +| | | |-- slack-desc +| | | |-- tango-icon-theme-0.8.90.tar.bz2 +| | | `-- tango-icon-theme.SlackBuild +| | |-- tango-icon-theme-extras +| | | |-- slack-desc +| | | |-- tango-icon-theme-extras-0.1.0.tar.bz2 +| | | `-- tango-icon-theme-extras.SlackBuild +| | |-- urwid +| | | |-- LICENSE.gz +| | | |-- slack-desc +| | | |-- urwid-0.9.8.4.tar.gz +| | | |-- urwid.SlackBuild +| | | `-- urwid.url +| | |-- vte +| | | |-- slack-desc +| | | |-- vte-0.20.5.tar.xz +| | | `-- vte.SlackBuild +| | |-- wavpack +| | | |-- slack-desc +| | | |-- wavpack-4.41.0.tar.bz2 +| | | `-- wavpack.SlackBuild +| | |-- wv2 +| | | |-- slack-desc +| | | |-- wv2-0.2.3.tar.bz2 +| | | |-- wv2-0.2.3.tar.bz2.asc +| | | `-- wv2.SlackBuild +| | `-- zlib +| | |-- slack-desc +| | |-- zlib-1.2.3.tar.bz2 +| | `-- zlib.SlackBuild +| |-- n +| | |-- alpine +| | | |-- alpine-2.00.tar.bz2 +| | | |-- alpine.SlackBuild +| | | |-- alpine.config.h.diff.gz +| | | |-- alpine.manpage.diff.gz +| | | |-- alpine.tech-notes.txt.diff.gz +| | | |-- doinst.sh.alpine +| | | |-- pinepgp-0.18.0-makefile-sed-fix.diff.gz +| | | |-- pinepgp-0.18.0.tar.gz +| | | |-- pinepgp-0.18.0.tar.gz.sig +| | | |-- pinepgp.pinegpgp.in.diff.gz +| | | |-- slack-desc.alpine +| | | `-- slack-desc.imapd +| | |-- autofs +| | | |-- autofs-3.1.7.diff.gz +| | | |-- autofs-3.1.7.tar.bz2 +| | | |-- autofs-3.1.7.tar.bz2.sign +| | | |-- autofs.SlackBuild +| | | |-- autofs.gcc.fix.diff.gz +| | | |-- autofs.x86_64.diff.gz +| | | `-- slack-desc +| | |-- biff+comsat +| | | |-- biff+comsat-0.17.diff.gz +| | | |-- biff+comsat-0.17.tar.gz +| | | |-- biff+comsat.SlackBuild +| | | |-- biff+comsat.badutmp.diff.gz +| | | |-- biff+comsat.offset.diff.gz +| | | `-- slack-desc +| | |-- bind +| | | |-- 3link.sh +| | | |-- bind-9.4.3-P3.tar.gz +| | | |-- bind-9.4.3-P3.tar.gz.asc +| | | |-- bind.SlackBuild +| | | |-- bind.man.diff.gz +| | | |-- bind.so_bsdcompat.diff.gz +| | | |-- bind.var.run.named.diff.gz +| | | |-- caching-example +| | | | |-- localhost.zone +| | | | |-- named.conf +| | | | |-- named.local +| | | | `-- named.root +| | | |-- doinst.sh.gz +| | | |-- rc.bind +| | | `-- slack-desc +| | |-- bluez-firmware +| | | |-- bluez-firmware-1.2.tar.bz2 +| | | |-- bluez-firmware.SlackBuild +| | | `-- slack-desc +| | |-- bluez-hcidump +| | | |-- bluez-hcidump-1.42.tar.bz2 +| | | |-- bluez-hcidump.SlackBuild +| | | `-- slack-desc +| | |-- bluez-libs +| | | |-- bluez-libs-3.36.tar.bz2 +| | | |-- bluez-libs.SlackBuild +| | | `-- slack-desc +| | |-- bluez-utils +| | | |-- 60-bluetooth.rules +| | | |-- README.SLACKWARE +| | | |-- add-passkey.c +| | | |-- bluetooth.conf +| | | |-- bluez-utils-3.36.tar.bz2 +| | | |-- bluez-utils.SlackBuild +| | | |-- doinst.sh.gz +| | | |-- rc.bluetooth +| | | |-- rc.bluetooth.conf +| | | |-- register-passkeys +| | | `-- slack-desc +| | |-- bootp +| | | |-- _bootp.tar.gz +| | | |-- bootp.SlackBuild +| | | |-- bootp_2.4.3-15.diff.gz +| | | |-- bootp_2.4.3.orig.tar.gz +| | | |-- bootptab.gz +| | | `-- slack-desc +| | |-- bridge-utils +| | | |-- bridge-utils-1.2.tar.gz +| | | |-- bridge-utils.SlackBuild +| | | |-- bridge-utils.isbridge.diff.gz +| | | `-- slack-desc +| | |-- bsd-finger +| | | |-- bsd-finger-0.17.diff.gz +| | | |-- bsd-finger-0.17.tar.gz +| | | |-- bsd-finger.SlackBuild +| | | `-- slack-desc +| | |-- crda +| | | |-- crda-1.0.1.tar.bz2 +| | | |-- crda.SlackBuild +| | | |-- get_regdb.sh +| | | |-- slack-desc +| | | `-- wireless-regdb-git_20090222.tar.bz2 +| | |-- curl +| | | |-- cacert.pem.bz2 +| | | |-- curl-7.19.6.tar.bz2 +| | | |-- curl-7.19.6.tar.bz2.asc +| | | |-- curl.SlackBuild +| | | `-- slack-desc +| | |-- cyrus-sasl +| | | |-- cyrus-sasl-2.1.23.tar.xz +| | | |-- cyrus-sasl.SlackBuild +| | | |-- doinst.sh.gz +| | | |-- rc.saslauthd.gz +| | | `-- slack-desc +| | |-- dhcp +| | | |-- dhcp-3.1.2p1.tar.gz +| | | |-- dhcp-3.1.2p1.tar.gz.asc +| | | |-- dhcp.SlackBuild +| | | `-- slack-desc +| | |-- dhcpcd +| | | |-- COPYRIGHT.gz +| | | |-- dhcpcd-3.2.3.tar.bz2 +| | | |-- dhcpcd.SlackBuild +| | | |-- dhcpcd.vararg.diff.gz +| | | |-- patches +| | | | |-- config.h.diff.gz +| | | | |-- dhcpcd.8.in.diff.gz +| | | | `-- dhcpcd.sh.diff.gz +| | | `-- slack-desc +| | |-- dirmngr +| | | |-- dirmngr-1.0.3.tar.bz2 +| | | |-- dirmngr.SlackBuild +| | | `-- slack-desc +| | |-- dnsmasq +| | | |-- dnsmasq-2.49.tar.bz2 +| | | |-- dnsmasq.SlackBuild +| | | |-- dnsmasq.leasedir.diff.gz +| | | |-- doinst.sh.gz +| | | |-- rc.dnsmasq.gz +| | | `-- slack-desc +| | |-- elm +| | | |-- config.sh +| | | |-- elm.SlackBuild +| | | |-- elm2.5.8.tar.bz2 +| | | `-- slack-desc +| | |-- epic4 +| | | |-- epic4-2.8.tar.bz2 +| | | |-- epic4-help-20070509.tar.bz2 +| | | |-- epic4.SlackBuild +| | | `-- slack-desc +| | |-- ethtool +| | | |-- ethtool-6.tar.gz +| | | |-- ethtool.SlackBuild +| | | `-- slack-desc +| | |-- fetchmail +| | | |-- fetchmail-6.3.11.tar.bz2 +| | | |-- fetchmail-6.3.11.tar.bz2.asc +| | | |-- fetchmail.SlackBuild +| | | `-- slack-desc +| | |-- getmail +| | | |-- getmail-4.11.0.tar.gz +| | | |-- getmail.SlackBuild +| | | `-- slack-desc +| | |-- gnupg +| | | |-- gnupg-1.4.9.tar.bz2 +| | | |-- gnupg-1.4.9.tar.bz2.sig +| | | |-- gnupg.SlackBuild +| | | `-- slack-desc.gnupg +| | |-- gnupg2 +| | | |-- gnupg-2.0.12.tar.bz2 +| | | |-- gnupg2.SlackBuild +| | | `-- slack-desc +| | |-- gnutls +| | | |-- gnutls-2.6.6.tar.xz +| | | |-- gnutls.SlackBuild +| | | `-- slack-desc +| | |-- gpa +| | | |-- doinst.sh.gz +| | | |-- gpa-0.7.5.tar.bz2 +| | | |-- gpa.SlackBuild +| | | `-- slack-desc +| | |-- gpgme +| | | |-- gpgme-1.1.8.tar.bz2 +| | | |-- gpgme.SlackBuild +| | | `-- slack-desc +| | |-- htdig +| | | |-- doinst.sh.gz +| | | |-- htdig-3.2.0b6.diff.gz +| | | |-- htdig-3.2.0b6.tar.bz2 +| | | |-- htdig.SlackBuild +| | | |-- htdig.conf.diff.gz +| | | `-- slack-desc +| | |-- httpd +| | | |-- README +| | | |-- config.layout.diff.gz +| | | |-- doinst.sh.gz +| | | |-- httpd-2.2.13.tar.bz2 +| | | |-- httpd-2.2.13.tar.bz2.asc +| | | |-- httpd.SlackBuild +| | | |-- httpd.nossldefault.diff.gz +| | | |-- httpd.runasapache.diff.gz +| | | |-- logrotate.httpd +| | | |-- rc.httpd +| | | `-- slack-desc +| | |-- icmpinfo +| | | |-- icmpinfo-1.11.diff.gz +| | | |-- icmpinfo-1.11.tar.gz +| | | |-- icmpinfo.SlackBuild +| | | `-- slack-desc +| | |-- inetd +| | | |-- _inetd.tar.gz +| | | |-- inetd-OpenBSD-1.79.diff.gz +| | | |-- inetd-OpenBSD-1.79.tar.gz +| | | |-- inetd.SlackBuild +| | | |-- inetd.loopingdos.diff.gz +| | | `-- slack-desc +| | |-- iproute2 +| | | |-- doinst.sh.gz +| | | |-- iproute2-2.6.29-1.tar.bz2 +| | | |-- iproute2-2.6.29-1.tar.bz2.sig +| | | |-- iproute2.SlackBuild +| | | |-- iproute2.dbpath.diff.gz +| | | |-- iproute2.iptablespath.diff.gz +| | | `-- slack-desc +| | |-- iptables +| | | |-- iptables-1.4.3.2.tar.bz2 +| | | |-- iptables.SlackBuild +| | | `-- slack-desc +| | |-- iptraf +| | | |-- iptraf-3.0.0.tar.gz +| | | |-- iptraf.SlackBuild +| | | |-- iptraf.paths.diff.gz +| | | |-- iptraf_3.0.0-6.diff.gz +| | | `-- slack-desc +| | |-- iputils +| | | |-- iputils-s20070202.tar.bz2 +| | | |-- iputils.SlackBuild +| | | `-- slack-desc +| | |-- ipw2100-fw +| | | |-- ipw2100-fw-1.3.tar.bz2 +| | | `-- ipw2100-fw.SlackBuild +| | |-- ipw2200-fw +| | | |-- ipw2200-fw-3.0.tar.bz2 +| | | `-- ipw2200-fw.SlackBuild +| | |-- irssi +| | | |-- doinst.sh.gz +| | | |-- irsi-0.8.14.manpage_fix.diff.gz +| | | |-- irssi-0.8.14.tar.bz2 +| | | |-- irssi-0.8.14.tar.bz2.sig +| | | |-- irssi.SlackBuild +| | | `-- slack-desc +| | |-- iw +| | | |-- iw-0.9.14.tar.bz2 +| | | |-- iw.SlackBuild +| | | |-- iw.info +| | | `-- slack-desc +| | |-- iwlwifi-3945-ucode +| | | |-- iwlwifi-3945-ucode-15.28.1.8.tar.bz2 +| | | |-- iwlwifi-3945-ucode-15.32.2.9.tar.bz2 +| | | |-- iwlwifi-3945-ucode.SlackBuild +| | | `-- slack-desc +| | |-- iwlwifi-4965-ucode +| | | |-- iwlwifi-4965-ucode-228.57.1.21.tar.bz2 +| | | |-- iwlwifi-4965-ucode-228.61.2.24.tar.bz2 +| | | |-- iwlwifi-4965-ucode.SlackBuild +| | | `-- slack-desc +| | |-- iwlwifi-5000-ucode +| | | |-- iwlwifi-5000-ucode-5.4.A.11.tar.bz2 +| | | |-- iwlwifi-5000-ucode-8.24.2.12.tar.bz2 +| | | |-- iwlwifi-5000-ucode.SlackBuild +| | | `-- slack-desc +| | |-- iwlwifi-5150-ucode +| | | |-- iwlwifi-5150-ucode-8.24.2.2.tar.bz2 +| | | |-- iwlwifi-5150-ucode.SlackBuild +| | | `-- slack-desc +| | |-- lftp +| | | |-- doinst.sh.gz +| | | |-- lftp-3.7.14.tar.bz2 +| | | |-- lftp.SlackBuild +| | | `-- slack-desc +| | |-- libassuan +| | | |-- libassuan-1.0.4.tar.bz2 +| | | |-- libassuan-1.0.4.tar.bz2.sig +| | | |-- libassuan.SlackBuild +| | | `-- slack-desc +| | |-- libgcrypt +| | | |-- libgcrypt-1.4.4.tar.bz2 +| | | |-- libgcrypt.SlackBuild +| | | `-- slack-desc +| | |-- libgpg-error +| | | |-- libgpg-error-1.7.tar.bz2 +| | | |-- libgpg-error.SlackBuild +| | | `-- slack-desc +| | |-- libksba +| | | |-- libksba-1.0.6.tar.bz2 +| | | |-- libksba.SlackBuild +| | | `-- slack-desc +| | |-- links +| | | |-- links-2.2.tar.bz2 +| | | |-- links.SlackBuild +| | | `-- slack-desc +| | |-- lynx +| | | |-- lynx.SlackBuild +| | | |-- lynx.cfg.diff.gz +| | | |-- lynx.path.diff.gz +| | | |-- lynx2.8.6rel.5.tar.bz2 +| | | `-- slack-desc +| | |-- mailx +| | | |-- doinst.sh.gz +| | | |-- mailx-12.4.tar.bz2 +| | | |-- mailx.SlackBuild +| | | `-- slack-desc +| | |-- mcabber +| | | |-- mcabber-0.9.9.tar.bz2 +| | | |-- mcabber.SlackBuild +| | | `-- slack-desc +| | |-- metamail +| | | |-- metamail-2.7.tar.xz +| | | |-- metamail.SlackBuild +| | | |-- metamail.automake.diff.xz +| | | |-- metamail_2.7-52.diff.xz +| | | `-- slack-desc +| | |-- mtr +| | | |-- mtr-0.73.configure.error.diff.gz +| | | |-- mtr-0.73.tar.bz2 +| | | |-- mtr.SlackBuild +| | | `-- slack-desc +| | |-- mutt +| | | |-- doinst.sh.gz +| | | |-- mutt-1.4.2.3.tar.bz2 +| | | |-- mutt.SlackBuild +| | | `-- slack-desc +| | |-- nc +| | | |-- nc-110-21.diff.gz +| | | |-- nc.SlackBuild +| | | |-- nc.diff.gz +| | | |-- nc110.tgz +| | | `-- slack-desc +| | |-- ncftp +| | | |-- ncftp-3.2.2-src.tar.bz2 +| | | |-- ncftp.SlackBuild +| | | `-- slack-desc +| | |-- net-snmp +| | | |-- doinst.sh.gz +| | | |-- net-snmp-5.4.2.1.tar.bz2 +| | | |-- net-snmp.SlackBuild +| | | |-- rc.snmpd +| | | |-- slack-desc +| | | `-- snmpd.conf.gz +| | |-- net-tools +| | | |-- ipmask.8 +| | | |-- ipmask.c +| | | |-- net-tools-1.60.tar.bz2 +| | | |-- net-tools.SlackBuild +| | | |-- net-tools.diff.gz +| | | |-- net-tools_1.60-19.diff.gz +| | | `-- slack-desc +| | |-- netatalk +| | | |-- afppasswd +| | | |-- doinst.sh.gz +| | | |-- netatalk-2.0.4-afpdconf.diff.gz +| | | |-- netatalk-2.0.4-without_xfs.diff.gz +| | | |-- netatalk-2.0.4.tar.xz +| | | |-- netatalk.SlackBuild +| | | |-- netatalk.etc2ps.diff.gz +| | | |-- rc.atalk.new +| | | `-- slack-desc +| | |-- netdate +| | | |-- netdate.SlackBuild +| | | |-- netdate.diff.gz +| | | |-- netdate.diff2.gz +| | | |-- netdate.tar.gz +| | | `-- slack-desc +| | |-- netkit-bootparamd +| | | |-- netkit-bootparamd-0.17.tar.gz +| | | |-- netkit-bootparamd.SlackBuild +| | | `-- slack-desc +| | |-- netkit-ftp +| | | |-- netkit-ftp-0.17.tar.gz +| | | |-- netkit-ftp.SlackBuild +| | | `-- slack-desc +| | |-- netkit-ntalk +| | | |-- netkit-ntalk-0.11.diff.gz +| | | |-- netkit-ntalk-0.11.tar.gz +| | | |-- netkit-ntalk-0.17.diff.gz +| | | |-- netkit-ntalk-0.17.tar.gz +| | | |-- netkit-ntalk.SlackBuild +| | | |-- ntalk-0.17-slackware-alt-talkd.patch.gz +| | | `-- slack-desc +| | |-- netkit-routed +| | | |-- netkit-routed-0.17.diff.gz +| | | |-- netkit-routed-0.17.tar.gz +| | | |-- netkit-routed.SlackBuild +| | | |-- routed.18.candidate.final.patch.gz +| | | `-- slack-desc +| | |-- netkit-rsh +| | | |-- netkit-rsh-0.17.tar.gz +| | | |-- netkit-rsh.SlackBuild +| | | `-- slack-desc +| | |-- netkit-rusers +| | | |-- netkit-rusers-0.17.diff.gz +| | | |-- netkit-rusers-0.17.tar.gz +| | | |-- netkit-rusers.SlackBuild +| | | `-- slack-desc +| | |-- netkit-rwall +| | | |-- netkit-rwall-0.17.tar.gz +| | | |-- netkit-rwall.SlackBuild +| | | `-- slack-desc +| | |-- netkit-rwho +| | | |-- netkit-rwho-0.17.diff.gz +| | | |-- netkit-rwho-0.17.tar.gz +| | | |-- netkit-rwho.SlackBuild +| | | |-- rwhod_getloadavg.diff.gz +| | | `-- slack-desc +| | |-- netkit-timed +| | | |-- netkit-timed-0.17.diff.gz +| | | |-- netkit-timed-0.17.tar.gz +| | | |-- netkit-timed.SlackBuild +| | | `-- slack-desc +| | |-- netpipes +| | | |-- _netpipes.tar.gz +| | | |-- netpipes-4.2-export.tar.gz +| | | |-- netpipes.SlackBuild +| | | `-- slack-desc +| | |-- netwatch +| | | |-- netwatch-1.3.0-1.tar.gz +| | | |-- netwatch.SlackBuild +| | | |-- netwatch.makefile.diff.gz +| | | |-- netwatch.phonemyself.diff.gz +| | | `-- slack-desc +| | |-- network-scripts +| | | |-- README.rc.inet1 +| | | |-- doinst.sh.gz +| | | |-- manpages +| | | | |-- rc.inet1.8 +| | | | `-- rc.inet1.conf.5 +| | | |-- network-scripts.SlackBuild +| | | |-- scripts +| | | | |-- HOSTNAME +| | | | |-- host.conf +| | | | |-- hosts +| | | | |-- hosts.allow +| | | | |-- hosts.deny +| | | | |-- hosts.equiv +| | | | |-- netconfig +| | | | |-- networks +| | | | |-- nntpserver +| | | | |-- protocols +| | | | |-- rc.inet1 +| | | | |-- rc.inet1.conf +| | | | |-- rc.inet2 +| | | | |-- rc.ip_forward +| | | | |-- resolv.conf +| | | | `-- setup.netconfig +| | | `-- slack-desc +| | |-- netwrite +| | | |-- netwrite-0.17.diff.gz +| | | |-- netwrite-0.17.tar.gz +| | | |-- netwrite.SlackBuild +| | | `-- slack-desc +| | |-- newspost +| | | |-- newspost-2.1.1.tar.gz +| | | |-- newspost.SlackBuild +| | | `-- slack-desc +| | |-- nfs-utils +| | | |-- _nfs-utils.tar.gz +| | | |-- nfs-utils-1.1.4.tar.bz2 +| | | |-- nfs-utils-1.1.4.tar.bz2.sign +| | | |-- nfs-utils.SlackBuild +| | | |-- nfs-utils.lwrap.needs.lnsl.diff.gz +| | | |-- rc.nfsd +| | | `-- slack-desc +| | |-- nmap +| | | |-- nmap-5.00.tar.xz +| | | |-- nmap.SlackBuild +| | | |-- nmap.ndiff.mandir.diff.gz +| | | `-- slack-desc +| | |-- nn +| | | |-- NNTP.gz +| | | |-- doinst.sh.gz +| | | |-- nn-6.7.3.tar.bz2 +| | | |-- nn.SlackBuild +| | | |-- nn.badnntphost.diff.gz +| | | |-- nn.destdir.diff.gz +| | | |-- nn.diff.gz +| | | |-- nntpserver.gz +| | | `-- slack-desc +| | |-- ntp +| | | |-- doinst.sh.gz +| | | |-- ntp-4.2.4p7.tar.xz +| | | |-- ntp.SlackBuild +| | | |-- ntp.conf +| | | |-- ntp.keys +| | | |-- rc.ntpd +| | | `-- slack-desc +| | |-- obexftp +| | | |-- obexftp-0.23.tar.bz2 +| | | |-- obexftp.SlackBuild +| | | `-- slack-desc +| | |-- openldap-client +| | | |-- doinst.sh.gz +| | | |-- openldap-2.3.43.tar.bz2 +| | | |-- openldap-client.SlackBuild +| | | `-- slack-desc +| | |-- openobex +| | | |-- openobex-1.3.tar.bz2 +| | | |-- openobex.SlackBuild +| | | `-- slack-desc +| | |-- openssh +| | | |-- doinst.sh.gz +| | | |-- openssh-5.2p1.tar.bz2 +| | | |-- openssh.SlackBuild +| | | |-- rc.sshd +| | | `-- slack-desc +| | |-- openssl +| | | |-- certwatch.gz +| | | |-- doinst.sh-openssl-solibs.gz +| | | |-- doinst.sh-openssl.gz +| | | |-- openssl-0.9.8k.tar.bz2 +| | | |-- openssl.SlackBuild +| | | |-- openssl.no-extssl.diff.gz +| | | |-- openssl.optsx86.diff.gz +| | | |-- openssl.soname.diff.gz +| | | |-- slack-desc.openssl +| | | `-- slack-desc.openssl-solibs +| | |-- openvpn +| | | |-- README +| | | |-- openvpn-2.0.9.tar.gz +| | | |-- openvpn-2.0.9.tar.gz.asc +| | | |-- openvpn.SlackBuild +| | | |-- openvpn.conf.sample +| | | `-- slack-desc +| | |-- php +| | | |-- channels +| | | | |-- pear.php.net.reg +| | | | `-- pecl.php.net.reg +| | | |-- doinst.sh.gz +| | | |-- mod_php.conf.example +| | | |-- pear +| | | |-- php-5.2.10.tar.bz2 +| | | |-- php.SlackBuild +| | | |-- php.ini.diff.gz +| | | |-- php.recommended.ini.diff.gz +| | | `-- slack-desc +| | |-- pidentd +| | | |-- doinst.sh.gz +| | | |-- pidentd-3.0.19.tar.gz +| | | |-- pidentd-3.0.19.tar.gz.sig +| | | |-- pidentd.SlackBuild +| | | |-- pidentd.conf.diff.gz +| | | `-- slack-desc +| | |-- pinentry +| | | |-- pinentry-0.7.6.tar.bz2 +| | | |-- pinentry.SlackBuild +| | | `-- slack-desc +| | |-- popa3d +| | | |-- doinst.sh.gz +| | | |-- popa3d-1.0.2.tar.gz +| | | |-- popa3d-1.0.2.tar.gz.sign +| | | |-- popa3d.SlackBuild +| | | |-- popa3d.diff.gz +| | | `-- slack-desc +| | |-- portmap +| | | |-- doinst.sh.gz +| | | |-- portmap-6.0.tar.bz2 +| | | |-- portmap.SlackBuild +| | | |-- portmap.lwrap.needs.lnsl.diff.gz +| | | |-- rc.rpc.gz +| | | `-- slack-desc +| | |-- ppp +| | | |-- doinst.sh.gz +| | | |-- options.new.gz +| | | |-- ppp-2.4.4.tar.bz2 +| | | |-- ppp.SlackBuild +| | | |-- ppp.slack.diff.gz +| | | |-- pppsetup-1.98.backupfiles.diff.gz +| | | |-- pppsetup-1.98.moredevs.diff.gz +| | | |-- pppsetup-1.98.pppoff.diff.gz +| | | |-- pppsetup-1.98.slack.diff.gz +| | | |-- pppsetup-1.98.tar.gz +| | | |-- radius.msdict.gz +| | | |-- radiusclient-0.3.2.tar.bz2 +| | | |-- realms.gz +| | | |-- servers.gz +| | | `-- slack-desc +| | |-- procmail +| | | |-- _procmail.tar.gz +| | | |-- procmail-3.22.tar.gz +| | | |-- procmail-3.22.tar.gz.sig +| | | |-- procmail.SlackBuild +| | | |-- procmail.lfs.diff.gz +| | | |-- procmail_3.22-5.diff.gz +| | | `-- slack-desc +| | |-- proftpd +| | | |-- _proftpd.tar.gz +| | | |-- doinst.sh.gz +| | | |-- etc +| | | | |-- ftpusers +| | | | `-- proftpd.conf +| | | |-- proftpd-1.3.2.tar.bz2 +| | | |-- proftpd-1.3.2.tar.bz2.asc +| | | |-- proftpd.SlackBuild +| | | `-- slack-desc +| | |-- pssh +| | | |-- pssh-1.3.1.tar.gz +| | | |-- pssh.SlackBuild +| | | `-- slack-desc +| | |-- pth +| | | |-- pth-2.0.7.tar.bz2 +| | | |-- pth.SlackBuild +| | | `-- slack-desc +| | |-- rdist +| | | |-- _rdist.tar.gz +| | | |-- rdist-6.1.5-bison.diff.gz +| | | |-- rdist-6.1.5-cleanup.diff.gz +| | | |-- rdist-6.1.5-varargs.diff.gz +| | | |-- rdist-6.1.5.diff.gz +| | | |-- rdist-6.1.5.tar.gz +| | | |-- rdist.SlackBuild +| | | `-- slack-desc +| | |-- rp-pppoe +| | | |-- doinst.sh.gz +| | | |-- rp-pppoe-3.10.tar.gz +| | | |-- rp-pppoe.SlackBuild +| | | `-- slack-desc +| | |-- rsync +| | | |-- rsync-3.0.6.tar.xz +| | | |-- rsync.SlackBuild +| | | `-- slack-desc +| | |-- rt61-firmware +| | | |-- RT61_Firmware_V1.2.zip +| | | |-- rt61-firmware.SlackBuild +| | | `-- slack-desc +| | |-- rt71w-firmware +| | | |-- RT71W_Firmware_V1.8.zip +| | | |-- rt71w-firmware.SlackBuild +| | | `-- slack-desc +| | |-- samba +| | | |-- doinst.sh.gz +| | | |-- rc.samba +| | | |-- samba-3.2.13.tar.xz +| | | |-- samba.SlackBuild +| | | |-- slack-desc +| | | |-- smb.conf.default +| | | |-- smb.conf.default.orig +| | | `-- smb.conf.diff.gz +| | |-- sendmail +| | | |-- Build.gz +| | | |-- SlackBuild +| | | |-- SlackBuild-sendmail +| | | |-- SlackBuild-sendmail-cf +| | | |-- _sendmail.tar.gz +| | | |-- linux.uucp.mc +| | | |-- sendmail-slackware-tls-sasl.mc +| | | |-- sendmail-slackware-tls.mc +| | | |-- sendmail-slackware.mc +| | | |-- sendmail.8.14.3.tar.gz +| | | |-- sendmail.8.14.3.tar.gz.sig +| | | |-- site.config.m4 +| | | |-- slack-desc.sendmail +| | | `-- slack-desc.sendmail-cf +| | |-- slrn +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- slrn-0.9.9p1.tar.bz2 +| | | `-- slrn.SlackBuild +| | |-- snownews +| | | |-- slack-desc +| | | |-- snownews-1.5.11.tar.gz +| | | |-- snownews-1.5.11.tar.gz.asc +| | | `-- snownews.SlackBuild +| | |-- stunnel +| | | |-- doinst.sh.gz +| | | |-- generate-stunnel-key.sh +| | | |-- slack-desc +| | | |-- stunnel-4.17.tar.gz +| | | |-- stunnel-4.17.tar.gz.asc +| | | `-- stunnel.SlackBuild +| | |-- tcp_wrappers +| | | |-- slack-desc +| | | |-- tcp_wrappers.SlackBuild +| | | `-- tcp_wrappers_7.6.tar.gz +| | |-- tcpdump +| | | |-- libpcap-1.0.0.tar.gz +| | | |-- libpcap-1.0.0.tar.gz.sig +| | | |-- slack-desc +| | | |-- tcpdump-4.0.0.tar.gz +| | | |-- tcpdump-4.0.0.tar.gz.sig +| | | `-- tcpdump.SlackBuild +| | |-- telnet +| | | |-- netkit-telnet-0.17-ayt.patch.gz +| | | |-- netkit-telnet-0.17.diff.gz +| | | |-- netkit-telnet-0.17.tar.gz +| | | |-- slack-desc +| | | |-- telnet-OpenBSD-014_telnet.diff.gz +| | | |-- telnet-OpenBSD-20020321.diff.gz +| | | |-- telnet-OpenBSD-20020321.tar.gz +| | | `-- telnet.SlackBuild +| | |-- tftp-hpa +| | | |-- slack-desc +| | | |-- tftp-hpa-0.48.tar.bz2 +| | | |-- tftp-hpa-0.48.tar.bz2.sign +| | | `-- tftp-hpa.SlackBuild +| | |-- tin +| | | |-- slack-desc +| | | |-- tin-1.8.2.tar.bz2 +| | | |-- tin-1.8.2.tar.bz2.sign +| | | `-- tin.SlackBuild +| | |-- traceroute +| | | |-- slack-desc +| | | |-- traceroute-1.4a12.tar.gz +| | | |-- traceroute.SlackBuild +| | | |-- traceroute.no.domain.strip.diff.gz +| | | `-- traceroute_1.4a12-5.diff.gz +| | |-- trn +| | | |-- _trn.tar.gz +| | | |-- config.sh.gz +| | | |-- config.x86_64.sh.gz +| | | |-- slack-desc +| | | |-- trn-3.6.tar.gz +| | | `-- trn.SlackBuild +| | |-- uucp +| | | |-- _uucp.tar.gz +| | | |-- policy.h.diff.gz +| | | |-- slack-desc +| | | |-- uucp-1.07.tar.gz +| | | `-- uucp.SlackBuild +| | |-- vlan +| | | |-- slack-desc +| | | |-- vlan.1.9.tar.bz2 +| | | `-- vlan.SlackBuild +| | |-- vsftpd +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- vsftpd-2.1.2.tar.xz +| | | |-- vsftpd.SlackBuild +| | | |-- vsftpd.builddefs.diff.gz +| | | |-- vsftpd.conf.diff.gz +| | | |-- vsftpd.log.gz +| | | `-- vsftpd.vsf_findlibs.sh.diff.gz +| | |-- wget +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- wget-1.11.4.tar.bz2 +| | | `-- wget.SlackBuild +| | |-- whois +| | | |-- slack-desc +| | | |-- whois.SlackBuild +| | | `-- whois_4.7.26.tar.gz +| | |-- wireless-tools +| | | |-- doinst.sh.gz +| | | |-- scripts +| | | | |-- rc.wireless +| | | | `-- rc.wireless.conf +| | | |-- slack-desc +| | | |-- wireless_tools.29.tar.gz +| | | |-- wireless_tools.SlackBuild +| | | |-- wireless_tools.nowhine.diff.gz +| | | `-- wireless_tools.static.diff.gz +| | |-- wpa_supplicant +| | | |-- README.slackware +| | | |-- slack-desc +| | | |-- wpa_gui.png +| | | |-- wpa_supplicant-0.6.9.tar.bz2 +| | | |-- wpa_supplicant.SlackBuild +| | | `-- wpa_supplicant.defconfig +| | |-- yptools +| | | |-- nsswitch.conf-nis.gz +| | | |-- rc.yp.gz +| | | |-- slack-desc +| | | |-- yp-tools-2.9.tar.bz2 +| | | |-- yp-tools-2.9.tar.bz2.sign +| | | |-- ypbind-mt-1.19.1.tar.bz2 +| | | |-- ypbind-mt-1.19.1.tar.bz2.sign +| | | |-- ypserv-2.18.tar.bz2 +| | | |-- ypserv-2.18.tar.bz2.sign +| | | `-- yptools.SlackBuild +| | |-- ytalk +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- ytalk-3.3.0.tar.bz2 +| | | `-- ytalk.SlackBuild +| | `-- zd1211-firmware +| | |-- zd1211-firmware-1.4.tar.bz2 +| | `-- zd1211-firmware.SlackBuild +| |-- t +| | |-- tetex +| | | |-- jadetex-3.13.tar.gz +| | | |-- jadetex.build +| | | |-- profile.d +| | | | |-- tetex.csh +| | | | `-- tetex.sh +| | | |-- slack-desc.tetex +| | | |-- slack-desc.tetex-doc +| | | |-- tetex-src-3.0.tar.xz +| | | |-- tetex-texmf-3.0.tar.xz +| | | |-- tetex-texmfsrc-3.0.tar.xz +| | | |-- tetex.CVE-2005-3193.diff.gz +| | | |-- tetex.SlackBuild +| | | |-- tetex.amstex.fmtutil.diff.gz +| | | |-- tetex.browsers.diff.gz +| | | |-- tetex.dvipdfm.mkstemp.diff.gz +| | | |-- tetex.etex.diff.gz +| | | |-- tetex.fontcachedirinhome.diff.gz +| | | |-- tetex.scripts.mktemp.diff.gz +| | | |-- tetex.tmp.cleanup.diff.gz +| | | `-- tetex.var.fonts.diff.gz +| | |-- transfig +| | | |-- slack-desc +| | | |-- transfig.3.2.4-gcc4.patch.gz +| | | |-- transfig.3.2.4.tar.gz +| | | |-- transfig.SlackBuild +| | | `-- transfig.diff.gz +| | `-- xfig +| | |-- slack-desc +| | |-- xfig-3.2.4-mkstemp.diff.gz +| | |-- xfig.3.2.3d-international-std-fonts.diff.gz +| | |-- xfig.3.2.3d-xcolor.diff.gz +| | |-- xfig.3.2.3d-xim.diff.gz +| | |-- xfig.3.2.4-gcc4.diff.gz +| | |-- xfig.3.2.4-locale.diff.gz +| | |-- xfig.3.2.4-null.diff.gz +| | |-- xfig.3.2.4-quiet.diff.gz +| | |-- xfig.3.2.4-urw-fonts.diff.gz +| | |-- xfig.3.2.4.diff.gz +| | |-- xfig.3.2.4.full.tar.bz2 +| | |-- xfig.SlackBuild +| | |-- xfig.docs.location.diff.gz +| | |-- xfig.fig.ad.diff.gz +| | |-- xfig.no.pdf.ref.diff.gz +| | `-- xfig.no.xfig_ref_en.pdf.diff.gz +| |-- tcl +| | |-- expect +| | | |-- expect-5.44.1.11.tar.bz2 +| | | |-- expect.SlackBuild +| | | |-- expect.exp_main_tk.c.version.require.diff.gz +| | | `-- slack-desc +| | |-- hfsutils +| | | |-- hfsutils-3.2.6.tar.gz +| | | |-- hfsutils-3.2.6.tar.gz.sign +| | | |-- hfsutils.SlackBuild +| | | |-- hfsutils.errno.diff.gz +| | | `-- slack-desc +| | |-- tcl +| | | |-- slack-desc +| | | |-- tcl.SlackBuild +| | | `-- tcl8.5.7-src.tar.xz +| | |-- tclx +| | | |-- slack-desc +| | | |-- tclx-8.4.configure.diff.gz +| | | |-- tclx-8.4.gcc4.diff.gz +| | | |-- tclx.SlackBuild +| | | `-- tclx8.4.tar.bz2 +| | |-- tix +| | | |-- Tix8.4.3.tar.gz +| | | |-- slack-desc +| | | |-- tix.SlackBuild +| | | |-- tix.soname.patch.gz +| | | `-- tix.tcl8.5.patch.gz +| | `-- tk +| | |-- slack-desc +| | |-- tk.SlackBuild +| | `-- tk8.5.7-src.tar.xz +| |-- x +| | |-- anthy +| | | |-- anthy-9100e.tar.gz +| | | |-- anthy.SlackBuild +| | | `-- slack-desc +| | |-- dejavu-fonts-ttf +| | | |-- dejavu-fonts-ttf-2.29.tar.bz2 +| | | |-- dejavu-fonts-ttf.SlackBuild +| | | |-- doinst.sh.gz +| | | `-- slack-desc +| | |-- fontconfig +| | | |-- fontconfig-2.6.0.tar.bz2 +| | | |-- fontconfig.SlackBuild +| | | |-- fontconfig.dejavu.diff.gz +| | | |-- fontconfig.font.dir.list.diff.gz +| | | |-- setup.05.fontconfig +| | | `-- slack-desc +| | |-- glew +| | | |-- glew-1.5.1-src.tar.xz +| | | |-- glew.SlackBuild +| | | |-- glew.url +| | | `-- slack-desc +| | |-- libdrm +| | | |-- libdrm-2.4.12.tar.xz +| | | |-- libdrm.SlackBuild +| | | `-- slack-desc +| | |-- liberation-fonts-ttf +| | | |-- 60-liberation.conf +| | | |-- doinst.sh.gz +| | | |-- liberation-fonts-1.04.tar.bz2 +| | | |-- liberation-fonts-ttf.SlackBuild +| | | `-- slack-desc +| | |-- libhangul +| | | |-- libhangul-0.0.7.tar.gz +| | | |-- libhangul.SlackBuild +| | | `-- slack-desc +| | |-- m17n-lib +| | | |-- internal-flt.h +| | | |-- m17n-db-1.5.4.tar.gz +| | | |-- m17n-docs-1.5.2.tar.gz +| | | |-- m17n-docs_makefile.patch +| | | |-- m17n-lib-1.5.4.tar.gz +| | | |-- m17n-lib.SlackBuild +| | | `-- slack-desc +| | |-- mesa +| | | |-- MesaDemos-7.5.tar.xz +| | | |-- MesaGLUT-7.5.tar.xz +| | | |-- MesaLib-7.5.tar.xz +| | | |-- README.GIT +| | | |-- get-mesa.sh +| | | |-- mesa.SlackBuild +| | | `-- slack-desc +| | |-- sazanami-fonts-ttf +| | | |-- sazanami-20040629.tar.bz2 +| | | |-- sazanami-fonts-ttf.SlackBuild +| | | `-- slack-desc +| | |-- scim +| | | |-- scim-1.4.9.tar.gz +| | | |-- scim-setup.desktop +| | | |-- scim.SlackBuild +| | | |-- scim.desktop +| | | `-- slack-desc +| | |-- scim-anthy +| | | |-- scim-anthy-1.2.4.tar.gz +| | | |-- scim-anthy.SlackBuild +| | | |-- scim-anthy.gcc43.diff.gz +| | | `-- slack-desc +| | |-- scim-bridge +| | | |-- scim-bridge-0.4.16.tar.gz +| | | |-- scim-bridge.SlackBuild +| | | `-- slack-desc +| | |-- scim-hangul +| | | |-- scim-hangul-0.3.2.tar.gz +| | | |-- scim-hangul.SlackBuild +| | | |-- scim-hangul.gcc43.diff.gz +| | | `-- slack-desc +| | |-- scim-input-pad +| | | |-- scim-input-pad-0.1.2.tar.bz2 +| | | |-- scim-input-pad.SlackBuild +| | | `-- slack-desc +| | |-- scim-m17n +| | | |-- scim-m17n-0.2.3.tar.gz +| | | |-- scim-m17n.SlackBuild +| | | `-- slack-desc +| | |-- scim-pinyin +| | | |-- scim-pinyin-0.5.91.tar.gz +| | | |-- scim-pinyin.SlackBuild +| | | |-- scim-pinyin.gcc43.diff.gz +| | | `-- slack-desc +| | |-- scim-tables +| | | |-- scim-tables-0.5.9.tar.gz +| | | |-- scim-tables.SlackBuild +| | | `-- slack-desc +| | |-- sinhala_lklug-font-ttf +| | | |-- sinhala_lklug-font-ttf.SlackBuild +| | | |-- sinhala_lklug.ttf +| | | `-- slack-desc +| | |-- tibmachuni-font-ttf +| | | |-- TibetanMachineUnicodeFont.zip +| | | |-- slack-desc +| | | `-- tibmachuni-font-ttf.SlackBuild +| | |-- ttf-indic-fonts +| | | |-- COPYING.bz2 +| | | |-- Samyak_Malayalam.ttf.bz2 +| | | |-- Samyak_Malayalam.url +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- ttf-indic-fonts-0.4.7.4.tar.bz2 +| | | |-- ttf-indic-fonts.SlackBuild +| | | `-- ttf-indic-fonts.copyright.diff.gz +| | |-- wqy-zenhei-font-ttf +| | | |-- slack-desc +| | | |-- wqy-zenhei-0.8.38-1.tar.bz2 +| | | `-- wqy-zenhei-font-ttf.SlackBuild +| | |-- x11 +| | | |-- arch.use.flags +| | | |-- build +| | | | |-- appres +| | | | |-- bdftopcf +| | | | |-- bigreqsproto +| | | | |-- bitmap +| | | | |-- compiz +| | | | |-- compositeproto +| | | | |-- damageproto +| | | | |-- dmxproto +| | | | |-- editres +| | | | |-- encodings +| | | | |-- evieext +| | | | |-- fixesproto +| | | | |-- font-adobe-100dpi +| | | | |-- font-adobe-75dpi +| | | | |-- font-adobe-utopia-100dpi +| | | | |-- font-adobe-utopia-75dpi +| | | | |-- font-adobe-utopia-type1 +| | | | |-- font-alias +| | | | |-- font-arabic-misc +| | | | |-- font-bh-100dpi +| | | | |-- font-bh-75dpi +| | | | |-- font-bh-lucidatypewriter-100dpi +| | | | |-- font-bh-lucidatypewriter-75dpi +| | | | |-- font-bh-ttf +| | | | |-- font-bh-type1 +| | | | |-- font-bitstream-100dpi +| | | | |-- font-bitstream-75dpi +| | | | |-- font-bitstream-speedo +| | | | |-- font-bitstream-type1 +| | | | |-- font-cronyx-cyrillic +| | | | |-- font-cursor-misc +| | | | |-- font-daewoo-misc +| | | | |-- font-dec-misc +| | | | |-- font-ibm-type1 +| | | | |-- font-isas-misc +| | | | |-- font-jis-misc +| | | | |-- font-micro-misc +| | | | |-- font-misc-cyrillic +| | | | |-- font-misc-ethiopic +| | | | |-- font-misc-meltho +| | | | |-- font-misc-misc +| | | | |-- font-mutt-misc +| | | | |-- font-schumacher-misc +| | | | |-- font-screen-cyrillic +| | | | |-- font-sony-misc +| | | | |-- font-sun-misc +| | | | |-- font-util +| | | | |-- font-winitzki-cyrillic +| | | | |-- font-xfree86-type1 +| | | | |-- fontcacheproto +| | | | |-- fontsproto +| | | | |-- gccmakedep +| | | | |-- iceauth +| | | | |-- ico +| | | | |-- imake +| | | | |-- kbproto +| | | | |-- lbxproxy +| | | | |-- libICE +| | | | |-- libXScrnSaver +| | | | |-- libXTrap +| | | | |-- libXau +| | | | |-- libXcomposite +| | | | |-- libXcursor +| | | | |-- libXdamage +| | | | |-- libXdmcp +| | | | |-- libXevie +| | | | |-- libXfixes +| | | | |-- libXfontcache +| | | | |-- libXft +| | | | |-- libXinerama +| | | | |-- libXmu +| | | | |-- libXp +| | | | |-- libXpm +| | | | |-- libXprintAppUtil +| | | | |-- libXprintUtil +| | | | |-- libXrender +| | | | |-- libXres +| | | | |-- libXtst +| | | | |-- libXv +| | | | |-- libXvMC +| | | | |-- libXxf86dga +| | | | |-- libXxf86misc +| | | | |-- libXxf86vm +| | | | |-- libdmx +| | | | |-- libfontenc +| | | | |-- liblbxutil +| | | | |-- libpthread-stubs +| | | | |-- libxkbfile +| | | | |-- libxkbui +| | | | |-- listres +| | | | |-- lndir +| | | | |-- luit +| | | | |-- makedepend +| | | | |-- mkcomposecache +| | | | |-- mkfontdir +| | | | |-- oclock +| | | | |-- printproto +| | | | |-- proxymngr +| | | | |-- recordproto +| | | | |-- rendercheck +| | | | |-- resourceproto +| | | | |-- scripts +| | | | |-- scrnsaverproto +| | | | |-- smproxy +| | | | |-- trapproto +| | | | |-- twm +| | | | |-- videoproto +| | | | |-- viewres +| | | | |-- x11perf +| | | | |-- xauth +| | | | |-- xbacklight +| | | | |-- xbiff +| | | | |-- xbitmaps +| | | | |-- xcalc +| | | | |-- xclipboard +| | | | |-- xclock +| | | | |-- xcmiscproto +| | | | |-- xcmsdb +| | | | |-- xcompmgr +| | | | |-- xconsole +| | | | |-- xcursor-themes +| | | | |-- xcursorgen +| | | | |-- xdbedizzy +| | | | |-- xditview +| | | | |-- xdriinfo +| | | | |-- xev +| | | | |-- xeyes +| | | | |-- xf86-input-elographics +| | | | |-- xf86-input-mutouch +| | | | |-- xf86-video-ati +| | | | |-- xf86-video-nsc +| | | | |-- xf86-video-openchrome +| | | | |-- xf86-video-v4l +| | | | |-- xf86bigfontproto +| | | | |-- xf86dga +| | | | |-- xf86dgaproto +| | | | |-- xf86driproto +| | | | |-- xf86miscproto +| | | | |-- xf86rushproto +| | | | |-- xf86vidmodeproto +| | | | |-- xfd +| | | | |-- xfindproxy +| | | | |-- xfontsel +| | | | |-- xfwp +| | | | |-- xgamma +| | | | |-- xgc +| | | | |-- xhost +| | | | |-- xineramaproto +| | | | |-- xkbevd +| | | | |-- xkbprint +| | | | |-- xkbutils +| | | | |-- xkill +| | | | |-- xload +| | | | |-- xlogo +| | | | |-- xlsatoms +| | | | |-- xlsclients +| | | | |-- xlsfonts +| | | | |-- xmag +| | | | |-- xman +| | | | |-- xmessage +| | | | |-- xmh +| | | | |-- xmodmap +| | | | |-- xmore +| | | | |-- xorg-cf-files +| | | | |-- xorg-docs +| | | | |-- xorg-sgml-doctools +| | | | |-- xplsprinters +| | | | |-- xpr +| | | | |-- xprehashprinterlist +| | | | |-- xprop +| | | | |-- xproxymanagementprotocol +| | | | |-- xrdb +| | | | |-- xrefresh +| | | | |-- xset +| | | | |-- xsetmode +| | | | |-- xsetpointer +| | | | |-- xsetroot +| | | | |-- xsm +| | | | |-- xstdcmap +| | | | |-- xtrap +| | | | |-- xvidtune +| | | | |-- xvinfo +| | | | `-- xwud +| | | |-- configure +| | | | |-- compiz +| | | | |-- configure +| | | | |-- libX11 +| | | | |-- libXt +| | | | |-- pixman +| | | | |-- setxkbmap +| | | | |-- xf86-video-ati +| | | | |-- xf86-video-nv +| | | | |-- xfs +| | | | |-- xkbcomp +| | | | |-- xkeyboard-config +| | | | |-- xorg-docs +| | | | `-- xorg-server +| | | |-- doinst.sh +| | | | |-- font-adobe-100dpi +| | | | |-- font-adobe-75dpi +| | | | |-- font-adobe-utopia-100dpi +| | | | |-- font-adobe-utopia-75dpi +| | | | |-- font-adobe-utopia-type1 +| | | | |-- font-arabic-misc +| | | | |-- font-bh-100dpi +| | | | |-- font-bh-75dpi +| | | | |-- font-bh-lucidatypewriter-100dpi +| | | | |-- font-bh-lucidatypewriter-75dpi +| | | | |-- font-bh-ttf +| | | | |-- font-bh-type1 +| | | | |-- font-bitstream-100dpi +| | | | |-- font-bitstream-75dpi +| | | | |-- font-bitstream-speedo +| | | | |-- font-bitstream-type1 +| | | | |-- font-cronyx-cyrillic +| | | | |-- font-cursor-misc +| | | | |-- font-daewoo-misc +| | | | |-- font-dec-misc +| | | | |-- font-ibm-type1 +| | | | |-- font-isas-misc +| | | | |-- font-jis-misc +| | | | |-- font-micro-misc +| | | | |-- font-misc-cyrillic +| | | | |-- font-misc-ethiopic +| | | | |-- font-misc-meltho +| | | | |-- font-misc-misc +| | | | |-- font-mutt-misc +| | | | |-- font-schumacher-misc +| | | | |-- font-screen-cyrillic +| | | | |-- font-sony-misc +| | | | |-- font-sun-misc +| | | | |-- font-winitzki-cyrillic +| | | | |-- font-xfree86-type1 +| | | | |-- xdm +| | | | |-- xfs +| | | | |-- xinit +| | | | |-- xkeyboard-config +| | | | `-- xorg-cf-files +| | | |-- makepkg +| | | | `-- xorg-server +| | | |-- modularize +| | | |-- noarch +| | | |-- package-blacklist +| | | |-- patch +| | | | |-- compiz +| | | | | |-- compiz-0.7.8-kde42-crash.patch.gz +| | | | | |-- compiz-0.7.8-kde42-krunner.patch.gz +| | | | | `-- compiz-0.7.8-kde42.patch.gz +| | | | |-- compiz.patch +| | | | |-- xorg-server +| | | | | `-- x11.startwithblackscreen.diff.gz +| | | | |-- xorg-server.patch +| | | | |-- xscope +| | | | | `-- xscope-1.1-scope.c.diff.gz +| | | | `-- xscope.patch +| | | |-- post-install +| | | | |-- beforelight.post-install +| | | | |-- encodings.post-install +| | | | |-- font-adobe-100dpi.post-install +| | | | |-- font-adobe-75dpi.post-install +| | | | |-- font-adobe-utopia-100dpi.post-install +| | | | |-- font-adobe-utopia-75dpi.post-install +| | | | |-- font-adobe-utopia-type1.post-install +| | | | |-- font-alias.post-install +| | | | |-- font-arabic-misc.post-install +| | | | |-- font-bh-100dpi.post-install +| | | | |-- font-bh-75dpi.post-install +| | | | |-- font-bh-lucidatypewriter-100dpi.post-install +| | | | |-- font-bh-lucidatypewriter-75dpi.post-install +| | | | |-- font-bh-ttf.post-install +| | | | |-- font-bh-type1.post-install +| | | | |-- font-bitstream-100dpi.post-install +| | | | |-- font-bitstream-75dpi.post-install +| | | | |-- font-bitstream-speedo.post-install +| | | | |-- font-bitstream-type1.post-install +| | | | |-- font-cronyx-cyrillic.post-install +| | | | |-- font-cursor-misc.post-install +| | | | |-- font-daewoo-misc.post-install +| | | | |-- font-dec-misc.post-install +| | | | |-- font-ibm-type1.post-install +| | | | |-- font-isas-misc.post-install +| | | | |-- font-jis-misc.post-install +| | | | |-- font-micro-misc.post-install +| | | | |-- font-misc-cyrillic.post-install +| | | | |-- font-misc-ethiopic.post-install +| | | | |-- font-misc-meltho.post-install +| | | | |-- font-misc-misc.post-install +| | | | |-- font-mutt-misc.post-install +| | | | |-- font-schumacher-misc.post-install +| | | | |-- font-screen-cyrillic.post-install +| | | | |-- font-sony-misc.post-install +| | | | |-- font-sun-misc.post-install +| | | | |-- font-util.post-install +| | | | |-- font-winitzki-cyrillic.post-install +| | | | |-- font-xfree86-type1.post-install +| | | | |-- lbxproxy.post-install +| | | | |-- libXaw.post-install +| | | | |-- libpthread-stubs.post-install +| | | | |-- libxcb.post-install +| | | | |-- mkfontdir +| | | | | `-- setup.04.mkfontdir +| | | | |-- mkfontdir.post-install +| | | | |-- pixman.post-install +| | | | |-- proxymngr.post-install +| | | | |-- rstart.post-install +| | | | |-- twm +| | | | | `-- xinitrc.twm +| | | | |-- twm.post-install +| | | | |-- x11-app-test.post-install +| | | | |-- x11-font.post-install +| | | | |-- x11-util.post-install +| | | | |-- xcb-proto.post-install +| | | | |-- xdm +| | | | | |-- Xsession +| | | | | |-- Xsession.orig +| | | | | |-- Xsetup_0 +| | | | | `-- Xsetup_0.orig +| | | | |-- xdm.post-install +| | | | |-- xf86-input-joystick.post-install +| | | | |-- xf86-input-synaptics.post-install +| | | | |-- xfs.post-install +| | | | |-- xinit +| | | | | `-- README.Xmodmap +| | | | |-- xinit.post-install +| | | | |-- xkeyboard-config.post-install +| | | | |-- xorg-cf-files +| | | | | `-- x11.tmpl.lib64.kludge.diff.gz +| | | | |-- xorg-cf-files.post-install +| | | | |-- xorg-docs.post-install +| | | | |-- xorg-server.post-install +| | | | `-- xsm.post-install +| | | |-- slack-desc +| | | | |-- applewmproto +| | | | |-- appres +| | | | |-- bdftopcf +| | | | |-- beforelight +| | | | |-- bigreqsproto +| | | | |-- bitmap +| | | | |-- compiz +| | | | |-- compositeproto +| | | | |-- constype +| | | | |-- damageproto +| | | | |-- dmxproto +| | | | |-- dri2proto +| | | | |-- editres +| | | | |-- encodings +| | | | |-- evieext +| | | | |-- fixesproto +| | | | |-- font-adobe-100dpi +| | | | |-- font-adobe-75dpi +| | | | |-- font-adobe-utopia-100dpi +| | | | |-- font-adobe-utopia-75dpi +| | | | |-- font-adobe-utopia-type1 +| | | | |-- font-alias +| | | | |-- font-arabic-misc +| | | | |-- font-bh-100dpi +| | | | |-- font-bh-75dpi +| | | | |-- font-bh-lucidatypewriter-100dpi +| | | | |-- font-bh-lucidatypewriter-75dpi +| | | | |-- font-bh-ttf +| | | | |-- font-bh-type1 +| | | | |-- font-bitstream-100dpi +| | | | |-- font-bitstream-75dpi +| | | | |-- font-bitstream-speedo +| | | | |-- font-bitstream-type1 +| | | | |-- font-cronyx-cyrillic +| | | | |-- font-cursor-misc +| | | | |-- font-daewoo-misc +| | | | |-- font-dec-misc +| | | | |-- font-ibm-type1 +| | | | |-- font-isas-misc +| | | | |-- font-jis-misc +| | | | |-- font-micro-misc +| | | | |-- font-misc-cyrillic +| | | | |-- font-misc-ethiopic +| | | | |-- font-misc-meltho +| | | | |-- font-misc-misc +| | | | |-- font-mutt-misc +| | | | |-- font-schumacher-misc +| | | | |-- font-screen-cyrillic +| | | | |-- font-sony-misc +| | | | |-- font-sun-misc +| | | | |-- font-util +| | | | |-- font-winitzki-cyrillic +| | | | |-- font-xfree86-type1 +| | | | |-- fontcacheproto +| | | | |-- fontsproto +| | | | |-- fonttosfnt +| | | | |-- fslsfonts +| | | | |-- fstobdf +| | | | |-- gccmakedep +| | | | |-- glproto +| | | | |-- iceauth +| | | | |-- ico +| | | | |-- imake +| | | | |-- inputproto +| | | | |-- intel-gpu-tools +| | | | |-- kbproto +| | | | |-- lbxproxy +| | | | |-- libAppleWM +| | | | |-- libFS +| | | | |-- libICE +| | | | |-- libSM +| | | | |-- libWindowsWM +| | | | |-- libX11 +| | | | |-- libXScrnSaver +| | | | |-- libXTrap +| | | | |-- libXau +| | | | |-- libXaw +| | | | |-- libXcomposite +| | | | |-- libXcursor +| | | | |-- libXdamage +| | | | |-- libXdmcp +| | | | |-- libXevie +| | | | |-- libXext +| | | | |-- libXfixes +| | | | |-- libXfont +| | | | |-- libXfontcache +| | | | |-- libXft +| | | | |-- libXi +| | | | |-- libXinerama +| | | | |-- libXmu +| | | | |-- libXp +| | | | |-- libXpm +| | | | |-- libXprintAppUtil +| | | | |-- libXprintUtil +| | | | |-- libXrandr +| | | | |-- libXrender +| | | | |-- libXres +| | | | |-- libXt +| | | | |-- libXtst +| | | | |-- libXv +| | | | |-- libXvMC +| | | | |-- libXxf86dga +| | | | |-- libXxf86misc +| | | | |-- libXxf86vm +| | | | |-- libdmx +| | | | |-- libfontenc +| | | | |-- liblbxutil +| | | | |-- liboldX +| | | | |-- libpciaccess +| | | | |-- libpthread-stubs +| | | | |-- libxcb +| | | | |-- libxkbfile +| | | | |-- libxkbui +| | | | |-- listres +| | | | |-- lndir +| | | | |-- luit +| | | | |-- makedepend +| | | | |-- mkcfm +| | | | |-- mkcomposecache +| | | | |-- mkfontdir +| | | | |-- mkfontscale +| | | | |-- oclock +| | | | |-- pixman +| | | | |-- printproto +| | | | |-- proxymngr +| | | | |-- randrproto +| | | | |-- recordproto +| | | | |-- rendercheck +| | | | |-- renderproto +| | | | |-- resourceproto +| | | | |-- rgb +| | | | |-- rstart +| | | | |-- scripts +| | | | |-- scrnsaverproto +| | | | |-- sessreg +| | | | |-- setxkbmap +| | | | |-- showfont +| | | | |-- smproxy +| | | | |-- trapproto +| | | | |-- twm +| | | | |-- util-macros +| | | | |-- videoproto +| | | | |-- viewres +| | | | |-- windowswmproto +| | | | |-- x11-app +| | | | |-- x11-data +| | | | |-- x11-doc +| | | | |-- x11-driver +| | | | |-- x11-font +| | | | |-- x11-lib +| | | | |-- x11-proto +| | | | |-- x11-util +| | | | |-- x11perf +| | | | |-- xauth +| | | | |-- xbacklight +| | | | |-- xbiff +| | | | |-- xbitmaps +| | | | |-- xcalc +| | | | |-- xcb-proto +| | | | |-- xcb-util +| | | | |-- xclipboard +| | | | |-- xclock +| | | | |-- xcmiscproto +| | | | |-- xcmsdb +| | | | |-- xcompmgr +| | | | |-- xconsole +| | | | |-- xcursor-themes +| | | | |-- xcursorgen +| | | | |-- xdbedizzy +| | | | |-- xditview +| | | | |-- xdm +| | | | |-- xdpyinfo +| | | | |-- xdriinfo +| | | | |-- xedit +| | | | |-- xev +| | | | |-- xextproto +| | | | |-- xeyes +| | | | |-- xf86-input-acecad +| | | | |-- xf86-input-aiptek +| | | | |-- xf86-input-calcomp +| | | | |-- xf86-input-citron +| | | | |-- xf86-input-digitaledge +| | | | |-- xf86-input-dmc +| | | | |-- xf86-input-dynapro +| | | | |-- xf86-input-elo2300 +| | | | |-- xf86-input-elographics +| | | | |-- xf86-input-evdev +| | | | |-- xf86-input-fpit +| | | | |-- xf86-input-hyperpen +| | | | |-- xf86-input-jamstudio +| | | | |-- xf86-input-joystick +| | | | |-- xf86-input-keyboard +| | | | |-- xf86-input-magellan +| | | | |-- xf86-input-magictouch +| | | | |-- xf86-input-microtouch +| | | | |-- xf86-input-mouse +| | | | |-- xf86-input-mutouch +| | | | |-- xf86-input-palmax +| | | | |-- xf86-input-penmount +| | | | |-- xf86-input-spaceorb +| | | | |-- xf86-input-summa +| | | | |-- xf86-input-synaptics +| | | | |-- xf86-input-tek4957 +| | | | |-- xf86-input-ur98 +| | | | |-- xf86-input-vmmouse +| | | | |-- xf86-input-void +| | | | |-- xf86-video-apm +| | | | |-- xf86-video-ark +| | | | |-- xf86-video-ast +| | | | |-- xf86-video-ati +| | | | |-- xf86-video-chips +| | | | |-- xf86-video-cirrus +| | | | |-- xf86-video-cyrix +| | | | |-- xf86-video-dummy +| | | | |-- xf86-video-fbdev +| | | | |-- xf86-video-geode +| | | | |-- xf86-video-glint +| | | | |-- xf86-video-i128 +| | | | |-- xf86-video-i740 +| | | | |-- xf86-video-i810 +| | | | |-- xf86-video-impact +| | | | |-- xf86-video-imstt +| | | | |-- xf86-video-intel +| | | | |-- xf86-video-mach64 +| | | | |-- xf86-video-mga +| | | | |-- xf86-video-neomagic +| | | | |-- xf86-video-newport +| | | | |-- xf86-video-nsc +| | | | |-- xf86-video-nv +| | | | |-- xf86-video-openchrome +| | | | |-- xf86-video-r128 +| | | | |-- xf86-video-radeonhd +| | | | |-- xf86-video-rendition +| | | | |-- xf86-video-s3 +| | | | |-- xf86-video-s3virge +| | | | |-- xf86-video-savage +| | | | |-- xf86-video-siliconmotion +| | | | |-- xf86-video-sis +| | | | |-- xf86-video-sisusb +| | | | |-- xf86-video-sunbw2 +| | | | |-- xf86-video-suncg14 +| | | | |-- xf86-video-suncg3 +| | | | |-- xf86-video-suncg6 +| | | | |-- xf86-video-sunffb +| | | | |-- xf86-video-sunleo +| | | | |-- xf86-video-suntcx +| | | | |-- xf86-video-tdfx +| | | | |-- xf86-video-tga +| | | | |-- xf86-video-trident +| | | | |-- xf86-video-tseng +| | | | |-- xf86-video-v4l +| | | | |-- xf86-video-vermilion +| | | | |-- xf86-video-vesa +| | | | |-- xf86-video-vga +| | | | |-- xf86-video-via +| | | | |-- xf86-video-vmware +| | | | |-- xf86-video-voodoo +| | | | |-- xf86-video-wsfb +| | | | |-- xf86bigfontproto +| | | | |-- xf86dga +| | | | |-- xf86dgaproto +| | | | |-- xf86driproto +| | | | |-- xf86miscproto +| | | | |-- xf86rushproto +| | | | |-- xf86vidmodeproto +| | | | |-- xfd +| | | | |-- xfindproxy +| | | | |-- xfontsel +| | | | |-- xfs +| | | | |-- xfsinfo +| | | | |-- xfwp +| | | | |-- xgamma +| | | | |-- xgc +| | | | |-- xhost +| | | | |-- xineramaproto +| | | | |-- xinit +| | | | |-- xinput +| | | | |-- xkbcomp +| | | | |-- xkbdata +| | | | |-- xkbevd +| | | | |-- xkbprint +| | | | |-- xkbutils +| | | | |-- xkeyboard-config +| | | | |-- xkill +| | | | |-- xload +| | | | |-- xlogo +| | | | |-- xlsatoms +| | | | |-- xlsclients +| | | | |-- xlsfonts +| | | | |-- xmag +| | | | |-- xman +| | | | |-- xmessage +| | | | |-- xmh +| | | | |-- xmodmap +| | | | |-- xmore +| | | | |-- xorg-cf-files +| | | | |-- xorg-docs +| | | | |-- xorg-server +| | | | |-- xorg-server-xdmx +| | | | |-- xorg-server-xephyr +| | | | |-- xorg-server-xnest +| | | | |-- xorg-server-xvfb +| | | | |-- xorg-sgml-doctools +| | | | |-- xphelloworld +| | | | |-- xplsprinters +| | | | |-- xpr +| | | | |-- xprehashprinterlist +| | | | |-- xprop +| | | | |-- xproto +| | | | |-- xproxymanagementprotocol +| | | | |-- xpyb +| | | | |-- xrandr +| | | | |-- xrdb +| | | | |-- xrefresh +| | | | |-- xrx +| | | | |-- xscope +| | | | |-- xset +| | | | |-- xsetmode +| | | | |-- xsetpointer +| | | | |-- xsetroot +| | | | |-- xsm +| | | | |-- xstdcmap +| | | | |-- xtrans +| | | | |-- xtrap +| | | | |-- xvidtune +| | | | |-- xvinfo +| | | | |-- xwd +| | | | |-- xwininfo +| | | | `-- xwud +| | | |-- src +| | | | |-- app +| | | | | |-- appres-1.0.1.tar.xz +| | | | | |-- bdftopcf-1.0.1.tar.xz +| | | | | |-- beforelight-1.0.3.tar.xz +| | | | | |-- bitmap-1.0.3.tar.xz +| | | | | |-- compiz-0.7.8.tar.xz +| | | | | |-- constype-1.0.1.tar.xz +| | | | | |-- editres-1.0.3.tar.xz +| | | | | |-- fonttosfnt-1.0.4.tar.xz +| | | | | |-- fslsfonts-1.0.2.tar.xz +| | | | | |-- fstobdf-1.0.3.tar.xz +| | | | | |-- iceauth-1.0.2.tar.xz +| | | | | |-- ico-1.0.2.tar.xz +| | | | | |-- intel-gpu-tools-1.0.1.tar.xz +| | | | | |-- lbxproxy-1.0.1.tar.xz +| | | | | |-- listres-1.0.1.tar.xz +| | | | | |-- luit-1.0.3.tar.xz +| | | | | |-- mkcfm-1.0.1.tar.xz +| | | | | |-- mkcomposecache-1.2.tar.xz +| | | | | |-- mkfontdir-1.0.4.tar.xz +| | | | | |-- mkfontscale-1.0.6.tar.xz +| | | | | |-- oclock-1.0.1.tar.xz +| | | | | |-- proxymngr-1.0.1.tar.xz +| | | | | |-- rendercheck-1.3.tar.xz +| | | | | |-- rgb-1.0.3.tar.xz +| | | | | |-- rstart-1.0.3.tar.xz +| | | | | |-- scripts-1.0.1.tar.xz +| | | | | |-- sessreg-1.0.4.tar.xz +| | | | | |-- setxkbmap-1.1.0.tar.xz +| | | | | |-- showfont-1.0.2.tar.xz +| | | | | |-- smproxy-1.0.2.tar.xz +| | | | | |-- twm-1.0.4.tar.xz +| | | | | |-- viewres-1.0.1.tar.xz +| | | | | |-- x11perf-1.5.tar.xz +| | | | | |-- xauth-1.0.3.tar.xz +| | | | | |-- xbacklight-1.1.tar.xz +| | | | | |-- xbiff-1.0.1.tar.xz +| | | | | |-- xcalc-1.0.2.tar.xz +| | | | | |-- xclipboard-1.0.1.tar.xz +| | | | | |-- xclock-1.0.3.tar.xz +| | | | | |-- xcmsdb-1.0.1.tar.xz +| | | | | |-- xcompmgr-1.1.4.tar.xz +| | | | | |-- xconsole-1.0.3.tar.xz +| | | | | |-- xcursorgen-1.0.2.tar.xz +| | | | | |-- xdbedizzy-1.0.2.tar.xz +| | | | | |-- xditview-1.0.1.tar.xz +| | | | | |-- xdm-1.1.8.tar.xz +| | | | | |-- xdpyinfo-1.0.3.tar.xz +| | | | | |-- xdriinfo-1.0.2.tar.xz +| | | | | |-- xedit-1.1.2.tar.xz +| | | | | |-- xev-1.0.3.tar.xz +| | | | | |-- xeyes-1.0.1.tar.xz +| | | | | |-- xf86dga-1.0.2.tar.xz +| | | | | |-- xfd-1.0.1.tar.xz +| | | | | |-- xfindproxy-1.0.1.tar.xz +| | | | | |-- xfontsel-1.0.2.tar.xz +| | | | | |-- xfs-1.1.0.tar.xz +| | | | | |-- xfsinfo-1.0.2.tar.xz +| | | | | |-- xfwp-1.0.1.tar.xz +| | | | | |-- xgamma-1.0.2.tar.xz +| | | | | |-- xgc-1.0.1.tar.xz +| | | | | |-- xhost-1.0.2.tar.xz +| | | | | |-- xinit-1.1.1.tar.xz +| | | | | |-- xinput-1.4.2.tar.xz +| | | | | |-- xkbcomp-1.1.0.tar.xz +| | | | | |-- xkbevd-1.0.2.tar.xz +| | | | | |-- xkbprint-1.0.1.tar.xz +| | | | | |-- xkbutils-1.0.1.tar.xz +| | | | | |-- xkill-1.0.1.tar.xz +| | | | | |-- xload-1.0.2.tar.xz +| | | | | |-- xlogo-1.0.1.tar.xz +| | | | | |-- xlsatoms-1.0.1.tar.xz +| | | | | |-- xlsclients-1.0.1.tar.xz +| | | | | |-- xlsfonts-1.0.2.tar.xz +| | | | | |-- xmag-1.0.2.tar.xz +| | | | | |-- xman-1.0.3.tar.xz +| | | | | |-- xmessage-1.0.2.tar.xz +| | | | | |-- xmh-1.0.1.tar.xz +| | | | | |-- xmodmap-1.0.3.tar.xz +| | | | | |-- xmore-1.0.1.tar.xz +| | | | | |-- xphelloworld-1.0.1.tar.xz +| | | | | |-- xplsprinters-1.0.1.tar.xz +| | | | | |-- xpr-1.0.2.tar.xz +| | | | | |-- xprehashprinterlist-1.0.1.tar.xz +| | | | | |-- xprop-1.0.4.tar.xz +| | | | | |-- xrandr-1.3.0.tar.xz +| | | | | |-- xrdb-1.0.5.tar.xz +| | | | | |-- xrefresh-1.0.2.tar.xz +| | | | | |-- xscope-1.1.tar.xz +| | | | | |-- xset-1.0.4.tar.xz +| | | | | |-- xsetmode-1.0.0.tar.xz +| | | | | |-- xsetpointer-1.0.1.tar.xz +| | | | | |-- xsetroot-1.0.2.tar.xz +| | | | | |-- xsm-1.0.1.tar.xz +| | | | | |-- xstdcmap-1.0.1.tar.xz +| | | | | |-- xtrap-1.0.2.tar.xz +| | | | | |-- xvidtune-1.0.1.tar.xz +| | | | | |-- xvinfo-1.0.2.tar.xz +| | | | | |-- xwd-1.0.2.tar.xz +| | | | | |-- xwininfo-1.0.4.tar.xz +| | | | | `-- xwud-1.0.1.tar.xz +| | | | |-- data +| | | | | |-- xbitmaps-1.0.1.tar.xz +| | | | | |-- xcursor-themes-1.0.1.tar.xz +| | | | | `-- xkeyboard-config-1.6.tar.xz +| | | | |-- doc +| | | | | |-- xorg-docs-1.4.tar.xz +| | | | | `-- xorg-sgml-doctools-1.2.tar.xz +| | | | |-- driver +| | | | | |-- xf86-input-acecad-1.3.0.tar.xz +| | | | | |-- xf86-input-aiptek-1.2.0.tar.xz +| | | | | |-- xf86-input-calcomp-1.1.2.tar.xz +| | | | | |-- xf86-input-citron-2.2.2.tar.xz +| | | | | |-- xf86-input-digitaledge-1.1.1.tar.xz +| | | | | |-- xf86-input-dmc-1.1.2.tar.xz +| | | | | |-- xf86-input-dynapro-1.1.2.tar.xz +| | | | | |-- xf86-input-elo2300-1.1.2.tar.xz +| | | | | |-- xf86-input-elographics-1.2.3.tar.xz +| | | | | |-- xf86-input-evdev-2.2.5.tar.xz +| | | | | |-- xf86-input-fpit-1.3.0.tar.xz +| | | | | |-- xf86-input-hyperpen-1.3.0.tar.xz +| | | | | |-- xf86-input-jamstudio-1.2.0.tar.xz +| | | | | |-- xf86-input-joystick-1.4.0.tar.xz +| | | | | |-- xf86-input-keyboard-1.3.2.tar.xz +| | | | | |-- xf86-input-magellan-1.2.0.tar.xz +| | | | | |-- xf86-input-magictouch-1.0.0.5.tar.xz +| | | | | |-- xf86-input-microtouch-1.2.0.tar.xz +| | | | | |-- xf86-input-mouse-1.4.0.tar.xz +| | | | | |-- xf86-input-mutouch-1.2.1.tar.xz +| | | | | |-- xf86-input-palmax-1.2.0.tar.xz +| | | | | |-- xf86-input-penmount-1.4.0.tar.xz +| | | | | |-- xf86-input-spaceorb-1.1.1.tar.xz +| | | | | |-- xf86-input-summa-1.2.0.tar.xz +| | | | | |-- xf86-input-synaptics-1.1.3.tar.xz +| | | | | |-- xf86-input-tek4957-1.2.0.tar.xz +| | | | | |-- xf86-input-ur98-1.1.0.tar.xz +| | | | | |-- xf86-input-vmmouse-12.6.4.tar.xz +| | | | | |-- xf86-input-void-1.2.0.tar.xz +| | | | | |-- xf86-video-apm-1.2.2.tar.xz +| | | | | |-- xf86-video-ark-0.7.1.tar.xz +| | | | | |-- xf86-video-ast-0.89.9.tar.xz +| | | | | |-- xf86-video-ati-6.12.2.tar.xz +| | | | | |-- xf86-video-chips-1.2.1.tar.xz +| | | | | |-- xf86-video-cirrus-1.3.2.tar.xz +| | | | | |-- xf86-video-cyrix-1.1.0.tar.xz +| | | | | |-- xf86-video-dummy-0.3.2.tar.xz +| | | | | |-- xf86-video-geode-2.11.3.tar.xz +| | | | | |-- xf86-video-glide-1.0.2.tar.xz +| | | | | |-- xf86-video-glint-1.2.4.tar.xz +| | | | | |-- xf86-video-i128-1.3.3.tar.xz +| | | | | |-- xf86-video-i740-1.3.2.tar.xz +| | | | | |-- xf86-video-impact-0.2.0.tar.xz +| | | | | |-- xf86-video-imstt-1.1.0.tar.xz +| | | | | |-- xf86-video-intel-2.5.1.tar.xz +| | | | | |-- xf86-video-intel-2.6.3.tar.xz +| | | | | |-- xf86-video-intel-2.7.1.tar.xz +| | | | | |-- xf86-video-intel-2.8.0.tar.xz +| | | | | |-- xf86-video-intel-2.8.1.tar.xz +| | | | | |-- xf86-video-mach64-6.8.2.tar.xz +| | | | | |-- xf86-video-mga-1.4.11.tar.xz +| | | | | |-- xf86-video-neomagic-1.2.4.tar.xz +| | | | | |-- xf86-video-newport-0.2.2.tar.xz +| | | | | |-- xf86-video-nsc-2.8.3.tar.xz +| | | | | |-- xf86-video-nv-2.1.14.tar.xz +| | | | | |-- xf86-video-openchrome-0.2.903.tar.xz +| | | | | |-- xf86-video-r128-6.8.1.tar.xz +| | | | | |-- xf86-video-radeonhd-1.2.5.tar.xz +| | | | | |-- xf86-video-rendition-4.2.2.tar.xz +| | | | | |-- xf86-video-s3-0.6.3.tar.xz +| | | | | |-- xf86-video-s3virge-1.10.4.tar.xz +| | | | | |-- xf86-video-savage-2.3.1.tar.xz +| | | | | |-- xf86-video-siliconmotion-1.7.2.tar.xz +| | | | | |-- xf86-video-sis-0.10.2.tar.xz +| | | | | |-- xf86-video-sisusb-0.9.3.tar.xz +| | | | | |-- xf86-video-tdfx-1.4.3.tar.xz +| | | | | |-- xf86-video-tga-1.2.0.tar.xz +| | | | | |-- xf86-video-trident-1.3.2.tar.xz +| | | | | |-- xf86-video-tseng-1.2.2.tar.xz +| | | | | |-- xf86-video-v4l-0.2.0.tar.xz +| | | | | |-- xf86-video-vermilion-1.0.1.tar.xz +| | | | | |-- xf86-video-vesa-2.2.1.tar.xz +| | | | | |-- xf86-video-vga-4.1.0.tar.xz +| | | | | |-- xf86-video-vmware-10.16.7.tar.xz +| | | | | |-- xf86-video-voodoo-1.2.3.tar.xz +| | | | | |-- xf86-video-wsfb-0.2.1.tar.xz +| | | | | |-- xf86-video-xgi-1.5.0.tar.xz +| | | | | `-- xf86-video-xgixp-1.7.99.3.tar.xz +| | | | |-- font +| | | | | |-- encodings-1.0.2.tar.xz +| | | | | |-- font-adobe-100dpi-1.0.0.tar.xz +| | | | | |-- font-adobe-75dpi-1.0.0.tar.xz +| | | | | |-- font-adobe-utopia-100dpi-1.0.1.tar.xz +| | | | | |-- font-adobe-utopia-75dpi-1.0.1.tar.xz +| | | | | |-- font-adobe-utopia-type1-1.0.1.tar.xz +| | | | | |-- font-alias-1.0.1.tar.xz +| | | | | |-- font-arabic-misc-1.0.0.tar.xz +| | | | | |-- font-bh-100dpi-1.0.0.tar.xz +| | | | | |-- font-bh-75dpi-1.0.0.tar.xz +| | | | | |-- font-bh-lucidatypewriter-100dpi-1.0.0.tar.xz +| | | | | |-- font-bh-lucidatypewriter-75dpi-1.0.0.tar.xz +| | | | | |-- font-bh-ttf-1.0.0.tar.xz +| | | | | |-- font-bh-type1-1.0.0.tar.xz +| | | | | |-- font-bitstream-100dpi-1.0.0.tar.xz +| | | | | |-- font-bitstream-75dpi-1.0.0.tar.xz +| | | | | |-- font-bitstream-speedo-1.0.0.tar.xz +| | | | | |-- font-bitstream-type1-1.0.0.tar.xz +| | | | | |-- font-cronyx-cyrillic-1.0.0.tar.xz +| | | | | |-- font-cursor-misc-1.0.0.tar.xz +| | | | | |-- font-daewoo-misc-1.0.0.tar.xz +| | | | | |-- font-dec-misc-1.0.0.tar.xz +| | | | | |-- font-ibm-type1-1.0.0.tar.xz +| | | | | |-- font-isas-misc-1.0.0.tar.xz +| | | | | |-- font-jis-misc-1.0.0.tar.xz +| | | | | |-- font-micro-misc-1.0.0.tar.xz +| | | | | |-- font-misc-cyrillic-1.0.0.tar.xz +| | | | | |-- font-misc-ethiopic-1.0.0.tar.xz +| | | | | |-- font-misc-meltho-1.0.0.tar.xz +| | | | | |-- font-misc-misc-1.0.0.tar.xz +| | | | | |-- font-mutt-misc-1.0.0.tar.xz +| | | | | |-- font-schumacher-misc-1.0.0.tar.xz +| | | | | |-- font-screen-cyrillic-1.0.1.tar.xz +| | | | | |-- font-sony-misc-1.0.0.tar.xz +| | | | | |-- font-sun-misc-1.0.0.tar.xz +| | | | | |-- font-util-1.0.1.tar.xz +| | | | | |-- font-winitzki-cyrillic-1.0.0.tar.xz +| | | | | `-- font-xfree86-type1-1.0.1.tar.xz +| | | | |-- lib +| | | | | |-- libFS-1.0.2.tar.xz +| | | | | |-- libICE-1.0.5.tar.xz +| | | | | |-- libSM-1.1.0.tar.xz +| | | | | |-- libX11-1.2.2.tar.xz +| | | | | |-- libXScrnSaver-1.1.3.tar.xz +| | | | | |-- libXTrap-1.0.0.tar.xz +| | | | | |-- libXau-1.0.4.tar.xz +| | | | | |-- libXaw-1.0.6.tar.xz +| | | | | |-- libXcomposite-0.4.0.tar.xz +| | | | | |-- libXcursor-1.1.9.tar.xz +| | | | | |-- libXdamage-1.1.1.tar.xz +| | | | | |-- libXdmcp-1.0.2.tar.xz +| | | | | |-- libXevie-1.0.2.tar.xz +| | | | | |-- libXext-1.0.5.tar.xz +| | | | | |-- libXfixes-4.0.3.tar.xz +| | | | | |-- libXfont-1.4.0.tar.xz +| | | | | |-- libXfontcache-1.0.4.tar.xz +| | | | | |-- libXft-2.1.13.tar.xz +| | | | | |-- libXi-1.2.1.tar.xz +| | | | | |-- libXinerama-1.0.3.tar.xz +| | | | | |-- libXmu-1.0.4.tar.xz +| | | | | |-- libXp-1.0.0.tar.xz +| | | | | |-- libXpm-3.5.7.tar.xz +| | | | | |-- libXprintAppUtil-1.0.1.tar.xz +| | | | | |-- libXprintUtil-1.0.1.tar.xz +| | | | | |-- libXrandr-1.3.0.tar.xz +| | | | | |-- libXrender-0.9.4.tar.xz +| | | | | |-- libXres-1.0.3.tar.xz +| | | | | |-- libXt-1.0.6.tar.xz +| | | | | |-- libXtst-1.0.3.tar.xz +| | | | | |-- libXv-1.0.4.tar.xz +| | | | | |-- libXvMC-1.0.4.tar.xz +| | | | | |-- libXxf86dga-1.0.2.tar.xz +| | | | | |-- libXxf86misc-1.0.1.tar.xz +| | | | | |-- libXxf86vm-1.0.2.tar.xz +| | | | | |-- libdmx-1.0.2.tar.xz +| | | | | |-- libfontenc-1.0.4.tar.xz +| | | | | |-- liblbxutil-1.0.1.tar.xz +| | | | | |-- libpciaccess-0.10.6.tar.xz +| | | | | |-- libpthread-stubs-0.1.tar.xz +| | | | | |-- libxkbfile-1.0.5.tar.xz +| | | | | |-- libxkbui-1.0.2.tar.xz +| | | | | |-- pixman-0.15.18.tar.xz +| | | | | `-- xtrans-1.2.4.tar.xz +| | | | |-- proto +| | | | | |-- bigreqsproto-1.0.2.tar.xz +| | | | | |-- compositeproto-0.4.tar.xz +| | | | | |-- damageproto-1.1.0.tar.xz +| | | | | |-- dmxproto-2.2.2.tar.xz +| | | | | |-- dri2proto-2.1.tar.xz +| | | | | |-- evieext-1.0.2.tar.xz +| | | | | |-- fixesproto-4.0.tar.xz +| | | | | |-- fontcacheproto-0.1.2.tar.xz +| | | | | |-- fontsproto-2.0.2.tar.xz +| | | | | |-- glproto-1.4.10.tar.xz +| | | | | |-- inputproto-1.5.1.tar.xz +| | | | | |-- kbproto-1.0.3.tar.xz +| | | | | |-- printproto-1.0.4.tar.xz +| | | | | |-- randrproto-1.3.0.tar.xz +| | | | | |-- recordproto-1.13.2.tar.xz +| | | | | |-- renderproto-0.11.tar.xz +| | | | | |-- resourceproto-1.0.2.tar.xz +| | | | | |-- scrnsaverproto-1.1.0.tar.xz +| | | | | |-- trapproto-3.4.3.tar.xz +| | | | | |-- videoproto-2.2.2.tar.xz +| | | | | |-- xcmiscproto-1.1.2.tar.xz +| | | | | |-- xextproto-7.0.5.tar.xz +| | | | | |-- xf86bigfontproto-1.1.2.tar.xz +| | | | | |-- xf86dgaproto-2.0.3.tar.xz +| | | | | |-- xf86driproto-2.0.4.tar.xz +| | | | | |-- xf86miscproto-0.9.2.tar.xz +| | | | | |-- xf86rushproto-1.1.2.tar.xz +| | | | | |-- xf86vidmodeproto-2.2.2.tar.xz +| | | | | |-- xineramaproto-1.1.2.tar.xz +| | | | | |-- xproto-7.0.15.tar.xz +| | | | | `-- xproxymanagementprotocol-1.0.2.tar.xz +| | | | |-- util +| | | | | |-- gccmakedep-1.0.2.tar.xz +| | | | | |-- imake-1.0.2.tar.xz +| | | | | |-- lndir-1.0.1.tar.xz +| | | | | |-- makedepend-1.0.1.tar.xz +| | | | | |-- util-macros-1.2.2.tar.xz +| | | | | `-- xorg-cf-files-1.0.2.tar.xz +| | | | |-- xcb +| | | | | |-- libxcb-1.3.tar.xz +| | | | | |-- xcb-proto-1.5.tar.xz +| | | | | |-- xcb-util-0.3.5.tar.xz +| | | | | `-- xpyb-1.1.tar.xz +| | | | `-- xserver +| | | | `-- xorg-server-1.6.3.tar.xz +| | | `-- x11.SlackBuild +| | |-- x11-skel +| | | |-- doinst.sh.gz +| | | |-- manpages +| | | | `-- xwmconfig.1 +| | | |-- scripts +| | | | |-- setup.xwmconfig +| | | | |-- xorg.conf-fbdev +| | | | |-- xorg.conf-vesa +| | | | |-- xorgsetup +| | | | `-- xwmconfig +| | | |-- slack-desc +| | | `-- x11-skel.SlackBuild +| | |-- xaw3d +| | | |-- Xaw3d-1.5-debian-fixes.diff.gz +| | | |-- Xaw3d-1.5E.diff.gz +| | | |-- Xaw3d-1.5E.tar.gz +| | | |-- slack-desc +| | | `-- xaw3d.SlackBuild +| | |-- xdg-utils +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- xdg-utils-20090202cvs.tar.bz2 +| | | |-- xdg-utils-cvs_checkout.sh +| | | |-- xdg-utils.SlackBuild +| | | `-- xdg-utils.info +| | `-- xterm +| | |-- patches +| | |-- slack-desc +| | |-- xterm-243.tar.xz +| | `-- xterm.SlackBuild +| |-- xap +| | |-- MPlayer +| | | |-- Blue-1.7.tar.bz2 +| | | |-- MPlayer.SlackBuild +| | | |-- MPlayer_nolibdvdcss-r29390.tar.xz +| | | `-- slack-desc +| | |-- audacious +| | | |-- audacious-1.5.1.tar.bz2 +| | | |-- audacious.SlackBuild +| | | |-- audacious.handle_cmd_line_options.diff.gz +| | | `-- slack-desc +| | |-- audacious-plugins +| | | |-- amidi-plug.fix-drct.diff.gz +| | | |-- audacious-plugins-1.5.1.tar.bz2 +| | | |-- audacious-plugins.SlackBuild +| | | |-- audacious-plugins.libmtp8.diff.gz +| | | `-- slack-desc +| | |-- blackbox +| | | |-- bbkeys-0.8.6.tar.gz +| | | |-- blackbox-0.65.0.tar.gz +| | | |-- blackbox.SlackBuild +| | | |-- blackbox_0.65.0-5.diff.gz +| | | |-- slack-desc +| | | `-- xinitrc.blackbox.gz +| | |-- electricsheep +| | | |-- README.slackware +| | | |-- electricsheep-20090306.tar.xz +| | | |-- electricsheep.SlackBuild +| | | |-- electricsheep.mplayer.diff.gz +| | | |-- electricsheep_gnome-open.patch +| | | `-- slack-desc +| | |-- fluxbox +| | | |-- fluxbox-1.1.1.tar.bz2 +| | | |-- fluxbox.SlackBuild +| | | |-- slack-desc +| | | `-- xinitrc.fluxbox.gz +| | |-- fvwm +| | | |-- ancient-icons.tar.gz +| | | |-- doinst.sh.gz +| | | |-- fvwm-2.4.20.tar.bz2 +| | | |-- fvwm.SlackBuild +| | | |-- fvwm.colormap.diff.gz +| | | |-- slack-desc +| | | |-- system.fvwm2rc.gz +| | | `-- xinitrc.fvwm2.gz +| | |-- gftp +| | | |-- gftp-2.0.19.tar.bz2 +| | | |-- gftp.SlackBuild +| | | |-- gftp.desktop.gz +| | | `-- slack-desc +| | |-- gimp +| | | |-- gimp-2.6.6.tar.bz2 +| | | |-- gimp.SlackBuild +| | | `-- slack-desc +| | |-- gkrellm +| | | |-- gkrellm-2.3.2.tar.bz2 +| | | |-- gkrellm-countdown-0.1.1.tar.gz +| | | |-- gkrellm.SlackBuild +| | | |-- gkrellm.theme.defaults.diff.gz +| | | `-- slack-desc +| | |-- gnuchess +| | | |-- Sjeng-Free-11.2.tar.bz2 +| | | |-- chess.png +| | | |-- eboard-1.0.3.tar.bz2 +| | | |-- eboard.desktop +| | | |-- gnuchess-5.07.tar.bz2 +| | | |-- gnuchess.SlackBuild +| | | |-- gnuchess.SlackBuild.diff.gz +| | | |-- gnuchess.gcc4_fix.diff.gz +| | | |-- slack-desc +| | | |-- xboard-4.2.7.tar.bz2 +| | | |-- xboard.buffer_overflow_fix.diff.gz +| | | |-- xboard.desktop +| | | `-- xboard.infodir.diff.gz +| | |-- gnuplot +| | | |-- gnuplot-4.2.5.tar.xz +| | | |-- gnuplot.SlackBuild +| | | `-- slack-desc +| | |-- gqview +| | | |-- doinst.sh.gz +| | | |-- gqview-2.1.5.tar.bz2 +| | | |-- gqview.SlackBuild +| | | `-- slack-desc +| | |-- gucharmap +| | | |-- doinst.sh.gz +| | | |-- gucharmap-2.26.2.tar.xz +| | | |-- gucharmap.SlackBuild +| | | `-- slack-desc +| | |-- gv +| | | |-- gv-3.6.7.tar.xz +| | | |-- gv.SlackBuild +| | | `-- slack-desc +| | |-- gxine +| | | |-- gxine-0.5.903.tar.bz2 +| | | |-- gxine.SlackBuild +| | | |-- gxine.desktop.gz +| | | `-- slack-desc +| | |-- imagemagick +| | | |-- ImageMagick-6.5.3-3.tar.xz +| | | |-- imagemagick.SlackBuild +| | | `-- slack-desc +| | |-- mozilla-firefox +| | | |-- firefox-3.5.2-source.tar.bz2 +| | | |-- firefox-3.5.2-source.tar.bz2.asc +| | | |-- firefox.moz_plugin_path.diff.gz +| | | |-- firefox.png +| | | |-- mimeTypes.rdf.gz +| | | |-- mozilla-firefox-mimeTypes-fix.diff.gz +| | | |-- mozilla-firefox.SlackBuild +| | | |-- mozilla-firefox.desktop +| | | `-- slack-desc +| | |-- mozilla-thunderbird +| | | |-- mozilla-thunderbird-firefox.diff.gz +| | | |-- mozilla-thunderbird.SlackBuild +| | | |-- mozilla-thunderbird.desktop +| | | |-- slack-desc +| | | |-- thunderbird-2.0.0.23-source.tar.bz2 +| | | |-- thunderbird-2.0.0.23-source.tar.bz2.asc +| | | `-- thunderbird.png +| | |-- pan +| | | |-- pan-0.133.tar.bz2 +| | | |-- pan.SlackBuild +| | | `-- slack-desc +| | |-- pidgin +| | | |-- pidgin-2.5.9.tar.xz +| | | |-- pidgin-encryption-3.0.tar.gz +| | | |-- pidgin.SlackBuild +| | | |-- purple-allow-sign-rsa-md5.patch.gz +| | | `-- slack-desc +| | |-- rdesktop +| | | |-- rdesktop-1.6.0.tar.bz2 +| | | |-- rdesktop.SlackBuild +| | | `-- slack-desc +| | |-- rxvt +| | | |-- rxvt-2.7.10.tar.bz2 +| | | |-- rxvt.SlackBuild +| | | |-- rxvt.utempter.diff.gz +| | | `-- slack-desc +| | |-- sane +| | | |-- dll.conf.additions.gz +| | | |-- doinst.sh.gz +| | | |-- sane-backends-1.0.19.tar.bz2 +| | | |-- sane-frontends-1.0.14.tar.bz2 +| | | |-- sane.SlackBuild +| | | `-- slack-desc +| | |-- seamonkey +| | | |-- doinst.sh.gz +| | | |-- seamonkey-1.1.17.source.tar.xz +| | | |-- seamonkey-icon.png +| | | |-- seamonkey-mail-icon.png +| | | |-- seamonkey-mail.desktop +| | | |-- seamonkey.SlackBuild +| | | |-- seamonkey.desktop +| | | |-- seamonkey.moz_plugin_path.diff.gz +| | | `-- slack-desc +| | |-- seyon +| | | |-- seyon-2.20c.lsm +| | | |-- seyon-2.20c.tar.gz +| | | |-- seyon.SlackBuild +| | | |-- seyon_2.20c-16.diff.gz +| | | `-- slack-desc +| | |-- thunar-volman +| | | |-- slack-desc +| | | |-- thunar-volman-0.3.80.tar.bz2 +| | | `-- thunar-volman.SlackBuild +| | |-- vim-gvim -> ../ap/vim +| | |-- windowmaker +| | | |-- WindowMaker-20060427cvs.tar.bz2 +| | | |-- WindowMaker-extra-0.1.tar.gz +| | | |-- slack-desc +| | | |-- windowmaker.SlackBuild +| | | |-- windowmaker.no-mmx.diff.gz +| | | |-- wmaker.inst.diff.gz +| | | `-- xinitrc.wmaker +| | |-- x11-ssh-askpass +| | | |-- README +| | | |-- slack-desc +| | | |-- x11-ssh-askpass-1.2.4.1.tar.gz +| | | |-- x11-ssh-askpass.SlackBuild +| | | |-- x11-ssh-askpass.info +| | | `-- xprofile.sample +| | |-- x3270 +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- x3270-3.3.7p8.tar.bz2 +| | | `-- x3270.SlackBuild +| | |-- xchat +| | | |-- patches +| | | | |-- patches.url +| | | | |-- xc286-smallfixes.diff.gz +| | | | `-- xchat.gtk_2_14.diff.gz +| | | |-- slack-desc +| | | |-- xchat-2.8.6.tar.bz2 +| | | `-- xchat.SlackBuild +| | |-- xfce +| | | |-- icons.tar.xz +| | | |-- patches +| | | | |-- exo_quoting_fix.diff.gz +| | | | |-- launcher-plugin-migrate-icon-cat.diff.gz +| | | | |-- migrate-itheme-smartly.diff.gz +| | | | |-- terminal-0.4.0-fixup_docdir.diff.gz +| | | | |-- thunar-1.0.1-fixup_docdir.diff.gz +| | | | |-- xfcalendar.desktop.in.diff.gz +| | | | `-- xfdesktop-fix_education_icon.diff.gz +| | | |-- profile.d +| | | | |-- xfce.csh +| | | | `-- xfce.sh +| | | |-- slack-desc +| | | |-- src +| | | | |-- Terminal-0.4.0.tar.xz +| | | | |-- Thunar-1.0.1.tar.xz +| | | | |-- exo-0.3.101.tar.xz +| | | | |-- gtk-xfce-engine-2.6.0.tar.xz +| | | | |-- libxfce4menu-4.6.1.tar.xz +| | | | |-- libxfce4util-4.6.1.tar.xz +| | | | |-- libxfcegui4-4.6.1.tar.xz +| | | | |-- mousepad-0.2.16.tar.xz +| | | | |-- orage-4.6.1.tar.xz +| | | | |-- xfce-utils-4.6.1.tar.xz +| | | | |-- xfce4-appfinder-4.6.1.tar.xz +| | | | |-- xfce4-dev-tools-4.6.0.tar.xz +| | | | |-- xfce4-mixer-4.6.1.tar.xz +| | | | |-- xfce4-panel-4.6.1.tar.xz +| | | | |-- xfce4-session-4.6.1.tar.xz +| | | | |-- xfce4-settings-4.6.1.tar.xz +| | | | |-- xfconf-4.6.1.tar.xz +| | | | |-- xfdesktop-4.6.1.tar.xz +| | | | |-- xfprint-4.6.1.tar.xz +| | | | |-- xfwm4-4.6.1.tar.xz +| | | | `-- xfwm4-themes-4.6.0.tar.xz +| | | `-- xfce.SlackBuild +| | |-- xfce4-power-manager +| | | |-- doinst.sh.gz +| | | |-- slack-desc +| | | |-- xfce4-power-manager-0.6.6.tar.bz2 +| | | `-- xfce4-power-manager.SlackBuild +| | |-- xfractint +| | | |-- palette.maps.tar.gz +| | | |-- slack-desc +| | | |-- xfractint-20.04p09.tar.bz2 +| | | `-- xfractint.SlackBuild +| | |-- xgames +| | | |-- maze.diff.gz +| | | |-- maze.tar.gz +| | | |-- slack-desc +| | | |-- spider.diff.gz +| | | |-- spider.tar.gz +| | | |-- xcolormap.diff.gz +| | | |-- xcolormap.tar.gz +| | | |-- xcuckoo-1.1.tar.gz +| | | |-- xcuckoo.diff.gz +| | | |-- xgames.SlackBuild +| | | |-- xlander-2009-07-18.diff.gz +| | | |-- xlander.fixes.diff.gz +| | | |-- xlander.tar.gz +| | | |-- xminesweep3.0.tar.gz +| | | |-- xneko.tar.gz +| | | |-- xroach.tar.gz +| | | `-- xsnow-1.40.tar.gz +| | |-- xine-lib +| | | |-- slack-desc +| | | |-- xine-lib-1.1.16.3.tar.bz2 +| | | `-- xine-lib.SlackBuild +| | |-- xine-ui +| | | |-- slack-desc +| | | |-- xine-ui-0.99.5.tar.bz2 +| | | |-- xine-ui.SlackBuild +| | | `-- xine.desktop.gz +| | |-- xlockmore +| | | |-- l-bob.README +| | | |-- l-bob.xbm +| | | |-- l-linux.xbm +| | | |-- s-bob.xbm +| | | |-- slack-desc +| | | |-- xlockmore-5.28.tar.bz2 +| | | |-- xlockmore-5.28.tar.bz2.asc +| | | |-- xlockmore.SlackBuild +| | | `-- xlockmore.bitmap.diff.gz +| | |-- xmms +| | | |-- arts_output-0.7.1.tar.gz +| | | |-- slack-desc +| | | |-- xmms-1.2.11.tar.bz2 +| | | |-- xmms.SlackBuild +| | | |-- xmms.desktop +| | | |-- xmms.gtk.doublesize.diff.gz +| | | `-- xmms.wmxmms_vis_depth_workaround.diff.gz +| | |-- xpaint +| | | |-- slack-desc +| | | |-- xpaint-2.7.8.1.tar.bz2 +| | | |-- xpaint.SlackBuild +| | | |-- xpaint_2.7.8.1-1.2.diff.gz +| | | `-- xpaint_xaw3d_no_scroll_mode.diff.gz +| | |-- xpdf +| | | |-- VendorP.h.buggy.diff +| | | |-- slack-desc +| | | |-- xpdf-3.02.tar.gz +| | | |-- xpdf-3.02.tar.gz.sig +| | | |-- xpdf-3.02pl1.patch +| | | |-- xpdf-3.02pl1.patch.sig +| | | |-- xpdf-3.02pl2.patch +| | | |-- xpdf-3.02pl2.patch.sig +| | | |-- xpdf-3.02pl3.patch +| | | |-- xpdf-3.02pl3.patch.sig +| | | |-- xpdf-arabic.diff.gz +| | | |-- xpdf-arabic.tar.gz +| | | |-- xpdf-chinese-simplified.diff.gz +| | | |-- xpdf-chinese-simplified.tar.gz +| | | |-- xpdf-chinese-traditional.diff.gz +| | | |-- xpdf-chinese-traditional.tar.gz +| | | |-- xpdf-cyrillic.diff.gz +| | | |-- xpdf-cyrillic.tar.gz +| | | |-- xpdf-greek.diff.gz +| | | |-- xpdf-greek.tar.gz +| | | |-- xpdf-hebrew.diff.gz +| | | |-- xpdf-hebrew.tar.gz +| | | |-- xpdf-japanese.diff.gz +| | | |-- xpdf-japanese.tar.gz +| | | |-- xpdf-korean.diff.gz +| | | |-- xpdf-korean.tar.gz +| | | |-- xpdf-latin2.diff.gz +| | | |-- xpdf-latin2.tar.gz +| | | |-- xpdf-resizefix.diff.gz +| | | |-- xpdf-thai.diff.gz +| | | |-- xpdf-thai.tar.gz +| | | |-- xpdf-turkish.diff.gz +| | | |-- xpdf-turkish.tar.gz +| | | |-- xpdf.SlackBuild +| | | |-- xpdf.desktop +| | | |-- xpdf_3.02-1.3.diff.gz +| | | `-- xpdfrc.diff.gz +| | |-- xsane +| | | |-- slack-desc +| | | |-- xsane-0.996.tar.bz2 +| | | `-- xsane.SlackBuild +| | |-- xscreensaver +| | | |-- setuid.c.gz +| | | |-- slack-desc +| | | |-- xscreensaver-5.08.tar.xz +| | | |-- xscreensaver.SlackBuild +| | | |-- xscreensaver.electricsheep.diff.gz +| | | `-- xscreensaver.setuid.diff.gz +| | |-- xv +| | | |-- slack-desc +| | | |-- xv-3.10.tar.gz +| | | |-- xv-3.10a-jumbo-README.txt +| | | |-- xv-3.10a-jumbo-enh-patch-20050501.txt.bz2 +| | | |-- xv-3.10a-jumbo-fix-patch-20050410.txt.bz2 +| | | |-- xv-3.10a.patch.gz +| | | |-- xv.SlackBuild +| | | |-- xv.prefix.diff.gz +| | | `-- xv.prefix_x86_64.diff.gz +| | `-- xxgdb +| | |-- slack-desc +| | |-- xxgdb-1.12.tar.gz +| | |-- xxgdb.SlackBuild +| | `-- xxgdb.fix_glibc_and_gcc.diff.gz +| `-- y +| `-- bsd-games +| |-- bsd-games-2.13.lsm +| |-- bsd-games-2.13.tar.bz2 +| |-- bsd-games-login-fortune.csh +| |-- bsd-games-login-fortune.sh +| |-- bsd-games.SlackBuild +| |-- bsd-games.config.params.diff.gz +| |-- bsd-games.fortlen.diff.gz +| |-- bsd-games.fortunepath.diff.gz +| |-- bsd-games.ospeed.diff.gz +| |-- bsd-games.phantasia_install_fix.diff.gz +| |-- bsd-games.pom.diff.gz +| |-- bsd-games.strfile.8.diff.gz +| |-- bsd-games.trek-gcc4.diff.gz +| |-- fortunes-linuxcookie.tar.gz +| |-- fortunes-o.tar.gz +| |-- hangman-words.gz +| `-- slack-desc +|-- testing +| |-- CHECKSUMS.md5 +| |-- CHECKSUMS.md5.asc +| |-- FILE_LIST +| |-- MANIFEST.bz2 +| |-- PACKAGES.TXT +| |-- packages +| | |-- bash-4.0.024-x86_64-1.txt +| | |-- bash-4.0.024-x86_64-1.txz +| | |-- bash-4.0.024-x86_64-1.txz.asc +| | `-- linux-2.6.30.5 +| | |-- README_FIRST.TXT +| | |-- kernel-firmware-2.6.30.5-noarch-1_testing.txt +| | |-- kernel-firmware-2.6.30.5-noarch-1_testing.txz +| | |-- kernel-firmware-2.6.30.5-noarch-1_testing.txz.asc +| | |-- kernel-generic-2.6.30.5-x86_64-1_testing.txt +| | |-- kernel-generic-2.6.30.5-x86_64-1_testing.txz +| | |-- kernel-generic-2.6.30.5-x86_64-1_testing.txz.asc +| | |-- kernel-headers-2.6.30.5-x86-1_testing.txt +| | |-- kernel-headers-2.6.30.5-x86-1_testing.txz +| | |-- kernel-headers-2.6.30.5-x86-1_testing.txz.asc +| | |-- kernel-modules-2.6.30.5-x86_64-1_testing.txt +| | |-- kernel-modules-2.6.30.5-x86_64-1_testing.txz +| | |-- kernel-modules-2.6.30.5-x86_64-1_testing.txz.asc +| | |-- kernel-source-2.6.30.5-noarch-1_testing.txt +| | |-- kernel-source-2.6.30.5-noarch-1_testing.txz +| | `-- kernel-source-2.6.30.5-noarch-1_testing.txz.asc +| `-- source +| |-- bash +| | |-- bash-4.0-patches +| | | |-- bash40-001 +| | | |-- bash40-001.sig +| | | |-- bash40-002 +| | | |-- bash40-002.sig +| | | |-- bash40-003 +| | | |-- bash40-003.sig +| | | |-- bash40-004 +| | | |-- bash40-004.sig +| | | |-- bash40-005 +| | | |-- bash40-005.sig +| | | |-- bash40-006 +| | | |-- bash40-006.sig +| | | |-- bash40-007 +| | | |-- bash40-007.sig +| | | |-- bash40-008 +| | | |-- bash40-008.sig +| | | |-- bash40-009 +| | | |-- bash40-009.sig +| | | |-- bash40-010 +| | | |-- bash40-010.sig +| | | |-- bash40-011 +| | | |-- bash40-011.sig +| | | |-- bash40-012 +| | | |-- bash40-012.sig +| | | |-- bash40-013 +| | | |-- bash40-013.sig +| | | |-- bash40-014 +| | | |-- bash40-014.sig +| | | |-- bash40-015 +| | | |-- bash40-015.sig +| | | |-- bash40-016 +| | | |-- bash40-016.sig +| | | |-- bash40-017 +| | | |-- bash40-017.sig +| | | |-- bash40-018 +| | | |-- bash40-018.sig +| | | |-- bash40-019 +| | | |-- bash40-019.sig +| | | |-- bash40-020 +| | | |-- bash40-020.sig +| | | |-- bash40-021 +| | | |-- bash40-021.sig +| | | |-- bash40-022 +| | | |-- bash40-022.sig +| | | |-- bash40-023 +| | | |-- bash40-023.sig +| | | |-- bash40-024 +| | | `-- bash40-024.sig +| | |-- bash-4.0.tar.bz2 +| | |-- bash.SlackBuild +| | |-- doinst.sh.gz +| | `-- slack-desc +| `-- linux-2.6.30.5 +| `-- config-generic-2.6.30.5 +`-- usb-and-pxe-installers + |-- README_PXE.TXT + |-- README_USB.TXT + |-- pxelinux.cfg_default + |-- usbboot.img + `-- usbimg2disk.sh + +785 directories, 8310 files + diff --git a/RELEASE_NOTES b/RELEASE_NOTES new file mode 100644 index 000000000..229a2d849 --- /dev/null +++ b/RELEASE_NOTES @@ -0,0 +1,140 @@ + +Slackware 13.0 release notes. Tue Aug 25 23:40:18 CDT 2009 + +Hi folks, + + Historically, the RELEASE_NOTES (at least in recent releases) +had been mostly technical information, but once again Robby Workman +has covered the important technical details in CHANGES_AND_HINTS.TXT. +Thanks! + + Probably the first thing to mention about the release of +Slackware 13.0 is that it marks our first release with an official +64-bit port! Thanks to the hard work of Eric Hameleers, Slackware +for x86 is available in both 32-bit and 64-bit (x86_64) editions. +Eric did incredible work on the 64-bit port. The SlackBuild scripts +were so much of an improvement over the originals from the 32-bit tree +that they were imported over on the 32-bit side -- the only difference +in the build trees is whether $ARCH is set to i486 or x86_64. These +scripts are finding use in other ports too, like Stuart Winter's +ARMedslack port to the ARM architecture (the ARM Versatile platform +emulated by QEMU, and the Marvell SheevaPlug), and Mark Post's +Slack/390 Linux Project for IBM S/390 G2 class systems and above. +The goal of a unified source tree for these projects seems to be coming +into focus. For more information about these Slackware ports, see +http://armedslack.org and http://slack390.org. Getting back to the +x86_64 port (nicknamed Slackware64), we also have to thank Fred Emmott +who helped us solve a number of tricky problems having been there +before -- without his help things like getting ncurses right so that +the nVidia installer worked, and laying the groundwork for future +multilib support would have been much more difficult. Thanks Fred! + + About the only things to mention here are that Slackware requires +a recent 2.6.x kernel (I believe 2.6.22.x is a minimum), but +as usual unless your needs are specific you're probably better off +running the included kernels that we've tested things against. +The best kernel to run (even on a one CPU/core machine) is the generic +SMP one, but that needs an initrd, so be sure to read the instructions +in /boot after installing with a huge* kernel if you plan to switch. +We've used the well-tested and recently patched 2.6.29.6 kernel, but +the 2.6.30.5 kernel is also available as packages in /testing. If +you decide to give that a try, be sure to read the information about +LILO in there. + + I would not suggest trying to run without udev. Consider it the +userspace portion of the kernel. It *is* possible, but if you must +do that you'll have to tweak a couple things here and there. The +specifics are left as an exercise for the advanced user. Wait, an +advanced user would just use udev. Really, it works and makes things +a lot easier. + + Another huge change in Slackware 13.0 is the move from KDE3 to +KDE4. KDE4 has been out for about a year and a half now, and it has +come a long way since KDE 4.0. The KDE 4.2.4 release included in +Slackware 13.0 is a very fast and polished desktop. It looks great +and achieves its goal of making the Linux operating system as nice +a desktop OS as anything that is available at any price! With KDE3 +pretty much winding down (probably there will not be further releases) +and projects dropping KDE3 support in favor of KDE4, the time was +right to make the move to KDE4 in Slackware. I'm using it on all of +my own machines (including an Intel Atom with compositing enabled), +and I've really fallen in love with it once I got used to it. The +tools are integrated better with the desktop, Qt4 seems to be a +faster and more stable platform, and nearly everything that was +available for KDE3 has been ported to KDE4 and works great. Huge +thanks to the KDE team for producing the great desktop environment +they promised to deliver! As with any major rewrite, there are, +however, still a few quirks, but these are few and the improvements +have been coming fast. One of the issues we're aware of is that +k3b hasn't been working as well as the KDE3 version for some people +(it works fine here, but we have heard some reports), and there are +some other KDE applications where people still prefer the old versions. +To help with this, there are KDE3 compatibility packages that can +be found in /extra/kde3-compat/. With these installed, most KDE3 +programs will run. A KDE3 version of k3b is also included in that +directory. + + Xfce has been updated as well, and continues to be a great +lightweight desktop that doesn't get in your way. You'll notice +improvements in Xfce immediately upon starting it. If you haven't +looked at this great desktop environment lately, you might want to +give it another try. Thanks to Robby for tracking the Xfce +development closely and making sure everything was just exactly +right in the Slackware Xfce packages. + + If you prefer GNOME, there are teams online producing GNOME +for Slackware. Here are a few places to look: + + http://gnomeslackbuild.org + http://www.droplinegnome.net/ + http://www.gware.org/ + +If any of these replaces some system components, using them voids +your warranty. ;-) But it should work, *if* you absolutely must +have GNOME. I'd suggest Xfce instead if you want a GTK+ based +desktop. If you do want to use GNOME, remember that there may be +some updates needed after 13.0 releases, so it might be best not +to rush into it. Thanks to these teams for making the GNOME +desktop a viable option for Slackware users. + + Need more build scripts? Something that you wanted wasn't +included in Slackware? Well, then check out slackbuilds.org. +Several of the team members work on the scripts there. + + Thanks to the rest of the team (and other contributors) for +the great help -- Eric Hameleers for x86_64, help with networking +improvements, documentation, LVM, the installer, and encrypted +partition support, Piter Punk for udev and slackpkg work, Stuart +Winter for help with linuxdoc-tools, Heinz Wiesinger for helping +to clean up the Qt build script, and other stuff, Erik Jan Tromp +for updating the populate_tftpboot.sh script in the PXE install +to work with the new package formats, and instructing us on the +correct use of umlaut \ö/, Amritpal Bath for coordinating torrents +for the release, suggesting fixes and improvements, and trying to +keep me sane (good luck), Robby Workman for docs, X, Xfce, wicd, +his work with the team at slackbuilds.org, and helping to keep +tons of other packages updated, mrgoblin for troubleshooting the +installer and being on call to help in the middle of my night +(handy having someone from .nz on the team!), and lots of fixes +here and there, Karl Magnus Kolstoe for letting me know when I +needed to sleep, NetrixTardis and element-x for helping with +bandwidth and trackers for the release (and assorted testing and +Q/A), Fred Emmott for so graciously assisting with obstacles we +encountered porting to x86_64, and anyone else I'm forgetting +(including the other team members who contributed little fixes and +suggestions here and there along with general moral support), and +all the folks who emailed in bug reports (and especially fixes). +Thanks for the technical assistance (*you* make this possible), +and for keeping the project a good time. And, of course, thanks +*much* to the upstream developers for such nice building materials. + +As always, thanks to my wife Andrea for putting up with +development that began to stretch to every waking hour and +deadlines being pushed back for one reason or another way too +many times. We'll try to get a little more family time over +the next month or so. Hi Briah! + +Have fun! :-) + +Pat Volkerding + diff --git a/SPEAKUP_DOCS.TXT b/SPEAKUP_DOCS.TXT new file mode 100644 index 000000000..78e339cba --- /dev/null +++ b/SPEAKUP_DOCS.TXT @@ -0,0 +1,331 @@ +The Speakup Tutorial +By Saqib Shaikh + +Introduction + +In recent months there has been a vast growth in the popularity of the +Linux operating system. Speakup is a Linux screen reader, that is it is a +software program that enables blind computer users to use Linux by +receiving speech output. + +This tutorial takes the new Speakup/Linux user through the basic things +that they need to know. + +What Is Speakup? + +As mentioned previously, Speakup is a screen reader for the Linux +operating system. One of the things which makes Speakup different from +more traditional screen readers is that it is patched into the kernel. To +explain what this means, Speakup is an integral part of the operating +system. This means that when you turn on your computer and Linux starts, +Speakup also starts, meaning you can hear all boot-up messages, and +resolve any problems related to the computer not reaching the login +prompt. In addition, when you shutdown your system you will receive speech +feedback right until the message "Power down" is given, indicating you +should turn off your computer. + +Speakup is written by Kirk Reiser and Andy Berdan. It is distributed under +the terms of the GNU GPL. If you don't already know, GPL stands for +General Public License, and is a license agreement that basically states +that you are free to copy, modify and distribute Speakup, but may not turn +any part of it into proprietary or commercial code without the permission +of the author, Kirk Reiser. + +Currently Speakup supports the following speech synthesisers. Each +synthesiser is given a keyword, which is how Speakup refers to that +synthesiser. + +acntpc: Accent PC internal speech synthesiser. +acntsa: Accent SA external speech synthesiser. +apolo: Apollo II external speech synthesiser. +audptr: Audapter external speech synthesiser. +bns: Braille 'n Speak family of note-takers, including the Braille 'n + Speak, Type 'n Speak, Braille Lite and Type Lite. +decext: External DEC-Talk (for the older DEC-Talk and Multi-Voice speech + synthesisers). +dectlk: DEC-Talk Express external speech synthesiser. +dtlk: Doubletalk PC internal speech synthesiser. +ltlk: Doubletalk external or Litetalk speech synthesiser. +spkout: Speakout external speech synthesiser. +txprt: Transport external speech synthesiser. + +Speakup Resources + +The official Speakup home page is at http://linux-speakup.org, and the ftp +site at ftp://ftp.braille.uwo.ca/pub/linux/speakup. + +Slackware Linux has recently become the first Linux distribution to +include Speakup. You can find more information about Slackware at +http://www.slackware.com, or download it at +ftp://ftp.slackware.com/pub/slackware/slackware. + +Bill Acker also has an FTP site devoted to Speakup and Red Hat Linux at +ftp://speakup.octothorp.org. + +There is an ever-growing group of Speakup users on the internet. They are +all very friendly and willing to help each other with Speakup or Linux +problems. The main interaction between Speakup users is via the Speakup +mailing list. To subscribe, send a message to +. In the body of the message write the +word "subscribe" (or "unsubscribe" to unsubscribe). Once you are +subscribed to the list, send a message to everyone else on the list by +emailing . + +Some users also hang out on the Speakup reflector. In order to use this +you should get and install a program called Speak Freely, which is +available for both Linux and Windows. To connect, point your sfmike at +lwl.braille.uwo.ca:4074. + +Various people, Matthew Campbell in particular, have done talks about +Linux/Speakup on the ACB Radio Main Menu show. For more information, visit +http://www.acbradio.org. + +Finally, you may contact Kirk directly at . However, +please remember that if Kirk gets lots of emails all asking the same thing +he might get rather annoyed, so its always better to try the mailing list +first! + +Speakup Screen Reading Keys + +Using Speakup it is possible to use a special reading cursor to look +around the screen, without affecting the application's current operation. +All of Speakup's reading keys are, by default, bound to keys on the +numeric keypad. It is possible to change this default layout, but this +will require some knowledge of how Linux keymaps work. If you feel like +doing this then you should consult the document +ftp://ftp.braille.uwo.ca/pub/linux/speakup/keymap-tutorial. + +Sometimes Speakup uses the 0, or insert key on the numeric keypad to +provide more functions. In these cases hold down the insert key and press +the other button. Note that although we call this the insert key, you +cannot use the other insert key which is positioned in a block of six +above the cursor keys. + +The numbers 7, 8 and 9 on the numeric keypad read the previous, current +and next lines respectively. When moving up or down, the reading cursor +will be moved to that line. If you try pressing 7 when the reading cursor +is on the top line of the screen, or 9 when the reading cursor is on the +bottom line, then Speakup will respond "Top" or "Bottom" appropriately. + +To move to, and read the previous/current/next word, use 4, 5 and 6 +respectively. If you hear a beep, this means that you have past the end of +a line, and have moved to a different line. If you try to press 4 when you +are on the first word on the first line, or 6 when you are on the last +word of the last line, then Speakup will respond "Top" or "Bottom" as +before. + +Use the 1, 2 and 3 to read by characters. As when reading words the +computer will beep when you move to a new line, and say "Top" or "Bottom" +when you are at the top/bottom of the screen. + +To read from the top of the screen to the reading cursor use insert+8. Use +insert+4 to read from the beginning of the line to the reading cursor, and +insert+6 to read from the reading cursor to the end of the line. + +Insert+5 will spell the current word. Insert+2 will say the current +character phonetically, using the millitary alphabet. + +Use the plus (+) key to read the entire screen. Insert+plus reads from the +reading cursor to the bottom of the screen. + +The minus key (-) toggles between having the reading cursor parked or +unparked. When the reading cursor is unparked, whenever the application +moves the cursor to a different position, the reading cursor will also +move. If parked, the reading cursor will always stay in its current +position unless you actually move it. This is often useful if you just +wish to monitor a particular part of the screen. + +Insert+minus causes the decimal and hexadecimal value of the current +character to be read. Point (.) reads the current cursor position. This +includes the point on the current screen as well as which virtual console +is active. The minus key causes the color attributes of the current +position to be spoken. + +To move the reading cursor to the top of the screen use insert+9, and use +insert+3 to move to the bottom of the screen. Insert+7 moves to the +beginning of the line, while insert+1 moves to the end of the line. + +You can press any key to temporarily mute speech (the best way is to use +the control key). Pressing the enter key on the numeric keypad causes +Speakup to be silent until another key is pressed. Insert+enter causes +Speakup to stop talking until insert+enter is pressed again. + +The slash key (/) will cause Speakup to go to the row/column that you +specify. The star key (*) toggles on cursor tracking. Cursor tracking is +currently only experimental. + +Changing Speech Parameters + +Speakup now uses the /proc file-system to change parameters. Use the command + +echo value >/proc/speakup/parameter + +Here, parameter includes such things as rate, pitch, volume, etc. To find +out the list of available parameters, type: + +ls /proc/speakup + +Value refers to the value you wish to set the parameter to. For example, +to set the rate of the sixth fastest value you would enter + +echo 6 >/proc/speakup/rate + +Installing Linux With Speech + +Using Speakup it is now possible to install Linux with speech feedback. +For full details on installing Linux refer to one of the many good books +available, or the documentation that comes with your distribution of +Linux. + +Finally, there is also another useful tool in the installer. This is +Parted. It is a tool from which you can resize existing partitions. + +Changing Your Keyboard Layout + +One problem with Speakup is that in order to get the reading keys on the +numeric keypad to work, you must use the US keymap during a talking +installation of Linux. Later, you can change the keymap by using the +following procedure: + +Firstly, download +ftp://ftp.braille.uwo.ca/pub/linux/speakup/speakupmap.map. This is a +keymap containing the Speakup key definitions. + +Copy this file into the directory where your standard keymaps live. Copy +the US keymap into the file standard.map using a command like: + +cp us.map standard.map + +Then type: + +diff -urN speakupmap.map standard.map >map.diff + +Now, copy the keymap for your language to standard.map, for example: + +cp uk.map standard.map + +And finally type: + +patch -p0 + + +Sorry, this document is out of date, but probably still helpful. A +couple of quick hints. A working boot line might look like this: + +speakup.s speakup.synth=dectlk speakup.ser=1 + +Some synths need the speakup.ser to set the port and cannot probe +(even if they could with older kernels). Anyway, good luck with the +install! Ignore the parts about floppy disks and read the other docs +and you should have no problems... hopefully. With the 2.6.24.x +kernel series came many changes in console handling which initially +broke speakup completely. Now there's been a report that while the +installation works, the system will not speak upon reboot. Perhaps +this could be due to the appending of vt.default_utf8=0 in lilo.conf. +If you run into this problem, you could try removing that, or changing +the 0 to 1. Also, gpm was interfering with serial installations in +the Slackware 12.0 release, and could perhaps be another factor if +it does something to grab control of the serial port when the system +is rebooted after installation. + +In short, there are probably still some problems that remain with +this, but that should be possible to work around. I apologize for +not having this as polished and tested as I would wish for it to be. +Any feedback that could help make this better the next time around +would be greatly appreciated. + +Also, note that the speakup kernel is also supported within the USB +and PXE installers, so there are additional options for machines +that are not able to boot a CD or DVD. For more information on +these, read the documentation in the usb-and-pxe-installers +directory. + +Enjoy! + + +Introduction + +Recently, a Linux screen reader called Speakup has become part of the +popular Slackware Linux distribution. This document describes the +procedure for installing Slackware Linux on your computer with speech +output, courtesy of Speakup. It should be noted that this document is only +a whirl-wind tour of installing Slackware, paying particular attention to +the use of Speakup. You should also refer to "The Speakup Tutorial", which +is also written by myself. This tutorial discusses how to use Speakup in +your day-to-day tasks. You should also consult "Slackware Linux +Essentials", which is the official Slackware book. It can be bought +separately, or with a copy of Slackware, or read online at +http://www.slackware.com. + +Getting Started + +The minimum requirements of running Linux with speech are similar to those +detailed in the "Slackware Essentials" book. In addition, however, you +will require a hardware speech synthesiser. The following synthesisers are +currently supported. I give the keyword used to refer to each synthesiser +as you will require this later in the installation process. + +acntpc: Accent PC internal speech synthesiser. +acntsa: Accent SA external speech synthesiser. +apolo: Apollo II external speech synthesiser. +audptr: Audapter external speech synthesiser. +bns: Braille 'n Speak family of note-takers, including the Braille 'n + Speak, Type 'n Speak, Braille Lite and Type Lite. +decext: External DEC-Talk (for the older DEC-Talk and Multi-Voice speech + synthesisers). +dectlk: DEC-Talk Express external speech synthesiser. +dtlk: Doubletalk PC internal speech synthesiser. +ltlk: Doubletalk external or Litetalk speech synthesiser. +spkout: Speakout external speech synthesiser. +txprt: Transport external speech synthesiser. + +The easiest way of getting started is to either have bought a copy of the +Slackware CD-ROM or burned a copy of the Slackware CD ISO image onto a +CD-R. This will allow you to boot into the installer directly without the +need for any floppy disks. Due to various binaries and libraries that +have increased in size, starting the installer from floppy disks will +require loading 6 floppies. That is, a bootdisk and 5 rootdisk floppies. +If your machine cannot boot a CD-ROM and you will need to create floppy +disk images, read on to find out how. Otherwise, if you will be booting +the CD-ROM to install, you may skip ahead to the section on Starting The +Installation Process. + +If you are using DOS or Windows, then change to the directory where the +boot disks are kept. An example command may be: + +c:\>d: +d:\>cd\bootdisks +d:\bootdisks> + +Confirm that the directory contains the file "speakup.s", "speakup.s", +"speakup2.s", or "speakaha.s". The decision of which disk you are going +to use depends on whether you are going to install onto an IDE hard drive +or a SCSI one. If you don't know, then you're probably using an IDE hard +drive. There is a complete description of the SCSI drivers included in +each disk in the README.TXT in the bootdisks directory if you need more +information to choose the proper disk. Now, you must write the contents +of the disk image to one of the blank floppy disks. You do this under +DOS/Windows using the "rawrite" command. Insert one of the disks and issue +a command such as: + +d:\bootdisks>rawrite speakup.s a: + +If you are using a SCSI hard drive then use the speakup.s file instead. + +Now you must create the root disk. Change into the directory where the root +disks are kept: + +d:\bootdisks>cd \rootdisks +d:\rootdisks> + +The disk images you will need for the installation are called install.1, +install.2, install.3, install.4, and install.5. There are also two extra +disks in the rootdsks directory, namely "pcmcia.dsk" and "network.dsk". +These disks are for people who wish to install from a PCMCIA device or +using NFS. + +To actually create the root disks insert a blank floppy disk for install.1 +and issue a command such as: + +d:\rootdisks>rawrite install.1 a: + +You will need to repeat this process with 4 more disks to create install.2, +install.3, install.4, and install.5 as well. + +If you are already running Linux or another Unix-compatible +operating-system then you can create the disks by mounting the CD-ROM (in +this example I assume you mount it under /mnt). + +dd if=/mnt/bootdisks/speakup.s of=/dev/fd0 +dd if=/mnt/rootdisks/install.1 of=/dev/fd0 +dd if=/mnt/rootdisks/install.2 of=/dev/fd0 +dd if=/mnt/rootdisks/install.3 of=/dev/fd0 +dd if=/mnt/rootdisks/install.4 of=/dev/fd0 +dd if=/mnt/rootdisks/install.5 of=/dev/fd0 + +Starting The Installation Process + +To start the talking version of the setup program, you'll need to boot the +CD-ROM or bootdisk. Some machines will automatically boot a CD-ROM, but +it might be necessary to make a change in the BIOS settings if it doesn't +boot right away. The process for entering the BIOS setup differs from +system to system, so you may need to consult your system documentation if +you need to change your system's boot defaults. + +If you are booting from CD-ROM, insert the disc and boot your computer. +After a while, the disc will stop spinning and at this point you should +enter: + +speakup.s speakup.synth=synthname + +replacing synthname with the short keyword that refers to your synthesiser +as discussed above. If you have an external speech synthesiser that is not +plugged into your first serial port, such as com2/3/4 under DOS, then you +will need to specify the serial port to use. Do this by entering: + +speakup.s speakup.synth=synthname speakup.ser=n + +If you are booting with a floppy disk, the syntax is a little bit +different. First insert the boot disk and turn on your computer. After a +second or so the floppy disk should stop spinning. At this point enter: + +ramdisk speakup.synth=synthname + +replacing synthname with the short keyword that refers to your synthesiser +as discussed above. Just like with the CD-ROM, if you have an external +speech synthesiser that is not plugged into your first serial port, such +as com2/3/4 under DOS, then you will need to specify the serial port to +use like this: + +ramdisk speakup.synth=synthname speakup.ser=n + +Where n is the number of your serial port. Note that the serial ports are +numbered 1-4. + +With either the CD-ROM or bootdisk, once you've entered the correct +command the Linux kernel will load and boot, and after a few seconds your +synthesiser should start talking. It will read all boot-up messages, which +you probably don't want to hear. To silence speech press the enter key on +the numeric keypad. + +At this point it is probably worth giving a brief overview of the Speakup +screen reading functions, though a more detailed description can be found +in the "Speakup Tutorial". + +To temporarily silence speech press the control key. To silence speech +until another key is pressed use the enter key on the numeric keypad. You +can move around the screen using Speakup's reading cursor. Note that +moving the reading cursor does not move the actual cursor on the screen. +The numbers 1, 2 and 3 on the numeric keypad read the prior, current and +enxt characters respectively. Similarly the 4, 5 and 6 keys read the +prior, current and next word. 7, 8 and 9 read the previous, current and +next line. The plus key reads the entire screen. There are many other +screen reading keystrokes, but these are the main ones to get you started. + +If you used a floppy disk to start the system, you will be asked to insert +the root disk and press enter, so you'll need to put in the install.1 +disk, hit enter, and let it load. You'll need to repeat this process for +each of the five install disks. + +Finally you will reach the login prompt. Just type the word "root" and +press enter. Speakup will not say anything. This is because once you have +logged in the prompt is a % symbol, which Speakup doesn't read with the +default punctuation setting. + +Partitioning Your Hard Drive + +The issue of partitioning is one which Linux books spend entire chapters +explaining. In this document I shall not go into all the details, but +rather concentrate on Speakup specific usage. + +To start the partitioning tool use the command: + +%cfdisk /dev/diskname + +Where diskname is the name of the disk to partition. This is often hda1. + +Now you are in a screen which contains a list of partitions at the top. +You can move through these with the up/down arrow keys, and read them in +more detail using the review keys on the numeric keypad. At the bottom are +a number of options to perform various actions. Cycle through these using +the tab key. + +First of all, if your hard drive is already full (this is the case with +most newly bought computers), then you will need to delete some partitions +by moving to it and pressing the letter d. Using Speakup this is quite +hard to do. Move up until the computer beeps, indicating that you are on +the top partition. Then move down to the number you want and free up some +more space. If you want to start from scratch then press d and then down, +repeating this for each partition. Every deleted partition will be +replaced with "free space". Note that deleting a partition will completely +destroy all data stored on it. + +In my example I will delete all partitions. Next you need to create at +minimum two partitions. To create the first one highlight "free space". +Then press tab. Each time you will hear a couple of options, followed by a +description. Listen to the description, and this will let you know which +option is selected. Select "New". You will be prompted with +primary/extended. Just press enter for primary in most cases. Then you +will be asked for the size in megabytes. The total size of the free space +will be given. For your main Linux partition you should use almost all of +the free space, leaving just a bit for swap space, which acts as virtual +memory. Typically it is recommended to have twice as much swap space as +you do RAM, with a maximum of 128 mb. In my example I am prompted with +4023, so I enter 3900 and press enter. Finally I am asked whether I want +the partition at the beginning or end of the partition. Once again press +enter for beginning. + +Now we must create a swap partition. Move down to the second block of free +space and select "new" again. Press enter to create a primary partition, +enter a second time to except the default value, and enter a third time to +place it at the beginning. + +Now, move up to the first partition you created. Press tap until you hear +the "boot" option. Press enter. Move down to the second partition and tab +until you hear "type". Press enter. You will be given lots of options and +will need to press space to get to the second screen of options. Enter the +number 82 and press enter. + +Now, use the review keys to move up to the partition list and examine the +entries. You should have one partition of type "Linux", with the word +"boot" on that line. Then you should have another line on which the word +"boot" does not exist, of type "Linux Swap". + +Finally, press tab until you reach the "write" option and press enter. +When prompted type the word yes and press enter. When it is complete tab +to quit and press enter. + +Now, that is a very complicated procedure, and so that it doesn't go wrong +you should really consult some other sources of information. This +discussion has only been included to get around some of Speakup's little +querks. + +Starting Setup + +To actually start the setup procedure just enter the word "setup" and +press enter. + +You will be placed in a menu with many options. Note that when using the +up/down arrows in this menu Speakup will say two values. When moving down +the menu you should listen to the second item, and when moving back up the +menu take note of the first one. This is because Speakup doesn't fully +support cursor tracking yet. You may turn on experimental cursor tracking +by using the star key on the numeric keypad. + +The first option is "help". Select this if you want to read more +information about the setup procedure. + +The next item is "Remap your keyboard". When using Speakup you generally +do not need to do this as the kernel includes a us+speakup map, however +there are now two Speakup related choices on the menu if you want to try +them out -- speakupmap.map, and speakup-jfw.map. + +The next option is "Add swap". You will be placed on the first swap +partition, which is generally the right one so just press enter. When it +completes it will display some more messages, just acknowledge these by +pressing enter. You will automatically be taken to the next step, which is +to add a Linux partition. Once again you will be placed on the first Linux +partition, so just continue pressing enter. + +The next step is to select where you want to install from. This is +generally CD-ROM or maybe hard drive. Select the option from the list and +press enter. Just continue to press enter through most of the prompts, +which are self-explanatory. + +Next, you will be placed in a list of package groups you may install. Use +the arrow keys to move to an option and then press the space bar. A letter +x means that an option is selected. Once you've chosen all the groups just +press enter. + +Now you will be asked for the prompting mode. Just press enter for full +prompting mode. The files will now be uncompressed to your hard drive. You +may wish to press keypad-enter while it installs. + +You will next be asked to install a kernel. You have two options. The +first is to choose to install the kernel from the boot disk in which case +you will be asked to enter that disk. The alternative is to install a +kernel from the CD-ROM. If you choose the first option you will +automatically get a talking kernel. If you choose to select one from the +CD-ROM, then you will need to choose speakup.s, speakup.s, speakup2.s, or +speakaha.s (whichever you used before) from the list of available kernels. + +The next few sections depend what software you installed. It includes such +things as selecting your time zone and configuring the network. By now you +should have got the idea of selecting an item with up/down and then +pressing enter to move to the next stage, so I will not go into all the +details. Refer to the Slackware manual for further details. + +Finally you will be asked to specify the root password. When you type the +password Speakup will not say anything. This is because nothing is being +written to the screen so that someone looking over your shoulder doesn't +see the password. + +And that's it! You now have Linux installed on your computer! + +Reboot your system. When your computer stops at the boot prompt enter the +text: + +linux speakup.synth=synthname + +using the same synthname as before, and your computer should come up talking. + +Where Now? + +You should now continue reading the online book, "Slackware Linux +Essentials" to learn more about Linux. The "Speakup Tutorial" will also +help you learn more about Speakup, as well as giving more information +about joining the Speakup mailing list, which is an invaluable resource +for getting your questions answered. + +Good luck in your Linux adventures. If you found this document useful then +please let me know. Equally, if you don't like it then tell me also. + +You may reach the author via email at ss@saqibshaikh.com. You may also +like to visit his home page at http://www.saqibshaikh.com. + diff --git a/Slackware-HOWTO b/Slackware-HOWTO new file mode 100644 index 000000000..1bbfe2f94 --- /dev/null +++ b/Slackware-HOWTO @@ -0,0 +1,1212 @@ + +Slackware Linux CD-ROM Installation HOWTO +Patrick Volkerding +v13.0, 2009-08-25 + +This document covers installation of the Slackware(R) distribution of the +Linux operating system from the Slackware CD-ROM. + ______________________________________________________________________ + + + Table of Contents + + + 1. Introduction + + 1.1 Sources of documentation + + 2. Hardware requirements + + 3. Slackware Space Requirements + + 3.1 Preparing a Partition for Slackware + 3.2 Booting the Slackware CD-ROM + 3.3 Using Linux fdisk to create Linux partitions + + 4. Installing the Slackware distribution + + 4.1 The ADDSWAP option + 4.2 The TARGET option + 4.3 The SOURCE option + 4.4 The SELECT option + 4.5 The INSTALL option + 4.6 The CONFIGURE option + 4.7 LILO + 4.8 Networking + + 5. Booting the installed Slackware system + + 6. Post-installation configuration + + 6.1 /etc/rc.d/rc.modules + 6.2 Configuring the X Window System + 6.3 Hardware acceleration with X + 6.4 User Accounts + + 7. For more information + + 8. Trademarks + + ______________________________________________________________________ + +1. Introduction + +Linux is a multiuser, multitasking operating system that was developed by +Linus Torvalds and hundreds of volunteers around the world working over +the Internet. + +The Linux operating system now runs on several machine architectures, +including ARMs, Intel 80x86, Sparc, 68K, PowerPC, DEC Alpha, MIPS, and +others. The x86 Slackware distribution of Linux runs on most PC +processors compatible with the Intel 486 or better, including (but not +limited to) the Intel 486, Celeron, Pentium I, MMX, Pro, II, III, Xeon, +4, M, D, Core, Core 2, Core i7, and Atom; AMD 486, K5, K6, K6-II, K6-III, +Duron, Athlon, Athlon XP, Athlon MP, Athlon 64, Sempron, Phenom, +Phenom II, and Neo; Cyrix 486, 5x86, 6x86, M-II; Via Cyrix III, Via C3, +Via Nano; Transmeta Crusoe and Efficeon. Essentially anything that's +x86 and 32-bit (with at least i486 opcodes) will do for the 32-bit x86 +edition of Slackware, or 64-bit and supporting x86_64 extensions (also +known as AMD64, EM64T, or Intel 64) for the x86_64 edition of Slackware. + +Linux is modeled after the UNIX(R) operating system. The Slackware +distribution contains a full program development system with support for +C, C++, Fortran-77, LISP, and other languages, full TCP/IP networking +with NFS, PPP, CIFS/SMB (Samba), a full implementation of the X Window +System, and much more. + + +1.1. Sources of Documentation + +If you're new to Slackware, you'll be happy to know there is a *lot* of +documentation and help available both on the Internet and on the CD-ROM +itself. + +A great source of general documentation about Linux is the Linux +Documentation Project, online at: http://tldp.org/ + +Here you will find a collection of documents known as the "Linux HOWTOs" +as well as other useful guides. + +For additional help with Slackware, check out the Slackware forum at +linuxquestions.org. + + +2. Hardware Requirements + +Most PC hardware will work fine with Slackware, but some Plug-and-Play +devices can be tricky to set up. In some cases you can work around this +by letting DOS initialize the card and then starting Slackware with the +Loadlin utility. Setting the computer's BIOS to configure Plug-and-Play +cards also may help -- to do this, change the "Plug and Play OS" option to +"no". + +Here's a basic list of what you'll need to install Slackware: + +128 megabytes (128MB) or more of RAM. If you have less RAM than this, you +might still be able to install, but if so don't expect the best possible +experience. + +You also will need some disk space to install Slackware. For a complete +installation, you'll probably want to devote a 6GB *or larger* partition +completely to Slackware (you'll need almost 5GB for a full default +installation, and then you'll want extra space when you're done). +If you haven't installed Slackware before, you may have to experiment. +If you've got the drive space, more is going to be better than not enough. +Also, you can always install only the first software set (the A series +containing only the basic system utilities) and then install more software +later once your system is running. + +If you use SCSI, Slackware supports most SCSI controllers. The "huge" +kernels support as much of the boot hardware as possible, including +several hardware RAID controllers, Fiber Channel controllers, software +RAID in linear and RAID 0 through 6 and RAID 10, LVM (Logical Volume +Manager), and kernel support required to have fully encrypted systems. + +To install from the DVD or CD-ROM, you'll need a supported drive. These +days, the chances that your drive is supported by the install kernels +is excellent. But, if not, you can always use a USB stick and install +via the network. Or, use a floppy disk to install using PXE and the +network. See the docs in usb-and-pxe-installers and the etherboot +directory within for instructions. + + +3. Slackware Space Requirements + +Slackware divides the installable software into categories. (in the old +days when people installed Linux from floppy disks, these were often +referred to as "disk sets") Only the A series category (containing the +base Linux OS) is mandatory, but you can't do very much on a system that +only has the A series installed. Here's an overview of the software +categories available for installation, along with the (approximate) amount +of drive space needed to install the entire set: + + A The base Slackware system. (270 MB) + + AP Linux applications. (270 MB) + + D Program development tools. (575 MB) + + E GNU Emacs. (80 MB) + + F FAQs and HOWTOs for common tasks. (35 MB) + + K Linux 2.6.29.6 kernel source. (380 MB) + + KDE The K Desktop Environment and applications. (800 MB) + + KDEI Language support for the K Desktop Environment. (730 MB) + + L System libraries. (840 MB) + + N Networking applications and utilities. (275 MB) + + T TeX typesetting language. (285 MB) + + TCL Tcl/Tk/TclX scripting languages and tools. (15 MB) + + X X Window System graphical user interface. (290 MB) + + XAP Applications for the X Window System. (485 MB) + + Y Classic text-based BSD games. (5 MB) + +If you have the disk space, we encourage you to do a full installation for +best results. Otherwise, remember that you must install the A set. You +probably also want to install the AP, D, L, and N series, as well as the KDE, +X, and XAP sets if you wish to run the X Window System. The Y series is fun, +but not required. + + +3.1 Preparing a Partition for Slackware + +If you plan to install Slackware onto its own hard drive partition +(this offers optimal performance), then you'll need to prepare one or +more partitions for it. + +A partition is a section of a hard drive that has been set aside for +use by an operating system. You can have up to four primary +partitions on a single hard drive. If you need more than that, you +can make what is called an ''extended partition.'' This is actually +a way to make one of the primary partitions contain several +sub-partitions. + +Usually there won't be any free space on your hard drive. Instead, +you will have already partitioned it for the use of other operating +systems, such as MS-DOS or Windows. Before you can make your Linux +partitions, you'll need to remove one or more of your existing drive +partitions to make room for it. Removing a partition destroys the +data on it, so you'll want to back it up first. + +If you've got a large partition that you'd like to shrink to make +space for Slackware you might consider using GParted, a partition +editor that allows resizing and moving of existing partitions. +They have a Live CD and USB image that allows running the program +on a minimal OS, as well as versions to boot from PXE or the hard +drive. Bootable images with GParted may be found here: + +http://gparted.sourceforge.net/index.php + +There's also the regular version of GNU parted that does the same +thing from the command line. It is included in the installer, and +as a package in the L series. + +If you plan to repartition your system manually, you'll need to back +up the data on any partitions you plan to change. The usual tool for +deleting/creating partitions is the fdisk program. Most PC operating +systems have a version of this tool, and if you're running DOS or +Windows it's probably best to use the repartitioning tool from that OS. +Usually DOS uses the entire drive. Use DOS fdisk to delete the +partition. Then create a smaller primary DOS partition, leaving +enough space to install Linux. Preferably this should be more than 6GB. +If your machine doesn't have a lot of RAM, you'll want another +partition for swap space. The swap partition should be equal to the +amount of RAM your machine has, but should in any case be at least +128MB. If you don't have that much drive space to spare, the more the +better to avoid running out of virtual RAM (especially if you plan on +using a graphical desktop). You'll then need to reinstall DOS or +Windows on your new DOS partition, and then restore your backup. + +We'll go into more detail about partitioning later, and you don't need +to create any new partitions yet -- just make sure you have enough free +space on the drive to do an installation (more than 6GB is ideal), or +that you have some idea about which existing partition you can use for +to install on. + + +3.2 Booting the Slackware CD-ROM + +If your machine has a bootable CD-ROM drive (you may need to configure +this in the system's BIOS settings) then you'll be able to directly +boot the first CD-ROM. If not, then see the files in the +usb-and-pxe-installers directory for information about alternative +methods of booting the installer. Also, don't neglect to read the +CHANGES_AND_HINTS.TXT file, which is probably the most accurate piece +of documentation to ship with Slackware (thanks Robby!). + +Now it's time to boot the disc. Put the Slackware installation CD-ROM in +your machine's CD-ROM drive and reboot to load the disc. You'll get an +initial information screen and a prompt (called the "boot:" prompt) at the +bottom of the screen. This is where you'll enter the name of the kernel +that you want to boot with. With most systems you'll want to use the +default kernel, called huge.s. + +To boot the huge.s kernel, just enter huge.s on the boot prompt: + +boot: huge.s + +(actually, since the huge.s kernel is the default, you could have just +hit ENTER and the machine would go ahead and load the huge.s kernel +for you) + + +These are the kernels shipped in Slackware: + +huge.s This is the default installation kernel. If possible, + you can save a bit of RAM later (and some ugly warnings at + boot time or when trying to load modules when the driver is + already built-in) by switching to a generic kernel. In this + case that would be the generic kernel, which is similar but + without filesystems and many of the less common drive + controllers built in. To support these (at the very least + your root filesystem), an initrd (actually an initramfs) + is required when a generic kernel is used. Previous + versions of Slackware used an ext2 filesystem for this, but + now a filesystem-less dynamic kernel-based directory + structure is used. A big advantage of this is that the size + usable by the initrd is only limited by the amount of RAM in + the machine. A disadvantage is that the generic kernels no + longer include *any* filesystems besides romfs, so old + initrd.gz files are not usable (they would have needed new + modules anyway), and it is trickier to get a custom binaries + or modules or whatever into the installer for guru-install + purposes. It's not impossible though -- think tar to/from a + device such as a USB stick, or leveraging ROMFS. + +speakup.s This is like the huge.s but has support for Speakup and all + the SCSI, RAID, LVM, and other features of huge.s. There is + no corresponding generic kernel for speakup.s, but the vanilla + linux sources may be patched with the speakup sources in + source/k (this will probably work on any recent kernel). + After that, whatever customizations are needed should be + easily adjusted. The speakup.s kernel is used to support + hardware speech synthesizers as well as software one like + festival (though these require additional programs that are + not yet shipped with Slackware). + + For more information about speakup and its drivers check out: + http://www.linux-speakup.org. + To use this, you'll need to specify one of the supported + synthesizers on the kernel's boot prompt: + + speakup.s speakup.synth=synth + + where 'synth' is one of the supported speech synthesizers: + acntpc, acntsa, apollo, audptr, bns, decext, decpc, + dectlk, dtlk, dummy, keypc, ltlk, soft, spkout, txprt. + + A serial port may be specified with an option like this: + + speakup.s speakup.synth=decext speakup.ser=1 + + Note that speakup serial ports are numbered starting with + one (1, 2, 3) rather than the more typical 0, 1, 2 numbering + usually seen on Linux. + + +Once you've entered your kernel choice and hit ENTER, the kernel and +install program will load from the DVD or CD-ROM, and you'll arrive at +the Linux login prompt. (You're running Linux now. Congratulations! :-) + +To log into the system, enter the name of the superuser account and hit +Enter: + + root + +Since there is no password on the install CD, you will be logged in right +away. + + +3.3 Using Linux fdisk to create Linux partitions + +At this point, you should have a large chunk of unpartitioned space on +your hard drive that you'll be making into partitions for Slackware. + +Now you're ready to create your root Linux partition. To do this, you'll +use the Linux version of fdisk. + +To need to partition a hard drive, you need to specify the +name of the device when you start fdisk. For example: + +fdisk /dev/hda (Repartition the first IDE hard drive) +fdisk /dev/hdb (Repartition the second IDE hard drive) +fdisk /dev/sda (Repartition the first SCSI hard drive) +fdisk /dev/sdb (Repartition the second SCSI hard drive) + +NOTE: If you prefer, you may also try a newer menu-driven version +of Linux fdisk called 'cfdisk'. Rumor has it that MOST people do +prefer cfdisk, and "newer" has to be taken in context. cfdisk has +many years of testing behind it. + +Once you've started fdisk, it will display a command prompt. First look +at your existing partition table with the 'p' command: + + Command (m for help): p + +Disk /dev/hda: 40.0 GB, 40020664320 bytes +255 heads, 63 sectors/track, 4865 cylinders +Units = cylinders of 16065 * 512 = 8225280 bytes + + Device Boot Start End Blocks Id System +/dev/hda1 * 1 2423 19462716 c W95 FAT32 (LBA) + + +Here we can see that there is one DOS partition on the drive already, +starting on the first cylinder and extending to cylinder 2423. Since the +drive has 4865 cylinders, the range 2424 - 4865 is free to accept a Linux +installation. + +If the FAT32 partition were using the entire drive, you would have no +choice but to delete it entirely (this destroys the partition), or go back +and use some kind of partition resizing tool like GNU parted or Partition +Magic to create some free space for the installation. If you need to +delete a partition, use the 'd' command. You'll be asked which partition +number you want to delete -- check the partition size to make sure it's +the right one. + +Next, you'll want to use the 'n' command to create a primary partition. +This will be your root Linux partition. + + Command (m for help): n + Command action + e extended + p primary partition (1-4) + +You'll want to enter 'p' to make a primary partition. + + Partition number (1-4): 2 + +Here, you enter "2" since DOS is already using the first primary +partition. Fdisk will first ask you which cylinder the partition should +start on. Fdisk knows where your last partition left off and will suggest +the first available cylinder on the drive as the starting point for the +new partition. Go ahead and accept this value. Then, fdisk will want to +know what size to make the partition. You can specify this in a couple of +ways, either by entering the ending cylinder number directly, or by +entering a size. In this case, we'll enter the last cylinder. Here's what +the screen looks like as these figures are entered: + + First cylinder (2424-4865): 2424 + Last cylinder or +size or +sizeM or +sizeK (2424-4865): 4700 + +You have now created your primary Linux partition with a size of 18.7 GB. +Next, you'll want to make a Linux swap partition. You do this the same +way. First, enter another "n" to make a primary partition: + + Command (m for help): n + Command action + e extended + p primary partition (1-4) + +Enter "p" to select a primary partition. Partition 1 is in use by DOS, +and you've already used partition 2 for Linux, so you'll want to enter "3" +for the new partition number: + + Partition number (1-4): 3 + +Since this is the last partition we plan to make on this hard drive, we'll +use the end cylinder this time. Here are the entries for this: + + First cylinder (4701-4865): 4701 + Last cylinder or +size or +sizeM or +sizeK (4701-4865): 4865 + +Now we need to set the type of partition to 82, used for Linux swap. The +reason we didn't need to set a partition type the last time is that unless +otherwise specified Linux fdisk automatically sets the type of all new +partitions to 83 (Linux). To set the partition type, use the "t" command: + + Command (m for help): t + Partition number (1-4): 3 + Hex code (type L to list codes): 82 + +Now you're ready to save the updated partition table information onto your +hard drive. Use the "p" command again to check the results and be sure +you're satisfied with them: + + Command (m for help): p + +Disk /dev/hda: 40.0 GB, 40020664320 bytes +255 heads, 63 sectors/track, 4865 cylinders +Units = cylinders of 16065 * 512 = 8225280 bytes + + Device Boot Start End Blocks Id System +/dev/hda1 1 2423 19462716+ c W95 FAT32 (LBA) +/dev/hda2 2424 4700 18720732 83 Linux +/dev/hda3 4701 4865 1317332 82 Linux swap + +This looks good, so we'll use the "w" command to write the data out to the +drive's partition table. If you want to exit without updating the +partition table (if you've made a mistake), then you can exit without +changing anything by using the "q" command instead. + +When you exit fdisk using the "w" command, fdisk recommends that you +reboot the machine to be sure that the changes you've made take effect. +Unless you've created extended partitions, you can go ahead and run setup +without rebooting. + +Note: Sometimes fdisk will give you a message like "This drive has more +than 1024 cylinders" and warn about possible problems using partitions +with DOS. This is because MS-DOS suffers from a limitation that only +allows access to the first 1024 cylinders on a hard drive. At one time, +LILO used the standard BIOS routines to read sectors, so this was a +limitation of LILO, too. Luckily modern versions of LILO use the LBA32 +method of accessing sectors, so this limitation no longer applies. If you +see the warning from fdisk, you can safely ignore it. + + +4.0 Installing the Slackware distribution + +Now that you have one or more Linux partitions, you are now ready to begin +installing software onto your hard drive. To start the Slackware install +program, enter the command "setup" and hit enter: + + # setup + +The installer will start up with a full-color menu on your screen with the +various options needed to install Slackware. In general, you'll want to +start with the ADDSWAP option. Even if you've already created and +activated a swap partition manually, you'll need to run this so Slackware +adds the swap partition to your /etc/fstab file. If you don't add it, +your system won't use the swap space when you reboot. + +Installing a typical system involves running the following options from +the setup menu in this order: ADDSWAP, TARGET, SOURCE, SELECT, INSTALL, +and CONFIGURE. You may also start with KEYMAP if you have a non-US +keyboard layout, or with TARGET if you don't want to use a swap partition. + +For the rest of this section, we'll walk through a typical installation +process. + + +4.1 The ADDSWAP option: + +First, we select the ADDSWAP option. The system will scan for partitions +marked as type "Linux swap" and will ask if you want to use them for swap +space. Answer YES, and the system will format the partition and then make +it active for swapping. Once it's finished, setup will display a message +showing the line it will add to /etc/fstab to configure the swap partition +at boot time. Hit enter to continue, and setup will go on to the TARGET +section of the install. + + NOTE: If you created a partition to use for swap space, but setup +doesn't see it when it scans your drives, it's possible that the partition +type hasn't been set in the partition table. Use the Linux "fdisk" +program to list your partitions like this: + + # fdisk -l + + Disk /dev/hda: 40.0 GB, 40020664320 bytes + 255 heads, 63 sectors/track, 4865 cylinders + Units = cylinders of 16065 * 512 = 8225280 bytes + + Device Boot Start End Blocks Id System + /dev/hda1 1 2423 19462716+ c W95 FAT32 (LBA) + /dev/hda2 2424 4700 18720732 83 Linux + /dev/hda3 4701 4865 1317332 82 Linux + +In this case, if /dev/sda3 is meant to be a Linux swap partition, you'll +need to start fdisk on drive /dev/sda: + + # fdisk /dev/sda + + Command (m for help): t + Partition number (1-4): 3 + Hex code (type L to list codes): 82 + + Command (m for help): w + +This will change the third partition to type 82 (Linux swap) and write the +partition table out to /dev/sda. + +When you run setup again, the ADDSWAP option should detect the Linux swap +partition. + + +4.2 The TARGET option: + +The next option on the setup menu is TARGET. This lets you select which +partition(s) you'd like to install Slackware on, and will format them +using a Linux filesystem. Depending on which kernel you chose to boot +with, your filesystem choices may include ext2 (the traditional Linux +filesystem), ext3 (a journaling version of ext2), and Reiserfs (the first +journaling filesystem written for Linux; it stores files in a balanced +tree). + +When you select the TARGET option, the system will scan for "Linux" +partitions on your hard drives. If it doesn't find any, you'll need to +make sure that you've created partitions using the fdisk program, and that +the partitions are labeled as type 83 (Linux). This is the same process +shown above. If you've created one or more partitions for Slackware using +Linux's fdisk program then you shouldn't have any problems, since Linux +fdisk (and cfdisk) sets all new partitions to type 83 (Linux) by default. + +You will see a menu listing all the Linux partitions. Use the arrow keys +to select the partition you'd like to use for your root (or primary) Linux +partition and hit enter. The setup program will then ask if you'd like to +format the partition, and what type of filesystem to use. If this is a +new installation of Slackware, you'll need to do this. Otherwise, if you +are installing software onto an existing Linux system, you don't need to +format the partition. For example, the partition might be used as your +/home and contains home directories that you want to keep. If you choose +not to format a partition, you'll see "partition will not be reformatted" +on the top of the screen as you confirm your choice, so that there can be +no question about it. + +There are a few options you need to know about when you format Linux +partitions. First, you'll need to decide whether or not you'd like to +check the partition for bad blocks when you do the format. This is +usually not necessary unless you know the drive in question has problems. +Checking takes quite a while longer than a normal format (and most IDE +drives do self-checking anyway), so you'll probably want to just go ahead +and use the "Format" menu option to format the drive without checking. +If you have drive problems later on (and can't just replace the hard drive +with a better one), then you might want to go back and try again using the +"Check" option to map out the bad sectors on the drive. + +You'll notice that the partition you just formatted is now listed as "in +use." If you made some other partitions for Slackware, you'll need to go +through the same process of formatting them, selecting whether or not to +check for bad blocks, and setting a reasonable inode density. With these +partitions there will be an additional step -- you'll need to select where +you'd like to put the partition in your directory tree. + +MS-DOS/Windows assigns a letter such as A:, B:, C:, etc, to each device. +Unlike DOS, Linux makes your devices visible somewhere under the root +directory (/). You might have /dev/hda1 for your root partition (/) and +put /dev/hda2 somewhere underneath it, such as under your /home directory. +When prompted for a mount location, just enter a directory such as /home, +and hit enter. As you format each additional partition and place it in +the filesystem tree, you'll be returned to the partition selection menu. +When you've prepared all of your Linux partitions, you'll go on to the +SOURCE option. + + +4.3 The SOURCE option: + +The next menu option is SOURCE, where you select the source from which to +install Slackware. + +SOURCE displays a menu offering the choice of installation from CD-ROM, a +hard drive partition, NFS, HTTP/FTP, or a directory (mounted manually). +You'll want to make sure your Slackware CD-ROM is in your drive, and +select the first option: + + "Install from a Slackware CD-ROM" + +Next, the system will ask you if you'd like to scan for your CD-ROM drive +or pick manually from a list. (unless you're trying to show off to your +friends, go ahead and let setup scan for the CD-ROM drive automatically). +Setup will then try to access the Slackware CD-ROM. If this is +successful, setup will tell you that it found and mounted a CD-ROM on a +Linux device such as /dev/hdc. If the CD-ROM was successful found, you +may skip ahead to the SELECT section below, otherwise read on for some +CD-ROM troubleshooting tips. + +If setup is not successful in accessing the CD-ROM drive, you'll need to +figure out why before you can go on. The most common reason for this is +that you used a kernel that doesn't support the CD-ROM drive. If that's +the case, you need to restart the installation CD-ROM and specify a kernel +that contains a driver to support your CD-ROM drive (if the drive is +connected to a SCSI card, for example, you'll need to use a kernel with +support for that card). You can also try switching to a different console +with Alt-F2 and mounting the CD-ROM drive manually and then installing +from a pre-mounted directory (if you prefer a hands-on approach). + +If you have no idea which device an IDE CD-ROM drive is connected to, you +should have the system scan for it. You also can look at the messages +generated by the system as it boots -- you should see a message that +Slackware detected your CD-ROM drive along with information about what +type of drive it is. You can look at these messages by using the right +shift key together with the PageUp and PageDown keys to scroll the screen +up and down. + +For the network options, you'll need to have a network card that's +supported by one of the installer's modules, and preferably a DHCP server +running to make the network setup easy. The network install options are +to use as your source an NFS server, an FTP server, or an HTTP server +(along with an optional port). If you use DHCP to set up, odds are +you'll have working name resolution and won't need to enter an IP +address to specify the server (but you can if you wish, of course). + +The network installation feature is intended primarily to facilitate +installing to many machines on a local network. Please don't use it to +bog down the Slackware mirror sites. + +Thanks to Eric Hameleers for finally bringing FTP/HTTP installtion +support to the Slackware installer. :-) + + +4.4 The SELECT option: + +The SELECT option lets you select software to install. + +When you start the SELECT option, you'll see a menu where you can choose +which categories of software you're interested in installing. The first +series (called the A series) contains the base filesystem structure and +binaries that are crucial for your system to boot and run properly. You +must install the A series. Make sure that at least the selection for +series A has an [X] next to it. Most of the other choices will also have +an [X] next to them, and while you can use the cursor keys and the space +bar to unselect items to save space (see the space requirements above for +details), you're better off with a complete installation if you have the +space for it. + +Once you've selected the general categories of software you wish to +install, hit enter and you'll go on to the INSTALL option. + + +4.5 The INSTALL option: + +This option actually installs the selected packages to the hard drive. + +The first question the INSTALL option will ask is what type of prompting +you'd like to use during the installation process. A menu will show +several options, including "full", "newbie", "menu", "expert", "custom", +"tagpath", and "help". The help option gives detailed information on each +of the choices. + +Most people will want to use "full". Others might want "menu", "expert" +or "newbie" mode. We'll cover each of these in detail now. + +The first option to consider is "full". If you select this mode, then +setup assumes you want to install all the packages in each selected series +and installs them all without further prompting. This is fast and easy. +Of course, depending on which software categories you've chosen, this can +use a lot of drive space. If you use this option, you should be +installing to a partition with at least 6GB free (and hopefully more like +20GB or so) to insure that you don't run out of drive space during the +installation process. Because Linux allows you to split your installation +across multiple partitions, the installer cannot know ahead of time +whether the packages you've chosen to install will fit your partitioning +scheme. Therefore, it is up to you to make sure that there is enough +room. + +The "newbie" mode (which was formerly known as "normal" mode) installs all +of the required packages in each series. For each of the non-required +packages (one by one) you'll get a menu where you can answer YES (install +the package), NO (do not install the package), or SKIP (skip ahead to the +next series). You'll also see a description of what the package does and +how much space it will require to help you decide whether you need it or +not. The "newbie" mode is verbose, requires input after each package, and +is VERY tedious. It certainly takes a lot longer to install using newbie +mode, and (in spite of the name), it is easier to make mistakes in newbie +mode than by simply doing a full installation. Still, using it is a good +way to get a basic education about what software goes into the system +since you actually get a chance to read the package descriptions. With a +full installation most of the package descriptions will fly by too quickly +to read. + +If you can decide which packages you want from less information, the +"menu" or "expert" options are a good choice, and go much faster than a +"newbie" mode installation. These options display a menu before +installing each series and let you toggle items on or off with the +spacebar. In this Slackware release, the "menu" and "expect" install +modes act the same, and both options are kept only for consistency. +The "expert" mode lets you toggle packages individually, allowing the user +to make good or bad decisions, like turning off crucial packages or +installing a package that's part of a larger set of software without +installing the other parts. If you know exactly what you need, the +"expert" mode offers the maximum amount of flexibility. If you don't +know what you need, using the "full" mode is strongly suggested. + +The "custom" and "tagpath" options are only used if you've created +"tagfiles" for installation. In the first directory of each disk set is a +file called "tagfile" containing a list of all the packages in that +series, as well as a flag marking whether the package should be installed +automatically, skipped, or the user should be prompted to decide. This is +useful for situations where you need to install large numbers of machines +(such as in a computer lab), but most users will not need to create +tagfiles. If you are interested in using them, look at one of the +tagfiles with an editor. + +If you're new to Slackware, and you have enough drive space, you'll +probably want to select the "full" option as the easiest way to install. +Otherwise, the "menu" option is another good choice for most beginners. +If you think you need (or would just like to see) the extra information +offered by the "newbie" mode, go ahead and use that. Don't say you +weren't warned about the extra time it requires, though, especially +when installing the fragments that make up modular X. Trust us, you'll +be better off selecting "full". + +Once you have selected a prompting mode, the system begins the +installation process. If you've chosen "menu" or "expert" mode, you'll +see a menu of software to choose from right away -- use the arrow keys and +spacebar to pick what you need, and then hit enter to install it. If +you've chosen the "newbie" mode, the installation will begin immediately, +continuing until it finds optional packages. You'll get a selection menu +for each of these. If you selected "full", now it's time to sit back and +watch the packages install. + +If you've selected too much software, it's possible that your hard drive +may run out of space during installation. If this happens, you'll know it +because you'll see error messages on the screen as setup tries to install +the packages. In such a case, your only choice is to reinstall selecting +less software. You can avoid this problem by choosing a reasonable amount +of software to begin with, and installing more software later once your +system is running. Installing software on a running Slackware system is as +easy as it is during the initial installation -- just type the following +command to mount the Slackware CD-ROM: + + mount /dev/cdrom /mnt/cdrom + +Then go to the directory with the packages you want to install, and use +the install-packages script: + + cd /mnt/cdrom/slackware/xap + sh install-packages + +Other options for installing packages later on include "installpkg" and +"pkgtool". For more information about these, see the man pages ("man +installpkg", "man pkgtool"). + +Once you have installed the software on your system, you'll go on to the +CONFIGURE option. + + +4.6 The CONFIGURE option: + +The setup's CONFIGURE option does the basic configuration your system +needs, such as setting up your mouse, setting your timezone, and more. + +The CONFIGURE option will first ensure that you've installed a usable +Linux kernel on your hard drive. The installation program should +automatically install the kernel used to do the initial installation. +If you installed using the speakup.s kernel from CD-ROM, the menu will +prompt you to re-insert your installation disc and hit enter, and then +setup will copy the kernel from the disc to your hard drive. + +NOTE: If you install a kernel on your system that doesn't boot correctly, +you can still boot your system with the CD-ROM. To do this, you need to +enter some information on the boot prompt. For example, if your root +partition is on /dev/hda1, you'd enter this to boot your system: + + huge.s root=/dev/hda1 initrd= ro + +The "initrd=" option tells the kernel not to run the /init script on the +installer image in RAM, and the "ro" option makes the root partition +initially load as read-only so Linux can safely check the filesystem. + +Once you've installed a kernel, you'll be asked if you want to make a +USB bootstick for your new system. This is a very good idea if you +happen to have a spare USB flash stick that you don't mind having +COMPLETELY ERASED. :-), so if you wish to make one, insert a USB +flash memory stick when prompted and use the "Create" option to create +a USB bootstick for your system. + +Next you'll be asked what type of mouse you have. Pick the mouse type from +the menu (or hit cancel if you don't have a mouse), and setup will create a +/dev/mouse link. Most computers use a PS/2 mouse, which is the first choice. + +After this, other installation scripts will run depending on which +packages you've installed. For instance, if you installed the network-* +packages you'll be asked if you want to configure your network. + + +4.7 LILO + +LILO is the Linux Loader, a program that allows you to boot Linux (and +other operating systems) directly from your hard drive. If you installed +the LILO package, you now have an opportunity to set it up. + +Installing LILO can be dangerous. If you make a mistake it's possible to +make your hard drive unbootable. If you're new to Linux, it might be a +good idea to skip LILO installation and use the bootdisk to start your +system at first. You can install LILO later using the 'liloconfig' +command after you've had a chance to read the information about it in +/usr/doc/lilo-*. If you do decide to go ahead and install LILO, be sure +you have a way to boot all the operating systems on your machine in case +something goes wrong. If you can't boot Windows again, use the DOS command +"FDISK /MBR" to remove LILO from your master boot record. (You can use +a Windows Startup Disk for this) + +The easiest way to set your machine up with LILO is to pick the "simple" +choice on the LILO installation menu. This will examine your system and +try to set up LILO to be able to boot Windows (DOS) and Linux partitions +that it finds. If it locates the OS/2 Boot Manager, it will ask if you'd +like to configure the Linux partition so that you can add it to the Boot +Manager menu. (NOTE: If you use a disk overlay program for large IDE hard +drives such as EZ-DRIVE, please see the warning below before installing +LILO) + +The "expert" option gives you much more control over the configuration +of LILO. If you decide to use the "expert" option, here's how you do +it. LILO uses a configuration file called /etc/lilo.conf to hold the +information about your bootable partitions -- the "expert" LILO +installation lets you direct the construction of this file. To create +the file, first select BEGIN to enter the basic information about +where to install LILO. The first menu will ask if you have extra +parameters you'd like passed to the Linux kernel at boot time. If you +need any extra parameters enter them here. + +Then you'll be asked if you wish to use the framebuffer console. The +1024x768x256 console setting is a nice one to use in most cases, but you +may need to experiment to find the nicest setting for your card. Some +look terrible at modes larger than 800x600 because of the default refresh +rates, but at least ATI cards are known to look great at 1024x768x256. +If you want to use the framebuffer console, select a mode here. + +Next, decide where you want LILO installed. Usually you'll want to +install LILO on the boot drive's MBR (master boot record). If you use a +different boot manager (like the one that comes with OS/2) then you'll +want to install LILO on your root Linux partition and then add that +partition to the boot manager menu using its configuration tool. Under +OS/2, this is the fdisk program. + +NOTE: If you use the EZ-DRIVE utility (a diskmanager program supplied +with some large IDE drives to make them usable with DOS) then do not +install LILO to the MBR. If you do, you may disable EZ-DRIVE and render +your disk unusable with DOS. Instead, install LILO to the superblock of +your root Linux partition, and use fdisk to make the partition bootable. +(With MS-DOS fdisk, this is called setting the "active" partition) + +The next menu lets you set a delay before the system boots into the +default operating system. If you're using LILO to boot more than one +operating system (such as DOS and Linux) then you'll need to set a delay +so you can pick which OS you'd like to boot. If you press the SHIFT key +during the delay, LILO will display a prompt where you can type a label +(typically Windows or Linux) to select which OS to boot. If you set the +delay to 'Forever', the system will display a prompt at boot time and wait +for you to enter a choice. + +Next, you need to add entries for each operating system that LILO can +boot. The first entry you make will be the machine's default operating +system. You can add either a DOS, Linux, or Windows partition first. +For example, let's say you select "Linux". The system will display your +Linux partitions and ask which one of them you'd like to boot. Enter the +name (like /dev/hda1) of your root Linux partition. Then, you'll be +prompted to enter a label. This is the name you will enter at the boot +time LILO prompt to select which partition you want to boot. A good +choice for this is "Linux". + +Adding a DOS or Windows partition is similar. To add a Windows partition +to the LILO configuration file, select the Windows option. The system will +display your FAT/NTFS partitions and ask which one of them you'd like to +boot with LILO. Enter the name of your primary Windows partition. Then +enter a label for the partition, like "Windows". Once you've added all of +your bootable partitions, install LILO by selecting the "Install" option. + + +4.8 Networking + +Another configuration menu allows you to configure your machine's +networking setup. First, enter a hostname for your machine. The default +hostname after installation is "darkstar," but you can enter any name you +like. Next, you'll be asked to provide a domain name. If you're running a +stand-alone machine (possibly using a dialup link to an Internet Service +Provider) then you can pick any name you like. The default domain name is +"example.net". If you are going to add the machine to a local network, +you'll need to use the same domain name as the rest of the machines on +your network. If you're not sure what this is, contact your network +administrator for help. Once you've specified the hostname and domain +name, you'll be asked which type of setup you would like: "static IP", +"DHCP", or "loopback". + +Loopback +-------- + +This is the simplest type of setup, defining only a mechanism for the +machine to contact itself. If you do not have an Ethernet card, use this +selection. This is also the correct selection if you'll be using a PCMCIA +(laptop) Ethernet card and want to set up your networking in +/etc/pcmcia/network.opts. (you could also configure a PCMCIA card using +the "static IP" or "DHCP" options, but in that case will not be able to +"hotplug" the card) Finally, this is the right option to use if you have +a modem, and will be connecting via dialout and PPP. You'll select +loopback now, and then set up your phone connection later using pppsetup +or kppp. + +Static IP +--------- + +If your machine has an Ethernet card with a static IP address assigned to +it, you can use this option to set it up. You'll be prompted to enter +your machine's IP address, netmask, the gateway IP address, and the +nameserver IP address. If you don't know what numbers you should be +using, ask the person in charge of the network to help. After entering +your information, you'll be asked if you want to probe for your network +card. This is a good idea, so say yes. Confirm that the settings are +correct, and your networking will be configured to use a static IP +address. + +DHCP +---- + +DHCP stands for Dynamic Host Configuration Protocol, and is a system where +your machine contacts a server to obtain its IP and DNS information. +This is the usual way to get an IP address with broadband connections like +cable modems (although some more expensive business-class broadband +connections may assign static IP addresses). It is very easy to set up a +DHCP connection -- just select the option. Some providers will give you a +DHCP hostname (Cox is one that does) that you'll also need to enter in +order to identify yourself to the network. If you don't have a DHCP +hostname, just leave it blank and hit ENTER. After entering your +information, you'll be asked if you want to probe for your network card. +This is a good idea, so say yes. Confirm that the settings are correct, +and your networking will be configured to use DHCP. + +Once you've completed all the configuration menus, you can exit setup and +reboot your machine. Simply press ctrl-alt-delete and the kernel will +kill any programs that are running, unmount your filesystems, and restart +the machine. + + +5. Booting the installed Slackware system + +If you've installed LILO, make sure you don't have a disk in your floppy +drive -- when your machine reboots it should start LILO. Otherwise, insert +the bootdisk made for your system during the configuration process and use +it to boot. Also, make sure to remove the CD-ROM to avoid booting it, or +disable your machine's CD-ROM booting feature in the BIOS settings. + +The kernel will go through the startup process, detecting your hardware, +checking your partitions and starting various processes. Eventually you'll +be given a login prompt: + +darkstar login: + +Log into the new system as "root". + + Welcome to Linux 2.6.29.6. + + darkstar login: root + Last login: Sun Aug 23 18:33:01 -0500 2009 on tty3. + + Linux 2.6.29.6. + You have new mail. + + darkstar: ~# + + +6. Post-installation configuration + +Once the system is running, most of the work is complete. However, there +are still a few programs you'll need to configure. We'll cover the most +important of these in this section. + +6.1 /etc/rc.d/rc.modules + +This file contains a list of Linux kernel modules. A kernel module is +like a device driver under DOS. You can think of the /etc/rc.d/rc.modules +file as similar to DOS's CONFIG.SYS. The file specifies which modules the +system needs to load to support the machine's hardware. After booting +your machine, you may find that some of your hardware isn't detected +(usually an Ethernet card). To provide the support, you'll need to load +the correct kernel module. Note that modern Linux kernels include a +feature that allows the kernel to load its own modules, called udev. +This will load many modules automatically without any need to edit +rc.modules, and when using udev it might be better to tell it how to +load the modules you want automatically rather than loading them at boot +time with rc.modules. This is an advanced topic, and outside the scope of +this document. If you're interested in this, "man udev" is a good +place to start reading. In any case, it's best to not edit rc.modules +unless you find that the modules you want to use are not being loaded +automatically by udev. You can see a list of the modules that were loaded +with the "lsmod" command. Likewise, in the majority of cases "alsaconf" +is not required to configure sound. Rather, the "alsamixer" tool is used +to unmute the Master and PCM channels and turn up the volume, and the +"alsactl store" is used to save the sound defaults. + +There's a lot more information out there about kernel modules, including +lists of module names and the cards they support, as well as extra options +you can can add to the module lines to configure the hardware in different +ways. The kernel's documentation in /usr/src/linux/Documentation has a +lot of good information, as does the information shipped with udev (found +under /usr/doc/udev-*). + + +6.2 Configuring the X Window System + +Configuring X can be a complex task. The reason for this is the vast +numbers of video cards available for the PC architecture, most of which +use different programming interfaces. Luckily, X has come a long way +since the early days of X386, where monitor modelines had to be tediously +calculated. With most hardware, X can now be run with NO configuration +file or additional driver! But you still might want to make a +configuration file if you'll be using a third party video driver (the +installer for that may offer to make it for you), or if you just want to +have greater control over the details of the X configuration. + +To try X without a configuration file, just type "startx" at a command +line. If you're satisfied with the result, then you're done. If you +would like X to start automatically at boot, see the /etc/inittab file +once you've tested "startx" to be sure that X is working. + +If this doesn't work with your card, or if you'd like to take advantage of +the high-performance features of your video card such as hardware +acceleration or 3-D hardware rendering, then you'll need to reconfigure X. + +To configure X, you'll need to make an /etc/X11/xorg.conf file. This file +contains lots of details about your video hardware, mouse, and monitor. +It's a very complex configuration file, but fortunately there are several +programs to help create one for you. We'll mention a few of them here: + +Xorg -configure +--------------- + +Modern versions of X provide a simple way to create an initial xorg.conf +file that often will work without any additional configuration, or, at the +very least, provide a good base from which to customize the file. To run +this command, enter the following in a root terminal: + +# Xorg -configure + +The X server probes for available hardware and creates an initial +xorg.file located in the /root directory. You can then use this initial +file to test the configuration by entering the following: + +# Xorg -config /root/xorg.conf.new + +This will load the initial xorg.conf.new file and run the X server. If +you see the default black and gray checkered background with a mouse +cursor appear, then the configuration was successful. To exit the X +server, just press Ctrl+Alt+Backspace simultaneously. Once back at the +command line, you can copy this xorg.conf.new file to /etc/X11/xorg.conf +and begin making any manual edits necessary to customize your setup. + +xorgsetup +--------- + +This is a simple menu driven frontend that's similar in feel to the +Slackware installer. It simply tells the X server to take a look at the +card, and then set up the best initial configuration file it can make +based on the information it gathers. The generated /etc/X11/xorg.conf +file should be a good starting point for most systems (and should work +without modification). + + +6.3 Hardware acceleration with X + +If you've used xorgsetup or X -configure to configure for your card, and +it's one that can take advantage of X's direct rendering support, +you'll certainly want to enable this. Check your /etc/X11/xorg.conf and +make sure that the glx module is loaded: + + Load "glx" + +This line will probably already be in place. + + +6.4 User Accounts + +You should make a user account for yourself. Using "root" as your +everyday account is dangerous, and is considered bad form (at the very +least) since you can accidentally damage your system if you mistype a +command. If you're logged in as a normal user, the effects of bad +commands will be much more limited. Normally you'll only log in as root +to perform system administration tasks, such as setting or changing the +root password, installing, configuring, or removing system software, and +creating or deleting user accounts. + +To make an account for yourself, use the 'adduser' program. To start it, +type 'adduser' at a prompt and follow the instructions. Going with the +default selections for user ID, group ID, and shell should be just fine +for most users. You'll want to add your user to the cdrom, audio, video +plugdev (plugable devices like USB cameras and flash memory) and scanner +groups if you have a computer with multimedia peripherals and want to be +able to access these. Add these group names, comma separated, at the +following prompt: + + Additional groups (comma separated) []: + + +Passwords and security +---------------------- + +When choosing passwords for a Linux system that is connected to a network +you should pick a strong password. However, passwords only help protect a +system from remote trespassing. It's easy to gain access to a system if +someone has physical access to the console. + +If you forget the root password, you can use the install disc to mount +your root partition and edit the files containing the password +information. If you have a bootable optical drive, you can use the first +installation CD-ROM or the DVD as a rescue disk. + +At the prompt, you can manually mount the root Linux partition from your +hard drive ("fdisk -l" will give you a list) and remove the root password. +For example, if your root linux partition is /dev/hda2, here are the +commands to use after logging into the install disc as "root": + + mount /dev/hda2 /mnt + cd /mnt/etc + +Next, you'll need to edit the "shadow" file to remove root's password. +Editors which might be available include "vi", "emacs", "pico", and "nano". +"vi" and "emacs" might be more of an adventure than you need unless you've +used them before. The "pico" and "nano" editors are easy for beginners to +use. + + pico shadow + +At the top of the file, you'll see a line starting with root. Right after +root, you'll notice the encrypted password information between two colons. +Here's how root's line in /etc/shadow might look: + +root:EnCl6vi6y2KjU:10266:0::::: + +To remove root's password, you use the editor to erase the scrambled text +between the two colons, leaving a line that looks like this: + +root::10266:0::::: + +Save the file and reboot the machine, and you'll be able to log in as root +without a password. The first thing you should do is set a new password +for root, especially if your machine is connected to a network. + + +Here are some pointers on avoiding weak passwords: + +1. Never use your name (or anyone's name), birthdate, license plate, + or anything relating to yourself as a password. Someone trying + to break into your machine might be able to look these things up. + +2. Don't use a password that is any variation of your login name. + +3. Do not use words from the dictionary (especially not "password" :) + or syllables of two different words concatenated together as your + password. There are automated programs floating around on the net + that can try them all in a short time. + +4. Do not use a number (like 123456) or a password shorter than six + characters. + + +The strongest passwords are a mix of letters, numbers, and symbols. +Here are some examples of strong passwords (but don't use these ;-): + + *^5g!:1? ()lsp@@9 i8#6#1*x ++c$!jke *2zt/mn1 + +In practice, any password containing one or two words, a number (or two), +and a symbol (or two) should be quite secure. + + +7. For more information + +For more information, visit our web site at http://www.slackware.com + +To shop for fine Slackware products (and help keep the project funded), +please visit http://store.slackware.com. :-) + + + Email: info@slackware.com (Information or general inquiries) + FTP: ftp://ftp.slackware.com (Updates) + WWW: http://www.slackware.com (News) + Security issues: security@slackware.com + General Hotline: volkerdi@slackware.com + + +8. Trademarks + +Slackware is a registered trademark of Slackware Linux, Inc. +Linux is a registered trademark of Linus Torvalds. +All trademarks are property of their respective owners. + diff --git a/extra/README.TXT b/extra/README.TXT new file mode 100644 index 000000000..a4c58866e --- /dev/null +++ b/extra/README.TXT @@ -0,0 +1,6 @@ +/extra: Extra Slackware package directory + +Here are some extra/alternate packages that might be handy. + +These can be installed using "installpkg". + diff --git a/extra/bittorrent/README b/extra/bittorrent/README new file mode 100644 index 000000000..551ba8660 --- /dev/null +++ b/extra/bittorrent/README @@ -0,0 +1,31 @@ + +Here's a BitTorrent package for Slackware. + +Note that we don't ship either wxGTK or wxPython, which are needed for the +bittorrent-console script. I built and installed these, and couldn't justify +the huge size (and assorted build problems) in order to enable an ugly little +dialog box. But feel free to grab those sources and knock yourself out! + +I've included a simple script and mailcap entry to allow using the curses +based downloader instead, which will work just the same as the GUI version +but with a lot less library overhead required. For Mozilla, Netscape, and +other browsers that read /etc/mailcap, once you've installed this package +BitTorrent should work right out of the box. If your browser doesn't use +/etc/mailcap, you can set it up to use /usr/bin/bittorrent-xterm as the +helper application for the MIME type application/x-bittorrent. + +If you're a command-line user, you may also consider using bittorrent-curses +manually. Here's how: + +1. Download the .torrent file into your download directory. + +2. At the command line, use the curses version of BitTorrent to download: + bittorrent-curses some-big-file.torrent + +This should start the download and bring up a status screen where you can +monitor the download (and upload) progress. + +Have fun! + +- P. + diff --git a/extra/flashplayer-plugin b/extra/flashplayer-plugin new file mode 120000 index 000000000..def095f26 --- /dev/null +++ b/extra/flashplayer-plugin @@ -0,0 +1 @@ +source/flashplayer-plugin \ No newline at end of file diff --git a/extra/slacktrack/OVERVIEW b/extra/slacktrack/OVERVIEW new file mode 100644 index 000000000..5e0f5d612 --- /dev/null +++ b/extra/slacktrack/OVERVIEW @@ -0,0 +1,595 @@ +############################################################################## +# Document: OVERVIEW +# Purpose : Provide an overview of the Slackware package system incorporating +# the use of 'slacktrack' +# Please note that this is *not* a guide to the use of slacktrack; +# the man page and SlackBuild scripts in the 'examples' directory +# aim to fulfill that requirement. +# Date....: 15-May-2009 +# Author..: Stuart Winter +# Homepage: http://www.slackware.com/~mozes +############################################################################## + + +CONTENTS: +--------- +1.0 Preamble +2.0 Slackware packages + 2.0.1 Format of official Slackware packages + 2.0.1.1 Package names + 2.0.1.2 Version numbers + 2.0.1.3 Architectures + 2.0.1.4 Build numbers + 2.1 An overview of the creation of official Slackware packages + 2.1.1 'Clean' and 'dirty' builds + 2.1.1.1 Clean builds + 2.1.1.2 Dirty builds + 2.1.1 SlackBuild and .build scripts + 2.1.1.2 SlackBuild scripts + 2.1.1.3 .build scripts + 2.2 slacktrack in the scheme of things + 2.2.1 Using slacktrack with official .build scripts + 2.2.2 Writing your own .build scripts for slacktrack + 2.2.2.1 Making use of slacktrack's environment variables +3.0 slacktrack in operation + 3.1 How slacktrack finds which files have been installed + 3.1.1 installwatch's author +4.0 Example scripts + 4.0.1 non-slackware example build scripts + 4.0.2 slackware example wrapper build scripts +5.0 Known problems/features of slacktrack +6.0 New features +7.0 Licence + + + +1.0 Preamble + --------- + +I used to work for a company that provided web hosting and shell accounts. +When I started there were a number of shell servers all running various +releases of RedHat Linux, in various states of repair. I managed to convince +the management to let me try Slackware on there instead because I have a much +stronger understanding of how to maintain and build server using the +Slackware distribution. This trial went well and within a few months all +servers were converted to Slackware version 8.1. + +In order to ease the speed of installation (and to prevent against +forgetting to install or configure something critical), I wrote a +set of post installation scripts that upgraded Slackware packages, +configured numerous config files and copied pre-compiled software +(such as courier IMAP) onto the new system. +For other software that I could not simply copy, I'd compile it on the +new server. + +However, it soon became clear that due to security updates and so on, +it became incredibly time consuming (not to mention seriously boring) +to compile PHP, Apache and so on on every server. + +At this point, I began to investigate how to create packages for Slackware. + + +2.0 Slackware packages + ------------------ + + The Slackware Linux distribution consists of a variety of 'packages' + that make up the distribution. + + Traditionally, all packages are in '.tgz' format (a gzipped tar archive). + Starting with Slackware v13, new compression formats are supported which + are represented by three additional file extensions: + + .tgz - Gzip + .tbz - Bzip2 + .tlz - LZMA + .txz - XZ + + In this document, we use the file extension '.t?z' to represent + one of the above file formats. + + Once you have initially installed Slackware from the installer screen, + you have the facilities to install, remove or upgrade new or existing + packages using the package management tools: + + installpkg - install 'package.t?z' + + upgradepkg - upgrade existing 'package' with the + new version specified at the command line. + + removepkg - remove specified package + + + Whilst the Slackware package system is not especially feature rich, + Slackware's user base (including me) like it because it is simple. + If we want to write our own package utilities then we can easily do so + by examining the existing package tools and querying and amending the + package database (text files). + + 2.0.1 Format of official Slackware packages + ------------------------------------- + + In Slackware 8.1 and up, each package file is named as follows: + + packagename-version-architecture-buildnumber.t?z + + 2.0.1.1 Package names + ------------- + + The package name is either the name of the single program + or the name of a collection of utilities that fall under + a single umbrella. + For example: + autoconf-2.54-noarch-1.tgz + + That is the name of the autoconf package I have on my + Slackware 8.1 box. + 'autoconf' is the name of the the entire collection of + binaries and associated documents that are extracted from + the autoconf source distribution archive. + + However, if we consider another example: + tcpip-0.17-i386-15.tgz + + There is no single piece of software called 'tcpip'. + This package contains a number of associated utilities + written by different authors but bundled into one single + 'package'. + + 2.0.1.2 Version numbers + --------------- + + If the package is the name of a particular piece of software + such as 'autoconf' from the example above, then the version + number represents the version number that its authors distribute. + + If the package is a 'bundle' such as 'tcpip' then the version + number increases as and when you add a new piece of software to + the package, or upgrade a particular piece of major software + contained within the package. + For example, with 'tcpip' above, the 0.17 refers to the version of + Linux Netkit. However, there are other programs included within + the Slackware tcpip package that are not part of 'Linux netkit'. + + 2.0.1.3 Architectures + ------------- + + The architecture is just that -- it tells you which architecture + the package is for. + + The current values in use are: + + ----- [ Official Slackware architecures ] + + noarch - Architecture independent files such as config files + i386 - packages for the x86 (Slackware v8.1 & 9) + i486 - packages for the x86 (Slackware 9.1+) + i586 - packages for the x86 + s390 - packages for the IBM s/390 mainframe + + Note: Whilst Slackware v10 is primarily built for i486, you may + find that there are some packages whose architecture versions + are higher than i486. This is for two reasons: + + [a] There is no source for the package - it is a repackaged + binary distribution (SUN's j2sdk is an example). + + [b] The package is not required or otherwise not suitable for + earlier revisions of the architecture (this is especially + the true with ARM and SPARC). + + ----- [ Unofficial ports of Slackware ] + + arm - packages for the ARM architecture + sparc - packages for the SUN Sparc architecture + powerpc - packages for the PowerPC architecture + + 2.0.1.4 Build numbers + ------------- + + A build number suplements the version number and is changed + when the *package maintainer* makes a change to the package but + the original source code and version number remains the same. + + For example, I build a package of 'foo' version 0.14 for the + sparc. I have never built this package before, thus it becomes + foo-0.14-sparc-1.tgz + However, I realise that I haven't configured + the 'bar' parameter correctly in /etc/foo.conf. I fix it + and re-build the package. The package is now named + foo-0.14-sparc-2.tgz + + + 2.1 An overview of the creation of official Slackware packages + ----------------------------------------------------------- + + This section gives a brief introduction of the two methods of + used when building the official Slackware packages. + + + 2.1.1 'Clean' and 'dirty' builds + -------------------------- + + I am assuming the reader has some experience with Makefiles + and has compiled and installed a number of software packages. + + 2.1.1.1 Clean builds + ------------ + + I term a 'clean' package one where you can specify a variable + to the 'make install' which contains the directory you wish to install + the package in, rather than installing it properly over the root file system. + For example: + # ./configure --prefix=/usr --sysconfdir=/etc + # make + # make install DESTDIR=/tmp/package-foo + + With a 'Makefile' that honours the DESTDIR variable, this will + install the whole package into /tmp/package-foo. This directory + effectively is the 'root' directory '/' as far as the Makefile + is concerned. + + From here you can use the Slackware 'makepkg' program and build + a package. + + This is by far the safest and most preferred method by all + users that make packages. + + You will find that DESTDIR is called prefix, TOPDIR and other names; + you need to examine the Makefile scripts in order to determine whether + it contains this functionality and if it does, then discover what + the variable name is. + + 2.1.1.2 Dirty builds + ------------ + + A 'dirty' build is the name I give to source distribution archives + whose Makefile scripts do not have any provisioning to install + in an alternate directory other than root. + + For these type of builds, you will typically do: + # ./configure --prefix=/usr --sysconfdir=/etc + # make + # make install + + The package will then be installed on the root filesystem. + + So how do you know what files were installed where and + even if you did, how do you pull all these files together in order + to run makepkg over them ? + That's the purpose of slacktrack! :-) + + + 2.1.1 SlackBuild and .build scripts + ----------------------------- + + Slackware has a number of packages by a great number of authors. + Some of the packages's source Makefiles honour a DESTDIR type + variable but others do not. + + 2.1.1.2 SlackBuild scripts + ------------------ + + SlackBuild scripts can be 'interesting'. They are + scripts that install into a 'clean' environment (usually /tmp). + + Some of the scripts follow the make install DESTDIR= + style, if the Makefile permits. + + Others have a 'framework' or 'controller tarball' which is + a _packagename.t?z (note the prefixing underscore). + + The SlackBuild script uses the Slackware 'explodepkg' script + to untar the contents of the _.t?z into the /tmp-package + directory. + Slackbuild then runs 'make' to compile the binaries + and libraries, but then uses the 'cat' program such as: + # cat foobar > /tmp/package-foobar/usr/bin/foobar + + By using 'cat', the *new* version of 'foobar' retains + the original permissions and ownerships that are in the + controller tar ball. + + However, you may be wondering how, if the package does not + have a facility to install into somewhere other than root, + do we get the file names and permissions for the + controller _.t?z in the first place. + The answer is simple: + [a] find all files on the file system and dump to a file. + [b] compile and install the software + [c] find all files on the file system and compare the file + produced by the first 'find'. After a little pruning, you + have the list of files for the controller tar ball. + + + 2.1.1.3 .build scripts + --------------- + + For those software distributions whose Makefile does not hounour + the DESTDIR type system, there are Slackware's .build scripts. + + These scripts literally ./configure ; make ; make install + and copy docs and other goodies into the root file system. + + One of the problems with these scripts is that they are + often incomplete -- they build and install the package but + do not gzip the man pages or strip the binaries and libraries; + this is done manually afterwards. + + *These* are the scripts that slacktrack and altertrack were + written for. + + * Note: Whilst some software's Makefiles may appear to honour + the DESTDIR variable, the Makefile *may* be broken which can + result in files missing or corrupt within your new package. + For example: I built Apache v2.0.48 and built a package using + make install DESTDIR. However, a problem exists in that some of + the Perl scripts it installs have *temporary build paths* + hard coded into the resulting scripts. + This is why you *may* find a .build instead of a SlackBuild + script within Slackware's source tree. + + However, the primary reason is because the build script just + hasn't been updated to make use of DESTDIR. * + + + 2.2 slacktrack in the scheme of things + ---------------------------------- + + I follow Slackware-current quite closly. Often I want to + 'back port' a -current package to an earlier release of Slackware . + I can't simply upgrade with -current's package because it was + compiled for a newer GLIBC than Slackware 8.1's, for example. + For packages that use a 'clean' 'SlackBuild' script, this is + an easy job -- I simply run 'SlackBuild' on an 8.1 box. + + However, for .build scripts, I needed a way of building packages + using Slackware's .build scripts. + + I found a great program called 'CheckInstall' which fulfilled most of my + requirements. However, as time went on and I started building + more of Slackware's packages and writing my own build scripts, I found + that checkinstall was lacking some features that I required. + At this time I was also considering porting Slackware to run on + the ARM architecture and helping with the Splack (Slackware on SPARC project), + and therefore wanted a robust program that can deal with every .build script + I threw at it, and if it can't handle it, I needed to be able to make modifications. + The easiest way of doing this was to write my own script; thus + 'slacktrack' was born. + + slacktrack is based on the *idea* behind 'CheckInstall', but uses + only my own code (and contributions from other users), and only contains + Slackware-specific facilities -- it can not build Debian or RedHat packages + and never will. + + slacktrack does not have all of the facilities of CheckInstall either, + but then these are not required for building Slackware packages + from .build scripts. + + Also, slacktrack only works with 'official' Slackware directory locations + and /usr/local. + For example, if your make install installs binaries in /opt/packagename/bin + and the man pages in anywhere other than /usr/man or /usr/local/man, then + slacktrack's relevant options (eg stripping libs, bins, gzman) will + not detect them. + + + 2.2.1 Using slacktrack with official .build scripts + --------------------------------------------- + + Building a replicar Slackware package from a .build script is + typically fairly trivial with slacktrack. + + If we wanted to build slackware-9.1's elvis, we could do + # cd slackware/slackware-9.1/source/a/elvis + # chmod 755 elvis.build + # slacktrack -jefkzp "elvis-2.1-i386-2.tgz" ./elvis.build + + The resulting package (by default) be stored in + /tmp/built-slackwarepackages/ + + As already mentioned, some of the Slackware .build scripts + are incomplete with regard to gzipping man pages, stripping binaries + and so on -- fetchmail.build is one of them. + Therefore you can specify various options to slacktrack that + will take care of this for you. + The options in the example above : + j - compress libraries + e - chown root:bin /bin,/sbin,/usr/bin,/usr/sbin directories + f - chown root:bin files in the binary dirs listed above + k - strip binaries found in the binary dirs listed above + z - gzip man pages + p - the resulting Slackware package .t?z name + + The way I re-create the packages is to build a 'trackbuild' script that + launches slacktrack with the required options and the name + of the Slackware .build script. You can find examples of such + scripts within the docs directory after installing slacktrack: + + /usr/doc/slacktrack*/buildscript-examples/ + + You will also find that in Slackware versions 12.0 and upwards, + the .build scripts are accompanied by 'trackbuild' scripts because + slacktrack is used by the Slackware team to produce the packages. + + 2.2.2 Writing your own .build scripts for slacktrack + ---------------------------------------------- + + There isn't any specific that you have to do to write a build + script for use with slacktrack -- the script name specified to + slacktrack doesn't even have to be a script - it can be a binary - + as long as it is executable, it is acceptable. + + You can see some of my own build scripts that I have written + for use with slacktrack by looking in the documents directory + after installing slacktrack: + + /usr/doc/slacktrack*/buildscript-examples/ + + 2.2.2.1 Making use of slacktrack's environment variables + ------------------------------------------------- + + slacktrack exports two environment variables: + SLACKTRACKFAKEROOT and SLACKTRACKSCRATCHDIR + + SLACKTRACKFAKEROOT: + ```````````````````` + + The purpose of this to allow your .build script to access the + 'root' directory of the resulting package. + There are two scenarios where you may want to use this + variable: + + 1. During the build: + + The reason you may wish to do this is to pre-populate + the package with files that you may not wish to place directly + onto the root filesystem. + The package contents will only appear inside this directory + once your build script has finished, and slacktrack has determined + what to put into this directory. + + In previous slacktrack versions which used a pseudo-root filesystem + (where the package contents were populated *during* the build), this + made sense, but in slacktrack v2.00, it is unlikely that you'd want + to use this vairable from the build script. + + 2. Post-build -- cleanups after the build: + + The most likely use of this script is to perform package cleanup + tasks after the build. This is mainly to perform tasks that slacktrack + does not handle itself - such as deleting known files/directories that + creep into packages (due to a system daemon such as CUPS), or setting + some file and directory permissions. + + An example post build script is below. + A post build script can be specified by slacktrack's -R option: + + # Incase you had CUPS running: + rm -rf etc/cups etc/printcap + # crond: + rm -rf var/spool/cron + rmdir var/spool + + # perllocal.pod files don't belong in packages. + # SGMLSPL creates this: + find . -name perllocal.pod -print0 | xargs -0 rm -f + + # Some doc dirs have attracted setuid. + # We don't need setuid for anything in this package: + chmod -R a-s . + + + SLACKTRACKSCRATCHDIR: + ````````````````````` + + The purpose of this variable is to provide some temporary + space to untar your source archives and so on. slacktrack + will manage the creation and deletion of this directory. + + For example: + # cd ${SLACKTRACKSCRATCHDIR} + # tar zxvvf ${ORIGPATH}/source/foobar.tar.gz + + You can see in some of the example 'non-slackware' scripts + how I have used these variables + + +3.0 slacktrack in operation + ----------------------- + + The basic event flow is as follows: + + [1] Parse command line arguments + -> Check they are OK, if not bomb out + [2] Launch the supplied build script + [3] Run any specified functions (eg gzman, strip bins, chowns) over the + package 'root' directory and contents + [4] Run Slackware's 'makepkg' program over the package contents + [5] Move the .t?z to the specified build store path + [6] Scan for any hard links that may be in the package + -> If any found, alert the user on screen and also + log to a packagename.hardlinks.log file in the build store path + + The slacktrack shell script is fairly simple and well commented; it should be + relatively easy for anybody who understands bash to quickly comprehend what + is happening and why. + + 3.1 How slacktrack finds which files have been installed + ---------------------------------------------------- + + In order to track the files and directories that have been installed + or changed, slacktrack follows this ordered process: + + [1] Scans a pre-set list of directories on the filesystem and + logs the contents. + [2] Launches build script which installs the package onto the + filesystem + [3] Scans the filesystem once again + [4] Compares the differences in the before and after snapshots + [5] Copies the differences into a 'package root directory' and + runs makepkg over them. + + In slacktrack version 1, we used 'installwatch' which overloaded + some of glibc's filesystem calls, creating new files and directories + into a pseudo-root filesystem, avoiding the need to install onto + the host's filesystem (and also allowing to build as a non-root user). + However, this library is ill maintained and even in the early days + when it worked well, it still had problems and workarounds were required. + +4.0 Example scripts + --------------- + + Included with the slacktrack binary distribution are a number of example + scripts that hopefully should provide you with a basis of how to use slacktrack + to build from 'dirty' source distributions. + + The examples are bundled in the documentation directory available + after installing slacktrack: + + /usr/doc/slacktrack*/buildscript-examples/ + + +5.0 Known problems/features of slacktrack + ------------------------------------- + + Current problems: + + [1] slacktrack doesn't have sufficient error checking. + + I'm in two minds about *where* to put error checking, you see. + Do I go no further if the supplied build script exits with a non-zero + value? + No, that's a bad idea because what if you didn't write the build script? + it might be one of these qmail type binary installer programs that + you can't (easily without hacking the source) fix. The author may + have their own systems, and the program exits with a value that their + own controller script recognises as non-failure. + + What should I do if makepkg has failed? You see it on screen + and in the logs anyway, plus makepkg is one of the last things + that slacktrack calls -- how can you recover? + + That said, version 1.03 now has some error handling. There's still + not enough though, imo. + + [2] No support for a default config file + + I don't see the point. Each .build script is different + and although I typically use the same options to slacktrack + for most of my build scripts, I don't see why I'd need a + config file just to save 4 bytes or so in a trackbuild wrapper :-) + + +6.0 New features + ------------- + + See the TODO file in the docs directory. + + If you have any specific features you would like to see + included, or have found any bugs, please + email me + +7.0 Licence + ------- + + slacktrack is distributed under BSD Licence. diff --git a/extra/source/bash-completion/bash-completion-xz.diff b/extra/source/bash-completion/bash-completion-xz.diff new file mode 100644 index 000000000..3098aed16 --- /dev/null +++ b/extra/source/bash-completion/bash-completion-xz.diff @@ -0,0 +1,23 @@ +diff -ur a/bash_completion b/bash_completion +--- a/bash_completion 2006-03-01 16:20:18.000000000 +0000 ++++ b/bash_completion 2009-07-15 22:46:27.000000000 +0100 +@@ -2852,8 +2852,8 @@ + return 0 + ;; + +([^IZzjy])f) +- ext='t@(ar?(.@(Z|gz|bz?(2)))|gz|bz?(2))' +- regex='t\(ar\(\.\(Z\|gz\|bz2\?\)\)\?\|gz\|bz2\?\)' ++ ext='t@(ar?(.@(Z|xz|gz|bz?(2)))|xz|gz|bz?(2))' ++ regex='t\(ar\(\.\(Z\|xz\|gz\|bz2\?\)\)\?\|xz\|gz\|bz2\?\)' + ;; + *[Zz]*f) + ext='t?(ar.)@(gz|Z)' +@@ -5519,7 +5519,7 @@ + COMPREPLY=( $( (cd /var/log/packages; compgen -f -- "$cur") ) ) + } && + complete -F _removepkg $filenames removepkg && +- complete $dirnames -f -X '!*.tgz' installpkg upgradepkg explodepkg ++ complete $dirnames -f -X '!*.t?z' installpkg upgradepkg explodepkg + + # look(1) completion + # diff --git a/extra/source/bash-completion/bash-completion.SlackBuild b/extra/source/bash-completion/bash-completion.SlackBuild new file mode 100755 index 000000000..153853dc2 --- /dev/null +++ b/extra/source/bash-completion/bash-completion.SlackBuild @@ -0,0 +1,50 @@ +#!/bin/sh +# Set initial variables: +CWD=`pwd` +if [ "$TMP" = "" ]; then + TMP=/tmp +fi +PKG=$TMP/package-bash-completion + +VERSION=20060301 +ARCH=noarch +BUILD=2 + +if [ ! -d $TMP ]; then + mkdir -p $TMP # location to build the source +fi +rm -rf $PKG +mkdir -p $PKG + +cd $TMP +rm -rf bash_completion +tar xjvf $CWD/bash-completion-$VERSION.tar.bz2 +cd bash_completion + +# Add support for xz file formats: +zcat $CWD/bash-completion-xz.diff.gz | patch -p1 || exit 1 + +mkdir -p $PKG/etc/bash_completion.d $PKG/etc/profile.d +cp -a $CWD/bash_completion.sh.gz $PKG/etc/profile.d +gzip -d $PKG/etc/profile.d/bash_completion.sh.gz +chmod 755 $PKG/etc/profile.d/bash_completion.sh +cp -a bash_completion $PKG/etc +chmod 644 $PKG/etc/bash_completion +cp -a contrib/* $PKG/etc/bash_completion.d +chmod 755 $PKG/etc/bash_completion.d/* +mkdir -p $PKG/usr/doc/bash-completion-$VERSION +cp -a BUGS COPYING README $PKG/usr/doc/bash-completion-$VERSION +chmod 644 $PKG/usr/doc/bash-completion-$VERSION/* +( cd $PKG ; chown -R root.root . ) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bash-completion-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/bash_completion + rm -rf $PKG +fi diff --git a/extra/source/bash-completion/bash_completion.sh b/extra/source/bash-completion/bash_completion.sh new file mode 100644 index 000000000..84388cb8a --- /dev/null +++ b/extra/source/bash-completion/bash_completion.sh @@ -0,0 +1,11 @@ +bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.} +if [ "$PS1" ] && [ $bmajor -eq 2 ] && [ $bminor '>' 04 ] \ + && [ -f /etc/bash_completion ]; then # interactive shell + # Source completion code + . /etc/bash_completion +elif [ "$PS1" ] && [ $bmajor -eq 3 ] \ + && [ -f /etc/bash_completion ]; then # interactive shell + # Source completion code + . /etc/bash_completion +fi +unset bash bmajor bminor diff --git a/extra/source/bash-completion/slack-desc b/extra/source/bash-completion/slack-desc new file mode 100644 index 000000000..b4ffbd4f4 --- /dev/null +++ b/extra/source/bash-completion/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bash-completion: bash-completion (programmable completion for the bash shell) +bash-completion: +bash-completion: Adds programmable completion to the bash shell. A new file called +bash-completion: /etc/bash_completion will be sourced for interactive bash shells +bash-completion: adding all sorts of enhanced command completion features. Once +bash-completion: installed, you may get a list of all commands that have associated +bash-completion: completions with 'complete -p', and examine the code for the shell +bash-completion: functions with 'declare -f'. +bash-completion: +bash-completion: bash-completion was written by Ian Macdonald . +bash-completion: diff --git a/extra/source/bittorrent/bittorrent-xterm.sh b/extra/source/bittorrent/bittorrent-xterm.sh new file mode 100644 index 000000000..fdf32ea1e --- /dev/null +++ b/extra/source/bittorrent/bittorrent-xterm.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# Copyright 2003 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2006 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# /usr/bin/bittorrent-xterm.sh +# A simple script used in /etc/mailcap to enable using +# bittorrent-curses with Mozilla, etc. +# +# This goes in /etc/mailcap: +#application/x-bittorrent; /usr/bin/bittorrent-xterm '%s' ; + +# Create a directory for downloads: +if [ ! -d $HOME/BitTorrent ]; then + mkdir -p $HOME/BitTorrent +fi + +# Change to the download directory and start BitTorrent there: +cd $HOME/BitTorrent && exec /usr/X11R6/bin/xterm -e /usr/bin/bittorrent-curses "$1" + diff --git a/extra/source/bittorrent/bittorrent.SlackBuild b/extra/source/bittorrent/bittorrent.SlackBuild new file mode 100755 index 000000000..5118d724d --- /dev/null +++ b/extra/source/bittorrent/bittorrent.SlackBuild @@ -0,0 +1,65 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-4.4.0} +ARCH=noarch +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/tmp/package-bittorrent +rm -rf $PKG +mkdir -p $PKG $TMP + +cd $TMP +rm -rf BitTorrent-$VERSION +tar xvf $CWD/BitTorrent-$VERSION.tar.bz2 || exit 1 +cd BitTorrent-$VERSION || exit 1 +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +python setup.py build install --root=$PKG +# Add bittorrent-xterm (this just opens an xterm for bittorrent-curses so +# that it can work as a MIME handler from mailcap): +mkdir -p $PKG/usr/bin +zcat $CWD/bittorrent-xterm.sh.gz > $PKG/usr/bin/bittorrent-xterm +chmod 755 $PKG/usr/bin/bittorrent-xterm +mkdir -p $PKG/usr/doc/BitTorrent-$VERSION +cp -a \ + INSTALL.unix.txt LICENSE.txt PKG-INFO README.txt TRACKERLESS.txt \ + credits-l10n.txt credits.txt public.key redirdonate.html \ + $PKG/usr/doc/BitTorrent-$VERSION +rm -rf $PKG/usr/share/doc $PKG/usr/share/pixmaps/BitTorrent-$VERSION/icons/old + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +# Add support for using bittorrent-curses instead of bittorrent-gui +# in /etc/mailcap: +zcat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/bittorrent-$VERSION-$ARCH-$BUILD.txz + diff --git a/extra/source/bittorrent/doinst.sh b/extra/source/bittorrent/doinst.sh new file mode 100644 index 000000000..3b84c3043 --- /dev/null +++ b/extra/source/bittorrent/doinst.sh @@ -0,0 +1,10 @@ +# Add bittorrent support to /etc/mailcap unless it's found there +# already (commented out, or not): +if ! grep application/x-bittorrent etc/mailcap 1> /dev/null 2> /dev/null ; then + echo "application/x-bittorrent; /usr/bin/bittorrent-xterm '%s' ; " >> etc/mailcap +else + # If it calls btdownloadxterm.sh, make bittorrent-xterm the default instead: + if grep btdownloadxterm etc/mailcap 1> /dev/null 2> /dev/null ; then + sed -i -e 's/btdownloadxterm.sh/bittorrent-xterm/g' etc/mailcap + fi +fi diff --git a/extra/source/bittorrent/slack-desc b/extra/source/bittorrent/slack-desc new file mode 100644 index 000000000..e5ba9aa42 --- /dev/null +++ b/extra/source/bittorrent/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bittorrent: bittorrent (BitTorrent file distribution utility) +bittorrent: +bittorrent: BitTorrent is a file distribution utility which utilizes the upload +bittorrent: capacity of machines which are downloading a file to help distribute +bittorrent: it to other downloading machines. This makes it possible to provide +bittorrent: large files (such as the Slackware Linux ISO images) to many people +bittorrent: without the usual problem of insufficient bandwidth. The more +bittorrent: downloaders, the more bandwidth. Problem solved. +bittorrent: +bittorrent: Bram Cohen is the genius behind BitTorrent. +bittorrent: diff --git a/extra/source/brltty/brltty.SlackBuild b/extra/source/brltty/brltty.SlackBuild new file mode 100755 index 000000000..c58959746 --- /dev/null +++ b/extra/source/brltty/brltty.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh +# Set initial variables: +CWD=`pwd` +if [ "$TMP" = "" ]; then + TMP=/tmp +fi +if [ ! -d $TMP ]; then + mkdir -p $TMP # location to build the source +fi +PKG=/tmp/package-brltty + +VERSION=4.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf brltty-$VERSION +tar xf $CWD/brltty-$VERSION.tar.?z* || exit 1 +cd brltty-$VERSION + +sh autogen + +chown -R root:root . +find . -perm 775 -exec chmod 755 {} \; +find . -perm 700 -exec chmod 755 {} \; +find . -perm 744 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --sbindir=/sbin \ + --libdir=/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --build=$ARCH-slackware-linux +make -j2 || exit 1 +make install INSTALL_ROOT=$PKG || exit 1 +chmod 755 $PKG/bin/* $PKG/lib${LIBDIRSUFFIX}/brltty/* + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/brltty-$VERSION +cp -a \ + README* COPYING* \ + Documents/{Manual-*,TODO,CONTRIBUTORS,HISTORY,README.*} \ + $PKG/usr/doc/brltty-$VERSION +cat Documents/ChangeLog | head -n 150 > $PKG/usr/doc/brltty-$VERSION/ChangeLog +( cd $PKG/usr/doc/brltty-$VERSION + find . -name "Makefile*" -exec rm -f {} \; + find . -name "*.sgml" -exec rm -f {} \; + find . -size 0 -type f -exec rm -f {} \; +) + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/etc +cp -a Documents/brltty.conf $PKG/etc/brltty.conf.new + +mkdir -p $PKG/install +# Write out the doinst.sh: +cat << EOF > $PKG/install/doinst.sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/brltty.conf.new + +EOF + +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n ../brltty-$VERSION-$ARCH-$BUILD.txz + diff --git a/extra/source/brltty/slack-desc b/extra/source/brltty/slack-desc new file mode 100644 index 000000000..d99624990 --- /dev/null +++ b/extra/source/brltty/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +brltty: brltty (Braille display daemon) +brltty: +brltty: BRLTTY is a daemon which provides access to the Linux console (text +brltty: mode) for a blind person using a soft braille display. It drives the +brltty: braille terminal and provides complete screen review functionality. +brltty: +brltty: +brltty: +brltty: +brltty: +brltty: diff --git a/extra/source/flashplayer-plugin/flashplayer-plugin.SlackBuild b/extra/source/flashplayer-plugin/flashplayer-plugin.SlackBuild new file mode 100755 index 000000000..1904ec59f --- /dev/null +++ b/extra/source/flashplayer-plugin/flashplayer-plugin.SlackBuild @@ -0,0 +1,159 @@ +#!/bin/sh +# Copyright (c) 2008, 2009 Eric Hameleers, Eindhoven, NL +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: flashplayer-plugin +# Descr: Adobe flash player plugin for mozilla +# URL: http://labs.adobe.com/ +# Needs: +# Changelog: +# 10.0.d20.7-1: 16/Dec/2008 by Eric Hameleers +# * Initial build. +# 10.0.d21.1-1: 20/Dec/2008 by Eric Hameleers +# * Update. +# 10.0.22.87-1: 26/feb/2009 by Eric Hameleers +# * Update (plugs vulnerability). +# 10.0.32.18-1: 10/aug/2009 by Patrick J. Volkerding +# * Update (plugs vulnerability). +# +# Run 'sh flashplayer-plugin.SlackBuild' to build a Slackware package. +# The package (.txz) and .txt file as well as build logs are created in /tmp . +# Install it using 'installpkg'. +# +# ----------------------------------------------------------------------------- + +# Set initial variables: + +PRGNAM=flashplayer-plugin +VERSION=${VERSION:-10.0.32.18} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +SOURCE="$SRCDIR/libflashplayer-${VERSION}.linux-${ARCH}.so.tar.gz" +SRCURL="http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-${VERSION}.linux-${ARCH}.so.tar.gz" + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +# Create working directories: +mkdir -p $OUTPUT # place for the package to be saved +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # always erase old package's contents +rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build +rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log + # remove old log files + +# Source file availability: +if ! [ -f ${SOURCE} ]; then + if ! [ "x${SRCURL}" == "x" ]; then + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)" + echo "Source '$(basename ${SOURCE})' not available yet..." + echo "Will download file to $(dirname $SOURCE)" + wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true + if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then + echo "Downloading '$(basename ${SOURCE})' failed... aborting the build." + mv -f "${SOURCE}" "${SOURCE}".FAIL + exit 1 + fi + else + echo "File '$(basename ${SOURCE})' not available... aborting the build." + exit 1 + fi +fi + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PRGNAM +echo "Extracting the source archive(s) for $PRGNAM..." +tar -xvf ${SOURCE} +chown -R root:root * +chmod -R u+w,go+r-w,a-s . + +if [ "$ARCH" = "x86_64" ]; then + if ! file libflashplayer.so | grep -q "ELF 64-bit" ; then + echo "The downloaded plugin is not for the '$ARCH' architecture!"; exit 1 + fi +elif [[ "$ARCH" =~ "i?86" ]]; then + if ! file libflashplayer.so | grep -q "ELF 32-bit" ; then + echo "The downloaded plugin is not for the '$ARCH' architecture!"; exit 1 + fi +fi + +# Install the plugin to the package dir: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins +install -m 0755 libflashplayer.so \ + $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins/libflashplayer.so + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt + diff --git a/extra/source/flashplayer-plugin/slack-desc b/extra/source/flashplayer-plugin/slack-desc new file mode 100644 index 000000000..e7fb949ac --- /dev/null +++ b/extra/source/flashplayer-plugin/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------| +flashplayer-plugin: flashplayer-plugin (flash plugin for web browsers) +flashplayer-plugin: +flashplayer-plugin: Provides Adobe Flash plugin for browsers that recognize +flashplayer-plugin: /usr/lib/mozilla/plugins as a valid plugin directory +flashplayer-plugin: +flashplayer-plugin: Plugin is subject to Adobe terms of use: +flashplayer-plugin: http://www.adobe.com/go/labs_term_of_use +flashplayer-plugin: +flashplayer-plugin: Plugin is subject to Adobe Flash EULA: +flashplayer-plugin: http://labs.adobe.com/technologies/eula/flashplayer.html +flashplayer-plugin: diff --git a/extra/source/grub/grub-0.97-x86_64.patch b/extra/source/grub/grub-0.97-x86_64.patch new file mode 100644 index 000000000..480e38fce --- /dev/null +++ b/extra/source/grub/grub-0.97-x86_64.patch @@ -0,0 +1,809 @@ +diff -Naur grub-0.97.orig/docs/multiboot.h grub-0.97.patched/docs/multiboot.h +--- grub-0.97.orig/docs/multiboot.h 2003-07-09 05:45:36.000000000 -0600 ++++ grub-0.97.patched/docs/multiboot.h 2006-08-26 22:44:02.000000000 -0600 +@@ -44,76 +44,81 @@ + /* Do not include here in boot.S. */ + + /* Types. */ ++#ifndef __x86_64__ ++typedef unsigned long UINT32; ++#else ++typedef unsigned UINT32; ++#endif + + /* The Multiboot header. */ + typedef struct multiboot_header + { +- unsigned long magic; +- unsigned long flags; +- unsigned long checksum; +- unsigned long header_addr; +- unsigned long load_addr; +- unsigned long load_end_addr; +- unsigned long bss_end_addr; +- unsigned long entry_addr; ++ UINT32 magic; ++ UINT32 flags; ++ UINT32 checksum; ++ UINT32 header_addr; ++ UINT32 load_addr; ++ UINT32 load_end_addr; ++ UINT32 bss_end_addr; ++ UINT32 entry_addr; + } multiboot_header_t; + + /* The symbol table for a.out. */ + typedef struct aout_symbol_table + { +- unsigned long tabsize; +- unsigned long strsize; +- unsigned long addr; +- unsigned long reserved; ++ UINT32 tabsize; ++ UINT32 strsize; ++ UINT32 addr; ++ UINT32 reserved; + } aout_symbol_table_t; + + /* The section header table for ELF. */ + typedef struct elf_section_header_table + { +- unsigned long num; +- unsigned long size; +- unsigned long addr; +- unsigned long shndx; ++ UINT32 num; ++ UINT32 size; ++ UINT32 addr; ++ UINT32 shndx; + } elf_section_header_table_t; + + /* The Multiboot information. */ + typedef struct multiboot_info + { +- unsigned long flags; +- unsigned long mem_lower; +- unsigned long mem_upper; +- unsigned long boot_device; +- unsigned long cmdline; +- unsigned long mods_count; +- unsigned long mods_addr; ++ UINT32 flags; ++ UINT32 mem_lower; ++ UINT32 mem_upper; ++ UINT32 boot_device; ++ UINT32 cmdline; ++ UINT32 mods_count; ++ UINT32 mods_addr; + union + { + aout_symbol_table_t aout_sym; + elf_section_header_table_t elf_sec; + } u; +- unsigned long mmap_length; +- unsigned long mmap_addr; ++ UINT32 mmap_length; ++ UINT32 mmap_addr; + } multiboot_info_t; + + /* The module structure. */ + typedef struct module + { +- unsigned long mod_start; +- unsigned long mod_end; +- unsigned long string; +- unsigned long reserved; ++ UINT32 mod_start; ++ UINT32 mod_end; ++ UINT32 string; ++ UINT32 reserved; + } module_t; + + /* The memory map. Be careful that the offset 0 is base_addr_low + but no size. */ + typedef struct memory_map + { +- unsigned long size; +- unsigned long base_addr_low; +- unsigned long base_addr_high; +- unsigned long length_low; +- unsigned long length_high; +- unsigned long type; ++ UINT32 size; ++ UINT32 base_addr_low; ++ UINT32 base_addr_high; ++ UINT32 length_low; ++ UINT32 length_high; ++ UINT32 type; + } memory_map_t; + + #endif /* ! ASM */ +diff -Naur grub-0.97.orig/docs/x86_64.txt grub-0.97.patched/docs/x86_64.txt +--- grub-0.97.orig/docs/x86_64.txt 1969-12-31 17:00:00.000000000 -0700 ++++ grub-0.97.patched/docs/x86_64.txt 2006-10-10 10:39:42.000000000 -0600 +@@ -0,0 +1,81 @@ ++[PATCH] - Make GRUB recognize and boot an x86_64 elf image ++ ++ ++HOW IT WORKS ++------------ ++* Grub interface is unchanged. ++* Upon passing an elf-x86_64 file via "kernel=", GRUB will load and parse it ++ correctly. ++* Upon the "boot" directive, GRUB will switch from protected 32-bit ++ mode to long 64-bit mode and transfer control to the image's entrypoint. ++ ++ ++INSTALL ++------- ++cd grub-0.97 ++patch -p1 < grub-x86_64-elf.patch ++./configure ++make ++su -c "make install" ++ ++Note: You do not need to re-install your bootsectors, but you WILL need ++ to copy the modified stage2 file(s) from /usr/share/grub to ++ your actual boot filesystem (usually /boot/grub for GNU/Linux). ++ ++ ++WHY? ++---- ++Because in our world, all elves and elf images are created equal, and have ++been endowed with the ability to be bootable. :-) ++ ++ ++THE NITTY GRITTY - GRUB SIDE ++---------------------------- ++* Since paging is manditory in 64-bit long mode, the first 4GB of physical ++ memory (whether present or not) is identity mapped into the linear ++ address space using 2MB pages. ++* Paging data structures are written to physical 0x70000-0x75fff in the ++ same area reserved for the raw device buffer. This happens after the ++ "boot" command is issued so the raw device buffer won't mind. Paging ++ can be relocated and reconfigured after the kernel is running. ++* Header files have been added to describe the x86_64 elf image structure. ++ ++ ++THE NITTY GRITTY - KERNEL SIDE ++------------------------------ ++* Parameters passed to the assembly entrypoint are unchanged including ++ magic number and pointer to multiboot info structure. ++* The assembly entrypoint should be designated as ".code64". ++* The Global Descriptor Table (GDT) shared by the GRUB and KERNEL sides ++ has been expanded to include 3 additional 64-bit ('L' bit set) segments: ++ 0x28 (code) and 0x30 (data). ++* An updated "multiboot.h" file is provided to reflect the difference in ++ "unsigned long" sizes between i386 and x86_64 architectures for use by ++ the client kernel. ++ ++ ++CAVEATS ++------- ++Possible collisions with existing GRUB patch sets are unknown. Use "darcs" ++and worry not. ++ ++ http://abridgegame.org/darcs ++ ++(An intelligent alternative to cvs and greying hair in the distributed ++post-mainframe age.) ++ ++ ++DOCUMENTATION CHANGES ++--------------------- ++This is it. Sorry, stuff to do. ++ ++ ++APOLOGIES TO GRUB2 ++------------------ ++We would have liked to use GRUB2 for this, but needed it today for our ++kernel. Of course there is probably no technical reason why this ++functionality cannot be in included in GRUB2 at a future time. Thank you ++for a way cool bootloader and may all your boots be bogon (and Vogon) free. ++ ++ ++October 10, 2006 +diff -Naur grub-0.97.orig/grub/asmstub.c grub-0.97.patched/grub/asmstub.c +--- grub-0.97.orig/grub/asmstub.c 2005-02-16 13:45:14.000000000 -0700 ++++ grub-0.97.patched/grub/asmstub.c 2006-08-26 22:43:24.000000000 -0600 +@@ -313,6 +313,12 @@ + stop (); + } + ++void ++multi_boot_64bit_doit (int start, int mb_info) ++{ ++ stop (); ++} ++ + /* sets it to linear or wired A20 operation */ + void + gateA20 (int linear) +diff -Naur grub-0.97.orig/stage2/asm.S grub-0.97.patched/stage2/asm.S +--- grub-0.97.orig/stage2/asm.S 2004-06-19 10:55:22.000000000 -0600 ++++ grub-0.97.patched/stage2/asm.S 2006-09-25 14:59:48.000000000 -0600 +@@ -1809,6 +1809,54 @@ + /* error */ + call EXT_C(stop) + ++ENTRY(multi_boot_64bit_doit) ++ call EXT_C(stop_floppy) ++ ++ /* dont squash these! */ ++ movl 0x8(%esp), %esi ++ movl 0x4(%esp), %edi ++ ++ cli ++ ++ mov %cr0, %eax ++ and $0x7fffffff, %eax ++ mov %eax, %cr0 ++ ++ /* enable pae */ ++ mov %cr4, %eax ++ or $0x20, %eax ++ mov %eax, %cr4 ++ ++ /* load cr3 with pml4 */ ++ mov $PML4, %eax ++ mov %eax, %cr3 ++ ++ /* trigger long mode */ ++ mov $0xc0000080, %ecx ++ rdmsr ++ or $0x100, %eax ++ wrmsr ++ ++ /* enable paging to actually switch modes */ ++ mov %cr0, %eax ++ or $0x80000000, %eax ++ mov %eax, %cr0 ++ ++ /* jump to relocation, flush prefetch queue, and reload %cs */ ++ ljmp $0x28, $longmode ++.code64 ++longmode: ++ mov $0x2BADB002, %eax ++ ++ mov %rsi, %rbx ++ and $0xffffffff, %rsi ++ ++ and $0xffffffff, %rdi ++ call *%rdi ++ /* NOTREACHED */ ++ call EXT_C(stop) ++ ++.code32 + #endif /* ! STAGE1_5 */ + + /* +@@ -2341,27 +2389,35 @@ + + .p2align 2 /* force 4-byte alignment */ + gdt: +- .word 0, 0 ++ .word 0, 0 /* 0x0000 */ + .byte 0, 0, 0, 0 + +- /* code segment */ ++ /* code segment */ /* 0x0008 */ + .word 0xFFFF, 0 + .byte 0, 0x9A, 0xCF, 0 + +- /* data segment */ ++ /* data segment */ /* 0x0010 */ + .word 0xFFFF, 0 + .byte 0, 0x92, 0xCF, 0 + +- /* 16 bit real mode CS */ ++ /* 16 bit real mode CS */ /* 0x0018 */ + .word 0xFFFF, 0 + .byte 0, 0x9E, 0, 0 + +- /* 16 bit real mode DS */ ++ /* 16 bit real mode DS/SS */ /* 0x0020 */ + .word 0xFFFF, 0 + .byte 0, 0x92, 0, 0 + ++ /* 64 bit long mode CS */ /* 0x0028 */ ++ .word 0xFFFF, 0 ++ .byte 0, 0x9A, 0xAF, 0 ++ ++ /* 64-bit long mode SS */ /* 0x0030 */ ++ .word 0xFFFF, 0 ++ .byte 0, 0x92, 0xAF, 0 + + /* this is the GDT descriptor */ + gdtdesc: +- .word 0x27 /* limit */ ++ .word 0x33 /* limit */ + .long gdt /* addr */ ++ .long 0 /* in case we go to 64-bit mode */ +diff -Naur grub-0.97.orig/stage2/boot.c grub-0.97.patched/stage2/boot.c +--- grub-0.97.orig/stage2/boot.c 2004-03-30 04:44:08.000000000 -0700 ++++ grub-0.97.patched/stage2/boot.c 2006-08-25 22:20:17.000000000 -0600 +@@ -23,10 +23,11 @@ + + #include "freebsd.h" + #include "imgact_aout.h" +-#include "i386-elf.h" ++#include "elf.h" + + static int cur_addr; + entry_func entry_addr; ++unsigned long_64bit_mode = 0; + static struct mod_list mll[99]; + static int linux_mem_size; + +@@ -50,7 +51,7 @@ + { + struct multiboot_header *mb; + struct exec *aout; +- Elf32_Ehdr *elf; ++ Elf_Ehdr *elf; + } + pu; + /* presuming that MULTIBOOT_SEARCH is large enough to encompass an +@@ -100,21 +101,25 @@ + || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD + || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 + || suggested_type == KERNEL_TYPE_NETBSD) +- && len > sizeof (Elf32_Ehdr) +- && BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer)))) ++ && len > SIZEOF_ELF_EHDR (pu.elf) ++ && (BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer))) ++ || BOOTABLE_X86_64_ELF ((*((Elf64_Ehdr *) buffer))))) + { ++ if (BOOTABLE_X86_64_ELF ((*((Elf64_Ehdr *) buffer)))) ++ long_64bit_mode = 1; ++ + if (type == KERNEL_TYPE_MULTIBOOT) +- entry_addr = (entry_func) pu.elf->e_entry; ++ entry_addr = (entry_func) E_ENTRY (pu.elf); + else +- entry_addr = (entry_func) (pu.elf->e_entry & 0xFFFFFF); ++ entry_addr = (entry_func) (E_ENTRY (pu.elf) & 0xFFFFFF); + + if (entry_addr < (entry_func) 0x100000) + errnum = ERR_BELOW_1MB; + + /* don't want to deal with ELF program header at some random + place in the file -- this generally won't happen */ +- if (pu.elf->e_phoff == 0 || pu.elf->e_phnum == 0 +- || ((pu.elf->e_phoff + (pu.elf->e_phentsize * pu.elf->e_phnum)) ++ if (E_PHOFF (pu.elf) == 0 || E_PHNUM (pu.elf) == 0 ++ || ((E_PHOFF (pu.elf) + (E_PHENTSIZE (pu.elf) * E_PHNUM (pu.elf))) + >= len)) + errnum = ERR_EXEC_FORMAT; + str = "elf"; +@@ -590,39 +595,38 @@ + /* ELF executable */ + { + unsigned loaded = 0, memaddr, memsiz, filesiz; +- Elf32_Phdr *phdr; ++ Elf_Phdr *phdr; + + /* reset this to zero for now */ + cur_addr = 0; + + /* scan for program segments */ +- for (i = 0; i < pu.elf->e_phnum; i++) ++ for (i = 0; i < E_PHNUM (pu.elf); i++) + { +- phdr = (Elf32_Phdr *) +- (pu.elf->e_phoff + ((int) buffer) +- + (pu.elf->e_phentsize * i)); +- if (phdr->p_type == PT_LOAD) ++ phdr = (Elf_Phdr *) (E_PHOFF (pu.elf) + ((int) buffer) ++ + (E_PHENTSIZE (pu.elf) * i)); ++ if (P_TYPE (pu.elf, phdr) == PT_LOAD) + { + /* offset into file */ +- grub_seek (phdr->p_offset); +- filesiz = phdr->p_filesz; ++ grub_seek (P_OFFSET (pu.elf, phdr)); ++ filesiz = P_FILESZ (pu.elf, phdr); + + if (type == KERNEL_TYPE_FREEBSD || type == KERNEL_TYPE_NETBSD) +- memaddr = RAW_ADDR (phdr->p_paddr & 0xFFFFFF); ++ memaddr = RAW_ADDR (P_PADDR (pu.elf, phdr) & 0xFFFFFF); + else +- memaddr = RAW_ADDR (phdr->p_paddr); ++ memaddr = RAW_ADDR (P_PADDR (pu.elf, phdr)); + +- memsiz = phdr->p_memsz; ++ memsiz = P_MEMSZ (pu.elf, phdr); + if (memaddr < RAW_ADDR (0x100000)) + errnum = ERR_BELOW_1MB; + + /* If the memory range contains the entry address, get the + physical address here. */ + if (type == KERNEL_TYPE_MULTIBOOT +- && (unsigned) entry_addr >= phdr->p_vaddr +- && (unsigned) entry_addr < phdr->p_vaddr + memsiz) ++ && (unsigned) entry_addr >= P_VADDR (pu.elf, phdr) ++ && (unsigned) entry_addr < P_VADDR (pu.elf, phdr) + memsiz) + real_entry_addr = (entry_func) ((unsigned) entry_addr +- + memaddr - phdr->p_vaddr); ++ + memaddr - P_VADDR (pu.elf, phdr)); + + /* make sure we only load what we're supposed to! */ + if (filesiz > memsiz) +@@ -654,26 +658,26 @@ + else + { + /* Load ELF symbols. */ +- Elf32_Shdr *shdr = NULL; ++ Elf_Shdr *shdr = NULL; + int tab_size, sec_size; + int symtab_err = 0; + +- mbi.syms.e.num = pu.elf->e_shnum; +- mbi.syms.e.size = pu.elf->e_shentsize; +- mbi.syms.e.shndx = pu.elf->e_shstrndx; ++ mbi.syms.e.num = E_SHNUM (pu.elf); ++ mbi.syms.e.size = E_SHENTSIZE (pu.elf); ++ mbi.syms.e.shndx = E_SHSTRNDX (pu.elf); + + /* We should align to a 4K boundary here for good measure. */ + if (align_4k) + cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; + +- tab_size = pu.elf->e_shentsize * pu.elf->e_shnum; ++ tab_size = E_SHENTSIZE (pu.elf) * E_SHNUM (pu.elf); + +- grub_seek (pu.elf->e_shoff); ++ grub_seek (E_SHOFF (pu.elf)); + if (grub_read ((char *) RAW_ADDR (cur_addr), tab_size) + == tab_size) + { + mbi.syms.e.addr = cur_addr; +- shdr = (Elf32_Shdr *) mbi.syms.e.addr; ++ shdr = (Elf_Shdr *) mbi.syms.e.addr; + cur_addr += tab_size; + + printf (", shtab=0x%x", cur_addr); +@@ -682,20 +686,20 @@ + { + /* This section is a loaded section, + so we don't care. */ +- if (shdr[i].sh_addr != 0) ++ if (SH_ADDR_AT (pu.elf, shdr, i) != 0) + continue; + + /* This section is empty, so we don't care. */ +- if (shdr[i].sh_size == 0) ++ if (SH_SIZE_AT (pu.elf, shdr, i) == 0) + continue; + + /* Align the section to a sh_addralign bits boundary. */ +- cur_addr = ((cur_addr + shdr[i].sh_addralign) & +- - (int) shdr[i].sh_addralign); ++ cur_addr = ((cur_addr + SH_ADDRALIGN_AT (pu.elf, shdr, i)) & ++ - (int) SH_ADDRALIGN_AT (pu.elf, shdr, i)); + +- grub_seek (shdr[i].sh_offset); ++ grub_seek (SH_OFFSET_AT (pu.elf, shdr, i)); + +- sec_size = shdr[i].sh_size; ++ sec_size = SH_SIZE_AT (pu.elf, shdr, i); + + if (! (memcheck (cur_addr, sec_size) + && (grub_read ((char *) RAW_ADDR (cur_addr), +@@ -706,7 +710,7 @@ + break; + } + +- shdr[i].sh_addr = cur_addr; ++ SET_SH_ADDR_AT (pu.elf, shdr, i, cur_addr); + cur_addr += sec_size; + } + } +diff -Naur grub-0.97.orig/stage2/builtins.c grub-0.97.patched/stage2/builtins.c +--- grub-0.97.orig/stage2/builtins.c 2005-02-15 14:58:23.000000000 -0700 ++++ grub-0.97.patched/stage2/builtins.c 2006-09-25 14:59:16.000000000 -0600 +@@ -81,6 +81,7 @@ + /* Prototypes for allowing straightfoward calling of builtins functions + inside other functions. */ + static int configfile_func (char *arg, int flags); ++static void multi_boot_64bit (int entry_addr, int mbi); + + /* Initialize the data for builtins. */ + void +@@ -297,8 +298,11 @@ + break; + + case KERNEL_TYPE_MULTIBOOT: +- /* Multiboot */ +- multi_boot ((int) entry_addr, (int) &mbi); ++ ++ if (long_64bit_mode) ++ multi_boot_64bit((int) entry_addr, (int) &mbi); ++ else ++ multi_boot ((int) entry_addr, (int) &mbi); + break; + + default: +@@ -309,6 +313,73 @@ + return 0; + } + ++#define TABLE_BITS 0x7 /* user, r/w, present */ ++#define PAGE_BITS 0x87 /* not pat, not global, not dirty, not accessed, user, r/w, present */ ++ ++#define NOT_PRESENT_TABLE 0x6 ++#define NOT_PRESENT_PAGE 0x86 ++ ++ ++static void ++multi_boot_64bit (int entry_addr, int mbi) ++{ ++ unsigned *pml4 = PML4; ++ unsigned *pdpt0x000 = PDPT0x000; ++ unsigned *pd0x000_000 = PD0x000_000; ++ unsigned *pd0x000_001 = PD0x000_001; ++ unsigned *pd0x000_002 = PD0x000_002; ++ unsigned *pd0x000_003 = PD0x000_003; ++ int i; ++ unsigned long base; ++ ++ /* identity map 1st 4 GB */ ++ ++ for (i = 0; i < 512; i++) ++ { ++ pml4[i * 2 + 0] = NOT_PRESENT_TABLE; ++ pml4[i * 2 + 1] = 0; ++ ++ pdpt0x000[i * 2 + 0] = NOT_PRESENT_TABLE; ++ pdpt0x000[i * 2 + 1] = 0; ++ ++ pd0x000_000[i * 2 + 0] = NOT_PRESENT_PAGE; ++ pd0x000_000[i * 2 + 1] = 0; ++ pd0x000_001[i * 2 + 0] = NOT_PRESENT_PAGE; ++ pd0x000_001[i * 2 + 1] = 0; ++ pd0x000_002[i * 2 + 0] = NOT_PRESENT_PAGE; ++ pd0x000_002[i * 2 + 1] = 0; ++ pd0x000_003[i * 2 + 0] = NOT_PRESENT_PAGE; ++ pd0x000_003[i * 2 + 1] = 0; ++ } ++ ++ pml4[0x000 * 2 + 0] = PDPT0x000 + TABLE_BITS; ++ pml4[0x000 * 2 + 1] = 0; ++ ++ pdpt0x000[0x000 * 2 + 0] = PD0x000_000 + TABLE_BITS; ++ pdpt0x000[0x000 * 2 + 1] = 0; ++ pdpt0x000[0x001 * 2 + 0] = PD0x000_001 + TABLE_BITS; ++ pdpt0x000[0x001 * 2 + 1] = 0; ++ pdpt0x000[0x002 * 2 + 0] = PD0x000_002 + TABLE_BITS; ++ pdpt0x000[0x002 * 2 + 1] = 0; ++ pdpt0x000[0x003 * 2 + 0] = PD0x000_003 + TABLE_BITS; ++ pdpt0x000[0x003 * 2 + 1] = 0; ++ ++ for (i = 0, base = 0; i < 1005; i++, base += 0x200000) ++ { ++ pd0x000_000[i * 2 + 0] = base + PAGE_BITS; ++ pd0x000_000[i * 2 + 1] = 0; ++ pd0x000_001[i * 2 + 0] = base + (1 * 0x200 * 0x20000) + PAGE_BITS; ++ pd0x000_001[i * 2 + 1] = 0; ++ pd0x000_002[i * 2 + 0] = base + (2 * 0x200 * 0x20000) + PAGE_BITS; ++ pd0x000_002[i * 2 + 1] = 0; ++ pd0x000_003[i * 2 + 0] = base + (3 * 0x200 * 0x20000) + PAGE_BITS; ++ pd0x000_003[i * 2 + 1] = 0; ++ } ++ ++ multi_boot_64bit_doit (entry_addr, mbi); ++ /* NOTREACHED */ ++} ++ + static struct builtin builtin_boot = + { + "boot", +diff -Naur grub-0.97.orig/stage2/elf.h grub-0.97.patched/stage2/elf.h +--- grub-0.97.orig/stage2/elf.h 1969-12-31 17:00:00.000000000 -0700 ++++ grub-0.97.patched/stage2/elf.h 2006-08-25 21:58:37.000000000 -0600 +@@ -0,0 +1,79 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2001,2002,2006 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++ ++#include "i386-elf.h" ++#include "x86-64-elf.h" ++ ++ ++typedef union ++{ ++ unsigned char e_ident[EI_NIDENT]; ++ Elf32_Ehdr elf32; ++ Elf64_Ehdr elf64; ++} ++Elf_Ehdr; ++ ++ ++typedef union ++{ ++ Elf32_Phdr elf32; ++ Elf64_Phdr elf64; ++} ++Elf_Phdr; ++ ++ ++typedef union ++{ ++ Elf32_Shdr elf32; ++ Elf64_Shdr elf64; ++} ++Elf_Shdr; ++ ++ ++#define SIZEOF_ELF_EHDR(h) (h->e_ident[EI_CLASS] == ELFCLASS32 ? sizeof (Elf32_Ehdr) : sizeof (Elf64_Ehdr)) ++ ++#define E_ENTRY(h) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? h->elf32.e_entry : h->elf64.e_entry)) ++#define E_PHOFF(h) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? h->elf32.e_phoff : h->elf64.e_phoff)) ++#define E_PHNUM(h) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? h->elf32.e_phnum : h->elf64.e_phnum)) ++#define E_PHENTSIZE(h) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? h->elf32.e_phentsize : h->elf64.e_phentsize)) ++#define E_SHNUM(h) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? h->elf32.e_shnum : h->elf64.e_shnum)) ++#define E_SHENTSIZE(h) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? h->elf32.e_shentsize : h->elf64.e_shentsize)) ++#define E_SHSTRNDX(h) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? h->elf32.e_shstrndx : h->elf64.e_shstrndx)) ++#define E_SHOFF(h) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? h->elf32.e_shoff : h->elf64.e_shoff)) ++ ++#define P_TYPE(h, p) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? p->elf32.p_type : p->elf64.p_type)) ++#define P_OFFSET(h, p) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? p->elf32.p_offset : p->elf64.p_offset)) ++#define P_PADDR(h, p) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? p->elf32.p_paddr : p->elf64.p_paddr)) ++#define P_MEMSZ(h, p) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? p->elf32.p_memsz : p->elf64.p_memsz)) ++#define P_VADDR(h, p) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? p->elf32.p_vaddr : p->elf64.p_vaddr)) ++#define P_FILESZ(h, p) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? p->elf32.p_filesz : p->elf64.p_filesz)) ++ ++#define SH_ADDR_AT(h, sh, i) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? ((&(sh->elf32))[i]).sh_addr : ((&(sh->elf64))[i]).sh_addr)) ++#define SH_SIZE_AT(h, sh, i) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? ((&(sh->elf32))[i]).sh_size : ((&(sh->elf64))[i]).sh_size)) ++#define SH_ADDRALIGN_AT(h, sh, i) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? ((&(sh->elf32))[i]).sh_addralign : ((&(sh->elf64))[i]).sh_addralign)) ++#define SH_OFFSET_AT(h, sh, i) ((unsigned) (h->e_ident[EI_CLASS] == ELFCLASS32 ? ((&(sh->elf32))[i]).sh_offset : ((&(sh->elf64))[i]).sh_offset)) ++ ++#define SET_SH_ADDR_AT(h, sh, i, v) \ ++ { \ ++ if (h->e_ident[EI_CLASS] == ELFCLASS32) \ ++ ((&(sh->elf32))[i]).sh_addr = v; \ ++ else \ ++ ((&(sh->elf64))[i]).sh_addr = v; \ ++ } +diff -Naur grub-0.97.orig/stage2/shared.h grub-0.97.patched/stage2/shared.h +--- grub-0.97.orig/stage2/shared.h 2004-06-19 10:40:09.000000000 -0600 ++++ grub-0.97.patched/stage2/shared.h 2006-09-25 14:54:53.000000000 -0600 +@@ -70,6 +70,13 @@ + + #define BOOT_PART_TABLE RAW_ADDR (0x07be) + ++#define PML4 0x70000 ++#define PDPT0x000 0x71000 ++#define PD0x000_000 0x72000 ++#define PD0x000_001 0x73000 ++#define PD0x000_002 0x74000 ++#define PD0x000_003 0x75000 ++ + /* + * BIOS disk defines + */ +@@ -692,6 +699,8 @@ + + extern entry_func entry_addr; + ++extern unsigned long_64bit_mode; ++ + /* Enter the stage1.5/stage2 C code after the stack is set up. */ + void cmain (void); + +@@ -739,6 +748,9 @@ + /* booting a multiboot executable */ + void multi_boot (int start, int mb_info) __attribute__ ((noreturn)); + ++/* boot into 64-bit long mode */ ++void multi_boot_64bit_doit (int start, int mb_info) __attribute__ ((noreturn)); ++ + /* If LINEAR is nonzero, then set the Intel processor to linear mode. + Otherwise, bit 20 of all memory accesses is always forced to zero, + causing a wraparound effect for bugwards compatibility with the +diff -Naur grub-0.97.orig/stage2/x86-64-elf.h grub-0.97.patched/stage2/x86-64-elf.h +--- grub-0.97.orig/stage2/x86-64-elf.h 1969-12-31 17:00:00.000000000 -0700 ++++ grub-0.97.patched/stage2/x86-64-elf.h 2006-08-26 21:45:22.000000000 -0600 +@@ -0,0 +1,86 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2001,2002,2006 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++ ++typedef unsigned short Elf64_Half; ++typedef unsigned long Elf64_Word; ++typedef unsigned long long Elf64_Off; ++typedef unsigned long long Elf64_Addr; ++typedef unsigned long long Elf64_Xword; ++ ++ ++typedef struct ++{ ++ unsigned char e_ident[EI_NIDENT]; /* basic identification block */ ++ Elf64_Half e_type; /* file types */ ++ Elf64_Half e_machine; /* machine types */ ++ Elf64_Word e_version; /* use same as "EI_VERSION" above */ ++ Elf64_Addr e_entry; /* entry point of the program */ ++ Elf64_Off e_phoff; /* program header table file offset */ ++ Elf64_Off e_shoff; /* section header table file offset */ ++ Elf64_Word e_flags; /* flags */ ++ Elf64_Half e_ehsize; /* elf header size in bytes */ ++ Elf64_Half e_phentsize; /* program header entry size */ ++ Elf64_Half e_phnum; /* number of entries in program header */ ++ Elf64_Half e_shentsize; /* section header entry size */ ++ Elf64_Half e_shnum; /* number of entries in section header */ ++ Elf64_Half e_shstrndx; /* section header table index */ ++} ++Elf64_Ehdr; ++ ++ ++typedef struct ++{ ++ Elf64_Word p_type; ++ Elf64_Word p_flags; ++ Elf64_Off p_offset; ++ Elf64_Addr p_vaddr; ++ Elf64_Addr p_paddr; ++ Elf64_Xword p_filesz; ++ Elf64_Xword p_memsz; ++ Elf64_Xword p_align; ++} ++Elf64_Phdr; ++ ++ ++typedef struct ++{ ++ Elf64_Word sh_name; /* Section name (string tbl index) */ ++ Elf64_Word sh_type; /* Section type */ ++ Elf64_Xword sh_flags; /* Section flags */ ++ Elf64_Addr sh_addr; /* Section virtual addr at execution */ ++ Elf64_Off sh_offset; /* Section file offset */ ++ Elf64_Xword sh_size; /* Section size in bytes */ ++ Elf64_Word sh_link; /* Link to another section */ ++ Elf64_Word sh_info; /* Additional section information */ ++ Elf64_Xword sh_addralign; /* Section alignment */ ++ Elf64_Xword sh_entsize; /* Entry size if section holds table */ ++} ++Elf64_Shdr; ++ ++#define ELFCLASS64 2 ++ ++#define EM_X86_64 0x3e ++ ++#define BOOTABLE_X86_64_ELF(h) \ ++ ((h.e_ident[EI_MAG0] == ELFMAG0) & (h.e_ident[EI_MAG1] == ELFMAG1) \ ++ & (h.e_ident[EI_MAG2] == ELFMAG2) & (h.e_ident[EI_MAG3] == ELFMAG3) \ ++ & (h.e_ident[EI_CLASS] == ELFCLASS64) & (h.e_ident[EI_DATA] == ELFDATA2LSB) \ ++ & (h.e_ident[EI_VERSION] == EV_CURRENT) & (h.e_type == ET_EXEC) \ ++ & (h.e_machine == EM_X86_64) & (h.e_version == EV_CURRENT)) diff --git a/extra/source/grub/grub.SlackBuild b/extra/source/grub/grub.SlackBuild new file mode 100755 index 000000000..417cb6364 --- /dev/null +++ b/extra/source/grub/grub.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.97 +GCVER=1.28 +ARCH=${ARCH:-x86_64} +BUILD=7 + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-grub + +rm -rf $PKG +mkdir -p $PKG $TMP +cd $TMP +rm -rf grub-$VERSION +tar xvf $CWD/grub-$VERSION.tar.gz || exit 1 +cd grub-$VERSION || exit 1 + +# This is needed for the optional (but now default) increase in +# inode size from 128 to 256 bytes with ext2 and ext3: +zcat $CWD/grub_support_256byte_inode.patch.gz | patch -p1 --verbose || exit 1 + +zcat $CWD/grub-0.97-x86_64.patch.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/grub-$VERSION +cp -a \ + AUTHORS BUGS COPYING INSTALL MAINTENANCE NEWS README THANKS TODO \ + $PKG/usr/doc/grub-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Add Kent's grubconfig tool: +cd $TMP +rm -rf grubconfig-$GCVER +tar xf $CWD/grubconfig-${GCVER}.tar.gz || exit 1 +cd grubconfig-$GCVER || exit 1 +zcat $CWD/grubconfig_localefix.patch.gz | patch || exit 1 +chown -R root:root . +chmod 644 README +chmod 755 grubconfig +mkdir -p $PKG/usr/doc/grubconfig-${GCVER} +cp -a README $PKG/usr/doc/grubconfig-${GCVER} +cp -a grubconfig $PKG/usr/sbin/grubconfig + +cd $PKG +/sbin/makepkg -l y -c n $TMP/grub-$VERSION-$ARCH-$BUILD.txz + diff --git a/extra/source/grub/grub_support_256byte_inode.patch b/extra/source/grub/grub_support_256byte_inode.patch new file mode 100644 index 000000000..bef3bc18e --- /dev/null +++ b/extra/source/grub/grub_support_256byte_inode.patch @@ -0,0 +1,94 @@ +diff -Nrup a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c +--- a/stage2/fsys_ext2fs.c 2004-08-08 20:19:18.000000000 +0200 ++++ b/stage2/fsys_ext2fs.c 2008-01-30 14:27:20.000000000 +0100 +@@ -79,7 +79,52 @@ struct ext2_super_block + __u32 s_rev_level; /* Revision level */ + __u16 s_def_resuid; /* Default uid for reserved blocks */ + __u16 s_def_resgid; /* Default gid for reserved blocks */ +- __u32 s_reserved[235]; /* Padding to the end of the block */ ++ /* ++ * These fields are for EXT2_DYNAMIC_REV superblocks only. ++ * ++ * Note: the difference between the compatible feature set and ++ * the incompatible feature set is that if there is a bit set ++ * in the incompatible feature set that the kernel doesn't ++ * know about, it should refuse to mount the filesystem. ++ * ++ * e2fsck's requirements are more strict; if it doesn't know ++ * about a feature in either the compatible or incompatible ++ * feature set, it must abort and not try to meddle with ++ * things it doesn't understand... ++ */ ++ __u32 s_first_ino; /* First non-reserved inode */ ++ __u16 s_inode_size; /* size of inode structure */ ++ __u16 s_block_group_nr; /* block group # of this superblock */ ++ __u32 s_feature_compat; /* compatible feature set */ ++ __u32 s_feature_incompat; /* incompatible feature set */ ++ __u32 s_feature_ro_compat; /* readonly-compatible feature set */ ++ __u8 s_uuid[16]; /* 128-bit uuid for volume */ ++ char s_volume_name[16]; /* volume name */ ++ char s_last_mounted[64]; /* directory where last mounted */ ++ __u32 s_algorithm_usage_bitmap; /* For compression */ ++ /* ++ * Performance hints. Directory preallocation should only ++ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on. ++ */ ++ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/ ++ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */ ++ __u16 s_reserved_gdt_blocks;/* Per group table for online growth */ ++ /* ++ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set. ++ */ ++ __u8 s_journal_uuid[16]; /* uuid of journal superblock */ ++ __u32 s_journal_inum; /* inode number of journal file */ ++ __u32 s_journal_dev; /* device number of journal file */ ++ __u32 s_last_orphan; /* start of list of inodes to delete */ ++ __u32 s_hash_seed[4]; /* HTREE hash seed */ ++ __u8 s_def_hash_version; /* Default hash version to use */ ++ __u8 s_jnl_backup_type; /* Default type of journal backup */ ++ __u16 s_reserved_word_pad; ++ __u32 s_default_mount_opts; ++ __u32 s_first_meta_bg; /* First metablock group */ ++ __u32 s_mkfs_time; /* When the filesystem was created */ ++ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */ ++ __u32 s_reserved[172]; /* Padding to the end of the block */ + }; + + struct ext2_group_desc +@@ -218,6 +263,9 @@ struct ext2_dir_entry + #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) + #define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s))) + ++#define EXT2_INODE_SIZE(s) (SUPERBLOCK->s_inode_size) ++#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s)) ++ + /* linux/ext2_fs.h */ + #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10) + /* kind of from ext2/super.c */ +@@ -553,7 +601,7 @@ ext2fs_dir (char *dirname) + gdp = GROUP_DESC; + ino_blk = gdp[desc].bg_inode_table + + (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group)) +- >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode))); ++ >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK))); + #ifdef E2DEBUG + printf ("inode table fsblock=%d\n", ino_blk); + #endif /* E2DEBUG */ +@@ -565,13 +613,12 @@ ext2fs_dir (char *dirname) + /* reset indirect blocks! */ + mapblock2 = mapblock1 = -1; + +- raw_inode = INODE + +- ((current_ino - 1) +- & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1)); ++ raw_inode = (struct ext2_inode *)((char *)INODE + ++ ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) * ++ EXT2_INODE_SIZE (SUPERBLOCK)); + #ifdef E2DEBUG + printf ("ipb=%d, sizeof(inode)=%d\n", +- (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)), +- sizeof (struct ext2_inode)); ++ EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK)); + printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode); + printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE); + for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode; diff --git a/extra/source/grub/grubconfig_localefix.patch b/extra/source/grub/grubconfig_localefix.patch new file mode 100644 index 000000000..6c1d4e9f9 --- /dev/null +++ b/extra/source/grub/grubconfig_localefix.patch @@ -0,0 +1,32 @@ +--- /usr/sbin/grubconfig 2006-03-24 09:28:41.000000000 +0100 ++++ _developpement/debug/grubconfig 2007-05-12 16:51:57.000000000 +0200 +@@ -53,6 +53,10 @@ + rm -rf $TMP $BOOT_TMP + mkdir -p $TMP $BOOT_TMP + ++# We need to ensure the output is in english in order to match the devices ++# with fdisk. ++export LC_ALL=C ++ + PATH=$PATH:/bin:/usr/bin:/sbin:/usr/sbin + + # Menu to check if we want to use VESA framebuffer support: +@@ -475,7 +479,8 @@ + chmod 644 $BOOT/grub/$grub_config + message=yes + installcolor; +- umount $BOOT_TMP 2>$TMP/null && rmdir $BOOT_TMP ++ umount $BOOT_TMP 2> $TMP/null ++ rmdir $BOOT_TMP 2> $TMP/null + rm -rf $TMP + } + +@@ -1004,8 +1009,6 @@ + KILL=NO + fi + simplegrub +- umount $BOOT_TMP 2>$TMP/null +- rm -rf $TMP $BOOT_TMP + chroot_umount + exit + fi diff --git a/extra/source/grub/slack-desc b/extra/source/grub/slack-desc new file mode 100644 index 000000000..f3bead79e --- /dev/null +++ b/extra/source/grub/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +grub: grub (GNU GRUB Legacy bootloader) +grub: +grub: This is the legacy (0.9x) version of GNU GRUB, the GRand Unified +grub: Bootloader. GRUB is an alternative to other familiar bootloaders +grub: such as LILO. Unlike LILO, it loads a kernel through direct file- +grub: system support rather than a block list so it does not need to be +grub: updated if a new kernel is installed. +grub: +grub: Also included is Kent Robotti's 'grubconfig' tool (similar to the +grub: Slackware 'liloconfig' setup tool). +grub: diff --git a/extra/source/jdk-6/COPYRIGHT b/extra/source/jdk-6/COPYRIGHT new file mode 100644 index 000000000..2ae212072 --- /dev/null +++ b/extra/source/jdk-6/COPYRIGHT @@ -0,0 +1,74 @@ +Copyright © 2009 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +California 95054, U.S.A. All rights reserved. + +Sun Microsystems, Inc. has intellectual property rights relating to +technology embodied in the product that is described in this document. +In particular, and without limitation, these intellectual property +rights may include one or more of the U.S. patents listed at +http://www.sun.com/patents and one or more additional patents or pending +patent applications in the U.S. and in other countries. + +THIS PRODUCT CONTAINS CONFIDENTIAL INFORMATION AND TRADE SECRETS OF SUN +MICROSYSTEMS, INC. USE, DISCLOSURE OR REPRODUCTION IS PROHIBITED +WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SUN MICROSYSTEMS, INC. + +U.S. Government Rights - Commercial software. Government users are +subject to the Sun Microsystems, Inc. standard license agreement and +applicable provisions of the FAR and its supplements. + +Use is subject to license terms. + +This distribution may include materials developed by third parties. + +Sun, Sun Microsystems, the Sun logo, Java and Java SE are trademarks or +registered trademarks of Sun Microsystems, Inc. in the U.S. and other +countries. + +This product is covered and controlled by U.S. Export Control laws and +may be subject to the export or import laws in other countries. +Nuclear, missile, chemical biological weapons or nuclear maritime end +uses or end users, whether direct or indirect, are strictly prohibited. +Export or reexport to countries subject to U.S. embargo or to entities +identified on U.S. export exclusion lists, including, but not limited +to, the denied persons and specially designated nationals lists is +strictly prohibited. + +Copyright © 2009 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +California 95054, Etats-Unis. Tous droits rservs. + +Sun Microsystems, Inc. dtient les droits de proprit intellectuele +relatifs la technologie incorpore dans le produit qui est dcrit dans ce +document. En particulier, et ce sans limitation, ces droits de proprit +intellectuelle peuvent inclure un ou plusieurs des brevets amricains +lists l'adresse suivante: http://www.sun.com/patents et un ou +plusieures de brevet en attente aux Etats - Unis et dans les autres +pays. + +CE PRODUIT CONTIENT DES INFORMATIONS CONFIDENTIELLES ET DES SECRETS +COMMERCIAUX DE SUN MICROSYSTEMS, INC. SON UTILISATION, SA DIVULGATION +ET SA REPRODUCTION SONT INTERDITES SANS L AUTORISATION EXPRESSE, ECRITE +ET PREALABLE DE SUN MICROSYSTEMS, INC. + +L'utilisation est soumise aux termes du contract de licence. + +Cette distributions peut inclure des elements dvelopps par des tiers. + +Sun, Sun Microsystems, le logo Sun, Java et Java SE sont des marques de +fabrique ou des marques dposes de Sun Microsystems, Inc. aux Etats-Unis +et dans d'autres pays. + +Ce produit est soumis la lgislation amricaine en matire de contrle des +exportations et peut tre soumis la rglementation en vigueur dans +d'autres pays dans le domaine des exportations et importations. Les +utilisations finales, ou utilisateurs finaux, pour des armes +nuclaires,des missiles, des armes biologiques et chimiques ou du +nuclaire maritime, directement ou indirectement, sont strictement +interdites. Les exportations ou rexportations vers les pays sous +embargo amricain, ou vers des entits figurant sur les listes d'exclusion +d'exportation des produits ou des services qui sont regis parla +legislation amricaines, y compris, mais de manire non exhaustive, la +liste de personnes qui font objet d'un ordre de ne pas participer, d'une +faon directe ou indirecte, aux exportations des produits ou des services +qui sont rgis par la lgislation amricaine sur le contrle des +exportations et la liste de ressortissants spcifiquement dsigns, sont +rigoureusement interdites. diff --git a/extra/source/jdk-6/HOWTO-BUILD-TXZ b/extra/source/jdk-6/HOWTO-BUILD-TXZ new file mode 100644 index 000000000..389b26891 --- /dev/null +++ b/extra/source/jdk-6/HOWTO-BUILD-TXZ @@ -0,0 +1,9 @@ +1. Download the file jdk-6u14-linux-i586.bin from + java.sun.com and put it in the directory. + +2. Run jdk.SlackBuild to package it as an installable + .txz package. + +Newer (or older) versions may be packaged by editing the +version number in jdk.SlackBuild first. + diff --git a/extra/source/jdk-6/LICENSE b/extra/source/jdk-6/LICENSE new file mode 100644 index 000000000..0e8bde048 --- /dev/null +++ b/extra/source/jdk-6/LICENSE @@ -0,0 +1,345 @@ +Sun Microsystems, Inc. Binary Code License Agreement + +for the JAVA SE DEVELOPMENT KIT (JDK), VERSION 6 + +SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE +SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE CONDITION +THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY +CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS +(COLLECTIVELY "AGREEMENT"). PLEASE READ THE AGREEMENT +CAREFULLY. BY USING THE SOFTWARE YOU ACKNOWLEDGE THAT +YOU HAVE READ THE TERMS AND AGREE TO THEM. IF YOU ARE +AGREEING TO THESE TERMS ON BEHALF OF A COMPANY OR OTHER +LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE LEGAL +AUTHORITY TO BIND THE LEGAL ENTITY TO THESE TERMS. IF +YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT WISH +TO BE BOUND BY THE TERMS, THEN YOU MUST NOT USE THE +SOFTWARE ON THIS SITE OR ANY OTHER MEDIA ON WHICH THE +SOFTWARE IS CONTAINED. + +1. DEFINITIONS. "Software" means the identified above in +binary form, any other machine readable materials +(including, but not limited to, libraries, source files, +header files, and data files), any updates or error +corrections provided by Sun, and any user manuals, +programming guides and other documentation provided to you +by Sun under this Agreement. "General Purpose Desktop +Computers and Servers" means computers, including desktop +and laptop computers, or servers, used for general +computing functions under end user control (such as but not +specifically limited to email, general purpose Internet +browsing, and office suite productivity tools). +The use of Software in systems and solutions that provide +dedicated functionality (other than as mentioned above) or +designed for use in embedded or function-specific software +applications, for example but not limited to: Software +embedded in or bundled with industrial control systems, +wireless mobile telephones, wireless handheld devices, +netbooks, kiosks, TV/STB, Blu-ray Disc devices, telematics +and network control switching equipment, printers and +storage management systems, and other related systems are +excluded from this definition and not licensed under this +Agreement. "Programs" means Java technology applets and +applications intended to run on the Java Platform Standard +Edition (Java SE) platform on Java-enabled General Purpose +Desktop Computers and Servers. + +2. LICENSE TO USE. Subject to the terms and conditions of +this Agreement, including, but not limited to the Java +Technology Restrictions of the Supplemental License Terms, +Sun grants you a non-exclusive, non-transferable, limited +license without license fees to reproduce and use +internally Software complete and unmodified for the sole +purpose of running Programs. Additional licenses for +developers and/or publishers are granted in the +Supplemental License Terms. + +3. RESTRICTIONS. Software is confidential and copyrighted. +Title to Software and all associated intellectual property +rights is retained by Sun and/or its licensors. Unless +enforcement is prohibited by applicable law, you may not +modify, decompile, or reverse engineer Software. You +acknowledge that Licensed Software is not designed or +intended for use in the design, construction, operation or +maintenance of any nuclear facility. Sun Microsystems, Inc. +disclaims any express or implied warranty of fitness for +such uses. No right, title or interest in or to any +trademark, service mark, logo or trade name of Sun or its +licensors is granted under this Agreement. Additional +restrictions for developers and/or publishers licenses are +set forth in the Supplemental License Terms. + +4. LIMITED WARRANTY. Sun warrants to you that for a period +of ninety (90) days from the date of purchase, as evidenced +by a copy of the receipt, the media on which Software is +furnished (if any) will be free of defects in materials and +workmanship under normal use. Except for the foregoing, +Software is provided "AS IS". Your exclusive remedy and +Sun's entire liability under this limited warranty will be +at Sun's option to replace Software media or refund the fee +paid for Software. Any implied warranties on the Software +are limited to 90 days. Some states do not allow +limitations on duration of an implied warranty, so the +above may not apply to you. This limited warranty gives you +specific legal rights. You may have others, which vary from +state to state. + +5. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS +AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS, +REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED +WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE +EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY +INVALID. + +6. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY +LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR +ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER +CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT +OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, +EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. In no event will Sun's liability to you, whether +in contract, tort (including negligence), or otherwise, +exceed the amount paid by you for Software under this +Agreement. The foregoing limitations will apply even if the +above stated warranty fails of its essential purpose. Some +states do not allow the exclusion of incidental or +consequential damages, so some of the terms above may not +be applicable to you. + +7. TERMINATION. This Agreement is effective until +terminated. You may terminate this Agreement at any time by +destroying all copies of Software. This Agreement will +terminate immediately without notice from Sun if you fail +to comply with any provision of this Agreement. Either +party may terminate this Agreement immediately should any +Software become, or in either party's opinion be likely to +become, the subject of a claim of infringement of any +intellectual property right. Upon Termination, you must +destroy all copies of Software. + +8. EXPORT REGULATIONS. All Software and technical data +delivered under this Agreement are subject to US export +control laws and may be subject to export or import +regulations in other countries. You agree to comply +strictly with all such laws and regulations and acknowledge +that you have the responsibility to obtain such licenses to +export, re-export, or import as may be required after +delivery to you. + +9. TRADEMARKS AND LOGOS. You acknowledge and agree as +between you and Sun that Sun owns the SUN, SOLARIS, JAVA, +JINI, FORTE, and iPLANET trademarks and all SUN, SOLARIS, +JAVA, JINI, FORTE, and iPLANET-related trademarks, service +marks, logos and other brand designations ("Sun Marks"), +and you agree to comply with the Sun Trademark and Logo +Usage Requirements currently located at +http://www.sun.com/policies/trademarks. Any use you make of +the Sun Marks inures to Sun's benefit. + +10. U.S. GOVERNMENT RESTRICTED RIGHTS. If Software is being +acquired by or on behalf of the U.S. Government or by a +U.S. Government prime contractor or subcontractor (at any +tier), then the Government's rights in Software and +accompanying documentation will be only as set forth in +this Agreement; this is in accordance with 48 CFR 227.7201 +through 227.7202-4 (for Department of Defense (DOD) +acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD +acquisitions). + +11. GOVERNING LAW. Any action related to this Agreement +will be governed by California law and controlling U.S. +federal law. No choice of law rules of any jurisdiction +will apply. + +12. SEVERABILITY. If any provision of this Agreement is +held to be unenforceable, this Agreement will remain in +effect with the provision omitted, unless omission would +frustrate the intent of the parties, in which case this +Agreement will immediately terminate. + +13. INTEGRATION. This Agreement is the entire agreement +between you and Sun relating to its subject matter. It +supersedes all prior or contemporaneous oral or written +communications, proposals, representations and warranties +and prevails over any conflicting or additional terms of +any quote, order, acknowledgment, or other communication +between the parties relating to its subject matter during +the term of this Agreement. No modification of this +Agreement will be binding, unless in writing and signed by +an authorized representative of each party. + +SUPPLEMENTAL LICENSE TERMS + +These Supplemental License Terms add to or modify the terms +of the Binary Code License Agreement. Capitalized terms not +defined in these Supplemental Terms shall have the same +meanings ascribed to them in the Binary Code License +Agreement . These Supplemental Terms shall supersede any +inconsistent or conflicting terms in the Binary Code +License Agreement, or in any license contained within the +Software. + +A. Software Internal Use and Development License Grant. +Subject to the terms and conditions of this Agreement and +restrictions and exceptions set forth in the Software +"README" file incorporated herein by reference, including, +but not limited to the Java Technology Restrictions of +these Supplemental Terms, Sun grants you a non-exclusive, +non-transferable, limited license without fees to reproduce +internally and use internally the Software complete and +unmodified for the purpose of designing, developing, and +testing your Programs. + +B. License to Distribute Software. Subject to the terms and +conditions of this Agreement and restrictions and +exceptions set forth in the Software README file, +including, but not limited to the Java Technology +Restrictions of these Supplemental Terms, Sun grants you a +non-exclusive, non-transferable, limited license without +fees to reproduce and distribute the Software, provided +that (i) you distribute the Software complete and +unmodified and only bundled as part of, and for the sole +purpose of running, your Programs, (ii) the Programs add +significant and primary functionality to the Software, +(iii) you do not distribute additional software intended to +replace any component(s) of the Software, (iv) you do not +remove or alter any proprietary legends or notices +contained in the Software, (v) you only distribute the +Software subject to a license agreement that protects Sun's +interests consistent with the terms contained in this +Agreement, and (vi) you agree to defend and indemnify Sun +and its licensors from and against any damages, costs, +liabilities, settlement amounts and/or expenses (including +attorneys' fees) incurred in connection with any claim, +lawsuit or action by any third party that arises or results +from the use or distribution of any and all Programs and/or +Software. + +C. License to Distribute Redistributables. Subject to the +terms and conditions of this Agreement and restrictions and +exceptions set forth in the Software README file, including +but not limited to the Java Technology Restrictions of +these Supplemental Terms, Sun grants you a non-exclusive, +non-transferable, limited license without fees to reproduce +and distribute those files specifically identified as +redistributable in the Software "README" file +("Redistributables") provided that: (i) you distribute the +Redistributables complete and unmodified, and only bundled +as part of Programs, (ii) the Programs add significant and +primary functionality to the Redistributables, (iii) you do +not distribute additional software intended to supersede +any component(s) of the Redistributables (unless otherwise +specified in the applicable README file), (iv) you do not +remove or alter any proprietary legends or notices +contained in or on the Redistributables, (v) you only +distribute the Redistributables pursuant to a license +agreement that protects Sun's interests consistent with the +terms contained in the Agreement, (vi) you agree to defend +and indemnify Sun and its licensors from and against any +damages, costs, liabilities, settlement amounts and/or +expenses (including attorneys' fees) incurred in connection +with any claim, lawsuit or action by any third party that +arises or results from the use or distribution of any and +all Programs and/or Software. + +D. Java Technology Restrictions. You may not create, +modify, or change the behavior of, or authorize your +licensees to create, modify, or change the behavior of, +classes, interfaces, or subpackages that are in any way +identified as "java", "javax", "sun" or similar convention +as specified by Sun in any naming convention designation. + +E. Distribution by Publishers. This section pertains to +your distribution of the Software with your printed book or +magazine (as those terms are commonly used in the industry) +relating to Java technology ("Publication"). Subject to and +conditioned upon your compliance with the restrictions and +obligations contained in the Agreement, in addition to the +license granted in Paragraph 1 above, Sun hereby grants to +you a non-exclusive, nontransferable limited right to +reproduce complete and unmodified copies of the Software on +electronic media (the "Media") for the sole purpose of +inclusion and distribution with your Publication(s), +subject to the following terms: (i) You may not distribute +the Software on a stand-alone basis; it must be distributed +with your Publication(s); (ii) You are responsible for +downloading the Software from the applicable Sun web site; +(iii) You must refer to the Software as JavaTM SE +Development Kit 6; (iv) The Software must be reproduced in +its entirety and without any modification whatsoever +(including, without limitation, the Binary Code License and +Supplemental License Terms accompanying the Software and +proprietary rights notices contained in the Software); +(v) The Media label shall include the following +information: Copyright 2006, Sun Microsystems, Inc. All +rights reserved. Use is subject to license terms. Sun, Sun +Microsystems, the Sun logo, Solaris, Java, the Java Coffee +Cup logo, J2SE, and all trademarks and logos based on Java +are trademarks or registered trademarks of Sun +Microsystems, Inc. in the U.S. and other countries. This +information must be placed on the Media label in such a +manner as to only apply to the Sun Software; (vi) You must +clearly identify the Software as Sun's product on the Media +holder or Media label, and you may not state or imply that +Sun is responsible for any third-party software contained +on the Media; (vii) You may not include any third party +software on the Media which is intended to be a replacement +or substitute for the Software; (viii) You shall indemnify +Sun for all damages arising from your failure to comply +with the requirements of this Agreement. In addition, you +shall defend, at your expense, any and all claims brought +against Sun by third parties, and shall pay all damages +awarded by a court of competent jurisdiction, or such +settlement amount negotiated by you, arising out of or in +connection with your use, reproduction or distribution of +the Software and/or the Publication. Your obligation to +provide indemnification under this section shall arise +provided that Sun: (a) provides you prompt notice of the +claim; (b) gives you sole control of the defense and +settlement of the claim; (c) provides you, at your expense, +with all available information, assistance and authority to +defend; and (d) has not compromised or settled such claim +without your prior written consent; and (ix) You shall +provide Sun with a written notice for each Publication; +such notice shall include the following information: (1) +title of Publication, (2) author(s), (3) date of +Publication, and (4) ISBN or ISSN numbers. Such notice +shall be sent to Sun Microsystems, Inc., 4150 Network +Circle, M/S USCA12-110, Santa Clara, California 95054, +U.S.A , Attention: Contracts Administration. + +F. Source Code. Software may contain source code that, +unless expressly licensed for other purposes, is provided +solely for reference purposes pursuant to the terms of this +Agreement. Source code may not be redistributed unless +expressly provided for in this Agreement. + +G. Third Party Code. Additional copyright notices and +license terms applicable to portions of the Software are +set forth in the THIRDPARTYLICENSEREADME.txt file. In +addition to any terms and conditions of any third party +opensource/freeware license identified in the +THIRDPARTYLICENSEREADME.txt file, the disclaimer of +warranty and limitation of liability provisions in +paragraphs 5 and 6 of the Binary Code License Agreement +shall apply to all Software in this distribution. + +H. Termination for Infringement. Either party may terminate +this Agreement immediately should any Software become, or +in either party's opinion be likely to become, the subject +of a claim of infringement of any intellectual property +right. + +I. Installation and Auto-Update. The Software's +installation and auto-update processes transmit a limited +amount of data to Sun (or its service provider) about those +specific processes to help Sun understand and optimize +them. Sun does not associate the data with personally +identifiable information. You can find more information +about the data Sun collects at http://java.com/data/. + +For inquiries please contact: Sun Microsystems, Inc., 4150 +Network Circle, Santa Clara, California 95054, U.S.A. + diff --git a/extra/source/jdk-6/README.html b/extra/source/jdk-6/README.html new file mode 100644 index 000000000..600209cab --- /dev/null +++ b/extra/source/jdk-6/README.html @@ -0,0 +1,714 @@ + + + + + + + + README -- Java Platform, Standard Edition Development Kit + + + +

README

+ +

JavaTM Platform, + Standard Edition 6
+ Development Kit

+ +

JDKTM 6

+ +

Contents

+ + + +

Introduction

+ +
+ Thank you for downloading this release of the JavaTM Platform, Standard Edition Development Kit + (JDKTM). The JDK is a development + environment for building applications, applets, and components using the + Java programming language. +
+ +
+ The JDK includes tools useful for developing and testing programs written + in the Java programming language and running on the JavaTM platform. +
+ +

System Requirements & + Installation

+ +
+ System requirements, installation instructions and troubleshooting tips + are located on the Java Software web site at: +
+ +
+ JDK 6 + Installation Instructions +
+ +

JDKTM + Documentation

+ +
+ The on-line JavaTM Platform, Standard Edition (Java SE) + Documentation contains API specifications, feature descriptions, + developer guides, reference pages for JDKTM tools and utilities, demos, and links to related + information. This documentation is also available in a download bundle + which you can install on your machine. To obtain the documentation bundle, + see the download + page. For API documentation, refer to the The + JavaTM Platform, Standard Edition API + Specification This provides brief descriptions of the API with an + emphasis on specifications, not on code examples. +
+ +

Release Notes

+ +
+ See the Java SE 6 Release + Notes on the Java Software web site for additional information + pertaining to this release. Please check the on-line release notes + occasionally for the latest information as they will be updated as needed. +
+ +

Compatibility

+ +
+ See Compatibility + with Previous Releases on the Java Software web site for the list of + known compatibility issues. Every effort has been made to support programs + written for previous versions of the JavaTM platform. Although some incompatible changes were + necessary, most software should migrate to the current version with no + reprogramming. Any failure to do so is considered a bug, except for a + small number of cases where compatibility was deliberately broken, as + described on our compatibility web page. Some compatibility-breaking + changes were required to close potential security holes or to fix + implementation or design bugs. +
+ +

Bug Reports and Feedback

+ +
+ The Bug Database + web site lets you search for and examine existing bug reports, submit your + own bug reports, and tell us which bug fixes matter most to you. To + directly submit a bug or request a feature, fill out this form: +
+ +
+ http://bugs.sun.com/services/bugreport/index.jsp +
+ +
+ You can send feedback to the Java SE documentation + team. You can also send comments directly to Java Software engineering + team email addresses. +
+ +
+ Note - Please do not seek technical support through the Bug + Database or our development teams. For support options, see Support and Services on the + Java Software web site. +
+ +

Contents of the JDKTM

+ +
+ This section contains a general summary of the files and directories in + the JDKTM. For details on the files and + directories, see the JDK + File Structure section of the Java SE documentation for your platform. +
+ +
+
+
+
Development Tools
+ +
(In the bin/ subdirectory) Tools and utilities that + will help you develop, execute, debug, and document programs written + in the JavaTM programming language. + For further information, see the tool + documentation.
+
+ +
Runtime Environment
+ +
(In the jre/ subdirectory) An implementation of the + Java Runtime Environment (JRETM) for + use by the JDK. The JRE includes a JavaTM Virtual Machine (JVMTM), class libraries, and other files that support + the execution of programs written in the JavaTM programming language.
+
+ +
Additional Libraries
+ +
(In the lib/ subdirectory) Additional class libraries + and support files required by the development tools.
+
+ +
Demo Applets and Applications
+ +
(In the demo/ subdirectory) Examples, with source + code, of programming for the JavaTM + platform. These include examples that use Swing and other + JavaTM Foundation Classes, and the + JavaTM Platform Debugger + Architecture.
+
+ +
Sample Code
+ +
(In the sample subdirectory) Samples, with source + code, of programming for certain Java API's.
+
+ +
C header Files
+ +
(In the include/ subdirectory) Header files that + support native-code programming using the Java Native + Interface, the JVMTM + Tool Interface, and other functionality of the + JavaTM platform.
+
+ +
Source Code
+ +
(In src.zip) JavaTM + programming language source files for all classes that make up the + Java core API (that is, sources files for the java.*, javax.* and + some org.* packages, but not for com.sun.* packages). This source code + is provided for informational purposes only, to help developers learn + and use the JavaTM programming + language. These files do not include platform-specific implementation + code and cannot be used to rebuild the class libraries. To extract + these file, use any common zip utility. Or, you may use the Jar + utility in the JDK's bin/ directory:
+
+ jar xvf src.zip
+
+
+
+ +

The Java Runtime Environment + (JRETM)

+ +
+ The JavaTM Runtime Environment + (JRETM) is available as a separately + downloadable product. See the download web site. +
+ +
+ The JRE allows you to run applications written in the JavaTM programming language. Like the JDKTM, it contains the JavaTM Virtual Machine (JVMTM), classes comprising the JavaTM platform API, and supporting files. Unlike the JDK, + it does not contain development tools such as compilers and debuggers. +
+ +
+ You can freely redistribute the JRE with your application, according to + the terms of the JRE license. Once you have developed your application + using the JDK, you can ship it with the JRE so your end-users will have a + JavaTM platform on which to run your + software. +
+ +

Redistribution

+ +
+
+
+ NOTE - The license for this software does not allow the redistribution + of beta and other pre-release versions. +
+
+
+ +
+ Subject to the terms and conditions of the Software License Agreement and + the obligations, restrictions, and exceptions set forth below, You may + reproduce and distribute the Software (and also portions of Software + identified below as Redistributable), provided that: +
+ +
+
    +
  1. you distribute the Software complete and unmodified and only bundled + as part of Your applets and applications ("Programs"),
  2. + +
  3. your Programs add significant and primary functionality to the + Software,
  4. + +
  5. your Programs are only intended to run on Java-enabled general + purpose desktop computers and servers,
  6. + +
  7. you distribute Software for the sole purpose of running your + Programs,
  8. + +
  9. you do not distribute additional software intended to replace any + component(s) of the Software,
  10. + +
  11. you do not remove or alter any proprietary legends or notices + contained in or on the Software,
  12. + +
  13. you only distribute the Software subject to a license agreement that + protects Sun's interests consistent with the terms contained in this + Agreement, and
  14. + +
  15. you agree to defend and indemnify Sun and its licensors from and + against any damages, costs, liabilities, settlement amounts and/or + expenses (including attorneys' fees) incurred in connection with any + claim, lawsuit or action by any third party that arises or results from + the use or distribution of any and all Programs and/or Software.
  16. +
+
+ +
+ The term "vendors" used here refers to licensees, developers, and + independent software vendors (ISVs) who license and distribute the + JavaTM Development Kit + (JDKTM) with their programs. +
+ +
+ Vendors must follow the terms of the Java Development Kit Binary Code + License agreement. +
+ +

Required vs. Optional Files

+ +
+ The files that make up the JavaTM + Development Kit (JDKTM) are divided into + two categories: required and optional. Optional files may be excluded from + redistributions of the JDK at the vendor's discretion. +
+ +
+ The following section contains a list of the files and directories that + may optionally be omitted from redistributions of the JDK. All files not + in these lists of optional files must be included in redistributions of + the JDK. +
+ +

Optional Files and Directories

+ +
+ The following files may be optionally excluded from redistributions. These + files are located in the jdk1.6.0_<version> directory, where + <version> is the update version number. SolarisTM and Linux filenames and separators are shown. Windows + executables have the ".exe" suffix. Corresponding files with + _g in the name can also be excluded. The corresponding man + pages should be excluded for any excluded executables (with paths listed + below beginning with bin/, for the SolarisTM Operating System and Linux). +
+ +
+
+
+
jre/lib/charsets.jar
+ +
Character conversion classes
+ +
jre/lib/ext/
+ +
sunjce_provider.jar - the SunJCE provider for Java + Cryptography APIs
+ localedata.jar - contains many of the resources needed + for non US English locales
+ ldapsec.jar - contains security features supported by the + LDAP service provider
+ dnsns.jar - for the InetAddress wrapper of JNDI DNS + provider
+ +
bin/rmid and jre/bin/rmid
+ +
Java RMI Activation System Daemon
+ +
bin/rmiregistry and + jre/bin/rmiregistry
+ +
Java Remote Object Registry
+ +
bin/tnameserv and jre/bin/tnameserv
+ +
Java IDL Name Server
+ +
bin/keytool and jre/bin/keytool
+ +
Key and Certificate Management Tool
+ +
bin/kinit and jre/bin/kinit
+ +
Used to obtain and cache Kerberos ticket-granting tickets
+ +
bin/klist and jre/bin/klist
+ +
Kerberos display entries in credentials cache and keytab
+ +
bin/ktab and jre/bin/ktab
+ +
Kerberos key table manager
+ +
bin/policytool and + jre/bin/policytool
+ +
Policy File Creation and Management Tool
+ +
bin/orbd and jre/bin/orbd
+ +
Object Request Broker Daemon
+ +
bin/servertool and + jre/bin/servertool
+ +
Java IDL Server Tool
+ +
bin/javaws, jre/bin/javaws, + jre/lib/javaws/ and jre/lib/javaws.jar
+ +
Java Web Start
+ +
db/
+ +
+ Java DB, Sun Microsystems's distribution of the Apache Derby + database (only with file based distributions of the JDK). +
+ +
demo/
+ +
Demo Applets and Applications
+ +
sample/
+ +
Sample Code
+ +
src.zip
+ +
Archive of source files
+
+
+
+ +

Redistributable JDKTM Files

+ +
+ The limited set of files and directories from the JDK listed below may be + included in vendor redistributions of the JavaTM Runtime Environment (JRETM). They cannot be redistributed separately, and must + accompany an identically versioned JRE distribution. All paths are + relative to the top-level directory of the JDK. The corresponding man + pages should be included for any included executables (with paths listed + below beginning with bin/, for the SolarisTM Operating System and Linux). +
+ +
+
+
+
jre/lib/cmm/PYCC.pf
+ +
Color profile. This file is required only if one wishes to convert + between the PYCC color space and another color space.
+ +
All .ttf font files in the + jre/lib/fonts/ directory.
+ +
Note that the LucidaSansRegular.ttf font is already contained in + the JRE, so there is no need to bring that file over from the + JDK.
+ +
jre/lib/audio/soundbank.gm
+ +
This MIDI soundbank is present in the JDK, but it has been removed + from the JRE in order to reduce the size of the JRE download bundle. + However, a soundbank file is necessary for MIDI playback, and + therefore the JDK's soundbank.gm file may be included in + redistributions of the JRE at the vendor's discretion. Several + versions of enhanced MIDI soundbanks are available from the Java Sound + web site: http://java.sun.com/products/java-media/sound/. + These alternative soundbanks may be included in redistributions of the + JRE.
+ +
The javac bytecode compiler, consisting of the following + files:
+ +
bin/javac [SolarisTM Operating System and Linux]
+ bin/sparcv9/javac [SolarisTM Operating System (SPARC(R) Platform Edition)]
+ bin/amd64/javac [SolarisTM Operating System (AMD)]
+ bin/javac.exe [Microsoft Windows]
+ lib/tools.jar [All platforms]
+ +
The Annotation Processing Tool, consisting of the following + files:
+ +
lib/tools.jar [All platforms]
+ bin/apt [SolarisTM + Operating System and Linux]
+ bin/sparcv9/apt [SolarisTM Operating System (SPARC(R) Platform Edition)]
+ bin/amd64/apt [SolarisTM Operating System (AMD)]
+ bin/apt.exe [Microsoft Windows]
+ +
lib/jconsole.jar
+ +
The Jconsole application. NOTE: The Jconsole application requires + the dynamic attach mechanism.
+ +
The dynamic attach mechanism consisting of the following + files:
+ +
lib/tools.jar [All platforms]
+ jre/lib/sparc/libattach.so [SolarisTM Operating System (SPARC(R) Platform Edition) and + Linux]
+ jre/lib/sparcv9/libattach.so [SolarisTM Operating System (SPARC(R) Platform Edition) and + Linux]
+ jre/lib/i386/libattach.so [SolarisTM Operating System (x86) and Linux]
+ jre/lib/amd64/libattach.so [SolarisTM Operating System (AMD) and Linux]
+ jre\bin\attach.dll [Microsoft Windows]
+ +
The Java Platform Debugger Architecture implementation consisting + of the files shown in the dynamic attach section above, and the + following files:
+ +
lib/tools.jar [All platforms]
+ lib/sa-jdi.jar [All platforms]
+ jre/lib/sparc/libsaproc.so [SolarisTM Operating System (SPARC(R) Platform Edition) and + Linux]
+ jre/lib/sparcv9/libsaproc.so [SolarisTM Operating System (SPARC(R) Platform Edition) and + Linux]
+ jre/lib/i386/libsaproc.so [SolarisTM Operating System (x86) and Linux]
+ jre/lib/amd64/libsaproc.so [SolarisTM Operating System (AMD) and Linux]
+ +
jre\bin\server\
+ +
On Microsoft Windows platforms, the JDK includes both the Java + HotSpotTM Server VM and Java + HotSpotTM Client VM. However, the + JRE for Microsoft Windows platforms includes only the Java + HotSpotTM Client VM. Those wishing + to use the Java HotSpotTM Server VM + with the JRE may copy the JDK's jre\bin\server folder to + a bin\server directory in the JRE. Software vendors may + redistribute the Java HotSpotTM + Server VM with their redistributions of the JRE.
+
+
+
+ +

Unlimited Strength Java Cryptography Extension

+ +
+ Due to import control restrictions for some countries, the Java + Cryptography Extension (JCE) policy files shipped with the JDK and the JRE + allow strong but limited cryptography to be used. These files are located + at
+
+ <java-home>/lib/security/local_policy.jar
+ <java-home>/lib/security/US_export_policy.jar
+
+ where <java-home> is the jre directory of + the JDK or the top-level directory of the JRE. +
+ +
+ An unlimited strength version of these files indicating no restrictions on + cryptographic strengths is available on the JDK web site for those living + in eligible countries. Those living in eligible countries may download the + unlimited strength version and replace the strong cryptography jar files + with the unlimited strength files. +
+ +

The cacerts Certificates File

+ +
+ Root CA certificates may be added to or removed from the Java SE + certificate file located at +
+ +
+ <java-home>/lib/security/cacerts +
+ +
+ For more information, see + The cacerts Certificates File section in the keytool documentation. +
+ +

Java Endorsed Standards Override + Mechanism

+ +
+ From time to time it is necessary to update the Java platform in order to + incorporate newer versions of standards that are created outside of the + Java Community ProcessSM (JCPSM http://www.jcp.org/) (Endorsed + Standards), or in order to update the version of a technology included + in the platform to correspond to a later standalone version of that + technology (Standalone Technologies). +
+ +
+ The Endorsed Standards Override Mechanism provides a means whereby + later versions of classes and interfaces that implement Endorsed Standards + or Standalone Technologies may be incorporated into the Java Platform. +
+ +
+ For more information on the Endorsed Standards Override Mechanism, + including the list of platform packages that it may be used to override, + see +
+ +
+ http://java.sun.com/javase/6/docs/technotes/guides/standards/ +
+ +

Java DB

+ +
+ This distribution bundles Java DB, Sun Microsystems' distribution of the + Apache Derby pure Java database technology. Default installation locations + are: + +
    +
  • Solaris: /opt/SUNWjavadb
  • + +
  • Linux: /opt/sun/javadb
  • + +
  • Windows: C:\Program Files\Sun\JavaDB
  • +
+ +

For information on Java DB and Derby, including user and API + documentation, the capabilities of Java DB and further resources, see the + index.html file in the above directories.

+ +

+Note that file based distributions of the JDK on Solaris and Linux +include Java DB in the ${JAVA_HOME}/db directory. +

+
+ +

Web Pages

+ +
+ For additional information, refer to these Sun Microsystems pages on the + World Wide Web: +
+ +
+
+
+
http://java.sun.com/
+ +
The Java Software web site, with the latest information on Java + technology, product information, news, and features.
+ +
http://java.sun.com/docs
+ +
JavaTM platform Documentation + provides access to white papers, the Java Tutorial and other + documents.
+ +
http://developer.java.sun.com
+ +
Developer Services web site (Free registration required). + Additional technical information, news, and features; user forums; + support information, and much more.
+ +
http://java.sun.com/products/
+ +
Java Technology Products & API
+
+
+
+
+ +

The JavaTM Development + Kit (JDKTM) is a product of Sun + MicrosystemsTM, Inc.
+
+ Copyright © 2009 Sun Microsystems, Inc.
+ 4150 Network Circle, Santa Clara, California 95054, U.S.A.
+ All rights reserved.

+ + + + diff --git a/extra/source/jdk-6/README_ja.html b/extra/source/jdk-6/README_ja.html new file mode 100644 index 000000000..c21e5de24 --- /dev/null +++ b/extra/source/jdk-6/README_ja.html @@ -0,0 +1,438 @@ + + + + + + + +README -- Java Platform, Standard Edition Development Kit + + + +

README

+ +

JavaTM Platform, Standard Edition 6
Development Kit

+ +

JDKTM 6

+ +

Ìܼ¡

+ + + +

¤Ï¤¸¤á¤Ë

+ +
+ JavaTM Platform, Standard Edition Development Kit (JDKTM) ¤Î¤³¤Î¥ê¥ê¡¼¥¹¤ò¥À¥¦¥ó¥í¡¼¥É¤¤¤¿¤À¤­¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£JDK ¤Ï¡¢Java ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤ò»ÈÍѤ·¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡¢¥¢¥×¥ì¥Ã¥È¡¢¤ª¤è¤Ó¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¹½ÃÛ¤¹¤ë¤¿¤á¤Î³«È¯´Ä¶­¤Ç¤¹¡£ +
+ +
+ JDK ¤Ë¤Ï¡¢Java ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Çµ­½Ò¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î³«È¯¤È¥Æ¥¹¥È¡¢¤ª¤è¤Ó JavaTM ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Î¼Â¹Ô¤Ë»ÈÍѤǤ­¤ë³Æ¼ï¥Ä¡¼¥ë¤¬ÉÕ°¤·¤Æ¤¤¤Þ¤¹¡£ +
+ +

¥·¥¹¥Æ¥àÍ׷浪¤è¤Ó¥¤¥ó¥¹¥È¡¼¥ë

+ +
+¥·¥¹¥Æ¥àÍ×·ï¡¢¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç¡¢¤ª¤è¤Ó¥È¥é¥Ö¥ë¥·¥å¡¼¥Æ¥£¥ó¥°¤Î¥Ò¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Î Java Software Web ¥µ¥¤¥È¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +
+JDK 6 ¥¤¥ó¥¹¥È¡¼¥ë¼ê½ç +
+ +

JDKTM ¥É¥­¥å¥á¥ó¥È

+ +
+ JavaTM Platform, Standard Edition (Java SE) ¤Î¥ª¥ó¥é¥¤¥ó¥É¥­¥å¥á¥ó¥È¤Ë¤Ï¡¢API »ÅÍÍ¡¢µ¡Ç½ÀâÌÀ¡¢³«È¯¼Ô¥¬¥¤¥É¡¢JDKTM ¥Ä¡¼¥ë¤ª¤è¤Ó¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¥Ú¡¼¥¸¡¢¥Ç¥â¡¢¤ª¤è¤Ó´ØÏ¢¾ðÊó¤Ø¤Î¥ê¥ó¥¯¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£JDK ¥É¥­¥å¥á¥ó¥È¤Ï¡¢»ÈÍѤ·¤Æ¤¤¤ë¥Þ¥·¥ó¤Ë¥¤¥ó¥¹¥È¡¼¥ë²Äǽ¤Ê¥À¥¦¥ó¥í¡¼¥É¥Ð¥ó¥É¥ë¤Ç¤âÆþ¼ê¤Ç¤­¤Þ¤¹¡£ ¥É¥­¥å¥á¥ó¥È¥Ð¥ó¥É¥ë¤òÆþ¼ê¤¹¤ë¤Ë¤Ï¡¢¥À¥¦¥ó¥í¡¼¥É¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ API ¤Ë¤Ä¤¤¤Æ¤Ï¡¢JavaTM Platform, Standard Edition ¤Î API »ÅÍͤò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ API ¤Ë¤Ä¤¤¤Æ¡¢¥³¡¼¥ÉÎã¤è¤ê¤â»ÅÍͤ˽ÅÅÀ¤ò¤ª¤¤¤¿´Êñ¤ÊÀâÌÀ¤òÆɤळ¤È¤¬¤Ç¤­¤Þ¤¹¡£ +
+ +

¥ê¥ê¡¼¥¹¥Î¡¼¥È

+ +
+ ¤³¤Î¥ê¥ê¡¼¥¹¤Ë´Ø¤¹¤ëÄɲþðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢Java Software Web ¥µ¥¤¥È¤Î Java SE 6 ¥ê¥ê¡¼¥¹¥Î¡¼¥È¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¥ª¥ó¥é¥¤¥óÈǤΥê¥ê¡¼¥¹¥Î¡¼¥È¤Ï¿ï»þ¹¹¿·¤µ¤ì¤ë¤Î¤Ç¡¢Äê´üŪ¤Ë¥¢¥¯¥»¥¹¤·¤ÆºÇ¿·¤Î¾ðÊó¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +

¸ß´¹À­

+ +
+ ¸ß´¹À­¤Ë´Ø¤¹¤ë´ûÃΤÎÌäÂê¤Ë¤Ä¤¤¤Æ¤Ï¡¢Java Software Web ¥µ¥¤¥È¤Ç°ÊÁ°¤Î¥ê¥ê¡¼¥¹¤È¤Î¸ß´¹À­¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î JavaTM ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÍѤ˵­½Ò¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î¥µ¥Ý¡¼¥È¤Ë¤Ä¤¤¤Æ¤ÏËüÁ´¤ò´ü¤·¤Æ¤¤¤Þ¤¹¡£¸ß´¹À­¤ò¼º¤¦Êѹ¹¤¬É¬Íפʲսê¤â¤¢¤ê¤Þ¤·¤¿¤¬¡¢¤Û¤È¤ó¤É¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï¥×¥í¥°¥é¥ß¥ó¥°¤ò¤ä¤êľ¤¹¤³¤È¤Ê¤¯¸½ºß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë°Ü¹Ô¤Ç¤­¤Þ¤¹¡£¸ß´¹À­¤Ë´Ø¤¹¤ë Web ¥Ú¡¼¥¸¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¤è¤¦¤Ê°Õ¿ÞŪ¤Ë¸ß´¹À­¤òÇÓ½ü¤·¤¿¤ï¤º¤«¤Ê¾ì¹ç¤ò½ü¤¤¤Æ¡¢¥×¥í¥°¥é¥ß¥ó¥°¤ò¤ä¤êľ¤µ¤Ê¤¤¤È°Ü¹Ô¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¥Ð¥°¤Ç¤¢¤ë¤È¤ß¤Ê¤µ¤ì¤Þ¤¹¡£ÀøºßŪ¤Ê¥»¥­¥å¥ê¥Æ¥£¡¼¥Û¡¼¥ë¤ò¤Õ¤µ¤°¤¿¤á¡¢¤Þ¤¿¤Ï¼ÂÁõ¤äÀß·×¾å¤Î¥Ð¥°¤ò½¤Àµ¤¹¤ë¤¿¤á¤ËɬÍפÊÊѹ¹¤Ë¤è¤Ã¤Æ¡¢°ìÉô¤Î¸ß´¹À­¤¬¼º¤ï¤ì¤Æ¤¤¤Þ¤¹¡£ +
+ +

¥Ð¥°Êó¹ð¤È¥Õ¥£¡¼¥É¥Ð¥Ã¥¯

+ +
+ ¥Ð¥°¥Ç¡¼¥¿¥Ù¡¼¥¹ Web ¥µ¥¤¥È¤Ç¤Ï¡¢´û¸¤Î¥Ð¥°Êó¹ð¤Î¸¡º÷¤ÈÄ´ºº¡¢¥Ð¥°Êó¹ð¤ÎÁ÷¿®¡¢¥Ð¥°½¤Àµ¤Î½ÅÍ×ÅÙ¤ÎÊó¹ð¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥Ð¥°Êó¹ð¤äµ¡Ç½¤Ë´Ø¤¹¤ëÍ×˾¤òľÀÜÁ÷¿®¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¥Õ¥©¡¼¥à¤Ëµ­Æþ¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +
+ http://bugs.sun.com/services/bugreport/index.jsp +
+ +
+ ¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤Ï¡¢Java SE ¥É¥­¥å¥á¥ó¥È¥Á¡¼¥à¤ËÁ÷¿®¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤Þ¤¿¡¢Java Software ¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°¥Á¡¼¥à¤ÎÅŻҥ᡼¥ë¥¢¥É¥ì¥¹¤Ë¥³¥á¥ó¥È¤òľÀÜÁ÷¿®¤·¤Æ¤¤¤¿¤À¤¯¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ +
+ +
+Ãí - Bug Database ¤äÊÀ¼Ò³«È¯¥Á¡¼¥à¤«¤é¥Æ¥¯¥Ë¥«¥ë¥µ¥Ý¡¼¥È¤ò¼õ¤±¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¥µ¥Ý¡¼¥È¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢Java Software Web ¥µ¥¤¥È¤Î¥µ¥Ý¡¼¥È¤È¥µ¡¼¥Ó¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +

JDKTM ¤ÎÆâÍÆ

+ +
+¤³¤³¤Ç¤Ï¡¢JDKTM ¤Î¥Õ¥¡¥¤¥ë¤È¥Ç¥£¥ì¥¯¥È¥ê¤Î³µÍפòÀâÌÀ¤·¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤È¥Ç¥£¥ì¥¯¥È¥ê¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤ª»È¤¤¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î Java SE ¥É¥­¥å¥á¥ó¥È¤Î¡ÖJDK ¥Õ¥¡¥¤¥ë¹½Â¤¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +
+
+
+
³«È¯¥Ä¡¼¥ë
+ +
bin ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ JavaTM ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Çµ­½Ò¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î³«È¯¡¢¼Â¹Ô¡¢¥Ç¥Ð¥Ã¥°¡¢¤ª¤è¤Ó¥É¥­¥å¥á¥ó¥ÈºîÀ®¤ò»Ù±ç¤¹¤ë¥Ä¡¼¥ë¤È¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤Ç¤¹¡£ ¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢³Æ¥Ä¡¼¥ë¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

+ +
Runtime Environment
+ +
jre ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£JDK ¤Ç»ÈÍѤµ¤ì¤ë Java Runtime Environment (JRETM) ¼Â¹Ô´Ä¶­¤Î¼ÂÁõ¤Ç¤¹¡£ JRE¤Ë¤Ï¡¢JavaTM ²¾ÁÛ¥Þ¥·¥ó¡¢¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê¡¢¤ª¤è¤Ó JavaTM ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Çµ­½Ò¤µ¤ì¤¿¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤½¤Î¾¤Î¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Þ¤¹¡£

+ +
Äɲå饤¥Ö¥é¥ê
+ +
lib ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ³«È¯¥Ä¡¼¥ë¤ËɬÍפÊÄɲäΥ¯¥é¥¹¥é¥¤¥Ö¥é¥ê¤È¥µ¥Ý¡¼¥È¥Õ¥¡¥¤¥ë¤Ç¤¹¡£

+ +
¥Ç¥â¥¢¥×¥ì¥Ã¥È¤È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó
+ +
demo ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ JavaTM ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÍÑ¤Î¥×¥í¥°¥é¥ß¥ó¥°Îã¤Ç¡¢¥½¡¼¥¹¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Þ¤¹¡£ Swing ¤ä¤½¤Î¾¤Î JavaTM Foundation Classes¡¢¤ª¤è¤Ó JavaTM Platform Debugger Architecture ¤ò»ÈÍѤ¹¤ëÎã¤â´Þ¤Þ¤ì¤Þ¤¹¡£

+ +
¥µ¥ó¥×¥ë¥³¡¼¥É
+ +
sample ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ÆÃÄê¤Î Java API ¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Î¥½¡¼¥¹¥³¡¼¥ÉÉÕ¤­¥µ¥ó¥×¥ë¤Ç¤¹¡£
+ +
C ¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë
+ +
include ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Java Native Interface¡¢JVMTM Tool Interface¡¢¤ª¤è¤Ó¤½¤Î¾¤Î JavaTM Platform ¤Îµ¡Ç½¤ò»ÈÍѤ¹¤ë¥Í¥¤¥Æ¥£¥Ö¥³¡¼¥É¥×¥í¥°¥é¥ß¥ó¥°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥Ø¥Ã¥À¡¼¥Õ¥¡¥¤¥ë¤Ç¤¹¡£

+ +
¥½¡¼¥¹¥³¡¼¥É
+ +
src.zip ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Java ¥³¥¢ API ¤ò¹½À®¤¹¤ë¤¹¤Ù¤Æ¤Î¥¯¥é¥¹¤ËÂФ¹¤ë JavaTM ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤¹ (java.*¡¢javax.*¡¢¤ª¤è¤Ó°ìÉô¤Î org.* ¥Ñ¥Ã¥±¡¼¥¸¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¡£com.sun.* ¥Ñ¥Ã¥±¡¼¥¸¤ÏÂоݳ°)¡£¤³¤Î¥½¡¼¥¹¥³¡¼¥É¤Ï¾ðÊóÄ󶡤ΤߤòÌÜŪ¤È¤·¤Æ¤ª¤ê¡¢³«È¯¼Ô¤¬ JavaTM ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤òÍý²ò¤·³èÍѤ¹¤ë¤Î¤ËÌòΩ¤Á¤Þ¤¹¡£¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¸ÇÍ­¤Î¼ÂÁõ¥³¡¼¥É¤Ï´Þ¤Þ¤ì¤Þ¤»¤ó¡£¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Æ¡¢¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê¤òºÆ¹½ÃÛ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤òŸ³«¤¹¤ë¤Ë¤Ï¡¢°ìÈÌŪ¤Ê zip ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤ò»ÈÍѤ·¤Þ¤¹¡£ ¤Þ¤¿¡¢¼¡¤Î¤è¤¦¤Ë¡¢JDK ¤Î bin/ ¥Ç¥£¥ì¥¯¥È¥ê¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë Jar ¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

jar xvf src.zip
+
+
+
+ +

Java SE Runtime Environment (JRETM)

+ +
+JavaTM Runtime Environment (JRETM) ¤Ï¡¢Ã±ÆȤǥÀ¥¦¥ó¥í¡¼¥É¤Ç¤­¤ëÀ½ÉʤȤ·¤ÆÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥À¥¦¥ó¥í¡¼¥É Web ¥µ¥¤¥È¤ò»²¾È ¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +
+ JRE ¤ò»ÈÍѤ¹¤ë¤È¡¢JavaTM ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Çµ­½Ò¤µ¤ì¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¼Â¹Ô¤Ç¤­¤Þ¤¹¡£ JDKTM ¤ÈƱÍͤˡ¢JavaTM ²¾ÁÛ¥Þ¥·¥ó¡¢JavaTM ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à API ¤ò¹½À®¤¹¤ë¥¯¥é¥¹¡¢¤ª¤è¤Ó¥µ¥Ý¡¼¥È¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Þ¤¹¡£JDK ¤È¤Ï°Û¤Ê¤ê¡¢¥³¥ó¥Ñ¥¤¥é¤ä¥Ç¥Ð¥Ã¥¬¤Ê¤É¤Î³«È¯¥Ä¡¼¥ë¤Ï´Þ¤Þ¤ì¤Þ¤»¤ó¡£ +
+ +
+JRE ¤Ï¡¢JRE ¤Î¥é¥¤¥»¥ó¥¹¾ò¹à¤Ë½¾¤Ã¤Æ¡¢Æȼ«¤Ë³«È¯¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤È¤â¤Ë¼«Í³¤ËºÆÇÛÉÛ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£JDK ¤ò»ÈÍѤ·¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò³«È¯¤·¤¿¤Î¤Á¡¢¥¨¥ó¥É¥æ¡¼¥¶¡¼¤¬¤½¤Î¥½¥Õ¥È¥¦¥§¥¢¤ò JavaTM ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¼Â¹Ô¤Ç¤­¤ë¤è¤¦¤Ë¡¢JRE ¤È¤È¤â¤Ë½Ð²Ù¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +
+ +

ºÆÇÛÉÛ

+ +
+
+
+Ãí - ¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¥é¥¤¥»¥ó¥¹¤Ï¡¢¥Ù¡¼¥¿ÈǤª¤è¤Ó¤½¤Î¾¤Î¥×¥ì¥ê¥ê¡¼¥¹ÈǤκÆÇÛÉÛ¤òµö²Ä¤¹¤ë¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ +
+
+
+ +
+¥½¥Õ¥È¥¦¥§¥¢¥é¥¤¥»¥ó¥¹·ÀÌó¤Î¾ò¹à¡¢¤ª¤è¤Ó°Ê²¼¤Çµ¬Äꤵ¤ì¤ëµÁ̳¡¢À©¸Â¡¢¤ª¤è¤ÓÎã³°»ö¹à¤Ë½¾¤¤¡¢¥½¥Õ¥È¥¦¥§¥¢ (¤ª¤è¤Ó°Ê²¼¤ÇºÆÇÛÉÛ²Äǽ¤È¸«¤Ê¤µ¤ì¤ë¡¢¥½¥Õ¥È¥¦¥§¥¢¤Î°ìÉô) ¤òÊ£À½¤ª¤è¤ÓÇÛÉۤǤ­¤Þ¤¹¡£ +
+ +
+
    +
  1. ¥½¥Õ¥È¥¦¥§¥¢¤ò´°Á´¤Ê²þÊѤµ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ǡ¢¤«¤Ä¥¢¥×¥ì¥Ã¥È¤ª¤è¤Ó¥¢¥×¥ê¥±¡¼¥·¥ç¥ó (¡Ö¥×¥í¥°¥é¥à¡×) ¤Î°ìÉô¤È¤·¤Æ¥Ð¥ó¥É¥ë¤µ¤ì¤¿¾õÂ֤ǤΤßÇÛÉÛ¤¹¤ë¡£
  2. + +
  3. ¥×¥í¥°¥é¥à¤¬½ÅÍפ«¤Ä¼çÍפʵ¡Ç½¤ò¥½¥Õ¥È¥¦¥§¥¢¤ËÄɲ乤롣
  4. + +
  5. ¥×¥í¥°¥é¥à¤¬ Java Âбþ¤ÎÈÆÍѥǥ¹¥¯¥È¥Ã¥×¥³¥ó¥Ô¥å¡¼¥¿¤ª¤è¤Ó¥µ¡¼¥Ð¡¼¤Ç¼Â¹Ô¤µ¤ì¤ë¤³¤È¤Î¤ß¤òÌÜŪ¤È¤¹¤ë¡£
  6. + +
  7. ¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤Î¤ß¤òÌÜŪ¤È¤·¤Æ¡¢¥½¥Õ¥È¥¦¥§¥¢¤òÇÛÉÛ¤¹¤ë¡£
  8. + +
  9. ¥½¥Õ¥È¥¦¥§¥¢¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÈÃÖ¤­´¹¤¨¤ë¤³¤È¤òÌÜŪ¤È¤·¤ÆÄɲäΥ½¥Õ¥È¥¦¥§¥¢¤òÇÛÉÛ¤·¤Ê¤¤¡£
  10. + +
  11. ¥½¥Õ¥È¥¦¥§¥¢¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¤¤¤«¤Ê¤ë½êÍ­¸¢É½¼¨¤ä¹ðÃΤâ½üµî¤Þ¤¿¤ÏÊѹ¹¤·¤Ê¤¤¡£
  12. + +
  13. ËÜ·ÀÌó¤Ë´Þ¤Þ¤ì¤ë¾ò¹à¤È¹çÃפ·¤¿¡¢Sun ¤ÎÍø±×¤òÊݸ¤ë¥é¥¤¥»¥ó¥¹·ÀÌó¤Ë½¾¤Ã¤Æ¤Î¤ß¥½¥Õ¥È¥¦¥§¥¢¤òÇÛÉÛ¤¹¤ë¡£
  14. + +
  15. ¥×¥í¥°¥é¥à¤ª¤è¤Ó¥½¥Õ¥È¥¦¥§¥¢¤Î°ìÉô¤Þ¤¿¤Ï¤¹¤Ù¤Æ¤Î»ÈÍѤ¢¤ë¤¤¤ÏÇÛÉۤ˵¯°ø¤·¤¿Âè»°¼Ô¤«¤é¤ÎÀÁµá¡¢Áʾ١¢¤Þ¤¿¤ÏÁ¼Ã֤˴ØÏ¢¤·¤ÆÀ¸¤¸¤ë¤¤¤«¤Ê¤ë»³²¡¢ÈñÍÑ¡¢ºÄ̳¡¢Ï²ò¶â¡¢¤ª¤è¤Ó½ÐÈñ (ÊÛ¸î»ÎÈñÍѤò´Þ¤à) ¤«¤é¡¢Sun ¤È¤½¤Î¥é¥¤¥»¥ó¥µ¤òÍʸ¡¢Êä½þ¤¹¤ë¤³¤È¤ËƱ°Õ¤¹¤ë¡£
  16. +
+
+ +
+¤³¤³¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë¡Ö¥Ù¥ó¥À¡¼¡×¤È¤¤¤¦ÍѸì¤Ï¡¢¼«¤é¤Î¥×¥í¥°¥é¥à¤È¤È¤â¤Ë JavaTM Development Kit (JDKTM) ¤ò¥é¥¤¥»¥ó¥¹¶¡Í¿¤ª¤è¤ÓÇÛÉÛ¤¹¤ë¥é¥¤¥»¥ó¥·¡¢³«È¯¼Ô¡¢¤ª¤è¤ÓÆÈΩ·Ï¥½¥Õ¥È¥¦¥§¥¢¥Ù¥ó¥À¡¼ (ISV) ¤ò»Ø¤·¤Þ¤¹¡£ +
+ +
+¥Ù¥ó¥À¡¼¤Ï¡¢Java Development Kit ¥Ð¥¤¥Ê¥ê¥³¡¼¥É¥é¥¤¥»¥ó¥¹·ÀÌó¤Î¾ò¹à¤Ë½¾¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ +
+ +

ɬ¿Ü¥Õ¥¡¥¤¥ë¤È¥ª¥×¥·¥ç¥ó¥Õ¥¡¥¤¥ë

+ +
+JavaTM Development Kit (JDKTM) ¤ò¹½À®¤¹¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢É¬¿Ü¤È¥ª¥×¥·¥ç¥ó¤Î 2 ¤Ä¤ËʬÎव¤ì¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ù¥ó¥À¡¼¤ÎȽÃǤˤè¤ê JDK ¤ÎºÆÇÛÉÛ¤«¤é½ü³°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +
+ +
+JDK ¤ÎºÆÇÛÉÛ¤«¤éǤ°Õ¤Ç½ü³°¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¤ª¤è¤Ó¥Ç¥£¥ì¥¯¥È¥ê¤ò¼¡¤Ë¼¨¤·¤Þ¤¹¡£¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¥Õ¥¡¥¤¥ë°ìÍ÷¤Ë´Þ¤Þ¤ì¤Ê¤¤¥Õ¥¡¥¤¥ë¤Ï¡¢¤¹¤Ù¤Æ JDK ¤ÎºÆÇÛÉۤ˴ޤá¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +
+ +

¥ª¥×¥·¥ç¥ó¤Î¥Õ¥¡¥¤¥ë¤È¥Ç¥£¥ì¥¯¥È¥ê

+ +
+¼¡¤Î¥Õ¥¡¥¤¥ë¤ÏºÆÇÛÉÛ¤«¤éǤ°Õ¤Ë½ü³°¤Ç¤­¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢jdk1.6.0_<version> ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡£<version> ¤Ï¡¢¥¢¥Ã¥×¥Ç¡¼¥È¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ç¤¹¡£ SolarisTM ¤ª¤è¤Ó Linux ¤Î¥Õ¥¡¥¤¥ë̾¤È¶èÀڤ국¹æ¤¬¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Windows ¤Î¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë¤Ë¤ÏËöÈø¤Ë¡Ö.exe¡×¤¬ÉÕ¤­¤Þ¤¹¡£Ì¾Á°¤Ë _g ¤¬ÉÕ¤¯Âбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤â½ü³°¤Ç¤­¤Þ¤¹¡£ ½ü³°¤µ¤ì¤¿¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë ¡ÊSolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ª¤è¤Ó Linux ¤Î¾ì¹ç¡¢°Ê²¼¤Î°ìÍ÷¤Ç¥Ñ¥¹¤¬ bin/ ¤«¤é»Ï¤Þ¤ë) ¤ËÂбþ¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï½ü³°¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +
+ +
+
+
+
jre/lib/charsets.jar
+ +
ʸ»úÊÑ´¹¥¯¥é¥¹
+ +
jre/lib/ext/
+ +
sunjce_provider.jar - Java °Å¹æ²½ API ¤Î SunJCE ¥×¥í¥Ð¥¤¥À
localedata.jar - Êƹñ±Ñ¸ì°Ê³°¤Î¥í¥±¡¼¥ë¤ËɬÍפʥ꥽¡¼¥¹¤Î¿¤¯¤ò´Þ¤à
ldapsec.jar - LDAP ¥µ¡¼¥Ó¥¹¥×¥í¥Ð¥¤¥À¤¬¥µ¥Ý¡¼¥È¤¹¤ë¥»¥­¥å¥ê¥Æ¥£¡¼µ¡Ç½¤ò´Þ¤à
dnsns.jar - JNDI DNS ¥×¥í¥Ð¥¤¥À¤Î InetAddress ¥é¥Ã¥Ñ¡¼ÍÑ
+ +
bin/rmid ¤ª¤è¤Ó jre/bin/rmid
+ +
Java RMI µ¯Æ°¥·¥¹¥Æ¥à¥Ç¡¼¥â¥ó
+ +
bin/rmiregistry ¤ª¤è¤Ó jre/bin/rmiregistry
+ +
Java ¥ê¥â¡¼¥È¥ª¥Ö¥¸¥§¥¯¥È¥ì¥¸¥¹¥È¥ê
+ +
bin/tnameserv ¤ª¤è¤Ó jre/bin/tnameserv
+ +
Java IDL ¥Í¡¼¥à¥µ¡¼¥Ð¡¼
+ +
bin/keytool ¤ª¤è¤Ó jre/bin/keytool
+ +
¸°¤ª¤è¤Ó¾ÚÌÀ½ñ¤Î´ÉÍý¥Ä¡¼¥ë
+ +
bin/kinit ¤ª¤è¤Ó jre/bin/kinit
+ +
Kerberos ¥Á¥±¥Ã¥Èǧ²Ä¥Á¥±¥Ã¥È¤Î¼èÆÀ¤ª¤è¤Ó¥­¥ã¥Ã¥·¥å¤Ë»ÈÍÑ
+ +
bin/klist ¤ª¤è¤Ó jre/bin/klist
+ +
»ñ³Ê¥­¥ã¥Ã¥·¥å¤ª¤è¤Ó¥­¡¼¥¿¥ÖÆâ¤Î Kerberos ɽ¼¨¥¨¥ó¥È¥ê
+ +
bin/ktab ¤ª¤è¤Ó jre/bin/ktab
+ +
Kerberos ¥­¡¼¥Æ¡¼¥Ö¥ë¥Þ¥Í¡¼¥¸¥ã¡¼
+ +
bin/policytool ¤ª¤è¤Ó jre/bin/policytool
+ +
¥Ý¥ê¥·¡¼¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤ª¤è¤Ó´ÉÍý¥Ä¡¼¥ë
+ +
bin/orbd ¤ª¤è¤Ó jre/bin/orbd
+ +
Object Request Broker Daemon
+ +
bin/servertool ¤ª¤è¤Ó jre/bin/servertool
+ +
Java IDL ¥µ¡¼¥Ð¡¼¥Ä¡¼¥ë
+ +
bin/javaws¡¢jre/bin/javaws¡¢jre/lib/javaws/ ¤ª¤è¤Ó jre/lib/javaws.jar
+ +
Java Web Start
+ +
db/
+ +
+ Java DB¡£Sun Microsystems ¤¬ÇÛÉÛ¤¹¤ë Apache Derby ¥Ç¡¼¥¿¥Ù¡¼¥¹¥Æ¥¯¥Î¥í¥¸¡¼¤Ç¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï°Ê²¼¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ + +
    +
  • Solaris: /opt/SUNWjavadb
  • + +
  • Linux: /opt/sun/javadb
  • + +
  • Windows: C:\Program Files\Sun\JavaDB
  • +
¥æ¡¼¥¶¡¼¥É¥­¥å¥á¥ó¥È¤ä API ¥É¥­¥å¥á¥ó¥È¡¢Java DB ¤Îµ¡Ç½¤ä¤½¤Î¾¥ê¥½¡¼¥¹¤Ê¤É¤Î Java DB ¤È Derby ¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¾åµ­¥Ç¥£¥ì¥¯¥È¥ê¤Î index.html ¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +
demo/
+ +
¥Ç¥â¥¢¥×¥ì¥Ã¥È¤È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó
+ +
sample/
+ +
¥µ¥ó¥×¥ë¥³¡¼¥É
+ +
src.zip
+ +
¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î¥¢¡¼¥«¥¤¥Ö
+
+
+
+ +

ºÆÇÛÉÛ²Äǽ¤Ê JDKTM ¥Õ¥¡¥¤¥ë

+ +
+ ¼¡¤Ë¼¨¤¹ JDK ¤Î¥Õ¥¡¥¤¥ë¡¿¥Ç¥£¥ì¥¯¥È¥ê¥»¥Ã¥È¤Ï¡¢¥Ù¥ó¥À¡¼¤ÎÄ󶡤¹¤ë JavaTM Runtime Environment (JRETM) ¤ÎºÆÇÛÉۤ˴ޤá¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤³¤ì¤é¤ò¸ÄÊ̤˺ÆÇÛÉÛ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£¥Ð¡¼¥¸¥ç¥ó¤¬°ìÃפ¹¤ë JRE ¤È¤È¤â¤ËÇÛÉÛ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¼¡¤Î¥Ñ¥¹¤Ï¡¢¤¹¤Ù¤Æ JDK ¤ÎºÇ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤Ç¤¹¡£ ´Þ¤á¤é¤ì¤ë¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë ¡ÊSolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ª¤è¤Ó Linux ¤Î¾ì¹ç¡¢°Ê²¼¤Î°ìÍ÷¤Ç¥Ñ¥¹¤¬ bin/ ¤«¤é»Ï¤Þ¤ë) ¤ËÂбþ¤¹¤ë¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï´Þ¤á¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +
+ +
+
+
+
jre/lib/cmm/PYCC.pf
+ +
¥«¥é¡¼¥×¥í¥Õ¥¡¥¤¥ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢PYCC ¥«¥é¡¼Îΰè¤È¤½¤Î¾¤Î¥«¥é¡¼Îΰè¤Î´Ö¤ÇÊÑ´¹¤ò¹Ô¤¦¾ì¹ç¤Ë¤Î¤ßɬÍפǤ¹¡£
+ +
jre/lib/fonts ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¤¹¤Ù¤Æ¤Î .ttf ¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë
+ +
LucidaSansRegular.ttf ¥Õ¥©¥ó¥È¤Ï¤¹¤Ç¤Ë JRE ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¡¢JDK ¤«¤é¼èÆÀ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
+ +
jre/lib/audio/soundbank.gm
+ +
¤³¤Î MIDI ¥µ¥¦¥ó¥É¥Ð¥ó¥¯¤Ï JDK ¤Ë´Þ¤Þ¤ì¤Þ¤¹¤¬¡¢JRE ¤«¤éºï½ü¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï JRE ¤Î¥À¥¦¥ó¥í¡¼¥É¥Ð¥ó¥É¥ë¤Î¥µ¥¤¥º¤ò¸º¤é¤¹¤³¤È¤¬ÌÜŪ¤Ç¤¹¡£ ¤¿¤À¤·¡¢¥µ¥¦¥ó¥É¥Ð¥ó¥¯¥Õ¥¡¥¤¥ë¤Ï MIDI ¤ÎºÆÀ¸¤ËɬÍפʤ¿¤á¡¢¥Ù¥ó¥À¡¼¤ÎȽÃÇ¤Ç JDK ¤Î soundbank.gm ¥Õ¥¡¥¤¥ë¤ò JRE ¤ÎºÆÇÛÉۤ˴ޤá¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ³ÈÄ¥ MIDI ¥µ¥¦¥ó¥É¥Ð¥ó¥¯¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤ò Java Sound Web ¥µ¥¤¥È http://java.sun.com/products/java-media/sound/ ¤ÇÆþ¼ê¤Ç¤­¤Þ¤¹¡£¤³¤ì¤é¤ÎÂåÂؤΥµ¥¦¥ó¥É¥Ð¥ó¥¯¤Ï¤É¤ì¤â¡¢JRE ¤ÎºÆÇÛÉۤ˴ޤá¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+ +
javac ¥Ð¥¤¥È¥³¡¼¥É¥³¥ó¥Ñ¥¤¥é¡£°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£
+ +
bin/javac [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ª¤è¤Ó Linux]
bin/sparcv9/javac [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (SPARC(R) ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÈÇ)]
bin/amd64/javac [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (AMD)]
bin/javac.exe [Microsoft Windows]
lib/tools.jar [¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à]
+ +
Annotation Processing Tool¡£°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£
+ +
lib/tools.jar [¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à]
bin/apt [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ª¤è¤Ó Linux]
bin/sparcv9/apt [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (SPARC(R) ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÈÇ)]
bin/amd64/apt [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (AMD)]
bin/apt.exe [Microsoft Windows]
+ +
lib/jconsole.jar
+ +
Jconsole ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡£Ãí: Jconsole ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ÏưŪ¥¢¥¿¥Ã¥Áµ¡¹½¤¬É¬ÍפǤ¹¡£
+ +
ưŪ¥¢¥¿¥Ã¥Áµ¡¹½¤Ï¡¢°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£
+ +
lib/tools.jar [¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à]
jre/lib/sparc/libattach.so [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (SPARC(R) ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÈÇ) ¤ª¤è¤Ó Linux]
jre/lib/sparcv9/libattach.so [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (SPARC(R) ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÈÇ) ¤ª¤è¤Ó Linux]
jre/lib/i386/libattach.so [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (x86) ¤ª¤è¤Ó Linux]
jre/lib/amd64/libattach.so [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (AMD) ¤ª¤è¤Ó Linux]
jre\bin\attach.dll [Microsoft Windows]
+ +
Java Platform Debugger Architecture ¤Î¼ÂÁõ¤Ï¡¢¾å¤ÎưŪ¥¢¥¿¥Ã¥Á¤Ç¼¨¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¢¤ª¤è¤Ó°Ê²¼¤Î¥Õ¥¡¥¤¥ë¤Ç¹½À®¤µ¤ì¤Þ¤¹¡£
+ +
lib/tools.jar [¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à]
lib/sa-jdi.jar [¤¹¤Ù¤Æ¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à]
jre/lib/sparc/libsaproc.so [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (SPARC(R) ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÈÇ) ¤ª¤è¤Ó Linux]
jre/lib/sparcv9/libsaproc.so [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (SPARC(R) ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÈÇ) ¤ª¤è¤Ó Linux]
jre/lib/i386/libsaproc.so [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (x86) ¤ª¤è¤Ó Linux]
jre/lib/amd64/libsaproc.so [SolarisTM ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à (AMD) ¤ª¤è¤Ó Linux]
+ +
jre\bin\server\
+ +
Microsoft Windows ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¡¢JDK ¤Ë Java HotSpotTM Server VM ¤È Java HotSpotTM Client VM ¤ÎξÊý¤¬´Þ¤Þ¤ì¤Þ¤¹¡£¤¿¤À¤·¡¢Microsoft Windows ¥×¥é¥Ã¥È¥Õ¥©¡¼¥àÈǤΠJRE ¤Ë¤Ï Java HotSpotTM Client VM ¤·¤«´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£Java HotSpotTM Server VM ¤ò JRE ¤Ç»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢JDK ¤Î jre\bin\server ¥Õ¥©¥ë¥À¤ò JRE ¤Î bin\server ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£¥½¥Õ¥È¥¦¥§¥¢¥Ù¥ó¥À¡¼¤Ï¡¢JRE ¤ÎºÆÇÛÉۤκݤˡ¢Java HotSpotTM Server VM ¤òºÆÇÛÉÛ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
+
+
+
+ +

̵À©¸Â¶¯ÅÙ Java °Å¹æ²½³ÈÄ¥µ¡Ç½

+ +
+°ìÉô¤Î¹ñ¤ÎÍ¢Æþµ¬À©¤ËÂбþ¤¹¤ë¤¿¤á¡¢JDK ¤ª¤è¤Ó JRE ¤È¤È¤â¤Ë½Ð²Ù¤µ¤ì¤ë Java °Å¹æ²½³ÈÄ¥µ¡Ç½ (JCE) ¤Î¥Ý¥ê¥·¡¼¥Õ¥¡¥¤¥ë¤Ï¡¢¶¯ÎϤǤϤ¢¤Ã¤Æ¤âÀ©¸ÂÉÕ¤­¤Î°Å¹æÊý¼°¤Î»ÈÍѤ·¤«µö²Ä¤·¤Æ¤¤¤Þ¤»¤ó¡£ ¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¼¡¤Î¾ì½ê¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+
<java-home>/lib/security/local_policy.jar
<java-home>/lib/security/US_export_policy.jar

<java-home> ¤Ï¡¢JDK ¤Î jre ¥Ç¥£¥ì¥¯¥È¥ê¤Þ¤¿¤Ï JRE ¤ÎºÇ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡£
+ +
+µ¬À©¤ò¼õ¤±¤Ê¤¤¹ñ¤Î¥æ¡¼¥¶¡¼¤Î¤¿¤á¤Ë¡¢°Å¹æ²½¶¯ÅÙ¤ËÀ©¸Â¤Î¤Ê¤¤ÌµÀ©¸Â¶¯Å٥С¼¥¸¥ç¥ó¤Î¥Õ¥¡¥¤¥ë¤¬ JDK Web ¥µ¥¤¥È¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Î¹ñ¤Î¥æ¡¼¥¶¡¼¤Ï¡¢ÌµÀ©¸Â¶¯Å٥С¼¥¸¥ç¥ó¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢¶¯ÎϰŹ沽 jar ¥Õ¥¡¥¤¥ë¤ò̵À©¸Â¶¯ÅÙ¥Õ¥¡¥¤¥ë¤ÇÃÖ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +
+ +

cacerts ¾ÚÌÀ½ñ¥Õ¥¡¥¤¥ë

+ +
+°Ê²¼¤Ë¤¢¤ë Java SE ¾ÚÌÀ½ñ¥Õ¥¡¥¤¥ë¤Ç¥ë¡¼¥Èǧ¾Ú¶É¾ÚÌÀ½ñ¤òÄɲäޤ¿¤Ïºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +
+ +
+<java-home>/lib/security/cacerts +
+ +
+ ¾ÜºÙ¤Ï keytool ¥É¥­¥å¥á¥ó¥È¤Î cacerts ¾ÚÌÀ½ñ¥Õ¥¡¥¤¥ë ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +

Java ¿ä¾©µ¬³Ê¥ª¡¼¥Ð¡¼¥é¥¤¥Éµ¡¹½

+ +
+ Java ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ï¡¢Java Community ProcessSM (JCPSMhttp://www.jcp.org/) °Ê³°¤ÇºîÀ®¤µ¤ì¤¿É¸½à (¿ä¾©É¸½à) ¤ÎºÇ¿·¥Ð¡¼¥¸¥ç¥ó¤òÁȤ߹þ¤à¤¿¤á¡¢¤Þ¤¿¤Ï¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë´Þ¤Þ¤ì¤ë¥Æ¥¯¥Î¥í¥¸¡¼¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¡¢¤½¤Î¥Æ¥¯¥Î¥í¥¸¡¼¤Î¿·¤·¤¤¥¹¥¿¥ó¥É¥¢¥í¥ó¥Ð¡¼¥¸¥ç¥ó (ɸ½à¥Æ¥¯¥Î¥í¥¸¡¼) ¤ËÂбþ¤µ¤»¤ë¤¿¤á¡¢Å¬µ¹¹¹¿·¤¬É¬ÍפǤ¹¡£ +
+ +
+¿ä¾©µ¬³Ê¥ª¡¼¥Ð¡¼¥é¥¤¥Éµ¡¹½¤ò»ÈÍѤ¹¤ì¤Ð¡¢Java ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ËÁȤ߹þ¤Þ¤ì¤ë²ÄǽÀ­¤Î¤¢¤ë¿ä¾©É¸½à¤ä¥¹¥¿¥ó¥É¥¢¥í¥ó¥Æ¥¯¥Î¥í¥¸¡¼¤ò¼ÂÁõ¤¹¤ë¡¢¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤Î¥¯¥é¥¹¤ä¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤Ǥ­¤Þ¤¹¡£ +
+ +
+¿ä¾©µ¬³Ê¥ª¡¼¥Ð¡¼¥é¥¤¥Éµ¡¹½¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Î¥µ¥¤¥È¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£Í¥Àè»ØÄê¤Ë»ÈÍѤǤ­¤ë¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¥Ñ¥Ã¥±¡¼¥¸¤Î°ìÍ÷¤â·ÇºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ +
+ +
+ http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/standards/ +
+ +

Java DB

+ +
+¤³¤ÎÇÛÉۤϡ¢Sun Microsystems ¤¬ÇÛÉÛ¤¹¤ë Apache Derby pure Java ¥Ç¡¼¥¿¥Ù¡¼¥¹¥Æ¥¯¥Î¥í¥¸¡¼¤Ç¤¢¤ë Java DB ¤ò¥Ð¥ó¥É¥ë¤·¤Æ¤¤¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï°Ê²¼¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ + +
    +
  • Solaris: /opt/SUNWjavadb
  • + +
  • Linux: /opt/sun/javadb
  • + +
  • Windows: C:\Program Files\Sun\JavaDB
  • +
+ +

¥æ¡¼¥¶¡¼¥É¥­¥å¥á¥ó¥È¤ä API ¥É¥­¥å¥á¥ó¥È¡¢Java DB ¤Îµ¡Ç½¤ä¤½¤Î¾¥ê¥½¡¼¥¹¤Ê¤É¤Î Java DB ¤È Derby ¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¾åµ­¥Ç¥£¥ì¥¯¥È¥ê¤Î index.html ¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

+
+ +

Web ¥Ú¡¼¥¸

+ +
+¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Î Sun Microsystems ¤Î Web ¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ +
+ +
+
+
+
http://java.sun.com/
+ +
Java Software Web ¥µ¥¤¥È¡£Java ¥Æ¥¯¥Î¥í¥¸¡¢À½ÉʾðÊ󡢥˥塼¥¹¡¢¤ª¤è¤Óµ¡Ç½¤Ë¤Ä¤¤¤Æ¤ÎºÇ¿·¾ðÊ󤬷Ǻܤµ¤ì¤Æ¤¤¤Þ¤¹¡£
+ +
http://java.sun.com/docs
+ +
JavaTM ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î¥É¥­¥å¥á¥ó¥È¡£¥Û¥ï¥¤¥È¥Ú¡¼¥Ñ¡¼¤ä Java ¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ê¤É¤Î¥É¥­¥å¥á¥ó¥È¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£
+ +
http://developer.java.sun.com
+ +
Developer Services Web ¥µ¥¤¥È¡£(̵ÎÁ¤ÎÅÐÏ¿¤¬É¬Íס£) µ»½Ñ¾ðÊ󡢥˥塼¥¹¡¢¤ª¤è¤Óµ¡Ç½¤Î¾ÜºÙ¾ðÊ󡢥桼¥¶¡¼¥Õ¥©¡¼¥é¥à¡¢¥µ¥Ý¡¼¥È¾ðÊó¤Ê¤É¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£
+ +
http://java.sun.com/products/
+ +
Java ¥Æ¥¯¥Î¥í¥¸À½ÉÊ¤È API
+
+
+
+
+ +

JavaTM Development Kit (JDKTM) ¤Ï Sun MicrosystemsTM, Inc. ¤ÎÀ½ÉʤǤ¹¡£

Copyright © 2009 Sun Microsystems, Inc.
4150 Network Circle, Santa Clara, California 95054, U.S.A.
All rights reserved.

+ + + + diff --git a/extra/source/jdk-6/README_zh_CN.html b/extra/source/jdk-6/README_zh_CN.html new file mode 100644 index 000000000..e3b943e2e --- /dev/null +++ b/extra/source/jdk-6/README_zh_CN.html @@ -0,0 +1,507 @@ + + + + + + +×ÔÊöÎļþ -- Java Platform, Standard Edition Development Kit + + + +

×ÔÊöÎļþ

+ +

JavaTM Platform, Standard Edition 6
Development Kit

+ +

JDKTM 6

+ +

Ŀ¼

+ + + +

¼ò½é

+ +
+¸ÐлÄúÏÂÔØ´Ë°æ±¾µÄ JavaTM Platform, Standard Edition Development Kit (JDKTM)¡£JDK ÊÇÒ»ÖÖ¿ª·¢»·¾³£¬ÓÃÓÚʹÓà Java ±à³ÌÓïÑÔÉú³ÉÓ¦ÓóÌÐò¡¢applet ºÍ×é¼þ¡£ +
+ +
+JDK °üº¬µÄ¹¤¾ß¿ÉÓÃÓÚ¿ª·¢ºÍ²âÊÔÒÔ Java ±à³ÌÓïÑÔ±àд²¢ÔÚ JavaTM ƽ̨ÉÏÔËÐеijÌÐò¡£ +
+ +

ϵͳҪÇóÓë°²×°

+ +
+ϵͳҪÇó¡¢°²×°ËµÃ÷ºÍ¹ÊÕÏÅųýÌáʾλÓÚ Java Èí¼þ Web Õ¾µãÉϵÄÒÔÏÂλÖ㺠+
+ +
+JDK 6 °²×°ËµÃ÷ +
+ +

JDKTM Îĵµ

+ +
+Áª»ú JavaTM Platform, Standard Edition (Java SE) Îĵµ°üº¬ API ˵Ã÷¡¢¹¦ÄܽéÉÜ¡¢¿ª·¢ÕßÖ¸ÄÏ¡¢JDKTM ¹¤¾ßºÍʵÓóÌÐòµÄ²Î¿¼Ò³Ãæ¡¢ÑÝʾ³ÌÐòÒÔ¼°Ö¸ÏòÏà¹ØÐÅÏ¢µÄÁ´½Ó¡£´ËÎĵµ»¹ÒÔÏÂÔØ°üµÄÐÎʽÌṩ£¬Äú¿ÉÒÔ½«´Ë°ü°²×°ÔÚ¼ÆËã»úÉÏ¡£Òª»ñµÃ¸ÃÎĵµ°ü£¬Çë²Î¼ûÏÂÔØÒ³Ãæ¡£ÓÐ¹Ø API ÎĵµµÄÐÅÏ¢£¬Çë²ÎÔÄ JavaTM Platform, Standard Edition API ˵Ã÷¡£¸ÃÒ³ÃæÌṩÁË API µÄ¼òÒª½éÉÜ£¬ÆäÖÐÖصã½éÉÜÁË API ˵Ã÷¶ø·Ç´úÂëʾÀý¡£ +
+ +

·¢ÐÐ˵Ã÷

+ +
+Óйش˰汾µÄÆäËûÐÅÏ¢£¬Çë²Î¼û Java Èí¼þ Web Õ¾µãÉ쵀 Java SE 6 ·¢ÐÐ˵Ã÷¡£ÓÉÓÚÁª»ú·¢ÐÐ˵Ã÷½«¸ù¾ÝÐèÒª½øÐиüУ¬Òò´ËÇë²»¶¨Æڲ鿴Áª»ú·¢ÐÐ˵Ã÷ÒÔÁ˽â×îÐÂÐÅÏ¢¡£ +
+ +

¼æÈÝÐÔ

+ +
+ÓйØÒÑÖªµÄ¼æÈÝÐÔÎÊÌâÁÐ±í£¬Çë²Î¼û Java Èí¼þ Web Õ¾µãÉÏÓëÔçÆÚ°æ±¾µÄ¼æÈÝÐÔ¡£ÎÒÃÇÒѾ¡Á¦Ö§³ÖΪÔçÆÚ°æ±¾µÄ JavaTM ƽ̨±àдµÄ³ÌÐò¡£¾¡¹Ü±ØÈ»»áÓÐijЩ²»¼æÈݵĸü¸Ä£¬µ«´ó²¿·ÖÈí¼þ¶¼Äܹ»ÔÚ²»ÖØбà³ÌµÄÇé¿öÏÂǨÒƵ½µ±Ç°°æ±¾¡£³ýÁËÔÚ¼«ÉÙÊýÇé¿öÏÂÓÐÒâ²»±£³Ö¼æÈÝ£¨ÈçÎÒÃǵļæÈÝÐÔ Web Ò³ÖÐËùÊö£©ÒÔÍ⣬Èç¹û×ö²»µ½ÕâÒ»µã£¬½«±»ÈÏΪÊÇÒ»¸ö´íÎó¡£Ö®ËùÒÔ´æÔÚһЩÆÆ»µ¼æÈÝÐԵĸü¸Ä£¬ÊÇÒòΪÐèÒªÃÖ²¹Ç±Ôڵݲȫ©¶´»òÐÞ¸´ÊµÏÖ»òÉè¼Æ´íÎó¡£ +
+ +

´íÎ󱨸æÓë·´À¡

+ +
+´íÎóÊý¾Ý¿â Web Õ¾µãʹÄú¿ÉÒÔËÑË÷ºÍ¼ì²éÏÖÓеĴíÎ󱨸桢Ìá½»Äú×Ô¼ºµÄ´íÎ󱨸æÒÔ¼°Í¨ÖªÎÒÃÇÄú×îÏ£ÍûÐÞ¸´ÄÄЩ´íÎó¡£ÒªÖ±½ÓÌá½»´íÎó»òÇëÇó¹¦ÄÜ£¬ÇëÌîдÒÔÏÂ±íµ¥£º +
+ +
+http://bugs.sun.com/services/bugreport/index.jsp +
+ +
+Äú¿ÉÒÔÏò Java SE ÎĵµÐ¡×é·¢ËÍ·´À¡£¬Ò²¿ÉÒÔÖ±½ÓÏò Java Èí¼þ¹¤³ÌС×éµÄµç×ÓÓʼþµØÖ··¢ËÍÒâ¼û¡£ +
+ +
+×¢ - Ç벻Ҫͨ¹ý´íÎóÊý¾Ý¿â»òÎÒÃǵĿª·¢ÍŶÓÑ°Çó¼¼ÊõÖ§³Ö¡£ÓйؿÉÒÔÑ¡ÔñµÄÖ§³Ö·½Ê½£¬Çë²Î¼û Java Èí¼þ Web Õ¾µãÉϵÄÖ§³ÖÓë·þÎñ¡£ +
+ +

JDKTM µÄÄÚÈÝ

+ +
+±¾²¿·Ö¸ÅÀ¨½éÉÜÁË JDKTM ÖеÄÎļþºÍĿ¼¡£ÓйØÕâЩÎļþºÍĿ¼µÄÏêϸÐÅÏ¢£¬Çë²Î¼ûÊÊÓÃÓÚÄúµÄƽ̨µÄ Java SE ÎĵµµÄ JDK Îļþ½á¹¹²¿·Ö¡£ +
+ +
+
+
+
¿ª·¢¹¤¾ß
+ +
£¨Î»ÓÚ bin/ ×ÓĿ¼ÖУ©Ö¸¹¤¾ßºÍʵÓóÌÐò£¬¿É°ïÖúÄú¿ª·¢¡¢Ö´ÐС¢µ÷ÊԺͱ£´æÒÔ JavaTM ±à³ÌÓïÑÔ±àдµÄ³ÌÐò¡£ÓйØÏêϸÐÅÏ¢£¬Çë²Î¼û¹¤¾ßÎĵµ¡£

+ +
ÔËÐÐʱ»·¾³
+ +
£¨Î»ÓÚ jre/ ×ÓĿ¼ÖУ©ÓÉ JDK ʹÓÃµÄ Java Runtime Environment (JRETM) µÄʵÏÖ¡£JRE °üÀ¨ JavaTM ÐéÄâ»ú (JVMTM)¡¢Àà¿âÒÔ¼°ÆäËûÖ§³ÖÖ´ÐÐÒÔ JavaTM ±à³ÌÓïÑÔ±àдµÄ³ÌÐòµÄÎļþ¡£

+ +
¸½¼Ó¿â
+ +
£¨Î»ÓÚ lib/ ×ÓĿ¼ÖУ©¿ª·¢¹¤¾ßËùÐèµÄÆäËûÀà¿âºÍÖ§³ÖÎļþ¡£

+ +
ÑÝʾ applet ºÍÓ¦ÓóÌÐò
+ +
£¨Î»ÓÚ demo/ ×ÓĿ¼ÖУ©JavaTM ƽ̨µÄ±à³ÌʾÀý£¨´øÔ´´úÂ룩¡£ÕâЩʾÀý°üÀ¨Ê¹Óà Swing ºÍÆäËû JavaTM »ùÀàÒÔ¼° JavaTM ƽ̨µ÷ÊÔÆ÷Ìåϵ½á¹¹µÄʾÀý¡£

+ +
ÑùÀý´úÂë
+ +
£¨Î»ÓÚ sample ×ÓĿ¼ÖУ©Ä³Ð© Java API µÄ±à³ÌÑùÀý£¨´øÔ´´úÂ룩¡£

+ +
C Í·Îļþ
+ +
£¨Î»ÓÚ include/ ×ÓĿ¼ÖУ©Ö§³ÖʹÓà Java ±¾»ú½çÃæ¡¢JVMTM ¹¤¾ß½çÃæÒÔ¼° JavaTM ƽ̨µÄÆäËû¹¦ÄܽøÐб¾»ú´úÂë±à³ÌµÄÍ·Îļþ¡£

+ +
Ô´´úÂë
+ +
£¨Î»ÓÚ src.zip ÖУ©×é³É Java ºËÐÄ API µÄËùÓÐÀàµÄ JavaTM ±à³ÌÓïÑÔÔ´Îļþ£¨¼´£¬java.*¡¢javax.* ºÍijЩ org.* °üµÄÔ´Îļþ£¬µ«²»°üÀ¨ com.sun.* °üµÄÔ´Îļþ£©¡£´ËÔ´´úÂë½ö¹©²Î¿¼£¬ÒÔ±ã°ïÖú¿ª·¢ÕßѧϰºÍʹÓà JavaTM ±à³ÌÓïÑÔ¡£ÕâЩÎļþ²»°üº¬Ìض¨ÓÚƽ̨µÄʵÏÖ´úÂ룬ÇÒ²»ÄÜÓÃÓÚÖØÐÂÉú³ÉÀà¿â¡£Òª¶ÔÕâЩÎļþ½øÐнâѹ£¬ÇëʹÓÃÈÎÒ»³£ÓÃµÄ zip ʵÓóÌÐò£»»òÕßÒ²¿ÉÒÔʹÓÃλÓÚ JDK µÄ bin/ Ŀ¼ÖÐµÄ Jar ʵÓóÌÐò£º

jar xvf src.zip
+
+
+
+ +

Java Runtime Environment (JRETM)

+ +
+JavaTM Runtime Environment (JRETM) ÊÇÒ»¿î¿Éµ¥¶ÀÏÂÔصIJúÆ·¡£Çë²Î¼ûÏÂÔØ Web Õ¾µã¡£ +
+ +
+ͨ¹ý JRE£¬Äú¿ÉÒÔÔËÐÐÒÔ JavaTM ±à³ÌÓïÑÔ±àдµÄÓ¦ÓóÌÐò¡£Óë JDKTM ÏàËÆ£¬JRE °üº¬ JavaTM ÐéÄâ»ú (JVMTM)¡¢×é³É JavaTM ƽ̨ API µÄÀ༰֧³ÖÎļþ¡£Óë JDK ²»Í¬µÄÊÇ£¬Ëü²»°üº¬ÖîÈç±àÒëÆ÷ºÍµ÷ÊÔÆ÷ÕâÑùµÄ¿ª·¢¹¤¾ß¡£ +
+ +
+ÒÀÕÕ JRE Ðí¿ÉÖ¤Ìõ¿î£¬Äú¿ÉÒÔËæÒâµØ½« JRE ËæÓ¦ÓóÌÐòÒ»Æð½øÐÐÔÙ·Ö·¢¡£Ê¹Óà JDK ¿ª·¢Ó¦ÓóÌÐòºó£¬¿É½«ÆäÓë JRE Ò»Æð·¢ÐУ¬ÒÔ±ã×îÖÕÓû§¾ßÓпÉÔËÐÐÈí¼þµÄ JavaTM ƽ̨¡£ +
+ +

ÔÙ·Ö·¢

+ +
+
+
+×¢ - ±¾Èí¼þµÄÐí¿ÉÖ¤²»ÔÊÐíÔÙ·Ö·¢²âÊÔ°æºÍÆäËûÔ¤·¢Ðа汾¡£ +
+
+
+ +
+±ØÐë×ñÊØÈí¼þÐí¿ÉЭÒéµÄÌõ¿îºÍÌõ¼þÒÔ¼°ÏÂÃæÌá³öµÄÒåÎñ¡¢ÏÞÖƺÍÀýÍâ¡£ÔÚÏÂÁÐÇé¿öÏ£¬Äú¿ÉÒÔ¸´Öƺͷַ¢±¾Èí¼þ£¨ÒÔ¼°ÔÚÏÂÃæ±êʶΪ“¿ÉÔÙ·Ö·¢”µÄÈí¼þ²¿·Ö£©£º +
+ +
+
    +
  1. Äú½«ÍêÕûµØ·Ö·¢Èí¼þ¶ø²»ÄܽøÐÐÐ޸ģ¬²¢½ö×÷ΪÄúµÄ applet ºÍÓ¦ÓóÌÐò£¨³ÌÐò£©µÄÒ»²¿·Ö´ò°ü£»
  2. + +
  3. ÄúµÄ³ÌÐò½«Ïò±¾Èí¼þÌí¼ÓÖØÒªµÄÖ÷Òª¹¦ÄÜ£»
  4. + +
  5. ÄúµÄ³ÌÐò½öÓÃÓÚÔÚÆôÓÃÁË Java µÄÆÕͨ×ÀÃæ¼ÆËã»úºÍ·þÎñÆ÷ÉÏÔËÐУ»
  6. + +
  7. Äú·Ö·¢Èí¼þÖ»ÊÇΪÁËÔËÐÐÄúµÄ³ÌÐò£»
  8. + +
  9. Äú²»·Ö·¢ÆäËûÈí¼þÀ´Ìæ»»±¾Èí¼þµÄÈκÎ×é¼þ£»
  10. + +
  11. Äú²»É¾³ý»ò¸ü¸Ä±¾Èí¼þÖаüº¬µÄÈκÎרÓÃͼÀý»òÉùÃ÷£»
  12. + +
  13. ÄúÖ»°´ÕÕÖ¼ÔÚ±£»¤ Sun µÄÀûÒæµÄÐí¿ÉЭÒéÖеÄÌõ¿îÀ´·Ö·¢±¾Èí¼þ£»
  14. + +
  15. ÄúͬÒâά»¤ºÍ±£ÕÏ Sun ¼°ÆäÐí¿É·½µÄÀûÒ棬²»Ê¹Æä³Ðµ£ÒòµÚÈý·½Ê¹Óûò·Ö·¢ÈÎÒâºÍÈ«²¿³ÌÐòºÍ/»òÈí¼þ¶øÒýÆðµÄÅâ³¥¡¢ËßËÏ»ò³åÍ»Ëùµ¼ÖµÄÅâ³¥½ð¡¢ËßËÏ·Ñ¡¢Õ®ÎñºÍ/»òµ÷½â·Ñ£¨°üÀ¨ÂÉʦ·Ñ£©¡£
  16. +
+
+ +
+´Ë´¦Ê¹Óõē¹©Ó¦É̔һ´ÊÊÇÖ¸Ðí¿ÉÖ¤³ÖÓÐÈË¡¢¿ª·¢ÕßÒÔ¼°½« JavaTM Development Kit (JDKTM) ÓëÆä³ÌÐòÒ»ÆðÐí¿ÉºÍ·Ö·¢µÄ¶ÀÁ¢Èí¼þ¹©Ó¦ÉÌ (ISV)¡£ +
+ +
+¹©Ó¦É̱ØÐë×ñÊØ Java Development Kit ¶þ½øÖÆ´úÂëÐí¿ÉЭÒéµÄÌõ¿î¡£ +
+ +

±ØÒªÎļþÓë¿ÉÑ¡Îļþ

+ +
+×é³É JavaTM Development Kit (JDKTM) µÄÎļþ·ÖΪÁ½Àࣺ±ØÒªµÄºÍ¿ÉÑ¡µÄ¡£¿ÉÑ¡Îļþ¿ÉÒÔ²»°üº¬ÔÚ JDK µÄÔÙ·Ö·¢ÖУ¨Óɹ©Ó¦É̾ö¶¨£©¡£ +
+ +
+ÏÂÃæÒ»½ÚÁгöÁË¿ÉÒÔÑ¡Ôñ´Ó JDK µÄÔÙ·Ö·¢ÖÐÊ¡ÂÔµÄÎļþºÍĿ¼¡£Ã»ÓÐÁÐΪ¿ÉÑ¡ÎļþµÄËùÓÐÎļþ¶¼±ØÐë°üº¬ÔÚ JDK µÄÔÙ·Ö·¢ÖС£ +
+ +

¿ÉÑ¡ÎļþºÍĿ¼

+ +
+ÏÂÁÐÎļþ¿ÉÒÔ´ÓÔÙ·Ö·¢ÖÐÅųý¡£ÕâЩÎļþλÓÚ jdk1.6.0_<°æ±¾> Ŀ¼ÖУ¬ÆäÖÐ <°æ±¾> ÊÇ×îеİ汾ºÅ¡£½«ÏÔʾ SolarisTM ºÍ Linux µÄÎļþÃûºÍ·Ö¸ô·û¡£Windows ¿ÉÖ´ÐÐÎļþ¾ßÓÐ ".exe" ºó׺¡£»¹¿ÉÒÔÅųýÃû³ÆÖдøÓÐ _g µÄÏàÓ¦Îļþ¡£¶ÔÓÚÈκÎÒÑÅųýµÄ¿ÉÖ´ÐÐÎļþ£¬Ó¦ÅųýÏàÓ¦µÄÊÖ²áÒ³£¨°üº¬ÏÂÃæÁгöµÄÒÔ bin/ ¿ªÍ·µÄ·¾¶£¬ÊÊÓÃÓÚ SolarisTM ²Ù×÷ϵͳºÍ Linux£©¡£ +
+ +
+
+
+
jre/lib/charsets.jar
+ +
×Ö·ûת»»Àà
+ +
jre/lib/ext/
+ +
sunjce_provider.jar - SunJCE µÄ Java ¼ÓÃÜ·¨ API ÌṩÕß
localedata.jar - °üº¬·ÇÃÀʽӢÓïÓïÑÔ»·¾³ËùÐèµÄÐí¶à×ÊÔ´
ldapsec.jar - °üº¬ LDAP ·þÎñÌṩÕßËùÖ§³ÖµÄ°²È«ÌØÕ÷
dnsns.jar - ÓÃÓÚ JNDI DNS ÌṩÕßµÄ InetAddress °ü×°
+ +
bin/rmid ºÍ jre/bin/rmid
+ +
Java RMI »î»¯ÏµÍ³ÊØ»¤½ø³Ì
+ +
bin/rmiregistry ºÍ jre/bin/rmiregistry
+ +
Java Ô¶³Ì¶ÔÏó×¢²á±í
+ +
bin/tnameserv ºÍ jre/bin/tnameserv
+ +
Java IDL Ãû³Æ·þÎñÆ÷
+ +
bin/keytool ºÍ jre/bin/keytool
+ +
ÃÜÔ¿ºÍÖ¤Êé¹ÜÀí¹¤¾ß
+ +
bin/kinit ºÍ jre/bin/kinit
+ +
ÓÃÓÚ»ñÈ¡ºÍ¸ßËÙ»º´æ Kerberos Ʊ֤µÄÊÚÓèƱ֤
+ +
bin/klist ºÍ jre/bin/klist
+ +
ƾ¾Ý¸ßËÙ»º´æºÍÃÜÔ¿±íÖÐµÄ Kerberos ÏÔʾÌõÄ¿
+ +
bin/ktab ºÍ jre/bin/ktab
+ +
Kerberos ÃÜÔ¿±í¹ÜÀíÆ÷
+ +
bin/policytool ºÍ jre/bin/policytool
+ +
²ßÂÔÎļþ´´½¨ºÍ¹ÜÀí¹¤¾ß
+ +
bin/orbd ºÍ jre/bin/orbd
+ +
¶ÔÏóÇëÇó´úÀíÊØ»¤½ø³Ì
+ +
bin/servertool ºÍ jre/bin/servertool
+ +
Java IDL ·þÎñÆ÷¹¤¾ß
+ +
bin/javaws¡¢jre/bin/javaws¡¢jre/lib/javaws/ ºÍ jre/lib/javaws.jar
+ +
Java Web Start
+ +
db/
+
+Java DB£¬ËüÊÇ Sun Microsystems µÄ Apache Derby Êý¾Ý¿â¼¼ÊõµÄ·Ö·¢¡£ +ĬÈÏ°²×°Î»ÖÃΪ£º + +
    +
  • Solaris£º/opt/SUNWjavadb
  • + +
  • Linux£º/opt/sun/javadb
  • + +
  • Windows£ºC:\Program Files\Sun\JavaDB
  • +
ÓÐ¹Ø Java DB ºÍ Derby µÄÐÅÏ¢£¨°üÀ¨Óû§ +ºÍ API Îĵµ¡¢Java DB µÄ¹¦ÄÜÒÔ¼°¸ü¶à×ÊÔ´£©£¬ +Çë²Î¼ûÉÏÊöĿ¼ÖÐµÄ index.html Îļþ¡£ +
+ +
JavaTMDB£¬Sun Microsystems µÄ Apache Derby Êý¾Ý¿â¼¼Êõ·Ö·¢¡£
+ +
demo/
+ +
ÑÝʾ applet ºÍÓ¦ÓóÌÐò
+ +
sample/
+ +
ÑùÀý´úÂë
+ +
src.zip
+ +
Ô´Îļþ¹éµµ
+
+
+
+ +

¿ÉÔÙ·Ö·¢µÄ JDKTM Îļþ

+ +
+ÏÂÃæÁгöÁËÓÐÏÞ¼¸×é JDK ÎļþºÍĿ¼£¬¹©Ó¦ÉÌÔÚÔÙ·Ö·¢ JavaTM Runtime Environment (JRETM) ʱ£¬¿ÉÄܻὫÕâЩÎļþºÍĿ¼Ë渽ÆäÖС£²»Äܵ¥¶À¶ÔËüÃǽøÐÐÔÙ·Ö·¢£¬¶ø±ØÐëËæÏàͬ°æ±¾µÄ JRE Ò»Æð·Ö·¢¡£ËùÓз¾¶¶¼ÊÇÏà¶Ô JDK µÄ¶¥²ãĿ¼¶øÑԵġ£¶ÔÓÚÈκÎÒÑ°üº¬µÄ¿ÉÖ´ÐÐÎļþ£¬Ó¦°üº¬ÏàÓ¦µÄÊÖ²áÒ³£¨°üº¬ÏÂÃæÁгöµÄÒÔ bin/ ¿ªÍ·µÄ·¾¶£¬ÊÊÓÃÓÚ SolarisTM ²Ù×÷ϵͳºÍ Linux£©¡£ +
+ +
+
+
+
jre/lib/cmm/PYCC.pf
+ +
ÑÕÉ«ÅäÖÃÎļþ¡£½öµ±Óû§Ï£ÍûÔÚ PYCC ÑÕÉ«Çø¼äÓëÁíÒ»¸öÑÕÉ«Çø¼äÖ®¼ä½øÐÐת»»Ê±²ÅÐèÒªÓõ½´ËÎļþ¡£
+ +
λÓÚ jre/lib/fonts/ Ŀ¼ÖеÄËùÓÐ .ttf ×ÖÌåÎļþ¡£
+ +
Çë×¢Ò⣬JRE ÖÐÒÑ°üº¬ LucidaSansRegular.ttf ×ÖÌ壬Òò´ËÎÞÐè´Ó JDK ÖÐÒýÈë¸ÃÎļþ¡£
+ +
jre/lib/audio/soundbank.gm
+ +
JDK ÖоßÓиà MIDI ÉùÒô¿â£¬µ«ÎªÁ˼õС JRE ÏÂÔØ°üËùÕ¼µÄ¿Õ¼ä£¬ÒÑ´Ó JRE ÖÐɾ³ý¸Ã¿â¡£µ«ÊÇ£¬¶ÔÓÚ MIDI »Ø·Å£¬ÉùÒô¿âÎļþÊDZØÐèµÄ£¬Òò´ËÔÚÔÙ·Ö·¢ JRE ʱ¿ÉÄܽ« JDK µÄ soundbank.gm ÎļþË渽ÆäÖУ¨Óɹ©Ó¦É̾ö¶¨£©¡£¿É´Ó Java Sound Web Õ¾µã»ñµÃÈô¸É¼ÓÇ¿µÄ MIDI ÉùÒô¿â°æ±¾£¬¸ÃÕ¾µãÈçÏ£ºhttp://java.sun.com/products/java-media/sound/¡£ÔÚÔÙ·Ö·¢ JRE ʱ£¬¿ÉÄܽ«ÕâЩ±¸ÓÃÉùÒô¿âË渽ÆäÖС£
+ +
javac ×Ö½ÚÂë±àÒëÆ÷ÓÉÏÂÁÐÎļþ×é³É£º
+ +
bin/javac [SolarisTM ²Ù×÷ϵͳºÍ Linux]
bin/sparcv9/javac [SolarisTM ²Ù×÷ϵͳ£¨SPARC(R) ƽ̨°æ£©]
bin/amd64/javac [SolarisTM ²Ù×÷ϵͳ (AMD)]
bin/javac.exe [Microsoft Windows]
lib/tools.jar [ËùÓÐƽ̨]
+ +
×¢ÊÍ´¦Àí¹¤¾ßÓÉÏÂÁÐÎļþ×é³É£º
+
lib/tools.jar [ËùÓÐƽ̨]
+
bin/apt [SolarisTM ²Ù×÷ϵͳºÍ Linux]
bin/sparcv9/apt [SolarisTM ²Ù×÷ϵͳ£¨SPARC(R) ƽ̨°æ£©]
bin/amd64/apt [SolarisTM ²Ù×÷ϵͳ (AMD)]
bin/apt.exe [Microsoft Windows]
+ +
lib/jconsole.jar
+ +
Jconsole Ó¦ÓóÌÐò¡£×¢Ò⣺
+Jconsole Ó¦ÓóÌÐòÒªÇóʹÓö¯Ì¬Á¬½Ó»úÖÆ¡£
+ +
¶¯Ì¬Á¬½Ó»úÖÆÓÉÏÂÁÐÎļþ×é³É£º
+ +
lib/tools.jar [ËùÓÐƽ̨]
+jre/lib/sparc/libattach.so [SolarisTM ²Ù×÷ϵͳ£¨SPARC(R) ƽ̨°æ£©ºÍ Linux] +
+jre/lib/sparcv9/libattach.so [SolarisTM ²Ù×÷ϵͳ£¨SPARC(R) ƽ̨°æ£©ºÍ Linux] +
+jre/lib/i386/libattach.so [SolarisTM ²Ù×÷ϵͳ (x86) ºÍ Linux]
+jre/lib/amd64/libattach.so [SolarisTM ²Ù×÷ϵͳ (AMD) ºÍ Linux] +jre\bin\attach.dll [Microsoft Windows]
+ +
Java ƽ̨µ÷ÊÔÆ÷Ìåϵ½á¹¹ÊµÏÖÓÉ +ÔÚÉÏÊö¶¯Ì¬Á¬½Ó²¿·ÖÖÐÏÔʾµÄÎļþºÍ +ÏÂÁÐÎļþ×é³É£º
+ +
lib/tools.jar [ËùÓÐƽ̨]
+lib/sa-jdi.jar [ËùÓÐƽ̨]
+jre/lib/sparc/libsaproc.so [SolarisTM ²Ù×÷ϵͳ£¨SPARC(R) ƽ̨°æ£©ºÍ Linux] +
+jre/lib/sparcv9/libsaproc.so [SolarisTM ²Ù×÷ϵͳ£¨SPARC(R) ƽ̨°æ£©ºÍ Linux] +
+jre/lib/i386/libsaproc.so [SolarisTM ²Ù×÷ϵͳ (x86) ºÍ Linux]
+jre/lib/amd64/libsaproc.so [SolarisTM ²Ù×÷ϵͳ (AMD) ºÍ Linux]
+ +
jre\bin\server\
+ +
ÔÚ Microsoft Windows ƽ̨ÉÏ£¬JDK ͬʱ°üº¬ Java HotSpotTM ·þÎñÆ÷ VM ºÍ Java HotSpotTM ¿Í»§»ú VM¡£µ«ÊÇ£¬Microsoft Windows ƽ̨É쵀 JRE ½ö°üº¬ Java HotSpotTM ¿Í»§»ú VM¡£Èç¹ûÓû§Ï£ÍûºÍ JRE Ò»ÆðʹÓà Java HotSpotTM ·þÎñÆ÷ VM£¬¿ÉÒÔ½« JDK µÄ jre\bin\server Îļþ¼Ð¸´ÖƵ½ JRE µÄ bin\server Ŀ¼ÖС£Èí¼þ¹©Ó¦É̿ɽ« Java HotSpotTM ·þÎñÆ÷ VM Ëæ JRE Ò»ÆðÔÙ·Ö·¢¡£
+
+ + + +

ÎÞÏÞ¼ÓÇ¿µÄ Java ¼ÓÃÜ·¨À©Õ¹

+ +
+ÓÉÓÚijЩ¹ú¼Ò/µØÇø´æÔÚ½ø¿Ú¿ØÖÆÏÞÖÆ£¬Òò´Ë JDK ºÍ JRE Ë渽µÄ Java ¼ÓÃÜ·¨À©Õ¹ (JCE) ²ßÂÔÎļþÔÊÐíʹÓÃÇ¿´óµ«ÓÐÏ޵ļÓÃÜ·¨¡£ÕâЩÎļþλÓÚ

<java-home>/lib/security/local_policy.jar
<java-home>/lib/security/US_export_policy.jar

ÆäÖÐ <java-home> ÊÇ JDK µÄ jre Ŀ¼»ò JRE µÄ¶¥²ãĿ¼¡£ +
+ +
+¶ÔÓÚÄÇЩλÓÚ·ûºÏÌõ¼þµÄ¹ú¼Ò/µØÇøµÄÓû§£¬¿ÉÒÔ´Ó JDK Web Õ¾µã»ñÈ¡²»¶Ô¼ÓÃܼ¼ÊõµÄÇ¿¶ÈÖ¸¶¨ÈκÎÏÞÖƵÄÎÞÏÞ¼ÓÇ¿°æÎļþ¡£Î»ÓÚ·ûºÏÌõ¼þµÄ¹ú¼Ò/µØÇøµÄÓû§¿ÉÒÔÏÂÔØÎÞÏÞ¼ÓÇ¿°æÎļþ£¬²¢ÓÃÕâЩÎļþÌ滻ǿ¶ÈÓÐÏÞµÄ jar Îļþ¡£ +
+ +

Cacerts Ö¤ÊéÎļþ

+ +
+¿ÉÒÔÔÚλÓÚÒÔÏÂλÖÃµÄ Java SE Ö¤ÊéÎļþÖÐÌí¼Ó»òɾ³ý¸ù CA Ö¤Êé +
+ +
+<java-home>/lib/security/cacerts +
+ +
+ÓйØÏêϸÐÅÏ¢£¬Çë²Î¼û keytool ÎĵµÖÐµÄ cacerts Ö¤ÊéÎļþÒ»½Ú¡£ +
+ +

Java Ç©Ãû±ê×¼¸²¸Ç»úÖÆ

+ +
+Ðèʱ³£¸üРJava ƽ̨£¬ÒԱ㲢ÈëÔÚ Java Community Process SM (JCPSM http://www.jcp.org/) Ö®Íâ´´½¨µÄ½Ïа汾µÄ±ê×¼£¨Ç©Ãû±ê×¼£©£¬»ò½«¸Ãƽ̨ÖÐËù°üº¬µÄ¼¼Êõ°æ±¾¸üÐÂΪ¸Ã¼¼ÊõÏàÓ¦µÄ½ÏеĶÀÁ¢°æ±¾£¨¶ÀÁ¢¼¼Êõ£©¡£ +
+ +
+Ç©Ãû±ê×¼¸²¸Ç»úÖÆÌṩÁËÒ»ÖÖ·½·¨£¬¿É½«Ö´ÐÐÇ©Ãû±ê×¼»ò¶ÀÁ¢¼¼ÊõµÄ½Ïа汾µÄÀàºÍ½çÃæ²¢Èë Java ƽ̨ÖС£ +
+ +
+ÓйØÇ©Ãû±ê×¼¸²¸Ç»úÖƵÄÏêϸÐÅÏ¢£¬°üÀ¨¸Ã»úÖƽøÐи²¸Çʱ¿ÉÄÜÓõ½µÄƽ̨°üµÄÁÐ±í£¬Çë²Î¼û +
+ +
+http://java.sun.com/javase/6/docs/technotes/guides/standards/ +
+ +

Java DB

+ +
+ ·Ö·¢°ü Java DB£¬ËüÊÇ Sun Microsystems + µÄ Apache Derby ´¿ Java Êý¾Ý¿â¼¼ÊõµÄ·Ö·¢¡£ + ĬÈÏ°²×°Î»ÖÃΪ£º + +
    +
  • Solaris: /opt/SUNWjavadb
  • + +
  • Linux: /opt/sun/javadb
  • + +
  • Windows: C:\Program Files\Sun\JavaDB
  • +
+ +

ÓÐ¹Ø Java DB ºÍ Derby µÄÐÅÏ¢£¨°üÀ¨Óû§ºÍ API Îĵµ¡¢Java DB + µÄ¹¦ÄÜÒÔ¼°¸ü¶à×ÊÔ´£©£¬ + Çë²Î¼ûÉÏÊöĿ¼ÖÐµÄ index.html Îļþ¡£

+
+ + +

Web Ò³

+ +
+ÓйØÏêϸÐÅÏ¢£¬Çë²ÎÔÄÍòάÍøÉϵÄÏÂÁÐ Sun Microsystems Ò³Ã棺 +
+ +
+
+
+
http://java.sun.com/
+ +
Java Èí¼þ Web Õ¾µã£¬°üº¬ÓÐ¹Ø Java ¼¼Êõ¡¢²úÆ·ÐÅÏ¢¡¢ÐÂÎźÍÈí¼þÌØÐÔµÄ×îÐÂÐÅÏ¢¡£
+ +
http://java.sun.com/docs
+ +
JavaTM ƽ̨Îĵµ£¬°üº¬°×ƤÊé¡¢Java ½Ì³ÌÒÔ¼°ÆäËûÎĵµ¡£
+ +
http://developer.java.sun.com
+ +
¿ª·¢Õß·þÎñ Web Õ¾µã£¨ÐèÒª½øÐÐÃâ·Ñ×¢²á£©¡£ÆäËû¼¼ÊõÐÅÏ¢¡¢ÐÂÎźÍÈí¼þÌØÐÔ£»Óû§ÂÛ̳£»Ö§³ÖÐÅÏ¢µÈµÈ¡£
+ +
http://java.sun.com/products/
+ +
Java ¼¼Êõ²úÆ·ºÍ API
+
+
+
+
+ +

JavaTM Development Kit (JDKTM) ÊÇ Sun MicrosystemsTM, Inc. µÄ²úÆ·¡£

°æȨËùÓÐ (C) 2009 Sun Microsystems, Inc.
4150 Network Circle, Santa Clara, California 95054, U.S.A.
±£ÁôËùÓÐȨÀû¡£

+ + + diff --git a/extra/source/jdk-6/jdk.SlackBuild b/extra/source/jdk-6/jdk.SlackBuild new file mode 100755 index 000000000..6c984d583 --- /dev/null +++ b/extra/source/jdk-6/jdk.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=6u16 +DVER=1.6.0_16 +ARCH=x86_64 # only determines the lib path locations +JAVA_ARCH=${JAVA_ARCH:-x64} # or i586 if you want the 32bit version +BUILD=${BUILD:-1} + + +if [ "$JAVA_ARCH" = "x64" ]; then + LIB_ARCH=amd64 +else + LIB_ARCH=i386 +fi + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-jdk +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $PKG +mkdir -p usr/lib${LIBDIRSUFFIX} +cd usr/lib${LIBDIRSUFFIX} +yes yes | sh $CWD/jdk-${VERSION}-linux-${JAVA_ARCH}.bin || exit 1 +mkdir -p $PKG/etc/profile.d +for file in $(ls $CWD/profile.d/*) ; do + cat $file | sed -e "s#lib/java#lib${LIBDIRSUFFIX}/java#" \ + > $PKG/etc/profile.d/$(basename $file) +done +chown -R root.root $PKG +find $PKG \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 +\) \ + -exec chmod 644 {} \; + +chmod 755 $PKG/etc/profile.d/* +( cd $PKG/usr/lib${LIBDIRSUFFIX} + mv jdk${DVER} java || exit 1 + ln -sf java jdk${DVER} +) || exit 1 +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins +( cd $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins + ln -sf /usr/lib${LIBDIRSUFFIX}/java/jre/lib/${LIB_ARCH}/libnpjp2.so libnpjp2.so +) +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf ./java/jre/lib/${LIB_ARCH}/server/libjvm.so . +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh + +# Clean up a potential upgrade mess caused by changing the +# installation directory to /usr/lib${LIBDIRSUFFIX}/java/: +if [ -L usr/lib${LIBDIRSUFFIX}/java ]; then + rm -rf usr/lib${LIBDIRSUFFIX}/java + mkdir -p usr/lib${LIBDIRSUFFIX}/java/man + mkdir -p usr/lib${LIBDIRSUFFIX}/java/jre/lib/${LIB_ARCH}/server + mkdir -p usr/lib${LIBDIRSUFFIX}/java/jre/lib/${LIB_ARCH}/client + mkdir -p usr/lib${LIBDIRSUFFIX}/java/jre/javaws + mkdir -p usr/lib${LIBDIRSUFFIX}/java/jre/bin + mkdir -p usr/lib${LIBDIRSUFFIX}/java/bin + mkdir -p usr/lib${LIBDIRSUFFIX}/mozilla/plugins +fi +if [ -L ControlPanel ]; then + rm -f ControlPanel +fi +if [ -L ja ]; then + rm -f ja +fi +if [ -L javaws ]; then + rm -f javaws +fi +if [ -L libjsig.so ]; then + rm -f libjsig.so +fi +# End cleanup. +EOF + +# Install the desktop/mime files: +mkdir -p $PKG/usr/share/{applications,icons,mime} +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/jre/lib/desktop/applications/* \ + $PKG/usr/share/applications/ +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/jre/lib/desktop/icons/hicolor \ + $PKG/usr/share/icons/ +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/jre/lib/desktop/mime/packages \ + $PKG/usr/share/mime/ + +# We ship the package unmodified, so we do not compress manpages. + +cd $PKG +/sbin/makepkg -l y -c n $TMP/jdk-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/extra/source/jdk-6/profile.d/jdk.csh b/extra/source/jdk-6/profile.d/jdk.csh new file mode 100755 index 000000000..3a1ec7be8 --- /dev/null +++ b/extra/source/jdk-6/profile.d/jdk.csh @@ -0,0 +1,4 @@ +#!/bin/csh +setenv JAVA_HOME /usr/lib/java +setenv MANPATH ${MANPATH}:${JAVA_HOME}/man +setenv PATH ${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin diff --git a/extra/source/jdk-6/profile.d/jdk.sh b/extra/source/jdk-6/profile.d/jdk.sh new file mode 100755 index 000000000..ed0bc73d4 --- /dev/null +++ b/extra/source/jdk-6/profile.d/jdk.sh @@ -0,0 +1,4 @@ +#!/bin/sh +export JAVA_HOME=/usr/lib/java +export MANPATH="${MANPATH}:${JAVA_HOME}/man" +export PATH="${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin" diff --git a/extra/source/jdk-6/register.html b/extra/source/jdk-6/register.html new file mode 100644 index 000000000..916ee3701 --- /dev/null +++ b/extra/source/jdk-6/register.html @@ -0,0 +1,79 @@ + + + + +Register your JDK + + + + + + + + + + + + + + + + + + + + + + + + + +
  +
 

Thank you for installing the + Java Development Kit Version 6 Update 15 + from Sun Microsystems.

+

Registering your product will give you the following benefits:

+
    +
  • Notification of new versions, patches, and updates
  • +
  • Special offers on Sun developer products, services and training
  • +
  • Access to early releases and documentation
  • +
+

Product registration is FREE, quick and easy!

+
+

All you need is a Sun Developer Network or other Sun Online account. If you don't already have one, you will be prompted to create one.

+ + + + + +
+
+ + +
You need to be connected to the Internet to register this Sun product.
+
+
  +

Sun Microsystems, Inc. respects your privacy. + We will use your personal information for communications + and management of your Sun Online Account, the services + and applications you access using your Sun Online Account, + and the products and systems you register with your Sun Online Account.

+

For more information on the data that will be collected as + part of the registration process and how it will be managed
+ see http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html.
+
+ For more information on Sun's Privacy Policy see http://www.sun.com/privacy/ or contact privacy@sun.com.

  
  
+ + diff --git a/extra/source/jdk-6/register_ja.html b/extra/source/jdk-6/register_ja.html new file mode 100644 index 000000000..f98d2dff7 --- /dev/null +++ b/extra/source/jdk-6/register_ja.html @@ -0,0 +1,66 @@ + + + + +JDK 製å“登録 + + + + + + + + + + + + + + + + + + + + + + + + +
 
 

Sun Microsystems ã® Java Development Kit Version 6 Update 15 をインストールã—ã¦ã„ãŸã ãã€ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚

+

製å“登録をã™ã‚‹ã¨ã€æ¬¡ã®ã‚ˆã†ãªç‰¹å…¸ã‚’å—ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

+
    +
  • 最新ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã€ãƒ‘ッãƒã€ãŠã‚ˆã³æ›´æ–°ã«ã¤ã„ã¦ã®é€šçŸ¥
  • +
  • Sun ã®é–‹ç™ºè€…å‘ã‘製å“ã€ã‚µãƒ¼ãƒ“スã€ãŠã‚ˆã³ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã®ç‰¹åˆ¥è²©å£²
  • +
  • アーリーリリースãŠã‚ˆã³ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¸ã®ã‚¢ã‚¯ã‚»ã‚¹
  • +
+

製å“登録ã¯ç„¡æ–™ã§ã‚ã‚Šã€è¿…速ã§ç°¡å˜ã§ã™ã€‚

+
+

å¿…è¦ã«ãªã‚‹ã®ã¯ã€Sun 開発者å‘ã‘ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¾ãŸã¯ãã®ä»–ã® Sun オンラインアカウントã ã‘ã§ã™ã€‚ ã¾ã ã‚¢ã‚«ã‚¦ãƒ³ãƒˆãŒãªã„å ´åˆã¯ã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®ä½œæˆãŒæ±‚ã‚られã¾ã™ã€‚

+ + + + + +
+ + +
ã“ã® Sun 製å“を登録ã™ã‚‹ã«ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆã«æŽ¥ç¶šã—ã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚
+
+
  +

Sun Microsystems, Inc. ã¯ã€ãŠå®¢æ§˜ã®ãƒ—ライãƒã‚·ãƒ¼ã‚’å°Šé‡ã—ã¾ã™ã€‚ ãŠå®¢æ§˜ã®å€‹äººæƒ…å ±ã¯ã€ãŠå®¢æ§˜ã® Sun オンラインアカウントã€ãŠå®¢æ§˜ãŒ Sun オンラインアカウントを使用ã—ã¦ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã‚µãƒ¼ãƒ“スã¨ã‚¢ãƒ—リケーションã€ãŠã‚ˆã³ãŠå®¢æ§˜ãŒ Sun オンラインアカウントã§ç™»éŒ²ã™ã‚‹è£½å“ã¨ã‚·ã‚¹ãƒ†ãƒ ã®é€šä¿¡ã¨ç®¡ç†ã«ä½¿ç”¨ã—ã¾ã™ã€‚

+

登録ã®éš›ã«åŽé›†ã•ã‚Œã‚‹ãƒ‡ãƒ¼ã‚¿ã‚„ã€ãれらãŒã©ã®ã‚ˆã†ã«ç®¡ç†ã•ã‚Œã‚‹ã‹ã«ã¤ã„ã¦ã®è©³ç´°ã¯ã€
http://java.sun.com/javase/ja/registration/JDKRegistrationPrivacy.html ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

Sun ã®ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã«ã¤ã„ã¦ã®è©³ç´°ã¯ã€http://jp.sun.com/privacy/ ã‚’å‚ç…§ã™ã‚‹ã‹ã€ãŠå•ã„åˆã‚ã›ãƒ•ã‚©ãƒ¼ãƒ ã‹ã‚‰ãŠå•ã„åˆã‚ã›ãã ã•ã„。

  
  
+ + diff --git a/extra/source/jdk-6/register_zh_CN.html b/extra/source/jdk-6/register_zh_CN.html new file mode 100644 index 000000000..bc5fc2ae9 --- /dev/null +++ b/extra/source/jdk-6/register_zh_CN.html @@ -0,0 +1,66 @@ + + + + +注册您的 JDK + + + + + + + + + + + + + + + + + + + + + + + + +
 
 

感谢您安装 Sun Microsystems 的 Java Development Kit Version 6 Update 15。

+

注册产å“åŽæ‚¨å°†èŽ·å¾—如下增值æœåŠ¡ï¼š

+
    +
  • 获得新版本ã€ä¿®è¡¥ç¨‹åºå’Œæ›´æ–°çš„通知æœåŠ¡
  • +
  • 获得有关 Sun å¼€å‘者产å“ã€æœåŠ¡å’ŒåŸ¹è®­çš„优惠
  • +
  • 获得对早期版本和文档的访问æƒé™
  • +
+

产å“注册是å…费的,å³å¿«é€Ÿåˆè½»æ¾ï¼

+
+

您需è¦å…·æœ‰ Sun å¼€å‘者网络或其他 Sun è”机å¸æˆ·ã€‚如果您没有,系统将æ示您创建一个。

+ + + + + +
+ + +
您需è¦è¿žæŽ¥åˆ° Internet æ¥æ³¨å†Œæ­¤ Sun 产å“。
+
+
  +

Sun Microsystems, Inc. å°Šé‡æ‚¨çš„éšç§ã€‚我们会将您的个人信æ¯ç”¨äºŽé€šä¿¡å’Œ Sun è”机å¸æˆ·çš„管ç†ã€Sun è”机å¸æˆ·è®¿é—®çš„æœåŠ¡å’Œåº”用程åºä»¥åŠç”¨äºŽä½¿ç”¨ Sun è”机å¸æˆ·æ³¨å†Œçš„产å“和系统。

+

有关注册过程中收集的数æ®ä»¥åŠè¿™äº›æ•°æ®çš„管ç†æ–¹å¼çš„更多信æ¯ï¼Œ
请访问 http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html。

有关 Sun éšç§æ”¿ç­–的更多信æ¯ï¼Œè¯·è®¿é—® http://www.sun.com/privacy/ 或与 privacy@sun.com è”系。

  
  
+ + diff --git a/extra/source/jdk-6/slack-desc b/extra/source/jdk-6/slack-desc new file mode 100644 index 000000000..5e21d1707 --- /dev/null +++ b/extra/source/jdk-6/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + |-----handy-ruler------------------------------------------------------| +jdk: Java(TM) 2 Platform Standard Edition Development Kit 6.0 update 16. +jdk: +jdk: The Java 2 SDK software includes tools for developing, testing, and +jdk: running programs written in the Java programming language. This +jdk: package contains everything you need to run Java(TM). +jdk: +jdk: For additional information, refer to this Sun Microsystems web page: +jdk: http://java.sun.com/ +jdk: +jdk: +jdk: diff --git a/extra/source/kde3-compat/arts/arts.SlackBuild b/extra/source/kde3-compat/arts/arts.SlackBuild new file mode 100755 index 000000000..a617c18c5 --- /dev/null +++ b/extra/source/kde3-compat/arts/arts.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh +CWD=`pwd` +TMP=/tmp +PKG=$TMP/package-arts + +VERSION=${VERSION:-1.5.10} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-opt1} + +rm -rf $PKG +mkdir -p $PKG/opt/kde3 + +# Avoid a version number in .la files: +if [ -d /opt/kde3/lib64/qt3 ]; then + QTDIR=/opt/kde3/lib64/qt3 +fi +cd $TMP +echo "Building arts-$VERSION.tar.bz2..." +tar xjvf $CWD/arts-$VERSION.tar.bz2 +cd arts-$VERSION + +QTDIR=/opt/kde3/lib64/qt3 + +zcat $CWD/arts.tmpdir.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +CFLAGS=$CPUOPT \ +CXXFLAGS=$CPUOPT \ +./configure \ + --prefix=/opt/kde3 \ + --libdir=/opt/kde3/lib64 \ + --sysconfdir=/opt/kde3/etc \ + --with-xinerama \ + --disable-debug \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux +make -j4 || exit 1 +make install DESTDIR=$PKG + +mkdir -p $PKG/usr/doc/arts-$VERSION +cp -a \ + COPYING* INSTALL doc/NEWS doc/README doc/TODO \ + $PKG/usr/doc/arts-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +cd $PKG +makepkg -l y -c n ../arts-$VERSION-$ARCH-$BUILD.txz + diff --git a/extra/source/kde3-compat/arts/arts.tmpdir.diff b/extra/source/kde3-compat/arts/arts.tmpdir.diff new file mode 100644 index 000000000..f50472a1e --- /dev/null +++ b/extra/source/kde3-compat/arts/arts.tmpdir.diff @@ -0,0 +1,17 @@ +--- ./mcop/mcoputils.cc.orig 2006-01-19 10:16:08.000000000 -0600 ++++ ./mcop/mcoputils.cc 2006-09-19 17:07:50.000000000 -0500 +@@ -47,7 +47,13 @@ + result = lstat(tmp_dir, &stat_buf); + if ((result == -1) && (errno == ENOENT)) + { +- return 1; ++ result = mkdir(tmp_dir, 0700); ++ if (result == -1) ++ { ++ arts_warning("Error: Can not create directory \"%s\".\n", tmp_dir); ++ return 1; ++ } ++ result = stat(tmp_dir, &stat_buf); + } + if ((result == -1) || (!S_ISDIR(stat_buf.st_mode))) + { diff --git a/extra/source/kde3-compat/arts/slack-desc b/extra/source/kde3-compat/arts/slack-desc new file mode 100644 index 000000000..c7b45613d --- /dev/null +++ b/extra/source/kde3-compat/arts/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +arts: arts (Analog Realtime Synthesizer) +arts: +arts: aRts is the core sound system for KDE, and is short for "analog +arts: realtime synthesizer". aRts is designed to create or process sound +arts: using small specialized modules. These may create a waveform, play +arts: samples, filter data, add signals, perform effects (like delay, +arts: flanger or chorus), or output the data to the soundcard. +arts: +arts: +arts: +arts: diff --git a/extra/source/kde3-compat/k3b3/k3b3.SlackBuild b/extra/source/kde3-compat/k3b3/k3b3.SlackBuild new file mode 100755 index 000000000..186fbe7b9 --- /dev/null +++ b/extra/source/kde3-compat/k3b3/k3b3.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh +CWD=`pwd` +TMP=${TMP:-/tmp} +PKG=$TMP/package-k3b3 + +VERSION=1.0.5 +ARCH=${ARCH:-x86_64} +BUILD=opt1 + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" +fi + +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf k3b-$VERSION +tar xjvf $CWD/k3b-$VERSION.tar.bz2 || exit 1 +cd k3b-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; + +QTDIR=/opt/kde3/lib64/qt3 + +# ./configure --help lists --docdir, but it is ignored. Oh well. +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/opt/kde3 \ + --libdir=/opt/kde3/lib64 \ + --sysconfdir=/etc/kde \ + --docdir=/usr/doc \ + --without-cdrecord-suid-root \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux +make -j4 || exit 1 +make install DESTDIR=$PKG + +# Add a .desktop in the compatible location: +mkdir -p $PKG/usr/share/applications/kde4 +( cd $PKG/usr/share/applications/kde4 ; ln -sf /opt/kde3/share/applications/kde/k3b.desktop k3b3.desktop ) + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/usr/doc/k3b-$VERSION +cp -a \ + AUTHORS COPYING COPYING-DOCS ChangeLog FAQ INSTALL KNOWNBUGS PERMISSIONS README RELEASE_HOWTO TODO k3b.lsm \ + $PKG/usr/doc/k3b-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/k3b3-$VERSION-$ARCH-$BUILD.txz + diff --git a/extra/source/kde3-compat/k3b3/slack-desc b/extra/source/kde3-compat/k3b3/slack-desc new file mode 100644 index 000000000..52856f6a3 --- /dev/null +++ b/extra/source/kde3-compat/k3b3/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +k3b3: k3b3 (The CD Creator, KDE3 version) +k3b3: +k3b3: K3b makes writing cds under Linux easy. It has an easy to use +k3b3: interface and supports CD burning (including on-the-fly), copying, +k3b3: erasing, ripping, and more. +k3b3: +k3b3: K3b was written by Sebastian Trueg, Thomas Froescher, +k3b3: Christian Kvasny, and Klaus-Dieter Krannich. +k3b3: +k3b3: For more information, visit: http://www.k3b.org +k3b3: diff --git a/extra/source/kde3-compat/kdelibs3/apply-patches.sh b/extra/source/kde3-compat/kdelibs3/apply-patches.sh new file mode 100644 index 000000000..68190b0b2 --- /dev/null +++ b/extra/source/kde3-compat/kdelibs3/apply-patches.sh @@ -0,0 +1,3 @@ +zcat $CWD/kdelibs-utempter.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/kdelibs.inotify.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/kdelibs.no.inotify.externs.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 diff --git a/extra/source/kde3-compat/kdelibs3/kdelibs-utempter.diff b/extra/source/kde3-compat/kdelibs3/kdelibs-utempter.diff new file mode 100644 index 000000000..4f7c8f3a0 --- /dev/null +++ b/extra/source/kde3-compat/kdelibs3/kdelibs-utempter.diff @@ -0,0 +1,23 @@ +diff -Naur kdelibs-3.5.7.orig/kdecore/kpty.cpp kdelibs-3.5.7/kdecore/kpty.cpp +--- kdelibs-3.5.7.orig/kdecore/kpty.cpp 2006-05-22 19:14:21.000000000 +0100 ++++ kdelibs-3.5.7/kdecore/kpty.cpp 2007-06-10 14:08:18.000000000 +0100 +@@ -401,7 +401,9 @@ + #ifdef HAVE_UTEMPTER + KProcess_Utmp utmp; + utmp.cmdFd = d->masterFd; +- utmp << "/usr/sbin/utempter" << "-a" << d->ttyName << ""; ++ utmp << "/usr/lib/utempter/utempter" << "add"; ++ if (remotehost) ++ utmp << remotehost; + utmp.start(KProcess::Block); + Q_UNUSED(user); + Q_UNUSED(remotehost); +@@ -444,7 +446,7 @@ + #ifdef HAVE_UTEMPTER + KProcess_Utmp utmp; + utmp.cmdFd = d->masterFd; +- utmp << "/usr/sbin/utempter" << "-d" << d->ttyName; ++ utmp << "/usr/lib/utempter/utempter" << "del"; + utmp.start(KProcess::Block); + #elif defined(USE_LOGIN) + const char *str_ptr = d->ttyName.data(); diff --git a/extra/source/kde3-compat/kdelibs3/kdelibs.inotify.diff b/extra/source/kde3-compat/kdelibs3/kdelibs.inotify.diff new file mode 100644 index 000000000..791b5e683 --- /dev/null +++ b/extra/source/kde3-compat/kdelibs3/kdelibs.inotify.diff @@ -0,0 +1,11 @@ +--- ./kio/kio/kdirwatch.cpp.orig 2006-07-22 03:16:37.000000000 -0500 ++++ ./kio/kio/kdirwatch.cpp 2009-06-18 19:27:38.000000000 -0500 +@@ -71,7 +71,7 @@ + #include + // Linux kernel headers are documented to not compile + #define _S390_BITOPS_H +-#include ++#include + + static inline int inotify_init (void) + { diff --git a/extra/source/kde3-compat/kdelibs3/kdelibs.no.inotify.externs.diff b/extra/source/kde3-compat/kdelibs3/kdelibs.no.inotify.externs.diff new file mode 100644 index 000000000..ef06c1dce --- /dev/null +++ b/extra/source/kde3-compat/kdelibs3/kdelibs.no.inotify.externs.diff @@ -0,0 +1,37 @@ +--- ./kio/kio/kdirwatch.cpp.orig 2009-06-18 19:29:01.000000000 -0500 ++++ ./kio/kio/kdirwatch.cpp 2009-06-18 19:32:41.000000000 -0500 +@@ -73,20 +73,20 @@ + #define _S390_BITOPS_H + #include + +-static inline int inotify_init (void) +-{ +- return syscall (__NR_inotify_init); +-} +- +-static inline int inotify_add_watch (int fd, const char *name, __u32 mask) +-{ +- return syscall (__NR_inotify_add_watch, fd, name, mask); +-} +- +-static inline int inotify_rm_watch (int fd, __u32 wd) +-{ +- return syscall (__NR_inotify_rm_watch, fd, wd); +-} ++// static inline int inotify_init (void) ++// { ++// return syscall (__NR_inotify_init); ++// } ++ ++// static inline int inotify_add_watch (int fd, const char *name, __u32 mask) ++// { ++// return syscall (__NR_inotify_add_watch, fd, name, mask); ++// } ++ ++// static inline int inotify_rm_watch (int fd, __u32 wd) ++// { ++// return syscall (__NR_inotify_rm_watch, fd, wd); ++// } + + #ifndef IN_ONLYDIR + #define IN_ONLYDIR 0x01000000 diff --git a/extra/source/kde3-compat/kdelibs3/kdelibs3.SlackBuild b/extra/source/kde3-compat/kdelibs3/kdelibs3.SlackBuild new file mode 100755 index 000000000..d197ea32f --- /dev/null +++ b/extra/source/kde3-compat/kdelibs3/kdelibs3.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh +CWD=`pwd` +TMP=/tmp +PKG=$TMP/package-kdelibs + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +rm -rf $PKG +mkdir -p $PKG/usr + +# Avoid a version number in .la files: +if [ -d /opt/kde3/lib64/qt ]; then + QTDIR=/opt/kde3/lib64/qt3 +fi + +cd $TMP +echo "Building kdelibs-$VERSION.tar.bz2..." +tar xjvf $CWD/kdelibs-$VERSION.tar.bz2 || exit 1 +cd kdelibs-$VERSION || exit 1 + +if [ -r $CWD/apply-patches.sh ]; then + . $CWD/apply-patches.sh +fi + +chown -R root:root . +CFLAGS=$CPUOPT \ +CXXFLAGS=$CPUOPT \ +./configure \ + --prefix=/opt/kde3 \ + --libdir=/opt/kde3/lib64 \ + --sysconfdir=/opt/kde3/etc \ + --with-ssl-dir=/usr \ + --with-xinerama \ + --disable-debug \ + --enable-dnotify \ + --program-prefix="" \ + --program-suffix="" \ + --build=$TARGET-slackware-linux + +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG + +mkdir -p $PKG/usr/doc/kdelibs-$VERSION +cp -a \ + AUTHORS COMPILING COMPILING.html COPYING* DEBUG INSTALL KDE2PORTING.html KDE3PORTING.html NAMING README kdelibs.lsm \ + $PKG/usr/doc/kdelibs-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +cd $PKG +makepkg -l y -c n ../kdelibs3-$VERSION-$ARCH-$BUILD.txz + diff --git a/extra/source/kde3-compat/kdelibs3/local.options b/extra/source/kde3-compat/kdelibs3/local.options new file mode 100644 index 000000000..056703278 --- /dev/null +++ b/extra/source/kde3-compat/kdelibs3/local.options @@ -0,0 +1,4 @@ +VERSION=3.5.10 +ARCH=x86_64 +TARGET=x86_64 +BUILD=opt1 diff --git a/extra/source/kde3-compat/kdelibs3/slack-desc b/extra/source/kde3-compat/kdelibs3/slack-desc new file mode 100644 index 000000000..b6e75d1d5 --- /dev/null +++ b/extra/source/kde3-compat/kdelibs3/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdelibs3: kdelibs3 (KDE3 runtime libraries) +kdelibs3: +kdelibs3: System libraries and other resources required by KDE3. +kdelibs3: +kdelibs3: +kdelibs3: +kdelibs3: +kdelibs3: +kdelibs3: +kdelibs3: +kdelibs3: diff --git a/extra/source/kde3-compat/qt3/doinst.sh b/extra/source/kde3-compat/qt3/doinst.sh new file mode 100644 index 000000000..d57fb0319 --- /dev/null +++ b/extra/source/kde3-compat/qt3/doinst.sh @@ -0,0 +1,9 @@ +## This was causing problems compiling KDE for unknown reasons. +## So, we'll symlink the libraries into /opt/kde3 again... +# Add QT library directory to /etc/ld.so.conf: +if ! grep /opt/kde3/lib etc/ld.so.conf 1> /dev/null 2> /dev/null ; then + echo "/opt/kde3/lib" >> etc/ld.so.conf +fi +if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig 2> /dev/null +fi diff --git a/extra/source/kde3-compat/qt3/profile.d/qt.csh b/extra/source/kde3-compat/qt3/profile.d/qt.csh new file mode 100755 index 000000000..490877c4f --- /dev/null +++ b/extra/source/kde3-compat/qt3/profile.d/qt.csh @@ -0,0 +1,22 @@ +#!/bin/csh +# Environment path variables for the Qt package: +if ( ! $?QTDIR ) then + # It's best to use the generic directory to avoid + # compiling in a version-containing path: + if ( -d /opt/kde3/lib/qt3 ) then + setenv QTDIR /opt/kde3/lib/qt3 + else + # Find the newest Qt directory and set $QTDIR to that: + foreach qtd ( /opt/kde3/lib/qt-* ) + if ( -d $qtd ) then + setenv QTDIR $qtd + endif + end + endif +endif +set path = ( $path $QTDIR/bin /opt/kde3/bin ) +if ( $?CPLUS_INCLUDE_PATH ) then + setenv CPLUS_INCLUDE_PATH $QTDIR/include:$CPLUS_INCLUDE_PATH +else + setenv CPLUS_INCLUDE_PATH $QTDIR/include +endif diff --git a/extra/source/kde3-compat/qt3/profile.d/qt.sh b/extra/source/kde3-compat/qt3/profile.d/qt.sh new file mode 100755 index 000000000..c4e23bb59 --- /dev/null +++ b/extra/source/kde3-compat/qt3/profile.d/qt.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Environment variables for the Qt package. +# +# It's best to use the generic directory to avoid +# compiling in a version-containing path: +if [ -d /opt/kde3/lib/qt3 ]; then + QTDIR=/opt/kde3/lib/qt3 +else + # Find the newest Qt directory and set $QTDIR to that: + for qtd in /opt/kde3/lib/qt-* ; do + if [ -d $qtd ]; then + QTDIR=$qtd + fi + done +fi +if [ ! "$CPLUS_INCLUDE_PATH" = "" ]; then + CPLUS_INCLUDE_PATH=$QTDIR/include:$CPLUS_INCLUDE_PATH +else + CPLUS_INCLUDE_PATH=$QTDIR/include +fi +PATH="$PATH:$QTDIR/bin:/opt/kde3/bin" +export QTDIR +export CPLUS_INCLUDE_PATH diff --git a/extra/source/kde3-compat/qt3/qt-x11.diff b/extra/source/kde3-compat/qt3/qt-x11.diff new file mode 100644 index 000000000..74453f21f --- /dev/null +++ b/extra/source/kde3-compat/qt3/qt-x11.diff @@ -0,0 +1,11 @@ +--- ./src/kernel/qgif.h.orig Tue Mar 19 02:31:42 2002 ++++ ./src/kernel/qgif.h Sun Mar 24 22:14:19 2002 +@@ -47,7 +47,7 @@ + #endif // QT_H + + #ifndef QT_BUILTIN_GIF_READER +-#define QT_BUILTIN_GIF_READER 0 ++#define QT_BUILTIN_GIF_READER 1 + #endif + + bool qt_builtin_gif_reader(); diff --git a/extra/source/kde3-compat/qt3/qt.mysql.h.diff b/extra/source/kde3-compat/qt3/qt.mysql.h.diff new file mode 100644 index 000000000..2d6fca5ac --- /dev/null +++ b/extra/source/kde3-compat/qt3/qt.mysql.h.diff @@ -0,0 +1,11 @@ +--- ./src/sql/drivers/mysql/qsql_mysql.h.orig 2002-04-15 03:05:53.000000000 -0700 ++++ ./src/sql/drivers/mysql/qsql_mysql.h 2002-10-14 14:59:36.000000000 -0700 +@@ -46,7 +46,7 @@ + #include + #endif + +-#include ++#include + + #ifdef QT_PLUGIN + #define Q_EXPORT_SQLDRIVER_MYSQL diff --git a/extra/source/kde3-compat/qt3/qt.x86.cflags.diff b/extra/source/kde3-compat/qt3/qt.x86.cflags.diff new file mode 100644 index 000000000..880037c23 --- /dev/null +++ b/extra/source/kde3-compat/qt3/qt.x86.cflags.diff @@ -0,0 +1,11 @@ +--- ./mkspecs/linux-g++/qmake.conf.orig Fri Apr 26 00:48:00 2002 ++++ ./mkspecs/linux-g++/qmake.conf Tue May 7 12:05:04 2002 +@@ -18,7 +18,7 @@ + QMAKE_CFLAGS_DEPS = -M + QMAKE_CFLAGS_WARN_ON = -Wall -W + QMAKE_CFLAGS_WARN_OFF = -w +-QMAKE_CFLAGS_RELEASE = -O2 ++QMAKE_CFLAGS_RELEASE = -O2 -march=i486 -mtune=i686 + QMAKE_CFLAGS_DEBUG = -g + QMAKE_CFLAGS_SHLIB = -fPIC + QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses diff --git a/extra/source/kde3-compat/qt3/qt3.SlackBuild b/extra/source/kde3-compat/qt3/qt3.SlackBuild new file mode 100755 index 000000000..d32d283ea --- /dev/null +++ b/extra/source/kde3-compat/qt3/qt3.SlackBuild @@ -0,0 +1,192 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Build with NODEVEL= after building the other deps to get rid of +# the .so, include, and other files not needed for runtime. + +PKGNAM=qt3 +VERSION=${VERSION:-3.3.8b} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-opt2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +# Don't build a devel package (but put a devel SYSTEM on this machine...) +NODEVEL=true + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +#cd $TMP +# I have *many* times tried building this package in /tmp, and it always +# ends up with a "/tmp" directory embedded in some wrong place. Hopefully +# the next time I see this comment I'll remember that and not make the +# same mistake again just for the sake of doing things "right" (but having +# the package come out wrong...) +#rm -rf ${PKGNAM}-${VERSION} +mkdir -p /opt/kde3/lib${LIBDIRSUFFIX} +cd /opt/kde3/lib${LIBDIRSUFFIX} +rm -rf qt-3* qt3 qt-3.* qt3-* +tar xvf $CWD/qt-x11-free-$VERSION.tar.bz2 || exit 1 +mv qt-x11-free-$VERSION qt3 +cd qt3 + +if [ $ARCH = "i486" ]; then + zcat $CWD/qt.x86.cflags.diff.gz | patch -p1 || exit 1 +fi + +zcat $CWD/qt-x11.diff.gz | patch -p1 || exit 1 +zcat $CWD/qt.mysql.h.diff.gz | patch -p1 || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +QTDIR=/opt/kde3/lib${LIBDIRSUFFIX}/qt3 + +# And here's what we are currently using. The "yes" agrees to the GPL, so don't run this script if you +# don't agree. :-) +echo "yes" | CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" ./configure \ + -prefix /opt/kde3/lib${LIBDIRSUFFIX}/qt3-${VERSION} \ + -release \ + -system-zlib \ + -system-libpng \ + -qt-imgfmt-png \ + -system-libmng \ + -qt-imgfmt-mng \ + -system-libjpeg \ + -qt-imgfmt-jpeg \ + -qt-gif \ + -thread \ + -stl \ + -no-g++-exceptions \ + -xft \ + -plugin-sql-mysql \ + -plugin-style-cde \ + -plugin-style-compact \ + -qt-style-motif \ + -plugin-style-motifplus \ + -plugin-style-platinum \ + -plugin-style-sgi \ + -plugin-style-windows \ + -enable-opengl + +# We're using '-i' to work around a bug where the build tries to strip html files. +# Build the important stuff: +make $NUMJOBS -i +make install || exit 1 +make $NUMJOBS -i symlinks sub-src sub-tools +make install || exit 1 +make install INSTALL_ROOT=$PKG || exit 1 +# Link the shared libraries into /opt/kde3/lib. +( cd /opt/kde3/lib${LIBDIRSUFFIX} + for file in qt3/lib/*.so* ; do + ln -sf $file . + done +) + +# Leave these out so as not to interfere with Qt4: +if [ -z "$NODEVEL" ]; then + # Add man pages: + mkdir -p $PKG/usr/man + cp -a doc/man/* $PKG/usr/man + find $PKG/usr/man -type f -exec gzip -9 "{}" \; +fi + +if [ $ARCH = "i486" ]; then + # Put this back as shipped: + ( cd $PKG/opt/kde3/lib/qt3-${VERSION} + zcat $CWD/qt.x86.cflags.diff.gz | patch -p1 -R ) +fi + +mkdir -p $PKG/etc/profile.d +cat $CWD/profile.d/qt.sh | sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" \ + > $PKG/etc/profile.d/qt.sh +cat $CWD/profile.d/qt.csh | sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" \ + > $PKG/etc/profile.d/qt.csh +chmod 755 $PKG/etc/profile.d/* + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Put a ton of links to more "normal" places. I'd just use a prefix of /usr, but it +# creates a ton of new (and ambiguously named) /usr directories... + +mkdir -p $PKG/opt/kde3/bin +( cd $PKG/opt/kde3/bin + for file in assistant designer linguist lrelease lupdate moc qm2ts qmake qtconfig uic ; do + ln -sf /opt/kde3/lib${LIBDIRSUFFIX}/qt3/bin/$file . + done +) + +sed -i -e "s#/lib\$#/lib${LIBDIRSUFFIX}#" \ + $PKG/opt/kde3/lib${LIBDIRSUFFIX}/qt3-$VERSION/lib/pkgconfig/qt-mt.pc || exit 1 +mkdir -p $PKG/opt/kde3/lib${LIBDIRSUFFIX}/pkgconfig +( cd $PKG/opt/kde3/lib${LIBDIRSUFFIX}/pkgconfig + ln -sf /opt/kde3/lib${LIBDIRSUFFIX}/qt3/lib/pkgconfig/qt-mt.pc . +) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + FAQ INSTALL LICENSE.GPL* LICENSE.QPL MANIFEST PLATFORMS README* changes* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# Put the actual file tree in /opt/kde3/lib/qt3: +mv $PKG/opt/kde3/lib${LIBDIRSUFFIX}/qt3-${VERSION} $PKG/opt/kde3/lib${LIBDIRSUFFIX}/qt3 +( cd $PKG/opt/kde3/lib${LIBDIRSUFFIX} ; ln -sf qt3 qt3-${VERSION}) + +( cd $PKG/opt/kde3/lib${LIBDIRSUFFIX} + for file in qt3/lib/*.so* ; do + ln -sf $file . + done +) + +# This much documentation isn't needed for the compat qt3 package -- look in the +# source if you need it. +rm -rf $PKG/opt/kde3/lib${LIBDIRSUFFIX}/qt3/doc + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz | sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" \ + > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/extra/source/kde3-compat/qt3/slack-desc b/extra/source/kde3-compat/qt3/slack-desc new file mode 100644 index 000000000..dc7ea57e6 --- /dev/null +++ b/extra/source/kde3-compat/qt3/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +qt3: Qt3 (a multi-platform C++ graphical user interface toolkit, version 3) +qt3: +qt3: Qt is a complete and well-developed object-oriented framework for +qt3: developing graphical user interface (GUI) applications using C++. +qt3: +qt3: This release is free only for development of free software for the X +qt3: Window System. If you use Qt for developing commercial or other +qt3: non-free software, you must have a professional license. Please see +qt3: http://www.trolltech.com/purchase.html for information on how to +qt3: obtain a professional license. +qt3: diff --git a/extra/source/mpg123/mpg123.SlackBuild b/extra/source/mpg123/mpg123.SlackBuild new file mode 100755 index 000000000..2212eb85b --- /dev/null +++ b/extra/source/mpg123/mpg123.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh +# Copyright 2006-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=mpg123 +VERSION=${VERSION:-0.65} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $PKG $TMP + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README \ + doc \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/extra/source/mpg123/slack-desc b/extra/source/mpg123/slack-desc new file mode 100644 index 000000000..cabaa7f17 --- /dev/null +++ b/extra/source/mpg123/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mpg123: mpg123 (a command-line mp3 player) +mpg123: +mpg123: (full?) MPEG 1.0/2.0, Layer 1,2 and 3 support (Layer-3 realtime only +mpg123: with a 'fast' machine). Since April 97, 128kbit j-stereo should work +mpg123: on a 486DX4-120. With 2:1 down-sampling or using the downmix-mode +mpg123: even a 486DX2-66 should play such a stream in realtime! +mpg123: +mpg123: The mpg123 project was started by Michel Hipp and is now being +mpg123: maintained by Thomas Orgis and Nicholas J. Humfrey. +mpg123: +mpg123: diff --git a/extra/source/mplayerplug-in/mplayerplug-in.SlackBuild b/extra/source/mplayerplug-in/mplayerplug-in.SlackBuild new file mode 100755 index 000000000..d37232fc4 --- /dev/null +++ b/extra/source/mplayerplug-in/mplayerplug-in.SlackBuild @@ -0,0 +1,247 @@ +#!/bin/sh +# $Id: mplayerplug-in.SlackBuild,v 1.3 2008/08/08 11:36:29 root Exp root $ +# Copyright (c) 2006-2008 Eric Hameleers , Eindhoven,NL +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: mplayerplug-in +# Descr: embedded video player for mozilla based browsers +# URL: http://mplayerplug-in.sourceforge.net/ +# Needs: MPlayer >= 1.0rc2 +# Changelog: +# 3.31-1: 05/Nov/2006 by Eric Hameleers +# * Initial build. +# 3.55-1: 08/Aug/2008 by Eric Hameleers +# * Update. +# +# Run 'sh mplayerplug-in.SlackBuild --cleanup' to build a Slackware package. +# The package (.txz) plus descriptive .txt file are created in /tmp . +# Install using 'installpkg'. +# +# ----------------------------------------------------------------------------- + +# Set initial variables: + +PRGNAM=mplayerplug-in +VERSION=${VERSION:-3.55} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +TAG=${TAG:-} + +DOCS="ChangeLog INSTALL LICENSE README TODO" + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz" +SRCURL="http://downloads.sourceforge.net/${PRGNAM}/${PRGNAM}-${VERSION}.tar.gz" + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +# Slackware 11 and up need other option (gcc > 3.3.x) +if [ $(gcc -dumpversion | tr -d '.' |cut -c 1-2) -gt 33 ]; then + MOPT=tune +else + MOPT=cpu +fi + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -m${MOPT}=i686" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; +esac + +# Create working directories: +mkdir -p $OUTPUT # place for the package to be saved +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # always erase old package's contents +rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build + +# Source file availability: +if ! [ -f ${SOURCE} ]; then + if ! [ "x${SRCURL}" == "x" ]; then + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)" + echo "Source '$(basename ${SOURCE})' not available yet..." + echo "Will download file to $(dirname $SOURCE)" + wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true + if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then + echo "Downloading '$(basename ${SOURCE})' failed... aborting the build." + mv -f "${SOURCE}" "${SOURCE}".FAIL + exit 1 + fi + else + echo "File '$(basename ${SOURCE})' not available... aborting the build." + exit 1 + fi +fi + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PRGNAM +echo "Extracting the source archive(s) for $PRGNAM..." +if $(file ${SOURCE} | grep -q ": bzip2"); then + tar -xjvf ${SOURCE} +elif $(file ${SOURCE} | grep -q ": gzip"); then + tar -xzvf ${SOURCE} +fi +cd ${PRGNAM}-${VERSION} +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-wmp \ + --enable-qt \ + --enable-rm \ + --enable-gmp \ + --enable-dvx \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log +make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log + +# Install all the needed stuff to the package dir +# Use installwatch if available, to produce a logfile of the installation +# process that is more easily readable: +if $(which installwatch > /dev/null 2>&1); then + installwatch -o $OUTPUT/install-${PRGNAM}.log make DESTDIR=$PKG install +else + make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log +fi + +# Prepare the config files: +mv $PKG/etc/mplayerplug-in.conf{,.new} +mv $PKG/etc/mplayerplug-in.types{,.new} + +# Add this to the doinst.sh +! [ -d $PKG/install ] && mkdir -p $PKG/install +cat <> $PKG/install/doinst.sh +# Handle the incoming configuration files: +config() { + for infile in \$1; do + NEW="\$infile" + OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then + # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} + +config etc/mplayerplug-in.conf.new +config etc/mplayerplug-in.types.new + +EOINS + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true +cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +cd $PKG +find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +cd - + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc +if [ -f $SRCDIR/doinst.sh ]; then + cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh +fi + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt +if [ -f $PKG/install/slack-required ]; then + cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep +fi + +# Clean up the extra stuff: +if [ "$P1" = "--cleanup" ]; then + rm -rf $TMP/tmp-$PRGNAM + rm -rf $PKG +fi diff --git a/extra/source/mplayerplug-in/slack-desc b/extra/source/mplayerplug-in/slack-desc new file mode 100644 index 000000000..5e847c964 --- /dev/null +++ b/extra/source/mplayerplug-in/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mplayerplug-in: mplayerplug-in (embedded video player for mozilla based browsers) +mplayerplug-in: +mplayerplug-in: mplayerplug-in is a browser plugin to allow playing embedded +mplayerplug-in: movies on web pages, using MPlayer. +mplayerplug-in: Media is played embedded in the page or in a separate window +mplayerplug-in: depending on how the author of the webpage intended the media to +mplayerplug-in: be displayed. +mplayerplug-in: +mplayerplug-in: +mplayerplug-in: mplayerplug-in homepage: http://mplayerplug-in.sf.net/ +mplayerplug-in: diff --git a/extra/source/partitionmanager/doinst.sh b/extra/source/partitionmanager/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/extra/source/partitionmanager/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/extra/source/partitionmanager/partitionmanager.SlackBuild b/extra/source/partitionmanager/partitionmanager.SlackBuild new file mode 100755 index 000000000..cf91510f1 --- /dev/null +++ b/extra/source/partitionmanager/partitionmanager.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.0.0-BETA1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-partitionmanager + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf partitionmanager-$VERSION +tar xvf $CWD/partitionmanager-$VERSION.tar.bz2 || exit 1 +cd partitionmanager-$VERSION || exit 1 +# All the rest of KDE uses 'en' not 'en_US' as a documentation language: +mv doc/{en_US,en} || exit 1 +sed -i -e 's/en_US/en/' doc/CMakeLists.txt +sed -i -e 's/en_US/en/' doc/en/CMakeLists.txt +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt \ + PATH=$QTDIR/bin:$PATH \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/partitionmanager-$VERSION +cp -a \ + BUGS CHANGES* COPYING* INSTALL README* \ + $PKG/usr/doc/partitionmanager-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/partitionmanager-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/extra/source/partitionmanager/slack-desc b/extra/source/partitionmanager/slack-desc new file mode 100644 index 000000000..0f8c66787 --- /dev/null +++ b/extra/source/partitionmanager/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------| +partitionmanager: partitionmanager (Graphical partition manager for KDE4) +partitionmanager: +partitionmanager: Easily manage disks, partitions and filesystems on your KDE +partitionmanager: desktop. Create, resize, move, copy, back up, restore or +partitionmanager: delete partitions. +partitionmanager: +partitionmanager: +partitionmanager: +partitionmanager: +partitionmanager: +partitionmanager: diff --git a/extra/source/recordmydesktop/recordmydesktop.SlackBuild b/extra/source/recordmydesktop/recordmydesktop.SlackBuild new file mode 100755 index 000000000..c5ff5d0e5 --- /dev/null +++ b/extra/source/recordmydesktop/recordmydesktop.SlackBuild @@ -0,0 +1,245 @@ +#!/bin/sh +# $Id: recordmydesktop.SlackBuild,v 1.8 2009/05/12 22:14:43 root Exp root $ +# Copyright (c) 2008 Eric Hameleers +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: recordmydesktop +# Descr: record desktop sessions with audio and video +# URL: http://recordmydesktop.sourceforge.net/ +# Needs: +# Changelog: +# 0.3.8.1-1: 17/Dec/2008 by Eric Hameleers +# * Initial build. +# 0.3.8.1-2: 13/may/2009 by Eric Hameleers +# * Rebuilt for python 2.6.2. +# +# Run 'sh recordmydesktop.SlackBuild --cleanup' to build a Slackware package. +# The package (.txz) and .txt file as well as build logs are created in /tmp . +# Install it using 'installpkg'. +# +# ----------------------------------------------------------------------------- + +# Set initial variables: + +PRGNAM=recordmydesktop +VERSION=${VERSION:-0.3.8.1} +QTVER=${QTVER:-0.3.8} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} +NUMJOBS=${NUMJOBS:" -j4 "} + +DOCS="AUTHORS COPYING README ChangeLog" +QTDOCS="AUTHORS COPYING README ChangeLog" + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +SOURCE[0]="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz" +SRCURL[0]="http://downloads.sourceforge.net/${PRGNAM}/${PRGNAM}-${VERSION}.tar.gz" + +SOURCE[1]="$SRCDIR/qt-${PRGNAM}-${QTVER}.tar.gz" +SRCURL[1]="http://downloads.sourceforge.net/${PRGNAM}/qt-${PRGNAM}-${QTVER}.tar.gz" + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; +esac + +# Create working directories: +mkdir -p $OUTPUT # place for the package to be saved +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # always erase old package's contents +rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build +rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log + # remove old log files + +# Source file availability: +for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do + if ! [ -f ${SOURCE[$i]} ]; then + if ! [ "x${SRCURL[$i]}" == "x" ]; then + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE[$i]="$OUTPUT/$(basename ${SOURCE[$i]})" + echo "Source '$(basename ${SOURCE[$i]})' not available yet..." + echo "Will download file to $(dirname $SOURCE[$i])" + wget -nv -T 20 -O "${SOURCE[$i]}" "${SRCURL[$i]}" || true + if [ $? -ne 0 -o ! -s "${SOURCE[$i]}" ]; then + echo "Downloading '$(basename ${SOURCE[$i]})' failed.. aborting the build." + mv -f "${SOURCE[$i]}" "${SOURCE[$i]}".FAIL + exit 1 + fi + else + echo "File '$(basename ${SOURCE[$i]})' not available.. aborting the build." + exit 1 + fi + fi +done + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PRGNAM +echo "Extracting the source archive(s) for $PRGNAM..." +for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do +tar -xvf ${SOURCE[$i]} +done +chown -R root:root * +chmod -R u+w,go+r-w,a-s * + +echo Building ... + +# First, the commandline program: +cd ${PRGNAM}-${VERSION} + LDFLAGS="$SLKLDFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + CFLAGS="$SLKCFLAGS" \ + ./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log + make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log + + if $(which installwatch > /dev/null 2>&1); then + installwatch -o $OUTPUT/install-${PRGNAM}.log make DESTDIR=$PKG install + else + make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log + fi +cd .. + +# Next, the QT4 GUI program: +cd qt-${PRGNAM}-${QTVER} + LDFLAGS="$SLKLDFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + CFLAGS="$SLKCFLAGS" \ + ./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-qt-${PRGNAM}.log + make 2>&1 | tee $OUTPUT/make-qt-${PRGNAM}.log + + if $(which installwatch > /dev/null 2>&1); then + installwatch -o $OUTPUT/install-${PRGNAM}.log make DESTDIR=$PKG install + else + make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log + fi +cd .. + +# Add this to the doinst.sh: +! [ -d $PKG/install ] && mkdir -p $PKG/install +cat <> $PKG/install/doinst.sh +# Update the desktop database: +if [ -x usr/bin/update-desktop-database ]; then + chroot . /usr/bin/update-desktop-database /usr/share/applications > /dev/null 2>&1 +fi + +EOT + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/qt-${PRGNAM} +( cd ${PRGNAM}-${VERSION} + cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true +) +( cd qt-${PRGNAM}-${QTVER} + cp -a $QTDOCS $PKG/usr/doc/$PRGNAM-$VERSION/qt-${PRGNAM} || true +) +cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc +if [ -f $SRCDIR/doinst.sh ]; then + cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh +fi + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt +if [ -f $PKG/install/slack-required ]; then + cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.dep +fi + diff --git a/extra/source/recordmydesktop/slack-desc b/extra/source/recordmydesktop/slack-desc new file mode 100644 index 000000000..facfd02b9 --- /dev/null +++ b/extra/source/recordmydesktop/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +recordmydesktop: recordmydesktop (record desktop sessions with audio and video) +recordmydesktop: +recordmydesktop: recordMyDesktop is a desktop session recorder for GNU/Linux +recordmydesktop: that attemps to be easy to use, yet also effective at it's +recordmydesktop: primary task. +recordmydesktop: The command-line program (the backend) and the graphical +recordmydesktop: interface (the frontend) are separate programs, but all the +recordmydesktop: functionality relies on the backend which is also a standalone +recordmydesktop: program. The frontend can't function on it's own. +recordmydesktop: +recordmydesktop: recordmydesktop home: http://recordmydesktop.sourceforge.net/ diff --git a/extra/source/slacktrack/slacktrack.SlackBuild b/extra/source/slacktrack/slacktrack.SlackBuild new file mode 100755 index 000000000..abefb3be2 --- /dev/null +++ b/extra/source/slacktrack/slacktrack.SlackBuild @@ -0,0 +1,21 @@ +#!/bin/sh +# Set initial variables: +CWD=`pwd` +if [ "$TMP" = "" ]; then + TMP=/tmp +fi + +export VERSION=2.06 +export ARCH=${ARCH:-x86_64} +export PKGEXT=${PKGEXT:-txz} + +if [ ! -d $TMP ]; then + mkdir -p $TMP # location to build the source +fi +cd $TMP +rm -rf slacktrack +tar xvf $CWD/slacktrack-$VERSION-source.tar.gz +cd slacktrack + +# Start the "real" SlackBuild: +./slacktrack.SlackBuild diff --git a/extra/source/tightvnc/doinst.sh b/extra/source/tightvnc/doinst.sh new file mode 100644 index 000000000..8ce980e53 --- /dev/null +++ b/extra/source/tightvnc/doinst.sh @@ -0,0 +1,24 @@ +# Handle the incoming configuration files: +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/tightvncserver.conf.new +config etc/rc.d/rc.vncservers.new +config etc/rc.d/rc.vncservers.conf.new + +# Update the desktop database: +if [ -x usr/bin/update-desktop-database ]; then + chroot . /usr/bin/update-desktop-database usr/share/applications > /dev/null +2>&1 +fi + diff --git a/extra/source/tightvnc/slack-desc b/extra/source/tightvnc/slack-desc new file mode 100644 index 000000000..4003e63af --- /dev/null +++ b/extra/source/tightvnc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tightvnc: tightvnc (remote control software) +tightvnc: +tightvnc: Virtual Network Computing (VNC) is a remote display system which +tightvnc: allows you to view a desktop environment from anywhere on the Internet +tightvnc: and from a wide variety of machine architectures. +tightvnc: TightVNC is an enhanced VNC distribution. This package contains a +tightvnc: client which will allow you to connect to other desktops running a +tightvnc: VNC or a TightVNC server. +tightvnc: +tightvnc: tightvnc home: http://www.tightvnc.com/ +tightvnc: diff --git a/extra/source/tightvnc/tightvnc.SlackBuild b/extra/source/tightvnc/tightvnc.SlackBuild new file mode 100755 index 000000000..526b8f3d6 --- /dev/null +++ b/extra/source/tightvnc/tightvnc.SlackBuild @@ -0,0 +1,128 @@ +#!/bin/sh +# Copyright 2007-2009 Eric Hameleers, Eindhoven, NL +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: tightvnc +# Descr: remote control software +# URL: http://www.tightvnc.com/ +# ----------------------------------------------------------------------------- + +# Set initial variables: + +PRGNAM=tightvnc +VERSION=${VERSION:-1.3.10} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PRGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" + ;; +esac + +# Explode the package framework: +cd $PKG + explodepkg $CWD/_$PRGNAM.tar.gz +cd - + +cd $TMP +rm -rf vnc_unixsrc +tar xvf $CWD/${PRGNAM}-${VERSION}_unixsrc.tar.?z* || exit 1 +cd vnc_unixsrc || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Make vncserver use sane pathnames and executable permissions: +zcat $CWD/tightvnc.paths-and-perms.diff.gz | patch -p1 --verbose || exit 1 + +# Use xinit's Xclients script to start the session: +cat vnc-xclients.patch | sed -e 's/Red Hat /Slackware /' | patch || exit 1 + +xmkmf -a +make CDEBUGFLAGS="$SLKCFLAGS" World || exit 1 + +cd Xvnc + LDFLAGS="$SLKLDFLAGS" \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure + make EXTRA_LIBRARIES="-lwrap -lnss_nis" CDEBUGFLAGS="$SLKCFLAGS" \ + EXTRA_DEFINES="-DUSE_LIBWRAP=1" +cd - # end 'cd Xvnc' + +# Manually install files: +mkdir -p $PKG/usr/bin $PKG/usr/man/man1 +./vncinstall $PKG/usr/bin $PKG/usr/man + +mkdir -p $PKG/usr/share/tightvnc +cp -aR classes $PKG/usr/share/tightvnc/ + +mkdir $PKG/etc +cp -a tightvncserver.conf $PKG/etc/tightvncserver.conf.new + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + LICENCE.TXT README WhatsNew ChangeLog \ + $PKG/usr/doc/$PRGNAM-$VERSION +mv $PKG/install/README.1st $PKG/usr/doc/$PRGNAM-$VERSION + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/extra/source/tightvnc/tightvnc.paths-and-perms.diff b/extra/source/tightvnc/tightvnc.paths-and-perms.diff new file mode 100644 index 000000000..b6eb14f16 --- /dev/null +++ b/extra/source/tightvnc/tightvnc.paths-and-perms.diff @@ -0,0 +1,52 @@ +diff -ur vnc_unixsrc.orig/tightvncserver.conf vnc_unixsrc/tightvncserver.conf +--- vnc_unixsrc.orig/tightvncserver.conf 2009-02-12 05:27:18.000000000 +0100 ++++ vnc_unixsrc/tightvncserver.conf 2009-06-02 23:55:22.000000000 +0200 +@@ -19,15 +19,15 @@ + # $geometry = "1024x768"; + # $depth = 24; + # $desktopName = "X"; +-# $vncClasses = "/usr/local/vnc/classes"; ++# $vncClasses = "/usr/share/tightvnc/classes"; + # $vncUserDir = "$ENV{HOME}/.vnc"; +-# $fontPath = "unix/:7100"; ++# $fontPath = "/usr/share/fonts/misc/,/usr/share/fonts/Type1/,/usr/share/fonts/75dpi/"; + # $authType = "-rfbauth $vncUserDir/passwd"; +-# $colorPath = "/usr/lib/X11/rgb"; ++# $colorPath = "/usr/share/X11/rgb"; + + ## Here is another example of setting the font path: + # +-# $fontPath = "/usr/lib/X11/fonts/misc/" ++# $fontPath = "unix/:7100"; + # $fontPath = "$fontPath,/usr/lib/X11/fonts/75dpi/"; + + ## You might wish to make your vnc directory under /tmp, to make sure +diff -ur vnc_unixsrc.orig/vncinstall vnc_unixsrc/vncinstall +--- vnc_unixsrc.orig/vncinstall 2002-03-19 12:44:02.000000000 +0100 ++++ vnc_unixsrc/vncinstall 2009-06-02 23:51:54.000000000 +0200 +@@ -47,7 +47,7 @@ + else + echo "Copying $f -> $bin_dst/`basename $f`" + cp -pf $f $bin_dst +- chmod 0555 $bin_dst/`basename $f` ++ chmod 0755 $bin_dst/`basename $f` + fi + + # Installing man pages +diff -ur vnc_unixsrc.orig/vncserver vnc_unixsrc/vncserver +--- vnc_unixsrc.orig/vncserver 2009-02-12 05:27:18.000000000 +0100 ++++ vnc_unixsrc/vncserver 2009-06-02 23:51:39.000000000 +0200 +@@ -32,10 +32,11 @@ + $geometry = "1024x768"; + $depth = 24; + $desktopName = "X"; +-$vncClasses = "/usr/local/vnc/classes"; ++$vncClasses = "/usr/share/tightvnc/classes"; + $vncUserDir = "$ENV{HOME}/.vnc"; +-$fontPath = "unix/:7100"; ++$fontPath = "/usr/share/fonts/misc/,/usr/share/fonts/Type1/,/usr/share/fonts/75dpi/"; + $authType = "-rfbauth $vncUserDir/passwd"; ++$colorPath = "/usr/share/X11/rgb"; + + # Read configuration from the system-wide and user files if present. + diff --git a/extra/source/wicd/README.SLACKWARE b/extra/source/wicd/README.SLACKWARE new file mode 100644 index 000000000..47a9cba99 --- /dev/null +++ b/extra/source/wicd/README.SLACKWARE @@ -0,0 +1,21 @@ +After installing this package, make sure the /etc/rc.d/rc.wicd +script is executable; if necessary, do: + chmod +x /etc/rc.d/rc.wicd + +Results have varied, but you will probably need/want to remove +any references to interfaces from /etc/rc.d/rc.inet1.conf - in +other words, make that file look as if netconfig has never been +run. + +When you start X, you should see a wicd icon in the system tray; +click on it to open the gui interface and configure as desired. +Your user account will need to be a member of the 'netdev' group +in order to use wicd. + +Note that urwid will need to be installed if you want to use the +curses client. + +Also, if you don't have kde installed, you won't have a graphical +sudo client available; you might wish to consider ktsuss from +SlackBuilds.org. + diff --git a/extra/source/wicd/doinst.sh b/extra/source/wicd/doinst.sh new file mode 100644 index 000000000..2c0f7d98b --- /dev/null +++ b/extra/source/wicd/doinst.sh @@ -0,0 +1,36 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.wicd.new: +if [ -e etc/rc.d/rc.wicd ]; then + cp -a etc/rc.d/rc.wicd etc/rc.d/rc.wicd.new.incoming + cat etc/rc.d/rc.wicd.new > etc/rc.d/rc.wicd.new.incoming + mv etc/rc.d/rc.wicd.new.incoming etc/rc.d/rc.wicd.new +fi + +# Update desktop menu +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +# Update icon cache if one exists +if [ -r usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache -t -f usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi + +config etc/dbus-1/system.d/wicd.conf.new +config etc/rc.d/rc.wicd.new +config etc/wicd/manager-settings.conf.new + diff --git a/extra/source/wicd/slack-desc b/extra/source/wicd/slack-desc new file mode 100644 index 000000000..47cf875f8 --- /dev/null +++ b/extra/source/wicd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +wicd: wicd (network manager for linux) +wicd: +wicd: wicd is a wired and wireless network manager for Linux. +wicd: Some features include: +wicd: - Ability to connect to wired and wireless networks +wicd: - Profiles for each wireless network and wired network +wicd: - Many encryption schemes, some of which include WEP/WPA/WPA2 +wicd: - Compatible with wireless-tools +wicd: +wicd: Homepage: http://wicd.net +wicd: diff --git a/extra/source/wicd/wicd.SlackBuild b/extra/source/wicd/wicd.SlackBuild new file mode 100755 index 000000000..21d6d454c --- /dev/null +++ b/extra/source/wicd/wicd.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008,2009 Robby Workman Northport, AL, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +PRGNAM=wicd +VERSION=${VERSION:-1.6.2.1} +ARCH=${ARCH:-x86_64} # This should be the same as the python package +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . + +python setup.py configure \ + --lib=/usr/lib${LIBDIRSUFFIX}/wicd \ + --kdedir=/usr/share/autostart \ + --backends=/usr/lib${LIBDIRSUFFIX}/wicd/backends \ + --wicdgroup=netdev \ + || exit 1 +python setup.py install --root=$PKG || exit 1 + +# Handle some Slackware defaults +# Use dhcpcd as the dhcp client +# Use kdesu as the graphical sudo application +cat << EOF > $PKG/etc/wicd/manager-settings.conf.new +[Settings] +dhcp_client = 2 +sudo_app = 2 +EOF + +# Don't clobber dbus config on upgrade +mv $PKG/etc/dbus-1/system.d/wicd.conf $PKG/etc/dbus-1/system.d/wicd.conf.new +mv $PKG/etc/rc.d/rc.wicd $PKG/etc/rc.d/rc.wicd.new + +# Compress the man pages and add a bit to the package docs +( cd $PKG/usr/man || exit 1 + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) +cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -c n -l y $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/extra/source/yasm/slack-desc b/extra/source/yasm/slack-desc new file mode 100644 index 000000000..fc28253f2 --- /dev/null +++ b/extra/source/yasm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +yasm: yasm (complete rewrite of the NASM assembler) +yasm: +yasm: Yasm is a complete rewrite of the NASM assembler under the "new" BSD +yasm: License (some portions are under other licenses, see COPYING for +yasm: details). Yasm currently supports the x86 and AMD64 instruction sets, +yasm: accepts NASM and GAS assembler syntaxes, outputs binary, ELF32, ELF64, +yasm: 32 and 64-bit Mach-O, RDOFF2, COFF, Win32, and Win64 object formats, +yasm: and generates source debugging information in STABS, DWARF 2, and +yasm: CodeView 8 formats. +yasm: +yasm: yasm home: http://www.tortall.net/projects/yasm/ diff --git a/extra/source/yasm/yasm.SlackBuild b/extra/source/yasm/yasm.SlackBuild new file mode 100755 index 000000000..0c71cdae3 --- /dev/null +++ b/extra/source/yasm/yasm.SlackBuild @@ -0,0 +1,204 @@ +#!/bin/sh +# $Id: yasm.SlackBuild,v 1.7 2009/05/12 20:24:31 root Exp root $ +# Copyright (c) 2008 Eric Hameleers +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: yasm +# Descr: complete rewrite of the NASM assembler +# URL: http://www.tortall.net/projects/yasm/ +# Needs: +# Changelog: +# 0.7.1-1: 16/Jun/2008 by Eric Hameleers +# * Initial build. +# 0.7.2-1: 08/dec/2008 by Eric Hameleers +# * Update. +# 0.8.0-1: 12/may/2009 by Eric Hameleers +# * Update. +# +# Run 'sh yasm.SlackBuild' to build a Slackware package. +# The package (.txz) plus descriptive .txt file are created in /tmp . +# Install using 'installpkg'. +# +# ----------------------------------------------------------------------------- + +PRGNAM=yasm +VERSION=${VERSION:-0.8.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +TAG=${TAG:-} + +DOCS="ABOUT-NLS AUTHORS ChangeLog COPYING GNU_* NEWS README *.txt" + +# If you want to disable python bindings, set ENABLE_PYTHON to "NO". +# Building python support on Slackware 12.0 and older will fail (missing Pyrex). +ENABLE_PYTHON=${ENABLE_PYTHON:-"YES"} + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz" +SRCURL="http://www.tortall.net/projects/${PRGNAM}/releases/${PRGNAM}-${VERSION}.tar.gz" + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; +esac + +# Create working directories: +mkdir -p $OUTPUT # place for the package to be saved +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # always erase old package's contents +rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build + +# Source file availability: +if ! [ -f ${SOURCE} ]; then + if ! [ "x${SRCURL}" == "x" ]; then + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)" + echo "Source '$(basename ${SOURCE})' not available yet..." + echo "Will download file to $(dirname $SOURCE)" + wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true + if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then + echo "Downloading '$(basename ${SOURCE})' failed... aborting the build." + mv -f "${SOURCE}" "${SOURCE}".FAIL + exit 1 + fi + else + echo "File '$(basename ${SOURCE})' not available... aborting the build." + exit 1 + fi +fi + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PRGNAM +echo "Extracting the source archive(s) for $PRGNAM..." +tar -xvf ${SOURCE} +cd ${PRGNAM}-${VERSION} +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +if [ "$ENABLE_PYTHON" = "YES" ]; then + PYTHONSTUFF="--enable-python --enable-python-bindings" +else + PYTHONSTUFF="" +fi + +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + ${PYTHONSTUFF} \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log +make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log + +# Install all the needed stuff to the package dir +# Use installwatch if available, to produce a logfile of the installation +# process that is more easily readable: +if $(which installwatch > /dev/null 2>&1); then + installwatch -o $OUTPUT/install-${PRGNAM}.log make DESTDIR=$PKG install +else + make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log +fi + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true +cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Remove empty share directory: +rmdir $PKG/usr/share || true + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt + diff --git a/extra/wicd/README.SLACKWARE b/extra/wicd/README.SLACKWARE new file mode 100644 index 000000000..47a9cba99 --- /dev/null +++ b/extra/wicd/README.SLACKWARE @@ -0,0 +1,21 @@ +After installing this package, make sure the /etc/rc.d/rc.wicd +script is executable; if necessary, do: + chmod +x /etc/rc.d/rc.wicd + +Results have varied, but you will probably need/want to remove +any references to interfaces from /etc/rc.d/rc.inet1.conf - in +other words, make that file look as if netconfig has never been +run. + +When you start X, you should see a wicd icon in the system tray; +click on it to open the gui interface and configure as desired. +Your user account will need to be a member of the 'netdev' group +in order to use wicd. + +Note that urwid will need to be installed if you want to use the +curses client. + +Also, if you don't have kde installed, you won't have a graphical +sudo client available; you might wish to consider ktsuss from +SlackBuilds.org. + diff --git a/isolinux/README.TXT b/isolinux/README.TXT new file mode 100644 index 000000000..94f84489d --- /dev/null +++ b/isolinux/README.TXT @@ -0,0 +1,132 @@ + +HOW TO MAKE A BOOTABLE SLACKWARE DVD ISO IMAGE + +To make a bootable Slackware install DVD, get into the top level Slackware +directory (The one with ChangeLog.txt in it) and issue a command like this +to build the ISO image in /tmp: + +mkisofs -o /tmp/slackware-dvd.iso \ + -R -J -A "Slackware Install" \ + -hide-rr-moved \ + -v -d -N \ + -no-emul-boot -boot-load-size 4 -boot-info-table \ + -sort isolinux/iso.sort \ + -b isolinux/isolinux.bin \ + -c isolinux/isolinux.boot \ + -V "SlackDVD" . + +On my system, here's the command I'd use to burn the resulting DVD ISO: + +growisofs -speed=2 -dvd-compat -Z /dev/dvd=slackware-dvd.iso + +If your burner is not /dev/dvd, replace the device with the one your +system uses. + +I find discs burned at 2x are more reliable than ones burned at higher +speeds, but you may see completely different results depending on media +and burner type. The -dvd-compat option is also used so that a complete +lead-out is written to the media for maximum compatibility. + +Or, you can burn directly from the Slackware tree to a DVD(-/+)R(W): + +growisofs \ + -Z /dev/dvd \ + -R -J -A "Slackware Install" \ + -hide-rr-moved \ + -v -d -N \ + -no-emul-boot -boot-load-size 4 -boot-info-table \ + -sort isolinux/iso.sort \ + -b isolinux/isolinux.bin \ + -c isolinux/isolinux.boot \ + -dvd-compat \ + -V "SlackDVD" . + + +HOW TO MAKE A SET OF BOOTABLE / INSTALLABLE CDROMS + +This is a little bit more tricky. Step one will be to split the tree into +portions that will fit on the media that you plan to burn to. The first +disc must contain these directories: + +/isolinux/ +/kernels/ +/slackware/ + +You'll need to make other /slackware/ directories on discs 2, 3, and maybe +more, moving some of the disc series from disc 1 to other discs to make +things fit. It is also possible to split a series to make more efficient +use of the CD media. See the README_SPLIT.TXT example and instructional +file in this directory for details about how to set that up. + +The rest of the splitting up of discs is left as an exercise for the reader. + +To make the first (bootable) ISO, a command like this is used within the +directory where the disc tree is. Let's say the directory is 'd1' and you +wish to output the ISO image in /tmp: + +cd d1 +mkisofs -o /tmp/slackware-install-1.iso \ + -R -J -A "Slackware Install 1" \ + -hide-rr-moved \ + -v -d -N \ + -no-emul-boot -boot-load-size 4 -boot-info-table \ + -sort isolinux/iso.sort \ + -b isolinux/isolinux.bin \ + -c isolinux/isolinux.boot \ + -V "SlackCD1" . + +Making a non-bootable disc is similar. Just omit a few options: + +cd d2 +mkisofs -o /tmp/slackware-install-2.iso \ + -R -J -A "Slackware Install 2" \ + -hide-rr-moved \ + -v -d -N \ + -V "SlackCD2" . + +To burn an ISO image to CD-R(W), the cdrecord command is used. For complete +instructions, see the man page ('man cdrecord'). On my own machine where +the burner is /dev/cdrw, disc one would be burned with the following command: + +cat /tmp/slackware-install-1.iso | cdrecord -v dev=/dev/cdrw speed=10 fs=8m -tao -eject -data - + +As before, it's possible to burn from the disc trees without the intermediate +step of creating iso images by omitting the -o option to mkisofs and piping +the output directly to cdrecord: + +cd d1 +mkisofs \ + -R -J -A "Slackware Install 1" \ + -hide-rr-moved \ + -v -d -N \ + -no-emul-boot -boot-load-size 4 -boot-info-table \ + -sort isolinux/iso.sort \ + -b isolinux/isolinux.bin \ + -c isolinux/isolinux.boot \ + -V "SlackCD1" . | cdrecord -v dev=/dev/cdrw speed=10 fs=8m -tao -eject -data - + +----- + +NOTES: + The isolinux/isolinux.boot file will be created on the disc; it's not + supposed to be in the source tree. I mention this only because so many + people report the "missing" isolinux/isolinux.boot file as a bug. + + The "-boot-load-size 4" is actually not large enough to hold the isolinux + boot loader, but many BIOS implementations are broken and will *only* + accept "4". Evidently many newer, more correct BIOS implementations + expect this and will continue to load the boot loader file until the + EOF is reached. Anyway, previous uses of larger values were correct, but + led to the Slackware ISO not booting on some machines which contained + broken BIOS implementations. It is my hope that by using the incorrect + value of 4 sectors that the ISO will boot on most (if not all) machines + that are supposed to be able to boot from an ISO image. + + I don't know how to create a bootable Slackware ISO on operating systems + other than Linux, but it should be easy to burn the Linux-created ISO with + most CD burning software on any operating system. + +Enjoy! + + -P. + diff --git a/isolinux/README_SPLIT.TXT b/isolinux/README_SPLIT.TXT new file mode 100644 index 000000000..3216957d6 --- /dev/null +++ b/isolinux/README_SPLIT.TXT @@ -0,0 +1,21 @@ + +Hello, + +Thanks for noticing this README-encrypted file. :-) + +When found on a disc-media based Slackware distribution, this file indicates +an incomplete software series that continues on the next disc. + +The installer will ask for the next disc and look for the rest of the +packages there. If you are installing packages from the command line, look +at the next disc to make certain that you install all the packages you need. + +For example, to split /slackware/kde across two discs, both discs will need +to have /slackware/kde directories. The first one should contain a copy of +this file. The second one should have the install.end file, the additional +packages not in the first directory, and an extra copy of the tagfile file. + +Have fun! + + -- The Management + diff --git a/isolinux/f2.txt b/isolinux/f2.txt new file mode 100644 index 000000000..1b79d8eef --- /dev/null +++ b/isolinux/f2.txt @@ -0,0 +1,16 @@ + + -+ Kernel Selection Help +- + +You'll need one kernel to get Linux started on your system so that you can +install it. The default kernel is huge.s, which requires at least a +Pentium Pro processor. There is also a "speakup.s" kernel, which supports +various speech synthesizers. + +*************************************************************************** +* Tip: If you have no idea which kernel to use, go with huge.s! * +*************************************************************************** + +To boot the chosen kernel put the name of the kernel and press enter. + +boot: huge.s "For example, boot the 'huge.s' kernel!" + diff --git a/isolinux/iso.sort b/isolinux/iso.sort new file mode 100644 index 000000000..ade31e705 --- /dev/null +++ b/isolinux/iso.sort @@ -0,0 +1,3 @@ +isolinux 100 +isolinux/isolinux.bin 200 +kernels 50 diff --git a/isolinux/isolinux.boot b/isolinux/isolinux.boot new file mode 100644 index 000000000..97f9401ec Binary files /dev/null and b/isolinux/isolinux.boot differ diff --git a/isolinux/isolinux.cfg b/isolinux/isolinux.cfg new file mode 100644 index 000000000..ccca60d79 --- /dev/null +++ b/isolinux/isolinux.cfg @@ -0,0 +1,12 @@ +default huge.s +prompt 1 +timeout 1200 +display message.txt +F1 message.txt +F2 f2.txt +label huge.s + kernel /kernels/huge.s/bzImage + append initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 rw SLACK_KERNEL=huge.s +label speakup.s + kernel /kernels/speakup.s/bzImage + append initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 rw SLACK_KERNEL=speakup.s diff --git a/isolinux/message.txt b/isolinux/message.txt new file mode 100644 index 000000000..a28cd3a23 --- /dev/null +++ b/isolinux/message.txt @@ -0,0 +1,16 @@ + +Welcome to 09Slackware6407 version 13.0 (Linux kernel 2.6.29.6)! + +If you need to pass extra parameters to the kernel, enter them at the prompt +below after the name of the kernel to boot (huge.s etc). + +In a pinch, you can boot your system from here with a command like: + +boot: huge.s root=/dev/hda1 rdinit= ro + +In the example above, /dev/hda1 is the / Linux partition. + +This prompt is just for entering extra parameters. If you don't need to enter +any parameters, hit ENTER to boot the default kernel "huge.s" or press [F2] +for a listing of more kernel choices. + diff --git a/isolinux/sbootmgr/RAWRITE12.DOC b/isolinux/sbootmgr/RAWRITE12.DOC new file mode 100644 index 000000000..f4871d1f8 --- /dev/null +++ b/isolinux/sbootmgr/RAWRITE12.DOC @@ -0,0 +1,86 @@ +RaWrite 1.2 +----------- + +Purpose +------- + +Write a disk image file to a 360K floppy disk. + + +Equipment/Software Requirements +------------------------------- + +PC/XT/AT with a floppy disk drive capable of reading and writing a 360K +diskette. + +This program uses generic low-level BIOS diskette read/write functions. It +should be portable to nearly every PC in existance. PS/2's should be able +to run RawWrite but this has not been tested. + + +CAVEAT +------ + +This program will write ANY disk file to a floppy, overwriting any previous +information that may have been present. If you wish to re-use a diskette +under MS-DOS thats been written to by RawWrite then the disk will need to be +reformatted; all MS-DOS specific information will have been erased. + + +How to Compile +-------------- + +TCC rawrite.c + +The source code is specific to Borland International's Turbo C 2.01 and has +been tested in all memory models. + + +Usage +----- + +C> RAWRITE + +And follow the prompts. All arguments are case-insensitive. + +A sample run is shown below. The disk file being written, in this example, +is named DEMODISK and the destination - where the image is being written - +is the B: drive. + +This program may be aborted at any time by typing ^C. + + +Sample Run +---------- + +C> RAWRITE +RaWrite 1.2 - Write disk file to raw floppy diskette + +Enter source file name: DEMODISK +Enter destination drive: B +Please insert a formatted 360K diskette into drive B: and press -ENTER- : +Writing image to drive B: + + +Errors +------ + +RaWrite attempts to determine if the diskette is a 360K, 720K, 1.2M, or +1.44M diskette by reading specific sectors. If the inserted diskette is not +one of the mentioned types, then RaWrite will abort with a short error +message. + +Errors such as write protect, door open, bad disk, bad sector, etc. cause a +program abort with a short error message. + + +History +------- + + 1.0 - Initial release + 1.1 - Beta test (fixing bugs) 4/5/91 + Some BIOS's don't like full-track writes. + 1.101 - Last beta release. 4/8/91 + Fixed BIOS full-track write by only only + writing 3 sectors at a time. + 1.2 - Final code and documentation clean-ups. 4/9/91 diff --git a/isolinux/sbootmgr/RAWRITENT.DOC b/isolinux/sbootmgr/RAWRITENT.DOC new file mode 100644 index 000000000..6b8dcb380 --- /dev/null +++ b/isolinux/sbootmgr/RAWRITENT.DOC @@ -0,0 +1,176 @@ +{ This Program is released unter the terms of the GNU Public License (GPL). + In short words this means anybody can do anything with it except incorporating it + in whole or part into a new application that is sold and/or marketed commercially, + without disclosing the sources to the public. + For further details, refer to www.gnu.org. + + This program has been written by Benedikt Hochstrasser (bhoc@pentagroup.ch or + tictactux@swissonline.ch. Its purpose is to transfer raw images to diskette, just + like the rawrite program supplied with Slackware Linux. The difference is: this is + a native Windows NT application. + Syntax: RaWriteNT + + Use at your own risk. Although that piece of software has been thouroughly tested I + am not responsible for any damage resulting in the use of this software. This software + will overwrite stuff stored on a direct-access storage device such as a diskette, + hard disk, zip drive, LS-120 drive or similar medium. You have been warned. + + Zurich, Late August 2000. (c) 2000 bhoc@pentagroup.ch +} + +program RaWriteNT; + +{$APPTYPE CONSOLE} +{$D-,L-,Y-,C-} + +uses windows; + +{$R *.RES} + +const IOCTL_DISK_GET_DRIVE_GEOMETRY: Cardinal = $70000; + +type TDiskGeometry = record + Cylinders : Int64; + Media_Type : LongInt; + TracksPerCylinder : Cardinal; + SectorsPerTrack : Cardinal; + BytesPerSector : Cardinal; + end; + +var InFileName, OutFileName: String; + Drive: Char; + HIn, HOut, BufBytes, FileSize, MediaSize, BlkSize, BlkNum, i: Cardinal; + Buf: Array[0..65535] of Byte; + DriveGeometry: TDiskGeometry; + +function ExtractFileName(FullName: String): String; + { cf SysUtils.ExtractFileName - mimicked here for size purposes } + var i, n: integer; + begin + n := Length(FullName); + Result := FullName; + for i := n downto 1 do if FullName[i] = '\' then break; + if i > 1 then Result := Copy(FullName, i+1, n-i); + end; + +function IsWinNT: Boolean; + { that should be obvious } + var osinfo: TOSVersionInfo; + begin + Result := False; + osinfo.dwOSVersionInfoSize := SizeOf(osinfo); + if GetVersionEx(osinfo) then + Result := (osinfo.dwPlatformId = VER_PLATFORM_WIN32_NT); + end; + +procedure ReReadDrive; + { just invoke a dummy 'get free disk space' to re-initialize the drive after + the write } + var BytesPerSect, FreeCl, TotCl, SecPerCl: Cardinal; + begin + GetDiskFreeSpace(PChar(Drive + ':\'), SecPerCl, BytesPerSect, FreeCl, TotCl); + end; + +begin { finally. dah main program. } + + Writeln; + + { do the copyright messages } + Writeln('RaWriteNT 1.0 by Ben Hochstrasser (bhoc@pentagroup.ch)'); + + { discourage Win9x users } + If Not IsWinNT then begin + Writeln(ParamStr(0), ' has been tested under Windows NT only. Sorry...'); + halt(255); + end; + + { get parameters } + InFileName := ''; + OutFileName := ''; + if ParamCount > 0 then InFileName := ParamStr(1); + if ParamCount > 1 then OutFileName := ParamStr(2); + if InFileName = '' then begin + Write('Source Image File name: '); + Readln(InFileName); + if InFileName = '' then halt(255); + end; + if OutFileName = '' then begin + Write('Target Drive [A]: '); + Readln(OutFileName); + end; + + { check target } + if OutFileName = '' then + Drive := 'A' + else + Drive := UpCase(Char(OutFileName[1])); + if GetDriveType(PChar(Drive + ':\')) in [DRIVE_FIXED, DRIVE_REMOTE, DRIVE_CDROM] then begin + Writeln('Drive ' + Drive + ': does not appear to be a removable (and writable) drive.'); + Writeln('Hard Disks, Network Drives and CD-ROM Drives cannot be Targets. Sorry.'); + Halt(255); + end; + { prepend the NT incantation stuff } + OutFileName := '\\.\' + Drive + ':'; + + { try to open devices } + HIn := CreateFile(PChar(InFileName), GENERIC_READ, 0, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0); + if HIn = 0 then begin + Writeln('Fatal Error: Cannot open ' + InFileName + ' for read.'); + Halt(1); + end; + HOut := CreateFile(PChar(OutFileName), GENERIC_WRITE, 0, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + if HOut = 0 then begin + Writeln('Fatal Error: Cannot open ' + OutFileName + ' for write.'); + CloseHandle(HIn); + Halt(2); + end; + + { overwrite 1st sector with 0 }; + FillChar(Buf, 512, 0); + WriteFile(HOut, Buf, 512, BufBytes, NIL); + { get target geometry } + DeviceIoControl(HOut, IOCTL_DISK_GET_DRIVE_GEOMETRY, nil, 0, @DriveGeometry, SizeOf(DriveGeometry), BufBytes, NIL); + { determine sizes } + MediaSize := DriveGeometry.BytesPerSector * DriveGeometry.SectorsPerTrack * DriveGeometry.TracksPerCylinder * DriveGeometry.Cylinders; + FileSize := GetFileSize(HIn, Nil); + if FileSize > MediaSize then begin + Writeln('Oops - That file is too big for this medium (', FileSize, ' vs. ', MediaSize, ' Bytes).'); + Halt(3); + end; + { block size is 1 track } + BlkSize := DriveGeometry.SectorsPerTrack * DriveGeometry.BytesPerSector; + { round up # of blocks if necessary } + BlkNum := (FileSize + BlkSize - 1) DIV BlkSize; + Writeln('Transferring ', FileSize, ' Bytes (', + (FileSize + DriveGeometry.BytesPerSector - 1) div DriveGeometry.BytesPerSector, + ' Sectors) from Image ', ExtractFileName(InFileName), ' to Drive ', Drive, ':'); + { move file pointers to beginning } + SetFilePointer(hIn, 0, NIL, FILE_BEGIN); + SetFilePointer(hOut, 0, NIL, FILE_BEGIN); + { loop through all blocks } + for i := 1 to BlkNum do begin + if not ReadFile(HIn, Buf, BlkSize, BufBytes, NIL) then begin + writeln('Error ', GetLastError, ' on File Read'); + break; + end; + if not WriteFile(HOut, Buf, BlkSize, BufBytes, NIL) then begin + writeln('Error ', GetLastError, ' on File Write'); + break; + end; + write((100 * i) div BlkNum, '% completed.', #13); + end; + writeln; + { close files } + CloseHandle(HIn); + CloseHandle(HOut); + + { re-read target medium information } + ReReadDrive; + + If ParamCount = 0 then begin + Writeln; + Writeln('(Press any Key) '); + Readln; + end; +end. + diff --git a/isolinux/sbootmgr/README.TXT b/isolinux/sbootmgr/README.TXT new file mode 100644 index 000000000..204d5d82b --- /dev/null +++ b/isolinux/sbootmgr/README.TXT @@ -0,0 +1,29 @@ +sbootmgr.dsk This nifty little tool allows selecting various devices to boot + from a menu, and even allows booting a CD-ROM in machines where + the BIOS doesn't support it (or it's supposed to support it, but + it just doesn't work). If you have trouble booting the + Slackware CD-ROM, you might try writing this image to a floppy, + booting it, and then selecting your CD-ROM drive as the boot + device. + + The SBM installer is available as a Slackware package (called + "btmgr") in the extra/ packages collection. + +---------------------------- +Generic floppy image creation info: + +To create a floppy disk from one of these images, use the RAWRITE command on +DOS or Windows. For example, to make the first rootdisk image (install.1), +you'd put a formatted 1.44MB floppy in your floppy drive, and then run this +command: + +C:\> RAWRITE INSTALL.1 A: + +There are several versions of RAWRITE provided to handle most versions of DOS +and Windows. If one version doesn't seem to work, try another. + +To make the floppy images under Linux, use the "cat" command to send them to +the floppy device. This command will make the first install disk: + +cat install.1 > /dev/fd0 + diff --git a/isolinux/setpkg b/isolinux/setpkg new file mode 100644 index 000000000..134e82f3b --- /dev/null +++ b/isolinux/setpkg @@ -0,0 +1,48 @@ +#!/bin/sh +# This script is used within the Slackware installer to present +# a package series selection menu. If not present, a default list +# built into the installer is used. + +# Protected tmp directory: +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi + +rm -f $TMP/SeTSERIES +dialog --title "PACKAGE SERIES SELECTION" --item-help --checklist \ +"Now it's time to select which general categories of software to install \ +on your system. Use the spacebar to select or unselect the software you \ +wish to install. You can use the up and down arrows to see all the \ +possible choices. Recommended choices have been preselected. Press the \ +ENTER key when you are finished." \ +20 75 9 \ +"A" "Base Linux system" on "The A (base) series contains the kernel and main system utilities." \ +"AP" "Various Applications that do not need X" on "The AP series is a collection of useful applications." \ +"D" "Program Development (C, C++, Lisp, Perl, etc.)" on "The D series contains compilers, debuggers, and other programming tools." \ +"E" "GNU Emacs" on "The E series contains the GNU Emacs advanced real-time display editor." \ +"F" "FAQ lists, HOWTO documentation" on "The F series contains essential documentation for Linux system administrators." \ +"K" "Linux kernel source" on "The K series contains the source code for the Linux kernel." \ +"KDE" "Qt and the K Desktop Environment for X" on "The KDE series contains the K Desktop Environment and related libraries." \ +"KDEI" "International language support for KDE" off "The KDEI series provides support for languages other than US English in KDE." \ +"L" "System Libraries (needed by KDE, GNOME, X, and more)" on "The L series contains important libraries needed by the rest of the system." \ +"N" "Networking (TCP/IP, UUCP, Mail, News)" on "The N series contains network related clients and servers." \ +"T" "TeX typesetting software" on "TeX is a typesetting system often used for mathematics and technical papers." \ +"TCL" "Tcl/Tk script languages" on "The TCL series contains the Tcl/Tk/TclX languages and programs that use them." \ +"X" "X Window System" on "This series contains X, the window system (or GUI) used by Linux." \ +"XAP" "X Applications" on "The XAP series is a collection of applications for X." \ +"Y" "Games" on "The Y series contains a collection of classic text-based games." \ +2> $TMP/SeTSERIES +if [ ! $? = 0 ]; then + rm -f $TMP/SeTSERIES + exit +fi +# Save this "just in case": +#"GNOME" "The GNOME desktop for X" on "The GNOME series contains the GNOME desktop environment and related libraries." +# +# Rewrite the list into a single # delimited line: +INSTSETS="`cat $TMP/SeTSERIES | tr -d " "`" +INSTSETS="`echo $INSTSETS | tr "\042" "#" `" +INSTSETS="`echo $INSTSETS | tr "," "#" `" +# Store the selection list: +echo "$INSTSETS" > $TMP/SeTSERIES diff --git a/kernels/VERSIONS.TXT b/kernels/VERSIONS.TXT new file mode 100644 index 000000000..51c5412e7 --- /dev/null +++ b/kernels/VERSIONS.TXT @@ -0,0 +1,3 @@ + +These kernels are version 2.6.29.6. + diff --git a/recompress.sh b/recompress.sh new file mode 100755 index 000000000..80b2cb9ba --- /dev/null +++ b/recompress.sh @@ -0,0 +1,950 @@ +#!/bin/sh +# +# Run this script in the root directory of the repository to re-compress +# all patches and scripts that were un-compressed to make a better git commit: +# +gzip ./extra/source/kde3-compat/qt3/qt.x86.cflags.diff +gzip ./extra/source/kde3-compat/qt3/qt-x11.diff +gzip ./extra/source/kde3-compat/qt3/qt.mysql.h.diff +gzip ./extra/source/kde3-compat/qt3/doinst.sh +gzip ./extra/source/kde3-compat/arts/arts.tmpdir.diff +gzip ./extra/source/kde3-compat/kdelibs3/kdelibs-utempter.diff +gzip ./extra/source/kde3-compat/kdelibs3/kdelibs.inotify.diff +gzip ./extra/source/kde3-compat/kdelibs3/kdelibs.no.inotify.externs.diff +gzip ./extra/source/grub/grub-0.97-x86_64.patch +gzip ./extra/source/grub/grub_support_256byte_inode.patch +gzip ./extra/source/grub/grubconfig_localefix.patch +gzip ./extra/source/bittorrent/doinst.sh +gzip ./extra/source/bittorrent/bittorrent-xterm.sh +gzip ./extra/source/partitionmanager/doinst.sh +gzip ./extra/source/wicd/doinst.sh +gzip ./extra/source/bash-completion/bash_completion.sh +gzip ./extra/source/bash-completion/bash-completion-xz.diff +gzip ./extra/source/tightvnc/doinst.sh +gzip ./extra/source/tightvnc/tightvnc.paths-and-perms.diff +gzip ./testing/source/bash/doinst.sh +gzip ./source/a/kbd/sources/kbd-1.15-unicode_start.patch +gzip ./source/a/kbd/sources/speakupmap.map +gzip ./source/a/kbd/sources/kbd-1.15-po.patch +gzip ./source/a/kbd/sources/kbd-1.15-keycodes-man.patch +gzip ./source/a/kbd/sources/kbd-1.15-quiet_doc.patch +gzip ./source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch +gzip ./source/a/kbd/sources/nl.euro.diff +gzip ./source/a/kbd/sources/kbd-1.15-sparc.patch +gzip ./source/a/pcmciautils/doinst.sh +gzip ./source/a/dialog/dialog.smaller.min.height.diff +gzip ./source/a/splitvt/splitvt_1.6.5-9.diff +gzip ./source/a/bin/scripts/xx +gzip ./source/a/bin/scripts/diskcopy +gzip ./source/a/cpio/cpio-2.9.gcc43.diff +gzip ./source/a/acl/acl.destdir.diff +gzip ./source/a/util-linux-ng/adjtimex_1.23-1.diff +gzip ./source/a/util-linux-ng/setserial-rc.serial.diff +gzip ./source/a/util-linux-ng/ziptool-fix_build.patch +gzip ./source/a/util-linux-ng/doinst.sh +gzip ./source/a/util-linux-ng/net-tools.diff +gzip ./source/a/util-linux-ng/net-tools_1.60-19.diff +gzip ./source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff +gzip ./source/a/lha/lha_1.14i-10.1.diff +gzip ./source/a/bash/patches/bash31-016 +gzip ./source/a/bash/patches/bash31-014 +gzip ./source/a/bash/patches/bash31-015 +gzip ./source/a/bash/patches/bash31-005 +gzip ./source/a/bash/patches/bash31-009 +gzip ./source/a/bash/patches/bash31-008 +gzip ./source/a/bash/patches/bash31-010 +gzip ./source/a/bash/patches/bash31-011 +gzip ./source/a/bash/patches/bash31-012 +gzip ./source/a/bash/patches/bash31-001 +gzip ./source/a/bash/patches/bash31-007 +gzip ./source/a/bash/patches/bash31-002 +gzip ./source/a/bash/patches/bash31-013 +gzip ./source/a/bash/patches/bash31-006 +gzip ./source/a/bash/patches/bash31-003 +gzip ./source/a/bash/patches/bash31-004 +gzip ./source/a/bash/patches/bash31-017 +gzip ./source/a/bash/doinst.sh +gzip ./source/a/tcsh/tcsh.nobuiltincolorls.diff +gzip ./source/a/tcsh/doinst.sh +gzip ./source/a/dbus/rc.messagebus +gzip ./source/a/dbus/doinst.sh +gzip ./source/a/minicom/minicom.users +gzip ./source/a/minicom/lrzsz_0.12.21-4.diff +gzip ./source/a/minicom/wintcap.diff +gzip ./source/a/minicom/minirc.dfl +gzip ./source/a/minicom/config.sub-x86_64.diff +gzip ./source/a/minicom/doinst.sh +gzip ./source/a/sysvinit-scripts/doinst.sh +gzip ./source/a/acpid/rc.acpid +gzip ./source/a/acpid/default +gzip ./source/a/acpid/doinst.sh +gzip ./source/a/acpid/acpi_handler.sh +gzip ./source/a/mkinitrd/busybox-1.12.1_inotify.diff +gzip ./source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff +gzip ./source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff +gzip ./source/a/utempter/doinst.sh +gzip ./source/a/lvm2/doinst.sh +gzip ./source/a/sysvinit-functions/doinst.sh +gzip ./source/a/logrotate/logrotate.slackware.diff +gzip ./source/a/etc/nsswitch.conf +gzip ./source/a/etc/termcap-BSD +gzip ./source/a/file/file.short.diff +gzip ./source/a/file/file.crdaregbin.magic +gzip ./source/a/file/file.zisofs.magic +gzip ./source/a/file/file.quiet.diff +gzip ./source/a/file/file.etc.file.diff +gzip ./source/a/file/file.xz.magic +gzip ./source/a/pciutils/pciutils.ids.dest.diff +gzip ./source/a/tar/tar.nolonezero.diff +gzip ./source/a/tar/tar.norecordsizespam.diff +gzip ./source/a/tar/tar-1.22-support_txz.diff +gzip ./source/a/tar/rmt.8 +gzip ./source/a/tar/tar.1 +gzip ./source/a/tar/tar-1.13.bzip2.diff +gzip ./source/a/less/less.sysconfdir.diff +gzip ./source/a/less/lesspipe.sh +gzip ./source/a/floppy/fdutils-5.4-20020222.diff +gzip ./source/a/floppy/fdutils.mediaprm.diff +gzip ./source/a/gpm/inputattach.c +gzip ./source/a/gpm/gpm-1.20.1-math.patch +gzip ./source/a/gpm/gpm-evdev-cumulative.patch +gzip ./source/a/gpm/gpm-1.20.1-no-console-error.patch +gzip ./source/a/gpm/mouseconfig +gzip ./source/a/gpm/gpm-1.20.1-input-defines.diff +gzip ./source/a/gpm/setup.mouse +gzip ./source/a/gpm/gpm-1.20.1-gpmopen.patch +gzip ./source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff +gzip ./source/a/gpm/gpm-1.20.1-multilib.patch +gzip ./source/a/gpm/gpm-1.20.1-idie.patch +gzip ./source/a/gpm/gpm.evdevmakefile.patch +gzip ./source/a/gpm/gpm-1.20.1-consolename.patch +gzip ./source/a/gpm/gpm-1.20.1-lib-silent.patch +gzip ./source/a/gpm/gpm-1.20.1-weak-wgetch.patch +gzip ./source/a/gpm/gpm-1.20.1-nodebug.patch +gzip ./source/a/gpm/gpm-1.20.1-input.patch +gzip ./source/a/gpm/gpm-1.20.1-subscript.patch +gzip ./source/a/shadow/shadow.remove.obsolete.options.diff +gzip ./source/a/shadow/shadow.newgrp.getlogin +gzip ./source/a/shadow/shadow-4.0.3.x86_64.diff +gzip ./source/a/shadow/shadow.shadowconfig.diff +gzip ./source/a/shadow/shadow.gcc34.diff +gzip ./source/a/shadow/shadow.login.defs.diff +gzip ./source/a/shadow/shadow.newgrp.nopam +gzip ./source/a/zoo/zoo_2.10-18.diff +gzip ./source/a/bzip2/bzip2-1.0.4.saneso.diff +gzip ./source/a/e2fsprogs/doinst.sh +gzip ./source/a/smartmontools/doinst.sh +gzip ./source/a/usbutils/usbutils.ids.dest +gzip ./source/a/dcron/dcron-2.3.3.version.diff +gzip ./source/a/dcron/run-parts.8 +gzip ./source/a/dcron/dcron-2.3.3.diff3 +gzip ./source/a/dcron/dcron-2.3.3.diff2 +gzip ./source/a/dcron/dcron-2.3.3.diff +gzip ./source/a/dcron/dcron.fork.diff +gzip ./source/a/dcron/dcron.tmpdir.diff +gzip ./source/a/dcron/dcron-2.3.3.crontab.diff4 +gzip ./source/a/dcron/run-parts +gzip ./source/a/getty-ps/getty.bugfixes.diff +gzip ./source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff +gzip ./source/a/sysvinit/doinst.sh +gzip ./source/a/sysvinit/sysvinit.diff +gzip ./source/a/sysvinit/sysvinit-2.86-timeval.patch +gzip ./source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff +gzip ./source/a/sysklogd/sysklogd_1.4.1-20.diff +gzip ./source/a/udev/rule_generator.diff +gzip ./source/a/udev/doinst.sh +gzip ./source/a/genpower/genpower.halt.diff +gzip ./source/a/genpower/genpower.var.diff +gzip ./source/a/ncompress/ncompress.filenamelen.diff +gzip ./source/a/ncompress/ncompress.zerobyteforce.diff +gzip ./source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch +gzip ./source/a/ncompress/ncompress.lfs2.diff +gzip ./source/a/ncompress/ncompress.make.diff +gzip ./source/a/ncompress/ncompress.2GB.diff +gzip ./source/a/ncompress/ncompress-4.2.4-endians.patch +gzip ./source/a/procps/procinfo.gcc3.diff +gzip ./source/a/procps/procps.nowarning.diff +gzip ./source/a/procps/procps.w.showfrom.diff +gzip ./source/a/procps/procps-3.2.7-ps-eip64.diff +gzip ./source/a/coreutils/DIR_COLORS +gzip ./source/a/coreutils/coreutils-dircolors.csh +gzip ./source/a/coreutils/coreutils.uname.diff +gzip ./source/a/coreutils/doinst.sh +gzip ./source/a/coreutils/coreutils-dircolors.sh +gzip ./source/a/mt-st/mt-st.man.diff +gzip ./source/a/mt-st/mt-st.config.diff +gzip ./source/a/mt-st/mt-st.sdlt.diff +gzip ./source/a/cups/cups.firefox.desktop.diff +gzip ./source/a/cups/doinst.sh +gzip ./source/a/devs/makedev_2.3.1-46.2.diff +gzip ./source/a/devs/makedev_2.3.1.slack.diff +gzip ./source/a/devs/makedev_2.3.1.hd.diff +gzip ./source/a/devs/makedev.hd.diff +gzip ./source/a/mdadm/mdadm.static.small.diff +gzip ./source/a/mdadm/doinst.sh +gzip ./source/a/findutils/findutils.no.default.options.warnings.diff +gzip ./source/a/findutils/findutils.nolocate.diff +gzip ./source/a/attr/attr.destdir.diff +gzip ./source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff +gzip ./source/a/module-init-tools/modprobe.ignore_some_suffixes.diff +gzip ./source/a/module-init-tools/modprobe.no_sys_check.diff +gzip ./source/a/module-init-tools/doinst.sh +gzip ./source/a/unarj/Makefile +gzip ./source/k/2.6.29.x-intel-crash-patch.diff +gzip ./source/k/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff +gzip ./source/k/linux-2.6.29.6-01-sendpage.diff +gzip ./source/n/httpd/httpd.nossldefault.diff +gzip ./source/n/httpd/config.layout.diff +gzip ./source/n/httpd/httpd.runasapache.diff +gzip ./source/n/httpd/doinst.sh +gzip ./source/n/dnsmasq/dnsmasq.leasedir.diff +gzip ./source/n/dnsmasq/rc.dnsmasq +gzip ./source/n/dnsmasq/doinst.sh +gzip ./source/n/portmap/rc.rpc +gzip ./source/n/portmap/doinst.sh +gzip ./source/n/portmap/portmap.lwrap.needs.lnsl.diff +gzip ./source/n/iptraf/iptraf_3.0.0-6.diff +gzip ./source/n/iptraf/iptraf.paths.diff +gzip ./source/n/htdig/htdig.conf.diff +gzip ./source/n/htdig/htdig-3.2.0b6.diff +gzip ./source/n/htdig/doinst.sh +gzip ./source/n/lftp/doinst.sh +gzip ./source/n/irssi/irsi-0.8.14.manpage_fix.diff +gzip ./source/n/irssi/doinst.sh +gzip ./source/n/openssh/doinst.sh +gzip ./source/n/mailx/doinst.sh +gzip ./source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff +gzip ./source/n/network-scripts/doinst.sh +gzip ./source/n/netkit-timed/netkit-timed-0.17.diff +gzip ./source/n/ytalk/doinst.sh +gzip ./source/n/stunnel/doinst.sh +gzip ./source/n/netatalk/netatalk-2.0.4-afpdconf.diff +gzip ./source/n/netatalk/netatalk-2.0.4-without_xfs.diff +gzip ./source/n/netatalk/netatalk.etc2ps.diff +gzip ./source/n/netatalk/doinst.sh +gzip ./source/n/icmpinfo/icmpinfo-1.11.diff +gzip ./source/n/netwrite/netwrite-0.17.diff +gzip ./source/n/bsd-finger/bsd-finger-0.17.diff +gzip ./source/n/netkit-routed/routed.18.candidate.final.patch +gzip ./source/n/netkit-routed/netkit-routed-0.17.diff +gzip ./source/n/net-tools/net-tools.diff +gzip ./source/n/net-tools/net-tools_1.60-19.diff +gzip ./source/n/inetd/inetd.loopingdos.diff +gzip ./source/n/inetd/inetd-OpenBSD-1.79.diff +gzip ./source/n/openldap-client/doinst.sh +gzip ./source/n/netwatch/netwatch.makefile.diff +gzip ./source/n/netwatch/netwatch.phonemyself.diff +gzip ./source/n/nmap/nmap.ndiff.mandir.diff +gzip ./source/n/procmail/procmail_3.22-5.diff +gzip ./source/n/procmail/procmail.lfs.diff +gzip ./source/n/rp-pppoe/doinst.sh +gzip ./source/n/bluez-utils/doinst.sh +gzip ./source/n/pidentd/pidentd.conf.diff +gzip ./source/n/pidentd/doinst.sh +gzip ./source/n/dhcpcd/COPYRIGHT +gzip ./source/n/dhcpcd/patches/config.h.diff +gzip ./source/n/dhcpcd/patches/dhcpcd.8.in.diff +gzip ./source/n/dhcpcd/patches/dhcpcd.sh.diff +gzip ./source/n/dhcpcd/dhcpcd.vararg.diff +gzip ./source/n/sendmail/Build +gzip ./source/n/popa3d/popa3d.diff +gzip ./source/n/popa3d/doinst.sh +gzip ./source/n/traceroute/traceroute.no.domain.strip.diff +gzip ./source/n/traceroute/traceroute_1.4a12-5.diff +gzip ./source/n/nc/nc-110-21.diff +gzip ./source/n/nc/nc.diff +gzip ./source/n/rdist/rdist-6.1.5-cleanup.diff +gzip ./source/n/rdist/rdist-6.1.5-varargs.diff +gzip ./source/n/rdist/rdist-6.1.5-bison.diff +gzip ./source/n/rdist/rdist-6.1.5.diff +gzip ./source/n/netdate/netdate.diff +gzip ./source/n/netdate/netdate.diff2 +gzip ./source/n/wget/doinst.sh +gzip ./source/n/gpa/doinst.sh +gzip ./source/n/samba/doinst.sh +gzip ./source/n/samba/smb.conf.diff +gzip ./source/n/php/php.ini.diff +gzip ./source/n/php/php.recommended.ini.diff +gzip ./source/n/php/doinst.sh +gzip ./source/n/alpine/alpine.manpage.diff +gzip ./source/n/alpine/alpine.config.h.diff +gzip ./source/n/alpine/alpine.tech-notes.txt.diff +gzip ./source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff +gzip ./source/n/alpine/pinepgp.pinegpgp.in.diff +gzip ./source/n/nn/nn.diff +gzip ./source/n/nn/nntpserver +gzip ./source/n/nn/nn.destdir.diff +gzip ./source/n/nn/nn.badnntphost.diff +gzip ./source/n/nn/doinst.sh +gzip ./source/n/nn/NNTP +gzip ./source/n/net-snmp/snmpd.conf +gzip ./source/n/net-snmp/doinst.sh +gzip ./source/n/trn/config.sh +gzip ./source/n/trn/config.x86_64.sh +gzip ./source/n/iproute2/iproute2.dbpath.diff +gzip ./source/n/iproute2/doinst.sh +gzip ./source/n/iproute2/iproute2.iptablespath.diff +gzip ./source/n/biff+comsat/biff+comsat.offset.diff +gzip ./source/n/biff+comsat/biff+comsat-0.17.diff +gzip ./source/n/biff+comsat/biff+comsat.badutmp.diff +gzip ./source/n/telnet/netkit-telnet-0.17.diff +gzip ./source/n/telnet/telnet-OpenBSD-014_telnet.diff +gzip ./source/n/telnet/netkit-telnet-0.17-ayt.patch +gzip ./source/n/telnet/telnet-OpenBSD-20020321.diff +gzip ./source/n/bootp/bootptab +gzip ./source/n/bootp/bootp_2.4.3-15.diff +gzip ./source/n/bridge-utils/bridge-utils.isbridge.diff +gzip ./source/n/netkit-rwho/rwhod_getloadavg.diff +gzip ./source/n/netkit-rwho/netkit-rwho-0.17.diff +gzip ./source/n/mutt/doinst.sh +gzip ./source/n/bind/bind.man.diff +gzip ./source/n/bind/bind.var.run.named.diff +gzip ./source/n/bind/bind.so_bsdcompat.diff +gzip ./source/n/bind/doinst.sh +gzip ./source/n/openssl/openssl.optsx86.diff +gzip ./source/n/openssl/openssl.soname.diff +gzip ./source/n/openssl/doinst.sh-openssl +gzip ./source/n/openssl/doinst.sh-openssl-solibs +gzip ./source/n/openssl/openssl.no-extssl.diff +gzip ./source/n/openssl/certwatch +gzip ./source/n/wireless-tools/wireless_tools.nowhine.diff +gzip ./source/n/wireless-tools/doinst.sh +gzip ./source/n/wireless-tools/wireless_tools.static.diff +gzip ./source/n/yptools/rc.yp +gzip ./source/n/yptools/nsswitch.conf-nis +gzip ./source/n/lynx/lynx.path.diff +gzip ./source/n/lynx/lynx.cfg.diff +gzip ./source/n/ppp/pppsetup-1.98.slack.diff +gzip ./source/n/ppp/realms +gzip ./source/n/ppp/servers +gzip ./source/n/ppp/pppsetup-1.98.pppoff.diff +gzip ./source/n/ppp/options.new +gzip ./source/n/ppp/ppp.slack.diff +gzip ./source/n/ppp/pppsetup-1.98.backupfiles.diff +gzip ./source/n/ppp/doinst.sh +gzip ./source/n/ppp/pppsetup-1.98.moredevs.diff +gzip ./source/n/ppp/radius.msdict +gzip ./source/n/autofs/autofs.x86_64.diff +gzip ./source/n/autofs/autofs.gcc.fix.diff +gzip ./source/n/autofs/autofs-3.1.7.diff +gzip ./source/n/mtr/mtr-0.73.configure.error.diff +gzip ./source/n/cyrus-sasl/rc.saslauthd +gzip ./source/n/cyrus-sasl/doinst.sh +gzip ./source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff +gzip ./source/n/vsftpd/vsftpd.log +gzip ./source/n/vsftpd/vsftpd.conf.diff +gzip ./source/n/vsftpd/doinst.sh +gzip ./source/n/vsftpd/vsftpd.builddefs.diff +gzip ./source/n/netkit-rusers/netkit-rusers-0.17.diff +gzip ./source/n/slrn/doinst.sh +gzip ./source/n/uucp/policy.h.diff +gzip ./source/n/proftpd/doinst.sh +gzip ./source/n/netkit-ntalk/netkit-ntalk-0.11.diff +gzip ./source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch +gzip ./source/n/netkit-ntalk/netkit-ntalk-0.17.diff +gzip ./source/n/ntp/doinst.sh +gzip ./source/installer/busybox-1.12.1_inotify.diff +gzip ./source/ap/hplip/hplip.prevent_segfault.diff +gzip ./source/ap/hplip/doinst.sh +gzip ./source/ap/xfsdump/xfsdump.destdir.diff +gzip ./source/ap/sysstat/sysstat.etc.sysstat.diff +gzip ./source/ap/sysstat/sysstat.var.run.diff +gzip ./source/ap/sysstat/sysstat.prefix.usr.diff +gzip ./source/ap/ghostscript-fonts-std/doinst.sh +gzip ./source/ap/groff/groff.docdir.diff +gzip ./source/ap/groff/groff.man.mdoc.local +gzip ./source/ap/cdrtools/doinst.sh +gzip ./source/ap/diffutils/doinst.sh +gzip ./source/ap/diffutils/diffutils-sdiff-no-waitpid.patch +gzip ./source/ap/acct/acct-6.4pre1-6.diff +gzip ./source/ap/acct/acct.logdir.fhs.diff +gzip ./source/ap/amp/amp-gcc34.diff +gzip ./source/ap/ispell/ispell.diff +gzip ./source/ap/seejpeg/seejpeg-1.10.diff +gzip ./source/ap/libx86/lrmi.c.diff +gzip ./source/ap/man-pages/doinst.sh +gzip ./source/ap/alsa-utils/alsa-utils.alsaconf.diff +gzip ./source/ap/alsa-utils/rc.alsa +gzip ./source/ap/workbone/workbone.1.diff +gzip ./source/ap/workbone/workbone_2.40-3.diff +gzip ./source/ap/sudo/doinst.sh +gzip ./source/ap/dvd+rw-tools/dvd+rw-tools.limits.h.diff +gzip ./source/ap/texinfo/dir +gzip ./source/ap/texinfo/doinst.sh +gzip ./source/ap/jove/jove.makefile.diff +gzip ./source/ap/sc/sc-malloc.diff +gzip ./source/ap/sc/sc-gcc34.diff +gzip ./source/ap/man/man-1.6f.nroff.mandoc.diff +gzip ./source/ap/man/doinst.sh +gzip ./source/ap/ash/patches/ash-freebsd.patch +gzip ./source/ap/ash/patches/ash-setmode.patch +gzip ./source/ap/ash/patches/ash-syntax.patch +gzip ./source/ap/ash/patches/ash-makefile.patch +gzip ./source/ap/ash/patches/ash-kill.patch +gzip ./source/ap/ash/patches/ash-test.patch +gzip ./source/ap/ash/patches/ash-echo.patch +gzip ./source/ap/ash/patches/ash-debian.patch +gzip ./source/ap/ash/patches/ash-getcwd.patch +gzip ./source/ap/ash/patches/ash-getopt.patch +gzip ./source/ap/ash/patches/ash-hetio.patch +gzip ./source/ap/ash/patches/ash-glob.patch +gzip ./source/ap/ash/patches/ash-manpage.patch +gzip ./source/ap/ash/patches/ash-ppid.patch +gzip ./source/ap/ash/patches/ash-times.patch +gzip ./source/ap/ash/patches/ash-sighup.patch +gzip ./source/ap/ash/patches/ash-memout.patch +gzip ./source/ap/ash/patches/ash-misc.patch +gzip ./source/ap/ash/patches/ash-builtin.patch +gzip ./source/ap/ash/patches/ash-redir.patch +gzip ./source/ap/ash/patches/ash-jobs.patch +gzip ./source/ap/dmidecode/dmidecode.makefile.diff +gzip ./source/ap/cdparanoia/cdparanoia-III-10.2_cdda_private.patch +gzip ./source/ap/radeontool/radeontool.c.diff +gzip ./source/ap/sqlite/COPYRIGHT +gzip ./source/ap/ghostscript/cidfmap +gzip ./source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff +gzip ./source/ap/linuxdoc-tools/sources/libsgmls-perl_1.03ii-32.diff +gzip ./source/ap/dmapi/dmapi.destdir.diff +gzip ./source/ap/rpm/doinst.sh +gzip ./source/ap/rpm/Packages +gzip ./source/ap/at/doinst.sh +gzip ./source/ap/aumix/aumix.alsa.diff +gzip ./source/ap/mysql/rc.mysqld +gzip ./source/ap/mysql/doinst.sh +gzip ./source/ap/jed/jed.mouse.diff +gzip ./source/ap/jed/jed.multibyte.diff +gzip ./source/ap/foomatic-filters/doinst.sh +gzip ./source/ap/zsh/zsh-4.3.10-add_new_pkg_completion.diff +gzip ./source/ap/zsh/doinst.sh +gzip ./source/ap/flac/flac.man.diff +gzip ./source/ap/vim/patches/7.2.130 +gzip ./source/ap/vim/patches/7.2.243 +gzip ./source/ap/vim/patches/7.2.194 +gzip ./source/ap/vim/patches/7.2.110 +gzip ./source/ap/vim/patches/7.2.068 +gzip ./source/ap/vim/patches/7.2.085 +gzip ./source/ap/vim/patches/7.2.105 +gzip ./source/ap/vim/patches/7.2.095 +gzip ./source/ap/vim/patches/7.2.113 +gzip ./source/ap/vim/patches/7.2.024 +gzip ./source/ap/vim/patches/7.2.062 +gzip ./source/ap/vim/patches/7.2.136 +gzip ./source/ap/vim/patches/7.2.106 +gzip ./source/ap/vim/patches/7.2.033 +gzip ./source/ap/vim/patches/7.2.147 +gzip ./source/ap/vim/patches/7.2.189 +gzip ./source/ap/vim/patches/7.2.163 +gzip ./source/ap/vim/patches/7.2.201 +gzip ./source/ap/vim/patches/7.2.120 +gzip ./source/ap/vim/patches/7.2.240 +gzip ./source/ap/vim/patches/7.2.035 +gzip ./source/ap/vim/patches/7.2.069 +gzip ./source/ap/vim/patches/7.2.244 +gzip ./source/ap/vim/patches/7.2.153 +gzip ./source/ap/vim/patches/7.2.030 +gzip ./source/ap/vim/patches/7.2.154 +gzip ./source/ap/vim/patches/7.2.179 +gzip ./source/ap/vim/patches/7.2.185 +gzip ./source/ap/vim/patches/7.2.064 +gzip ./source/ap/vim/patches/7.2.116 +gzip ./source/ap/vim/patches/7.2.010 +gzip ./source/ap/vim/patches/7.2.121 +gzip ./source/ap/vim/patches/7.2.245 +gzip ./source/ap/vim/patches/7.2.117 +gzip ./source/ap/vim/patches/7.2.178 +gzip ./source/ap/vim/patches/7.2.124 +gzip ./source/ap/vim/patches/7.2.101 +gzip ./source/ap/vim/patches/7.2.061 +gzip ./source/ap/vim/patches/7.2.187 +gzip ./source/ap/vim/patches/7.2.060 +gzip ./source/ap/vim/patches/7.2.075 +gzip ./source/ap/vim/patches/7.2.131 +gzip ./source/ap/vim/patches/7.2.166 +gzip ./source/ap/vim/patches/7.2.219 +gzip ./source/ap/vim/patches/7.2.090 +gzip ./source/ap/vim/patches/7.2.170 +gzip ./source/ap/vim/patches/7.2.129 +gzip ./source/ap/vim/patches/7.2.088 +gzip ./source/ap/vim/patches/7.2.200 +gzip ./source/ap/vim/patches/7.2.204 +gzip ./source/ap/vim/patches/7.2.216 +gzip ./source/ap/vim/patches/7.2.097 +gzip ./source/ap/vim/patches/7.2.125 +gzip ./source/ap/vim/patches/7.2.041 +gzip ./source/ap/vim/patches/7.2.013 +gzip ./source/ap/vim/patches/7.2.055 +gzip ./source/ap/vim/patches/7.2.152 +gzip ./source/ap/vim/patches/7.2.169 +gzip ./source/ap/vim/patches/7.2.128 +gzip ./source/ap/vim/patches/7.2.126 +gzip ./source/ap/vim/patches/7.2.157 +gzip ./source/ap/vim/patches/7.2.079 +gzip ./source/ap/vim/patches/7.2.222 +gzip ./source/ap/vim/patches/7.2.007 +gzip ./source/ap/vim/patches/7.2.180 +gzip ./source/ap/vim/patches/7.2.044 +gzip ./source/ap/vim/patches/7.2.045 +gzip ./source/ap/vim/patches/7.2.234 +gzip ./source/ap/vim/patches/7.2.098 +gzip ./source/ap/vim/patches/7.2.239 +gzip ./source/ap/vim/patches/7.2.237 +gzip ./source/ap/vim/patches/7.2.056 +gzip ./source/ap/vim/patches/7.2.191 +gzip ./source/ap/vim/patches/7.2.159 +gzip ./source/ap/vim/patches/7.2.080 +gzip ./source/ap/vim/patches/7.2.214 +gzip ./source/ap/vim/patches/7.2.142 +gzip ./source/ap/vim/patches/7.2.172 +gzip ./source/ap/vim/patches/7.2.134 +gzip ./source/ap/vim/patches/7.2.135 +gzip ./source/ap/vim/patches/7.2.076 +gzip ./source/ap/vim/patches/7.2.071 +gzip ./source/ap/vim/patches/7.2.190 +gzip ./source/ap/vim/patches/7.2.220 +gzip ./source/ap/vim/patches/7.2.070 +gzip ./source/ap/vim/patches/7.2.059 +gzip ./source/ap/vim/patches/7.2.006 +gzip ./source/ap/vim/patches/7.2.096 +gzip ./source/ap/vim/patches/7.2.226 +gzip ./source/ap/vim/patches/7.2.023 +gzip ./source/ap/vim/patches/7.2.083 +gzip ./source/ap/vim/patches/7.2.054 +gzip ./source/ap/vim/patches/7.2.122 +gzip ./source/ap/vim/patches/7.2.052 +gzip ./source/ap/vim/patches/7.2.235 +gzip ./source/ap/vim/patches/7.2.241 +gzip ./source/ap/vim/patches/7.2.111 +gzip ./source/ap/vim/patches/7.2.034 +gzip ./source/ap/vim/patches/7.2.081 +gzip ./source/ap/vim/patches/7.2.114 +gzip ./source/ap/vim/patches/7.2.047 +gzip ./source/ap/vim/patches/7.2.158 +gzip ./source/ap/vim/patches/7.2.149 +gzip ./source/ap/vim/patches/7.2.032 +gzip ./source/ap/vim/patches/7.2.156 +gzip ./source/ap/vim/patches/7.2.009 +gzip ./source/ap/vim/patches/7.2.016 +gzip ./source/ap/vim/patches/7.2.004 +gzip ./source/ap/vim/patches/7.2.091 +gzip ./source/ap/vim/patches/7.2.205 +gzip ./source/ap/vim/patches/7.2.150 +gzip ./source/ap/vim/patches/7.2.236 +gzip ./source/ap/vim/patches/7.2.089 +gzip ./source/ap/vim/patches/7.2.092 +gzip ./source/ap/vim/patches/7.2.160 +gzip ./source/ap/vim/patches/7.2.206 +gzip ./source/ap/vim/patches/7.2.199 +gzip ./source/ap/vim/patches/7.2.162 +gzip ./source/ap/vim/patches/7.2.215 +gzip ./source/ap/vim/patches/7.2.102 +gzip ./source/ap/vim/patches/7.2.207 +gzip ./source/ap/vim/patches/7.2.198 +gzip ./source/ap/vim/patches/7.2.197 +gzip ./source/ap/vim/patches/7.2.094 +gzip ./source/ap/vim/patches/7.2.043 +gzip ./source/ap/vim/patches/7.2.186 +gzip ./source/ap/vim/patches/7.2.223 +gzip ./source/ap/vim/patches/7.2.046 +gzip ./source/ap/vim/patches/7.2.230 +gzip ./source/ap/vim/patches/7.2.042 +gzip ./source/ap/vim/patches/7.2.228 +gzip ./source/ap/vim/patches/7.2.058 +gzip ./source/ap/vim/patches/7.2.029 +gzip ./source/ap/vim/patches/7.2.077 +gzip ./source/ap/vim/patches/7.2.217 +gzip ./source/ap/vim/patches/7.2.078 +gzip ./source/ap/vim/patches/7.2.093 +gzip ./source/ap/vim/patches/7.2.218 +gzip ./source/ap/vim/patches/7.2.181 +gzip ./source/ap/vim/patches/7.2.138 +gzip ./source/ap/vim/patches/7.2.119 +gzip ./source/ap/vim/patches/7.2.063 +gzip ./source/ap/vim/patches/7.2.225 +gzip ./source/ap/vim/patches/7.2.003 +gzip ./source/ap/vim/patches/7.2.144 +gzip ./source/ap/vim/patches/7.2.145 +gzip ./source/ap/vim/patches/7.2.065 +gzip ./source/ap/vim/patches/7.2.184 +gzip ./source/ap/vim/patches/7.2.188 +gzip ./source/ap/vim/patches/7.2.099 +gzip ./source/ap/vim/patches/7.2.109 +gzip ./source/ap/vim/patches/7.2.074 +gzip ./source/ap/vim/patches/7.2.209 +gzip ./source/ap/vim/patches/7.2.087 +gzip ./source/ap/vim/patches/7.2.107 +gzip ./source/ap/vim/patches/7.2.143 +gzip ./source/ap/vim/patches/7.2.115 +gzip ./source/ap/vim/patches/7.2.233 +gzip ./source/ap/vim/patches/7.2.028 +gzip ./source/ap/vim/patches/7.2.025 +gzip ./source/ap/vim/patches/7.2.082 +gzip ./source/ap/vim/patches/7.2.183 +gzip ./source/ap/vim/patches/7.2.165 +gzip ./source/ap/vim/patches/7.2.037 +gzip ./source/ap/vim/patches/7.2.213 +gzip ./source/ap/vim/patches/7.2.175 +gzip ./source/ap/vim/patches/7.2.238 +gzip ./source/ap/vim/patches/7.2.168 +gzip ./source/ap/vim/patches/7.2.048 +gzip ./source/ap/vim/patches/7.2.021 +gzip ./source/ap/vim/patches/7.2.104 +gzip ./source/ap/vim/patches/7.2.015 +gzip ./source/ap/vim/patches/7.2.103 +gzip ./source/ap/vim/patches/7.2.051 +gzip ./source/ap/vim/patches/7.2.039 +gzip ./source/ap/vim/patches/7.2.140 +gzip ./source/ap/vim/patches/7.2.112 +gzip ./source/ap/vim/patches/7.2.050 +gzip ./source/ap/vim/patches/7.2.203 +gzip ./source/ap/vim/patches/7.2.132 +gzip ./source/ap/vim/patches/7.2.017 +gzip ./source/ap/vim/patches/7.2.242 +gzip ./source/ap/vim/patches/7.2.137 +gzip ./source/ap/vim/patches/7.2.195 +gzip ./source/ap/vim/patches/7.2.167 +gzip ./source/ap/vim/patches/7.2.141 +gzip ./source/ap/vim/patches/7.2.227 +gzip ./source/ap/vim/patches/7.2.139 +gzip ./source/ap/vim/patches/7.2.018 +gzip ./source/ap/vim/patches/7.2.176 +gzip ./source/ap/vim/patches/7.2.001 +gzip ./source/ap/vim/patches/7.2.123 +gzip ./source/ap/vim/patches/7.2.208 +gzip ./source/ap/vim/patches/7.2.020 +gzip ./source/ap/vim/patches/7.2.193 +gzip ./source/ap/vim/patches/7.2.146 +gzip ./source/ap/vim/patches/7.2.100 +gzip ./source/ap/vim/patches/7.2.229 +gzip ./source/ap/vim/patches/7.2.164 +gzip ./source/ap/vim/patches/7.2.019 +gzip ./source/ap/vim/patches/7.2.211 +gzip ./source/ap/vim/patches/7.2.108 +gzip ./source/ap/vim/patches/7.2.224 +gzip ./source/ap/vim/patches/7.2.026 +gzip ./source/ap/vim/patches/7.2.192 +gzip ./source/ap/vim/patches/7.2.040 +gzip ./source/ap/vim/patches/7.2.171 +gzip ./source/ap/vim/patches/7.2.005 +gzip ./source/ap/vim/patches/7.2.182 +gzip ./source/ap/vim/patches/7.2.049 +gzip ./source/ap/vim/patches/7.2.053 +gzip ./source/ap/vim/patches/7.2.031 +gzip ./source/ap/vim/patches/7.2.212 +gzip ./source/ap/vim/patches/7.2.118 +gzip ./source/ap/vim/patches/7.2.038 +gzip ./source/ap/vim/patches/7.2.196 +gzip ./source/ap/vim/patches/7.2.232 +gzip ./source/ap/vim/patches/7.2.127 +gzip ./source/ap/vim/patches/7.2.151 +gzip ./source/ap/vim/patches/7.2.073 +gzip ./source/ap/vim/patches/7.2.066 +gzip ./source/ap/vim/patches/7.2.086 +gzip ./source/ap/vim/patches/7.2.173 +gzip ./source/ap/vim/patches/7.2.012 +gzip ./source/ap/vim/patches/7.2.057 +gzip ./source/ap/vim/patches/7.2.067 +gzip ./source/ap/vim/patches/7.2.221 +gzip ./source/ap/vim/patches/7.2.072 +gzip ./source/ap/vim/patches/7.2.022 +gzip ./source/ap/vim/patches/7.2.210 +gzip ./source/ap/vim/patches/7.2.148 +gzip ./source/ap/vim/patches/7.2.133 +gzip ./source/ap/vim/patches/7.2.011 +gzip ./source/ap/vim/patches/7.2.008 +gzip ./source/ap/vim/patches/7.2.174 +gzip ./source/ap/vim/patches/7.2.161 +gzip ./source/ap/vim/patches/7.2.177 +gzip ./source/ap/vim/patches/7.2.002 +gzip ./source/ap/vim/patches/7.2.084 +gzip ./source/ap/vim/patches/7.2.036 +gzip ./source/ap/vim/patches/7.2.202 +gzip ./source/ap/vim/patches/7.2.231 +gzip ./source/ap/vim/patches/7.2.014 +gzip ./source/ap/vim/patches/7.2.027 +gzip ./source/ap/vim/patches/7.2.155 +gzip ./source/ap/vim/vim.vimrc.diff +gzip ./source/ap/vim/doinst.sh +gzip ./source/ap/a2ps/a2ps.diff +gzip ./source/ap/a2ps/psutils.destdir.diff +gzip ./source/ap/a2ps/psutils.diff +gzip ./source/ap/a2ps/a2ps.a2ps_cfg.in.diff +gzip ./source/ap/lm_sensors/lm_sensors.makefile.diff +gzip ./source/d/autoconf/doinst.sh +gzip ./source/d/ruby/ruby.x86_64.diff +gzip ./source/d/doxygen/doxygen.qt4.diff +gzip ./source/d/libtool/libtool.no.moved.warning.diff +gzip ./source/d/libtool/doinst.sh +gzip ./source/d/rcs/rcs-5.7.diff +gzip ./source/d/dev86/dev86-x86_64.noelks.patch +gzip ./source/d/dev86/dev86-x86_64.patch +gzip ./source/d/automake/doinst.sh +gzip ./source/d/python/python.readline.set_pre_input_hook.diff +gzip ./source/d/python/python.pure64.diff +gzip ./source/d/python/python.x86_64.diff +gzip ./source/d/pmake/pmake.strerror.strdup.diff +gzip ./source/d/pmake/pmake.txt +gzip ./source/d/pmake/pmake_1.111-1.diff +gzip ./source/d/pkg-config/doinst.sh +gzip ./source/d/gcc/gcc-no_fixincludes.diff +gzip ./source/d/p2c/p2c_1.21alpha2-2.1.diff +gzip ./source/d/p2c/p2c.examples.diff +gzip ./source/d/p2c/p2c_time.diff +gzip ./source/d/perl/perl.configure.multilib.patch +gzip ./source/d/perl/doinst.sh +gzip ./source/xap/rxvt/rxvt.utempter.diff +gzip ./source/xap/xmms/xmms.gtk.doublesize.diff +gzip ./source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff +gzip ./source/xap/gxine/gxine.desktop +gzip ./source/xap/gftp/gftp.desktop +gzip ./source/xap/xfce/patches/exo_quoting_fix.diff +gzip ./source/xap/xfce/patches/migrate-itheme-smartly.diff +gzip ./source/xap/xfce/patches/xfdesktop-fix_education_icon.diff +gzip ./source/xap/xfce/patches/xfcalendar.desktop.in.diff +gzip ./source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff +gzip ./source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff +gzip ./source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff +gzip ./source/xap/fluxbox/xinitrc.fluxbox +gzip ./source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff +gzip ./source/xap/xine-ui/xine.desktop +gzip ./source/xap/xfce4-power-manager/doinst.sh +gzip ./source/xap/xpaint/xpaint_2.7.8.1-1.2.diff +gzip ./source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff +gzip ./source/xap/xchat/patches/xc286-smallfixes.diff +gzip ./source/xap/xchat/patches/xchat.gtk_2_14.diff +gzip ./source/xap/gkrellm/gkrellm.theme.defaults.diff +gzip ./source/xap/x3270/doinst.sh +gzip ./source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff +gzip ./source/xap/blackbox/xinitrc.blackbox +gzip ./source/xap/blackbox/blackbox_0.65.0-5.diff +gzip ./source/xap/windowmaker/windowmaker.no-mmx.diff +gzip ./source/xap/windowmaker/wmaker.inst.diff +gzip ./source/xap/audacious/audacious.handle_cmd_line_options.diff +gzip ./source/xap/electricsheep/electricsheep.mplayer.diff +gzip ./source/xap/gucharmap/doinst.sh +gzip ./source/xap/pidgin/purple-allow-sign-rsa-md5.patch +gzip ./source/xap/xgames/xlander-2009-07-18.diff +gzip ./source/xap/xgames/xcolormap.diff +gzip ./source/xap/xgames/spider.diff +gzip ./source/xap/xgames/xcuckoo.diff +gzip ./source/xap/xgames/maze.diff +gzip ./source/xap/xgames/xlander.fixes.diff +gzip ./source/xap/xscreensaver/setuid.c +gzip ./source/xap/xscreensaver/xscreensaver.setuid.diff +gzip ./source/xap/xscreensaver/xscreensaver.electricsheep.diff +gzip ./source/xap/sane/doinst.sh +gzip ./source/xap/sane/dll.conf.additions +gzip ./source/xap/seamonkey/seamonkey.moz_plugin_path.diff +gzip ./source/xap/seamonkey/doinst.sh +gzip ./source/xap/gnuchess/xboard.buffer_overflow_fix.diff +gzip ./source/xap/gnuchess/gnuchess.gcc4_fix.diff +gzip ./source/xap/gnuchess/gnuchess.SlackBuild.diff +gzip ./source/xap/gnuchess/xboard.infodir.diff +gzip ./source/xap/audacious-plugins/amidi-plug.fix-drct.diff +gzip ./source/xap/audacious-plugins/audacious-plugins.libmtp8.diff +gzip ./source/xap/xpdf/xpdf-resizefix.diff +gzip ./source/xap/xpdf/xpdfrc.diff +gzip ./source/xap/xpdf/xpdf-hebrew.diff +gzip ./source/xap/xpdf/xpdf_3.02-1.3.diff +gzip ./source/xap/xpdf/xpdf-thai.diff +gzip ./source/xap/xpdf/xpdf-korean.diff +gzip ./source/xap/xpdf/xpdf-chinese-traditional.diff +gzip ./source/xap/xpdf/xpdf-greek.diff +gzip ./source/xap/xpdf/xpdf-chinese-simplified.diff +gzip ./source/xap/xpdf/xpdf-turkish.diff +gzip ./source/xap/xpdf/xpdf-arabic.diff +gzip ./source/xap/xpdf/xpdf-japanese.diff +gzip ./source/xap/xpdf/xpdf-cyrillic.diff +gzip ./source/xap/xpdf/xpdf-latin2.diff +gzip ./source/xap/seyon/seyon_2.20c-16.diff +gzip ./source/xap/xlockmore/xlockmore.bitmap.diff +gzip ./source/xap/fvwm/xinitrc.fvwm2 +gzip ./source/xap/fvwm/fvwm.colormap.diff +gzip ./source/xap/fvwm/doinst.sh +gzip ./source/xap/fvwm/system.fvwm2rc +gzip ./source/xap/xv/xv.prefix_x86_64.diff +gzip ./source/xap/xv/xv.prefix.diff +gzip ./source/xap/xv/xv-3.10a.patch +gzip ./source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff +gzip ./source/xap/mozilla-firefox/firefox.moz_plugin_path.diff +gzip ./source/xap/mozilla-firefox/mimeTypes.rdf +gzip ./source/xap/gqview/doinst.sh +gzip ./source/x/x11-skel/doinst.sh +gzip ./source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff +gzip ./source/x/xaw3d/Xaw3d-1.5E.diff +gzip ./source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff +gzip ./source/x/x11/patch/xorg-server/x11.startwithblackscreen.diff +gzip ./source/x/x11/patch/xscope/xscope-1.1-scope.c.diff +gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42-krunner.patch +gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42-crash.patch +gzip ./source/x/x11/patch/compiz/compiz-0.7.8-kde42.patch +gzip ./source/x/ttf-indic-fonts/ttf-indic-fonts.copyright.diff +gzip ./source/x/ttf-indic-fonts/doinst.sh +gzip ./source/x/scim-hangul/scim-hangul.gcc43.diff +gzip ./source/x/xdg-utils/doinst.sh +gzip ./source/x/liberation-fonts-ttf/doinst.sh +gzip ./source/x/scim-anthy/scim-anthy.gcc43.diff +gzip ./source/x/dejavu-fonts-ttf/doinst.sh +gzip ./source/x/fontconfig/fontconfig.dejavu.diff +gzip ./source/x/fontconfig/fontconfig.font.dir.list.diff +gzip ./source/x/scim-pinyin/scim-pinyin.gcc43.diff +gzip ./source/t/transfig/transfig.diff +gzip ./source/t/transfig/transfig.3.2.4-gcc4.patch +gzip ./source/t/tetex/tetex.dvipdfm.mkstemp.diff +gzip ./source/t/tetex/tetex.fontcachedirinhome.diff +gzip ./source/t/tetex/tetex.etex.diff +gzip ./source/t/tetex/tetex.tmp.cleanup.diff +gzip ./source/t/tetex/tetex.amstex.fmtutil.diff +gzip ./source/t/tetex/tetex.browsers.diff +gzip ./source/t/tetex/tetex.scripts.mktemp.diff +gzip ./source/t/tetex/tetex.var.fonts.diff +gzip ./source/t/tetex/tetex.CVE-2005-3193.diff +gzip ./source/t/xfig/xfig.3.2.4-null.diff +gzip ./source/t/xfig/xfig-3.2.4-mkstemp.diff +gzip ./source/t/xfig/xfig.3.2.3d-international-std-fonts.diff +gzip ./source/t/xfig/xfig.3.2.4-quiet.diff +gzip ./source/t/xfig/xfig.no.pdf.ref.diff +gzip ./source/t/xfig/xfig.3.2.3d-xcolor.diff +gzip ./source/t/xfig/xfig.3.2.4-gcc4.diff +gzip ./source/t/xfig/xfig.fig.ad.diff +gzip ./source/t/xfig/xfig.no.xfig_ref_en.pdf.diff +gzip ./source/t/xfig/xfig.docs.location.diff +gzip ./source/t/xfig/xfig.3.2.3d-xim.diff +gzip ./source/t/xfig/xfig.3.2.4-locale.diff +gzip ./source/t/xfig/xfig.3.2.4.diff +gzip ./source/t/xfig/xfig.3.2.4-urw-fonts.diff +gzip ./source/y/bsd-games/bsd-games.ospeed.diff +gzip ./source/y/bsd-games/bsd-games.config.params.diff +gzip ./source/y/bsd-games/bsd-games.strfile.8.diff +gzip ./source/y/bsd-games/bsd-games.phantasia_install_fix.diff +gzip ./source/y/bsd-games/bsd-games.fortlen.diff +gzip ./source/y/bsd-games/bsd-games.trek-gcc4.diff +gzip ./source/y/bsd-games/hangman-words +gzip ./source/y/bsd-games/bsd-games.pom.diff +gzip ./source/y/bsd-games/bsd-games.fortunepath.diff +gzip ./source/kde/kdeutils/doinst.sh +gzip ./source/kde/kdemultimedia/doinst.sh +gzip ./source/kde/kdeadmin/doinst.sh +gzip ./source/kde/k3b/k3b.internal.libsamplerate.diff +gzip ./source/kde/k3b/doinst.sh +gzip ./source/kde/kdeartwork/doinst.sh +gzip ./source/kde/amarok/doinst.sh +gzip ./source/kde/amarok/amarok.qtscript.optional.diff +gzip ./source/kde/ktorrent/doinst.sh +gzip ./source/kde/kaudiocreator/doinst.sh +gzip ./source/kde/kdenetwork/kopete-r986796.diff +gzip ./source/kde/kdenetwork/doinst.sh +gzip ./source/kde/kdebase-runtime/kdebase-runtime-text-render-969192.diff +gzip ./source/kde/kdebase-runtime/doinst.sh +gzip ./source/kde/kdebase-workspace/doinst.sh +gzip ./source/kde/kdetoys/doinst.sh +gzip ./source/kde/kdewebdev/doinst.sh +gzip ./source/kde/kdewebdev/kde4-kdewebdev-findtidy.diff +gzip ./source/kde/kdepim/doinst.sh +gzip ./source/kde/kdeedu/doinst.sh +gzip ./source/kde/kdeaccessibility/doinst.sh +gzip ./source/kde/kdeplasma-addons/doinst.sh +gzip ./source/kde/kdegraphics/doinst.sh +gzip ./source/kde/kdebase/doinst.sh +gzip ./source/kde/skanlite/doinst.sh +gzip ./source/kde/koffice/doinst.sh +gzip ./source/kde/kdegames/doinst.sh +gzip ./source/kde/kdevplatform/doinst.sh +gzip ./source/kde/kdevelop/doinst.sh +gzip ./source/kde/kdelibs/kdesu-allow_NOPASS_in_suauth.patch +gzip ./source/kde/kdelibs/doinst.sh +gzip ./source/kde/kdelibs/fixPopupForPlasmaboard.diff +gzip ./source/kde/kdesdk/doinst.sh +gzip ./source/tcl/tix/tix.soname.patch +gzip ./source/tcl/tix/tix.tcl8.5.patch +gzip ./source/tcl/expect/expect.exp_main_tk.c.version.require.diff +gzip ./source/tcl/hfsutils/hfsutils.errno.diff +gzip ./source/tcl/tclx/tclx-8.4.configure.diff +gzip ./source/tcl/tclx/tclx-8.4.gcc4.diff +gzip ./source/l/hal/patches/ignore_dupe_add_events.diff +gzip ./source/l/hal/patches/allow_uid_gid_ntfs.diff +gzip ./source/l/hal/patches/fix_led_crash.diff +gzip ./source/l/hal/patches/fix_segfault_in_mdraid.diff +gzip ./source/l/hal/patches/fixup_udi_strings.diff +gzip ./source/l/hal/patches/10-keymap.fdi-restore_zap.diff +gzip ./source/l/hal/patches/regen_fdi_cache_if_zero_size.diff +gzip ./source/l/hal/patches/set_X_keymap_properly.diff +gzip ./source/l/hal/patches/hide_more_invalid_partitions.diff +gzip ./source/l/hal/patches/check_udi_properly.diff +gzip ./source/l/hal/patches/use_udevadm_not_udevinfo.patch +gzip ./source/l/hal/patches/fix_md_crash.diff +gzip ./source/l/hal/hal.conf +gzip ./source/l/hal/doinst.sh +gzip ./source/l/hal/rc.hald +gzip ./source/l/ncurses/ncurses.mkhashsize.diff +gzip ./source/l/shared-mime-info/doinst.sh +gzip ./source/l/db42/patch.4.2.52.2 +gzip ./source/l/db42/patch.4.2.52.1 +gzip ./source/l/db42/patch.4.2.52.4 +gzip ./source/l/db42/patch.4.2.52.3 +gzip ./source/l/hicolor-icon-theme/doinst.sh +gzip ./source/l/svgalib/svgalib.nohelper.diff +gzip ./source/l/svgalib/svgalib-1.9.25-kernel-2.6.26.diff +gzip ./source/l/svgalib/svgalib.prefix.diff +gzip ./source/l/urwid/LICENSE +gzip ./source/l/djvulibre/doinst.sh +gzip ./source/l/glib2/glib-CVE-2008-4316.diff +gzip ./source/l/glib2/doinst.sh +gzip ./source/l/sdl/SDL_mixer-1.2.8.usrlocal.diff +gzip ./source/l/parted/parted.configure.diff +gzip ./source/l/libtiff/tiff-3.8.2.goo-sec.diff +gzip ./source/l/libtiff/tiff-3.8.2.tiffsplit.commandline.overflow.diff +gzip ./source/l/glibc/glibc-2.10-dns-no-gethostbyname4.diff +gzip ./source/l/glibc/glibc.ru_RU.CP1251.diff +gzip ./source/l/glibc/glibc.nis-netgroups.diff +gzip ./source/l/glibc/glibc.getcwd.max.macro.diff +gzip ./source/l/glibc/is_IS.diff +gzip ./source/l/glibc/glibc.locale.no-archive.diff +gzip ./source/l/glibc/glibc.revert.to.fix.build.breakages.diff +gzip ./source/l/libvisual-plugins/libvisual-plugins.gstreamer.diff +gzip ./source/l/qt/qt.x86.cflags.diff +gzip ./source/l/qt/qt.mysql.h.diff +gzip ./source/l/qt/doinst.sh +gzip ./source/l/librsvg/librsvg_seamonkey-config.diff +gzip ./source/l/netpbm/Makefile.config +gzip ./source/l/esound/doinst.sh +gzip ./source/l/qtscriptgenerator/include-everything.patch +gzip ./source/l/libtermcap/termcap.h.diff +gzip ./source/l/libtermcap/termcap-compat_1.2.3.diff +gzip ./source/l/libtermcap/termcap.bufsize.diff +gzip ./source/l/openexr/openexr.gcc43.diff +gzip ./source/l/lesstif/lesstif.gcc42.diff +gzip ./source/l/lesstif/lesstif.x86_64.patch +gzip ./source/l/lesstif/lesstif.rendertable.check.diff +gzip ./source/l/lesstif/lesstif.Makefile.in.patch +gzip ./source/l/lesstif/doinst.sh +gzip ./source/l/lesstif/lesstif.PutPixel32.patch +gzip ./source/l/imlib/imlib.mitshm.render.diff +gzip ./source/l/libjpeg/jpeg-6b.diff +gzip ./source/l/gtk+2/gtk.nsplugin.diff +gzip ./source/l/gtk+2/gtk.pnglz.diff +gzip ./source/l/gtk+2/doinst.sh +gzip ./source/l/libnl/libnl-include_limits.h.patch +gzip ./source/l/pango/pango.etc.host.location.diff +gzip ./source/l/desktop-file-utils/doinst.sh +gzip ./source/l/db44/patch.4.4.20.2 +gzip ./source/l/db44/patch.4.4.20.1 +gzip ./source/l/libcap/libcap.capability.h.fix.broken.includes.diff +gzip ./source/l/freetype/freetype.bytecode.interpreter.diff +gzip ./source/l/freetype/freetype.illadvisederror.diff +gzip ./source/l/freetype/freetype.subpixel.rendering.diff +gzip ./source/l/qca-ossl/qca-ossl.nowhirlpool.diff +gzip ./source/l/akonadi/doinst.sh +gzip ./source/l/boost/boost.ifdef_placement.diff +gzip ./source/l/icon-naming-utils/icon-naming-utils.pkgconfigdir.diff +gzip ./source/l/fuse/doinst.sh +gzip ./source/l/gnome-icon-theme/doinst.sh +gzip ./source/l/gnome-icon-theme/gnome-icon-theme.pkgconfig.path.diff +gzip ./source/l/libpng/libpng.libs.diff +gzip ./source/l/libexif/libexif.pc.diff +bzip2 ./source/n/curl/cacert.pem +bzip2 ./source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt +bzip2 ./source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt +bzip2 ./source/x/ttf-indic-fonts/Samyak_Malayalam.ttf +bzip2 ./source/x/ttf-indic-fonts/COPYING +bzip2 ./source/l/gtk+/gtk+1.2_1.2.10-18.diff +bzip2 ./source/l/glib/glib1.2_1.2.10-17.diff diff --git a/slackbook/html/TRADEMARKS.html b/slackbook/html/TRADEMARKS.html new file mode 100644 index 000000000..0f282ca46 --- /dev/null +++ b/slackbook/html/TRADEMARKS.html @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + +
+

Slackware Linux is a registered trademark of Patrick Volkerding and Slackware Linux, +Inc.

+ +

Linux is a registered trademark of Linus Torvalds.

+ +

America Online and AOL are registered trademarks of America Online, Inc. in the United +States and/or other countries.

+ +

Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of +Apple Computer, Inc., registered in the United States and other countries.

+ +

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks +of International Business Machines Corporation in the United States, other countries, or +both.

+ +

IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and +Electronics Engineers, Inc. in the United States.

+ +

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or +registered trademarks of Intel Corporation or its subsidiaries in the United States and +other countries.

+ +

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are +either registered trademarks or trademarks of Microsoft Corporation in the United States +and/or other countries.

+ +

Netscape and the Netscape Navigator are registered trademarks of Netscape +Communications Corporation in the U.S. and other countries.

+ +

Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United +States and other countries.

+ +

XFree86 is a trademark of The XFree86 Project, Inc.

+ +

Many of the designations used by manufacturers and sellers to distinguish their +products are claimed as trademarks. Where those designations appear in this document, and +Slackware Linux, Inc. was aware of the trademark claim, the designations have been +followed by the “™” or the “®” symbol.

+
+ + + + + diff --git a/slackbook/html/archive-files-bzip2.html b/slackbook/html/archive-files-bzip2.html new file mode 100644 index 000000000..ea3a4e044 --- /dev/null +++ b/slackbook/html/archive-files-bzip2.html @@ -0,0 +1,103 @@ + + + + +bzip2 + + + + + + + + + + + +
+

15.2 bzip2

+ +

bzip2(1) is an alternative compression program installed on +Slackware Linux. It uses a different compression algorithm from gzip, which results in some advantages and some disadvantages. The +main advantage for bzip2 is the compressed file size. bzip2 will almost always compress better than gzip. In some instances, this can result in dramatically smaller +files. This can be a great advantage for people on slower modem connections. Also +remember, when downloading software from a public ftp server, it's generally good +netiquette to download the .bz2 files instead of the .gz files, as this results in less overhead for the generous people +hosting the server.

+ +

The disadvantage to bzip2 is that it is more CPU intensive +than gzip. This means that bzipping a file will generally take +longer and will use more of the CPU than gzipping the file would. When considering which +compression program to use, you must weigh this speed vs. compressed size and determine +which is more important.

+ +

The usage of bzip2 is nearly identical to gzip, so not much time will be spent discussing it. Like gunzip, bunzip2 is identical to bzip2 -d. The primary difference in practical usage is that bzip2 uses the .bz2 extension.

+ + + + + +
+
+% bzip2 filename
+% bunzip2 filename.bz2
+% bzip2 -9 filename
+
+
+
+ + + + + diff --git a/slackbook/html/archive-files-tar.html b/slackbook/html/archive-files-tar.html new file mode 100644 index 000000000..b23db4b12 --- /dev/null +++ b/slackbook/html/archive-files-tar.html @@ -0,0 +1,232 @@ + + + + +tar + + + + + + + + + + + +
+

15.3 tar

+ +

tar(1) is the GNU tape archiver. It takes several files or +directories and creates one large file. This allows you to compress an entire directory +tree, which is impossible by just using gzip or bzip2. tar has many command line options, +which are explained in its man page. This section will just cover the most common uses of +tar.

+ +

The most common use for tar is to decompress and unarchive a +package that you've downloaded from a web site or ftp site. Most files will come with a +.tar.gz extension. This is commonly known as a +“tarball”. It means that several files were archived using tar and then compressed using gzip. You +might also see this listed as a .tar.Z file. It means the same +thing, but this is usually encountered on older Unix systems.

+ +

Alternatively, you might find a .tar.bz2 file somewhere. +Kernel source is distributed as such because it is a smaller download. As you might have +guessed, this is several files archived with tar and then +bzipped.

+ +

You can get to all the files in this archive by making use of tar and some command line arguments. Unarchiving a tarball makes use +of the -z flag, which means to first run the file through gunzip and decompress it. The most common way to decompress a +tarball is like so:

+ + + + + +
+
+% tar -xvzf filename.tar.gz
+
+
+ +

That's quite a few options. So what do they all mean? The -x +means to extract. This is important, as it tells tar exactly +what to do with the input file. In this case, we'll be splitting it back up into all the +files that it came from. -v means to be verbose. This will list +all the files that are being unarchived. It is perfectly acceptable to leave this option +off, if somewhat boring. Alternatively, you could use -vv to be +very verbose and list even more information about each file being unarchived. The -z option tells tar to run filename.tar.gz through gunzip first. And +finally, the -f option tells tar that +the next string on the command line is the file to operate on.

+ +

There are a few other ways to write this same command. On older systems lacking a +decent copy of GNU tar, you might see it written like so:

+ + + + + +
+
+% gunzip filename.tar.gz | tar -xvf -
+
+
+ +

This command line will uncompress the file and send the output to tar. Since gzip will write its output to +standard out if told to do so, this command will write the decompressed file to standard +out. The pipe then sends it to tar for unarchiving. The +“-” means to operate on standard input. It will unarchive the stream of data +that it gets from gzip and write that to the disk.

+ +

Another way to write the first command line is to leave off the dash before the +options, like so:

+ + + + + +
+
+% tar xvzf filename.tar.gz
+
+
+ +

You might also encounter a bzipped archive. The version of tar that comes with Slackware Linux can handle these the same as +gzipped archives. Instead of the -z command line option, you'd +use -j:

+ + + + + +
+
+% tar -xvjf filename.tar.bz2
+
+
+ +

It is important to note that tar will place the unarchived +files in the current directory. So, if you had an archive in /tmp that you wanted to decompress into your home directory, there +are a few options. First, the archive could be moved into your home directory and then +run through tar. Second, you could specify the path to the +archive file on the command line. Third, you can use the -C +option to “explode” the tarball in a specified directory.

+ + + + + +
+
+% cd $HOME
+% cp /tmp/filename.tar.gz .
+% tar -xvzf filename.tar.gz
+
+% cd $HOME
+% tar -xvzf /tmp/filename.tar.gz
+
+% cd /
+% tar -xvzf /tmp/filename.tar.gz -C $HOME
+
+
+ +

All the above statements are equivalent. In each case, the archive is unpacked inside +your home directory and the original uncompressed archive is left in place.

+ +

So what good is being able to uncompress these archives if you can't make them? Well, +tar handles that too. In most cases it's as easy as removing the +“-x” option and replacing it with the “-c” option.

+ + + + + +
+
+% tar -cvzf filename.tar.gz .
+
+
+ +

In this command line, the -c option tells tar to create an archive, while the -z +option runs the resulting archive file through gzip to compress +it. filename.tar.gz is the file that you want to create.

+ +

Specifying the “-f” option isn't always +necessary, but is typically good practice anyway. Without it, tar writes to standard output, which is usually desired for piping +tar's output to another program, like so.

+ + + + + +
+
+% tar -cv filename.tar . | gpg --encrypt
+
+
+ +

That command creates an non-compressed tar archive of the current directory, pipes the +tarball through gpg which encrypts and compresses the tarball, +making it realistically impossible to read by anyone other than the person knowing the +secret key.

+
+ + + + + diff --git a/slackbook/html/archive-files-zip.html b/slackbook/html/archive-files-zip.html new file mode 100644 index 000000000..cf7ef6cdd --- /dev/null +++ b/slackbook/html/archive-files-zip.html @@ -0,0 +1,114 @@ + + + + +zip + + + + + + + + + + + +
+

15.4 zip

+ +

Finally, there are two utilities that can be used on zip files. These are very common +in the Windows world, so Linux has programs to deal with them. The compression program is +called zip(1), and the decompression program is called unzip(1).

+ + + + + +
+
+% zip foo *
+
+
+ +

This will create the file foo.zip, which will contain all +the files in the current directory. zip will add the .zip extension automatically, so there's no need to include that in +the file name. You can also recurse through the current directory, zipping up any +directories that are also laying around:

+ + + + + +
+
+% zip -r foo *
+
+
+ +

Decompressing files is easy, as well.

+ + + + + +
+
+% unzip foo.zip
+
+
+ +

This will extract all the files in the file foo.zip, +including any directories in the archive.

+ +

The zip utilities have several advanced options for creating +self-extracting archives, leaving out files, controlling compressed file size, printing +out what will happen, and much more. See the man pages for zip +and unzip to find out how to use these options.

+
+ + + + + diff --git a/slackbook/html/archive-files.html b/slackbook/html/archive-files.html new file mode 100644 index 000000000..c29542a95 --- /dev/null +++ b/slackbook/html/archive-files.html @@ -0,0 +1,145 @@ + + + + +Archive Files + + + + + + + + + + +
+

Chapter 15 Archive Files

+ +
+
+
Table of Contents
+ +
15.1 gzip
+ +
15.2 bzip2
+ +
15.3 tar
+ +
15.4 zip
+
+
+ +
+

15.1 gzip

+ +

gzip(1) is the GNU compression program. It takes a single +file and compresses it. The basic usage is as follows:

+ + + + + +
+
+% gzip filename
+
+
+ +

The resulting file will be named filename.gz and will usually be smaller than the input +file. Note that filename.gz will replace filename. This means that filename will +no longer exist, even though a gzipped copy will. Regular text files will compress +nicely, while jpeg images, mp3s, and other such files will not compress too well as they +are already compressed. This basic usage is a balance of final file size and compression +time. The maximum compression can be achieved like so:

+ + + + + +
+
+% gzip -9 filename
+
+
+ +

This will take a longer time to compress the file, but the result will be as small as +gzip can make it. Using lower values for the command line option +will cause it to compress faster, but the file will not be as compressed.

+ +

Decompressing gzipped files can be done using two commands, which are really just the +same program. gzip will decompress any file with a recognized +file extension. A recognized extension can be any of the following: .gz, -gz, .z, +-z, .Z, or -Z. The first method is to call gunzip(1) +on a file, like so:

+ + + + + +
+
+% gunzip filename.gz
+
+
+ +

This will leave a decompressed version of infile in the current directory, and the .gz extension will be stripped from the filename. gunzip is really part of gzip and is +identical to gzip -d. As such, gzip is +often pronounced gunzip, as that name just sounds cooler. +:^)

+
+
+ + + + + diff --git a/slackbook/html/basic-network-commands-dns.html b/slackbook/html/basic-network-commands-dns.html new file mode 100644 index 000000000..f8881aad2 --- /dev/null +++ b/slackbook/html/basic-network-commands-dns.html @@ -0,0 +1,181 @@ + + + + +DNS Tools + + + + + + + + + + + +
+

13.3 DNS Tools

+ +

Domain Name Service (DNS for short) is that magical protocol that allows your computer +to turn meaningless domain names like www.slackware.com into meaningful IP address like +64.57.102.34. Computers can't route packets to www.slackware.com, +but they can route packets to that domain name's IP address. This gives us a convenient +way to remember machines. Without DNS we'd have to keep a mental database of just what IP +address belongs to what computer, and that's assuming the IP address doesn't change. +Clearly using names for computers is better, but how do we map names to IP addresses?

+ +
+

13.3.1 host

+ +

host(1) can do this for us. host is +used to map names to IP addresses. It is a very quick and simple utility without a lot of +functions.

+ + + + + +
+
+% host www.slackware.com
+www.slackware.com is an alias for slackware.com.
+slackware.com has address 64.57.102.34
+
+
+ +

But let's say for some reason we want to map an IP address to a domain name; what +then?

+
+ +
+

13.3.2 nslookup

+ +

nslookup is a tried and true program that has weathered the +ages. nslookup has been deprecated and may be removed from +future releases. There is not even a man page for this program.

+ + + + + +
+
+% nslookup 64.57.102.34
+Note:  nslookup is deprecated and may be removed from future releases.
+Consider using the `dig' or `host' programs instead.  Run nslookup with
+the `-sil[ent]' option to prevent this message from appearing.
+Server:         192.168.1.254
+Address:        192.168.1.254#53
+
+Non-authoritative answer:
+www.slackware.com       canonical name = slackware.com.
+Name:   slackware.com
+Address: 64.57.102.34
+
+
+
+ +
+

13.3.3 dig

+ +

The meanest dog in the pound, the domain information groper, dig(1) for short, is the go-to program for finding DNS information. +dig can grab just about anything from a DNS server including +reverse lookups, A, CNAME, MX, SP, and TXT records. dig has many +command line options and if you're not familiar with it you should read through it's +extensive man page.

+ + + + + +
+
+% dig @192.168.1.254 www.slackware.com mx
+
+; <<>> DiG 9.2.2 <<>> @192.168.1.254 www.slackware.com mx
+;; global options:  printcmd
+;; Got answer:
+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26362
+;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
+
+;; QUESTION SECTION:
+;www.slackware.com.             IN      MX
+
+;; ANSWER SECTION:
+www.slackware.com.      76634   IN      CNAME   slackware.com.
+slackware.com.          86400   IN      MX      1 mail.slackware.com.
+
+;; AUTHORITY SECTION:
+slackware.com.          86400   IN      NS      ns1.cwo.com.
+slackware.com.          86400   IN      NS      ns2.cwo.com.
+
+;; ADDITIONAL SECTION:
+ns1.cwo.com.            163033  IN      A       64.57.100.2
+ns2.cwo.com.            163033  IN      A       64.57.100.3
+
+;; Query time: 149 msec
+;; SERVER: 192.168.1.254#53(192.168.1.254)
+;; WHEN: Sat Nov  6 16:59:31 2004
+;; MSG SIZE  rcvd: 159
+
+
+ +

This should give you an idea how dig works. +“@192.168.1.254” specifies the dns server to use. +“www.slackware.com” is the domain name I am performing a lookup on, and +“mx” is the type of lookup I am performing. The above query tells me that +e-mail to www.slackware.com will instead be sent to mail.slackware.com for delivery.

+
+
+ + + + + diff --git a/slackbook/html/basic-network-commands-email.html b/slackbook/html/basic-network-commands-email.html new file mode 100644 index 000000000..487ea4bc4 --- /dev/null +++ b/slackbook/html/basic-network-commands-email.html @@ -0,0 +1,241 @@ + + + + +email + + + + + + + + + + + +
+

13.7 email

+ +

Electronic mail is one of the most popular things one can do on the Internet. In 1998, +it was reported that more electronic mail was sent than regular mail. It is indeed common +and useful.

+ +

Under Slackware, we provide a standard mail server, and several mail clients. All of +the clients discussed below are text-based. A lot of Windows users may be against this, +but you will find that a text based client is very convenient, especially when checking +mail remotely. Fear not, there are many graphical e-mail clients such as KDE's Kmail. If +you wish to use one of those check its help menu.

+ +
+

13.7.1 pine

+ +

pine(1) is not elm. Or so the saying +goes. The University of Washington created their program for Internet news and email out +of a need for an easy mail reader for their students. pine is +one of the most popular email clients in use today and is available for nearly every +flavor of Unix and even Windows.

+ +
+

Figure 13-2. The Pine main menu

+ +

+
+ +

You will see a menu of commands and a row of command keys at the bottom. pine is indeed a complex program, so we will not discuss every +feature about it here.

+ +

To see what's in your inbox, type i. Your messages are +listed with their date, author, and subject. Highlight the message you want and press +enter to view it. Pressing r +will start a reply to the message. Once you have written the response, type Ctrl+X to send it. You can press i to get back to the message listing.

+ +

If you want to delete a message, press d. It will mark +the highlighted message for deletion. pine deletes the mail when +you exit the program. pine also lets you store your mail in +folders. You can get a listing of folders by pressing l. At +the message listing, press s to save it to another folder. +It will ask for the folder name to write the message to.

+ +

pine offers many, many features; you should definitely have a +look at the man page for more information. It will contain the latest information about +the program.

+
+ +
+

13.7.2 elm

+ +

elm(1) is another popular text-based email client. Though not +quite as user friendly as pine, it's definitely been around a +lot longer.

+ +
+

Figure 13-3. Elm main screen

+ +

+
+ +

By default, you are placed in your inbox. The messages are listed with the message +number, date, sender, and subject. Use the arrow keys to highlight the message you want. +Press Enter to read the message.

+ +

To compose a new message, type m at the main screen. The +d key will flag a message for deletion. And the r key will reply to the current message you are reading. All of +these keys are displayed at the bottom of the screen with a prompt.

+ +

The man page discusses elm in more detail, so you will +probably want to consult that before using elm.

+
+ +
+

13.7.3 mutt

+ +

“All mail clients suck. This one just sucks less.” mutt's original interface was based on elm +with added features found in other popular mailclients, resulting in a hybrid mutt.

+ +

Some of mutt's features include:

+ +
    +
  • +

    color support

    +
  • + +
  • +

    message threading

    +
  • + +
  • +

    MIME and PGP/MIME support

    +
  • + +
  • +

    pop3 and imap support

    +
  • + +
  • +

    support for multiple mailbox formats (mbox, MMDF, MH, maildir)

    +
  • + +
  • +

    highly customizable

    +
  • +
+ +
+

Figure 13-4. Mutt main screen

+ +

+
+ +

if you're looking for a mail client that will let you be in total control over +everything, then you will like mutt. all the default settings +can be customized, keybindings can be changed. if you like to add a macro, you can.

+ +

you probably want to take a look at the muttrc manpage, +which will tell you how to configure everything. or take a look at the included example +muttrc file.

+
+ +
+

13.7.4 nail

+ +

nail(1) is a command line driven mail client. It is very +primitive and offers pretty much nothing in the way of user interfaces. However, mailx is +handy for times when you need to quickly mail something, scripting a bulk mailer, testing +your MTA installation or something similar. Note that Slackware creates symbolic links to +nail at /usr/bin/mail and /usr/bin/mailx. Any of these three commands executes the same +program. In fact, you will most likely see nail referred to as +mail.

+ +

The basic command line is:

+ + + + + +
+
+% mailx <subject> <to-addr>
+
+
+ +

mailx reads the message body from standard input. So you can +cat a file into this command to mail it, or you can just type text and hit Ctrl+D when finished with the message.

+ +

Here is an example of mailing a program source file to another person.

+ + + + + +
+
+% cat randomfunc.c | mail -s "Here's that function" asdf@example.net
+
+
+ +

The man page explains more of what nail can do, so you will +probably want to have a look at that before using it.

+
+
+ + + + + diff --git a/slackbook/html/basic-network-commands-finger.html b/slackbook/html/basic-network-commands-finger.html new file mode 100644 index 000000000..08eca57c6 --- /dev/null +++ b/slackbook/html/basic-network-commands-finger.html @@ -0,0 +1,132 @@ + + + + +finger + + + + + + + + + + + +
+

13.4 finger

+ +

finger(1) will retrieve information about the specified user. +You give finger a username or an email address and it will try to contact the necessary +server and retrieve the username, office, telephone number, and other pieces of +information. Here is an example:

+ + + + + +
+
+% finger johnc@idsoftware.com
+
+
+ +

finger can return the username, mail status, phone numbers, +and files referred to as “dot plan” and “dot project”. Of course, +the information returned varies with each finger server. The one +included with Slackware returns the following information by default:

+ +
    +
  • +

    Username

    +
  • + +
  • +

    Room number

    +
  • + +
  • +

    Home phone number

    +
  • + +
  • +

    Work phone number

    +
  • + +
  • +

    Login status

    +
  • + +
  • +

    Email status

    +
  • + +
  • +

    Contents of the .plan file in the user's home directory

    +
  • + +
  • +

    Contents of the .project file in the user's home +directory

    +
  • +
+ +

The first four items can be set with the chfn command. It +stores those values in the /etc/passwd file. To change the +information in your .plan or .project +file, just edit them with your favorite text editor. They must reside in your home +directory and must be called .plan and .project.

+ +

Many users finger their own account from a remote machine to +quickly see if they have new email. Or, you can see a user's plan or current project.

+ +

Like many commands, finger has options. Check the man page +for more information on what special options you can use.

+
+ + + + + diff --git a/slackbook/html/basic-network-commands-ftp.html b/slackbook/html/basic-network-commands-ftp.html new file mode 100644 index 000000000..a5b48f073 --- /dev/null +++ b/slackbook/html/basic-network-commands-ftp.html @@ -0,0 +1,279 @@ + + + + +FTP Clients + + + + + + + + + + + +
+

13.9 FTP Clients

+ +

FTP stands for the File Transfer Protocol. It allows you to send and receive files +between two computers. There is the FTP server and the FTP client. We discuss the client +in this section.

+ +

For the curious, the “client” is you. The “server” is the +computer that answers your FTP request and lets you login. You will download files from +and upload files to the server. The client cannot accept FTP connections, it can only +connect to servers.

+ +
+

13.9.1 ftp

+ +

To connect to an FTP server, simply run the ftp(1) command +and specify the host:

+ + + + + +
+
+% ftp <hostname> [port]
+
+
+ +

If the host is running an FTP server, it will ask for a username and password. You can +log in as yourself or as “anonymous”. Anonymous FTP sites are very popular +for software archives. For example, to get Slackware Linux via FTP, you must use +anonymous FTP.

+ +

Once connected, you will be at the ftp> prompt. There +are special commands for FTP, but they are similar to other standard commands. The +following shows some of the basic commands and what they do:

+ +
+

Table 13-1. ftp commands

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandPurpose
lsList files
cd <dirname>Change directory
binSet binary transfer mode
asciiSet ASCII transfer mode
get <filename>Download a file
put <filename>Upload a file
hashToggle hash mark stats indicator
tickToggle byte counter indicator
promToggle interactive mode for downloads
mget <mask>Download a file or group of files; wildcards are allowed
mput <mask>Upload a file or group of files; wildcards are allowed
quitLog off the FTP server
+
+ +

You can also use some of the following commands which are quite self-explanatory: chmod, delete, rename, rmdir. For a complete list of all +commands and their meaning, just type help or ? and you'll see a complete listing on screen.

+ +

FTP is a fairly simple program to use, but lacks the user interface that many of us +are used to nowadays. The man page discusses some of the command line options for ftp(1).

+ + + + + +
+
+ftp> ls *.TXT
+200 PORT command successful.
+150 Opening ASCII mode data connection for /bin/ls.
+-rw-r--r--   1 root     100         18606 Apr  6  2002 BOOTING.TXT
+-rw-r--r--   1 root     100         10518 Jun 13  2002 COPYRIGHT.TXT
+-rw-r--r--   1 root     100           602 Apr  6  2002 CRYPTO_NOTICE.TXT
+-rw-r--r--   1 root     100         32431 Sep 29 02:56 FAQ.TXT
+-rw-r--r--   1 root     100        499784 Mar  3 19:29 FILELIST.TXT
+-rw-r--r--   1 root     100        241099 Mar  3 19:12 PACKAGES.TXT
+-rw-r--r--   1 root     100         12339 Jun 19  2002 README81.TXT
+-rw-r--r--   1 root     100         14826 Jun 17  2002 SPEAKUP_DOCS.TXT
+-rw-r--r--   1 root     100         15434 Jun 17  2002 SPEAK_INSTALL.TXT
+-rw-r--r--   1 root     100          2876 Jun 17  2002 UPGRADE.TXT
+226 Transfer complete.
+ftp> tick
+Tick counter printing on (10240 bytes/tick increment).
+ftp> get README81.TXT
+local: README81.TXT remote: README81.TXT
+200 PORT command successful.
+150 Opening BINARY mode data connection for README81.TXT (12339 bytes).
+Bytes transferred: 12339
+226 Transfer complete.
+12339 bytes received in 0.208 secs (58 Kbytes/sec)
+
+
+
+ +
+

13.9.2 ncftp

+ +

ncftp(1) (pronounced "Nik-F-T-P") is an alternative to the +traditional ftp client that comes with Slackware. It is still a text-based program, but +offers many advantages over ftp, including:

+ +
    +
  • +

    Tab completion

    +
  • + +
  • +

    Bookmarks file

    +
  • + +
  • +

    More liberal wildcard uses

    +
  • + +
  • +

    Command history

    +
  • +
+ +

By default, ncftp will try to log in anonymously to the +server you specify. You can force ncftp to present a login +prompt with the “-u” option. Once logged in, you +can use the same commands as in ftp, only you'll notice a nicer +interface, one that works more like bash.

+ + + + + +
+
+ncftp /pub/linux/slackware > cd slackware-current/
+Please read the file README81.TXT
+  it was last modified on Wed Jun 19 16:24:21 2002 - 258 days ago
+CWD command successful.
+ncftp ...ware/slackware-current > ls
+BOOTING.TXT               FAQ.TXT                   bootdisks/
+CHECKSUMS                 FILELIST.TXT              extra/
+CHECKSUMS.asc             GPG-KEY                   isolinux/
+CHECKSUMS.md5             PACKAGES.TXT              kernels/
+CHECKSUMS.md5.asc         PRERELEASE_NOTES          pasture/
+COPYING                   README81.TXT              rootdisks/
+COPYRIGHT.TXT             SPEEKUP_DOCS.TXT          slackware/
+CRYPTO_NOTICE.TXT         SPEEK_INSTALL.TXT         source/
+CURRENT.WARNING           Slackware-HOWTO
+ChangeLog.txt             UPGRADE.TXT
+ncftp ...ware/slackware-current > get README81.TXT
+README81.TXT:                                           12.29 kB  307.07 kB/s
+
+
+
+
+ + + + + diff --git a/slackbook/html/basic-network-commands-ssh.html b/slackbook/html/basic-network-commands-ssh.html new file mode 100644 index 000000000..f9912fe1e --- /dev/null +++ b/slackbook/html/basic-network-commands-ssh.html @@ -0,0 +1,100 @@ + + + + +The Secure shell + + + + + + + + + + + +
+

13.6 The Secure shell

+ +

Today, secure shell basks in the adoration that telnet once +enjoyed. ssh(1) allows one to make a connection to a remote +machine and execute programs as if one were physically present; however, ssh encrypts all the data travelling between the two computers so +even if others intercept the conversation, they are unable to understand it. A typical +secure shell connection follows.

+ + + + + +
+
+% ssh carrier.lizella.net -l alan
+The authenticity of host 'carrier.lizella.net (192.168.1.253)' can't be
+established.
+RSA key fingerprint is 0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.
+Are you sure you want to continue connecting (yes/no)? yes
+Warning: Permanently added 'carrier.lizella.net' (RSA) to the list of
+known hosts.
+Password: password
+Last login: Sat Nov  6 16:32:19 2004 from 192.168.1.102
+Linux 2.4.26-smp.
+alan@carrier:~$ ls -l MANIFEST 
+-rw-r--r--  1 alan users 23545276 2004-10-28 20:04 MANIFEST
+alan@carrier:~$ exit
+logout
+Connection to carrier.lizella.net closed.
+
+
+ +

There you see me making an ssh connection to carrier.lizella.net, and checking the permissions on the MANIFEST file.

+
+ + + + + diff --git a/slackbook/html/basic-network-commands-talk.html b/slackbook/html/basic-network-commands-talk.html new file mode 100644 index 000000000..5c61119e3 --- /dev/null +++ b/slackbook/html/basic-network-commands-talk.html @@ -0,0 +1,184 @@ + + + + +Talking to Other People + + + + + + + + + + + +
+

13.10 Talking to Other People

+ +
+

13.10.1 wall

+ +

wall(1) is a quick way to write a message to the users on a +system. The basic syntax is:

+ + + + + +
+
+% wall [file]
+
+
+ +

This will result in the contents of [file] being displayed on the terminals of all +currently logged in users. If you don't specify a file, wall will read from standard +input, so you can just type your message, and end with Ctrl+d.

+ +

wall doesn't have many features, and apart from letting your +users know that you're about to do some serious maintenance to the system, or even reboot +it, so they have time to save their work and log off :)

+
+ +
+

13.10.2 talk

+ +

talk(1) allows two users to chat. It splits the screen in +half, horizontally. To request a chat with another user, use this command:

+ + + + + +
+
+% talk <person> [ttyname]
+
+
+ +
+

Figure 13-7. Two users in a talk session

+ +

+
+ +

If you specify just a username, the chat request is assumed to be local, so only local +users are queried. The ttyname is required if you want to ring a user on a specific +terminal (if the user is logged in more than once). The required information for talk can be obtained from the w(1) +command.

+ +

talk can also ring users on remote hosts. For the username +you simply specify an email address. talk will try to contact +that remote user on that host.

+ +

talk is somewhat limited. It only supports two users and is +half-duplex.

+
+ +
+

13.10.3 ytalk

+ +

ytalk(1) is a backwards compatible replacement for talk. It comes with Slackware as the ytalk +command. The syntax is similar, but has a few differences:

+ + + + + +
+
+% ytalk <username>[#ttyname]
+
+
+ +
+

Figure 13-8. Two users in a ytalk session

+ +

+
+ +

The username and terminal are specified the same as under talk, except you must put +them together with the hash mark (#).

+ +

ytalk offers several advantages:

+ +
    +
  • +

    It supports more than two users.

    +
  • + +
  • +

    A menu of options that can be brought up anytime with Esc.

    +
  • + +
  • +

    You can shell out while still in the talk session.

    +
  • + +
  • +

    Plus more...

    +
  • +
+ +

If you're a server administrator, you'll want to make sure that the ntalk port is enabled in /etc/inetd.conf. +ytalk needs that to work properly.

+
+
+ + + + + diff --git a/slackbook/html/basic-network-commands-telnet.html b/slackbook/html/basic-network-commands-telnet.html new file mode 100644 index 000000000..736a26486 --- /dev/null +++ b/slackbook/html/basic-network-commands-telnet.html @@ -0,0 +1,173 @@ + + + + +telnet + + + + + + + + + + + +
+

13.5 telnet

+ +

Someone once stated that telnet(1) was the coolest thing he +had ever seen on computers. The ability to remotely log in and do stuff on another +computer is what separates Unix and Unix-like operating systems from other operating +systems.

+ +

telnet allows you to log in to a computer, just as if you +were sitting at the terminal. Once your username and password are verified, you are given +a shell prompt. From here, you can do anything requiring a text console. Compose email, +read newsgroups, move files around, and so on. If you are running X and you telnet to another machine, you can run X programs on the remote +computer and display them on yours.

+ +

To login to a remote machine, use this syntax:

+ + + + + +
+
+% telnet <hostname>
+
+
+ +

If the host responds, you will receive a login prompt. Give it your username and +password. That's it. You are now at a shell. To quit your telnet session, use either the +exit command or the logout command.

+ +
+ + + + + +
Warning +

telnet does not encrypt the information it sends. Everything +is sent in plain text, even passwords. It is not advisable to use telnet over the Internet. Instead, consider the Secure Shell. It encrypts all traffic and is available for free.

+
+
+ +
+

13.5.1 The other use of telnet

+ +

Now that we have convinced you not to use the telnet protocol anymore to log into a +remote machine, we'll show you a couple of useful ways to use telnet.

+ +

You can also use the telnet command to connect to a host on a +certain port.

+ + + + + +
+
+% telnet <hostname> [port]
+
+
+ +

This can be quite handy when you quickly need to test a certain service, and you need +full control over the commands, and you need to see what exactly is going on. You can +interactively test or use an SMTP server, a POP3 server, an HTTP server, etc. this +way.

+ +

In the next figure you'll see how you can telnet to a HTTP +server on port 80, and get some basic information from it.

+ +
+

Figure 13-1. Telnetting to a webserver

+ + + + + +
+
+% telnet store.slackware.com 80
+Trying 69.50.233.153...
+Connected to store.slackware.com.
+Escape character is '^]'.
+HEAD / HTTP/1.0
+
+HTTP/1.1 200 OK
+Date: Mon, 25 Apr 2005 20:47:01 GMT
+Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
+Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
+ETag: "193424-c0-3e9fda6e"
+Accept-Ranges: bytes
+Content-Length: 192
+Connection: close
+Content-Type: text/html
+
+Connection closed by foreign host.
+%
+
+
+
+ +

You can do the same for other plain-text protocols, as long as you know what port to +connect to, and what the commands are.

+
+
+ + + + + diff --git a/slackbook/html/basic-network-commands-traceroute.html b/slackbook/html/basic-network-commands-traceroute.html new file mode 100644 index 000000000..fead8c007 --- /dev/null +++ b/slackbook/html/basic-network-commands-traceroute.html @@ -0,0 +1,106 @@ + + + + +traceroute + + + + + + + + + + + +
+

13.2 traceroute

+ +

Slackware's traceroute(8) command is a very useful network +diagnostic tool. traceroute displays each host that a packet +travels through as it tries to reach its destination. You can see how many +“hops” from the Slackware web site you are with this command:

+ + + + + +
+
+% traceroute www.slackware.com
+
+
+ +

Each host will be displayed, along with the response times at each host. Here is an +example output:

+ + + + + +
+
+% traceroute www.slackware.com
+traceroute to www.slackware.com (204.216.27.13), 30 hops max, 40 byte packets
+1  zuul.tdn (192.168.1.1)  0.409 ms  1.032 ms  0.303 ms
+2  207.171.227.254 (207.171.227.254)  18.218 ms  32.873 ms  32.433 ms
+3  border-sf-2-0-4.sirius.com (205.134.230.254) 15.662 ms 15.731 ms 16.142 ms
+4  pb-nap.crl.net (198.32.128.20)  20.741 ms  23.672 ms  21.378 ms
+5  E0-CRL-SFO-03-E0X0.US.CRL.NET (165.113.55.3) 22.293 ms 21.532 ms 21.29 ms
+6  T1-CDROM-00-EX.US.CRL.NET (165.113.118.2)  24.544 ms  42.955 ms 58.443 ms
+7  www.slackware.com (204.216.27.13)  38.115 ms  53.033 ms  48.328 ms
+
+
+ +

traceroute is similar to ping in +that it uses ICMP packets. There are several options that you can specify with traceroute. These options are explained in detail in the man +page.

+
+ + + + + diff --git a/slackbook/html/basic-network-commands-web.html b/slackbook/html/basic-network-commands-web.html new file mode 100644 index 000000000..e3f3b6c5f --- /dev/null +++ b/slackbook/html/basic-network-commands-web.html @@ -0,0 +1,215 @@ + + + + +Browsers + + + + + + + + + + + +
+

13.8 Browsers

+ +

The first thing that people think about when they hear the word Internet is +“surfing the net”. Or looking at websites using a web browser. This is +probably by far the most popular use of the Internet for the average user.

+ +

Slackware provides popular graphical web browsers in the “XAP” series, as +well as text mode browsers in the “N” series. We'll take a quick look at some +of the most common options below.

+ +
+

13.8.1 lynx

+ +

lynx(1) is a text-based web browser. It is a very quick way +of looking up something on the Internet. Sometimes graphics just get in the way if you +know exactly what you're after.

+ +

To start lynx, just type lynx at the +prompt:

+ + + + + +
+
+% lynx
+
+
+ +
+

Figure 13-5. Lynx default start page

+ +

+
+ +

You may want to specify a site for lynx to open to:

+ + + + + +
+
+% lynx http://www.slackware.com
+
+
+ +

lynx prints the command keys and what they do at the bottom +of the screen. The up and down arrow keys move around the document, Enter selects the highlighted link, and the left arrow goes back to the previous page. Typing d will download the currently selected file. The g command brings up the Go prompt, where you can give lynx a URL to open.

+ +

There are many other commands in lynx. You can either consult +the man page, or type h to get the help screen for more +information.

+
+ +
+

13.8.2 links

+ +

Just like lynx, links is a textmode +web browser, where you do all the navigation using the keyboard. However, when you press +the Esc key, it will activate a very convenient pulldown +menu on the top of the screen. This makes it very easy to use, without having to learn +all the keyboard shortcuts. People who do not use a text browser every day will +appreciate this feature.

+ +

links seems to have better support for both frames and +tables, when compared to lynx.

+ +
+

Figure 13-6. Links, with the file menu open

+ +

+
+
+ +
+

13.8.3 wget

+ +

wget(1) is a command line utility that will download files +from a specified URL. While not an actual web-browser, wget is +used primarily to grab whole or partial web sites for offline viewing, or for fast +download of single files from HTTP or FTP servers instead. The basic syntax is:

+ + + + + +
+
+% wget <url>
+
+
+ +

You can also pass options. For example, this will download the Slackware web site:

+ + + + + +
+
+% wget --recursive http://www.slackware.com
+
+
+ +

wget will create a www.slackware.com directory and store the files in there, just as +the site does.

+ +

wget can also download files from FTP sites; just specify an +FTP URL instead of an HTTP one.

+ + + + + +
+
+% wget ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
+--12:18:16--  ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
+           => `wget-1.8.2.tar.gz'
+Resolving ftp.gnu.org... done.
+Connecting to ftp.gnu.org[199.232.41.7]:21... connected.
+Logging in as anonymous ... Logged in!
+==> SYST ... done.   ==> PWD ... done.
+==> TYPE I ... done. ==> CWD /gnu/wget ... done.
+==> PORT ... done.   ==> RETR wget-1.8.2.tar.gz ... done.
+Length: 1,154,648 (unauthoritative)
+
+100%[==================================>] 1,154,648     209.55K/s    ETA 00:00
+
+12:18:23 (209.55KB/s) - `wget-1.8.2.tar.gz' saved [1154648]
+
+
+ +

wget has many more options, which make it nice for site +specific scripts (web site mirroring and so forth). The man page should be consulted for +more information.

+
+
+ + + + + diff --git a/slackbook/html/basic-network-commands.html b/slackbook/html/basic-network-commands.html new file mode 100644 index 000000000..7ee787511 --- /dev/null +++ b/slackbook/html/basic-network-commands.html @@ -0,0 +1,142 @@ + + + + +Basic Network Commands + + + + + + + + + + +
+

Chapter 13 Basic +Network Commands

+ +
+
+
Table of Contents
+ +
13.1 ping
+ +
13.2 traceroute
+ +
13.3 DNS Tools
+ +
13.4 finger
+ +
13.5 telnet
+ +
13.6 The Secure shell
+ +
13.7 email
+ +
13.8 Browsers
+ +
13.9 FTP Clients
+ +
13.10 Talking to Other People
+
+
+ +

A network consists of several computers connected together. The network can be as +simple as a few computers connected in your home or office, or as complicated as a large +university network or even the entire Internet. When your computer is part of a network, +you have access to those systems either directly or through services like mail and the +web.

+ +

There are a variety of networking programs that you can use. Some are handy for +performing diagnostics to see if everything is working properly. Others (like mail +readers and web browsers) are useful for getting your work done and staying in contact +with other people.

+ +
+

13.1 ping

+ +

ping(8) sends an ICMP ECHO_REQUEST +packet to the specified host. If the host responds, you get an ICMP packet back. Sound +strange? Well, you can “ping” an IP address to see if a machine is alive. If +there is no response, you know something is wrong. Here is an example conversation +between two Linux users:

+ + +
+

User +A: Loki's down again.
+User +B: Are you sure?
+User +A: Yeah, I tried pinging it, but there's no response.

+
+ +

It's instances like these that make ping a very useful +day-to-day command. It provides a very quick way to see if a machine is up and connected +to the network. The basic syntax is:

+ + + + + +
+
+% ping www.slackware.com
+
+
+ +

There are, of course, several options that can be specified. Check the ping(1) man page for more information.

+
+
+ + + + + diff --git a/slackbook/html/basic-network-commands/elm.png b/slackbook/html/basic-network-commands/elm.png new file mode 100644 index 000000000..3607bb641 Binary files /dev/null and b/slackbook/html/basic-network-commands/elm.png differ diff --git a/slackbook/html/basic-network-commands/links.png b/slackbook/html/basic-network-commands/links.png new file mode 100644 index 000000000..f5b8275a7 Binary files /dev/null and b/slackbook/html/basic-network-commands/links.png differ diff --git a/slackbook/html/basic-network-commands/lynx.png b/slackbook/html/basic-network-commands/lynx.png new file mode 100644 index 000000000..52d0a0c3a Binary files /dev/null and b/slackbook/html/basic-network-commands/lynx.png differ diff --git a/slackbook/html/basic-network-commands/mutt.png b/slackbook/html/basic-network-commands/mutt.png new file mode 100644 index 000000000..d67675ab0 Binary files /dev/null and b/slackbook/html/basic-network-commands/mutt.png differ diff --git a/slackbook/html/basic-network-commands/pine.png b/slackbook/html/basic-network-commands/pine.png new file mode 100644 index 000000000..3257d14e8 Binary files /dev/null and b/slackbook/html/basic-network-commands/pine.png differ diff --git a/slackbook/html/basic-network-commands/talk.png b/slackbook/html/basic-network-commands/talk.png new file mode 100644 index 000000000..408ab1184 Binary files /dev/null and b/slackbook/html/basic-network-commands/talk.png differ diff --git a/slackbook/html/basic-network-commands/ytalk.png b/slackbook/html/basic-network-commands/ytalk.png new file mode 100644 index 000000000..f5f2f9c77 Binary files /dev/null and b/slackbook/html/basic-network-commands/ytalk.png differ diff --git a/slackbook/html/book-preface.html b/slackbook/html/book-preface.html new file mode 100644 index 000000000..9507434dc --- /dev/null +++ b/slackbook/html/book-preface.html @@ -0,0 +1,404 @@ + + + + +Preface + + + + + + + + + + +
+

Preface

+ +

Intended +Audience

+ +

The Slackware Linux operating system is a powerful platform for Intel-based computers. +It is designed to be stable, secure, and functional as both a high-end server and +powerful workstation.

+ +

This book is designed to get you started with the Slackware Linux operating system. +It's not meant to cover every single aspect of the distribution, but rather to show what +it is capable of and give you a basic working knowledge of the system.

+ +

As you gain experience with Slackware Linux, we hope you find this book to be a handy +reference. We also hope you'll lend it to all of your friends when they come asking about +that cool Slackware Linux operating system you're running.

+ +

While this book may not an edge-of-your-seat novel, we certainly tried to make it as +entertaining as possible. With any luck, we'll get a movie deal. Of course, we also hope +you are able to learn from it and find it useful.

+ +

And now, on with the show.

+ +

Changes from +the First Edition

+ +

This second edition is the culmination of years of hard work by the dedicated members +of the Slackware Documentation Project. The following are the major changes in this new +edition:

+ +
    +
  • +

    Chapter 3, Installation, has been modified with new +screenshots of the installer, and reflects changes in disk-sets, and CD installation.

    +
  • + +
  • +

    Chapter 4, System Configuration, has been +updated with new information about Linux 2.6.x kernels.

    +
  • + +
  • +

    Chapter 5, Network Configuration, has been +expanded with further explanation of Samba, NFS, and DHCP. A section on wireless +networking has also been added. This chapter now reflects major changes in how Slackware +handles network setup.

    +
  • + +
  • +

    Chapter 6, X Window System, has been substantially +rewritten for Xorg based systems. This chapter now also covers the xdm graphical login +manager.

    +
  • + +
  • +

    Chapter 13, Basic Network Commands, has been +enhanced with information about additional network utilities.

    +
  • + +
  • +

    Chapter 14, Security, is a new chapter with this edition. +It explains how to keep a Slackware Linux system secure.

    +
  • + +
  • +

    Chapter 17, Emacs, is a new chapter with this edition. It +describes how to use Emacs, a powerful editor for Unix.

    +
  • + +
  • +

    Chapter 18, Package Management, has been updated +with information about SlackBuild scripts.

    +
  • + +
  • +

    There are many other changes, both minor and major, to reflect changes in Slackware as +it has matured.

    +
  • +
+ +

Organization of this Book

+ +
+
+
Chapter 1, Introduction
+ +
+

Provides introductory material on Linux, Slackware, and the Open Source and Free +Software Movements.

+
+ +
Chapter 2, Help
+ +
+

Describes the help resources available on a Slackware Linux system and online.

+
+ +
Chapter 3, Installation
+ +
+

Describes the installation process step-by-step with screenshots to provide an +illustrative walk-through.

+
+ +
Chapter 4, System Configuration
+ +
+

Describes the important configuration files and covers kernel recompilation.

+
+ +
Chapter 5, Network Configuration
+ +
+

Describes how to connect a Slackware Linux machine to a network. Covers TCP/IP, +PPP/dial-up, wireless networking, and more.

+
+ +
Chapter 6, The X Window System
+ +
+

Describes how to setup and use the graphical X Window System in Slackware.

+
+ +
Chapter 7, Booting
+ +
+

Describes the process by which a computer boots into Slackware Linux. Also covers +dual-booting with Microsoft Windows operating systems.

+
+ +
Chapter 8, The Shell
+ +
+

Describes the powerful command line interface for Linux.

+
+ +
Chapter 9, Filesystem Structure
+ +
+

Describes the filesystem structure, including file ownership, permission, and +linking.

+
+ +
Chapter 10, Handling Files and Directories
+ +
+

Describes the commands used to manipulate files and directories from the command line +interface.

+
+ +
Chapter 11, Process Control
+ +
+

Describes the powerful Linux process management commands used to manage multiple +running applications.

+
+ +
Chapter 12, Essential System +Administration
+ +
+

Describes basic system administration tasks such as adding and removing users, +shutting down the system properly, and more.

+
+ +
Chapter 13, Basic Network Commands
+ +
+

Describes the collection of network clients included with Slackware.

+
+ +
Chapter 14, Security
+ +
+

Describes many different tools available to help keep your Slackware system secure, +including iptables and tcpwrappers.

+
+ +
Chapter 15, Archive Files
+ +
+

Describes the different compression and archive utilities available for Linux.

+
+ +
Chapter 16, vi
+ +
+

Describes the powerful vi text editor.

+
+ +
Chapter 17, Emacs
+ +
+

Describes the powerful Emacs text editor.

+
+ +
Chapter 18, Slackware Package Management
+ +
+

Describes the Slackware package utilities and the process used to create custom +packages and tagfiles.

+
+ +
Chapter 19, ZipSlack
+ +
+

Describes the ZipSlack version of Linux that can be used from Windows without +requiring an installation.

+
+ +
Appendix A, The GNU General Public License
+ +
+

Describes the license terms under which Slackware Linux and this book can be copied +and distributed.

+
+
+
+ +

Conventions used in +this book

+ +

To provide a consistent and easy to read text, several conventions are followed +throughout the book.

+ +

Typographic Conventions

+ +
+
+
Italic
+ +
+

An italic font is used for +commands, emphasized text, and the first usage of technical terms.

+
+ +
Monospace
+ +
+

A monospaced font is used for error messages, commands, +environment variables, names of ports, hostnames, user names, group names, device names, +variables, and code fragments.

+
+ +
Bold
+ +
+

A bold font is used for user input in examples.

+
+
+
+ +

User Input

+ +

Keys are shown in bold to stand out from other text. Key +combinations that are meant to be typed simultaneously are shown with `+' between the keys, such as:

+ +

Ctrl+Alt+Del

+ +

Meaning the user should type the Ctrl, Alt, and Del keys at the same time.

+ +

Keys that are meant to be typed in sequence will be separated with commas, for +example:

+ +

Ctrl+X, Ctrl+S

+ +

Would mean that the user is expected to type the Ctrl and X keys simultaneously and then to type the Ctrl +and S keys simultaneously.

+ +

Examples

+ +

Examples starting with E:\> indicate a MS-DOS® command. Unless otherwise noted, these commands may +be executed from a “Command Prompt” window in a modern Microsoft® Windows® +environment.

+ + + + + +
+
+D:\> rawrite a: bare.i
+
+
+ +

Examples starting with # indicate a command that must be +invoked as the superuser in Slackware. You can login as root to +type the command, or login as your normal account and use su(1) to gain superuser +privileges.

+ + + + + +
+
+# dd if=bare.i of=/dev/fd0
+
+
+ +

Examples starting with % indicate a command that should be +invoked from a normal user account. Unless otherwise noted, C-shell syntax is used for +setting environment variables and other shell commands.

+ + + + + +
+
+% top
+
+
+ +

Acknowledgments

+ +

This project is the accumulation of months of work by many dedicated individuals. It +would not have been possible for me to produce this work in a vacuum. Many people deserve +our thanks for their selfless acts: Keith Keller for his work on wireless networking, +Joost Kremers for his great work in single-handedly writing the emacs section, Simon +Williams for the security chapter, Jurgen Phillippaerts for basic networking commands, +Cibao Cu Ali G Colibri for the inspiration and a good kick in the pants. Countless others +have sent in suggestions and fixes. An incomplete list includes: Jacob Anhoej, John Yast, +Sally Welch, Morgan Landry, and Charlie Law. I'd also like to thank Keith Keller for +hosting the mailing list for this project, as well as Carl Inglis for the initial web +hosting. Last but not least, I'd like to thank Patrick J. Volkerding for Slackware Linux, +and David Cantrell, Logan Johnson, and Chris Lumens for Slackware Linux Essentials 1st +Edition. Without their initial framework, none of this would have ever happened. Many +others have contributed in small and large ways to this project and have not been listed. +I hope they will forgive me for a poor memory.

+ +

Alan Hicks, May 2005

+
+ + + + + diff --git a/slackbook/html/book.html b/slackbook/html/book.html new file mode 100644 index 000000000..c0803a78e --- /dev/null +++ b/slackbook/html/book.html @@ -0,0 +1,13511 @@ + + + + +Slackware Linux Essentials + + + + + +
+
+

Slackware Linux Essentials

+ +

+ +

Alan Hicks

+ +

Chris Lumens

+ +

David Cantrell

+ +

Logan Johnson

+ + + +
+

Slackware Linux is a registered trademark of Patrick Volkerding and Slackware Linux, +Inc.

+ +

Linux is a registered trademark of Linus Torvalds.

+ +

America Online and AOL are registered trademarks of America Online, Inc. in the United +States and/or other countries.

+ +

Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of +Apple Computer, Inc., registered in the United States and other countries.

+ +

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks +of International Business Machines Corporation in the United States, other countries, or +both.

+ +

IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and +Electronics Engineers, Inc. in the United States.

+ +

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or +registered trademarks of Intel Corporation or its subsidiaries in the United States and +other countries.

+ +

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are +either registered trademarks or trademarks of Microsoft Corporation in the United States +and/or other countries.

+ +

Netscape and the Netscape Navigator are registered trademarks of Netscape +Communications Corporation in the U.S. and other countries.

+ +

Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United +States and other countries.

+ +

XFree86 is a trademark of The XFree86 Project, Inc.

+ +

Many of the designations used by manufacturers and sellers to distinguish their +products are claimed as trademarks. Where those designations appear in this document, and +Slackware Linux, Inc. was aware of the trademark claim, the designations have been +followed by the “™” or the “®” symbol.

+
+ +1-57176-338-4
+
+ + +
+
+ +
+
+
Table of Contents
+ +
Preface
+ +
1 An Introduction to Slackware Linux
+ +
+
+
1.1 What is Linux?
+ +
+
+
1.1.1 A Word on GNU
+
+
+ +
1.2 What is Slackware?
+ +
1.3 Open Source and Free Software
+
+
+ +
2 Help
+ +
+
+
2.1 System Help
+ +
+
+
2.1.1 man
+ +
2.1.2 The /usr/doc +Directory
+ +
2.1.3 HOWTOs and mini-HOWTOs
+
+
+ +
2.2 Online Help
+ +
+
+
2.2.1 The Official Website and Help Forums
+ +
2.2.2 E-mail Support
+ +
2.2.3 Non-Official Websites and Help +Forums
+
+
+
+
+ +
3 Installation
+ +
+
+
3.1 Getting Slackware
+ +
+
+
3.1.1 The Official Disc and Box Sets
+ +
3.1.2 Via the Internet
+
+
+ +
3.2 System Requirements
+ +
+
+
3.2.1 The Software Series
+ +
3.2.2 Installation Methods
+ +
3.2.3 Boot Disk
+ +
3.2.4 Root Disk
+ +
3.2.5 Supplemental Disk
+ +
3.2.6 Making the Disks
+
+
+ +
3.3 Partitioning
+ +
3.4 The setup Program
+ +
+
+
3.4.1 HELP
+ +
3.4.2 KEYMAP
+ +
3.4.3 ADDSWAP
+ +
3.4.4 TARGET
+ +
3.4.5 SOURCE
+ +
3.4.6 SELECT
+ +
3.4.7 INSTALL
+ +
3.4.8 CONFIGURE
+
+
+
+
+ +
4 System Configuration
+ +
+
+
4.1 System Overview
+ +
+
+
4.1.1 File System Layout
+ +
4.1.2 Finding Files
+ +
4.1.3 The /etc/rc.d +Directory
+
+
+ +
4.2 Selecting a Kernel
+ +
+
+
4.2.1 The /kernels Directory on the +Slackware CD-ROM
+ +
4.2.2 Compiling a Kernel from +Source
+ +
4.2.3 Using Kernel Modules
+
+
+
+
+ +
5 Network Configuration
+ +
+
+
5.1 Introduction: netconfig is your +friend.
+ +
5.2 Network Hardware Configuration
+ +
+
+
5.2.1 Loading Network +Modules
+ +
5.2.2 LAN (10/100/1000Base-T and +Base-2) cards
+ +
5.2.3 Modems
+ +
5.2.4 PCMCIA
+
+
+ +
5.3 TCP/IP Configuration
+ +
+
+
5.3.1 DHCP
+ +
5.3.2 Static IP
+ +
5.3.3 /etc/rc.d/rc.inet1.conf
+ +
5.3.4 /etc/resolv.conf
+ +
5.3.5 /etc/hosts
+
+
+ +
5.4 PPP
+ +
+
+
5.4.1 pppsetup
+ +
5.4.2 /etc/ppp
+
+
+ +
5.5 Wireless
+ +
+
+
5.5.1 Hardware Support
+ +
5.5.2 Configure the Wireless Settings
+ +
5.5.3 Configure the Network
+
+
+ +
5.6 Network File Systems
+ +
+
+
5.6.1 SMB/Samba/CIFS
+ +
5.6.2 Network File System (NFS)
+
+
+
+
+ +
6 X Configuration
+ +
+
+
6.1 xorgconfig
+ +
6.2 xorgsetup
+ +
6.3 xinitrc
+ +
6.4 xwmconfig
+ +
6.5 xdm
+
+
+ +
7 Booting
+ +
+
+
7.1 LILO
+ +
7.2 LOADLIN
+ +
7.3 Dual Booting
+ +
+
+
7.3.1 Windows
+ +
7.3.2 Linux
+
+
+
+
+ +
8 The Shell
+ +
+
+
8.1 Users
+ +
+
+
8.1.1 Logging In
+ +
8.1.2 Root: The Superuser
+
+
+ +
8.2 The Command Line
+ +
+
+
8.2.1 Running Programs
+ +
8.2.2 Wildcard Matching
+ +
8.2.3 Input/Output Redirection and +Piping
+
+
+ +
8.3 The Bourne Again Shell (bash)
+ +
+
+
8.3.1 Environment Variables
+ +
8.3.2 Tab Completion
+
+
+ +
8.4 Virtual Terminals
+ +
+
+
8.4.1 Screen
+
+
+
+
+ +
9 Filesystem Structure
+ +
+
+
9.1 Ownership
+ +
9.2 Permissions
+ +
9.3 Links
+ +
9.4 Mounting Devices
+ +
+
+
9.4.1 fstab
+ +
9.4.2 mount and umount
+
+
+ +
9.5 NFS Mounts
+
+
+ +
10 Handling Files and Directories
+ +
+
+
10.1 Navigation : ls, +cd, and pwd
+ +
+
+
10.1.1 ls
+ +
10.1.2 cd
+ +
10.1.3 pwd
+
+
+ +
10.2 Pagers: more, less, and most
+ +
+
+
10.2.1 more
+ +
10.2.2 less
+ +
10.2.3 most
+
+
+ +
10.3 Simple Output: cat and +echo
+ +
+
+
10.3.1 cat
+ +
10.3.2 echo
+
+
+ +
10.4 Creation: touch and +mkdir
+ +
+
+
10.4.1 touch
+ +
10.4.2 mkdir
+
+
+ +
10.5 Copy and Move
+ +
+
+
10.5.1 cp
+ +
10.5.2 mv
+
+
+ +
10.6 Deletion: rm and rmdir
+ +
+
+
10.6.1 rm
+ +
10.6.2 rmdir
+
+
+ +
10.7 Aliasing files with ln
+
+
+ +
11 Process Control
+ +
+
+
11.1 Backgrounding
+ +
11.2 Foregrounding
+ +
11.3 ps
+ +
11.4 kill
+ +
11.5 top
+
+
+ +
12 Essential System Administration
+ +
+
+
12.1 Users and Groups
+ +
+
+
12.1.1 Supplied Scripts
+ +
12.1.2 Changing Passwords
+ +
12.1.3 Changing User +Information
+
+
+ +
12.2 Users and Groups, the Hard Way
+ +
12.3 Shutting Down Properly
+
+
+ +
13 Basic Network Commands
+ +
+
+
13.1 ping
+ +
13.2 traceroute
+ +
13.3 DNS Tools
+ +
+
+
13.3.1 host
+ +
13.3.2 nslookup
+ +
13.3.3 dig
+
+
+ +
13.4 finger
+ +
13.5 telnet
+ +
+
+
13.5.1 The other use of telnet
+
+
+ +
13.6 The Secure shell
+ +
13.7 email
+ +
+
+
13.7.1 pine
+ +
13.7.2 elm
+ +
13.7.3 mutt
+ +
13.7.4 nail
+
+
+ +
13.8 Browsers
+ +
+
+
13.8.1 lynx
+ +
13.8.2 links
+ +
13.8.3 wget
+
+
+ +
13.9 FTP Clients
+ +
+
+
13.9.1 ftp
+ +
13.9.2 ncftp
+
+
+ +
13.10 Talking to Other People
+ +
+
+
13.10.1 wall
+ +
13.10.2 talk
+ +
13.10.3 ytalk
+
+
+
+
+ +
14 Security
+ +
+
+
14.1 Disabling Services
+ +
+
+
14.1.1 Services started from inetd
+ +
14.1.2 Services started from init scripts
+
+
+ +
14.2 Host Access Control
+ +
+
+
14.2.1 iptables
+ +
14.2.2 tcpwrappers
+
+
+ +
14.3 Keeping Current
+ +
+
+
14.3.1 slackware-security +mailing list
+ +
14.3.2 The /patches +directory
+
+
+
+
+ +
15 Archive Files
+ +
+
+
15.1 gzip
+ +
15.2 bzip2
+ +
15.3 tar
+ +
15.4 zip
+
+
+ +
16 Vi
+ +
+
+
16.1 Starting vi
+ +
16.2 Modes
+ +
+
+
16.2.1 Command Mode
+ +
16.2.2 Insert Mode
+
+
+ +
16.3 Opening Files
+ +
16.4 Saving Files
+ +
16.5 Quitting vi
+ +
16.6 vi Configuration
+ +
16.7 Vi Keys
+
+
+ +
17 Emacs
+ +
+
+
17.1 Starting emacs
+ +
+
+
17.1.1 Command Keys
+
+
+ +
17.2 Buffers
+ +
17.3 Modes
+ +
+
+
17.3.1 Opening files
+
+
+ +
17.4 Basic Editing
+ +
17.5 Saving Files
+ +
+
+
17.5.1 Quitting Emacs
+
+
+
+
+ +
18 Slackware Package Management
+ +
+
+
18.1 Overview of Package Format
+ +
18.2 Package Utilities
+ +
+
+
18.2.1 pkgtool
+ +
18.2.2 installpkg
+ +
18.2.3 removepkg
+ +
18.2.4 upgradepkg
+ +
18.2.5 rpm2tgz/rpm2targz
+
+
+ +
18.3 Making Packages
+ +
+
+
18.3.1 explodepkg
+ +
18.3.2 makepkg
+ +
18.3.3 SlackBuild Scripts
+
+
+ +
18.4 Making Tags and Tagfiles +(for setup)
+
+
+ +
19 ZipSlack
+ +
+
+
19.1 What is ZipSlack?
+ +
+
+
19.1.1 Advantages
+ +
19.1.2 Disadvantages
+
+
+ +
19.2 Getting ZipSlack
+ +
+
+
19.2.1 Installation
+
+
+ +
19.3 Booting ZipSlack
+
+
+ +
Glossary
+ +
A. The GNU General Public License
+ +
+
+
A.1. Preamble
+ +
A.2. TERMS AND CONDITIONS
+ +
A.3. How to Apply These Terms to Your New Programs
+
+
+
+
+ + + + + +
+
+
List of Examples
+ +
8-1. Listing Environment Variables with set
+
+
+ +
+
+

Preface

+ +

Intended +Audience

+ +

The Slackware Linux operating system is a powerful platform for Intel-based computers. +It is designed to be stable, secure, and functional as both a high-end server and +powerful workstation.

+ +

This book is designed to get you started with the Slackware Linux operating system. +It's not meant to cover every single aspect of the distribution, but rather to show what +it is capable of and give you a basic working knowledge of the system.

+ +

As you gain experience with Slackware Linux, we hope you find this book to be a handy +reference. We also hope you'll lend it to all of your friends when they come asking about +that cool Slackware Linux operating system you're running.

+ +

While this book may not an edge-of-your-seat novel, we certainly tried to make it as +entertaining as possible. With any luck, we'll get a movie deal. Of course, we also hope +you are able to learn from it and find it useful.

+ +

And now, on with the show.

+ +

Changes from +the First Edition

+ +

This second edition is the culmination of years of hard work by the dedicated members +of the Slackware Documentation Project. The following are the major changes in this new +edition:

+ +
    +
  • +

    Chapter 3, Installation, has been modified with new +screenshots of the installer, and reflects changes in disk-sets, and CD installation.

    +
  • + +
  • +

    Chapter 4, System Configuration, has been updated +with new information about Linux 2.6.x kernels.

    +
  • + +
  • +

    Chapter 5, Network Configuration, has been +expanded with further explanation of Samba, NFS, and DHCP. A section on wireless +networking has also been added. This chapter now reflects major changes in how Slackware +handles network setup.

    +
  • + +
  • +

    Chapter 6, X Window System, has been substantially +rewritten for Xorg based systems. This chapter now also covers the xdm graphical login +manager.

    +
  • + +
  • +

    Chapter 13, Basic Network Commands, has been +enhanced with information about additional network utilities.

    +
  • + +
  • +

    Chapter 14, Security, is a new chapter with this edition. It +explains how to keep a Slackware Linux system secure.

    +
  • + +
  • +

    Chapter 17, Emacs, is a new chapter with this edition. It +describes how to use Emacs, a powerful editor for Unix.

    +
  • + +
  • +

    Chapter 18, Package Management, has been updated +with information about SlackBuild scripts.

    +
  • + +
  • +

    There are many other changes, both minor and major, to reflect changes in Slackware as +it has matured.

    +
  • +
+ +

Organization of this Book

+ +
+
+
Chapter 1, Introduction
+ +
+

Provides introductory material on Linux, Slackware, and the Open Source and Free +Software Movements.

+
+ +
Chapter 2, Help
+ +
+

Describes the help resources available on a Slackware Linux system and online.

+
+ +
Chapter 3, Installation
+ +
+

Describes the installation process step-by-step with screenshots to provide an +illustrative walk-through.

+
+ +
Chapter 4, System Configuration
+ +
+

Describes the important configuration files and covers kernel recompilation.

+
+ +
Chapter 5, Network Configuration
+ +
+

Describes how to connect a Slackware Linux machine to a network. Covers TCP/IP, +PPP/dial-up, wireless networking, and more.

+
+ +
Chapter 6, The X Window System
+ +
+

Describes how to setup and use the graphical X Window System in Slackware.

+
+ +
Chapter 7, Booting
+ +
+

Describes the process by which a computer boots into Slackware Linux. Also covers +dual-booting with Microsoft Windows operating systems.

+
+ +
Chapter 8, The Shell
+ +
+

Describes the powerful command line interface for Linux.

+
+ +
Chapter 9, Filesystem Structure
+ +
+

Describes the filesystem structure, including file ownership, permission, and +linking.

+
+ +
Chapter 10, Handling Files and Directories
+ +
+

Describes the commands used to manipulate files and directories from the command line +interface.

+
+ +
Chapter 11, Process Control
+ +
+

Describes the powerful Linux process management commands used to manage multiple +running applications.

+
+ +
Chapter 12, Essential System Administration
+ +
+

Describes basic system administration tasks such as adding and removing users, +shutting down the system properly, and more.

+
+ +
Chapter 13, Basic Network Commands
+ +
+

Describes the collection of network clients included with Slackware.

+
+ +
Chapter 14, Security
+ +
+

Describes many different tools available to help keep your Slackware system secure, +including iptables and tcpwrappers.

+
+ +
Chapter 15, Archive Files
+ +
+

Describes the different compression and archive utilities available for Linux.

+
+ +
Chapter 16, vi
+ +
+

Describes the powerful vi text editor.

+
+ +
Chapter 17, Emacs
+ +
+

Describes the powerful Emacs text editor.

+
+ +
Chapter 18, Slackware Package Management
+ +
+

Describes the Slackware package utilities and the process used to create custom +packages and tagfiles.

+
+ +
Chapter 19, ZipSlack
+ +
+

Describes the ZipSlack version of Linux that can be used from Windows without +requiring an installation.

+
+ +
Appendix A, The GNU General Public License
+ +
+

Describes the license terms under which Slackware Linux and this book can be copied +and distributed.

+
+
+
+ +

Conventions used in +this book

+ +

To provide a consistent and easy to read text, several conventions are followed +throughout the book.

+ +

Typographic Conventions

+ +
+
+
Italic
+ +
+

An italic font is used for +commands, emphasized text, and the first usage of technical terms.

+
+ +
Monospace
+ +
+

A monospaced font is used for error messages, commands, +environment variables, names of ports, hostnames, user names, group names, device names, +variables, and code fragments.

+
+ +
Bold
+ +
+

A bold font is used for user input in examples.

+
+
+
+ +

User Input

+ +

Keys are shown in bold to stand out from other text. Key +combinations that are meant to be typed simultaneously are shown with `+' between the keys, such as:

+ +

Ctrl+Alt+Del

+ +

Meaning the user should type the Ctrl, Alt, and Del keys at the same time.

+ +

Keys that are meant to be typed in sequence will be separated with commas, for +example:

+ +

Ctrl+X, Ctrl+S

+ +

Would mean that the user is expected to type the Ctrl and X keys simultaneously and then to type the Ctrl +and S keys simultaneously.

+ +

Examples

+ +

Examples starting with E:\> indicate a MS-DOS® command. Unless otherwise noted, these commands may +be executed from a “Command Prompt” window in a modern Microsoft® Windows® +environment.

+ + + + + +
+
+D:\> rawrite a: bare.i
+
+
+ +

Examples starting with # indicate a command that must be +invoked as the superuser in Slackware. You can login as root to +type the command, or login as your normal account and use su(1) to gain superuser +privileges.

+ + + + + +
+
+# dd if=bare.i of=/dev/fd0
+
+
+ +

Examples starting with % indicate a command that should be +invoked from a normal user account. Unless otherwise noted, C-shell syntax is used for +setting environment variables and other shell commands.

+ + + + + +
+
+% top
+
+
+ +

Acknowledgments

+ +

This project is the accumulation of months of work by many dedicated individuals. It +would not have been possible for me to produce this work in a vacuum. Many people deserve +our thanks for their selfless acts: Keith Keller for his work on wireless networking, +Joost Kremers for his great work in single-handedly writing the emacs section, Simon +Williams for the security chapter, Jurgen Phillippaerts for basic networking commands, +Cibao Cu Ali G Colibri for the inspiration and a good kick in the pants. Countless others +have sent in suggestions and fixes. An incomplete list includes: Jacob Anhoej, John Yast, +Sally Welch, Morgan Landry, and Charlie Law. I'd also like to thank Keith Keller for +hosting the mailing list for this project, as well as Carl Inglis for the initial web +hosting. Last but not least, I'd like to thank Patrick J. Volkerding for Slackware Linux, +and David Cantrell, Logan Johnson, and Chris Lumens for Slackware Linux Essentials 1st +Edition. Without their initial framework, none of this would have ever happened. Many +others have contributed in small and large ways to this project and have not been listed. +I hope they will forgive me for a poor memory.

+ +

Alan Hicks, May 2005

+
+ +
+
+

Chapter 1 An Introduction to Slackware +Linux

+ +
+

1.1 What is +Linux?

+ +

Linus Torvalds started Linux, an operating system kernel, as a personal project in +1991. He started the project because he wanted to run a Unix-based operating system +without spending a lot of money. In addition, he wanted to learn the ins and outs of the +386 processor. Linux was released free of charge to the public so that anyone could study +it and make improvements under the General Public License. (See Section 1.3 and Appendix A for an +explanation of the license.) Today, Linux has grown into a major player in the operating +system market. It has been ported to run on a variety of system architectures, including +HP/Compaq's Alpha, Sun's SPARC and UltraSPARC, and Motorola's PowerPC chips (through +Apple Macintosh and IBM RS/6000 computers.) Hundreds, if not thousands, of programmers +all over the world now develop Linux. It runs programs like Sendmail, Apache, and BIND, +which are very popular software used to run Internet servers. It's important to remember +that the term “Linux” really refers to the kernel - the core of the operating +system. This core is responsible for controlling your computer's processor, memory, hard +drives, and peripherals. That's all Linux really does: It controls the operations of your +computer and makes sure that all of its programs behave. Various companies and +individuals bundle the kernel and various programs together to make an operating system. +We call each bundle a Linux distribution.

+ +
+
+

1.1.1 A +Word on GNU

+ +

The Linux kernel project began as a solo endeavor by Linus Torvalds in 1991, but as +Isaac Newton once said, “If I have seen further, it is by standing on the shoulders +of giants.” When Linus Torvalds began the kernel the Free Software Foundation had +already established the idea of collaborative software. They entitled their effort GNU, a +recursive acronym that means simply “GNU's Not Unix”. GNU software ran atop +the Linux kernel from day 1. Their compiler gcc was used to +compile the kernel. Today many GNU tools from gcc to gnutar are still at the basis of every major Linux distribution. For +this reason many of the Free Software Foundation's proponents fervently state that their +work should be given the same credit as the Linux kernel. They strongly suggest that all +Linux distributions should refer to themselves as GNU/Linux distributions.

+ +

This is the topic of many flamewars, surpassed only by the ancient vi versus emacs +holy war. The purpose of this book is not to fan the fires of this heated discussion, but +rather to clarify the terminology for neophytes. When one sees GNU/Linux it means a Linux +distribution. When one sees Linux they can either be referring to the kernel, or to a +distribution. It can be rather confusing. Typically the term GNU/Linux isn't used because +it's a mouth full.

+
+
+ +
+
+

1.2 What +is Slackware?

+ +

Slackware, started by Patrick Volkerding in late 1992, and initially released to the +world on July 17, 1993, was the first Linux distribution to achieve widespread use. +Volkerding first learned of Linux when he needed an inexpensive LISP interpreter for a +project. One of the few distributions available at the time was SLS Linux from Soft +Landing Systems. Volkerding used SLS Linux, fixing bugs as he found them. Eventually, he +decided to merge all of these bugfixes into his own private distribution that he and his +friends could use. This private distribution quickly gained popularity, so Volkerding +decided to name it Slackware and make it publicly available. Along the way, Patrick added +new things to Slackware; a user friendly installation program based on a menuing system, +as well as the concept of package management, which allows users to easily add, remove, +or upgrade software packages on their systems.

+ +

There are many reasons why Slackware is Linux's oldest living distribution. It does +not try to emulate Windows, it tries to be as Unix-like as possible. It does not try to +cover up processes with fancy, point-and-click GUIs (Graphical User Interfaces). Instead, +it puts users in control by letting them see exactly what's going on. Its development is +not rushed to meet deadlines-each version comes out when it is ready.

+ +

Slackware is for people who enjoy learning and tweaking their system to do exactly +what they want. Slackware's stability and simplicity are why people will continue to use +it for years to come. Slackware currently enjoys a reputation as a solid server and a +no-nonsense workstation. You can find Slackware desktops running nearly any window +manager or desktop environment, or none at all. Slackware servers power businesses, +acting in every capacity that a server can be used in. Slackware users are among the most +satisfied Linux users. Of course, we'd say that. :^)

+
+ +
+
+

1.3 Open +Source and Free Software

+ +

Within the Linux community, there are two major ideological movements at work. The +Free Software movement (which we'll get into in a moment) is working toward the goal of +making all software free of intellectual property restrictions. Followers of this +movement believe these restrictions hamper technical improvement and work against the +good of the community. The Open Source movement is working toward most of the same goals, +but takes a more pragmatic approach to them. Followers of this movement prefer to base +their arguments on the economic and technical merits of making source code freely +available, rather than the moral and ethical principles that drive the Free Software +Movement.

+ +

At the other end of the spectrum are groups that wish to maintain tighter controls +over their software.

+ +

The Free Software movement is headed by the Free Software Foundation, a fund-raising +organization for the GNU project. Free software is more of an ideology. The oft-used +expression is “free as in speech, not free as in beer”. In essence, free +software is an attempt to guarantee certain rights for both users and developers. These +freedoms include the freedom to run the program for any reason, to study and modify the +source code, to redistribute the source, and to share any modifications you make. In +order to guarantee these freedoms, the GNU General Public License (GPL) was created. The +GPL, in brief, provides that anyone distributing a compiled program which is licensed +under the GPL must also provide source code, and is free to make modifications to the +program as long as those modifications are also made available in source code form. This +guarantees that once a program is “opened” to the community, it cannot be +“closed” except by consent of every author of every piece of code (even the +modifications) within it. Most Linux programs are licensed under the GPL.

+ +

It is important to note that the GPL does not say anything about price. As odd as it +may sound, you can charge for free software. The “free” part is in the +liberties you have with the source code, not in the price you pay for the software. +(However, once someone has sold you, or even given you, a compiled program licensed under +the GPL they are obligated to provide its source code as well.)

+ +

Another popular license is the BSD license. In contrast to the GPL, the BSD license +gives no requirement for the release of a program's source code. Software released under +the BSD license allows redistribution in source or binary form provided only a few +conditions are met. The author's credentials cannot be used as a sort of advertisement +for the program. It also indemnifies the author from liability for damages that may arise +from the use of the software. Much of the software included in Slackware Linux is BSD +licensed.

+ +

At the forefront of the younger Open Source movement, the Open Source Initiative is an +organization that solely exists to gain support for open source software, that is, +software that has the source code available as well as the ready-to-run program. They do +not offer a specific license, but instead they support the various types of open source +licenses available.

+ +

The idea behind the OSI is to get more companies behind open source by allowing them +to write their own open source licenses and have those licenses certified by the Open +Source Initiative. Many companies want to release source code, but do not want to use the +GPL. Since they cannot radically change the GPL, they are offered the opportunity to +provide their own license and have it certified by this organization.

+ +

While the Free Software Foundation and the Open Source Initiative work to help each +other, they are not the same thing. The Free Software Foundation uses a specific license +and provides software under that license. The Open Source Initiative seeks support for +all open source licenses, including the one from the Free Software Foundation. The +grounds on which each argues for making source code freely available sometimes divides +the two movements, but the fact that two ideologically diverse groups are working toward +the same goal lends credence to the efforts of each.

+
+
+ +
+
+

Chapter 2 Help

+ +

Often there are times when you might need help with a specific command, setting up a +program, or getting a piece of hardware to work. Maybe you simply want to understand a +given command better, or see what other options are available to use with it. Luckily, +there are a variety of ways that you can get the help you're looking for. When you +install Slackware you have the option of installing packages from the “F” +series which includes FAQs and HOWTOs. Programs also come with help about their options, +configuration files, and usage.

+ +
+
+

2.1 System Help

+ +
+

2.1.1 man

+ +

The man command (short for “manual”) is the +traditional form of online documentation in Unix and Linux operating systems. Comprised +of specially formatted files, the “man pages”, are written for the vast +majority of commands and are distributed with the software itself. Executing man somecommand will display the man page for (naturally) the +command specified, in our example this would be the imaginary program somecommand.

+ +

As you might imagine, the amount of man pages can quickly add up, becoming overly +confusing and seriously complicated, even for an advanced user. So, for this reason, man +pages are grouped into enumerated sections. This system has been around for a very long +time; enough so that you will often see commands, programs, and even programming library +functions referred to with their man section number.

+ +

For example:

+ +

You might see a reference to man(1). The numbering tells you +that “man” is documented in section 1 (user +commands); you can specify that you want the section 1 man page for “man” +with the command man 1 man. Specifying the section that man +should look in is useful in the case of multiple items with the same name.

+ +
+

Table 2-1. Man Page Sections

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SectionContents
Section 1user commands (intro only)
Section 2system calls
Section 3C library calls
Section 4devices (e.g., hd, sd)
Section 5file formats and protocols (e.g., wtmp, /etc/passwd, +nfs)
Section 6games (intro only)
Section 7conventions, macro packages, etc. (e.g., nroff, ascii)
Section 8system administration (intro only)
+
+ +

In addition to man(1), there are the commands whatis(1) and apropos(1) available to you, +whose shared purpose is to make it easier to find information in the man system.

+ +

The command whatis gives a very brief description of system +commands, somewhat in the style of a pocket command reference.

+ +

Example:

+ + + + + +
+
+% whatis whatis
+whatis (1)  - search the whatis database for complete words
+
+
+ +

The command apropos is used to search for a man page +containing a given keyword.

+ +

Example:

+ + + + + +
+
+% apropos wav
+cdda2wav    (1)  - a sampling utility that dumps CD audio data into wav sound files
+netwave_cs  (4)  - Xircom Creditcard Netwave device driver
+oggdec      (1)  - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW)
+wavelan     (4)  - AT&T GIS WaveLAN ISA device driver
+wavelan_cs  (4)  - AT&T GIS WaveLAN PCMCIA device driver
+wvlan_cs    (4)  - Lucent WaveLAN/IEEE 802.11 device driver
+
+
+ +

If you'd like further information on any of these commands, read their man pages for +the details. ;)

+
+ +
+
+

2.1.2 The /usr/doc Directory

+ +

The source for most packages that we build comes with some sort of documentation: +README files, usage instructions, license files, etc. Any sort of documentation that +comes with the source is included and installed on your system in the /usr/doc directory. Each program will (usually) install its own +documentation in the order of:

+ +

/usr/doc/$program-$version

+ +

Where $program is the name of the program you are +wanting to read about, and $version is (obviously) the +appropriate version of software package installed on your system.

+ +

For example, to read the documentation for the command man(1) +you would want to cd to:

+ + + + + +
+
+% cd /usr/doc/man-$version
+
+
+ +

If reading the appropriate man page(s) doesn't provide you with enough information, or +address what you're looking for in particular, the /usr/doc +directory should be your next stop.

+
+ +
+
+

2.1.3 HOWTOs and +mini-HOWTOs

+ +

It is in the truest spirit of the Open Source community that brings us to the +HOWTO/mini-HOWTO collection. These files are exactly what they sound like - documents and +guides describing how to do stuff. If you installed the HOWTO collection, the HOWTOs will +be installed to /usr/doc/Linux-HOWTOs and the mini-HOWTOs to +/usr/doc/Linux-mini-HOWTOs.

+ +

Also included in the same package series is a collection of FAQs, which is an acronym +which stands for

+ +
+ ++ + + + + + + + + + + + + +
Frequently
Asked
Questions
+
+ +

These documents are written in a “Question and answer” style for +(surprise) Frequently Asked Questions. The FAQs can often be a very useful place to look +if you're just looking for a “Quick Fix” to something. If you decide to +install the FAQs during setup, you will find them installed to the /usr/doc/Linux-FAQs directory.

+ +

These files are well worth reading whenever you're not quite sure how to proceed with +something. They cover an amazing range of topics, more often than not in a surprisingly +detailed manner. Good stuff!

+
+
+ +
+
+

2.2 Online Help

+ +

In addition to the documentation provided and installable with the Slackware Linux +Operating System, there are a vast multitude of online resources available for you to +learn from as well.

+ +
+
+

2.2.1 The +Official Website and Help Forums

+ +

The Official Slackware +Website

+ +

The Official Slackware Linux website is sometimes out of date, but still contains +information relevant to the latest Slackware versions. At one time an active help forum +existed there before a horde of trolls, troublemakers, and whiners descended on the +forum. Maintaining the forum was beginning to be too much work, and so Pat shut it down. +One can find that old forum back up and running complete with searchable archives of the +old data at http://www.userlocal.com/phorum/.

+ +

After the forums were taken down on http://slackware.com, several other sites sprang up that offered forum +support for Slackware. After much thought, Pat chose to endorse www.linuxquestions.org as the official +forum for Slackware Linux.

+
+ +
+
+

2.2.2 E-mail +Support

+ +

Everyone who purchases an official CD set is entitled to free installation support via +e-mail from the developer. That having been said, please keep in mind that we, the +developers, (and a vast majority of users) of Slackware are of “The Old +School”. That means that we prefer to help those who have a sincere interest and +are willing to help themselves in the process. We will always do our best to help +everyone who emails us with support questions. However, Please check your documentation +and the website (especially the FAQs and maybe some of the forums listed below) before +e-mailing. You may get a faster answer that way, and the less e-mail we have to answer, +obviously the sooner we will be of assistance to those that need it.

+ +

The e-mail address for technical support is: support@slackware.com. Other e-mail addresses and contact +information are listed on the website.

+ +
+
+

2.2.2.1 Slackware Linux Project Mailing +Lists

+ +

We have several mailing lists, available in digest and normal forms. Check the +instructions for how to subscribe.

+ +

To subscribe to a mailing list, email:

+ +

majordomo@slackware.com

+ +

with the phrase “subscribe [name +of list]” in the body of the email. The list choices are described +below (use one the names below for the name of the list).

+ +

Archives of the mailing list can be found on Slackware's website at:

+ +

http://slackware.com/lists/archive/

+ +
+
+
slackware-announce
+ +
+

The slackware-announce mailing list is for announcements of +new versions, major updates and other general information.

+
+ +
slackware-security
+ +
+

The slackware-security mailing list is for announcements +relating to security issues. Any exploits or other vulnerabilities directly pertaining to +Slackware will get posted to this list immediately.

+
+
+
+ +

These lists are also available in digest format. This means that you get one large +message per day instead of several messages throughout the day. Since the slackware +mailing lists do not allow users to post, and the lists are such low traffic, most users +find little advantage in the digest lists. Still, they are available if you want them by +subscribing to slackware-announce-digest or slackware-security-digest.

+
+
+ +
+
+

2.2.3 +Non-Official Websites and Help Forums

+ +
+

2.2.3.1 Websites

+ +
+
+
Google
+ +
+

The Kung-Fu Master of Search Engines. When you absolutely, positively gotta find every +last kernel of information on a subject: Accept no substitutes.

+
+ +
Google:Linux
+ +
+

Linux-Specific searches

+
+ +
Google:BSD
+ +
+

BSD-Specific searches. Slackware is so generic as a Unix work-a-like operating system +that one can as often as not find very detailed information that is almost 100% relevant +to Slackware here. Many times a BSD search reveals far more technical information than +the often PR-related Linux searches.

+
+ +
Google:Groups
+ +
+

Search through decades of Usenet posts for your pearls of wisdom.

+
+ +
http://userlocal.com
+ +
+

A virtual treasure-trove of knowledge, good advice, first-hand experience and +interesting articles. Often the first place you'll hear about new developments in the +world of Slackware.

+
+
+
+
+ +
+
+

2.2.3.2 Web-based Resources

+ +
+
+
linuxquestions.org
+ +
+

The officially sanctioned web-forum for Slackware users.

+
+ +
LinuxISO.org +Slackware Forum
+ +
+

“A place to download and get help with Linux.”

+
+ +
alt.os.linux.slackware FAQ
+ +
+

Another FAQ

+
+
+
+
+ +
+
+

2.2.3.3 Usenet Groups (NNTP)

+ +

Usenet has long been a place for geeks to gather and help one another. There are few +newsgroups dedicated to Slackware Linux, but they tend to be filled with very +knowledgeable people.

+ +

alt.os.linux.slackware

+ +

alt.os.linux.slackware, better known as aols (not to be +confused with AOL®!) is one of the most active places +to find technical help with Slackware problems. Like every Usenet newsgroup, a few +unhelpful participants (“trolls”) can mar the experience with constant +arguing. Learning to ignore the trolls and identifying the truly helpful people is key to +making the most of this resource.

+
+
+
+
+ +
+
+

Chapter 3 Installation

+ +

Before you can use Slackware Linux, you'll have to obtain and install it. Getting +Slackware is as easy as purchasing it or downloading it for free over the Internet. +Installing it is also easy as long as you have some basic knowledge about your computer +and are willing to learn a few other things. The installation program itself is very much +a step-by-step process. Because of this, you can be up and running very quickly. In fact, +Slackware boasts one of the lowest installation times of any full-featured Linux +distribution.

+ +
+
+

3.1 Getting +Slackware

+ +
+

3.1.1 The Official Disc and Box +Sets

+ +

The official Slackware Linux CD set is available from Slackware Linux, Inc. The CD set +consists of 4 discs. The first disk contains all the software needed for a basic server +install, and the X window system. The second cd is a “live” cd; that is, a +bootable cd that installs into RAM and gives you a temporary installation to play around +with or do a data or machine rescue. This cd also contains a few packages such as the KDE +and GNOME desktop environments. A few other goodies are included on the second cd +including many non-vital packages in the “extra” folder. The third and fourth +CDs contain the source code to all of Slackware, along with the original edition of this +book.

+ +

One may also purchase a boxed set that includes the 4 discs and a copy of this book, +as well as lots of neat Slackware gear to show off your geek pride. CD subscriptions are +available at a reduced rate also.

+ +

The preferred method for shopping for Slackware merchandise is online at the Slackware +store.

+ +

http://store.slackware.com

+ +

You can also call or e-mail your order in.

+ +
+

Table 3-1. Slackware Linux, Inc. Contact Information

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodContact Details
Telephone1-(925) 674-0783
Websitehttp://store.slackware.com
Emailorders@slackware.com
Postal1164 Claremont Drive, Brentwood, CA 94513
+
+
+ +
+
+

3.1.2 Via the Internet

+ +

Slackware Linux is also freely available over the Internet. You may email in your +support questions, but higher priority will be given to those who have purchased the +official CD set. With that said, we get a lot of e-mails and our time is rather limited. +Before e-mailing for support consider reading Chapter 2 first.

+ +

The official Slackware Linux Project website is located at:

+ +

http://www.slackware.com/

+ +

The primary FTP location for Slackware Linux is:

+ +

ftp://ftp.slackware.com/pub/slackware/

+ +

Bear in mind that our ftp site, while open for general use, does not have unlimited +bandwidth. Please consider using a mirror near you to download Slackware. An incomplete +list of mirrors can be found on our site at http://www.slackware.com/getslack.

+
+
+ +
+
+

3.2 +System Requirements

+ +

An easy Slackware installation requires, at minimum, the following:

+ +
+

Table 3-2. System Requirements

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HardwareRequirement
Processor586
RAM32 MB
Disk Space1GB
Media Drive4x CD-ROM
+
+ +

If you have the bootable CD, you will probably not need a floppy drive. Of course, it +stands to reason that if you don't possess a CD-ROM drive, you will need a floppy drive +to do a network install. A network card is required for an NFS install. See the section +called NFS for more information.

+ +

The disk space requirement is somewhat tricky. The 1GB recommendation is usually safe +for a minimal install, but if you do a full install, you will need around two gigabytes +of available hard disk space plus additional space for personal files.. Most users don't +do a full install. In fact, many run Slackware on as little as 100MB of hard disk +space.

+ +

Slackware can be installed to systems with less RAM, smaller hard drives, and weaker +CPUs, but doing so will require a little elbow grease. If you're up for a little work, +take a look at the LOWMEM.TXT file in the distribution tree for +a few helpful hints.

+ +
+
+

3.2.1 The Software Series

+ +

For reasons of simplicity, Slackware has historically been divided into software +series. Once called “disk sets” because they were designed for floppy-based +installation, the software series are now used primarily to categorize the packages +included in Slackware. Today, floppy installation is no longer possible.

+ +

The following is a brief description of each software series.

+ +
+

Table 3-3. Software Series

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeriesContents
AThe base system. Contains enough software to get up and running and have a text +editor and basic communication program.
APVarious applications that do not require the X Window System.
DProgram development tools. Compilers, debuggers, interpreters, and man pages are all +here.
EGNU Emacs.
FFAQs, HOWTOs, and other miscellaneous documentation.
GNOMEThe GNOME desktop environment.
KThe source code for the Linux kernel.
KDEThe K Desktop Environment. An X environment which shares a lot of look-and-feel +features with MacOS and Windows. The Qt library, which KDE requires, is also in this +series.
KDEIInternationalization packages for the KDE desktop.
LLibraries. Dynamically linked libraries required by many other programs.
NNetworking programs. Daemons, mail programs, telnet, news readers, and so on.
TteTeX document formatting system.
TCLThe Tool Command Language. Tk, TclX, and TkDesk.
XThe base X Window System.
XAPX Applications that are not part of a major desktop environment (for example, +Ghostscript and Netscape).
YBSD Console games
+
+
+ +
+
+

3.2.2 +Installation Methods

+ +
+

3.2.2.1 Floppy

+ +

While it was once possible to install all of Slackware Linux from floppy disks, the +increasing size of software packages (indeed, of some individual programs) has forced the +abandonment of the floppy install. As late as Slackware version 7.1 a partial install was +possible using floppy disks. The A and N series could be nearly entirely installed, +providing a base system from which to install the rest of the distribution. If you are +considering a floppy install (typically on older hardware), it is typically recommended +to find another way, or use an older release. Slackware 4.0 is still very popular for +this reason, as is 7.0.

+ +

Please note that floppy disks are still required for a CD-ROM install if you do not +have a bootable CD, as well as for an NFS install.

+
+ +
+
+

3.2.2.2 CD-ROM

+ +

If you have the bootable CD, available in the official disc set published by Slackware +Linux, Inc. (see the section called Getting Slackware), a CD-based installation will be a +bit simpler for you. If not, you will need to boot from floppies. Also, if you have +special hardware that makes usage of the kernel on the bootable CD problematic, you may +need to use specialized floppies.

+ +

As of Slackware version 8.1, a new method is used for creating the bootable CDs, which +does not work as well with certain flaky BIOS chips (it is worth noting that most all +Linux CDs suffer from this these days). If that is the case, we recommend booting from a +floppy disk.

+ +

Section 3.2.3 and Section 3.2.5 provide information on choosing +and creating floppies from which to boot, should this be necessary.

+
+ +
+
+

3.2.2.3 NFS

+ +

NFS (the Network File System) is a way of making filesystems available to remote +machines. An NFS install allows you to install Slackware from another computer on your +network. The machine from which you are installing needs to be configured to export the +Slackware distribution tree to the machine to which you're installing. This, of course, +involves some knowledge of NFS, which is covered in Section 5.6.

+ +

It is possible to perform an NFS install via such methods as PLIP (over a parallel +port), SLIP, and PPP (though not over a modem connection). However, we recommend the use +of a network card if available. After all, installing an operating system through your +printer port is going to be a very, very slow process.

+
+
+ +
+
+

3.2.3 Boot Disk

+ +

The boot disk is the floppy you actually boot from to begin the installation. It +contains a compressed kernel image which is used to control the hardware during +installation. Therefore, it is very much required (unless you're booting from CD, as is +discussed in the section called CD-ROM). The boot disks are located in the bootdisks/ directory in the distribution tree.

+ +

There are more Slackware boot disks than you can shake a stick at (which is to say +about 16). A complete list of boot disks, with a description of each, is available in the +Slackware distribution tree in the file bootdisks/README.TXT. +However, most people are able to use the bare.i (for IDE +devices) or scsi.s (for SCSI devices) boot disk image.

+ +

See Section 3.2.6 for instructions on +making a disk from an image.

+ +

After booting, you will be prompted to insert the root disk. We recommend that you +just humor the boot disk and play along.

+
+ +
+
+

3.2.4 Root Disk

+ +

The root disks contain the setup program and a filesystem which is used during +installation. They are also required. The root disk images are located in the directory +rootdisks in the distribution tree. You'll have to make two root disks from the install.1 and install.2 images. Here you +can also find the network.dsk, pcmcia.dsk, rescue.dsk, and sbootmgr.dsk disks.

+
+ +
+
+

3.2.5 Supplemental Disk

+ +

A supplemental disk is needed if you are performing an NFS install or installing to a +system with PCMCIA devices. Supplemental disks are in the rootdsks directory in the +distribution tree, with the filenames network.dsk and pcmcia.dsk. Recently other supplemental disks such as rescue.dsk and sbootmgr.dsk have been +added. The rescue disk is a small floppy root image that runs in a 4MB RAM drive. It +includes some basic networking utilities and the vi editor for quick fixes on busted +machines. The sbootmgr.dsk disk is used to boot other devices. +Boot off this disk if your bootable CD-ROM drive doesn't want to boot the Slackware CDs. +It will prompt you for different things to boot and may offer a convenient way to work +around a buggy BIOS.

+ +

The root disk will instruct you on the use of supplemental disks when it is +loaded.

+
+ +
+
+

3.2.6 Making the Disks

+ +

Once you've selected a boot disk image, you need to put it on a floppy. The process is +slightly different depending on which operating system you're using to make the disks. If +you're running Linux (or pretty much any Unix-like OS) you'll need to use the dd(1) command. Assuming bare.i is your +disk image file and your floppy drive is /dev/fd0, the command +to make a bare.i floppy is:

+ + + + + +
+
+% dd if=bare.i of=/dev/fd0
+
+
+ +

If you're running a Microsoft OS, you'll need to use the RAWRITE.EXE program, which is included in the distribution tree in +the same directories as the floppy images. Again assuming that bare.i is your disk image file and your floppy drive is A:, open a DOS prompt and type the following:

+ + + + + +
+
+C:\ rawrite a: bare.i
+
+
+
+
+ +
+
+

3.3 +Partitioning

+ +

After booting from your preferred media, you will need to partition your hard disk. +The disk partition is where the Linux filesystem will be created and is where Slackware +will be installed. At the very minimum we recommend creating two partitions; one for your +root filesystem (/) and one for swap space.

+ +

After the root disk finishes loading, it will present you with a login prompt. Log in +as root (there is no password). At the shell prompt, run either cfdisk(8) or fdisk(8). The cfdisk program provides a more user-friendly interface than the +regular fdisk program, but does lack some features. We will +briefly explain the fdisk program below.

+ +

Begin by running fdisk for your hard disk. In Linux, the hard +disks do not have drive letters, but are represented by a file. The first IDE hard disk +(primary master) is /dev/hda, the primary slave is /dev/hdb, and so on. SCSI disks follow the same type system, but +are in the form of /dev/sdX. You +will need to start fdisk and pass it your hard disk:

+ + + + + +
+
+# fdisk /dev/hda
+
+
+ +

Like all good Unix programs, fdisk gives you a prompt +(thought you were getting a menu, right?). The first thing you should do is examine your +current partitions. We do that by typing p at the fdisk prompt:

+ + + + + +
+
+Command (m for help): p
+
+
+ +

This will display all sorts of information about your current partitions. Most people +pick a free drive to install to and then remove any existing partitions on it to create +room for the Linux partitions.

+ +
+ + + + + +
Warning +

IT IS VERY IMPORTANT THAT YOU BACK UP ANY INFORMATION YOU WANT TO SAVE BEFORE +DESTROYING THE PARTITION IT LIVES ON.

+
+
+ +

There is no easy way to recover from deleting a partition, so always back up before +playing with them.

+ +

Looking at the table of partition information you should see a partition number, the +size of the partition, and its type. There's more information, but don't worry about that +for now. We are going to delete all of the partitions on this drive to create the Linux +ones. We run the d command to delete those:

+ + + + + +
+
+Command (m for help): d
+Partition number (1-4): 1
+
+
+ +

This process should be continued for each of the partitions. After deleting the +partitions we are ready to create the Linux ones. We have decided to create one partition +for our root filesystem and one for swap. It is worth noting that Unix partitioning +schemes are the subject of many flame wars, and that most users will tell you the best +way to do it. At a minimum, you should create one partition for / and one for swap. Over time, you'll develop a method that works +well for you.

+ +

I use two basic partition schemes. The first is for a desktop. I make 4 partitions, +/, /home, /usr/local, and swap. This lets me re-install or upgrade the entire +installation under / without wiping out my data files under +/home or my custom compiled applications under /usr/local. For +servers, I often replace the /usr/local partition with a /var partition. Many different servers store information on that +partition and having it kept separate from / has certain +performance benefits. For now, we're sticking with just two partitions: / and swap.

+ +

Now we create the partitions with the n command:

+ + + + + +
+
+Command (m for help): n
+Command action
+   e   extended
+   p   primary partition (1-4)
+p
+Partition number (1-4):1
+First cylinder (0-1060, default 0):0
+ Last cylinder or +size or +sizeM or +sizeK (0-1060, default 1060):+64M
+
+
+ +

You need to make sure you create primary partitions. The first partition is going to +be our swap partition. We tell fdisk to make partition number 1 a primary partition. We +start it at cylinder 0 and for the ending cylinder we type +64M. This will give us a 64 +megabyte partition for swap. (The size of the swap partition you need actually depends on +the amount of RAM you have. It is conventional wisdom that a swap space double the size +of your RAM should be created.) Then we define primary partition number 2 starting at the +first available cylinder and going all the way to the end of the drive.

+ + + + + +
+
+Command (m for help):n
+Command action
+   e   extended
+   p   primary partition (1-4)
+p
+Partition number (1-4):2
+First cylinder (124-1060, default 124):124
+Last cylinder or +size or +sizeM or +sizeK (124-1060, default 1060):1060
+
+
+ +

We are almost done. We need to change the type of the first partition to type 82 +(Linux swap). Type t to change the type, select the first +partition, and type 82. Before writing your changes to the +disk, you should look at the new partition table one last time. Use the p in fdisk to display the partition +table. If everything looks good, type w to write your +changes to the disk and quit fdisk.

+
+ +
+
+

3.4 The setup Program

+ +

Once you have created your partitions, you are ready to install Slackware. The next +step in the installation process is running the setup(8) +program. To do so, simply type setup at the shell prompt. setup is a menu-driven system for actually installing the Slackware +packages and configuring your system.

+ +
+

+
+ +

The setup process goes something like this: You step through each option in the setup program, in the order they are listed. (Of course, you are +free to do things in almost any order you choose, but chances are it isn't going to work +out very well.) Menu items are selected using the up and down arrow keys, and the +“Okay” and “Cancel” buttons can be chosen by using the left and +right arrow keys. Alternatively, each option has a corresponding key, which is +highlighted in the option name. Options which are flaggable (those indicated with a [X]) are toggled using the spacebar.

+ +

Of course, all of that is described in the “help” section of setup, but we believe in giving our readers their money's worth.

+ +
+
+

3.4.1 HELP

+ +

If this is your first time installing Slackware, you might want to take a look at the +help screen. It will give a description of each part of setup +(much like the one we're writing now, but less involved) and instructions for navigating +the rest of the install.

+ +
+

+
+
+ +
+
+

3.4.2 KEYMAP

+ +

If you require a keymap other than the United States “qwerty” layout, you +may want to take a look at this section. It offers a number of alternate layouts for your +keyboarding enjoyment.

+ +
+

+
+
+ +
+
+

3.4.3 ADDSWAP

+ +
+

+
+ +

If you created a swap partition (back in Section +3.3), this section will allow you to enable it. It will autodetect and display the +swap partitions on your hard drive, allowing you to select one to format and enable.

+
+ +
+
+

3.4.4 TARGET

+ +
+

+
+ +

The target section is where your other (non-swap) partitions are formatted and mapped +to filesystem mount points. A list of the partitions on your hard disk will be displayed. +For each partition, you will be given the option of whether to format that partition or +not. Depending on the kernel used, you can choose between reiserfs (the default), ext3, +ext2, jfs, and xfs. Most people use either reiserfs or ext3. In the near future we may +see support for reiserfs4 slip in.

+ +

The first option in the target section is the selection of a partition on which to +install your root (/) filesystem. After that, you will be able +to map other partitions to filesystems as you choose. (For instance, you may want your +third partition, say /dev/hda3, to be your home filesystem. +This is just an example; map the partitions as you see fit.)

+
+ +
+
+

3.4.5 SOURCE

+ +

The source section is where you select the source media from which you are installing +Slackware. Currently there are four sources to choose from. These are CD-ROM, NFS, or a +premounted directory.

+ +
+

+
+ +

The CD-ROM selection enables a CD-ROM based installation. It will offer the option of +scanning for a CD-ROM drive or displaying a list from which you can pick your drive type. +Make sure you have the Slackware CD in your drive before allowing it to scan.

+ +

The NFS selection prompts for your network information and the network information for +your NFS server. The NFS server must be set up in advance. Also note that you cannot use +hostnames, you must use the IP addresses for both your machine and the NFS server (there +is no name resolver on the setup disk). Naturally you must have used the network.dsk floppy to add support for your network controller.

+ +

The premounted directory offers the most flexibility. You can use this method to +install from things such as Jaz disks, NFS mounts over PLIP, and FAT filesystems. Mount +the filesystem to a location of your choosing before running setup, then specify that +location here.

+
+ +
+
+

3.4.6 SELECT

+ +

The select option allows you to select the software series that you wish to install. +These series are described in Section 3.2.1. +Please note that you must install the A series to have a working base system. All other +series are optional.

+ +
+

+
+
+ +
+
+

3.4.7 INSTALL

+ +

Assuming that you have gone through the “target”, “source”, +and “select” options, the install option will allow +you to select packages from your chosen software series. If not, it will prompt you to go +back and complete the other sections of the setup program. This option allows you to +select from six different installation methods: full, newbie, menu, expert, custom, and tag path.

+ +
+

+
+ +

The full option will install every package from all the +software series that you chose in the “select” section. There is no further +prompting. This is the easiest installation method, since you do not need to make any +decisions on the actual packages to install. Of course, this option also takes up the +most hard drive space.

+ +

The next option is newbie. This option installs all of the +required packages in the selected series. For all other packages, it offers a prompt +where you can select “Yes”, “No”, or “Skip”. Yes and +No do the obvious, while Skip will go ahead to the next software series. Additionally, +you will see a description and size requirement for each package to help you decide if +you need it. We recommend this option for new users, as it ensures that you get all the +required packages installed. However, it is a little slow because of the prompting.

+ +

Menu is a faster and more advanced version of the newbie +option. For each series, a menu is displayed, from which you can select all the +non-required packages you want to install. Required packages are not displayed on this +menu.

+ +

For the more advanced user, install offers the expert +option. This allows you complete control over what packages get installed. You can +deselect packages that are absolutely required, resulting in a broken system. On the +other hand, you can control exactly what goes onto your system. Simply select the +packages from each series that you want installed. This is not recommended for the new +user, as it is quite easy to shoot yourself in the foot.

+ +

The custom and tag path options +are also for advanced users. These options allow you to install based upon custom tag +files that you created in the distribution tree. This is useful for installing to large +numbers of machines fairly quickly. For more information on using tag files, see Section 18.4.

+ +

After selecting your installation method, one of a few things will happen. If you +selected full or menu, a menu screen will appear, allowing you to select the packages to +be installed. If you selected full, packages will immediately start getting installed to +the target. If you selected newbie, packages will be installed until an optional package +is reached.

+ +

Note that it is possible to run out of space while installing. If you selected too +many packages for the amount of free space on the target device, you will have problems. +The safest thing to do is to select some software and add more later, if you need it. +This can easily be done using Slackware's package management tools. For this information, +see Chapter 18.

+
+ +
+
+

3.4.8 CONFIGURE

+ +

The configure section allows you to do some basic system configuration, now that the +packages have been installed. What you see here depends in large part upon which software +you have installed. You will, however, always see the following:

+ +
+
+

3.4.8.1 Kernel selection

+ +

Here you will be asked to select a kernel to install. You can install the kernel from +the boot disk you used to install, the Slackware CD-ROM, or from another floppy which you +(always thinking ahead) have prepared. Or you can elect to skip, in which case the +default kernel will be installed and play will continue to the dealer's left.

+ +
+

+
+
+ +
+
+

3.4.8.2 Make a boot disk

+ +

Making a boot disk for future use is probably a good idea. You will have the option of +formatting a floppy and then creating one of two types of boot disk. The first type, simple, simply (go figure) writes a kernel to the floppy. A more +flexible (and highly recommended) option is lilo, which will of +course create a lilo boot disk. See LILO in Section 7.1 for +more information. Of course, you may also choose to simply continue, in which case no boot disk will be made.

+ +
+

+
+
+ +
+
+

3.4.8.3 Modem

+ +

You will be prompted for modem information. More specifically, you will be asked +whether you have a modem, and if so, what serial port it is on.

+ +
+

+
+ +

These next configuration subsections may or may not appear, depending on whether or +not you installed their corresponding packages.

+
+ +
+
+

3.4.8.4 Timezone

+ +

This one's pretty straightforward: you will be asked what time zone you are in. If you +operate on Zulu time, we are very sorry; the (extremely long) list is alphabetically +ordered, and you're at the bottom.

+ +
+

+
+
+ +
+
+

3.4.8.5 Mouse

+ +

This subsection simply asks what kind of mouse you have, and whether you want gpm(8) console mouse support enabled on bootup.

+ +
+

+
+
+ +
+
+

3.4.8.6 Hardware clock

+ +

This subsection asks if your computer's hardware clock is set to Coordinated Universal +Time (UTC or GMT). Most PCs are not, so you should probably say no.

+ +
+

+
+
+ +
+
+

3.4.8.7 Font

+ +

The font subsection allows you to choose from a list of custom console fonts.

+ +
+

+
+
+ +
+
+

3.4.8.8 LILO

+ +

Here you are prompted for installation of LILO (the LInux LOader; see Section 7.1 for more information).

+ +
+

+
+ +

If Slackware is to be the only operating system on your computer, simple should work just fine for you. If you are dual-booting, the +expert option is a better choice. See Section 7.3 for more information on dual-booting. The third +option, do not install, is not recommended unless you know what +you're doing and have a very good reason for not installing LILO. If you are performing +an expert install, you will be given a choice as to where LILO will be put. You may place +LILO in the MBR (Master Boot Record) of your hard drive, in the superblock of your root +Linux partition, or on a floppy disk.

+
+ +
+
+

3.4.8.9 Network

+ +

The network configuration subsection is actually netconfig. +See Section 5.1 for more information.

+
+ +
+
+

3.4.8.10 X Window Manager

+ +

This subsection will allow you to choose a default window manager for X. See Chapter 6 for more details on X and window managers.

+ +
+

+
+ +

No matter which packages you installed, the last thing configure will do is ask you +whether you want to go ahead and set a root password. For +security reasons, this is probably a good idea; however, like almost everything else in +Slackware, this is your call.

+
+
+
+
+ +
+
+

Chapter 4 System +Configuration

+ +

Before you can configure the more advanced parts of your system, it's a good idea to +learn how the system is organized and what commands can be used to search for files and +programs. It's also good to know if you need to compile a custom kernel and what the +steps for doing that are. This chapter will familiarize you with system organization and +configuration files. Then, you can move on to configuring the more advanced parts of the +system.

+ +
+
+

4.1 System Overview

+ +

It's important to understand how a Linux system is put together before diving into the +various configuration aspects. A Linux system is significantly different from a DOS, +Windows, or Macintosh system (with the exception of the Unix-based Mac OS X), but these +sections will help you get acquainted with the layout so that you can easily configure +your system to meet your needs.

+ +
+
+

4.1.1 File System Layout

+ +

The first noticeable difference between Slackware Linux and a DOS or Windows system is +the filesystem. For starters, we do not use drive letters to denote different partitions. +Under Linux, there is one main directory. You can relate this to the C: drive under DOS. Each partition on your system is mounted to a +directory on the main directory. It's kind of like an ever-expanding hard disk.

+ +

We call the main directory the root directory, and it's denoted with a single slash +(/). This concept may seem strange, but it actually makes life +easy for you when you want to add more space. For example, let's say you run out of space +on the drive that has /home on it. Most people install +Slackware and make one big root drive. Well, since a partition can be mounted to any +directory, you can simply go to the store and pick up a new hard drive and mount it to +/home. You've now grafted on some more space to your system. +And all without having to move many things around.

+ +

Below, you will find descriptions of the major top level directories under +Slackware.

+ +
+
+
bin
+ +
+

Essential user programs are stored here. These represent the bare minimum set of +programs required for a user to use the system. Things like the shell and the filesystem +commands (ls, cp, and so on) are stored +here. The /bin directory usually doesn't receive modification +after installation. If it does, it's usually in the form of package upgrades that we +provide.

+
+ +
boot
+ +
+

Files that are used by the Linux Loader (LILO). This directory also receives little +modification after an installation. The kernel is stored here as of Slackware 8.1. In +earlier releases of Slackware, the kernel was simply stored under / , but common practice is to put the kernel and related files here +to facilitate dual-booting.

+
+ +
dev
+ +
+

Everything in Linux is treated as a file, even hardware devices like serial ports, +hard disks, and scanners. In order to access these devices, a special file called a +device node has to be present. All device nodes are stored in the /dev directory. You will find this to be true across many Unix-like +operating systems.

+
+ +
etc
+ +
+

This directory holds system configuration files. Everything from the X Window +configuration file, the user database, to the system startup scripts. The system +administrator will become quite familiar with this directory over time.

+
+ +
home
+ +
+

Linux is a multiuser operating system. Each user on the system is given an account and +a unique directory for personal files. This directory is called the user's home +directory. The /home directory is provided as the default +location for user home directories.

+
+ +
lib
+ +
+

System libraries that are required for basic operation are stored here. The C library, +the dynamic loader, the ncurses library, and kernel modules are among the things stored +here.

+
+ +
mnt
+ +
+

This directory contains temporary mount points for working on hard disks or removable +drives. Here you'll find mount points for your CD-ROM and floppy drives.

+
+ +
opt
+ +
+

Optional software packages. The idea behind /opt is that +each software package installs to /opt/software-package, which makes it easy to remove later. +Slackware distributes some things in /opt (such as KDE in /opt/kde), but you are free to add anything you want to /opt.

+
+ +
proc
+ +
+

This is a unique directory. It's not really part of the filesystem, but a virtual +filesystem that provides access to kernel information. Various pieces of information that +the kernel wants you to know are conveyed to you through files in the /proc directory. You can also send information to the kernel +through some of these files. Try doing cat /proc/cpuinfo.

+
+ +
root
+ +
+

The system administrator is known as root on the system. root's home directory is kept in /root +instead of /home/root. The reason is simple. What if /home was a different partition from / +and it could not be mounted? root would naturally want to log +in and repair the problem. If his home directory was on the damaged filesystem, it would +make it difficult for him to log in.

+
+ +
sbin
+ +
+

Essential programs that are run by root and during the +system bootup process are kept here. Normal users will not run programs in this +directory.

+
+ +
tmp
+ +
+

The temporary storage location. All users have read and write access to this +directory.

+
+ +
usr
+ +
+

This is the big directory on a Linux system. Everything else pretty much goes here, +programs, documentation, the kernel source code, and the X Window system. This is the +directory to which you will most likely be installing programs.

+
+ +
var
+ +
+

System log files, cache data, and program lock files are stored here. This is the +directory for frequently-changing data.

+
+
+
+ +

You should now have a good feel for which directories contain what on the filesystem. +More detailed information about the filesystem layout is available in the hier(7) man +page. The next section will help you find specific files easily, so you don't have to do +it by hand.

+
+ +
+
+

4.1.2 Finding Files

+ +

You now know what each major directory holds, but it still doesn't really help you +find things. I mean, you could go looking through directories, but there are quicker +ways. There are four main file search commands available in Slackware.

+ +
+
+

4.1.2.1 which

+ +

The first is the which(1) command. which is usually used to locate a program quickly. It just searches +your PATH and returns the first instance it finds and the +directory path to it. Take this example:

+ + + + + +
+
+%  which bash
+/bin/bash
+
+
+ +

From that you see that bash is in the /bin directory. This is a very limited command for searching, since +it only searches your PATH.

+
+ +
+
+

4.1.2.2 whereis

+ +

The whereis(1) command works similar to which, but can also search for man pages and source files. A whereis search for bash should return +this:

+ + + + + +
+
+%  whereis bash
+bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz
+
+
+ +

This command not only told us where the actual program is located, but also where the +online documentation is stored. Still, this command is limited. What if you wanted to +search for a specific configuration file? You can't use which or +whereis for that.

+
+ +
+
+

4.1.2.3 find

+ +

The find(1) command allows the user to search the filesystem +with a rich collection of search predicates. Users may specify a search with filename +wildcards, ranges of modification or creation times, or other advanced properties. For +example, to search for the default xinitrc file on the system, +the following command could be used.

+ + + + + +
+
+%  find / -name xinitrc
+/var/X11R6/lib/xinit/xinitrc
+
+
+ +

find will take a while to run, since it has to traverse the +entire root directory tree. And if this command is run as a normal user, there will be +permission denied error messages for directories that only root +can see. But find found our file, so that's good. If only it +could be a bit faster...

+
+ +
+
+

4.1.2.4 slocate

+ +

The slocate(1) command searches the entire filesystem, just +like the find command can do, but it searches a database instead of the actual +filesystem. The database is set to automatically update every morning, so you have a +somewhat fresh listing of files on your system. You can manually run updatedb(1) to update the slocate database (before running updatedb by hand, you must first su to the +root user). Here's an example of slocate in action:

+ + + + + +
+
+%  slocate xinitrc   # we don't have to go to the root
+/var/X11R6/lib/xinit/xinitrc
+/var/X11R6/lib/xinit/xinitrc.fvwm2
+/var/X11R6/lib/xinit/xinitrc.openwin
+/var/X11R6/lib/xinit/xinitrc.twm
+
+
+ +

We got more than what we were looking for, and quickly too. With these commands, you +should be able to find whatever you're looking for on your Linux system.

+
+
+ +
+
+

4.1.3 +The /etc/rc.d Directory

+ +

The system initialization files are stored in the /etc/rc.d +directory. Slackware uses the BSD-style layout for its initialization files as opposed to +System V init scripts, which tend to make configuration changes much more difficult +without using a program specifically designed for that purpose. In BSD-init scripts, each +runlevel is given a single rc file. In System V, each runlevel is given its own +directory, each containing numerous init scripts. This provides an organized structure +that is easy to maintain.

+ +

There are several categories of initialization files. These are system startup, +runlevels, network initialization, and System V compatibility. As per tradition, we'll +lump everything else into another category.

+ +
+
+

4.1.3.1 System Startup

+ +

The first program to run under Slackware besides the Linux kernel is init(8). This program reads the /etc/inittab(5) file to see how to run the system. It runs the /etc/rc.d/rc.S script to prepare the system before going into your +desired runlevel. The rc.S file enables your virtual memory, +mounts your filesystems, cleans up certain log directories, initializes Plug and Play +devices, loads kernel modules, configures PCMCIA devices, sets up serial ports, and runs +System V init scripts (if found). Obviously rc.S has a lot on +its plate, but here are some scripts in /etc/rc.d that rc.S will call on to complete its work:

+ +
+
+
rc.S
+ +
+

This is the actual system initialization script.

+
+ +
rc.modules
+ +
+

Loads kernel modules. Things like your network card, PPP support, and other things are +loaded here. If this script finds rc.netdevice, it will run +that as well.

+
+ +
rc.pcmcia
+ +
+

Probes for and configures any PCMCIA devices that you might have on your system. This +is most useful for laptop users, who probably have a PCMCIA modem or network card.

+
+ +
rc.serial
+ +
+

Configures your serial ports by running the appropriate setserial commands.

+
+ +
rc.sysvinit
+ +
+

Looks for System V init scripts for the desired runlevel and runs them. This is +discussed in more detail below.

+
+
+
+
+ +
+
+

4.1.3.2 Runlevel Initialization +Scripts

+ +

After system initialization is complete, init moves on to +runlevel initialization. A runlevel describes the state that your machine will be running +in. Sound redundant? Well, the runlevel tells init if you will +be accepting multiuser logins or just a single user, whether or not you want network +services, and if you will be using the X Window System or agetty(8) to handle logins. The files below define the different +runlevels in Slackware Linux.

+ +
+
+
rc.0
+ +
+

Halt the system (runlevel 0). By default, this is symlinked to rc.6.

+
+ +
rc.4
+ +
+

Multiuser startup (runlevel 4), but in X11 with KDM, GDM, or XDM as the login +manager.

+
+ +
rc.6
+ +
+

Reboot the system (runlevel 6).

+
+ +
rc.K
+ +
+

Startup in single user mode (runlevel 1).

+
+ +
rc.M
+ +
+

Multiuser mode (runlevels 2 and 3), but with the standard text-based login. This is +the default runlevel in Slackware.

+
+
+
+
+ +
+
+

4.1.3.3 Network Initialization

+ +

Runlevels 2, 3, and 4 will start up the network services. The following files are +responsible for the network initialization:

+ +
+
+
rc.inet1
+ +
+

Created by netconfig, this file is responsible for +configuring the actual network interface.

+
+ +
rc.inet2
+ +
+

Runs after rc.inet1 and starts up basic network +services.

+
+ +
rc.atalk
+ +
+

Starts up AppleTalk services.

+
+ +
rc.httpd
+ +
+

Starts up the Apache web server. Like a few other rc scripts, this one can also be +used to stop and restart a service. rc.httpd takes arguments of +stop, start, or restart.

+
+ +
rc.news
+ +
+

Starts up the news server.

+
+
+
+
+ +
+
+

4.1.3.4 System V Compatibility

+ +

System V init compatibility was introduced in Slackware 7.0. Many other Linux +distributions make use of this style instead of the BSD style. Basically each runlevel is +given a subdirectory for init scripts, whereas BSD style gives one init script to each +runlevel.

+ +

The rc.sysvinit script will search for any System V init +scripts you have in /etc/rc.d and run them, if the runlevel is +appropriate. This is useful for certain commercial software packages that install System +V init scripts

+
+ +
+
+

4.1.3.5 Other Files

+ +

The scripts described below are the other system initialization scripts. They are +typically run from one of the major scripts above, so all you need to do is edit the +contents.

+ +
+
+
rc.gpm
+ +
+

Starts up general purpose mouse services. Allows you to copy and paste at the Linux +console. Occasionally, gpm will cause problems with the mouse when it is used under X +windows. If you experience problems with the mouse under X, try taking away the +executable permission from this file and stopping the gpm server.

+
+ +
rc.font
+ +
+

Loads the custom screen font for the console.

+
+ +
rc.local
+ +
+

Contains any specific startup commands for your system. This is empty after a fresh +install, as it is reserved for local administrators. This script is run after all other +initialization has taken place.

+
+
+
+ +

To enable a script, all you need to do is add the execute permissions to it with the +chmod command. To disable a script, remove the execute +permissions from it. For more information about chmod, see Section 9.2.

+
+
+
+ +
+
+

4.2 Selecting a Kernel

+ +

The kernel is the part of the operating system that provides hardware access, process +control, and overall system control. The kernel contains support for your hardware +devices, so picking one for your system is an important setup step.

+ +

Slackware provides more than a dozen precompiled kernels that you can pick from, each +with a standard set of drivers and additional specific drivers. You can run one of the +precompiled kernels or you can build your own kernel from source. Either way, you need to +make sure that your kernel has the hardware support your system needs.

+ +
+
+

4.2.1 The /kernels Directory on the Slackware CD-ROM

+ +

The precompiled Slackware kernels are available in the /kernels directory on the Slackware CD-ROM or on the FTP site in +the main Slackware directory. The available kernels change as new releases are made, so +the documentation in that directory is always the authoritative source. The /kernels directory has subdirectories for each kernel available. +The subdirectories have the same name as their accompanying boot disk. In each +subdirectory you will find the following files:

+ +
+ +++ + + + + + + + + + + + + + + + + + + + + + + +
FilePurpose
System.mapThe system map file for this kernel
bzImageThe actual kernel image
configThe source configuration file for this kernel
+
+ +

To use a kernel, copy the System.map and config files to your /boot directory and +copy the kernel image to /boot/vmlinuz. Run /sbin/lilo(8) to install LILO for the new kernel, and then reboot +your system. That's all there is to installing a new kernel.

+ +

The kernels that end with a .i are IDE kernels. That is, they include no SCSI support +in the base kernel. The kernels that end with .s are SCSI kernels. They include all the +IDE support in .i kernels, plus SCSI support.

+
+ +
+
+

4.2.2 Compiling a Kernel from Source

+ +

The question “Should I compile a kernel for my system?” is often asked by +new users. The answer is a definite maybe. There are few instances where you will need to +compile a kernel specific to your system. Most users can use a precompiled kernel and the +loadable kernel modules to achieve a fully working system. You will want to compile a +kernel for your system if you are upgrading kernel versions to one that we do not +currently offer in Slackware, or if you have patched the kernel source to get special +device support that is not in the native kernel source. Anyone with an SMP system will +definitely want to compile a kernel with SMP support. Also, many users find a custom +compiled kernel runs much faster on their machine. You may find it useful to compile the +kernel with optimizations for the specific processor in your machine.

+ +

Building your own kernel is not that hard. The first step is to make sure you have the +kernel source installed on your system. Make sure that you installed the packages from +the K series during the installation. You will also want to make sure you have the D +series installed, specifically the C compiler, GNU make, and GNU binutils. In general, +it's a good idea to have the entire D series installed if you plan on doing any kind of +development. You can also download the latest kernel source from http://www.kernel.org/mirrors.

+ +
+
+

4.2.2.1 Linux Kernel version 2.4.x +Compilation

+ + + + + +
+
+% su -
+Password:
+# cd /usr/src/linux
+
+
+ +

The first step is to bring the kernel source into its base state. We issue this +command to do that (note, you may wish to back-up the .config +file as this command will delete it without warning):

+ + + + + +
+
+# make mrproper
+
+
+ +

Now you can configure the kernel for your system. The current kernel offers three ways +of doing this. The first is the original text-based question and answer system. It asks a +bunch of questions and then builds a configuration file. The problem with this method is +that if you mess up, you must start over. The method that most people prefer is the menu +driven one. Lastly, there is an X-based kernel configuration tool. Pick the one you want +and issue the appropriate command:

+ + + + + +
+
+# make config           (text-based Q&A version)
+# make menuconfig       (menu driven, text-based version)
+# make xconfig          (X-based version, make sure you are in X first)
+
+
+ +
+

Figure 4-1. Kernel Configuration Menu

+ +

+
+ +

New users will probably find menuconfig to be the easiest to +use. Help screens are provided that explain the various parts of the kernel. After +configuring your kernel, exit the configuration program. It will write the necessary +configuration files. Now we can prepare the source tree for a build:

+ + + + + +
+
+# make dep
+# make clean
+
+
+ +

The next step is to compile the kernel. First try issuing the bzImage command below.

+ + + + + +
+
+# make bzImage
+
+
+ +

This may take a while, depending on your CPU speed. During the build process, you will +see the compiler messages. After building the kernel image, you will want to build any +parts of the kernel that you flagged as modular.

+ + + + + +
+
+# make modules
+
+
+ +

We can now install the kernel and modules that you compiled. To install the kernel on +a Slackware system, these commands should be issued:

+ + + + + +
+
+# mv /boot/vmlinuz /boot/vmlinuz.old
+# cat arch/i386/boot/bzImage > /vmlinuz
+# mv /boot/System.map /boot/System.map.old
+# cp System.map /boot/System.map
+# make modules_install
+
+
+ +

You will want to edit /etc/lilo.conf and add a section to +boot your old kernel in case your new one does not work. After doing that, run /sbin/lilo to install the new boot block. You can now reboot with +your new kernel.

+
+ +
+
+

4.2.2.2 Linux Kernel Version +2.6.x

+ +

The compilation of a 2.6 kernel is only slightly different from a 2.4 or a 2.2 kernel, +but it is important that you understand the differences before delving in. It's no longer +necessary to run make dep and make +clean. Also, the kernel compilation process is not as verbose in the 2.6 kernel +series. This results in a build process that is easier to understand, but has some short +comings as well. If you have trouble building the kernel, it's highly recommended that +you turn verbosity back up. You do this simply by appending V=1 +to the build. This allows you to log more information that could help a kernel developer +or other friendly geek aid you in resolving the issue.

+ + + + + +
+
+# make bzImage V=1
+
+
+
+
+ +
+
+

4.2.3 Using Kernel Modules

+ +

Kernel modules are another name for device drivers that can be inserted into a running +kernel. They allow you to extend the hardware supported by your kernel without needing to +pick another kernel or compile one yourself.

+ +

Modules can also be loaded and unloaded at any time, even when the system is running. +This makes upgrading specific drivers easy for system administrators. A new module can be +compiled, the old one removed, and the new one loaded, all without rebooting the +machine.

+ +

Modules are stored in the /lib/modules/kernel version directory on your system. They can be +loaded at boot time through the rc.modules file. This file is +very well commented and offers examples for major hardware components. To see a list of +modules that are currently active, use the lsmod(1) command:

+ + + + + +
+
+# lsmod
+Module                  Size  Used by
+parport_pc              7220   0 
+parport                 7844   0  [parport_pc]
+
+
+ +

You can see here that I only have the parallel port module loaded. To remove a module, +you use the rmmod(1) command. Modules can be loaded by the modprobe(1) or insmod(1) command. modprobe is usually safer because it will load any modules that the +one you're trying to load depends on.

+ +

A lot of users never have to load or unload modules by hand. They use the kernel +autoloader for module management. By default, Slackware includes kmod in its kernels. kmod is a kernel +option that enables the kernel to automatically load modules as they are requested. For +more information on kmod and how it is configured, see /usr/src/linux/Documentation/kmod.txt. You'll have needed to have +the kernel source package, or downloaded kernel source from http://kernel.org.

+ +

More information can be found in the man pages for each of these commands, plus the +rc.modules file.

+
+
+
+ +
+
+

Chapter 5 Network +Configuration

+ +
+

5.1 Introduction: netconfig is your +friend.

+ +

When you initially installed Slackware, the setup program invoked the netconfig program. netconfig attempted to +perform the following functions for you:

+ +
    +
  • +

    It asked you for the name of your computer, and the domain name for your computer.

    +
  • + +
  • +

    It gave a brief explanation of the various types of addressing schemes, told when they +should be used, and asked you which IP addressing scheme you wished to use to configure +your network card:

    + +
      +
    • +

      Static-IP

      +
    • + +
    • +

      DHCP

      +
    • + +
    • +

      Loopback

      +
    • +
    + +
    +
    +
  • + +
  • +

    It then offered to probe for a network card to configure.

    +
  • +
+ +

netconfig will generally take care of about 80% of the work +of configuring your LAN network connection if you will let it. Note that I would strongly +suggest that you review your config file for a couple of reasons:

+ +
    +
  1. +

    You should never trust a setup program to properly configure your computer. If you use +a setup program, you should review the configuration yourself.

    +
  2. + +
  3. +

    If you are still learning Slackware and Linux system management, viewing a working +configuration can be helpful. You'll at least know what the configuration should look +like. This will allow you to correct problems due to misconfiguration of the system at a +later date.

    +
  4. +
+
+ +
+
+

5.2 Network Hardware Configuration

+ +

Having decided that you wish to bring your Slackware machine on to some form of +network, the first thing you'll need is a Linux-compatible network card. You will need to +take a little care to ensure that the card is truly Linux-compatible (please refer to the +Linux Documentation Project and/or the kernel documentation for information on the +current status of your proposed network card). As a general rule, you will most likely be +pleasantly surprised by the number of networking cards that are supported under the more +modern kernels. Having said that, I'd still suggest referring to any of the various Linux +hardware compatibility lists (such as The GNU/Linux +Beginners Group Hardware Compatibility Links and The Linux +Documentation Project Hardware HOWTO) that are available on the Internet before +purchasing your card. A little extra time spent in research can save days or even weeks +trying to troubleshoot a card that isn't compatible with Linux at all.

+ +

When you visit the Linux Hardware Compatibility lists available on the Internet, or +when you refer to the kernel documentation installed on your machine, it would be wise to +note which kernel module you'll need to use to support your network card.

+ +
+
+

5.2.1 Loading Network Modules

+ +

Kernel modules that are to be loaded on boot-up are loaded from the rc.modules file in /etc/rc.d or by the +kernel's auto module loading started by /etc/rc.d/rc.hotplug. +The default rc.modules file includes a Network device support +section. If you open rc.modules and look for that section, +you'll notice that it first checks for an executable rc.netdevice file in /etc/rc.d/. This +script is created if setup successfully autoprobes your network +device during installation.

+ +

Below that “if” block is a list of network devices and modprobe lines, +each commented out. Find your device and uncomment the corresponding modprobe line, then +save the file. Running rc.modules as root should now load your network device driver (as well as any +other modules that are listed and uncommented). Note that some modules (such as the +ne2000 driver) require parameters; make sure you select the correct line.

+
+ +
+
+

5.2.2 LAN (10/100/1000Base-T and Base-2) +cards

+ +

This heading encompasses all of the internal PCI and ISA networking cards. Drivers for +these cards are provided via loadable kernel modules as covered in the previous +paragraph. /sbin/netconfig should have probed for your card and +successfully set up your rc.netdevice file. If this did not +occur, the most likely problem would be that the module that you're attempting to load +for a given card is incorrect (it is not unheard of for different generations of the same +brand of card from the same manufacturer to require different modules). If you are +certain that the module that you're attempting to load is the correct one, your next best +bet would be to refer to the documentation for the module in an attempt to discover +whether or not specific parameters are required during when the module is +initialized.

+
+ +
+
+

5.2.3 Modems

+ +

Like LAN cards, modems can come with various bus support options. Until recently, most +modems were 8 or 16 bit ISA cards. With the efforts of Intel and motherboard +manufacturers everywhere to finally kill off the ISA bus completely, it is common now to +find that most modems are either external modems that connect to a serial or USB port or +are internal PCI modems. If you wish for your modem to work with Linux, it is VITALLY important to research your +prospective modem purchase, particularly if you are considering purchasing a PCI modem. +Many, if not most, PCI modems available on store shelves these days are WinModems. +WinModems lack some basic hardware on the modem card itself: the functions performed by +this hardware are typically offloaded onto the CPU by the modem driver and the Windows +operating system. This means that they do not have the standard serial interface that +PPPD will be expecting to see when you try to dial out to your Internet Service +Provider.

+ +

If you want to be absolutely sure that the modem you're purchasing will work with +Linux, purchase an external hardware modem that connects to the serial port on your PC. +These are guaranteed to work better and be less trouble to install and maintain, though +they require external power and tend to cost more.

+ +

There are several web sites that provide drivers and assistance for configuring +WinModem based devices. Some users have reported success configuring and installing +drivers for the various winmodems, including Lucent, Conexant, and Rockwell chipsets. As +the required software for these devices is not an included part of Slackware, and varies +from driver to driver, we will not go into detail on them.

+
+ +
+
+

5.2.4 PCMCIA

+ +

As part of your Slackware install, you are given the opportunity to install the pcmcia +package (in the “A” series of packages). This package contains the +applications and setup files required to work with PCMCIA cards under Slackware. It is +important to note that the pcmcia package only installs the generic software required to +work with PCMCIA cards under Slackware. It does NOT install any drivers or modules. The +available modules and drivers will be in the /lib/modules/`uname +-r`/pcmcia directory. You may need to do some experimentation to find a module that +will work with your network card.

+ +

You will need to edit /etc/pcmcia/network.opts (for an +Ethernet card) or /etc/pcmcia/wireless.opts (if you have a +wireless networking card). Like most Slackware configuration files, these two files are +very well commented and it should be easy to determine which modifications need to be +made.

+
+
+ +
+
+

5.3 TCP/IP Configuration

+ +

At this point, your network card should be physically installed in your computer, and +the relevant kernel modules should be loaded. You will not yet be able to communicate +over your network card, but information about the network device can be obtained with ifconfig -a.

+ + + + + +
+
+# ifconfig -a
+eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
+UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
+RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
+TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
+collisions:0 txqueuelen:100
+RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
+Interrupt:5 Base address:0x8400
+
+lo Link encap:Local Loopback
+inet addr:127.0.0.1 Mask:255.0.0.0
+UP LOOPBACK RUNNING MTU:16436 Metric:1
+RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
+TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
+collisions:0 txqueuelen:0
+RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)
+
+
+ +

If you just typed /sbin/ifconfig without the -a suffix, you would not see the eth0 +interface, as your network card does not yet have a valid IP address or route.

+ +

While there are many different ways to setup and subnet a network, all of them can be +broken down into two types: Static and Dynamic. Static networks are setup such that each +node (geek lingo for thing with an IP address) always has the same IP address. Dynamic +networks are setup in such a way that the IP addresses for the nodes are controlled by a +single server called the DHCP server.

+ +
+
+

5.3.1 DHCP

+ +

DHCP (or Dynamic Host Configuration Protocol), is a means by which an IP address may +be assigned to a computer on boot. When the DHCP client boots, it puts out a request on the Local Area Network +for a DHCP server to assign it an +IP address. The DHCP server has a pool (or scope) of IP addresses available. The server will respond to +this request with an IP address from the pool, along with a lease time. Once the lease time for a given IP address lease +has expired, the client must contact the server again and repeat the negotiation.

+ +

The client will then accept the IP address from the server and will configure the +requested interface with the IP address. There is one more handy trick that DHCP clients +use for negotiating the IP address that they will be assigned, however. The client will +remember it's last assigned IP address, and will request that the server re-assign that +IP address to the client again upon next negotiation. If possible, the server will do so, +but if not, a new address is assigned. So, the negotiation resembles the following:

+ +

    Client: Is there a DHCP server available on the LAN?
+ +    Server: Yes, there is. Here I am.
+ +    Client: I need an IP address.
+    Server: You may take 192.168.10.10 for 19200 seconds.
+ +    Client: Thank you.

+ +

    Client: Is there a DHCP server available on the LAN?
+ +    Server:Yes, there is. Here I am.
+ +    Client:I need an IP address. The last time we
+ +    talked, I had 192.168.10.10;
+    May I have it again?
+    Server:Yes, you may (or No, you may not: take 192.168.10.12 instead).
+ +    Client: Thank you.

+ +

The DHCP client in Linux is /sbin/dhcpcd. If you load /etc/rc.d/rc.inet1 in your favorite text editor, you will notice +that /sbin/dhcpcd is called about midway through the script. +This will force the conversation shown above. dhcpcd will also +track the amount of time left on the lease for the current IP address, and will +automatically contact the DHCP server with a request to renew the lease when necessary. +DHCP can also control related information, such as what ntp server to use, what route to +take, etc.

+ +

Setting up DHCP on Slackware is simple. Just run netconfig +and select DHCP when offered. If you have more than one NIC and do not wish eth0 to be configured by DHCP, just edit the /etc/rc.d/rc.inet1.conf file and change the related variable for +your NIC to “YES”.

+
+ +
+
+

5.3.2 Static IP

+ +

Static IP addresses are fixed addresses that only change if manually told to. These +are used in any case where an administrator doesn't want the IP information to change, +such for internal servers on a LAN, any server connected to the Internet, and networked +routers. With static IP addressing, you assign an address and leave it at that. Other +machines know that you are always at that certain IP address and can contact you at that +address always.

+
+ +
+
+

5.3.3 /etc/rc.d/rc.inet1.conf

+ +

If you plan on assigning an IP address to your new Slackware box, you may do so either +through the netconfig script, or you may edit /etc/rc.d/rc.inet1.conf. In /etc/rc.d/rc.inet1.conf , you will notice:

+ + + + + +
+
+    # Primary network interface card (eth0)
+    IPADDR[0]=""
+    NETMASK[0]=""
+    USE_DHCP[0]=""
+    DHCP_HOSTNAME[0]=""
+
+
+ +

Then further at the bottom:

+ + + + + +
+
+    GATEWAY=""
+
+
+ +

In this case, our task is merely to place the correct information between the +double-quotes. These variables are called by /etc/rc.d/rc.inet1 +at boot time to setup the nics. For each NIC, just enter the correct IP information, or +put “YES” for USE_DHCP. +Slackware will startup the interfaces with the information placed here in the order they +are found.

+ +

The DEFAULT_GW variable sets up the default route for +Slackware. All communications between your computer and other computers on the Internet +must pass through that gateway if no other route is specified for them. If you are using +DHCP, you will usually not need to enter anything here, as the DHCP server will specify +what gateway to use.

+
+ +
+
+

5.3.4 /etc/resolv.conf

+ +

Ok, so you've got an IP address, you've got a default gateway, you may even have ten +million dollars (give us some), but what good is that if you can't resolve names to IP +addresses? No one wants to type in 72.9.234.112 into their web +browser to reach www.slackbook.org. After all, who other than the +authors would memorize that IP address? We need to setup DNS, but how? That's where /etc/resolv.conf comes into play.

+ +

Chances are you already have the proper options in /etc/resolv.conf. If you setup your network connection using DHCP, +the DHCP server should handle updating this file for you. (Technically the DHCP server +just tells dhcpcd what to put here, and it obeys.) If you need +to manually update your DNS server list though, you'll need to hand edit /etc/resolv.conf. Below is an example:

+ + + + + +
+
+# cat /etc/resolv.conf
+nameserver 192.168.1.254
+search lizella.net
+
+
+ +

The first line is simple. The nameserver directive tells us what DNS servers to query. +By necessity these are always IP addresses. You may have as many listed there as you +like. Slackware will happily check one after the other until one returns a match.

+ +

The second line is a little more interesting. The search directive gives us a list of +domain names to assume whenever a DNS request is made. This allows you to contact a +machine by only the first part of its FQDN (Fully Qualified Domain Name). For example, if +“slackware.com” were in your search path, you could reach http://store.slackware.com by just pointing your web browser at http://store.

+ + + + + +
+
+# ping -c 1 store
+PING store.slackware.com (69.50.233.153): 56 data bytes
+64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
+1 packets transmitted, 1 packets received, 0% packet loss
+round-trip min/avg/max = 0.251/0.251/0.251 ms
+
+
+ +
+
+
+ +
+
+

5.3.5 /etc/hosts

+ +

Now that we've got DNS working fine, what if we want to bypass our DNS server, or add +a DNS entry for a machine that isn't in DNS? Slackware includes the oft-loved /etc/hosts file which contains a local list of DNS names and IP +addresses they should match to.

+ + + + + +
+
+# cat /etc/hosts
+127.0.0.1           localhost  locahost.localdomain
+192.168.1.101       redtail
+172.14.66.32        foobar.slackware.com
+
+
+ +

Here you can see that localhost has an IP address of 127.0.0.1 +(always reserved for localhost), redtail can be reached at 192.168.1.101, and foobar.slackware.com is +172.14.66.32.

+
+
+ +
+
+

5.4 +PPP

+ +

Many people still connect to the Internet through some kind of dialup connection. The +most common method is PPP, though SLIP is still occasionally used. Setting up your system +to speak PPP to a remote server is pretty easy. We've included a few tools to help you in +setting it up.

+ +
+
+

5.4.1 pppsetup

+ +

Slackware includes a program called pppsetup to configure +your system to use your dialup account. It shares a look and feel similar to our netconfig program. To run the program, make sure you are logged in +as root. Then type pppsetup to run it. You should see a screen +like this:

+ +

The program will present a series of questions, to which you will feed it appropriate +answers. Things like your modem device, the modem initialization string, and the ISP +phone number. Some items will have a default, which you can accept in most cases.

+ +

After the program runs, it will create a ppp-go program and a +ppp-off program. These are used to start and stop, respectively, +the PPP connection. The two programs are located in /usr/sbin +and need root privileges to run.

+
+ +
+
+

5.4.2 /etc/ppp

+ +

For most users, running pppsetup will be sufficient. However, +there may be an instance where you want to tweak some of the values used by the PPP +daemon. All of the configuration information is kept in /etc/ppp. Here is a list of what the different files are for:

+ +
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ip-down +

This script is run by pppd after the PPP connection is +ended.

+
ip-up +

This script is run by pppd when there's a successful ppp +connection. Put any commands you want run after a successful connection in this file.

+
options +

General configuration options for pppd.

+
options.demand +

General configuration options for pppd when run in demand +dialing mode.

+
pppscript +

The commands sent to the modem.

+
pppsetup.txt +

A log of what you entered when you ran pppsetup.

+
+
+ +
+ + + + + +
Note +

Most of these files won't be there until after you run pppsetup.

+
+
+
+
+ +
+
+

5.5 Wireless

+ +

Wireless networking is still a relatively new thing in the world of computers, yet is +quickly catching on as more people begin to purchase laptops and want networking on the +go, without having to fool with some old twisted pair cable. This trend doesn't appear to +be slowing down. Unfortunately, wireless networking isn't yet as strongly supported in +Linux as traditional wired networking.

+ +

There are three basic steps to configuring an 802.11 wireless Ethernet card:

+ +
    +
  1. +

    Hardware support for the wireless card

    +
  2. + +
  3. +

    Configure the card to connect to a wireless access point

    +
  4. + +
  5. +

    Configure the network

    +
  6. +
+ +
+
+

5.5.1 Hardware Support

+ +

Hardware support for a wireless card is provided through the kernel, either with a +module or built in to the kernel. Generally, most newer Ethernet cards are provided +through kernel modules, so you'll want to determine the appropriate kernel module and +load it through /etc/rc.d/rc.modules. netconfig may not detect your wireless card, so you'll probably need +to determine the card yourself. See http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ for more +information on kernel drivers for various wireless cards.

+
+ +
+
+

5.5.2 Configure the Wireless +Settings

+ +

The vast majority of this work is done by iwconfig, so as +always read the man page for iwconfig if you need more +information.

+ +

First, you'll want to configure your wireless access point. Wireless access points +vary quite a bit in their terminology, and how to configure them, so you may need to +adjust a bit to accommodate your hardware. In general, you'll need at least the following +information:

+ +
    +
  • +

    The domain ID, or name of the network (called the ESSID by iwconfig)

    +
  • + +
  • +

    The channel the WAP uses

    +
  • + +
  • +

    The encryption settings, including any keys used (preferably in hexadecimal)

    +
  • +
+ +
+ + + + + +
Warning +

A NOTE ABOUT WEP. WEP is quit flawed, but it's much better than nothing. If you wish a +greater degree of security on your wireless network, you should investigate VPNs or +IPSec, both of which are beyond the scope of this document. You might also configure your +WAP not to advertise its domain ID/ ESSID. A thorough discussion of wireless policy is +beyond the scope of this section, but a quick Google search will turn up more than you +ever wanted to know.

+
+
+ +

Once you've gathered the above information, and assuming you've used modprobe to load the appropriate kernel driver, you can edit rc.wireless.conf and add your settings. The rc.wireless.conf file is a bit untidy. The least effort is to +modify the generic section with your ESSID and KEY, and CHANNEL if required by your card. +(Try not setting CHANNEL, and if it works, great; if not, set the CHANNEL as +appropriate.) If you're daring, you can modify the file so that only the necessary +variables are set. The variable names in rc.wireless.conf +correspond to the iwconfig parameters, and are read by rc.wireless and used in the appropriate iwconfig commands.

+ +

If you have your key in hexadecimal, that's ideal, since you can be fairly confident +that your WAP and iwconfig will agree on the key. If you only +have a string, you can't be sure how your WAP will translate that into a hexadecimal key, +so some guesswork may be needed (or get your WAP's key in hex).

+ +

Once you've modified rc.wireless.conf, run rc.wireless as root, then run rc.inet1, again as root. You can test +your wireless networking with standard testing tools such as ping, along with iwconfig. If you have a +wired interface you may wish to use ifconfig to turn those +interfaces off while you test your wireless networking to ensure there's no interference. +You may also want to test your changes through a reboot.

+ +

Now that you've seen how to edit /etc/rc.d/rc.wireless for +you default network, let's take a closer look at iwconfig and see how it all works. This +will teach you the quick and dirty way of setting up wifi for those times when you find +yourself at an Internet cafe, coffee shop, or any other wifi hot spot and wish to get +online.

+ +

The first step is to tell your wireless NIC what network to join. Make sure you +replace “eth0” with whatever network interface your +wireless card uses and change “mynetwork” to +the essid you wish to use. Yes, we know you're smarter than that. Next you'll have to +specify the encryption key (if any) used on your wireless network. Finally specify the +channel to use (if needed).

+ + + + + +
+
+# iwconfig eth0 essid "mynetwork"
+# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX
+# iwconfig eth0 channel n
+
+
+ +

That should be all on the wireless end of things.

+
+ +
+
+

5.5.3 Configure the Network

+ +

This is done in the exact same way as wired networks. Simply refer to earlier sections +of this chapter.

+
+
+ +
+
+

5.6 +Network File Systems

+ +

At this point, you should have a working TCP/IP connection to your network. You should +be able to ping other computers on your internal network and, if you have configured an +appropriate gateway, you should also be able to ping computers on the Internet itself. As +we know, the whole point in bringing a computer onto a network is to access information. +While some people might bring a computer up on a network just for the fun of it, most +people wish to be able to share files and printers. They wish to be able to access +documents on the Internet or play an online game. Having TCP/IP installed and functional +on your new Slackware system is a means to that end, but with just TCP/IP installed, +functionality will be very rudimentary. To share files, we will have to transfer them +back and forth using either FTP or SCP. We cannot browse files on our new Slackware +computer from the Network Neighborhood or My Network Places icons on Windows computers. +We'd like to be able to access files on other Unix machines seamlessly.

+ +

Ideally, we'd like to be able to use a network file system to allow us transparent access to our +files on other computers. The programs that we use to interact with information stored on +our computers really do not need to know on what computer a given file is stored; they +just need to know that it exists and how to get to it. It is then the responsibility of +the operating system to manage access to that file through the available file systems and +network file systems. The two most commonly used network file systems are SMB (as +implemented by Samba) and NFS.

+ +
+
+

5.6.1 SMB/Samba/CIFS

+ +

SMB (for Server Message Block) is a descendant of the older NetBIOS protocol that was +initially used by IBM in their LAN Manager product. Microsoft has always been fairly +interested in NetBIOS and it's successors (NetBEUI, SMB and CIFS). The Samba project has +existed since 1991, when it was originally written to link an IBM PC running NetBIOS with +a Unix server. These days, SMB is the preferred method for sharing file and print +services over a network for virtually the entire civilized world because Windows supports +it.

+ +

Samba's configuration file is /etc/samba/smb.conf; one of +the most well commented and documented configuration files you will find anywhere. Sample +shares have been setup for you to view and modify for your needs. If you need even +tighter control the man page for smb.conf is indispensable. Since Samba is documented so +well in the places I've mentioned above, we will not rewrite the documentation here. We +will, however, quickly cover the basics.

+ +

smb.conf is broken down into multiple sections: one section +per share, and a global section for setting options that are to be used everywhere. Some +options are only valid in the global section; some are only valid outside the global +section. Remember that the global section can be over-ridden by any other section. Refer +to the man pages for more information.

+ +

You will most likely wish to edit your smb.conf file to +reflect the network settings in your LAN. I would suggest modifying the items listed +below:

+ + + + + +
+
+[global]
+# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
+workgroup = MYGROUP
+
+
+ +

Change the workgroup name to reflect the workgroup or domain name that you are using +locally.

+ + + + + +
+
+# server string is the equivalent of the NT Description field
+server string = Samba Server
+
+
+ +

This will be the name of your Slackware computer displayed in the Network Neighborhood +(or My Network Places) folder.

+ + + + + +
+
+# Security mode. Most people will want user level security. See
+# security_level.txt for details. NOTE: To get the behaviour of
+# Samba-1.9.18, you'll need to use "security = share".
+security = user
+
+
+ +

You'll almost certainly wish to implement user level security on your Slackware +system.

+ + + + + +
+
+# You may wish to use password encryption. Please read
+# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
+# documentation.
+# Do not enable this option unless you have read those documents
+encrypt passwords = yes
+
+
+ +

If encrypt passwords is not enabled, you will not be able to use Samba with NT4.0, +Win2k, WinXP, and Win2003. Earlier Windows operating systems did not require encryption +to share files.

+ +

SMB is an authenticated protocol, meaning you must supply a correct username and +password in order to use this service. We tell the samba server what usernames and +passwords are valid with the smbpasswd command. smbpasswd takes a couple of common switches to tell it to either add +traditional users, or add machine users (SMB requires that you add the computers' NETBIOS +names as machine users, restricting what computers one can authenticate from).

+ + + + + +
+
+Adding a user to the /etc/samba/private/smbpasswd file.
+# smbpasswd -a user
+Adding a machine name to the /etc/samba/private/smbpasswd file.
+# smbpasswd -a -m machine
+
+
+ +

It's important to note that a given username or machine name must already exist in the +/etc/passwd file. You can accomplish this simply with the adduser command. Note that when using the adduser command to add a machine name one must append a dollar sign +(“$”) to the machine name. This should not however, be done with smbpasswd. smbpasswd appends the dollar +sign on its own. Failing to mangle the machine name this way with adduser will result in an error when adding the machine name to +samba.

+ + + + + +
+
+# adduser machine$
+
+
+
+ +
+
+

5.6.2 Network File System (NFS)

+ +

NFS (or Network File System) was originally written by Sun for their Solaris +implementation of Unix. While it is significantly easier to get up and running when +compared to SMB, it is also significantly less secure. The primary insecurity in NFS is +that it is easy to spoof user and group id's from one machine to another. NFS is an +unauthenticated protocol. Future versions of the NFS protocol are being devised that +enhance security, but these are not common at the time of this writing.

+ +

NFS configuration is governed by the /etc/exports file. When +you load the default /etc/exports file into an editor, you'll +see a blank file with a two line comment on top. We'll need to add a line to the exports +file for each directory that we wish to export, with a listing of client workstations +that will be allowed to access that file. For instance, if we wished to export directory +/home/foo to workstation Bar, we would simply add the line:

+ + + + + +
+
+/home/foo Bar(rw)
+
+
+ +

to our /etc/exports. Below, you'll find the example from the +man page for the exports file:

+ + + + + +
+
+# sample /etc/exports file
+/               master(rw) trusty(rw,no_root_squash)
+/projects       proj*.local.domain(rw)
+/usr            *.local.domain(ro) @trusted(rw)
+/home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
+/pub            (ro,insecure,all_squash)
+
+
+ +

As you can see, there are various options available, but most should be fairly clear +from this example.

+ +

NFS works under the assumption that a given user on one machine in a network has the +same user ID on all machines across the network. When an attempt is made to read or write +from a NFS client to an NFS server, a UID is passed as part of the read/write request. +This UID is treated the same as if the read/write request originated on the local +machine. As you can see, if one could arbitrarily specify a given UID when accessing +resources on a remote system, Bad Things (tm) could and would happen. As a partial hedge +against this, each directory is mounted with the root_squash +option. This maps the UID for any user claiming to be root to a different UID, thus +preventing root access to the files or folders in the exported directory. root_squash seems to be enabled by default as a security measure, +but the authors recommend specifying it anyway in your /etc/exports file.

+ +

You can also export a directory directly from the command line on the server by using +the exportfs command as follows:

+ + + + + +
+
+# exportfs -o rw,no_root_squash Bar:/home/foo
+
+
+ +

This line exports the /home/foo directory to the computer +“Bar” and grants Bar +read/write access. Additionally, the NFS server will not invoke root_squash, which means any user on Bar with a UID of +“0” (root's UID) will have the same privileges as root on the server. The +syntax does look strange (usually when a directory is specified in computer:/directory/file syntax, you are referring to a file in a +directory on a given computer).

+ +

You'll find more information on the man page for the exports file.

+
+
+
+ +
+
+

Chapter 6 X Configuration

+ +

Starting with Slackware-10.0, the X Window environment in Slackware is provided by +Xorg. X is responsible for providing a graphical user interface. It is independent from +the operating system, unlike Windows or the MacOS.

+ +

The X Window System is implemented through many programs that run in userland. The two +main components are the server and the window manager. The server provides the lowlevel +functions for interacting with your video hardware, thus it is system specific. The +window manager sits on top of the server and provides the user interface. The advantage +to this is you can have many different graphical interfaces by simply changing the window +manager you use.

+ +

Configuring X can be a complex task. The reason for this is the vast numbers of video +cards available for the PC architecture, most of which use different programming +interfaces. Luckily, most cards today support basic video standards known as VESA, and if +your card is among them you'll be able to start X using the startx command right out of the box.

+ +

If this doesn't work with your card, or if you'd like to take advantage of the +high-performance features of your video card such as hardware acceleration or 3-D +hardware rendering, then you'll need to reconfigure X.

+ +

To configure X, you'll need to make an /etc/X11/xorg.conf +file. This file contains lots of details about your video hardware, mouse, and monitor. +It's a very complex configuration file, but fortunately there are several programs to +help create one for you. We'll mention a few of them here.

+ +
+
+

6.1 xorgconfig

+ +

This is a simple menu driven frontend that's similar in feel to the Slackware +installer. It simply tells the X server to take a look at the card, and then set up the +best initial configuration file it can make based on the information it gathers. The +generated /etc/X11/xorg.conf file should be a good starting +point for most systems (and should work without modification).

+ +

This is a text-based X configuration program that's designed for the advanced system +administrator. Here's a sample walkthrough using xorgconfig. +First, start the program:

+ + + + + +
+
+# xorgconfig
+
+
+ +

This will present a screenful of information about xorgconfig. To continue, press ENTER. +xorgconfig will ask you to verify you have set your PATH correctly. It should be fine, so go ahead and hit ENTER.

+ +
+

Figure 6-1. xorgconfig Mouse Configuration

+ +

+
+ +

Select your mouse from the menu presented. If you don't see your serial mouse listed, +pick the Microsoft protocol -- it's the most common and will probably work. Next xorgconfig will ask you about using ChordMiddle and Emulate3Buttons. You'll +see these options described in detail on the screen. Use them if the middle button on +your mouse doesn't work under X, or if your mouse only has two buttons (Emulate3Buttons lets you simulate the middle button by pressing both +buttons simultaneously). Then, enter the name of your mouse device. The default choice, +/dev/mouse, should work since the link was configured during +Slackware setup. If you're running GPM (the Linux mouse server) in repeater mode, you can +set your mouse type to /dev/gpmdata to have X get information +about the mouse through gpm. In some cases (with busmice +especially) this can work better, but most users shouldn't do this.

+ +

xorgconfig will ask you about enabling special key bindings. +If you need this say “y”. Most users can say +“n” -- enter this if you're not sure.

+ +
+

Figure 6-2. xorgconfig Horizontal Sync

+ +

+
+ +

In the next section you enter the sync range for your monitor. To start configuring +your monitor, press ENTER. You will see a list of monitor +types -- choose one of them. Be careful not to exceed the specifications of your monitor. +Doing so could damage your hardware.

+ +
+

Figure 6-3. xorgconfig Vertical Sync

+ +

+
+ +

Specify the vertical sync range for your monitor (you should find this in the manual +for the monitor). xorgconfig will ask you to enter strings to identify the monitor type +in the xorg.conf file. Enter anything you like on these 3 lines +(including nothing at all).

+ +
+

Figure 6-4. xorgconfig Video Card

+ +

+
+ +

Now you have the opportunity to look at the database of video card types. You'll want +to do this, so say “y”, and select a card from +the list shown. If you don't see your exact card, try selecting one that uses the same +chipset and it will probably work fine.

+ +

Next, tell xorgconfig how much RAM you have on your video +card. xorgconfig will want you to enter some more descriptive +text about your video card. If you like, you can enter descriptions on these three +lines.

+ +

You'll then be asked which display resolutions you want to use. Again, going with the +provided defaults should be fine to start with. Later on, you can edit the /etc/X11/xorg.conf file and rearrange the modes so 1024x768 (or +whatever mode you like) is the default.

+ +

At this point, the xorgconfig program will ask if you'd like +to save the current configuration file. Answer yes, and the X configuration file is +saved, completing the setup process. You can start X now with the startx command.

+
+ +
+
+

6.2 +xorgsetup

+ +

The second way to configure X is to use xorgsetup, an +automagical configuration program that comes with Slackware.

+ +

To run xorgsetup, log in as root and type:

+ + + + + +
+
+# xorgsetup
+
+
+ +

If you've already got an /etc/X11/xorg.conf file (because +you've already configured X), you'll be asked if you want to backup the existing config +file before continuing. The original file will be renamed to /etc/X11/xorg.conf.backup.

+
+ +
+
+

6.3 +xinitrc

+ +

xinit(1) is the program that actually starts X; it is called +by startx(1), so you may not have noticed it (and probably don't +really need to). Its configuration file, however, determines which programs (including +and especially the window manager) are run when X starts up. xinit first checks your home directory for a .xinitrc file. If the file is found, it gets run; otherwise, /var/X11R6/lib/xinit/xinitrc (the systemwide default) is used. +Here's a simple xinitrc file:

+ + + + + +
+
+#!/bin/sh
+# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
+
+userresources=$HOME/.Xresources
+usermodmap=$HOME/.Xmodmap
+sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
+sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
+
+# merge in defaults and keymaps
+
+if [ -f $sysresources ]; then
+    xrdb -merge $sysresources
+fi
+
+if [ -f $sysmodmap ]; then
+    xmodmap $sysmodmap
+fi
+
+if [ -f $userresources ]; then
+    xrdb -merge $userresources
+fi
+
+if [ -f $usermodmap ]; then
+    xmodmap $usermodmap
+fi
+
+# start some nice programs
+
+twm &
+xclock -geometry 50x50-1+1 &
+xterm -geometry 80x50+494+51 &
+xterm -geometry 80x20+494-0 &
+exec xterm -geometry 80x66+0+0 -name login
+
+
+ +

All of those “if” blocks are there to merge in various configuration +settings from other files. The interesting part of the file is toward the end, where +various programs are run. This X session will begin with the twm(1) window manager, a clock, and three terminals. Note the exec before the last xterm. What that does +is replace the currently running shell (the one that's executing this xinitrc script) with that xterm(1) +command. When the user quits that xterm, the X session will +end.

+ +

To customize your X startup, copy the default /var/X11R6/lib/xinit/xinitrc to ~/.xinitrc and edit it, replacing those program lines with whatever +you like. The end of mine is simply:

+ + + + + +
+
+# Start the window manager:
+exec startkde
+
+
+ +

Note that there are several xinitrc.* files in /var/X11R6/lib/xinit that correspond to various window managers and +GUIs. You can use any of those, if you like.

+
+ +
+
+

6.4 +xwmconfig

+ +

For years, Unix was used almost exclusively as the operating system for servers, with +the exception of high-powered professional workstations. Only the technically inclined +were likely to use a Unix-like operating system, and the user interface reflected this +fact. GUIs tended to be fairly bare-bones, designed to run a few necessarily graphical +applications like CAD programs and image renderers. Most file and system management was +conducted at the command line. Various vendors (Sun Microsystems, Silicon Graphics, etc) +were selling workstations with an attempt to provide a cohesive “look and +feel”, but the wide variety of GUI toolkits in use by developers led inevitably to +the dissolution of the desktop's uniformity. A scrollbar might not look the same in two +different applications. Menus might appear in different places. Programs would have +different buttons and checkboxes. Colors ranged widely, and were generally hard-coded in +each toolkit. As long as the users were primarily technical professionals, none of this +mattered much.

+ +

With the advent of free Unix-like operating systems and the growing number and variety +of graphical applications, X has recently gained a wide desktop user base. Most users, of +course, are accustomed to the consistent look and feel provided by Microsoft's Windows or +Apple's MacOS; the lack of such consistency in X-based applications became a barrier to +its wider acceptance. In response, two open source projects have been undertaken: The K +Desktop Environment, or KDE, and the GNU Network Object Model Environment, known as +GNOME. Each has a wide variety of applications, from taskbars and file managers to games +and office suites, written with the same GUI toolkit and tightly integrated to provide a +uniform, consistent desktop.

+ +

The differences in KDE and GNOME are generally fairly subtle. They each look different +from the other, because each uses a different GUI toolkit. KDE is based on the Qt library +from Troll Tech AS, while GNOME uses GTK, a toolkit originally developed for The GNU +Image Manipulation Program (or The GIMP, for short). As separate projects, KDE and GNOME +each have their own designers and programmers, with different development styles and +philosophies. The result in each case, however, has been fundamentally the same: a +consistent, tightly integrated desktop environment and application collection. The +functionality, usability, and sheer prettiness of both KDE and GNOME rival anything +available on other operating systems.

+ +

The best part, though, is that these advanced desktops are free. This means you can +have either or both (yes, at the same time). The choice is yours.

+ +

In addition to the GNOME and KDE desktops, Slackware includes a large collection of +window managers. Some are designed to emulate other operating systems, some for +customization, others for speed. There's quite a variety. Of course you can install as +many as you want, play with them all, and decide which you like the most.

+ +

To make desktop selection easy, Slackware also includes a program called xwmconfig that can be used to select a desktop or window manager. It +is run like so:

+ + + + + +
+
+% xwmconfig
+
+
+ +
+

Figure 6-5. Desktop Configuration with xorgconfig

+ +

+
+ +

You'll be given a list of all the desktops and window managers installed. Just select +the one you want from the list. Each user on your system will need to run this program, +since different users can use different desktops, and not everyone will want the default +one you selected at installation.

+ +

Then just start up X, and you're good to go.

+
+ +
+
+

6.5 xdm

+ +

As Linux becomes more and more useful as a desktop operating system, many users find +it desirable for the machine to boot straight into a graphical environment. For this, you +will need to tell Slackware to boot straight into X, and assign a graphical login +manager. Slackware ships with three graphical login tools, xdm(1), kdm, and gdm(1).

+ +

xdm is the graphical login manager shipped with the X.org +system. It's ubiquitous, but not as fully features as alternatives. kdm is the graphical login manager shipped with KDE, The K Desktop +Environment. Finally, gdm is the login manager shipped with +GNOME. Any of the choices will allow you to log in as any user, and choose what desktop +you wish to use.

+ +

Unfortunately, Slackware doesn't include a nice program like xwmconfig for choosing what login manager to use, so if all three +are installed you may have to do some editing to choose your preference. But first, we'll +discuss how to boot into a graphical environment.

+ +

In order to start X at boot, you need to boot into run-level 4. Run-levels are just a +way of telling init(8) to do something different when it starts +the OS. We do this by editing the config file for init, /etc/inittab.

+ + + + + +
+
+# These are the default runlevels in Slackware:
+#   0 = halt
+#   1 = single user mode
+#   2 = unused (but configured the same as runlevel 3)
+#   3 = multiuser mode (default Slackware runlevel)
+#   4 = X11 with KDM/GDM/XDM (session managers)
+#   5 = unused (but configured the same as runlevel 3)
+#   6 = reboot
+
+# Default runlevel. (Do not set to 0 or 6)
+id:3:initdefault:
+
+
+ +

In order to make Slackware boot to a graphical environment, we just change the 3 to a +4.

+ + + + + +
+
+  # Default runlevel. (Do not set to 0 or 6)
+  id:4:initdefault:
+
+
+ +

Now Slackware will boot into runlevel 4 and execute /etc/rc.d/rc.4. This file starts up X and calls whatever login +manager you've chosen. So, how do we choose login managers? There are a few ways to do +this, and I'll explain them after we look at rc.4.

+ + + + + +
+
+  # Try to use GNOME's gdm session manager:
+  if [ -x /usr/bin/gdm ]; then
+    exec /usr/bin/gdm -nodaemon
+  fi
+
+  # Not there?  OK, try to use KDE's kdm session manager:
+  if [ -x /opt/kde/bin/kdm ]; then
+    exec /opt/kde/bin/kdm -nodaemon
+  fi
+
+  # If all you have is XDM, I guess it will have to do:
+  if [ -x /usr/X11R6/bin/xdm ]; then
+    exec /usr/X11R6/bin/xdm -nodaemon
+  fi
+
+
+ +

As you can see here, rc.4 first checks to see if gdm is executable, and if so runs it. Second on the list is kdm, and finally xdm. One way of choosing a +login manager is to simply remove the ones you don't wish to use using removepkg. You can find out more about removepkg in Chapter 18.

+ +

Optionally, you can remove the executable permission from those files that you don't +want to use. We discuss chmod in Chapter 9.

+ + + + + +
+
+# chmod -x /usr/bin/gdm
+
+
+ +

Finally, you can just comment out the lines for the login manager you don't want to +use.

+ + + + + +
+
+  # Try to use GNOME's gdm session manager:
+  # if [ -x /usr/bin/gdm ]; then
+  #   exec /usr/bin/gdm -nodaemon
+  # fi
+
+  # Not there?  OK, try to use KDE's kdm session manager:
+  if [ -x /opt/kde/bin/kdm ]; then
+    exec /opt/kde/bin/kdm -nodaemon
+  fi
+
+  # If all you have is XDM, I guess it will have to do:
+  if [ -x /usr/X11R6/bin/xdm ]; then
+    exec /usr/X11R6/bin/xdm -nodaemon
+  fi
+
+
+ +

Any lines preceded by the hash mark (#) are considered +comments and the shell silently passes them. Thus, even if gdm +is installed and executable, the shell (in this case bash) won't +bother checking for it.

+
+
+ +
+
+

Chapter 7 Booting

+ +

The process of booting your Linux system can sometimes be easy and sometimes be +difficult. Many users install Slackware on their computer and that's it. They just turn +it on and it's ready to use. Othertimes, simply booting the machine can be a chore. For +most users, LILO works best. Slackware includes LILO and Loadlin for booting Slackware +Linux. LILO will work from a hard drive partition, a hard drive's master boot record, or +a floppy disk, making it a very versatile tool. Loadlin works from a DOS command line, +killing DOS and invoking Linux.

+ +

Another popular utility for booting Linux is GRUB. GRUB is not included or officially +supported by Slackware. Slackware holds to the “tried and true” standard for +what gets included inside the distribution. While GRUB works well and includes some +features that LILO does not, LILO handles all the essential tasks of a boot loader +reliably with a proven track record. Being younger, GRUB hasn't quite lived up to that +legacy yet. As it is not included with Slackware, we do not discuss it here. If you wish +to use GRUB (perhaps it came with another Linux OS and you want to use it to dual-boot) +consult GRUB's documentation.

+ +

This section covers using LILO and Loadlin, the two booters included with Slackware. +It also explains some typical dual booting scenarios and how you could go about setting +it up.

+ +
+
+

7.1 LILO

+ +

The Linux Loader, or LILO, is the most popular booter in use on Linux systems. It is +quite configurable and can easily be used to boot other operating systems.

+ +

Slackware Linux comes with a menu-driven configuration utility called liloconfig. This program is first run during the setup process, but +you can invoke it later by typing liloconfig at the prompt.

+ +

LILO reads its settings from the /etc/lilo.conf(5) file. It +is not read each time you boot up, but instead is read each time you install LILO. LILO +must be reinstalled to the boot sector each time you make a configuration change. Many +LILO errors come from making changes to the lilo.conf file, but +failing to re-run lilo to install these changes. liloconfig will +help you build the configuration file so that you can install LILO for your system. If +you prefer to edit /etc/lilo.conf by hand, then reinstalling +LILO just involves typing /sbin/lilo (as root) at the prompt.

+ +

When you first invoke liloconfig, it will look like this:

+ +
+

Figure 7-1. liloconfig

+ +

+
+ +

If this is your first time setting up LILO, you should pick simple. Otherwise, you +might find expert to be faster if you are familiar with LILO and Linux. Selecting simple +will begin the LILO configuration.

+ +

If kernel frame buffer support is compiled into your kernel, liloconfig will ask which video resolution you would like to use. +This is the resolution that is also used by the XFree86 frame buffer server. If you do +not want the console to run in a special video mode, selecting normal will keep the +standard 80x25 text mode in use.

+ +

The next part of the LILO configuration is selecting where you want it installed. This +is probably the most important step. The list below explains the installation places:

+ +
+
+
Root
+ +
+

This option installs LILO to the beginning of your Linux root partition. This is the +safest option if you have other operating systems on your computer. It ensures that any +other booters are not overwritten. The disadvantage is that LILO will only load from here +if your Linux drive is the first drive on your system. This is why many people chose to +create a very small /boot partition as the first drive on their +system. This allows the kernel and LILO to be installed at the beginning of the drive +where LILO can find them. Previous versions of LILO contained an infamous flaw known as +the “1024 cylinder limit”. LILO was unable to boot kernels on partitions past +the 1024th cylinder. Recent editions of LILO have eliminated this problem.

+
+ +
Floppy
+ +
+

This method is even safer than the previous one. It creates a boot floppy that you can +use to boot your Linux system. This keeps the booter off the hard disk entirely, so you +only boot this floppy when you want to use Slackware. The flaws with this method are +obvious. Floppies are notoriously fickle, prone to failures. Secondly, the boot loader is +no longer self-contained within the computer. If you loose your floppy disk, you'll have +to make another to boot your system.

+
+ +
MBR
+ +
+

You will want to use this method if Slackware is the only operating system on your +computer, or if you will be using LILO to choose between multiple operating systems on +your computer. This is the most preferred method for installing LILO and will work with +almost any computer system.

+ +
+ + + + + +
Warning +

This option will overwrite any other booter you have in the MBR.

+
+
+
+
+
+ +

After selecting the installation location, liloconfig will +write the configuration file and install LILO. That's it. If you select the expert mode +you will receive a special menu. This menu allows you to tweak the /etc/lilo.conf file, add other operating systems to your boot menu, +and set LILO to pass special kernel parameters at boot time. The expert menu looks like +this:

+ +
+

Figure 7-2. liloconfig Expert Menu

+ +

+
+ +

Whatever your system configuration is, setting up a working boot loader is easy. liloconfig makes setting it up a cinch.

+
+ +
+
+

7.2 LOADLIN

+ +

The other booting option that comes with Slackware Linux is LOADLIN. LOADLIN is a DOS +executable that can be used to start Linux from a running DOS system. It requires the +Linux kernel to be on the DOS partition so that LOADLIN can load it and properly boot the +system.

+ +

During the installation process, LOADLIN will be copied to root's home directory as a +.ZIP file. There is no automatic setup process for LOADLIN. You will need to copy the +Linux kernel (typically /boot/vmlinuz) and the LOADLIN file +from root's home directory to the DOS partition.

+ +

LOADLIN is useful if you would like to make a boot menu on your DOS partition. A menu +could be added to your AUTOEXEC.BAT file that would allow you +to pick between Linux or DOS. A choice of Linux would run LOADLIN, thus booting your +Slackware system. This AUTOEXEC.BAT file under Windows 95 will +provide a sufficient boot menu:

+ + + + + +
+
+   @ECHO OFF
+   SET PROMPT=$P$G
+   SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\
+   CLS
+   ECHO Please Select Your Operating System:
+   ECHO.
+   ECHO [1] Slackware Linux
+   ECHO [2] Windows 95
+   ECHO.
+   CHOICE /C:12 "Selection? -> "
+   IF ERRORLEVEL 2 GOTO WIN
+   IF ERRORLEVEL 1 GOTO LINUX
+   :WIN
+   CLS
+   ECHO Starting Windows 95...
+   WIN
+   GOTO END
+   :LINUX
+   ECHO Starting Slackware Linux...
+   CD \LINUX
+   LOADLIN C:\LINUX\VMLINUZ ROOT=<root partition device> RO
+   GOTO END
+   :END
+
+
+ +

You will want to specify your root partition as a Linux device name, like /dev/hda2 or something else. You can always use LOADLIN at the +command line. You simply use it in the same manner as it is in the example above. The +LOADLIN documentation comes with many examples on how to use it.

+
+ +
+
+

7.3 Dual Booting

+ +

Many users set up their computers to boot Slackware Linux and another operating +system. We've described several typical dual boot scenarios below, in case you are having +difficulty setting up your system.

+ +
+
+

7.3.1 +Windows

+ +

Setting up a computer with both MS Windows and Linux is probably the most common dual +boot scenario. There are numerous ways you can setup the booting, but this section will +cover two.

+ +

Often times when setting up a dual boot system, a person will devise a perfect plan +for where everything should go but mess up the installation order. It is very important +to understand that operating systems need to be installed in a certain order for a dual +boot setup to work. Linux always offers control over what, if anything, gets written to +the Master Boot Record. Therefore, it's always advisable to install Linux last. Windows +should be installed first, since it will always write its booter to the Master Boot +Record, overwriting any entry Linux may have put there.

+ +
+
+

7.3.1.1 Using LILO

+ +

Most people will want to use LILO to chose between Linux and Windows. As stated above, +you should install Windows first, then Linux.

+ +

Let's say you have a 40GB IDE hard disk as the only drive in your system. Let's also +say that you want to give half of that space to Windows and half of that space to Linux. +This will present a problem when trying to boot Linux.

+ + + + + +
+
+   20GB   Windows boot (C:)
+   1GB   Linux root (/)
+   19GB  Linux /usr (/usr)
+
+
+ +

You would also want to set aside an adequate amount of space for a Linux swap +partition. The unwritten rule is to use twice the amount of RAM you have in disk space. A +64MB system would have 128MB of swap, and so on. Adequate swap space is the discussion of +many flames on IRC and Usenet. There's no truly “right” way to do it, but +sticking with the rule above should be sufficient.

+ +

With your partitions laid out, you should proceed to install Windows. After that is +set up and working, you should install Linux. The LILO installation needs special +attention. You will want to select the expert mode for installing LILO.

+ +

Begin a new LILO configuration. You will want to install it to Master Boot Record so +that it can be used to choose between the two operating systems. From the menu, add your +Linux partition and add your Windows (or DOS) partition. Once that's complete, you can +install LILO.

+ +

Reboot the computer. LILO should load and will display a menu letting you select +between the operating systems you have installed. Select the name of the OS you wish to +load (these names were selected when you setup LILO).

+ +

LILO is quite a configurable boot loader. It's not just limited to booting Linux or +DOS. It can boot just about anything. The man pages for lilo(8) +and lilo.conf(5) provide more detailed information.

+ +

What if LILO doesn't work? There are instances where LILO just won't work on a +particular machine. Fortunately, there is another way to dual boot Linux and Windows.

+
+ +
+
+

7.3.1.2 Using LOADLIN

+ +

This method can be used if LILO doesn't work on your system, or if you just don't want +to set up LILO. This method is also ideal for the user that reinstalls Windows often. +Each time you reinstall Windows, it will overwrite the Master Boot Record, thus +destroying any LILO installation. With LOADLIN, you are not subject to that problem. The +biggest disadvantage is that you can only use LOADLIN to boot Linux.

+ +

With LOADLIN, you can install the operating systems in any order desired. Be careful +about installing things to the Master Boot Record, you do not want to do that. LOADLIN +relies on the Windows partition being bootable. So during the Slackware installation, +make sure you skip the LILO setup.

+ +

After installing the operating systems, copy the loadlinX.zip (where X is a version +number, such as 16a) file from root's home directory to your +Windows partition. Also copy your kernel image to the Windows partition. You will need to +be in Linux for this to work. This example shows how to do this:

+ + + + + +
+
+# mkdir /win
+# mount -t vfat /dev/hda1 /win
+# mkdir /win/linux
+# cd /root
+# cp loadlin* /win/linux
+# cp /boot/vmlinuz /win/linux
+# cd /win/linuz
+# unzip loadlin16a.zip
+
+
+ +

That will create a C:\LINUX directory on your Windows +partition (assuming it's /dev/hda1) and copy over the necessary +stuff for LOADLIN. After doing this, you will need to reboot into Windows to setup a boot +menu.

+ +

Once in Windows, get to a DOS prompt. First, we need to make sure the system is set to +not boot into the graphical interface.

+ + + + + +
+
+C:\> cd \
+C:\> attrib -r -a -s -h MSDOS.SYS
+C:\> edit MSDOS.SYS
+
+
+ +

Add this line to the file:

+ + + + + +
+
+BootGUI=0
+
+
+ +

Now save the file and exit the editor. Now edit C:\AUTOEXEC.BAT so we can add a boot menu. The following provides +an example of what a boot menu block in AUTOEXEC.BAT would look +like:

+ + + + + +
+
+cls
+echo System Boot Menu
+echo.
+echo 1 - Linux
+echo 2 - Windows
+echo.
+choice /c:12 "Selection? -> "
+if errorlevel 2 goto WIN
+if errorlevel 1 goto LINUX
+:LINUX
+cls
+echo "Starting Linux..."
+cd \linux
+loadlin c:\linux\vmlinuz root=/dev/hda2 ro
+goto END
+:WIN
+cls
+echo "Starting Windows..."
+win
+goto END
+:END
+
+
+ +

The key line is the one that runs LOADLIN. We tell it the kernel to load, the Linux +root partition, and that we want it mounted read-only initially.

+ +

The tools for these two methods are provided with Slackware Linux. There are numerous +other booters on the market, but these should work for most dual boot setups.

+
+ +
+
+

7.3.1.3 Deprecated Windows NT +Hack

+ +

This is the least common dual booting situation. In the days of old, LILO was unable +to boot Windows NT, requiring Linux users to hack NTLDR, which presented several more +problems than dual booting between Windows 9x and Linux. Understand that the following +instructions are deprecated. LILO has been able to boot Windows NT/2000/XP/2003 for many +years now. If you are using a legacy machine though, you may need to use just such a +hack.

+ +
    +
  1. +

    Install Windows NT

    +
  2. + +
  3. +

    Install Linux, making sure LILO is installed to the superblock of the Linux +partition

    +
  4. + +
  5. +

    Get the first 512 bytes of the Linux root partition and store it on the Windows NT +partition

    +
  6. + +
  7. +

    Edit C:\BOOT.INI under Windows NT to add a Linux option

    +
  8. +
+ +

Installing Windows NT should be fairly straightforward, as should installing Linux. +From there, it gets a little more tricky. Grabbing the first 512 bytes of the Linux +partition is easier than it sounds. You will need to be in Linux to accomplish this. +Assuming your Linux partition is /dev/hda2, issue this +command:

+ + + + + +
+
+# dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512
+
+
+ +

That's it. Now you need to copy bootsect.lnx to the Windows NT partition. Here's where +we run into another problem. Linux does not have stable write support for the NTFS +filesystem. If you installed Windows NT and formatted your drive as NTFS, you will need +to copy this file to a FAT floppy and then read from it under Windows NT. If you +formatted the Windows NT drive as FAT, you can simply mount it under Linux and copy the +file over. Either way, you will want to get /tmp/bootsect.lnx +from the Linux drive to C:\BOOTSECT.LNX on the Windows NT +drive.

+ +

The last step is adding a menu option to the Windows NT boot menu. Under Windows NT +open a command prompt.

+ + + + + +
+
+C:\WINNT> cd \
+C:\> attrib -r -a -s -h boot.ini
+C:\> edit boot.ini
+
+
+ +

Add this line to the end of the file:

+ + + + + +
+
+C:\bootsect.lnx="Slackware Linux"
+
+
+ +

Save the changes and exit the editor. When you reboot Windows NT, you will have a +Linux option on the menu. Choosing it will boot into Linux.

+
+
+ +
+
+

7.3.2 +Linux

+ +

Yes, people really do this. This is definitely the easiest dual boot scenario. You can +simply use LILO and add more entries to the /etc/lilo.conf +file. That's all there is to it.

+
+
+
+ +
+
+

Chapter 8 The Shell

+ +

In a graphical environment, the interface is provided by a program that creates +windows, scrollbars, menus, etc. In a commandline environment, the user interface is +provided by a shell, which interprets commands and generally makes things useable. +Immediately after logging in (which is covered in this chapter), users are put into a +shell and allowed to go about their business. This chapter serves as an introduction to +the shell, and to the most common shell among Linux users-- the Bourne Again Shell +(bash). For more detailed information on anything in this chapter, check out the bash(1) man page.

+ +
+
+

8.1 Users

+ +
+

8.1.1 Logging In

+ +

So you've booted, and you're looking at something that looks like this:

+ + + + + +
+
+Welcome to Linux 2.4.18
+Last login: Wed Jan   1 15:59:14 -0500 2005 on tty6.
+darkstar login:
+
+
+ +

Hmm.. nobody said anything about a login. And what's a darkstar? Don't worry; you +probably didn't accidentally fire up a hyperspace comm-link to the Empire's artificial +moon. (I'm afraid the hyperspace comm-link protocol isn't currently supported by the +Linux kernel. Maybe the 2.8 kernel branch will at last provide this oft looked-for +support.) No, darkstar is just the name of one of our computers, and its name gets +stamped on as the default. If you specified a name for your computer during setup, you +should see it instead of darkstar.

+ +

As for the login... If this is your first time, you'll want to log in as root. You'll be prompted for a password; if you set one during the +setup process, that's what it's looking for. If not, just hit enter. That's it-- you're +in!

+
+ +
+
+

8.1.2 Root: The Superuser

+ +

Okay, who or what is root? And what's it doing with an account on your system?

+ +

Well, in the world of Unix and similar operating systems (like Linux), there are users +and then there are users. We'll go into this in more detail later, but the important +thing to know now is that root is the user above all users; root is all-powerful and all-knowing, and nobody disobeys root. It just isn't +allowed. root is what we call a “superuser”, and +rightly so. And best of all, root is you.

+ +

Cool, huh?

+ +

If you're not sure: yes, that's very cool. The catch is, though, that root is +inherently allowed to break anything it so desires. You might want to skip ahead to Section 12.1.1 and see about adding a user; +then login as that user and work from there. The traditional wisdom is that it's best to +only become the superuser when absolutely necessary, so as to minimize the possibility of +accidentally breaking something.

+ +

By the way, if you decide you want to be root while you're logged in as someone else, +no problem. Just use the su(1) command. You'll be asked for root's password and then it will make you root until you exit or logout. You can also become any other user using su, provided you know that user's password: su +logan, for instance, would make you me.

+ +
+ + + + + +
Note +

root is allowed to su to any user, without requiring their +password.

+
+
+
+
+ +
+
+

8.2 The Command +Line

+ +
+

8.2.1 Running Programs

+ +

It's hard to get much accomplished without running a program; you might be able to +prop something up with your computer or hold a door open, and some will make the most +lovely humming noise when running, but that's really about it. And I think we can all +agree that its use as a humming doorstop isn't what brought the personal computer the +popularity it now enjoys.

+ +

So, remember how almost everything in Linux is a file? Well, that goes for programs, +too. Every command you run (that isn't built into the shell) resides as a file somewhere. +You run a program simply by specifying the full path to it.

+ +

For instance, remember that su command from the last section? +Well, it's actually in the /bin directory: /bin/su would run it nicely.

+ +

So why, then, does just typing su work? After all, you didn't +say it was in /bin. It could just as easily have been in /usr/local/share, right? How did it know? The answer to that lies in the PATH environment variable; most shells have either PATH or something very much like PATH. It +basically contains a list of directories to look in for programs you try to run. So when +you ran su, your shell ran through its list of directories, +checking each one for an executable file called su that it could +run; the first one it came to, it ran. This happens whenever you run a program without +specifying a full path to it; if you get a ““Command +not found”” error, that only means that the program you tried to run +isn't in your PATH. (Of course, this would be true if the program +doesn't exist at all...) We'll discuss environment variables in more depth in Section 8.3.1.

+ +

Remember also that “.” is shorthand for the +current directory, so if you happened to be in /bin, ./su would have worked as an explicit full path.

+
+ +
+
+

8.2.2 Wildcard Matching

+ +

Nearly every shell recognizes some characters as being substitutes or abbreviations +that mean anything goes here. Such characters are aptly named wildcards; the most common +are * and ?. By convention, ? usually matches any single character. For instance, suppose +you're in a directory with three files: ex1.txt, ex2.txt, and ex3.txt. You want to copy +all of those files (using the cp command we cover in Section 10.5.1) to another directory, say /tmp. Well, typing cp ex1.txt ex2.txt ex3.txt +/tmp is entirely too much work. It's much easier to type cp +ex?.txt /tmp; the ? will match each of the characters +“1”, “2”, and “3”, and each in turn will be +substituted in.

+ +

What's that you say? That's still too much work? You're right. It's appalling; we have +labor laws to protect us from that sort of thing. Fortunately, we also have *. As was already mentioned, * matches +“any number of characters”, including 0. So if those three files were the +only ones in the directory, we could have simply said cp * /tmp +and gotten them all in one fell swoop. Suppose, though, that there is also a file called +ex.txt and one called hejaz.txt. We +want to copy ex.txt but not hejaz.txt; cp ex* /tmp will do that for +us.

+ +

cp ex?.txt /tmp, would, of course, only get our original +three files; there's no character in ex.txt to match that ?, so it would be left out.

+ +

Another common wildcard is the bracket pair [ ]. Any +characters inside the brackets will be substituted in place of the [ +] to find matches. Sound confusing? It's not too bad. Suppose for instance, we have +a directory containing the following 8 files: a1, a2, a3, a4, aA, aB, aC, and +aD . We want to only find the files ending in numbers; [ ] will do this for us.

+ + + + + +
+
+% ls a[1-4]
+a1 a2 a3 a4
+
+
+ +

But what we really want is just a1, a2, and a4? In the previous example we +used - to mean all values between 1 and 4. We can also separate individual entries with +commas.

+ + + + + +
+
+% ls a[1,2,4]
+a1 a2 a4
+
+
+ +

I know what you're thinking now, “Well what about letters?” Linux is +case-sensitive, meaning that a and A are different characters and are only related in your mind. +Capitals always come before lowercase letters, so A and B come before a and b. Continuing with our earlier example, if we wanted files a1, and A1, we can find these quickly +with [ ].

+ + + + + +
+
+% ls [A,a]1
+A1 a1
+
+
+ +

Note, that if we had included a hyphen instead of a comma, we would have gotten +incorrect results.

+ + + + + +
+
+% ls [A-a]1
+A1 B1 C1 D1 a1
+
+
+ +

You can also combine hyphen and comma strings.

+ + + + + +
+
+% ls [A,a-d]
+A1 a1 b1 c1 d1
+
+
+
+ +
+
+

8.2.3 Input/Output Redirection and Piping

+ +

(Here comes something cool.)

+ + + + + +
+
+% ps > blargh
+
+
+ +

Y'know what that is? That's me running ps to see which +processes are running; ps is covered in Section 11.3. That's not the cool part. The cool part is +> blargh, which means, roughly, take the output from ps and write it to a file called blargh. +But wait, it gets cooler.

+ + + + + +
+
+% ps | less
+
+
+ +

That one takes the output from ps and pipes it through less, so I can scroll through it at my leisure.

+ + + + + +
+
+% ps >> blargh
+
+
+ +

This is the third most commonly used redirector; it does the same thing as +“>”, except that “>>” will append output from ps to the file blargh, if said file +exists. If not, just like “>”, it will be created. (“>” +will obliterate the current contents of blargh.)

+ +

There is also a “<” operator, which means take your input from the +following, but it's not used nearly so often.

+ + + + + +
+
+% fromdos < dosfile.txt > unixfile.txt
+
+
+ +

Redirection gets really fun when you start piling it up:

+ + + + + +
+
+% ps | tac >> blargh
+
+
+ +

That will run ps, reverse the lines of its output, and append +those to the file blargh. You can stack as many of these up as +you want; just be careful to remember that they get interpreted from left to right.

+ +

See the bash(1) man page for more detailed information on +redirection.

+
+
+ +
+
+

8.3 The Bourne Again Shell +(bash)

+ +
+

8.3.1 +Environment Variables

+ +

A Linux system is a complex beast, and there's a lot to keep track of, a lot of little +details that come into play in your normal interactions with various programs (some of +which you might not even need to be aware of). Nobody wants to pass a bunch of options to +every program that gets run, telling it what kind of terminal is being used, the hostname +of the computer, how their prompt should look...

+ +

So as a coping mechanism, users have what's called an environment. The environment +defines the conditions in which programs run, and some of this definition is variable; +the user can alter and play with it, as is only right in a Linux system. Pretty much any +shell will have environment variables (if not, it's probably not a very useable shell). +Here we will give an overview of the commands bash provides for manipulating its +environment variables.

+ +

set by itself will show you all of the environment variables +that are currently defined, as well as their values. Like most bash built-ins, it can also do several other things (with +parameters); we'll leave it to the bash(1) man page to cover +that, though. Example 8-1 shows an excerpt from +a set command run on one of the author's computers. Notice in +this example the PATH variable that was discussed earlier. +Programs in any of those directories can be run simply by typing the base filename.

+ +
+

Example 8-1. Listing Environment Variables with set

+ + + + + +
+
+% set
+PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
+/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
+/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
+PIPESTATUS=([0]="0")
+PPID=4978
+PS1='\h:\w\$ '
+PS2='> '
+PS4='+ '
+PWD=/home/logan
+QTDIR=/usr/local/lib/qt
+REMOTEHOST=ninja.tdn
+SHELL=/bin/bash
+
+
+
+ + + + + +
+
+% unset VARIABLE
+
+
+ +

unset will remove any variables that you give it, wiping out +both the variable and its value; bash will forget that variable +ever existed. (Don't worry. Unless it's something you explicitly defined in that shell +session, it'll probably get redefined in any other session.)

+ + + + + +
+
+% export VARIABLE=some_value
+
+
+ +

Now, export is truly handy. Using it, you give the +environment variable VARIABLE the value “some_value”; if VARIABLE didn't exist, +it does now. If VARIABLE already had a value, well, it's gone. +That's not so good, if you're just trying to add a directory to your PATH. In that case, you probably want to do something like this:

+ + + + + +
+
+% export PATH=$PATH:/some/new/directory
+
+
+ +

Note the use of $PATH there: when you want bash to interpret a variable (replace it with its value), tack a +$ onto the beginning of the variable's name. For instance, echo $PATH will echo the value of PATH, in my +case:

+ + + + + +
+
+% echo $PATH
+/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
+/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
+/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
+
+
+
+ +
+
+

8.3.2 Tab +Completion

+ +

(Here comes something cool again.)

+ +
    +
  1. +

    A commandline interface means lots of typing.

    +
  2. + +
  3. +

    Typing is work.

    +
  4. + +
  5. +

    Nobody likes work.

    +
  6. +
+ +

From 3 and 2, we can determine that (4) nobody likes typing. Fortunately, bash saves us from (5) (nobody likes a commandline interface).

+ +

How does bash accomplish this wonderful feat, you ask? In +addition to the wildcard expansion we discussed before, bash +features tab completion.

+ +

Tab completion works something like this: You're typing the name of a file. Maybe it's +in your PATH, maybe you're typing it out explicitly. All you have +to do is type enough of the filename to uniquely identify it. Then hit the tab key. bash will figure out what you want and finish typing it for you!

+ +

Example time. /usr/src contains two subdirectories: /usr/src/linux and /usr/src/sendmail. I +want to see what's in /usr/src/linux. So I just type ls /usr/src/l, hit the TAB key, and bash gives me ls /usr/src/linux.

+ +

Now, suppose there are two directories /usr/src/linux and +/usr/src/linux-old; If I type /usr/src/l and hit TAB, bash will fill in as much as it can, and I'll get /usr/src/linux. I can stop there, or I can hit TAB again, and bash will show a list of +directories that match what I've typed so far.

+ +

Hence, less typing (and hence, people can like commandline interfaces). I told you it +was cool.

+
+
+ +
+
+

8.4 Virtual Terminals

+ +

So you're in the middle of working on something and you decide you need to do +something else. You could just drop what you're doing and switch tasks, but this is a +multi-user system, right? And you can log in as many times simultaneously as you want, +right? So why should you have to do one thing at a time?

+ +

You don't. We can't all have multiple keyboards, mice, and monitors for one machine; +chances are most of us don't want them. Clearly, hardware isn't the solution. That leaves +software, and Linux steps up on this one, providing “virtual terminals”, or +“VTs”.

+ +

By pressing Alt and a function key, you can switch +between virtual terminals; each function key corresponds to one. Slackware has logins on +6 VTs by default. Alt+F2 will take you to the +second one, Alt+F3 to the third, etc.

+ +

The rest of the function keys are reserved for X sessions. Each X session uses its own +VT, beginning with the seventh (Alt+F7) and +going up. When in X, the Alt+Function key +combination is replaced with Ctrl+Alt+Function; so if you are in X and want to get back to a text login +(without exiting your X session), Ctrl+Alt+F3 will take you to the third. (Alt+F7 will take you back, assuming you're using the first X session.)

+ +
+
+

8.4.1 Screen

+ +

But what about situations where there are no virtual terminals? What then? +Fortunately, slackware includes a beautiful screen manager aptly named screen. screen is a terminal emulator that +has virtual terminal like capabilities. Executing screen flashes +a brief introduction, then dumps to a terminal. Unlike the standard virtual terminals, +screen has its own commands. All screen +commands are prefixed with a Crtl+A +keystroke. For example, Ctrl+A+C will create a new terminal session. Ctrl+A+N will switch to the next terminal. Ctrl+A+P switches to the +previous terminal.

+ +

screen also supports detaching and re-attaching to screen sessions which is particularly useful for remote sessions via +ssh and telnet, (more on those later). +Ctrl+A+D will detach +from the currently running screen. Executing screen -r will list +all currently running screen sessions you may reattach to.

+ + + + + +
+
+% screen -r
+There are several suitable screens on:
+     1212.pts-1.redtail      (Detached)
+     1195.pts-1.redtail      (Detached)
+     1225.pts-1.redtail      (Detached)
+     17146.pts-1.sanctuary   (Dead ???)
+Remove dead screens with 'screen -wipe'.
+Type "screen [-d] -r [pid.]tty.host" to resume one of them. 
+
+
+ +

Running screen -r 1212 would reattach to the first screen +listed. I mentioned earlier how useful this was for remote sessions. If I were to login +to a remote slackware server via ssh, and my connection was +severed by some chance occurrence such as a local power failure, whatever I was doing at +that moment would instantly perish, which can be a horrible thing for your server. Using +screen prevents this by detaching my session if my connection is +dropped. Once my connection is restored, I can reattach to my screen session and resume +right where I left off.

+
+
+
+ +
+
+

Chapter 9 Filesystem +Structure

+ +

We have already discussed the directory structure in Slackware Linux. By this point, +you should be able to find files and directories that you need. But there is more to the +filesystem than just the directory structure.

+ +

Linux is a multiuser operating system. Every aspect of the system is multiuser, even +the filesystem. The system stores information like who owns a file and who can read it. +There are other unique parts about the filesystems, such as links and NFS mounts. This +section explains these, as well as the multiuser aspects of the filesystem.

+ +
+
+

9.1 Ownership

+ +

The filesystem stores ownership information for each file and directory on the system. +This includes what user and group own a particular file. The easiest way to see this +information is with the ls command:

+ + + + + +
+
+% ls -l /usr/bin/wc
+-rwxr-xr-x   1 root     bin    7368 Jul 30  1999 /usr/bin/wc
+
+
+ +

We are interested in the third and fourth columns. These contain the username and +group name that owns this file. We see that the user “root” and the group “bin” own this file.

+ +

We can easily change the file owners with the chown(1) (which +means “change owner”) and chgrp(1) (which means +“change group”) commands. To change the file owner to daemon, we would use chown:

+ + + + + +
+
+# chown daemon /usr/bin/wc
+
+
+ +

To change the group owner to “root”, we would +use chgrp:

+ + + + + +
+
+# chgrp root /usr/bin/wc
+
+
+ +

We can also use chown to specify the user and group owners +for a file:

+ + + + + +
+
+# chown daemon:root /usr/bin/wc
+
+
+ +

In the above example, the user could have used a period instead of a colon. The result +would have been the same; however, the colon is considered better form. Use of the period +is deprecated and may be removed from future versions of chown +to allow usernames with periods in them. These usernames tend to be very popular with +Windows Exchange Servers and are encountered most commonly in email addresses such as: +mr.jones@example.com. In slackware, administrators are advised +to stay away from such usernames because some scripts still use the period to indicate +the user and group of a file or directory. In our example, chmod +would interpret mr.jones as user “mr” and group +“jones”.

+ +

File ownership is a very important part of using a Linux system, even if you are the +only user. You sometimes need to fix ownerships on files and device nodes.

+
+ +
+
+

9.2 Permissions

+ +

Permissions are the other important part of the multiuser aspects of the filesystem. +With these, you can change who can read, write, and execute files.

+ +

The permission information is stored as four octal digits, each specifying a different +set of permissions. There are owner permissions, group permissions, and world +permissions. The fourth octal digit is used to store special information such as set user +ID, set group ID, and the sticky bit. The octal values assigned to the permission modes +are (they also have letters associated with them that are displayed by programs such as +ls and can be used by chmod):

+ +
+

Table 9-1. Octal Permission Values

+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Permission TypeOctal ValueLetter Value
“sticky” bit1t
set user ID4s
set group ID2s
read4r
write2w
execute1x
+
+ +

You add the octal values for each permission group. For example, if you want the group +permissions to be “read” and “write”, you would use +“6” in the group portion of the permission information.

+ +

bash's default permissions are:

+ + + + + +
+
+% ls -l /bin/bash
+-rwxr-xr-x   1 root     bin  477692 Mar 21 19:57 /bin/bash
+
+
+ +

The first dash would be replaced with a “d” if this was a directory. The +three permission groups (owner, group, and world) are displayed next. We see that the +owner has read, write, and execute permissions (rwx). The +group has only read and execute (r-x). And everyone else has +only read and execute (r-x).

+ +

How would we set permissions on another file to resemble bash's? First, let's make an example file:

+ + + + + +
+
+% touch /tmp/example
+% ls -l /tmp/example
+-rw-rw-r---  1 david    users    0 Apr 19 11:21 /tmp/example
+
+
+ +

We will use chmod(1) (which means “change mode”) +to set the permissions on the example file. Add the octal numbers for the permissions you +want. For the owner to have read, write, and execute, we would have a value of 7. Read and execute would have 5. Run +those together and pass them to chmod like this:

+ + + + + +
+
+% chmod 755 /tmp/example
+% ls -l /tmp/example
+-rwxr-xr-x   1 david    users    0 Apr 19 11:21 /tmp/example
+
+
+ +

Now you may be thinking, “Why didn't it just create a file with those +permissions in the first place?” Well the answer is simple. bash includes a nice little built-in called umask. This is included with most Unix shells as well, and controls +what file permissions are assigned to newly created files. We discussed bash built-ins to some degree in Section 8.3.1. umask takes a +little getting used to. It works very similar to chmod, only in +reverse. You specify the octal values you do not wish to have present in newly created +files. The default umask value is 0022.

+ + + + + +
+
+% umask
+0022
+% umask 0077
+% touch tempfile
+% ls -l tempfile
+-rw--------  1 david    users    0 Apr 19 11:21 tempfile
+
+
+ +

See the man page for bash for more information.

+ +

To set special permissions with chmod, add the numbers +together and place them in the first column. For example, to make it set user ID and set +group ID, we use 6 as the first column:

+ + + + + +
+
+% chmod 6755 /tmp/example
+% ls -l /tmp/example
+-rwsr-sr-x   1 david    users    0 Apr 19 11:21 /tmp/example
+
+
+ +

If the octal values confuse you, you can use letters with chmod. The permission groups are represented as:

+ +
+ +++ + + + + + + + + + + + + + + + + + + + + +
Owneru
Groupg
Worldo
All of the abovea
+
+ +

To do the above, we would have to use several command lines:

+ + + + + +
+
+% chmod a+rx /tmp/example
+% chmod u+w /tmp/example
+% chmod ug+s /tmp/example
+
+
+ +

Some people prefer the letters over the numbers. Either way will result in the same +set of permissions.

+ +

The octal format is often faster, and the one you see most often used in shell +scripts. Sometimes the letters are more powerful however. For example, there's no easy +way to change one group of permissions while preserving the other groups on files and +directories when using the octal format. This is trivial with the letters.

+ + + + + +
+
+% ls -l /tmp/
+-rwxr-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
+-rwxr-x---   1 alan    users    0 Apr 19 11:21 /tmp/example1
+----r-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
+% chmod g-rwx /tmp/example?
+-rwx---r-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
+-rwx------   1 alan    users    0 Apr 19 11:21 /tmp/example1
+-------r-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
+
+
+ +

We mentioned set user ID and set group ID permissions in several places above. You may +be wondering what this is. Normally when you run a program, it is operating under your +user account. That is, it has all the permissions that you as a user have. The same is +true for the group. When you run a program, it executes under your current group. With +set user ID permissions, you can force the program to always run as the program owner +(such as “root”). Set group ID is the same, but for the group.

+ +

Be careful with this, set user ID and set group ID programs can open major security +holes on your system. If you frequently set user ID programs that are owned by root, you are allowing anyone to run that program and run it as root. Since root has no restrictions on +the system, you can see how this would pose a major security problem. In short, it's not +bad to use set user ID and set group ID permissions, just use common sense.

+
+ +
+
+

9.3 Links

+ +

Links are pointers between files. With links, you can have files exist in many +locations and be accessible by many names. There are two types of links: hard and +soft.

+ +

Hard links are names for a particular file. They can only exist within a single +filesystem and are only removed when the real name is removed from the system. These are +useful in some cases, but many users find the soft link to be more versatile.

+ +

The soft link, also called a symbolic link, can point to a file outside of its +filesystem. It is actually a small file containing the information it needs. You can add +and remove soft links without affecting the actual file. And since a symbolic link is +actually a small file containing its own information, they can even point at a directory. +It's rather common to have /var/tmp actually be a symbolic link +to /tmp for example.

+ +

Links do not have their own set of permissions or ownerships, but instead reflect +those of the file they point to. Slackware uses mostly soft links. Here is a common +example:

+ + + + + +
+
+% ls -l /bin/sh
+lrwxrwxrwx   1 root     root     4 Apr  6 12:34 /bin/sh -> bash
+
+
+ +

The sh shell under Slackware is actually bash. Removing links is done using rm. The +ln command is used to create links. These commands will be +discussed in more depth in Chapter 10.

+ +

It's very important to be careful about symlinks in particular. Once, I was working on +a machine that was consistently failing to back-up to tape each night. Two symlinks had +been made to directories beneath each other. The back-up software kept appending those +same directories to the tape until it was out of space. Normally, a set of checks will +prevent creating a symlink in this situation, but ours was a special case.

+
+ +
+
+

9.4 Mounting Devices

+ +

As was previously discussed in Section +4.1.1, all the drives and devices in your computer are one big filesystem. Various +hard drive partitions, CD-ROMs, and floppies are all placed in the same tree. In order to +attach these drives to the filesystem so that you can access them, you have to use the +mount(1) and umount(1) commands.

+ +

Some devices are automatically mounted when you boot up your computer. These are +listed in the /etc/fstab file. Anything that you want to be +mounted automatically gets an entry in that file. For other devices, you'll have to issue +a command every time you want to use the device.

+ +
+
+

9.4.1 fstab

+ +

Let's look at an example of the /etc/fstab file:

+ + + + + +
+
+% cat /etc/fstab
+/dev/sda1       /               ext2        defaults        1   1
+/dev/sda2       /usr/local      ext2        defaults        1   1
+/dev/sda4       /home           ext2        defaults        1   1
+/dev/sdb1       swap            swap        defaults        0   0
+/dev/sdb3       /export         ext2        defaults        1   1
+none            /dev/pts        devpts      gid=5,mode=620  0   0
+none            /proc           proc        defaults        0   0
+/dev/fd0        /mnt            ext2        defaults        0   0
+/dev/cdrom      /mnt/cdrom      iso9660     ro              0   0
+
+
+ +

The first column is the device name. In this case, the devices are five partitions +spread out across two SCSI hard drives, two special filesystems that don't need a device, +a floppy, and a CD-ROM drive. The second column is where the device will be mounted. This +needs to be a directory name, except in the case of a swap partition. The third column is +the filesystem type of the device. For normal Linux filesystems, this will be ext2 (second extended filesystem). CD-ROM drives are iso9660, and Windows-based devices will either be msdos or vfat.

+ +

The fourth column is a listing of options that apply to the mounted filesystem. +defaults is fine for just about everything. However, read-only devices should be given +the ro flag. There are a lot of options that can be used. +Check the fstab(5) man page for more information. The last two +columns are used by fsck and other commands that need to +manipulate the devices. Check the man page for that information as well.

+ +

When you install Slackware Linux, the setup program will build much of the fstab file.

+
+ +
+
+

9.4.2 mount and +umount

+ +

Attaching another device to your filesystem is easy. All you have to do is use the mount command, along with a few options. Using mount can simplified if the device has an entry in the /etc/fstab file. For example, let's say that I wanted to mount my +CD-ROM drive and that my fstab file looked like the example from +the previous section. I would call mount like so:

+ + + + + +
+
+% mount /cdrom
+
+
+ +

Since there is an entry in fstab for that mount point, mount knows what options to use. If there wasn't an entry for that +device, I would have to use several options for mount:

+ + + + + +
+
+% mount -t iso9660 -o ro /dev/cdrom /cdrom
+
+
+ +

That command line includes the same information as the example fstab did, but we'll go over all the parts anyways. The -t iso9660 is the filesystem type of the device to mount. In this +case, it would be the iso9660 filesystem which is what CD-ROM drives most commonly use. +The -o ro tells mount to mount the device read-only. The /dev/cdrom is the name of the device to mount, and /cdrom is the location on the filesystem to mount the drive.

+ +

Before you can remove a floppy, CD-ROM, or other removable device that is currently +mounted, you'll have to unmount it. That is done using the umount command. Don't ask where the “n” went because we +couldn't tell you. You can use either the mounted device or the mount point as the +argument to umount. For example, if you wanted to unmount the +CD-ROM from the previous example, either of these commands would work:

+ + + + + +
+
+# umount /dev/cdrom
+# umount /cdrom
+
+
+
+
+ +
+
+

9.5 +NFS Mounts

+ +

NFS stands for the Network Filesystem. It is not really part of the real filesystem, +but can be used to add parts to the mounted filesystem.

+ +

Large Unix environments often times share the same programs, sets of home directories, +and mail spool. The problem of getting the same copy to each machine is solved with NFS. +We can use NFS to share one set of home directories between all of the workstations. The +workstations then mount that NFS share as if it were on their own machines.

+ +

See Section 5.6.2 and the man pages for +exports(5), nfsd(8), and mountd(8) for more information.

+
+
+ +
+
+

Chapter 10 Handling Files and +Directories

+ +

Linux aims to the most Unix-like it can be. Traditionally, Unix operating systems have +been command-line oriented. We do have a graphical user interface in Slackware, but the +command-line is still the main level of control for the system. Therefore, it is +important to understand some of the basic file management commands.

+ +

The following sections explain the common file management commands and provide +examples of how they are used. There are many other commands, but these will help you get +started. Also, the commands are only briefly discussed here. You will find more detail in +the accompanying man pages for each command.

+ +
+
+

10.1 +Navigation : ls, cd, and pwd

+ +
+

10.1.1 ls

+ +

This command lists files in a directory. Windows and DOS users will notice its +similarity to the dir command. By itself, ls(1) will list the files in the current directory. To see what's in +your root directory, you could issue these commands:

+ + + + + +
+
+% cd /
+% ls
+bin   cdr    dev  home  lost+found  proc  sbin   tmp  var
+boot  cdrom  etc  lib   mnt         root  suncd  usr  vmlinuz
+
+
+ +

The problem a lot of people have with that output is that you cannot easily tell what +is a directory and what is a file. Some users prefer that ls add +a type identifier to each listing, like this:

+ + + + + +
+
+% ls -FC
+bin/   cdr/    dev/  home/  lost+found/  proc/  sbin/   tmp/  var/
+boot/  cdrom/  etc/  lib/   mnt/         root/  suncd/  usr/  vmlinuz
+
+
+ +

Directories get a slash at the end of the name, executable files get an asterisk at +the end of the name, and so on.

+ +

ls can also be used to get other statistics on files. For +example, to see the creation dates, owners, and permissions, you would look at a long +listing:

+ + + + + +
+
+% ls -l
+drwxr-xr-x   2 root     bin          4096 May  7 09:11 bin/
+drwxr-xr-x   2 root     root         4096 Feb 24 03:55 boot/
+drwxr-xr-x   2 root     root         4096 Feb 18 01:10 cdr/
+drwxr-xr-x  14 root     root         6144 Oct 23 18:37 cdrom/
+drwxr-xr-x   4 root     root        28672 Mar  5 18:01 dev/
+drwxr-xr-x  10 root     root         4096 Mar  8 03:32 etc/
+drwxr-xr-x   8 root     root         4096 Mar  8 03:31 home/
+drwxr-xr-x   3 root     root         4096 Jan 23 21:29 lib/
+drwxr-xr-x   2 root     root        16384 Nov  1 08:53 lost+found/
+drwxr-xr-x   2 root     root         4096 Oct  6 12:47 mnt/
+dr-xr-xr-x  62 root     root            0 Mar  4 15:32 proc/
+drwxr-x--x  12 root     root         4096 Feb 26 02:06 root/
+drwxr-xr-x   2 root     bin          4096 Feb 17 02:02 sbin/
+drwxr-xr-x   5 root     root         2048 Oct 25 10:51 suncd/
+drwxrwxrwt   4 root     root       487424 Mar  7 20:42 tmp/
+drwxr-xr-x  21 root     root         4096 Aug 24 03:04 usr/
+drwxr-xr-x  18 root     root         4096 Mar  8 03:32 var/
+
+
+ +

Suppose you want to get a listing of the hidden files in the current directory. This +command will do just that:

+ + + + + +
+
+% ls -a
+.              bin   cdrom  home        mnt   sbin   usr
+..             boot  dev    lib         proc  suncd  var
+.pwrchute_tmp  cdr   etc    lost+found  root  tmp    vmlinuz
+
+
+ +

Files beginning with a period (called dot files) are hidden when you run ls. You will only see them if you pass the -a option.

+ +

There are many more options that can be found in the online manual page. Don't forget +that you can combine options that you pass to ls.

+
+ +
+
+

10.1.2 cd

+ +

The cd command is used to change working directories. You +simply type cd followed by the path name to change to. Here are +some examples:

+ + + + + +
+
+darkstar:~$ cd /bin
+darkstar:/bin$ cd usr
+bash: cd: usr: No such file or directory
+darkstar:/bin$ cd /usr
+darkstar:/usr$ ls
+bin
+darkstar:/usr$ cd bin
+darkstar:/usr/bin$
+
+
+ +

Notice that without the preceding slash, it tries to change to a directory in the +current directory. Also executing cd with no options will move +you to your home directory.

+ +

The cd command is not like the other commands. It is a +builtin shell command. Shell builtins are discussed in Section 8.3.1. This may not make any sense to you +right now. Basically it means there is no man page for this command. Instead, you have to +use the shell help. Like this:

+ + + + + +
+
+% help cd
+
+
+ +

It will display the options for cd and how to use them.

+
+ +
+
+

10.1.3 pwd

+ +

The pwd command is used to show your current location. To use +the pwd command just type pwd. For +example:

+ + + + + +
+
+% cd /bin
+% pwd
+/bin
+% cd /usr
+% cd bin
+% pwd
+/usr/bin
+
+
+
+
+ +
+
+

10.2 Pagers: +more, less, and most

+ +
+

10.2.1 more

+ +

more(1) is what we call a pager utility. Oftentimes the +output of a particular command is too big to fit on one screen. The individual commands +do not know how to fit their output to separate screens. They leave this job to the pager +utility.

+ +

The more command breaks the output into individual screens +and waits for you to press the space bar before continuing on to the next screen. +Pressing the enter key will advance the output one line. Here is a good example:

+ + + + + +
+
+% cd /usr/bin
+% ls -l
+
+
+ +

That should scroll for a while. To break up the output screen by screen, just pipe it +through more:

+ + + + + +
+
+% ls -l | more
+
+
+ +

That is the pipe character (shift backslash). The pipe is short for saying take the +output of ls and feed it into more. You +can pipe just about anything through the more command, not just +ls. Piping is also covered in Section 8.2.3.

+
+ +
+
+

10.2.2 less

+ +

The more command is quite handy, but often you will find that +you have advanced past the screen you wanted. more does not provide a way to go back. The +less(1) command provides this functionality. It is used in the +same way as the more command, so the previous examples apply +here too. So, less is more than more. +Joost Kremers puts it this way:

+ + +
+

less is more, but more more than more is, so more is less less, so use more less if you want less more.

+
+
+ +
+
+

10.2.3 most

+ +

Where more and less leave off, most(1) picks back up. If less is more than +more, most is more than less. Whereas the other pagers can only display one file at a time, +most is capable of viewing any number of files, as long as each +file's window is at least 2 lines long. most has a lot of +options, check the man page for full details.

+
+
+ +
+
+

10.3 Simple +Output: cat and echo

+ +
+

10.3.1 cat

+ +

cat(1) is short for “concatenate”. It was +originally designed to merge text files into one, but can be used for many other +purposes.

+ +

To merge two or more files into one, you simply list the files after the cat command and then redirect the new output to a file. cat works with standard input and standard output, so you have to +use the shell redirection characters. For example:

+ + + + + +
+
+% cat file1 file2 file3 > bigfile
+
+
+ +

This command takes the contents of file1, file2, and file3 and merges it all +together. The new output is sent to standard out.

+ +

One can also use cat to display files. Many people cat text files through the more or less commands, like this:

+ + + + + +
+
+% cat file1 | more
+
+
+ +

That will display the file1 file and pipe it through the more command so that you only get one screen at a time.

+ +

Another common use for cat is copying files. You can copy any +file around with cat, like this:

+ + + + + +
+
+% cat /bin/bash > ~/mybash
+
+
+ +

The /bin/bash program is copied to your home directory and +named mybash.

+ +

cat has many uses and the ones discussed here are just a few. +Since cat makes extensive use of standard input and standard +output, it is ideal for use in shell scripts or part of other complex commands.

+
+ +
+
+

10.3.2 echo

+ +

The echo(1) command displays the specified text on the +screen. You specify the string to display after the echo +command. By default echo will display the string and print a +newline character after it. You can pass the -n option to +suppress the printing of the newline. The -e option will cause +echo to search for escape characters in the string and execute +them.

+
+
+ +
+
+

10.4 +Creation: touch and mkdir

+ +
+

10.4.1 touch

+ +

touch(1) is used to change the timestamp on a file. You can +change access timestamps and modification timestamps with this command. If the file +specified does not exist, touch will create a zero length file +with the name specified. To mark a file with the current system time, you would issue +this command:

+ + + + + +
+
+% ls -al file1
+-rw-r--r--    1 root     root        9779 Feb  7 21:41 file1
+% touch file1
+% ls -al file1
+-rw-r--r--    1 root     root        9779 Feb  8 09:17 file1
+
+
+ +

There are several options for touch, including options to +specify which timestamp to modify, the time to use, and many more. The online manual page +discusses these in detail.

+
+ +
+
+

10.4.2 mkdir

+ +

mkdir(1) will create a new directory. You simply specify the +directory to create when you run mkdir. This example creates the hejaz directory in the current directory:

+ + + + + +
+
+% mkdir hejaz
+
+
+ +

You can also specify a path, like this:

+ + + + + +
+
+% mkdir /usr/local/hejaz
+
+
+ +

The -p option will tell mkdir to +make any parent directories. The above example will fail if /usr/local does not exist. The -p option +will create /usr/local and /usr/local/hejaz:

+ + + + + +
+
+% mkdir -p /usr/local/hejaz
+
+
+
+
+ +
+
+

10.5 Copy +and Move

+ +
+

10.5.1 cp

+ +

cp(1) copies files. DOS users will notice its similarity to +the copy command. There are many options for cp , so you should have a look at the man page before using it.

+ +

A common use is to use cp to copy a file from one location to +another. For example:

+ + + + + +
+
+% cp hejaz /tmp
+
+
+ +

This copies the hejaz file from the current directory to the +/tmp directory.

+ +

Many users prefer to keep the timestamps preserved, as in this example:

+ + + + + +
+
+% cp -a hejaz /tmp
+
+
+ +

This ensures that the timestamps are not modified in the copy.

+ +

To recursively copy the contents of a directory to another directory, you would issue +this command:

+ + + + + +
+
+% cp -R mydir /tmp
+
+
+ +

That will copy the mydir directory to the /tmp directory.

+ +

Also if you wish to copy a directory or a file and keep all it's old permissions and +time stamps and keep it exactly the same use cp -p.

+ + + + + +
+
+% ls -l file
+-rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
+% cp -p file /tmp
+% ls -l /tmp/file
+-rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
+
+
+ +

cp has many more options that are discussed in detail in the +online manual page.

+
+ +
+
+

10.5.2 mv

+ +

mv(1) moves files from one place to another. Sounds simple +enough doesn't it?

+ + + + + +
+
+% mv oldfile /tmp/newfile
+
+
+ +

mv has a few useful command line options that are detailed in +the man page. In practice, mv is almost never used with +commandline options.

+
+
+ +
+
+

10.6 +Deletion: rm and rmdir

+ +
+

10.6.1 rm

+ +

rm(1) removes files and directory trees. DOS users will +notice the similarity to both the del and deltree commands. rm can be very dangerous +if you do not watch yourself. While it is sometimes possible to retrieve a recently +deleted file, it can be complicated (and potentially costly) and is beyond the scope of +this book.

+ +

To remove a single file, specify its name when you run rm:

+ + + + + +
+
+% rm file1
+
+
+ +

If the file has write permissions removed, you may get a permission denied error +message. To force removal of the file no matter what, pass the -f option, like this:

+ + + + + +
+
+% rm -f file1
+
+
+ +

To remove an entire directory, you use the -r and -f options together. This is a good example of how to delete the +entire contents of your hard drive. You really don't want to do this. But here's the +command anyway:

+ + + + + +
+
+# rm -rf /
+
+
+ +

Be very careful with rm; you can shoot yourself in the foot. +There are several command line options, which are discussed in detail in the online +manual page.

+
+ +
+
+

10.6.2 rmdir

+ +

rmdir(1) removes directories from the filesystem. The +directory must be empty before it can be removed. The syntax is simply:

+ + + + + +
+
+% rmdir <directory>
+
+
+ +

This example will remove the hejaz subdirectory in the +current working directory:

+ + + + + +
+
+% rmdir hejaz
+
+
+ +

If that directory does not exist, rmdir will tell you. You +can also specify a full path to a directory to remove, as this example shows:

+ + + + + +
+
+% rmdir /tmp/hejaz
+
+
+ +

That example will try to remove the hejaz directory inside +the /tmp directory.

+ +

You can also remove a directory and all of its parent directories by passing the -p option.

+ + + + + +
+
+% rmdir -p /tmp/hejaz
+
+
+ +

This will first try to remove the hejaz directory inside /tmp. If that is successful, it will try to remove /tmp. rmdir will continue this until an +error is encountered or the entire tree specified is removed.

+
+
+ +
+
+

10.7 Aliasing +files with ln

+ +

ln(1) is used to create links between files. These links can +be either hard links or soft (symbolic) links. The differences between the two kinds of +links were discussed in Section 9.3. If you +wanted to make a symbolic link to the directory /var/media/mp3 +and place the link in your home directory, you would do this:

+ + + + + +
+
+% ln -s /var/media/mp3 ~/mp3
+
+
+ +

The -s option tells ln to make a +symbolic link. The next option is the target of the link, and the final option is what to +call the link. In this case, it will just make a file called mp3 in your home directory that points to /var/media/mp3. You can call the link itself whatever you want by +just changing the last option.

+ +

Making a hard link is just as simple. All you have to do is leave off the -s option. Hard links may not normally refer to directories or span +file systems, however. To create a hard link /usr/bin/email to +/usr/bin/mutt, simply type the following:

+ + + + + +
+
+# ln /usr/bin/mutt /usr/bin/email
+
+
+
+
+ +
+
+

Chapter 11 Process Control

+ +

Every program that is running is called a process. These processes range from things +like the X Window System to system programs (daemons) that are started when the computer +boots. Every process runs as a particular user. Processes that are started at boot time +usually run as root or nobody. +Processes that you start will run as you. Processes started as other users will run as +those users.

+ +

You have control over all the processes that you start. Additionally, root has control over all processes on the system, including those +started by other users. Processes can be controlled and monitored through several +programs, as well as some shell commands.

+ +
+
+

11.1 Backgrounding

+ +

Programs started from the command line start up in the foreground. This allows you to +see all the output of the program and interact with it. However, there are several +occasions when you'd like the program to run without taking up your terminal. This is +called running the program in the background, and there are a few ways to do it.

+ +

The first way to background a process is by adding an ampersand to the command line +when you start the program. For example, assume you wanted to use the command line mp3 +player amp to play a directory full of mp3s, but you needed to +do something else on the same terminal. The following command line would start up amp in +the background:

+ + + + + +
+
+% amp *.mp3 &
+
+
+ +

The program will run as normal, and you are returned to a prompt.

+ +

The other way to background a process is to do so while it is running. First, start up +a program. While it is running, hit Control+z. This suspends the process. A suspended process is basically paused. +It momentarily stops running, but can be started up again at any time. Once you have +suspended a process, you are returned to a prompt. You can background the process by +typing:

+ + + + + +
+
+% bg
+
+
+ +

Now the suspended process is running in the background.

+
+ +
+
+

11.2 Foregrounding

+ +

If you need to interact with a backgrounded process, you can bring it back into the +foreground. If you've only got one backgrounded process, you can bring it back by +typing:

+ + + + + +
+
+% fg
+
+
+ +

If the program is not done running, the program will take control over you terminal +and you will not be returned to a prompt. Sometimes, the program will finish running +while backgrounded. In this instance, you'll get a message like this:

+ + + + + +
+
+[1]+  Done              /bin/ls $LS_OPTIONS
+
+
+ +

That tells you that the backgrounded process (in this case ls +- not terribly interesting) has completed.

+ +

It is possible to have several processes backgrounded at once. When this happens, +you'll need to know which process you want to bring back to the foreground. Just typing +fg will foreground the process that was last backgrounded. What +if you had a whole list of processes in the background? Luckily, bash includes a command +to list all the processes. It's called jobs and gives output +like so:

+ + + + + +
+
+% jobs
+[1]   Stopped                 vim
+[2]-  Stopped                 amp
+[3]+  Stopped                 man ps
+
+
+ +

This shows you a list of all the processes that are backgrounded. As you can see, they +are all stopped. This means that the processes are suspended. The number is a sort of ID +for all the backgrounded processes. The ID with a plus sign beside it (man ps) is the process that will be foregrounded if you just type +fg.

+ +

If you wanted to foreground vim, you would type:

+ + + + + +
+
+% fg 1
+
+
+ +

and vim would spring back up to the console. Backgrounding +processes can be very useful if you only have one terminal open over a dialup connection. +You can have several programs running on that one terminal, periodically switching back +and forth between them.

+
+ +
+
+

11.3 ps

+ +

So now you know how to switch back and forth between several processes that you've +started from the command line. And you also know that there are lots of processes running +all the time. So how do you list all of these programs? Well, you make use of the ps(1) command. This command has a lot of options, so we'll only +cover the most important ones here. For a complete listing, see the man page for ps. Man +pages are covered in-depth in Section 2.1.1.

+ +

Simply typing ps will get you a listing of the programs +running on your terminal. This incudes the foreground processes (which include whatever +shell you are using, and of course, ps itself). Also listed are +backgrounded processes you may have running. Many times, that will be a very short +listing:

+ +
+

Figure 11-1. Basic ps output

+ + + + + +
+
+% ps
+   PID TTY          TIME CMD
+  7923 ttyp0    00:00:00 bash
+  8059 ttyp0    00:00:00 ps
+
+
+
+ +

Even though this is not a lot of processes, the information is very typical. You'll +get the same columns using regular ps no matter how many processes are running. So what +does it all mean?

+ +

Well, the PID is the process ID. All running processes are given a unique +identifier which ranges between 1 and 32767. Each process is assigned the next free PID. +When a process quits (or is killed, as you will see in the next section), it gives up its +PID. When the max PID is reached, the next free one will wrap back around to the lowest +free one.

+ +

The TTY column indicates which terminal the process is +running on. Doing a plain ps will only list all the programs +running on the current terminal, so all the processes give the same information in the +TTY column. As you can see, both processes listed are running on ttyp0. This indicates that they are either running remotely or from +an X terminal of some variety.

+ +

The TIME column indicated how much CPU time the process has +been running. This is different from the actual amount of time that a process runs. +Remember that Linux is a multitasking operating system. There are many processes running +all the time, and these processes each get a small portion of the processor's time. So, +the TIME column should show much less time for each process than it actually takes to +run. If you see more than several minutes in the TIME column, it could mean that +something is wrong.

+ +

Finally, the CMD column shows what the program actually is. +It only lists the base name of the program, not any command line options or similar +information. To get that information, you'll need to use one of the many options to ps. We'll discuss that shortly.

+ +

You can get a complete listing of the processes running on your system using the right +combination of options. This will probably result in a long listing of processes +(fifty-five on my laptop as I write this sentence), so I'll abbreviate the output:

+ + + + + +
+
+% ps -ax
+ PID TTY      STAT   TIME COMMAND
+   1 ?        S      0:03 init [3]
+   2 ?        SW     0:13 [kflushd]
+   3 ?        SW     0:14 [kupdate]
+   4 ?        SW     0:00 [kpiod]
+   5 ?        SW     0:17 [kswapd]
+  11 ?        S      0:00 /sbin/kerneld
+  30 ?        SW     0:01 [cardmgr]
+  50 ?        S      0:00 /sbin/rpc.portmap
+  54 ?        S      0:00 /usr/sbin/syslogd
+  57 ?        S      0:00 /usr/sbin/klogd -c 3
+  59 ?        S      0:00 /usr/sbin/inetd
+  61 ?        S      0:04 /usr/local/sbin/sshd
+  63 ?        S      0:00 /usr/sbin/rpc.mountd
+  65 ?        S      0:00 /usr/sbin/rpc.nfsd
+  67 ?        S      0:00 /usr/sbin/crond -l10
+  69 ?        S      0:00 /usr/sbin/atd -b 15 -l 1
+  77 ?        S      0:00 /usr/sbin/apmd
+  79 ?        S      0:01 gpm -m /dev/mouse -t ps2
+  94 ?        S      0:00 /usr/sbin/automount /auto file /etc/auto.misc
+ 106 tty1     S      0:08 -bash
+ 108 tty3     SW     0:00 [agetty]
+ 109 tty4     SW     0:00 [agetty]
+ 110 tty5     SW     0:00 [agetty]
+ 111 tty6     SW     0:00 [agetty]
+ [output cut]
+
+
+ +

Most of these processes are started at boot time on most systems. I've made a few +modifications to my system, so your mileage will most likely vary. However, you will see +most of these processes on your system too. As you can see, these options display command +line options to the running processes. Recently, a kernel vulnerability in ptrace facilitated a fix which no longer shows command line options +for many running processes. These are now listed in brackets like PIDs 108 through 110. +It also brings up a few more columns and some other interesting output.

+ +

First, you'll notice that most of these processes are listed as running on tty +“?”. Those are not attached to any particular terminal. This is most common +with daemons, which are processes which run without attaching to any particular terminal. +Common daemons are sendmail, BIND, apache, and NFS. They typically listen for some +request from a client, and return information to it upon request.

+ +

Second, there is a new column: STAT. It shows the status of +the process. S stands for sleeping: the process is waiting for +something to happen. Z stands for a zombied process. A zombied +processes is one whose parent has died, leaving the child processes behind. This is not a +good thing. D stands for a process that has entered an +uninterruptible sleep. Often, these processes refuse to die even when passed a SIGKILL. +You can read more about SIGKILL later in the next section on kill . W stands for paging. A dead process is marked with an X. A process marked T is traced, or +stopped. R means that the process is runable.

+ +

If you want to see even more information about the running processes, try this +out:

+ + + + + +
+
+% ps -aux
+ USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
+ root         1  0.0  0.0   344   80 ?        S    Mar02   0:03 init [3]
+ root         2  0.0  0.0     0    0 ?        SW   Mar02   0:13 [kflushd]
+ root         3  0.0  0.0     0    0 ?        SW   Mar02   0:14 [kupdate]
+ root         4  0.0  0.0     0    0 ?        SW   Mar02   0:00 [kpiod]
+ root         5  0.0  0.0     0    0 ?        SW   Mar02   0:17 [kswapd]
+ root        11  0.0  0.0  1044   44 ?        S    Mar02   0:00 /sbin/kerneld
+ root        30  0.0  0.0  1160    0 ?        SW   Mar02   0:01 [cardmgr]
+ bin         50  0.0  0.0  1076  120 ?        S    Mar02   0:00 /sbin/rpc.port
+ root        54  0.0  0.1  1360  192 ?        S    Mar02   0:00 /usr/sbin/sysl
+ root        57  0.0  0.1  1276  152 ?        S    Mar02   0:00 /usr/sbin/klog
+ root        59  0.0  0.0  1332   60 ?        S    Mar02   0:00 /usr/sbin/inet
+ root        61  0.0  0.2  1540  312 ?        S    Mar02   0:04 /usr/local/sbi
+ root        63  0.0  0.0  1796   72 ?        S    Mar02   0:00 /usr/sbin/rpc.
+ root        65  0.0  0.0  1812   68 ?        S    Mar02   0:00 /usr/sbin/rpc.
+ root        67  0.0  0.2  1172  260 ?        S    Mar02   0:00 /usr/sbin/cron
+ root        77  0.0  0.2  1048  316 ?        S    Mar02   0:00 /usr/sbin/apmd
+ root        79  0.0  0.1  1100  152 ?        S    Mar02   0:01 gpm
+ root        94  0.0  0.2  1396  280 ?        S    Mar02   0:00 /usr/sbin/auto
+ chris      106  0.0  0.5  1820  680 tty1     S    Mar02   0:08 -bash
+ root       108  0.0  0.0  1048    0 tty3     SW   Mar02   0:00 [agetty]
+ root       109  0.0  0.0  1048    0 tty4     SW   Mar02   0:00 [agetty]
+ root       110  0.0  0.0  1048    0 tty5     SW   Mar02   0:00 [agetty]
+ root       111  0.0  0.0  1048    0 tty6     SW   Mar02   0:00 [agetty]
+ [output cut]
+
+
+ +

That's a whole lot of information. Basically, it adds information including what user +started the process, how much of the system resources the process is using (the %CPU, +%MEM, VSZ, and RSS columns), and on what date the process was started. Obviously, that's +a lot of information that could come in handy for a system administrator. It also brings +up another point: the information now goes off the edge of the screen so that you cannot +see it all. The -w option will force ps to wrap long lines.

+ +

It's not terribly pretty, but it does the job. You've now got the complete listings +for each process. There's even more information that you can display about each process. +Check out the very in-depth man page for ps. However, the +options shown above are the most popular ones and will be the ones you need to use the +most often.

+
+ +
+
+

11.4 kill

+ +

On occasion, programs misbehave and you'll need to put them back in line. The program +for this kind of administration is called kill(1), and it can be +used for manipulating processes in several ways. The most obvious use of kill is to kill off a process. You'll need to do this if a program +has run away and is using up lots of system resources, or if you're just sick of it +running.

+ +

In order to kill off a process, you'll need to know its PID or its name. To get the +PID, use the ps command as was discussed in the last section. +For example, to kill off process 4747, you'd issue the following:

+ + + + + +
+
+% kill 4747
+
+
+ +

Note that you'll have to be the owner of the process in order to kill it. This is a +security feature. If you were allowed to kill off processes started by other users, it +would be possible to do all sorts of malicious things. Of course, root can kill off any process on the system.

+ +

There's another variety of the kill command called killall(1). This program does exactly what it says: it kills all the +running processes that have a certain name. If you wanted to kill off all the running vim processes, you could type the following command:

+ + + + + +
+
+% killall vim
+
+
+ +

Any and all vim processes you have running will die off. +Doing this as root would kill off all the vim processes running for all users. This brings up an interesting +way to kick everyone (including yourself) off the system:

+ + + + + +
+
+# killall bash
+
+
+ +

Sometimes a regular kill doesn't get the job done. Certain processes will not die with +a kill. You'll need to use a more potent form. If that pesky PID 4747 wasn't responding +to your kill request, you could do the following:

+ + + + + +
+
+% kill -9 4747
+
+
+ +

That will almost certainly cause process 4747 to die. You can do the same thing with +killall. What this is doing is sending a different signal to the +process. A regular kill sends a SIGTERM (terminate) signal to the process, which tells it to finish +what it's doing, clean up, and exit. kill -9 sends a SIGKILL (kill) signal to the process, which essentially drops it. +The process is not allowed to clean-up, and sometimes bad things like data corruption +could occur by killing something with a SIGKILL. There's a +whole list of signals at your disposal. You can get a listing of signals by typing the +following:

+ + + + + +
+
+% kill -l
+  1) SIGHUP     2) SIGINT    3) SIGQUIT   4) SIGILL
+  5) SIGTRAP    6) SIGABRT   7) SIGBUS    8) SIGFPE
+  9) SIGKILL   10) SIGUSR1  11) SIGSEGV  12) SIGUSR2
+ 13) SIGPIPE   14) SIGALRM  15) SIGTERM  17) SIGCHLD
+ 18) SIGCONT   19) SIGSTOP  20) SIGTSTP  21) SIGTTIN
+ 22) SIGTTOU   23) SIGURG   24) SIGXCPU  25) SIGXFSZ
+ 26) SIGVTALRM 27) SIGPROF  28) SIGWINCH 29) SIGIO
+ 30) SIGPWR
+
+
+ +

The number must be used for kill, while the name minus the +leading “SIG” can be used with killall. Here's +another example:

+ + + + + +
+
+% killall -KILL vim
+
+
+ +

A final use of kill is to restart a process. Sending a SIGHUP will cause most processes to re-read their configuration +files. This is especially helpful for telling system processes to re-read their config +files after editing.

+
+ +
+
+

11.5 top

+ +

Finally, there's a command you can use to display updating information about the +processes running on the system. This command is called top(1), +and is started like so:

+ + + + + +
+
+% top
+
+
+ +

This will display a full screen of information about the processes running on the +system, as well as some overall information about the system. This includes load average, +number of processes, the CPU status, free memory information, and details about processes +including PID, user, priority, CPU and memory usage information, running time, and +program name.

+ + + + + +
+
+ 6:47pm  up 1 day,  18:01,  1 user,  load average: 0.02, 0.07, 0.02
+61 processes: 59 sleeping, 2 running, 0 zombie, 0 stopped
+CPU states:  2.8% user,  3.1% system,  0.0% nice, 93.9% idle
+Mem:   257992K av,  249672K used,    8320K free,   51628K shrd,  78248K buff
+Swap:   32764K av,     136K used,   32628K free,                 82600K cached
+
+PID USER    PRI  NI  SIZE  RSS  SHARE  STAT  LIB %CPU %MEM  TIME COMMAND
+ 112 root     12   0 19376  18M   2468  R       0  3.7  7.5 55:53 X
+4947 david    15   0  2136 2136   1748  S       0  2.3  0.8  0:00 screenshot
+3398 david     7   0 20544  20M   3000  S       0  1.5  7.9  0:14 gimp
+4946 root     12   0  1040 1040    836  R       0  1.5  0.4  0:00 top
+ 121 david     4   0   796  796    644  S       0  1.1  0.3 25:37 wmSMPmon
+ 115 david     3   0  2180 2180   1452  S       0  0.3  0.8  1:35 wmaker
+4948 david    16   0   776  776    648  S       0  0.3  0.3  0:00 xwd
+   1 root      1   0   176  176    148  S       0  0.1  0.0  0:13 init
+ 189 david     1   0  6256 6156   4352  S       0  0.1  2.4  3:16 licq
+4734 david     0   0  1164 1164    916  S       0  0.1  0.4  0:00 rxvt
+   2 root      0   0     0    0      0  SW      0  0.0  0.0  0:08 kflushd
+   3 root      0   0     0    0      0  SW      0  0.0  0.0  0:06 kupdate
+   4 root      0   0     0    0      0  SW      0  0.0  0.0  0:00 kpiod
+   5 root      0   0     0    0      0  SW      0  0.0  0.0  0:04 kswapd
+  31 root      0   0   340  340    248  S       0  0.0  0.1  0:00 kerneld
+  51 root      0   0    48   48     32  S       0  0.0  0.0  0:00 dhcpcd
+  53 bin       0   0   316  316    236  S       0  0.0  0.1  0:00 rpc.portmap
+  57 root      0   0   588  588    488  S       0  0.0  0.2  0:01 syslogd
+
+
+ +

It's called top because the most CPU intensive programs will +be listed at the top. An interesting note is that top will be listed first on most +inactive (and some active) systems because of its CPU utilization. However, top is quite useful for determining what program is misbehaving and +needs to be killed off.

+ +

But suppose you only want a list of your own processes, or the processes of some other +user. The processes you want to see might not be among the most CPU intensive programs +currently running. The -u option allows you to specify a +username or UID and monitor only those processes owned by that UID.

+ + + + + +
+
+% top -u alan
+ PID USER      PR  NI  VIRT RES   SHR S %CPU %MEM   TIME+   COMMAND
+3622 alan      13   0 11012  10m 6956 S  1.0  2.1   0:03.66 gnome-terminal
+3739 alan      13   0  1012 1012  804 R  0.3  0.2   0:00.06 top
+3518 alan       9   0  1312 1312 1032 S  0.0  0.3   0:00.09 bash
+3529 alan       9   0   984  984  848 S  0.0  0.2   0:00.00 startx
+3544 alan       9   0   640  640  568 S  0.0  0.1   0:00.00 xinit
+3548 alan       9   0  8324 8320 6044 S  0.0  1.6   0:00.30 gnome-session
+3551 alan       9   0  7084 7084 1968 S  0.0  1.4   0:00.50 gconfd-2
+3553 alan       9   0  2232 2232  380 S  0.0  0.4   0:00.05 esd
+3555 alan       9   0  2552 2552 1948 S  0.0  0.5   0:00.10 bonobo-activati
+3557 alan       9   0  2740 2740 2224 S  0.0  0.5   0:00.05 gnome-smproxy
+3559 alan       9   0  6496 6492 5004 S  0.0  1.3   0:00.31 gnome-settings-
+3565 alan       9   0  1740 1740 1440 S  0.0  0.3   0:00.28 xscreensaver
+3568 alan       9   0  7052 7052 4960 S  0.0  1.4   0:02.28 metacity
+3572 alan       9   0 11412  11m 7992 S  0.0  2.2   0:01.58 gnome-panel
+3574 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.64 nautilus
+3575 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
+3576 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
+
+
+ +

As you can see, I'm currently running X, top, a gnome-terminal (in which I'm writing +this) and many other X-related processes which take up the most CPU time for me. This is +a good way to monitor how hard your users are working your system.

+ +

top also supports monitoring processes by their PID, ignoring +idle and zombied processes, and many other options. The best place to get a handle on +these options is the man page for top.

+
+
+ +
+
+

Chapter 12 Essential System +Administration

+ +

Whoa whoa whoa whoa whoa.... I know what you're thinking. “I'm not a system +administrator! I don't even want to be a system administrator!”

+ +

Fact is, you are the administrator of any computers for which you have the root password. This might be your desktop box with one or two +users, or it might be a big server with several hundred. Regardless, you'll need to know +how to manage users, and how to shut down the system safely. These tasks seem simple, but +they have some quirks to keep in mind.

+ +
+
+

12.1 +Users and Groups

+ +

As mentioned in Chapter 8, you shouldn't normally use your system +logged in as root. Instead, you should create a normal user +account for everyday use, and use the root account only for system administration tasks. +To create a user, you can either use the tools supplied with Slackware, or you can edit +the password files by hand.

+ +
+
+

12.1.1 Supplied Scripts

+ +

The easiest way to manage users and groups is with the supplied scripts and programs. +Slackware includes the programs adduser, userdel(8), chfn(1), chsh(1), and passwd(1) for dealing with +users. The commands groupadd(8), groupdel(8), and groupmod(8) are for +dealing with groups. With the exception of chfn, chsh, and passwd, these programs are +generally only run as root, and are therefore located in /usr/sbin. chfn, chsh, and passwd can be run by anyone, and +are located in /usr/bin.

+ +

Users can be added with the adduser program. We'll start out +by going through the whole procedure, showing all the questions that are asked and a +brief description of what everything means. The default answer is in the brackets, and +can be chosen for almost all the questions, unless you really want to change +something.

+ + + + + +
+
+# adduser
+Login name for new user []: jellyd
+
+
+ +

This is the name that the user will use to login. Traditionally, login names are eight +characters or fewer, and all lowercase characters. (You may use more than eight +characters, or use digits, but avoid doing so unless you have a fairly important +reason.)

+ +

You can also provide the login name as an argument on the command line:

+ + + + + +
+
+# adduser jellyd
+
+
+ +

In either case, after providing the login name, adduser will prompt for the user +ID:

+ + + + + +
+
+User ID ('UID') [ defaults to next available ]:
+
+
+ +

The user ID (UID) is how ownerships are really determined in Linux. Each user has a +unique number, starting at 1000 in Slackware. You can pick a UID for the new user, or you +can just let adduser assign the user the next free one.

+ + + + + +
+
+Initial group [users]:
+
+
+ +

All users are placed into the users group by default. You +might want to place the new user into a different group, but it is not recommended unless +you know what you're doing.

+ + + + + +
+
+Additional groups (comma separated) []:
+
+
+ +

This question allows you to place the new user into additional groups. It is possible +for a user to be in several groups at the same time. This is useful if you have +established groups for things like modifying web site files, playing games, and so on. +For example, some sites define group wheel as the only group +that can use the su command. Or, a default Slackware +installation uses the sys group for users authorized to play +sounds through the internal sound card.

+ + + + + +
+
+Home directory [/home/jellyd]
+
+
+ +

Home directories default to being placed under /home. If you +run a very large system, it's possible that you have moved the home directories to a +different location (or to many locations). This step allows you to specify where the +user's home directory will be.

+ + + + + +
+
+Shell [ /bin/bash ]
+
+
+ +

bash is the default shell for Slackware Linux, and will be +fine for most people. If your new user comes from a Unix background, they may be familiar +with a different shell. You can change their shell now, or they can change it themselves +later using the chsh command.

+ + + + + +
+
+Expiry date (YYYY-MM-DD) []:
+
+
+ +

Accounts can be set up to expire on a specified date. By default, there is no +expiration date. You can change that, if you'd like. This option might be useful for +people running an ISP who might want to make an account expire upon a certain date, +unless they receive the next year's payment.

+ + + + + +
+
+New account will be created as follows:
+---------------------------------------
+Login name:         jellyd
+UID:                [ Next available ]
+Initial group:      users
+Additional groups:  [ None ]
+Home directory:     /home/jellyd
+Shell:              /bin/bash
+Expiry date:        [ Never ]
+
+
+ +

This is it... if you want to bail out, hit Control+C. Otherwise, press ENTER to go ahead and +make the account.

+ +

You now see all the information that you've entered about the new account and are +given the opportunity to abort the account creation. If you entered something +incorrectly, you should hit Control+C and +start over. Otherwise, you can hit enter and the account +will be made.

+ + + + + +
+
+Creating new account...
+
+Changing the user information for jellyd
+Enter the new value, or press return for the default
+        Full Name []: Jeremy
+        Room Number []: Smith 130
+        Work Phone []:
+        Home Phone []:
+        Other []:
+
+
+ +

All of this information is optional. You don't have to enter any of this if you don't +want to, and the user can change it at any time using chfn. +However, you might find it helpful to enter at least the full name and a phone number, in +case you need to get in touch with the person later.

+ + + + + +
+
+Changing password for jellyd
+Enter the new password (minimum of 5, maximum of 127 characters)
+Please use a combination of upper and lower case letters and numbers.
+New password:
+Re-enter new password:
+Password changed.
+
+Account setup complete.
+
+
+ +

You'll have to enter a password for the new user. Generally, if the new user is not +physically present at this point, you'll just pick some default password and tell the +user to change it to something more secure.

+ +
+ + + + + +
Note +

Choosing a Password: Having a +secure password is the first line of defense against getting cracked. You do not want to +have an easily guessed password, because that makes it easier for someone to break into +your system. Ideally, a secure password would be a random string of characters, including +upper and lowercase letters, numbers, and random characters. (A tab character might not +be a wise choice, depending on what kinds of computers you'll be logging in from.) There +are many software packages that can generate random passwords for you; search the +Internet for these utilities.

+ +

In general, just use common sense: don't pick a password that is someone's birthday, a +common phrase, something found on your desk, or anything that is easily associated with +you. A password like “secure1” or any other password you see in print or +online is also bad.

+
+
+ +

Removing users is not difficult at all. Just run userdel with +the name of the account to remove. You should verify that the user is not logged in, and +that no processes are running as that user. Also, remember that once you've deleted the +user, all of that user's password information is gone permanently.

+ + + + + +
+
+# userdel jellyd
+
+
+ +

This command removes that annoying jellyd user from your +system. Good riddance! :) The user is removed from the /etc/passwd, /etc/shadow, and /etc/group files, but doesn't remove the user's home directory.

+ +

If you'd wanted to remove the home directory as well, you would instead use this +command:

+ + + + + +
+
+# userdel -r jellyd
+
+
+ +

Temporarily disabling an account will be covered in the next section on passwords, +since a temporary change involves changing the user's password. Changing other account +information is covered in Section +12.1.3.

+ +

The programs to add and remove groups are very simple. groupadd will just add another entry to the /etc/group file with a unique group ID, while groupdel will remove the specified group. It is up to you to edit +/etc/group to add users to a specific group. For example, to +add a group called cvs:

+ + + + + +
+
+# groupadd cvs
+
+
+ +

And to remove it:

+ + + + + +
+
+# groupdel cvs
+
+
+
+ +
+
+

12.1.2 Changing Passwords

+ +

The passwd program changes passwords by modifying the /etc/shadow file. This file holds all the passwords for the system +in an encrypted format. In order to change your own password, you would type:

+ + + + + +
+
+% passwd
+Changing password for chris
+Old password:
+Enter the new password (minumum of 5, maximum of 127 characters)
+Please use a combination of upper and lower case letters and numbers.
+New password:
+
+
+ +

As you can see, you are prompted to enter your old password. It won't appear on the +screen as you type it, just like when you log in. Then, you are prompted to enter the new +password. passwd performs a lot of checks on your new password, +and it will complain if your new password doesn't pass its checks. You can ignore its +warnings if you want. You will be prompted to enter your new password a second time for +confirmation.

+ +

If you are root, you can also change another user's +password:

+ + + + + +
+
+# passwd ted
+
+
+ +

You will then have to go through the same procedure as above, except that you won't +have to enter the user's old password. (One of the many benefits of being root...)

+ +

If needed, you can also temporarily disable an account, and reenable it at a later +time if needed. Both disabling an account and reenabling an account can be done with passwd. To disable an account, do the following as root:

+ + + + + +
+
+# passwd -l david
+
+
+ +

This will change david's password to something that can never match any encrypted +value. You would reenable the account by using:

+ + + + + +
+
+# passwd -u david
+
+
+ +

Now, david's account is back to normal. Disabling an account might be useful if the +user doesn't play by the rules you've set up on your system, or if they've exported a +very large copy of xeyes(1) to your X desktop.

+
+ +
+
+

12.1.3 Changing User Information

+ +

There are two pieces of information that users can change at any time: their shell and +their finger information. Slackware Linux uses chsh (change +shell) and chfn (change finger) to modify these values.

+ +

A user can pick any shell that is listed in the /etc/shells +file. For most people, /bin/bash will do just fine. Others might +be familiar with a shell found on their system at work or school and want to use what +they already know. To change your shell, use chsh:

+ + + + + +
+
+% chsh
+Password:
+Changing the login shell for chris
+Enter the new value, or press return for the default
+        Login Shell [/bin/bash]:
+
+
+ +

After entering your password, enter the full path to the new shell. Make sure that +it's listed in the /etc/shells(5) file first. The root user can also change any user's shell by running chsh with a username as the argument.

+ +

The finger information is the optional information such as your full name, phone +numbers, and room number. This can be changed using chfn, and +follows the same procedure as it did during account creation. As usual, root can change anyone's finger information.

+
+
+ +
+
+

12.2 Users and Groups, the Hard Way

+ +

Of course, it is possible to add, modify, and remove users and groups without using +the scripts and programs that come with Slackware. It's not really difficult, although +after reading this process, you'll probably find it much easier to use the scripts. +However, it's important to know how your password information is actually stored, in case +you ever need to recover this information and don't have the Slackware tools +available.

+ +

First, we'll add a new user to the /etc/passwd(5), /etc/shadow(5), and /etc/group(5) files. +The passwd file holds some information about the users on your +system, but (strangely enough) not their passwords. This was once the case, but was +halted long ago for security reasons. The passwd file must be readable by all users, but +you don't want encrypted passwords world-readable, as would-be intruders can use the +encrypted passwords as a starting point for decrypting a user's password. Instead, the +encrypted passwords are kept in the shadow file, which is only readable by root, and +everyone's password is entered into the passwd file simply as +“x”. The group file +lists all the groups and who is in each.

+ +

You can use the vipw command to edit the /etc/passwd file safely, and the vigr +command to edit the /etc/group file safely. Use vipw -s to edit the /etc/shadow file +safely. (“Safely” in this context means someone else won't be able to modify +the file you're editing at the moment. If you're the only administrator of your system, +you're probably safe, but it's best to get into good habits from the start.)

+ +

Let's examine the /etc/passwd file and look at how to add a +new user. A typical entry in passwd looks like this:

+ + + + + +
+
+chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash
+
+
+ +

Each line is an entry for one user, and fields on each line are separated by a colon. +The fields are the login name, encrypted password (“x” for everyone on a Slackware system, since Slackware uses +shadow passwords), user ID, group ID, the optional finger information (separated by +commas), home directory, and shell. To add a new user by hand, add a new line at the end +of the file, filling in the appropriate information.

+ +

The information you add needs to meet some requirements, or your new user may have +problems logging in. First, make sure that the password field is an x, and that both the user name and user ID is unique. Assign the +user a group, either 100 (the “users” group in Slackware) or your default +group (use its number, not its name). Give the user a valid home directory (which you'll +create later) and shell (remember, valid shells are listed in /etc/shells).

+ +

Next, we'll need to add an entry in the /etc/shadow file, which holds the encrypted +passwords. A typical entry looks like this:

+ + + + + +
+
+chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::
+
+
+ +

Again, each line is an entry for one person, with each field delimited by a colon. The +fields are (in order) login name, encrypted password, days since the Epoch (January 1, +1970) that the password was last changed, days before the password may be changed, days +after which the password must be changed, days before password expiration that the user +is notified, days after expiration that the account is disabled, days since the Epoch +that the account is disabled, and a reserved field.

+ +

As you can see, most of that is for account expiration information. If you aren't +using expiration information, you only need to fill in a few fields with some special +values. Otherwise, you'll need to do some calculations and decision making before you can +fill those fields in. For a new user, just put some random garbage in the password field. +Don't worry about what the password is right now, because you're going to change it in a +minute. The only character you cannot include in the password field is a colon. Leave the +“days since password was changed” field blank as well. Fill in 0, 99999, and 7 just as you see in the example entry, and leave the other fields +blank.

+ +

(For those of you who think you see my encrypted password above and believe you've got +a leg up on breaking into my system, go right ahead. If you can crack that password, +you'll know the password to a firewalled test system. Now that's useful :) )

+ +

All normal users are members of the “users” +group on a typical Slackware system. However, if you want to create a new group, or add +the new user to additional groups, you'll need to modify the /etc/group file. Here is a typical entry:

+ + + + + +
+
+cvs::102:chris,logan,david,root
+
+
+ +

The fields are group name, group password, group ID, and group members, separated by +commas. Creating a new group is a simple matter of adding a new line with a unique group +ID, and listing all the users you want to be in the group. Any users that are in this new +group and are logged in will have to log out and log back in for those changes to take +effect.

+ +

At this point, it might be a good idea to use the pwck and +grpck commands to verify that the changes you've made are +consistent. First, use pwck -r and grpck +-r: the -r switch makes no changes, but lists the changes +you would be asked to make if you ran the command without the switch. You can use this +output to decide whether you need to further modify any files, to run pwck or grpck without the -r switch, or to simply leave your changes as they are.

+ +

At this point, you should use the passwd command to create a +proper password for the user. Then, use mkdir to create the new +user's home directory in the location you entered into the /etc/passwd file, and use chown to change +the owner of the new directory to the new user.

+ +

Removing a user is a simple matter of deleting all of the entries that exist for that +user. Remove the user's entry from /etc/passwd and /etc/shadow, and remove the login name from any groups in the /etc/group file. If you wish, delete the user's home directory, the +mail spool file, and his crontab entry (if they exist).

+ +

Removing groups is similar: remove the group's entry from /etc/group.

+
+ +
+
+

12.3 Shutting Down Properly

+ +

It is very important that you shut down your system properly. Simply turning the power +off with the power switch can cause serious filesystem damage. While the system is on, +files are in use even if you aren't doing anything. Remember that there are many +processes running in the background all the time. These processes are managing the system +and keep a lot of files open. When the system's power is switched off, these files are +not closed properly and may become corrupted. Depending on what files become damaged, the +system might be rendered completely unusable! In any case, you'll have to go through a +long filesystem check procedure on the next reboot.

+ +
+ + + + + +
Note +

If you configured your system with a journalling filesystem, like ext3 or reiserfs, +you'll be partially protected from filesystem damage, and your filesystem check on reboot +will be shorter than if you had used a filesystem without journalling, like ext2. +However, this safety net is no excuse for improperly shutting down your system! A +journalling FS is meant to protect your files from events beyond your control, not from +your own laziness.

+
+
+ +

In any case, when you want to reboot or power down your computer, it is important to +do so properly. There are several ways of doing so; you can pick whichever one you think +is the most fun (or least amount of work). Since a shutdown and a reboot are similar +procedures, most of the ways for powering off the system can also be applied to +rebooting.

+ +

The first method is through the shutdown(8) program, and it +is probably the most popular. shutdown can be used to reboot or +turn off the system at a given time, and can display a message to all the logged-in users +of the system telling them that the system is going down.

+ +

The most basic use of shutdown to power down the computer is:

+ + + + + +
+
+# shutdown -h now
+
+
+ +

In this case, we are not going to send a custom message to the users; they will see +shutdown's default message. “now” is the time that we want to shutdown, and the “-h” means to halt the system. This is not a very friendly way +to run a multi-user system, but it works just fine on your home computer. A better method +on a multiuser system would be to give everyone a little advance warning:

+ + + + + +
+
+# shutdown -h +60
+
+
+ +

This would shutdown the system in one hour (60 minutes), which would be just fine on a +normal multiuser system. Vital systems should have their downtime scheduled far in +advance, and you should post warnings about the downtime in any appropriate locations +used for system notifications (email, bulletin board, /etc/motd, whatever).

+ +

Rebooting the system uses the same command, but substitutes “-r” for “-h”:

+ + + + + +
+
+# shutdown -r now
+
+
+ +

You can use same time notation with shutdown -r that you +could with shutdown -h. There are a lot of other things that you +can do with shutdown to control when to halt or reboot the +machine; see the man page for more details.

+ +

The second way of shutting down or powering off the computer is to use the halt(8) and reboot(8) commands. As the +names indicate, halt will immediately halt the operating system, +and reboot will reboot the system. (reboot is actually just a symbolic link to halt.) They are invoked like so:

+ + + + + +
+
+# halt
+# reboot
+
+
+ +

A lower-level way to reboot or shutdown the system is to talk directly to init. All the other methods are simply convenient ways to talk to +init, but you can directly tell it what to do using telinit(8) (note that it only has one “l”). Using telinit will tell init what runlevel to +drop into, which will cause a special script to be run. This script will kill or spawn +processes as needed for that runlevel. This works for rebooting and shutting down because +both of those are special runlevels.

+ + + + + +
+
+# telinit 0
+
+
+ +

Runlevel 0 is halt mode. Telling init to enter runlevel 0 +will cause all processes to be killed off, the filesystems unmounted, and the machine to +be halted. This is a perfectly acceptable way to bring down the system. On many laptops +and modern desktop computers, this will also cause the machine to be turned off.

+ + + + + +
+
+# telinit 6
+
+
+ +

Runlevel 6 is reboot mode. All processes will be killed off, the filesystems will be +unmounted, and the machine will be rebooted. This is a perfectly acceptable method of +rebooting the system.

+ +

For the curious, when switching to runlevel 0 or 6, whether by using shutdown, halt, or reboot, the script /etc/rc.d/rc.6 is run. +(The script /etc/rc.d/rc.0 is another symbolic link, to /etc/rc.d/rc.6.) You can customize this file to your tastes--but be +sure to test your changes carefully!

+ +

There is one last method of rebooting the system. All the other methods require you to +be logged in as root. However, it is possible to reboot the +machine even if you aren't root, provided that you have physical access to the keyboard. +Using Control+Alt+Delete (the "three-fingered salute") will cause the machine to +immediately reboot. (Behind the scenes, the shutdown command is +called for you when you use Control+Alt+Delete.) The salute doesn't always work when using X Windows--you may +need to use Control+Alt+F1 (or another Function key) to switch to a non-X Windows terminal +before using it.

+ +

Finally, the file that ultimately controls every aspect of startup and shutdown is the +/etc/inittab(5) file. In general, you should not need to modify +this file, but it may give you insight into why some things work the way they do. As +always, see the man pages for further details.

+
+
+ +
+
+

Chapter 13 Basic +Network Commands

+ +

A network consists of several computers connected together. The network can be as +simple as a few computers connected in your home or office, or as complicated as a large +university network or even the entire Internet. When your computer is part of a network, +you have access to those systems either directly or through services like mail and the +web.

+ +

There are a variety of networking programs that you can use. Some are handy for +performing diagnostics to see if everything is working properly. Others (like mail +readers and web browsers) are useful for getting your work done and staying in contact +with other people.

+ +
+
+

13.1 ping

+ +

ping(8) sends an ICMP ECHO_REQUEST +packet to the specified host. If the host responds, you get an ICMP packet back. Sound +strange? Well, you can “ping” an IP address to see if a machine is alive. If +there is no response, you know something is wrong. Here is an example conversation +between two Linux users:

+ + +
+

User +A: Loki's down again.
+User +B: Are you sure?
+User +A: Yeah, I tried pinging it, but there's no response.

+
+ +

It's instances like these that make ping a very useful +day-to-day command. It provides a very quick way to see if a machine is up and connected +to the network. The basic syntax is:

+ + + + + +
+
+% ping www.slackware.com
+
+
+ +

There are, of course, several options that can be specified. Check the ping(1) man page for more information.

+
+ +
+
+

13.2 traceroute

+ +

Slackware's traceroute(8) command is a very useful network +diagnostic tool. traceroute displays each host that a packet +travels through as it tries to reach its destination. You can see how many +“hops” from the Slackware web site you are with this command:

+ + + + + +
+
+% traceroute www.slackware.com
+
+
+ +

Each host will be displayed, along with the response times at each host. Here is an +example output:

+ + + + + +
+
+% traceroute www.slackware.com
+traceroute to www.slackware.com (204.216.27.13), 30 hops max, 40 byte packets
+1  zuul.tdn (192.168.1.1)  0.409 ms  1.032 ms  0.303 ms
+2  207.171.227.254 (207.171.227.254)  18.218 ms  32.873 ms  32.433 ms
+3  border-sf-2-0-4.sirius.com (205.134.230.254) 15.662 ms 15.731 ms 16.142 ms
+4  pb-nap.crl.net (198.32.128.20)  20.741 ms  23.672 ms  21.378 ms
+5  E0-CRL-SFO-03-E0X0.US.CRL.NET (165.113.55.3) 22.293 ms 21.532 ms 21.29 ms
+6  T1-CDROM-00-EX.US.CRL.NET (165.113.118.2)  24.544 ms  42.955 ms 58.443 ms
+7  www.slackware.com (204.216.27.13)  38.115 ms  53.033 ms  48.328 ms
+
+
+ +

traceroute is similar to ping in +that it uses ICMP packets. There are several options that you can specify with traceroute. These options are explained in detail in the man +page.

+
+ +
+
+

13.3 DNS Tools

+ +

Domain Name Service (DNS for short) is that magical protocol that allows your computer +to turn meaningless domain names like www.slackware.com into meaningful IP address like +64.57.102.34. Computers can't route packets to www.slackware.com, +but they can route packets to that domain name's IP address. This gives us a convenient +way to remember machines. Without DNS we'd have to keep a mental database of just what IP +address belongs to what computer, and that's assuming the IP address doesn't change. +Clearly using names for computers is better, but how do we map names to IP addresses?

+ +
+
+

13.3.1 host

+ +

host(1) can do this for us. host is +used to map names to IP addresses. It is a very quick and simple utility without a lot of +functions.

+ + + + + +
+
+% host www.slackware.com
+www.slackware.com is an alias for slackware.com.
+slackware.com has address 64.57.102.34
+
+
+ +

But let's say for some reason we want to map an IP address to a domain name; what +then?

+
+ +
+
+

13.3.2 nslookup

+ +

nslookup is a tried and true program that has weathered the +ages. nslookup has been deprecated and may be removed from +future releases. There is not even a man page for this program.

+ + + + + +
+
+% nslookup 64.57.102.34
+Note:  nslookup is deprecated and may be removed from future releases.
+Consider using the `dig' or `host' programs instead.  Run nslookup with
+the `-sil[ent]' option to prevent this message from appearing.
+Server:         192.168.1.254
+Address:        192.168.1.254#53
+
+Non-authoritative answer:
+www.slackware.com       canonical name = slackware.com.
+Name:   slackware.com
+Address: 64.57.102.34
+
+
+
+ +
+
+

13.3.3 dig

+ +

The meanest dog in the pound, the domain information groper, dig(1) for short, is the go-to program for finding DNS information. +dig can grab just about anything from a DNS server including +reverse lookups, A, CNAME, MX, SP, and TXT records. dig has many +command line options and if you're not familiar with it you should read through it's +extensive man page.

+ + + + + +
+
+% dig @192.168.1.254 www.slackware.com mx
+
+; <<>> DiG 9.2.2 <<>> @192.168.1.254 www.slackware.com mx
+;; global options:  printcmd
+;; Got answer:
+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26362
+;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
+
+;; QUESTION SECTION:
+;www.slackware.com.             IN      MX
+
+;; ANSWER SECTION:
+www.slackware.com.      76634   IN      CNAME   slackware.com.
+slackware.com.          86400   IN      MX      1 mail.slackware.com.
+
+;; AUTHORITY SECTION:
+slackware.com.          86400   IN      NS      ns1.cwo.com.
+slackware.com.          86400   IN      NS      ns2.cwo.com.
+
+;; ADDITIONAL SECTION:
+ns1.cwo.com.            163033  IN      A       64.57.100.2
+ns2.cwo.com.            163033  IN      A       64.57.100.3
+
+;; Query time: 149 msec
+;; SERVER: 192.168.1.254#53(192.168.1.254)
+;; WHEN: Sat Nov  6 16:59:31 2004
+;; MSG SIZE  rcvd: 159
+
+
+ +

This should give you an idea how dig works. +“@192.168.1.254” specifies the dns server to use. +“www.slackware.com” is the domain name I am performing a lookup on, and +“mx” is the type of lookup I am performing. The above query tells me that +e-mail to www.slackware.com will instead be sent to mail.slackware.com for delivery.

+
+
+ +
+
+

13.4 finger

+ +

finger(1) will retrieve information about the specified user. +You give finger a username or an email address and it will try to contact the necessary +server and retrieve the username, office, telephone number, and other pieces of +information. Here is an example:

+ + + + + +
+
+% finger johnc@idsoftware.com
+
+
+ +

finger can return the username, mail status, phone numbers, +and files referred to as “dot plan” and “dot project”. Of course, +the information returned varies with each finger server. The one +included with Slackware returns the following information by default:

+ +
    +
  • +

    Username

    +
  • + +
  • +

    Room number

    +
  • + +
  • +

    Home phone number

    +
  • + +
  • +

    Work phone number

    +
  • + +
  • +

    Login status

    +
  • + +
  • +

    Email status

    +
  • + +
  • +

    Contents of the .plan file in the user's home directory

    +
  • + +
  • +

    Contents of the .project file in the user's home +directory

    +
  • +
+ +

The first four items can be set with the chfn command. It +stores those values in the /etc/passwd file. To change the +information in your .plan or .project +file, just edit them with your favorite text editor. They must reside in your home +directory and must be called .plan and .project.

+ +

Many users finger their own account from a remote machine to +quickly see if they have new email. Or, you can see a user's plan or current project.

+ +

Like many commands, finger has options. Check the man page +for more information on what special options you can use.

+
+ +
+
+

13.5 telnet

+ +

Someone once stated that telnet(1) was the coolest thing he +had ever seen on computers. The ability to remotely log in and do stuff on another +computer is what separates Unix and Unix-like operating systems from other operating +systems.

+ +

telnet allows you to log in to a computer, just as if you +were sitting at the terminal. Once your username and password are verified, you are given +a shell prompt. From here, you can do anything requiring a text console. Compose email, +read newsgroups, move files around, and so on. If you are running X and you telnet to another machine, you can run X programs on the remote +computer and display them on yours.

+ +

To login to a remote machine, use this syntax:

+ + + + + +
+
+% telnet <hostname>
+
+
+ +

If the host responds, you will receive a login prompt. Give it your username and +password. That's it. You are now at a shell. To quit your telnet session, use either the +exit command or the logout command.

+ +
+ + + + + +
Warning +

telnet does not encrypt the information it sends. Everything +is sent in plain text, even passwords. It is not advisable to use telnet over the Internet. Instead, consider the Secure Shell. It encrypts all traffic and is available for free.

+
+
+ +
+
+

13.5.1 The other use of telnet

+ +

Now that we have convinced you not to use the telnet protocol anymore to log into a +remote machine, we'll show you a couple of useful ways to use telnet.

+ +

You can also use the telnet command to connect to a host on a +certain port.

+ + + + + +
+
+% telnet <hostname> [port]
+
+
+ +

This can be quite handy when you quickly need to test a certain service, and you need +full control over the commands, and you need to see what exactly is going on. You can +interactively test or use an SMTP server, a POP3 server, an HTTP server, etc. this +way.

+ +

In the next figure you'll see how you can telnet to a HTTP +server on port 80, and get some basic information from it.

+ +
+

Figure 13-1. Telnetting to a webserver

+ + + + + +
+
+% telnet store.slackware.com 80
+Trying 69.50.233.153...
+Connected to store.slackware.com.
+Escape character is '^]'.
+HEAD / HTTP/1.0
+
+HTTP/1.1 200 OK
+Date: Mon, 25 Apr 2005 20:47:01 GMT
+Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
+Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
+ETag: "193424-c0-3e9fda6e"
+Accept-Ranges: bytes
+Content-Length: 192
+Connection: close
+Content-Type: text/html
+
+Connection closed by foreign host.
+%
+
+
+
+ +

You can do the same for other plain-text protocols, as long as you know what port to +connect to, and what the commands are.

+
+
+ +
+
+

13.6 The Secure shell

+ +

Today, secure shell basks in the adoration that telnet once +enjoyed. ssh(1) allows one to make a connection to a remote +machine and execute programs as if one were physically present; however, ssh encrypts all the data travelling between the two computers so +even if others intercept the conversation, they are unable to understand it. A typical +secure shell connection follows.

+ + + + + +
+
+% ssh carrier.lizella.net -l alan
+The authenticity of host 'carrier.lizella.net (192.168.1.253)' can't be
+established.
+RSA key fingerprint is 0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.
+Are you sure you want to continue connecting (yes/no)? yes
+Warning: Permanently added 'carrier.lizella.net' (RSA) to the list of
+known hosts.
+Password: password
+Last login: Sat Nov  6 16:32:19 2004 from 192.168.1.102
+Linux 2.4.26-smp.
+alan@carrier:~$ ls -l MANIFEST 
+-rw-r--r--  1 alan users 23545276 2004-10-28 20:04 MANIFEST
+alan@carrier:~$ exit
+logout
+Connection to carrier.lizella.net closed.
+
+
+ +

There you see me making an ssh connection to carrier.lizella.net, and checking the permissions on the MANIFEST file.

+
+ +
+
+

13.7 email

+ +

Electronic mail is one of the most popular things one can do on the Internet. In 1998, +it was reported that more electronic mail was sent than regular mail. It is indeed common +and useful.

+ +

Under Slackware, we provide a standard mail server, and several mail clients. All of +the clients discussed below are text-based. A lot of Windows users may be against this, +but you will find that a text based client is very convenient, especially when checking +mail remotely. Fear not, there are many graphical e-mail clients such as KDE's Kmail. If +you wish to use one of those check its help menu.

+ +
+
+

13.7.1 pine

+ +

pine(1) is not elm. Or so the saying +goes. The University of Washington created their program for Internet news and email out +of a need for an easy mail reader for their students. pine is +one of the most popular email clients in use today and is available for nearly every +flavor of Unix and even Windows.

+ +
+

Figure 13-2. The Pine main menu

+ +

+
+ +

You will see a menu of commands and a row of command keys at the bottom. pine is indeed a complex program, so we will not discuss every +feature about it here.

+ +

To see what's in your inbox, type i. Your messages are +listed with their date, author, and subject. Highlight the message you want and press +enter to view it. Pressing r +will start a reply to the message. Once you have written the response, type Ctrl+X to send it. You can press i to get back to the message listing.

+ +

If you want to delete a message, press d. It will mark +the highlighted message for deletion. pine deletes the mail when +you exit the program. pine also lets you store your mail in +folders. You can get a listing of folders by pressing l. At +the message listing, press s to save it to another folder. +It will ask for the folder name to write the message to.

+ +

pine offers many, many features; you should definitely have a +look at the man page for more information. It will contain the latest information about +the program.

+
+ +
+
+

13.7.2 elm

+ +

elm(1) is another popular text-based email client. Though not +quite as user friendly as pine, it's definitely been around a +lot longer.

+ +
+

Figure 13-3. Elm main screen

+ +

+
+ +

By default, you are placed in your inbox. The messages are listed with the message +number, date, sender, and subject. Use the arrow keys to highlight the message you want. +Press Enter to read the message.

+ +

To compose a new message, type m at the main screen. The +d key will flag a message for deletion. And the r key will reply to the current message you are reading. All of +these keys are displayed at the bottom of the screen with a prompt.

+ +

The man page discusses elm in more detail, so you will +probably want to consult that before using elm.

+
+ +
+
+

13.7.3 mutt

+ +

“All mail clients suck. This one just sucks less.” mutt's original interface was based on elm +with added features found in other popular mailclients, resulting in a hybrid mutt.

+ +

Some of mutt's features include:

+ +
    +
  • +

    color support

    +
  • + +
  • +

    message threading

    +
  • + +
  • +

    MIME and PGP/MIME support

    +
  • + +
  • +

    pop3 and imap support

    +
  • + +
  • +

    support for multiple mailbox formats (mbox, MMDF, MH, maildir)

    +
  • + +
  • +

    highly customizable

    +
  • +
+ +
+

Figure 13-4. Mutt main screen

+ +

+
+ +

if you're looking for a mail client that will let you be in total control over +everything, then you will like mutt. all the default settings +can be customized, keybindings can be changed. if you like to add a macro, you can.

+ +

you probably want to take a look at the muttrc manpage, +which will tell you how to configure everything. or take a look at the included example +muttrc file.

+
+ +
+
+

13.7.4 nail

+ +

nail(1) is a command line driven mail client. It is very +primitive and offers pretty much nothing in the way of user interfaces. However, mailx is +handy for times when you need to quickly mail something, scripting a bulk mailer, testing +your MTA installation or something similar. Note that Slackware creates symbolic links to +nail at /usr/bin/mail and /usr/bin/mailx. Any of these three commands executes the same +program. In fact, you will most likely see nail referred to as +mail.

+ +

The basic command line is:

+ + + + + +
+
+% mailx <subject> <to-addr>
+
+
+ +

mailx reads the message body from standard input. So you can +cat a file into this command to mail it, or you can just type text and hit Ctrl+D when finished with the message.

+ +

Here is an example of mailing a program source file to another person.

+ + + + + +
+
+% cat randomfunc.c | mail -s "Here's that function" asdf@example.net
+
+
+ +

The man page explains more of what nail can do, so you will +probably want to have a look at that before using it.

+
+
+ +
+
+

13.8 Browsers

+ +

The first thing that people think about when they hear the word Internet is +“surfing the net”. Or looking at websites using a web browser. This is +probably by far the most popular use of the Internet for the average user.

+ +

Slackware provides popular graphical web browsers in the “XAP” series, as +well as text mode browsers in the “N” series. We'll take a quick look at some +of the most common options below.

+ +
+
+

13.8.1 lynx

+ +

lynx(1) is a text-based web browser. It is a very quick way +of looking up something on the Internet. Sometimes graphics just get in the way if you +know exactly what you're after.

+ +

To start lynx, just type lynx at the +prompt:

+ + + + + +
+
+% lynx
+
+
+ +
+

Figure 13-5. Lynx default start page

+ +

+
+ +

You may want to specify a site for lynx to open to:

+ + + + + +
+
+% lynx http://www.slackware.com
+
+
+ +

lynx prints the command keys and what they do at the bottom +of the screen. The up and down arrow keys move around the document, Enter selects the highlighted link, and the left arrow goes back to the previous page. Typing d will download the currently selected file. The g command brings up the Go prompt, where you can give lynx a URL to open.

+ +

There are many other commands in lynx. You can either consult +the man page, or type h to get the help screen for more +information.

+
+ +
+
+

13.8.2 links

+ +

Just like lynx, links is a textmode +web browser, where you do all the navigation using the keyboard. However, when you press +the Esc key, it will activate a very convenient pulldown +menu on the top of the screen. This makes it very easy to use, without having to learn +all the keyboard shortcuts. People who do not use a text browser every day will +appreciate this feature.

+ +

links seems to have better support for both frames and +tables, when compared to lynx.

+ +
+

Figure 13-6. Links, with the file menu open

+ +

+
+
+ +
+
+

13.8.3 wget

+ +

wget(1) is a command line utility that will download files +from a specified URL. While not an actual web-browser, wget is +used primarily to grab whole or partial web sites for offline viewing, or for fast +download of single files from HTTP or FTP servers instead. The basic syntax is:

+ + + + + +
+
+% wget <url>
+
+
+ +

You can also pass options. For example, this will download the Slackware web site:

+ + + + + +
+
+% wget --recursive http://www.slackware.com
+
+
+ +

wget will create a www.slackware.com directory and store the files in there, just as +the site does.

+ +

wget can also download files from FTP sites; just specify an +FTP URL instead of an HTTP one.

+ + + + + +
+
+% wget ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
+--12:18:16--  ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
+           => `wget-1.8.2.tar.gz'
+Resolving ftp.gnu.org... done.
+Connecting to ftp.gnu.org[199.232.41.7]:21... connected.
+Logging in as anonymous ... Logged in!
+==> SYST ... done.   ==> PWD ... done.
+==> TYPE I ... done. ==> CWD /gnu/wget ... done.
+==> PORT ... done.   ==> RETR wget-1.8.2.tar.gz ... done.
+Length: 1,154,648 (unauthoritative)
+
+100%[==================================>] 1,154,648     209.55K/s    ETA 00:00
+
+12:18:23 (209.55KB/s) - `wget-1.8.2.tar.gz' saved [1154648]
+
+
+ +

wget has many more options, which make it nice for site +specific scripts (web site mirroring and so forth). The man page should be consulted for +more information.

+
+
+ +
+
+

13.9 FTP Clients

+ +

FTP stands for the File Transfer Protocol. It allows you to send and receive files +between two computers. There is the FTP server and the FTP client. We discuss the client +in this section.

+ +

For the curious, the “client” is you. The “server” is the +computer that answers your FTP request and lets you login. You will download files from +and upload files to the server. The client cannot accept FTP connections, it can only +connect to servers.

+ +
+
+

13.9.1 ftp

+ +

To connect to an FTP server, simply run the ftp(1) command +and specify the host:

+ + + + + +
+
+% ftp <hostname> [port]
+
+
+ +

If the host is running an FTP server, it will ask for a username and password. You can +log in as yourself or as “anonymous”. Anonymous FTP sites are very popular +for software archives. For example, to get Slackware Linux via FTP, you must use +anonymous FTP.

+ +

Once connected, you will be at the ftp> prompt. There +are special commands for FTP, but they are similar to other standard commands. The +following shows some of the basic commands and what they do:

+ +
+

Table 13-1. ftp commands

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandPurpose
lsList files
cd <dirname>Change directory
binSet binary transfer mode
asciiSet ASCII transfer mode
get <filename>Download a file
put <filename>Upload a file
hashToggle hash mark stats indicator
tickToggle byte counter indicator
promToggle interactive mode for downloads
mget <mask>Download a file or group of files; wildcards are allowed
mput <mask>Upload a file or group of files; wildcards are allowed
quitLog off the FTP server
+
+ +

You can also use some of the following commands which are quite self-explanatory: chmod, delete, rename, rmdir. For a complete list of all +commands and their meaning, just type help or ? and you'll see a complete listing on screen.

+ +

FTP is a fairly simple program to use, but lacks the user interface that many of us +are used to nowadays. The man page discusses some of the command line options for ftp(1).

+ + + + + +
+
+ftp> ls *.TXT
+200 PORT command successful.
+150 Opening ASCII mode data connection for /bin/ls.
+-rw-r--r--   1 root     100         18606 Apr  6  2002 BOOTING.TXT
+-rw-r--r--   1 root     100         10518 Jun 13  2002 COPYRIGHT.TXT
+-rw-r--r--   1 root     100           602 Apr  6  2002 CRYPTO_NOTICE.TXT
+-rw-r--r--   1 root     100         32431 Sep 29 02:56 FAQ.TXT
+-rw-r--r--   1 root     100        499784 Mar  3 19:29 FILELIST.TXT
+-rw-r--r--   1 root     100        241099 Mar  3 19:12 PACKAGES.TXT
+-rw-r--r--   1 root     100         12339 Jun 19  2002 README81.TXT
+-rw-r--r--   1 root     100         14826 Jun 17  2002 SPEAKUP_DOCS.TXT
+-rw-r--r--   1 root     100         15434 Jun 17  2002 SPEAK_INSTALL.TXT
+-rw-r--r--   1 root     100          2876 Jun 17  2002 UPGRADE.TXT
+226 Transfer complete.
+ftp> tick
+Tick counter printing on (10240 bytes/tick increment).
+ftp> get README81.TXT
+local: README81.TXT remote: README81.TXT
+200 PORT command successful.
+150 Opening BINARY mode data connection for README81.TXT (12339 bytes).
+Bytes transferred: 12339
+226 Transfer complete.
+12339 bytes received in 0.208 secs (58 Kbytes/sec)
+
+
+
+ +
+
+

13.9.2 ncftp

+ +

ncftp(1) (pronounced "Nik-F-T-P") is an alternative to the +traditional ftp client that comes with Slackware. It is still a text-based program, but +offers many advantages over ftp, including:

+ +
    +
  • +

    Tab completion

    +
  • + +
  • +

    Bookmarks file

    +
  • + +
  • +

    More liberal wildcard uses

    +
  • + +
  • +

    Command history

    +
  • +
+ +

By default, ncftp will try to log in anonymously to the +server you specify. You can force ncftp to present a login +prompt with the “-u” option. Once logged in, you +can use the same commands as in ftp, only you'll notice a nicer +interface, one that works more like bash.

+ + + + + +
+
+ncftp /pub/linux/slackware > cd slackware-current/
+Please read the file README81.TXT
+  it was last modified on Wed Jun 19 16:24:21 2002 - 258 days ago
+CWD command successful.
+ncftp ...ware/slackware-current > ls
+BOOTING.TXT               FAQ.TXT                   bootdisks/
+CHECKSUMS                 FILELIST.TXT              extra/
+CHECKSUMS.asc             GPG-KEY                   isolinux/
+CHECKSUMS.md5             PACKAGES.TXT              kernels/
+CHECKSUMS.md5.asc         PRERELEASE_NOTES          pasture/
+COPYING                   README81.TXT              rootdisks/
+COPYRIGHT.TXT             SPEEKUP_DOCS.TXT          slackware/
+CRYPTO_NOTICE.TXT         SPEEK_INSTALL.TXT         source/
+CURRENT.WARNING           Slackware-HOWTO
+ChangeLog.txt             UPGRADE.TXT
+ncftp ...ware/slackware-current > get README81.TXT
+README81.TXT:                                           12.29 kB  307.07 kB/s
+
+
+
+
+ +
+
+

13.10 Talking to Other People

+ +
+

13.10.1 wall

+ +

wall(1) is a quick way to write a message to the users on a +system. The basic syntax is:

+ + + + + +
+
+% wall [file]
+
+
+ +

This will result in the contents of [file] being displayed on the terminals of all +currently logged in users. If you don't specify a file, wall will read from standard +input, so you can just type your message, and end with Ctrl+d.

+ +

wall doesn't have many features, and apart from letting your +users know that you're about to do some serious maintenance to the system, or even reboot +it, so they have time to save their work and log off :)

+
+ +
+
+

13.10.2 talk

+ +

talk(1) allows two users to chat. It splits the screen in +half, horizontally. To request a chat with another user, use this command:

+ + + + + +
+
+% talk <person> [ttyname]
+
+
+ +
+

Figure 13-7. Two users in a talk session

+ +

+
+ +

If you specify just a username, the chat request is assumed to be local, so only local +users are queried. The ttyname is required if you want to ring a user on a specific +terminal (if the user is logged in more than once). The required information for talk can be obtained from the w(1) +command.

+ +

talk can also ring users on remote hosts. For the username +you simply specify an email address. talk will try to contact +that remote user on that host.

+ +

talk is somewhat limited. It only supports two users and is +half-duplex.

+
+ +
+
+

13.10.3 ytalk

+ +

ytalk(1) is a backwards compatible replacement for talk. It comes with Slackware as the ytalk +command. The syntax is similar, but has a few differences:

+ + + + + +
+
+% ytalk <username>[#ttyname]
+
+
+ +
+

Figure 13-8. Two users in a ytalk session

+ +

+
+ +

The username and terminal are specified the same as under talk, except you must put +them together with the hash mark (#).

+ +

ytalk offers several advantages:

+ +
    +
  • +

    It supports more than two users.

    +
  • + +
  • +

    A menu of options that can be brought up anytime with Esc.

    +
  • + +
  • +

    You can shell out while still in the talk session.

    +
  • + +
  • +

    Plus more...

    +
  • +
+ +

If you're a server administrator, you'll want to make sure that the ntalk port is enabled in /etc/inetd.conf. +ytalk needs that to work properly.

+
+
+
+ +
+
+

Chapter 14 Security

+ +

Security on any system is important; it can prevent people launching attacks from your +machine, as well as protect sensitive data. This chapter is all about how to start +securing your Slackware box against script kiddies, crackers and rogue hamsters alike. +Bear in mind that this is only the start of securing a system; security is a process, not +a state.

+ +
+
+

14.1 Disabling +Services

+ +

The first step after installing Slackware should be to disable any services you don't +need. Any services could potentially pose a security risk, so it is important to run as +few services as possible (i.e. only those that are needed). Services are started from two +main places - inetd and init scripts.

+ +
+
+

14.1.1 Services started from inetd

+ +

A lot of the daemons that come with Slackware are run from inetd(8). inetd is a daemon that listens on +all of the ports used by services configured to be started by it and spawns an instance +of the relevant daemon when a connection attempt is made. Daemons started from inetd can be disabled by commenting out the relevant lines in /etc/inetd.conf. To do this, open this file in your favorite editor +(e.g. vi) and you should see lines similar to this:

+ + + + + +
+
+telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
+
+
+ +

You can disable this service, and any others you don't need, by commenting them out +(i.e. adding a # (hash) symbol to the beginning of the line). +The above line would then become:

+ + + + + +
+
+#telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
+
+
+ +

After inetd has been restarted, this service will be +disabled. You can restart inetd with the command:

+ + + + + +
+
+# kill -HUP $(cat /var/run/inetd.pid)
+
+
+
+ +
+
+

14.1.2 Services started from init +scripts

+ +

The rest of the services started when the machine starts are started from the init +scripts in /etc/rc.d/. These can be disabled in two different +ways, the first being to remove the execute permissions on the relevant init script and +the second being to comment out the relevant lines in the init scripts.

+ +

For example, SSH is started by its own init script at /etc/rc.d/rc.sshd. You can disable this using:

+ + + + + +
+
+# chmod -x /etc/rc.d/rc.sshd
+
+
+ +

For services that don't have their own init script, you will need to comment out the +relevant lines in the init scripts to disable them. For example, the portmap daemon is +started by the following lines in /etc/rc.d/rc.inet2:

+ + + + + +
+
+# This must be running in order to mount NFS volumes.
+# Start the RPC portmapper:
+if [ -x /sbin/rpc.portmap ]; then
+  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
+  /sbin/rpc.portmap
+fi
+# Done starting the RPC portmapper.
+
+
+ +

This can be disabled by adding # symbols to the beginnings +of the lines that don't already start with them, like so:

+ + + + + +
+
+# This must be running in order to mount NFS volumes.
+# Start the RPC portmapper:
+#if [ -x /sbin/rpc.portmap ]; then
+#  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
+#  /sbin/rpc.portmap
+#fi
+# Done starting the RPC portmapper.
+
+
+ +

These changes will only take effect after either a reboot or changing from and back to +runlevel 3 or 4. You can do this by typing the following on the console (you will need to +log in again after changing to runlevel 1):

+ + + + + +
+
+# telinit 1
+# telinit 3
+
+
+
+
+ +
+
+

14.2 Host Access +Control

+ +
+

14.2.1 iptables

+ +

iptables is the packet filtering configuration program for +Linux 2.4 and above. The 2.4 kernel (2.4.5, to be exact) was first introduced into +Slackware (as an option) in version 8.0 and was made the default in Slackware 8.1. This +section only covers the basics of its usage and you should check http://www.netfilter.org/ for more +details. These commands can be entered into /etc/rc.d/rc.firewall, which has to be set as executable for these +rules to take effect at startup. Note that incorrect iptables +commands can essentially lock you out of your own machine. Unless you are 100% confident +in your skills, always ensure you have local access to the machine.

+ +

The first thing most people should do is set the default policy for each inbound chain +to DROP:

+ + + + + +
+
+# iptables -P INPUT DROP
+# iptables -P FORWARD DROP
+
+
+ +

When everything is denied, you can start allowing things. The first thing to allow is +any traffic for sessions which are already established:

+ + + + + +
+
+# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+
+
+ +

So as not to break any applications that communicate using the loopback address, it is +usually wise to add a rule like this:

+ + + + + +
+
+# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
+
+
+ +

This rules allows any traffic to and from 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) on +the loopback (lo) interface. When creating rules, it is a good +idea to be as specific as possible, to make sure that your rules do not inadvertently +allow anything evil. That said, rules that allow too little mean more rules and more +typing.

+ +

The next thing to do would be to allow access to specific services running on your +machine. If, for example, you wanted to run a web server on your machine, you would use a +rule similar to this:

+ + + + + +
+
+# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
+
+
+ +

This will allow access from any machine to port 80 on your machine via the ppp0 interface. You may want to restrict access to this service so +that only certain machines can access it. This rule allows access to your web service +from 64.57.102.34:

+ + + + + +
+
+# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT
+
+
+ +

Allowing ICMP traffic can be useful for diagnostic purposes. To do this, you would use +a rule like this:

+ + + + + +
+
+# iptables -A INPUT -p icmp -j ACCEPT
+
+
+ +

Most people will also want to set up Network Address Translation (NAT) on their +gateway machine, so that other machines on their network can access the Internet through +it. You would use the following rule to do this:

+ + + + + +
+
+# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
+
+
+ +

You will also need to enable IP forwarding. You can do this temporarily, using the +following command:

+ + + + + +
+
+# echo 1 > /proc/sys/net/ipv4/ip_forward
+
+
+ +

To enable IP forwarding on a more permanent basis (i.e. so that the change is kept +after a reboot), you will need to open the file /etc/rc.d/rc.inet2 in your favorite editor and change the following +line:

+ + + + + +
+
+IPV4_FORWARD=0
+
+
+ +

...to this:

+ + + + + +
+
+IPV4_FORWARD=1
+
+
+ +

For more information on NAT, see the NAT +HOWTO.

+
+ +
+
+

14.2.2 tcpwrappers

+ +

tcpwrappers controls access to daemons at the application +level, rather than at the IP level. This can provide an extra layer of security at times +when IP-level access controls (e.g. Netfilter) are not functioning correctly. For +example, if you recompile the kernel but forget to include iptables support, your IP +level protection will fail but tcpwrappers will still help protect your system.

+ +

Access to services protected by tcpwrappers can be controlled using /etc/hosts.allow and /etc/hosts.deny.

+ +

The majority of people would have a single line in their /etc/hosts.deny file to deny access to all daemons by default. This +line would be:

+ + + + + +
+
+ALL : ALL
+
+
+ +

When this is done, you can concentrate on allowing access to services for specified +hosts, domains, or IP ranges. This can be done in the /etc/hosts.allow file, which follows the same format.

+ +

A lot of people would start by accepting all connections from localhost. This can be achieved using:

+ + + + + +
+
+ALL : 127.0.0.1
+
+
+ +

To allow access to SSHd from 192.168.0.0/24, you could use +either of the following rules:

+ + + + + +
+
+sshd : 192.168.0.0/24
+sshd : 192.168.0.
+
+
+ +

It is also possible to restrict access to hosts in certain domains. This can be done +using the following rule (note that this relies on the reverse DNS entry for the +connecting host being trustworthy, so I would recommand against its use on +Internet-connected hosts):

+ + + + + +
+
+sshd : .slackware.com
+
+
+
+
+ +
+
+

14.3 Keeping +Current

+ +
+

14.3.1 slackware-security mailing list

+ +

Whenever a security problem affects Slackware, an email is sent to all subscribers to +the slackware-security@slackware.com mailing list. Reports are +sent out for vulnerabilities of any part of Slackware, apart from the software in /extra or /pasture. These security +announcement emails include details on obtaining updated versions of Slackware packages +or work-arounds, if any.

+ +

Subscribing to Slackware mailing lists is covered in Section 2.2.2.

+
+ +
+
+

14.3.2 +The /patches directory

+ +

Whenever updated packages are released for a version of Slackware (usually only to fix +a security problem, in the case of already released Slackware versions), they are placed +in the /patches directory. The full path to these patches will +depend on the mirror you are using, but will take the form /path/to/slackware-x.x/patches/.

+ +

Before installing these packages, it is a good idea to verify the md5sum of the package. md5sum(1) is a +commandline utility that creates a “unique” mathematical hash of the file. If +a single bit of the file has been changed, it will generate a different md5sum value.

+ + + + + +
+
+% md5sum package-<ver>-<arch>-<rev>.tgz
+6341417aa1c025448b53073a1f1d287d  package-<ver>-<arch>-<rev>.tgz
+
+
+ +

You should then check this against the line for the new package in the CHECKSUMS.md5 file in the root of the slackware-$VERSION directory (also +in the /patches directory for patches) or in the email to the +slackware-security mailing list.

+ +

If you have a file with the md5sum values in it, you can source it instead with the +-c option to md5sum.

+ + + + + +
+
+# md5sum -c CHECKSUMS.md5
+./ANNOUNCE.10_0: OK
+./BOOTING.TXT: OK
+./COPYING: OK
+./COPYRIGHT.TXT: OK
+./CRYPTO_NOTICE.TXT: OK
+./ChangeLog.txt: OK
+./FAQ.TXT: FAILED
+
+
+ +

As you can see, any files that md5sum evaluates as correct +are listed “OK” while files that fail are labelled +“FAILED”. (Yes, this was an insult to your +intelligence. Why do you put up with me?)

+
+
+
+ +
+
+

Chapter 15 Archive Files

+ +
+

15.1 gzip

+ +

gzip(1) is the GNU compression program. It takes a single +file and compresses it. The basic usage is as follows:

+ + + + + +
+
+% gzip filename
+
+
+ +

The resulting file will be named filename.gz and will usually be smaller than the input +file. Note that filename.gz will replace filename. This means that filename will +no longer exist, even though a gzipped copy will. Regular text files will compress +nicely, while jpeg images, mp3s, and other such files will not compress too well as they +are already compressed. This basic usage is a balance of final file size and compression +time. The maximum compression can be achieved like so:

+ + + + + +
+
+% gzip -9 filename
+
+
+ +

This will take a longer time to compress the file, but the result will be as small as +gzip can make it. Using lower values for the command line option +will cause it to compress faster, but the file will not be as compressed.

+ +

Decompressing gzipped files can be done using two commands, which are really just the +same program. gzip will decompress any file with a recognized +file extension. A recognized extension can be any of the following: .gz, -gz, .z, +-z, .Z, or -Z. The first method is to call gunzip(1) +on a file, like so:

+ + + + + +
+
+% gunzip filename.gz
+
+
+ +

This will leave a decompressed version of infile in the current directory, and the .gz extension will be stripped from the filename. gunzip is really part of gzip and is +identical to gzip -d. As such, gzip is +often pronounced gunzip, as that name just sounds cooler. +:^)

+
+ +
+
+

15.2 bzip2

+ +

bzip2(1) is an alternative compression program installed on +Slackware Linux. It uses a different compression algorithm from gzip, which results in some advantages and some disadvantages. The +main advantage for bzip2 is the compressed file size. bzip2 will almost always compress better than gzip. In some instances, this can result in dramatically smaller +files. This can be a great advantage for people on slower modem connections. Also +remember, when downloading software from a public ftp server, it's generally good +netiquette to download the .bz2 files instead of the .gz files, as this results in less overhead for the generous people +hosting the server.

+ +

The disadvantage to bzip2 is that it is more CPU intensive +than gzip. This means that bzipping a file will generally take +longer and will use more of the CPU than gzipping the file would. When considering which +compression program to use, you must weigh this speed vs. compressed size and determine +which is more important.

+ +

The usage of bzip2 is nearly identical to gzip, so not much time will be spent discussing it. Like gunzip, bunzip2 is identical to bzip2 -d. The primary difference in practical usage is that bzip2 uses the .bz2 extension.

+ + + + + +
+
+% bzip2 filename
+% bunzip2 filename.bz2
+% bzip2 -9 filename
+
+
+
+ +
+
+

15.3 tar

+ +

tar(1) is the GNU tape archiver. It takes several files or +directories and creates one large file. This allows you to compress an entire directory +tree, which is impossible by just using gzip or bzip2. tar has many command line options, +which are explained in its man page. This section will just cover the most common uses of +tar.

+ +

The most common use for tar is to decompress and unarchive a +package that you've downloaded from a web site or ftp site. Most files will come with a +.tar.gz extension. This is commonly known as a +“tarball”. It means that several files were archived using tar and then compressed using gzip. You +might also see this listed as a .tar.Z file. It means the same +thing, but this is usually encountered on older Unix systems.

+ +

Alternatively, you might find a .tar.bz2 file somewhere. +Kernel source is distributed as such because it is a smaller download. As you might have +guessed, this is several files archived with tar and then +bzipped.

+ +

You can get to all the files in this archive by making use of tar and some command line arguments. Unarchiving a tarball makes use +of the -z flag, which means to first run the file through gunzip and decompress it. The most common way to decompress a +tarball is like so:

+ + + + + +
+
+% tar -xvzf filename.tar.gz
+
+
+ +

That's quite a few options. So what do they all mean? The -x +means to extract. This is important, as it tells tar exactly +what to do with the input file. In this case, we'll be splitting it back up into all the +files that it came from. -v means to be verbose. This will list +all the files that are being unarchived. It is perfectly acceptable to leave this option +off, if somewhat boring. Alternatively, you could use -vv to be +very verbose and list even more information about each file being unarchived. The -z option tells tar to run filename.tar.gz through gunzip first. And +finally, the -f option tells tar that +the next string on the command line is the file to operate on.

+ +

There are a few other ways to write this same command. On older systems lacking a +decent copy of GNU tar, you might see it written like so:

+ + + + + +
+
+% gunzip filename.tar.gz | tar -xvf -
+
+
+ +

This command line will uncompress the file and send the output to tar. Since gzip will write its output to +standard out if told to do so, this command will write the decompressed file to standard +out. The pipe then sends it to tar for unarchiving. The +“-” means to operate on standard input. It will unarchive the stream of data +that it gets from gzip and write that to the disk.

+ +

Another way to write the first command line is to leave off the dash before the +options, like so:

+ + + + + +
+
+% tar xvzf filename.tar.gz
+
+
+ +

You might also encounter a bzipped archive. The version of tar that comes with Slackware Linux can handle these the same as +gzipped archives. Instead of the -z command line option, you'd +use -j:

+ + + + + +
+
+% tar -xvjf filename.tar.bz2
+
+
+ +

It is important to note that tar will place the unarchived +files in the current directory. So, if you had an archive in /tmp that you wanted to decompress into your home directory, there +are a few options. First, the archive could be moved into your home directory and then +run through tar. Second, you could specify the path to the +archive file on the command line. Third, you can use the -C +option to “explode” the tarball in a specified directory.

+ + + + + +
+
+% cd $HOME
+% cp /tmp/filename.tar.gz .
+% tar -xvzf filename.tar.gz
+
+% cd $HOME
+% tar -xvzf /tmp/filename.tar.gz
+
+% cd /
+% tar -xvzf /tmp/filename.tar.gz -C $HOME
+
+
+ +

All the above statements are equivalent. In each case, the archive is unpacked inside +your home directory and the original uncompressed archive is left in place.

+ +

So what good is being able to uncompress these archives if you can't make them? Well, +tar handles that too. In most cases it's as easy as removing the +“-x” option and replacing it with the “-c” option.

+ + + + + +
+
+% tar -cvzf filename.tar.gz .
+
+
+ +

In this command line, the -c option tells tar to create an archive, while the -z +option runs the resulting archive file through gzip to compress +it. filename.tar.gz is the file that you want to create.

+ +

Specifying the “-f” option isn't always +necessary, but is typically good practice anyway. Without it, tar writes to standard output, which is usually desired for piping +tar's output to another program, like so.

+ + + + + +
+
+% tar -cv filename.tar . | gpg --encrypt
+
+
+ +

That command creates an non-compressed tar archive of the current directory, pipes the +tarball through gpg which encrypts and compresses the tarball, +making it realistically impossible to read by anyone other than the person knowing the +secret key.

+
+ +
+
+

15.4 zip

+ +

Finally, there are two utilities that can be used on zip files. These are very common +in the Windows world, so Linux has programs to deal with them. The compression program is +called zip(1), and the decompression program is called unzip(1).

+ + + + + +
+
+% zip foo *
+
+
+ +

This will create the file foo.zip, which will contain all +the files in the current directory. zip will add the .zip extension automatically, so there's no need to include that in +the file name. You can also recurse through the current directory, zipping up any +directories that are also laying around:

+ + + + + +
+
+% zip -r foo *
+
+
+ +

Decompressing files is easy, as well.

+ + + + + +
+
+% unzip foo.zip
+
+
+ +

This will extract all the files in the file foo.zip, +including any directories in the archive.

+ +

The zip utilities have several advanced options for creating +self-extracting archives, leaving out files, controlling compressed file size, printing +out what will happen, and much more. See the man pages for zip +and unzip to find out how to use these options.

+
+
+ +
+
+

Chapter 16 Vi

+ +

vi(1) is the standard Unix text editing program, and while +mastering it is not as essential as it once was, is still a very rewarding goal. There +are several versions (or clones) of vi available, including vi, elvis, vile, +and vim. One of these is available on just about any version of +Unix, as well as on Linux. All of these versions include the same basic feature set and +commands, so learning one clone should make it easy to learn another. With the variety of +text editors included with Linux distributions and Unix variants these days, many people +no longer use vi. Still, it remains the most universal text +editor across Unix and Unix work-alikes. Mastering vi means you +should never be sitting at a Unix machine and not be comfortable with at least one +powerful text editor.

+ +

vi includes a number of powerful features including syntax +highlighting, code formatting, a powerful search-and-replace mechanism, macros, and more. +These features make it especially attractive to programmers, web developers, and the +like. System administrators will appreciate the automation and integration with the shell +that is possible.

+ +

On Slackware Linux, the default version of vi available is +elvis. Other versions - including vim +and gvim - are available if you've installed the proper +packages. gvim is an X Window version of vim that includes toolbars, detachable menus, and dialog boxes.

+ +
+
+

16.1 Starting vi

+ +

vi can be started from the command line in a variety of ways. +The simplest form is just:

+ + + + + +
+
+% vi
+
+
+ +
+

Figure 16-1. A vi session.

+ +

+
+ +

This will start up vi with an empty buffer. At this point, +you'll see a mostly blank screen. It is now in “command mode”, waiting for +you to do something. For a discussion of the various vi modes, +see the Section 16.2. In order to quit out of vi, type the following:

+ + + + + +
+
+:q
+
+
+ +

Assuming that there have been no changes to the file, this will cause vi to quit. If there have been changes made, it will warn you that +there have been changes and tell you how to disregard them. Disregarding changes usually +means appending an exclamation point after the “q” like +so:

+ + + + + +
+
+:q!
+
+
+ +

The exclamation point usually means to force some action. We'll discuss it and other +key combinations in further details later.

+ +

You can also start vi with a pre-existing file. For example, +the file /etc/resolv.conf would be opened like so:

+ + + + + +
+
+% vi /etc/resolv.conf
+
+
+ +

Finally, vi can be started on a particular line of a file. +This is especially useful for programmers when an error message includes the line their +program bombed on. For example, you could start up vi on line 47 +of /usr/src/linux/init/main.c like so:

+ + + + + +
+
+% vi +47 /usr/src/linux/init/main.c
+
+
+ +

vi will display the given file and will place the cursor at +the specified line. In the case where you specify a line that is after the end of the +file, vi will place the cursor on the last line. This is +especially helpful for programmers, as they can jump straight to the location in the file +that an error occurred, without having to search for it.

+
+ +
+
+

16.2 Modes

+ +

vi operates in various modes, which are used to accomplish +various tasks. When you first start vi, you are placed into +command mode. From this point, you can issue various commands to manipulate text, move +around in the file, save, quit, and change modes. Editing the text is done in insert +mode. You can quickly move between modes with a variety of keystrokes, which are +explained below.

+ +
+
+

16.2.1 +Command Mode

+ +

You are first placed into command mode. From this mode, you cannot directly enter text +or edit what is already there. However, you can manipulate the text, search, quit, save, +load new files, and more. This is intended only to be an introduction to the command +mode. For a description of the various commands, see Section +16.7.

+ +

Probably the most often used command in command mode is changing to insert mode. This +is accomplished by hitting the i key. The cursor changes shapes, +and -- INSERT -- is displayed at +the bottom of the screen (note that this does not happen in all clones of vi). From there, all your keystrokes are entered into the current +buffer and are displayed to the screen. To get back into command mode, hit the ESCAPE key.

+ +

Command mode is also where you move around in the file. On some systems, you can use +the arrow keys to move around. On other systems, you may need to use the more traditional +keys of “hjkl”. Here is a simple listing of how these +keys are used to move around:

+ +
+ +++ + + + + + + + + + + + + + + + + + + + + +
hmove left one character
jmove down one character
kmove up one character
lmove right one character
+
+ +

Simply press a key to move. As you will see later, these keys can be combined with a +number to move much more efficiently.

+ +

Many of the commands that you will use in command mode begin with a colon. For +example, quitting is :q, as discussed earlier. The colon simply +indicates that it is a command, while the “q” tells vi to quit. Other commands are an optional number, followed by a +letter. These commands do not have a colon before them, and are generally used to +manipulate the text.

+ +

For example, deleting one line from a file is accomplished by hitting dd. This will remove the line that the cursor is on. Issuing the +command 4dd would tell vi to remove the +line that the cursor is on and the three after that. In general, the number tells vi how many times to perform the command.

+ +

You can combine a number with the movement keys to move around several characters at a +time. For example, 10k would move up ten lines on the screen.

+ +

Command mode can also be used to cut and paste, insert text, and read other files into +the current buffer. Copying text is accomplished with the y key (y stands for yank). Copying the current line is done by typing yy, and this can be prefixed with a number to yank more lines. Then, +move to the location for the copy and hit p. The text is pasted on +the line after the current one.

+ +

Cutting text is done by typing dd, and p +can be used to paste the cut text back into the file. Reading in text from another file +is a simple procedure. Just type :r, followed by a space and the +file name that contains the text to be inserted. The file's contents will be pasted into +the current buffer on the line after the cursor. More sophisticated vi clones even contain filename completion similar to the +shell's.

+ +

The final use that will be covered is searching. Command mode allows for simple +searching, as well as complicated search-and-replace commands that make use of a powerful +version of regular expressions. A complete discussion of regular expressions is beyond +the scope of this chapter, so this section will only cover simple means of searching.

+ +

A simple search is accomplished by hitting the / key, followed +by the text that you are searching for. vi will search forward +from the cursor to the end of the file for a match, stopping when it finds one. Note that +inexact matches will cause vi to stop as well. For example, a +search for “the” will +cause vi to stop on “then”, “therefore”, and so on. This is because all of those +words do match “the”.

+ +

After vi has found the first match, you can continue on to +the next match simply by hitting the / key followed by enter. You +can also search backwards through the file by replacing the slash with the ? key. For example, searching backwards through the file for +“the” would be +accomplished by typing ?the.

+
+ +
+
+

16.2.2 Insert +Mode

+ +

Inserting and replacing text is accomplished in insert mode. As previously discussed, +you can get into insert mode by hitting i from command mode. Then, +all text that you type is entered into the current buffer. Hitting the ESCAPE key takes you back into command mode.

+ +

Replacing text is accomplished in several ways. From command mode, hitting r will allow you to replace the one character underneath the cursor. +Just type the new character and it will replace the one under the cursor. You will then +be immediately placed back into command mode. Hitting R allows you +to replace as many characters as you'd like. To get out of this replacement mode, just +hit ESCAPE to go back into command mode.

+ +

There is yet another way to toggle between insertion and replacement. Hitting the INSERT key from command mode will take you into insert mode. Once you +are in insert mode, the keyboard's INSERT key serves as a toggle +between insert and replace. Hitting it once will allow you to replace. Hitting it once +more will once again allow you to insert text.

+
+
+ +
+
+

16.3 Opening +Files

+ +

vi allows you to open files from command mode as well as +specifying a file on the command line to open. To open the file /etc/lilo.conf:

+ + + + + +
+
+:e /etc/lilo.conf
+
+
+ +

If you have made changes to the current buffer without saving, vi will complain. You can still open the file without saving the +current buffer by typing :e!, followed by a space and the filename. +In general, vi's warnings can be suppressed by following the +command with an exclamation mark.

+ +

If you want to reopen the current file, you can do so simply by typing e!. This is particularly useful if you have somehow messed up the file +and want to reopen it.

+ +

Some vi clones (for example, vim) +allow for multiple buffers to be open at the same time. For example, to open up the file +09-vi.sgml in my home directory while another file was open, I +would type:

+ + + + + +
+
+:split ~/09-vi.sgml
+
+
+ +

The new file is displayed on the top half of the screen, and the old file is displayed +in the bottom half of the screen. There are a lot of commands that manipulate the split +screen, and many of these commands start to resemble something out of Emacs The best place to look up these commands would be the man page +for your vi clone. Note that many clones do not support the split-screen idea, so you +might not be able to use it at all.

+
+ +
+
+

16.4 Saving +Files

+ +

There are several ways to save files in vi. If you want to +save the current buffer to the file randomness, you would +type:

+ + + + + +
+
+:w randomness
+
+
+ +

Once you've saved the file once, saving it again is as simple as typing :w. Any changes will be written out to the file. After you've saved +the file, you are dumped back into command mode. If you want to save the file and quit +vi (a very common operation), you would type :wq. That tells vi to save the current file +and quit back to the shell.

+ +

On occasion, you want to save a file that is marked as read-only. You can do this by +adding an exclamation point after the write command, like so:

+ + + + + +
+
+:w!
+
+
+ +

However, there will still be instances where you cannot write the file (for example, +you are attempting to edit a file that is owned by another user). When this happens, vi will tell you that it cannot save the file. If you really want to +edit the file, you'll have to come back and edit it as root or +(preferably) the owner of that file.

+
+ +
+
+

16.5 Quitting vi

+ +

One way to quit vi is through :wq, +which will save the current buffer before quitting. You can also quit without saving with +:q or (more commonly) :q!. The latter is used +when you've modified the file but do not wish to save any changes to it.

+ +

On occasion, your machine might crash or vi might crash. +However, both elvis and vim will take +steps to minimize the damage to any open buffers. Both editors save the open buffers to a +temporary file on occasion. This file is usually named similarly to the open file, but +with a dot at the beginning. This makes the file hidden.

+ +

This temporary file gets removed once the editor quits under normal conditions. This +means that the temporary copy will still be around if something crashes. When you go back +to edit the file again, you will be prompted for what action to take. In most cases, a +large amount of your unsaved work can be recovered. elvis will +also send you a mail (from Graceland, oddly enough :) telling you that a backup copy +exists.

+
+ +
+
+

16.6 vi +Configuration

+ +

Your vi clone of choice can be configured in several +ways.

+ +

A variety of commands can be entered while in command mode to set up vi just how you like it. Depending on your editor, you can enable +features to make programming easier (like syntax hilighting, auto-indenting, and more), +set up macros to automake tasks, enable textual substitutions, and more.

+ +

Almost all of these commands can be put into a configuration file in your home +directory. elvis expects a .exrc file, +while vim expects a .vimrc file. Most +of the setup commands that can be entered in command mode can be placed in the +configuration file. This includes setup information, textual substitutions, macros, and +more.

+ +

Discussing all these options and the differences between the editors is quite an +involved subject. For more information, check out the man page or web site for your +preferred vi editor. Some editors (like vim) have extensive help within the editor that can be accessed with +the :help command, or something similar. You can also check out the +O'Reilly book Learning the vi Editor by +Lamb and Robbins.

+ +

Many common programs in Linux will load up a text file in vi +by default. For example, editing your crontabs will start up vi +by default. If you do not like vi and would like another editor +to be started instead, all you need to do is set the VISUAL +environment variable to the editor you prefer. For information on setting environment +variables, see the section called Environment Variables in Chapter 8. If you want to make +sure that your editor will be the default every time you login, add the VISUAL setting to +your .bash_profile or .bashrc +files.

+
+ +
+
+

16.7 Vi Keys

+ +

This section is a quick reference of many common vi commands. +Some of these were discussed earlier in the chapter, while many will be new.

+ +
+

Table 16-1. Movement

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationKey
left, down, up, righth, j, k, l
To the end of the line$
To the beginning of the line^
To the end of the fileG
To the beginning of the file:1
To line 47:47
+
+ +
+

Table 16-2. Editing

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationKey
Removing a linedd
Removing five lines5dd
Replacing a characterr
Removing a characterx
Removing ten characters10x
Undo last actionu
Join current and next linesJ
Replace old with new, globally%s'old'new'g
+
+ +
+

Table 16-3. Searching

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationKey
Search for “asdf”/asdf
Search backwards for “asdf”?asdf
Repeat last search forwards/
Repeat last search backwards?
Repeat last search, same directionn
Repeat last search, opposite directionN
+
+ +
+

Table 16-4. Saving and Quitting

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationKey
Quit:q
Quit without saving:q!
Write and quit:wq
Write, without quitting:w
Reload currently open file:e!
Write buffer to file asdf:w asdf
Open file hejaz:e hejaz
Read file asdf into buffer:r asdf
Read output of ls into buffer:r !ls
+
+
+
+ +
+
+

Chapter 17 Emacs

+ +

While vi (with its clones) is without a doubt the most +ubiquitous editor on Unix-like systems, Emacs comes in a good second. Instead of using +different “modes”, like vi does, it uses Control and Alt key combinations to enter +commands, in much the same way that you can use Control and Alt key combinations in a word processor and indeed in many other +applications to execute certain functions. (Though it should be noted that the commands +rarely correspond; so while many modern applications use Ctrl-C/ X/ V for copying, +cutting and pasting, Emacs uses different keys and actually a somewhat different +mechanism for this.)

+ +

Also unlike vi, which is an (excellent) editor and nothing +more, Emacs is a program with near endless capabilities. Emacs is (for the most part) +written in Lisp, which is a very powerful programming language that has the peculiar +property that every program written in it is automatically a Lisp compiler of its own. +This means that the user can extend Emacs, and in fact write completely new programs +“in Emacs”.

+ +

As a result, Emacs is not just an editor anymore. There are many add-on packages for +Emacs available (many come with the program's source) that provide all sorts of +functionality. Many of these are related to text editing, which is after all Emacs' basic +task, but it doesn't stop there. There are for example several spreadsheet programs for +Emacs, there are databases, games, mail and news clients (the top one being Gnus), +etc.

+ +

There are two main versions of Emacs: GNU Emacs (which is the version that comes with +Slackware) and XEmacs. The latter is not a version for Emacs running under X. In fact, both Emacs +and XEmacs run on the console as well as under X. XEmacs was once started as a project to +tidy up the Emacs code. Currently, both versions are being actively developed, and there +is in fact much interaction between the two development teams. For the present chapter, +it is immaterial whether you use Emacs or XEmacs, the differences between them are not +relevant to the normal user.

+ +
+
+

17.1 Starting +emacs

+ +

Emacs can be started from the shell by simply typing emacs. +When you are running X, Emacs will (normally) come up with its own X window, usually with +a menu bar at the top, where you can find the most important functions. On startup, Emacs +will first show a welcome message, and then after a few seconds will drop you in the +*scratch* buffer. (See Section 17.2.)

+ +
+

+
+ +

You can also start Emacs on an existing file by typing

+ + + + + +
+
+% emacs /etc/resolv.conf
+
+
+ +

This will cause Emacs to load the specified file when it starts up, skipping the +welcome message.

+ +
+
+

17.1.1 Command +Keys

+ +

As mentioned above, Emacs uses Control and Alt combinations for commands. The usual convention is to write these +with C-letter and M-letter, respectively. So C-x means Control+x, and M-x means Alt+x. (The letter M is used instead of A because +originally the key was not the Alt key but the Meta key. The Meta key has all but disappeared +from computer keyboards, and in Emacs the Alt key has taken over +its function.)

+ +

Many Emacs commands consist of sequences of keys and key combinations. For example, C-x C-c (that is Control-x +followed by Control-c ) quits Emacs, C-x C-s saves the current file. Keep in mind that C-x C-b is not the same as C-x b. The former means Control-x followed by Control-b, while the latter means Control-x followed by just 'b'.

+
+
+ +
+
+

17.2 Buffers

+ +

In Emacs, the concept of “buffers” is essential. Every file that you open +is loaded into its own buffer. Furthermore, Emacs has several special buffers, which do +not contain a file but are used for other things. Such special buffers usually have a +name that starts and ends with an asterisk. For example, the buffer that Emacs shows when +it is first started, is the so-called *scratch* buffer. In the *scratch* buffer, you can +type text in the normal way, but text that is typed there is not saved when Emacs is +closed.

+ +

There is one other special buffer you need to know about, and that is the minibuffer. +This buffer consists of only one line, and is always on the screen: it is the very last +line of the Emacs window, below the status bar for the current buffer. The minibuffer is +where Emacs shows messages for the user, and it is also the place where commands that +require some user input are executed. For example, when you open a file, Emacs will ask +for its name in the minibuffer.

+ +

Switching from one buffer to another can be done with the command C-x b. This will prompt +you for the name of a buffer (a buffer's name is usually the name of the file you are +editing in it), and it gives a default choice, which is normally the buffer that you were +in before you switched to or created the current buffer. Just hitting Enter will switch to that default +buffer.

+ +

If you want to switch to another buffer than the default offered by Emacs, just type +its name. Note that you can use so-called Tab-completion here: type +the first few letters of the buffer's name and hit Tab; Emacs will +then complete the name of the buffer. Tab completion works +everywhere in Emacs where it makes sense.

+ +

You can get a list of open buffers by hitting C-x C-b. This command will +usually split the screen in two, displaying the buffer you were working in in the top +half, and a new buffer called *Buffer List* in the bottom half. This buffer contains a +list of all the buffers, their sizes and modes, and the files, if any, that those buffers +are visiting (as it is called in Emacs). You can get rid of this split screen by typing +C-x 1.

+ +
+ + + + + +
Note +

Under X, the list of buffers is also available in the Buffer menu in the menu bar.

+
+
+
+ +
+
+

17.3 Modes

+ +

Every buffer in Emacs has an associated mode. This mode is very different from the +idea of modes in vi: a mode tells you what kind of buffer you +are in. For example, there is text-mode for normal text files, but there are also modes +such as c-mode for editing C programs, sh-mode for editing shell scripts, latex-mode for +editing LaTeX files, mail-mode for editing email and news +messages, etc. A mode provides special customizations and functionality that is useful +for the kind of file you are editing. It is even possible for a mode to redefine keys and +key commands. For example, in Text mode, the Tab key simply jumps to the next tab stop, +but in many programming language modes, the Tab key indents the +current line according to the depth of the block that line is in.

+ +

The modes mentioned above are called major modes. Each buffer has exactly one major +mode. Additionally, a buffer can have one or more minor modes. A minor mode provides +additional features that may be useful for certain editing tasks. For example, if you hit +the INSERT key, you invoke overwrite-mode, which does what you'd +expect. There is also an auto-fill-mode, which is handy in combination with text-mode or +latex-mode: it causes each line that you type to be automatically wrapped once the line +reaches a certain number of characters. Without auto-fill-mode, you have to type M-q to fill out a paragraph. (Which you can also +use to reformat a paragraph after you've edited some text in it and it is no longer +nicely filled out.)

+ +
+
+

17.3.1 Opening +files

+ +

To open a file in Emacs, type

+ + + + + +
+
+C-x C-f
+
+
+ +

Emacs will ask you for the name of the file, filling in some default path for you +(which is usually ~/ ). After you type the filename (you can +use Tab completion) and hit ENTER , Emacs +will open the file in a new buffer and display that buffer on the screen.

+ +
+ + + + + +
Note +

Emacs will automatically create a new buffer, it will not load the file into the +current buffer.

+
+
+ +

In order to create a new file in emacs, you cannot just go typing right away. You +first have to create a buffer for it, and come up with a filename. You do this by typing +C-x C-f and typing a filename, just as if you were opening an existing file. +Emacs will notice that the file you typed doesn't exist, and will create a new buffer and +report “(New file)” in the minibuffer.

+ +

When you type C-x C-f and then enter a directory name instead of a +filename, Emacs will create a new buffer in which you will find a list of all the files +in that directory. You can move the cursor to the file that you are looking for and type +, and Emacs will open it. (There are in fact a lot more actions you can perform here, +such as deleting, renaming and moving files, etc. Emacs is now in dired-mode, which is +basically a simple file manager.)

+ +

When you have typed C-x C-f and suddenly change your mind, you can type +C-g to cancel the action. C-g works almost everywhere where you want to +cancel an action or command that you've started but don't want to finish.

+
+
+ +
+
+

17.4 Basic +Editing

+ +

When you have opened a file, you can of course move around in it with the cursor. The +cursor keys and PgUp, PgDn do what you'd expect. Home and End jump to the beginning and end of the line. (In older versions, +they would actually jump to the beginning and end of the buffer.) However, there are also +Control and Meta (Alt) +key combos that move the cursor around. Because you do not need to move your hands to +another part of the keyboard for these, they are much quicker once you get used to them. +The most important such commands are listed in Table +17-1.

+ +
+

Table 17-1. Basic Emacs Editing Commands

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandResult
C-b go one character back
C-f go one character forward
C-n go one line down
C-p go one line up
C-a go to the beginning of the line
C-e go to the end of the line
M-b go one word back
M-f go one word forward
M-} go one paragraph forward
M-{ go one paragraph backward
M-a go one sentence backward
M-e go one sentence forward
C-d delete the character under the cursor
M-d delete until the end of the current word
C-v go down one screen (i.e., PgDn)
M-v go up one screen (i.e., PgUp)
M-< go to the beginning of the buffer
M-> go to the end of the buffer
C-_ undo the last change (can be repeated); note that you actually have to type Shift+Control+hyphen for +this.
C-k delete to end of line
C-s forward search
C-r backward search
+
+ +

Note that many Meta commands are parallel to the Control commands except that they operate on larger units: while C-f goes forward one character, M-f goes forward an entire word, etc.

+ +

Also note that M-< and M-> require you to type Shift+Alt+comma and Shift+Alt+dot +respectively, since < and > are on Shift+comma and Shift+dot. (Unless of course you have a different keyboard layout from the +standard US layout.)

+ +

Note that C-k deletes (kills, as it is +commonly called) all the text after the cursor to the end of the line, but doesn't delete +the line itself (i.e., it doesn't delete the final newline). It only deletes the line if +there was no text after the cursor. In other words, in order to delete a complete line, +you have to put the cursor at the beginning of the line, and then hit C-k twice: once to delete the text on the line, +once to delete the line itself.

+
+ +
+
+

17.5 Saving +Files

+ +

In order to save a file, you type

+ + + + + +
+
+C-x C-s
+
+
+ +

Emacs will not ask you for a filename, the buffer will just be saved to the file it +was loaded from. If you want to save your text to another file, type

+ + + + + +
+
+C-x C-w
+
+
+ +

When you save the file for the first time in this session, Emacs will normally save +the old version of your file to a backup file, which has the same name appended with a +tilde: so if you're editing a file “cars.txt”, +Emacs will create a backup “cars.txt~”.

+ +

This backup file is a copy of the file that you opened. While you are working, Emacs +will also regularly create an auto-save copy of the work you are doing, to a file named +with hash signs: #cars.txt#. This backup is deleted when you +save the file with C-x C-s.

+ +

When you are done editing a file, you can kill the buffer that holds it by typing

+ + + + + +
+
+C-x k
+
+
+ +

Emacs will then ask you which buffer you want to kill, with the current buffer as +default, which you can select by hitting ENTER. If you haven't +saved your file yet, Emacs will ask you if you really want to kill the buffer.

+ +
+
+

17.5.1 Quitting +Emacs

+ +

When you are done with Emacs altogether, you can type

+ + + + + +
+
+C-x C-c
+
+
+ +

This quits Emacs. If you have any unsaved files, Emacs will tell you so, and ask if +you want to save them each in turn. If you answer no to any of these, Emacs will ask for +one final confirmation and then quit.

+
+
+
+ +
+
+

Chapter 18 Slackware Package +Management

+ +

A software package is a bundle of related programs that are ready for you to install. +When you download a source code archive, you have to configure, compile, and install it +by hand. With a software package, this has already been done for you. All that you have +to do is install the package. Another handy feature of using software packages is that it +is very easy to remove and upgrade them, if you so desire. Slackware comes with programs +for all your package management needs. You can install, remove, upgrade, make, and +examine packages very easily.

+ +

There's a myth that's been going around ever since RedHat debuted RedHat Package +Manager, that Slackware has no package management tool. This simply couldn't be further +from the truth. Slackware has always included a package manager, even before RedHat +existed. While not as full-featured or as ubiquitous as rpm (or for that matter deb), pkgtool and its associated programs are every bit as good at +installing packages as rpm. The truth about pkgtool is not that +it doesn't exist, but that it doesn't do any dependency checking.

+ +

Apparently many people in the Linux community think that a packager manager must by +definition include dependency checking. Well, that simply isn't the case, as Slackware +most certainly does not. This is not to say that Slackware packages don't have +dependencies, but rather that its package manager doesn't check for them. Dependency +management is left up to the sysadmin, and that's the way we like it.

+ +
+
+

18.1 Overview of Package Format

+ +

Before learning the utilities, you should become familiar with the format of a +Slackware package. In Slackware, a package is simply a tar archive file that has been +compressed with gzip. Packages are built to be extracted in the +root directory.

+ +

Here is a fictitious program and its example package:

+ + + + + +
+
+./
+usr/
+usr/bin/
+usr/bin/makehejaz
+usr/doc/
+usr/doc/makehejaz-1.0/
+usr/doc/makehejaz-1.0/COPYING
+usr/doc/makehejaz-1.0/README
+usr/man/
+usr/man/man1
+usr/man/man1/makehejaz.1.gz
+install/
+install/doinst.sh
+
+
+ +

The package system will extract this file in the root directory to install it. An +entry in the package database will be created that contains the contents of this package +so that it can be upgraded or removed later.

+ +

Notice the install/ subdirectory. This is a special +directory that can contain a postinstallation script called doinst.sh. If the package system finds this file, it will execute +it after installing the package.

+ +

Other scripts can be embedded in the package, but those are discussed more in detail +in Section 18.3.2 below.

+
+ +
+
+

18.2 Package Utilities

+ +

There are four main utilities for package management. They perform installation, +removal, and upgrades of packages.

+ +
+
+

18.2.1 pkgtool

+ +

pkgtool(8) is a menu-driven program that allows installation +and removal of packages. The main menu is shown in Figure +18-1.

+ +
+

Figure 18-1. Pkgtool's main menu.

+ +

+
+ +

Installation is offered from the current directory, another directory, or from floppy +disks. Simply select the installation method you want and pkgtool will search that +location for valid packages to install.

+ +

You may also view a list of installed packages, as shown in Figure 18-2.

+ +
+

Figure 18-2. Pkgtool view mode

+ +

+
+ +

If you want to remove packages, select the remove option and you will be presented +with a checklist of all the installed packages. Flag the ones you want to remove and +select OK. pkgtool will remove them.

+ +

Some users prefer this utility to the command line utilities. However, it should be +noted that the command line utilities offer many more options. Also, the ability to +upgrade packages is only offered through the command line utilities.

+
+ +
+
+

18.2.2 installpkg

+ +

installpkg(8) handles installation of new packages on the +system. The syntax is as follows:

+ + + + + +
+
+# installpkg option package_name
+
+
+ +

Three options are provided for installpkg. Only one option +can be used at a time.

+ +
+

Table 18-1. installpkg Options

+ + +++ + + + + + + + + + + + + + + + + + + + + + + +
OptionEffects
-mPerforms a makepkg operation on the current directory.
-warnShows what would happen if you installed the specified package. This is useful for +production systems so you can see exactly what would happen before installing +something.
-rRecursively install all packages in the current directory and down. The package name +can use wildcards, which would be used as the search mask when recursively +installing.
+
+ +

If you pass the ROOT environment variable before installpkg, that path will be used for the root directory. This is +useful for setting up new drives for your root directory. They will typically be mounted +to /mnt or something other than /.

+ +

The installed package database entry is stored in /var/log/packages. The entry is really just a plain text file, one +for each package. If the package has a postinstallation script, it is written to /var/log/scripts/.

+ +

You may specify several packages or use wildcards for the package name. Be advised +that installpkg will not tell you if you are overwriting an +installed package. It will simply install right on top of the old one. If you want to +ensure that old files from the previous package are safely removed, use upgradepkg.

+
+ +
+
+

18.2.3 removepkg

+ +

removepkg(8) handles removing installed packages from the +system. The syntax is as follows:

+ + + + + +
+
+# removepkg option package_name
+
+
+ +

Four options are provided for removepkg. Only one option may +be used at a time.

+ +
+

Table 18-2. removepkg Options

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OptionEffects
-copyThe package is copied to the preserved packages directory. This creates a tree of the +original package without removing it.
-keepSaves temporary files created during the removal. Really only useful for debugging +purposes.
-preserveThe package is removed, but copied to the preserved packages directory at the same +time.
-warnShows what would happen if you removed the package.
+
+ +

If you pass the ROOT environment variable before removepkg, that path will be used for the root directory. This is +useful for setting up new drives for your root directory. They will typically be mounted +to /mnt or something other than /.

+ +

removepkg looks at the other installed packages and only +removes files unique to the package you specify. It will also scan the postinstallation +script for the specified package and remove any symbolic links that were created by +it.

+ +

During the removal process, a status report is displayed. After the removal, the +package database entry is moved to /var/log/removed_packages +and the postinstallation script is moved to /var/log/removed_scripts.

+ +

Just as with installpkg, you can specify several packages or +use wildcards for the package name.

+
+ +
+
+

18.2.4 upgradepkg

+ +

upgradepkg(8) will upgrade an installed Slackware package. +The syntax is as follows:

+ + + + + +
+
+# upgradepkg package_name
+
+
+ +

or

+ + + + + +
+
+# upgradepkg old_package_name%new_package_name
+
+
+ +

upgradepkg works by first installing the new package and then +removing the old package so that old files are no longer around on the system. If the +upgraded package name has changed, use the percent sign syntax to specify the old package +(the one that is installed) and the new package (the one you are upgrading it to).

+ +

If you pass the ROOT environment variable before upgradepkg, that path will be used for the root directory. This is +useful for setting up new drives for your root directory. They will typically be mounted +to /mnt or something other than /.

+ +

upgradepkg is not flawless. You should always back up your +configuration files. If they get removed or overwritten, you'll want a copy of the +originals for any needed repair work.

+ +

Just as with installpkg and removepkg, you can specify several packages or use wildcards for the +package name.

+
+ +
+
+

18.2.5 rpm2tgz/rpm2targz

+ +

The Red Hat Package Manager is a popular packaging system available today. Many +software distributors are offering their products in RPM format. Since this is not our +native format, we do not recommend people rely on them. However, some things are only +available as an RPM (even the source).

+ +

We provide a program that will convert RPM packages to our native .tgz format. This will allow you to extract the package (perhaps +with explodepkg) to a temporary directory and examine its +contents.

+ +

The rpm2tgz program will create a Slackware package with a +.tgz extension, while rpm2targz +creates an archive with a .tar.gz extension.

+
+
+ +
+
+

18.3 Making Packages

+ +

Making Slackware packages can be either easy or difficult. There is no specific method +for building a package. The only requirement is that the package be a tar gzipped file +and if there is a postinstallation script, it must be /install/doinst.sh.

+ +

If you are interested in making packages for your system or for a network that you +manage, you should have a look at the various build scripts in the Slackware source tree. +There are several methods we use for making packages.

+ +
+
+

18.3.1 explodepkg

+ +

explodepkg(8) will do the same thing that installpkg does to extract the package, but it doesn't actually +install it and it doesn't record it in the packages database. It simply extracts it to +the current directory.

+ +

If you look at the Slackware source tree, you will see how we use this command for +“framework” packages. These packages contain a skeleton of what the final +package will look like. They hold all the necessary filenames (zero-length), permissions, +and ownerships. The build script will cat the package contents from the source directory +to the package build directory.

+
+ +
+
+

18.3.2 makepkg

+ +

makepkg(8) will package up the current directory into a valid +Slackware package. It will search the tree for any symbolic links and add a creation +block to the postinstallation script for creating them during the package install. It +also warns of any zero-length files in the package tree.

+ +

This command is typically run after you have created your package tree.

+
+ +
+
+

18.3.3 SlackBuild Scripts

+ +

Slackware packages are built in many different ways by necessity. Not all software +packages are written by their programmers to compile the same way. Many have compile time +options that are not all included in the packages Slackware uses. Perhaps you need some +of this functionality; you'll need to compile your own package then. Fortunately for many +Slackware packages, you can find SlackBuild scripts in the package's source code.

+ +

So what is a SlackBuild script? SlackBuild scripts are executable shell scripts that +you run as root to configure, compile, and create Slackware +packages. You can freely modify these scripts in the source directory and run them to +create your own versions of the default Slackware packages.

+
+
+ +
+
+

18.4 Making Tags and Tagfiles (for +setup)

+ +

The Slackware setup program handles installation of the software packages on your +system. There are files that tell the setup program which packages must be installed, +which ones are optional, and which ones are selected by default by the setup program.

+ +

A tagfile is in the first software series directory and is called tagfile. It lists +the packages in that particular disk set and their status. The status can be:

+ +
+

Table 18-3. Tagfile Status Options

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OptionMeaning
ADDThe package is required for proper system operation
SKPThe package will be automatically skipped
RECThe package is not required, but recommended
OPTThe package is optional
+
+ +

The format is simply:

+ + + + + +
+
+package_name: status
+
+
+ +

One package per line. The original tagfiles for each software series are stored as +tagfile.org. So if you mess up yours, you can restore the original one.

+ +

Many administrators prefer writing their own tagfiles and starting the installer and +selecting “full”. The setup program will read the tagfiles and perform the +installation according to their contents. If you use REC or OPT, a dialog box will be +presented to the user asking whether or not they want a particular package. Therefore, it +is recommended that you stick with ADD and SKP when writing tagfiles for automated +installs.

+ +

Just make sure your tagfiles are written to the same location as the originals. Or you +can specify a custom tagfile path if you have custom tagfiles.

+
+
+ +
+
+

Chapter 19 ZipSlack

+ +
+

19.1 What is +ZipSlack?

+ +

ZipSlack is a special version of Slackware Linux. It's an already installed copy of +Slackware that's ready to run from your DOS or Windows partition. It's a basic +installation, you do not get everything that comes with Slackware.

+ +

ZipSlack gets its name from the form it's distributed in, a big .ZIP file. Users of +DOS and Windows will probably be familiar with these files. They are compressed archives. +The ZipSlack archive contains everything you need to get up and running with +Slackware.

+ +

It is important to note that ZipSlack is significantly different from a regular +installation. Even though they function the same and contain the same programs, their +intended audiences and functions differ. Several advantages and disadvantages of ZipSlack +are discussed below.

+ +

One last thing, you should always review the documentation included in the actual +ZipSlack directory. It contains the latest information regarding installation, booting, +and general use of the product.

+ +
+
+

19.1.1 +Advantages

+ +
    +
  • +

    Does not require repartitioning of your hard disk.

    +
  • + +
  • +

    Great way to learn Slackware Linux without stumbling through the installation +process.

    +
  • +
+
+ +
+
+

19.1.2 +Disadvantages

+ +
    +
  • +

    Uses the DOS filesystem, which is slower than a native Linux filesystem.

    +
  • + +
  • +

    Will not work with Windows NT.

    +
  • +
+
+
+ +
+
+

19.2 Getting +ZipSlack

+ +

Obtaining ZipSlack is easy. If you have purchased the official Slackware Linux CD set, +then you already have ZipSlack. Just find the CD that contains the zipslack directory and place it in your CD-ROM drive. It's usually +the third or fourth disc, but always trust the labels over this documentation as the disk +it resides on is prone to change.

+ +

If you want to download ZipSlack, you should first visit our “Get Slack” +web page for the latest download information:

+ +

http://www.slackware.com/getslack/

+ +

ZipSlack is part of each Slackware release. Locate the release you want, and go to +that directory on the FTP site. The latest release directory can be found at this +location:

+ +

ftp://ftp.slackware.com/pub/slackware/slackware/

+ +

You'll find ZipSlack in the /zipslack subdirectory. ZipSlack +is offered as one big .ZIP file or floppy-sized chunks. The +chunks are in the /zipslack/split directory.

+ +

Don't stop at just the .ZIP files. You should also download +the documentation files and any boot images that appear in the directory.

+ +
+
+

19.2.1 +Installation

+ +

Once you've downloaded the necessary components, you'll need to extract the .ZIP file. Be sure to use a 32-bit unzipper. The size and filenames +in the archive are too much for a 16-bit unzipper. Examples of 32-bit unzippers include +WinZip and PKZIP for Windows.

+ +

ZipSlack is designed to be extracted directly to the root directory of a drive (such +as C: or D:). A \LINUX directory will be created that contains the actual Slackware +installation. You'll also find the files necessary to booting the system in that +directory as well.

+ +

After you've extracted the files, you should have a \LINUX +directory on the drive of your choosing (we'll use C: from +here on).

+
+
+ +
+
+

19.3 Booting +ZipSlack

+ +

There are several ways to boot ZipSlack. The most common is to use the included +LINUX.BAT to boot the system from DOS (or from DOS mode under Windows 9x). This file must +be edited to match your system before it will work.

+ +

Start by opening the C:\LINUX\LINUX.BAT file in your +favorite text editor. At the top of the file you will notice a large comment. It explains +what you need to edit in this file (and also what to do if you are booting from an +external Zip drive). Don't worry if you don't understand the root= setting. There are several examples, so feel free to pick one +and try it. If it doesn't work, you can edit the file again, comment out the line you +uncommented, and pick another one.

+ +

After you uncomment the line you want by removing the “rem” at the +beginning of the line, save the file and exit the editor. Bring your machine into DOS +mode.

+ +

A DOS prompt window in Windows 9x will NOT work.

+ +

Type C:\LINUX\LINUX.BAT to boot the system. If all goes well, +you should be presented with a login prompt.

+ +

Log in as root, with no password. You'll probably want to +set a password for root, as well as adding an account for yourself. At this point you can +refer to the other sections in this book for general system usage.

+ +

If using the LINUX.BAT file to boot the system didn't work +for you, you should refer to the included C:\LINUX\README.1ST +file for other ways to boot.

+
+
+ +
+

Glossary

+ +
+
Account
+ +
+

All of the information about a user, including username, password, finger information, +UID and GID, and home directory. To create an account is to add and define a user.

+
+ +
Background
+ +
+

Any process that is running without accepting or controlling the input of a terminal +is said to be running in the background.

+
+ +
Boot disk
+ +
+

A floppy disk containing an operating system (in our case, the Linux kernel) from +which a computer can be started.

+
+ +
Compile
+ +
+

To convert source code to machine-readable “binary” code.

+
+ +
Daemon
+ +
+

A program designed to run in the background and, without user intervention, perform a +specific task (usually providing a service).

+
+ +
Darkstar
+ +
+

The default hostname in Slackware; your computer will be called darkstar if you do not +specify some other name.

+ +

One of Patrick Volkerding's development machines, named after “Dark Star”, +a song by the Grateful Dead.

+
+ +
Desktop Environment
+ +
+

A graphical user interface (GUI) that runs atop the X Window System and provides such +features as integrated applications, cohesive look-and-feel between programs and +components, file and window management capabilities, etc. A step beyond the simple window +manager.

+
+ +
Device driver
+ +
+

A chunk of code in the kernel that directly controls a piece of hardware.

+
+ +
Device node
+ +
+

A special type of file in the /dev filesystem that +represents a hardware component to the operating system.

+
+ +
DNS
+ +
+

Domain Name Service. A system in which networked computers are given names which +translate to numerical addresses.

+
+ +
Domain name
+ +
+

A computer's DNS name, excluding its host name.

+
+ +
Dot file
+ +
+

In Linux, files which are to be hidden have filenames beginning with a dot ('.').

+
+ +
Dotted quad
+ +
+

The format of IP addresses, so called because it consists of four numbers (range 0-255 +decimal) separated by periods.

+
+ +
Dynamic loader
+ +
+

When programs are compiled under Linux, they usually use pieces of code (functions) +from external libraries. When such programs are run, those libraries must be found and +the required functions loaded into memory. This is the job of the dynamic loader.

+
+ +
Environment variable
+ +
+

A variable set in the user's shell which can be referenced by that user or programs +run by that user within that shell. Environment variables are generally used to store +preferences and default parameters.

+
+ +
Epoch
+ +
+

A period of history; in Unix, “The Epoch” begins at 00:00:00 UTC January +1, 1970. This is considered the “dawn of time” by Unix and Unix-like +operating systems, and all other time is calculated relative to this date.

+
+ +
Filesystem
+ +
+

A representation of stored data in which “files” of data are kept +organized in “directories”. The filesystem is the nearly universal form of +representation for data stored to disks (both fixed and removable).

+
+ +
Foreground
+ +
+

A program that is accepting or controlling a terminal's input is said to be running in +the foreground.

+
+ +
Framebuffer
+ +
+

A type of graphics device; in Linux, this most often refers to the software +framebuffer, which provides a standard framebuffer interface to programs while keeping +specific hardware drivers hidden from them. This layer of abstraction frees programs of +the need to speak to various hardware drivers.

+
+ +
FTP
+ +
+

The File Transfer Protocol. FTP is a very popular method of transferring data between +computers.

+
+ +
Gateway
+ +
+

A computer through which data on a network is transferred to another network.

+
+ +
GID
+ +
+

Group Identifier. The GID is a unique number attributed to a group of users.

+
+ +
Group
+ +
+

Users in Unix belong to “groups”, which can contain many other users and +are used for more general access control than the existence of users alone can easily +allow.

+
+ +
GUI
+ +
+

Graphical User Interface. A software interface that uses rendered graphical elements +such as buttons, scrollbars, windows, etc. rather than solely text-based input and +output

+
+ +
Home directory
+ +
+

A user's “home directory” is the directory the user is placed in +immediately upon logging in. Users have full permissions and more or less free reign +within their home directories.

+
+ +
HOWTO
+ +
+

A document describing “how to” do something, such as configure a firewall +or manage users and groups. There is a large collection of these documents available from +the Linux Documentation Project.

+
+ +
HTTP
+ +
+

The Hypertext Transfer Protocol. HTTP is the primary protocol on which the World Wide +Web operates.

+
+ +
ICMP
+ +
+

Internet Control Message Protocol. A very basic networking protocol, used mostly for +pings.

+
+ +
Kernel
+ +
+

The heart of an operating system. The kernel is the part that provides basic process +control and interfaces with the computer's hardware.

+
+ +
Kernel module
+ +
+

A piece of kernel code, usually a driver of some sort, that can be loaded and unloaded +from memory separately from the main body of the kernel. Modules are handy when upgrading +drivers or testing kernel settings, because they can be loaded and unloaded without +rebooting.

+
+ +
Library
+ +
+

A collection of functions which can be shared between programs.

+
+ +
LILO
+ +
+

The LInux LOader. LILO is the most widely-used Linux boot manager.

+
+ +
LOADLIN
+ +
+

LOADLIN is a program that runs under MS DOS or Windows and boots a Linux system. It is +most commonly used on computers with multiple operating systems (including Linux and +DOS/Windows, of course).

+
+ +
Man section
+ +
+

Pages in the standard Unix online manual ("man") are grouped into sections for easy +reference. All C programming pages are in section 3, system administration pages in +section 5, etc.

+
+ +
MBR
+ +
+

The Master Boot Record. A reserved space on a hard drive where information on what to +do when booting is stored. LILO or other boot managers can be written here.

+
+ +
Motif
+ +
+

A popular programming toolkit used in many older X programs.

+
+ +
MOTD
+ +
+

Message of the Day. The motd (stored in Linux in /etc/motd +is a text file that is displayed to all users upon logging in. Traditionally, it is used +by the system administrator as a sort of “bulletin board” for communicating +with users.

+
+ +
Mount point
+ +
+

An empty directory in a filesystem where another filesystem is to be +“mounted”, or grafted on.

+
+ +
Nameserver
+ +
+

A DNS information server. Nameservers translate DNS names to numerical IP +addresses.

+
+ +
Network interface
+ +
+

A virtual representation of a network device provided by the kernel. Network +interfaces allow users and programs to talk to network devices.

+
+ +
NFS
+ +
+

The Network Filesystem. NFS allows the mounting of remote filesystems as if they were +local to your computer and thus provides a transparent method of file sharing.

+
+ +
Octal
+ +
+

Base-8 number system, with digits 0-7.

+
+ +
Pager
+ +
+

An X program that allows the user to see and switch between multiple +“desktops”.

+
+ +
Partition
+ +
+

A division of a hard drive. Filesystems exist on top of partitions.

+
+ +
PPP
+ +
+

Point-to-Point Protocol. PPP is used mainly for connecting via modem to an Internet +Service Provider.

+
+ +
Process
+ +
+

A running program.

+
+ +
Root directory
+ +
+

Represented as “/”, the root directory exists at the top of the +filesystem, with all other directories branching out beneath it in a “file +tree”.

+
+ +
Root disk
+ +
+

The disk (usually fixed) on which the root directory is stored.

+
+ +
Routing table
+ +
+

The set of information the kernel uses in “routing” network data around. +It contains such tidbits as where your default gateway is, which network interface is +connected to which network, etc.

+
+ +
Runlevel
+ +
+

The overall system state as defined by init. Runlevel 6 is rebooting, runlevel 1 is +“single user mode”, runlevel 4 is an X login, etc. There are 6 available +runlevels on a Slackware system.

+
+ +
Secure shell
+ +
+

An encrypted (thus secure) method of logging in remotely to a computer. Many secure +shell programs are available; both a client and server are needed.

+
+ +
Service
+ +
+

The sharing of information and/or data between programs and computers from a single +“server” to multiple “clients”. HTTP, FTP, NFS, etc. are +services.

+
+ +
Shadow password suite
+ +
+

The shadow password suite allows encrypted passwords to be hidden from users, while +the rest of the information in the /etc/passwd file remains +visible to all. This helps prevent brute-force attempts at cracking passwords.

+
+ +
Shell
+ +
+

Shells provide a commandline interface to the user. When you're looking at a text +prompt, you're in a shell.

+
+ +
Shell builtin
+ +
+

A command built into the shell, as opposed to being provided by an external program. +For instance, bash has a cd +builtin.

+
+ +
Signal
+ +
+

Unix programs can communicate between each other using simple “signals”, +which are enumerated and usually have specific meanings. kill -l +will list the available signals.

+
+ +
SLIP
+ +
+

Serial Line Interface Protocol. SLIP is a similar protocol to PPP, in that it's used +for connecting two machines via a serial interface.

+
+ +
Software package
+ +
+

A program and its associated files, archived and compressed into a single file along +with any necessary scripts or information to aid in managing the installation, upgrade, +and removal of those files.

+
+ +
Software series
+ +
+

A collection of related software packages in Slackware. All KDE packages are in the +“kde” series, networking packages in the “n” series, etc.

+
+ +
Source code
+ +
+

The (more or less) human-readable code in which most programs are written. Source code +is compiled into “binary” code.

+
+ +
Standard Error (stderr)
+ +
+

The Unix-standard output stream for errors. Programs write any error messages on +stderr, so that they can be separated from normal output.

+
+ +
Standard Input (stdin)
+ +
+

The Unix-standard input stream. Data can be redirected or piped into a program's stdin +from any source.

+
+ +
Standard Output (stdout)
+ +
+

The Unix-standard output stream. Normal text output from a program is written to +stdout, which is separate from the error messages reported on stderr and can be piped or +redirected into other programs' stdin or to a file.

+
+ +
Subnet
+ +
+

An IP address range that is part of a larger range. For instance, 192.168.1.0 is a +subnet of 192.168.0.0 (where 0 is a mask meaning “undefined”); it is, in +fact, the “.1” subnet.

+
+ +
Superblock
+ +
+

In Linux, partitions are discussed in terms of blocks. A block is 512 bytes. The +superblock is the first 512 bytes of a partition.

+
+ +
Supplemental disk
+ +
+

In Slackware, a floppy disk used during installation that contains neither the kernel +(which is on the boot disk) nor the root filesystem (which is on the root disk), but +additional needed files such as network modules or PCMCIA support.

+
+ +
Suspended process
+ +
+

A process which has been frozen until killed or resumed.

+
+ +
Swap space
+ +
+

Disk space used by the kernel as “virtual” RAM. It is slower than RAM, but +because disk space is cheaper, swap is usually more plentiful. Swap space is useful to +the kernel for holding lesser-used data and as a fallback when physical RAM is +exhausted.

+
+ +
Symbolic link
+ +
+

A special file that simply points to the location of another file. Symbolic links are +used to avoid data duplication when a file is needed in multiple locations.

+
+ +
Tagfile
+ +
+

A file used by the Slackware setup program during +installation, which describes a set of packages to be installed.

+
+ +
Terminal
+ +
+

A human-computer interface consisting of at least a screen (or virtual screen) and +some method of input (almost always at least a keyboard).

+
+ +
Toolkit, GUI
+ +
+

A GUI toolkit is a collection of libraries that provide a programmer with code to draw +“widgets” such as scrollbars, checkboxes, etc. and construct a graphical +interface. The GUI toolkit used by a program often defines its “look and +feel”.

+
+ +
UID
+ +
+

User Identifier. A unique number that identifies a user to the system. UIDs are used +by most programs instead of usernames because a number is easier to deal with; usernames +are generally only used when the user has to see things happen.

+
+ +
VESA
+ +
+

Video Electronics Standards Association. The term “VESA” is often used to +denote a standard specified by said Association. Nearly all modern video adapters are +VESA-compliant.

+
+ +
Virtual terminal
+ +
+

The use of software to simulate multiple terminals while using only a single set of +input/output devices (keyboard, monitor, mouse). Special keystrokes switch between +virtual terminals at a single physical terminal.

+
+ +
Window manager
+ +
+

An X program whose purpose is to provide a graphical interface beyond the simple +rectangle-drawing of the X Window System. Window managers generally provide titlebars, +menus for running programs, etc.

+
+ +
Working directory
+ +
+

The directory in which a program considers itself to be while running.

+
+ +
Wrapper program
+ +
+

A program whose sole purpose is to run other programs, but change their behavior in +some way by altering their environments or filtering their input.

+
+ +
X server
+ +
+

The program in the X Window System which interfaces with graphics hardware and handles +the actual running of X programs.

+
+ +
X Window System
+ +
+

Network-oriented graphical interface system used on most Unix-like operating systems, +including Linux.

+
+
+
+ +
+
+

Appendix A. The GNU General Public License

+ +

GNU GENERAL PUBLIC LICENSE
+
+Version 2, June 1991
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ +59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ +Everyone is permitted to copy and distribute verbatim copies of this
+ +license document, but changing it is not allowed.

+ +
+
+

A.1. Preamble

+ +

The licenses for most software are designed to take away your freedom to share and +change it. By contrast, the GNU General Public License is intended to guarantee your +freedom to share and change free software--to make sure the software is free for all its +users. This General Public License applies to most of the Free Software Foundation's +software and to any other program whose authors commit to using it. (Some other Free +Software Foundation software is covered by the GNU Library General Public License +instead.) You can apply it to your programs, too.

+ +

When we speak of free software, we are referring to freedom, not price. Our General +Public Licenses are designed to make sure that you have the freedom to distribute copies +of free software (and charge for this service if you wish), that you receive source code +or can get it if you want it, that you can change the software or use pieces of it in new +free programs; and that you know you can do these things.

+ +

To protect your rights, we need to make restrictions that forbid anyone to deny you +these rights or to ask you to surrender the rights. These restrictions translate to +certain responsibilities for you if you distribute copies of the software, or if you +modify it.

+ +

For example, if you distribute copies of such a program, whether gratis or for a fee, +you must give the recipients all the rights that you have. You must make sure that they, +too, receive or can get the source code. And you must show them these terms so they know +their rights.

+ +

We protect your rights with two steps: (1) copyright the software, and (2) offer you +this license which gives you legal permission to copy, distribute and/or modify the +software.

+ +

Also, for each author's protection and ours, we want to make certain that everyone +understands that there is no warranty for this free software. If the software is modified +by someone else and passed on, we want its recipients to know that what they have is not +the original, so that any problems introduced by others will not reflect on the original +authors' reputations.

+ +

Finally, any free program is threatened constantly by software patents. We wish to +avoid the danger that redistributors of a free program will individually obtain patent +licenses, in effect making the program proprietary. To prevent this, we have made it +clear that any patent must be licensed for everyone's free use or not licensed at +all.

+ +

The precise terms and conditions for copying, distribution and modification +follow.

+
+ +
+
+

A.2. TERMS AND CONDITIONS

+ +

TERMS AND CONDITIONS FOR COPYING, +DISTRIBUTION AND MODIFICATION

+ +
    +
  1. +

    This License applies to any program or other work which contains a notice placed by +the copyright holder saying it may be distributed under the terms of this General Public +License. The “Program”, below, refers to any such program or work, and a +“work based on the Program” means either the Program or any derivative work +under copyright law: that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another language. +(Hereinafter, translation is included without limitation in the term +“modification”.) Each licensee is addressed as “you”.

    + +

    Activities other than copying, distribution and modification are not covered by this +License; they are outside its scope. The act of running the Program is not restricted, +and the output from the Program is covered only if its contents constitute a work based +on the Program (independent of having been made by running the Program). Whether that is +true depends on what the Program does.

    +
  2. + +
  3. +

    You may copy and distribute verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and appropriately publish on +each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; and give any other +recipients of the Program a copy of this License along with the Program.

    + +

    You may charge a fee for the physical act of transferring a copy, and you may at your +option offer warranty protection in exchange for a fee.

    +
  4. + +
  5. +

    You may modify your copy or copies of the Program or any portion of it, thus forming a +work based on the Program, and copy and distribute such modifications or work under the +terms of Section 1 above, provided that you also meet all of these conditions:

    + +
      +
    1. +

      You must cause the modified files to carry prominent notices stating that you changed +the files and the date of any change.

      +
    2. + +
    3. +

      You must cause any work that you distribute or publish, that in whole or in part +contains or is derived from the Program or any part thereof, to be licensed as a whole at +no charge to all third parties under the terms of this License.

      +
    4. + +
    5. +

      If the modified program normally reads commands interactively when run, you must cause +it, when started running for such interactive use in the most ordinary way, to print or +display an announcement including an appropriate copyright notice and a notice that there +is no warranty (or else, saying that you provide a warranty) and that users may +redistribute the program under these conditions, and telling the user how to view a copy +of this License. (Exception: if the Program itself is interactive but does not normally +print such an announcement, your work based on the Program is not required to print an +announcement.)

      +
    6. +
    + +

    These requirements apply to the modified work as a whole. If identifiable sections of +that work are not derived from the Program, and can be reasonably considered independent +and separate works in themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you distribute the same +sections as part of a whole which is a work based on the Program, the distribution of the +whole must be on the terms of this License, whose permissions for other licensees extend +to the entire whole, and thus to each and every part regardless of who wrote it.

    + +

    Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to control the +distribution of derivative or collective works based on the Program.

    + +

    In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or distribution +medium does not bring the other work under the scope of this License.

    +
  6. + +
  7. +

    You may copy and distribute the Program (or a work based on it, under Section 2) in +object code or executable form under the terms of Sections 1 and 2 above provided that +you also do one of the following:

    + +
      +
    1. +

      Accompany it with the complete corresponding machine-readable source code, which must +be distributed under the terms of Sections 1 and 2 above on a medium customarily used for +software interchange; or,

      +
    2. + +
    3. +

      Accompany it with a written offer, valid for at least three years, to give any third +party, for a charge no more than your cost of physically performing source distribution, +a complete machine-readable copy of the corresponding source code, to be distributed +under the terms of Sections 1 and 2 above on a medium customarily used for software +interchange; or,

      +
    4. + +
    5. +

      Accompany it with the information you received as to the offer to distribute +corresponding source code. (This alternative is allowed only for noncommercial +distribution and only if you received the program in object code or executable form with +such an offer, in accord with Subsection b above.)

      +
    6. +
    + +

    The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all the source +code for all modules it contains, plus any associated interface definition files, plus +the scripts used to control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major components (compiler, +kernel, and so on) of the operating system on which the executable runs, unless that +component itself accompanies the executable.

    + +

    If distribution of executable or object code is made by offering access to copy from a +designated place, then offering equivalent access to copy the source code from the same +place counts as distribution of the source code, even though third parties are not +compelled to copy the source along with the object code.

    +
  8. + +
  9. +

    You may not copy, modify, sublicense, or distribute the Program except as expressly +provided under this License. Any attempt otherwise to copy, modify, sublicense or +distribute the Program is void, and will automatically terminate your rights under this +License. However, parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such parties remain in full +compliance.

    +
  10. + +
  11. +

    You are not required to accept this License, since you have not signed it. However, +nothing else grants you permission to modify or distribute the Program or its derivative +works. These actions are prohibited by law if you do not accept this License. Therefore, +by modifying or distributing the Program (or any work based on the Program), you indicate +your acceptance of this License to do so, and all its terms and conditions for copying, +distributing or modifying the Program or works based on it.

    +
  12. + +
  13. +

    Each time you redistribute the Program (or any work based on the Program), the +recipient automatically receives a license from the original licensor to copy, distribute +or modify the Program subject to these terms and conditions. You may not impose any +further restrictions on the recipients' exercise of the rights granted herein. You are +not responsible for enforcing compliance by third parties to this License.

    +
  14. + +
  15. +

    If, as a consequence of a court judgment or allegation of patent infringement or for +any other reason (not limited to patent issues), conditions are imposed on you (whether +by court order, agreement or otherwise) that contradict the conditions of this License, +they do not excuse you from the conditions of this License. If you cannot distribute so +as to satisfy simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. For +example, if a patent license would not permit royalty-free redistribution of the Program +by all those who receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from distribution of +the Program.

    + +

    If any portion of this section is held invalid or unenforceable under any particular +circumstance, the balance of the section is intended to apply and the section as a whole +is intended to apply in other circumstances.

    + +

    It is not the purpose of this section to induce you to infringe any patents or other +property right claims or to contest validity of any such claims; this section has the +sole purpose of protecting the integrity of the free software distribution system, which +is implemented by public license practices. Many people have made generous contributions +to the wide range of software distributed through that system in reliance on consistent +application of that system; it is up to the author/donor to decide if he or she is +willing to distribute software through any other system and a licensee cannot impose that +choice.

    + +

    This section is intended to make thoroughly clear what is believed to be a consequence +of the rest of this License.

    +
  16. + +
  17. +

    If the distribution and/or use of the Program is restricted in certain countries +either by patents or by copyrighted interfaces, the original copyright holder who places +the Program under this License may add an explicit geographical distribution limitation +excluding those countries, so that distribution is permitted only in or among countries +not thus excluded. In such case, this License incorporates the limitation as if written +in the body of this License.

    +
  18. + +
  19. +

    The Free Software Foundation may publish revised and/or new versions of the General +Public License from time to time. Such new versions will be similar in spirit to the +present version, but may differ in detail to address new problems or concerns.

    + +

    Each version is given a distinguishing version number. If the Program specifies a +version number of this License which applies to it and “any later version”, +you have the option of following the terms and conditions either of that version or of +any later version published by the Free Software Foundation. If the Program does not +specify a version number of this License, you may choose any version ever published by +the Free Software Foundation.

    +
  20. + +
  21. +

    If you wish to incorporate parts of the Program into other free programs whose +distribution conditions are different, write to the author to ask for permission. For +software which is copyrighted by the Free Software Foundation, write to the Free Software +Foundation; we sometimes make exceptions for this. Our decision will be guided by the two +goals of preserving the free status of all derivatives of our free software and of +promoting the sharing and reuse of software generally.

    +
  22. + +
  23. +

    NO WARRANTY

    + +

    BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, +TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE +COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE +RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM +PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION.

    +
  24. + +
  25. +

    IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL +OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM +(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES +SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES.

    +
  26. +
+ +

END OF TERMS AND CONDITIONS

+
+ +
+
+

A.3. How to Apply These Terms to +Your New Programs

+ +

If you develop a new program, and you want it to be of the greatest possible use to +the public, the best way to achieve this is to make it free software which everyone can +redistribute and change under these terms.

+ +

To do so, attach the following notices to the program. It is safest to attach them to +the start of each source file to most effectively convey the exclusion of warranty; and +each file should have at least the “copyright” line and a pointer to where +the full notice is found.

+ + + + + +
+
+<one line to give the program's name and a brief idea of what it does.>
+   Copyright (C) <year>  <name of author>
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA
+
+
+ +

Also add information on how to contact you by electronic and paper mail.

+ +

If the program is interactive, make it output a short notice like this when it starts +in an interactive mode:

+ + + + + +
+
+Gnomovision version 69, Copyright (C) year  name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+
+ +

The hypothetical commands `show w' and `show c' should show the appropriate parts of +the General Public License. Of course, the commands you use may be called something other +than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits +your program.

+ +

You should also get your employer (if you work as a programmer) or your school, if +any, to sign a “copyright disclaimer” for the program, if necessary. Here is +a sample; alter the names:

+ + + + + +
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+
+ +

This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may consider it more +useful to permit linking proprietary applications with the library. If this is what you +want to do, use the GNU Library General Public License instead of this License.

+
+
+
+ +
+ + + diff --git a/slackbook/html/booting-dual.html b/slackbook/html/booting-dual.html new file mode 100644 index 000000000..b74eb874b --- /dev/null +++ b/slackbook/html/booting-dual.html @@ -0,0 +1,341 @@ + + + + +Dual Booting + + + + + + + + + + + +
+

7.3 Dual Booting

+ +

Many users set up their computers to boot Slackware Linux and another operating +system. We've described several typical dual boot scenarios below, in case you are having +difficulty setting up your system.

+ +
+

7.3.1 +Windows

+ +

Setting up a computer with both MS Windows and Linux is probably the most common dual +boot scenario. There are numerous ways you can setup the booting, but this section will +cover two.

+ +

Often times when setting up a dual boot system, a person will devise a perfect plan +for where everything should go but mess up the installation order. It is very important +to understand that operating systems need to be installed in a certain order for a dual +boot setup to work. Linux always offers control over what, if anything, gets written to +the Master Boot Record. Therefore, it's always advisable to install Linux last. Windows +should be installed first, since it will always write its booter to the Master Boot +Record, overwriting any entry Linux may have put there.

+ +
+

7.3.1.1 Using LILO

+ +

Most people will want to use LILO to chose between Linux and Windows. As stated above, +you should install Windows first, then Linux.

+ +

Let's say you have a 40GB IDE hard disk as the only drive in your system. Let's also +say that you want to give half of that space to Windows and half of that space to Linux. +This will present a problem when trying to boot Linux.

+ + + + + +
+
+   20GB   Windows boot (C:)
+   1GB   Linux root (/)
+   19GB  Linux /usr (/usr)
+
+
+ +

You would also want to set aside an adequate amount of space for a Linux swap +partition. The unwritten rule is to use twice the amount of RAM you have in disk space. A +64MB system would have 128MB of swap, and so on. Adequate swap space is the discussion of +many flames on IRC and Usenet. There's no truly “right” way to do it, but +sticking with the rule above should be sufficient.

+ +

With your partitions laid out, you should proceed to install Windows. After that is +set up and working, you should install Linux. The LILO installation needs special +attention. You will want to select the expert mode for installing LILO.

+ +

Begin a new LILO configuration. You will want to install it to Master Boot Record so +that it can be used to choose between the two operating systems. From the menu, add your +Linux partition and add your Windows (or DOS) partition. Once that's complete, you can +install LILO.

+ +

Reboot the computer. LILO should load and will display a menu letting you select +between the operating systems you have installed. Select the name of the OS you wish to +load (these names were selected when you setup LILO).

+ +

LILO is quite a configurable boot loader. It's not just limited to booting Linux or +DOS. It can boot just about anything. The man pages for lilo(8) +and lilo.conf(5) provide more detailed information.

+ +

What if LILO doesn't work? There are instances where LILO just won't work on a +particular machine. Fortunately, there is another way to dual boot Linux and Windows.

+
+ +
+

7.3.1.2 Using LOADLIN

+ +

This method can be used if LILO doesn't work on your system, or if you just don't want +to set up LILO. This method is also ideal for the user that reinstalls Windows often. +Each time you reinstall Windows, it will overwrite the Master Boot Record, thus +destroying any LILO installation. With LOADLIN, you are not subject to that problem. The +biggest disadvantage is that you can only use LOADLIN to boot Linux.

+ +

With LOADLIN, you can install the operating systems in any order desired. Be careful +about installing things to the Master Boot Record, you do not want to do that. LOADLIN +relies on the Windows partition being bootable. So during the Slackware installation, +make sure you skip the LILO setup.

+ +

After installing the operating systems, copy the loadlinX.zip (where X is a version +number, such as 16a) file from root's home directory to your +Windows partition. Also copy your kernel image to the Windows partition. You will need to +be in Linux for this to work. This example shows how to do this:

+ + + + + +
+
+# mkdir /win
+# mount -t vfat /dev/hda1 /win
+# mkdir /win/linux
+# cd /root
+# cp loadlin* /win/linux
+# cp /boot/vmlinuz /win/linux
+# cd /win/linuz
+# unzip loadlin16a.zip
+
+
+ +

That will create a C:\LINUX directory on your Windows +partition (assuming it's /dev/hda1) and copy over the necessary +stuff for LOADLIN. After doing this, you will need to reboot into Windows to setup a boot +menu.

+ +

Once in Windows, get to a DOS prompt. First, we need to make sure the system is set to +not boot into the graphical interface.

+ + + + + +
+
+C:\> cd \
+C:\> attrib -r -a -s -h MSDOS.SYS
+C:\> edit MSDOS.SYS
+
+
+ +

Add this line to the file:

+ + + + + +
+
+BootGUI=0
+
+
+ +

Now save the file and exit the editor. Now edit C:\AUTOEXEC.BAT so we can add a boot menu. The following provides +an example of what a boot menu block in AUTOEXEC.BAT would look +like:

+ + + + + +
+
+cls
+echo System Boot Menu
+echo.
+echo 1 - Linux
+echo 2 - Windows
+echo.
+choice /c:12 "Selection? -> "
+if errorlevel 2 goto WIN
+if errorlevel 1 goto LINUX
+:LINUX
+cls
+echo "Starting Linux..."
+cd \linux
+loadlin c:\linux\vmlinuz root=/dev/hda2 ro
+goto END
+:WIN
+cls
+echo "Starting Windows..."
+win
+goto END
+:END
+
+
+ +

The key line is the one that runs LOADLIN. We tell it the kernel to load, the Linux +root partition, and that we want it mounted read-only initially.

+ +

The tools for these two methods are provided with Slackware Linux. There are numerous +other booters on the market, but these should work for most dual boot setups.

+
+ +
+

7.3.1.3 Deprecated Windows NT +Hack

+ +

This is the least common dual booting situation. In the days of old, LILO was unable +to boot Windows NT, requiring Linux users to hack NTLDR, which presented several more +problems than dual booting between Windows 9x and Linux. Understand that the following +instructions are deprecated. LILO has been able to boot Windows NT/2000/XP/2003 for many +years now. If you are using a legacy machine though, you may need to use just such a +hack.

+ +
    +
  1. +

    Install Windows NT

    +
  2. + +
  3. +

    Install Linux, making sure LILO is installed to the superblock of the Linux +partition

    +
  4. + +
  5. +

    Get the first 512 bytes of the Linux root partition and store it on the Windows NT +partition

    +
  6. + +
  7. +

    Edit C:\BOOT.INI under Windows NT to add a Linux option

    +
  8. +
+ +

Installing Windows NT should be fairly straightforward, as should installing Linux. +From there, it gets a little more tricky. Grabbing the first 512 bytes of the Linux +partition is easier than it sounds. You will need to be in Linux to accomplish this. +Assuming your Linux partition is /dev/hda2, issue this +command:

+ + + + + +
+
+# dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512
+
+
+ +

That's it. Now you need to copy bootsect.lnx to the Windows NT partition. Here's where +we run into another problem. Linux does not have stable write support for the NTFS +filesystem. If you installed Windows NT and formatted your drive as NTFS, you will need +to copy this file to a FAT floppy and then read from it under Windows NT. If you +formatted the Windows NT drive as FAT, you can simply mount it under Linux and copy the +file over. Either way, you will want to get /tmp/bootsect.lnx +from the Linux drive to C:\BOOTSECT.LNX on the Windows NT +drive.

+ +

The last step is adding a menu option to the Windows NT boot menu. Under Windows NT +open a command prompt.

+ + + + + +
+
+C:\WINNT> cd \
+C:\> attrib -r -a -s -h boot.ini
+C:\> edit boot.ini
+
+
+ +

Add this line to the end of the file:

+ + + + + +
+
+C:\bootsect.lnx="Slackware Linux"
+
+
+ +

Save the changes and exit the editor. When you reboot Windows NT, you will have a +Linux option on the menu. Choosing it will boot into Linux.

+
+
+ +
+

7.3.2 +Linux

+ +

Yes, people really do this. This is definitely the easiest dual boot scenario. You can +simply use LILO and add more entries to the /etc/lilo.conf +file. That's all there is to it.

+
+
+ + + + + diff --git a/slackbook/html/booting-loadlin.html b/slackbook/html/booting-loadlin.html new file mode 100644 index 000000000..d11754d34 --- /dev/null +++ b/slackbook/html/booting-loadlin.html @@ -0,0 +1,116 @@ + + + + +LOADLIN + + + + + + + + + + + +
+

7.2 LOADLIN

+ +

The other booting option that comes with Slackware Linux is LOADLIN. LOADLIN is a DOS +executable that can be used to start Linux from a running DOS system. It requires the +Linux kernel to be on the DOS partition so that LOADLIN can load it and properly boot the +system.

+ +

During the installation process, LOADLIN will be copied to root's home directory as a +.ZIP file. There is no automatic setup process for LOADLIN. You will need to copy the +Linux kernel (typically /boot/vmlinuz) and the LOADLIN file +from root's home directory to the DOS partition.

+ +

LOADLIN is useful if you would like to make a boot menu on your DOS partition. A menu +could be added to your AUTOEXEC.BAT file that would allow you +to pick between Linux or DOS. A choice of Linux would run LOADLIN, thus booting your +Slackware system. This AUTOEXEC.BAT file under Windows 95 will +provide a sufficient boot menu:

+ + + + + +
+
+   @ECHO OFF
+   SET PROMPT=$P$G
+   SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\
+   CLS
+   ECHO Please Select Your Operating System:
+   ECHO.
+   ECHO [1] Slackware Linux
+   ECHO [2] Windows 95
+   ECHO.
+   CHOICE /C:12 "Selection? -> "
+   IF ERRORLEVEL 2 GOTO WIN
+   IF ERRORLEVEL 1 GOTO LINUX
+   :WIN
+   CLS
+   ECHO Starting Windows 95...
+   WIN
+   GOTO END
+   :LINUX
+   ECHO Starting Slackware Linux...
+   CD \LINUX
+   LOADLIN C:\LINUX\VMLINUZ ROOT=<root partition device> RO
+   GOTO END
+   :END
+
+
+ +

You will want to specify your root partition as a Linux device name, like /dev/hda2 or something else. You can always use LOADLIN at the +command line. You simply use it in the same manner as it is in the example above. The +LOADLIN documentation comes with many examples on how to use it.

+
+ + + + + diff --git a/slackbook/html/booting.html b/slackbook/html/booting.html new file mode 100644 index 000000000..ca3b7871f --- /dev/null +++ b/slackbook/html/booting.html @@ -0,0 +1,202 @@ + + + + +Booting + + + + + + + + + + +
+

Chapter 7 Booting

+ +
+
+
Table of Contents
+ +
7.1 LILO
+ +
7.2 LOADLIN
+ +
7.3 Dual Booting
+
+
+ +

The process of booting your Linux system can sometimes be easy and sometimes be +difficult. Many users install Slackware on their computer and that's it. They just turn +it on and it's ready to use. Othertimes, simply booting the machine can be a chore. For +most users, LILO works best. Slackware includes LILO and Loadlin for booting Slackware +Linux. LILO will work from a hard drive partition, a hard drive's master boot record, or +a floppy disk, making it a very versatile tool. Loadlin works from a DOS command line, +killing DOS and invoking Linux.

+ +

Another popular utility for booting Linux is GRUB. GRUB is not included or officially +supported by Slackware. Slackware holds to the “tried and true” standard for +what gets included inside the distribution. While GRUB works well and includes some +features that LILO does not, LILO handles all the essential tasks of a boot loader +reliably with a proven track record. Being younger, GRUB hasn't quite lived up to that +legacy yet. As it is not included with Slackware, we do not discuss it here. If you wish +to use GRUB (perhaps it came with another Linux OS and you want to use it to dual-boot) +consult GRUB's documentation.

+ +

This section covers using LILO and Loadlin, the two booters included with Slackware. +It also explains some typical dual booting scenarios and how you could go about setting +it up.

+ +
+

7.1 LILO

+ +

The Linux Loader, or LILO, is the most popular booter in use on Linux systems. It is +quite configurable and can easily be used to boot other operating systems.

+ +

Slackware Linux comes with a menu-driven configuration utility called liloconfig. This program is first run during the setup process, but +you can invoke it later by typing liloconfig at the prompt.

+ +

LILO reads its settings from the /etc/lilo.conf(5) file. It +is not read each time you boot up, but instead is read each time you install LILO. LILO +must be reinstalled to the boot sector each time you make a configuration change. Many +LILO errors come from making changes to the lilo.conf file, but +failing to re-run lilo to install these changes. liloconfig will +help you build the configuration file so that you can install LILO for your system. If +you prefer to edit /etc/lilo.conf by hand, then reinstalling +LILO just involves typing /sbin/lilo (as root) at the prompt.

+ +

When you first invoke liloconfig, it will look like this:

+ +
+

Figure 7-1. liloconfig

+ +

+
+ +

If this is your first time setting up LILO, you should pick simple. Otherwise, you +might find expert to be faster if you are familiar with LILO and Linux. Selecting simple +will begin the LILO configuration.

+ +

If kernel frame buffer support is compiled into your kernel, liloconfig will ask which video resolution you would like to use. +This is the resolution that is also used by the XFree86 frame buffer server. If you do +not want the console to run in a special video mode, selecting normal will keep the +standard 80x25 text mode in use.

+ +

The next part of the LILO configuration is selecting where you want it installed. This +is probably the most important step. The list below explains the installation places:

+ +
+
+
Root
+ +
+

This option installs LILO to the beginning of your Linux root partition. This is the +safest option if you have other operating systems on your computer. It ensures that any +other booters are not overwritten. The disadvantage is that LILO will only load from here +if your Linux drive is the first drive on your system. This is why many people chose to +create a very small /boot partition as the first drive on their +system. This allows the kernel and LILO to be installed at the beginning of the drive +where LILO can find them. Previous versions of LILO contained an infamous flaw known as +the “1024 cylinder limit”. LILO was unable to boot kernels on partitions past +the 1024th cylinder. Recent editions of LILO have eliminated this problem.

+
+ +
Floppy
+ +
+

This method is even safer than the previous one. It creates a boot floppy that you can +use to boot your Linux system. This keeps the booter off the hard disk entirely, so you +only boot this floppy when you want to use Slackware. The flaws with this method are +obvious. Floppies are notoriously fickle, prone to failures. Secondly, the boot loader is +no longer self-contained within the computer. If you loose your floppy disk, you'll have +to make another to boot your system.

+
+ +
MBR
+ +
+

You will want to use this method if Slackware is the only operating system on your +computer, or if you will be using LILO to choose between multiple operating systems on +your computer. This is the most preferred method for installing LILO and will work with +almost any computer system.

+ +
+ + + + + +
Warning +

This option will overwrite any other booter you have in the MBR.

+
+
+
+
+
+ +

After selecting the installation location, liloconfig will +write the configuration file and install LILO. That's it. If you select the expert mode +you will receive a special menu. This menu allows you to tweak the /etc/lilo.conf file, add other operating systems to your boot menu, +and set LILO to pass special kernel parameters at boot time. The expert menu looks like +this:

+ +
+

Figure 7-2. liloconfig Expert Menu

+ +

+
+ +

Whatever your system configuration is, setting up a working boot loader is easy. liloconfig makes setting it up a cinch.

+
+
+ + + + + diff --git a/slackbook/html/booting/setup-lilo-expert-w.png b/slackbook/html/booting/setup-lilo-expert-w.png new file mode 100644 index 000000000..9c029d78f Binary files /dev/null and b/slackbook/html/booting/setup-lilo-expert-w.png differ diff --git a/slackbook/html/booting/setup-lilo-w.png b/slackbook/html/booting/setup-lilo-w.png new file mode 100644 index 000000000..638a29ff1 Binary files /dev/null and b/slackbook/html/booting/setup-lilo-w.png differ diff --git a/slackbook/html/docbook.css b/slackbook/html/docbook.css new file mode 100644 index 000000000..7d7cf7949 --- /dev/null +++ b/slackbook/html/docbook.css @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2001, 2003 The FreeBSD Documentation 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: doc/share/misc/docbook.css,v 1.7 2004/03/22 19:17:52 ceri Exp $ + */ + + +DIV.TITLEPAGE { + text-align: center; +} + +P.COPYRIGHT { + text-align: left; +} + +SPAN.ISBN { + text-align: left; +} + +DIV.LEGALNOTICE { + text-align: left; +} + +.USERINPUT { + font-weight: bold; +} + +BODY ADDRESS { + line-height: 1.3; + margin: .6em 0; +} + +BODY BLOCKQUOTE { + margin-top: .75em; + line-height: 1.5; + margin-bottom: .75em; +} + +HTML BODY { + margin: 1em 8% 1em 10%; + line-height: 1.2; +} + +.LEGALNOTICE { + font-size: small; + font-variant: small-caps; +} + +BODY DIV { + margin: 0; +} + +DL { + margin: .8em 0; + line-height: 1.2; +} + +BODY FORM { + margin: .6em 0; +} + +BODY H1 { + margin: .8em 0 0 -4%; + line-height: 1.3; +} + +BODY H2 { + margin: .8em 0 0 -4%; + line-height: 1.3; +} + +BODY H3 { + margin: .8em 0 0 -3%; + line-height: 1.3; +} + +BODY H4 { + margin: .8em 0 0 -3%; + line-height: 1.3; +} + +BODY H5 { + margin: .8em 0 0 -2%; + line-height: 1.3; +} + +BODY H6 { + margin: .8em 0 0 -1%; + line-height: 1.3; +} + +BODY HR { + margin: .6em +} + +BODY IMG.NAVHEADER { + margin: 0 0 0 -4%; +} + +OL { + margin: 0 0 0 5%; + line-height: 1.2; +} + +BODY TD { + line-height: 1.2 +} + +BODY TH { + line-height: 1.2; +} + +UL, BODY DIR, BODY MENU { + margin: 0 0 0 5%; + line-height: 1.2; +} + +HTML { + margin: 0; + padding: 0; +} + +BODY H1, BODY H2, BODY H3, BODY H4, BODY H5, BODY H6 { + margin-left: 0 +} + +.GUIMENU, .GUIMENUITEM, .GUISUBMENU, +.GUILABEL, .INTERFACE, .GUIBUTTON, +.SHORTCUT, .SHORTCUT .KEYCAP { + background-color: #F0F0F0; +} + +.ACCEL { + background-color: #F0F0F0; + text-decoration: underline; +} + +.PROGRAMLISTING, .SCREEN { + margin-left: 3ex; +} diff --git a/slackbook/html/emacs-basic-editing.html b/slackbook/html/emacs-basic-editing.html new file mode 100644 index 000000000..fbc5072b4 --- /dev/null +++ b/slackbook/html/emacs-basic-editing.html @@ -0,0 +1,227 @@ + + + + +Basic Editing + + + + + + + + + + + +
+

17.4 Basic +Editing

+ +

When you have opened a file, you can of course move around in it with the cursor. The +cursor keys and PgUp, PgDn do what you'd expect. Home and End jump to the beginning and end of the line. (In older versions, +they would actually jump to the beginning and end of the buffer.) However, there are also +Control and Meta (Alt) +key combos that move the cursor around. Because you do not need to move your hands to +another part of the keyboard for these, they are much quicker once you get used to them. +The most important such commands are listed in Table 17-1.

+ +
+

Table 17-1. Basic Emacs Editing Commands

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandResult
C-b go one character back
C-f go one character forward
C-n go one line down
C-p go one line up
C-a go to the beginning of the line
C-e go to the end of the line
M-b go one word back
M-f go one word forward
M-} go one paragraph forward
M-{ go one paragraph backward
M-a go one sentence backward
M-e go one sentence forward
C-d delete the character under the cursor
M-d delete until the end of the current word
C-v go down one screen (i.e., PgDn)
M-v go up one screen (i.e., PgUp)
M-< go to the beginning of the buffer
M-> go to the end of the buffer
C-_ undo the last change (can be repeated); note that you actually have to type Shift+Control+hyphen for +this.
C-k delete to end of line
C-s forward search
C-r backward search
+
+ +

Note that many Meta commands are parallel to the Control commands except that they operate on larger units: while C-f goes forward one character, M-f goes forward an entire word, etc.

+ +

Also note that M-< and M-> require you to type Shift+Alt+comma and Shift+Alt+dot +respectively, since < and > are on Shift+comma and Shift+dot. (Unless of course you have a different keyboard layout from the +standard US layout.)

+ +

Note that C-k deletes (kills, as it is +commonly called) all the text after the cursor to the end of the line, but doesn't delete +the line itself (i.e., it doesn't delete the final newline). It only deletes the line if +there was no text after the cursor. In other words, in order to delete a complete line, +you have to put the cursor at the beginning of the line, and then hit C-k twice: once to delete the text on the line, +once to delete the line itself.

+
+ + + + + diff --git a/slackbook/html/emacs-buffers.html b/slackbook/html/emacs-buffers.html new file mode 100644 index 000000000..53516de81 --- /dev/null +++ b/slackbook/html/emacs-buffers.html @@ -0,0 +1,112 @@ + + + + +Buffers + + + + + + + + + + + +
+

17.2 Buffers

+ +

In Emacs, the concept of “buffers” is essential. Every file that you open +is loaded into its own buffer. Furthermore, Emacs has several special buffers, which do +not contain a file but are used for other things. Such special buffers usually have a +name that starts and ends with an asterisk. For example, the buffer that Emacs shows when +it is first started, is the so-called *scratch* buffer. In the *scratch* buffer, you can +type text in the normal way, but text that is typed there is not saved when Emacs is +closed.

+ +

There is one other special buffer you need to know about, and that is the minibuffer. +This buffer consists of only one line, and is always on the screen: it is the very last +line of the Emacs window, below the status bar for the current buffer. The minibuffer is +where Emacs shows messages for the user, and it is also the place where commands that +require some user input are executed. For example, when you open a file, Emacs will ask +for its name in the minibuffer.

+ +

Switching from one buffer to another can be done with the command C-x b. This will prompt +you for the name of a buffer (a buffer's name is usually the name of the file you are +editing in it), and it gives a default choice, which is normally the buffer that you were +in before you switched to or created the current buffer. Just hitting Enter will switch to that default +buffer.

+ +

If you want to switch to another buffer than the default offered by Emacs, just type +its name. Note that you can use so-called Tab-completion here: type +the first few letters of the buffer's name and hit Tab; Emacs will +then complete the name of the buffer. Tab completion works +everywhere in Emacs where it makes sense.

+ +

You can get a list of open buffers by hitting C-x C-b. This command will +usually split the screen in two, displaying the buffer you were working in in the top +half, and a new buffer called *Buffer List* in the bottom half. This buffer contains a +list of all the buffers, their sizes and modes, and the files, if any, that those buffers +are visiting (as it is called in Emacs). You can get rid of this split screen by typing +C-x 1.

+ +
+ + + + + +
Note +

Under X, the list of buffers is also available in the Buffer menu in the menu bar.

+
+
+
+ + + + + diff --git a/slackbook/html/emacs-modes.html b/slackbook/html/emacs-modes.html new file mode 100644 index 000000000..ed22a3543 --- /dev/null +++ b/slackbook/html/emacs-modes.html @@ -0,0 +1,141 @@ + + + + +Modes + + + + + + + + + + + +
+

17.3 Modes

+ +

Every buffer in Emacs has an associated mode. This mode is very different from the +idea of modes in vi: a mode tells you what kind of buffer you +are in. For example, there is text-mode for normal text files, but there are also modes +such as c-mode for editing C programs, sh-mode for editing shell scripts, latex-mode for +editing LaTeX files, mail-mode for editing email and news +messages, etc. A mode provides special customizations and functionality that is useful +for the kind of file you are editing. It is even possible for a mode to redefine keys and +key commands. For example, in Text mode, the Tab key simply jumps to the next tab stop, +but in many programming language modes, the Tab key indents the +current line according to the depth of the block that line is in.

+ +

The modes mentioned above are called major modes. Each buffer has exactly one major +mode. Additionally, a buffer can have one or more minor modes. A minor mode provides +additional features that may be useful for certain editing tasks. For example, if you hit +the INSERT key, you invoke overwrite-mode, which does what you'd +expect. There is also an auto-fill-mode, which is handy in combination with text-mode or +latex-mode: it causes each line that you type to be automatically wrapped once the line +reaches a certain number of characters. Without auto-fill-mode, you have to type M-q to fill out a paragraph. (Which you can also +use to reformat a paragraph after you've edited some text in it and it is no longer +nicely filled out.)

+ +
+

17.3.1 Opening +files

+ +

To open a file in Emacs, type

+ + + + + +
+
+C-x C-f
+
+
+ +

Emacs will ask you for the name of the file, filling in some default path for you +(which is usually ~/ ). After you type the filename (you can +use Tab completion) and hit ENTER , Emacs +will open the file in a new buffer and display that buffer on the screen.

+ +
+ + + + + +
Note +

Emacs will automatically create a new buffer, it will not load the file into the +current buffer.

+
+
+ +

In order to create a new file in emacs, you cannot just go typing right away. You +first have to create a buffer for it, and come up with a filename. You do this by typing +C-x C-f and typing a filename, just as if you were opening an existing file. +Emacs will notice that the file you typed doesn't exist, and will create a new buffer and +report “(New file)” in the minibuffer.

+ +

When you type C-x C-f and then enter a directory name instead of a +filename, Emacs will create a new buffer in which you will find a list of all the files +in that directory. You can move the cursor to the file that you are looking for and type +, and Emacs will open it. (There are in fact a lot more actions you can perform here, +such as deleting, renaming and moving files, etc. Emacs is now in dired-mode, which is +basically a simple file manager.)

+ +

When you have typed C-x C-f and suddenly change your mind, you can type +C-g to cancel the action. C-g works almost everywhere where you want to +cancel an action or command that you've started but don't want to finish.

+
+
+ + + + + diff --git a/slackbook/html/emacs-saving-files.html b/slackbook/html/emacs-saving-files.html new file mode 100644 index 000000000..7e2ee9e19 --- /dev/null +++ b/slackbook/html/emacs-saving-files.html @@ -0,0 +1,136 @@ + + + + +Saving Files + + + + + + + + + + + +
+

17.5 Saving +Files

+ +

In order to save a file, you type

+ + + + + +
+
+C-x C-s
+
+
+ +

Emacs will not ask you for a filename, the buffer will just be saved to the file it +was loaded from. If you want to save your text to another file, type

+ + + + + +
+
+C-x C-w
+
+
+ +

When you save the file for the first time in this session, Emacs will normally save +the old version of your file to a backup file, which has the same name appended with a +tilde: so if you're editing a file “cars.txt”, +Emacs will create a backup “cars.txt~”.

+ +

This backup file is a copy of the file that you opened. While you are working, Emacs +will also regularly create an auto-save copy of the work you are doing, to a file named +with hash signs: #cars.txt#. This backup is deleted when you +save the file with C-x C-s.

+ +

When you are done editing a file, you can kill the buffer that holds it by typing

+ + + + + +
+
+C-x k
+
+
+ +

Emacs will then ask you which buffer you want to kill, with the current buffer as +default, which you can select by hitting ENTER. If you haven't +saved your file yet, Emacs will ask you if you really want to kill the buffer.

+ +
+

17.5.1 Quitting +Emacs

+ +

When you are done with Emacs altogether, you can type

+ + + + + +
+
+C-x C-c
+
+
+ +

This quits Emacs. If you have any unsaved files, Emacs will tell you so, and ask if +you want to save them each in turn. If you answer no to any of these, Emacs will ask for +one final confirmation and then quit.

+
+
+ + + + + diff --git a/slackbook/html/emacs.html b/slackbook/html/emacs.html new file mode 100644 index 000000000..8c6479cd1 --- /dev/null +++ b/slackbook/html/emacs.html @@ -0,0 +1,173 @@ + + + + +Emacs + + + + + + + + + + +
+

Chapter 17 Emacs

+ +
+
+
Table of Contents
+ +
17.1 Starting emacs
+ +
17.2 Buffers
+ +
17.3 Modes
+ +
17.4 Basic Editing
+ +
17.5 Saving Files
+
+
+ +

While vi (with its clones) is without a doubt the most +ubiquitous editor on Unix-like systems, Emacs comes in a good second. Instead of using +different “modes”, like vi does, it uses Control and Alt key combinations to enter +commands, in much the same way that you can use Control and Alt key combinations in a word processor and indeed in many other +applications to execute certain functions. (Though it should be noted that the commands +rarely correspond; so while many modern applications use Ctrl-C/ X/ V for copying, +cutting and pasting, Emacs uses different keys and actually a somewhat different +mechanism for this.)

+ +

Also unlike vi, which is an (excellent) editor and nothing +more, Emacs is a program with near endless capabilities. Emacs is (for the most part) +written in Lisp, which is a very powerful programming language that has the peculiar +property that every program written in it is automatically a Lisp compiler of its own. +This means that the user can extend Emacs, and in fact write completely new programs +“in Emacs”.

+ +

As a result, Emacs is not just an editor anymore. There are many add-on packages for +Emacs available (many come with the program's source) that provide all sorts of +functionality. Many of these are related to text editing, which is after all Emacs' basic +task, but it doesn't stop there. There are for example several spreadsheet programs for +Emacs, there are databases, games, mail and news clients (the top one being Gnus), +etc.

+ +

There are two main versions of Emacs: GNU Emacs (which is the version that comes with +Slackware) and XEmacs. The latter is not a version for Emacs running under X. In fact, both Emacs +and XEmacs run on the console as well as under X. XEmacs was once started as a project to +tidy up the Emacs code. Currently, both versions are being actively developed, and there +is in fact much interaction between the two development teams. For the present chapter, +it is immaterial whether you use Emacs or XEmacs, the differences between them are not +relevant to the normal user.

+ +
+

17.1 Starting +emacs

+ +

Emacs can be started from the shell by simply typing emacs. +When you are running X, Emacs will (normally) come up with its own X window, usually with +a menu bar at the top, where you can find the most important functions. On startup, Emacs +will first show a welcome message, and then after a few seconds will drop you in the +*scratch* buffer. (See Section 17.2.)

+ +
+

+
+ +

You can also start Emacs on an existing file by typing

+ + + + + +
+
+% emacs /etc/resolv.conf
+
+
+ +

This will cause Emacs to load the specified file when it starts up, skipping the +welcome message.

+ +
+

17.1.1 Command +Keys

+ +

As mentioned above, Emacs uses Control and Alt combinations for commands. The usual convention is to write these +with C-letter and M-letter, respectively. So C-x means Control+x, and M-x means Alt+x. (The letter M is used instead of A because +originally the key was not the Alt key but the Meta key. The Meta key has all but disappeared +from computer keyboards, and in Emacs the Alt key has taken over +its function.)

+ +

Many Emacs commands consist of sequences of keys and key combinations. For example, C-x C-c (that is Control-x +followed by Control-c ) quits Emacs, C-x C-s saves the current file. Keep in mind that C-x C-b is not the same as C-x b. The former means Control-x followed by Control-b, while the latter means Control-x followed by just 'b'.

+
+
+
+ + + + + diff --git a/slackbook/html/emacs/emacs.png b/slackbook/html/emacs/emacs.png new file mode 100644 index 000000000..7571dec42 Binary files /dev/null and b/slackbook/html/emacs/emacs.png differ diff --git a/slackbook/html/essential-sysadmin-hardusers.html b/slackbook/html/essential-sysadmin-hardusers.html new file mode 100644 index 000000000..f9ad54488 --- /dev/null +++ b/slackbook/html/essential-sysadmin-hardusers.html @@ -0,0 +1,202 @@ + + + + +Users and Groups, the Hard Way + + + + + + + + + + + +
+

12.2 Users and Groups, the Hard Way

+ +

Of course, it is possible to add, modify, and remove users and groups without using +the scripts and programs that come with Slackware. It's not really difficult, although +after reading this process, you'll probably find it much easier to use the scripts. +However, it's important to know how your password information is actually stored, in case +you ever need to recover this information and don't have the Slackware tools +available.

+ +

First, we'll add a new user to the /etc/passwd(5), /etc/shadow(5), and /etc/group(5) files. +The passwd file holds some information about the users on your +system, but (strangely enough) not their passwords. This was once the case, but was +halted long ago for security reasons. The passwd file must be readable by all users, but +you don't want encrypted passwords world-readable, as would-be intruders can use the +encrypted passwords as a starting point for decrypting a user's password. Instead, the +encrypted passwords are kept in the shadow file, which is only readable by root, and +everyone's password is entered into the passwd file simply as +“x”. The group file +lists all the groups and who is in each.

+ +

You can use the vipw command to edit the /etc/passwd file safely, and the vigr +command to edit the /etc/group file safely. Use vipw -s to edit the /etc/shadow file +safely. (“Safely” in this context means someone else won't be able to modify +the file you're editing at the moment. If you're the only administrator of your system, +you're probably safe, but it's best to get into good habits from the start.)

+ +

Let's examine the /etc/passwd file and look at how to add a +new user. A typical entry in passwd looks like this:

+ + + + + +
+
+chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash
+
+
+ +

Each line is an entry for one user, and fields on each line are separated by a colon. +The fields are the login name, encrypted password (“x” for everyone on a Slackware system, since Slackware uses +shadow passwords), user ID, group ID, the optional finger information (separated by +commas), home directory, and shell. To add a new user by hand, add a new line at the end +of the file, filling in the appropriate information.

+ +

The information you add needs to meet some requirements, or your new user may have +problems logging in. First, make sure that the password field is an x, and that both the user name and user ID is unique. Assign the +user a group, either 100 (the “users” group in Slackware) or your default +group (use its number, not its name). Give the user a valid home directory (which you'll +create later) and shell (remember, valid shells are listed in /etc/shells).

+ +

Next, we'll need to add an entry in the /etc/shadow file, which holds the encrypted +passwords. A typical entry looks like this:

+ + + + + +
+
+chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::
+
+
+ +

Again, each line is an entry for one person, with each field delimited by a colon. The +fields are (in order) login name, encrypted password, days since the Epoch (January 1, +1970) that the password was last changed, days before the password may be changed, days +after which the password must be changed, days before password expiration that the user +is notified, days after expiration that the account is disabled, days since the Epoch +that the account is disabled, and a reserved field.

+ +

As you can see, most of that is for account expiration information. If you aren't +using expiration information, you only need to fill in a few fields with some special +values. Otherwise, you'll need to do some calculations and decision making before you can +fill those fields in. For a new user, just put some random garbage in the password field. +Don't worry about what the password is right now, because you're going to change it in a +minute. The only character you cannot include in the password field is a colon. Leave the +“days since password was changed” field blank as well. Fill in 0, 99999, and 7 just as you see in the example entry, and leave the other fields +blank.

+ +

(For those of you who think you see my encrypted password above and believe you've got +a leg up on breaking into my system, go right ahead. If you can crack that password, +you'll know the password to a firewalled test system. Now that's useful :) )

+ +

All normal users are members of the “users” +group on a typical Slackware system. However, if you want to create a new group, or add +the new user to additional groups, you'll need to modify the /etc/group file. Here is a typical entry:

+ + + + + +
+
+cvs::102:chris,logan,david,root
+
+
+ +

The fields are group name, group password, group ID, and group members, separated by +commas. Creating a new group is a simple matter of adding a new line with a unique group +ID, and listing all the users you want to be in the group. Any users that are in this new +group and are logged in will have to log out and log back in for those changes to take +effect.

+ +

At this point, it might be a good idea to use the pwck and +grpck commands to verify that the changes you've made are +consistent. First, use pwck -r and grpck +-r: the -r switch makes no changes, but lists the changes +you would be asked to make if you ran the command without the switch. You can use this +output to decide whether you need to further modify any files, to run pwck or grpck without the -r switch, or to simply leave your changes as they are.

+ +

At this point, you should use the passwd command to create a +proper password for the user. Then, use mkdir to create the new +user's home directory in the location you entered into the /etc/passwd file, and use chown to change +the owner of the new directory to the new user.

+ +

Removing a user is a simple matter of deleting all of the entries that exist for that +user. Remove the user's entry from /etc/passwd and /etc/shadow, and remove the login name from any groups in the /etc/group file. If you wish, delete the user's home directory, the +mail spool file, and his crontab entry (if they exist).

+ +

Removing groups is similar: remove the group's entry from /etc/group.

+
+ + + + + diff --git a/slackbook/html/essential-sysadmin-shutdown.html b/slackbook/html/essential-sysadmin-shutdown.html new file mode 100644 index 000000000..a97c78f6d --- /dev/null +++ b/slackbook/html/essential-sysadmin-shutdown.html @@ -0,0 +1,236 @@ + + + + +Shutting Down Properly + + + + + + + + + + + +
+

12.3 Shutting Down Properly

+ +

It is very important that you shut down your system properly. Simply turning the power +off with the power switch can cause serious filesystem damage. While the system is on, +files are in use even if you aren't doing anything. Remember that there are many +processes running in the background all the time. These processes are managing the system +and keep a lot of files open. When the system's power is switched off, these files are +not closed properly and may become corrupted. Depending on what files become damaged, the +system might be rendered completely unusable! In any case, you'll have to go through a +long filesystem check procedure on the next reboot.

+ +
+ + + + + +
Note +

If you configured your system with a journalling filesystem, like ext3 or reiserfs, +you'll be partially protected from filesystem damage, and your filesystem check on reboot +will be shorter than if you had used a filesystem without journalling, like ext2. +However, this safety net is no excuse for improperly shutting down your system! A +journalling FS is meant to protect your files from events beyond your control, not from +your own laziness.

+
+
+ +

In any case, when you want to reboot or power down your computer, it is important to +do so properly. There are several ways of doing so; you can pick whichever one you think +is the most fun (or least amount of work). Since a shutdown and a reboot are similar +procedures, most of the ways for powering off the system can also be applied to +rebooting.

+ +

The first method is through the shutdown(8) program, and it +is probably the most popular. shutdown can be used to reboot or +turn off the system at a given time, and can display a message to all the logged-in users +of the system telling them that the system is going down.

+ +

The most basic use of shutdown to power down the computer is:

+ + + + + +
+
+# shutdown -h now
+
+
+ +

In this case, we are not going to send a custom message to the users; they will see +shutdown's default message. “now” is the time that we want to shutdown, and the “-h” means to halt the system. This is not a very friendly way +to run a multi-user system, but it works just fine on your home computer. A better method +on a multiuser system would be to give everyone a little advance warning:

+ + + + + +
+
+# shutdown -h +60
+
+
+ +

This would shutdown the system in one hour (60 minutes), which would be just fine on a +normal multiuser system. Vital systems should have their downtime scheduled far in +advance, and you should post warnings about the downtime in any appropriate locations +used for system notifications (email, bulletin board, /etc/motd, whatever).

+ +

Rebooting the system uses the same command, but substitutes “-r” for “-h”:

+ + + + + +
+
+# shutdown -r now
+
+
+ +

You can use same time notation with shutdown -r that you +could with shutdown -h. There are a lot of other things that you +can do with shutdown to control when to halt or reboot the +machine; see the man page for more details.

+ +

The second way of shutting down or powering off the computer is to use the halt(8) and reboot(8) commands. As the +names indicate, halt will immediately halt the operating system, +and reboot will reboot the system. (reboot is actually just a symbolic link to halt.) They are invoked like so:

+ + + + + +
+
+# halt
+# reboot
+
+
+ +

A lower-level way to reboot or shutdown the system is to talk directly to init. All the other methods are simply convenient ways to talk to +init, but you can directly tell it what to do using telinit(8) (note that it only has one “l”). Using telinit will tell init what runlevel to +drop into, which will cause a special script to be run. This script will kill or spawn +processes as needed for that runlevel. This works for rebooting and shutting down because +both of those are special runlevels.

+ + + + + +
+
+# telinit 0
+
+
+ +

Runlevel 0 is halt mode. Telling init to enter runlevel 0 +will cause all processes to be killed off, the filesystems unmounted, and the machine to +be halted. This is a perfectly acceptable way to bring down the system. On many laptops +and modern desktop computers, this will also cause the machine to be turned off.

+ + + + + +
+
+# telinit 6
+
+
+ +

Runlevel 6 is reboot mode. All processes will be killed off, the filesystems will be +unmounted, and the machine will be rebooted. This is a perfectly acceptable method of +rebooting the system.

+ +

For the curious, when switching to runlevel 0 or 6, whether by using shutdown, halt, or reboot, the script /etc/rc.d/rc.6 is run. +(The script /etc/rc.d/rc.0 is another symbolic link, to /etc/rc.d/rc.6.) You can customize this file to your tastes--but be +sure to test your changes carefully!

+ +

There is one last method of rebooting the system. All the other methods require you to +be logged in as root. However, it is possible to reboot the +machine even if you aren't root, provided that you have physical access to the keyboard. +Using Control+Alt+Delete (the "three-fingered salute") will cause the machine to +immediately reboot. (Behind the scenes, the shutdown command is +called for you when you use Control+Alt+Delete.) The salute doesn't always work when using X Windows--you may +need to use Control+Alt+F1 (or another Function key) to switch to a non-X Windows terminal +before using it.

+ +

Finally, the file that ultimately controls every aspect of startup and shutdown is the +/etc/inittab(5) file. In general, you should not need to modify +this file, but it may give you insight into why some things work the way they do. As +always, see the man pages for further details.

+
+ + + + + diff --git a/slackbook/html/essential-sysadmin.html b/slackbook/html/essential-sysadmin.html new file mode 100644 index 000000000..85e127ed1 --- /dev/null +++ b/slackbook/html/essential-sysadmin.html @@ -0,0 +1,524 @@ + + + + +Essential System Administration + + + + + + + + + + +
+

Chapter 12 Essential System +Administration

+ +
+
+
Table of Contents
+ +
12.1 Users and +Groups
+ +
12.2 Users and Groups, the Hard +Way
+ +
12.3 Shutting Down Properly
+
+
+ +

Whoa whoa whoa whoa whoa.... I know what you're thinking. “I'm not a system +administrator! I don't even want to be a system administrator!”

+ +

Fact is, you are the administrator of any computers for which you have the root password. This might be your desktop box with one or two +users, or it might be a big server with several hundred. Regardless, you'll need to know +how to manage users, and how to shut down the system safely. These tasks seem simple, but +they have some quirks to keep in mind.

+ +
+

12.1 +Users and Groups

+ +

As mentioned in Chapter 8, you shouldn't normally use your +system logged in as root. Instead, you should create a normal +user account for everyday use, and use the root account only for system administration +tasks. To create a user, you can either use the tools supplied with Slackware, or you can +edit the password files by hand.

+ +
+

12.1.1 Supplied Scripts

+ +

The easiest way to manage users and groups is with the supplied scripts and programs. +Slackware includes the programs adduser, userdel(8), chfn(1), chsh(1), and passwd(1) for dealing with +users. The commands groupadd(8), groupdel(8), and groupmod(8) are for +dealing with groups. With the exception of chfn, chsh, and passwd, these programs are +generally only run as root, and are therefore located in /usr/sbin. chfn, chsh, and passwd can be run by anyone, and +are located in /usr/bin.

+ +

Users can be added with the adduser program. We'll start out +by going through the whole procedure, showing all the questions that are asked and a +brief description of what everything means. The default answer is in the brackets, and +can be chosen for almost all the questions, unless you really want to change +something.

+ + + + + +
+
+# adduser
+Login name for new user []: jellyd
+
+
+ +

This is the name that the user will use to login. Traditionally, login names are eight +characters or fewer, and all lowercase characters. (You may use more than eight +characters, or use digits, but avoid doing so unless you have a fairly important +reason.)

+ +

You can also provide the login name as an argument on the command line:

+ + + + + +
+
+# adduser jellyd
+
+
+ +

In either case, after providing the login name, adduser will prompt for the user +ID:

+ + + + + +
+
+User ID ('UID') [ defaults to next available ]:
+
+
+ +

The user ID (UID) is how ownerships are really determined in Linux. Each user has a +unique number, starting at 1000 in Slackware. You can pick a UID for the new user, or you +can just let adduser assign the user the next free one.

+ + + + + +
+
+Initial group [users]:
+
+
+ +

All users are placed into the users group by default. You +might want to place the new user into a different group, but it is not recommended unless +you know what you're doing.

+ + + + + +
+
+Additional groups (comma separated) []:
+
+
+ +

This question allows you to place the new user into additional groups. It is possible +for a user to be in several groups at the same time. This is useful if you have +established groups for things like modifying web site files, playing games, and so on. +For example, some sites define group wheel as the only group +that can use the su command. Or, a default Slackware +installation uses the sys group for users authorized to play +sounds through the internal sound card.

+ + + + + +
+
+Home directory [/home/jellyd]
+
+
+ +

Home directories default to being placed under /home. If you +run a very large system, it's possible that you have moved the home directories to a +different location (or to many locations). This step allows you to specify where the +user's home directory will be.

+ + + + + +
+
+Shell [ /bin/bash ]
+
+
+ +

bash is the default shell for Slackware Linux, and will be +fine for most people. If your new user comes from a Unix background, they may be familiar +with a different shell. You can change their shell now, or they can change it themselves +later using the chsh command.

+ + + + + +
+
+Expiry date (YYYY-MM-DD) []:
+
+
+ +

Accounts can be set up to expire on a specified date. By default, there is no +expiration date. You can change that, if you'd like. This option might be useful for +people running an ISP who might want to make an account expire upon a certain date, +unless they receive the next year's payment.

+ + + + + +
+
+New account will be created as follows:
+---------------------------------------
+Login name:         jellyd
+UID:                [ Next available ]
+Initial group:      users
+Additional groups:  [ None ]
+Home directory:     /home/jellyd
+Shell:              /bin/bash
+Expiry date:        [ Never ]
+
+
+ +

This is it... if you want to bail out, hit Control+C. Otherwise, press ENTER to go ahead and +make the account.

+ +

You now see all the information that you've entered about the new account and are +given the opportunity to abort the account creation. If you entered something +incorrectly, you should hit Control+C and +start over. Otherwise, you can hit enter and the account +will be made.

+ + + + + +
+
+Creating new account...
+
+Changing the user information for jellyd
+Enter the new value, or press return for the default
+        Full Name []: Jeremy
+        Room Number []: Smith 130
+        Work Phone []:
+        Home Phone []:
+        Other []:
+
+
+ +

All of this information is optional. You don't have to enter any of this if you don't +want to, and the user can change it at any time using chfn. +However, you might find it helpful to enter at least the full name and a phone number, in +case you need to get in touch with the person later.

+ + + + + +
+
+Changing password for jellyd
+Enter the new password (minimum of 5, maximum of 127 characters)
+Please use a combination of upper and lower case letters and numbers.
+New password:
+Re-enter new password:
+Password changed.
+
+Account setup complete.
+
+
+ +

You'll have to enter a password for the new user. Generally, if the new user is not +physically present at this point, you'll just pick some default password and tell the +user to change it to something more secure.

+ +
+ + + + + +
Note +

Choosing a Password: Having a +secure password is the first line of defense against getting cracked. You do not want to +have an easily guessed password, because that makes it easier for someone to break into +your system. Ideally, a secure password would be a random string of characters, including +upper and lowercase letters, numbers, and random characters. (A tab character might not +be a wise choice, depending on what kinds of computers you'll be logging in from.) There +are many software packages that can generate random passwords for you; search the +Internet for these utilities.

+ +

In general, just use common sense: don't pick a password that is someone's birthday, a +common phrase, something found on your desk, or anything that is easily associated with +you. A password like “secure1” or any other password you see in print or +online is also bad.

+
+
+ +

Removing users is not difficult at all. Just run userdel with +the name of the account to remove. You should verify that the user is not logged in, and +that no processes are running as that user. Also, remember that once you've deleted the +user, all of that user's password information is gone permanently.

+ + + + + +
+
+# userdel jellyd
+
+
+ +

This command removes that annoying jellyd user from your +system. Good riddance! :) The user is removed from the /etc/passwd, /etc/shadow, and /etc/group files, but doesn't remove the user's home directory.

+ +

If you'd wanted to remove the home directory as well, you would instead use this +command:

+ + + + + +
+
+# userdel -r jellyd
+
+
+ +

Temporarily disabling an account will be covered in the next section on passwords, +since a temporary change involves changing the user's password. Changing other account +information is covered in Section 12.1.3.

+ +

The programs to add and remove groups are very simple. groupadd will just add another entry to the /etc/group file with a unique group ID, while groupdel will remove the specified group. It is up to you to edit +/etc/group to add users to a specific group. For example, to +add a group called cvs:

+ + + + + +
+
+# groupadd cvs
+
+
+ +

And to remove it:

+ + + + + +
+
+# groupdel cvs
+
+
+
+ +
+

12.1.2 Changing Passwords

+ +

The passwd program changes passwords by modifying the /etc/shadow file. This file holds all the passwords for the system +in an encrypted format. In order to change your own password, you would type:

+ + + + + +
+
+% passwd
+Changing password for chris
+Old password:
+Enter the new password (minumum of 5, maximum of 127 characters)
+Please use a combination of upper and lower case letters and numbers.
+New password:
+
+
+ +

As you can see, you are prompted to enter your old password. It won't appear on the +screen as you type it, just like when you log in. Then, you are prompted to enter the new +password. passwd performs a lot of checks on your new password, +and it will complain if your new password doesn't pass its checks. You can ignore its +warnings if you want. You will be prompted to enter your new password a second time for +confirmation.

+ +

If you are root, you can also change another user's +password:

+ + + + + +
+
+# passwd ted
+
+
+ +

You will then have to go through the same procedure as above, except that you won't +have to enter the user's old password. (One of the many benefits of being root...)

+ +

If needed, you can also temporarily disable an account, and reenable it at a later +time if needed. Both disabling an account and reenabling an account can be done with passwd. To disable an account, do the following as root:

+ + + + + +
+
+# passwd -l david
+
+
+ +

This will change david's password to something that can never match any encrypted +value. You would reenable the account by using:

+ + + + + +
+
+# passwd -u david
+
+
+ +

Now, david's account is back to normal. Disabling an account might be useful if the +user doesn't play by the rules you've set up on your system, or if they've exported a +very large copy of xeyes(1) to your X desktop.

+
+ +
+

12.1.3 Changing User Information

+ +

There are two pieces of information that users can change at any time: their shell and +their finger information. Slackware Linux uses chsh (change +shell) and chfn (change finger) to modify these values.

+ +

A user can pick any shell that is listed in the /etc/shells +file. For most people, /bin/bash will do just fine. Others might +be familiar with a shell found on their system at work or school and want to use what +they already know. To change your shell, use chsh:

+ + + + + +
+
+% chsh
+Password:
+Changing the login shell for chris
+Enter the new value, or press return for the default
+        Login Shell [/bin/bash]:
+
+
+ +

After entering your password, enter the full path to the new shell. Make sure that +it's listed in the /etc/shells(5) file first. The root user can also change any user's shell by running chsh with a username as the argument.

+ +

The finger information is the optional information such as your full name, phone +numbers, and room number. This can be changed using chfn, and +follows the same procedure as it did during account creation. As usual, root can change anyone's finger information.

+
+
+
+ + + + + diff --git a/slackbook/html/file-commands-copymove.html b/slackbook/html/file-commands-copymove.html new file mode 100644 index 000000000..ddb7179a9 --- /dev/null +++ b/slackbook/html/file-commands-copymove.html @@ -0,0 +1,166 @@ + + + + +Copy and Move + + + + + + + + + + + +
+

10.5 Copy +and Move

+ +
+

10.5.1 cp

+ +

cp(1) copies files. DOS users will notice its similarity to +the copy command. There are many options for cp , so you should have a look at the man page before using it.

+ +

A common use is to use cp to copy a file from one location to +another. For example:

+ + + + + +
+
+% cp hejaz /tmp
+
+
+ +

This copies the hejaz file from the current directory to the +/tmp directory.

+ +

Many users prefer to keep the timestamps preserved, as in this example:

+ + + + + +
+
+% cp -a hejaz /tmp
+
+
+ +

This ensures that the timestamps are not modified in the copy.

+ +

To recursively copy the contents of a directory to another directory, you would issue +this command:

+ + + + + +
+
+% cp -R mydir /tmp
+
+
+ +

That will copy the mydir directory to the /tmp directory.

+ +

Also if you wish to copy a directory or a file and keep all it's old permissions and +time stamps and keep it exactly the same use cp -p.

+ + + + + +
+
+% ls -l file
+-rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
+% cp -p file /tmp
+% ls -l /tmp/file
+-rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
+
+
+ +

cp has many more options that are discussed in detail in the +online manual page.

+
+ +
+

10.5.2 mv

+ +

mv(1) moves files from one place to another. Sounds simple +enough doesn't it?

+ + + + + +
+
+% mv oldfile /tmp/newfile
+
+
+ +

mv has a few useful command line options that are detailed in +the man page. In practice, mv is almost never used with +commandline options.

+
+
+ + + + + diff --git a/slackbook/html/file-commands-creation.html b/slackbook/html/file-commands-creation.html new file mode 100644 index 000000000..cfbf72050 --- /dev/null +++ b/slackbook/html/file-commands-creation.html @@ -0,0 +1,143 @@ + + + + +Creation: touch and mkdir + + + + + + + + + + + +
+

10.4 +Creation: touch and mkdir

+ +
+

10.4.1 touch

+ +

touch(1) is used to change the timestamp on a file. You can +change access timestamps and modification timestamps with this command. If the file +specified does not exist, touch will create a zero length file +with the name specified. To mark a file with the current system time, you would issue +this command:

+ + + + + +
+
+% ls -al file1
+-rw-r--r--    1 root     root        9779 Feb  7 21:41 file1
+% touch file1
+% ls -al file1
+-rw-r--r--    1 root     root        9779 Feb  8 09:17 file1
+
+
+ +

There are several options for touch, including options to +specify which timestamp to modify, the time to use, and many more. The online manual page +discusses these in detail.

+
+ +
+

10.4.2 mkdir

+ +

mkdir(1) will create a new directory. You simply specify the +directory to create when you run mkdir. This example creates the hejaz directory in the current directory:

+ + + + + +
+
+% mkdir hejaz
+
+
+ +

You can also specify a path, like this:

+ + + + + +
+
+% mkdir /usr/local/hejaz
+
+
+ +

The -p option will tell mkdir to +make any parent directories. The above example will fail if /usr/local does not exist. The -p option +will create /usr/local and /usr/local/hejaz:

+ + + + + +
+
+% mkdir -p /usr/local/hejaz
+
+
+
+
+ + + + + diff --git a/slackbook/html/file-commands-deletion.html b/slackbook/html/file-commands-deletion.html new file mode 100644 index 000000000..5b4277c66 --- /dev/null +++ b/slackbook/html/file-commands-deletion.html @@ -0,0 +1,189 @@ + + + + +Deletion: rm and rmdir + + + + + + + + + + + +
+

10.6 +Deletion: rm and rmdir

+ +
+

10.6.1 rm

+ +

rm(1) removes files and directory trees. DOS users will +notice the similarity to both the del and deltree commands. rm can be very dangerous +if you do not watch yourself. While it is sometimes possible to retrieve a recently +deleted file, it can be complicated (and potentially costly) and is beyond the scope of +this book.

+ +

To remove a single file, specify its name when you run rm:

+ + + + + +
+
+% rm file1
+
+
+ +

If the file has write permissions removed, you may get a permission denied error +message. To force removal of the file no matter what, pass the -f option, like this:

+ + + + + +
+
+% rm -f file1
+
+
+ +

To remove an entire directory, you use the -r and -f options together. This is a good example of how to delete the +entire contents of your hard drive. You really don't want to do this. But here's the +command anyway:

+ + + + + +
+
+# rm -rf /
+
+
+ +

Be very careful with rm; you can shoot yourself in the foot. +There are several command line options, which are discussed in detail in the online +manual page.

+
+ +
+

10.6.2 rmdir

+ +

rmdir(1) removes directories from the filesystem. The +directory must be empty before it can be removed. The syntax is simply:

+ + + + + +
+
+% rmdir <directory>
+
+
+ +

This example will remove the hejaz subdirectory in the +current working directory:

+ + + + + +
+
+% rmdir hejaz
+
+
+ +

If that directory does not exist, rmdir will tell you. You +can also specify a full path to a directory to remove, as this example shows:

+ + + + + +
+
+% rmdir /tmp/hejaz
+
+
+ +

That example will try to remove the hejaz directory inside +the /tmp directory.

+ +

You can also remove a directory and all of its parent directories by passing the -p option.

+ + + + + +
+
+% rmdir -p /tmp/hejaz
+
+
+ +

This will first try to remove the hejaz directory inside /tmp. If that is successful, it will try to remove /tmp. rmdir will continue this until an +error is encountered or the entire tree specified is removed.

+
+
+ + + + + diff --git a/slackbook/html/file-commands-link.html b/slackbook/html/file-commands-link.html new file mode 100644 index 000000000..8a3784fa7 --- /dev/null +++ b/slackbook/html/file-commands-link.html @@ -0,0 +1,105 @@ + + + + +Aliasing files with ln + + + + + + + + + + + +
+

10.7 Aliasing +files with ln

+ +

ln(1) is used to create links between files. These links can +be either hard links or soft (symbolic) links. The differences between the two kinds of +links were discussed in Section 9.3. If you +wanted to make a symbolic link to the directory /var/media/mp3 +and place the link in your home directory, you would do this:

+ + + + + +
+
+% ln -s /var/media/mp3 ~/mp3
+
+
+ +

The -s option tells ln to make a +symbolic link. The next option is the target of the link, and the final option is what to +call the link. In this case, it will just make a file called mp3 in your home directory that points to /var/media/mp3. You can call the link itself whatever you want by +just changing the last option.

+ +

Making a hard link is just as simple. All you have to do is leave off the -s option. Hard links may not normally refer to directories or span +file systems, however. To create a hard link /usr/bin/email to +/usr/bin/mutt, simply type the following:

+ + + + + +
+
+# ln /usr/bin/mutt /usr/bin/email
+
+
+
+ + + + + diff --git a/slackbook/html/file-commands-output.html b/slackbook/html/file-commands-output.html new file mode 100644 index 000000000..e2419b276 --- /dev/null +++ b/slackbook/html/file-commands-output.html @@ -0,0 +1,147 @@ + + + + +Simple Output: cat and echo + + + + + + + + + + + +
+

10.3 Simple +Output: cat and echo

+ +
+

10.3.1 cat

+ +

cat(1) is short for “concatenate”. It was +originally designed to merge text files into one, but can be used for many other +purposes.

+ +

To merge two or more files into one, you simply list the files after the cat command and then redirect the new output to a file. cat works with standard input and standard output, so you have to +use the shell redirection characters. For example:

+ + + + + +
+
+% cat file1 file2 file3 > bigfile
+
+
+ +

This command takes the contents of file1, file2, and file3 and merges it all +together. The new output is sent to standard out.

+ +

One can also use cat to display files. Many people cat text files through the more or less commands, like this:

+ + + + + +
+
+% cat file1 | more
+
+
+ +

That will display the file1 file and pipe it through the more command so that you only get one screen at a time.

+ +

Another common use for cat is copying files. You can copy any +file around with cat, like this:

+ + + + + +
+
+% cat /bin/bash > ~/mybash
+
+
+ +

The /bin/bash program is copied to your home directory and +named mybash.

+ +

cat has many uses and the ones discussed here are just a few. +Since cat makes extensive use of standard input and standard +output, it is ideal for use in shell scripts or part of other complex commands.

+
+ +
+

10.3.2 echo

+ +

The echo(1) command displays the specified text on the +screen. You specify the string to display after the echo +command. By default echo will display the string and print a +newline character after it. You can pass the -n option to +suppress the printing of the newline. The -e option will cause +echo to search for escape characters in the string and execute +them.

+
+
+ + + + + diff --git a/slackbook/html/file-commands-pagers.html b/slackbook/html/file-commands-pagers.html new file mode 100644 index 000000000..731c464b4 --- /dev/null +++ b/slackbook/html/file-commands-pagers.html @@ -0,0 +1,144 @@ + + + + +Pagers: more, less, and most + + + + + + + + + + + +
+

10.2 Pagers: +more, less, and most

+ +
+

10.2.1 more

+ +

more(1) is what we call a pager utility. Oftentimes the +output of a particular command is too big to fit on one screen. The individual commands +do not know how to fit their output to separate screens. They leave this job to the pager +utility.

+ +

The more command breaks the output into individual screens +and waits for you to press the space bar before continuing on to the next screen. +Pressing the enter key will advance the output one line. Here is a good example:

+ + + + + +
+
+% cd /usr/bin
+% ls -l
+
+
+ +

That should scroll for a while. To break up the output screen by screen, just pipe it +through more:

+ + + + + +
+
+% ls -l | more
+
+
+ +

That is the pipe character (shift backslash). The pipe is short for saying take the +output of ls and feed it into more. You +can pipe just about anything through the more command, not just +ls. Piping is also covered in Section 8.2.3.

+
+ +
+

10.2.2 less

+ +

The more command is quite handy, but often you will find that +you have advanced past the screen you wanted. more does not provide a way to go back. The +less(1) command provides this functionality. It is used in the +same way as the more command, so the previous examples apply +here too. So, less is more than more. +Joost Kremers puts it this way:

+ + +
+

less is more, but more more than more is, so more is less less, so use more less if you want less more.

+
+
+ +
+

10.2.3 most

+ +

Where more and less leave off, most(1) picks back up. If less is more than +more, most is more than less. Whereas the other pagers can only display one file at a time, +most is capable of viewing any number of files, as long as each +file's window is at least 2 lines long. most has a lot of +options, check the man page for full details.

+
+
+ + + + + diff --git a/slackbook/html/file-commands.html b/slackbook/html/file-commands.html new file mode 100644 index 000000000..b541735d7 --- /dev/null +++ b/slackbook/html/file-commands.html @@ -0,0 +1,275 @@ + + + + +Handling Files and Directories + + + + + + + + + + +
+

Chapter 10 Handling Files and +Directories

+ + + +

Linux aims to the most Unix-like it can be. Traditionally, Unix operating systems have +been command-line oriented. We do have a graphical user interface in Slackware, but the +command-line is still the main level of control for the system. Therefore, it is +important to understand some of the basic file management commands.

+ +

The following sections explain the common file management commands and provide +examples of how they are used. There are many other commands, but these will help you get +started. Also, the commands are only briefly discussed here. You will find more detail in +the accompanying man pages for each command.

+ +
+

10.1 +Navigation : ls, cd, and pwd

+ +
+

10.1.1 ls

+ +

This command lists files in a directory. Windows and DOS users will notice its +similarity to the dir command. By itself, ls(1) will list the files in the current directory. To see what's in +your root directory, you could issue these commands:

+ + + + + +
+
+% cd /
+% ls
+bin   cdr    dev  home  lost+found  proc  sbin   tmp  var
+boot  cdrom  etc  lib   mnt         root  suncd  usr  vmlinuz
+
+
+ +

The problem a lot of people have with that output is that you cannot easily tell what +is a directory and what is a file. Some users prefer that ls add +a type identifier to each listing, like this:

+ + + + + +
+
+% ls -FC
+bin/   cdr/    dev/  home/  lost+found/  proc/  sbin/   tmp/  var/
+boot/  cdrom/  etc/  lib/   mnt/         root/  suncd/  usr/  vmlinuz
+
+
+ +

Directories get a slash at the end of the name, executable files get an asterisk at +the end of the name, and so on.

+ +

ls can also be used to get other statistics on files. For +example, to see the creation dates, owners, and permissions, you would look at a long +listing:

+ + + + + +
+
+% ls -l
+drwxr-xr-x   2 root     bin          4096 May  7 09:11 bin/
+drwxr-xr-x   2 root     root         4096 Feb 24 03:55 boot/
+drwxr-xr-x   2 root     root         4096 Feb 18 01:10 cdr/
+drwxr-xr-x  14 root     root         6144 Oct 23 18:37 cdrom/
+drwxr-xr-x   4 root     root        28672 Mar  5 18:01 dev/
+drwxr-xr-x  10 root     root         4096 Mar  8 03:32 etc/
+drwxr-xr-x   8 root     root         4096 Mar  8 03:31 home/
+drwxr-xr-x   3 root     root         4096 Jan 23 21:29 lib/
+drwxr-xr-x   2 root     root        16384 Nov  1 08:53 lost+found/
+drwxr-xr-x   2 root     root         4096 Oct  6 12:47 mnt/
+dr-xr-xr-x  62 root     root            0 Mar  4 15:32 proc/
+drwxr-x--x  12 root     root         4096 Feb 26 02:06 root/
+drwxr-xr-x   2 root     bin          4096 Feb 17 02:02 sbin/
+drwxr-xr-x   5 root     root         2048 Oct 25 10:51 suncd/
+drwxrwxrwt   4 root     root       487424 Mar  7 20:42 tmp/
+drwxr-xr-x  21 root     root         4096 Aug 24 03:04 usr/
+drwxr-xr-x  18 root     root         4096 Mar  8 03:32 var/
+
+
+ +

Suppose you want to get a listing of the hidden files in the current directory. This +command will do just that:

+ + + + + +
+
+% ls -a
+.              bin   cdrom  home        mnt   sbin   usr
+..             boot  dev    lib         proc  suncd  var
+.pwrchute_tmp  cdr   etc    lost+found  root  tmp    vmlinuz
+
+
+ +

Files beginning with a period (called dot files) are hidden when you run ls. You will only see them if you pass the -a option.

+ +

There are many more options that can be found in the online manual page. Don't forget +that you can combine options that you pass to ls.

+
+ +
+

10.1.2 cd

+ +

The cd command is used to change working directories. You +simply type cd followed by the path name to change to. Here are +some examples:

+ + + + + +
+
+darkstar:~$ cd /bin
+darkstar:/bin$ cd usr
+bash: cd: usr: No such file or directory
+darkstar:/bin$ cd /usr
+darkstar:/usr$ ls
+bin
+darkstar:/usr$ cd bin
+darkstar:/usr/bin$
+
+
+ +

Notice that without the preceding slash, it tries to change to a directory in the +current directory. Also executing cd with no options will move +you to your home directory.

+ +

The cd command is not like the other commands. It is a +builtin shell command. Shell builtins are discussed in Section 8.3.1. This may not make any +sense to you right now. Basically it means there is no man page for this command. +Instead, you have to use the shell help. Like this:

+ + + + + +
+
+% help cd
+
+
+ +

It will display the options for cd and how to use them.

+
+ +
+

10.1.3 pwd

+ +

The pwd command is used to show your current location. To use +the pwd command just type pwd. For +example:

+ + + + + +
+
+% cd /bin
+% pwd
+/bin
+% cd /usr
+% cd bin
+% pwd
+/usr/bin
+
+
+
+
+
+ + + + + diff --git a/slackbook/html/filesystem-structure-links.html b/slackbook/html/filesystem-structure-links.html new file mode 100644 index 000000000..451270e5e --- /dev/null +++ b/slackbook/html/filesystem-structure-links.html @@ -0,0 +1,105 @@ + + + + +Links + + + + + + + + + + + +
+

9.3 Links

+ +

Links are pointers between files. With links, you can have files exist in many +locations and be accessible by many names. There are two types of links: hard and +soft.

+ +

Hard links are names for a particular file. They can only exist within a single +filesystem and are only removed when the real name is removed from the system. These are +useful in some cases, but many users find the soft link to be more versatile.

+ +

The soft link, also called a symbolic link, can point to a file outside of its +filesystem. It is actually a small file containing the information it needs. You can add +and remove soft links without affecting the actual file. And since a symbolic link is +actually a small file containing its own information, they can even point at a directory. +It's rather common to have /var/tmp actually be a symbolic link +to /tmp for example.

+ +

Links do not have their own set of permissions or ownerships, but instead reflect +those of the file they point to. Slackware uses mostly soft links. Here is a common +example:

+ + + + + +
+
+% ls -l /bin/sh
+lrwxrwxrwx   1 root     root     4 Apr  6 12:34 /bin/sh -> bash
+
+
+ +

The sh shell under Slackware is actually bash. Removing links is done using rm. The +ln command is used to create links. These commands will be +discussed in more depth in Chapter 10.

+ +

It's very important to be careful about symlinks in particular. Once, I was working on +a machine that was consistently failing to back-up to tape each night. Two symlinks had +been made to directories beneath each other. The back-up software kept appending those +same directories to the tape until it was out of space. Normally, a set of checks will +prevent creating a symlink in this situation, but ours was a special case.

+
+ + + + + diff --git a/slackbook/html/filesystem-structure-mounting.html b/slackbook/html/filesystem-structure-mounting.html new file mode 100644 index 000000000..e09694e40 --- /dev/null +++ b/slackbook/html/filesystem-structure-mounting.html @@ -0,0 +1,184 @@ + + + + +Mounting Devices + + + + + + + + + + + +
+

9.4 Mounting Devices

+ +

As was previously discussed in Section 4.1.1, all the +drives and devices in your computer are one big filesystem. Various hard drive +partitions, CD-ROMs, and floppies are all placed in the same tree. In order to attach +these drives to the filesystem so that you can access them, you have to use the mount(1) and umount(1) commands.

+ +

Some devices are automatically mounted when you boot up your computer. These are +listed in the /etc/fstab file. Anything that you want to be +mounted automatically gets an entry in that file. For other devices, you'll have to issue +a command every time you want to use the device.

+ +
+

9.4.1 fstab

+ +

Let's look at an example of the /etc/fstab file:

+ + + + + +
+
+% cat /etc/fstab
+/dev/sda1       /               ext2        defaults        1   1
+/dev/sda2       /usr/local      ext2        defaults        1   1
+/dev/sda4       /home           ext2        defaults        1   1
+/dev/sdb1       swap            swap        defaults        0   0
+/dev/sdb3       /export         ext2        defaults        1   1
+none            /dev/pts        devpts      gid=5,mode=620  0   0
+none            /proc           proc        defaults        0   0
+/dev/fd0        /mnt            ext2        defaults        0   0
+/dev/cdrom      /mnt/cdrom      iso9660     ro              0   0
+
+
+ +

The first column is the device name. In this case, the devices are five partitions +spread out across two SCSI hard drives, two special filesystems that don't need a device, +a floppy, and a CD-ROM drive. The second column is where the device will be mounted. This +needs to be a directory name, except in the case of a swap partition. The third column is +the filesystem type of the device. For normal Linux filesystems, this will be ext2 (second extended filesystem). CD-ROM drives are iso9660, and Windows-based devices will either be msdos or vfat.

+ +

The fourth column is a listing of options that apply to the mounted filesystem. +defaults is fine for just about everything. However, read-only devices should be given +the ro flag. There are a lot of options that can be used. +Check the fstab(5) man page for more information. The last two +columns are used by fsck and other commands that need to +manipulate the devices. Check the man page for that information as well.

+ +

When you install Slackware Linux, the setup program will build much of the fstab file.

+
+ +
+

9.4.2 mount and +umount

+ +

Attaching another device to your filesystem is easy. All you have to do is use the mount command, along with a few options. Using mount can simplified if the device has an entry in the /etc/fstab file. For example, let's say that I wanted to mount my +CD-ROM drive and that my fstab file looked like the example from +the previous section. I would call mount like so:

+ + + + + +
+
+% mount /cdrom
+
+
+ +

Since there is an entry in fstab for that mount point, mount knows what options to use. If there wasn't an entry for that +device, I would have to use several options for mount:

+ + + + + +
+
+% mount -t iso9660 -o ro /dev/cdrom /cdrom
+
+
+ +

That command line includes the same information as the example fstab did, but we'll go over all the parts anyways. The -t iso9660 is the filesystem type of the device to mount. In this +case, it would be the iso9660 filesystem which is what CD-ROM drives most commonly use. +The -o ro tells mount to mount the device read-only. The /dev/cdrom is the name of the device to mount, and /cdrom is the location on the filesystem to mount the drive.

+ +

Before you can remove a floppy, CD-ROM, or other removable device that is currently +mounted, you'll have to unmount it. That is done using the umount command. Don't ask where the “n” went because we +couldn't tell you. You can use either the mounted device or the mount point as the +argument to umount. For example, if you wanted to unmount the +CD-ROM from the previous example, either of these commands would work:

+ + + + + +
+
+# umount /dev/cdrom
+# umount /cdrom
+
+
+
+
+ + + + + diff --git a/slackbook/html/filesystem-structure-nfs.html b/slackbook/html/filesystem-structure-nfs.html new file mode 100644 index 000000000..720cda6e6 --- /dev/null +++ b/slackbook/html/filesystem-structure-nfs.html @@ -0,0 +1,78 @@ + + + + +NFS Mounts + + + + + + + + + + + +
+

9.5 +NFS Mounts

+ +

NFS stands for the Network Filesystem. It is not really part of the real filesystem, +but can be used to add parts to the mounted filesystem.

+ +

Large Unix environments often times share the same programs, sets of home directories, +and mail spool. The problem of getting the same copy to each machine is solved with NFS. +We can use NFS to share one set of home directories between all of the workstations. The +workstations then mount that NFS share as if it were on their own machines.

+ +

See Section +5.6.2 and the man pages for exports(5), nfsd(8), and mountd(8) for more +information.

+
+ + + + + diff --git a/slackbook/html/filesystem-structure-permissions.html b/slackbook/html/filesystem-structure-permissions.html new file mode 100644 index 000000000..0f951e777 --- /dev/null +++ b/slackbook/html/filesystem-structure-permissions.html @@ -0,0 +1,314 @@ + + + + +Permissions + + + + + + + + + + + +
+

9.2 Permissions

+ +

Permissions are the other important part of the multiuser aspects of the filesystem. +With these, you can change who can read, write, and execute files.

+ +

The permission information is stored as four octal digits, each specifying a different +set of permissions. There are owner permissions, group permissions, and world +permissions. The fourth octal digit is used to store special information such as set user +ID, set group ID, and the sticky bit. The octal values assigned to the permission modes +are (they also have letters associated with them that are displayed by programs such as +ls and can be used by chmod):

+ +
+

Table 9-1. Octal Permission Values

+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Permission TypeOctal ValueLetter Value
“sticky” bit1t
set user ID4s
set group ID2s
read4r
write2w
execute1x
+
+ +

You add the octal values for each permission group. For example, if you want the group +permissions to be “read” and “write”, you would use +“6” in the group portion of the permission information.

+ +

bash's default permissions are:

+ + + + + +
+
+% ls -l /bin/bash
+-rwxr-xr-x   1 root     bin  477692 Mar 21 19:57 /bin/bash
+
+
+ +

The first dash would be replaced with a “d” if this was a directory. The +three permission groups (owner, group, and world) are displayed next. We see that the +owner has read, write, and execute permissions (rwx). The +group has only read and execute (r-x). And everyone else has +only read and execute (r-x).

+ +

How would we set permissions on another file to resemble bash's? First, let's make an example file:

+ + + + + +
+
+% touch /tmp/example
+% ls -l /tmp/example
+-rw-rw-r---  1 david    users    0 Apr 19 11:21 /tmp/example
+
+
+ +

We will use chmod(1) (which means “change mode”) +to set the permissions on the example file. Add the octal numbers for the permissions you +want. For the owner to have read, write, and execute, we would have a value of 7. Read and execute would have 5. Run +those together and pass them to chmod like this:

+ + + + + +
+
+% chmod 755 /tmp/example
+% ls -l /tmp/example
+-rwxr-xr-x   1 david    users    0 Apr 19 11:21 /tmp/example
+
+
+ +

Now you may be thinking, “Why didn't it just create a file with those +permissions in the first place?” Well the answer is simple. bash includes a nice little built-in called umask. This is included with most Unix shells as well, and controls +what file permissions are assigned to newly created files. We discussed bash built-ins to some degree in Section 8.3.1. umask takes a little getting used to. It works very similar to chmod, only in reverse. You specify the octal values you do not wish +to have present in newly created files. The default umask value is 0022.

+ + + + + +
+
+% umask
+0022
+% umask 0077
+% touch tempfile
+% ls -l tempfile
+-rw--------  1 david    users    0 Apr 19 11:21 tempfile
+
+
+ +

See the man page for bash for more information.

+ +

To set special permissions with chmod, add the numbers +together and place them in the first column. For example, to make it set user ID and set +group ID, we use 6 as the first column:

+ + + + + +
+
+% chmod 6755 /tmp/example
+% ls -l /tmp/example
+-rwsr-sr-x   1 david    users    0 Apr 19 11:21 /tmp/example
+
+
+ +

If the octal values confuse you, you can use letters with chmod. The permission groups are represented as:

+ +
+ +++ + + + + + + + + + + + + + + + + + + + + +
Owneru
Groupg
Worldo
All of the abovea
+
+ +

To do the above, we would have to use several command lines:

+ + + + + +
+
+% chmod a+rx /tmp/example
+% chmod u+w /tmp/example
+% chmod ug+s /tmp/example
+
+
+ +

Some people prefer the letters over the numbers. Either way will result in the same +set of permissions.

+ +

The octal format is often faster, and the one you see most often used in shell +scripts. Sometimes the letters are more powerful however. For example, there's no easy +way to change one group of permissions while preserving the other groups on files and +directories when using the octal format. This is trivial with the letters.

+ + + + + +
+
+% ls -l /tmp/
+-rwxr-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
+-rwxr-x---   1 alan    users    0 Apr 19 11:21 /tmp/example1
+----r-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
+% chmod g-rwx /tmp/example?
+-rwx---r-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
+-rwx------   1 alan    users    0 Apr 19 11:21 /tmp/example1
+-------r-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
+
+
+ +

We mentioned set user ID and set group ID permissions in several places above. You may +be wondering what this is. Normally when you run a program, it is operating under your +user account. That is, it has all the permissions that you as a user have. The same is +true for the group. When you run a program, it executes under your current group. With +set user ID permissions, you can force the program to always run as the program owner +(such as “root”). Set group ID is the same, but for the group.

+ +

Be careful with this, set user ID and set group ID programs can open major security +holes on your system. If you frequently set user ID programs that are owned by root, you are allowing anyone to run that program and run it as root. Since root has no restrictions on +the system, you can see how this would pose a major security problem. In short, it's not +bad to use set user ID and set group ID permissions, just use common sense.

+
+ + + + + diff --git a/slackbook/html/filesystem-structure.html b/slackbook/html/filesystem-structure.html new file mode 100644 index 000000000..843c07c5d --- /dev/null +++ b/slackbook/html/filesystem-structure.html @@ -0,0 +1,168 @@ + + + + +Filesystem Structure + + + + + + + + + + +
+

Chapter 9 Filesystem +Structure

+ +
+
+
Table of Contents
+ +
9.1 Ownership
+ +
9.2 Permissions
+ +
9.3 Links
+ +
9.4 Mounting Devices
+ +
9.5 NFS Mounts
+
+
+ +

We have already discussed the directory structure in Slackware Linux. By this point, +you should be able to find files and directories that you need. But there is more to the +filesystem than just the directory structure.

+ +

Linux is a multiuser operating system. Every aspect of the system is multiuser, even +the filesystem. The system stores information like who owns a file and who can read it. +There are other unique parts about the filesystems, such as links and NFS mounts. This +section explains these, as well as the multiuser aspects of the filesystem.

+ +
+

9.1 Ownership

+ +

The filesystem stores ownership information for each file and directory on the system. +This includes what user and group own a particular file. The easiest way to see this +information is with the ls command:

+ + + + + +
+
+% ls -l /usr/bin/wc
+-rwxr-xr-x   1 root     bin    7368 Jul 30  1999 /usr/bin/wc
+
+
+ +

We are interested in the third and fourth columns. These contain the username and +group name that owns this file. We see that the user “root” and the group “bin” own this file.

+ +

We can easily change the file owners with the chown(1) (which +means “change owner”) and chgrp(1) (which means +“change group”) commands. To change the file owner to daemon, we would use chown:

+ + + + + +
+
+# chown daemon /usr/bin/wc
+
+
+ +

To change the group owner to “root”, we would +use chgrp:

+ + + + + +
+
+# chgrp root /usr/bin/wc
+
+
+ +

We can also use chown to specify the user and group owners +for a file:

+ + + + + +
+
+# chown daemon:root /usr/bin/wc
+
+
+ +

In the above example, the user could have used a period instead of a colon. The result +would have been the same; however, the colon is considered better form. Use of the period +is deprecated and may be removed from future versions of chown +to allow usernames with periods in them. These usernames tend to be very popular with +Windows Exchange Servers and are encountered most commonly in email addresses such as: +mr.jones@example.com. In slackware, administrators are advised +to stay away from such usernames because some scripts still use the period to indicate +the user and group of a file or directory. In our example, chmod +would interpret mr.jones as user “mr” and group +“jones”.

+ +

File ownership is a very important part of using a Linux system, even if you are the +only user. You sometimes need to fix ownerships on files and device nodes.

+
+
+ + + + + diff --git a/slackbook/html/glossary.html b/slackbook/html/glossary.html new file mode 100644 index 000000000..efdb63236 --- /dev/null +++ b/slackbook/html/glossary.html @@ -0,0 +1,647 @@ + + + + +Glossary + + + + + + + + + + +
+

Glossary

+ +
+
Account
+ +
+

All of the information about a user, including username, password, finger information, +UID and GID, and home directory. To create an account is to add and define a user.

+
+ +
Background
+ +
+

Any process that is running without accepting or controlling the input of a terminal +is said to be running in the background.

+
+ +
Boot disk
+ +
+

A floppy disk containing an operating system (in our case, the Linux kernel) from +which a computer can be started.

+
+ +
Compile
+ +
+

To convert source code to machine-readable “binary” code.

+
+ +
Daemon
+ +
+

A program designed to run in the background and, without user intervention, perform a +specific task (usually providing a service).

+
+ +
Darkstar
+ +
+

The default hostname in Slackware; your computer will be called darkstar if you do not +specify some other name.

+ +

One of Patrick Volkerding's development machines, named after “Dark Star”, +a song by the Grateful Dead.

+
+ +
Desktop Environment
+ +
+

A graphical user interface (GUI) that runs atop the X Window System and provides such +features as integrated applications, cohesive look-and-feel between programs and +components, file and window management capabilities, etc. A step beyond the simple window +manager.

+
+ +
Device driver
+ +
+

A chunk of code in the kernel that directly controls a piece of hardware.

+
+ +
Device node
+ +
+

A special type of file in the /dev filesystem that +represents a hardware component to the operating system.

+
+ +
DNS
+ +
+

Domain Name Service. A system in which networked computers are given names which +translate to numerical addresses.

+
+ +
Domain name
+ +
+

A computer's DNS name, excluding its host name.

+
+ +
Dot file
+ +
+

In Linux, files which are to be hidden have filenames beginning with a dot ('.').

+
+ +
Dotted quad
+ +
+

The format of IP addresses, so called because it consists of four numbers (range 0-255 +decimal) separated by periods.

+
+ +
Dynamic loader
+ +
+

When programs are compiled under Linux, they usually use pieces of code (functions) +from external libraries. When such programs are run, those libraries must be found and +the required functions loaded into memory. This is the job of the dynamic loader.

+
+ +
Environment variable
+ +
+

A variable set in the user's shell which can be referenced by that user or programs +run by that user within that shell. Environment variables are generally used to store +preferences and default parameters.

+
+ +
Epoch
+ +
+

A period of history; in Unix, “The Epoch” begins at 00:00:00 UTC January +1, 1970. This is considered the “dawn of time” by Unix and Unix-like +operating systems, and all other time is calculated relative to this date.

+
+ +
Filesystem
+ +
+

A representation of stored data in which “files” of data are kept +organized in “directories”. The filesystem is the nearly universal form of +representation for data stored to disks (both fixed and removable).

+
+ +
Foreground
+ +
+

A program that is accepting or controlling a terminal's input is said to be running in +the foreground.

+
+ +
Framebuffer
+ +
+

A type of graphics device; in Linux, this most often refers to the software +framebuffer, which provides a standard framebuffer interface to programs while keeping +specific hardware drivers hidden from them. This layer of abstraction frees programs of +the need to speak to various hardware drivers.

+
+ +
FTP
+ +
+

The File Transfer Protocol. FTP is a very popular method of transferring data between +computers.

+
+ +
Gateway
+ +
+

A computer through which data on a network is transferred to another network.

+
+ +
GID
+ +
+

Group Identifier. The GID is a unique number attributed to a group of users.

+
+ +
Group
+ +
+

Users in Unix belong to “groups”, which can contain many other users and +are used for more general access control than the existence of users alone can easily +allow.

+
+ +
GUI
+ +
+

Graphical User Interface. A software interface that uses rendered graphical elements +such as buttons, scrollbars, windows, etc. rather than solely text-based input and +output

+
+ +
Home directory
+ +
+

A user's “home directory” is the directory the user is placed in +immediately upon logging in. Users have full permissions and more or less free reign +within their home directories.

+
+ +
HOWTO
+ +
+

A document describing “how to” do something, such as configure a firewall +or manage users and groups. There is a large collection of these documents available from +the Linux Documentation Project.

+
+ +
HTTP
+ +
+

The Hypertext Transfer Protocol. HTTP is the primary protocol on which the World Wide +Web operates.

+
+ +
ICMP
+ +
+

Internet Control Message Protocol. A very basic networking protocol, used mostly for +pings.

+
+ +
Kernel
+ +
+

The heart of an operating system. The kernel is the part that provides basic process +control and interfaces with the computer's hardware.

+
+ +
Kernel module
+ +
+

A piece of kernel code, usually a driver of some sort, that can be loaded and unloaded +from memory separately from the main body of the kernel. Modules are handy when upgrading +drivers or testing kernel settings, because they can be loaded and unloaded without +rebooting.

+
+ +
Library
+ +
+

A collection of functions which can be shared between programs.

+
+ +
LILO
+ +
+

The LInux LOader. LILO is the most widely-used Linux boot manager.

+
+ +
LOADLIN
+ +
+

LOADLIN is a program that runs under MS DOS or Windows and boots a Linux system. It is +most commonly used on computers with multiple operating systems (including Linux and +DOS/Windows, of course).

+
+ +
Man section
+ +
+

Pages in the standard Unix online manual ("man") are grouped into sections for easy +reference. All C programming pages are in section 3, system administration pages in +section 5, etc.

+
+ +
MBR
+ +
+

The Master Boot Record. A reserved space on a hard drive where information on what to +do when booting is stored. LILO or other boot managers can be written here.

+
+ +
Motif
+ +
+

A popular programming toolkit used in many older X programs.

+
+ +
MOTD
+ +
+

Message of the Day. The motd (stored in Linux in /etc/motd +is a text file that is displayed to all users upon logging in. Traditionally, it is used +by the system administrator as a sort of “bulletin board” for communicating +with users.

+
+ +
Mount point
+ +
+

An empty directory in a filesystem where another filesystem is to be +“mounted”, or grafted on.

+
+ +
Nameserver
+ +
+

A DNS information server. Nameservers translate DNS names to numerical IP +addresses.

+
+ +
Network interface
+ +
+

A virtual representation of a network device provided by the kernel. Network +interfaces allow users and programs to talk to network devices.

+
+ +
NFS
+ +
+

The Network Filesystem. NFS allows the mounting of remote filesystems as if they were +local to your computer and thus provides a transparent method of file sharing.

+
+ +
Octal
+ +
+

Base-8 number system, with digits 0-7.

+
+ +
Pager
+ +
+

An X program that allows the user to see and switch between multiple +“desktops”.

+
+ +
Partition
+ +
+

A division of a hard drive. Filesystems exist on top of partitions.

+
+ +
PPP
+ +
+

Point-to-Point Protocol. PPP is used mainly for connecting via modem to an Internet +Service Provider.

+
+ +
Process
+ +
+

A running program.

+
+ +
Root directory
+ +
+

Represented as “/”, the root directory exists at the top of the +filesystem, with all other directories branching out beneath it in a “file +tree”.

+
+ +
Root disk
+ +
+

The disk (usually fixed) on which the root directory is stored.

+
+ +
Routing table
+ +
+

The set of information the kernel uses in “routing” network data around. +It contains such tidbits as where your default gateway is, which network interface is +connected to which network, etc.

+
+ +
Runlevel
+ +
+

The overall system state as defined by init. Runlevel 6 is rebooting, runlevel 1 is +“single user mode”, runlevel 4 is an X login, etc. There are 6 available +runlevels on a Slackware system.

+
+ +
Secure shell
+ +
+

An encrypted (thus secure) method of logging in remotely to a computer. Many secure +shell programs are available; both a client and server are needed.

+
+ +
Service
+ +
+

The sharing of information and/or data between programs and computers from a single +“server” to multiple “clients”. HTTP, FTP, NFS, etc. are +services.

+
+ +
Shadow password suite
+ +
+

The shadow password suite allows encrypted passwords to be hidden from users, while +the rest of the information in the /etc/passwd file remains +visible to all. This helps prevent brute-force attempts at cracking passwords.

+
+ +
Shell
+ +
+

Shells provide a commandline interface to the user. When you're looking at a text +prompt, you're in a shell.

+
+ +
Shell builtin
+ +
+

A command built into the shell, as opposed to being provided by an external program. +For instance, bash has a cd +builtin.

+
+ +
Signal
+ +
+

Unix programs can communicate between each other using simple “signals”, +which are enumerated and usually have specific meanings. kill -l +will list the available signals.

+
+ +
SLIP
+ +
+

Serial Line Interface Protocol. SLIP is a similar protocol to PPP, in that it's used +for connecting two machines via a serial interface.

+
+ +
Software package
+ +
+

A program and its associated files, archived and compressed into a single file along +with any necessary scripts or information to aid in managing the installation, upgrade, +and removal of those files.

+
+ +
Software series
+ +
+

A collection of related software packages in Slackware. All KDE packages are in the +“kde” series, networking packages in the “n” series, etc.

+
+ +
Source code
+ +
+

The (more or less) human-readable code in which most programs are written. Source code +is compiled into “binary” code.

+
+ +
Standard Error (stderr)
+ +
+

The Unix-standard output stream for errors. Programs write any error messages on +stderr, so that they can be separated from normal output.

+
+ +
Standard Input (stdin)
+ +
+

The Unix-standard input stream. Data can be redirected or piped into a program's stdin +from any source.

+
+ +
Standard Output (stdout)
+ +
+

The Unix-standard output stream. Normal text output from a program is written to +stdout, which is separate from the error messages reported on stderr and can be piped or +redirected into other programs' stdin or to a file.

+
+ +
Subnet
+ +
+

An IP address range that is part of a larger range. For instance, 192.168.1.0 is a +subnet of 192.168.0.0 (where 0 is a mask meaning “undefined”); it is, in +fact, the “.1” subnet.

+
+ +
Superblock
+ +
+

In Linux, partitions are discussed in terms of blocks. A block is 512 bytes. The +superblock is the first 512 bytes of a partition.

+
+ +
Supplemental disk
+ +
+

In Slackware, a floppy disk used during installation that contains neither the kernel +(which is on the boot disk) nor the root filesystem (which is on the root disk), but +additional needed files such as network modules or PCMCIA support.

+
+ +
Suspended process
+ +
+

A process which has been frozen until killed or resumed.

+
+ +
Swap space
+ +
+

Disk space used by the kernel as “virtual” RAM. It is slower than RAM, but +because disk space is cheaper, swap is usually more plentiful. Swap space is useful to +the kernel for holding lesser-used data and as a fallback when physical RAM is +exhausted.

+
+ +
Symbolic link
+ +
+

A special file that simply points to the location of another file. Symbolic links are +used to avoid data duplication when a file is needed in multiple locations.

+
+ +
Tagfile
+ +
+

A file used by the Slackware setup program during +installation, which describes a set of packages to be installed.

+
+ +
Terminal
+ +
+

A human-computer interface consisting of at least a screen (or virtual screen) and +some method of input (almost always at least a keyboard).

+
+ +
Toolkit, GUI
+ +
+

A GUI toolkit is a collection of libraries that provide a programmer with code to draw +“widgets” such as scrollbars, checkboxes, etc. and construct a graphical +interface. The GUI toolkit used by a program often defines its “look and +feel”.

+
+ +
UID
+ +
+

User Identifier. A unique number that identifies a user to the system. UIDs are used +by most programs instead of usernames because a number is easier to deal with; usernames +are generally only used when the user has to see things happen.

+
+ +
VESA
+ +
+

Video Electronics Standards Association. The term “VESA” is often used to +denote a standard specified by said Association. Nearly all modern video adapters are +VESA-compliant.

+
+ +
Virtual terminal
+ +
+

The use of software to simulate multiple terminals while using only a single set of +input/output devices (keyboard, monitor, mouse). Special keystrokes switch between +virtual terminals at a single physical terminal.

+
+ +
Window manager
+ +
+

An X program whose purpose is to provide a graphical interface beyond the simple +rectangle-drawing of the X Window System. Window managers generally provide titlebars, +menus for running programs, etc.

+
+ +
Working directory
+ +
+

The directory in which a program considers itself to be while running.

+
+ +
Wrapper program
+ +
+

A program whose sole purpose is to run other programs, but change their behavior in +some way by altering their environments or filtering their input.

+
+ +
X server
+ +
+

The program in the X Window System which interfaces with graphics hardware and handles +the actual running of X programs.

+
+ +
X Window System
+ +
+

Network-oriented graphical interface system used on most Unix-like operating systems, +including Linux.

+
+
+
+ + + + + diff --git a/slackbook/html/gpl.html b/slackbook/html/gpl.html new file mode 100644 index 000000000..7e41435cc --- /dev/null +++ b/slackbook/html/gpl.html @@ -0,0 +1,452 @@ + + + + +The GNU General Public License + + + + + + + + + +
+

Appendix A. The GNU General Public License

+ +
+
+
Table of Contents
+ +
A.1. Preamble
+ +
A.2. TERMS AND CONDITIONS
+ +
A.3. How to Apply These Terms to Your New +Programs
+
+
+ +

GNU GENERAL PUBLIC LICENSE
+
+Version 2, June 1991
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ +59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ +Everyone is permitted to copy and distribute verbatim copies of this
+ +license document, but changing it is not allowed.

+ +
+

A.1. Preamble

+ +

The licenses for most software are designed to take away your freedom to share and +change it. By contrast, the GNU General Public License is intended to guarantee your +freedom to share and change free software--to make sure the software is free for all its +users. This General Public License applies to most of the Free Software Foundation's +software and to any other program whose authors commit to using it. (Some other Free +Software Foundation software is covered by the GNU Library General Public License +instead.) You can apply it to your programs, too.

+ +

When we speak of free software, we are referring to freedom, not price. Our General +Public Licenses are designed to make sure that you have the freedom to distribute copies +of free software (and charge for this service if you wish), that you receive source code +or can get it if you want it, that you can change the software or use pieces of it in new +free programs; and that you know you can do these things.

+ +

To protect your rights, we need to make restrictions that forbid anyone to deny you +these rights or to ask you to surrender the rights. These restrictions translate to +certain responsibilities for you if you distribute copies of the software, or if you +modify it.

+ +

For example, if you distribute copies of such a program, whether gratis or for a fee, +you must give the recipients all the rights that you have. You must make sure that they, +too, receive or can get the source code. And you must show them these terms so they know +their rights.

+ +

We protect your rights with two steps: (1) copyright the software, and (2) offer you +this license which gives you legal permission to copy, distribute and/or modify the +software.

+ +

Also, for each author's protection and ours, we want to make certain that everyone +understands that there is no warranty for this free software. If the software is modified +by someone else and passed on, we want its recipients to know that what they have is not +the original, so that any problems introduced by others will not reflect on the original +authors' reputations.

+ +

Finally, any free program is threatened constantly by software patents. We wish to +avoid the danger that redistributors of a free program will individually obtain patent +licenses, in effect making the program proprietary. To prevent this, we have made it +clear that any patent must be licensed for everyone's free use or not licensed at +all.

+ +

The precise terms and conditions for copying, distribution and modification +follow.

+
+ +
+

A.2. TERMS AND CONDITIONS

+ +

TERMS AND CONDITIONS FOR COPYING, +DISTRIBUTION AND MODIFICATION

+ +
    +
  1. +

    This License applies to any program or other work which contains a notice placed by +the copyright holder saying it may be distributed under the terms of this General Public +License. The “Program”, below, refers to any such program or work, and a +“work based on the Program” means either the Program or any derivative work +under copyright law: that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another language. +(Hereinafter, translation is included without limitation in the term +“modification”.) Each licensee is addressed as “you”.

    + +

    Activities other than copying, distribution and modification are not covered by this +License; they are outside its scope. The act of running the Program is not restricted, +and the output from the Program is covered only if its contents constitute a work based +on the Program (independent of having been made by running the Program). Whether that is +true depends on what the Program does.

    +
  2. + +
  3. +

    You may copy and distribute verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and appropriately publish on +each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; and give any other +recipients of the Program a copy of this License along with the Program.

    + +

    You may charge a fee for the physical act of transferring a copy, and you may at your +option offer warranty protection in exchange for a fee.

    +
  4. + +
  5. +

    You may modify your copy or copies of the Program or any portion of it, thus forming a +work based on the Program, and copy and distribute such modifications or work under the +terms of Section 1 above, provided that you also meet all of these conditions:

    + +
      +
    1. +

      You must cause the modified files to carry prominent notices stating that you changed +the files and the date of any change.

      +
    2. + +
    3. +

      You must cause any work that you distribute or publish, that in whole or in part +contains or is derived from the Program or any part thereof, to be licensed as a whole at +no charge to all third parties under the terms of this License.

      +
    4. + +
    5. +

      If the modified program normally reads commands interactively when run, you must cause +it, when started running for such interactive use in the most ordinary way, to print or +display an announcement including an appropriate copyright notice and a notice that there +is no warranty (or else, saying that you provide a warranty) and that users may +redistribute the program under these conditions, and telling the user how to view a copy +of this License. (Exception: if the Program itself is interactive but does not normally +print such an announcement, your work based on the Program is not required to print an +announcement.)

      +
    6. +
    + +

    These requirements apply to the modified work as a whole. If identifiable sections of +that work are not derived from the Program, and can be reasonably considered independent +and separate works in themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you distribute the same +sections as part of a whole which is a work based on the Program, the distribution of the +whole must be on the terms of this License, whose permissions for other licensees extend +to the entire whole, and thus to each and every part regardless of who wrote it.

    + +

    Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to control the +distribution of derivative or collective works based on the Program.

    + +

    In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or distribution +medium does not bring the other work under the scope of this License.

    +
  6. + +
  7. +

    You may copy and distribute the Program (or a work based on it, under Section 2) in +object code or executable form under the terms of Sections 1 and 2 above provided that +you also do one of the following:

    + +
      +
    1. +

      Accompany it with the complete corresponding machine-readable source code, which must +be distributed under the terms of Sections 1 and 2 above on a medium customarily used for +software interchange; or,

      +
    2. + +
    3. +

      Accompany it with a written offer, valid for at least three years, to give any third +party, for a charge no more than your cost of physically performing source distribution, +a complete machine-readable copy of the corresponding source code, to be distributed +under the terms of Sections 1 and 2 above on a medium customarily used for software +interchange; or,

      +
    4. + +
    5. +

      Accompany it with the information you received as to the offer to distribute +corresponding source code. (This alternative is allowed only for noncommercial +distribution and only if you received the program in object code or executable form with +such an offer, in accord with Subsection b above.)

      +
    6. +
    + +

    The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all the source +code for all modules it contains, plus any associated interface definition files, plus +the scripts used to control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major components (compiler, +kernel, and so on) of the operating system on which the executable runs, unless that +component itself accompanies the executable.

    + +

    If distribution of executable or object code is made by offering access to copy from a +designated place, then offering equivalent access to copy the source code from the same +place counts as distribution of the source code, even though third parties are not +compelled to copy the source along with the object code.

    +
  8. + +
  9. +

    You may not copy, modify, sublicense, or distribute the Program except as expressly +provided under this License. Any attempt otherwise to copy, modify, sublicense or +distribute the Program is void, and will automatically terminate your rights under this +License. However, parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such parties remain in full +compliance.

    +
  10. + +
  11. +

    You are not required to accept this License, since you have not signed it. However, +nothing else grants you permission to modify or distribute the Program or its derivative +works. These actions are prohibited by law if you do not accept this License. Therefore, +by modifying or distributing the Program (or any work based on the Program), you indicate +your acceptance of this License to do so, and all its terms and conditions for copying, +distributing or modifying the Program or works based on it.

    +
  12. + +
  13. +

    Each time you redistribute the Program (or any work based on the Program), the +recipient automatically receives a license from the original licensor to copy, distribute +or modify the Program subject to these terms and conditions. You may not impose any +further restrictions on the recipients' exercise of the rights granted herein. You are +not responsible for enforcing compliance by third parties to this License.

    +
  14. + +
  15. +

    If, as a consequence of a court judgment or allegation of patent infringement or for +any other reason (not limited to patent issues), conditions are imposed on you (whether +by court order, agreement or otherwise) that contradict the conditions of this License, +they do not excuse you from the conditions of this License. If you cannot distribute so +as to satisfy simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. For +example, if a patent license would not permit royalty-free redistribution of the Program +by all those who receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from distribution of +the Program.

    + +

    If any portion of this section is held invalid or unenforceable under any particular +circumstance, the balance of the section is intended to apply and the section as a whole +is intended to apply in other circumstances.

    + +

    It is not the purpose of this section to induce you to infringe any patents or other +property right claims or to contest validity of any such claims; this section has the +sole purpose of protecting the integrity of the free software distribution system, which +is implemented by public license practices. Many people have made generous contributions +to the wide range of software distributed through that system in reliance on consistent +application of that system; it is up to the author/donor to decide if he or she is +willing to distribute software through any other system and a licensee cannot impose that +choice.

    + +

    This section is intended to make thoroughly clear what is believed to be a consequence +of the rest of this License.

    +
  16. + +
  17. +

    If the distribution and/or use of the Program is restricted in certain countries +either by patents or by copyrighted interfaces, the original copyright holder who places +the Program under this License may add an explicit geographical distribution limitation +excluding those countries, so that distribution is permitted only in or among countries +not thus excluded. In such case, this License incorporates the limitation as if written +in the body of this License.

    +
  18. + +
  19. +

    The Free Software Foundation may publish revised and/or new versions of the General +Public License from time to time. Such new versions will be similar in spirit to the +present version, but may differ in detail to address new problems or concerns.

    + +

    Each version is given a distinguishing version number. If the Program specifies a +version number of this License which applies to it and “any later version”, +you have the option of following the terms and conditions either of that version or of +any later version published by the Free Software Foundation. If the Program does not +specify a version number of this License, you may choose any version ever published by +the Free Software Foundation.

    +
  20. + +
  21. +

    If you wish to incorporate parts of the Program into other free programs whose +distribution conditions are different, write to the author to ask for permission. For +software which is copyrighted by the Free Software Foundation, write to the Free Software +Foundation; we sometimes make exceptions for this. Our decision will be guided by the two +goals of preserving the free status of all derivatives of our free software and of +promoting the sharing and reuse of software generally.

    +
  22. + +
  23. +

    NO WARRANTY

    + +

    BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, +TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE +COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE +RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM +PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION.

    +
  24. + +
  25. +

    IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL +OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM +(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES +SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES.

    +
  26. +
+ +

END OF TERMS AND CONDITIONS

+
+ +
+

A.3. How to Apply These Terms to +Your New Programs

+ +

If you develop a new program, and you want it to be of the greatest possible use to +the public, the best way to achieve this is to make it free software which everyone can +redistribute and change under these terms.

+ +

To do so, attach the following notices to the program. It is safest to attach them to +the start of each source file to most effectively convey the exclusion of warranty; and +each file should have at least the “copyright” line and a pointer to where +the full notice is found.

+ + + + + +
+
+<one line to give the program's name and a brief idea of what it does.>
+   Copyright (C) <year>  <name of author>
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA
+
+
+ +

Also add information on how to contact you by electronic and paper mail.

+ +

If the program is interactive, make it output a short notice like this when it starts +in an interactive mode:

+ + + + + +
+
+Gnomovision version 69, Copyright (C) year  name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+
+ +

The hypothetical commands `show w' and `show c' should show the appropriate parts of +the General Public License. Of course, the commands you use may be called something other +than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits +your program.

+ +

You should also get your employer (if you work as a programmer) or your school, if +any, to sign a “copyright disclaimer” for the program, if necessary. Here is +a sample; alter the names:

+ + + + + +
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+
+ +

This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may consider it more +useful to permit linking proprietary applications with the library. If this is what you +want to do, use the GNU Library General Public License instead of this License.

+
+
+ + + + + diff --git a/slackbook/html/help-online.html b/slackbook/html/help-online.html new file mode 100644 index 000000000..fdd253881 --- /dev/null +++ b/slackbook/html/help-online.html @@ -0,0 +1,247 @@ + + + + +Online Help + + + + + + + + + + + +
+

2.2 Online Help

+ +

In addition to the documentation provided and installable with the Slackware Linux +Operating System, there are a vast multitude of online resources available for you to +learn from as well.

+ +
+

2.2.1 The +Official Website and Help Forums

+ +

The Official Slackware +Website

+ +

The Official Slackware Linux website is sometimes out of date, but still contains +information relevant to the latest Slackware versions. At one time an active help forum +existed there before a horde of trolls, troublemakers, and whiners descended on the +forum. Maintaining the forum was beginning to be too much work, and so Pat shut it down. +One can find that old forum back up and running complete with searchable archives of the +old data at http://www.userlocal.com/phorum/.

+ +

After the forums were taken down on http://slackware.com, several other sites sprang up that offered forum +support for Slackware. After much thought, Pat chose to endorse www.linuxquestions.org as the official +forum for Slackware Linux.

+
+ +
+

2.2.2 E-mail +Support

+ +

Everyone who purchases an official CD set is entitled to free installation support via +e-mail from the developer. That having been said, please keep in mind that we, the +developers, (and a vast majority of users) of Slackware are of “The Old +School”. That means that we prefer to help those who have a sincere interest and +are willing to help themselves in the process. We will always do our best to help +everyone who emails us with support questions. However, Please check your documentation +and the website (especially the FAQs and maybe some of the forums listed below) before +e-mailing. You may get a faster answer that way, and the less e-mail we have to answer, +obviously the sooner we will be of assistance to those that need it.

+ +

The e-mail address for technical support is: support@slackware.com. Other e-mail addresses and contact +information are listed on the website.

+ +
+

2.2.2.1 Slackware Linux Project Mailing +Lists

+ +

We have several mailing lists, available in digest and normal forms. Check the +instructions for how to subscribe.

+ +

To subscribe to a mailing list, email:

+ +

majordomo@slackware.com

+ +

with the phrase “subscribe [name +of list]” in the body of the email. The list choices are described +below (use one the names below for the name of the list).

+ +

Archives of the mailing list can be found on Slackware's website at:

+ +

http://slackware.com/lists/archive/

+ +
+
+
slackware-announce
+ +
+

The slackware-announce mailing list is for announcements of +new versions, major updates and other general information.

+
+ +
slackware-security
+ +
+

The slackware-security mailing list is for announcements +relating to security issues. Any exploits or other vulnerabilities directly pertaining to +Slackware will get posted to this list immediately.

+
+
+
+ +

These lists are also available in digest format. This means that you get one large +message per day instead of several messages throughout the day. Since the slackware +mailing lists do not allow users to post, and the lists are such low traffic, most users +find little advantage in the digest lists. Still, they are available if you want them by +subscribing to slackware-announce-digest or slackware-security-digest.

+
+
+ +
+

2.2.3 +Non-Official Websites and Help Forums

+ +
+

2.2.3.1 Websites

+ +
+
+
Google
+ +
+

The Kung-Fu Master of Search Engines. When you absolutely, positively gotta find every +last kernel of information on a subject: Accept no substitutes.

+
+ +
Google:Linux
+ +
+

Linux-Specific searches

+
+ +
Google:BSD
+ +
+

BSD-Specific searches. Slackware is so generic as a Unix work-a-like operating system +that one can as often as not find very detailed information that is almost 100% relevant +to Slackware here. Many times a BSD search reveals far more technical information than +the often PR-related Linux searches.

+
+ +
Google:Groups
+ +
+

Search through decades of Usenet posts for your pearls of wisdom.

+
+ +
http://userlocal.com
+ +
+

A virtual treasure-trove of knowledge, good advice, first-hand experience and +interesting articles. Often the first place you'll hear about new developments in the +world of Slackware.

+
+
+
+
+ +
+

2.2.3.2 Web-based Resources

+ +
+
+
linuxquestions.org
+ +
+

The officially sanctioned web-forum for Slackware users.

+
+ +
LinuxISO.org +Slackware Forum
+ +
+

“A place to download and get help with Linux.”

+
+ +
alt.os.linux.slackware FAQ
+ +
+

Another FAQ

+
+
+
+
+ +
+

2.2.3.3 Usenet Groups (NNTP)

+ +

Usenet has long been a place for geeks to gather and help one another. There are few +newsgroups dedicated to Slackware Linux, but they tend to be filled with very +knowledgeable people.

+ +

alt.os.linux.slackware

+ +

alt.os.linux.slackware, better known as aols (not to be +confused with AOL®!) is one of the most active places +to find technical help with Slackware problems. Like every Usenet newsgroup, a few +unhelpful participants (“trolls”) can mar the experience with constant +arguing. Learning to ignore the trolls and identifying the truly helpful people is key to +making the most of this resource.

+
+
+
+ + + + + diff --git a/slackbook/html/help.html b/slackbook/html/help.html new file mode 100644 index 000000000..691282f6e --- /dev/null +++ b/slackbook/html/help.html @@ -0,0 +1,292 @@ + + + + +Help + + + + + + + + + + +
+

Chapter 2 Help

+ +
+
+
Table of Contents
+ +
2.1 System Help
+ +
2.2 Online Help
+
+
+ +

Often there are times when you might need help with a specific command, setting up a +program, or getting a piece of hardware to work. Maybe you simply want to understand a +given command better, or see what other options are available to use with it. Luckily, +there are a variety of ways that you can get the help you're looking for. When you +install Slackware you have the option of installing packages from the “F” +series which includes FAQs and HOWTOs. Programs also come with help about their options, +configuration files, and usage.

+ +
+

2.1 System Help

+ +
+

2.1.1 man

+ +

The man command (short for “manual”) is the +traditional form of online documentation in Unix and Linux operating systems. Comprised +of specially formatted files, the “man pages”, are written for the vast +majority of commands and are distributed with the software itself. Executing man somecommand will display the man page for (naturally) the +command specified, in our example this would be the imaginary program somecommand.

+ +

As you might imagine, the amount of man pages can quickly add up, becoming overly +confusing and seriously complicated, even for an advanced user. So, for this reason, man +pages are grouped into enumerated sections. This system has been around for a very long +time; enough so that you will often see commands, programs, and even programming library +functions referred to with their man section number.

+ +

For example:

+ +

You might see a reference to man(1). The numbering tells you +that “man” is documented in section 1 (user +commands); you can specify that you want the section 1 man page for “man” +with the command man 1 man. Specifying the section that man +should look in is useful in the case of multiple items with the same name.

+ +
+

Table 2-1. Man Page Sections

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SectionContents
Section 1user commands (intro only)
Section 2system calls
Section 3C library calls
Section 4devices (e.g., hd, sd)
Section 5file formats and protocols (e.g., wtmp, /etc/passwd, +nfs)
Section 6games (intro only)
Section 7conventions, macro packages, etc. (e.g., nroff, ascii)
Section 8system administration (intro only)
+
+ +

In addition to man(1), there are the commands whatis(1) and apropos(1) available to you, +whose shared purpose is to make it easier to find information in the man system.

+ +

The command whatis gives a very brief description of system +commands, somewhat in the style of a pocket command reference.

+ +

Example:

+ + + + + +
+
+% whatis whatis
+whatis (1)  - search the whatis database for complete words
+
+
+ +

The command apropos is used to search for a man page +containing a given keyword.

+ +

Example:

+ + + + + +
+
+% apropos wav
+cdda2wav    (1)  - a sampling utility that dumps CD audio data into wav sound files
+netwave_cs  (4)  - Xircom Creditcard Netwave device driver
+oggdec      (1)  - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW)
+wavelan     (4)  - AT&T GIS WaveLAN ISA device driver
+wavelan_cs  (4)  - AT&T GIS WaveLAN PCMCIA device driver
+wvlan_cs    (4)  - Lucent WaveLAN/IEEE 802.11 device driver
+
+
+ +

If you'd like further information on any of these commands, read their man pages for +the details. ;)

+
+ +
+

2.1.2 The /usr/doc Directory

+ +

The source for most packages that we build comes with some sort of documentation: +README files, usage instructions, license files, etc. Any sort of documentation that +comes with the source is included and installed on your system in the /usr/doc directory. Each program will (usually) install its own +documentation in the order of:

+ +

/usr/doc/$program-$version

+ +

Where $program is the name of the program you are +wanting to read about, and $version is (obviously) the +appropriate version of software package installed on your system.

+ +

For example, to read the documentation for the command man(1) +you would want to cd to:

+ + + + + +
+
+% cd /usr/doc/man-$version
+
+
+ +

If reading the appropriate man page(s) doesn't provide you with enough information, or +address what you're looking for in particular, the /usr/doc +directory should be your next stop.

+
+ +
+

2.1.3 HOWTOs and +mini-HOWTOs

+ +

It is in the truest spirit of the Open Source community that brings us to the +HOWTO/mini-HOWTO collection. These files are exactly what they sound like - documents and +guides describing how to do stuff. If you installed the HOWTO collection, the HOWTOs will +be installed to /usr/doc/Linux-HOWTOs and the mini-HOWTOs to +/usr/doc/Linux-mini-HOWTOs.

+ +

Also included in the same package series is a collection of FAQs, which is an acronym +which stands for

+ +
+ ++ + + + + + + + + + + + + +
Frequently
Asked
Questions
+
+ +

These documents are written in a “Question and answer” style for +(surprise) Frequently Asked Questions. The FAQs can often be a very useful place to look +if you're just looking for a “Quick Fix” to something. If you decide to +install the FAQs during setup, you will find them installed to the /usr/doc/Linux-FAQs directory.

+ +

These files are well worth reading whenever you're not quite sure how to proceed with +something. They cover an amazing range of topics, more often than not in a surprisingly +detailed manner. Good stuff!

+
+
+
+ + + + + diff --git a/slackbook/html/imagelib/admon/note.png b/slackbook/html/imagelib/admon/note.png new file mode 100644 index 000000000..b0ee5555b Binary files /dev/null and b/slackbook/html/imagelib/admon/note.png differ diff --git a/slackbook/html/imagelib/admon/warning.png b/slackbook/html/imagelib/admon/warning.png new file mode 100644 index 000000000..bc0adf33f Binary files /dev/null and b/slackbook/html/imagelib/admon/warning.png differ diff --git a/slackbook/html/index.html b/slackbook/html/index.html new file mode 100644 index 000000000..dc63844e5 --- /dev/null +++ b/slackbook/html/index.html @@ -0,0 +1,1013 @@ + + + + +Slackware Linux Essentials + + + + + + +
+
+

Slackware Linux Essentials

+ +

+ +

Alan Hicks

+ +

Chris Lumens

+ +

David Cantrell

+ +

Logan Johnson

+ + + +1-57176-338-4
+
+ + +
+
+ +
+
+
Table of Contents
+ +
Preface
+ +
1 An Introduction to Slackware Linux
+ +
+
+
1.1 What is Linux?
+ +
+
+
1.1.1 A Word on GNU
+
+
+ +
1.2 What is Slackware?
+ +
1.3 Open Source and Free Software
+
+
+ +
2 Help
+ +
+
+
2.1 System Help
+ +
+
+
2.1.1 man
+ +
2.1.2 The /usr/doc +Directory
+ +
2.1.3 HOWTOs and mini-HOWTOs
+
+
+ +
2.2 Online Help
+ +
+
+
2.2.1 The Official Website and Help +Forums
+ +
2.2.2 E-mail Support
+ +
2.2.3 Non-Official Websites and +Help Forums
+
+
+
+
+ +
3 Installation
+ +
+
+
3.1 Getting Slackware
+ +
+
+
3.1.1 The Official Disc and Box Sets
+ +
3.1.2 Via the Internet
+
+
+ +
3.2 System Requirements
+ +
+
+
3.2.1 The +Software Series
+ +
3.2.2 Installation +Methods
+ +
3.2.3 Boot +Disk
+ +
3.2.4 Root +Disk
+ +
3.2.5 Supplemental +Disk
+ +
3.2.6 Making +the Disks
+
+
+ +
3.3 Partitioning
+ +
3.4 The setup +Program
+ +
+
+
3.4.1 HELP
+ +
3.4.2 KEYMAP
+ +
3.4.3 ADDSWAP
+ +
3.4.4 TARGET
+ +
3.4.5 SOURCE
+ +
3.4.6 SELECT
+ +
3.4.7 INSTALL
+ +
3.4.8 CONFIGURE
+
+
+
+
+ +
4 System Configuration
+ +
+
+
4.1 System +Overview
+ +
+
+
4.1.1 File System +Layout
+ +
4.1.2 Finding +Files
+ +
4.1.3 The /etc/rc.d Directory
+
+
+ +
4.2 Selecting a Kernel
+ +
+
+
4.2.1 The /kernels Directory on the Slackware CD-ROM
+ +
4.2.2 Compiling a +Kernel from Source
+ +
4.2.3 Using Kernel +Modules
+
+
+
+
+ +
5 Network Configuration
+ +
+
+
5.1 Introduction: netconfig +is your friend.
+ +
5.2 Network Hardware +Configuration
+ +
+
+
5.2.1 Loading +Network Modules
+ +
5.2.2 LAN +(10/100/1000Base-T and Base-2) cards
+ +
5.2.3 Modems
+ +
5.2.4 PCMCIA
+
+
+ +
5.3 TCP/IP Configuration
+ +
+
+
5.3.1 DHCP
+ +
5.3.2 Static +IP
+ +
5.3.3 /etc/rc.d/rc.inet1.conf
+ +
5.3.4 /etc/resolv.conf
+ +
5.3.5 /etc/hosts
+
+
+ +
5.4 PPP
+ +
+
+
5.4.1 pppsetup
+ +
5.4.2 /etc/ppp
+
+
+ +
5.5 Wireless
+ +
+
+
5.5.1 Hardware Support
+ +
5.5.2 Configure the Wireless +Settings
+ +
5.5.3 Configure the +Network
+
+
+ +
5.6 Network File Systems
+ +
+
+
5.6.1 SMB/Samba/CIFS
+ +
5.6.2 Network +File System (NFS)
+
+
+
+
+ +
6 X Configuration
+ +
+
+
6.1 xorgconfig
+ +
6.2 xorgsetup
+ +
6.3 xinitrc
+ +
6.4 xwmconfig
+ +
6.5 xdm
+
+
+ +
7 Booting
+ +
+
+
7.1 LILO
+ +
7.2 LOADLIN
+ +
7.3 Dual Booting
+ +
+
+
7.3.1 Windows
+ +
7.3.2 Linux
+
+
+
+
+ +
8 The Shell
+ +
+
+
8.1 Users
+ +
+
+
8.1.1 Logging In
+ +
8.1.2 Root: The Superuser
+
+
+ +
8.2 The Command Line
+ +
+
+
8.2.1 Running +Programs
+ +
8.2.2 Wildcard +Matching
+ +
8.2.3 Input/Output +Redirection and Piping
+
+
+ +
8.3 The Bourne Again Shell (bash)
+ +
+
+
8.3.1 Environment Variables
+ +
8.3.2 Tab Completion
+
+
+ +
8.4 Virtual Terminals
+ +
+
+
8.4.1 Screen
+
+
+
+
+ +
9 Filesystem Structure
+ +
+
+
9.1 Ownership
+ +
9.2 Permissions
+ +
9.3 Links
+ +
9.4 Mounting Devices
+ +
+
+
9.4.1 fstab
+ +
9.4.2 mount and umount
+
+
+ +
9.5 NFS Mounts
+
+
+ +
10 Handling Files and Directories
+ +
+
+
10.1 Navigation : ls, cd, and pwd
+ +
+
+
10.1.1 ls
+ +
10.1.2 cd
+ +
10.1.3 pwd
+
+
+ +
10.2 Pagers: more, less, and most
+ +
+
+
10.2.1 more
+ +
10.2.2 less
+ +
10.2.3 most
+
+
+ +
10.3 Simple Output: cat +and echo
+ +
+
+
10.3.1 cat
+ +
10.3.2 echo
+
+
+ +
10.4 Creation: touch +and mkdir
+ +
+
+
10.4.1 touch
+ +
10.4.2 mkdir
+
+
+ +
10.5 Copy and Move
+ +
+
+
10.5.1 cp
+ +
10.5.2 mv
+
+
+ +
10.6 Deletion: rm and +rmdir
+ +
+
+
10.6.1 rm
+ +
10.6.2 rmdir
+
+
+ +
10.7 Aliasing files with ln
+
+
+ +
11 Process Control
+ +
+
+
11.1 Backgrounding
+ +
11.2 Foregrounding
+ +
11.3 ps
+ +
11.4 kill
+ +
11.5 top
+
+
+ +
12 Essential System Administration
+ +
+
+
12.1 Users and +Groups
+ +
+
+
12.1.1 Supplied +Scripts
+ +
12.1.2 Changing +Passwords
+ +
12.1.3 Changing +User Information
+
+
+ +
12.2 Users and Groups, the Hard +Way
+ +
12.3 Shutting Down Properly
+
+
+ +
13 Basic Network Commands
+ +
+
+
13.1 ping
+ +
13.2 traceroute
+ +
13.3 DNS Tools
+ +
+
+
13.3.1 host
+ +
13.3.2 nslookup
+ +
13.3.3 dig
+
+
+ +
13.4 finger
+ +
13.5 telnet
+ +
+
+
13.5.1 The other use of +telnet
+
+
+ +
13.6 The Secure shell
+ +
13.7 email
+ +
+
+
13.7.1 pine
+ +
13.7.2 elm
+ +
13.7.3 mutt
+ +
13.7.4 nail
+
+
+ +
13.8 Browsers
+ +
+
+
13.8.1 lynx
+ +
13.8.2 links
+ +
13.8.3 wget
+
+
+ +
13.9 FTP Clients
+ +
+
+
13.9.1 ftp
+ +
13.9.2 ncftp
+
+
+ +
13.10 Talking to Other People
+ +
+
+
13.10.1 wall
+ +
13.10.2 talk
+ +
13.10.3 ytalk
+
+
+
+
+ +
14 Security
+ +
+
+
14.1 Disabling Services
+ +
+
+
14.1.1 Services started from inetd
+ +
14.1.2 Services started from init scripts
+
+
+ +
14.2 Host Access Control
+ +
+
+
14.2.1 iptables
+ +
14.2.2 tcpwrappers
+
+
+ +
14.3 Keeping Current
+ +
+
+
14.3.1 slackware-security mailing list
+ +
14.3.2 The /patches directory
+
+
+
+
+ +
15 Archive Files
+ +
+
+
15.1 gzip
+ +
15.2 bzip2
+ +
15.3 tar
+ +
15.4 zip
+
+
+ +
16 Vi
+ +
+
+
16.1 Starting vi
+ +
16.2 Modes
+ +
+
+
16.2.1 Command Mode
+ +
16.2.2 Insert Mode
+
+
+ +
16.3 Opening Files
+ +
16.4 Saving Files
+ +
16.5 Quitting vi
+ +
16.6 vi Configuration
+ +
16.7 Vi Keys
+
+
+ +
17 Emacs
+ +
+
+
17.1 Starting emacs
+ +
+
+
17.1.1 Command Keys
+
+
+ +
17.2 Buffers
+ +
17.3 Modes
+ +
+
+
17.3.1 Opening files
+
+
+ +
17.4 Basic Editing
+ +
17.5 Saving Files
+ +
+
+
17.5.1 Quitting Emacs
+
+
+
+
+ +
18 Slackware Package Management
+ +
+
+
18.1 Overview of +Package Format
+ +
18.2 Package Utilities
+ +
+
+
18.2.1 +pkgtool
+ +
18.2.2 +installpkg
+ +
18.2.3 +removepkg
+ +
18.2.4 +upgradepkg
+ +
18.2.5 +rpm2tgz/rpm2targz
+
+
+ +
18.3 Making Packages
+ +
+
+
18.3.1 explodepkg
+ +
18.3.2 makepkg
+ +
18.3.3 SlackBuild +Scripts
+
+
+ +
18.4 Making Tags and +Tagfiles (for setup)
+
+
+ +
19 ZipSlack
+ +
+
+
19.1 What is ZipSlack?
+ +
+
+
19.1.1 Advantages
+ +
19.1.2 Disadvantages
+
+
+ +
19.2 Getting ZipSlack
+ +
+
+
19.2.1 Installation
+
+
+ +
19.3 Booting ZipSlack
+
+
+ +
Glossary
+ +
A. The GNU General Public License
+ +
+
+
A.1. Preamble
+ +
A.2. TERMS AND CONDITIONS
+ +
A.3. How to Apply These Terms to Your New +Programs
+
+
+
+
+ + + + + +
+
+
List of Examples
+ +
8-1. Listing Environment +Variables with set
+
+
+
+ + + + + diff --git a/slackbook/html/installation-partitioning.html b/slackbook/html/installation-partitioning.html new file mode 100644 index 000000000..3d3821e5e --- /dev/null +++ b/slackbook/html/installation-partitioning.html @@ -0,0 +1,218 @@ + + + + +Partitioning + + + + + + + + + + + +
+

3.3 +Partitioning

+ +

After booting from your preferred media, you will need to partition your hard disk. +The disk partition is where the Linux filesystem will be created and is where Slackware +will be installed. At the very minimum we recommend creating two partitions; one for your +root filesystem (/) and one for swap space.

+ +

After the root disk finishes loading, it will present you with a login prompt. Log in +as root (there is no password). At the shell prompt, run either cfdisk(8) or fdisk(8). The cfdisk program provides a more user-friendly interface than the +regular fdisk program, but does lack some features. We will +briefly explain the fdisk program below.

+ +

Begin by running fdisk for your hard disk. In Linux, the hard +disks do not have drive letters, but are represented by a file. The first IDE hard disk +(primary master) is /dev/hda, the primary slave is /dev/hdb, and so on. SCSI disks follow the same type system, but +are in the form of /dev/sdX. You +will need to start fdisk and pass it your hard disk:

+ + + + + +
+
+# fdisk /dev/hda
+
+
+ +

Like all good Unix programs, fdisk gives you a prompt +(thought you were getting a menu, right?). The first thing you should do is examine your +current partitions. We do that by typing p at the fdisk prompt:

+ + + + + +
+
+Command (m for help): p
+
+
+ +

This will display all sorts of information about your current partitions. Most people +pick a free drive to install to and then remove any existing partitions on it to create +room for the Linux partitions.

+ +
+ + + + + +
Warning +

IT IS VERY IMPORTANT THAT YOU BACK UP ANY INFORMATION YOU WANT TO SAVE BEFORE +DESTROYING THE PARTITION IT LIVES ON.

+
+
+ +

There is no easy way to recover from deleting a partition, so always back up before +playing with them.

+ +

Looking at the table of partition information you should see a partition number, the +size of the partition, and its type. There's more information, but don't worry about that +for now. We are going to delete all of the partitions on this drive to create the Linux +ones. We run the d command to delete those:

+ + + + + +
+
+Command (m for help): d
+Partition number (1-4): 1
+
+
+ +

This process should be continued for each of the partitions. After deleting the +partitions we are ready to create the Linux ones. We have decided to create one partition +for our root filesystem and one for swap. It is worth noting that Unix partitioning +schemes are the subject of many flame wars, and that most users will tell you the best +way to do it. At a minimum, you should create one partition for / and one for swap. Over time, you'll develop a method that works +well for you.

+ +

I use two basic partition schemes. The first is for a desktop. I make 4 partitions, +/, /home, /usr/local, and swap. This lets me re-install or upgrade the entire +installation under / without wiping out my data files under +/home or my custom compiled applications under /usr/local. For +servers, I often replace the /usr/local partition with a /var partition. Many different servers store information on that +partition and having it kept separate from / has certain +performance benefits. For now, we're sticking with just two partitions: / and swap.

+ +

Now we create the partitions with the n command:

+ + + + + +
+
+Command (m for help): n
+Command action
+   e   extended
+   p   primary partition (1-4)
+p
+Partition number (1-4):1
+First cylinder (0-1060, default 0):0
+ Last cylinder or +size or +sizeM or +sizeK (0-1060, default 1060):+64M
+
+
+ +

You need to make sure you create primary partitions. The first partition is going to +be our swap partition. We tell fdisk to make partition number 1 a primary partition. We +start it at cylinder 0 and for the ending cylinder we type +64M. This will give us a 64 +megabyte partition for swap. (The size of the swap partition you need actually depends on +the amount of RAM you have. It is conventional wisdom that a swap space double the size +of your RAM should be created.) Then we define primary partition number 2 starting at the +first available cylinder and going all the way to the end of the drive.

+ + + + + +
+
+Command (m for help):n
+Command action
+   e   extended
+   p   primary partition (1-4)
+p
+Partition number (1-4):2
+First cylinder (124-1060, default 124):124
+Last cylinder or +size or +sizeM or +sizeK (124-1060, default 1060):1060
+
+
+ +

We are almost done. We need to change the type of the first partition to type 82 +(Linux swap). Type t to change the type, select the first +partition, and type 82. Before writing your changes to the +disk, you should look at the new partition table one last time. Use the p in fdisk to display the partition +table. If everything looks good, type w to write your +changes to the disk and quit fdisk.

+
+ + + + + diff --git a/slackbook/html/installation-requirements.html b/slackbook/html/installation-requirements.html new file mode 100644 index 000000000..e0e53dbf5 --- /dev/null +++ b/slackbook/html/installation-requirements.html @@ -0,0 +1,388 @@ + + + + +System Requirements + + + + + + + + + + + +
+

3.2 +System Requirements

+ +

An easy Slackware installation requires, at minimum, the following:

+ +
+

Table 3-2. System Requirements

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HardwareRequirement
Processor586
RAM32 MB
Disk Space1GB
Media Drive4x CD-ROM
+
+ +

If you have the bootable CD, you will probably not need a floppy drive. Of course, it +stands to reason that if you don't possess a CD-ROM drive, you will need a floppy drive +to do a network install. A network card is required for an NFS install. See the section +called NFS for more information.

+ +

The disk space requirement is somewhat tricky. The 1GB recommendation is usually safe +for a minimal install, but if you do a full install, you will need around two gigabytes +of available hard disk space plus additional space for personal files.. Most users don't +do a full install. In fact, many run Slackware on as little as 100MB of hard disk +space.

+ +

Slackware can be installed to systems with less RAM, smaller hard drives, and weaker +CPUs, but doing so will require a little elbow grease. If you're up for a little work, +take a look at the LOWMEM.TXT file in the distribution tree for +a few helpful hints.

+ +
+

3.2.1 The Software Series

+ +

For reasons of simplicity, Slackware has historically been divided into software +series. Once called “disk sets” because they were designed for floppy-based +installation, the software series are now used primarily to categorize the packages +included in Slackware. Today, floppy installation is no longer possible.

+ +

The following is a brief description of each software series.

+ +
+

Table 3-3. Software Series

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SeriesContents
AThe base system. Contains enough software to get up and running and have a text +editor and basic communication program.
APVarious applications that do not require the X Window System.
DProgram development tools. Compilers, debuggers, interpreters, and man pages are all +here.
EGNU Emacs.
FFAQs, HOWTOs, and other miscellaneous documentation.
GNOMEThe GNOME desktop environment.
KThe source code for the Linux kernel.
KDEThe K Desktop Environment. An X environment which shares a lot of look-and-feel +features with MacOS and Windows. The Qt library, which KDE requires, is also in this +series.
KDEIInternationalization packages for the KDE desktop.
LLibraries. Dynamically linked libraries required by many other programs.
NNetworking programs. Daemons, mail programs, telnet, news readers, and so on.
TteTeX document formatting system.
TCLThe Tool Command Language. Tk, TclX, and TkDesk.
XThe base X Window System.
XAPX Applications that are not part of a major desktop environment (for example, +Ghostscript and Netscape).
YBSD Console games
+
+
+ +
+

3.2.2 +Installation Methods

+ +
+

3.2.2.1 Floppy

+ +

While it was once possible to install all of Slackware Linux from floppy disks, the +increasing size of software packages (indeed, of some individual programs) has forced the +abandonment of the floppy install. As late as Slackware version 7.1 a partial install was +possible using floppy disks. The A and N series could be nearly entirely installed, +providing a base system from which to install the rest of the distribution. If you are +considering a floppy install (typically on older hardware), it is typically recommended +to find another way, or use an older release. Slackware 4.0 is still very popular for +this reason, as is 7.0.

+ +

Please note that floppy disks are still required for a CD-ROM install if you do not +have a bootable CD, as well as for an NFS install.

+
+ +
+

3.2.2.2 CD-ROM

+ +

If you have the bootable CD, available in the official disc set published by Slackware +Linux, Inc. (see the section called Getting Slackware), a CD-based installation will be a +bit simpler for you. If not, you will need to boot from floppies. Also, if you have +special hardware that makes usage of the kernel on the bootable CD problematic, you may +need to use specialized floppies.

+ +

As of Slackware version 8.1, a new method is used for creating the bootable CDs, which +does not work as well with certain flaky BIOS chips (it is worth noting that most all +Linux CDs suffer from this these days). If that is the case, we recommend booting from a +floppy disk.

+ +

Section +3.2.3 and Section 3.2.5 +provide information on choosing and creating floppies from which to boot, should this be +necessary.

+
+ +
+

3.2.2.3 NFS

+ +

NFS (the Network File System) is a way of making filesystems available to remote +machines. An NFS install allows you to install Slackware from another computer on your +network. The machine from which you are installing needs to be configured to export the +Slackware distribution tree to the machine to which you're installing. This, of course, +involves some knowledge of NFS, which is covered in Section 5.6.

+ +

It is possible to perform an NFS install via such methods as PLIP (over a parallel +port), SLIP, and PPP (though not over a modem connection). However, we recommend the use +of a network card if available. After all, installing an operating system through your +printer port is going to be a very, very slow process.

+
+
+ +
+

3.2.3 Boot Disk

+ +

The boot disk is the floppy you actually boot from to begin the installation. It +contains a compressed kernel image which is used to control the hardware during +installation. Therefore, it is very much required (unless you're booting from CD, as is +discussed in the section called CD-ROM). The boot disks are located in the bootdisks/ directory in the distribution tree.

+ +

There are more Slackware boot disks than you can shake a stick at (which is to say +about 16). A complete list of boot disks, with a description of each, is available in the +Slackware distribution tree in the file bootdisks/README.TXT. +However, most people are able to use the bare.i (for IDE +devices) or scsi.s (for SCSI devices) boot disk image.

+ +

See Section +3.2.6 for instructions on making a disk from an image.

+ +

After booting, you will be prompted to insert the root disk. We recommend that you +just humor the boot disk and play along.

+
+ +
+

3.2.4 Root Disk

+ +

The root disks contain the setup program and a filesystem which is used during +installation. They are also required. The root disk images are located in the directory +rootdisks in the distribution tree. You'll have to make two root disks from the install.1 and install.2 images. Here you +can also find the network.dsk, pcmcia.dsk, rescue.dsk, and sbootmgr.dsk disks.

+
+ +
+

3.2.5 Supplemental Disk

+ +

A supplemental disk is needed if you are performing an NFS install or installing to a +system with PCMCIA devices. Supplemental disks are in the rootdsks directory in the +distribution tree, with the filenames network.dsk and pcmcia.dsk. Recently other supplemental disks such as rescue.dsk and sbootmgr.dsk have been +added. The rescue disk is a small floppy root image that runs in a 4MB RAM drive. It +includes some basic networking utilities and the vi editor for quick fixes on busted +machines. The sbootmgr.dsk disk is used to boot other devices. +Boot off this disk if your bootable CD-ROM drive doesn't want to boot the Slackware CDs. +It will prompt you for different things to boot and may offer a convenient way to work +around a buggy BIOS.

+ +

The root disk will instruct you on the use of supplemental disks when it is +loaded.

+
+ +
+

3.2.6 Making the Disks

+ +

Once you've selected a boot disk image, you need to put it on a floppy. The process is +slightly different depending on which operating system you're using to make the disks. If +you're running Linux (or pretty much any Unix-like OS) you'll need to use the dd(1) command. Assuming bare.i is your +disk image file and your floppy drive is /dev/fd0, the command +to make a bare.i floppy is:

+ + + + + +
+
+% dd if=bare.i of=/dev/fd0
+
+
+ +

If you're running a Microsoft OS, you'll need to use the RAWRITE.EXE program, which is included in the distribution tree in +the same directories as the floppy images. Again assuming that bare.i is your disk image file and your floppy drive is A:, open a DOS prompt and type the following:

+ + + + + +
+
+C:\ rawrite a: bare.i
+
+
+
+
+ + + + + diff --git a/slackbook/html/installation-setup.html b/slackbook/html/installation-setup.html new file mode 100644 index 000000000..68b06ce10 --- /dev/null +++ b/slackbook/html/installation-setup.html @@ -0,0 +1,387 @@ + + + + +The setup Program + + + + + + + + + + + +
+

3.4 The setup Program

+ +

Once you have created your partitions, you are ready to install Slackware. The next +step in the installation process is running the setup(8) +program. To do so, simply type setup at the shell prompt. setup is a menu-driven system for actually installing the Slackware +packages and configuring your system.

+ +
+

+
+ +

The setup process goes something like this: You step through each option in the setup program, in the order they are listed. (Of course, you are +free to do things in almost any order you choose, but chances are it isn't going to work +out very well.) Menu items are selected using the up and down arrow keys, and the +“Okay” and “Cancel” buttons can be chosen by using the left and +right arrow keys. Alternatively, each option has a corresponding key, which is +highlighted in the option name. Options which are flaggable (those indicated with a [X]) are toggled using the spacebar.

+ +

Of course, all of that is described in the “help” section of setup, but we believe in giving our readers their money's worth.

+ +
+

3.4.1 HELP

+ +

If this is your first time installing Slackware, you might want to take a look at the +help screen. It will give a description of each part of setup +(much like the one we're writing now, but less involved) and instructions for navigating +the rest of the install.

+ +
+

+
+
+ +
+

3.4.2 KEYMAP

+ +

If you require a keymap other than the United States “qwerty” layout, you +may want to take a look at this section. It offers a number of alternate layouts for your +keyboarding enjoyment.

+ +
+

+
+
+ +
+

3.4.3 ADDSWAP

+ +
+

+
+ +

If you created a swap partition (back in Section 3.3), this section will allow you to +enable it. It will autodetect and display the swap partitions on your hard drive, +allowing you to select one to format and enable.

+
+ +
+

3.4.4 TARGET

+ +
+

+
+ +

The target section is where your other (non-swap) partitions are formatted and mapped +to filesystem mount points. A list of the partitions on your hard disk will be displayed. +For each partition, you will be given the option of whether to format that partition or +not. Depending on the kernel used, you can choose between reiserfs (the default), ext3, +ext2, jfs, and xfs. Most people use either reiserfs or ext3. In the near future we may +see support for reiserfs4 slip in.

+ +

The first option in the target section is the selection of a partition on which to +install your root (/) filesystem. After that, you will be able +to map other partitions to filesystems as you choose. (For instance, you may want your +third partition, say /dev/hda3, to be your home filesystem. +This is just an example; map the partitions as you see fit.)

+
+ +
+

3.4.5 SOURCE

+ +

The source section is where you select the source media from which you are installing +Slackware. Currently there are four sources to choose from. These are CD-ROM, NFS, or a +premounted directory.

+ +
+

+
+ +

The CD-ROM selection enables a CD-ROM based installation. It will offer the option of +scanning for a CD-ROM drive or displaying a list from which you can pick your drive type. +Make sure you have the Slackware CD in your drive before allowing it to scan.

+ +

The NFS selection prompts for your network information and the network information for +your NFS server. The NFS server must be set up in advance. Also note that you cannot use +hostnames, you must use the IP addresses for both your machine and the NFS server (there +is no name resolver on the setup disk). Naturally you must have used the network.dsk floppy to add support for your network controller.

+ +

The premounted directory offers the most flexibility. You can use this method to +install from things such as Jaz disks, NFS mounts over PLIP, and FAT filesystems. Mount +the filesystem to a location of your choosing before running setup, then specify that +location here.

+
+ +
+

3.4.6 SELECT

+ +

The select option allows you to select the software series that you wish to install. +These series are described in Section 3.2.1. +Please note that you must install the A series to have a working base system. All other +series are optional.

+ +
+

+
+
+ +
+

3.4.7 INSTALL

+ +

Assuming that you have gone through the “target”, “source”, +and “select” options, the install option will allow +you to select packages from your chosen software series. If not, it will prompt you to go +back and complete the other sections of the setup program. This option allows you to +select from six different installation methods: full, newbie, menu, expert, custom, and tag path.

+ +
+

+
+ +

The full option will install every package from all the +software series that you chose in the “select” section. There is no further +prompting. This is the easiest installation method, since you do not need to make any +decisions on the actual packages to install. Of course, this option also takes up the +most hard drive space.

+ +

The next option is newbie. This option installs all of the +required packages in the selected series. For all other packages, it offers a prompt +where you can select “Yes”, “No”, or “Skip”. Yes and +No do the obvious, while Skip will go ahead to the next software series. Additionally, +you will see a description and size requirement for each package to help you decide if +you need it. We recommend this option for new users, as it ensures that you get all the +required packages installed. However, it is a little slow because of the prompting.

+ +

Menu is a faster and more advanced version of the newbie +option. For each series, a menu is displayed, from which you can select all the +non-required packages you want to install. Required packages are not displayed on this +menu.

+ +

For the more advanced user, install offers the expert +option. This allows you complete control over what packages get installed. You can +deselect packages that are absolutely required, resulting in a broken system. On the +other hand, you can control exactly what goes onto your system. Simply select the +packages from each series that you want installed. This is not recommended for the new +user, as it is quite easy to shoot yourself in the foot.

+ +

The custom and tag path options +are also for advanced users. These options allow you to install based upon custom tag +files that you created in the distribution tree. This is useful for installing to large +numbers of machines fairly quickly. For more information on using tag files, see Section 18.4.

+ +

After selecting your installation method, one of a few things will happen. If you +selected full or menu, a menu screen will appear, allowing you to select the packages to +be installed. If you selected full, packages will immediately start getting installed to +the target. If you selected newbie, packages will be installed until an optional package +is reached.

+ +

Note that it is possible to run out of space while installing. If you selected too +many packages for the amount of free space on the target device, you will have problems. +The safest thing to do is to select some software and add more later, if you need it. +This can easily be done using Slackware's package management tools. For this information, +see Chapter 18.

+
+ +
+

3.4.8 CONFIGURE

+ +

The configure section allows you to do some basic system configuration, now that the +packages have been installed. What you see here depends in large part upon which software +you have installed. You will, however, always see the following:

+ +
+

3.4.8.1 Kernel selection

+ +

Here you will be asked to select a kernel to install. You can install the kernel from +the boot disk you used to install, the Slackware CD-ROM, or from another floppy which you +(always thinking ahead) have prepared. Or you can elect to skip, in which case the +default kernel will be installed and play will continue to the dealer's left.

+ +
+

+
+
+ +
+

3.4.8.2 Make a boot disk

+ +

Making a boot disk for future use is probably a good idea. You will have the option of +formatting a floppy and then creating one of two types of boot disk. The first type, simple, simply (go figure) writes a kernel to the floppy. A more +flexible (and highly recommended) option is lilo, which will of +course create a lilo boot disk. See LILO in Section +7.1 for more information. Of course, you may also choose to simply continue, in which case no boot disk will be made.

+ +
+

+
+
+ +
+

3.4.8.3 Modem

+ +

You will be prompted for modem information. More specifically, you will be asked +whether you have a modem, and if so, what serial port it is on.

+ +
+

+
+ +

These next configuration subsections may or may not appear, depending on whether or +not you installed their corresponding packages.

+
+ +
+

3.4.8.4 Timezone

+ +

This one's pretty straightforward: you will be asked what time zone you are in. If you +operate on Zulu time, we are very sorry; the (extremely long) list is alphabetically +ordered, and you're at the bottom.

+ +
+

+
+
+ +
+

3.4.8.5 Mouse

+ +

This subsection simply asks what kind of mouse you have, and whether you want gpm(8) console mouse support enabled on bootup.

+ +
+

+
+
+ +
+

3.4.8.6 Hardware clock

+ +

This subsection asks if your computer's hardware clock is set to Coordinated Universal +Time (UTC or GMT). Most PCs are not, so you should probably say no.

+ +
+

+
+
+ +
+

3.4.8.7 Font

+ +

The font subsection allows you to choose from a list of custom console fonts.

+ +
+

+
+
+ +
+

3.4.8.8 LILO

+ +

Here you are prompted for installation of LILO (the LInux LOader; see Section 7.1 for more information).

+ +
+

+
+ +

If Slackware is to be the only operating system on your computer, simple should work just fine for you. If you are dual-booting, the +expert option is a better choice. See Section 7.3 for more information on dual-booting. The third +option, do not install, is not recommended unless you know what +you're doing and have a very good reason for not installing LILO. If you are performing +an expert install, you will be given a choice as to where LILO will be put. You may place +LILO in the MBR (Master Boot Record) of your hard drive, in the superblock of your root +Linux partition, or on a floppy disk.

+
+ +
+

3.4.8.9 Network

+ +

The network configuration subsection is actually netconfig. +See Section 5.1 +for more information.

+
+ +
+

3.4.8.10 X Window Manager

+ +

This subsection will allow you to choose a default window manager for X. See Chapter 6 for more details on X and window managers.

+ +
+

+
+ +

No matter which packages you installed, the last thing configure will do is ask you +whether you want to go ahead and set a root password. For +security reasons, this is probably a good idea; however, like almost everything else in +Slackware, this is your call.

+
+
+
+ + + + + diff --git a/slackbook/html/installation.html b/slackbook/html/installation.html new file mode 100644 index 000000000..c2d1140e2 --- /dev/null +++ b/slackbook/html/installation.html @@ -0,0 +1,176 @@ + + + + +Installation + + + + + + + + + + +
+

Chapter 3 Installation

+ +
+
+
Table of Contents
+ +
3.1 Getting Slackware
+ +
3.2 System Requirements
+ +
3.3 Partitioning
+ +
3.4 The setup +Program
+
+
+ +

Before you can use Slackware Linux, you'll have to obtain and install it. Getting +Slackware is as easy as purchasing it or downloading it for free over the Internet. +Installing it is also easy as long as you have some basic knowledge about your computer +and are willing to learn a few other things. The installation program itself is very much +a step-by-step process. Because of this, you can be up and running very quickly. In fact, +Slackware boasts one of the lowest installation times of any full-featured Linux +distribution.

+ +
+

3.1 Getting +Slackware

+ +
+

3.1.1 The Official Disc and Box +Sets

+ +

The official Slackware Linux CD set is available from Slackware Linux, Inc. The CD set +consists of 4 discs. The first disk contains all the software needed for a basic server +install, and the X window system. The second cd is a “live” cd; that is, a +bootable cd that installs into RAM and gives you a temporary installation to play around +with or do a data or machine rescue. This cd also contains a few packages such as the KDE +and GNOME desktop environments. A few other goodies are included on the second cd +including many non-vital packages in the “extra” folder. The third and fourth +CDs contain the source code to all of Slackware, along with the original edition of this +book.

+ +

One may also purchase a boxed set that includes the 4 discs and a copy of this book, +as well as lots of neat Slackware gear to show off your geek pride. CD subscriptions are +available at a reduced rate also.

+ +

The preferred method for shopping for Slackware merchandise is online at the Slackware +store.

+ +

http://store.slackware.com

+ +

You can also call or e-mail your order in.

+ +
+

Table 3-1. Slackware Linux, Inc. Contact Information

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodContact Details
Telephone1-(925) 674-0783
Websitehttp://store.slackware.com
Emailorders@slackware.com
Postal1164 Claremont Drive, Brentwood, CA 94513
+
+
+ +
+

3.1.2 Via the Internet

+ +

Slackware Linux is also freely available over the Internet. You may email in your +support questions, but higher priority will be given to those who have purchased the +official CD set. With that said, we get a lot of e-mails and our time is rather limited. +Before e-mailing for support consider reading Chapter 2 +first.

+ +

The official Slackware Linux Project website is located at:

+ +

http://www.slackware.com/

+ +

The primary FTP location for Slackware Linux is:

+ +

ftp://ftp.slackware.com/pub/slackware/

+ +

Bear in mind that our ftp site, while open for general use, does not have unlimited +bandwidth. Please consider using a mirror near you to download Slackware. An incomplete +list of mirrors can be found on our site at http://www.slackware.com/getslack.

+
+
+
+ + + + + diff --git a/slackbook/html/installation/setup-bootdisk-w.png b/slackbook/html/installation/setup-bootdisk-w.png new file mode 100644 index 000000000..55eb7b2a3 Binary files /dev/null and b/slackbook/html/installation/setup-bootdisk-w.png differ diff --git a/slackbook/html/installation/setup-font-w.png b/slackbook/html/installation/setup-font-w.png new file mode 100644 index 000000000..c18769669 Binary files /dev/null and b/slackbook/html/installation/setup-font-w.png differ diff --git a/slackbook/html/installation/setup-hardware-clock-w.png b/slackbook/html/installation/setup-hardware-clock-w.png new file mode 100644 index 000000000..784975dac Binary files /dev/null and b/slackbook/html/installation/setup-hardware-clock-w.png differ diff --git a/slackbook/html/installation/setup-help-w.png b/slackbook/html/installation/setup-help-w.png new file mode 100644 index 000000000..21958005e Binary files /dev/null and b/slackbook/html/installation/setup-help-w.png differ diff --git a/slackbook/html/installation/setup-install-w.png b/slackbook/html/installation/setup-install-w.png new file mode 100644 index 000000000..7ca526989 Binary files /dev/null and b/slackbook/html/installation/setup-install-w.png differ diff --git a/slackbook/html/installation/setup-kernel-w.png b/slackbook/html/installation/setup-kernel-w.png new file mode 100644 index 000000000..206c3d760 Binary files /dev/null and b/slackbook/html/installation/setup-kernel-w.png differ diff --git a/slackbook/html/installation/setup-keymap-w.png b/slackbook/html/installation/setup-keymap-w.png new file mode 100644 index 000000000..ab7dd6f45 Binary files /dev/null and b/slackbook/html/installation/setup-keymap-w.png differ diff --git a/slackbook/html/installation/setup-lilo-w.png b/slackbook/html/installation/setup-lilo-w.png new file mode 100644 index 000000000..638a29ff1 Binary files /dev/null and b/slackbook/html/installation/setup-lilo-w.png differ diff --git a/slackbook/html/installation/setup-modem-w.png b/slackbook/html/installation/setup-modem-w.png new file mode 100644 index 000000000..e1c8877e9 Binary files /dev/null and b/slackbook/html/installation/setup-modem-w.png differ diff --git a/slackbook/html/installation/setup-mouse-w.png b/slackbook/html/installation/setup-mouse-w.png new file mode 100644 index 000000000..31ee6b35b Binary files /dev/null and b/slackbook/html/installation/setup-mouse-w.png differ diff --git a/slackbook/html/installation/setup-program-w.png b/slackbook/html/installation/setup-program-w.png new file mode 100644 index 000000000..721ed0587 Binary files /dev/null and b/slackbook/html/installation/setup-program-w.png differ diff --git a/slackbook/html/installation/setup-select-w.png b/slackbook/html/installation/setup-select-w.png new file mode 100644 index 000000000..d2f7a1442 Binary files /dev/null and b/slackbook/html/installation/setup-select-w.png differ diff --git a/slackbook/html/installation/setup-source-w.png b/slackbook/html/installation/setup-source-w.png new file mode 100644 index 000000000..226ef5b60 Binary files /dev/null and b/slackbook/html/installation/setup-source-w.png differ diff --git a/slackbook/html/installation/setup-swap-w.png b/slackbook/html/installation/setup-swap-w.png new file mode 100644 index 000000000..f17ba4f3c Binary files /dev/null and b/slackbook/html/installation/setup-swap-w.png differ diff --git a/slackbook/html/installation/setup-target-w.png b/slackbook/html/installation/setup-target-w.png new file mode 100644 index 000000000..142cf8bce Binary files /dev/null and b/slackbook/html/installation/setup-target-w.png differ diff --git a/slackbook/html/installation/setup-timezone-w.png b/slackbook/html/installation/setup-timezone-w.png new file mode 100644 index 000000000..b51500b85 Binary files /dev/null and b/slackbook/html/installation/setup-timezone-w.png differ diff --git a/slackbook/html/installation/setup-xwmconfig-w.png b/slackbook/html/installation/setup-xwmconfig-w.png new file mode 100644 index 000000000..91c8cc015 Binary files /dev/null and b/slackbook/html/installation/setup-xwmconfig-w.png differ diff --git a/slackbook/html/introduction-opensource.html b/slackbook/html/introduction-opensource.html new file mode 100644 index 000000000..eeeda9e57 --- /dev/null +++ b/slackbook/html/introduction-opensource.html @@ -0,0 +1,126 @@ + + + + +Open Source and Free Software + + + + + + + + + + + +
+

1.3 Open +Source and Free Software

+ +

Within the Linux community, there are two major ideological movements at work. The +Free Software movement (which we'll get into in a moment) is working toward the goal of +making all software free of intellectual property restrictions. Followers of this +movement believe these restrictions hamper technical improvement and work against the +good of the community. The Open Source movement is working toward most of the same goals, +but takes a more pragmatic approach to them. Followers of this movement prefer to base +their arguments on the economic and technical merits of making source code freely +available, rather than the moral and ethical principles that drive the Free Software +Movement.

+ +

At the other end of the spectrum are groups that wish to maintain tighter controls +over their software.

+ +

The Free Software movement is headed by the Free Software Foundation, a fund-raising +organization for the GNU project. Free software is more of an ideology. The oft-used +expression is “free as in speech, not free as in beer”. In essence, free +software is an attempt to guarantee certain rights for both users and developers. These +freedoms include the freedom to run the program for any reason, to study and modify the +source code, to redistribute the source, and to share any modifications you make. In +order to guarantee these freedoms, the GNU General Public License (GPL) was created. The +GPL, in brief, provides that anyone distributing a compiled program which is licensed +under the GPL must also provide source code, and is free to make modifications to the +program as long as those modifications are also made available in source code form. This +guarantees that once a program is “opened” to the community, it cannot be +“closed” except by consent of every author of every piece of code (even the +modifications) within it. Most Linux programs are licensed under the GPL.

+ +

It is important to note that the GPL does not say anything about price. As odd as it +may sound, you can charge for free software. The “free” part is in the +liberties you have with the source code, not in the price you pay for the software. +(However, once someone has sold you, or even given you, a compiled program licensed under +the GPL they are obligated to provide its source code as well.)

+ +

Another popular license is the BSD license. In contrast to the GPL, the BSD license +gives no requirement for the release of a program's source code. Software released under +the BSD license allows redistribution in source or binary form provided only a few +conditions are met. The author's credentials cannot be used as a sort of advertisement +for the program. It also indemnifies the author from liability for damages that may arise +from the use of the software. Much of the software included in Slackware Linux is BSD +licensed.

+ +

At the forefront of the younger Open Source movement, the Open Source Initiative is an +organization that solely exists to gain support for open source software, that is, +software that has the source code available as well as the ready-to-run program. They do +not offer a specific license, but instead they support the various types of open source +licenses available.

+ +

The idea behind the OSI is to get more companies behind open source by allowing them +to write their own open source licenses and have those licenses certified by the Open +Source Initiative. Many companies want to release source code, but do not want to use the +GPL. Since they cannot radically change the GPL, they are offered the opportunity to +provide their own license and have it certified by this organization.

+ +

While the Free Software Foundation and the Open Source Initiative work to help each +other, they are not the same thing. The Free Software Foundation uses a specific license +and provides software under that license. The Open Source Initiative seeks support for +all open source licenses, including the one from the Free Software Foundation. The +grounds on which each argues for making source code freely available sometimes divides +the two movements, but the fact that two ideologically diverse groups are working toward +the same goal lends credence to the efforts of each.

+
+ + + + + diff --git a/slackbook/html/introduction-slackware.html b/slackbook/html/introduction-slackware.html new file mode 100644 index 000000000..c9c7a11a8 --- /dev/null +++ b/slackbook/html/introduction-slackware.html @@ -0,0 +1,93 @@ + + + + +What is Slackware? + + + + + + + + + + + +
+

1.2 What +is Slackware?

+ +

Slackware, started by Patrick Volkerding in late 1992, and initially released to the +world on July 17, 1993, was the first Linux distribution to achieve widespread use. +Volkerding first learned of Linux when he needed an inexpensive LISP interpreter for a +project. One of the few distributions available at the time was SLS Linux from Soft +Landing Systems. Volkerding used SLS Linux, fixing bugs as he found them. Eventually, he +decided to merge all of these bugfixes into his own private distribution that he and his +friends could use. This private distribution quickly gained popularity, so Volkerding +decided to name it Slackware and make it publicly available. Along the way, Patrick added +new things to Slackware; a user friendly installation program based on a menuing system, +as well as the concept of package management, which allows users to easily add, remove, +or upgrade software packages on their systems.

+ +

There are many reasons why Slackware is Linux's oldest living distribution. It does +not try to emulate Windows, it tries to be as Unix-like as possible. It does not try to +cover up processes with fancy, point-and-click GUIs (Graphical User Interfaces). Instead, +it puts users in control by letting them see exactly what's going on. Its development is +not rushed to meet deadlines-each version comes out when it is ready.

+ +

Slackware is for people who enjoy learning and tweaking their system to do exactly +what they want. Slackware's stability and simplicity are why people will continue to use +it for years to come. Slackware currently enjoys a reputation as a solid server and a +no-nonsense workstation. You can find Slackware desktops running nearly any window +manager or desktop environment, or none at all. Slackware servers power businesses, +acting in every capacity that a server can be used in. Slackware users are among the most +satisfied Linux users. Of course, we'd say that. :^)

+
+ + + + + diff --git a/slackbook/html/introduction.html b/slackbook/html/introduction.html new file mode 100644 index 000000000..70bc42162 --- /dev/null +++ b/slackbook/html/introduction.html @@ -0,0 +1,122 @@ + + + + +An Introduction to Slackware Linux + + + + + + + + + + +
+

Chapter 1 An Introduction to Slackware +Linux

+ +
+
+
Table of Contents
+ +
1.1 What is Linux?
+ +
1.2 What is Slackware?
+ +
1.3 Open Source and Free Software
+
+
+ +
+

1.1 What is +Linux?

+ +

Linus Torvalds started Linux, an operating system kernel, as a personal project in +1991. He started the project because he wanted to run a Unix-based operating system +without spending a lot of money. In addition, he wanted to learn the ins and outs of the +386 processor. Linux was released free of charge to the public so that anyone could study +it and make improvements under the General Public License. (See Section 1.3 and Appendix A +for an explanation of the license.) Today, Linux has grown into a major player in the +operating system market. It has been ported to run on a variety of system architectures, +including HP/Compaq's Alpha, Sun's SPARC and UltraSPARC, and Motorola's PowerPC chips +(through Apple Macintosh and IBM RS/6000 computers.) Hundreds, if not thousands, of +programmers all over the world now develop Linux. It runs programs like Sendmail, Apache, +and BIND, which are very popular software used to run Internet servers. It's important to +remember that the term “Linux” really refers to the kernel - the core of the +operating system. This core is responsible for controlling your computer's processor, +memory, hard drives, and peripherals. That's all Linux really does: It controls the +operations of your computer and makes sure that all of its programs behave. Various +companies and individuals bundle the kernel and various programs together to make an +operating system. We call each bundle a Linux distribution.

+ +
+

1.1.1 A +Word on GNU

+ +

The Linux kernel project began as a solo endeavor by Linus Torvalds in 1991, but as +Isaac Newton once said, “If I have seen further, it is by standing on the shoulders +of giants.” When Linus Torvalds began the kernel the Free Software Foundation had +already established the idea of collaborative software. They entitled their effort GNU, a +recursive acronym that means simply “GNU's Not Unix”. GNU software ran atop +the Linux kernel from day 1. Their compiler gcc was used to +compile the kernel. Today many GNU tools from gcc to gnutar are still at the basis of every major Linux distribution. For +this reason many of the Free Software Foundation's proponents fervently state that their +work should be given the same credit as the Linux kernel. They strongly suggest that all +Linux distributions should refer to themselves as GNU/Linux distributions.

+ +

This is the topic of many flamewars, surpassed only by the ancient vi versus emacs +holy war. The purpose of this book is not to fan the fires of this heated discussion, but +rather to clarify the terminology for neophytes. When one sees GNU/Linux it means a Linux +distribution. When one sees Linux they can either be referring to the kernel, or to a +distribution. It can be rather confusing. Typically the term GNU/Linux isn't used because +it's a mouth full.

+
+
+
+ + + + + diff --git a/slackbook/html/network-configuration-hardware.html b/slackbook/html/network-configuration-hardware.html new file mode 100644 index 000000000..99c2f2833 --- /dev/null +++ b/slackbook/html/network-configuration-hardware.html @@ -0,0 +1,173 @@ + + + + +Network Hardware Configuration + + + + + + + + + + + +
+

5.2 Network Hardware Configuration

+ +

Having decided that you wish to bring your Slackware machine on to some form of +network, the first thing you'll need is a Linux-compatible network card. You will need to +take a little care to ensure that the card is truly Linux-compatible (please refer to the +Linux Documentation Project and/or the kernel documentation for information on the +current status of your proposed network card). As a general rule, you will most likely be +pleasantly surprised by the number of networking cards that are supported under the more +modern kernels. Having said that, I'd still suggest referring to any of the various Linux +hardware compatibility lists (such as The GNU/Linux +Beginners Group Hardware Compatibility Links and The Linux +Documentation Project Hardware HOWTO) that are available on the Internet before +purchasing your card. A little extra time spent in research can save days or even weeks +trying to troubleshoot a card that isn't compatible with Linux at all.

+ +

When you visit the Linux Hardware Compatibility lists available on the Internet, or +when you refer to the kernel documentation installed on your machine, it would be wise to +note which kernel module you'll need to use to support your network card.

+ +
+

5.2.1 Loading Network Modules

+ +

Kernel modules that are to be loaded on boot-up are loaded from the rc.modules file in /etc/rc.d or by the +kernel's auto module loading started by /etc/rc.d/rc.hotplug. +The default rc.modules file includes a Network device support +section. If you open rc.modules and look for that section, +you'll notice that it first checks for an executable rc.netdevice file in /etc/rc.d/. This +script is created if setup successfully autoprobes your network +device during installation.

+ +

Below that “if” block is a list of network devices and modprobe lines, +each commented out. Find your device and uncomment the corresponding modprobe line, then +save the file. Running rc.modules as root should now load your network device driver (as well as any +other modules that are listed and uncommented). Note that some modules (such as the +ne2000 driver) require parameters; make sure you select the correct line.

+
+ +
+

5.2.2 LAN (10/100/1000Base-T and Base-2) +cards

+ +

This heading encompasses all of the internal PCI and ISA networking cards. Drivers for +these cards are provided via loadable kernel modules as covered in the previous +paragraph. /sbin/netconfig should have probed for your card and +successfully set up your rc.netdevice file. If this did not +occur, the most likely problem would be that the module that you're attempting to load +for a given card is incorrect (it is not unheard of for different generations of the same +brand of card from the same manufacturer to require different modules). If you are +certain that the module that you're attempting to load is the correct one, your next best +bet would be to refer to the documentation for the module in an attempt to discover +whether or not specific parameters are required during when the module is +initialized.

+
+ +
+

5.2.3 Modems

+ +

Like LAN cards, modems can come with various bus support options. Until recently, most +modems were 8 or 16 bit ISA cards. With the efforts of Intel and motherboard +manufacturers everywhere to finally kill off the ISA bus completely, it is common now to +find that most modems are either external modems that connect to a serial or USB port or +are internal PCI modems. If you wish for your modem to work with Linux, it is VITALLY important to research your +prospective modem purchase, particularly if you are considering purchasing a PCI modem. +Many, if not most, PCI modems available on store shelves these days are WinModems. +WinModems lack some basic hardware on the modem card itself: the functions performed by +this hardware are typically offloaded onto the CPU by the modem driver and the Windows +operating system. This means that they do not have the standard serial interface that +PPPD will be expecting to see when you try to dial out to your Internet Service +Provider.

+ +

If you want to be absolutely sure that the modem you're purchasing will work with +Linux, purchase an external hardware modem that connects to the serial port on your PC. +These are guaranteed to work better and be less trouble to install and maintain, though +they require external power and tend to cost more.

+ +

There are several web sites that provide drivers and assistance for configuring +WinModem based devices. Some users have reported success configuring and installing +drivers for the various winmodems, including Lucent, Conexant, and Rockwell chipsets. As +the required software for these devices is not an included part of Slackware, and varies +from driver to driver, we will not go into detail on them.

+
+ +
+

5.2.4 PCMCIA

+ +

As part of your Slackware install, you are given the opportunity to install the pcmcia +package (in the “A” series of packages). This package contains the +applications and setup files required to work with PCMCIA cards under Slackware. It is +important to note that the pcmcia package only installs the generic software required to +work with PCMCIA cards under Slackware. It does NOT install any drivers or modules. The +available modules and drivers will be in the /lib/modules/`uname +-r`/pcmcia directory. You may need to do some experimentation to find a module that +will work with your network card.

+ +

You will need to edit /etc/pcmcia/network.opts (for an +Ethernet card) or /etc/pcmcia/wireless.opts (if you have a +wireless networking card). Like most Slackware configuration files, these two files are +very well commented and it should be easy to determine which modifications need to be +made.

+
+
+ + + + + diff --git a/slackbook/html/network-configuration-nfs.html b/slackbook/html/network-configuration-nfs.html new file mode 100644 index 000000000..ca6138d8d --- /dev/null +++ b/slackbook/html/network-configuration-nfs.html @@ -0,0 +1,308 @@ + + + + +Network File Systems + + + + + + + + + + + +
+

5.6 +Network File Systems

+ +

At this point, you should have a working TCP/IP connection to your network. You should +be able to ping other computers on your internal network and, if you have configured an +appropriate gateway, you should also be able to ping computers on the Internet itself. As +we know, the whole point in bringing a computer onto a network is to access information. +While some people might bring a computer up on a network just for the fun of it, most +people wish to be able to share files and printers. They wish to be able to access +documents on the Internet or play an online game. Having TCP/IP installed and functional +on your new Slackware system is a means to that end, but with just TCP/IP installed, +functionality will be very rudimentary. To share files, we will have to transfer them +back and forth using either FTP or SCP. We cannot browse files on our new Slackware +computer from the Network Neighborhood or My Network Places icons on Windows computers. +We'd like to be able to access files on other Unix machines seamlessly.

+ +

Ideally, we'd like to be able to use a network file system to allow us transparent access to our +files on other computers. The programs that we use to interact with information stored on +our computers really do not need to know on what computer a given file is stored; they +just need to know that it exists and how to get to it. It is then the responsibility of +the operating system to manage access to that file through the available file systems and +network file systems. The two most commonly used network file systems are SMB (as +implemented by Samba) and NFS.

+ +
+

5.6.1 SMB/Samba/CIFS

+ +

SMB (for Server Message Block) is a descendant of the older NetBIOS protocol that was +initially used by IBM in their LAN Manager product. Microsoft has always been fairly +interested in NetBIOS and it's successors (NetBEUI, SMB and CIFS). The Samba project has +existed since 1991, when it was originally written to link an IBM PC running NetBIOS with +a Unix server. These days, SMB is the preferred method for sharing file and print +services over a network for virtually the entire civilized world because Windows supports +it.

+ +

Samba's configuration file is /etc/samba/smb.conf; one of +the most well commented and documented configuration files you will find anywhere. Sample +shares have been setup for you to view and modify for your needs. If you need even +tighter control the man page for smb.conf is indispensable. Since Samba is documented so +well in the places I've mentioned above, we will not rewrite the documentation here. We +will, however, quickly cover the basics.

+ +

smb.conf is broken down into multiple sections: one section +per share, and a global section for setting options that are to be used everywhere. Some +options are only valid in the global section; some are only valid outside the global +section. Remember that the global section can be over-ridden by any other section. Refer +to the man pages for more information.

+ +

You will most likely wish to edit your smb.conf file to +reflect the network settings in your LAN. I would suggest modifying the items listed +below:

+ + + + + +
+
+[global]
+# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
+workgroup = MYGROUP
+
+
+ +

Change the workgroup name to reflect the workgroup or domain name that you are using +locally.

+ + + + + +
+
+# server string is the equivalent of the NT Description field
+server string = Samba Server
+
+
+ +

This will be the name of your Slackware computer displayed in the Network Neighborhood +(or My Network Places) folder.

+ + + + + +
+
+# Security mode. Most people will want user level security. See
+# security_level.txt for details. NOTE: To get the behaviour of
+# Samba-1.9.18, you'll need to use "security = share".
+security = user
+
+
+ +

You'll almost certainly wish to implement user level security on your Slackware +system.

+ + + + + +
+
+# You may wish to use password encryption. Please read
+# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
+# documentation.
+# Do not enable this option unless you have read those documents
+encrypt passwords = yes
+
+
+ +

If encrypt passwords is not enabled, you will not be able to use Samba with NT4.0, +Win2k, WinXP, and Win2003. Earlier Windows operating systems did not require encryption +to share files.

+ +

SMB is an authenticated protocol, meaning you must supply a correct username and +password in order to use this service. We tell the samba server what usernames and +passwords are valid with the smbpasswd command. smbpasswd takes a couple of common switches to tell it to either add +traditional users, or add machine users (SMB requires that you add the computers' NETBIOS +names as machine users, restricting what computers one can authenticate from).

+ + + + + +
+
+Adding a user to the /etc/samba/private/smbpasswd file.
+# smbpasswd -a user
+Adding a machine name to the /etc/samba/private/smbpasswd file.
+# smbpasswd -a -m machine
+
+
+ +

It's important to note that a given username or machine name must already exist in the +/etc/passwd file. You can accomplish this simply with the adduser command. Note that when using the adduser command to add a machine name one must append a dollar sign +(“$”) to the machine name. This should not however, be done with smbpasswd. smbpasswd appends the dollar +sign on its own. Failing to mangle the machine name this way with adduser will result in an error when adding the machine name to +samba.

+ + + + + +
+
+# adduser machine$
+
+
+
+ +
+

5.6.2 Network File System (NFS)

+ +

NFS (or Network File System) was originally written by Sun for their Solaris +implementation of Unix. While it is significantly easier to get up and running when +compared to SMB, it is also significantly less secure. The primary insecurity in NFS is +that it is easy to spoof user and group id's from one machine to another. NFS is an +unauthenticated protocol. Future versions of the NFS protocol are being devised that +enhance security, but these are not common at the time of this writing.

+ +

NFS configuration is governed by the /etc/exports file. When +you load the default /etc/exports file into an editor, you'll +see a blank file with a two line comment on top. We'll need to add a line to the exports +file for each directory that we wish to export, with a listing of client workstations +that will be allowed to access that file. For instance, if we wished to export directory +/home/foo to workstation Bar, we would simply add the line:

+ + + + + +
+
+/home/foo Bar(rw)
+
+
+ +

to our /etc/exports. Below, you'll find the example from the +man page for the exports file:

+ + + + + +
+
+# sample /etc/exports file
+/               master(rw) trusty(rw,no_root_squash)
+/projects       proj*.local.domain(rw)
+/usr            *.local.domain(ro) @trusted(rw)
+/home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
+/pub            (ro,insecure,all_squash)
+
+
+ +

As you can see, there are various options available, but most should be fairly clear +from this example.

+ +

NFS works under the assumption that a given user on one machine in a network has the +same user ID on all machines across the network. When an attempt is made to read or write +from a NFS client to an NFS server, a UID is passed as part of the read/write request. +This UID is treated the same as if the read/write request originated on the local +machine. As you can see, if one could arbitrarily specify a given UID when accessing +resources on a remote system, Bad Things (tm) could and would happen. As a partial hedge +against this, each directory is mounted with the root_squash +option. This maps the UID for any user claiming to be root to a different UID, thus +preventing root access to the files or folders in the exported directory. root_squash seems to be enabled by default as a security measure, +but the authors recommend specifying it anyway in your /etc/exports file.

+ +

You can also export a directory directly from the command line on the server by using +the exportfs command as follows:

+ + + + + +
+
+# exportfs -o rw,no_root_squash Bar:/home/foo
+
+
+ +

This line exports the /home/foo directory to the computer +“Bar” and grants Bar +read/write access. Additionally, the NFS server will not invoke root_squash, which means any user on Bar with a UID of +“0” (root's UID) will have the same privileges as root on the server. The +syntax does look strange (usually when a directory is specified in computer:/directory/file syntax, you are referring to a file in a +directory on a given computer).

+ +

You'll find more information on the man page for the exports file.

+
+
+ + + + + diff --git a/slackbook/html/network-configuration-ppp.html b/slackbook/html/network-configuration-ppp.html new file mode 100644 index 000000000..06dd7203f --- /dev/null +++ b/slackbook/html/network-configuration-ppp.html @@ -0,0 +1,166 @@ + + + + +PPP + + + + + + + + + + + +
+

5.4 +PPP

+ +

Many people still connect to the Internet through some kind of dialup connection. The +most common method is PPP, though SLIP is still occasionally used. Setting up your system +to speak PPP to a remote server is pretty easy. We've included a few tools to help you in +setting it up.

+ +
+

5.4.1 pppsetup

+ +

Slackware includes a program called pppsetup to configure +your system to use your dialup account. It shares a look and feel similar to our netconfig program. To run the program, make sure you are logged in +as root. Then type pppsetup to run it. You should see a screen +like this:

+ +

The program will present a series of questions, to which you will feed it appropriate +answers. Things like your modem device, the modem initialization string, and the ISP +phone number. Some items will have a default, which you can accept in most cases.

+ +

After the program runs, it will create a ppp-go program and a +ppp-off program. These are used to start and stop, respectively, +the PPP connection. The two programs are located in /usr/sbin +and need root privileges to run.

+
+ +
+

5.4.2 /etc/ppp

+ +

For most users, running pppsetup will be sufficient. However, +there may be an instance where you want to tweak some of the values used by the PPP +daemon. All of the configuration information is kept in /etc/ppp. Here is a list of what the different files are for:

+ +
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ip-down +

This script is run by pppd after the PPP connection is +ended.

+
ip-up +

This script is run by pppd when there's a successful ppp +connection. Put any commands you want run after a successful connection in this file.

+
options +

General configuration options for pppd.

+
options.demand +

General configuration options for pppd when run in demand +dialing mode.

+
pppscript +

The commands sent to the modem.

+
pppsetup.txt +

A log of what you entered when you ran pppsetup.

+
+
+ +
+ + + + + +
Note +

Most of these files won't be there until after you run pppsetup.

+
+
+
+
+ + + + + diff --git a/slackbook/html/network-configuration-tcpip.html b/slackbook/html/network-configuration-tcpip.html new file mode 100644 index 000000000..3b49437ef --- /dev/null +++ b/slackbook/html/network-configuration-tcpip.html @@ -0,0 +1,324 @@ + + + + +TCP/IP Configuration + + + + + + + + + + + +
+

5.3 TCP/IP Configuration

+ +

At this point, your network card should be physically installed in your computer, and +the relevant kernel modules should be loaded. You will not yet be able to communicate +over your network card, but information about the network device can be obtained with ifconfig -a.

+ + + + + +
+
+# ifconfig -a
+eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
+UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
+RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
+TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
+collisions:0 txqueuelen:100
+RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
+Interrupt:5 Base address:0x8400
+
+lo Link encap:Local Loopback
+inet addr:127.0.0.1 Mask:255.0.0.0
+UP LOOPBACK RUNNING MTU:16436 Metric:1
+RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
+TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
+collisions:0 txqueuelen:0
+RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)
+
+
+ +

If you just typed /sbin/ifconfig without the -a suffix, you would not see the eth0 +interface, as your network card does not yet have a valid IP address or route.

+ +

While there are many different ways to setup and subnet a network, all of them can be +broken down into two types: Static and Dynamic. Static networks are setup such that each +node (geek lingo for thing with an IP address) always has the same IP address. Dynamic +networks are setup in such a way that the IP addresses for the nodes are controlled by a +single server called the DHCP server.

+ +
+

5.3.1 DHCP

+ +

DHCP (or Dynamic Host Configuration Protocol), is a means by which an IP address may +be assigned to a computer on boot. When the DHCP client boots, it puts out a request on the Local Area Network +for a DHCP server to assign it an +IP address. The DHCP server has a pool (or scope) of IP addresses available. The server will respond to +this request with an IP address from the pool, along with a lease time. Once the lease time for a given IP address lease +has expired, the client must contact the server again and repeat the negotiation.

+ +

The client will then accept the IP address from the server and will configure the +requested interface with the IP address. There is one more handy trick that DHCP clients +use for negotiating the IP address that they will be assigned, however. The client will +remember it's last assigned IP address, and will request that the server re-assign that +IP address to the client again upon next negotiation. If possible, the server will do so, +but if not, a new address is assigned. So, the negotiation resembles the following:

+ +

    Client: Is there a DHCP server available on the LAN?
+ +    Server: Yes, there is. Here I am.
+ +    Client: I need an IP address.
+    Server: You may take 192.168.10.10 for 19200 seconds.
+ +    Client: Thank you.

+ +

    Client: Is there a DHCP server available on the LAN?
+ +    Server:Yes, there is. Here I am.
+ +    Client:I need an IP address. The last time we
+ +    talked, I had 192.168.10.10;
+    May I have it again?
+    Server:Yes, you may (or No, you may not: take 192.168.10.12 instead).
+ +    Client: Thank you.

+ +

The DHCP client in Linux is /sbin/dhcpcd. If you load /etc/rc.d/rc.inet1 in your favorite text editor, you will notice +that /sbin/dhcpcd is called about midway through the script. +This will force the conversation shown above. dhcpcd will also +track the amount of time left on the lease for the current IP address, and will +automatically contact the DHCP server with a request to renew the lease when necessary. +DHCP can also control related information, such as what ntp server to use, what route to +take, etc.

+ +

Setting up DHCP on Slackware is simple. Just run netconfig +and select DHCP when offered. If you have more than one NIC and do not wish eth0 to be configured by DHCP, just edit the /etc/rc.d/rc.inet1.conf file and change the related variable for +your NIC to “YES”.

+
+ +
+

5.3.2 Static IP

+ +

Static IP addresses are fixed addresses that only change if manually told to. These +are used in any case where an administrator doesn't want the IP information to change, +such for internal servers on a LAN, any server connected to the Internet, and networked +routers. With static IP addressing, you assign an address and leave it at that. Other +machines know that you are always at that certain IP address and can contact you at that +address always.

+
+ +
+

5.3.3 /etc/rc.d/rc.inet1.conf

+ +

If you plan on assigning an IP address to your new Slackware box, you may do so either +through the netconfig script, or you may edit /etc/rc.d/rc.inet1.conf. In /etc/rc.d/rc.inet1.conf , you will notice:

+ + + + + +
+
+    # Primary network interface card (eth0)
+    IPADDR[0]=""
+    NETMASK[0]=""
+    USE_DHCP[0]=""
+    DHCP_HOSTNAME[0]=""
+
+
+ +

Then further at the bottom:

+ + + + + +
+
+    GATEWAY=""
+
+
+ +

In this case, our task is merely to place the correct information between the +double-quotes. These variables are called by /etc/rc.d/rc.inet1 +at boot time to setup the nics. For each NIC, just enter the correct IP information, or +put “YES” for USE_DHCP. +Slackware will startup the interfaces with the information placed here in the order they +are found.

+ +

The DEFAULT_GW variable sets up the default route for +Slackware. All communications between your computer and other computers on the Internet +must pass through that gateway if no other route is specified for them. If you are using +DHCP, you will usually not need to enter anything here, as the DHCP server will specify +what gateway to use.

+
+ +
+

5.3.4 /etc/resolv.conf

+ +

Ok, so you've got an IP address, you've got a default gateway, you may even have ten +million dollars (give us some), but what good is that if you can't resolve names to IP +addresses? No one wants to type in 72.9.234.112 into their web +browser to reach www.slackbook.org. After all, who other than the +authors would memorize that IP address? We need to setup DNS, but how? That's where /etc/resolv.conf comes into play.

+ +

Chances are you already have the proper options in /etc/resolv.conf. If you setup your network connection using DHCP, +the DHCP server should handle updating this file for you. (Technically the DHCP server +just tells dhcpcd what to put here, and it obeys.) If you need +to manually update your DNS server list though, you'll need to hand edit /etc/resolv.conf. Below is an example:

+ + + + + +
+
+# cat /etc/resolv.conf
+nameserver 192.168.1.254
+search lizella.net
+
+
+ +

The first line is simple. The nameserver directive tells us what DNS servers to query. +By necessity these are always IP addresses. You may have as many listed there as you +like. Slackware will happily check one after the other until one returns a match.

+ +

The second line is a little more interesting. The search directive gives us a list of +domain names to assume whenever a DNS request is made. This allows you to contact a +machine by only the first part of its FQDN (Fully Qualified Domain Name). For example, if +“slackware.com” were in your search path, you could reach http://store.slackware.com by just pointing your web browser at http://store.

+ + + + + +
+
+# ping -c 1 store
+PING store.slackware.com (69.50.233.153): 56 data bytes
+64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
+1 packets transmitted, 1 packets received, 0% packet loss
+round-trip min/avg/max = 0.251/0.251/0.251 ms
+
+
+ +
+
+
+ +
+

5.3.5 /etc/hosts

+ +

Now that we've got DNS working fine, what if we want to bypass our DNS server, or add +a DNS entry for a machine that isn't in DNS? Slackware includes the oft-loved /etc/hosts file which contains a local list of DNS names and IP +addresses they should match to.

+ + + + + +
+
+# cat /etc/hosts
+127.0.0.1           localhost  locahost.localdomain
+192.168.1.101       redtail
+172.14.66.32        foobar.slackware.com
+
+
+ +

Here you can see that localhost has an IP address of 127.0.0.1 +(always reserved for localhost), redtail can be reached at 192.168.1.101, and foobar.slackware.com is +172.14.66.32.

+
+
+ + + + + diff --git a/slackbook/html/network-configuration-wireless.html b/slackbook/html/network-configuration-wireless.html new file mode 100644 index 000000000..fa86dcc26 --- /dev/null +++ b/slackbook/html/network-configuration-wireless.html @@ -0,0 +1,208 @@ + + + + +Wireless + + + + + + + + + + + +
+

5.5 Wireless

+ +

Wireless networking is still a relatively new thing in the world of computers, yet is +quickly catching on as more people begin to purchase laptops and want networking on the +go, without having to fool with some old twisted pair cable. This trend doesn't appear to +be slowing down. Unfortunately, wireless networking isn't yet as strongly supported in +Linux as traditional wired networking.

+ +

There are three basic steps to configuring an 802.11 wireless Ethernet card:

+ +
    +
  1. +

    Hardware support for the wireless card

    +
  2. + +
  3. +

    Configure the card to connect to a wireless access point

    +
  4. + +
  5. +

    Configure the network

    +
  6. +
+ +
+

5.5.1 Hardware Support

+ +

Hardware support for a wireless card is provided through the kernel, either with a +module or built in to the kernel. Generally, most newer Ethernet cards are provided +through kernel modules, so you'll want to determine the appropriate kernel module and +load it through /etc/rc.d/rc.modules. netconfig may not detect your wireless card, so you'll probably need +to determine the card yourself. See http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ for more +information on kernel drivers for various wireless cards.

+
+ +
+

5.5.2 Configure the Wireless +Settings

+ +

The vast majority of this work is done by iwconfig, so as +always read the man page for iwconfig if you need more +information.

+ +

First, you'll want to configure your wireless access point. Wireless access points +vary quite a bit in their terminology, and how to configure them, so you may need to +adjust a bit to accommodate your hardware. In general, you'll need at least the following +information:

+ +
    +
  • +

    The domain ID, or name of the network (called the ESSID by iwconfig)

    +
  • + +
  • +

    The channel the WAP uses

    +
  • + +
  • +

    The encryption settings, including any keys used (preferably in hexadecimal)

    +
  • +
+ +
+ + + + + +
Warning +

A NOTE ABOUT WEP. WEP is quit flawed, but it's much better than nothing. If you wish a +greater degree of security on your wireless network, you should investigate VPNs or +IPSec, both of which are beyond the scope of this document. You might also configure your +WAP not to advertise its domain ID/ ESSID. A thorough discussion of wireless policy is +beyond the scope of this section, but a quick Google search will turn up more than you +ever wanted to know.

+
+
+ +

Once you've gathered the above information, and assuming you've used modprobe to load the appropriate kernel driver, you can edit rc.wireless.conf and add your settings. The rc.wireless.conf file is a bit untidy. The least effort is to +modify the generic section with your ESSID and KEY, and CHANNEL if required by your card. +(Try not setting CHANNEL, and if it works, great; if not, set the CHANNEL as +appropriate.) If you're daring, you can modify the file so that only the necessary +variables are set. The variable names in rc.wireless.conf +correspond to the iwconfig parameters, and are read by rc.wireless and used in the appropriate iwconfig commands.

+ +

If you have your key in hexadecimal, that's ideal, since you can be fairly confident +that your WAP and iwconfig will agree on the key. If you only +have a string, you can't be sure how your WAP will translate that into a hexadecimal key, +so some guesswork may be needed (or get your WAP's key in hex).

+ +

Once you've modified rc.wireless.conf, run rc.wireless as root, then run rc.inet1, again as root. You can test +your wireless networking with standard testing tools such as ping, along with iwconfig. If you have a +wired interface you may wish to use ifconfig to turn those +interfaces off while you test your wireless networking to ensure there's no interference. +You may also want to test your changes through a reboot.

+ +

Now that you've seen how to edit /etc/rc.d/rc.wireless for +you default network, let's take a closer look at iwconfig and see how it all works. This +will teach you the quick and dirty way of setting up wifi for those times when you find +yourself at an Internet cafe, coffee shop, or any other wifi hot spot and wish to get +online.

+ +

The first step is to tell your wireless NIC what network to join. Make sure you +replace “eth0” with whatever network interface your +wireless card uses and change “mynetwork” to +the essid you wish to use. Yes, we know you're smarter than that. Next you'll have to +specify the encryption key (if any) used on your wireless network. Finally specify the +channel to use (if needed).

+ + + + + +
+
+# iwconfig eth0 essid "mynetwork"
+# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX
+# iwconfig eth0 channel n
+
+
+ +

That should be all on the wireless end of things.

+
+ +
+

5.5.3 Configure the Network

+ +

This is done in the exact same way as wired networks. Simply refer to earlier sections +of this chapter.

+
+
+ + + + + diff --git a/slackbook/html/network-configuration.html b/slackbook/html/network-configuration.html new file mode 100644 index 000000000..66fb00829 --- /dev/null +++ b/slackbook/html/network-configuration.html @@ -0,0 +1,146 @@ + + + + +Network Configuration + + + + + + + + + + +
+

Chapter 5 Network +Configuration

+ + + +
+

5.1 Introduction: netconfig is your +friend.

+ +

When you initially installed Slackware, the setup program invoked the netconfig program. netconfig attempted to +perform the following functions for you:

+ +
    +
  • +

    It asked you for the name of your computer, and the domain name for your computer.

    +
  • + +
  • +

    It gave a brief explanation of the various types of addressing schemes, told when they +should be used, and asked you which IP addressing scheme you wished to use to configure +your network card:

    + +
      +
    • +

      Static-IP

      +
    • + +
    • +

      DHCP

      +
    • + +
    • +

      Loopback

      +
    • +
    + +
    +
    +
  • + +
  • +

    It then offered to probe for a network card to configure.

    +
  • +
+ +

netconfig will generally take care of about 80% of the work +of configuring your LAN network connection if you will let it. Note that I would strongly +suggest that you review your config file for a couple of reasons:

+ +
    +
  1. +

    You should never trust a setup program to properly configure your computer. If you use +a setup program, you should review the configuration yourself.

    +
  2. + +
  3. +

    If you are still learning Slackware and Linux system management, viewing a working +configuration can be helpful. You'll at least know what the configuration should look +like. This will allow you to correct problems due to misconfiguration of the system at a +later date.

    +
  4. +
+
+
+ + + + + diff --git a/slackbook/html/package-management-making-packages.html b/slackbook/html/package-management-making-packages.html new file mode 100644 index 000000000..f58127753 --- /dev/null +++ b/slackbook/html/package-management-making-packages.html @@ -0,0 +1,120 @@ + + + + +Making Packages + + + + + + + + + + + +
+

18.3 Making Packages

+ +

Making Slackware packages can be either easy or difficult. There is no specific method +for building a package. The only requirement is that the package be a tar gzipped file +and if there is a postinstallation script, it must be /install/doinst.sh.

+ +

If you are interested in making packages for your system or for a network that you +manage, you should have a look at the various build scripts in the Slackware source tree. +There are several methods we use for making packages.

+ +
+

18.3.1 explodepkg

+ +

explodepkg(8) will do the same thing that installpkg does to extract the package, but it doesn't actually +install it and it doesn't record it in the packages database. It simply extracts it to +the current directory.

+ +

If you look at the Slackware source tree, you will see how we use this command for +“framework” packages. These packages contain a skeleton of what the final +package will look like. They hold all the necessary filenames (zero-length), permissions, +and ownerships. The build script will cat the package contents from the source directory +to the package build directory.

+
+ +
+

18.3.2 makepkg

+ +

makepkg(8) will package up the current directory into a valid +Slackware package. It will search the tree for any symbolic links and add a creation +block to the postinstallation script for creating them during the package install. It +also warns of any zero-length files in the package tree.

+ +

This command is typically run after you have created your package tree.

+
+ +
+

18.3.3 SlackBuild Scripts

+ +

Slackware packages are built in many different ways by necessity. Not all software +packages are written by their programmers to compile the same way. Many have compile time +options that are not all included in the packages Slackware uses. Perhaps you need some +of this functionality; you'll need to compile your own package then. Fortunately for many +Slackware packages, you can find SlackBuild scripts in the package's source code.

+ +

So what is a SlackBuild script? SlackBuild scripts are executable shell scripts that +you run as root to configure, compile, and create Slackware +packages. You can freely modify these scripts in the source directory and run them to +create your own versions of the default Slackware packages.

+
+
+ + + + + diff --git a/slackbook/html/package-management-making-tags-and-tagfiles.html b/slackbook/html/package-management-making-tags-and-tagfiles.html new file mode 100644 index 000000000..9c82bdf08 --- /dev/null +++ b/slackbook/html/package-management-making-tags-and-tagfiles.html @@ -0,0 +1,136 @@ + + + + +Making Tags and Tagfiles (for setup) + + + + + + + + + + + +
+

18.4 Making Tags and Tagfiles (for +setup)

+ +

The Slackware setup program handles installation of the software packages on your +system. There are files that tell the setup program which packages must be installed, +which ones are optional, and which ones are selected by default by the setup program.

+ +

A tagfile is in the first software series directory and is called tagfile. It lists +the packages in that particular disk set and their status. The status can be:

+ +
+

Table 18-3. Tagfile Status Options

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OptionMeaning
ADDThe package is required for proper system operation
SKPThe package will be automatically skipped
RECThe package is not required, but recommended
OPTThe package is optional
+
+ +

The format is simply:

+ + + + + +
+
+package_name: status
+
+
+ +

One package per line. The original tagfiles for each software series are stored as +tagfile.org. So if you mess up yours, you can restore the original one.

+ +

Many administrators prefer writing their own tagfiles and starting the installer and +selecting “full”. The setup program will read the tagfiles and perform the +installation according to their contents. If you use REC or OPT, a dialog box will be +presented to the user asking whether or not they want a particular package. Therefore, it +is recommended that you stick with ADD and SKP when writing tagfiles for automated +installs.

+ +

Just make sure your tagfiles are written to the same location as the originals. Or you +can specify a custom tagfile path if you have custom tagfiles.

+
+ + + + + diff --git a/slackbook/html/package-management-package-utilities.html b/slackbook/html/package-management-package-utilities.html new file mode 100644 index 000000000..0179a5a81 --- /dev/null +++ b/slackbook/html/package-management-package-utilities.html @@ -0,0 +1,330 @@ + + + + +Package Utilities + + + + + + + + + + + +
+

18.2 Package Utilities

+ +

There are four main utilities for package management. They perform installation, +removal, and upgrades of packages.

+ +
+

18.2.1 pkgtool

+ +

pkgtool(8) is a menu-driven program that allows installation +and removal of packages. The main menu is shown in Figure 18-1.

+ +
+

Figure 18-1. Pkgtool's main menu.

+ +

+
+ +

Installation is offered from the current directory, another directory, or from floppy +disks. Simply select the installation method you want and pkgtool will search that +location for valid packages to install.

+ +

You may also view a list of installed packages, as shown in Figure 18-2.

+ +
+

Figure 18-2. Pkgtool view mode

+ +

+
+ +

If you want to remove packages, select the remove option and you will be presented +with a checklist of all the installed packages. Flag the ones you want to remove and +select OK. pkgtool will remove them.

+ +

Some users prefer this utility to the command line utilities. However, it should be +noted that the command line utilities offer many more options. Also, the ability to +upgrade packages is only offered through the command line utilities.

+
+ +
+

18.2.2 installpkg

+ +

installpkg(8) handles installation of new packages on the +system. The syntax is as follows:

+ + + + + +
+
+# installpkg option package_name
+
+
+ +

Three options are provided for installpkg. Only one option +can be used at a time.

+ +
+

Table 18-1. installpkg Options

+ + +++ + + + + + + + + + + + + + + + + + + + + + + +
OptionEffects
-mPerforms a makepkg operation on the current directory.
-warnShows what would happen if you installed the specified package. This is useful for +production systems so you can see exactly what would happen before installing +something.
-rRecursively install all packages in the current directory and down. The package name +can use wildcards, which would be used as the search mask when recursively +installing.
+
+ +

If you pass the ROOT environment variable before installpkg, that path will be used for the root directory. This is +useful for setting up new drives for your root directory. They will typically be mounted +to /mnt or something other than /.

+ +

The installed package database entry is stored in /var/log/packages. The entry is really just a plain text file, one +for each package. If the package has a postinstallation script, it is written to /var/log/scripts/.

+ +

You may specify several packages or use wildcards for the package name. Be advised +that installpkg will not tell you if you are overwriting an +installed package. It will simply install right on top of the old one. If you want to +ensure that old files from the previous package are safely removed, use upgradepkg.

+
+ +
+

18.2.3 removepkg

+ +

removepkg(8) handles removing installed packages from the +system. The syntax is as follows:

+ + + + + +
+
+# removepkg option package_name
+
+
+ +

Four options are provided for removepkg. Only one option may +be used at a time.

+ +
+

Table 18-2. removepkg Options

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OptionEffects
-copyThe package is copied to the preserved packages directory. This creates a tree of the +original package without removing it.
-keepSaves temporary files created during the removal. Really only useful for debugging +purposes.
-preserveThe package is removed, but copied to the preserved packages directory at the same +time.
-warnShows what would happen if you removed the package.
+
+ +

If you pass the ROOT environment variable before removepkg, that path will be used for the root directory. This is +useful for setting up new drives for your root directory. They will typically be mounted +to /mnt or something other than /.

+ +

removepkg looks at the other installed packages and only +removes files unique to the package you specify. It will also scan the postinstallation +script for the specified package and remove any symbolic links that were created by +it.

+ +

During the removal process, a status report is displayed. After the removal, the +package database entry is moved to /var/log/removed_packages +and the postinstallation script is moved to /var/log/removed_scripts.

+ +

Just as with installpkg, you can specify several packages or +use wildcards for the package name.

+
+ +
+

18.2.4 upgradepkg

+ +

upgradepkg(8) will upgrade an installed Slackware package. +The syntax is as follows:

+ + + + + +
+
+# upgradepkg package_name
+
+
+ +

or

+ + + + + +
+
+# upgradepkg old_package_name%new_package_name
+
+
+ +

upgradepkg works by first installing the new package and then +removing the old package so that old files are no longer around on the system. If the +upgraded package name has changed, use the percent sign syntax to specify the old package +(the one that is installed) and the new package (the one you are upgrading it to).

+ +

If you pass the ROOT environment variable before upgradepkg, that path will be used for the root directory. This is +useful for setting up new drives for your root directory. They will typically be mounted +to /mnt or something other than /.

+ +

upgradepkg is not flawless. You should always back up your +configuration files. If they get removed or overwritten, you'll want a copy of the +originals for any needed repair work.

+ +

Just as with installpkg and removepkg, you can specify several packages or use wildcards for the +package name.

+
+ +
+

18.2.5 rpm2tgz/rpm2targz

+ +

The Red Hat Package Manager is a popular packaging system available today. Many +software distributors are offering their products in RPM format. Since this is not our +native format, we do not recommend people rely on them. However, some things are only +available as an RPM (even the source).

+ +

We provide a program that will convert RPM packages to our native .tgz format. This will allow you to extract the package (perhaps +with explodepkg) to a temporary directory and examine its +contents.

+ +

The rpm2tgz program will create a Slackware package with a +.tgz extension, while rpm2targz +creates an archive with a .tar.gz extension.

+
+
+ + + + + diff --git a/slackbook/html/package-management.html b/slackbook/html/package-management.html new file mode 100644 index 000000000..e6ddc32b9 --- /dev/null +++ b/slackbook/html/package-management.html @@ -0,0 +1,148 @@ + + + + +Slackware Package Management + + + + + + + + + + +
+

Chapter 18 Slackware Package +Management

+ + + +

A software package is a bundle of related programs that are ready for you to install. +When you download a source code archive, you have to configure, compile, and install it +by hand. With a software package, this has already been done for you. All that you have +to do is install the package. Another handy feature of using software packages is that it +is very easy to remove and upgrade them, if you so desire. Slackware comes with programs +for all your package management needs. You can install, remove, upgrade, make, and +examine packages very easily.

+ +

There's a myth that's been going around ever since RedHat debuted RedHat Package +Manager, that Slackware has no package management tool. This simply couldn't be further +from the truth. Slackware has always included a package manager, even before RedHat +existed. While not as full-featured or as ubiquitous as rpm (or for that matter deb), pkgtool and its associated programs are every bit as good at +installing packages as rpm. The truth about pkgtool is not that +it doesn't exist, but that it doesn't do any dependency checking.

+ +

Apparently many people in the Linux community think that a packager manager must by +definition include dependency checking. Well, that simply isn't the case, as Slackware +most certainly does not. This is not to say that Slackware packages don't have +dependencies, but rather that its package manager doesn't check for them. Dependency +management is left up to the sysadmin, and that's the way we like it.

+ +
+

18.1 Overview of Package Format

+ +

Before learning the utilities, you should become familiar with the format of a +Slackware package. In Slackware, a package is simply a tar archive file that has been +compressed with gzip. Packages are built to be extracted in the +root directory.

+ +

Here is a fictitious program and its example package:

+ + + + + +
+
+./
+usr/
+usr/bin/
+usr/bin/makehejaz
+usr/doc/
+usr/doc/makehejaz-1.0/
+usr/doc/makehejaz-1.0/COPYING
+usr/doc/makehejaz-1.0/README
+usr/man/
+usr/man/man1
+usr/man/man1/makehejaz.1.gz
+install/
+install/doinst.sh
+
+
+ +

The package system will extract this file in the root directory to install it. An +entry in the package database will be created that contains the contents of this package +so that it can be upgraded or removed later.

+ +

Notice the install/ subdirectory. This is a special +directory that can contain a postinstallation script called doinst.sh. If the package system finds this file, it will execute +it after installing the package.

+ +

Other scripts can be embedded in the package, but those are discussed more in detail +in Section +18.3.2 below.

+
+
+ + + + + diff --git a/slackbook/html/package-management/pkgtool-view-w.png b/slackbook/html/package-management/pkgtool-view-w.png new file mode 100644 index 000000000..7a62a8bc5 Binary files /dev/null and b/slackbook/html/package-management/pkgtool-view-w.png differ diff --git a/slackbook/html/package-management/pkgtool-w.png b/slackbook/html/package-management/pkgtool-w.png new file mode 100644 index 000000000..1a43423f6 Binary files /dev/null and b/slackbook/html/package-management/pkgtool-w.png differ diff --git a/slackbook/html/process-control-foregrounding.html b/slackbook/html/process-control-foregrounding.html new file mode 100644 index 000000000..7b185ba74 --- /dev/null +++ b/slackbook/html/process-control-foregrounding.html @@ -0,0 +1,138 @@ + + + + +Foregrounding + + + + + + + + + + + +
+

11.2 Foregrounding

+ +

If you need to interact with a backgrounded process, you can bring it back into the +foreground. If you've only got one backgrounded process, you can bring it back by +typing:

+ + + + + +
+
+% fg
+
+
+ +

If the program is not done running, the program will take control over you terminal +and you will not be returned to a prompt. Sometimes, the program will finish running +while backgrounded. In this instance, you'll get a message like this:

+ + + + + +
+
+[1]+  Done              /bin/ls $LS_OPTIONS
+
+
+ +

That tells you that the backgrounded process (in this case ls +- not terribly interesting) has completed.

+ +

It is possible to have several processes backgrounded at once. When this happens, +you'll need to know which process you want to bring back to the foreground. Just typing +fg will foreground the process that was last backgrounded. What +if you had a whole list of processes in the background? Luckily, bash includes a command +to list all the processes. It's called jobs and gives output +like so:

+ + + + + +
+
+% jobs
+[1]   Stopped                 vim
+[2]-  Stopped                 amp
+[3]+  Stopped                 man ps
+
+
+ +

This shows you a list of all the processes that are backgrounded. As you can see, they +are all stopped. This means that the processes are suspended. The number is a sort of ID +for all the backgrounded processes. The ID with a plus sign beside it (man ps) is the process that will be foregrounded if you just type +fg.

+ +

If you wanted to foreground vim, you would type:

+ + + + + +
+
+% fg 1
+
+
+ +

and vim would spring back up to the console. Backgrounding +processes can be very useful if you only have one terminal open over a dialup connection. +You can have several programs running on that one terminal, periodically switching back +and forth between them.

+
+ + + + + diff --git a/slackbook/html/process-control-kill.html b/slackbook/html/process-control-kill.html new file mode 100644 index 000000000..322926512 --- /dev/null +++ b/slackbook/html/process-control-kill.html @@ -0,0 +1,182 @@ + + + + +kill + + + + + + + + + + + +
+

11.4 kill

+ +

On occasion, programs misbehave and you'll need to put them back in line. The program +for this kind of administration is called kill(1), and it can be +used for manipulating processes in several ways. The most obvious use of kill is to kill off a process. You'll need to do this if a program +has run away and is using up lots of system resources, or if you're just sick of it +running.

+ +

In order to kill off a process, you'll need to know its PID or its name. To get the +PID, use the ps command as was discussed in the last section. +For example, to kill off process 4747, you'd issue the following:

+ + + + + +
+
+% kill 4747
+
+
+ +

Note that you'll have to be the owner of the process in order to kill it. This is a +security feature. If you were allowed to kill off processes started by other users, it +would be possible to do all sorts of malicious things. Of course, root can kill off any process on the system.

+ +

There's another variety of the kill command called killall(1). This program does exactly what it says: it kills all the +running processes that have a certain name. If you wanted to kill off all the running vim processes, you could type the following command:

+ + + + + +
+
+% killall vim
+
+
+ +

Any and all vim processes you have running will die off. +Doing this as root would kill off all the vim processes running for all users. This brings up an interesting +way to kick everyone (including yourself) off the system:

+ + + + + +
+
+# killall bash
+
+
+ +

Sometimes a regular kill doesn't get the job done. Certain processes will not die with +a kill. You'll need to use a more potent form. If that pesky PID 4747 wasn't responding +to your kill request, you could do the following:

+ + + + + +
+
+% kill -9 4747
+
+
+ +

That will almost certainly cause process 4747 to die. You can do the same thing with +killall. What this is doing is sending a different signal to the +process. A regular kill sends a SIGTERM (terminate) signal to the process, which tells it to finish +what it's doing, clean up, and exit. kill -9 sends a SIGKILL (kill) signal to the process, which essentially drops it. +The process is not allowed to clean-up, and sometimes bad things like data corruption +could occur by killing something with a SIGKILL. There's a +whole list of signals at your disposal. You can get a listing of signals by typing the +following:

+ + + + + +
+
+% kill -l
+  1) SIGHUP     2) SIGINT    3) SIGQUIT   4) SIGILL
+  5) SIGTRAP    6) SIGABRT   7) SIGBUS    8) SIGFPE
+  9) SIGKILL   10) SIGUSR1  11) SIGSEGV  12) SIGUSR2
+ 13) SIGPIPE   14) SIGALRM  15) SIGTERM  17) SIGCHLD
+ 18) SIGCONT   19) SIGSTOP  20) SIGTSTP  21) SIGTTIN
+ 22) SIGTTOU   23) SIGURG   24) SIGXCPU  25) SIGXFSZ
+ 26) SIGVTALRM 27) SIGPROF  28) SIGWINCH 29) SIGIO
+ 30) SIGPWR
+
+
+ +

The number must be used for kill, while the name minus the +leading “SIG” can be used with killall. Here's +another example:

+ + + + + +
+
+% killall -KILL vim
+
+
+ +

A final use of kill is to restart a process. Sending a SIGHUP will cause most processes to re-read their configuration +files. This is especially helpful for telling system processes to re-read their config +files after editing.

+
+ + + + + diff --git a/slackbook/html/process-control-ps.html b/slackbook/html/process-control-ps.html new file mode 100644 index 000000000..27b842686 --- /dev/null +++ b/slackbook/html/process-control-ps.html @@ -0,0 +1,243 @@ + + + + +ps + + + + + + + + + + + +
+

11.3 ps

+ +

So now you know how to switch back and forth between several processes that you've +started from the command line. And you also know that there are lots of processes running +all the time. So how do you list all of these programs? Well, you make use of the ps(1) command. This command has a lot of options, so we'll only +cover the most important ones here. For a complete listing, see the man page for ps. Man +pages are covered in-depth in Section 2.1.1.

+ +

Simply typing ps will get you a listing of the programs +running on your terminal. This incudes the foreground processes (which include whatever +shell you are using, and of course, ps itself). Also listed are +backgrounded processes you may have running. Many times, that will be a very short +listing:

+ +
+

Figure 11-1. Basic ps output

+ + + + + +
+
+% ps
+   PID TTY          TIME CMD
+  7923 ttyp0    00:00:00 bash
+  8059 ttyp0    00:00:00 ps
+
+
+
+ +

Even though this is not a lot of processes, the information is very typical. You'll +get the same columns using regular ps no matter how many processes are running. So what +does it all mean?

+ +

Well, the PID is the process ID. All running processes are given a unique +identifier which ranges between 1 and 32767. Each process is assigned the next free PID. +When a process quits (or is killed, as you will see in the next section), it gives up its +PID. When the max PID is reached, the next free one will wrap back around to the lowest +free one.

+ +

The TTY column indicates which terminal the process is +running on. Doing a plain ps will only list all the programs +running on the current terminal, so all the processes give the same information in the +TTY column. As you can see, both processes listed are running on ttyp0. This indicates that they are either running remotely or from +an X terminal of some variety.

+ +

The TIME column indicated how much CPU time the process has +been running. This is different from the actual amount of time that a process runs. +Remember that Linux is a multitasking operating system. There are many processes running +all the time, and these processes each get a small portion of the processor's time. So, +the TIME column should show much less time for each process than it actually takes to +run. If you see more than several minutes in the TIME column, it could mean that +something is wrong.

+ +

Finally, the CMD column shows what the program actually is. +It only lists the base name of the program, not any command line options or similar +information. To get that information, you'll need to use one of the many options to ps. We'll discuss that shortly.

+ +

You can get a complete listing of the processes running on your system using the right +combination of options. This will probably result in a long listing of processes +(fifty-five on my laptop as I write this sentence), so I'll abbreviate the output:

+ + + + + +
+
+% ps -ax
+ PID TTY      STAT   TIME COMMAND
+   1 ?        S      0:03 init [3]
+   2 ?        SW     0:13 [kflushd]
+   3 ?        SW     0:14 [kupdate]
+   4 ?        SW     0:00 [kpiod]
+   5 ?        SW     0:17 [kswapd]
+  11 ?        S      0:00 /sbin/kerneld
+  30 ?        SW     0:01 [cardmgr]
+  50 ?        S      0:00 /sbin/rpc.portmap
+  54 ?        S      0:00 /usr/sbin/syslogd
+  57 ?        S      0:00 /usr/sbin/klogd -c 3
+  59 ?        S      0:00 /usr/sbin/inetd
+  61 ?        S      0:04 /usr/local/sbin/sshd
+  63 ?        S      0:00 /usr/sbin/rpc.mountd
+  65 ?        S      0:00 /usr/sbin/rpc.nfsd
+  67 ?        S      0:00 /usr/sbin/crond -l10
+  69 ?        S      0:00 /usr/sbin/atd -b 15 -l 1
+  77 ?        S      0:00 /usr/sbin/apmd
+  79 ?        S      0:01 gpm -m /dev/mouse -t ps2
+  94 ?        S      0:00 /usr/sbin/automount /auto file /etc/auto.misc
+ 106 tty1     S      0:08 -bash
+ 108 tty3     SW     0:00 [agetty]
+ 109 tty4     SW     0:00 [agetty]
+ 110 tty5     SW     0:00 [agetty]
+ 111 tty6     SW     0:00 [agetty]
+ [output cut]
+
+
+ +

Most of these processes are started at boot time on most systems. I've made a few +modifications to my system, so your mileage will most likely vary. However, you will see +most of these processes on your system too. As you can see, these options display command +line options to the running processes. Recently, a kernel vulnerability in ptrace facilitated a fix which no longer shows command line options +for many running processes. These are now listed in brackets like PIDs 108 through 110. +It also brings up a few more columns and some other interesting output.

+ +

First, you'll notice that most of these processes are listed as running on tty +“?”. Those are not attached to any particular terminal. This is most common +with daemons, which are processes which run without attaching to any particular terminal. +Common daemons are sendmail, BIND, apache, and NFS. They typically listen for some +request from a client, and return information to it upon request.

+ +

Second, there is a new column: STAT. It shows the status of +the process. S stands for sleeping: the process is waiting for +something to happen. Z stands for a zombied process. A zombied +processes is one whose parent has died, leaving the child processes behind. This is not a +good thing. D stands for a process that has entered an +uninterruptible sleep. Often, these processes refuse to die even when passed a SIGKILL. +You can read more about SIGKILL later in the next section on kill . W stands for paging. A dead process is marked with an X. A process marked T is traced, or +stopped. R means that the process is runable.

+ +

If you want to see even more information about the running processes, try this +out:

+ + + + + +
+
+% ps -aux
+ USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
+ root         1  0.0  0.0   344   80 ?        S    Mar02   0:03 init [3]
+ root         2  0.0  0.0     0    0 ?        SW   Mar02   0:13 [kflushd]
+ root         3  0.0  0.0     0    0 ?        SW   Mar02   0:14 [kupdate]
+ root         4  0.0  0.0     0    0 ?        SW   Mar02   0:00 [kpiod]
+ root         5  0.0  0.0     0    0 ?        SW   Mar02   0:17 [kswapd]
+ root        11  0.0  0.0  1044   44 ?        S    Mar02   0:00 /sbin/kerneld
+ root        30  0.0  0.0  1160    0 ?        SW   Mar02   0:01 [cardmgr]
+ bin         50  0.0  0.0  1076  120 ?        S    Mar02   0:00 /sbin/rpc.port
+ root        54  0.0  0.1  1360  192 ?        S    Mar02   0:00 /usr/sbin/sysl
+ root        57  0.0  0.1  1276  152 ?        S    Mar02   0:00 /usr/sbin/klog
+ root        59  0.0  0.0  1332   60 ?        S    Mar02   0:00 /usr/sbin/inet
+ root        61  0.0  0.2  1540  312 ?        S    Mar02   0:04 /usr/local/sbi
+ root        63  0.0  0.0  1796   72 ?        S    Mar02   0:00 /usr/sbin/rpc.
+ root        65  0.0  0.0  1812   68 ?        S    Mar02   0:00 /usr/sbin/rpc.
+ root        67  0.0  0.2  1172  260 ?        S    Mar02   0:00 /usr/sbin/cron
+ root        77  0.0  0.2  1048  316 ?        S    Mar02   0:00 /usr/sbin/apmd
+ root        79  0.0  0.1  1100  152 ?        S    Mar02   0:01 gpm
+ root        94  0.0  0.2  1396  280 ?        S    Mar02   0:00 /usr/sbin/auto
+ chris      106  0.0  0.5  1820  680 tty1     S    Mar02   0:08 -bash
+ root       108  0.0  0.0  1048    0 tty3     SW   Mar02   0:00 [agetty]
+ root       109  0.0  0.0  1048    0 tty4     SW   Mar02   0:00 [agetty]
+ root       110  0.0  0.0  1048    0 tty5     SW   Mar02   0:00 [agetty]
+ root       111  0.0  0.0  1048    0 tty6     SW   Mar02   0:00 [agetty]
+ [output cut]
+
+
+ +

That's a whole lot of information. Basically, it adds information including what user +started the process, how much of the system resources the process is using (the %CPU, +%MEM, VSZ, and RSS columns), and on what date the process was started. Obviously, that's +a lot of information that could come in handy for a system administrator. It also brings +up another point: the information now goes off the edge of the screen so that you cannot +see it all. The -w option will force ps to wrap long lines.

+ +

It's not terribly pretty, but it does the job. You've now got the complete listings +for each process. There's even more information that you can display about each process. +Check out the very in-depth man page for ps. However, the +options shown above are the most popular ones and will be the ones you need to use the +most often.

+
+ + + + + diff --git a/slackbook/html/process-control-top.html b/slackbook/html/process-control-top.html new file mode 100644 index 000000000..c15f0f4ee --- /dev/null +++ b/slackbook/html/process-control-top.html @@ -0,0 +1,168 @@ + + + + +top + + + + + + + + + + + +
+

11.5 top

+ +

Finally, there's a command you can use to display updating information about the +processes running on the system. This command is called top(1), +and is started like so:

+ + + + + +
+
+% top
+
+
+ +

This will display a full screen of information about the processes running on the +system, as well as some overall information about the system. This includes load average, +number of processes, the CPU status, free memory information, and details about processes +including PID, user, priority, CPU and memory usage information, running time, and +program name.

+ + + + + +
+
+ 6:47pm  up 1 day,  18:01,  1 user,  load average: 0.02, 0.07, 0.02
+61 processes: 59 sleeping, 2 running, 0 zombie, 0 stopped
+CPU states:  2.8% user,  3.1% system,  0.0% nice, 93.9% idle
+Mem:   257992K av,  249672K used,    8320K free,   51628K shrd,  78248K buff
+Swap:   32764K av,     136K used,   32628K free,                 82600K cached
+
+PID USER    PRI  NI  SIZE  RSS  SHARE  STAT  LIB %CPU %MEM  TIME COMMAND
+ 112 root     12   0 19376  18M   2468  R       0  3.7  7.5 55:53 X
+4947 david    15   0  2136 2136   1748  S       0  2.3  0.8  0:00 screenshot
+3398 david     7   0 20544  20M   3000  S       0  1.5  7.9  0:14 gimp
+4946 root     12   0  1040 1040    836  R       0  1.5  0.4  0:00 top
+ 121 david     4   0   796  796    644  S       0  1.1  0.3 25:37 wmSMPmon
+ 115 david     3   0  2180 2180   1452  S       0  0.3  0.8  1:35 wmaker
+4948 david    16   0   776  776    648  S       0  0.3  0.3  0:00 xwd
+   1 root      1   0   176  176    148  S       0  0.1  0.0  0:13 init
+ 189 david     1   0  6256 6156   4352  S       0  0.1  2.4  3:16 licq
+4734 david     0   0  1164 1164    916  S       0  0.1  0.4  0:00 rxvt
+   2 root      0   0     0    0      0  SW      0  0.0  0.0  0:08 kflushd
+   3 root      0   0     0    0      0  SW      0  0.0  0.0  0:06 kupdate
+   4 root      0   0     0    0      0  SW      0  0.0  0.0  0:00 kpiod
+   5 root      0   0     0    0      0  SW      0  0.0  0.0  0:04 kswapd
+  31 root      0   0   340  340    248  S       0  0.0  0.1  0:00 kerneld
+  51 root      0   0    48   48     32  S       0  0.0  0.0  0:00 dhcpcd
+  53 bin       0   0   316  316    236  S       0  0.0  0.1  0:00 rpc.portmap
+  57 root      0   0   588  588    488  S       0  0.0  0.2  0:01 syslogd
+
+
+ +

It's called top because the most CPU intensive programs will +be listed at the top. An interesting note is that top will be listed first on most +inactive (and some active) systems because of its CPU utilization. However, top is quite useful for determining what program is misbehaving and +needs to be killed off.

+ +

But suppose you only want a list of your own processes, or the processes of some other +user. The processes you want to see might not be among the most CPU intensive programs +currently running. The -u option allows you to specify a +username or UID and monitor only those processes owned by that UID.

+ + + + + +
+
+% top -u alan
+ PID USER      PR  NI  VIRT RES   SHR S %CPU %MEM   TIME+   COMMAND
+3622 alan      13   0 11012  10m 6956 S  1.0  2.1   0:03.66 gnome-terminal
+3739 alan      13   0  1012 1012  804 R  0.3  0.2   0:00.06 top
+3518 alan       9   0  1312 1312 1032 S  0.0  0.3   0:00.09 bash
+3529 alan       9   0   984  984  848 S  0.0  0.2   0:00.00 startx
+3544 alan       9   0   640  640  568 S  0.0  0.1   0:00.00 xinit
+3548 alan       9   0  8324 8320 6044 S  0.0  1.6   0:00.30 gnome-session
+3551 alan       9   0  7084 7084 1968 S  0.0  1.4   0:00.50 gconfd-2
+3553 alan       9   0  2232 2232  380 S  0.0  0.4   0:00.05 esd
+3555 alan       9   0  2552 2552 1948 S  0.0  0.5   0:00.10 bonobo-activati
+3557 alan       9   0  2740 2740 2224 S  0.0  0.5   0:00.05 gnome-smproxy
+3559 alan       9   0  6496 6492 5004 S  0.0  1.3   0:00.31 gnome-settings-
+3565 alan       9   0  1740 1740 1440 S  0.0  0.3   0:00.28 xscreensaver
+3568 alan       9   0  7052 7052 4960 S  0.0  1.4   0:02.28 metacity
+3572 alan       9   0 11412  11m 7992 S  0.0  2.2   0:01.58 gnome-panel
+3574 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.64 nautilus
+3575 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
+3576 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
+
+
+ +

As you can see, I'm currently running X, top, a gnome-terminal (in which I'm writing +this) and many other X-related processes which take up the most CPU time for me. This is +a good way to monitor how hard your users are working your system.

+ +

top also supports monitoring processes by their PID, ignoring +idle and zombied processes, and many other options. The best place to get a handle on +these options is the man page for top.

+
+ + + + + diff --git a/slackbook/html/process-control.html b/slackbook/html/process-control.html new file mode 100644 index 000000000..8727262d2 --- /dev/null +++ b/slackbook/html/process-control.html @@ -0,0 +1,138 @@ + + + + +Process Control + + + + + + + + + + +
+

Chapter 11 Process Control

+ +
+
+
Table of Contents
+ +
11.1 Backgrounding
+ +
11.2 Foregrounding
+ +
11.3 ps
+ +
11.4 kill
+ +
11.5 top
+
+
+ +

Every program that is running is called a process. These processes range from things +like the X Window System to system programs (daemons) that are started when the computer +boots. Every process runs as a particular user. Processes that are started at boot time +usually run as root or nobody. +Processes that you start will run as you. Processes started as other users will run as +those users.

+ +

You have control over all the processes that you start. Additionally, root has control over all processes on the system, including those +started by other users. Processes can be controlled and monitored through several +programs, as well as some shell commands.

+ +
+

11.1 Backgrounding

+ +

Programs started from the command line start up in the foreground. This allows you to +see all the output of the program and interact with it. However, there are several +occasions when you'd like the program to run without taking up your terminal. This is +called running the program in the background, and there are a few ways to do it.

+ +

The first way to background a process is by adding an ampersand to the command line +when you start the program. For example, assume you wanted to use the command line mp3 +player amp to play a directory full of mp3s, but you needed to +do something else on the same terminal. The following command line would start up amp in +the background:

+ + + + + +
+
+% amp *.mp3 &
+
+
+ +

The program will run as normal, and you are returned to a prompt.

+ +

The other way to background a process is to do so while it is running. First, start up +a program. While it is running, hit Control+z. This suspends the process. A suspended process is basically paused. +It momentarily stops running, but can be started up again at any time. Once you have +suspended a process, you are returned to a prompt. You can background the process by +typing:

+ + + + + +
+
+% bg
+
+
+ +

Now the suspended process is running in the background.

+
+
+ + + + + diff --git a/slackbook/html/security-current.html b/slackbook/html/security-current.html new file mode 100644 index 000000000..12e207167 --- /dev/null +++ b/slackbook/html/security-current.html @@ -0,0 +1,138 @@ + + + + +Keeping Current + + + + + + + + + + + +
+

14.3 Keeping +Current

+ +
+

14.3.1 slackware-security mailing list

+ +

Whenever a security problem affects Slackware, an email is sent to all subscribers to +the slackware-security@slackware.com mailing list. Reports are +sent out for vulnerabilities of any part of Slackware, apart from the software in /extra or /pasture. These security +announcement emails include details on obtaining updated versions of Slackware packages +or work-arounds, if any.

+ +

Subscribing to Slackware mailing lists is covered in Section 2.2.2.

+
+ +
+

14.3.2 +The /patches directory

+ +

Whenever updated packages are released for a version of Slackware (usually only to fix +a security problem, in the case of already released Slackware versions), they are placed +in the /patches directory. The full path to these patches will +depend on the mirror you are using, but will take the form /path/to/slackware-x.x/patches/.

+ +

Before installing these packages, it is a good idea to verify the md5sum of the package. md5sum(1) is a +commandline utility that creates a “unique” mathematical hash of the file. If +a single bit of the file has been changed, it will generate a different md5sum value.

+ + + + + +
+
+% md5sum package-<ver>-<arch>-<rev>.tgz
+6341417aa1c025448b53073a1f1d287d  package-<ver>-<arch>-<rev>.tgz
+
+
+ +

You should then check this against the line for the new package in the CHECKSUMS.md5 file in the root of the slackware-$VERSION directory (also +in the /patches directory for patches) or in the email to the +slackware-security mailing list.

+ +

If you have a file with the md5sum values in it, you can source it instead with the +-c option to md5sum.

+ + + + + +
+
+# md5sum -c CHECKSUMS.md5
+./ANNOUNCE.10_0: OK
+./BOOTING.TXT: OK
+./COPYING: OK
+./COPYRIGHT.TXT: OK
+./CRYPTO_NOTICE.TXT: OK
+./ChangeLog.txt: OK
+./FAQ.TXT: FAILED
+
+
+ +

As you can see, any files that md5sum evaluates as correct +are listed “OK” while files that fail are labelled +“FAILED”. (Yes, this was an insult to your +intelligence. Why do you put up with me?)

+
+
+ + + + + diff --git a/slackbook/html/security-host.html b/slackbook/html/security-host.html new file mode 100644 index 000000000..55f33286a --- /dev/null +++ b/slackbook/html/security-host.html @@ -0,0 +1,307 @@ + + + + +Host Access Control + + + + + + + + + + + +
+

14.2 Host Access +Control

+ +
+

14.2.1 iptables

+ +

iptables is the packet filtering configuration program for +Linux 2.4 and above. The 2.4 kernel (2.4.5, to be exact) was first introduced into +Slackware (as an option) in version 8.0 and was made the default in Slackware 8.1. This +section only covers the basics of its usage and you should check http://www.netfilter.org/ for more +details. These commands can be entered into /etc/rc.d/rc.firewall, which has to be set as executable for these +rules to take effect at startup. Note that incorrect iptables +commands can essentially lock you out of your own machine. Unless you are 100% confident +in your skills, always ensure you have local access to the machine.

+ +

The first thing most people should do is set the default policy for each inbound chain +to DROP:

+ + + + + +
+
+# iptables -P INPUT DROP
+# iptables -P FORWARD DROP
+
+
+ +

When everything is denied, you can start allowing things. The first thing to allow is +any traffic for sessions which are already established:

+ + + + + +
+
+# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+
+
+ +

So as not to break any applications that communicate using the loopback address, it is +usually wise to add a rule like this:

+ + + + + +
+
+# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
+
+
+ +

This rules allows any traffic to and from 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) on +the loopback (lo) interface. When creating rules, it is a good +idea to be as specific as possible, to make sure that your rules do not inadvertently +allow anything evil. That said, rules that allow too little mean more rules and more +typing.

+ +

The next thing to do would be to allow access to specific services running on your +machine. If, for example, you wanted to run a web server on your machine, you would use a +rule similar to this:

+ + + + + +
+
+# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
+
+
+ +

This will allow access from any machine to port 80 on your machine via the ppp0 interface. You may want to restrict access to this service so +that only certain machines can access it. This rule allows access to your web service +from 64.57.102.34:

+ + + + + +
+
+# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT
+
+
+ +

Allowing ICMP traffic can be useful for diagnostic purposes. To do this, you would use +a rule like this:

+ + + + + +
+
+# iptables -A INPUT -p icmp -j ACCEPT
+
+
+ +

Most people will also want to set up Network Address Translation (NAT) on their +gateway machine, so that other machines on their network can access the Internet through +it. You would use the following rule to do this:

+ + + + + +
+
+# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
+
+
+ +

You will also need to enable IP forwarding. You can do this temporarily, using the +following command:

+ + + + + +
+
+# echo 1 > /proc/sys/net/ipv4/ip_forward
+
+
+ +

To enable IP forwarding on a more permanent basis (i.e. so that the change is kept +after a reboot), you will need to open the file /etc/rc.d/rc.inet2 in your favorite editor and change the following +line:

+ + + + + +
+
+IPV4_FORWARD=0
+
+
+ +

...to this:

+ + + + + +
+
+IPV4_FORWARD=1
+
+
+ +

For more information on NAT, see the NAT +HOWTO.

+
+ +
+

14.2.2 tcpwrappers

+ +

tcpwrappers controls access to daemons at the application +level, rather than at the IP level. This can provide an extra layer of security at times +when IP-level access controls (e.g. Netfilter) are not functioning correctly. For +example, if you recompile the kernel but forget to include iptables support, your IP +level protection will fail but tcpwrappers will still help protect your system.

+ +

Access to services protected by tcpwrappers can be controlled using /etc/hosts.allow and /etc/hosts.deny.

+ +

The majority of people would have a single line in their /etc/hosts.deny file to deny access to all daemons by default. This +line would be:

+ + + + + +
+
+ALL : ALL
+
+
+ +

When this is done, you can concentrate on allowing access to services for specified +hosts, domains, or IP ranges. This can be done in the /etc/hosts.allow file, which follows the same format.

+ +

A lot of people would start by accepting all connections from localhost. This can be achieved using:

+ + + + + +
+
+ALL : 127.0.0.1
+
+
+ +

To allow access to SSHd from 192.168.0.0/24, you could use +either of the following rules:

+ + + + + +
+
+sshd : 192.168.0.0/24
+sshd : 192.168.0.
+
+
+ +

It is also possible to restrict access to hosts in certain domains. This can be done +using the following rule (note that this relies on the reverse DNS entry for the +connecting host being trustworthy, so I would recommand against its use on +Internet-connected hosts):

+ + + + + +
+
+sshd : .slackware.com
+
+
+
+
+ + + + + diff --git a/slackbook/html/security.html b/slackbook/html/security.html new file mode 100644 index 000000000..34249a8bc --- /dev/null +++ b/slackbook/html/security.html @@ -0,0 +1,218 @@ + + + + +Security + + + + + + + + + + +
+

Chapter 14 Security

+ +
+
+
Table of Contents
+ +
14.1 Disabling Services
+ +
14.2 Host Access Control
+ +
14.3 Keeping Current
+
+
+ +

Security on any system is important; it can prevent people launching attacks from your +machine, as well as protect sensitive data. This chapter is all about how to start +securing your Slackware box against script kiddies, crackers and rogue hamsters alike. +Bear in mind that this is only the start of securing a system; security is a process, not +a state.

+ +
+

14.1 Disabling +Services

+ +

The first step after installing Slackware should be to disable any services you don't +need. Any services could potentially pose a security risk, so it is important to run as +few services as possible (i.e. only those that are needed). Services are started from two +main places - inetd and init scripts.

+ +
+

14.1.1 Services started from inetd

+ +

A lot of the daemons that come with Slackware are run from inetd(8). inetd is a daemon that listens on +all of the ports used by services configured to be started by it and spawns an instance +of the relevant daemon when a connection attempt is made. Daemons started from inetd can be disabled by commenting out the relevant lines in /etc/inetd.conf. To do this, open this file in your favorite editor +(e.g. vi) and you should see lines similar to this:

+ + + + + +
+
+telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
+
+
+ +

You can disable this service, and any others you don't need, by commenting them out +(i.e. adding a # (hash) symbol to the beginning of the line). +The above line would then become:

+ + + + + +
+
+#telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
+
+
+ +

After inetd has been restarted, this service will be +disabled. You can restart inetd with the command:

+ + + + + +
+
+# kill -HUP $(cat /var/run/inetd.pid)
+
+
+
+ +
+

14.1.2 Services started from init +scripts

+ +

The rest of the services started when the machine starts are started from the init +scripts in /etc/rc.d/. These can be disabled in two different +ways, the first being to remove the execute permissions on the relevant init script and +the second being to comment out the relevant lines in the init scripts.

+ +

For example, SSH is started by its own init script at /etc/rc.d/rc.sshd. You can disable this using:

+ + + + + +
+
+# chmod -x /etc/rc.d/rc.sshd
+
+
+ +

For services that don't have their own init script, you will need to comment out the +relevant lines in the init scripts to disable them. For example, the portmap daemon is +started by the following lines in /etc/rc.d/rc.inet2:

+ + + + + +
+
+# This must be running in order to mount NFS volumes.
+# Start the RPC portmapper:
+if [ -x /sbin/rpc.portmap ]; then
+  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
+  /sbin/rpc.portmap
+fi
+# Done starting the RPC portmapper.
+
+
+ +

This can be disabled by adding # symbols to the beginnings +of the lines that don't already start with them, like so:

+ + + + + +
+
+# This must be running in order to mount NFS volumes.
+# Start the RPC portmapper:
+#if [ -x /sbin/rpc.portmap ]; then
+#  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
+#  /sbin/rpc.portmap
+#fi
+# Done starting the RPC portmapper.
+
+
+ +

These changes will only take effect after either a reboot or changing from and back to +runlevel 3 or 4. You can do this by typing the following on the console (you will need to +log in again after changing to runlevel 1):

+ + + + + +
+
+# telinit 1
+# telinit 3
+
+
+
+
+
+ + + + + diff --git a/slackbook/html/shell-bash.html b/slackbook/html/shell-bash.html new file mode 100644 index 000000000..13ffdf089 --- /dev/null +++ b/slackbook/html/shell-bash.html @@ -0,0 +1,234 @@ + + + + +The Bourne Again Shell (bash) + + + + + + + + + + + +
+

8.3 The Bourne Again Shell +(bash)

+ +
+

8.3.1 +Environment Variables

+ +

A Linux system is a complex beast, and there's a lot to keep track of, a lot of little +details that come into play in your normal interactions with various programs (some of +which you might not even need to be aware of). Nobody wants to pass a bunch of options to +every program that gets run, telling it what kind of terminal is being used, the hostname +of the computer, how their prompt should look...

+ +

So as a coping mechanism, users have what's called an environment. The environment +defines the conditions in which programs run, and some of this definition is variable; +the user can alter and play with it, as is only right in a Linux system. Pretty much any +shell will have environment variables (if not, it's probably not a very useable shell). +Here we will give an overview of the commands bash provides for manipulating its +environment variables.

+ +

set by itself will show you all of the environment variables +that are currently defined, as well as their values. Like most bash built-ins, it can also do several other things (with +parameters); we'll leave it to the bash(1) man page to cover +that, though. Example 8-1 shows +an excerpt from a set command run on one of the author's +computers. Notice in this example the PATH variable that was +discussed earlier. Programs in any of those directories can be run simply by typing the +base filename.

+ +
+

Example 8-1. Listing Environment Variables with set

+ + + + + +
+
+% set
+PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
+/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
+/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
+PIPESTATUS=([0]="0")
+PPID=4978
+PS1='\h:\w\$ '
+PS2='> '
+PS4='+ '
+PWD=/home/logan
+QTDIR=/usr/local/lib/qt
+REMOTEHOST=ninja.tdn
+SHELL=/bin/bash
+
+
+
+ + + + + +
+
+% unset VARIABLE
+
+
+ +

unset will remove any variables that you give it, wiping out +both the variable and its value; bash will forget that variable +ever existed. (Don't worry. Unless it's something you explicitly defined in that shell +session, it'll probably get redefined in any other session.)

+ + + + + +
+
+% export VARIABLE=some_value
+
+
+ +

Now, export is truly handy. Using it, you give the +environment variable VARIABLE the value “some_value”; if VARIABLE didn't exist, +it does now. If VARIABLE already had a value, well, it's gone. +That's not so good, if you're just trying to add a directory to your PATH. In that case, you probably want to do something like this:

+ + + + + +
+
+% export PATH=$PATH:/some/new/directory
+
+
+ +

Note the use of $PATH there: when you want bash to interpret a variable (replace it with its value), tack a +$ onto the beginning of the variable's name. For instance, echo $PATH will echo the value of PATH, in my +case:

+ + + + + +
+
+% echo $PATH
+/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
+/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
+/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
+
+
+
+ +
+

8.3.2 Tab +Completion

+ +

(Here comes something cool again.)

+ +
    +
  1. +

    A commandline interface means lots of typing.

    +
  2. + +
  3. +

    Typing is work.

    +
  4. + +
  5. +

    Nobody likes work.

    +
  6. +
+ +

From 3 and 2, we can determine that (4) nobody likes typing. Fortunately, bash saves us from (5) (nobody likes a commandline interface).

+ +

How does bash accomplish this wonderful feat, you ask? In +addition to the wildcard expansion we discussed before, bash +features tab completion.

+ +

Tab completion works something like this: You're typing the name of a file. Maybe it's +in your PATH, maybe you're typing it out explicitly. All you have +to do is type enough of the filename to uniquely identify it. Then hit the tab key. bash will figure out what you want and finish typing it for you!

+ +

Example time. /usr/src contains two subdirectories: /usr/src/linux and /usr/src/sendmail. I +want to see what's in /usr/src/linux. So I just type ls /usr/src/l, hit the TAB key, and bash gives me ls /usr/src/linux.

+ +

Now, suppose there are two directories /usr/src/linux and +/usr/src/linux-old; If I type /usr/src/l and hit TAB, bash will fill in as much as it can, and I'll get /usr/src/linux. I can stop there, or I can hit TAB again, and bash will show a list of +directories that match what I've typed so far.

+ +

Hence, less typing (and hence, people can like commandline interfaces). I told you it +was cool.

+
+
+ + + + + diff --git a/slackbook/html/shell-command-line.html b/slackbook/html/shell-command-line.html new file mode 100644 index 000000000..6188bd951 --- /dev/null +++ b/slackbook/html/shell-command-line.html @@ -0,0 +1,307 @@ + + + + +The Command Line + + + + + + + + + + + +
+

8.2 The Command +Line

+ +
+

8.2.1 Running Programs

+ +

It's hard to get much accomplished without running a program; you might be able to +prop something up with your computer or hold a door open, and some will make the most +lovely humming noise when running, but that's really about it. And I think we can all +agree that its use as a humming doorstop isn't what brought the personal computer the +popularity it now enjoys.

+ +

So, remember how almost everything in Linux is a file? Well, that goes for programs, +too. Every command you run (that isn't built into the shell) resides as a file somewhere. +You run a program simply by specifying the full path to it.

+ +

For instance, remember that su command from the last section? +Well, it's actually in the /bin directory: /bin/su would run it nicely.

+ +

So why, then, does just typing su work? After all, you didn't +say it was in /bin. It could just as easily have been in /usr/local/share, right? How did it know? The answer to that lies in the PATH environment variable; most shells have either PATH or something very much like PATH. It +basically contains a list of directories to look in for programs you try to run. So when +you ran su, your shell ran through its list of directories, +checking each one for an executable file called su that it could +run; the first one it came to, it ran. This happens whenever you run a program without +specifying a full path to it; if you get a ““Command +not found”” error, that only means that the program you tried to run +isn't in your PATH. (Of course, this would be true if the program +doesn't exist at all...) We'll discuss environment variables in more depth in Section 8.3.1.

+ +

Remember also that “.” is shorthand for the +current directory, so if you happened to be in /bin, ./su would have worked as an explicit full path.

+
+ +
+

8.2.2 Wildcard Matching

+ +

Nearly every shell recognizes some characters as being substitutes or abbreviations +that mean anything goes here. Such characters are aptly named wildcards; the most common +are * and ?. By convention, ? usually matches any single character. For instance, suppose +you're in a directory with three files: ex1.txt, ex2.txt, and ex3.txt. You want to copy +all of those files (using the cp command we cover in Section 10.5.1) to +another directory, say /tmp. Well, typing cp ex1.txt ex2.txt ex3.txt /tmp is entirely too much work. It's much +easier to type cp ex?.txt /tmp; the ? +will match each of the characters “1”, “2”, and “3”, +and each in turn will be substituted in.

+ +

What's that you say? That's still too much work? You're right. It's appalling; we have +labor laws to protect us from that sort of thing. Fortunately, we also have *. As was already mentioned, * matches +“any number of characters”, including 0. So if those three files were the +only ones in the directory, we could have simply said cp * /tmp +and gotten them all in one fell swoop. Suppose, though, that there is also a file called +ex.txt and one called hejaz.txt. We +want to copy ex.txt but not hejaz.txt; cp ex* /tmp will do that for +us.

+ +

cp ex?.txt /tmp, would, of course, only get our original +three files; there's no character in ex.txt to match that ?, so it would be left out.

+ +

Another common wildcard is the bracket pair [ ]. Any +characters inside the brackets will be substituted in place of the [ +] to find matches. Sound confusing? It's not too bad. Suppose for instance, we have +a directory containing the following 8 files: a1, a2, a3, a4, aA, aB, aC, and +aD . We want to only find the files ending in numbers; [ ] will do this for us.

+ + + + + +
+
+% ls a[1-4]
+a1 a2 a3 a4
+
+
+ +

But what we really want is just a1, a2, and a4? In the previous example we +used - to mean all values between 1 and 4. We can also separate individual entries with +commas.

+ + + + + +
+
+% ls a[1,2,4]
+a1 a2 a4
+
+
+ +

I know what you're thinking now, “Well what about letters?” Linux is +case-sensitive, meaning that a and A are different characters and are only related in your mind. +Capitals always come before lowercase letters, so A and B come before a and b. Continuing with our earlier example, if we wanted files a1, and A1, we can find these quickly +with [ ].

+ + + + + +
+
+% ls [A,a]1
+A1 a1
+
+
+ +

Note, that if we had included a hyphen instead of a comma, we would have gotten +incorrect results.

+ + + + + +
+
+% ls [A-a]1
+A1 B1 C1 D1 a1
+
+
+ +

You can also combine hyphen and comma strings.

+ + + + + +
+
+% ls [A,a-d]
+A1 a1 b1 c1 d1
+
+
+
+ +
+

8.2.3 Input/Output Redirection and Piping

+ +

(Here comes something cool.)

+ + + + + +
+
+% ps > blargh
+
+
+ +

Y'know what that is? That's me running ps to see which +processes are running; ps is covered in Section 11.3. That's not the cool part. The cool part +is > blargh, which means, roughly, take the output from ps and write it to a file called blargh. +But wait, it gets cooler.

+ + + + + +
+
+% ps | less
+
+
+ +

That one takes the output from ps and pipes it through less, so I can scroll through it at my leisure.

+ + + + + +
+
+% ps >> blargh
+
+
+ +

This is the third most commonly used redirector; it does the same thing as +“>”, except that “>>” will append output from ps to the file blargh, if said file +exists. If not, just like “>”, it will be created. (“>” +will obliterate the current contents of blargh.)

+ +

There is also a “<” operator, which means take your input from the +following, but it's not used nearly so often.

+ + + + + +
+
+% fromdos < dosfile.txt > unixfile.txt
+
+
+ +

Redirection gets really fun when you start piling it up:

+ + + + + +
+
+% ps | tac >> blargh
+
+
+ +

That will run ps, reverse the lines of its output, and append +those to the file blargh. You can stack as many of these up as +you want; just be careful to remember that they get interpreted from left to right.

+ +

See the bash(1) man page for more detailed information on +redirection.

+
+
+ + + + + diff --git a/slackbook/html/shell-vt.html b/slackbook/html/shell-vt.html new file mode 100644 index 000000000..2d28160c5 --- /dev/null +++ b/slackbook/html/shell-vt.html @@ -0,0 +1,137 @@ + + + + +Virtual Terminals + + + + + + + + + + + +
+

8.4 Virtual Terminals

+ +

So you're in the middle of working on something and you decide you need to do +something else. You could just drop what you're doing and switch tasks, but this is a +multi-user system, right? And you can log in as many times simultaneously as you want, +right? So why should you have to do one thing at a time?

+ +

You don't. We can't all have multiple keyboards, mice, and monitors for one machine; +chances are most of us don't want them. Clearly, hardware isn't the solution. That leaves +software, and Linux steps up on this one, providing “virtual terminals”, or +“VTs”.

+ +

By pressing Alt and a function key, you can switch +between virtual terminals; each function key corresponds to one. Slackware has logins on +6 VTs by default. Alt+F2 will take you to the +second one, Alt+F3 to the third, etc.

+ +

The rest of the function keys are reserved for X sessions. Each X session uses its own +VT, beginning with the seventh (Alt+F7) and +going up. When in X, the Alt+Function key +combination is replaced with Ctrl+Alt+Function; so if you are in X and want to get back to a text login +(without exiting your X session), Ctrl+Alt+F3 will take you to the third. (Alt+F7 will take you back, assuming you're using the first X session.)

+ +
+

8.4.1 Screen

+ +

But what about situations where there are no virtual terminals? What then? +Fortunately, slackware includes a beautiful screen manager aptly named screen. screen is a terminal emulator that +has virtual terminal like capabilities. Executing screen flashes +a brief introduction, then dumps to a terminal. Unlike the standard virtual terminals, +screen has its own commands. All screen +commands are prefixed with a Crtl+A +keystroke. For example, Ctrl+A+C will create a new terminal session. Ctrl+A+N will switch to the next terminal. Ctrl+A+P switches to the +previous terminal.

+ +

screen also supports detaching and re-attaching to screen sessions which is particularly useful for remote sessions via +ssh and telnet, (more on those later). +Ctrl+A+D will detach +from the currently running screen. Executing screen -r will list +all currently running screen sessions you may reattach to.

+ + + + + +
+
+% screen -r
+There are several suitable screens on:
+     1212.pts-1.redtail      (Detached)
+     1195.pts-1.redtail      (Detached)
+     1225.pts-1.redtail      (Detached)
+     17146.pts-1.sanctuary   (Dead ???)
+Remove dead screens with 'screen -wipe'.
+Type "screen [-d] -r [pid.]tty.host" to resume one of them. 
+
+
+ +

Running screen -r 1212 would reattach to the first screen +listed. I mentioned earlier how useful this was for remote sessions. If I were to login +to a remote slackware server via ssh, and my connection was +severed by some chance occurrence such as a local power failure, whatever I was doing at +that moment would instantly perish, which can be a horrible thing for your server. Using +screen prevents this by detaching my session if my connection is +dropped. Once my connection is restored, I can reattach to my screen session and resume +right where I left off.

+
+
+ + + + + diff --git a/slackbook/html/shell.html b/slackbook/html/shell.html new file mode 100644 index 000000000..aa259c8c7 --- /dev/null +++ b/slackbook/html/shell.html @@ -0,0 +1,166 @@ + + + + +The Shell + + + + + + + + + + +
+

Chapter 8 The Shell

+ +
+
+
Table of Contents
+ +
8.1 Users
+ +
8.2 The Command Line
+ +
8.3 The Bourne Again Shell (bash)
+ +
8.4 Virtual Terminals
+
+
+ +

In a graphical environment, the interface is provided by a program that creates +windows, scrollbars, menus, etc. In a commandline environment, the user interface is +provided by a shell, which interprets commands and generally makes things useable. +Immediately after logging in (which is covered in this chapter), users are put into a +shell and allowed to go about their business. This chapter serves as an introduction to +the shell, and to the most common shell among Linux users-- the Bourne Again Shell +(bash). For more detailed information on anything in this chapter, check out the bash(1) man page.

+ +
+

8.1 Users

+ +
+

8.1.1 Logging In

+ +

So you've booted, and you're looking at something that looks like this:

+ + + + + +
+
+Welcome to Linux 2.4.18
+Last login: Wed Jan   1 15:59:14 -0500 2005 on tty6.
+darkstar login:
+
+
+ +

Hmm.. nobody said anything about a login. And what's a darkstar? Don't worry; you +probably didn't accidentally fire up a hyperspace comm-link to the Empire's artificial +moon. (I'm afraid the hyperspace comm-link protocol isn't currently supported by the +Linux kernel. Maybe the 2.8 kernel branch will at last provide this oft looked-for +support.) No, darkstar is just the name of one of our computers, and its name gets +stamped on as the default. If you specified a name for your computer during setup, you +should see it instead of darkstar.

+ +

As for the login... If this is your first time, you'll want to log in as root. You'll be prompted for a password; if you set one during the +setup process, that's what it's looking for. If not, just hit enter. That's it-- you're +in!

+
+ +
+

8.1.2 Root: The Superuser

+ +

Okay, who or what is root? And what's it doing with an account on your system?

+ +

Well, in the world of Unix and similar operating systems (like Linux), there are users +and then there are users. We'll go into this in more detail later, but the important +thing to know now is that root is the user above all users; root is all-powerful and all-knowing, and nobody disobeys root. It just isn't +allowed. root is what we call a “superuser”, and +rightly so. And best of all, root is you.

+ +

Cool, huh?

+ +

If you're not sure: yes, that's very cool. The catch is, though, that root is +inherently allowed to break anything it so desires. You might want to skip ahead to Section 12.1.1 and +see about adding a user; then login as that user and work from there. The traditional +wisdom is that it's best to only become the superuser when absolutely necessary, so as to +minimize the possibility of accidentally breaking something.

+ +

By the way, if you decide you want to be root while you're logged in as someone else, +no problem. Just use the su(1) command. You'll be asked for root's password and then it will make you root until you exit or logout. You can also become any other user using su, provided you know that user's password: su +logan, for instance, would make you me.

+ +
+ + + + + +
Note +

root is allowed to su to any user, without requiring their +password.

+
+
+
+
+
+ + + + + diff --git a/slackbook/html/slackware_logo.png b/slackbook/html/slackware_logo.png new file mode 100644 index 000000000..3f2955e37 Binary files /dev/null and b/slackbook/html/slackware_logo.png differ diff --git a/slackbook/html/system-configuration-kernel.html b/slackbook/html/system-configuration-kernel.html new file mode 100644 index 000000000..7934fec42 --- /dev/null +++ b/slackbook/html/system-configuration-kernel.html @@ -0,0 +1,354 @@ + + + + +Selecting a Kernel + + + + + + + + + + + +
+

4.2 Selecting a Kernel

+ +

The kernel is the part of the operating system that provides hardware access, process +control, and overall system control. The kernel contains support for your hardware +devices, so picking one for your system is an important setup step.

+ +

Slackware provides more than a dozen precompiled kernels that you can pick from, each +with a standard set of drivers and additional specific drivers. You can run one of the +precompiled kernels or you can build your own kernel from source. Either way, you need to +make sure that your kernel has the hardware support your system needs.

+ +
+

4.2.1 The /kernels Directory on the Slackware CD-ROM

+ +

The precompiled Slackware kernels are available in the /kernels directory on the Slackware CD-ROM or on the FTP site in +the main Slackware directory. The available kernels change as new releases are made, so +the documentation in that directory is always the authoritative source. The /kernels directory has subdirectories for each kernel available. +The subdirectories have the same name as their accompanying boot disk. In each +subdirectory you will find the following files:

+ +
+ +++ + + + + + + + + + + + + + + + + + + + + + + +
FilePurpose
System.mapThe system map file for this kernel
bzImageThe actual kernel image
configThe source configuration file for this kernel
+
+ +

To use a kernel, copy the System.map and config files to your /boot directory and +copy the kernel image to /boot/vmlinuz. Run /sbin/lilo(8) to install LILO for the new kernel, and then reboot +your system. That's all there is to installing a new kernel.

+ +

The kernels that end with a .i are IDE kernels. That is, they include no SCSI support +in the base kernel. The kernels that end with .s are SCSI kernels. They include all the +IDE support in .i kernels, plus SCSI support.

+
+ +
+

4.2.2 Compiling a Kernel from Source

+ +

The question “Should I compile a kernel for my system?” is often asked by +new users. The answer is a definite maybe. There are few instances where you will need to +compile a kernel specific to your system. Most users can use a precompiled kernel and the +loadable kernel modules to achieve a fully working system. You will want to compile a +kernel for your system if you are upgrading kernel versions to one that we do not +currently offer in Slackware, or if you have patched the kernel source to get special +device support that is not in the native kernel source. Anyone with an SMP system will +definitely want to compile a kernel with SMP support. Also, many users find a custom +compiled kernel runs much faster on their machine. You may find it useful to compile the +kernel with optimizations for the specific processor in your machine.

+ +

Building your own kernel is not that hard. The first step is to make sure you have the +kernel source installed on your system. Make sure that you installed the packages from +the K series during the installation. You will also want to make sure you have the D +series installed, specifically the C compiler, GNU make, and GNU binutils. In general, +it's a good idea to have the entire D series installed if you plan on doing any kind of +development. You can also download the latest kernel source from http://www.kernel.org/mirrors.

+ +
+

4.2.2.1 Linux Kernel version 2.4.x +Compilation

+ + + + + +
+
+% su -
+Password:
+# cd /usr/src/linux
+
+
+ +

The first step is to bring the kernel source into its base state. We issue this +command to do that (note, you may wish to back-up the .config +file as this command will delete it without warning):

+ + + + + +
+
+# make mrproper
+
+
+ +

Now you can configure the kernel for your system. The current kernel offers three ways +of doing this. The first is the original text-based question and answer system. It asks a +bunch of questions and then builds a configuration file. The problem with this method is +that if you mess up, you must start over. The method that most people prefer is the menu +driven one. Lastly, there is an X-based kernel configuration tool. Pick the one you want +and issue the appropriate command:

+ + + + + +
+
+# make config           (text-based Q&A version)
+# make menuconfig       (menu driven, text-based version)
+# make xconfig          (X-based version, make sure you are in X first)
+
+
+ +
+

Figure 4-1. Kernel Configuration Menu

+ +

+
+ +

New users will probably find menuconfig to be the easiest to +use. Help screens are provided that explain the various parts of the kernel. After +configuring your kernel, exit the configuration program. It will write the necessary +configuration files. Now we can prepare the source tree for a build:

+ + + + + +
+
+# make dep
+# make clean
+
+
+ +

The next step is to compile the kernel. First try issuing the bzImage command below.

+ + + + + +
+
+# make bzImage
+
+
+ +

This may take a while, depending on your CPU speed. During the build process, you will +see the compiler messages. After building the kernel image, you will want to build any +parts of the kernel that you flagged as modular.

+ + + + + +
+
+# make modules
+
+
+ +

We can now install the kernel and modules that you compiled. To install the kernel on +a Slackware system, these commands should be issued:

+ + + + + +
+
+# mv /boot/vmlinuz /boot/vmlinuz.old
+# cat arch/i386/boot/bzImage > /vmlinuz
+# mv /boot/System.map /boot/System.map.old
+# cp System.map /boot/System.map
+# make modules_install
+
+
+ +

You will want to edit /etc/lilo.conf and add a section to +boot your old kernel in case your new one does not work. After doing that, run /sbin/lilo to install the new boot block. You can now reboot with +your new kernel.

+
+ +
+

4.2.2.2 Linux Kernel Version +2.6.x

+ +

The compilation of a 2.6 kernel is only slightly different from a 2.4 or a 2.2 kernel, +but it is important that you understand the differences before delving in. It's no longer +necessary to run make dep and make +clean. Also, the kernel compilation process is not as verbose in the 2.6 kernel +series. This results in a build process that is easier to understand, but has some short +comings as well. If you have trouble building the kernel, it's highly recommended that +you turn verbosity back up. You do this simply by appending V=1 +to the build. This allows you to log more information that could help a kernel developer +or other friendly geek aid you in resolving the issue.

+ + + + + +
+
+# make bzImage V=1
+
+
+
+
+ +
+

4.2.3 Using Kernel Modules

+ +

Kernel modules are another name for device drivers that can be inserted into a running +kernel. They allow you to extend the hardware supported by your kernel without needing to +pick another kernel or compile one yourself.

+ +

Modules can also be loaded and unloaded at any time, even when the system is running. +This makes upgrading specific drivers easy for system administrators. A new module can be +compiled, the old one removed, and the new one loaded, all without rebooting the +machine.

+ +

Modules are stored in the /lib/modules/kernel version directory on your system. They can be +loaded at boot time through the rc.modules file. This file is +very well commented and offers examples for major hardware components. To see a list of +modules that are currently active, use the lsmod(1) command:

+ + + + + +
+
+# lsmod
+Module                  Size  Used by
+parport_pc              7220   0 
+parport                 7844   0  [parport_pc]
+
+
+ +

You can see here that I only have the parallel port module loaded. To remove a module, +you use the rmmod(1) command. Modules can be loaded by the modprobe(1) or insmod(1) command. modprobe is usually safer because it will load any modules that the +one you're trying to load depends on.

+ +

A lot of users never have to load or unload modules by hand. They use the kernel +autoloader for module management. By default, Slackware includes kmod in its kernels. kmod is a kernel +option that enables the kernel to automatically load modules as they are requested. For +more information on kmod and how it is configured, see /usr/src/linux/Documentation/kmod.txt. You'll have needed to have +the kernel source package, or downloaded kernel source from http://kernel.org.

+ +

More information can be found in the man pages for each of these commands, plus the +rc.modules file.

+
+
+ + + + + diff --git a/slackbook/html/system-configuration.html b/slackbook/html/system-configuration.html new file mode 100644 index 000000000..2c88375a6 --- /dev/null +++ b/slackbook/html/system-configuration.html @@ -0,0 +1,589 @@ + + + + +System Configuration + + + + + + + + + + +
+

Chapter 4 System +Configuration

+ +
+
+
Table of Contents
+ +
4.1 System +Overview
+ +
4.2 Selecting a Kernel
+
+
+ +

Before you can configure the more advanced parts of your system, it's a good idea to +learn how the system is organized and what commands can be used to search for files and +programs. It's also good to know if you need to compile a custom kernel and what the +steps for doing that are. This chapter will familiarize you with system organization and +configuration files. Then, you can move on to configuring the more advanced parts of the +system.

+ +
+

4.1 System Overview

+ +

It's important to understand how a Linux system is put together before diving into the +various configuration aspects. A Linux system is significantly different from a DOS, +Windows, or Macintosh system (with the exception of the Unix-based Mac OS X), but these +sections will help you get acquainted with the layout so that you can easily configure +your system to meet your needs.

+ +
+

4.1.1 File System Layout

+ +

The first noticeable difference between Slackware Linux and a DOS or Windows system is +the filesystem. For starters, we do not use drive letters to denote different partitions. +Under Linux, there is one main directory. You can relate this to the C: drive under DOS. Each partition on your system is mounted to a +directory on the main directory. It's kind of like an ever-expanding hard disk.

+ +

We call the main directory the root directory, and it's denoted with a single slash +(/). This concept may seem strange, but it actually makes life +easy for you when you want to add more space. For example, let's say you run out of space +on the drive that has /home on it. Most people install +Slackware and make one big root drive. Well, since a partition can be mounted to any +directory, you can simply go to the store and pick up a new hard drive and mount it to +/home. You've now grafted on some more space to your system. +And all without having to move many things around.

+ +

Below, you will find descriptions of the major top level directories under +Slackware.

+ +
+
+
bin
+ +
+

Essential user programs are stored here. These represent the bare minimum set of +programs required for a user to use the system. Things like the shell and the filesystem +commands (ls, cp, and so on) are stored +here. The /bin directory usually doesn't receive modification +after installation. If it does, it's usually in the form of package upgrades that we +provide.

+
+ +
boot
+ +
+

Files that are used by the Linux Loader (LILO). This directory also receives little +modification after an installation. The kernel is stored here as of Slackware 8.1. In +earlier releases of Slackware, the kernel was simply stored under / , but common practice is to put the kernel and related files here +to facilitate dual-booting.

+
+ +
dev
+ +
+

Everything in Linux is treated as a file, even hardware devices like serial ports, +hard disks, and scanners. In order to access these devices, a special file called a +device node has to be present. All device nodes are stored in the /dev directory. You will find this to be true across many Unix-like +operating systems.

+
+ +
etc
+ +
+

This directory holds system configuration files. Everything from the X Window +configuration file, the user database, to the system startup scripts. The system +administrator will become quite familiar with this directory over time.

+
+ +
home
+ +
+

Linux is a multiuser operating system. Each user on the system is given an account and +a unique directory for personal files. This directory is called the user's home +directory. The /home directory is provided as the default +location for user home directories.

+
+ +
lib
+ +
+

System libraries that are required for basic operation are stored here. The C library, +the dynamic loader, the ncurses library, and kernel modules are among the things stored +here.

+
+ +
mnt
+ +
+

This directory contains temporary mount points for working on hard disks or removable +drives. Here you'll find mount points for your CD-ROM and floppy drives.

+
+ +
opt
+ +
+

Optional software packages. The idea behind /opt is that +each software package installs to /opt/software-package, which makes it easy to remove later. +Slackware distributes some things in /opt (such as KDE in /opt/kde), but you are free to add anything you want to /opt.

+
+ +
proc
+ +
+

This is a unique directory. It's not really part of the filesystem, but a virtual +filesystem that provides access to kernel information. Various pieces of information that +the kernel wants you to know are conveyed to you through files in the /proc directory. You can also send information to the kernel +through some of these files. Try doing cat /proc/cpuinfo.

+
+ +
root
+ +
+

The system administrator is known as root on the system. root's home directory is kept in /root +instead of /home/root. The reason is simple. What if /home was a different partition from / +and it could not be mounted? root would naturally want to log +in and repair the problem. If his home directory was on the damaged filesystem, it would +make it difficult for him to log in.

+
+ +
sbin
+ +
+

Essential programs that are run by root and during the +system bootup process are kept here. Normal users will not run programs in this +directory.

+
+ +
tmp
+ +
+

The temporary storage location. All users have read and write access to this +directory.

+
+ +
usr
+ +
+

This is the big directory on a Linux system. Everything else pretty much goes here, +programs, documentation, the kernel source code, and the X Window system. This is the +directory to which you will most likely be installing programs.

+
+ +
var
+ +
+

System log files, cache data, and program lock files are stored here. This is the +directory for frequently-changing data.

+
+
+
+ +

You should now have a good feel for which directories contain what on the filesystem. +More detailed information about the filesystem layout is available in the hier(7) man +page. The next section will help you find specific files easily, so you don't have to do +it by hand.

+
+ +
+

4.1.2 Finding Files

+ +

You now know what each major directory holds, but it still doesn't really help you +find things. I mean, you could go looking through directories, but there are quicker +ways. There are four main file search commands available in Slackware.

+ +
+

4.1.2.1 which

+ +

The first is the which(1) command. which is usually used to locate a program quickly. It just searches +your PATH and returns the first instance it finds and the +directory path to it. Take this example:

+ + + + + +
+
+%  which bash
+/bin/bash
+
+
+ +

From that you see that bash is in the /bin directory. This is a very limited command for searching, since +it only searches your PATH.

+
+ +
+

4.1.2.2 whereis

+ +

The whereis(1) command works similar to which, but can also search for man pages and source files. A whereis search for bash should return +this:

+ + + + + +
+
+%  whereis bash
+bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz
+
+
+ +

This command not only told us where the actual program is located, but also where the +online documentation is stored. Still, this command is limited. What if you wanted to +search for a specific configuration file? You can't use which or +whereis for that.

+
+ +
+

4.1.2.3 find

+ +

The find(1) command allows the user to search the filesystem +with a rich collection of search predicates. Users may specify a search with filename +wildcards, ranges of modification or creation times, or other advanced properties. For +example, to search for the default xinitrc file on the system, +the following command could be used.

+ + + + + +
+
+%  find / -name xinitrc
+/var/X11R6/lib/xinit/xinitrc
+
+
+ +

find will take a while to run, since it has to traverse the +entire root directory tree. And if this command is run as a normal user, there will be +permission denied error messages for directories that only root +can see. But find found our file, so that's good. If only it +could be a bit faster...

+
+ +
+

4.1.2.4 slocate

+ +

The slocate(1) command searches the entire filesystem, just +like the find command can do, but it searches a database instead of the actual +filesystem. The database is set to automatically update every morning, so you have a +somewhat fresh listing of files on your system. You can manually run updatedb(1) to update the slocate database (before running updatedb by hand, you must first su to the +root user). Here's an example of slocate in action:

+ + + + + +
+
+%  slocate xinitrc   # we don't have to go to the root
+/var/X11R6/lib/xinit/xinitrc
+/var/X11R6/lib/xinit/xinitrc.fvwm2
+/var/X11R6/lib/xinit/xinitrc.openwin
+/var/X11R6/lib/xinit/xinitrc.twm
+
+
+ +

We got more than what we were looking for, and quickly too. With these commands, you +should be able to find whatever you're looking for on your Linux system.

+
+
+ +
+

4.1.3 +The /etc/rc.d Directory

+ +

The system initialization files are stored in the /etc/rc.d +directory. Slackware uses the BSD-style layout for its initialization files as opposed to +System V init scripts, which tend to make configuration changes much more difficult +without using a program specifically designed for that purpose. In BSD-init scripts, each +runlevel is given a single rc file. In System V, each runlevel is given its own +directory, each containing numerous init scripts. This provides an organized structure +that is easy to maintain.

+ +

There are several categories of initialization files. These are system startup, +runlevels, network initialization, and System V compatibility. As per tradition, we'll +lump everything else into another category.

+ +
+

4.1.3.1 System Startup

+ +

The first program to run under Slackware besides the Linux kernel is init(8). This program reads the /etc/inittab(5) file to see how to run the system. It runs the /etc/rc.d/rc.S script to prepare the system before going into your +desired runlevel. The rc.S file enables your virtual memory, +mounts your filesystems, cleans up certain log directories, initializes Plug and Play +devices, loads kernel modules, configures PCMCIA devices, sets up serial ports, and runs +System V init scripts (if found). Obviously rc.S has a lot on +its plate, but here are some scripts in /etc/rc.d that rc.S will call on to complete its work:

+ +
+
+
rc.S
+ +
+

This is the actual system initialization script.

+
+ +
rc.modules
+ +
+

Loads kernel modules. Things like your network card, PPP support, and other things are +loaded here. If this script finds rc.netdevice, it will run +that as well.

+
+ +
rc.pcmcia
+ +
+

Probes for and configures any PCMCIA devices that you might have on your system. This +is most useful for laptop users, who probably have a PCMCIA modem or network card.

+
+ +
rc.serial
+ +
+

Configures your serial ports by running the appropriate setserial commands.

+
+ +
rc.sysvinit
+ +
+

Looks for System V init scripts for the desired runlevel and runs them. This is +discussed in more detail below.

+
+
+
+
+ +
+

4.1.3.2 Runlevel Initialization +Scripts

+ +

After system initialization is complete, init moves on to +runlevel initialization. A runlevel describes the state that your machine will be running +in. Sound redundant? Well, the runlevel tells init if you will +be accepting multiuser logins or just a single user, whether or not you want network +services, and if you will be using the X Window System or agetty(8) to handle logins. The files below define the different +runlevels in Slackware Linux.

+ +
+
+
rc.0
+ +
+

Halt the system (runlevel 0). By default, this is symlinked to rc.6.

+
+ +
rc.4
+ +
+

Multiuser startup (runlevel 4), but in X11 with KDM, GDM, or XDM as the login +manager.

+
+ +
rc.6
+ +
+

Reboot the system (runlevel 6).

+
+ +
rc.K
+ +
+

Startup in single user mode (runlevel 1).

+
+ +
rc.M
+ +
+

Multiuser mode (runlevels 2 and 3), but with the standard text-based login. This is +the default runlevel in Slackware.

+
+
+
+
+ +
+

4.1.3.3 Network Initialization

+ +

Runlevels 2, 3, and 4 will start up the network services. The following files are +responsible for the network initialization:

+ +
+
+
rc.inet1
+ +
+

Created by netconfig, this file is responsible for +configuring the actual network interface.

+
+ +
rc.inet2
+ +
+

Runs after rc.inet1 and starts up basic network +services.

+
+ +
rc.atalk
+ +
+

Starts up AppleTalk services.

+
+ +
rc.httpd
+ +
+

Starts up the Apache web server. Like a few other rc scripts, this one can also be +used to stop and restart a service. rc.httpd takes arguments of +stop, start, or restart.

+
+ +
rc.news
+ +
+

Starts up the news server.

+
+
+
+
+ +
+

4.1.3.4 System V Compatibility

+ +

System V init compatibility was introduced in Slackware 7.0. Many other Linux +distributions make use of this style instead of the BSD style. Basically each runlevel is +given a subdirectory for init scripts, whereas BSD style gives one init script to each +runlevel.

+ +

The rc.sysvinit script will search for any System V init +scripts you have in /etc/rc.d and run them, if the runlevel is +appropriate. This is useful for certain commercial software packages that install System +V init scripts

+
+ +
+

4.1.3.5 Other Files

+ +

The scripts described below are the other system initialization scripts. They are +typically run from one of the major scripts above, so all you need to do is edit the +contents.

+ +
+
+
rc.gpm
+ +
+

Starts up general purpose mouse services. Allows you to copy and paste at the Linux +console. Occasionally, gpm will cause problems with the mouse when it is used under X +windows. If you experience problems with the mouse under X, try taking away the +executable permission from this file and stopping the gpm server.

+
+ +
rc.font
+ +
+

Loads the custom screen font for the console.

+
+ +
rc.local
+ +
+

Contains any specific startup commands for your system. This is empty after a fresh +install, as it is reserved for local administrators. This script is run after all other +initialization has taken place.

+
+
+
+ +

To enable a script, all you need to do is add the execute permissions to it with the +chmod command. To disable a script, remove the execute +permissions from it. For more information about chmod, see Section 9.2.

+
+
+
+
+ + + + + diff --git a/slackbook/html/system-configuration/make-menuconfig-w.png b/slackbook/html/system-configuration/make-menuconfig-w.png new file mode 100644 index 000000000..848142905 Binary files /dev/null and b/slackbook/html/system-configuration/make-menuconfig-w.png differ diff --git a/slackbook/html/vi-configuration.html b/slackbook/html/vi-configuration.html new file mode 100644 index 000000000..e37b86dda --- /dev/null +++ b/slackbook/html/vi-configuration.html @@ -0,0 +1,96 @@ + + + + +vi Configuration + + + + + + + + + + + +
+

16.6 vi +Configuration

+ +

Your vi clone of choice can be configured in several +ways.

+ +

A variety of commands can be entered while in command mode to set up vi just how you like it. Depending on your editor, you can enable +features to make programming easier (like syntax hilighting, auto-indenting, and more), +set up macros to automake tasks, enable textual substitutions, and more.

+ +

Almost all of these commands can be put into a configuration file in your home +directory. elvis expects a .exrc file, +while vim expects a .vimrc file. Most +of the setup commands that can be entered in command mode can be placed in the +configuration file. This includes setup information, textual substitutions, macros, and +more.

+ +

Discussing all these options and the differences between the editors is quite an +involved subject. For more information, check out the man page or web site for your +preferred vi editor. Some editors (like vim) have extensive help within the editor that can be accessed with +the :help command, or something similar. You can also check out the +O'Reilly book Learning the vi Editor by +Lamb and Robbins.

+ +

Many common programs in Linux will load up a text file in vi +by default. For example, editing your crontabs will start up vi +by default. If you do not like vi and would like another editor +to be started instead, all you need to do is set the VISUAL +environment variable to the editor you prefer. For information on setting environment +variables, see the section called Environment Variables in Chapter 8. If you want to make +sure that your editor will be the default every time you login, add the VISUAL setting to +your .bash_profile or .bashrc +files.

+
+ + + + + diff --git a/slackbook/html/vi-keys.html b/slackbook/html/vi-keys.html new file mode 100644 index 000000000..a23863606 --- /dev/null +++ b/slackbook/html/vi-keys.html @@ -0,0 +1,279 @@ + + + + +Vi Keys + + + + + + + + + + + +
+

16.7 Vi Keys

+ +

This section is a quick reference of many common vi commands. +Some of these were discussed earlier in the chapter, while many will be new.

+ +
+

Table 16-1. Movement

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationKey
left, down, up, righth, j, k, l
To the end of the line$
To the beginning of the line^
To the end of the fileG
To the beginning of the file:1
To line 47:47
+
+ +
+

Table 16-2. Editing

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationKey
Removing a linedd
Removing five lines5dd
Replacing a characterr
Removing a characterx
Removing ten characters10x
Undo last actionu
Join current and next linesJ
Replace old with new, globally%s'old'new'g
+
+ +
+

Table 16-3. Searching

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationKey
Search for “asdf”/asdf
Search backwards for “asdf”?asdf
Repeat last search forwards/
Repeat last search backwards?
Repeat last search, same directionn
Repeat last search, opposite directionN
+
+ +
+

Table 16-4. Saving and Quitting

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OperationKey
Quit:q
Quit without saving:q!
Write and quit:wq
Write, without quitting:w
Reload currently open file:e!
Write buffer to file asdf:w asdf
Open file hejaz:e hejaz
Read file asdf into buffer:r asdf
Read output of ls into buffer:r !ls
+
+
+ + + + + diff --git a/slackbook/html/vi-modes.html b/slackbook/html/vi-modes.html new file mode 100644 index 000000000..df8387976 --- /dev/null +++ b/slackbook/html/vi-modes.html @@ -0,0 +1,200 @@ + + + + +Modes + + + + + + + + + + + +
+

16.2 Modes

+ +

vi operates in various modes, which are used to accomplish +various tasks. When you first start vi, you are placed into +command mode. From this point, you can issue various commands to manipulate text, move +around in the file, save, quit, and change modes. Editing the text is done in insert +mode. You can quickly move between modes with a variety of keystrokes, which are +explained below.

+ +
+

16.2.1 +Command Mode

+ +

You are first placed into command mode. From this mode, you cannot directly enter text +or edit what is already there. However, you can manipulate the text, search, quit, save, +load new files, and more. This is intended only to be an introduction to the command +mode. For a description of the various commands, see Section +16.7.

+ +

Probably the most often used command in command mode is changing to insert mode. This +is accomplished by hitting the i key. The cursor changes shapes, +and -- INSERT -- is displayed at +the bottom of the screen (note that this does not happen in all clones of vi). From there, all your keystrokes are entered into the current +buffer and are displayed to the screen. To get back into command mode, hit the ESCAPE key.

+ +

Command mode is also where you move around in the file. On some systems, you can use +the arrow keys to move around. On other systems, you may need to use the more traditional +keys of “hjkl”. Here is a simple listing of how these +keys are used to move around:

+ +
+ +++ + + + + + + + + + + + + + + + + + + + + +
hmove left one character
jmove down one character
kmove up one character
lmove right one character
+
+ +

Simply press a key to move. As you will see later, these keys can be combined with a +number to move much more efficiently.

+ +

Many of the commands that you will use in command mode begin with a colon. For +example, quitting is :q, as discussed earlier. The colon simply +indicates that it is a command, while the “q” tells vi to quit. Other commands are an optional number, followed by a +letter. These commands do not have a colon before them, and are generally used to +manipulate the text.

+ +

For example, deleting one line from a file is accomplished by hitting dd. This will remove the line that the cursor is on. Issuing the +command 4dd would tell vi to remove the +line that the cursor is on and the three after that. In general, the number tells vi how many times to perform the command.

+ +

You can combine a number with the movement keys to move around several characters at a +time. For example, 10k would move up ten lines on the screen.

+ +

Command mode can also be used to cut and paste, insert text, and read other files into +the current buffer. Copying text is accomplished with the y key (y stands for yank). Copying the current line is done by typing yy, and this can be prefixed with a number to yank more lines. Then, +move to the location for the copy and hit p. The text is pasted on +the line after the current one.

+ +

Cutting text is done by typing dd, and p +can be used to paste the cut text back into the file. Reading in text from another file +is a simple procedure. Just type :r, followed by a space and the +file name that contains the text to be inserted. The file's contents will be pasted into +the current buffer on the line after the cursor. More sophisticated vi clones even contain filename completion similar to the +shell's.

+ +

The final use that will be covered is searching. Command mode allows for simple +searching, as well as complicated search-and-replace commands that make use of a powerful +version of regular expressions. A complete discussion of regular expressions is beyond +the scope of this chapter, so this section will only cover simple means of searching.

+ +

A simple search is accomplished by hitting the / key, followed +by the text that you are searching for. vi will search forward +from the cursor to the end of the file for a match, stopping when it finds one. Note that +inexact matches will cause vi to stop as well. For example, a +search for “the” will +cause vi to stop on “then”, “therefore”, and so on. This is because all of those +words do match “the”.

+ +

After vi has found the first match, you can continue on to +the next match simply by hitting the / key followed by enter. You +can also search backwards through the file by replacing the slash with the ? key. For example, searching backwards through the file for +“the” would be +accomplished by typing ?the.

+
+ +
+

16.2.2 Insert +Mode

+ +

Inserting and replacing text is accomplished in insert mode. As previously discussed, +you can get into insert mode by hitting i from command mode. Then, +all text that you type is entered into the current buffer. Hitting the ESCAPE key takes you back into command mode.

+ +

Replacing text is accomplished in several ways. From command mode, hitting r will allow you to replace the one character underneath the cursor. +Just type the new character and it will replace the one under the cursor. You will then +be immediately placed back into command mode. Hitting R allows you +to replace as many characters as you'd like. To get out of this replacement mode, just +hit ESCAPE to go back into command mode.

+ +

There is yet another way to toggle between insertion and replacement. Hitting the INSERT key from command mode will take you into insert mode. Once you +are in insert mode, the keyboard's INSERT key serves as a toggle +between insert and replace. Hitting it once will allow you to replace. Hitting it once +more will once again allow you to insert text.

+
+
+ + + + + diff --git a/slackbook/html/vi-opening-files.html b/slackbook/html/vi-opening-files.html new file mode 100644 index 000000000..db79dd08a --- /dev/null +++ b/slackbook/html/vi-opening-files.html @@ -0,0 +1,109 @@ + + + + +Opening Files + + + + + + + + + + + +
+

16.3 Opening +Files

+ +

vi allows you to open files from command mode as well as +specifying a file on the command line to open. To open the file /etc/lilo.conf:

+ + + + + +
+
+:e /etc/lilo.conf
+
+
+ +

If you have made changes to the current buffer without saving, vi will complain. You can still open the file without saving the +current buffer by typing :e!, followed by a space and the filename. +In general, vi's warnings can be suppressed by following the +command with an exclamation mark.

+ +

If you want to reopen the current file, you can do so simply by typing e!. This is particularly useful if you have somehow messed up the file +and want to reopen it.

+ +

Some vi clones (for example, vim) +allow for multiple buffers to be open at the same time. For example, to open up the file +09-vi.sgml in my home directory while another file was open, I +would type:

+ + + + + +
+
+:split ~/09-vi.sgml
+
+
+ +

The new file is displayed on the top half of the screen, and the old file is displayed +in the bottom half of the screen. There are a lot of commands that manipulate the split +screen, and many of these commands start to resemble something out of Emacs The best place to look up these commands would be the man page +for your vi clone. Note that many clones do not support the split-screen idea, so you +might not be able to use it at all.

+
+ + + + + diff --git a/slackbook/html/vi-quitting-vi.html b/slackbook/html/vi-quitting-vi.html new file mode 100644 index 000000000..d600af002 --- /dev/null +++ b/slackbook/html/vi-quitting-vi.html @@ -0,0 +1,80 @@ + + + + +Quitting vi + + + + + + + + + + + +
+

16.5 Quitting vi

+ +

One way to quit vi is through :wq, +which will save the current buffer before quitting. You can also quit without saving with +:q or (more commonly) :q!. The latter is used +when you've modified the file but do not wish to save any changes to it.

+ +

On occasion, your machine might crash or vi might crash. +However, both elvis and vim will take +steps to minimize the damage to any open buffers. Both editors save the open buffers to a +temporary file on occasion. This file is usually named similarly to the open file, but +with a dot at the beginning. This makes the file hidden.

+ +

This temporary file gets removed once the editor quits under normal conditions. This +means that the temporary copy will still be around if something crashes. When you go back +to edit the file again, you will be prompted for what action to take. In most cases, a +large amount of your unsaved work can be recovered. elvis will +also send you a mail (from Graceland, oddly enough :) telling you that a backup copy +exists.

+
+ + + + + diff --git a/slackbook/html/vi-saving-files.html b/slackbook/html/vi-saving-files.html new file mode 100644 index 000000000..137c46b54 --- /dev/null +++ b/slackbook/html/vi-saving-files.html @@ -0,0 +1,103 @@ + + + + +Saving Files + + + + + + + + + + + +
+

16.4 Saving +Files

+ +

There are several ways to save files in vi. If you want to +save the current buffer to the file randomness, you would +type:

+ + + + + +
+
+:w randomness
+
+
+ +

Once you've saved the file once, saving it again is as simple as typing :w. Any changes will be written out to the file. After you've saved +the file, you are dumped back into command mode. If you want to save the file and quit +vi (a very common operation), you would type :wq. That tells vi to save the current file +and quit back to the shell.

+ +

On occasion, you want to save a file that is marked as read-only. You can do this by +adding an exclamation point after the write command, like so:

+ + + + + +
+
+:w!
+
+
+ +

However, there will still be instances where you cannot write the file (for example, +you are attempting to edit a file that is owned by another user). When this happens, vi will tell you that it cannot save the file. If you really want to +edit the file, you'll have to come back and edit it as root or +(preferably) the owner of that file.

+
+ + + + + diff --git a/slackbook/html/vi.html b/slackbook/html/vi.html new file mode 100644 index 000000000..d5fbf29f9 --- /dev/null +++ b/slackbook/html/vi.html @@ -0,0 +1,199 @@ + + + + +Vi + + + + + + + + + + +
+

Chapter 16 Vi

+ +
+
+
Table of Contents
+ +
16.1 Starting vi
+ +
16.2 Modes
+ +
16.3 Opening Files
+ +
16.4 Saving Files
+ +
16.5 Quitting vi
+ +
16.6 vi Configuration
+ +
16.7 Vi Keys
+
+
+ +

vi(1) is the standard Unix text editing program, and while +mastering it is not as essential as it once was, is still a very rewarding goal. There +are several versions (or clones) of vi available, including vi, elvis, vile, +and vim. One of these is available on just about any version of +Unix, as well as on Linux. All of these versions include the same basic feature set and +commands, so learning one clone should make it easy to learn another. With the variety of +text editors included with Linux distributions and Unix variants these days, many people +no longer use vi. Still, it remains the most universal text +editor across Unix and Unix work-alikes. Mastering vi means you +should never be sitting at a Unix machine and not be comfortable with at least one +powerful text editor.

+ +

vi includes a number of powerful features including syntax +highlighting, code formatting, a powerful search-and-replace mechanism, macros, and more. +These features make it especially attractive to programmers, web developers, and the +like. System administrators will appreciate the automation and integration with the shell +that is possible.

+ +

On Slackware Linux, the default version of vi available is +elvis. Other versions - including vim +and gvim - are available if you've installed the proper +packages. gvim is an X Window version of vim that includes toolbars, detachable menus, and dialog boxes.

+ +
+

16.1 Starting vi

+ +

vi can be started from the command line in a variety of ways. +The simplest form is just:

+ + + + + +
+
+% vi
+
+
+ +
+

Figure 16-1. A vi session.

+ +

+
+ +

This will start up vi with an empty buffer. At this point, +you'll see a mostly blank screen. It is now in “command mode”, waiting for +you to do something. For a discussion of the various vi modes, +see the Section 16.2. In order to quit out of vi, type the following:

+ + + + + +
+
+:q
+
+
+ +

Assuming that there have been no changes to the file, this will cause vi to quit. If there have been changes made, it will warn you that +there have been changes and tell you how to disregard them. Disregarding changes usually +means appending an exclamation point after the “q” like +so:

+ + + + + +
+
+:q!
+
+
+ +

The exclamation point usually means to force some action. We'll discuss it and other +key combinations in further details later.

+ +

You can also start vi with a pre-existing file. For example, +the file /etc/resolv.conf would be opened like so:

+ + + + + +
+
+% vi /etc/resolv.conf
+
+
+ +

Finally, vi can be started on a particular line of a file. +This is especially useful for programmers when an error message includes the line their +program bombed on. For example, you could start up vi on line 47 +of /usr/src/linux/init/main.c like so:

+ + + + + +
+
+% vi +47 /usr/src/linux/init/main.c
+
+
+ +

vi will display the given file and will place the cursor at +the specified line. In the case where you specify a line that is after the end of the +file, vi will place the cursor on the last line. This is +especially helpful for programmers, as they can jump straight to the location in the file +that an error occurred, without having to search for it.

+
+
+ + + + + diff --git a/slackbook/html/vi/vim-splitedit.png b/slackbook/html/vi/vim-splitedit.png new file mode 100644 index 000000000..f1ce5ceb0 Binary files /dev/null and b/slackbook/html/vi/vim-splitedit.png differ diff --git a/slackbook/html/x-window-system-xdm.html b/slackbook/html/x-window-system-xdm.html new file mode 100644 index 000000000..88b44e49e --- /dev/null +++ b/slackbook/html/x-window-system-xdm.html @@ -0,0 +1,202 @@ + + + + +xdm + + + + + + + + + + + +
+

6.5 xdm

+ +

As Linux becomes more and more useful as a desktop operating system, many users find +it desirable for the machine to boot straight into a graphical environment. For this, you +will need to tell Slackware to boot straight into X, and assign a graphical login +manager. Slackware ships with three graphical login tools, xdm(1), kdm, and gdm(1).

+ +

xdm is the graphical login manager shipped with the X.org +system. It's ubiquitous, but not as fully features as alternatives. kdm is the graphical login manager shipped with KDE, The K Desktop +Environment. Finally, gdm is the login manager shipped with +GNOME. Any of the choices will allow you to log in as any user, and choose what desktop +you wish to use.

+ +

Unfortunately, Slackware doesn't include a nice program like xwmconfig for choosing what login manager to use, so if all three +are installed you may have to do some editing to choose your preference. But first, we'll +discuss how to boot into a graphical environment.

+ +

In order to start X at boot, you need to boot into run-level 4. Run-levels are just a +way of telling init(8) to do something different when it starts +the OS. We do this by editing the config file for init, /etc/inittab.

+ + + + + +
+
+# These are the default runlevels in Slackware:
+#   0 = halt
+#   1 = single user mode
+#   2 = unused (but configured the same as runlevel 3)
+#   3 = multiuser mode (default Slackware runlevel)
+#   4 = X11 with KDM/GDM/XDM (session managers)
+#   5 = unused (but configured the same as runlevel 3)
+#   6 = reboot
+
+# Default runlevel. (Do not set to 0 or 6)
+id:3:initdefault:
+
+
+ +

In order to make Slackware boot to a graphical environment, we just change the 3 to a +4.

+ + + + + +
+
+  # Default runlevel. (Do not set to 0 or 6)
+  id:4:initdefault:
+
+
+ +

Now Slackware will boot into runlevel 4 and execute /etc/rc.d/rc.4. This file starts up X and calls whatever login +manager you've chosen. So, how do we choose login managers? There are a few ways to do +this, and I'll explain them after we look at rc.4.

+ + + + + +
+
+  # Try to use GNOME's gdm session manager:
+  if [ -x /usr/bin/gdm ]; then
+    exec /usr/bin/gdm -nodaemon
+  fi
+
+  # Not there?  OK, try to use KDE's kdm session manager:
+  if [ -x /opt/kde/bin/kdm ]; then
+    exec /opt/kde/bin/kdm -nodaemon
+  fi
+
+  # If all you have is XDM, I guess it will have to do:
+  if [ -x /usr/X11R6/bin/xdm ]; then
+    exec /usr/X11R6/bin/xdm -nodaemon
+  fi
+
+
+ +

As you can see here, rc.4 first checks to see if gdm is executable, and if so runs it. Second on the list is kdm, and finally xdm. One way of choosing a +login manager is to simply remove the ones you don't wish to use using removepkg. You can find out more about removepkg in Chapter 18.

+ +

Optionally, you can remove the executable permission from those files that you don't +want to use. We discuss chmod in Chapter 9.

+ + + + + +
+
+# chmod -x /usr/bin/gdm
+
+
+ +

Finally, you can just comment out the lines for the login manager you don't want to +use.

+ + + + + +
+
+  # Try to use GNOME's gdm session manager:
+  # if [ -x /usr/bin/gdm ]; then
+  #   exec /usr/bin/gdm -nodaemon
+  # fi
+
+  # Not there?  OK, try to use KDE's kdm session manager:
+  if [ -x /opt/kde/bin/kdm ]; then
+    exec /opt/kde/bin/kdm -nodaemon
+  fi
+
+  # If all you have is XDM, I guess it will have to do:
+  if [ -x /usr/X11R6/bin/xdm ]; then
+    exec /usr/X11R6/bin/xdm -nodaemon
+  fi
+
+
+ +

Any lines preceded by the hash mark (#) are considered +comments and the shell silently passes them. Thus, even if gdm +is installed and executable, the shell (in this case bash) won't +bother checking for it.

+
+ + + + + diff --git a/slackbook/html/x-window-system-xinitrc.html b/slackbook/html/x-window-system-xinitrc.html new file mode 100644 index 000000000..968b4c139 --- /dev/null +++ b/slackbook/html/x-window-system-xinitrc.html @@ -0,0 +1,145 @@ + + + + +xinitrc + + + + + + + + + + + +
+

6.3 +xinitrc

+ +

xinit(1) is the program that actually starts X; it is called +by startx(1), so you may not have noticed it (and probably don't +really need to). Its configuration file, however, determines which programs (including +and especially the window manager) are run when X starts up. xinit first checks your home directory for a .xinitrc file. If the file is found, it gets run; otherwise, /var/X11R6/lib/xinit/xinitrc (the systemwide default) is used. +Here's a simple xinitrc file:

+ + + + + +
+
+#!/bin/sh
+# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
+
+userresources=$HOME/.Xresources
+usermodmap=$HOME/.Xmodmap
+sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
+sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
+
+# merge in defaults and keymaps
+
+if [ -f $sysresources ]; then
+    xrdb -merge $sysresources
+fi
+
+if [ -f $sysmodmap ]; then
+    xmodmap $sysmodmap
+fi
+
+if [ -f $userresources ]; then
+    xrdb -merge $userresources
+fi
+
+if [ -f $usermodmap ]; then
+    xmodmap $usermodmap
+fi
+
+# start some nice programs
+
+twm &
+xclock -geometry 50x50-1+1 &
+xterm -geometry 80x50+494+51 &
+xterm -geometry 80x20+494-0 &
+exec xterm -geometry 80x66+0+0 -name login
+
+
+ +

All of those “if” blocks are there to merge in various configuration +settings from other files. The interesting part of the file is toward the end, where +various programs are run. This X session will begin with the twm(1) window manager, a clock, and three terminals. Note the exec before the last xterm. What that does +is replace the currently running shell (the one that's executing this xinitrc script) with that xterm(1) +command. When the user quits that xterm, the X session will +end.

+ +

To customize your X startup, copy the default /var/X11R6/lib/xinit/xinitrc to ~/.xinitrc and edit it, replacing those program lines with whatever +you like. The end of mine is simply:

+ + + + + +
+
+# Start the window manager:
+exec startkde
+
+
+ +

Note that there are several xinitrc.* files in /var/X11R6/lib/xinit that correspond to various window managers and +GUIs. You can use any of those, if you like.

+
+ + + + + diff --git a/slackbook/html/x-window-system-xorgsetup.html b/slackbook/html/x-window-system-xorgsetup.html new file mode 100644 index 000000000..664f895fe --- /dev/null +++ b/slackbook/html/x-window-system-xorgsetup.html @@ -0,0 +1,84 @@ + + + + +xorgsetup + + + + + + + + + + + +
+

6.2 +xorgsetup

+ +

The second way to configure X is to use xorgsetup, an +automagical configuration program that comes with Slackware.

+ +

To run xorgsetup, log in as root and type:

+ + + + + +
+
+# xorgsetup
+
+
+ +

If you've already got an /etc/X11/xorg.conf file (because +you've already configured X), you'll be asked if you want to backup the existing config +file before continuing. The original file will be renamed to /etc/X11/xorg.conf.backup.

+
+ + + + + diff --git a/slackbook/html/x-window-system-xwmconfig.html b/slackbook/html/x-window-system-xwmconfig.html new file mode 100644 index 000000000..849d383a6 --- /dev/null +++ b/slackbook/html/x-window-system-xwmconfig.html @@ -0,0 +1,134 @@ + + + + +xwmconfig + + + + + + + + + + + +
+

6.4 +xwmconfig

+ +

For years, Unix was used almost exclusively as the operating system for servers, with +the exception of high-powered professional workstations. Only the technically inclined +were likely to use a Unix-like operating system, and the user interface reflected this +fact. GUIs tended to be fairly bare-bones, designed to run a few necessarily graphical +applications like CAD programs and image renderers. Most file and system management was +conducted at the command line. Various vendors (Sun Microsystems, Silicon Graphics, etc) +were selling workstations with an attempt to provide a cohesive “look and +feel”, but the wide variety of GUI toolkits in use by developers led inevitably to +the dissolution of the desktop's uniformity. A scrollbar might not look the same in two +different applications. Menus might appear in different places. Programs would have +different buttons and checkboxes. Colors ranged widely, and were generally hard-coded in +each toolkit. As long as the users were primarily technical professionals, none of this +mattered much.

+ +

With the advent of free Unix-like operating systems and the growing number and variety +of graphical applications, X has recently gained a wide desktop user base. Most users, of +course, are accustomed to the consistent look and feel provided by Microsoft's Windows or +Apple's MacOS; the lack of such consistency in X-based applications became a barrier to +its wider acceptance. In response, two open source projects have been undertaken: The K +Desktop Environment, or KDE, and the GNU Network Object Model Environment, known as +GNOME. Each has a wide variety of applications, from taskbars and file managers to games +and office suites, written with the same GUI toolkit and tightly integrated to provide a +uniform, consistent desktop.

+ +

The differences in KDE and GNOME are generally fairly subtle. They each look different +from the other, because each uses a different GUI toolkit. KDE is based on the Qt library +from Troll Tech AS, while GNOME uses GTK, a toolkit originally developed for The GNU +Image Manipulation Program (or The GIMP, for short). As separate projects, KDE and GNOME +each have their own designers and programmers, with different development styles and +philosophies. The result in each case, however, has been fundamentally the same: a +consistent, tightly integrated desktop environment and application collection. The +functionality, usability, and sheer prettiness of both KDE and GNOME rival anything +available on other operating systems.

+ +

The best part, though, is that these advanced desktops are free. This means you can +have either or both (yes, at the same time). The choice is yours.

+ +

In addition to the GNOME and KDE desktops, Slackware includes a large collection of +window managers. Some are designed to emulate other operating systems, some for +customization, others for speed. There's quite a variety. Of course you can install as +many as you want, play with them all, and decide which you like the most.

+ +

To make desktop selection easy, Slackware also includes a program called xwmconfig that can be used to select a desktop or window manager. It +is run like so:

+ + + + + +
+
+% xwmconfig
+
+
+ +
+

Figure 6-5. Desktop Configuration with xorgconfig

+ +

+
+ +

You'll be given a list of all the desktops and window managers installed. Just select +the one you want from the list. Each user on your system will need to run this program, +since different users can use different desktops, and not everyone will want the default +one you selected at installation.

+ +

Then just start up X, and you're good to go.

+
+ + + + + diff --git a/slackbook/html/x-window-system.html b/slackbook/html/x-window-system.html new file mode 100644 index 000000000..6aaf81bbc --- /dev/null +++ b/slackbook/html/x-window-system.html @@ -0,0 +1,210 @@ + + + + +X Configuration + + + + + + + + + + +
+

Chapter 6 X Configuration

+ +
+
+
Table of Contents
+ +
6.1 xorgconfig
+ +
6.2 xorgsetup
+ +
6.3 xinitrc
+ +
6.4 xwmconfig
+ +
6.5 xdm
+
+
+ +

Starting with Slackware-10.0, the X Window environment in Slackware is provided by +Xorg. X is responsible for providing a graphical user interface. It is independent from +the operating system, unlike Windows or the MacOS.

+ +

The X Window System is implemented through many programs that run in userland. The two +main components are the server and the window manager. The server provides the lowlevel +functions for interacting with your video hardware, thus it is system specific. The +window manager sits on top of the server and provides the user interface. The advantage +to this is you can have many different graphical interfaces by simply changing the window +manager you use.

+ +

Configuring X can be a complex task. The reason for this is the vast numbers of video +cards available for the PC architecture, most of which use different programming +interfaces. Luckily, most cards today support basic video standards known as VESA, and if +your card is among them you'll be able to start X using the startx command right out of the box.

+ +

If this doesn't work with your card, or if you'd like to take advantage of the +high-performance features of your video card such as hardware acceleration or 3-D +hardware rendering, then you'll need to reconfigure X.

+ +

To configure X, you'll need to make an /etc/X11/xorg.conf +file. This file contains lots of details about your video hardware, mouse, and monitor. +It's a very complex configuration file, but fortunately there are several programs to +help create one for you. We'll mention a few of them here.

+ +
+

6.1 xorgconfig

+ +

This is a simple menu driven frontend that's similar in feel to the Slackware +installer. It simply tells the X server to take a look at the card, and then set up the +best initial configuration file it can make based on the information it gathers. The +generated /etc/X11/xorg.conf file should be a good starting +point for most systems (and should work without modification).

+ +

This is a text-based X configuration program that's designed for the advanced system +administrator. Here's a sample walkthrough using xorgconfig. +First, start the program:

+ + + + + +
+
+# xorgconfig
+
+
+ +

This will present a screenful of information about xorgconfig. To continue, press ENTER. +xorgconfig will ask you to verify you have set your PATH correctly. It should be fine, so go ahead and hit ENTER.

+ +
+

Figure 6-1. xorgconfig Mouse Configuration

+ +

+
+ +

Select your mouse from the menu presented. If you don't see your serial mouse listed, +pick the Microsoft protocol -- it's the most common and will probably work. Next xorgconfig will ask you about using ChordMiddle and Emulate3Buttons. You'll +see these options described in detail on the screen. Use them if the middle button on +your mouse doesn't work under X, or if your mouse only has two buttons (Emulate3Buttons lets you simulate the middle button by pressing both +buttons simultaneously). Then, enter the name of your mouse device. The default choice, +/dev/mouse, should work since the link was configured during +Slackware setup. If you're running GPM (the Linux mouse server) in repeater mode, you can +set your mouse type to /dev/gpmdata to have X get information +about the mouse through gpm. In some cases (with busmice +especially) this can work better, but most users shouldn't do this.

+ +

xorgconfig will ask you about enabling special key bindings. +If you need this say “y”. Most users can say +“n” -- enter this if you're not sure.

+ +
+

Figure 6-2. xorgconfig Horizontal Sync

+ +

+
+ +

In the next section you enter the sync range for your monitor. To start configuring +your monitor, press ENTER. You will see a list of monitor +types -- choose one of them. Be careful not to exceed the specifications of your monitor. +Doing so could damage your hardware.

+ +
+

Figure 6-3. xorgconfig Vertical Sync

+ +

+
+ +

Specify the vertical sync range for your monitor (you should find this in the manual +for the monitor). xorgconfig will ask you to enter strings to identify the monitor type +in the xorg.conf file. Enter anything you like on these 3 lines +(including nothing at all).

+ +
+

Figure 6-4. xorgconfig Video Card

+ +

+
+ +

Now you have the opportunity to look at the database of video card types. You'll want +to do this, so say “y”, and select a card from +the list shown. If you don't see your exact card, try selecting one that uses the same +chipset and it will probably work fine.

+ +

Next, tell xorgconfig how much RAM you have on your video +card. xorgconfig will want you to enter some more descriptive +text about your video card. If you like, you can enter descriptions on these three +lines.

+ +

You'll then be asked which display resolutions you want to use. Again, going with the +provided defaults should be fine to start with. Later on, you can edit the /etc/X11/xorg.conf file and rearrange the modes so 1024x768 (or +whatever mode you like) is the default.

+ +

At this point, the xorgconfig program will ask if you'd like +to save the current configuration file. Answer yes, and the X configuration file is +saved, completing the setup process. You can start X now with the startx command.

+
+
+ + + + + diff --git a/slackbook/html/x-window-system/xorgconfig1-w.png b/slackbook/html/x-window-system/xorgconfig1-w.png new file mode 100644 index 000000000..bedcc0b30 Binary files /dev/null and b/slackbook/html/x-window-system/xorgconfig1-w.png differ diff --git a/slackbook/html/x-window-system/xorgconfig2-w.png b/slackbook/html/x-window-system/xorgconfig2-w.png new file mode 100644 index 000000000..82722c4be Binary files /dev/null and b/slackbook/html/x-window-system/xorgconfig2-w.png differ diff --git a/slackbook/html/x-window-system/xorgconfig3-w.png b/slackbook/html/x-window-system/xorgconfig3-w.png new file mode 100644 index 000000000..eb8c5c7d0 Binary files /dev/null and b/slackbook/html/x-window-system/xorgconfig3-w.png differ diff --git a/slackbook/html/x-window-system/xorgconfig4-w.png b/slackbook/html/x-window-system/xorgconfig4-w.png new file mode 100644 index 000000000..651da228d Binary files /dev/null and b/slackbook/html/x-window-system/xorgconfig4-w.png differ diff --git a/slackbook/html/x-window-system/xwmconfig-w.png b/slackbook/html/x-window-system/xwmconfig-w.png new file mode 100644 index 000000000..91c8cc015 Binary files /dev/null and b/slackbook/html/x-window-system/xwmconfig-w.png differ diff --git a/slackbook/html/zipslack-booting.html b/slackbook/html/zipslack-booting.html new file mode 100644 index 000000000..89dabfeef --- /dev/null +++ b/slackbook/html/zipslack-booting.html @@ -0,0 +1,93 @@ + + + + +Booting ZipSlack + + + + + + + + + + + +
+

19.3 Booting +ZipSlack

+ +

There are several ways to boot ZipSlack. The most common is to use the included +LINUX.BAT to boot the system from DOS (or from DOS mode under Windows 9x). This file must +be edited to match your system before it will work.

+ +

Start by opening the C:\LINUX\LINUX.BAT file in your +favorite text editor. At the top of the file you will notice a large comment. It explains +what you need to edit in this file (and also what to do if you are booting from an +external Zip drive). Don't worry if you don't understand the root= setting. There are several examples, so feel free to pick one +and try it. If it doesn't work, you can edit the file again, comment out the line you +uncommented, and pick another one.

+ +

After you uncomment the line you want by removing the “rem” at the +beginning of the line, save the file and exit the editor. Bring your machine into DOS +mode.

+ +

A DOS prompt window in Windows 9x will NOT work.

+ +

Type C:\LINUX\LINUX.BAT to boot the system. If all goes well, +you should be presented with a login prompt.

+ +

Log in as root, with no password. You'll probably want to +set a password for root, as well as adding an account for yourself. At this point you can +refer to the other sections in this book for general system usage.

+ +

If using the LINUX.BAT file to boot the system didn't work +for you, you should refer to the included C:\LINUX\README.1ST +file for other ways to boot.

+
+ + + + + diff --git a/slackbook/html/zipslack-getting.html b/slackbook/html/zipslack-getting.html new file mode 100644 index 000000000..3e3e54f48 --- /dev/null +++ b/slackbook/html/zipslack-getting.html @@ -0,0 +1,110 @@ + + + + +Getting ZipSlack + + + + + + + + + + + +
+

19.2 Getting +ZipSlack

+ +

Obtaining ZipSlack is easy. If you have purchased the official Slackware Linux CD set, +then you already have ZipSlack. Just find the CD that contains the zipslack directory and place it in your CD-ROM drive. It's usually +the third or fourth disc, but always trust the labels over this documentation as the disk +it resides on is prone to change.

+ +

If you want to download ZipSlack, you should first visit our “Get Slack” +web page for the latest download information:

+ +

http://www.slackware.com/getslack/

+ +

ZipSlack is part of each Slackware release. Locate the release you want, and go to +that directory on the FTP site. The latest release directory can be found at this +location:

+ +

ftp://ftp.slackware.com/pub/slackware/slackware/

+ +

You'll find ZipSlack in the /zipslack subdirectory. ZipSlack +is offered as one big .ZIP file or floppy-sized chunks. The +chunks are in the /zipslack/split directory.

+ +

Don't stop at just the .ZIP files. You should also download +the documentation files and any boot images that appear in the directory.

+ +
+

19.2.1 +Installation

+ +

Once you've downloaded the necessary components, you'll need to extract the .ZIP file. Be sure to use a 32-bit unzipper. The size and filenames +in the archive are too much for a 16-bit unzipper. Examples of 32-bit unzippers include +WinZip and PKZIP for Windows.

+ +

ZipSlack is designed to be extracted directly to the root directory of a drive (such +as C: or D:). A \LINUX directory will be created that contains the actual Slackware +installation. You'll also find the files necessary to booting the system in that +directory as well.

+ +

After you've extracted the files, you should have a \LINUX +directory on the drive of your choosing (we'll use C: from +here on).

+
+
+ + + + + diff --git a/slackbook/html/zipslack.html b/slackbook/html/zipslack.html new file mode 100644 index 000000000..7edd94d25 --- /dev/null +++ b/slackbook/html/zipslack.html @@ -0,0 +1,128 @@ + + + + +ZipSlack + + + + + + + + + + +
+

Chapter 19 ZipSlack

+ +
+
+
Table of Contents
+ +
19.1 What is ZipSlack?
+ +
19.2 Getting ZipSlack
+ +
19.3 Booting ZipSlack
+
+
+ +
+

19.1 What is +ZipSlack?

+ +

ZipSlack is a special version of Slackware Linux. It's an already installed copy of +Slackware that's ready to run from your DOS or Windows partition. It's a basic +installation, you do not get everything that comes with Slackware.

+ +

ZipSlack gets its name from the form it's distributed in, a big .ZIP file. Users of +DOS and Windows will probably be familiar with these files. They are compressed archives. +The ZipSlack archive contains everything you need to get up and running with +Slackware.

+ +

It is important to note that ZipSlack is significantly different from a regular +installation. Even though they function the same and contain the same programs, their +intended audiences and functions differ. Several advantages and disadvantages of ZipSlack +are discussed below.

+ +

One last thing, you should always review the documentation included in the actual +ZipSlack directory. It contains the latest information regarding installation, booting, +and general use of the product.

+ +
+

19.1.1 +Advantages

+ +
    +
  • +

    Does not require repartitioning of your hard disk.

    +
  • + +
  • +

    Great way to learn Slackware Linux without stumbling through the installation +process.

    +
  • +
+
+ +
+

19.1.2 +Disadvantages

+ +
    +
  • +

    Uses the DOS filesystem, which is slower than a native Linux filesystem.

    +
  • + +
  • +

    Will not work with Windows NT.

    +
  • +
+
+
+
+ + + + + diff --git a/slackbook/slackbook-2.0.pdf b/slackbook/slackbook-2.0.pdf new file mode 100644 index 000000000..8961f55f4 Binary files /dev/null and b/slackbook/slackbook-2.0.pdf differ diff --git a/slackbook/slackbook-2.0.ps b/slackbook/slackbook-2.0.ps new file mode 100644 index 000000000..75b1c13b2 --- /dev/null +++ b/slackbook/slackbook-2.0.ps @@ -0,0 +1,86611 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software +%%Title: book.dvi +%%Pages: 284 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%DocumentFonts: Helvetica Helvetica-Oblique Times-Bold Times-Roman +%%+ Times-BoldItalic Helvetica-Bold Times-Italic Courier +%%+ Helvetica-BoldOblique CMMI10 CMMI9 Courier-Bold Courier-Oblique +%%+ Courier-BoldOblique CMMI12 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: /usr/local/bin/dvips -Ppdf -o book.ps book.dvi +%DVIPSParameters: dpi=8000, compressed +%DVIPSSource: TeX output 2005.05.12:0318 +%%BeginProcSet: tex.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: alt-rule.pro +%! +% Patch by TVZ +% Makes dvips files draw rules with stroke rather than fill. +% Makes narrow rules more predictable at low resolutions +% after distilling to PDF. +% May have unknown consequences for very thick rules. +% Tested only with dvips 5.85(k). +TeXDict begin +/QV { + gsave newpath /ruleY X /ruleX X + Rx Ry gt + { ruleX ruleY Ry 2 div sub moveto Rx 0 rlineto Ry } + { ruleX Rx 2 div add ruleY moveto 0 Ry neg rlineto Rx } + ifelse + setlinewidth 0 setlinecap stroke grestore +} bind def +end + +%%EndProcSet +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +%%BeginProcSet: 8r.enc +% File 8r.enc as of 2002-03-12 for PSNFSS 9 +% +% This is the encoding vector for Type1 and TrueType fonts to be used +% with TeX. This file is part of the PSNFSS bundle, version 9 +% +% Authors: S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, W. Schmidt +% +% Idea is to have all the characters normally included in Type 1 fonts +% available for typesetting. This is effectively the characters in Adobe +% Standard Encoding + ISO Latin 1 + extra characters from Lucida + Euro. +% +% Character code assignments were made as follows: +% +% (1) the Windows ANSI characters are almost all in their Windows ANSI +% positions, because some Windows users cannot easily reencode the +% fonts, and it makes no difference on other systems. The only Windows +% ANSI characters not available are those that make no sense for +% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen +% (173). quotesingle and grave are moved just because it's such an +% irritation not having them in TeX positions. +% +% (2) Remaining characters are assigned arbitrarily to the lower part +% of the range, avoiding 0, 10 and 13 in case we meet dumb software. +% +% (3) Y&Y Lucida Bright includes some extra text characters; in the +% hopes that other PostScript fonts, perhaps created for public +% consumption, will include them, they are included starting at 0x12. +% +% (4) Remaining positions left undefined are for use in (hopefully) +% upward-compatible revisions, if someday more characters are generally +% available. +% +% (5) hyphen appears twice for compatibility with both ASCII and Windows. +% +% (6) /Euro is assigned to 128, as in Windows ANSI +% +/TeXBase1Encoding [ +% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) + /.notdef /dotaccent /fi /fl + /fraction /hungarumlaut /Lslash /lslash + /ogonek /ring /.notdef + /breve /minus /.notdef +% These are the only two remaining unencoded characters, so may as +% well include them. + /Zcaron /zcaron +% 0x10 + /caron /dotlessi +% (unusual TeX characters available in, e.g., Lucida Bright) + /dotlessj /ff /ffi /ffl + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + % very contentious; it's so painful not having quoteleft and quoteright + % at 96 and 145 that we move the things normally found there down to here. + /grave /quotesingle +% 0x20 (ASCII begins) + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question +% 0x40 + /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O +% 0x50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o +% 0x70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /asciitilde + /.notdef % rubout; ASCII ends +% 0x80 + /Euro /.notdef /quotesinglbase /florin + /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft + /OE /.notdef /.notdef /.notdef +% 0x90 + /.notdef /.notdef /.notdef /quotedblleft + /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright + /oe /.notdef /.notdef /Ydieresis +% 0xA0 + /.notdef % nobreakspace + /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft + /logicalnot + /hyphen % Y&Y (also at 45); Windows' softhyphen + /registered + /macron +% 0xD0 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def + +%%EndProcSet +%%BeginProcSet: aae443f0.enc +% Thomas Esser, Dec 2002. public domain +% +% Encoding for: +% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10 +% +/TeXaae443f0Encoding [ +/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega +/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa +/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi +/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf +/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft +/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle +/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle +/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash +/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N +/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow +/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p +/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector +/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi +/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta +/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon +/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%%EndProcSet +%%BeginProcSet: texps.pro +%! +TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 +index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 +ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ +pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get +div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type +/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end +definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup +sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll +mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ +exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} +forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def +end + +%%EndProcSet +%%BeginProcSet: special.pro +%! +TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N +/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N +/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N +/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ +/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho +X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B +/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ +/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known +{userdict/md get type/dicttype eq{userdict begin md length 10 add md +maxlength ge{/md md dup length 20 add dict copy def}if end md begin +/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S +atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ +itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll +transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll +curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf +pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} +if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 +-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 +get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip +yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub +neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ +noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop +90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get +neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr +1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr +2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 +-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S +TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ +Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale +}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState +save N userdict maxlength dict begin/magscale true def normalscale +currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts +/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x +psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx +psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub +TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def +@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll +newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto +closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N +/@beginspecial{SDict begin/SpecialSave save N gsave normalscale +currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} +N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs +neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate +rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse +scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg +lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx +ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N +/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ +pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave +restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B +/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 +setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY +moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix +matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc +savematrix setmatrix}N end + +%%EndProcSet +%%BeginProcSet: color.pro +%! +TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop +setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll +}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def +/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ +setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ +/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch +known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC +/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC +/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 +setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 +setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 +0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC +/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 +setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 +0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ +0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ +0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC +/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 +setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 +setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 +0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC +/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 +setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 +0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ +0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ +0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC +/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 +setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC +/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 +0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 +0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 +0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 +setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 +0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC +/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 +setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 +0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 +1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC +/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 +setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ +0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} +DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 +setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 +setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 +setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end + +%%EndProcSet +TeXDict begin @defspecial + + /DvipsToPDF { 72.27 mul Resolution div } def /PDFToDvips { 72.27 div +Resolution mul } def /HyperBorder { 1 PDFToDvips } def /H.V {pdf@hoff +pdf@voff null} def /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def +/H.S { currentpoint HyperBorder add /pdf@lly exch def dup DvipsToPDF +/pdf@hoff exch def HyperBorder sub /pdf@llx exch def } def /H.L { 2 +sub dup /HyperBasePt exch def PDFToDvips /HyperBaseDvips exch def currentpoint +HyperBaseDvips sub /pdf@ury exch def /pdf@urx exch def } def /H.A { +H.L currentpoint exch pop vsize 72 sub exch DvipsToPDF HyperBasePt +sub sub /pdf@voff exch def } def /H.R { currentpoint HyperBorder sub +/pdf@ury exch def HyperBorder add /pdf@urx exch def currentpoint exch +pop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def } def systemdict +/pdfmark known not {userdict /pdfmark systemdict /cleartomark get put} +if + +@fedspecial end +%%BeginFont: CMMI10 +%!PS-AdobeFont-1.1: CMMI10 1.100 +%%CreationDate: 1996 Jul 23 07:53:57 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI10) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI10 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-32 -250 1048 750}readonly def +/UniqueID 5087385 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 +990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E +6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB +DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 +59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 +D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF +8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 +6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 +1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE +03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 +95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 +74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 +3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 +47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 +AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 +42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 +40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 +B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 +95601766777978D01677B8D19E1B10A078432D2884BB4F7B8C3293B68BB78100 +16724E495064BA0168CC86D413CB48560D6D318357397832F7A858CD82030C7D +8A4A1919716E8B26AFF8789AAF489EE4E0A88DC477551A87C7DF2856189E4596 +FE015956AFE5CC019F5CA6323A12B763B7B08B92C1A2940D3C566C43729E5482 +63C6DC5E834AEB4DAFB5AE8F0B8931A4687C94D11587B9071C8D81DA14F12776 +53A1985A3EBE37827656BD4635E03F09C3231F906874645E7DB3E59045A59D67 +E745D8487CF73FC50F64060544F624F357BC998A87FBE468DEBB38A09449EBCA +D041D7C29225ACD16CB8A59E87924D15A9125F064710A6CCCA3AD3103D8FCC94 +CC3571C6F9192774FCFE5BB42A14B27960903144D28BF047BF4C77646EA7BF6F +440D4EDEB712C63F2E8080419E42D1D58EED685EB5CDD49F80DB6E5553B519FA +C6A39A093155802F3EC607721F390307E91ECB597ABA60A537E3F8C045BF5DD3 +D88CF6518D37FCD95D2F295D902D617440D23516D962F47750A682A319ACE1 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI12 +%!PS-AdobeFont-1.1: CMMI12 1.100 +%%CreationDate: 1996 Jul 27 08:57:55 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI12) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI12 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-30 -250 1026 750}readonly def +/UniqueID 5087386 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 +5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC +4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 +3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 +EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F +4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 +2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A +323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C +2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 +D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA +5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F +0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D +A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 +2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 +00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 +CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 +99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA +C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D +5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 +55B50047CD58E912E67E22C1B92F41D0BEE742201DF198F3766AE35EA71D8195 +A8C94D661C40D718CB09497485FAA34204229AECFE644C93FFDA54C789E4F751 +3D2519F7CB9E79B2ABE3101DF2EBFAD375469CDC687FB3DC2833EDC0F946B41F +F28D72FFF2A9B8B0D76DC542537612E2BE0F3FB9601C897386359C55E867A547 +F872005F5C56C6EC5E9685E03D7A82653BE8B69741C4DF332AEEB2AA450B23F3 +EABD5ED060606CC7DB1762632EC3C6C4A66ADAF61A97D949DEA5156B4CF34765 +67AC3F10AE17199A710A882D47979F9D41AA2CB794648BE47479F0B00E18BF04 +923F54CEC1214BAFA39BB65ECB013875899E9901B7882D16D2E2C97AD3353668 +A6070081E4DC627AF9192599F5876369908FBDFA11E8D6CB2E83896E9C897CEC +FD1D25651D66A333AF531FF74E1B0DEB1E3D1B5B7D3FB9D1C8BF60517B31C8D2 +1C264F44BC9AF3D9BA5280D1618EED96C11ED24F789FAA263394C658DFCA8DE9 +D47D9E188E212F9EC1DCF449DFDAB8437FAB9EA9AF01AE1714E8F932855182 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: CMMI9 +%!PS-AdobeFont-1.1: CMMI9 1.100 +%%CreationDate: 1996 Jul 23 07:53:55 +% Copyright (C) 1997 American Mathematical Society. All Rights Reserved. +11 dict begin +/FontInfo 7 dict dup begin +/version (1.100) readonly def +/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def +/FullName (CMMI9) readonly def +/FamilyName (Computer Modern) readonly def +/Weight (Medium) readonly def +/ItalicAngle -14.04 def +/isFixedPitch false def +end readonly def +/FontName /CMMI9 def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 0 /.notdef put +readonly def +/FontBBox{-29 -250 1075 750}readonly def +/UniqueID 5087384 def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE +3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B +532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 +B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B +986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE +D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 +9E394A533A081C36D6F5CA5FED4F9AC9ADE41E04F9FC52E758C9F45A92BED935 +86F9CFDB57732045913A6422AD4206418610C81D882EE493DE9523CC1BFE1505 +DD1390B19BC1947A01B93BC668BE9B2A0E69A968554239B88C00AF9FBDF09CCD +67D3B2094C11A04762FE8CC1E91D020A28B3C122D24BEAACF82313F4604F2FEF +6E176D730A879BE45DD0D4996EF0247AEB1CA0AB08FF374D99F06D47B36F9554 +FAD9A2D3CE451B7791C3709D8A1DDDEFBD840C1B42AB824D5A0DFF0E0F15B0B7 +22AEEB877FF489581DA6FA8DA64944555101EB16F7AB0B717E148B7B98D8DBFD +730C52937E226545CF8DC3E07C5BA30739BAFCD0F2B44275A6D503F582C0FB4F +449963D0AD2FAFDE33BA3D77BCA9D1DF878DDAFCA2E22CC4BACD542B282164C7 +97C2BDE318AF9D501CA21F6E662E7AAB75A5F24D2C182E598D175D44E88AB19A +E7CD59584F95B389183EE21B525BF52A3F23C0FE5383A5565A19361D716F508C +AAB78411CA5A4D27552CC1C435760D5A89D535B71C593E755C616661363308DA +A683F54ED0C23FB2C225A008392B0B719F66F11A946A090B7C00B662A3C69599 +B4ECB0CC70C85C4BBBF207E0026F6C7A19F2ACFB7A60804FC98A4BFFD7BFFF2B +9529E6D9D4238002BBC255BC62959D6F3381FE06E0621B879D5FE5B541D45A1E +759A6E7DC32B1D1632368D09A97039DF255B6492B1B2B7E2C1434E8306ECA7D3 +5A79B6D614B4979F10988BC76ED53A5F45315CD7DA216221F842FD0F3E050DD2 +BAC23C984D506D8F7D614BCB6B244F5F41321549BB0BD041FBF3053307168680 +3435E9C9445A59A7C666418C4F2512C32058B1CE1EA47B47B1131E460878F813 +19BB4E4E5F6F34AE021597FDBA6C5AAA07C7F6A8C69B690A2DDF6EB467DD8DED +1C7FDCFC833DC1AF35D7E6B2A2B96DAD8E5097B6D375AA3EDFEC35143A698687 +EF9CD3772A7921257E4D4EB2CB059A0416D6A70EADDFBB8B4711DBE47745349C +1305E7724E698115C416F36DB9CA9E0E7A91384CFB0DC79E414B99A6CB4ABF94 +FCBD125832AC6B83EA14136803514FA7AE90227F7684C5717DB21CBAB1EF8303 +F3FBE6A303D6A845E62169358A26710AA5B7D9110C4F290E5758FE6D31B1C679 +A8BFC3841F42CEBE4067D6D294BA8064CC79305B16A6D9A1662E1D0530AA4C60 +F32E3F13AA5F7F02D9EC7B7A +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 40258431 52099146 1000 8000 8000 (book.dvi) +@start /Fa 192[697 63[{ TeXBase1Encoding ReEncodeFont }1 +1394.77 /Times-Bold rf /Fb 190[783 65[{ TeXBase1Encoding ReEncodeFont } +1 1084.82 /Times-Roman rf /Fc 134[893 1[893 1[893 893 +893 893 5[893 893 1[893 3[893 1[893 1[893 51[893 45[{ + TeXBase1Encoding ReEncodeFont }13 1487.75 /Courier-Bold +rf /Fd 193[861 1[861 60[{ TeXaae443f0Encoding ReEncodeFont }2 +1106.96 /CMMI10 rf /Fe 140[543 543 12[619 15[1007 18[852 +852 65[{ TeXBase1Encoding ReEncodeFont }6 1394.77 /Times-Italic +rf /Ff 136[1039 3[720 479 2[800 800 4[319 800 800 2[800 +2[800 16[960 12[1039 67[{ TeXBase1Encoding ReEncodeFont }12 +1439.05 /Helvetica-Oblique rf /Fg 165[663 4[663 663 663 +663 1[663 663 663 663 663 2[663 663 2[663 663 663 663 +663 27[663 37[{ TeXBase1Encoding ReEncodeFont }18 1104.52 +/Courier-Oblique rf /Fh 129[663 3[663 663 663 663 663 +663 663 663 663 663 663 663 663 663 663 663 1[663 663 +663 663 663 663 663 663 663 663 663 1[663 1[663 663 663 +663 663 663 663 663 663 663 663 663 663 663 663 663 663 +663 663 663 663 663 663 663 663 663 663 663 663 663 663 +1[663 663 663 663 663 663 663 663 663 663 663 663 663 +663 663 663 663 1[663 663 663 1[663 663 663 1[663 33[{ + TeXBase1Encoding ReEncodeFont }84 1104.52 /Courier rf +/Fi 133[663 1[663 663 1[663 663 663 663 1[663 663 663 +663 663 663 1[663 663 663 663 663 663 663 1[663 8[663 +3[663 663 663 3[663 663 3[663 2[663 663 663 2[663 663 +5[663 663 663 663 663 663 663 663 663 663 663 663 663 +663 2[663 42[{ TeXBase1Encoding ReEncodeFont }48 1104.52 +/Courier-Bold rf /Fj 218[530 37[{ TeXBase1Encoding ReEncodeFont }1 +883.575 /Courier rf /Fk 140[669 669 2[669 1[669 669 6[669 +101[{ TeXBase1Encoding ReEncodeFont }6 1115.82 /Courier +rf /Fl 193[1214 1[1214 60[{ TeXaae443f0Encoding ReEncodeFont }2 +1594.02 /CMMI12 rf +%DVIPSBitmapFont: Fm ectt0900 9 14 +/Fm 14 120 8000 600 dfs[<1538157CA215FC15F8140115F0140315E0140715C0A214 +0F1580141F15005C143E147E147C14FC5C13015C13035C13075C130F5CA2131F91C7FC5B +133E137E137C13FC5B12015B12035B12075B120F5BA2121F90C8FC5A123E127E127C12FC +5AA21270>30 58 124 179 520 47 D[<3801FFE0000713F84813FE486D7E81EBC07FEC +0FE0380F8007D802007FC71203A2EB07FF137F0003B5FC120F5A383FFC03EA7FE0130012 +FE5AA46C1307007F130FEBC07F6CB612C06C15E07E000313F83A007FC03FC0>35 +32 125 159 520 97 D[36 +46 128 173 520 I[29 32 123 159 +520 I[36 46 126 +173 520 I[31 +32 125 159 520 I[<130F497E497EA46D5A6DC7FC90C8FCA7383FFF80487FA37EEA000F +B3A4007FB512F0B6FC15F815F07E>29 47 123 174 520 105 D[<397F07C01F3AFF9FF0 +7FC09039FFF9FFE091B57E7E3A0FFC7FF1F89038F03FC001E0138001C01300A3EB803EB0 +3A7FF0FFC3FF486C01E3138001F913E701F813E36C4801C31300>41 +32 129 159 520 109 D[<397FE07F8039FFF1FFE001F713F890B57E6C800003EBC0FF91 +38007F8001FCEB1FC049130F16E0491307A216F01503A615076D14E0A2150F6DEB1FC06D +133F6DEB7F809138C1FF00ECFFFE5D01F75B01F313E0D9F07FC7FC91C8FCAC387FFF80B5 +7EA36C5B>36 49 128 159 520 112 D[<397FFC03FC39FFFE0FFF023F13804A13C0007F +90B5FC39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57E +B67EA36C5C>34 32 126 159 520 114 D[<9038FFF3800007EBFFC0121F5A5AEB803F38 +FC000F5AA2EC07806C90C7FCEA7F8013FC383FFFF06C13FC000713FF00011480D8000F13 +C09038003FE014070078EB03F000FC1301A27E14036CEB07E0EBE01F90B512C015801500 +00FB13FC38707FF0>28 32 123 159 520 I[<133C137EA8007FB512F0B612F8A36C14F0 +D8007EC7FCAE1518157EA415FE6D13FC1483ECFFF86D13F06D13E0010313C001001300> +31 41 126 168 520 I[<3A7FFC0FFF80486C4813C0A36C486C13803A07C000F800EBE0 +0100035CA2EBF00300015CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3E +A214FE6D5AA36D5AA26D5A>34 32 126 159 520 118 D[<3A7FFE07FFE000FF15F06D5A +497E007F15E03A0F80001F00A36D5B0007143EA414F0EBC1F83903E3FC7CA4EBE79EA200 +011478A301F713F8A2EBFF0F6C5CA3EBFE0790387C03E0>36 32 +127 159 520 I E +%EndDVIPSBitmapFont +/Fn 138[691 691 691 691 1[691 691 691 1[691 3[691 2[691 +1[691 15[691 83[{ TeXBase1Encoding ReEncodeFont }12 1151.24 +/Courier rf /Fo 106[391 149[{ TeXBase1Encoding ReEncodeFont }1 +1115.82 /Times-Roman rf /Fp 136[1206 2[516 862 603 2[947 +947 1[431 2[431 947 2[862 947 862 1[862 94[947 2[{ + TeXBase1Encoding ReEncodeFont }14 1549.74 /Helvetica-BoldOblique +rf /Fq 133[1116 1[1241 1736 1[1364 743 1241 868 1[1364 +1364 1364 1984 620 1241 1[620 1364 1364 1[1241 1364 1241 +1364 1241 46[1241 47[1364 2[{ TeXBase1Encoding ReEncodeFont }23 +2231.63 /Helvetica-BoldOblique rf /Fr 143[716 1[716 32[716 +22[716 1[716 1[716 716 716 4[716 43[{ TeXBase1Encoding ReEncodeFont }9 +1193.64 /Courier-Bold rf /Fs 133[716 716 716 2[716 716 +716 716 1[716 716 716 716 716 2[716 716 1[716 716 716 +716 716 716 16[716 2[716 716 716 4[716 2[716 8[716 3[716 +1[716 1[716 716 716 2[716 716 716 1[716 716 40[{ + TeXBase1Encoding ReEncodeFont }37 1193.64 /Courier rf +/Ft 107[479 479 24[720 720 720 1039 720 800 400 720 479 +800 800 800 800 1199 319 720 319 319 800 800 400 800 +800 720 800 800 7[960 960 1358 960 1039 879 960 1039 +1[960 1120 1039 1199 800 960 1[400 1039 1120 879 960 +1039 1039 960 960 5[400 400 6[800 800 800 1[400 400 479 +400 2[479 479 319 5[400 29[720 720 2[{ TeXBase1Encoding ReEncodeFont } +66 1439.05 /Helvetica rf /Fu 139[479 1[560 2[879 879 +4[400 1[879 1[800 3[800 9[1358 8[1039 19[479 58[{ + TeXBase1Encoding ReEncodeFont }11 1439.05 /Helvetica-Bold +rf /Fv 134[930 1[930 2[930 930 930 1[930 930 930 930 +930 2[930 930 930 930 930 930 930 1[930 12[930 1[930 +3[930 8[930 2[930 930 1[930 63[{ TeXBase1Encoding ReEncodeFont }25 +1549.74 /Courier-Bold rf /Fw 137[744 1[744 744 3[744 +744 744 744 2[744 2[744 744 3[744 3[744 1[744 91[{ + TeXBase1Encoding ReEncodeFont }13 1239.79 /Courier-Oblique +rf /Fx 134[498 498 719 498 498 277 388 332 498 498 498 +498 775 277 498 1[277 498 498 332 442 498 442 498 442 +9[940 2[609 4[719 719 5[719 2[609 3[719 1[442 1[562 2[277 +1[498 498 498 498 498 1[498 498 1[277 249 332 7[830 34[554 +2[{ TeXBase1Encoding ReEncodeFont }46 996.264 /Times-Roman +rf /Fy 133[744 744 1[744 744 744 744 744 744 2[744 744 +744 744 744 1[744 744 744 744 744 744 744 744 744 1[744 +6[744 1[744 3[744 5[744 2[744 3[744 2[744 744 3[744 10[744 +2[744 744 9[744 36[{ TeXBase1Encoding ReEncodeFont }36 +1239.79 /Courier-BoldOblique rf /Fz 134[930 1[930 930 +1[930 930 930 1[930 930 930 930 1[930 1[930 1[930 1[930 +930 2[930 8[930 51[930 36[{ TeXBase1Encoding ReEncodeFont }18 +1549.74 /Courier-Oblique rf +%DVIPSBitmapFont: FA ectt1440 14.4 31 +/FA 31 121 8000 600 dfs[13 13 104 140 813 46 D[<177817F8EE01FCA21603A2EE07F8A2EE0FF0A2EE1FE0 +A2EE3FC0A21780167FA2EEFF00A24B5AA24B5AA24B5AA25E150FA24B5AA24B5AA24B5AA2 +4BC7FCA25D1401A24A5AA24A5AA24A5AA24A5AA25D143FA24A5AA24AC8FCA2495AA25C13 +03A2495AA2495AA2495AA2495AA25C137FA249C9FCA2485AA2485AA2485AA25B120FA248 +5AA2485AA2485AA248CAFCA25AA2127CA2>46 93 121 210 813 +I[<143C147EA214FEA21301A21303A21307130F131F133F13FF120F127F13FEEAFFFC13 +F8EA7FE01380EA1800C7FCB3B3A9001FB612F84815FC5AA46C15F8>38 +74 116 201 813 49 D[13 +51 104 178 813 58 D[<021FB512F04A14F817FCA317F86E14F091390001FC00B3B3AD +121C123E127F487E15035E150790C7FC6C6CEB1FF001E0133F3A3FFC01FFE090B65A6C5D +6C92C7FC00035C6C14F8D8003F13E0010790C8FC>46 74 119 200 +813 74 D[<007FB5FCB67E81A35D6C91C9FCC648CAFCB3B3ABEF07C0EF0FE0AB007FB8FC +B9FCA56C17C0>51 73 123 200 813 76 D[<003FB812F84817FCB9FCA548C738FE0001 +A9007CEE00F8C81500B3B3AD49B6FC4981A56D92C7FC>54 73 125 +200 813 84 D[<003FB712FC4816FEB9FCA46C16FE6C16FC>48 8 +122 124 813 95 D[<90380FFFC090B512F8000314FE486E7E4881824881D9F8007F49EB +1FFC15076F7E6C4813016C486D7EC97E83163FA6ED7FFF021FB5FC49B6FC130F133F90B7 +FC0003ECFC3F48EBFC004813C04848C7FCEA3FF05BEA7F8090C8FC5A5AA56C157F7E6D14 +FF6D1303D83FF0010F13E001FE90B612F06CB812F87E6C15CF6C15076CECFC036C6C9039 +E0007FF0D90FFEC9FC>53 54 121 180 813 97 D[52 74 125 +200 813 I[<91380FFFC091B512FC010314FF491580011F15C05B4915E09039FFF8007F +4801C0133F4890C7FC485A49EC1FC04848EC0F80484891C7FC5B485AA25B127F90CAFCA3 +5A5AA97E7EA27FA26C7E6DEC01F0001FED03F87F6C6C14076D15F06CB4140F6C6DEB1FE0 +02F0137F6C9039FE01FFC06C90B61280013F15006D5C6D5C010314F0010014C0DA1FFCC7 +FC>45 54 119 180 813 I[<92380FFFC04B7FA581ED000FAEEC7FC0903803FFF8010F13 +FE49EBFF8F017F14CF90B612EF4815FF48EBF01FEC80073907FE000148487F49147F485A +49143F4848141FA249140F127F90C8FCA25AA25AA97EA27E161F7FA26C6C143FA26C6C14 +7F6D14FF000F5C7FD807FE13076D5B6CD9E07FEBFFE06C90B500EF13F06C15CF6D148F6D +140F010F13FC0103D9F00713E001000180C8FC>52 74 123 200 +813 I[47 54 121 180 813 I[47 +74 124 201 813 I[55 81 +125 179 813 I[54 73 125 200 813 +I[<143C147E14FF497FA46D90C8FC147E143C91C9FCAD001FB5FC48805AA37E7EC7123F +B3B3003FB612FE4881B81280A36C16006C5D>41 74 118 201 813 +I[55 73 125 200 813 107 D[<003FB57E4880B6FCA37E7EC7121FB3B3 +B3A5003FB712E04816F0B812F8A36C16F06C16E0>45 73 120 200 +813 I[60 +52 128 179 813 I[54 52 125 179 813 I[46 54 121 180 813 I[52 79 125 +179 813 I[56 +79 123 179 813 I[51 52 123 179 +813 I[<903901FFF00F011F01FE138090B6129F000315FF5A5A5A48EB001FD87FF01307 +01C01301497F48C8127F5A163FA37E7E6DEC1F0001E091C7FCEA3FFC381FFFE06C13FF6C +14FC0001ECFF806C6C14E0010F14F8010014FE02077FDA001F1380030113C09238007FE0 +007C151F00FEED0FF0160717F86C1503A37F7F16076DEC0FF07F6D143F01FEECFFE09026 +FFC00713C091B6FC178000FC1600013F14FC010F14F0D8F80314C02778007FFCC7FC>45 +54 120 180 813 I[<147814FC1301AD003FB712F84816FCB8FCA46C16F8260001FCC8FC +B3A6173E177FA86E14FFEE01FE6D6C130392388007FC91387FF01F92B512F86E14F017E0 +6E1480020714006E13FC9138007FC0>48 67 125 193 813 I[54 52 125 +178 813 I[<267FFFE090381FFFF8B56C4913FC6E5BA34A7F6C496D13F8D800FCC8EAFC +00A26D1401017E5DA2017F14036D5DA26E1307011F5DA26E130F010F5DA26E131F01075D +A26E133F010392C7FCA26E5B0101147EA26E13FE01005CA2ECFE01027E5BA2EC7F03023F +5BA21587021F5BA215CF020F5BA215FF6E5BA36E90C8FCA2EC00FC>54 +52 125 178 813 I[<267FFFF090380FFFFEB56C4913FFA56C496D13FED807F0C8EA0FE0 +000317C0A56D151F00011780A56C6CED3F00157FEDFF805C16C0A2017E157E4A13E015F7 +A2140716F0013F01E7137C03E313FC140F16F8A215C1D91F1F5C029F13FC16FD158014BF +010F5DA29138FF007FA34A133F01075DA24A131F6D486D5A>56 52 +126 178 813 I[<263FFFF090B512E0486D4814F014FCA314F86C496C14E026003F8090 +380FE0006D6C495A6D6C495A6E137F010792C7FC6D6C13FE6D6C485AEB00FE6E485A6E48 +5A91383F8FE091381FCFC0EC0FFF5E6E90C8FC6E5A14016E5A14014A7E814A7FEC0FDF91 +381F8FC0ED87E091383F07F091387E03F8ECFE0149486C7E4A7F0103147F49486D7E4948 +131F4A80011F6E7E49486D7E49C7FC267FFFF090383FFFF0B56C4913F818FCA318F86C49 +6D13F0>54 51 125 178 813 I E +%EndDVIPSBitmapFont +/FB 134[634 1[634 634 634 634 634 634 1[634 634 634 634 +634 2[634 634 634 634 634 634 634 634 634 1[634 6[634 +634 634 1[634 634 634 1[634 634 634 634 634 2[634 1[634 +1[634 634 634 1[634 8[634 3[634 1[634 634 634 634 634 +634 634 2[634 634 1[634 38[{ TeXBase1Encoding ReEncodeFont }51 +1057.26 /Courier rf /FC 136[634 634 2[634 634 1[634 634 +13[634 97[{ TeXBase1Encoding ReEncodeFont }7 1057.26 +/Courier-Bold rf /FD 218[507 37[{ TeXBase1Encoding ReEncodeFont }1 +845.717 /Courier rf /FE 133[775 862 862 1206 862 947 +516 862 603 947 947 947 947 1378 431 862 431 431 947 +947 516 862 947 862 947 862 7[1034 1034 1463 1034 1119 +947 1034 1119 1[1034 1206 1119 1291 947 1119 1[431 1119 +1206 947 1034 1119 1119 1119 1119 10[862 1[862 1[862 +3[431 516 431 2[516 516 37[947 2[{ TeXBase1Encoding ReEncodeFont }58 +1549.74 /Helvetica-Bold rf /FF 133[930 1034 1034 1447 +1034 1136 619 1034 723 1[1136 1136 1136 1653 517 1034 +1[517 1136 1136 619 1034 1136 1034 1136 1034 46[1034 +50[{ TeXBase1Encoding ReEncodeFont }25 1859.69 /Helvetica-BoldOblique +rf /FG 134[1034 1034 1447 1034 1136 619 1034 723 1[1136 +1136 1136 1653 517 1034 1[517 1136 1136 619 1034 1136 +1034 1136 1034 7[1240 1[1756 1240 1343 1136 1240 1343 +1447 1240 1447 1343 1549 1136 1343 1[517 1343 1447 1136 +1240 1343 1343 1343 1343 6[619 7[1034 1034 1034 517 1[619 +3[619 619 37[1136 2[{ TeXBase1Encoding ReEncodeFont }55 +1859.69 /Helvetica-Bold rf /FH 129[744 1[744 1[744 744 +744 744 744 744 744 744 744 744 744 744 744 744 744 744 +744 744 744 744 744 744 744 744 744 744 1[744 1[744 744 +744 1[744 1[744 744 744 744 744 744 744 744 744 744 744 +744 744 1[744 744 744 744 744 744 744 744 744 744 744 +744 744 2[744 744 744 744 744 744 744 744 744 744 744 +744 744 744 744 744 744 744 744 744 744 744 744 744 744 +744 33[{ TeXBase1Encoding ReEncodeFont }85 1239.79 /Courier-Bold +rf /FI 193[796 62[{ TeXaae443f0Encoding ReEncodeFont }1 +996.264 /CMMI9 rf /FJ 163[595 23[595 9[595 20[595 1[595 +35[{ TeXBase1Encoding ReEncodeFont }5 991.837 /Courier +rf /FK 193[943 1[943 60[{ TeXaae443f0Encoding ReEncodeFont }2 +1212.12 /CMMI10 rf /FL 134[1241 1241 1736 1241 1364 743 +1241 868 1364 1364 1364 1364 1984 620 1241 1[620 1364 +1364 743 1241 1364 1241 1364 1241 6[1364 1[1488 2107 +1488 1611 1364 1488 1611 1736 1488 1736 1611 1859 1364 +1611 1241 620 1611 1736 1364 1488 1611 1611 1611 1611 +1[1364 4[743 1241 1241 1241 1241 1241 1241 1241 1241 +1241 1241 620 620 1[620 2[743 743 37[1364 2[{ + TeXBase1Encoding ReEncodeFont }67 2231.63 /Helvetica-Bold +rf /FM 106[434 149[{ TeXBase1Encoding ReEncodeFont }1 +1239.79 /Times-Roman rf /FN 133[1339 2[2083 1489 1636 +892 1489 1042 2[1636 1636 2381 744 1489 1[744 1636 1636 +892 1489 1636 1489 1636 1489 17[2083 5[744 2[1636 1786 +1[1933 1933 1933 65[{ TeXBase1Encoding ReEncodeFont }28 +2677.96 /Helvetica-Bold rf /FO 134[2573 2573 3600 2573 +2827 1541 2573 1800 1[2827 2827 2827 4114 1286 2573 1[1286 +2827 2827 1541 2573 2827 2573 2827 2573 6[2827 1[3086 +1[3086 3341 2827 3086 2[3086 1[3341 3855 2827 2[1286 +3341 3600 2827 3086 3341 3341 3341 3341 62[2827 2[{ + TeXBase1Encoding ReEncodeFont }43 4627.42 /Helvetica-BoldOblique +rf /FP 123[744 5[744 3[744 744 744 744 744 744 744 744 +744 744 744 744 744 744 744 744 744 744 744 744 744 744 +744 744 744 744 1[744 744 744 744 744 744 744 744 744 +744 744 744 744 744 744 744 744 744 744 744 744 744 744 +744 744 744 744 744 744 744 744 744 744 744 744 1[744 +744 744 744 744 744 744 744 744 744 744 744 744 744 744 +744 744 744 744 744 744 744 744 744 744 744 744 33[{ + TeXBase1Encoding ReEncodeFont }90 1239.79 /Courier rf +%DVIPSBitmapFont: FQ ectt1095 10.95 69 +/FQ 69 127 8000 600 dfs[<90390780078090390FC00FC0A9011F131F02801380A400 +3FB612FC4815FEB8FCA36C15FE3A003F003F00A2495B017E137EA901FE13FE495BA2007F +B612FEB8FCA36C15FE6C15FC3A01F801F800A30003130301F05BA96C486C5A>40 +56 125 183 627 35 D[<14F0497EA5EB07FE90383FFFE090B512F80003804880488026 +1FFDFB13803A3FE1F87FC001C1131FD87F81EB0FE001011307007E15F012FE12FC150FA3 +ED07E012FE007E91C7FC127FEA3F8113E1EA1FF9EA0FFF7E6CEBFF806C14E06C6C13F801 +0F7F01017F8102F81380ED7FC0151FED0FE0A200181407007E15F0150312FFA312FE1507 +A2007E15E0007F140FED1FC0D83FC1133F01E1EBFF80261FFDFB13006CB55A6C5C6C5CC6 +5C013F13C0D907FEC7FCEB01F8A66D5A>36 71 123 190 627 I[ +34 39 122 174 627 42 D[<007FB512F8B612FCA46C14F8>30 6 +120 150 627 45 D[<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00>11 +11 110 138 627 I[<16E0ED01F01503A2150716E0150F16C0151F1680153F16005D157E +15FE5DA214015D14035D14075D140F5D141F5D143F92C7FCA25C147E14FE5C13015C1303 +5C13075C130F5CA2131F5C133F91C8FC5B137E13FE5B12015B12035BA212075B120F5B12 +1F5B123F90C9FC5A127E12FE5AA25A1278>36 71 123 190 627 +I[38 +58 124 184 627 I[30 57 119 +184 627 I[36 57 123 184 627 I[38 58 124 184 627 I[40 57 125 184 627 I[<000FB6FC481580A416000180C8FCAEEB83FE90389FFFC0 +90B512F08181819038FE03FFD9F000138049133F0180EB1FC0150F6CC713E0C81207A216 +F01503A4123C127EB4FC150716E0150F5A007EEC1FC0007F143F6DEB7F803A3FC001FF00 +391FF80FFE90B55A6C5C00035C6C14C06C6C90C7FCEB0FF8>36 57 +123 183 627 I[36 58 123 184 627 I[<1278B712F816FCA416F800FCC7EA07F0ED0FE0ED1FC000 +78EC3F80C8FCED7F0015FE4A5A5D14034A5A5D140F5D141F5D143F92C7FC5C147E14FE5C +A213015CA2495AA313075CA3130F5CA5131F5CAA6DC8FC>38 58 +124 184 627 I[38 +58 124 184 627 I[36 +58 123 184 627 I[<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCB1121FEA +3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00>11 39 110 166 627 +I[<143F4A7EA24A7EA4903801F3E0A501037FA314E101077FA414C0010F7FA490381F80 +7EA4013F137F4A7EA4017E6D7EA2017FB5FCA290B67EA49038FC000F48486D7EA4000381 +491303A3D87FFF90383FFF80A2B56C4813C0A26C496C1380A2>42 +57 126 184 627 65 D[<007FB512E0B612FC15FF168016C06C15E03A03F0001FF0150F +ED03F8A2150116FC1500A5150116F8150316F01507ED1FE0ED7FC090B61280160015FC15 +FF16C016E09039F0000FF0ED03F8ED01FC150016FE167EA2163FA6167F167E16FEA2ED01 +FC1507ED1FF8007FB6FCB712F016E0168016006C14F8>40 56 126 +183 627 I[<91387F8038903903FFE07C010FEBF8FC4913FC4913FF5BEBFFC048EB003F +4848130FEA07F849130748481303A2484813015B123F90C8FCA25A127E1678160012FE5A +AC7E127EA21678007F15FC7EA27F121F6D13016C6C14F86D130312076DEB07F0D803FE13 +0F6C6CEB1FE06C9038C07FC06DB512806D14006D5B6D5B010313F09038007F80>38 +58 124 184 627 I[<007FB57EB612F015FC81816C812607E0017F9138003FE0151F6F7E +6F7E15036F7EA26F7EA2167E167F82A41780161FAB163F1700A35E167EA216FE4B5AA24B +5A15074B5A151F4B5A4AB45A007FB65AB7C7FC5D5D15F06C1480>41 +56 126 183 627 I[<007FB612FCB77EA47ED803F0C7127EA7163C93C7FCA515F04A7EA4 +90B5FCA6EBF001A46E5A92C8FCA5160FEE1F80A9007FB7FCB8FCA46C1600>41 +56 125 183 627 I[<007FB612FEB8FCA47ED803F0C7123FA7161E1600A6157815FCA490 +B5FCA6EBF000A4157892C7FCAE387FFFE0B57EA46C5B>40 56 125 +183 627 I[<3B7FFF807FFF80A2B56CB512C0A26C496C1380A23B03F00003F000B290B6 +FCA69038F00003B3A23B7FFF807FFF80A2B56CB512C0A26C496C1380A2>42 +56 126 183 627 72 D[<007FB512FEB7FCA46C14FE390007E000B3B3A8007FB512FEB7 +FCA46C14FE>32 56 121 183 627 I[40 56 125 183 627 75 D[<387FFFF080B5FCA27E5CD801F8C8 +FCB3B0161E163FA9007FB7FCA2B8FCA27E16FE>40 56 125 183 +627 I[44 56 127 183 627 I[42 56 +126 183 627 I[<90383FFFC00003B512FC488048804815804815C0EBF00001C0133F48 +48EB1FE090C7120F007E1407A400FE15F0481403B3A96C1407A2007E15E0A3007F140FA2 +6D131F6C6CEB3FC09038F801FF90B6FC6C15806C15006C5C6C5CD8003F13C0>36 +58 123 184 627 I[<007FB512E0B612F815FEEDFF8016C06C15E03A03F0007FF0151FED +07F81503ED01FCA2150016FE167EA616FE16FC1501A2ED03F81507ED1FF0157F90B612E0 +16C01680EDFE0015F815E001F0C8FCB0387FFF80B57EA46C5B>39 +56 125 183 627 I[<90383FFFC00003B512FC488048804815804815C0EBF00001C0133F +4848EB1FE090C7120FA2007E1407A300FE15F0481403B3A814FC130139FE00FE07007E15 +E0147FA2007FEB3F8FA29038801FDFD83FC0EBFFC0EBF00F90B6FC6C15806C15006C5C6C +5CEA003FEB00016E7EA2157FA2ED3F80A2ED1FC0A2ED0FE0A2ED07C0>36 +70 123 184 627 I[<387FFFFEECFFC0B612F015FC6C80812603F0037F9138007FC0153F +6F7E150F1507821503A515075E150F151F4B5A157F913803FF8090B6C7FC5D5D5D818190 +38F003FF9138007F80153F151F82150FA9EEC1E0EEC3F0A316E33A7FFF8007E7EEFFE0B5 +12C06F13C06C497E6F1380C9EA3E00>44 57 126 183 627 I[<90391FF8038090397FFF +07C048B512C74814EF4814FF5A381FF80F383FC00349C6FC48C7127F007E143F12FE4814 +1FA2150FA46CEC0780007E91C7FC127F6C7E7FEA1FF86CB47E6C13F86CEBFF806C14E06C +6C13F8010F7F01007FEC0FFF02001380ED3FC0151FED0FE01507A216F00078140312FCA5 +6C140716E06C140F7F6DEB1FC001F0137F9039FE01FF8090B612005D00FD5CD8F87F5B01 +1F13E0D8700390C7FC>36 58 123 184 627 I[<007FB71280B812C0A53AFC003F000FA7 +0078ED0780C791C7FCB3B290381FFFFE497FA46D5B>42 56 126 +183 627 I[<3B7FFF801FFFE0B56C4813F0A46C496C13E0D803F0C7EAFC00B3B16D1301 +A200015DA26D13036C6C495AA2017F495AEC801F90393FE07FC06DB55A6D91C7FC6D5B6D +5B010013F0EC3FC0>44 57 127 183 627 I[42 57 126 183 627 I[44 57 127 +183 627 I[42 56 126 183 627 I[<003FB612F84815FCA5007EC7EA03F8ED07F0150F16E0ED +1FC0153F1680003CEC7F00C85A5D4A5A14035D4A5A140F5D4A5A143F5D4AC7FC5C5C495A +13035C495A130F5C495A133F5C49C8FC5B5B48481478000315FC5B485A120F5B485A123F +5B48C8FC90B6FCB7FCA46C15F8>38 56 124 183 627 90 D[<127812F87EA27E127E12 +7F7E7F121F7F120F7F12077F1203A27F12017F12007F137E137F7F80131F80130FA28013 +0780130380130180130080147E147F80A281141F81140F811407811403811401811400A2 +81157E157F811680151F16C0150F16E0150716F01503A21501ED00E0>36 +71 123 190 627 92 D[<007FB612E0A2B712F0A36C15E0A2>36 +7 123 125 627 95 D[<131C133E13FF5A5AEA07FCEA0FF813F0EA1FC0A2EA3F8013005A +127EA212FE5AA4EAFFE013F013F813FC127FA2123FA2EA1FF8EA0FF0EA03E0>16 +31 113 190 627 I[41 42 123 168 627 I[41 57 +126 183 627 I[<903803FFC0010F13F8013F7F90B57E488048158048EB007FEA0FF85B +485A49EB3F004848131E90C9FC5A127EA212FE5AA87E127EA2127FED07806C6CEB0FC07F +6C6C131F6D1480D80FFC137F3A07FF81FF006C90B5FC6C5C6C5C013F13F0010F13C0D903 +FEC7FC>34 42 121 168 627 I[<913803FF804A7FA480EC000FAAEB03FCEB1FFF017F13 +CF90B512EF4814FF5A3807FE07380FF801391FF0007F01C0133F485A151F48C7FC150F12 +7E12FEA25AA87E007E141FA2127F6C6C133F157F6C7E6D13FF380FF8012607FE0713FF90 +B712806C14EF6C14CF6C6C138F90261FFE071300D907F8C8FC>41 +57 125 183 627 I[35 +42 123 168 627 I[<4AB4FC020713C0021F13E0147F91B512F0A249130FEB03FC9138F8 +07E0903907F001804AC7FCA8007FB61280B712C0A46C1580260007E0C7FCB3A9003FB512 +FC4880A46C5C>36 57 125 184 627 I[<903903F801FE903A1FFF07FF80017F13DF90B7 +12C05A5AD9FE0FEB0F803B07F803FC070048486C6CC7FCEBE00049137E001F147F497FA6 +6D5B000F147E6D13FEEBF0016C6C485A3903FE0FF890B5FC485C5D485C019F90C8FCEB83 +F80180C9FCA37FEA07E490B512F06C14FF4815C0488148813A3FC0001FF890C7EA01FC00 +7E6E7E007C157E00FC153E48153F82A46C5D007C153E007F15FE6C6C495A01E01307D81F +FEEB7FF86CB65A6C5D000115806C92C7FC011F13F8010313C0>42 +62 125 167 627 I[42 56 126 183 627 I[33 57 +121 184 627 I[28 78 124 184 627 I[43 56 126 183 627 I[<387FFFF080B5FCA27EA2EA +0001B3B3A8007FB612E0A2B712F0A26C15E0A2>36 56 123 183 +627 I[<903901F801F83A7F8FFC0FFC3AFFDFFE1FFE90B5487E92B51280A23A7FFE1FFE +1F3B07FC0FFC0FC001F813F89039F007F00701E013E0A301C013C0B3A33B7FFC3FFC3FFC +D8FFFE01FE13FE027F137FA2023F133FD87FFC01FC13FC>47 40 +128 167 627 I[42 +40 126 167 627 I[36 42 123 168 +627 I[41 60 126 167 627 I[41 40 126 167 627 114 D[<90381FFC0E48B5129F000714 +FF5A5A5A387FF007EB800000FEC77EA24880A37E007F141E01C090C7FCEA3FFC381FFFF0 +6CEBFF80000314E0C614F8011F13FE9038007FFF02011380EC007F0078EC1FC000FC140F +ED07E0A27EA27E6D130F6DEB1FC06D133F9039FC01FF8090B6FC16005D00F814F8013F13 +E0D8700790C7FC>35 42 122 168 627 I[<130F497EAA007FB612C0B712E0A46C15C026 +001F80C7FCB216F0ED01F8A5ECC003ED07F090380FE00F9138F81FE06DB512C0A26D1480 +6DEBFE009038007FF8EC1FE0>37 51 126 177 627 I[<3A7FF001FFC0486C487FA4007F +7F0001EB0007B3A4150FA2151F153F6D137F6CB448B5128091B612C07FA26D13E7010F01 +831380D903FEC8FC>42 40 126 166 627 I[42 +39 126 166 627 I[<3B7FFF801FFFE06E5AB515F0A26C16E04A7ED807C0C7EA3E00A36D +147E0003157CA56C6C5CEC0F80EC1FC0EC3FE0A36C6C486C5AEC7DF1A214FD15F914F9D9 +78F85B1379137DA2ECF079157B013FEB7FC014E0153FA2ECC01F6D486C5A>44 +39 127 166 627 I[<3A3FFF80FFFE4801C17FA46C01805B27007E001FC7FC6D5B157E6D +6C5AEB0FC0903807C1F8ECE3F0903803F3E0EB01FF6D5B5D6EC8FC80A25C4A7E81903801 +F3E0903803E3F0EB07E1ECC0F849487E011F137E90383F003E013E7F017E80496D7E3B7F +FF807FFF806EB5FCB515C0A26C16804A7E>42 39 126 166 627 +I[<3B7FFF803FFF80B54913C014C0A214806C6E13803B01F00003E0007F12004B5A7F13 +7C017E495A133EA2013F49C7FC7FA290380F803EA214C001075BA214E001035BA2EB01F0 +5D14F1EB00F95DA2147BEC7FC0143FA25D141FA292C8FCA3143EA35CA214FC000F5BEA1F +81EA3FC1EBC3F0EB07E0131FEBFFC06C5BA26C48C9FC6C5AEA03F0>42 +60 126 166 627 I[<003FB612F84815FCA416F8007EC7EA0FF0ED1FE0ED3FC0ED7F80ED +FF00003C495AC7485A4A5A4A5A4A5A4A5A4A5A4AC7FC495A495A495A495A495A495A495A +49C7123C4848147E485A485A485A485A485A48B612FEB7FCA46C15FC>39 +39 125 166 627 I[34 11 +122 183 627 126 D E +%EndDVIPSBitmapFont +/FR 133[603 688 688 1034 688 775 431 603 603 1[775 775 +775 1119 431 688 1[431 775 775 431 688 775 688 775 775 +6[862 862 947 1[947 1119 862 775 947 1119 947 1119 1034 +1291 862 2[516 1119 1119 947 947 1119 1034 947 947 7[775 +775 775 775 775 775 775 775 775 775 1[387 516 387 41[775 +2[{ TeXBase1Encoding ReEncodeFont }61 1549.74 /Times-Italic +rf /FS 135[1787 2[1963 1070 1787 1250 1[1963 1963 1963 +2857 893 2[893 1963 1963 1070 1787 1963 1[1963 1787 12[1963 +7[1963 5[1963 2143 1[2320 1[2320 7[1787 1787 1787 1787 +1787 1787 1787 1787 1787 1787 1[893 46[{ TeXBase1Encoding ReEncodeFont } +35 3213.5 /Helvetica-Bold rf /FT 81[707 20[911 4[413 +413 25[465 465 671 465 465 258 362 310 1[465 465 465 +723 258 465 258 258 465 465 310 413 465 413 465 413 8[671 +878 671 671 568 517 620 671 517 671 671 827 568 1[362 +310 671 1[517 568 671 620 620 671 7[465 465 465 465 1[465 +465 465 465 465 258 232 310 232 41[517 2[{ + TeXBase1Encoding ReEncodeFont }64 929.846 /Times-Roman +rf /FU 81[1178 25[688 688 24[688 775 775 1119 775 775 +431 603 516 775 775 775 775 1206 431 775 431 431 775 +775 516 688 775 688 775 688 516 775 727 516 1[516 947 +1119 1119 1463 1119 1119 947 862 1034 1119 862 1119 1119 +1378 947 1119 603 516 1119 1119 862 947 1119 1034 1034 +1119 1427 688 3[431 431 775 775 775 775 775 775 775 775 +775 775 431 387 516 387 874 775 516 516 516 1[1291 1[775 +632 516 29[862 862 2[{ TeXBase1Encoding ReEncodeFont }89 +1549.74 /Times-Roman rf /FV 134[688 775 1[688 862 431 +603 603 1[775 775 862 1206 431 775 1[431 862 775 516 +688 775 688 1[775 13[862 2[947 3[947 3[1206 1[1034 1034 +3[1034 6[516 13[387 41[862 2[{ TeXBase1Encoding ReEncodeFont }31 +1549.74 /Times-BoldItalic rf /FW 86[1060 46[619 697 697 +1007 697 697 388 543 464 697 697 697 697 1085 388 697 +388 388 697 697 464 619 697 619 697 619 6[852 1007 1007 +1317 1007 1007 852 775 930 1007 775 1007 1007 1240 852 +1007 543 464 1007 1007 775 852 1007 930 930 1007 1[619 +4[388 697 697 697 697 697 697 697 697 697 697 388 349 +464 349 2[464 464 464 35[775 775 2[{ TeXBase1Encoding ReEncodeFont }74 +1394.77 /Times-Roman rf /FX 130[611 1[611 688 775 775 +1119 775 862 516 603 688 862 862 775 862 1291 431 862 +516 431 862 775 516 688 862 688 862 775 1[775 900 3[1034 +1[1119 1[1119 1119 1034 862 1119 1206 947 1206 1119 1463 +1034 1206 775 603 1206 1206 947 1034 1119 1119 1034 1119 +1[775 4[516 775 775 775 775 775 775 775 775 775 775 431 +387 516 387 4[516 1[1550 775 2[516 30[862 2[{ + TeXBase1Encoding ReEncodeFont }75 1549.74 /Times-Bold +rf /FY 139[620 4[1241 1241 4[495 3[1241 1241 1116 15[1488 +13[1488 69[{ TeXBase1Encoding ReEncodeFont }9 2231.63 +/Helvetica-Oblique rf /FZ 135[1928 2784 1[2144 1072 1928 +1284 3[2144 1[856 1928 1[856 3[2144 1[1928 1[2144 13[2572 +6[2144 6[2572 69[{ TeXBase1Encoding ReEncodeFont }16 +3856.21 /Helvetica rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 8000dpi +TeXDict begin + end +%%EndSetup +%%Page: 1 1 +TeXDict begin 1 0 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a -8000 +-8000 a +SDict begin [ /Title () /Subject () /Creator (LaTeX with hyperref package) +/Author () /Producer (dvips + Distiller) /Keywords () /DOCINFO pdfmark +end + -8000 -8000 a Black 0 TeXcolorgray -30 -1358 +a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray 0 TeXcolorgray -30 -1358 +a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmark +end + -30 -1358 a Black Black -30 +2383 a +SDict begin [ /Page 1 /View [ /Fit ] /PageMode /UseOutlines /DOCVIEW +pdfmark end + -30 2383 a -30 2383 a +SDict begin [ {Catalog} << /ViewerPreferences << >> >> /PUT pdfmark +end + -30 2383 a -30 2383 a +SDict begin H.S end + -30 +2383 a -30 2383 a +SDict begin 12 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (Doc-Start) cvn H.B /DEST pdfmark +end + -30 2383 a -30 +2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 12 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (0) cvn H.B /DEST pdfmark end + -30 +2383 a 2601 5220 a FZ(Slac)-77 b(kw)-58 b(are)1073 b(Lin)-39 +b(ux)1072 b(Essentials)p -30 9464 52581 222 v Black Black +eop end +%%Page: 2 2 +TeXDict begin 2 1 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.2) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black Black Black eop end +%%Page: 3 3 +TeXDict begin 3 2 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.3) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 2601 5220 a FZ(Slac)-77 b(kw)-58 +b(are)1073 b(Lin)-39 b(ux)1072 b(Essentials)p -30 15489 +52581 222 v 18350 19139 a FY(Second)619 b(Edition)-30 +55785 y +SDict begin H.S end + -30 55785 a -30 55785 a +SDict begin 18.2 H.A end + -30 55785 a -30 55785 +a +SDict begin [ /View [/XYZ H.V] /Dest (5) cvn H.B /DEST pdfmark end + -30 55785 a 14290 63035 a + currentpoint currentpoint translate 0.75 0.75 scale neg exch neg exch +translate + 14290 63035 a @beginspecial +200 @llx 400 @lly 478 @urx 487 @ury 2780 @rwi @setspecial +%%BeginDocument: slackware_logo.eps +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Adobe Illustrator(r) 6.0 +%%For: (Kristina Fuxell) (Walnut Creek CDROM) +%%Title: (slack7_logo.eps) +%%CreationDate: (10/12/99) (11:41 AM) +%%BoundingBox: 200 400 478 487 +%%HiResBoundingBox: 200.4342 400.0493 477.3733 486.4154 +%%DocumentProcessColors: Black +%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.0 0 +%%+ procset Adobe_Illustrator_AI6_vars Adobe_Illustrator_AI6 +%%+ procset Adobe_Illustrator_AI5 1.0 0 +%AI5_FileFormat 2.0 +%AI3_ColorUsage: Black&White +%%AI6_ColorSeparationSet: 1 1 (AI6 Default Color Separation Set) +%%+ Options: 1 16 0 1 0 1 1 1 0 1 1 1 1 18 0 0 0 0 0 0 0 0 -1 -1 +%%+ PPD: 1 21 0 0 60 45 2 2 1 0 0 1 0 0 0 0 0 0 0 0 0 0 () +%AI3_TemplateBox: 306 396 306 396 +%AI3_TileBox: 30 33 582 761 +%AI3_DocumentPreview: Macintosh_ColorPic +%AI5_ArtSize: 612 792 +%AI5_RulerUnits: 2 +%AI5_ArtFlags: 1 0 0 1 0 0 1 1 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI5_OpenToView: 130 564 3 1146 827 18 0 1 3 40 +%AI5_OpenViewLayers: 7 +%%EndComments +%%BeginProlog +%%BeginResource: procset Adobe_level2_AI5 1.2 0 +%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) +%%Version: 1.2 +%%CreationDate: (04/10/93) () +%%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved) +userdict /Adobe_level2_AI5 23 dict dup begin + put + /packedarray where not + { + userdict begin + /packedarray + { + array astore readonly + } bind def + /setpacking /pop load def + /currentpacking false def + end + 0 + } if + pop + userdict /defaultpacking currentpacking put true setpacking + /initialize + { + Adobe_level2_AI5 begin + } bind def + /terminate + { + currentdict Adobe_level2_AI5 eq + { + end + } if + } bind def + mark + /setcustomcolor where not + { + /findcmykcustomcolor + { + 5 packedarray + } bind def + /setcustomcolor + { + exch aload pop pop + 4 + { + 4 index mul 4 1 roll + } repeat + 5 -1 roll pop + setcmykcolor + } + def + } if + + /gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def + userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put + userdict /level2? + systemdict /languagelevel known dup + { + pop systemdict /languagelevel get 2 ge + } if + put +/level2ScreenFreq +{ + begin + 60 + HalftoneType 1 eq + { + pop Frequency + } if + HalftoneType 2 eq + { + pop GrayFrequency + } if + HalftoneType 5 eq + { + pop Default level2ScreenFreq + } if + end +} bind def +userdict /currentScreenFreq + level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put +level2? not + { + /setcmykcolor where not + { + /setcmykcolor + { + exch .11 mul add exch .59 mul add exch .3 mul add + 1 exch sub setgray + } def + } if + /currentcmykcolor where not + { + /currentcmykcolor + { + 0 0 0 1 currentgray sub + } def + } if + /setoverprint where not + { + /setoverprint /pop load def + } if + /selectfont where not + { + /selectfont + { + exch findfont exch + dup type /arraytype eq + { + makefont + } + { + scalefont + } ifelse + setfont + } bind def + } if + /cshow where not + { + /cshow + { + [ + 0 0 5 -1 roll aload pop + ] cvx bind forall + } bind def + } if + } if + cleartomark + /anyColor? + { + add add add 0 ne + } bind def + /testColor + { + gsave + setcmykcolor currentcmykcolor + grestore + } bind def + /testCMYKColorThrough + { + testColor anyColor? + } bind def + userdict /composite? + level2? + { + gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore + add add add 4 eq + } + { + 1 0 0 0 testCMYKColorThrough + 0 1 0 0 testCMYKColorThrough + 0 0 1 0 testCMYKColorThrough + 0 0 0 1 testCMYKColorThrough + and and and + } ifelse + put + composite? not + { + userdict begin + gsave + /cyan? 1 0 0 0 testCMYKColorThrough def + /magenta? 0 1 0 0 testCMYKColorThrough def + /yellow? 0 0 1 0 testCMYKColorThrough def + /black? 0 0 0 1 testCMYKColorThrough def + grestore + /isCMYKSep? cyan? magenta? yellow? black? or or or def + /customColor? isCMYKSep? not def + end + } if + end defaultpacking setpacking +%%EndResource +%%BeginProcSet: Adobe_ColorImage_AI6 1.0 0 +userdict /Adobe_ColorImage_AI6 known not +{ + userdict /Adobe_ColorImage_AI6 17 dict put +} if +userdict /Adobe_ColorImage_AI6 get begin + + /initialize + { + Adobe_ColorImage_AI6 begin + Adobe_ColorImage_AI6 + { + dup type /arraytype eq + { + dup xcheck + { + bind + } if + } if + pop pop + } forall + } def + /terminate { end } def + + currentdict /Adobe_ColorImage_AI6_Vars known not + { + /Adobe_ColorImage_AI6_Vars 14 dict def + } if + + Adobe_ColorImage_AI6_Vars begin + /channelcount 0 def + /sourcecount 0 def + /sourcearray 4 array def + /plateindex -1 def + /XIMask 0 def + /XIBinary 0 def + /XIChannelCount 0 def + /XIBitsPerPixel 0 def + /XIImageHeight 0 def + /XIImageWidth 0 def + /XIImageMatrix null def + /XIBuffer null def + /XIDataProc null def + end + + /WalkRGBString null def + /WalkCMYKString null def + + /StuffRGBIntoGrayString null def + /RGBToGrayImageProc null def + /StuffCMYKIntoGrayString null def + /CMYKToGrayImageProc null def + /ColorImageCompositeEmulator null def + + /SeparateCMYKImageProc null def + + /FourEqual null def + /TestPlateIndex null def + + currentdict /_colorimage known not + { + /colorimage where + { + /colorimage get /_colorimage exch def + } + { + /_colorimage null def + } ifelse + } if + + /_currenttransfer systemdict /currenttransfer get def + + /colorimage null def + /XI null def + + + /WalkRGBString + { + 0 3 index + + dup length 1 sub 0 3 3 -1 roll + { + 3 getinterval { } forall + + 5 index exec + + 3 index + } for + + 5 { pop } repeat + + } def + + + /WalkCMYKString + { + 0 3 index + + dup length 1 sub 0 4 3 -1 roll + { + 4 getinterval { } forall + + 6 index exec + + 3 index + + } for + + 5 { pop } repeat + + } def + + + /StuffRGBIntoGrayString + { + .11 mul exch + + .59 mul add exch + + .3 mul add + + cvi 3 copy put + + pop 1 add + } def + + + /RGBToGrayImageProc + { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + dup length 3 idiv string + dup 3 1 roll + + /StuffRGBIntoGrayString load exch + WalkRGBString + end + } def + + + /StuffCMYKIntoGrayString + { + exch .11 mul add + + exch .59 mul add + + exch .3 mul add + + dup 255 gt { pop 255 } if + + 255 exch sub cvi 3 copy put + + pop 1 add + } def + + + /CMYKToGrayImageProc + { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 get exec + dup length 4 idiv string + dup 3 1 roll + + /StuffCMYKIntoGrayString load exch + WalkCMYKString + end + } def + + + /ColorImageCompositeEmulator + { + pop true eq + { + Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat + } + { + Adobe_ColorImage_AI6_Vars /channelcount get 1 ne + { + Adobe_ColorImage_AI6_Vars begin + sourcearray 0 3 -1 roll put + + channelcount 3 eq + { + /RGBToGrayImageProc + } + { + /CMYKToGrayImageProc + } ifelse + load + end + } if + image + } ifelse + } def + + + /SeparateCMYKImageProc + { + Adobe_ColorImage_AI6_Vars begin + + sourcecount 0 ne + { + sourcearray plateindex get exec + } + { + sourcearray 0 get exec + + dup length 4 idiv string + + 0 2 index + + plateindex 4 2 index length 1 sub + { + get 255 exch sub + + 3 copy put pop 1 add + + 2 index + } for + + pop pop exch pop + } ifelse + end + } def + + + /FourEqual + { + 4 index ne + { + pop pop pop false + } + { + 4 index ne + { + pop pop false + } + { + 4 index ne + { + pop false + } + { + 4 index eq + } ifelse + } ifelse + } ifelse + } def + + + /TestPlateIndex + { + Adobe_ColorImage_AI6_Vars begin + /plateindex -1 def + + /setcmykcolor where + { + pop + gsave + 1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub + 0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub + grestore + + 1 0 0 0 FourEqual + { + /plateindex 0 def + } + { + 0 1 0 0 FourEqual + { + /plateindex 1 def + } + { + 0 0 1 0 FourEqual + { + /plateindex 2 def + } + { + 0 0 0 1 FourEqual + { + /plateindex 3 def + } + { + 0 0 0 0 FourEqual + { + /plateindex 5 def + } if + } ifelse + } ifelse + } ifelse + } ifelse + pop pop pop pop + } if + plateindex + end + } def + + + /colorimage + { + Adobe_ColorImage_AI6_Vars begin + /channelcount 1 index def + /sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def + + 4 sourcecount add index dup + 8 eq exch 1 eq or not + end + + { + /_colorimage load null ne + { + _colorimage + } + { + Adobe_ColorImage_AI6_Vars /sourcecount get + 7 add { pop } repeat + } ifelse + } + { + dup 3 eq + TestPlateIndex + dup -1 eq exch 5 eq or or + { + /_colorimage load null eq + { + ColorImageCompositeEmulator + } + { + dup 1 eq + { + pop pop image + } + { + Adobe_ColorImage_AI6_Vars /plateindex get 5 eq + { + gsave + + 0 _currenttransfer exec + 1 _currenttransfer exec + eq + { 0 _currenttransfer exec 0.5 lt } + { 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse + + { { pop 0 } } { { pop 1 } } ifelse + systemdict /settransfer get exec + } if + + _colorimage + + Adobe_ColorImage_AI6_Vars /plateindex get 5 eq + { + grestore + } if + } ifelse + } ifelse + } + { + dup 1 eq + { + pop pop + image + } + { + pop pop + + Adobe_ColorImage_AI6_Vars begin + sourcecount -1 0 + { + exch sourcearray 3 1 roll put + } for + + /SeparateCMYKImageProc load + end + + systemdict /image get exec + } ifelse + } ifelse + } ifelse + } def + + /XI + { + Adobe_ColorImage_AI6_Vars begin + gsave + /XIMask exch 0 ne def + /XIBinary exch 0 ne def + pop + pop + /XIChannelCount exch def + /XIBitsPerPixel exch def + /XIImageHeight exch def + /XIImageWidth exch def + pop pop pop pop + /XIImageMatrix exch def + + XIBitsPerPixel 1 eq + { + XIImageWidth 8 div ceiling cvi + } + { + XIImageWidth XIChannelCount mul + } ifelse + /XIBuffer exch string def + + XIBinary + { + /XIDataProc { currentfile XIBuffer readstring pop } def + currentfile 128 string readline pop pop + } + { + /XIDataProc { currentfile XIBuffer readhexstring pop } def + } ifelse + + 0 0 moveto + XIImageMatrix concat + XIImageWidth XIImageHeight scale + + XIMask + { + XIImageWidth XIImageHeight + false + [ XIImageWidth 0 0 XIImageHeight neg 0 0 ] + /XIDataProc load + + /_lp /null ddef + _fc + /_lp /imagemask ddef + + imagemask + } + { + XIImageWidth XIImageHeight + XIBitsPerPixel + [ XIImageWidth 0 0 XIImageHeight neg 0 0 ] + /XIDataProc load + + XIChannelCount 1 eq + { + + gsave + 0 setgray + + image + + grestore + } + { + false + XIChannelCount + colorimage + } ifelse + } ifelse + grestore + end + } def + +end +%%EndProcSet +%%BeginResource: procset Adobe_Illustrator_AI5 1.1 0 +%%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog) +%%Version: 1.1 +%%CreationDate: (3/7/1994) () +%%Copyright: ((C) 1987-1994 Adobe Systems Incorporated All Rights Reserved) +currentpacking true setpacking +userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin +put +/_eo false def +/_lp /none def +/_pf +{ +} def +/_ps +{ +} def +/_psf +{ +} def +/_pss +{ +} def +/_pjsf +{ +} def +/_pjss +{ +} def +/_pola 0 def +/_doClip 0 def +/cf currentflat def +/_tm matrix def +/_renderStart +[ +/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 +] def +/_renderEnd +[ +null null null null /i1 /i1 /i1 /i1 +] def +/_render -1 def +/_rise 0 def +/_ax 0 def +/_ay 0 def +/_cx 0 def +/_cy 0 def +/_leading +[ +0 0 +] def +/_ctm matrix def +/_mtx matrix def +/_sp 16#020 def +/_hyphen (-) def +/_fScl 0 def +/_cnt 0 def +/_hs 1 def +/_nativeEncoding 0 def +/_useNativeEncoding 0 def +/_tempEncode 0 def +/_pntr 0 def +/_tDict 2 dict def +/_wv 0 def +/Tx +{ +} def +/Tj +{ +} def +/CRender +{ +} def +/_AI3_savepage +{ +} def +/_gf null def +/_cf 4 array def +/_if null def +/_of false def +/_fc +{ +} def +/_gs null def +/_cs 4 array def +/_is null def +/_os false def +/_sc +{ +} def +/_pd 1 dict def +/_ed 15 dict def +/_pm matrix def +/_fm null def +/_fd null def +/_fdd null def +/_sm null def +/_sd null def +/_sdd null def +/_i null def +/discardSave null def +/buffer 256 string def +/beginString null def +/endString null def +/endStringLength null def +/layerCnt 1 def +/layerCount 1 def +/perCent (%) 0 get def +/perCentSeen? false def +/newBuff null def +/newBuffButFirst null def +/newBuffLast null def +/clipForward? false def +end +userdict /Adobe_Illustrator_AI5 known not { + userdict /Adobe_Illustrator_AI5 91 dict put +} if +userdict /Adobe_Illustrator_AI5 get begin +/initialize +{ + Adobe_Illustrator_AI5 dup begin + Adobe_Illustrator_AI5_vars begin + discardDict + { + bind pop pop + } forall + dup /nc get begin + { + dup xcheck 1 index type /operatortype ne and + { + bind + } if + pop pop + } forall + end + newpath +} def +/terminate +{ + end + end +} def +/_ +null def +/ddef +{ + Adobe_Illustrator_AI5_vars 3 1 roll put +} def +/xput +{ + dup load dup length exch maxlength eq + { + dup dup load dup + length 2 mul dict copy def + } if + load begin + def + end +} def +/npop +{ + { + pop + } repeat +} def +/sw +{ + dup length exch stringwidth + exch 5 -1 roll 3 index mul add + 4 1 roll 3 1 roll mul add +} def +/swj +{ + dup 4 1 roll + dup length exch stringwidth + exch 5 -1 roll 3 index mul add + 4 1 roll 3 1 roll mul add + 6 2 roll /_cnt 0 ddef + { + 1 index eq + { + /_cnt _cnt 1 add ddef + } if + } forall + pop + exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop +} def +/ss +{ + 4 1 roll + { + 2 npop + (0) exch 2 copy 0 exch put pop + gsave + false charpath currentpoint + 4 index setmatrix + stroke + grestore + moveto + 2 copy rmoveto + } exch cshow + 3 npop +} def +/jss +{ + 4 1 roll + { + 2 npop + (0) exch 2 copy 0 exch put + gsave + _sp eq + { + exch 6 index 6 index 6 index 5 -1 roll widthshow + currentpoint + } + { + false charpath currentpoint + 4 index setmatrix stroke + } ifelse + grestore + moveto + 2 copy rmoveto + } exch cshow + 6 npop +} def +/sp +{ + { + 2 npop (0) exch + 2 copy 0 exch put pop + false charpath + 2 copy rmoveto + } exch cshow + 2 npop +} def +/jsp +{ + { + 2 npop + (0) exch 2 copy 0 exch put + _sp eq + { + exch 5 index 5 index 5 index 5 -1 roll widthshow + } + { + false charpath + } ifelse + 2 copy rmoveto + } exch cshow + 5 npop +} def +/pl +{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform +} def +/setstrokeadjust where +{ + pop true setstrokeadjust + /c + { + curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll curveto + } def + /V + /v load def + /y + { + 2 copy curveto + } def + /Y + /y load def + /l + { + lineto + } def + /L + /l load def + /m + { + moveto + } def +} +{ + /c + { + pl curveto + } def + /C + /c load def + /v + { + currentpoint 6 2 roll pl curveto + } def + /V + /v load def + /y + { + pl 2 copy curveto + } def + /Y + /y load def + /l + { + pl lineto + } def + /L + /l load def + /m + { + pl moveto + } def +} ifelse +/d +{ + setdash +} def +/cf +{ +} def +/i +{ + dup 0 eq + { + pop cf + } if + setflat +} def +/j +{ + setlinejoin +} def +/J +{ + setlinecap +} def +/M +{ + setmiterlimit +} def +/w +{ + setlinewidth +} def +/XR +{ + 0 ne + /_eo exch ddef +} def +/H +{ +} def +/h +{ + closepath +} def +/N +{ + _pola 0 eq + { + _doClip 1 eq + { + _eo {eoclip} {clip} ifelse /_doClip 0 ddef + } if + newpath + } + { + /CRender + { + N + } ddef + } ifelse +} def +/n +{ + N +} def +/F +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc + /_doClip 0 ddef + } + { + _pf + } ifelse + } + { + /CRender + { + F + } ddef + } ifelse +} def +/f +{ + closepath + F +} def +/S +{ + _pola 0 eq + { + _doClip 1 eq + { + gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + _ps + } ifelse + } + { + /CRender + { + S + } ddef + } ifelse +} def +/s +{ + closepath + S +} def +/B +{ + _pola 0 eq + { + _doClip 1 eq + gsave F grestore + { + gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc + /_doClip 0 ddef + } + { + S + } ifelse + } + { + /CRender + { + B + } ddef + } ifelse +} def +/b +{ + closepath + B +} def +/W +{ + /_doClip 1 ddef +} def +/* +{ + count 0 ne + { + dup type /stringtype eq + { + pop + } if + } if + newpath +} def +/u +{ +} def +/U +{ +} def +/q +{ + _pola 0 eq + { + gsave + } if +} def +/Q +{ + _pola 0 eq + { + grestore + } if +} def +/*u +{ + _pola 1 add /_pola exch ddef +} def +/*U +{ + _pola 1 sub /_pola exch ddef + _pola 0 eq + { + CRender + } if +} def +/D +{ + pop +} def +/*w +{ +} def +/*W +{ +} def +/` +{ + /_i save ddef + clipForward? + { + nulldevice + } if + 6 1 roll 4 npop + concat pop + userdict begin + /showpage + { + } def + 0 setgray + 0 setlinecap + 1 setlinewidth + 0 setlinejoin + 10 setmiterlimit + [] 0 setdash + /setstrokeadjust where {pop false setstrokeadjust} if + newpath + 0 setgray + false setoverprint +} def +/~ +{ + end + _i restore +} def +/O +{ + 0 ne + /_of exch ddef + /_lp /none ddef +} def +/R +{ + 0 ne + /_os exch ddef + /_lp /none ddef +} def +/g +{ + /_gf exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _gf setgray + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + ashow + } ddef + /_pjsf + { + _fc + awidthshow + } ddef + /_lp /none ddef +} def +/G +{ + /_gs exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _gs setgray + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/k +{ + _cf astore pop + /_fc + { + _lp /fill ne + { + _of setoverprint + _cf aload pop setcmykcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + ashow + } ddef + /_pjsf + { + _fc + awidthshow + } ddef + /_lp /none ddef +} def +/K +{ + _cs astore pop + /_sc + { + _lp /stroke ne + { + _os setoverprint + _cs aload pop setcmykcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/x +{ + /_gf exch ddef + findcmykcustomcolor + /_if exch ddef + /_fc + { + _lp /fill ne + { + _of setoverprint + _if _gf 1 exch sub setcustomcolor + /_lp /fill ddef + } if + } ddef + /_pf + { + _fc + _eo {eofill} {fill} ifelse + } ddef + /_psf + { + _fc + ashow + } ddef + /_pjsf + { + _fc + awidthshow + } ddef + /_lp /none ddef +} def +/X +{ + /_gs exch ddef + findcmykcustomcolor + /_is exch ddef + /_sc + { + _lp /stroke ne + { + _os setoverprint + _is _gs 1 exch sub setcustomcolor + /_lp /stroke ddef + } if + } ddef + /_ps + { + _sc + stroke + } ddef + /_pss + { + _sc + ss + } ddef + /_pjss + { + _sc + jss + } ddef + /_lp /none ddef +} def +/A +{ + pop +} def +/annotatepage +{ +userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse +} def +/XT { + pop pop +} def +/discard +{ + save /discardSave exch store + discardDict begin + /endString exch store + gt38? + { + 2 add + } if + load + stopped + pop + end + discardSave restore +} bind def +userdict /discardDict 7 dict dup begin +put +/pre38Initialize +{ + /endStringLength endString length store + /newBuff buffer 0 endStringLength getinterval store + /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store + /newBuffLast newBuff endStringLength 1 sub 1 getinterval store +} def +/shiftBuffer +{ + newBuff 0 newBuffButFirst putinterval + newBuffLast 0 + currentfile read not + { + stop + } if + put +} def +0 +{ + pre38Initialize + mark + currentfile newBuff readstring exch pop + { + { + newBuff endString eq + { + cleartomark stop + } if + shiftBuffer + } loop + } + { + stop + } ifelse +} def +1 +{ + pre38Initialize + /beginString exch store + mark + currentfile newBuff readstring exch pop + { + { + newBuff beginString eq + { + /layerCount dup load 1 add store + } + { + newBuff endString eq + { + /layerCount dup load 1 sub store + layerCount 0 eq + { + cleartomark stop + } if + } if + } ifelse + shiftBuffer + } loop + } if +} def +2 +{ + mark + { + currentfile buffer readline not + { + stop + } if + endString eq + { + cleartomark stop + } if + } loop +} def +3 +{ + /beginString exch store + /layerCnt 1 store + mark + { + currentfile buffer readline not + { + stop + } if + dup beginString eq + { + pop /layerCnt dup load 1 add store + } + { + endString eq + { + layerCnt 1 eq + { + cleartomark stop + } + { + /layerCnt dup load 1 sub store + } ifelse + } if + } ifelse + } loop +} def +end +userdict /clipRenderOff 15 dict dup begin +put +{ + /n /N /s /S /f /F /b /B +} +{ + { + _doClip 1 eq + { + /_doClip 0 ddef _eo {eoclip} {clip} ifelse + } if + newpath + } def +} forall +/Tr /pop load def +/Bb {} def +/BB /pop load def +/Bg {12 npop} def +/Bm {6 npop} def +/Bc /Bm load def +/Bh {4 npop} def +end +/Lb +{ + 4 npop + 6 1 roll + pop + 4 1 roll + pop pop pop + 0 eq + { + 0 eq + { + (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard + } + { + + /clipForward? true def + + /Tx /pop load def + /Tj /pop load def + + currentdict end clipRenderOff begin begin + } ifelse + } + { + 0 eq + { + save /discardSave exch store + } if + } ifelse +} bind def +/LB +{ + discardSave dup null ne + { + restore + } + { + pop + clipForward? + { + currentdict + end + end + begin + + /clipForward? false ddef + } if + } ifelse +} bind def +/Pb +{ + pop pop + 0 (%AI5_EndPalette) discard +} bind def +/Np +{ + 0 (%AI5_End_NonPrinting--) discard +} bind def +/Ln /pop load def +/Ap +/pop load def +/Ar +{ + 72 exch div + 0 dtransform dup mul exch dup mul add sqrt + dup 1 lt + { + pop 1 + } if + setflat +} def +/Mb +{ + q +} def +/Md +{ +} def +/MB +{ + Q +} def +/nc 3 dict def +nc begin +/setgray +{ + pop +} bind def +/setcmykcolor +{ + 4 npop +} bind def +/setcustomcolor +{ + 2 npop +} bind def +currentdict readonly pop +end +end +setpacking +%%EndResource +%%EndProlog +%%BeginSetup +Adobe_level2_AI5 /initialize get exec +Adobe_ColorImage_AI6 /initialize get exec +Adobe_Illustrator_AI5 /initialize get exec +%AI5_BeginPalette +0 2 Pb +Pn +Pc +1 g +Pc +0 g +Pc +0 0 0 0 k +Pc +0.75 g +Pc +0.5 g +Pc +0.25 g +Pc +0 g +Pc +0 0 0 0 k +Pc +0.25 0 0 0 k +Pc +0.5 0 0 0 k +Pc +0.75 0 0 0 k +Pc +1 0 0 0 k +Pc +0.25 0.25 0 0 k +Pc +0.5 0.5 0 0 k +Pc +0.75 0.75 0 0 k +Pc +1 1 0 0 k +Pc +0 0 0 0 k +Pc +0 0.25 0 0 k +Pc +0 0.5 0 0 k +Pc +0 0.75 0 0 k +Pc +0 1 0 0 k +Pc +0 0.25 0.25 0 k +Pc +0 0.5 0.5 0 k +Pc +0 0.75 0.75 0 k +Pc +0 1 1 0 k +Pc +0 0 0 0 k +Pc +0 0 0.25 0 k +Pc +0 0 0.5 0 k +Pc +0 0 0.75 0 k +Pc +0 0 1 0 k +Pc +0.25 0 0.25 0 k +Pc +0.5 0 0.5 0 k +Pc +0.75 0 0.75 0 k +Pc +1 0 1 0 k +Pc +PB +%AI5_EndPalette +%%EndSetup +%AI5_BeginLayer +1 1 1 1 0 0 0 79 128 255 Lb +(Layer 1) Ln +0 A +u +u +*u +0 O +0 g +800 Ar +0 J 0 j 1 w 4 M []0 d +%AI3_Note: +0 D +0 XR +211.8549 455.5205 m +211.8549 459.9661 l +211.8549 460.6982 211.9923 461.2227 212.2669 461.5397 c +212.5418 461.8557 212.9866 462.0141 213.6032 462.0141 c +214.2854 462.0141 214.8269 461.5474 215.2267 460.6156 c +215.4928 460.0489 215.734 459.6243 215.9508 459.3418 c +216.6502 458.4426 217.682 457.7222 219.0479 457.1814 c +220.413 456.6396 221.9201 456.3696 223.5685 456.3696 c +225.3332 456.3696 226.7482 456.7271 227.8143 457.4436 c +228.8797 458.1593 229.4128 459.0998 229.4128 460.2659 c +229.4128 461.4474 228.9834 462.2889 228.1266 462.7884 c +227.2688 463.2879 225.7991 463.5376 223.7184 463.5376 C +222.3446 463.5376 l +218.9479 463.5376 216.3583 464.1285 214.5772 465.311 c +212.7953 466.4925 211.9049 468.2081 211.9049 470.4559 c +211.9049 472.6538 212.7743 474.3599 214.5148 475.5759 c +216.2545 476.7911 218.6982 477.3992 221.8452 477.3992 c +223.1267 477.3992 224.434 477.2197 225.7664 476.8622 c +227.0978 476.5039 227.7972 476.3251 227.8643 476.3251 c +228.0469 476.3251 228.3966 476.4876 228.9132 476.8121 c +229.4292 477.1369 229.9373 477.2992 230.4367 477.2992 c +231.0026 477.2992 231.4233 477.0909 231.6981 476.6748 c +231.9727 476.258 232.1101 475.6337 232.1101 474.8016 C +232.1101 471.8796 l +232.1101 470.9967 231.9766 470.36 231.7105 469.9689 c +231.4436 469.5771 231.019 469.3819 230.4367 469.3819 c +229.9373 469.3819 229.3207 469.8065 228.5886 470.6557 c +228.0719 471.2379 227.6473 471.6796 227.3148 471.9794 c +226.4321 472.795 225.4916 473.382 224.4926 473.7402 c +223.4935 474.0976 222.3196 474.2771 220.971 474.2771 c +219.4053 474.2771 218.1441 473.9315 217.1871 473.2406 c +216.2295 472.5492 215.751 471.6711 215.751 470.6058 c +215.751 469.5568 216.2421 468.8075 217.2246 468.358 c +218.2066 467.9083 220.3217 467.6501 223.5685 467.5838 c +227.0315 467.5002 229.5626 466.8969 231.161 465.773 c +232.7595 464.6491 233.5587 462.9133 233.5587 460.5655 c +233.5587 458.3177 232.676 456.5195 230.9113 455.1709 c +229.1459 453.8221 226.7653 453.1478 223.7683 453.1478 c +222.8192 453.1478 221.7616 453.2352 220.5964 453.4101 c +219.4303 453.5849 217.9654 453.8799 216.2007 454.2967 c +215.6176 453.9135 215.1182 453.6271 214.7021 453.435 c +214.2854 453.2437 213.9357 453.1478 213.6531 453.1478 c +213.0702 453.1478 212.6245 453.3522 212.317 453.7597 c +212.0087 454.1671 211.8549 454.7541 211.8549 455.5205 c +f +*U +*u +247.1034 457.2438 m +247.1034 482.8189 L +242.8577 482.8189 l +241.2419 482.8189 240.2306 482.9477 239.823 483.2059 c +239.4149 483.4635 239.2111 483.9341 239.2111 484.617 c +239.2111 485.2164 239.3813 485.6661 239.7232 485.9657 c +240.0642 486.2655 240.5598 486.4154 241.2092 486.4154 C +249.4512 486.4154 l +249.9007 486.4154 250.2504 486.3233 250.5001 486.1405 c +250.75 485.9572 250.8747 485.7075 250.8747 485.3913 C +250.8747 457.2438 L +258.7171 457.2438 l +259.3494 457.2438 259.8114 457.1063 260.1033 456.8317 c +260.3944 456.557 260.5404 456.1199 260.5404 455.5205 c +260.5404 454.8376 260.3983 454.3669 260.1157 454.1094 c +259.8325 453.851 259.2993 453.7222 258.5173 453.7222 C +240.0853 453.7222 l +239.4358 453.7222 238.9403 453.8721 238.5993 454.1717 c +238.2574 454.4715 238.0872 454.921 238.0872 455.5205 c +238.0872 456.1027 238.2621 456.536 238.6117 456.8191 c +238.9614 457.1017 239.4859 457.2438 240.1851 457.2438 C +247.1034 457.2438 l +f +*U +*u +279.1941 458.6049 m +277.3872 457.4974 275.4268 456.9441 273.3124 456.9441 c +271.8802 456.9441 270.7024 457.3102 269.7783 458.043 c +268.8542 458.7751 268.3921 459.7077 268.3921 460.8403 c +268.3921 462.3052 269.1328 463.4705 270.615 464.3368 c +272.0963 465.2025 274.1194 465.6356 276.6842 465.6356 c +277.5332 465.6356 278.3863 465.5646 279.2441 465.4234 c +280.1011 465.2812 280.9877 465.0611 281.9039 464.7615 c +281.9039 462.064 l +281.9039 460.8653 281.0001 459.7117 279.1941 458.6049 c +f +282.9031 454.1468 m +283.2027 453.8634 283.5852 453.7222 284.0519 453.7222 c +287.9731 453.7222 L +288.6389 453.7222 289.1383 453.8721 289.4717 454.1717 c +289.8041 454.4715 289.9711 454.921 289.9711 455.5205 c +289.9711 456.1698 289.7713 456.6193 289.3717 456.8692 c +288.9721 457.1189 288.1807 457.2438 286.9989 457.2438 c +285.7752 457.2438 L +285.7752 468.5578 L +285.7752 471.4713 285.0259 473.6731 283.5274 475.1637 c +282.0289 476.6537 279.8139 477.3992 276.8839 477.3992 c +274.0195 477.3992 271.6679 477.0572 269.8283 476.3751 c +267.9878 475.6921 267.0684 474.8595 267.0684 473.8775 c +267.0684 473.261 267.2262 472.7575 267.543 472.3666 c +267.8591 471.9748 268.2586 471.7796 268.7418 471.7796 c +269.2578 471.7796 270.3153 472.1293 271.9137 472.8287 c +273.5122 473.5279 274.9607 473.8775 276.2594 473.8775 c +278.1904 473.8775 279.614 473.4193 280.5303 472.5039 c +281.4459 471.5876 281.9039 470.1726 281.9039 468.258 c +281.9039 468.0832 L +280.8713 468.3493 279.8638 468.5452 278.8819 468.6701 c +277.8993 468.7951 276.9252 468.8574 275.9598 468.8574 c +272.2962 468.8574 269.4537 468.1332 267.4306 466.6846 c +265.4076 465.236 264.396 463.1958 264.396 460.5655 c +264.396 458.3505 265.1578 456.5522 266.6814 455.1709 c +268.2048 453.7886 270.2068 453.0979 272.6879 453.0979 c +274.3863 453.0979 276.0386 453.4225 277.6456 454.0719 c +279.2519 454.7212 280.7379 455.6617 282.1037 456.8942 c +282.3035 455.3707 l +282.4035 454.8376 282.6033 454.4293 282.9031 454.1468 c +f +*U +*u +314.5596 475.3012 m +314.5596 475.401 l +314.5596 475.9505 314.7173 476.354 315.0342 476.6124 c +315.3502 476.87 315.8412 476.9995 316.5077 476.9995 c +317.1899 476.9995 317.6605 476.7998 317.9189 476.4002 c +318.1765 476.0004 318.3059 475.1763 318.3059 473.9274 C +318.3059 469.2821 l +318.3059 468.6655 318.1475 468.2034 317.8315 467.8959 c +317.5145 467.5876 317.04 467.4339 316.4078 467.4339 c +315.9583 467.4339 315.5711 467.5627 315.2465 467.8209 c +314.9218 468.0785 314.5261 468.6154 314.0601 469.4318 c +313.261 470.7806 312.2908 471.7999 311.1505 472.4914 c +310.0094 473.1822 308.6982 473.5279 307.2167 473.5279 c +304.6194 473.5279 302.5089 472.7615 300.8854 471.2301 c +299.2621 469.6981 298.4504 467.7164 298.4504 465.2859 c +298.4504 462.8048 299.2285 460.7778 300.7856 459.2044 c +302.3418 457.6309 304.3446 456.8442 306.7922 456.8442 c +307.9075 456.8442 308.969 456.998 309.9766 457.3063 c +310.9834 457.6137 311.9373 458.0757 312.8363 458.6923 c +313.1525 458.8921 313.577 459.1996 314.11 459.6164 c +315.1918 460.4984 316.041 460.9401 316.6576 460.9401 c +317.1735 460.9401 317.5941 460.7778 317.9189 460.4531 c +318.2436 460.1286 318.4059 459.7077 318.4059 459.1919 c +318.4059 457.8759 317.1609 456.5319 314.6721 455.1583 c +312.1823 453.7847 309.5395 453.0979 306.7423 453.0979 c +303.1286 453.0979 300.119 454.2545 297.7135 456.5694 c +295.3073 458.8836 294.1046 461.7722 294.1046 465.236 c +294.1046 468.699 295.3034 471.5922 297.7011 473.9151 c +300.0988 476.2377 303.0959 477.3992 306.6923 477.3992 c +307.9575 477.3992 309.2274 477.2282 310.501 476.8872 c +311.7748 476.5453 313.1275 476.0169 314.5596 475.3012 c +f +*U +*u +332.3268 465.3359 m +330.079 463.2879 L +330.079 455.9201 l +330.079 455.2535 329.9416 454.7212 329.6668 454.3216 c +329.3921 453.922 329.0378 453.7222 328.6054 453.7222 C +323.985 453.7222 l +323.3355 453.7222 322.8439 453.8721 322.5114 454.1717 c +322.1781 454.4715 322.0118 454.921 322.0118 455.5205 c +322.0118 456.1863 322.207 456.6396 322.5988 456.8816 c +322.9897 457.1228 323.8264 457.2438 325.1089 457.2438 C +326.3076 457.2438 L +326.3076 482.8189 L +325.2836 482.8189 l +323.8515 482.8189 322.9274 482.9477 322.5114 483.2059 c +322.0946 483.4635 321.8869 483.9341 321.8869 484.617 c +321.8869 485.2164 322.0571 485.6661 322.399 485.9657 c +322.74 486.2655 323.2357 486.4154 323.885 486.4154 C +328.6553 486.4154 l +329.1049 486.4154 329.4546 486.3233 329.7043 486.1405 c +329.954 485.9572 330.079 485.7075 330.079 485.3913 C +330.079 467.4838 L +337.2969 473.5279 l +336.7474 473.7605 336.3431 474.0189 336.0855 474.3021 c +335.8273 474.5846 335.6985 474.9179 335.6985 475.3012 c +335.6985 475.8006 335.8811 476.1752 336.248 476.4251 c +336.6139 476.6748 337.1471 476.7998 337.8463 476.7998 C +344.6147 476.7998 l +345.247 476.7998 345.7301 476.6576 346.0634 476.3751 c +346.3958 476.0919 346.5629 475.6672 346.5629 475.1014 c +346.5629 474.1023 345.7551 473.5193 344.1403 473.353 c +343.8233 473.3195 343.5736 473.2859 343.391 473.2532 c +342.7081 473.1697 341.9588 472.9074 341.1432 472.4664 c +340.3268 472.0247 339.5025 471.4377 338.6706 470.7056 C +335.049 467.5337 L +344.5149 457.2438 L +346.6628 457.2438 l +347.3785 457.2438 347.8905 457.1104 348.1988 456.8442 c +348.5063 456.5772 348.6609 456.1362 348.6609 455.5205 c +348.6609 454.9374 348.4899 454.4918 348.1489 454.1843 c +347.807 453.876 347.3122 453.7222 346.6628 453.7222 C +339.8944 453.7222 l +339.1615 453.7222 338.6285 453.8471 338.296 454.0969 c +337.9627 454.3466 337.7964 454.7462 337.7964 455.2957 c +337.7964 455.7453 337.9587 456.1323 338.2834 456.4571 c +338.6082 456.7818 339.0952 457.044 339.7445 457.2438 C +332.3268 465.3359 l +f +*U +*u +369.979 455.0459 m +366.7072 466.4098 L +363.4854 454.5464 l +363.3183 453.9135 363.0686 453.4725 362.7361 453.2227 c +362.4029 452.973 361.9033 452.848 361.2376 452.848 c +360.6382 452.848 360.1715 453.0064 359.8389 453.3226 c +359.5056 453.6394 359.206 454.2131 358.9399 455.0459 C +353.2203 473.2532 L +352.9956 473.2532 l +352.2962 473.2532 351.7922 473.3905 351.4847 473.6653 c +351.1771 473.94 351.0226 474.402 351.0226 475.0513 c +351.0226 475.6172 351.1849 476.0505 351.5096 476.3501 c +351.8342 476.6499 352.3127 476.7998 352.9457 476.7998 C +359.6141 476.7998 l +360.5133 476.7998 361.1206 476.6702 361.4374 476.4126 c +361.7534 476.1542 361.912 475.7008 361.912 475.0513 c +361.912 474.6518 361.8198 474.3061 361.6372 474.0149 c +361.4538 473.723 361.2204 473.5443 360.9378 473.4779 c +360.6545 473.3944 360.326 473.336 359.9514 473.3031 c +359.5767 473.2696 359.1224 473.2532 358.5902 473.2532 C +357.1416 473.2532 L +361.4374 458.2678 L +364.6592 469.1571 l +364.8418 469.7894 365.1002 470.2311 365.4334 470.4808 c +365.7659 470.7306 366.2577 470.8555 366.907 470.8555 c +367.5064 470.8555 367.9764 470.6932 368.3181 470.3685 c +368.6593 470.0438 368.9628 469.4732 369.2297 468.6576 C +372.3517 458.2678 L +376.4727 473.2532 L +375.8733 473.2532 L +374.7993 473.2532 l +373.6505 473.2532 372.8762 473.382 372.4767 473.6402 c +372.0771 473.8978 371.8773 474.3684 371.8773 475.0513 c +371.8773 475.7173 372.027 476.1752 372.3268 476.4251 c +372.6264 476.6748 373.2087 476.7998 374.075 476.7998 C +380.7686 476.7998 l +381.2844 476.7998 381.6716 476.6499 381.9298 476.3501 c +382.1874 476.0505 382.317 475.6172 382.317 475.0513 c +382.317 474.4185 382.1671 473.9688 381.8675 473.7027 c +381.5677 473.4358 381.0011 473.2859 380.1692 473.2532 C +374.5496 454.5464 l +374.3326 453.9135 374.0626 453.4725 373.7379 453.2227 c +373.4132 452.973 372.9262 452.848 372.2769 452.848 c +371.6773 452.848 371.2029 453.0105 370.8532 453.335 c +370.5035 453.6598 370.2116 454.2295 369.979 455.0459 c +f +*U +*u +400.3744 458.6049 m +398.5675 457.4974 396.607 456.9441 394.4926 456.9441 c +393.0604 456.9441 391.8827 457.3102 390.9586 458.043 c +390.0345 458.7751 389.5724 459.7077 389.5724 460.8403 c +389.5724 462.3052 390.3132 463.4705 391.7953 464.3368 c +393.2766 465.2025 395.2997 465.6356 397.8643 465.6356 c +398.7136 465.6356 399.5665 465.5646 400.4243 465.4234 c +401.2813 465.2812 402.1679 465.0611 403.0843 464.7615 c +403.0843 462.064 l +403.0843 460.8653 402.1804 459.7117 400.3744 458.6049 c +f +404.0832 454.1468 m +404.383 453.8634 404.7654 453.7222 405.2321 453.7222 c +409.1533 453.7222 L +409.819 453.7222 410.3186 453.8721 410.6518 454.1717 c +410.9843 454.4715 411.1514 454.921 411.1514 455.5205 c +411.1514 456.1698 410.9516 456.6193 410.552 456.8692 c +410.1524 457.1189 409.361 457.2438 408.1793 457.2438 c +406.9555 457.2438 L +406.9555 468.5578 L +406.9555 471.4713 406.2063 473.6731 404.7077 475.1637 c +403.2092 476.6537 400.9941 477.3992 398.0641 477.3992 c +395.1997 477.3992 392.8482 477.0572 391.0085 476.3751 c +389.1682 475.6921 388.2487 474.8595 388.2487 473.8775 c +388.2487 473.261 388.4063 472.7575 388.7233 472.3666 c +389.0394 471.9748 389.4389 471.7796 389.9221 471.7796 c +390.4379 471.7796 391.4955 472.1293 393.094 472.8287 c +394.6924 473.5279 396.141 473.8775 397.4398 473.8775 c +399.3708 473.8775 400.7943 473.4193 401.7106 472.5039 c +402.6261 471.5876 403.0843 470.1726 403.0843 468.258 c +403.0843 468.0832 L +402.0516 468.3493 401.044 468.5452 400.0622 468.6701 c +399.0795 468.7951 398.1055 468.8574 397.14 468.8574 c +393.4764 468.8574 390.6339 468.1332 388.6108 466.6846 c +386.5879 465.236 385.5764 463.1958 385.5764 460.5655 c +385.5764 458.3505 386.338 456.5522 387.8617 455.1709 c +389.3852 453.7886 391.387 453.0979 393.8683 453.0979 c +395.5666 453.0979 397.2189 453.4225 398.8259 454.0719 c +400.4322 454.7212 401.9182 455.6617 403.2841 456.8942 c +403.4838 455.3707 l +403.5838 454.8376 403.7836 454.4293 404.0832 454.1468 c +f +*U +*u +424.9996 467.5838 m +424.9996 457.2438 L +433.2915 457.2438 l +433.9409 457.2438 434.4193 457.1063 434.7276 456.8317 c +435.0351 456.557 435.1896 456.1199 435.1896 455.5205 c +435.1896 454.8376 435.0438 454.3669 434.7525 454.1094 c +434.4607 453.851 433.9237 453.7222 433.1416 453.7222 C +416.8077 453.7222 l +416.1582 453.7222 415.6666 453.8721 415.3341 454.1717 c +415.0008 454.4715 414.8345 454.921 414.8345 455.5205 c +414.8345 456.1027 415.0047 456.536 415.3465 456.8191 c +415.6876 457.1017 416.216 457.2438 416.9324 457.2438 C +421.2782 457.2438 L +421.2782 473.2532 L +419.5799 473.2532 l +417.9643 473.2532 416.9574 473.382 416.5578 473.6402 c +416.1582 473.8978 415.9584 474.3684 415.9584 475.0513 c +415.9584 475.6337 416.1207 476.0708 416.4454 476.3627 c +416.7702 476.6537 417.2649 476.7998 417.9316 476.7998 C +423.626 476.7998 l +424.0755 476.7998 424.4166 476.7123 424.6499 476.5375 c +424.8826 476.3627 424.9996 476.1082 424.9996 475.7757 C +424.9996 471.5299 l +426.5809 473.5106 428.2293 474.9842 429.9447 475.9505 c +431.6595 476.916 433.5077 477.3992 435.4894 477.3992 c +436.9707 477.3992 438.1695 477.0994 439.0859 476.5 c +440.0015 475.9006 440.4595 475.1264 440.4595 474.1773 c +440.4595 473.5607 440.2301 473.0159 439.7727 472.5414 c +439.3145 472.0668 438.8112 471.8295 438.2617 471.8295 c +437.8784 471.8295 437.233 472.0832 436.3261 472.5913 c +435.4184 473.0987 434.6067 473.353 433.8909 473.353 c +432.5921 473.353 431.2224 472.891 429.7824 471.9669 c +428.3417 471.0429 426.7478 469.5817 424.9996 467.5838 c +f +*U +*u +450.4849 472.2792 m +451.9999 473.4443 453.8645 474.0274 456.0795 474.0274 c +458.1275 474.0274 459.8547 473.4234 461.2619 472.2167 c +462.6684 471.0092 463.4973 469.4148 463.7471 467.4339 c +447.488 467.4339 l +447.9702 469.4983 448.9693 471.1131 450.4849 472.2792 c +f +1 D +464.5213 464.162 m +466.2525 464.162 467.3139 464.3197 467.7058 464.6366 c +468.0967 464.9526 468.2926 465.5771 468.2926 466.5097 c +468.2926 469.5395 467.1352 472.1206 464.821 474.2522 c +462.5061 476.383 459.5926 477.4491 456.0795 477.4491 c +452.1997 477.4491 449.0529 476.3079 446.6387 474.0274 c +444.224 471.746 443.0173 468.7653 443.0173 465.0861 c +443.0173 461.4724 444.1576 458.5714 446.4389 456.3822 c +448.7194 454.192 451.7587 453.0979 455.555 453.0979 c +457.3034 453.0979 459.0642 453.3147 460.8374 453.7472 c +462.6106 454.1796 464.3292 454.804 465.9949 455.6203 c +466.7606 456.0027 467.3186 456.3946 467.6682 456.7942 c +468.0179 457.1938 468.1928 457.6347 468.1928 458.1179 c +468.1928 458.5838 468.0257 458.9749 467.6932 459.2919 c +467.3599 459.6079 466.9439 459.7663 466.4443 459.7663 c +465.9612 459.7663 464.5712 459.2457 462.2735 458.2053 c +459.9757 457.1641 457.8528 456.6443 455.9046 456.6443 c +453.3236 456.6443 451.2881 457.2976 449.7981 458.6049 c +448.3074 459.9115 447.4957 461.7644 447.363 464.162 c +464.1466 464.162 l +464.5213 464.162 L +f +*U +U +1 Ap +0 D +469.3598 400.0493 m +469.3598 445.9331 L +321.3362 445.9331 L +321.3362 400.0493 L +469.3598 400.0493 L +f +u +*u +0 Ap +1 g +341.4219 412.3292 m +341.4219 434.0293 L +337.8194 434.0293 l +336.4486 434.0293 335.5903 434.1386 335.2447 434.3577 c +334.8982 434.5763 334.7254 434.9757 334.7254 435.5551 c +334.7254 436.0637 334.8697 436.4451 335.1599 436.6995 c +335.4492 436.9537 335.8698 437.0809 336.4208 437.0809 C +343.4139 437.0809 l +343.7954 437.0809 344.0921 437.0028 344.304 436.8478 c +344.5158 436.6922 344.6219 436.4803 344.6219 436.212 C +344.6219 412.3292 L +351.2759 412.3292 l +351.8123 412.3292 352.2043 412.2127 352.452 411.9796 c +352.6991 411.7464 352.8229 411.3757 352.8229 410.8671 c +352.8229 410.2876 352.7023 409.8883 352.4627 409.6697 c +352.2223 409.4506 351.77 409.3413 351.1065 409.3413 C +335.4671 409.3413 l +334.9162 409.3413 334.4957 409.4684 334.2062 409.7227 c +333.9161 409.977 333.7718 410.3584 333.7718 410.8671 c +333.7718 411.3611 333.9202 411.7286 334.2169 411.969 c +334.5135 412.2088 334.9585 412.3292 335.5519 412.3292 C +341.4219 412.3292 l +f +*U +*u +365.3758 435.0253 m +365.3758 436.5511 365.5136 437.5114 365.789 437.9074 c +366.0646 438.3026 366.6539 438.5007 367.5585 438.5007 c +368.4339 438.5007 369.0135 438.3344 369.2962 438.0027 c +369.5783 437.6703 369.7201 436.8828 369.7201 435.6399 c +369.7201 434.4247 369.589 433.6723 369.328 433.3829 c +369.0665 433.0929 368.4764 432.9486 367.5585 432.9486 c +366.6539 432.9486 366.0646 433.0824 365.789 433.3512 c +365.5136 433.6195 365.3758 434.1776 365.3758 435.0253 c +f +369.2962 428.0532 m +369.2962 412.3292 L +376.0987 412.3292 l +376.6497 412.3292 377.0557 412.2127 377.3172 411.9796 c +377.5782 411.7464 377.7093 411.3757 377.7093 410.8671 c +377.7093 410.2876 377.5855 409.8883 377.3384 409.6697 c +377.0907 409.4506 376.6352 409.3413 375.9716 409.3413 C +359.527 409.3413 l +358.9614 409.3413 358.5376 409.4684 358.2555 409.7227 c +357.9727 409.977 357.8316 410.3584 357.8316 410.8671 c +357.8316 411.3611 357.9799 411.7286 358.2766 411.969 c +358.5734 412.2088 359.0184 412.3292 359.6118 412.3292 C +366.0751 412.3292 L +366.0751 425.913 L +361.9428 425.913 l +361.3633 425.913 360.9217 426.0435 360.6184 426.305 c +360.3144 426.566 360.1627 426.9441 360.1627 427.4388 c +360.1627 427.9328 360.3037 428.3036 360.5866 428.5513 c +360.8687 428.7983 361.2924 428.9222 361.858 428.9222 C +368.0672 428.9222 l +368.4485 428.9222 368.7486 428.8441 368.9678 428.6891 c +369.1863 428.5334 369.2962 428.3216 369.2962 428.0532 c +f +*U +*u +385.0309 412.3292 m +385.4759 412.3292 L +385.4759 425.913 L +385.0732 425.913 l +384.1124 425.913 383.4521 426.0255 383.0919 426.252 c +382.7316 426.4778 382.5515 426.8732 382.5515 427.4388 c +382.5515 427.9613 382.6999 428.3394 382.9965 428.5725 c +383.2932 428.8056 383.7732 428.9222 384.4376 428.9222 C +385.4336 428.9222 L +387.468 428.9222 l +387.8493 428.9222 388.1461 428.8441 388.358 428.6891 c +388.5699 428.5334 388.6757 428.3216 388.6757 428.0532 C +388.6757 426.6124 l +389.707 427.5726 390.7275 428.2825 391.7379 428.7421 c +392.7479 429.201 393.7968 429.4307 394.8849 429.4307 c +397.018 429.4307 398.6954 428.7666 399.9179 427.4388 c +401.1396 426.1103 401.7509 424.274 401.7509 421.929 C +401.7509 412.3292 L +402.747 412.3292 l +403.4529 412.3292 403.9614 412.2127 404.2727 411.9796 c +404.5833 411.7464 404.7389 411.3757 404.7389 410.8671 c +404.7389 410.3161 404.5727 409.9241 404.2409 409.691 c +403.9085 409.4579 403.3191 409.3413 402.4714 409.3413 C +397.7882 409.3413 l +396.8835 409.3413 396.3047 409.4472 396.0505 409.6592 c +395.7962 409.8711 395.669 410.2736 395.669 410.8671 c +395.669 411.418 395.8174 411.7994 396.114 412.0113 c +396.4107 412.2234 396.9683 412.3292 397.7882 412.3292 C +398.5299 412.3292 L +398.5299 421.1449 l +398.5299 422.7978 398.1549 424.0587 397.4067 424.9275 c +396.6576 425.7964 395.5697 426.2309 394.1432 426.2309 c +392.7022 426.2309 391.4307 425.7434 390.3288 424.7686 c +389.2268 423.7938 388.6757 422.5859 388.6757 421.1449 C +388.6757 412.3292 L +389.4176 412.3292 l +390.2651 412.3292 390.8374 412.2234 391.1341 412.0113 c +391.4307 411.7994 391.5791 411.418 391.5791 410.8671 c +391.5791 410.2736 391.4519 409.8711 391.1976 409.6592 c +390.9432 409.4472 390.3215 409.3413 389.3328 409.3413 C +385.4759 409.3413 L +384.3316 409.3413 l +383.7521 409.3413 383.3177 409.4645 383.0283 409.7121 c +382.7383 409.9591 382.5938 410.3439 382.5938 410.8671 c +382.5938 411.4319 382.7594 411.8167 383.0919 412.022 c +383.4237 412.2266 384.0701 412.3292 385.0309 412.3292 c +f +*U +*u +414.1161 427.3116 m +414.1161 417.1609 l +414.1161 415.3809 414.4903 414.0809 415.2392 413.2617 c +415.9876 412.4418 417.1744 412.0326 418.7994 412.0326 c +420.3392 412.0326 421.6564 412.52 422.7516 413.4949 c +423.8464 414.4696 424.394 415.6914 424.394 417.1609 C +424.394 425.913 L +421.4907 425.913 l +420.9398 425.913 420.5404 426.0296 420.2935 426.2627 c +420.0458 426.4958 419.9226 426.8593 419.9226 427.354 c +419.9226 427.8903 420.0563 428.2864 420.3253 428.5407 c +420.5934 428.7951 421.0246 428.9222 421.6179 428.9222 C +426.1317 428.9222 l +426.6682 428.9222 427.0462 428.8056 427.2654 428.5725 c +427.4839 428.3394 427.5938 427.7705 427.5938 426.8666 C +427.5938 412.3292 L +428.5688 412.3292 l +429.2607 412.3292 429.7587 412.2161 430.0627 411.9903 c +430.366 411.7636 430.5184 411.3896 430.5184 410.8671 c +430.5184 410.3584 430.3733 409.977 430.0839 409.7227 c +429.7939 409.4684 429.374 409.3413 428.823 409.3413 C +425.6019 409.3413 l +425.2205 409.3413 424.9238 409.4188 424.7119 409.5744 c +424.5 409.7293 424.394 409.9413 424.394 410.2101 C +424.394 411.6511 l +423.0378 410.6055 421.8756 409.8883 420.9081 409.5002 c +419.9398 409.1122 418.9194 408.9174 417.8459 408.9174 c +415.5148 408.9174 413.7664 409.5354 412.601 410.7716 c +411.4354 412.0075 410.8527 413.8763 410.8527 416.3768 C +410.8527 425.913 L +410.4077 425.913 l +409.4467 425.913 408.7898 426.0255 408.4369 426.252 c +408.0832 426.4778 407.9071 426.8732 407.9071 427.4388 c +407.9071 427.9328 408.0447 428.3036 408.3203 428.5513 c +408.5958 428.7983 409.0229 428.9222 409.6023 428.9222 C +412.8023 428.9222 l +413.2963 428.9222 413.6393 428.8228 413.8301 428.6255 c +414.0208 428.4274 414.1161 427.9897 414.1161 427.3116 c +f +*U +*u +447.2096 417.5424 m +442.3356 412.3292 L +442.9502 412.3292 l +443.6561 412.3292 444.2071 412.1981 444.6031 411.9373 c +444.9984 411.6756 445.1964 411.3049 445.1964 410.8247 c +445.1964 410.3161 445.023 409.9413 444.6772 409.7015 c +444.3309 409.4611 443.7831 409.3413 443.035 409.3413 C +437.186 409.3413 l +436.7623 409.3413 436.4085 409.4824 436.1265 409.7651 c +435.8437 410.0472 435.7027 410.4009 435.7027 410.8247 c +435.7027 411.3472 435.8933 411.7286 436.2748 411.969 c +436.6562 412.2088 437.2635 412.3292 438.0973 412.3292 C +438.5212 412.3292 L +445.3871 419.3649 L +438.6483 425.913 L +438.3516 425.913 l +437.5317 425.913 436.9636 426.0223 436.6457 426.2414 c +436.3278 426.46 436.1689 426.8455 436.1689 427.3963 c +436.1689 427.9751 436.349 428.3746 436.7092 428.5937 c +437.0695 428.8123 437.7583 428.9222 438.7754 428.9222 C +443.1196 428.9222 l +443.8825 428.9222 444.4368 428.7983 444.7832 428.5513 c +445.1289 428.3036 445.3025 427.9189 445.3025 427.3963 c +445.3025 426.9155 445.1076 426.5487 444.7197 426.2945 c +444.3309 426.0401 443.7694 425.913 443.035 425.913 C +442.8654 425.913 L +447.4215 421.4416 L +451.7658 425.913 L +451.3208 425.913 l +450.5294 425.913 449.9433 426.0296 449.5619 426.2627 c +449.1804 426.4958 448.9898 426.8593 448.9898 427.354 c +448.9898 427.9049 449.1592 428.3036 449.4983 428.5513 c +449.8373 428.7983 450.3883 428.9222 451.1512 428.9222 C +456.661 428.9222 l +457.0988 428.9222 457.4557 428.7844 457.7312 428.5089 c +458.0066 428.2335 458.1444 427.8765 458.1444 427.4388 c +458.1444 426.9155 457.9676 426.5308 457.6146 426.2838 c +457.261 426.0362 456.6961 425.913 455.9194 425.913 C +455.3259 425.913 L +449.244 419.5767 L +456.661 412.3292 L +456.8729 412.3292 l +457.4094 412.3292 457.8265 412.1981 458.1231 411.9373 c +458.4198 411.6756 458.5682 411.3049 458.5682 410.8247 c +458.5682 410.2591 458.3988 409.8711 458.0596 409.6592 c +457.7206 409.4472 457.0213 409.3413 455.9617 409.3413 C +451.6386 409.3413 l +450.8896 409.3413 450.3387 409.4611 449.9856 409.7015 c +449.6321 409.9413 449.4559 410.3161 449.4559 410.8247 c +449.4559 411.2909 449.6254 411.6578 449.9646 411.9267 c +450.3036 412.1949 450.7698 412.3292 451.3631 412.3292 C +452.5498 412.3292 L +447.2096 417.5424 l +f +*U +U +u +0 R +0 G +1.5 w +201.2092 463.7972 m +201.2092 426.5972 l +S +200.4342 427.3722 m +334.8323 427.3722 l +S +U +*u +0 O +0 g +1 w +476.0812 478.2771 m +476.5944 477.7618 476.8511 477.1422 476.8511 476.4175 c +476.8511 475.7036 476.5927 475.0872 476.0759 474.5687 c +475.559 474.05 474.9399 473.7907 474.219 473.7907 c +473.4978 473.7907 472.8798 474.0491 472.3648 474.5661 c +471.8497 475.0828 471.5922 475.6999 471.5922 476.4175 c +471.5922 477.135 471.8506 477.753 472.3675 478.2718 c +472.8843 478.7903 473.5014 479.0497 474.219 479.0497 c +474.9471 479.0497 475.5678 478.7921 476.0812 478.2771 c +f +1 D +474.6212 477.5791 m +474.7332 477.5008 474.7891 477.3801 474.7891 477.2167 c +474.7891 477.0533 474.7296 476.93 474.6105 476.8464 c +474.4915 476.7629 474.315 476.7213 474.0804 476.7213 c +473.7714 476.7213 L +473.7714 477.6963 L +474.0912 477.6963 l +474.3326 477.6963 474.5093 477.6572 474.6212 477.5791 c +f +473.8728 476.1672 m +473.9792 476.1672 474.06 476.1466 474.1152 476.1058 c +474.17 476.0649 474.2526 475.961 474.3628 475.7941 c +474.917 474.9576 L +474.9844 474.8474 475.0456 474.7738 475.1008 474.7366 c +475.1557 474.6992 475.2223 474.6806 475.3006 474.6806 c +475.6204 474.6806 L +475.7126 474.6806 475.7845 474.7072 475.8361 474.7604 c +475.8876 474.8137 475.9133 474.8866 475.9133 474.979 c +475.9133 475.0854 475.8831 475.1609 475.8228 475.2054 c +475.7624 475.2498 475.654 475.2719 475.4978 475.2719 c +474.9436 476.1139 L +474.9151 476.1565 474.8903 476.1911 474.8691 476.2177 c +474.8477 476.2444 474.828 476.263 474.8105 476.2737 c +475.0163 476.3447 475.1789 476.4618 475.298 476.6254 c +475.4169 476.7888 475.4765 476.9769 475.4765 477.1902 c +475.4765 477.5594 475.3521 477.8322 475.1034 478.008 c +474.8547 478.1838 474.4695 478.2718 473.9473 478.2718 c +472.9348 478.2718 L +472.8425 478.2718 472.7698 478.2459 472.7164 478.1944 c +472.6631 478.1428 472.6366 478.0709 472.6366 477.9787 c +472.6366 477.8827 472.6641 477.8117 472.7191 477.7656 c +472.7741 477.7192 472.8567 477.6963 472.9669 477.6963 c +473.0734 477.6963 L +473.1534 477.6963 L +473.1534 475.2719 L +473.0734 475.2719 L +472.9562 475.2719 L +472.8497 475.2719 472.7698 475.2481 472.7164 475.2 c +472.6631 475.1521 472.6366 475.0783 472.6366 474.979 c +472.6366 474.8866 472.6631 474.8137 472.7164 474.7604 c +472.7698 474.7072 472.8425 474.6806 472.9348 474.6806 c +473.894 474.6806 L +474.0288 474.6806 474.1266 474.7035 474.1871 474.7499 c +474.2474 474.7959 474.2776 474.8723 474.2776 474.979 c +474.2776 475.0749 474.2457 475.1476 474.1817 475.1974 c +474.1178 475.247 474.0254 475.2719 473.9047 475.2719 c +473.7714 475.2719 L +473.7714 476.1672 l +473.8728 476.1672 L +f +471.9892 474.177 m +472.6019 473.5607 473.3451 473.2526 474.219 473.2526 c +475.0928 473.2526 475.8369 473.5624 476.4515 474.1824 c +477.0659 474.8021 477.3733 475.5472 477.3733 476.4175 c +477.3733 477.2877 477.0651 478.0309 476.4488 478.6474 c +475.8324 479.2636 475.0892 479.5718 474.219 479.5718 c +473.3487 479.5718 472.6062 479.2644 471.9918 478.65 c +471.3772 478.0354 471.07 477.2914 471.07 476.4175 c +471.07 475.5401 471.3765 474.7933 471.9892 474.177 c +f +*U +U +LB +%AI5_EndLayer-- +%%PageTrailer +gsave annotatepage grestore showpage +%%Trailer +Adobe_Illustrator_AI5 /terminate get exec +Adobe_ColorImage_AI6 /terminate get exec +Adobe_level2_AI5 /terminate get exec +%%EOF + +%%EndDocument + @endspecial 14290 63035 a + currentpoint currentpoint translate 1 0.75 div 1 0.75 div scale neg +exch neg exch translate + 14290 63035 a Black Black +eop end +%%Page: 4 4 +TeXDict begin 4 3 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 4848 x FX(Slackwar)-28 b(e)387 b(Linux)f +(Essentials,)g(Second)g(Edition)-30 5303 y FW(Cop)-14 +b(yright)351 b(\251)e(1998,)h(1999,)g(2000,)f(2001,)h(2002,)g(2003,)g +(2004,)g(2005)g(Slackw)-14 b(are)351 b(Linux,)f(Inc.)-30 +7117 y(All)e(rights)h(reserv)-21 b(ed.)351 b(Printed)f(in)f(Canada.)-30 +10037 y(Published)h(by)g(Slackw)-14 b(are)350 b(Linux,)g(Inc.,)f(1164)h +(Claremont)h(Dri)-35 b(v)-21 b(e,)349 b(Brentw)-14 b(ood,)351 +b(CA)e(94513)-30 13158 y FV(Lead)387 b(A)-46 b(uthor)-101 +b(,)386 b(Second)h(Edition:)f FU(Alan)h(Hicks.)-30 16280 +y FV(Editors,)g(Second)f(Edition:)g FU(Murray)h(Stok)-15 +b(ely)386 b(and)i(FuKang)e(Chen.)-30 19402 y FV(A)-46 +b(uthors,)386 b(F)-62 b(irst)386 b(Edition:)g FU(Chris)h(Lumens,)g(Da) +-31 b(vid)387 b(Cantrell,)g(and)g(Log)-8 b(an)388 b(Johnson.)-30 +22322 y FV(Print)f(History:)-30 24188 y +SDict begin H.S end + -30 24188 a -30 +24188 a +SDict begin 16.38 H.A end + -30 24188 a -30 24188 a +SDict begin [ /View [/XYZ H.V] /Dest (table.1) cvn H.B /DEST pdfmark +end + -30 24188 a 1564 25775 +a FW(June,)349 b(2000)5913 b(First)349 b(Edition)1564 +27695 y(May)-91 b(,)349 b(2005)6004 b(Second)351 b(Edition)-30 +32738 y FT(Slackw)-9 b(are)232 b(Linux)h(is)g(a)f(re)-14 +b(gistered)232 b(trademark)g(of)g(P)-14 b(atrick)232 +b(V)-120 b(olk)-9 b(erding)233 b(and)f(Slackw)-9 b(are)232 +b(Linux,)h(Inc.)-30 34350 y(Linux)g(is)g(a)f(re)-14 b(gistered)232 +b(trademark)g(of)g(Linus)g(T)-74 b(orv)-23 b(alds.)-30 +35961 y(America)233 b(Online)g(and)g(A)-51 b(OL)233 b(are)f(re)-14 +b(gistered)231 b(trademarks)h(of)g(America)h(Online,)h(Inc.)e(in)h(the) +g(United)g(States)g(and/or)f(other)h(countries.)-30 37573 +y(Apple,)h(FireW)-37 b(ire,)232 b(Mac,)g(Macintosh,)h(Mac)f(OS,)h +(Quicktime,)i(and)d(T)-33 b(rueT)-74 b(ype)232 b(are)f(trademarks)h(of) +g(Apple)h(Computer)-37 b(,)233 b(Inc.,)g(re)-14 b(gistered)232 +b(in)h(the)f(United)-30 39185 y(States)h(and)f(other)g(countries.)-30 +40797 y(IBM,)g(AIX,)i(EtherJet,)f(Net\002nity)-60 b(,)234 +b(OS/2,)f(Po)-23 b(werPC,)233 b(PS/2,)g(S/390,)g(and)g(ThinkP)-14 +b(ad)232 b(are)g(trademarks)g(of)g(International)h(Business)f(Machines) +f(Corporation)-30 42408 y(in)i(the)g(United)g(States,)g(other)g +(countries,)f(or)g(both.)-30 44020 y(IEEE,)h(POSIX,)g(and)f(802)h(are)e +(re)-14 b(gistered)232 b(trademarks)g(of)g(Institute)h(of)f(Electrical) +i(and)e(Electronics)h(Engineers,)f(Inc.)h(in)g(the)f(United)i(States.) +-30 45632 y(Intel,)f(Celeron,)g(EtherExpress,)f(i386,)h(i486,)g +(Itanium,)h(Pentium,)g(and)e(Xeon)h(are)e(trademarks)h(or)g(re)-14 +b(gistered)232 b(trademarks)g(of)g(Intel)h(Corporation)f(or)g(its)-30 +47243 y(subsidiaries)g(in)h(the)g(United)g(States)g(and)f(other)h +(countries.)-30 48855 y(Microsoft,)f(IntelliMouse,)i(MS-DOS,)e +(Outlook,)i(W)-37 b(indo)-23 b(ws,)233 b(W)-37 b(indo)-23 +b(ws)232 b(Media)g(and)g(W)-37 b(indo)-23 b(ws)232 b(NT)h(are)f(either) +h(re)-14 b(gistered)232 b(trademarks)f(or)h(trademarks)-30 +50467 y(of)g(Microsoft)g(Corporation)g(in)h(the)g(United)g(States)g +(and/or)f(other)h(countries.)-30 52079 y(Netscape)f(and)h(the)f +(Netscape)h(Na)-19 b(vig)-5 b(ator)233 b(are)f(re)-14 +b(gistered)232 b(trademarks)g(of)g(Netscape)g(Communications)i +(Corporation)e(in)h(the)g(U.S.)g(and)g(other)f(countries.)-30 +53690 y(Red)h(Hat,)g(RPM,)g(are)f(trademarks)f(or)h(re)-14 +b(gistered)232 b(trademarks)g(of)g(Red)g(Hat,)i(Inc.)e(in)h(the)g +(United)g(States)g(and)f(other)h(countries.)-30 55302 +y(XFree86)f(is)h(a)f(trademark)g(of)g(The)g(XFree86)g(Project,)i(Inc.) +-30 56914 y(Man)-14 b(y)232 b(of)g(the)h(designations)f(used)g(by)g +(manuf)-9 b(acturers)231 b(and)h(sellers)h(to)f(distinguish)i(their)f +(products)f(are)f(claimed)j(as)e(trademarks.)g(Where)f(those)-30 +58526 y(designations)c(appear)g(in)g(this)h(document,)g(and)f(Slackw)-9 +b(are)227 b(Linux,)h(Inc.)f(w)-9 b(as)227 b(a)-14 b(w)-9 +b(are)226 b(of)h(the)g(trademark)g(claim,)i(the)e(designations)h(ha)-19 +b(v)-14 b(e)227 b(been)f(follo)-23 b(wed)228 b(by)-30 +60137 y(the)233 b(\223\231\224)f(or)g(the)h(\223\256\224)f(symbol.)-30 +65716 y FW(ISBN:)350 b(1-57176-338-4)p Black Black eop +end +%%Page: 5 5 +TeXDict begin 5 4 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 6086 x FS(T)-257 b(ab)-32 b(le)894 +b(of)g(Contents)p 0 TeXcolorgray -30 8349 a +SDict begin H.S end + -30 8349 +a FX(Pr)-28 b(eface)4932 8349 y +SDict begin 18.2 H.L end + 4932 8349 a 4932 8349 +a +SDict begin [ /Subtype /Link /Dest (BOOK-PREFACE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 4932 8349 a Black Black 75 w FX(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 8349 a +SDict begin H.S end + +50226 8349 a FX(xv)51776 8349 y +SDict begin 18.2 H.L end + 51776 8349 a 51776 8349 +a +SDict begin [ /Subtype /Link /Dest (BOOK-PREFACE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 8349 a Black 0 TeXcolorgray -30 10629 a +SDict begin H.S end + -30 10629 +a FX(1)387 b(An)g(Intr)-28 b(oduction)386 b(to)i(Slackwar)-28 +b(e)386 b(Linux)25187 10629 y +SDict begin 18.2 H.L end + 25187 10629 a 25187 10629 +a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 25187 10629 a Black Black 354 w FX(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black 0 TeXcolorgray 51001 10629 a +SDict begin H.S end + 51001 +10629 a FX(1)51776 10629 y +SDict begin 18.2 H.L end + 51776 10629 a 51776 10629 +a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 10629 a Black 0 TeXcolorgray 2627 12910 a +SDict begin H.S end + 2627 +12910 a FU(1.1)h(What)h(is)f(Linux?)14508 12910 y +SDict begin 18.2 H.L end + 14508 +12910 a 14508 12910 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-LINUX) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14508 12910 a Black Black 185 w +FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black 0 TeXcolorgray 51001 12910 a +SDict begin H.S end + 51001 12910 +a FU(1)51776 12910 y +SDict begin 18.2 H.L end + 51776 12910 a 51776 12910 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-LINUX) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 +12910 a Black 0 TeXcolorgray 5284 14924 a +SDict begin H.S end + 5284 14924 +a FU(1.1.1)g(A)h(W)-124 b(ord)387 b(on)g(GNU)19363 14924 +y +SDict begin 18.2 H.L end + 19363 14924 a 19363 14924 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-LINUX-GNU) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19363 14924 a Black Black +366 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 51001 14924 +a +SDict begin H.S end + 51001 14924 a FU(1)51776 14924 y +SDict begin 18.2 H.L end + 51776 14924 a 51776 +14924 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-LINUX-GNU) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 14924 a Black 0 TeXcolorgray 2627 16939 +a +SDict begin H.S end + 2627 16939 a FU(1.2)g(What)h(is)f(Slackw)-15 b(are?)17245 +16939 y +SDict begin 18.2 H.L end + 17245 16939 a 17245 16939 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-SLACKWARE) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17245 16939 a Black +Black 160 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black 0 TeXcolorgray 51001 16939 a +SDict begin H.S end + 51001 +16939 a FU(2)51776 16939 y +SDict begin 18.2 H.L end + 51776 16939 a 51776 16939 +a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-SLACKWARE) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 16939 a Black 0 TeXcolorgray 2627 18954 a +SDict begin H.S end + 2627 +18954 a FU(1.3)387 b(Open)h(Source)f(and)g(Free)g(Softw)-15 +b(are)24733 18954 y +SDict begin 18.2 H.L end + 24733 18954 a 24733 18954 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-OPENSOURCE) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 24733 +18954 a Black Black 33 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black 0 TeXcolorgray 51001 18954 a +SDict begin H.S end + 51001 18954 a FU(3)51776 +18954 y +SDict begin 18.2 H.L end + 51776 18954 a 51776 18954 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-OPENSOURCE) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 18954 a Black +0 TeXcolorgray -30 21234 a +SDict begin H.S end + -30 21234 a FX(2)387 b(Help)4319 +21234 y +SDict begin 18.2 H.L end + 4319 21234 a 4319 21234 a +SDict begin [ /Subtype /Link /Dest (HELP) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4319 21234 a Black +Black 300 w FX(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black 0 TeXcolorgray 51001 21234 a +SDict begin H.S end + 51001 21234 a FX(7)51776 +21234 y +SDict begin 18.2 H.L end + 51776 21234 a 51776 21234 a +SDict begin [ /Subtype /Link /Dest (HELP) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 21234 a Black +0 TeXcolorgray 2627 23514 a +SDict begin H.S end + 2627 23514 a FU(2.1)g(System)g(Help)12916 +23514 y +SDict begin 18.2 H.L end + 12916 23514 a 12916 23514 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12916 23514 a Black +Black 227 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black 0 TeXcolorgray 51001 23514 a +SDict begin H.S end + 51001 23514 a FU(7)51776 +23514 y +SDict begin 18.2 H.L end + 51776 23514 a 51776 23514 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 23514 a Black +0 TeXcolorgray 5284 25529 a +SDict begin H.S end + 5284 25529 a FU(2.1.1)g FR(man)11439 +25529 y +SDict begin 18.2 H.L end + 11439 25529 a 11439 25529 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-MAN) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11439 25529 a Black +Black 154 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black 0 TeXcolorgray 51001 25529 a +SDict begin H.S end + 51001 25529 a FU(7)51776 +25529 y +SDict begin 18.2 H.L end + 51776 25529 a 51776 25529 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-MAN) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 25529 a Black +0 TeXcolorgray 5284 27544 a +SDict begin H.S end + 5284 27544 a FU(2.1.2)g(The)h +FQ(/usr/doc)382 b FU(Directory)22905 27544 y +SDict begin 18.2 H.L end + 22905 27544 +a 22905 27544 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-DOC) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 22905 27544 a Black Black 311 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 51001 27544 +a +SDict begin H.S end + 51001 27544 a FU(9)51776 27544 y +SDict begin 18.2 H.L end + 51776 27544 a 51776 +27544 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-DOC) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 27544 a Black 0 TeXcolorgray 5284 29558 +a +SDict begin H.S end + 5284 29558 a FU(2.1.3)387 b(HO)-54 b(WT)-28 b(Os)387 +b(and)g(mini-HO)-54 b(WT)-28 b(Os)27717 29558 y +SDict begin 18.2 H.L end + 27717 +29558 a 27717 29558 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-HOWTO) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 27717 29558 a Black Black 149 w +FU(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black 0 TeXcolorgray 51001 29558 a +SDict begin H.S end + 51001 29558 a FU(9)51776 +29558 y +SDict begin 18.2 H.L end + 51776 29558 a 51776 29558 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-HOWTO) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 29558 a Black +0 TeXcolorgray 2627 31573 a +SDict begin H.S end + 2627 31573 a FU(2.2)387 b(Online)g(Help) +12570 31573 y +SDict begin 18.2 H.L end + 12570 31573 a 12570 31573 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12570 31573 +a Black Black 186 w FU(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 31573 +a +SDict begin H.S end + 50226 31573 a FU(10)51776 31573 y +SDict begin 18.2 H.L end + 51776 31573 a 51776 +31573 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 31573 a Black 0 TeXcolorgray 5284 33588 +a +SDict begin H.S end + 5284 33588 a FU(2.2.1)g(The)h(Of)-39 b(\002cial)387 +b(W)-124 b(ebsite)387 b(and)g(Help)g(F)-23 b(orums)32732 +33588 y +SDict begin 18.2 H.L end + 32732 33588 a 32732 33588 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-OFFICIAL) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 32732 33588 a Black +Black 170 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 +33588 a +SDict begin H.S end + 50226 33588 a FU(10)51776 33588 y +SDict begin 18.2 H.L end + 51776 33588 +a 51776 33588 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-OFFICIAL) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 33588 a Black 0 TeXcolorgray 5284 +35602 a +SDict begin H.S end + 5284 35602 a FU(2.2.2)387 b(E-mail)g(Support)18285 +35602 y +SDict begin 18.2 H.L end + 18285 35602 a 18285 35602 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-EMAIL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18285 35602 a Black +Black 282 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 35602 a +SDict begin H.S end + 50226 35602 a FU(11)51776 +35602 y +SDict begin 18.2 H.L end + 51776 35602 a 51776 35602 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-EMAIL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 35602 a Black +0 TeXcolorgray 5284 37617 a +SDict begin H.S end + 5284 37617 a FU(2.2.3)g(Non-Of)-39 +b(\002cial)387 b(W)-124 b(ebsites)387 b(and)g(Help)g(F)-23 +b(orums)33722 37617 y +SDict begin 18.2 H.L end + 33722 37617 a 33722 37617 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-NONOFFICIAL) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 33722 +37617 a Black Black 342 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +0 TeXcolorgray 50226 37617 a +SDict begin H.S end + 50226 37617 a FU(12)51776 +37617 y +SDict begin 18.2 H.L end + 51776 37617 a 51776 37617 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-NONOFFICIAL) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 37617 a Black +0 TeXcolorgray -30 39897 a +SDict begin H.S end + -30 39897 a FX(3)387 b(Installation)8712 +39897 y +SDict begin 18.2 H.L end + 8712 39897 a 8712 39897 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8712 39897 a Black +Black 169 w FX(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 39897 +a +SDict begin H.S end + 50226 39897 a FX(15)51776 39897 y +SDict begin 18.2 H.L end + 51776 39897 a 51776 +39897 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 39897 a Black 0 TeXcolorgray 2627 42178 +a +SDict begin H.S end + 2627 42178 a FU(3.1)g(Getting)g(Slackw)-15 b(are)16428 +42178 y +SDict begin 18.2 H.L end + 16428 42178 a 16428 42178 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-GETTING) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16428 42178 a Black +Black 202 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 42178 +a +SDict begin H.S end + 50226 42178 a FU(15)51776 42178 y +SDict begin 18.2 H.L end + 51776 42178 a 51776 +42178 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-GETTING) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 42178 a Black 0 TeXcolorgray 5284 44192 +a +SDict begin H.S end + 5284 44192 a FU(3.1.1)387 b(The)h(Of)-39 b(\002cial)387 +b(Disc)g(and)g(Box)g(Sets)28059 44192 y +SDict begin 18.2 H.L end + 28059 44192 a +28059 44192 a +SDict begin [ /Subtype /Link /Dest (640) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 28059 44192 a Black Black 194 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 44192 a +SDict begin H.S end + 50226 44192 a FU(15)51776 +44192 y +SDict begin 18.2 H.L end + 51776 44192 a 51776 44192 a +SDict begin [ /Subtype /Link /Dest (640) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 44192 a Black +0 TeXcolorgray 5284 46207 a +SDict begin H.S end + 5284 46207 a FU(3.1.2)g(V)-93 +b(ia)388 b(the)f(Internet)18404 46207 y +SDict begin 18.2 H.L end + 18404 46207 a +18404 46207 a +SDict begin [ /Subtype /Link /Dest (682) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 18404 46207 a Black Black 163 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 46207 +a +SDict begin H.S end + 50226 46207 a FU(16)51776 46207 y +SDict begin 18.2 H.L end + 51776 46207 a 51776 +46207 a +SDict begin [ /Subtype /Link /Dest (682) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 46207 a Black 0 TeXcolorgray 2627 48222 +a +SDict begin H.S end + 2627 48222 a FU(3.2)g(System)g(Requirements)18513 48222 +y +SDict begin 18.2 H.L end + 18513 48222 a 18513 48222 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-REQUIREMENTS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18513 48222 a Black Black +54 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 48222 a +SDict begin H.S end + 50226 48222 a FU(17)51776 48222 y +SDict begin 18.2 H.L end + 51776 +48222 a 51776 48222 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-REQUIREMENTS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 48222 a Black 0 TeXcolorgray +5284 50236 a +SDict begin H.S end + 5284 50236 a FU(3.2.1)g(The)h(Softw)-15 +b(are)386 b(Series)21322 50236 y +SDict begin 18.2 H.L end + 21322 50236 a 21322 +50236 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-SOFTWARE-SERIES) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 21322 50236 a Black Black 345 w FU(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 50236 a +SDict begin H.S end + 50226 50236 a FU(17)51776 +50236 y +SDict begin 18.2 H.L end + 51776 50236 a 51776 50236 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-SOFTWARE-SERIES) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 50236 a Black +0 TeXcolorgray 5284 52251 a +SDict begin H.S end + 5284 52251 a FU(3.2.2)h(Installation)g +(Methods)21557 52251 y +SDict begin 18.2 H.L end + 21557 52251 a 21557 52251 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-METHODS) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 21557 +52251 a Black Black 110 w FU(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 +52251 a +SDict begin H.S end + 50226 52251 a FU(18)51776 52251 y +SDict begin 18.2 H.L end + 51776 52251 +a 51776 52251 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-METHODS) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 52251 a Black 0 TeXcolorgray 5284 +54266 a +SDict begin H.S end + 5284 54266 a FU(3.2.3)g(Boot)g(Disk)15100 54266 +y +SDict begin 18.2 H.L end + 15100 54266 a 15100 54266 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-BOOTDISK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15100 54266 a Black Black +368 w FU(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 54266 +a +SDict begin H.S end + 50226 54266 a FU(20)51776 54266 y +SDict begin 18.2 H.L end + 51776 54266 a 51776 +54266 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-BOOTDISK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 54266 a Black 0 TeXcolorgray 5284 56280 +a +SDict begin H.S end + 5284 56280 a FU(3.2.4)g(Root)g(Disk)15100 56280 y +SDict begin 18.2 H.L end + 15100 +56280 a 15100 56280 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-ROOTDISK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15100 56280 a Black Black 368 w +FU(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 56280 +a +SDict begin H.S end + 50226 56280 a FU(20)51776 56280 y +SDict begin 18.2 H.L end + 51776 56280 a 51776 +56280 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-ROOTDISK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 56280 a Black 0 TeXcolorgray 5284 58295 +a +SDict begin H.S end + 5284 58295 a FU(3.2.5)g(Supplemental)f(Disk)20609 58295 +y +SDict begin 18.2 H.L end + 20609 58295 a 20609 58295 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-SUPPLEMENTAL-DISK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20609 58295 a Black Black +283 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 58295 a +SDict begin H.S end + 50226 58295 a FU(21)51776 +58295 y +SDict begin 18.2 H.L end + 51776 58295 a 51776 58295 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-SUPPLEMENTAL-DISK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 58295 a Black +0 TeXcolorgray 5284 60310 a +SDict begin H.S end + 5284 60310 a FU(3.2.6)h(Making)g(the)g +(Disks)19791 60310 y +SDict begin 18.2 H.L end + 19791 60310 a 19791 60310 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-MAKING-THE-DISKS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19791 +60310 a Black Black 326 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 60310 a +SDict begin H.S end + 50226 60310 a FU(21)51776 +60310 y +SDict begin 18.2 H.L end + 51776 60310 a 51776 60310 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-MAKING-THE-DISKS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 60310 a Black +0 TeXcolorgray 2627 62324 a +SDict begin H.S end + 2627 62324 a FU(3.3)g(P)-23 +b(artitioning)12249 62324 y +SDict begin 18.2 H.L end + 12249 62324 a 12249 62324 +a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-PARTITIONING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12249 62324 a Black Black 119 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 62324 +a +SDict begin H.S end + 50226 62324 a FU(22)51776 62324 y +SDict begin 18.2 H.L end + 51776 62324 a 51776 +62324 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-PARTITIONING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 62324 a Black 0 TeXcolorgray 2627 64339 +a +SDict begin H.S end + 2627 64339 a FU(3.4)387 b(The)h FR(setup)f FU(Program)16746 +64339 y +SDict begin 18.2 H.L end + 16746 64339 a 16746 64339 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-SETUP) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16746 64339 a Black +Black 271 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 64339 +a +SDict begin H.S end + 50226 64339 a FU(24)51776 64339 y +SDict begin 18.2 H.L end + 51776 64339 a 51776 +64339 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-SETUP) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 64339 a Black 0 TeXcolorgray 5284 66354 +a +SDict begin H.S end + 5284 66354 a FU(3.4.1)g(HELP)12645 66354 y +SDict begin 18.2 H.L end + 12645 66354 +a 12645 66354 a +SDict begin [ /Subtype /Link /Dest (992) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12645 66354 a Black Black 111 w FU(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 66354 +a +SDict begin H.S end + 50226 66354 a FU(25)51776 66354 y +SDict begin 18.2 H.L end + 51776 66354 a 51776 +66354 a +SDict begin [ /Subtype /Link /Dest (992) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 66354 a Black Black 51088 73672 a FR(v)p +Black eop end +%%Page: 6 6 +TeXDict begin 6 5 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 0 TeXcolorgray 5284 3490 a +SDict begin H.S end + 5284 3490 +a FU(3.4.2)387 b(KEYMAP)15314 3490 y +SDict begin 18.2 H.L end + 15314 3490 a 15314 +3490 a +SDict begin [ /Subtype /Link /Dest (1000) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 15314 3490 a Black Black 154 w FU(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 +3490 a +SDict begin H.S end + 50226 3490 a FU(26)51776 3490 y +SDict begin 18.2 H.L end + 51776 3490 a 51776 +3490 a +SDict begin [ /Subtype /Link /Dest (1000) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 3490 a Black 0 TeXcolorgray 5284 5505 a +SDict begin H.S end + +5284 5505 a FU(3.4.3)g(ADDSW)-186 b(AP)16247 5505 y +SDict begin 18.2 H.L end + 16247 +5505 a 16247 5505 a +SDict begin [ /Subtype /Link /Dest (1012) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 16247 5505 a Black Black 383 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 5505 a +SDict begin H.S end + +50226 5505 a FU(27)51776 5505 y +SDict begin 18.2 H.L end + 51776 5505 a 51776 5505 +a +SDict begin [ /Subtype /Link /Dest (1012) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 5505 a Black 0 TeXcolorgray 5284 7520 a +SDict begin H.S end + 5284 +7520 a FU(3.4.4)387 b(T)-144 b(ARGET)14739 7520 y +SDict begin 18.2 H.L end + 14739 +7520 a 14739 7520 a +SDict begin [ /Subtype /Link /Dest (1022) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14739 7520 a Black Black 341 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 7520 a +SDict begin H.S end + +50226 7520 a FU(28)51776 7520 y +SDict begin 18.2 H.L end + 51776 7520 a 51776 7520 +a +SDict begin [ /Subtype /Link /Dest (1022) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 7520 a Black 0 TeXcolorgray 5284 9534 a +SDict begin H.S end + 5284 +9534 a FU(3.4.5)387 b(SOURCE)14885 9534 y +SDict begin 18.2 H.L end + 14885 9534 +a 14885 9534 a +SDict begin [ /Subtype /Link /Dest (1034) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14885 9534 a Black Black 195 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 9534 a +SDict begin H.S end + +50226 9534 a FU(28)51776 9534 y +SDict begin 18.2 H.L end + 51776 9534 a 51776 9534 +a +SDict begin [ /Subtype /Link /Dest (1034) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 9534 a Black 0 TeXcolorgray 5284 11549 a +SDict begin H.S end + 5284 +11549 a FU(3.4.6)g(SELECT)14454 11549 y +SDict begin 18.2 H.L end + 14454 11549 a +14454 11549 a +SDict begin [ /Subtype /Link /Dest (1053) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14454 11549 a Black Black 239 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 11549 +a +SDict begin H.S end + 50226 11549 a FU(29)51776 11549 y +SDict begin 18.2 H.L end + 51776 11549 a 51776 +11549 a +SDict begin [ /Subtype /Link /Dest (1053) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 11549 a Black 0 TeXcolorgray 5284 13564 +a +SDict begin H.S end + 5284 13564 a FU(3.4.7)g(INST)-144 b(ALL)15083 13564 +y +SDict begin 18.2 H.L end + 15083 13564 a 15083 13564 a +SDict begin [ /Subtype /Link /Dest (1061) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 15083 13564 a Black Black +385 w FU(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 13564 +a +SDict begin H.S end + 50226 13564 a FU(30)51776 13564 y +SDict begin 18.2 H.L end + 51776 13564 a 51776 +13564 a +SDict begin [ /Subtype /Link /Dest (1061) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 13564 a Black 0 TeXcolorgray 5284 15578 +a +SDict begin H.S end + 5284 15578 a FU(3.4.8)387 b(CONFIGURE)17639 15578 y +SDict begin 18.2 H.L end + +17639 15578 a 17639 15578 a +SDict begin [ /Subtype /Link /Dest (1099) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 17639 15578 a Black Black +153 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 15578 +a +SDict begin H.S end + 50226 15578 a FU(32)51776 15578 y +SDict begin 18.2 H.L end + 51776 15578 a 51776 +15578 a +SDict begin [ /Subtype /Link /Dest (1099) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 15578 a Black 0 TeXcolorgray -30 17859 +a +SDict begin H.S end + -30 17859 a FX(4)g(System)g(Con\002guration)15556 17859 +y +SDict begin 18.2 H.L end + 15556 17859 a 15556 17859 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15556 17859 a Black Black +299 w FX(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 17859 +a +SDict begin H.S end + 50226 17859 a FX(41)51776 17859 y +SDict begin 18.2 H.L end + 51776 17859 a 51776 +17859 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 17859 a Black 0 TeXcolorgray 2627 20139 +a +SDict begin H.S end + 2627 20139 a FU(4.1)g(System)g(Ov)-23 b(ervie)-39 b(w)15952 +20139 y +SDict begin 18.2 H.L end + 15952 20139 a 15952 20139 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-OVERVIEW) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15952 20139 a Black +Black 290 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 20139 a +SDict begin H.S end + 50226 20139 a FU(41)51776 20139 y +SDict begin 18.2 H.L end + 51776 +20139 a 51776 20139 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-OVERVIEW) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 20139 a Black 0 TeXcolorgray +5284 22154 a +SDict begin H.S end + 5284 22154 a FU(4.1.1)387 b(File)g(System)g(Layout)20912 +22154 y +SDict begin 18.2 H.L end + 20912 22154 a 20912 22154 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-LAYOUT) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20912 22154 a Black +Black 367 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 22154 a +SDict begin H.S end + 50226 22154 a FU(41)51776 22154 y +SDict begin 18.2 H.L end + 51776 +22154 a 51776 22154 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-LAYOUT) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 22154 a Black 0 TeXcolorgray +5284 24168 a +SDict begin H.S end + 5284 24168 a FU(4.1.2)g(Finding)g(Files)16996 +24168 y +SDict begin 18.2 H.L end + 16996 24168 a 16996 24168 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-FINDING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16996 24168 a Black +Black 21 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 24168 +a +SDict begin H.S end + 50226 24168 a FU(44)51776 24168 y +SDict begin 18.2 H.L end + 51776 24168 a 51776 +24168 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-FINDING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 24168 a Black 0 TeXcolorgray 5284 26183 +a +SDict begin H.S end + 5284 26183 a FU(4.1.3)g(The)h FQ(/etc/rc.d)381 b FU(Directory)23531 +26183 y +SDict begin 18.2 H.L end + 23531 26183 a 23531 26183 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-RCD) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23531 26183 a Black +Black 73 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 26183 a +SDict begin H.S end + 50226 26183 a FU(46)51776 +26183 y +SDict begin 18.2 H.L end + 51776 26183 a 51776 26183 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-RCD) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 26183 a Black +0 TeXcolorgray 2627 28198 a +SDict begin H.S end + 2627 28198 a FU(4.2)387 b(Selecting)g(a)g +(K)-39 b(ernel)16360 28198 y +SDict begin 18.2 H.L end + 16360 28198 a 16360 28198 +a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16360 28198 a Black Black 270 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 28198 a +SDict begin H.S end + 50226 28198 a FU(50)51776 28198 y +SDict begin 18.2 H.L end + 51776 +28198 a 51776 28198 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 28198 a Black 0 TeXcolorgray +5284 30212 a +SDict begin H.S end + 5284 30212 a FU(4.2.1)387 b(The)h FQ(/kernels)382 +b FU(Directory)387 b(on)g(the)g(Slackw)-15 b(are)387 +b(CD-R)-62 b(OM)40475 30212 y +SDict begin 18.2 H.L end + 40475 30212 a 40475 30212 +a +SDict begin [ /Subtype /Link /Dest (1580) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 40475 30212 a Black Black 176 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 30212 a +SDict begin H.S end + 50226 30212 a FU(51)51776 +30212 y +SDict begin 18.2 H.L end + 51776 30212 a 51776 30212 a +SDict begin [ /Subtype /Link /Dest (1580) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 30212 a Black +0 TeXcolorgray 5284 32227 a +SDict begin H.S end + 5284 32227 a FU(4.2.2)387 +b(Compiling)f(a)i(K)-39 b(ernel)387 b(from)g(Source)29134 +32227 y +SDict begin 18.2 H.L end + 29134 32227 a 29134 32227 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL-COMPILE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 29134 32227 a Black +Black 281 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 32227 +a +SDict begin H.S end + 50226 32227 a FU(51)51776 32227 y +SDict begin 18.2 H.L end + 51776 32227 a 51776 +32227 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL-COMPILE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 32227 a Black 0 TeXcolorgray 5284 34242 +a +SDict begin H.S end + 5284 34242 a FU(4.2.3)g(Using)g(K)-39 b(ernel)388 b(Modules)22851 +34242 y +SDict begin 18.2 H.L end + 22851 34242 a 22851 34242 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL-MODULES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 22851 34242 a Black +Black 365 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 34242 +a +SDict begin H.S end + 50226 34242 a FU(55)51776 34242 y +SDict begin 18.2 H.L end + 51776 34242 a 51776 +34242 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-KERNEL-MODULES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 34242 a Black 0 TeXcolorgray -30 36522 +a +SDict begin H.S end + -30 36522 a FX(5)f(Netw)-15 b(ork)387 b(Con\002guration)16573 +36522 y +SDict begin 18.2 H.L end + 16573 36522 a 16573 36522 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16573 36522 a Black +Black 57 w FX(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 36522 +a +SDict begin H.S end + 50226 36522 a FX(57)51776 36522 y +SDict begin 18.2 H.L end + 51776 36522 a 51776 +36522 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 36522 a Black 0 TeXcolorgray 2627 38802 +a +SDict begin H.S end + 2627 38802 a FU(5.1)g(Introduction:)g(netcon\002g)f(is)h(your)g +(friend.)28324 38802 y +SDict begin 18.2 H.L end + 28324 38802 a 28324 38802 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NETCONFIG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 28324 +38802 a Black Black 316 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 38802 +a +SDict begin H.S end + 50226 38802 a FU(57)51776 38802 y +SDict begin 18.2 H.L end + 51776 38802 a 51776 +38802 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NETCONFIG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 38802 a Black 0 TeXcolorgray 2627 40817 +a +SDict begin H.S end + 2627 40817 a FU(5.2)g(Netw)-15 b(ork)387 b(Hardw)-15 +b(are)387 b(Con\002guration)25839 40817 y +SDict begin 18.2 H.L end + 25839 40817 +a 25839 40817 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 25839 40817 a Black Black 89 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 40817 a +SDict begin H.S end + 50226 40817 a FU(58)51776 40817 y +SDict begin 18.2 H.L end + 51776 +40817 a 51776 40817 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 40817 a Black 0 TeXcolorgray +5284 42832 a +SDict begin H.S end + 5284 42832 a FU(5.2.1)g(Loading)g(Netw)-15 +b(ork)387 b(Modules)25543 42832 y +SDict begin 18.2 H.L end + 25543 42832 a 25543 +42832 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-MODULES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 25543 42832 a Black Black 385 w FU(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 +42832 a +SDict begin H.S end + 50226 42832 a FU(58)51776 42832 y +SDict begin 18.2 H.L end + 51776 42832 +a 51776 42832 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-MODULES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 42832 a Black 0 TeXcolorgray 5284 +44846 a +SDict begin H.S end + 5284 44846 a FU(5.2.2)g(LAN)h(\(10/100/1000Base-T)d(and)i +(Base-2\))h(cards)36660 44846 y +SDict begin 18.2 H.L end + 36660 44846 a 36660 44846 +a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-LAN) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 36660 44846 a Black Black 117 w FU(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 44846 a +SDict begin H.S end + 50226 44846 a FU(59)51776 +44846 y +SDict begin 18.2 H.L end + 51776 44846 a 51776 44846 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-LAN) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 44846 a Black +0 TeXcolorgray 5284 46861 a +SDict begin H.S end + 5284 46861 a FU(5.2.3)f(Modems)14195 +46861 y +SDict begin 18.2 H.L end + 14195 46861 a 14195 46861 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-MODEMS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14195 46861 a Black +Black 110 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 46861 +a +SDict begin H.S end + 50226 46861 a FU(59)51776 46861 y +SDict begin 18.2 H.L end + 51776 46861 a 51776 +46861 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-MODEMS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 46861 a Black 0 TeXcolorgray 5284 48876 +a +SDict begin H.S end + 5284 48876 a FU(5.2.4)g(PCMCIA)14713 48876 y +SDict begin 18.2 H.L end + 14713 +48876 a 14713 48876 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-PCMCIA) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14713 48876 a Black Black 367 w +FU(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 48876 +a +SDict begin H.S end + 50226 48876 a FU(60)51776 48876 y +SDict begin 18.2 H.L end + 51776 48876 a 51776 +48876 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-HARDWARE-PCMCIA) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 48876 a Black 0 TeXcolorgray 2627 50890 +a +SDict begin H.S end + 2627 50890 a FU(5.3)g(TCP/IP)g(Con\002guration)18602 +50890 y +SDict begin 18.2 H.L end + 18602 50890 a 18602 50890 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18602 50890 a Black +Black 352 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 +50890 a +SDict begin H.S end + 50226 50890 a FU(61)51776 50890 y +SDict begin 18.2 H.L end + 51776 50890 +a 51776 50890 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 50890 a Black 0 TeXcolorgray 5284 +52905 a +SDict begin H.S end + 5284 52905 a FU(5.3.1)g(DHCP)12904 52905 y +SDict begin 18.2 H.L end + 12904 +52905 a 12904 52905 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-DHCP) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12904 52905 a Black Black 239 w +FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 52905 +a +SDict begin H.S end + 50226 52905 a FU(61)51776 52905 y +SDict begin 18.2 H.L end + 51776 52905 a 51776 +52905 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-DHCP) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 52905 a Black 0 TeXcolorgray 5284 54920 +a +SDict begin H.S end + 5284 54920 a FU(5.3.2)g(Static)g(IP)14066 54920 y +SDict begin 18.2 H.L end + 14066 +54920 a 14066 54920 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-STATIC) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14066 54920 a Black Black 239 w +FU(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 54920 +a +SDict begin H.S end + 50226 54920 a FU(63)51776 54920 y +SDict begin 18.2 H.L end + 51776 54920 a 51776 +54920 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-STATIC) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 54920 a Black 0 TeXcolorgray 5284 56934 +a +SDict begin H.S end + 5284 56934 a FU(5.3.3)g FQ(/etc/rc.d/rc.inet1.conf)23191 +56934 y +SDict begin 18.2 H.L end + 23191 56934 a 23191 56934 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-CONF) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23191 56934 a Black +Black 25 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 56934 +a +SDict begin H.S end + 50226 56934 a FU(63)51776 56934 y +SDict begin 18.2 H.L end + 51776 56934 a 51776 +56934 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-CONF) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 56934 a Black 0 TeXcolorgray 5284 58949 +a +SDict begin H.S end + 5284 58949 a FU(5.3.4)g FQ(/etc/resolv.conf)18802 58949 +y +SDict begin 18.2 H.L end + 18802 58949 a 18802 58949 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-RESOLVER) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18802 58949 a Black Black +152 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 58949 +a +SDict begin H.S end + 50226 58949 a FU(64)51776 58949 y +SDict begin 18.2 H.L end + 51776 58949 a 51776 +58949 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-RESOLVER) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 58949 a Black 0 TeXcolorgray 5284 60964 +a +SDict begin H.S end + 5284 60964 a FU(5.3.5)g FQ(/etc/hosts)15040 60964 y +SDict begin 18.2 H.L end + +15040 60964 a 15040 60964 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-HOSTS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15040 60964 a Black Black +40 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 60964 +a +SDict begin H.S end + 50226 60964 a FU(65)51776 60964 y +SDict begin 18.2 H.L end + 51776 60964 a 51776 +60964 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-TCPIP-HOSTS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 60964 a Black 0 TeXcolorgray 2627 62978 +a +SDict begin H.S end + 2627 62978 a FU(5.4)g(PPP)7537 62978 y +SDict begin 18.2 H.L end + 7537 62978 a +7537 62978 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-PPP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7537 62978 a Black Black 182 w FU(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 62978 +a +SDict begin H.S end + 50226 62978 a FU(65)51776 62978 y +SDict begin 18.2 H.L end + 51776 62978 a 51776 +62978 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-PPP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 62978 a Black 0 TeXcolorgray 5284 64993 +a +SDict begin H.S end + 5284 64993 a FU(5.4.1)g FR(pppsetup)14367 64993 y +SDict begin 18.2 H.L end + 14367 +64993 a 14367 64993 a +SDict begin [ /Subtype /Link /Dest (1953) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14367 64993 a Black Black 326 w +FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 +64993 a +SDict begin H.S end + 50226 64993 a FU(66)51776 64993 y +SDict begin 18.2 H.L end + 51776 64993 +a 51776 64993 a +SDict begin [ /Subtype /Link /Dest (1953) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 64993 a Black 0 TeXcolorgray 5284 +67008 a +SDict begin H.S end + 5284 67008 a FU(5.4.2)g FQ(/etc/ppp)13786 67008 +y +SDict begin 18.2 H.L end + 13786 67008 a 13786 67008 a +SDict begin [ /Subtype /Link /Dest (1968) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 13786 67008 a Black Black +132 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 67008 +a +SDict begin H.S end + 50226 67008 a FU(66)51776 67008 y +SDict begin 18.2 H.L end + 51776 67008 a 51776 +67008 a +SDict begin [ /Subtype /Link /Dest (1968) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 67008 a Black Black -30 73672 a FR(vi)p +Black eop end +%%Page: 7 7 +TeXDict begin 7 6 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 0 TeXcolorgray 2627 3490 a +SDict begin H.S end + 2627 3490 +a FU(5.5)387 b(W)-62 b(ireless)10312 3490 y +SDict begin 18.2 H.L end + 10312 3490 +a 10312 3490 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-WIRELESS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 10312 3490 a Black Black 119 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 3490 a +SDict begin H.S end + +50226 3490 a FU(67)51776 3490 y +SDict begin 18.2 H.L end + 51776 3490 a 51776 3490 +a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-WIRELESS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 3490 a Black 0 TeXcolorgray 5284 5505 a +SDict begin H.S end + 5284 +5505 a FU(5.5.1)387 b(Hardw)-15 b(are)387 b(Support)20160 +5505 y +SDict begin 18.2 H.L end + 20160 5505 a 20160 5505 a +SDict begin [ /Subtype /Link /Dest (2032) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 20160 5505 a Black Black +344 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 5505 a +SDict begin H.S end + +50226 5505 a FU(67)51776 5505 y +SDict begin 18.2 H.L end + 51776 5505 a 51776 5505 +a +SDict begin [ /Subtype /Link /Dest (2032) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 5505 a Black 0 TeXcolorgray 5284 7520 a +SDict begin H.S end + 5284 +7520 a FU(5.5.2)g(Con\002gure)g(the)g(W)-62 b(ireless)387 +b(Settings)28382 7520 y +SDict begin 18.2 H.L end + 28382 7520 a 28382 7520 a +SDict begin [ /Subtype /Link /Dest (2043) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 28382 +7520 a Black Black 258 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 7520 a +SDict begin H.S end + +50226 7520 a FU(68)51776 7520 y +SDict begin 18.2 H.L end + 51776 7520 a 51776 7520 +a +SDict begin [ /Subtype /Link /Dest (2043) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 7520 a Black 0 TeXcolorgray 5284 9534 a +SDict begin H.S end + 5284 +9534 a FU(5.5.3)g(Con\002gure)g(the)g(Netw)-15 b(ork)23046 +9534 y +SDict begin 18.2 H.L end + 23046 9534 a 23046 9534 a +SDict begin [ /Subtype /Link /Dest (2100) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 23046 9534 a Black Black +170 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 9534 a +SDict begin H.S end + +50226 9534 a FU(69)51776 9534 y +SDict begin 18.2 H.L end + 51776 9534 a 51776 9534 +a +SDict begin [ /Subtype /Link /Dest (2100) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 9534 a Black 0 TeXcolorgray 2627 11549 a +SDict begin H.S end + 2627 +11549 a FU(5.6)387 b(Netw)-15 b(ork)387 b(File)g(Systems)18713 +11549 y +SDict begin 18.2 H.L end + 18713 11549 a 18713 11549 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18713 11549 a Black +Black 241 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 +11549 a +SDict begin H.S end + 50226 11549 a FU(70)51776 11549 y +SDict begin 18.2 H.L end + 51776 11549 +a 51776 11549 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 11549 a Black 0 TeXcolorgray 5284 +13564 a +SDict begin H.S end + 5284 13564 a FU(5.6.1)g(SMB/Samba/CIFS)20399 +13564 y +SDict begin 18.2 H.L end + 20399 13564 a 20399 13564 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NSF-SMB) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20399 13564 a Black +Black 105 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 13564 +a +SDict begin H.S end + 50226 13564 a FU(70)51776 13564 y +SDict begin 18.2 H.L end + 51776 13564 a 51776 +13564 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NSF-SMB) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 13564 a Black 0 TeXcolorgray 5284 15578 +a +SDict begin H.S end + 5284 15578 a FU(5.6.2)g(Netw)-15 b(ork)387 b(File)g(System)f(\(NFS\)) +26190 15578 y +SDict begin 18.2 H.L end + 26190 15578 a 26190 15578 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS-NFS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 26190 15578 +a Black Black 126 w FU(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 15578 a +SDict begin H.S end + 50226 15578 a FU(72)51776 +15578 y +SDict begin 18.2 H.L end + 51776 15578 a 51776 15578 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS-NFS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 15578 a Black +0 TeXcolorgray -30 17859 a +SDict begin H.S end + -30 17859 a FX(6)h(X)h(Con\002guration)11941 +17859 y +SDict begin 18.2 H.L end + 11941 17859 a 11941 17859 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11941 17859 a Black +Black 40 w FX(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 17859 +a +SDict begin H.S end + 50226 17859 a FX(75)51776 17859 y +SDict begin 18.2 H.L end + 51776 17859 a 51776 +17859 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 17859 a Black 0 TeXcolorgray 2627 20139 +a +SDict begin H.S end + 2627 20139 a FU(6.1)f FR(xor)-57 b(gcon\002g)11523 +20139 y +SDict begin 18.2 H.L end + 11523 20139 a 11523 20139 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XORGCONFIG) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11523 20139 a Black +Black 70 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 20139 +a +SDict begin H.S end + 50226 20139 a FU(75)51776 20139 y +SDict begin 18.2 H.L end + 51776 20139 a 51776 +20139 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XORGCONFIG) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 20139 a Black 0 TeXcolorgray 2627 22154 +a +SDict begin H.S end + 2627 22154 a FU(6.2)387 b FR(xor)-57 b(gsetup)11007 +22154 y +SDict begin 18.2 H.L end + 11007 22154 a 11007 22154 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XORGSETUP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11007 22154 a Black +Black 199 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray 50226 +22154 a +SDict begin H.S end + 50226 22154 a FU(81)51776 22154 y +SDict begin 18.2 H.L end + 51776 22154 +a 51776 22154 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XORGSETUP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 22154 a Black 0 TeXcolorgray 2627 +24168 a +SDict begin H.S end + 2627 24168 a FU(6.3)387 b(xinitrc)8998 24168 +y +SDict begin 18.2 H.L end + 8998 24168 a 8998 24168 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XINITRC) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8998 24168 a Black Black +271 w FU(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 24168 +a +SDict begin H.S end + 50226 24168 a FU(81)51776 24168 y +SDict begin 18.2 H.L end + 51776 24168 a 51776 +24168 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XINITRC) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 24168 a Black 0 TeXcolorgray 2627 26183 +a +SDict begin H.S end + 2627 26183 a FU(6.4)g FR(xwmcon\002g)11580 26183 y +SDict begin 18.2 H.L end + +11580 26183 a 11580 26183 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XWMCONFIG) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11580 26183 a Black Black +13 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 26183 +a +SDict begin H.S end + 50226 26183 a FU(83)51776 26183 y +SDict begin 18.2 H.L end + 51776 26183 a 51776 +26183 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XWMCONFIG) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 26183 a Black 0 TeXcolorgray 2627 28198 +a +SDict begin H.S end + 2627 28198 a FU(6.5)g FR(xdm)7533 28198 y +SDict begin 18.2 H.L end + 7533 28198 +a 7533 28198 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XDM) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7533 28198 a Black Black 186 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 28198 +a +SDict begin H.S end + 50226 28198 a FU(85)51776 28198 y +SDict begin 18.2 H.L end + 51776 28198 a 51776 +28198 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-XDM) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 28198 a Black 0 TeXcolorgray -30 30478 +a +SDict begin H.S end + -30 30478 a FX(7)g(Booting)6300 30478 y +SDict begin 18.2 H.L end + 6300 30478 +a 6300 30478 a +SDict begin [ /Subtype /Link /Dest (BOOTING) cvn /H /I /Border [0 0 +0] /Color [1 0 0] H.B /ANN pdfmark end + 6300 30478 a Black Black 257 w FX(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 30478 +a +SDict begin H.S end + 50226 30478 a FX(89)51776 30478 y +SDict begin 18.2 H.L end + 51776 30478 a 51776 +30478 a +SDict begin [ /Subtype /Link /Dest (BOOTING) cvn /H /I /Border [0 0 +0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 30478 a Black 0 TeXcolorgray 2627 32758 +a +SDict begin H.S end + 2627 32758 a FU(7.1)g(LILO)8480 32758 y +SDict begin 18.2 H.L end + 8480 32758 +a 8480 32758 a +SDict begin [ /Subtype /Link /Dest (BOOTING-LILO) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8480 32758 a Black Black 14 w FU(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 32758 +a +SDict begin H.S end + 50226 32758 a FU(89)51776 32758 y +SDict begin 18.2 H.L end + 51776 32758 a 51776 +32758 a +SDict begin [ /Subtype /Link /Dest (BOOTING-LILO) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 32758 a Black 0 TeXcolorgray 2627 34773 +a +SDict begin H.S end + 2627 34773 a FU(7.2)g(LO)-54 b(ADLIN)11783 34773 y +SDict begin 18.2 H.L end + +11783 34773 a 11783 34773 a +SDict begin [ /Subtype /Link /Dest (BOOTING-LOADLIN) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11783 34773 a Black Black +198 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 34773 +a +SDict begin H.S end + 50226 34773 a FU(93)51776 34773 y +SDict begin 18.2 H.L end + 51776 34773 a 51776 +34773 a +SDict begin [ /Subtype /Link /Dest (BOOTING-LOADLIN) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 34773 a Black 0 TeXcolorgray 2627 36788 +a +SDict begin H.S end + 2627 36788 a FU(7.3)387 b(Dual)h(Booting)13348 36788 +y +SDict begin 18.2 H.L end + 13348 36788 a 13348 36788 a +SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 13348 36788 a Black Black +182 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 36788 a +SDict begin H.S end + 50226 36788 a FU(94)51776 36788 y +SDict begin 18.2 H.L end + 51776 +36788 a 51776 36788 a +SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 36788 a Black 0 TeXcolorgray +5284 38802 a +SDict begin H.S end + 5284 38802 a FU(7.3.1)f(W)-62 b(indo)-39 +b(ws)14610 38802 y +SDict begin 18.2 H.L end + 14610 38802 a 14610 38802 a +SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL-WINDOWS) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14610 +38802 a Black Black 83 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 38802 +a +SDict begin H.S end + 50226 38802 a FU(94)51776 38802 y +SDict begin 18.2 H.L end + 51776 38802 a 51776 +38802 a +SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL-WINDOWS) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 38802 a Black 0 TeXcolorgray 5284 40817 +a +SDict begin H.S end + 5284 40817 a FU(7.3.2)387 b(Linux)12473 40817 y +SDict begin 18.2 H.L end + 12473 +40817 a 12473 40817 a +SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL-LINUX) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12473 40817 a Black Black 283 w +FU(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 40817 +a +SDict begin H.S end + 50226 40817 a FU(99)51776 40817 y +SDict begin 18.2 H.L end + 51776 40817 a 51776 +40817 a +SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL-LINUX) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 40817 a Black 0 TeXcolorgray -30 43097 +a +SDict begin H.S end + -30 43097 a FX(8)g(The)g(Shell)7377 43097 y +SDict begin 18.2 H.L end + 7377 43097 +a 7377 43097 a +SDict begin [ /Subtype /Link /Dest (SHELL) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7377 43097 a Black Black 342 w FX(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 43097 a +SDict begin H.S end + 49451 43097 a FX(101)51776 +43097 y +SDict begin 18.2 H.L end + 51776 43097 a 51776 43097 a +SDict begin [ /Subtype /Link /Dest (SHELL) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 43097 a Black +0 TeXcolorgray 2627 45378 a +SDict begin H.S end + 2627 45378 a FU(8.1)g(Users)8480 +45378 y +SDict begin 18.2 H.L end + 8480 45378 a 8480 45378 a +SDict begin [ /Subtype /Link /Dest (SHELL-USERS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8480 45378 a Black +Black 14 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 45378 a +SDict begin H.S end + 49451 45378 a FU(101)51776 +45378 y +SDict begin 18.2 H.L end + 51776 45378 a 51776 45378 a +SDict begin [ /Subtype /Link /Dest (SHELL-USERS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 45378 a Black +0 TeXcolorgray 5284 47392 a +SDict begin H.S end + 5284 47392 a FU(8.1.1)g(Logging)g(In)15701 +47392 y +SDict begin 18.2 H.L end + 15701 47392 a 15701 47392 a +SDict begin [ /Subtype /Link /Dest (2677) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 15701 47392 a Black +Black 154 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 47392 a +SDict begin H.S end + 49451 47392 a FU(101)51776 +47392 y +SDict begin 18.2 H.L end + 51776 47392 a 51776 47392 a +SDict begin [ /Subtype /Link /Dest (2677) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 47392 a Black +0 TeXcolorgray 5284 49407 a +SDict begin H.S end + 5284 49407 a FU(8.1.2)g(Root:)g(The)g +(Superuser)21598 49407 y +SDict begin 18.2 H.L end + 21598 49407 a 21598 49407 a +SDict begin [ /Subtype /Link /Dest (2692) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +21598 49407 a Black Black 69 w FU(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 49407 a +SDict begin H.S end + 49451 49407 a FU(102)51776 +49407 y +SDict begin 18.2 H.L end + 51776 49407 a 51776 49407 a +SDict begin [ /Subtype /Link /Dest (2692) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 49407 a Black +0 TeXcolorgray 2627 51422 a +SDict begin H.S end + 2627 51422 a FU(8.2)g(The)h(Command)e(Line) +17435 51422 y +SDict begin 18.2 H.L end + 17435 51422 a 17435 51422 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17435 51422 +a Black Black 357 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 51422 a +SDict begin H.S end + 49451 51422 a FU(103)51776 +51422 y +SDict begin 18.2 H.L end + 51776 51422 a 51776 51422 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 51422 a Black +0 TeXcolorgray 5284 53436 a +SDict begin H.S end + 5284 53436 a FU(8.2.1)h(Running)g(Programs) +20438 53436 y +SDict begin 18.2 H.L end + 20438 53436 a 20438 53436 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-RUNNING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20438 53436 +a Black Black 66 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 53436 a +SDict begin H.S end + 49451 53436 a FU(103)51776 +53436 y +SDict begin 18.2 H.L end + 51776 53436 a 51776 53436 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-RUNNING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 53436 a Black +0 TeXcolorgray 5284 55451 a +SDict begin H.S end + 5284 55451 a FU(8.2.2)g(W)-62 +b(ildcard)387 b(Matching)20803 55451 y +SDict begin 18.2 H.L end + 20803 55451 a +20803 55451 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-WILDCARD) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20803 55451 a Black Black 89 w FU(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 55451 a +SDict begin H.S end + 49451 55451 a FU(103)51776 +55451 y +SDict begin 18.2 H.L end + 51776 55451 a 51776 55451 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-WILDCARD) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 55451 a Black +0 TeXcolorgray 5284 57466 a +SDict begin H.S end + 5284 57466 a FU(8.2.3)g(Input/Output)f +(Redirection)h(and)g(Piping)31458 57466 y +SDict begin 18.2 H.L end + 31458 57466 +a 31458 57466 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-PIPING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 31458 57466 a Black Black 282 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black 0 TeXcolorgray +49451 57466 a +SDict begin H.S end + 49451 57466 a FU(105)51776 57466 y +SDict begin 18.2 H.L end + 51776 +57466 a 51776 57466 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-PIPING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 57466 a Black 0 TeXcolorgray +2627 59480 a +SDict begin H.S end + 2627 59480 a FU(8.3)g(The)h(Bourne)f(Ag)-8 +b(ain)387 b(Shell)f(\(bash\))24312 59480 y +SDict begin 18.2 H.L end + 24312 59480 +a 24312 59480 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 24312 59480 a Black Black 67 w FU(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black 0 TeXcolorgray 49451 59480 a +SDict begin H.S end + 49451 59480 +a FU(106)51776 59480 y +SDict begin 18.2 H.L end + 51776 59480 a 51776 59480 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 +59480 a Black 0 TeXcolorgray 5284 61495 a +SDict begin H.S end + 5284 61495 +a FU(8.3.1)h(En)-62 b(vironment)387 b(V)-172 b(ariables)22956 +61495 y +SDict begin 18.2 H.L end + 22956 61495 a 22956 61495 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 22956 61495 a Black +Black 260 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 61495 a +SDict begin H.S end + 49451 61495 a FU(106)51776 +61495 y +SDict begin 18.2 H.L end + 51776 61495 a 51776 61495 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 61495 a Black +0 TeXcolorgray 5284 63510 a +SDict begin H.S end + 5284 63510 a FU(8.3.2)387 +b(T)-124 b(ab)388 b(Completion)18765 63510 y +SDict begin 18.2 H.L end + 18765 63510 +a 18765 63510 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH-TAB) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18765 63510 a Black Black 189 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 63510 a +SDict begin H.S end + 49451 63510 a FU(108)51776 +63510 y +SDict begin 18.2 H.L end + 51776 63510 a 51776 63510 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH-TAB) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 63510 a Black +0 TeXcolorgray 2627 65524 a +SDict begin H.S end + 2627 65524 a FU(8.4)f(V)-93 +b(irtual)387 b(T)-108 b(erminals)15813 65524 y +SDict begin 18.2 H.L end + 15813 +65524 a 15813 65524 a +SDict begin [ /Subtype /Link /Dest (SHELL-VT) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15813 65524 a Black Black 42 w +FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 65524 a +SDict begin H.S end + 49451 65524 a FU(109)51776 +65524 y +SDict begin 18.2 H.L end + 51776 65524 a 51776 65524 a +SDict begin [ /Subtype /Link /Dest (SHELL-VT) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 65524 a Black +0 TeXcolorgray 5284 67539 a +SDict begin H.S end + 5284 67539 a FU(8.4.1)387 +b(Screen)12987 67539 y +SDict begin 18.2 H.L end + 12987 67539 a 12987 67539 a +SDict begin [ /Subtype /Link /Dest (3023) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12987 +67539 a Black Black 156 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 67539 a +SDict begin H.S end + 49451 67539 a FU(110)51776 +67539 y +SDict begin 18.2 H.L end + 51776 67539 a 51776 67539 a +SDict begin [ /Subtype /Link /Dest (3023) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 67539 a Black +Black 50226 73672 a FR(vii)p Black eop end +%%Page: 8 8 +TeXDict begin 8 7 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.8) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 0 TeXcolorgray -30 3490 a +SDict begin H.S end + -30 3490 +a FX(9)387 b(Filesystem)g(Structur)-28 b(e)14834 3490 +y +SDict begin 18.2 H.L end + 14834 3490 a 14834 3490 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14834 3490 a Black Black +246 w FX(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 3490 a +SDict begin H.S end + 49451 3490 a FX(111)51776 3490 +y +SDict begin 18.2 H.L end + 51776 3490 a 51776 3490 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 3490 a Black 0 TeXcolorgray +2627 5771 a +SDict begin H.S end + 2627 5771 a FU(9.1)387 b(Ownership)11752 +5771 y +SDict begin 18.2 H.L end + 11752 5771 a 11752 5771 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-OWNERSHIP) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11752 5771 a Black Black +229 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 5771 a +SDict begin H.S end + 49451 5771 a FU(111)51776 5771 +y +SDict begin 18.2 H.L end + 51776 5771 a 51776 5771 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-OWNERSHIP) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 5771 a Black 0 TeXcolorgray +2627 7785 a +SDict begin H.S end + 2627 7785 a FU(9.2)g(Permissions)12444 7785 +y +SDict begin 18.2 H.L end + 12444 7785 a 12444 7785 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-PERMISSIONS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12444 7785 a Black Black +312 w FU(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 7785 a +SDict begin H.S end + 49451 7785 a FU(112)51776 7785 +y +SDict begin 18.2 H.L end + 51776 7785 a 51776 7785 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-PERMISSIONS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 7785 a Black 0 TeXcolorgray +2627 9800 a +SDict begin H.S end + 2627 9800 a FU(9.3)g(Links)8482 9800 y +SDict begin 18.2 H.L end + 8482 +9800 a 8482 9800 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-LINKS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8482 9800 a Black Black 12 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 9800 a +SDict begin H.S end + 49451 9800 a FU(115)51776 9800 +y +SDict begin 18.2 H.L end + 51776 9800 a 51776 9800 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-LINKS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 9800 a Black 0 TeXcolorgray +2627 11815 a +SDict begin H.S end + 2627 11815 a FU(9.4)g(Mounting)g(De)-39 +b(vices)16406 11815 y +SDict begin 18.2 H.L end + 16406 11815 a 16406 11815 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-MOUNTING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16406 +11815 a Black Black 224 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 11815 a +SDict begin H.S end + 49451 11815 a FU(116)51776 +11815 y +SDict begin 18.2 H.L end + 51776 11815 a 51776 11815 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-MOUNTING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 11815 a Black +0 TeXcolorgray 5284 13829 a +SDict begin H.S end + 5284 13829 a FU(9.4.1)387 +b FQ(fstab)11905 13829 y +SDict begin 18.2 H.L end + 11905 13829 a 11905 13829 a +SDict begin [ /Subtype /Link /Dest (3318) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +11905 13829 a Black Black 76 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 13829 a +SDict begin H.S end + 49451 13829 a FU(117)51776 +13829 y +SDict begin 18.2 H.L end + 51776 13829 a 51776 13829 a +SDict begin [ /Subtype /Link /Dest (3318) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 13829 a Black +0 TeXcolorgray 5284 15844 a +SDict begin H.S end + 5284 15844 a FU(9.4.2)g FR(mount)415 +b FU(and)387 b FR(umount)20363 15844 y +SDict begin 18.2 H.L end + 20363 15844 a +20363 15844 a +SDict begin [ /Subtype /Link /Dest (3339) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 20363 15844 a Black Black 141 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 15844 a +SDict begin H.S end + 49451 15844 a FU(118)51776 +15844 y +SDict begin 18.2 H.L end + 51776 15844 a 51776 15844 a +SDict begin [ /Subtype /Link /Dest (3339) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 15844 a Black +0 TeXcolorgray 2627 17859 a +SDict begin H.S end + 2627 17859 a FU(9.5)g(NFS)g(Mounts)12918 +17859 y +SDict begin 18.2 H.L end + 12918 17859 a 12918 17859 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-NFS) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12918 17859 a Black +Black 225 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 17859 a +SDict begin H.S end + 49451 17859 a FU(119)51776 +17859 y +SDict begin 18.2 H.L end + 51776 17859 a 51776 17859 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-NFS) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 17859 a Black +0 TeXcolorgray -30 20139 a +SDict begin H.S end + -30 20139 a FX(10)g(Handling)f(Files)h(and)f +(Dir)-28 b(ectories)22156 20139 y +SDict begin 18.2 H.L end + 22156 20139 a 22156 +20139 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 22156 20139 a Black Black 285 w FX(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 20139 a +SDict begin H.S end + 49451 20139 a FX(121)51776 +20139 y +SDict begin 18.2 H.L end + 51776 20139 a 51776 20139 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 20139 a Black +0 TeXcolorgray 2627 22419 a +SDict begin H.S end + 2627 22419 a FU(10.1)387 +b(Na)-31 b(vig)-8 b(ation)387 b(:)g FR(ls)p FU(,)h FR(cd)42 +b FU(,)387 b(and)h FR(pwd)23120 22419 y +SDict begin 18.2 H.L end + 23120 22419 a +23120 22419 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-NAVIGATION) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23120 22419 a Black Black 96 w FU(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 22419 a +SDict begin H.S end + 49451 22419 a FU(121)51776 +22419 y +SDict begin 18.2 H.L end + 51776 22419 a 51776 22419 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-NAVIGATION) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 22419 a Black +0 TeXcolorgray 5284 24434 a +SDict begin H.S end + 5284 24434 a FU(10.1.1)f +FR(ls)10579 24434 y +SDict begin 18.2 H.L end + 10579 24434 a 10579 24434 a +SDict begin [ /Subtype /Link /Dest (3397) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10579 +24434 a Black Black 239 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 24434 a +SDict begin H.S end + 49451 24434 a FU(121)51776 +24434 y +SDict begin 18.2 H.L end + 51776 24434 a 51776 24434 a +SDict begin [ /Subtype /Link /Dest (3397) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 24434 a Black +0 TeXcolorgray 5284 26449 a +SDict begin H.S end + 5284 26449 a FU(10.1.2)g +FR(cd)11050 26449 y +SDict begin 18.2 H.L end + 11050 26449 a 11050 26449 a +SDict begin [ /Subtype /Link /Dest (3435) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11050 +26449 a Black Black 156 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 26449 a +SDict begin H.S end + 49451 26449 a FU(123)51776 +26449 y +SDict begin 18.2 H.L end + 51776 26449 a 51776 26449 a +SDict begin [ /Subtype /Link /Dest (3435) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 26449 a Black +0 TeXcolorgray 5284 28463 a +SDict begin H.S end + 5284 28463 a FU(10.1.3)g +FR(pwd)12171 28463 y +SDict begin 18.2 H.L end + 12171 28463 a 12171 28463 a +SDict begin [ /Subtype /Link /Dest (3462) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12171 +28463 a Black Black 197 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 28463 a +SDict begin H.S end + 49451 28463 a FU(123)51776 +28463 y +SDict begin 18.2 H.L end + 51776 28463 a 51776 28463 a +SDict begin [ /Subtype /Link /Dest (3462) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 28463 a Black +0 TeXcolorgray 2627 30478 a +SDict begin H.S end + 2627 30478 a FU(10.2)g(P)-23 +b(agers:)387 b FR(mor)-57 b(e)p FU(,)387 b FR(less)p +FU(,)h(and)f FR(most)23236 30478 y +SDict begin 18.2 H.L end + 23236 30478 a 23236 +30478 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-PAGERS) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23236 30478 a Black Black 368 w FU(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 30478 a +SDict begin H.S end + 49451 30478 a FU(124)51776 +30478 y +SDict begin 18.2 H.L end + 51776 30478 a 51776 30478 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-PAGERS) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 30478 a Black +0 TeXcolorgray 5284 32493 a +SDict begin H.S end + 5284 32493 a FU(10.2.1)g +FR(mor)-57 b(e)12673 32493 y +SDict begin 18.2 H.L end + 12673 32493 a 12673 32493 +a +SDict begin [ /Subtype /Link /Dest (3490) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12673 32493 a Black Black 83 w FU(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 32493 a +SDict begin H.S end + 49451 32493 a FU(124)51776 +32493 y +SDict begin 18.2 H.L end + 51776 32493 a 51776 32493 a +SDict begin [ /Subtype /Link /Dest (3490) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 32493 a Black +0 TeXcolorgray 5284 34507 a +SDict begin H.S end + 5284 34507 a FU(10.2.2)387 +b FR(less)11870 34507 y +SDict begin 18.2 H.L end + 11870 34507 a 11870 34507 a +SDict begin [ /Subtype /Link /Dest (3517) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11870 +34507 a Black Black 111 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 34507 a +SDict begin H.S end + 49451 34507 a FU(125)51776 +34507 y +SDict begin 18.2 H.L end + 51776 34507 a 51776 34507 a +SDict begin [ /Subtype /Link /Dest (3517) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 34507 a Black +0 TeXcolorgray 5284 36522 a +SDict begin H.S end + 5284 36522 a FU(10.2.3)g +FR(most)12501 36522 y +SDict begin 18.2 H.L end + 12501 36522 a 12501 36522 a +SDict begin [ /Subtype /Link /Dest (3538) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12501 +36522 a Black Black 255 w FU(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 36522 a +SDict begin H.S end + 49451 36522 a FU(125)51776 +36522 y +SDict begin 18.2 H.L end + 51776 36522 a 51776 36522 a +SDict begin [ /Subtype /Link /Dest (3538) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 36522 a Black +0 TeXcolorgray 2627 38537 a +SDict begin H.S end + 2627 38537 a FU(10.3)g(Simple)g(Output:)f +FR(cat)415 b FU(and)387 b FR(ec)-23 b(ho)23466 38537 +y +SDict begin 18.2 H.L end + 23466 38537 a 23466 38537 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-OUTPUT) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23466 38537 a Black Black +138 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 38537 a +SDict begin H.S end + 49451 38537 a FU(125)51776 +38537 y +SDict begin 18.2 H.L end + 51776 38537 a 51776 38537 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-OUTPUT) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 38537 a Black +0 TeXcolorgray 5284 40551 a +SDict begin H.S end + 5284 40551 a FU(10.3.1)387 +b FR(cat)11467 40551 y +SDict begin 18.2 H.L end + 11467 40551 a 11467 40551 a +SDict begin [ /Subtype /Link /Dest (3558) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11467 +40551 a Black Black 126 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 40551 a +SDict begin H.S end + 49451 40551 a FU(125)51776 +40551 y +SDict begin 18.2 H.L end + 51776 40551 a 51776 40551 a +SDict begin [ /Subtype /Link /Dest (3558) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 40551 a Black +0 TeXcolorgray 5284 42566 a +SDict begin H.S end + 5284 42566 a FU(10.3.2)g +FR(ec)-23 b(ho)12448 42566 y +SDict begin 18.2 H.L end + 12448 42566 a 12448 42566 +a +SDict begin [ /Subtype /Link /Dest (3602) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12448 42566 a Black Black 308 w FU(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 42566 a +SDict begin H.S end + 49451 42566 a FU(126)51776 +42566 y +SDict begin 18.2 H.L end + 51776 42566 a 51776 42566 a +SDict begin [ /Subtype /Link /Dest (3602) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 42566 a Black +0 TeXcolorgray 2627 44581 a +SDict begin H.S end + 2627 44581 a FU(10.4)387 +b(Creation:)g FR(touc)-23 b(h)387 b FU(and)g FR(mkdir)21967 +44581 y +SDict begin 18.2 H.L end + 21967 44581 a 21967 44581 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-CREATION) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 21967 44581 a Black +Black 87 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 44581 a +SDict begin H.S end + 49451 44581 a FU(126)51776 +44581 y +SDict begin 18.2 H.L end + 51776 44581 a 51776 44581 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-CREATION) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 44581 a Black +0 TeXcolorgray 5284 46595 a +SDict begin H.S end + 5284 46595 a FU(10.4.1)g +FR(touc)-23 b(h)12966 46595 y +SDict begin 18.2 H.L end + 12966 46595 a 12966 46595 +a +SDict begin [ /Subtype /Link /Dest (3618) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12966 46595 a Black Black 177 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 46595 a +SDict begin H.S end + 49451 46595 a FU(127)51776 +46595 y +SDict begin 18.2 H.L end + 51776 46595 a 51776 46595 a +SDict begin [ /Subtype /Link /Dest (3618) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 46595 a Black +0 TeXcolorgray 5284 48610 a +SDict begin H.S end + 5284 48610 a FU(10.4.2)387 +b FR(mkdir)13197 48610 y +SDict begin 18.2 H.L end + 13197 48610 a 13197 48610 a +SDict begin [ /Subtype /Link /Dest (3638) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +13197 48610 a Black Black 333 w FU(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 48610 a +SDict begin H.S end + 49451 48610 a FU(127)51776 +48610 y +SDict begin 18.2 H.L end + 51776 48610 a 51776 48610 a +SDict begin [ /Subtype /Link /Dest (3638) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 48610 a Black +0 TeXcolorgray 2627 50625 a +SDict begin H.S end + 2627 50625 a FU(10.5)g(Cop)-15 +b(y)387 b(and)g(Mo)-23 b(v)g(e)15652 50625 y +SDict begin 18.2 H.L end + 15652 50625 +a 15652 50625 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15652 50625 a Black Black 203 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 50625 a +SDict begin H.S end + 49451 50625 a FU(128)51776 +50625 y +SDict begin 18.2 H.L end + 51776 50625 a 51776 50625 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 50625 a Black +0 TeXcolorgray 5284 52639 a +SDict begin H.S end + 5284 52639 a FU(10.5.1)387 +b FR(cp)11008 52639 y +SDict begin 18.2 H.L end + 11008 52639 a 11008 52639 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE-CP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11008 +52639 a Black Black 198 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 52639 a +SDict begin H.S end + 49451 52639 a FU(128)51776 +52639 y +SDict begin 18.2 H.L end + 51776 52639 a 51776 52639 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE-CP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 52639 a Black +0 TeXcolorgray 5284 54654 a +SDict begin H.S end + 5284 54654 a FU(10.5.2)g +FR(mv)11352 54654 y +SDict begin 18.2 H.L end + 11352 54654 a 11352 54654 a +SDict begin [ /Subtype /Link /Dest (3711) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11352 +54654 a Black Black 241 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 54654 a +SDict begin H.S end + 49451 54654 a FU(129)51776 +54654 y +SDict begin 18.2 H.L end + 51776 54654 a 51776 54654 a +SDict begin [ /Subtype /Link /Dest (3711) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 54654 a Black +0 TeXcolorgray 2627 56669 a +SDict begin H.S end + 2627 56669 a FU(10.6)g(Deletion:)g +FR(rm)g FU(and)g FR(rmdir)20183 56669 y +SDict begin 18.2 H.L end + 20183 56669 a +20183 56669 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-DELETION) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20183 56669 a Black Black 321 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 56669 a +SDict begin H.S end + 49451 56669 a FU(129)51776 +56669 y +SDict begin 18.2 H.L end + 51776 56669 a 51776 56669 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-DELETION) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 56669 a Black +0 TeXcolorgray 5284 58683 a +SDict begin H.S end + 5284 58683 a FU(10.6.1)g +FR(rm)11267 58683 y +SDict begin 18.2 H.L end + 11267 58683 a 11267 58683 a +SDict begin [ /Subtype /Link /Dest (3732) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11267 +58683 a Black Black 326 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 58683 a +SDict begin H.S end + 49451 58683 a FU(129)51776 +58683 y +SDict begin 18.2 H.L end + 51776 58683 a 51776 58683 a +SDict begin [ /Subtype /Link /Dest (3732) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 58683 a Black +0 TeXcolorgray 5284 60698 a +SDict begin H.S end + 5284 60698 a FU(10.6.2)g +FR(rmdir)13112 60698 y +SDict begin 18.2 H.L end + 13112 60698 a 13112 60698 a +SDict begin [ /Subtype /Link /Dest (3763) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 13112 +60698 a Black Black 31 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 60698 a +SDict begin H.S end + 49451 60698 a FU(130)51776 +60698 y +SDict begin 18.2 H.L end + 51776 60698 a 51776 60698 a +SDict begin [ /Subtype /Link /Dest (3763) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 60698 a Black +0 TeXcolorgray 2627 62713 a +SDict begin H.S end + 2627 62713 a FU(10.7)g(Aliasing)g(\002les)g +(with)f FR(ln)18685 62713 y +SDict begin 18.2 H.L end + 18685 62713 a 18685 62713 +a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-LINK) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18685 62713 a Black Black 269 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 62713 a +SDict begin H.S end + 49451 62713 a FU(130)51776 +62713 y +SDict begin 18.2 H.L end + 51776 62713 a 51776 62713 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-LINK) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 62713 a Black +Black -30 73672 a FR(viii)p Black eop end +%%Page: 9 9 +TeXDict begin 9 8 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 0 TeXcolorgray -30 3490 a +SDict begin H.S end + -30 3490 +a FX(11)387 b(Pr)-28 b(ocess)388 b(Contr)-28 b(ol)12397 +3490 y +SDict begin 18.2 H.L end + 12397 3490 a 12397 3490 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12397 3490 a Black Black +359 w FX(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 3490 a +SDict begin H.S end + 49451 3490 a FX(133)51776 3490 +y +SDict begin 18.2 H.L end + 51776 3490 a 51776 3490 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 3490 a Black 0 TeXcolorgray +2627 5771 a +SDict begin H.S end + 2627 5771 a FU(11.1)387 b(Backgrounding)15283 +5771 y +SDict begin 18.2 H.L end + 15283 5771 a 15283 5771 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-BACKGROUNDING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15283 5771 a Black Black +185 w FU(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 5771 a +SDict begin H.S end + 49451 5771 a FU(133)51776 5771 +y +SDict begin 18.2 H.L end + 51776 5771 a 51776 5771 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-BACKGROUNDING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 5771 a Black 0 TeXcolorgray +2627 7785 a +SDict begin H.S end + 2627 7785 a FU(11.2)g(F)-23 b(ore)g(grounding)14893 +7785 y +SDict begin 18.2 H.L end + 14893 7785 a 14893 7785 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-FOREGROUNDING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14893 7785 a Black Black +187 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 7785 a +SDict begin H.S end + 49451 7785 a FU(134)51776 7785 +y +SDict begin 18.2 H.L end + 51776 7785 a 51776 7785 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-FOREGROUNDING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 7785 a Black 0 TeXcolorgray +2627 9800 a +SDict begin H.S end + 2627 9800 a FU(11.3)387 b FR(ps)7104 9800 +y +SDict begin 18.2 H.L end + 7104 9800 a 7104 9800 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-PS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7104 9800 a Black Black 227 +w FU(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 9800 a +SDict begin H.S end + 49451 9800 a FU(135)51776 9800 +y +SDict begin 18.2 H.L end + 51776 9800 a 51776 9800 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-PS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 9800 a Black 0 TeXcolorgray +2627 11815 a +SDict begin H.S end + 2627 11815 a FU(11.4)g FR(kill)7709 11815 +y +SDict begin 18.2 H.L end + 7709 11815 a 7709 11815 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-KILL) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7709 11815 a Black Black +10 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 11815 a +SDict begin H.S end + 49451 11815 a FU(139)51776 +11815 y +SDict begin 18.2 H.L end + 51776 11815 a 51776 11815 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-KILL) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 11815 a Black +0 TeXcolorgray 2627 13829 a +SDict begin H.S end + 2627 13829 a FU(11.5)g FR(top)7707 +13829 y +SDict begin 18.2 H.L end + 7707 13829 a 7707 13829 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-TOP) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7707 13829 a Black +Black 12 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 13829 a +SDict begin H.S end + 49451 13829 a FU(141)51776 +13829 y +SDict begin 18.2 H.L end + 51776 13829 a 51776 13829 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-TOP) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 13829 a Black +0 TeXcolorgray -30 16110 a +SDict begin H.S end + -30 16110 a FX(12)g(Essential)f(System)h +(Administration)23520 16110 y +SDict begin 18.2 H.L end + 23520 16110 a 23520 16110 +a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23520 16110 a Black Black 84 w FX(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 16110 a +SDict begin H.S end + 49451 16110 a FX(143)51776 +16110 y +SDict begin 18.2 H.L end + 51776 16110 a 51776 16110 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 16110 a Black +0 TeXcolorgray 2627 18390 a +SDict begin H.S end + 2627 18390 a FU(12.1)g(Users)g(and)h +(Groups)16831 18390 y +SDict begin 18.2 H.L end + 16831 18390 a 16831 18390 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16831 +18390 a Black Black 186 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 18390 a +SDict begin H.S end + 49451 18390 a FU(143)51776 +18390 y +SDict begin 18.2 H.L end + 51776 18390 a 51776 18390 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 18390 a Black +0 TeXcolorgray 5284 20405 a +SDict begin H.S end + 5284 20405 a FU(12.1.1)f(Supplied)g +(Scripts)19750 20405 y +SDict begin 18.2 H.L end + 19750 20405 a 19750 20405 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-SCRIPTS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19750 +20405 a Black Black 367 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black 0 TeXcolorgray 49451 20405 a +SDict begin H.S end + 49451 20405 +a FU(143)51776 20405 y +SDict begin 18.2 H.L end + 51776 20405 a 51776 20405 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-SCRIPTS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 +20405 a Black 0 TeXcolorgray 5284 22419 a +SDict begin H.S end + 5284 22419 +a FU(12.1.2)g(Changing)g(P)-23 b(assw)-15 b(ords)22466 +22419 y +SDict begin 18.2 H.L end + 22466 22419 a 22466 22419 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-PASSWDS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 22466 22419 a Black +Black 363 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 22419 a +SDict begin H.S end + 49451 22419 a FU(148)51776 +22419 y +SDict begin 18.2 H.L end + 51776 22419 a 51776 22419 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-PASSWDS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 22419 a Black +0 TeXcolorgray 5284 24434 a +SDict begin H.S end + 5284 24434 a FU(12.1.3)387 +b(Changing)g(User)g(Information)26677 24434 y +SDict begin 18.2 H.L end + 26677 24434 +a 26677 24434 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-CHANGING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 26677 24434 a Black Black 26 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 24434 a +SDict begin H.S end + 49451 24434 a FU(149)51776 +24434 y +SDict begin 18.2 H.L end + 51776 24434 a 51776 24434 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-CHANGING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 24434 a Black +0 TeXcolorgray 2627 26449 a +SDict begin H.S end + 2627 26449 a FU(12.2)g(Users)g(and)h +(Groups,)f(the)g(Hard)h(W)-124 b(ay)26174 26449 y +SDict begin 18.2 H.L end + 26174 +26449 a 26174 26449 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-HARDUSERS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 26174 26449 a Black Black 142 w +FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 26449 a +SDict begin H.S end + 49451 26449 a FU(150)51776 +26449 y +SDict begin 18.2 H.L end + 51776 26449 a 51776 26449 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-HARDUSERS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 26449 a Black +0 TeXcolorgray 2627 28463 a +SDict begin H.S end + 2627 28463 a FU(12.3)387 +b(Shutting)f(Do)-39 b(wn)388 b(Properly)20842 28463 y +SDict begin 18.2 H.L end + +20842 28463 a 20842 28463 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-SHUTDOWN) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20842 28463 a Black Black +50 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black 0 TeXcolorgray 49451 28463 a +SDict begin H.S end + 49451 28463 +a FU(152)51776 28463 y +SDict begin 18.2 H.L end + 51776 28463 a 51776 28463 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-SHUTDOWN) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 +28463 a Black 0 TeXcolorgray -30 30744 a +SDict begin H.S end + -30 30744 a +FX(13)f(Basic)g(Netw)-15 b(ork)386 b(Commands)19541 30744 +y +SDict begin 18.2 H.L end + 19541 30744 a 19541 30744 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19541 30744 a Black Black +188 w FX(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black 0 TeXcolorgray 49451 30744 a +SDict begin H.S end + 49451 30744 +a FX(157)51776 30744 y +SDict begin 18.2 H.L end + 51776 30744 a 51776 30744 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 +30744 a Black 0 TeXcolorgray 2627 33024 a +SDict begin H.S end + 2627 33024 +a FU(13.1)h FR(ping)8482 33024 y +SDict begin 18.2 H.L end + 8482 33024 a 8482 33024 +a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-PING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8482 33024 a Black Black 12 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 33024 a +SDict begin H.S end + 49451 33024 a FU(157)51776 +33024 y +SDict begin 18.2 H.L end + 51776 33024 a 51776 33024 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-PING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 33024 a Black +0 TeXcolorgray 2627 35039 a +SDict begin H.S end + 2627 35039 a FU(13.2)g FR(tr)-23 +b(acer)-70 b(oute)12090 35039 y +SDict begin 18.2 H.L end + 12090 35039 a 12090 35039 +a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TRACEROUTE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12090 35039 a Black Black 278 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 35039 a +SDict begin H.S end + 49451 35039 a FU(158)51776 +35039 y +SDict begin 18.2 H.L end + 51776 35039 a 51776 35039 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TRACEROUTE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 35039 a Black +0 TeXcolorgray 2627 37053 a +SDict begin H.S end + 2627 37053 a FU(13.3)387 +b(DNS)g(T)-124 b(ools)12620 37053 y +SDict begin 18.2 H.L end + 12620 37053 a 12620 +37053 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-DNS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12620 37053 a Black Black 136 w FU(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 37053 a +SDict begin H.S end + 49451 37053 a FU(158)51776 +37053 y +SDict begin 18.2 H.L end + 51776 37053 a 51776 37053 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-DNS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 37053 a Black +0 TeXcolorgray 5284 39068 a +SDict begin H.S end + 5284 39068 a FU(13.3.1)387 +b FR(host)12157 39068 y +SDict begin 18.2 H.L end + 12157 39068 a 12157 39068 a +SDict begin [ /Subtype /Link /Dest (4474) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12157 +39068 a Black Black 211 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 39068 a +SDict begin H.S end + 49451 39068 a FU(159)51776 +39068 y +SDict begin 18.2 H.L end + 51776 39068 a 51776 39068 a +SDict begin [ /Subtype /Link /Dest (4474) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 39068 a Black +0 TeXcolorgray 5284 41083 a +SDict begin H.S end + 5284 41083 a FU(13.3.2)g +FR(nslookup)15142 41083 y +SDict begin 18.2 H.L end + 15142 41083 a 15142 41083 a +SDict begin [ /Subtype /Link /Dest (4486) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +15142 41083 a Black Black 326 w FU(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 41083 a +SDict begin H.S end + 49451 41083 a FU(159)51776 +41083 y +SDict begin 18.2 H.L end + 51776 41083 a 51776 41083 a +SDict begin [ /Subtype /Link /Dest (4486) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 41083 a Black +0 TeXcolorgray 5284 43097 a +SDict begin H.S end + 5284 43097 a FU(13.3.3)g +FR(dig)11526 43097 y +SDict begin 18.2 H.L end + 11526 43097 a 11526 43097 a +SDict begin [ /Subtype /Link /Dest (4495) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11526 +43097 a Black Black 67 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 43097 a +SDict begin H.S end + 49451 43097 a FU(160)51776 +43097 y +SDict begin 18.2 H.L end + 51776 43097 a 51776 43097 a +SDict begin [ /Subtype /Link /Dest (4495) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 43097 a Black +0 TeXcolorgray 2627 45112 a +SDict begin H.S end + 2627 45112 a FU(13.4)g FR(\002ng)-15 +b(er)9363 45112 y +SDict begin 18.2 H.L end + 9363 45112 a 9363 45112 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FINGER) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 9363 45112 +a Black Black 293 w FU(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 45112 a +SDict begin H.S end + 49451 45112 a FU(161)51776 +45112 y +SDict begin 18.2 H.L end + 51776 45112 a 51776 45112 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FINGER) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 45112 a Black +0 TeXcolorgray 2627 47127 a +SDict begin H.S end + 2627 47127 a FU(13.5)387 +b FR(telnet)9198 47127 y +SDict begin 18.2 H.L end + 9198 47127 a 9198 47127 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TELNET) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 9198 +47127 a Black Black 71 w FU(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 47127 a +SDict begin H.S end + 49451 47127 a FU(162)51776 +47127 y +SDict begin 18.2 H.L end + 51776 47127 a 51776 47127 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TELNET) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 47127 a Black +0 TeXcolorgray 5284 49141 a +SDict begin H.S end + 5284 49141 a FU(13.5.1)g(The)h(other)f(use) +g(of)g(telnet)23490 49141 y +SDict begin 18.2 H.L end + 23490 49141 a 23490 49141 +a +SDict begin [ /Subtype /Link /Dest (4592) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 23490 49141 a Black Black 114 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 49141 a +SDict begin H.S end + 49451 49141 a FU(163)51776 +49141 y +SDict begin 18.2 H.L end + 51776 49141 a 51776 49141 a +SDict begin [ /Subtype /Link /Dest (4592) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 49141 a Black +0 TeXcolorgray 2627 51156 a +SDict begin H.S end + 2627 51156 a FU(13.6)g(The)h(Secure)f +(shell)16056 51156 y +SDict begin 18.2 H.L end + 16056 51156 a 16056 51156 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-SSH) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16056 +51156 a Black Black 186 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 51156 a +SDict begin H.S end + 49451 51156 a FU(164)51776 +51156 y +SDict begin 18.2 H.L end + 51776 51156 a 51776 51156 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-SSH) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 51156 a Black +0 TeXcolorgray 2627 53171 a +SDict begin H.S end + 2627 53171 a FU(13.7)g(email)9170 +53171 y +SDict begin 18.2 H.L end + 9170 53171 a 9170 53171 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 9170 53171 a Black +Black 99 w FU(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 53171 a +SDict begin H.S end + 49451 53171 a FU(164)51776 +53171 y +SDict begin 18.2 H.L end + 51776 53171 a 51776 53171 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 53171 a Black +0 TeXcolorgray 5284 55185 a +SDict begin H.S end + 5284 55185 a FU(13.7.1)g +FR(pine)12214 55185 y +SDict begin 18.2 H.L end + 12214 55185 a 12214 55185 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-PINE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12214 +55185 a Black Black 154 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 55185 a +SDict begin H.S end + 49451 55185 a FU(165)51776 +55185 y +SDict begin 18.2 H.L end + 51776 55185 a 51776 55185 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-PINE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 55185 a Black +0 TeXcolorgray 5284 57200 a +SDict begin H.S end + 5284 57200 a FU(13.7.2)g +FR(elm)11783 57200 y +SDict begin 18.2 H.L end + 11783 57200 a 11783 57200 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-ELM) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11783 +57200 a Black Black 198 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 57200 a +SDict begin H.S end + 49451 57200 a FU(167)51776 +57200 y +SDict begin 18.2 H.L end + 51776 57200 a 51776 57200 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-ELM) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 57200 a Black +0 TeXcolorgray 5284 59215 a +SDict begin H.S end + 5284 59215 a FU(13.7.3)g +FR(mutt)12329 59215 y +SDict begin 18.2 H.L end + 12329 59215 a 12329 59215 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-MUTT) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12329 +59215 a Black Black 39 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 59215 a +SDict begin H.S end + 49451 59215 a FU(168)51776 +59215 y +SDict begin 18.2 H.L end + 51776 59215 a 51776 59215 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-MUTT) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 59215 a Black +0 TeXcolorgray 5284 61229 a +SDict begin H.S end + 5284 61229 a FU(13.7.4)g +FR(nail)11959 61229 y +SDict begin 18.2 H.L end + 11959 61229 a 11959 61229 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-NAIL) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11959 +61229 a Black Black 22 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 61229 a +SDict begin H.S end + 49451 61229 a FU(169)51776 +61229 y +SDict begin 18.2 H.L end + 51776 61229 a 51776 61229 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-EMAIL-NAIL) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 61229 a Black +0 TeXcolorgray 2627 63244 a +SDict begin H.S end + 2627 63244 a FU(13.8)g(Bro)-39 +b(wsers)11541 63244 y +SDict begin 18.2 H.L end + 11541 63244 a 11541 63244 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-WEB) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11541 +63244 a Black Black 52 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 63244 a +SDict begin H.S end + 49451 63244 a FU(170)51776 +63244 y +SDict begin 18.2 H.L end + 51776 63244 a 51776 63244 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-WEB) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 63244 a Black +0 TeXcolorgray 5284 65259 a +SDict begin H.S end + 5284 65259 a FU(13.8.1)387 +b FR(lynx)12132 65259 y +SDict begin 18.2 H.L end + 12132 65259 a 12132 65259 a +SDict begin [ /Subtype /Link /Dest (4775) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12132 +65259 a Black Black 236 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 65259 a +SDict begin H.S end + 49451 65259 a FU(170)51776 +65259 y +SDict begin 18.2 H.L end + 51776 65259 a 51776 65259 a +SDict begin [ /Subtype /Link /Dest (4775) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 65259 a Black +0 TeXcolorgray 5284 67273 a +SDict begin H.S end + 5284 67273 a FU(13.8.2)g +FR(links)12473 67273 y +SDict begin 18.2 H.L end + 12473 67273 a 12473 67273 a +SDict begin [ /Subtype /Link /Dest (4812) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12473 +67273 a Black Black 283 w FU(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 67273 a +SDict begin H.S end + 49451 67273 a FU(171)51776 +67273 y +SDict begin 18.2 H.L end + 51776 67273 a 51776 67273 a +SDict begin [ /Subtype /Link /Dest (4812) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 67273 a Black +Black 50652 73672 a FR(ix)p Black eop end +%%Page: 10 10 +TeXDict begin 10 9 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 0 TeXcolorgray 5284 3490 a +SDict begin H.S end + 5284 3490 +a FU(13.8.3)387 b FR(wg)-15 b(et)12486 3490 y +SDict begin 18.2 H.L end + 12486 3490 +a 12486 3490 a +SDict begin [ /Subtype /Link /Dest (4830) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12486 3490 a Black Black 270 w FU(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 3490 a +SDict begin H.S end + 49451 3490 a FU(172)51776 3490 +y +SDict begin 18.2 H.L end + 51776 3490 a 51776 3490 a +SDict begin [ /Subtype /Link /Dest (4830) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 3490 a Black 0 TeXcolorgray +2627 5505 a +SDict begin H.S end + 2627 5505 a FU(13.9)387 b(FTP)g(Clients)13177 +5505 y +SDict begin 18.2 H.L end + 13177 5505 a 13177 5505 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FTP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 13177 5505 a Black Black +353 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 5505 a +SDict begin H.S end + 49451 5505 a FU(173)51776 +5505 y +SDict begin 18.2 H.L end + 51776 5505 a 51776 5505 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FTP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 5505 a Black 0 +TeXcolorgray 5284 7520 a +SDict begin H.S end + 5284 7520 a FU(13.9.1)g FR(ftp)11182 +7520 y +SDict begin 18.2 H.L end + 11182 7520 a 11182 7520 a +SDict begin [ /Subtype /Link /Dest (4870) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11182 7520 a Black Black +24 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 7520 a +SDict begin H.S end + 49451 7520 a FU(174)51776 7520 +y +SDict begin 18.2 H.L end + 51776 7520 a 51776 7520 a +SDict begin [ /Subtype /Link /Dest (4870) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 7520 a Black 0 TeXcolorgray +5284 9534 a +SDict begin H.S end + 5284 9534 a FU(13.9.2)g FR(ncftp)12645 9534 +y +SDict begin 18.2 H.L end + 12645 9534 a 12645 9534 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FTP-NCFTP) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12645 9534 a Black Black +111 w FU(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 9534 a +SDict begin H.S end + 49451 9534 a FU(175)51776 9534 +y +SDict begin 18.2 H.L end + 51776 9534 a 51776 9534 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-FTP-NCFTP) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 9534 a Black 0 TeXcolorgray +2627 11549 a +SDict begin H.S end + 2627 11549 a FU(13.10)g(T)-124 b(alking)387 +b(to)g(Other)g(People)21314 11549 y +SDict begin 18.2 H.L end + 21314 11549 a 21314 +11549 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TALK) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 21314 11549 a Black Black 353 w FU(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black 0 TeXcolorgray 49451 11549 a +SDict begin H.S end + 49451 11549 +a FU(176)51776 11549 y +SDict begin 18.2 H.L end + 51776 11549 a 51776 11549 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS-TALK) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 +11549 a Black 0 TeXcolorgray 5284 13564 a +SDict begin H.S end + 5284 13564 +a FU(13.10.1)g FR(wall)12993 13564 y +SDict begin 18.2 H.L end + 12993 13564 a 12993 +13564 a +SDict begin [ /Subtype /Link /Dest (4988) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12993 13564 a Black Black 150 w FU(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 13564 a +SDict begin H.S end + 49451 13564 a FU(177)51776 +13564 y +SDict begin 18.2 H.L end + 51776 13564 a 51776 13564 a +SDict begin [ /Subtype /Link /Dest (4988) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 13564 a Black +0 TeXcolorgray 5284 15578 a +SDict begin H.S end + 5284 15578 a FU(13.10.2)g +FR(talk)12671 15578 y +SDict begin 18.2 H.L end + 12671 15578 a 12671 15578 a +SDict begin [ /Subtype /Link /Dest (5005) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12671 +15578 a Black Black 85 w FU(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 15578 a +SDict begin H.S end + 49451 15578 a FU(177)51776 +15578 y +SDict begin 18.2 H.L end + 51776 15578 a 51776 15578 a +SDict begin [ /Subtype /Link /Dest (5005) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 15578 a Black +0 TeXcolorgray 5284 17593 a +SDict begin H.S end + 5284 17593 a FU(13.10.3)g +FR(ytalk)13359 17593 y +SDict begin 18.2 H.L end + 13359 17593 a 13359 17593 a +SDict begin [ /Subtype /Link /Dest (5032) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 13359 +17593 a Black Black 171 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 17593 a +SDict begin H.S end + 49451 17593 a FU(178)51776 +17593 y +SDict begin 18.2 H.L end + 51776 17593 a 51776 17593 a +SDict begin [ /Subtype /Link /Dest (5032) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 17593 a Black +0 TeXcolorgray -30 19873 a +SDict begin H.S end + -30 19873 a FX(14)g(Security)7417 +19873 y +SDict begin 18.2 H.L end + 7417 19873 a 7417 19873 a +SDict begin [ /Subtype /Link /Dest (SECURITY) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7417 19873 a Black +Black 302 w FX(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 19873 a +SDict begin H.S end + 49451 19873 a FX(181)51776 +19873 y +SDict begin 18.2 H.L end + 51776 19873 a 51776 19873 a +SDict begin [ /Subtype /Link /Dest (SECURITY) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 19873 a Black +0 TeXcolorgray 2627 22154 a +SDict begin H.S end + 2627 22154 a FU(14.1)g(Disabling)g +(Services)17392 22154 y +SDict begin 18.2 H.L end + 17392 22154 a 17392 22154 a +SDict begin [ /Subtype /Link /Dest (SECURITY-DISABLE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17392 +22154 a Black Black 13 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 22154 a +SDict begin H.S end + 49451 22154 a FU(181)51776 +22154 y +SDict begin 18.2 H.L end + 51776 22154 a 51776 22154 a +SDict begin [ /Subtype /Link /Dest (SECURITY-DISABLE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 22154 a Black +0 TeXcolorgray 5284 24168 a +SDict begin H.S end + 5284 24168 a FU(14.1.1)g(Services)g +(started)g(from)g FR(inetd)26244 24168 y +SDict begin 18.2 H.L end + 26244 24168 +a 26244 24168 a +SDict begin [ /Subtype /Link /Dest (5080) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 26244 24168 a Black Black 72 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 24168 a +SDict begin H.S end + 49451 24168 a FU(181)51776 +24168 y +SDict begin 18.2 H.L end + 51776 24168 a 51776 24168 a +SDict begin [ /Subtype /Link /Dest (5080) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 24168 a Black +0 TeXcolorgray 5284 26183 a +SDict begin H.S end + 5284 26183 a FU(14.1.2)g(Services)g +(started)g(from)g(init)g(scripts)29604 26183 y +SDict begin 18.2 H.L end + 29604 +26183 a 29604 26183 a +SDict begin [ /Subtype /Link /Dest (5101) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 29604 26183 a Black Black 199 w +FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 26183 a +SDict begin H.S end + 49451 26183 a FU(182)51776 +26183 y +SDict begin 18.2 H.L end + 51776 26183 a 51776 26183 a +SDict begin [ /Subtype /Link /Dest (5101) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 26183 a Black +0 TeXcolorgray 2627 28198 a +SDict begin H.S end + 2627 28198 a FU(14.2)g(Host)g(Access)g +(Control)18554 28198 y +SDict begin 18.2 H.L end + 18554 28198 a 18554 28198 a +SDict begin [ /Subtype /Link /Dest (SECURITY-HOST) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18554 +28198 a Black Black 13 w FU(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 28198 a +SDict begin H.S end + 49451 28198 a FU(183)51776 +28198 y +SDict begin 18.2 H.L end + 51776 28198 a 51776 28198 a +SDict begin [ /Subtype /Link /Dest (SECURITY-HOST) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 28198 a Black +0 TeXcolorgray 5284 30212 a +SDict begin H.S end + 5284 30212 a FU(14.2.1)g +FR(iptables)14454 30212 y +SDict begin 18.2 H.L end + 14454 30212 a 14454 30212 a +SDict begin [ /Subtype /Link /Dest (SECURITY-HOST-IPTABLES) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + +14454 30212 a Black Black 239 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 30212 a +SDict begin H.S end + 49451 30212 a FU(183)51776 +30212 y +SDict begin 18.2 H.L end + 51776 30212 a 51776 30212 a +SDict begin [ /Subtype /Link /Dest (SECURITY-HOST-IPTABLES) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 30212 a Black +0 TeXcolorgray 5284 32227 a +SDict begin H.S end + 5284 32227 a FU(14.2.2)g +FR(tcpwr)-23 b(apper)-15 b(s)17257 32227 y +SDict begin 18.2 H.L end + 17257 32227 +a 17257 32227 a +SDict begin [ /Subtype /Link /Dest (SECURITY-HOST-TCPWRAPPERS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17257 32227 a Black Black 148 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 32227 a +SDict begin H.S end + 49451 32227 a FU(185)51776 +32227 y +SDict begin 18.2 H.L end + 51776 32227 a 51776 32227 a +SDict begin [ /Subtype /Link /Dest (SECURITY-HOST-TCPWRAPPERS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 32227 a Black +0 TeXcolorgray 2627 34242 a +SDict begin H.S end + 2627 34242 a FU(14.3)387 +b(K)-39 b(eeping)387 b(Current)16060 34242 y +SDict begin 18.2 H.L end + 16060 34242 +a 16060 34242 a +SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16060 34242 a Black Black 182 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 34242 a +SDict begin H.S end + 49451 34242 a FU(186)51776 +34242 y +SDict begin 18.2 H.L end + 51776 34242 a 51776 34242 a +SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 34242 a Black +0 TeXcolorgray 5284 36256 a +SDict begin H.S end + 5284 36256 a FU(14.3.1)g +FP(slackware-security)f FU(mailing)g(list)30342 36256 +y +SDict begin 18.2 H.L end + 30342 36256 a 30342 36256 a +SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT-LIST) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 30342 36256 a Black Black +236 w FU(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 36256 a +SDict begin H.S end + 49451 36256 a FU(186)51776 +36256 y +SDict begin 18.2 H.L end + 51776 36256 a 51776 36256 a +SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT-LIST) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 36256 a Black +0 TeXcolorgray 5284 38271 a +SDict begin H.S end + 5284 38271 a FU(14.3.2)h(The)h +FQ(/patches)382 b FU(directory)23336 38271 y +SDict begin 18.2 H.L end + 23336 38271 +a 23336 38271 a +SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT-PATCHES) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23336 38271 a Black Black 268 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 38271 a +SDict begin H.S end + 49451 38271 a FU(187)51776 +38271 y +SDict begin 18.2 H.L end + 51776 38271 a 51776 38271 a +SDict begin [ /Subtype /Link /Dest (SECURITY-CURRENT-PATCHES) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 38271 a Black +0 TeXcolorgray -30 40551 a +SDict begin H.S end + -30 40551 a FX(15)387 b(Ar)-28 +b(chi)-15 b(v)g(e)386 b(Files)10586 40551 y +SDict begin 18.2 H.L end + 10586 40551 +a 10586 40551 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 10586 40551 a Black Black 232 w FX(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 40551 a +SDict begin H.S end + 49451 40551 a FX(189)51776 +40551 y +SDict begin 18.2 H.L end + 51776 40551 a 51776 40551 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 40551 a Black +0 TeXcolorgray 2627 42832 a +SDict begin H.S end + 2627 42832 a FU(15.1)h FR(gzip)8310 +42832 y +SDict begin 18.2 H.L end + 8310 42832 a 8310 42832 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-GZIP) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8310 42832 a Black +Black 184 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 42832 a +SDict begin H.S end + 49451 42832 a FU(189)51776 +42832 y +SDict begin 18.2 H.L end + 51776 42832 a 51776 42832 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-GZIP) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 42832 a Black +0 TeXcolorgray 2627 44846 a +SDict begin H.S end + 2627 44846 a FU(15.2)g FR(bzip2)9085 +44846 y +SDict begin 18.2 H.L end + 9085 44846 a 9085 44846 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-BZIP2) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 9085 44846 a Black +Black 184 w FU(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 44846 a +SDict begin H.S end + 49451 44846 a FU(190)51776 +44846 y +SDict begin 18.2 H.L end + 51776 44846 a 51776 44846 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-BZIP2) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 44846 a Black +0 TeXcolorgray 2627 46861 a +SDict begin H.S end + 2627 46861 a FU(15.3)g FR(tar)7571 +46861 y +SDict begin 18.2 H.L end + 7571 46861 a 7571 46861 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-TAR) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7571 46861 a Black +Black 148 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 46861 a +SDict begin H.S end + 49451 46861 a FU(190)51776 +46861 y +SDict begin 18.2 H.L end + 51776 46861 a 51776 46861 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-TAR) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 46861 a Black +0 TeXcolorgray 2627 48876 a +SDict begin H.S end + 2627 48876 a FU(15.4)g FR(zip)7535 +48876 y +SDict begin 18.2 H.L end + 7535 48876 a 7535 48876 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-ZIP) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7535 48876 a Black +Black 184 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 48876 a +SDict begin H.S end + 49451 48876 a FU(193)51776 +48876 y +SDict begin 18.2 H.L end + 51776 48876 a 51776 48876 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES-ZIP) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 48876 a Black +0 TeXcolorgray -30 51156 a +SDict begin H.S end + -30 51156 a FX(16)g(V)-57 +b(i)3400 51156 y +SDict begin 18.2 H.L end + 3400 51156 a 3400 51156 a +SDict begin [ /Subtype /Link /Dest (VI) cvn /H /I /Border [0 0 0] /Color +[1 0 0] H.B /ANN pdfmark end + 3400 51156 +a Black Black 57 w FX(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 51156 a +SDict begin H.S end + 49451 51156 a FX(195)51776 +51156 y +SDict begin 18.2 H.L end + 51776 51156 a 51776 51156 a +SDict begin [ /Subtype /Link /Dest (VI) cvn /H /I /Border [0 0 0] /Color +[1 0 0] H.B /ANN pdfmark end + 51776 51156 a Black +0 TeXcolorgray 2627 53436 a +SDict begin H.S end + 2627 53436 a FU(16.1)387 +b(Starting)g(vi)12228 53436 y +SDict begin 18.2 H.L end + 12228 53436 a 12228 53436 +a +SDict begin [ /Subtype /Link /Dest (VI-STARTING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12228 53436 a Black Black 140 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 53436 a +SDict begin H.S end + 49451 53436 a FU(195)51776 +53436 y +SDict begin 18.2 H.L end + 51776 53436 a 51776 53436 a +SDict begin [ /Subtype /Link /Dest (VI-STARTING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 53436 a Black +0 TeXcolorgray 2627 55451 a +SDict begin H.S end + 2627 55451 a FU(16.2)g(Modes)9945 +55451 y +SDict begin 18.2 H.L end + 9945 55451 a 9945 55451 a +SDict begin [ /Subtype /Link /Dest (VI-MODES) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 9945 55451 a Black +Black 98 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 55451 a +SDict begin H.S end + 49451 55451 a FU(197)51776 +55451 y +SDict begin 18.2 H.L end + 51776 55451 a 51776 55451 a +SDict begin [ /Subtype /Link /Dest (VI-MODES) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 55451 a Black +0 TeXcolorgray 5284 57466 a +SDict begin H.S end + 5284 57466 a FU(16.2.1)g(Command)f(Mode) +20006 57466 y +SDict begin 18.2 H.L end + 20006 57466 a 20006 57466 a +SDict begin [ /Subtype /Link /Dest (VI-MODES-COMMAND-MODE) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20006 57466 +a Black Black 111 w FU(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 57466 a +SDict begin H.S end + 49451 57466 a FU(197)51776 +57466 y +SDict begin 18.2 H.L end + 51776 57466 a 51776 57466 a +SDict begin [ /Subtype /Link /Dest (VI-MODES-COMMAND-MODE) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 57466 a Black +0 TeXcolorgray 5284 59480 a +SDict begin H.S end + 5284 59480 a FU(16.2.2)h(Insert)g(Mode) +17077 59480 y +SDict begin 18.2 H.L end + 17077 59480 a 17077 59480 a +SDict begin [ /Subtype /Link /Dest (VI-MODES-INSET-MODE) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17077 59480 +a Black Black 328 w FU(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 59480 a +SDict begin H.S end + 49451 59480 a FU(199)51776 +59480 y +SDict begin 18.2 H.L end + 51776 59480 a 51776 59480 a +SDict begin [ /Subtype /Link /Dest (VI-MODES-INSET-MODE) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 59480 a Black +0 TeXcolorgray 2627 61495 a +SDict begin H.S end + 2627 61495 a FU(16.3)g(Opening)g(Files) +14466 61495 y +SDict begin 18.2 H.L end + 14466 61495 a 14466 61495 a +SDict begin [ /Subtype /Link /Dest (VI-OPENING-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14466 61495 +a Black Black 227 w FU(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 61495 a +SDict begin H.S end + 49451 61495 a FU(200)51776 +61495 y +SDict begin 18.2 H.L end + 51776 61495 a 51776 61495 a +SDict begin [ /Subtype /Link /Dest (VI-OPENING-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 61495 a Black +0 TeXcolorgray 2627 63510 a +SDict begin H.S end + 2627 63510 a FU(16.4)g(Sa)-31 +b(ving)387 b(Files)13403 63510 y +SDict begin 18.2 H.L end + 13403 63510 a 13403 +63510 a +SDict begin [ /Subtype /Link /Dest (VI-SAVING-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 13403 63510 a Black Black 127 w FU(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 63510 a +SDict begin H.S end + 49451 63510 a FU(201)51776 +63510 y +SDict begin 18.2 H.L end + 51776 63510 a 51776 63510 a +SDict begin [ /Subtype /Link /Dest (VI-SAVING-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 63510 a Black +0 TeXcolorgray 2627 65524 a +SDict begin H.S end + 2627 65524 a FU(16.5)g(Quitting)g(vi)12487 +65524 y +SDict begin 18.2 H.L end + 12487 65524 a 12487 65524 a +SDict begin [ /Subtype /Link /Dest (VI-QUITTING-VI) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12487 65524 a Black +Black 269 w FU(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 65524 a +SDict begin H.S end + 49451 65524 a FU(201)51776 +65524 y +SDict begin 18.2 H.L end + 51776 65524 a 51776 65524 a +SDict begin [ /Subtype /Link /Dest (VI-QUITTING-VI) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 65524 a Black +0 TeXcolorgray 2627 67539 a +SDict begin H.S end + 2627 67539 a FU(16.6)g(vi)g +(Con\002guration)15931 67539 y +SDict begin 18.2 H.L end + 15931 67539 a 15931 67539 +a +SDict begin [ /Subtype /Link /Dest (VI-CONFIGURATION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15931 67539 a Black Black 311 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 67539 a +SDict begin H.S end + 49451 67539 a FU(202)51776 +67539 y +SDict begin 18.2 H.L end + 51776 67539 a 51776 67539 a +SDict begin [ /Subtype /Link /Dest (VI-CONFIGURATION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 67539 a Black +Black -30 73672 a FR(x)p Black eop end +%%Page: 11 11 +TeXDict begin 11 10 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 0 TeXcolorgray 2627 3490 a +SDict begin H.S end + 2627 3490 +a FU(16.7)387 b(V)-93 b(i)387 b(K)-39 b(e)-23 b(ys)10693 +3490 y +SDict begin 18.2 H.L end + 10693 3490 a 10693 3490 a +SDict begin [ /Subtype /Link /Dest (VI-KEYS) cvn /H /I /Border [0 0 +0] /Color [1 0 0] H.B /ANN pdfmark end + 10693 3490 a Black Black +125 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 3490 a +SDict begin H.S end + 49451 3490 a FU(203)51776 3490 +y +SDict begin 18.2 H.L end + 51776 3490 a 51776 3490 a +SDict begin [ /Subtype /Link /Dest (VI-KEYS) cvn /H /I /Border [0 0 +0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 3490 a Black 0 TeXcolorgray +-30 5771 a +SDict begin H.S end + -30 5771 a FX(17)387 b(Emacs)6298 5771 y +SDict begin 18.2 H.L end + 6298 +5771 a 6298 5771 a +SDict begin [ /Subtype /Link /Dest (EMACS) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6298 5771 a Black Black 259 w FX(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 5771 a +SDict begin H.S end + 49451 5771 a FX(205)51776 5771 +y +SDict begin 18.2 H.L end + 51776 5771 a 51776 5771 a +SDict begin [ /Subtype /Link /Dest (EMACS) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 5771 a Black 0 TeXcolorgray +2627 8051 a +SDict begin H.S end + 2627 8051 a FU(17.1)g(Starting)g(emacs)14895 +8051 y +SDict begin 18.2 H.L end + 14895 8051 a 14895 8051 a +SDict begin [ /Subtype /Link /Dest (EMACS-STARTING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14895 8051 a Black Black +185 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 8051 a +SDict begin H.S end + 49451 8051 a FU(206)51776 8051 +y +SDict begin 18.2 H.L end + 51776 8051 a 51776 8051 a +SDict begin [ /Subtype /Link /Dest (EMACS-STARTING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 8051 a Black 0 TeXcolorgray +5284 10066 a +SDict begin H.S end + 5284 10066 a FU(17.1.1)g(Command)f(K)-39 +b(e)-23 b(ys)19513 10066 y +SDict begin 18.2 H.L end + 19513 10066 a 19513 10066 +a +SDict begin [ /Subtype /Link /Dest (EMACS-COMMAND-KEYS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19513 10066 a Black Black 216 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 10066 a +SDict begin H.S end + 49451 10066 a FU(207)51776 +10066 y +SDict begin 18.2 H.L end + 51776 10066 a 51776 10066 a +SDict begin [ /Subtype /Link /Dest (EMACS-COMMAND-KEYS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 10066 a Black +0 TeXcolorgray 2627 12080 a +SDict begin H.S end + 2627 12080 a FU(17.2)387 +b(Buf)-39 b(fers)10335 12080 y +SDict begin 18.2 H.L end + 10335 12080 a 10335 12080 +a +SDict begin [ /Subtype /Link /Dest (EMACS-BUFFERS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 10335 12080 a Black Black 96 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 12080 a +SDict begin H.S end + 49451 12080 a FU(207)51776 +12080 y +SDict begin 18.2 H.L end + 51776 12080 a 51776 12080 a +SDict begin [ /Subtype /Link /Dest (EMACS-BUFFERS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 12080 a Black +0 TeXcolorgray 2627 14095 a +SDict begin H.S end + 2627 14095 a FU(17.3)387 +b(Modes)9945 14095 y +SDict begin 18.2 H.L end + 9945 14095 a 9945 14095 a +SDict begin [ /Subtype /Link /Dest (EMACS-MODES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 9945 14095 +a Black Black 98 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 14095 a +SDict begin H.S end + 49451 14095 a FU(208)51776 +14095 y +SDict begin 18.2 H.L end + 51776 14095 a 51776 14095 a +SDict begin [ /Subtype /Link /Dest (EMACS-MODES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 14095 a Black +0 TeXcolorgray 5284 16110 a +SDict begin H.S end + 5284 16110 a FU(17.3.1)g(Opening)g(\002les) +17854 16110 y +SDict begin 18.2 H.L end + 17854 16110 a 17854 16110 a +SDict begin [ /Subtype /Link /Dest (EMACS-OPENING-FILES) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17854 16110 +a Black Black 326 w FU(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 16110 a +SDict begin H.S end + 49451 16110 a FU(209)51776 +16110 y +SDict begin 18.2 H.L end + 51776 16110 a 51776 16110 a +SDict begin [ /Subtype /Link /Dest (EMACS-OPENING-FILES) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 16110 a Black +0 TeXcolorgray 2627 18124 a +SDict begin H.S end + 2627 18124 a FU(17.4)g(Basic)g(Editing) +14122 18124 y +SDict begin 18.2 H.L end + 14122 18124 a 14122 18124 a +SDict begin [ /Subtype /Link /Dest (EMACS-BASIC-EDITING) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14122 18124 +a Black Black 183 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 18124 a +SDict begin H.S end + 49451 18124 a FU(210)51776 +18124 y +SDict begin 18.2 H.L end + 51776 18124 a 51776 18124 a +SDict begin [ /Subtype /Link /Dest (EMACS-BASIC-EDITING) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 18124 a Black +0 TeXcolorgray 2627 20139 a +SDict begin H.S end + 2627 20139 a FU(17.5)g(Sa)-31 +b(ving)387 b(Files)13403 20139 y +SDict begin 18.2 H.L end + 13403 20139 a 13403 +20139 a +SDict begin [ /Subtype /Link /Dest (EMACS-SAVING-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 13403 20139 a Black Black 127 w FU(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 20139 a +SDict begin H.S end + 49451 20139 a FU(212)51776 +20139 y +SDict begin 18.2 H.L end + 51776 20139 a 51776 20139 a +SDict begin [ /Subtype /Link /Dest (EMACS-SAVING-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 20139 a Black +0 TeXcolorgray 5284 22154 a +SDict begin H.S end + 5284 22154 a FU(17.5.1)g(Quitting)g(Emacs) +19232 22154 y +SDict begin 18.2 H.L end + 19232 22154 a 19232 22154 a +SDict begin [ /Subtype /Link /Dest (EMACS-QUITING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19232 22154 +a Black Black 110 w FU(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 22154 a +SDict begin H.S end + 49451 22154 a FU(212)51776 +22154 y +SDict begin 18.2 H.L end + 51776 22154 a 51776 22154 a +SDict begin [ /Subtype /Link /Dest (EMACS-QUITING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 22154 a Black +0 TeXcolorgray -30 24434 a +SDict begin H.S end + -30 24434 a FX(18)g(Slackwar)-28 +b(e)387 b(P)-15 b(ackage)386 b(Management)23730 24434 +y +SDict begin 18.2 H.L end + 23730 24434 a 23730 24434 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23730 24434 a Black Black +261 w FX(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 24434 a +SDict begin H.S end + 49451 24434 a FX(215)51776 +24434 y +SDict begin 18.2 H.L end + 51776 24434 a 51776 24434 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 24434 a Black +0 TeXcolorgray 2627 26714 a +SDict begin H.S end + 2627 26714 a FU(18.1)h(Ov)-23 +b(ervie)-39 b(w)387 b(of)h(P)-23 b(ackage)387 b(F)-23 +b(ormat)23824 26714 y +SDict begin 18.2 H.L end + 23824 26714 a 23824 26714 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-OVERVIEW) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23824 +26714 a Black Black 167 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black 0 TeXcolorgray 49451 26714 a +SDict begin H.S end + 49451 26714 +a FU(215)51776 26714 y +SDict begin 18.2 H.L end + 51776 26714 a 51776 26714 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-OVERVIEW) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 +26714 a Black 0 TeXcolorgray 2627 28729 a +SDict begin H.S end + 2627 28729 +a FU(18.2)387 b(P)-23 b(ackage)387 b(Utilities)16250 +28729 y +SDict begin 18.2 H.L end + 16250 28729 a 16250 28729 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16250 28729 a Black +Black 380 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 28729 a +SDict begin H.S end + 49451 28729 a FU(216)51776 +28729 y +SDict begin 18.2 H.L end + 51776 28729 a 51776 28729 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 28729 a Black +0 TeXcolorgray 5284 30744 a +SDict begin H.S end + 5284 30744 a FU(18.2.1)g(pkgtool)14282 +30744 y +SDict begin 18.2 H.L end + 14282 30744 a 14282 30744 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-PKGTOOL) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14282 30744 a Black +Black 23 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 30744 a +SDict begin H.S end + 49451 30744 a FU(216)51776 +30744 y +SDict begin 18.2 H.L end + 51776 30744 a 51776 30744 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-PKGTOOL) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 30744 a Black +0 TeXcolorgray 5284 32758 a +SDict begin H.S end + 5284 32758 a FU(18.2.2)g(installpkg)15660 +32758 y +SDict begin 18.2 H.L end + 15660 32758 a 15660 32758 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-INSTALLPKG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15660 32758 a Black +Black 195 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 32758 a +SDict begin H.S end + 49451 32758 a FU(218)51776 +32758 y +SDict begin 18.2 H.L end + 51776 32758 a 51776 32758 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-INSTALLPKG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 32758 a Black +0 TeXcolorgray 5284 34773 a +SDict begin H.S end + 5284 34773 a FU(18.2.3)g(remo)-23 +b(v)g(epkg)16472 34773 y +SDict begin 18.2 H.L end + 16472 34773 a 16472 34773 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-REMOVEPKG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + +16472 34773 a Black Black 158 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 34773 a +SDict begin H.S end + 49451 34773 a FU(219)51776 +34773 y +SDict begin 18.2 H.L end + 51776 34773 a 51776 34773 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-REMOVEPKG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 34773 a Black +0 TeXcolorgray 5284 36788 a +SDict begin H.S end + 5284 36788 a FU(18.2.4)387 +b(upgradepkg)16862 36788 y +SDict begin 18.2 H.L end + 16862 36788 a 16862 36788 +a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-UPGRADEPKG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16862 36788 a Black Black 155 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 36788 a +SDict begin H.S end + 49451 36788 a FU(220)51776 +36788 y +SDict begin 18.2 H.L end + 51776 36788 a 51776 36788 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-UPGRADEPKG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 36788 a Black +0 TeXcolorgray 5284 38802 a +SDict begin H.S end + 5284 38802 a FU(18.2.5)g +FR(rpm2tgz)p FU(/)p FR(rpm2tar)-57 b(gz)21459 38802 y +SDict begin 18.2 H.L end + +21459 38802 a 21459 38802 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-RPM) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 21459 38802 a Black Black +208 w FU(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 38802 a +SDict begin H.S end + 49451 38802 a FU(221)51776 +38802 y +SDict begin 18.2 H.L end + 51776 38802 a 51776 38802 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-RPM) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 38802 a Black +0 TeXcolorgray 2627 40817 a +SDict begin H.S end + 2627 40817 a FU(18.3)387 +b(Making)g(P)-23 b(ackages)16679 40817 y +SDict begin 18.2 H.L end + 16679 40817 +a 16679 40817 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-PACKAGES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16679 40817 a Black Black 338 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 40817 a +SDict begin H.S end + 49451 40817 a FU(221)51776 +40817 y +SDict begin 18.2 H.L end + 51776 40817 a 51776 40817 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-PACKAGES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 40817 a Black +0 TeXcolorgray 5284 42832 a +SDict begin H.S end + 5284 42832 a FU(18.3.1)387 +b FR(e)-31 b(xplodepkg)16572 42832 y +SDict begin 18.2 H.L end + 16572 42832 a 16572 +42832 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-EXPLODEPKG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16572 42832 a Black Black 58 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 42832 a +SDict begin H.S end + 49451 42832 a FU(222)51776 +42832 y +SDict begin 18.2 H.L end + 51776 42832 a 51776 42832 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-EXPLODEPKG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 42832 a Black +0 TeXcolorgray 5284 44846 a +SDict begin H.S end + 5284 44846 a FU(18.3.2)387 +b FR(mak)-15 b(epkg)15038 44846 y +SDict begin 18.2 H.L end + 15038 44846 a 15038 +44846 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKEPKG) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15038 44846 a Black Black 42 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 44846 a +SDict begin H.S end + 49451 44846 a FU(222)51776 +44846 y +SDict begin 18.2 H.L end + 51776 44846 a 51776 44846 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKEPKG) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 44846 a Black +0 TeXcolorgray 5284 46861 a +SDict begin H.S end + 5284 46861 a FU(18.3.3)387 +b(SlackBuild)f(Scripts)21127 46861 y +SDict begin 18.2 H.L end + 21127 46861 a 21127 +46861 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 21127 46861 a Black Black 152 w FU(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 46861 a +SDict begin H.S end + 49451 46861 a FU(222)51776 +46861 y +SDict begin 18.2 H.L end + 51776 46861 a 51776 46861 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 46861 a Black +0 TeXcolorgray 2627 48876 a +SDict begin H.S end + 2627 48876 a FU(18.4)h(Making)g(T)-124 +b(ags)387 b(and)g(T)-124 b(ag\002les)387 b(\(for)h(setup\))28592 +48876 y +SDict begin 18.2 H.L end + 28592 48876 a 28592 48876 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-TAGS-AND-TAGFILES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 28592 48876 a Black +Black 48 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black 0 TeXcolorgray +49451 48876 a +SDict begin H.S end + 49451 48876 a FU(223)51776 48876 y +SDict begin 18.2 H.L end + 51776 +48876 a 51776 48876 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-TAGS-AND-TAGFILES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 48876 a Black 0 TeXcolorgray +-30 51156 a +SDict begin H.S end + -30 51156 a FX(19)f(ZipSlack)7852 51156 y +SDict begin 18.2 H.L end + +7852 51156 a 7852 51156 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7852 51156 a Black Black 254 +w FX(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 51156 a +SDict begin H.S end + 49451 51156 a FX(225)51776 +51156 y +SDict begin 18.2 H.L end + 51776 51156 a 51776 51156 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 51156 a Black +0 TeXcolorgray 2627 53436 a +SDict begin H.S end + 2627 53436 a FU(19.1)g(What)g(is)h +(ZipSlack?)17177 53436 y +SDict begin 18.2 H.L end + 17177 53436 a 17177 53436 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-WHAT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + +17177 53436 a Black Black 228 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 53436 a +SDict begin H.S end + 49451 53436 a FU(225)51776 +53436 y +SDict begin 18.2 H.L end + 51776 53436 a 51776 53436 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-WHAT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 53436 a Black +0 TeXcolorgray 5284 55451 a +SDict begin H.S end + 5284 55451 a FU(19.1.1)f(Adv)-39 +b(antages)16823 55451 y +SDict begin 18.2 H.L end + 16823 55451 a 16823 55451 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-ADVANTAGES) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16823 +55451 a Black Black 194 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 55451 a +SDict begin H.S end + 49451 55451 a FU(225)51776 +55451 y +SDict begin 18.2 H.L end + 51776 55451 a 51776 55451 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-ADVANTAGES) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 55451 a Black +0 TeXcolorgray 5284 57466 a +SDict begin H.S end + 5284 57466 a FU(19.1.2)387 +b(Disadv)-39 b(antages)18545 57466 y +SDict begin 18.2 H.L end + 18545 57466 a 18545 +57466 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-DISADVANTAGES) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18545 57466 a Black Black 22 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 57466 a +SDict begin H.S end + 49451 57466 a FU(226)51776 +57466 y +SDict begin 18.2 H.L end + 51776 57466 a 51776 57466 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-DISADVANTAGES) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 57466 a Black +0 TeXcolorgray 2627 59480 a +SDict begin H.S end + 2627 59480 a FU(19.2)387 +b(Getting)g(ZipSlack)16360 59480 y +SDict begin 18.2 H.L end + 16360 59480 a 16360 +59480 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-GETTING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16360 59480 a Black Black 270 w FU(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 59480 a +SDict begin H.S end + 49451 59480 a FU(226)51776 +59480 y +SDict begin 18.2 H.L end + 51776 59480 a 51776 59480 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-GETTING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 59480 a Black +0 TeXcolorgray 5284 61495 a +SDict begin H.S end + 5284 61495 a FU(19.2.1)g(Installation)16520 +61495 y +SDict begin 18.2 H.L end + 16520 61495 a 16520 61495 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-INSTALLATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16520 61495 a Black +Black 110 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 61495 a +SDict begin H.S end + 49451 61495 a FU(226)51776 +61495 y +SDict begin 18.2 H.L end + 51776 61495 a 51776 61495 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-INSTALLATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 61495 a Black +0 TeXcolorgray 2627 63510 a +SDict begin H.S end + 2627 63510 a FU(19.3)g(Booting)g(ZipSlack) +16706 63510 y +SDict begin 18.2 H.L end + 16706 63510 a 16706 63510 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-BOOTING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16706 63510 +a Black Black 311 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 63510 a +SDict begin H.S end + 49451 63510 a FU(227)51776 +63510 y +SDict begin 18.2 H.L end + 51776 63510 a 51776 63510 a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK-BOOTING) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 63510 a Black +Black 50657 73672 a FR(xi)p Black eop end +%%Page: 12 12 +TeXDict begin 12 11 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 0 TeXcolorgray -30 3490 a +SDict begin H.S end + -30 3490 +a FX(Glossary)5826 3490 y +SDict begin 18.2 H.L end + 5826 3490 a 5826 3490 a +SDict begin [ /Subtype /Link /Dest (GLOSSARY) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 5826 +3490 a Black Black 343 w FX(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 3490 a +SDict begin H.S end + 49451 3490 a FX(229)51776 +3490 y +SDict begin 18.2 H.L end + 51776 3490 a 51776 3490 a +SDict begin [ /Subtype /Link /Dest (GLOSSARY) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 3490 a Black 0 +TeXcolorgray -30 5771 a +SDict begin H.S end + -30 5771 a FX(A.)388 b(The)f(GNU)g(General)f +(Public)h(License)23992 5771 y +SDict begin 18.2 H.L end + 23992 5771 a 23992 5771 +a +SDict begin [ /Subtype /Link /Dest (GPL) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 23992 5771 a Black Black -1 w FX(.)p Black Black 1 +w(.)p Black Black(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black 0 TeXcolorgray +49451 5771 a +SDict begin H.S end + 49451 5771 a FX(245)51776 5771 y +SDict begin 18.2 H.L end + 51776 5771 +a 51776 5771 a +SDict begin [ /Subtype /Link /Dest (GPL) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 5771 a Black 0 TeXcolorgray 2627 +8051 a +SDict begin H.S end + 2627 8051 a FU(A.1.)h(Preamble)11537 8051 y +SDict begin 18.2 H.L end + 11537 +8051 a 11537 8051 a +SDict begin [ /Subtype /Link /Dest (7087) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11537 8051 a Black Black 56 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 8051 a +SDict begin H.S end + 49451 8051 a FU(245)51776 8051 +y +SDict begin 18.2 H.L end + 51776 8051 a 51776 8051 a +SDict begin [ /Subtype /Link /Dest (7087) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 8051 a Black 0 TeXcolorgray +2627 10066 a +SDict begin H.S end + 2627 10066 a FU(A.2.)g(TERMS)e(AND)h(CONDITIONS)24451 +10066 y +SDict begin 18.2 H.L end + 24451 10066 a 24451 10066 a +SDict begin [ /Subtype /Link /Dest (7097) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 24451 10066 a Black +Black 315 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black 0 TeXcolorgray +49451 10066 a +SDict begin H.S end + 49451 10066 a FU(246)51776 10066 y +SDict begin 18.2 H.L end + 51776 +10066 a 51776 10066 a +SDict begin [ /Subtype /Link /Dest (7097) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 10066 a Black 0 TeXcolorgray +2627 12080 a +SDict begin H.S end + 2627 12080 a FU(A.3.)h(Ho)-39 b(w)387 b(to)g(Apply)g +(These)g(T)-108 b(erms)387 b(to)g(Y)-170 b(our)387 b(Ne)-39 +b(w)387 b(Programs)37436 12080 y +SDict begin 18.2 H.L end + 37436 12080 a 37436 +12080 a +SDict begin [ /Subtype /Link /Dest (7161) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37436 12080 a Black Black 115 w FU(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 12080 a +SDict begin H.S end + 49451 12080 a FU(253)51776 +12080 y +SDict begin 18.2 H.L end + 51776 12080 a 51776 12080 a +SDict begin [ /Subtype /Link /Dest (7161) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 12080 a Black +0 TeXcolorgray -30 14361 a +SDict begin H.S end + -30 14361 a FX(Index)3760 +14361 y +SDict begin 18.2 H.L end + 3760 14361 a 3760 14361 a +SDict begin [ /Subtype /Link /Dest (DOC-INDEX) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 3760 14361 a Black +Black 84 w FX(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 14361 a +SDict begin H.S end + 49451 14361 a FX(255)51776 +14361 y +SDict begin 18.2 H.L end + 51776 14361 a 51776 14361 a +SDict begin [ /Subtype /Link /Dest (DOC-INDEX) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 14361 a Black +Black -30 73672 a FR(xii)p Black eop end +%%Page: 13 13 +TeXDict begin 13 12 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.13) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 6086 x FS(List)894 b(of)g(T)-257 +b(ab)-32 b(les)p 0 TeXcolorgray -30 8349 a +SDict begin H.S end + -30 8349 a +FU(2-1.)388 b(Man)f(P)-23 b(age)387 b(Sections)14669 +8349 y +SDict begin 18.2 H.L end + 14669 8349 a 14669 8349 a +SDict begin [ /Subtype /Link /Dest (408) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14669 8349 a Black Black +24 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black 0 TeXcolorgray 51001 8349 a +SDict begin H.S end + 51001 +8349 a FU(8)51776 8349 y +SDict begin 18.2 H.L end + 51776 8349 a 51776 8349 a +SDict begin [ /Subtype /Link /Dest (408) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 +8349 a Black 0 TeXcolorgray -30 10364 a +SDict begin H.S end + -30 10364 a FU(3-1.)h(Slackw) +-15 b(are)386 b(Linux,)i(Inc.)f(Contact)g(Information)29481 +10364 y +SDict begin 18.2 H.L end + 29481 10364 a 29481 10364 a +SDict begin [ /Subtype /Link /Dest (660) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 29481 10364 a Black +Black 322 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black 0 TeXcolorgray 50226 10364 a +SDict begin H.S end + 50226 +10364 a FU(16)51776 10364 y +SDict begin 18.2 H.L end + 51776 10364 a 51776 10364 +a +SDict begin [ /Subtype /Link /Dest (660) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 10364 a Black 0 TeXcolorgray -30 12378 a +SDict begin H.S end + -30 +12378 a FU(3-2.)h(System)e(Requirements)16372 12378 y +SDict begin 18.2 H.L end + +16372 12378 a 16372 12378 a +SDict begin [ /Subtype /Link /Dest (705) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 16372 12378 a Black Black +258 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 12378 +a +SDict begin H.S end + 50226 12378 a FU(17)51776 12378 y +SDict begin 18.2 H.L end + 51776 12378 a 51776 +12378 a +SDict begin [ /Subtype /Link /Dest (705) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 12378 a Black 0 TeXcolorgray -30 14393 +a +SDict begin H.S end + -30 14393 a FU(3-3.)i(Softw)-15 b(are)386 b(Series)12565 +14393 y +SDict begin 18.2 H.L end + 12565 14393 a 12565 14393 a +SDict begin [ /Subtype /Link /Dest (745) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12565 14393 a Black +Black 191 w FU(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 14393 +a +SDict begin H.S end + 50226 14393 a FU(18)51776 14393 y +SDict begin 18.2 H.L end + 51776 14393 a 51776 +14393 a +SDict begin [ /Subtype /Link /Dest (745) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 14393 a Black 0 TeXcolorgray -30 16408 +a +SDict begin H.S end + -30 16408 a FU(9-1.)i(Octal)f(Permission)f(V)-172 b(alues)17963 +16408 y +SDict begin 18.2 H.L end + 17963 16408 a 17963 16408 a +SDict begin [ /Subtype /Link /Dest (3141) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 17963 16408 a Black +Black 217 w FU(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 16408 a +SDict begin H.S end + 49451 16408 a FU(112)51776 +16408 y +SDict begin 18.2 H.L end + 51776 16408 a 51776 16408 a +SDict begin [ /Subtype /Link /Dest (3141) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 16408 a Black +0 TeXcolorgray -30 18422 a +SDict begin H.S end + -30 18422 a FU(13-1.)388 b +FR(ftp)f FU(commands)12326 18422 y +SDict begin 18.2 H.L end + 12326 18422 a 12326 +18422 a +SDict begin [ /Subtype /Link /Dest (4882) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12326 18422 a Black Black 42 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 18422 a +SDict begin H.S end + 49451 18422 a FU(174)51776 +18422 y +SDict begin 18.2 H.L end + 51776 18422 a 51776 18422 a +SDict begin [ /Subtype /Link /Dest (4882) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 18422 a Black +0 TeXcolorgray -30 20437 a +SDict begin H.S end + -30 20437 a FU(16-1.)h(Mo)-23 +b(v)g(ement)10256 20437 y +SDict begin 18.2 H.L end + 10256 20437 a 10256 20437 a +SDict begin [ /Subtype /Link /Dest (5772) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +10256 20437 a Black Black 175 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 20437 a +SDict begin H.S end + 49451 20437 a FU(203)51776 +20437 y +SDict begin 18.2 H.L end + 51776 20437 a 51776 20437 a +SDict begin [ /Subtype /Link /Dest (5772) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 20437 a Black +0 TeXcolorgray -30 22452 a +SDict begin H.S end + -30 22452 a FU(16-2.)388 b(Editing)8151 +22452 y +SDict begin 18.2 H.L end + 8151 22452 a 8151 22452 a +SDict begin [ /Subtype /Link /Dest (5807) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8151 22452 a Black +Black 343 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 22452 a +SDict begin H.S end + 49451 22452 a FU(203)51776 +22452 y +SDict begin 18.2 H.L end + 51776 22452 a 51776 22452 a +SDict begin [ /Subtype /Link /Dest (5807) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 22452 a Black +0 TeXcolorgray -30 24466 a +SDict begin H.S end + -30 24466 a FU(16-3.)g(Searching)9784 +24466 y +SDict begin 18.2 H.L end + 9784 24466 a 9784 24466 a +SDict begin [ /Subtype /Link /Dest (5847) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9784 24466 a Black +Black 259 w FU(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 24466 a +SDict begin H.S end + 49451 24466 a FU(204)51776 +24466 y +SDict begin 18.2 H.L end + 51776 24466 a 51776 24466 a +SDict begin [ /Subtype /Link /Dest (5847) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 24466 a Black +0 TeXcolorgray -30 26481 a +SDict begin H.S end + -30 26481 a FU(16-4.)g(Sa)-31 +b(ving)386 b(and)i(Quitting)16041 26481 y +SDict begin 18.2 H.L end + 16041 26481 +a 16041 26481 a +SDict begin [ /Subtype /Link /Dest (5881) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 16041 26481 a Black Black 201 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 26481 a +SDict begin H.S end + 49451 26481 a FU(204)51776 +26481 y +SDict begin 18.2 H.L end + 51776 26481 a 51776 26481 a +SDict begin [ /Subtype /Link /Dest (5881) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 26481 a Black +0 TeXcolorgray -30 28496 a +SDict begin H.S end + -30 28496 a FU(17-1.)g(Basic)f(Emacs)g +(Editing)f(Commands)23949 28496 y +SDict begin 18.2 H.L end + 23949 28496 a 23949 +28496 a +SDict begin [ /Subtype /Link /Dest (TABLE-EMACS-BASIC-EDITING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 23949 28496 a Black Black 42 w FU(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 28496 a +SDict begin H.S end + 49451 28496 a FU(210)51776 +28496 y +SDict begin 18.2 H.L end + 51776 28496 a 51776 28496 a +SDict begin [ /Subtype /Link /Dest (TABLE-EMACS-BASIC-EDITING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 28496 a Black +0 TeXcolorgray -30 30510 a +SDict begin H.S end + -30 30510 a FU(18-1.)i FR(installpkg)e +FU(Options)14996 30510 y +SDict begin 18.2 H.L end + 14996 30510 a 14996 30510 a +SDict begin [ /Subtype /Link /Dest (6445) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +14996 30510 a Black Black 84 w FU(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 30510 +a +SDict begin H.S end + 50226 30510 a FX(??)51776 30510 y +SDict begin 18.2 H.L end + 51776 30510 a 51776 +30510 a +SDict begin [ /Subtype /Link /Dest (6445) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 30510 a Black 0 TeXcolorgray -30 32525 +a +SDict begin H.S end + -30 32525 a FU(18-2.)i FR(r)-57 b(emo)-15 b(vepkg)386 +b FU(Options)15608 32525 y +SDict begin 18.2 H.L end + 15608 32525 a 15608 32525 +a +SDict begin [ /Subtype /Link /Dest (6490) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 15608 32525 a Black Black 247 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 32525 a +SDict begin H.S end + 49451 32525 a FU(219)51776 +32525 y +SDict begin 18.2 H.L end + 51776 32525 a 51776 32525 a +SDict begin [ /Subtype /Link /Dest (6490) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 32525 a Black +0 TeXcolorgray -30 34540 a +SDict begin H.S end + -30 34540 a FU(18-3.)i(T)-124 +b(ag\002le)387 b(Status)f(Options)17325 34540 y +SDict begin 18.2 H.L end + 17325 +34540 a 17325 34540 a +SDict begin [ /Subtype /Link /Dest (6620) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 17325 34540 a Black Black 80 w +FU(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 34540 a +SDict begin H.S end + 49451 34540 a FU(223)51776 +34540 y +SDict begin 18.2 H.L end + 51776 34540 a 51776 34540 a +SDict begin [ /Subtype /Link /Dest (6620) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 51776 34540 a Black +-30 41127 a FS(List)894 b(of)g(Figures)p 0 TeXcolorgray +-30 44749 a +SDict begin H.S end + -30 44749 a FU(4-1.)388 b(K)-39 b(ernel)387 +b(Con\002guration)f(Menu)19990 44749 y +SDict begin 18.2 H.L end + 19990 44749 a +19990 44749 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-MAKE-MENUCONFIG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19990 44749 a Black Black 127 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 44749 +a +SDict begin H.S end + 50226 44749 a FU(53)51776 44749 y +SDict begin 18.2 H.L end + 51776 44749 a 51776 +44749 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-MAKE-MENUCONFIG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 44749 a Black 0 TeXcolorgray -30 46764 +a +SDict begin H.S end + -30 46764 a FU(6-1.)i FR(xor)-57 b(gcon\002g)386 b +FU(Mouse)h(Con\002guration)22987 46764 y +SDict begin 18.2 H.L end + 22987 46764 +a 22987 46764 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-1) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 22987 46764 a Black Black 229 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black 0 +TeXcolorgray 50226 46764 a +SDict begin H.S end + 50226 46764 a FU(76)51776 +46764 y +SDict begin 18.2 H.L end + 51776 46764 a 51776 46764 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-1) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 46764 a Black +0 TeXcolorgray -30 48778 a +SDict begin H.S end + -30 48778 a FU(6-2.)h FR(xor)-57 +b(gcon\002g)386 b FU(Horizontal)h(Sync)19885 48778 y +SDict begin 18.2 H.L end + +19885 48778 a 19885 48778 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-2) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19885 48778 a Black Black +232 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 48778 +a +SDict begin H.S end + 50226 48778 a FU(78)51776 48778 y +SDict begin 18.2 H.L end + 51776 48778 a 51776 +48778 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-2) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 48778 a Black 0 TeXcolorgray -30 50793 +a +SDict begin H.S end + -30 50793 a FU(6-3.)h FR(xor)-57 b(gcon\002g)386 b +FU(V)-172 b(ertical)387 b(Sync)18076 50793 y +SDict begin 18.2 H.L end + 18076 50793 +a 18076 50793 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-3) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 18076 50793 a Black Black 104 w FU(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 50793 a +SDict begin H.S end + 50226 50793 a FU(78)51776 50793 y +SDict begin 18.2 H.L end + 51776 +50793 a 51776 50793 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-3) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 50793 a Black 0 TeXcolorgray +-30 52808 a +SDict begin H.S end + -30 52808 a FU(6-4.)h FR(xor)-57 b(gcon\002g)386 +b FU(V)-93 b(ideo)387 b(Card)16864 52808 y +SDict begin 18.2 H.L end + 16864 52808 +a 16864 52808 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-4) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16864 52808 a Black Black 153 w FU(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 52808 a +SDict begin H.S end + 50226 52808 a FU(79)51776 52808 y +SDict begin 18.2 H.L end + 51776 +52808 a 51776 52808 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM-4) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 52808 a Black 0 TeXcolorgray +-30 54822 a +SDict begin H.S end + -30 54822 a FU(6-5.)h(Desktop)e(Con\002guration)g(with)h +FR(xor)-57 b(gcon\002g)27076 54822 y +SDict begin 18.2 H.L end + 27076 54822 a 27076 +54822 a +SDict begin [ /Subtype /Link /Dest (FIG-X-WINDOW-SYSTEM-XWMCONFIG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 27076 54822 a Black Black 15 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 54822 +a +SDict begin H.S end + 50226 54822 a FU(84)51776 54822 y +SDict begin 18.2 H.L end + 51776 54822 a 51776 +54822 a +SDict begin [ /Subtype /Link /Dest (FIG-X-WINDOW-SYSTEM-XWMCONFIG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 54822 a Black 0 TeXcolorgray -30 56837 +a +SDict begin H.S end + -30 56837 a FU(7-1.)388 b FR(lilocon\002g)8667 56837 +y +SDict begin 18.2 H.L end + 8667 56837 a 8667 56837 a +SDict begin [ /Subtype /Link /Dest (BOOTING-SETUP-LILO) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8667 56837 a Black Black +214 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black 0 TeXcolorgray 50226 56837 +a +SDict begin H.S end + 50226 56837 a FU(90)51776 56837 y +SDict begin 18.2 H.L end + 51776 56837 a 51776 +56837 a +SDict begin [ /Subtype /Link /Dest (BOOTING-SETUP-LILO) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 56837 a Black 0 TeXcolorgray -30 58852 +a +SDict begin H.S end + -30 58852 a FU(7-2.)g FR(lilocon\002g)e FU(Expert)h(Menu)17188 +58852 y +SDict begin 18.2 H.L end + 17188 58852 a 17188 58852 a +SDict begin [ /Subtype /Link /Dest (BOOTING-LILO-EXPERT) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17188 58852 a Black +Black 217 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black 0 TeXcolorgray +50226 58852 a +SDict begin H.S end + 50226 58852 a FU(92)51776 58852 y +SDict begin 18.2 H.L end + 51776 +58852 a 51776 58852 a +SDict begin [ /Subtype /Link /Dest (BOOTING-LILO-EXPERT) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 58852 a Black 0 TeXcolorgray +-30 60866 a +SDict begin H.S end + -30 60866 a FU(11-1.)h(Basic)f FR(ps)g FU(output)13144 +60866 y +SDict begin 18.2 H.L end + 13144 60866 a 13144 60866 a +SDict begin [ /Subtype /Link /Dest (FIG-PROCESS-CONTROL-PS-SHORT) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 13144 60866 a Black +Black -1 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 60866 a +SDict begin H.S end + 49451 60866 a FU(135)51776 +60866 y +SDict begin 18.2 H.L end + 51776 60866 a 51776 60866 a +SDict begin [ /Subtype /Link /Dest (FIG-PROCESS-CONTROL-PS-SHORT) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 60866 a Black +0 TeXcolorgray -30 62881 a +SDict begin H.S end + -30 62881 a FU(13-1.)h(T)-108 +b(elnetting)386 b(to)h(a)g(webserv)-23 b(er)19249 62881 +y +SDict begin 18.2 H.L end + 19249 62881 a 19249 62881 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TELNET-WEB) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19249 62881 a Black Black +93 w FU(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 62881 a +SDict begin H.S end + 49451 62881 a FU(163)51776 +62881 y +SDict begin 18.2 H.L end + 51776 62881 a 51776 62881 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TELNET-WEB) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 62881 a Black +0 TeXcolorgray -30 64896 a +SDict begin H.S end + -30 64896 a FU(13-2.)388 b(The)f(Pine)g +(main)g(menu)16457 64896 y +SDict begin 18.2 H.L end + 16457 64896 a 16457 64896 +a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-PINE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 16457 64896 a Black Black 173 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black 0 TeXcolorgray 49451 64896 a +SDict begin H.S end + 49451 64896 a FU(165)51776 +64896 y +SDict begin 18.2 H.L end + 51776 64896 a 51776 64896 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-PINE) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 64896 a Black +0 TeXcolorgray -30 66910 a +SDict begin H.S end + -30 66910 a FU(13-3.)h(Elm)e(main)h(screen) +14001 66910 y +SDict begin 18.2 H.L end + 14001 66910 a 14001 66910 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-ELM) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14001 66910 +a Black Black 304 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 66910 a +SDict begin H.S end + 49451 66910 a FU(167)51776 +66910 y +SDict begin 18.2 H.L end + 51776 66910 a 51776 66910 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-ELM) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 66910 a Black +Black 49795 73672 a FR(xiii)p Black eop end +%%Page: 14 14 +TeXDict begin 14 13 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 0 TeXcolorgray -30 3490 a +SDict begin H.S end + -30 3490 +a FU(13-4.)388 b(Mutt)e(main)h(screen)14432 3490 y +SDict begin 18.2 H.L end + 14432 +3490 a 14432 3490 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-MUTT) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14432 3490 a Black Black 261 w FU(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 3490 a +SDict begin H.S end + 49451 3490 a FU(168)51776 3490 +y +SDict begin 18.2 H.L end + 51776 3490 a 51776 3490 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-MUTT) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 3490 a Black 0 TeXcolorgray +-30 5505 a +SDict begin H.S end + -30 5505 a FU(13-5.)h(L)-85 b(ynx)386 b(def)-15 +b(ault)387 b(start)g(page)17817 5505 y +SDict begin 18.2 H.L end + 17817 5505 a 17817 +5505 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LYNX) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17817 5505 a Black Black 363 w FU(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 5505 a +SDict begin H.S end + 49451 5505 a FU(171)51776 5505 +y +SDict begin 18.2 H.L end + 51776 5505 a 51776 5505 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LYNX) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 5505 a Black 0 TeXcolorgray +-30 7520 a +SDict begin H.S end + -30 7520 a FU(13-6.)h(Links,)f(with)g(the)g(\002le)g(menu)g +(open)22527 7520 y +SDict begin 18.2 H.L end + 22527 7520 a 22527 7520 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LINKS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 22527 7520 +a Black Black 302 w FU(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +0 TeXcolorgray 49451 7520 a +SDict begin H.S end + 49451 7520 a FU(172)51776 +7520 y +SDict begin 18.2 H.L end + 51776 7520 a 51776 7520 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LINKS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 7520 a Black 0 +TeXcolorgray -30 9534 a +SDict begin H.S end + -30 9534 a FU(13-7.)h(T)-124 +b(w)-15 b(o)386 b(users)h(in)h(a)f FR(talk)413 b FU(session)20131 +9534 y +SDict begin 18.2 H.L end + 20131 9534 a 20131 9534 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-TALK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20131 9534 a Black Black +373 w FU(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 9534 a +SDict begin H.S end + 49451 9534 a FU(177)51776 9534 +y +SDict begin 18.2 H.L end + 51776 9534 a 51776 9534 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-TALK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 9534 a Black 0 TeXcolorgray +-30 11549 a +SDict begin H.S end + -30 11549 a FU(13-8.)388 b(T)-124 b(w)-15 +b(o)386 b(users)h(in)h(a)f FR(ytalk)413 b FU(session)20819 +11549 y +SDict begin 18.2 H.L end + 20819 11549 a 20819 11549 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-YTALK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 20819 11549 a Black +Black 73 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 11549 a +SDict begin H.S end + 49451 11549 a FU(179)51776 +11549 y +SDict begin 18.2 H.L end + 51776 11549 a 51776 11549 a +SDict begin [ /Subtype /Link /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-YTALK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 11549 a Black +0 TeXcolorgray -30 13564 a +SDict begin H.S end + -30 13564 a FU(16-1.)388 b(A)f(vi)g +(session.)11550 13564 y +SDict begin 18.2 H.L end + 11550 13564 a 11550 13564 a +SDict begin [ /Subtype /Link /Dest (FIG-VI-VIM-SPLITEDIT) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 11550 +13564 a Black Black 43 w FU(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 13564 a +SDict begin H.S end + 49451 13564 a FU(196)51776 +13564 y +SDict begin 18.2 H.L end + 51776 13564 a 51776 13564 a +SDict begin [ /Subtype /Link /Dest (FIG-VI-VIM-SPLITEDIT) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 13564 a Black +0 TeXcolorgray -30 15578 a +SDict begin H.S end + -30 15578 a FU(18-1.)h(Pkgtool')-85 +b(s)386 b(main)g(menu.)17147 15578 y +SDict begin 18.2 H.L end + 17147 15578 a 17147 +15578 a +SDict begin [ /Subtype /Link /Dest (PKGTOOL-MAIN-MENU) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17147 15578 a Black Black 258 w FU(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 15578 a +SDict begin H.S end + 49451 15578 a FU(217)51776 +15578 y +SDict begin 18.2 H.L end + 51776 15578 a 51776 15578 a +SDict begin [ /Subtype /Link /Dest (PKGTOOL-MAIN-MENU) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 15578 a Black +0 TeXcolorgray -30 17593 a +SDict begin H.S end + -30 17593 a FU(18-2.)i(Pkgtool)e(vie)-39 +b(w)387 b(mode)15601 17593 y +SDict begin 18.2 H.L end + 15601 17593 a 15601 17593 +a +SDict begin [ /Subtype /Link /Dest (PKGTOOL-VIEW-MODE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15601 17593 a Black Black 254 w FU(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black 1 w(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 17593 a +SDict begin H.S end + 49451 17593 a FU(217)51776 +17593 y +SDict begin 18.2 H.L end + 51776 17593 a 51776 17593 a +SDict begin [ /Subtype /Link /Dest (PKGTOOL-VIEW-MODE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 17593 a Black +-30 24181 a FS(List)894 b(of)g(Examples)p 0 TeXcolorgray +-30 27802 a +SDict begin H.S end + -30 27802 a FU(8-1.)388 b(Listing)e(En)-62 +b(vironment)386 b(V)-172 b(ariables)387 b(with)g FR(set)27055 +27802 y +SDict begin 18.2 H.L end + 27055 27802 a 27055 27802 a +SDict begin [ /Subtype /Link /Dest (EX-SHELL-BASH-ENVIRONMENT) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 27055 27802 a Black +Black 36 w FU(.)p Black Black(.)p Black Black 1 w(.)p +Black Black(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black Black +1 w(.)p Black Black(.)p Black Black(.)p Black Black 1 +w(.)p Black Black(.)p Black Black 1 w(.)p Black Black(.)p +Black Black 1 w(.)p Black Black(.)p Black Black(.)p Black +Black 1 w(.)p Black Black(.)p Black Black 1 w(.)p Black +Black(.)p Black Black 1 w(.)p Black Black(.)p Black 0 +TeXcolorgray 49451 27802 a +SDict begin H.S end + 49451 27802 a FU(107)51776 +27802 y +SDict begin 18.2 H.L end + 51776 27802 a 51776 27802 a +SDict begin [ /Subtype /Link /Dest (EX-SHELL-BASH-ENVIRONMENT) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 27802 a Black +Black -30 73672 a FR(xiv)p Black eop end +%%Page: 15 15 +TeXDict begin 15 14 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOK-PREFACE) cvn H.B /DEST pdfmark +end + -30 2383 a 3376 x FO(Preface)p +-30 13332 51806 56 v -30 15341 a +SDict begin H.S end + -30 15341 a -30 15341 +a +SDict begin 31.45 H.A end + -30 15341 a -30 15341 a +SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-AUDIENCE) cvn H.B /DEST +pdfmark end + -30 15341 a 1953 x FN(Intended)746 +b(A)-80 b(udience)-30 18667 y +SDict begin H.S end + -30 18667 a -30 18667 a +SDict begin 18.2 H.A end + +-30 18667 a -30 18667 a +SDict begin [ /View [/XYZ H.V] /Dest (80) cvn H.B /DEST pdfmark end + -30 18667 a 1981 x FU(The)419 +b(Slackw)-15 b(are)417 b(Linux)h(operating)g(system)g(is)g(a)g(po)-39 +b(werful)419 b(platform)f(for)g(Intel-based)g(com-)-30 +22662 y(puters.)471 b(It)g(is)g(designed)f(to)h(be)g(stable,)g(secure,) +h(and)f(functional)f(as)h(both)f(a)i(high-end)e(serv)-23 +b(er)-30 24677 y(and)387 b(po)-39 b(werful)388 b(w)-15 +b(orkstation.)-30 25788 y +SDict begin H.S end + -30 25788 a -30 25788 a +SDict begin 18.2 H.A end + -30 +25788 a -30 25788 a +SDict begin [ /View [/XYZ H.V] /Dest (81) cvn H.B /DEST pdfmark end + -30 25788 a 1679 x FU(This)347 b(book)g(is)g +(designed)f(to)h(get)h(you)f(started)g(with)f(the)h(Slackw)-15 +b(are)347 b(Linux)g(operating)f(system.)-30 29481 y(It')-85 +b(s)320 b(not)f(meant)g(to)h(co)-23 b(v)g(er)319 b(e)-39 +b(v)-23 b(ery)320 b(single)f(aspect)h(of)g(the)f(distrib)-31 +b(ution,)319 b(b)-31 b(ut)319 b(rather)h(to)g(sho)-39 +b(w)319 b(what)-30 31496 y(it)387 b(is)g(capable)h(of)f(and)g(gi)-39 +b(v)-23 b(e)387 b(you)g(a)h(basic)f(w)-15 b(orking)386 +b(kno)-39 b(wledge)387 b(of)g(the)h(system.)-30 32606 +y +SDict begin H.S end + -30 32606 a -30 32606 a +SDict begin 18.2 H.A end + -30 32606 a -30 32606 a +SDict begin [ /View [/XYZ H.V] /Dest (82) cvn H.B /DEST pdfmark end + -30 +32606 a 1680 x FU(As)458 b(you)g(g)-8 b(ain)458 b(e)-23 +b(xperience)458 b(with)g(Slackw)-15 b(are)457 b(Linux,)h(we)h(hope)f +(you)f(\002nd)h(this)g(book)g(to)g(be)g(a)-30 36300 y(handy)437 +b(reference.)i(W)-124 b(e)437 b(also)h(hope)f(you')-15 +b(ll)436 b(lend)i(it)f(to)g(all)h(of)f(your)h(friends)f(when)g(the)-23 +b(y)437 b(come)-30 38315 y(asking)387 b(about)g(that)g(cool)g(Slackw) +-15 b(are)386 b(Linux)h(operating)g(system)g(you')-77 +b(re)386 b(running.)-30 39425 y +SDict begin H.S end + -30 39425 a -30 39425 +a +SDict begin 18.2 H.A end + -30 39425 a -30 39425 a +SDict begin [ /View [/XYZ H.V] /Dest (83) cvn H.B /DEST pdfmark end + -30 39425 a 1679 x FU(While)359 +b(this)f(book)h(may)g(not)g(an)g(edge-of-your)-31 b(-seat)358 +b(no)-23 b(v)g(el,)359 b(we)g(certainly)g(tried)g(to)g(mak)-15 +b(e)358 b(it)h(as)-30 43119 y(entertaining)456 b(as)g(possible.)h(W)-62 +b(ith)456 b(an)-23 b(y)456 b(luck,)h(we')-15 b(ll)456 +b(get)g(a)h(mo)-23 b(vie)456 b(deal.)h(Of)g(course,)g(we)f(also)-30 +45134 y(hope)387 b(you)g(are)h(able)f(to)g(learn)h(from)f(it)g(and)g +(\002nd)g(it)g(useful.)-30 46244 y +SDict begin H.S end + -30 46244 a -30 46244 +a +SDict begin 18.2 H.A end + -30 46244 a -30 46244 a +SDict begin [ /View [/XYZ H.V] /Dest (84) cvn H.B /DEST pdfmark end + -30 46244 a 1679 x FU(And)g(no)-39 +b(w)-101 b(,)388 b(on)f(with)g(the)g(sho)-39 b(w)-101 +b(.)-30 50156 y +SDict begin H.S end + -30 50156 a -30 50156 a +SDict begin 31.45 H.A end + -30 50156 a -30 +50156 a +SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CHANGES) cvn H.B /DEST +pdfmark end + -30 50156 a 3257 x FN(Chang)27 b(es)745 b(fr)-54 +b(om)745 b(the)f(Fir)-40 b(st)744 b(Edition)-30 55348 +y +SDict begin H.S end + -30 55348 a -30 55348 a +SDict begin 18.2 H.A end + -30 55348 a -30 55348 a +SDict begin [ /View [/XYZ H.V] /Dest (86) cvn H.B /DEST pdfmark end + -30 +55348 a 1419 x FU(This)381 b(second)g(edition)f(is)h(the)g(culmination) +f(of)h(years)g(of)g(hard)g(w)-15 b(ork)381 b(by)g(the)g(dedicated)f +(mem-)-30 58781 y(bers)407 b(of)g(the)f(Slackw)-15 b(are)406 +b(Documentation)g(Project.)g(The)h(follo)-39 b(wing)406 +b(are)h(the)g(major)f(changes)-30 60796 y(in)387 b(this)g(ne)-39 +b(w)388 b(edition:)-30 60811 y +SDict begin H.S end + -30 60811 a -30 60811 +a +SDict begin 18.2 H.A end + -30 60811 a -30 60811 a +SDict begin [ /View [/XYZ H.V] /Dest (87) cvn H.B /DEST pdfmark end + -30 60811 a -30 61587 a +SDict begin H.S end + -30 +61587 a -30 61587 a +SDict begin 18.2 H.A end + -30 61587 a -30 61587 a +SDict begin [ /View [/XYZ H.V] /Dest (88) cvn H.B /DEST pdfmark end + -30 61587 +a Black 3548 x FM(\225)p Black 1520 65135 a +SDict begin H.S end + 1520 65135 +a 1520 65135 a +SDict begin 18.2 H.A end + 1520 65135 a 1520 65135 a +SDict begin [ /View [/XYZ H.V] /Dest (89) cvn H.B /DEST pdfmark end + 1520 65135 a +0 TeXcolorgray 1520 65135 a +SDict begin H.S end + 1520 65135 a FU(Chapter)f(3)7589 +65135 y +SDict begin 18.2 H.L end + 7589 65135 a 7589 65135 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7589 65135 a Black +FU(,)499 b(Installation,)f(has)h(been)g(modi\002ed)f(with)g(ne)-39 +b(w)499 b(screenshots)g(of)f(the)h(installer)-62 b(,)1520 +67150 y(and)387 b(re\003ects)g(changes)g(in)g(disk-sets,)g(and)h(CD)f +(installation.)-30 67486 y +SDict begin H.S end + -30 67486 a -30 67486 a +SDict begin 18.2 H.A end + -30 +67486 a -30 67486 a +SDict begin [ /View [/XYZ H.V] /Dest (91) cvn H.B /DEST pdfmark end + -30 67486 a Black 50400 73672 a FR(xv)p +Black eop end +%%Page: 16 16 +TeXDict begin 16 15 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.16) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Pr)-57 b(eface)p Black Black +-30 3490 a FM(\225)p Black 1520 3490 a +SDict begin H.S end + 1520 3490 a 1520 +3490 a +SDict begin 18.2 H.A end + 1520 3490 a 1520 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (92) cvn H.B /DEST pdfmark end + 1520 3490 a 0 TeXcolorgray +1520 3490 a +SDict begin H.S end + 1520 3490 a FU(Chapter)387 b(4)7589 3490 +y +SDict begin 18.2 H.L end + 7589 3490 a 7589 3490 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7589 3490 a Black FU(,)476 +b(System)e(Con\002guration,)g(has)i(been)f(updated)g(with)g(ne)-39 +b(w)476 b(information)e(about)1520 5505 y(Linux)387 b(2.6.x)h(k)-15 +b(ernels.)-30 5520 y +SDict begin H.S end + -30 5520 a -30 5520 a +SDict begin 18.2 H.A end + -30 5520 a +-30 5520 a +SDict begin [ /View [/XYZ H.V] /Dest (94) cvn H.B /DEST pdfmark end + -30 5520 a Black 2774 x FM(\225)p Black 1520 +8294 a +SDict begin H.S end + 1520 8294 a 1520 8294 a +SDict begin 18.2 H.A end + 1520 8294 a 1520 8294 +a +SDict begin [ /View [/XYZ H.V] /Dest (95) cvn H.B /DEST pdfmark end + 1520 8294 a 0 TeXcolorgray 1520 8294 a +SDict begin H.S end + 1520 8294 a +FU(Chapter)387 b(5)7589 8294 y +SDict begin 18.2 H.L end + 7589 8294 a 7589 8294 +a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7589 8294 a Black FU(,)335 b(Netw)-15 b(ork)335 b(Con\002guration,)e +(has)i(been)h(e)-23 b(xpanded)334 b(with)h(further)g(e)-23 +b(xplanation)334 b(of)1520 10309 y(Samba,)423 b(NFS,)f(and)h(DHCP)-172 +b(.)423 b(A)g(section)f(on)h(wireless)g(netw)-15 b(orking)421 +b(has)i(also)g(been)g(added.)1520 12324 y(This)317 b(chapter)h(no)-39 +b(w)317 b(re\003ects)h(major)f(changes)h(in)f(ho)-39 +b(w)318 b(Slackw)-15 b(are)317 b(handles)g(netw)-15 b(ork)317 +b(setup.)-30 12659 y +SDict begin H.S end + -30 12659 a -30 12659 a +SDict begin 18.2 H.A end + -30 12659 +a -30 12659 a +SDict begin [ /View [/XYZ H.V] /Dest (97) cvn H.B /DEST pdfmark end + -30 12659 a Black 2454 x FM(\225)p Black +1520 15113 a +SDict begin H.S end + 1520 15113 a 1520 15113 a +SDict begin 18.2 H.A end + 1520 15113 a 1520 +15113 a +SDict begin [ /View [/XYZ H.V] /Dest (98) cvn H.B /DEST pdfmark end + 1520 15113 a 0 TeXcolorgray 1520 15113 a +SDict begin H.S end + 1520 +15113 a FU(Chapter)387 b(6)7589 15113 y +SDict begin 18.2 H.L end + 7589 15113 a +7589 15113 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7589 15113 a Black FU(,)562 b(X)f(W)-62 +b(indo)-39 b(w)562 b(System,)f(has)g(been)h(substantially)e(re)-39 +b(written)562 b(for)g(Xor)-28 b(g)561 b(based)1520 17128 +y(systems.)387 b(This)g(chapter)g(no)-39 b(w)387 b(also)g(co)-23 +b(v)g(ers)387 b(the)g(xdm)g(graphical)g(login)g(manager)-85 +b(.)-30 17463 y +SDict begin H.S end + -30 17463 a -30 17463 a +SDict begin 18.2 H.A end + -30 17463 a -30 +17463 a +SDict begin [ /View [/XYZ H.V] /Dest (100) cvn H.B /DEST pdfmark end + -30 17463 a Black 2455 x FM(\225)p Black 1520 +19918 a +SDict begin H.S end + 1520 19918 a 1520 19918 a +SDict begin 18.2 H.A end + 1520 19918 a 1520 19918 +a +SDict begin [ /View [/XYZ H.V] /Dest (101) cvn H.B /DEST pdfmark end + 1520 19918 a 0 TeXcolorgray 1520 19918 a +SDict begin H.S end + 1520 19918 +a FU(Chapter)387 b(13)8364 19918 y +SDict begin 18.2 H.L end + 8364 19918 a 8364 +19918 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8364 19918 a Black -1 w FU(,)727 b(Basic)f(Netw)-15 +b(ork)725 b(Commands,)g(has)h(been)g(enhanced)g(with)g(information)1520 +21932 y(about)387 b(additional)f(netw)-15 b(ork)387 b(utilities.)-30 +21947 y +SDict begin H.S end + -30 21947 a -30 21947 a +SDict begin 18.2 H.A end + -30 21947 a -30 21947 +a +SDict begin [ /View [/XYZ H.V] /Dest (103) cvn H.B /DEST pdfmark end + -30 21947 a Black 2775 x FM(\225)p Black 1520 24722 +a +SDict begin H.S end + 1520 24722 a 1520 24722 a +SDict begin 18.2 H.A end + 1520 24722 a 1520 24722 a +SDict begin [ /View [/XYZ H.V] /Dest (104) cvn H.B /DEST pdfmark end + +1520 24722 a 0 TeXcolorgray 1520 24722 a +SDict begin H.S end + 1520 24722 a +FU(Chapter)g(14)8364 24722 y +SDict begin 18.2 H.L end + 8364 24722 a 8364 24722 +a +SDict begin [ /Subtype /Link /Dest (SECURITY) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8364 24722 a Black -1 w FU(,)396 b(Security)-101 b(,)396 +b(is)f(a)h(ne)-39 b(w)395 b(chapter)h(with)e(this)h(edition.)g(It)h(e) +-23 b(xplains)394 b(ho)-39 b(w)396 b(to)f(k)-15 b(eep)395 +b(a)1520 26736 y(Slackw)-15 b(are)386 b(Linux)h(system)g(secure.)-30 +27072 y +SDict begin H.S end + -30 27072 a -30 27072 a +SDict begin 18.2 H.A end + -30 27072 a -30 27072 +a +SDict begin [ /View [/XYZ H.V] /Dest (106) cvn H.B /DEST pdfmark end + -30 27072 a Black 2454 x FM(\225)p Black 1520 29526 +a +SDict begin H.S end + 1520 29526 a 1520 29526 a +SDict begin 18.2 H.A end + 1520 29526 a 1520 29526 a +SDict begin [ /View [/XYZ H.V] /Dest (107) cvn H.B /DEST pdfmark end + +1520 29526 a 0 TeXcolorgray 1520 29526 a +SDict begin H.S end + 1520 29526 a +FU(Chapter)g(17)8364 29526 y +SDict begin 18.2 H.L end + 8364 29526 a 8364 29526 +a +SDict begin [ /Subtype /Link /Dest (EMACS) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8364 29526 a Black -1 w FU(,)568 b(Emacs,)g(is)f(a)h(ne)-39 +b(w)568 b(chapter)f(with)g(this)g(edition.)g(It)g(describes)g(ho)-39 +b(w)568 b(to)f(use)1520 31541 y(Emacs,)387 b(a)h(po)-39 +b(werful)387 b(editor)g(for)g(Unix.)-30 31876 y +SDict begin H.S end + -30 31876 +a -30 31876 a +SDict begin 18.2 H.A end + -30 31876 a -30 31876 a +SDict begin [ /View [/XYZ H.V] /Dest (109) cvn H.B /DEST pdfmark end + -30 31876 a Black +2454 x FM(\225)p Black 1520 34330 a +SDict begin H.S end + 1520 34330 a 1520 +34330 a +SDict begin 18.2 H.A end + 1520 34330 a 1520 34330 a +SDict begin [ /View [/XYZ H.V] /Dest (110) cvn H.B /DEST pdfmark end + 1520 34330 a 0 TeXcolorgray +1520 34330 a +SDict begin H.S end + 1520 34330 a FU(Chapter)g(18)8364 34330 +y +SDict begin 18.2 H.L end + 8364 34330 a 8364 34330 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8364 34330 a Black -1 w FU(,)750 +b(P)-23 b(ackage)748 b(Management,)h(has)f(been)h(updated)f(with)h +(information)e(about)1520 36345 y(SlackBuild)386 b(scripts.)-30 +36680 y +SDict begin H.S end + -30 36680 a -30 36680 a +SDict begin 18.2 H.A end + -30 36680 a -30 36680 +a +SDict begin [ /View [/XYZ H.V] /Dest (112) cvn H.B /DEST pdfmark end + -30 36680 a Black 2454 x FM(\225)p Black 1520 39134 +a +SDict begin H.S end + 1520 39134 a 1520 39134 a +SDict begin 18.2 H.A end + 1520 39134 a 1520 39134 a +SDict begin [ /View [/XYZ H.V] /Dest (113) cvn H.B /DEST pdfmark end + +1520 39134 a FU(There)376 b(are)h(man)-23 b(y)376 b(other)g(changes,)g +(both)g(minor)g(and)g(major)-62 b(,)377 b(to)f(re\003ect)g(changes)g +(in)g(Slack-)1520 41149 y(w)-15 b(are)387 b(as)g(it)g(has)h(matured.) +-30 43173 y +SDict begin H.S end + -30 43173 a -30 43173 a +SDict begin 31.45 H.A end + -30 43173 a -30 43173 +a +SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-ORGANIZATION) cvn H.B +/DEST pdfmark end + -30 43173 a 3466 x FN(Or)-40 b(ganization)746 b(of)e(this)h(Book)-30 +47235 y +SDict begin H.S end + -30 47235 a -30 47235 a +SDict begin 18.2 H.A end + -30 47235 a -30 47235 +a +SDict begin [ /View [/XYZ H.V] /Dest (115) cvn H.B /DEST pdfmark end + -30 47235 a -30 50123 a +SDict begin H.S end + -30 50123 a -30 50123 a +SDict begin 18.2 H.A end + -30 +50123 a -30 50123 a +SDict begin [ /View [/XYZ H.V] /Dest (117) cvn H.B /DEST pdfmark end + -30 50123 a 0 TeXcolorgray -30 51542 +a +SDict begin H.S end + -30 51542 a FU(Chapter)387 b(1)6039 51542 y +SDict begin 18.2 H.L end + 6039 51542 +a 6039 51542 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6039 51542 a Black FU(,)h(Introduction)-30 +51878 y +SDict begin H.S end + -30 51878 a -30 51878 a +SDict begin 18.2 H.A end + -30 51878 a -30 51878 +a +SDict begin [ /View [/XYZ H.V] /Dest (119) cvn H.B /DEST pdfmark end + -30 51878 a Black Black 3070 54332 a +SDict begin H.S end + 3070 54332 a 3070 +54332 a +SDict begin 18.2 H.A end + 3070 54332 a 3070 54332 a +SDict begin [ /View [/XYZ H.V] /Dest (120) cvn H.B /DEST pdfmark end + 3070 54332 a FU(Pro)-23 +b(vides)405 b(introductory)h(material)h(on)f(Linux,)h(Slackw)-15 +b(are,)406 b(and)h(the)g(Open)f(Source)h(and)3070 56346 +y(Free)387 b(Softw)-15 b(are)386 b(Mo)-23 b(v)g(ements.)-30 +57912 y +SDict begin H.S end + -30 57912 a -30 57912 a +SDict begin 18.2 H.A end + -30 57912 a -30 57912 +a +SDict begin [ /View [/XYZ H.V] /Dest (122) cvn H.B /DEST pdfmark end + -30 57912 a 0 TeXcolorgray -30 59911 a +SDict begin H.S end + -30 59911 a +FU(Chapter)387 b(2)6039 59911 y +SDict begin 18.2 H.L end + 6039 59911 a 6039 59911 +a +SDict begin [ /Subtype /Link /Dest (HELP) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6039 59911 a Black FU(,)h(Help)-30 60246 y +SDict begin H.S end + -30 60246 +a -30 60246 a +SDict begin 18.2 H.A end + -30 60246 a -30 60246 a +SDict begin [ /View [/XYZ H.V] /Dest (124) cvn H.B /DEST pdfmark end + -30 60246 a Black +Black 3070 62700 a +SDict begin H.S end + 3070 62700 a 3070 62700 a +SDict begin 18.2 H.A end + 3070 62700 +a 3070 62700 a +SDict begin [ /View [/XYZ H.V] /Dest (125) cvn H.B /DEST pdfmark end + 3070 62700 a FU(Describes)315 b(the)g(help)h(resources)f +(a)-31 b(v)-39 b(ailable)316 b(on)f(a)h(Slackw)-15 b(are)315 +b(Linux)g(system)g(and)g(online.)p Black -30 73672 a +FR(xvi)p Black eop end +%%Page: 17 17 +TeXDict begin 17 16 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.17) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (172) cvn H.B /DEST pdfmark end + -30 -2687 a 47014 -1636 a FR(Pr)-57 +b(eface)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (127) cvn H.B /DEST pdfmark end + -30 2504 a 0 TeXcolorgray -30 3611 +a +SDict begin H.S end + -30 3611 a FU(Chapter)387 b(3)6039 3611 y +SDict begin 18.2 H.L end + 6039 3611 +a 6039 3611 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6039 3611 a Black FU(,)h(Installation)-30 +3947 y +SDict begin H.S end + -30 3947 a -30 3947 a +SDict begin 18.2 H.A end + -30 3947 a -30 3947 a +SDict begin [ /View [/XYZ H.V] /Dest (129) cvn H.B /DEST pdfmark end + -30 +3947 a Black Black 3070 6401 a +SDict begin H.S end + 3070 6401 a 3070 6401 +a +SDict begin 18.2 H.A end + 3070 6401 a 3070 6401 a +SDict begin [ /View [/XYZ H.V] /Dest (130) cvn H.B /DEST pdfmark end + 3070 6401 a FU(Describes)478 +b(the)h(installation)e(process)i(step-by-step)f(with)h(screenshots)f +(to)h(pro)-23 b(vide)478 b(an)3070 8415 y(illustrati)-39 +b(v)-23 b(e)386 b(w)-15 b(alk-through.)-30 10301 y +SDict begin H.S end + -30 +10301 a -30 10301 a +SDict begin 18.2 H.A end + -30 10301 a -30 10301 a +SDict begin [ /View [/XYZ H.V] /Dest (132) cvn H.B /DEST pdfmark end + -30 10301 +a 0 TeXcolorgray -30 11980 a +SDict begin H.S end + -30 11980 a FU(Chapter)387 +b(4)6039 11980 y +SDict begin 18.2 H.L end + 6039 11980 a 6039 11980 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6039 11980 +a Black FU(,)h(System)e(Con\002guration)-30 12315 y +SDict begin H.S end + -30 +12315 a -30 12315 a +SDict begin 18.2 H.A end + -30 12315 a -30 12315 a +SDict begin [ /View [/XYZ H.V] /Dest (134) cvn H.B /DEST pdfmark end + -30 12315 +a Black Black 3070 14769 a +SDict begin H.S end + 3070 14769 a 3070 14769 a +SDict begin 18.2 H.A end + +3070 14769 a 3070 14769 a +SDict begin [ /View [/XYZ H.V] /Dest (135) cvn H.B /DEST pdfmark end + 3070 14769 a FU(Describes)h(the)g(important)f +(con\002guration)g(\002les)h(and)g(co)-23 b(v)g(ers)387 +b(k)-15 b(ernel)387 b(recompilation.)-30 16655 y +SDict begin H.S end + -30 +16655 a -30 16655 a +SDict begin 18.2 H.A end + -30 16655 a -30 16655 a +SDict begin [ /View [/XYZ H.V] /Dest (137) cvn H.B /DEST pdfmark end + -30 16655 +a 0 TeXcolorgray -30 18334 a +SDict begin H.S end + -30 18334 a FU(Chapter)g(5)6039 +18334 y +SDict begin 18.2 H.L end + 6039 18334 a 6039 18334 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6039 18334 a Black +FU(,)h(Netw)-15 b(ork)386 b(Con\002guration)-30 18669 +y +SDict begin H.S end + -30 18669 a -30 18669 a +SDict begin 18.2 H.A end + -30 18669 a -30 18669 a +SDict begin [ /View [/XYZ H.V] /Dest (139) cvn H.B /DEST pdfmark end + -30 +18669 a Black Black 3070 21123 a +SDict begin H.S end + 3070 21123 a 3070 21123 +a +SDict begin 18.2 H.A end + 3070 21123 a 3070 21123 a +SDict begin [ /View [/XYZ H.V] /Dest (140) cvn H.B /DEST pdfmark end + 3070 21123 a FU(Describes)560 +b(ho)-39 b(w)561 b(to)g(connect)g(a)g(Slackw)-15 b(are)560 +b(Linux)h(machine)f(to)h(a)g(netw)-15 b(ork.)561 b(Co)-23 +b(v)g(ers)3070 23138 y(TCP/IP)-172 b(,)386 b(PPP/dial-up,)g(wireless)h +(netw)-15 b(orking,)386 b(and)i(more.)-30 25023 y +SDict begin H.S end + -30 +25023 a -30 25023 a +SDict begin 18.2 H.A end + -30 25023 a -30 25023 a +SDict begin [ /View [/XYZ H.V] /Dest (142) cvn H.B /DEST pdfmark end + -30 25023 +a 0 TeXcolorgray -30 26702 a +SDict begin H.S end + -30 26702 a FU(Chapter)f(6)6039 +26702 y +SDict begin 18.2 H.L end + 6039 26702 a 6039 26702 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6039 26702 a Black +FU(,)h(The)f(X)g(W)-62 b(indo)-39 b(w)387 b(System)-30 +27038 y +SDict begin H.S end + -30 27038 a -30 27038 a +SDict begin 18.2 H.A end + -30 27038 a -30 27038 +a +SDict begin [ /View [/XYZ H.V] /Dest (144) cvn H.B /DEST pdfmark end + -30 27038 a Black Black 3070 29492 a +SDict begin H.S end + 3070 29492 a 3070 +29492 a +SDict begin 18.2 H.A end + 3070 29492 a 3070 29492 a +SDict begin [ /View [/XYZ H.V] /Dest (145) cvn H.B /DEST pdfmark end + 3070 29492 a FU(Describes)380 +b(ho)-39 b(w)381 b(to)g(setup)g(and)f(use)h(the)g(graphical)g(X)g(W)-62 +b(indo)-39 b(w)380 b(System)h(in)f(Slackw)-15 b(are.)-30 +31377 y +SDict begin H.S end + -30 31377 a -30 31377 a +SDict begin 18.2 H.A end + -30 31377 a -30 31377 +a +SDict begin [ /View [/XYZ H.V] /Dest (147) cvn H.B /DEST pdfmark end + -30 31377 a 0 TeXcolorgray -30 33056 a +SDict begin H.S end + -30 33056 a +FU(Chapter)387 b(7)6039 33056 y +SDict begin 18.2 H.L end + 6039 33056 a 6039 33056 +a +SDict begin [ /Subtype /Link /Dest (BOOTING) cvn /H /I /Border [0 0 +0] /Color [1 0 0] H.B /ANN pdfmark end + 6039 33056 a Black FU(,)h(Booting)-30 33392 y +SDict begin H.S end + -30 33392 +a -30 33392 a +SDict begin 18.2 H.A end + -30 33392 a -30 33392 a +SDict begin [ /View [/XYZ H.V] /Dest (149) cvn H.B /DEST pdfmark end + -30 33392 a Black +Black 3070 35846 a +SDict begin H.S end + 3070 35846 a 3070 35846 a +SDict begin 18.2 H.A end + 3070 35846 +a 3070 35846 a +SDict begin [ /View [/XYZ H.V] /Dest (150) cvn H.B /DEST pdfmark end + 3070 35846 a FU(Describes)449 b(the)h(process)f(by)h +(which)g(a)g(computer)f(boots)g(into)h(Slackw)-15 b(are)449 +b(Linux.)g(Also)3070 37860 y(co)-23 b(v)g(ers)386 b(dual-booting)g +(with)h(Microsoft)g(W)-62 b(indo)-39 b(ws)387 b(operating)f(systems.) +-30 39746 y +SDict begin H.S end + -30 39746 a -30 39746 a +SDict begin 18.2 H.A end + -30 39746 a -30 39746 +a +SDict begin [ /View [/XYZ H.V] /Dest (152) cvn H.B /DEST pdfmark end + -30 39746 a 0 TeXcolorgray -30 41425 a +SDict begin H.S end + -30 41425 a +FU(Chapter)h(8)6039 41425 y +SDict begin 18.2 H.L end + 6039 41425 a 6039 41425 a +SDict begin [ /Subtype /Link /Dest (SHELL) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +6039 41425 a Black FU(,)h(The)f(Shell)-30 41760 y +SDict begin H.S end + -30 +41760 a -30 41760 a +SDict begin 18.2 H.A end + -30 41760 a -30 41760 a +SDict begin [ /View [/XYZ H.V] /Dest (154) cvn H.B /DEST pdfmark end + -30 41760 +a Black Black 3070 44214 a +SDict begin H.S end + 3070 44214 a 3070 44214 a +SDict begin 18.2 H.A end + +3070 44214 a 3070 44214 a +SDict begin [ /View [/XYZ H.V] /Dest (155) cvn H.B /DEST pdfmark end + 3070 44214 a FU(Describes)g(the)g(po)-39 +b(werful)387 b(command)g(line)g(interf)-15 b(ace)386 +b(for)i(Linux.)-30 46100 y +SDict begin H.S end + -30 46100 a -30 46100 a +SDict begin 18.2 H.A end + -30 +46100 a -30 46100 a +SDict begin [ /View [/XYZ H.V] /Dest (157) cvn H.B /DEST pdfmark end + -30 46100 a 0 TeXcolorgray -30 47779 +a +SDict begin H.S end + -30 47779 a FU(Chapter)f(9)6039 47779 y +SDict begin 18.2 H.L end + 6039 47779 +a 6039 47779 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6039 47779 a Black FU(,)h(Filesystem)e(Structure)-30 +48114 y +SDict begin H.S end + -30 48114 a -30 48114 a +SDict begin 18.2 H.A end + -30 48114 a -30 48114 +a +SDict begin [ /View [/XYZ H.V] /Dest (159) cvn H.B /DEST pdfmark end + -30 48114 a Black Black 3070 50568 a +SDict begin H.S end + 3070 50568 a 3070 +50568 a +SDict begin 18.2 H.A end + 3070 50568 a 3070 50568 a +SDict begin [ /View [/XYZ H.V] /Dest (160) cvn H.B /DEST pdfmark end + 3070 50568 a FU(Describes)567 +b(the)g(\002lesystem)f(structure,)h(including)f(\002le)h(o)-39 +b(wnership,)567 b(permission,)g(and)3070 52583 y(linking.)-30 +54468 y +SDict begin H.S end + -30 54468 a -30 54468 a +SDict begin 18.2 H.A end + -30 54468 a -30 54468 +a +SDict begin [ /View [/XYZ H.V] /Dest (162) cvn H.B /DEST pdfmark end + -30 54468 a 0 TeXcolorgray -30 56147 a +SDict begin H.S end + -30 56147 a +FU(Chapter)387 b(10)6814 56147 y +SDict begin 18.2 H.L end + 6814 56147 a 6814 56147 +a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6814 56147 a Black FU(,)h(Handling)e(Files)h(and)g(Directories)-30 +56483 y +SDict begin H.S end + -30 56483 a -30 56483 a +SDict begin 18.2 H.A end + -30 56483 a -30 56483 +a +SDict begin [ /View [/XYZ H.V] /Dest (164) cvn H.B /DEST pdfmark end + -30 56483 a Black Black 3070 58937 a +SDict begin H.S end + 3070 58937 a 3070 +58937 a +SDict begin 18.2 H.A end + 3070 58937 a 3070 58937 a +SDict begin [ /View [/XYZ H.V] /Dest (165) cvn H.B /DEST pdfmark end + 3070 58937 a FU(Describes)326 +b(the)h(commands)g(used)g(to)g(manipulate)f(\002les)g(and)i +(directories)e(from)h(the)g(com-)3070 60952 y(mand)387 +b(line)g(interf)-15 b(ace.)-30 62517 y +SDict begin H.S end + -30 62517 a -30 +62517 a +SDict begin 18.2 H.A end + -30 62517 a -30 62517 a +SDict begin [ /View [/XYZ H.V] /Dest (167) cvn H.B /DEST pdfmark end + -30 62517 a 0 TeXcolorgray +-30 64516 a +SDict begin H.S end + -30 64516 a FU(Chapter)387 b(11)6814 64516 +y +SDict begin 18.2 H.L end + 6814 64516 a 6814 64516 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6814 64516 a Black FU(,)h(Process)e +(Control)-30 64852 y +SDict begin H.S end + -30 64852 a -30 64852 a +SDict begin 18.2 H.A end + -30 64852 +a -30 64852 a +SDict begin [ /View [/XYZ H.V] /Dest (169) cvn H.B /DEST pdfmark end + -30 64852 a Black Black 3070 67306 a +SDict begin H.S end + 3070 +67306 a 3070 67306 a +SDict begin 18.2 H.A end + 3070 67306 a 3070 67306 a +SDict begin [ /View [/XYZ H.V] /Dest (170) cvn H.B /DEST pdfmark end + 3070 67306 +a FU(Describes)365 b(the)h(po)-39 b(werful)366 b(Linux)g(process)g +(management)f(commands)g(used)h(to)g(manage)p Black 49538 +73792 a FR(xvii)p Black eop end +%%Page: 18 18 +TeXDict begin 18 17 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.18) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Pr)-57 b(eface)p Black 3070 3611 +a FU(multiple)386 b(running)g(applications.)p 0 TeXcolorgray +-30 7176 a +SDict begin H.S end + -30 7176 a FU(Chapter)h(12)6814 7176 y +SDict begin 18.2 H.L end + 6814 +7176 a 6814 7176 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6814 7176 a Black FU(,)h(Essential)e(System)g +(Administration)-30 7511 y +SDict begin H.S end + -30 7511 a -30 7511 a +SDict begin 18.2 H.A end + -30 +7511 a -30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (174) cvn H.B /DEST pdfmark end + -30 7511 a Black Black 3070 9965 a +SDict begin H.S end + +3070 9965 a 3070 9965 a +SDict begin 18.2 H.A end + 3070 9965 a 3070 9965 a +SDict begin [ /View [/XYZ H.V] /Dest (175) cvn H.B /DEST pdfmark end + 3070 +9965 a FU(Describes)297 b(basic)g(system)g(administration)e(tasks)i +(such)h(as)f(adding)g(and)g(remo)-23 b(ving)297 b(users,)3070 +11980 y(shutting)386 b(do)-39 b(wn)387 b(the)g(system)g(properly)-101 +b(,)387 b(and)h(more.)-30 13865 y +SDict begin H.S end + -30 13865 a -30 13865 +a +SDict begin 18.2 H.A end + -30 13865 a -30 13865 a +SDict begin [ /View [/XYZ H.V] /Dest (177) cvn H.B /DEST pdfmark end + -30 13865 a 0 TeXcolorgray +-30 15544 a +SDict begin H.S end + -30 15544 a FU(Chapter)f(13)6814 15544 y +SDict begin 18.2 H.L end + +6814 15544 a 6814 15544 a +SDict begin [ /Subtype /Link /Dest (BASIC-NETWORK-COMMANDS) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6814 15544 a Black FU(,)h(Basic)f(Netw)-15 +b(ork)386 b(Commands)-30 15880 y +SDict begin H.S end + -30 15880 a -30 15880 +a +SDict begin 18.2 H.A end + -30 15880 a -30 15880 a +SDict begin [ /View [/XYZ H.V] /Dest (179) cvn H.B /DEST pdfmark end + -30 15880 a Black Black 3070 +18334 a +SDict begin H.S end + 3070 18334 a 3070 18334 a +SDict begin 18.2 H.A end + 3070 18334 a 3070 18334 +a +SDict begin [ /View [/XYZ H.V] /Dest (180) cvn H.B /DEST pdfmark end + 3070 18334 a FU(Describes)h(the)g(collection)f(of)i(netw)-15 +b(ork)386 b(clients)h(included)g(with)f(Slackw)-15 b(are.)-30 +19899 y +SDict begin H.S end + -30 19899 a -30 19899 a +SDict begin 18.2 H.A end + -30 19899 a -30 19899 +a +SDict begin [ /View [/XYZ H.V] /Dest (182) cvn H.B /DEST pdfmark end + -30 19899 a 0 TeXcolorgray -30 21898 a +SDict begin H.S end + -30 21898 a +FU(Chapter)387 b(14)6814 21898 y +SDict begin 18.2 H.L end + 6814 21898 a 6814 21898 +a +SDict begin [ /Subtype /Link /Dest (SECURITY) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6814 21898 a Black FU(,)h(Security)-30 22234 y +SDict begin H.S end + -30 +22234 a -30 22234 a +SDict begin 18.2 H.A end + -30 22234 a -30 22234 a +SDict begin [ /View [/XYZ H.V] /Dest (184) cvn H.B /DEST pdfmark end + -30 22234 +a Black Black 3070 24688 a +SDict begin H.S end + 3070 24688 a 3070 24688 a +SDict begin 18.2 H.A end + +3070 24688 a 3070 24688 a +SDict begin [ /View [/XYZ H.V] /Dest (185) cvn H.B /DEST pdfmark end + 3070 24688 a FU(Describes)496 +b(man)-23 b(y)496 b(dif)-39 b(ferent)497 b(tools)g(a)-31 +b(v)-39 b(ailable)496 b(to)h(help)g(k)-15 b(eep)496 b(your)h(Slackw)-15 +b(are)496 b(system)3070 26702 y(secure,)387 b(including)14045 +26702 y +SDict begin H.S end + 14045 26702 a 14045 26702 a +SDict begin 18.2 H.A end + 14045 26702 a 14045 +26702 a +SDict begin [ /View [/XYZ H.V] /Dest (186) cvn H.B /DEST pdfmark end + 14045 26702 a FP(iptables)f FU(and)23008 26702 +y +SDict begin H.S end + 23008 26702 a 23008 26702 a +SDict begin 18.2 H.A end + 23008 26702 a 23008 26702 +a +SDict begin [ /View [/XYZ H.V] /Dest (187) cvn H.B /DEST pdfmark end + 23008 26702 a FP(tcpwrappers)p FU(.)-30 28588 y +SDict begin H.S end + -30 +28588 a -30 28588 a +SDict begin 18.2 H.A end + -30 28588 a -30 28588 a +SDict begin [ /View [/XYZ H.V] /Dest (189) cvn H.B /DEST pdfmark end + -30 28588 +a 0 TeXcolorgray -30 30267 a +SDict begin H.S end + -30 30267 a FU(Chapter)h(15)6814 +30267 y +SDict begin 18.2 H.L end + 6814 30267 a 6814 30267 a +SDict begin [ /Subtype /Link /Dest (ARCHIVE-FILES) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6814 30267 a Black +FU(,)h(Archi)-39 b(v)-23 b(e)387 b(Files)-30 30602 y +SDict begin H.S end + +-30 30602 a -30 30602 a +SDict begin 18.2 H.A end + -30 30602 a -30 30602 a +SDict begin [ /View [/XYZ H.V] /Dest (191) cvn H.B /DEST pdfmark end + -30 30602 +a Black Black 3070 33056 a +SDict begin H.S end + 3070 33056 a 3070 33056 a +SDict begin 18.2 H.A end + +3070 33056 a 3070 33056 a +SDict begin [ /View [/XYZ H.V] /Dest (192) cvn H.B /DEST pdfmark end + 3070 33056 a FU(Describes)g(the)g(dif)-39 +b(ferent)387 b(compression)f(and)i(archi)-39 b(v)-23 +b(e)387 b(utilities)f(a)-31 b(v)-39 b(ailable)387 b(for)h(Linux.)-30 +34941 y +SDict begin H.S end + -30 34941 a -30 34941 a +SDict begin 18.2 H.A end + -30 34941 a -30 34941 +a +SDict begin [ /View [/XYZ H.V] /Dest (194) cvn H.B /DEST pdfmark end + -30 34941 a 0 TeXcolorgray -30 36621 a +SDict begin H.S end + -30 36621 a +FU(Chapter)f(16)6814 36621 y +SDict begin 18.2 H.L end + 6814 36621 a 6814 36621 +a +SDict begin [ /Subtype /Link /Dest (VI) cvn /H /I /Border [0 0 0] /Color +[1 0 0] H.B /ANN pdfmark end + 6814 36621 a Black FU(,)h(vi)-30 36956 y +SDict begin H.S end + -30 36956 +a -30 36956 a +SDict begin 18.2 H.A end + -30 36956 a -30 36956 a +SDict begin [ /View [/XYZ H.V] /Dest (196) cvn H.B /DEST pdfmark end + -30 36956 a Black +Black 3070 39410 a +SDict begin H.S end + 3070 39410 a 3070 39410 a +SDict begin 18.2 H.A end + 3070 39410 +a 3070 39410 a +SDict begin [ /View [/XYZ H.V] /Dest (197) cvn H.B /DEST pdfmark end + 3070 39410 a FU(Describes)f(the)g(po)-39 +b(werful)17792 39410 y +SDict begin H.S end + 17792 39410 a 17792 39410 a +SDict begin 18.2 H.A end + 17792 +39410 a 17792 39410 a +SDict begin [ /View [/XYZ H.V] /Dest (198) cvn H.B /DEST pdfmark end + 17792 39410 a FP(vi)387 b FU(te)-23 +b(xt)387 b(editor)-85 b(.)-30 41295 y +SDict begin H.S end + -30 41295 a -30 +41295 a +SDict begin 18.2 H.A end + -30 41295 a -30 41295 a +SDict begin [ /View [/XYZ H.V] /Dest (200) cvn H.B /DEST pdfmark end + -30 41295 a 0 TeXcolorgray +-30 42975 a +SDict begin H.S end + -30 42975 a FU(Chapter)387 b(17)6814 42975 +y +SDict begin 18.2 H.L end + 6814 42975 a 6814 42975 a +SDict begin [ /Subtype /Link /Dest (EMACS) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6814 42975 a Black FU(,)h(Emacs)-30 +43310 y +SDict begin H.S end + -30 43310 a -30 43310 a +SDict begin 18.2 H.A end + -30 43310 a -30 43310 +a +SDict begin [ /View [/XYZ H.V] /Dest (202) cvn H.B /DEST pdfmark end + -30 43310 a Black Black 3070 45764 a +SDict begin H.S end + 3070 45764 a 3070 +45764 a +SDict begin 18.2 H.A end + 3070 45764 a 3070 45764 a +SDict begin [ /View [/XYZ H.V] /Dest (203) cvn H.B /DEST pdfmark end + 3070 45764 a FU(Describes)f(the)g(po) +-39 b(werful)17792 45764 y +SDict begin H.S end + 17792 45764 a 17792 45764 +a +SDict begin 18.2 H.A end + 17792 45764 a 17792 45764 a +SDict begin [ /View [/XYZ H.V] /Dest (204) cvn H.B /DEST pdfmark end + 17792 45764 a FP(Emacs)387 +b FU(te)-23 b(xt)387 b(editor)-85 b(.)-30 47649 y +SDict begin H.S end + -30 +47649 a -30 47649 a +SDict begin 18.2 H.A end + -30 47649 a -30 47649 a +SDict begin [ /View [/XYZ H.V] /Dest (206) cvn H.B /DEST pdfmark end + -30 47649 +a 0 TeXcolorgray -30 49329 a +SDict begin H.S end + -30 49329 a FU(Chapter)387 +b(18)6814 49329 y +SDict begin 18.2 H.L end + 6814 49329 a 6814 49329 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6814 49329 +a Black FU(,)h(Slackw)-15 b(are)386 b(P)-23 b(ackage)387 +b(Management)-30 49664 y +SDict begin H.S end + -30 49664 a -30 49664 a +SDict begin 18.2 H.A end + -30 +49664 a -30 49664 a +SDict begin [ /View [/XYZ H.V] /Dest (208) cvn H.B /DEST pdfmark end + -30 49664 a Black Black 3070 52118 +a +SDict begin H.S end + 3070 52118 a 3070 52118 a +SDict begin 18.2 H.A end + 3070 52118 a 3070 52118 a +SDict begin [ /View [/XYZ H.V] /Dest (209) cvn H.B /DEST pdfmark end + +3070 52118 a FU(Describes)320 b(the)h(Slackw)-15 b(are)321 +b(package)g(utilities)f(and)h(the)g(process)g(used)f(to)h(create)h +(custom)3070 54133 y(packages)387 b(and)g(tag\002les.)-30 +56018 y +SDict begin H.S end + -30 56018 a -30 56018 a +SDict begin 18.2 H.A end + -30 56018 a -30 56018 +a +SDict begin [ /View [/XYZ H.V] /Dest (211) cvn H.B /DEST pdfmark end + -30 56018 a 0 TeXcolorgray -30 57697 a +SDict begin H.S end + -30 57697 a +FU(Chapter)g(19)6814 57697 y +SDict begin 18.2 H.L end + 6814 57697 a 6814 57697 +a +SDict begin [ /Subtype /Link /Dest (ZIPSLACK) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6814 57697 a Black FU(,)h(ZipSlack)-30 58033 y +SDict begin H.S end + -30 +58033 a -30 58033 a +SDict begin 18.2 H.A end + -30 58033 a -30 58033 a +SDict begin [ /View [/XYZ H.V] /Dest (213) cvn H.B /DEST pdfmark end + -30 58033 +a Black Black 3070 60487 a +SDict begin H.S end + 3070 60487 a 3070 60487 a +SDict begin 18.2 H.A end + +3070 60487 a 3070 60487 a +SDict begin [ /View [/XYZ H.V] /Dest (214) cvn H.B /DEST pdfmark end + 3070 60487 a FU(Describes)g(the)h(ZipSlack)g +(v)-23 b(ersion)388 b(of)h(Linux)g(that)g(can)g(be)g(used)g(from)g(W) +-62 b(indo)-39 b(ws)388 b(with-)3070 62501 y(out)f(requiring)f(an)i +(installation.)p Black -30 73792 a FR(xviii)p Black eop +end +%%Page: 19 19 +TeXDict begin 19 18 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.19) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (256) cvn H.B /DEST pdfmark end + -30 -2687 a 47014 -1636 a FR(Pr)-57 +b(eface)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (216) cvn H.B /DEST pdfmark end + -30 2504 a 0 TeXcolorgray -30 3611 +a +SDict begin H.S end + -30 3611 a FU(Appendix)387 b(A)7589 3611 y +SDict begin 18.2 H.L end + 7589 3611 +a 7589 3611 a +SDict begin [ /Subtype /Link /Dest (GPL) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7589 3611 a Black FU(,)g(The)h(GNU)f(General)g(Public)g +(License)-30 3947 y +SDict begin H.S end + -30 3947 a -30 3947 a +SDict begin 18.2 H.A end + -30 3947 a +-30 3947 a +SDict begin [ /View [/XYZ H.V] /Dest (218) cvn H.B /DEST pdfmark end + -30 3947 a Black Black 3070 6401 a +SDict begin H.S end + 3070 6401 +a 3070 6401 a +SDict begin 18.2 H.A end + 3070 6401 a 3070 6401 a +SDict begin [ /View [/XYZ H.V] /Dest (219) cvn H.B /DEST pdfmark end + 3070 6401 a FU(Describes)358 +b(the)h(license)f(terms)g(under)h(which)g(Slackw)-15 +b(are)358 b(Linux)g(and)g(this)h(book)f(can)h(be)3070 +8415 y(copied)387 b(and)g(distrib)-31 b(uted.)-30 10759 +y +SDict begin H.S end + -30 10759 a -30 10759 a +SDict begin 31.45 H.A end + -30 10759 a -30 10759 a +SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CONV) cvn H.B /DEST pdfmark +end + -30 +10759 a 3146 x FN(Con)-107 b(ventions)746 b(used)f(in)g(this)g(book)-30 +15278 y +SDict begin H.S end + -30 15278 a -30 15278 a +SDict begin 18.2 H.A end + -30 15278 a -30 15278 +a +SDict begin [ /View [/XYZ H.V] /Dest (221) cvn H.B /DEST pdfmark end + -30 15278 a 1981 x FU(T)-124 b(o)663 b(pro)-23 b(vide)663 +b(a)h(consistent)e(and)i(easy)f(to)g(read)h(te)-23 b(xt,)663 +b(se)-39 b(v)-23 b(eral)663 b(con)-62 b(v)-23 b(entions)663 +b(are)g(follo)-39 b(wed)-30 19273 y(throughout)386 b(the)i(book.)-30 +21283 y +SDict begin H.S end + -30 21283 a -30 21283 a +SDict begin 26.208 H.A end + -30 21283 a -30 21283 +a +SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CONV-TYPOGRAPHIC) cvn +H.B /DEST pdfmark end + -30 21283 a 2565 x FL(T)-134 b(ypographic)618 b(Con)-89 +b(ventions)-30 24345 y +SDict begin H.S end + -30 24345 a -30 24345 a +SDict begin 18.2 H.A end + -30 24345 +a -30 24345 a +SDict begin [ /View [/XYZ H.V] /Dest (223) cvn H.B /DEST pdfmark end + -30 24345 a -30 27010 a +SDict begin H.S end + -30 27010 a -30 +27010 a +SDict begin 18.2 H.A end + -30 27010 a -30 27010 a +SDict begin [ /View [/XYZ H.V] /Dest (225) cvn H.B /DEST pdfmark end + -30 27010 a -30 27010 +a +SDict begin H.S end + -30 27010 a -30 27010 a +SDict begin 18.2 H.A end + -30 27010 a -30 27010 a +SDict begin [ /View [/XYZ H.V] /Dest (226) cvn H.B /DEST pdfmark end + -30 +27010 a 1519 x FR(Italic)-30 28548 y +SDict begin H.S end + -30 28548 a -30 +28548 a +SDict begin 18.2 H.A end + -30 28548 a -30 28548 a +SDict begin [ /View [/XYZ H.V] /Dest (227) cvn H.B /DEST pdfmark end + -30 28548 a Black Black +3070 31318 a +SDict begin H.S end + 3070 31318 a 3070 31318 a +SDict begin 18.2 H.A end + 3070 31318 a 3070 +31318 a +SDict begin [ /View [/XYZ H.V] /Dest (228) cvn H.B /DEST pdfmark end + 3070 31318 a FU(An)5500 31318 y +SDict begin H.S end + 5500 31318 a +5500 31318 a +SDict begin 18.2 H.A end + 5500 31318 a 5500 31318 a +SDict begin [ /View [/XYZ H.V] /Dest (229) cvn H.B /DEST pdfmark end + 5500 31318 a FR(italic)536 +b FU(font)h(is)f(used)g(for)h(commands,)f(emphasized)g(te)-23 +b(xt,)537 b(and)g(the)f(\002rst)g(usage)h(of)3070 33333 +y(technical)387 b(terms.)-30 34898 y +SDict begin H.S end + -30 34898 a -30 +34898 a +SDict begin 18.2 H.A end + -30 34898 a -30 34898 a +SDict begin [ /View [/XYZ H.V] /Dest (231) cvn H.B /DEST pdfmark end + -30 34898 a -30 34898 +a +SDict begin H.S end + -30 34898 a -30 34898 a +SDict begin 18.2 H.A end + -30 34898 a -30 34898 a +SDict begin [ /View [/XYZ H.V] /Dest (232) cvn H.B /DEST pdfmark end + -30 +34898 a 1999 x FQ(Monospace)-30 37166 y +SDict begin H.S end + -30 37166 a -30 +37166 a +SDict begin 18.2 H.A end + -30 37166 a -30 37166 a +SDict begin [ /View [/XYZ H.V] /Dest (233) cvn H.B /DEST pdfmark end + -30 37166 a Black Black +3070 39687 a +SDict begin H.S end + 3070 39687 a 3070 39687 a +SDict begin 18.2 H.A end + 3070 39687 a 3070 +39687 a +SDict begin [ /View [/XYZ H.V] /Dest (234) cvn H.B /DEST pdfmark end + 3070 39687 a FU(A)4496 39687 y +SDict begin H.S end + 4496 39687 a 4496 +39687 a +SDict begin 18.2 H.A end + 4496 39687 a 4496 39687 a +SDict begin [ /View [/XYZ H.V] /Dest (235) cvn H.B /DEST pdfmark end + 4496 39687 a FQ(monospaced)301 +b FU(font)308 b(is)f(used)g(for)h(error)g(messages,)f(commands,)g(en) +-62 b(vironment)307 b(v)-39 b(ariables,)3070 41701 y(names)384 +b(of)h(ports,)g(hostnames,)g(user)g(names,)g(group)f(names,)h(de)-39 +b(vice)386 b(names,)f(v)-39 b(ariables,)3070 43716 y(and)387 +b(code)g(fragments.)-30 45601 y +SDict begin H.S end + -30 45601 a -30 45601 +a +SDict begin 18.2 H.A end + -30 45601 a -30 45601 a +SDict begin [ /View [/XYZ H.V] /Dest (237) cvn H.B /DEST pdfmark end + -30 45601 a -30 45601 a +SDict begin H.S end + -30 +45601 a -30 45601 a +SDict begin 18.2 H.A end + -30 45601 a -30 45601 a +SDict begin [ /View [/XYZ H.V] /Dest (238) cvn H.B /DEST pdfmark end + -30 45601 +a 1679 x FX(Bold)-30 47299 y +SDict begin H.S end + -30 47299 a -30 47299 a +SDict begin 18.2 H.A end + +-30 47299 a -30 47299 a +SDict begin [ /View [/XYZ H.V] /Dest (239) cvn H.B /DEST pdfmark end + -30 47299 a Black Black 3070 +50070 a +SDict begin H.S end + 3070 50070 a 3070 50070 a +SDict begin 18.2 H.A end + 3070 50070 a 3070 50070 +a +SDict begin [ /View [/XYZ H.V] /Dest (240) cvn H.B /DEST pdfmark end + 3070 50070 a FU(A)4576 50070 y +SDict begin H.S end + 4576 50070 a 4576 50070 +a +SDict begin 18.2 H.A end + 4576 50070 a 4576 50070 a +SDict begin [ /View [/XYZ H.V] /Dest (241) cvn H.B /DEST pdfmark end + 4576 50070 a FX(bold)f FU(font)h(is)g(used) +h(for)f(user)g(input)g(in)g(e)-23 b(xamples.)-30 52079 +y +SDict begin H.S end + -30 52079 a -30 52079 a +SDict begin 26.208 H.A end + -30 52079 a -30 52079 a +SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CONV-COMMANDS) cvn H.B +/DEST pdfmark end + -30 +52079 a 2566 x FL(User)620 b(Input)-30 56223 y +SDict begin H.S end + -30 56223 +a -30 56223 a +SDict begin 18.2 H.A end + -30 56223 a -30 56223 a +SDict begin [ /View [/XYZ H.V] /Dest (243) cvn H.B /DEST pdfmark end + -30 56223 a 1552 +x FU(K)-39 b(e)-23 b(ys)587 b(are)g(sho)-39 b(wn)586 +b(in)12546 57775 y +SDict begin H.S end + 12546 57775 a 12546 57775 a +SDict begin 18.2 H.A end + 12546 +57775 a 12546 57775 a +SDict begin [ /View [/XYZ H.V] /Dest (244) cvn H.B /DEST pdfmark end + 12546 57775 a FX(bold)g FU(to)g(stand)h(out)f +(from)h(other)f(te)-23 b(xt.)587 b(K)-39 b(e)-23 b(y)587 +b(combinations)e(that)i(are)-30 59790 y(meant)387 b(to)g(be)h(typed)f +(simultaneously)e(are)j(sho)-39 b(wn)387 b(with)g(`)31526 +59790 y +SDict begin H.S end + 31526 59790 a 31526 59790 a +SDict begin 18.2 H.A end + 31526 59790 a 31526 +59790 a +SDict begin [ /View [/XYZ H.V] /Dest (245) cvn H.B /DEST pdfmark end + 31526 59790 a FP(+)p FU(')g(between)g(the)g(k)-15 +b(e)-23 b(ys,)387 b(such)g(as:)-30 60900 y +SDict begin H.S end + -30 60900 +a -30 60900 a +SDict begin 18.2 H.A end + -30 60900 a -30 60900 a +SDict begin [ /View [/XYZ H.V] /Dest (246) cvn H.B /DEST pdfmark end + -30 60900 a -30 +60900 a +SDict begin H.S end + -30 60900 a -30 60900 a +SDict begin 18.2 H.A end + -30 60900 a -30 60900 +a +SDict begin [ /View [/XYZ H.V] /Dest (247) cvn H.B /DEST pdfmark end + -30 60900 a -30 60900 a +SDict begin H.S end + -30 60900 a -30 60900 a +SDict begin 18.2 H.A end + -30 +60900 a -30 60900 a +SDict begin [ /View [/XYZ H.V] /Dest (248) cvn H.B /DEST pdfmark end + -30 60900 a 1680 x FX(Ctrl)p FU(+)3598 +62580 y +SDict begin H.S end + 3598 62580 a 3598 62580 a +SDict begin 18.2 H.A end + 3598 62580 a 3598 62580 +a +SDict begin [ /View [/XYZ H.V] /Dest (249) cvn H.B /DEST pdfmark end + 3598 62580 a FX(Alt)p FU(+)6538 62580 y +SDict begin H.S end + 6538 62580 +a 6538 62580 a +SDict begin 18.2 H.A end + 6538 62580 a 6538 62580 a +SDict begin [ /View [/XYZ H.V] /Dest (250) cvn H.B /DEST pdfmark end + 6538 62580 a +FX(Del)-30 63373 y +SDict begin H.S end + -30 63373 a -30 63373 a +SDict begin 18.2 H.A end + -30 63373 +a -30 63373 a +SDict begin [ /View [/XYZ H.V] /Dest (251) cvn H.B /DEST pdfmark end + -30 63373 a 1996 x FU(Meaning)g(the)g(user)g(should)g +(type)g(the)20975 65369 y +SDict begin H.S end + 20975 65369 a 20975 65369 a +SDict begin 18.2 H.A end + +20975 65369 a 20975 65369 a +SDict begin [ /View [/XYZ H.V] /Dest (252) cvn H.B /DEST pdfmark end + 20975 65369 a FX(Ctrl)p FU(,)24504 +65369 y +SDict begin H.S end + 24504 65369 a 24504 65369 a +SDict begin 18.2 H.A end + 24504 65369 a 24504 +65369 a +SDict begin [ /View [/XYZ H.V] /Dest (253) cvn H.B /DEST pdfmark end + 24504 65369 a FX(Alt)p FU(,)h(and)29970 65369 +y +SDict begin H.S end + 29970 65369 a 29970 65369 a +SDict begin 18.2 H.A end + 29970 65369 a 29970 65369 +a +SDict begin [ /View [/XYZ H.V] /Dest (254) cvn H.B /DEST pdfmark end + 29970 65369 a FX(Del)f FU(k)-15 b(e)-23 b(ys)386 b(at)i(the)f(same)g +(time.)p Black 49964 73792 a FR(xix)p Black eop end +%%Page: 20 20 +TeXDict begin 20 19 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.20) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Pr)-57 b(eface)p Black -30 2504 +a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (255) cvn H.B /DEST pdfmark end + -30 2504 +a 1107 x FU(K)-39 b(e)-23 b(ys)560 b(that)f(are)i(meant)e(to)h(be)g +(typed)f(in)h(sequence)g(will)f(be)h(separated)g(with)f(commas,)h(for) +-30 5626 y(e)-23 b(xample:)-30 8415 y FX(Ctrl)p FU(+)3598 +8415 y +SDict begin H.S end + 3598 8415 a 3598 8415 a +SDict begin 18.2 H.A end + 3598 8415 a 3598 8415 +a +SDict begin [ /View [/XYZ H.V] /Dest (259) cvn H.B /DEST pdfmark end + 3598 8415 a FX(X)p FU(,)5492 8415 y +SDict begin H.S end + 5492 8415 a 5492 +8415 a +SDict begin 18.2 H.A end + 5492 8415 a 5492 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (260) cvn H.B /DEST pdfmark end + 5492 8415 a 5492 8415 +a +SDict begin H.S end + 5492 8415 a 5492 8415 a +SDict begin 18.2 H.A end + 5492 8415 a 5492 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (261) cvn H.B /DEST pdfmark end + 5492 +8415 a FX(Ctrl)p FU(+)9120 8415 y +SDict begin H.S end + 9120 8415 a 9120 8415 +a +SDict begin 18.2 H.A end + 9120 8415 a 9120 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (262) cvn H.B /DEST pdfmark end + 9120 8415 a FX(S)-30 9414 y +SDict begin H.S end + +-30 9414 a -30 9414 a +SDict begin 18.2 H.A end + -30 9414 a -30 9414 a +SDict begin [ /View [/XYZ H.V] /Dest (263) cvn H.B /DEST pdfmark end + -30 9414 +a 1791 x FU(W)-124 b(ould)497 b(mean)h(that)g(the)f(user)h(is)f(e)-23 +b(xpected)498 b(to)f(type)h(the)31487 11205 y +SDict begin H.S end + 31487 11205 +a 31487 11205 a +SDict begin 18.2 H.A end + 31487 11205 a 31487 11205 a +SDict begin [ /View [/XYZ H.V] /Dest (264) cvn H.B /DEST pdfmark end + 31487 11205 +a FX(Ctrl)f FU(and)37474 11205 y +SDict begin H.S end + 37474 11205 a 37474 +11205 a +SDict begin 18.2 H.A end + 37474 11205 a 37474 11205 a +SDict begin [ /View [/XYZ H.V] /Dest (265) cvn H.B /DEST pdfmark end + 37474 11205 a FX(X)h +FU(k)-15 b(e)-23 b(ys)497 b(simultaneously)-30 13220 +y(and)387 b(then)g(to)h(type)f(the)12582 13220 y +SDict begin H.S end + 12582 +13220 a 12582 13220 a +SDict begin 18.2 H.A end + 12582 13220 a 12582 13220 a +SDict begin [ /View [/XYZ H.V] /Dest (266) cvn H.B /DEST pdfmark end + 12582 +13220 a FX(Ctrl)g FU(and)18348 13220 y +SDict begin H.S end + 18348 13220 a +18348 13220 a +SDict begin 18.2 H.A end + 18348 13220 a 18348 13220 a +SDict begin [ /View [/XYZ H.V] /Dest (267) cvn H.B /DEST pdfmark end + 18348 13220 +a FX(S)g FU(k)-15 b(e)-23 b(ys)387 b(simultaneously)-101 +b(.)-30 15229 y +SDict begin H.S end + -30 15229 a -30 15229 a +SDict begin 26.208 H.A end + -30 15229 a -30 +15229 a +SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-CONV-EXAMPLES) cvn H.B +/DEST pdfmark end + -30 15229 a 2565 x FL(Examples)-30 19372 y +SDict begin H.S end + -30 +19372 a -30 19372 a +SDict begin 18.2 H.A end + -30 19372 a -30 19372 a +SDict begin [ /View [/XYZ H.V] /Dest (269) cvn H.B /DEST pdfmark end + -30 19372 +a 1553 x FU(Examples)637 b(starting)h(with)15402 20925 +y +SDict begin H.S end + 15402 20925 a 15402 20925 a +SDict begin 18.2 H.A end + 15402 20925 a 15402 20925 +a +SDict begin [ /View [/XYZ H.V] /Dest (270) cvn H.B /DEST pdfmark end + 15402 20925 a FP(E:\\)p FK(>)f FU(indicate)h(a)26085 +20925 y +SDict begin H.S end + 26085 20925 a 26085 20925 a +SDict begin 18.2 H.A end + 26085 20925 a 26085 +20925 a +SDict begin [ /View [/XYZ H.V] /Dest (271) cvn H.B /DEST pdfmark end + 26085 20925 a FU(MS-DOS\256)f(command.)h(Unless)g(otherwise)-30 +22940 y(noted,)566 b(these)f(commands)g(may)g(be)h(e)-23 +b(x)g(ecuted)565 b(from)h(a)31520 22940 y +SDict begin H.S end + 31520 22940 +a 31520 22940 a +SDict begin 18.2 H.A end + 31520 22940 a 31520 22940 a +SDict begin [ /View [/XYZ H.V] /Dest (272) cvn H.B /DEST pdfmark end + 31520 22940 +a FU(\223Command)f(Prompt\224)g(windo)-39 b(w)565 b(in)-30 +24954 y(a)388 b(modern)6167 24954 y +SDict begin H.S end + 6167 24954 a 6167 +24954 a +SDict begin 18.2 H.A end + 6167 24954 a 6167 24954 a +SDict begin [ /View [/XYZ H.V] /Dest (273) cvn H.B /DEST pdfmark end + 6167 24954 a FU(Microsoft\256)13845 +24954 y +SDict begin H.S end + 13845 24954 a 13845 24954 a +SDict begin 18.2 H.A end + 13845 24954 a 13845 +24954 a +SDict begin [ /View [/XYZ H.V] /Dest (274) cvn H.B /DEST pdfmark end + 13845 24954 a FU(W)-62 b(indo)-39 b(ws\256)386 +b(en)-62 b(vironment.)-30 26525 y +SDict begin H.S end + -30 26525 a -30 26525 +a +SDict begin 14.56 H.A end + -30 26525 a -30 26525 a +SDict begin [ /View [/XYZ H.V] /Dest (275) cvn H.B /DEST pdfmark end + -30 26525 a -30 26525 a +SDict begin H.S end + -30 +26525 a -30 26525 a +SDict begin 14.56 H.A end + -30 26525 a -30 26525 a +SDict begin [ /View [/XYZ H.V] /Dest (276) cvn H.B /DEST pdfmark end + -30 26525 +a 1591 x FJ(D:\\)p FI(>)3296 28116 y +SDict begin H.S end + 3296 28116 a 3296 +28116 a +SDict begin 14.56 H.A end + 3296 28116 a 3296 28116 a +SDict begin [ /View [/XYZ H.V] /Dest (277) cvn H.B /DEST pdfmark end + 3296 28116 a FH(rawrite)743 +b(a:)g(bare.i)-30 29744 y +SDict begin H.S end + -30 29744 a -30 29744 a +SDict begin 18.2 H.A end + -30 +29744 a -30 29744 a +SDict begin [ /View [/XYZ H.V] /Dest (278) cvn H.B /DEST pdfmark end + -30 29744 a 1936 x FU(Examples)386 +b(starting)g(with)14647 31680 y +SDict begin H.S end + 14647 31680 a 14647 31680 +a +SDict begin 18.2 H.A end + 14647 31680 a 14647 31680 a +SDict begin [ /View [/XYZ H.V] /Dest (279) cvn H.B /DEST pdfmark end + 14647 31680 a FP(#)h FU(indicate)f(a)h +(command)f(that)h(must)f(be)g(in)-62 b(v)-31 b(ok)-15 +b(ed)386 b(as)h(the)f(superuser)-30 33695 y(in)427 b(Slackw)-15 +b(are.)426 b(Y)-170 b(ou)426 b(can)i(login)e(as)19691 +33695 y +SDict begin H.S end + 19691 33695 a 19691 33695 a +SDict begin 18.2 H.A end + 19691 33695 a 19691 +33695 a +SDict begin [ /View [/XYZ H.V] /Dest (280) cvn H.B /DEST pdfmark end + 19691 33695 a FP(root)g FU(to)h(type)f(the)h(command,)g(or)g +(login)f(as)h(your)f(normal)-30 35709 y(account)387 b(and)g(use)10256 +35709 y +SDict begin H.S end + 10256 35709 a 10256 35709 a +SDict begin 18.2 H.A end + 10256 35709 a 10256 +35709 a +SDict begin [ /View [/XYZ H.V] /Dest (281) cvn H.B /DEST pdfmark end + 10256 35709 a 10256 35709 a +SDict begin H.S end + 10256 35709 a 10256 +35709 a +SDict begin 18.2 H.A end + 10256 35709 a 10256 35709 a +SDict begin [ /View [/XYZ H.V] /Dest (282) cvn H.B /DEST pdfmark end + 10256 35709 a FU(su\(1\))g(to)g(g) +-8 b(ain)387 b(superuser)g(pri)-39 b(vile)-23 b(ges.)-30 +37595 y +SDict begin H.S end + -30 37595 a -30 37595 a +SDict begin 14.56 H.A end + -30 37595 a -30 37595 +a +SDict begin [ /View [/XYZ H.V] /Dest (284) cvn H.B /DEST pdfmark end + -30 37595 a -30 37595 a +SDict begin H.S end + -30 37595 a -30 37595 a +SDict begin 14.56 H.A end + -30 +37595 a -30 37595 a +SDict begin [ /View [/XYZ H.V] /Dest (285) cvn H.B /DEST pdfmark end + -30 37595 a 1276 x FJ(#)1309 38871 +y +SDict begin H.S end + 1309 38871 a 1309 38871 a +SDict begin 14.56 H.A end + 1309 38871 a 1309 38871 a +SDict begin [ /View [/XYZ H.V] /Dest (286) cvn H.B /DEST pdfmark end + +1309 38871 a FH(dd)744 b(if=bare.i)e(of=/dev/fd0)-30 +40512 y +SDict begin H.S end + -30 40512 a -30 40512 a +SDict begin 18.2 H.A end + -30 40512 a -30 40512 +a +SDict begin [ /View [/XYZ H.V] /Dest (287) cvn H.B /DEST pdfmark end + -30 40512 a 1923 x FU(Examples)379 b(starting)h(with)14627 +42435 y +SDict begin H.S end + 14627 42435 a 14627 42435 a +SDict begin 18.2 H.A end + 14627 42435 a 14627 +42435 a +SDict begin [ /View [/XYZ H.V] /Dest (288) cvn H.B /DEST pdfmark end + 14627 42435 a FP(\045)g FU(indicate)g(a)g(command)f(that)h +(should)f(be)h(in)-62 b(v)-31 b(ok)-15 b(ed)379 b(from)h(a)g(normal)-30 +44450 y(user)348 b(account.)h(Unless)f(otherwise)f(noted,)i(C-shell)e +(syntax)h(is)g(used)g(for)g(setting)g(en)-62 b(vironment)-30 +46465 y(v)-39 b(ariables)387 b(and)h(other)f(shell)g(commands.)-30 +48030 y +SDict begin H.S end + -30 48030 a -30 48030 a +SDict begin 14.56 H.A end + -30 48030 a -30 48030 +a +SDict begin [ /View [/XYZ H.V] /Dest (289) cvn H.B /DEST pdfmark end + -30 48030 a -30 48030 a +SDict begin H.S end + -30 48030 a -30 48030 a +SDict begin 14.56 H.A end + -30 +48030 a -30 48030 a +SDict begin [ /View [/XYZ H.V] /Dest (290) cvn H.B /DEST pdfmark end + -30 48030 a 1596 x FJ(\045)1309 49626 +y +SDict begin H.S end + 1309 49626 a 1309 49626 a +SDict begin 14.56 H.A end + 1309 49626 a 1309 49626 a +SDict begin [ /View [/XYZ H.V] /Dest (291) cvn H.B /DEST pdfmark end + +1309 49626 a FH(top)-30 51803 y +SDict begin H.S end + -30 51803 a -30 51803 +a +SDict begin 31.45 H.A end + -30 51803 a -30 51803 a +SDict begin [ /View [/XYZ H.V] /Dest (PREFACE-ACKNOWLEDGEMENTS) cvn +H.B /DEST pdfmark end + -30 51803 a 3313 x FN(Ac)-54 +b(kno)-40 b(wledgments)-30 57051 y +SDict begin H.S end + -30 57051 a -30 57051 +a +SDict begin 18.2 H.A end + -30 57051 a -30 57051 a +SDict begin [ /View [/XYZ H.V] /Dest (293) cvn H.B /DEST pdfmark end + -30 57051 a 1419 x FU(This)417 +b(project)g(is)g(the)g(accumulation)f(of)i(months)e(of)h(w)-15 +b(ork)417 b(by)g(man)-23 b(y)417 b(dedicated)g(indi)-39 +b(viduals.)-30 60484 y(It)334 b(w)-15 b(ould)332 b(not)i(ha)-31 +b(v)-23 b(e)333 b(been)h(possible)e(for)i(me)g(to)f(produce)h(this)f(w) +-15 b(ork)333 b(in)g(a)h(v)-39 b(acuum.)334 b(Man)-23 +b(y)333 b(peo-)-30 62499 y(ple)462 b(deserv)-23 b(e)462 +b(our)g(thanks)g(for)g(their)h(sel\003ess)e(acts:)h(K)-39 +b(eith)462 b(K)-39 b(eller)462 b(for)h(his)f(w)-15 b(ork)461 +b(on)h(wireless)-30 64514 y(netw)-15 b(orking,)419 b(Joost)h(Kremers)f +(for)h(his)g(great)g(w)-15 b(ork)419 b(in)h(single-handedly)f(writing)g +(the)h(emacs)-30 66528 y(section,)411 b(Simon)g(W)-62 +b(illiams)410 b(for)h(the)g(security)g(chapter)-62 b(,)412 +b(Jur)-28 b(gen)411 b(Phillippaerts)f(for)h(basic)g(net-)p +Black -30 73792 a FR(xx)p Black eop end +%%Page: 21 21 +TeXDict begin 21 20 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.21) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 47014 -1636 a FR(Pr)-57 b(eface)p Black +-30 3611 a FU(w)-15 b(orking)450 b(commands,)h(Cibao)g(Cu)g(Ali)g(G)h +(Colibri)e(for)i(the)f(inspiration)f(and)h(a)h(good)f(kick)g(in)-30 +5626 y(the)528 b(pants.)g(Countless)f(others)h(ha)-31 +b(v)-23 b(e)528 b(sent)g(in)g(suggestions)f(and)h(\002x)-23 +b(es.)528 b(An)g(incomplete)g(list)-30 7640 y(includes:)434 +b(Jacob)h(Anhoej,)g(John)f(Y)-155 b(ast,)435 b(Sally)g(W)-124 +b(elch,)435 b(Mor)-28 b(g)-8 b(an)435 b(Landry)-101 b(,)435 +b(and)g(Charlie)f(La)-23 b(w)-101 b(.)-30 9655 y(I')-77 +b(d)361 b(also)h(lik)-15 b(e)361 b(to)g(thank)h(K)-39 +b(eith)361 b(K)-39 b(eller)362 b(for)g(hosting)f(the)h(mailing)e(list)i +(for)f(this)h(project,)f(as)h(well)-30 11670 y(as)411 +b(Carl)h(Inglis)e(for)i(the)f(initial)f(web)i(hosting.)f(Last)g(b)-31 +b(ut)411 b(not)g(least,)g(I')-77 b(d)411 b(lik)-15 b(e)411 +b(to)g(thank)g(P)-23 b(atrick)-30 13684 y(J.)477 b(V)-200 +b(olk)-15 b(erding)476 b(for)h(Slackw)-15 b(are)476 b(Linux,)g(and)h +(Da)-31 b(vid)476 b(Cantrell,)h(Log)-8 b(an)477 b(Johnson,)f(and)h +(Chris)-30 15699 y(Lumens)329 b(for)h(Slackw)-15 b(are)329 +b(Linux)g(Essentials)g(1st)g(Edition.)g(W)-62 b(ithout)329 +b(their)g(initial)g(frame)-39 b(w)-15 b(ork,)-30 17714 +y(none)424 b(of)h(this)f(w)-15 b(ould)423 b(ha)-31 b(v)-23 +b(e)425 b(e)-39 b(v)-23 b(er)424 b(happened.)h(Man)-23 +b(y)424 b(others)g(ha)-31 b(v)-23 b(e)424 b(contrib)-31 +b(uted)424 b(in)g(small)g(and)-30 19728 y(lar)-28 b(ge)394 +b(w)-15 b(ays)393 b(to)h(this)f(project)g(and)h(ha)-31 +b(v)-23 b(e)394 b(not)f(been)h(listed.)f(I)h(hope)g(the)-23 +b(y)393 b(will)h(for)-28 b(gi)-39 b(v)-23 b(e)393 b(me)h(for)g(a)-30 +21743 y(poor)387 b(memory)-101 b(.)-30 22853 y +SDict begin H.S end + -30 22853 +a -30 22853 a +SDict begin 18.2 H.A end + -30 22853 a -30 22853 a +SDict begin [ /View [/XYZ H.V] /Dest (294) cvn H.B /DEST pdfmark end + -30 22853 a 1680 +x FU(Alan)387 b(Hicks,)h(May)f(2005)p Black 49969 73792 +a FR(xxi)p Black eop end +%%Page: 22 22 +TeXDict begin 22 21 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.22) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Pr)-57 b(eface)p Black Black +-30 73792 a(xxii)p Black eop end +%%Page: 1 23 +TeXDict begin 1 22 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION) cvn H.B /DEST pdfmark +end + -30 2383 a 2345 x FS(Chapter)894 +b(1)-30 10743 y FO(An)1287 b(Intr)-93 b(oduction)1289 +b(to)-30 16759 y(Slac)-93 b(kware)1287 b(Lin)-46 b(ux)p +-30 24332 51806 56 v -30 24332 a +SDict begin H.S end + -30 24332 a -30 24332 +a +SDict begin 18.2 H.A end + -30 24332 a -30 24332 a +SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION-LINUX) cvn H.B /DEST +pdfmark end + -30 24332 a 4852 x FL(1.1)620 +b(What)g(is)g(Lin)-22 b(ux?)-30 29212 y +SDict begin H.S end + -30 29212 a -30 +29212 a +SDict begin 18.2 H.A end + -30 29212 a -30 29212 a +SDict begin [ /View [/XYZ H.V] /Dest (299) cvn H.B /DEST pdfmark end + -30 29212 a -30 29212 +a +SDict begin H.S end + -30 29212 a -30 29212 a +SDict begin 18.2 H.A end + -30 29212 a -30 29212 a +SDict begin [ /View [/XYZ H.V] /Dest (301) cvn H.B /DEST pdfmark end + -30 +29212 a -30 29212 a +SDict begin H.S end + -30 29212 a -30 29212 a +SDict begin 18.2 H.A end + -30 29212 +a -30 29212 a +SDict begin [ /View [/XYZ H.V] /Dest (303) cvn H.B /DEST pdfmark end + -30 29212 a -30 29212 a +SDict begin H.S end + -30 29212 a -30 +29212 a +SDict begin 18.2 H.A end + -30 29212 a -30 29212 a +SDict begin [ /View [/XYZ H.V] /Dest (305) cvn H.B /DEST pdfmark end + -30 29212 a -30 29212 +a +SDict begin H.S end + -30 29212 a -30 29212 a +SDict begin 18.2 H.A end + -30 29212 a -30 29212 a +SDict begin [ /View [/XYZ H.V] /Dest (307) cvn H.B /DEST pdfmark end + -30 +29212 a -30 29212 a +SDict begin H.S end + -30 29212 a -30 29212 a +SDict begin 18.2 H.A end + -30 29212 +a -30 29212 a +SDict begin [ /View [/XYZ H.V] /Dest (309) cvn H.B /DEST pdfmark end + -30 29212 a -30 30327 a +SDict begin H.S end + -30 30327 a -30 +30327 a +SDict begin 18.2 H.A end + -30 30327 a -30 30327 a +SDict begin [ /View [/XYZ H.V] /Dest (311) cvn H.B /DEST pdfmark end + -30 30327 a 1987 x FU(Linus)508 +b(T)-124 b(orv)-39 b(alds)508 b(started)g(Linux,)h(an)f(operating)g +(system)g(k)-15 b(ernel,)508 b(as)g(a)h(personal)f(project)g(in)-30 +34329 y(1991.)454 b(He)g(started)f(the)h(project)g(because)f(he)h(w)-15 +b(anted)453 b(to)h(run)g(a)g(Unix-based)f(operating)g(sys-)-30 +36343 y(tem)541 b(without)g(spending)g(a)h(lot)f(of)h(mone)-23 +b(y)-101 b(.)542 b(In)f(addition,)g(he)h(w)-15 b(anted)541 +b(to)h(learn)f(the)h(ins)f(and)-30 38358 y(outs)521 b(of)g(the)g(386)h +(processor)-85 b(.)521 b(Linux)f(w)-15 b(as)521 b(released)g(free)h(of) +g(char)-28 b(ge)521 b(to)g(the)g(public)g(so)g(that)-30 +40373 y(an)-23 b(yone)526 b(could)h(study)f(it)g(and)g(mak)-15 +b(e)526 b(impro)-23 b(v)g(ements)525 b(under)i(the)f(General)h(Public)f +(License.)-30 42387 y(\(See)p 0 TeXcolorgray 3226 42387 +a +SDict begin H.S end + 3226 42387 a FU(Section)387 b(1.3)10200 42387 y +SDict begin 18.2 H.L end + 10200 +42387 a 10200 42387 a +SDict begin [ /Subtype /Link /Dest (INTRODUCTION-OPENSOURCE) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 10200 42387 a Black 503 w FU(and)p +0 TeXcolorgray 13443 42387 a +SDict begin H.S end + 13443 42387 a FU(Appendix)g(A)21062 +42387 y +SDict begin 18.2 H.L end + 21062 42387 a 21062 42387 a +SDict begin [ /Subtype /Link /Dest (GPL) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 21062 42387 a Black +502 w FU(for)503 b(an)f(e)-23 b(xplanation)501 b(of)i(the)f(license.\)) +h(T)-124 b(oday)-101 b(,)503 b(Linux)-30 44402 y(has)528 +b(gro)-39 b(wn)529 b(into)f(a)g(major)g(player)h(in)f(the)g(operating)g +(system)g(mark)-15 b(et.)528 b(It)g(has)h(been)f(ported)-30 +46417 y(to)541 b(run)h(on)f(a)h(v)-39 b(ariety)542 b(of)f(system)g +(architectures,)h(including)e(HP/Compaq')-85 b(s)540 +b(Alpha,)i(Sun')-85 b(s)-30 48431 y(SP)-143 b(ARC)525 +b(and)h(UltraSP)-143 b(ARC,)525 b(and)h(Motorola')-85 +b(s)525 b(Po)-39 b(werPC)525 b(chips)g(\(through)h(Apple)f(Macin-)-30 +50446 y(tosh)385 b(and)g(IBM)h(RS/6000)e(computers.\))h(Hundreds,)g(if) +h(not)f(thousands,)g(of)g(programmers)g(all)-30 52461 +y(o)-23 b(v)g(er)555 b(the)g(w)-15 b(orld)554 b(no)-39 +b(w)555 b(de)-39 b(v)-23 b(elop)555 b(Linux.)f(It)i(runs)e(programs)h +(lik)-15 b(e)554 b(Sendmail,)h(Apache,)g(and)-30 54475 +y(BIND,)456 b(which)g(are)g(v)-23 b(ery)456 b(popular)g(softw)-15 +b(are)455 b(used)h(to)f(run)h(Internet)g(serv)-23 b(ers.)456 +b(It')-85 b(s)456 b(important)-30 56490 y(to)490 b(remember)f(that)h +(the)g(term)16967 56490 y +SDict begin H.S end + 16967 56490 a 16967 56490 a +SDict begin 18.2 H.A end + +16967 56490 a 16967 56490 a +SDict begin [ /View [/XYZ H.V] /Dest (314) cvn H.B /DEST pdfmark end + 16967 56490 a FU(\223Linux\224)g(really)g +(refers)g(to)f(the)h(k)-15 b(ernel)489 b(-)h(the)g(core)g(of)g(the)g +(op-)-30 58505 y(erating)469 b(system.)g(This)g(core)g(is)g +(responsible)g(for)g(controlling)f(your)h(computer')-85 +b(s)469 b(processor)-62 b(,)-30 60519 y(memory)-101 b(,)518 +b(hard)g(dri)-39 b(v)-23 b(es,)518 b(and)g(peripherals.)g(That')-85 +b(s)517 b(all)h(Linux)f(really)h(does:)f(It)h(controls)f(the)-30 +62534 y(operations)358 b(of)g(your)h(computer)e(and)i(mak)-15 +b(es)358 b(sure)g(that)g(all)g(of)h(its)f(programs)g(beha)-31 +b(v)-23 b(e.)358 b(V)-172 b(arious)-30 64549 y(companies)355 +b(and)g(indi)-39 b(viduals)355 b(b)-31 b(undle)355 b(the)g(k)-15 +b(ernel)355 b(and)g(v)-39 b(arious)355 b(programs)g(together)g(to)h +(mak)-15 b(e)-30 66563 y(an)387 b(operating)g(system.)g(W)-124 +b(e)388 b(call)f(each)g(b)-31 b(undle)387 b(a)h(Linux)f(distrib)-31 +b(ution.)-30 66899 y +SDict begin H.S end + -30 66899 a -30 66899 a +SDict begin 18.2 H.A end + -30 66899 +a -30 66899 a +SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION-LINUX-GNU) cvn H.B +/DEST pdfmark end + -30 66899 a Black 51001 73672 a FR(1)p +Black eop end +%%Page: 2 24 +TeXDict begin 2 23 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.2) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(1)g(An)g(Intr)-70 +b(oduction)386 b(to)i(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p +Black -30 3740 a FG(A)517 b(W)-112 b(or)-37 b(d)517 b(on)h(GNU)-30 +3763 y +SDict begin H.S end + -30 3763 a -30 3763 a +SDict begin 18.2 H.A end + -30 3763 a -30 3763 a +SDict begin [ /View [/XYZ H.V] /Dest (317) cvn H.B /DEST pdfmark end + -30 +3763 a -30 3763 a +SDict begin H.S end + -30 3763 a -30 3763 a +SDict begin 18.2 H.A end + -30 3763 a -30 +3763 a +SDict begin [ /View [/XYZ H.V] /Dest (319) cvn H.B /DEST pdfmark end + -30 3763 a -30 3763 a +SDict begin H.S end + -30 3763 a -30 3763 a +SDict begin 18.2 H.A end + -30 +3763 a -30 3763 a +SDict begin [ /View [/XYZ H.V] /Dest (321) cvn H.B /DEST pdfmark end + -30 3763 a -30 3763 a +SDict begin H.S end + -30 3763 a -30 +3763 a +SDict begin 18.2 H.A end + -30 3763 a -30 3763 a +SDict begin [ /View [/XYZ H.V] /Dest (323) cvn H.B /DEST pdfmark end + -30 3763 a -30 3763 a +SDict begin H.S end + -30 +3763 a -30 3763 a +SDict begin 18.2 H.A end + -30 3763 a -30 3763 a +SDict begin [ /View [/XYZ H.V] /Dest (325) cvn H.B /DEST pdfmark end + -30 3763 a -30 +4693 a +SDict begin H.S end + -30 4693 a -30 4693 a +SDict begin 18.2 H.A end + -30 4693 a -30 4693 a +SDict begin [ /View [/XYZ H.V] /Dest (327) cvn H.B /DEST pdfmark end + -30 +4693 a 1991 x FU(The)355 b(Linux)f(k)-15 b(ernel)354 +b(project)h(be)-23 b(g)-8 b(an)354 b(as)h(a)g(solo)f(endea)-31 +b(v)g(or)355 b(by)g(Linus)f(T)-124 b(orv)-39 b(alds)354 +b(in)h(1991,)f(b)-31 b(ut)355 b(as)-30 8699 y(Isaac)386 +b(Ne)-39 b(wton)385 b(once)h(said,)15373 8699 y +SDict begin H.S end + 15373 +8699 a 15373 8699 a +SDict begin 18.2 H.A end + 15373 8699 a 15373 8699 a +SDict begin [ /View [/XYZ H.V] /Dest (328) cvn H.B /DEST pdfmark end + 15373 8699 +a FU(\223If)g(I)g(ha)-31 b(v)-23 b(e)385 b(seen)g(further)-62 +b(,)386 b(it)f(is)h(by)f(standing)g(on)g(the)g(shoulders)g(of)-30 +10714 y(giants.\224)324 b(When)g(Linus)g(T)-124 b(orv)-39 +b(alds)324 b(be)-23 b(g)-8 b(an)324 b(the)g(k)-15 b(ernel)324 +b(the)g(Free)h(Softw)-15 b(are)323 b(F)-23 b(oundation)323 +b(had)h(al-)-30 12728 y(ready)380 b(established)e(the)h(idea)h(of)f +(collaborati)-39 b(v)-23 b(e)379 b(softw)-15 b(are.)379 +b(The)-23 b(y)379 b(entitled)g(their)g(ef)-39 b(fort)380 +b(GNU,)-30 14743 y(a)391 b(recursi)-39 b(v)-23 b(e)391 +b(acron)-23 b(ym)391 b(that)f(means)h(simply)24526 14743 +y +SDict begin H.S end + 24526 14743 a 24526 14743 a +SDict begin 18.2 H.A end + 24526 14743 a 24526 14743 +a +SDict begin [ /View [/XYZ H.V] /Dest (329) cvn H.B /DEST pdfmark end + 24526 14743 a FU(\223GNU')-85 b(s)391 b(Not)g(Unix\224.)g(GNU)g +(softw)-15 b(are)390 b(ran)h(atop)-30 16758 y(the)519 +b(Linux)g(k)-15 b(ernel)518 b(from)h(day)g(1.)h(Their)f(compiler)28856 +16758 y +SDict begin H.S end + 28856 16758 a 28856 16758 a +SDict begin 18.2 H.A end + 28856 16758 a 28856 +16758 a +SDict begin [ /View [/XYZ H.V] /Dest (330) cvn H.B /DEST pdfmark end + 28856 16758 a FP(gcc)g FU(w)-15 b(as)519 b(used)g(to)g(compile) +f(the)h(k)-15 b(ernel.)-30 18772 y(T)-124 b(oday)576 +b(man)-23 b(y)576 b(GNU)g(tools)g(from)19492 18772 y +SDict begin H.S end + +19492 18772 a 19492 18772 a +SDict begin 18.2 H.A end + 19492 18772 a 19492 18772 +a +SDict begin [ /View [/XYZ H.V] /Dest (331) cvn H.B /DEST pdfmark end + 19492 18772 a FP(gcc)h FU(to)24083 18772 y +SDict begin H.S end + 24083 18772 +a 24083 18772 a +SDict begin 18.2 H.A end + 24083 18772 a 24083 18772 a +SDict begin [ /View [/XYZ H.V] /Dest (332) cvn H.B /DEST pdfmark end + 24083 18772 +a FP(gnutar)f FU(are)h(still)e(at)i(the)f(basis)g(of)h(e)-39 +b(v)-23 b(ery)576 b(major)-30 20787 y(Linux)458 b(distrib)-31 +b(ution.)458 b(F)-23 b(or)458 b(this)g(reason)g(man)-23 +b(y)458 b(of)h(the)f(Free)h(Softw)-15 b(are)458 b(F)-23 +b(oundation')-85 b(s)456 b(propo-)-30 22802 y(nents)522 +b(ferv)-23 b(ently)522 b(state)g(that)g(their)h(w)-15 +b(ork)521 b(should)h(be)h(gi)-39 b(v)-23 b(en)522 b(the)g(same)g +(credit)h(as)f(the)h(Linux)-30 24816 y(k)-15 b(ernel.)386 +b(The)-23 b(y)386 b(strongly)f(suggest)g(that)h(all)g(Linux)f(distrib) +-31 b(utions)385 b(should)g(refer)h(to)g(themselv)-23 +b(es)-30 26831 y(as)387 b(GNU/Linux)g(distrib)-31 b(utions.)-30 +26846 y +SDict begin H.S end + -30 26846 a -30 26846 a +SDict begin 18.2 H.A end + -30 26846 a -30 26846 +a +SDict begin [ /View [/XYZ H.V] /Dest (333) cvn H.B /DEST pdfmark end + -30 26846 a -30 26846 a +SDict begin H.S end + -30 26846 a -30 26846 a +SDict begin 18.2 H.A end + -30 +26846 a -30 26846 a +SDict begin [ /View [/XYZ H.V] /Dest (335) cvn H.B /DEST pdfmark end + -30 26846 a -30 27621 a +SDict begin H.S end + -30 27621 +a -30 27621 a +SDict begin 18.2 H.A end + -30 27621 a -30 27621 a +SDict begin [ /View [/XYZ H.V] /Dest (337) cvn H.B /DEST pdfmark end + -30 27621 a 2000 +x FU(This)421 b(is)f(the)h(topic)g(of)g(man)-23 b(y)420 +b(\003ame)-39 b(w)-15 b(ars,)421 b(surpassed)f(only)h(by)f(the)h +(ancient)g(vi)g(v)-23 b(ersus)420 b(emacs)-30 31635 y(holy)458 +b(w)-15 b(ar)-85 b(.)457 b(The)h(purpose)g(of)g(this)f(book)h(is)f(not) +h(to)g(f)-15 b(an)457 b(the)h(\002res)g(of)g(this)f(heated)h +(discussion,)-30 33650 y(b)-31 b(ut)515 b(rather)f(to)h(clarify)g(the)f +(terminology)g(for)h(neoph)-8 b(ytes.)514 b(When)h(one)g(sees)f +(GNU/Linux)g(it)-30 35665 y(means)387 b(a)g(Linux)g(distrib)-31 +b(ution.)386 b(When)h(one)g(sees)g(Linux)f(the)-23 b(y)387 +b(can)g(either)g(be)g(referring)g(to)g(the)-30 37679 +y(k)-15 b(ernel,)320 b(or)f(to)h(a)g(distrib)-31 b(ution.)318 +b(It)i(can)g(be)g(rather)g(confusing.)f(T)-124 b(ypically)319 +b(the)h(term)f(GNU/Linux)-30 39694 y(isn')-28 b(t)387 +b(used)g(because)g(it')-85 b(s)387 b(a)h(mouth)e(full.)-30 +42034 y +SDict begin H.S end + -30 42034 a -30 42034 a +SDict begin 18.2 H.A end + -30 42034 a -30 42034 +a +SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION-SLACKWARE) cvn H.B +/DEST pdfmark end + -30 42034 a 6109 x FL(1.2)620 b(What)g(is)g(Slac)-45 +b(kware?)-30 48171 y +SDict begin H.S end + -30 48171 a -30 48171 a +SDict begin 18.2 H.A end + -30 48171 +a -30 48171 a +SDict begin [ /View [/XYZ H.V] /Dest (340) cvn H.B /DEST pdfmark end + -30 48171 a -30 48171 a +SDict begin H.S end + -30 48171 a -30 +48171 a +SDict begin 18.2 H.A end + -30 48171 a -30 48171 a +SDict begin [ /View [/XYZ H.V] /Dest (342) cvn H.B /DEST pdfmark end + -30 48171 a -30 49287 +a +SDict begin H.S end + -30 49287 a -30 49287 a +SDict begin 18.2 H.A end + -30 49287 a -30 49287 a +SDict begin [ /View [/XYZ H.V] /Dest (344) cvn H.B /DEST pdfmark end + -30 +49287 a 1987 x FU(Slackw)-15 b(are,)493 b(started)g(by)g(P)-23 +b(atrick)492 b(V)-200 b(olk)-15 b(erding)492 b(in)h(late)g(1992,)h(and) +f(initially)f(released)h(to)g(the)-30 53288 y(w)-15 b(orld)441 +b(on)g(July)h(17,)g(1993,)f(w)-15 b(as)441 b(the)h(\002rst)f(Linux)g +(distrib)-31 b(ution)440 b(to)i(achie)-39 b(v)-23 b(e)441 +b(widespread)h(use.)-30 55303 y(V)-200 b(olk)-15 b(erding)487 +b(\002rst)g(learned)h(of)f(Linux)h(when)f(he)h(needed)g(an)g(ine)-23 +b(xpensi)-39 b(v)-23 b(e)486 b(LISP)h(interpreter)-30 +57318 y(for)385 b(a)g(project.)h(One)f(of)g(the)g(fe)-39 +b(w)385 b(distrib)-31 b(utions)383 b(a)-31 b(v)-39 b(ailable)385 +b(at)g(the)g(time)g(w)-15 b(as)384 b(SLS)h(Linux)f(from)-30 +59332 y(Soft)437 b(Landing)g(Systems.)g(V)-200 b(olk)-15 +b(erding)436 b(used)25145 59332 y +SDict begin H.S end + 25145 59332 a 25145 +59332 a +SDict begin 18.2 H.A end + 25145 59332 a 25145 59332 a +SDict begin [ /View [/XYZ H.V] /Dest (345) cvn H.B /DEST pdfmark end + 25145 59332 a 438 +w FU(SLS)h(Linux,)g(\002xing)g(b)-31 b(ugs)437 b(as)g(he)h(found)f +(them.)-30 61347 y(Ev)-23 b(entually)-101 b(,)313 b(he)h(decided)f(to)h +(mer)-28 b(ge)313 b(all)h(of)g(these)f(b)-31 b(ug\002x)-23 +b(es)313 b(into)g(his)g(o)-39 b(wn)314 b(pri)-39 b(v)g(ate)314 +b(distrib)-31 b(ution)-30 63362 y(that)353 b(he)h(and)f(his)g(friends)g +(could)h(use.)f(This)g(pri)-39 b(v)g(ate)354 b(distrib)-31 +b(ution)352 b(quickly)h(g)-8 b(ained)353 b(popularity)-101 +b(,)-30 65376 y(so)466 b(V)-200 b(olk)-15 b(erding)465 +b(decided)h(to)g(name)g(it)f(Slackw)-15 b(are)466 b(and)g(mak)-15 +b(e)465 b(it)h(publicly)f(a)-31 b(v)-39 b(ailable.)467 +b(Along)-30 67391 y(the)356 b(w)-15 b(ay)-101 b(,)355 +b(P)-23 b(atrick)355 b(added)g(ne)-39 b(w)356 b(things)f(to)g(Slackw) +-15 b(are;)355 b(a)h(user)f(friendly)g(installation)f(program)p +Black -30 73672 a FR(2)p Black eop end +%%Page: 3 25 +TeXDict begin 3 24 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.3) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 23087 -1636 a FR(Chapter)387 b(1)g(An)g(Intr)-70 +b(oduction)387 b(to)g(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p +Black -30 3611 a FU(based)423 b(on)f(a)h(menuing)f(system,)g(as)h(well) +g(as)f(the)h(concept)f(of)h(package)g(management,)f(which)-30 +5626 y(allo)-39 b(ws)387 b(users)g(to)g(easily)g(add,)h(remo)-23 +b(v)g(e,)387 b(or)g(upgrade)h(softw)-15 b(are)386 b(packages)h(on)h +(their)f(systems.)-30 6736 y +SDict begin H.S end + -30 6736 a -30 6736 a +SDict begin 18.2 H.A end + -30 +6736 a -30 6736 a +SDict begin [ /View [/XYZ H.V] /Dest (347) cvn H.B /DEST pdfmark end + -30 6736 a 1679 x FU(There)399 b(are)h(man)-23 +b(y)398 b(reasons)h(wh)-8 b(y)399 b(Slackw)-15 b(are)398 +b(is)h(Linux')-85 b(s)398 b(oldest)h(li)-39 b(ving)398 +b(distrib)-31 b(ution.)398 b(It)h(does)-30 10430 y(not)476 +b(try)h(to)f(emulate)g(W)-62 b(indo)-39 b(ws,)476 b(it)19732 +10430 y +SDict begin H.S end + 19732 10430 a 19732 10430 a +SDict begin 18.2 H.A end + 19732 10430 a 19732 +10430 a +SDict begin [ /View [/XYZ H.V] /Dest (348) cvn H.B /DEST pdfmark end + 19732 10430 a 477 w FU(tries)g(to)h(be)f(as)h(Unix-lik)-15 +b(e)475 b(as)h(possible.)g(It)h(does)f(not)g(try)-30 +12445 y(to)389 b(co)-23 b(v)g(er)389 b(up)h(processes)f(with)g(f)-15 +b(anc)-23 b(y)-101 b(,)389 b(point-and-click)g(GUIs)g(\(Graphical)g +(User)h(Interf)-15 b(aces\).)-30 14459 y(Instead,)615 +b(it)g(puts)g(users)f(in)h(control)g(by)g(letting)f(them)g(see)h(e)-23 +b(xactly)615 b(what')-85 b(s)614 b(going)h(on.)g(Its)-30 +16474 y(de)-39 b(v)-23 b(elopment)294 b(is)g(not)g(rushed)g(to)g(meet)h +(deadlines-each)f(v)-23 b(ersion)293 b(comes)h(out)g(when)h(it)f(is)g +(ready)-101 b(.)-30 17584 y +SDict begin H.S end + -30 17584 a -30 17584 a +SDict begin 18.2 H.A end + -30 +17584 a -30 17584 a +SDict begin [ /View [/XYZ H.V] /Dest (350) cvn H.B /DEST pdfmark end + -30 17584 a 1680 x FU(Slackw)-15 +b(are)380 b(is)g(for)g(people)g(who)h(enjo)-15 b(y)379 +b(learning)h(and)g(tweaking)g(their)g(system)g(to)g(do)g(e)-23 +b(xactly)-30 21278 y(what)493 b(the)-23 b(y)492 b(w)-15 +b(ant.)493 b(Slackw)-15 b(are')-85 b(s)492 b(stability)g(and)h +(simplicity)e(are)i(wh)-8 b(y)493 b(people)g(will)g(continue)-30 +23293 y(to)390 b(use)g(it)g(for)g(years)g(to)g(come.)g(Slackw)-15 +b(are)390 b(currently)g(enjo)-15 b(ys)389 b(a)h(reputation)f(as)h(a)h +(solid)e(serv)-23 b(er)-30 25308 y(and)328 b(a)g(no-nonsense)g(w)-15 +b(orkstation.)327 b(Y)-170 b(ou)327 b(can)i(\002nd)e(Slackw)-15 +b(are)327 b(desktops)h(running)f(nearly)h(an)-23 b(y)-30 +27322 y(windo)-39 b(w)476 b(manager)h(or)g(desktop)f(en)-62 +b(vironment,)476 b(or)h(none)g(at)f(all.)h(Slackw)-15 +b(are)476 b(serv)-23 b(ers)477 b(po)-39 b(wer)-30 29337 +y(b)-31 b(usinesses,)359 b(acting)g(in)g(e)-39 b(v)-23 +b(ery)359 b(capacity)g(that)g(a)g(serv)-23 b(er)359 b(can)h(be)f(used)g +(in.)g(Slackw)-15 b(are)359 b(users)g(are)-30 31352 y(among)387 +b(the)g(most)g(satis\002ed)f(Linux)h(users.)g(Of)h(course,)g(we')-77 +b(d)386 b(say)i(that.)f(:^\))-30 32462 y +SDict begin H.S end + -30 32462 a +-30 32462 a +SDict begin 18.2 H.A end + -30 32462 a -30 32462 a +SDict begin [ /View [/XYZ H.V] /Dest (INTRODUCTION-OPENSOURCE) cvn +H.B /DEST pdfmark end + -30 32462 a 5789 +x FL(1.3)620 b(Open)g(Sour)-45 b(ce)620 b(and)f(Free)g(Software)-30 +38713 y +SDict begin H.S end + -30 38713 a -30 38713 a +SDict begin 18.2 H.A end + -30 38713 a -30 38713 +a +SDict begin [ /View [/XYZ H.V] /Dest (353) cvn H.B /DEST pdfmark end + -30 38713 a -30 38713 a +SDict begin H.S end + -30 38713 a -30 38713 a +SDict begin 18.2 H.A end + -30 +38713 a -30 38713 a +SDict begin [ /View [/XYZ H.V] /Dest (355) cvn H.B /DEST pdfmark end + -30 38713 a -30 39829 a +SDict begin H.S end + -30 39829 +a -30 39829 a +SDict begin 18.2 H.A end + -30 39829 a -30 39829 a +SDict begin [ /View [/XYZ H.V] /Dest (357) cvn H.B /DEST pdfmark end + -30 39829 a 1552 +x FU(W)-62 b(ithin)458 b(the)g(Linux)g(community)-101 +b(,)457 b(there)i(are)f(tw)-15 b(o)458 b(major)g(ideological)f(mo)-23 +b(v)g(ements)457 b(at)h(w)-15 b(ork.)-30 43396 y(The)374 +b(Free)g(Softw)-15 b(are)374 b(mo)-23 b(v)g(ement)373 +b(\(which)g(we')-15 b(ll)374 b(get)g(into)g(in)g(a)g(moment\))f(is)h(w) +-15 b(orking)373 b(to)-39 b(w)-15 b(ard)-30 45411 y(the)471 +b(goal)g(of)h(making)e(all)h(softw)-15 b(are)471 b(free)h(of)f +(intellectual)f(property)h(restrictions.)g(F)-23 b(ollo)-39 +b(wers)-30 47425 y(of)343 b(this)f(mo)-23 b(v)g(ement)341 +b(belie)-39 b(v)-23 b(e)342 b(these)g(restrictions)g(hamper)g +(technical)g(impro)-23 b(v)g(ement)341 b(and)i(w)-15 +b(ork)-30 49440 y(ag)-8 b(ainst)408 b(the)g(good)g(of)g(the)g +(community)-101 b(.)407 b(The)h(Open)g(Source)g(mo)-23 +b(v)g(ement)407 b(is)h(w)-15 b(orking)406 b(to)-39 b(w)-15 +b(ard)-30 51455 y(most)412 b(of)g(the)g(same)g(goals,)h(b)-31 +b(ut)412 b(tak)-15 b(es)411 b(a)i(more)f(pragmatic)g(approach)g(to)g +(them.)h(F)-23 b(ollo)-39 b(wers)411 b(of)-30 53469 y(this)i(mo)-23 +b(v)g(ement)413 b(prefer)h(to)f(base)h(their)g(ar)-28 +b(guments)413 b(on)h(the)f(economic)g(and)h(technical)g(merits)-30 +55484 y(of)425 b(making)e(source)i(code)f(freely)h(a)-31 +b(v)-39 b(ailable,)425 b(rather)f(than)h(the)f(moral)g(and)h(ethical)f +(principles)-30 57499 y(that)387 b(dri)-39 b(v)-23 b(e)387 +b(the)g(Free)h(Softw)-15 b(are)386 b(Mo)-23 b(v)g(ement.)-30 +58289 y +SDict begin H.S end + -30 58289 a -30 58289 a +SDict begin 18.2 H.A end + -30 58289 a -30 58289 +a +SDict begin [ /View [/XYZ H.V] /Dest (358) cvn H.B /DEST pdfmark end + -30 58289 a 1999 x FU(At)503 b(the)g(other)f(end)h(of)g(the)g +(spectrum)f(are)h(groups)g(that)f(wish)h(to)f(maintain)g(tighter)h +(controls)-30 62303 y(o)-23 b(v)g(er)387 b(their)g(softw)-15 +b(are.)-30 62318 y +SDict begin H.S end + -30 62318 a -30 62318 a +SDict begin 18.2 H.A end + -30 62318 +a -30 62318 a +SDict begin [ /View [/XYZ H.V] /Dest (359) cvn H.B /DEST pdfmark end + -30 62318 a -30 62318 a +SDict begin H.S end + -30 62318 a -30 +62318 a +SDict begin 18.2 H.A end + -30 62318 a -30 62318 a +SDict begin [ /View [/XYZ H.V] /Dest (361) cvn H.B /DEST pdfmark end + -30 62318 a -30 63093 +a +SDict begin H.S end + -30 63093 a -30 63093 a +SDict begin 18.2 H.A end + -30 63093 a -30 63093 a +SDict begin [ /View [/XYZ H.V] /Dest (363) cvn H.B /DEST pdfmark end + -30 +63093 a 2000 x FU(The)491 b(Free)h(Softw)-15 b(are)490 +b(mo)-23 b(v)g(ement)490 b(is)h(headed)h(by)f(the)g(Free)h(Softw)-15 +b(are)490 b(F)-23 b(oundation,)491 b(a)g(fund-)-30 67107 +y(raising)614 b(or)-28 b(g)-8 b(anization)613 b(for)i(the)f(GNU)f +(project.)h(Free)h(softw)-15 b(are)613 b(is)h(more)g(of)g(an)g +(ideology)-101 b(.)p Black 51001 73792 a FR(3)p Black +eop end +%%Page: 4 26 +TeXDict begin 4 25 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(1)g(An)g(Intr)-70 +b(oduction)386 b(to)i(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p +Black -30 3611 a FU(The)469 b(oft-used)f(e)-23 b(xpression)468 +b(is)16973 3611 y +SDict begin H.S end + 16973 3611 a 16973 3611 a +SDict begin 18.2 H.A end + 16973 3611 +a 16973 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (364) cvn H.B /DEST pdfmark end + 16973 3611 a FU(\223free)h(as)g(in)g(speech,)g(not)f +(free)h(as)g(in)g(beer\224.)g(In)g(essence,)h(free)-30 +5626 y(softw)-15 b(are)611 b(is)g(an)h(attempt)f(to)g(guarantee)g +(certain)h(rights)f(for)g(both)g(users)h(and)f(de)-39 +b(v)-23 b(elopers.)-30 7640 y(These)360 b(freedoms)g(include)g(the)h +(freedom)f(to)g(run)g(the)h(program)f(for)g(an)-23 b(y)360 +b(reason,)h(to)f(study)g(and)-30 9655 y(modify)512 b(the)g(source)h +(code,)f(to)h(redistrib)-31 b(ute)511 b(the)i(source,)f(and)h(to)f +(share)g(an)-23 b(y)513 b(modi\002cations)-30 11670 y(you)437 +b(mak)-15 b(e.)437 b(In)h(order)f(to)g(guarantee)h(these)f(freedoms,) +30652 11670 y +SDict begin H.S end + 30652 11670 a 30652 11670 a +SDict begin 18.2 H.A end + 30652 11670 +a 30652 11670 a +SDict begin [ /View [/XYZ H.V] /Dest (365) cvn H.B /DEST pdfmark end + 30652 11670 a 438 w FU(the)g(GNU)g(General)h(Public)e +(License)-30 13684 y(\(GPL\))390 b(w)-15 b(as)390 b(created.)g(The)g +(GPL,)h(in)e(brief,)i(pro)-23 b(vides)389 b(that)h(an)-23 +b(yone)390 b(distrib)-31 b(uting)388 b(a)j(compiled)-30 +15699 y(program)360 b(which)g(is)g(licensed)g(under)g(the)g(GPL)g(must) +g(also)g(pro)-23 b(vide)359 b(source)i(code,)f(and)h(is)f(free)-30 +17714 y(to)437 b(mak)-15 b(e)436 b(modi\002cations)f(to)h(the)h +(program)f(as)h(long)f(as)g(those)h(modi\002cations)e(are)i(also)f +(made)-30 19728 y(a)-31 b(v)-39 b(ailable)465 b(in)f(source)h(code)f +(form.)h(This)g(guarantees)f(that)g(once)h(a)g(program)f(is)44254 +19728 y +SDict begin H.S end + 44254 19728 a 44254 19728 a +SDict begin 18.2 H.A end + 44254 19728 a 44254 +19728 a +SDict begin [ /View [/XYZ H.V] /Dest (367) cvn H.B /DEST pdfmark end + 44254 19728 a FU(\223opened\224)g(to)-30 21743 +y(the)551 b(community)-101 b(,)551 b(it)f(cannot)h(be)18423 +21743 y +SDict begin H.S end + 18423 21743 a 18423 21743 a +SDict begin 18.2 H.A end + 18423 21743 a 18423 +21743 a +SDict begin [ /View [/XYZ H.V] /Dest (368) cvn H.B /DEST pdfmark end + 18423 21743 a FU(\223closed\224)g(e)-23 b(xcept)551 +b(by)g(consent)g(of)g(e)-39 b(v)-23 b(ery)551 b(author)g(of)g(e)-39 +b(v)-23 b(ery)-30 23758 y(piece)431 b(of)f(code)h(\(e)-39 +b(v)-23 b(en)431 b(the)f(modi\002cations\))f(within)h(it.)h(Most)e +(Linux)h(programs)h(are)f(licensed)-30 25772 y(under)387 +b(the)g(GPL.)-30 26563 y +SDict begin H.S end + -30 26563 a -30 26563 a +SDict begin 18.2 H.A end + -30 +26563 a -30 26563 a +SDict begin [ /View [/XYZ H.V] /Dest (369) cvn H.B /DEST pdfmark end + -30 26563 a 1999 x FU(It)433 b(is)g(important)f(to) +h(note)f(that)h(the)g(GPL)f(does)h(not)g(say)g(an)-23 +b(ything)432 b(about)g(price.)i(As)e(odd)h(as)g(it)-30 +30577 y(may)g(sound,)f(you)g(can)h(char)-28 b(ge)433 +b(for)g(free)g(softw)-15 b(are.)432 b(The)31534 30577 +y +SDict begin H.S end + 31534 30577 a 31534 30577 a +SDict begin 18.2 H.A end + 31534 30577 a 31534 30577 +a +SDict begin [ /View [/XYZ H.V] /Dest (370) cvn H.B /DEST pdfmark end + 31534 30577 a FU(\223free\224)h(part)g(is)f(in)h(the)f(liberties)g +(you)-30 32591 y(ha)-31 b(v)-23 b(e)362 b(with)f(the)h(source)g(code,)h +(not)e(in)h(the)g(price)g(you)g(pay)g(for)g(the)g(softw)-15 +b(are.)361 b(\(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)363 b(once)-30 +34606 y(someone)498 b(has)g(sold)g(you,)g(or)h(e)-39 +b(v)-23 b(en)498 b(gi)-39 b(v)-23 b(en)498 b(you,)g(a)h(compiled)e +(program)h(licensed)g(under)g(the)-30 36621 y(GPL)387 +b(the)-23 b(y)387 b(are)g(oblig)-8 b(ated)387 b(to)g(pro)-23 +b(vide)387 b(its)g(source)g(code)g(as)h(well.\))-30 36956 +y +SDict begin H.S end + -30 36956 a -30 36956 a +SDict begin 18.2 H.A end + -30 36956 a -30 36956 a +SDict begin [ /View [/XYZ H.V] /Dest (371) cvn H.B /DEST pdfmark end + -30 +36956 a -30 37731 a +SDict begin H.S end + -30 37731 a -30 37731 a +SDict begin 18.2 H.A end + -30 37731 +a -30 37731 a +SDict begin [ /View [/XYZ H.V] /Dest (374) cvn H.B /DEST pdfmark end + -30 37731 a 1679 x FU(Another)373 b(popular)h(license)f +(is)g(the)h(BSD)f(license.)h(In)g(contrast)f(to)g(the)h(GPL,)g(the)f +(BSD)g(license)-30 41425 y(gi)-39 b(v)-23 b(es)439 b(no)h(requirement)f +(for)h(the)g(release)g(of)f(a)h(program')-85 b(s)439 +b(source)h(code.)g(Softw)-15 b(are)439 b(released)-30 +43440 y(under)415 b(the)g(BSD)f(license)h(allo)-39 b(ws)415 +b(redistrib)-31 b(ution)414 b(in)g(source)h(or)h(binary)e(form)h(pro) +-23 b(vided)414 b(only)-30 45454 y(a)382 b(fe)-39 b(w)381 +b(conditions)f(are)i(met.)g(The)f(author')-85 b(s)381 +b(credentials)f(cannot)h(be)h(used)f(as)g(a)h(sort)f(of)g(adv)-23 +b(er)-31 b(-)-30 47469 y(tisement)468 b(for)g(the)g(program.)g(It)h +(also)f(indemni\002es)f(the)h(author)g(from)g(liability)f(for)h +(damages)-30 49484 y(that)360 b(may)f(arise)h(from)g(the)f(use)h(of)g +(the)g(softw)-15 b(are.)359 b(Much)h(of)g(the)f(softw)-15 +b(are)359 b(included)h(in)f(Slack-)-30 51498 y(w)-15 +b(are)387 b(Linux)g(is)g(BSD)g(licensed.)-30 52289 y +SDict begin H.S end + +-30 52289 a -30 52289 a +SDict begin 18.2 H.A end + -30 52289 a -30 52289 a +SDict begin [ /View [/XYZ H.V] /Dest (375) cvn H.B /DEST pdfmark end + -30 52289 +a 1999 x FU(At)381 b(the)h(forefront)f(of)g(the)g(younger)g(Open)g +(Source)g(mo)-23 b(v)g(ement,)381 b(the)37437 54288 y +SDict begin H.S end + +37437 54288 a 37437 54288 a +SDict begin 18.2 H.A end + 37437 54288 a 37437 54288 +a +SDict begin [ /View [/XYZ H.V] /Dest (376) cvn H.B /DEST pdfmark end + 37437 54288 a 382 w FU(Open)g(Source)g(Initiati)-39 +b(v)-23 b(e)-30 56302 y(is)511 b(an)h(or)-28 b(g)-8 b(anization)511 +b(that)g(solely)g(e)-23 b(xists)511 b(to)g(g)-8 b(ain)512 +b(support)f(for)g(open)h(source)f(softw)-15 b(are,)511 +b(that)-30 58317 y(is,)443 b(softw)-15 b(are)442 b(that)h(has)f(the)h +(source)f(code)h(a)-31 b(v)-39 b(ailable)443 b(as)g(well)f(as)h(the)f +(ready-to-run)h(program.)-30 60332 y(The)-23 b(y)529 +b(do)g(not)h(of)-39 b(fer)529 b(a)h(speci\002c)f(license,)h(b)-31 +b(ut)529 b(instead)g(the)-23 b(y)529 b(support)f(the)i(v)-39 +b(arious)529 b(types)g(of)-30 62346 y(open)387 b(source)g(licenses)g(a) +-31 b(v)-39 b(ailable.)-30 63457 y +SDict begin H.S end + -30 63457 a -30 63457 +a +SDict begin 18.2 H.A end + -30 63457 a -30 63457 a +SDict begin [ /View [/XYZ H.V] /Dest (378) cvn H.B /DEST pdfmark end + -30 63457 a 1679 x FU(The)432 +b(idea)g(behind)f(the)h(OSI)g(is)f(to)h(get)g(more)g(companies)f +(behind)g(open)h(source)g(by)g(allo)-39 b(wing)-30 67151 +y(them)535 b(to)h(write)f(their)h(o)-39 b(wn)536 b(open)f(source)h +(licenses)f(and)h(ha)-31 b(v)-23 b(e)535 b(those)h(licenses)f +(certi\002ed)g(by)p Black -30 73792 a FR(4)p Black eop +end +%%Page: 5 27 +TeXDict begin 5 26 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 23087 -1636 a FR(Chapter)387 b(1)g(An)g(Intr)-70 +b(oduction)387 b(to)g(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p +Black -30 3611 a FU(the)367 b(Open)f(Source)g(Initiati)-39 +b(v)-23 b(e.)366 b(Man)-23 b(y)366 b(companies)g(w)-15 +b(ant)366 b(to)g(release)h(source)g(code,)g(b)-31 b(ut)366 +b(do)g(not)-30 5626 y(w)-15 b(ant)436 b(to)h(use)f(the)h(GPL.)f(Since)h +(the)-23 b(y)436 b(cannot)g(radically)g(change)h(the)g(GPL,)f(the)-23 +b(y)437 b(are)g(of)-39 b(fered)-30 7640 y(the)311 b(opportunity)g(to)g +(pro)-23 b(vide)311 b(their)g(o)-39 b(wn)312 b(license)f(and)g(ha)-31 +b(v)-23 b(e)311 b(it)h(certi\002ed)f(by)g(this)g(or)-28 +b(g)-8 b(anization.)-30 8751 y +SDict begin H.S end + -30 8751 a -30 8751 a +SDict begin 18.2 H.A end + +-30 8751 a -30 8751 a +SDict begin [ /View [/XYZ H.V] /Dest (379) cvn H.B /DEST pdfmark end + -30 8751 a 1679 x FU(While)532 +b(the)g(Free)f(Softw)-15 b(are)532 b(F)-23 b(oundation)530 +b(and)i(the)g(Open)f(Source)h(Initiati)-39 b(v)-23 b(e)531 +b(w)-15 b(ork)531 b(to)h(help)-30 12445 y(each)469 b(other)-62 +b(,)470 b(the)-23 b(y)468 b(are)h(not)g(the)g(same)g(thing.)g(The)g +(Free)f(Softw)-15 b(are)469 b(F)-23 b(oundation)467 b(uses)i(a)g(spe-) +-30 14459 y(ci\002c)528 b(license)g(and)g(pro)-23 b(vides)528 +b(softw)-15 b(are)528 b(under)g(that)g(license.)g(The)h(Open)f(Source)g +(Initiati)-39 b(v)-23 b(e)-30 16474 y(seeks)565 b(support)f(for)h(all)g +(open)g(source)f(licenses,)h(including)f(the)h(one)g(from)g(the)f(Free) +h(Soft-)-30 18489 y(w)-15 b(are)395 b(F)-23 b(oundation.)395 +b(The)g(grounds)g(on)h(which)f(each)h(ar)-28 b(gues)395 +b(for)h(making)f(source)g(code)h(freely)-30 20503 y(a)-31 +b(v)-39 b(ailable)422 b(sometimes)f(di)-39 b(vides)422 +b(the)g(tw)-15 b(o)422 b(mo)-23 b(v)g(ements,)421 b(b)-31 +b(ut)422 b(the)g(f)-15 b(act)422 b(that)g(tw)-15 b(o)421 +b(ideologically)-30 22518 y(di)-39 b(v)-23 b(erse)535 +b(groups)g(are)h(w)-15 b(orking)534 b(to)-39 b(w)-15 +b(ard)535 b(the)g(same)g(goal)g(lends)g(credence)h(to)f(the)g(ef)-39 +b(forts)536 b(of)-30 24533 y(each.)p Black 51001 73792 +a FR(5)p Black eop end +%%Page: 6 28 +TeXDict begin 6 27 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(1)g(An)g(Intr)-70 +b(oduction)386 b(to)i(Slac)-31 b(kwar)-57 b(e)386 b(Linux)p +Black Black -30 73792 a(6)p Black eop end +%%Page: 7 29 +TeXDict begin 7 28 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (HELP) cvn H.B /DEST pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(2)-30 10743 y FO(Help)p -30 18316 51806 56 v -30 19091 +a +SDict begin H.S end + -30 19091 a -30 19091 a +SDict begin 18.2 H.A end + -30 19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (382) cvn H.B /DEST pdfmark end + -30 +19091 a 1051 x FU(Often)479 b(there)f(are)i(times)e(when)g(you)h(might) +f(need)g(help)h(with)f(a)h(speci\002c)f(command,)h(setting)-30 +22157 y(up)501 b(a)h(program,)f(or)h(getting)e(a)i(piece)f(of)h(hardw) +-15 b(are)501 b(to)g(w)-15 b(ork.)501 b(Maybe)g(you)g(simply)f(w)-15 +b(ant)501 b(to)-30 24171 y(understand)480 b(a)h(gi)-39 +b(v)-23 b(en)480 b(command)g(better)-62 b(,)481 b(or)g(see)g(what)f +(other)g(options)g(are)h(a)-31 b(v)-39 b(ailable)481 +b(to)f(use)-30 26186 y(with)395 b(it.)h(Luckily)-101 +b(,)395 b(there)h(are)g(a)g(v)-39 b(ariety)395 b(of)h(w)-15 +b(ays)395 b(that)g(you)g(can)h(get)f(the)h(help)f(you')-77 +b(re)395 b(looking)-30 28201 y(for)-85 b(.)365 b(When)g(you)g(install)f +(Slackw)-15 b(are)364 b(you)h(ha)-31 b(v)-23 b(e)364 +b(the)h(option)f(of)h(installing)f(packages)g(from)h(the)-30 +30215 y +SDict begin H.S end + -30 30215 a -30 30215 a +SDict begin 18.2 H.A end + -30 30215 a -30 30215 +a +SDict begin [ /View [/XYZ H.V] /Dest (383) cvn H.B /DEST pdfmark end + -30 30215 a FU(\223F\224)334 b(series)g(which)g(includes)f(F)-115 +b(A)-85 b(Qs)334 b(and)g(HO)-54 b(WT)-28 b(Os.)334 b(Programs)f(also)h +(come)g(with)f(help)h(about)-30 32230 y(their)387 b(options,)g +(con\002guration)f(\002les,)h(and)h(usage.)-30 32566 +y +SDict begin H.S end + -30 32566 a -30 32566 a +SDict begin 18.2 H.A end + -30 32566 a -30 32566 a +SDict begin [ /View [/XYZ H.V] /Dest (HELP-SYSTEM) cvn H.B /DEST pdfmark +end + -30 +32566 a 5789 x FL(2.1)620 b(System)h(Help)-30 38817 y +SDict begin H.S end + +-30 38817 a -30 38817 a +SDict begin 18.2 H.A end + -30 38817 a -30 38817 a +SDict begin [ /View [/XYZ H.V] /Dest (HELP-SYSTEM-MAN) cvn H.B /DEST +pdfmark end + -30 38817 +a 4900 x FF(man)-30 43740 y +SDict begin H.S end + -30 43740 a -30 43740 a +SDict begin 18.2 H.A end + -30 +43740 a -30 43740 a +SDict begin [ /View [/XYZ H.V] /Dest (389) cvn H.B /DEST pdfmark end + -30 43740 a -30 43740 a +SDict begin H.S end + -30 43740 +a -30 43740 a +SDict begin 18.2 H.A end + -30 43740 a -30 43740 a +SDict begin [ /View [/XYZ H.V] /Dest (391) cvn H.B /DEST pdfmark end + -30 43740 a -30 +44670 a +SDict begin H.S end + -30 44670 a -30 44670 a +SDict begin 18.2 H.A end + -30 44670 a -30 44670 +a +SDict begin [ /View [/XYZ H.V] /Dest (394) cvn H.B /DEST pdfmark end + -30 44670 a 1991 x FU(The)2838 46661 y +SDict begin H.S end + 2838 46661 a +2838 46661 a +SDict begin 18.2 H.A end + 2838 46661 a 2838 46661 a +SDict begin [ /View [/XYZ H.V] /Dest (395) cvn H.B /DEST pdfmark end + 2838 46661 a FP(man)458 +b FU(command)g(\(short)g(for)18438 46661 y +SDict begin H.S end + 18438 46661 +a 18438 46661 a +SDict begin 18.2 H.A end + 18438 46661 a 18438 46661 a +SDict begin [ /View [/XYZ H.V] /Dest (396) cvn H.B /DEST pdfmark end + 18438 46661 +a FU(\223manual\224\))h(is)f(the)g(traditional)f(form)h(of)h(online)e +(documen-)-30 48676 y(tation)389 b(in)g(Unix)g(and)g(Linux)g(operating) +f(systems.)h(Comprised)f(of)i(specially)e(formatted)h(\002les,)-30 +50691 y(the)2289 50691 y +SDict begin H.S end + 2289 50691 a 2289 50691 a +SDict begin 18.2 H.A end + 2289 +50691 a 2289 50691 a +SDict begin [ /View [/XYZ H.V] /Dest (397) cvn H.B /DEST pdfmark end + 2289 50691 a FU(\223man)424 b(pages\224,)h(are)g +(written)g(for)g(the)f(v)-39 b(ast)425 b(majority)f(of)h(commands)e +(and)i(are)g(distrib)-31 b(uted)-30 52705 y(with)431 +b(the)g(softw)-15 b(are)431 b(itself.)g(Ex)-23 b(ecuting)21845 +52705 y +SDict begin H.S end + 21845 52705 a 21845 52705 a +SDict begin 18.2 H.A end + 21845 52705 a 21845 +52705 a +SDict begin [ /View [/XYZ H.V] /Dest (398) cvn H.B /DEST pdfmark end + 21845 52705 a FP(man)743 b(somecommand)430 b +FU(will)h(display)g(the)g(man)g(page)h(for)-30 54720 +y(\(naturally\))378 b(the)g(command)g(speci\002ed,)g(in)g(our)h(e)-23 +b(xample)377 b(this)h(w)-15 b(ould)378 b(be)g(the)g(imaginary)g(pro-) +-30 56735 y(gram)3542 56735 y +SDict begin H.S end + 3542 56735 a 3542 56735 +a +SDict begin 18.2 H.A end + 3542 56735 a 3542 56735 a +SDict begin [ /View [/XYZ H.V] /Dest (399) cvn H.B /DEST pdfmark end + 3542 56735 a FP(somecommand)p +FU(.)-30 57845 y +SDict begin H.S end + -30 57845 a -30 57845 a +SDict begin 18.2 H.A end + -30 57845 a +-30 57845 a +SDict begin [ /View [/XYZ H.V] /Dest (400) cvn H.B /DEST pdfmark end + -30 57845 a 1679 x FU(As)588 b(you)f(might)g(imagine,)h +(the)g(amount)f(of)h(man)f(pages)h(can)g(quickly)f(add)h(up,)g +(becoming)-30 61539 y(o)-23 b(v)g(erly)665 b(confusing)g(and)g +(seriously)g(complicated,)g(e)-39 b(v)-23 b(en)666 b(for)f(an)h(adv)-39 +b(anced)666 b(user)-85 b(.)665 b(So,)h(for)-30 63553 +y(this)407 b(reason,)h(man)f(pages)h(are)g(grouped)f(into)g(enumerated) +g(sections.)h(This)f(system)f(has)i(been)-30 65568 y(around)345 +b(for)f(a)h(v)-23 b(ery)345 b(long)f(time;)g(enough)g(so)h(that)f(you)g +(will)h(often)f(see)h(commands,)f(programs,)-30 67583 +y(and)387 b(e)-39 b(v)-23 b(en)388 b(programming)e(library)h(functions) +f(referred)i(to)f(with)g(their)g(man)g(section)g(number)-85 +b(.)p Black -30 73672 a +SDict begin H.S end + -30 73672 a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 +a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (402) cvn H.B /DEST pdfmark end + -30 73672 a 50944 74722 a FR(7)p Black +eop end +%%Page: 8 30 +TeXDict begin 8 29 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.8) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(2)g(Help)p Black +-30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 +a +SDict begin [ /View [/XYZ H.V] /Dest (401) cvn H.B /DEST pdfmark end + -30 2383 a 1107 x FU(F)-23 b(or)387 b(e)-23 b(xample:)-30 +6280 y(Y)-170 b(ou)506 b(might)h(see)g(a)g(reference)h(to)f +FP(man)p FU(\(1\).)g(The)g(numbering)f(tells)h(you)g(that)42591 +6280 y +SDict begin H.S end + 42591 6280 a 42591 6280 a +SDict begin 18.2 H.A end + 42591 6280 a 42591 6280 +a +SDict begin [ /View [/XYZ H.V] /Dest (404) cvn H.B /DEST pdfmark end + 42591 6280 a FU(\223)43279 6280 y +SDict begin H.S end + 43279 6280 a 43279 +6280 a +SDict begin 18.2 H.A end + 43279 6280 a 43279 6280 a +SDict begin [ /View [/XYZ H.V] /Dest (405) cvn H.B /DEST pdfmark end + 43279 6280 a FP(man)p +FU(\224)g(is)g(docu-)-30 8294 y(mented)461 b(in)f(section)h(1)g(\(user) +g(commands\);)f(you)h(can)g(specify)g(that)f(you)h(w)-15 +b(ant)461 b(the)f(section)h(1)-30 10309 y(man)377 b(page)g(for)8503 +10309 y +SDict begin H.S end + 8503 10309 a 8503 10309 a +SDict begin 18.2 H.A end + 8503 10309 a 8503 10309 +a +SDict begin [ /View [/XYZ H.V] /Dest (406) cvn H.B /DEST pdfmark end + 8503 10309 a FU(\223man\224)f(with)h(the)f(command)24816 +10309 y +SDict begin H.S end + 24816 10309 a 24816 10309 a +SDict begin 18.2 H.A end + 24816 10309 a 24816 +10309 a +SDict begin [ /View [/XYZ H.V] /Dest (407) cvn H.B /DEST pdfmark end + 24816 10309 a FP(man)744 b(1)g(man)p FU(.)377 +b(Specifying)f(the)g(section)h(that)f(man)-30 12324 y(should)387 +b(look)g(in)g(is)g(useful)g(in)g(the)g(case)h(of)f(multiple)f(items)h +(with)g(the)g(same)g(name.)-30 12659 y +SDict begin H.S end + -30 12659 a -30 +12659 a +SDict begin 18.2 H.A end + -30 12659 a -30 12659 a +SDict begin [ /View [/XYZ H.V] /Dest (408) cvn H.B /DEST pdfmark end + -30 12659 a 4004 x FX(T)-143 +b(able)387 b(2-1.)h(Man)f(P)-15 b(age)386 b(Sections)-30 +18527 y +SDict begin H.S end + -30 18527 a -30 18527 a +SDict begin 18.2 H.A end + -30 18527 a -30 18527 +a +SDict begin [ /View [/XYZ H.V] /Dest (410) cvn H.B /DEST pdfmark end + -30 18527 a -30 18527 a +SDict begin H.S end + -30 18527 a -30 18527 a +SDict begin 18.2 H.A end + -30 +18527 a -30 18527 a +SDict begin [ /View [/XYZ H.V] /Dest (table.2) cvn H.B /DEST pdfmark +end + -30 18527 a 1761 x FE(Section)7353 +b(Contents)p -30 20665 51806 45 v -30 20665 V -30 22426 +a FU(Section)387 b(1)7140 b(user)387 b(commands)f(\(intro)h(only\))-30 +24522 y(Section)g(2)7140 b(system)386 b(calls)-30 26619 +y(Section)h(3)7140 b(C)387 b(library)g(calls)-30 28715 +y(Section)g(4)7140 b(de)-39 b(vices)387 b(\(e.g.,)i FQ(hd)p +FU(,)d FQ(sd)p FU(\))-30 30811 y(Section)h(5)7140 b(\002le)387 +b(formats)f(and)i(protocols)e(\(e.g.,)j(wtmp,)e FQ(/etc/passwd)p +FU(,)381 b(nfs\))-30 32908 y(Section)387 b(6)7140 b(g)-8 +b(ames)387 b(\(intro)g(only\))-30 35004 y(Section)g(7)7140 +b(con)-62 b(v)-23 b(entions,)386 b(macro)h(packages,)h(etc.)g(\(e.g.,)g +(nrof)-39 b(f,)389 b(ascii\))-30 37101 y(Section)e(8)7140 +b(system)386 b(administration)g(\(intro)h(only\))-30 +38986 y +SDict begin H.S end + -30 38986 a -30 38986 a +SDict begin 18.2 H.A end + -30 38986 a -30 38986 +a +SDict begin [ /View [/XYZ H.V] /Dest (445) cvn H.B /DEST pdfmark end + -30 38986 a 1683 x FU(In)397 b(addition)e(to)8737 40669 +y +SDict begin H.S end + 8737 40669 a 8737 40669 a +SDict begin 18.2 H.A end + 8737 40669 a 8737 40669 a +SDict begin [ /View [/XYZ H.V] /Dest (446) cvn H.B /DEST pdfmark end + +8737 40669 a FP(man)p FU(\(1\),)i(there)f(are)h(the)21634 +40669 y +SDict begin H.S end + 21634 40669 a 21634 40669 a +SDict begin 18.2 H.A end + 21634 40669 a 21634 +40669 a +SDict begin [ /View [/XYZ H.V] /Dest (447) cvn H.B /DEST pdfmark end + 21634 40669 a 22030 40669 a +SDict begin H.S end + 22030 40669 a 22030 +40669 a +SDict begin 18.2 H.A end + 22030 40669 a 22030 40669 a +SDict begin [ /View [/XYZ H.V] /Dest (449) cvn H.B /DEST pdfmark end + 22030 40669 a 397 +w FU(commands)29539 40669 y +SDict begin H.S end + 29539 40669 a 29539 40669 +a +SDict begin 18.2 H.A end + 29539 40669 a 29539 40669 a +SDict begin [ /View [/XYZ H.V] /Dest (451) cvn H.B /DEST pdfmark end + 29539 40669 a FP(whatis)p +FU(\(1\))f(and)38840 40669 y +SDict begin H.S end + 38840 40669 a 38840 40669 +a +SDict begin 18.2 H.A end + 38840 40669 a 38840 40669 a +SDict begin [ /View [/XYZ H.V] /Dest (452) cvn H.B /DEST pdfmark end + 38840 40669 a FP(apropos)p +FU(\(1\))g(a)-31 b(v)-39 b(ailable)-30 42683 y(to)548 +b(you,)g(whose)f(shared)h(purpose)f(is)h(to)f(mak)-15 +b(e)547 b(it)h(easier)g(to)f(\002nd)g(information)g(in)h(the)f(man)-30 +44698 y(system.)-30 45808 y +SDict begin H.S end + -30 45808 a -30 45808 a +SDict begin 18.2 H.A end + -30 +45808 a -30 45808 a +SDict begin [ /View [/XYZ H.V] /Dest (453) cvn H.B /DEST pdfmark end + -30 45808 a 1680 x FU(The)312 b(command)9117 +47488 y +SDict begin H.S end + 9117 47488 a 9117 47488 a +SDict begin 18.2 H.A end + 9117 47488 a 9117 47488 +a +SDict begin [ /View [/XYZ H.V] /Dest (454) cvn H.B /DEST pdfmark end + 9117 47488 a FP(whatis)f FU(gi)-39 b(v)-23 b(es)312 +b(a)h(v)-23 b(ery)312 b(brief)g(description)f(of)h(system)g(commands,)f +(some)-39 b(what)-30 49502 y(in)387 b(the)g(style)g(of)h(a)f(pock)-15 +b(et)387 b(command)f(reference.)-30 50613 y +SDict begin H.S end + -30 50613 +a -30 50613 a +SDict begin 18.2 H.A end + -30 50613 a -30 50613 a +SDict begin [ /View [/XYZ H.V] /Dest (455) cvn H.B /DEST pdfmark end + -30 50613 a 1679 +x FU(Example:)-30 54177 y +SDict begin H.S end + -30 54177 a -30 54177 a +SDict begin 14.56 H.A end + -30 +54177 a -30 54177 a +SDict begin [ /View [/XYZ H.V] /Dest (456) cvn H.B /DEST pdfmark end + -30 54177 a -30 54177 a +SDict begin H.S end + -30 54177 +a -30 54177 a +SDict begin 14.56 H.A end + -30 54177 a -30 54177 a +SDict begin [ /View [/XYZ H.V] /Dest (457) cvn H.B /DEST pdfmark end + -30 54177 a 1276 +x FJ(\045)1309 55453 y +SDict begin H.S end + 1309 55453 a 1309 55453 a +SDict begin 14.56 H.A end + 1309 +55453 a 1309 55453 a +SDict begin [ /View [/XYZ H.V] /Dest (458) cvn H.B /DEST pdfmark end + 1309 55453 a FH(whatis)743 b(whatis)-30 +57065 y FP(whatis)g(\(1\))1488 b(-)743 b(search)h(the)f(whatis)g +(database)g(for)h(complete)e(words)p Black -30 73672 +a FR(8)p Black eop end +%%Page: 9 31 +TeXDict begin 9 30 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.9) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 42133 -1636 a FR(Chapter)387 b(2)g(Help)p +Black -30 3611 a FU(The)327 b(command)9146 3611 y +SDict begin H.S end + 9146 +3611 a 9146 3611 a +SDict begin 18.2 H.A end + 9146 3611 a 9146 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (460) cvn H.B /DEST pdfmark end + 9146 3611 +a FP(apropos)g FU(is)g(used)g(to)f(search)i(for)f(a)g(man)g(page)g +(containing)f(a)h(gi)-39 b(v)-23 b(en)327 b(k)-15 b(e)-23 +b(yw)-15 b(ord.)-30 4721 y +SDict begin H.S end + -30 4721 a -30 4721 a +SDict begin 18.2 H.A end + -30 +4721 a -30 4721 a +SDict begin [ /View [/XYZ H.V] /Dest (461) cvn H.B /DEST pdfmark end + -30 4721 a 1680 x FU(Example:)-30 8286 +y +SDict begin H.S end + -30 8286 a -30 8286 a +SDict begin 12.416 H.A end + -30 8286 a -30 8286 a +SDict begin [ /View [/XYZ H.V] /Dest (462) cvn H.B /DEST pdfmark end + -30 8286 +a -30 8286 a +SDict begin H.S end + -30 8286 a -30 8286 a +SDict begin 12.416 H.A end + -30 8286 a -30 8286 +a +SDict begin [ /View [/XYZ H.V] /Dest (463) cvn H.B /DEST pdfmark end + -30 8286 a 1039 x FD(\045)1112 9325 y +SDict begin H.S end + 1112 9325 a 1112 +9325 a +SDict begin 12.416 H.A end + 1112 9325 a 1112 9325 a +SDict begin [ /View [/XYZ H.V] /Dest (464) cvn H.B /DEST pdfmark end + 1112 9325 a FC(apropos)637 +b(wav)-30 10699 y FB(cdda2wav)2540 b(\(1\))1270 b(-)635 +b(a)g(sampling)i(utility)g(that)e(dumps)h(CD)f(audio)i(data)e(into)h +(wav)g(sound)g(files)-30 12074 y(netwave_cs)1272 b(\(4\))e(-)635 +b(Xircom)h(Creditcard)i(Netwave)f(device)f(driver)-30 +13448 y(oggdec)3808 b(\(1\))1270 b(-)635 b(simple)h(decoder,)h(Ogg)f +(Vorbis)g(file)g(to)f(PCM)h(audio)g(file)g(\(WAV)f(or)g(RAW\))-30 +14822 y(wavelan)3174 b(\(4\))1270 b(-)635 b(AT&T)h(GIS)f(WaveLAN)i(ISA) +e(device)i(driver)-30 16197 y(wavelan_cs)1272 b(\(4\))e(-)635 +b(AT&T)h(GIS)f(WaveLAN)i(PCMCIA)f(device)h(driver)-30 +17571 y(wvlan_cs)2540 b(\(4\))1270 b(-)635 b(Lucent)h(WaveLAN/IEEE)j +(802.11)d(device)h(driver)-30 19245 y +SDict begin H.S end + -30 19245 a -30 +19245 a +SDict begin 18.2 H.A end + -30 19245 a -30 19245 a +SDict begin [ /View [/XYZ H.V] /Dest (465) cvn H.B /DEST pdfmark end + -30 19245 a 1891 x FU(If)488 +b(you')-77 b(d)487 b(lik)-15 b(e)487 b(further)h(information)f(on)h(an) +-23 b(y)488 b(of)g(these)f(commands,)h(read)g(their)f(man)h(pages)-30 +23150 y(for)388 b(the)f(details.)g(;\))-30 24203 y +SDict begin H.S end + -30 +24203 a -30 24203 a +SDict begin 18.2 H.A end + -30 24203 a -30 24203 a +SDict begin [ /View [/XYZ H.V] /Dest (HELP-SYSTEM-DOC) cvn H.B /DEST +pdfmark end + -30 24203 +a 5239 x FG(The)518 b FA(/usr/do)n(c)487 b FG(Director)19 +b(y)-30 30757 y +SDict begin H.S end + -30 30757 a -30 30757 a +SDict begin 18.2 H.A end + -30 30757 a -30 +30757 a +SDict begin [ /View [/XYZ H.V] /Dest (469) cvn H.B /DEST pdfmark end + -30 30757 a 1630 x FU(The)332 b(source)g(for)g(most)g(packages) +g(that)g(we)g(b)-31 b(uild)331 b(comes)h(with)g(some)f(sort)h(of)g +(documentation:)-30 34401 y(README)619 b(\002les,)h(usage)g +(instructions,)f(license)h(\002les,)g(etc.)h(An)-23 b(y)619 +b(sort)h(of)g(documentation)-30 36416 y(that)440 b(comes)f(with)h(the)g +(source)g(is)f(included)h(and)g(installed)f(on)g(your)h(system)f(in)h +(the)46765 36416 y +SDict begin H.S end + 46765 36416 a 46765 36416 a +SDict begin 18.2 H.A end + 46765 +36416 a 46765 36416 a +SDict begin [ /View [/XYZ H.V] /Dest (470) cvn H.B /DEST pdfmark end + 46765 36416 a FQ(/usr/doc)-30 38431 +y FU(directory)-101 b(.)373 b(Each)f(program)g(will)g(\(usually\))g +(install)f(its)h(o)-39 b(wn)372 b(documentation)f(in)i(the)f(order)g +(of:)-30 39541 y +SDict begin H.S end + -30 39541 a -30 39541 a +SDict begin 18.2 H.A end + -30 39541 a +-30 39541 a +SDict begin [ /View [/XYZ H.V] /Dest (471) cvn H.B /DEST pdfmark end + -30 39541 a -30 39541 a +SDict begin H.S end + -30 39541 a -30 39541 +a +SDict begin 18.2 H.A end + -30 39541 a -30 39541 a +SDict begin [ /View [/XYZ H.V] /Dest (472) cvn H.B /DEST pdfmark end + -30 39541 a 1679 x FQ(/usr/doc/$program-)55 +b($version)-30 42264 y +SDict begin H.S end + -30 42264 a -30 42264 a +SDict begin 18.2 H.A end + -30 42264 +a -30 42264 a +SDict begin [ /View [/XYZ H.V] /Dest (474) cvn H.B /DEST pdfmark end + -30 42264 a 1746 x FU(Where)4554 44010 +y +SDict begin H.S end + 4554 44010 a 4554 44010 a +SDict begin 18.2 H.A end + 4554 44010 a 4554 44010 a +SDict begin [ /View [/XYZ H.V] /Dest (475) cvn H.B /DEST pdfmark end + +4554 44010 a Fz($program)476 b FU(is)454 b(the)g(name)g(of)g(the)g +(program)g(you)g(are)g(w)-15 b(anting)453 b(to)h(read)g(about,)g(and) +-30 46025 y +SDict begin H.S end + -30 46025 a -30 46025 a +SDict begin 18.2 H.A end + -30 46025 a -30 46025 +a +SDict begin [ /View [/XYZ H.V] /Dest (476) cvn H.B /DEST pdfmark end + -30 46025 a Fz($version)422 b FU(is)h(\(ob)-23 b(viously\))421 +b(the)i(appropriate)g(v)-23 b(ersion)422 b(of)h(softw)-15 +b(are)422 b(package)h(installed)f(on)-30 48039 y(your)387 +b(system.)-30 49150 y +SDict begin H.S end + -30 49150 a -30 49150 a +SDict begin 18.2 H.A end + -30 49150 +a -30 49150 a +SDict begin [ /View [/XYZ H.V] /Dest (477) cvn H.B /DEST pdfmark end + -30 49150 a 1679 x FU(F)-23 b(or)372 b(e)-23 +b(xample,)373 b(to)f(read)h(the)f(documentation)g(for)h(the)f(command) +35860 50829 y +SDict begin H.S end + 35860 50829 a 35860 50829 a +SDict begin 18.2 H.A end + 35860 50829 +a 35860 50829 a +SDict begin [ /View [/XYZ H.V] /Dest (478) cvn H.B /DEST pdfmark end + 35860 50829 a FP(man)p FU(\(1\))g(you)h(w)-15 +b(ould)371 b(w)-15 b(ant)372 b(to)-30 52843 y +SDict begin H.S end + -30 52843 +a -30 52843 a +SDict begin 18.2 H.A end + -30 52843 a -30 52843 a +SDict begin [ /View [/XYZ H.V] /Dest (479) cvn H.B /DEST pdfmark end + -30 52843 a FP(cd)387 +b FU(to:)-30 54419 y +SDict begin H.S end + -30 54419 a -30 54419 a +SDict begin 14.56 H.A end + -30 54419 +a -30 54419 a +SDict begin [ /View [/XYZ H.V] /Dest (480) cvn H.B /DEST pdfmark end + -30 54419 a -30 54419 a +SDict begin H.S end + -30 54419 a -30 +54419 a +SDict begin 14.56 H.A end + -30 54419 a -30 54419 a +SDict begin [ /View [/XYZ H.V] /Dest (481) cvn H.B /DEST pdfmark end + -30 54419 a 1586 x FJ(\045)1309 +56005 y +SDict begin H.S end + 1309 56005 a 1309 56005 a +SDict begin 14.56 H.A end + 1309 56005 a 1309 56005 +a +SDict begin [ /View [/XYZ H.V] /Dest (482) cvn H.B /DEST pdfmark end + 1309 56005 a FH(cd)744 b(/usr/doc/man-)13213 56005 +y +SDict begin H.S end + 13213 56005 a 13213 56005 a +SDict begin 14.56 H.A end + 13213 56005 a 13213 56005 +a +SDict begin [ /View [/XYZ H.V] /Dest (483) cvn H.B /DEST pdfmark end + 13213 56005 a Fy($version)-30 57723 y +SDict begin H.S end + -30 57723 a -30 +57723 a +SDict begin 18.2 H.A end + -30 57723 a -30 57723 a +SDict begin [ /View [/XYZ H.V] /Dest (484) cvn H.B /DEST pdfmark end + -30 57723 a 1846 x FU(If)305 +b(reading)f(the)h(appropriate)f(man)g(page\(s\))h(doesn')-28 +b(t)304 b(pro)-23 b(vide)304 b(you)g(with)g(enough)h(information,)-30 +61584 y(or)e(address)g(what)f(you')-77 b(re)303 b(looking)f(for)g(in)h +(particular)-62 b(,)303 b(the)31522 61584 y +SDict begin H.S end + 31522 61584 +a 31522 61584 a +SDict begin 18.2 H.A end + 31522 61584 a 31522 61584 a +SDict begin [ /View [/XYZ H.V] /Dest (485) cvn H.B /DEST pdfmark end + 31522 61584 +a FQ(/usr/doc)298 b FU(directory)k(should)g(be)h(your)-30 +63599 y(ne)-23 b(xt)387 b(stop.)-30 64709 y +SDict begin H.S end + -30 64709 +a -30 64709 a +SDict begin 18.2 H.A end + -30 64709 a -30 64709 a +SDict begin [ /View [/XYZ H.V] /Dest (HELP-SYSTEM-HOWTO) cvn H.B /DEST +pdfmark end + -30 64709 a Black +51001 73792 a FR(9)p Black eop end +%%Page: 10 32 +TeXDict begin 10 31 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.10) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (520) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(2)g(Help)p Black -30 3861 a FG(HO)-93 b(WT)-74 b(Os)516 +b(and)h(mini-HO)-93 b(WT)-74 b(Os)-30 3884 y +SDict begin H.S end + -30 3884 +a -30 3884 a +SDict begin 18.2 H.A end + -30 3884 a -30 3884 a +SDict begin [ /View [/XYZ H.V] /Dest (488) cvn H.B /DEST pdfmark end + -30 3884 a -30 4814 +a +SDict begin H.S end + -30 4814 a -30 4814 a +SDict begin 18.2 H.A end + -30 4814 a -30 4814 a +SDict begin [ /View [/XYZ H.V] /Dest (490) cvn H.B /DEST pdfmark end + -30 4814 +a 1991 x FU(It)768 b(is)f(in)g(the)h(truest)f(spirit)g(of)g(the)g(Open) +h(Source)f(community)f(that)h(brings)g(us)h(to)f(the)-30 +8820 y(HO)-54 b(WT)-28 b(O/mini-HO)-54 b(WT)-28 b(O)531 +b(collection.)i(These)g(\002les)g(are)h(e)-23 b(xactly)533 +b(what)g(the)-23 b(y)533 b(sound)f(lik)-15 b(e)533 b(-)-30 +10835 y(documents)631 b(and)i(guides)e(describing)h(ho)-39 +b(w)632 b(to)g(do)h(stuf)-39 b(f.)632 b(If)h(you)f(installed)f(the)h +(HO)-54 b(WT)-28 b(O)-30 12849 y(collection,)1050 b(the)g(HO)-54 +b(WT)-28 b(Os)1050 b(will)f(be)h(installed)g(to)32335 +12849 y +SDict begin H.S end + 32335 12849 a 32335 12849 a +SDict begin 18.2 H.A end + 32335 12849 a 32335 +12849 a +SDict begin [ /View [/XYZ H.V] /Dest (491) cvn H.B /DEST pdfmark end + 32335 12849 a FQ(/usr/doc/Linux-)55 b(HOWTOs)1037 +b FU(and)1050 b(the)-30 14864 y(mini-HO)-54 b(WT)-28 +b(Os)386 b(to)11596 14864 y +SDict begin H.S end + 11596 14864 a 11596 14864 +a +SDict begin 18.2 H.A end + 11596 14864 a 11596 14864 a +SDict begin [ /View [/XYZ H.V] /Dest (492) cvn H.B /DEST pdfmark end + 11596 14864 a FQ(/usr/doc/Linux-)55 +b(mini-)g(HOWTOs)p FU(.)-30 15046 y +SDict begin H.S end + -30 15046 a -30 15046 +a +SDict begin 18.2 H.A end + -30 15046 a -30 15046 a +SDict begin [ /View [/XYZ H.V] /Dest (493) cvn H.B /DEST pdfmark end + -30 15046 a -30 15821 a +SDict begin H.S end + -30 +15821 a -30 15821 a +SDict begin 18.2 H.A end + -30 15821 a -30 15821 a +SDict begin [ /View [/XYZ H.V] /Dest (495) cvn H.B /DEST pdfmark end + -30 15821 +a 1833 x FU(Also)668 b(included)f(in)h(the)f(same)h(package)g(series)g +(is)g(a)g(collection)f(of)h(F)-115 b(A)-85 b(Qs,)668 +b(which)f(is)h(an)-30 19668 y(acron)-23 b(ym)387 b(which)g(stands)g +(for)-30 20004 y +SDict begin H.S end + -30 20004 a -30 20004 a +SDict begin 18.2 H.A end + -30 20004 a +-30 20004 a +SDict begin [ /View [/XYZ H.V] /Dest (496) cvn H.B /DEST pdfmark end + -30 20004 a -30 22328 a +SDict begin H.S end + -30 22328 a -30 22328 +a +SDict begin 18.2 H.A end + -30 22328 a -30 22328 a +SDict begin [ /View [/XYZ H.V] /Dest (497) cvn H.B /DEST pdfmark end + -30 22328 a -30 22328 a +SDict begin H.S end + -30 +22328 a -30 22328 a +SDict begin 18.2 H.A end + -30 22328 a -30 22328 a +SDict begin [ /View [/XYZ H.V] /Dest (table.3) cvn H.B /DEST pdfmark +end + -30 22328 +a 1727 x FR(F)53 b FU(requently)-30 26118 y FR(A)p FU(sk)-15 +b(ed)-30 28176 y FR(Q)p FU(uestions)-30 30058 y +SDict begin H.S end + -30 30058 +a -30 30058 a +SDict begin 18.2 H.A end + -30 30058 a -30 30058 a +SDict begin [ /View [/XYZ H.V] /Dest (508) cvn H.B /DEST pdfmark end + -30 30058 a 2015 +x FU(These)530 b(documents)f(are)h(written)f(in)h(a)21742 +32073 y +SDict begin H.S end + 21742 32073 a 21742 32073 a +SDict begin 18.2 H.A end + 21742 32073 a 21742 +32073 a +SDict begin [ /View [/XYZ H.V] /Dest (509) cvn H.B /DEST pdfmark end + 21742 32073 a FU(\223Question)f(and)h(answer\224)g(style)f(for) +h(\(surprise\))g(Fre-)-30 34088 y(quently)609 b(Ask)-15 +b(ed)608 b(Questions.)h(The)g(F)-115 b(A)-85 b(Qs)609 +b(can)g(often)g(be)h(a)f(v)-23 b(ery)609 b(useful)g(place)g(to)g(look)g +(if)-30 36102 y(you')-77 b(re)352 b(just)h(looking)f(for)g(a)15172 +36102 y +SDict begin H.S end + 15172 36102 a 15172 36102 a +SDict begin 18.2 H.A end + 15172 36102 a 15172 +36102 a +SDict begin [ /View [/XYZ H.V] /Dest (510) cvn H.B /DEST pdfmark end + 15172 36102 a FU(\223Quick)h(Fix\224)f(to)h(something.)f(If)h +(you)g(decide)f(to)h(install)f(the)g(F)-115 b(A)-85 b(Qs)-30 +38117 y(during)387 b(setup,)g(you)g(will)g(\002nd)g(them)g(installed)f +(to)h(the)29761 38117 y +SDict begin H.S end + 29761 38117 a 29761 38117 a +SDict begin 18.2 H.A end + 29761 +38117 a 29761 38117 a +SDict begin [ /View [/XYZ H.V] /Dest (511) cvn H.B /DEST pdfmark end + 29761 38117 a FQ(/usr/doc/Linux-)55 +b(FAQs)375 b FU(directory)-101 b(.)-30 39227 y +SDict begin H.S end + -30 39227 +a -30 39227 a +SDict begin 18.2 H.A end + -30 39227 a -30 39227 a +SDict begin [ /View [/XYZ H.V] /Dest (512) cvn H.B /DEST pdfmark end + -30 39227 a 1680 +x FU(These)491 b(\002les)f(are)h(well)g(w)-15 b(orth)490 +b(reading)g(whene)-39 b(v)-23 b(er)491 b(you')-77 b(re)490 +b(not)g(quite)h(sure)g(ho)-39 b(w)490 b(to)h(proceed)-30 +42921 y(with)514 b(something.)f(The)-23 b(y)514 b(co)-23 +b(v)g(er)514 b(an)g(amazing)g(range)g(of)g(topics,)g(more)g(often)g +(than)g(not)g(in)g(a)-30 44936 y(surprisingly)386 b(detailed)h(manner) +-85 b(.)387 b(Good)g(stuf)-39 b(f!)-30 47596 y +SDict begin H.S end + -30 47596 +a -30 47596 a +SDict begin 18.2 H.A end + -30 47596 a -30 47596 a +SDict begin [ /View [/XYZ H.V] /Dest (HELP-ONLINE) cvn H.B /DEST pdfmark +end + -30 47596 a 5789 +x FL(2.2)620 b(Online)h(Help)-30 54963 y +SDict begin H.S end + -30 54963 a +-30 54963 a +SDict begin 18.2 H.A end + -30 54963 a -30 54963 a +SDict begin [ /View [/XYZ H.V] /Dest (515) cvn H.B /DEST pdfmark end + -30 54963 a 1553 +x FU(In)385 b(addition)g(to)g(the)g(documentation)f(pro)-23 +b(vided)384 b(and)h(installable)f(with)h(the)g(Slackw)-15 +b(are)385 b(Linux)-30 58530 y(Operating)361 b(System,)g(there)g(are)h +(a)g(v)-39 b(ast)361 b(multitude)f(of)i(online)f(resources)g(a)-31 +b(v)-39 b(ailable)361 b(for)h(you)f(to)-30 60545 y(learn)387 +b(from)h(as)f(well.)-30 60560 y +SDict begin H.S end + -30 60560 a -30 60560 +a +SDict begin 18.2 H.A end + -30 60560 a -30 60560 a +SDict begin [ /View [/XYZ H.V] /Dest (HELP-ONLINE-OFFICIAL) cvn H.B +/DEST pdfmark end + -30 60560 a Black 13232 x FR(10)p +Black eop end +%%Page: 11 33 +TeXDict begin 11 32 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.11) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (541) cvn H.B /DEST pdfmark end + -30 -2687 a 42133 -1636 a FR(Chapter)387 +b(2)g(Help)p Black -30 3861 a FG(The)518 b(Of\002cial)f(W)-65 +b(ebsite)517 b(and)g(Help)g(Forums)-30 5176 y +SDict begin H.S end + -30 5176 +a -30 5176 a +SDict begin 18.2 H.A end + -30 5176 a -30 5176 a +SDict begin [ /View [/XYZ H.V] /Dest (518) cvn H.B /DEST pdfmark end + -30 5176 a -30 5176 +a +SDict begin H.S end + -30 5176 a -30 5176 a +SDict begin 18.2 H.A end + -30 5176 a -30 5176 a +SDict begin [ /View [/XYZ H.V] /Dest (519) cvn H.B /DEST pdfmark end + -30 5176 +a 1629 x FU(The)387 b(Of)-39 b(\002cial)387 b(Slackw)-15 +b(are)387 b(W)-124 b(ebsite)19632 6185 y FT(1)-30 9595 +y FU(The)540 b(Of)-39 b(\002cial)540 b(Slackw)-15 b(are)539 +b(Linux)g(website)g(is)h(sometimes)e(out)i(of)g(date,)g(b)-31 +b(ut)540 b(still)f(contains)-30 11610 y(information)576 +b(rele)-39 b(v)g(ant)577 b(to)f(the)h(latest)f(Slackw)-15 +b(are)576 b(v)-23 b(ersions.)576 b(At)g(one)h(time)f(an)h(acti)-39 +b(v)-23 b(e)576 b(help)-30 13624 y(forum)425 b(e)-23 +b(xisted)424 b(there)h(before)g(a)h(horde)f(of)g(trolls,)f(troublemak) +-15 b(ers,)425 b(and)g(whiners)f(descended)-30 15639 +y(on)507 b(the)f(forum.)h(Maintaining)e(the)i(forum)f(w)-15 +b(as)506 b(be)-23 b(ginning)505 b(to)i(be)g(too)f(much)g(w)-15 +b(ork,)507 b(and)f(so)-30 17654 y(P)-23 b(at)493 b(shut)g(it)g(do)-39 +b(wn.)494 b(One)f(can)h(\002nd)f(that)g(old)g(forum)g(back)g(up)h(and)f +(running)g(complete)f(with)-30 19668 y(searchable)387 +b(archi)-39 b(v)-23 b(es)388 b(of)f(the)g(old)g(data)g(at)p +0 1 0 0 TeXcolorcmyk 23190 20022 a +SDict begin H.S end + 23190 20022 a 0 1 0 0 +TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(u)l(s)l(e)l(r)l(l)l(o) +l(c)l(a)l(l)l(.)l(c)l(o)l(m)l(/)l(p)l(h)l(o)l(r)l(u)l(m)l(/)p +0 1 0 0 TeXcolorcmyk 49078 18561 a +SDict begin H.R end + 49078 18561 a 49078 +19668 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.userlocal.com/phorum/) >> /Subtype /Link H.B +/ANN pdfmark end + 49078 19668 a Black FU(.)-30 20797 y +SDict begin H.S end + -30 20797 +a -30 20797 a +SDict begin 18.2 H.A end + -30 20797 a -30 20797 a +SDict begin [ /View [/XYZ H.V] /Dest (522) cvn H.B /DEST pdfmark end + -30 20797 a 1661 +x FU(After)411 b(the)g(forums)f(were)h(tak)-15 b(en)411 +b(do)-39 b(wn)410 b(on)p 0 1 0 0 TeXcolorcmyk 23708 22812 +a +SDict begin H.S end + 23708 22812 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(s)l(l)l(a)l(c) +l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)p 0 1 0 0 TeXcolorcmyk +39888 21351 a +SDict begin H.R end + 39888 21351 a 39888 22458 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://slackware.com) >> /Subtype /Link H.B /ANN pdfmark +end + 39888 22458 +a Black FU(,)i(se)-39 b(v)-23 b(eral)411 b(other)f(sites)-30 +24472 y(sprang)k(up)g(that)g(of)-39 b(fered)414 b(forum)g(support)g +(for)g(Slackw)-15 b(are.)414 b(After)g(much)g(thought,)g(P)-23 +b(at)413 b(chose)-30 26487 y(to)387 b(endorse)p 0 1 0 0 +TeXcolorcmyk 6770 26841 a +SDict begin H.S end + 6770 26841 a 0 1 0 0 TeXcolorcmyk +-354 x FA(www.lin)n(u)l(x)l(q)l(u)l(e)l(s)l(t)l(i)l(o)l(n)l(s)l(.)l(o)l +(r)l(g)p 0 1 0 0 TeXcolorcmyk 24568 25513 a +SDict begin H.R end + 24568 25513 +a 24568 26487 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (www.linuxquestions.org) >> /Subtype /Link H.B /ANN pdfmark +end + 24568 26487 a Black 388 w FU(as)g(the)g(of)-39 +b(\002cial)388 b(forum)e(for)i(Slackw)-15 b(are)386 b(Linux.)-30 +27616 y +SDict begin H.S end + -30 27616 a -30 27616 a +SDict begin 18.2 H.A end + -30 27616 a -30 27616 +a +SDict begin [ /View [/XYZ H.V] /Dest (HELP-ONLINE-EMAIL) cvn H.B /DEST +pdfmark end + -30 27616 a 5163 x FG(E-mail)518 b(Suppor)37 b(t)-30 +33164 y +SDict begin H.S end + -30 33164 a -30 33164 a +SDict begin 18.2 H.A end + -30 33164 a -30 33164 +a +SDict begin [ /View [/XYZ H.V] /Dest (527) cvn H.B /DEST pdfmark end + -30 33164 a -30 34094 a +SDict begin H.S end + -30 34094 a -30 34094 a +SDict begin 18.2 H.A end + -30 +34094 a -30 34094 a +SDict begin [ /View [/XYZ H.V] /Dest (530) cvn H.B /DEST pdfmark end + -30 34094 a 1630 x FU(Ev)-23 b(eryone)361 +b(who)f(purchases)h(an)g(of)-39 b(\002cial)361 b(CD)f(set)h(is)g +(entitled)f(to)h(free)g(installation)f(support)g(via)-30 +37738 y(e-mail)440 b(from)g(the)g(de)-39 b(v)-23 b(eloper)-85 +b(.)440 b(That)g(ha)-31 b(ving)439 b(been)h(said,)h(please)f(k)-15 +b(eep)439 b(in)h(mind)g(that)f(we,)i(the)-30 39753 y(de)-39 +b(v)-23 b(elopers,)531 b(\(and)g(a)h(v)-39 b(ast)531 +b(majority)f(of)i(users\))f(of)g(Slackw)-15 b(are)530 +b(are)i(of)39910 39753 y +SDict begin H.S end + 39910 39753 a 39910 39753 a +SDict begin 18.2 H.A end + +39910 39753 a 39910 39753 a +SDict begin [ /View [/XYZ H.V] /Dest (531) cvn H.B /DEST pdfmark end + 39910 39753 a FU(\223The)f(Old)g +(School\224.)-30 41768 y(That)422 b(means)f(that)g(we)h(prefer)g(to)g +(help)f(those)h(who)f(ha)-31 b(v)-23 b(e)422 b(a)f(sincere)h(interest)f +(and)h(are)g(willing)-30 43782 y(to)615 b(help)h(themselv)-23 +b(es)614 b(in)h(the)g(process.)h(W)-124 b(e)616 b(will)f(al)-15 +b(w)g(ays)614 b(do)h(our)g(best)h(to)f(help)g(e)-39 b(v)-23 +b(eryone)-30 45797 y(who)453 b(emails)g(us)h(with)f(support)f +(questions.)h(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)454 b(Please)f(check)h +(your)f(documentation)-30 47812 y(and)461 b(the)f(website)h +(\(especially)f(the)h(F)-115 b(A)-85 b(Qs)460 b(and)g(maybe)h(some)f +(of)h(the)g(forums)f(listed)g(belo)-39 b(w\))-30 49826 +y(before)379 b(e-mailing.)g(Y)-170 b(ou)378 b(may)g(get)h(a)g(f)-15 +b(aster)378 b(answer)h(that)g(w)-15 b(ay)-101 b(,)379 +b(and)g(the)f(less)h(e-mail)f(we)h(ha)-31 b(v)-23 b(e)-30 +51841 y(to)387 b(answer)-62 b(,)388 b(ob)-23 b(viously)386 +b(the)h(sooner)g(we)h(will)e(be)i(of)f(assistance)g(to)g(those)g(that)g +(need)g(it.)-30 52951 y +SDict begin H.S end + -30 52951 a -30 52951 a +SDict begin 18.2 H.A end + -30 52951 +a -30 52951 a +SDict begin [ /View [/XYZ H.V] /Dest (532) cvn H.B /DEST pdfmark end + -30 52951 a 1679 x FU(The)420 b(e-mail)f(address)g(for)h +(technical)f(support)f(is:)27440 54630 y +SDict begin H.S end + 27440 54630 +a 27440 54630 a +SDict begin 18.2 H.A end + 27440 54630 a 27440 54630 a +SDict begin [ /View [/XYZ H.V] /Dest (533) cvn H.B /DEST pdfmark end + 27440 54630 +a FP(support@slackware.com)p FU(.)f(Other)i(e-mail)-30 +56645 y(addresses)387 b(and)g(contact)g(information)g(are)g(listed)g +(on)g(the)g(website.)-30 56660 y +SDict begin H.S end + -30 56660 a -30 56660 +a +SDict begin 18.2 H.A end + -30 56660 a -30 56660 a +SDict begin [ /View [/XYZ H.V] /Dest (534) cvn H.B /DEST pdfmark end + -30 56660 a 4712 x FE(Slac)-31 +b(kware)428 b(Lin)-15 b(ux)430 b(Pr)-31 b(oject)429 b(Mailing)h(Lists) +-30 61717 y +SDict begin H.S end + -30 61717 a -30 61717 a +SDict begin 18.2 H.A end + -30 61717 a -30 61717 +a +SDict begin [ /View [/XYZ H.V] /Dest (536) cvn H.B /DEST pdfmark end + -30 61717 a -30 62491 a +SDict begin H.S end + -30 62491 a -30 62491 a +SDict begin 18.2 H.A end + -30 +62491 a -30 62491 a +SDict begin [ /View [/XYZ H.V] /Dest (539) cvn H.B /DEST pdfmark end + -30 62491 a 1670 x FU(W)-124 b(e)486 +b(ha)-31 b(v)-23 b(e)486 b(se)-39 b(v)-23 b(eral)486 +b(mailing)f(lists,)h(a)-31 b(v)-39 b(ailable)486 b(in)g(digest)f(and)h +(normal)f(forms.)i(Check)e(the)h(in-)-30 66176 y(structions)386 +b(for)i(ho)-39 b(w)387 b(to)g(subscribe.)p Black -30 +67232 16000 45 v -30 68195 a Fx(1)249 b(http://www)-65 +b(.slackw)-10 b(are.com)p Black Black 50226 73792 a FR(11)p +Black eop end +%%Page: 12 34 +TeXDict begin 12 33 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.12) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (579) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(2)g(Help)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (540) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(T)-124 b(o)387 +b(subscribe)g(to)g(a)h(mailing)e(list,)h(email:)-30 6401 +y FP(majordomo@slackware.com)-30 7370 y +SDict begin H.S end + -30 7370 a -30 +7370 a +SDict begin 18.2 H.A end + -30 7370 a -30 7370 a +SDict begin [ /View [/XYZ H.V] /Dest (543) cvn H.B /DEST pdfmark end + -30 7370 a 1820 x FU(with)578 +b(the)g(phrase)10399 9190 y +SDict begin H.S end + 10399 9190 a 10399 9190 a +SDict begin 18.2 H.A end + +10399 9190 a 10399 9190 a +SDict begin [ /View [/XYZ H.V] /Dest (544) cvn H.B /DEST pdfmark end + 10399 9190 a FU(\223)11087 +9190 y +SDict begin H.S end + 11087 9190 a 11087 9190 a +SDict begin 18.2 H.A end + 11087 9190 a 11087 9190 +a +SDict begin [ /View [/XYZ H.V] /Dest (545) cvn H.B /DEST pdfmark end + 11087 9190 a FP(subscribe)18526 9190 y +SDict begin H.S end + 18526 9190 a +18526 9190 a +SDict begin 18.2 H.A end + 18526 9190 a 18526 9190 a +SDict begin [ /View [/XYZ H.V] /Dest (546) cvn H.B /DEST pdfmark end + 18526 9190 a Fw([name)744 +b(of)f(list])p FU(\224)578 b(in)g(the)g(body)g(of)h(the)f(email.)g(The) +h(list)-30 11205 y(choices)387 b(are)h(described)f(belo)-39 +b(w)387 b(\(use)g(one)h(the)f(names)g(belo)-39 b(w)387 +b(for)g(the)h(name)f(of)g(the)g(list\).)-30 12257 y +SDict begin H.S end + -30 +12257 a -30 12257 a +SDict begin 18.2 H.A end + -30 12257 a -30 12257 a +SDict begin [ /View [/XYZ H.V] /Dest (547) cvn H.B /DEST pdfmark end + -30 12257 +a 1737 x FU(Archi)-39 b(v)-23 b(es)387 b(of)g(the)h(mailing)e(list)h +(can)g(be)h(found)f(on)g(Slackw)-15 b(are')-85 b(s)386 +b(website)h(at:)-30 15105 y +SDict begin H.S end + -30 15105 a -30 15105 a +SDict begin 18.2 H.A end + -30 +15105 a -30 15105 a +SDict begin [ /View [/XYZ H.V] /Dest (548) cvn H.B /DEST pdfmark end + -30 15105 a -30 15105 a +SDict begin H.S end + -30 15105 +a -30 15105 a +SDict begin 18.2 H.A end + -30 15105 a -30 15105 a +SDict begin [ /View [/XYZ H.V] /Dest (549) cvn H.B /DEST pdfmark end + -30 15105 a 1679 +x FP(http://slackware.com/lists/archive/)-30 16979 y +SDict begin H.S end + +-30 16979 a -30 16979 a +SDict begin 18.2 H.A end + -30 16979 a -30 16979 a +SDict begin [ /View [/XYZ H.V] /Dest (550) cvn H.B /DEST pdfmark end + -30 16979 +a -30 16979 a +SDict begin H.S end + -30 16979 a -30 16979 a +SDict begin 18.2 H.A end + -30 16979 a -30 +16979 a +SDict begin [ /View [/XYZ H.V] /Dest (552) cvn H.B /DEST pdfmark end + -30 16979 a -30 19303 a +SDict begin H.S end + -30 19303 a -30 19303 +a +SDict begin 18.2 H.A end + -30 19303 a -30 19303 a +SDict begin [ /View [/XYZ H.V] /Dest (554) cvn H.B /DEST pdfmark end + -30 19303 a -30 19303 a +SDict begin H.S end + -30 +19303 a -30 19303 a +SDict begin 18.2 H.A end + -30 19303 a -30 19303 a +SDict begin [ /View [/XYZ H.V] /Dest (555) cvn H.B /DEST pdfmark end + -30 19303 +a 1820 x FP(slackware-announce)-30 21149 y +SDict begin H.S end + -30 21149 +a -30 21149 a +SDict begin 18.2 H.A end + -30 21149 a -30 21149 a +SDict begin [ /View [/XYZ H.V] /Dest (556) cvn H.B /DEST pdfmark end + -30 21149 a Black +Black 3070 23913 a +SDict begin H.S end + 3070 23913 a 3070 23913 a +SDict begin 18.2 H.A end + 3070 23913 +a 3070 23913 a +SDict begin [ /View [/XYZ H.V] /Dest (557) cvn H.B /DEST pdfmark end + 3070 23913 a FU(The)5972 23913 y +SDict begin H.S end + 5972 +23913 a 5972 23913 a +SDict begin 18.2 H.A end + 5972 23913 a 5972 23913 a +SDict begin [ /View [/XYZ H.V] /Dest (558) cvn H.B /DEST pdfmark end + 5972 23913 +a FP(slackware-announce)490 b FU(mailing)h(list)h(is)f(for)i +(announcements)e(of)h(ne)-39 b(w)492 b(v)-23 b(ersions,)3070 +25927 y(major)387 b(updates)f(and)i(other)f(general)g(information.)-30 +27813 y +SDict begin H.S end + -30 27813 a -30 27813 a +SDict begin 18.2 H.A end + -30 27813 a -30 27813 +a +SDict begin [ /View [/XYZ H.V] /Dest (560) cvn H.B /DEST pdfmark end + -30 27813 a -30 27813 a +SDict begin H.S end + -30 27813 a -30 27813 a +SDict begin 18.2 H.A end + -30 +27813 a -30 27813 a +SDict begin [ /View [/XYZ H.V] /Dest (561) cvn H.B /DEST pdfmark end + -30 27813 a 1679 x FP(slackware-security)-30 +29687 y +SDict begin H.S end + -30 29687 a -30 29687 a +SDict begin 18.2 H.A end + -30 29687 a -30 29687 +a +SDict begin [ /View [/XYZ H.V] /Dest (562) cvn H.B /DEST pdfmark end + -30 29687 a Black Black 3070 32281 a +SDict begin H.S end + 3070 32281 a 3070 +32281 a +SDict begin 18.2 H.A end + 3070 32281 a 3070 32281 a +SDict begin [ /View [/XYZ H.V] /Dest (563) cvn H.B /DEST pdfmark end + 3070 32281 a FU(The)5807 +32281 y +SDict begin H.S end + 5807 32281 a 5807 32281 a +SDict begin 18.2 H.A end + 5807 32281 a 5807 32281 +a +SDict begin [ /View [/XYZ H.V] /Dest (564) cvn H.B /DEST pdfmark end + 5807 32281 a FP(slackware-security)325 b FU(mailing)i(list)f(is)i +(for)f(announcements)f(relating)h(to)g(security)3070 +34296 y(issues.)564 b(An)-23 b(y)564 b(e)-23 b(xploits)563 +b(or)h(other)g(vulnerabilities)f(directly)h(pertaining)g(to)g(Slackw) +-15 b(are)3070 36311 y(will)386 b(get)i(posted)e(to)h(this)g(list)g +(immediately)-101 b(.)-30 37421 y +SDict begin H.S end + -30 37421 a -30 37421 +a +SDict begin 18.2 H.A end + -30 37421 a -30 37421 a +SDict begin [ /View [/XYZ H.V] /Dest (565) cvn H.B /DEST pdfmark end + -30 37421 a 1679 x FU(These)550 +b(lists)f(are)h(also)g(a)-31 b(v)-39 b(ailable)550 b(in)f(digest)h +(format.)g(This)f(means)h(that)g(you)f(get)h(one)g(lar)-28 +b(ge)-30 41115 y(message)311 b(per)h(day)f(instead)g(of)h(se)-39 +b(v)-23 b(eral)311 b(messages)g(throughout)g(the)g(day)-101 +b(.)312 b(Since)f(the)h(slackw)-15 b(are)-30 43130 y(mailing)398 +b(lists)g(do)g(not)g(allo)-39 b(w)399 b(users)f(to)g(post,)h(and)f(the) +h(lists)e(are)i(such)g(lo)-39 b(w)398 b(traf)-39 b(\002c,)399 +b(most)f(users)-30 45144 y(\002nd)444 b(little)g(adv)-39 +b(antage)444 b(in)g(the)h(digest)f(lists.)g(Still,)g(the)-23 +b(y)444 b(are)g(a)-31 b(v)-39 b(ailable)445 b(if)f(you)g(w)-15 +b(ant)444 b(them)g(by)-30 47159 y(subscribing)386 b(to)9096 +47159 y +SDict begin H.S end + 9096 47159 a 9096 47159 a +SDict begin 18.2 H.A end + 9096 47159 a 9096 47159 +a +SDict begin [ /View [/XYZ H.V] /Dest (566) cvn H.B /DEST pdfmark end + 9096 47159 a FP(slackware-announce-digest)f FU(or)29759 +47159 y +SDict begin H.S end + 29759 47159 a 29759 47159 a +SDict begin 18.2 H.A end + 29759 47159 a 29759 +47159 a +SDict begin [ /View [/XYZ H.V] /Dest (567) cvn H.B /DEST pdfmark end + 29759 47159 a FP(slackware-security-digest)p +FU(.)-30 49819 y +SDict begin H.S end + -30 49819 a -30 49819 a +SDict begin 18.2 H.A end + -30 49819 a +-30 49819 a +SDict begin [ /View [/XYZ H.V] /Dest (HELP-ONLINE-NONOFFICIAL) cvn +H.B /DEST pdfmark end + -30 49819 a 5182 x FG(Non-Of\002cial)518 +b(W)-65 b(ebsites)517 b(and)g(Help)g(Forums)-30 55386 +y +SDict begin H.S end + -30 55386 a -30 55386 a +SDict begin 18.2 H.A end + -30 55386 a -30 55386 a +SDict begin [ /View [/XYZ H.V] /Dest (570) cvn H.B /DEST pdfmark end + -30 +55386 a 4341 x FE(W)-54 b(ebsites)-30 59746 y +SDict begin H.S end + -30 59746 +a -30 59746 a +SDict begin 18.2 H.A end + -30 59746 a -30 59746 a +SDict begin [ /View [/XYZ H.V] /Dest (572) cvn H.B /DEST pdfmark end + -30 59746 a -30 +62071 a +SDict begin H.S end + -30 62071 a -30 62071 a +SDict begin 18.2 H.A end + -30 62071 a -30 62071 +a +SDict begin [ /View [/XYZ H.V] /Dest (574) cvn H.B /DEST pdfmark end + -30 62071 a -30 62071 a +SDict begin H.S end + -30 62071 a -30 62071 a +SDict begin 18.2 H.A end + -30 +62071 a -30 62071 a +SDict begin [ /View [/XYZ H.V] /Dest (575) cvn H.B /DEST pdfmark end + -30 62071 a 1996 x FU(Google)387 +b(\()p 0 1 0 0 TeXcolorcmyk 5436 64421 a +SDict begin H.S end + 5436 64421 a +0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(g)l(o)l(o)l(g) +l(l)l(e)l(.)l(c)l(o)l(m)p 0 1 0 0 TeXcolorcmyk 22425 +62960 a +SDict begin H.R end + 22425 62960 a 22425 64067 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.google.com) >> /Subtype /Link H.B /ANN pdfmark +end + 22425 64067 a Black +FU(\))-30 64421 y +SDict begin H.S end + -30 64421 a -30 64421 a +SDict begin 18.2 H.A end + -30 64421 a +-30 64421 a +SDict begin [ /View [/XYZ H.V] /Dest (576) cvn H.B /DEST pdfmark end + -30 64421 a Black Black 3070 66856 a +SDict begin H.S end + 3070 +66856 a 3070 66856 a +SDict begin 18.2 H.A end + 3070 66856 a 3070 66856 a +SDict begin [ /View [/XYZ H.V] /Dest (577) cvn H.B /DEST pdfmark end + 3070 66856 +a FU(The)369 b(K)-23 b(ung-Fu)369 b(Master)g(of)h(Search)f(Engines.)h +(When)f(you)h(absolutely)-101 b(,)369 b(positi)-39 b(v)-23 +b(ely)368 b(gotta)p Black -30 73792 a FR(12)p Black eop +end +%%Page: 13 35 +TeXDict begin 13 34 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.13) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (619) cvn H.B /DEST pdfmark end + -30 -2687 a 42133 -1636 a FR(Chapter)387 +b(2)g(Help)p Black 3070 3611 a FU(\002nd)f(e)-39 b(v)-23 +b(ery)388 b(last)f(k)-15 b(ernel)387 b(of)g(information)f(on)h(a)h +(subject:)e(Accept)i(no)f(substitutes.)-30 7176 y(Google:Linux)f(\()p +0 1 0 0 TeXcolorcmyk 9569 7530 a +SDict begin H.S end + 9569 7530 a 0 1 0 0 +TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(g)l(o)l(o)l(g)l(l)l(e) +l(.)l(c)l(o)l(m)l(/)l(l)l(i)l(n)l(u)l(x)p 0 1 0 0 TeXcolorcmyk +31412 6069 a +SDict begin H.R end + 31412 6069 a 31412 7176 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.google.com/linux) >> /Subtype /Link H.B /ANN +pdfmark end + 31412 7176 a Black +FU(\))-30 7530 y +SDict begin H.S end + -30 7530 a -30 7530 a +SDict begin 18.2 H.A end + -30 7530 a -30 +7530 a +SDict begin [ /View [/XYZ H.V] /Dest (581) cvn H.B /DEST pdfmark end + -30 7530 a Black Black 3070 9965 a +SDict begin H.S end + 3070 9965 a +3070 9965 a +SDict begin 18.2 H.A end + 3070 9965 a 3070 9965 a +SDict begin [ /View [/XYZ H.V] /Dest (582) cvn H.B /DEST pdfmark end + 3070 9965 a FU(Linux-Speci\002c)g +(searches)-30 11850 y +SDict begin H.S end + -30 11850 a -30 11850 a +SDict begin 18.2 H.A end + -30 11850 +a -30 11850 a +SDict begin [ /View [/XYZ H.V] /Dest (584) cvn H.B /DEST pdfmark end + -30 11850 a -30 11850 a +SDict begin H.S end + -30 11850 a -30 +11850 a +SDict begin 18.2 H.A end + -30 11850 a -30 11850 a +SDict begin [ /View [/XYZ H.V] /Dest (585) cvn H.B /DEST pdfmark end + -30 11850 a 1679 x FU(Google:BSD)g(\()p +0 1 0 0 TeXcolorcmyk 8881 13884 a +SDict begin H.S end + 8881 13884 a 0 1 0 0 +TeXcolorcmyk -355 x FA(http://)n(w)l(w)l(w)l(.)l(g)l(o)l(o)l(g)l(l)l(e) +l(.)l(c)l(o)l(m)l(/)l(b)l(s)l(d)p 0 1 0 0 TeXcolorcmyk +29106 12423 a +SDict begin H.R end + 29106 12423 a 29106 13529 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.google.com/bsd) >> /Subtype /Link H.B /ANN pdfmark +end + 29106 13529 +a Black FU(\))-30 13884 y +SDict begin H.S end + -30 13884 a -30 13884 a +SDict begin 18.2 H.A end + -30 +13884 a -30 13884 a +SDict begin [ /View [/XYZ H.V] /Dest (586) cvn H.B /DEST pdfmark end + -30 13884 a -30 13884 a +SDict begin H.S end + -30 13884 +a -30 13884 a +SDict begin 18.2 H.A end + -30 13884 a -30 13884 a +SDict begin [ /View [/XYZ H.V] /Dest (588) cvn H.B /DEST pdfmark end + -30 13884 a Black +Black 3070 16319 a +SDict begin H.S end + 3070 16319 a 3070 16319 a +SDict begin 18.2 H.A end + 3070 16319 +a 3070 16319 a +SDict begin [ /View [/XYZ H.V] /Dest (589) cvn H.B /DEST pdfmark end + 3070 16319 a FU(BSD-Speci\002c)299 b(searches.)h(Slackw) +-15 b(are)300 b(is)g(so)g(generic)h(as)f(a)h(Unix)f(w)-15 +b(ork-a-lik)g(e)299 b(operating)3070 18334 y(system)362 +b(that)g(one)h(can)g(as)g(often)g(as)g(not)g(\002nd)f(v)-23 +b(ery)363 b(detailed)f(information)g(that)h(is)g(almost)3070 +20348 y(100\045)470 b(rele)-39 b(v)g(ant)471 b(to)g(Slackw)-15 +b(are)470 b(here.)h(Man)-23 b(y)470 b(times)g(a)h(BSD)f(search)h(re)-39 +b(v)-23 b(eals)471 b(f)-15 b(ar)470 b(more)3070 22363 +y(technical)387 b(information)f(than)h(the)g(often)g(PR-related)g +(Linux)g(searches.)-30 23928 y +SDict begin H.S end + -30 23928 a -30 23928 +a +SDict begin 18.2 H.A end + -30 23928 a -30 23928 a +SDict begin [ /View [/XYZ H.V] /Dest (591) cvn H.B /DEST pdfmark end + -30 23928 a -30 23928 a +SDict begin H.S end + -30 +23928 a -30 23928 a +SDict begin 18.2 H.A end + -30 23928 a -30 23928 a +SDict begin [ /View [/XYZ H.V] /Dest (592) cvn H.B /DEST pdfmark end + -30 23928 +a 1999 x FU(Google:Groups)f(\()p 0 1 0 0 TeXcolorcmyk +10429 26282 a +SDict begin H.S end + 10429 26282 a 0 1 0 0 TeXcolorcmyk -355 +x FA(http://)n(g)l(r)l(o)l(u)l(p)l(s)l(.)l(g)l(o)l(o)l(g)l(l)l(e)l(.)l +(c)l(o)l(m)p 0 1 0 0 TeXcolorcmyk 29845 24821 a +SDict begin H.R end + 29845 +24821 a 29845 25927 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://groups.google.com) >> /Subtype /Link H.B /ANN pdfmark +end + 29845 25927 a Black FU(\))-30 26282 +y +SDict begin H.S end + -30 26282 a -30 26282 a +SDict begin 18.2 H.A end + -30 26282 a -30 26282 a +SDict begin [ /View [/XYZ H.V] /Dest (593) cvn H.B /DEST pdfmark end + -30 +26282 a Black Black 3070 28717 a +SDict begin H.S end + 3070 28717 a 3070 28717 +a +SDict begin 18.2 H.A end + 3070 28717 a 3070 28717 a +SDict begin [ /View [/XYZ H.V] /Dest (594) cvn H.B /DEST pdfmark end + 3070 28717 a FU(Search)h(through)g(decades) +g(of)g(Usenet)g(posts)g(for)g(your)g(pearls)h(of)f(wisdom.)-30 +30602 y +SDict begin H.S end + -30 30602 a -30 30602 a +SDict begin 18.2 H.A end + -30 30602 a -30 30602 +a +SDict begin [ /View [/XYZ H.V] /Dest (596) cvn H.B /DEST pdfmark end + -30 30602 a 0 1 0 0 TeXcolorcmyk -30 32636 a +SDict begin H.S end + -30 32636 +a 0 1 0 0 TeXcolorcmyk -355 x FA(http://)n(u)l(s)l(e)l(r)l(l)l(o)l(c)l +(a)l(l)l(.)l(c)l(o)l(m)p 0 1 0 0 TeXcolorcmyk 16150 31175 +a +SDict begin H.R end + 16150 31175 a 16150 32281 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://userlocal.com) >> /Subtype /Link H.B /ANN pdfmark +end + 16150 32281 a Black -30 +32636 a +SDict begin H.S end + -30 32636 a -30 32636 a +SDict begin 18.2 H.A end + -30 32636 a -30 32636 +a +SDict begin [ /View [/XYZ H.V] /Dest (598) cvn H.B /DEST pdfmark end + -30 32636 a Black Black 3070 35071 a +SDict begin H.S end + 3070 35071 a 3070 +35071 a +SDict begin 18.2 H.A end + 3070 35071 a 3070 35071 a +SDict begin [ /View [/XYZ H.V] /Dest (599) cvn H.B /DEST pdfmark end + 3070 35071 a FU(A)460 +b(virtual)g(treasure-tro)-23 b(v)g(e)459 b(of)i(kno)-39 +b(wledge,)460 b(good)g(advice,)g(\002rst-hand)g(e)-23 +b(xperience)460 b(and)3070 37086 y(interesting)372 b(articles.)h(Often) +f(the)h(\002rst)g(place)g(you')-15 b(ll)371 b(hear)j(about)e(ne)-39 +b(w)373 b(de)-39 b(v)-23 b(elopments)372 b(in)3070 39100 +y(the)387 b(w)-15 b(orld)386 b(of)i(Slackw)-15 b(are.)-30 +39891 y +SDict begin H.S end + -30 39891 a -30 39891 a +SDict begin 18.2 H.A end + -30 39891 a -30 39891 +a +SDict begin [ /View [/XYZ H.V] /Dest (600) cvn H.B /DEST pdfmark end + -30 39891 a 5098 x FE(W)-54 b(eb-based)429 b(Resour)-31 +b(ces)-30 45008 y +SDict begin H.S end + -30 45008 a -30 45008 a +SDict begin 18.2 H.A end + -30 45008 a +-30 45008 a +SDict begin [ /View [/XYZ H.V] /Dest (602) cvn H.B /DEST pdfmark end + -30 45008 a -30 47333 a +SDict begin H.S end + -30 47333 a -30 47333 +a +SDict begin 18.2 H.A end + -30 47333 a -30 47333 a +SDict begin [ /View [/XYZ H.V] /Dest (604) cvn H.B /DEST pdfmark end + -30 47333 a -30 47333 a +SDict begin H.S end + -30 +47333 a -30 47333 a +SDict begin 18.2 H.A end + -30 47333 a -30 47333 a +SDict begin [ /View [/XYZ H.V] /Dest (605) cvn H.B /DEST pdfmark end + -30 47333 +a 1996 x FU(linuxquestions.or)j(g)11438 48709 y FT(6)-30 +49664 y +SDict begin H.S end + -30 49664 a -30 49664 a +SDict begin 18.2 H.A end + -30 49664 a -30 49664 +a +SDict begin [ /View [/XYZ H.V] /Dest (606) cvn H.B /DEST pdfmark end + -30 49664 a Black Black 3070 52118 a +SDict begin H.S end + 3070 52118 a 3070 +52118 a +SDict begin 18.2 H.A end + 3070 52118 a 3070 52118 a +SDict begin [ /View [/XYZ H.V] /Dest (607) cvn H.B /DEST pdfmark end + 3070 52118 a FU(The)387 +b(of)-39 b(\002cially)387 b(sanctioned)f(web-forum)h(for)h(Slackw)-15 +b(are)386 b(users.)-30 54003 y +SDict begin H.S end + -30 54003 a -30 54003 +a +SDict begin 18.2 H.A end + -30 54003 a -30 54003 a +SDict begin [ /View [/XYZ H.V] /Dest (609) cvn H.B /DEST pdfmark end + -30 54003 a -30 54003 a +SDict begin H.S end + -30 +54003 a -30 54003 a +SDict begin 18.2 H.A end + -30 54003 a -30 54003 a +SDict begin [ /View [/XYZ H.V] /Dest (610) cvn H.B /DEST pdfmark end + -30 54003 +a 1680 x FU(LinuxISO.or)-28 b(g)387 b(Slackw)-15 b(are)386 +b(F)-23 b(orum)19919 55063 y FT(7)-30 56018 y +SDict begin H.S end + -30 56018 +a -30 56018 a +SDict begin 18.2 H.A end + -30 56018 a -30 56018 a +SDict begin [ /View [/XYZ H.V] /Dest (611) cvn H.B /DEST pdfmark end + -30 56018 a Black +Black 3070 58472 a +SDict begin H.S end + 3070 58472 a 3070 58472 a +SDict begin 18.2 H.A end + 3070 58472 +a 3070 58472 a +SDict begin [ /View [/XYZ H.V] /Dest (612) cvn H.B /DEST pdfmark end + 3070 58472 a 3070 58472 a +SDict begin H.S end + 3070 58472 a +3070 58472 a +SDict begin 18.2 H.A end + 3070 58472 a 3070 58472 a +SDict begin [ /View [/XYZ H.V] /Dest (613) cvn H.B /DEST pdfmark end + 3070 58472 a FU(\223A)387 +b(place)g(to)g(do)-39 b(wnload)387 b(and)h(get)f(help)g(with)g +(Linux.\224)p Black -30 59848 16000 45 v -30 60811 a +Fx(6)249 b(http://www)-65 b(.linuxquestions.or)-18 b +(g/questions/forumdisplay)-65 b(.php?forumid=14)-30 61852 +y(7)249 b(http://forums.linuxiso.or)-18 b(g/vie)-25 b(wforum.php?f=25)p +Black Black 50226 73792 a FR(13)p Black eop end +%%Page: 14 36 +TeXDict begin 14 35 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.14) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(2)g(Help)p Black +-30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 +a +SDict begin [ /View [/XYZ H.V] /Dest (615) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 +a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (616) cvn H.B /DEST pdfmark end + -30 2504 a 1250 x FU(alt.os.linux.slackw)-15 +b(are)387 b(F)-115 b(A)-85 b(Q)16714 3135 y FT(8)-30 +4032 y +SDict begin H.S end + -30 4032 a -30 4032 a +SDict begin 18.2 H.A end + -30 4032 a -30 4032 a +SDict begin [ /View [/XYZ H.V] /Dest (617) cvn H.B /DEST pdfmark end + -30 +4032 a Black Black 3070 6544 a +SDict begin H.S end + 3070 6544 a 3070 6544 +a +SDict begin 18.2 H.A end + 3070 6544 a 3070 6544 a +SDict begin [ /View [/XYZ H.V] /Dest (618) cvn H.B /DEST pdfmark end + 3070 6544 a FU(Another)387 +b(F)-115 b(A)-85 b(Q)-30 7596 y +SDict begin H.S end + -30 7596 a -30 7596 a +SDict begin 18.2 H.A end + +-30 7596 a -30 7596 a +SDict begin [ /View [/XYZ H.V] /Dest (619) cvn H.B /DEST pdfmark end + -30 7596 a 4837 x FE(Usenet)430 +b(Gr)-31 b(oups)429 b(\(NNTP\))-30 12754 y +SDict begin H.S end + -30 12754 +a -30 12754 a +SDict begin 18.2 H.A end + -30 12754 a -30 12754 a +SDict begin [ /View [/XYZ H.V] /Dest (621) cvn H.B /DEST pdfmark end + -30 12754 a -30 +12754 a +SDict begin H.S end + -30 12754 a -30 12754 a +SDict begin 18.2 H.A end + -30 12754 a -30 12754 +a +SDict begin [ /View [/XYZ H.V] /Dest (624) cvn H.B /DEST pdfmark end + -30 12754 a -30 13529 a +SDict begin H.S end + -30 13529 a -30 13529 a +SDict begin 18.2 H.A end + -30 +13529 a -30 13529 a +SDict begin [ /View [/XYZ H.V] /Dest (626) cvn H.B /DEST pdfmark end + -30 13529 a 1694 x FU(Usenet)519 +b(has)g(long)g(been)g(a)h(place)f(for)g(geeks)g(to)g(g)-8 +b(ather)520 b(and)f(help)g(one)g(another)-85 b(.)519 +b(There)h(are)-30 17237 y(fe)-39 b(w)453 b(ne)-39 b(wsgroups)451 +b(dedicated)h(to)g(Slackw)-15 b(are)451 b(Linux,)h(b)-31 +b(ut)452 b(the)-23 b(y)452 b(tend)g(to)g(be)g(\002lled)g(with)f(v)-23 +b(ery)-30 19252 y(kno)-39 b(wledgeable)387 b(people.)-30 +20362 y +SDict begin H.S end + -30 20362 a -30 20362 a +SDict begin 18.2 H.A end + -30 20362 a -30 20362 +a +SDict begin [ /View [/XYZ H.V] /Dest (627) cvn H.B /DEST pdfmark end + -30 20362 a -30 20362 a +SDict begin H.S end + -30 20362 a -30 20362 a +SDict begin 18.2 H.A end + -30 +20362 a -30 20362 a +SDict begin [ /View [/XYZ H.V] /Dest (628) cvn H.B /DEST pdfmark end + -30 20362 a 1679 x FP(alt.os.linux.slackware)-30 +22842 y +SDict begin H.S end + -30 22842 a -30 22842 a +SDict begin 18.2 H.A end + -30 22842 a -30 22842 +a +SDict begin [ /View [/XYZ H.V] /Dest (629) cvn H.B /DEST pdfmark end + -30 22842 a -30 22842 a +SDict begin H.S end + -30 22842 a -30 22842 a +SDict begin 18.2 H.A end + -30 +22842 a -30 22842 a +SDict begin [ /View [/XYZ H.V] /Dest (630) cvn H.B /DEST pdfmark end + -30 22842 a 1989 x FP(alt.os.linux.slackware)p +FU(,)471 b(better)i(kno)-39 b(wn)473 b(as)g(aols)g(\(not)g(to)g(be)g +(confused)g(with)46466 24831 y +SDict begin H.S end + 46466 24831 a 46466 24831 +a +SDict begin 18.2 H.A end + 46466 24831 a 46466 24831 a +SDict begin [ /View [/XYZ H.V] /Dest (631) cvn H.B /DEST pdfmark end + 46466 24831 a FU(A)-85 +b(OL\256!\))-30 26846 y(is)584 b(one)g(of)g(the)g(most)f(acti)-39 +b(v)-23 b(e)584 b(places)g(to)g(\002nd)f(technical)h(help)g(with)f +(Slackw)-15 b(are)583 b(problems.)-30 28860 y(Lik)-15 +b(e)541 b(e)-39 b(v)-23 b(ery)541 b(Usenet)g(ne)-39 b(wsgroup,)541 +b(a)h(fe)-39 b(w)542 b(unhelpful)e(participants)h(\()38619 +28860 y +SDict begin H.S end + 38619 28860 a 38619 28860 a +SDict begin 18.2 H.A end + 38619 28860 a 38619 +28860 a +SDict begin [ /View [/XYZ H.V] /Dest (632) cvn H.B /DEST pdfmark end + 38619 28860 a FU(\223trolls\224\))f(can)i(mar)f(the)-30 +30875 y(e)-23 b(xperience)484 b(with)g(constant)g(ar)-28 +b(guing.)484 b(Learning)g(to)h(ignore)f(the)g(trolls)g(and)g +(identifying)f(the)-30 32890 y(truly)387 b(helpful)g(people)g(is)g(k) +-15 b(e)-23 b(y)386 b(to)i(making)e(the)h(most)g(of)g(this)g(resource.) +p Black -30 67513 16000 45 v -30 68476 a Fx(8)249 b(http://w)-10 +b(ombat.san-francisco.ca.us/perl/fom)p Black Black -30 +73792 a FR(14)p Black eop end +%%Page: 15 37 +TeXDict begin 15 36 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.15) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION) cvn H.B /DEST pdfmark +end + -30 2383 a 2345 x FS(Chapter)894 +b(3)-30 10743 y FO(Installation)p -30 18316 51806 56 +v -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 +18316 a +SDict begin [ /View [/XYZ H.V] /Dest (635) cvn H.B /DEST pdfmark end + -30 18316 a -30 19091 a +SDict begin H.S end + -30 19091 a -30 19091 +a +SDict begin 18.2 H.A end + -30 19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (637) cvn H.B /DEST pdfmark end + -30 19091 a 1051 x FU(Before)535 +b(you)g(can)g(use)f(Slackw)-15 b(are)534 b(Linux,)h(you')-15 +b(ll)534 b(ha)-31 b(v)-23 b(e)535 b(to)f(obtain)h(and)g(install)f(it.)h +(Getting)-30 22157 y(Slackw)-15 b(are)507 b(is)g(as)g(easy)h(as)f +(purchasing)g(it)g(or)h(do)-39 b(wnloading)506 b(it)h(for)h(free)g(o) +-23 b(v)g(er)506 b(the)i(Internet.)-30 24171 y(Installing)371 +b(it)h(is)g(also)g(easy)g(as)h(long)e(as)i(you)f(ha)-31 +b(v)-23 b(e)372 b(some)f(basic)h(kno)-39 b(wledge)372 +b(about)g(your)g(com-)-30 26186 y(puter)484 b(and)g(are)h(willing)e(to) +h(learn)g(a)g(fe)-39 b(w)485 b(other)f(things.)g(The)g(installation)f +(program)h(itself)f(is)-30 28201 y(v)-23 b(ery)426 b(much)h(a)f +(step-by-step)g(process.)h(Because)f(of)h(this,)g(you)f(can)h(be)f(up)h +(and)f(running)g(v)-23 b(ery)-30 30215 y(quickly)-101 +b(.)517 b(In)g(f)-15 b(act,)517 b(Slackw)-15 b(are)516 +b(boasts)g(one)h(of)f(the)h(lo)-39 b(west)516 b(installation)g(times)g +(of)h(an)-23 b(y)516 b(full-)-30 32230 y(featured)387 +b(Linux)g(distrib)-31 b(ution.)-30 32245 y +SDict begin H.S end + -30 32245 +a -30 32245 a +SDict begin 18.2 H.A end + -30 32245 a -30 32245 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-GETTING) cvn H.B +/DEST pdfmark end + -30 32245 a 6110 +x FL(3.1)620 b(Getting)g(Slac)-45 b(kware)-30 38851 y +SDict begin H.S end + +-30 38851 a -30 38851 a +SDict begin 18.2 H.A end + -30 38851 a -30 38851 a +SDict begin [ /View [/XYZ H.V] /Dest (640) cvn H.B /DEST pdfmark end + -30 38851 +a 4866 x FG(The)518 b(Of\002cial)f(Disc)f(and)i(Bo)-56 +b(x)517 b(Sets)-30 43740 y +SDict begin H.S end + -30 43740 a -30 43740 a +SDict begin 18.2 H.A end + -30 +43740 a -30 43740 a +SDict begin [ /View [/XYZ H.V] /Dest (642) cvn H.B /DEST pdfmark end + -30 43740 a -30 43740 a +SDict begin H.S end + -30 43740 +a -30 43740 a +SDict begin 18.2 H.A end + -30 43740 a -30 43740 a +SDict begin [ /View [/XYZ H.V] /Dest (645) cvn H.B /DEST pdfmark end + -30 43740 a -30 +43740 a +SDict begin H.S end + -30 43740 a -30 43740 a +SDict begin 18.2 H.A end + -30 43740 a -30 43740 +a +SDict begin [ /View [/XYZ H.V] /Dest (647) cvn H.B /DEST pdfmark end + -30 43740 a -30 44670 a +SDict begin H.S end + -30 44670 a -30 44670 a +SDict begin 18.2 H.A end + -30 +44670 a -30 44670 a +SDict begin [ /View [/XYZ H.V] /Dest (649) cvn H.B /DEST pdfmark end + -30 44670 a 1991 x FU(The)c(of)-39 +b(\002cial)512 b(Slackw)-15 b(are)512 b(Linux)g(CD)g(set)g(is)h(a)-31 +b(v)-39 b(ailable)512 b(from)h(Slackw)-15 b(are)511 b(Linux,)i(Inc.)g +(The)-30 48676 y(CD)454 b(set)h(consists)e(of)i(4)f(discs.)h(The)f +(\002rst)g(disk)g(contains)g(all)h(the)f(softw)-15 b(are)454 +b(needed)g(for)h(a)g(ba-)-30 50691 y(sic)504 b(serv)-23 +b(er)504 b(install,)g(and)h(the)f(X)g(windo)-39 b(w)504 +b(system.)g(The)g(second)g(cd)h(is)f(a)40984 50691 y +SDict begin H.S end + +40984 50691 a 40984 50691 a +SDict begin 18.2 H.A end + 40984 50691 a 40984 50691 +a +SDict begin [ /View [/XYZ H.V] /Dest (650) cvn H.B /DEST pdfmark end + 40984 50691 a FU(\223li)-39 b(v)-23 b(e\224)505 b(cd;)f(that)g(is,) +-30 52705 y(a)434 b(bootable)e(cd)i(that)e(installs)h(into)f(RAM)h(and) +g(gi)-39 b(v)-23 b(es)433 b(you)g(a)h(temporary)e(installation)g(to)h +(play)-30 54720 y(around)481 b(with)f(or)h(do)g(a)h(data)f(or)g +(machine)f(rescue.)i(This)e(cd)h(also)g(contains)f(a)i(fe)-39 +b(w)481 b(packages)-30 56735 y(such)467 b(as)g(the)f(KDE)h(and)g(GNOME) +f(desktop)g(en)-62 b(vironments.)466 b(A)h(fe)-39 b(w)467 +b(other)g(goodies)f(are)h(in-)-30 58749 y(cluded)530 +b(on)f(the)h(second)g(cd)g(including)f(man)-23 b(y)529 +b(non-vital)g(packages)h(in)f(the)42792 58749 y +SDict begin H.S end + 42792 +58749 a 42792 58749 a +SDict begin 18.2 H.A end + 42792 58749 a 42792 58749 a +SDict begin [ /View [/XYZ H.V] /Dest (651) cvn H.B /DEST pdfmark end + 42792 +58749 a FU(\223e)-23 b(xtra\224)530 b(folder)-85 b(.)-30 +60764 y(The)353 b(third)f(and)h(fourth)g(CDs)f(contain)h(the)f(source)h +(code)g(to)g(all)g(of)g(Slackw)-15 b(are,)352 b(along)h(with)f(the)-30 +62779 y(original)387 b(edition)f(of)i(this)e(book.)-30 +63889 y +SDict begin H.S end + -30 63889 a -30 63889 a +SDict begin 18.2 H.A end + -30 63889 a -30 63889 +a +SDict begin [ /View [/XYZ H.V] /Dest (652) cvn H.B /DEST pdfmark end + -30 63889 a 1679 x FU(One)363 b(may)h(also)f(purchase)g(a)g(box)-23 +b(ed)363 b(set)g(that)g(includes)g(the)g(4)g(discs)g(and)h(a)f(cop)-15 +b(y)363 b(of)g(this)g(book,)-30 67583 y(as)h(well)g(as)f(lots)h(of)g +(neat)g(Slackw)-15 b(are)363 b(gear)h(to)f(sho)-39 b(w)364 +b(of)-39 b(f)364 b(your)g(geek)g(pride.)g(CD)f(subscriptions)p +Black -30 73672 a +SDict begin H.S end + -30 73672 a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 a +-30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (656) cvn H.B /DEST pdfmark end + -30 73672 a 50226 74722 a FR(15)p Black eop +end +%%Page: 16 38 +TeXDict begin 16 37 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.16) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(3)g(Installation)p +Black -30 3490 a FU(are)h(a)-31 b(v)-39 b(ailable)387 +b(at)g(a)h(reduced)f(rate)h(also.)-30 3505 y +SDict begin H.S end + -30 3505 +a -30 3505 a +SDict begin 18.2 H.A end + -30 3505 a -30 3505 a +SDict begin [ /View [/XYZ H.V] /Dest (653) cvn H.B /DEST pdfmark end + -30 3505 a 2775 x +FU(The)302 b(preferred)f(method)g(for)h(shopping)f(for)g(Slackw)-15 +b(are)301 b(merchandise)g(is)g(online)g(at)h(the)f(Slack-)-30 +8294 y(w)-15 b(are)387 b(store.)-30 9085 y +SDict begin H.S end + -30 9085 a +-30 9085 a +SDict begin 18.2 H.A end + -30 9085 a -30 9085 a +SDict begin [ /View [/XYZ H.V] /Dest (657) cvn H.B /DEST pdfmark end + -30 9085 a 0 1 0 0 TeXcolorcmyk +-30 11438 a +SDict begin H.S end + -30 11438 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(s)l(t) +l(o)l(r)l(e)l(.)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)p +0 1 0 0 TeXcolorcmyk 21004 9977 a +SDict begin H.R end + 21004 9977 a 21004 +11084 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://store.slackware.com) >> /Subtype /Link H.B /ANN pdfmark +end + 21004 11084 a Black -30 12213 a +SDict begin H.S end + -30 12213 a -30 +12213 a +SDict begin 18.2 H.A end + -30 12213 a -30 12213 a +SDict begin [ /View [/XYZ H.V] /Dest (659) cvn H.B /DEST pdfmark end + -30 12213 a 1661 x FU(Y)-170 +b(ou)387 b(can)g(also)g(call)g(or)h(e-mail)f(your)g(order)g(in.)-30 +14209 y +SDict begin H.S end + -30 14209 a -30 14209 a +SDict begin 18.2 H.A end + -30 14209 a -30 14209 +a +SDict begin [ /View [/XYZ H.V] /Dest (660) cvn H.B /DEST pdfmark end + -30 14209 a 4004 x FX(T)-143 b(able)387 b(3-1.)h(Slackwar)-28 +b(e)386 b(Linux,)h(Inc.)g(Contact)g(Inf)-39 b(ormation)-30 +20032 y +SDict begin H.S end + -30 20032 a -30 20032 a +SDict begin 18.2 H.A end + -30 20032 a -30 20032 +a +SDict begin [ /View [/XYZ H.V] /Dest (662) cvn H.B /DEST pdfmark end + -30 20032 a -30 20032 a +SDict begin H.S end + -30 20032 a -30 20032 a +SDict begin 18.2 H.A end + -30 +20032 a -30 20032 a +SDict begin [ /View [/XYZ H.V] /Dest (table.4) cvn H.B /DEST pdfmark +end + -30 20032 a 1761 x FE(Method)11759 +b(Contact)430 b(Details)p -30 22170 51806 45 v -30 22170 +V -30 23930 a FU(T)-108 b(elephone)10835 b(1-\(925\))387 +b(674-0783)-30 26027 y(W)-124 b(ebsite)12314 b(http://store.slackw)-15 +b(are.com)-30 28123 y(Email)13566 b(orders@slackw)-15 +b(are.com)-30 30216 y(Postal)13479 b(1164)387 b(Claremont)f(Dri)-39 +b(v)-23 b(e,)388 b(Brentw)-15 b(ood,)386 b(CA)h(94513)-30 +32098 y +SDict begin H.S end + -30 32098 a -30 32098 a +SDict begin 18.2 H.A end + -30 32098 a -30 32098 +a +SDict begin [ /View [/XYZ H.V] /Dest (682) cvn H.B /DEST pdfmark end + -30 32098 a 5185 x FG(Via)517 b(the)h(Internet)-30 +38236 y +SDict begin H.S end + -30 38236 a -30 38236 a +SDict begin 18.2 H.A end + -30 38236 a -30 38236 +a +SDict begin [ /View [/XYZ H.V] /Dest (684) cvn H.B /DEST pdfmark end + -30 38236 a 1992 x FU(Slackw)-15 b(are)502 b(Linux)f(is)h(also)g +(freely)g(a)-31 b(v)-39 b(ailable)503 b(o)-23 b(v)g(er)501 +b(the)h(Internet.)h(Y)-170 b(ou)501 b(may)h(email)g(in)g(your)-30 +42242 y(support)377 b(questions,)f(b)-31 b(ut)377 b(higher)g(priority)g +(will)g(be)g(gi)-39 b(v)-23 b(en)377 b(to)g(those)g(who)g(ha)-31 +b(v)-23 b(e)377 b(purchased)g(the)-30 44257 y(of)-39 +b(\002cial)387 b(CD)g(set.)g(W)-62 b(ith)387 b(that)f(said,)i(we)f(get) +g(a)g(lot)f(of)i(e-mails)e(and)h(our)g(time)g(is)f(rather)i(limited.) +-30 46272 y(Before)f(e-mailing)g(for)g(support)g(consider)g(reading)p +0 TeXcolorgray 28806 46272 a +SDict begin H.S end + 28806 46272 a FU(Chapter)g(2)34875 +46272 y +SDict begin 18.2 H.L end + 34875 46272 a 34875 46272 a +SDict begin [ /Subtype /Link /Dest (HELP) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34875 46272 a Black +387 w FU(\002rst.)-30 47382 y +SDict begin H.S end + -30 47382 a -30 47382 a +SDict begin 18.2 H.A end + +-30 47382 a -30 47382 a +SDict begin [ /View [/XYZ H.V] /Dest (686) cvn H.B /DEST pdfmark end + -30 47382 a 1679 x FU(The)g(of)-39 +b(\002cial)387 b(Slackw)-15 b(are)387 b(Linux)g(Project)g(website)f(is) +h(located)g(at:)-30 50172 y +SDict begin H.S end + -30 50172 a -30 50172 a +SDict begin 18.2 H.A end + -30 +50172 a -30 50172 a +SDict begin [ /View [/XYZ H.V] /Dest (687) cvn H.B /DEST pdfmark end + -30 50172 a 0 1 0 0 TeXcolorcmyk +-30 52205 a +SDict begin H.S end + -30 52205 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(w)l(w) +l(w)l(.)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)p +0 1 0 0 TeXcolorcmyk 20195 50744 a +SDict begin H.R end + 20195 50744 a 20195 +51851 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.slackware.com/) >> /Subtype /Link H.B /ANN pdfmark +end + 20195 51851 a Black -30 52980 a +SDict begin H.S end + -30 52980 a -30 +52980 a +SDict begin 18.2 H.A end + -30 52980 a -30 52980 a +SDict begin [ /View [/XYZ H.V] /Dest (689) cvn H.B /DEST pdfmark end + -30 52980 a 1660 x FU(The)g(primary)g +(FTP)g(location)g(for)g(Slackw)-15 b(are)387 b(Linux)f(is:)-30 +55751 y +SDict begin H.S end + -30 55751 a -30 55751 a +SDict begin 18.2 H.A end + -30 55751 a -30 55751 +a +SDict begin [ /View [/XYZ H.V] /Dest (690) cvn H.B /DEST pdfmark end + -30 55751 a 0 1 0 0 TeXcolorcmyk -30 57784 a +SDict begin H.S end + -30 57784 +a 0 1 0 0 TeXcolorcmyk -354 x FA(ftp://f)n(t)l(p)l(.)l(s)l(l)l(a)l(c)l +(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)l(p)l(u)l(b)l(/)l(s)l(l)l(a)l(c) +l(k)l(w)l(a)l(r)l(e)l(/)p 0 1 0 0 TeXcolorcmyk 30712 +56323 a +SDict begin H.R end + 30712 56323 a 30712 57430 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (ftp://ftp.slackware.com/pub/slackware/) >> /Subtype /Link +H.B /ANN pdfmark end + 30712 57430 a Black +-30 58559 a +SDict begin H.S end + -30 58559 a -30 58559 a +SDict begin 18.2 H.A end + -30 58559 a -30 58559 +a +SDict begin [ /View [/XYZ H.V] /Dest (692) cvn H.B /DEST pdfmark end + -30 58559 a 1660 x FU(Bear)919 b(in)g(mind)f(that)g(our)h(ftp)g +(site,)g(while)f(open)h(for)g(general)g(use,)g(does)g(not)f(ha)-31 +b(v)-23 b(e)-30 62234 y(unlimited)943 b(bandwidth.)i(Please)f(consider) +g(using)g(a)h(mirror)f(near)h(you)f(to)g(do)-39 b(wnload)-30 +64249 y(Slackw)-15 b(are.)1194 b(An)g(incomplete)g(list)f(of)i(mirrors) +f(can)g(be)h(found)f(on)g(our)g(site)g(at)p 0 1 0 0 TeXcolorcmyk +-30 66618 a +SDict begin H.S end + -30 66618 a 0 1 0 0 TeXcolorcmyk -355 x FA(http://)n(w)l(w) +l(w)l(.)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)l(g)l +(e)l(t)l(s)l(l)l(a)l(c)l(k)p 0 1 0 0 TeXcolorcmyk 26667 +65157 a +SDict begin H.R end + 26667 65157 a 26667 66263 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.slackware.com/getslack) >> /Subtype /Link H.B +/ANN pdfmark end + 26667 66263 a Black +FU(.)p Black -30 73672 a FR(16)p Black eop end +%%Page: 17 39 +TeXDict begin 17 38 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.17) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-REQUIREMENTS) cvn +H.B /DEST pdfmark end + -30 2504 a 1628 x FL(3.2)620 b(System)h(Requirements)-30 +4594 y +SDict begin H.S end + -30 4594 a -30 4594 a +SDict begin 18.2 H.A end + -30 4594 a -30 4594 a +SDict begin [ /View [/XYZ H.V] /Dest (696) cvn H.B /DEST pdfmark end + -30 +4594 a -30 5710 a +SDict begin H.S end + -30 5710 a -30 5710 a +SDict begin 18.2 H.A end + -30 5710 a -30 +5710 a +SDict begin [ /View [/XYZ H.V] /Dest (698) cvn H.B /DEST pdfmark end + -30 5710 a 1553 x FU(An)387 b(easy)h(Slackw)-15 +b(are)386 b(installation)g(requires,)i(at)f(minimum,)f(the)35465 +7263 y +SDict begin H.S end + 35465 7263 a 35465 7263 a +SDict begin 18.2 H.A end + 35465 7263 a 35465 7263 +a +SDict begin [ /View [/XYZ H.V] /Dest (699) cvn H.B /DEST pdfmark end + 35465 7263 a 35465 7263 a +SDict begin H.S end + 35465 7263 a 35465 7263 a +SDict begin 18.2 H.A end + +35465 7263 a 35465 7263 a +SDict begin [ /View [/XYZ H.V] /Dest (702) cvn H.B /DEST pdfmark end + 35465 7263 a 387 w FU(follo)-39 +b(wing:)-30 7598 y +SDict begin H.S end + -30 7598 a -30 7598 a +SDict begin 18.2 H.A end + -30 7598 a -30 +7598 a +SDict begin [ /View [/XYZ H.V] /Dest (705) cvn H.B /DEST pdfmark end + -30 7598 a 4004 x FX(T)-143 b(able)387 b(3-2.)h(System)f(Requir) +-28 b(ements)-30 13466 y +SDict begin H.S end + -30 13466 a -30 13466 a +SDict begin 18.2 H.A end + -30 +13466 a -30 13466 a +SDict begin [ /View [/XYZ H.V] /Dest (707) cvn H.B /DEST pdfmark end + -30 13466 a -30 13466 a +SDict begin H.S end + -30 13466 +a -30 13466 a +SDict begin 18.2 H.A end + -30 13466 a -30 13466 a +SDict begin [ /View [/XYZ H.V] /Dest (table.5) cvn H.B /DEST pdfmark +end + -30 13466 a 1761 +x FE(Har)d(d)-23 b(ware)18893 b(Requirement)p -30 15604 +51806 45 v -30 15604 V -30 17364 a FU(Processor)19877 +b(586)-30 19458 y(RAM)22372 b(32)387 b(MB)-30 21551 y(Disk)g(Space) +18887 b(1GB)-30 23647 y(Media)387 b(Dri)-39 b(v)-23 b(e)18089 +b(4x)387 b(CD-R)-62 b(OM)-30 25529 y +SDict begin H.S end + -30 25529 a -30 +25529 a +SDict begin 18.2 H.A end + -30 25529 a -30 25529 a +SDict begin [ /View [/XYZ H.V] /Dest (725) cvn H.B /DEST pdfmark end + -30 25529 a 1682 x FU(If)430 +b(you)f(ha)-31 b(v)-23 b(e)429 b(the)h(bootable)e(CD,)i(you)f(will)g +(probably)g(not)g(need)h(a)f(\003opp)-15 b(y)428 b(dri)-39 +b(v)-23 b(e.)430 b(Of)g(course,)-30 29226 y(it)356 b(stands)g(to)f +(reason)h(that)g(if)g(you)g(don')-28 b(t)356 b(possess)f(a)i(CD-R)-62 +b(OM)355 b(dri)-39 b(v)-23 b(e,)356 b(you)g(will)g(need)g(a)g(\003opp) +-15 b(y)-30 31241 y(dri)-39 b(v)-23 b(e)408 b(to)g(do)g(a)7761 +31241 y +SDict begin H.S end + 7761 31241 a 7761 31241 a +SDict begin 18.2 H.A end + 7761 31241 a 7761 31241 +a +SDict begin [ /View [/XYZ H.V] /Dest (726) cvn H.B /DEST pdfmark end + 7761 31241 a 7761 31241 a +SDict begin H.S end + 7761 31241 a 7761 31241 a +SDict begin 18.2 H.A end + +7761 31241 a 7761 31241 a +SDict begin [ /View [/XYZ H.V] /Dest (728) cvn H.B /DEST pdfmark end + 7761 31241 a 409 w FU(netw)-15 +b(ork)407 b(install.)h(A)g(netw)-15 b(ork)407 b(card)i(is)f(required)g +(for)g(an)h(NFS)e(install.)h(See)g(the)-30 33255 y(section)387 +b(called)g(NFS)g(for)g(more)g(information.)-30 34046 +y +SDict begin H.S end + -30 34046 a -30 34046 a +SDict begin 18.2 H.A end + -30 34046 a -30 34046 a +SDict begin [ /View [/XYZ H.V] /Dest (731) cvn H.B /DEST pdfmark end + -30 +34046 a 1999 x FU(The)315 b(disk)f(space)g(requirement)g(is)g(some)-39 +b(what)314 b(trick)-23 b(y)-101 b(.)315 b(The)f(1GB)g(recommendation)f +(is)i(usually)-30 38060 y(safe)588 b(for)g(a)h(minimal)d(install,)i(b) +-31 b(ut)588 b(if)g(you)f(do)h(a)h(full)e(install,)h(you)g(will)f(need) +h(around)g(tw)-15 b(o)-30 40074 y(gig)-8 b(abytes)371 +b(of)f(a)-31 b(v)-39 b(ailable)371 b(hard)g(disk)g(space)g(plus)f +(additional)g(space)h(for)g(personal)f(\002les..)i(Most)-30 +42089 y(users)493 b(don')-28 b(t)494 b(do)f(a)h(full)f(install.)g(In)h +(f)-15 b(act,)494 b(man)-23 b(y)493 b(run)g(Slackw)-15 +b(are)493 b(on)g(as)h(little)f(as)g(100MB)g(of)-30 44104 +y(hard)387 b(disk)g(space.)-30 44439 y +SDict begin H.S end + -30 44439 a -30 +44439 a +SDict begin 18.2 H.A end + -30 44439 a -30 44439 a +SDict begin [ /View [/XYZ H.V] /Dest (732) cvn H.B /DEST pdfmark end + -30 44439 a -30 45214 +a +SDict begin H.S end + -30 45214 a -30 45214 a +SDict begin 18.2 H.A end + -30 45214 a -30 45214 a +SDict begin [ /View [/XYZ H.V] /Dest (735) cvn H.B /DEST pdfmark end + -30 +45214 a 1679 x FU(Slackw)-15 b(are)643 b(can)g(be)h(installed)e(to)h +(systems)g(with)g(less)g(RAM,)g(smaller)g(hard)h(dri)-39 +b(v)-23 b(es,)643 b(and)-30 48908 y(weak)-15 b(er)601 +b(CPUs,)f(b)-31 b(ut)601 b(doing)f(so)h(will)g(require)g(a)g(little)f +(elbo)-39 b(w)601 b(grease.)g(If)g(you')-77 b(re)601 +b(up)g(for)g(a)-30 50923 y(little)401 b(w)-15 b(ork,)402 +b(tak)-15 b(e)401 b(a)h(look)g(at)g(the)18205 50923 y +SDict begin H.S end + +18205 50923 a 18205 50923 a +SDict begin 18.2 H.A end + 18205 50923 a 18205 50923 +a +SDict begin [ /View [/XYZ H.V] /Dest (736) cvn H.B /DEST pdfmark end + 18205 50923 a FQ(LOWMEM.TXT)396 b FU(\002le)401 b(in)h(the)g(distrib) +-31 b(ution)400 b(tree)i(for)g(a)g(fe)-39 b(w)402 b(helpful)-30 +52937 y(hints.)-30 52952 y +SDict begin H.S end + -30 52952 a -30 52952 a +SDict begin 18.2 H.A end + -30 +52952 a -30 52952 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-SOFTWARE-SERIES) +cvn H.B /DEST pdfmark end + -30 52952 a 5347 x FG(The)518 b(Software)g(Series) +-30 58322 y +SDict begin H.S end + -30 58322 a -30 58322 a +SDict begin 18.2 H.A end + -30 58322 a -30 58322 +a +SDict begin [ /View [/XYZ H.V] /Dest (739) cvn H.B /DEST pdfmark end + -30 58322 a -30 59252 a +SDict begin H.S end + -30 59252 a -30 59252 a +SDict begin 18.2 H.A end + -30 +59252 a -30 59252 a +SDict begin [ /View [/XYZ H.V] /Dest (742) cvn H.B /DEST pdfmark end + -30 59252 a 1992 x FU(F)-23 b(or)426 +b(reasons)h(of)g(simplicity)-101 b(,)426 b(Slackw)-15 +b(are)426 b(has)h(historically)f(been)h(di)-39 b(vided)426 +b(into)h(softw)-15 b(are)426 b(se-)-30 63258 y(ries.)461 +b(Once)f(called)10947 63258 y +SDict begin H.S end + 10947 63258 a 10947 63258 +a +SDict begin 18.2 H.A end + 10947 63258 a 10947 63258 a +SDict begin [ /View [/XYZ H.V] /Dest (743) cvn H.B /DEST pdfmark end + 10947 63258 a FU(\223disk)g(sets\224)g +(because)g(the)-23 b(y)460 b(were)h(designed)e(for)i(\003opp)-15 +b(y-based)459 b(installa-)-30 65273 y(tion,)389 b(the)g(softw)-15 +b(are)389 b(series)g(are)h(no)-39 b(w)389 b(used)g(primarily)f(to)h +(cate)-23 b(gorize)389 b(the)g(packages)h(included)-30 +67288 y(in)d(Slackw)-15 b(are.)387 b(T)-124 b(oday)-101 +b(,)388 b(\003opp)-15 b(y)386 b(installation)g(is)h(no)g(longer)g +(possible.)p Black 50169 73792 a FR(17)p Black eop end +%%Page: 18 40 +TeXDict begin 18 39 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.18) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (744) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(The)g(follo)-39 b(wing)387 +b(is)g(a)h(brief)f(description)f(of)i(each)f(softw)-15 +b(are)387 b(series.)-30 3947 y +SDict begin H.S end + -30 3947 a -30 3947 a +SDict begin 18.2 H.A end + +-30 3947 a -30 3947 a +SDict begin [ /View [/XYZ H.V] /Dest (745) cvn H.B /DEST pdfmark end + -30 3947 a 4003 x FX(T)-143 b(able)387 +b(3-3.)h(Softwar)-28 b(e)387 b(Series)-30 9519 y +SDict begin H.S end + -30 +9519 a -30 9519 a +SDict begin 18.2 H.A end + -30 9519 a -30 9519 a +SDict begin [ /View [/XYZ H.V] /Dest (747) cvn H.B /DEST pdfmark end + -30 9519 a -30 +9519 a +SDict begin H.S end + -30 9519 a -30 9519 a +SDict begin 18.2 H.A end + -30 9519 a -30 9519 a +SDict begin [ /View [/XYZ H.V] /Dest (table.6) cvn H.B /DEST pdfmark +end + -30 +9519 a 1761 x FE(Series)5707 b(Contents)p -30 11656 51806 +45 v -30 11656 V -30 13417 a FU(A)9242 b(The)388 b(base)f(system.)g +(Contains)f(enough)h(softw)-15 b(are)387 b(to)g(get)g(up)g(and)g +(running)10331 15432 y(and)h(ha)-31 b(v)-23 b(e)387 b(a)g(te)-23 +b(xt)387 b(editor)g(and)g(basic)g(communication)f(program.)-30 +17528 y(AP)8380 b(V)-172 b(arious)387 b(applications)f(that)h(do)h(not) +f(require)g(the)g(X)g(W)-62 b(indo)-39 b(w)387 b(System.)-30 +19625 y(D)9242 b(Program)387 b(de)-39 b(v)-23 b(elopment)386 +b(tools.)h(Compilers,)g(deb)-31 b(uggers,)387 b(interpreters,)10331 +21639 y(and)h(man)f(pages)g(are)g(all)h(here.)-30 23736 +y(E)9414 b(GNU)387 b(Emacs.)-30 25829 y(F)9499 b(F)-115 +b(A)-85 b(Qs,)388 b(HO)-54 b(WT)-28 b(Os,)387 b(and)g(other)g +(miscellaneous)f(documentation.)-30 27922 y(GNOME)4679 +b(The)388 b(GNOME)e(desktop)h(en)-62 b(vironment.)-30 +30018 y(K)9242 b(The)388 b(source)f(code)g(for)h(the)f(Linux)f(k)-15 +b(ernel.)-30 32111 y(KDE)7176 b(The)388 b(K)f(Desktop)g(En)-62 +b(vironment.)386 b(An)h(X)h(en)-62 b(vironment)386 b(which)h(shares)g +(a)10331 34126 y(lot)g(of)h(look-and-feel)e(features)i(with)f(MacOS)f +(and)i(W)-62 b(indo)-39 b(ws.)387 b(The)g(Qt)10331 36141 +y(library)-101 b(,)388 b(which)f(KDE)g(requires,)h(is)f(also)g(in)g +(this)g(series.)-30 38237 y(KDEI)6660 b(Internationalization)386 +b(packages)h(for)h(the)f(KDE)g(desktop.)-30 40333 y(L)9414 +b(Libraries.)388 b(Dynamically)e(link)-15 b(ed)386 b(libraries)h +(required)g(by)g(man)-23 b(y)387 b(other)10331 42348 +y(programs.)-30 44445 y(N)9242 b(Netw)-15 b(orking)386 +b(programs.)h(Daemons,)h(mail)e(programs,)i(telnet,)f(ne)-39 +b(ws)10331 46459 y(readers,)388 b(and)f(so)h(on.)-30 +48552 y(T)9414 b(teT)-108 b(eX)387 b(document)g(formatting)f(system.) +-30 50649 y(TCL)7433 b(The)388 b(T)-124 b(ool)386 b(Command)h +(Language.)g(Tk,)h(TclX,)f(and)h(TkDesk.)-30 52745 y(X)9242 +b(The)388 b(base)f(X)g(W)-62 b(indo)-39 b(w)387 b(System.)-30 +54842 y(XAP)7261 b(X)388 b(Applications)e(that)h(are)g(not)g(part)h(of) +f(a)g(major)g(desktop)g(en)-62 b(vironment)10331 56856 +y(\(for)388 b(e)-23 b(xample,)387 b(Ghostscript)f(and)h(Netscape\).)-30 +58953 y(Y)9242 b(BSD)387 b(Console)f(g)-8 b(ames)-30 +60838 y +SDict begin H.S end + -30 60838 a -30 60838 a +SDict begin 18.2 H.A end + -30 60838 a -30 60838 +a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-METHODS) cvn H.B +/DEST pdfmark end + -30 60838 a Black 12954 x FR(18)p Black eop end +%%Page: 19 41 +TeXDict begin 19 40 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.19) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p +Black -30 3861 a FG(Installation)518 b(Methods)-30 3884 +y +SDict begin H.S end + -30 3884 a -30 3884 a +SDict begin 18.2 H.A end + -30 3884 a -30 3884 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-INSTALLATION-METHODS-FLOPPY) +cvn H.B /DEST pdfmark end + -30 3884 +a 4704 x FE(Flopp)-23 b(y)-30 8908 y +SDict begin H.S end + -30 8908 a -30 8908 +a +SDict begin 18.2 H.A end + -30 8908 a -30 8908 a +SDict begin [ /View [/XYZ H.V] /Dest (807) cvn H.B /DEST pdfmark end + -30 8908 a -30 9683 a +SDict begin H.S end + -30 9683 +a -30 9683 a +SDict begin 18.2 H.A end + -30 9683 a -30 9683 a +SDict begin [ /View [/XYZ H.V] /Dest (810) cvn H.B /DEST pdfmark end + -30 9683 a 1694 x +FU(While)308 b(it)h(w)-15 b(as)308 b(once)h(possible)f(to)g(install)g +(all)g(of)h(Slackw)-15 b(are)308 b(Linux)g(from)h(\003opp)-15 +b(y)307 b(disks,)i(the)f(in-)-30 13392 y(creasing)336 +b(size)h(of)g(softw)-15 b(are)336 b(packages)g(\(indeed,)h(of)f(some)h +(indi)-39 b(vidual)335 b(programs\))h(has)h(forced)-30 +15406 y(the)408 b(abandonment)g(of)g(the)h(\003opp)-15 +b(y)407 b(install.)h(As)g(late)h(as)f(Slackw)-15 b(are)408 +b(v)-23 b(ersion)408 b(7.1)g(a)h(partial)f(in-)-30 17421 +y(stall)495 b(w)-15 b(as)496 b(possible)f(using)g(\003opp)-15 +b(y)494 b(disks.)i(The)g(A)f(and)h(N)g(series)f(could)h(be)g(nearly)f +(entirely)-30 19436 y(installed,)446 b(pro)-23 b(viding)445 +b(a)h(base)g(system)f(from)h(which)g(to)g(install)f(the)h(rest)g(of)g +(the)g(distrib)-31 b(ution.)-30 21450 y(If)481 b(you)g(are)h +(considering)e(a)h(\003opp)-15 b(y)480 b(install)h(\(typically)f(on)h +(older)g(hardw)-15 b(are\),)481 b(it)g(is)g(typically)-30 +23465 y(recommended)338 b(to)h(\002nd)g(another)g(w)-15 +b(ay)-101 b(,)339 b(or)g(use)g(an)g(older)g(release.)h(Slackw)-15 +b(are)338 b(4.0)h(is)g(still)f(v)-23 b(ery)-30 25480 +y(popular)387 b(for)g(this)g(reason,)h(as)f(is)g(7.0.)-30 +26590 y +SDict begin H.S end + -30 26590 a -30 26590 a +SDict begin 18.2 H.A end + -30 26590 a -30 26590 +a +SDict begin [ /View [/XYZ H.V] /Dest (811) cvn H.B /DEST pdfmark end + -30 26590 a 1679 x FU(Please)474 b(note)g(that)g(\003opp)-15 +b(y)473 b(disks)h(are)g(still)g(required)g(for)h(a)f(CD-R)-62 +b(OM)473 b(install)h(if)g(you)g(do)g(not)-30 30284 y(ha)-31 +b(v)-23 b(e)387 b(a)h(bootable)e(CD,)i(as)f(well)g(as)h(for)f(an)g(NFS) +g(install.)-30 31283 y +SDict begin H.S end + -30 31283 a -30 31283 a +SDict begin 18.2 H.A end + -30 31283 +a -30 31283 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-INSTALLLATION-METHODS-CDROM) +cvn H.B /DEST pdfmark end + -30 31283 a 4890 x FE(CD-R)-31 b(OM)-30 +36192 y +SDict begin H.S end + -30 36192 a -30 36192 a +SDict begin 18.2 H.A end + -30 36192 a -30 36192 +a +SDict begin [ /View [/XYZ H.V] /Dest (814) cvn H.B /DEST pdfmark end + -30 36192 a -30 36967 a +SDict begin H.S end + -30 36967 a -30 36967 a +SDict begin 18.2 H.A end + -30 +36967 a -30 36967 a +SDict begin [ /View [/XYZ H.V] /Dest (817) cvn H.B /DEST pdfmark end + -30 36967 a 1995 x FU(If)329 b(you)e(ha)-31 +b(v)-23 b(e)328 b(the)h(bootable)e(CD,)h(a)-31 b(v)-39 +b(ailable)329 b(in)f(the)g(of)-39 b(\002cial)328 b(disc)f(set)h +(published)g(by)g(Slackw)-15 b(are)-30 40977 y(Linux,)426 +b(Inc.)i(\(see)e(the)h(section)e(called)i(Getting)f(Slackw)-15 +b(are\),)426 b(a)g(CD-based)g(installation)f(will)-30 +42992 y(be)337 b(a)g(bit)f(simpler)g(for)g(you.)h(If)g(not,)g(you)f +(will)g(need)h(to)f(boot)g(from)h(\003oppies.)f(Also,)g(if)h(you)f(ha) +-31 b(v)-23 b(e)-30 45006 y(special)297 b(hardw)-15 b(are)297 +b(that)g(mak)-15 b(es)296 b(usage)h(of)g(the)g(k)-15 +b(ernel)297 b(on)g(the)g(bootable)g(CD)f(problematic,)h(you)-30 +47021 y(may)387 b(need)h(to)f(use)g(specialized)g(\003oppies.)-30 +48132 y +SDict begin H.S end + -30 48132 a -30 48132 a +SDict begin 18.2 H.A end + -30 48132 a -30 48132 +a +SDict begin [ /View [/XYZ H.V] /Dest (818) cvn H.B /DEST pdfmark end + -30 48132 a 1679 x FU(As)469 b(of)f(Slackw)-15 b(are)468 +b(v)-23 b(ersion)468 b(8.1,)i(a)e(ne)-39 b(w)469 b(method)f(is)h(used)f +(for)h(creating)f(the)h(bootable)f(CDs,)-30 51825 y(which)461 +b(does)g(not)g(w)-15 b(ork)461 b(as)g(well)g(with)g(certain)g(\003ak) +-23 b(y)461 b(BIOS)f(chips)h(\(it)g(is)g(w)-15 b(orth)461 +b(noting)f(that)-30 53840 y(most)437 b(all)h(Linux)f(CDs)g(suf)-39 +b(fer)438 b(from)f(this)g(these)h(days\).)g(If)f(that)h(is)f(the)h +(case,)g(we)g(recommend)-30 55855 y(booting)387 b(from)g(a)g(\003opp) +-15 b(y)386 b(disk.)-30 56965 y +SDict begin H.S end + -30 56965 a -30 56965 +a +SDict begin 18.2 H.A end + -30 56965 a -30 56965 a +SDict begin [ /View [/XYZ H.V] /Dest (819) cvn H.B /DEST pdfmark end + -30 56965 a 0 TeXcolorgray +-30 58644 a +SDict begin H.S end + -30 58644 a FU(Section)h(3.2.3)8106 58644 +y +SDict begin 18.2 H.L end + 8106 58644 a 8106 58644 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-INSTALLATION-METHODS-BOOTDISK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8106 58644 a Black 441 w +FU(and)p 0 TeXcolorgray 11225 58644 a +SDict begin H.S end + 11225 58644 a FU(Section)g(3.2.5) +19361 58644 y +SDict begin 18.2 H.L end + 19361 58644 a 19361 58644 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-SUPPLEMENTAL-DISK) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 19361 58644 +a Black 440 w FU(pro)-23 b(vide)440 b(information)f(on)i(choosing)e +(and)h(creating)g(\003op-)-30 60659 y(pies)387 b(from)g(which)g(to)g +(boot,)h(should)e(this)h(be)g(necessary)-101 b(.)-30 +61769 y +SDict begin H.S end + -30 61769 a -30 61769 a +SDict begin 18.2 H.A end + -30 61769 a -30 61769 +a +SDict begin [ /View [/XYZ H.V] /Dest (822) cvn H.B /DEST pdfmark end + -30 61769 a Black 50226 73792 a FR(19)p Black eop end +%%Page: 20 42 +TeXDict begin 20 41 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.20) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p +Black -30 3635 a FE(NFS)-30 3654 y +SDict begin H.S end + -30 3654 a -30 3654 +a +SDict begin 18.2 H.A end + -30 3654 a -30 3654 a +SDict begin [ /View [/XYZ H.V] /Dest (824) cvn H.B /DEST pdfmark end + -30 3654 a -30 4429 a +SDict begin H.S end + -30 4429 +a -30 4429 a +SDict begin 18.2 H.A end + -30 4429 a -30 4429 a +SDict begin [ /View [/XYZ H.V] /Dest (827) cvn H.B /DEST pdfmark end + -30 4429 a 1995 x +FU(NFS)423 b(\(the)g(Netw)-15 b(ork)422 b(File)h(System\))g(is)g(a)g(w) +-15 b(ay)423 b(of)g(making)g(\002lesystems)f(a)-31 b(v)-39 +b(ailable)423 b(to)g(remote)-30 8439 y(machines.)351 +b(An)f(NFS)g(install)g(allo)-39 b(ws)351 b(you)f(to)h(install)f(Slackw) +-15 b(are)350 b(from)g(another)h(computer)f(on)-30 10454 +y(your)520 b(netw)-15 b(ork.)520 b(The)g(machine)f(from)h(which)g(you)g +(are)g(installing)f(needs)h(to)f(be)i(con\002gured)-30 +12468 y(to)452 b(e)-23 b(xport)451 b(the)h(Slackw)-15 +b(are)451 b(distrib)-31 b(ution)450 b(tree)i(to)g(the)g(machine)f(to)h +(which)f(you')-77 b(re)452 b(installing.)-30 14483 y(This,)387 +b(of)h(course,)f(in)-62 b(v)-31 b(olv)-23 b(es)387 b(some)g(kno)-39 +b(wledge)387 b(of)g(NFS,)g(which)g(is)g(co)-23 b(v)g(ered)387 +b(in)p 0 TeXcolorgray 44060 14483 a +SDict begin H.S end + 44060 14483 a FU(Section)g(5.6) +51034 14483 y +SDict begin 18.2 H.L end + 51034 14483 a 51034 14483 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51034 14483 +a Black FU(.)-30 14818 y +SDict begin H.S end + -30 14818 a -30 14818 a +SDict begin 18.2 H.A end + -30 +14818 a -30 14818 a +SDict begin [ /View [/XYZ H.V] /Dest (829) cvn H.B /DEST pdfmark end + -30 14818 a -30 15593 a +SDict begin H.S end + -30 15593 +a -30 15593 a +SDict begin 18.2 H.A end + -30 15593 a -30 15593 a +SDict begin [ /View [/XYZ H.V] /Dest (832) cvn H.B /DEST pdfmark end + -30 15593 a 1679 +x FU(It)495 b(is)g(possible)g(to)g(perform)g(an)g(NFS)g(install)f(via)i +(such)f(methods)f(as)h(PLIP)g(\(o)-23 b(v)g(er)495 b(a)g(parallel)-30 +19287 y(port\),)461 b(SLIP)-172 b(,)461 b(and)f(PPP)g(\(though)g(not)h +(o)-23 b(v)g(er)460 b(a)h(modem)f(connection\).)h(Ho)-39 +b(we)g(v)-23 b(er)-62 b(,)461 b(we)g(recom-)-30 21302 +y(mend)374 b(the)f(use)h(of)g(a)g(netw)-15 b(ork)373 +b(card)h(if)g(a)-31 b(v)-39 b(ailable.)375 b(After)f(all,)g(installing) +e(an)i(operating)g(system)-30 23316 y(through)387 b(your)g(printer)g +(port)g(is)g(going)g(to)g(be)g(a)h(v)-23 b(ery)-101 b(,)388 +b(v)-23 b(ery)387 b(slo)-39 b(w)387 b(process.)-30 25977 +y +SDict begin H.S end + -30 25977 a -30 25977 a +SDict begin 18.2 H.A end + -30 25977 a -30 25977 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-INSTALLATION-METHODS-BOOTDISK) +cvn H.B /DEST pdfmark end + -30 +25977 a 5181 x FG(Boot)518 b(Disk)-30 31181 y +SDict begin H.S end + -30 31181 +a -30 31181 a +SDict begin 18.2 H.A end + -30 31181 a -30 31181 a +SDict begin [ /View [/XYZ H.V] /Dest (835) cvn H.B /DEST pdfmark end + -30 31181 a -30 +32111 a +SDict begin H.S end + -30 32111 a -30 32111 a +SDict begin 18.2 H.A end + -30 32111 a -30 32111 +a +SDict begin [ /View [/XYZ H.V] /Dest (838) cvn H.B /DEST pdfmark end + -30 32111 a 1992 x FU(The)446 b(boot)f(disk)g(is)h(the)g(\003opp)-15 +b(y)444 b(you)i(actually)f(boot)g(from)h(to)g(be)-23 +b(gin)445 b(the)g(installation.)g(It)h(con-)-30 36117 +y(tains)339 b(a)g(compressed)f(k)-15 b(ernel)338 b(image)h(which)f(is)h +(used)g(to)f(control)h(the)g(hardw)-15 b(are)338 b(during)h(instal-)-30 +38132 y(lation.)347 b(Therefore,)h(it)f(is)g(v)-23 b(ery)347 +b(much)g(required)g(\(unless)g(you')-77 b(re)346 b(booting)h(from)g +(CD,)g(as)g(is)g(dis-)-30 40147 y(cussed)412 b(in)g(the)g(section)g +(called)g(CD-R)-62 b(OM\).)412 b(The)g(boot)g(disks)g(are)g(located)g +(in)g(the)45512 40147 y +SDict begin H.S end + 45512 40147 a 45512 40147 a +SDict begin 18.2 H.A end + 45512 +40147 a 45512 40147 a +SDict begin [ /View [/XYZ H.V] /Dest (839) cvn H.B /DEST pdfmark end + 45512 40147 a FQ(bootdisks/)-30 +42161 y FU(directory)387 b(in)g(the)g(distrib)-31 b(ution)386 +b(tree.)-30 43272 y +SDict begin H.S end + -30 43272 a -30 43272 a +SDict begin 18.2 H.A end + -30 43272 +a -30 43272 a +SDict begin [ /View [/XYZ H.V] /Dest (840) cvn H.B /DEST pdfmark end + -30 43272 a 1679 x FU(There)421 b(are)g(more)g(Slackw)-15 +b(are)419 b(boot)i(disks)f(than)g(you)h(can)g(shak)-15 +b(e)420 b(a)h(stick)f(at)h(\(which)f(is)h(to)f(say)-30 +46966 y(about)465 b(16\).)h(A)f(complete)g(list)f(of)i(boot)f(disks,)g +(with)g(a)g(description)g(of)g(each,)h(is)f(a)-31 b(v)-39 +b(ailable)465 b(in)-30 48980 y(the)299 b(Slackw)-15 b(are)298 +b(distrib)-31 b(ution)297 b(tree)i(in)f(the)h(\002le)24914 +48980 y +SDict begin H.S end + 24914 48980 a 24914 48980 a +SDict begin 18.2 H.A end + 24914 48980 a 24914 +48980 a +SDict begin [ /View [/XYZ H.V] /Dest (841) cvn H.B /DEST pdfmark end + 24914 48980 a FQ(bootdisks/README.TXT)p FU(.)287 +b(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)299 b(most)f(people)-30 +50995 y(are)485 b(able)f(to)h(use)f(the)12033 50995 y +SDict begin H.S end + +12033 50995 a 12033 50995 a +SDict begin 18.2 H.A end + 12033 50995 a 12033 50995 +a +SDict begin [ /View [/XYZ H.V] /Dest (842) cvn H.B /DEST pdfmark end + 12033 50995 a FQ(bare.i)c FU(\(for)485 b(IDE)g(de)-39 +b(vices\))484 b(or)29535 50995 y +SDict begin H.S end + 29535 50995 a 29535 +50995 a +SDict begin 18.2 H.A end + 29535 50995 a 29535 50995 a +SDict begin [ /View [/XYZ H.V] /Dest (843) cvn H.B /DEST pdfmark end + 29535 50995 a FQ(scsi.s)d +FU(\(for)j(SCSI)g(de)-39 b(vices\))484 b(boot)g(disk)-30 +53010 y(image.)-30 54120 y +SDict begin H.S end + -30 54120 a -30 54120 a +SDict begin 18.2 H.A end + -30 +54120 a -30 54120 a +SDict begin [ /View [/XYZ H.V] /Dest (844) cvn H.B /DEST pdfmark end + -30 54120 a 1679 x FU(See)p 0 TeXcolorgray +2595 55799 a +SDict begin H.S end + 2595 55799 a FU(Section)387 b(3.2.6)10731 +55799 y +SDict begin 18.2 H.L end + 10731 55799 a 10731 55799 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-MAKING-THE-DISKS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 10731 55799 a Black +388 w FU(for)g(instructions)f(on)h(making)g(a)h(disk)e(from)i(an)f +(image.)-30 56909 y +SDict begin H.S end + -30 56909 a -30 56909 a +SDict begin 18.2 H.A end + -30 56909 +a -30 56909 a +SDict begin [ /View [/XYZ H.V] /Dest (846) cvn H.B /DEST pdfmark end + -30 56909 a 1680 x FU(After)376 b(booting,)g(you)g(will)g +(be)h(prompted)e(to)h(insert)g(the)h(root)f(disk.)g(W)-124 +b(e)376 b(recommend)g(that)g(you)-30 60603 y(just)387 +b(humor)g(the)g(boot)g(disk)g(and)g(play)g(along.)-30 +61714 y +SDict begin H.S end + -30 61714 a -30 61714 a +SDict begin 18.2 H.A end + -30 61714 a -30 61714 +a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-INSTALLATION-METHODS-ROOTDISK) +cvn H.B /DEST pdfmark end + -30 61714 a Black 12078 x FR(20)p Black eop end +%%Page: 21 43 +TeXDict begin 21 42 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.21) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p +Black -30 3861 a FG(Root)518 b(Disk)-30 3884 y +SDict begin H.S end + -30 3884 +a -30 3884 a +SDict begin 18.2 H.A end + -30 3884 a -30 3884 a +SDict begin [ /View [/XYZ H.V] /Dest (849) cvn H.B /DEST pdfmark end + -30 3884 a -30 4814 +a +SDict begin H.S end + -30 4814 a -30 4814 a +SDict begin 18.2 H.A end + -30 4814 a -30 4814 a +SDict begin [ /View [/XYZ H.V] /Dest (852) cvn H.B /DEST pdfmark end + -30 4814 +a 1991 x FU(The)601 b(root)g(disks)f(contain)h(the)g(setup)f(program)h +(and)g(a)g(\002lesystem)f(which)h(is)g(used)f(during)-30 +8820 y(installation.)496 b(The)-23 b(y)497 b(are)h(also)f(required.)h +(The)f(root)g(disk)g(images)g(are)g(located)h(in)f(the)g(direc-)-30 +10835 y(tory)466 b(rootdisks)e(in)i(the)g(distrib)-31 +b(ution)464 b(tree.)i(Y)-170 b(ou')-15 b(ll)465 b(ha)-31 +b(v)-23 b(e)465 b(to)h(mak)-15 b(e)465 b(tw)-15 b(o)465 +b(root)g(disks)h(from)f(the)-30 12849 y +SDict begin H.S end + -30 12849 a -30 +12849 a +SDict begin 18.2 H.A end + -30 12849 a -30 12849 a +SDict begin [ /View [/XYZ H.V] /Dest (853) cvn H.B /DEST pdfmark end + -30 12849 a FQ(install.1)476 +b FU(and)8809 12849 y +SDict begin H.S end + 8809 12849 a 8809 12849 a +SDict begin 18.2 H.A end + 8809 +12849 a 8809 12849 a +SDict begin [ /View [/XYZ H.V] /Dest (854) cvn H.B /DEST pdfmark end + 8809 12849 a FQ(install.2)g FU(images.)481 +b(Here)h(you)f(can)h(also)f(\002nd)g(the)37366 12849 +y +SDict begin H.S end + 37366 12849 a 37366 12849 a +SDict begin 18.2 H.A end + 37366 12849 a 37366 12849 +a +SDict begin [ /View [/XYZ H.V] /Dest (855) cvn H.B /DEST pdfmark end + 37366 12849 a FQ(network.dsk)p FU(,)45125 12849 y +SDict begin H.S end + 45125 +12849 a 45125 12849 a +SDict begin 18.2 H.A end + 45125 12849 a 45125 12849 a +SDict begin [ /View [/XYZ H.V] /Dest (856) cvn H.B /DEST pdfmark end + 45125 +12849 a FQ(pcmcia.dsk)p FU(,)-30 14864 y +SDict begin H.S end + -30 14864 a +-30 14864 a +SDict begin 18.2 H.A end + -30 14864 a -30 14864 a +SDict begin [ /View [/XYZ H.V] /Dest (857) cvn H.B /DEST pdfmark end + -30 14864 a FQ(rescue.dsk)p +FU(,)382 b(and)9634 14864 y +SDict begin H.S end + 9634 14864 a 9634 14864 a +SDict begin 18.2 H.A end + +9634 14864 a 9634 14864 a +SDict begin [ /View [/XYZ H.V] /Dest (858) cvn H.B /DEST pdfmark end + 9634 14864 a FQ(sbootmgr.dsk)e +FU(disks.)-30 15908 y +SDict begin H.S end + -30 15908 a -30 15908 a +SDict begin 18.2 H.A end + -30 15908 +a -30 15908 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-SUPPLEMENTAL-DISK) +cvn H.B /DEST pdfmark end + -30 15908 a 5248 x FG(Supplemental)519 +b(Disk)-30 21541 y +SDict begin H.S end + -30 21541 a -30 21541 a +SDict begin 18.2 H.A end + -30 21541 +a -30 21541 a +SDict begin [ /View [/XYZ H.V] /Dest (861) cvn H.B /DEST pdfmark end + -30 21541 a -30 22471 a +SDict begin H.S end + -30 22471 a -30 +22471 a +SDict begin 18.2 H.A end + -30 22471 a -30 22471 a +SDict begin [ /View [/XYZ H.V] /Dest (864) cvn H.B /DEST pdfmark end + -30 22471 a 1629 x FU(A)423 +b(supplemental)e(disk)i(is)f(needed)h(if)g(you)f(are)h(performing)f(an) +h(NFS)f(install)g(or)h(installing)e(to)-30 26115 y(a)364 +b(system)f(with)g(PCMCIA)g(de)-39 b(vices.)364 b(Supplemental)e(disks)h +(are)h(in)f(the)h(rootdsks)f(directory)g(in)-30 28130 +y(the)502 b(distrib)-31 b(ution)501 b(tree,)i(with)e(the)h(\002lenames) +25294 28130 y +SDict begin H.S end + 25294 28130 a 25294 28130 a +SDict begin 18.2 H.A end + 25294 28130 +a 25294 28130 a +SDict begin [ /View [/XYZ H.V] /Dest (865) cvn H.B /DEST pdfmark end + 25294 28130 a FQ(network.dsk)495 b FU(and)35426 +28130 y +SDict begin H.S end + 35426 28130 a 35426 28130 a +SDict begin 18.2 H.A end + 35426 28130 a 35426 +28130 a +SDict begin [ /View [/XYZ H.V] /Dest (866) cvn H.B /DEST pdfmark end + 35426 28130 a FQ(pcmcia.dsk)p FU(.)i(Recently)k(other)-30 +30144 y(supplemental)358 b(disks)h(such)f(as)16990 30144 +y +SDict begin H.S end + 16990 30144 a 16990 30144 a +SDict begin 18.2 H.A end + 16990 30144 a 16990 30144 +a +SDict begin [ /View [/XYZ H.V] /Dest (867) cvn H.B /DEST pdfmark end + 16990 30144 a FQ(rescue.dsk)353 b FU(and)26210 30144 +y +SDict begin H.S end + 26210 30144 a 26210 30144 a +SDict begin 18.2 H.A end + 26210 30144 a 26210 30144 +a +SDict begin [ /View [/XYZ H.V] /Dest (868) cvn H.B /DEST pdfmark end + 26210 30144 a FQ(sbootmgr.dsk)e FU(ha)-31 b(v)-23 b(e)359 +b(been)g(added.)h(The)f(rescue)-30 32159 y(disk)463 b(is)g(a)h(small)e +(\003opp)-15 b(y)462 b(root)i(image)f(that)g(runs)g(in)g(a)g(4MB)g(RAM) +g(dri)-39 b(v)-23 b(e.)463 b(It)h(includes)e(some)-30 +34174 y(basic)431 b(netw)-15 b(orking)429 b(utilities)h(and)h(the)g(vi) +g(editor)f(for)h(quick)g(\002x)-23 b(es)430 b(on)h(b)-31 +b(usted)430 b(machines.)h(The)-30 36188 y +SDict begin H.S end + -30 36188 a +-30 36188 a +SDict begin 18.2 H.A end + -30 36188 a -30 36188 a +SDict begin [ /View [/XYZ H.V] /Dest (869) cvn H.B /DEST pdfmark end + -30 36188 a FQ(sbootmgr.dsk)490 +b FU(disk)496 b(is)h(used)g(to)f(boot)h(other)g(de)-39 +b(vices.)497 b(Boot)f(of)-39 b(f)498 b(this)e(disk)h(if)g(your)g +(bootable)-30 38203 y(CD-R)-62 b(OM)584 b(dri)-39 b(v)-23 +b(e)585 b(doesn')-28 b(t)585 b(w)-15 b(ant)585 b(to)g(boot)g(the)g +(Slackw)-15 b(are)585 b(CDs.)g(It)g(will)g(prompt)g(you)g(for)-30 +40218 y(dif)-39 b(ferent)550 b(things)f(to)h(boot)f(and)h(may)g(of)-39 +b(fer)550 b(a)g(con)-62 b(v)-23 b(enient)549 b(w)-15 +b(ay)550 b(to)f(w)-15 b(ork)550 b(around)f(a)h(b)-31 +b(uggy)-30 42232 y(BIOS.)-30 43023 y +SDict begin H.S end + -30 43023 a -30 +43023 a +SDict begin 18.2 H.A end + -30 43023 a -30 43023 a +SDict begin [ /View [/XYZ H.V] /Dest (870) cvn H.B /DEST pdfmark end + -30 43023 a 1999 x FU(The)387 +b(root)g(disk)g(will)g(instruct)g(you)g(on)g(the)g(use)g(of)h +(supplemental)e(disks)g(when)i(it)f(is)g(loaded.)-30 +46132 y +SDict begin H.S end + -30 46132 a -30 46132 a +SDict begin 18.2 H.A end + -30 46132 a -30 46132 +a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-MAKING-THE-DISKS) +cvn H.B /DEST pdfmark end + -30 46132 a 5182 x FG(Making)518 b(the)f(Disks)-30 +51728 y +SDict begin H.S end + -30 51728 a -30 51728 a +SDict begin 18.2 H.A end + -30 51728 a -30 51728 +a +SDict begin [ /View [/XYZ H.V] /Dest (873) cvn H.B /DEST pdfmark end + -30 51728 a -30 52658 a +SDict begin H.S end + -30 52658 a -30 52658 a +SDict begin 18.2 H.A end + -30 +52658 a -30 52658 a +SDict begin [ /View [/XYZ H.V] /Dest (876) cvn H.B /DEST pdfmark end + -30 52658 a 1600 x FU(Once)395 b(you')-77 +b(v)-23 b(e)393 b(selected)h(a)h(boot)f(disk)g(image,)h(you)f(need)g +(to)h(put)f(it)g(on)g(a)h(\003opp)-15 b(y)-101 b(.)394 +b(The)g(process)-30 56273 y(is)425 b(slightly)g(dif)-39 +b(ferent)425 b(depending)g(on)g(which)g(operating)g(system)g(you')-77 +b(re)424 b(using)h(to)g(mak)-15 b(e)425 b(the)-30 58288 +y(disks.)380 b(If)g(you')-77 b(re)380 b(running)f(Linux)h(\(or)g +(pretty)g(much)g(an)-23 b(y)379 b(Unix-lik)-15 b(e)379 +b(OS\))h(you')-15 b(ll)379 b(need)h(to)g(use)-30 60302 +y(the)2302 60302 y +SDict begin H.S end + 2302 60302 a 2302 60302 a +SDict begin 18.2 H.A end + 2302 60302 +a 2302 60302 a +SDict begin [ /View [/XYZ H.V] /Dest (877) cvn H.B /DEST pdfmark end + 2302 60302 a FP(dd)p FU(\(1\))439 b(command.)f(Assuming) +19698 60302 y +SDict begin H.S end + 19698 60302 a 19698 60302 a +SDict begin 18.2 H.A end + 19698 60302 +a 19698 60302 a +SDict begin [ /View [/XYZ H.V] /Dest (878) cvn H.B /DEST pdfmark end + 19698 60302 a FQ(bare.i)d FU(is)j(your)g(disk)g(image)g +(\002le)g(and)h(your)f(\003opp)-15 b(y)437 b(dri)-39 +b(v)-23 b(e)-30 62317 y(is)1391 62317 y +SDict begin H.S end + 1391 62317 a +1391 62317 a +SDict begin 18.2 H.A end + 1391 62317 a 1391 62317 a +SDict begin [ /View [/XYZ H.V] /Dest (879) cvn H.B /DEST pdfmark end + 1391 62317 a FQ(/dev/fd0)p +FU(,)383 b(the)k(command)g(to)g(mak)-15 b(e)386 b(a)22355 +62317 y +SDict begin H.S end + 22355 62317 a 22355 62317 a +SDict begin 18.2 H.A end + 22355 62317 a 22355 +62317 a +SDict begin [ /View [/XYZ H.V] /Dest (880) cvn H.B /DEST pdfmark end + 22355 62317 a FQ(bare.i)e FU(\003opp)-15 b(y)386 +b(is:)-30 64202 y +SDict begin H.S end + -30 64202 a -30 64202 a +SDict begin 14.56 H.A end + -30 64202 a +-30 64202 a +SDict begin [ /View [/XYZ H.V] /Dest (881) cvn H.B /DEST pdfmark end + -30 64202 a -30 64202 a +SDict begin H.S end + -30 64202 a -30 64202 +a +SDict begin 14.56 H.A end + -30 64202 a -30 64202 a +SDict begin [ /View [/XYZ H.V] /Dest (882) cvn H.B /DEST pdfmark end + -30 64202 a 1277 x FJ(\045)1309 +65479 y +SDict begin H.S end + 1309 65479 a 1309 65479 a +SDict begin 14.56 H.A end + 1309 65479 a 1309 65479 +a +SDict begin [ /View [/XYZ H.V] /Dest (883) cvn H.B /DEST pdfmark end + 1309 65479 a FH(dd)744 b(if=bare.i)e(of=/dev/fd0)p +Black 50226 73792 a FR(21)p Black eop end +%%Page: 22 44 +TeXDict begin 22 43 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.22) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (884) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(If)364 b(you')-77 b(re)362 +b(running)h(a)g(Microsoft)g(OS,)g(you')-15 b(ll)362 b(need)h(to)g(use)h +(the)34734 3611 y +SDict begin H.S end + 34734 3611 a 34734 3611 a +SDict begin 18.2 H.A end + 34734 3611 +a 34734 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (885) cvn H.B /DEST pdfmark end + 34734 3611 a FQ(RAWRITE.EXE)356 b FU(program,)363 +b(which)-30 5626 y(is)313 b(included)f(in)h(the)g(distrib)-31 +b(ution)311 b(tree)i(in)g(the)g(same)f(directories)h(as)g(the)g +(\003opp)-15 b(y)311 b(images.)i(Ag)-8 b(ain)-30 7640 +y(assuming)375 b(that)8902 7640 y +SDict begin H.S end + 8902 7640 a 8902 7640 +a +SDict begin 18.2 H.A end + 8902 7640 a 8902 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (886) cvn H.B /DEST pdfmark end + 8902 7640 a FQ(bare.i)e FU(is)j(your)g(disk)f +(image)h(\002le)g(and)g(your)g(\003opp)-15 b(y)375 b(dri)-39 +b(v)-23 b(e)376 b(is)42206 7640 y +SDict begin H.S end + 42206 7640 a 42206 +7640 a +SDict begin 18.2 H.A end + 42206 7640 a 42206 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (887) cvn H.B /DEST pdfmark end + 42206 7640 a FQ(A:)p +FU(,)g(open)g(a)g(DOS)-30 9655 y(prompt)387 b(and)g(type)g(the)g(follo) +-39 b(wing:)-30 11540 y +SDict begin H.S end + -30 11540 a -30 11540 a +SDict begin 14.56 H.A end + -30 11540 +a -30 11540 a +SDict begin [ /View [/XYZ H.V] /Dest (888) cvn H.B /DEST pdfmark end + -30 11540 a 1277 x FP(C:\\)2946 12817 y +SDict begin H.S end + +2946 12817 a 2946 12817 a +SDict begin 14.56 H.A end + 2946 12817 a 2946 12817 a +SDict begin [ /View [/XYZ H.V] /Dest (889) cvn H.B /DEST pdfmark end + 2946 +12817 a FH(rawrite)743 b(a:)g(bare.i)-30 16014 y +SDict begin H.S end + -30 +16014 a -30 16014 a +SDict begin 18.2 H.A end + -30 16014 a -30 16014 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-PARTITIONING) cvn +H.B /DEST pdfmark end + -30 16014 +a 6027 x FL(3.3)620 b(P)-67 b(ar)45 b(titioning)-30 22537 +y +SDict begin H.S end + -30 22537 a -30 22537 a +SDict begin 18.2 H.A end + -30 22537 a -30 22537 a +SDict begin [ /View [/XYZ H.V] /Dest (892) cvn H.B /DEST pdfmark end + -30 +22537 a -30 23653 a +SDict begin H.S end + -30 23653 a -30 23653 a +SDict begin 18.2 H.A end + -30 23653 +a -30 23653 a +SDict begin [ /View [/XYZ H.V] /Dest (894) cvn H.B /DEST pdfmark end + -30 23653 a 1518 x FU(After)416 b(booting)f(from)h(your)f +(preferred)i(media,)f(you)f(will)h(need)g(to)f(partition)g(your)h(hard) +g(disk.)-30 27186 y(The)392 b(disk)g(partition)g(is)g(where)g(the)g +(Linux)g(\002lesystem)f(will)h(be)g(created)h(and)f(is)g(where)g +(Slack-)-30 29200 y(w)-15 b(are)365 b(will)g(be)g(installed.)g(At)g +(the)g(v)-23 b(ery)365 b(minimum)f(we)h(recommend)g(creating)g(tw)-15 +b(o)364 b(partitions;)-30 31215 y(one)387 b(for)h(your)f(root)g +(\002lesystem)f(\()18091 31215 y +SDict begin H.S end + 18091 31215 a 18091 +31215 a +SDict begin 18.2 H.A end + 18091 31215 a 18091 31215 a +SDict begin [ /View [/XYZ H.V] /Dest (895) cvn H.B /DEST pdfmark end + 18091 31215 a FQ(/)p +FU(\))h(and)g(one)g(for)h(sw)-15 b(ap)387 b(space.)-30 +32326 y +SDict begin H.S end + -30 32326 a -30 32326 a +SDict begin 18.2 H.A end + -30 32326 a -30 32326 +a +SDict begin [ /View [/XYZ H.V] /Dest (896) cvn H.B /DEST pdfmark end + -30 32326 a 1679 x FU(After)435 b(the)f(root)g(disk)g(\002nishes)g +(loading,)g(it)g(will)g(present)h(you)f(with)g(a)h(login)f(prompt.)g +(Log)g(in)-30 36019 y(as)341 b(root)g(\(there)g(is)f(no)h(passw)-15 +b(ord\).)341 b(At)f(the)h(shell)g(prompt,)f(run)h(either)37619 +36019 y +SDict begin H.S end + 37619 36019 a 37619 36019 a +SDict begin 18.2 H.A end + 37619 36019 a 37619 +36019 a +SDict begin [ /View [/XYZ H.V] /Dest (897) cvn H.B /DEST pdfmark end + 37619 36019 a FP(cfdisk)p FU(\(8\))f(or)45862 +36019 y +SDict begin H.S end + 45862 36019 a 45862 36019 a +SDict begin 18.2 H.A end + 45862 36019 a 45862 +36019 a +SDict begin [ /View [/XYZ H.V] /Dest (898) cvn H.B /DEST pdfmark end + 45862 36019 a FP(fdisk)p FU(\(8\).)-30 38034 +y(The)2786 38034 y +SDict begin H.S end + 2786 38034 a 2786 38034 a +SDict begin 18.2 H.A end + 2786 38034 +a 2786 38034 a +SDict begin [ /View [/XYZ H.V] /Dest (899) cvn H.B /DEST pdfmark end + 2786 38034 a FP(cfdisk)406 b FU(program)g(pro)-23 +b(vides)405 b(a)h(more)g(user)-31 b(-friendly)406 b(interf)-15 +b(ace)406 b(than)g(the)g(re)-23 b(gular)48056 38034 y +SDict begin H.S end + +48056 38034 a 48056 38034 a +SDict begin 18.2 H.A end + 48056 38034 a 48056 38034 +a +SDict begin [ /View [/XYZ H.V] /Dest (900) cvn H.B /DEST pdfmark end + 48056 38034 a FP(fdisk)-30 40049 y FU(program,)529 +b(b)-31 b(ut)528 b(does)g(lack)h(some)f(features.)h(W)-124 +b(e)529 b(will)f(brie\003y)g(e)-23 b(xplain)528 b(the)42277 +40049 y +SDict begin H.S end + 42277 40049 a 42277 40049 a +SDict begin 18.2 H.A end + 42277 40049 a 42277 +40049 a +SDict begin [ /View [/XYZ H.V] /Dest (901) cvn H.B /DEST pdfmark end + 42277 40049 a FP(fdisk)g FU(program)-30 42063 +y(belo)-39 b(w)-101 b(.)-30 42078 y +SDict begin H.S end + -30 42078 a -30 42078 +a +SDict begin 18.2 H.A end + -30 42078 a -30 42078 a +SDict begin [ /View [/XYZ H.V] /Dest (902) cvn H.B /DEST pdfmark end + -30 42078 a -30 42078 a +SDict begin H.S end + -30 +42078 a -30 42078 a +SDict begin 18.2 H.A end + -30 42078 a -30 42078 a +SDict begin [ /View [/XYZ H.V] /Dest (904) cvn H.B /DEST pdfmark end + -30 42078 +a -30 42078 a +SDict begin H.S end + -30 42078 a -30 42078 a +SDict begin 18.2 H.A end + -30 42078 a -30 +42078 a +SDict begin [ /View [/XYZ H.V] /Dest (906) cvn H.B /DEST pdfmark end + -30 42078 a -30 42078 a +SDict begin H.S end + -30 42078 a -30 42078 +a +SDict begin 18.2 H.A end + -30 42078 a -30 42078 a +SDict begin [ /View [/XYZ H.V] /Dest (908) cvn H.B /DEST pdfmark end + -30 42078 a -30 42854 a +SDict begin H.S end + -30 +42854 a -30 42854 a +SDict begin 18.2 H.A end + -30 42854 a -30 42854 a +SDict begin [ /View [/XYZ H.V] /Dest (910) cvn H.B /DEST pdfmark end + -30 42854 +a 1999 x FU(Be)-23 b(gin)536 b(by)g(running)11630 44853 +y +SDict begin H.S end + 11630 44853 a 11630 44853 a +SDict begin 18.2 H.A end + 11630 44853 a 11630 44853 +a +SDict begin [ /View [/XYZ H.V] /Dest (911) cvn H.B /DEST pdfmark end + 11630 44853 a FP(fdisk)g FU(for)g(your)g(hard)h(disk.)f(In)g(Linux,)h +(the)f(hard)g(disks)g(do)g(not)g(ha)-31 b(v)-23 b(e)-30 +46868 y(dri)-39 b(v)-23 b(e)436 b(letters,)g(b)-31 b(ut)436 +b(are)h(represented)e(by)h(a)h(\002le.)f(The)g(\002rst)g(IDE)g(hard)g +(disk)g(\(primary)f(master\))-30 48882 y(is)1353 48882 +y +SDict begin H.S end + 1353 48882 a 1353 48882 a +SDict begin 18.2 H.A end + 1353 48882 a 1353 48882 a +SDict begin [ /View [/XYZ H.V] /Dest (912) cvn H.B /DEST pdfmark end + +1353 48882 a FQ(/dev/hda)p FU(,)345 b(the)350 b(primary)f(sla)-31 +b(v)-23 b(e)349 b(is)19464 48882 y +SDict begin H.S end + 19464 48882 a 19464 +48882 a +SDict begin 18.2 H.A end + 19464 48882 a 19464 48882 a +SDict begin [ /View [/XYZ H.V] /Dest (913) cvn H.B /DEST pdfmark end + 19464 48882 a FQ(/dev/hdb)p +FU(,)c(and)350 b(so)f(on.)h(SCSI)e(disks)h(follo)-39 +b(w)350 b(the)f(same)g(type)-30 50897 y(system,)378 b(b)-31 +b(ut)378 b(are)h(in)f(the)g(form)g(of)18556 50897 y +SDict begin H.S end + 18556 +50897 a 18556 50897 a +SDict begin 18.2 H.A end + 18556 50897 a 18556 50897 a +SDict begin [ /View [/XYZ H.V] /Dest (914) cvn H.B /DEST pdfmark end + 18556 +50897 a FQ(/dev/sdX)p FU(.)c(Y)-170 b(ou)377 b(will)h(need)g(to)g +(start)37934 50897 y +SDict begin H.S end + 37934 50897 a 37934 50897 a +SDict begin 18.2 H.A end + 37934 +50897 a 37934 50897 a +SDict begin [ /View [/XYZ H.V] /Dest (916) cvn H.B /DEST pdfmark end + 37934 50897 a FP(fdisk)g FU(and)g(pass)g(it)g +(your)-30 52912 y(hard)387 b(disk:)-30 54477 y +SDict begin H.S end + -30 54477 +a -30 54477 a +SDict begin 14.56 H.A end + -30 54477 a -30 54477 a +SDict begin [ /View [/XYZ H.V] /Dest (917) cvn H.B /DEST pdfmark end + -30 54477 a -30 +54477 a +SDict begin H.S end + -30 54477 a -30 54477 a +SDict begin 14.56 H.A end + -30 54477 a -30 54477 +a +SDict begin [ /View [/XYZ H.V] /Dest (918) cvn H.B /DEST pdfmark end + -30 54477 a 1596 x FJ(#)1309 56073 y +SDict begin H.S end + 1309 56073 a 1309 +56073 a +SDict begin 14.56 H.A end + 1309 56073 a 1309 56073 a +SDict begin [ /View [/XYZ H.V] /Dest (919) cvn H.B /DEST pdfmark end + 1309 56073 a FH(fdisk)743 +b(/dev/hda)-30 57714 y +SDict begin H.S end + -30 57714 a -30 57714 a +SDict begin 18.2 H.A end + -30 57714 +a -30 57714 a +SDict begin [ /View [/XYZ H.V] /Dest (920) cvn H.B /DEST pdfmark end + -30 57714 a 1923 x FU(Lik)-15 b(e)356 b(all)g(good)g +(Unix)g(programs,)18567 59637 y +SDict begin H.S end + 18567 59637 a 18567 59637 +a +SDict begin 18.2 H.A end + 18567 59637 a 18567 59637 a +SDict begin [ /View [/XYZ H.V] /Dest (921) cvn H.B /DEST pdfmark end + 18567 59637 a FP(fdisk)g +FU(gi)-39 b(v)-23 b(es)356 b(you)g(a)h(prompt)f(\(thought)f(you)h(were) +h(getting)f(a)-30 61652 y(menu,)437 b(right?\).)g(The)g(\002rst)f +(thing)h(you)f(should)g(do)h(is)g(e)-23 b(xamine)436 +b(your)h(current)g(partitions.)f(W)-124 b(e)-30 63667 +y(do)387 b(that)g(by)g(typing)10905 63667 y +SDict begin H.S end + 10905 63667 +a 10905 63667 a +SDict begin 18.2 H.A end + 10905 63667 a 10905 63667 a +SDict begin [ /View [/XYZ H.V] /Dest (922) cvn H.B /DEST pdfmark end + 10905 63667 +a Fv(p)g FU(at)h(the)16010 63667 y +SDict begin H.S end + 16010 63667 a 16010 +63667 a +SDict begin 18.2 H.A end + 16010 63667 a 16010 63667 a +SDict begin [ /View [/XYZ H.V] /Dest (923) cvn H.B /DEST pdfmark end + 16010 63667 a FP(fdisk)f +FU(prompt:)-30 65552 y +SDict begin H.S end + -30 65552 a -30 65552 a +SDict begin 14.56 H.A end + -30 65552 +a -30 65552 a +SDict begin [ /View [/XYZ H.V] /Dest (924) cvn H.B /DEST pdfmark end + -30 65552 a 1276 x FP(Command)743 b(\(m)h(for)f(help\):) +16335 66828 y +SDict begin H.S end + 16335 66828 a 16335 66828 a +SDict begin 14.56 H.A end + 16335 66828 +a 16335 66828 a +SDict begin [ /View [/XYZ H.V] /Dest (925) cvn H.B /DEST pdfmark end + 16335 66828 a FH(p)p Black -30 73792 +a FR(22)p Black eop end +%%Page: 23 45 +TeXDict begin 23 44 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.23) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (951) cvn H.B /DEST pdfmark end + -30 -2687 a 37999 -1636 a FR(Chapter)386 +b(3)i(Installation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (926) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(This)403 +b(will)g(display)g(all)g(sorts)g(of)h(information)e(about)h(your)g +(current)h(partitions.)e(Most)h(people)-30 5626 y(pick)433 +b(a)h(free)g(dri)-39 b(v)-23 b(e)434 b(to)f(install)g(to)g(and)h(then)f +(remo)-23 b(v)g(e)433 b(an)-23 b(y)433 b(e)-23 b(xisting)433 +b(partitions)f(on)i(it)f(to)h(create)-30 7640 y(room)387 +b(for)g(the)h(Linux)e(partitions.)-30 7976 y +SDict begin H.S end + -30 7976 +a -30 7976 a +SDict begin 16.9 H.A end + -30 7976 a -30 7976 a +SDict begin [ /View [/XYZ H.V] /Dest (927) cvn H.B /DEST pdfmark end + -30 7976 a -30 10301 +a +SDict begin H.S end + -30 10301 a -30 10301 a +SDict begin 16.9 H.A end + -30 10301 a -30 10301 a +SDict begin [ /View [/XYZ H.V] /Dest (928) cvn H.B /DEST pdfmark end + -30 +10301 a 3070 11836 a Fu(W)-58 b(arning:)527 b Ft(IT)f(IS)f(VER)-72 +b(Y)526 b(IMPOR)-43 b(T)-173 b(ANT)525 b(THA)-173 b(T)526 +b(Y)-122 b(OU)525 b(BA)-43 b(CK)525 b(UP)g(ANY)g(INFORMA-)3070 +13707 y(TION)611 b(Y)-122 b(OU)611 b(W)-72 b(ANT)613 +b(T)-58 b(O)612 b(SA)-101 b(VE)612 b(BEFORE)f(DESTR)-29 +b(O)-101 b(YING)612 b(THE)g(P)-173 b(AR)-43 b(TITION)612 +b(IT)3070 15577 y(LIVES)399 b(ON.)-30 19917 y +SDict begin H.S end + -30 19917 +a -30 19917 a +SDict begin 18.2 H.A end + -30 19917 a -30 19917 a +SDict begin [ /View [/XYZ H.V] /Dest (929) cvn H.B /DEST pdfmark end + -30 19917 a 2014 +x FU(There)404 b(is)g(no)h(easy)f(w)-15 b(ay)404 b(to)g(reco)-23 +b(v)g(er)404 b(from)g(deleting)f(a)i(partition,)e(so)h(al)-15 +b(w)g(ays)403 b(back)i(up)f(before)-30 23946 y(playing)387 +b(with)g(them.)-30 25056 y +SDict begin H.S end + -30 25056 a -30 25056 a +SDict begin 18.2 H.A end + -30 +25056 a -30 25056 a +SDict begin [ /View [/XYZ H.V] /Dest (930) cvn H.B /DEST pdfmark end + -30 25056 a 1680 x FU(Looking)410 +b(at)g(the)g(table)h(of)f(partition)g(information)f(you)h(should)g(see) +g(a)h(partition)f(number)-62 b(,)410 b(the)-30 28750 +y(size)458 b(of)g(the)g(partition,)f(and)h(its)f(type.)h(There')-85 +b(s)458 b(more)g(information,)f(b)-31 b(ut)457 b(don')-28 +b(t)458 b(w)-15 b(orry)457 b(about)-30 30765 y(that)476 +b(for)h(no)-39 b(w)-101 b(.)477 b(W)-124 b(e)477 b(are)f(going)g(to)h +(delete)f(all)g(of)h(the)f(partitions)g(on)g(this)g(dri)-39 +b(v)-23 b(e)476 b(to)g(create)h(the)-30 32780 y(Linux)387 +b(ones.)g(W)-124 b(e)388 b(run)f(the)14824 32780 y +SDict begin H.S end + 14824 +32780 a 14824 32780 a +SDict begin 18.2 H.A end + 14824 32780 a 14824 32780 a +SDict begin [ /View [/XYZ H.V] /Dest (931) cvn H.B /DEST pdfmark end + 14824 +32780 a Fv(d)h FU(command)e(to)h(delete)g(those:)-30 +34360 y +SDict begin H.S end + -30 34360 a -30 34360 a +SDict begin 14.56 H.A end + -30 34360 a -30 34360 +a +SDict begin [ /View [/XYZ H.V] /Dest (932) cvn H.B /DEST pdfmark end + -30 34360 a 1581 x FP(Command)743 b(\(m)h(for)f(help\):)16335 +35941 y +SDict begin H.S end + 16335 35941 a 16335 35941 a +SDict begin 14.56 H.A end + 16335 35941 a 16335 +35941 a +SDict begin [ /View [/XYZ H.V] /Dest (933) cvn H.B /DEST pdfmark end + 16335 35941 a FH(d)-30 37553 y FP(Partition)g(number)g +(\(1-4\):)17823 37553 y +SDict begin H.S end + 17823 37553 a 17823 37553 a +SDict begin 14.56 H.A end + 17823 +37553 a 17823 37553 a +SDict begin [ /View [/XYZ H.V] /Dest (934) cvn H.B /DEST pdfmark end + 17823 37553 a FH(1)-30 37698 y +SDict begin H.S end + +-30 37698 a -30 37698 a +SDict begin 18.2 H.A end + -30 37698 a -30 37698 a +SDict begin [ /View [/XYZ H.V] /Dest (935) cvn H.B /DEST pdfmark end + -30 37698 +a -30 39248 a +SDict begin H.S end + -30 39248 a -30 39248 a +SDict begin 18.2 H.A end + -30 39248 a -30 +39248 a +SDict begin [ /View [/XYZ H.V] /Dest (937) cvn H.B /DEST pdfmark end + -30 39248 a 1869 x FU(This)392 b(process)h(should)f(be)h +(continued)f(for)h(each)g(of)g(the)f(partitions.)h(After)f(deleting)g +(the)h(parti-)-30 43132 y(tions)387 b(we)g(are)g(ready)g(to)g(create)h +(the)f(Linux)f(ones.)h(W)-124 b(e)388 b(ha)-31 b(v)-23 +b(e)387 b(decided)g(to)f(create)i(one)f(partition)-30 +45146 y(for)508 b(our)g(root)g(\002lesystem)e(and)i(one)g(for)g(sw)-15 +b(ap.)508 b(It)g(is)g(w)-15 b(orth)507 b(noting)g(that)h(Unix)f +(partitioning)-30 47161 y(schemes)c(are)h(the)g(subject)f(of)g(man)-23 +b(y)503 b(\003ame)g(w)-15 b(ars,)504 b(and)f(that)g(most)g(users)h +(will)f(tell)g(you)g(the)-30 49176 y(best)454 b(w)-15 +b(ay)454 b(to)f(do)h(it.)h(At)f(a)g(minimum,)f(you)h(should)f(create)i +(one)f(partition)f(for)43504 49176 y +SDict begin H.S end + 43504 49176 a 43504 +49176 a +SDict begin 18.2 H.A end + 43504 49176 a 43504 49176 a +SDict begin [ /View [/XYZ H.V] /Dest (938) cvn H.B /DEST pdfmark end + 43504 49176 a FQ(/)h +FU(and)g(one)g(for)-30 51190 y(sw)-15 b(ap.)387 b(Ov)-23 +b(er)387 b(time,)h(you')-15 b(ll)386 b(de)-39 b(v)-23 +b(elop)387 b(a)g(method)g(that)g(w)-15 b(orks)386 b(well)h(for)h(you.) +-30 52301 y +SDict begin H.S end + -30 52301 a -30 52301 a +SDict begin 18.2 H.A end + -30 52301 a -30 52301 +a +SDict begin [ /View [/XYZ H.V] /Dest (939) cvn H.B /DEST pdfmark end + -30 52301 a 1679 x FU(I)462 b(use)g(tw)-15 b(o)461 +b(basic)h(partition)f(schemes.)h(The)g(\002rst)g(is)f(for)h(a)h +(desktop.)e(I)h(mak)-15 b(e)462 b(4)g(partitions,)50762 +53980 y +SDict begin H.S end + 50762 53980 a 50762 53980 a +SDict begin 18.2 H.A end + 50762 53980 a 50762 +53980 a +SDict begin [ /View [/XYZ H.V] /Dest (940) cvn H.B /DEST pdfmark end + 50762 53980 a FQ(/)p FU(,)-30 55995 y +SDict begin H.S end + -30 55995 +a -30 55995 a +SDict begin 18.2 H.A end + -30 55995 a -30 55995 a +SDict begin [ /View [/XYZ H.V] /Dest (941) cvn H.B /DEST pdfmark end + -30 55995 a FQ(/home)p +FU(,)3901 55995 y +SDict begin H.S end + 3901 55995 a 3901 55995 a +SDict begin 18.2 H.A end + 3901 55995 +a 3901 55995 a +SDict begin [ /View [/XYZ H.V] /Dest (942) cvn H.B /DEST pdfmark end + 3901 55995 a FQ(/usr/local)p FU(,)405 +b(and)411 b(sw)-15 b(ap.)411 b(This)g(lets)g(me)g(re-install)g(or)g +(upgrade)g(the)g(entire)g(installation)-30 58009 y(under)3969 +58009 y +SDict begin H.S end + 3969 58009 a 3969 58009 a +SDict begin 18.2 H.A end + 3969 58009 a 3969 58009 +a +SDict begin [ /View [/XYZ H.V] /Dest (943) cvn H.B /DEST pdfmark end + 3969 58009 a FQ(/)470 b FU(without)f(wiping)h(out)f(my)h(data)g +(\002les)g(under)g(/home)g(or)g(my)g(custom)f(compiled)h(ap-)-30 +60024 y(plications)397 b(under)10322 60024 y +SDict begin H.S end + 10322 60024 +a 10322 60024 a +SDict begin 18.2 H.A end + 10322 60024 a 10322 60024 a +SDict begin [ /View [/XYZ H.V] /Dest (944) cvn H.B /DEST pdfmark end + 10322 60024 +a FQ(/usr/local)p FU(.)392 b(F)-23 b(or)397 b(serv)-23 +b(ers,)398 b(I)g(often)f(replace)h(the)36709 60024 y +SDict begin H.S end + +36709 60024 a 36709 60024 a +SDict begin 18.2 H.A end + 36709 60024 a 36709 60024 +a +SDict begin [ /View [/XYZ H.V] /Dest (945) cvn H.B /DEST pdfmark end + 36709 60024 a FQ(/usr/local)392 b FU(partition)k(with)-30 +62039 y(a)1100 62039 y +SDict begin H.S end + 1100 62039 a 1100 62039 a +SDict begin 18.2 H.A end + 1100 +62039 a 1100 62039 a +SDict begin [ /View [/XYZ H.V] /Dest (946) cvn H.B /DEST pdfmark end + 1100 62039 a FQ(/var)439 b FU(partition.)i(Man)-23 +b(y)441 b(dif)-39 b(ferent)442 b(serv)-23 b(ers)441 b(store)g +(information)g(on)g(that)h(partition)e(and)i(ha)-31 b(v-)-30 +64053 y(ing)374 b(it)g(k)-15 b(ept)374 b(separate)g(from)15428 +64053 y +SDict begin H.S end + 15428 64053 a 15428 64053 a +SDict begin 18.2 H.A end + 15428 64053 a 15428 +64053 a +SDict begin [ /View [/XYZ H.V] /Dest (947) cvn H.B /DEST pdfmark end + 15428 64053 a FQ(/)g FU(has)g(certain)g(performance)g +(bene\002ts.)h(F)-23 b(or)373 b(no)-39 b(w)-101 b(,)376 +b(we')-77 b(re)374 b(sticking)-30 66068 y(with)387 b(just)g(tw)-15 +b(o)386 b(partitions:)15109 66068 y +SDict begin H.S end + 15109 66068 a 15109 +66068 a +SDict begin 18.2 H.A end + 15109 66068 a 15109 66068 a +SDict begin [ /View [/XYZ H.V] /Dest (948) cvn H.B /DEST pdfmark end + 15109 66068 a FQ(/)h +FU(and)g(sw)-15 b(ap.)p Black 50226 73792 a FR(23)p Black +eop end +%%Page: 24 46 +TeXDict begin 24 45 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.24) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (949) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(No)-39 b(w)387 b(we)h(create)g(the)f +(partitions)f(with)h(the)23560 3611 y +SDict begin H.S end + 23560 3611 a 23560 +3611 a +SDict begin 18.2 H.A end + 23560 3611 a 23560 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (950) cvn H.B /DEST pdfmark end + 23560 3611 a Fv(n)g +FU(command:)-30 6713 y Fs(Command)718 b(\(m)e(for)h(help\):)g +Fr(n)-30 8264 y Fs(Command)h(action)2119 9816 y(e)2148 +b(extended)2119 11368 y(p)g(primary)718 b(partition)g(\(1-4\))-30 +11555 y +SDict begin H.S end + -30 11555 a -30 11555 a +SDict begin 14.018 H.A end + -30 11555 a -30 11555 +a +SDict begin [ /View [/XYZ H.V] /Dest (953) cvn H.B /DEST pdfmark end + -30 11555 a 1365 x Fr(p)-30 14471 y Fs(Partition)g(number)f(\(1-4\):) +16441 14471 y +SDict begin H.S end + 16441 14471 a 16441 14471 a +SDict begin 14.018 H.A end + 16441 14471 +a 16441 14471 a +SDict begin [ /View [/XYZ H.V] /Dest (954) cvn H.B /DEST pdfmark end + 16441 14471 a Fr(1)-30 16023 y Fs(First)g(cylinder)h +(\(0-1060,)f(default)h(0\):)25036 16023 y +SDict begin H.S end + 25036 16023 +a 25036 16023 a +SDict begin 14.018 H.A end + 25036 16023 a 25036 16023 a +SDict begin [ /View [/XYZ H.V] /Dest (955) cvn H.B /DEST pdfmark end + 25036 16023 +a Fr(0)686 17575 y Fs(Last)f(cylinder)h(or)e(+size)h(or)g(+sizeM)g(or)g +(+sizeK)g(\(0-1060,)h(default)f(1060\):)47953 17575 y +SDict begin H.S end + +47953 17575 a 47953 17575 a +SDict begin 14.018 H.A end + 47953 17575 a 47953 17575 +a +SDict begin [ /View [/XYZ H.V] /Dest (956) cvn H.B /DEST pdfmark end + 47953 17575 a Fr(+64M)-30 19312 y +SDict begin H.S end + -30 19312 a -30 19312 +a +SDict begin 18.2 H.A end + -30 19312 a -30 19312 a +SDict begin [ /View [/XYZ H.V] /Dest (957) cvn H.B /DEST pdfmark end + -30 19312 a 1827 x FU(Y)-170 +b(ou)445 b(need)g(to)h(mak)-15 b(e)444 b(sure)i(you)f(create)h(primary) +e(partitions.)h(The)h(\002rst)f(partition)f(is)h(going)g(to)-30 +23154 y(be)416 b(our)f(sw)-15 b(ap)415 b(partition.)g(W)-124 +b(e)416 b(tell)f(fdisk)g(to)g(mak)-15 b(e)415 b(partition)g(number)g(1) +h(a)f(primary)g(partition.)-30 25169 y(W)-124 b(e)369 +b(start)g(it)f(at)h(c)-23 b(ylinder)368 b(0)h(and)g(for)g(the)f(ending) +h(c)-23 b(ylinder)368 b(we)h(type)f(+64M.)h(This)f(will)h(gi)-39 +b(v)-23 b(e)368 b(us)-30 27183 y(a)419 b(64)f(me)-23 +b(g)-8 b(abyte)418 b(partition)f(for)i(sw)-15 b(ap.)418 +b(\(The)h(size)f(of)g(the)h(sw)-15 b(ap)417 b(partition)h(you)g(need)g +(actually)-30 29198 y(depends)517 b(on)f(the)h(amount)f(of)h(RAM)g(you) +f(ha)-31 b(v)-23 b(e.)517 b(It)g(is)g(con)-62 b(v)-23 +b(entional)516 b(wisdom)g(that)h(a)g(sw)-15 b(ap)-30 +31213 y(space)579 b(double)e(the)i(size)f(of)h(your)f(RAM)f(should)h +(be)h(created.\))g(Then)f(we)g(de\002ne)g(primary)-30 +33227 y(partition)367 b(number)g(2)g(starting)g(at)g(the)h(\002rst)f(a) +-31 b(v)-39 b(ailable)367 b(c)-23 b(ylinder)367 b(and)g(going)g(all)g +(the)h(w)-15 b(ay)367 b(to)g(the)-30 35242 y(end)387 +b(of)h(the)f(dri)-39 b(v)-23 b(e.)-30 36807 y +SDict begin H.S end + -30 36807 +a -30 36807 a +SDict begin 14.018 H.A end + -30 36807 a -30 36807 a +SDict begin [ /View [/XYZ H.V] /Dest (958) cvn H.B /DEST pdfmark end + -30 36807 a 1536 +x Fs(Command)718 b(\(m)e(for)h(help\):)15009 38343 y +SDict begin H.S end + +15009 38343 a 15009 38343 a +SDict begin 14.018 H.A end + 15009 38343 a 15009 38343 +a +SDict begin [ /View [/XYZ H.V] /Dest (959) cvn H.B /DEST pdfmark end + 15009 38343 a Fr(n)-30 39895 y Fs(Command)h(action)2119 +41447 y(e)2148 b(extended)2119 42999 y(p)g(primary)718 +b(partition)g(\(1-4\))-30 43186 y +SDict begin H.S end + -30 43186 a -30 43186 +a +SDict begin 14.018 H.A end + -30 43186 a -30 43186 a +SDict begin [ /View [/XYZ H.V] /Dest (960) cvn H.B /DEST pdfmark end + -30 43186 a 1364 x Fr(p)-30 +46102 y Fs(Partition)g(number)f(\(1-4\):)16441 46102 +y +SDict begin H.S end + 16441 46102 a 16441 46102 a +SDict begin 14.018 H.A end + 16441 46102 a 16441 46102 +a +SDict begin [ /View [/XYZ H.V] /Dest (961) cvn H.B /DEST pdfmark end + 16441 46102 a Fr(2)-30 47654 y Fs(First)g(cylinder)h(\(124-1060,)g +(default)f(124\):)27900 47654 y +SDict begin H.S end + 27900 47654 a 27900 47654 +a +SDict begin 14.018 H.A end + 27900 47654 a 27900 47654 a +SDict begin [ /View [/XYZ H.V] /Dest (962) cvn H.B /DEST pdfmark end + 27900 47654 a Fr(124)-30 +49205 y Fs(Last)g(cylinder)h(or)e(+size)h(or)g(+sizeM)g(or)g(+sizeK)g +(\(124-1060,)h(default)f(1060\):)48669 49205 y +SDict begin H.S end + 48669 +49205 a 48669 49205 a +SDict begin 14.018 H.A end + 48669 49205 a 48669 49205 a +SDict begin [ /View [/XYZ H.V] /Dest (963) cvn H.B /DEST pdfmark end + 48669 +49205 a Fr(1060)-30 50943 y +SDict begin H.S end + -30 50943 a -30 50943 a +SDict begin 18.2 H.A end + -30 +50943 a -30 50943 a +SDict begin [ /View [/XYZ H.V] /Dest (964) cvn H.B /DEST pdfmark end + -30 50943 a 1827 x FU(W)-124 b(e)561 +b(are)g(almost)f(done.)g(W)-124 b(e)561 b(need)g(to)f(change)h(the)f +(type)h(of)f(the)h(\002rst)f(partition)f(to)i(type)f(82)-30 +54785 y(\(Linux)300 b(sw)-15 b(ap\).)300 b(T)-124 b(ype)12224 +54785 y +SDict begin H.S end + 12224 54785 a 12224 54785 a +SDict begin 18.2 H.A end + 12224 54785 a 12224 +54785 a +SDict begin [ /View [/XYZ H.V] /Dest (965) cvn H.B /DEST pdfmark end + 12224 54785 a Fv(t)300 b FU(to)g(change)h(the)f(type,)g(select) +h(the)f(\002rst)g(partition,)g(and)g(type)45383 54785 +y +SDict begin H.S end + 45383 54785 a 45383 54785 a +SDict begin 18.2 H.A end + 45383 54785 a 45383 54785 +a +SDict begin [ /View [/XYZ H.V] /Dest (966) cvn H.B /DEST pdfmark end + 45383 54785 a FP(82)p FU(.)h(Before)-30 56799 y(writing)399 +b(your)h(changes)g(to)g(the)g(disk,)g(you)f(should)h(look)f(at)h(the)g +(ne)-39 b(w)400 b(partition)g(table)f(one)h(last)-30 +58814 y(time.)344 b(Use)g(the)8449 58814 y +SDict begin H.S end + 8449 58814 +a 8449 58814 a +SDict begin 18.2 H.A end + 8449 58814 a 8449 58814 a +SDict begin [ /View [/XYZ H.V] /Dest (967) cvn H.B /DEST pdfmark end + 8449 58814 a +Fv(p)g FU(in)11273 58814 y +SDict begin H.S end + 11273 58814 a 11273 58814 +a +SDict begin 18.2 H.A end + 11273 58814 a 11273 58814 a +SDict begin [ /View [/XYZ H.V] /Dest (968) cvn H.B /DEST pdfmark end + 11273 58814 a FP(fdisk)g +FU(to)g(display)f(the)h(partition)f(table.)i(If)f(e)-39 +b(v)-23 b(erything)344 b(looks)f(good,)h(type)-30 60829 +y +SDict begin H.S end + -30 60829 a -30 60829 a +SDict begin 18.2 H.A end + -30 60829 a -30 60829 a +SDict begin [ /View [/XYZ H.V] /Dest (969) cvn H.B /DEST pdfmark end + -30 +60829 a Fv(w)387 b FU(to)h(write)f(your)g(changes)g(to)g(the)g(disk)g +(and)g(quit)27329 60829 y +SDict begin H.S end + 27329 60829 a 27329 60829 a +SDict begin 18.2 H.A end + +27329 60829 a 27329 60829 a +SDict begin [ /View [/XYZ H.V] /Dest (970) cvn H.B /DEST pdfmark end + 27329 60829 a FP(fdisk)p +FU(.)-30 61939 y +SDict begin H.S end + -30 61939 a -30 61939 a +SDict begin 18.2 H.A end + -30 61939 a +-30 61939 a +SDict begin [ /View [/XYZ H.V] /Dest (INSTALLATION-SETUP) cvn H.B /DEST +pdfmark end + -30 61939 a Black 11853 x FR(24)p Black eop +end +%%Page: 25 47 +TeXDict begin 25 46 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.25) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p +Black -30 4084 a FL(3.4)620 b(The)g Fq(setup)695 b FL(Pr)-45 +b(ogram)-30 4581 y +SDict begin H.S end + -30 4581 a -30 4581 a +SDict begin 18.2 H.A end + -30 4581 a -30 +4581 a +SDict begin [ /View [/XYZ H.V] /Dest (974) cvn H.B /DEST pdfmark end + -30 4581 a -30 5696 a +SDict begin H.S end + -30 5696 a -30 5696 a +SDict begin 18.2 H.A end + -30 +5696 a -30 5696 a +SDict begin [ /View [/XYZ H.V] /Dest (976) cvn H.B /DEST pdfmark end + -30 5696 a 1519 x FU(Once)404 b(you)f(ha)-31 +b(v)-23 b(e)403 b(created)h(your)f(partitions,)g(you)g(are)h(ready)g +(to)f(install)g(Slackw)-15 b(are.)403 b(The)g(ne)-23 +b(xt)-30 9229 y(step)510 b(in)f(the)h(installation)e(process)i(is)f +(running)g(the)28930 9229 y +SDict begin H.S end + 28930 9229 a 28930 9229 a +SDict begin 18.2 H.A end + +28930 9229 a 28930 9229 a +SDict begin [ /View [/XYZ H.V] /Dest (977) cvn H.B /DEST pdfmark end + 28930 9229 a FP(setup)p FU(\(8\))g(program.)h +(T)-124 b(o)509 b(do)h(so,)g(simply)-30 11244 y(type)2987 +11244 y +SDict begin H.S end + 2987 11244 a 2987 11244 a +SDict begin 18.2 H.A end + 2987 11244 a 2987 11244 +a +SDict begin [ /View [/XYZ H.V] /Dest (978) cvn H.B /DEST pdfmark end + 2987 11244 a FP(setup)348 b FU(at)g(the)g(shell)f(prompt.)19252 +11244 y +SDict begin H.S end + 19252 11244 a 19252 11244 a +SDict begin 18.2 H.A end + 19252 11244 a 19252 +11244 a +SDict begin [ /View [/XYZ H.V] /Dest (979) cvn H.B /DEST pdfmark end + 19252 11244 a FP(setup)h FU(is)f(a)i(menu-dri)-39 +b(v)-23 b(en)347 b(system)g(for)i(actually)e(installing)-30 +13259 y(the)387 b(Slackw)-15 b(are)387 b(packages)g(and)g +(con\002guring)g(your)g(system.)-30 13594 y +SDict begin H.S end + -30 13594 +a -30 13594 a +SDict begin 18.2 H.A end + -30 13594 a -30 13594 a +SDict begin [ /View [/XYZ H.V] /Dest (980) cvn H.B /DEST pdfmark end + -30 13594 a -30 +15919 a +SDict begin H.S end + -30 15919 a -30 15919 a +SDict begin 18.2 H.A end + -30 15919 a -30 15919 +a +SDict begin [ /View [/XYZ H.V] /Dest (981) cvn H.B /DEST pdfmark end + -30 15919 a -30 41916 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 41916 a @beginspecial 22 +@llx 60 @lly 449 @urx 287 @ury 4270 @rwi @setspecial +%%BeginDocument: installation/setup-program.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 22 60 449 287 + +/Outterbox +{ newpath moveto +0 220 rlineto +93 0 rlineto +23 61 moveto +425 0 rlineto +0 220 rlineto +-96 0 rlineto +23 87 moveto +448 87 lineto +closepath } def + +/Innerbox +{ moveto +402 0 rlineto +0 130 rlineto +-402 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 14 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +116 277 TitleFont(Slackware Linux Setup (version 9.1.0)) show + +33 264 PanelFont (Welcome to Slackware Linux Setup.) show +33 250 PanelFont (Select an option below using the UP/DOWN keys and SPACE or ENTER.)show +33 236 PanelFont (Alternate keys may also be used: '+', '-', and TAB.) show + +55 214 ContentFont (HELP) show +55 202 ContentFont (KEYMAP) show +55 190 ContentFont (ADDSWAP) show +55 176 ContentFont (TARGET) show +55 162 ContentFont (SOURCE) show +55 148 ContentFont (SELECT) show +55 134 ContentFont (INSTALL) show +55 120 ContentFont (CONFIGURE) show +55 106 ContentFont (EXIT) show +140 214 ContentFont (Read the Slackware Setup HELP file) show +140 202 ContentFont (Remap your keyboard if your're not using a US one) show +140 190 ContentFont (Set up your swap partition(s)) show +140 176 ContentFont (Set up your target partitions) show +140 162 ContentFont (Select source media) show +140 148 ContentFont (Select categories of software to install) show +140 134 ContentFont (Install selected software) show +140 120 ContentFont (Reconfigure your Linux system) show +140 106 ContentFont (Exit Slackware Linux Setup) show + +153 71 ButtonFont (< OK >) show +267 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 41916 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 41916 a -30 43466 a +SDict begin H.S end + -30 +43466 a -30 43466 a +SDict begin 18.2 H.A end + -30 43466 a -30 43466 a +SDict begin [ /View [/XYZ H.V] /Dest (984) cvn H.B /DEST pdfmark end + -30 43466 +a 2014 x FU(The)576 b(setup)f(process)g(goes)g(something)g(lik)-15 +b(e)574 b(this:)h(Y)-170 b(ou)575 b(step)g(through)g(each)h(option)f +(in)g(the)-30 47495 y +SDict begin H.S end + -30 47495 a -30 47495 a +SDict begin 18.2 H.A end + -30 47495 +a -30 47495 a +SDict begin [ /View [/XYZ H.V] /Dest (985) cvn H.B /DEST pdfmark end + -30 47495 a FP(setup)427 b FU(program,)g(in)g(the)g +(order)g(the)-23 b(y)427 b(are)h(listed.)f(\(Of)g(course,)h(you)f(are)g +(free)h(to)f(do)g(things)f(in)-30 49510 y(almost)442 +b(an)-23 b(y)443 b(order)g(you)g(choose,)g(b)-31 b(ut)443 +b(chances)g(are)h(it)f(isn')-28 b(t)442 b(going)h(to)g(w)-15 +b(ork)442 b(out)h(v)-23 b(ery)443 b(well.\))-30 51524 +y(Menu)545 b(items)g(are)h(selected)f(using)f(the)i(up)f(and)g(do)-39 +b(wn)546 b(arro)-39 b(w)545 b(k)-15 b(e)-23 b(ys,)545 +b(and)g(the)44260 51524 y +SDict begin H.S end + 44260 51524 a 44260 51524 a +SDict begin 18.2 H.A end + +44260 51524 a 44260 51524 a +SDict begin [ /View [/XYZ H.V] /Dest (986) cvn H.B /DEST pdfmark end + 44260 51524 a FU(\223Okay\224)g(and)-30 +53539 y +SDict begin H.S end + -30 53539 a -30 53539 a +SDict begin 18.2 H.A end + -30 53539 a -30 53539 +a +SDict begin [ /View [/XYZ H.V] /Dest (987) cvn H.B /DEST pdfmark end + -30 53539 a FU(\223Cancel\224)344 b(b)-31 b(uttons)343 +b(can)i(be)f(chosen)g(by)g(using)f(the)h(left)g(and)g(right)g(arro)-39 +b(w)345 b(k)-15 b(e)-23 b(ys.)343 b(Alternati)-39 b(v)-23 +b(ely)-101 b(,)-30 55554 y(each)447 b(option)e(has)h(a)h(corresponding) +e(k)-15 b(e)-23 b(y)-101 b(,)447 b(which)f(is)g(highlighted)f(in)h(the) +g(option)f(name.)i(Op-)-30 57568 y(tions)327 b(which)h(are)g(\003agg)-8 +b(able)327 b(\(those)g(indicated)g(with)h(a)29873 57568 +y +SDict begin H.S end + 29873 57568 a 29873 57568 a +SDict begin 18.2 H.A end + 29873 57568 a 29873 57568 +a +SDict begin [ /View [/XYZ H.V] /Dest (988) cvn H.B /DEST pdfmark end + 29873 57568 a FP([X])p FU(\))f(are)h(toggled)f(using)g(the)h +(spacebar)-85 b(.)-30 58679 y +SDict begin H.S end + -30 58679 a -30 58679 a +SDict begin 18.2 H.A end + +-30 58679 a -30 58679 a +SDict begin [ /View [/XYZ H.V] /Dest (989) cvn H.B /DEST pdfmark end + -30 58679 a 1679 x FU(Of)456 +b(course,)g(all)f(of)h(that)g(is)f(described)g(in)h(the)25376 +60358 y +SDict begin H.S end + 25376 60358 a 25376 60358 a +SDict begin 18.2 H.A end + 25376 60358 a 25376 +60358 a +SDict begin [ /View [/XYZ H.V] /Dest (990) cvn H.B /DEST pdfmark end + 25376 60358 a FU(\223help\224)g(section)f(of)36470 +60358 y +SDict begin H.S end + 36470 60358 a 36470 60358 a +SDict begin 18.2 H.A end + 36470 60358 a 36470 +60358 a +SDict begin [ /View [/XYZ H.V] /Dest (991) cvn H.B /DEST pdfmark end + 36470 60358 a FP(setup)p FU(,)h(b)-31 b(ut)455 +b(we)h(belie)-39 b(v)-23 b(e)455 b(in)-30 62372 y(gi)-39 +b(ving)387 b(our)g(readers)h(their)f(mone)-23 b(y')-85 +b(s)386 b(w)-15 b(orth.)-30 62708 y +SDict begin H.S end + -30 62708 a -30 62708 +a +SDict begin 18.2 H.A end + -30 62708 a -30 62708 a +SDict begin [ /View [/XYZ H.V] /Dest (992) cvn H.B /DEST pdfmark end + -30 62708 a Black 50226 73792 +a FR(25)p Black eop end +%%Page: 26 48 +TeXDict begin 26 47 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.26) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1012) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(3)g(Installation)p Black -30 3821 a FG(HELP)-30 4751 +y +SDict begin H.S end + -30 4751 a -30 4751 a +SDict begin 18.2 H.A end + -30 4751 a -30 4751 a +SDict begin [ /View [/XYZ H.V] /Dest (994) cvn H.B /DEST pdfmark end + -30 4751 +a 2014 x FU(If)483 b(this)g(is)g(your)f(\002rst)h(time)f(installing)g +(Slackw)-15 b(are,)483 b(you)g(might)f(w)-15 b(ant)482 +b(to)h(tak)-15 b(e)482 b(a)i(look)e(at)h(the)-30 8780 +y(help)365 b(screen.)i(It)e(will)g(gi)-39 b(v)-23 b(e)366 +b(a)g(description)e(of)i(each)g(part)f(of)32378 8780 +y +SDict begin H.S end + 32378 8780 a 32378 8780 a +SDict begin 18.2 H.A end + 32378 8780 a 32378 8780 a +SDict begin [ /View [/XYZ H.V] /Dest (995) cvn H.B /DEST pdfmark end + +32378 8780 a FP(setup)g FU(\(much)g(lik)-15 b(e)365 b(the)h(one)f(we') +-77 b(re)-30 10795 y(writing)387 b(no)-39 b(w)-101 b(,)388 +b(b)-31 b(ut)387 b(less)g(in)-62 b(v)-31 b(olv)-23 b(ed\))386 +b(and)h(instructions)f(for)i(na)-31 b(vig)-8 b(ating)386 +b(the)i(rest)f(of)g(the)g(install.)-30 11130 y +SDict begin H.S end + -30 11130 +a -30 11130 a +SDict begin 18.2 H.A end + -30 11130 a -30 11130 a +SDict begin [ /View [/XYZ H.V] /Dest (996) cvn H.B /DEST pdfmark end + -30 11130 a -30 +13455 a +SDict begin H.S end + -30 13455 a -30 13455 a +SDict begin 18.2 H.A end + -30 13455 a -30 13455 +a +SDict begin [ /View [/XYZ H.V] /Dest (997) cvn H.B /DEST pdfmark end + -30 13455 a -30 45674 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 45674 a @beginspecial 22 +@llx 60 @lly 481 @urx 343 @ury 4590 @rwi @setspecial +%%BeginDocument: installation/setup-help.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 22 60 481 343 +/Outterbox +{ newpath +23 61 moveto +0 276 rlineto +152 0 rlineto +23 61 moveto +457 0 rlineto +0 276 rlineto +-160 0 rlineto +23 87 moveto +410 87 lineto +440 87 moveto +40 0 rlineto +/Helvetica findfont 10 scalefont setfont +413 84 moveto +(( 6%))show} def + +/TitleFont +{ /Helvetica findfont 14 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 14 scalefont setfont +moveto } def + +/ContentFont1 +{ /Helvetica findfont 10 scalefont setfont +moveto } def + +/ContentFont2 +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +Outterbox + +180 333 TitleFont(Slackware Setup Help) show + +39 310 PanelFont (Slackware Linux Help) show +39 300 PanelFont (____________________)show + +39 284 ContentFont2 (First, a little help on help. Whenever you encounter a text) show +39 270 ContentFont2 (viewer like this during the installation, you can move around) show +39 256 ContentFont2 (with these commands:) show + +39 230 ContentFont1 (PGDN/SPACE) show +39 217 ContentFont1 (PGUP/'b') show +39 204 ContentFont1 (ENTER/DOWN/'j') show +39 191 ContentFont1 (UP/'k') show +39 178 ContentFont1 (LEFT/'h') show +39 165 ContentFont1 (RIGHT/'l') show +39 152 ContentFont1 ('0') show +39 139 ContentFont1 (HOME/'g') show +39 126 ContentFont1 (END/'G') show +39 113 ContentFont1 ('/') show + +135 230 ContentFont2 (- Move down one page) show +135 217 ContentFont2 (- Move up one page) show +135 204 ContentFont2 (- Move down one line) show +135 191 ContentFont2 (- Move up one line) show +135 178 ContentFont2 (- Scroll left) show +135 165 ContentFont2 (- Scroll right) show +135 152 ContentFont2 (- Move to beginning of line) show +135 139 ContentFont2 (- Move to beginning of file) show +135 126 ContentFont2 (- Move to end of file) show +135 113 ContentFont2 (- Forward search) show + + +230 71 ButtonFont (< OK >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 45674 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 45674 a -30 47224 a +SDict begin H.S end + -30 +47224 a -30 47224 a +SDict begin 18.2 H.A end + -30 47224 a -30 47224 a +SDict begin [ /View [/XYZ H.V] /Dest (1000) cvn H.B /DEST pdfmark end + -30 47224 +a 5517 x FG(KEYMAP)-30 52741 y +SDict begin H.S end + -30 52741 a -30 52741 +a +SDict begin 18.2 H.A end + -30 52741 a -30 52741 a +SDict begin [ /View [/XYZ H.V] /Dest (1002) cvn H.B /DEST pdfmark end + -30 52741 a -30 52741 a +SDict begin H.S end + -30 +52741 a -30 52741 a +SDict begin 18.2 H.A end + -30 52741 a -30 52741 a +SDict begin [ /View [/XYZ H.V] /Dest (1004) cvn H.B /DEST pdfmark end + -30 52741 +a -30 53671 a +SDict begin H.S end + -30 53671 a -30 53671 a +SDict begin 18.2 H.A end + -30 53671 a -30 +53671 a +SDict begin [ /View [/XYZ H.V] /Dest (1006) cvn H.B /DEST pdfmark end + -30 53671 a 2014 x FU(If)608 b(you)g(require)f(a)h(k)-15 +b(e)-23 b(ymap)607 b(other)g(than)h(the)f(United)g(States)35018 +55685 y +SDict begin H.S end + 35018 55685 a 35018 55685 a +SDict begin 18.2 H.A end + 35018 55685 a 35018 +55685 a +SDict begin [ /View [/XYZ H.V] /Dest (1007) cvn H.B /DEST pdfmark end + 35018 55685 a FU(\223qwerty\224)g(layout,)h(you)f(may)-30 +57700 y(w)-15 b(ant)484 b(to)h(tak)-15 b(e)484 b(a)i(look)e(at)h(this)f +(section.)h(It)g(of)-39 b(fers)486 b(a)f(number)f(of)h(alternate)g +(layouts)f(for)h(your)-30 59715 y(k)-15 b(e)-23 b(yboarding)386 +b(enjo)-15 b(yment.)-30 60050 y +SDict begin H.S end + -30 60050 a -30 60050 +a +SDict begin 18.2 H.A end + -30 60050 a -30 60050 a +SDict begin [ /View [/XYZ H.V] /Dest (1008) cvn H.B /DEST pdfmark end + -30 60050 a -30 62375 a +SDict begin H.S end + -30 +62375 a -30 62375 a +SDict begin 18.2 H.A end + -30 62375 a -30 62375 a +SDict begin [ /View [/XYZ H.V] /Dest (1009) cvn H.B /DEST pdfmark end + -30 62375 +a Black 11417 x FR(26)p Black eop end +%%Page: 27 49 +TeXDict begin 27 48 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.27) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p +Black -30 33504 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 33504 a @beginspecial 22 @llx 60 +@lly 348 @urx 339 @ury 3260 @rwi @setspecial +%%BeginDocument: installation/setup-keymap.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 22 60 348 339 + +/Outterbox +{ newpath +23 61 moveto +0 273 rlineto +70 0 rlineto +23 61 moveto +324 0 rlineto +0 273 rlineto +-80 0 rlineto +23 88 moveto +324 0 rlineto +closepath } def + +/Innerbox +{ moveto +302 0 rlineto +0 157 rlineto +-302 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +35 100 Innerbox + +95 330 TitleFont(KEYBOARD MAP SELECTION) show + +33 318 PanelFont (You may select one of the following keyboard maps.) show +33 304 PanelFont (If you do not select a keyboard map, 'us.map' \(the) show +33 290 PanelFont (US keyboard map\) is the default. Use the UP/DOWN) show +33 276 PanelFont (arrow keys and PageUp/PageDown to scroll through) show +33 262 PanelFont (the whole list of choices.) show + +99 240 ContentFont (qwerty/us.map) show +99 227 ContentFont (azerty/azerty.map) show +99 214 ContentFont (azerty/be-latin1.map) show +99 201 ContentFont (azerty/fr-latin1.map) show +99 188 ContentFont (azerty/fr-latin9.map) show +99 175 ContentFont (azerty/fr-pc.map) show +99 162 ContentFont (azerty/fr.map) show +99 149 ContentFont (azerty/wangbe.map) show +99 136 ContentFont (azerty/wangbe2.map) show +99 123 ContentFont (dvorak/ANSI-dvorak.map) show +99 110 ContentFont (dvorak/dvorak-l.map) show + +103 71 ButtonFont (< OK >) show +190 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 33504 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 33504 a -30 35054 a +SDict begin H.S end + -30 +35054 a -30 35054 a +SDict begin 18.2 H.A end + -30 35054 a -30 35054 a +SDict begin [ /View [/XYZ H.V] /Dest (1012) cvn H.B /DEST pdfmark end + -30 35054 +a 5517 x FG(ADDSW)-112 b(AP)-30 40594 y +SDict begin H.S end + -30 40594 a -30 +40594 a +SDict begin 18.2 H.A end + -30 40594 a -30 40594 a +SDict begin [ /View [/XYZ H.V] /Dest (1014) cvn H.B /DEST pdfmark end + -30 40594 a -30 43074 +a +SDict begin H.S end + -30 43074 a -30 43074 a +SDict begin 18.2 H.A end + -30 43074 a -30 43074 a +SDict begin [ /View [/XYZ H.V] /Dest (1015) cvn H.B /DEST pdfmark end + -30 +43074 a -30 60448 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 60448 a @beginspecial 22 @llx +60 @lly 439 @urx 208 @ury 4170 @rwi @setspecial +%%BeginDocument: installation/setup-swap.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 22 60 439 208 + +/Outterbox +{ newpath moveto +0 143 rlineto +137 0 rlineto +23 61 moveto +415 0 rlineto +0 143 rlineto +-125 0 rlineto +23 87 moveto +415 0 rlineto +closepath } def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox + +163 199 TitleFont(SWAP SPACE DETECTED) show + +33 180 PanelFont (Slackware Setup has detected a swap partition: ) show + +52 154 ContentFont (Device Boot) show +140 154 ContentFont(Start) show +202 154 ContentFont(End) show +249 154 ContentFont(Blocks) show +310 154 ContentFont(Id) show +330 154 ContentFont(System) show +33 135 ContentFont (/dev/hda4) show +157 135 ContentFont(4801) show +224 135 ContentFont(4865) show +280 135 ContentFont(522112+) show +340 135 ContentFont(82) show +365 135 ContentFont(Linux swap) show + +33 106 ContentFont (Do you wish to install this as your swap partition?) show + + +153 71 ButtonFont (< Yes >) show +267 71 ButtonFont (< No >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 60448 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 60448 a -30 60448 a +SDict begin H.S end + -30 +60448 a -30 60448 a +SDict begin 18.2 H.A end + -30 60448 a -30 60448 a +SDict begin [ /View [/XYZ H.V] /Dest (1018) cvn H.B /DEST pdfmark end + -30 60448 +a -30 61998 a +SDict begin H.S end + -30 61998 a -30 61998 a +SDict begin 18.2 H.A end + -30 61998 a -30 +61998 a +SDict begin [ /View [/XYZ H.V] /Dest (1020) cvn H.B /DEST pdfmark end + -30 61998 a 2015 x FU(If)583 b(you)f(created)g(a)g(sw)-15 +b(ap)582 b(partition)f(\(back)h(in)p 0 TeXcolorgray 26216 +64013 a +SDict begin H.S end + 26216 64013 a FU(Section)387 b(3.3)33190 64013 +y +SDict begin 18.2 H.L end + 33190 64013 a 33190 64013 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-PARTITIONING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 33190 64013 a Black FU(\),)583 +b(this)f(section)f(will)h(allo)-39 b(w)582 b(you)-30 +66027 y(to)521 b(enable)f(it.)h(It)g(will)f(autodetect)g(and)h(display) +f(the)g(sw)-15 b(ap)520 b(partitions)g(on)h(your)f(hard)h(dri)-39 +b(v)-23 b(e,)-30 68042 y(allo)-39 b(wing)387 b(you)g(to)g(select)g(one) +g(to)h(format)f(and)g(enable.)p Black 50169 73792 a FR(27)p +Black eop end +%%Page: 28 50 +TeXDict begin 28 49 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.28) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1044) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(3)g(Installation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1022) cvn H.B /DEST pdfmark end + -30 2504 a 1357 x FG(T)-167 +b(ARGET)-30 3884 y +SDict begin H.S end + -30 3884 a -30 3884 a +SDict begin 18.2 H.A end + -30 3884 a -30 +3884 a +SDict begin [ /View [/XYZ H.V] /Dest (1024) cvn H.B /DEST pdfmark end + -30 3884 a -30 6364 a +SDict begin H.S end + -30 6364 a -30 6364 a +SDict begin 18.2 H.A end + -30 +6364 a -30 6364 a +SDict begin [ /View [/XYZ H.V] /Dest (1025) cvn H.B /DEST pdfmark end + -30 6364 a -30 25071 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 25071 a +@beginspecial 22 @llx 60 @lly 439 @urx 220 @ury 4170 +@rwi @setspecial +%%BeginDocument: installation/setup-target.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 22 60 439 220 + +/Outterbox +{ newpath moveto +0 154 rlineto +97 0 rlineto +23 61 moveto +415 0 rlineto +0 154 rlineto +-138 0 rlineto +23 87 moveto +415 0 rlineto +closepath } def + +/Innerbox +{ moveto +392 0 rlineto +0 79 rlineto +-392 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +35 99 Innerbox + +123 211 TitleFont(Select Linux installation partition:) show + +36 197 PanelFont (Please select a partition from the following list to use for your) show +36 185 PanelFont (root (/) Linux partition.) show + +72 160 ContentFont (/dev/hda2) show +72 146 ContentFont (/dev/hda3) show +72 132 ContentFont (/dev/hda4) show +72 118 ContentFont ( - - - ) show +72 104 ContentFont ( - - - ) show + +158 160 ContentFont (Linux 5863725) show +158 146 ContentFont (Linux 5863725) show +158 132 ContentFont (Linux 104984775) show +158 118 ContentFont ((done adding partitions, continue with setup)) show +158 104 ContentFont ((done adding partitions, continue with setup)) show + +153 71 ButtonFont (< Select >) show +267 71 ButtonFont (< Continue >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 25071 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 25071 a -30 25071 a +SDict begin H.S end + -30 +25071 a -30 25071 a +SDict begin 18.2 H.A end + -30 25071 a -30 25071 a +SDict begin [ /View [/XYZ H.V] /Dest (1028) cvn H.B /DEST pdfmark end + -30 25071 +a -30 26621 a +SDict begin H.S end + -30 26621 a -30 26621 a +SDict begin 18.2 H.A end + -30 26621 a -30 +26621 a +SDict begin [ /View [/XYZ H.V] /Dest (1030) cvn H.B /DEST pdfmark end + -30 26621 a 2015 x FU(The)692 b(tar)-28 b(get)691 +b(section)g(is)g(where)h(your)f(other)g(\(non-sw)-15 +b(ap\))691 b(partitions)f(are)i(formatted)f(and)-30 30650 +y(mapped)374 b(to)g(\002lesystem)f(mount)g(points.)h(A)g(list)g(of)g +(the)g(partitions)f(on)h(your)g(hard)h(disk)e(will)h(be)-30 +32665 y(displayed.)392 b(F)-23 b(or)391 b(each)i(partition,)e(you)h +(will)g(be)g(gi)-39 b(v)-23 b(en)391 b(the)h(option)g(of)g(whether)g +(to)g(format)f(that)-30 34680 y(partition)588 b(or)g(not.)h(Depending)e +(on)h(the)h(k)-15 b(ernel)588 b(used,)g(you)g(can)h(choose)f(between)g +(reiserfs)-30 36694 y(\(the)447 b(def)-15 b(ault\),)446 +b(e)-23 b(xt3,)447 b(e)-23 b(xt2,)446 b(jfs,)h(and)g(xfs.)f(Most)g +(people)h(use)f(either)h(reiserfs)f(or)h(e)-23 b(xt3.)446 +b(In)h(the)-30 38709 y(near)388 b(future)f(we)g(may)g(see)h(support)e +(for)i(reiserfs4)f(slip)g(in.)-30 39819 y +SDict begin H.S end + -30 39819 a +-30 39819 a +SDict begin 18.2 H.A end + -30 39819 a -30 39819 a +SDict begin [ /View [/XYZ H.V] /Dest (1031) cvn H.B /DEST pdfmark end + -30 39819 a 1680 +x FU(The)377 b(\002rst)f(option)h(in)f(the)h(tar)-28 +b(get)377 b(section)g(is)f(the)h(selection)f(of)h(a)h(partition)e(on)g +(which)h(to)g(install)-30 43513 y(your)318 b(root)g(\()6460 +43513 y +SDict begin H.S end + 6460 43513 a 6460 43513 a +SDict begin 18.2 H.A end + 6460 43513 a 6460 43513 +a +SDict begin [ /View [/XYZ H.V] /Dest (1032) cvn H.B /DEST pdfmark end + 6460 43513 a FQ(/)p FU(\))g(\002lesystem.)g(After)g(that,)h(you)f +(will)g(be)g(able)h(to)f(map)g(other)g(partitions)g(to)g(\002lesys-)-30 +45528 y(tems)382 b(as)g(you)g(choose.)h(\(F)-23 b(or)382 +b(instance,)g(you)g(may)g(w)-15 b(ant)382 b(your)g(third)g(partition,)g +(say)45751 45528 y +SDict begin H.S end + 45751 45528 a 45751 45528 a +SDict begin 18.2 H.A end + 45751 +45528 a 45751 45528 a +SDict begin [ /View [/XYZ H.V] /Dest (1033) cvn H.B /DEST pdfmark end + 45751 45528 a FQ(/dev/hda3)p FU(,)-30 +47543 y(to)468 b(be)g(your)f(home)h(\002lesystem.)f(This)g(is)g(just)h +(an)g(e)-23 b(xample;)467 b(map)g(the)h(partitions)e(as)i(you)g(see)-30 +49557 y(\002t.\))-30 50609 y +SDict begin H.S end + -30 50609 a -30 50609 a +SDict begin 18.2 H.A end + +-30 50609 a -30 50609 a +SDict begin [ /View [/XYZ H.V] /Dest (1034) cvn H.B /DEST pdfmark end + -30 50609 a 5240 x FG(SOURCE)-30 +56802 y +SDict begin H.S end + -30 56802 a -30 56802 a +SDict begin 18.2 H.A end + -30 56802 a -30 56802 +a +SDict begin [ /View [/XYZ H.V] /Dest (1036) cvn H.B /DEST pdfmark end + -30 56802 a 1992 x FU(The)559 b(source)f(section)g(is)h(where)g(you)f +(select)h(the)f(source)h(media)f(from)g(which)h(you)f(are)h(in-)-30 +60808 y(stalling)423 b(Slackw)-15 b(are.)423 b(Currently)g(there)g(are) +h(four)g(sources)f(to)h(choose)f(from.)h(These)f(are)h(CD-)-30 +62823 y(R)-62 b(OM,)387 b(NFS,)g(or)h(a)f(premounted)g(directory)-101 +b(.)-30 63159 y +SDict begin H.S end + -30 63159 a -30 63159 a +SDict begin 18.2 H.A end + -30 63159 a -30 +63159 a +SDict begin [ /View [/XYZ H.V] /Dest (1037) cvn H.B /DEST pdfmark end + -30 63159 a -30 65483 a +SDict begin H.S end + -30 65483 a -30 65483 +a +SDict begin 18.2 H.A end + -30 65483 a -30 65483 a +SDict begin [ /View [/XYZ H.V] /Dest (1038) cvn H.B /DEST pdfmark end + -30 65483 a Black 8309 x FR(28)p +Black eop end +%%Page: 29 51 +TeXDict begin 29 50 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.29) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1061) cvn H.B /DEST pdfmark end + -30 -2687 a 37999 -1636 a FR(Chapter)386 +b(3)i(Installation)p Black -30 17615 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 17615 a @beginspecial +22 @llx 60 @lly 438 @urx 196 @ury 4160 @rwi @setspecial +%%BeginDocument: installation/setup-source.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 22 60 438 196 +/Outterbox +{ newpath moveto +0 130 rlineto +125 0 rlineto +23 61 moveto +414 0 rlineto +0 130 rlineto +-130 0 rlineto +23 87 moveto +414 0 rlineto +closepath } def + +/Innerbox +{ moveto +390 0 rlineto +0 66 rlineto +-390 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +35 99 Innerbox + +153 187 TitleFont(SOURCE MEDIA SELECTION) show + +35 174 PanelFont (Please select the media from which to install Slackware Linux:) show + +104 148 ContentFont (1) show +104 134 ContentFont (2) show +104 120 ContentFont (3) show +104 106 ContentFont (4) show + +123 148 ContentFont (Install from a Slackware CD or DVD) show +123 134 ContentFont (Install from a hard drive partition) show +123 120 ContentFont (Install from NFS (Network File System)) show +123 106 ContentFont (Install from a pre-mounted directory) show + +133 71 ButtonFont (< OK >) show +247 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 17615 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 17615 a -30 17615 a +SDict begin H.S end + -30 +17615 a -30 17615 a +SDict begin 18.2 H.A end + -30 17615 a -30 17615 a +SDict begin [ /View [/XYZ H.V] /Dest (1041) cvn H.B /DEST pdfmark end + -30 17615 +a 3565 x FU(The)432 b(CD-R)-62 b(OM)431 b(selection)g(enables)g(a)h +(CD-R)-62 b(OM)431 b(based)g(installation.)g(It)h(will)f(of)-39 +b(fer)432 b(the)g(op-)-30 23194 y(tion)437 b(of)g(scanning)g(for)h(a)f +(CD-R)-62 b(OM)437 b(dri)-39 b(v)-23 b(e)437 b(or)h(displaying)e(a)h +(list)g(from)g(which)g(you)h(can)f(pick)-30 25209 y(your)321 +b(dri)-39 b(v)-23 b(e)321 b(type.)g(Mak)-15 b(e)321 b(sure)g(you)g(ha) +-31 b(v)-23 b(e)321 b(the)f(Slackw)-15 b(are)321 b(CD)g(in)f(your)h +(dri)-39 b(v)-23 b(e)321 b(before)h(allo)-39 b(wing)-30 +27224 y(it)387 b(to)g(scan.)-30 27239 y +SDict begin H.S end + -30 27239 a -30 +27239 a +SDict begin 18.2 H.A end + -30 27239 a -30 27239 a +SDict begin [ /View [/XYZ H.V] /Dest (1045) cvn H.B /DEST pdfmark end + -30 27239 a -30 27239 +a +SDict begin H.S end + -30 27239 a -30 27239 a +SDict begin 18.2 H.A end + -30 27239 a -30 27239 a +SDict begin [ /View [/XYZ H.V] /Dest (1047) cvn H.B /DEST pdfmark end + -30 +27239 a -30 28014 a +SDict begin H.S end + -30 28014 a -30 28014 a +SDict begin 18.2 H.A end + -30 28014 +a -30 28014 a +SDict begin [ /View [/XYZ H.V] /Dest (1050) cvn H.B /DEST pdfmark end + -30 28014 a 1999 x FU(The)393 b(NFS)e(selection)h +(prompts)g(for)h(your)f(netw)-15 b(ork)391 b(information)h(and)g(the)h +(netw)-15 b(ork)391 b(informa-)-30 32028 y(tion)407 b(for)h(your)f(NFS) +g(serv)-23 b(er)-85 b(.)408 b(The)g(NFS)f(serv)-23 b(er)407 +b(must)g(be)h(set)f(up)h(in)f(adv)-39 b(ance.)409 b(Also)e(note)g(that) +-30 34043 y(you)346 b(cannot)g(use)g(hostnames,)f(you)h(must)g(use)g +(the)g(IP)g(addresses)f(for)i(both)e(your)h(machine)g(and)-30 +36057 y(the)528 b(NFS)f(serv)-23 b(er)527 b(\(there)h(is)g(no)f(name)h +(resolv)-23 b(er)527 b(on)h(the)g(setup)f(disk\).)h(Naturally)f(you)h +(must)-30 38072 y(ha)-31 b(v)-23 b(e)387 b(used)g(the)8739 +38072 y +SDict begin H.S end + 8739 38072 a 8739 38072 a +SDict begin 18.2 H.A end + 8739 38072 a 8739 38072 +a +SDict begin [ /View [/XYZ H.V] /Dest (1051) cvn H.B /DEST pdfmark end + 8739 38072 a FQ(network.dsk)380 b FU(\003opp)-15 b(y)386 +b(to)h(add)g(support)g(for)g(your)h(netw)-15 b(ork)386 +b(controller)-85 b(.)-30 39182 y +SDict begin H.S end + -30 39182 a -30 39182 +a +SDict begin 18.2 H.A end + -30 39182 a -30 39182 a +SDict begin [ /View [/XYZ H.V] /Dest (1052) cvn H.B /DEST pdfmark end + -30 39182 a 1679 x FU(The)568 +b(premounted)f(directory)g(of)-39 b(fers)568 b(the)g(most)f(\003e)-23 +b(xibility)-101 b(.)566 b(Y)-170 b(ou)567 b(can)h(use)g(this)f(method)g +(to)-30 42876 y(install)450 b(from)h(things)e(such)i(as)g(Jaz)g(disks,) +f(NFS)g(mounts)g(o)-23 b(v)g(er)450 b(PLIP)-172 b(,)451 +b(and)f(F)-115 b(A)-172 b(T)451 b(\002lesystems.)-30 +44891 y(Mount)346 b(the)g(\002lesystem)f(to)h(a)g(location)f(of)i(your) +f(choosing)f(before)h(running)g(setup,)g(then)g(spec-)-30 +46905 y(ify)387 b(that)g(location)g(here.)-30 48016 y +SDict begin H.S end + +-30 48016 a -30 48016 a +SDict begin 18.2 H.A end + -30 48016 a -30 48016 a +SDict begin [ /View [/XYZ H.V] /Dest (1053) cvn H.B /DEST pdfmark end + -30 48016 +a 5181 x FG(SELECT)-30 54150 y +SDict begin H.S end + -30 54150 a -30 54150 +a +SDict begin 18.2 H.A end + -30 54150 a -30 54150 a +SDict begin [ /View [/XYZ H.V] /Dest (1055) cvn H.B /DEST pdfmark end + -30 54150 a 1992 x FU(The)510 +b(select)f(option)g(allo)-39 b(ws)510 b(you)f(to)h(select)f(the)h +(softw)-15 b(are)509 b(series)h(that)f(you)h(wish)f(to)g(install.)-30 +58157 y(These)455 b(series)h(are)g(described)f(in)p 0 +TeXcolorgray 18514 58157 a +SDict begin H.S end + 18514 58157 a FU(Section)387 +b(3.2.1)26650 58157 y +SDict begin 18.2 H.L end + 26650 58157 a 26650 58157 a +SDict begin [ /Subtype /Link /Dest (INSTALLATION-SOFTWARE-SERIES) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 26650 +58157 a Black FU(.)456 b(Please)f(note)h(that)f(you)g(must)g(install)g +(the)g(A)-30 60171 y(series)387 b(to)g(ha)-31 b(v)-23 +b(e)387 b(a)h(w)-15 b(orking)386 b(base)h(system.)g(All)g(other)h +(series)f(are)g(optional.)-30 60507 y +SDict begin H.S end + -30 60507 a -30 +60507 a +SDict begin 18.2 H.A end + -30 60507 a -30 60507 a +SDict begin [ /View [/XYZ H.V] /Dest (1057) cvn H.B /DEST pdfmark end + -30 60507 a -30 62831 +a +SDict begin H.S end + -30 62831 a -30 62831 a +SDict begin 18.2 H.A end + -30 62831 a -30 62831 a +SDict begin [ /View [/XYZ H.V] /Dest (1058) cvn H.B /DEST pdfmark end + -30 +62831 a Black 50226 73792 a FR(29)p Black eop end +%%Page: 30 52 +TeXDict begin 30 51 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.30) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1080) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(3)g(Installation)p Black -30 30504 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 30504 a @beginspecial +21 @llx 60 @lly 467 @urx 312 @ury 4460 @rwi @setspecial +%%BeginDocument: installation/setup-select.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 467 312 + +/Outterbox +{ newpath moveto +0 246 rlineto +118 0 rlineto +23 61 moveto +443 0 rlineto +0 246 rlineto +-125 0 rlineto +23 87 moveto +443 0 rlineto +closepath } def + +/Innerbox +{ moveto +421 0 rlineto +0 131 rlineto +-421 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 13 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont1 +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont2 +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +145 301 TitleFont(PACKAGE SERIES SELECTION) show + +33 287 PanelFont (Now it's time to select which general categories of software to install) show +33 275 PanelFont (on your system. Use the spacebar to select or unselect the software)show +33 263 PanelFont (you wish to install. You can use the up and down arrows to see all the) show +33 251 PanelFont (possible choices. Recommended choices have been preselected. Press) show +33 239 PanelFont (the ENTER key when you are finished.) show + +55 218 ContentFont1 ([X]) show +55 204 ContentFont1 ([X]) show +55 190 ContentFont1 ([X]) show +55 176 ContentFont1 ([X]) show +55 162 ContentFont1 ([X]) show +55 148 ContentFont1 ([X]) show +55 134 ContentFont1 ([X]) show +55 120 ContentFont1 ([X]) show +55 106 ContentFont1 ([ ]) show + +86 218 ContentFont2 (A) show +86 204 ContentFont2 (AP) show +86 190 ContentFont2 (D) show +86 176 ContentFont2 (E) show +86 162 ContentFont2 (F) show +86 148 ContentFont2 (GNOME) show +86 134 ContentFont2 (K) show +86 120 ContentFont2 (KDE) show +86 106 ContentFont2 (KDEI) show + +133 218 ContentFont1 (Base Linux system) show +133 204 ContentFont1 (Various Applications that do not need X) show +133 190 ContentFont1 (Program Development (C, C++, Lisp, Perl, etc.)) show +133 176 ContentFont1 (GNU Emacs) show +133 162 ContentFont1 (FAQ lists, HOWTO documentation) show +133 148 ContentFont1 (The GNOME desktop for X) show +133 134 ContentFont1 (Linux kernel source) show +133 120 ContentFont1 (Qt and the K Desktop Environment for X) show +133 106 ContentFont1 (International language support for KDE) show + +153 71 ButtonFont (< OK >) show +267 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 30504 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 30504 a -30 32054 a +SDict begin H.S end + -30 +32054 a -30 32054 a +SDict begin 18.2 H.A end + -30 32054 a -30 32054 a +SDict begin [ /View [/XYZ H.V] /Dest (1061) cvn H.B /DEST pdfmark end + -30 32054 +a 5517 x FG(INST)-167 b(ALL)-30 38524 y +SDict begin H.S end + -30 38524 a -30 +38524 a +SDict begin 18.2 H.A end + -30 38524 a -30 38524 a +SDict begin [ /View [/XYZ H.V] /Dest (1063) cvn H.B /DEST pdfmark end + -30 38524 a 1992 x FU(Assuming)463 +b(that)h(you)f(ha)-31 b(v)-23 b(e)464 b(gone)g(through)f(the)26753 +40516 y +SDict begin H.S end + 26753 40516 a 26753 40516 a +SDict begin 18.2 H.A end + 26753 40516 a 26753 +40516 a +SDict begin [ /View [/XYZ H.V] /Dest (1064) cvn H.B /DEST pdfmark end + 26753 40516 a FU(\223tar)-28 b(get\224,)32481 +40516 y +SDict begin H.S end + 32481 40516 a 32481 40516 a +SDict begin 18.2 H.A end + 32481 40516 a 32481 +40516 a +SDict begin [ /View [/XYZ H.V] /Dest (1065) cvn H.B /DEST pdfmark end + 32481 40516 a FU(\223source\224,)465 b(and)41456 +40516 y +SDict begin H.S end + 41456 40516 a 41456 40516 a +SDict begin 18.2 H.A end + 41456 40516 a 41456 +40516 a +SDict begin [ /View [/XYZ H.V] /Dest (1066) cvn H.B /DEST pdfmark end + 41456 40516 a FU(\223select\224)e(options,)-30 +42530 y(the)2241 42530 y +SDict begin H.S end + 2241 42530 a 2241 42530 a +SDict begin 18.2 H.A end + 2241 +42530 a 2241 42530 a +SDict begin [ /View [/XYZ H.V] /Dest (1067) cvn H.B /DEST pdfmark end + 2241 42530 a FP(install)377 b FU(option)f(will)h +(allo)-39 b(w)377 b(you)g(to)g(select)g(packages)g(from)g(your)f +(chosen)h(softw)-15 b(are)377 b(se-)-30 44545 y(ries.)328 +b(If)h(not,)f(it)f(will)h(prompt)f(you)h(to)g(go)f(back)h(and)g +(complete)g(the)f(other)h(sections)g(of)g(the)f(setup)-30 +46560 y(program.)475 b(This)f(option)13748 46560 y +SDict begin H.S end + 13748 +46560 a 13748 46560 a +SDict begin 18.2 H.A end + 13748 46560 a 13748 46560 a +SDict begin [ /View [/XYZ H.V] /Dest (1068) cvn H.B /DEST pdfmark end + 13748 +46560 a 475 w FU(allo)-39 b(ws)474 b(you)g(to)h(select)f(from)g(six)g +(dif)-39 b(ferent)475 b(installation)e(methods:)-30 48574 +y +SDict begin H.S end + -30 48574 a -30 48574 a +SDict begin 18.2 H.A end + -30 48574 a -30 48574 a +SDict begin [ /View [/XYZ H.V] /Dest (1070) cvn H.B /DEST pdfmark end + -30 +48574 a FP(full)p FU(,)3720 48574 y +SDict begin H.S end + 3720 48574 a 3720 +48574 a +SDict begin 18.2 H.A end + 3720 48574 a 3720 48574 a +SDict begin [ /View [/XYZ H.V] /Dest (1071) cvn H.B /DEST pdfmark end + 3720 48574 a FP(newbie)p +FU(,)8959 48574 y +SDict begin H.S end + 8959 48574 a 8959 48574 a +SDict begin 18.2 H.A end + 8959 48574 +a 8959 48574 a +SDict begin [ /View [/XYZ H.V] /Dest (1072) cvn H.B /DEST pdfmark end + 8959 48574 a FP(menu)p FU(,)12709 48574 +y +SDict begin H.S end + 12709 48574 a 12709 48574 a +SDict begin 18.2 H.A end + 12709 48574 a 12709 48574 +a +SDict begin [ /View [/XYZ H.V] /Dest (1073) cvn H.B /DEST pdfmark end + 12709 48574 a FP(expert)p FU(,)17947 48574 y +SDict begin H.S end + 17947 +48574 a 17947 48574 a +SDict begin 18.2 H.A end + 17947 48574 a 17947 48574 a +SDict begin [ /View [/XYZ H.V] /Dest (1074) cvn H.B /DEST pdfmark end + 17947 +48574 a FP(custom)p FU(,)387 b(and)25811 48574 y +SDict begin H.S end + 25811 +48574 a 25811 48574 a +SDict begin 18.2 H.A end + 25811 48574 a 25811 48574 a +SDict begin [ /View [/XYZ H.V] /Dest (1075) cvn H.B /DEST pdfmark end + 25811 +48574 a FP(tag)743 b(path)p FU(.)-30 48798 y +SDict begin H.S end + -30 48798 +a -30 48798 a +SDict begin 18.2 H.A end + -30 48798 a -30 48798 a +SDict begin [ /View [/XYZ H.V] /Dest (1076) cvn H.B /DEST pdfmark end + -30 48798 a -30 +51123 a +SDict begin H.S end + -30 51123 a -30 51123 a +SDict begin 18.2 H.A end + -30 51123 a -30 51123 +a +SDict begin [ /View [/XYZ H.V] /Dest (1077) cvn H.B /DEST pdfmark end + -30 51123 a Black 22669 x FR(30)p Black eop end +%%Page: 31 53 +TeXDict begin 31 52 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.31) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p +Black -30 32171 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 32171 a @beginspecial 21 @llx 60 +@lly 450 @urx 327 @ury 4290 @rwi @setspecial +%%BeginDocument: installation/setup-install.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 450 327 + +/Outterbox +{ newpath moveto +0 259 rlineto +118 0 rlineto +23 61 moveto +426 0 rlineto +0 259 rlineto +-125 0 rlineto +23 87 moveto +426 0 rlineto +closepath } def + +/Innerbox +{ moveto +403 0 rlineto +0 105 rlineto +-403 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 13 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont1 +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont2 +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +145 316 TitleFont(SELECT PROMPTING MODE) show + +33 304 PanelFont (Now you must select the type of prompts you'd like to see during the) show +33 291 PanelFont (installation process. If you have the drive space, the 'full')show +33 278 PanelFont (option is quick, easy, and by far the most foolproof choice. The) show +33 265 PanelFont ('newbie' mode provides the most information but is much more) show +33 252 PanelFont (time-consuming (presenting the packages one by one) than the) show +33 239 PanelFont (menu-based choices. Otherwise, you can pick packages from menus) show +33 226 PanelFont (using 'expert' or 'menu' mode. Which type of prompting would you) show +33 213 PanelFont (like to use?) show + +55 191 ContentFont1 (full) show +55 177 ContentFont1 (newbie) show +55 163 ContentFont1 (menu) show +55 149 ContentFont1 (expert) show +55 135 ContentFont1 (custom) show +55 121 ContentFont1 (tagpath) show +55 107 ContentFont1 (help) show + +133 191 ContentFont1 (Install everything (almost 2 GB of software)) show +133 177 ContentFont1 (Use verbose prompting (and follow tagfiles)) show +133 163 ContentFont1 (Choose groups of packages from interactive menus) show +133 149 ContentFont1 (Choose individual packages from interactive menus) show +133 135 ContentFont1 (Use custom tagfiles in the package directories) show +133 121 ContentFont1 (Use tagfiles in the subdirectories of a custom path) show +133 107 ContentFont1 (Read the prompt mode help file) show + +153 71 ButtonFont (< OK >) show +267 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 32171 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 32171 a 3564 x FU(The)308 +b FP(full)g FU(option)g(will)g(install)f(e)-39 b(v)-23 +b(ery)309 b(package)f(from)h(all)f(the)g(softw)-15 b(are)308 +b(series)g(that)g(you)g(chose)-30 37750 y(in)389 b(the)3848 +37750 y +SDict begin H.S end + 3848 37750 a 3848 37750 a +SDict begin 18.2 H.A end + 3848 37750 a 3848 37750 +a +SDict begin [ /View [/XYZ H.V] /Dest (1082) cvn H.B /DEST pdfmark end + 3848 37750 a FU(\223select\224)g(section.)h(There)f(is)g(no)g +(further)g(prompting.)g(This)f(is)h(the)g(easiest)g(installation)-30 +39765 y(method,)589 b(since)f(you)h(do)f(not)h(need)g(to)f(mak)-15 +b(e)588 b(an)-23 b(y)589 b(decisions)f(on)g(the)h(actual)g(packages)f +(to)-30 41779 y(install.)387 b(Of)g(course,)h(this)f(option)f(also)h +(tak)-15 b(es)387 b(up)g(the)g(most)g(hard)g(dri)-39 +b(v)-23 b(e)388 b(space.)-30 42890 y +SDict begin H.S end + -30 42890 a -30 +42890 a +SDict begin 18.2 H.A end + -30 42890 a -30 42890 a +SDict begin [ /View [/XYZ H.V] /Dest (1083) cvn H.B /DEST pdfmark end + -30 42890 a 1679 x FU(The)508 +b(ne)-23 b(xt)508 b(option)g(is)12054 44569 y +SDict begin H.S end + 12054 44569 +a 12054 44569 a +SDict begin 18.2 H.A end + 12054 44569 a 12054 44569 a +SDict begin [ /View [/XYZ H.V] /Dest (1084) cvn H.B /DEST pdfmark end + 12054 44569 +a FP(newbie)p FU(.)g(This)g(option)g(installs)f(all)i(of)f(the)g +(required)h(packages)f(in)g(the)-30 46583 y(selected)325 +b(series.)h(F)-23 b(or)325 b(all)g(other)g(packages,)g(it)h(of)-39 +b(fers)325 b(a)h(prompt)e(where)i(you)f(can)g(select)47757 +46583 y +SDict begin H.S end + 47757 46583 a 47757 46583 a +SDict begin 18.2 H.A end + 47757 46583 a 47757 +46583 a +SDict begin [ /View [/XYZ H.V] /Dest (1085) cvn H.B /DEST pdfmark end + 47757 46583 a FU(\223Y)-155 b(es\224,)-30 48598 +y +SDict begin H.S end + -30 48598 a -30 48598 a +SDict begin 18.2 H.A end + -30 48598 a -30 48598 a +SDict begin [ /View [/XYZ H.V] /Dest (1086) cvn H.B /DEST pdfmark end + -30 +48598 a FU(\223No\224,)472 b(or)5861 48598 y +SDict begin H.S end + 5861 48598 +a 5861 48598 a +SDict begin 18.2 H.A end + 5861 48598 a 5861 48598 a +SDict begin [ /View [/XYZ H.V] /Dest (1087) cvn H.B /DEST pdfmark end + 5861 48598 a +FU(\223Skip\224.)g(Y)-155 b(es)471 b(and)g(No)h(do)f(the)g(ob)-23 +b(vious,)471 b(while)g(Skip)f(will)h(go)h(ahead)f(to)g(the)g(ne)-23 +b(xt)-30 50613 y(softw)-15 b(are)564 b(series.)h(Additionally)-101 +b(,)564 b(you)h(will)f(see)h(a)g(description)f(and)h(size)g +(requirement)f(for)-30 52627 y(each)421 b(package)f(to)g(help)g(you)g +(decide)g(if)g(you)g(need)h(it.)f(W)-124 b(e)421 b(recommend)e(this)h +(option)f(for)i(ne)-39 b(w)-30 54642 y(users,)432 b(as)g(it)f(ensures)g +(that)h(you)f(get)h(all)f(the)h(required)f(packages)h(installed.)f(Ho) +-39 b(we)g(v)-23 b(er)-62 b(,)432 b(it)f(is)h(a)-30 56657 +y(little)387 b(slo)-39 b(w)387 b(because)g(of)h(the)f(prompting.)-30 +57767 y +SDict begin H.S end + -30 57767 a -30 57767 a +SDict begin 18.2 H.A end + -30 57767 a -30 57767 +a +SDict begin [ /View [/XYZ H.V] /Dest (1088) cvn H.B /DEST pdfmark end + -30 57767 a -30 57767 a +SDict begin H.S end + -30 57767 a -30 57767 a +SDict begin 18.2 H.A end + -30 +57767 a -30 57767 a +SDict begin [ /View [/XYZ H.V] /Dest (1089) cvn H.B /DEST pdfmark end + -30 57767 a 1679 x FP(Menu)503 b +FU(is)h(a)g(f)-15 b(aster)503 b(and)g(more)h(adv)-39 +b(anced)504 b(v)-23 b(ersion)503 b(of)g(the)h(ne)-39 +b(wbie)503 b(option.)h(F)-23 b(or)503 b(each)h(series,)-30 +61461 y(a)466 b(menu)f(is)h(displayed,)f(from)h(which)f(you)h(can)g +(select)f(all)h(the)f(non-required)h(packages)f(you)-30 +63476 y(w)-15 b(ant)387 b(to)g(install.)g(Required)g(packages)g(are)g +(not)g(displayed)g(on)g(this)g(menu.)-30 64586 y +SDict begin H.S end + -30 +64586 a -30 64586 a +SDict begin 18.2 H.A end + -30 64586 a -30 64586 a +SDict begin [ /View [/XYZ H.V] /Dest (1090) cvn H.B /DEST pdfmark end + -30 64586 +a 1679 x FU(F)-23 b(or)425 b(the)h(more)f(adv)-39 b(anced)426 +b(user)-62 b(,)426 b(install)f(of)-39 b(fers)426 b(the)28563 +66265 y +SDict begin H.S end + 28563 66265 a 28563 66265 a +SDict begin 18.2 H.A end + 28563 66265 a 28563 +66265 a +SDict begin [ /View [/XYZ H.V] /Dest (1091) cvn H.B /DEST pdfmark end + 28563 66265 a FP(expert)f FU(option.)g(This)g(allo)-39 +b(ws)426 b(you)f(com-)-30 68280 y(plete)494 b(control)g(o)-23 +b(v)g(er)494 b(what)g(packages)g(get)g(installed.)g(Y)-170 +b(ou)493 b(can)i(deselect)f(packages)g(that)g(are)p Black +50226 73792 a FR(31)p Black eop end +%%Page: 32 54 +TeXDict begin 32 53 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.32) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1106) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(3)g(Installation)p Black -30 3611 a FU(absolutely)459 +b(required,)i(resulting)e(in)h(a)g(brok)-15 b(en)460 +b(system.)f(On)h(the)g(other)g(hand,)h(you)f(can)g(con-)-30 +5626 y(trol)315 b(e)-23 b(xactly)314 b(what)h(goes)g(onto)g(your)g +(system.)f(Simply)g(select)h(the)g(packages)g(from)g(each)g(series)-30 +7640 y(that)361 b(you)g(w)-15 b(ant)360 b(installed.)h(This)g(is)g(not) +f(recommended)h(for)g(the)g(ne)-39 b(w)362 b(user)-62 +b(,)361 b(as)g(it)g(is)g(quite)g(easy)-30 9655 y(to)387 +b(shoot)g(yourself)g(in)g(the)g(foot.)-30 10765 y +SDict begin H.S end + -30 +10765 a -30 10765 a +SDict begin 18.2 H.A end + -30 10765 a -30 10765 a +SDict begin [ /View [/XYZ H.V] /Dest (1092) cvn H.B /DEST pdfmark end + -30 10765 +a 1680 x FU(The)2791 12445 y +SDict begin H.S end + 2791 12445 a 2791 12445 +a +SDict begin 18.2 H.A end + 2791 12445 a 2791 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (1093) cvn H.B /DEST pdfmark end + 2791 12445 a FP(custom)410 +b FU(and)10313 12445 y +SDict begin H.S end + 10313 12445 a 10313 12445 a +SDict begin 18.2 H.A end + 10313 +12445 a 10313 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (1094) cvn H.B /DEST pdfmark end + 10313 12445 a FP(tag)744 b(path)410 +b FU(options)g(are)h(also)f(for)h(adv)-39 b(anced)411 +b(users.)g(These)f(options)g(allo)-39 b(w)-30 14459 y(you)489 +b(to)h(install)e(based)i(upon)f(custom)f(tag)i(\002les)f(that)g(you)g +(created)h(in)f(the)g(distrib)-31 b(ution)488 b(tree.)-30 +16474 y(This)c(is)h(useful)g(for)f(installing)g(to)h(lar)-28 +b(ge)485 b(numbers)f(of)h(machines)f(f)-15 b(airly)484 +b(quickly)-101 b(.)485 b(F)-23 b(or)484 b(more)-30 18489 +y(information)386 b(on)i(using)e(tag)h(\002les,)h(see)p +0 TeXcolorgray 21364 18489 a +SDict begin H.S end + 21364 18489 a FU(Section)f(18.4)29113 +18489 y +SDict begin 18.2 H.L end + 29113 18489 a 29113 18489 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKING-TAGS-AND-TAGFILES) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 29113 18489 a Black +FU(.)-30 19599 y +SDict begin H.S end + -30 19599 a -30 19599 a +SDict begin 18.2 H.A end + -30 19599 a +-30 19599 a +SDict begin [ /View [/XYZ H.V] /Dest (1096) cvn H.B /DEST pdfmark end + -30 19599 a 1679 x FU(After)565 b(selecting)e(your)i +(installation)e(method,)h(one)g(of)h(a)f(fe)-39 b(w)565 +b(things)f(will)g(happen.)h(If)f(you)-30 23293 y(selected)326 +b(full)g(or)g(menu,)g(a)g(menu)f(screen)h(will)g(appear)-62 +b(,)327 b(allo)-39 b(wing)325 b(you)h(to)f(select)h(the)g(packages)-30 +25308 y(to)378 b(be)h(installed.)f(If)h(you)f(selected)g(full,)h +(packages)g(will)f(immediately)f(start)h(getting)g(installed)-30 +27322 y(to)573 b(the)g(tar)-28 b(get.)574 b(If)g(you)f(selected)g(ne) +-39 b(wbie,)573 b(packages)g(will)g(be)h(installed)e(until)g(an)i +(optional)-30 29337 y(package)387 b(is)h(reached.)-30 +30447 y +SDict begin H.S end + -30 30447 a -30 30447 a +SDict begin 18.2 H.A end + -30 30447 a -30 30447 +a +SDict begin [ /View [/XYZ H.V] /Dest (1097) cvn H.B /DEST pdfmark end + -30 30447 a 1679 x FU(Note)d(that)f(it)h(is)f(possible)g(to)h(run)f +(out)h(of)g(space)g(while)f(installing.)g(If)h(you)g(selected)f(too)h +(man)-23 b(y)-30 34141 y(packages)395 b(for)g(the)g(amount)g(of)g(free) +h(space)f(on)g(the)g(tar)-28 b(get)395 b(de)-39 b(vice,)396 +b(you)f(will)f(ha)-31 b(v)-23 b(e)395 b(problems.)-30 +36156 y(The)539 b(safest)g(thing)g(to)g(do)g(is)g(to)g(select)g(some)g +(softw)-15 b(are)538 b(and)h(add)g(more)g(later)-62 b(,)540 +b(if)f(you)g(need)-30 38170 y(it.)497 b(This)f(can)h(easily)f(be)h +(done)g(using)f(Slackw)-15 b(are')-85 b(s)495 b(package)i(management)f +(tools.)g(F)-23 b(or)497 b(this)-30 40185 y(information,)387 +b(see)p 0 TeXcolorgray 10429 40185 a +SDict begin H.S end + 10429 40185 a FU(Chapter)g(18) +17273 40185 y +SDict begin 18.2 H.L end + 17273 40185 a 17273 40185 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 17273 40185 +a Black FU(.)-30 41295 y +SDict begin H.S end + -30 41295 a -30 41295 a +SDict begin 18.2 H.A end + -30 +41295 a -30 41295 a +SDict begin [ /View [/XYZ H.V] /Dest (1099) cvn H.B /DEST pdfmark end + -30 41295 a 5182 x FG(CONFIGURE)-30 +47430 y +SDict begin H.S end + -30 47430 a -30 47430 a +SDict begin 18.2 H.A end + -30 47430 a -30 47430 +a +SDict begin [ /View [/XYZ H.V] /Dest (1101) cvn H.B /DEST pdfmark end + -30 47430 a 1992 x FU(The)475 b(con\002gure)f(section)g(allo)-39 +b(ws)474 b(you)g(to)h(do)f(some)h(basic)f(system)g(con\002guration,)g +(no)-39 b(w)474 b(that)-30 51436 y(the)585 b(packages)g(ha)-31 +b(v)-23 b(e)584 b(been)h(installed.)f(What)h(you)g(see)g(here)g +(depends)f(in)h(lar)-28 b(ge)585 b(part)f(upon)-30 53451 +y(which)387 b(softw)-15 b(are)387 b(you)g(ha)-31 b(v)-23 +b(e)387 b(installed.)g(Y)-170 b(ou)386 b(will,)i(ho)-39 +b(we)g(v)-23 b(er)-62 b(,)388 b(al)-15 b(w)g(ays)386 +b(see)h(the)g(follo)-39 b(wing:)-30 53786 y +SDict begin H.S end + -30 53786 +a -30 53786 a +SDict begin 18.2 H.A end + -30 53786 a -30 53786 a +SDict begin [ /View [/XYZ H.V] /Dest (1102) cvn H.B /DEST pdfmark end + -30 53786 a 4392 +x FE(K)-23 b(ernel)429 b(selection)-30 58972 y +SDict begin H.S end + -30 58972 +a -30 58972 a +SDict begin 18.2 H.A end + -30 58972 a -30 58972 a +SDict begin [ /View [/XYZ H.V] /Dest (1104) cvn H.B /DEST pdfmark end + -30 58972 a 1995 +x FU(Here)451 b(you)g(will)g(be)g(ask)-15 b(ed)450 b(to)h(select)g(a)g +(k)-15 b(ernel)451 b(to)f(install.)h(Y)-170 b(ou)450 +b(can)i(install)e(the)h(k)-15 b(ernel)450 b(from)-30 +62982 y(the)482 b(boot)g(disk)g(you)g(used)g(to)g(install,)g(the)g +(Slackw)-15 b(are)482 b(CD-R)-62 b(OM,)482 b(or)g(from)g(another)g +(\003opp)-15 b(y)-30 64996 y(which)337 b(you)g(\(al)-15 +b(w)g(ays)336 b(thinking)g(ahead\))h(ha)-31 b(v)-23 b(e)337 +b(prepared.)h(Or)f(you)g(can)g(elect)g(to)g(skip,)g(in)g(which)-30 +67011 y(case)388 b(the)f(def)-15 b(ault)386 b(k)-15 b(ernel)387 +b(will)g(be)g(installed)g(and)g(play)g(will)g(continue)f(to)i(the)f +(dealer')-85 b(s)387 b(left.)-30 67347 y +SDict begin H.S end + -30 67347 a +-30 67347 a +SDict begin 18.2 H.A end + -30 67347 a -30 67347 a +SDict begin [ /View [/XYZ H.V] /Dest (1105) cvn H.B /DEST pdfmark end + -30 67347 a Black +6445 x FR(32)p Black eop end +%%Page: 33 55 +TeXDict begin 33 54 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.33) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1122) cvn H.B /DEST pdfmark end + -30 -2687 a 37999 -1636 a FR(Chapter)386 +b(3)i(Installation)p Black -30 27615 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 27615 a @beginspecial +22 @llx 60 @lly 450 @urx 286 @ury 4280 @rwi @setspecial +%%BeginDocument: installation/setup-kernel.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 22 60 450 286 + +/Outterbox +{ newpath moveto +0 221 rlineto +118 0 rlineto +23 61 moveto +426 0 rlineto +0 221 rlineto +-155 0 rlineto +23 87 moveto +426 0 rlineto +closepath } def + +/Innerbox +{ moveto +404 0 rlineto +0 66 rlineto +-404 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 13 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +145 277 TitleFont(INSTALL LINUX KERNEL) show + +34 265 PanelFont (In order for your system to boot correctly, a kernel must be) show +34 252 PanelFont (installed. If you've made it this far using the installation) show +34 239 PanelFont (bootdisk's kernel, you should probably install it as your system) show +34 226 PanelFont (kernel (/boot/vmlinuz). If you're sure you know what you're doing,) show +34 213 PanelFont (you can also install your choice of kernels from the Slackware CD,) show +34 200 PanelFont (or a kernel from a floppy disk. You can also skip this menu, using) show +34 187 PanelFont (whatever kernel has been installed already \(such as a generic kernel) show +34 174 PanelFont (from the A series\). Which option would you like?) show + +55 150 ContentFont (bootdisk) show +55 136 ContentFont (cdrom) show +55 122 ContentFont (floppy) show +55 108 ContentFont (skip) show + +133 150 ContentFont (Use the kernel from the installation bootdisk) show +133 136 ContentFont (Use a kernel from the Slackware CD) show +133 122 ContentFont (Install a zimage or bzimage from a DOS floppy) show +133 108 ContentFont (Skip this menu (use the default /boot/vmlinuz)) show + +153 71 ButtonFont (< OK >) show +267 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 27615 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 27615 a -30 29165 a +SDict begin H.S end + -30 +29165 a -30 29165 a +SDict begin 18.2 H.A end + -30 29165 a -30 29165 a +SDict begin [ /View [/XYZ H.V] /Dest (1109) cvn H.B /DEST pdfmark end + -30 29165 +a 5114 x FE(Make)430 b(a)g(boot)h(disk)-30 35073 y +SDict begin H.S end + -30 +35073 a -30 35073 a +SDict begin 18.2 H.A end + -30 35073 a -30 35073 a +SDict begin [ /View [/XYZ H.V] /Dest (1111) cvn H.B /DEST pdfmark end + -30 35073 +a 1996 x FU(Making)402 b(a)h(boot)g(disk)f(for)h(future)g(use)g(is)f +(probably)h(a)g(good)f(idea.)i(Y)-170 b(ou)402 b(will)g(ha)-31 +b(v)-23 b(e)403 b(the)g(option)-30 39083 y(of)531 b(formatting)f(a)g +(\003opp)-15 b(y)530 b(and)17329 39083 y +SDict begin H.S end + 17329 39083 +a 17329 39083 a +SDict begin 18.2 H.A end + 17329 39083 a 17329 39083 a +SDict begin [ /View [/XYZ H.V] /Dest (1112) cvn H.B /DEST pdfmark end + 17329 39083 +a 531 w FU(then)h(creating)f(one)h(of)f(tw)-15 b(o)530 +b(types)g(of)h(boot)f(disk.)h(The)f(\002rst)-30 41098 +y(type,)3464 41098 y +SDict begin H.S end + 3464 41098 a 3464 41098 a +SDict begin 18.2 H.A end + 3464 41098 +a 3464 41098 a +SDict begin [ /View [/XYZ H.V] /Dest (1114) cvn H.B /DEST pdfmark end + 3464 41098 a FP(simple)p FU(,)438 b(simply)f(\(go)h +(\002gure\))g(writes)f(a)i(k)-15 b(ernel)437 b(to)h(the)g(\003opp)-15 +b(y)-101 b(.)437 b(A)h(more)g(\003e)-23 b(xible)437 b(\(and)-30 +43113 y(highly)497 b(recommended\))h(option)f(is)20214 +43113 y +SDict begin H.S end + 20214 43113 a 20214 43113 a +SDict begin 18.2 H.A end + 20214 43113 a 20214 +43113 a +SDict begin [ /View [/XYZ H.V] /Dest (1115) cvn H.B /DEST pdfmark end + 20214 43113 a FP(lilo)p FU(,)h(which)g(will)f(of)h(course)g +(create)h(a)f(lilo)f(boot)h(disk.)-30 45127 y(See)469 +b(LILO)g(in)p 0 TeXcolorgray 8349 45127 a +SDict begin H.S end + 8349 45127 +a FU(Section)387 b(7.1)15323 45127 y +SDict begin 18.2 H.L end + 15323 45127 a 15323 +45127 a +SDict begin [ /Subtype /Link /Dest (BOOTING-LILO) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 15323 45127 a Black 469 w FU(for)469 b(more)g(information.)f +(Of)h(course,)g(you)f(may)h(also)g(choose)f(to)-30 47142 +y(simply)4577 47142 y +SDict begin H.S end + 4577 47142 a 4577 47142 a +SDict begin 18.2 H.A end + 4577 +47142 a 4577 47142 a +SDict begin [ /View [/XYZ H.V] /Dest (1117) cvn H.B /DEST pdfmark end + 4577 47142 a FP(continue)p FU(,)387 +b(in)g(which)g(case)h(no)f(boot)g(disk)g(will)g(be)g(made.)-30 +47478 y +SDict begin H.S end + -30 47478 a -30 47478 a +SDict begin 18.2 H.A end + -30 47478 a -30 47478 +a +SDict begin [ /View [/XYZ H.V] /Dest (1118) cvn H.B /DEST pdfmark end + -30 47478 a -30 49802 a +SDict begin H.S end + -30 49802 a -30 49802 a +SDict begin 18.2 H.A end + -30 +49802 a -30 49802 a +SDict begin [ /View [/XYZ H.V] /Dest (1119) cvn H.B /DEST pdfmark end + -30 49802 a Black 50226 73792 a FR(33)p +Black eop end +%%Page: 34 56 +TeXDict begin 34 55 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.34) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1131) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(3)g(Installation)p Black -30 23837 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 23837 a @beginspecial +21 @llx 60 @lly 438 @urx 252 @ury 4170 @rwi @setspecial +%%BeginDocument: installation/setup-bootdisk.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 438 252 + +/Outterbox +{ newpath moveto +0 184 rlineto +146 0 rlineto +23 61 moveto +414 0 rlineto +0 184 rlineto +-160 0 rlineto +23 87 moveto +414 0 rlineto +closepath } def + +/Innerbox +{ moveto +391 0 rlineto +0 66 rlineto +-391 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +175 242 TitleFont(MAKE BOOTDISK) show + +34 230 PanelFont (It is highly recommended that you make a bootdisk (or two) for your) show +34 216 PanelFont (system at this time. There are two types of bootdisks that you can) show +34 202 PanelFont (make: a simple bootdisk \(which is just a kernel image written directly) show +34 188 PanelFont (to disk\) or a LILO bootdisk \(which is more flexible, but takes a) show +34 174 PanelFont (little longer to load\). Which option would you like?) show + +43 150 ContentFont (format) show +43 136 ContentFont (simple) show +43 122 ContentFont (lilo) show +43 108 ContentFont (continue) show + +106 150 ContentFont (format floppy disk in /dev/fd0) show +106 136 ContentFont (make simple vmlinuz > /dev/fd0 bootdisk) show +106 122 ContentFont (make lilo bootdisk) show +106 108 ContentFont (leave bootdisk menu and continue with the configuration) show + +153 71 ButtonFont (< OK >) show +267 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 23837 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 23837 a -30 25387 a +SDict begin H.S end + -30 +25387 a -30 25387 a +SDict begin 18.2 H.A end + -30 25387 a -30 25387 a +SDict begin [ /View [/XYZ H.V] /Dest (1122) cvn H.B /DEST pdfmark end + -30 25387 +a 5114 x FE(Modem)-30 31296 y +SDict begin H.S end + -30 31296 a -30 31296 a +SDict begin 18.2 H.A end + +-30 31296 a -30 31296 a +SDict begin [ /View [/XYZ H.V] /Dest (1124) cvn H.B /DEST pdfmark end + -30 31296 a 1995 x FU(Y)-170 +b(ou)409 b(will)g(be)h(prompted)f(for)h(modem)e(information.)h(More)h +(speci\002cally)-101 b(,)409 b(you)h(will)f(be)h(ask)-15 +b(ed)-30 35306 y(whether)387 b(you)g(ha)-31 b(v)-23 b(e)387 +b(a)h(modem,)17820 35306 y +SDict begin H.S end + 17820 35306 a 17820 35306 +a +SDict begin 18.2 H.A end + 17820 35306 a 17820 35306 a +SDict begin [ /View [/XYZ H.V] /Dest (1125) cvn H.B /DEST pdfmark end + 17820 35306 a 387 w FU(and)g(if)f(so,)h +(what)f(serial)g(port)g(it)g(is)g(on.)-30 35641 y +SDict begin H.S end + -30 +35641 a -30 35641 a +SDict begin 18.2 H.A end + -30 35641 a -30 35641 a +SDict begin [ /View [/XYZ H.V] /Dest (1127) cvn H.B /DEST pdfmark end + -30 35641 +a -30 37966 a +SDict begin H.S end + -30 37966 a -30 37966 a +SDict begin 18.2 H.A end + -30 37966 a -30 +37966 a +SDict begin [ /View [/XYZ H.V] /Dest (1128) cvn H.B /DEST pdfmark end + -30 37966 a Black 35826 x FR(34)p Black eop end +%%Page: 35 57 +TeXDict begin 35 56 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.35) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1141) cvn H.B /DEST pdfmark end + -30 -2687 a 37999 -1636 a FR(Chapter)386 +b(3)i(Installation)p Black -30 33615 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 33615 a @beginspecial +21 @llx 60 @lly 427 @urx 340 @ury 4060 @rwi @setspecial +%%BeginDocument: installation/setup-modem.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 427 340 + +/Outterbox +{ newpath moveto +0 273 rlineto +126 0 rlineto +23 61 moveto +403 0 rlineto +0 273 rlineto +-115 0 rlineto +23 87 moveto +403 0 rlineto +closepath } def + +/Innerbox +{ moveto +379 0 rlineto +0 131 rlineto +-379 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +155 330 TitleFont(MODEM CONFIGURATION) show + +34 319 PanelFont (This part of the configuration process will create a /dev/modem) show +34 305 PanelFont (link pointing to the callout device (ttyS0, ttyS1, ttyS2, ttyS3)) show +34 291 PanelFont (representing your default modem. You can change this link later) show +34 277 PanelFont (if you move your modem to a different port. If your modem is a) show +34 263 PanelFont (PCI card, it will probably use /dev/ttyS4 or higher. Please) show +34 249 PanelFont (select the callout device which you would like to use for your) show +34 235 PanelFont (modem:) show + +90 218 ContentFont (no modem) show +90 204 ContentFont (/dev/ttyS0) show +90 190 ContentFont (/dev/ttyS1) show +90 176 ContentFont (/dev/ttyS2) show +90 162 ContentFont (/dev/ttyS3) show +90 148 ContentFont (/dev/ttyS4) show +90 134 ContentFont (/dev/ttyS5) show +90 120 ContentFont (/dev/ttyS6) show +90 106 ContentFont (/dev/ttyS7) show + +160 218 ContentFont (do not set a /dev/modem link) show +160 204 ContentFont ((COM1: under DOS)) show +160 190 ContentFont ((COM2: under DOS)) show +160 176 ContentFont ((COM3: under DOS)) show +160 162 ContentFont ((COM4: under DOS)) show +160 148 ContentFont (PCI modem) show +160 134 ContentFont (PCI modem) show +160 120 ContentFont (PCI modem) show +160 106 ContentFont (PCI modem) show + +133 71 ButtonFont (< OK >) show +247 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 33615 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 33615 a 3565 x FU(These)362 +b(ne)-23 b(xt)362 b(con\002guration)f(subsections)h(may)g(or)g(may)g +(not)g(appear)-62 b(,)363 b(depending)f(on)g(whether)-30 +39194 y(or)387 b(not)g(you)h(installed)e(their)h(corresponding)f +(packages.)-30 40305 y +SDict begin H.S end + -30 40305 a -30 40305 a +SDict begin 18.2 H.A end + -30 40305 +a -30 40305 a +SDict begin [ /View [/XYZ H.V] /Dest (1132) cvn H.B /DEST pdfmark end + -30 40305 a 4778 x FE(Timezone)-30 45102 +y +SDict begin H.S end + -30 45102 a -30 45102 a +SDict begin 18.2 H.A end + -30 45102 a -30 45102 a +SDict begin [ /View [/XYZ H.V] /Dest (1134) cvn H.B /DEST pdfmark end + -30 +45102 a -30 45878 a +SDict begin H.S end + -30 45878 a -30 45878 a +SDict begin 18.2 H.A end + -30 45878 +a -30 45878 a +SDict begin [ /View [/XYZ H.V] /Dest (1136) cvn H.B /DEST pdfmark end + -30 45878 a 1995 x FU(This)308 b(one')-85 +b(s)307 b(pretty)h(straightforw)-15 b(ard:)306 b(you)i(will)f(be)h(ask) +-15 b(ed)308 b(what)f(time)h(zone)g(you)g(are)g(in.)g(If)g(you)-30 +49888 y(operate)469 b(on)g(Zulu)g(time,)g(we)h(are)f(v)-23 +b(ery)469 b(sorry;)g(the)g(\(e)-23 b(xtremely)469 b(long\))f(list)h(is) +g(alphabetically)-30 51902 y(ordered,)388 b(and)f(you')-77 +b(re)387 b(at)g(the)g(bottom.)-30 52238 y +SDict begin H.S end + -30 52238 a +-30 52238 a +SDict begin 18.2 H.A end + -30 52238 a -30 52238 a +SDict begin [ /View [/XYZ H.V] /Dest (1137) cvn H.B /DEST pdfmark end + -30 52238 a -30 54562 +a +SDict begin H.S end + -30 54562 a -30 54562 a +SDict begin 18.2 H.A end + -30 54562 a -30 54562 a +SDict begin [ /View [/XYZ H.V] /Dest (1138) cvn H.B /DEST pdfmark end + -30 +54562 a Black 50226 73792 a FR(35)p Black eop end +%%Page: 36 58 +TeXDict begin 36 57 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.36) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1151) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(3)g(Installation)p Black -30 32282 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 32282 a @beginspecial +21 @llx 60 @lly 318 @urx 328 @ury 2970 @rwi @setspecial +%%BeginDocument: installation/setup-timezone.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 318 328 + +/Outterbox +{ newpath moveto +0 261 rlineto +56 0 rlineto +23 61 moveto +294 0 rlineto +0 261 rlineto +-70 0 rlineto +23 87 moveto +294 0 rlineto +closepath } def + +/Innerbox +{ moveto +271 0 rlineto +0 183 rlineto +-271 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +79 318 TitleFont(TIMEZONE CONFIGURATION) show + +34 306 PanelFont (Please select one of the following timezones) show +34 292 PanelFont (for your machine:) show + +60 270 ContentFont (US/Alaska) show +60 257 ContentFont (US/Aleutian) show +60 243 ContentFont (US/Arizona) show +60 229 ContentFont (US/Central) show +60 215 ContentFont (US/East-Indiana) show +60 201 ContentFont (US/Eastern) show +60 187 ContentFont (US/Hawaii) show +60 173 ContentFont (US/Indiana-Starke) show +60 159 ContentFont (US/Michigan) show +60 145 ContentFont (US/Mountain) show +60 131 ContentFont (US/Pacific) show +60 117 ContentFont (US/Samoa) show +60 104 ContentFont (Africa/Abidjan) show + +93 71 ButtonFont (< OK >) show +197 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 32282 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 32282 a -30 33832 a +SDict begin H.S end + -30 +33832 a -30 33832 a +SDict begin 18.2 H.A end + -30 33832 a -30 33832 a +SDict begin [ /View [/XYZ H.V] /Dest (1141) cvn H.B /DEST pdfmark end + -30 33832 +a 5114 x FE(Mouse)-30 38965 y +SDict begin H.S end + -30 38965 a -30 38965 a +SDict begin 18.2 H.A end + +-30 38965 a -30 38965 a +SDict begin [ /View [/XYZ H.V] /Dest (1143) cvn H.B /DEST pdfmark end + -30 38965 a -30 39740 a +SDict begin H.S end + -30 39740 +a -30 39740 a +SDict begin 18.2 H.A end + -30 39740 a -30 39740 a +SDict begin [ /View [/XYZ H.V] /Dest (1145) cvn H.B /DEST pdfmark end + -30 39740 a 1995 +x FU(This)490 b(subsection)g(simply)f(asks)i(what)f(kind)g(of)h(mouse)f +(you)g(ha)-31 b(v)-23 b(e,)491 b(and)f(whether)g(you)h(w)-15 +b(ant)-30 43750 y +SDict begin H.S end + -30 43750 a -30 43750 a +SDict begin 18.2 H.A end + -30 43750 a +-30 43750 a +SDict begin [ /View [/XYZ H.V] /Dest (1146) cvn H.B /DEST pdfmark end + -30 43750 a FP(gpm)p FU(\(8\))387 b(console)g(mouse)g +(support)f(enabled)i(on)f(bootup.)-30 44086 y +SDict begin H.S end + -30 44086 +a -30 44086 a +SDict begin 18.2 H.A end + -30 44086 a -30 44086 a +SDict begin [ /View [/XYZ H.V] /Dest (1147) cvn H.B /DEST pdfmark end + -30 44086 a -30 +46410 a +SDict begin H.S end + -30 46410 a -30 46410 a +SDict begin 18.2 H.A end + -30 46410 a -30 46410 +a +SDict begin [ /View [/XYZ H.V] /Dest (1148) cvn H.B /DEST pdfmark end + -30 46410 a Black 27382 x FR(36)p Black eop end +%%Page: 37 59 +TeXDict begin 37 58 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.37) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p +Black -30 30949 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 30949 a @beginspecial 21 @llx 60 +@lly 474 @urx 316 @ury 4530 @rwi @setspecial +%%BeginDocument: installation/setup-mouse.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 474 316 + +/Outterbox +{ newpath moveto +0 249 rlineto +128 0 rlineto +23 61 moveto +450 0 rlineto +0 249 rlineto +-155 0 rlineto +23 87 moveto +450 0 rlineto +closepath } def + +/Innerbox +{ moveto +425 0 rlineto +0 118 rlineto +-425 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 13 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +155 306 TitleFont(MOUSE CONFIGURATION) show + +34 294 PanelFont (This part of the configuration process will create a /dev/mouse link) show +34 280 PanelFont (pointing to your default mouse device. You can change the /dev/mouse) show +34 266 PanelFont (link later if the mouse doesn't work, or if you switch to a different) show +34 252 PanelFont (type of pointing device. We will also use the information about the) show +34 238 PanelFont (mouse to set the correct protocol for gpm, the Linux mouse server.) show +34 224 PanelFont (Please select a mouse type from the list below:) show + +65 204 ContentFont (ps2) show +65 190 ContentFont (imps2) show +65 176 ContentFont (bare) show +65 162 ContentFont (ms) show +65 148 ContentFont (mman) show +65 134 ContentFont (msc) show +65 120 ContentFont (pnp) show +65 106 ContentFont (usb) show + + + +133 204 ContentFont (PS/2 port mouse (most desktops and laptops)) show +133 190 ContentFont (Microsoft PS/2 Intellimouse) show +133 176 ContentFont (2 button Microsoft compatible serial mouse) show +133 162 ContentFont (3 button Microsoft compatible serial mouse) show +133 148 ContentFont (Logitech serial MouseMan and similar devices) show +133 134 ContentFont (MouseSystems serial (most 3 button serial mice)) show +133 120 ContentFont (Plug and Play (serial mice that do not work with ms)) show +133 106 ContentFont (USB connected mouse) show + + + +153 71 ButtonFont (< OK >) show +267 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 30949 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 30949 a -30 32498 a +SDict begin H.S end + -30 +32498 a -30 32498 a +SDict begin 18.2 H.A end + -30 32498 a -30 32498 a +SDict begin [ /View [/XYZ H.V] /Dest (1151) cvn H.B /DEST pdfmark end + -30 32498 +a 5114 x FE(Har)-31 b(d)-23 b(ware)429 b(c)-31 b(loc)g(k)-30 +38407 y +SDict begin H.S end + -30 38407 a -30 38407 a +SDict begin 18.2 H.A end + -30 38407 a -30 38407 +a +SDict begin [ /View [/XYZ H.V] /Dest (1153) cvn H.B /DEST pdfmark end + -30 38407 a 1995 x FU(This)466 b(subsection)f(asks)h(if)g(your)g +(computer')-85 b(s)465 b(hardw)-15 b(are)466 b(clock)f(is)h(set)g(to)g +(Coordinated)f(Uni-)-30 42417 y(v)-23 b(ersal)387 b(T)-54 +b(ime)387 b(\(UTC)g(or)g(GMT\).)g(Most)g(PCs)g(are)g(not,)h(so)f(you)g +(should)g(probably)f(say)i(no.)-30 42752 y +SDict begin H.S end + -30 42752 +a -30 42752 a +SDict begin 18.2 H.A end + -30 42752 a -30 42752 a +SDict begin [ /View [/XYZ H.V] /Dest (1154) cvn H.B /DEST pdfmark end + -30 42752 a -30 +45077 a +SDict begin H.S end + -30 45077 a -30 45077 a +SDict begin 18.2 H.A end + -30 45077 a -30 45077 +a +SDict begin [ /View [/XYZ H.V] /Dest (1155) cvn H.B /DEST pdfmark end + -30 45077 a -30 63963 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 63963 a @beginspecial 21 +@llx 60 @lly 378 @urx 223 @ury 3570 @rwi @setspecial +%%BeginDocument: installation/setup-hardware-clock.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 378 223 + +/Outterbox +{ newpath moveto +0 157 rlineto +75 0 rlineto +23 61 moveto +354 0 rlineto +0 157 rlineto +-80 0 rlineto +23 87 moveto +354 0 rlineto +closepath } def + +/Innerbox +{ moveto +330 0 rlineto +0 40 rlineto +-330 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont1 +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont2 +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +100 213 TitleFont(HARDWARE CLOCK SET TO UTC?) show + +34 198 PanelFont (Is the hardware clock set to Coordinated Universal Time) show +34 185 PanelFont ((UTC/GMT)? If it is, select YES here. If the hardware) show +34 172 PanelFont (clock is set to the current local time \(this is how most) show +34 159 PanelFont (PCs are set up\), then say NO here. If you are not sure) show +34 146 PanelFont (what this is, you should answer NO here.) show + +73 124 ContentFont1 (NO) show +73 110 ContentFont1 (YES) show + +104 124 ContentFont2 (Hardware clock is set to local time) show +104 110 ContentFont2 (Hardware clock is set to UTC) show + +113 71 ButtonFont (< OK >) show +217 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 63963 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 63963 a -30 65513 a +SDict begin H.S end + -30 +65513 a -30 65513 a +SDict begin 18.2 H.A end + -30 65513 a -30 65513 a +SDict begin [ /View [/XYZ H.V] /Dest (1158) cvn H.B /DEST pdfmark end + -30 65513 +a Black 50169 73792 a FR(37)p Black eop end +%%Page: 38 60 +TeXDict begin 38 59 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.38) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1177) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(3)g(Installation)p Black -30 3611 a FE(Font)-30 4405 +y +SDict begin H.S end + -30 4405 a -30 4405 a +SDict begin 18.2 H.A end + -30 4405 a -30 4405 a +SDict begin [ /View [/XYZ H.V] /Dest (1160) cvn H.B /DEST pdfmark end + -30 4405 +a 1996 x FU(The)g(font)g(subsection)g(allo)-39 b(ws)387 +b(you)g(to)g(choose)g(from)g(a)h(list)e(of)34410 6401 +y +SDict begin H.S end + 34410 6401 a 34410 6401 a +SDict begin 18.2 H.A end + 34410 6401 a 34410 6401 a +SDict begin [ /View [/XYZ H.V] /Dest (1161) cvn H.B /DEST pdfmark end + +34410 6401 a 387 w FU(custom)h(console)g(fonts.)-30 6736 +y +SDict begin H.S end + -30 6736 a -30 6736 a +SDict begin 18.2 H.A end + -30 6736 a -30 6736 a +SDict begin [ /View [/XYZ H.V] /Dest (1163) cvn H.B /DEST pdfmark end + -30 6736 +a -30 9061 a +SDict begin H.S end + -30 9061 a -30 9061 a +SDict begin 18.2 H.A end + -30 9061 a -30 9061 +a +SDict begin [ /View [/XYZ H.V] /Dest (1164) cvn H.B /DEST pdfmark end + -30 9061 a -30 39502 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 39502 a @beginspecial 21 +@llx 60 @lly 407 @urx 327 @ury 3860 @rwi @setspecial +%%BeginDocument: installation/setup-font.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 407 327 + +/Outterbox +{ newpath moveto +0 260 rlineto +105 0 rlineto +23 61 moveto +383 0 rlineto +0 260 rlineto +-130 0 rlineto +23 87 moveto +383 0 rlineto +closepath } def + +/Innerbox +{ moveto +361 0 rlineto +0 170 rlineto +-361 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +130 317 TitleFont(SELECT A SCREEN FONT) show + +34 305 PanelFont (Select one of the following custom fonts. If you decide you) show +34 291 PanelFont (like it, you can make it your new default screen font. You'll) show +34 277 PanelFont (be able to try as many of these as you like.) show + +109 258 ContentFont (161.cp.gz -16) show +109 244 ContentFont (162.cp.gz -16) show +109 230 ContentFont (163.cp.gz -16) show +109 216 ContentFont (164.cp.gz -16) show +109 202 ContentFont (165.cp.gz -16) show +109 188 ContentFont (737.cp.gz -16) show +109 174 ContentFont (880.cp.gz -16) show +109 160 ContentFont (928.cp.gz -16) show +109 146 ContentFont (972.cp.gz -16) show +109 132 ContentFont (Agafari-12.psfu.gz) show +109 118 ContentFont (Agafari-14.psfu.gz) show +109 104 ContentFont (Agafari-16.psfu.gz) show + +123 71 ButtonFont (< OK >) show +227 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 39502 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 39502 a -30 41052 a +SDict begin H.S end + -30 +41052 a -30 41052 a +SDict begin 18.2 H.A end + -30 41052 a -30 41052 a +SDict begin [ /View [/XYZ H.V] /Dest (1167) cvn H.B /DEST pdfmark end + -30 41052 +a 5114 x FE(LILO)-30 46960 y +SDict begin H.S end + -30 46960 a -30 46960 a +SDict begin 18.2 H.A end + +-30 46960 a -30 46960 a +SDict begin [ /View [/XYZ H.V] /Dest (1169) cvn H.B /DEST pdfmark end + -30 46960 a 1996 x FU(Here)370 +b(you)g(are)g(prompted)f(for)h(installation)e(of)i(LILO)f(\(the)32392 +48956 y +SDict begin H.S end + 32392 48956 a 32392 48956 a +SDict begin 18.2 H.A end + 32392 48956 a 32392 +48956 a +SDict begin [ /View [/XYZ H.V] /Dest (1170) cvn H.B /DEST pdfmark end + 32392 48956 a 370 w FU(LInux)h(LOader;)f(see)p +0 TeXcolorgray 44802 48956 a +SDict begin H.S end + 44802 48956 a FU(Section)387 +b(7.1)51776 48956 y +SDict begin 18.2 H.L end + 51776 48956 a 51776 48956 a +SDict begin [ /Subtype /Link /Dest (BOOTING-LILO) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 51776 +48956 a Black -30 50970 a FU(for)h(more)f(information\).)-30 +51248 y +SDict begin H.S end + -30 51248 a -30 51248 a +SDict begin 18.2 H.A end + -30 51248 a -30 51248 +a +SDict begin [ /View [/XYZ H.V] /Dest (1173) cvn H.B /DEST pdfmark end + -30 51248 a -30 53572 a +SDict begin H.S end + -30 53572 a -30 53572 a +SDict begin 18.2 H.A end + -30 +53572 a -30 53572 a +SDict begin [ /View [/XYZ H.V] /Dest (1174) cvn H.B /DEST pdfmark end + -30 53572 a Black 20220 x FR(38)p +Black eop end +%%Page: 39 61 +TeXDict begin 39 60 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.39) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 37999 -1636 a FR(Chapter)386 b(3)i(Installation)p +Black -30 27726 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 27726 a @beginspecial 21 @llx 60 +@lly 419 @urx 287 @ury 3980 @rwi @setspecial +%%BeginDocument: installation/setup-lilo.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 419 287 + +/Outterbox +{ newpath moveto +0 221 rlineto +138 0 rlineto +23 61 moveto +395 0 rlineto +0 221 rlineto +-170 0 rlineto +23 87 moveto +395 0 rlineto +closepath } def + +/Innerbox +{ moveto +372 0 rlineto +0 52 rlineto +-372 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +165 277 TitleFont(INSTALL LILO) show + +34 265 PanelFont (LILO (Linux Loader) is a generic boot loader. There's a simple) show +34 252 PanelFont (installation which tries to automatically set up LILO to boot) show +34 239 PanelFont (Linux (also DOS/Windows if found). For more advanced users,) show +34 226 PanelFont (the expert option offers more control over the installation) show +34 213 PanelFont (process. Since LILO does not work in all cases \(and can damage) show +34 200 PanelFont (partitions if incorrectly installed\), there's the third (safe)) show +34 187 PanelFont (option, which is to skip installing LILO for now. You can) show +34 174 PanelFont (always install it later with the 'liloconfig' command. Which) show +34 160 PanelFont (option would you like?) show + +98 137 ContentFont (simple) show +98 122 ContentFont (expert) show +98 109 ContentFont (skip) show + +140 137 ContentFont (Try to install LILO automatically) show +140 122 ContentFont (Use expert lilo.conf setup menu) show +140 109 ContentFont (Do not install LILO) show + +123 71 ButtonFont (< OK >) show +237 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 27726 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 27726 a 3565 x FU(If)512 +b(Slackw)-15 b(are)512 b(is)g(to)g(be)g(the)g(only)f(operating)h +(system)f(on)h(your)g(computer)-62 b(,)512 b FP(simple)g +FU(should)-30 33305 y(w)-15 b(ork)399 b(just)g(\002ne)g(for)h(you.)g +(If)g(you)f(are)h(dual-booting,)f(the)31670 33305 y +SDict begin H.S end + 31670 +33305 a 31670 33305 a +SDict begin 18.2 H.A end + 31670 33305 a 31670 33305 a +SDict begin [ /View [/XYZ H.V] /Dest (1179) cvn H.B /DEST pdfmark end + 31670 +33305 a FP(expert)g FU(option)g(is)g(a)h(better)g(choice.)-30 +35320 y(See)p 0 TeXcolorgray 2836 35320 a +SDict begin H.S end + 2836 35320 +a FU(Section)386 b(7.3)9809 35320 y +SDict begin 18.2 H.L end + 9809 35320 a 9809 +35320 a +SDict begin [ /Subtype /Link /Dest (BOOTING-DUAL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 9809 35320 a Black 628 w FU(for)628 b(more)f(information)g(on)h +(dual-booting.)e(The)i(third)f(option,)47313 35320 y +SDict begin H.S end + +47313 35320 a 47313 35320 a +SDict begin 18.2 H.A end + 47313 35320 a 47313 35320 +a +SDict begin [ /View [/XYZ H.V] /Dest (1181) cvn H.B /DEST pdfmark end + 47313 35320 a FP(do)743 b(not)-30 37335 y(install)p +FU(,)444 b(is)g(not)g(recommended)f(unless)h(you)g(kno)-39 +b(w)444 b(what)g(you')-77 b(re)443 b(doing)h(and)g(ha)-31 +b(v)-23 b(e)444 b(a)g(v)-23 b(ery)-30 39349 y(good)550 +b(reason)g(for)g(not)g(installing)f(LILO.)h(If)h(you)f(are)g +(performing)f(an)i(e)-23 b(xpert)549 b(install,)h(you)-30 +41364 y(will)511 b(be)h(gi)-39 b(v)-23 b(en)511 b(a)h(choice)f(as)h(to) +f(where)h(LILO)f(will)g(be)h(put.)g(Y)-170 b(ou)510 b(may)i(place)f +(LILO)h(in)f(the)-30 43379 y(MBR)350 b(\(Master)g(Boot)g(Record\))g(of) +h(your)f(hard)h(dri)-39 b(v)-23 b(e,)351 b(in)f(the)g(superblock)g(of)h +(your)f(root)h(Linux)-30 45393 y(partition,)387 b(or)g(on)h(a)f +(\003opp)-15 b(y)386 b(disk.)-30 46504 y +SDict begin H.S end + -30 46504 a +-30 46504 a +SDict begin 18.2 H.A end + -30 46504 a -30 46504 a +SDict begin [ /View [/XYZ H.V] /Dest (1182) cvn H.B /DEST pdfmark end + -30 46504 a 4778 +x FE(Netw)-31 b(ork)-30 51301 y +SDict begin H.S end + -30 51301 a -30 51301 +a +SDict begin 18.2 H.A end + -30 51301 a -30 51301 a +SDict begin [ /View [/XYZ H.V] /Dest (1184) cvn H.B /DEST pdfmark end + -30 51301 a -30 52077 a +SDict begin H.S end + -30 +52077 a -30 52077 a +SDict begin 18.2 H.A end + -30 52077 a -30 52077 a +SDict begin [ /View [/XYZ H.V] /Dest (1186) cvn H.B /DEST pdfmark end + -30 52077 +a 1995 x FU(The)609 b(netw)-15 b(ork)609 b(con\002guration)f +(subsection)g(is)h(actually)31847 54072 y +SDict begin H.S end + 31847 54072 +a 31847 54072 a +SDict begin 18.2 H.A end + 31847 54072 a 31847 54072 a +SDict begin [ /View [/XYZ H.V] /Dest (1187) cvn H.B /DEST pdfmark end + 31847 54072 +a FP(netconfig)p FU(.)g(See)p 0 TeXcolorgray 42386 54072 +a +SDict begin H.S end + 42386 54072 a FU(Section)386 b(5.1)49359 54072 y +SDict begin 18.2 H.L end + 49359 +54072 a 49359 54072 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NETCONFIG) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 49359 54072 a Black 610 w FU(for)-30 +56087 y(more)h(information.)p Black 50226 73792 a FR(39)p +Black eop end +%%Page: 40 62 +TeXDict begin 40 61 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.40) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(3)g(Installation)p +Black -30 3635 a FE(X)431 b(Windo)-23 b(w)429 b(Mana)-15 +b(g)15 b(er)-30 3979 y +SDict begin H.S end + -30 3979 a -30 3979 a +SDict begin 18.2 H.A end + -30 3979 +a -30 3979 a +SDict begin [ /View [/XYZ H.V] /Dest (1191) cvn H.B /DEST pdfmark end + -30 3979 a -30 3979 a +SDict begin H.S end + -30 3979 a -30 3979 +a +SDict begin 18.2 H.A end + -30 3979 a -30 3979 a +SDict begin [ /View [/XYZ H.V] /Dest (1193) cvn H.B /DEST pdfmark end + -30 3979 a -30 4754 a +SDict begin H.S end + -30 4754 +a -30 4754 a +SDict begin 18.2 H.A end + -30 4754 a -30 4754 a +SDict begin [ /View [/XYZ H.V] /Dest (1195) cvn H.B /DEST pdfmark end + -30 4754 a 1670 x +FU(This)618 b(subsection)f(will)h(allo)-39 b(w)618 b(you)g(to)h(choose) +f(a)g(def)-15 b(ault)618 b(windo)-39 b(w)618 b(manager)g(for)g(X.)h +(See)p 0 TeXcolorgray -30 8439 a +SDict begin H.S end + -30 8439 a FU(Chapter)387 +b(6)6039 8439 y +SDict begin 18.2 H.L end + 6039 8439 a 6039 8439 a +SDict begin [ /Subtype /Link /Dest (X-WINDOW-SYSTEM) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 6039 8439 a Black +387 w FU(for)h(more)f(details)g(on)g(X)g(and)g(windo)-39 +b(w)387 b(managers.)-30 8774 y +SDict begin H.S end + -30 8774 a -30 8774 a +SDict begin 18.2 H.A end + +-30 8774 a -30 8774 a +SDict begin [ /View [/XYZ H.V] /Dest (1197) cvn H.B /DEST pdfmark end + -30 8774 a -30 11099 a +SDict begin H.S end + -30 11099 +a -30 11099 a +SDict begin 18.2 H.A end + -30 11099 a -30 11099 a +SDict begin [ /View [/XYZ H.V] /Dest (1198) cvn H.B /DEST pdfmark end + -30 11099 a -30 +41541 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 41541 a @beginspecial 21 @llx 60 @lly 449 +@urx 327 @ury 4280 @rwi @setspecial +%%BeginDocument: installation/setup-xwmconfig.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 449 327 + +/Outterbox +{ newpath moveto +0 260 rlineto +88 0 rlineto +23 61 moveto +425 0 rlineto +0 260 rlineto +-88 0 rlineto +23 87 moveto +425 0 rlineto +closepath } def + +/Innerbox +{ moveto +402 0 rlineto +0 131 rlineto +-402 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +114 318 TitleFont(SELECT DEFAULT WINDOW MANAGER FOR X) show + +34 306 PanelFont (Please select the default window manager to use with the X Window) show +34 292 PanelFont (System. This will define the style of graphical user interface the) show +34 278 PanelFont (computer uses. KDE and GNOME provide the most features. People with) show +34 264 PanelFont (Windows or MacOS experience will find either one easy to use. Other) show +34 250 PanelFont (window managers are easier on system resources, or provide other) show +34 236 PanelFont (unique features.) show + +60 218 ContentFont (xinitrc.kde) show +60 204 ContentFont (xinitrc.gnome) show +60 190 ContentFont (xinitrc.xfce) show +60 176 ContentFont (xinitrc.blackbox) show +60 162 ContentFont (xinitrc.fluxbox) show +60 148 ContentFont (xinitrc.wmaker) show +60 134 ContentFont (xinitrc.fvwm2) show +60 120 ContentFont (xinitrc.fvwm95) show +60 106 ContentFont (xinitrc.twm) show + +171 218 ContentFont (KDE: K Desktop Environment) show +171 204 ContentFont (GNU Network Object Model Environment) show +171 190 ContentFont (The Cholesterol Free Desktop Environment) show +171 176 ContentFont (The blackbox window manager) show +171 162 ContentFont (The fluxbox window manager) show +171 148 ContentFont (WindowMaker) show +171 134 ContentFont (F(?) Virtual Window Manager (version 2.xx)) show +171 120 ContentFont (FVWM2 with a Windows look and feel) show +171 106 ContentFont (Tab Window Manager (very basic)) show + +163 71 ButtonFont (< OK >) show +277 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 41541 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 41541 a -30 43090 a +SDict begin H.S end + -30 +43090 a -30 43090 a +SDict begin 18.2 H.A end + -30 43090 a -30 43090 a +SDict begin [ /View [/XYZ H.V] /Dest (1201) cvn H.B /DEST pdfmark end + -30 43090 +a 2015 x FU(No)432 b(matter)g(which)f(packages)h(you)g(installed,)g +(the)g(last)f(thing)h(con\002gure)f(will)h(do)f(is)h(ask)g(you)-30 +47120 y(whether)497 b(you)g(w)-15 b(ant)497 b(to)g(go)g(ahead)h(and)f +(set)g(a)25778 47120 y +SDict begin H.S end + 25778 47120 a 25778 47120 a +SDict begin 18.2 H.A end + 25778 +47120 a 25778 47120 a +SDict begin [ /View [/XYZ H.V] /Dest (1202) cvn H.B /DEST pdfmark end + 25778 47120 a FP(root)g FU(passw)-15 +b(ord.)496 b(F)-23 b(or)497 b(security)g(reasons,)h(this)-30 +49134 y(is)475 b(probably)g(a)g(good)g(idea;)g(ho)-39 +b(we)g(v)-23 b(er)-62 b(,)475 b(lik)-15 b(e)475 b(almost)f(e)-39 +b(v)-23 b(erything)475 b(else)g(in)g(Slackw)-15 b(are,)475 +b(this)f(is)-30 51149 y(your)387 b(call.)p Black -30 +73792 a FR(40)p Black eop end +%%Page: 41 63 +TeXDict begin 41 62 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.41) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION) cvn H.B +/DEST pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(4)-30 10743 y FO(System)1286 b(Con\002guration)p -30 +18316 51806 56 v -30 19091 a +SDict begin H.S end + -30 19091 a -30 19091 a +SDict begin 18.2 H.A end + +-30 19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (1205) cvn H.B /DEST pdfmark end + -30 19091 a 1051 x FU(Before)448 +b(you)f(can)g(con\002gure)g(the)h(more)f(adv)-39 b(anced)448 +b(parts)f(of)h(your)f(system,)g(it')-85 b(s)447 b(a)h(good)f(idea)-30 +22157 y(to)411 b(learn)h(ho)-39 b(w)411 b(the)h(system)e(is)i(or)-28 +b(g)-8 b(anized)411 b(and)h(what)f(commands)g(can)g(be)h(used)f(to)g +(search)h(for)-30 24171 y(\002les)475 b(and)h(programs.)g(It')-85 +b(s)475 b(also)h(good)f(to)g(kno)-39 b(w)476 b(if)g(you)f(need)h(to)g +(compile)f(a)h(custom)f(k)-15 b(ernel)-30 26186 y(and)415 +b(what)g(the)f(steps)h(for)g(doing)f(that)h(are.)g(This)g(chapter)g +(will)f(f)-15 b(amiliarize)414 b(you)g(with)h(system)-30 +28201 y(or)-28 b(g)-8 b(anization)349 b(and)h(con\002guration)e +(\002les.)i(Then,)g(you)f(can)h(mo)-23 b(v)g(e)348 b(on)i(to)f +(con\002guring)g(the)g(more)-30 30215 y(adv)-39 b(anced)388 +b(parts)f(of)g(the)g(system.)-30 30551 y +SDict begin H.S end + -30 30551 a +-30 30551 a +SDict begin 18.2 H.A end + -30 30551 a -30 30551 a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-OVERVIEW) +cvn H.B /DEST pdfmark end + -30 30551 a 5789 +x FL(4.1)620 b(System)h(Over)22 b(vie)-33 b(w)-30 36802 +y +SDict begin H.S end + -30 36802 a -30 36802 a +SDict begin 18.2 H.A end + -30 36802 a -30 36802 a +SDict begin [ /View [/XYZ H.V] /Dest (1208) cvn H.B /DEST pdfmark end + -30 +36802 a -30 36802 a +SDict begin H.S end + -30 36802 a -30 36802 a +SDict begin 18.2 H.A end + -30 36802 +a -30 36802 a +SDict begin [ /View [/XYZ H.V] /Dest (1210) cvn H.B /DEST pdfmark end + -30 36802 a -30 36802 a +SDict begin H.S end + -30 36802 a -30 +36802 a +SDict begin 18.2 H.A end + -30 36802 a -30 36802 a +SDict begin [ /View [/XYZ H.V] /Dest (1212) cvn H.B /DEST pdfmark end + -30 36802 a -30 37918 +a +SDict begin H.S end + -30 37918 a -30 37918 a +SDict begin 18.2 H.A end + -30 37918 a -30 37918 a +SDict begin [ /View [/XYZ H.V] /Dest (1214) cvn H.B /DEST pdfmark end + -30 +37918 a 1552 x FU(It')-85 b(s)468 b(important)e(to)i(understand)f(ho) +-39 b(w)468 b(a)g(Linux)f(system)g(is)h(put)f(together)g(before)h(di) +-39 b(ving)467 b(into)-30 41485 y(the)494 b(v)-39 b(arious)495 +b(con\002guration)e(aspects.)h(A)h(Linux)e(system)h(is)g +(signi\002cantly)f(dif)-39 b(ferent)495 b(from)f(a)-30 +43500 y(DOS,)518 b(W)-62 b(indo)-39 b(ws,)519 b(or)f(Macintosh)f +(system)h(\(with)g(the)g(e)-23 b(xception)518 b(of)g(the)g(Unix-based)g +(Mac)-30 45514 y(OS)474 b(X\),)g(b)-31 b(ut)474 b(these)g(sections)g +(will)f(help)h(you)g(get)g(acquainted)f(with)h(the)g(layout)g(so)f +(that)h(you)-30 47529 y(can)388 b(easily)e(con\002gure)h(your)g(system) +g(to)g(meet)g(your)g(needs.)-30 47865 y +SDict begin H.S end + -30 47865 a -30 +47865 a +SDict begin 18.2 H.A end + -30 47865 a -30 47865 a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-LAYOUT) +cvn H.B /DEST pdfmark end + -30 47865 a 5026 x FG(File)517 +b(System)h(La)-37 b(y)-46 b(out)-30 53276 y +SDict begin H.S end + -30 53276 +a -30 53276 a +SDict begin 18.2 H.A end + -30 53276 a -30 53276 a +SDict begin [ /View [/XYZ H.V] /Dest (1217) cvn H.B /DEST pdfmark end + -30 53276 a -30 +53276 a +SDict begin H.S end + -30 53276 a -30 53276 a +SDict begin 18.2 H.A end + -30 53276 a -30 53276 +a +SDict begin [ /View [/XYZ H.V] /Dest (1219) cvn H.B /DEST pdfmark end + -30 53276 a -30 54206 a +SDict begin H.S end + -30 54206 a -30 54206 a +SDict begin 18.2 H.A end + -30 +54206 a -30 54206 a +SDict begin [ /View [/XYZ H.V] /Dest (1222) cvn H.B /DEST pdfmark end + -30 54206 a 1630 x FU(The)537 b(\002rst)g +(noticeable)g(dif)-39 b(ference)538 b(between)f(Slackw)-15 +b(are)537 b(Linux)f(and)i(a)f(DOS)g(or)g(W)-62 b(indo)-39 +b(ws)-30 57850 y(system)425 b(is)g(the)h(\002lesystem.)f(F)-23 +b(or)425 b(starters,)g(we)h(do)g(not)f(use)g(dri)-39 +b(v)-23 b(e)426 b(letters)f(to)h(denote)f(dif)-39 b(ferent)-30 +59865 y(partitions.)523 b(Under)h(Linux,)f(there)h(is)f(one)h(main)f +(directory)-101 b(.)524 b(Y)-170 b(ou)523 b(can)h(relate)g(this)f(to)h +(the)50288 59865 y +SDict begin H.S end + 50288 59865 a 50288 59865 a +SDict begin 18.2 H.A end + 50288 +59865 a 50288 59865 a +SDict begin [ /View [/XYZ H.V] /Dest (1223) cvn H.B /DEST pdfmark end + 50288 59865 a FP(C:)-30 61880 y +FU(dri)-39 b(v)-23 b(e)516 b(under)h(DOS.)f(Each)h(partition)e(on)i +(your)f(system)g(is)g(mounted)g(to)g(a)h(directory)f(on)g(the)-30 +63894 y(main)387 b(directory)-101 b(.)388 b(It')-85 b(s)387 +b(kind)g(of)g(lik)-15 b(e)386 b(an)i(e)-39 b(v)-23 b(er)-31 +b(-e)-23 b(xpanding)386 b(hard)i(disk.)-30 64230 y +SDict begin H.S end + -30 +64230 a -30 64230 a +SDict begin 18.2 H.A end + -30 64230 a -30 64230 a +SDict begin [ /View [/XYZ H.V] /Dest (1224) cvn H.B /DEST pdfmark end + -30 64230 +a Black 50226 73672 a FR(41)p Black eop end +%%Page: 42 64 +TeXDict begin 42 63 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.42) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 +b(ation)p Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 +2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (1226) cvn H.B /DEST pdfmark end + -30 2383 a 1107 x FU(W)-124 b(e)357 +b(call)f(the)h(main)f(directory)g(the)h(root)f(directory)-101 +b(,)357 b(and)g(it')-85 b(s)356 b(denoted)g(with)g(a)h(single)f(slash)g +(\()50246 3490 y +SDict begin H.S end + 50246 3490 a 50246 3490 a +SDict begin 18.2 H.A end + 50246 3490 +a 50246 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (1227) cvn H.B /DEST pdfmark end + 50246 3490 a FQ(/)p FU(\).)-30 5505 y(This)515 +b(concept)h(may)f(seem)g(strange,)h(b)-31 b(ut)515 b(it)h(actually)f +(mak)-15 b(es)515 b(life)g(easy)h(for)f(you)h(when)f(you)-30 +7520 y(w)-15 b(ant)350 b(to)h(add)f(more)h(space.)g(F)-23 +b(or)350 b(e)-23 b(xample,)350 b(let')-85 b(s)350 b(say)h(you)f(run)h +(out)f(of)h(space)g(on)f(the)h(dri)-39 b(v)-23 b(e)350 +b(that)-30 9534 y(has)2549 9534 y +SDict begin H.S end + 2549 9534 a 2549 9534 +a +SDict begin 18.2 H.A end + 2549 9534 a 2549 9534 a +SDict begin [ /View [/XYZ H.V] /Dest (1228) cvn H.B /DEST pdfmark end + 2549 9534 a FQ(/home)510 b +FU(on)j(it.)g(Most)f(people)h(install)f(Slackw)-15 b(are)512 +b(and)h(mak)-15 b(e)512 b(one)h(big)g(root)f(dri)-39 +b(v)-23 b(e.)514 b(W)-124 b(ell,)-30 11549 y(since)359 +b(a)g(partition)f(can)h(be)h(mounted)e(to)h(an)-23 b(y)358 +b(directory)-101 b(,)360 b(you)e(can)i(simply)e(go)g(to)h(the)g(store)g +(and)-30 13564 y(pick)456 b(up)f(a)h(ne)-39 b(w)456 b(hard)g(dri)-39 +b(v)-23 b(e)455 b(and)h(mount)f(it)g(to)26121 13564 y +SDict begin H.S end + +26121 13564 a 26121 13564 a +SDict begin 18.2 H.A end + 26121 13564 a 26121 13564 +a +SDict begin [ /View [/XYZ H.V] /Dest (1229) cvn H.B /DEST pdfmark end + 26121 13564 a FQ(/home)p FU(.)e(Y)-170 b(ou')-77 b(v)-23 +b(e)454 b(no)-39 b(w)456 b(grafted)f(on)h(some)f(more)-30 +15578 y(space)387 b(to)h(your)f(system.)g(And)g(all)g(without)f(ha)-31 +b(ving)387 b(to)g(mo)-23 b(v)g(e)387 b(man)-23 b(y)386 +b(things)h(around.)-30 16689 y +SDict begin H.S end + -30 16689 a -30 16689 +a +SDict begin 18.2 H.A end + -30 16689 a -30 16689 a +SDict begin [ /View [/XYZ H.V] /Dest (1230) cvn H.B /DEST pdfmark end + -30 16689 a 1679 x FU(Belo)-39 +b(w)-101 b(,)354 b(you)g(will)f(\002nd)g(descriptions)g(of)h(the)f +(major)h(top)f(le)-39 b(v)-23 b(el)353 b(directories)h(under)f(Slackw) +-15 b(are.)-30 18703 y +SDict begin H.S end + -30 18703 a -30 18703 a +SDict begin 18.2 H.A end + -30 18703 +a -30 18703 a +SDict begin [ /View [/XYZ H.V] /Dest (1231) cvn H.B /DEST pdfmark end + -30 18703 a -30 21028 a +SDict begin H.S end + -30 21028 a -30 +21028 a +SDict begin 18.2 H.A end + -30 21028 a -30 21028 a +SDict begin [ /View [/XYZ H.V] /Dest (1233) cvn H.B /DEST pdfmark end + -30 21028 a -30 21028 +a +SDict begin H.S end + -30 21028 a -30 21028 a +SDict begin 18.2 H.A end + -30 21028 a -30 21028 a +SDict begin [ /View [/XYZ H.V] /Dest (1234) cvn H.B /DEST pdfmark end + -30 +21028 a 1679 x FQ(bin)-30 22707 y +SDict begin H.S end + -30 22707 a -30 22707 +a +SDict begin 18.2 H.A end + -30 22707 a -30 22707 a +SDict begin [ /View [/XYZ H.V] /Dest (1235) cvn H.B /DEST pdfmark end + -30 22707 a Black Black 3070 +25497 a +SDict begin H.S end + 3070 25497 a 3070 25497 a +SDict begin 18.2 H.A end + 3070 25497 a 3070 25497 +a +SDict begin [ /View [/XYZ H.V] /Dest (1236) cvn H.B /DEST pdfmark end + 3070 25497 a FU(Essential)385 b(user)h(programs)g(are)g(stored)g +(here.)h(These)f(represent)g(the)g(bare)g(minimum)f(set)3070 +27511 y(of)393 b(programs)f(required)h(for)g(a)g(user)g(to)g(use)g(the) +g(system.)f(Things)h(lik)-15 b(e)392 b(the)h(shell)f(and)h(the)3070 +29526 y(\002lesystem)541 b(commands)h(\()17672 29526 +y +SDict begin H.S end + 17672 29526 a 17672 29526 a +SDict begin 18.2 H.A end + 17672 29526 a 17672 29526 +a +SDict begin [ /View [/XYZ H.V] /Dest (1237) cvn H.B /DEST pdfmark end + 17672 29526 a FP(ls)p FU(,)20090 29526 y +SDict begin H.S end + 20090 29526 +a 20090 29526 a +SDict begin 18.2 H.A end + 20090 29526 a 20090 29526 a +SDict begin [ /View [/XYZ H.V] /Dest (1238) cvn H.B /DEST pdfmark end + 20090 29526 +a FP(cp)p FU(,)h(and)g(so)f(on\))h(are)g(stored)f(here.)h(The)43133 +29526 y +SDict begin H.S end + 43133 29526 a 43133 29526 a +SDict begin 18.2 H.A end + 43133 29526 a 43133 +29526 a +SDict begin [ /View [/XYZ H.V] /Dest (1239) cvn H.B /DEST pdfmark end + 43133 29526 a FQ(/bin)d FU(directory)3070 31541 +y(usually)420 b(doesn')-28 b(t)420 b(recei)-39 b(v)-23 +b(e)422 b(modi\002cation)d(after)i(installation.)f(If)i(it)e(does,)i +(it')-85 b(s)420 b(usually)g(in)3070 33555 y(the)387 +b(form)g(of)g(package)h(upgrades)f(that)g(we)g(pro)-23 +b(vide.)-30 35441 y +SDict begin H.S end + -30 35441 a -30 35441 a +SDict begin 18.2 H.A end + -30 35441 +a -30 35441 a +SDict begin [ /View [/XYZ H.V] /Dest (1241) cvn H.B /DEST pdfmark end + -30 35441 a -30 35441 a +SDict begin H.S end + -30 35441 a -30 +35441 a +SDict begin 18.2 H.A end + -30 35441 a -30 35441 a +SDict begin [ /View [/XYZ H.V] /Dest (1242) cvn H.B /DEST pdfmark end + -30 35441 a 1679 x FQ(boot)-30 +37120 y +SDict begin H.S end + -30 37120 a -30 37120 a +SDict begin 18.2 H.A end + -30 37120 a -30 37120 +a +SDict begin [ /View [/XYZ H.V] /Dest (1243) cvn H.B /DEST pdfmark end + -30 37120 a Black Black 3070 39909 a +SDict begin H.S end + 3070 39909 a 3070 +39909 a +SDict begin 18.2 H.A end + 3070 39909 a 3070 39909 a +SDict begin [ /View [/XYZ H.V] /Dest (1244) cvn H.B /DEST pdfmark end + 3070 39909 a FU(Files)523 +b(that)h(are)g(used)g(by)g(the)g(Linux)f(Loader)h(\(LILO\).)h(This)e +(directory)h(also)g(recei)-39 b(v)-23 b(es)3070 41924 +y(little)305 b(modi\002cation)g(after)h(an)g(installation.)f(The)h(k) +-15 b(ernel)306 b(is)f(stored)h(here)g(as)h(of)f(Slackw)-15 +b(are)3070 43939 y(8.1.)391 b(In)f(earlier)g(releases)h(of)f(Slackw)-15 +b(are,)390 b(the)g(k)-15 b(ernel)390 b(w)-15 b(as)389 +b(simply)h(stored)g(under)48032 43939 y +SDict begin H.S end + 48032 43939 a +48032 43939 a +SDict begin 18.2 H.A end + 48032 43939 a 48032 43939 a +SDict begin [ /View [/XYZ H.V] /Dest (1245) cvn H.B /DEST pdfmark end + 48032 43939 +a FQ(/)f FU(,)i(b)-31 b(ut)3070 45953 y(common)530 b(practice)h(is)f +(to)h(put)g(the)g(k)-15 b(ernel)530 b(and)h(related)g(\002les)f(here)h +(to)g(f)-15 b(acilitate)530 b(dual-)3070 47968 y(booting.)-30 +49853 y +SDict begin H.S end + -30 49853 a -30 49853 a +SDict begin 18.2 H.A end + -30 49853 a -30 49853 +a +SDict begin [ /View [/XYZ H.V] /Dest (1247) cvn H.B /DEST pdfmark end + -30 49853 a -30 49853 a +SDict begin H.S end + -30 49853 a -30 49853 a +SDict begin 18.2 H.A end + -30 +49853 a -30 49853 a +SDict begin [ /View [/XYZ H.V] /Dest (1248) cvn H.B /DEST pdfmark end + -30 49853 a 1679 x FQ(dev)-30 51532 +y +SDict begin H.S end + -30 51532 a -30 51532 a +SDict begin 18.2 H.A end + -30 51532 a -30 51532 a +SDict begin [ /View [/XYZ H.V] /Dest (1249) cvn H.B /DEST pdfmark end + -30 +51532 a Black Black 3070 54322 a +SDict begin H.S end + 3070 54322 a 3070 54322 +a +SDict begin 18.2 H.A end + 3070 54322 a 3070 54322 a +SDict begin [ /View [/XYZ H.V] /Dest (1250) cvn H.B /DEST pdfmark end + 3070 54322 a FU(Ev)-23 b(erything)380 +b(in)h(Linux)g(is)h(treated)f(as)h(a)g(\002le,)f(e)-39 +b(v)-23 b(en)382 b(hardw)-15 b(are)381 b(de)-39 b(vices)382 +b(lik)-15 b(e)381 b(serial)g(ports,)3070 56337 y(hard)367 +b(disks,)h(and)g(scanners.)g(In)g(order)g(to)f(access)h(these)g(de)-39 +b(vices,)368 b(a)g(special)g(\002le)f(called)h(a)3070 +58351 y(de)-39 b(vice)380 b(node)g(has)g(to)f(be)i(present.)f(All)f(de) +-39 b(vice)381 b(nodes)e(are)i(stored)e(in)h(the)43009 +58351 y +SDict begin H.S end + 43009 58351 a 43009 58351 a +SDict begin 18.2 H.A end + 43009 58351 a 43009 +58351 a +SDict begin [ /View [/XYZ H.V] /Dest (1251) cvn H.B /DEST pdfmark end + 43009 58351 a FQ(/dev)e FU(directory)-101 b(.)3070 +60366 y(Y)-170 b(ou)386 b(will)h(\002nd)g(this)g(to)g(be)g(true)g +(across)h(man)-23 b(y)386 b(Unix-lik)-15 b(e)386 b(operating)h +(systems.)-30 62251 y +SDict begin H.S end + -30 62251 a -30 62251 a +SDict begin 18.2 H.A end + -30 62251 +a -30 62251 a +SDict begin [ /View [/XYZ H.V] /Dest (1253) cvn H.B /DEST pdfmark end + -30 62251 a -30 62251 a +SDict begin H.S end + -30 62251 a -30 +62251 a +SDict begin 18.2 H.A end + -30 62251 a -30 62251 a +SDict begin [ /View [/XYZ H.V] /Dest (1254) cvn H.B /DEST pdfmark end + -30 62251 a 1679 x FQ(etc)-30 +63930 y +SDict begin H.S end + -30 63930 a -30 63930 a +SDict begin 18.2 H.A end + -30 63930 a -30 63930 +a +SDict begin [ /View [/XYZ H.V] /Dest (1255) cvn H.B /DEST pdfmark end + -30 63930 a Black Black 3070 66720 a +SDict begin H.S end + 3070 66720 a 3070 +66720 a +SDict begin 18.2 H.A end + 3070 66720 a 3070 66720 a +SDict begin [ /View [/XYZ H.V] /Dest (1256) cvn H.B /DEST pdfmark end + 3070 66720 a FU(This)332 +b(directory)h(holds)f(system)h(con\002guration)f(\002les.)g(Ev)-23 +b(erything)332 b(from)h(the)g(X)g(W)-62 b(indo)-39 b(w)p +Black -30 73672 a FR(42)p Black eop end +%%Page: 43 65 +TeXDict begin 43 64 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.43) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) +-23 b(ation)p Black 3070 3611 a FU(con\002guration)462 +b(\002le,)i(the)g(user)g(database,)g(to)f(the)h(system)f(startup)g +(scripts.)h(The)g(system)3070 5626 y(administrator)386 +b(will)g(become)i(quite)e(f)-15 b(amiliar)387 b(with)g(this)f +(directory)h(o)-23 b(v)g(er)387 b(time.)-30 7511 y +SDict begin H.S end + -30 +7511 a -30 7511 a +SDict begin 18.2 H.A end + -30 7511 a -30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (1258) cvn H.B /DEST pdfmark end + -30 7511 a -30 +7511 a +SDict begin H.S end + -30 7511 a -30 7511 a +SDict begin 18.2 H.A end + -30 7511 a -30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (1259) cvn H.B /DEST pdfmark end + -30 +7511 a 1679 x FQ(home)-30 9190 y +SDict begin H.S end + -30 9190 a -30 9190 +a +SDict begin 18.2 H.A end + -30 9190 a -30 9190 a +SDict begin [ /View [/XYZ H.V] /Dest (1260) cvn H.B /DEST pdfmark end + -30 9190 a Black Black 3070 11980 +a +SDict begin H.S end + 3070 11980 a 3070 11980 a +SDict begin 18.2 H.A end + 3070 11980 a 3070 11980 a +SDict begin [ /View [/XYZ H.V] /Dest (1261) cvn H.B /DEST pdfmark end + +3070 11980 a FU(Linux)582 b(is)g(a)h(multiuser)e(operating)h(system.)h +(Each)f(user)h(on)f(the)h(system)e(is)i(gi)-39 b(v)-23 +b(en)582 b(an)3070 13994 y(account)511 b(and)h(a)g(unique)f(directory)g +(for)h(personal)f(\002les.)h(This)f(directory)g(is)h(called)f(the)3070 +16009 y(user')-85 b(s)512 b(home)h(directory)-101 b(.)513 +b(The)20472 16009 y +SDict begin H.S end + 20472 16009 a 20472 16009 a +SDict begin 18.2 H.A end + 20472 +16009 a 20472 16009 a +SDict begin [ /View [/XYZ H.V] /Dest (1262) cvn H.B /DEST pdfmark end + 20472 16009 a FQ(/home)d FU(directory)j(is)f(pro) +-23 b(vided)513 b(as)g(the)f(def)-15 b(ault)513 b(location)3070 +18024 y(for)387 b(user)g(home)g(directories.)-30 19589 +y +SDict begin H.S end + -30 19589 a -30 19589 a +SDict begin 18.2 H.A end + -30 19589 a -30 19589 a +SDict begin [ /View [/XYZ H.V] /Dest (1264) cvn H.B /DEST pdfmark end + -30 +19589 a -30 19589 a +SDict begin H.S end + -30 19589 a -30 19589 a +SDict begin 18.2 H.A end + -30 19589 +a -30 19589 a +SDict begin [ /View [/XYZ H.V] /Dest (1265) cvn H.B /DEST pdfmark end + -30 19589 a 1999 x FQ(lib)-30 21588 y +SDict begin H.S end + -30 +21588 a -30 21588 a +SDict begin 18.2 H.A end + -30 21588 a -30 21588 a +SDict begin [ /View [/XYZ H.V] /Dest (1266) cvn H.B /DEST pdfmark end + -30 21588 +a Black Black 3070 24378 a +SDict begin H.S end + 3070 24378 a 3070 24378 a +SDict begin 18.2 H.A end + +3070 24378 a 3070 24378 a +SDict begin [ /View [/XYZ H.V] /Dest (1267) cvn H.B /DEST pdfmark end + 3070 24378 a FU(System)554 +b(libraries)g(that)h(are)g(required)g(for)g(basic)f(operation)h(are)g +(stored)g(here.)g(The)g(C)3070 26392 y(library)-101 b(,)404 +b(the)f(dynamic)g(loader)-62 b(,)404 b(the)g(ncurses)f(library)-101 +b(,)404 b(and)g(k)-15 b(ernel)403 b(modules)f(are)i(among)3070 +28407 y(the)387 b(things)f(stored)h(here.)-30 30292 y +SDict begin H.S end + +-30 30292 a -30 30292 a +SDict begin 18.2 H.A end + -30 30292 a -30 30292 a +SDict begin [ /View [/XYZ H.V] /Dest (1269) cvn H.B /DEST pdfmark end + -30 30292 +a -30 30292 a +SDict begin H.S end + -30 30292 a -30 30292 a +SDict begin 18.2 H.A end + -30 30292 a -30 +30292 a +SDict begin [ /View [/XYZ H.V] /Dest (1270) cvn H.B /DEST pdfmark end + -30 30292 a 1679 x FQ(mnt)-30 31971 y +SDict begin H.S end + -30 31971 +a -30 31971 a +SDict begin 18.2 H.A end + -30 31971 a -30 31971 a +SDict begin [ /View [/XYZ H.V] /Dest (1271) cvn H.B /DEST pdfmark end + -30 31971 a Black +Black 3070 34761 a +SDict begin H.S end + 3070 34761 a 3070 34761 a +SDict begin 18.2 H.A end + 3070 34761 +a 3070 34761 a +SDict begin [ /View [/XYZ H.V] /Dest (1272) cvn H.B /DEST pdfmark end + 3070 34761 a FU(This)484 b(directory)g(contains)g +(temporary)h(mount)f(points)g(for)h(w)-15 b(orking)483 +b(on)i(hard)g(disks)f(or)3070 36776 y(remo)-23 b(v)-39 +b(able)389 b(dri)-39 b(v)-23 b(es.)389 b(Here)h(you')-15 +b(ll)389 b(\002nd)g(mount)f(points)h(for)h(your)f(CD-R)-62 +b(OM)389 b(and)g(\003opp)-15 b(y)3070 38790 y(dri)-39 +b(v)-23 b(es.)-30 40356 y +SDict begin H.S end + -30 40356 a -30 40356 a +SDict begin 18.2 H.A end + -30 +40356 a -30 40356 a +SDict begin [ /View [/XYZ H.V] /Dest (1274) cvn H.B /DEST pdfmark end + -30 40356 a -30 40356 a +SDict begin H.S end + -30 40356 +a -30 40356 a +SDict begin 18.2 H.A end + -30 40356 a -30 40356 a +SDict begin [ /View [/XYZ H.V] /Dest (1275) cvn H.B /DEST pdfmark end + -30 40356 a 1999 +x FQ(opt)-30 42624 y +SDict begin H.S end + -30 42624 a -30 42624 a +SDict begin 18.2 H.A end + -30 42624 +a -30 42624 a +SDict begin [ /View [/XYZ H.V] /Dest (1276) cvn H.B /DEST pdfmark end + -30 42624 a Black Black 3070 45144 a +SDict begin H.S end + 3070 +45144 a 3070 45144 a +SDict begin 18.2 H.A end + 3070 45144 a 3070 45144 a +SDict begin [ /View [/XYZ H.V] /Dest (1277) cvn H.B /DEST pdfmark end + 3070 45144 +a FU(Optional)325 b(softw)-15 b(are)325 b(packages.)h(The)f(idea)h +(behind)31046 45144 y +SDict begin H.S end + 31046 45144 a 31046 45144 a +SDict begin 18.2 H.A end + 31046 +45144 a 31046 45144 a +SDict begin [ /View [/XYZ H.V] /Dest (1278) cvn H.B /DEST pdfmark end + 31046 45144 a FQ(/opt)e FU(is)h(that)h(each)g +(softw)-15 b(are)325 b(package)3070 47159 y(installs)533 +b(to)9736 47159 y +SDict begin H.S end + 9736 47159 a 9736 47159 a +SDict begin 18.2 H.A end + 9736 47159 +a 9736 47159 a +SDict begin [ /View [/XYZ H.V] /Dest (1279) cvn H.B /DEST pdfmark end + 9736 47159 a FQ(/opt/software-)55 b(package)p +FU(,)521 b(which)534 b(mak)-15 b(es)533 b(it)h(easy)h(to)f(remo)-23 +b(v)g(e)533 b(later)-85 b(.)534 b(Slack-)3070 49174 y(w)-15 +b(are)355 b(distrib)-31 b(utes)355 b(some)h(things)f(in)22539 +49174 y +SDict begin H.S end + 22539 49174 a 22539 49174 a +SDict begin 18.2 H.A end + 22539 49174 a 22539 +49174 a +SDict begin [ /View [/XYZ H.V] /Dest (1281) cvn H.B /DEST pdfmark end + 22539 49174 a FQ(/opt)e FU(\(such)j(as)g(KDE)g(in)35862 +49174 y +SDict begin H.S end + 35862 49174 a 35862 49174 a +SDict begin 18.2 H.A end + 35862 49174 a 35862 +49174 a +SDict begin [ /View [/XYZ H.V] /Dest (1282) cvn H.B /DEST pdfmark end + 35862 49174 a FQ(/opt/kde)p FU(\),)c(b)-31 b(ut)356 +b(you)f(are)i(free)3070 51188 y(to)387 b(add)g(an)-23 +b(ything)386 b(you)h(w)-15 b(ant)387 b(to)20766 51188 +y +SDict begin H.S end + 20766 51188 a 20766 51188 a +SDict begin 18.2 H.A end + 20766 51188 a 20766 51188 +a +SDict begin [ /View [/XYZ H.V] /Dest (1283) cvn H.B /DEST pdfmark end + 20766 51188 a FQ(/opt)p FU(.)-30 53074 y +SDict begin H.S end + -30 53074 +a -30 53074 a +SDict begin 18.2 H.A end + -30 53074 a -30 53074 a +SDict begin [ /View [/XYZ H.V] /Dest (1285) cvn H.B /DEST pdfmark end + -30 53074 a -30 +53074 a +SDict begin H.S end + -30 53074 a -30 53074 a +SDict begin 18.2 H.A end + -30 53074 a -30 53074 +a +SDict begin [ /View [/XYZ H.V] /Dest (1286) cvn H.B /DEST pdfmark end + -30 53074 a 1679 x FQ(proc)-30 55022 y +SDict begin H.S end + -30 55022 a +-30 55022 a +SDict begin 18.2 H.A end + -30 55022 a -30 55022 a +SDict begin [ /View [/XYZ H.V] /Dest (1287) cvn H.B /DEST pdfmark end + -30 55022 a Black +Black 3070 57542 a +SDict begin H.S end + 3070 57542 a 3070 57542 a +SDict begin 18.2 H.A end + 3070 57542 +a 3070 57542 a +SDict begin [ /View [/XYZ H.V] /Dest (1288) cvn H.B /DEST pdfmark end + 3070 57542 a FU(This)548 b(is)h(a)g(unique)g(directory) +-101 b(.)549 b(It')-85 b(s)549 b(not)g(really)f(part)h(of)g(the)g +(\002lesystem,)g(b)-31 b(ut)548 b(a)i(virtual)3070 59557 +y(\002lesystem)464 b(that)i(pro)-23 b(vides)465 b(access)h(to)g(k)-15 +b(ernel)465 b(information.)g(V)-172 b(arious)465 b(pieces)h(of)g(infor) +-31 b(-)3070 61572 y(mation)422 b(that)h(the)g(k)-15 +b(ernel)423 b(w)-15 b(ants)422 b(you)h(to)g(kno)-39 b(w)424 +b(are)f(con)-62 b(v)-23 b(e)g(yed)423 b(to)g(you)g(through)f(\002les)h +(in)3070 63586 y(the)5417 63586 y +SDict begin H.S end + 5417 63586 a 5417 63586 +a +SDict begin 18.2 H.A end + 5417 63586 a 5417 63586 a +SDict begin [ /View [/XYZ H.V] /Dest (1289) cvn H.B /DEST pdfmark end + 5417 63586 a FQ(/proc)451 +b FU(directory)-101 b(.)454 b(Y)-170 b(ou)453 b(can)h(also)f(send)h +(information)e(to)i(the)f(k)-15 b(ernel)453 b(through)g(some)3070 +65601 y(of)387 b(these)g(\002les.)g(T)-54 b(ry)387 b(doing)18167 +65601 y +SDict begin H.S end + 18167 65601 a 18167 65601 a +SDict begin 18.2 H.A end + 18167 65601 a 18167 +65601 a +SDict begin [ /View [/XYZ H.V] /Dest (1290) cvn H.B /DEST pdfmark end + 18167 65601 a FP(cat)744 b(/proc/cpuinfo)p FU(.)p +Black 50226 73792 a FR(43)p Black eop end +%%Page: 44 66 +TeXDict begin 44 65 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.44) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 +b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1292) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1293) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FQ(root)-30 +3611 y +SDict begin H.S end + -30 3611 a -30 3611 a +SDict begin 18.2 H.A end + -30 3611 a -30 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (1294) cvn H.B /DEST pdfmark end + -30 +3611 a Black Black 3070 6401 a +SDict begin H.S end + 3070 6401 a 3070 6401 +a +SDict begin 18.2 H.A end + 3070 6401 a 3070 6401 a +SDict begin [ /View [/XYZ H.V] /Dest (1295) cvn H.B /DEST pdfmark end + 3070 6401 a FU(The)420 b(system)f +(administrator)g(is)h(kno)-39 b(wn)420 b(as)27076 6401 +y +SDict begin H.S end + 27076 6401 a 27076 6401 a +SDict begin 18.2 H.A end + 27076 6401 a 27076 6401 a +SDict begin [ /View [/XYZ H.V] /Dest (1296) cvn H.B /DEST pdfmark end + +27076 6401 a FP(root)f FU(on)h(the)h(system.)39868 6401 +y +SDict begin H.S end + 39868 6401 a 39868 6401 a +SDict begin 18.2 H.A end + 39868 6401 a 39868 6401 a +SDict begin [ /View [/XYZ H.V] /Dest (1297) cvn H.B /DEST pdfmark end + +39868 6401 a FP(root)p FU(')-85 b(s)420 b(home)g(direc-)3070 +8415 y(tory)457 b(is)g(k)-15 b(ept)457 b(in)12290 8415 +y +SDict begin H.S end + 12290 8415 a 12290 8415 a +SDict begin 18.2 H.A end + 12290 8415 a 12290 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (1298) cvn H.B /DEST pdfmark end + +12290 8415 a FQ(/root)d FU(instead)j(of)22476 8415 y +SDict begin H.S end + +22476 8415 a 22476 8415 a +SDict begin 18.2 H.A end + 22476 8415 a 22476 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (1299) cvn H.B /DEST pdfmark end + 22476 +8415 a FQ(/home/root)p FU(.)452 b(The)458 b(reason)f(is)h(simple.)f +(What)g(if)48644 8415 y +SDict begin H.S end + 48644 8415 a 48644 8415 a +SDict begin 18.2 H.A end + 48644 +8415 a 48644 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (1300) cvn H.B /DEST pdfmark end + 48644 8415 a FQ(/home)3070 10430 +y FU(w)-15 b(as)434 b(a)h(dif)-39 b(ferent)436 b(partition)e(from)21890 +10430 y +SDict begin H.S end + 21890 10430 a 21890 10430 a +SDict begin 18.2 H.A end + 21890 10430 a 21890 +10430 a +SDict begin [ /View [/XYZ H.V] /Dest (1301) cvn H.B /DEST pdfmark end + 21890 10430 a FQ(/)g FU(and)h(it)g(could)g(not)g(be)g(mounted?) +41661 10430 y +SDict begin H.S end + 41661 10430 a 41661 10430 a +SDict begin 18.2 H.A end + 41661 10430 +a 41661 10430 a +SDict begin [ /View [/XYZ H.V] /Dest (1302) cvn H.B /DEST pdfmark end + 41661 10430 a FP(root)g FU(w)-15 b(ould)434 +b(nat-)3070 12445 y(urally)445 b(w)-15 b(ant)445 b(to)g(log)h(in)f(and) +h(repair)g(the)f(problem.)h(If)f(his)h(home)f(directory)g(w)-15 +b(as)446 b(on)f(the)3070 14459 y(damaged)387 b(\002lesystem,)f(it)h(w) +-15 b(ould)386 b(mak)-15 b(e)387 b(it)g(dif)-39 b(\002cult)387 +b(for)g(him)g(to)g(log)g(in.)-30 16345 y +SDict begin H.S end + -30 16345 a +-30 16345 a +SDict begin 18.2 H.A end + -30 16345 a -30 16345 a +SDict begin [ /View [/XYZ H.V] /Dest (1304) cvn H.B /DEST pdfmark end + -30 16345 a -30 16345 +a +SDict begin H.S end + -30 16345 a -30 16345 a +SDict begin 18.2 H.A end + -30 16345 a -30 16345 a +SDict begin [ /View [/XYZ H.V] /Dest (1305) cvn H.B /DEST pdfmark end + -30 +16345 a 1679 x FQ(sbin)-30 18024 y +SDict begin H.S end + -30 18024 a -30 18024 +a +SDict begin 18.2 H.A end + -30 18024 a -30 18024 a +SDict begin [ /View [/XYZ H.V] /Dest (1306) cvn H.B /DEST pdfmark end + -30 18024 a Black Black 3070 +20813 a +SDict begin H.S end + 3070 20813 a 3070 20813 a +SDict begin 18.2 H.A end + 3070 20813 a 3070 20813 +a +SDict begin [ /View [/XYZ H.V] /Dest (1307) cvn H.B /DEST pdfmark end + 3070 20813 a FU(Essential)416 b(programs)h(that)h(are)g(run)f(by) +24858 20813 y +SDict begin H.S end + 24858 20813 a 24858 20813 a +SDict begin 18.2 H.A end + 24858 20813 +a 24858 20813 a +SDict begin [ /View [/XYZ H.V] /Dest (1308) cvn H.B /DEST pdfmark end + 24858 20813 a FP(root)g FU(and)h(during)f(the)g(system) +g(bootup)g(process)3070 22828 y(are)387 b(k)-15 b(ept)387 +b(here.)h(Normal)f(users)g(will)g(not)g(run)g(programs)g(in)g(this)f +(directory)-101 b(.)-30 24713 y +SDict begin H.S end + -30 24713 a -30 24713 +a +SDict begin 18.2 H.A end + -30 24713 a -30 24713 a +SDict begin [ /View [/XYZ H.V] /Dest (1310) cvn H.B /DEST pdfmark end + -30 24713 a -30 24713 a +SDict begin H.S end + -30 +24713 a -30 24713 a +SDict begin 18.2 H.A end + -30 24713 a -30 24713 a +SDict begin [ /View [/XYZ H.V] /Dest (1311) cvn H.B /DEST pdfmark end + -30 24713 +a 1679 x FQ(tmp)-30 26662 y +SDict begin H.S end + -30 26662 a -30 26662 a +SDict begin 18.2 H.A end + -30 +26662 a -30 26662 a +SDict begin [ /View [/XYZ H.V] /Dest (1312) cvn H.B /DEST pdfmark end + -30 26662 a Black Black 3070 29182 +a +SDict begin H.S end + 3070 29182 a 3070 29182 a +SDict begin 18.2 H.A end + 3070 29182 a 3070 29182 a +SDict begin [ /View [/XYZ H.V] /Dest (1313) cvn H.B /DEST pdfmark end + +3070 29182 a FU(The)545 b(temporary)f(storage)h(location.)g(All)f +(users)h(ha)-31 b(v)-23 b(e)545 b(read)g(and)g(write)g(access)g(to)g +(this)3070 31197 y(directory)-101 b(.)-30 33082 y +SDict begin H.S end + -30 +33082 a -30 33082 a +SDict begin 18.2 H.A end + -30 33082 a -30 33082 a +SDict begin [ /View [/XYZ H.V] /Dest (1315) cvn H.B /DEST pdfmark end + -30 33082 +a -30 33082 a +SDict begin H.S end + -30 33082 a -30 33082 a +SDict begin 18.2 H.A end + -30 33082 a -30 +33082 a +SDict begin [ /View [/XYZ H.V] /Dest (1316) cvn H.B /DEST pdfmark end + -30 33082 a 1679 x FQ(usr)-30 34761 y +SDict begin H.S end + -30 34761 +a -30 34761 a +SDict begin 18.2 H.A end + -30 34761 a -30 34761 a +SDict begin [ /View [/XYZ H.V] /Dest (1317) cvn H.B /DEST pdfmark end + -30 34761 a Black +Black 3070 37551 a +SDict begin H.S end + 3070 37551 a 3070 37551 a +SDict begin 18.2 H.A end + 3070 37551 +a 3070 37551 a +SDict begin [ /View [/XYZ H.V] /Dest (1318) cvn H.B /DEST pdfmark end + 3070 37551 a FU(This)433 b(is)h(the)g(big)f(directory)h +(on)f(a)i(Linux)e(system.)g(Ev)-23 b(erything)433 b(else)h(pretty)g +(much)f(goes)3070 39565 y(here,)338 b(programs,)g(documentation,)f(the) +h(k)-15 b(ernel)337 b(source)h(code,)h(and)f(the)g(X)g(W)-62 +b(indo)-39 b(w)337 b(sys-)3070 41580 y(tem.)383 b(This)g(is)g(the)g +(directory)g(to)h(which)f(you)g(will)g(most)f(lik)-15 +b(ely)383 b(be)g(installing)f(programs.)-30 43465 y +SDict begin H.S end + -30 +43465 a -30 43465 a +SDict begin 18.2 H.A end + -30 43465 a -30 43465 a +SDict begin [ /View [/XYZ H.V] /Dest (1320) cvn H.B /DEST pdfmark end + -30 43465 +a -30 43465 a +SDict begin H.S end + -30 43465 a -30 43465 a +SDict begin 18.2 H.A end + -30 43465 a -30 +43465 a +SDict begin [ /View [/XYZ H.V] /Dest (1321) cvn H.B /DEST pdfmark end + -30 43465 a 1679 x FQ(var)-30 45144 y +SDict begin H.S end + -30 45144 +a -30 45144 a +SDict begin 18.2 H.A end + -30 45144 a -30 45144 a +SDict begin [ /View [/XYZ H.V] /Dest (1322) cvn H.B /DEST pdfmark end + -30 45144 a Black +Black 3070 47934 a +SDict begin H.S end + 3070 47934 a 3070 47934 a +SDict begin 18.2 H.A end + 3070 47934 +a 3070 47934 a +SDict begin [ /View [/XYZ H.V] /Dest (1323) cvn H.B /DEST pdfmark end + 3070 47934 a FU(System)394 b(log)h(\002les,)g(cache)h +(data,)g(and)f(program)g(lock)g(\002les)g(are)h(stored)f(here.)h(This)f +(is)g(the)3070 49948 y(directory)387 b(for)g(frequently-changing)f +(data.)-30 51059 y +SDict begin H.S end + -30 51059 a -30 51059 a +SDict begin 18.2 H.A end + -30 51059 +a -30 51059 a +SDict begin [ /View [/XYZ H.V] /Dest (1324) cvn H.B /DEST pdfmark end + -30 51059 a 1679 x FU(Y)-170 b(ou)423 b(should)g(no)-39 +b(w)423 b(ha)-31 b(v)-23 b(e)423 b(a)h(good)f(feel)h(for)g(which)f +(directories)g(contain)g(what)g(on)g(the)h(\002lesys-)-30 +54753 y(tem.)345 b(More)g(detailed)f(information)g(about)h(the)g +(\002lesystem)e(layout)i(is)g(a)-31 b(v)-39 b(ailable)344 +b(in)h(the)g(hier\(7\))-30 56767 y(man)368 b(page.)h(The)f(ne)-23 +b(xt)368 b(section)f(will)h(help)g(you)g(\002nd)f(speci\002c)h(\002les) +g(easily)-101 b(,)368 b(so)g(you)g(don')-28 b(t)368 b(ha)-31 +b(v)-23 b(e)-30 58782 y(to)387 b(do)g(it)g(by)h(hand.)-30 +59892 y +SDict begin H.S end + -30 59892 a -30 59892 a +SDict begin 18.2 H.A end + -30 59892 a -30 59892 +a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-FINDING) +cvn H.B /DEST pdfmark end + -30 59892 a 5182 x FG(Finding)518 b(Files)-30 66418 +y +SDict begin H.S end + -30 66418 a -30 66418 a +SDict begin 18.2 H.A end + -30 66418 a -30 66418 a +SDict begin [ /View [/XYZ H.V] /Dest (1327) cvn H.B /DEST pdfmark end + -30 +66418 a 1600 x FU(Y)-170 b(ou)447 b(no)-39 b(w)448 b(kno)-39 +b(w)448 b(what)g(each)g(major)f(directory)h(holds,)f(b)-31 +b(ut)448 b(it)f(still)g(doesn')-28 b(t)448 b(really)g(help)f(you)p +Black -30 73792 a FR(44)p Black eop end +%%Page: 45 67 +TeXDict begin 45 66 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.45) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) +-23 b(ation)p Black -30 3611 a FU(\002nd)429 b(things.)g(I)g(mean,)h +(you)f(could)g(go)g(looking)f(through)h(directories,)g(b)-31 +b(ut)429 b(there)g(are)h(quick)-15 b(er)-30 5626 y(w)g(ays.)387 +b(There)h(are)f(four)h(main)e(\002le)h(search)h(commands)e(a)-31 +b(v)-39 b(ailable)387 b(in)h(Slackw)-15 b(are.)-30 5961 +y +SDict begin H.S end + -30 5961 a -30 5961 a +SDict begin 18.2 H.A end + -30 5961 a -30 5961 a +SDict begin [ /View [/XYZ H.V] /Dest (1328) cvn H.B /DEST pdfmark end + -30 5961 +a 4392 x Fp(whic)g(h)-30 10372 y +SDict begin H.S end + -30 10372 a -30 10372 +a +SDict begin 18.2 H.A end + -30 10372 a -30 10372 a +SDict begin [ /View [/XYZ H.V] /Dest (1331) cvn H.B /DEST pdfmark end + -30 10372 a -30 11147 a +SDict begin H.S end + -30 +11147 a -30 11147 a +SDict begin 18.2 H.A end + -30 11147 a -30 11147 a +SDict begin [ /View [/XYZ H.V] /Dest (1333) cvn H.B /DEST pdfmark end + -30 11147 +a 1995 x FU(The)298 b(\002rst)g(is)h(the)8913 13142 y +SDict begin H.S end + +8913 13142 a 8913 13142 a +SDict begin 18.2 H.A end + 8913 13142 a 8913 13142 a +SDict begin [ /View [/XYZ H.V] /Dest (1334) cvn H.B /DEST pdfmark end + 8913 +13142 a FP(which)p FU(\(1\))f(command.)21536 13142 y +SDict begin H.S end + +21536 13142 a 21536 13142 a +SDict begin 18.2 H.A end + 21536 13142 a 21536 13142 +a +SDict begin [ /View [/XYZ H.V] /Dest (1335) cvn H.B /DEST pdfmark end + 21536 13142 a FP(which)g FU(is)g(usually)g(used)g(to)g(locate)g(a)h +(program)f(quickly)-101 b(.)-30 15157 y(It)357 b(just)g(searches)g +(your)12675 15157 y +SDict begin H.S end + 12675 15157 a 12675 15157 a +SDict begin 18.2 H.A end + 12675 +15157 a 12675 15157 a +SDict begin [ /View [/XYZ H.V] /Dest (1336) cvn H.B /DEST pdfmark end + 12675 15157 a FP(PATH)g FU(and)g(returns)g(the)g +(\002rst)f(instance)h(it)g(\002nds)f(and)h(the)g(directory)g(path)-30 +17171 y(to)387 b(it.)h(T)-124 b(ak)-15 b(e)387 b(this)f(e)-23 +b(xample:)-30 19057 y +SDict begin H.S end + -30 19057 a -30 19057 a +SDict begin 14.56 H.A end + -30 19057 +a -30 19057 a +SDict begin [ /View [/XYZ H.V] /Dest (1337) cvn H.B /DEST pdfmark end + -30 19057 a -30 19057 a +SDict begin H.S end + -30 19057 a -30 +19057 a +SDict begin 14.56 H.A end + -30 19057 a -30 19057 a +SDict begin [ /View [/XYZ H.V] /Dest (1338) cvn H.B /DEST pdfmark end + -30 19057 a 1276 x FJ(\045)2053 +20333 y +SDict begin H.S end + 2053 20333 a 2053 20333 a +SDict begin 14.56 H.A end + 2053 20333 a 2053 20333 +a +SDict begin [ /View [/XYZ H.V] /Dest (1339) cvn H.B /DEST pdfmark end + 2053 20333 a FH(which)743 b(bash)-30 21945 y FP(/bin/bash)-30 +22043 y +SDict begin H.S end + -30 22043 a -30 22043 a +SDict begin 18.2 H.A end + -30 22043 a -30 22043 +a +SDict begin [ /View [/XYZ H.V] /Dest (1340) cvn H.B /DEST pdfmark end + -30 22043 a -30 23592 a +SDict begin H.S end + -30 23592 a -30 23592 a +SDict begin 18.2 H.A end + -30 +23592 a -30 23592 a +SDict begin [ /View [/XYZ H.V] /Dest (1342) cvn H.B /DEST pdfmark end + -30 23592 a 1917 x FU(From)392 b(that)h(you)f(see)h +(that)14246 25509 y +SDict begin H.S end + 14246 25509 a 14246 25509 a +SDict begin 18.2 H.A end + 14246 +25509 a 14246 25509 a +SDict begin [ /View [/XYZ H.V] /Dest (1343) cvn H.B /DEST pdfmark end + 14246 25509 a FP(bash)f FU(is)h(in)g(the)22927 +25509 y +SDict begin H.S end + 22927 25509 a 22927 25509 a +SDict begin 18.2 H.A end + 22927 25509 a 22927 +25509 a +SDict begin [ /View [/XYZ H.V] /Dest (1344) cvn H.B /DEST pdfmark end + 22927 25509 a FQ(/bin)d FU(directory)-101 b(.)393 +b(This)g(is)f(a)h(v)-23 b(ery)393 b(limited)f(command)-30 +27524 y(for)c(searching,)f(since)g(it)g(only)g(searches)g(your)25706 +27524 y +SDict begin H.S end + 25706 27524 a 25706 27524 a +SDict begin 18.2 H.A end + 25706 27524 a 25706 +27524 a +SDict begin [ /View [/XYZ H.V] /Dest (1345) cvn H.B /DEST pdfmark end + 25706 27524 a FP(PATH)p FU(.)-30 28634 y +SDict begin H.S end + -30 +28634 a -30 28634 a +SDict begin 18.2 H.A end + -30 28634 a -30 28634 a +SDict begin [ /View [/XYZ H.V] /Dest (1346) cvn H.B /DEST pdfmark end + -30 28634 +a 4779 x Fp(whereis)-30 33432 y +SDict begin H.S end + -30 33432 a -30 33432 +a +SDict begin 18.2 H.A end + -30 33432 a -30 33432 a +SDict begin [ /View [/XYZ H.V] /Dest (1349) cvn H.B /DEST pdfmark end + -30 33432 a -30 34207 a +SDict begin H.S end + -30 +34207 a -30 34207 a +SDict begin 18.2 H.A end + -30 34207 a -30 34207 a +SDict begin [ /View [/XYZ H.V] /Dest (1351) cvn H.B /DEST pdfmark end + -30 34207 +a 1995 x FU(The)2712 36202 y +SDict begin H.S end + 2712 36202 a 2712 36202 +a +SDict begin 18.2 H.A end + 2712 36202 a 2712 36202 a +SDict begin [ /View [/XYZ H.V] /Dest (1352) cvn H.B /DEST pdfmark end + 2712 36202 a FP(whereis)p +FU(\(1\))332 b(command)f(w)-15 b(orks)332 b(similar)f(to)26783 +36202 y +SDict begin H.S end + 26783 36202 a 26783 36202 a +SDict begin 18.2 H.A end + 26783 36202 a 26783 +36202 a +SDict begin [ /View [/XYZ H.V] /Dest (1353) cvn H.B /DEST pdfmark end + 26783 36202 a FP(which)p FU(,)h(b)-31 b(ut)332 +b(can)h(also)e(search)i(for)f(man)g(pages)-30 38217 y(and)387 +b(source)h(\002les.)f(A)11892 38217 y +SDict begin H.S end + 11892 38217 a 11892 +38217 a +SDict begin 18.2 H.A end + 11892 38217 a 11892 38217 a +SDict begin [ /View [/XYZ H.V] /Dest (1354) cvn H.B /DEST pdfmark end + 11892 38217 a FP(whereis)g +FU(search)g(for)24027 38217 y +SDict begin H.S end + 24027 38217 a 24027 38217 +a +SDict begin 18.2 H.A end + 24027 38217 a 24027 38217 a +SDict begin [ /View [/XYZ H.V] /Dest (1355) cvn H.B /DEST pdfmark end + 24027 38217 a FP(bash)g +FU(should)f(return)h(this:)-30 39793 y +SDict begin H.S end + -30 39793 a -30 +39793 a +SDict begin 14.56 H.A end + -30 39793 a -30 39793 a +SDict begin [ /View [/XYZ H.V] /Dest (1356) cvn H.B /DEST pdfmark end + -30 39793 a -30 39793 +a +SDict begin H.S end + -30 39793 a -30 39793 a +SDict begin 14.56 H.A end + -30 39793 a -30 39793 a +SDict begin [ /View [/XYZ H.V] /Dest (1357) cvn H.B /DEST pdfmark end + -30 +39793 a 1585 x FJ(\045)2053 41378 y +SDict begin H.S end + 2053 41378 a 2053 +41378 a +SDict begin 14.56 H.A end + 2053 41378 a 2053 41378 a +SDict begin [ /View [/XYZ H.V] /Dest (1358) cvn H.B /DEST pdfmark end + 2053 41378 a FH(whereis)743 +b(bash)-30 42990 y FP(bash:)g(/bin/bash)g(/usr/bin/bash)f +(/usr/man/man1/bash.1.gz)-30 44734 y +SDict begin H.S end + -30 44734 a -30 +44734 a +SDict begin 18.2 H.A end + -30 44734 a -30 44734 a +SDict begin [ /View [/XYZ H.V] /Dest (1359) cvn H.B /DEST pdfmark end + -30 44734 a 1821 x FU(This)403 +b(command)g(not)h(only)f(told)g(us)h(where)f(the)h(actual)f(program)h +(is)f(located,)h(b)-31 b(ut)403 b(also)h(where)-30 48569 +y(the)654 b(online)g(documentation)f(is)h(stored.)g(Still,)g(this)g +(command)f(is)h(limited.)g(What)g(if)g(you)-30 50584 +y(w)-15 b(anted)474 b(to)g(search)g(for)h(a)f(speci\002c)g +(con\002guration)f(\002le?)h(Y)-170 b(ou)474 b(can')-28 +b(t)474 b(use)40610 50584 y +SDict begin H.S end + 40610 50584 a 40610 50584 +a +SDict begin 18.2 H.A end + 40610 50584 a 40610 50584 a +SDict begin [ /View [/XYZ H.V] /Dest (1360) cvn H.B /DEST pdfmark end + 40610 50584 a FP(which)f +FU(or)46569 50584 y +SDict begin H.S end + 46569 50584 a 46569 50584 a +SDict begin 18.2 H.A end + 46569 +50584 a 46569 50584 a +SDict begin [ /View [/XYZ H.V] /Dest (1361) cvn H.B /DEST pdfmark end + 46569 50584 a FP(whereis)-30 52599 +y FU(for)388 b(that.)-30 53389 y +SDict begin H.S end + -30 53389 a -30 53389 +a +SDict begin 18.2 H.A end + -30 53389 a -30 53389 a +SDict begin [ /View [/XYZ H.V] /Dest (1362) cvn H.B /DEST pdfmark end + -30 53389 a 5099 x Fp(\002nd)-30 +58507 y +SDict begin H.S end + -30 58507 a -30 58507 a +SDict begin 18.2 H.A end + -30 58507 a -30 58507 +a +SDict begin [ /View [/XYZ H.V] /Dest (1365) cvn H.B /DEST pdfmark end + -30 58507 a -30 59282 a +SDict begin H.S end + -30 59282 a -30 59282 a +SDict begin 18.2 H.A end + -30 +59282 a -30 59282 a +SDict begin [ /View [/XYZ H.V] /Dest (1367) cvn H.B /DEST pdfmark end + -30 59282 a 1995 x FU(The)2742 61277 +y +SDict begin H.S end + 2742 61277 a 2742 61277 a +SDict begin 18.2 H.A end + 2742 61277 a 2742 61277 a +SDict begin [ /View [/XYZ H.V] /Dest (1368) cvn H.B /DEST pdfmark end + +2742 61277 a FP(find)p FU(\(1\))362 b(command)f(allo)-39 +b(ws)362 b(the)g(user)g(to)g(search)h(the)f(\002lesystem)f(with)g(a)i +(rich)f(collection)-30 63292 y(of)394 b(search)g(predicates.)g(Users)f +(may)h(specify)f(a)h(search)g(with)f(\002lename)h(wildcards,)f(ranges)h +(of)-30 65306 y(modi\002cation)377 b(or)h(creation)g(times,)g(or)g +(other)g(adv)-39 b(anced)378 b(properties.)g(F)-23 b(or)378 +b(e)-23 b(xample,)378 b(to)g(search)-30 67321 y(for)388 +b(the)f(def)-15 b(ault)9121 67321 y +SDict begin H.S end + 9121 67321 a 9121 +67321 a +SDict begin 18.2 H.A end + 9121 67321 a 9121 67321 a +SDict begin [ /View [/XYZ H.V] /Dest (1369) cvn H.B /DEST pdfmark end + 9121 67321 a FQ(xinitrc)383 +b FU(\002le)k(on)g(the)h(system,)f(the)g(follo)-39 b(wing)386 +b(command)h(could)g(be)g(used.)p Black 50226 73792 a +FR(45)p Black eop end +%%Page: 46 68 +TeXDict begin 46 67 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.46) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 +b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1370) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1371) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FJ(\045)2053 +3611 y +SDict begin H.S end + 2053 3611 a 2053 3611 a +SDict begin 14.56 H.A end + 2053 3611 a 2053 3611 +a +SDict begin [ /View [/XYZ H.V] /Dest (1372) cvn H.B /DEST pdfmark end + 2053 3611 a FH(find)743 b(/)h(-name)f(xinitrc)-30 5223 +y FP(/var/X11R6/lib/xinit/xinitrc)-30 6871 y +SDict begin H.S end + -30 6871 +a -30 6871 a +SDict begin 18.2 H.A end + -30 6871 a -30 6871 a +SDict begin [ /View [/XYZ H.V] /Dest (1373) cvn H.B /DEST pdfmark end + -30 6871 a -30 6871 +a +SDict begin H.S end + -30 6871 a -30 6871 a +SDict begin 18.2 H.A end + -30 6871 a -30 6871 a +SDict begin [ /View [/XYZ H.V] /Dest (1374) cvn H.B /DEST pdfmark end + -30 6871 +a 1916 x FP(find)479 b FU(will)g(tak)-15 b(e)478 b(a)i(while)f(to)g +(run,)g(since)g(it)g(has)g(to)g(tra)-31 b(v)-23 b(erse)479 +b(the)h(entire)f(root)g(directory)f(tree.)-30 10802 y(And)436 +b(if)g(this)g(command)g(is)g(run)g(as)g(a)h(normal)f(user)-62 +b(,)436 b(there)h(will)e(be)i(permission)e(denied)h(error)-30 +12817 y(messages)502 b(for)g(directories)f(that)h(only)21763 +12817 y +SDict begin H.S end + 21763 12817 a 21763 12817 a +SDict begin 18.2 H.A end + 21763 12817 a 21763 +12817 a +SDict begin [ /View [/XYZ H.V] /Dest (1375) cvn H.B /DEST pdfmark end + 21763 12817 a FP(root)g FU(can)g(see.)g(But)33504 +12817 y +SDict begin H.S end + 33504 12817 a 33504 12817 a +SDict begin 18.2 H.A end + 33504 12817 a 33504 +12817 a +SDict begin [ /View [/XYZ H.V] /Dest (1376) cvn H.B /DEST pdfmark end + 33504 12817 a FP(find)g FU(found)f(our)h(\002le,)h(so)f(that') +-85 b(s)-30 14831 y(good.)387 b(If)h(only)f(it)g(could)g(be)g(a)h(bit)f +(f)-15 b(aster)-85 b(...)-30 15942 y +SDict begin H.S end + -30 15942 a -30 +15942 a +SDict begin 18.2 H.A end + -30 15942 a -30 15942 a +SDict begin [ /View [/XYZ H.V] /Dest (1377) cvn H.B /DEST pdfmark end + -30 15942 a 4778 x Fp(slocate)-30 +20739 y +SDict begin H.S end + -30 20739 a -30 20739 a +SDict begin 18.2 H.A end + -30 20739 a -30 20739 +a +SDict begin [ /View [/XYZ H.V] /Dest (1380) cvn H.B /DEST pdfmark end + -30 20739 a -30 21515 a +SDict begin H.S end + -30 21515 a -30 21515 a +SDict begin 18.2 H.A end + -30 +21515 a -30 21515 a +SDict begin [ /View [/XYZ H.V] /Dest (1382) cvn H.B /DEST pdfmark end + -30 21515 a 1995 x FU(The)2740 23510 +y +SDict begin H.S end + 2740 23510 a 2740 23510 a +SDict begin 18.2 H.A end + 2740 23510 a 2740 23510 a +SDict begin [ /View [/XYZ H.V] /Dest (1383) cvn H.B /DEST pdfmark end + +2740 23510 a FP(slocate)p FU(\(1\))359 b(command)g(searches)h(the)g +(entire)f(\002lesystem,)g(just)h(lik)-15 b(e)359 b(the)g(\002nd)h +(command)-30 25524 y(can)346 b(do,)f(b)-31 b(ut)346 b(it)f(searches)g +(a)h(database)f(instead)g(of)h(the)f(actual)g(\002lesystem.)g(The)h +(database)f(is)g(set)-30 27539 y(to)358 b(automatically)f(update)h(e) +-39 b(v)-23 b(ery)358 b(morning,)g(so)g(you)f(ha)-31 +b(v)-23 b(e)358 b(a)h(some)-39 b(what)357 b(fresh)h(listing)f(of)h +(\002les)-30 29554 y(on)467 b(your)h(system.)f(Y)-170 +b(ou)467 b(can)g(manually)g(run)24809 29554 y +SDict begin H.S end + 24809 29554 +a 24809 29554 a +SDict begin 18.2 H.A end + 24809 29554 a 24809 29554 a +SDict begin [ /View [/XYZ H.V] /Dest (1384) cvn H.B /DEST pdfmark end + 24809 29554 +a FP(updatedb)p FU(\(1\))g(to)g(update)h(the)f(slocate)g(database)-30 +31568 y(\(before)522 b(running)10309 31568 y +SDict begin H.S end + 10309 31568 +a 10309 31568 a +SDict begin 18.2 H.A end + 10309 31568 a 10309 31568 a +SDict begin [ /View [/XYZ H.V] /Dest (1385) cvn H.B /DEST pdfmark end + 10309 31568 +a FP(updatedb)e FU(by)i(hand,)g(you)f(must)g(\002rst)32090 +31568 y +SDict begin H.S end + 32090 31568 a 32090 31568 a +SDict begin 18.2 H.A end + 32090 31568 a 32090 +31568 a +SDict begin [ /View [/XYZ H.V] /Dest (1386) cvn H.B /DEST pdfmark end + 32090 31568 a FP(su)g FU(to)h(the)38242 31568 +y +SDict begin H.S end + 38242 31568 a 38242 31568 a +SDict begin 18.2 H.A end + 38242 31568 a 38242 31568 +a +SDict begin [ /View [/XYZ H.V] /Dest (1387) cvn H.B /DEST pdfmark end + 38242 31568 a FP(root)f FU(user\).)h(Here')-85 b(s)522 +b(an)-30 33583 y(e)-23 b(xample)387 b(of)7263 33583 y +SDict begin H.S end + +7263 33583 a 7263 33583 a +SDict begin 18.2 H.A end + 7263 33583 a 7263 33583 a +SDict begin [ /View [/XYZ H.V] /Dest (1388) cvn H.B /DEST pdfmark end + 7263 +33583 a FP(slocate)g FU(in)g(action:)-30 35468 y +SDict begin H.S end + -30 +35468 a -30 35468 a +SDict begin 14.56 H.A end + -30 35468 a -30 35468 a +SDict begin [ /View [/XYZ H.V] /Dest (1389) cvn H.B /DEST pdfmark end + -30 35468 +a -30 35468 a +SDict begin H.S end + -30 35468 a -30 35468 a +SDict begin 14.56 H.A end + -30 35468 a -30 +35468 a +SDict begin [ /View [/XYZ H.V] /Dest (1390) cvn H.B /DEST pdfmark end + -30 35468 a 1277 x FJ(\045)2053 36745 y +SDict begin H.S end + 2053 +36745 a 2053 36745 a +SDict begin 14.56 H.A end + 2053 36745 a 2053 36745 a +SDict begin [ /View [/XYZ H.V] /Dest (1391) cvn H.B /DEST pdfmark end + 2053 36745 +a FH(slocate)743 b(xinitrc)2231 b FP(#)744 b(we)f(don't)g(have)h(to)f +(go)h(to)g(the)f(root)-30 38356 y(/var/X11R6/lib/xinit/xinitrc)-30 +39968 y(/var/X11R6/lib/xinit/xinitrc.fvwm2)-30 41580 +y(/var/X11R6/lib/xinit/xinitrc.openwin)-30 43192 y +(/var/X11R6/lib/xinit/xinitrc.twm)-30 44839 y +SDict begin H.S end + -30 44839 +a -30 44839 a +SDict begin 18.2 H.A end + -30 44839 a -30 44839 a +SDict begin [ /View [/XYZ H.V] /Dest (1392) cvn H.B /DEST pdfmark end + -30 44839 a 1917 +x FU(W)-124 b(e)333 b(got)g(more)g(than)g(what)g(we)g(were)h(looking)e +(for)-62 b(,)334 b(and)f(quickly)f(too.)i(W)-62 b(ith)332 +b(these)h(commands,)-30 48771 y(you)387 b(should)g(be)g(able)g(to)h +(\002nd)e(whate)-39 b(v)-23 b(er)388 b(you')-77 b(re)386 +b(looking)h(for)g(on)g(your)g(Linux)g(system.)-30 51431 +y +SDict begin H.S end + -30 51431 a -30 51431 a +SDict begin 18.2 H.A end + -30 51431 a -30 51431 a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-RCD) cvn +H.B /DEST pdfmark end + -30 +51431 a 5181 x FG(The)518 b FA(/etc/rc)n(.)l(d)487 b +FG(Director)19 b(y)-30 57927 y +SDict begin H.S end + -30 57927 a -30 57927 +a +SDict begin 18.2 H.A end + -30 57927 a -30 57927 a +SDict begin [ /View [/XYZ H.V] /Dest (1396) cvn H.B /DEST pdfmark end + -30 57927 a 1630 x FU(The)479 +b(system)f(initialization)f(\002les)h(are)h(stored)f(in)h(the)29713 +59557 y +SDict begin H.S end + 29713 59557 a 29713 59557 a +SDict begin 18.2 H.A end + 29713 59557 a 29713 +59557 a +SDict begin [ /View [/XYZ H.V] /Dest (1397) cvn H.B /DEST pdfmark end + 29713 59557 a FQ(/etc/rc.d)473 b FU(directory)-101 +b(.)479 b(Slackw)-15 b(are)478 b(uses)-30 61572 y(the)465 +b(BSD-style)e(layout)i(for)g(its)f(initialization)f(\002les)i(as)f +(opposed)h(to)f(System)g(V)h(init)f(scripts,)-30 63586 +y(which)390 b(tend)g(to)g(mak)-15 b(e)390 b(con\002guration)f(changes)h +(much)g(more)g(dif)-39 b(\002cult)390 b(without)f(using)h(a)g(pro-)-30 +65601 y(gram)493 b(speci\002cally)g(designed)g(for)g(that)g(purpose.)h +(In)f(BSD-init)f(scripts,)40913 65601 y +SDict begin H.S end + 40913 65601 a +40913 65601 a +SDict begin 18.2 H.A end + 40913 65601 a 40913 65601 a +SDict begin [ /View [/XYZ H.V] /Dest (1398) cvn H.B /DEST pdfmark end + 40913 65601 +a 41406 65601 a +SDict begin H.S end + 41406 65601 a 41406 65601 a +SDict begin 18.2 H.A end + 41406 65601 +a 41406 65601 a +SDict begin [ /View [/XYZ H.V] /Dest (1400) cvn H.B /DEST pdfmark end + 41406 65601 a 494 w FU(each)h(runle)-39 +b(v)-23 b(el)493 b(is)-30 67616 y(gi)-39 b(v)-23 b(en)547 +b(a)h(single)f(rc)h(\002le.)f(In)h(System)f(V)-200 b(,)548 +b(each)f(runle)-39 b(v)-23 b(el)548 b(is)f(gi)-39 b(v)-23 +b(en)547 b(its)g(o)-39 b(wn)548 b(directory)-101 b(,)548 +b(each)p Black -30 73792 a FR(46)p Black eop end +%%Page: 47 69 +TeXDict begin 47 68 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.47) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) +-23 b(ation)p Black -30 3611 a FU(containing)358 b(numerous)f(init)h +(scripts.)g(This)g(pro)-23 b(vides)358 b(an)g(or)-28 +b(g)-8 b(anized)359 b(structure)f(that)g(is)g(easy)g(to)-30 +5626 y(maintain.)-30 6416 y +SDict begin H.S end + -30 6416 a -30 6416 a +SDict begin 18.2 H.A end + -30 +6416 a -30 6416 a +SDict begin [ /View [/XYZ H.V] /Dest (1402) cvn H.B /DEST pdfmark end + -30 6416 a 1999 x FU(There)594 b(are)g(se)-39 +b(v)-23 b(eral)593 b(cate)-23 b(gories)593 b(of)h(initialization)e +(\002les.)h(These)h(are)g(system)f(startup,)g(run-)-30 +10430 y(le)-39 b(v)-23 b(els,)509 b(netw)-15 b(ork)508 +b(initialization,)f(and)i(System)e(V)i(compatibility)-101 +b(.)507 b(As)i(per)g(tradition,)48098 10430 y +SDict begin H.S end + 48098 10430 +a 48098 10430 a +SDict begin 18.2 H.A end + 48098 10430 a 48098 10430 a +SDict begin [ /View [/XYZ H.V] /Dest (1403) cvn H.B /DEST pdfmark end + 48098 10430 +a 509 w FU(we')-15 b(ll)-30 12445 y(lump)387 b(e)-39 +b(v)-23 b(erything)386 b(else)i(into)e(another)i(cate)-23 +b(gory)-101 b(.)-30 12780 y +SDict begin H.S end + -30 12780 a -30 12780 a +SDict begin 18.2 H.A end + -30 +12780 a -30 12780 a +SDict begin [ /View [/XYZ H.V] /Dest (1405) cvn H.B /DEST pdfmark end + -30 12780 a 4391 x FE(System)429 +b(Star)31 b(tup)-30 18267 y +SDict begin H.S end + -30 18267 a -30 18267 a +SDict begin 18.2 H.A end + -30 +18267 a -30 18267 a +SDict begin [ /View [/XYZ H.V] /Dest (1407) cvn H.B /DEST pdfmark end + -30 18267 a 1694 x FU(The)425 b(\002rst)f(program)g +(to)g(run)g(under)h(Slackw)-15 b(are)423 b(besides)h(the)h(Linux)f(k) +-15 b(ernel)424 b(is)43426 19961 y +SDict begin H.S end + 43426 19961 a 43426 +19961 a +SDict begin 18.2 H.A end + 43426 19961 a 43426 19961 a +SDict begin [ /View [/XYZ H.V] /Dest (1408) cvn H.B /DEST pdfmark end + 43426 19961 a FP(init)p +FU(\(8\).)g(This)-30 21976 y(program)593 b(reads)9678 +21976 y +SDict begin H.S end + 9678 21976 a 9678 21976 a +SDict begin 18.2 H.A end + 9678 21976 a 9678 21976 +a +SDict begin [ /View [/XYZ H.V] /Dest (1409) cvn H.B /DEST pdfmark end + 9678 21976 a 594 w FU(the)12759 21976 y +SDict begin H.S end + 12759 21976 +a 12759 21976 a +SDict begin 18.2 H.A end + 12759 21976 a 12759 21976 a +SDict begin [ /View [/XYZ H.V] /Dest (1411) cvn H.B /DEST pdfmark end + 12759 21976 +a FQ(/etc/inittab)p FU(\(5\))586 b(\002le)594 b(to)f(see)h(ho)-39 +b(w)593 b(to)h(run)f(the)h(system.)f(It)h(runs)f(the)-30 +23990 y +SDict begin H.S end + -30 23990 a -30 23990 a +SDict begin 18.2 H.A end + -30 23990 a -30 23990 +a +SDict begin [ /View [/XYZ H.V] /Dest (1412) cvn H.B /DEST pdfmark end + -30 23990 a FQ(/etc/rc.d/rc.S)439 b FU(script)447 b(to)g(prepare)g +(the)h(system)e(before)i(going)f(into)g(your)g(desired)g(runle)-39 +b(v)-23 b(el.)-30 26005 y(The)2680 26005 y +SDict begin H.S end + 2680 26005 +a 2680 26005 a +SDict begin 18.2 H.A end + 2680 26005 a 2680 26005 a +SDict begin [ /View [/XYZ H.V] /Dest (1413) cvn H.B /DEST pdfmark end + 2680 26005 a +FQ(rc.S)298 b FU(\002le)i(enables)g(your)g(virtual)f(memory)-101 +b(,)301 b(mounts)e(your)h(\002lesystems,)f(cleans)h(up)g(certain)-30 +28020 y(log)481 b(directories,)g(initializes)f(Plug)h(and)g(Play)g(de) +-39 b(vices,)481 b(loads)g(k)-15 b(ernel)481 b(modules,)g(con\002gures) +-30 30034 y(PCMCIA)573 b(de)-39 b(vices,)574 b(sets)g(up)g(serial)g +(ports,)g(and)g(runs)g(System)f(V)h(init)g(scripts)g(\(if)g(found\).) +-30 32049 y(Ob)-23 b(viously)6815 32049 y +SDict begin H.S end + 6815 32049 +a 6815 32049 a +SDict begin 18.2 H.A end + 6815 32049 a 6815 32049 a +SDict begin [ /View [/XYZ H.V] /Dest (1414) cvn H.B /DEST pdfmark end + 6815 32049 a +FQ(rc.S)407 b FU(has)j(a)g(lot)g(on)g(its)f(plate,)h(b)-31 +b(ut)410 b(here)g(are)h(some)e(scripts)h(in)40488 32049 +y +SDict begin H.S end + 40488 32049 a 40488 32049 a +SDict begin 18.2 H.A end + 40488 32049 a 40488 32049 +a +SDict begin [ /View [/XYZ H.V] /Dest (1415) cvn H.B /DEST pdfmark end + 40488 32049 a FQ(/etc/rc.d)405 b FU(that)49270 32049 +y +SDict begin H.S end + 49270 32049 a 49270 32049 a +SDict begin 18.2 H.A end + 49270 32049 a 49270 32049 +a +SDict begin [ /View [/XYZ H.V] /Dest (1416) cvn H.B /DEST pdfmark end + 49270 32049 a FQ(rc.S)-30 34064 y FU(will)387 b(call)g(on)g(to)g +(complete)g(its)g(w)-15 b(ork:)-30 34399 y +SDict begin H.S end + -30 34399 +a -30 34399 a +SDict begin 18.2 H.A end + -30 34399 a -30 34399 a +SDict begin [ /View [/XYZ H.V] /Dest (1417) cvn H.B /DEST pdfmark end + -30 34399 a -30 +36724 a +SDict begin H.S end + -30 36724 a -30 36724 a +SDict begin 18.2 H.A end + -30 36724 a -30 36724 +a +SDict begin [ /View [/XYZ H.V] /Dest (1419) cvn H.B /DEST pdfmark end + -30 36724 a -30 36724 a +SDict begin H.S end + -30 36724 a -30 36724 a +SDict begin 18.2 H.A end + -30 +36724 a -30 36724 a +SDict begin [ /View [/XYZ H.V] /Dest (1420) cvn H.B /DEST pdfmark end + -30 36724 a 1679 x FQ(rc.S)-30 38403 +y +SDict begin H.S end + -30 38403 a -30 38403 a +SDict begin 18.2 H.A end + -30 38403 a -30 38403 a +SDict begin [ /View [/XYZ H.V] /Dest (1421) cvn H.B /DEST pdfmark end + -30 +38403 a Black Black 3070 41192 a +SDict begin H.S end + 3070 41192 a 3070 41192 +a +SDict begin 18.2 H.A end + 3070 41192 a 3070 41192 a +SDict begin [ /View [/XYZ H.V] /Dest (1422) cvn H.B /DEST pdfmark end + 3070 41192 a FU(This)386 +b(is)i(the)f(actual)g(system)f(initialization)g(script.)-30 +43078 y +SDict begin H.S end + -30 43078 a -30 43078 a +SDict begin 18.2 H.A end + -30 43078 a -30 43078 +a +SDict begin [ /View [/XYZ H.V] /Dest (1424) cvn H.B /DEST pdfmark end + -30 43078 a -30 43078 a +SDict begin H.S end + -30 43078 a -30 43078 a +SDict begin 18.2 H.A end + -30 +43078 a -30 43078 a +SDict begin [ /View [/XYZ H.V] /Dest (1425) cvn H.B /DEST pdfmark end + -30 43078 a 1679 x FQ(rc.modules)-30 +44757 y +SDict begin H.S end + -30 44757 a -30 44757 a +SDict begin 18.2 H.A end + -30 44757 a -30 44757 +a +SDict begin [ /View [/XYZ H.V] /Dest (1426) cvn H.B /DEST pdfmark end + -30 44757 a Black Black 3070 47546 a +SDict begin H.S end + 3070 47546 a 3070 +47546 a +SDict begin 18.2 H.A end + 3070 47546 a 3070 47546 a +SDict begin [ /View [/XYZ H.V] /Dest (1427) cvn H.B /DEST pdfmark end + 3070 47546 a FU(Loads)436 +b(k)-15 b(ernel)436 b(modules.)g(Things)h(lik)-15 b(e)435 +b(your)i(netw)-15 b(ork)436 b(card,)h(PPP)f(support,)g(and)h(other)3070 +49561 y(things)386 b(are)i(loaded)f(here.)h(If)f(this)g(script)g +(\002nds)28766 49561 y +SDict begin H.S end + 28766 49561 a 28766 49561 a +SDict begin 18.2 H.A end + 28766 +49561 a 28766 49561 a +SDict begin [ /View [/XYZ H.V] /Dest (1428) cvn H.B /DEST pdfmark end + 28766 49561 a FQ(rc.netdevice)p +FU(,)380 b(it)387 b(will)g(run)g(that)g(as)g(well.)51392 +49561 y +SDict begin H.S end + 51392 49561 a 51392 49561 a +SDict begin 18.2 H.A end + 51392 49561 a 51392 +49561 a +SDict begin [ /View [/XYZ H.V] /Dest (1429) cvn H.B /DEST pdfmark end + 51392 49561 a -30 51446 a +SDict begin H.S end + -30 51446 a -30 51446 +a +SDict begin 18.2 H.A end + -30 51446 a -30 51446 a +SDict begin [ /View [/XYZ H.V] /Dest (1432) cvn H.B /DEST pdfmark end + -30 51446 a -30 51446 a +SDict begin H.S end + -30 +51446 a -30 51446 a +SDict begin 18.2 H.A end + -30 51446 a -30 51446 a +SDict begin [ /View [/XYZ H.V] /Dest (1433) cvn H.B /DEST pdfmark end + -30 51446 +a 1679 x FQ(rc.pcmcia)-30 53395 y +SDict begin H.S end + -30 53395 a -30 53395 +a +SDict begin 18.2 H.A end + -30 53395 a -30 53395 a +SDict begin [ /View [/XYZ H.V] /Dest (1434) cvn H.B /DEST pdfmark end + -30 53395 a Black Black 3070 +55915 a +SDict begin H.S end + 3070 55915 a 3070 55915 a +SDict begin 18.2 H.A end + 3070 55915 a 3070 55915 +a +SDict begin [ /View [/XYZ H.V] /Dest (1435) cvn H.B /DEST pdfmark end + 3070 55915 a FU(Probes)473 b(for)i(and)f(con\002gures)g(an)-23 +b(y)474 b(PCMCIA)f(de)-39 b(vices)474 b(that)g(you)g(might)g(ha)-31 +b(v)-23 b(e)474 b(on)g(your)3070 57930 y(system.)540 +b(This)g(is)h(most)f(useful)g(for)h(laptop)f(users,)h(who)g(probably)f +(ha)-31 b(v)-23 b(e)540 b(a)h(PCMCIA)3070 59944 y(modem)386 +b(or)i(netw)-15 b(ork)386 b(card.)18677 59944 y +SDict begin H.S end + 18677 +59944 a 18677 59944 a +SDict begin 18.2 H.A end + 18677 59944 a 18677 59944 a +SDict begin [ /View [/XYZ H.V] /Dest (1436) cvn H.B /DEST pdfmark end + 18677 +59944 a -30 61510 a +SDict begin H.S end + -30 61510 a -30 61510 a +SDict begin 18.2 H.A end + -30 61510 +a -30 61510 a +SDict begin [ /View [/XYZ H.V] /Dest (1439) cvn H.B /DEST pdfmark end + -30 61510 a -30 61510 a +SDict begin H.S end + -30 61510 a -30 +61510 a +SDict begin 18.2 H.A end + -30 61510 a -30 61510 a +SDict begin [ /View [/XYZ H.V] /Dest (1440) cvn H.B /DEST pdfmark end + -30 61510 a 1999 x FQ(rc.serial)-30 +63509 y +SDict begin H.S end + -30 63509 a -30 63509 a +SDict begin 18.2 H.A end + -30 63509 a -30 63509 +a +SDict begin [ /View [/XYZ H.V] /Dest (1441) cvn H.B /DEST pdfmark end + -30 63509 a Black Black 3070 66298 a +SDict begin H.S end + 3070 66298 a 3070 +66298 a +SDict begin 18.2 H.A end + 3070 66298 a 3070 66298 a +SDict begin [ /View [/XYZ H.V] /Dest (1442) cvn H.B /DEST pdfmark end + 3070 66298 a FU(Con\002gures)g(your)h +(serial)g(ports)g(by)h(running)f(the)g(appropriate)37591 +66298 y +SDict begin H.S end + 37591 66298 a 37591 66298 a +SDict begin 18.2 H.A end + 37591 66298 a 37591 +66298 a +SDict begin [ /View [/XYZ H.V] /Dest (1443) cvn H.B /DEST pdfmark end + 37591 66298 a FP(setserial)f FU(commands.)3070 +68313 y +SDict begin H.S end + 3070 68313 a 3070 68313 a +SDict begin 18.2 H.A end + 3070 68313 a 3070 68313 +a +SDict begin [ /View [/XYZ H.V] /Dest (1444) cvn H.B /DEST pdfmark end + 3070 68313 a Black 50169 73792 a FR(47)p Black eop +end +%%Page: 48 70 +TeXDict begin 48 69 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.48) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 +b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1447) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1448) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FQ(rc.sysvinit)-30 +3880 y +SDict begin H.S end + -30 3880 a -30 3880 a +SDict begin 18.2 H.A end + -30 3880 a -30 3880 a +SDict begin [ /View [/XYZ H.V] /Dest (1449) cvn H.B /DEST pdfmark end + -30 +3880 a Black Black 3070 6401 a +SDict begin H.S end + 3070 6401 a 3070 6401 +a +SDict begin 18.2 H.A end + 3070 6401 a 3070 6401 a +SDict begin [ /View [/XYZ H.V] /Dest (1450) cvn H.B /DEST pdfmark end + 3070 6401 a FU(Looks)417 b(for)h(System)f(V)h +(init)g(scripts)f(for)h(the)g(desired)g(runle)-39 b(v)-23 +b(el)417 b(and)h(runs)g(them.)g(This)f(is)3070 8415 y(discussed)386 +b(in)h(more)g(detail)g(belo)-39 b(w)-101 b(.)22816 8415 +y +SDict begin H.S end + 22816 8415 a 22816 8415 a +SDict begin 18.2 H.A end + 22816 8415 a 22816 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (1451) cvn H.B /DEST pdfmark end + +22816 8415 a -30 9206 a +SDict begin H.S end + -30 9206 a -30 9206 a +SDict begin 18.2 H.A end + -30 9206 +a -30 9206 a +SDict begin [ /View [/XYZ H.V] /Dest (1453) cvn H.B /DEST pdfmark end + -30 9206 a 5098 x FE(Runle)-23 b(vel)429 +b(Initialization)g(Scripts)-30 15400 y +SDict begin H.S end + -30 15400 a -30 +15400 a +SDict begin 18.2 H.A end + -30 15400 a -30 15400 a +SDict begin [ /View [/XYZ H.V] /Dest (1455) cvn H.B /DEST pdfmark end + -30 15400 a 1694 x FU(After)400 +b(system)g(initialization)e(is)i(complete,)24484 17094 +y +SDict begin H.S end + 24484 17094 a 24484 17094 a +SDict begin 18.2 H.A end + 24484 17094 a 24484 17094 +a +SDict begin [ /View [/XYZ H.V] /Dest (1456) cvn H.B /DEST pdfmark end + 24484 17094 a 24885 17094 a +SDict begin H.S end + 24885 17094 a 24885 17094 +a +SDict begin 18.2 H.A end + 24885 17094 a 24885 17094 a +SDict begin [ /View [/XYZ H.V] /Dest (1458) cvn H.B /DEST pdfmark end + 24885 17094 a 25285 17094 +a +SDict begin H.S end + 25285 17094 a 25285 17094 a +SDict begin 18.2 H.A end + 25285 17094 a 25285 17094 +a +SDict begin [ /View [/XYZ H.V] /Dest (1460) cvn H.B /DEST pdfmark end + 25285 17094 a FP(init)g FU(mo)-23 b(v)g(es)399 b(on)h(to)g(runle)-39 +b(v)-23 b(el)400 b(initialization.)f(A)-30 19109 y(runle)-39 +b(v)-23 b(el)394 b(describes)h(the)f(state)h(that)f(your)g(machine)h +(will)f(be)h(running)f(in.)g(Sound)g(redundant?)-30 21123 +y(W)-124 b(ell,)361 b(the)g(runle)-39 b(v)-23 b(el)360 +b(tells)14183 21123 y +SDict begin H.S end + 14183 21123 a 14183 21123 a +SDict begin 18.2 H.A end + 14183 +21123 a 14183 21123 a +SDict begin [ /View [/XYZ H.V] /Dest (1461) cvn H.B /DEST pdfmark end + 14183 21123 a FP(init)g FU(if)h(you)f(will)g(be)h +(accepting)f(multiuser)g(logins)g(or)h(just)f(a)h(single)-30 +23138 y(user)-62 b(,)570 b(whether)g(or)f(not)h(you)f(w)-15 +b(ant)569 b(netw)-15 b(ork)569 b(services,)h(and)f(if)h(you)g(will)f +(be)g(using)h(the)50087 23138 y +SDict begin H.S end + 50087 23138 a 50087 23138 +a +SDict begin 18.2 H.A end + 50087 23138 a 50087 23138 a +SDict begin [ /View [/XYZ H.V] /Dest (1462) cvn H.B /DEST pdfmark end + 50087 23138 a 570 w FU(X)-30 +25153 y(W)-62 b(indo)-39 b(w)434 b(System)f(or)12364 +25153 y +SDict begin H.S end + 12364 25153 a 12364 25153 a +SDict begin 18.2 H.A end + 12364 25153 a 12364 +25153 a +SDict begin [ /View [/XYZ H.V] /Dest (1464) cvn H.B /DEST pdfmark end + 12364 25153 a FP(agetty)p FU(\(8\))g(to)h(handle)g(logins.)g +(The)g(\002les)f(belo)-39 b(w)434 b(de\002ne)g(the)g(dif)-39 +b(ferent)-30 27167 y(runle)g(v)-23 b(els)387 b(in)g(Slackw)-15 +b(are)387 b(Linux.)-30 27182 y +SDict begin H.S end + -30 27182 a -30 27182 +a +SDict begin 18.2 H.A end + -30 27182 a -30 27182 a +SDict begin [ /View [/XYZ H.V] /Dest (1465) cvn H.B /DEST pdfmark end + -30 27182 a -30 29507 a +SDict begin H.S end + -30 +29507 a -30 29507 a +SDict begin 18.2 H.A end + -30 29507 a -30 29507 a +SDict begin [ /View [/XYZ H.V] /Dest (1467) cvn H.B /DEST pdfmark end + -30 29507 +a -30 29507 a +SDict begin H.S end + -30 29507 a -30 29507 a +SDict begin 18.2 H.A end + -30 29507 a -30 +29507 a +SDict begin [ /View [/XYZ H.V] /Dest (1468) cvn H.B /DEST pdfmark end + -30 29507 a 2000 x FQ(rc.0)-30 31507 y +SDict begin H.S end + -30 31507 +a -30 31507 a +SDict begin 18.2 H.A end + -30 31507 a -30 31507 a +SDict begin [ /View [/XYZ H.V] /Dest (1469) cvn H.B /DEST pdfmark end + -30 31507 a Black +Black 3070 34296 a +SDict begin H.S end + 3070 34296 a 3070 34296 a +SDict begin 18.2 H.A end + 3070 34296 +a 3070 34296 a +SDict begin [ /View [/XYZ H.V] /Dest (1470) cvn H.B /DEST pdfmark end + 3070 34296 a FU(Halt)g(the)g(system)f(\(runle)-39 +b(v)-23 b(el)387 b(0\).)h(By)f(def)-15 b(ault,)387 b(this)g(is)g +(symlink)-15 b(ed)386 b(to)40815 34296 y +SDict begin H.S end + 40815 34296 +a 40815 34296 a +SDict begin 18.2 H.A end + 40815 34296 a 40815 34296 a +SDict begin [ /View [/XYZ H.V] /Dest (1471) cvn H.B /DEST pdfmark end + 40815 34296 +a FQ(rc.6)p FU(.)-30 36181 y +SDict begin H.S end + -30 36181 a -30 36181 a +SDict begin 18.2 H.A end + +-30 36181 a -30 36181 a +SDict begin [ /View [/XYZ H.V] /Dest (1473) cvn H.B /DEST pdfmark end + -30 36181 a -30 36181 a +SDict begin H.S end + -30 36181 +a -30 36181 a +SDict begin 18.2 H.A end + -30 36181 a -30 36181 a +SDict begin [ /View [/XYZ H.V] /Dest (1474) cvn H.B /DEST pdfmark end + -30 36181 a 1679 +x FQ(rc.4)-30 37860 y +SDict begin H.S end + -30 37860 a -30 37860 a +SDict begin 18.2 H.A end + -30 37860 +a -30 37860 a +SDict begin [ /View [/XYZ H.V] /Dest (1475) cvn H.B /DEST pdfmark end + -30 37860 a Black Black 3070 40650 a +SDict begin H.S end + 3070 +40650 a 3070 40650 a +SDict begin 18.2 H.A end + 3070 40650 a 3070 40650 a +SDict begin [ /View [/XYZ H.V] /Dest (1476) cvn H.B /DEST pdfmark end + 3070 40650 +a FU(Multiuser)504 b(startup)h(\(runle)-39 b(v)-23 b(el)505 +b(4\),)h(b)-31 b(ut)506 b(in)f(X11)g(with)g(KDM,)h(GDM,)g(or)f(XDM)g +(as)h(the)3070 42665 y(login)386 b(manager)-85 b(.)-30 +44550 y +SDict begin H.S end + -30 44550 a -30 44550 a +SDict begin 18.2 H.A end + -30 44550 a -30 44550 +a +SDict begin [ /View [/XYZ H.V] /Dest (1478) cvn H.B /DEST pdfmark end + -30 44550 a -30 44550 a +SDict begin H.S end + -30 44550 a -30 44550 a +SDict begin 18.2 H.A end + -30 +44550 a -30 44550 a +SDict begin [ /View [/XYZ H.V] /Dest (1479) cvn H.B /DEST pdfmark end + -30 44550 a 1679 x FQ(rc.6)-30 46229 +y +SDict begin H.S end + -30 46229 a -30 46229 a +SDict begin 18.2 H.A end + -30 46229 a -30 46229 a +SDict begin [ /View [/XYZ H.V] /Dest (1480) cvn H.B /DEST pdfmark end + -30 +46229 a Black Black 3070 49019 a +SDict begin H.S end + 3070 49019 a 3070 49019 +a +SDict begin 18.2 H.A end + 3070 49019 a 3070 49019 a +SDict begin [ /View [/XYZ H.V] /Dest (1481) cvn H.B /DEST pdfmark end + 3070 49019 a FU(Reboot)386 +b(the)h(system)g(\(runle)-39 b(v)-23 b(el)387 b(6\).)-30 +50904 y +SDict begin H.S end + -30 50904 a -30 50904 a +SDict begin 18.2 H.A end + -30 50904 a -30 50904 +a +SDict begin [ /View [/XYZ H.V] /Dest (1483) cvn H.B /DEST pdfmark end + -30 50904 a -30 50904 a +SDict begin H.S end + -30 50904 a -30 50904 a +SDict begin 18.2 H.A end + -30 +50904 a -30 50904 a +SDict begin [ /View [/XYZ H.V] /Dest (1484) cvn H.B /DEST pdfmark end + -30 50904 a 1679 x FQ(rc.K)-30 52583 +y +SDict begin H.S end + -30 52583 a -30 52583 a +SDict begin 18.2 H.A end + -30 52583 a -30 52583 a +SDict begin [ /View [/XYZ H.V] /Dest (1485) cvn H.B /DEST pdfmark end + -30 +52583 a Black Black 3070 55373 a +SDict begin H.S end + 3070 55373 a 3070 55373 +a +SDict begin 18.2 H.A end + 3070 55373 a 3070 55373 a +SDict begin [ /View [/XYZ H.V] /Dest (1486) cvn H.B /DEST pdfmark end + 3070 55373 a FU(Startup)f(in)h(single)g +(user)g(mode)g(\(runle)-39 b(v)-23 b(el)387 b(1\).)-30 +57258 y +SDict begin H.S end + -30 57258 a -30 57258 a +SDict begin 18.2 H.A end + -30 57258 a -30 57258 +a +SDict begin [ /View [/XYZ H.V] /Dest (1488) cvn H.B /DEST pdfmark end + -30 57258 a -30 57258 a +SDict begin H.S end + -30 57258 a -30 57258 a +SDict begin 18.2 H.A end + -30 +57258 a -30 57258 a +SDict begin [ /View [/XYZ H.V] /Dest (1489) cvn H.B /DEST pdfmark end + -30 57258 a 1679 x FQ(rc.M)-30 58937 +y +SDict begin H.S end + -30 58937 a -30 58937 a +SDict begin 18.2 H.A end + -30 58937 a -30 58937 a +SDict begin [ /View [/XYZ H.V] /Dest (1490) cvn H.B /DEST pdfmark end + -30 +58937 a Black Black 3070 61727 a +SDict begin H.S end + 3070 61727 a 3070 61727 +a +SDict begin 18.2 H.A end + 3070 61727 a 3070 61727 a +SDict begin [ /View [/XYZ H.V] /Dest (1491) cvn H.B /DEST pdfmark end + 3070 61727 a FU(Multiuser)322 +b(mode)h(\(runle)-39 b(v)-23 b(els)324 b(2)f(and)h(3\),)g(b)-31 +b(ut)323 b(with)g(the)h(standard)f(te)-23 b(xt-based)323 +b(login.)g(This)3070 63741 y(is)387 b(the)g(def)-15 b(ault)386 +b(runle)-39 b(v)-23 b(el)387 b(in)g(Slackw)-15 b(are.)-30 +64532 y +SDict begin H.S end + -30 64532 a -30 64532 a +SDict begin 18.2 H.A end + -30 64532 a -30 64532 +a +SDict begin [ /View [/XYZ H.V] /Dest (1492) cvn H.B /DEST pdfmark end + -30 64532 a Black 9260 x FR(48)p Black eop end +%%Page: 49 71 +TeXDict begin 49 70 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.49) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1545) cvn H.B /DEST pdfmark end + -30 -2687 a 31781 -1636 a FR(Chapter)387 +b(4)g(System)g(Con\002gur)-23 b(ation)p Black -30 3635 +a FE(Netw)-31 b(ork)430 b(Initialization)-30 4429 y +SDict begin H.S end + -30 +4429 a -30 4429 a +SDict begin 18.2 H.A end + -30 4429 a -30 4429 a +SDict begin [ /View [/XYZ H.V] /Dest (1494) cvn H.B /DEST pdfmark end + -30 4429 a 1995 +x FU(Runle)-39 b(v)-23 b(els)606 b(2,)h(3,)f(and)h(4)f(will)g(start)g +(up)h(the)f(netw)-15 b(ork)606 b(services.)g(The)h(follo)-39 +b(wing)606 b(\002les)g(are)-30 8439 y(responsible)387 +b(for)g(the)g(netw)-15 b(ork)387 b(initialization:)-30 +8774 y +SDict begin H.S end + -30 8774 a -30 8774 a +SDict begin 18.2 H.A end + -30 8774 a -30 8774 a +SDict begin [ /View [/XYZ H.V] /Dest (1495) cvn H.B /DEST pdfmark end + -30 +8774 a -30 11099 a +SDict begin H.S end + -30 11099 a -30 11099 a +SDict begin 18.2 H.A end + -30 11099 +a -30 11099 a +SDict begin [ /View [/XYZ H.V] /Dest (1497) cvn H.B /DEST pdfmark end + -30 11099 a -30 11099 a +SDict begin H.S end + -30 11099 a -30 +11099 a +SDict begin 18.2 H.A end + -30 11099 a -30 11099 a +SDict begin [ /View [/XYZ H.V] /Dest (1498) cvn H.B /DEST pdfmark end + -30 11099 a 1679 x FQ(rc.inet1)-30 +12778 y +SDict begin H.S end + -30 12778 a -30 12778 a +SDict begin 18.2 H.A end + -30 12778 a -30 12778 +a +SDict begin [ /View [/XYZ H.V] /Dest (1499) cvn H.B /DEST pdfmark end + -30 12778 a Black Black 3070 15568 a +SDict begin H.S end + 3070 15568 a 3070 +15568 a +SDict begin 18.2 H.A end + 3070 15568 a 3070 15568 a +SDict begin [ /View [/XYZ H.V] /Dest (1500) cvn H.B /DEST pdfmark end + 3070 15568 a FU(Created)302 +b(by)10045 15568 y +SDict begin H.S end + 10045 15568 a 10045 15568 a +SDict begin 18.2 H.A end + 10045 +15568 a 10045 15568 a +SDict begin [ /View [/XYZ H.V] /Dest (1501) cvn H.B /DEST pdfmark end + 10045 15568 a FP(netconfig)p FU(,)g(this)g +(\002le)h(is)f(responsible)g(for)h(con\002guring)f(the)g(actual)h(netw) +-15 b(ork)3070 17582 y(interf)g(ace.)-30 19148 y +SDict begin H.S end + -30 +19148 a -30 19148 a +SDict begin 18.2 H.A end + -30 19148 a -30 19148 a +SDict begin [ /View [/XYZ H.V] /Dest (1503) cvn H.B /DEST pdfmark end + -30 19148 +a -30 19148 a +SDict begin H.S end + -30 19148 a -30 19148 a +SDict begin 18.2 H.A end + -30 19148 a -30 +19148 a +SDict begin [ /View [/XYZ H.V] /Dest (1504) cvn H.B /DEST pdfmark end + -30 19148 a 1999 x FQ(rc.inet2)-30 21147 y +SDict begin H.S end + -30 +21147 a -30 21147 a +SDict begin 18.2 H.A end + -30 21147 a -30 21147 a +SDict begin [ /View [/XYZ H.V] /Dest (1505) cvn H.B /DEST pdfmark end + -30 21147 +a Black Black 3070 23936 a +SDict begin H.S end + 3070 23936 a 3070 23936 a +SDict begin 18.2 H.A end + +3070 23936 a 3070 23936 a +SDict begin [ /View [/XYZ H.V] /Dest (1506) cvn H.B /DEST pdfmark end + 3070 23936 a FU(Runs)386 b(after)9870 +23936 y +SDict begin H.S end + 9870 23936 a 9870 23936 a +SDict begin 18.2 H.A end + 9870 23936 a 9870 23936 +a +SDict begin [ /View [/XYZ H.V] /Dest (1507) cvn H.B /DEST pdfmark end + 9870 23936 a FQ(rc.inet1)c FU(and)387 b(starts)g(up)g(basic)h(netw) +-15 b(ork)386 b(services.)-30 25822 y +SDict begin H.S end + -30 25822 a -30 +25822 a +SDict begin 18.2 H.A end + -30 25822 a -30 25822 a +SDict begin [ /View [/XYZ H.V] /Dest (1509) cvn H.B /DEST pdfmark end + -30 25822 a -30 25822 +a +SDict begin H.S end + -30 25822 a -30 25822 a +SDict begin 18.2 H.A end + -30 25822 a -30 25822 a +SDict begin [ /View [/XYZ H.V] /Dest (1510) cvn H.B /DEST pdfmark end + -30 +25822 a 1679 x FQ(rc.atalk)-30 27501 y +SDict begin H.S end + -30 27501 a -30 +27501 a +SDict begin 18.2 H.A end + -30 27501 a -30 27501 a +SDict begin [ /View [/XYZ H.V] /Dest (1511) cvn H.B /DEST pdfmark end + -30 27501 a Black Black +3070 30290 a +SDict begin H.S end + 3070 30290 a 3070 30290 a +SDict begin 18.2 H.A end + 3070 30290 a 3070 +30290 a +SDict begin [ /View [/XYZ H.V] /Dest (1512) cvn H.B /DEST pdfmark end + 3070 30290 a FU(Starts)g(up)h(AppleT)-124 b(alk)387 +b(services.)21583 30290 y +SDict begin H.S end + 21583 30290 a 21583 30290 a +SDict begin 18.2 H.A end + +21583 30290 a 21583 30290 a +SDict begin [ /View [/XYZ H.V] /Dest (1513) cvn H.B /DEST pdfmark end + 21583 30290 a -30 32176 a +SDict begin H.S end + +-30 32176 a -30 32176 a +SDict begin 18.2 H.A end + -30 32176 a -30 32176 a +SDict begin [ /View [/XYZ H.V] /Dest (1516) cvn H.B /DEST pdfmark end + -30 32176 +a -30 32176 a +SDict begin H.S end + -30 32176 a -30 32176 a +SDict begin 18.2 H.A end + -30 32176 a -30 +32176 a +SDict begin [ /View [/XYZ H.V] /Dest (1517) cvn H.B /DEST pdfmark end + -30 32176 a 1679 x FQ(rc.httpd)-30 34124 y +SDict begin H.S end + -30 +34124 a -30 34124 a +SDict begin 18.2 H.A end + -30 34124 a -30 34124 a +SDict begin [ /View [/XYZ H.V] /Dest (1518) cvn H.B /DEST pdfmark end + -30 34124 +a Black Black 3070 36644 a +SDict begin H.S end + 3070 36644 a 3070 36644 a +SDict begin 18.2 H.A end + +3070 36644 a 3070 36644 a +SDict begin [ /View [/XYZ H.V] /Dest (1519) cvn H.B /DEST pdfmark end + 3070 36644 a FU(Starts)439 +b(up)i(the)f(Apache)g(web)h(serv)-23 b(er)-85 b(.)440 +b(Lik)-15 b(e)440 b(a)h(fe)-39 b(w)440 b(other)h(rc)f(scripts,)g(this)g +(one)h(can)f(also)3070 38659 y(be)415 b(used)h(to)f(stop)h(and)f +(restart)h(a)g(service.)26064 38659 y +SDict begin H.S end + 26064 38659 a 26064 +38659 a +SDict begin 18.2 H.A end + 26064 38659 a 26064 38659 a +SDict begin [ /View [/XYZ H.V] /Dest (1520) cvn H.B /DEST pdfmark end + 26064 38659 a FQ(rc.httpd)411 +b FU(tak)-15 b(es)415 b(ar)-28 b(guments)415 b(of)g(stop,)h(start,)g +(or)3070 40674 y(restart.)7717 40674 y +SDict begin H.S end + 7717 40674 a 7717 +40674 a +SDict begin 18.2 H.A end + 7717 40674 a 7717 40674 a +SDict begin [ /View [/XYZ H.V] /Dest (1521) cvn H.B /DEST pdfmark end + 7717 40674 a 8105 40674 +a +SDict begin H.S end + 8105 40674 a 8105 40674 a +SDict begin 18.2 H.A end + 8105 40674 a 8105 40674 a +SDict begin [ /View [/XYZ H.V] /Dest (1523) cvn H.B /DEST pdfmark end + +8105 40674 a -30 42239 a +SDict begin H.S end + -30 42239 a -30 42239 a +SDict begin 18.2 H.A end + -30 +42239 a -30 42239 a +SDict begin [ /View [/XYZ H.V] /Dest (1527) cvn H.B /DEST pdfmark end + -30 42239 a -30 42239 a +SDict begin H.S end + -30 42239 +a -30 42239 a +SDict begin 18.2 H.A end + -30 42239 a -30 42239 a +SDict begin [ /View [/XYZ H.V] /Dest (1528) cvn H.B /DEST pdfmark end + -30 42239 a 1999 +x FQ(rc.news)-30 44238 y +SDict begin H.S end + -30 44238 a -30 44238 a +SDict begin 18.2 H.A end + -30 +44238 a -30 44238 a +SDict begin [ /View [/XYZ H.V] /Dest (1529) cvn H.B /DEST pdfmark end + -30 44238 a Black Black 3070 47028 +a +SDict begin H.S end + 3070 47028 a 3070 47028 a +SDict begin 18.2 H.A end + 3070 47028 a 3070 47028 a +SDict begin [ /View [/XYZ H.V] /Dest (1530) cvn H.B /DEST pdfmark end + +3070 47028 a FU(Starts)386 b(up)h(the)h(ne)-39 b(ws)387 +b(serv)-23 b(er)-85 b(.)18804 47028 y +SDict begin H.S end + 18804 47028 a 18804 +47028 a +SDict begin 18.2 H.A end + 18804 47028 a 18804 47028 a +SDict begin [ /View [/XYZ H.V] /Dest (1531) cvn H.B /DEST pdfmark end + 18804 47028 a -30 +48138 a +SDict begin H.S end + -30 48138 a -30 48138 a +SDict begin 18.2 H.A end + -30 48138 a -30 48138 +a +SDict begin [ /View [/XYZ H.V] /Dest (1533) cvn H.B /DEST pdfmark end + -30 48138 a 4779 x FE(System)429 b(V)i(Compatibility)-30 +53237 y +SDict begin H.S end + -30 53237 a -30 53237 a +SDict begin 18.2 H.A end + -30 53237 a -30 53237 +a +SDict begin [ /View [/XYZ H.V] /Dest (1535) cvn H.B /DEST pdfmark end + -30 53237 a -30 53237 a +SDict begin H.S end + -30 53237 a -30 53237 a +SDict begin 18.2 H.A end + -30 +53237 a -30 53237 a +SDict begin [ /View [/XYZ H.V] /Dest (1538) cvn H.B /DEST pdfmark end + -30 53237 a -30 54012 a +SDict begin H.S end + -30 54012 +a -30 54012 a +SDict begin 18.2 H.A end + -30 54012 a -30 54012 a +SDict begin [ /View [/XYZ H.V] /Dest (1541) cvn H.B /DEST pdfmark end + -30 54012 a 1694 +x FU(System)573 b(V)i(init)e(compatibility)g(w)-15 b(as)574 +b(introduced)f(in)h(Slackw)-15 b(are)574 b(7.0.)h(Man)-23 +b(y)573 b(other)i(Linux)-30 57721 y(distrib)-31 b(utions)359 +b(mak)-15 b(e)361 b(use)g(of)g(this)f(style)g(instead)h(of)g(the)g(BSD) +f(style.)h(Basically)f(each)h(runle)-39 b(v)-23 b(el)-30 +59735 y(is)533 b(gi)-39 b(v)-23 b(en)533 b(a)g(subdirectory)f(for)i +(init)e(scripts,)h(whereas)g(BSD)g(style)f(gi)-39 b(v)-23 +b(es)533 b(one)g(init)f(script)h(to)-30 61750 y(each)388 +b(runle)-39 b(v)-23 b(el.)-30 62540 y +SDict begin H.S end + -30 62540 a -30 +62540 a +SDict begin 18.2 H.A end + -30 62540 a -30 62540 a +SDict begin [ /View [/XYZ H.V] /Dest (1542) cvn H.B /DEST pdfmark end + -30 62540 a 2000 x FU(The)2725 +64540 y +SDict begin H.S end + 2725 64540 a 2725 64540 a +SDict begin 18.2 H.A end + 2725 64540 a 2725 64540 +a +SDict begin [ /View [/XYZ H.V] /Dest (1543) cvn H.B /DEST pdfmark end + 2725 64540 a FQ(rc.sysvinit)339 b FU(script)345 b(will)f(search)i +(for)f(an)-23 b(y)345 b(System)g(V)g(init)g(scripts)f(you)h(ha)-31 +b(v)-23 b(e)346 b(in)46139 64540 y +SDict begin H.S end + 46139 64540 a 46139 +64540 a +SDict begin 18.2 H.A end + 46139 64540 a 46139 64540 a +SDict begin [ /View [/XYZ H.V] /Dest (1544) cvn H.B /DEST pdfmark end + 46139 64540 a FQ(/etc/rc.d)-30 +66554 y FU(and)520 b(run)g(them,)g(if)g(the)g(runle)-39 +b(v)-23 b(el)520 b(is)g(appropriate.)g(This)g(is)g(useful)f(for)i +(certain)f(commercial)p Black 50226 73792 a FR(49)p Black +eop end +%%Page: 50 72 +TeXDict begin 50 71 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.50) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 +b(ation)p Black -30 3611 a FU(softw)-15 b(are)387 b(packages)g(that)g +(install)f(System)h(V)g(init)g(scripts)-30 4721 y +SDict begin H.S end + -30 +4721 a -30 4721 a +SDict begin 18.2 H.A end + -30 4721 a -30 4721 a +SDict begin [ /View [/XYZ H.V] /Dest (1545) cvn H.B /DEST pdfmark end + -30 4721 a 4779 +x FE(Other)430 b(Files)-30 10294 y +SDict begin H.S end + -30 10294 a -30 10294 +a +SDict begin 18.2 H.A end + -30 10294 a -30 10294 a +SDict begin [ /View [/XYZ H.V] /Dest (1547) cvn H.B /DEST pdfmark end + -30 10294 a 1996 x FU(The)381 +b(scripts)e(described)i(belo)-39 b(w)380 b(are)h(the)f(other)g(system)g +(initialization)f(scripts.)h(The)-23 b(y)380 b(are)h(typ-)-30 +14304 y(ically)586 b(run)h(from)f(one)g(of)h(the)f(major)g(scripts)g +(abo)-23 b(v)g(e,)587 b(so)f(all)g(you)g(need)h(to)f(do)h(is)f(edit)g +(the)-30 16319 y(contents.)-30 16334 y +SDict begin H.S end + -30 16334 a -30 +16334 a +SDict begin 18.2 H.A end + -30 16334 a -30 16334 a +SDict begin [ /View [/XYZ H.V] /Dest (1548) cvn H.B /DEST pdfmark end + -30 16334 a -30 16334 +a +SDict begin H.S end + -30 16334 a -30 16334 a +SDict begin 18.2 H.A end + -30 16334 a -30 16334 a +SDict begin [ /View [/XYZ H.V] /Dest (1550) cvn H.B /DEST pdfmark end + -30 +16334 a -30 18659 a +SDict begin H.S end + -30 18659 a -30 18659 a +SDict begin 18.2 H.A end + -30 18659 +a -30 18659 a +SDict begin [ /View [/XYZ H.V] /Dest (1552) cvn H.B /DEST pdfmark end + -30 18659 a -30 18659 a +SDict begin H.S end + -30 18659 a -30 +18659 a +SDict begin 18.2 H.A end + -30 18659 a -30 18659 a +SDict begin [ /View [/XYZ H.V] /Dest (1553) cvn H.B /DEST pdfmark end + -30 18659 a 1999 x FQ(rc.gpm)-30 +20928 y +SDict begin H.S end + -30 20928 a -30 20928 a +SDict begin 18.2 H.A end + -30 20928 a -30 20928 +a +SDict begin [ /View [/XYZ H.V] /Dest (1554) cvn H.B /DEST pdfmark end + -30 20928 a Black Black 3070 23448 a +SDict begin H.S end + 3070 23448 a 3070 +23448 a +SDict begin 18.2 H.A end + 3070 23448 a 3070 23448 a +SDict begin [ /View [/XYZ H.V] /Dest (1555) cvn H.B /DEST pdfmark end + 3070 23448 a FU(Starts)409 +b(up)h(general)g(purpose)g(mouse)f(services.)h(Allo)-39 +b(ws)410 b(you)g(to)g(cop)-15 b(y)409 b(and)h(paste)g(at)g(the)3070 +25463 y(Linux)382 b(console.)h(Occasionally)-101 b(,)383 +b(gpm)f(will)h(cause)g(problems)f(with)g(the)h(mouse)f(when)h(it)3070 +27477 y(is)360 b(used)h(under)g(X)g(windo)-39 b(ws.)361 +b(If)h(you)e(e)-23 b(xperience)361 b(problems)f(with)h(the)g(mouse)g +(under)f(X,)3070 29492 y(try)428 b(taking)g(a)-23 b(w)-15 +b(ay)428 b(the)h(e)-23 b(x)g(ecutable)428 b(permission)f(from)h(this)g +(\002le)h(and)f(stopping)g(the)g(gpm)3070 31507 y(serv)-23 +b(er)-85 b(.)-30 33072 y +SDict begin H.S end + -30 33072 a -30 33072 a +SDict begin 18.2 H.A end + -30 +33072 a -30 33072 a +SDict begin [ /View [/XYZ H.V] /Dest (1557) cvn H.B /DEST pdfmark end + -30 33072 a -30 33072 a +SDict begin H.S end + -30 33072 +a -30 33072 a +SDict begin 18.2 H.A end + -30 33072 a -30 33072 a +SDict begin [ /View [/XYZ H.V] /Dest (1558) cvn H.B /DEST pdfmark end + -30 33072 a 1999 +x FQ(rc.font)-30 35071 y +SDict begin H.S end + -30 35071 a -30 35071 a +SDict begin 18.2 H.A end + -30 +35071 a -30 35071 a +SDict begin [ /View [/XYZ H.V] /Dest (1559) cvn H.B /DEST pdfmark end + -30 35071 a Black Black 3070 37860 +a +SDict begin H.S end + 3070 37860 a 3070 37860 a +SDict begin 18.2 H.A end + 3070 37860 a 3070 37860 a +SDict begin [ /View [/XYZ H.V] /Dest (1560) cvn H.B /DEST pdfmark end + +3070 37860 a 3070 37860 a +SDict begin H.S end + 3070 37860 a 3070 37860 a +SDict begin 18.2 H.A end + 3070 +37860 a 3070 37860 a +SDict begin [ /View [/XYZ H.V] /Dest (1561) cvn H.B /DEST pdfmark end + 3070 37860 a 387 w FU(Loads)387 +b(the)g(custom)g(screen)g(font)g(for)h(the)f(console.)-30 +39426 y +SDict begin H.S end + -30 39426 a -30 39426 a +SDict begin 18.2 H.A end + -30 39426 a -30 39426 +a +SDict begin [ /View [/XYZ H.V] /Dest (1564) cvn H.B /DEST pdfmark end + -30 39426 a -30 39426 a +SDict begin H.S end + -30 39426 a -30 39426 a +SDict begin 18.2 H.A end + -30 +39426 a -30 39426 a +SDict begin [ /View [/XYZ H.V] /Dest (1565) cvn H.B /DEST pdfmark end + -30 39426 a 1999 x FQ(rc.local)-30 +41425 y +SDict begin H.S end + -30 41425 a -30 41425 a +SDict begin 18.2 H.A end + -30 41425 a -30 41425 +a +SDict begin [ /View [/XYZ H.V] /Dest (1566) cvn H.B /DEST pdfmark end + -30 41425 a Black Black 3070 44214 a +SDict begin H.S end + 3070 44214 a 3070 +44214 a +SDict begin 18.2 H.A end + 3070 44214 a 3070 44214 a +SDict begin [ /View [/XYZ H.V] /Dest (1567) cvn H.B /DEST pdfmark end + 3070 44214 a FU(Contains)397 +b(an)-23 b(y)398 b(speci\002c)g(startup)g(commands)f(for)i(your)f +(system.)g(This)g(is)g(empty)g(after)h(a)3070 46229 y(fresh)375 +b(install,)g(as)h(it)f(is)g(reserv)-23 b(ed)375 b(for)h(local)f +(administrators.)g(This)g(script)g(is)g(run)g(after)h(all)3070 +48244 y(other)387 b(initialization)f(has)h(tak)-15 b(en)386 +b(place.)-30 49354 y +SDict begin H.S end + -30 49354 a -30 49354 a +SDict begin 18.2 H.A end + -30 49354 +a -30 49354 a +SDict begin [ /View [/XYZ H.V] /Dest (1568) cvn H.B /DEST pdfmark end + -30 49354 a 1679 x FU(T)-124 b(o)451 b(enable)f(a)h +(script,)g(all)g(you)f(need)h(to)g(do)f(is)h(add)f(the)30263 +51033 y +SDict begin H.S end + 30263 51033 a 30263 51033 a +SDict begin 18.2 H.A end + 30263 51033 a 30263 +51033 a +SDict begin [ /View [/XYZ H.V] /Dest (1569) cvn H.B /DEST pdfmark end + 30263 51033 a 451 w FU(e)-23 b(x)g(ecute)450 +b(permissions)g(to)g(it)h(with)f(the)-30 53048 y +SDict begin H.S end + -30 +53048 a -30 53048 a +SDict begin 18.2 H.A end + -30 53048 a -30 53048 a +SDict begin [ /View [/XYZ H.V] /Dest (1571) cvn H.B /DEST pdfmark end + -30 53048 +a FP(chmod)508 b FU(command.)g(T)-124 b(o)509 b(disable)e(a)i(script,)g +(remo)-23 b(v)g(e)507 b(the)i(e)-23 b(x)g(ecute)508 b(permissions)f +(from)h(it.)g(F)-23 b(or)-30 55063 y(more)387 b(information)f(about) +15078 55063 y +SDict begin H.S end + 15078 55063 a 15078 55063 a +SDict begin 18.2 H.A end + 15078 55063 +a 15078 55063 a +SDict begin [ /View [/XYZ H.V] /Dest (1572) cvn H.B /DEST pdfmark end + 15078 55063 a FP(chmod)p FU(,)i(see)p +0 TeXcolorgray 21939 55063 a +SDict begin H.S end + 21939 55063 a FU(Section)f(9.2)28913 +55063 y +SDict begin 18.2 H.L end + 28913 55063 a 28913 55063 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-PERMISSIONS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 28913 55063 a Black +FU(.)-30 59161 y +SDict begin H.S end + -30 59161 a -30 59161 a +SDict begin 18.2 H.A end + -30 59161 a +-30 59161 a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-KERNEL) +cvn H.B /DEST pdfmark end + -30 59161 a 5901 x FL(4.2)620 b(Selecting)g(a)h(K)-33 +b(ernel)-30 66674 y +SDict begin H.S end + -30 66674 a -30 66674 a +SDict begin 18.2 H.A end + -30 66674 +a -30 66674 a +SDict begin [ /View [/XYZ H.V] /Dest (1576) cvn H.B /DEST pdfmark end + -30 66674 a 1518 x FU(The)320 b(k)-15 b(ernel)319 +b(is)g(the)h(part)f(of)h(the)g(operating)f(system)g(that)g(pro)-23 +b(vides)36074 68192 y +SDict begin H.S end + 36074 68192 a 36074 68192 a +SDict begin 18.2 H.A end + 36074 +68192 a 36074 68192 a +SDict begin [ /View [/XYZ H.V] /Dest (1577) cvn H.B /DEST pdfmark end + 36074 68192 a 320 w FU(hardw)-15 +b(are)319 b(access,)h(process)p Black -30 73792 a FR(50)p +Black eop end +%%Page: 51 73 +TeXDict begin 51 72 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.51) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) +-23 b(ation)p Black -30 3611 a FU(control,)452 b(and)g(o)-23 +b(v)g(erall)451 b(system)g(control.)g(The)h(k)-15 b(ernel)451 +b(contains)h(support)f(for)h(your)f(hardw)-15 b(are)-30 +5626 y(de)-39 b(vices,)388 b(so)f(picking)g(one)g(for)g(your)g(system)g +(is)g(an)g(important)g(setup)g(step.)-30 6736 y +SDict begin H.S end + -30 6736 +a -30 6736 a +SDict begin 18.2 H.A end + -30 6736 a -30 6736 a +SDict begin [ /View [/XYZ H.V] /Dest (1579) cvn H.B /DEST pdfmark end + -30 6736 a 1679 x +FU(Slackw)-15 b(are)394 b(pro)-23 b(vides)393 b(more)i(than)f(a)g +(dozen)h(precompiled)e(k)-15 b(ernels)394 b(that)g(you)g(can)h(pick)f +(from,)-30 10430 y(each)332 b(with)f(a)h(standard)f(set)g(of)h(dri)-39 +b(v)-23 b(ers)331 b(and)g(additional)g(speci\002c)g(dri)-39 +b(v)-23 b(ers.)332 b(Y)-170 b(ou)330 b(can)i(run)f(one)h(of)-30 +12445 y(the)413 b(precompiled)f(k)-15 b(ernels)412 b(or)h(you)g(can)g +(b)-31 b(uild)412 b(your)h(o)-39 b(wn)413 b(k)-15 b(ernel)412 +b(from)h(source.)g(Either)g(w)-15 b(ay)-101 b(,)-30 14459 +y(you)356 b(need)g(to)f(mak)-15 b(e)355 b(sure)h(that)g(your)f(k)-15 +b(ernel)356 b(has)g(the)f(hardw)-15 b(are)356 b(support)f(your)h +(system)f(needs.)-30 14795 y +SDict begin H.S end + -30 14795 a -30 14795 a +SDict begin 18.2 H.A end + +-30 14795 a -30 14795 a +SDict begin [ /View [/XYZ H.V] /Dest (1580) cvn H.B /DEST pdfmark end + -30 14795 a 5026 x FG(The)518 +b FA(/kernel)n(s)487 b FG(Director)19 b(y)517 b(on)h(the)f(Slac)-37 +b(kware)517 b(CD-R)-37 b(OM)-30 21136 y +SDict begin H.S end + -30 21136 a -30 +21136 a +SDict begin 18.2 H.A end + -30 21136 a -30 21136 a +SDict begin [ /View [/XYZ H.V] /Dest (1583) cvn H.B /DEST pdfmark end + -30 21136 a 1630 x FU(The)562 +b(precompiled)f(Slackw)-15 b(are)562 b(k)-15 b(ernels)561 +b(are)i(a)-31 b(v)-39 b(ailable)561 b(in)h(the)36040 +22766 y +SDict begin H.S end + 36040 22766 a 36040 22766 a +SDict begin 18.2 H.A end + 36040 22766 a 36040 +22766 a +SDict begin [ /View [/XYZ H.V] /Dest (1584) cvn H.B /DEST pdfmark end + 36040 22766 a FQ(/kernels)557 b FU(directory)562 +b(on)g(the)-30 24781 y(Slackw)-15 b(are)406 b(CD-R)-62 +b(OM)405 b(or)i(on)f(the)g(FTP)g(site)g(in)g(the)g(main)g(Slackw)-15 +b(are)406 b(directory)-101 b(.)407 b(The)f(a)-31 b(v)-39 +b(ail-)-30 26795 y(able)338 b(k)-15 b(ernels)337 b(change)g(as)h(ne)-39 +b(w)338 b(releases)g(are)g(made,)g(so)f(the)h(documentation)e(in)i +(that)f(directory)-30 28810 y(is)362 b(al)-15 b(w)g(ays)360 +b(the)i(authoritati)-39 b(v)-23 b(e)360 b(source.)j(The)23955 +28810 y +SDict begin H.S end + 23955 28810 a 23955 28810 a +SDict begin 18.2 H.A end + 23955 28810 a 23955 +28810 a +SDict begin [ /View [/XYZ H.V] /Dest (1585) cvn H.B /DEST pdfmark end + 23955 28810 a FQ(/kernels)357 b FU(directory)k(has)h +(subdirectories)f(for)h(each)-30 30825 y(k)-15 b(ernel)338 +b(a)-31 b(v)-39 b(ailable.)339 b(The)f(subdirectories)g(ha)-31 +b(v)-23 b(e)338 b(the)g(same)g(name)g(as)h(their)f(accompan)-23 +b(ying)337 b(boot)-30 32839 y(disk.)387 b(In)h(each)f(subdirectory)g +(you)g(will)g(\002nd)f(the)i(follo)-39 b(wing)386 b(\002les:)-30 +33175 y +SDict begin H.S end + -30 33175 a -30 33175 a +SDict begin 18.2 H.A end + -30 33175 a -30 33175 +a +SDict begin [ /View [/XYZ H.V] /Dest (1586) cvn H.B /DEST pdfmark end + -30 33175 a -30 35499 a +SDict begin H.S end + -30 35499 a -30 35499 a +SDict begin 18.2 H.A end + -30 +35499 a -30 35499 a +SDict begin [ /View [/XYZ H.V] /Dest (1587) cvn H.B /DEST pdfmark end + -30 35499 a -30 35499 a +SDict begin H.S end + -30 35499 +a -30 35499 a +SDict begin 18.2 H.A end + -30 35499 a -30 35499 a +SDict begin [ /View [/XYZ H.V] /Dest (table.7) cvn H.B /DEST pdfmark +end + -30 35499 a 1727 +x FE(File)14598 b(Purpose)p -30 37603 51806 45 v -30 +37603 V -30 39329 a FQ(System.map)10999 b FU(The)387 +b(system)g(map)g(\002le)g(for)g(this)g(k)-15 b(ernel)-30 +41392 y FQ(bzImage)12880 b FU(The)387 b(actual)g(k)-15 +b(ernel)387 b(image)-30 43454 y FQ(config)13507 b FU(The)387 +b(source)g(con\002guration)f(\002le)h(for)h(this)f(k)-15 +b(ernel)-30 45339 y +SDict begin H.S end + -30 45339 a -30 45339 a +SDict begin 18.2 H.A end + -30 45339 +a -30 45339 a +SDict begin [ /View [/XYZ H.V] /Dest (1607) cvn H.B /DEST pdfmark end + -30 45339 a 1683 x FU(T)-124 b(o)364 b(use)h(a)f(k)-15 +b(ernel,)365 b(cop)-15 b(y)363 b(the)15645 47022 y +SDict begin H.S end + 15645 +47022 a 15645 47022 a +SDict begin 18.2 H.A end + 15645 47022 a 15645 47022 a +SDict begin [ /View [/XYZ H.V] /Dest (1608) cvn H.B /DEST pdfmark end + 15645 +47022 a FQ(System.map)358 b FU(and)24875 47022 y +SDict begin H.S end + 24875 +47022 a 24875 47022 a +SDict begin 18.2 H.A end + 24875 47022 a 24875 47022 a +SDict begin [ /View [/XYZ H.V] /Dest (1609) cvn H.B /DEST pdfmark end + 24875 +47022 a FQ(config)j FU(\002les)j(to)g(your)36721 47022 +y +SDict begin H.S end + 36721 47022 a 36721 47022 a +SDict begin 18.2 H.A end + 36721 47022 a 36721 47022 +a +SDict begin [ /View [/XYZ H.V] /Dest (1610) cvn H.B /DEST pdfmark end + 36721 47022 a FQ(/boot)d FU(directory)j(and)h(cop)-15 +b(y)-30 49037 y(the)494 b(k)-15 b(ernel)494 b(image)g(to)12693 +49037 y +SDict begin H.S end + 12693 49037 a 12693 49037 a +SDict begin 18.2 H.A end + 12693 49037 a 12693 +49037 a +SDict begin [ /View [/XYZ H.V] /Dest (1611) cvn H.B /DEST pdfmark end + 12693 49037 a FQ(/boot/vmlinuz)p FU(.)486 b(Run)24795 +49037 y +SDict begin H.S end + 24795 49037 a 24795 49037 a +SDict begin 18.2 H.A end + 24795 49037 a 24795 +49037 a +SDict begin [ /View [/XYZ H.V] /Dest (1612) cvn H.B /DEST pdfmark end + 24795 49037 a FP(/sbin/lilo)p FU(\(8\))494 b(to)g(install)g +(LILO)g(for)g(the)h(ne)-39 b(w)-30 51051 y(k)-15 b(ernel,)387 +b(and)h(then)f(reboot)g(your)g(system.)g(That')-85 b(s)386 +b(all)i(there)f(is)g(to)g(installing)f(a)i(ne)-39 b(w)387 +b(k)-15 b(ernel.)-30 52162 y +SDict begin H.S end + -30 52162 a -30 52162 a +SDict begin 18.2 H.A end + +-30 52162 a -30 52162 a +SDict begin [ /View [/XYZ H.V] /Dest (1613) cvn H.B /DEST pdfmark end + -30 52162 a 1679 x FU(The)365 +b(k)-15 b(ernels)365 b(that)g(end)h(with)f(a)g(.i)h(are)g(IDE)f(k)-15 +b(ernels.)365 b(That)g(is,)h(the)-23 b(y)365 b(include)g(no)g(SCSI)g +(support)-30 55856 y(in)483 b(the)f(base)h(k)-15 b(ernel.)483 +b(The)f(k)-15 b(ernels)482 b(that)h(end)g(with)f(.s)h(are)g(SCSI)f(k) +-15 b(ernels.)482 b(The)-23 b(y)483 b(include)f(all)-30 +57870 y(the)387 b(IDE)h(support)e(in)h(.i)h(k)-15 b(ernels,)387 +b(plus)g(SCSI)f(support.)-30 58981 y +SDict begin H.S end + -30 58981 a -30 +58981 a +SDict begin 18.2 H.A end + -30 58981 a -30 58981 a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-KERNEL-COMPILE) +cvn H.B /DEST pdfmark end + -30 58981 a 5181 x FG(Compiling)518 +b(a)f(K)-28 b(ernel)517 b(fr)-37 b(om)518 b(Sour)-37 +b(ce)-30 64576 y +SDict begin H.S end + -30 64576 a -30 64576 a +SDict begin 18.2 H.A end + -30 64576 a +-30 64576 a +SDict begin [ /View [/XYZ H.V] /Dest (1616) cvn H.B /DEST pdfmark end + -30 64576 a -30 65506 a +SDict begin H.S end + -30 65506 a -30 65506 +a +SDict begin 18.2 H.A end + -30 65506 a -30 65506 a +SDict begin [ /View [/XYZ H.V] /Dest (1619) cvn H.B /DEST pdfmark end + -30 65506 a 1601 x FU(The)551 +b(question)8734 67107 y +SDict begin H.S end + 8734 67107 a 8734 67107 a +SDict begin 18.2 H.A end + 8734 +67107 a 8734 67107 a +SDict begin [ /View [/XYZ H.V] /Dest (1620) cvn H.B /DEST pdfmark end + 8734 67107 a FU(\223Should)f(I)i(compile)e(a)h(k) +-15 b(ernel)551 b(for)g(my)f(system?\224)h(is)g(often)f(ask)-15 +b(ed)551 b(by)g(ne)-39 b(w)p Black 50226 73792 a FR(51)p +Black eop end +%%Page: 52 74 +TeXDict begin 52 73 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.52) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 +b(ation)p Black -30 3611 a FU(users.)402 b(The)g(answer)f(is)h(a)g +(de\002nite)f(maybe.)h(There)f(are)h(fe)-39 b(w)402 b(instances)g +(where)f(you)h(will)f(need)-30 5626 y(to)336 b(compile)g(a)g(k)-15 +b(ernel)336 b(speci\002c)f(to)h(your)g(system.)g(Most)f(users)h(can)h +(use)f(a)g(precompiled)g(k)-15 b(ernel)-30 7640 y(and)467 +b(the)g(loadable)g(k)-15 b(ernel)466 b(modules)g(to)h(achie)-39 +b(v)-23 b(e)467 b(a)h(fully)e(w)-15 b(orking)466 b(system.)h(Y)-170 +b(ou)466 b(will)h(w)-15 b(ant)-30 9655 y(to)393 b(compile)f(a)h(k)-15 +b(ernel)392 b(for)h(your)f(system)g(if)h(you)g(are)g(upgrading)f(k)-15 +b(ernel)392 b(v)-23 b(ersions)392 b(to)h(one)f(that)-30 +11670 y(we)441 b(do)g(not)f(currently)h(of)-39 b(fer)441 +b(in)g(Slackw)-15 b(are,)440 b(or)h(if)g(you)f(ha)-31 +b(v)-23 b(e)441 b(patched)g(the)f(k)-15 b(ernel)440 b(source)h(to)-30 +13684 y(get)528 b(special)g(de)-39 b(vice)529 b(support)e(that)h(is)h +(not)f(in)g(the)g(nati)-39 b(v)-23 b(e)528 b(k)-15 b(ernel)528 +b(source.)g(An)-23 b(yone)528 b(with)g(an)-30 15699 y(SMP)366 +b(system)f(will)h(de\002nitely)f(w)-15 b(ant)366 b(to)g(compile)g(a)g +(k)-15 b(ernel)366 b(with)g(SMP)f(support.)h(Also,)h(man)-23 +b(y)-30 17714 y(users)514 b(\002nd)g(a)g(custom)f(compiled)h(k)-15 +b(ernel)513 b(runs)h(much)g(f)-15 b(aster)514 b(on)g(their)g(machine.)g +(Y)-170 b(ou)513 b(may)-30 19728 y(\002nd)463 b(it)g(useful)f(to)h +(compile)g(the)g(k)-15 b(ernel)462 b(with)h(optimizations)e(for)j(the)f +(speci\002c)f(processor)h(in)-30 21743 y(your)387 b(machine.)-30 +22853 y +SDict begin H.S end + -30 22853 a -30 22853 a +SDict begin 18.2 H.A end + -30 22853 a -30 22853 +a +SDict begin [ /View [/XYZ H.V] /Dest (1621) cvn H.B /DEST pdfmark end + -30 22853 a 1680 x FU(Building)352 b(your)g(o)-39 b(wn)353 +b(k)-15 b(ernel)353 b(is)f(not)h(that)g(hard.)g(The)g(\002rst)f(step)h +(is)g(to)f(mak)-15 b(e)353 b(sure)g(you)f(ha)-31 b(v)-23 +b(e)353 b(the)-30 26547 y(k)-15 b(ernel)499 b(source)h(installed)f(on)h +(your)f(system.)h(Mak)-15 b(e)499 b(sure)g(that)h(you)g(installed)e +(the)i(packages)-30 28562 y(from)420 b(the)h(K)f(series)g(during)g(the) +g(installation.)g(Y)-170 b(ou)419 b(will)h(also)g(w)-15 +b(ant)420 b(to)g(mak)-15 b(e)420 b(sure)g(you)g(ha)-31 +b(v)-23 b(e)-30 30577 y(the)507 b(D)g(series)g(installed,)g +(speci\002cally)f(the)h(C)f(compiler)-62 b(,)507 b(GNU)g(mak)-15 +b(e,)507 b(and)g(GNU)g(binutils.)-30 32591 y(In)491 b(general,)g(it') +-85 b(s)491 b(a)g(good)f(idea)h(to)g(ha)-31 b(v)-23 b(e)490 +b(the)h(entire)g(D)g(series)f(installed)g(if)h(you)g(plan)f(on)h(do-) +-30 34606 y(ing)456 b(an)-23 b(y)456 b(kind)g(of)g(de)-39 +b(v)-23 b(elopment.)456 b(Y)-170 b(ou)456 b(can)g(also)g(do)-39 +b(wnload)456 b(the)g(latest)g(k)-15 b(ernel)456 b(source)g(from)p +0 1 0 0 TeXcolorcmyk -30 36975 a +SDict begin H.S end + -30 36975 a 0 1 0 0 +TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(k)l(e)l(r)l(n)l(e)l(l) +l(.)l(o)l(r)l(g)l(/)l(m)l(i)l(r)l(r)l(o)l(r)l(s)p 0 1 0 0 +TeXcolorcmyk 23431 35514 a +SDict begin H.R end + 23431 35514 a 23431 36621 +a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.kernel.org/mirrors) >> /Subtype /Link H.B /ANN +pdfmark end + 23431 36621 a Black FU(.)-30 36975 y +SDict begin H.S end + -30 36975 a -30 +36975 a +SDict begin 18.2 H.A end + -30 36975 a -30 36975 a +SDict begin [ /View [/XYZ H.V] /Dest (1623) cvn H.B /DEST pdfmark end + -30 36975 a 4372 x FE(Lin)-15 +b(ux)430 b(K)-23 b(ernel)429 b(ver)-23 b(sion)429 b(2.4.x)g +(Compilation)-30 43218 y +SDict begin H.S end + -30 43218 a -30 43218 a +SDict begin 14.56 H.A end + -30 +43218 a -30 43218 a +SDict begin [ /View [/XYZ H.V] /Dest (1625) cvn H.B /DEST pdfmark end + -30 43218 a -30 43218 a +SDict begin H.S end + -30 43218 +a -30 43218 a +SDict begin 14.56 H.A end + -30 43218 a -30 43218 a +SDict begin [ /View [/XYZ H.V] /Dest (1626) cvn H.B /DEST pdfmark end + -30 43218 a 1291 +x FJ(\045)1309 44509 y +SDict begin H.S end + 1309 44509 a 1309 44509 a +SDict begin 14.56 H.A end + 1309 +44509 a 1309 44509 a +SDict begin [ /View [/XYZ H.V] /Dest (1627) cvn H.B /DEST pdfmark end + 1309 44509 a FH(su)744 b(-)-30 46121 +y FP(Password:)-30 46147 y +SDict begin H.S end + -30 46147 a -30 46147 a +SDict begin 14.56 H.A end + -30 +46147 a -30 46147 a +SDict begin [ /View [/XYZ H.V] /Dest (1628) cvn H.B /DEST pdfmark end + -30 46147 a 1585 x FJ(#)1309 47732 +y +SDict begin H.S end + 1309 47732 a 1309 47732 a +SDict begin 14.56 H.A end + 1309 47732 a 1309 47732 a +SDict begin [ /View [/XYZ H.V] /Dest (1629) cvn H.B /DEST pdfmark end + +1309 47732 a FH(cd)g(/usr/src/linux)-30 47823 y +SDict begin H.S end + -30 47823 +a -30 47823 a +SDict begin 18.2 H.A end + -30 47823 a -30 47823 a +SDict begin [ /View [/XYZ H.V] /Dest (1630) cvn H.B /DEST pdfmark end + -30 47823 a -30 +49373 a +SDict begin H.S end + -30 49373 a -30 49373 a +SDict begin 18.2 H.A end + -30 49373 a -30 49373 +a +SDict begin [ /View [/XYZ H.V] /Dest (1633) cvn H.B /DEST pdfmark end + -30 49373 a 1924 x FU(The)365 b(\002rst)g(step)g(is)g(to)g(bring)g +(the)g(k)-15 b(ernel)365 b(source)g(into)f(its)h(base)g(state.)h(W)-124 +b(e)365 b(issue)g(this)g(command)-30 53311 y(to)314 b(do)f(that)h +(\(note,)g(you)f(may)h(wish)f(to)h(back-up)f(the)27773 +53311 y +SDict begin H.S end + 27773 53311 a 27773 53311 a +SDict begin 18.2 H.A end + 27773 53311 a 27773 +53311 a +SDict begin [ /View [/XYZ H.V] /Dest (1634) cvn H.B /DEST pdfmark end + 27773 53311 a FQ(.config)c FU(\002le)314 b(as)g(this)f(command) +g(will)g(delete)-30 55326 y(it)387 b(without)g(w)-15 +b(arning\):)-30 57211 y +SDict begin H.S end + -30 57211 a -30 57211 a +SDict begin 14.56 H.A end + -30 57211 +a -30 57211 a +SDict begin [ /View [/XYZ H.V] /Dest (1635) cvn H.B /DEST pdfmark end + -30 57211 a -30 57211 a +SDict begin H.S end + -30 57211 a -30 +57211 a +SDict begin 14.56 H.A end + -30 57211 a -30 57211 a +SDict begin [ /View [/XYZ H.V] /Dest (1636) cvn H.B /DEST pdfmark end + -30 57211 a 1277 x FJ(#)1309 +58488 y +SDict begin H.S end + 1309 58488 a 1309 58488 a +SDict begin 14.56 H.A end + 1309 58488 a 1309 58488 +a +SDict begin [ /View [/XYZ H.V] /Dest (1637) cvn H.B /DEST pdfmark end + 1309 58488 a FH(make)743 b(mrproper)-30 60205 y +SDict begin H.S end + -30 +60205 a -30 60205 a +SDict begin 18.2 H.A end + -30 60205 a -30 60205 a +SDict begin [ /View [/XYZ H.V] /Dest (1638) cvn H.B /DEST pdfmark end + -30 60205 +a 1847 x FU(No)-39 b(w)468 b(you)f(can)h(con\002gure)g(the)f(k)-15 +b(ernel)467 b(for)h(your)g(system.)f(The)h(current)g(k)-15 +b(ernel)467 b(of)-39 b(fers)468 b(three)-30 64067 y(w)-15 +b(ays)438 b(of)g(doing)g(this.)h(The)f(\002rst)g(is)g(the)g(original)g +(te)-23 b(xt-based)438 b(question)g(and)g(answer)g(system.)-30 +66081 y(It)449 b(asks)f(a)h(b)-31 b(unch)449 b(of)f(questions)g(and)h +(then)f(b)-31 b(uilds)448 b(a)h(con\002guration)f(\002le.)h(The)f +(problem)g(with)-30 68096 y(this)356 b(method)g(is)g(that)g(if)g(you)h +(mess)e(up,)i(you)f(must)g(start)g(o)-23 b(v)g(er)-85 +b(.)356 b(The)h(method)e(that)i(most)e(people)p Black +-30 73792 a FR(52)p Black eop end +%%Page: 53 75 +TeXDict begin 53 74 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.53) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1660) cvn H.B /DEST pdfmark end + -30 -2687 a 31781 -1636 a FR(Chapter)387 +b(4)g(System)g(Con\002gur)-23 b(ation)p Black -30 3611 +a FU(prefer)414 b(is)f(the)g(menu)f(dri)-39 b(v)-23 b(en)413 +b(one.)h(Lastly)-101 b(,)413 b(there)g(is)g(an)g(X-based)g(k)-15 +b(ernel)413 b(con\002guration)f(tool.)-30 5626 y(Pick)387 +b(the)g(one)g(you)g(w)-15 b(ant)387 b(and)g(issue)g(the)g(appropriate)g +(command:)-30 7511 y +SDict begin H.S end + -30 7511 a -30 7511 a +SDict begin 14.56 H.A end + -30 7511 a +-30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (1639) cvn H.B /DEST pdfmark end + -30 7511 a -30 7511 a +SDict begin H.S end + -30 7511 a -30 7511 +a +SDict begin 14.56 H.A end + -30 7511 a -30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (1640) cvn H.B /DEST pdfmark end + -30 7511 a 1276 x FJ(#)1309 8787 +y +SDict begin H.S end + 1309 8787 a 1309 8787 a +SDict begin 14.56 H.A end + 1309 8787 a 1309 8787 a +SDict begin [ /View [/XYZ H.V] /Dest (1641) cvn H.B /DEST pdfmark end + 1309 +8787 a FH(make)743 b(config)8182 b FP(\(text-based)743 +b(Q&A)g(version\))-30 8964 y +SDict begin H.S end + -30 8964 a -30 8964 a +SDict begin 14.56 H.A end + -30 +8964 a -30 8964 a +SDict begin [ /View [/XYZ H.V] /Dest (1642) cvn H.B /DEST pdfmark end + -30 8964 a 1435 x FJ(#)1309 10399 y +SDict begin H.S end + +1309 10399 a 1309 10399 a +SDict begin 14.56 H.A end + 1309 10399 a 1309 10399 a +SDict begin [ /View [/XYZ H.V] /Dest (1643) cvn H.B /DEST pdfmark end + 1309 +10399 a FH(make)g(menuconfig)5206 b FP(\(menu)744 b(driven,)f +(text-based)f(version\))-30 10567 y +SDict begin H.S end + -30 10567 a -30 10567 +a +SDict begin 14.56 H.A end + -30 10567 a -30 10567 a +SDict begin [ /View [/XYZ H.V] /Dest (1644) cvn H.B /DEST pdfmark end + -30 10567 a 1444 x FJ(#)1309 +12011 y +SDict begin H.S end + 1309 12011 a 1309 12011 a +SDict begin 14.56 H.A end + 1309 12011 a 1309 12011 +a +SDict begin [ /View [/XYZ H.V] /Dest (1645) cvn H.B /DEST pdfmark end + 1309 12011 a FH(make)h(xconfig)7438 b FP(\(X-based)743 +b(version,)g(make)h(sure)f(you)g(are)h(in)g(X)f(first\))-30 +12206 y +SDict begin H.S end + -30 12206 a -30 12206 a +SDict begin 18.2 H.A end + -30 12206 a -30 12206 +a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-MAKE-MENUCONFIG) +cvn H.B /DEST pdfmark end + -30 12206 a 4919 x FX(Figur)-28 b(e)387 b(4-1.)h(K)-39 +b(er)-23 b(nel)387 b(Con\002guration)e(Menu)-30 18989 +y +SDict begin H.S end + -30 18989 a -30 18989 a +SDict begin 18.2 H.A end + -30 18989 a -30 18989 a +SDict begin [ /View [/XYZ H.V] /Dest (1648) cvn H.B /DEST pdfmark end + -30 +18989 a -30 51209 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 51209 a @beginspecial 15 @llx +60 @lly 472 @urx 343 @ury 4570 @rwi @setspecial +%%BeginDocument: system-configuration/make-menuconfig.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 15 60 472 343 + +/Outterbox +{ newpath moveto +0 247 rlineto +174 0 rlineto +23 61 moveto +444 0 rlineto +0 247 rlineto +-200 0 rlineto +23 87 moveto +444 0 rlineto +closepath } def + +/Innerbox +{ moveto +420 0 rlineto +0 144 rlineto +-420 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 13 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +15 322 moveto +457 0 rlineto + +15 333 TitleFont(Linux Kernel v2.2.16 Configuration) show + +199 306 TitleFont(Main Menu) show + +34 294 PanelFont (Arrow keys navigate the menu. selects submenus --->.) show +34 280 PanelFont (Highlighted letters and hotkeys. Pressing includes, excludes,) show +34 266 PanelFont ( modularizes features. Press to exit, for help) show +34 252 PanelFont (Legend: [ * ] built-in [ ] excluded module < > module capable) show + +97 229 ContentFont (Code maturity level options --->) show +97 217 ContentFont (Processor type and features --->) show +97 205 ContentFont (Loadable module support --->) show +97 193 ContentFont (General setup --->) show +97 181 ContentFont (Plug and Play support --->) show +97 169 ContentFont (Block devices --->) show +97 157 ContentFont (Networking options --->) show +97 145 ContentFont (Telephony Support --->) show +97 133 ContentFont (SCSI support --->) show +97 121 ContentFont (Network device support --->) show +97 109 ContentFont (Amateur Radio support --->) show +97 97 ContentFont () show + +143 71 ButtonFont (< Select >) show +221 71 ButtonFont (< Exit >) show +289 71 ButtonFont (< Help >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 51209 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 51209 a -30 52758 a +SDict begin H.S end + -30 +52758 a -30 52758 a +SDict begin 18.2 H.A end + -30 52758 a -30 52758 a +SDict begin [ /View [/XYZ H.V] /Dest (1651) cvn H.B /DEST pdfmark end + -30 52758 +a 2015 x FU(Ne)-39 b(w)439 b(users)g(will)f(probably)g(\002nd)18568 +54773 y +SDict begin H.S end + 18568 54773 a 18568 54773 a +SDict begin 18.2 H.A end + 18568 54773 a 18568 +54773 a +SDict begin [ /View [/XYZ H.V] /Dest (1652) cvn H.B /DEST pdfmark end + 18568 54773 a FP(menuconfig)g FU(to)h(be)g(the)f(easiest)h(to)f +(use.)h(Help)g(screens)g(are)-30 56788 y(pro)-23 b(vided)424 +b(that)g(e)-23 b(xplain)424 b(the)g(v)-39 b(arious)424 +b(parts)h(of)f(the)h(k)-15 b(ernel.)424 b(After)g(con\002guring)g(your) +g(k)-15 b(ernel,)-30 58802 y(e)-23 b(xit)457 b(the)h(con\002guration)f +(program.)h(It)g(will)f(write)h(the)g(necessary)f(con\002guration)g +(\002les.)h(No)-39 b(w)-30 60817 y(we)388 b(can)f(prepare)h(the)f +(source)g(tree)g(for)h(a)f(b)-31 b(uild:)-30 62702 y +SDict begin H.S end + +-30 62702 a -30 62702 a +SDict begin 14.56 H.A end + -30 62702 a -30 62702 a +SDict begin [ /View [/XYZ H.V] /Dest (1653) cvn H.B /DEST pdfmark end + -30 62702 +a -30 62702 a +SDict begin H.S end + -30 62702 a -30 62702 a +SDict begin 14.56 H.A end + -30 62702 a -30 +62702 a +SDict begin [ /View [/XYZ H.V] /Dest (1654) cvn H.B /DEST pdfmark end + -30 62702 a 1276 x FJ(#)1309 63978 y +SDict begin H.S end + 1309 63978 +a 1309 63978 a +SDict begin 14.56 H.A end + 1309 63978 a 1309 63978 a +SDict begin [ /View [/XYZ H.V] /Dest (1655) cvn H.B /DEST pdfmark end + 1309 63978 a +FH(make)743 b(dep)-30 64146 y +SDict begin H.S end + -30 64146 a -30 64146 a +SDict begin 14.56 H.A end + +-30 64146 a -30 64146 a +SDict begin [ /View [/XYZ H.V] /Dest (1656) cvn H.B /DEST pdfmark end + -30 64146 a 1444 x FJ(#)1309 +65590 y +SDict begin H.S end + 1309 65590 a 1309 65590 a +SDict begin 14.56 H.A end + 1309 65590 a 1309 65590 +a +SDict begin [ /View [/XYZ H.V] /Dest (1657) cvn H.B /DEST pdfmark end + 1309 65590 a FH(make)g(clean)p Black 50226 73792 a +FR(53)p Black eop end +%%Page: 54 76 +TeXDict begin 54 75 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.54) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 +b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1658) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(The)334 b(ne)-23 +b(xt)334 b(step)f(is)h(to)g(compile)g(the)g(k)-15 b(ernel.)333 +b(First)h(try)g(issuing)f(the)35753 3611 y +SDict begin H.S end + 35753 3611 +a 35753 3611 a +SDict begin 18.2 H.A end + 35753 3611 a 35753 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (1659) cvn H.B /DEST pdfmark end + 35753 3611 a +FP(bzImage)g FU(command)g(belo)-39 b(w)-101 b(.)-30 6773 +y FJ(#)1309 6773 y +SDict begin H.S end + 1309 6773 a 1309 6773 a +SDict begin 14.56 H.A end + 1309 6773 +a 1309 6773 a +SDict begin [ /View [/XYZ H.V] /Dest (1662) cvn H.B /DEST pdfmark end + 1309 6773 a FH(make)743 b(bzImage)-30 8490 +y +SDict begin H.S end + -30 8490 a -30 8490 a +SDict begin 18.2 H.A end + -30 8490 a -30 8490 a +SDict begin [ /View [/XYZ H.V] /Dest (1663) cvn H.B /DEST pdfmark end + -30 8490 +a 1847 x FU(This)337 b(may)f(tak)-15 b(e)337 b(a)g(while,)g(depending)g +(on)g(your)f(CPU)h(speed.)g(During)g(the)g(b)-31 b(uild)336 +b(process,)h(you)-30 12352 y(will)500 b(see)g(the)f(compiler)h +(messages.)g(After)g(b)-31 b(uilding)499 b(the)g(k)-15 +b(ernel)500 b(image,)g(you)f(will)h(w)-15 b(ant)499 b(to)-30 +14366 y(b)-31 b(uild)387 b(an)-23 b(y)387 b(parts)g(of)g(the)g(k)-15 +b(ernel)387 b(that)g(you)g(\003agged)g(as)g(modular)-85 +b(.)-30 16252 y +SDict begin H.S end + -30 16252 a -30 16252 a +SDict begin 14.56 H.A end + -30 16252 a -30 +16252 a +SDict begin [ /View [/XYZ H.V] /Dest (1664) cvn H.B /DEST pdfmark end + -30 16252 a -30 16252 a +SDict begin H.S end + -30 16252 a -30 16252 +a +SDict begin 14.56 H.A end + -30 16252 a -30 16252 a +SDict begin [ /View [/XYZ H.V] /Dest (1665) cvn H.B /DEST pdfmark end + -30 16252 a 1276 x FJ(#)1309 +17528 y +SDict begin H.S end + 1309 17528 a 1309 17528 a +SDict begin 14.56 H.A end + 1309 17528 a 1309 17528 +a +SDict begin [ /View [/XYZ H.V] /Dest (1666) cvn H.B /DEST pdfmark end + 1309 17528 a FH(make)743 b(modules)-30 19102 y +SDict begin H.S end + -30 +19102 a -30 19102 a +SDict begin 18.2 H.A end + -30 19102 a -30 19102 a +SDict begin [ /View [/XYZ H.V] /Dest (1667) cvn H.B /DEST pdfmark end + -30 19102 +a 1990 x FU(W)-124 b(e)402 b(can)g(no)-39 b(w)401 b(install)g(the)g(k) +-15 b(ernel)401 b(and)h(modules)e(that)i(you)32474 21092 +y +SDict begin H.S end + 32474 21092 a 32474 21092 a +SDict begin 18.2 H.A end + 32474 21092 a 32474 21092 +a +SDict begin [ /View [/XYZ H.V] /Dest (1668) cvn H.B /DEST pdfmark end + 32474 21092 a 402 w FU(compiled.)f(T)-124 b(o)401 b(install)g(the)h +(k)-15 b(ernel)-30 23107 y(on)387 b(a)h(Slackw)-15 b(are)386 +b(system,)h(these)g(commands)g(should)f(be)i(issued:)-30 +24992 y +SDict begin H.S end + -30 24992 a -30 24992 a +SDict begin 14.56 H.A end + -30 24992 a -30 24992 +a +SDict begin [ /View [/XYZ H.V] /Dest (1671) cvn H.B /DEST pdfmark end + -30 24992 a -30 24992 a +SDict begin H.S end + -30 24992 a -30 24992 a +SDict begin 14.56 H.A end + -30 +24992 a -30 24992 a +SDict begin [ /View [/XYZ H.V] /Dest (1672) cvn H.B /DEST pdfmark end + -30 24992 a 1276 x FJ(#)1309 26268 +y +SDict begin H.S end + 1309 26268 a 1309 26268 a +SDict begin 14.56 H.A end + 1309 26268 a 1309 26268 a +SDict begin [ /View [/XYZ H.V] /Dest (1673) cvn H.B /DEST pdfmark end + +1309 26268 a FH(mv)744 b(/boot/vmlinuz)e(/boot/vmlinuz.old)-30 +26359 y +SDict begin H.S end + -30 26359 a -30 26359 a +SDict begin 14.56 H.A end + -30 26359 a -30 26359 +a +SDict begin [ /View [/XYZ H.V] /Dest (1674) cvn H.B /DEST pdfmark end + -30 26359 a 1521 x FJ(#)1309 27880 y +SDict begin H.S end + 1309 27880 a 1309 +27880 a +SDict begin 14.56 H.A end + 1309 27880 a 1309 27880 a +SDict begin [ /View [/XYZ H.V] /Dest (1675) cvn H.B /DEST pdfmark end + 1309 27880 a FH(cat)i +(arch/i386/boot/bzImage)d(>)j(/vmlinuz)-30 28048 y +SDict begin H.S end + -30 +28048 a -30 28048 a +SDict begin 14.56 H.A end + -30 28048 a -30 28048 a +SDict begin [ /View [/XYZ H.V] /Dest (1676) cvn H.B /DEST pdfmark end + -30 28048 +a 1444 x FJ(#)1309 29492 y +SDict begin H.S end + 1309 29492 a 1309 29492 a +SDict begin 14.56 H.A end + +1309 29492 a 1309 29492 a +SDict begin [ /View [/XYZ H.V] /Dest (1677) cvn H.B /DEST pdfmark end + 1309 29492 a FH(mv)g(/boot/System.map)e +(/boot/System.map.old)-30 29660 y +SDict begin H.S end + -30 29660 a -30 29660 +a +SDict begin 14.56 H.A end + -30 29660 a -30 29660 a +SDict begin [ /View [/XYZ H.V] /Dest (1678) cvn H.B /DEST pdfmark end + -30 29660 a 1444 x FJ(#)1309 +31104 y +SDict begin H.S end + 1309 31104 a 1309 31104 a +SDict begin 14.56 H.A end + 1309 31104 a 1309 31104 +a +SDict begin [ /View [/XYZ H.V] /Dest (1679) cvn H.B /DEST pdfmark end + 1309 31104 a FH(cp)i(System.map)e(/boot/System.map)-30 +31272 y +SDict begin H.S end + -30 31272 a -30 31272 a +SDict begin 14.56 H.A end + -30 31272 a -30 31272 +a +SDict begin [ /View [/XYZ H.V] /Dest (1680) cvn H.B /DEST pdfmark end + -30 31272 a 1443 x FJ(#)1309 32715 y +SDict begin H.S end + 1309 32715 a 1309 +32715 a +SDict begin 14.56 H.A end + 1309 32715 a 1309 32715 a +SDict begin [ /View [/XYZ H.V] /Dest (1681) cvn H.B /DEST pdfmark end + 1309 32715 a FH(make)h +(modules_install)-30 34433 y +SDict begin H.S end + -30 34433 a -30 34433 a +SDict begin 18.2 H.A end + +-30 34433 a -30 34433 a +SDict begin [ /View [/XYZ H.V] /Dest (1682) cvn H.B /DEST pdfmark end + -30 34433 a 1847 x FU(Y)-170 +b(ou)345 b(will)g(w)-15 b(ant)345 b(to)h(edit)13136 36280 +y +SDict begin H.S end + 13136 36280 a 13136 36280 a +SDict begin 18.2 H.A end + 13136 36280 a 13136 36280 +a +SDict begin [ /View [/XYZ H.V] /Dest (1683) cvn H.B /DEST pdfmark end + 13136 36280 a FQ(/etc/lilo.conf)337 b FU(and)346 b(add)f(a)h(section) +f(to)h(boot)f(your)h(old)f(k)-15 b(ernel)345 b(in)h(case)-30 +38294 y(your)525 b(ne)-39 b(w)526 b(one)f(does)h(not)f(w)-15 +b(ork.)525 b(After)g(doing)g(that,)h(run)32803 38294 +y +SDict begin H.S end + 32803 38294 a 32803 38294 a +SDict begin 18.2 H.A end + 32803 38294 a 32803 38294 +a +SDict begin [ /View [/XYZ H.V] /Dest (1684) cvn H.B /DEST pdfmark end + 32803 38294 a FP(/sbin/lilo)f FU(to)g(install)f(the)i(ne)-39 +b(w)-30 40309 y(boot)387 b(block.)g(Y)-170 b(ou)387 b(can)g(no)-39 +b(w)388 b(reboot)f(with)g(your)g(ne)-39 b(w)387 b(k)-15 +b(ernel.)-30 41419 y +SDict begin H.S end + -30 41419 a -30 41419 a +SDict begin 18.2 H.A end + -30 41419 +a -30 41419 a +SDict begin [ /View [/XYZ H.V] /Dest (1685) cvn H.B /DEST pdfmark end + -30 41419 a 4779 x FE(Lin)g(ux)430 b(K)-23 +b(ernel)429 b(V)-77 b(er)-23 b(sion)428 b(2.6.x)-30 46217 +y +SDict begin H.S end + -30 46217 a -30 46217 a +SDict begin 18.2 H.A end + -30 46217 a -30 46217 a +SDict begin [ /View [/XYZ H.V] /Dest (1687) cvn H.B /DEST pdfmark end + -30 +46217 a -30 46992 a +SDict begin H.S end + -30 46992 a -30 46992 a +SDict begin 18.2 H.A end + -30 46992 +a -30 46992 a +SDict begin [ /View [/XYZ H.V] /Dest (1690) cvn H.B /DEST pdfmark end + -30 46992 a 1996 x FU(The)418 b(compilation)e(of)h(a)h +(2.6)g(k)-15 b(ernel)417 b(is)g(only)g(slightly)g(dif)-39 +b(ferent)417 b(from)g(a)h(2.4)g(or)g(a)f(2.2)h(k)-15 +b(ernel,)-30 51002 y(b)-31 b(ut)616 b(it)g(is)h(important)e(that)h(you) +g(understand)g(the)g(dif)-39 b(ferences)617 b(before)g(delving)e(in.)i +(It')-85 b(s)616 b(no)-30 53017 y(longer)606 b(necessary)h(to)f(run) +15651 53017 y +SDict begin H.S end + 15651 53017 a 15651 53017 a +SDict begin 18.2 H.A end + 15651 53017 +a 15651 53017 a +SDict begin [ /View [/XYZ H.V] /Dest (1691) cvn H.B /DEST pdfmark end + 15651 53017 a FP(make)743 b(dep)607 b +FU(and)25053 53017 y +SDict begin H.S end + 25053 53017 a 25053 53017 a +SDict begin 18.2 H.A end + 25053 +53017 a 25053 53017 a +SDict begin [ /View [/XYZ H.V] /Dest (1692) cvn H.B /DEST pdfmark end + 25053 53017 a FP(make)743 b(clean)p +FU(.)607 b(Also,)f(the)g(k)-15 b(ernel)606 b(compilation)-30 +55032 y(process)583 b(is)g(not)g(as)g(v)-23 b(erbose)582 +b(in)h(the)g(2.6)h(k)-15 b(ernel)582 b(series.)h(This)g(results)g(in)f +(a)i(b)-31 b(uild)582 b(process)-30 57046 y(that)389 +b(is)f(easier)i(to)e(understand,)h(b)-31 b(ut)389 b(has)g(some)f(short) +h(comings)f(as)h(well.)g(If)g(you)g(ha)-31 b(v)-23 b(e)388 +b(trouble)-30 59061 y(b)-31 b(uilding)314 b(the)h(k)-15 +b(ernel,)314 b(it')-85 b(s)314 b(highly)g(recommended)h(that)f(you)h +(turn)f(v)-23 b(erbosity)314 b(back)h(up.)g(Y)-170 b(ou)314 +b(do)-30 61076 y(this)406 b(simply)f(by)h(appending)16061 +61076 y +SDict begin H.S end + 16061 61076 a 16061 61076 a +SDict begin 18.2 H.A end + 16061 61076 a 16061 +61076 a +SDict begin [ /View [/XYZ H.V] /Dest (1693) cvn H.B /DEST pdfmark end + 16061 61076 a FP(V=1)g FU(to)g(the)h(b)-31 b(uild.)406 +b(This)g(allo)-39 b(ws)406 b(you)g(to)g(log)g(more)g(information)-30 +63090 y(that)527 b(could)g(help)g(a)g(k)-15 b(ernel)526 +b(de)-39 b(v)-23 b(eloper)527 b(or)g(other)g(friendly)g(geek)g(aid)g +(you)g(in)g(resolving)f(the)-30 65105 y(issue.)-30 66670 +y +SDict begin H.S end + -30 66670 a -30 66670 a +SDict begin 14.56 H.A end + -30 66670 a -30 66670 a +SDict begin [ /View [/XYZ H.V] /Dest (1694) cvn H.B /DEST pdfmark end + -30 +66670 a -30 66670 a +SDict begin H.S end + -30 66670 a -30 66670 a +SDict begin 14.56 H.A end + -30 66670 +a -30 66670 a +SDict begin [ /View [/XYZ H.V] /Dest (1695) cvn H.B /DEST pdfmark end + -30 66670 a 1596 x FJ(#)1309 68266 y +SDict begin H.S end + 1309 +68266 a 1309 68266 a +SDict begin 14.56 H.A end + 1309 68266 a 1309 68266 a +SDict begin [ /View [/XYZ H.V] /Dest (1696) cvn H.B /DEST pdfmark end + 1309 68266 +a FH(make)743 b(bzImage)g(V=1)p Black -30 73792 a FR(54)p +Black eop end +%%Page: 55 77 +TeXDict begin 55 76 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.55) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 31781 -1636 a FR(Chapter)387 b(4)g(System)g(Con\002gur) +-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + +-30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (SYSTEM-CONFIGURATION-KERNEL-MODULES) +cvn H.B /DEST pdfmark end + -30 2504 a 1357 x FG(Using)517 +b(K)-28 b(ernel)518 b(Modules)-30 4275 y +SDict begin H.S end + -30 4275 a -30 +4275 a +SDict begin 18.2 H.A end + -30 4275 a -30 4275 a +SDict begin [ /View [/XYZ H.V] /Dest (1699) cvn H.B /DEST pdfmark end + -30 4275 a -30 5204 a +SDict begin H.S end + -30 +5204 a -30 5204 a +SDict begin 18.2 H.A end + -30 5204 a -30 5204 a +SDict begin [ /View [/XYZ H.V] /Dest (1702) cvn H.B /DEST pdfmark end + -30 5204 a 1601 +x FU(K)-39 b(ernel)421 b(modules)g(are)g(another)g(name)g(for)h(de)-39 +b(vice)421 b(dri)-39 b(v)-23 b(ers)421 b(that)g(can)g(be)g(inserted)g +(into)g(a)g(run-)-30 8820 y(ning)297 b(k)-15 b(ernel.)296 +b(The)-23 b(y)297 b(allo)-39 b(w)297 b(you)f(to)h(e)-23 +b(xtend)296 b(the)h(hardw)-15 b(are)297 b(supported)f(by)h(your)g(k)-15 +b(ernel)296 b(without)-30 10835 y(needing)387 b(to)g(pick)g(another)g +(k)-15 b(ernel)387 b(or)g(compile)g(one)g(yourself.)-30 +11945 y +SDict begin H.S end + -30 11945 a -30 11945 a +SDict begin 18.2 H.A end + -30 11945 a -30 11945 +a +SDict begin [ /View [/XYZ H.V] /Dest (1703) cvn H.B /DEST pdfmark end + -30 11945 a 1679 x FU(Modules)591 b(can)i(also)e(be)i(loaded)e(and)h +(unloaded)g(at)g(an)-23 b(y)592 b(time,)g(e)-39 b(v)-23 +b(en)592 b(when)g(the)g(system)f(is)-30 15639 y(running.)540 +b(This)f(mak)-15 b(es)539 b(upgrading)f(speci\002c)i(dri)-39 +b(v)-23 b(ers)539 b(easy)h(for)f(system)g(administrators.)g(A)-30 +17654 y(ne)-39 b(w)571 b(module)e(can)i(be)f(compiled,)g(the)h(old)f +(one)g(remo)-23 b(v)g(ed,)570 b(and)g(the)h(ne)-39 b(w)570 +b(one)h(loaded,)f(all)-30 19668 y(without)387 b(rebooting)f(the)h +(machine.)-30 20779 y +SDict begin H.S end + -30 20779 a -30 20779 a +SDict begin 18.2 H.A end + -30 20779 +a -30 20779 a +SDict begin [ /View [/XYZ H.V] /Dest (1704) cvn H.B /DEST pdfmark end + -30 20779 a 1679 x FU(Modules)347 b(are)h(stored)f(in)h +(the)15912 22458 y +SDict begin H.S end + 15912 22458 a 15912 22458 a +SDict begin 18.2 H.A end + 15912 +22458 a 15912 22458 a +SDict begin [ /View [/XYZ H.V] /Dest (1705) cvn H.B /DEST pdfmark end + 15912 22458 a FQ(/lib/modules/kernelversion)332 +b FU(directory)347 b(on)g(your)h(system.)f(The)-23 b(y)-30 +24472 y(can)515 b(be)h(loaded)f(at)g(boot)g(time)g(through)f(the)25183 +24472 y +SDict begin H.S end + 25183 24472 a 25183 24472 a +SDict begin 18.2 H.A end + 25183 24472 a 25183 +24472 a +SDict begin [ /View [/XYZ H.V] /Dest (1707) cvn H.B /DEST pdfmark end + 25183 24472 a FQ(rc.modules)509 b FU(\002le.)516 +b(This)e(\002le)h(is)g(v)-23 b(ery)515 b(well)g(com-)-30 +26487 y(mented)448 b(and)g(of)-39 b(fers)449 b(e)-23 +b(xamples)447 b(for)h(major)g(hardw)-15 b(are)448 b(components.)g(T) +-124 b(o)448 b(see)g(a)g(list)g(of)g(mod-)-30 28502 y(ules)387 +b(that)g(are)h(currently)f(acti)-39 b(v)-23 b(e,)387 +b(use)h(the)22976 28502 y +SDict begin H.S end + 22976 28502 a 22976 28502 a +SDict begin 18.2 H.A end + +22976 28502 a 22976 28502 a +SDict begin [ /View [/XYZ H.V] /Dest (1708) cvn H.B /DEST pdfmark end + 22976 28502 a FP(lsmod)p +FU(\(1\))f(command:)-30 30387 y +SDict begin H.S end + -30 30387 a -30 30387 +a +SDict begin 14.56 H.A end + -30 30387 a -30 30387 a +SDict begin [ /View [/XYZ H.V] /Dest (1709) cvn H.B /DEST pdfmark end + -30 30387 a -30 30387 a +SDict begin H.S end + -30 +30387 a -30 30387 a +SDict begin 14.56 H.A end + -30 30387 a -30 30387 a +SDict begin [ /View [/XYZ H.V] /Dest (1710) cvn H.B /DEST pdfmark end + -30 30387 +a 1276 x FJ(#)1309 31663 y +SDict begin H.S end + 1309 31663 a 1309 31663 a +SDict begin 14.56 H.A end + +1309 31663 a 1309 31663 a +SDict begin [ /View [/XYZ H.V] /Dest (1711) cvn H.B /DEST pdfmark end + 1309 31663 a FH(lsmod)-30 33275 +y FP(Module)13389 b(Size)1487 b(Used)744 b(by)-30 34887 +y(parport_pc)10413 b(7220)2231 b(0)-30 36498 y(parport)12645 +b(7844)2231 b(0)1488 b([parport_pc])-30 36693 y +SDict begin H.S end + -30 36693 +a -30 36693 a +SDict begin 18.2 H.A end + -30 36693 a -30 36693 a +SDict begin [ /View [/XYZ H.V] /Dest (1712) cvn H.B /DEST pdfmark end + -30 36693 a -30 +36693 a +SDict begin H.S end + -30 36693 a -30 36693 a +SDict begin 18.2 H.A end + -30 36693 a -30 36693 +a +SDict begin [ /View [/XYZ H.V] /Dest (1715) cvn H.B /DEST pdfmark end + -30 36693 a -30 38243 a +SDict begin H.S end + -30 38243 a -30 38243 a +SDict begin 18.2 H.A end + -30 +38243 a -30 38243 a +SDict begin [ /View [/XYZ H.V] /Dest (1718) cvn H.B /DEST pdfmark end + -30 38243 a 1820 x FU(Y)-170 b(ou)596 +b(can)h(see)f(here)h(that)f(I)h(only)f(ha)-31 b(v)-23 +b(e)596 b(the)g(parallel)h(port)f(module)g(loaded.)g(T)-124 +b(o)597 b(remo)-23 b(v)g(e)596 b(a)-30 42077 y(module,)340 +b(you)h(use)f(the)12654 42077 y +SDict begin H.S end + 12654 42077 a 12654 42077 +a +SDict begin 18.2 H.A end + 12654 42077 a 12654 42077 a +SDict begin [ /View [/XYZ H.V] /Dest (1719) cvn H.B /DEST pdfmark end + 12654 42077 a FP(rmmod)p +FU(\(1\))g(command.)g(Modules)f(can)i(be)g(loaded)f(by)g(the)44018 +42077 y +SDict begin H.S end + 44018 42077 a 44018 42077 a +SDict begin 18.2 H.A end + 44018 42077 a 44018 +42077 a +SDict begin [ /View [/XYZ H.V] /Dest (1720) cvn H.B /DEST pdfmark end + 44018 42077 a FP(modprobe)p FU(\(1\))-30 44092 +y(or)1674 44092 y +SDict begin H.S end + 1674 44092 a 1674 44092 a +SDict begin 18.2 H.A end + 1674 44092 +a 1674 44092 a +SDict begin [ /View [/XYZ H.V] /Dest (1721) cvn H.B /DEST pdfmark end + 1674 44092 a FP(insmod)p FU(\(1\))413 +b(command.)15271 44092 y +SDict begin H.S end + 15271 44092 a 15271 44092 a +SDict begin 18.2 H.A end + +15271 44092 a 15271 44092 a +SDict begin [ /View [/XYZ H.V] /Dest (1722) cvn H.B /DEST pdfmark end + 15271 44092 a FP(modprobe)f +FU(is)h(usually)f(safer)i(because)f(it)g(will)f(load)h(an)-23 +b(y)413 b(modules)-30 46107 y(that)387 b(the)g(one)h(you')-77 +b(re)386 b(trying)h(to)g(load)g(depends)g(on.)-30 47217 +y +SDict begin H.S end + -30 47217 a -30 47217 a +SDict begin 18.2 H.A end + -30 47217 a -30 47217 a +SDict begin [ /View [/XYZ H.V] /Dest (1723) cvn H.B /DEST pdfmark end + -30 +47217 a 1679 x FU(A)485 b(lot)f(of)h(users)g(ne)-39 b(v)-23 +b(er)485 b(ha)-31 b(v)-23 b(e)484 b(to)h(load)g(or)g(unload)f(modules)g +(by)h(hand.)g(The)-23 b(y)484 b(use)h(the)g(k)-15 b(ernel)-30 +50911 y(autoloader)392 b(for)h(module)f(management.)g(By)g(def)-15 +b(ault,)392 b(Slackw)-15 b(are)392 b(includes)42504 50911 +y +SDict begin H.S end + 42504 50911 a 42504 50911 a +SDict begin 18.2 H.A end + 42504 50911 a 42504 50911 +a +SDict begin [ /View [/XYZ H.V] /Dest (1724) cvn H.B /DEST pdfmark end + 42504 50911 a FP(kmod)g FU(in)g(its)g(k)-15 b(er)-31 +b(-)-30 52926 y(nels.)3325 52926 y +SDict begin H.S end + 3325 52926 a 3325 +52926 a +SDict begin 18.2 H.A end + 3325 52926 a 3325 52926 a +SDict begin [ /View [/XYZ H.V] /Dest (1725) cvn H.B /DEST pdfmark end + 3325 52926 a FP(kmod)470 +b FU(is)h(a)f(k)-15 b(ernel)470 b(option)g(that)h(enables)f(the)h(k)-15 +b(ernel)470 b(to)g(automatically)f(load)i(modules)-30 +54940 y(as)481 b(the)-23 b(y)481 b(are)g(requested.)g(F)-23 +b(or)481 b(more)g(information)f(on)30156 54940 y +SDict begin H.S end + 30156 +54940 a 30156 54940 a +SDict begin 18.2 H.A end + 30156 54940 a 30156 54940 a +SDict begin [ /View [/XYZ H.V] /Dest (1726) cvn H.B /DEST pdfmark end + 30156 +54940 a FP(kmod)g FU(and)h(ho)-39 b(w)481 b(it)g(is)g(con\002gured,)g +(see)-30 56955 y +SDict begin H.S end + -30 56955 a -30 56955 a +SDict begin 18.2 H.A end + -30 56955 a +-30 56955 a +SDict begin [ /View [/XYZ H.V] /Dest (1727) cvn H.B /DEST pdfmark end + -30 56955 a FQ(/usr/src/linux/Documentation/kmod.txt)p +FU(.)383 b(Y)-170 b(ou')-15 b(ll)404 b(ha)-31 b(v)-23 +b(e)406 b(needed)g(to)g(ha)-31 b(v)-23 b(e)406 b(the)g(k)-15 +b(ernel)405 b(source)-30 58970 y(package,)388 b(or)f(do)-39 +b(wnloaded)387 b(k)-15 b(ernel)387 b(source)g(from)p +0 1 0 0 TeXcolorcmyk 27501 59324 a +SDict begin H.S end + 27501 59324 a 0 1 0 0 +TeXcolorcmyk -354 x FA(http://)n(k)l(e)l(r)l(n)l(e)l(l)l(.)l(o)l(r)l(g) +p 0 1 0 0 TeXcolorcmyk 41254 57863 a +SDict begin H.R end + 41254 57863 a 41254 +58970 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://kernel.org) >> /Subtype /Link H.B /ANN pdfmark end + 41254 58970 a Black FU(.)-30 60099 y +SDict begin H.S end + -30 60099 +a -30 60099 a +SDict begin 18.2 H.A end + -30 60099 a -30 60099 a +SDict begin [ /View [/XYZ H.V] /Dest (1729) cvn H.B /DEST pdfmark end + -30 60099 a 1660 +x FU(More)414 b(information)f(can)h(be)g(found)g(in)f(the)h(man)g +(pages)g(for)g(each)g(of)g(these)g(commands,)f(plus)-30 +63774 y(the)2251 63774 y +SDict begin H.S end + 2251 63774 a 2251 63774 a +SDict begin 18.2 H.A end + 2251 +63774 a 2251 63774 a +SDict begin [ /View [/XYZ H.V] /Dest (1730) cvn H.B /DEST pdfmark end + 2251 63774 a FQ(rc.modules)381 b +FU(\002le.)p Black 50226 73792 a FR(55)p Black eop end +%%Page: 56 78 +TeXDict begin 56 77 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.56) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(4)g(System)g(Con\002gur)-23 +b(ation)p Black Black -30 73792 a(56)p Black eop end +%%Page: 57 79 +TeXDict begin 57 78 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.57) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION) cvn H.B +/DEST pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(5)-30 10743 y FO(Netw)-93 b(ork)1287 b(Con\002guration)p +-30 18316 51806 56 v -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 +a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-NETCONFIG) +cvn H.B /DEST pdfmark end + -30 18316 a 4852 x FL(5.1)620 +b(Intr)-45 b(oduction:)619 b(netcon\002g)f(is)i(y)-56 +b(our)620 b(friend.)-30 23664 y +SDict begin H.S end + -30 23664 a -30 23664 +a +SDict begin 18.2 H.A end + -30 23664 a -30 23664 a +SDict begin [ /View [/XYZ H.V] /Dest (1735) cvn H.B /DEST pdfmark end + -30 23664 a -30 24780 a +SDict begin H.S end + -30 +24780 a -30 24780 a +SDict begin 18.2 H.A end + -30 24780 a -30 24780 a +SDict begin [ /View [/XYZ H.V] /Dest (1737) cvn H.B /DEST pdfmark end + -30 24780 +a 1518 x FU(When)499 b(you)f(initially)g(installed)g(Slackw)-15 +b(are,)499 b(the)f(setup)h(program)f(in)-62 b(v)-31 b(ok)-15 +b(ed)498 b(the)45081 26298 y +SDict begin H.S end + 45081 26298 a 45081 26298 +a +SDict begin 18.2 H.A end + 45081 26298 a 45081 26298 a +SDict begin [ /View [/XYZ H.V] /Dest (1738) cvn H.B /DEST pdfmark end + 45081 26298 a FP(netconfig)-30 +28313 y FU(program.)5995 28313 y +SDict begin H.S end + 5995 28313 a 5995 28313 +a +SDict begin 18.2 H.A end + 5995 28313 a 5995 28313 a +SDict begin [ /View [/XYZ H.V] /Dest (1739) cvn H.B /DEST pdfmark end + 5995 28313 a FP(netconfig)387 +b FU(attempted)f(to)h(perform)h(the)f(follo)-39 b(wing)386 +b(functions)h(for)g(you:)-30 28649 y +SDict begin H.S end + -30 28649 a -30 +28649 a +SDict begin 18.2 H.A end + -30 28649 a -30 28649 a +SDict begin [ /View [/XYZ H.V] /Dest (1740) cvn H.B /DEST pdfmark end + -30 28649 a -30 29423 +a +SDict begin H.S end + -30 29423 a -30 29423 a +SDict begin 18.2 H.A end + -30 29423 a -30 29423 a +SDict begin [ /View [/XYZ H.V] /Dest (1741) cvn H.B /DEST pdfmark end + -30 +29423 a Black 3229 x FM(\225)p Black 1520 32652 a +SDict begin H.S end + 1520 +32652 a 1520 32652 a +SDict begin 18.2 H.A end + 1520 32652 a 1520 32652 a +SDict begin [ /View [/XYZ H.V] /Dest (1742) cvn H.B /DEST pdfmark end + 1520 32652 +a FU(It)409 b(ask)-15 b(ed)408 b(you)g(for)h(the)g(name)f(of)h(your)g +(computer)-62 b(,)409 b(and)f(the)h(domain)f(name)h(for)g(your)f(com-) +1520 34667 y(puter)-85 b(.)-30 35003 y +SDict begin H.S end + -30 35003 a -30 +35003 a +SDict begin 18.2 H.A end + -30 35003 a -30 35003 a +SDict begin [ /View [/XYZ H.V] /Dest (1743) cvn H.B /DEST pdfmark end + -30 35003 a Black 2454 +x FM(\225)p Black 1520 37457 a +SDict begin H.S end + 1520 37457 a 1520 37457 +a +SDict begin 18.2 H.A end + 1520 37457 a 1520 37457 a +SDict begin [ /View [/XYZ H.V] /Dest (1744) cvn H.B /DEST pdfmark end + 1520 37457 a FU(It)409 b(g)-8 +b(a)-31 b(v)-23 b(e)409 b(a)g(brief)g(e)-23 b(xplanation)408 +b(of)h(the)g(v)-39 b(arious)409 b(types)f(of)h(addressing)g(schemes,)g +(told)f(when)1520 39471 y(the)-23 b(y)488 b(should)f(be)i(used,)f(and)g +(ask)-15 b(ed)488 b(you)g(which)g(IP)g(addressing)f(scheme)h(you)g +(wished)g(to)1520 41486 y(use)387 b(to)g(con\002gure)g(your)g(netw)-15 +b(ork)387 b(card:)23971 41486 y +SDict begin H.S end + 23971 41486 a 23971 41486 +a +SDict begin 18.2 H.A end + 23971 41486 a 23971 41486 a +SDict begin [ /View [/XYZ H.V] /Dest (1745) cvn H.B /DEST pdfmark end + 23971 41486 a 24358 41486 +a +SDict begin H.S end + 24358 41486 a 24358 41486 a +SDict begin 18.2 H.A end + 24358 41486 a 24358 41486 +a +SDict begin [ /View [/XYZ H.V] /Dest (1747) cvn H.B /DEST pdfmark end + 24358 41486 a 25133 41486 a +SDict begin H.S end + 25133 41486 a 25133 41486 +a +SDict begin 18.2 H.A end + 25133 41486 a 25133 41486 a +SDict begin [ /View [/XYZ H.V] /Dest (1749) cvn H.B /DEST pdfmark end + 25133 41486 a -30 41821 +a +SDict begin H.S end + -30 41821 a -30 41821 a +SDict begin 18.2 H.A end + -30 41821 a -30 41821 a +SDict begin [ /View [/XYZ H.V] /Dest (1750) cvn H.B /DEST pdfmark end + -30 +41821 a Black 1520 44275 a Fo(\225)p Black 3070 44275 +a +SDict begin H.S end + 3070 44275 a 3070 44275 a +SDict begin 18.2 H.A end + 3070 44275 a 3070 44275 a +SDict begin [ /View [/XYZ H.V] /Dest (1751) cvn H.B /DEST pdfmark end + +3070 44275 a FU(Static-IP)-30 44290 y +SDict begin H.S end + -30 44290 a -30 +44290 a +SDict begin 18.2 H.A end + -30 44290 a -30 44290 a +SDict begin [ /View [/XYZ H.V] /Dest (1752) cvn H.B /DEST pdfmark end + -30 44290 a Black 1520 +47065 a Fo(\225)p Black 3070 47065 a +SDict begin H.S end + 3070 47065 a 3070 +47065 a +SDict begin 18.2 H.A end + 3070 47065 a 3070 47065 a +SDict begin [ /View [/XYZ H.V] /Dest (1753) cvn H.B /DEST pdfmark end + 3070 47065 a FU(DHCP)-30 +47080 y +SDict begin H.S end + -30 47080 a -30 47080 a +SDict begin 18.2 H.A end + -30 47080 a -30 47080 +a +SDict begin [ /View [/XYZ H.V] /Dest (1754) cvn H.B /DEST pdfmark end + -30 47080 a Black 1520 49854 a Fo(\225)p Black 3070 +49854 a +SDict begin H.S end + 3070 49854 a 3070 49854 a +SDict begin 18.2 H.A end + 3070 49854 a 3070 49854 +a +SDict begin [ /View [/XYZ H.V] /Dest (1755) cvn H.B /DEST pdfmark end + 3070 49854 a FU(Loopback)-30 50965 y +SDict begin H.S end + -30 50965 a -30 +50965 a +SDict begin 18.2 H.A end + -30 50965 a -30 50965 a +SDict begin [ /View [/XYZ H.V] /Dest (1756) cvn H.B /DEST pdfmark end + -30 50965 a Black 2454 +x FM(\225)p Black 1520 53419 a +SDict begin H.S end + 1520 53419 a 1520 53419 +a +SDict begin 18.2 H.A end + 1520 53419 a 1520 53419 a +SDict begin [ /View [/XYZ H.V] /Dest (1757) cvn H.B /DEST pdfmark end + 1520 53419 a FU(It)g(then)g(of)-39 +b(fered)388 b(to)f(probe)g(for)h(a)f(netw)-15 b(ork)387 +b(card)g(to)g(con\002gure.)-30 54529 y +SDict begin H.S end + -30 54529 a -30 +54529 a +SDict begin 18.2 H.A end + -30 54529 a -30 54529 a +SDict begin [ /View [/XYZ H.V] /Dest (1758) cvn H.B /DEST pdfmark end + -30 54529 a -30 54529 +a +SDict begin H.S end + -30 54529 a -30 54529 a +SDict begin 18.2 H.A end + -30 54529 a -30 54529 a +SDict begin [ /View [/XYZ H.V] /Dest (1759) cvn H.B /DEST pdfmark end + -30 +54529 a 1679 x FP(netconfig)505 b FU(will)h(generally)f(tak)-15 +b(e)506 b(care)g(of)g(about)g(80\045)g(of)g(the)g(w)-15 +b(ork)505 b(of)h(con\002guring)f(your)-30 58223 y(LAN)465 +b(netw)-15 b(ork)464 b(connection)g(if)h(you)g(will)f(let)h(it.)g(Note) +g(that)f(I)h(w)-15 b(ould)464 b(strongly)g(suggest)g(that)-30 +60238 y(you)387 b(re)-39 b(vie)g(w)388 b(your)f(con\002g)g(\002le)g +(for)g(a)h(couple)f(of)g(reasons:)-30 60573 y +SDict begin H.S end + -30 60573 +a -30 60573 a +SDict begin 18.2 H.A end + -30 60573 a -30 60573 a +SDict begin [ /View [/XYZ H.V] /Dest (1760) cvn H.B /DEST pdfmark end + -30 60573 a -30 +61348 a +SDict begin H.S end + -30 61348 a -30 61348 a +SDict begin 18.2 H.A end + -30 61348 a -30 61348 +a +SDict begin [ /View [/XYZ H.V] /Dest (1761) cvn H.B /DEST pdfmark end + -30 61348 a Black 1210 64577 a FU(1.)p Black 2760 64577 +a +SDict begin H.S end + 2760 64577 a 2760 64577 a +SDict begin 18.2 H.A end + 2760 64577 a 2760 64577 a +SDict begin [ /View [/XYZ H.V] /Dest (1762) cvn H.B /DEST pdfmark end + +2760 64577 a FU(Y)-170 b(ou)391 b(should)g(ne)-39 b(v)-23 +b(er)391 b(trust)h(a)f(setup)h(program)f(to)g(properly)h(con\002gure)f +(your)g(computer)-85 b(.)392 b(If)2760 66592 y(you)387 +b(use)g(a)g(setup)g(program,)h(you)f(should)f(re)-39 +b(vie)g(w)388 b(the)f(con\002guration)f(yourself.)-30 +66927 y +SDict begin H.S end + -30 66927 a -30 66927 a +SDict begin 18.2 H.A end + -30 66927 a -30 66927 +a +SDict begin [ /View [/XYZ H.V] /Dest (1763) cvn H.B /DEST pdfmark end + -30 66927 a Black 50169 73672 a FR(57)p Black eop end +%%Page: 58 80 +TeXDict begin 58 79 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.58) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1786) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(5)g(Network)f(Con\002gur)-23 b(ation)p Black Black +1210 3490 a FU(2.)p Black 2760 3490 a +SDict begin H.S end + 2760 3490 a 2760 +3490 a +SDict begin 18.2 H.A end + 2760 3490 a 2760 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (1764) cvn H.B /DEST pdfmark end + 2760 3490 a FU(If)521 +b(you)f(are)h(still)f(learning)g(Slackw)-15 b(are)520 +b(and)h(Linux)f(system)g(management,)g(vie)-39 b(wing)521 +b(a)2760 5505 y(w)-15 b(orking)427 b(con\002guration)f(can)j(be)f +(helpful.)g(Y)-170 b(ou')-15 b(ll)426 b(at)i(least)g(kno)-39 +b(w)428 b(what)g(the)f(con\002gura-)2760 7520 y(tion)366 +b(should)h(look)f(lik)-15 b(e.)367 b(This)g(will)g(allo)-39 +b(w)367 b(you)f(to)h(correct)h(problems)e(due)h(to)g(miscon\002g-)2760 +9534 y(uration)386 b(of)i(the)f(system)g(at)g(a)g(later)h(date.)-30 +10645 y +SDict begin H.S end + -30 10645 a -30 10645 a +SDict begin 18.2 H.A end + -30 10645 a -30 10645 +a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE) +cvn H.B /DEST pdfmark end + -30 10645 a 5789 x FL(5.2)620 b(Netw)-45 b(ork)621 +b(Har)-45 b(d)-33 b(ware)620 b(Con\002guration)-30 16930 +y +SDict begin H.S end + -30 16930 a -30 16930 a +SDict begin 18.2 H.A end + -30 16930 a -30 16930 a +SDict begin [ /View [/XYZ H.V] /Dest (1767) cvn H.B /DEST pdfmark end + -30 +16930 a -30 18046 a +SDict begin H.S end + -30 18046 a -30 18046 a +SDict begin 18.2 H.A end + -30 18046 +a -30 18046 a +SDict begin [ /View [/XYZ H.V] /Dest (1769) cvn H.B /DEST pdfmark end + -30 18046 a 1518 x FU(Ha)-31 b(ving)525 +b(decided)g(that)g(you)g(wish)g(to)g(bring)g(your)g(Slackw)-15 +b(are)525 b(machine)g(on)g(to)g(some)g(form)-30 21579 +y(of)393 b(netw)-15 b(ork,)392 b(the)h(\002rst)f(thing)g(you')-15 +b(ll)391 b(need)i(is)f(a)h(Linux-compatible)e(netw)-15 +b(ork)392 b(card.)i(Y)-170 b(ou)391 b(will)-30 23594 +y(need)529 b(to)g(tak)-15 b(e)528 b(a)h(little)f(care)i(to)e(ensure)h +(that)g(the)f(card)i(is)e(truly)h(Linux-compatible)e(\(please)-30 +25608 y(refer)517 b(to)f(the)h(Linux)f(Documentation)f(Project)h +(and/or)g(the)g(k)-15 b(ernel)516 b(documentation)g(for)g(in-)-30 +27623 y(formation)470 b(on)g(the)g(current)h(status)e(of)i(your)f +(proposed)g(netw)-15 b(ork)469 b(card\).)i(As)g(a)f(general)h(rule,)-30 +29638 y(you)611 b(will)f(most)g(lik)-15 b(ely)609 b(be)i(pleasantly)f +(surprised)g(by)h(the)f(number)h(of)g(netw)-15 b(orking)609 +b(cards)-30 31652 y(that)525 b(are)g(supported)f(under)g(the)h(more)f +(modern)h(k)-15 b(ernels.)524 b(Ha)-31 b(ving)525 b(said)f(that,)h(I') +-77 b(d)524 b(still)g(sug-)-30 33667 y(gest)422 b(referring)g(to)f(an) +-23 b(y)422 b(of)g(the)g(v)-39 b(arious)421 b(Linux)h(hardw)-15 +b(are)421 b(compatibility)f(lists)h(\(such)h(as)49366 +33667 y +SDict begin H.S end + 49366 33667 a 49366 33667 a +SDict begin 18.2 H.A end + 49366 33667 a 49366 +33667 a +SDict begin [ /View [/XYZ H.V] /Dest (1770) cvn H.B /DEST pdfmark end + 49366 33667 a FU(The)-30 35682 y(GNU/Linux)438 +b(Be)-23 b(ginners)437 b(Group)h(Hardw)-15 b(are)438 +b(Compatibility)f(Links)38110 35062 y FT(1)39012 35682 +y FU(and)41689 35682 y +SDict begin H.S end + 41689 35682 a 41689 35682 a +SDict begin 18.2 H.A end + 41689 +35682 a 41689 35682 a +SDict begin [ /View [/XYZ H.V] /Dest (1771) cvn H.B /DEST pdfmark end + 41689 35682 a FU(The)h(Linux)g(Doc-)-30 +37696 y(umentation)571 b(Project)g(Hardw)-15 b(are)572 +b(HO)-54 b(WT)-28 b(O)24829 37076 y FT(2)25293 37696 +y FU(\))572 b(that)g(are)g(a)-31 b(v)-39 b(ailable)572 +b(on)f(the)h(Internet)g(before)-30 39711 y(purchasing)559 +b(your)g(card.)h(A)g(little)e(e)-23 b(xtra)559 b(time)g(spent)g(in)h +(research)f(can)h(sa)-31 b(v)-23 b(e)559 b(days)g(or)h(e)-39 +b(v)-23 b(en)-30 41726 y(weeks)387 b(trying)g(to)g(troubleshoot)f(a)i +(card)f(that)g(isn')-28 b(t)387 b(compatible)g(with)f(Linux)h(at)h +(all.)-30 42836 y +SDict begin H.S end + -30 42836 a -30 42836 a +SDict begin 18.2 H.A end + -30 42836 a +-30 42836 a +SDict begin [ /View [/XYZ H.V] /Dest (1772) cvn H.B /DEST pdfmark end + -30 42836 a 1679 x FU(When)404 b(you)f(visit)g(the)g(Linux) +g(Hardw)-15 b(are)403 b(Compatibility)f(lists)h(a)-31 +b(v)-39 b(ailable)403 b(on)h(the)f(Internet,)h(or)-30 +46530 y(when)428 b(you)g(refer)h(to)f(the)g(k)-15 b(ernel)427 +b(documentation)g(installed)h(on)g(your)g(machine,)g(it)g(w)-15 +b(ould)427 b(be)-30 48544 y(wise)387 b(to)4791 48544 +y +SDict begin H.S end + 4791 48544 a 4791 48544 a +SDict begin 18.2 H.A end + 4791 48544 a 4791 48544 a +SDict begin [ /View [/XYZ H.V] /Dest (1773) cvn H.B /DEST pdfmark end + +4791 48544 a 388 w FU(note)g(which)g(k)-15 b(ernel)387 +b(module)f(you')-15 b(ll)386 b(need)i(to)f(use)g(to)g(support)g(your)g +(netw)-15 b(ork)386 b(card.)-30 48880 y +SDict begin H.S end + -30 48880 a -30 +48880 a +SDict begin 18.2 H.A end + -30 48880 a -30 48880 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE-MODULES) +cvn H.B /DEST pdfmark end + -30 48880 a 5027 x FG(Loading)518 +b(Netw)-37 b(ork)518 b(Modules)-30 55250 y +SDict begin H.S end + -30 55250 +a -30 55250 a +SDict begin 18.2 H.A end + -30 55250 a -30 55250 a +SDict begin [ /View [/XYZ H.V] /Dest (1777) cvn H.B /DEST pdfmark end + -30 55250 a 1601 +x FU(K)-39 b(ernel)415 b(modules)g(that)f(are)i(to)f(be)g(loaded)g(on)g +(boot-up)f(are)i(loaded)f(from)f(the)43116 56851 y +SDict begin H.S end + 43116 +56851 a 43116 56851 a +SDict begin 18.2 H.A end + 43116 56851 a 43116 56851 a +SDict begin [ /View [/XYZ H.V] /Dest (1778) cvn H.B /DEST pdfmark end + 43116 +56851 a FQ(rc.modules)409 b FU(\002le)-30 58866 y(in)1610 +58866 y +SDict begin H.S end + 1610 58866 a 1610 58866 a +SDict begin 18.2 H.A end + 1610 58866 a 1610 58866 +a +SDict begin [ /View [/XYZ H.V] /Dest (1779) cvn H.B /DEST pdfmark end + 1610 58866 a FQ(/etc/rc.d)428 b FU(or)434 b(by)g(the)g(k)-15 +b(ernel')-85 b(s)433 b(auto)g(module)h(loading)f(started)g(by)38861 +58866 y +SDict begin H.S end + 38861 58866 a 38861 58866 a +SDict begin 18.2 H.A end + 38861 58866 a 38861 +58866 a +SDict begin [ /View [/XYZ H.V] /Dest (1780) cvn H.B /DEST pdfmark end + 38861 58866 a FQ(/etc/rc.d/rc.hotplug)p FU(.)-30 +60880 y(The)483 b(def)-15 b(ault)7635 60880 y +SDict begin H.S end + 7635 60880 +a 7635 60880 a +SDict begin 18.2 H.A end + 7635 60880 a 7635 60880 a +SDict begin [ /View [/XYZ H.V] /Dest (1781) cvn H.B /DEST pdfmark end + 7635 60880 a +FQ(rc.modules)477 b FU(\002le)483 b(includes)f(a)i(Netw)-15 +b(ork)482 b(de)-39 b(vice)484 b(support)e(section.)i(If)f(you)g(open) +-30 62895 y +SDict begin H.S end + -30 62895 a -30 62895 a +SDict begin 18.2 H.A end + -30 62895 a -30 62895 +a +SDict begin [ /View [/XYZ H.V] /Dest (1782) cvn H.B /DEST pdfmark end + -30 62895 a FQ(rc.modules)315 b FU(and)321 b(look)g(for)h(that)f +(section,)g(you')-15 b(ll)320 b(notice)h(that)h(it)f(\002rst)f(checks)i +(for)f(an)h(e)-23 b(x)g(ecutable)p Black -30 64271 16000 +45 v -30 65234 a Fx(1)249 b(http://www)-65 b +(.eskimo.com/\0457Elo/linux/hardw)-10 b(arelinks.html)-30 +66275 y(2)249 b(http://www)-65 b(.linux.or)-18 b(g/docs/ldp/ho)-25 +b(wto/Hardw)-10 b(are-HO)-35 b(WT)-18 b(O/)p Black Black +-30 73672 a FR(58)p Black eop end +%%Page: 59 81 +TeXDict begin 59 80 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.59) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) +-23 b(ation)p Black -30 3611 a +SDict begin H.S end + -30 3611 a -30 3611 a +SDict begin 18.2 H.A end + +-30 3611 a -30 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (1783) cvn H.B /DEST pdfmark end + -30 3611 a FQ(rc.netdevice)329 +b FU(\002le)336 b(in)11683 3611 y +SDict begin H.S end + 11683 3611 a 11683 +3611 a +SDict begin 18.2 H.A end + 11683 3611 a 11683 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (1784) cvn H.B /DEST pdfmark end + 11683 3611 a FQ(/etc/rc.d/)p +FU(.)331 b(This)336 b(script)g(is)g(created)h(if)33008 +3611 y +SDict begin H.S end + 33008 3611 a 33008 3611 a +SDict begin 18.2 H.A end + 33008 3611 a 33008 3611 +a +SDict begin [ /View [/XYZ H.V] /Dest (1785) cvn H.B /DEST pdfmark end + 33008 3611 a FP(setup)f FU(successfully)g(autoprobes)-30 +5626 y(your)387 b(netw)-15 b(ork)387 b(de)-39 b(vice)387 +b(during)g(installation.)-30 8415 y(Belo)-39 b(w)519 +b(that)f(\223if\224)h(block)g(is)g(a)g(list)f(of)h(netw)-15 +b(ork)518 b(de)-39 b(vices)519 b(and)g(modprobe)f(lines,)h(each)g(com-) +-30 10430 y(mented)587 b(out.)g(Find)g(your)g(de)-39 +b(vice)588 b(and)f(uncomment)f(the)i(corresponding)e(modprobe)h(line,) +-30 12445 y(then)382 b(sa)-31 b(v)-23 b(e)381 b(the)h(\002le.)g +(Running)16849 12445 y +SDict begin H.S end + 16849 12445 a 16849 12445 a +SDict begin 18.2 H.A end + 16849 +12445 a 16849 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (1788) cvn H.B /DEST pdfmark end + 16849 12445 a FQ(rc.modules)375 +b FU(as)25167 12445 y +SDict begin H.S end + 25167 12445 a 25167 12445 a +SDict begin 18.2 H.A end + 25167 +12445 a 25167 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (1789) cvn H.B /DEST pdfmark end + 25167 12445 a FP(root)382 b FU(should)f(no)-39 +b(w)382 b(load)f(your)h(netw)-15 b(ork)381 b(de)-39 b(vice)-30 +14459 y(dri)g(v)-23 b(er)532 b(\(as)g(well)f(as)h(an)-23 +b(y)532 b(other)f(modules)g(that)h(are)g(listed)f(and)h(uncommented\).) +f(Note)g(that)-30 16474 y(some)385 b(modules)g(\(such)h(as)f(the)h +(ne2000)f(dri)-39 b(v)-23 b(er\))385 b(require)h(parameters;)f(mak)-15 +b(e)385 b(sure)h(you)f(select)-30 18489 y(the)i(correct)h(line.)-30 +19279 y +SDict begin H.S end + -30 19279 a -30 19279 a +SDict begin 18.2 H.A end + -30 19279 a -30 19279 +a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE-LAN) +cvn H.B /DEST pdfmark end + -30 19279 a 5502 x FG(LAN)517 b(\(10/100/1000Base-T)g(and)g(Base-2\)) +h(car)-37 b(ds)-30 26095 y +SDict begin H.S end + -30 26095 a -30 26095 a +SDict begin 18.2 H.A end + -30 +26095 a -30 26095 a +SDict begin [ /View [/XYZ H.V] /Dest (1792) cvn H.B /DEST pdfmark end + -30 26095 a 1630 x FU(This)345 b(heading)h +(encompasses)f(all)h(of)g(the)f(internal)h(PCI)f(and)h(ISA)f(netw)-15 +b(orking)345 b(cards.)h(Dri)-39 b(v)-23 b(ers)-30 29740 +y(for)413 b(these)f(cards)h(are)g(pro)-23 b(vided)411 +b(via)i(loadable)f(k)-15 b(ernel)412 b(modules)g(as)g(co)-23 +b(v)g(ered)412 b(in)h(the)f(pre)-39 b(vious)-30 31754 +y(paragraph.)7120 31754 y +SDict begin H.S end + 7120 31754 a 7120 31754 a +SDict begin 18.2 H.A end + 7120 +31754 a 7120 31754 a +SDict begin [ /View [/XYZ H.V] /Dest (1793) cvn H.B /DEST pdfmark end + 7120 31754 a FQ(/sbin/netconfig)558 +b FU(should)566 b(ha)-31 b(v)-23 b(e)566 b(probed)h(for)g(your)f(card)h +(and)g(successfully)f(set)-30 33769 y(up)544 b(your)5449 +33769 y +SDict begin H.S end + 5449 33769 a 5449 33769 a +SDict begin 18.2 H.A end + 5449 33769 a 5449 33769 +a +SDict begin [ /View [/XYZ H.V] /Dest (1794) cvn H.B /DEST pdfmark end + 5449 33769 a FQ(rc.netdevice)537 b FU(\002le.)544 b(If)h(this)f(did)f +(not)h(occur)-62 b(,)545 b(the)f(most)g(lik)-15 b(ely)543 +b(problem)h(w)-15 b(ould)543 b(be)-30 35784 y(that)576 +b(the)g(module)g(that)g(you')-77 b(re)576 b(attempting)f(to)h(load)g +(for)g(a)h(gi)-39 b(v)-23 b(en)575 b(card)i(is)f(incorrect)g(\(it)g(is) +-30 37798 y(not)524 b(unheard)h(of)g(for)f(dif)-39 b(ferent)525 +b(generations)f(of)h(the)g(same)f(brand)h(of)f(card)h(from)g(the)f +(same)-30 39813 y(manuf)-15 b(acturer)487 b(to)h(require)f(dif)-39 +b(ferent)488 b(modules\).)g(If)g(you)f(are)h(certain)g(that)g(the)f +(module)g(that)-30 41828 y(you')-77 b(re)434 b(attempting)e(to)i(load)g +(is)g(the)g(correct)g(one,)g(your)g(ne)-23 b(xt)433 b(best)h(bet)g(w) +-15 b(ould)433 b(be)h(to)g(refer)g(to)-30 43842 y(the)f(documentation)e +(for)i(the)f(module)g(in)g(an)h(attempt)f(to)g(disco)-23 +b(v)g(er)432 b(whether)h(or)f(not)g(speci\002c)-30 45857 +y(parameters)387 b(are)h(required)f(during)g(when)g(the)g(module)g(is)g +(initialized.)-30 46968 y +SDict begin H.S end + -30 46968 a -30 46968 a +SDict begin 18.2 H.A end + -30 +46968 a -30 46968 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE-MODEMS) +cvn H.B /DEST pdfmark end + -30 46968 a 5181 x FG(Modems)-30 +52172 y +SDict begin H.S end + -30 52172 a -30 52172 a +SDict begin 18.2 H.A end + -30 52172 a -30 52172 +a +SDict begin [ /View [/XYZ H.V] /Dest (1797) cvn H.B /DEST pdfmark end + -30 52172 a -30 52172 a +SDict begin H.S end + -30 52172 a -30 52172 a +SDict begin 18.2 H.A end + -30 +52172 a -30 52172 a +SDict begin [ /View [/XYZ H.V] /Dest (1799) cvn H.B /DEST pdfmark end + -30 52172 a -30 52172 a +SDict begin H.S end + -30 52172 +a -30 52172 a +SDict begin 18.2 H.A end + -30 52172 a -30 52172 a +SDict begin [ /View [/XYZ H.V] /Dest (1801) cvn H.B /DEST pdfmark end + -30 52172 a -30 +52172 a +SDict begin H.S end + -30 52172 a -30 52172 a +SDict begin 18.2 H.A end + -30 52172 a -30 52172 +a +SDict begin [ /View [/XYZ H.V] /Dest (1803) cvn H.B /DEST pdfmark end + -30 52172 a -30 52172 a +SDict begin H.S end + -30 52172 a -30 52172 a +SDict begin 18.2 H.A end + -30 +52172 a -30 52172 a +SDict begin [ /View [/XYZ H.V] /Dest (1805) cvn H.B /DEST pdfmark end + -30 52172 a -30 52172 a +SDict begin H.S end + -30 52172 +a -30 52172 a +SDict begin 18.2 H.A end + -30 52172 a -30 52172 a +SDict begin [ /View [/XYZ H.V] /Dest (1807) cvn H.B /DEST pdfmark end + -30 52172 a -30 +53102 a +SDict begin H.S end + -30 53102 a -30 53102 a +SDict begin 18.2 H.A end + -30 53102 a -30 53102 +a +SDict begin [ /View [/XYZ H.V] /Dest (1810) cvn H.B /DEST pdfmark end + -30 53102 a 1992 x FU(Lik)-15 b(e)325 b(LAN)h(cards,)h(modems)e(can)h +(come)g(with)f(v)-39 b(arious)326 b(b)-31 b(us)325 b(support)h +(options.)f(Until)g(recently)-101 b(,)-30 57108 y(most)392 +b(modems)h(were)g(8)g(or)g(16)g(bit)f(ISA)h(cards.)g(W)-62 +b(ith)393 b(the)g(ef)-39 b(forts)393 b(of)g(Intel)g(and)g(motherboard) +-30 59123 y(manuf)-15 b(acturers)481 b(e)-39 b(v)-23 +b(erywhere)482 b(to)g(\002nally)f(kill)g(of)-39 b(f)482 +b(the)g(ISA)f(b)-31 b(us)482 b(completely)-101 b(,)482 +b(it)f(is)h(common)-30 61138 y(no)-39 b(w)495 b(to)g(\002nd)g(that)f +(most)h(modems)f(are)h(either)g(e)-23 b(xternal)494 b(modems)h(that)f +(connect)h(to)g(a)g(serial)-30 63152 y(or)605 b(USB)g(port)g(or)g(are)h +(internal)e(PCI)h(modems.)g(If)g(you)g(wish)g(for)g(your)g(modem)g(to)g +(w)-15 b(ork)-30 65167 y(with)394 b(Linux,)g(it)f(is)10287 +65167 y +SDict begin H.S end + 10287 65167 a 10287 65167 a +SDict begin 18.2 H.A end + 10287 65167 a 10287 +65167 a +SDict begin [ /View [/XYZ H.V] /Dest (1811) cvn H.B /DEST pdfmark end + 10287 65167 a FR(VIT)-77 b(ALL)-31 b(Y)512 b +FU(important)393 b(to)h(research)g(your)g(prospecti)-39 +b(v)-23 b(e)393 b(modem)h(purchase,)-30 67182 y(particularly)593 +b(if)g(you)g(are)h(considering)f(purchasing)g(a)g(PCI)g(modem.)g(Man) +-23 b(y)-101 b(,)594 b(if)f(not)g(most,)p Black 50226 +73792 a FR(59)p Black eop end +%%Page: 60 82 +TeXDict begin 60 81 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.60) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 +b(ation)p Black -30 3611 a FU(PCI)514 b(modems)g(a)-31 +b(v)-39 b(ailable)515 b(on)g(store)f(shelv)-23 b(es)515 +b(these)f(days)h(are)g(W)-62 b(inModems.)514 b(W)-62 +b(inModems)-30 5626 y(lack)588 b(some)g(basic)h(hardw)-15 +b(are)588 b(on)g(the)g(modem)g(card)g(itself:)g(the)g(functions)g +(performed)g(by)-30 7640 y(this)550 b(hardw)-15 b(are)550 +b(are)h(typically)f(of)-39 b(\003oaded)551 b(onto)f(the)g(CPU)g(by)h +(the)f(modem)g(dri)-39 b(v)-23 b(er)551 b(and)f(the)-30 +9655 y(W)-62 b(indo)-39 b(ws)569 b(operating)g(system.)g(This)f(means)h +(that)g(the)-23 b(y)569 b(do)g(not)g(ha)-31 b(v)-23 b(e)569 +b(the)g(standard)g(serial)-30 11670 y(interf)-15 b(ace)345 +b(that)g(PPPD)g(will)g(be)h(e)-23 b(xpecting)344 b(to)i(see)f(when)h +(you)f(try)h(to)f(dial)g(out)g(to)h(your)f(Internet)-30 +13684 y(Service)387 b(Pro)-23 b(vider)-85 b(.)-30 14475 +y +SDict begin H.S end + -30 14475 a -30 14475 a +SDict begin 18.2 H.A end + -30 14475 a -30 14475 a +SDict begin [ /View [/XYZ H.V] /Dest (1812) cvn H.B /DEST pdfmark end + -30 +14475 a 1999 x FU(If)419 b(you)f(w)-15 b(ant)418 b(to)g(be)g +(absolutely)g(sure)g(that)g(the)g(modem)g(you')-77 b(re)418 +b(purchasing)g(will)g(w)-15 b(ork)417 b(with)-30 18489 +y(Linux,)330 b(purchase)f(an)h(e)-23 b(xternal)329 b(hardw)-15 +b(are)330 b(modem)f(that)g(connects)g(to)h(the)g(serial)f(port)h(on)f +(your)-30 20503 y(PC.)412 b(These)g(are)g(guaranteed)g(to)f(w)-15 +b(ork)411 b(better)h(and)g(be)g(less)f(trouble)h(to)g(install)f(and)g +(maintain,)-30 22518 y(though)387 b(the)-23 b(y)387 b(require)g(e)-23 +b(xternal)387 b(po)-39 b(wer)387 b(and)g(tend)g(to)h(cost)f(more.)-30 +23628 y +SDict begin H.S end + -30 23628 a -30 23628 a +SDict begin 18.2 H.A end + -30 23628 a -30 23628 +a +SDict begin [ /View [/XYZ H.V] /Dest (1813) cvn H.B /DEST pdfmark end + -30 23628 a 1680 x FU(There)725 b(are)f(se)-39 b(v)-23 +b(eral)725 b(web)f(sites)g(that)g(pro)-23 b(vide)724 +b(dri)-39 b(v)-23 b(ers)724 b(and)h(assistance)e(for)i(con\002guring) +-30 27322 y(W)-62 b(inModem)785 b(based)g(de)-39 b(vices.)786 +b(Some)f(users)g(ha)-31 b(v)-23 b(e)786 b(reported)f(success)g +(con\002guring)g(and)-30 29337 y(installing)723 b(dri)-39 +b(v)-23 b(ers)724 b(for)g(the)g(v)-39 b(arious)724 b(winmodems,)f +(including)g(Lucent,)h(Cone)-23 b(xant,)724 b(and)-30 +31352 y(Rockwell)580 b(chipsets.)h(As)f(the)h(required)f(softw)-15 +b(are)581 b(for)f(these)h(de)-39 b(vices)581 b(is)f(not)h(an)g +(included)-30 33366 y(part)560 b(of)g(Slackw)-15 b(are,)560 +b(and)g(v)-39 b(aries)561 b(from)f(dri)-39 b(v)-23 b(er)560 +b(to)g(dri)-39 b(v)-23 b(er)-62 b(,)560 b(we)g(will)g(not)g(go)g(into)f +(detail)h(on)-30 35381 y(them.)-30 36171 y +SDict begin H.S end + -30 36171 +a -30 36171 a +SDict begin 18.2 H.A end + -30 36171 a -30 36171 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-HARDWARE-PCMCIA) +cvn H.B /DEST pdfmark end + -30 36171 a 5502 +x FG(PCMCIA)-30 41696 y +SDict begin H.S end + -30 41696 a -30 41696 a +SDict begin 18.2 H.A end + -30 41696 +a -30 41696 a +SDict begin [ /View [/XYZ H.V] /Dest (1816) cvn H.B /DEST pdfmark end + -30 41696 a -30 42626 a +SDict begin H.S end + -30 42626 a -30 +42626 a +SDict begin 18.2 H.A end + -30 42626 a -30 42626 a +SDict begin [ /View [/XYZ H.V] /Dest (1818) cvn H.B /DEST pdfmark end + -30 42626 a 1991 x FU(As)345 +b(part)h(of)f(your)h(Slackw)-15 b(are)344 b(install,)h(you)h(are)f(gi) +-39 b(v)-23 b(en)345 b(the)h(opportunity)e(to)h(install)g(the)g(pcmcia) +-30 46632 y(package)383 b(\(in)g(the)9812 46632 y +SDict begin H.S end + 9812 +46632 a 9812 46632 a +SDict begin 18.2 H.A end + 9812 46632 a 9812 46632 a +SDict begin [ /View [/XYZ H.V] /Dest (1819) cvn H.B /DEST pdfmark end + 9812 46632 +a FU(\223A\224)g(series)f(of)h(packages\).)h(This)e(package)h(contains) +f(the)h(applications)f(and)-30 48647 y(setup)375 b(\002les)f(required)h +(to)g(w)-15 b(ork)374 b(with)h(PCMCIA)f(cards)h(under)g(Slackw)-15 +b(are.)374 b(It)h(is)g(important)f(to)-30 50661 y(note)319 +b(that)g(the)g(pcmcia)g(package)g(only)f(installs)h(the)g(generic)g +(softw)-15 b(are)318 b(required)h(to)g(w)-15 b(ork)318 +b(with)-30 52676 y(PCMCIA)477 b(cards)i(under)f(Slackw)-15 +b(are.)478 b(It)h(does)f(NO)-62 b(T)478 b(install)g(an)-23 +b(y)478 b(dri)-39 b(v)-23 b(ers)478 b(or)h(modules.)f(The)-30 +54691 y(a)-31 b(v)-39 b(ailable)374 b(modules)e(and)i(dri)-39 +b(v)-23 b(ers)373 b(will)h(be)f(in)h(the)27190 54691 +y +SDict begin H.S end + 27190 54691 a 27190 54691 a +SDict begin 18.2 H.A end + 27190 54691 a 27190 54691 +a +SDict begin [ /View [/XYZ H.V] /Dest (1820) cvn H.B /DEST pdfmark end + 27190 54691 a FQ(/lib/modules/`)55 b(uname-)g(r`)g(/pcmcia)357 +b FU(directory)-101 b(.)-30 56705 y(Y)-170 b(ou)345 b(may)g(need)g(to)g +(do)h(some)f(e)-23 b(xperimentation)343 b(to)j(\002nd)f(a)g(module)g +(that)g(will)g(w)-15 b(ork)344 b(with)h(your)-30 58720 +y(netw)-15 b(ork)387 b(card.)-30 59510 y +SDict begin H.S end + -30 59510 a +-30 59510 a +SDict begin 18.2 H.A end + -30 59510 a -30 59510 a +SDict begin [ /View [/XYZ H.V] /Dest (1821) cvn H.B /DEST pdfmark end + -30 59510 a 2000 +x FU(Y)-170 b(ou)398 b(will)f(need)h(to)g(edit)13327 +61510 y +SDict begin H.S end + 13327 61510 a 13327 61510 a +SDict begin 18.2 H.A end + 13327 61510 a 13327 +61510 a +SDict begin [ /View [/XYZ H.V] /Dest (1822) cvn H.B /DEST pdfmark end + 13327 61510 a FQ(/etc/pcmcia/network.opts)383 +b FU(\(for)398 b(an)g(Ethernet)g(card\))g(or)44260 61510 +y +SDict begin H.S end + 44260 61510 a 44260 61510 a +SDict begin 18.2 H.A end + 44260 61510 a 44260 61510 +a +SDict begin [ /View [/XYZ H.V] /Dest (1823) cvn H.B /DEST pdfmark end + 44260 61510 a FQ(/etc/pcmcia/)-30 63524 y(wireless.opts)500 +b FU(\(if)508 b(you)g(ha)-31 b(v)-23 b(e)508 b(a)g(wireless)g(netw)-15 +b(orking)507 b(card\).)i(Lik)-15 b(e)507 b(most)h(Slackw)-15 +b(are)507 b(con-)-30 65539 y(\002guration)539 b(\002les,)g(these)g(tw) +-15 b(o)539 b(\002les)g(are)g(v)-23 b(ery)539 b(well)h(commented)e(and) +i(it)f(should)f(be)i(easy)f(to)-30 67554 y(determine)387 +b(which)g(modi\002cations)f(need)h(to)g(be)g(made.)p +Black -30 73792 a FR(60)p Black eop end +%%Page: 61 83 +TeXDict begin 61 82 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.61) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) +-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + +-30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP) +cvn H.B /DEST pdfmark end + -30 2504 a 1628 x FL(5.3)620 b(TCP/IP)i +(Con\002guration)-30 4629 y +SDict begin H.S end + -30 4629 a -30 4629 a +SDict begin 18.2 H.A end + -30 +4629 a -30 4629 a +SDict begin [ /View [/XYZ H.V] /Dest (1826) cvn H.B /DEST pdfmark end + -30 4629 a -30 5744 a +SDict begin H.S end + -30 5744 a -30 +5744 a +SDict begin 18.2 H.A end + -30 5744 a -30 5744 a +SDict begin [ /View [/XYZ H.V] /Dest (1828) cvn H.B /DEST pdfmark end + -30 5744 a 1519 x FU(At)536 +b(this)g(point,)g(your)g(netw)-15 b(ork)535 b(card)i(should)e(be)h(ph) +-8 b(ysically)536 b(installed)f(in)h(your)g(computer)-62 +b(,)-30 9277 y(and)421 b(the)g(rele)-39 b(v)g(ant)421 +b(k)-15 b(ernel)421 b(modules)f(should)g(be)h(loaded.)g(Y)-170 +b(ou)420 b(will)h(not)f(yet)h(be)g(able)g(to)g(com-)-30 +11292 y(municate)430 b(o)-23 b(v)g(er)431 b(your)f(netw)-15 +b(ork)430 b(card,)i(b)-31 b(ut)430 b(information)g(about)g(the)h(netw) +-15 b(ork)430 b(de)-39 b(vice)431 b(can)g(be)-30 13307 +y(obtained)387 b(with)8838 13307 y +SDict begin H.S end + 8838 13307 a 8838 +13307 a +SDict begin 18.2 H.A end + 8838 13307 a 8838 13307 a +SDict begin [ /View [/XYZ H.V] /Dest (1829) cvn H.B /DEST pdfmark end + 8838 13307 a FP(ifconfig)743 +b(-a)p FU(.)-30 15051 y +SDict begin H.S end + -30 15051 a -30 15051 a +SDict begin 14.56 H.A end + -30 15051 +a -30 15051 a +SDict begin [ /View [/XYZ H.V] /Dest (1830) cvn H.B /DEST pdfmark end + -30 15051 a -30 15051 a +SDict begin H.S end + -30 15051 a -30 +15051 a +SDict begin 14.56 H.A end + -30 15051 a -30 15051 a +SDict begin [ /View [/XYZ H.V] /Dest (1831) cvn H.B /DEST pdfmark end + -30 15051 a 1417 x FJ(#)1309 +16468 y +SDict begin H.S end + 1309 16468 a 1309 16468 a +SDict begin 14.56 H.A end + 1309 16468 a 1309 16468 +a +SDict begin [ /View [/XYZ H.V] /Dest (1832) cvn H.B /DEST pdfmark end + 1309 16468 a FH(ifconfig)g(-a)-30 18080 y FP(eth0)g(Link)h +(encap:Ethernet)e(HWaddr)h(00:A0:CC:3C:60:A4)-30 19692 +y(UP)h(BROADCAST)f(NOTRAILERS)f(RUNNING)h(MULTICAST)g(MTU:1500)g +(Metric:1)-30 21303 y(RX)h(packets:110081)e(errors:1)h(dropped:0)g +(overruns:0)f(frame:0)-30 22915 y(TX)i(packets:84931)e(errors:0)h +(dropped:0)g(overruns:0)f(carrier:0)-30 24527 y(collisions:0)h +(txqueuelen:100)-30 26138 y(RX)h(bytes:114824506)e(\(109.5)h(Mb\))g(TX) +h(bytes:9337924)e(\(8.9)i(Mb\))-30 27750 y(Interrupt:5)f(Base)g +(address:0x8400)-30 30974 y(lo)h(Link)f(encap:Local)g(Loopback)-30 +32585 y(inet)g(addr:127.0.0.1)g(Mask:255.0.0.0)-30 34197 +y(UP)h(LOOPBACK)f(RUNNING)g(MTU:16436)f(Metric:1)-30 +35809 y(RX)i(packets:2234)e(errors:0)h(dropped:0)g(overruns:0)f +(frame:0)-30 37421 y(TX)i(packets:2234)e(errors:0)h(dropped:0)g +(overruns:0)f(carrier:0)-30 39032 y(collisions:0)h(txqueuelen:0)-30 +40644 y(RX)h(bytes:168758)e(\(164.8)h(Kb\))h(TX)f(bytes:168758)g +(\(164.8)g(Kb\))-30 42388 y +SDict begin H.S end + -30 42388 a -30 42388 a +SDict begin 18.2 H.A end + -30 +42388 a -30 42388 a +SDict begin [ /View [/XYZ H.V] /Dest (1833) cvn H.B /DEST pdfmark end + -30 42388 a 1821 x FU(If)415 b(you)g(just)g(typed) +10671 44209 y +SDict begin H.S end + 10671 44209 a 10671 44209 a +SDict begin 18.2 H.A end + 10671 44209 +a 10671 44209 a +SDict begin [ /View [/XYZ H.V] /Dest (1834) cvn H.B /DEST pdfmark end + 10671 44209 a FP(/sbin/ifconfig)e FU(without)h(the) +28960 44209 y +SDict begin H.S end + 28960 44209 a 28960 44209 a +SDict begin 18.2 H.A end + 28960 44209 +a 28960 44209 a +SDict begin [ /View [/XYZ H.V] /Dest (1835) cvn H.B /DEST pdfmark end + 28960 44209 a FP(-a)h FU(suf)-39 b(\002x,)415 +b(you)g(w)-15 b(ould)414 b(not)h(see)g(the)49270 44209 +y +SDict begin H.S end + 49270 44209 a 49270 44209 a +SDict begin 18.2 H.A end + 49270 44209 a 49270 44209 +a +SDict begin [ /View [/XYZ H.V] /Dest (1836) cvn H.B /DEST pdfmark end + 49270 44209 a FQ(eth0)-30 46223 y FU(interf)-15 b(ace,)387 +b(as)h(your)f(netw)-15 b(ork)386 b(card)i(does)f(not)g(yet)g(ha)-31 +b(v)-23 b(e)387 b(a)h(v)-39 b(alid)387 b(IP)g(address)g(or)g(route.)-30 +46559 y +SDict begin H.S end + -30 46559 a -30 46559 a +SDict begin 18.2 H.A end + -30 46559 a -30 46559 +a +SDict begin [ /View [/XYZ H.V] /Dest (1837) cvn H.B /DEST pdfmark end + -30 46559 a -30 47334 a +SDict begin H.S end + -30 47334 a -30 47334 a +SDict begin 18.2 H.A end + -30 +47334 a -30 47334 a +SDict begin [ /View [/XYZ H.V] /Dest (1839) cvn H.B /DEST pdfmark end + -30 47334 a 1679 x FU(While)410 b(there)g(are)g +(man)-23 b(y)409 b(dif)-39 b(ferent)410 b(w)-15 b(ays)409 +b(to)h(setup)g(and)g(subnet)f(a)h(netw)-15 b(ork,)410 +b(all)f(of)h(them)g(can)-30 51027 y(be)399 b(brok)-15 +b(en)399 b(do)-39 b(wn)399 b(into)f(tw)-15 b(o)399 b(types:)f(Static)h +(and)g(Dynamic.)g(Static)f(netw)-15 b(orks)398 b(are)h(setup)g(such)-30 +53042 y(that)528 b(each)h(node)9732 53042 y +SDict begin H.S end + 9732 53042 +a 9732 53042 a +SDict begin 18.2 H.A end + 9732 53042 a 9732 53042 a +SDict begin [ /View [/XYZ H.V] /Dest (1840) cvn H.B /DEST pdfmark end + 9732 53042 a +528 w FU(\(geek)f(lingo)g(for)g(thing)g(with)g(an)g(IP)g(address\))g +(al)-15 b(w)g(ays)527 b(has)h(the)g(same)g(IP)-30 55057 +y(address.)552 b(Dynamic)f(netw)-15 b(orks)550 b(are)i(setup)g(in)f +(such)g(a)h(w)-15 b(ay)551 b(that)g(the)h(IP)f(addresses)g(for)h(the) +-30 57071 y(nodes)387 b(are)h(controlled)e(by)h(a)h(single)f(serv)-23 +b(er)387 b(called)g(the)g(DHCP)g(serv)-23 b(er)-85 b(.)-30 +57407 y +SDict begin H.S end + -30 57407 a -30 57407 a +SDict begin 18.2 H.A end + -30 57407 a -30 57407 +a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-DHCP) +cvn H.B /DEST pdfmark end + -30 57407 a 5026 x FG(DHCP)-30 62456 y +SDict begin H.S end + -30 62456 a +-30 62456 a +SDict begin 18.2 H.A end + -30 62456 a -30 62456 a +SDict begin [ /View [/XYZ H.V] /Dest (1844) cvn H.B /DEST pdfmark end + -30 62456 a -30 63387 +a +SDict begin H.S end + -30 63387 a -30 63387 a +SDict begin 18.2 H.A end + -30 63387 a -30 63387 a +SDict begin [ /View [/XYZ H.V] /Dest (1846) cvn H.B /DEST pdfmark end + -30 +63387 a 1991 x FU(DHCP)306 b(\(or)g(Dynamic)g(Host)g(Con\002guration)f +(Protocol\),)h(is)g(a)g(means)g(by)h(which)f(an)g(IP)g(address)-30 +67393 y(may)502 b(be)f(assigned)g(to)h(a)g(computer)f(on)g(boot.)h +(When)g(the)f(DHCP)37126 67393 y +SDict begin H.S end + 37126 67393 a 37126 +67393 a +SDict begin 18.2 H.A end + 37126 67393 a 37126 67393 a +SDict begin [ /View [/XYZ H.V] /Dest (1847) cvn H.B /DEST pdfmark end + 37126 67393 a FR(client)529 +b FU(boots,)502 b(it)f(puts)g(out)p Black 50226 73792 +a FR(61)p Black eop end +%%Page: 62 84 +TeXDict begin 62 83 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.62) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1872) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(5)g(Network)f(Con\002gur)-23 b(ation)p Black -30 3611 +a FU(a)431 b(request)g(on)g(the)g(Local)g(Area)g(Netw)-15 +b(ork)430 b(for)h(a)g(DHCP)31463 3611 y +SDict begin H.S end + 31463 3611 a +31463 3611 a +SDict begin 18.2 H.A end + 31463 3611 a 31463 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (1848) cvn H.B /DEST pdfmark end + 31463 3611 a FR(server)467 +b FU(to)431 b(assign)f(it)h(an)g(IP)g(address.)-30 5626 +y(The)503 b(DHCP)e(serv)-23 b(er)502 b(has)h(a)f(pool)g(\(or)21110 +5626 y +SDict begin H.S end + 21110 5626 a 21110 5626 a +SDict begin 18.2 H.A end + 21110 5626 a 21110 5626 +a +SDict begin [ /View [/XYZ H.V] /Dest (1849) cvn H.B /DEST pdfmark end + 21110 5626 a FR(scope)p FU(\))g(of)h(IP)f(addresses)g(a)-31 +b(v)-39 b(ailable.)503 b(The)f(serv)-23 b(er)502 b(will)-30 +7640 y(respond)h(to)h(this)f(request)h(with)f(an)h(IP)f(address)h(from) +f(the)h(pool,)g(along)f(with)g(a)45031 7640 y +SDict begin H.S end + 45031 7640 +a 45031 7640 a +SDict begin 18.2 H.A end + 45031 7640 a 45031 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (1850) cvn H.B /DEST pdfmark end + 45031 7640 a +FR(lease)h(time)p FU(.)-30 9655 y(Once)392 b(the)g(lease)h(time)e(for)i +(a)f(gi)-39 b(v)-23 b(en)392 b(IP)g(address)g(lease)g(has)g(e)-23 +b(xpired,)392 b(the)g(client)g(must)f(contact)-30 11670 +y(the)c(serv)-23 b(er)387 b(ag)-8 b(ain)388 b(and)f(repeat)h(the)f(ne) +-23 b(gotiation.)-30 12780 y +SDict begin H.S end + -30 12780 a -30 12780 a +SDict begin 18.2 H.A end + +-30 12780 a -30 12780 a +SDict begin [ /View [/XYZ H.V] /Dest (1851) cvn H.B /DEST pdfmark end + -30 12780 a 1679 x FU(The)566 +b(client)g(will)g(then)g(accept)h(the)f(IP)g(address)g(from)g(the)g +(serv)-23 b(er)566 b(and)h(will)e(con\002gure)h(the)-30 +16474 y(requested)480 b(interf)-15 b(ace)480 b(with)f(the)h(IP)g +(address.)h(There)f(is)g(one)g(more)g(handy)g(trick)g(that)g(DHCP)-30 +18489 y(clients)499 b(use)h(for)g(ne)-23 b(gotiating)499 +b(the)h(IP)g(address)f(that)h(the)-23 b(y)499 b(will)h(be)g(assigned,)g +(ho)-39 b(we)g(v)-23 b(er)-85 b(.)500 b(The)-30 20503 +y(client)520 b(will)g(remember)g(it')-85 b(s)519 b(last)h(assigned)g +(IP)g(address,)g(and)g(will)g(request)g(that)g(the)g(serv)-23 +b(er)-30 22518 y(re-assign)499 b(that)g(IP)g(address)g(to)h(the)f +(client)g(ag)-8 b(ain)499 b(upon)g(ne)-23 b(xt)499 b(ne)-23 +b(gotiation.)499 b(If)g(possible,)g(the)-30 24533 y(serv)-23 +b(er)356 b(will)g(do)h(so,)g(b)-31 b(ut)356 b(if)g(not,)h(a)g(ne)-39 +b(w)356 b(address)h(is)f(assigned.)g(So,)h(the)f(ne)-23 +b(gotiation)356 b(resembles)-30 26547 y(the)387 b(follo)-39 +b(wing:)-30 28433 y +SDict begin H.S end + -30 28433 a -30 28433 a +SDict begin 18.2 H.A end + -30 28433 +a -30 28433 a +SDict begin [ /View [/XYZ H.V] /Dest (1852) cvn H.B /DEST pdfmark end + -30 28433 a 1520 30112 a +SDict begin H.S end + 1520 30112 a 1520 +30112 a +SDict begin 18.2 H.A end + 1520 30112 a 1520 30112 a +SDict begin [ /View [/XYZ H.V] /Dest (1853) cvn H.B /DEST pdfmark end + 1520 30112 a FR(Client)28 +b FU(:)386 b(Is)h(there)h(a)f(DHCP)g(serv)-23 b(er)387 +b(a)-31 b(v)-39 b(ailable)387 b(on)g(the)h(LAN?)1520 +32126 y +SDict begin H.S end + 1520 32126 a 1520 32126 a +SDict begin 18.2 H.A end + 1520 32126 a 1520 32126 +a +SDict begin [ /View [/XYZ H.V] /Dest (1854) cvn H.B /DEST pdfmark end + 1520 32126 a FR(Server)36 b FU(:)387 b(Y)-155 b(es,)387 +b(there)h(is.)f(Here)h(I)f(am.)1520 34141 y +SDict begin H.S end + 1520 34141 +a 1520 34141 a +SDict begin 18.2 H.A end + 1520 34141 a 1520 34141 a +SDict begin [ /View [/XYZ H.V] /Dest (1855) cvn H.B /DEST pdfmark end + 1520 34141 a +FR(Client)28 b FU(:)386 b(I)i(need)f(an)g(IP)g(address.)1520 +36156 y +SDict begin H.S end + 1520 36156 a 1520 36156 a +SDict begin 18.2 H.A end + 1520 36156 a 1520 36156 +a +SDict begin [ /View [/XYZ H.V] /Dest (1856) cvn H.B /DEST pdfmark end + 1520 36156 a FR(Server)36 b FU(:)387 b(Y)-170 b(ou)386 +b(may)h(tak)-15 b(e)387 b(192.168.10.10)g(for)h(19200)f(seconds.)1520 +38170 y +SDict begin H.S end + 1520 38170 a 1520 38170 a +SDict begin 18.2 H.A end + 1520 38170 a 1520 38170 +a +SDict begin [ /View [/XYZ H.V] /Dest (1857) cvn H.B /DEST pdfmark end + 1520 38170 a FR(Client)28 b FU(:)386 b(Thank)h(you.)-30 +40056 y +SDict begin H.S end + -30 40056 a -30 40056 a +SDict begin 18.2 H.A end + -30 40056 a -30 40056 +a +SDict begin [ /View [/XYZ H.V] /Dest (1858) cvn H.B /DEST pdfmark end + -30 40056 a 1520 41735 a +SDict begin H.S end + 1520 41735 a 1520 41735 a +SDict begin 18.2 H.A end + +1520 41735 a 1520 41735 a +SDict begin [ /View [/XYZ H.V] /Dest (1859) cvn H.B /DEST pdfmark end + 1520 41735 a FR(Client)28 b +FU(:)386 b(Is)h(there)h(a)f(DHCP)g(serv)-23 b(er)387 +b(a)-31 b(v)-39 b(ailable)387 b(on)g(the)h(LAN?)1520 +43749 y +SDict begin H.S end + 1520 43749 a 1520 43749 a +SDict begin 18.2 H.A end + 1520 43749 a 1520 43749 +a +SDict begin [ /View [/XYZ H.V] /Dest (1860) cvn H.B /DEST pdfmark end + 1520 43749 a FR(Server)36 b FU(:Y)-155 b(es,)387 b(there)g(is.)h +(Here)f(I)h(am.)1520 45764 y +SDict begin H.S end + 1520 45764 a 1520 45764 +a +SDict begin 18.2 H.A end + 1520 45764 a 1520 45764 a +SDict begin [ /View [/XYZ H.V] /Dest (1861) cvn H.B /DEST pdfmark end + 1520 45764 a FR(Client)28 +b FU(:I)386 b(need)h(an)h(IP)f(address.)g(The)h(last)f(time)g(we)1520 +47779 y(talk)-15 b(ed,)387 b(I)g(had)h(192.168.10.10;)1520 +49793 y(May)f(I)g(ha)-31 b(v)-23 b(e)388 b(it)f(ag)-8 +b(ain?)1520 51808 y +SDict begin H.S end + 1520 51808 a 1520 51808 a +SDict begin 18.2 H.A end + 1520 51808 +a 1520 51808 a +SDict begin [ /View [/XYZ H.V] /Dest (1862) cvn H.B /DEST pdfmark end + 1520 51808 a FR(Server)36 b FU(:Y)-155 +b(es,)387 b(you)g(may)g(\(or)g(No,)h(you)f(may)g(not:)g(tak)-15 +b(e)387 b(192.168.10.12)g(instead\).)1520 53823 y +SDict begin H.S end + 1520 +53823 a 1520 53823 a +SDict begin 18.2 H.A end + 1520 53823 a 1520 53823 a +SDict begin [ /View [/XYZ H.V] /Dest (1863) cvn H.B /DEST pdfmark end + 1520 53823 +a FR(Client)28 b FU(:)386 b(Thank)h(you.)-30 54158 y +SDict begin H.S end + +-30 54158 a -30 54158 a +SDict begin 18.2 H.A end + -30 54158 a -30 54158 a +SDict begin [ /View [/XYZ H.V] /Dest (1864) cvn H.B /DEST pdfmark end + -30 54158 +a -30 55708 a +SDict begin H.S end + -30 55708 a -30 55708 a +SDict begin 18.2 H.A end + -30 55708 a -30 +55708 a +SDict begin [ /View [/XYZ H.V] /Dest (1867) cvn H.B /DEST pdfmark end + -30 55708 a 1679 x FU(The)435 b(DHCP)f(client)g(in)g(Linux)g +(is)18507 57387 y +SDict begin H.S end + 18507 57387 a 18507 57387 a +SDict begin 18.2 H.A end + 18507 57387 +a 18507 57387 a +SDict begin [ /View [/XYZ H.V] /Dest (1868) cvn H.B /DEST pdfmark end + 18507 57387 a FP(/sbin/dhcpcd)p FU(.)g(If)h(you)f(load) +35585 57387 y +SDict begin H.S end + 35585 57387 a 35585 57387 a +SDict begin 18.2 H.A end + 35585 57387 +a 35585 57387 a +SDict begin [ /View [/XYZ H.V] /Dest (1869) cvn H.B /DEST pdfmark end + 35585 57387 a FQ(/etc/rc.d/rc.inet1)424 +b FU(in)434 b(your)-30 59402 y(f)-15 b(a)-31 b(v)g(orite)717 +b(te)-23 b(xt)716 b(editor)-62 b(,)718 b(you)f(will)f(notice)h(that) +26824 59402 y +SDict begin H.S end + 26824 59402 a 26824 59402 a +SDict begin 18.2 H.A end + 26824 59402 +a 26824 59402 a +SDict begin [ /View [/XYZ H.V] /Dest (1870) cvn H.B /DEST pdfmark end + 26824 59402 a FP(/sbin/dhcpcd)f FU(is)h(called)g(about) +g(midw)-15 b(ay)-30 61417 y(through)479 b(the)h(script.)g(This)g(will)f +(force)i(the)f(con)-62 b(v)-23 b(ersation)479 b(sho)-39 +b(wn)479 b(abo)-23 b(v)g(e.)41444 61417 y +SDict begin H.S end + 41444 61417 +a 41444 61417 a +SDict begin 18.2 H.A end + 41444 61417 a 41444 61417 a +SDict begin [ /View [/XYZ H.V] /Dest (1871) cvn H.B /DEST pdfmark end + 41444 61417 +a FP(dhcpcd)480 b FU(will)f(also)-30 63431 y(track)691 +b(the)f(amount)g(of)h(time)f(left)g(on)h(the)f(lease)h(for)f(the)h +(current)f(IP)g(address,)h(and)f(will)-30 65446 y(automatically)656 +b(contact)g(the)h(DHCP)f(serv)-23 b(er)657 b(with)f(a)h(request)g(to)f +(rene)-39 b(w)658 b(the)e(lease)h(when)p Black -30 73792 +a FR(62)p Black eop end +%%Page: 63 85 +TeXDict begin 63 84 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.63) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) +-23 b(ation)p Black -30 3611 a FU(necessary)-101 b(.)526 +b(DHCP)f(can)h(also)f(control)g(related)h(information,)f(such)g(as)h +(what)f(ntp)h(serv)-23 b(er)525 b(to)-30 5626 y(use,)388 +b(what)f(route)g(to)g(tak)-15 b(e,)387 b(etc.)-30 8415 +y(Setting)546 b(up)i(DHCP)e(on)h(Slackw)-15 b(are)547 +b(is)g(simple.)g(Just)f(run)33539 8415 y +SDict begin H.S end + 33539 8415 a +33539 8415 a +SDict begin 18.2 H.A end + 33539 8415 a 33539 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (1875) cvn H.B /DEST pdfmark end + 33539 8415 a FP(netconfig)g +FU(and)i(select)f(DHCP)-30 10430 y(when)384 b(of)-39 +b(fered.)384 b(If)g(you)f(ha)-31 b(v)-23 b(e)384 b(more)f(than)h(one)f +(NIC)h(and)f(do)h(not)f(wish)38822 10430 y +SDict begin H.S end + 38822 10430 +a 38822 10430 a +SDict begin 18.2 H.A end + 38822 10430 a 38822 10430 a +SDict begin [ /View [/XYZ H.V] /Dest (1876) cvn H.B /DEST pdfmark end + 38822 10430 +a FQ(eth0)e FU(to)j(be)g(con\002gured)-30 12445 y(by)488 +b(DHCP)-172 b(,)488 b(just)g(edit)g(the)14768 12445 y +SDict begin H.S end + +14768 12445 a 14768 12445 a +SDict begin 18.2 H.A end + 14768 12445 a 14768 12445 +a +SDict begin [ /View [/XYZ H.V] /Dest (1877) cvn H.B /DEST pdfmark end + 14768 12445 a FQ(/etc/rc.d/rc.inet1.conf)474 b FU(\002le)488 +b(and)g(change)g(the)h(related)f(v)-39 b(ariable)-30 +14459 y(for)388 b(your)f(NIC)g(to)10042 14459 y +SDict begin H.S end + 10042 +14459 a 10042 14459 a +SDict begin 18.2 H.A end + 10042 14459 a 10042 14459 a +SDict begin [ /View [/XYZ H.V] /Dest (1878) cvn H.B /DEST pdfmark end + 10042 +14459 a FU(\223)10730 14459 y +SDict begin H.S end + 10730 14459 a 10730 14459 +a +SDict begin 18.2 H.A end + 10730 14459 a 10730 14459 a +SDict begin [ /View [/XYZ H.V] /Dest (1879) cvn H.B /DEST pdfmark end + 10730 14459 a FP(YES)p +FU(\224.)-30 15570 y +SDict begin H.S end + -30 15570 a -30 15570 a +SDict begin 18.2 H.A end + -30 15570 +a -30 15570 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-STATIC) +cvn H.B /DEST pdfmark end + -30 15570 a 5181 x FG(Static)518 b(IP)-30 +21704 y +SDict begin H.S end + -30 21704 a -30 21704 a +SDict begin 18.2 H.A end + -30 21704 a -30 21704 +a +SDict begin [ /View [/XYZ H.V] /Dest (1882) cvn H.B /DEST pdfmark end + -30 21704 a 1992 x FU(Static)440 b(IP)f(addresses)h(are)h(\002x)-23 +b(ed)439 b(addresses)h(that)g(only)f(change)35154 23696 +y +SDict begin H.S end + 35154 23696 a 35154 23696 a +SDict begin 18.2 H.A end + 35154 23696 a 35154 23696 +a +SDict begin [ /View [/XYZ H.V] /Dest (1883) cvn H.B /DEST pdfmark end + 35154 23696 a 441 w FU(if)h(manually)f(told)h(to.)g(These)-30 +25710 y(are)627 b(used)f(in)g(an)-23 b(y)627 b(case)f(where)h(an)f +(administrator)g(doesn')-28 b(t)626 b(w)-15 b(ant)625 +b(the)i(IP)f(information)f(to)-30 27725 y(change,)532 +b(such)e(for)i(internal)e(serv)-23 b(ers)531 b(on)g(a)g(LAN,)g(an)-23 +b(y)531 b(serv)-23 b(er)531 b(connected)g(to)g(the)g(Internet,)-30 +29740 y(and)388 b(netw)-15 b(ork)g(ed)386 b(routers.)h(W)-62 +b(ith)388 b(static)f(IP)g(addressing,)g(you)h(assign)e(an)i(address)f +(and)h(lea)-31 b(v)-23 b(e)387 b(it)-30 31754 y(at)420 +b(that.)g(Other)g(machines)f(kno)-39 b(w)420 b(that)f(you)h(are)g(al) +-15 b(w)g(ays)419 b(at)g(that)h(certain)g(IP)f(address)h(and)g(can)-30 +33769 y(contact)387 b(you)g(at)h(that)f(address)g(al)-15 +b(w)g(ays.)-30 34880 y +SDict begin H.S end + -30 34880 a -30 34880 a +SDict begin 18.2 H.A end + -30 34880 +a -30 34880 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-CONF) +cvn H.B /DEST pdfmark end + -30 34880 a 5181 x FA(/etc/rc)n(.)l(d)l(/)l(r)l(c)l(.)l +(i)l(n)l(e)l(t)l(1)l(.)l(c)l(o)l(n)l(f)-30 41124 y +SDict begin H.S end + -30 +41124 a -30 41124 a +SDict begin 18.2 H.A end + -30 41124 a -30 41124 a +SDict begin [ /View [/XYZ H.V] /Dest (1889) cvn H.B /DEST pdfmark end + -30 41124 +a 1882 x FU(If)574 b(you)f(plan)g(on)h(assigning)e(an)i(IP)f(address)g +(to)g(your)h(ne)-39 b(w)573 b(Slackw)-15 b(are)573 b(box,)h(you)f(may)g +(do)-30 45020 y(so)547 b(either)h(through)e(the)13782 +45020 y +SDict begin H.S end + 13782 45020 a 13782 45020 a +SDict begin 18.2 H.A end + 13782 45020 a 13782 +45020 a +SDict begin [ /View [/XYZ H.V] /Dest (1890) cvn H.B /DEST pdfmark end + 13782 45020 a FQ(netconfig)541 b FU(script,)548 +b(or)f(you)g(may)h(edit)35144 45020 y +SDict begin H.S end + 35144 45020 a 35144 +45020 a +SDict begin 18.2 H.A end + 35144 45020 a 35144 45020 a +SDict begin [ /View [/XYZ H.V] /Dest (1891) cvn H.B /DEST pdfmark end + 35144 45020 a FQ +(/etc/rc.d/rc.inet1.conf)p FU(.)533 b(In)-30 47035 y +SDict begin H.S end + +-30 47035 a -30 47035 a +SDict begin 18.2 H.A end + -30 47035 a -30 47035 a +SDict begin [ /View [/XYZ H.V] /Dest (1892) cvn H.B /DEST pdfmark end + -30 47035 +a FQ(/etc/rc.d/rc.inet1.conf)373 b FU(,)388 b(you)f(will)g(notice:)-30 +48920 y +SDict begin H.S end + -30 48920 a -30 48920 a +SDict begin 14.56 H.A end + -30 48920 a -30 48920 +a +SDict begin [ /View [/XYZ H.V] /Dest (1893) cvn H.B /DEST pdfmark end + -30 48920 a 2946 50196 a FP(#)743 b(Primary)g(network)g(interface)g +(card)h(\(eth0\))2946 51808 y(IPADDR[0]="")2946 53420 +y(NETMASK[0]="")2946 55032 y(USE_DHCP[0]="")2946 56643 +y(DHCP_HOSTNAME[0]="")-30 58338 y +SDict begin H.S end + -30 58338 a -30 58338 +a +SDict begin 18.2 H.A end + -30 58338 a -30 58338 a +SDict begin [ /View [/XYZ H.V] /Dest (1894) cvn H.B /DEST pdfmark end + -30 58338 a 1870 x FU(Then)387 +b(further)h(at)f(the)g(bottom:)-30 61773 y +SDict begin H.S end + -30 61773 +a -30 61773 a +SDict begin 14.56 H.A end + -30 61773 a -30 61773 a +SDict begin [ /View [/XYZ H.V] /Dest (1895) cvn H.B /DEST pdfmark end + -30 61773 a 2946 +63369 a FP(GATEWAY="")p Black 50226 73792 a FR(63)p Black +eop end +%%Page: 64 86 +TeXDict begin 64 85 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.64) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (1930) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(5)g(Network)f(Con\002gur)-23 b(ation)p Black -30 2504 +a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1896) cvn H.B /DEST pdfmark end + -30 2504 +a 1107 x FU(In)396 b(this)f(case,)h(our)g(task)f(is)g(merely)h(to)f +(place)h(the)f(correct)h(information)e(between)i(the)f(double-)-30 +5626 y(quotes.)558 b(These)g(v)-39 b(ariables)558 b(are)g(called)g(by) +24152 5626 y +SDict begin H.S end + 24152 5626 a 24152 5626 a +SDict begin 18.2 H.A end + 24152 5626 a 24152 +5626 a +SDict begin [ /View [/XYZ H.V] /Dest (1897) cvn H.B /DEST pdfmark end + 24152 5626 a FQ(/etc/rc.d/rc.inet1)547 b FU(at)558 +b(boot)f(time)h(to)f(setup)h(the)-30 7640 y(nics.)376 +b(F)-23 b(or)374 b(each)i(NIC,)g(just)e(enter)i(the)f(correct)g(IP)h +(information,)e(or)i(put)39272 7640 y +SDict begin H.S end + 39272 7640 a 39272 +7640 a +SDict begin 18.2 H.A end + 39272 7640 a 39272 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (1898) cvn H.B /DEST pdfmark end + 39272 7640 a FU(\223)39960 +7640 y +SDict begin H.S end + 39960 7640 a 39960 7640 a +SDict begin 18.2 H.A end + 39960 7640 a 39960 7640 +a +SDict begin [ /View [/XYZ H.V] /Dest (1899) cvn H.B /DEST pdfmark end + 39960 7640 a FP(YES)p FU(\224)f(for)45437 7640 y +SDict begin H.S end + 45437 +7640 a 45437 7640 a +SDict begin 18.2 H.A end + 45437 7640 a 45437 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (1900) cvn H.B /DEST pdfmark end + 45437 7640 +a FP(USE_DHCP)p FU(.)-30 9655 y(Slackw)-15 b(are)481 +b(will)h(startup)g(the)g(interf)-15 b(aces)481 b(with)h(the)g +(information)f(placed)h(here)g(in)g(the)g(order)-30 11670 +y(the)-23 b(y)387 b(are)h(found.)-30 12005 y +SDict begin H.S end + -30 12005 +a -30 12005 a +SDict begin 18.2 H.A end + -30 12005 a -30 12005 a +SDict begin [ /View [/XYZ H.V] /Dest (1901) cvn H.B /DEST pdfmark end + -30 12005 a -30 +12005 a +SDict begin H.S end + -30 12005 a -30 12005 a +SDict begin 18.2 H.A end + -30 12005 a -30 12005 +a +SDict begin [ /View [/XYZ H.V] /Dest (1903) cvn H.B /DEST pdfmark end + -30 12005 a -30 12780 a +SDict begin H.S end + -30 12780 a -30 12780 a +SDict begin 18.2 H.A end + -30 +12780 a -30 12780 a +SDict begin [ /View [/XYZ H.V] /Dest (1905) cvn H.B /DEST pdfmark end + -30 12780 a 1679 x FU(The)2871 14459 +y +SDict begin H.S end + 2871 14459 a 2871 14459 a +SDict begin 18.2 H.A end + 2871 14459 a 2871 14459 a +SDict begin [ /View [/XYZ H.V] /Dest (1906) cvn H.B /DEST pdfmark end + +2871 14459 a FP(DEFAULT_GW)490 b FU(v)-39 b(ariable)491 +b(sets)g(up)f(the)h(def)-15 b(ault)491 b(route)f(for)h(Slackw)-15 +b(are.)491 b(All)g(communica-)-30 16474 y(tions)357 b(between)g(your)g +(computer)f(and)h(other)g(computers)g(on)g(the)g(Internet)g(must)g +(pass)g(through)-30 18489 y(that)559 b(g)-8 b(ate)-39 +b(w)-15 b(ay)560 b(if)g(no)f(other)g(route)h(is)f(speci\002ed)g(for)h +(them.)g(If)g(you)f(are)h(using)f(DHCP)-172 b(,)559 b(you)-30 +20503 y(will)447 b(usually)h(not)f(need)h(to)g(enter)g(an)-23 +b(ything)446 b(here,)j(as)f(the)f(DHCP)h(serv)-23 b(er)447 +b(will)h(specify)f(what)-30 22518 y(g)-8 b(ate)-39 b(w)-15 +b(ay)387 b(to)g(use.)-30 23628 y +SDict begin H.S end + -30 23628 a -30 23628 +a +SDict begin 18.2 H.A end + -30 23628 a -30 23628 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-RESOLVER) +cvn H.B /DEST pdfmark end + -30 23628 a 5182 x FA(/etc/re)n(s)l(o)l(l)l +(v)l(.)l(c)l(o)l(n)l(f)-30 29873 y +SDict begin H.S end + -30 29873 a -30 29873 +a +SDict begin 18.2 H.A end + -30 29873 a -30 29873 a +SDict begin [ /View [/XYZ H.V] /Dest (1910) cvn H.B /DEST pdfmark end + -30 29873 a 1881 x FU(Ok,)454 +b(so)g(you')-77 b(v)-23 b(e)453 b(got)h(an)g(IP)f(address,)i(you')-77 +b(v)-23 b(e)452 b(got)i(a)g(def)-15 b(ault)453 b(g)-8 +b(ate)-39 b(w)-15 b(ay)-101 b(,)455 b(you)e(may)h(e)-39 +b(v)-23 b(en)454 b(ha)-31 b(v)-23 b(e)-30 33769 y(ten)398 +b(million)e(dollars)i(\(gi)-39 b(v)-23 b(e)397 b(us)h(some\),)21624 +33769 y +SDict begin H.S end + 21624 33769 a 21624 33769 a +SDict begin 18.2 H.A end + 21624 33769 a 21624 +33769 a +SDict begin [ /View [/XYZ H.V] /Dest (1911) cvn H.B /DEST pdfmark end + 21624 33769 a 397 w FU(b)-31 b(ut)398 b(what)g(good)f(is)g +(that)h(if)g(you)f(can')-28 b(t)398 b(resolv)-23 b(e)397 +b(names)-30 35784 y(to)591 b(IP)g(addresses?)f(No)h(one)g(w)-15 +b(ants)590 b(to)h(type)g(in)27312 35784 y +SDict begin H.S end + 27312 35784 +a 27312 35784 a +SDict begin 18.2 H.A end + 27312 35784 a 27312 35784 a +SDict begin [ /View [/XYZ H.V] /Dest (1913) cvn H.B /DEST pdfmark end + 27312 35784 +a 0 1 0 0 TeXcolorcmyk 27312 35784 a +SDict begin H.S end + 27312 35784 a 0 1 0 0 +TeXcolorcmyk FQ(72.9.234.112)p 0 1 0 0 TeXcolorcmyk 34828 +35043 a +SDict begin H.R end + 34828 35043 a 34828 35784 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (72.9.234.112) >> /Subtype /Link H.B /ANN pdfmark end + 34828 35784 a Black +591 w FU(into)f(their)h(web)g(bro)-39 b(wser)591 b(to)-30 +37798 y(reach)3766 37798 y +SDict begin H.S end + 3766 37798 a 3766 37798 a +SDict begin 18.2 H.A end + +3766 37798 a 3766 37798 a +SDict begin [ /View [/XYZ H.V] /Dest (1914) cvn H.B /DEST pdfmark end + 3766 37798 a 0 1 0 0 TeXcolorcmyk +3766 38068 a +SDict begin H.S end + 3766 38068 a 0 1 0 0 TeXcolorcmyk -270 x +FQ(www.slackbook.org)p 0 1 0 0 TeXcolorcmyk 14414 37058 +a +SDict begin H.R end + 14414 37058 a 14414 37798 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (www.slackbook.org) >> /Subtype /Link H.B /ANN pdfmark end + 14414 37798 a Black FU(.)441 +b(After)g(all,)g(who)g(other)f(than)h(the)f(authors)g(w)-15 +b(ould)440 b(memorize)g(that)-30 39813 y(IP)f(address?)f(W)-124 +b(e)439 b(need)g(to)f(setup)h(DNS,)f(b)-31 b(ut)439 b(ho)-39 +b(w?)439 b(That')-85 b(s)438 b(where)37356 39813 y +SDict begin H.S end + 37356 +39813 a 37356 39813 a +SDict begin 18.2 H.A end + 37356 39813 a 37356 39813 a +SDict begin [ /View [/XYZ H.V] /Dest (1915) cvn H.B /DEST pdfmark end + 37356 +39813 a FQ(/etc/resolv.conf)428 b FU(comes)-30 41828 +y(into)387 b(play)-101 b(.)-30 42938 y +SDict begin H.S end + -30 42938 a -30 +42938 a +SDict begin 18.2 H.A end + -30 42938 a -30 42938 a +SDict begin [ /View [/XYZ H.V] /Dest (1916) cvn H.B /DEST pdfmark end + -30 42938 a 1679 x FU(Chances)473 +b(are)i(you)e(already)h(ha)-31 b(v)-23 b(e)473 b(the)h(proper)g +(options)e(in)32843 44617 y +SDict begin H.S end + 32843 44617 a 32843 44617 +a +SDict begin 18.2 H.A end + 32843 44617 a 32843 44617 a +SDict begin [ /View [/XYZ H.V] /Dest (1917) cvn H.B /DEST pdfmark end + 32843 44617 a 33317 44617 +a +SDict begin H.S end + 33317 44617 a 33317 44617 a +SDict begin 18.2 H.A end + 33317 44617 a 33317 44617 +a +SDict begin [ /View [/XYZ H.V] /Dest (1919) cvn H.B /DEST pdfmark end + 33317 44617 a FQ(/etc/resolv.conf)p FU(.)464 b(If)474 +b(you)f(setup)-30 46632 y(your)334 b(netw)-15 b(ork)333 +b(connection)h(using)f(DHCP)-172 b(,)334 b(the)g(DHCP)g(serv)-23 +b(er)334 b(should)f(handle)h(updating)g(this)-30 48647 +y(\002le)410 b(for)g(you.)g(\(T)-108 b(echnically)410 +b(the)g(DHCP)f(serv)-23 b(er)410 b(just)g(tells)32498 +48647 y +SDict begin H.S end + 32498 48647 a 32498 48647 a +SDict begin 18.2 H.A end + 32498 48647 a 32498 +48647 a +SDict begin [ /View [/XYZ H.V] /Dest (1920) cvn H.B /DEST pdfmark end + 32498 48647 a FP(dhcpcd)g FU(what)g(to)g(put)f(here,)i(and)f +(it)-30 50661 y(obe)-23 b(ys.\))415 b(If)g(you)g(need)g(to)g(manually)g +(update)f(your)h(DNS)g(serv)-23 b(er)415 b(list)f(though,)h(you')-15 +b(ll)414 b(need)h(to)-30 52676 y(hand)387 b(edit)6082 +52676 y +SDict begin H.S end + 6082 52676 a 6082 52676 a +SDict begin 18.2 H.A end + 6082 52676 a 6082 52676 +a +SDict begin [ /View [/XYZ H.V] /Dest (1921) cvn H.B /DEST pdfmark end + 6082 52676 a FQ(/etc/resolv.conf)p FU(.)378 b(Belo)-39 +b(w)387 b(is)g(an)g(e)-23 b(xample:)-30 54561 y +SDict begin H.S end + -30 54561 +a -30 54561 a +SDict begin 14.56 H.A end + -30 54561 a -30 54561 a +SDict begin [ /View [/XYZ H.V] /Dest (1922) cvn H.B /DEST pdfmark end + -30 54561 a -30 +54561 a +SDict begin H.S end + -30 54561 a -30 54561 a +SDict begin 14.56 H.A end + -30 54561 a -30 54561 +a +SDict begin [ /View [/XYZ H.V] /Dest (1923) cvn H.B /DEST pdfmark end + -30 54561 a 1276 x FJ(#)1309 55837 y +SDict begin H.S end + 1309 55837 a 1309 +55837 a +SDict begin 14.56 H.A end + 1309 55837 a 1309 55837 a +SDict begin [ /View [/XYZ H.V] /Dest (1924) cvn H.B /DEST pdfmark end + 1309 55837 a FH(cat)744 +b(/etc/resolv.conf)-30 57449 y FP(nameserver)f(192.168.1.254)-30 +59061 y(search)g(lizella.net)-30 60637 y +SDict begin H.S end + -30 60637 a +-30 60637 a +SDict begin 18.2 H.A end + -30 60637 a -30 60637 a +SDict begin [ /View [/XYZ H.V] /Dest (1925) cvn H.B /DEST pdfmark end + -30 60637 a 1988 +x FU(The)340 b(\002rst)f(line)g(is)g(simple.)h(The)f(nameserv)-23 +b(er)339 b(directi)-39 b(v)-23 b(e)340 b(tells)f(us)g(what)h(DNS)f +(serv)-23 b(ers)339 b(to)g(query)-101 b(.)-30 64640 y(By)483 +b(necessity)g(these)f(are)i(al)-15 b(w)g(ays)482 b(IP)h(addresses.)g(Y) +-170 b(ou)483 b(may)f(ha)-31 b(v)-23 b(e)483 b(as)h(man)-23 +b(y)482 b(listed)h(there)g(as)-30 66655 y(you)376 b(lik)-15 +b(e.)376 b(Slackw)-15 b(are)375 b(will)h(happily)g(check)g(one)g(after) +h(the)f(other)g(until)f(one)i(returns)e(a)i(match.)p +Black -30 73792 a FR(64)p Black eop end +%%Page: 65 87 +TeXDict begin 65 86 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.65) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) +-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + +-30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (1926) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(The)656 b(second)g(line)g +(is)g(a)h(little)f(more)g(interesting.)f(The)i(search)f(directi)-39 +b(v)-23 b(e)656 b(gi)-39 b(v)-23 b(es)656 b(us)g(a)h(list)-30 +5626 y(of)619 b(domain)f(names)h(to)g(assume)f(whene)-39 +b(v)-23 b(er)619 b(a)g(DNS)g(request)f(is)h(made.)g(This)g(allo)-39 +b(ws)618 b(you)-30 7640 y(to)546 b(contact)f(a)h(machine)f(by)h(only)f +(the)h(\002rst)f(part)h(of)f(its)h(FQDN)f(\(Fully)g(Quali\002ed)g +(Domain)-30 9655 y(Name\).)392 b(F)-23 b(or)392 b(e)-23 +b(xample,)391 b(if)14833 9655 y +SDict begin H.S end + 14833 9655 a 14833 9655 +a +SDict begin 18.2 H.A end + 14833 9655 a 14833 9655 a +SDict begin [ /View [/XYZ H.V] /Dest (1927) cvn H.B /DEST pdfmark end + 14833 9655 a FU(\223slackw)-15 +b(are.com\224)391 b(were)i(in)e(your)h(search)g(path,)g(you)f(could)h +(reach)-30 11670 y +SDict begin H.S end + -30 11670 a -30 11670 a +SDict begin 18.2 H.A end + -30 11670 +a -30 11670 a +SDict begin [ /View [/XYZ H.V] /Dest (1928) cvn H.B /DEST pdfmark end + -30 11670 a 0 1 0 0 TeXcolorcmyk -30 11939 +a +SDict begin H.S end + -30 11939 a 0 1 0 0 TeXcolorcmyk -269 x FQ +(http://store.slackware.com)p 0 1 0 0 TeXcolorcmyk 16255 +10828 a +SDict begin H.R end + 16255 10828 a 16255 11670 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://store.slackware.com) >> /Subtype /Link H.B /ANN pdfmark +end + 16255 11670 a Black +388 w FU(by)387 b(just)g(pointing)f(your)h(web)g(bro)-39 +b(wser)388 b(at)39805 11670 y +SDict begin H.S end + 39805 11670 a 39805 11670 +a +SDict begin 18.2 H.A end + 39805 11670 a 39805 11670 a +SDict begin [ /View [/XYZ H.V] /Dest (1929) cvn H.B /DEST pdfmark end + 39805 11670 a 0 1 0 0 TeXcolorcmyk +39805 11939 a +SDict begin H.S end + 39805 11939 a 0 1 0 0 TeXcolorcmyk -269 +x FQ(http://store)p 0 1 0 0 TeXcolorcmyk 47321 10828 +a +SDict begin H.R end + 47321 10828 a 47321 11670 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://store) >> /Subtype /Link H.B /ANN pdfmark end + 47321 11670 a Black FU(.)-30 +14831 y FJ(#)1309 14831 y +SDict begin H.S end + 1309 14831 a 1309 14831 a +SDict begin 14.56 H.A end + 1309 +14831 a 1309 14831 a +SDict begin [ /View [/XYZ H.V] /Dest (1932) cvn H.B /DEST pdfmark end + 1309 14831 a FH(ping)743 b(-c)h(1)g(store)-30 +16443 y FP(PING)f(store.slackware.com)f(\(69.50.233.153\):)g(56)i(data) +f(bytes)-30 18055 y(64)h(bytes)f(from)g(69.50.233.153)g(:)g(icmp_seq=0) +g(ttl=64)g(time=0.251)g(ms)-30 19666 y(1)h(packets)f(transmitted,)f(1)i +(packets)f(received,)g(0\045)g(packet)h(loss)-30 21278 +y(round-trip)f(min/avg/max)f(=)i(0.251/0.251/0.251)e(ms)-30 +25617 y +SDict begin H.S end + -30 25617 a -30 25617 a +SDict begin 18.2 H.A end + -30 25617 a -30 25617 +a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-TCPIP-HOSTS) +cvn H.B /DEST pdfmark end + -30 25617 a 5518 x FA(/etc/ho)n(s)l(t)l(s)-30 32197 +y +SDict begin H.S end + -30 32197 a -30 32197 a +SDict begin 18.2 H.A end + -30 32197 a -30 32197 a +SDict begin [ /View [/XYZ H.V] /Dest (1936) cvn H.B /DEST pdfmark end + -30 +32197 a 1882 x FU(No)-39 b(w)429 b(that)g(we')-77 b(v)-23 +b(e)429 b(got)g(DNS)f(w)-15 b(orking)428 b(\002ne,)i(what)e(if)i(we)f +(w)-15 b(ant)428 b(to)h(bypass)g(our)g(DNS)g(serv)-23 +b(er)-62 b(,)-30 36094 y(or)519 b(add)f(a)h(DNS)e(entry)i(for)f(a)h +(machine)f(that)g(isn')-28 b(t)518 b(in)g(DNS?)g(Slackw)-15 +b(are)518 b(includes)g(the)g(oft-)-30 38108 y(lo)-23 +b(v)g(ed)3729 38108 y +SDict begin H.S end + 3729 38108 a 3729 38108 a +SDict begin 18.2 H.A end + 3729 +38108 a 3729 38108 a +SDict begin [ /View [/XYZ H.V] /Dest (1937) cvn H.B /DEST pdfmark end + 3729 38108 a FQ(/etc/hosts)356 b +FU(\002le)361 b(which)g(contains)g(a)h(local)g(list)f(of)h(DNS)f(names) +h(and)f(IP)h(addresses)f(the)-23 b(y)-30 40123 y(should)387 +b(match)g(to.)-30 41688 y +SDict begin H.S end + -30 41688 a -30 41688 a +SDict begin 14.56 H.A end + -30 +41688 a -30 41688 a +SDict begin [ /View [/XYZ H.V] /Dest (1938) cvn H.B /DEST pdfmark end + -30 41688 a -30 41688 a +SDict begin H.S end + -30 41688 +a -30 41688 a +SDict begin 14.56 H.A end + -30 41688 a -30 41688 a +SDict begin [ /View [/XYZ H.V] /Dest (1939) cvn H.B /DEST pdfmark end + -30 41688 a 1597 +x FJ(#)1309 43285 y +SDict begin H.S end + 1309 43285 a 1309 43285 a +SDict begin 14.56 H.A end + 1309 43285 +a 1309 43285 a +SDict begin [ /View [/XYZ H.V] /Dest (1940) cvn H.B /DEST pdfmark end + 1309 43285 a FH(cat)744 b(/etc/hosts)-30 +44896 y FP(127.0.0.1)8182 b(localhost)1486 b(locahost.localdomain)-30 +46508 y(192.168.1.101)5206 b(redtail)-30 48120 y(172.14.66.32)5950 +b(foobar.slackware.com)-30 49696 y +SDict begin H.S end + -30 49696 a -30 49696 +a +SDict begin 18.2 H.A end + -30 49696 a -30 49696 a +SDict begin [ /View [/XYZ H.V] /Dest (1941) cvn H.B /DEST pdfmark end + -30 49696 a 1988 x FU(Here)610 +b(you)f(can)g(see)h(that)f(localhost)f(has)i(an)f(IP)g(address)g(of) +34905 51684 y +SDict begin H.S end + 34905 51684 a 34905 51684 a +SDict begin 18.2 H.A end + 34905 51684 +a 34905 51684 a +SDict begin [ /View [/XYZ H.V] /Dest (1942) cvn H.B /DEST pdfmark end + 34905 51684 a 0 1 0 0 TeXcolorcmyk 34905 +51684 a +SDict begin H.S end + 34905 51684 a 0 1 0 0 TeXcolorcmyk FQ(127.0.0.1)p +0 1 0 0 TeXcolorcmyk 40543 50944 a +SDict begin H.R end + 40543 50944 a 40543 +51684 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (127.0.0.1) >> /Subtype /Link H.B /ANN pdfmark end + 40543 51684 a Black 609 w FU(\(al)-15 b(w)g(ays)608 +b(reserv)-23 b(ed)-30 53699 y(for)566 b(localhost\),)g(redtail)f(can)h +(be)g(reached)g(at)25749 53699 y +SDict begin H.S end + 25749 53699 a 25749 +53699 a +SDict begin 18.2 H.A end + 25749 53699 a 25749 53699 a +SDict begin [ /View [/XYZ H.V] /Dest (1943) cvn H.B /DEST pdfmark end + 25749 53699 a 0 1 0 0 +TeXcolorcmyk 25749 53699 a +SDict begin H.S end + 25749 53699 a 0 1 0 0 TeXcolorcmyk +FQ(192.168.1.101)p 0 1 0 0 TeXcolorcmyk 33892 52958 a +SDict begin H.R end + +33892 52958 a 33892 53699 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (192.168.1.101) >> /Subtype /Link H.B /ANN pdfmark end + 33892 53699 a Black FU(,)g(and)37649 +53699 y +SDict begin H.S end + 37649 53699 a 37649 53699 a +SDict begin 18.2 H.A end + 37649 53699 a 37649 +53699 a +SDict begin [ /View [/XYZ H.V] /Dest (1944) cvn H.B /DEST pdfmark end + 37649 53699 a 0 1 0 0 TeXcolorcmyk 37649 53699 +a +SDict begin H.S end + 37649 53699 a 0 1 0 0 TeXcolorcmyk FQ(foobar.slackware.com)p +0 1 0 0 TeXcolorcmyk 50176 52958 a +SDict begin H.R end + 50176 52958 a 50176 +53699 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (foobar.slackware.com) >> /Subtype /Link H.B /ANN pdfmark +end + 50176 53699 a Black 566 w FU(is)-30 55714 y +SDict begin H.S end + -30 +55714 a -30 55714 a +SDict begin 18.2 H.A end + -30 55714 a -30 55714 a +SDict begin [ /View [/XYZ H.V] /Dest (1945) cvn H.B /DEST pdfmark end + -30 55714 +a 0 1 0 0 TeXcolorcmyk -30 55714 a +SDict begin H.S end + -30 55714 a 0 1 0 0 +TeXcolorcmyk FQ(172.14.66.32)p 0 1 0 0 TeXcolorcmyk 7486 +54973 a +SDict begin H.R end + 7486 54973 a 7486 55714 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (172.14.66.32) >> /Subtype /Link H.B /ANN pdfmark end + 7486 55714 a Black +FU(.)-30 58054 y +SDict begin H.S end + -30 58054 a -30 58054 a +SDict begin 18.2 H.A end + -30 58054 a +-30 58054 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-PPP) cvn +H.B /DEST pdfmark end + -30 58054 a 6109 x FL(5.4)620 b(PPP)-30 64191 +y +SDict begin H.S end + -30 64191 a -30 64191 a +SDict begin 18.2 H.A end + -30 64191 a -30 64191 a +SDict begin [ /View [/XYZ H.V] /Dest (1948) cvn H.B /DEST pdfmark end + -30 +64191 a -30 64191 a +SDict begin H.S end + -30 64191 a -30 64191 a +SDict begin 18.2 H.A end + -30 64191 +a -30 64191 a +SDict begin [ /View [/XYZ H.V] /Dest (1950) cvn H.B /DEST pdfmark end + -30 64191 a -30 65306 a +SDict begin H.S end + -30 65306 a -30 +65306 a +SDict begin 18.2 H.A end + -30 65306 a -30 65306 a +SDict begin [ /View [/XYZ H.V] /Dest (1952) cvn H.B /DEST pdfmark end + -30 65306 a 1987 x FU(Man)-23 +b(y)484 b(people)g(still)g(connect)g(to)h(the)f(Internet)g(through)g +(some)h(kind)f(of)g(dialup)g(connection.)p Black 50226 +73792 a FR(65)p Black eop end +%%Page: 66 88 +TeXDict begin 66 87 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.66) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 +b(ation)p Black -30 3611 a FU(The)362 b(most)f(common)g(method)h(is)f +(PPP)-172 b(,)362 b(though)f(SLIP)g(is)h(still)f(occasionally)g(used.)h +(Setting)f(up)-30 5626 y(your)498 b(system)g(to)g(speak)g(PPP)f(to)h(a) +h(remote)f(serv)-23 b(er)498 b(is)g(pretty)g(easy)-101 +b(.)499 b(W)-124 b(e')-77 b(v)-23 b(e)497 b(included)h(a)h(fe)-39 +b(w)-30 7640 y(tools)387 b(to)g(help)g(you)g(in)g(setting)g(it)g(up.) +-30 7976 y +SDict begin H.S end + -30 7976 a -30 7976 a +SDict begin 18.2 H.A end + -30 7976 a -30 7976 +a +SDict begin [ /View [/XYZ H.V] /Dest (1953) cvn H.B /DEST pdfmark end + -30 7976 a 5027 x FF(pppsetup)-30 13388 y +SDict begin H.S end + -30 13388 +a -30 13388 a +SDict begin 18.2 H.A end + -30 13388 a -30 13388 a +SDict begin [ /View [/XYZ H.V] /Dest (1956) cvn H.B /DEST pdfmark end + -30 13388 a -30 +14317 a +SDict begin H.S end + -30 14317 a -30 14317 a +SDict begin 18.2 H.A end + -30 14317 a -30 14317 +a +SDict begin [ /View [/XYZ H.V] /Dest (1959) cvn H.B /DEST pdfmark end + -30 14317 a 1630 x FU(Slackw)-15 b(are)357 b(includes)g(a)h(program)f +(called)23003 15947 y +SDict begin H.S end + 23003 15947 a 23003 15947 a +SDict begin 18.2 H.A end + 23003 +15947 a 23003 15947 a +SDict begin [ /View [/XYZ H.V] /Dest (1960) cvn H.B /DEST pdfmark end + 23003 15947 a FP(pppsetup)g FU(to)g(con\002gure)h +(your)f(system)g(to)h(use)f(your)-30 17962 y(dialup)451 +b(account.)h(It)g(shares)g(a)g(look)f(and)h(feel)g(similar)f(to)h(our) +34424 17962 y +SDict begin H.S end + 34424 17962 a 34424 17962 a +SDict begin 18.2 H.A end + 34424 17962 +a 34424 17962 a +SDict begin [ /View [/XYZ H.V] /Dest (1961) cvn H.B /DEST pdfmark end + 34424 17962 a FP(netconfig)e FU(program.)i(T)-124 +b(o)452 b(run)-30 19976 y(the)357 b(program,)g(mak)-15 +b(e)356 b(sure)h(you)f(are)i(logged)e(in)h(as)g(root.)g(Then)f(type) +37378 19976 y +SDict begin H.S end + 37378 19976 a 37378 19976 a +SDict begin 18.2 H.A end + 37378 19976 +a 37378 19976 a +SDict begin [ /View [/XYZ H.V] /Dest (1962) cvn H.B /DEST pdfmark end + 37378 19976 a FP(pppsetup)g FU(to)h(run)g(it.)g(Y)-170 +b(ou)-30 21991 y(should)387 b(see)g(a)h(screen)f(lik)-15 +b(e)387 b(this:)-30 22781 y +SDict begin H.S end + -30 22781 a -30 22781 a +SDict begin 18.2 H.A end + -30 +22781 a -30 22781 a +SDict begin [ /View [/XYZ H.V] /Dest (1963) cvn H.B /DEST pdfmark end + -30 22781 a 2000 x FU(The)371 b(program)f(will)h +(present)f(a)h(series)g(of)g(questions,)f(to)g(which)h(you)g(will)f +(feed)h(it)f(appropriate)-30 26795 y(answers.)500 b(Things)g(lik)-15 +b(e)499 b(your)h(modem)f(de)-39 b(vice,)501 b(the)e(modem)h +(initialization)e(string,)i(and)g(the)-30 28810 y(ISP)483 +b(phone)g(number)-85 b(.)482 b(Some)h(items)g(will)f(ha)-31 +b(v)-23 b(e)483 b(a)h(def)-15 b(ault,)482 b(which)h(you)g(can)g(accept) +h(in)f(most)-30 30825 y(cases.)-30 31615 y +SDict begin H.S end + -30 31615 +a -30 31615 a +SDict begin 18.2 H.A end + -30 31615 a -30 31615 a +SDict begin [ /View [/XYZ H.V] /Dest (1964) cvn H.B /DEST pdfmark end + -30 31615 a 1999 +x FU(After)553 b(the)g(program)g(runs,)g(it)g(will)f(create)h(a)25526 +33614 y +SDict begin H.S end + 25526 33614 a 25526 33614 a +SDict begin 18.2 H.A end + 25526 33614 a 25526 +33614 a +SDict begin [ /View [/XYZ H.V] /Dest (1965) cvn H.B /DEST pdfmark end + 25526 33614 a FP(ppp-go)f FU(program)h(and)f(a)40378 +33614 y +SDict begin H.S end + 40378 33614 a 40378 33614 a +SDict begin 18.2 H.A end + 40378 33614 a 40378 +33614 a +SDict begin [ /View [/XYZ H.V] /Dest (1966) cvn H.B /DEST pdfmark end + 40378 33614 a FP(ppp-off)g FU(program.)-30 35629 +y(These)334 b(are)f(used)h(to)f(start)g(and)h(stop,)f(respecti)-39 +b(v)-23 b(ely)-101 b(,)334 b(the)f(PPP)g(connection.)g(The)h(tw)-15 +b(o)333 b(programs)-30 37643 y(are)388 b(located)f(in)8706 +37643 y +SDict begin H.S end + 8706 37643 a 8706 37643 a +SDict begin 18.2 H.A end + 8706 37643 a 8706 37643 +a +SDict begin [ /View [/XYZ H.V] /Dest (1967) cvn H.B /DEST pdfmark end + 8706 37643 a FQ(/usr/sbin)382 b FU(and)387 b(need)g(root)g(pri)-39 +b(vile)-23 b(ges)387 b(to)g(run.)-30 38754 y +SDict begin H.S end + -30 38754 +a -30 38754 a +SDict begin 18.2 H.A end + -30 38754 a -30 38754 a +SDict begin [ /View [/XYZ H.V] /Dest (1968) cvn H.B /DEST pdfmark end + -30 38754 a 5181 +x FA(/etc/pp)n(p)-30 45219 y +SDict begin H.S end + -30 45219 a -30 45219 a +SDict begin 18.2 H.A end + +-30 45219 a -30 45219 a +SDict begin [ /View [/XYZ H.V] /Dest (1971) cvn H.B /DEST pdfmark end + -30 45219 a 1661 x FU(F)-23 b(or)462 +b(most)f(users,)h(running)15356 46880 y +SDict begin H.S end + 15356 46880 a +15356 46880 a +SDict begin 18.2 H.A end + 15356 46880 a 15356 46880 a +SDict begin [ /View [/XYZ H.V] /Dest (1972) cvn H.B /DEST pdfmark end + 15356 46880 +a FP(pppsetup)f FU(will)g(be)h(suf)-39 b(\002cient.)462 +b(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)463 b(there)f(may)g(be)g(an)g(in-) +-30 48895 y(stance)382 b(where)f(you)h(w)-15 b(ant)380 +b(to)i(tweak)f(some)h(of)f(the)h(v)-39 b(alues)381 b(used)g(by)h(the)f +(PPP)g(daemon.)h(All)f(of)-30 50909 y(the)422 b(con\002guration)g +(information)f(is)h(k)-15 b(ept)422 b(in)24874 50909 +y +SDict begin H.S end + 24874 50909 a 24874 50909 a +SDict begin 18.2 H.A end + 24874 50909 a 24874 50909 +a +SDict begin [ /View [/XYZ H.V] /Dest (1973) cvn H.B /DEST pdfmark end + 24874 50909 a FQ(/etc/ppp)p FU(.)c(Here)423 b(is)f(a)h(list)f(of)g +(what)h(the)f(dif)-39 b(ferent)-30 52924 y(\002les)387 +b(are)h(for:)-30 52939 y +SDict begin H.S end + -30 52939 a -30 52939 a +SDict begin 18.2 H.A end + -30 +52939 a -30 52939 a +SDict begin [ /View [/XYZ H.V] /Dest (1974) cvn H.B /DEST pdfmark end + -30 52939 a -30 55264 a +SDict begin H.S end + -30 55264 +a -30 55264 a +SDict begin 18.2 H.A end + -30 55264 a -30 55264 a +SDict begin [ /View [/XYZ H.V] /Dest (1975) cvn H.B /DEST pdfmark end + -30 55264 a -30 +55264 a +SDict begin H.S end + -30 55264 a -30 55264 a +SDict begin 18.2 H.A end + -30 55264 a -30 55264 +a +SDict begin [ /View [/XYZ H.V] /Dest (table.8) cvn H.B /DEST pdfmark +end + -30 55264 a 1727 x FP(ip-down)7744 b FU(This)386 b(script)h(is)g(run) +h(by)f FP(pppd)g FU(after)g(the)g(PPP)g(connection)f(is)i(ended.)-30 +59053 y FP(ip-up)9232 b FU(This)386 b(script)h(is)g(run)h(by)f +FP(pppd)g FU(when)g(there')-85 b(s)387 b(a)g(successful)g(ppp)12922 +61068 y(connection.)375 b(Put)h(an)-23 b(y)376 b(commands)f(you)h(w)-15 +b(ant)375 b(run)h(after)g(a)g(successful)12922 63083 +y(connection)386 b(in)h(this)g(\002le.)-30 65142 y FQ(options)8563 +b FU(General)387 b(con\002guration)f(options)g(for)i +FP(pppd)p FU(.)p Black -30 73792 a FR(66)p Black eop +end +%%Page: 67 89 +TeXDict begin 67 88 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.67) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) +-23 b(ation)p Black -30 5338 a FQ(options.demand)4174 +b FU(General)387 b(con\002guration)f(options)g(for)i +FP(pppd)f FU(when)g(run)g(in)g(demand)12922 7353 y(dialing)f(mode.)-30 +9415 y FP(pppscript)6256 b FU(The)387 b(commands)f(sent)h(to)g(the)h +(modem.)-30 11474 y FQ(pppsetup.txt)5428 b FU(A)387 b(log)g(of)g(what)g +(you)g(entered)h(when)f(you)g(ran)g FP(pppsetup)p FU(.)-30 +11809 y +SDict begin H.S end + -30 11809 a -30 11809 a +SDict begin 16.9 H.A end + -30 11809 a -30 11809 +a +SDict begin [ /View [/XYZ H.V] /Dest (2014) cvn H.B /DEST pdfmark end + -30 11809 a -30 14909 a +SDict begin H.S end + -30 14909 a -30 14909 a +SDict begin 16.9 H.A end + -30 +14909 a -30 14909 a +SDict begin [ /View [/XYZ H.V] /Dest (2015) cvn H.B /DEST pdfmark end + -30 14909 a 3070 16780 a Fu(Note:)400 +b Ft(Most)g(of)g(these)g(\002les)g(w)-14 b(on't)400 b(be)g(there)h +(until)g(after)f(y)-29 b(ou)400 b(r)22 b(un)40078 16780 +y +SDict begin H.S end + 40078 16780 a 40078 16780 a +SDict begin 16.9 H.A end + 40078 16780 a 40078 16780 +a +SDict begin [ /View [/XYZ H.V] /Dest (2016) cvn H.B /DEST pdfmark end + 40078 16780 a Fn(pppsetup)p Ft(.)-30 22669 y +SDict begin H.S end + -30 22669 +a -30 22669 a +SDict begin 18.2 H.A end + -30 22669 a -30 22669 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-WIRELESS) +cvn H.B /DEST pdfmark end + -30 22669 a 6124 +x FL(5.5)620 b(Wireless)-30 29937 y +SDict begin H.S end + -30 29937 a -30 29937 +a +SDict begin 18.2 H.A end + -30 29937 a -30 29937 a +SDict begin [ /View [/XYZ H.V] /Dest (2019) cvn H.B /DEST pdfmark end + -30 29937 a 1987 x FU(W)-62 +b(ireless)404 b(netw)-15 b(orking)404 b(is)g(still)g(a)h(relati)-39 +b(v)-23 b(ely)404 b(ne)-39 b(w)405 b(thing)f(in)g(the)35090 +31924 y +SDict begin H.S end + 35090 31924 a 35090 31924 a +SDict begin 18.2 H.A end + 35090 31924 a 35090 +31924 a +SDict begin [ /View [/XYZ H.V] /Dest (2020) cvn H.B /DEST pdfmark end + 35090 31924 a 405 w FU(w)-15 b(orld)404 b(of)g(computers,)h +(yet)f(is)-30 33938 y(quickly)g(catching)h(on)f(as)h(more)g(people)g +(be)-23 b(gin)404 b(to)g(purchase)h(laptops)f(and)h(w)-15 +b(ant)404 b(netw)-15 b(orking)-30 35953 y(on)318 b(the)g(go,)g(without) +g(ha)-31 b(ving)317 b(to)h(fool)g(with)f(some)h(old)g(twisted)f(pair)h +(cable.)h(This)e(trend)h(doesn')-28 b(t)-30 37968 y(appear)387 +b(to)f(be)g(slo)-39 b(wing)386 b(do)-39 b(wn.)386 b(Unfortunately)-101 +b(,)387 b(wireless)e(netw)-15 b(orking)385 b(isn')-28 +b(t)386 b(yet)g(as)h(strongly)-30 39982 y(supported)g(in)g(Linux)g(as)g +(traditional)f(wired)h(netw)-15 b(orking.)-30 40318 y +SDict begin H.S end + +-30 40318 a -30 40318 a +SDict begin 18.2 H.A end + -30 40318 a -30 40318 a +SDict begin [ /View [/XYZ H.V] /Dest (2022) cvn H.B /DEST pdfmark end + -30 40318 +a -30 41093 a +SDict begin H.S end + -30 41093 a -30 41093 a +SDict begin 18.2 H.A end + -30 41093 a -30 +41093 a +SDict begin [ /View [/XYZ H.V] /Dest (2024) cvn H.B /DEST pdfmark end + -30 41093 a 1679 x FU(There)388 b(are)f(three)h(basic)f(steps)f +(to)i(con\002guring)e(an)h(802.11)g(wireless)g(Ethernet)g(card:)-30 +43108 y +SDict begin H.S end + -30 43108 a -30 43108 a +SDict begin 18.2 H.A end + -30 43108 a -30 43108 +a +SDict begin [ /View [/XYZ H.V] /Dest (2025) cvn H.B /DEST pdfmark end + -30 43108 a -30 43882 a +SDict begin H.S end + -30 43882 a -30 43882 a +SDict begin 18.2 H.A end + -30 +43882 a -30 43882 a +SDict begin [ /View [/XYZ H.V] /Dest (2026) cvn H.B /DEST pdfmark end + -30 43882 a Black 1210 47111 a FU(1.)p +Black 2760 47111 a +SDict begin H.S end + 2760 47111 a 2760 47111 a +SDict begin 18.2 H.A end + 2760 47111 +a 2760 47111 a +SDict begin [ /View [/XYZ H.V] /Dest (2027) cvn H.B /DEST pdfmark end + 2760 47111 a FU(Hardw)-15 b(are)387 b(support)f(for)i +(the)f(wireless)g(card)-30 47447 y +SDict begin H.S end + -30 47447 a -30 47447 +a +SDict begin 18.2 H.A end + -30 47447 a -30 47447 a +SDict begin [ /View [/XYZ H.V] /Dest (2028) cvn H.B /DEST pdfmark end + -30 47447 a Black 1210 49901 +a FU(2.)p Black 2760 49901 a +SDict begin H.S end + 2760 49901 a 2760 49901 +a +SDict begin 18.2 H.A end + 2760 49901 a 2760 49901 a +SDict begin [ /View [/XYZ H.V] /Dest (2029) cvn H.B /DEST pdfmark end + 2760 49901 a FU(Con\002gure)f(the)h(card)h +(to)f(connect)g(to)g(a)h(wireless)e(access)i(point)-30 +50236 y +SDict begin H.S end + -30 50236 a -30 50236 a +SDict begin 18.2 H.A end + -30 50236 a -30 50236 +a +SDict begin [ /View [/XYZ H.V] /Dest (2030) cvn H.B /DEST pdfmark end + -30 50236 a Black 1210 52690 a FU(3.)p Black 2760 52690 +a +SDict begin H.S end + 2760 52690 a 2760 52690 a +SDict begin 18.2 H.A end + 2760 52690 a 2760 52690 a +SDict begin [ /View [/XYZ H.V] /Dest (2031) cvn H.B /DEST pdfmark end + +2760 52690 a FU(Con\002gure)e(the)h(netw)-15 b(ork)-30 +53026 y +SDict begin H.S end + -30 53026 a -30 53026 a +SDict begin 18.2 H.A end + -30 53026 a -30 53026 +a +SDict begin [ /View [/XYZ H.V] /Dest (2032) cvn H.B /DEST pdfmark end + -30 53026 a 5026 x FG(Har)-37 b(d)-28 b(ware)518 b(Suppor)37 +b(t)-30 58437 y +SDict begin H.S end + -30 58437 a -30 58437 a +SDict begin 18.2 H.A end + -30 58437 a -30 +58437 a +SDict begin [ /View [/XYZ H.V] /Dest (2034) cvn H.B /DEST pdfmark end + -30 58437 a -30 58437 a +SDict begin H.S end + -30 58437 a -30 58437 +a +SDict begin 18.2 H.A end + -30 58437 a -30 58437 a +SDict begin [ /View [/XYZ H.V] /Dest (2037) cvn H.B /DEST pdfmark end + -30 58437 a -30 59367 a +SDict begin H.S end + -30 +59367 a -30 59367 a +SDict begin 18.2 H.A end + -30 59367 a -30 59367 a +SDict begin [ /View [/XYZ H.V] /Dest (2039) cvn H.B /DEST pdfmark end + -30 59367 +a 1630 x FU(Hardw)-15 b(are)588 b(support)f(for)i(a)f(wireless)g(card)g +(is)g(pro)-23 b(vided)587 b(through)h(the)g(k)-15 b(ernel,)587 +b(either)h(with)-30 63012 y(a)788 b(module)g(or)g(b)-31 +b(uilt)787 b(in)h(to)f(the)h(k)-15 b(ernel.)788 b(Generally)-101 +b(,)788 b(most)g(ne)-39 b(wer)788 b(Ethernet)g(cards)g(are)-30 +65026 y(pro)-23 b(vided)758 b(through)g(k)-15 b(ernel)757 +b(modules,)h(so)h(you')-15 b(ll)757 b(w)-15 b(ant)758 +b(to)g(determine)g(the)g(appropriate)-30 67041 y(k)-15 +b(ernel)474 b(module)h(and)g(load)f(it)h(through)21916 +67041 y +SDict begin H.S end + 21916 67041 a 21916 67041 a +SDict begin 18.2 H.A end + 21916 67041 a 21916 +67041 a +SDict begin [ /View [/XYZ H.V] /Dest (2040) cvn H.B /DEST pdfmark end + 21916 67041 a FQ(/etc/rc.d/rc.modules)p FU(.)35306 +67041 y +SDict begin H.S end + 35306 67041 a 35306 67041 a +SDict begin 18.2 H.A end + 35306 67041 a 35306 +67041 a +SDict begin [ /View [/XYZ H.V] /Dest (2041) cvn H.B /DEST pdfmark end + 35306 67041 a FP(netconfig)f FU(may)h(not)f(detect)p +Black 50169 73792 a FR(67)p Black eop end +%%Page: 68 90 +TeXDict begin 68 89 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.68) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 +b(ation)p Black -30 3611 a FU(your)639 b(wireless)f(card,)h(so)f(you') +-15 b(ll)638 b(probably)g(need)h(to)f(determine)g(the)h(card)f +(yourself.)h(See)p 0 1 0 0 TeXcolorcmyk -30 5980 a +SDict begin H.S end + -30 +5980 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(w)l(w)l(w)l(.)l(h)l(p)l +(l)l(.)l(h)l(p)l(.)l(c)l(o)l(m)l(/)l(p)l(e)l(r)l(s)l(o)l(n)l(a)l(l)l(/) +l(J)l(e)l(a)l(n)l(_)l(T)l(o)l(u)l(r)l(r)l(i)l(l)l(h)l(e)l(s)l(/)l(L)l +(i)l(n)l(u)l(x)l(/)p 0 1 0 0 TeXcolorcmyk 42847 4519 +a +SDict begin H.R end + 42847 4519 a 42847 5626 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/) >> +/Subtype /Link H.B /ANN pdfmark end + 42847 5626 a Black 1969 w +FU(for)1968 b(more)-30 7640 y(information)386 b(on)i(k)-15 +b(ernel)386 b(dri)-39 b(v)-23 b(ers)387 b(for)h(v)-39 +b(arious)387 b(wireless)g(cards.)-30 8431 y +SDict begin H.S end + -30 8431 +a -30 8431 a +SDict begin 18.2 H.A end + -30 8431 a -30 8431 a +SDict begin [ /View [/XYZ H.V] /Dest (2043) cvn H.B /DEST pdfmark end + -30 8431 a 5501 x +FG(Con\002gure)519 b(the)e(Wireless)g(Settings)-30 14346 +y +SDict begin H.S end + -30 14346 a -30 14346 a +SDict begin 18.2 H.A end + -30 14346 a -30 14346 a +SDict begin [ /View [/XYZ H.V] /Dest (2045) cvn H.B /DEST pdfmark end + -30 +14346 a -30 15276 a +SDict begin H.S end + -30 15276 a -30 15276 a +SDict begin 18.2 H.A end + -30 15276 +a -30 15276 a +SDict begin [ /View [/XYZ H.V] /Dest (2048) cvn H.B /DEST pdfmark end + -30 15276 a 1601 x FU(The)372 b(v)-39 b(ast)372 +b(majority)f(of)i(this)e(w)-15 b(ork)372 b(is)f(done)h(by)25735 +16877 y +SDict begin H.S end + 25735 16877 a 25735 16877 a +SDict begin 18.2 H.A end + 25735 16877 a 25735 +16877 a +SDict begin [ /View [/XYZ H.V] /Dest (2049) cvn H.B /DEST pdfmark end + 25735 16877 a FP(iwconfig)p FU(,)g(so)g(as)g(al)-15 +b(w)g(ays)371 b(read)h(the)g(man)g(page)-30 18892 y(for)2165 +18892 y +SDict begin H.S end + 2165 18892 a 2165 18892 a +SDict begin 18.2 H.A end + 2165 18892 a 2165 18892 +a +SDict begin [ /View [/XYZ H.V] /Dest (2050) cvn H.B /DEST pdfmark end + 2165 18892 a FP(iwconfig)386 b FU(if)h(you)g(need)h(more)f +(information.)-30 20002 y +SDict begin H.S end + -30 20002 a -30 20002 a +SDict begin 18.2 H.A end + -30 +20002 a -30 20002 a +SDict begin [ /View [/XYZ H.V] /Dest (2051) cvn H.B /DEST pdfmark end + -30 20002 a 1679 x FU(First,)570 +b(you')-15 b(ll)569 b(w)-15 b(ant)570 b(to)g(con\002gure)g(your)g +(wireless)g(access)g(point.)g(W)-62 b(ireless)570 b(access)h(points)-30 +23696 y(v)-39 b(ary)470 b(quite)f(a)h(bit)f(in)h(their)f(terminology) +-101 b(,)469 b(and)h(ho)-39 b(w)470 b(to)f(con\002gure)g(them,)h(so)f +(you)h(may)f(need)-30 25710 y(to)505 b(adjust)g(a)h(bit)f(to)g +(accommodate)g(your)g(hardw)-15 b(are.)505 b(In)h(general,)g(you')-15 +b(ll)504 b(need)h(at)h(least)f(the)-30 27725 y(follo)-39 +b(wing)387 b(information:)-30 28061 y +SDict begin H.S end + -30 28061 a -30 +28061 a +SDict begin 18.2 H.A end + -30 28061 a -30 28061 a +SDict begin [ /View [/XYZ H.V] /Dest (2052) cvn H.B /DEST pdfmark end + -30 28061 a -30 28836 +a +SDict begin H.S end + -30 28836 a -30 28836 a +SDict begin 18.2 H.A end + -30 28836 a -30 28836 a +SDict begin [ /View [/XYZ H.V] /Dest (2053) cvn H.B /DEST pdfmark end + -30 +28836 a Black 3228 x FM(\225)p Black 1520 32064 a +SDict begin H.S end + 1520 +32064 a 1520 32064 a +SDict begin 18.2 H.A end + 1520 32064 a 1520 32064 a +SDict begin [ /View [/XYZ H.V] /Dest (2054) cvn H.B /DEST pdfmark end + 1520 32064 +a FU(The)g(domain)g(ID,)h(or)f(name)g(of)g(the)h(netw)-15 +b(ork)386 b(\(called)h(the)h(ESSID)e(by)40111 32064 y +SDict begin H.S end + +40111 32064 a 40111 32064 a +SDict begin 18.2 H.A end + 40111 32064 a 40111 32064 +a +SDict begin [ /View [/XYZ H.V] /Dest (2055) cvn H.B /DEST pdfmark end + 40111 32064 a FP(iwconfig)p FU(\))-30 32400 y +SDict begin H.S end + -30 32400 +a -30 32400 a +SDict begin 18.2 H.A end + -30 32400 a -30 32400 a +SDict begin [ /View [/XYZ H.V] /Dest (2056) cvn H.B /DEST pdfmark end + -30 32400 a Black +2454 x FM(\225)p Black 1520 34854 a +SDict begin H.S end + 1520 34854 a 1520 +34854 a +SDict begin 18.2 H.A end + 1520 34854 a 1520 34854 a +SDict begin [ /View [/XYZ H.V] /Dest (2057) cvn H.B /DEST pdfmark end + 1520 34854 a FU(The)h(channel)g(the)g +(W)-186 b(AP)387 b(uses)-30 34869 y +SDict begin H.S end + -30 34869 a -30 34869 +a +SDict begin 18.2 H.A end + -30 34869 a -30 34869 a +SDict begin [ /View [/XYZ H.V] /Dest (2058) cvn H.B /DEST pdfmark end + -30 34869 a Black 2774 x FM(\225)p +Black 1520 37643 a +SDict begin H.S end + 1520 37643 a 1520 37643 a +SDict begin 18.2 H.A end + 1520 37643 +a 1520 37643 a +SDict begin [ /View [/XYZ H.V] /Dest (2059) cvn H.B /DEST pdfmark end + 1520 37643 a FU(The)g(encryption)g(settings,)g +(including)f(an)-23 b(y)387 b(k)-15 b(e)-23 b(ys)386 +b(used)h(\(preferably)h(in)f(he)-23 b(xadecimal\))-30 +37979 y +SDict begin H.S end + -30 37979 a -30 37979 a +SDict begin 18.2 H.A end + -30 37979 a -30 37979 +a +SDict begin [ /View [/XYZ H.V] /Dest (2060) cvn H.B /DEST pdfmark end + -30 37979 a -30 37979 a +SDict begin H.S end + -30 37979 a -30 37979 a +SDict begin 16.9 H.A end + -30 +37979 a -30 37979 a +SDict begin [ /View [/XYZ H.V] /Dest (2062) cvn H.B /DEST pdfmark end + -30 37979 a -30 40304 a +SDict begin H.S end + -30 40304 +a -30 40304 a +SDict begin 16.9 H.A end + -30 40304 a -30 40304 a +SDict begin [ /View [/XYZ H.V] /Dest (2063) cvn H.B /DEST pdfmark end + -30 40304 a 3070 +41839 a Fu(W)-58 b(arning:)344 b Ft(A)f(NO)-58 b(TE)343 +b(ABOUT)f(WEP)-259 b(.)343 b(WEP)g(is)g(quit)h(\003a)-29 +b(w)-14 b(ed,)342 b(b)-29 b(ut)344 b(it')-72 b(s)343 +b(m)-14 b(uch)342 b(better)h(than)3070 43710 y(nothing.)333 +b(If)g(y)-29 b(ou)333 b(wish)g(a)f(g)-14 b(reater)334 +b(deg)-14 b(ree)333 b(of)f(secur)22 b(ity)332 b(on)h(y)-29 +b(our)333 b(wireless)g(netw)-14 b(or)22 b(k,)332 b(y)-29 +b(ou)3070 45580 y(should)368 b(in)-29 b(v)-36 b(estigate)368 +b(VPNs)f(or)h(IPSec)-22 b(,)367 b(both)h(of)g(which)f(are)h(be)-29 +b(y)g(ond)368 b(the)g(scope)f(of)h(this)3070 47451 y(document.)376 +b(Y)-201 b(ou)376 b(might)h(also)g(con\002gure)f(y)-29 +b(our)377 b(W)-72 b(AP)377 b(not)g(to)g(adv)-36 b(er)58 +b(tise)376 b(its)h(domain)g(ID/)3070 49322 y(ESSID)-101 +b(.)472 b(A)h(thorough)h(discussion)f(of)g(wireless)g(policy)g(is)g(be) +-29 b(y)g(ond)474 b(the)f(scope)g(of)g(this)3070 51193 +y(section,)404 b(b)-29 b(ut)406 b(a)f(quic)-29 b(k)404 +b(Google)i(search)e(will)i(tur)36 b(n)405 b(up)g(more)g(than)h(y)-29 +b(ou)404 b(e)-43 b(v)-36 b(er)405 b(w)-22 b(anted)406 +b(to)3070 53063 y(kno)-22 b(w)-86 b(.)-30 57403 y +SDict begin H.S end + -30 +57403 a -30 57403 a +SDict begin 18.2 H.A end + -30 57403 a -30 57403 a +SDict begin [ /View [/XYZ H.V] /Dest (2064) cvn H.B /DEST pdfmark end + -30 57403 +a 2014 x FU(Once)466 b(you')-77 b(v)-23 b(e)466 b(g)-8 +b(athered)466 b(the)g(abo)-23 b(v)g(e)466 b(information,)g(and)g +(assuming)f(you')-77 b(v)-23 b(e)466 b(used)45825 59417 +y +SDict begin H.S end + 45825 59417 a 45825 59417 a +SDict begin 18.2 H.A end + 45825 59417 a 45825 59417 +a +SDict begin [ /View [/XYZ H.V] /Dest (2065) cvn H.B /DEST pdfmark end + 45825 59417 a FP(modprobe)-30 61432 y FU(to)368 b(load)f(the)h +(appropriate)f(k)-15 b(ernel)367 b(dri)-39 b(v)-23 b(er)-62 +b(,)369 b(you)e(can)h(edit)30728 61432 y +SDict begin H.S end + 30728 61432 +a 30728 61432 a +SDict begin 18.2 H.A end + 30728 61432 a 30728 61432 a +SDict begin [ /View [/XYZ H.V] /Dest (2066) cvn H.B /DEST pdfmark end + 30728 61432 +a FQ(rc.wireless.conf)358 b FU(and)368 b(add)f(your)h(set-)-30 +63447 y(tings.)304 b(The)6390 63447 y +SDict begin H.S end + 6390 63447 a 6390 +63447 a +SDict begin 18.2 H.A end + 6390 63447 a 6390 63447 a +SDict begin [ /View [/XYZ H.V] /Dest (2067) cvn H.B /DEST pdfmark end + 6390 63447 a FQ(rc.wireless.conf)294 +b FU(\002le)303 b(is)h(a)g(bit)g(untidy)-101 b(.)304 +b(The)f(least)h(ef)-39 b(fort)304 b(is)g(to)g(modify)f(the)h(generic) +-30 65461 y(section)462 b(with)f(your)h(ESSID)f(and)h(KEY)-200 +b(,)463 b(and)f(CHANNEL)f(if)h(required)g(by)g(your)g(card.)g(\(T)-54 +b(ry)-30 67476 y(not)341 b(setting)f(CHANNEL,)h(and)g(if)g(it)g(w)-15 +b(orks,)340 b(great;)h(if)g(not,)g(set)g(the)g(CHANNEL)f(as)h +(appropri-)p Black -30 73792 a FR(68)p Black eop end +%%Page: 69 91 +TeXDict begin 69 90 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.69) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) +-23 b(ation)p Black -30 3611 a FU(ate.\))340 b(If)g(you')-77 +b(re)340 b(daring,)g(you)f(can)h(modify)f(the)h(\002le)f(so)h(that)f +(only)h(the)f(necessary)h(v)-39 b(ariables)340 b(are)-30 +5626 y(set.)403 b(The)f(v)-39 b(ariable)402 b(names)h(in)16620 +5626 y +SDict begin H.S end + 16620 5626 a 16620 5626 a +SDict begin 18.2 H.A end + 16620 5626 a 16620 5626 +a +SDict begin [ /View [/XYZ H.V] /Dest (2068) cvn H.B /DEST pdfmark end + 16620 5626 a FQ(rc.wireless.conf)392 b FU(correspond)402 +b(to)g(the)38236 5626 y +SDict begin H.S end + 38236 5626 a 38236 5626 a +SDict begin 18.2 H.A end + 38236 +5626 a 38236 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (2069) cvn H.B /DEST pdfmark end + 38236 5626 a FP(iwconfig)g FU(parameters,)-30 +7640 y(and)387 b(are)h(read)g(by)9867 7640 y +SDict begin H.S end + 9867 7640 +a 9867 7640 a +SDict begin 18.2 H.A end + 9867 7640 a 9867 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (2070) cvn H.B /DEST pdfmark end + 9867 7640 a FQ(rc.wireless)380 +b FU(and)387 b(used)g(in)h(the)f(appropriate)34317 7640 +y +SDict begin H.S end + 34317 7640 a 34317 7640 a +SDict begin 18.2 H.A end + 34317 7640 a 34317 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (2071) cvn H.B /DEST pdfmark end + +34317 7640 a FP(iwconfig)f FU(commands.)-30 8751 y +SDict begin H.S end + -30 +8751 a -30 8751 a +SDict begin 18.2 H.A end + -30 8751 a -30 8751 a +SDict begin [ /View [/XYZ H.V] /Dest (2072) cvn H.B /DEST pdfmark end + -30 8751 a 1679 +x FU(If)439 b(you)g(ha)-31 b(v)-23 b(e)438 b(your)h(k)-15 +b(e)-23 b(y)438 b(in)g(he)-23 b(xadecimal,)439 b(that')-85 +b(s)438 b(ideal,)h(since)f(you)h(can)g(be)g(f)-15 b(airly)438 +b(con\002dent)-30 12445 y(that)474 b(your)f(W)-186 b(AP)474 +b(and)12527 12445 y +SDict begin H.S end + 12527 12445 a 12527 12445 a +SDict begin 18.2 H.A end + 12527 +12445 a 12527 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (2073) cvn H.B /DEST pdfmark end + 12527 12445 a FP(iwconfig)f FU(will)g(agree)h(on) +g(the)g(k)-15 b(e)-23 b(y)-101 b(.)474 b(If)g(you)f(only)h(ha)-31 +b(v)-23 b(e)473 b(a)i(string,)e(you)-30 14459 y(can')-28 +b(t)567 b(be)f(sure)h(ho)-39 b(w)566 b(your)h(W)-186 +b(AP)566 b(will)g(translate)g(that)g(into)g(a)h(he)-23 +b(xadecimal)566 b(k)-15 b(e)-23 b(y)-101 b(,)566 b(so)g(some)-30 +16474 y(guessw)-15 b(ork)386 b(may)h(be)h(needed)f(\(or)g(get)h(your)f +(W)-186 b(AP')-85 b(s)386 b(k)-15 b(e)-23 b(y)387 b(in)g(he)-23 +b(x\).)-30 17584 y +SDict begin H.S end + -30 17584 a -30 17584 a +SDict begin 18.2 H.A end + -30 17584 +a -30 17584 a +SDict begin [ /View [/XYZ H.V] /Dest (2074) cvn H.B /DEST pdfmark end + -30 17584 a 1680 x FU(Once)467 b(you')-77 +b(v)-23 b(e)466 b(modi\002ed)14355 19264 y +SDict begin H.S end + 14355 19264 +a 14355 19264 a +SDict begin 18.2 H.A end + 14355 19264 a 14355 19264 a +SDict begin [ /View [/XYZ H.V] /Dest (2075) cvn H.B /DEST pdfmark end + 14355 19264 +a FQ(rc.wireless.conf)p FU(,)457 b(run)27764 19264 y +SDict begin H.S end + +27764 19264 a 27764 19264 a +SDict begin 18.2 H.A end + 27764 19264 a 27764 19264 +a +SDict begin [ /View [/XYZ H.V] /Dest (2076) cvn H.B /DEST pdfmark end + 27764 19264 a FQ(rc.wireless)j FU(as)36879 19264 y +SDict begin H.S end + +36879 19264 a 36879 19264 a +SDict begin 18.2 H.A end + 36879 19264 a 36879 19264 +a +SDict begin [ /View [/XYZ H.V] /Dest (2077) cvn H.B /DEST pdfmark end + 36879 19264 a FP(root)p FU(,)467 b(then)g(run)46378 +19264 y +SDict begin H.S end + 46378 19264 a 46378 19264 a +SDict begin 18.2 H.A end + 46378 19264 a 46378 +19264 a +SDict begin [ /View [/XYZ H.V] /Dest (2078) cvn H.B /DEST pdfmark end + 46378 19264 a FQ(rc.inet1)p FU(,)-30 21278 y(ag)-8 +b(ain)574 b(as)5758 21278 y +SDict begin H.S end + 5758 21278 a 5758 21278 a +SDict begin 18.2 H.A end + +5758 21278 a 5758 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (2079) cvn H.B /DEST pdfmark end + 5758 21278 a FP(root)p FU(.)f(Y)-170 +b(ou)573 b(can)h(test)f(your)h(wireless)f(netw)-15 b(orking)572 +b(with)i(standard)f(testing)g(tools)-30 23293 y(such)453 +b(as)5008 23293 y +SDict begin H.S end + 5008 23293 a 5008 23293 a +SDict begin 18.2 H.A end + 5008 23293 +a 5008 23293 a +SDict begin [ /View [/XYZ H.V] /Dest (2080) cvn H.B /DEST pdfmark end + 5008 23293 a FP(ping)p FU(,)g(along)g(with)15929 +23293 y +SDict begin H.S end + 15929 23293 a 15929 23293 a +SDict begin 18.2 H.A end + 15929 23293 a 15929 +23293 a +SDict begin [ /View [/XYZ H.V] /Dest (2081) cvn H.B /DEST pdfmark end + 15929 23293 a FP(iwconfig)p FU(.)g(If)g(you)g(ha)-31 +b(v)-23 b(e)453 b(a)g(wired)g(interf)-15 b(ace)452 b(you)h(may)g(wish)f +(to)-30 25308 y(use)2549 25308 y +SDict begin H.S end + 2549 25308 a 2549 25308 +a +SDict begin 18.2 H.A end + 2549 25308 a 2549 25308 a +SDict begin [ /View [/XYZ H.V] /Dest (2082) cvn H.B /DEST pdfmark end + 2549 25308 a FP(ifconfig)512 +b FU(to)g(turn)h(those)f(interf)-15 b(aces)513 b(of)-39 +b(f)513 b(while)f(you)h(test)f(your)h(wireless)f(netw)-15 +b(orking)-30 27322 y(to)409 b(ensure)g(there')-85 b(s)408 +b(no)h(interference.)g(Y)-170 b(ou)408 b(may)h(also)g(w)-15 +b(ant)408 b(to)h(test)f(your)h(changes)g(through)f(a)-30 +29337 y(reboot.)-30 30127 y +SDict begin H.S end + -30 30127 a -30 30127 a +SDict begin 18.2 H.A end + -30 +30127 a -30 30127 a +SDict begin [ /View [/XYZ H.V] /Dest (2083) cvn H.B /DEST pdfmark end + -30 30127 a 1999 x FU(No)-39 b(w)315 +b(that)g(you')-77 b(v)-23 b(e)314 b(seen)h(ho)-39 b(w)316 +b(to)f(edit)20592 32126 y +SDict begin H.S end + 20592 32126 a 20592 32126 a +SDict begin 18.2 H.A end + +20592 32126 a 20592 32126 a +SDict begin [ /View [/XYZ H.V] /Dest (2084) cvn H.B /DEST pdfmark end + 20592 32126 a FQ(/etc/rc.d/rc.wireless)302 +b FU(for)316 b(you)e(def)-15 b(ault)315 b(netw)-15 b(ork,)314 +b(let')-85 b(s)-30 34141 y(tak)-15 b(e)355 b(a)g(closer)f(look)h(at)g +(iwcon\002g)f(and)h(see)g(ho)-39 b(w)355 b(it)g(all)f(w)-15 +b(orks.)355 b(This)f(will)h(teach)g(you)g(the)f(quick)-30 +36156 y(and)h(dirty)f(w)-15 b(ay)355 b(of)g(setting)f(up)g(wi\002)h +(for)g(those)f(times)g(when)h(you)g(\002nd)f(yourself)g(at)h(an)g +(Internet)-30 38170 y(cafe,)388 b(cof)-39 b(fee)388 b(shop,)g(or)f(an) +-23 b(y)387 b(other)g(wi\002)g(hot)g(spot)g(and)g(wish)g(to)g(get)g +(online.)-30 39281 y +SDict begin H.S end + -30 39281 a -30 39281 a +SDict begin 18.2 H.A end + -30 39281 +a -30 39281 a +SDict begin [ /View [/XYZ H.V] /Dest (2085) cvn H.B /DEST pdfmark end + -30 39281 a 1679 x FU(The)612 b(\002rst)f(step)h(is)g(to) +f(tell)h(your)g(wireless)f(NIC)h(what)f(netw)-15 b(ork)611 +b(to)h(join.)g(Mak)-15 b(e)611 b(sure)h(you)-30 42975 +y(replace)4874 42975 y +SDict begin H.S end + 4874 42975 a 4874 42975 a +SDict begin 18.2 H.A end + 4874 +42975 a 4874 42975 a +SDict begin [ /View [/XYZ H.V] /Dest (2086) cvn H.B /DEST pdfmark end + 4874 42975 a FU(\223)5562 42975 +y +SDict begin H.S end + 5562 42975 a 5562 42975 a +SDict begin 18.2 H.A end + 5562 42975 a 5562 42975 a +SDict begin [ /View [/XYZ H.V] /Dest (2087) cvn H.B /DEST pdfmark end + +5562 42975 a FQ(eth0)p FU(\224)427 b(with)i(whate)-39 +b(v)-23 b(er)430 b(netw)-15 b(ork)429 b(interf)-15 b(ace)429 +b(your)g(wireless)g(card)h(uses)f(and)h(change)-30 44989 +y +SDict begin H.S end + -30 44989 a -30 44989 a +SDict begin 18.2 H.A end + -30 44989 a -30 44989 a +SDict begin [ /View [/XYZ H.V] /Dest (2088) cvn H.B /DEST pdfmark end + -30 +44989 a FU(\223)658 44989 y +SDict begin H.S end + 658 44989 a 658 44989 a +SDict begin 18.2 H.A end + 658 +44989 a 658 44989 a +SDict begin [ /View [/XYZ H.V] /Dest (2089) cvn H.B /DEST pdfmark end + 658 44989 a Fz(mynetwork)51 b FU(\224)596 +b(to)h(the)g(essid)f(you)h(wish)g(to)f(use.)i(Y)-155 +b(es,)597 b(we)g(kno)-39 b(w)597 b(you')-77 b(re)597 +b(smarter)f(than)-30 47004 y(that.)474 b(Ne)-23 b(xt)474 +b(you')-15 b(ll)473 b(ha)-31 b(v)-23 b(e)474 b(to)g(specify)g(the)g +(encryption)g(k)-15 b(e)-23 b(y)473 b(\(if)h(an)-23 b(y\))474 +b(used)g(on)g(your)g(wireless)-30 49019 y(netw)-15 b(ork.)387 +b(Finally)f(specify)h(the)h(channel)f(to)g(use)g(\(if)g(needed\).)-30 +50904 y +SDict begin H.S end + -30 50904 a -30 50904 a +SDict begin 14.56 H.A end + -30 50904 a -30 50904 +a +SDict begin [ /View [/XYZ H.V] /Dest (2090) cvn H.B /DEST pdfmark end + -30 50904 a -30 50904 a +SDict begin H.S end + -30 50904 a -30 50904 a +SDict begin 14.56 H.A end + -30 +50904 a -30 50904 a +SDict begin [ /View [/XYZ H.V] /Dest (2091) cvn H.B /DEST pdfmark end + -30 50904 a 1276 x FJ(#)1309 52180 +y +SDict begin H.S end + 1309 52180 a 1309 52180 a +SDict begin 14.56 H.A end + 1309 52180 a 1309 52180 a +SDict begin [ /View [/XYZ H.V] /Dest (2092) cvn H.B /DEST pdfmark end + +1309 52180 a FH(iwconfig)743 b(eth0)g(essid)h(")16931 +52180 y +SDict begin H.S end + 16931 52180 a 16931 52180 a +SDict begin 14.56 H.A end + 16931 52180 a 16931 +52180 a +SDict begin [ /View [/XYZ H.V] /Dest (2093) cvn H.B /DEST pdfmark end + 16931 52180 a Fy(mynetwork)52 b FH(")-30 52348 +y +SDict begin H.S end + -30 52348 a -30 52348 a +SDict begin 14.56 H.A end + -30 52348 a -30 52348 a +SDict begin [ /View [/XYZ H.V] /Dest (2094) cvn H.B /DEST pdfmark end + -30 +52348 a 1444 x FJ(#)1309 53792 y +SDict begin H.S end + 1309 53792 a 1309 53792 +a +SDict begin 14.56 H.A end + 1309 53792 a 1309 53792 a +SDict begin [ /View [/XYZ H.V] /Dest (2095) cvn H.B /DEST pdfmark end + 1309 53792 a FH(iwconfig)743 +b(eth0)g(key)14699 53792 y +SDict begin H.S end + 14699 53792 a 14699 53792 +a +SDict begin 14.56 H.A end + 14699 53792 a 14699 53792 a +SDict begin [ /View [/XYZ H.V] /Dest (2096) cvn H.B /DEST pdfmark end + 14699 53792 a Fy +(XXXXXXXXXXXXXXXXXXXXXXXXXXX)-30 53960 y +SDict begin H.S end + -30 53960 a +-30 53960 a +SDict begin 14.56 H.A end + -30 53960 a -30 53960 a +SDict begin [ /View [/XYZ H.V] /Dest (2097) cvn H.B /DEST pdfmark end + -30 53960 a 1444 +x FJ(#)1309 55404 y +SDict begin H.S end + 1309 55404 a 1309 55404 a +SDict begin 14.56 H.A end + 1309 55404 +a 1309 55404 a +SDict begin [ /View [/XYZ H.V] /Dest (2098) cvn H.B /DEST pdfmark end + 1309 55404 a FH(iwconfig)g(eth0)g(channel)g(n)-30 +57121 y +SDict begin H.S end + -30 57121 a -30 57121 a +SDict begin 18.2 H.A end + -30 57121 a -30 57121 +a +SDict begin [ /View [/XYZ H.V] /Dest (2099) cvn H.B /DEST pdfmark end + -30 57121 a 1847 x FU(That)387 b(should)g(be)g(all)g(on)g(the)h +(wireless)f(end)g(of)g(things.)-30 60078 y +SDict begin H.S end + -30 60078 +a -30 60078 a +SDict begin 18.2 H.A end + -30 60078 a -30 60078 a +SDict begin [ /View [/XYZ H.V] /Dest (2100) cvn H.B /DEST pdfmark end + -30 60078 a 5182 +x FG(Con\002gure)519 b(the)e(Netw)-37 b(ork)-30 66604 +y +SDict begin H.S end + -30 66604 a -30 66604 a +SDict begin 18.2 H.A end + -30 66604 a -30 66604 a +SDict begin [ /View [/XYZ H.V] /Dest (2102) cvn H.B /DEST pdfmark end + -30 +66604 a 1600 x FU(This)298 b(is)g(done)g(in)g(the)g(e)-23 +b(xact)298 b(same)g(w)-15 b(ay)297 b(as)h(wired)g(netw)-15 +b(orks.)298 b(Simply)f(refer)h(to)g(earlier)h(sections)p +Black 50226 73792 a FR(69)p Black eop end +%%Page: 70 92 +TeXDict begin 70 91 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.70) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 +b(ation)p Black -30 3611 a FU(of)387 b(this)g(chapter)-85 +b(.)-30 6271 y +SDict begin H.S end + -30 6271 a -30 6271 a +SDict begin 18.2 H.A end + -30 6271 a -30 6271 +a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-NFS) cvn +H.B /DEST pdfmark end + -30 6271 a 5789 x FL(5.6)620 b(Netw)-45 b(ork)621 b(File)f(Systems) +-30 12522 y +SDict begin H.S end + -30 12522 a -30 12522 a +SDict begin 18.2 H.A end + -30 12522 a -30 12522 +a +SDict begin [ /View [/XYZ H.V] /Dest (2105) cvn H.B /DEST pdfmark end + -30 12522 a -30 12522 a +SDict begin H.S end + -30 12522 a -30 12522 a +SDict begin 18.2 H.A end + -30 +12522 a -30 12522 a +SDict begin [ /View [/XYZ H.V] /Dest (2107) cvn H.B /DEST pdfmark end + -30 12522 a -30 12522 a +SDict begin H.S end + -30 12522 +a -30 12522 a +SDict begin 18.2 H.A end + -30 12522 a -30 12522 a +SDict begin [ /View [/XYZ H.V] /Dest (2110) cvn H.B /DEST pdfmark end + -30 12522 a -30 +12522 a +SDict begin H.S end + -30 12522 a -30 12522 a +SDict begin 18.2 H.A end + -30 12522 a -30 12522 +a +SDict begin [ /View [/XYZ H.V] /Dest (2112) cvn H.B /DEST pdfmark end + -30 12522 a -30 12522 a +SDict begin H.S end + -30 12522 a -30 12522 a +SDict begin 18.2 H.A end + -30 +12522 a -30 12522 a +SDict begin [ /View [/XYZ H.V] /Dest (2114) cvn H.B /DEST pdfmark end + -30 12522 a -30 13638 a +SDict begin H.S end + -30 13638 +a -30 13638 a +SDict begin 18.2 H.A end + -30 13638 a -30 13638 a +SDict begin [ /View [/XYZ H.V] /Dest (2116) cvn H.B /DEST pdfmark end + -30 13638 a 1553 +x FU(At)448 b(this)g(point,)g(you)g(should)g(ha)-31 b(v)-23 +b(e)448 b(a)h(w)-15 b(orking)447 b(TCP/IP)g(connection)h(to)g(your)g +(netw)-15 b(ork.)448 b(Y)-170 b(ou)-30 17205 y(should)504 +b(be)h(able)g(to)g(ping)f(other)h(computers)f(on)h(your)f(internal)h +(netw)-15 b(ork)503 b(and,)j(if)f(you)f(ha)-31 b(v)-23 +b(e)-30 19220 y(con\002gured)525 b(an)g(appropriate)f(g)-8 +b(ate)-39 b(w)-15 b(ay)-101 b(,)526 b(you)f(should)f(also)h(be)g(able)g +(to)g(ping)g(computers)f(on)-30 21235 y(the)444 b(Internet)g(itself.)g +(As)h(we)f(kno)-39 b(w)-101 b(,)445 b(the)f(whole)g(point)f(in)h +(bringing)g(a)g(computer)g(onto)g(a)g(net-)-30 23249 +y(w)-15 b(ork)451 b(is)h(to)f(access)h(information.)f(While)g(some)h +(people)f(might)g(bring)g(a)h(computer)g(up)f(on)h(a)-30 +25264 y(netw)-15 b(ork)379 b(just)g(for)g(the)h(fun)f(of)h(it,)g(most)f +(people)g(wish)g(to)g(be)h(able)g(to)f(share)g(\002les)h(and)f +(printers.)-30 27279 y(The)-23 b(y)486 b(wish)f(to)h(be)g(able)g(to)g +(access)g(documents)f(on)h(the)g(Internet)f(or)h(play)g(an)g(online)f +(g)-8 b(ame.)-30 29293 y(Ha)-31 b(ving)457 b(TCP/IP)f(installed)h(and)g +(functional)g(on)g(your)g(ne)-39 b(w)458 b(Slackw)-15 +b(are)457 b(system)f(is)i(a)f(means)-30 31308 y(to)502 +b(that)g(end,)h(b)-31 b(ut)502 b(with)f(just)h(TCP/IP)f(installed,)h +(functionality)f(will)h(be)g(v)-23 b(ery)502 b(rudimentary)-101 +b(.)-30 33323 y(T)-124 b(o)365 b(share)g(\002les,)g(we)g(will)g(ha)-31 +b(v)-23 b(e)365 b(to)f(transfer)h(them)g(back)g(and)g(forth)g(using)f +(either)h(FTP)f(or)h(SCP)-172 b(.)-30 35337 y(W)-124 +b(e)463 b(cannot)g(bro)-39 b(wse)463 b(\002les)g(on)g(our)g(ne)-39 +b(w)463 b(Slackw)-15 b(are)463 b(computer)f(from)h(the)g(Netw)-15 +b(ork)462 b(Neigh-)-30 37352 y(borhood)424 b(or)i(My)e(Netw)-15 +b(ork)424 b(Places)h(icons)f(on)h(W)-62 b(indo)-39 b(ws)425 +b(computers.)f(W)-124 b(e')-77 b(d)425 b(lik)-15 b(e)424 +b(to)h(be)g(able)-30 39367 y(to)387 b(access)h(\002les)e(on)i(other)f +(Unix)g(machines)f(seamlessly)-101 b(.)-30 40477 y +SDict begin H.S end + -30 +40477 a -30 40477 a +SDict begin 18.2 H.A end + -30 40477 a -30 40477 a +SDict begin [ /View [/XYZ H.V] /Dest (2117) cvn H.B /DEST pdfmark end + -30 40477 +a 1679 x FU(Ideally)g(,)586 b(we')-77 b(d)585 b(lik)-15 +b(e)585 b(to)g(be)g(able)h(to)f(use)h(a)24370 42156 y +SDict begin H.S end + +24370 42156 a 24370 42156 a +SDict begin 18.2 H.A end + 24370 42156 a 24370 42156 +a +SDict begin [ /View [/XYZ H.V] /Dest (2118) cvn H.B /DEST pdfmark end + 24370 42156 a FR(network)f(\002le)g(system)h FU(to)f(allo)-39 +b(w)585 b(us)g(transparent)-30 44171 y(access)525 b(to)f(our)h(\002les) +f(on)g(other)h(computers.)f(The)g(programs)g(that)h(we)f(use)h(to)f +(interact)g(with)-30 46186 y(information)431 b(stored)h(on)g(our)f +(computers)h(really)g(do)f(not)h(need)g(to)g(kno)-39 +b(w)432 b(on)g(what)g(computer)-30 48200 y(a)450 b(gi)-39 +b(v)-23 b(en)448 b(\002le)h(is)g(stored;)g(the)-23 b(y)449 +b(just)f(need)i(to)f(kno)-39 b(w)449 b(that)g(it)g(e)-23 +b(xists)448 b(and)h(ho)-39 b(w)449 b(to)g(get)h(to)f(it.)g(It)g(is)-30 +50215 y(then)396 b(the)f(responsibility)f(of)i(the)g(operating)f +(system)g(to)h(manage)f(access)h(to)g(that)f(\002le)h(through)-30 +52230 y(the)476 b(a)-31 b(v)-39 b(ailable)477 b(\002le)f(systems)f(and) +i(netw)-15 b(ork)475 b(\002le)h(systems.)g(The)h(tw)-15 +b(o)475 b(most)h(commonly)f(used)-30 54244 y(netw)-15 +b(ork)387 b(\002le)g(systems)f(are)i(SMB)e(\(as)h(implemented)f(by)i +(Samba\))f(and)g(NFS.)-30 54580 y +SDict begin H.S end + -30 54580 a -30 54580 +a +SDict begin 18.2 H.A end + -30 54580 a -30 54580 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-NSF-SMB) +cvn H.B /DEST pdfmark end + -30 54580 a 5026 x FG(SMB/Samba/CIFS)-30 +59629 y +SDict begin H.S end + -30 59629 a -30 59629 a +SDict begin 18.2 H.A end + -30 59629 a -30 59629 +a +SDict begin [ /View [/XYZ H.V] /Dest (2121) cvn H.B /DEST pdfmark end + -30 59629 a -30 59629 a +SDict begin H.S end + -30 59629 a -30 59629 a +SDict begin 18.2 H.A end + -30 +59629 a -30 59629 a +SDict begin [ /View [/XYZ H.V] /Dest (2123) cvn H.B /DEST pdfmark end + -30 59629 a -30 59629 a +SDict begin H.S end + -30 59629 +a -30 59629 a +SDict begin 18.2 H.A end + -30 59629 a -30 59629 a +SDict begin [ /View [/XYZ H.V] /Dest (2125) cvn H.B /DEST pdfmark end + -30 59629 a -30 +59629 a +SDict begin H.S end + -30 59629 a -30 59629 a +SDict begin 18.2 H.A end + -30 59629 a -30 59629 +a +SDict begin [ /View [/XYZ H.V] /Dest (2128) cvn H.B /DEST pdfmark end + -30 59629 a -30 59629 a +SDict begin H.S end + -30 59629 a -30 59629 a +SDict begin 18.2 H.A end + -30 +59629 a -30 59629 a +SDict begin [ /View [/XYZ H.V] /Dest (2131) cvn H.B /DEST pdfmark end + -30 59629 a -30 59629 a +SDict begin H.S end + -30 59629 +a -30 59629 a +SDict begin 18.2 H.A end + -30 59629 a -30 59629 a +SDict begin [ /View [/XYZ H.V] /Dest (2133) cvn H.B /DEST pdfmark end + -30 59629 a -30 +59629 a +SDict begin H.S end + -30 59629 a -30 59629 a +SDict begin 18.2 H.A end + -30 59629 a -30 59629 +a +SDict begin [ /View [/XYZ H.V] /Dest (2135) cvn H.B /DEST pdfmark end + -30 59629 a -30 59629 a +SDict begin H.S end + -30 59629 a -30 59629 a +SDict begin 18.2 H.A end + -30 +59629 a -30 59629 a +SDict begin [ /View [/XYZ H.V] /Dest (2137) cvn H.B /DEST pdfmark end + -30 59629 a -30 59629 a +SDict begin H.S end + -30 59629 +a -30 59629 a +SDict begin 18.2 H.A end + -30 59629 a -30 59629 a +SDict begin [ /View [/XYZ H.V] /Dest (2139) cvn H.B /DEST pdfmark end + -30 59629 a -30 +60560 a +SDict begin H.S end + -30 60560 a -30 60560 a +SDict begin 18.2 H.A end + -30 60560 a -30 60560 +a +SDict begin [ /View [/XYZ H.V] /Dest (2141) cvn H.B /DEST pdfmark end + -30 60560 a 1991 x FU(SMB)552 b(\(for)h(Serv)-23 b(er)553 +b(Message)g(Block\))f(is)h(a)g(descendant)g(of)g(the)g(older)g(NetBIOS) +f(protocol)-30 64566 y(that)356 b(w)-15 b(as)356 b(initially)f(used)i +(by)f(IBM)g(in)g(their)g(LAN)h(Manager)f(product.)g(Microsoft)g(has)g +(al)-15 b(w)g(ays)-30 66580 y(been)493 b(f)-15 b(airly)492 +b(interested)g(in)h(NetBIOS)e(and)i(it')-85 b(s)492 b(successors)g +(\(NetBEUI,)h(SMB)f(and)g(CIFS\).)p Black -30 73792 a +FR(70)p Black eop end +%%Page: 71 93 +TeXDict begin 71 92 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.71) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (2156) cvn H.B /DEST pdfmark end + -30 -2687 a 30833 -1636 a FR(Chapter)386 +b(5)i(Network)e(Con\002gur)-23 b(ation)p Black -30 3611 +a FU(The)404 b(Samba)g(project)g(has)g(e)-23 b(xisted)403 +b(since)h(1991,)g(when)g(it)g(w)-15 b(as)404 b(originally)f(written)g +(to)h(link)g(an)-30 5626 y(IBM)536 b(PC)g(running)g(NetBIOS)g(with)g(a) +h(Unix)g(serv)-23 b(er)-85 b(.)536 b(These)h(days,)g(SMB)f(is)g(the)h +(preferred)-30 7640 y(method)592 b(for)h(sharing)g(\002le)f(and)h +(print)g(services)g(o)-23 b(v)g(er)592 b(a)h(netw)-15 +b(ork)592 b(for)h(virtually)f(the)h(entire)-30 9655 y(ci)-39 +b(vilized)387 b(w)-15 b(orld)386 b(because)i(W)-62 b(indo)-39 +b(ws)387 b(supports)f(it.)-30 9991 y +SDict begin H.S end + -30 9991 a -30 9991 +a +SDict begin 18.2 H.A end + -30 9991 a -30 9991 a +SDict begin [ /View [/XYZ H.V] /Dest (2142) cvn H.B /DEST pdfmark end + -30 9991 a -30 10765 a +SDict begin H.S end + -30 10765 +a -30 10765 a +SDict begin 18.2 H.A end + -30 10765 a -30 10765 a +SDict begin [ /View [/XYZ H.V] /Dest (2145) cvn H.B /DEST pdfmark end + -30 10765 a 1680 +x FU(Samba')-85 b(s)460 b(con\002guration)f(\002le)h(is)18344 +12445 y +SDict begin H.S end + 18344 12445 a 18344 12445 a +SDict begin 18.2 H.A end + 18344 12445 a 18344 +12445 a +SDict begin [ /View [/XYZ H.V] /Dest (2146) cvn H.B /DEST pdfmark end + 18344 12445 a FQ(/etc/samba/smb.conf)p FU(;)448 +b(one)461 b(of)f(the)h(most)f(well)g(commented)-30 14459 +y(and)299 b(documented)f(con\002guration)g(\002les)g(you)h(will)g +(\002nd)f(an)-23 b(ywhere.)299 b(Sample)f(shares)h(ha)-31 +b(v)-23 b(e)299 b(been)-30 16474 y(setup)341 b(for)h(you)f(to)h(vie)-39 +b(w)341 b(and)h(modify)f(for)g(your)h(needs.)g(If)f(you)h(need)f(e)-39 +b(v)-23 b(en)342 b(tighter)f(control)g(the)-30 18489 +y(man)420 b(page)h(for)f(smb)-62 b(.conf)421 b(is)f(indispensable.)g +(Since)g(Samba)g(is)g(documented)f(so)i(well)f(in)g(the)-30 +20503 y(places)451 b(I')-77 b(v)-23 b(e)451 b(mentioned)g(abo)-23 +b(v)g(e,)451 b(we)h(will)f(not)g(re)-39 b(write)452 b(the)f +(documentation)f(here.)i(W)-124 b(e)452 b(will,)-30 22518 +y(ho)-39 b(we)g(v)-23 b(er)-62 b(,)388 b(quickly)f(co)-23 +b(v)g(er)387 b(the)g(basics.)-30 23628 y +SDict begin H.S end + -30 23628 a +-30 23628 a +SDict begin 18.2 H.A end + -30 23628 a -30 23628 a +SDict begin [ /View [/XYZ H.V] /Dest (2147) cvn H.B /DEST pdfmark end + -30 23628 a -30 23628 +a +SDict begin H.S end + -30 23628 a -30 23628 a +SDict begin 18.2 H.A end + -30 23628 a -30 23628 a +SDict begin [ /View [/XYZ H.V] /Dest (2148) cvn H.B /DEST pdfmark end + -30 +23628 a 1680 x FQ(smb.conf)457 b FU(is)k(brok)-15 b(en)461 +b(do)-39 b(wn)461 b(into)g(multiple)g(sections:)f(one)i(section)f(per)g +(share,)h(and)g(a)g(global)-30 27322 y(section)529 b(for)h(setting)g +(options)f(that)g(are)h(to)g(be)g(used)g(e)-39 b(v)-23 +b(erywhere.)530 b(Some)f(options)g(are)h(only)-30 29337 +y(v)-39 b(alid)319 b(in)g(the)f(global)h(section;)f(some)g(are)h(only)g +(v)-39 b(alid)319 b(outside)f(the)h(global)f(section.)h(Remember)-30 +31352 y(that)544 b(the)g(global)g(section)f(can)i(be)f(o)-23 +b(v)g(er)-31 b(-ridden)543 b(by)h(an)-23 b(y)544 b(other)g(section.)g +(Refer)g(to)g(the)g(man)-30 33366 y(pages)387 b(for)h(more)f +(information.)-30 34477 y +SDict begin H.S end + -30 34477 a -30 34477 a +SDict begin 18.2 H.A end + -30 +34477 a -30 34477 a +SDict begin [ /View [/XYZ H.V] /Dest (2149) cvn H.B /DEST pdfmark end + -30 34477 a 1679 x FU(Y)-170 b(ou)406 +b(will)g(most)g(lik)-15 b(ely)405 b(wish)i(to)f(edit)g(your)23961 +36156 y +SDict begin H.S end + 23961 36156 a 23961 36156 a +SDict begin 18.2 H.A end + 23961 36156 a 23961 +36156 a +SDict begin [ /View [/XYZ H.V] /Dest (2150) cvn H.B /DEST pdfmark end + 23961 36156 a FQ(smb.conf)401 b FU(\002le)406 +b(to)h(re\003ect)f(the)h(netw)-15 b(ork)406 b(settings)f(in)-30 +38170 y(your)387 b(LAN.)h(I)f(w)-15 b(ould)387 b(suggest)f(modifying)g +(the)i(items)e(listed)h(belo)-39 b(w:)-30 40056 y +SDict begin H.S end + -30 +40056 a -30 40056 a +SDict begin 14.56 H.A end + -30 40056 a -30 40056 a +SDict begin [ /View [/XYZ H.V] /Dest (2151) cvn H.B /DEST pdfmark end + -30 40056 +a 1276 x FP([global])-30 42944 y(#)744 b(workgroup)f(=)g +(NT-Domain-Name)g(or)g(Workgroup-Name,)f(eg:)i(LINUX2)-30 +44555 y(workgroup)f(=)h(MYGROUP)-30 46300 y +SDict begin H.S end + -30 46300 +a -30 46300 a +SDict begin 18.2 H.A end + -30 46300 a -30 46300 a +SDict begin [ /View [/XYZ H.V] /Dest (2152) cvn H.B /DEST pdfmark end + -30 46300 a 1820 +x FU(Change)418 b(the)g(w)-15 b(orkgroup)418 b(name)g(to)g(re\003ect)g +(the)h(w)-15 b(orkgroup)417 b(or)h(domain)g(name)g(that)g(you)h(are)-30 +50134 y(using)387 b(locally)-101 b(.)-30 52020 y +SDict begin H.S end + -30 +52020 a -30 52020 a +SDict begin 14.56 H.A end + -30 52020 a -30 52020 a +SDict begin [ /View [/XYZ H.V] /Dest (2153) cvn H.B /DEST pdfmark end + -30 52020 +a 1276 x FP(#)744 b(server)f(string)g(is)h(the)f(equivalent)g(of)h(the) +f(NT)h(Description)e(field)-30 54908 y(server)h(string)g(=)h(Samba)f +(Server)-30 56652 y +SDict begin H.S end + -30 56652 a -30 56652 a +SDict begin 18.2 H.A end + -30 56652 +a -30 56652 a +SDict begin [ /View [/XYZ H.V] /Dest (2154) cvn H.B /DEST pdfmark end + -30 56652 a 1820 x FU(This)365 b(will)g(be)g(the)h(name)f +(of)g(your)g(Slackw)-15 b(are)365 b(computer)g(displayed)f(in)h(the)h +(Netw)-15 b(ork)364 b(Neigh-)-30 60487 y(borhood)387 +b(\(or)g(My)g(Netw)-15 b(ork)387 b(Places\))g(folder)-85 +b(.)-30 62372 y +SDict begin H.S end + -30 62372 a -30 62372 a +SDict begin 14.56 H.A end + -30 62372 a -30 +62372 a +SDict begin [ /View [/XYZ H.V] /Dest (2155) cvn H.B /DEST pdfmark end + -30 62372 a 1276 x FP(#)744 b(Security)f(mode.)g(Most)g(people) +h(will)f(want)g(user)h(level)f(security.)g(See)-30 65260 +y(#)h(security_level.txt)e(for)h(details.)g(NOTE:)g(To)h(get)f(the)h +(behaviour)f(of)-30 66872 y(#)h(Samba-1.9.18,)e(you'll)h(need)h(to)f +(use)h("security)f(=)g(share".)p Black 50226 73792 a +FR(71)p Black eop end +%%Page: 72 94 +TeXDict begin 72 93 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.72) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 +b(ation)p Black -30 3611 a FP(security)743 b(=)h(user)-30 +7176 y FU(Y)-170 b(ou')-15 b(ll)577 b(almost)g(certainly)g(wish)h(to)f +(implement)g(user)h(le)-39 b(v)-23 b(el)578 b(security)f(on)h(your)g +(Slackw)-15 b(are)-30 9190 y(system.)-30 11075 y +SDict begin H.S end + -30 +11075 a -30 11075 a +SDict begin 14.56 H.A end + -30 11075 a -30 11075 a +SDict begin [ /View [/XYZ H.V] /Dest (2157) cvn H.B /DEST pdfmark end + -30 11075 +a 1277 x FP(#)744 b(You)f(may)h(wish)f(to)h(use)f(password)g +(encryption.)g(Please)g(read)-30 13963 y(#)h(ENCRYPTION.txt,)e +(Win95.txt)h(and)g(WinNT.txt)g(in)h(the)f(Samba)-30 15575 +y(#)h(documentation.)-30 17187 y(#)g(Do)f(not)h(enable)f(this)h(option) +f(unless)g(you)g(have)h(read)f(those)g(documents)-30 +18799 y(encrypt)g(passwords)g(=)h(yes)-30 18994 y +SDict begin H.S end + -30 +18994 a -30 18994 a +SDict begin 18.2 H.A end + -30 18994 a -30 18994 a +SDict begin [ /View [/XYZ H.V] /Dest (2158) cvn H.B /DEST pdfmark end + -30 18994 +a -30 18994 a +SDict begin H.S end + -30 18994 a -30 18994 a +SDict begin 18.2 H.A end + -30 18994 a -30 +18994 a +SDict begin [ /View [/XYZ H.V] /Dest (2160) cvn H.B /DEST pdfmark end + -30 18994 a -30 18994 a +SDict begin H.S end + -30 18994 a -30 18994 +a +SDict begin 18.2 H.A end + -30 18994 a -30 18994 a +SDict begin [ /View [/XYZ H.V] /Dest (2162) cvn H.B /DEST pdfmark end + -30 18994 a -30 20543 a +SDict begin H.S end + -30 +20543 a -30 20543 a +SDict begin 18.2 H.A end + -30 20543 a -30 20543 a +SDict begin [ /View [/XYZ H.V] /Dest (2164) cvn H.B /DEST pdfmark end + -30 20543 +a 1820 x FU(If)405 b(encrypt)f(passw)-15 b(ords)403 b(is)h(not)g +(enabled,)h(you)f(will)g(not)g(be)g(able)g(to)g(use)h(Samba)f(with)f +(NT4.0,)-30 24378 y(W)-62 b(in2k,)496 b(W)-62 b(inXP)-172 +b(,)496 b(and)g(W)-62 b(in2003.)495 b(Earlier)h(W)-62 +b(indo)-39 b(ws)495 b(operating)h(systems)f(did)g(not)h(require)-30 +26392 y(encryption)387 b(to)g(share)g(\002les.)-30 27503 +y +SDict begin H.S end + -30 27503 a -30 27503 a +SDict begin 18.2 H.A end + -30 27503 a -30 27503 a +SDict begin [ /View [/XYZ H.V] /Dest (2165) cvn H.B /DEST pdfmark end + -30 +27503 a 1679 x FU(SMB)588 b(is)h(an)h(authenticated)e(protocol,)h +(meaning)g(you)g(must)f(supply)h(a)g(correct)g(username)-30 +31197 y(and)413 b(passw)-15 b(ord)413 b(in)g(order)h(to)f(use)g(this)g +(service.)h(W)-124 b(e)413 b(tell)h(the)f(samba)g(serv)-23 +b(er)413 b(what)g(usernames)-30 33211 y(and)363 b(passw)-15 +b(ords)362 b(are)h(v)-39 b(alid)363 b(with)f(the)20429 +33211 y +SDict begin H.S end + 20429 33211 a 20429 33211 a +SDict begin 18.2 H.A end + 20429 33211 a 20429 +33211 a +SDict begin [ /View [/XYZ H.V] /Dest (2166) cvn H.B /DEST pdfmark end + 20429 33211 a FP(smbpasswd)g FU(command.)34349 +33211 y +SDict begin H.S end + 34349 33211 a 34349 33211 a +SDict begin 18.2 H.A end + 34349 33211 a 34349 +33211 a +SDict begin [ /View [/XYZ H.V] /Dest (2167) cvn H.B /DEST pdfmark end + 34349 33211 a FP(smbpasswd)g FU(tak)-15 b(es)362 +b(a)h(couple)g(of)-30 35226 y(common)308 b(switches)h(to)g(tell)f(it)h +(to)g(either)g(add)g(traditional)f(users,)h(or)g(add)g(machine)g(users) +g(\(SMB)-30 37241 y(requires)378 b(that)g(you)g(add)g(the)g(computers') +f(NETBIOS)h(names)f(as)i(machine)e(users,)i(restricting)-30 +39255 y(what)387 b(computers)g(one)g(can)h(authenticate)e(from\).)-30 +41140 y +SDict begin H.S end + -30 41140 a -30 41140 a +SDict begin 14.56 H.A end + -30 41140 a -30 41140 +a +SDict begin [ /View [/XYZ H.V] /Dest (2168) cvn H.B /DEST pdfmark end + -30 41140 a 1277 x FP(Adding)743 b(a)h(user)f(to)h(the)15592 +42417 y +SDict begin H.S end + 15592 42417 a 15592 42417 a +SDict begin 14.56 H.A end + 15592 42417 a 15592 +42417 a +SDict begin [ /View [/XYZ H.V] /Dest (2169) cvn H.B /DEST pdfmark end + 15592 42417 a Fm(/etc/samba)s(/)s(p)r(r)s(i)s(v)s(a)s(t)s(e)s +(/)s(s)s(m)s(b)s(p)r(a)s(s)s(s)s(w)s(d)773 b FP(file.)-30 +42638 y +SDict begin H.S end + -30 42638 a -30 42638 a +SDict begin 14.56 H.A end + -30 42638 a -30 42638 +a +SDict begin [ /View [/XYZ H.V] /Dest (2170) cvn H.B /DEST pdfmark end + -30 42638 a 1390 x FJ(#)1309 44028 y +SDict begin H.S end + 1309 44028 a 1309 +44028 a +SDict begin 14.56 H.A end + 1309 44028 a 1309 44028 a +SDict begin [ /View [/XYZ H.V] /Dest (2171) cvn H.B /DEST pdfmark end + 1309 44028 a FH(smbpasswd)743 +b(-a)g(user)-30 45640 y FP(Adding)g(a)h(machine)f(name)g(to)h(the)g +(/etc/samba/private/smbpasswd)c(file.)-30 45835 y +SDict begin H.S end + -30 +45835 a -30 45835 a +SDict begin 14.56 H.A end + -30 45835 a -30 45835 a +SDict begin [ /View [/XYZ H.V] /Dest (2172) cvn H.B /DEST pdfmark end + -30 45835 +a 1417 x FJ(#)1309 47252 y +SDict begin H.S end + 1309 47252 a 1309 47252 a +SDict begin 14.56 H.A end + +1309 47252 a 1309 47252 a +SDict begin [ /View [/XYZ H.V] /Dest (2173) cvn H.B /DEST pdfmark end + 1309 47252 a FH(smbpasswd)j(-a)g(-m)h +(machine)-30 48970 y +SDict begin H.S end + -30 48970 a -30 48970 a +SDict begin 18.2 H.A end + -30 48970 +a -30 48970 a +SDict begin [ /View [/XYZ H.V] /Dest (2174) cvn H.B /DEST pdfmark end + -30 48970 a 1846 x FU(It')-85 b(s)555 b(important)e(to)i +(note)g(that)f(a)h(gi)-39 b(v)-23 b(en)554 b(username)h(or)g(machine)f +(name)h(must)f(already)h(e)-23 b(xist)-30 52831 y(in)410 +b(the)3890 52831 y +SDict begin H.S end + 3890 52831 a 3890 52831 a +SDict begin 18.2 H.A end + 3890 52831 +a 3890 52831 a +SDict begin [ /View [/XYZ H.V] /Dest (2175) cvn H.B /DEST pdfmark end + 3890 52831 a FQ(/etc/passwd)404 b FU(\002le.)410 +b(Y)-170 b(ou)410 b(can)g(accomplish)g(this)f(simply)h(with)g(the)39659 +52831 y +SDict begin H.S end + 39659 52831 a 39659 52831 a +SDict begin 18.2 H.A end + 39659 52831 a 39659 +52831 a +SDict begin [ /View [/XYZ H.V] /Dest (2176) cvn H.B /DEST pdfmark end + 39659 52831 a FP(adduser)f FU(command.)-30 54846 +y(Note)469 b(that)g(when)g(using)g(the)16263 54846 y +SDict begin H.S end + +16263 54846 a 16263 54846 a +SDict begin 18.2 H.A end + 16263 54846 a 16263 54846 +a +SDict begin [ /View [/XYZ H.V] /Dest (2177) cvn H.B /DEST pdfmark end + 16263 54846 a FP(adduser)f FU(command)h(to)g(add)g(a)g(machine)g +(name)g(one)g(must)g(ap-)-30 56860 y(pend)552 b(a)g(dollar)f(sign)g(\() +12593 56860 y +SDict begin H.S end + 12593 56860 a 12593 56860 a +SDict begin 18.2 H.A end + 12593 56860 +a 12593 56860 a +SDict begin [ /View [/XYZ H.V] /Dest (2178) cvn H.B /DEST pdfmark end + 12593 56860 a FU(\223)13281 56860 y +SDict begin H.S end + 13281 +56860 a 13281 56860 a +SDict begin 18.2 H.A end + 13281 56860 a 13281 56860 a +SDict begin [ /View [/XYZ H.V] /Dest (2179) cvn H.B /DEST pdfmark end + 13281 +56860 a FP($)p FU(\224\))h(to)g(the)g(machine)f(name.)h(This)f(should) +38076 56860 y +SDict begin H.S end + 38076 56860 a 38076 56860 a +SDict begin 18.2 H.A end + 38076 56860 +a 38076 56860 a +SDict begin [ /View [/XYZ H.V] /Dest (2180) cvn H.B /DEST pdfmark end + 38076 56860 a FR(not)579 b FU(ho)-39 +b(we)g(v)-23 b(er)-62 b(,)552 b(be)g(done)-30 58875 y(with)3220 +58875 y +SDict begin H.S end + 3220 58875 a 3220 58875 a +SDict begin 18.2 H.A end + 3220 58875 a 3220 58875 +a +SDict begin [ /View [/XYZ H.V] /Dest (2181) cvn H.B /DEST pdfmark end + 3220 58875 a FP(smbpasswd)p FU(.)10797 58875 y +SDict begin H.S end + 10797 +58875 a 10797 58875 a +SDict begin 18.2 H.A end + 10797 58875 a 10797 58875 a +SDict begin [ /View [/XYZ H.V] /Dest (2182) cvn H.B /DEST pdfmark end + 10797 +58875 a FP(smbpasswd)493 b FU(appends)h(the)g(dollar)g(sign)g(on)g(its) +g(o)-39 b(wn.)495 b(F)-23 b(ailing)493 b(to)h(mangle)-30 +60890 y(the)538 b(machine)g(name)f(this)h(w)-15 b(ay)537 +b(with)21261 60890 y +SDict begin H.S end + 21261 60890 a 21261 60890 a +SDict begin 18.2 H.A end + 21261 +60890 a 21261 60890 a +SDict begin [ /View [/XYZ H.V] /Dest (2183) cvn H.B /DEST pdfmark end + 21261 60890 a FP(adduser)g FU(will)g(result)h(in) +g(an)g(error)g(when)g(adding)f(the)-30 62904 y(machine)387 +b(name)g(to)g(samba.)-30 64470 y +SDict begin H.S end + -30 64470 a -30 64470 +a +SDict begin 14.56 H.A end + -30 64470 a -30 64470 a +SDict begin [ /View [/XYZ H.V] /Dest (2184) cvn H.B /DEST pdfmark end + -30 64470 a -30 64470 a +SDict begin H.S end + -30 +64470 a -30 64470 a +SDict begin 14.56 H.A end + -30 64470 a -30 64470 a +SDict begin [ /View [/XYZ H.V] /Dest (2185) cvn H.B /DEST pdfmark end + -30 64470 +a 1596 x FJ(#)1309 66066 y +SDict begin H.S end + 1309 66066 a 1309 66066 a +SDict begin 14.56 H.A end + +1309 66066 a 1309 66066 a +SDict begin [ /View [/XYZ H.V] /Dest (2186) cvn H.B /DEST pdfmark end + 1309 66066 a FH(adduser)743 +b(machine$)-30 67784 y +SDict begin H.S end + -30 67784 a -30 67784 a +SDict begin 18.2 H.A end + -30 67784 +a -30 67784 a +SDict begin [ /View [/XYZ H.V] /Dest (NETWORK-CONFIGURATION-NFS-NFS) +cvn H.B /DEST pdfmark end + -30 67784 a Black 6008 x FR(72)p Black +eop end +%%Page: 73 95 +TeXDict begin 73 94 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.73) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 30833 -1636 a FR(Chapter)386 b(5)i(Network)e(Con\002gur) +-23 b(ation)p Black -30 3861 a FG(Netw)-37 b(ork)517 +b(File)g(System)h(\(NFS\))-30 4246 y +SDict begin H.S end + -30 4246 a -30 4246 +a +SDict begin 18.2 H.A end + -30 4246 a -30 4246 a +SDict begin [ /View [/XYZ H.V] /Dest (2189) cvn H.B /DEST pdfmark end + -30 4246 a -30 4246 a +SDict begin H.S end + -30 4246 +a -30 4246 a +SDict begin 18.2 H.A end + -30 4246 a -30 4246 a +SDict begin [ /View [/XYZ H.V] /Dest (2191) cvn H.B /DEST pdfmark end + -30 4246 a -30 4246 +a +SDict begin H.S end + -30 4246 a -30 4246 a +SDict begin 18.2 H.A end + -30 4246 a -30 4246 a +SDict begin [ /View [/XYZ H.V] /Dest (2193) cvn H.B /DEST pdfmark end + -30 4246 +a -30 5176 a +SDict begin H.S end + -30 5176 a -30 5176 a +SDict begin 18.2 H.A end + -30 5176 a -30 5176 +a +SDict begin [ /View [/XYZ H.V] /Dest (2195) cvn H.B /DEST pdfmark end + -30 5176 a 1629 x FU(NFS)490 b(\(or)h(Netw)-15 b(ork)490 +b(File)g(System\))g(w)-15 b(as)490 b(originally)f(written)h(by)h(Sun)f +(for)h(their)f(Solaris)g(im-)-30 8820 y(plementation)530 +b(of)i(Unix.)f(While)g(it)h(is)f(signi\002cantly)f(easier)h(to)g(get)h +(up)f(and)g(running)g(when)-30 10835 y(compared)356 b(to)f(SMB,)h(it)f +(is)h(also)f(signi\002cantly)g(less)g(secure.)i(The)f(primary)f +(insecurity)g(in)h(NFS)-30 12849 y(is)467 b(that)g(it)g(is)f(easy)h(to) +g(spoof)g(user)g(and)g(group)g(id')-85 b(s)466 b(from)h(one)g(machine)g +(to)g(another)-85 b(.)467 b(NFS)f(is)-30 14864 y(an)415 +b(unauthenticated)f(protocol.)h(Future)f(v)-23 b(ersions)414 +b(of)h(the)g(NFS)f(protocol)g(are)i(being)e(de)-39 b(vised)-30 +16879 y(that)387 b(enhance)g(security)-101 b(,)388 b(b)-31 +b(ut)387 b(these)g(are)h(not)f(common)f(at)i(the)f(time)g(of)g(this)g +(writing.)-30 17214 y +SDict begin H.S end + -30 17214 a -30 17214 a +SDict begin 18.2 H.A end + -30 17214 +a -30 17214 a +SDict begin [ /View [/XYZ H.V] /Dest (2196) cvn H.B /DEST pdfmark end + -30 17214 a -30 17989 a +SDict begin H.S end + -30 17989 a -30 +17989 a +SDict begin 18.2 H.A end + -30 17989 a -30 17989 a +SDict begin [ /View [/XYZ H.V] /Dest (2199) cvn H.B /DEST pdfmark end + -30 17989 a 1679 x FU(NFS)478 +b(con\002guration)f(is)h(go)-23 b(v)g(erned)478 b(by)g(the)24145 +19668 y +SDict begin H.S end + 24145 19668 a 24145 19668 a +SDict begin 18.2 H.A end + 24145 19668 a 24145 +19668 a +SDict begin [ /View [/XYZ H.V] /Dest (2200) cvn H.B /DEST pdfmark end + 24145 19668 a FQ(/etc/exports)471 b FU(\002le.)478 +b(When)g(you)g(load)h(the)f(def)-15 b(ault)-30 21683 +y +SDict begin H.S end + -30 21683 a -30 21683 a +SDict begin 18.2 H.A end + -30 21683 a -30 21683 a +SDict begin [ /View [/XYZ H.V] /Dest (2201) cvn H.B /DEST pdfmark end + -30 +21683 a FQ(/etc/exports)480 b FU(\002le)488 b(into)f(an)h(editor)-62 +b(,)488 b(you')-15 b(ll)487 b(see)h(a)g(blank)g(\002le)g(with)f(a)h(tw) +-15 b(o)487 b(line)h(comment)f(on)-30 23698 y(top.)503 +b(W)-124 b(e')-15 b(ll)501 b(need)i(to)f(add)g(a)h(line)f(to)g(the)g(e) +-23 b(xports)502 b(\002le)g(for)g(each)h(directory)f(that)g(we)g(wish)g +(to)-30 25712 y(e)-23 b(xport,)471 b(with)g(a)h(listing)e(of)h(client)g +(w)-15 b(orkstations)470 b(that)h(will)g(be)g(allo)-39 +b(wed)471 b(to)g(access)h(that)f(\002le.)-30 27727 y(F)-23 +b(or)304 b(instance,)g(if)g(we)g(wished)g(to)g(e)-23 +b(xport)303 b(directory)27880 27727 y +SDict begin H.S end + 27880 27727 a 27880 +27727 a +SDict begin 18.2 H.A end + 27880 27727 a 27880 27727 a +SDict begin [ /View [/XYZ H.V] /Dest (2202) cvn H.B /DEST pdfmark end + 27880 27727 a FQ(/home/foo)c +FU(to)304 b(w)-15 b(orkstation)302 b(Bar)-62 b(,)305 +b(we)f(w)-15 b(ould)-30 29742 y(simply)386 b(add)i(the)f(line:)-30 +31627 y +SDict begin H.S end + -30 31627 a -30 31627 a +SDict begin 14.56 H.A end + -30 31627 a -30 31627 +a +SDict begin [ /View [/XYZ H.V] /Dest (2203) cvn H.B /DEST pdfmark end + -30 31627 a 1276 x FP(/home/foo)743 b(Bar\(rw\))-30 +34598 y +SDict begin H.S end + -30 34598 a -30 34598 a +SDict begin 18.2 H.A end + -30 34598 a -30 34598 +a +SDict begin [ /View [/XYZ H.V] /Dest (2204) cvn H.B /DEST pdfmark end + -30 34598 a 1869 x FU(to)323 b(our)3889 36467 y +SDict begin H.S end + 3889 +36467 a 3889 36467 a +SDict begin 18.2 H.A end + 3889 36467 a 3889 36467 a +SDict begin [ /View [/XYZ H.V] /Dest (2205) cvn H.B /DEST pdfmark end + 3889 36467 +a FQ(/etc/exports)p FU(.)316 b(Belo)-39 b(w)-101 b(,)324 +b(you')-15 b(ll)323 b(\002nd)g(the)g(e)-23 b(xample)323 +b(from)g(the)h(man)f(page)g(for)h(the)47391 36467 y +SDict begin H.S end + 47391 +36467 a 47391 36467 a +SDict begin 18.2 H.A end + 47391 36467 a 47391 36467 a +SDict begin [ /View [/XYZ H.V] /Dest (2206) cvn H.B /DEST pdfmark end + 47391 +36467 a FQ(exports)-30 38482 y FU(\002le:)-30 40047 y +SDict begin H.S end + +-30 40047 a -30 40047 a +SDict begin 14.56 H.A end + -30 40047 a -30 40047 a +SDict begin [ /View [/XYZ H.V] /Dest (2207) cvn H.B /DEST pdfmark end + -30 40047 +a 1597 x FP(#)744 b(sample)f(/etc/exports)f(file)-30 +43255 y(/)11158 b(master\(rw\))743 b(trusty\(rw,no_root_squash\))-30 +44867 y(/projects)5206 b(proj*.local.domain\(rw\))-30 +46479 y(/usr)8926 b(*.local.domain\(ro\))742 b(@trusted\(rw\))-30 +48090 y(/home/joe)5206 b +(pc001\(rw,all_squash,anonuid=150,anongid=100\))-30 49702 +y(/pub)8926 b(\(ro,insecure,all_squash\))-30 51447 y +SDict begin H.S end + +-30 51447 a -30 51447 a +SDict begin 18.2 H.A end + -30 51447 a -30 51447 a +SDict begin [ /View [/XYZ H.V] /Dest (2208) cvn H.B /DEST pdfmark end + -30 51447 +a 1820 x FU(As)453 b(you)f(can)h(see,)g(there)g(are)g(v)-39 +b(arious)453 b(options)e(a)-31 b(v)-39 b(ailable,)453 +b(b)-31 b(ut)453 b(most)f(should)g(be)h(f)-15 b(airly)452 +b(clear)-30 55281 y(from)387 b(this)g(e)-23 b(xample.)-30 +56392 y +SDict begin H.S end + -30 56392 a -30 56392 a +SDict begin 18.2 H.A end + -30 56392 a -30 56392 +a +SDict begin [ /View [/XYZ H.V] /Dest (2209) cvn H.B /DEST pdfmark end + -30 56392 a 1679 x FU(NFS)552 b(w)-15 b(orks)552 b(under)g(the)h +(assumption)e(that)h(a)h(gi)-39 b(v)-23 b(en)552 b(user)h(on)f(one)h +(machine)f(in)g(a)h(netw)-15 b(ork)-30 60086 y(has)405 +b(the)f(same)h(user)f(ID)h(on)g(all)f(machines)g(across)h(the)f(netw) +-15 b(ork.)404 b(When)h(an)g(attempt)f(is)g(made)-30 +62100 y(to)571 b(read)f(or)h(write)g(from)f(a)h(NFS)f(client)g(to)g(an) +h(NFS)f(serv)-23 b(er)-62 b(,)571 b(a)f(UID)h(is)f(passed)h(as)f(part)h +(of)-30 64115 y(the)618 b(read/write)g(request.)h(This)e(UID)h(is)g +(treated)h(the)f(same)g(as)g(if)g(the)g(read/write)g(request)-30 +66130 y(originated)490 b(on)h(the)g(local)g(machine.)g(As)f(you)h(can)g +(see,)g(if)g(one)g(could)g(arbitrarily)f(specify)h(a)-30 +68144 y(gi)-39 b(v)-23 b(en)531 b(UID)g(when)g(accessing)g(resources)g +(on)g(a)g(remote)g(system,)g(Bad)g(Things)f(\(tm\))h(could)p +Black 50226 73792 a FR(73)p Black eop end +%%Page: 74 96 +TeXDict begin 74 95 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.74) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(5)g(Network)f(Con\002gur)-23 +b(ation)p Black -30 3611 a FU(and)471 b(w)-15 b(ould)469 +b(happen.)i(As)g(a)f(partial)h(hedge)f(ag)-8 b(ainst)471 +b(this,)f(each)h(directory)f(is)h(mounted)e(with)-30 +5626 y(the)2457 5626 y +SDict begin H.S end + 2457 5626 a 2457 5626 a +SDict begin 18.2 H.A end + 2457 5626 +a 2457 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (2210) cvn H.B /DEST pdfmark end + 2457 5626 a FP(root_squash)592 b FU(option.)h(This)g +(maps)g(the)g(UID)g(for)h(an)-23 b(y)593 b(user)g(claiming)g(to)g(be)g +(root)g(to)-30 7640 y(a)522 b(dif)-39 b(ferent)521 b(UID,)h(thus)e(pre) +-39 b(v)-23 b(enting)521 b(root)g(access)g(to)g(the)g(\002les)g(or)g +(folders)g(in)g(the)h(e)-23 b(xported)-30 9655 y(directory)-101 +b(.)6372 9655 y +SDict begin H.S end + 6372 9655 a 6372 9655 a +SDict begin 18.2 H.A end + 6372 9655 a 6372 +9655 a +SDict begin [ /View [/XYZ H.V] /Dest (2211) cvn H.B /DEST pdfmark end + 6372 9655 a FP(root_squash)518 b FU(seems)i(to)g(be)g(enabled)g +(by)g(def)-15 b(ault)519 b(as)h(a)g(security)g(measure,)g(b)-31 +b(ut)-30 11670 y(the)387 b(authors)g(recommend)g(specifying)f(it)i(an) +-23 b(yw)-15 b(ay)386 b(in)h(your)32987 11670 y +SDict begin H.S end + 32987 +11670 a 32987 11670 a +SDict begin 18.2 H.A end + 32987 11670 a 32987 11670 a +SDict begin [ /View [/XYZ H.V] /Dest (2212) cvn H.B /DEST pdfmark end + 32987 +11670 a FQ(/etc/exports)380 b FU(\002le.)-30 12780 y +SDict begin H.S end + +-30 12780 a -30 12780 a +SDict begin 18.2 H.A end + -30 12780 a -30 12780 a +SDict begin [ /View [/XYZ H.V] /Dest (2213) cvn H.B /DEST pdfmark end + -30 12780 +a 1679 x FU(Y)-170 b(ou)543 b(can)g(also)g(e)-23 b(xport)543 +b(a)g(directory)g(directly)g(from)g(the)g(command)g(line)g(on)g(the)g +(serv)-23 b(er)543 b(by)-30 16474 y(using)387 b(the)5997 +16474 y +SDict begin H.S end + 5997 16474 a 5997 16474 a +SDict begin 18.2 H.A end + 5997 16474 a 5997 16474 +a +SDict begin [ /View [/XYZ H.V] /Dest (2214) cvn H.B /DEST pdfmark end + 5997 16474 a FP(exportfs)f FU(command)h(as)g(follo)-39 +b(ws:)-30 18359 y +SDict begin H.S end + -30 18359 a -30 18359 a +SDict begin 14.56 H.A end + -30 18359 a +-30 18359 a +SDict begin [ /View [/XYZ H.V] /Dest (2215) cvn H.B /DEST pdfmark end + -30 18359 a -30 18359 a +SDict begin H.S end + -30 18359 a -30 18359 +a +SDict begin 14.56 H.A end + -30 18359 a -30 18359 a +SDict begin [ /View [/XYZ H.V] /Dest (2216) cvn H.B /DEST pdfmark end + -30 18359 a 1276 x FJ(#)1309 +19635 y +SDict begin H.S end + 1309 19635 a 1309 19635 a +SDict begin 14.56 H.A end + 1309 19635 a 1309 19635 +a +SDict begin [ /View [/XYZ H.V] /Dest (2217) cvn H.B /DEST pdfmark end + 1309 19635 a FH(exportfs)743 b(-o)h(rw,no_root_squash)d +(Bar:/home/foo)-30 21353 y +SDict begin H.S end + -30 21353 a -30 21353 a +SDict begin 18.2 H.A end + -30 +21353 a -30 21353 a +SDict begin [ /View [/XYZ H.V] /Dest (2218) cvn H.B /DEST pdfmark end + -30 21353 a 1847 x FU(This)k(line)h(e)-23 +b(xports)744 b(the)14466 23200 y +SDict begin H.S end + 14466 23200 a 14466 +23200 a +SDict begin 18.2 H.A end + 14466 23200 a 14466 23200 a +SDict begin [ /View [/XYZ H.V] /Dest (2219) cvn H.B /DEST pdfmark end + 14466 23200 a FQ(/home/foo)c +FU(directory)745 b(to)h(the)f(computer)38379 23200 y +SDict begin H.S end + +38379 23200 a 38379 23200 a +SDict begin 18.2 H.A end + 38379 23200 a 38379 23200 +a +SDict begin [ /View [/XYZ H.V] /Dest (2220) cvn H.B /DEST pdfmark end + 38379 23200 a FU(\223)39067 23200 y +SDict begin H.S end + 39067 23200 a 39067 +23200 a +SDict begin 18.2 H.A end + 39067 23200 a 39067 23200 a +SDict begin [ /View [/XYZ H.V] /Dest (2221) cvn H.B /DEST pdfmark end + 39067 23200 a 0 1 0 0 +TeXcolorcmyk 39067 23200 a +SDict begin H.S end + 39067 23200 a 0 1 0 0 TeXcolorcmyk +FQ(Bar)p 0 1 0 0 TeXcolorcmyk 40946 22459 a +SDict begin H.R end + 40946 22459 +a 40946 23200 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (Bar) >> /Subtype /Link H.B /ANN pdfmark end + 40946 23200 a Black FU(\224)h(and)g(grants)49897 +23200 y +SDict begin H.S end + 49897 23200 a 49897 23200 a +SDict begin 18.2 H.A end + 49897 23200 a 49897 +23200 a +SDict begin [ /View [/XYZ H.V] /Dest (2222) cvn H.B /DEST pdfmark end + 49897 23200 a 0 1 0 0 TeXcolorcmyk 49897 23200 +a +SDict begin H.S end + 49897 23200 a 0 1 0 0 TeXcolorcmyk FQ(Bar)p 0 1 0 0 +TeXcolorcmyk 51776 22459 a +SDict begin H.R end + 51776 22459 a 51776 23200 +a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (Bar) >> /Subtype /Link H.B /ANN pdfmark end + 51776 23200 a Black -30 25215 a FU(read/write)369 b(access.)i +(Additionally)-101 b(,)368 b(the)i(NFS)f(serv)-23 b(er)369 +b(will)g(not)h(in)-62 b(v)-31 b(ok)-15 b(e)39048 25215 +y +SDict begin H.S end + 39048 25215 a 39048 25215 a +SDict begin 18.2 H.A end + 39048 25215 a 39048 25215 +a +SDict begin [ /View [/XYZ H.V] /Dest (2223) cvn H.B /DEST pdfmark end + 39048 25215 a FP(root_squash)p FU(,)369 b(which)-30 +27229 y(means)f(an)-23 b(y)368 b(user)g(on)h(Bar)f(with)g(a)g(UID)h(of) +23318 27229 y +SDict begin H.S end + 23318 27229 a 23318 27229 a +SDict begin 18.2 H.A end + 23318 27229 +a 23318 27229 a +SDict begin [ /View [/XYZ H.V] /Dest (2224) cvn H.B /DEST pdfmark end + 23318 27229 a FU(\2230\224)f(\(root')-85 +b(s)368 b(UID\))g(will)g(ha)-31 b(v)-23 b(e)368 b(the)h(same)f(pri)-39 +b(vile)-23 b(ges)-30 29244 y(as)594 b(root)g(on)f(the)h(serv)-23 +b(er)-85 b(.)594 b(The)g(syntax)f(does)h(look)f(strange)h(\(usually)f +(when)h(a)g(directory)f(is)-30 31259 y(speci\002ed)672 +b(in)8030 31259 y +SDict begin H.S end + 8030 31259 a 8030 31259 a +SDict begin 18.2 H.A end + 8030 31259 +a 8030 31259 a +SDict begin [ /View [/XYZ H.V] /Dest (2225) cvn H.B /DEST pdfmark end + 8030 31259 a FP(computer:/directory/file)e +FU(syntax,)i(you)g(are)h(referring)g(to)f(a)g(\002le)h(in)f(a)-30 +33273 y(directory)387 b(on)g(a)h(gi)-39 b(v)-23 b(en)387 +b(computer\).)-30 34384 y +SDict begin H.S end + -30 34384 a -30 34384 a +SDict begin 18.2 H.A end + -30 +34384 a -30 34384 a +SDict begin [ /View [/XYZ H.V] /Dest (2226) cvn H.B /DEST pdfmark end + -30 34384 a 1679 x FU(Y)-170 b(ou')-15 +b(ll)386 b(\002nd)h(more)g(information)f(on)h(the)h(man)f(page)g(for)g +(the)h(e)-23 b(xports)386 b(\002le.)p Black -30 73792 +a FR(74)p Black eop end +%%Page: 75 97 +TeXDict begin 75 96 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.75) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM) cvn H.B /DEST +pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(6)-30 10743 y FO(X)1287 b(Con\002guration)p -30 18316 +51806 56 v -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 +a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (2229) cvn H.B /DEST pdfmark end + -30 18316 a -30 18316 a +SDict begin H.S end + -30 18316 a -30 +18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (2231) cvn H.B /DEST pdfmark end + -30 18316 a -30 19091 +a +SDict begin H.S end + -30 19091 a -30 19091 a +SDict begin 18.2 H.A end + -30 19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (2233) cvn H.B /DEST pdfmark end + -30 +19091 a 1051 x FU(Starting)389 b(with)h(Slackw)-15 b(are-10.0,)390 +b(the)g(X)g(W)-62 b(indo)-39 b(w)390 b(en)-62 b(vironment)389 +b(in)h(Slackw)-15 b(are)389 b(is)h(pro)-23 b(vided)-30 +22157 y(by)408 b(Xor)-28 b(g.)408 b(X)g(is)g(responsible)f(for)h(pro) +-23 b(viding)407 b(a)h(graphical)f(user)h(interf)-15 +b(ace.)408 b(It)g(is)g(independent)-30 24171 y(from)387 +b(the)g(operating)g(system,)g(unlik)-15 b(e)386 b(W)-62 +b(indo)-39 b(ws)387 b(or)h(the)f(MacOS.)-30 24507 y +SDict begin H.S end + -30 +24507 a -30 24507 a +SDict begin 18.2 H.A end + -30 24507 a -30 24507 a +SDict begin [ /View [/XYZ H.V] /Dest (2234) cvn H.B /DEST pdfmark end + -30 24507 +a -30 24507 a +SDict begin H.S end + -30 24507 a -30 24507 a +SDict begin 18.2 H.A end + -30 24507 a -30 +24507 a +SDict begin [ /View [/XYZ H.V] /Dest (2236) cvn H.B /DEST pdfmark end + -30 24507 a -30 25282 a +SDict begin H.S end + -30 25282 a -30 25282 +a +SDict begin 18.2 H.A end + -30 25282 a -30 25282 a +SDict begin [ /View [/XYZ H.V] /Dest (2239) cvn H.B /DEST pdfmark end + -30 25282 a 1679 x FU(The)549 +b(X)g(W)-62 b(indo)-39 b(w)549 b(System)g(is)g(implemented)f(through)g +(man)-23 b(y)549 b(programs)g(that)g(run)g(in)g(user)-31 +b(-)-30 28976 y(land.)384 b(The)h(tw)-15 b(o)383 b(main)h(components)f +(are)i(the)f(serv)-23 b(er)384 b(and)g(the)g(windo)-39 +b(w)384 b(manager)-85 b(.)384 b(The)g(serv)-23 b(er)-30 +30990 y(pro)g(vides)458 b(the)g(lo)-39 b(wle)g(v)-23 +b(el)458 b(functions)g(for)g(interacting)g(with)g(your)g(video)g(hardw) +-15 b(are,)459 b(thus)f(it)g(is)-30 33005 y(system)364 +b(speci\002c.)h(The)f(windo)-39 b(w)364 b(manager)h(sits)f(on)g(top)h +(of)f(the)h(serv)-23 b(er)364 b(and)h(pro)-23 b(vides)364 +b(the)g(user)-30 35020 y(interf)-15 b(ace.)420 b(The)g(adv)-39 +b(antage)420 b(to)g(this)f(is)h(you)g(can)g(ha)-31 b(v)-23 +b(e)420 b(man)-23 b(y)419 b(dif)-39 b(ferent)420 b(graphical)g(interf) +-15 b(aces)-30 37034 y(by)387 b(simply)g(changing)f(the)i(windo)-39 +b(w)387 b(manager)g(you)g(use.)-30 38145 y +SDict begin H.S end + -30 38145 +a -30 38145 a +SDict begin 18.2 H.A end + -30 38145 a -30 38145 a +SDict begin [ /View [/XYZ H.V] /Dest (2240) cvn H.B /DEST pdfmark end + -30 38145 a 1679 +x FU(Con\002guring)295 b(X)h(can)g(be)g(a)g(comple)-23 +b(x)295 b(task.)h(The)g(reason)g(for)g(this)f(is)h(the)g(v)-39 +b(ast)296 b(numbers)f(of)h(video)-30 41838 y(cards)529 +b(a)-31 b(v)-39 b(ailable)529 b(for)g(the)g(PC)g(architecture,)g(most)f +(of)h(which)g(use)g(dif)-39 b(ferent)529 b(programming)-30 +43853 y(interf)-15 b(aces.)322 b(Luckily)-101 b(,)321 +b(most)g(cards)h(today)f(support)g(basic)h(video)f(standards)g(kno)-39 +b(wn)321 b(as)h(VESA,)-30 45868 y(and)388 b(if)g(your)g(card)g(is)g +(among)f(them)h(you')-15 b(ll)387 b(be)h(able)g(to)f(start)h(X)g(using) +f(the)40812 45868 y +SDict begin H.S end + 40812 45868 a 40812 45868 a +SDict begin 18.2 H.A end + 40812 +45868 a 40812 45868 a +SDict begin [ /View [/XYZ H.V] /Dest (2241) cvn H.B /DEST pdfmark end + 40812 45868 a FP(startx)h FU(command)-30 +47882 y(right)f(out)g(of)g(the)h(box.)-30 48218 y +SDict begin H.S end + -30 +48218 a -30 48218 a +SDict begin 18.2 H.A end + -30 48218 a -30 48218 a +SDict begin [ /View [/XYZ H.V] /Dest (2242) cvn H.B /DEST pdfmark end + -30 48218 +a -30 48993 a +SDict begin H.S end + -30 48993 a -30 48993 a +SDict begin 18.2 H.A end + -30 48993 a -30 +48993 a +SDict begin [ /View [/XYZ H.V] /Dest (2244) cvn H.B /DEST pdfmark end + -30 48993 a 1679 x FU(If)477 b(this)e(doesn')-28 +b(t)476 b(w)-15 b(ork)476 b(with)g(your)g(card,)h(or)f(if)h(you')-77 +b(d)475 b(lik)-15 b(e)476 b(to)g(tak)-15 b(e)476 b(adv)-39 +b(antage)476 b(of)g(the)g(high-)-30 52687 y(performance)374 +b(features)g(of)g(your)g(video)f(card)i(such)e(as)h(hardw)-15 +b(are)374 b(acceleration)g(or)g(3-D)g(hard-)-30 54701 +y(w)-15 b(are)387 b(rendering,)h(then)f(you')-15 b(ll)386 +b(need)h(to)g(recon\002gure)g(X.)-30 55037 y +SDict begin H.S end + -30 55037 +a -30 55037 a +SDict begin 18.2 H.A end + -30 55037 a -30 55037 a +SDict begin [ /View [/XYZ H.V] /Dest (2245) cvn H.B /DEST pdfmark end + -30 55037 a -30 +55812 a +SDict begin H.S end + -30 55812 a -30 55812 a +SDict begin 18.2 H.A end + -30 55812 a -30 55812 +a +SDict begin [ /View [/XYZ H.V] /Dest (2248) cvn H.B /DEST pdfmark end + -30 55812 a 1679 x FU(T)-124 b(o)557 b(con\002gure)f(X,)h(you')-15 +b(ll)556 b(need)h(to)f(mak)-15 b(e)556 b(an)26005 57491 +y +SDict begin H.S end + 26005 57491 a 26005 57491 a +SDict begin 18.2 H.A end + 26005 57491 a 26005 57491 +a +SDict begin [ /View [/XYZ H.V] /Dest (2249) cvn H.B /DEST pdfmark end + 26005 57491 a FQ(/etc/X11/xorg.conf)545 b FU(\002le.)557 +b(This)f(\002le)h(contains)-30 59506 y(lots)443 b(of)h(details)f(about) +g(your)h(video)f(hardw)-15 b(are,)444 b(mouse,)g(and)f(monitor)-85 +b(.)443 b(It')-85 b(s)443 b(a)h(v)-23 b(ery)444 b(comple)-23 +b(x)-30 61520 y(con\002guration)468 b(\002le,)i(b)-31 +b(ut)469 b(fortunately)g(there)g(are)h(se)-39 b(v)-23 +b(eral)469 b(programs)g(to)h(help)f(create)g(one)h(for)-30 +63535 y(you.)388 b(W)-124 b(e')-15 b(ll)386 b(mention)h(a)g(fe)-39 +b(w)388 b(of)f(them)g(here.)-30 63870 y +SDict begin H.S end + -30 63870 a -30 +63870 a +SDict begin 18.2 H.A end + -30 63870 a -30 63870 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XORGCONFIG) cvn +H.B /DEST pdfmark end + -30 63870 a Black 50226 +73672 a FR(75)p Black eop end +%%Page: 76 98 +TeXDict begin 76 97 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.76) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (2274) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(6)g(X)g(Con\002gur)-23 b(ation)p Black -30 4011 a FL(6.1)620 +b Fq(xor)-33 b(gcon\002g)-30 5624 y +SDict begin H.S end + -30 5624 a -30 5624 +a +SDict begin 18.2 H.A end + -30 5624 a -30 5624 a +SDict begin [ /View [/XYZ H.V] /Dest (2253) cvn H.B /DEST pdfmark end + -30 5624 a 1518 x FU(This)327 +b(is)f(a)h(simple)f(menu)h(dri)-39 b(v)-23 b(en)326 b(frontend)h(that') +-85 b(s)326 b(similar)g(in)h(feel)g(to)g(the)f(Slackw)-15 +b(are)326 b(installer)-85 b(.)-30 9156 y(It)411 b(simply)f(tells)h(the) +g(X)g(serv)-23 b(er)411 b(to)f(tak)-15 b(e)411 b(a)g(look)g(at)g(the)g +(card,)h(and)f(then)f(set)h(up)g(the)g(best)g(initial)-30 +11171 y(con\002guration)563 b(\002le)g(it)g(can)h(mak)-15 +b(e)563 b(based)h(on)g(the)f(information)g(it)g(g)-8 +b(athers.)564 b(The)g(generated)-30 13186 y +SDict begin H.S end + -30 13186 +a -30 13186 a +SDict begin 18.2 H.A end + -30 13186 a -30 13186 a +SDict begin [ /View [/XYZ H.V] /Dest (2254) cvn H.B /DEST pdfmark end + -30 13186 a FQ +(/etc/X11/xorg.conf)382 b FU(\002le)392 b(should)g(be)h(a)g(good)g +(starting)f(point)g(for)h(most)f(systems)g(\(and)h(should)-30 +15200 y(w)-15 b(ork)387 b(without)f(modi\002cation\).)-30 +16253 y +SDict begin H.S end + -30 16253 a -30 16253 a +SDict begin 18.2 H.A end + -30 16253 a -30 16253 +a +SDict begin [ /View [/XYZ H.V] /Dest (2255) cvn H.B /DEST pdfmark end + -30 16253 a 1737 x FU(This)455 b(is)h(a)g(te)-23 b(xt-based)455 +b(X)h(con\002guration)e(program)i(that')-85 b(s)455 b(designed)g(for)h +(the)f(adv)-39 b(anced)456 b(sys-)-30 20005 y(tem)499 +b(administrator)-85 b(.)499 b(Here')-85 b(s)499 b(a)h(sample)f(w)-15 +b(alkthrough)498 b(using)34659 20005 y +SDict begin H.S end + 34659 20005 a +34659 20005 a +SDict begin 18.2 H.A end + 34659 20005 a 34659 20005 a +SDict begin [ /View [/XYZ H.V] /Dest (2256) cvn H.B /DEST pdfmark end + 34659 20005 +a FP(xorgconfig)p FU(.)h(First,)g(start)g(the)-30 22019 +y(program:)-30 23905 y +SDict begin H.S end + -30 23905 a -30 23905 a +SDict begin 14.56 H.A end + -30 23905 +a -30 23905 a +SDict begin [ /View [/XYZ H.V] /Dest (2257) cvn H.B /DEST pdfmark end + -30 23905 a -30 23905 a +SDict begin H.S end + -30 23905 a -30 +23905 a +SDict begin 14.56 H.A end + -30 23905 a -30 23905 a +SDict begin [ /View [/XYZ H.V] /Dest (2258) cvn H.B /DEST pdfmark end + -30 23905 a 1276 x FJ(#)1309 +25181 y +SDict begin H.S end + 1309 25181 a 1309 25181 a +SDict begin 14.56 H.A end + 1309 25181 a 1309 25181 +a +SDict begin [ /View [/XYZ H.V] /Dest (2259) cvn H.B /DEST pdfmark end + 1309 25181 a FH(xorgconfig)-30 26898 y +SDict begin H.S end + -30 26898 a +-30 26898 a +SDict begin 18.2 H.A end + -30 26898 a -30 26898 a +SDict begin [ /View [/XYZ H.V] /Dest (2260) cvn H.B /DEST pdfmark end + -30 26898 a 1847 +x FU(This)491 b(will)g(present)h(a)g(screenful)f(of)h(information)f +(about)31967 28745 y +SDict begin H.S end + 31967 28745 a 31967 28745 a +SDict begin 18.2 H.A end + 31967 +28745 a 31967 28745 a +SDict begin [ /View [/XYZ H.V] /Dest (2261) cvn H.B /DEST pdfmark end + 31967 28745 a FP(xorgconfig)p FU(.)g(T)-124 +b(o)492 b(continue,)f(press)-30 30760 y +SDict begin H.S end + -30 30760 a -30 +30760 a +SDict begin 18.2 H.A end + -30 30760 a -30 30760 a +SDict begin [ /View [/XYZ H.V] /Dest (2262) cvn H.B /DEST pdfmark end + -30 30760 a Fv(ENTER)p +FU(.)5635 30760 y +SDict begin H.S end + 5635 30760 a 5635 30760 a +SDict begin 18.2 H.A end + 5635 30760 +a 5635 30760 a +SDict begin [ /View [/XYZ H.V] /Dest (2263) cvn H.B /DEST pdfmark end + 5635 30760 a FP(xorgconfig)627 b FU(will)h(ask)h(you)f +(to)g(v)-23 b(erify)628 b(you)g(ha)-31 b(v)-23 b(e)628 +b(set)g(your)40802 30760 y +SDict begin H.S end + 40802 30760 a 40802 30760 +a +SDict begin 18.2 H.A end + 40802 30760 a 40802 30760 a +SDict begin [ /View [/XYZ H.V] /Dest (2264) cvn H.B /DEST pdfmark end + 40802 30760 a FP(PATH)g +FU(correctly)-101 b(.)629 b(It)-30 32775 y(should)387 +b(be)g(\002ne,)h(so)f(go)g(ahead)g(and)h(hit)21793 32775 +y +SDict begin H.S end + 21793 32775 a 21793 32775 a +SDict begin 18.2 H.A end + 21793 32775 a 21793 32775 +a +SDict begin [ /View [/XYZ H.V] /Dest (2265) cvn H.B /DEST pdfmark end + 21793 32775 a Fv(ENTER)p FU(.)-30 33110 y +SDict begin H.S end + -30 33110 +a -30 33110 a +SDict begin 18.2 H.A end + -30 33110 a -30 33110 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-1) cvn H.B /DEST +pdfmark end + -30 33110 a Black +40562 x FR(76)p Black eop end +%%Page: 77 99 +TeXDict begin 77 98 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.77) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 +b(ation)p Black -30 3611 a FX(Figur)-28 b(e)387 b(6-1.)h +FV(xorgcon\002g)e FX(Mouse)h(Con\002guration)-30 5477 +y +SDict begin H.S end + -30 5477 a -30 5477 a +SDict begin 18.2 H.A end + -30 5477 a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (2269) cvn H.B /DEST pdfmark end + -30 5477 +a -30 40807 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 40807 a @beginspecial 0 @llx 0 @lly +451 @urx 311 @ury 4510 @rwi @setspecial +%%BeginDocument: x-window-system/xorgconfig1.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 0 0 451 311 + +/Outterbox +{ newpath +0 0 moveto +450 0 rlineto +0 310 rlineto +-450 0 rlineto +closepath } def + + +/TitleFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +Outterbox +3 300 ContentFont (First specify a mouse protocol type. Choose one from the following list:)show + +3 280 ContentFont ( 1. Auto) show +3 265 ContentFont ( 2. SysMouse) show +3 250 ContentFont ( 3. MouseSystems) show +3 235 ContentFont ( 4. PS/2) show +3 220 ContentFont ( 5. Microsoft) show +3 205 ContentFont ( 6. Busmouse) show +3 190 ContentFont ( 7. IMPS/2) show +3 175 ContentFont ( 8. ExplorerPS/2) show +3 160 ContentFont ( 9. GlidePointPS/2) show +3 145 ContentFont (10. MouseManPlusPS/2) show +3 130 ContentFont (11. NetMousePS/2) show +3 115 ContentFont (12. NetScrollPS/2) show +3 100 ContentFont (13. ThinkingMousePS/2) show +3 85 ContentFont (14. AceCad) show + +3 60 ContentFont (The recommended protocol is Auto. If you have a very old mouse) show +3 45 ContentFont (or don't want OS support or auto detection, and you have a two-button) show +3 30 ContentFont (or three-button serial mouse, it is most likely of type Microsoft.) show + +3 3 ContentFont (Enter a protocol number:) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 40807 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 40807 a -30 40807 a +SDict begin H.S end + -30 +40807 a -30 40807 a +SDict begin 18.2 H.A end + -30 40807 a -30 40807 a +SDict begin [ /View [/XYZ H.V] /Dest (2272) cvn H.B /DEST pdfmark end + -30 40807 +a 3565 x FU(Select)587 b(your)f(mouse)h(from)g(the)g(menu)f(presented.) +h(If)g(you)g(don')-28 b(t)587 b(see)g(your)g(serial)g(mouse)-30 +46387 y(listed,)403 b(pick)g(the)h(Microsoft)e(protocol)h(--)h(it')-85 +b(s)403 b(the)g(most)g(common)f(and)h(will)g(probably)g(w)-15 +b(ork.)-30 48401 y(Ne)-23 b(xt)645 b FP(xorgconfig)f +FU(will)h(ask)g(you)g(about)g(using)28519 48401 y +SDict begin H.S end + 28519 +48401 a 28519 48401 a +SDict begin 18.2 H.A end + 28519 48401 a 28519 48401 a +SDict begin [ /View [/XYZ H.V] /Dest (2276) cvn H.B /DEST pdfmark end + 28519 +48401 a FP(ChordMiddle)f FU(and)40230 48401 y +SDict begin H.S end + 40230 48401 +a 40230 48401 a +SDict begin 18.2 H.A end + 40230 48401 a 40230 48401 a +SDict begin [ /View [/XYZ H.V] /Dest (2277) cvn H.B /DEST pdfmark end + 40230 48401 +a FP(Emulate3Buttons)p FU(.)-30 50416 y(Y)-170 b(ou')-15 +b(ll)512 b(see)h(these)g(options)f(described)h(in)g(detail)g(on)g(the)g +(screen.)h(Use)f(them)f(if)i(the)f(middle)-30 52431 y(b)-31 +b(utton)393 b(on)h(your)g(mouse)g(doesn')-28 b(t)393 +b(w)-15 b(ork)393 b(under)h(X,)h(or)f(if)g(your)g(mouse)f(only)h(has)g +(tw)-15 b(o)393 b(b)-31 b(uttons)-30 54445 y(\()486 54445 +y +SDict begin H.S end + 486 54445 a 486 54445 a +SDict begin 18.2 H.A end + 486 54445 a 486 54445 a +SDict begin [ /View [/XYZ H.V] /Dest (2278) cvn H.B /DEST pdfmark end + 486 +54445 a FP(Emulate3Buttons)625 b FU(lets)i(you)f(simulate)g(the)h +(middle)f(b)-31 b(utton)626 b(by)h(pressing)f(both)h(b)-31 +b(uttons)-30 56460 y(simultaneously\).)535 b(Then,)h(enter)g(the)f +(name)h(of)g(your)f(mouse)g(de)-39 b(vice.)537 b(The)f(def)-15 +b(ault)535 b(choice,)-30 58475 y +SDict begin H.S end + -30 58475 a -30 58475 +a +SDict begin 18.2 H.A end + -30 58475 a -30 58475 a +SDict begin [ /View [/XYZ H.V] /Dest (2279) cvn H.B /DEST pdfmark end + -30 58475 a FQ(/dev/mouse)p +FU(,)554 b(should)560 b(w)-15 b(ork)559 b(since)h(the)h(link)e(w)-15 +b(as)560 b(con\002gured)f(during)h(Slackw)-15 b(are)560 +b(setup.)g(If)-30 60489 y(you')-77 b(re)473 b(running)g(GPM)g(\(the)g +(Linux)g(mouse)g(serv)-23 b(er\))473 b(in)h(repeater)f(mode,)h(you)f +(can)h(set)f(your)-30 62504 y(mouse)646 b(type)g(to)9830 +62504 y +SDict begin H.S end + 9830 62504 a 9830 62504 a +SDict begin 18.2 H.A end + 9830 62504 a 9830 62504 +a +SDict begin [ /View [/XYZ H.V] /Dest (2280) cvn H.B /DEST pdfmark end + 9830 62504 a FQ(/dev/gpmdata)639 b FU(to)646 b(ha)-31 +b(v)-23 b(e)646 b(X)g(get)g(information)f(about)h(the)g(mouse)g +(through)-30 64519 y +SDict begin H.S end + -30 64519 a -30 64519 a +SDict begin 18.2 H.A end + -30 64519 +a -30 64519 a +SDict begin [ /View [/XYZ H.V] /Dest (2281) cvn H.B /DEST pdfmark end + -30 64519 a FP(gpm)p FU(.)513 b(In)h(some)f(cases)g +(\(with)g(b)-31 b(usmice)512 b(especially\))h(this)f(can)i(w)-15 +b(ork)512 b(better)-62 b(,)514 b(b)-31 b(ut)513 b(most)f(users)-30 +66533 y(shouldn')-28 b(t)387 b(do)g(this.)p Black 50169 +73792 a FR(77)p Black eop end +%%Page: 78 100 +TeXDict begin 78 99 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a Black +0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.78) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (2305) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(6)g(X)g(Con\002gur)-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 +2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2282) cvn H.B /DEST pdfmark end + -30 2504 a -30 +2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2283) cvn H.B /DEST pdfmark end + -30 +2504 a 1107 x FP(xorgconfig)458 b FU(will)g(ask)h(you)g(about)f +(enabling)h(special)f(k)-15 b(e)-23 b(y)459 b(bindings.)f(If)h(you)g +(need)g(this)f(say)-30 5626 y +SDict begin H.S end + -30 5626 a -30 5626 a +SDict begin 18.2 H.A end + -30 +5626 a -30 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (2284) cvn H.B /DEST pdfmark end + -30 5626 a FU(\223)658 5626 y +SDict begin H.S end + 658 5626 +a 658 5626 a +SDict begin 18.2 H.A end + 658 5626 a 658 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (2285) cvn H.B /DEST pdfmark end + 658 5626 a Fv(y)p +FU(\224.)388 b(Most)f(users)g(can)g(say)15188 5626 y +SDict begin H.S end + +15188 5626 a 15188 5626 a +SDict begin 18.2 H.A end + 15188 5626 a 15188 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (2286) cvn H.B /DEST pdfmark end + 15188 +5626 a FU(\223)15876 5626 y +SDict begin H.S end + 15876 5626 a 15876 5626 a +SDict begin 18.2 H.A end + +15876 5626 a 15876 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (2287) cvn H.B /DEST pdfmark end + 15876 5626 a Fv(n)p FU(\224)h(--)f(enter)h +(this)f(if)g(you')-77 b(re)387 b(not)g(sure.)-30 5961 +y +SDict begin H.S end + -30 5961 a -30 5961 a +SDict begin 18.2 H.A end + -30 5961 a -30 5961 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-2) cvn H.B /DEST +pdfmark end + -30 5961 +a 4004 x FX(Figur)-28 b(e)387 b(6-2.)h FV(xorgcon\002g)e +FX(Horizontal)g(Sync)-30 11831 y +SDict begin H.S end + -30 11831 a -30 11831 +a +SDict begin 18.2 H.A end + -30 11831 a -30 11831 a +SDict begin [ /View [/XYZ H.V] /Dest (2291) cvn H.B /DEST pdfmark end + -30 11831 a -30 47161 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 +47161 a @beginspecial 0 @llx 0 @lly 451 @urx 311 @ury +4510 @rwi @setspecial +%%BeginDocument: x-window-system/xorgconfig2.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 0 0 451 311 + +/Outterbox +{ newpath +0 0 moveto +450 0 rlineto +0 310 rlineto +-450 0 rlineto +closepath } def + + +/TitleFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +Outterbox +3 300 ContentFont (You must indicate the horizontal sync range of your monitor. You can either) show + +3 280 ContentFont (select one of the predefined ranges below that correspond to industry-) show +3 265 ContentFont (standard monitor types, or give a specific range.) show + +3 245 ContentFont (It is VERY IMPORTANT that you do not specify a monitor type with a horizontal) show +3 230 ContentFont (sync range that is beyond the capabilities of your monitor. If in doubt,) show +3 215 ContentFont (choose a conservative setting.) show + +3 195 ContentFont ( hsync in kHz; monitor type with characteristic modes) show +3 180 ContentFont ( 1 31.5; Standard VGA, 640x480 @ 60 Hz) show +3 165 ContentFont ( 2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz) show +3 150 ContentFont ( 3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600)) show +3 135 ContentFont ( 4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz) show +3 120 ContentFont ( 5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz) show +3 105 ContentFont ( 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz) show +3 90 ContentFont ( 7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz) show +3 75 ContentFont ( 8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz) show +3 60 ContentFont ( 9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz) show +3 45 ContentFont (10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz) show +3 30 ContentFont (11 Enter your own horizontal sync range) show + +3 3 ContentFont (Enter your choice (1-11):) show +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 47161 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 47161 a -30 48711 a +SDict begin H.S end + -30 +48711 a -30 48711 a +SDict begin 18.2 H.A end + -30 48711 a -30 48711 a +SDict begin [ /View [/XYZ H.V] /Dest (2294) cvn H.B /DEST pdfmark end + -30 48711 +a 2015 x FU(In)480 b(the)f(ne)-23 b(xt)479 b(section)h(you)f(enter)g +(the)h(sync)f(range)h(for)g(your)f(monitor)-85 b(.)479 +b(T)-124 b(o)480 b(start)f(con\002guring)-30 52740 y(your)513 +b(monitor)-62 b(,)513 b(press)12770 52740 y +SDict begin H.S end + 12770 52740 +a 12770 52740 a +SDict begin 18.2 H.A end + 12770 52740 a 12770 52740 a +SDict begin [ /View [/XYZ H.V] /Dest (2295) cvn H.B /DEST pdfmark end + 12770 52740 +a Fv(ENTER)p FU(.)g(Y)-170 b(ou)513 b(will)g(see)g(a)h(list)f(of)g +(monitor)g(types)g(--)g(choose)h(one)f(of)-30 54755 y(them.)497 +b(Be)g(careful)g(not)g(to)f(e)-23 b(xceed)497 b(the)g(speci\002cations) +f(of)h(your)g(monitor)-85 b(.)496 b(Doing)h(so)f(could)-30 +56770 y(damage)387 b(your)g(hardw)-15 b(are.)-30 57105 +y +SDict begin H.S end + -30 57105 a -30 57105 a +SDict begin 18.2 H.A end + -30 57105 a -30 57105 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-3) cvn H.B /DEST +pdfmark end + -30 +57105 a Black 16687 x FR(78)p Black eop end +%%Page: 79 101 +TeXDict begin 79 100 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.79) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (2313) cvn H.B /DEST pdfmark end + -30 -2687 a 35138 -1636 a FR(Chapter)386 +b(6)i(X)f(Con\002gur)-23 b(ation)p Black -30 3611 a FX(Figur)-28 +b(e)387 b(6-3.)h FV(xorgcon\002g)e FX(V)-155 b(ertical)387 +b(Sync)-30 5477 y +SDict begin H.S end + -30 5477 a -30 5477 a +SDict begin 18.2 H.A end + -30 5477 a -30 +5477 a +SDict begin [ /View [/XYZ H.V] /Dest (2299) cvn H.B /DEST pdfmark end + -30 5477 a -30 25252 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 25252 a @beginspecial +0 @llx 0 @lly 451 @urx 171 @ury 4510 @rwi @setspecial +%%BeginDocument: x-window-system/xorgconfig3.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 0 0 451 171 + +/Outterbox +{ newpath +0 0 moveto +450 0 rlineto +0 170 rlineto +-450 0 rlineto +closepath } def + + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +Outterbox + +3 155 ContentFont (You must indicate the vertical sync range of your monitor. You can either) show +3 140 ContentFont (select one of the predefined ranges below that correspond to industry-) show +3 125 ContentFont (standard monitor types, or give a specific range. For interlaced modes,) show +3 110 ContentFont (the number that counts is the high one (e.g. 87 Hz rather than 43 Hz).) show + +3 90 ContentFont (1 50-70) show +3 75 ContentFont (2 50-90) show +3 60 ContentFont (3 50-100) show +3 45 ContentFont (4 40-150) show + +3 30 ContentFont (5 Enter your own vertical sync range) show + +3 3 ContentFont (Enter your choice:) show +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 25252 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 25252 a -30 25252 a +SDict begin H.S end + -30 +25252 a -30 25252 a +SDict begin 18.2 H.A end + -30 25252 a -30 25252 a +SDict begin [ /View [/XYZ H.V] /Dest (2302) cvn H.B /DEST pdfmark end + -30 25252 +a 3564 x FU(Specify)g(the)h(v)-23 b(ertical)387 b(sync)g(range)h(for)g +(your)f(monitor)g(\(you)g(should)g(\002nd)g(this)g(in)h(the)f(manual) +-30 30831 y(for)348 b(the)g(monitor\).)f(xor)-28 b(gcon\002g)347 +b(will)g(ask)h(you)g(to)f(enter)h(strings)f(to)h(identify)f(the)g +(monitor)g(type)-30 32846 y(in)475 b(the)f FQ(xorg.conf)469 +b FU(\002le.)475 b(Enter)g(an)-23 b(ything)473 b(you)i(lik)-15 +b(e)473 b(on)i(these)g(3)f(lines)g(\(including)g(nothing)g(at)-30 +34860 y(all\).)-30 35138 y +SDict begin H.S end + -30 35138 a -30 35138 a +SDict begin 18.2 H.A end + -30 +35138 a -30 35138 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-4) cvn H.B /DEST +pdfmark end + -30 35138 a Black 50226 73792 a FR(79)p +Black eop end +%%Page: 80 102 +TeXDict begin 80 101 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.80) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(6)g(X)g(Con\002gur)-23 +b(ation)p Black -30 3611 a FX(Figur)-28 b(e)387 b(6-4.)h +FV(xorgcon\002g)e FX(V)-57 b(ideo)386 b(Card)-30 5477 +y +SDict begin H.S end + -30 5477 a -30 5477 a +SDict begin 18.2 H.A end + -30 5477 a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (2310) cvn H.B /DEST pdfmark end + -30 5477 +a -30 41252 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 41252 a @beginspecial 0 @llx 0 @lly +451 @urx 315 @ury 4510 @rwi @setspecial +%%BeginDocument: x-window-system/xorgconfig4.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 0 0 451 315 + +/Outterbox +{ newpath +0 0 moveto +450 0 rlineto +0 313 rlineto +-450 0 rlineto +closepath } def + +/ContentFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +Outterbox + + 3 300 ContentFont ( 0 * Generic VESA compatible)show +255 300 ContentFont (-)show + 3 285 ContentFont ( 1 * Generic VGA compatible)show +255 285 ContentFont (-)show + 3 270 ContentFont ( 2 * Unsupported VGA compatible)show +255 270 ContentFont (-)show + 3 255 ContentFont ( 3 ** 3DLabs, TI (generic))show +208 255 ContentFont ([glint])show +255 255 ContentFont (-)show + 3 240 ContentFont ( 4 ** 3Dfx (generic))show +208 240 ContentFont ([tdfx])show +255 240 ContentFont (-)show + 3 225 ContentFont ( 5 ** ATI (generic))show +208 225 ContentFont ([ati])show +255 225 ContentFont (-)show + 3 210 ContentFont ( 6 ** ATI Radeon (generic))show +208 210 ContentFont ([radeon])show +255 210 ContentFont (-)show + 3 195 ContentFont ( 7 ** ATI Rage 128 based (generic))show +208 195 ContentFont ([r128])show +255 195 ContentFont (-)show + 3 180 ContentFont ( 8 ** Alliance Pro Motion (generic))show +208 180 ContentFont ([apm])show +255 180 ContentFont (-)show + 3 165 ContentFont ( 9 ** Ark Logic (generic))show +208 165 ContentFont ([ark])show +255 165 ContentFont (-)show + 3 150 ContentFont (10 ** Chips and Technologies (generic))show +208 150 ContentFont ([chips])show +255 150 ContentFont (-)show + 3 135 ContentFont (11 ** Cirrus Logic (generic))show +208 135 ContentFont ([cirrus])show +255 135 ContentFont (-)show + 3 120 ContentFont (12 ** Cyrix MediaGX (generic))show +208 120 ContentFont ([cyrix])show +255 120 ContentFont (-)show + 3 105 ContentFont (13 ** DEC TGA (generic))show +208 105 ContentFont ([tgz])show +255 105 ContentFont (-)show + 3 90 ContentFont (14 ** Intel i740 (generic))show +208 90 ContentFont ([i740])show +255 90 ContentFont (-)show + 3 75 ContentFont (15 ** Intel i810 (generic))show +208 75 ContentFont ([i810])show +255 75 ContentFont (-)show + 3 60 ContentFont (16 ** Linux framebuffer (generic))show +208 60 ContentFont ([fbdev])show +255 60 ContentFont (-)show + 3 45 ContentFont (17 ** Matrox Graphics (generic))show +208 45 ContentFont ([mga])show +255 45 ContentFont (-)show + +3 25 ContentFont (Enter a number to choose the corresponding card definition.)show +3 10 ContentFont (Press enter for the next page, q to continue configuration.)show + + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 41252 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 41252 a 3564 x FU(No)-39 +b(w)520 b(you)g(ha)-31 b(v)-23 b(e)519 b(the)h(opportunity)e(to)i(look) +f(at)h(the)g(database)f(of)h(video)g(card)g(types.)f(Y)-170 +b(ou')-15 b(ll)-30 46831 y(w)g(ant)465 b(to)h(do)g(this,)g(so)g(say)g +(\223)p Fv(y)p FU(\224,)h(and)f(select)g(a)g(card)g(from)g(the)g(list)g +(sho)-39 b(wn.)466 b(If)g(you)g(don')-28 b(t)466 b(see)-30 +48846 y(your)551 b(e)-23 b(xact)550 b(card,)i(try)e(selecting)h(one)f +(that)h(uses)f(the)h(same)g(chipset)f(and)h(it)f(will)h(probably)-30 +50860 y(w)-15 b(ork)387 b(\002ne.)-30 50875 y +SDict begin H.S end + -30 50875 +a -30 50875 a +SDict begin 18.2 H.A end + -30 50875 a -30 50875 a +SDict begin [ /View [/XYZ H.V] /Dest (2316) cvn H.B /DEST pdfmark end + -30 50875 a -30 +51651 a +SDict begin H.S end + -30 51651 a -30 51651 a +SDict begin 18.2 H.A end + -30 51651 a -30 51651 +a +SDict begin [ /View [/XYZ H.V] /Dest (2318) cvn H.B /DEST pdfmark end + -30 51651 a 1999 x FU(Ne)-23 b(xt,)490 b(tell)6308 +53650 y +SDict begin H.S end + 6308 53650 a 6308 53650 a +SDict begin 18.2 H.A end + 6308 53650 a 6308 53650 +a +SDict begin [ /View [/XYZ H.V] /Dest (2319) cvn H.B /DEST pdfmark end + 6308 53650 a FP(xorgconfig)f FU(ho)-39 b(w)490 b(much)g(RAM)f(you)h +(ha)-31 b(v)-23 b(e)490 b(on)g(your)g(video)f(card.)44337 +53650 y +SDict begin H.S end + 44337 53650 a 44337 53650 a +SDict begin 18.2 H.A end + 44337 53650 a 44337 +53650 a +SDict begin [ /View [/XYZ H.V] /Dest (2320) cvn H.B /DEST pdfmark end + 44337 53650 a FP(xorgconfig)-30 55664 y FU(will)362 +b(w)-15 b(ant)362 b(you)g(to)g(enter)g(some)g(more)h(descripti)-39 +b(v)-23 b(e)361 b(te)-23 b(xt)362 b(about)g(your)g(video)g(card.)i(If)e +(you)g(lik)-15 b(e,)-30 57679 y(you)387 b(can)h(enter)f(descriptions)f +(on)h(these)g(three)h(lines.)-30 58015 y +SDict begin H.S end + -30 58015 a +-30 58015 a +SDict begin 18.2 H.A end + -30 58015 a -30 58015 a +SDict begin [ /View [/XYZ H.V] /Dest (2321) cvn H.B /DEST pdfmark end + -30 58015 a -30 58790 +a +SDict begin H.S end + -30 58790 a -30 58790 a +SDict begin 18.2 H.A end + -30 58790 a -30 58790 a +SDict begin [ /View [/XYZ H.V] /Dest (2324) cvn H.B /DEST pdfmark end + -30 +58790 a 1679 x FU(Y)-170 b(ou')-15 b(ll)445 b(then)h(be)g(ask)-15 +b(ed)445 b(which)h(display)f(resolutions)g(you)h(w)-15 +b(ant)445 b(to)h(use.)h(Ag)-8 b(ain,)446 b(going)f(with)-30 +62483 y(the)337 b(pro)-23 b(vided)336 b(def)-15 b(aults)337 +b(should)f(be)h(\002ne)g(to)g(start)g(with.)g(Later)g(on,)h(you)e(can)i +(edit)f(the)46139 62483 y +SDict begin H.S end + 46139 62483 a 46139 62483 a +SDict begin 18.2 H.A end + +46139 62483 a 46139 62483 a +SDict begin [ /View [/XYZ H.V] /Dest (2325) cvn H.B /DEST pdfmark end + 46139 62483 a FQ(/etc/X11/)-30 +64498 y(xorg.conf)420 b FU(\002le)425 b(and)g(rearrange)h(the)f(modes)g +(so)g(1024x768)g(\(or)g(whate)-39 b(v)-23 b(er)425 b(mode)g(you)h(lik) +-15 b(e\))424 b(is)-30 66513 y(the)387 b(def)-15 b(ault.)p +Black -30 73792 a FR(80)p Black eop end +%%Page: 81 103 +TeXDict begin 81 102 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.81) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 +b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2326) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(At)600 b(this)f(point,)h(the) +11627 3611 y +SDict begin H.S end + 11627 3611 a 11627 3611 a +SDict begin 18.2 H.A end + 11627 3611 a 11627 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2327) cvn H.B /DEST pdfmark end + 11627 3611 a FP(xorgconfig)f FU(program)g(will)h(ask)g(if)f +(you')-77 b(d)600 b(lik)-15 b(e)599 b(to)g(sa)-31 b(v)-23 +b(e)600 b(the)g(current)-30 5626 y(con\002guration)386 +b(\002le.)g(Answer)h(yes,)g(and)f(the)h(X)g(con\002guration)e(\002le)h +(is)h(sa)-31 b(v)-23 b(ed,)387 b(completing)e(the)-30 +7640 y(setup)i(process.)h(Y)-170 b(ou)386 b(can)i(start)f(X)g(no)-39 +b(w)387 b(with)g(the)27479 7640 y +SDict begin H.S end + 27479 7640 a 27479 +7640 a +SDict begin 18.2 H.A end + 27479 7640 a 27479 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (2328) cvn H.B /DEST pdfmark end + 27479 7640 a FP(startx)g +FU(command.)-30 8751 y +SDict begin H.S end + -30 8751 a -30 8751 a +SDict begin 18.2 H.A end + -30 8751 +a -30 8751 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XORGSETUP) cvn +H.B /DEST pdfmark end + -30 8751 a 5789 x FL(6.2)620 b Fq(xor)-33 +b(gsetup)-30 16152 y +SDict begin H.S end + -30 16152 a -30 16152 a +SDict begin 18.2 H.A end + -30 16152 +a -30 16152 a +SDict begin [ /View [/XYZ H.V] /Dest (2332) cvn H.B /DEST pdfmark end + -30 16152 a 1518 x FU(The)471 b(second)h(w)-15 +b(ay)470 b(to)i(con\002gure)e(X)i(is)f(to)g(use)25976 +17670 y +SDict begin H.S end + 25976 17670 a 25976 17670 a +SDict begin 18.2 H.A end + 25976 17670 a 25976 +17670 a +SDict begin [ /View [/XYZ H.V] /Dest (2333) cvn H.B /DEST pdfmark end + 25976 17670 a FP(xorgsetup)p FU(,)g(an)h(automagical)e +(con\002guration)-30 19685 y(program)387 b(that)g(comes)g(with)g +(Slackw)-15 b(are.)-30 20795 y +SDict begin H.S end + -30 20795 a -30 20795 +a +SDict begin 18.2 H.A end + -30 20795 a -30 20795 a +SDict begin [ /View [/XYZ H.V] /Dest (2334) cvn H.B /DEST pdfmark end + -30 20795 a 1680 x FU(T)-124 +b(o)387 b(run)4409 22475 y +SDict begin H.S end + 4409 22475 a 4409 22475 a +SDict begin 18.2 H.A end + +4409 22475 a 4409 22475 a +SDict begin [ /View [/XYZ H.V] /Dest (2335) cvn H.B /DEST pdfmark end + 4409 22475 a FP(xorgsetup)p +FU(,)f(log)h(in)g(as)h(root)f(and)g(type:)-30 24360 y +SDict begin H.S end + +-30 24360 a -30 24360 a +SDict begin 14.56 H.A end + -30 24360 a -30 24360 a +SDict begin [ /View [/XYZ H.V] /Dest (2336) cvn H.B /DEST pdfmark end + -30 24360 +a -30 24360 a +SDict begin H.S end + -30 24360 a -30 24360 a +SDict begin 14.56 H.A end + -30 24360 a -30 +24360 a +SDict begin [ /View [/XYZ H.V] /Dest (2337) cvn H.B /DEST pdfmark end + -30 24360 a 1276 x FJ(#)1309 25636 y +SDict begin H.S end + 1309 25636 +a 1309 25636 a +SDict begin 14.56 H.A end + 1309 25636 a 1309 25636 a +SDict begin [ /View [/XYZ H.V] /Dest (2338) cvn H.B /DEST pdfmark end + 1309 25636 a +FH(xorgsetup)-30 27354 y +SDict begin H.S end + -30 27354 a -30 27354 a +SDict begin 18.2 H.A end + -30 +27354 a -30 27354 a +SDict begin [ /View [/XYZ H.V] /Dest (2339) cvn H.B /DEST pdfmark end + -30 27354 a 1846 x FU(If)450 b(you')-77 +b(v)-23 b(e)449 b(already)h(got)f(an)15459 29200 y +SDict begin H.S end + 15459 +29200 a 15459 29200 a +SDict begin 18.2 H.A end + 15459 29200 a 15459 29200 a +SDict begin [ /View [/XYZ H.V] /Dest (2340) cvn H.B /DEST pdfmark end + 15459 +29200 a FQ(/etc/X11/xorg.conf)438 b FU(\002le)449 b(\(because)h(you') +-77 b(v)-23 b(e)449 b(already)h(con\002gured)-30 31215 +y(X\),)398 b(you')-15 b(ll)396 b(be)h(ask)-15 b(ed)397 +b(if)g(you)g(w)-15 b(ant)396 b(to)h(backup)g(the)g(e)-23 +b(xisting)396 b(con\002g)h(\002le)f(before)i(continuing.)-30 +33230 y(The)387 b(original)g(\002le)g(will)g(be)g(renamed)g(to)22309 +33230 y +SDict begin H.S end + 22309 33230 a 22309 33230 a +SDict begin 18.2 H.A end + 22309 33230 a 22309 +33230 a +SDict begin [ /View [/XYZ H.V] /Dest (2341) cvn H.B /DEST pdfmark end + 22309 33230 a FQ(/etc/X11/xorg.conf.backup)p +FU(.)-30 34340 y +SDict begin H.S end + -30 34340 a -30 34340 a +SDict begin 18.2 H.A end + -30 34340 a +-30 34340 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XINITRC) cvn +H.B /DEST pdfmark end + -30 34340 a 5789 x FL(6.3)620 b(xinitr)-45 +b(c)-30 40157 y +SDict begin H.S end + -30 40157 a -30 40157 a +SDict begin 18.2 H.A end + -30 40157 a -30 +40157 a +SDict begin [ /View [/XYZ H.V] /Dest (2344) cvn H.B /DEST pdfmark end + -30 40157 a -30 41273 a +SDict begin H.S end + -30 41273 a -30 41273 +a +SDict begin 18.2 H.A end + -30 41273 a -30 41273 a +SDict begin [ /View [/XYZ H.V] /Dest (2347) cvn H.B /DEST pdfmark end + -30 41273 a -30 41273 a +SDict begin H.S end + -30 +41273 a -30 41273 a +SDict begin 18.2 H.A end + -30 41273 a -30 41273 a +SDict begin [ /View [/XYZ H.V] /Dest (2348) cvn H.B /DEST pdfmark end + -30 41273 +a 1987 x FP(xinit)p FU(\(1\))391 b(is)g(the)h(program)f(that)g +(actually)g(starts)g(X;)h(it)f(is)g(called)h(by)37572 +43260 y +SDict begin H.S end + 37572 43260 a 37572 43260 a +SDict begin 18.2 H.A end + 37572 43260 a 37572 +43260 a +SDict begin [ /View [/XYZ H.V] /Dest (2349) cvn H.B /DEST pdfmark end + 37572 43260 a FP(startx)p FU(\(1\),)g(so)f(you)g(may)-30 +45274 y(not)471 b(ha)-31 b(v)-23 b(e)472 b(noticed)e(it)i(\(and)f +(probably)g(don')-28 b(t)471 b(really)h(need)f(to\).)h(Its)f +(con\002guration)f(\002le,)i(ho)-39 b(w-)-30 47289 y(e)g(v)-23 +b(er)-62 b(,)304 b(determines)f(which)g(programs)g(\(including)g(and)g +(especially)g(the)g(windo)-39 b(w)303 b(manager\))h(are)-30 +49304 y(run)461 b(when)h(X)f(starts)g(up.)14028 49304 +y +SDict begin H.S end + 14028 49304 a 14028 49304 a +SDict begin 18.2 H.A end + 14028 49304 a 14028 49304 +a +SDict begin [ /View [/XYZ H.V] /Dest (2350) cvn H.B /DEST pdfmark end + 14028 49304 a FP(xinit)g FU(\002rst)g(checks)g(your)g(home)g +(directory)h(for)f(a)42442 49304 y +SDict begin H.S end + 42442 49304 a 42442 +49304 a +SDict begin 18.2 H.A end + 42442 49304 a 42442 49304 a +SDict begin [ /View [/XYZ H.V] /Dest (2351) cvn H.B /DEST pdfmark end + 42442 49304 a FQ(.xinitrc)456 +b FU(\002le.)462 b(If)-30 51318 y(the)336 b(\002le)g(is)g(found,)g(it)f +(gets)h(run;)g(otherwise,)23838 51318 y +SDict begin H.S end + 23838 51318 a +23838 51318 a +SDict begin 18.2 H.A end + 23838 51318 a 23838 51318 a +SDict begin [ /View [/XYZ H.V] /Dest (2352) cvn H.B /DEST pdfmark end + 23838 51318 +a FQ(/var/X11R6/lib/xinit/xinitrc)318 b FU(\(the)336 +b(systemwide)-30 53333 y(def)-15 b(ault\))387 b(is)g(used.)g(Here')-85 +b(s)388 b(a)f(simple)20227 53333 y +SDict begin H.S end + 20227 53333 a 20227 +53333 a +SDict begin 18.2 H.A end + 20227 53333 a 20227 53333 a +SDict begin [ /View [/XYZ H.V] /Dest (2353) cvn H.B /DEST pdfmark end + 20227 53333 a FQ(xinitrc)c +FU(\002le:)-30 55218 y +SDict begin H.S end + -30 55218 a -30 55218 a +SDict begin 14.56 H.A end + -30 55218 +a -30 55218 a +SDict begin [ /View [/XYZ H.V] /Dest (2354) cvn H.B /DEST pdfmark end + -30 55218 a 1277 x FP(#!/bin/sh)-30 58106 +y(#)744 b($XConsortium:)e(xinitrc.cpp,v)g(1.4)i(91/08/22)f(11:41:34)g +(rws)g(Exp)h($)-30 61330 y(userresources=$HOME/.Xresources)-30 +62942 y(usermodmap=$HOME/.Xmodmap)-30 64553 y +(sysresources=/usr/X11R6/lib/X11/xinit/.Xresources)-30 +66165 y(sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap)p +Black 50226 73792 a FR(81)p Black eop end +%%Page: 82 104 +TeXDict begin 82 103 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.82) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(6)g(X)g(Con\002gur)-23 +b(ation)p Black -30 3611 a FP(#)744 b(merge)f(in)h(defaults)f(and)g +(keymaps)-30 6835 y(if)h([)f(-f)h($sysresources)e(];)i(then)2946 +8446 y(xrdb)f(-merge)g($sysresources)-30 10058 y(fi)-30 +13282 y(if)h([)f(-f)h($sysmodmap)f(];)g(then)2946 14893 +y(xmodmap)g($sysmodmap)-30 16505 y(fi)-30 19728 y(if)h([)f(-f)h +($userresources)e(];)i(then)2946 21340 y(xrdb)f(-merge)g +($userresources)-30 22952 y(fi)-30 26175 y(if)h([)f(-f)h($usermodmap)f +(];)g(then)2946 27787 y(xmodmap)g($usermodmap)-30 29399 +y(fi)-30 32622 y(#)h(start)f(some)h(nice)f(programs)-30 +35846 y(twm)h(&)-30 37458 y(xclock)f(-geometry)g(50x50-1+1)g(&)-30 +39069 y(xterm)g(-geometry)g(80x50+494+51)g(&)-30 40681 +y(xterm)g(-geometry)g(80x20+494-0)g(&)-30 42293 y(exec)g(xterm)h +(-geometry)f(80x66+0+0)f(-name)i(login)-30 42488 y +SDict begin H.S end + -30 +42488 a -30 42488 a +SDict begin 18.2 H.A end + -30 42488 a -30 42488 a +SDict begin [ /View [/XYZ H.V] /Dest (2355) cvn H.B /DEST pdfmark end + -30 42488 +a -30 42488 a +SDict begin H.S end + -30 42488 a -30 42488 a +SDict begin 18.2 H.A end + -30 42488 a -30 +42488 a +SDict begin [ /View [/XYZ H.V] /Dest (2357) cvn H.B /DEST pdfmark end + -30 42488 a -30 42488 a +SDict begin H.S end + -30 42488 a -30 42488 +a +SDict begin 18.2 H.A end + -30 42488 a -30 42488 a +SDict begin [ /View [/XYZ H.V] /Dest (2359) cvn H.B /DEST pdfmark end + -30 42488 a -30 44037 a +SDict begin H.S end + -30 +44037 a -30 44037 a +SDict begin 18.2 H.A end + -30 44037 a -30 44037 a +SDict begin [ /View [/XYZ H.V] /Dest (2361) cvn H.B /DEST pdfmark end + -30 44037 +a 1820 x FU(All)547 b(of)f(those)8154 45857 y +SDict begin H.S end + 8154 45857 +a 8154 45857 a +SDict begin 18.2 H.A end + 8154 45857 a 8154 45857 a +SDict begin [ /View [/XYZ H.V] /Dest (2362) cvn H.B /DEST pdfmark end + 8154 45857 a +FU(\223if\224)h(blocks)f(are)h(there)g(to)g(mer)-28 b(ge)546 +b(in)h(v)-39 b(arious)547 b(con\002guration)e(settings)h(from)-30 +47872 y(other)602 b(\002les.)g(The)g(interesting)f(part)h(of)g(the)f +(\002le)h(is)g(to)-39 b(w)-15 b(ard)601 b(the)h(end,)g(where)g(v)-39 +b(arious)602 b(pro-)-30 49886 y(grams)411 b(are)g(run.)g(This)f(X)h +(session)g(will)f(be)-23 b(gin)410 b(with)h(the)31045 +49886 y +SDict begin H.S end + 31045 49886 a 31045 49886 a +SDict begin 18.2 H.A end + 31045 49886 a 31045 +49886 a +SDict begin [ /View [/XYZ H.V] /Dest (2363) cvn H.B /DEST pdfmark end + 31045 49886 a FP(twm)p FU(\(1\))g(windo)-39 b(w)410 +b(manager)-62 b(,)412 b(a)f(clock,)-30 51901 y(and)449 +b(three)h(terminals.)f(Note)g(the)18615 51901 y +SDict begin H.S end + 18615 +51901 a 18615 51901 a +SDict begin 18.2 H.A end + 18615 51901 a 18615 51901 a +SDict begin [ /View [/XYZ H.V] /Dest (2364) cvn H.B /DEST pdfmark end + 18615 +51901 a FP(exec)g FU(before)g(the)g(last)31392 51901 +y +SDict begin H.S end + 31392 51901 a 31392 51901 a +SDict begin 18.2 H.A end + 31392 51901 a 31392 51901 +a +SDict begin [ /View [/XYZ H.V] /Dest (2365) cvn H.B /DEST pdfmark end + 31392 51901 a FP(xterm)p FU(.)h(What)f(that)g(does)g(is)g(replace)-30 +53916 y(the)577 b(currently)f(running)g(shell)g(\(the)g(one)h(that')-85 +b(s)576 b(e)-23 b(x)g(ecuting)576 b(this)36622 53916 +y +SDict begin H.S end + 36622 53916 a 36622 53916 a +SDict begin 18.2 H.A end + 36622 53916 a 36622 53916 +a +SDict begin [ /View [/XYZ H.V] /Dest (2366) cvn H.B /DEST pdfmark end + 36622 53916 a FQ(xinitrc)c FU(script\))k(with)g(that)-30 +55930 y +SDict begin H.S end + -30 55930 a -30 55930 a +SDict begin 18.2 H.A end + -30 55930 a -30 55930 +a +SDict begin [ /View [/XYZ H.V] /Dest (2367) cvn H.B /DEST pdfmark end + -30 55930 a FP(xterm)p FU(\(1\))387 b(command.)g(When)g(the)g(user)h +(quits)e(that)28223 55930 y +SDict begin H.S end + 28223 55930 a 28223 55930 +a +SDict begin 18.2 H.A end + 28223 55930 a 28223 55930 a +SDict begin [ /View [/XYZ H.V] /Dest (2368) cvn H.B /DEST pdfmark end + 28223 55930 a FP(xterm)p +FU(,)i(the)f(X)g(session)g(will)f(end.)-30 57041 y +SDict begin H.S end + -30 +57041 a -30 57041 a +SDict begin 18.2 H.A end + -30 57041 a -30 57041 a +SDict begin [ /View [/XYZ H.V] /Dest (2369) cvn H.B /DEST pdfmark end + -30 57041 +a 1679 x FU(T)-124 b(o)618 b(customize)g(your)g(X)g(startup,)g(cop)-15 +b(y)617 b(the)h(def)-15 b(ault)30543 58720 y +SDict begin H.S end + 30543 58720 +a 30543 58720 a +SDict begin 18.2 H.A end + 30543 58720 a 30543 58720 a +SDict begin [ /View [/XYZ H.V] /Dest (2370) cvn H.B /DEST pdfmark end + 30543 58720 +a FQ(/var/X11R6/lib/xinit/xinitrc)600 b FU(to)50523 58720 +y +SDict begin H.S end + 50523 58720 a 50523 58720 a +SDict begin 18.2 H.A end + 50523 58720 a 50523 58720 +a +SDict begin [ /View [/XYZ H.V] /Dest (2371) cvn H.B /DEST pdfmark end + 50523 58720 a FQ(~/)-30 60735 y(.xinitrc)435 b FU(and)441 +b(edit)f(it,)g(replacing)g(those)g(program)g(lines)g(with)g(whate)-39 +b(v)-23 b(er)440 b(you)g(lik)-15 b(e.)440 b(The)g(end)-30 +62749 y(of)387 b(mine)g(is)g(simply:)-30 64635 y +SDict begin H.S end + -30 +64635 a -30 64635 a +SDict begin 14.56 H.A end + -30 64635 a -30 64635 a +SDict begin [ /View [/XYZ H.V] /Dest (2372) cvn H.B /DEST pdfmark end + -30 64635 +a 1276 x FP(#)744 b(Start)f(the)h(window)f(manager:)-30 +67523 y(exec)g(startkde)p Black -30 73792 a FR(82)p Black +eop end +%%Page: 83 105 +TeXDict begin 83 104 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.83) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 +b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2373) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(Note)435 b(that)f(there)h(are)g +(se)-39 b(v)-23 b(eral)16798 3611 y +SDict begin H.S end + 16798 3611 a 16798 +3611 a +SDict begin 18.2 H.A end + 16798 3611 a 16798 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2374) cvn H.B /DEST pdfmark end + 16798 3611 a FQ(xinitrc.*)429 +b FU(\002les)434 b(in)27529 3611 y +SDict begin H.S end + 27529 3611 a 27529 +3611 a +SDict begin 18.2 H.A end + 27529 3611 a 27529 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2375) cvn H.B /DEST pdfmark end + 27529 3611 a FQ(/var/X11R6/lib/xinit) +422 b FU(that)434 b(correspond)g(to)-30 5626 y(v)-39 +b(arious)387 b(windo)-39 b(w)387 b(managers)g(and)g(GUIs.)h(Y)-170 +b(ou)387 b(can)g(use)g(an)-23 b(y)387 b(of)h(those,)f(if)g(you)g(lik) +-15 b(e.)-30 6736 y +SDict begin H.S end + -30 6736 a -30 6736 a +SDict begin 18.2 H.A end + -30 6736 a +-30 6736 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XWMCONFIG) cvn +H.B /DEST pdfmark end + -30 6736 a 5789 x FL(6.4)620 b Fq(xwmcon\002g)-30 +13022 y +SDict begin H.S end + -30 13022 a -30 13022 a +SDict begin 18.2 H.A end + -30 13022 a -30 13022 +a +SDict begin [ /View [/XYZ H.V] /Dest (2379) cvn H.B /DEST pdfmark end + -30 13022 a -30 13022 a +SDict begin H.S end + -30 13022 a -30 13022 a +SDict begin 18.2 H.A end + -30 +13022 a -30 13022 a +SDict begin [ /View [/XYZ H.V] /Dest (2381) cvn H.B /DEST pdfmark end + -30 13022 a -30 14138 a +SDict begin H.S end + -30 14138 +a -30 14138 a +SDict begin 18.2 H.A end + -30 14138 a -30 14138 a +SDict begin [ /View [/XYZ H.V] /Dest (2383) cvn H.B /DEST pdfmark end + -30 14138 a 1518 +x FU(F)-23 b(or)556 b(years,)g(Unix)g(w)-15 b(as)555 +b(used)h(almost)g(e)-23 b(xclusi)-39 b(v)-23 b(ely)555 +b(as)h(the)g(operating)f(system)h(for)g(serv)-23 b(ers,)-30 +17670 y(with)403 b(the)h(e)-23 b(xception)403 b(of)g(high-po)-39 +b(wered)404 b(professional)f(w)-15 b(orkstations.)402 +b(Only)h(the)h(technically)-30 19685 y(inclined)462 b(were)h(lik)-15 +b(ely)462 b(to)g(use)h(a)g(Unix-lik)-15 b(e)462 b(operating)g(system,)g +(and)h(the)g(user)f(interf)-15 b(ace)463 b(re-)-30 21700 +y(\003ected)545 b(this)g(f)-15 b(act.)545 b(GUIs)g(tended)g(to)g(be)h +(f)-15 b(airly)544 b(bare-bones,)i(designed)e(to)h(run)h(a)f(fe)-39 +b(w)546 b(nec-)-30 23714 y(essarily)503 b(graphical)g(applications)g +(lik)-15 b(e)503 b(CAD)g(programs)g(and)g(image)g(renderers.)h(Most)f +(\002le)-30 25729 y(and)382 b(system)e(management)h(w)-15 +b(as)381 b(conducted)g(at)h(the)f(command)g(line.)g(V)-172 +b(arious)382 b(v)-23 b(endors)380 b(\(Sun)-30 27744 y(Microsystems,)489 +b(Silicon)h(Graphics,)g(etc\))g(were)h(selling)e(w)-15 +b(orkstations)489 b(with)g(an)i(attempt)e(to)-30 29758 +y(pro)-23 b(vide)488 b(a)h(cohesi)-39 b(v)-23 b(e)12196 +29758 y +SDict begin H.S end + 12196 29758 a 12196 29758 a +SDict begin 18.2 H.A end + 12196 29758 a 12196 +29758 a +SDict begin [ /View [/XYZ H.V] /Dest (2384) cvn H.B /DEST pdfmark end + 12196 29758 a FU(\223look)488 b(and)g(feel\224,)h(b)-31 +b(ut)488 b(the)h(wide)f(v)-39 b(ariety)488 b(of)h(GUI)f(toolkits)f(in)i +(use)f(by)-30 31773 y(de)-39 b(v)-23 b(elopers)427 b(led)g(ine)-39 +b(vitably)426 b(to)h(the)g(dissolution)f(of)h(the)g(desktop')-85 +b(s)426 b(uniformity)-101 b(.)427 b(A)g(scrollbar)-30 +33788 y(might)355 b(not)g(look)h(the)f(same)h(in)f(tw)-15 +b(o)355 b(dif)-39 b(ferent)356 b(applications.)f(Menus)g(might)g +(appear)h(in)g(dif)-39 b(fer)-31 b(-)-30 35802 y(ent)497 +b(places.)g(Programs)f(w)-15 b(ould)496 b(ha)-31 b(v)-23 +b(e)497 b(dif)-39 b(ferent)497 b(b)-31 b(uttons)495 b(and)i(checkbox) +-23 b(es.)497 b(Colors)f(ranged)-30 37817 y(widely)-101 +b(,)537 b(and)f(were)h(generally)f(hard-coded)h(in)f(each)h(toolkit.)f +(As)g(long)g(as)h(the)f(users)h(were)-30 39832 y(primarily)387 +b(technical)g(professionals,)f(none)h(of)h(this)f(mattered)f(much.)-30 +40167 y +SDict begin H.S end + -30 40167 a -30 40167 a +SDict begin 18.2 H.A end + -30 40167 a -30 40167 +a +SDict begin [ /View [/XYZ H.V] /Dest (2385) cvn H.B /DEST pdfmark end + -30 40167 a -30 40167 a +SDict begin H.S end + -30 40167 a -30 40167 a +SDict begin 18.2 H.A end + -30 +40167 a -30 40167 a +SDict begin [ /View [/XYZ H.V] /Dest (2387) cvn H.B /DEST pdfmark end + -30 40167 a -30 40167 a +SDict begin H.S end + -30 40167 +a -30 40167 a +SDict begin 18.2 H.A end + -30 40167 a -30 40167 a +SDict begin [ /View [/XYZ H.V] /Dest (2389) cvn H.B /DEST pdfmark end + -30 40167 a -30 +40167 a +SDict begin H.S end + -30 40167 a -30 40167 a +SDict begin 18.2 H.A end + -30 40167 a -30 40167 +a +SDict begin [ /View [/XYZ H.V] /Dest (2391) cvn H.B /DEST pdfmark end + -30 40167 a -30 40942 a +SDict begin H.S end + -30 40942 a -30 40942 a +SDict begin 18.2 H.A end + -30 +40942 a -30 40942 a +SDict begin [ /View [/XYZ H.V] /Dest (2393) cvn H.B /DEST pdfmark end + -30 40942 a 1679 x FU(W)-62 b(ith)512 +b(the)g(adv)-23 b(ent)512 b(of)h(free)g(Unix-lik)-15 +b(e)511 b(operating)h(systems)f(and)i(the)f(gro)-39 b(wing)512 +b(number)g(and)-30 44636 y(v)-39 b(ariety)505 b(of)g(graphical)g +(applications,)f(X)h(has)g(recently)f(g)-8 b(ained)505 +b(a)h(wide)e(desktop)h(user)g(base.)-30 46651 y(Most)497 +b(users,)g(of)g(course,)h(are)f(accustomed)g(to)g(the)g(consistent)f +(look)h(and)g(feel)h(pro)-23 b(vided)496 b(by)-30 48665 +y(Microsoft')-85 b(s)486 b(W)-62 b(indo)-39 b(ws)487 +b(or)g(Apple')-85 b(s)486 b(MacOS;)g(the)h(lack)g(of)h(such)e +(consistenc)-23 b(y)486 b(in)h(X-based)-30 50680 y(applications)408 +b(became)i(a)f(barrier)h(to)f(its)g(wider)g(acceptance.)h(In)g +(response,)f(tw)-15 b(o)409 b(open)g(source)-30 52695 +y(projects)361 b(ha)-31 b(v)-23 b(e)361 b(been)g(undertak)-15 +b(en:)361 b(The)g(K)g(Desktop)g(En)-62 b(vironment,)361 +b(or)g(KDE,)h(and)f(the)g(GNU)-30 54709 y(Netw)-15 b(ork)466 +b(Object)g(Model)g(En)-62 b(vironment,)466 b(kno)-39 +b(wn)466 b(as)h(GNOME.)g(Each)f(has)h(a)g(wide)f(v)-39 +b(ariety)-30 56724 y(of)433 b(applications,)f(from)h(taskbars)f(and)h +(\002le)g(managers)f(to)h(g)-8 b(ames)433 b(and)g(of)-39 +b(\002ce)433 b(suites,)f(written)-30 58739 y(with)543 +b(the)h(same)f(GUI)h(toolkit)f(and)g(tightly)g(inte)-23 +b(grated)543 b(to)h(pro)-23 b(vide)543 b(a)g(uniform,)h(consistent)-30 +60753 y(desktop.)-30 61089 y +SDict begin H.S end + -30 61089 a -30 61089 a +SDict begin 18.2 H.A end + +-30 61089 a -30 61089 a +SDict begin [ /View [/XYZ H.V] /Dest (2394) cvn H.B /DEST pdfmark end + -30 61089 a -30 61864 a +SDict begin H.S end + -30 61864 +a -30 61864 a +SDict begin 18.2 H.A end + -30 61864 a -30 61864 a +SDict begin [ /View [/XYZ H.V] /Dest (2396) cvn H.B /DEST pdfmark end + -30 61864 a 1679 +x FU(The)533 b(dif)-39 b(ferences)533 b(in)g(KDE)f(and)h(GNOME)f(are)h +(generally)g(f)-15 b(airly)532 b(subtle.)h(The)-23 b(y)532 +b(each)h(look)-30 65557 y(dif)-39 b(ferent)372 b(from)g(the)g(other)-62 +b(,)372 b(because)g(each)g(uses)g(a)g(dif)-39 b(ferent)372 +b(GUI)g(toolkit.)f(KDE)h(is)f(based)h(on)-30 67572 y(the)514 +b(Qt)g(library)g(from)g(T)-54 b(roll)514 b(T)-108 b(ech)514 +b(AS,)g(while)g(GNOME)g(uses)g(GTK,)g(a)h(toolkit)e(originally)p +Black 50226 73792 a FR(83)p Black eop end +%%Page: 84 106 +TeXDict begin 84 105 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.84) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (2412) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(6)g(X)g(Con\002gur)-23 b(ation)p Black -30 3611 a FU(de)-39 +b(v)-23 b(eloped)377 b(for)g(The)g(GNU)f(Image)h(Manipulation)f +(Program)g(\(or)h(The)g(GIMP)-172 b(,)377 b(for)g(short\).)g(As)-30 +5626 y(separate)481 b(projects,)g(KDE)g(and)g(GNOME)f(each)h(ha)-31 +b(v)-23 b(e)481 b(their)g(o)-39 b(wn)481 b(designers)f(and)h(program-) +-30 7640 y(mers,)497 b(with)f(dif)-39 b(ferent)497 b(de)-39 +b(v)-23 b(elopment)496 b(styles)g(and)h(philosophies.)f(The)g(result)h +(in)f(each)h(case,)-30 9655 y(ho)-39 b(we)g(v)-23 b(er)-62 +b(,)448 b(has)f(been)g(fundamentally)g(the)g(same:)g(a)g(consistent,)g +(tightly)f(inte)-23 b(grated)447 b(desktop)-30 11670 +y(en)-62 b(vironment)318 b(and)h(application)f(collection.)h(The)f +(functionality)-101 b(,)319 b(usability)-101 b(,)318 +b(and)h(sheer)g(pretti-)-30 13684 y(ness)368 b(of)g(both)f(KDE)g(and)h +(GNOME)f(ri)-39 b(v)g(al)369 b(an)-23 b(ything)366 b(a)-31 +b(v)-39 b(ailable)368 b(on)g(other)f(operating)g(systems.)-30 +14795 y +SDict begin H.S end + -30 14795 a -30 14795 a +SDict begin 18.2 H.A end + -30 14795 a -30 14795 +a +SDict begin [ /View [/XYZ H.V] /Dest (2397) cvn H.B /DEST pdfmark end + -30 14795 a 1679 x FU(The)411 b(best)f(part,)h(though,)g(is)f(that)g +(these)h(adv)-39 b(anced)411 b(desktops)e(are)i(free.)h(This)e(means)g +(you)h(can)-30 18489 y(ha)-31 b(v)-23 b(e)387 b(either)g(or)h(both)f +(\(yes,)g(at)h(the)f(same)g(time\).)g(The)h(choice)f(is)g(yours.)-30 +19599 y +SDict begin H.S end + -30 19599 a -30 19599 a +SDict begin 18.2 H.A end + -30 19599 a -30 19599 +a +SDict begin [ /View [/XYZ H.V] /Dest (2398) cvn H.B /DEST pdfmark end + -30 19599 a 1679 x FU(In)329 b(addition)f(to)g(the)h(GNOME)f(and)g +(KDE)h(desktops,)f(Slackw)-15 b(are)328 b(includes)g(a)h(lar)-28 +b(ge)329 b(collection)-30 23293 y(of)417 b(windo)-39 +b(w)416 b(managers.)h(Some)f(are)h(designed)g(to)f(emulate)g(other)h +(operating)f(systems,)g(some)-30 25308 y(for)344 b(customization,)f +(others)h(for)g(speed.)g(There')-85 b(s)344 b(quite)g(a)g(v)-39 +b(ariety)-101 b(.)345 b(Of)f(course)g(you)g(can)g(install)-30 +27322 y(as)387 b(man)-23 b(y)387 b(as)h(you)f(w)-15 b(ant,)387 +b(play)g(with)g(them)f(all,)i(and)f(decide)g(which)g(you)h(lik)-15 +b(e)386 b(the)h(most.)-30 27658 y +SDict begin H.S end + -30 27658 a -30 27658 +a +SDict begin 18.2 H.A end + -30 27658 a -30 27658 a +SDict begin [ /View [/XYZ H.V] /Dest (2399) cvn H.B /DEST pdfmark end + -30 27658 a -30 28433 a +SDict begin H.S end + -30 +28433 a -30 28433 a +SDict begin 18.2 H.A end + -30 28433 a -30 28433 a +SDict begin [ /View [/XYZ H.V] /Dest (2401) cvn H.B /DEST pdfmark end + -30 28433 +a 1679 x FU(T)-124 b(o)975 b(mak)-15 b(e)975 b(desktop)g(selection)g +(easy)-101 b(,)976 b(Slackw)-15 b(are)975 b(also)g(includes)f(a)i +(program)f(called)-30 32126 y +SDict begin H.S end + -30 32126 a -30 32126 a +SDict begin 18.2 H.A end + +-30 32126 a -30 32126 a +SDict begin [ /View [/XYZ H.V] /Dest (2402) cvn H.B /DEST pdfmark end + -30 32126 a FP(xwmconfig)377 +b FU(that)g(can)g(be)h(used)f(to)g(select)g(a)h(desktop)f(or)g(windo) +-39 b(w)377 b(manager)-85 b(.)378 b(It)f(is)g(run)h(lik)-15 +b(e)376 b(so:)-30 34012 y +SDict begin H.S end + -30 34012 a -30 34012 a +SDict begin 14.56 H.A end + -30 +34012 a -30 34012 a +SDict begin [ /View [/XYZ H.V] /Dest (2403) cvn H.B /DEST pdfmark end + -30 34012 a -30 34012 a +SDict begin H.S end + -30 34012 +a -30 34012 a +SDict begin 14.56 H.A end + -30 34012 a -30 34012 a +SDict begin [ /View [/XYZ H.V] /Dest (2404) cvn H.B /DEST pdfmark end + -30 34012 a 1276 +x FJ(\045)1309 35288 y +SDict begin H.S end + 1309 35288 a 1309 35288 a +SDict begin 14.56 H.A end + 1309 +35288 a 1309 35288 a +SDict begin [ /View [/XYZ H.V] /Dest (2405) cvn H.B /DEST pdfmark end + 1309 35288 a FH(xwmconfig)-30 35456 +y +SDict begin H.S end + -30 35456 a -30 35456 a +SDict begin 18.2 H.A end + -30 35456 a -30 35456 a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-X-WINDOW-SYSTEM-XWMCONFIG) +cvn H.B /DEST pdfmark end + -30 +35456 a Black 38336 x FR(84)p Black eop end +%%Page: 85 107 +TeXDict begin 85 106 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.85) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 +b(ation)p Black -30 3611 a FX(Figur)-28 b(e)387 b(6-5.)h(Desktop)e +(Con\002guration)g(with)g FV(xorgcon\002g)-30 5477 y +SDict begin H.S end + +-30 5477 a -30 5477 a +SDict begin 18.2 H.A end + -30 5477 a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (2409) cvn H.B /DEST pdfmark end + -30 5477 +a -30 35919 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 35919 a @beginspecial 21 @llx 60 @lly +449 @urx 327 @ury 4280 @rwi @setspecial +%%BeginDocument: x-window-system/xwmconfig.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 449 327 + +/Outterbox +{ newpath moveto +0 260 rlineto +88 0 rlineto +23 61 moveto +425 0 rlineto +0 260 rlineto +-88 0 rlineto +23 87 moveto +425 0 rlineto +closepath } def + +/Innerbox +{ moveto +402 0 rlineto +0 131 rlineto +-402 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +114 318 TitleFont(SELECT DEFAULT WINDOW MANAGER FOR X) show + +34 306 PanelFont (Please select the default window manager to use with the X Window) show +34 292 PanelFont (System. This will define the style of graphical user interface the) show +34 278 PanelFont (computer uses. KDE and GNOME provide the most features. People with) show +34 264 PanelFont (Windows or MacOS experience will find either one easy to use. Other) show +34 250 PanelFont (window managers are easier on system resources, or provide other) show +34 236 PanelFont (unique features.) show + +60 218 ContentFont (xinitrc.kde) show +60 204 ContentFont (xinitrc.gnome) show +60 190 ContentFont (xinitrc.xfce) show +60 176 ContentFont (xinitrc.blackbox) show +60 162 ContentFont (xinitrc.fluxbox) show +60 148 ContentFont (xinitrc.wmaker) show +60 134 ContentFont (xinitrc.fvwm2) show +60 120 ContentFont (xinitrc.fvwm95) show +60 106 ContentFont (xinitrc.twm) show + +171 218 ContentFont (KDE: K Desktop Environment) show +171 204 ContentFont (GNU Network Object Model Environment) show +171 190 ContentFont (The Cholesterol Free Desktop Environment) show +171 176 ContentFont (The blackbox window manager) show +171 162 ContentFont (The fluxbox window manager) show +171 148 ContentFont (WindowMaker) show +171 134 ContentFont (F(?) Virtual Window Manager (version 2.xx)) show +171 120 ContentFont (FVWM2 with a Windows look and feel) show +171 106 ContentFont (Tab Window Manager (very basic)) show + +163 71 ButtonFont (< OK >) show +277 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 35919 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 35919 a 3564 x FU(Y)-170 +b(ou')-15 b(ll)402 b(be)h(gi)-39 b(v)-23 b(en)403 b(a)h(list)f(of)g +(all)g(the)h(desktops)e(and)h(windo)-39 b(w)403 b(managers)g +(installed.)g(Just)g(select)-30 41498 y(the)433 b(one)f(you)h(w)-15 +b(ant)432 b(from)g(the)h(list.)f(Each)h(user)g(on)f(your)h(system)f +(will)g(need)h(to)f(run)h(this)f(pro-)-30 43512 y(gram,)500 +b(since)f(dif)-39 b(ferent)500 b(users)g(can)f(use)h(dif)-39 +b(ferent)500 b(desktops,)f(and)h(not)f(e)-39 b(v)-23 +b(eryone)500 b(will)f(w)-15 b(ant)-30 45527 y(the)387 +b(def)-15 b(ault)387 b(one)g(you)g(selected)g(at)h(installation.)-30 +46637 y +SDict begin H.S end + -30 46637 a -30 46637 a +SDict begin 18.2 H.A end + -30 46637 a -30 46637 +a +SDict begin [ /View [/XYZ H.V] /Dest (2413) cvn H.B /DEST pdfmark end + -30 46637 a 1679 x FU(Then)f(just)g(start)g(up)g(X,)h(and)f(you')-77 +b(re)387 b(good)g(to)g(go.)-30 49427 y +SDict begin H.S end + -30 49427 a -30 +49427 a +SDict begin 18.2 H.A end + -30 49427 a -30 49427 a +SDict begin [ /View [/XYZ H.V] /Dest (X-WINDOW-SYSTEM-XDM) cvn H.B +/DEST pdfmark end + -30 49427 a 5789 x FL(6.5)620 +b Fq(xdm)-30 56360 y +SDict begin H.S end + -30 56360 a -30 56360 a +SDict begin 18.2 H.A end + -30 56360 +a -30 56360 a +SDict begin [ /View [/XYZ H.V] /Dest (2417) cvn H.B /DEST pdfmark end + -30 56360 a 1986 x FU(As)355 b(Linux)f(becomes)g(more)h +(and)g(more)f(useful)h(as)f(a)h(desktop)f(operating)h(system,)f(man)-23 +b(y)354 b(users)-30 60361 y(\002nd)478 b(it)g(desirable)g(for)h(the)f +(machine)h(to)f(boot)g(straight)g(into)g(a)g(graphical)h(en)-62 +b(vironment.)477 b(F)-23 b(or)-30 62376 y(this,)453 b(you)g(will)f +(need)h(to)g(tell)g(Slackw)-15 b(are)452 b(to)h(boot)f(straight)h(into) +f(X,)i(and)f(assign)f(a)h(graphical)-30 64390 y(login)533 +b(manager)-85 b(.)533 b(Slackw)-15 b(are)532 b(ships)h(with)f(three)h +(graphical)g(login)g(tools,)41426 64390 y +SDict begin H.S end + 41426 64390 +a 41426 64390 a +SDict begin 18.2 H.A end + 41426 64390 a 41426 64390 a +SDict begin [ /View [/XYZ H.V] /Dest (2418) cvn H.B /DEST pdfmark end + 41426 64390 +a FP(xdm)p FU(\(1\),)46386 64390 y +SDict begin H.S end + 46386 64390 a 46386 +64390 a +SDict begin 18.2 H.A end + 46386 64390 a 46386 64390 a +SDict begin [ /View [/XYZ H.V] /Dest (2419) cvn H.B /DEST pdfmark end + 46386 64390 a FP(kdm)p +FU(,)g(and)-30 66405 y +SDict begin H.S end + -30 66405 a -30 66405 a +SDict begin 18.2 H.A end + -30 66405 +a -30 66405 a +SDict begin [ /View [/XYZ H.V] /Dest (2420) cvn H.B /DEST pdfmark end + -30 66405 a FP(gdm)p FU(\(1\).)-30 66682 +y +SDict begin H.S end + -30 66682 a -30 66682 a +SDict begin 18.2 H.A end + -30 66682 a -30 66682 a +SDict begin [ /View [/XYZ H.V] /Dest (2421) cvn H.B /DEST pdfmark end + -30 +66682 a -30 66682 a +SDict begin H.S end + -30 66682 a -30 66682 a +SDict begin 18.2 H.A end + -30 66682 +a -30 66682 a +SDict begin [ /View [/XYZ H.V] /Dest (2424) cvn H.B /DEST pdfmark end + -30 66682 a Black 50226 73792 a FR(85)p +Black eop end +%%Page: 86 108 +TeXDict begin 86 107 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.86) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(6)g(X)g(Con\002gur)-23 +b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2426) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2427) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FP(xdm)478 +b FU(is)g(the)g(graphical)g(login)f(manager)h(shipped)f(with)h(the)g +(X.or)-28 b(g)478 b(system.)g(It')-85 b(s)478 b(ubiquitous,)-30 +5626 y(b)-31 b(ut)440 b(not)g(as)g(fully)g(features)g(as)g(alternati) +-39 b(v)-23 b(es.)24866 5626 y +SDict begin H.S end + 24866 5626 a 24866 5626 +a +SDict begin 18.2 H.A end + 24866 5626 a 24866 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (2428) cvn H.B /DEST pdfmark end + 24866 5626 a FP(kdm)440 b +FU(is)f(the)h(graphical)g(login)g(manager)g(shipped)-30 +7640 y(with)432 b(KDE,)g(The)g(K)g(Desktop)f(En)-62 b(vironment.)431 +b(Finally)-101 b(,)31113 7640 y +SDict begin H.S end + 31113 7640 a 31113 7640 +a +SDict begin 18.2 H.A end + 31113 7640 a 31113 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (2429) cvn H.B /DEST pdfmark end + 31113 7640 a FP(gdm)432 b +FU(is)g(the)f(login)h(manager)g(shipped)-30 9655 y(with)438 +b(GNOME.)g(An)-23 b(y)438 b(of)h(the)f(choices)g(will)g(allo)-39 +b(w)439 b(you)f(to)g(log)g(in)g(as)h(an)-23 b(y)438 b(user)-62 +b(,)439 b(and)f(choose)-30 11670 y(what)387 b(desktop)g(you)g(wish)g +(to)g(use.)-30 12780 y +SDict begin H.S end + -30 12780 a -30 12780 a +SDict begin 18.2 H.A end + -30 12780 +a -30 12780 a +SDict begin [ /View [/XYZ H.V] /Dest (2430) cvn H.B /DEST pdfmark end + -30 12780 a 1679 x FU(Unfortunately)-101 +b(,)382 b(Slackw)-15 b(are)382 b(doesn')-28 b(t)382 b(include)g(a)h +(nice)f(program)g(lik)-15 b(e)38377 14459 y +SDict begin H.S end + 38377 14459 +a 38377 14459 a +SDict begin 18.2 H.A end + 38377 14459 a 38377 14459 a +SDict begin [ /View [/XYZ H.V] /Dest (2431) cvn H.B /DEST pdfmark end + 38377 14459 +a FP(xwmconfig)382 b FU(for)g(choos-)-30 16474 y(ing)389 +b(what)h(login)e(manager)i(to)f(use,)h(so)f(if)h(all)f(three)h(are)f +(installed)g(you)g(may)g(ha)-31 b(v)-23 b(e)390 b(to)f(do)g(some)-30 +18489 y(editing)383 b(to)h(choose)f(your)h(preference.)g(But)g +(\002rst,)f(we')-15 b(ll)383 b(discuss)g(ho)-39 b(w)384 +b(to)g(boot)f(into)g(a)h(graphi-)-30 20503 y(cal)k(en)-62 +b(vironment.)-30 20518 y +SDict begin H.S end + -30 20518 a -30 20518 a +SDict begin 18.2 H.A end + -30 +20518 a -30 20518 a +SDict begin [ /View [/XYZ H.V] /Dest (2432) cvn H.B /DEST pdfmark end + -30 20518 a -30 20518 a +SDict begin H.S end + -30 20518 +a -30 20518 a +SDict begin 18.2 H.A end + -30 20518 a -30 20518 a +SDict begin [ /View [/XYZ H.V] /Dest (2434) cvn H.B /DEST pdfmark end + -30 20518 a -30 +21294 a +SDict begin H.S end + -30 21294 a -30 21294 a +SDict begin 18.2 H.A end + -30 21294 a -30 21294 +a +SDict begin [ /View [/XYZ H.V] /Dest (2436) cvn H.B /DEST pdfmark end + -30 21294 a 1999 x FU(In)482 b(order)h(to)f(start)g(X)g(at)g(boot,)g +(you)g(need)g(to)g(boot)g(into)g(run-le)-39 b(v)-23 b(el)482 +b(4.)g(Run-le)-39 b(v)-23 b(els)482 b(are)g(just)g(a)-30 +25308 y(w)-15 b(ay)475 b(of)g(telling)9214 25308 y +SDict begin H.S end + 9214 +25308 a 9214 25308 a +SDict begin 18.2 H.A end + 9214 25308 a 9214 25308 a +SDict begin [ /View [/XYZ H.V] /Dest (2437) cvn H.B /DEST pdfmark end + 9214 25308 +a FP(init)p FU(\(8\))g(to)f(do)h(something)f(dif)-39 +b(ferent)475 b(when)g(it)g(starts)f(the)h(OS.)g(W)-124 +b(e)476 b(do)e(this)-30 27322 y(by)387 b(editing)g(the)g(con\002g)g +(\002le)g(for)17705 27322 y +SDict begin H.S end + 17705 27322 a 17705 27322 +a +SDict begin 18.2 H.A end + 17705 27322 a 17705 27322 a +SDict begin [ /View [/XYZ H.V] /Dest (2438) cvn H.B /DEST pdfmark end + 17705 27322 a FP(init)p +FU(,)21456 27322 y +SDict begin H.S end + 21456 27322 a 21456 27322 a +SDict begin 18.2 H.A end + 21456 +27322 a 21456 27322 a +SDict begin [ /View [/XYZ H.V] /Dest (2439) cvn H.B /DEST pdfmark end + 21456 27322 a FQ(/etc/inittab)p +FU(.)-30 29207 y +SDict begin H.S end + -30 29207 a -30 29207 a +SDict begin 14.56 H.A end + -30 29207 a +-30 29207 a +SDict begin [ /View [/XYZ H.V] /Dest (2440) cvn H.B /DEST pdfmark end + -30 29207 a 1277 x FP(#)744 b(These)f(are)h(the)f(default)g +(runlevels)g(in)h(Slackware:)-30 32095 y(#)2232 b(0)743 +b(=)h(halt)-30 33707 y(#)2232 b(1)743 b(=)h(single)f(user)h(mode)-30 +35319 y(#)2232 b(2)743 b(=)h(unused)f(\(but)h(configured)e(the)i(same)f +(as)h(runlevel)f(3\))-30 36931 y(#)2232 b(3)743 b(=)h(multiuser)f(mode) +g(\(default)g(Slackware)g(runlevel\))-30 38542 y(#)2232 +b(4)743 b(=)h(X11)g(with)f(KDM/GDM/XDM)g(\(session)f(managers\))-30 +40154 y(#)2232 b(5)743 b(=)h(unused)f(\(but)h(configured)e(the)i(same)f +(as)h(runlevel)f(3\))-30 41766 y(#)2232 b(6)743 b(=)h(reboot)-30 +44989 y(#)g(Default)f(runlevel.)g(\(Do)g(not)h(set)f(to)h(0)g(or)f(6\)) +-30 46601 y(id:3:initdefault:)-30 48177 y +SDict begin H.S end + -30 48177 a +-30 48177 a +SDict begin 18.2 H.A end + -30 48177 a -30 48177 a +SDict begin [ /View [/XYZ H.V] /Dest (2441) cvn H.B /DEST pdfmark end + -30 48177 a 1988 +x FU(In)358 b(order)h(to)f(mak)-15 b(e)357 b(Slackw)-15 +b(are)357 b(boot)h(to)g(a)g(graphical)g(en)-62 b(vironment,)358 +b(we)g(just)g(change)g(the)g(3)g(to)-30 52180 y(a)388 +b(4.)-30 53745 y +SDict begin H.S end + -30 53745 a -30 53745 a +SDict begin 14.56 H.A end + -30 53745 a +-30 53745 a +SDict begin [ /View [/XYZ H.V] /Dest (2442) cvn H.B /DEST pdfmark end + -30 53745 a 1458 55342 a FP(#)744 b(Default)f(runlevel.)f +(\(Do)i(not)f(set)h(to)g(0)f(or)h(6\))1458 56953 y(id:4:initdefault:) +-30 58529 y +SDict begin H.S end + -30 58529 a -30 58529 a +SDict begin 18.2 H.A end + -30 58529 a -30 58529 +a +SDict begin [ /View [/XYZ H.V] /Dest (2443) cvn H.B /DEST pdfmark end + -30 58529 a 1989 x FU(No)-39 b(w)411 b(Slackw)-15 b(are)411 +b(will)f(boot)h(into)g(runle)-39 b(v)-23 b(el)410 b(4)h(and)h(e)-23 +b(x)g(ecute)33378 60518 y +SDict begin H.S end + 33378 60518 a 33378 60518 a +SDict begin 18.2 H.A end + +33378 60518 a 33378 60518 a +SDict begin [ /View [/XYZ H.V] /Dest (2444) cvn H.B /DEST pdfmark end + 33378 60518 a FQ(/etc/rc.d/rc.4)p +FU(.)403 b(This)411 b(\002le)f(starts)-30 62532 y(up)394 +b(X)h(and)f(calls)h(whate)-39 b(v)-23 b(er)394 b(login)g(manager)g +(you')-77 b(v)-23 b(e)394 b(chosen.)g(So,)h(ho)-39 b(w)394 +b(do)h(we)f(choose)h(login)-30 64547 y(managers?)492 +b(There)g(are)g(a)h(fe)-39 b(w)492 b(w)-15 b(ays)491 +b(to)h(do)g(this,)g(and)g(I')-15 b(ll)491 b(e)-23 b(xplain)491 +b(them)h(after)g(we)g(look)g(at)-30 66562 y +SDict begin H.S end + -30 66562 +a -30 66562 a +SDict begin 18.2 H.A end + -30 66562 a -30 66562 a +SDict begin [ /View [/XYZ H.V] /Dest (2445) cvn H.B /DEST pdfmark end + -30 66562 a FQ(rc.4)p +FU(.)p Black -30 73792 a FR(86)p Black eop end +%%Page: 87 109 +TeXDict begin 87 108 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.87) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 35138 -1636 a FR(Chapter)386 b(6)i(X)f(Con\002gur)-23 +b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2446) cvn H.B /DEST pdfmark end + -30 2504 a 1458 3611 a FP(#)744 b(Try)f(to)h(use)f +(GNOME's)g(gdm)h(session)f(manager:)1458 5223 y(if)g([)h(-x)g +(/usr/bin/gdm)e(];)i(then)2946 6835 y(exec)f(/usr/bin/gdm)f(-nodaemon) +1458 8446 y(fi)1458 11670 y(#)i(Not)f(there?)1487 b(OK,)744 +b(try)f(to)h(use)f(KDE's)h(kdm)f(session)g(manager:)1458 +13282 y(if)g([)h(-x)g(/opt/kde/bin/kdm)e(];)h(then)2946 +14893 y(exec)g(/opt/kde/bin/kdm)f(-nodaemon)1458 16505 +y(fi)1458 19728 y(#)i(If)f(all)h(you)f(have)h(is)f(XDM,)h(I)f(guess)h +(it)f(will)h(have)f(to)h(do:)1458 21340 y(if)f([)h(-x)g +(/usr/X11R6/bin/xdm)e(];)h(then)2946 22952 y(exec)g(/usr/X11R6/bin/xdm) +f(-nodaemon)1458 24564 y(fi)-30 26113 y +SDict begin H.S end + -30 26113 a -30 +26113 a +SDict begin 18.2 H.A end + -30 26113 a -30 26113 a +SDict begin [ /View [/XYZ H.V] /Dest (2447) cvn H.B /DEST pdfmark end + -30 26113 a 2015 x FU(As)477 +b(you)h(can)f(see)h(here,)13589 28128 y +SDict begin H.S end + 13589 28128 a +13589 28128 a +SDict begin 18.2 H.A end + 13589 28128 a 13589 28128 a +SDict begin [ /View [/XYZ H.V] /Dest (2448) cvn H.B /DEST pdfmark end + 13589 28128 +a FQ(rc.4)d FU(\002rst)i(checks)g(to)h(see)f(if)29720 +28128 y +SDict begin H.S end + 29720 28128 a 29720 28128 a +SDict begin 18.2 H.A end + 29720 28128 a 29720 +28128 a +SDict begin [ /View [/XYZ H.V] /Dest (2449) cvn H.B /DEST pdfmark end + 29720 28128 a FP(gdm)g FU(is)g(e)-23 b(x)g(ecutable,)477 +b(and)h(if)f(so)h(runs)f(it.)-30 30143 y(Second)447 b(on)g(the)g(list)f +(is)13141 30143 y +SDict begin H.S end + 13141 30143 a 13141 30143 a +SDict begin 18.2 H.A end + 13141 30143 +a 13141 30143 a +SDict begin [ /View [/XYZ H.V] /Dest (2450) cvn H.B /DEST pdfmark end + 13141 30143 a FP(kdm)p FU(,)h(and)g(\002nally)23300 +30143 y +SDict begin H.S end + 23300 30143 a 23300 30143 a +SDict begin 18.2 H.A end + 23300 30143 a 23300 +30143 a +SDict begin [ /View [/XYZ H.V] /Dest (2451) cvn H.B /DEST pdfmark end + 23300 30143 a FP(xdm)p FU(.)h(One)f(w)-15 b(ay)446 +b(of)h(choosing)g(a)g(login)f(manager)h(is)-30 32157 +y(to)386 b(simply)f(remo)-23 b(v)g(e)386 b(the)g(ones)g(you)g(don')-28 +b(t)386 b(wish)g(to)g(use)g(using)34107 32157 y +SDict begin H.S end + 34107 +32157 a 34107 32157 a +SDict begin 18.2 H.A end + 34107 32157 a 34107 32157 a +SDict begin [ /View [/XYZ H.V] /Dest (2452) cvn H.B /DEST pdfmark end + 34107 +32157 a FP(removepkg)p FU(.)g(Y)-170 b(ou)385 b(can)i(\002nd)e(out)-30 +34172 y(more)i(about)7373 34172 y +SDict begin H.S end + 7373 34172 a 7373 34172 +a +SDict begin 18.2 H.A end + 7373 34172 a 7373 34172 a +SDict begin [ /View [/XYZ H.V] /Dest (2453) cvn H.B /DEST pdfmark end + 7373 34172 a FP(removepkg)g +FU(in)p 0 TeXcolorgray 16049 34172 a +SDict begin H.S end + 16049 34172 a FU(Chapter)g(18) +22893 34172 y +SDict begin 18.2 H.L end + 22893 34172 a 22893 34172 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 22893 34172 +a Black -1 w FU(.)-30 35282 y +SDict begin H.S end + -30 35282 a -30 35282 a +SDict begin 18.2 H.A end + +-30 35282 a -30 35282 a +SDict begin [ /View [/XYZ H.V] /Dest (2455) cvn H.B /DEST pdfmark end + -30 35282 a 1680 x FU(Optionally)-101 +b(,)314 b(you)h(can)f(remo)-23 b(v)g(e)314 b(the)h(e)-23 +b(x)g(ecutable)314 b(permission)f(from)h(those)h(\002les)f(that)g(you)g +(don')-28 b(t)-30 38976 y(w)-15 b(ant)387 b(to)g(use.)h(W)-124 +b(e)387 b(discuss)15068 38976 y +SDict begin H.S end + 15068 38976 a 15068 38976 +a +SDict begin 18.2 H.A end + 15068 38976 a 15068 38976 a +SDict begin [ /View [/XYZ H.V] /Dest (2456) cvn H.B /DEST pdfmark end + 15068 38976 a FP(chmod)f +FU(in)p 0 TeXcolorgray 20768 38976 a +SDict begin H.S end + 20768 38976 a FU(Chapter)g(9)26836 +38976 y +SDict begin 18.2 H.L end + 26836 38976 a 26836 38976 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE) cvn /H /I +/Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 26836 38976 a Black +FU(.)-30 40862 y +SDict begin H.S end + -30 40862 a -30 40862 a +SDict begin 14.56 H.A end + -30 40862 a +-30 40862 a +SDict begin [ /View [/XYZ H.V] /Dest (2458) cvn H.B /DEST pdfmark end + -30 40862 a -30 40862 a +SDict begin H.S end + -30 40862 a -30 40862 +a +SDict begin 14.56 H.A end + -30 40862 a -30 40862 a +SDict begin [ /View [/XYZ H.V] /Dest (2459) cvn H.B /DEST pdfmark end + -30 40862 a 1276 x FJ(#)1309 +42138 y +SDict begin H.S end + 1309 42138 a 1309 42138 a +SDict begin 14.56 H.A end + 1309 42138 a 1309 42138 +a +SDict begin [ /View [/XYZ H.V] /Dest (2460) cvn H.B /DEST pdfmark end + 1309 42138 a FH(chmod)743 b(-x)h(/usr/bin/gdm)-30 43855 +y +SDict begin H.S end + -30 43855 a -30 43855 a +SDict begin 18.2 H.A end + -30 43855 a -30 43855 a +SDict begin [ /View [/XYZ H.V] /Dest (2461) cvn H.B /DEST pdfmark end + -30 +43855 a 1847 x FU(Finally)-101 b(,)390 b(you)f(can)h(just)f(comment)g +(out)h(the)f(lines)h(for)g(the)f(login)g(manager)h(you)g(don')-28 +b(t)389 b(w)-15 b(ant)389 b(to)-30 47717 y(use.)-30 49282 +y +SDict begin H.S end + -30 49282 a -30 49282 a +SDict begin 14.56 H.A end + -30 49282 a -30 49282 a +SDict begin [ /View [/XYZ H.V] /Dest (2462) cvn H.B /DEST pdfmark end + -30 +49282 a 1458 50878 a FP(#)744 b(Try)f(to)h(use)f(GNOME's)g(gdm)h +(session)f(manager:)1458 52490 y(#)h(if)f([)h(-x)g(/usr/bin/gdm)e(];)i +(then)1458 54102 y(#)2231 b(exec)744 b(/usr/bin/gdm)e(-nodaemon)1458 +55714 y(#)i(fi)1458 58937 y(#)g(Not)f(there?)1487 b(OK,)744 +b(try)f(to)h(use)f(KDE's)h(kdm)f(session)g(manager:)1458 +60549 y(if)g([)h(-x)g(/opt/kde/bin/kdm)e(];)h(then)2946 +62160 y(exec)g(/opt/kde/bin/kdm)f(-nodaemon)1458 63772 +y(fi)1458 66996 y(#)i(If)f(all)h(you)f(have)h(is)f(XDM,)h(I)f(guess)h +(it)f(will)h(have)f(to)h(do:)p Black 50169 73792 a FR(87)p +Black eop end +%%Page: 88 110 +TeXDict begin 88 109 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.88) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(6)g(X)g(Con\002gur)-23 +b(ation)p Black 1458 3611 a FP(if)743 b([)h(-x)g(/usr/X11R6/bin/xdm)e +(];)h(then)2946 5223 y(exec)g(/usr/X11R6/bin/xdm)f(-nodaemon)1458 +6835 y(fi)-30 8384 y +SDict begin H.S end + -30 8384 a -30 8384 a +SDict begin 18.2 H.A end + -30 8384 a +-30 8384 a +SDict begin [ /View [/XYZ H.V] /Dest (2463) cvn H.B /DEST pdfmark end + -30 8384 a 2015 x FU(An)-23 b(y)566 b(lines)f(preceded)h(by) +g(the)g(hash)g(mark)g(\()25084 10399 y +SDict begin H.S end + 25084 10399 a +25084 10399 a +SDict begin 18.2 H.A end + 25084 10399 a 25084 10399 a +SDict begin [ /View [/XYZ H.V] /Dest (2464) cvn H.B /DEST pdfmark end + 25084 10399 +a FP(#)p FU(\))g(are)g(considered)g(comments)f(and)h(the)f(shell)-30 +12414 y(silently)427 b(passes)h(them.)g(Thus,)g(e)-39 +b(v)-23 b(en)428 b(if)21846 12414 y +SDict begin H.S end + 21846 12414 a 21846 +12414 a +SDict begin 18.2 H.A end + 21846 12414 a 21846 12414 a +SDict begin [ /View [/XYZ H.V] /Dest (2465) cvn H.B /DEST pdfmark end + 21846 12414 a FP(gdm)g +FU(is)g(installed)f(and)h(e)-23 b(x)g(ecutable,)427 b(the)h(shell)g +(\(in)g(this)-30 14428 y(case)3025 14428 y +SDict begin H.S end + 3025 14428 +a 3025 14428 a +SDict begin 18.2 H.A end + 3025 14428 a 3025 14428 a +SDict begin [ /View [/XYZ H.V] /Dest (2466) cvn H.B /DEST pdfmark end + 3025 14428 a +FP(bash)p FU(\))387 b(w)-15 b(on')-28 b(t)386 b(bother)h(checking)g +(for)h(it.)p Black -30 73792 a FR(88)p Black eop end +%%Page: 89 111 +TeXDict begin 89 110 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.89) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING) cvn H.B /DEST pdfmark +end + -30 2383 a 2345 x FS(Chapter)894 +b(7)-30 10743 y FO(Booting)p -30 18316 51806 56 v -30 +18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 +a +SDict begin [ /View [/XYZ H.V] /Dest (2469) cvn H.B /DEST pdfmark end + -30 18316 a -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 +18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (2471) cvn H.B /DEST pdfmark end + -30 18316 a -30 18316 a +SDict begin H.S end + -30 18316 +a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (2473) cvn H.B /DEST pdfmark end + -30 18316 a -30 +18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 +a +SDict begin [ /View [/XYZ H.V] /Dest (2475) cvn H.B /DEST pdfmark end + -30 18316 a -30 19091 a +SDict begin H.S end + -30 19091 a -30 19091 a +SDict begin 18.2 H.A end + -30 +19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (2477) cvn H.B /DEST pdfmark end + -30 19091 a 1051 x FU(The)350 b(process)f(of)g +(booting)g(your)g(Linux)g(system)g(can)h(sometimes)e(be)i(easy)f(and)h +(sometimes)e(be)-30 22157 y(dif)-39 b(\002cult.)350 b(Man)-23 +b(y)350 b(users)h(install)e(Slackw)-15 b(are)350 b(on)g(their)g +(computer)g(and)h(that')-85 b(s)350 b(it.)g(The)-23 b(y)350 +b(just)g(turn)-30 24171 y(it)443 b(on)h(and)f(it')-85 +b(s)443 b(ready)h(to)f(use.)h(Othertimes,)f(simply)f(booting)h(the)g +(machine)h(can)f(be)h(a)f(chore.)-30 26186 y(F)-23 b(or)347 +b(most)g(users,)g(LILO)h(w)-15 b(orks)346 b(best.)i(Slackw)-15 +b(are)346 b(includes)h(LILO)g(and)h(Loadlin)e(for)i(booting)-30 +28201 y(Slackw)-15 b(are)401 b(Linux.)g(LILO)h(will)e(w)-15 +b(ork)401 b(from)h(a)f(hard)h(dri)-39 b(v)-23 b(e)401 +b(partition,)g(a)h(hard)f(dri)-39 b(v)-23 b(e')-85 b(s)401 +b(master)-30 30215 y(boot)437 b(record,)h(or)f(a)g(\003opp)-15 +b(y)436 b(disk,)h(making)g(it)g(a)g(v)-23 b(ery)437 b(v)-23 +b(ersatile)437 b(tool.)g(Loadlin)f(w)-15 b(orks)437 b(from)g(a)-30 +32230 y(DOS)387 b(command)g(line,)g(killing)f(DOS)h(and)h(in)-62 +b(v)-31 b(oking)386 b(Linux.)-30 32566 y +SDict begin H.S end + -30 32566 a +-30 32566 a +SDict begin 18.2 H.A end + -30 32566 a -30 32566 a +SDict begin [ /View [/XYZ H.V] /Dest (2478) cvn H.B /DEST pdfmark end + -30 32566 a -30 33340 +a +SDict begin H.S end + -30 33340 a -30 33340 a +SDict begin 18.2 H.A end + -30 33340 a -30 33340 a +SDict begin [ /View [/XYZ H.V] /Dest (2480) cvn H.B /DEST pdfmark end + -30 +33340 a 1680 x FU(Another)451 b(popular)f(utility)g(for)h(booting)f +(Linux)h(is)f(GR)-62 b(UB.)451 b(GR)-62 b(UB)450 b(is)h(not)g(included) +f(or)h(of)-39 b(\002-)-30 37034 y(cially)421 b(supported)f(by)h(Slackw) +-15 b(are.)421 b(Slackw)-15 b(are)420 b(holds)h(to)g(the)34169 +37034 y +SDict begin H.S end + 34169 37034 a 34169 37034 a +SDict begin 18.2 H.A end + 34169 37034 a 34169 +37034 a +SDict begin [ /View [/XYZ H.V] /Dest (2481) cvn H.B /DEST pdfmark end + 34169 37034 a FU(\223tried)g(and)g(true\224)g(standard)g(for) +-30 39049 y(what)544 b(gets)g(included)f(inside)g(the)h(distrib)-31 +b(ution.)543 b(While)h(GR)-62 b(UB)543 b(w)-15 b(orks)543 +b(well)h(and)g(includes)-30 41064 y(some)549 b(features)g(that)g(LILO)g +(does)g(not,)g(LILO)g(handles)g(all)g(the)g(essential)f(tasks)h(of)g(a) +g(boot)-30 43078 y(loader)401 b(reliably)f(with)g(a)h(pro)-23 +b(v)g(en)400 b(track)g(record.)h(Being)f(younger)-62 +b(,)401 b(GR)-62 b(UB)400 b(hasn')-28 b(t)400 b(quite)g(li)-39 +b(v)-23 b(ed)-30 45093 y(up)365 b(to)g(that)f(le)-23 +b(g)-8 b(ac)-23 b(y)365 b(yet.)g(As)g(it)g(is)g(not)f(included)h(with)f +(Slackw)-15 b(are,)365 b(we)g(do)g(not)f(discuss)h(it)f(here.)-30 +47108 y(If)418 b(you)g(wish)f(to)h(use)g(GR)-62 b(UB)417 +b(\(perhaps)h(it)f(came)h(with)g(another)g(Linux)f(OS)g(and)h(you)g(w) +-15 b(ant)417 b(to)-30 49122 y(use)387 b(it)g(to)h(dual-boot\))e +(consult)h(GR)-62 b(UB')-85 b(s)386 b(documentation.)-30 +50175 y +SDict begin H.S end + -30 50175 a -30 50175 a +SDict begin 18.2 H.A end + -30 50175 a -30 50175 +a +SDict begin [ /View [/XYZ H.V] /Dest (2482) cvn H.B /DEST pdfmark end + -30 50175 a 1737 x FU(This)459 b(section)f(co)-23 b(v)g(ers)459 +b(using)f(LILO)h(and)g(Loadlin,)g(the)g(tw)-15 b(o)459 +b(booters)f(included)h(with)f(Slack-)-30 53926 y(w)-15 +b(are.)538 b(It)g(also)f(e)-23 b(xplains)537 b(some)g(typical)g(dual)g +(booting)g(scenarios)g(and)h(ho)-39 b(w)537 b(you)h(could)f(go)-30 +55941 y(about)387 b(setting)g(it)g(up.)-30 56277 y +SDict begin H.S end + -30 +56277 a -30 56277 a +SDict begin 18.2 H.A end + -30 56277 a -30 56277 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-LILO) cvn H.B /DEST pdfmark +end + -30 56277 +a 5789 x FL(7.1)620 b(LILO)-30 62094 y +SDict begin H.S end + -30 62094 a -30 +62094 a +SDict begin 18.2 H.A end + -30 62094 a -30 62094 a +SDict begin [ /View [/XYZ H.V] /Dest (2485) cvn H.B /DEST pdfmark end + -30 62094 a -30 63209 +a +SDict begin H.S end + -30 63209 a -30 63209 a +SDict begin 18.2 H.A end + -30 63209 a -30 63209 a +SDict begin [ /View [/XYZ H.V] /Dest (2488) cvn H.B /DEST pdfmark end + -30 +63209 a 1987 x FU(The)425 b(Linux)f(Loader)-62 b(,)425 +b(or)f(LILO,)h(is)g(the)f(most)g(popular)g(booter)g(in)h(use)f(on)h +(Linux)f(systems.)g(It)-30 67211 y(is)387 b(quite)g(con\002gurable)g +(and)g(can)g(easily)g(be)h(used)f(to)g(boot)g(other)g(operating)g +(systems.)p Black 50226 73672 a FR(89)p Black eop end +%%Page: 90 112 +TeXDict begin 90 111 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.90) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(7)g(Booting)p Black +-30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 +a +SDict begin [ /View [/XYZ H.V] /Dest (2489) cvn H.B /DEST pdfmark end + -30 2383 a 1107 x FU(Slackw)-15 b(are)1192 b(Linux)g(comes)g(with)h +(a)f(menu-dri)-39 b(v)-23 b(en)1192 b(con\002guration)41986 +3490 y +SDict begin H.S end + 41986 3490 a 41986 3490 a +SDict begin 18.2 H.A end + 41986 3490 a 41986 3490 +a +SDict begin [ /View [/XYZ H.V] /Dest (2490) cvn H.B /DEST pdfmark end + 41986 3490 a 1193 w FU(utility)f(called)-30 5505 y +SDict begin H.S end + +-30 5505 a -30 5505 a +SDict begin 18.2 H.A end + -30 5505 a -30 5505 a +SDict begin [ /View [/XYZ H.V] /Dest (2493) cvn H.B /DEST pdfmark end + -30 5505 +a FP(liloconfig)p FU(.)436 b(This)h(program)f(is)h(\002rst)f(run)h +(during)f(the)h(setup)g(process,)g(b)-31 b(ut)436 b(you)h(can)g(in)-62 +b(v)-31 b(ok)-15 b(e)-30 7520 y(it)387 b(later)g(by)h(typing)10646 +7520 y +SDict begin H.S end + 10646 7520 a 10646 7520 a +SDict begin 18.2 H.A end + 10646 7520 a 10646 7520 +a +SDict begin [ /View [/XYZ H.V] /Dest (2494) cvn H.B /DEST pdfmark end + 10646 7520 a FP(liloconfig)e FU(at)i(the)f(prompt.)-30 +8630 y +SDict begin H.S end + -30 8630 a -30 8630 a +SDict begin 18.2 H.A end + -30 8630 a -30 8630 a +SDict begin [ /View [/XYZ H.V] /Dest (2495) cvn H.B /DEST pdfmark end + -30 +8630 a 1679 x FU(LILO)340 b(reads)g(its)g(settings)f(from)h(the)19917 +10309 y +SDict begin H.S end + 19917 10309 a 19917 10309 a +SDict begin 18.2 H.A end + 19917 10309 a 19917 +10309 a +SDict begin [ /View [/XYZ H.V] /Dest (2496) cvn H.B /DEST pdfmark end + 19917 10309 a FP(/etc/lilo.conf)p FU(\(5\))f(\002le.)h(It)g(is) +g(not)g(read)g(each)h(time)e(you)-30 12324 y(boot)385 +b(up,)g(b)-31 b(ut)385 b(instead)g(is)g(read)h(each)f(time)g(you)g +(install)f(LILO.)i(LILO)f(must)f(be)i(reinstalled)e(to)-30 +14338 y(the)336 b(boot)g(sector)h(each)f(time)g(you)g(mak)-15 +b(e)336 b(a)h(con\002guration)e(change.)i(Man)-23 b(y)335 +b(LILO)i(errors)f(come)-30 16353 y(from)488 b(making)f(changes)g(to)g +(the)18162 16353 y +SDict begin H.S end + 18162 16353 a 18162 16353 a +SDict begin 18.2 H.A end + 18162 +16353 a 18162 16353 a +SDict begin [ /View [/XYZ H.V] /Dest (2497) cvn H.B /DEST pdfmark end + 18162 16353 a FQ(lilo.conf)482 +b FU(\002le,)488 b(b)-31 b(ut)487 b(f)-15 b(ailing)487 +b(to)g(re-run)h(lilo)f(to)g(install)g(these)-30 18368 +y(changes.)5682 18368 y +SDict begin H.S end + 5682 18368 a 5682 18368 a +SDict begin 18.2 H.A end + 5682 +18368 a 5682 18368 a +SDict begin [ /View [/XYZ H.V] /Dest (2498) cvn H.B /DEST pdfmark end + 5682 18368 a FP(liloconfig)331 b +FU(will)h(help)g(you)g(b)-31 b(uild)332 b(the)g(con\002guration)f +(\002le)h(so)g(that)g(you)g(can)h(install)-30 20382 y(LILO)384 +b(for)f(your)h(system.)f(If)h(you)g(prefer)g(to)f(edit)26879 +20382 y +SDict begin H.S end + 26879 20382 a 26879 20382 a +SDict begin 18.2 H.A end + 26879 20382 a 26879 +20382 a +SDict begin [ /View [/XYZ H.V] /Dest (2499) cvn H.B /DEST pdfmark end + 26879 20382 a FQ(/etc/lilo.conf)375 b FU(by)384 +b(hand,)g(then)f(reinstalling)-30 22397 y(LILO)k(just)g(in)-62 +b(v)-31 b(olv)-23 b(es)386 b(typing)16385 22397 y +SDict begin H.S end + 16385 +22397 a 16385 22397 a +SDict begin 18.2 H.A end + 16385 22397 a 16385 22397 a +SDict begin [ /View [/XYZ H.V] /Dest (2500) cvn H.B /DEST pdfmark end + 16385 +22397 a FP(/sbin/lilo)g FU(\(as)26406 22397 y +SDict begin H.S end + 26406 22397 +a 26406 22397 a +SDict begin 18.2 H.A end + 26406 22397 a 26406 22397 a +SDict begin [ /View [/XYZ H.V] /Dest (2501) cvn H.B /DEST pdfmark end + 26406 22397 +a FP(root)p FU(\))h(at)g(the)g(prompt.)-30 23507 y +SDict begin H.S end + -30 +23507 a -30 23507 a +SDict begin 18.2 H.A end + -30 23507 a -30 23507 a +SDict begin [ /View [/XYZ H.V] /Dest (2502) cvn H.B /DEST pdfmark end + -30 23507 +a 1680 x FU(When)g(you)g(\002rst)g(in)-62 b(v)-31 b(ok)-15 +b(e)14067 25187 y +SDict begin H.S end + 14067 25187 a 14067 25187 a +SDict begin 18.2 H.A end + 14067 25187 +a 14067 25187 a +SDict begin [ /View [/XYZ H.V] /Dest (2503) cvn H.B /DEST pdfmark end + 14067 25187 a FP(liloconfig)p FU(,)386 +b(it)h(will)g(look)g(lik)-15 b(e)386 b(this:)-30 25522 +y +SDict begin H.S end + -30 25522 a -30 25522 a +SDict begin 18.2 H.A end + -30 25522 a -30 25522 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-SETUP-LILO) cvn H.B /DEST +pdfmark end + -30 +25522 a 4004 x FX(Figur)-28 b(e)387 b(7-1.)h FV(lilocon\002g)-30 +31392 y +SDict begin H.S end + -30 31392 a -30 31392 a +SDict begin 18.2 H.A end + -30 31392 a -30 31392 +a +SDict begin [ /View [/XYZ H.V] /Dest (2507) cvn H.B /DEST pdfmark end + -30 31392 a -30 57389 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 57389 a @beginspecial 21 +@llx 60 @lly 419 @urx 287 @ury 3980 @rwi @setspecial +%%BeginDocument: booting/setup-lilo.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 419 287 + +/Outterbox +{ newpath moveto +0 221 rlineto +138 0 rlineto +23 61 moveto +395 0 rlineto +0 221 rlineto +-170 0 rlineto +23 87 moveto +395 0 rlineto +closepath } def + +/Innerbox +{ moveto +372 0 rlineto +0 52 rlineto +-372 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +165 277 TitleFont(INSTALL LILO) show + +34 265 PanelFont (LILO (Linux Loader) is a generic boot loader. There's a simple) show +34 252 PanelFont (installation which tries to automatically set up LILO to boot) show +34 239 PanelFont (Linux (also DOS/Windows if found). For more advanced users,) show +34 226 PanelFont (the expert option offers more control over the installation) show +34 213 PanelFont (process. Since LILO does not work in all cases \(and can damage) show +34 200 PanelFont (partitions if incorrectly installed\), there's the third (safe)) show +34 187 PanelFont (option, which is to skip installing LILO for now. You can) show +34 174 PanelFont (always install it later with the 'liloconfig' command. Which) show +34 160 PanelFont (option would you like?) show + +98 137 ContentFont (simple) show +98 122 ContentFont (expert) show +98 109 ContentFont (skip) show + +140 137 ContentFont (Try to install LILO automatically) show +140 122 ContentFont (Use expert lilo.conf setup menu) show +140 109 ContentFont (Do not install LILO) show + +123 71 ButtonFont (< OK >) show +237 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 57389 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 57389 a -30 58939 a +SDict begin H.S end + -30 +58939 a -30 58939 a +SDict begin 18.2 H.A end + -30 58939 a -30 58939 a +SDict begin [ /View [/XYZ H.V] /Dest (2510) cvn H.B /DEST pdfmark end + -30 58939 +a 2014 x FU(If)512 b(this)f(is)h(your)f(\002rst)g(time)h(setting)f(up)g +(LILO,)h(you)g(should)f(pick)g(simple.)h(Otherwise,)f(you)-30 +62968 y(might)528 b(\002nd)f(e)-23 b(xpert)528 b(to)h(be)f(f)-15 +b(aster)528 b(if)g(you)g(are)h(f)-15 b(amiliar)527 b(with)h(LILO)g(and) +h(Linux.)f(Selecting)-30 64983 y(simple)387 b(will)f(be)-23 +b(gin)387 b(the)g(LILO)h(con\002guration.)-30 66093 y +SDict begin H.S end + +-30 66093 a -30 66093 a +SDict begin 18.2 H.A end + -30 66093 a -30 66093 a +SDict begin [ /View [/XYZ H.V] /Dest (2511) cvn H.B /DEST pdfmark end + -30 66093 +a 1679 x FU(If)517 b(k)-15 b(ernel)517 b(frame)g(b)-31 +b(uf)-39 b(fer)517 b(support)g(is)f(compiled)g(into)h(your)g(k)-15 +b(ernel,)38309 67772 y +SDict begin H.S end + 38309 67772 a 38309 67772 a +SDict begin 18.2 H.A end + 38309 +67772 a 38309 67772 a +SDict begin [ /View [/XYZ H.V] /Dest (2512) cvn H.B /DEST pdfmark end + 38309 67772 a 38826 67772 a +SDict begin H.S end + 38826 +67772 a 38826 67772 a +SDict begin 18.2 H.A end + 38826 67772 a 38826 67772 a +SDict begin [ /View [/XYZ H.V] /Dest (2515) cvn H.B /DEST pdfmark end + 38826 +67772 a FP(liloconfig)516 b FU(will)g(ask)p Black -30 +73672 a FR(90)p Black eop end +%%Page: 91 113 +TeXDict begin 91 112 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.91) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 40238 -1636 a FR(Chapter)387 b(7)g(Booting)p +Black -30 3611 a FU(which)376 b(video)g(resolution)f(you)i(w)-15 +b(ould)375 b(lik)-15 b(e)375 b(to)i(use.)f(This)g(is)g(the)h +(resolution)e(that)h(is)g(also)g(used)-30 5626 y(by)327 +b(the)g(XFree86)g(frame)g(b)-31 b(uf)-39 b(fer)328 b(serv)-23 +b(er)-85 b(.)327 b(If)g(you)g(do)g(not)g(w)-15 b(ant)326 +b(the)h(console)g(to)g(run)g(in)g(a)g(special)-30 7640 +y(video)387 b(mode,)g(selecting)g(normal)g(will)g(k)-15 +b(eep)387 b(the)g(standard)g(80x25)f(te)-23 b(xt)387 +b(mode)g(in)g(use.)-30 8751 y +SDict begin H.S end + -30 8751 a -30 8751 a +SDict begin 18.2 H.A end + -30 +8751 a -30 8751 a +SDict begin [ /View [/XYZ H.V] /Dest (2516) cvn H.B /DEST pdfmark end + -30 8751 a 1679 x FU(The)318 b(ne)-23 +b(xt)318 b(part)g(of)g(the)g(LILO)g(con\002guration)f(is)h(selecting)f +(where)i(you)e(w)-15 b(ant)318 b(it)g(installed.)f(This)-30 +12445 y(is)387 b(probably)g(the)g(most)g(important)f(step.)i(The)f +(list)g(belo)-39 b(w)387 b(e)-23 b(xplains)386 b(the)h(installation)f +(places:)-30 12780 y +SDict begin H.S end + -30 12780 a -30 12780 a +SDict begin 18.2 H.A end + -30 12780 +a -30 12780 a +SDict begin [ /View [/XYZ H.V] /Dest (2517) cvn H.B /DEST pdfmark end + -30 12780 a -30 15105 a +SDict begin H.S end + -30 15105 a -30 +15105 a +SDict begin 18.2 H.A end + -30 15105 a -30 15105 a +SDict begin [ /View [/XYZ H.V] /Dest (2519) cvn H.B /DEST pdfmark end + -30 15105 a -30 15105 +a +SDict begin H.S end + -30 15105 a -30 15105 a +SDict begin 18.2 H.A end + -30 15105 a -30 15105 a +SDict begin [ /View [/XYZ H.V] /Dest (2520) cvn H.B /DEST pdfmark end + -30 +15105 a 1679 x FP(Root)-30 16810 y +SDict begin H.S end + -30 16810 a -30 16810 +a +SDict begin 18.2 H.A end + -30 16810 a -30 16810 a +SDict begin [ /View [/XYZ H.V] /Dest (2521) cvn H.B /DEST pdfmark end + -30 16810 a Black Black 3070 +19573 a +SDict begin H.S end + 3070 19573 a 3070 19573 a +SDict begin 18.2 H.A end + 3070 19573 a 3070 19573 +a +SDict begin [ /View [/XYZ H.V] /Dest (2522) cvn H.B /DEST pdfmark end + 3070 19573 a FU(This)g(option)h(installs)f(LILO)h(to)g(the)g(be)-23 +b(ginning)386 b(of)h(your)g(Linux)g(root)g(partition.)f(This)h(is)3070 +21588 y(the)443 b(safest)f(option)h(if)g(you)g(ha)-31 +b(v)-23 b(e)443 b(other)f(operating)h(systems)f(on)h(your)g(computer) +-85 b(.)443 b(It)g(en-)3070 23603 y(sures)377 b(that)g(an)-23 +b(y)376 b(other)i(booters)e(are)i(not)f(o)-23 b(v)g(erwritten.)376 +b(The)h(disadv)-39 b(antage)377 b(is)g(that)g(LILO)3070 +25617 y(will)468 b(only)g(load)h(from)f(here)h(if)g(your)g(Linux)f(dri) +-39 b(v)-23 b(e)469 b(is)f(the)h(\002rst)f(dri)-39 b(v)-23 +b(e)469 b(on)g(your)f(system.)3070 27632 y(This)367 b(is)g(wh)-8 +b(y)367 b(man)-23 b(y)367 b(people)g(chose)h(to)f(create)h(a)g(v)-23 +b(ery)367 b(small)36326 27632 y +SDict begin H.S end + 36326 27632 a 36326 27632 +a +SDict begin 18.2 H.A end + 36326 27632 a 36326 27632 a +SDict begin [ /View [/XYZ H.V] /Dest (2523) cvn H.B /DEST pdfmark end + 36326 27632 a FQ(/boot)d +FU(partition)j(as)g(the)g(\002rst)3070 29647 y(dri)-39 +b(v)-23 b(e)520 b(on)g(their)g(system.)g(This)g(allo)-39 +b(ws)520 b(the)g(k)-15 b(ernel)520 b(and)h(LILO)f(to)g(be)g(installed)g +(at)g(the)3070 31661 y(be)-23 b(ginning)458 b(of)h(the)g(dri)-39 +b(v)-23 b(e)459 b(where)g(LILO)g(can)h(\002nd)f(them.)g(Pre)-39 +b(vious)458 b(v)-23 b(ersions)459 b(of)g(LILO)3070 33676 +y(contained)384 b(an)h(inf)-15 b(amous)383 b(\003a)-23 +b(w)385 b(kno)-39 b(wn)384 b(as)h(the)29015 33676 y +SDict begin H.S end + 29015 +33676 a 29015 33676 a +SDict begin 18.2 H.A end + 29015 33676 a 29015 33676 a +SDict begin [ /View [/XYZ H.V] /Dest (2524) cvn H.B /DEST pdfmark end + 29015 +33676 a FU(\2231024)f(c)-23 b(ylinder)385 b(limit\224.)f(LILO)h(w)-15 +b(as)384 b(un-)3070 35691 y(able)478 b(to)g(boot)g(k)-15 +b(ernels)478 b(on)g(partitions)g(past)g(the)g(1024th)g(c)-23 +b(ylinder)-85 b(.)478 b(Recent)g(editions)g(of)3070 37705 +y(LILO)387 b(ha)-31 b(v)-23 b(e)387 b(eliminated)f(this)h(problem.)-30 +39591 y +SDict begin H.S end + -30 39591 a -30 39591 a +SDict begin 18.2 H.A end + -30 39591 a -30 39591 +a +SDict begin [ /View [/XYZ H.V] /Dest (2526) cvn H.B /DEST pdfmark end + -30 39591 a -30 39591 a +SDict begin H.S end + -30 39591 a -30 39591 a +SDict begin 18.2 H.A end + -30 +39591 a -30 39591 a +SDict begin [ /View [/XYZ H.V] /Dest (2527) cvn H.B /DEST pdfmark end + -30 39591 a 1679 x FP(Floppy)-30 +41465 y +SDict begin H.S end + -30 41465 a -30 41465 a +SDict begin 18.2 H.A end + -30 41465 a -30 41465 +a +SDict begin [ /View [/XYZ H.V] /Dest (2528) cvn H.B /DEST pdfmark end + -30 41465 a Black Black 3070 44059 a +SDict begin H.S end + 3070 44059 a 3070 +44059 a +SDict begin 18.2 H.A end + 3070 44059 a 3070 44059 a +SDict begin [ /View [/XYZ H.V] /Dest (2529) cvn H.B /DEST pdfmark end + 3070 44059 a FU(This)462 +b(method)g(is)h(e)-39 b(v)-23 b(en)463 b(safer)g(than)f(the)h(pre)-39 +b(vious)462 b(one.)i(It)35445 44059 y +SDict begin H.S end + 35445 44059 a 35445 +44059 a +SDict begin 18.2 H.A end + 35445 44059 a 35445 44059 a +SDict begin [ /View [/XYZ H.V] /Dest (2530) cvn H.B /DEST pdfmark end + 35445 44059 a 463 +w FU(creates)f(a)g(boot)g(\003opp)-15 b(y)461 b(that)3070 +46074 y(you)601 b(can)i(use)f(to)f(boot)h(your)g(Linux)f(system.)h +(This)g(k)-15 b(eeps)601 b(the)h(booter)g(of)-39 b(f)602 +b(the)g(hard)3070 48089 y(disk)532 b(entirely)-101 b(,)533 +b(so)f(you)h(only)f(boot)g(this)h(\003opp)-15 b(y)531 +b(when)i(you)f(w)-15 b(ant)532 b(to)h(use)f(Slackw)-15 +b(are.)3070 50103 y(The)417 b(\003a)-23 b(ws)416 b(with)h(this)f +(method)g(are)i(ob)-23 b(vious.)416 b(Floppies)g(are)h(notoriously)f +(\002ckle,)h(prone)3070 52118 y(to)611 b(f)-15 b(ailures.)611 +b(Secondly)-101 b(,)611 b(the)h(boot)f(loader)g(is)g(no)h(longer)f +(self-contained)f(within)h(the)3070 54133 y(computer)-85 +b(.)495 b(If)i(you)f(loose)f(your)h(\003opp)-15 b(y)495 +b(disk,)h(you')-15 b(ll)495 b(ha)-31 b(v)-23 b(e)496 +b(to)g(mak)-15 b(e)496 b(another)f(to)h(boot)3070 56147 +y(your)387 b(system.)-30 58033 y +SDict begin H.S end + -30 58033 a -30 58033 +a +SDict begin 18.2 H.A end + -30 58033 a -30 58033 a +SDict begin [ /View [/XYZ H.V] /Dest (2533) cvn H.B /DEST pdfmark end + -30 58033 a -30 58033 a +SDict begin H.S end + -30 +58033 a -30 58033 a +SDict begin 18.2 H.A end + -30 58033 a -30 58033 a +SDict begin [ /View [/XYZ H.V] /Dest (2534) cvn H.B /DEST pdfmark end + -30 58033 +a 1679 x FP(MBR)-30 59712 y +SDict begin H.S end + -30 59712 a -30 59712 a +SDict begin 18.2 H.A end + -30 +59712 a -30 59712 a +SDict begin [ /View [/XYZ H.V] /Dest (2535) cvn H.B /DEST pdfmark end + -30 59712 a Black Black 3070 62501 +a +SDict begin H.S end + 3070 62501 a 3070 62501 a +SDict begin 18.2 H.A end + 3070 62501 a 3070 62501 a +SDict begin [ /View [/XYZ H.V] /Dest (2536) cvn H.B /DEST pdfmark end + +3070 62501 a FU(Y)-170 b(ou)569 b(will)g(w)-15 b(ant)570 +b(to)g(use)g(this)f(method)h(if)g(Slackw)-15 b(are)569 +b(is)h(the)g(only)f(operating)h(system)3070 64516 y(on)536 +b(your)g(computer)-62 b(,)536 b(or)g(if)h(you)f(will)g(be)g(using)g +(LILO)g(to)g(choose)g(between)g(multiple)3070 66531 y(operating)596 +b(systems)g(on)h(your)g(computer)-85 b(.)596 b(This)h(is)f(the)h(most)f +(preferred)i(method)e(for)p Black 50226 73792 a FR(91)p +Black eop end +%%Page: 92 114 +TeXDict begin 92 113 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.92) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-LOADLIN) cvn H.B /DEST +pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(7)g(Booting)p Black 3070 3611 a FU(installing)f(LILO)h(and)g(will)g +(w)-15 b(ork)387 b(with)f(almost)h(an)-23 b(y)387 b(computer)g(system.) +-30 3947 y +SDict begin H.S end + -30 3947 a -30 3947 a +SDict begin 16.9 H.A end + -30 3947 a -30 3947 +a +SDict begin [ /View [/XYZ H.V] /Dest (2537) cvn H.B /DEST pdfmark end + -30 3947 a -30 6271 a +SDict begin H.S end + -30 6271 a -30 6271 a +SDict begin 16.9 H.A end + -30 6271 +a -30 6271 a +SDict begin [ /View [/XYZ H.V] /Dest (2538) cvn H.B /DEST pdfmark end + -30 6271 a 6169 7806 a Fu(W)-58 b(arning:)626 +b Ft(This)f(option)h(will)f(o)-22 b(v)-36 b(erwr)22 b(ite)626 +b(an)-22 b(y)624 b(other)h(booter)h(y)-29 b(ou)624 b(ha)-29 +b(v)-36 b(e)625 b(in)g(the)6169 9677 y(MBR.)-30 16806 +y +SDict begin H.S end + -30 16806 a -30 16806 a +SDict begin 18.2 H.A end + -30 16806 a -30 16806 a +SDict begin [ /View [/XYZ H.V] /Dest (2539) cvn H.B /DEST pdfmark end + -30 +16806 a 2015 x FU(After)369 b(selecting)f(the)h(installation)e +(location,)24757 18821 y +SDict begin H.S end + 24757 18821 a 24757 18821 a +SDict begin 18.2 H.A end + +24757 18821 a 24757 18821 a +SDict begin [ /View [/XYZ H.V] /Dest (2540) cvn H.B /DEST pdfmark end + 24757 18821 a FP(liloconfig)h +FU(will)g(write)h(the)g(con\002guration)e(\002le)-30 +20835 y(and)435 b(install)f(LILO.)i(That')-85 b(s)434 +b(it.)h(If)h(you)e(select)h(the)g(e)-23 b(xpert)435 b(mode)g(you)f +(will)h(recei)-39 b(v)-23 b(e)435 b(a)g(special)-30 22850 +y(menu.)519 b(This)g(menu)g(allo)-39 b(ws)518 b(you)h(to)g(tweak)g(the) +27286 22850 y +SDict begin H.S end + 27286 22850 a 27286 22850 a +SDict begin 18.2 H.A end + 27286 22850 +a 27286 22850 a +SDict begin [ /View [/XYZ H.V] /Dest (2541) cvn H.B /DEST pdfmark end + 27286 22850 a FQ(/etc/lilo.conf)510 b +FU(\002le,)520 b(add)f(other)g(operating)-30 24865 y(systems)433 +b(to)g(your)g(boot)g(menu,)g(and)g(set)h(LILO)f(to)g(pass)g(special)g +(k)-15 b(ernel)433 b(parameters)g(at)g(boot)-30 26879 +y(time.)387 b(The)h(e)-23 b(xpert)387 b(menu)g(looks)f(lik)-15 +b(e)387 b(this:)-30 27215 y +SDict begin H.S end + -30 27215 a -30 27215 a +SDict begin 18.2 H.A end + -30 +27215 a -30 27215 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-LILO-EXPERT) cvn H.B +/DEST pdfmark end + -30 27215 a 4004 x FX(Figur)-28 b(e)387 +b(7-2.)h FV(lilocon\002g)e FX(Expert)g(Menu)-30 33085 +y +SDict begin H.S end + -30 33085 a -30 33085 a +SDict begin 18.2 H.A end + -30 33085 a -30 33085 a +SDict begin [ /View [/XYZ H.V] /Dest (2545) cvn H.B /DEST pdfmark end + -30 +33085 a -30 63415 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 63415 a @beginspecial 22 @llx +60 @lly 455 @urx 326 @ury 4330 @rwi @setspecial +%%BeginDocument: booting/setup-lilo-expert.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 22 60 455 326 + +/Outterbox +{ newpath moveto +0 259 rlineto +118 0 rlineto +23 61 moveto +431 0 rlineto +0 259 rlineto +-145 0 rlineto +23 87 moveto +431 0 rlineto +closepath } def + +/Innerbox +{ moveto +408 0 rlineto +0 116 rlineto +-408 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +143 317 TitleFont(EXPERT LILO INSTALLATION) show + +34 306 PanelFont (This menu directs the creation of the LILO config file, lilo.conf. To) show +34 292 PanelFont (install, you make a new LILO configuration file by creating a new) show +34 278 PanelFont (header and then adding one or more bootable partitions to the file.) show +34 264 PanelFont (Once you've done this, you can select the install option.) show +34 250 PanelFont (Alternately, if you already have an /etc/lilo.conf, you may reinstall) show +34 236 PanelFont (using that. If you make a mistake, you can always start over by) show +34 222 PanelFont (choosing 'Begin'. Which option would you like?) show + +58 204 ContentFont (Begin) show +58 190 ContentFont (Linux) show +58 176 ContentFont (DOS) show +58 162 ContentFont (Install) show +58 148 ContentFont (Recycle) show +58 134 ContentFont (Skip) show +58 120 ContentFont (View) show +58 106 ContentFont (Help) show + +108 204 ContentFont (Start LILO configuration with a new LILO header) show +108 190 ContentFont (Add a Linux partition to the LILO config) show +108 176 ContentFont (Add a DOS/Windows FAT partition to the LILO config) show +108 162 ContentFont (Install LILO) show +108 148 ContentFont (Reinstall LILO using the existing lilo.conf) show +108 134 ContentFont (Skip LILO installation and exit this menu) show +108 120 ContentFont (View your current /etc/lilo.conf) show +108 106 ContentFont (Read the Linux Loader HELP file) show + +175 71 ButtonFont (< OK >) show +265 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 63415 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 63415 a -30 64965 a +SDict begin H.S end + -30 +64965 a -30 64965 a +SDict begin 18.2 H.A end + -30 64965 a -30 64965 a +SDict begin [ /View [/XYZ H.V] /Dest (2548) cvn H.B /DEST pdfmark end + -30 64965 +a 2014 x FU(Whate)-39 b(v)-23 b(er)566 b(your)f(system)g +(con\002guration)g(is,)g(setting)g(up)h(a)g(w)-15 b(orking)564 +b(boot)h(loader)h(is)f(easy)-101 b(.)p Black -30 73792 +a FR(92)p Black eop end +%%Page: 93 115 +TeXDict begin 93 114 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.93) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 40238 -1636 a FR(Chapter)387 b(7)g(Booting)p +Black -30 3611 a +SDict begin H.S end + -30 3611 a -30 3611 a +SDict begin 18.2 H.A end + -30 3611 a -30 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2549) cvn H.B /DEST pdfmark end + -30 3611 a FP(liloconfig)f FU(mak)-15 b(es)387 +b(setting)f(it)h(up)h(a)f(cinch.)-30 4721 y +SDict begin H.S end + -30 4721 +a -30 4721 a +SDict begin 18.2 H.A end + -30 4721 a -30 4721 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-LOADLIN) cvn H.B /DEST +pdfmark end + -30 4721 a 5790 x +FL(7.2)620 b(LO)-112 b(ADLIN)-30 11654 y +SDict begin H.S end + -30 11654 a +-30 11654 a +SDict begin 18.2 H.A end + -30 11654 a -30 11654 a +SDict begin [ /View [/XYZ H.V] /Dest (2552) cvn H.B /DEST pdfmark end + -30 11654 a 1987 +x FU(The)443 b(other)g(booting)e(option)i(that)f(comes)h(with)f(Slackw) +-15 b(are)442 b(Linux)g(is)38906 13641 y +SDict begin H.S end + 38906 13641 +a 38906 13641 a +SDict begin 18.2 H.A end + 38906 13641 a 38906 13641 a +SDict begin [ /View [/XYZ H.V] /Dest (2553) cvn H.B /DEST pdfmark end + 38906 13641 +a 443 w FU(LO)-54 b(ADLIN.)442 b(LO)-54 b(AD-)-30 15656 +y(LIN)322 b(is)g(a)g(DOS)f(e)-23 b(x)g(ecutable)321 b(that)h(can)g(be)g +(used)g(to)g(start)f(Linux)h(from)f(a)i(running)e(DOS)g(system.)-30 +17670 y(It)440 b(requires)f(the)h(Linux)f(k)-15 b(ernel)439 +b(to)h(be)f(on)h(the)f(DOS)h(partition)e(so)i(that)f(LO)-54 +b(ADLIN)439 b(can)h(load)-30 19685 y(it)387 b(and)g(properly)g(boot)g +(the)g(system.)-30 20795 y +SDict begin H.S end + -30 20795 a -30 20795 a +SDict begin 18.2 H.A end + -30 +20795 a -30 20795 a +SDict begin [ /View [/XYZ H.V] /Dest (2555) cvn H.B /DEST pdfmark end + -30 20795 a 1680 x FU(During)453 +b(the)g(installation)f(process,)h(LO)-54 b(ADLIN)453 +b(will)g(be)g(copied)g(to)g(root')-85 b(s)452 b(home)h(directory)-30 +24489 y(as)430 b(a)g(.ZIP)g(\002le.)g(There)h(is)e(no)h(automatic)f +(setup)h(process)g(for)g(LO)-54 b(ADLIN.)429 b(Y)-170 +b(ou)430 b(will)f(need)h(to)-30 26504 y(cop)-15 b(y)478 +b(the)h(Linux)g(k)-15 b(ernel)478 b(\(typically)20756 +26504 y +SDict begin H.S end + 20756 26504 a 20756 26504 a +SDict begin 18.2 H.A end + 20756 26504 a 20756 +26504 a +SDict begin [ /View [/XYZ H.V] /Dest (2556) cvn H.B /DEST pdfmark end + 20756 26504 a FQ(/boot/vmlinuz)p FU(\))471 b(and)479 +b(the)g(LO)-54 b(ADLIN)478 b(\002le)h(from)g(root')-85 +b(s)-30 28519 y(home)387 b(directory)g(to)g(the)g(DOS)g(partition.)-30 +29629 y +SDict begin H.S end + -30 29629 a -30 29629 a +SDict begin 18.2 H.A end + -30 29629 a -30 29629 +a +SDict begin [ /View [/XYZ H.V] /Dest (2557) cvn H.B /DEST pdfmark end + -30 29629 a 1679 x FU(LO)-54 b(ADLIN)409 b(is)h(useful)g(if)g(you)f +(w)-15 b(ould)409 b(lik)-15 b(e)409 b(to)h(mak)-15 b(e)409 +b(a)h(boot)g(menu)f(on)h(your)g(DOS)f(partition.)-30 +33323 y(A)488 b(menu)g(could)g(be)h(added)f(to)g(your)20605 +33323 y +SDict begin H.S end + 20605 33323 a 20605 33323 a +SDict begin 18.2 H.A end + 20605 33323 a 20605 +33323 a +SDict begin [ /View [/XYZ H.V] /Dest (2558) cvn H.B /DEST pdfmark end + 20605 33323 a FQ(AUTOEXEC.BAT)481 b FU(\002le)488 +b(that)g(w)-15 b(ould)487 b(allo)-39 b(w)489 b(you)f(to)g(pick)g(be-) +-30 35337 y(tween)474 b(Linux)g(or)g(DOS.)g(A)g(choice)g(of)g(Linux)f +(w)-15 b(ould)474 b(run)g(LO)-54 b(ADLIN,)473 b(thus)h(booting)f(your) +-30 37352 y(Slackw)-15 b(are)360 b(system.)f(This)14938 +37352 y +SDict begin H.S end + 14938 37352 a 14938 37352 a +SDict begin 18.2 H.A end + 14938 37352 a 14938 +37352 a +SDict begin [ /View [/XYZ H.V] /Dest (2559) cvn H.B /DEST pdfmark end + 14938 37352 a FQ(AUTOEXEC.BAT)353 b FU(\002le)360 +b(under)g(W)-62 b(indo)-39 b(ws)360 b(95)g(will)g(pro)-23 +b(vide)359 b(a)i(suf)-39 b(\002cient)-30 39367 y(boot)387 +b(menu:)-30 40932 y +SDict begin H.S end + -30 40932 a -30 40932 a +SDict begin 14.56 H.A end + -30 40932 +a -30 40932 a +SDict begin [ /View [/XYZ H.V] /Dest (2560) cvn H.B /DEST pdfmark end + -30 40932 a 2202 42528 a FP(@ECHO)743 b(OFF)2202 +44140 y(SET)g(PROMPT=$P$G)2202 45752 y(SET)g +(PATH=C:\\WINDOWS;C:\\WINDOWS\\COMMAND;C:\\)2202 47363 +y(CLS)2202 48975 y(ECHO)g(Please)g(Select)g(Your)h(Operating)f(System:) +2202 50587 y(ECHO.)2202 52199 y(ECHO)g([1])h(Slackware)e(Linux)2202 +53810 y(ECHO)h([2])h(Windows)f(95)2202 55422 y(ECHO.)2202 +57034 y(CHOICE)g(/C:12)g("Selection?)g(-)p FK(>)g FP(")2202 +58646 y(IF)g(ERRORLEVEL)g(2)h(GOTO)f(WIN)2202 60257 y(IF)g(ERRORLEVEL)g +(1)h(GOTO)f(LINUX)2202 61869 y(:WIN)2202 63481 y(CLS)2202 +65093 y(ECHO)g(Starting)g(Windows)g(95...)2202 66704 +y(WIN)2202 68316 y(GOTO)g(END)p Black 50226 73792 a FR(93)p +Black eop end +%%Page: 94 116 +TeXDict begin 94 115 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.94) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(7)g(Booting)p Black +2202 3611 a FP(:LINUX)2202 5223 y(ECHO)743 b(Starting)g(Slackware)g +(Linux...)2202 6835 y(CD)g(\\LINUX)2202 8446 y(LOADLIN)g +(C:\\LINUX\\VMLINUZ)f(ROOT=)p FK(<)p FP(root)g(partition)h(device)p +FK(>)g FP(RO)2202 10058 y(GOTO)g(END)2202 11670 y(:END)-30 +13246 y +SDict begin H.S end + -30 13246 a -30 13246 a +SDict begin 18.2 H.A end + -30 13246 a -30 13246 +a +SDict begin [ /View [/XYZ H.V] /Dest (2561) cvn H.B /DEST pdfmark end + -30 13246 a 1988 x FU(Y)-170 b(ou)330 b(will)g(w)-15 +b(ant)330 b(to)g(specify)g(your)h(root)f(partition)g(as)g(a)h(Linux)f +(de)-39 b(vice)331 b(name,)f(lik)-15 b(e)44517 15234 +y +SDict begin H.S end + 44517 15234 a 44517 15234 a +SDict begin 18.2 H.A end + 44517 15234 a 44517 15234 +a +SDict begin [ /View [/XYZ H.V] /Dest (2562) cvn H.B /DEST pdfmark end + 44517 15234 a FQ(/dev/hda2)325 b FU(or)-30 17249 y(something)315 +b(else.)i(Y)-170 b(ou)315 b(can)h(al)-15 b(w)g(ays)315 +b(use)h(LO)-54 b(ADLIN)316 b(at)g(the)g(command)f(line.)h(Y)-170 +b(ou)316 b(simply)f(use)-30 19264 y(it)429 b(in)f(the)h(same)g(manner)f +(as)h(it)g(is)f(in)h(the)f(e)-23 b(xample)429 b(abo)-23 +b(v)g(e.)428 b(The)h(LO)-54 b(ADLIN)428 b(documentation)-30 +21278 y(comes)387 b(with)g(man)-23 b(y)387 b(e)-23 b(xamples)386 +b(on)h(ho)-39 b(w)388 b(to)f(use)g(it.)-30 22389 y +SDict begin H.S end + -30 +22389 a -30 22389 a +SDict begin 18.2 H.A end + -30 22389 a -30 22389 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-DUAL) cvn H.B /DEST pdfmark +end + -30 22389 +a 5789 x FL(7.3)620 b(Dual)h(Booting)-30 28674 y +SDict begin H.S end + -30 +28674 a -30 28674 a +SDict begin 18.2 H.A end + -30 28674 a -30 28674 a +SDict begin [ /View [/XYZ H.V] /Dest (2565) cvn H.B /DEST pdfmark end + -30 28674 +a -30 29790 a +SDict begin H.S end + -30 29790 a -30 29790 a +SDict begin 18.2 H.A end + -30 29790 a -30 +29790 a +SDict begin [ /View [/XYZ H.V] /Dest (2567) cvn H.B /DEST pdfmark end + -30 29790 a 1518 x FU(Man)-23 b(y)468 b(users)g(set)g(up)g +(their)g(computers)f(to)h(boot)g(Slackw)-15 b(are)467 +b(Linux)h(and)g(another)g(operating)-30 33323 y(system.)450 +b(W)-124 b(e')-77 b(v)-23 b(e)450 b(described)h(se)-39 +b(v)-23 b(eral)450 b(typical)g(dual)h(boot)f(scenarios)g(belo)-39 +b(w)-101 b(,)451 b(in)g(case)f(you)h(are)-30 35337 y(ha)-31 +b(ving)387 b(dif)-39 b(\002culty)386 b(setting)h(up)g(your)g(system.) +-30 35673 y +SDict begin H.S end + -30 35673 a -30 35673 a +SDict begin 18.2 H.A end + -30 35673 a -30 35673 +a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-DUAL-WINDOWS) cvn H.B +/DEST pdfmark end + -30 35673 a 5027 x FG(Windo)-28 b(ws)-30 41653 y +SDict begin H.S end + -30 +41653 a -30 41653 a +SDict begin 18.2 H.A end + -30 41653 a -30 41653 a +SDict begin [ /View [/XYZ H.V] /Dest (2570) cvn H.B /DEST pdfmark end + -30 41653 +a 1991 x FU(Setting)367 b(up)i(a)f(computer)g(with)f(both)h(MS)g(W)-62 +b(indo)-39 b(ws)368 b(and)g(Linux)g(is)g(probably)f(the)i(most)e(com-) +-30 45659 y(mon)505 b(dual)h(boot)f(scenario.)g(There)h(are)g(numerous) +f(w)-15 b(ays)505 b(you)g(can)h(setup)f(the)g(booting,)g(b)-31 +b(ut)-30 47673 y(this)387 b(section)g(will)f(co)-23 b(v)g(er)387 +b(tw)-15 b(o.)-30 48464 y +SDict begin H.S end + -30 48464 a -30 48464 a +SDict begin 18.2 H.A end + -30 +48464 a -30 48464 a +SDict begin [ /View [/XYZ H.V] /Dest (2571) cvn H.B /DEST pdfmark end + -30 48464 a 1999 x FU(Often)417 b(times)g(when)h +(setting)e(up)i(a)f(dual)h(boot)f(system,)g(a)g(person)h(will)f(de)-39 +b(vise)417 b(a)h(perfect)f(plan)-30 52478 y(for)305 b(where)g(e)-39 +b(v)-23 b(erything)305 b(should)f(go)h(b)-31 b(ut)305 +b(mess)f(up)h(the)g(installation)f(order)-85 b(.)305 +b(It)g(is)g(v)-23 b(ery)305 b(important)-30 54492 y(to)355 +b(understand)f(that)g(operating)g(systems)g(need)h(to)g(be)f(installed) +g(in)h(a)g(certain)g(order)f(for)h(a)g(dual)-30 56507 +y(boot)411 b(setup)g(to)f(w)-15 b(ork.)411 b(Linux)g(al)-15 +b(w)g(ays)410 b(of)-39 b(fers)411 b(control)g(o)-23 b(v)g(er)411 +b(what,)g(if)g(an)-23 b(ything,)411 b(gets)f(written)-30 +58522 y(to)564 b(the)g(Master)g(Boot)f(Record.)i(Therefore,)f(it')-85 +b(s)564 b(al)-15 b(w)g(ays)563 b(advisable)g(to)h(install)f(Linux)h +(last.)-30 60536 y(W)-62 b(indo)-39 b(ws)398 b(should)f(be)i(installed) +e(\002rst,)h(since)g(it)g(will)g(al)-15 b(w)g(ays)397 +b(write)h(its)g(booter)g(to)g(the)g(Master)-30 62551 +y(Boot)387 b(Record,)g(o)-23 b(v)g(erwriting)386 b(an)-23 +b(y)387 b(entry)g(Linux)g(may)g(ha)-31 b(v)-23 b(e)387 +b(put)g(there.)-30 62886 y +SDict begin H.S end + -30 62886 a -30 62886 a +SDict begin 18.2 H.A end + -30 +62886 a -30 62886 a +SDict begin [ /View [/XYZ H.V] /Dest (2572) cvn H.B /DEST pdfmark end + -30 62886 a -30 62886 a +SDict begin H.S end + -30 62886 +a -30 62886 a +SDict begin 18.2 H.A end + -30 62886 a -30 62886 a +SDict begin [ /View [/XYZ H.V] /Dest (2574) cvn H.B /DEST pdfmark end + -30 62886 a -30 +62886 a +SDict begin H.S end + -30 62886 a -30 62886 a +SDict begin 18.2 H.A end + -30 62886 a -30 62886 +a +SDict begin [ /View [/XYZ H.V] /Dest (2576) cvn H.B /DEST pdfmark end + -30 62886 a Black 10906 x FR(94)p Black eop end +%%Page: 95 117 +TeXDict begin 95 116 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.95) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (2590) cvn H.B /DEST pdfmark end + -30 -2687 a 40238 -1636 a FR(Chapter)387 +b(7)g(Booting)p Black -30 3635 a FE(Using)430 b(LILO)-30 +4754 y +SDict begin H.S end + -30 4754 a -30 4754 a +SDict begin 18.2 H.A end + -30 4754 a -30 4754 a +SDict begin [ /View [/XYZ H.V] /Dest (2578) cvn H.B /DEST pdfmark end + -30 +4754 a 1670 x FU(Most)348 b(people)g(will)f(w)-15 b(ant)348 +b(to)g(use)g(LILO)g(to)g(chose)g(between)g(Linux)g(and)g(W)-62 +b(indo)-39 b(ws.)348 b(As)g(stated)-30 8439 y(abo)-23 +b(v)g(e,)387 b(you)g(should)g(install)f(W)-62 b(indo)-39 +b(ws)387 b(\002rst,)g(then)h(Linux.)-30 9549 y +SDict begin H.S end + -30 9549 +a -30 9549 a +SDict begin 18.2 H.A end + -30 9549 a -30 9549 a +SDict begin [ /View [/XYZ H.V] /Dest (2579) cvn H.B /DEST pdfmark end + -30 9549 a 1679 x +FU(Let')-85 b(s)514 b(say)h(you)f(ha)-31 b(v)-23 b(e)514 +b(a)h(40GB)f(IDE)g(hard)g(disk)g(as)h(the)f(only)g(dri)-39 +b(v)-23 b(e)515 b(in)f(your)g(system.)g(Let')-85 b(s)-30 +13243 y(also)445 b(say)g(that)f(you)h(w)-15 b(ant)445 +b(to)f(gi)-39 b(v)-23 b(e)445 b(half)g(of)g(that)g(space)g(to)g(W)-62 +b(indo)-39 b(ws)444 b(and)h(half)g(of)g(that)g(space)-30 +15258 y(to)387 b(Linux.)g(This)g(will)g(present)g(a)h(problem)e(when)h +(trying)g(to)g(boot)g(Linux.)-30 17143 y +SDict begin H.S end + -30 17143 a +-30 17143 a +SDict begin 14.56 H.A end + -30 17143 a -30 17143 a +SDict begin [ /View [/XYZ H.V] /Dest (2580) cvn H.B /DEST pdfmark end + -30 17143 a 2202 +18419 a FP(20GB)2231 b(Windows)743 b(boot)g(\(C:\))2202 +20031 y(1GB)2231 b(Linux)743 b(root)h(\(/\))2202 21643 +y(19GB)1487 b(Linux)743 b(/usr)h(\(/usr\))-30 23338 y +SDict begin H.S end + +-30 23338 a -30 23338 a +SDict begin 18.2 H.A end + -30 23338 a -30 23338 a +SDict begin [ /View [/XYZ H.V] /Dest (2581) cvn H.B /DEST pdfmark end + -30 23338 +a 1869 x FU(Y)-170 b(ou)541 b(w)-15 b(ould)540 b(also)h(w)-15 +b(ant)541 b(to)g(set)h(aside)f(an)g(adequate)h(amount)f(of)g(space)h +(for)f(a)h(Linux)f(sw)-15 b(ap)-30 27222 y(partition.)493 +b(The)f(unwritten)h(rule)f(is)h(to)g(use)g(twice)f(the)h(amount)f(of)h +(RAM)f(you)h(ha)-31 b(v)-23 b(e)493 b(in)f(disk)-30 29236 +y(space.)586 b(A)g(64MB)f(system)g(w)-15 b(ould)585 b(ha)-31 +b(v)-23 b(e)585 b(128MB)g(of)h(sw)-15 b(ap,)586 b(and)f(so)h(on.)g +(Adequate)g(sw)-15 b(ap)-30 31251 y(space)409 b(is)g(the)g(discussion)g +(of)g(man)-23 b(y)408 b(\003ames)h(on)g(IRC)g(and)g(Usenet.)g(There') +-85 b(s)409 b(no)g(truly)47472 31251 y +SDict begin H.S end + 47472 31251 a +47472 31251 a +SDict begin 18.2 H.A end + 47472 31251 a 47472 31251 a +SDict begin [ /View [/XYZ H.V] /Dest (2582) cvn H.B /DEST pdfmark end + 47472 31251 +a FU(\223right\224)-30 33266 y(w)-15 b(ay)387 b(to)g(do)g(it,)h(b)-31 +b(ut)387 b(sticking)f(with)h(the)g(rule)g(abo)-23 b(v)g(e)387 +b(should)g(be)g(suf)-39 b(\002cient.)-30 34376 y +SDict begin H.S end + -30 +34376 a -30 34376 a +SDict begin 18.2 H.A end + -30 34376 a -30 34376 a +SDict begin [ /View [/XYZ H.V] /Dest (2583) cvn H.B /DEST pdfmark end + -30 34376 +a 1679 x FU(W)-62 b(ith)474 b(your)g(partitions)f(laid)h(out,)h(you)f +(should)g(proceed)g(to)g(install)g(W)-62 b(indo)-39 b(ws.)474 +b(After)g(that)g(is)-30 38070 y(set)480 b(up)g(and)g(w)-15 +b(orking,)480 b(you)g(should)f(install)g(Linux.)h(The)h(LILO)e +(installation)g(needs)h(special)-30 40085 y(attention.)387 +b(Y)-170 b(ou)387 b(will)f(w)-15 b(ant)387 b(to)g(select)g(the)g(e)-23 +b(xpert)387 b(mode)g(for)h(installing)e(LILO.)-30 41195 +y +SDict begin H.S end + -30 41195 a -30 41195 a +SDict begin 18.2 H.A end + -30 41195 a -30 41195 a +SDict begin [ /View [/XYZ H.V] /Dest (2584) cvn H.B /DEST pdfmark end + -30 +41195 a 1679 x FU(Be)-23 b(gin)424 b(a)i(ne)-39 b(w)425 +b(LILO)g(con\002guration.)f(Y)-170 b(ou)424 b(will)h(w)-15 +b(ant)424 b(to)h(install)f(it)h(to)g(Master)g(Boot)f(Record)-30 +44889 y(so)378 b(that)h(it)f(can)h(be)f(used)h(to)f(choose)g(between)g +(the)h(tw)-15 b(o)378 b(operating)g(systems.)g(From)g(the)g(menu,)-30 +46904 y(add)577 b(your)g(Linux)g(partition)f(and)h(add)g(your)g(W)-62 +b(indo)-39 b(ws)577 b(\(or)g(DOS\))g(partition.)f(Once)i(that')-85 +b(s)-30 48918 y(complete,)387 b(you)g(can)h(install)e(LILO.)-30 +50029 y +SDict begin H.S end + -30 50029 a -30 50029 a +SDict begin 18.2 H.A end + -30 50029 a -30 50029 +a +SDict begin [ /View [/XYZ H.V] /Dest (2585) cvn H.B /DEST pdfmark end + -30 50029 a 1679 x FU(Reboot)451 b(the)h(computer)-85 +b(.)452 b(LILO)f(should)h(load)f(and)h(will)g(display)f(a)h(menu)f +(letting)g(you)h(select)-30 53722 y(between)509 b(the)h(operating)e +(systems)h(you)g(ha)-31 b(v)-23 b(e)509 b(installed.)g(Select)g(the)g +(name)h(of)f(the)g(OS)g(you)-30 55737 y(wish)387 b(to)g(load)g(\(these) +g(names)g(were)h(selected)f(when)g(you)g(setup)g(LILO\).)-30 +56847 y +SDict begin H.S end + -30 56847 a -30 56847 a +SDict begin 18.2 H.A end + -30 56847 a -30 56847 +a +SDict begin [ /View [/XYZ H.V] /Dest (2586) cvn H.B /DEST pdfmark end + -30 56847 a 1680 x FU(LILO)518 b(is)f(quite)h(a)g(con\002gurable)f +(boot)g(loader)-85 b(.)518 b(It')-85 b(s)517 b(not)h(just)f(limited)g +(to)h(booting)f(Linux)g(or)-30 60541 y(DOS.)470 b(It)h(can)f(boot)g +(just)g(about)g(an)-23 b(ything.)469 b(The)i(man)f(pages)g(for)36370 +60541 y +SDict begin H.S end + 36370 60541 a 36370 60541 a +SDict begin 18.2 H.A end + 36370 60541 a 36370 +60541 a +SDict begin [ /View [/XYZ H.V] /Dest (2587) cvn H.B /DEST pdfmark end + 36370 60541 a FP(lilo)p FU(\(8\))g(and)44332 +60541 y +SDict begin H.S end + 44332 60541 a 44332 60541 a +SDict begin 18.2 H.A end + 44332 60541 a 44332 +60541 a +SDict begin [ /View [/XYZ H.V] /Dest (2588) cvn H.B /DEST pdfmark end + 44332 60541 a FQ(lilo.conf)p FU(\(5\))-30 62556 +y(pro)-23 b(vide)387 b(more)g(detailed)g(information.)-30 +63666 y +SDict begin H.S end + -30 63666 a -30 63666 a +SDict begin 18.2 H.A end + -30 63666 a -30 63666 +a +SDict begin [ /View [/XYZ H.V] /Dest (2589) cvn H.B /DEST pdfmark end + -30 63666 a 1679 x FU(What)418 b(if)h(LILO)f(doesn')-28 +b(t)418 b(w)-15 b(ork?)418 b(There)h(are)g(instances)f(where)g(LILO)h +(just)f(w)-15 b(on')-28 b(t)418 b(w)-15 b(ork)417 b(on)i(a)-30 +67360 y(particular)481 b(machine.)h(F)-23 b(ortunately)-101 +b(,)481 b(there)h(is)f(another)h(w)-15 b(ay)481 b(to)h(dual)f(boot)g +(Linux)g(and)h(W)-62 b(in-)p Black 50226 73792 a FR(95)p +Black eop end +%%Page: 96 118 +TeXDict begin 96 117 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.96) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(7)g(Booting)p Black +-30 3611 a FU(do)-39 b(ws.)-30 4401 y +SDict begin H.S end + -30 4401 a -30 +4401 a +SDict begin 18.2 H.A end + -30 4401 a -30 4401 a +SDict begin [ /View [/XYZ H.V] /Dest (2590) cvn H.B /DEST pdfmark end + -30 4401 a 5099 x FE(Using)430 +b(LO)-77 b(ADLIN)-30 10620 y +SDict begin H.S end + -30 10620 a -30 10620 a +SDict begin 18.2 H.A end + +-30 10620 a -30 10620 a +SDict begin [ /View [/XYZ H.V] /Dest (2592) cvn H.B /DEST pdfmark end + -30 10620 a 1670 x FU(This)414 +b(method)h(can)g(be)f(used)h(if)g(LILO)f(doesn')-28 b(t)415 +b(w)-15 b(ork)414 b(on)h(your)f(system,)h(or)g(if)f(you)h(just)f(don') +-28 b(t)-30 14304 y(w)-15 b(ant)609 b(to)g(set)g(up)g(LILO.)h(This)f +(method)f(is)i(also)f(ideal)g(for)g(the)g(user)h(that)f(reinstalls)f(W) +-62 b(in-)-30 16319 y(do)-39 b(ws)602 b(often.)g(Each)g(time)g(you)g +(reinstall)f(W)-62 b(indo)-39 b(ws,)602 b(it)g(will)g(o)-23 +b(v)g(erwrite)601 b(the)h(Master)g(Boot)-30 18334 y(Record,)361 +b(thus)f(destro)-15 b(ying)359 b(an)-23 b(y)361 b(LILO)f(installation.) +g(W)-62 b(ith)360 b(LO)-54 b(ADLIN,)361 b(you)f(are)h(not)f(subject)-30 +20348 y(to)545 b(that)g(problem.)h(The)f(biggest)g(disadv)-39 +b(antage)544 b(is)i(that)f(you)g(can)g(only)g(use)h(LO)-54 +b(ADLIN)544 b(to)-30 22363 y(boot)387 b(Linux.)-30 23153 +y +SDict begin H.S end + -30 23153 a -30 23153 a +SDict begin 18.2 H.A end + -30 23153 a -30 23153 a +SDict begin [ /View [/XYZ H.V] /Dest (2593) cvn H.B /DEST pdfmark end + -30 +23153 a 2000 x FU(W)-62 b(ith)612 b(LO)-54 b(ADLIN,)613 +b(you)g(can)g(install)e(the)i(operating)f(systems)g(in)h(an)-23 +b(y)612 b(order)h(desired.)g(Be)-30 27167 y(careful)327 +b(about)f(installing)g(things)f(to)i(the)f(Master)h(Boot)f(Record,)h +(you)f(do)h(not)f(w)-15 b(ant)326 b(to)g(do)h(that.)-30 +29182 y(LO)-54 b(ADLIN)354 b(relies)g(on)g(the)g(W)-62 +b(indo)-39 b(ws)354 b(partition)g(being)g(bootable.)g(So)g(during)g +(the)g(Slackw)-15 b(are)-30 31197 y(installation,)386 +b(mak)-15 b(e)387 b(sure)g(you)g(skip)g(the)g(LILO)h(setup.)-30 +32307 y +SDict begin H.S end + -30 32307 a -30 32307 a +SDict begin 18.2 H.A end + -30 32307 a -30 32307 +a +SDict begin [ /View [/XYZ H.V] /Dest (2594) cvn H.B /DEST pdfmark end + -30 32307 a 1679 x FU(After)476 b(installing)e(the)h(operating)g +(systems,)g(cop)-15 b(y)475 b(the)30272 33986 y +SDict begin H.S end + 30272 +33986 a 30272 33986 a +SDict begin 18.2 H.A end + 30272 33986 a 30272 33986 a +SDict begin [ /View [/XYZ H.V] /Dest (2595) cvn H.B /DEST pdfmark end + 30272 +33986 a FQ(loadlinX.zip)468 b FU(\(where)43042 33986 +y +SDict begin H.S end + 43042 33986 a 43042 33986 a +SDict begin 18.2 H.A end + 43042 33986 a 43042 33986 +a +SDict begin [ /View [/XYZ H.V] /Dest (2597) cvn H.B /DEST pdfmark end + 43042 33986 a Fz(X)592 b FU(is)475 b(a)h(v)-23 b(ersion)-30 +36001 y(number)-62 b(,)565 b(such)g(as)10857 36001 y +SDict begin H.S end + +10857 36001 a 10857 36001 a +SDict begin 18.2 H.A end + 10857 36001 a 10857 36001 +a +SDict begin [ /View [/XYZ H.V] /Dest (2598) cvn H.B /DEST pdfmark end + 10857 36001 a FP(16a)p FU(\))f(\002le)h(from)f(root')-85 +b(s)565 b(home)f(directory)h(to)f(your)h(W)-62 b(indo)-39 +b(ws)564 b(partition.)-30 38015 y(Also)360 b(cop)-15 +b(y)359 b(your)h(k)-15 b(ernel)360 b(image)g(to)g(the)g(W)-62 +b(indo)-39 b(ws)360 b(partition.)g(Y)-170 b(ou)359 b(will)h(need)g(to)g +(be)g(in)h(Linux)-30 40030 y(for)388 b(this)e(to)h(w)-15 +b(ork.)388 b(This)e(e)-23 b(xample)387 b(sho)-39 b(ws)387 +b(ho)-39 b(w)387 b(to)h(do)f(this:)-30 41915 y +SDict begin H.S end + -30 41915 +a -30 41915 a +SDict begin 14.56 H.A end + -30 41915 a -30 41915 a +SDict begin [ /View [/XYZ H.V] /Dest (2599) cvn H.B /DEST pdfmark end + -30 41915 a -30 +41915 a +SDict begin H.S end + -30 41915 a -30 41915 a +SDict begin 14.56 H.A end + -30 41915 a -30 41915 +a +SDict begin [ /View [/XYZ H.V] /Dest (2600) cvn H.B /DEST pdfmark end + -30 41915 a 1277 x FJ(#)1309 43192 y +SDict begin H.S end + 1309 43192 a 1309 +43192 a +SDict begin 14.56 H.A end + 1309 43192 a 1309 43192 a +SDict begin [ /View [/XYZ H.V] /Dest (2601) cvn H.B /DEST pdfmark end + 1309 43192 a FH(mkdir)743 +b(/win)-30 43283 y +SDict begin H.S end + -30 43283 a -30 43283 a +SDict begin 14.56 H.A end + -30 43283 +a -30 43283 a +SDict begin [ /View [/XYZ H.V] /Dest (2602) cvn H.B /DEST pdfmark end + -30 43283 a 1520 x FJ(#)1309 44803 y +SDict begin H.S end + 1309 +44803 a 1309 44803 a +SDict begin 14.56 H.A end + 1309 44803 a 1309 44803 a +SDict begin [ /View [/XYZ H.V] /Dest (2603) cvn H.B /DEST pdfmark end + 1309 44803 +a FH(mount)g(-t)h(vfat)f(/dev/hda1)g(/win)-30 44894 y +SDict begin H.S end + +-30 44894 a -30 44894 a +SDict begin 14.56 H.A end + -30 44894 a -30 44894 a +SDict begin [ /View [/XYZ H.V] /Dest (2604) cvn H.B /DEST pdfmark end + -30 44894 +a 1521 x FJ(#)1309 46415 y +SDict begin H.S end + 1309 46415 a 1309 46415 a +SDict begin 14.56 H.A end + +1309 46415 a 1309 46415 a +SDict begin [ /View [/XYZ H.V] /Dest (2605) cvn H.B /DEST pdfmark end + 1309 46415 a FH(mkdir)g(/win/linux)-30 +46506 y +SDict begin H.S end + -30 46506 a -30 46506 a +SDict begin 14.56 H.A end + -30 46506 a -30 46506 +a +SDict begin [ /View [/XYZ H.V] /Dest (2606) cvn H.B /DEST pdfmark end + -30 46506 a 1521 x FJ(#)1309 48027 y +SDict begin H.S end + 1309 48027 a 1309 +48027 a +SDict begin 14.56 H.A end + 1309 48027 a 1309 48027 a +SDict begin [ /View [/XYZ H.V] /Dest (2607) cvn H.B /DEST pdfmark end + 1309 48027 a FH(cd)h(/root)-30 +48118 y +SDict begin H.S end + -30 48118 a -30 48118 a +SDict begin 14.56 H.A end + -30 48118 a -30 48118 +a +SDict begin [ /View [/XYZ H.V] /Dest (2608) cvn H.B /DEST pdfmark end + -30 48118 a 1521 x FJ(#)1309 49639 y +SDict begin H.S end + 1309 49639 a 1309 +49639 a +SDict begin 14.56 H.A end + 1309 49639 a 1309 49639 a +SDict begin [ /View [/XYZ H.V] /Dest (2609) cvn H.B /DEST pdfmark end + 1309 49639 a FH(cp)g(loadlin*)f +(/win/linux)-30 49807 y +SDict begin H.S end + -30 49807 a -30 49807 a +SDict begin 14.56 H.A end + -30 49807 +a -30 49807 a +SDict begin [ /View [/XYZ H.V] /Dest (2610) cvn H.B /DEST pdfmark end + -30 49807 a 1443 x FJ(#)1309 51250 y +SDict begin H.S end + 1309 +51250 a 1309 51250 a +SDict begin 14.56 H.A end + 1309 51250 a 1309 51250 a +SDict begin [ /View [/XYZ H.V] /Dest (2611) cvn H.B /DEST pdfmark end + 1309 51250 +a FH(cp)h(/boot/vmlinuz)e(/win/linux)-30 51418 y +SDict begin H.S end + -30 +51418 a -30 51418 a +SDict begin 14.56 H.A end + -30 51418 a -30 51418 a +SDict begin [ /View [/XYZ H.V] /Dest (2612) cvn H.B /DEST pdfmark end + -30 51418 +a 1444 x FJ(#)1309 52862 y +SDict begin H.S end + 1309 52862 a 1309 52862 a +SDict begin 14.56 H.A end + +1309 52862 a 1309 52862 a +SDict begin [ /View [/XYZ H.V] /Dest (2613) cvn H.B /DEST pdfmark end + 1309 52862 a FH(cd)i(/win/linuz)-30 +52953 y +SDict begin H.S end + -30 52953 a -30 52953 a +SDict begin 14.56 H.A end + -30 52953 a -30 52953 +a +SDict begin [ /View [/XYZ H.V] /Dest (2614) cvn H.B /DEST pdfmark end + -30 52953 a 1521 x FJ(#)1309 54474 y +SDict begin H.S end + 1309 54474 a 1309 +54474 a +SDict begin 14.56 H.A end + 1309 54474 a 1309 54474 a +SDict begin [ /View [/XYZ H.V] /Dest (2615) cvn H.B /DEST pdfmark end + 1309 54474 a FH(unzip)f +(loadlin16a.zip)-30 56191 y +SDict begin H.S end + -30 56191 a -30 56191 a +SDict begin 18.2 H.A end + -30 +56191 a -30 56191 a +SDict begin [ /View [/XYZ H.V] /Dest (2616) cvn H.B /DEST pdfmark end + -30 56191 a 1847 x FU(That)390 b(will)f(create)i(a) +11170 58038 y +SDict begin H.S end + 11170 58038 a 11170 58038 a +SDict begin 18.2 H.A end + 11170 58038 +a 11170 58038 a +SDict begin [ /View [/XYZ H.V] /Dest (2617) cvn H.B /DEST pdfmark end + 11170 58038 a FQ(C:\\LINUX)385 b FU(directory)k(on)h +(your)g(W)-62 b(indo)-39 b(ws)390 b(partition)f(\(assuming)g(it')-85 +b(s)48644 58038 y +SDict begin H.S end + 48644 58038 a 48644 58038 a +SDict begin 18.2 H.A end + 48644 58038 +a 48644 58038 a +SDict begin [ /View [/XYZ H.V] /Dest (2618) cvn H.B /DEST pdfmark end + 48644 58038 a FQ(/dev/)-30 60053 y(hda1)p +FU(\))531 b(and)i(cop)-15 b(y)533 b(o)-23 b(v)g(er)532 +b(the)i(necessary)f(stuf)-39 b(f)533 b(for)g(LO)-54 b(ADLIN.)533 +b(After)h(doing)e(this,)i(you)e(will)-30 62067 y(need)387 +b(to)h(reboot)f(into)f(W)-62 b(indo)-39 b(ws)387 b(to)g(setup)g(a)h +(boot)f(menu.)-30 63178 y +SDict begin H.S end + -30 63178 a -30 63178 a +SDict begin 18.2 H.A end + -30 +63178 a -30 63178 a +SDict begin [ /View [/XYZ H.V] /Dest (2619) cvn H.B /DEST pdfmark end + -30 63178 a 1679 x FU(Once)439 b(in)g(W)-62 +b(indo)-39 b(ws,)439 b(get)g(to)g(a)h(DOS)e(prompt.)h(First,)g(we)g +(need)g(to)g(mak)-15 b(e)439 b(sure)g(the)g(system)f(is)-30 +66872 y(set)387 b(to)g(not)g(boot)g(into)g(the)g(graphical)g(interf)-15 +b(ace.)p Black -30 73792 a FR(96)p Black eop end +%%Page: 97 119 +TeXDict begin 97 118 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.97) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 40238 -1636 a FR(Chapter)387 b(7)g(Booting)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2620) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FP(C:\\>)3689 3611 y +SDict begin H.S end + 3689 3611 +a 3689 3611 a +SDict begin 14.56 H.A end + 3689 3611 a 3689 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2621) cvn H.B /DEST pdfmark end + 3689 3611 a FH(cd)744 +b(\\)-30 5223 y FP(C:\\>)3689 5223 y +SDict begin H.S end + 3689 5223 a 3689 +5223 a +SDict begin 14.56 H.A end + 3689 5223 a 3689 5223 a +SDict begin [ /View [/XYZ H.V] /Dest (2622) cvn H.B /DEST pdfmark end + 3689 5223 a FH(attrib)g(-r)f(-a)h(-s)g +(-h)f(MSDOS.SYS)-30 6835 y FP(C:\\>)3689 6835 y +SDict begin H.S end + 3689 +6835 a 3689 6835 a +SDict begin 14.56 H.A end + 3689 6835 a 3689 6835 a +SDict begin [ /View [/XYZ H.V] /Dest (2623) cvn H.B /DEST pdfmark end + 3689 6835 +a FH(edit)h(MSDOS.SYS)-30 8482 y +SDict begin H.S end + -30 8482 a -30 8482 +a +SDict begin 18.2 H.A end + -30 8482 a -30 8482 a +SDict begin [ /View [/XYZ H.V] /Dest (2624) cvn H.B /DEST pdfmark end + -30 8482 a 1917 x FU(Add)387 +b(this)g(line)g(to)g(the)g(\002le:)-30 11964 y +SDict begin H.S end + -30 11964 +a -30 11964 a +SDict begin 14.56 H.A end + -30 11964 a -30 11964 a +SDict begin [ /View [/XYZ H.V] /Dest (2625) cvn H.B /DEST pdfmark end + -30 11964 a 1596 +x FP(BootGUI=0)-30 15136 y +SDict begin H.S end + -30 15136 a -30 15136 a +SDict begin 18.2 H.A end + -30 +15136 a -30 15136 a +SDict begin [ /View [/XYZ H.V] /Dest (2626) cvn H.B /DEST pdfmark end + -30 15136 a 1989 x FU(No)-39 b(w)387 +b(sa)-31 b(v)-23 b(e)387 b(the)g(\002le)g(and)g(e)-23 +b(xit)387 b(the)g(editor)-85 b(.)387 b(No)-39 b(w)387 +b(edit)29040 17125 y +SDict begin H.S end + 29040 17125 a 29040 17125 a +SDict begin 18.2 H.A end + 29040 +17125 a 29040 17125 a +SDict begin [ /View [/XYZ H.V] /Dest (2627) cvn H.B /DEST pdfmark end + 29040 17125 a FQ(C:\\AUTOEXEC.BAT)377 +b FU(so)387 b(we)h(can)f(add)g(a)g(boot)-30 19140 y(menu.)324 +b(The)h(follo)-39 b(wing)323 b(pro)-23 b(vides)323 b(an)i(e)-23 +b(xample)323 b(of)i(what)f(a)g(boot)g(menu)g(block)g(in)44260 +19140 y +SDict begin H.S end + 44260 19140 a 44260 19140 a +SDict begin 18.2 H.A end + 44260 19140 a 44260 +19140 a +SDict begin [ /View [/XYZ H.V] /Dest (2628) cvn H.B /DEST pdfmark end + 44260 19140 a FQ(AUTOEXEC.BAT)-30 21154 y FU(w)-15 +b(ould)386 b(look)h(lik)-15 b(e:)-30 22719 y +SDict begin H.S end + -30 22719 +a -30 22719 a +SDict begin 14.56 H.A end + -30 22719 a -30 22719 a +SDict begin [ /View [/XYZ H.V] /Dest (2629) cvn H.B /DEST pdfmark end + -30 22719 a 1597 +x FP(cls)-30 25927 y(echo)743 b(System)h(Boot)f(Menu)-30 +27539 y(echo.)-30 29151 y(echo)g(1)h(-)g(Linux)-30 30763 +y(echo)f(2)h(-)g(Windows)-30 32374 y(echo.)-30 33986 +y(choice)f(/c:12)h("Selection?)e(->)i(")-30 35598 y(if)g(errorlevel)e +(2)i(goto)g(WIN)-30 37210 y(if)g(errorlevel)e(1)i(goto)g(LINUX)-30 +38821 y(:LINUX)-30 40433 y(cls)-30 42045 y(echo)f("Starting)g +(Linux...")-30 43656 y(cd)h(\\linux)-30 45268 y(loadlin)f +(c:\\linux\\vmlinuz)f(root=/dev/hda2)g(ro)-30 46880 y(goto)h(END)-30 +48492 y(:WIN)-30 50103 y(cls)-30 51715 y(echo)g("Starting)g +(Windows...")-30 53327 y(win)-30 54939 y(goto)g(END)-30 +56550 y(:END)-30 58126 y +SDict begin H.S end + -30 58126 a -30 58126 a +SDict begin 18.2 H.A end + -30 +58126 a -30 58126 a +SDict begin [ /View [/XYZ H.V] /Dest (2630) cvn H.B /DEST pdfmark end + -30 58126 a 1989 x FU(The)413 b(k)-15 +b(e)-23 b(y)412 b(line)g(is)g(the)h(one)f(that)h(runs)f(LO)-54 +b(ADLIN.)413 b(W)-124 b(e)412 b(tell)h(it)f(the)h(k)-15 +b(ernel)412 b(to)g(load,)h(the)g(Linux)-30 62129 y(root)387 +b(partition,)g(and)g(that)g(we)h(w)-15 b(ant)386 b(it)h(mounted)g +(read-only)g(initially)-101 b(.)-30 63240 y +SDict begin H.S end + -30 63240 +a -30 63240 a +SDict begin 18.2 H.A end + -30 63240 a -30 63240 a +SDict begin [ /View [/XYZ H.V] /Dest (2631) cvn H.B /DEST pdfmark end + -30 63240 a 1679 +x FU(The)430 b(tools)g(for)g(these)g(tw)-15 b(o)430 b(methods)f(are)h +(pro)-23 b(vided)430 b(with)g(Slackw)-15 b(are)429 b(Linux.)h(There)g +(are)h(nu-)-30 66934 y(merous)316 b(other)h(booters)f(on)g(the)h(mark) +-15 b(et,)316 b(b)-31 b(ut)316 b(these)g(should)g(w)-15 +b(ork)316 b(for)h(most)f(dual)g(boot)g(setups.)-30 68044 +y +SDict begin H.S end + -30 68044 a -30 68044 a +SDict begin 18.2 H.A end + -30 68044 a -30 68044 a +SDict begin [ /View [/XYZ H.V] /Dest (2632) cvn H.B /DEST pdfmark end + -30 +68044 a Black 50169 73792 a FR(97)p Black eop end +%%Page: 98 120 +TeXDict begin 98 119 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.98) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(7)g(Booting)p Black +-30 3635 a FE(Deprecated)429 b(Windo)-23 b(ws)429 b(NT)i(Hac)-31 +b(k)-30 4730 y +SDict begin H.S end + -30 4730 a -30 4730 a +SDict begin 18.2 H.A end + -30 4730 a -30 4730 +a +SDict begin [ /View [/XYZ H.V] /Dest (2634) cvn H.B /DEST pdfmark end + -30 4730 a 1694 x FU(This)311 b(is)h(the)f(least)h(common)f(dual)g +(booting)g(situation.)g(In)g(the)33351 6424 y +SDict begin H.S end + 33351 6424 +a 33351 6424 a +SDict begin 18.2 H.A end + 33351 6424 a 33351 6424 a +SDict begin [ /View [/XYZ H.V] /Dest (2635) cvn H.B /DEST pdfmark end + 33351 6424 a +312 w FU(days)g(of)h(old,)g(LILO)f(w)-15 b(as)311 b(unable)-30 +8439 y(to)429 b(boot)f(W)-62 b(indo)-39 b(ws)428 b(NT)-115 +b(,)429 b(requiring)f(Linux)g(users)h(to)f(hack)h(NTLDR,)f(which)g +(presented)h(se)-39 b(v-)-30 10454 y(eral)403 b(more)g(problems)f(than) +g(dual)h(booting)f(between)g(W)-62 b(indo)-39 b(ws)403 +b(9x)f(and)h(Linux.)g(Understand)-30 12468 y(that)372 +b(the)h(follo)-39 b(wing)372 b(instructions)f(are)i(deprecated.)g(LILO) +f(has)h(been)f(able)h(to)f(boot)g(W)-62 b(indo)-39 b(ws)-30 +14483 y(NT/2000/XP/2003)467 b(for)h(man)-23 b(y)468 b(years)h(no)-39 +b(w)-101 b(.)470 b(If)e(you)h(are)g(using)f(a)h(le)-23 +b(g)-8 b(ac)-23 b(y)468 b(machine)g(though,)-30 16498 +y(you)387 b(may)g(need)h(to)f(use)g(just)g(such)g(a)g(hack.)-30 +16833 y +SDict begin H.S end + -30 16833 a -30 16833 a +SDict begin 18.2 H.A end + -30 16833 a -30 16833 +a +SDict begin [ /View [/XYZ H.V] /Dest (2637) cvn H.B /DEST pdfmark end + -30 16833 a -30 17608 a +SDict begin H.S end + -30 17608 a -30 17608 a +SDict begin 18.2 H.A end + -30 +17608 a -30 17608 a +SDict begin [ /View [/XYZ H.V] /Dest (2638) cvn H.B /DEST pdfmark end + -30 17608 a Black 1210 20837 a FU(1.)p +Black 2760 20837 a +SDict begin H.S end + 2760 20837 a 2760 20837 a +SDict begin 18.2 H.A end + 2760 20837 +a 2760 20837 a +SDict begin [ /View [/XYZ H.V] /Dest (2639) cvn H.B /DEST pdfmark end + 2760 20837 a FU(Install)f(W)-62 b(indo)-39 +b(ws)387 b(NT)-30 20852 y +SDict begin H.S end + -30 20852 a -30 20852 a +SDict begin 18.2 H.A end + -30 +20852 a -30 20852 a +SDict begin [ /View [/XYZ H.V] /Dest (2640) cvn H.B /DEST pdfmark end + -30 20852 a Black 1210 23626 a FU(2.)p +Black 2760 23626 a +SDict begin H.S end + 2760 23626 a 2760 23626 a +SDict begin 18.2 H.A end + 2760 23626 +a 2760 23626 a +SDict begin [ /View [/XYZ H.V] /Dest (2641) cvn H.B /DEST pdfmark end + 2760 23626 a FU(Install)601 b(Linux,)g(making)g(sure)g +(LILO)h(is)f(installed)g(to)g(the)h(superblock)e(of)i(the)g(Linux)2760 +25641 y(partition)-30 25977 y +SDict begin H.S end + -30 25977 a -30 25977 a +SDict begin 18.2 H.A end + +-30 25977 a -30 25977 a +SDict begin [ /View [/XYZ H.V] /Dest (2642) cvn H.B /DEST pdfmark end + -30 25977 a Black 1210 28431 +a FU(3.)p Black 2760 28431 a +SDict begin H.S end + 2760 28431 a 2760 28431 +a +SDict begin 18.2 H.A end + 2760 28431 a 2760 28431 a +SDict begin [ /View [/XYZ H.V] /Dest (2643) cvn H.B /DEST pdfmark end + 2760 28431 a FU(Get)456 b(the)g(\002rst)g +(512)g(bytes)g(of)g(the)g(Linux)g(root)g(partition)g(and)g(store)g(it)g +(on)g(the)g(W)-62 b(indo)-39 b(ws)2760 30445 y(NT)387 +b(partition)-30 30781 y +SDict begin H.S end + -30 30781 a -30 30781 a +SDict begin 18.2 H.A end + -30 30781 +a -30 30781 a +SDict begin [ /View [/XYZ H.V] /Dest (2644) cvn H.B /DEST pdfmark end + -30 30781 a Black 1210 33235 a FU(4.)p +Black 2760 33235 a +SDict begin H.S end + 2760 33235 a 2760 33235 a +SDict begin 18.2 H.A end + 2760 33235 +a 2760 33235 a +SDict begin [ /View [/XYZ H.V] /Dest (2645) cvn H.B /DEST pdfmark end + 2760 33235 a FU(Edit)5730 33235 y +SDict begin H.S end + 5730 +33235 a 5730 33235 a +SDict begin 18.2 H.A end + 5730 33235 a 5730 33235 a +SDict begin [ /View [/XYZ H.V] /Dest (2646) cvn H.B /DEST pdfmark end + 5730 33235 +a FQ(C:\\BOOT.INI)381 b FU(under)387 b(W)-62 b(indo)-39 +b(ws)387 b(NT)g(to)g(add)h(a)f(Linux)g(option)-30 34345 +y +SDict begin H.S end + -30 34345 a -30 34345 a +SDict begin 18.2 H.A end + -30 34345 a -30 34345 a +SDict begin [ /View [/XYZ H.V] /Dest (2647) cvn H.B /DEST pdfmark end + -30 +34345 a 1679 x FU(Installing)i(W)-62 b(indo)-39 b(ws)389 +b(NT)h(should)f(be)h(f)-15 b(airly)389 b(straightforw)-15 +b(ard,)389 b(as)h(should)f(installing)f(Linux.)-30 38039 +y(From)557 b(there,)i(it)e(gets)h(a)f(little)h(more)f(trick)-23 +b(y)-101 b(.)558 b(Grabbing)f(the)h(\002rst)f(512)h(bytes)f(of)h(the)g +(Linux)-30 40054 y(partition)491 b(is)h(easier)g(than)f(it)h(sounds.)f +(Y)-170 b(ou)492 b(will)f(need)h(to)g(be)f(in)h(Linux)f(to)h +(accomplish)f(this.)-30 42068 y(Assuming)386 b(your)h(Linux)g +(partition)g(is)21022 42068 y +SDict begin H.S end + 21022 42068 a 21022 42068 +a +SDict begin 18.2 H.A end + 21022 42068 a 21022 42068 a +SDict begin [ /View [/XYZ H.V] /Dest (2648) cvn H.B /DEST pdfmark end + 21022 42068 a FQ(/dev/hda2)p +FU(,)382 b(issue)387 b(this)f(command:)-30 43954 y +SDict begin H.S end + -30 +43954 a -30 43954 a +SDict begin 14.56 H.A end + -30 43954 a -30 43954 a +SDict begin [ /View [/XYZ H.V] /Dest (2649) cvn H.B /DEST pdfmark end + -30 43954 +a -30 43954 a +SDict begin H.S end + -30 43954 a -30 43954 a +SDict begin 14.56 H.A end + -30 43954 a -30 +43954 a +SDict begin [ /View [/XYZ H.V] /Dest (2650) cvn H.B /DEST pdfmark end + -30 43954 a 1276 x FJ(#)1309 45230 y +SDict begin H.S end + 1309 45230 +a 1309 45230 a +SDict begin 14.56 H.A end + 1309 45230 a 1309 45230 a +SDict begin [ /View [/XYZ H.V] /Dest (2651) cvn H.B /DEST pdfmark end + 1309 45230 a +FH(dd)744 b(if=/dev/hda2)e(of=/tmp/bootsect.lnx)g(bs=1)h(count=512)-30 +46948 y +SDict begin H.S end + -30 46948 a -30 46948 a +SDict begin 18.2 H.A end + -30 46948 a -30 46948 +a +SDict begin [ /View [/XYZ H.V] /Dest (2652) cvn H.B /DEST pdfmark end + -30 46948 a 1846 x FU(That')-85 b(s)464 b(it.)g(No)-39 +b(w)464 b(you)f(need)h(to)g(cop)-15 b(y)463 b(bootsect.lnx)h(to)f(the)h +(W)-62 b(indo)-39 b(ws)464 b(NT)g(partition.)f(Here')-85 +b(s)-30 50809 y(where)357 b(we)f(run)g(into)g(another)g(problem.)g +(Linux)g(does)g(not)g(ha)-31 b(v)-23 b(e)356 b(stable)g(write)g +(support)g(for)g(the)-30 52824 y(NTFS)427 b(\002lesystem.)g(If)h(you)g +(installed)f(W)-62 b(indo)-39 b(ws)427 b(NT)h(and)g(formatted)f(your)h +(dri)-39 b(v)-23 b(e)427 b(as)h(NTFS,)-30 54838 y(you)378 +b(will)f(need)h(to)f(cop)-15 b(y)378 b(this)f(\002le)g(to)h(a)g(F)-115 +b(A)-172 b(T)378 b(\003opp)-15 b(y)376 b(and)i(then)g(read)g(from)f(it) +h(under)f(W)-62 b(indo)-39 b(ws)-30 56853 y(NT)-115 b(.)395 +b(If)f(you)g(formatted)f(the)h(W)-62 b(indo)-39 b(ws)394 +b(NT)g(dri)-39 b(v)-23 b(e)393 b(as)i(F)-115 b(A)-172 +b(T)-115 b(,)394 b(you)g(can)g(simply)f(mount)g(it)h(under)-30 +58868 y(Linux)346 b(and)g(cop)-15 b(y)346 b(the)g(\002le)g(o)-23 +b(v)g(er)-85 b(.)346 b(Either)g(w)-15 b(ay)-101 b(,)347 +b(you)f(will)g(w)-15 b(ant)345 b(to)h(get)37769 58868 +y +SDict begin H.S end + 37769 58868 a 37769 58868 a +SDict begin 18.2 H.A end + 37769 58868 a 37769 58868 +a +SDict begin [ /View [/XYZ H.V] /Dest (2653) cvn H.B /DEST pdfmark end + 37769 58868 a FQ(/tmp/bootsect.lnx)335 b FU(from)-30 +60882 y(the)387 b(Linux)g(dri)-39 b(v)-23 b(e)387 b(to)11444 +60882 y +SDict begin H.S end + 11444 60882 a 11444 60882 a +SDict begin 18.2 H.A end + 11444 60882 a 11444 +60882 a +SDict begin [ /View [/XYZ H.V] /Dest (2654) cvn H.B /DEST pdfmark end + 11444 60882 a FQ(C:\\BOOTSECT.LNX)378 b FU(on)387 +b(the)h(W)-62 b(indo)-39 b(ws)386 b(NT)i(dri)-39 b(v)-23 +b(e.)-30 61758 y +SDict begin H.S end + -30 61758 a -30 61758 a +SDict begin 18.2 H.A end + -30 61758 a +-30 61758 a +SDict begin [ /View [/XYZ H.V] /Dest (2655) cvn H.B /DEST pdfmark end + -30 61758 a 1914 x FU(The)454 b(last)g(step)g(is)g(adding)g +(a)g(menu)g(option)g(to)g(the)g(W)-62 b(indo)-39 b(ws)454 +b(NT)g(boot)g(menu.)g(Under)g(W)-62 b(in-)-30 65686 y(do)-39 +b(ws)387 b(NT)h(open)f(a)g(command)g(prompt.)p Black +-30 73792 a FR(98)p Black eop end +%%Page: 99 121 +TeXDict begin 99 120 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.99) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 40238 -1636 a FR(Chapter)387 b(7)g(Booting)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2656) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FP(C:\\WINNT>)7409 3611 y +SDict begin H.S end + 7409 +3611 a 7409 3611 a +SDict begin 14.56 H.A end + 7409 3611 a 7409 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2657) cvn H.B /DEST pdfmark end + 7409 3611 +a FH(cd)744 b(\\)-30 5223 y FP(C:\\>)3689 5223 y +SDict begin H.S end + 3689 +5223 a 3689 5223 a +SDict begin 14.56 H.A end + 3689 5223 a 3689 5223 a +SDict begin [ /View [/XYZ H.V] /Dest (2658) cvn H.B /DEST pdfmark end + 3689 5223 +a FH(attrib)g(-r)f(-a)h(-s)g(-h)f(boot.ini)-30 6835 y +FP(C:\\>)3689 6835 y +SDict begin H.S end + 3689 6835 a 3689 6835 a +SDict begin 14.56 H.A end + 3689 6835 +a 3689 6835 a +SDict begin [ /View [/XYZ H.V] /Dest (2659) cvn H.B /DEST pdfmark end + 3689 6835 a FH(edit)h(boot.ini)-30 8482 +y +SDict begin H.S end + -30 8482 a -30 8482 a +SDict begin 18.2 H.A end + -30 8482 a -30 8482 a +SDict begin [ /View [/XYZ H.V] /Dest (2660) cvn H.B /DEST pdfmark end + -30 8482 +a 1917 x FU(Add)387 b(this)g(line)g(to)g(the)g(end)h(of)f(the)g +(\002le:)-30 11964 y +SDict begin H.S end + -30 11964 a -30 11964 a +SDict begin 14.56 H.A end + -30 11964 +a -30 11964 a +SDict begin [ /View [/XYZ H.V] /Dest (2661) cvn H.B /DEST pdfmark end + -30 11964 a 1596 x FP(C:\\bootsect.lnx="Slackware)741 +b(Linux")-30 15208 y +SDict begin H.S end + -30 15208 a -30 15208 a +SDict begin 18.2 H.A end + -30 15208 +a -30 15208 a +SDict begin [ /View [/XYZ H.V] /Dest (2662) cvn H.B /DEST pdfmark end + -30 15208 a 1917 x FU(Sa)-31 b(v)-23 b(e)417 +b(the)g(changes)g(and)g(e)-23 b(xit)416 b(the)h(editor)-85 +b(.)417 b(When)g(you)g(reboot)f(W)-62 b(indo)-39 b(ws)417 +b(NT)-115 b(,)418 b(you)f(will)f(ha)-31 b(v)-23 b(e)-30 +19140 y(a)388 b(Linux)e(option)h(on)g(the)g(menu.)h(Choosing)e(it)h +(will)g(boot)g(into)f(Linux.)-30 21800 y +SDict begin H.S end + -30 21800 a +-30 21800 a +SDict begin 18.2 H.A end + -30 21800 a -30 21800 a +SDict begin [ /View [/XYZ H.V] /Dest (BOOTING-DUAL-LINUX) cvn H.B /DEST +pdfmark end + -30 21800 a 5181 +x FG(Lin)-19 b(ux)-30 27934 y +SDict begin H.S end + -30 27934 a -30 27934 a +SDict begin 18.2 H.A end + +-30 27934 a -30 27934 a +SDict begin [ /View [/XYZ H.V] /Dest (2665) cvn H.B /DEST pdfmark end + -30 27934 a 1992 x FU(Y)-155 +b(es,)431 b(people)g(really)f(do)h(this.)g(This)f(is)h(de\002nitely)f +(the)g(easiest)h(dual)f(boot)h(scenario.)g(Y)-170 b(ou)430 +b(can)-30 31940 y(simply)457 b(use)g(LILO)h(and)f(add)g(more)h(entries) +f(to)g(the)28795 31940 y +SDict begin H.S end + 28795 31940 a 28795 31940 a +SDict begin 18.2 H.A end + +28795 31940 a 28795 31940 a +SDict begin [ /View [/XYZ H.V] /Dest (2666) cvn H.B /DEST pdfmark end + 28795 31940 a FQ(/etc/lilo.conf)449 +b FU(\002le.)457 b(That')-85 b(s)457 b(all)h(there)f(is)-30 +33955 y(to)387 b(it.)p Black 50226 73792 a FR(99)p Black +eop end +%%Page: 100 122 +TeXDict begin 100 121 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.100) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(7)g(Booting)p Black +Black -30 73792 a(100)p Black eop end +%%Page: 101 123 +TeXDict begin 101 122 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.101) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL) cvn H.B /DEST pdfmark +end + -30 2383 a 2345 x FS(Chapter)894 +b(8)-30 10743 y FO(The)1287 b(Shell)p -30 18316 51806 +56 v -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a +-30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (2669) cvn H.B /DEST pdfmark end + -30 18316 a -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 +a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (2671) cvn H.B /DEST pdfmark end + -30 18316 a -30 19091 a +SDict begin H.S end + -30 +19091 a -30 19091 a +SDict begin 18.2 H.A end + -30 19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (2673) cvn H.B /DEST pdfmark end + -30 19091 +a 1051 x FU(In)394 b(a)h(graphical)f(en)-62 b(vironment,)393 +b(the)h(interf)-15 b(ace)394 b(is)g(pro)-23 b(vided)394 +b(by)g(a)g(program)g(that)g(creates)g(win-)-30 22157 +y(do)-39 b(ws,)514 b(scrollbars,)g(menus,)g(etc.)h(In)f(a)g +(commandline)f(en)-62 b(vironment,)513 b(the)h(user)g(interf)-15 +b(ace)513 b(is)-30 24171 y(pro)-23 b(vided)553 b(by)h(a)f(shell,)h +(which)f(interprets)h(commands)e(and)i(generally)f(mak)-15 +b(es)553 b(things)g(use-)-30 26186 y(able.)466 b(Immediately)f(after)i +(logging)e(in)h(\(which)f(is)h(co)-23 b(v)g(ered)466 +b(in)f(this)h(chapter\),)g(users)g(are)g(put)-30 28201 +y(into)444 b(a)g(shell)f(and)h(allo)-39 b(wed)444 b(to)g(go)g(about)g +(their)f(b)-31 b(usiness.)444 b(This)g(chapter)g(serv)-23 +b(es)443 b(as)h(an)g(intro-)-30 30215 y(duction)388 b(to)h(the)g +(shell,)f(and)h(to)g(the)g(most)f(common)g(shell)g(among)h(Linux)f +(users--)h(the)f(Bourne)-30 32230 y(Ag)-8 b(ain)345 b(Shell)g +(\(bash\).)h(F)-23 b(or)344 b(more)i(detailed)e(information)h(on)g(an) +-23 b(ything)344 b(in)h(this)g(chapter)-62 b(,)346 b(check)-30 +34245 y(out)387 b(the)4619 34245 y +SDict begin H.S end + 4619 34245 a 4619 +34245 a +SDict begin 18.2 H.A end + 4619 34245 a 4619 34245 a +SDict begin [ /View [/XYZ H.V] /Dest (2674) cvn H.B /DEST pdfmark end + 4619 34245 a FP(bash)p +FU(\(1\))g(man)g(page.)-30 34580 y +SDict begin H.S end + -30 34580 a -30 34580 +a +SDict begin 18.2 H.A end + -30 34580 a -30 34580 a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-USERS) cvn H.B /DEST pdfmark +end + -30 34580 a 5789 x FL(8.1)620 +b(User)-33 b(s)-30 40397 y +SDict begin H.S end + -30 40397 a -30 40397 a +SDict begin 18.2 H.A end + -30 +40397 a -30 40397 a +SDict begin [ /View [/XYZ H.V] /Dest (2677) cvn H.B /DEST pdfmark end + -30 40397 a 5334 x FG(Log)-19 b(ging)519 +b(In)-30 47075 y +SDict begin H.S end + -30 47075 a -30 47075 a +SDict begin 18.2 H.A end + -30 47075 a +-30 47075 a +SDict begin [ /View [/XYZ H.V] /Dest (2679) cvn H.B /DEST pdfmark end + -30 47075 a 1601 x FU(So)387 b(you')-77 b(v)-23 +b(e)386 b(booted,)i(and)f(you')-77 b(re)387 b(looking)f(at)h(something) +g(that)34745 48676 y +SDict begin H.S end + 34745 48676 a 34745 48676 a +SDict begin 18.2 H.A end + 34745 +48676 a 34745 48676 a +SDict begin [ /View [/XYZ H.V] /Dest (2680) cvn H.B /DEST pdfmark end + 34745 48676 a 387 w FU(looks)g(lik)-15 +b(e)386 b(this:)-30 50561 y +SDict begin H.S end + -30 50561 a -30 50561 a +SDict begin 14.56 H.A end + -30 +50561 a -30 50561 a +SDict begin [ /View [/XYZ H.V] /Dest (2682) cvn H.B /DEST pdfmark end + -30 50561 a 1276 x FP(Welcome)743 +b(to)h(Linux)f(2.4.18)-30 53449 y(Last)g(login:)h(Wed)f(Jan)2231 +b(1)744 b(15:59:14)f(-0500)g(2005)h(on)f(tty6.)-30 55061 +y(darkstar)g(login:)-30 56805 y +SDict begin H.S end + -30 56805 a -30 56805 +a +SDict begin 18.2 H.A end + -30 56805 a -30 56805 a +SDict begin [ /View [/XYZ H.V] /Dest (2683) cvn H.B /DEST pdfmark end + -30 56805 a 1820 x FU(Hmm..)539 +b(nobody)f(said)g(an)-23 b(ything)537 b(about)h(a)h(login.)f(And)g +(what')-85 b(s)538 b(a)g(darkstar?)h(Don')-28 b(t)538 +b(w)-15 b(orry;)-30 60640 y(you)549 b(probably)g(didn')-28 +b(t)549 b(accidentally)g(\002re)g(up)h(a)f(h)-8 b(yperspace)550 +b(comm-link)e(to)h(the)h(Empire')-85 b(s)-30 62655 y(arti\002cial)453 +b(moon.)h(\(I'm)g(afraid)g(the)g(h)-8 b(yperspace)454 +b(comm-link)f(protocol)g(isn')-28 b(t)454 b(currently)f(sup-)-30 +64669 y(ported)544 b(by)f(the)h(Linux)f(k)-15 b(ernel.)543 +b(Maybe)h(the)f(2.8)h(k)-15 b(ernel)544 b(branch)f(will)g(at)h(last)f +(pro)-23 b(vide)544 b(this)-30 66684 y(oft)416 b(look)-15 +b(ed-for)9050 66684 y +SDict begin H.S end + 9050 66684 a 9050 66684 a +SDict begin 18.2 H.A end + 9050 +66684 a 9050 66684 a +SDict begin [ /View [/XYZ H.V] /Dest (2684) cvn H.B /DEST pdfmark end + 9050 66684 a 416 w FU(support.\))416 +b(No,)g(darkstar)g(is)g(just)f(the)h(name)g(of)g(one)g(of)g(our)g +(computers,)g(and)p Black 49451 73672 a FR(101)p Black +eop end +%%Page: 102 124 +TeXDict begin 102 123 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.102) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(8)g(The)g(Shell)p +Black -30 3490 a FU(its)433 b(name)g(gets)g(stamped)g(on)g(as)g(the)g +(def)-15 b(ault.)433 b(If)h(you)f(speci\002ed)f(a)i(name)f(for)g(your)h +(computer)-30 5505 y(during)387 b(setup,)g(you)g(should)g(see)g(it)g +(instead)g(of)h(darkstar)-85 b(.)-30 5840 y +SDict begin H.S end + -30 5840 +a -30 5840 a +SDict begin 18.2 H.A end + -30 5840 a -30 5840 a +SDict begin [ /View [/XYZ H.V] /Dest (2686) cvn H.B /DEST pdfmark end + -30 5840 a -30 5840 +a +SDict begin H.S end + -30 5840 a -30 5840 a +SDict begin 18.2 H.A end + -30 5840 a -30 5840 a +SDict begin [ /View [/XYZ H.V] /Dest (2688) cvn H.B /DEST pdfmark end + -30 5840 +a -30 6615 a +SDict begin H.S end + -30 6615 a -30 6615 a +SDict begin 18.2 H.A end + -30 6615 a -30 6615 +a +SDict begin [ /View [/XYZ H.V] /Dest (2690) cvn H.B /DEST pdfmark end + -30 6615 a 1679 x FU(As)460 b(for)g(the)g(login...)h(If)f(this)f(is)h +(your)g(\002rst)f(time,)h(you')-15 b(ll)459 b(w)-15 b(ant)459 +b(to)h(log)g(in)f(as)42169 8294 y +SDict begin H.S end + 42169 8294 a 42169 +8294 a +SDict begin 18.2 H.A end + 42169 8294 a 42169 8294 a +SDict begin [ /View [/XYZ H.V] /Dest (2691) cvn H.B /DEST pdfmark end + 42169 8294 a FP(root)p +FU(.)h(Y)-170 b(ou')-15 b(ll)459 b(be)-30 10309 y(prompted)525 +b(for)g(a)h(passw)-15 b(ord;)524 b(if)i(you)f(set)g(one)h(during)e(the) +i(setup)f(process,)g(that')-85 b(s)525 b(what)h(it')-85 +b(s)-30 12324 y(looking)387 b(for)-85 b(.)387 b(If)h(not,)f(just)g(hit) +g(enter)-85 b(.)387 b(That')-85 b(s)387 b(it--)g(you')-77 +b(re)387 b(in!)-30 13434 y +SDict begin H.S end + -30 13434 a -30 13434 a +SDict begin 18.2 H.A end + -30 +13434 a -30 13434 a +SDict begin [ /View [/XYZ H.V] /Dest (2692) cvn H.B /DEST pdfmark end + -30 13434 a 5182 x FG(Root:)518 b(The)f(Superuser) +-30 19931 y +SDict begin H.S end + -30 19931 a -30 19931 a +SDict begin 18.2 H.A end + -30 19931 a -30 19931 +a +SDict begin [ /View [/XYZ H.V] /Dest (2694) cvn H.B /DEST pdfmark end + -30 19931 a 1629 x FU(Okay)-101 b(,)388 b(who)f(or)8735 +21560 y +SDict begin H.S end + 8735 21560 a 8735 21560 a +SDict begin 18.2 H.A end + 8735 21560 a 8735 21560 +a +SDict begin [ /View [/XYZ H.V] /Dest (2695) cvn H.B /DEST pdfmark end + 8735 21560 a FR(what)415 b FU(is)13586 21560 y +SDict begin H.S end + 13586 +21560 a 13586 21560 a +SDict begin 18.2 H.A end + 13586 21560 a 13586 21560 a +SDict begin [ /View [/XYZ H.V] /Dest (2696) cvn H.B /DEST pdfmark end + 13586 +21560 a FP(root)p FU(?)387 b(And)g(what')-85 b(s)387 +b(it)g(doing)g(with)g(an)g(account)g(on)42431 21560 y +SDict begin H.S end + +42431 21560 a 42431 21560 a +SDict begin 18.2 H.A end + 42431 21560 a 42431 21560 +a +SDict begin [ /View [/XYZ H.V] /Dest (2697) cvn H.B /DEST pdfmark end + 42431 21560 a FR(your)423 b FU(system?)-30 21896 y +SDict begin H.S end + +-30 21896 a -30 21896 a +SDict begin 18.2 H.A end + -30 21896 a -30 21896 a +SDict begin [ /View [/XYZ H.V] /Dest (2698) cvn H.B /DEST pdfmark end + -30 21896 +a -30 22671 a +SDict begin H.S end + -30 22671 a -30 22671 a +SDict begin 18.2 H.A end + -30 22671 a -30 +22671 a +SDict begin [ /View [/XYZ H.V] /Dest (2700) cvn H.B /DEST pdfmark end + -30 22671 a 1679 x FU(W)-124 b(ell,)324 b(in)f(the)g(w)-15 +b(orld)323 b(of)g(Unix)g(and)h(similar)e(operating)h(systems)g(\(lik) +-15 b(e)323 b(Linux\),)g(there)g(are)h(users)-30 26364 +y(and)531 b(then)f(there)h(are)g(users.)g(W)-124 b(e')-15 +b(ll)531 b(go)f(into)h(this)f(in)h(more)f(detail)h(later)-62 +b(,)531 b(b)-31 b(ut)530 b(the)h(important)-30 28379 +y(thing)427 b(to)h(kno)-39 b(w)428 b(no)-39 b(w)428 b(is)f(that)16323 +28379 y +SDict begin H.S end + 16323 28379 a 16323 28379 a +SDict begin 18.2 H.A end + 16323 28379 a 16323 +28379 a +SDict begin [ /View [/XYZ H.V] /Dest (2701) cvn H.B /DEST pdfmark end + 16323 28379 a FP(root)h FU(is)f(the)h(user)g(abo)-23 +b(v)g(e)427 b(all)h(users;)36623 28379 y +SDict begin H.S end + 36623 28379 +a 36623 28379 a +SDict begin 18.2 H.A end + 36623 28379 a 36623 28379 a +SDict begin [ /View [/XYZ H.V] /Dest (2702) cvn H.B /DEST pdfmark end + 36623 28379 +a FP(root)g FU(is)f(all-po)-39 b(werful)428 b(and)-30 +30394 y(all-kno)-39 b(wing,)391 b(and)10829 30394 y +SDict begin H.S end + 10829 +30394 a 10829 30394 a +SDict begin 18.2 H.A end + 10829 30394 a 10829 30394 a +SDict begin [ /View [/XYZ H.V] /Dest (2703) cvn H.B /DEST pdfmark end + 10829 +30394 a FR(nobody)g FU(disobe)-23 b(ys)21575 30394 y +SDict begin H.S end + +21575 30394 a 21575 30394 a +SDict begin 18.2 H.A end + 21575 30394 a 21575 30394 +a +SDict begin [ /View [/XYZ H.V] /Dest (2704) cvn H.B /DEST pdfmark end + 21575 30394 a FP(root)p FU(.)392 b(It)f(just)g(isn')-28 +b(t)391 b(allo)-39 b(wed.)38064 30394 y +SDict begin H.S end + 38064 30394 a +38064 30394 a +SDict begin 18.2 H.A end + 38064 30394 a 38064 30394 a +SDict begin [ /View [/XYZ H.V] /Dest (2705) cvn H.B /DEST pdfmark end + 38064 30394 +a FP(root)391 b FU(is)g(what)g(we)h(call)f(a)-30 32408 +y +SDict begin H.S end + -30 32408 a -30 32408 a +SDict begin 18.2 H.A end + -30 32408 a -30 32408 a +SDict begin [ /View [/XYZ H.V] /Dest (2706) cvn H.B /DEST pdfmark end + -30 +32408 a FU(\223superuser\224,)d(and)f(rightly)g(so.)g(And)g(best)g(of)h +(all,)27301 32408 y +SDict begin H.S end + 27301 32408 a 27301 32408 a +SDict begin 18.2 H.A end + 27301 +32408 a 27301 32408 a +SDict begin [ /View [/XYZ H.V] /Dest (2707) cvn H.B /DEST pdfmark end + 27301 32408 a 27689 32408 a +SDict begin H.S end + 27689 +32408 a 27689 32408 a +SDict begin 18.2 H.A end + 27689 32408 a 27689 32408 a +SDict begin [ /View [/XYZ H.V] /Dest (2709) cvn H.B /DEST pdfmark end + 27689 +32408 a FP(root)f FU(is)32473 32408 y +SDict begin H.S end + 32473 32408 a 32473 +32408 a +SDict begin 18.2 H.A end + 32473 32408 a 32473 32408 a +SDict begin [ /View [/XYZ H.V] /Dest (2710) cvn H.B /DEST pdfmark end + 32473 32408 a FR(you)p +FU(.)-30 33519 y +SDict begin H.S end + -30 33519 a -30 33519 a +SDict begin 18.2 H.A end + -30 33519 a +-30 33519 a +SDict begin [ /View [/XYZ H.V] /Dest (2711) cvn H.B /DEST pdfmark end + -30 33519 a 1679 x FU(Cool,)g(huh?)-30 36197 +y +SDict begin H.S end + -30 36197 a -30 36197 a +SDict begin 18.2 H.A end + -30 36197 a -30 36197 a +SDict begin [ /View [/XYZ H.V] /Dest (2712) cvn H.B /DEST pdfmark end + -30 +36197 a 1791 x FU(If)593 b(you')-77 b(re)593 b(not)f(sure:)h(yes,)h +(that')-85 b(s)592 b(v)-23 b(ery)593 b(cool.)g(The)g(catch)g(is,)g +(though,)g(that)g(root)f(is)h(inher)-31 b(-)-30 40002 +y(ently)652 b(allo)-39 b(wed)653 b(to)f(break)h(an)-23 +b(ything)652 b(it)g(so)g(desires.)h(Y)-170 b(ou)652 b(might)g(w)-15 +b(ant)652 b(to)g(skip)g(ahead)h(to)p 0 TeXcolorgray -30 +42017 a +SDict begin H.S end + -30 42017 a FU(Section)387 b(12.1.1)8881 42017 +y +SDict begin 18.2 H.L end + 8881 42017 a 8881 42017 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-SCRIPTS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8881 42017 a Black 489 w +FU(and)489 b(see)f(about)h(adding)f(a)h(user;)f(then)h(login)f(as)g +(that)h(user)f(and)h(w)-15 b(ork)488 b(from)-30 44032 +y(there.)353 b(The)f(traditional)f(wisdom)h(is)g(that)f(it')-85 +b(s)352 b(best)g(to)g(only)g(become)g(the)g(superuser)g(when)g(ab-)-30 +46046 y(solutely)410 b(necessary)-101 b(,)411 b(so)f(as)g(to)h +(minimize)e(the)h(possibility)f(of)h(accidentally)g(breaking)g(some-) +-30 48061 y(thing.)-30 49171 y +SDict begin H.S end + -30 49171 a -30 49171 +a +SDict begin 18.2 H.A end + -30 49171 a -30 49171 a +SDict begin [ /View [/XYZ H.V] /Dest (2714) cvn H.B /DEST pdfmark end + -30 49171 a 1679 x FU(By)488 +b(the)g(w)-15 b(ay)-101 b(,)488 b(if)g(you)g(decide)g(you)g(w)-15 +b(ant)488 b(to)f(be)i(root)f(while)f(you')-77 b(re)488 +b(logged)f(in)h(as)h(someone)-30 52865 y(else,)343 b(no)f(problem.)h +(Just)e(use)i(the)18296 52865 y +SDict begin H.S end + 18296 52865 a 18296 52865 +a +SDict begin 18.2 H.A end + 18296 52865 a 18296 52865 a +SDict begin [ /View [/XYZ H.V] /Dest (2715) cvn H.B /DEST pdfmark end + 18296 52865 a 18639 52865 +a +SDict begin H.S end + 18639 52865 a 18639 52865 a +SDict begin 18.2 H.A end + 18639 52865 a 18639 52865 +a +SDict begin [ /View [/XYZ H.V] /Dest (2717) cvn H.B /DEST pdfmark end + 18639 52865 a FP(su)p FU(\(1\))f(command.)g(Y)-170 +b(ou')-15 b(ll)341 b(be)i(ask)-15 b(ed)342 b(for)41132 +52865 y +SDict begin H.S end + 41132 52865 a 41132 52865 a +SDict begin 18.2 H.A end + 41132 52865 a 41132 +52865 a +SDict begin [ /View [/XYZ H.V] /Dest (2718) cvn H.B /DEST pdfmark end + 41132 52865 a FP(root's)g FU(passw)-15 b(ord)-30 +54880 y(and)407 b(then)h(it)f(will)g(mak)-15 b(e)407 +b(you)16261 54880 y +SDict begin H.S end + 16261 54880 a 16261 54880 a +SDict begin 18.2 H.A end + 16261 +54880 a 16261 54880 a +SDict begin [ /View [/XYZ H.V] /Dest (2719) cvn H.B /DEST pdfmark end + 16261 54880 a FP(root)g FU(until)g(you)25626 +54880 y +SDict begin H.S end + 25626 54880 a 25626 54880 a +SDict begin 18.2 H.A end + 25626 54880 a 25626 +54880 a +SDict begin [ /View [/XYZ H.V] /Dest (2720) cvn H.B /DEST pdfmark end + 25626 54880 a FP(exit)g FU(or)30707 54880 y +SDict begin H.S end + 30707 +54880 a 30707 54880 a +SDict begin 18.2 H.A end + 30707 54880 a 30707 54880 a +SDict begin [ /View [/XYZ H.V] /Dest (2721) cvn H.B /DEST pdfmark end + 30707 +54880 a FP(logout)p FU(.)h(Y)-170 b(ou)406 b(can)i(also)f(become)g(an) +-23 b(y)-30 56894 y(other)314 b(user)g(using)10037 56894 +y +SDict begin H.S end + 10037 56894 a 10037 56894 a +SDict begin 18.2 H.A end + 10037 56894 a 10037 56894 +a +SDict begin [ /View [/XYZ H.V] /Dest (2722) cvn H.B /DEST pdfmark end + 10037 56894 a FP(su)p FU(,)h(pro)-23 b(vided)313 b(you)h(kno)-39 +b(w)314 b(that)g(user')-85 b(s)313 b(passw)-15 b(ord:)37536 +56894 y +SDict begin H.S end + 37536 56894 a 37536 56894 a +SDict begin 18.2 H.A end + 37536 56894 a 37536 +56894 a +SDict begin [ /View [/XYZ H.V] /Dest (2723) cvn H.B /DEST pdfmark end + 37536 56894 a FP(su)744 b(logan)p FU(,)314 b(for)g(instance,) +-30 58909 y(w)-15 b(ould)386 b(mak)-15 b(e)387 b(you)g(me.)-30 +59245 y +SDict begin H.S end + -30 59245 a -30 59245 a +SDict begin 16.9 H.A end + -30 59245 a -30 59245 +a +SDict begin [ /View [/XYZ H.V] /Dest (2724) cvn H.B /DEST pdfmark end + -30 59245 a -30 61569 a +SDict begin H.S end + -30 61569 a -30 61569 a +SDict begin 16.9 H.A end + -30 +61569 a -30 61569 a +SDict begin [ /View [/XYZ H.V] /Dest (2725) cvn H.B /DEST pdfmark end + -30 61569 a 3070 63104 a Fu(Note:)7146 +63104 y +SDict begin H.S end + 7146 63104 a 7146 63104 a +SDict begin 16.9 H.A end + 7146 63104 a 7146 63104 +a +SDict begin [ /View [/XYZ H.V] /Dest (2726) cvn H.B /DEST pdfmark end + 7146 63104 a Fn(root)399 b Ft(is)h(allo)-22 b(w)-14 +b(ed)402 b(to)e(su)g(to)g(an)-22 b(y)400 b(user)-72 b(,)400 +b(without)h(requir)22 b(ing)401 b(their)g(pass)-43 b(w)-14 +b(ord.)p Black -30 73672 a FR(102)p Black eop end +%%Page: 103 125 +TeXDict begin 103 124 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.103) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 39333 -1636 a FR(Chapter)387 b(8)g(The)g(Shell)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-COMMAND-LINE) cvn H.B /DEST +pdfmark end + -30 2504 a 1628 x FL(8.2)620 b(The)g(Command)e(Line)-30 +4160 y +SDict begin H.S end + -30 4160 a -30 4160 a +SDict begin 18.2 H.A end + -30 4160 a -30 4160 a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-COMMAND-LINE-RUNNING) cvn +H.B /DEST pdfmark end + -30 +4160 a 5334 x FG(Running)518 b(Pr)-37 b(ograms)-30 10838 +y +SDict begin H.S end + -30 10838 a -30 10838 a +SDict begin 18.2 H.A end + -30 10838 a -30 10838 a +SDict begin [ /View [/XYZ H.V] /Dest (2731) cvn H.B /DEST pdfmark end + -30 +10838 a 1601 x FU(It')-85 b(s)468 b(hard)h(to)f(get)h(much)f +(accomplished)g(without)f(running)h(a)h(program;)f(you)h(might)e(be)i +(able)-30 14453 y(to)404 b(prop)g(something)f(up)h(with)g(your)g +(computer)g(or)g(hold)g(a)g(door)g(open,)h(and)f(some)g(will)g(mak)-15 +b(e)-30 16468 y(the)385 b(most)f(lo)-23 b(v)g(ely)384 +b(humming)g(noise)h(when)f(running,)h(b)-31 b(ut)385 +b(that')-85 b(s)384 b(really)h(about)g(it.)g(And)f(I)i(think)-30 +18483 y(we)403 b(can)f(all)g(agree)h(that)f(its)g(use)g(as)h(a)f +(humming)g(doorstop)f(isn')-28 b(t)402 b(what)g(brought)g(the)g +(personal)-30 20497 y(computer)387 b(the)g(popularity)f(it)i(no)-39 +b(w)387 b(enjo)-15 b(ys.)-30 21608 y +SDict begin H.S end + -30 21608 a -30 +21608 a +SDict begin 18.2 H.A end + -30 21608 a -30 21608 a +SDict begin [ /View [/XYZ H.V] /Dest (2732) cvn H.B /DEST pdfmark end + -30 21608 a 1679 x FU(So,)574 +b(remember)g(ho)-39 b(w)575 b(almost)e(e)-39 b(v)-23 +b(erything)574 b(in)g(Linux)g(is)g(a)g(\002le?)g(W)-124 +b(ell,)575 b(that)f(goes)g(for)g(pro-)-30 25302 y(grams,)446 +b(too.)g(Ev)-23 b(ery)446 b(command)f(you)h(run)g(\(that)g(isn')-28 +b(t)445 b(b)-31 b(uilt)445 b(into)h(the)g(shell\))f(resides)h(as)g(a)g +(\002le)-30 27316 y(some)-39 b(where.)388 b(Y)-170 b(ou)386 +b(run)i(a)f(program)g(simply)f(by)i(specifying)e(the)h(full)g(path)g +(to)g(it.)-30 28427 y +SDict begin H.S end + -30 28427 a -30 28427 a +SDict begin 18.2 H.A end + -30 28427 +a -30 28427 a +SDict begin [ /View [/XYZ H.V] /Dest (2733) cvn H.B /DEST pdfmark end + -30 28427 a 1679 x FU(F)-23 b(or)352 b(instance,)g +(remember)g(that)17583 30106 y +SDict begin H.S end + 17583 30106 a 17583 30106 +a +SDict begin 18.2 H.A end + 17583 30106 a 17583 30106 a +SDict begin [ /View [/XYZ H.V] /Dest (2734) cvn H.B /DEST pdfmark end + 17583 30106 a FP(su)g FU(command)f(from)i +(the)f(last)g(section?)g(W)-124 b(ell,)352 b(it')-85 +b(s)352 b(actually)g(in)-30 32121 y(the)2251 32121 y +SDict begin H.S end + +2251 32121 a 2251 32121 a +SDict begin 18.2 H.A end + 2251 32121 a 2251 32121 a +SDict begin [ /View [/XYZ H.V] /Dest (2735) cvn H.B /DEST pdfmark end + 2251 +32121 a FQ(/bin)385 b FU(directory:)11557 32121 y +SDict begin H.S end + 11557 +32121 a 11557 32121 a +SDict begin 18.2 H.A end + 11557 32121 a 11557 32121 a +SDict begin [ /View [/XYZ H.V] /Dest (2736) cvn H.B /DEST pdfmark end + 11557 +32121 a FP(/bin/su)i FU(w)-15 b(ould)386 b(run)h(it)g(nicely)-101 +b(.)-30 32456 y +SDict begin H.S end + -30 32456 a -30 32456 a +SDict begin 18.2 H.A end + -30 32456 a -30 +32456 a +SDict begin [ /View [/XYZ H.V] /Dest (2737) cvn H.B /DEST pdfmark end + -30 32456 a -30 32456 a +SDict begin H.S end + -30 32456 a -30 32456 +a +SDict begin 18.2 H.A end + -30 32456 a -30 32456 a +SDict begin [ /View [/XYZ H.V] /Dest (2739) cvn H.B /DEST pdfmark end + -30 32456 a -30 33231 a +SDict begin H.S end + -30 +33231 a -30 33231 a +SDict begin 18.2 H.A end + -30 33231 a -30 33231 a +SDict begin [ /View [/XYZ H.V] /Dest (2741) cvn H.B /DEST pdfmark end + -30 33231 +a 1679 x FU(So)572 b(wh)-8 b(y)-101 b(,)572 b(then,)h(does)e(just)h +(typing)20084 34910 y +SDict begin H.S end + 20084 34910 a 20084 34910 a +SDict begin 18.2 H.A end + 20084 +34910 a 20084 34910 a +SDict begin [ /View [/XYZ H.V] /Dest (2742) cvn H.B /DEST pdfmark end + 20084 34910 a FP(su)g FU(w)-15 +b(ork?)571 b(After)h(all,)g(you)g(didn')-28 b(t)571 b(say)h(it)g(w)-15 +b(as)571 b(in)48883 34910 y +SDict begin H.S end + 48883 34910 a 48883 34910 +a +SDict begin 18.2 H.A end + 48883 34910 a 48883 34910 a +SDict begin [ /View [/XYZ H.V] /Dest (2743) cvn H.B /DEST pdfmark end + 48883 34910 a FQ(/bin)p +FU(.)-30 36925 y(It)504 b(could)g(just)f(as)h(easily)f(ha)-31 +b(v)-23 b(e)504 b(been)g(in)22542 36925 y +SDict begin H.S end + 22542 36925 +a 22542 36925 a +SDict begin 18.2 H.A end + 22542 36925 a 22542 36925 a +SDict begin [ /View [/XYZ H.V] /Dest (2744) cvn H.B /DEST pdfmark end + 22542 36925 +a FQ(/usr/local/share)p FU(,)494 b(right?)503 b(Ho)-39 +b(w)504 b(did)g(it)44902 36925 y +SDict begin H.S end + 44902 36925 a 44902 +36925 a +SDict begin 18.2 H.A end + 44902 36925 a 44902 36925 a +SDict begin [ /View [/XYZ H.V] /Dest (2745) cvn H.B /DEST pdfmark end + 44902 36925 a FR(know)p +FU(?)g(The)-30 38939 y(answer)i(to)g(that)g(lies)g(in)g(the)16180 +38939 y +SDict begin H.S end + 16180 38939 a 16180 38939 a +SDict begin 18.2 H.A end + 16180 38939 a 16180 +38939 a +SDict begin [ /View [/XYZ H.V] /Dest (2746) cvn H.B /DEST pdfmark end + 16180 38939 a FP(PATH)f FU(en)-62 b(vironment)506 +b(v)-39 b(ariable;)506 b(most)f(shells)h(ha)-31 b(v)-23 +b(e)506 b(either)48800 38939 y +SDict begin H.S end + 48800 38939 a 48800 38939 +a +SDict begin 18.2 H.A end + 48800 38939 a 48800 38939 a +SDict begin [ /View [/XYZ H.V] /Dest (2747) cvn H.B /DEST pdfmark end + 48800 38939 a FP(PATH)-30 +40954 y FU(or)444 b(something)e(v)-23 b(ery)444 b(much)f(lik)-15 +b(e)18421 40954 y +SDict begin H.S end + 18421 40954 a 18421 40954 a +SDict begin 18.2 H.A end + 18421 40954 +a 18421 40954 a +SDict begin [ /View [/XYZ H.V] /Dest (2748) cvn H.B /DEST pdfmark end + 18421 40954 a FP(PATH)p FU(.)444 b(It)f(basically)g +(contains)g(a)h(list)f(of)h(directories)f(to)g(look)-30 +42969 y(in)478 b(for)h(programs)f(you)g(try)g(to)g(run.)h(So)f(when)g +(you)g(ran)31102 42969 y +SDict begin H.S end + 31102 42969 a 31102 42969 a +SDict begin 18.2 H.A end + +31102 42969 a 31102 42969 a +SDict begin [ /View [/XYZ H.V] /Dest (2749) cvn H.B /DEST pdfmark end + 31102 42969 a FP(su)p FU(,)g(your)h(shell)e +(ran)i(through)f(its)g(list)-30 44983 y(of)484 b(directories,)f +(checking)g(each)h(one)f(for)g(an)h(e)-23 b(x)g(ecutable)482 +b(\002le)i(called)39228 44983 y +SDict begin H.S end + 39228 44983 a 39228 44983 +a +SDict begin 18.2 H.A end + 39228 44983 a 39228 44983 a +SDict begin [ /View [/XYZ H.V] /Dest (2750) cvn H.B /DEST pdfmark end + 39228 44983 a FP(su)f FU(that)g(it)g +(could)g(run;)-30 46998 y(the)497 b(\002rst)e(one)i(it)f(came)h(to,)f +(it)h(ran.)g(This)f(happens)g(whene)-39 b(v)-23 b(er)496 +b(you)h(run)f(a)h(program)f(without)-30 49013 y(specifying)363 +b(a)h(full)f(path)g(to)g(it;)g(if)h(you)f(get)g(a)23923 +49013 y +SDict begin H.S end + 23923 49013 a 23923 49013 a +SDict begin 18.2 H.A end + 23923 49013 a 23923 +49013 a +SDict begin [ /View [/XYZ H.V] /Dest (2751) cvn H.B /DEST pdfmark end + 23923 49013 a FU(\223)24611 49013 y +SDict begin H.S end + 24611 49013 +a 24611 49013 a +SDict begin 18.2 H.A end + 24611 49013 a 24611 49013 a +SDict begin [ /View [/XYZ H.V] /Dest (2752) cvn H.B /DEST pdfmark end + 24611 49013 +a FP(Command)743 b(not)h(found)p FU(\224)363 b(error)-62 +b(,)364 b(that)f(only)g(means)-30 51027 y(that)450 b(the)h(program)f +(you)g(tried)g(to)g(run)h(isn')-28 b(t)450 b(in)g(your)29155 +51027 y +SDict begin H.S end + 29155 51027 a 29155 51027 a +SDict begin 18.2 H.A end + 29155 51027 a 29155 +51027 a +SDict begin [ /View [/XYZ H.V] /Dest (2753) cvn H.B /DEST pdfmark end + 29155 51027 a FP(PATH)p FU(.)h(\(Of)f(course,)h(this)f(w)-15 +b(ould)450 b(be)g(true)-30 53042 y(if)529 b(the)f(program)g(doesn')-28 +b(t)529 b(e)-23 b(xist)527 b(at)i(all...\))h(W)-124 b(e')-15 +b(ll)528 b(discuss)g(en)-62 b(vironment)527 b(v)-39 b(ariables)529 +b(in)f(more)-30 55057 y(depth)387 b(in)p 0 TeXcolorgray +5394 55057 a +SDict begin H.S end + 5394 55057 a FU(Section)g(8.3.1)13530 55057 +y +SDict begin 18.2 H.L end + 13530 55057 a 13530 55057 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 13530 55057 a Black FU(.)-30 +56167 y +SDict begin H.S end + -30 56167 a -30 56167 a +SDict begin 18.2 H.A end + -30 56167 a -30 56167 +a +SDict begin [ /View [/XYZ H.V] /Dest (2755) cvn H.B /DEST pdfmark end + -30 56167 a 1679 x FU(Remember)376 b(also)g(that)12721 +57846 y +SDict begin H.S end + 12721 57846 a 12721 57846 a +SDict begin 18.2 H.A end + 12721 57846 a 12721 +57846 a +SDict begin [ /View [/XYZ H.V] /Dest (2756) cvn H.B /DEST pdfmark end + 12721 57846 a FU(\223)13409 57846 y +SDict begin H.S end + 13409 57846 +a 13409 57846 a +SDict begin 18.2 H.A end + 13409 57846 a 13409 57846 a +SDict begin [ /View [/XYZ H.V] /Dest (2757) cvn H.B /DEST pdfmark end + 13409 57846 +a FQ(.)p FU(\224)g(is)g(shorthand)g(for)h(the)f(current)g(directory) +-101 b(,)377 b(so)f(if)h(you)f(happened)g(to)-30 59861 +y(be)387 b(in)3414 59861 y +SDict begin H.S end + 3414 59861 a 3414 59861 a +SDict begin 18.2 H.A end + +3414 59861 a 3414 59861 a +SDict begin [ /View [/XYZ H.V] /Dest (2758) cvn H.B /DEST pdfmark end + 3414 59861 a FQ(/bin)p FU(,)6694 +59861 y +SDict begin H.S end + 6694 59861 a 6694 59861 a +SDict begin 18.2 H.A end + 6694 59861 a 6694 59861 +a +SDict begin [ /View [/XYZ H.V] /Dest (2759) cvn H.B /DEST pdfmark end + 6694 59861 a FQ(./su)e FU(w)-15 b(ould)386 b(ha)-31 +b(v)-23 b(e)387 b(w)-15 b(ork)g(ed)386 b(as)i(an)f(e)-23 +b(xplicit)386 b(full)h(path.)-30 60971 y +SDict begin H.S end + -30 60971 a +-30 60971 a +SDict begin 18.2 H.A end + -30 60971 a -30 60971 a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-COMMAND-LINE-WILDCARD) +cvn H.B /DEST pdfmark end + -30 60971 a Black +49451 73792 a FR(103)p Black eop end +%%Page: 104 126 +TeXDict begin 104 125 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.104) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(8)g(The)g(Shell)p +Black -30 3861 a FG(Wildcar)-37 b(d)517 b(Matc)-19 b(hing)-30 +4275 y +SDict begin H.S end + -30 4275 a -30 4275 a +SDict begin 18.2 H.A end + -30 4275 a -30 4275 a +SDict begin [ /View [/XYZ H.V] /Dest (2762) cvn H.B /DEST pdfmark end + -30 +4275 a -30 5204 a +SDict begin H.S end + -30 5204 a -30 5204 a +SDict begin 18.2 H.A end + -30 5204 a -30 +5204 a +SDict begin [ /View [/XYZ H.V] /Dest (2764) cvn H.B /DEST pdfmark end + -30 5204 a 1601 x FU(Nearly)672 b(e)-39 b(v)-23 +b(ery)672 b(shell)f(recognizes)h(some)f(characters)h(as)g(being)g +(substitutes)e(or)i(abbre)-39 b(via-)-30 8820 y(tions)622 +b(that)h(mean)g(an)-23 b(ything)622 b(goes)h(here.)g(Such)g(characters) +g(are)g(aptly)g(named)g(wildcards;)-30 10835 y(the)507 +b(most)g(common)f(are)14224 10835 y +SDict begin H.S end + 14224 10835 a 14224 +10835 a +SDict begin 18.2 H.A end + 14224 10835 a 14224 10835 a +SDict begin [ /View [/XYZ H.V] /Dest (2765) cvn H.B /DEST pdfmark end + 14224 10835 a FP(*)h +FU(and)18220 10835 y +SDict begin H.S end + 18220 10835 a 18220 10835 a +SDict begin 18.2 H.A end + 18220 +10835 a 18220 10835 a +SDict begin [ /View [/XYZ H.V] /Dest (2766) cvn H.B /DEST pdfmark end + 18220 10835 a FP(?)p FU(.)g(By)g(con)-62 +b(v)-23 b(ention,)29871 10835 y +SDict begin H.S end + 29871 10835 a 29871 10835 +a +SDict begin 18.2 H.A end + 29871 10835 a 29871 10835 a +SDict begin [ /View [/XYZ H.V] /Dest (2767) cvn H.B /DEST pdfmark end + 29871 10835 a FP(?)507 +b FU(usually)f(matches)h(an)-23 b(y)507 b(single)g(char)-31 +b(-)-30 12849 y(acter)-85 b(.)504 b(F)-23 b(or)502 b(instance,)h +(suppose)f(you')-77 b(re)503 b(in)f(a)i(directory)e(with)h(three)g +(\002les:)41729 12849 y +SDict begin H.S end + 41729 12849 a 41729 12849 a +SDict begin 18.2 H.A end + 41729 +12849 a 41729 12849 a +SDict begin [ /View [/XYZ H.V] /Dest (2768) cvn H.B /DEST pdfmark end + 41729 12849 a FQ(ex1.txt)p FU(,)47004 +12849 y +SDict begin H.S end + 47004 12849 a 47004 12849 a +SDict begin 18.2 H.A end + 47004 12849 a 47004 +12849 a +SDict begin [ /View [/XYZ H.V] /Dest (2769) cvn H.B /DEST pdfmark end + 47004 12849 a FQ(ex2.txt)p FU(,)-30 14864 y(and)2730 +14864 y +SDict begin H.S end + 2730 14864 a 2730 14864 a +SDict begin 18.2 H.A end + 2730 14864 a 2730 14864 +a +SDict begin [ /View [/XYZ H.V] /Dest (2770) cvn H.B /DEST pdfmark end + 2730 14864 a FQ(ex3.txt)p FU(.)518 b(Y)-170 b(ou)521 +b(w)-15 b(ant)522 b(to)g(cop)-15 b(y)521 b(all)h(of)g(those)f(\002les)h +(\(using)f(the)37407 14864 y +SDict begin H.S end + 37407 14864 a 37407 14864 +a +SDict begin 18.2 H.A end + 37407 14864 a 37407 14864 a +SDict begin [ /View [/XYZ H.V] /Dest (2771) cvn H.B /DEST pdfmark end + 37407 14864 a FP(cp)h FU(command)f(we)h +(co)-23 b(v)g(er)-30 16879 y(in)p 0 TeXcolorgray 1604 +16879 a +SDict begin H.S end + 1604 16879 a FU(Section)386 b(10.5.1)10514 16879 +y +SDict begin 18.2 H.L end + 10514 16879 a 10514 16879 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS-COPYMOVE-CP) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 10514 16879 a Black 1 w +FU(\))428 b(to)g(another)f(directory)-101 b(,)429 b(say)26972 +16879 y +SDict begin H.S end + 26972 16879 a 26972 16879 a +SDict begin 18.2 H.A end + 26972 16879 a 26972 +16879 a +SDict begin [ /View [/XYZ H.V] /Dest (2773) cvn H.B /DEST pdfmark end + 26972 16879 a FQ(/tmp)p FU(.)d(W)-124 b(ell,)428 +b(typing)38386 16879 y +SDict begin H.S end + 38386 16879 a 38386 16879 a +SDict begin 18.2 H.A end + 38386 +16879 a 38386 16879 a +SDict begin [ /View [/XYZ H.V] /Dest (2774) cvn H.B /DEST pdfmark end + 38386 16879 a FP(cp)744 b(ex1.txt)f(ex2.txt)-30 +18893 y(ex3.txt)g(/tmp)330 b FU(is)f(entirely)g(too)h(much)f(w)-15 +b(ork.)330 b(It')-85 b(s)329 b(much)h(easier)g(to)f(type)40187 +18893 y +SDict begin H.S end + 40187 18893 a 40187 18893 a +SDict begin 18.2 H.A end + 40187 18893 a 40187 +18893 a +SDict begin [ /View [/XYZ H.V] /Dest (2775) cvn H.B /DEST pdfmark end + 40187 18893 a FP(cp)744 b(ex?.txt)f(/tmp)p FU(;)-30 +20908 y(the)2344 20908 y +SDict begin H.S end + 2344 20908 a 2344 20908 a +SDict begin 18.2 H.A end + 2344 +20908 a 2344 20908 a +SDict begin [ /View [/XYZ H.V] /Dest (2776) cvn H.B /DEST pdfmark end + 2344 20908 a FP(?)479 b FU(will)h(match)f(each)h +(of)g(the)f(characters)24950 20908 y +SDict begin H.S end + 24950 20908 a 24950 +20908 a +SDict begin 18.2 H.A end + 24950 20908 a 24950 20908 a +SDict begin [ /View [/XYZ H.V] /Dest (2777) cvn H.B /DEST pdfmark end + 24950 20908 a FU(\2231\224,)27969 +20908 y +SDict begin H.S end + 27969 20908 a 27969 20908 a +SDict begin 18.2 H.A end + 27969 20908 a 27969 +20908 a +SDict begin [ /View [/XYZ H.V] /Dest (2778) cvn H.B /DEST pdfmark end + 27969 20908 a FU(\2232\224,)h(and)33705 20908 +y +SDict begin H.S end + 33705 20908 a 33705 20908 a +SDict begin 18.2 H.A end + 33705 20908 a 33705 20908 +a +SDict begin [ /View [/XYZ H.V] /Dest (2779) cvn H.B /DEST pdfmark end + 33705 20908 a FU(\2233\224,)g(and)g(each)g(in)f(turn)h(will)f(be)-30 +22923 y(substituted)386 b(in.)-30 23713 y +SDict begin H.S end + -30 23713 a +-30 23713 a +SDict begin 18.2 H.A end + -30 23713 a -30 23713 a +SDict begin [ /View [/XYZ H.V] /Dest (2780) cvn H.B /DEST pdfmark end + -30 23713 a 1999 +x FU(What')-85 b(s)545 b(that)f(you)h(say?)g(That')-85 +b(s)18364 25712 y +SDict begin H.S end + 18364 25712 a 18364 25712 a +SDict begin 18.2 H.A end + 18364 25712 +a 18364 25712 a +SDict begin [ /View [/XYZ H.V] /Dest (2781) cvn H.B /DEST pdfmark end + 18364 25712 a FR(still)545 b FU(too)g(much)g(w)-15 +b(ork?)544 b(Y)-170 b(ou')-77 b(re)544 b(right.)h(It')-85 +b(s)545 b(appalling;)f(we)-30 27727 y(ha)-31 b(v)-23 +b(e)380 b(labor)g(la)-23 b(ws)379 b(to)h(protect)f(us)h(from)g(that)g +(sort)f(of)h(thing.)g(F)-23 b(ortunately)-101 b(,)379 +b(we)h(also)g(ha)-31 b(v)-23 b(e)48543 27727 y +SDict begin H.S end + 48543 +27727 a 48543 27727 a +SDict begin 18.2 H.A end + 48543 27727 a 48543 27727 a +SDict begin [ /View [/XYZ H.V] /Dest (2782) cvn H.B /DEST pdfmark end + 48543 +27727 a FP(*)p FU(.)380 b(As)-30 29742 y(w)-15 b(as)517 +b(already)h(mentioned,)15409 29742 y +SDict begin H.S end + 15409 29742 a 15409 +29742 a +SDict begin 18.2 H.A end + 15409 29742 a 15409 29742 a +SDict begin [ /View [/XYZ H.V] /Dest (2783) cvn H.B /DEST pdfmark end + 15409 29742 a FP(*)f +FU(matches)22267 29742 y +SDict begin H.S end + 22267 29742 a 22267 29742 a +SDict begin 18.2 H.A end + +22267 29742 a 22267 29742 a +SDict begin [ /View [/XYZ H.V] /Dest (2784) cvn H.B /DEST pdfmark end + 22267 29742 a FU(\223an)-23 +b(y)517 b(number)g(of)h(characters\224,)g(including)f(0.)h(So)f(if)-30 +31756 y(those)370 b(three)g(\002les)g(were)h(the)f(only)g(ones)g(in)g +(the)h(directory)-101 b(,)370 b(we)h(could)f(ha)-31 b(v)-23 +b(e)370 b(simply)f(said)48800 31756 y +SDict begin H.S end + 48800 31756 a 48800 +31756 a +SDict begin 18.2 H.A end + 48800 31756 a 48800 31756 a +SDict begin [ /View [/XYZ H.V] /Dest (2785) cvn H.B /DEST pdfmark end + 48800 31756 a FP(cp)744 +b(*)-30 33771 y(/tmp)386 b FU(and)h(gotten)f(them)g(all)h(in)f(one)h +(fell)f(sw)-15 b(oop.)386 b(Suppose,)g(though,)h(that)f(there)h(is)f +(also)g(a)h(\002le)-30 35786 y(called)4076 35786 y +SDict begin H.S end + 4076 +35786 a 4076 35786 a +SDict begin 18.2 H.A end + 4076 35786 a 4076 35786 a +SDict begin [ /View [/XYZ H.V] /Dest (2786) cvn H.B /DEST pdfmark end + 4076 35786 +a FQ(ex.txt)402 b FU(and)j(one)g(called)17632 35786 y +SDict begin H.S end + +17632 35786 a 17632 35786 a +SDict begin 18.2 H.A end + 17632 35786 a 17632 35786 +a +SDict begin [ /View [/XYZ H.V] /Dest (2787) cvn H.B /DEST pdfmark end + 17632 35786 a FQ(hejaz.txt)p FU(.)400 b(W)-124 b(e)405 +b(w)-15 b(ant)405 b(to)g(cop)-15 b(y)34910 35786 y +SDict begin H.S end + 34910 +35786 a 34910 35786 a +SDict begin 18.2 H.A end + 34910 35786 a 34910 35786 a +SDict begin [ /View [/XYZ H.V] /Dest (2788) cvn H.B /DEST pdfmark end + 34910 +35786 a FQ(ex.txt)402 b FU(b)-31 b(ut)405 b(not)43815 +35786 y +SDict begin H.S end + 43815 35786 a 43815 35786 a +SDict begin 18.2 H.A end + 43815 35786 a 43815 +35786 a +SDict begin [ /View [/XYZ H.V] /Dest (2789) cvn H.B /DEST pdfmark end + 43815 35786 a FQ(hejaz.txt)p FU(;)50288 35786 +y +SDict begin H.S end + 50288 35786 a 50288 35786 a +SDict begin 18.2 H.A end + 50288 35786 a 50288 35786 +a +SDict begin [ /View [/XYZ H.V] /Dest (2790) cvn H.B /DEST pdfmark end + 50288 35786 a FP(cp)-30 37800 y(ex*)744 b(/tmp)387 +b FU(will)f(do)i(that)f(for)g(us.)-30 38770 y +SDict begin H.S end + -30 38770 +a -30 38770 a +SDict begin 18.2 H.A end + -30 38770 a -30 38770 a +SDict begin [ /View [/XYZ H.V] /Dest (2791) cvn H.B /DEST pdfmark end + -30 38770 a -30 +38770 a +SDict begin H.S end + -30 38770 a -30 38770 a +SDict begin 18.2 H.A end + -30 38770 a -30 38770 +a +SDict begin [ /View [/XYZ H.V] /Dest (2792) cvn H.B /DEST pdfmark end + -30 38770 a 1820 x FP(cp)744 b(ex?.txt)f(/tmp)p FU(,)317 +b(w)-15 b(ould,)317 b(of)g(course,)h(only)f(get)g(our)g(original)g +(three)g(\002les;)g(there')-85 b(s)317 b(no)g(char)-31 +b(-)-30 42604 y(acter)388 b(in)4962 42604 y +SDict begin H.S end + 4962 42604 +a 4962 42604 a +SDict begin 18.2 H.A end + 4962 42604 a 4962 42604 a +SDict begin [ /View [/XYZ H.V] /Dest (2793) cvn H.B /DEST pdfmark end + 4962 42604 a +FQ(ex.txt)383 b FU(to)k(match)g(that)17587 42604 y +SDict begin H.S end + 17587 +42604 a 17587 42604 a +SDict begin 18.2 H.A end + 17587 42604 a 17587 42604 a +SDict begin [ /View [/XYZ H.V] /Dest (2794) cvn H.B /DEST pdfmark end + 17587 +42604 a FP(?)p FU(,)h(so)f(it)g(w)-15 b(ould)387 b(be)g(left)g(out.)-30 +43603 y +SDict begin H.S end + -30 43603 a -30 43603 a +SDict begin 18.2 H.A end + -30 43603 a -30 43603 +a +SDict begin [ /View [/XYZ H.V] /Dest (2795) cvn H.B /DEST pdfmark end + -30 43603 a 1791 x FU(Another)309 b(common)f(wildcard)g(is)h(the)g +(brack)-15 b(et)308 b(pair)27941 45394 y +SDict begin H.S end + 27941 45394 +a 27941 45394 a +SDict begin 18.2 H.A end + 27941 45394 a 27941 45394 a +SDict begin [ /View [/XYZ H.V] /Dest (2796) cvn H.B /DEST pdfmark end + 27941 45394 +a FP([)744 b(])p FU(.)309 b(An)-23 b(y)309 b(characters)g(inside)f(the) +h(brack)-15 b(ets)-30 47409 y(will)369 b(be)g(substituted)e(in)i(place) +g(of)g(the)20805 47409 y +SDict begin H.S end + 20805 47409 a 20805 47409 a +SDict begin 18.2 H.A end + +20805 47409 a 20805 47409 a +SDict begin [ /View [/XYZ H.V] /Dest (2797) cvn H.B /DEST pdfmark end + 20805 47409 a FP([)744 b(])369 +b FU(to)g(\002nd)f(matches.)h(Sound)g(confusing?)f(It')-85 +b(s)369 b(not)f(too)-30 49423 y(bad.)450 b(Suppose)e(for)h(instance,)g +(we)h(ha)-31 b(v)-23 b(e)448 b(a)i(directory)f(containing)f(the)h +(follo)-39 b(wing)448 b(8)h(\002les:)50136 49423 y +SDict begin H.S end + 50136 +49423 a 50136 49423 a +SDict begin 18.2 H.A end + 50136 49423 a 50136 49423 a +SDict begin [ /View [/XYZ H.V] /Dest (2798) cvn H.B /DEST pdfmark end + 50136 +49423 a FQ(a1)p FU(,)-30 51438 y +SDict begin H.S end + -30 51438 a -30 51438 +a +SDict begin 18.2 H.A end + -30 51438 a -30 51438 a +SDict begin [ /View [/XYZ H.V] /Dest (2799) cvn H.B /DEST pdfmark end + -30 51438 a FQ(a2)p FU(,)2073 +51438 y +SDict begin H.S end + 2073 51438 a 2073 51438 a +SDict begin 18.2 H.A end + 2073 51438 a 2073 51438 +a +SDict begin [ /View [/XYZ H.V] /Dest (2800) cvn H.B /DEST pdfmark end + 2073 51438 a FQ(a3)p FU(,)4176 51438 y +SDict begin H.S end + 4176 51438 a +4176 51438 a +SDict begin 18.2 H.A end + 4176 51438 a 4176 51438 a +SDict begin [ /View [/XYZ H.V] /Dest (2801) cvn H.B /DEST pdfmark end + 4176 51438 a FQ(a4)p +FU(,)6278 51438 y +SDict begin H.S end + 6278 51438 a 6278 51438 a +SDict begin 18.2 H.A end + 6278 51438 +a 6278 51438 a +SDict begin [ /View [/XYZ H.V] /Dest (2802) cvn H.B /DEST pdfmark end + 6278 51438 a FQ(aA)p FU(,)8381 51438 y +SDict begin H.S end + +8381 51438 a 8381 51438 a +SDict begin 18.2 H.A end + 8381 51438 a 8381 51438 a +SDict begin [ /View [/XYZ H.V] /Dest (2803) cvn H.B /DEST pdfmark end + 8381 +51438 a FQ(aB)p FU(,)10484 51438 y +SDict begin H.S end + 10484 51438 a 10484 +51438 a +SDict begin 18.2 H.A end + 10484 51438 a 10484 51438 a +SDict begin [ /View [/XYZ H.V] /Dest (2804) cvn H.B /DEST pdfmark end + 10484 51438 a FQ(aC)p +FU(,)462 b(and)15287 51438 y +SDict begin H.S end + 15287 51438 a 15287 51438 +a +SDict begin 18.2 H.A end + 15287 51438 a 15287 51438 a +SDict begin [ /View [/XYZ H.V] /Dest (2805) cvn H.B /DEST pdfmark end + 15287 51438 a FQ(aD)f FU(.)i(W)-124 +b(e)463 b(w)-15 b(ant)462 b(to)g(only)g(\002nd)g(the)g(\002les)g +(ending)g(in)h(numbers;)49544 51438 y +SDict begin H.S end + 49544 51438 a 49544 +51438 a +SDict begin 18.2 H.A end + 49544 51438 a 49544 51438 a +SDict begin [ /View [/XYZ H.V] /Dest (2806) cvn H.B /DEST pdfmark end + 49544 51438 a FP([)744 +b(])-30 53453 y FU(will)387 b(do)g(this)g(for)g(us.)-30 +55018 y +SDict begin H.S end + -30 55018 a -30 55018 a +SDict begin 14.56 H.A end + -30 55018 a -30 55018 +a +SDict begin [ /View [/XYZ H.V] /Dest (2807) cvn H.B /DEST pdfmark end + -30 55018 a -30 55018 a +SDict begin H.S end + -30 55018 a -30 55018 a +SDict begin 14.56 H.A end + -30 +55018 a -30 55018 a +SDict begin [ /View [/XYZ H.V] /Dest (2808) cvn H.B /DEST pdfmark end + -30 55018 a 1596 x FJ(\045)1309 56614 +y +SDict begin H.S end + 1309 56614 a 1309 56614 a +SDict begin 14.56 H.A end + 1309 56614 a 1309 56614 a +SDict begin [ /View [/XYZ H.V] /Dest (2809) cvn H.B /DEST pdfmark end + +1309 56614 a FH(ls)744 b(a[1-4])-30 58226 y FP(a1)g(a2)f(a3)h(a4)-30 +59802 y +SDict begin H.S end + -30 59802 a -30 59802 a +SDict begin 18.2 H.A end + -30 59802 a -30 59802 +a +SDict begin [ /View [/XYZ H.V] /Dest (2810) cvn H.B /DEST pdfmark end + -30 59802 a 1988 x FU(But)506 b(what)h(we)f(really)h(w)-15 +b(ant)506 b(is)g(just)20375 61790 y +SDict begin H.S end + 20375 61790 a 20375 +61790 a +SDict begin 18.2 H.A end + 20375 61790 a 20375 61790 a +SDict begin [ /View [/XYZ H.V] /Dest (2811) cvn H.B /DEST pdfmark end + 20375 61790 a FQ(a1)p +FU(,)22522 61790 y +SDict begin H.S end + 22522 61790 a 22522 61790 a +SDict begin 18.2 H.A end + 22522 +61790 a 22522 61790 a +SDict begin [ /View [/XYZ H.V] /Dest (2812) cvn H.B /DEST pdfmark end + 22522 61790 a FQ(a2)p FU(,)g(and)27414 +61790 y +SDict begin H.S end + 27414 61790 a 27414 61790 a +SDict begin 18.2 H.A end + 27414 61790 a 27414 +61790 a +SDict begin [ /View [/XYZ H.V] /Dest (2813) cvn H.B /DEST pdfmark end + 27414 61790 a FQ(a4)p FU(?)f(In)i(the)f(pre)-39 +b(vious)507 b(e)-23 b(xample)506 b(we)g(used)h(-)-30 +63805 y(to)539 b(mean)g(all)g(v)-39 b(alues)539 b(between)g(1)g(and)g +(4.)g(W)-124 b(e)539 b(can)h(also)e(separate)i(indi)-39 +b(vidual)538 b(entries)g(with)-30 65820 y(commas.)p Black +-30 73792 a FR(104)p Black eop end +%%Page: 105 127 +TeXDict begin 105 126 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.105) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 39333 -1636 a FR(Chapter)387 b(8)g(The)g(Shell)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2814) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2815) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FJ(\045)1309 3611 +y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + 1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2816) cvn H.B /DEST pdfmark end + 1309 +3611 a FH(ls)744 b(a[1,2,4])-30 5223 y FP(a1)g(a2)f(a4)-30 +6799 y +SDict begin H.S end + -30 6799 a -30 6799 a +SDict begin 18.2 H.A end + -30 6799 a -30 6799 a +SDict begin [ /View [/XYZ H.V] /Dest (2817) cvn H.B /DEST pdfmark end + -30 +6799 a 1988 x FU(I)330 b(kno)-39 b(w)329 b(what)h(you')-77 +b(re)329 b(thinking)f(no)-39 b(w)-101 b(,)20933 8787 +y +SDict begin H.S end + 20933 8787 a 20933 8787 a +SDict begin 18.2 H.A end + 20933 8787 a 20933 8787 a +SDict begin [ /View [/XYZ H.V] /Dest (2818) cvn H.B /DEST pdfmark end + +20933 8787 a FU(\223W)-124 b(ell)329 b(what)g(about)h(letters?\224)f +(Linux)g(is)g(case-sensiti)-39 b(v)-23 b(e,)-30 10802 +y(meaning)587 b(that)8807 10802 y +SDict begin H.S end + 8807 10802 a 8807 10802 +a +SDict begin 18.2 H.A end + 8807 10802 a 8807 10802 a +SDict begin [ /View [/XYZ H.V] /Dest (2819) cvn H.B /DEST pdfmark end + 8807 10802 a FP(a)h FU(and)12964 +10802 y +SDict begin H.S end + 12964 10802 a 12964 10802 a +SDict begin 18.2 H.A end + 12964 10802 a 12964 +10802 a +SDict begin [ /View [/XYZ H.V] /Dest (2820) cvn H.B /DEST pdfmark end + 12964 10802 a FP(A)f FU(are)h(dif)-39 b(ferent)588 +b(characters)f(and)h(are)f(only)g(related)h(in)f(your)g(mind.)-30 +12817 y(Capitals)j(al)-15 b(w)g(ays)590 b(come)h(before)g(lo)-39 +b(wercase)591 b(letters,)g(so)32485 12817 y +SDict begin H.S end + 32485 12817 +a 32485 12817 a +SDict begin 18.2 H.A end + 32485 12817 a 32485 12817 a +SDict begin [ /View [/XYZ H.V] /Dest (2821) cvn H.B /DEST pdfmark end + 32485 12817 +a FP(A)g FU(and)36649 12817 y +SDict begin H.S end + 36649 12817 a 36649 12817 +a +SDict begin 18.2 H.A end + 36649 12817 a 36649 12817 a +SDict begin [ /View [/XYZ H.V] /Dest (2822) cvn H.B /DEST pdfmark end + 36649 12817 a FP(B)g FU(come)f(before) +46481 12817 y +SDict begin H.S end + 46481 12817 a 46481 12817 a +SDict begin 18.2 H.A end + 46481 12817 +a 46481 12817 a +SDict begin [ /View [/XYZ H.V] /Dest (2823) cvn H.B /DEST pdfmark end + 46481 12817 a FP(a)h FU(and)50645 12817 +y +SDict begin H.S end + 50645 12817 a 50645 12817 a +SDict begin 18.2 H.A end + 50645 12817 a 50645 12817 +a +SDict begin [ /View [/XYZ H.V] /Dest (2824) cvn H.B /DEST pdfmark end + 50645 12817 a FP(b)p FU(.)-30 14831 y(Continuing)370 +b(with)g(our)h(earlier)g(e)-23 b(xample,)371 b(if)g(we)g(w)-15 +b(anted)370 b(\002les)34477 14831 y +SDict begin H.S end + 34477 14831 a 34477 +14831 a +SDict begin 18.2 H.A end + 34477 14831 a 34477 14831 a +SDict begin [ /View [/XYZ H.V] /Dest (2825) cvn H.B /DEST pdfmark end + 34477 14831 a FQ(a1)p +FU(,)g(and)39097 14831 y +SDict begin H.S end + 39097 14831 a 39097 14831 a +SDict begin 18.2 H.A end + +39097 14831 a 39097 14831 a +SDict begin [ /View [/XYZ H.V] /Dest (2826) cvn H.B /DEST pdfmark end + 39097 14831 a FQ(A1)p FU(,)g(we)h(can)h +(\002nd)e(these)-30 16846 y(quickly)387 b(with)8150 16846 +y +SDict begin H.S end + 8150 16846 a 8150 16846 a +SDict begin 18.2 H.A end + 8150 16846 a 8150 16846 a +SDict begin [ /View [/XYZ H.V] /Dest (2827) cvn H.B /DEST pdfmark end + +8150 16846 a FP([)743 b(])p FU(.)-30 18731 y +SDict begin H.S end + -30 18731 +a -30 18731 a +SDict begin 14.56 H.A end + -30 18731 a -30 18731 a +SDict begin [ /View [/XYZ H.V] /Dest (2828) cvn H.B /DEST pdfmark end + -30 18731 a -30 +18731 a +SDict begin H.S end + -30 18731 a -30 18731 a +SDict begin 14.56 H.A end + -30 18731 a -30 18731 +a +SDict begin [ /View [/XYZ H.V] /Dest (2829) cvn H.B /DEST pdfmark end + -30 18731 a 1276 x FJ(\045)1309 20007 y +SDict begin H.S end + 1309 20007 +a 1309 20007 a +SDict begin 14.56 H.A end + 1309 20007 a 1309 20007 a +SDict begin [ /View [/XYZ H.V] /Dest (2830) cvn H.B /DEST pdfmark end + 1309 20007 a +FH(ls)h([A,a]1)-30 21619 y FP(A1)g(a1)-30 23195 y +SDict begin H.S end + -30 +23195 a -30 23195 a +SDict begin 18.2 H.A end + -30 23195 a -30 23195 a +SDict begin [ /View [/XYZ H.V] /Dest (2831) cvn H.B /DEST pdfmark end + -30 23195 +a 1989 x FU(Note,)452 b(that)g(if)f(we)h(had)g(included)f(a)h(h)-8 +b(yphen)452 b(instead)f(of)h(a)g(comma,)f(we)h(w)-15 +b(ould)451 b(ha)-31 b(v)-23 b(e)452 b(gotten)-30 27198 +y(incorrect)387 b(results.)-30 28763 y +SDict begin H.S end + -30 28763 a -30 +28763 a +SDict begin 14.56 H.A end + -30 28763 a -30 28763 a +SDict begin [ /View [/XYZ H.V] /Dest (2832) cvn H.B /DEST pdfmark end + -30 28763 a -30 28763 +a +SDict begin H.S end + -30 28763 a -30 28763 a +SDict begin 14.56 H.A end + -30 28763 a -30 28763 a +SDict begin [ /View [/XYZ H.V] /Dest (2833) cvn H.B /DEST pdfmark end + -30 +28763 a 1597 x FJ(\045)1309 30360 y +SDict begin H.S end + 1309 30360 a 1309 +30360 a +SDict begin 14.56 H.A end + 1309 30360 a 1309 30360 a +SDict begin [ /View [/XYZ H.V] /Dest (2834) cvn H.B /DEST pdfmark end + 1309 30360 a FH(ls)744 +b([A-a]1)-30 31971 y FP(A1)g(B1)f(C1)h(D1)g(a1)-30 33547 +y +SDict begin H.S end + -30 33547 a -30 33547 a +SDict begin 18.2 H.A end + -30 33547 a -30 33547 a +SDict begin [ /View [/XYZ H.V] /Dest (2835) cvn H.B /DEST pdfmark end + -30 +33547 a 1989 x FU(Y)-170 b(ou)387 b(can)g(also)g(combine)g(h)-8 +b(yphen)387 b(and)g(comma)g(strings.)-30 37421 y +SDict begin H.S end + -30 +37421 a -30 37421 a +SDict begin 14.56 H.A end + -30 37421 a -30 37421 a +SDict begin [ /View [/XYZ H.V] /Dest (2836) cvn H.B /DEST pdfmark end + -30 37421 +a -30 37421 a +SDict begin H.S end + -30 37421 a -30 37421 a +SDict begin 14.56 H.A end + -30 37421 a -30 +37421 a +SDict begin [ /View [/XYZ H.V] /Dest (2837) cvn H.B /DEST pdfmark end + -30 37421 a 1276 x FJ(\045)1309 38697 y +SDict begin H.S end + 1309 +38697 a 1309 38697 a +SDict begin 14.56 H.A end + 1309 38697 a 1309 38697 a +SDict begin [ /View [/XYZ H.V] /Dest (2838) cvn H.B /DEST pdfmark end + 1309 38697 +a FH(ls)744 b([A,a-d])-30 40309 y FP(A1)g(a1)f(b1)h(c1)g(d1)-30 +41885 y +SDict begin H.S end + -30 41885 a -30 41885 a +SDict begin 18.2 H.A end + -30 41885 a -30 41885 +a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-COMMAND-LINE-PIPING) cvn +H.B /DEST pdfmark end + -30 41885 a 5491 x FG(Input/Output)519 b(Redirection)f(and)g(Piping) +-30 48719 y +SDict begin H.S end + -30 48719 a -30 48719 a +SDict begin 18.2 H.A end + -30 48719 a -30 48719 +a +SDict begin [ /View [/XYZ H.V] /Dest (2841) cvn H.B /DEST pdfmark end + -30 48719 a 1601 x FU(\(Here)388 b(comes)f(something)f(cool.\))-30 +52206 y +SDict begin H.S end + -30 52206 a -30 52206 a +SDict begin 14.56 H.A end + -30 52206 a -30 52206 +a +SDict begin [ /View [/XYZ H.V] /Dest (2842) cvn H.B /DEST pdfmark end + -30 52206 a -30 52206 a +SDict begin H.S end + -30 52206 a -30 52206 a +SDict begin 14.56 H.A end + -30 +52206 a -30 52206 a +SDict begin [ /View [/XYZ H.V] /Dest (2843) cvn H.B /DEST pdfmark end + -30 52206 a 1276 x FJ(\045)1309 53482 +y +SDict begin H.S end + 1309 53482 a 1309 53482 a +SDict begin 14.56 H.A end + 1309 53482 a 1309 53482 a +SDict begin [ /View [/XYZ H.V] /Dest (2844) cvn H.B /DEST pdfmark end + +1309 53482 a FH(ps)744 b(>)f(blargh)-30 53650 y +SDict begin H.S end + -30 53650 +a -30 53650 a +SDict begin 18.2 H.A end + -30 53650 a -30 53650 a +SDict begin [ /View [/XYZ H.V] /Dest (2845) cvn H.B /DEST pdfmark end + -30 53650 a -30 +53650 a +SDict begin H.S end + -30 53650 a -30 53650 a +SDict begin 18.2 H.A end + -30 53650 a -30 53650 +a +SDict begin [ /View [/XYZ H.V] /Dest (2847) cvn H.B /DEST pdfmark end + -30 53650 a -30 53650 a +SDict begin H.S end + -30 53650 a -30 53650 a +SDict begin 18.2 H.A end + -30 +53650 a -30 53650 a +SDict begin [ /View [/XYZ H.V] /Dest (2849) cvn H.B /DEST pdfmark end + -30 53650 a -30 55200 a +SDict begin H.S end + -30 55200 +a -30 55200 a +SDict begin 18.2 H.A end + -30 55200 a -30 55200 a +SDict begin [ /View [/XYZ H.V] /Dest (2851) cvn H.B /DEST pdfmark end + -30 55200 a 1846 +x FU(Y'kno)-39 b(w)337 b(what)f(that)h(is?)f(That')-85 +b(s)337 b(me)f(running)25016 57046 y +SDict begin H.S end + 25016 57046 a 25016 +57046 a +SDict begin 18.2 H.A end + 25016 57046 a 25016 57046 a +SDict begin [ /View [/XYZ H.V] /Dest (2852) cvn H.B /DEST pdfmark end + 25016 57046 a FP(ps)h +FU(to)g(see)g(which)f(processes)g(are)i(running;)48918 +57046 y +SDict begin H.S end + 48918 57046 a 48918 57046 a +SDict begin 18.2 H.A end + 48918 57046 a 48918 +57046 a +SDict begin [ /View [/XYZ H.V] /Dest (2853) cvn H.B /DEST pdfmark end + 48918 57046 a FP(ps)e FU(is)-30 59061 y(co)-23 +b(v)g(ered)426 b(in)p 0 TeXcolorgray 6887 59061 a +SDict begin H.S end + 6887 +59061 a FU(Section)387 b(11.3)14636 59061 y +SDict begin 18.2 H.L end + 14636 59061 +a 14636 59061 a +SDict begin [ /Subtype /Link /Dest (PROCESS-CONTROL-PS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14636 59061 a Black FU(.)427 b(That')-85 +b(s)426 b(not)g(the)g(cool)g(part.)h(The)f(cool)g(part)g(is)41024 +59061 y +SDict begin H.S end + 41024 59061 a 41024 59061 a +SDict begin 18.2 H.A end + 41024 59061 a 41024 +59061 a +SDict begin [ /View [/XYZ H.V] /Dest (2855) cvn H.B /DEST pdfmark end + 41024 59061 a FK(>)744 b FP(blargh)p FU(,)426 +b(which)-30 61076 y(means,)384 b(roughly)-101 b(,)384 +b(tak)-15 b(e)383 b(the)h(output)f(from)23163 61076 y +SDict begin H.S end + +23163 61076 a 23163 61076 a +SDict begin 18.2 H.A end + 23163 61076 a 23163 61076 +a +SDict begin [ /View [/XYZ H.V] /Dest (2856) cvn H.B /DEST pdfmark end + 23163 61076 a FP(ps)h FU(and)g(write)f(it)h(to)g(a)g(\002le)g(called) +41582 61076 y +SDict begin H.S end + 41582 61076 a 41582 61076 a +SDict begin 18.2 H.A end + 41582 61076 +a 41582 61076 a +SDict begin [ /View [/XYZ H.V] /Dest (2857) cvn H.B /DEST pdfmark end + 41582 61076 a FQ(blargh)p FU(.)d(But)i(w)-15 +b(ait,)-30 63090 y(it)387 b(gets)g(cooler)-85 b(.)-30 +64976 y +SDict begin H.S end + -30 64976 a -30 64976 a +SDict begin 14.56 H.A end + -30 64976 a -30 64976 +a +SDict begin [ /View [/XYZ H.V] /Dest (2858) cvn H.B /DEST pdfmark end + -30 64976 a -30 64976 a +SDict begin H.S end + -30 64976 a -30 64976 a +SDict begin 14.56 H.A end + -30 +64976 a -30 64976 a +SDict begin [ /View [/XYZ H.V] /Dest (2859) cvn H.B /DEST pdfmark end + -30 64976 a 1276 x FJ(\045)1309 66252 +y +SDict begin H.S end + 1309 66252 a 1309 66252 a +SDict begin 14.56 H.A end + 1309 66252 a 1309 66252 a +SDict begin [ /View [/XYZ H.V] /Dest (2860) cvn H.B /DEST pdfmark end + +1309 66252 a FH(ps)744 b(|)f(less)p Black 49451 73792 +a FR(105)p Black eop end +%%Page: 106 128 +TeXDict begin 106 127 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.106) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(8)g(The)g(Shell)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2861) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(That)396 b(one)g(tak)-15 +b(es)395 b(the)h(output)f(from)19462 3611 y +SDict begin H.S end + 19462 3611 +a 19462 3611 a +SDict begin 18.2 H.A end + 19462 3611 a 19462 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2862) cvn H.B /DEST pdfmark end + 19462 3611 a +FP(ps)h FU(and)g(pipes)g(it)f(through)34123 3611 y +SDict begin H.S end + 34123 +3611 a 34123 3611 a +SDict begin 18.2 H.A end + 34123 3611 a 34123 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2863) cvn H.B /DEST pdfmark end + 34123 3611 +a FP(less)p FU(,)h(so)g(I)g(can)g(scroll)g(through)-30 +5626 y(it)387 b(at)h(my)e(leisure.)-30 7511 y +SDict begin H.S end + -30 7511 +a -30 7511 a +SDict begin 14.56 H.A end + -30 7511 a -30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (2864) cvn H.B /DEST pdfmark end + -30 7511 a -30 7511 +a +SDict begin H.S end + -30 7511 a -30 7511 a +SDict begin 14.56 H.A end + -30 7511 a -30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (2865) cvn H.B /DEST pdfmark end + -30 7511 +a 1276 x FJ(\045)1309 8787 y +SDict begin H.S end + 1309 8787 a 1309 8787 a +SDict begin 14.56 H.A end + +1309 8787 a 1309 8787 a +SDict begin [ /View [/XYZ H.V] /Dest (2866) cvn H.B /DEST pdfmark end + 1309 8787 a FH(ps)744 b FK(>>)f +FH(blargh)-30 10505 y +SDict begin H.S end + -30 10505 a -30 10505 a +SDict begin 18.2 H.A end + -30 10505 +a -30 10505 a +SDict begin [ /View [/XYZ H.V] /Dest (2867) cvn H.B /DEST pdfmark end + -30 10505 a 1847 x FU(This)572 b(is)h(the)g(third)f(most) +g(commonly)g(used)g(redirector;)h(it)f(does)h(the)g(same)f(thing)g(as) +48798 12352 y +SDict begin H.S end + 48798 12352 a 48798 12352 a +SDict begin 18.2 H.A end + 48798 12352 +a 48798 12352 a +SDict begin [ /View [/XYZ H.V] /Dest (2868) cvn H.B /DEST pdfmark end + 48798 12352 a FU(\223)p Fl(>)p FU(\224,)-30 +14366 y(e)-23 b(xcept)517 b(that)7351 14366 y +SDict begin H.S end + 7351 14366 +a 7351 14366 a +SDict begin 18.2 H.A end + 7351 14366 a 7351 14366 a +SDict begin [ /View [/XYZ H.V] /Dest (2869) cvn H.B /DEST pdfmark end + 7351 14366 a +FU(\223)p Fl(>>)p FU(\224)h(will)f(append)g(output)g(from)27604 +14366 y +SDict begin H.S end + 27604 14366 a 27604 14366 a +SDict begin 18.2 H.A end + 27604 14366 a 27604 +14366 a +SDict begin [ /View [/XYZ H.V] /Dest (2870) cvn H.B /DEST pdfmark end + 27604 14366 a FP(ps)g FU(to)g(the)h(\002le)36242 +14366 y +SDict begin H.S end + 36242 14366 a 36242 14366 a +SDict begin 18.2 H.A end + 36242 14366 a 36242 +14366 a +SDict begin [ /View [/XYZ H.V] /Dest (2871) cvn H.B /DEST pdfmark end + 36242 14366 a FQ(blargh)p FU(,)c(if)j(said)g(\002le)g(e)-23 +b(xists.)-30 16381 y(If)478 b(not,)h(just)e(lik)-15 b(e)9831 +16381 y +SDict begin H.S end + 9831 16381 a 9831 16381 a +SDict begin 18.2 H.A end + 9831 16381 a 9831 16381 +a +SDict begin [ /View [/XYZ H.V] /Dest (2872) cvn H.B /DEST pdfmark end + 9831 16381 a FU(\223)p Fl(>)p FU(\224,)479 b(it)f(will)f(be)i +(created.)f(\()25313 16381 y +SDict begin H.S end + 25313 16381 a 25313 16381 +a +SDict begin 18.2 H.A end + 25313 16381 a 25313 16381 a +SDict begin [ /View [/XYZ H.V] /Dest (2873) cvn H.B /DEST pdfmark end + 25313 16381 a FU(\223)p +Fl(>)p FU(\224)h(will)e(obliterate)h(the)f(current)i(contents)e(of)-30 +18396 y +SDict begin H.S end + -30 18396 a -30 18396 a +SDict begin 18.2 H.A end + -30 18396 a -30 18396 +a +SDict begin [ /View [/XYZ H.V] /Dest (2874) cvn H.B /DEST pdfmark end + -30 18396 a FQ(blargh)p FU(.\))-30 19448 y +SDict begin H.S end + -30 19448 +a -30 19448 a +SDict begin 18.2 H.A end + -30 19448 a -30 19448 a +SDict begin [ /View [/XYZ H.V] /Dest (2875) cvn H.B /DEST pdfmark end + -30 19448 a 1737 +x FU(There)452 b(is)f(also)g(a)9609 21185 y +SDict begin H.S end + 9609 21185 +a 9609 21185 a +SDict begin 18.2 H.A end + 9609 21185 a 9609 21185 a +SDict begin [ /View [/XYZ H.V] /Dest (2876) cvn H.B /DEST pdfmark end + 9609 21185 a +FU(\223)p Fl(<)p FU(\224)g(operator)-62 b(,)452 b(which)f(means)g(tak) +-15 b(e)451 b(your)h(input)e(from)i(the)f(follo)-39 b(wing,)451 +b(b)-31 b(ut)-30 23200 y(it')-85 b(s)387 b(not)g(used)g(nearly)g(so)g +(often.)-30 25085 y +SDict begin H.S end + -30 25085 a -30 25085 a +SDict begin 14.56 H.A end + -30 25085 +a -30 25085 a +SDict begin [ /View [/XYZ H.V] /Dest (2877) cvn H.B /DEST pdfmark end + -30 25085 a -30 25085 a +SDict begin H.S end + -30 25085 a -30 +25085 a +SDict begin 14.56 H.A end + -30 25085 a -30 25085 a +SDict begin [ /View [/XYZ H.V] /Dest (2878) cvn H.B /DEST pdfmark end + -30 25085 a 1276 x FJ(\045)1309 +26361 y +SDict begin H.S end + 1309 26361 a 1309 26361 a +SDict begin 14.56 H.A end + 1309 26361 a 1309 26361 +a +SDict begin [ /View [/XYZ H.V] /Dest (2879) cvn H.B /DEST pdfmark end + 1309 26361 a FH(fromdos)743 b FK(<)h FH(dosfile.txt)e +FK(>)i FH(unixfile.txt)-30 27958 y +SDict begin H.S end + -30 27958 a -30 27958 +a +SDict begin 18.2 H.A end + -30 27958 a -30 27958 a +SDict begin [ /View [/XYZ H.V] /Dest (2880) cvn H.B /DEST pdfmark end + -30 27958 a 1968 x FU(Redirection)387 +b(gets)g(really)g(fun)g(when)g(you)g(start)g(piling)g(it)g(up:)-30 +31811 y +SDict begin H.S end + -30 31811 a -30 31811 a +SDict begin 14.56 H.A end + -30 31811 a -30 31811 +a +SDict begin [ /View [/XYZ H.V] /Dest (2881) cvn H.B /DEST pdfmark end + -30 31811 a -30 31811 a +SDict begin H.S end + -30 31811 a -30 31811 a +SDict begin 14.56 H.A end + -30 +31811 a -30 31811 a +SDict begin [ /View [/XYZ H.V] /Dest (2882) cvn H.B /DEST pdfmark end + -30 31811 a 1276 x FJ(\045)1309 33087 +y +SDict begin H.S end + 1309 33087 a 1309 33087 a +SDict begin 14.56 H.A end + 1309 33087 a 1309 33087 a +SDict begin [ /View [/XYZ H.V] /Dest (2883) cvn H.B /DEST pdfmark end + +1309 33087 a FH(ps)744 b(|)f(tac)h FK(>>)f FH(blargh)-30 +34947 y +SDict begin H.S end + -30 34947 a -30 34947 a +SDict begin 18.2 H.A end + -30 34947 a -30 34947 +a +SDict begin [ /View [/XYZ H.V] /Dest (2884) cvn H.B /DEST pdfmark end + -30 34947 a 1705 x FU(That)441 b(will)g(run)8613 36652 +y +SDict begin H.S end + 8613 36652 a 8613 36652 a +SDict begin 18.2 H.A end + 8613 36652 a 8613 36652 a +SDict begin [ /View [/XYZ H.V] /Dest (2885) cvn H.B /DEST pdfmark end + +8613 36652 a FP(ps)p FU(,)g(re)-39 b(v)-23 b(erse)442 +b(the)f(lines)g(of)h(its)f(output,)g(and)g(append)h(those)f(to)g(the)g +(\002le)47630 36652 y +SDict begin H.S end + 47630 36652 a 47630 36652 a +SDict begin 18.2 H.A end + 47630 +36652 a 47630 36652 a +SDict begin [ /View [/XYZ H.V] /Dest (2886) cvn H.B /DEST pdfmark end + 47630 36652 a FQ(blargh)p FU(.)-30 +38666 y(Y)-170 b(ou)336 b(can)h(stack)g(as)g(man)-23 +b(y)336 b(of)h(these)g(up)g(as)g(you)f(w)-15 b(ant;)336 +b(just)h(be)g(careful)g(to)f(remember)h(that)f(the)-23 +b(y)-30 40681 y(get)387 b(interpreted)g(from)g(left)g(to)h(right.)-30 +41791 y +SDict begin H.S end + -30 41791 a -30 41791 a +SDict begin 18.2 H.A end + -30 41791 a -30 41791 +a +SDict begin [ /View [/XYZ H.V] /Dest (2887) cvn H.B /DEST pdfmark end + -30 41791 a 1680 x FU(See)f(the)4877 43471 y +SDict begin H.S end + 4877 43471 +a 4877 43471 a +SDict begin 18.2 H.A end + 4877 43471 a 4877 43471 a +SDict begin [ /View [/XYZ H.V] /Dest (2888) cvn H.B /DEST pdfmark end + 4877 43471 a +FP(bash)p FU(\(1\))f(man)i(page)f(for)g(more)22182 43471 +y +SDict begin H.S end + 22182 43471 a 22182 43471 a +SDict begin 18.2 H.A end + 22182 43471 a 22182 43471 +a +SDict begin [ /View [/XYZ H.V] /Dest (2889) cvn H.B /DEST pdfmark end + 22182 43471 a 388 w FU(detailed)g(information)f(on)h(redirection.)-30 +46131 y +SDict begin H.S end + -30 46131 a -30 46131 a +SDict begin 18.2 H.A end + -30 46131 a -30 46131 +a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-BASH) cvn H.B /DEST pdfmark +end + -30 46131 a 5789 x FL(8.3)620 b(The)g(Bourne)f(Again)g(Shell)i +(\(bash\))-30 52416 y +SDict begin H.S end + -30 52416 a -30 52416 a +SDict begin 18.2 H.A end + -30 52416 +a -30 52416 a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-BASH-ENVIRONMENT) cvn H.B +/DEST pdfmark end + -30 52416 a 4866 x FG(En)-74 b(vir)-37 +b(onment)519 b(V)-112 b(ariab)-19 b(les)-30 58235 y +SDict begin H.S end + -30 +58235 a -30 58235 a +SDict begin 18.2 H.A end + -30 58235 a -30 58235 a +SDict begin [ /View [/XYZ H.V] /Dest (2895) cvn H.B /DEST pdfmark end + -30 58235 +a 1991 x FU(A)446 b(Linux)f(system)g(is)h(a)g(comple)-23 +b(x)445 b(beast,)h(and)g(there')-85 b(s)445 b(a)i(lot)e(to)h(k)-15 +b(eep)445 b(track)h(of,)g(a)g(lot)g(of)g(little)-30 62241 +y(details)367 b(that)g(come)g(into)g(play)g(in)h(your)f(normal)g +(interactions)f(with)h(v)-39 b(arious)367 b(programs)g(\(some)-30 +64256 y(of)j(which)f(you)h(might)f(not)g(e)-39 b(v)-23 +b(en)370 b(need)g(to)g(be)f(a)-23 b(w)-15 b(are)370 b(of\).)g(Nobody)f +(w)-15 b(ants)369 b(to)h(pass)f(a)h(b)-31 b(unch)370 +b(of)-30 66270 y(options)358 b(to)g(e)-39 b(v)-23 b(ery)359 +b(program)f(that)g(gets)g(run,)h(telling)f(it)g(what)g(kind)g(of)h +(terminal)e(is)i(being)f(used,)-30 68285 y(the)387 b(hostname)g(of)g +(the)g(computer)-62 b(,)388 b(ho)-39 b(w)387 b(their)g(prompt)g(should) +f(look...)p Black -30 73792 a FR(106)p Black eop end +%%Page: 107 129 +TeXDict begin 107 128 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.107) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (2923) cvn H.B /DEST pdfmark end + -30 -2687 a 39333 -1636 a FR(Chapter)387 +b(8)g(The)g(Shell)p Black Black -30 4347 a FX(Example)f(8-1.)i(Listing) +e(En)-62 b(vir)-28 b(onment)386 b(V)-143 b(ariables)387 +b(with)g FV(set)-30 6211 y +SDict begin H.S end + -30 6211 a -30 6211 a +SDict begin 14.56 H.A end + -30 +6211 a -30 6211 a +SDict begin [ /View [/XYZ H.V] /Dest (2909) cvn H.B /DEST pdfmark end + -30 6211 a -30 6211 a +SDict begin H.S end + -30 6211 a -30 +6211 a +SDict begin 14.56 H.A end + -30 6211 a -30 6211 a +SDict begin [ /View [/XYZ H.V] /Dest (2910) cvn H.B /DEST pdfmark end + -30 6211 a 1297 x FJ(\045)1309 +7508 y +SDict begin H.S end + 1309 7508 a 1309 7508 a +SDict begin 14.56 H.A end + 1309 7508 a 1309 7508 +a +SDict begin [ /View [/XYZ H.V] /Dest (2911) cvn H.B /DEST pdfmark end + 1309 7508 a FH(set)-30 9120 y FP +(PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/)p +(bin:)-30 10732 y +(/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/b)p +(in:)-30 12343 y +(/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin)-30 +13955 y(PIPESTATUS=\([0]="0"\))-30 15567 y(PPID=4978)-30 +17179 y(PS1='\\h:\\w\\$)743 b(')-30 18790 y(PS2='>)g(')-30 +20402 y(PS4='+)g(')-30 22014 y(PWD=/home/logan)-30 23626 +y(QTDIR=/usr/local/lib/qt)-30 25237 y(REMOTEHOST=ninja.tdn)-30 +26849 y(SHELL=/bin/bash)p Black -30 29161 a +SDict begin H.S end + -30 29161 +a -30 29161 a +SDict begin 18.2 H.A end + -30 29161 a -30 29161 a +SDict begin [ /View [/XYZ H.V] /Dest (2896) cvn H.B /DEST pdfmark end + -30 29161 a 1107 +x FU(So)458 b(as)g(a)h(coping)f(mechanism,)g(users)g(ha)-31 +b(v)-23 b(e)458 b(what')-85 b(s)458 b(called)g(an)g(en)-62 +b(vironment.)458 b(The)g(en)-62 b(viron-)-30 32283 y(ment)511 +b(de\002nes)g(the)g(conditions)f(in)i(which)f(programs)g(run,)g(and)h +(some)f(of)g(this)g(de\002nition)f(is)-30 34297 y(v)-39 +b(ariable;)578 b(the)h(user)f(can)g(alter)h(and)f(play)g(with)g(it,)h +(as)f(is)g(only)g(right)g(in)g(a)h(Linux)46505 34297 +y +SDict begin H.S end + 46505 34297 a 46505 34297 a +SDict begin 18.2 H.A end + 46505 34297 a 46505 34297 +a +SDict begin [ /View [/XYZ H.V] /Dest (2897) cvn H.B /DEST pdfmark end + 46505 34297 a 578 w FU(system.)-30 36312 y(Pretty)538 +b(much)g(an)-23 b(y)539 b(shell)f(will)g(ha)-31 b(v)-23 +b(e)538 b(en)-62 b(vironment)538 b(v)-39 b(ariables)538 +b(\(if)h(not,)f(it')-85 b(s)538 b(probably)g(not)h(a)-30 +38327 y(v)-23 b(ery)428 b(useable)f(shell\).)h(Here)g(we)g(will)f(gi) +-39 b(v)-23 b(e)427 b(an)h(o)-23 b(v)g(ervie)-39 b(w)427 +b(of)h(the)g(commands)e(bash)i(pro)-23 b(vides)-30 40341 +y(for)388 b(manipulating)d(its)i(en)-62 b(vironment)387 +b(v)-39 b(ariables.)-30 41452 y +SDict begin H.S end + -30 41452 a -30 41452 +a +SDict begin 18.2 H.A end + -30 41452 a -30 41452 a +SDict begin [ /View [/XYZ H.V] /Dest (2899) cvn H.B /DEST pdfmark end + -30 41452 a -30 41452 a +SDict begin H.S end + -30 +41452 a -30 41452 a +SDict begin 18.2 H.A end + -30 41452 a -30 41452 a +SDict begin [ /View [/XYZ H.V] /Dest (2900) cvn H.B /DEST pdfmark end + -30 41452 +a 1679 x FP(set)507 b FU(by)g(itself)g(will)g(sho)-39 +b(w)507 b(you)g(all)g(of)h(the)f(en)-62 b(vironment)506 +b(v)-39 b(ariables)507 b(that)g(are)h(currently)f(de-)-30 +45145 y(\002ned,)467 b(as)h(well)f(as)g(their)g(v)-39 +b(alues.)468 b(Lik)-15 b(e)466 b(most)25435 45145 y +SDict begin H.S end + 25435 +45145 a 25435 45145 a +SDict begin 18.2 H.A end + 25435 45145 a 25435 45145 a +SDict begin [ /View [/XYZ H.V] /Dest (2901) cvn H.B /DEST pdfmark end + 25435 +45145 a FP(bash)h FU(b)-31 b(uilt-ins,)466 b(it)h(can)h(also)f(do)g(se) +-39 b(v)-23 b(eral)467 b(other)-30 47160 y(things)304 +b(\(with)h(parameters\);)f(we')-15 b(ll)305 b(lea)-31 +b(v)-23 b(e)304 b(it)h(to)g(the)27563 47160 y +SDict begin H.S end + 27563 47160 +a 27563 47160 a +SDict begin 18.2 H.A end + 27563 47160 a 27563 47160 a +SDict begin [ /View [/XYZ H.V] /Dest (2902) cvn H.B /DEST pdfmark end + 27563 47160 +a FP(bash)p FU(\(1\))f(man)h(page)g(to)g(co)-23 b(v)g(er)304 +b(that,)h(though.)p 0 TeXcolorgray -30 49175 a +SDict begin H.S end + -30 49175 +a FU(Example)387 b(8-1)7933 49175 y +SDict begin 18.2 H.L end + 7933 49175 a 7933 +49175 a +SDict begin [ /Subtype /Link /Dest (EX-SHELL-BASH-ENVIRONMENT) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 7933 49175 a Black 339 w FU(sho)-39 b(ws)338 +b(an)h(e)-23 b(xcerpt)339 b(from)g(a)23504 49175 y +SDict begin H.S end + 23504 +49175 a 23504 49175 a +SDict begin 18.2 H.A end + 23504 49175 a 23504 49175 a +SDict begin [ /View [/XYZ H.V] /Dest (2904) cvn H.B /DEST pdfmark end + 23504 +49175 a FP(set)f FU(command)h(run)f(on)h(one)g(of)g(the)g(author')-85 +b(s)338 b(com-)-30 51189 y(puters.)346 b(Notice)f(in)g(this)g(e)-23 +b(xample)344 b(the)20915 51189 y +SDict begin H.S end + 20915 51189 a 20915 +51189 a +SDict begin 18.2 H.A end + 20915 51189 a 20915 51189 a +SDict begin [ /View [/XYZ H.V] /Dest (2905) cvn H.B /DEST pdfmark end + 20915 51189 a FP(PATH)h +FU(v)-39 b(ariable)346 b(that)f(w)-15 b(as)345 b(discussed)f(earlier) +-85 b(.)346 b(Programs)-30 53204 y(in)387 b(an)-23 b(y)387 +b(of)h(those)f(directories)f(can)i(be)f(run)g(simply)g(by)g(typing)f +(the)i(base)f(\002lename.)-30 53540 y +SDict begin H.S end + -30 53540 a -30 +53540 a +SDict begin 18.2 H.A end + -30 53540 a -30 53540 a +SDict begin [ /View [/XYZ H.V] /Dest (EX-SHELL-BASH-ENVIRONMENT) cvn +H.B /DEST pdfmark end + -30 53540 a -30 55089 +a +SDict begin H.S end + -30 55089 a -30 55089 a +SDict begin 14.56 H.A end + -30 55089 a -30 55089 a +SDict begin [ /View [/XYZ H.V] /Dest (2912) cvn H.B /DEST pdfmark end + -30 +55089 a -30 55089 a +SDict begin H.S end + -30 55089 a -30 55089 a +SDict begin 14.56 H.A end + -30 55089 +a -30 55089 a +SDict begin [ /View [/XYZ H.V] /Dest (2913) cvn H.B /DEST pdfmark end + -30 55089 a 1277 x FJ(\045)1309 56366 y +SDict begin H.S end + +1309 56366 a 1309 56366 a +SDict begin 14.56 H.A end + 1309 56366 a 1309 56366 a +SDict begin [ /View [/XYZ H.V] /Dest (2914) cvn H.B /DEST pdfmark end + 1309 +56366 a FH(unset)5772 56366 y +SDict begin H.S end + 5772 56366 a 5772 56366 +a +SDict begin 14.56 H.A end + 5772 56366 a 5772 56366 a +SDict begin [ /View [/XYZ H.V] /Dest (2915) cvn H.B /DEST pdfmark end + 5772 56366 a Fy(VARIABLE)-30 +57940 y +SDict begin H.S end + -30 57940 a -30 57940 a +SDict begin 18.2 H.A end + -30 57940 a -30 57940 +a +SDict begin [ /View [/XYZ H.V] /Dest (2916) cvn H.B /DEST pdfmark end + -30 57940 a -30 57940 a +SDict begin H.S end + -30 57940 a -30 57940 a +SDict begin 18.2 H.A end + -30 +57940 a -30 57940 a +SDict begin [ /View [/XYZ H.V] /Dest (2917) cvn H.B /DEST pdfmark end + -30 57940 a 1990 x FP(unset)347 b +FU(will)f(remo)-23 b(v)g(e)347 b(an)-23 b(y)347 b(v)-39 +b(ariables)347 b(that)f(you)h(gi)-39 b(v)-23 b(e)347 +b(it,)g(wiping)g(out)g(both)f(the)h(v)-39 b(ariable)347 +b(and)g(its)-30 61945 y(v)-39 b(alue;)4028 61945 y +SDict begin H.S end + 4028 +61945 a 4028 61945 a +SDict begin 18.2 H.A end + 4028 61945 a 4028 61945 a +SDict begin [ /View [/XYZ H.V] /Dest (2918) cvn H.B /DEST pdfmark end + 4028 61945 +a FP(bash)309 b FU(will)g(for)-28 b(get)309 b(that)g(v)-39 +b(ariable)310 b(e)-39 b(v)-23 b(er)309 b(e)-23 b(xisted.)309 +b(\(Don')-28 b(t)309 b(w)-15 b(orry)-101 b(.)310 b(Unless)e(it')-85 +b(s)309 b(something)-30 63959 y(you)443 b(e)-23 b(xplicitly)442 +b(de\002ned)h(in)h(that)f(shell)g(session,)g(it')-15 +b(ll)442 b(probably)h(get)h(rede\002ned)f(in)g(an)-23 +b(y)443 b(other)-30 65974 y(session.\))p Black 49394 +73792 a FR(107)p Black eop end +%%Page: 108 130 +TeXDict begin 108 129 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.108) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (2964) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(8)g(The)g(Shell)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 +a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2919) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 +a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (2920) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x +FJ(\045)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + 1309 3611 +a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2921) cvn H.B /DEST pdfmark end + 1309 3611 a FH(export)6516 3611 y +SDict begin H.S end + 6516 +3611 a 6516 3611 a +SDict begin 14.56 H.A end + 6516 3611 a 6516 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2922) cvn H.B /DEST pdfmark end + 6516 3611 +a Fy(VARIABLE=some_value)-30 7176 y FU(No)-39 b(w)-101 +b(,)467 b FP(export)e FU(is)h(truly)g(handy)-101 b(.)466 +b(Using)g(it,)g(you)g(gi)-39 b(v)-23 b(e)466 b(the)g(en)-62 +b(vironment)465 b(v)-39 b(ariable)45825 7176 y +SDict begin H.S end + 45825 +7176 a 45825 7176 a +SDict begin 18.2 H.A end + 45825 7176 a 45825 7176 a +SDict begin [ /View [/XYZ H.V] /Dest (2925) cvn H.B /DEST pdfmark end + 45825 7176 +a FP(VARIABLE)-30 9190 y FU(the)443 b(v)-39 b(alue)6069 +9190 y +SDict begin H.S end + 6069 9190 a 6069 9190 a +SDict begin 18.2 H.A end + 6069 9190 a 6069 9190 +a +SDict begin [ /View [/XYZ H.V] /Dest (2926) cvn H.B /DEST pdfmark end + 6069 9190 a FU(\223)6757 9190 y +SDict begin H.S end + 6757 9190 a 6757 9190 +a +SDict begin 18.2 H.A end + 6757 9190 a 6757 9190 a +SDict begin [ /View [/XYZ H.V] /Dest (2927) cvn H.B /DEST pdfmark end + 6757 9190 a FP(some_value)p +FU(\224;)442 b(if)17148 9190 y +SDict begin H.S end + 17148 9190 a 17148 9190 +a +SDict begin 18.2 H.A end + 17148 9190 a 17148 9190 a +SDict begin [ /View [/XYZ H.V] /Dest (2928) cvn H.B /DEST pdfmark end + 17148 9190 a FP(VARIABLE)h +FU(didn')-28 b(t)443 b(e)-23 b(xist,)443 b(it)g(does)g(no)-39 +b(w)-101 b(.)444 b(If)40821 9190 y +SDict begin H.S end + 40821 9190 a 40821 +9190 a +SDict begin 18.2 H.A end + 40821 9190 a 40821 9190 a +SDict begin [ /View [/XYZ H.V] /Dest (2929) cvn H.B /DEST pdfmark end + 40821 9190 a FP(VARIABLE)e +FU(already)-30 11205 y(had)325 b(a)g(v)-39 b(alue,)325 +b(well,)g(it')-85 b(s)324 b(gone.)h(That')-85 b(s)324 +b(not)g(so)h(good,)f(if)h(you')-77 b(re)324 b(just)g(trying)g(to)h(add) +f(a)h(directory)-30 13220 y(to)387 b(your)4791 13220 +y +SDict begin H.S end + 4791 13220 a 4791 13220 a +SDict begin 18.2 H.A end + 4791 13220 a 4791 13220 a +SDict begin [ /View [/XYZ H.V] /Dest (2930) cvn H.B /DEST pdfmark end + +4791 13220 a FP(PATH)p FU(.)h(In)f(that)g(case,)h(you)f(probably)g(w) +-15 b(ant)386 b(to)i(do)f(something)f(lik)-15 b(e)386 +b(this:)-30 15105 y +SDict begin H.S end + -30 15105 a -30 15105 a +SDict begin 14.56 H.A end + -30 15105 +a -30 15105 a +SDict begin [ /View [/XYZ H.V] /Dest (2931) cvn H.B /DEST pdfmark end + -30 15105 a -30 15105 a +SDict begin H.S end + -30 15105 a -30 +15105 a +SDict begin 14.56 H.A end + -30 15105 a -30 15105 a +SDict begin [ /View [/XYZ H.V] /Dest (2932) cvn H.B /DEST pdfmark end + -30 15105 a 1276 x FJ(\045)1309 +16381 y +SDict begin H.S end + 1309 16381 a 1309 16381 a +SDict begin 14.56 H.A end + 1309 16381 a 1309 16381 +a +SDict begin [ /View [/XYZ H.V] /Dest (2933) cvn H.B /DEST pdfmark end + 1309 16381 a FH(export)743 b(PATH=$PATH:)14700 16381 +y +SDict begin H.S end + 14700 16381 a 14700 16381 a +SDict begin 14.56 H.A end + 14700 16381 a 14700 16381 +a +SDict begin [ /View [/XYZ H.V] /Dest (2934) cvn H.B /DEST pdfmark end + 14700 16381 a Fy(/some/new/directory)-30 18099 y +SDict begin H.S end + -30 +18099 a -30 18099 a +SDict begin 18.2 H.A end + -30 18099 a -30 18099 a +SDict begin [ /View [/XYZ H.V] /Dest (2935) cvn H.B /DEST pdfmark end + -30 18099 +a 1846 x FU(Note)446 b(the)g(use)g(of)10018 19945 y +SDict begin H.S end + 10018 +19945 a 10018 19945 a +SDict begin 18.2 H.A end + 10018 19945 a 10018 19945 a +SDict begin [ /View [/XYZ H.V] /Dest (2936) cvn H.B /DEST pdfmark end + 10018 +19945 a FP($PATH)f FU(there:)h(when)g(you)g(w)-15 b(ant)28175 +19945 y +SDict begin H.S end + 28175 19945 a 28175 19945 a +SDict begin 18.2 H.A end + 28175 19945 a 28175 +19945 a +SDict begin [ /View [/XYZ H.V] /Dest (2937) cvn H.B /DEST pdfmark end + 28175 19945 a FP(bash)445 b FU(to)h(interpret)g(a)g(v)-39 +b(ariable)446 b(\(replace)g(it)-30 21960 y(with)335 b(its)h(v)-39 +b(alue\),)336 b(tack)g(a)13361 21960 y +SDict begin H.S end + 13361 21960 a +13361 21960 a +SDict begin 18.2 H.A end + 13361 21960 a 13361 21960 a +SDict begin [ /View [/XYZ H.V] /Dest (2938) cvn H.B /DEST pdfmark end + 13361 21960 +a FP($)g FU(onto)f(the)h(be)-23 b(ginning)335 b(of)h(the)g(v)-39 +b(ariable')-85 b(s)335 b(name.)h(F)-23 b(or)335 b(instance,)48800 +21960 y +SDict begin H.S end + 48800 21960 a 48800 21960 a +SDict begin 18.2 H.A end + 48800 21960 a 48800 +21960 a +SDict begin [ /View [/XYZ H.V] /Dest (2939) cvn H.B /DEST pdfmark end + 48800 21960 a FP(echo)-30 23975 y($PATH)387 b +FU(will)g(echo)g(the)g(v)-39 b(alue)388 b(of)17854 23975 +y +SDict begin H.S end + 17854 23975 a 17854 23975 a +SDict begin 18.2 H.A end + 17854 23975 a 17854 23975 +a +SDict begin [ /View [/XYZ H.V] /Dest (2940) cvn H.B /DEST pdfmark end + 17854 23975 a FP(PATH)p FU(,)f(in)h(my)f(case:)-30 +25860 y +SDict begin H.S end + -30 25860 a -30 25860 a +SDict begin 14.56 H.A end + -30 25860 a -30 25860 +a +SDict begin [ /View [/XYZ H.V] /Dest (2941) cvn H.B /DEST pdfmark end + -30 25860 a -30 25860 a +SDict begin H.S end + -30 25860 a -30 25860 a +SDict begin 14.56 H.A end + -30 +25860 a -30 25860 a +SDict begin [ /View [/XYZ H.V] /Dest (2942) cvn H.B /DEST pdfmark end + -30 25860 a 1276 x FJ(\045)1309 27136 +y +SDict begin H.S end + 1309 27136 a 1309 27136 a +SDict begin 14.56 H.A end + 1309 27136 a 1309 27136 a +SDict begin [ /View [/XYZ H.V] /Dest (2943) cvn H.B /DEST pdfmark end + +1309 27136 a FH(echo)743 b($PATH)-30 28748 y FP +(/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:)-30 +30360 y +(/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/b)p +(in:)-30 31971 y +(/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin)-30 +33716 y +SDict begin H.S end + -30 33716 a -30 33716 a +SDict begin 18.2 H.A end + -30 33716 a -30 33716 +a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-BASH-TAB) cvn H.B /DEST +pdfmark end + -30 33716 a 5322 x FG(T)-149 b(ab)518 b(Completion)-30 +40353 y +SDict begin H.S end + -30 40353 a -30 40353 a +SDict begin 18.2 H.A end + -30 40353 a -30 40353 +a +SDict begin [ /View [/XYZ H.V] /Dest (2946) cvn H.B /DEST pdfmark end + -30 40353 a 1630 x FU(\(Here)388 b(comes)f(something)f(cool)h(ag)-8 +b(ain.\))-30 42318 y +SDict begin H.S end + -30 42318 a -30 42318 a +SDict begin 18.2 H.A end + -30 42318 +a -30 42318 a +SDict begin [ /View [/XYZ H.V] /Dest (2947) cvn H.B /DEST pdfmark end + -30 42318 a -30 43093 a +SDict begin H.S end + -30 43093 a -30 +43093 a +SDict begin 18.2 H.A end + -30 43093 a -30 43093 a +SDict begin [ /View [/XYZ H.V] /Dest (2948) cvn H.B /DEST pdfmark end + -30 43093 a Black 1210 +46322 a FU(1.)p Black 2760 46322 a +SDict begin H.S end + 2760 46322 a 2760 +46322 a +SDict begin 18.2 H.A end + 2760 46322 a 2760 46322 a +SDict begin [ /View [/XYZ H.V] /Dest (2949) cvn H.B /DEST pdfmark end + 2760 46322 a FU(A)387 +b(commandline)f(interf)-15 b(ace)387 b(means)g(lots)g(of)g(typing.)-30 +46658 y +SDict begin H.S end + -30 46658 a -30 46658 a +SDict begin 18.2 H.A end + -30 46658 a -30 46658 +a +SDict begin [ /View [/XYZ H.V] /Dest (2950) cvn H.B /DEST pdfmark end + -30 46658 a Black 1210 49112 a FU(2.)p Black 2760 49112 +a +SDict begin H.S end + 2760 49112 a 2760 49112 a +SDict begin 18.2 H.A end + 2760 49112 a 2760 49112 a +SDict begin [ /View [/XYZ H.V] /Dest (2951) cvn H.B /DEST pdfmark end + +2760 49112 a FU(T)-124 b(yping)386 b(is)h(w)-15 b(ork.)-30 +49447 y +SDict begin H.S end + -30 49447 a -30 49447 a +SDict begin 18.2 H.A end + -30 49447 a -30 49447 +a +SDict begin [ /View [/XYZ H.V] /Dest (2952) cvn H.B /DEST pdfmark end + -30 49447 a Black 1210 51901 a FU(3.)p Black 2760 51901 +a +SDict begin H.S end + 2760 51901 a 2760 51901 a +SDict begin 18.2 H.A end + 2760 51901 a 2760 51901 a +SDict begin [ /View [/XYZ H.V] /Dest (2953) cvn H.B /DEST pdfmark end + +2760 51901 a FU(Nobody)386 b(lik)-15 b(es)387 b(w)-15 +b(ork.)-30 52237 y +SDict begin H.S end + -30 52237 a -30 52237 a +SDict begin 18.2 H.A end + -30 52237 +a -30 52237 a +SDict begin [ /View [/XYZ H.V] /Dest (2954) cvn H.B /DEST pdfmark end + -30 52237 a -30 53012 a +SDict begin H.S end + -30 53012 a -30 +53012 a +SDict begin 18.2 H.A end + -30 53012 a -30 53012 a +SDict begin [ /View [/XYZ H.V] /Dest (2956) cvn H.B /DEST pdfmark end + -30 53012 a 1679 x FU(From)313 +b(3)g(and)g(2,)h(we)g(can)f(determine)g(that)g(\(4\))h(nobody)e(lik)-15 +b(es)313 b(typing.)g(F)-23 b(ortunately)-101 b(,)45184 +54691 y +SDict begin H.S end + 45184 54691 a 45184 54691 a +SDict begin 18.2 H.A end + 45184 54691 a 45184 +54691 a +SDict begin [ /View [/XYZ H.V] /Dest (2957) cvn H.B /DEST pdfmark end + 45184 54691 a FP(bash)313 b FU(sa)-31 b(v)-23 +b(es)-30 56705 y(us)387 b(from)g(\(5\))h(\(nobody)f(lik)-15 +b(es)386 b(a)h(commandline)g(interf)-15 b(ace\).)-30 +57816 y +SDict begin H.S end + -30 57816 a -30 57816 a +SDict begin 18.2 H.A end + -30 57816 a -30 57816 +a +SDict begin [ /View [/XYZ H.V] /Dest (2958) cvn H.B /DEST pdfmark end + -30 57816 a 1679 x FU(Ho)-39 b(w)360 b(does)6505 59495 +y +SDict begin H.S end + 6505 59495 a 6505 59495 a +SDict begin 18.2 H.A end + 6505 59495 a 6505 59495 a +SDict begin [ /View [/XYZ H.V] /Dest (2959) cvn H.B /DEST pdfmark end + +6505 59495 a FP(bash)g FU(accomplish)f(this)g(w)-15 b(onderful)359 +b(feat,)i(you)f(ask?)f(In)i(addition)e(to)g(the)h(wildcard)-30 +61510 y(e)-23 b(xpansion)386 b(we)i(discussed)e(before,)19873 +61510 y +SDict begin H.S end + 19873 61510 a 19873 61510 a +SDict begin 18.2 H.A end + 19873 61510 a 19873 +61510 a +SDict begin [ /View [/XYZ H.V] /Dest (2960) cvn H.B /DEST pdfmark end + 19873 61510 a FP(bash)h FU(features)h(tab)f(completion.)-30 +62620 y +SDict begin H.S end + -30 62620 a -30 62620 a +SDict begin 18.2 H.A end + -30 62620 a -30 62620 +a +SDict begin [ /View [/XYZ H.V] /Dest (2961) cvn H.B /DEST pdfmark end + -30 62620 a 1679 x FU(T)-124 b(ab)410 b(completion)f(w)-15 +b(orks)410 b(something)f(lik)-15 b(e)409 b(this:)h(Y)-170 +b(ou')-77 b(re)409 b(typing)g(the)h(name)g(of)h(a)f(\002le.)g(Maybe)-30 +66314 y(it')-85 b(s)490 b(in)g(your)7383 66314 y +SDict begin H.S end + 7383 +66314 a 7383 66314 a +SDict begin 18.2 H.A end + 7383 66314 a 7383 66314 a +SDict begin [ /View [/XYZ H.V] /Dest (2962) cvn H.B /DEST pdfmark end + 7383 66314 +a FP(PATH)p FU(,)g(maybe)g(you')-77 b(re)490 b(typing)f(it)h(out)g(e) +-23 b(xplicitly)-101 b(.)490 b(All)g(you)g(ha)-31 b(v)-23 +b(e)490 b(to)g(do)g(is)g(type)p Black -30 73792 a FR(108)p +Black eop end +%%Page: 109 131 +TeXDict begin 109 130 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.109) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 39333 -1636 a FR(Chapter)387 b(8)g(The)g(Shell)p +Black -30 3611 a FU(enough)395 b(of)f(the)h(\002lename)f(to)h(uniquely) +f(identify)g(it.)h(Then)g(hit)f(the)h(tab)g(k)-15 b(e)-23 +b(y)-101 b(.)41984 3611 y +SDict begin H.S end + 41984 3611 a 41984 3611 a +SDict begin 18.2 H.A end + 41984 +3611 a 41984 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (2963) cvn H.B /DEST pdfmark end + 41984 3611 a FP(bash)394 b FU(will)g(\002gure)-30 +5626 y(out)387 b(what)g(you)g(w)-15 b(ant)387 b(and)g(\002nish)g +(typing)f(it)h(for)h(you!)-30 8415 y(Example)612 b(time.)g +FQ(/usr/src)607 b FU(contains)612 b(tw)-15 b(o)612 b(subdirectories:) +33907 8415 y +SDict begin H.S end + 33907 8415 a 33907 8415 a +SDict begin 18.2 H.A end + 33907 8415 a 33907 +8415 a +SDict begin [ /View [/XYZ H.V] /Dest (2966) cvn H.B /DEST pdfmark end + 33907 8415 a FQ(/usr/src/linux)603 b FU(and)46139 +8415 y +SDict begin H.S end + 46139 8415 a 46139 8415 a +SDict begin 18.2 H.A end + 46139 8415 a 46139 8415 +a +SDict begin [ /View [/XYZ H.V] /Dest (2967) cvn H.B /DEST pdfmark end + 46139 8415 a FQ(/usr/src/)-30 10430 y(sendmail)p FU(.)499 +b(I)k(w)-15 b(ant)503 b(to)g(see)h(what')-85 b(s)503 +b(in)20843 10430 y +SDict begin H.S end + 20843 10430 a 20843 10430 a +SDict begin 18.2 H.A end + 20843 +10430 a 20843 10430 a +SDict begin [ /View [/XYZ H.V] /Dest (2968) cvn H.B /DEST pdfmark end + 20843 10430 a FQ(/usr/src/linux)p +FU(.)495 b(So)503 b(I)h(just)f(type)39578 10430 y +SDict begin H.S end + 39578 +10430 a 39578 10430 a +SDict begin 18.2 H.A end + 39578 10430 a 39578 10430 a +SDict begin [ /View [/XYZ H.V] /Dest (2969) cvn H.B /DEST pdfmark end + 39578 +10430 a FP(ls)744 b(/usr/src/l)p FU(,)502 b(hit)-30 12445 +y(the)2251 12445 y +SDict begin H.S end + 2251 12445 a 2251 12445 a +SDict begin 18.2 H.A end + 2251 12445 +a 2251 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (2970) cvn H.B /DEST pdfmark end + 2251 12445 a Fv(TAB)387 b FU(k)-15 b(e)-23 +b(y)-101 b(,)388 b(and)10927 12445 y +SDict begin H.S end + 10927 12445 a 10927 +12445 a +SDict begin 18.2 H.A end + 10927 12445 a 10927 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (2971) cvn H.B /DEST pdfmark end + 10927 12445 a FP(bash)f +FU(gi)-39 b(v)-23 b(es)387 b(me)20168 12445 y +SDict begin H.S end + 20168 12445 +a 20168 12445 a +SDict begin 18.2 H.A end + 20168 12445 a 20168 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (2972) cvn H.B /DEST pdfmark end + 20168 12445 +a FP(ls)743 b(/usr/src/linux)p FU(.)-30 13555 y +SDict begin H.S end + -30 13555 +a -30 13555 a +SDict begin 18.2 H.A end + -30 13555 a -30 13555 a +SDict begin [ /View [/XYZ H.V] /Dest (2973) cvn H.B /DEST pdfmark end + -30 13555 a 1679 +x FU(No)-39 b(w)-101 b(,)540 b(suppose)f(there)h(are)f(tw)-15 +b(o)539 b(directories)25302 15234 y +SDict begin H.S end + 25302 15234 a 25302 +15234 a +SDict begin 18.2 H.A end + 25302 15234 a 25302 15234 a +SDict begin [ /View [/XYZ H.V] /Dest (2974) cvn H.B /DEST pdfmark end + 25302 15234 a FQ(/usr/src/linux)531 +b FU(and)37388 15234 y +SDict begin H.S end + 37388 15234 a 37388 15234 a +SDict begin 18.2 H.A end + 37388 +15234 a 37388 15234 a +SDict begin [ /View [/XYZ H.V] /Dest (2975) cvn H.B /DEST pdfmark end + 37388 15234 a FQ(/usr/src/linux-)55 +b(old)p FU(;)528 b(If)540 b(I)-30 17249 y(type)3017 17249 +y +SDict begin H.S end + 3017 17249 a 3017 17249 a +SDict begin 18.2 H.A end + 3017 17249 a 3017 17249 a +SDict begin [ /View [/XYZ H.V] /Dest (2976) cvn H.B /DEST pdfmark end + +3017 17249 a FQ(/usr/src/l)372 b FU(and)379 b(hit)14291 +17249 y +SDict begin H.S end + 14291 17249 a 14291 17249 a +SDict begin 18.2 H.A end + 14291 17249 a 14291 +17249 a +SDict begin [ /View [/XYZ H.V] /Dest (2977) cvn H.B /DEST pdfmark end + 14291 17249 a Fv(TAB)p FU(,)17846 17249 y +SDict begin H.S end + 17846 +17249 a 17846 17249 a +SDict begin 18.2 H.A end + 17846 17249 a 17846 17249 a +SDict begin [ /View [/XYZ H.V] /Dest (2978) cvn H.B /DEST pdfmark end + 17846 +17249 a FP(bash)f FU(will)g(\002ll)f(in)i(as)f(much)g(as)g(it)g(can,)h +(and)g(I')-15 b(ll)377 b(get)46139 17249 y +SDict begin H.S end + 46139 17249 +a 46139 17249 a +SDict begin 18.2 H.A end + 46139 17249 a 46139 17249 a +SDict begin [ /View [/XYZ H.V] /Dest (2979) cvn H.B /DEST pdfmark end + 46139 17249 +a FQ(/usr/src/)-30 19264 y(linux)p FU(.)339 b(I)k(can)f(stop)f(there,)h +(or)g(I)h(can)f(hit)20898 19264 y +SDict begin H.S end + 20898 19264 a 20898 +19264 a +SDict begin 18.2 H.A end + 20898 19264 a 20898 19264 a +SDict begin [ /View [/XYZ H.V] /Dest (2980) cvn H.B /DEST pdfmark end + 20898 19264 a Fv(TAB)g +FU(ag)-8 b(ain,)342 b(and)30688 19264 y +SDict begin H.S end + 30688 19264 a +30688 19264 a +SDict begin 18.2 H.A end + 30688 19264 a 30688 19264 a +SDict begin [ /View [/XYZ H.V] /Dest (2981) cvn H.B /DEST pdfmark end + 30688 19264 +a FP(bash)g FU(will)f(sho)-39 b(w)342 b(a)g(list)f(of)h(directories)-30 +21278 y(that)387 b(match)g(what)g(I')-77 b(v)-23 b(e)387 +b(typed)g(so)g(f)-15 b(ar)-85 b(.)-30 22389 y +SDict begin H.S end + -30 22389 +a -30 22389 a +SDict begin 18.2 H.A end + -30 22389 a -30 22389 a +SDict begin [ /View [/XYZ H.V] /Dest (2982) cvn H.B /DEST pdfmark end + -30 22389 a 1679 +x FU(Hence,)436 b(less)f(typing)g(\(and)h(hence,)g(people)f(can)g(lik) +-15 b(e)435 b(commandline)f(interf)-15 b(aces\).)436 +b(I)f(told)g(you)-30 26082 y(it)387 b(w)-15 b(as)387 +b(cool.)-30 28423 y +SDict begin H.S end + -30 28423 a -30 28423 a +SDict begin 18.2 H.A end + -30 28423 +a -30 28423 a +SDict begin [ /View [/XYZ H.V] /Dest (SHELL-VT) cvn H.B /DEST pdfmark +end + -30 28423 a 6109 x FL(8.4)620 b(Vir)45 +b(tual)621 b(T)-134 b(erminals)-30 34560 y +SDict begin H.S end + -30 34560 +a -30 34560 a +SDict begin 18.2 H.A end + -30 34560 a -30 34560 a +SDict begin [ /View [/XYZ H.V] /Dest (2985) cvn H.B /DEST pdfmark end + -30 34560 a -30 +35675 a +SDict begin H.S end + -30 35675 a -30 35675 a +SDict begin 18.2 H.A end + -30 35675 a -30 35675 +a +SDict begin [ /View [/XYZ H.V] /Dest (2987) cvn H.B /DEST pdfmark end + -30 35675 a 1987 x FU(So)515 b(you')-77 b(re)515 b(in)h(the)f(middle) +g(of)h(w)-15 b(orking)514 b(on)i(something)e(and)i(you)f(decide)h(you)f +(need)h(to)f(do)-30 39677 y(something)429 b(else.)i(Y)-170 +b(ou)429 b(could)h(just)g(drop)g(what)g(you')-77 b(re)430 +b(doing)f(and)i(switch)e(tasks,)i(b)-31 b(ut)429 b(this)h(is)-30 +41691 y(a)360 b(multi-user)f(system,)g(right?)h(And)f(you)h(can)f(log)h +(in)f(as)h(man)-23 b(y)359 b(times)g(simultaneously)f(as)i(you)-30 +43706 y(w)-15 b(ant,)387 b(right?)g(So)g(wh)-8 b(y)387 +b(should)g(you)g(ha)-31 b(v)-23 b(e)387 b(to)g(do)g(one)h(thing)e(at)i +(a)f(time?)-30 44816 y +SDict begin H.S end + -30 44816 a -30 44816 a +SDict begin 18.2 H.A end + -30 44816 +a -30 44816 a +SDict begin [ /View [/XYZ H.V] /Dest (2988) cvn H.B /DEST pdfmark end + -30 44816 a 1680 x FU(Y)-170 b(ou)512 b(don')-28 +b(t.)513 b(W)-124 b(e)514 b(can')-28 b(t)513 b(all)f(ha)-31 +b(v)-23 b(e)513 b(multiple)f(k)-15 b(e)-23 b(yboards,)512 +b(mice,)h(and)g(monitors)f(for)h(one)g(ma-)-30 48510 +y(chine;)400 b(chances)h(are)g(most)f(of)g(us)h(don')-28 +b(t)400 b(w)-15 b(ant)400 b(them.)g(Clearly)-101 b(,)401 +b(hardw)-15 b(are)400 b(isn')-28 b(t)400 b(the)h(solution.)-30 +50525 y(That)j(lea)-31 b(v)-23 b(es)404 b(softw)-15 b(are,)404 +b(and)h(Linux)e(steps)h(up)h(on)f(this)g(one,)g(pro)-23 +b(viding)39793 50525 y +SDict begin H.S end + 39793 50525 a 39793 50525 a +SDict begin 18.2 H.A end + 39793 +50525 a 39793 50525 a +SDict begin [ /View [/XYZ H.V] /Dest (2989) cvn H.B /DEST pdfmark end + 39793 50525 a FU(\223virtual)404 +b(terminals\224,)-30 52540 y(or)1648 52540 y +SDict begin H.S end + 1648 52540 +a 1648 52540 a +SDict begin 18.2 H.A end + 1648 52540 a 1648 52540 a +SDict begin [ /View [/XYZ H.V] /Dest (2990) cvn H.B /DEST pdfmark end + 1648 52540 a +FU(\223VTs\224.)-30 53330 y +SDict begin H.S end + -30 53330 a -30 53330 a +SDict begin 18.2 H.A end + -30 +53330 a -30 53330 a +SDict begin [ /View [/XYZ H.V] /Dest (2991) cvn H.B /DEST pdfmark end + -30 53330 a 1999 x FU(By)361 b(pressing)7666 +55329 y +SDict begin H.S end + 7666 55329 a 7666 55329 a +SDict begin 18.2 H.A end + 7666 55329 a 7666 55329 +a +SDict begin [ /View [/XYZ H.V] /Dest (2992) cvn H.B /DEST pdfmark end + 7666 55329 a Fv(Alt)g FU(and)g(a)g(function)g(k)-15 +b(e)-23 b(y)-101 b(,)361 b(you)g(can)g(switch)f(between)h(virtual)g +(terminals;)f(each)-30 57344 y(function)380 b(k)-15 b(e)-23 +b(y)380 b(corresponds)g(to)g(one.)h(Slackw)-15 b(are)380 +b(has)g(logins)g(on)g(6)g(VTs)h(by)f(def)-15 b(ault.)47114 +57344 y +SDict begin H.S end + 47114 57344 a 47114 57344 a +SDict begin 18.2 H.A end + 47114 57344 a 47114 +57344 a +SDict begin [ /View [/XYZ H.V] /Dest (2993) cvn H.B /DEST pdfmark end + 47114 57344 a 47114 57344 a +SDict begin H.S end + 47114 57344 a 47114 +57344 a +SDict begin 18.2 H.A end + 47114 57344 a 47114 57344 a +SDict begin [ /View [/XYZ H.V] /Dest (2994) cvn H.B /DEST pdfmark end + 47114 57344 a FX(Alt)p +FU(+)50054 57344 y +SDict begin H.S end + 50054 57344 a 50054 57344 a +SDict begin 18.2 H.A end + 50054 +57344 a 50054 57344 a +SDict begin [ /View [/XYZ H.V] /Dest (2995) cvn H.B /DEST pdfmark end + 50054 57344 a FX(F2)-30 59358 y +FU(will)387 b(tak)-15 b(e)387 b(you)g(to)g(the)g(second)g(one,)20013 +59358 y +SDict begin H.S end + 20013 59358 a 20013 59358 a +SDict begin 18.2 H.A end + 20013 59358 a 20013 +59358 a +SDict begin [ /View [/XYZ H.V] /Dest (2996) cvn H.B /DEST pdfmark end + 20013 59358 a 20013 59358 a +SDict begin H.S end + 20013 59358 a 20013 +59358 a +SDict begin 18.2 H.A end + 20013 59358 a 20013 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (2997) cvn H.B /DEST pdfmark end + 20013 59358 a FX(Alt)p +FU(+)22953 59358 y +SDict begin H.S end + 22953 59358 a 22953 59358 a +SDict begin 18.2 H.A end + 22953 +59358 a 22953 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (2998) cvn H.B /DEST pdfmark end + 22953 59358 a FX(F3)g FU(to)g(the)g(third,)g +(etc.)-30 60469 y +SDict begin H.S end + -30 60469 a -30 60469 a +SDict begin 18.2 H.A end + -30 60469 a +-30 60469 a +SDict begin [ /View [/XYZ H.V] /Dest (2999) cvn H.B /DEST pdfmark end + -30 60469 a 1679 x FU(The)511 b(rest)g(of)g(the)g(function) +g(k)-15 b(e)-23 b(ys)510 b(are)h(reserv)-23 b(ed)511 +b(for)g(X)30414 62148 y +SDict begin H.S end + 30414 62148 a 30414 62148 a +SDict begin 18.2 H.A end + 30414 +62148 a 30414 62148 a +SDict begin [ /View [/XYZ H.V] /Dest (3000) cvn H.B /DEST pdfmark end + 30414 62148 a 30414 62148 a +SDict begin H.S end + 30414 +62148 a 30414 62148 a +SDict begin 18.2 H.A end + 30414 62148 a 30414 62148 a +SDict begin [ /View [/XYZ H.V] /Dest (3003) cvn H.B /DEST pdfmark end + 30414 +62148 a 511 w FU(sessions.)g(Each)g(X)g(session)g(uses)f(its)-30 +64163 y(o)-39 b(wn)741 b(VT)-115 b(,)742 b(be)-23 b(ginning)740 +b(with)g(the)h(se)-39 b(v)-23 b(enth)741 b(\()25399 64163 +y +SDict begin H.S end + 25399 64163 a 25399 64163 a +SDict begin 18.2 H.A end + 25399 64163 a 25399 64163 +a +SDict begin [ /View [/XYZ H.V] /Dest (3006) cvn H.B /DEST pdfmark end + 25399 64163 a 25399 64163 a +SDict begin H.S end + 25399 64163 a 25399 64163 +a +SDict begin 18.2 H.A end + 25399 64163 a 25399 64163 a +SDict begin [ /View [/XYZ H.V] /Dest (3007) cvn H.B /DEST pdfmark end + 25399 64163 a FX(Alt)p +FU(+)28339 64163 y +SDict begin H.S end + 28339 64163 a 28339 64163 a +SDict begin 18.2 H.A end + 28339 +64163 a 28339 64163 a +SDict begin [ /View [/XYZ H.V] /Dest (3008) cvn H.B /DEST pdfmark end + 28339 64163 a FX(F7)p FU(\))f(and)h(going)g(up.)g +(When)g(in)g(X,)g(the)-30 66177 y +SDict begin H.S end + -30 66177 a -30 66177 +a +SDict begin 18.2 H.A end + -30 66177 a -30 66177 a +SDict begin [ /View [/XYZ H.V] /Dest (3009) cvn H.B /DEST pdfmark end + -30 66177 a -30 66177 a +SDict begin H.S end + -30 +66177 a -30 66177 a +SDict begin 18.2 H.A end + -30 66177 a -30 66177 a +SDict begin [ /View [/XYZ H.V] /Dest (3010) cvn H.B /DEST pdfmark end + -30 66177 +a FX(Alt)p FU(+)2910 66177 y +SDict begin H.S end + 2910 66177 a 2910 66177 +a +SDict begin 18.2 H.A end + 2910 66177 a 2910 66177 a +SDict begin [ /View [/XYZ H.V] /Dest (3011) cvn H.B /DEST pdfmark end + 2910 66177 a FX(Function)692 +b(k)-15 b(ey)692 b FU(combination)g(is)h(replaced)g(with)32107 +66177 y +SDict begin H.S end + 32107 66177 a 32107 66177 a +SDict begin 18.2 H.A end + 32107 66177 a 32107 +66177 a +SDict begin [ /View [/XYZ H.V] /Dest (3012) cvn H.B /DEST pdfmark end + 32107 66177 a 32107 66177 a +SDict begin H.S end + 32107 66177 a 32107 +66177 a +SDict begin 18.2 H.A end + 32107 66177 a 32107 66177 a +SDict begin [ /View [/XYZ H.V] /Dest (3013) cvn H.B /DEST pdfmark end + 32107 66177 a FX(Ctrl)p +FU(+)35735 66177 y +SDict begin H.S end + 35735 66177 a 35735 66177 a +SDict begin 18.2 H.A end + 35735 +66177 a 35735 66177 a +SDict begin [ /View [/XYZ H.V] /Dest (3014) cvn H.B /DEST pdfmark end + 35735 66177 a FX(Alt)p FU(+)38675 +66177 y +SDict begin H.S end + 38675 66177 a 38675 66177 a +SDict begin 18.2 H.A end + 38675 66177 a 38675 +66177 a +SDict begin [ /View [/XYZ H.V] /Dest (3015) cvn H.B /DEST pdfmark end + 38675 66177 a FX(Function)p FU(;)e(so)i(if)g(you)-30 +68192 y(are)630 b(in)f(X)g(and)h(w)-15 b(ant)629 b(to)g(get)g(back)h +(to)f(a)h(te)-23 b(xt)629 b(login)g(\(without)f(e)-23 +b(xiting)629 b(your)g(X)g(session\),)p Black 49451 73792 +a FR(109)p Black eop end +%%Page: 110 132 +TeXDict begin 110 131 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.110) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(8)g(The)g(Shell)p +Black -30 3611 a +SDict begin H.S end + -30 3611 a -30 3611 a +SDict begin 18.2 H.A end + -30 3611 a -30 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3016) cvn H.B /DEST pdfmark end + -30 3611 a -30 3611 a +SDict begin H.S end + -30 3611 a -30 3611 a +SDict begin 18.2 H.A end + -30 +3611 a -30 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3017) cvn H.B /DEST pdfmark end + -30 3611 a FX(Ctrl)p FU(+)3598 3611 +y +SDict begin H.S end + 3598 3611 a 3598 3611 a +SDict begin 18.2 H.A end + 3598 3611 a 3598 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3018) cvn H.B /DEST pdfmark end + 3598 +3611 a FX(Alt)p FU(+)6538 3611 y +SDict begin H.S end + 6538 3611 a 6538 3611 +a +SDict begin 18.2 H.A end + 6538 3611 a 6538 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3019) cvn H.B /DEST pdfmark end + 6538 3611 a FX(F3)679 b FU(will)g(tak)-15 +b(e)678 b(you)h(to)g(the)g(third.)g(\()27247 3611 y +SDict begin H.S end + 27247 +3611 a 27247 3611 a +SDict begin 18.2 H.A end + 27247 3611 a 27247 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3020) cvn H.B /DEST pdfmark end + 27247 3611 +a 27247 3611 a +SDict begin H.S end + 27247 3611 a 27247 3611 a +SDict begin 18.2 H.A end + 27247 3611 a +27247 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3021) cvn H.B /DEST pdfmark end + 27247 3611 a FX(Alt)p FU(+)30187 3611 y +SDict begin H.S end + +30187 3611 a 30187 3611 a +SDict begin 18.2 H.A end + 30187 3611 a 30187 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3022) cvn H.B /DEST pdfmark end + 30187 +3611 a FX(F7)g FU(will)g(tak)-15 b(e)678 b(you)h(back,)h(assuming)-30 +5626 y(you')-77 b(re)387 b(using)g(the)g(\002rst)g(X)g(session.\))-30 +5961 y +SDict begin H.S end + -30 5961 a -30 5961 a +SDict begin 18.2 H.A end + -30 5961 a -30 5961 a +SDict begin [ /View [/XYZ H.V] /Dest (3023) cvn H.B /DEST pdfmark end + -30 +5961 a 5027 x FG(Screen)-30 11941 y +SDict begin H.S end + -30 11941 a -30 11941 +a +SDict begin 18.2 H.A end + -30 11941 a -30 11941 a +SDict begin [ /View [/XYZ H.V] /Dest (3025) cvn H.B /DEST pdfmark end + -30 11941 a 1991 x FU(But)444 +b(what)g(about)g(situations)e(where)j(there)f(are)g(no)g(virtual)32978 +13932 y +SDict begin H.S end + 32978 13932 a 32978 13932 a +SDict begin 18.2 H.A end + 32978 13932 a 32978 +13932 a +SDict begin [ /View [/XYZ H.V] /Dest (3026) cvn H.B /DEST pdfmark end + 32978 13932 a 444 w FU(terminals?)g(What)g(then?)g(F)-23 +b(ortu-)-30 15947 y(nately)-101 b(,)435 b(slackw)-15 +b(are)435 b(includes)f(a)h(beautiful)f(screen)h(manager)g(aptly)f +(named)42027 15947 y +SDict begin H.S end + 42027 15947 a 42027 15947 a +SDict begin 18.2 H.A end + 42027 +15947 a 42027 15947 a +SDict begin [ /View [/XYZ H.V] /Dest (3028) cvn H.B /DEST pdfmark end + 42027 15947 a FP(screen)p FU(.)47313 +15947 y +SDict begin H.S end + 47313 15947 a 47313 15947 a +SDict begin 18.2 H.A end + 47313 15947 a 47313 +15947 a +SDict begin [ /View [/XYZ H.V] /Dest (3029) cvn H.B /DEST pdfmark end + 47313 15947 a FP(screen)-30 17962 y FU(is)484 +b(a)h(terminal)e(emulator)h(that)g(has)g(virtual)g(terminal)f(lik)-15 +b(e)484 b(capabilities.)f(Ex)-23 b(ecuting)47313 17962 +y +SDict begin H.S end + 47313 17962 a 47313 17962 a +SDict begin 18.2 H.A end + 47313 17962 a 47313 17962 +a +SDict begin [ /View [/XYZ H.V] /Dest (3030) cvn H.B /DEST pdfmark end + 47313 17962 a FP(screen)-30 19976 y FU(\003ashes)530 +b(a)h(brief)f(introduction,)g(then)g(dumps)g(to)g(a)h(terminal.)f +(Unlik)-15 b(e)530 b(the)g(standard)h(virtual)-30 21991 +y(terminals,)6586 21991 y +SDict begin H.S end + 6586 21991 a 6586 21991 a +SDict begin 18.2 H.A end + 6586 +21991 a 6586 21991 a +SDict begin [ /View [/XYZ H.V] /Dest (3031) cvn H.B /DEST pdfmark end + 6586 21991 a FP(screen)459 b FU(has)h(its)g(o)-39 +b(wn)460 b(commands.)g(All)29054 21991 y +SDict begin H.S end + 29054 21991 +a 29054 21991 a +SDict begin 18.2 H.A end + 29054 21991 a 29054 21991 a +SDict begin [ /View [/XYZ H.V] /Dest (3032) cvn H.B /DEST pdfmark end + 29054 21991 +a FP(screen)f FU(commands)g(are)i(pre\002x)-23 b(ed)459 +b(with)-30 24006 y(a)1218 24006 y +SDict begin H.S end + 1218 24006 a 1218 24006 +a +SDict begin 18.2 H.A end + 1218 24006 a 1218 24006 a +SDict begin [ /View [/XYZ H.V] /Dest (3033) cvn H.B /DEST pdfmark end + 1218 24006 a 1218 24006 a +SDict begin H.S end + +1218 24006 a 1218 24006 a +SDict begin 18.2 H.A end + 1218 24006 a 1218 24006 a +SDict begin [ /View [/XYZ H.V] /Dest (3034) cvn H.B /DEST pdfmark end + 1218 +24006 a FX(Crtl)p FU(+)4846 24006 y +SDict begin H.S end + 4846 24006 a 4846 +24006 a +SDict begin 18.2 H.A end + 4846 24006 a 4846 24006 a +SDict begin [ /View [/XYZ H.V] /Dest (3035) cvn H.B /DEST pdfmark end + 4846 24006 a FX(A)559 +b FU(k)-15 b(e)-23 b(ystrok)-15 b(e.)559 b(F)-23 b(or)559 +b(e)-23 b(xample,)22306 24006 y +SDict begin H.S end + 22306 24006 a 22306 24006 +a +SDict begin 18.2 H.A end + 22306 24006 a 22306 24006 a +SDict begin [ /View [/XYZ H.V] /Dest (3036) cvn H.B /DEST pdfmark end + 22306 24006 a 22306 24006 +a +SDict begin H.S end + 22306 24006 a 22306 24006 a +SDict begin 18.2 H.A end + 22306 24006 a 22306 24006 +a +SDict begin [ /View [/XYZ H.V] /Dest (3037) cvn H.B /DEST pdfmark end + 22306 24006 a FX(Ctrl)p FU(+)25934 24006 y +SDict begin H.S end + 25934 24006 +a 25934 24006 a +SDict begin 18.2 H.A end + 25934 24006 a 25934 24006 a +SDict begin [ /View [/XYZ H.V] /Dest (3038) cvn H.B /DEST pdfmark end + 25934 24006 +a FX(A)p FU(+)27927 24006 y +SDict begin H.S end + 27927 24006 a 27927 24006 +a +SDict begin 18.2 H.A end + 27927 24006 a 27927 24006 a +SDict begin [ /View [/XYZ H.V] /Dest (3039) cvn H.B /DEST pdfmark end + 27927 24006 a FX(C)560 +b FU(will)f(create)h(a)f(ne)-39 b(w)560 b(terminal)f(session.)-30 +26020 y +SDict begin H.S end + -30 26020 a -30 26020 a +SDict begin 18.2 H.A end + -30 26020 a -30 26020 +a +SDict begin [ /View [/XYZ H.V] /Dest (3040) cvn H.B /DEST pdfmark end + -30 26020 a -30 26020 a +SDict begin H.S end + -30 26020 a -30 26020 a +SDict begin 18.2 H.A end + -30 +26020 a -30 26020 a +SDict begin [ /View [/XYZ H.V] /Dest (3041) cvn H.B /DEST pdfmark end + -30 26020 a FX(Ctrl)p FU(+)3598 26020 +y +SDict begin H.S end + 3598 26020 a 3598 26020 a +SDict begin 18.2 H.A end + 3598 26020 a 3598 26020 a +SDict begin [ /View [/XYZ H.V] /Dest (3042) cvn H.B /DEST pdfmark end + +3598 26020 a FX(A)p FU(+)5591 26020 y +SDict begin H.S end + 5591 26020 a 5591 +26020 a +SDict begin 18.2 H.A end + 5591 26020 a 5591 26020 a +SDict begin [ /View [/XYZ H.V] /Dest (3043) cvn H.B /DEST pdfmark end + 5591 26020 a FX(N)407 +b FU(will)g(switch)f(to)h(the)h(ne)-23 b(xt)406 b(terminal.)27316 +26020 y +SDict begin H.S end + 27316 26020 a 27316 26020 a +SDict begin 18.2 H.A end + 27316 26020 a 27316 +26020 a +SDict begin [ /View [/XYZ H.V] /Dest (3044) cvn H.B /DEST pdfmark end + 27316 26020 a 27316 26020 a +SDict begin H.S end + 27316 26020 a 27316 +26020 a +SDict begin 18.2 H.A end + 27316 26020 a 27316 26020 a +SDict begin [ /View [/XYZ H.V] /Dest (3045) cvn H.B /DEST pdfmark end + 27316 26020 a FX(Ctrl)p +FU(+)30944 26020 y +SDict begin H.S end + 30944 26020 a 30944 26020 a +SDict begin 18.2 H.A end + 30944 +26020 a 30944 26020 a +SDict begin [ /View [/XYZ H.V] /Dest (3046) cvn H.B /DEST pdfmark end + 30944 26020 a FX(A)p FU(+)32937 +26020 y +SDict begin H.S end + 32937 26020 a 32937 26020 a +SDict begin 18.2 H.A end + 32937 26020 a 32937 +26020 a +SDict begin [ /View [/XYZ H.V] /Dest (3047) cvn H.B /DEST pdfmark end + 32937 26020 a FX(P)h FU(switches)g(to)g(the)g(pre)-39 +b(vious)407 b(ter)-31 b(-)-30 28035 y(minal.)-30 28825 +y +SDict begin H.S end + -30 28825 a -30 28825 a +SDict begin 18.2 H.A end + -30 28825 a -30 28825 a +SDict begin [ /View [/XYZ H.V] /Dest (3048) cvn H.B /DEST pdfmark end + -30 +28825 a -30 28825 a +SDict begin H.S end + -30 28825 a -30 28825 a +SDict begin 18.2 H.A end + -30 28825 +a -30 28825 a +SDict begin [ /View [/XYZ H.V] /Dest (3049) cvn H.B /DEST pdfmark end + -30 28825 a 2000 x FP(screen)321 b FU(also)h(supports)e +(detaching)h(and)h(re-attaching)f(to)31305 30825 y +SDict begin H.S end + 31305 +30825 a 31305 30825 a +SDict begin 18.2 H.A end + 31305 30825 a 31305 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (3050) cvn H.B /DEST pdfmark end + 31305 +30825 a FP(screen)g FU(sessions)f(which)i(is)f(particu-)-30 +32839 y(larly)296 b(useful)g(for)h(remote)f(sessions)f(via)21461 +32839 y +SDict begin H.S end + 21461 32839 a 21461 32839 a +SDict begin 18.2 H.A end + 21461 32839 a 21461 +32839 a +SDict begin [ /View [/XYZ H.V] /Dest (3051) cvn H.B /DEST pdfmark end + 21461 32839 a FP(ssh)h FU(and)26524 32839 y +SDict begin H.S end + 26524 +32839 a 26524 32839 a +SDict begin 18.2 H.A end + 26524 32839 a 26524 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (3052) cvn H.B /DEST pdfmark end + 26524 +32839 a FP(telnet)p FU(,)g(\(more)g(on)g(those)g(later\).)45036 +32839 y +SDict begin H.S end + 45036 32839 a 45036 32839 a +SDict begin 18.2 H.A end + 45036 32839 a 45036 +32839 a +SDict begin [ /View [/XYZ H.V] /Dest (3053) cvn H.B /DEST pdfmark end + 45036 32839 a 45036 32839 a +SDict begin H.S end + 45036 32839 a 45036 +32839 a +SDict begin 18.2 H.A end + 45036 32839 a 45036 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (3054) cvn H.B /DEST pdfmark end + 45036 32839 a FX(Ctrl)p +FU(+)48664 32839 y +SDict begin H.S end + 48664 32839 a 48664 32839 a +SDict begin 18.2 H.A end + 48664 +32839 a 48664 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (3055) cvn H.B /DEST pdfmark end + 48664 32839 a FX(A)p FU(+)50657 +32839 y +SDict begin H.S end + 50657 32839 a 50657 32839 a +SDict begin 18.2 H.A end + 50657 32839 a 50657 +32839 a +SDict begin [ /View [/XYZ H.V] /Dest (3056) cvn H.B /DEST pdfmark end + 50657 32839 a FX(D)-30 34854 y FU(will)367 b(detach)g(from)f +(the)h(currently)g(running)f(screen.)i(Ex)-23 b(ecuting)35292 +34854 y +SDict begin H.S end + 35292 34854 a 35292 34854 a +SDict begin 18.2 H.A end + 35292 34854 a 35292 +34854 a +SDict begin [ /View [/XYZ H.V] /Dest (3057) cvn H.B /DEST pdfmark end + 35292 34854 a FP(screen)743 b(-r)367 b FU(will)f(list)h(all)g +(cur)-31 b(-)-30 36869 y(rently)387 b(running)g(screen)g(sessions)g +(you)g(may)g(reattach)g(to.)-30 38754 y +SDict begin H.S end + -30 38754 a -30 +38754 a +SDict begin 14.56 H.A end + -30 38754 a -30 38754 a +SDict begin [ /View [/XYZ H.V] /Dest (3058) cvn H.B /DEST pdfmark end + -30 38754 a -30 38754 +a +SDict begin H.S end + -30 38754 a -30 38754 a +SDict begin 14.56 H.A end + -30 38754 a -30 38754 a +SDict begin [ /View [/XYZ H.V] /Dest (3059) cvn H.B /DEST pdfmark end + -30 +38754 a 1276 x FJ(\045)1309 40030 y +SDict begin H.S end + 1309 40030 a 1309 +40030 a +SDict begin 14.56 H.A end + 1309 40030 a 1309 40030 a +SDict begin [ /View [/XYZ H.V] /Dest (3060) cvn H.B /DEST pdfmark end + 1309 40030 a FH(screen)743 +b(-r)-30 41642 y FP(There)g(are)h(several)f(suitable)g(screens)g(on:) +3689 43254 y(1212.pts-1.redtail)4462 b(\(Detached\))3689 +44865 y(1195.pts-1.redtail)g(\(Detached\))3689 46477 +y(1225.pts-1.redtail)g(\(Detached\))3689 48089 y(17146.pts-1.sanctuary) +2230 b(\(Dead)743 b(???\))-30 49700 y(Remove)g(dead)h(screens)f(with)g +('screen)g(-wipe'.)-30 51312 y(Type)g("screen)h([-d])f(-r)h +([pid.]tty.host")e(to)h(resume)g(one)h(of)f(them.)-30 +53057 y +SDict begin H.S end + -30 53057 a -30 53057 a +SDict begin 18.2 H.A end + -30 53057 a -30 53057 +a +SDict begin [ /View [/XYZ H.V] /Dest (3061) cvn H.B /DEST pdfmark end + -30 53057 a 1820 x FU(Running)5731 54877 y +SDict begin H.S end + 5731 54877 +a 5731 54877 a +SDict begin 18.2 H.A end + 5731 54877 a 5731 54877 a +SDict begin [ /View [/XYZ H.V] /Dest (3062) cvn H.B /DEST pdfmark end + 5731 54877 a +FP(screen)g(-r)g(1212)422 b FU(w)-15 b(ould)420 b(reattach)i(to)f(the)g +(\002rst)g(screen)h(listed.)f(I)h(mentioned)f(ear)-31 +b(-)-30 56891 y(lier)361 b(ho)-39 b(w)362 b(useful)e(this)h(w)-15 +b(as)361 b(for)g(remote)g(sessions.)g(If)g(I)h(were)f(to)g(login)g(to)g +(a)h(remote)f(slackw)-15 b(are)-30 58906 y(serv)-23 b(er)415 +b(via)6457 58906 y +SDict begin H.S end + 6457 58906 a 6457 58906 a +SDict begin 18.2 H.A end + 6457 58906 +a 6457 58906 a +SDict begin [ /View [/XYZ H.V] /Dest (3063) cvn H.B /DEST pdfmark end + 6457 58906 a FP(ssh)p FU(,)g(and)f(my)h(connection)f(w) +-15 b(as)414 b(se)-39 b(v)-23 b(ered)415 b(by)g(some)f(chance)h +(occurrence)g(such)g(as)-30 60921 y(a)454 b(local)f(po)-39 +b(wer)454 b(f)-15 b(ailure,)454 b(whate)-39 b(v)-23 b(er)454 +b(I)f(w)-15 b(as)453 b(doing)h(at)f(that)h(moment)f(w)-15 +b(ould)452 b(instantly)h(perish,)-30 62935 y(which)372 +b(can)g(be)f(a)h(horrible)g(thing)f(for)h(your)f(serv)-23 +b(er)-85 b(.)372 b(Using)32286 62935 y +SDict begin H.S end + 32286 62935 a +32286 62935 a +SDict begin 18.2 H.A end + 32286 62935 a 32286 62935 a +SDict begin [ /View [/XYZ H.V] /Dest (3064) cvn H.B /DEST pdfmark end + 32286 62935 +a FP(screen)g FU(pre)-39 b(v)-23 b(ents)371 b(this)g(by)h(detach-)-30 +64950 y(ing)429 b(my)g(session)f(if)h(my)g(connection)g(is)g(dropped.)g +(Once)g(my)g(connection)f(is)h(restored,)h(I)f(can)-30 +66965 y(reattach)387 b(to)h(my)f(screen)g(session)g(and)g(resume)g +(right)g(where)g(I)h(left)f(of)-39 b(f.)p Black -30 73792 +a FR(110)p Black eop end +%%Page: 111 133 +TeXDict begin 111 132 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.111) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE) cvn H.B +/DEST pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(9)-30 10743 y FO(Filesystem)1286 b(Structure)p -30 +18316 51806 56 v -30 19091 a +SDict begin H.S end + -30 19091 a -30 19091 a +SDict begin 18.2 H.A end + +-30 19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (3067) cvn H.B /DEST pdfmark end + -30 19091 a 1051 x FU(W)-124 +b(e)345 b(ha)-31 b(v)-23 b(e)345 b(already)f(discussed)h(the)f +(directory)h(structure)f(in)h(Slackw)-15 b(are)344 b(Linux.)g(By)h +(this)f(point,)-30 22157 y(you)475 b(should)f(be)h(able)g(to)f(\002nd)h +(\002les)f(and)h(directories)f(that)h(you)f(need.)i(But)e(there)h(is)f +(more)h(to)-30 24171 y(the)387 b(\002lesystem)f(than)h(just)g(the)g +(directory)g(structure.)-30 24507 y +SDict begin H.S end + -30 24507 a -30 24507 +a +SDict begin 18.2 H.A end + -30 24507 a -30 24507 a +SDict begin [ /View [/XYZ H.V] /Dest (3068) cvn H.B /DEST pdfmark end + -30 24507 a -30 24507 a +SDict begin H.S end + -30 +24507 a -30 24507 a +SDict begin 18.2 H.A end + -30 24507 a -30 24507 a +SDict begin [ /View [/XYZ H.V] /Dest (3070) cvn H.B /DEST pdfmark end + -30 24507 +a -30 24507 a +SDict begin H.S end + -30 24507 a -30 24507 a +SDict begin 18.2 H.A end + -30 24507 a -30 +24507 a +SDict begin [ /View [/XYZ H.V] /Dest (3072) cvn H.B /DEST pdfmark end + -30 24507 a -30 24507 a +SDict begin H.S end + -30 24507 a -30 24507 +a +SDict begin 18.2 H.A end + -30 24507 a -30 24507 a +SDict begin [ /View [/XYZ H.V] /Dest (3074) cvn H.B /DEST pdfmark end + -30 24507 a -30 25282 a +SDict begin H.S end + -30 +25282 a -30 25282 a +SDict begin 18.2 H.A end + -30 25282 a -30 25282 a +SDict begin [ /View [/XYZ H.V] /Dest (3077) cvn H.B /DEST pdfmark end + -30 25282 +a 1679 x FU(Linux)374 b(is)f(a)h(multiuser)f(operating)h(system.)f(Ev) +-23 b(ery)374 b(aspect)g(of)g(the)g(system)f(is)h(multiuser)-62 +b(,)373 b(e)-39 b(v)-23 b(en)-30 28976 y(the)356 b(\002lesystem.)f(The) +h(system)g(stores)f(information)g(lik)-15 b(e)356 b(who)g(o)-39 +b(wns)356 b(a)g(\002le)g(and)g(who)g(can)g(read)-30 30990 +y(it.)346 b(There)g(are)g(other)g(unique)g(parts)f(about)h(the)g +(\002lesystems,)f(such)g(as)h(links)f(and)h(NFS)f(mounts.)-30 +33005 y(This)387 b(section)g(e)-23 b(xplains)386 b(these,)i(as)f(well)g +(as)g(the)h(multiuser)e(aspects)h(of)g(the)h(\002lesystem.)-30 +33340 y +SDict begin H.S end + -30 33340 a -30 33340 a +SDict begin 18.2 H.A end + -30 33340 a -30 33340 +a +SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-OWNERSHIP) +cvn H.B /DEST pdfmark end + -30 33340 a 5790 x FL(9.1)620 b(Owner)-33 b(ship)-30 +39591 y +SDict begin H.S end + -30 39591 a -30 39591 a +SDict begin 18.2 H.A end + -30 39591 a -30 39591 +a +SDict begin [ /View [/XYZ H.V] /Dest (3080) cvn H.B /DEST pdfmark end + -30 39591 a -30 40707 a +SDict begin H.S end + -30 40707 a -30 40707 a +SDict begin 18.2 H.A end + -30 +40707 a -30 40707 a +SDict begin [ /View [/XYZ H.V] /Dest (3083) cvn H.B /DEST pdfmark end + -30 40707 a 1553 x FU(The)447 b(\002lesystem)e +(stores)h(o)-39 b(wnership)446 b(information)g(for)h(each)f(\002le)h +(and)f(directory)g(on)h(the)f(sys-)-30 44275 y(tem.)387 +b(This)g(includes)f(what)h(user)g(and)g(group)g(o)-39 +b(wn)387 b(a)h(particular)e(\002le.)i(The)f(easiest)f(w)-15 +b(ay)387 b(to)g(see)-30 46289 y(this)g(information)f(is)h(with)g(the) +17147 46289 y +SDict begin H.S end + 17147 46289 a 17147 46289 a +SDict begin 18.2 H.A end + 17147 46289 +a 17147 46289 a +SDict begin [ /View [/XYZ H.V] /Dest (3084) cvn H.B /DEST pdfmark end + 17147 46289 a FP(ls)g FU(command:)-30 +47865 y +SDict begin H.S end + -30 47865 a -30 47865 a +SDict begin 14.56 H.A end + -30 47865 a -30 47865 +a +SDict begin [ /View [/XYZ H.V] /Dest (3085) cvn H.B /DEST pdfmark end + -30 47865 a -30 47865 a +SDict begin H.S end + -30 47865 a -30 47865 a +SDict begin 14.56 H.A end + -30 +47865 a -30 47865 a +SDict begin [ /View [/XYZ H.V] /Dest (3086) cvn H.B /DEST pdfmark end + -30 47865 a 1586 x FJ(\045)1309 49451 +y +SDict begin H.S end + 1309 49451 a 1309 49451 a +SDict begin 14.56 H.A end + 1309 49451 a 1309 49451 a +SDict begin [ /View [/XYZ H.V] /Dest (3087) cvn H.B /DEST pdfmark end + +1309 49451 a FH(ls)744 b(-l)f(/usr/bin/wc)-30 51063 y +FP(-rwxr-xr-x)2231 b(1)743 b(root)3719 b(bin)2975 b(7368)744 +b(Jul)f(30)1488 b(1999)743 b(/usr/bin/wc)-30 51161 y +SDict begin H.S end + +-30 51161 a -30 51161 a +SDict begin 18.2 H.A end + -30 51161 a -30 51161 a +SDict begin [ /View [/XYZ H.V] /Dest (3088) cvn H.B /DEST pdfmark end + -30 51161 +a -30 51161 a +SDict begin H.S end + -30 51161 a -30 51161 a +SDict begin 18.2 H.A end + -30 51161 a -30 +51161 a +SDict begin [ /View [/XYZ H.V] /Dest (3090) cvn H.B /DEST pdfmark end + -30 51161 a -30 52710 a +SDict begin H.S end + -30 52710 a -30 52710 +a +SDict begin 18.2 H.A end + -30 52710 a -30 52710 a +SDict begin [ /View [/XYZ H.V] /Dest (3092) cvn H.B /DEST pdfmark end + -30 52710 a 1917 x FU(W)-124 +b(e)449 b(are)g(interested)f(in)h(the)g(third)f(and)h(fourth)f +(columns.)h(These)g(contain)f(the)h(username)f(and)-30 +56642 y(group)345 b(name)g(that)g(o)-39 b(wns)345 b(this)g(\002le.)g(W) +-124 b(e)346 b(see)f(that)g(the)g(user)31712 56642 y +SDict begin H.S end + +31712 56642 a 31712 56642 a +SDict begin 18.2 H.A end + 31712 56642 a 31712 56642 +a +SDict begin [ /View [/XYZ H.V] /Dest (3093) cvn H.B /DEST pdfmark end + 31712 56642 a FU(\223)32400 56642 y +SDict begin H.S end + 32400 56642 a 32400 +56642 a +SDict begin 18.2 H.A end + 32400 56642 a 32400 56642 a +SDict begin [ /View [/XYZ H.V] /Dest (3094) cvn H.B /DEST pdfmark end + 32400 56642 a FP(root)p +FU(\224)g(and)h(the)f(group)45193 56642 y +SDict begin H.S end + 45193 56642 +a 45193 56642 a +SDict begin 18.2 H.A end + 45193 56642 a 45193 56642 a +SDict begin [ /View [/XYZ H.V] /Dest (3095) cvn H.B /DEST pdfmark end + 45193 56642 +a FU(\223)45881 56642 y +SDict begin H.S end + 45881 56642 a 45881 56642 a +SDict begin 18.2 H.A end + 45881 +56642 a 45881 56642 a +SDict begin [ /View [/XYZ H.V] /Dest (3096) cvn H.B /DEST pdfmark end + 45881 56642 a FP(bin)p FU(\224)g(o)-39 +b(wn)-30 58656 y(this)387 b(\002le.)-30 58671 y +SDict begin H.S end + -30 58671 +a -30 58671 a +SDict begin 18.2 H.A end + -30 58671 a -30 58671 a +SDict begin [ /View [/XYZ H.V] /Dest (3097) cvn H.B /DEST pdfmark end + -30 58671 a -30 +58671 a +SDict begin H.S end + -30 58671 a -30 58671 a +SDict begin 18.2 H.A end + -30 58671 a -30 58671 +a +SDict begin [ /View [/XYZ H.V] /Dest (3100) cvn H.B /DEST pdfmark end + -30 58671 a -30 59447 a +SDict begin H.S end + -30 59447 a -30 59447 a +SDict begin 18.2 H.A end + -30 +59447 a -30 59447 a +SDict begin [ /View [/XYZ H.V] /Dest (3102) cvn H.B /DEST pdfmark end + -30 59447 a 1999 x FU(W)-124 b(e)650 +b(can)g(easily)f(change)g(the)h(\002le)f(o)-39 b(wners)650 +b(with)f(the)30960 61446 y +SDict begin H.S end + 30960 61446 a 30960 61446 +a +SDict begin 18.2 H.A end + 30960 61446 a 30960 61446 a +SDict begin [ /View [/XYZ H.V] /Dest (3103) cvn H.B /DEST pdfmark end + 30960 61446 a FP(chown)p +FU(\(1\))g(\(which)h(means)46699 61446 y +SDict begin H.S end + 46699 61446 +a 46699 61446 a +SDict begin 18.2 H.A end + 46699 61446 a 46699 61446 a +SDict begin [ /View [/XYZ H.V] /Dest (3104) cvn H.B /DEST pdfmark end + 46699 61446 +a FU(\223change)-30 63460 y(o)-39 b(wner\224\))586 b(and)8418 +63460 y +SDict begin H.S end + 8418 63460 a 8418 63460 a +SDict begin 18.2 H.A end + 8418 63460 a 8418 63460 +a +SDict begin [ /View [/XYZ H.V] /Dest (3105) cvn H.B /DEST pdfmark end + 8418 63460 a FP(chgrp)p FU(\(1\))g(\(which)f(means)23966 +63460 y +SDict begin H.S end + 23966 63460 a 23966 63460 a +SDict begin 18.2 H.A end + 23966 63460 a 23966 +63460 a +SDict begin [ /View [/XYZ H.V] /Dest (3106) cvn H.B /DEST pdfmark end + 23966 63460 a FU(\223change)h(group\224\))g(commands.)f(T)-124 +b(o)586 b(change)g(the)-30 65475 y(\002le)387 b(o)-39 +b(wner)388 b(to)8153 65475 y +SDict begin H.S end + 8153 65475 a 8153 65475 +a +SDict begin 18.2 H.A end + 8153 65475 a 8153 65475 a +SDict begin [ /View [/XYZ H.V] /Dest (3107) cvn H.B /DEST pdfmark end + 8153 65475 a FP(daemon)p +FU(,)f(we)g(w)-15 b(ould)387 b(use)22285 65475 y +SDict begin H.S end + 22285 +65475 a 22285 65475 a +SDict begin 18.2 H.A end + 22285 65475 a 22285 65475 a +SDict begin [ /View [/XYZ H.V] /Dest (3108) cvn H.B /DEST pdfmark end + 22285 +65475 a FP(chown)p FU(:)p Black -30 73672 a +SDict begin H.S end + -30 73672 +a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (3112) cvn H.B /DEST pdfmark end + -30 73672 a 49451 +74722 a FR(111)p Black eop end +%%Page: 112 134 +TeXDict begin 112 133 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.112) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(9)g(F)-70 b(ilesystem)387 +b(Structur)-57 b(e)p Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 +2383 a +SDict begin 14.56 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (3109) cvn H.B /DEST pdfmark end + -30 2383 a -30 2383 a +SDict begin H.S end + -30 +2383 a -30 2383 a +SDict begin 14.56 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (3110) cvn H.B /DEST pdfmark end + -30 2383 a 1107 +x FJ(#)1309 3490 y +SDict begin H.S end + 1309 3490 a 1309 3490 a +SDict begin 14.56 H.A end + 1309 3490 +a 1309 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (3111) cvn H.B /DEST pdfmark end + 1309 3490 a FH(chown)743 b(daemon)g(/usr/bin/wc)-30 +7055 y FU(T)-124 b(o)387 b(change)h(the)f(group)g(o)-39 +b(wner)387 b(to)g(\223)p FP(root)p FU(\224,)h(we)f(w)-15 +b(ould)387 b(use)32851 7055 y +SDict begin H.S end + 32851 7055 a 32851 7055 +a +SDict begin 18.2 H.A end + 32851 7055 a 32851 7055 a +SDict begin [ /View [/XYZ H.V] /Dest (3115) cvn H.B /DEST pdfmark end + 32851 7055 a FP(chgrp)p FU(:)-30 +8940 y +SDict begin H.S end + -30 8940 a -30 8940 a +SDict begin 14.56 H.A end + -30 8940 a -30 8940 a +SDict begin [ /View [/XYZ H.V] /Dest (3116) cvn H.B /DEST pdfmark end + -30 +8940 a -30 8940 a +SDict begin H.S end + -30 8940 a -30 8940 a +SDict begin 14.56 H.A end + -30 8940 a -30 +8940 a +SDict begin [ /View [/XYZ H.V] /Dest (3117) cvn H.B /DEST pdfmark end + -30 8940 a 1276 x FJ(#)1309 10216 y +SDict begin H.S end + 1309 10216 +a 1309 10216 a +SDict begin 14.56 H.A end + 1309 10216 a 1309 10216 a +SDict begin [ /View [/XYZ H.V] /Dest (3118) cvn H.B /DEST pdfmark end + 1309 10216 a +FH(chgrp)743 b(root)h(/usr/bin/wc)-30 11934 y +SDict begin H.S end + -30 11934 +a -30 11934 a +SDict begin 18.2 H.A end + -30 11934 a -30 11934 a +SDict begin [ /View [/XYZ H.V] /Dest (3119) cvn H.B /DEST pdfmark end + -30 11934 a 1847 +x FU(W)-124 b(e)388 b(can)f(also)g(use)10260 13781 y +SDict begin H.S end + +10260 13781 a 10260 13781 a +SDict begin 18.2 H.A end + 10260 13781 a 10260 13781 +a +SDict begin [ /View [/XYZ H.V] /Dest (3120) cvn H.B /DEST pdfmark end + 10260 13781 a FP(chown)g FU(to)g(specify)g(the)g(user)h(and)f(group)g +(o)-39 b(wners)387 b(for)h(a)f(\002le:)-30 15666 y +SDict begin H.S end + -30 +15666 a -30 15666 a +SDict begin 14.56 H.A end + -30 15666 a -30 15666 a +SDict begin [ /View [/XYZ H.V] /Dest (3121) cvn H.B /DEST pdfmark end + -30 15666 +a -30 15666 a +SDict begin H.S end + -30 15666 a -30 15666 a +SDict begin 14.56 H.A end + -30 15666 a -30 +15666 a +SDict begin [ /View [/XYZ H.V] /Dest (3122) cvn H.B /DEST pdfmark end + -30 15666 a 1276 x FJ(#)1309 16942 y +SDict begin H.S end + 1309 16942 +a 1309 16942 a +SDict begin 14.56 H.A end + 1309 16942 a 1309 16942 a +SDict begin [ /View [/XYZ H.V] /Dest (3123) cvn H.B /DEST pdfmark end + 1309 16942 a +FH(chown)743 b(daemon:root)g(/usr/bin/wc)-30 18583 y +SDict begin H.S end + +-30 18583 a -30 18583 a +SDict begin 18.2 H.A end + -30 18583 a -30 18583 a +SDict begin [ /View [/XYZ H.V] /Dest (3124) cvn H.B /DEST pdfmark end + -30 18583 +a 1923 x FU(In)564 b(the)g(abo)-23 b(v)g(e)564 b(e)-23 +b(xample,)564 b(the)f(user)i(could)e(ha)-31 b(v)-23 b(e)564 +b(used)g(a)g(period)g(instead)f(of)i(a)f(colon.)g(The)-30 +22521 y(result)401 b(w)-15 b(ould)399 b(ha)-31 b(v)-23 +b(e)401 b(been)g(the)g(same;)f(ho)-39 b(we)g(v)-23 b(er)-62 +b(,)402 b(the)f(colon)f(is)h(considered)f(better)h(form.)g(Use)-30 +24536 y(of)507 b(the)g(period)g(is)f(deprecated)h(and)g(may)g(be)g +(remo)-23 b(v)g(ed)506 b(from)h(future)g(v)-23 b(ersions)506 +b(of)46344 24536 y +SDict begin H.S end + 46344 24536 a 46344 24536 a +SDict begin 18.2 H.A end + 46344 +24536 a 46344 24536 a +SDict begin [ /View [/XYZ H.V] /Dest (3125) cvn H.B /DEST pdfmark end + 46344 24536 a FP(chown)g FU(to)-30 +26550 y(allo)-39 b(w)311 b(usernames)g(with)g(periods)g(in)g(them.)h +(These)f(usernames)g(tend)g(to)g(be)g(v)-23 b(ery)312 +b(popular)e(with)-30 28565 y(W)-62 b(indo)-39 b(ws)329 +b(Exchange)g(Serv)-23 b(ers)329 b(and)h(are)g(encountered)f(most)g +(commonly)f(in)h(email)g(addresses)-30 30580 y(such)547 +b(as:)5627 30580 y +SDict begin H.S end + 5627 30580 a 5627 30580 a +SDict begin 18.2 H.A end + 5627 30580 +a 5627 30580 a +SDict begin [ /View [/XYZ H.V] /Dest (3126) cvn H.B /DEST pdfmark end + 5627 30580 a FP(mr.jones@example.com)p +FU(.)e(In)i(slackw)-15 b(are,)546 b(administrators)g(are)h(advised)g +(to)f(stay)-30 32594 y(a)-23 b(w)-15 b(ay)438 b(from)h(such)f +(usernames)h(because)g(some)f(scripts)g(still)g(use)h(the)g(period)f +(to)h(indicate)f(the)-30 34609 y(user)321 b(and)f(group)g(of)g(a)h +(\002le)f(or)h(directory)-101 b(.)320 b(In)h(our)f(e)-23 +b(xample,)32034 34609 y +SDict begin H.S end + 32034 34609 a 32034 34609 a +SDict begin 18.2 H.A end + 32034 +34609 a 32034 34609 a +SDict begin [ /View [/XYZ H.V] /Dest (3127) cvn H.B /DEST pdfmark end + 32034 34609 a FP(chmod)320 b FU(w)-15 +b(ould)320 b(interpret)45825 34609 y +SDict begin H.S end + 45825 34609 a 45825 +34609 a +SDict begin 18.2 H.A end + 45825 34609 a 45825 34609 a +SDict begin [ /View [/XYZ H.V] /Dest (3128) cvn H.B /DEST pdfmark end + 45825 34609 a FP(mr.jones)-30 +36624 y FU(as)387 b(user)4618 36624 y +SDict begin H.S end + 4618 36624 a 4618 +36624 a +SDict begin 18.2 H.A end + 4618 36624 a 4618 36624 a +SDict begin [ /View [/XYZ H.V] /Dest (3129) cvn H.B /DEST pdfmark end + 4618 36624 a FU(\223mr\224)g(and)g +(group)14731 36624 y +SDict begin H.S end + 14731 36624 a 14731 36624 a +SDict begin 18.2 H.A end + 14731 +36624 a 14731 36624 a +SDict begin [ /View [/XYZ H.V] /Dest (3130) cvn H.B /DEST pdfmark end + 14731 36624 a FU(\223jones\224.)-30 +37734 y +SDict begin H.S end + -30 37734 a -30 37734 a +SDict begin 18.2 H.A end + -30 37734 a -30 37734 +a +SDict begin [ /View [/XYZ H.V] /Dest (3131) cvn H.B /DEST pdfmark end + -30 37734 a 1679 x FU(File)402 b(o)-39 b(wnership)401 +b(is)h(a)g(v)-23 b(ery)402 b(important)f(part)h(of)g(using)f(a)i(Linux) +e(system,)h(e)-39 b(v)-23 b(en)402 b(if)g(you)g(are)g(the)-30 +41428 y(only)387 b(user)-85 b(.)387 b(Y)-170 b(ou)387 +b(sometimes)f(need)i(to)f(\002x)g(o)-39 b(wnerships)386 +b(on)i(\002les)e(and)i(de)-39 b(vice)387 b(nodes.)-30 +42538 y +SDict begin H.S end + -30 42538 a -30 42538 a +SDict begin 18.2 H.A end + -30 42538 a -30 42538 +a +SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-PERMISSIONS) +cvn H.B /DEST pdfmark end + -30 42538 a 5789 x FL(9.2)620 b(P)-67 b(ermissions)-30 +49471 y +SDict begin H.S end + -30 49471 a -30 49471 a +SDict begin 18.2 H.A end + -30 49471 a -30 49471 +a +SDict begin [ /View [/XYZ H.V] /Dest (3134) cvn H.B /DEST pdfmark end + -30 49471 a 1987 x FU(Permissions)460 b(are)h(the)g(other)g +(important)f(part)h(of)g(the)g(multiuser)f(aspects)h(of)g(the)g +(\002lesystem.)-30 53473 y(W)-62 b(ith)387 b(these,)h(you)f(can)g +(change)g(who)g(can)h(read,)g(write,)f(and)h(e)-23 b(x)g(ecute)387 +b(\002les.)-30 54583 y +SDict begin H.S end + -30 54583 a -30 54583 a +SDict begin 18.2 H.A end + -30 54583 +a -30 54583 a +SDict begin [ /View [/XYZ H.V] /Dest (3135) cvn H.B /DEST pdfmark end + -30 54583 a 1679 x FU(The)451 b(permission)f(information) +g(is)h(stored)g(as)g(four)g(octal)g(digits,)36099 56262 +y +SDict begin H.S end + 36099 56262 a 36099 56262 a +SDict begin 18.2 H.A end + 36099 56262 a 36099 56262 +a +SDict begin [ /View [/XYZ H.V] /Dest (3136) cvn H.B /DEST pdfmark end + 36099 56262 a 452 w FU(each)g(specifying)f(a)i(dif)-39 +b(fer)-31 b(-)-30 58277 y(ent)430 b(set)g(of)f(permissions.)g(There)h +(are)h(o)-39 b(wner)430 b(permissions,)f(group)g(permissions,)g(and)h +(w)-15 b(orld)-30 60291 y(permissions.)491 b(The)h(fourth)f(octal)h +(digit)f(is)g(used)h(to)f(store)h(special)f(information)g(such)g(as)h +(set)-30 62306 y(user)499 b(ID,)h(set)g(group)f(ID,)h(and)f(the)g +(stick)-23 b(y)499 b(bit.)g(The)h(octal)f(v)-39 b(alues)499 +b(assigned)g(to)g(the)g(permis-)-30 64321 y(sion)541 +b(modes)f(are)i(\(the)-23 b(y)540 b(also)h(ha)-31 b(v)-23 +b(e)541 b(letters)g(associated)f(with)h(them)g(that)f(are)i(displayed)e +(by)-30 66335 y(programs)387 b(such)g(as)11117 66335 +y +SDict begin H.S end + 11117 66335 a 11117 66335 a +SDict begin 18.2 H.A end + 11117 66335 a 11117 66335 +a +SDict begin [ /View [/XYZ H.V] /Dest (3139) cvn H.B /DEST pdfmark end + 11117 66335 a FP(ls)h FU(and)f(can)g(be)h(used)f(by)25172 +66335 y +SDict begin H.S end + 25172 66335 a 25172 66335 a +SDict begin 18.2 H.A end + 25172 66335 a 25172 +66335 a +SDict begin [ /View [/XYZ H.V] /Dest (3140) cvn H.B /DEST pdfmark end + 25172 66335 a FP(chmod)p FU(\):)-30 66671 y +SDict begin H.S end + -30 +66671 a -30 66671 a +SDict begin 18.2 H.A end + -30 66671 a -30 66671 a +SDict begin [ /View [/XYZ H.V] /Dest (3141) cvn H.B /DEST pdfmark end + -30 66671 +a Black 7001 x FR(112)p Black eop end +%%Page: 113 135 +TeXDict begin 113 134 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.113) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 32490 -1636 a FR(Chapter)386 b(9)h(F)-70 +b(ilesystem)387 b(Structur)-57 b(e)p Black -30 3611 a +FX(T)-143 b(able)387 b(9-1.)h(Octal)f(P)-31 b(ermission)386 +b(V)-143 b(alues)-30 5179 y +SDict begin H.S end + -30 5179 a -30 5179 a +SDict begin 18.2 H.A end + -30 +5179 a -30 5179 a +SDict begin [ /View [/XYZ H.V] /Dest (3143) cvn H.B /DEST pdfmark end + -30 5179 a -30 5179 a +SDict begin H.S end + -30 5179 a -30 +5179 a +SDict begin 18.2 H.A end + -30 5179 a -30 5179 a +SDict begin [ /View [/XYZ H.V] /Dest (table.9) cvn H.B /DEST pdfmark +end + -30 5179 a 1761 x FE(P)-46 +b(ermission)428 b(T)-93 b(ype)19632 b(Octal)430 b(V)-93 +b(alue)1797 b(Letter)430 b(V)-93 b(alue)p -30 7317 51806 +45 v -30 7317 V -30 9078 a FU(\223stick)-23 b(y\224)387 +b(bit)28603 b(1)9758 b(t)-30 11174 y(set)387 b(user)h(ID)28969 +b(4)9672 b(s)-30 13267 y(set)387 b(group)g(ID)27936 b(2)9672 +b(s)-30 15364 y(read)33016 b(4)9716 b(r)-30 17457 y(write)32498 +b(2)9414 b(w)-30 19550 y(e)-23 b(x)g(ecute)30996 b(1)9586 +b(x)-30 21432 y +SDict begin H.S end + -30 21432 a -30 21432 a +SDict begin 18.2 H.A end + -30 21432 a -30 +21432 a +SDict begin [ /View [/XYZ H.V] /Dest (3178) cvn H.B /DEST pdfmark end + -30 21432 a 1682 x FU(Y)-170 b(ou)491 b(add)h(the)f(octal)h(v) +-39 b(alues)491 b(for)h(each)g(permission)f(group.)g(F)-23 +b(or)492 b(e)-23 b(xample,)491 b(if)h(you)f(w)-15 b(ant)491 +b(the)-30 25129 y(group)378 b(permissions)f(to)h(be)15172 +25129 y +SDict begin H.S end + 15172 25129 a 15172 25129 a +SDict begin 18.2 H.A end + 15172 25129 a 15172 +25129 a +SDict begin [ /View [/XYZ H.V] /Dest (3179) cvn H.B /DEST pdfmark end + 15172 25129 a FU(\223read\224)g(and)22209 25129 +y +SDict begin H.S end + 22209 25129 a 22209 25129 a +SDict begin 18.2 H.A end + 22209 25129 a 22209 25129 +a +SDict begin [ /View [/XYZ H.V] /Dest (3180) cvn H.B /DEST pdfmark end + 22209 25129 a FU(\223write\224,)h(you)f(w)-15 b(ould)377 +b(use)36920 25129 y +SDict begin H.S end + 36920 25129 a 36920 25129 a +SDict begin 18.2 H.A end + 36920 +25129 a 36920 25129 a +SDict begin [ /View [/XYZ H.V] /Dest (3181) cvn H.B /DEST pdfmark end + 36920 25129 a FU(\2236\224)h(in)g(the)g(group)g +(portion)-30 27143 y(of)387 b(the)h(permission)e(information.)-30 +28254 y +SDict begin H.S end + -30 28254 a -30 28254 a +SDict begin 18.2 H.A end + -30 28254 a -30 28254 +a +SDict begin [ /View [/XYZ H.V] /Dest (3182) cvn H.B /DEST pdfmark end + -30 28254 a -30 28254 a +SDict begin H.S end + -30 28254 a -30 28254 a +SDict begin 18.2 H.A end + -30 +28254 a -30 28254 a +SDict begin [ /View [/XYZ H.V] /Dest (3183) cvn H.B /DEST pdfmark end + -30 28254 a 1679 x FP(bash)p FU(')-85 +b(s)387 b(def)-15 b(ault)386 b(permissions)g(are:)-30 +31818 y +SDict begin H.S end + -30 31818 a -30 31818 a +SDict begin 14.56 H.A end + -30 31818 a -30 31818 +a +SDict begin [ /View [/XYZ H.V] /Dest (3184) cvn H.B /DEST pdfmark end + -30 31818 a -30 31818 a +SDict begin H.S end + -30 31818 a -30 31818 a +SDict begin 14.56 H.A end + -30 +31818 a -30 31818 a +SDict begin [ /View [/XYZ H.V] /Dest (3185) cvn H.B /DEST pdfmark end + -30 31818 a 1276 x FJ(\045)1309 33094 +y +SDict begin H.S end + 1309 33094 a 1309 33094 a +SDict begin 14.56 H.A end + 1309 33094 a 1309 33094 a +SDict begin [ /View [/XYZ H.V] /Dest (3186) cvn H.B /DEST pdfmark end + +1309 33094 a FH(ls)744 b(-l)f(/bin/bash)-30 34706 y FP(-rwxr-xr-x)2231 +b(1)743 b(root)3719 b(bin)1488 b(477692)743 b(Mar)g(21)h(19:57)f +(/bin/bash)-30 36354 y +SDict begin H.S end + -30 36354 a -30 36354 a +SDict begin 18.2 H.A end + -30 36354 +a -30 36354 a +SDict begin [ /View [/XYZ H.V] /Dest (3187) cvn H.B /DEST pdfmark end + -30 36354 a 1917 x FU(The)491 b(\002rst)f(dash)h(w)-15 +b(ould)490 b(be)h(replaced)g(with)g(a)25575 38271 y +SDict begin H.S end + 25575 +38271 a 25575 38271 a +SDict begin 18.2 H.A end + 25575 38271 a 25575 38271 a +SDict begin [ /View [/XYZ H.V] /Dest (3188) cvn H.B /DEST pdfmark end + 25575 +38271 a FU(\223d\224)g(if)g(this)f(w)-15 b(as)490 b(a)i(directory)-101 +b(.)491 b(The)g(three)g(per)-31 b(-)-30 40285 y(mission)369 +b(groups)g(\(o)-39 b(wner)-62 b(,)370 b(group,)g(and)g(w)-15 +b(orld\))369 b(are)h(displayed)f(ne)-23 b(xt.)370 b(W)-124 +b(e)370 b(see)g(that)f(the)h(o)-39 b(wner)-30 42300 y(has)361 +b(read,)h(write,)f(and)g(e)-23 b(x)g(ecute)361 b(permissions)e(\()25674 +42300 y +SDict begin H.S end + 25674 42300 a 25674 42300 a +SDict begin 18.2 H.A end + 25674 42300 a 25674 +42300 a +SDict begin [ /View [/XYZ H.V] /Dest (3189) cvn H.B /DEST pdfmark end + 25674 42300 a FP(rwx)p FU(\).)j(The)f(group)g(has)g(only)f +(read)h(and)g(e)-23 b(x)g(ecute)-30 44315 y(\()486 44315 +y +SDict begin H.S end + 486 44315 a 486 44315 a +SDict begin 18.2 H.A end + 486 44315 a 486 44315 a +SDict begin [ /View [/XYZ H.V] /Dest (3190) cvn H.B /DEST pdfmark end + 486 +44315 a FP(r-x)p FU(\).)388 b(And)f(e)-39 b(v)-23 b(eryone)387 +b(else)g(has)h(only)e(read)i(and)f(e)-23 b(x)g(ecute)387 +b(\()32733 44315 y +SDict begin H.S end + 32733 44315 a 32733 44315 a +SDict begin 18.2 H.A end + 32733 +44315 a 32733 44315 a +SDict begin [ /View [/XYZ H.V] /Dest (3191) cvn H.B /DEST pdfmark end + 32733 44315 a FP(r-x)p FU(\).)-30 +45425 y +SDict begin H.S end + -30 45425 a -30 45425 a +SDict begin 18.2 H.A end + -30 45425 a -30 45425 +a +SDict begin [ /View [/XYZ H.V] /Dest (3192) cvn H.B /DEST pdfmark end + -30 45425 a 1679 x FU(Ho)-39 b(w)401 b(w)-15 b(ould)399 +b(we)i(set)g(permissions)e(on)i(another)f(\002le)g(to)h(resemble)36722 +47104 y +SDict begin H.S end + 36722 47104 a 36722 47104 a +SDict begin 18.2 H.A end + 36722 47104 a 36722 +47104 a +SDict begin [ /View [/XYZ H.V] /Dest (3193) cvn H.B /DEST pdfmark end + 36722 47104 a FP(bash)p FU(')-85 b(s?)400 b(First,)g(let')-85 +b(s)401 b(mak)-15 b(e)-30 49119 y(an)387 b(e)-23 b(xample)387 +b(\002le:)-30 51004 y +SDict begin H.S end + -30 51004 a -30 51004 a +SDict begin 14.56 H.A end + -30 51004 +a -30 51004 a +SDict begin [ /View [/XYZ H.V] /Dest (3194) cvn H.B /DEST pdfmark end + -30 51004 a -30 51004 a +SDict begin H.S end + -30 51004 a -30 +51004 a +SDict begin 14.56 H.A end + -30 51004 a -30 51004 a +SDict begin [ /View [/XYZ H.V] /Dest (3195) cvn H.B /DEST pdfmark end + -30 51004 a 1276 x FJ(\045)1309 +52280 y +SDict begin H.S end + 1309 52280 a 1309 52280 a +SDict begin 14.56 H.A end + 1309 52280 a 1309 52280 +a +SDict begin [ /View [/XYZ H.V] /Dest (3196) cvn H.B /DEST pdfmark end + 1309 52280 a FH(touch)743 b(/tmp/example)-30 52448 +y +SDict begin H.S end + -30 52448 a -30 52448 a +SDict begin 14.56 H.A end + -30 52448 a -30 52448 a +SDict begin [ /View [/XYZ H.V] /Dest (3197) cvn H.B /DEST pdfmark end + -30 +52448 a 1444 x FJ(\045)1309 53892 y +SDict begin H.S end + 1309 53892 a 1309 +53892 a +SDict begin 14.56 H.A end + 1309 53892 a 1309 53892 a +SDict begin [ /View [/XYZ H.V] /Dest (3198) cvn H.B /DEST pdfmark end + 1309 53892 a FH(ls)h(-l)f +(/tmp/example)-30 55504 y FP(-rw-rw-r---)1487 b(1)743 +b(david)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example)-30 +55699 y +SDict begin H.S end + -30 55699 a -30 55699 a +SDict begin 18.2 H.A end + -30 55699 a -30 55699 +a +SDict begin [ /View [/XYZ H.V] /Dest (3199) cvn H.B /DEST pdfmark end + -30 55699 a -30 57248 a +SDict begin H.S end + -30 57248 a -30 57248 a +SDict begin 18.2 H.A end + -30 +57248 a -30 57248 a +SDict begin [ /View [/XYZ H.V] /Dest (3201) cvn H.B /DEST pdfmark end + -30 57248 a 1820 x FU(W)-124 b(e)471 +b(will)f(use)7886 59068 y +SDict begin H.S end + 7886 59068 a 7886 59068 a +SDict begin 18.2 H.A end + 7886 +59068 a 7886 59068 a +SDict begin [ /View [/XYZ H.V] /Dest (3202) cvn H.B /DEST pdfmark end + 7886 59068 a FP(chmod)p FU(\(1\))g(\(which)g +(means)23088 59068 y +SDict begin H.S end + 23088 59068 a 23088 59068 a +SDict begin 18.2 H.A end + 23088 +59068 a 23088 59068 a +SDict begin [ /View [/XYZ H.V] /Dest (3203) cvn H.B /DEST pdfmark end + 23088 59068 a FU(\223change)g(mode\224\))g(to)h +(set)f(the)h(permissions)e(on)h(the)-30 61083 y(e)-23 +b(xample)387 b(\002le.)g(Add)g(the)g(octal)f(numbers)h(for)g(the)g +(permissions)f(you)h(w)-15 b(ant.)386 b(F)-23 b(or)387 +b(the)g(o)-39 b(wner)387 b(to)-30 63098 y(ha)-31 b(v)-23 +b(e)404 b(read,)h(write,)f(and)g(e)-23 b(x)g(ecute,)404 +b(we)g(w)-15 b(ould)403 b(ha)-31 b(v)-23 b(e)404 b(a)g(v)-39 +b(alue)404 b(of)35060 63098 y +SDict begin H.S end + 35060 63098 a 35060 63098 +a +SDict begin 18.2 H.A end + 35060 63098 a 35060 63098 a +SDict begin [ /View [/XYZ H.V] /Dest (3204) cvn H.B /DEST pdfmark end + 35060 63098 a FP(7)p FU(.)h(Read)e(and)h +(e)-23 b(x)g(ecute)404 b(w)-15 b(ould)-30 65112 y(ha)-31 +b(v)-23 b(e)3229 65112 y +SDict begin H.S end + 3229 65112 a 3229 65112 a +SDict begin 18.2 H.A end + 3229 +65112 a 3229 65112 a +SDict begin [ /View [/XYZ H.V] /Dest (3205) cvn H.B /DEST pdfmark end + 3229 65112 a FP(5)p FU(.)388 b(Run)f(those)g +(together)g(and)g(pass)g(them)g(to)27605 65112 y +SDict begin H.S end + 27605 +65112 a 27605 65112 a +SDict begin 18.2 H.A end + 27605 65112 a 27605 65112 a +SDict begin [ /View [/XYZ H.V] /Dest (3206) cvn H.B /DEST pdfmark end + 27605 +65112 a FP(chmod)g FU(lik)-15 b(e)386 b(this:)-30 66997 +y +SDict begin H.S end + -30 66997 a -30 66997 a +SDict begin 14.56 H.A end + -30 66997 a -30 66997 a +SDict begin [ /View [/XYZ H.V] /Dest (3207) cvn H.B /DEST pdfmark end + -30 +66997 a -30 66997 a +SDict begin H.S end + -30 66997 a -30 66997 a +SDict begin 14.56 H.A end + -30 66997 +a -30 66997 a +SDict begin [ /View [/XYZ H.V] /Dest (3208) cvn H.B /DEST pdfmark end + -30 66997 a 1277 x FJ(\045)1309 68274 y +SDict begin H.S end + +1309 68274 a 1309 68274 a +SDict begin 14.56 H.A end + 1309 68274 a 1309 68274 a +SDict begin [ /View [/XYZ H.V] /Dest (3209) cvn H.B /DEST pdfmark end + 1309 +68274 a FH(chmod)743 b(755)h(/tmp/example)p Black 49451 +73792 a FR(113)p Black eop end +%%Page: 114 136 +TeXDict begin 114 135 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.114) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (3261) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(9)g(F)-70 b(ilesystem)387 b(Structur)-57 b(e)p Black +-30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 +a +SDict begin [ /View [/XYZ H.V] /Dest (3210) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FJ(\045)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 +3611 a +SDict begin 14.56 H.A end + 1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3211) cvn H.B /DEST pdfmark end + 1309 3611 a FH(ls)744 +b(-l)f(/tmp/example)-30 5223 y FP(-rwxr-xr-x)2231 b(1)743 +b(david)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example)-30 +5418 y +SDict begin H.S end + -30 5418 a -30 5418 a +SDict begin 18.2 H.A end + -30 5418 a -30 5418 a +SDict begin [ /View [/XYZ H.V] /Dest (3212) cvn H.B /DEST pdfmark end + -30 +5418 a -30 5418 a +SDict begin H.S end + -30 5418 a -30 5418 a +SDict begin 18.2 H.A end + -30 5418 a -30 +5418 a +SDict begin [ /View [/XYZ H.V] /Dest (3214) cvn H.B /DEST pdfmark end + -30 5418 a -30 6967 a +SDict begin H.S end + -30 6967 a -30 6967 a +SDict begin 18.2 H.A end + -30 +6967 a -30 6967 a +SDict begin [ /View [/XYZ H.V] /Dest (3216) cvn H.B /DEST pdfmark end + -30 6967 a 1820 x FU(No)-39 b(w)468 +b(you)g(may)g(be)g(thinking,)17295 8787 y +SDict begin H.S end + 17295 8787 +a 17295 8787 a +SDict begin 18.2 H.A end + 17295 8787 a 17295 8787 a +SDict begin [ /View [/XYZ H.V] /Dest (3217) cvn H.B /DEST pdfmark end + 17295 8787 a +FU(\223Wh)-8 b(y)468 b(didn')-28 b(t)468 b(it)g(just)f(create)h(a)h +(\002le)e(with)h(those)f(permissions)-30 10802 y(in)581 +b(the)g(\002rst)g(place?\224)g(W)-124 b(ell)581 b(the)g(answer)g(is)g +(simple.)30084 10802 y +SDict begin H.S end + 30084 10802 a 30084 10802 a +SDict begin 18.2 H.A end + 30084 +10802 a 30084 10802 a +SDict begin [ /View [/XYZ H.V] /Dest (3218) cvn H.B /DEST pdfmark end + 30084 10802 a FP(bash)g FU(includes)f(a)h(nice)g +(little)g(b)-31 b(uilt-in)-30 12817 y(called)4092 12817 +y +SDict begin H.S end + 4092 12817 a 4092 12817 a +SDict begin 18.2 H.A end + 4092 12817 a 4092 12817 a +SDict begin [ /View [/XYZ H.V] /Dest (3219) cvn H.B /DEST pdfmark end + +4092 12817 a FP(umask)p FU(.)422 b(This)f(is)g(included)g(with)g(most)f +(Unix)h(shells)g(as)g(well,)h(and)f(controls)g(what)g(\002le)-30 +14831 y(permissions)350 b(are)i(assigned)e(to)h(ne)-39 +b(wly)352 b(created)f(\002les.)g(W)-124 b(e)352 b(discussed)38133 +14831 y +SDict begin H.S end + 38133 14831 a 38133 14831 a +SDict begin 18.2 H.A end + 38133 14831 a 38133 +14831 a +SDict begin [ /View [/XYZ H.V] /Dest (3220) cvn H.B /DEST pdfmark end + 38133 14831 a FP(bash)f FU(b)-31 b(uilt-ins)350 +b(to)h(some)-30 16846 y(de)-23 b(gree)418 b(in)p 0 TeXcolorgray +6119 16846 a +SDict begin H.S end + 6119 16846 a FU(Section)386 b(8.3.1)14254 +16846 y +SDict begin 18.2 H.L end + 14254 16846 a 14254 16846 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 14254 16846 a Black +1 w FU(.)15060 16846 y +SDict begin H.S end + 15060 16846 a 15060 16846 a +SDict begin 18.2 H.A end + 15060 +16846 a 15060 16846 a +SDict begin [ /View [/XYZ H.V] /Dest (3222) cvn H.B /DEST pdfmark end + 15060 16846 a FP(umask)417 b FU(tak)-15 +b(es)418 b(a)g(little)f(getting)g(used)g(to.)i(It)e(w)-15 +b(orks)417 b(v)-23 b(ery)418 b(similar)f(to)-30 18861 +y +SDict begin H.S end + -30 18861 a -30 18861 a +SDict begin 18.2 H.A end + -30 18861 a -30 18861 a +SDict begin [ /View [/XYZ H.V] /Dest (3223) cvn H.B /DEST pdfmark end + -30 +18861 a FP(chmod)p FU(,)387 b(only)f(in)g(re)-39 b(v)-23 +b(erse.)388 b(Y)-170 b(ou)386 b(specify)g(the)h(octal)f(v)-39 +b(alues)387 b(you)f(do)h(not)f(wish)g(to)h(ha)-31 b(v)-23 +b(e)386 b(present)-30 20875 y(in)h(ne)-39 b(wly)387 b(created)h +(\002les.)f(The)g(def)-15 b(ault)387 b(umask)g(v)-39 +b(alue)387 b(is)30952 20875 y +SDict begin H.S end + 30952 20875 a 30952 20875 +a +SDict begin 18.2 H.A end + 30952 20875 a 30952 20875 a +SDict begin [ /View [/XYZ H.V] /Dest (3224) cvn H.B /DEST pdfmark end + 30952 20875 a FP(0022)p +FU(.)-30 22761 y +SDict begin H.S end + -30 22761 a -30 22761 a +SDict begin 14.56 H.A end + -30 22761 a +-30 22761 a +SDict begin [ /View [/XYZ H.V] /Dest (3225) cvn H.B /DEST pdfmark end + -30 22761 a -30 22761 a +SDict begin H.S end + -30 22761 a -30 22761 +a +SDict begin 14.56 H.A end + -30 22761 a -30 22761 a +SDict begin [ /View [/XYZ H.V] /Dest (3226) cvn H.B /DEST pdfmark end + -30 22761 a 1276 x FJ(\045)1309 +24037 y +SDict begin H.S end + 1309 24037 a 1309 24037 a +SDict begin 14.56 H.A end + 1309 24037 a 1309 24037 +a +SDict begin [ /View [/XYZ H.V] /Dest (3227) cvn H.B /DEST pdfmark end + 1309 24037 a FH(umask)-30 25648 y FP(0022)-30 25674 +y +SDict begin H.S end + -30 25674 a -30 25674 a +SDict begin 14.56 H.A end + -30 25674 a -30 25674 a +SDict begin [ /View [/XYZ H.V] /Dest (3228) cvn H.B /DEST pdfmark end + -30 +25674 a 1586 x FJ(\045)1309 27260 y +SDict begin H.S end + 1309 27260 a 1309 +27260 a +SDict begin 14.56 H.A end + 1309 27260 a 1309 27260 a +SDict begin [ /View [/XYZ H.V] /Dest (3229) cvn H.B /DEST pdfmark end + 1309 27260 a FH(umask)743 +b(0077)-30 27285 y +SDict begin H.S end + -30 27285 a -30 27285 a +SDict begin 14.56 H.A end + -30 27285 +a -30 27285 a +SDict begin [ /View [/XYZ H.V] /Dest (3230) cvn H.B /DEST pdfmark end + -30 27285 a 1587 x FJ(\045)1309 28872 y +SDict begin H.S end + +1309 28872 a 1309 28872 a +SDict begin 14.56 H.A end + 1309 28872 a 1309 28872 a +SDict begin [ /View [/XYZ H.V] /Dest (3231) cvn H.B /DEST pdfmark end + 1309 +28872 a FH(touch)g(tempfile)-30 29040 y +SDict begin H.S end + -30 29040 a -30 +29040 a +SDict begin 14.56 H.A end + -30 29040 a -30 29040 a +SDict begin [ /View [/XYZ H.V] /Dest (3232) cvn H.B /DEST pdfmark end + -30 29040 a 1444 x FJ(\045)1309 +30484 y +SDict begin H.S end + 1309 30484 a 1309 30484 a +SDict begin 14.56 H.A end + 1309 30484 a 1309 30484 +a +SDict begin [ /View [/XYZ H.V] /Dest (3233) cvn H.B /DEST pdfmark end + 1309 30484 a FH(ls)h(-l)f(tempfile)-30 32095 y FP(-rw--------)1487 +b(1)743 b(david)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(tempfile)-30 +33840 y +SDict begin H.S end + -30 33840 a -30 33840 a +SDict begin 18.2 H.A end + -30 33840 a -30 33840 +a +SDict begin [ /View [/XYZ H.V] /Dest (3234) cvn H.B /DEST pdfmark end + -30 33840 a 1820 x FU(See)387 b(the)h(man)f(page)g(for)13440 +35660 y +SDict begin H.S end + 13440 35660 a 13440 35660 a +SDict begin 18.2 H.A end + 13440 35660 a 13440 +35660 a +SDict begin [ /View [/XYZ H.V] /Dest (3235) cvn H.B /DEST pdfmark end + 13440 35660 a FP(bash)g FU(for)h(more)f(information.)-30 +36770 y +SDict begin H.S end + -30 36770 a -30 36770 a +SDict begin 18.2 H.A end + -30 36770 a -30 36770 +a +SDict begin [ /View [/XYZ H.V] /Dest (3236) cvn H.B /DEST pdfmark end + -30 36770 a 1679 x FU(T)-124 b(o)427 b(set)g(special)g(permissions)f +(with)19890 38449 y +SDict begin H.S end + 19890 38449 a 19890 38449 a +SDict begin 18.2 H.A end + 19890 +38449 a 19890 38449 a +SDict begin [ /View [/XYZ H.V] /Dest (3237) cvn H.B /DEST pdfmark end + 19890 38449 a FP(chmod)p FU(,)h(add)g(the)g +(numbers)g(together)g(and)g(place)g(them)g(in)-30 40464 +y(the)435 b(\002rst)g(column.)g(F)-23 b(or)435 b(e)-23 +b(xample,)435 b(to)g(mak)-15 b(e)434 b(it)h(set)h(user)f(ID)g(and)g +(set)g(group)g(ID,)h(we)f(use)h(6)f(as)-30 42479 y(the)387 +b(\002rst)g(column:)-30 44044 y +SDict begin H.S end + -30 44044 a -30 44044 +a +SDict begin 14.56 H.A end + -30 44044 a -30 44044 a +SDict begin [ /View [/XYZ H.V] /Dest (3238) cvn H.B /DEST pdfmark end + -30 44044 a -30 44044 a +SDict begin H.S end + -30 +44044 a -30 44044 a +SDict begin 14.56 H.A end + -30 44044 a -30 44044 a +SDict begin [ /View [/XYZ H.V] /Dest (3239) cvn H.B /DEST pdfmark end + -30 44044 +a 1596 x FJ(\045)1309 45640 y +SDict begin H.S end + 1309 45640 a 1309 45640 +a +SDict begin 14.56 H.A end + 1309 45640 a 1309 45640 a +SDict begin [ /View [/XYZ H.V] /Dest (3240) cvn H.B /DEST pdfmark end + 1309 45640 a FH(chmod)743 +b(6755)h(/tmp/example)-30 45808 y +SDict begin H.S end + -30 45808 a -30 45808 +a +SDict begin 14.56 H.A end + -30 45808 a -30 45808 a +SDict begin [ /View [/XYZ H.V] /Dest (3241) cvn H.B /DEST pdfmark end + -30 45808 a 1444 x FJ(\045)1309 +47252 y +SDict begin H.S end + 1309 47252 a 1309 47252 a +SDict begin 14.56 H.A end + 1309 47252 a 1309 47252 +a +SDict begin [ /View [/XYZ H.V] /Dest (3242) cvn H.B /DEST pdfmark end + 1309 47252 a FH(ls)g(-l)f(/tmp/example)-30 48864 y +FP(-rwsr-sr-x)2231 b(1)743 b(david)2975 b(users)g(0)744 +b(Apr)f(19)h(11:21)f(/tmp/example)-30 50608 y +SDict begin H.S end + -30 50608 +a -30 50608 a +SDict begin 18.2 H.A end + -30 50608 a -30 50608 a +SDict begin [ /View [/XYZ H.V] /Dest (3243) cvn H.B /DEST pdfmark end + -30 50608 a 1820 +x FU(If)617 b(the)f(octal)g(v)-39 b(alues)616 b(confuse)g(you,)g(you)g +(can)g(use)g(letters)g(with)37225 52428 y +SDict begin H.S end + 37225 52428 +a 37225 52428 a +SDict begin 18.2 H.A end + 37225 52428 a 37225 52428 a +SDict begin [ /View [/XYZ H.V] /Dest (3244) cvn H.B /DEST pdfmark end + 37225 52428 +a FP(chmod)p FU(.)g(The)g(permission)-30 54443 y(groups)387 +b(are)h(represented)f(as:)-30 54778 y +SDict begin H.S end + -30 54778 a -30 +54778 a +SDict begin 18.2 H.A end + -30 54778 a -30 54778 a +SDict begin [ /View [/XYZ H.V] /Dest (3245) cvn H.B /DEST pdfmark end + -30 54778 a -30 57103 +a +SDict begin H.S end + -30 57103 a -30 57103 a +SDict begin 18.2 H.A end + -30 57103 a -30 57103 a +SDict begin [ /View [/XYZ H.V] /Dest (3246) cvn H.B /DEST pdfmark end + -30 +57103 a -30 57103 a +SDict begin H.S end + -30 57103 a -30 57103 a +SDict begin 18.2 H.A end + -30 57103 +a -30 57103 a +SDict begin [ /View [/XYZ H.V] /Dest (table.10) cvn H.B /DEST pdfmark +end + -30 57103 a 1727 x FU(Owner)21686 b(u)-30 +60889 y(Group)21943 b(g)-30 62951 y(W)-124 b(orld)22067 +b(o)-30 65010 y(All)387 b(of)g(the)h(abo)-23 b(v)g(e)15920 +b(a)p Black -30 73792 a FR(114)p Black eop end +%%Page: 115 137 +TeXDict begin 115 136 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.115) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 32490 -1636 a FR(Chapter)386 b(9)h(F)-70 +b(ilesystem)387 b(Structur)-57 b(e)p Black -30 2504 a +SDict begin H.S end + +-30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3260) cvn H.B /DEST pdfmark end + -30 2504 +a 1107 x FU(T)-124 b(o)387 b(do)h(the)f(abo)-23 b(v)g(e,)387 +b(we)g(w)-15 b(ould)387 b(ha)-31 b(v)-23 b(e)387 b(to)g(use)g(se)-39 +b(v)-23 b(eral)387 b(command)g(lines:)-30 6773 y FJ(\045)1309 +6773 y +SDict begin H.S end + 1309 6773 a 1309 6773 a +SDict begin 14.56 H.A end + 1309 6773 a 1309 6773 +a +SDict begin [ /View [/XYZ H.V] /Dest (3263) cvn H.B /DEST pdfmark end + 1309 6773 a FH(chmod)743 b(a+rx)h(/tmp/example)-30 +6941 y +SDict begin H.S end + -30 6941 a -30 6941 a +SDict begin 14.56 H.A end + -30 6941 a -30 6941 a +SDict begin [ /View [/XYZ H.V] /Dest (3264) cvn H.B /DEST pdfmark end + -30 +6941 a 1443 x FJ(\045)1309 8384 y +SDict begin H.S end + 1309 8384 a 1309 8384 +a +SDict begin 14.56 H.A end + 1309 8384 a 1309 8384 a +SDict begin [ /View [/XYZ H.V] /Dest (3265) cvn H.B /DEST pdfmark end + 1309 8384 a FH(chmod)f(u+w)h(/tmp/example)-30 +8552 y +SDict begin H.S end + -30 8552 a -30 8552 a +SDict begin 14.56 H.A end + -30 8552 a -30 8552 a +SDict begin [ /View [/XYZ H.V] /Dest (3266) cvn H.B /DEST pdfmark end + -30 +8552 a 1444 x FJ(\045)1309 9996 y +SDict begin H.S end + 1309 9996 a 1309 9996 +a +SDict begin 14.56 H.A end + 1309 9996 a 1309 9996 a +SDict begin [ /View [/XYZ H.V] /Dest (3267) cvn H.B /DEST pdfmark end + 1309 9996 a FH(chmod)f(ug+s)h(/tmp/example) +-30 11714 y +SDict begin H.S end + -30 11714 a -30 11714 a +SDict begin 18.2 H.A end + -30 11714 a -30 11714 +a +SDict begin [ /View [/XYZ H.V] /Dest (3268) cvn H.B /DEST pdfmark end + -30 11714 a 1846 x FU(Some)424 b(people)g(prefer)h(the)f(letters)h(o) +-23 b(v)g(er)424 b(the)g(numbers.)g(Either)g(w)-15 b(ay)424 +b(will)g(result)g(in)h(the)f(same)-30 15575 y(set)387 +b(of)h(permissions.)-30 16686 y +SDict begin H.S end + -30 16686 a -30 16686 +a +SDict begin 18.2 H.A end + -30 16686 a -30 16686 a +SDict begin [ /View [/XYZ H.V] /Dest (3269) cvn H.B /DEST pdfmark end + -30 16686 a 1679 x FU(The)375 +b(octal)g(format)g(is)f(often)h(f)-15 b(aster)-62 b(,)375 +b(and)g(the)g(one)g(you)g(see)g(most)f(often)h(used)g(in)g(shell)f +(scripts.)-30 20379 y(Sometimes)359 b(the)g(letters)h(are)g(more)g(po) +-39 b(werful)360 b(ho)-39 b(we)g(v)-23 b(er)-85 b(.)360 +b(F)-23 b(or)359 b(e)-23 b(xample,)360 b(there')-85 b(s)360 +b(no)g(easy)f(w)-15 b(ay)-30 22394 y(to)462 b(change)g(one)g(group)g +(of)g(permissions)f(while)h(preserving)g(the)g(other)g(groups)f(on)h +(\002les)g(and)-30 24409 y(directories)387 b(when)g(using)g(the)g +(octal)g(format.)h(This)e(is)h(tri)-39 b(vial)387 b(with)g(the)g +(letters.)-30 26294 y +SDict begin H.S end + -30 26294 a -30 26294 a +SDict begin 14.56 H.A end + -30 26294 +a -30 26294 a +SDict begin [ /View [/XYZ H.V] /Dest (3270) cvn H.B /DEST pdfmark end + -30 26294 a -30 26294 a +SDict begin H.S end + -30 26294 a -30 +26294 a +SDict begin 14.56 H.A end + -30 26294 a -30 26294 a +SDict begin [ /View [/XYZ H.V] /Dest (3271) cvn H.B /DEST pdfmark end + -30 26294 a 1276 x FJ(\045)1309 +27570 y +SDict begin H.S end + 1309 27570 a 1309 27570 a +SDict begin 14.56 H.A end + 1309 27570 a 1309 27570 +a +SDict begin [ /View [/XYZ H.V] /Dest (3272) cvn H.B /DEST pdfmark end + 1309 27570 a FH(ls)744 b(-l)f(/tmp/)-30 29182 y FP(-rwxr-xr-x)2231 +b(1)743 b(alan)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example0) +-30 30794 y(-rwxr-x---)2231 b(1)743 b(alan)2975 b(users)g(0)744 +b(Apr)f(19)h(11:21)f(/tmp/example1)-30 32405 y(----r-xr-x)2231 +b(1)743 b(alan)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example2) +-30 32600 y +SDict begin H.S end + -30 32600 a -30 32600 a +SDict begin 14.56 H.A end + -30 32600 a -30 32600 +a +SDict begin [ /View [/XYZ H.V] /Dest (3273) cvn H.B /DEST pdfmark end + -30 32600 a 1417 x FJ(\045)1309 34017 y +SDict begin H.S end + 1309 34017 +a 1309 34017 a +SDict begin 14.56 H.A end + 1309 34017 a 1309 34017 a +SDict begin [ /View [/XYZ H.V] /Dest (3274) cvn H.B /DEST pdfmark end + 1309 34017 a +FH(chmod)g(g-rwx)h(/tmp/example?)-30 35629 y FP(-rwx---r-x)2231 +b(1)743 b(alan)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example0) +-30 37241 y(-rwx------)2231 b(1)743 b(alan)2975 b(users)g(0)744 +b(Apr)f(19)h(11:21)f(/tmp/example1)-30 38852 y(-------r-x)2231 +b(1)743 b(alan)2975 b(users)g(0)744 b(Apr)f(19)h(11:21)f(/tmp/example2) +-30 40597 y +SDict begin H.S end + -30 40597 a -30 40597 a +SDict begin 18.2 H.A end + -30 40597 a -30 40597 +a +SDict begin [ /View [/XYZ H.V] /Dest (3275) cvn H.B /DEST pdfmark end + -30 40597 a 1820 x FU(W)-124 b(e)339 b(mentioned)e(set)h(user)g(ID)h +(and)f(set)g(group)g(ID)g(permissions)f(in)h(se)-39 b(v)-23 +b(eral)338 b(places)h(abo)-23 b(v)g(e.)338 b(Y)-170 b(ou)-30 +44431 y(may)473 b(be)g(w)-15 b(ondering)472 b(what)h(this)g(is.)g +(Normally)g(when)g(you)g(run)g(a)g(program,)h(it)f(is)g(operating)-30 +46446 y(under)446 b(your)g(user)g(account.)h(That)f(is,)g(it)g(has)g +(all)g(the)g(permissions)f(that)h(you)g(as)g(a)h(user)f(ha)-31 +b(v)-23 b(e.)-30 48461 y(The)542 b(same)f(is)h(true)f(for)h(the)f +(group.)h(When)g(you)f(run)h(a)g(program,)f(it)h(e)-23 +b(x)g(ecutes)541 b(under)g(your)-30 50475 y(current)490 +b(group.)f(W)-62 b(ith)489 b(set)g(user)h(ID)f(permissions,)g(you)g +(can)h(force)g(the)f(program)g(to)g(al)-15 b(w)g(ays)-30 +52490 y(run)542 b(as)f(the)g(program)h(o)-39 b(wner)541 +b(\(such)h(as)22744 52490 y +SDict begin H.S end + 22744 52490 a 22744 52490 +a +SDict begin 18.2 H.A end + 22744 52490 a 22744 52490 a +SDict begin [ /View [/XYZ H.V] /Dest (3276) cvn H.B /DEST pdfmark end + 22744 52490 a FU(\223root\224\).)g(Set)f +(group)g(ID)h(is)f(the)h(same,)f(b)-31 b(ut)541 b(for)h(the)-30 +54505 y(group.)-30 55615 y +SDict begin H.S end + -30 55615 a -30 55615 a +SDict begin 18.2 H.A end + -30 +55615 a -30 55615 a +SDict begin [ /View [/XYZ H.V] /Dest (3277) cvn H.B /DEST pdfmark end + -30 55615 a 1679 x FU(Be)381 b(careful)g(with)f +(this,)g(set)h(user)g(ID)f(and)h(set)f(group)h(ID)g(programs)f(can)h +(open)f(major)g(security)-30 59309 y(holes)538 b(on)g(your)g(system.)g +(If)g(you)g(frequently)g(set)g(user)g(ID)g(programs)f(that)h(are)h(o) +-39 b(wned)538 b(by)51776 59309 y +SDict begin H.S end + 51776 59309 a 51776 +59309 a +SDict begin 18.2 H.A end + 51776 59309 a 51776 59309 a +SDict begin [ /View [/XYZ H.V] /Dest (3278) cvn H.B /DEST pdfmark end + 51776 59309 a -30 +61324 a +SDict begin H.S end + -30 61324 a -30 61324 a +SDict begin 18.2 H.A end + -30 61324 a -30 61324 +a +SDict begin [ /View [/XYZ H.V] /Dest (3280) cvn H.B /DEST pdfmark end + -30 61324 a FP(root)p FU(,)487 b(you)f(are)i(allo)-39 +b(wing)486 b(an)-23 b(yone)486 b(to)h(run)f(that)h(program)f(and)h(run) +g(it)f(as)41020 61324 y +SDict begin H.S end + 41020 61324 a 41020 61324 a +SDict begin 18.2 H.A end + 41020 +61324 a 41020 61324 a +SDict begin [ /View [/XYZ H.V] /Dest (3281) cvn H.B /DEST pdfmark end + 41020 61324 a FP(root)p FU(.)h(Since)48800 +61324 y +SDict begin H.S end + 48800 61324 a 48800 61324 a +SDict begin 18.2 H.A end + 48800 61324 a 48800 +61324 a +SDict begin [ /View [/XYZ H.V] /Dest (3282) cvn H.B /DEST pdfmark end + 48800 61324 a FP(root)-30 63338 y FU(has)395 +b(no)h(restrictions)e(on)i(the)f(system,)g(you)g(can)h(see)g(ho)-39 +b(w)395 b(this)g(w)-15 b(ould)394 b(pose)i(a)f(major)g(security)-30 +65353 y(problem.)432 b(In)g(short,)f(it')-85 b(s)431 +b(not)h(bad)g(to)f(use)h(set)f(user)h(ID)g(and)g(set)f(group)h(ID)g +(permissions,)f(just)-30 67368 y(use)387 b(common)g(sense.)-30 +68158 y +SDict begin H.S end + -30 68158 a -30 68158 a +SDict begin 18.2 H.A end + -30 68158 a -30 68158 +a +SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-LINKS) cvn +H.B /DEST pdfmark end + -30 68158 a Black 49451 73792 a FR(115)p Black eop +end +%%Page: 116 138 +TeXDict begin 116 137 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.116) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(9)g(F)-70 b(ilesystem)387 +b(Structur)-57 b(e)p Black -30 4132 a FL(9.3)620 b(Links)-30 +4160 y +SDict begin H.S end + -30 4160 a -30 4160 a +SDict begin 18.2 H.A end + -30 4160 a -30 4160 a +SDict begin [ /View [/XYZ H.V] /Dest (3285) cvn H.B /DEST pdfmark end + -30 +4160 a -30 5276 a +SDict begin H.S end + -30 5276 a -30 5276 a +SDict begin 18.2 H.A end + -30 5276 a -30 +5276 a +SDict begin [ /View [/XYZ H.V] /Dest (3287) cvn H.B /DEST pdfmark end + -30 5276 a 1987 x FU(Links)545 b(are)g(pointers)g(between)g +(\002les.)g(W)-62 b(ith)544 b(links,)h(you)g(can)h(ha)-31 +b(v)-23 b(e)544 b(\002les)h(e)-23 b(xist)545 b(in)g(man)-23 +b(y)544 b(lo-)-30 9277 y(cations)521 b(and)g(be)h(accessible)f(by)g +(man)-23 b(y)521 b(names.)g(There)h(are)f(tw)-15 b(o)521 +b(types)g(of)g(links:)g(hard)g(and)-30 11292 y(soft.)-30 +12082 y +SDict begin H.S end + -30 12082 a -30 12082 a +SDict begin 18.2 H.A end + -30 12082 a -30 12082 +a +SDict begin [ /View [/XYZ H.V] /Dest (3288) cvn H.B /DEST pdfmark end + -30 12082 a 1999 x FU(Hard)349 b(links)g(are)g(names)g(for)h(a)f +(particular)g(\002le.)g(The)-23 b(y)349 b(can)g(only)g(e)-23 +b(xist)348 b(within)h(a)g(single)g(\002lesys-)-30 16096 +y(tem)470 b(and)g(are)g(only)f(remo)-23 b(v)g(ed)469 +b(when)h(the)g(real)g(name)f(is)h(remo)-23 b(v)g(ed)469 +b(from)h(the)g(system.)f(These)-30 18111 y(are)388 b(useful)f(in)g +(some)g(cases,)h(b)-31 b(ut)387 b(man)-23 b(y)386 b(users)h(\002nd)g +(the)g(soft)g(link)g(to)g(be)h(more)f(v)-23 b(ersatile.)-30 +18446 y +SDict begin H.S end + -30 18446 a -30 18446 a +SDict begin 18.2 H.A end + -30 18446 a -30 18446 +a +SDict begin [ /View [/XYZ H.V] /Dest (3289) cvn H.B /DEST pdfmark end + -30 18446 a -30 19221 a +SDict begin H.S end + -30 19221 a -30 19221 a +SDict begin 18.2 H.A end + -30 +19221 a -30 19221 a +SDict begin [ /View [/XYZ H.V] /Dest (3291) cvn H.B /DEST pdfmark end + -30 19221 a 1679 x FU(The)362 b(soft)f(link,)h +(also)f(called)g(a)h(symbolic)f(link,)h(can)f(point)g(to)h(a)g(\002le)f +(outside)g(of)h(its)f(\002lesystem.)-30 22915 y(It)309 +b(is)f(actually)h(a)g(small)f(\002le)g(containing)g(the)h(information)f +(it)g(needs.)h(Y)-170 b(ou)308 b(can)h(add)g(and)g(remo)-23 +b(v)g(e)-30 24930 y(soft)502 b(links)g(without)g(af)-39 +b(fecting)502 b(the)g(actual)h(\002le.)f(And)g(since)h(a)f(symbolic)g +(link)g(is)g(actually)g(a)-30 26944 y(small)585 b(\002le)f(containing)h +(its)g(o)-39 b(wn)585 b(information,)f(the)-23 b(y)585 +b(can)g(e)-39 b(v)-23 b(en)586 b(point)e(at)h(a)h(directory)-101 +b(.)585 b(It')-85 b(s)-30 28959 y(rather)388 b(common)e(to)h(ha)-31 +b(v)-23 b(e)14635 28959 y +SDict begin H.S end + 14635 28959 a 14635 28959 a +SDict begin 18.2 H.A end + +14635 28959 a 14635 28959 a +SDict begin [ /View [/XYZ H.V] /Dest (3292) cvn H.B /DEST pdfmark end + 14635 28959 a FQ(/var/tmp)383 +b FU(actually)j(be)i(a)f(symbolic)g(link)f(to)38715 28959 +y +SDict begin H.S end + 38715 28959 a 38715 28959 a +SDict begin 18.2 H.A end + 38715 28959 a 38715 28959 +a +SDict begin [ /View [/XYZ H.V] /Dest (3293) cvn H.B /DEST pdfmark end + 38715 28959 a FQ(/tmp)f FU(for)j(e)-23 b(xample.)-30 +30069 y +SDict begin H.S end + -30 30069 a -30 30069 a +SDict begin 18.2 H.A end + -30 30069 a -30 30069 +a +SDict begin [ /View [/XYZ H.V] /Dest (3294) cvn H.B /DEST pdfmark end + -30 30069 a 1680 x FU(Links)544 b(do)g(not)f(ha)-31 +b(v)-23 b(e)544 b(their)g(o)-39 b(wn)544 b(set)g(of)g(permissions)f(or) +h(o)-39 b(wnerships,)544 b(b)-31 b(ut)544 b(instead)f(re\003ect)-30 +33763 y(those)448 b(of)h(the)g(\002le)f(the)-23 b(y)449 +b(point)f(to.)h(Slackw)-15 b(are)448 b(uses)g(mostly)g(soft)h(links.)f +(Here)h(is)g(a)g(common)-30 35778 y(e)-23 b(xample:)-30 +37663 y +SDict begin H.S end + -30 37663 a -30 37663 a +SDict begin 14.56 H.A end + -30 37663 a -30 37663 +a +SDict begin [ /View [/XYZ H.V] /Dest (3295) cvn H.B /DEST pdfmark end + -30 37663 a -30 37663 a +SDict begin H.S end + -30 37663 a -30 37663 a +SDict begin 14.56 H.A end + -30 +37663 a -30 37663 a +SDict begin [ /View [/XYZ H.V] /Dest (3296) cvn H.B /DEST pdfmark end + -30 37663 a 1276 x FJ(\045)1309 38939 +y +SDict begin H.S end + 1309 38939 a 1309 38939 a +SDict begin 14.56 H.A end + 1309 38939 a 1309 38939 a +SDict begin [ /View [/XYZ H.V] /Dest (3297) cvn H.B /DEST pdfmark end + +1309 38939 a FH(ls)744 b(-l)f(/bin/sh)-30 40551 y FP(lrwxrwxrwx)2231 +b(1)743 b(root)3719 b(root)g(4)744 b(Apr)1487 b(6)744 +b(12:34)f(/bin/sh)g(->)h(bash)-30 42295 y +SDict begin H.S end + -30 42295 a +-30 42295 a +SDict begin 18.2 H.A end + -30 42295 a -30 42295 a +SDict begin [ /View [/XYZ H.V] /Dest (3298) cvn H.B /DEST pdfmark end + -30 42295 a 1821 +x FU(The)2917 44116 y +SDict begin H.S end + 2917 44116 a 2917 44116 a +SDict begin 18.2 H.A end + 2917 +44116 a 2917 44116 a +SDict begin [ /View [/XYZ H.V] /Dest (3299) cvn H.B /DEST pdfmark end + 2917 44116 a FP(sh)537 b FU(shell)f(under)h +(Slackw)-15 b(are)536 b(is)h(actually)26462 44116 y +SDict begin H.S end + 26462 +44116 a 26462 44116 a +SDict begin 18.2 H.A end + 26462 44116 a 26462 44116 a +SDict begin [ /View [/XYZ H.V] /Dest (3300) cvn H.B /DEST pdfmark end + 26462 +44116 a FP(bash)p FU(.)g(Remo)-23 b(ving)536 b(links)g(is)h(done)f +(using)49901 44116 y +SDict begin H.S end + 49901 44116 a 49901 44116 a +SDict begin 18.2 H.A end + 49901 +44116 a 49901 44116 a +SDict begin [ /View [/XYZ H.V] /Dest (3301) cvn H.B /DEST pdfmark end + 49901 44116 a FP(rm)p FU(.)-30 +46130 y(The)2737 46130 y +SDict begin H.S end + 2737 46130 a 2737 46130 a +SDict begin 18.2 H.A end + 2737 +46130 a 2737 46130 a +SDict begin [ /View [/XYZ H.V] /Dest (3302) cvn H.B /DEST pdfmark end + 2737 46130 a FP(ln)356 b FU(command)g(is)h(used)f +(to)g(create)h(links.)g(These)f(commands)g(will)g(be)h(discussed)f(in)g +(more)-30 48145 y(depth)387 b(in)p 0 TeXcolorgray 5394 +48145 a +SDict begin H.S end + 5394 48145 a FU(Chapter)g(10)12238 48145 y +SDict begin 18.2 H.L end + 12238 +48145 a 12238 48145 a +SDict begin [ /Subtype /Link /Dest (FILE-COMMANDS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 12238 48145 a Black FU(.)-30 49255 +y +SDict begin H.S end + -30 49255 a -30 49255 a +SDict begin 18.2 H.A end + -30 49255 a -30 49255 a +SDict begin [ /View [/XYZ H.V] /Dest (3304) cvn H.B /DEST pdfmark end + -30 +49255 a 1679 x FU(It')-85 b(s)453 b(v)-23 b(ery)453 b(important)f(to)h +(be)g(careful)g(about)g(symlinks)f(in)h(particular)-85 +b(.)453 b(Once,)g(I)h(w)-15 b(as)452 b(w)-15 b(orking)-30 +52949 y(on)426 b(a)g(machine)g(that)f(w)-15 b(as)426 +b(consistently)e(f)-15 b(ailing)425 b(to)h(back-up)g(to)f(tape)h(each)g +(night.)g(T)-124 b(w)-15 b(o)425 b(sym-)-30 54964 y(links)500 +b(had)g(been)g(made)g(to)g(directories)g(beneath)f(each)i(other)-85 +b(.)500 b(The)g(back-up)g(softw)-15 b(are)500 b(k)-15 +b(ept)-30 56978 y(appending)468 b(those)f(same)h(directories)g(to)g +(the)g(tape)h(until)e(it)h(w)-15 b(as)468 b(out)g(of)g(space.)h +(Normally)-101 b(,)468 b(a)-30 58993 y(set)382 b(of)g(checks)f(will)h +(pre)-39 b(v)-23 b(ent)381 b(creating)h(a)g(symlink)f(in)g(this)h +(situation,)f(b)-31 b(ut)381 b(ours)h(w)-15 b(as)381 +b(a)h(special)-30 61008 y(case.)-30 61798 y +SDict begin H.S end + -30 61798 +a -30 61798 a +SDict begin 18.2 H.A end + -30 61798 a -30 61798 a +SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-MOUNTING) +cvn H.B /DEST pdfmark end + -30 61798 a Black +11994 x FR(116)p Black eop end +%%Page: 117 139 +TeXDict begin 117 138 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.117) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 32490 -1636 a FR(Chapter)386 b(9)h(F)-70 +b(ilesystem)387 b(Structur)-57 b(e)p Black -30 4132 a +FL(9.4)620 b(Mounting)f(De)-33 b(vices)-30 4629 y +SDict begin H.S end + -30 +4629 a -30 4629 a +SDict begin 18.2 H.A end + -30 4629 a -30 4629 a +SDict begin [ /View [/XYZ H.V] /Dest (3307) cvn H.B /DEST pdfmark end + -30 4629 a -30 +4629 a +SDict begin H.S end + -30 4629 a -30 4629 a +SDict begin 18.2 H.A end + -30 4629 a -30 4629 a +SDict begin [ /View [/XYZ H.V] /Dest (3310) cvn H.B /DEST pdfmark end + -30 +4629 a -30 5744 a +SDict begin H.S end + -30 5744 a -30 5744 a +SDict begin 18.2 H.A end + -30 5744 a -30 +5744 a +SDict begin [ /View [/XYZ H.V] /Dest (3312) cvn H.B /DEST pdfmark end + -30 5744 a 1519 x FU(As)328 b(w)-15 b(as)328 b(pre)-39 +b(viously)328 b(discussed)f(in)p 0 TeXcolorgray 19378 +7263 a +SDict begin H.S end + 19378 7263 a FU(Section)387 b(4.1.1)27514 7263 +y +SDict begin 18.2 H.L end + 27514 7263 a 27514 7263 a +SDict begin [ /Subtype /Link /Dest (SYSTEM-CONFIGURATION-LAYOUT) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 27514 7263 a Black FU(,)329 +b(all)f(the)g(dri)-39 b(v)-23 b(es)328 b(and)h(de)-39 +b(vices)328 b(in)g(your)g(com-)-30 9277 y(puter)428 b(are)h(one)f(big)g +(\002lesystem.)f(V)-172 b(arious)428 b(hard)g(dri)-39 +b(v)-23 b(e)428 b(partitions,)f(CD-R)-62 b(OMs,)428 b(and)g(\003oppies) +-30 11292 y(are)345 b(all)f(placed)h(in)f(the)h(same)f(tree.)h(In)g +(order)f(to)h(attach)f(these)h(dri)-39 b(v)-23 b(es)344 +b(to)g(the)h(\002lesystem)e(so)h(that)-30 13307 y(you)387 +b(can)h(access)f(them,)g(you)g(ha)-31 b(v)-23 b(e)388 +b(to)f(use)g(the)25739 13307 y +SDict begin H.S end + 25739 13307 a 25739 13307 +a +SDict begin 18.2 H.A end + 25739 13307 a 25739 13307 a +SDict begin [ /View [/XYZ H.V] /Dest (3314) cvn H.B /DEST pdfmark end + 25739 13307 a FP(mount)p +FU(\(1\))g(and)34278 13307 y +SDict begin H.S end + 34278 13307 a 34278 13307 +a +SDict begin 18.2 H.A end + 34278 13307 a 34278 13307 a +SDict begin [ /View [/XYZ H.V] /Dest (3315) cvn H.B /DEST pdfmark end + 34278 13307 a FP(umount)p +FU(\(1\))g(commands.)-30 14417 y +SDict begin H.S end + -30 14417 a -30 14417 +a +SDict begin 18.2 H.A end + -30 14417 a -30 14417 a +SDict begin [ /View [/XYZ H.V] /Dest (3316) cvn H.B /DEST pdfmark end + -30 14417 a 1679 x FU(Some)475 +b(de)-39 b(vices)475 b(are)h(automatically)e(mounted)h(when)g(you)g +(boot)g(up)g(your)g(computer)-85 b(.)475 b(These)-30 +18111 y(are)371 b(listed)f(in)g(the)9802 18111 y +SDict begin H.S end + 9802 +18111 a 9802 18111 a +SDict begin 18.2 H.A end + 9802 18111 a 9802 18111 a +SDict begin [ /View [/XYZ H.V] /Dest (3317) cvn H.B /DEST pdfmark end + 9802 18111 +a FQ(/etc/fstab)364 b FU(\002le.)371 b(An)-23 b(ything)369 +b(that)h(you)g(w)-15 b(ant)370 b(to)g(be)h(mounted)e(automatically)-30 +20125 y(gets)494 b(an)g(entry)f(in)h(that)f(\002le.)h(F)-23 +b(or)494 b(other)f(de)-39 b(vices,)494 b(you')-15 b(ll)493 +b(ha)-31 b(v)-23 b(e)494 b(to)f(issue)h(a)g(command)f(e)-39 +b(v)-23 b(ery)-30 22140 y(time)387 b(you)g(w)-15 b(ant)387 +b(to)g(use)g(the)g(de)-39 b(vice.)-30 22476 y +SDict begin H.S end + -30 22476 +a -30 22476 a +SDict begin 18.2 H.A end + -30 22476 a -30 22476 a +SDict begin [ /View [/XYZ H.V] /Dest (3318) cvn H.B /DEST pdfmark end + -30 22476 a 5026 +x FA(fstab)-30 28432 y +SDict begin H.S end + -30 28432 a -30 28432 a +SDict begin 18.2 H.A end + -30 28432 +a -30 28432 a +SDict begin [ /View [/XYZ H.V] /Dest (3321) cvn H.B /DEST pdfmark end + -30 28432 a 2015 x FU(Let')-85 b(s)387 +b(look)g(at)g(an)h(e)-23 b(xample)386 b(of)i(the)19531 +30447 y +SDict begin H.S end + 19531 30447 a 19531 30447 a +SDict begin 18.2 H.A end + 19531 30447 a 19531 +30447 a +SDict begin [ /View [/XYZ H.V] /Dest (3322) cvn H.B /DEST pdfmark end + 19531 30447 a FQ(/etc/fstab)381 b FU(\002le:)-30 +32332 y +SDict begin H.S end + -30 32332 a -30 32332 a +SDict begin 14.56 H.A end + -30 32332 a -30 32332 +a +SDict begin [ /View [/XYZ H.V] /Dest (3323) cvn H.B /DEST pdfmark end + -30 32332 a -30 32332 a +SDict begin H.S end + -30 32332 a -30 32332 a +SDict begin 14.56 H.A end + -30 +32332 a -30 32332 a +SDict begin [ /View [/XYZ H.V] /Dest (3324) cvn H.B /DEST pdfmark end + -30 32332 a 1276 x FJ(\045)1309 33608 +y +SDict begin H.S end + 1309 33608 a 1309 33608 a +SDict begin 14.56 H.A end + 1309 33608 a 1309 33608 a +SDict begin [ /View [/XYZ H.V] /Dest (3325) cvn H.B /DEST pdfmark end + +1309 33608 a FH(cat)744 b(/etc/fstab)-30 35220 y FP(/dev/sda1)5206 +b(/)11158 b(ext2)5951 b(defaults)f(1)2231 b(1)-30 36832 +y(/dev/sda2)5206 b(/usr/local)4462 b(ext2)5951 b(defaults)f(1)2231 +b(1)-30 38443 y(/dev/sda4)5206 b(/home)8182 b(ext2)5951 +b(defaults)f(1)2231 b(1)-30 40055 y(/dev/sdb1)5206 b(swap)8926 +b(swap)5951 b(defaults)f(0)2231 b(0)-30 41667 y(/dev/sdb3)5206 +b(/export)6694 b(ext2)5951 b(defaults)f(1)2231 b(1)-30 +43279 y(none)8926 b(/dev/pts)5950 b(devpts)4463 b(gid=5,mode=620)1486 +b(0)2231 b(0)-30 44890 y(none)8926 b(/proc)8182 b(proc)5951 +b(defaults)f(0)2231 b(0)-30 46502 y(/dev/fd0)5950 b(/mnt)8926 +b(ext2)5951 b(defaults)f(0)2231 b(0)-30 48114 y(/dev/cdrom)4462 +b(/mnt/cdrom)g(iso9660)3719 b(ro)10414 b(0)2231 b(0)-30 +48212 y +SDict begin H.S end + -30 48212 a -30 48212 a +SDict begin 18.2 H.A end + -30 48212 a -30 48212 +a +SDict begin [ /View [/XYZ H.V] /Dest (3326) cvn H.B /DEST pdfmark end + -30 48212 a -30 49762 a +SDict begin H.S end + -30 49762 a -30 49762 a +SDict begin 18.2 H.A end + -30 +49762 a -30 49762 a +SDict begin [ /View [/XYZ H.V] /Dest (3328) cvn H.B /DEST pdfmark end + -30 49762 a 1916 x FU(The)611 b(\002rst)g(column)g +(is)g(the)g(de)-39 b(vice)612 b(name.)f(In)h(this)f(case,)h(the)f(de) +-39 b(vices)611 b(are)h(\002)-39 b(v)-23 b(e)611 b(partitions)-30 +53693 y(spread)521 b(out)g(across)g(tw)-15 b(o)520 b(SCSI)g(hard)h(dri) +-39 b(v)-23 b(es,)521 b(tw)-15 b(o)521 b(special)f(\002lesystems)g +(that)h(don')-28 b(t)521 b(need)g(a)-30 55708 y(de)-39 +b(vice,)388 b(a)g(\003opp)-15 b(y)-101 b(,)387 b(and)g(a)h(CD-R)-62 +b(OM)386 b(dri)-39 b(v)-23 b(e.)388 b(The)f(second)g(column)g(is)g +(where)h(the)f(de)-39 b(vice)387 b(will)-30 57722 y(be)311 +b(mounted.)g(This)f(needs)h(to)f(be)h(a)g(directory)g(name,)g(e)-23 +b(xcept)311 b(in)f(the)h(case)g(of)g(a)g(sw)-15 b(ap)310 +b(partition.)-30 59737 y(The)374 b(third)f(column)g(is)h(the)g +(\002lesystem)e(type)i(of)g(the)g(de)-39 b(vice.)374 +b(F)-23 b(or)373 b(normal)h(Linux)f(\002lesystems,)-30 +61752 y(this)504 b(will)g(be)7597 61752 y +SDict begin H.S end + 7597 61752 +a 7597 61752 a +SDict begin 18.2 H.A end + 7597 61752 a 7597 61752 a +SDict begin [ /View [/XYZ H.V] /Dest (3329) cvn H.B /DEST pdfmark end + 7597 61752 a +FP(ext2)g FU(\(second)g(e)-23 b(xtended)504 b(\002lesystem\).)g(CD-R) +-62 b(OM)503 b(dri)-39 b(v)-23 b(es)504 b(are)43439 61752 +y +SDict begin H.S end + 43439 61752 a 43439 61752 a +SDict begin 18.2 H.A end + 43439 61752 a 43439 61752 +a +SDict begin [ /View [/XYZ H.V] /Dest (3330) cvn H.B /DEST pdfmark end + 43439 61752 a FP(iso9660)p FU(,)g(and)-30 63766 y(W)-62 +b(indo)-39 b(ws-based)387 b(de)-39 b(vices)387 b(will)g(either)g(be) +23803 63766 y +SDict begin H.S end + 23803 63766 a 23803 63766 a +SDict begin 18.2 H.A end + 23803 63766 +a 23803 63766 a +SDict begin [ /View [/XYZ H.V] /Dest (3331) cvn H.B /DEST pdfmark end + 23803 63766 a FP(msdos)g FU(or)29589 +63766 y +SDict begin H.S end + 29589 63766 a 29589 63766 a +SDict begin 18.2 H.A end + 29589 63766 a 29589 +63766 a +SDict begin [ /View [/XYZ H.V] /Dest (3332) cvn H.B /DEST pdfmark end + 29589 63766 a FP(vfat)p FU(.)p Black 49394 73792 +a FR(117)p Black eop end +%%Page: 118 140 +TeXDict begin 118 139 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.118) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(9)g(F)-70 b(ilesystem)387 +b(Structur)-57 b(e)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3333) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(The)469 +b(fourth)f(column)g(is)g(a)h(listing)f(of)h(options)e(that)i(apply)f +(to)h(the)f(mounted)g(\002lesystem.)g(de-)-30 5626 y(f)-15 +b(aults)428 b(is)g(\002ne)h(for)g(just)f(about)g(e)-39 +b(v)-23 b(erything.)429 b(Ho)-39 b(we)g(v)-23 b(er)-62 +b(,)429 b(read-only)g(de)-39 b(vices)428 b(should)h(be)f(gi)-39 +b(v)-23 b(en)-30 7640 y(the)2245 7640 y +SDict begin H.S end + 2245 7640 a 2245 +7640 a +SDict begin 18.2 H.A end + 2245 7640 a 2245 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (3334) cvn H.B /DEST pdfmark end + 2245 7640 a FP(ro)380 +b FU(\003ag.)h(There)g(are)g(a)g(lot)f(of)h(options)e(that)i(can)f(be)h +(used.)g(Check)f(the)40481 7640 y +SDict begin H.S end + 40481 7640 a 40481 +7640 a +SDict begin 18.2 H.A end + 40481 7640 a 40481 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (3335) cvn H.B /DEST pdfmark end + 40481 7640 a FQ(fstab)p +FU(\(5\))e(man)i(page)-30 9655 y(for)430 b(more)g(information.)f(The)h +(last)f(tw)-15 b(o)429 b(columns)g(are)i(used)e(by)35373 +9655 y +SDict begin H.S end + 35373 9655 a 35373 9655 a +SDict begin 18.2 H.A end + 35373 9655 a 35373 9655 +a +SDict begin [ /View [/XYZ H.V] /Dest (3336) cvn H.B /DEST pdfmark end + 35373 9655 a FP(fsck)g FU(and)h(other)g(commands)-30 +11670 y(that)568 b(need)g(to)f(manipulate)g(the)h(de)-39 +b(vices.)568 b(Check)g(the)g(man)g(page)f(for)h(that)g(information)f +(as)-30 13684 y(well.)-30 14475 y +SDict begin H.S end + -30 14475 a -30 14475 +a +SDict begin 18.2 H.A end + -30 14475 a -30 14475 a +SDict begin [ /View [/XYZ H.V] /Dest (3337) cvn H.B /DEST pdfmark end + -30 14475 a 1999 x FU(When)440 +b(you)g(install)f(Slackw)-15 b(are)439 b(Linux,)g(the)h(setup)g +(program)f(will)h(b)-31 b(uild)439 b(much)g(of)h(the)48644 +16474 y +SDict begin H.S end + 48644 16474 a 48644 16474 a +SDict begin 18.2 H.A end + 48644 16474 a 48644 +16474 a +SDict begin [ /View [/XYZ H.V] /Dest (3338) cvn H.B /DEST pdfmark end + 48644 16474 a FQ(fstab)-30 18489 y FU(\002le.)-30 +19279 y +SDict begin H.S end + -30 19279 a -30 19279 a +SDict begin 18.2 H.A end + -30 19279 a -30 19279 +a +SDict begin [ /View [/XYZ H.V] /Dest (3339) cvn H.B /DEST pdfmark end + -30 19279 a 5502 x FF(mount)685 b FG(and)517 b FF(umount)-30 +25734 y +SDict begin H.S end + -30 25734 a -30 25734 a +SDict begin 18.2 H.A end + -30 25734 a -30 25734 +a +SDict begin [ /View [/XYZ H.V] /Dest (3343) cvn H.B /DEST pdfmark end + -30 25734 a 1991 x FU(Attaching)c(another)h(de)-39 +b(vice)514 b(to)f(your)h(\002lesystem)e(is)i(easy)-101 +b(.)514 b(All)g(you)f(ha)-31 b(v)-23 b(e)514 b(to)f(do)h(is)f(use)h +(the)-30 29740 y +SDict begin H.S end + -30 29740 a -30 29740 a +SDict begin 18.2 H.A end + -30 29740 a +-30 29740 a +SDict begin [ /View [/XYZ H.V] /Dest (3344) cvn H.B /DEST pdfmark end + -30 29740 a FP(mount)372 b FU(command,)g(along)g(with)h(a)f +(fe)-39 b(w)373 b(options.)f(Using)30995 29740 y +SDict begin H.S end + 30995 +29740 a 30995 29740 a +SDict begin 18.2 H.A end + 30995 29740 a 30995 29740 a +SDict begin [ /View [/XYZ H.V] /Dest (3345) cvn H.B /DEST pdfmark end + 30995 +29740 a FP(mount)g FU(can)h(simpli\002ed)e(if)h(the)h(de)-39 +b(vice)-30 31754 y(has)407 b(an)h(entry)f(in)g(the)11820 +31754 y +SDict begin H.S end + 11820 31754 a 11820 31754 a +SDict begin 18.2 H.A end + 11820 31754 a 11820 +31754 a +SDict begin [ /View [/XYZ H.V] /Dest (3346) cvn H.B /DEST pdfmark end + 11820 31754 a FQ(/etc/fstab)402 b FU(\002le.)407 +b(F)-23 b(or)407 b(e)-23 b(xample,)407 b(let')-85 b(s)407 +b(say)g(that)g(I)h(w)-15 b(anted)406 b(to)i(mount)e(my)-30 +33769 y(CD-R)-62 b(OM)496 b(dri)-39 b(v)-23 b(e)497 b(and)g(that)g(my) +18259 33769 y +SDict begin H.S end + 18259 33769 a 18259 33769 a +SDict begin 18.2 H.A end + 18259 33769 +a 18259 33769 a +SDict begin [ /View [/XYZ H.V] /Dest (3347) cvn H.B /DEST pdfmark end + 18259 33769 a FP(fstab)g FU(\002le)g(look)-15 +b(ed)496 b(lik)-15 b(e)497 b(the)g(e)-23 b(xample)496 +b(from)h(the)g(pre)-39 b(vious)-30 35784 y(section.)387 +b(I)h(w)-15 b(ould)386 b(call)12910 35784 y +SDict begin H.S end + 12910 35784 +a 12910 35784 a +SDict begin 18.2 H.A end + 12910 35784 a 12910 35784 a +SDict begin [ /View [/XYZ H.V] /Dest (3348) cvn H.B /DEST pdfmark end + 12910 35784 +a FP(mount)h FU(lik)-15 b(e)387 b(so:)-30 37360 y +SDict begin H.S end + -30 +37360 a -30 37360 a +SDict begin 14.56 H.A end + -30 37360 a -30 37360 a +SDict begin [ /View [/XYZ H.V] /Dest (3349) cvn H.B /DEST pdfmark end + -30 37360 +a -30 37360 a +SDict begin H.S end + -30 37360 a -30 37360 a +SDict begin 14.56 H.A end + -30 37360 a -30 +37360 a +SDict begin [ /View [/XYZ H.V] /Dest (3350) cvn H.B /DEST pdfmark end + -30 37360 a 1585 x FJ(\045)1309 38945 y +SDict begin H.S end + 1309 +38945 a 1309 38945 a +SDict begin 14.56 H.A end + 1309 38945 a 1309 38945 a +SDict begin [ /View [/XYZ H.V] /Dest (3351) cvn H.B /DEST pdfmark end + 1309 38945 +a FH(mount)743 b(/cdrom)-30 40586 y +SDict begin H.S end + -30 40586 a -30 40586 +a +SDict begin 18.2 H.A end + -30 40586 a -30 40586 a +SDict begin [ /View [/XYZ H.V] /Dest (3352) cvn H.B /DEST pdfmark end + -30 40586 a 1924 x FU(Since)471 +b(there)g(is)g(an)g(entry)g(in)16226 42510 y +SDict begin H.S end + 16226 42510 +a 16226 42510 a +SDict begin 18.2 H.A end + 16226 42510 a 16226 42510 a +SDict begin [ /View [/XYZ H.V] /Dest (3353) cvn H.B /DEST pdfmark end + 16226 42510 +a FQ(fstab)e FU(for)i(that)g(mount)f(point,)33381 42510 +y +SDict begin H.S end + 33381 42510 a 33381 42510 a +SDict begin 18.2 H.A end + 33381 42510 a 33381 42510 +a +SDict begin [ /View [/XYZ H.V] /Dest (3354) cvn H.B /DEST pdfmark end + 33381 42510 a FP(mount)h FU(kno)-39 b(ws)471 b(what)g(options)f(to) +-30 44524 y(use.)422 b(If)g(there)f(w)-15 b(asn')-28 +b(t)421 b(an)h(entry)f(for)g(that)h(de)-39 b(vice,)422 +b(I)f(w)-15 b(ould)421 b(ha)-31 b(v)-23 b(e)421 b(to)g(use)h(se)-39 +b(v)-23 b(eral)421 b(options)g(for)-30 46539 y +SDict begin H.S end + -30 46539 +a -30 46539 a +SDict begin 18.2 H.A end + -30 46539 a -30 46539 a +SDict begin [ /View [/XYZ H.V] /Dest (3355) cvn H.B /DEST pdfmark end + -30 46539 a FP(mount)p +FU(:)-30 48115 y +SDict begin H.S end + -30 48115 a -30 48115 a +SDict begin 14.56 H.A end + -30 48115 a +-30 48115 a +SDict begin [ /View [/XYZ H.V] /Dest (3356) cvn H.B /DEST pdfmark end + -30 48115 a -30 48115 a +SDict begin H.S end + -30 48115 a -30 48115 +a +SDict begin 14.56 H.A end + -30 48115 a -30 48115 a +SDict begin [ /View [/XYZ H.V] /Dest (3357) cvn H.B /DEST pdfmark end + -30 48115 a 1585 x FJ(\045)1309 +49700 y +SDict begin H.S end + 1309 49700 a 1309 49700 a +SDict begin 14.56 H.A end + 1309 49700 a 1309 49700 +a +SDict begin [ /View [/XYZ H.V] /Dest (3358) cvn H.B /DEST pdfmark end + 1309 49700 a FH(mount)743 b(-t)h(iso9660)f(-o)h(ro)f(/dev/cdrom)g +(/cdrom)-30 51341 y +SDict begin H.S end + -30 51341 a -30 51341 a +SDict begin 18.2 H.A end + -30 51341 +a -30 51341 a +SDict begin [ /View [/XYZ H.V] /Dest (3359) cvn H.B /DEST pdfmark end + -30 51341 a 1924 x FU(That)303 b(command)f(line)g +(includes)g(the)g(same)h(information)f(as)g(the)h(e)-23 +b(xample)40249 53265 y +SDict begin H.S end + 40249 53265 a 40249 53265 a +SDict begin 18.2 H.A end + 40249 +53265 a 40249 53265 a +SDict begin [ /View [/XYZ H.V] /Dest (3360) cvn H.B /DEST pdfmark end + 40249 53265 a FQ(fstab)299 b FU(did,)k(b)-31 +b(ut)303 b(we')-15 b(ll)-30 55280 y(go)457 b(o)-23 b(v)g(er)457 +b(all)f(the)h(parts)g(an)-23 b(yw)-15 b(ays.)457 b(The)22065 +55280 y +SDict begin H.S end + 22065 55280 a 22065 55280 a +SDict begin 18.2 H.A end + 22065 55280 a 22065 +55280 a +SDict begin [ /View [/XYZ H.V] /Dest (3361) cvn H.B /DEST pdfmark end + 22065 55280 a FP(-t)743 b(iso9660)456 b FU(is)h(the)g +(\002lesystem)f(type)h(of)g(the)g(de)-39 b(vice)-30 57294 +y(to)459 b(mount.)f(In)h(this)f(case,)i(it)e(w)-15 b(ould)458 +b(be)h(the)g(iso9660)f(\002lesystem)f(which)i(is)f(what)h(CD-R)-62 +b(OM)-30 59309 y(dri)-39 b(v)-23 b(es)501 b(most)g(commonly)f(use.)i +(The)20710 59309 y +SDict begin H.S end + 20710 59309 a 20710 59309 a +SDict begin 18.2 H.A end + 20710 +59309 a 20710 59309 a +SDict begin [ /View [/XYZ H.V] /Dest (3362) cvn H.B /DEST pdfmark end + 20710 59309 a FP(-o)744 b(ro)501 +b FU(tells)g(mount)f(to)h(mount)g(the)g(de)-39 b(vice)502 +b(read-only)-101 b(.)-30 61324 y(The)2801 61324 y +SDict begin H.S end + 2801 +61324 a 2801 61324 a +SDict begin 18.2 H.A end + 2801 61324 a 2801 61324 a +SDict begin [ /View [/XYZ H.V] /Dest (3363) cvn H.B /DEST pdfmark end + 2801 61324 +a FQ(/dev/cdrom)415 b FU(is)422 b(the)f(name)g(of)g(the)g(de)-39 +b(vice)422 b(to)f(mount,)g(and)34546 61324 y +SDict begin H.S end + 34546 61324 +a 34546 61324 a +SDict begin 18.2 H.A end + 34546 61324 a 34546 61324 a +SDict begin [ /View [/XYZ H.V] /Dest (3364) cvn H.B /DEST pdfmark end + 34546 61324 +a FQ(/cdrom)d FU(is)j(the)g(location)g(on)g(the)-30 63338 +y(\002lesystem)386 b(to)h(mount)g(the)g(dri)-39 b(v)-23 +b(e.)-30 63674 y +SDict begin H.S end + -30 63674 a -30 63674 a +SDict begin 18.2 H.A end + -30 63674 a +-30 63674 a +SDict begin [ /View [/XYZ H.V] /Dest (3365) cvn H.B /DEST pdfmark end + -30 63674 a -30 64449 a +SDict begin H.S end + -30 64449 a -30 64449 +a +SDict begin 18.2 H.A end + -30 64449 a -30 64449 a +SDict begin [ /View [/XYZ H.V] /Dest (3367) cvn H.B /DEST pdfmark end + -30 64449 a 1679 x FU(Before)483 +b(you)g(can)h(remo)-23 b(v)g(e)482 b(a)i(\003opp)-15 +b(y)-101 b(,)482 b(CD-R)-62 b(OM,)483 b(or)g(other)h(remo)-23 +b(v)-39 b(able)482 b(de)-39 b(vice)484 b(that)f(is)g(cur)-31 +b(-)-30 68142 y(rently)365 b(mounted,)g(you')-15 b(ll)365 +b(ha)-31 b(v)-23 b(e)365 b(to)g(unmount)g(it.)g(That)h(is)f(done)g +(using)g(the)40447 68142 y +SDict begin H.S end + 40447 68142 a 40447 68142 +a +SDict begin 18.2 H.A end + 40447 68142 a 40447 68142 a +SDict begin [ /View [/XYZ H.V] /Dest (3368) cvn H.B /DEST pdfmark end + 40447 68142 a FP(umount)g +FU(command.)p Black -30 73792 a FR(118)p Black eop end +%%Page: 119 141 +TeXDict begin 119 140 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.119) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 32490 -1636 a FR(Chapter)386 b(9)h(F)-70 +b(ilesystem)387 b(Structur)-57 b(e)p Black -30 3611 a +FU(Don')-28 b(t)442 b(ask)f(where)h(the)13071 3611 y +SDict begin H.S end + +13071 3611 a 13071 3611 a +SDict begin 18.2 H.A end + 13071 3611 a 13071 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3369) cvn H.B /DEST pdfmark end + 13071 +3611 a FU(\223n\224)g(went)g(because)g(we)g(couldn')-28 +b(t)441 b(tell)g(you.)h(Y)-170 b(ou)442 b(can)g(use)f(either)h(the)-30 +5626 y(mounted)425 b(de)-39 b(vice)426 b(or)g(the)f(mount)g(point)g(as) +h(the)g(ar)-28 b(gument)425 b(to)34206 5626 y +SDict begin H.S end + 34206 5626 +a 34206 5626 a +SDict begin 18.2 H.A end + 34206 5626 a 34206 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (3370) cvn H.B /DEST pdfmark end + 34206 5626 a +FP(umount)p FU(.)h(F)-23 b(or)425 b(e)-23 b(xample,)426 +b(if)f(you)-30 7640 y(w)-15 b(anted)465 b(to)h(unmount)e(the)i(CD-R)-62 +b(OM)464 b(from)i(the)g(pre)-39 b(vious)465 b(e)-23 b(xample,)465 +b(either)h(of)g(these)f(com-)-30 9655 y(mands)387 b(w)-15 +b(ould)386 b(w)-15 b(ork:)-30 11220 y +SDict begin H.S end + -30 11220 a -30 +11220 a +SDict begin 14.56 H.A end + -30 11220 a -30 11220 a +SDict begin [ /View [/XYZ H.V] /Dest (3371) cvn H.B /DEST pdfmark end + -30 11220 a -30 11220 +a +SDict begin H.S end + -30 11220 a -30 11220 a +SDict begin 14.56 H.A end + -30 11220 a -30 11220 a +SDict begin [ /View [/XYZ H.V] /Dest (3372) cvn H.B /DEST pdfmark end + -30 +11220 a 1597 x FJ(#)1309 12817 y +SDict begin H.S end + 1309 12817 a 1309 12817 +a +SDict begin 14.56 H.A end + 1309 12817 a 1309 12817 a +SDict begin [ /View [/XYZ H.V] /Dest (3373) cvn H.B /DEST pdfmark end + 1309 12817 a FH(umount)743 +b(/dev/cdrom)-30 12908 y +SDict begin H.S end + -30 12908 a -30 12908 a +SDict begin 14.56 H.A end + -30 +12908 a -30 12908 a +SDict begin [ /View [/XYZ H.V] /Dest (3374) cvn H.B /DEST pdfmark end + -30 12908 a 1520 x FJ(#)1309 14428 +y +SDict begin H.S end + 1309 14428 a 1309 14428 a +SDict begin 14.56 H.A end + 1309 14428 a 1309 14428 a +SDict begin [ /View [/XYZ H.V] /Dest (3375) cvn H.B /DEST pdfmark end + +1309 14428 a FH(umount)g(/cdrom)-30 17619 y +SDict begin H.S end + -30 17619 +a -30 17619 a +SDict begin 18.2 H.A end + -30 17619 a -30 17619 a +SDict begin [ /View [/XYZ H.V] /Dest (FILESYSTEM-STRUCTURE-NFS) cvn +H.B /DEST pdfmark end + -30 17619 a 6033 +x FL(9.5)620 b(NFS)h(Mounts)-30 24796 y +SDict begin H.S end + -30 24796 a -30 +24796 a +SDict begin 18.2 H.A end + -30 24796 a -30 24796 a +SDict begin [ /View [/XYZ H.V] /Dest (3378) cvn H.B /DEST pdfmark end + -30 24796 a 1987 x FU(NFS)485 +b(stands)g(for)g(the)g(Netw)-15 b(ork)485 b(Filesystem.)f(It)i(is)f +(not)g(really)g(part)g(of)h(the)f(real)h(\002lesystem,)-30 +28798 y(b)-31 b(ut)387 b(can)h(be)f(used)g(to)g(add)g(parts)h(to)f(the) +g(mounted)f(\002lesystem.)-30 29908 y +SDict begin H.S end + -30 29908 a -30 +29908 a +SDict begin 18.2 H.A end + -30 29908 a -30 29908 a +SDict begin [ /View [/XYZ H.V] /Dest (3379) cvn H.B /DEST pdfmark end + -30 29908 a 1679 x FU(Lar)-28 +b(ge)526 b(Unix)f(en)-62 b(vironments)524 b(often)h(times)g(share)h +(the)f(same)g(programs,)40893 31587 y +SDict begin H.S end + 40893 31587 a 40893 +31587 a +SDict begin 18.2 H.A end + 40893 31587 a 40893 31587 a +SDict begin [ /View [/XYZ H.V] /Dest (3380) cvn H.B /DEST pdfmark end + 40893 31587 a 525 +w FU(sets)g(of)h(home)f(di-)-30 33602 y(rectories,)412 +b(and)g(mail)f(spool.)h(The)g(problem)f(of)h(getting)f(the)h(same)g +(cop)-15 b(y)411 b(to)h(each)g(machine)f(is)-30 35616 +y(solv)-23 b(ed)418 b(with)h(NFS.)g(W)-124 b(e)419 b(can)g(use)g(NFS)f +(to)h(share)g(one)g(set)g(of)g(home)g(directories)f(between)h(all)-30 +37631 y(of)521 b(the)f(w)-15 b(orkstations.)519 b(The)h(w)-15 +b(orkstations)519 b(then)h(mount)g(that)g(NFS)f(share)i(as)f(if)g(it)g +(were)h(on)-30 39646 y(their)387 b(o)-39 b(wn)388 b(machines.)-30 +40436 y +SDict begin H.S end + -30 40436 a -30 40436 a +SDict begin 18.2 H.A end + -30 40436 a -30 40436 +a +SDict begin [ /View [/XYZ H.V] /Dest (3383) cvn H.B /DEST pdfmark end + -30 40436 a 1999 x FU(See)p 0 TeXcolorgray 2545 42435 +a +SDict begin H.S end + 2545 42435 a FU(Section)f(5.6.2)10681 42435 y +SDict begin 18.2 H.L end + 10681 +42435 a 10681 42435 a +SDict begin [ /Subtype /Link /Dest (NETWORK-CONFIGURATION-NFS-NFS) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 10681 42435 a Black 338 w FU(and)337 +b(the)g(man)g(pages)g(for)24841 42435 y +SDict begin H.S end + 24841 42435 a +24841 42435 a +SDict begin 18.2 H.A end + 24841 42435 a 24841 42435 a +SDict begin [ /View [/XYZ H.V] /Dest (3385) cvn H.B /DEST pdfmark end + 24841 42435 +a FQ(exports)p FU(\(5\),)31757 42435 y +SDict begin H.S end + 31757 42435 a +31757 42435 a +SDict begin 18.2 H.A end + 31757 42435 a 31757 42435 a +SDict begin [ /View [/XYZ H.V] /Dest (3386) cvn H.B /DEST pdfmark end + 31757 42435 +a FP(nfsd)p FU(\(8\),)g(and)39839 42435 y +SDict begin H.S end + 39839 42435 +a 39839 42435 a +SDict begin 18.2 H.A end + 39839 42435 a 39839 42435 a +SDict begin [ /View [/XYZ H.V] /Dest (3387) cvn H.B /DEST pdfmark end + 39839 42435 +a FP(mountd)p FU(\(8\))g(for)g(more)-30 44450 y(information.)p +Black 49451 73792 a FR(119)p Black eop end +%%Page: 120 142 +TeXDict begin 120 141 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.120) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(9)g(F)-70 b(ilesystem)387 +b(Structur)-57 b(e)p Black Black -30 73792 a(120)p Black +eop end +%%Page: 121 143 +TeXDict begin 121 142 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.121) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS) cvn H.B /DEST +pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(10)-30 10743 y FO(Handling)1288 b(Files)g(and)-30 16759 +y(Directories)p -30 24332 51806 56 v -30 25107 a +SDict begin H.S end + -30 +25107 a -30 25107 a +SDict begin 18.2 H.A end + -30 25107 a -30 25107 a +SDict begin [ /View [/XYZ H.V] /Dest (3390) cvn H.B /DEST pdfmark end + -30 25107 +a 1051 x FU(Linux)507 b(aims)g(to)g(the)g(most)g(Unix-lik)-15 +b(e)506 b(it)h(can)g(be.)h(T)-54 b(raditionally)-101 +b(,)506 b(Unix)h(operating)g(systems)-30 28172 y(ha)-31 +b(v)-23 b(e)461 b(been)g(command-line)f(oriented.)h(W)-124 +b(e)461 b(do)g(ha)-31 b(v)-23 b(e)461 b(a)g(graphical)g(user)g(interf) +-15 b(ace)460 b(in)h(Slack-)-30 30187 y(w)-15 b(are,)437 +b(b)-31 b(ut)437 b(the)g(command-line)e(is)i(still)f(the)h(main)f(le) +-39 b(v)-23 b(el)437 b(of)g(control)f(for)h(the)g(system.)g(There-)-30 +32202 y(fore,)388 b(it)f(is)g(important)g(to)g(understand)f(some)h(of)h +(the)f(basic)g(\002le)g(management)f(commands.)-30 33312 +y +SDict begin H.S end + -30 33312 a -30 33312 a +SDict begin 18.2 H.A end + -30 33312 a -30 33312 a +SDict begin [ /View [/XYZ H.V] /Dest (3391) cvn H.B /DEST pdfmark end + -30 +33312 a 1679 x FU(The)299 b(follo)-39 b(wing)299 b(sections)f(e)-23 +b(xplain)299 b(the)g(common)g(\002le)g(management)f(commands)g(and)i +(pro)-23 b(vide)-30 37006 y(e)g(xamples)346 b(of)i(ho)-39 +b(w)347 b(the)-23 b(y)346 b(are)i(used.)f(There)g(are)h(man)-23 +b(y)346 b(other)h(commands,)g(b)-31 b(ut)347 b(these)g(will)f(help)-30 +39021 y(you)472 b(get)f(started.)h(Also,)g(the)g(commands)f(are)h(only) +f(brie\003y)h(discussed)f(here.)h(Y)-170 b(ou)471 b(will)g(\002nd)-30 +41035 y(more)387 b(detail)g(in)g(the)g(accompan)-23 b(ying)387 +b(man)g(pages)g(for)g(each)h(command.)-30 41371 y +SDict begin H.S end + -30 +41371 a -30 41371 a +SDict begin 18.2 H.A end + -30 41371 a -30 41371 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-NAVIGATION) cvn +H.B /DEST pdfmark end + -30 41371 +a 5789 x FL(10.1)620 b(Na)-33 b(vigation)619 b(:)i Fq(ls)61 +b FL(,)621 b Fq(cd)206 b FL(,)620 b(and)f Fq(pwd)-30 +47656 y +SDict begin H.S end + -30 47656 a -30 47656 a +SDict begin 18.2 H.A end + -30 47656 a -30 47656 +a +SDict begin [ /View [/XYZ H.V] /Dest (3397) cvn H.B /DEST pdfmark end + -30 47656 a 4866 x FF(ls)-30 52545 y +SDict begin H.S end + -30 52545 a -30 +52545 a +SDict begin 18.2 H.A end + -30 52545 a -30 52545 a +SDict begin [ /View [/XYZ H.V] /Dest (3400) cvn H.B /DEST pdfmark end + -30 52545 a -30 52545 +a +SDict begin H.S end + -30 52545 a -30 52545 a +SDict begin 18.2 H.A end + -30 52545 a -30 52545 a +SDict begin [ /View [/XYZ H.V] /Dest (3403) cvn H.B /DEST pdfmark end + -30 +52545 a -30 53475 a +SDict begin H.S end + -30 53475 a -30 53475 a +SDict begin 18.2 H.A end + -30 53475 +a -30 53475 a +SDict begin [ /View [/XYZ H.V] /Dest (3405) cvn H.B /DEST pdfmark end + -30 53475 a 1992 x FU(This)378 b(command)g(lists)g +(\002les)g(in)g(a)h(directory)-101 b(.)379 b(W)-62 b(indo)-39 +b(ws)378 b(and)h(DOS)f(users)g(will)g(notice)g(its)g(sim-)-30 +57481 y(ilarity)368 b(to)g(the)7878 57481 y +SDict begin H.S end + 7878 57481 +a 7878 57481 a +SDict begin 18.2 H.A end + 7878 57481 a 7878 57481 a +SDict begin [ /View [/XYZ H.V] /Dest (3406) cvn H.B /DEST pdfmark end + 7878 57481 a +FP(dir)g FU(command.)g(By)g(itself,)23379 57481 y +SDict begin H.S end + 23379 +57481 a 23379 57481 a +SDict begin 18.2 H.A end + 23379 57481 a 23379 57481 a +SDict begin [ /View [/XYZ H.V] /Dest (3407) cvn H.B /DEST pdfmark end + 23379 +57481 a FP(ls)p FU(\(1\))g(will)g(list)g(the)g(\002les)g(in)h(the)f +(current)h(directory)-101 b(.)-30 59496 y(T)-124 b(o)387 +b(see)h(what')-85 b(s)387 b(in)g(your)g(root)g(directory)-101 +b(,)387 b(you)h(could)e(issue)h(these)g(commands:)-30 +61381 y +SDict begin H.S end + -30 61381 a -30 61381 a +SDict begin 14.56 H.A end + -30 61381 a -30 61381 +a +SDict begin [ /View [/XYZ H.V] /Dest (3408) cvn H.B /DEST pdfmark end + -30 61381 a -30 61381 a +SDict begin H.S end + -30 61381 a -30 61381 a +SDict begin 14.56 H.A end + -30 +61381 a -30 61381 a +SDict begin [ /View [/XYZ H.V] /Dest (3409) cvn H.B /DEST pdfmark end + -30 61381 a 1276 x FJ(\045)1309 62657 +y +SDict begin H.S end + 1309 62657 a 1309 62657 a +SDict begin 14.56 H.A end + 1309 62657 a 1309 62657 a +SDict begin [ /View [/XYZ H.V] /Dest (3410) cvn H.B /DEST pdfmark end + +1309 62657 a FH(cd)744 b(/)-30 62748 y +SDict begin H.S end + -30 62748 a -30 +62748 a +SDict begin 14.56 H.A end + -30 62748 a -30 62748 a +SDict begin [ /View [/XYZ H.V] /Dest (3411) cvn H.B /DEST pdfmark end + -30 62748 a 1521 x FJ(\045)1309 +64269 y +SDict begin H.S end + 1309 64269 a 1309 64269 a +SDict begin 14.56 H.A end + 1309 64269 a 1309 64269 +a +SDict begin [ /View [/XYZ H.V] /Dest (3412) cvn H.B /DEST pdfmark end + 1309 64269 a FH(ls)-30 65881 y FP(bin)2231 b(cdr)2976 +b(dev)1487 b(home)g(lost+found)g(proc)g(sbin)2231 b(tmp)1487 +b(var)-30 67493 y(boot)g(cdrom)h(etc)f(lib)2231 b(mnt)6695 +b(root)1487 b(suncd)g(usr)g(vmlinuz)p Black 49451 73672 +a FR(121)p Black eop end +%%Page: 122 144 +TeXDict begin 122 143 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.122) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(10)g(Handling)f(F)-70 +b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 2383 +a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (3413) cvn H.B /DEST pdfmark end + -30 2383 +a 1107 x FU(The)384 b(problem)g(a)g(lot)g(of)g(people)g(ha)-31 +b(v)-23 b(e)384 b(with)f(that)h(output)f(is)h(that)g(you)g(cannot)g +(easily)f(tell)h(what)-30 5505 y(is)501 b(a)h(directory)f(and)g(what)h +(is)f(a)h(\002le.)f(Some)g(users)g(prefer)h(that)35384 +5505 y +SDict begin H.S end + 35384 5505 a 35384 5505 a +SDict begin 18.2 H.A end + 35384 5505 a 35384 5505 +a +SDict begin [ /View [/XYZ H.V] /Dest (3414) cvn H.B /DEST pdfmark end + 35384 5505 a FP(ls)f FU(add)h(a)f(type)h(identi\002er)e(to)-30 +7520 y(each)388 b(listing,)e(lik)-15 b(e)387 b(this:)-30 +9405 y +SDict begin H.S end + -30 9405 a -30 9405 a +SDict begin 14.56 H.A end + -30 9405 a -30 9405 a +SDict begin [ /View [/XYZ H.V] /Dest (3415) cvn H.B /DEST pdfmark end + -30 +9405 a -30 9405 a +SDict begin H.S end + -30 9405 a -30 9405 a +SDict begin 14.56 H.A end + -30 9405 a -30 +9405 a +SDict begin [ /View [/XYZ H.V] /Dest (3416) cvn H.B /DEST pdfmark end + -30 9405 a 1276 x FJ(\045)1309 10681 y +SDict begin H.S end + 1309 10681 +a 1309 10681 a +SDict begin 14.56 H.A end + 1309 10681 a 1309 10681 a +SDict begin [ /View [/XYZ H.V] /Dest (3417) cvn H.B /DEST pdfmark end + 1309 10681 a +FH(ls)744 b(-FC)-30 12293 y FP(bin/)2231 b(cdr/)2975 +b(dev/)1488 b(home/)f(lost+found/)f(proc/)h(sbin/)2231 +b(tmp/)1488 b(var/)-30 13905 y(boot/)f(cdrom/)g(etc/)h(lib/)2231 +b(mnt/)6694 b(root/)1487 b(suncd/)g(usr/)h(vmlinuz)-30 +15552 y +SDict begin H.S end + -30 15552 a -30 15552 a +SDict begin 18.2 H.A end + -30 15552 a -30 15552 +a +SDict begin [ /View [/XYZ H.V] /Dest (3418) cvn H.B /DEST pdfmark end + -30 15552 a 1917 x FU(Directories)399 b(get)g(a)h(slash)f(at)g(the)h +(end)f(of)h(the)f(name,)h(e)-23 b(x)g(ecutable)35691 +17469 y +SDict begin H.S end + 35691 17469 a 35691 17469 a +SDict begin 18.2 H.A end + 35691 17469 a 35691 +17469 a +SDict begin [ /View [/XYZ H.V] /Dest (3419) cvn H.B /DEST pdfmark end + 35691 17469 a 400 w FU(\002les)399 b(get)g(an)h(asterisk)f(at)g +(the)-30 19484 y(end)387 b(of)h(the)f(name,)h(and)f(so)g(on.)-30 +20482 y +SDict begin H.S end + -30 20482 a -30 20482 a +SDict begin 18.2 H.A end + -30 20482 a -30 20482 +a +SDict begin [ /View [/XYZ H.V] /Dest (3421) cvn H.B /DEST pdfmark end + -30 20482 a -30 20482 a +SDict begin H.S end + -30 20482 a -30 20482 a +SDict begin 18.2 H.A end + -30 +20482 a -30 20482 a +SDict begin [ /View [/XYZ H.V] /Dest (3422) cvn H.B /DEST pdfmark end + -30 20482 a 1791 x FP(ls)463 b FU(can)g(also)g(be)g +(used)f(to)h(get)g(other)g(statistics)f(on)g(\002les.)h(F)-23 +b(or)463 b(e)-23 b(xample,)463 b(to)f(see)h(the)g(creation)-30 +24288 y(dates,)388 b(o)-39 b(wners,)387 b(and)h(permissions,)e(you)h(w) +-15 b(ould)386 b(look)h(at)h(a)f(long)g(listing:)-30 +26173 y +SDict begin H.S end + -30 26173 a -30 26173 a +SDict begin 14.56 H.A end + -30 26173 a -30 26173 +a +SDict begin [ /View [/XYZ H.V] /Dest (3423) cvn H.B /DEST pdfmark end + -30 26173 a -30 26173 a +SDict begin H.S end + -30 26173 a -30 26173 a +SDict begin 14.56 H.A end + -30 +26173 a -30 26173 a +SDict begin [ /View [/XYZ H.V] /Dest (3424) cvn H.B /DEST pdfmark end + -30 26173 a 1276 x FJ(\045)1309 27449 +y +SDict begin H.S end + 1309 27449 a 1309 27449 a +SDict begin 14.56 H.A end + 1309 27449 a 1309 27449 a +SDict begin [ /View [/XYZ H.V] /Dest (3425) cvn H.B /DEST pdfmark end + +1309 27449 a FH(ls)744 b(-l)-30 29061 y FP(drwxr-xr-x)2231 +b(2)743 b(root)3719 b(bin)7439 b(4096)743 b(May)1487 +b(7)744 b(09:11)f(bin/)-30 30673 y(drwxr-xr-x)2231 b(2)743 +b(root)3719 b(root)6695 b(4096)743 b(Feb)g(24)h(03:55)f(boot/)-30 +32284 y(drwxr-xr-x)2231 b(2)743 b(root)3719 b(root)6695 +b(4096)743 b(Feb)g(18)h(01:10)f(cdr/)-30 33896 y(drwxr-xr-x)1487 +b(14)743 b(root)3719 b(root)6695 b(6144)743 b(Oct)g(23)h(18:37)f +(cdrom/)-30 35508 y(drwxr-xr-x)2231 b(4)743 b(root)3719 +b(root)5951 b(28672)743 b(Mar)1487 b(5)744 b(18:01)f(dev/)-30 +37120 y(drwxr-xr-x)1487 b(10)743 b(root)3719 b(root)6695 +b(4096)743 b(Mar)1487 b(8)744 b(03:32)f(etc/)-30 38731 +y(drwxr-xr-x)2231 b(8)743 b(root)3719 b(root)6695 b(4096)743 +b(Mar)1487 b(8)744 b(03:31)f(home/)-30 40343 y(drwxr-xr-x)2231 +b(3)743 b(root)3719 b(root)6695 b(4096)743 b(Jan)g(23)h(21:29)f(lib/) +-30 41955 y(drwxr-xr-x)2231 b(2)743 b(root)3719 b(root)5951 +b(16384)743 b(Nov)1487 b(1)744 b(08:53)f(lost+found/)-30 +43567 y(drwxr-xr-x)2231 b(2)743 b(root)3719 b(root)6695 +b(4096)743 b(Oct)1487 b(6)744 b(12:47)f(mnt/)-30 45178 +y(dr-xr-xr-x)1487 b(62)743 b(root)3719 b(root)8926 b(0)744 +b(Mar)1487 b(4)744 b(15:32)f(proc/)-30 46790 y(drwxr-x--x)1487 +b(12)743 b(root)3719 b(root)6695 b(4096)743 b(Feb)g(26)h(02:06)f(root/) +-30 48402 y(drwxr-xr-x)2231 b(2)743 b(root)3719 b(bin)7439 +b(4096)743 b(Feb)g(17)h(02:02)f(sbin/)-30 50014 y(drwxr-xr-x)2231 +b(5)743 b(root)3719 b(root)6695 b(2048)743 b(Oct)g(25)h(10:51)f(suncd/) +-30 51625 y(drwxrwxrwt)2231 b(4)743 b(root)3719 b(root)5207 +b(487424)743 b(Mar)1487 b(7)744 b(20:42)f(tmp/)-30 53237 +y(drwxr-xr-x)1487 b(21)743 b(root)3719 b(root)6695 b(4096)743 +b(Aug)g(24)h(03:04)f(usr/)-30 54849 y(drwxr-xr-x)1487 +b(18)743 b(root)3719 b(root)6695 b(4096)743 b(Mar)1487 +b(8)744 b(03:32)f(var/)-30 56496 y +SDict begin H.S end + -30 56496 a -30 56496 +a +SDict begin 18.2 H.A end + -30 56496 a -30 56496 a +SDict begin [ /View [/XYZ H.V] /Dest (3426) cvn H.B /DEST pdfmark end + -30 56496 a 1917 x FU(Suppose)519 +b(you)h(w)-15 b(ant)520 b(to)f(get)h(a)h(listing)e(of)h(the)g(hidden)f +(\002les)h(in)g(the)g(current)g(directory)-101 b(.)520 +b(The)-30 60428 y(follo)-39 b(wing)387 b(command)f(will)h(do)g(just)g +(that.)p Black -30 73672 a FR(122)p Black eop end +%%Page: 123 145 +TeXDict begin 123 144 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.123) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 24998 -1636 a FR(Chapter)387 b(10)g(Handling)f(F)-70 +b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 2504 +a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3428) cvn H.B /DEST pdfmark end + -30 2504 +a 1107 x FJ(\045)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + +1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3429) cvn H.B /DEST pdfmark end + 1309 3611 a FH(ls)744 b(-a)-30 +5223 y FP(.)10414 b(bin)2232 b(cdrom)1487 b(home)5950 +b(mnt)2231 b(sbin)h(usr)-30 6835 y(..)9670 b(boot)1488 +b(dev)2975 b(lib)6694 b(proc)1487 b(suncd)h(var)-30 8446 +y(.pwrchute_tmp)e(cdr)2232 b(etc)2975 b(lost+found)1486 +b(root)h(tmp)2976 b(vmlinuz)-30 10191 y +SDict begin H.S end + -30 10191 a -30 +10191 a +SDict begin 18.2 H.A end + -30 10191 a -30 10191 a +SDict begin [ /View [/XYZ H.V] /Dest (3430) cvn H.B /DEST pdfmark end + -30 10191 a 1820 x FU(Files)351 +b(be)-23 b(ginning)350 b(with)h(a)h(period)f(\(called)g(dot)g +(\002les\))g(are)h(hidden)f(when)g(you)h(run)44288 12011 +y +SDict begin H.S end + 44288 12011 a 44288 12011 a +SDict begin 18.2 H.A end + 44288 12011 a 44288 12011 +a +SDict begin [ /View [/XYZ H.V] /Dest (3431) cvn H.B /DEST pdfmark end + 44288 12011 a FP(ls)p FU(.)g(Y)-170 b(ou)350 b(will)-30 +14025 y(only)387 b(see)g(them)g(if)h(you)f(pass)g(the)18350 +14025 y +SDict begin H.S end + 18350 14025 a 18350 14025 a +SDict begin 18.2 H.A end + 18350 14025 a 18350 +14025 a +SDict begin [ /View [/XYZ H.V] /Dest (3432) cvn H.B /DEST pdfmark end + 18350 14025 a FP(-a)g FU(option.)-30 15136 y +SDict begin H.S end + +-30 15136 a -30 15136 a +SDict begin 18.2 H.A end + -30 15136 a -30 15136 a +SDict begin [ /View [/XYZ H.V] /Dest (3433) cvn H.B /DEST pdfmark end + -30 15136 +a 1679 x FU(There)510 b(are)g(man)-23 b(y)509 b(more)h(options)f(that)h +(can)g(be)f(found)h(in)g(the)f(online)h(manual)f(page.)h(Don')-28 +b(t)-30 18830 y(for)g(get)387 b(that)g(you)g(can)h(combine)f(options)f +(that)h(you)g(pass)g(to)32742 18830 y +SDict begin H.S end + 32742 18830 a 32742 +18830 a +SDict begin 18.2 H.A end + 32742 18830 a 32742 18830 a +SDict begin [ /View [/XYZ H.V] /Dest (3434) cvn H.B /DEST pdfmark end + 32742 18830 a FP(ls)p +FU(.)-30 19940 y +SDict begin H.S end + -30 19940 a -30 19940 a +SDict begin 18.2 H.A end + -30 19940 a +-30 19940 a +SDict begin [ /View [/XYZ H.V] /Dest (3435) cvn H.B /DEST pdfmark end + -30 19940 a 5182 x FF(cd)-30 25145 y +SDict begin H.S end + -30 +25145 a -30 25145 a +SDict begin 18.2 H.A end + -30 25145 a -30 25145 a +SDict begin [ /View [/XYZ H.V] /Dest (3438) cvn H.B /DEST pdfmark end + -30 25145 +a -30 25145 a +SDict begin H.S end + -30 25145 a -30 25145 a +SDict begin 18.2 H.A end + -30 25145 a -30 +25145 a +SDict begin [ /View [/XYZ H.V] /Dest (3441) cvn H.B /DEST pdfmark end + -30 25145 a -30 26075 a +SDict begin H.S end + -30 26075 a -30 26075 +a +SDict begin 18.2 H.A end + -30 26075 a -30 26075 a +SDict begin [ /View [/XYZ H.V] /Dest (3443) cvn H.B /DEST pdfmark end + -30 26075 a 1991 x FU(The)2680 +28066 y +SDict begin H.S end + 2680 28066 a 2680 28066 a +SDict begin 18.2 H.A end + 2680 28066 a 2680 28066 +a +SDict begin [ /View [/XYZ H.V] /Dest (3444) cvn H.B /DEST pdfmark end + 2680 28066 a FP(cd)300 b FU(command)g(is)g(used)g(to)f(change)i(w)-15 +b(orking)299 b(directories.)h(Y)-170 b(ou)299 b(simply)g(type)44517 +28066 y +SDict begin H.S end + 44517 28066 a 44517 28066 a +SDict begin 18.2 H.A end + 44517 28066 a 44517 +28066 a +SDict begin [ /View [/XYZ H.V] /Dest (3445) cvn H.B /DEST pdfmark end + 44517 28066 a FP(cd)h FU(follo)-39 b(wed)-30 +30081 y(by)387 b(the)g(path)h(name)f(to)g(change)g(to.)h(Here)f(are)h +(some)f(e)-23 b(xamples:)-30 31966 y +SDict begin H.S end + -30 31966 a -30 +31966 a +SDict begin 14.56 H.A end + -30 31966 a -30 31966 a +SDict begin [ /View [/XYZ H.V] /Dest (3446) cvn H.B /DEST pdfmark end + -30 31966 a 1276 x FP(darkstar:~$)8897 +33242 y +SDict begin H.S end + 8897 33242 a 8897 33242 a +SDict begin 14.56 H.A end + 8897 33242 a 8897 33242 +a +SDict begin [ /View [/XYZ H.V] /Dest (3447) cvn H.B /DEST pdfmark end + 8897 33242 a FH(cd)743 b(/bin)-30 34854 y FP(darkstar:/bin$)11128 +34854 y +SDict begin H.S end + 11128 34854 a 11128 34854 a +SDict begin 14.56 H.A end + 11128 34854 a 11128 +34854 a +SDict begin [ /View [/XYZ H.V] /Dest (3448) cvn H.B /DEST pdfmark end + 11128 34854 a FH(cd)h(usr)-30 36466 y FP(bash:)f(cd:)h(usr:)f +(No)h(such)f(file)h(or)f(directory)-30 38077 y(darkstar:/bin$)11128 +38077 y +SDict begin H.S end + 11128 38077 a 11128 38077 a +SDict begin 14.56 H.A end + 11128 38077 a 11128 +38077 a +SDict begin [ /View [/XYZ H.V] /Dest (3449) cvn H.B /DEST pdfmark end + 11128 38077 a FH(cd)h(/usr)-30 39689 y FP(darkstar:/usr$)11128 +39689 y +SDict begin H.S end + 11128 39689 a 11128 39689 a +SDict begin 14.56 H.A end + 11128 39689 a 11128 +39689 a +SDict begin [ /View [/XYZ H.V] /Dest (3450) cvn H.B /DEST pdfmark end + 11128 39689 a FH(ls)-30 41301 y FP(bin)-30 42913 +y(darkstar:/usr$)11128 42913 y +SDict begin H.S end + 11128 42913 a 11128 42913 +a +SDict begin 14.56 H.A end + 11128 42913 a 11128 42913 a +SDict begin [ /View [/XYZ H.V] /Dest (3451) cvn H.B /DEST pdfmark end + 11128 42913 a FH(cd)g(bin)-30 +44524 y FP(darkstar:/usr/bin$)-30 46219 y +SDict begin H.S end + -30 46219 a +-30 46219 a +SDict begin 18.2 H.A end + -30 46219 a -30 46219 a +SDict begin [ /View [/XYZ H.V] /Dest (3452) cvn H.B /DEST pdfmark end + -30 46219 a 1870 +x FU(Notice)334 b(that)h(without)e(the)i(preceding)f(slash,)h(it)f +(tries)h(to)f(change)h(to)f(a)h(directory)f(in)h(the)f(current)-30 +50103 y(directory)-101 b(.)388 b(Also)f(e)-23 b(x)g(ecuting)15920 +50103 y +SDict begin H.S end + 15920 50103 a 15920 50103 a +SDict begin 18.2 H.A end + 15920 50103 a 15920 +50103 a +SDict begin [ /View [/XYZ H.V] /Dest (3453) cvn H.B /DEST pdfmark end + 15920 50103 a FP(cd)387 b FU(with)g(no)g(options)g(will)f(mo) +-23 b(v)g(e)387 b(you)g(to)g(your)g(home)g(directory)-101 +b(.)-30 51214 y +SDict begin H.S end + -30 51214 a -30 51214 a +SDict begin 18.2 H.A end + -30 51214 a -30 +51214 a +SDict begin [ /View [/XYZ H.V] /Dest (3454) cvn H.B /DEST pdfmark end + -30 51214 a 1679 x FU(The)2964 52893 y +SDict begin H.S end + 2964 52893 +a 2964 52893 a +SDict begin 18.2 H.A end + 2964 52893 a 2964 52893 a +SDict begin [ /View [/XYZ H.V] /Dest (3455) cvn H.B /DEST pdfmark end + 2964 52893 a +FP(cd)584 b FU(command)g(is)f(not)h(lik)-15 b(e)584 b(the)g(other)g +(commands.)f(It)h(is)g(a)g(b)-31 b(uiltin)584 b(shell)f(command.)-30 +54908 y(Shell)506 b(b)-31 b(uiltins)506 b(are)h(discussed)f(in)p +0 TeXcolorgray 19349 54908 a +SDict begin H.S end + 19349 54908 a FU(Section)387 +b(8.3.1)27485 54908 y +SDict begin 18.2 H.L end + 27485 54908 a 27485 54908 a +SDict begin [ /Subtype /Link /Dest (SHELL-BASH-ENVIRONMENT) cvn /H +/I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 27485 +54908 a Black FU(.)508 b(This)e(may)h(not)f(mak)-15 b(e)506 +b(an)-23 b(y)507 b(sense)g(to)f(you)-30 56922 y(right)454 +b(no)-39 b(w)-101 b(.)455 b(Basically)f(it)g(means)g(there)g(is)g(no)h +(man)f(page)g(for)h(this)f(command.)g(Instead,)g(you)-30 +58937 y(ha)-31 b(v)-23 b(e)387 b(to)g(use)h(the)f(shell)g(help.)g(Lik) +-15 b(e)387 b(this:)-30 60822 y +SDict begin H.S end + -30 60822 a -30 60822 +a +SDict begin 14.56 H.A end + -30 60822 a -30 60822 a +SDict begin [ /View [/XYZ H.V] /Dest (3457) cvn H.B /DEST pdfmark end + -30 60822 a -30 60822 a +SDict begin H.S end + -30 +60822 a -30 60822 a +SDict begin 14.56 H.A end + -30 60822 a -30 60822 a +SDict begin [ /View [/XYZ H.V] /Dest (3458) cvn H.B /DEST pdfmark end + -30 60822 +a 1276 x FJ(\045)1309 62098 y +SDict begin H.S end + 1309 62098 a 1309 62098 +a +SDict begin 14.56 H.A end + 1309 62098 a 1309 62098 a +SDict begin [ /View [/XYZ H.V] /Dest (3459) cvn H.B /DEST pdfmark end + 1309 62098 a FH(help)743 +b(cd)-30 63816 y +SDict begin H.S end + -30 63816 a -30 63816 a +SDict begin 18.2 H.A end + -30 63816 a +-30 63816 a +SDict begin [ /View [/XYZ H.V] /Dest (3460) cvn H.B /DEST pdfmark end + -30 63816 a 1847 x FU(It)387 b(will)g(display)g(the)g +(options)f(for)18395 65663 y +SDict begin H.S end + 18395 65663 a 18395 65663 +a +SDict begin 18.2 H.A end + 18395 65663 a 18395 65663 a +SDict begin [ /View [/XYZ H.V] /Dest (3461) cvn H.B /DEST pdfmark end + 18395 65663 a FP(cd)h FU(and)g(ho)-39 +b(w)388 b(to)f(use)g(them.)-30 66773 y +SDict begin H.S end + -30 66773 a -30 +66773 a +SDict begin 18.2 H.A end + -30 66773 a -30 66773 a +SDict begin [ /View [/XYZ H.V] /Dest (3462) cvn H.B /DEST pdfmark end + -30 66773 a Black 49451 +73792 a FR(123)p Black eop end +%%Page: 124 146 +TeXDict begin 124 145 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.124) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(10)g(Handling)f(F)-70 +b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 3821 +a FF(pwd)-30 4206 y +SDict begin H.S end + -30 4206 a -30 4206 a +SDict begin 18.2 H.A end + -30 4206 a +-30 4206 a +SDict begin [ /View [/XYZ H.V] /Dest (3465) cvn H.B /DEST pdfmark end + -30 4206 a -30 4206 a +SDict begin H.S end + -30 4206 a -30 4206 +a +SDict begin 18.2 H.A end + -30 4206 a -30 4206 a +SDict begin [ /View [/XYZ H.V] /Dest (3468) cvn H.B /DEST pdfmark end + -30 4206 a -30 5136 a +SDict begin H.S end + -30 5136 +a -30 5136 a +SDict begin 18.2 H.A end + -30 5136 a -30 5136 a +SDict begin [ /View [/XYZ H.V] /Dest (3470) cvn H.B /DEST pdfmark end + -30 5136 a 1629 x +FU(The)2825 6765 y +SDict begin H.S end + 2825 6765 a 2825 6765 a +SDict begin 18.2 H.A end + 2825 6765 +a 2825 6765 a +SDict begin [ /View [/XYZ H.V] /Dest (3471) cvn H.B /DEST pdfmark end + 2825 6765 a FP(pwd)444 b FU(command)g(is)h(used)f(to)h +(sho)-39 b(w)445 b(your)f(current)h(location.)f(T)-124 +b(o)445 b(use)g(the)42987 6765 y +SDict begin H.S end + 42987 6765 a 42987 6765 +a +SDict begin 18.2 H.A end + 42987 6765 a 42987 6765 a +SDict begin [ /View [/XYZ H.V] /Dest (3472) cvn H.B /DEST pdfmark end + 42987 6765 a FP(pwd)g FU(command)-30 +8780 y(just)387 b(type)5653 8780 y +SDict begin H.S end + 5653 8780 a 5653 8780 +a +SDict begin 18.2 H.A end + 5653 8780 a 5653 8780 a +SDict begin [ /View [/XYZ H.V] /Dest (3473) cvn H.B /DEST pdfmark end + 5653 8780 a FP(pwd)p FU(.)g(F)-23 +b(or)387 b(e)-23 b(xample:)-30 10665 y +SDict begin H.S end + -30 10665 a -30 +10665 a +SDict begin 14.56 H.A end + -30 10665 a -30 10665 a +SDict begin [ /View [/XYZ H.V] /Dest (3474) cvn H.B /DEST pdfmark end + -30 10665 a -30 10665 +a +SDict begin H.S end + -30 10665 a -30 10665 a +SDict begin 14.56 H.A end + -30 10665 a -30 10665 a +SDict begin [ /View [/XYZ H.V] /Dest (3475) cvn H.B /DEST pdfmark end + -30 +10665 a 1276 x FJ(\045)1309 11941 y +SDict begin H.S end + 1309 11941 a 1309 +11941 a +SDict begin 14.56 H.A end + 1309 11941 a 1309 11941 a +SDict begin [ /View [/XYZ H.V] /Dest (3476) cvn H.B /DEST pdfmark end + 1309 11941 a FH(cd)744 +b(/bin)-30 12032 y +SDict begin H.S end + -30 12032 a -30 12032 a +SDict begin 14.56 H.A end + -30 12032 +a -30 12032 a +SDict begin [ /View [/XYZ H.V] /Dest (3477) cvn H.B /DEST pdfmark end + -30 12032 a 1521 x FJ(\045)1309 13553 y +SDict begin H.S end + +1309 13553 a 1309 13553 a +SDict begin 14.56 H.A end + 1309 13553 a 1309 13553 a +SDict begin [ /View [/XYZ H.V] /Dest (3478) cvn H.B /DEST pdfmark end + 1309 +13553 a FH(pwd)-30 15165 y FP(/bin)-30 15263 y +SDict begin H.S end + -30 15263 +a -30 15263 a +SDict begin 14.56 H.A end + -30 15263 a -30 15263 a +SDict begin [ /View [/XYZ H.V] /Dest (3479) cvn H.B /DEST pdfmark end + -30 15263 a 1514 +x FJ(\045)1309 16777 y +SDict begin H.S end + 1309 16777 a 1309 16777 a +SDict begin 14.56 H.A end + 1309 +16777 a 1309 16777 a +SDict begin [ /View [/XYZ H.V] /Dest (3480) cvn H.B /DEST pdfmark end + 1309 16777 a FH(cd)g(/usr)-30 16868 +y +SDict begin H.S end + -30 16868 a -30 16868 a +SDict begin 14.56 H.A end + -30 16868 a -30 16868 a +SDict begin [ /View [/XYZ H.V] /Dest (3481) cvn H.B /DEST pdfmark end + -30 +16868 a 1520 x FJ(\045)1309 18388 y +SDict begin H.S end + 1309 18388 a 1309 +18388 a +SDict begin 14.56 H.A end + 1309 18388 a 1309 18388 a +SDict begin [ /View [/XYZ H.V] /Dest (3482) cvn H.B /DEST pdfmark end + 1309 18388 a FH(cd)g(bin)-30 +18413 y +SDict begin H.S end + -30 18413 a -30 18413 a +SDict begin 14.56 H.A end + -30 18413 a -30 18413 +a +SDict begin [ /View [/XYZ H.V] /Dest (3483) cvn H.B /DEST pdfmark end + -30 18413 a 1587 x FJ(\045)1309 20000 y +SDict begin H.S end + 1309 20000 +a 1309 20000 a +SDict begin 14.56 H.A end + 1309 20000 a 1309 20000 a +SDict begin [ /View [/XYZ H.V] /Dest (3484) cvn H.B /DEST pdfmark end + 1309 20000 a +FH(pwd)-30 21612 y FP(/usr/bin)-30 24809 y +SDict begin H.S end + -30 24809 +a -30 24809 a +SDict begin 18.2 H.A end + -30 24809 a -30 24809 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-PAGERS) cvn H.B +/DEST pdfmark end + -30 24809 a 6027 +x FL(10.2)620 b(P)-67 b(a)-22 b(g)22 b(er)-33 b(s:)620 +b Fq(more)84 b FL(,)619 b Fq(less)61 b FL(,)621 b(and)e +Fq(most)-30 31332 y +SDict begin H.S end + -30 31332 a -30 31332 a +SDict begin 18.2 H.A end + -30 31332 +a -30 31332 a +SDict begin [ /View [/XYZ H.V] /Dest (3490) cvn H.B /DEST pdfmark end + -30 31332 a 4866 x FF(more)-30 36221 y +SDict begin H.S end + +-30 36221 a -30 36221 a +SDict begin 18.2 H.A end + -30 36221 a -30 36221 a +SDict begin [ /View [/XYZ H.V] /Dest (3493) cvn H.B /DEST pdfmark end + -30 36221 +a -30 36221 a +SDict begin H.S end + -30 36221 a -30 36221 a +SDict begin 18.2 H.A end + -30 36221 a -30 +36221 a +SDict begin [ /View [/XYZ H.V] /Dest (3495) cvn H.B /DEST pdfmark end + -30 36221 a -30 37151 a +SDict begin H.S end + -30 37151 a -30 37151 +a +SDict begin 18.2 H.A end + -30 37151 a -30 37151 a +SDict begin [ /View [/XYZ H.V] /Dest (3498) cvn H.B /DEST pdfmark end + -30 37151 a -30 37151 a +SDict begin H.S end + -30 +37151 a -30 37151 a +SDict begin 18.2 H.A end + -30 37151 a -30 37151 a +SDict begin [ /View [/XYZ H.V] /Dest (3499) cvn H.B /DEST pdfmark end + -30 37151 +a 1992 x FP(more)p FU(\(1\))497 b(is)h(what)f(we)h(call)f(a)h(pager)f +(utility)-101 b(.)498 b(Oftentimes)e(the)i(output)f(of)g(a)h +(particular)f(com-)-30 41157 y(mand)412 b(is)g(too)f(big)h(to)g(\002t)f +(on)h(one)g(screen.)h(The)f(indi)-39 b(vidual)411 b(commands)g(do)h +(not)f(kno)-39 b(w)412 b(ho)-39 b(w)412 b(to)-30 43172 +y(\002t)387 b(their)g(output)g(to)g(separate)g(screens.)h(The)-23 +b(y)387 b(lea)-31 b(v)-23 b(e)387 b(this)g(job)g(to)g(the)g(pager)g +(utility)-101 b(.)-30 44282 y +SDict begin H.S end + -30 44282 a -30 44282 a +SDict begin 18.2 H.A end + +-30 44282 a -30 44282 a +SDict begin [ /View [/XYZ H.V] /Dest (3500) cvn H.B /DEST pdfmark end + -30 44282 a 1679 x FU(The)2869 +45961 y +SDict begin H.S end + 2869 45961 a 2869 45961 a +SDict begin 18.2 H.A end + 2869 45961 a 2869 45961 +a +SDict begin [ /View [/XYZ H.V] /Dest (3501) cvn H.B /DEST pdfmark end + 2869 45961 a FP(more)489 b FU(command)f(breaks)h(the)g(output)f(into) +g(indi)-39 b(vidual)488 b(screens)h(and)g(w)-15 b(aits)488 +b(for)h(you)g(to)-30 47976 y(press)474 b(the)g(space)f(bar)h(before)g +(continuing)f(on)h(to)g(the)f(ne)-23 b(xt)474 b(screen.)g(Pressing)f +(the)h(enter)g(k)-15 b(e)-23 b(y)-30 49991 y(will)387 +b(adv)-39 b(ance)388 b(the)f(output)f(one)i(line.)f(Here)h(is)f(a)g +(good)g(e)-23 b(xample:)-30 51876 y +SDict begin H.S end + -30 51876 a -30 51876 +a +SDict begin 14.56 H.A end + -30 51876 a -30 51876 a +SDict begin [ /View [/XYZ H.V] /Dest (3502) cvn H.B /DEST pdfmark end + -30 51876 a -30 51876 a +SDict begin H.S end + -30 +51876 a -30 51876 a +SDict begin 14.56 H.A end + -30 51876 a -30 51876 a +SDict begin [ /View [/XYZ H.V] /Dest (3503) cvn H.B /DEST pdfmark end + -30 51876 +a 1276 x FJ(\045)1309 53152 y +SDict begin H.S end + 1309 53152 a 1309 53152 +a +SDict begin 14.56 H.A end + 1309 53152 a 1309 53152 a +SDict begin [ /View [/XYZ H.V] /Dest (3504) cvn H.B /DEST pdfmark end + 1309 53152 a FH(cd)744 b(/usr/bin)-30 +53243 y +SDict begin H.S end + -30 53243 a -30 53243 a +SDict begin 14.56 H.A end + -30 53243 a -30 53243 +a +SDict begin [ /View [/XYZ H.V] /Dest (3505) cvn H.B /DEST pdfmark end + -30 53243 a 1521 x FJ(\045)1309 54764 y +SDict begin H.S end + 1309 54764 +a 1309 54764 a +SDict begin 14.56 H.A end + 1309 54764 a 1309 54764 a +SDict begin [ /View [/XYZ H.V] /Dest (3506) cvn H.B /DEST pdfmark end + 1309 54764 a +FH(ls)g(-l)-30 56339 y +SDict begin H.S end + -30 56339 a -30 56339 a +SDict begin 18.2 H.A end + -30 56339 +a -30 56339 a +SDict begin [ /View [/XYZ H.V] /Dest (3507) cvn H.B /DEST pdfmark end + -30 56339 a 1989 x FU(That)437 b(should)f(scroll)h(for)g +(a)g(while.)h(T)-124 b(o)437 b(break)g(up)g(the)g(output)f(screen)h(by) +g(screen,)h(just)e(pipe)h(it)-30 60343 y(through)387 +b(more:)-30 62228 y +SDict begin H.S end + -30 62228 a -30 62228 a +SDict begin 14.56 H.A end + -30 62228 +a -30 62228 a +SDict begin [ /View [/XYZ H.V] /Dest (3508) cvn H.B /DEST pdfmark end + -30 62228 a -30 62228 a +SDict begin H.S end + -30 62228 a -30 +62228 a +SDict begin 14.56 H.A end + -30 62228 a -30 62228 a +SDict begin [ /View [/XYZ H.V] /Dest (3509) cvn H.B /DEST pdfmark end + -30 62228 a 1277 x FJ(\045)1309 +63505 y +SDict begin H.S end + 1309 63505 a 1309 63505 a +SDict begin 14.56 H.A end + 1309 63505 a 1309 63505 +a +SDict begin [ /View [/XYZ H.V] /Dest (3510) cvn H.B /DEST pdfmark end + 1309 63505 a FH(ls)744 b(-l)f(|)h(more)p Black -30 +73792 a FR(124)p Black eop end +%%Page: 125 147 +TeXDict begin 125 146 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.125) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (3569) cvn H.B /DEST pdfmark end + -30 -2687 a 24998 -1636 a FR(Chapter)387 +b(10)g(Handling)f(F)-70 b(iles)387 b(and)g(Dir)-57 b(ectories)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3511) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(That)569 b(is)f(the)h(pipe)g(character)g +(\(shift)f(backslash\).)h(The)g(pipe)f(is)h(short)g(for)f(saying)h(tak) +-15 b(e)568 b(the)-30 5626 y(output)560 b(of)6343 5626 +y +SDict begin H.S end + 6343 5626 a 6343 5626 a +SDict begin 18.2 H.A end + 6343 5626 a 6343 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (3512) cvn H.B /DEST pdfmark end + 6343 +5626 a FP(ls)h FU(and)f(feed)h(it)f(into)18812 5626 y +SDict begin H.S end + +18812 5626 a 18812 5626 a +SDict begin 18.2 H.A end + 18812 5626 a 18812 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (3513) cvn H.B /DEST pdfmark end + 18812 +5626 a FP(more)p FU(.)g(Y)-170 b(ou)560 b(can)h(pipe)f(just)g(about)g +(an)-23 b(ything)559 b(through)h(the)-30 7640 y +SDict begin H.S end + -30 7640 +a -30 7640 a +SDict begin 18.2 H.A end + -30 7640 a -30 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (3514) cvn H.B /DEST pdfmark end + -30 7640 a FP(more)387 +b FU(command,)g(not)g(just)15215 7640 y +SDict begin H.S end + 15215 7640 a +15215 7640 a +SDict begin 18.2 H.A end + 15215 7640 a 15215 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (3515) cvn H.B /DEST pdfmark end + 15215 7640 a FP(ls)p +FU(.)g(Piping)g(is)g(also)g(co)-23 b(v)g(ered)387 b(in)p +0 TeXcolorgray 33057 7640 a +SDict begin H.S end + 33057 7640 a FU(Section)g(8.2.3)41193 +7640 y +SDict begin 18.2 H.L end + 41193 7640 a 41193 7640 a +SDict begin [ /Subtype /Link /Dest (SHELL-COMMAND-LINE-PIPING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 41193 7640 a Black FU(.)-30 +8751 y +SDict begin H.S end + -30 8751 a -30 8751 a +SDict begin 18.2 H.A end + -30 8751 a -30 8751 a +SDict begin [ /View [/XYZ H.V] /Dest (3517) cvn H.B /DEST pdfmark end + -30 +8751 a 5181 x FF(less)-30 14885 y +SDict begin H.S end + -30 14885 a -30 14885 +a +SDict begin 18.2 H.A end + -30 14885 a -30 14885 a +SDict begin [ /View [/XYZ H.V] /Dest (3520) cvn H.B /DEST pdfmark end + -30 14885 a 1992 x FU(The)2812 +16877 y +SDict begin H.S end + 2812 16877 a 2812 16877 a +SDict begin 18.2 H.A end + 2812 16877 a 2812 16877 +a +SDict begin [ /View [/XYZ H.V] /Dest (3521) cvn H.B /DEST pdfmark end + 2812 16877 a FP(more)432 b FU(command)g(is)g(quite)f(handy)-101 +b(,)433 b(b)-31 b(ut)24651 16877 y +SDict begin H.S end + 24651 16877 a 24651 +16877 a +SDict begin 18.2 H.A end + 24651 16877 a 24651 16877 a +SDict begin [ /View [/XYZ H.V] /Dest (3522) cvn H.B /DEST pdfmark end + 24651 16877 a 432 +w FU(often)432 b(you)g(will)g(\002nd)g(that)g(you)g(ha)-31 +b(v)-23 b(e)432 b(adv)-39 b(anced)-30 18892 y(past)470 +b(the)g(screen)g(you)g(w)-15 b(anted.)469 b(more)h(does)g(not)g(pro)-23 +b(vide)469 b(a)i(w)-15 b(ay)469 b(to)h(go)g(back.)g(The)46993 +18892 y +SDict begin H.S end + 46993 18892 a 46993 18892 a +SDict begin 18.2 H.A end + 46993 18892 a 46993 +18892 a +SDict begin [ /View [/XYZ H.V] /Dest (3525) cvn H.B /DEST pdfmark end + 46993 18892 a FP(less)p FU(\(1\))-30 20906 y(command)493 +b(pro)-23 b(vides)493 b(this)h(functionality)-101 b(.)493 +b(It)h(is)g(used)f(in)h(the)g(same)g(w)-15 b(ay)493 b(as)h(the)45122 +20906 y +SDict begin H.S end + 45122 20906 a 45122 20906 a +SDict begin 18.2 H.A end + 45122 20906 a 45122 +20906 a +SDict begin [ /View [/XYZ H.V] /Dest (3526) cvn H.B /DEST pdfmark end + 45122 20906 a FP(more)f FU(com-)-30 22921 y(mand,)476 +b(so)f(the)h(pre)-39 b(vious)475 b(e)-23 b(xamples)475 +b(apply)g(here)h(too.)g(So,)32985 22921 y +SDict begin H.S end + 32985 22921 +a 32985 22921 a +SDict begin 18.2 H.A end + 32985 22921 a 32985 22921 a +SDict begin [ /View [/XYZ H.V] /Dest (3527) cvn H.B /DEST pdfmark end + 32985 22921 +a FP(less)g FU(is)f(more)h(than)44751 22921 y +SDict begin H.S end + 44751 22921 +a 44751 22921 a +SDict begin 18.2 H.A end + 44751 22921 a 44751 22921 a +SDict begin [ /View [/XYZ H.V] /Dest (3528) cvn H.B /DEST pdfmark end + 44751 22921 +a FP(more)p FU(.)g(Joost)-30 24936 y(Kremers)387 b(puts)g(it)g(this)g +(w)-15 b(ay:)-30 25271 y +SDict begin H.S end + -30 25271 a -30 25271 a +SDict begin 18.2 H.A end + -30 +25271 a -30 25271 a +SDict begin [ /View [/XYZ H.V] /Dest (3529) cvn H.B /DEST pdfmark end + -30 25271 a -30 26821 a +SDict begin H.S end + -30 26821 +a -30 26821 a +SDict begin 16.38 H.A end + -30 26821 a -30 26821 a +SDict begin [ /View [/XYZ H.V] /Dest (3530) cvn H.B /DEST pdfmark end + -30 26821 a -30 +26821 a +SDict begin H.S end + -30 26821 a -30 26821 a +SDict begin 16.38 H.A end + -30 26821 a -30 26821 +a +SDict begin [ /View [/XYZ H.V] /Dest (3531) cvn H.B /DEST pdfmark end + -30 26821 a 1520 28299 a Fk(less)353 b FW(is)d(more,)i(b)-28 +b(ut)352 b(more)14719 28299 y +SDict begin H.S end + 14719 28299 a 14719 28299 +a +SDict begin 16.38 H.A end + 14719 28299 a 14719 28299 a +SDict begin [ /View [/XYZ H.V] /Dest (3532) cvn H.B /DEST pdfmark end + 14719 28299 a Fk(more)h +FW(than)20501 28299 y +SDict begin H.S end + 20501 28299 a 20501 28299 a +SDict begin 16.38 H.A end + 20501 +28299 a 20501 28299 a +SDict begin [ /View [/XYZ H.V] /Dest (3533) cvn H.B /DEST pdfmark end + 20501 28299 a Fk(more)g FW(is,)d(so)26751 +28299 y +SDict begin H.S end + 26751 28299 a 26751 28299 a +SDict begin 16.38 H.A end + 26751 28299 a 26751 +28299 a +SDict begin [ /View [/XYZ H.V] /Dest (3534) cvn H.B /DEST pdfmark end + 26751 28299 a Fk(more)k FW(is)c(less)33505 28299 +y +SDict begin H.S end + 33505 28299 a 33505 28299 a +SDict begin 16.38 H.A end + 33505 28299 a 33505 28299 +a +SDict begin [ /View [/XYZ H.V] /Dest (3535) cvn H.B /DEST pdfmark end + 33505 28299 a Fk(less)p FW(,)j(so)e(use)g(more)43902 +28299 y +SDict begin H.S end + 43902 28299 a 43902 28299 a +SDict begin 16.38 H.A end + 43902 28299 a 43902 +28299 a +SDict begin [ /View [/XYZ H.V] /Dest (3536) cvn H.B /DEST pdfmark end + 43902 28299 a Fk(less)i FW(if)e(you)1520 30112 +y(w)-14 b(ant)349 b(less)7007 30112 y +SDict begin H.S end + 7007 30112 a 7007 +30112 a +SDict begin 16.38 H.A end + 7007 30112 a 7007 30112 a +SDict begin [ /View [/XYZ H.V] /Dest (3537) cvn H.B /DEST pdfmark end + 7007 30112 a Fk(more)p +FW(.)-30 30135 y +SDict begin H.S end + -30 30135 a -30 30135 a +SDict begin 18.2 H.A end + -30 30135 a +-30 30135 a +SDict begin [ /View [/XYZ H.V] /Dest (3538) cvn H.B /DEST pdfmark end + -30 30135 a 5494 x FF(most)-30 35652 y +SDict begin H.S end + -30 +35652 a -30 35652 a +SDict begin 18.2 H.A end + -30 35652 a -30 35652 a +SDict begin [ /View [/XYZ H.V] /Dest (3541) cvn H.B /DEST pdfmark end + -30 35652 +a -30 36582 a +SDict begin H.S end + -30 36582 a -30 36582 a +SDict begin 18.2 H.A end + -30 36582 a -30 +36582 a +SDict begin [ /View [/XYZ H.V] /Dest (3544) cvn H.B /DEST pdfmark end + -30 36582 a 1991 x FU(Where)4563 38573 y +SDict begin H.S end + 4563 +38573 a 4563 38573 a +SDict begin 18.2 H.A end + 4563 38573 a 4563 38573 a +SDict begin [ /View [/XYZ H.V] /Dest (3545) cvn H.B /DEST pdfmark end + 4563 38573 +a FP(more)462 b FU(and)10702 38573 y +SDict begin H.S end + 10702 38573 a 10702 +38573 a +SDict begin 18.2 H.A end + 10702 38573 a 10702 38573 a +SDict begin [ /View [/XYZ H.V] /Dest (3546) cvn H.B /DEST pdfmark end + 10702 38573 a FP(less)g +FU(lea)-31 b(v)-23 b(e)462 b(of)-39 b(f,)20437 38573 +y +SDict begin H.S end + 20437 38573 a 20437 38573 a +SDict begin 18.2 H.A end + 20437 38573 a 20437 38573 +a +SDict begin [ /View [/XYZ H.V] /Dest (3547) cvn H.B /DEST pdfmark end + 20437 38573 a FP(most)p FU(\(1\))462 b(picks)g(back)h(up.)g(If)36699 +38573 y +SDict begin H.S end + 36699 38573 a 36699 38573 a +SDict begin 18.2 H.A end + 36699 38573 a 36699 +38573 a +SDict begin [ /View [/XYZ H.V] /Dest (3548) cvn H.B /DEST pdfmark end + 36699 38573 a FP(less)g FU(is)f(more)h(than)48413 +38573 y +SDict begin H.S end + 48413 38573 a 48413 38573 a +SDict begin 18.2 H.A end + 48413 38573 a 48413 +38573 a +SDict begin [ /View [/XYZ H.V] /Dest (3549) cvn H.B /DEST pdfmark end + 48413 38573 a FP(more)p FU(,)-30 40588 y +SDict begin H.S end + -30 +40588 a -30 40588 a +SDict begin 18.2 H.A end + -30 40588 a -30 40588 a +SDict begin [ /View [/XYZ H.V] /Dest (3550) cvn H.B /DEST pdfmark end + -30 40588 +a FP(most)342 b FU(is)h(more)f(than)11204 40588 y +SDict begin H.S end + 11204 +40588 a 11204 40588 a +SDict begin 18.2 H.A end + 11204 40588 a 11204 40588 a +SDict begin [ /View [/XYZ H.V] /Dest (3551) cvn H.B /DEST pdfmark end + 11204 +40588 a FP(less)p FU(.)g(Whereas)h(the)g(other)f(pagers)h(can)f(only)h +(display)f(one)g(\002le)g(at)h(a)g(time,)-30 42603 y +SDict begin H.S end + +-30 42603 a -30 42603 a +SDict begin 18.2 H.A end + -30 42603 a -30 42603 a +SDict begin [ /View [/XYZ H.V] /Dest (3552) cvn H.B /DEST pdfmark end + -30 42603 +a FP(most)456 b FU(is)h(capable)g(of)g(vie)-39 b(wing)456 +b(an)-23 b(y)456 b(number)h(of)f(\002les,)h(as)g(long)f(as)h(each)g +(\002le')-85 b(s)456 b(windo)-39 b(w)456 b(is)h(at)-30 +44617 y(least)387 b(2)g(lines)g(long.)11206 44617 y +SDict begin H.S end + 11206 +44617 a 11206 44617 a +SDict begin 18.2 H.A end + 11206 44617 a 11206 44617 a +SDict begin [ /View [/XYZ H.V] /Dest (3553) cvn H.B /DEST pdfmark end + 11206 +44617 a FP(most)g FU(has)g(a)g(lot)g(of)h(options,)e(check)i(the)f(man) +g(page)g(for)h(full)f(details.)-30 47277 y +SDict begin H.S end + -30 47277 +a -30 47277 a +SDict begin 18.2 H.A end + -30 47277 a -30 47277 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-OUTPUT) cvn H.B +/DEST pdfmark end + -30 47277 a 5790 +x FL(10.3)620 b(Simple)h(Output:)e Fq(cat)820 b FL(and)619 +b Fq(ec)-22 b(ho)-30 53528 y +SDict begin H.S end + -30 53528 a -30 53528 a +SDict begin 18.2 H.A end + +-30 53528 a -30 53528 a +SDict begin [ /View [/XYZ H.V] /Dest (3558) cvn H.B /DEST pdfmark end + -30 53528 a 4901 x FF(cat)-30 +59382 y +SDict begin H.S end + -30 59382 a -30 59382 a +SDict begin 18.2 H.A end + -30 59382 a -30 59382 +a +SDict begin [ /View [/XYZ H.V] /Dest (3561) cvn H.B /DEST pdfmark end + -30 59382 a -30 59382 a +SDict begin H.S end + -30 59382 a -30 59382 a +SDict begin 18.2 H.A end + -30 +59382 a -30 59382 a +SDict begin [ /View [/XYZ H.V] /Dest (3562) cvn H.B /DEST pdfmark end + -30 59382 a 1991 x FP(cat)p FU(\(1\))425 +b(is)f(short)h(for)11649 61373 y +SDict begin H.S end + 11649 61373 a 11649 +61373 a +SDict begin 18.2 H.A end + 11649 61373 a 11649 61373 a +SDict begin [ /View [/XYZ H.V] /Dest (3563) cvn H.B /DEST pdfmark end + 11649 61373 a FU +(\223concatenate\224.)g(It)g(w)-15 b(as)424 b(originally)g(designed)g +(to)h(mer)-28 b(ge)425 b(te)-23 b(xt)424 b(\002les)g(into)-30 +63388 y(one,)388 b(b)-31 b(ut)387 b(can)g(be)h(used)f(for)g(man)-23 +b(y)387 b(other)g(purposes.)-30 64498 y +SDict begin H.S end + -30 64498 a -30 +64498 a +SDict begin 18.2 H.A end + -30 64498 a -30 64498 a +SDict begin [ /View [/XYZ H.V] /Dest (3564) cvn H.B /DEST pdfmark end + -30 64498 a 1679 x FU(T)-124 +b(o)351 b(mer)-28 b(ge)351 b(tw)-15 b(o)350 b(or)g(more)h(\002les)f +(into)g(one,)h(you)g(simply)f(list)g(the)34362 66177 +y +SDict begin H.S end + 34362 66177 a 34362 66177 a +SDict begin 18.2 H.A end + 34362 66177 a 34362 66177 +a +SDict begin [ /View [/XYZ H.V] /Dest (3565) cvn H.B /DEST pdfmark end + 34362 66177 a 350 w FU(\002les)h(after)g(the)43081 +66177 y +SDict begin H.S end + 43081 66177 a 43081 66177 a +SDict begin 18.2 H.A end + 43081 66177 a 43081 +66177 a +SDict begin [ /View [/XYZ H.V] /Dest (3567) cvn H.B /DEST pdfmark end + 43081 66177 a FP(cat)g FU(command)-30 68192 y(and)321 +b(then)h(redirect)f(the)g(ne)-39 b(w)322 b(output)e(to)i(a)f(\002le.) +25163 68192 y +SDict begin H.S end + 25163 68192 a 25163 68192 a +SDict begin 18.2 H.A end + 25163 68192 +a 25163 68192 a +SDict begin [ /View [/XYZ H.V] /Dest (3568) cvn H.B /DEST pdfmark end + 25163 68192 a FP(cat)g FU(w)-15 b(orks)320 +b(with)h(standard)g(input)g(and)g(standard)p Black 49451 +73792 a FR(125)p Black eop end +%%Page: 126 148 +TeXDict begin 126 147 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.126) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(10)g(Handling)f(F)-70 +b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 3611 +a FU(output,)387 b(so)g(you)g(ha)-31 b(v)-23 b(e)387 +b(to)h(use)f(the)g(shell)g(redirection)g(characters.)h(F)-23 +b(or)386 b(e)-23 b(xample:)-30 6773 y FJ(\045)1309 6773 +y +SDict begin H.S end + 1309 6773 a 1309 6773 a +SDict begin 14.56 H.A end + 1309 6773 a 1309 6773 a +SDict begin [ /View [/XYZ H.V] /Dest (3571) cvn H.B /DEST pdfmark end + 1309 +6773 a FH(cat)744 b(file1)f(file2)g(file3)g FK(>)h FH(bigfile)-30 +8490 y +SDict begin H.S end + -30 8490 a -30 8490 a +SDict begin 18.2 H.A end + -30 8490 a -30 8490 a +SDict begin [ /View [/XYZ H.V] /Dest (3572) cvn H.B /DEST pdfmark end + -30 +8490 a 1847 x FU(This)323 b(command)g(tak)-15 b(es)323 +b(the)h(contents)f(of)22300 10337 y +SDict begin H.S end + 22300 10337 a 22300 +10337 a +SDict begin 18.2 H.A end + 22300 10337 a 22300 10337 a +SDict begin [ /View [/XYZ H.V] /Dest (3573) cvn H.B /DEST pdfmark end + 22300 10337 a FQ(file1)p +FU(,)26143 10337 y +SDict begin H.S end + 26143 10337 a 26143 10337 a +SDict begin 18.2 H.A end + 26143 +10337 a 26143 10337 a +SDict begin [ /View [/XYZ H.V] /Dest (3574) cvn H.B /DEST pdfmark end + 26143 10337 a FQ(file2)p FU(,)e(and)32547 +10337 y +SDict begin H.S end + 32547 10337 a 32547 10337 a +SDict begin 18.2 H.A end + 32547 10337 a 32547 +10337 a +SDict begin [ /View [/XYZ H.V] /Dest (3575) cvn H.B /DEST pdfmark end + 32547 10337 a FQ(file3)g FU(and)j(mer)-28 b(ges)323 +b(it)h(all)f(together)-85 b(.)-30 12352 y(The)387 b(ne)-39 +b(w)388 b(output)e(is)i(sent)f(to)g(standard)g(out.)-30 +13462 y +SDict begin H.S end + -30 13462 a -30 13462 a +SDict begin 18.2 H.A end + -30 13462 a -30 13462 +a +SDict begin [ /View [/XYZ H.V] /Dest (3576) cvn H.B /DEST pdfmark end + -30 13462 a 1679 x FU(One)443 b(can)h(also)f(use)11039 +15141 y +SDict begin H.S end + 11039 15141 a 11039 15141 a +SDict begin 18.2 H.A end + 11039 15141 a 11039 +15141 a +SDict begin [ /View [/XYZ H.V] /Dest (3577) cvn H.B /DEST pdfmark end + 11039 15141 a FP(cat)g FU(to)g(display)20284 +15141 y +SDict begin H.S end + 20284 15141 a 20284 15141 a +SDict begin 18.2 H.A end + 20284 15141 a 20284 +15141 a +SDict begin [ /View [/XYZ H.V] /Dest (3578) cvn H.B /DEST pdfmark end + 20284 15141 a 443 w FU(\002les.)g(Man)-23 b(y)443 +b(people)32752 15141 y +SDict begin H.S end + 32752 15141 a 32752 15141 a +SDict begin 18.2 H.A end + 32752 +15141 a 32752 15141 a +SDict begin [ /View [/XYZ H.V] /Dest (3581) cvn H.B /DEST pdfmark end + 32752 15141 a FP(cat)g FU(te)-23 +b(xt)443 b(\002les)g(through)f(the)48800 15141 y +SDict begin H.S end + 48800 +15141 a 48800 15141 a +SDict begin 18.2 H.A end + 48800 15141 a 48800 15141 a +SDict begin [ /View [/XYZ H.V] /Dest (3582) cvn H.B /DEST pdfmark end + 48800 +15141 a FP(more)-30 17156 y FU(or)1648 17156 y +SDict begin H.S end + 1648 17156 +a 1648 17156 a +SDict begin 18.2 H.A end + 1648 17156 a 1648 17156 a +SDict begin [ /View [/XYZ H.V] /Dest (3583) cvn H.B /DEST pdfmark end + 1648 17156 a +FP(less)387 b FU(commands,)g(lik)-15 b(e)387 b(this:)-30 +18930 y +SDict begin H.S end + -30 18930 a -30 18930 a +SDict begin 14.56 H.A end + -30 18930 a -30 18930 +a +SDict begin [ /View [/XYZ H.V] /Dest (3584) cvn H.B /DEST pdfmark end + -30 18930 a -30 18930 a +SDict begin H.S end + -30 18930 a -30 18930 a +SDict begin 14.56 H.A end + -30 +18930 a -30 18930 a +SDict begin [ /View [/XYZ H.V] /Dest (3585) cvn H.B /DEST pdfmark end + -30 18930 a 1387 x FJ(\045)1309 20317 +y +SDict begin H.S end + 1309 20317 a 1309 20317 a +SDict begin 14.56 H.A end + 1309 20317 a 1309 20317 a +SDict begin [ /View [/XYZ H.V] /Dest (3586) cvn H.B /DEST pdfmark end + +1309 20317 a FH(cat)744 b(file1)f(|)h(more)-30 22177 +y +SDict begin H.S end + -30 22177 a -30 22177 a +SDict begin 18.2 H.A end + -30 22177 a -30 22177 a +SDict begin [ /View [/XYZ H.V] /Dest (3587) cvn H.B /DEST pdfmark end + -30 +22177 a 1705 x FU(That)498 b(will)f(display)h(the)13586 +23882 y +SDict begin H.S end + 13586 23882 a 13586 23882 a +SDict begin 18.2 H.A end + 13586 23882 a 13586 +23882 a +SDict begin [ /View [/XYZ H.V] /Dest (3588) cvn H.B /DEST pdfmark end + 13586 23882 a FQ(file1)d FU(\002le)j(and)g(pipe)f(it)h(through) +g(the)34669 23882 y +SDict begin H.S end + 34669 23882 a 34669 23882 a +SDict begin 18.2 H.A end + 34669 +23882 a 34669 23882 a +SDict begin [ /View [/XYZ H.V] /Dest (3589) cvn H.B /DEST pdfmark end + 34669 23882 a FP(more)f FU(command)h(so)f(that)h +(you)-30 25896 y(only)387 b(get)g(one)g(screen)h(at)f(a)h(time.)-30 +27007 y +SDict begin H.S end + -30 27007 a -30 27007 a +SDict begin 18.2 H.A end + -30 27007 a -30 27007 +a +SDict begin [ /View [/XYZ H.V] /Dest (3590) cvn H.B /DEST pdfmark end + -30 27007 a 1679 x FU(Another)522 b(common)g(use)g(for)16436 +28686 y +SDict begin H.S end + 16436 28686 a 16436 28686 a +SDict begin 18.2 H.A end + 16436 28686 a 16436 +28686 a +SDict begin [ /View [/XYZ H.V] /Dest (3591) cvn H.B /DEST pdfmark end + 16436 28686 a FP(cat)g FU(is)g(cop)-15 b(ying)521 +b(\002les.)i(Y)-170 b(ou)522 b(can)g(cop)-15 b(y)522 +b(an)-23 b(y)522 b(\002le)g(around)g(with)-30 30701 y +SDict begin H.S end + +-30 30701 a -30 30701 a +SDict begin 18.2 H.A end + -30 30701 a -30 30701 a +SDict begin [ /View [/XYZ H.V] /Dest (3592) cvn H.B /DEST pdfmark end + -30 30701 +a FP(cat)p FU(,)388 b(lik)-15 b(e)386 b(this:)-30 32474 +y +SDict begin H.S end + -30 32474 a -30 32474 a +SDict begin 14.56 H.A end + -30 32474 a -30 32474 a +SDict begin [ /View [/XYZ H.V] /Dest (3593) cvn H.B /DEST pdfmark end + -30 +32474 a -30 32474 a +SDict begin H.S end + -30 32474 a -30 32474 a +SDict begin 14.56 H.A end + -30 32474 +a -30 32474 a +SDict begin [ /View [/XYZ H.V] /Dest (3594) cvn H.B /DEST pdfmark end + -30 32474 a 1388 x FJ(\045)1309 33862 y +SDict begin H.S end + +1309 33862 a 1309 33862 a +SDict begin 14.56 H.A end + 1309 33862 a 1309 33862 a +SDict begin [ /View [/XYZ H.V] /Dest (3595) cvn H.B /DEST pdfmark end + 1309 +33862 a FH(cat)744 b(/bin/bash)e FK(>)i FH(~/mybash)-30 +35580 y +SDict begin H.S end + -30 35580 a -30 35580 a +SDict begin 18.2 H.A end + -30 35580 a -30 35580 +a +SDict begin [ /View [/XYZ H.V] /Dest (3596) cvn H.B /DEST pdfmark end + -30 35580 a 1847 x FU(The)2767 37427 y +SDict begin H.S end + 2767 37427 a +2767 37427 a +SDict begin 18.2 H.A end + 2767 37427 a 2767 37427 a +SDict begin [ /View [/XYZ H.V] /Dest (3597) cvn H.B /DEST pdfmark end + 2767 37427 a FP(/bin/bash)387 +b FU(program)g(is)g(copied)g(to)g(your)g(home)g(directory)g(and)g +(named)43206 37427 y +SDict begin H.S end + 43206 37427 a 43206 37427 a +SDict begin 18.2 H.A end + 43206 +37427 a 43206 37427 a +SDict begin [ /View [/XYZ H.V] /Dest (3598) cvn H.B /DEST pdfmark end + 43206 37427 a FQ(mybash)p FU(.)-30 +38537 y +SDict begin H.S end + -30 38537 a -30 38537 a +SDict begin 18.2 H.A end + -30 38537 a -30 38537 +a +SDict begin [ /View [/XYZ H.V] /Dest (3599) cvn H.B /DEST pdfmark end + -30 38537 a -30 38537 a +SDict begin H.S end + -30 38537 a -30 38537 a +SDict begin 18.2 H.A end + -30 +38537 a -30 38537 a +SDict begin [ /View [/XYZ H.V] /Dest (3600) cvn H.B /DEST pdfmark end + -30 38537 a 1679 x FP(cat)588 b FU(has)h(man)-23 +b(y)588 b(uses)g(and)h(the)f(ones)g(discussed)g(here)h(are)g(just)f(a)h +(fe)-39 b(w)-101 b(.)589 b(Since)45011 40216 y +SDict begin H.S end + 45011 +40216 a 45011 40216 a +SDict begin 18.2 H.A end + 45011 40216 a 45011 40216 a +SDict begin [ /View [/XYZ H.V] /Dest (3601) cvn H.B /DEST pdfmark end + 45011 +40216 a FP(cat)g FU(mak)-15 b(es)-30 42231 y(e)-23 b(xtensi)-39 +b(v)-23 b(e)362 b(use)h(of)g(standard)g(input)f(and)h(standard)g +(output,)g(it)f(is)h(ideal)g(for)g(use)g(in)g(shell)g(scripts)-30 +44245 y(or)387 b(part)h(of)f(other)g(comple)-23 b(x)387 +b(commands.)-30 45356 y +SDict begin H.S end + -30 45356 a -30 45356 a +SDict begin 18.2 H.A end + -30 45356 +a -30 45356 a +SDict begin [ /View [/XYZ H.V] /Dest (3602) cvn H.B /DEST pdfmark end + -30 45356 a 5181 x FF(ec)-19 b(ho)-30 50560 +y +SDict begin H.S end + -30 50560 a -30 50560 a +SDict begin 18.2 H.A end + -30 50560 a -30 50560 a +SDict begin [ /View [/XYZ H.V] /Dest (3605) cvn H.B /DEST pdfmark end + -30 +50560 a -30 51490 a +SDict begin H.S end + -30 51490 a -30 51490 a +SDict begin 18.2 H.A end + -30 51490 +a -30 51490 a +SDict begin [ /View [/XYZ H.V] /Dest (3607) cvn H.B /DEST pdfmark end + -30 51490 a 1992 x FU(The)2968 53482 y +SDict begin H.S end + +2968 53482 a 2968 53482 a +SDict begin 18.2 H.A end + 2968 53482 a 2968 53482 a +SDict begin [ /View [/XYZ H.V] /Dest (3608) cvn H.B /DEST pdfmark end + 2968 +53482 a FP(echo)p FU(\(1\))588 b(command)g(displays)f(the)h +(speci\002ed)g(te)-23 b(xt)588 b(on)g(the)g(screen.)h(Y)-170 +b(ou)587 b(specify)h(the)-30 55497 y(string)340 b(to)f(display)h(after) +g(the)15617 55497 y +SDict begin H.S end + 15617 55497 a 15617 55497 a +SDict begin 18.2 H.A end + 15617 +55497 a 15617 55497 a +SDict begin [ /View [/XYZ H.V] /Dest (3609) cvn H.B /DEST pdfmark end + 15617 55497 a FP(echo)g FU(command.)f(By)h(def) +-15 b(ault)32549 55497 y +SDict begin H.S end + 32549 55497 a 32549 55497 a +SDict begin 18.2 H.A end + +32549 55497 a 32549 55497 a +SDict begin [ /View [/XYZ H.V] /Dest (3610) cvn H.B /DEST pdfmark end + 32549 55497 a FP(echo)340 +b FU(will)f(display)h(the)g(string)f(and)-30 57511 y(print)370 +b(a)g(ne)-39 b(wline)370 b(character)g(after)g(it.)g(Y)-170 +b(ou)369 b(can)h(pass)g(the)31132 57511 y +SDict begin H.S end + 31132 57511 +a 31132 57511 a +SDict begin 18.2 H.A end + 31132 57511 a 31132 57511 a +SDict begin [ /View [/XYZ H.V] /Dest (3611) cvn H.B /DEST pdfmark end + 31132 57511 +a FP(-n)g FU(option)f(to)h(suppress)f(the)h(printing)-30 +59526 y(of)413 b(the)g(ne)-39 b(wline.)413 b(The)12472 +59526 y +SDict begin H.S end + 12472 59526 a 12472 59526 a +SDict begin 18.2 H.A end + 12472 59526 a 12472 +59526 a +SDict begin [ /View [/XYZ H.V] /Dest (3612) cvn H.B /DEST pdfmark end + 12472 59526 a FP(-e)g FU(option)g(will)f(cause)25427 +59526 y +SDict begin H.S end + 25427 59526 a 25427 59526 a +SDict begin 18.2 H.A end + 25427 59526 a 25427 +59526 a +SDict begin [ /View [/XYZ H.V] /Dest (3613) cvn H.B /DEST pdfmark end + 25427 59526 a FP(echo)h FU(to)g(search)g(for)g(escape)g +(characters)g(in)g(the)-30 61541 y(string)387 b(and)g(e)-23 +b(x)g(ecute)387 b(them.)-30 64201 y +SDict begin H.S end + -30 64201 a -30 64201 +a +SDict begin 18.2 H.A end + -30 64201 a -30 64201 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-CREATION) cvn H.B +/DEST pdfmark end + -30 64201 a Black 9591 x FR(126)p +Black eop end +%%Page: 127 149 +TeXDict begin 127 148 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.127) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 24998 -1636 a FR(Chapter)387 b(10)g(Handling)f(F)-70 +b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 4132 +a FL(10.4)620 b(Creation:)g Fq(touc)-22 b(h)659 b FL(and)619 +b Fq(mkdir)-30 4160 y +SDict begin H.S end + -30 4160 a -30 4160 a +SDict begin 18.2 H.A end + -30 4160 +a -30 4160 a +SDict begin [ /View [/XYZ H.V] /Dest (3618) cvn H.B /DEST pdfmark end + -30 4160 a 5334 x FF(touc)-19 b(h)-30 9517 +y +SDict begin H.S end + -30 9517 a -30 9517 a +SDict begin 18.2 H.A end + -30 9517 a -30 9517 a +SDict begin [ /View [/XYZ H.V] /Dest (3621) cvn H.B /DEST pdfmark end + -30 9517 +a -30 9517 a +SDict begin H.S end + -30 9517 a -30 9517 a +SDict begin 18.2 H.A end + -30 9517 a -30 9517 +a +SDict begin [ /View [/XYZ H.V] /Dest (3624) cvn H.B /DEST pdfmark end + -30 9517 a -30 10447 a +SDict begin H.S end + -30 10447 a -30 10447 a +SDict begin 18.2 H.A end + -30 +10447 a -30 10447 a +SDict begin [ /View [/XYZ H.V] /Dest (3626) cvn H.B /DEST pdfmark end + -30 10447 a -30 10447 a +SDict begin H.S end + -30 10447 +a -30 10447 a +SDict begin 18.2 H.A end + -30 10447 a -30 10447 a +SDict begin [ /View [/XYZ H.V] /Dest (3627) cvn H.B /DEST pdfmark end + -30 10447 a 1992 +x FP(touch)p FU(\(1\))498 b(is)h(used)f(to)h(change)f(the)h(timestamp)e +(on)i(a)g(\002le.)f(Y)-170 b(ou)498 b(can)h(change)g(access)g(times-) +-30 14453 y(tamps)353 b(and)g(modi\002cation)e(timestamps)h(with)h +(this)f(command.)h(If)g(the)g(\002le)g(speci\002ed)f(does)h(not)-30 +16468 y(e)-23 b(xist,)3597 16468 y +SDict begin H.S end + 3597 16468 a 3597 +16468 a +SDict begin 18.2 H.A end + 3597 16468 a 3597 16468 a +SDict begin [ /View [/XYZ H.V] /Dest (3628) cvn H.B /DEST pdfmark end + 3597 16468 a FP(touch)335 +b FU(will)f(create)i(a)f(zero)h(length)e(\002le)h(with)g(the)g(name)g +(speci\002ed.)g(T)-124 b(o)335 b(mark)g(a)h(\002le)e(with)-30 +18483 y(the)387 b(current)h(system)e(time,)h(you)g(w)-15 +b(ould)387 b(issue)g(this)f(command:)-30 20368 y +SDict begin H.S end + -30 +20368 a -30 20368 a +SDict begin 14.56 H.A end + -30 20368 a -30 20368 a +SDict begin [ /View [/XYZ H.V] /Dest (3629) cvn H.B /DEST pdfmark end + -30 20368 +a -30 20368 a +SDict begin H.S end + -30 20368 a -30 20368 a +SDict begin 14.56 H.A end + -30 20368 a -30 +20368 a +SDict begin [ /View [/XYZ H.V] /Dest (3630) cvn H.B /DEST pdfmark end + -30 20368 a 1276 x FJ(\045)1309 21644 y +SDict begin H.S end + 1309 +21644 a 1309 21644 a +SDict begin 14.56 H.A end + 1309 21644 a 1309 21644 a +SDict begin [ /View [/XYZ H.V] /Dest (3631) cvn H.B /DEST pdfmark end + 1309 21644 +a FH(ls)744 b(-al)f(file1)-30 23256 y FP(-rw-r--r--)2974 +b(1)744 b(root)3719 b(root)5951 b(9779)743 b(Feb)1487 +b(7)744 b(21:41)f(file1)-30 23282 y +SDict begin H.S end + -30 23282 a -30 23282 +a +SDict begin 14.56 H.A end + -30 23282 a -30 23282 a +SDict begin [ /View [/XYZ H.V] /Dest (3632) cvn H.B /DEST pdfmark end + -30 23282 a 1586 x FJ(\045)1309 +24868 y +SDict begin H.S end + 1309 24868 a 1309 24868 a +SDict begin 14.56 H.A end + 1309 24868 a 1309 24868 +a +SDict begin [ /View [/XYZ H.V] /Dest (3633) cvn H.B /DEST pdfmark end + 1309 24868 a FH(touch)g(file1)-30 24893 y +SDict begin H.S end + -30 24893 +a -30 24893 a +SDict begin 14.56 H.A end + -30 24893 a -30 24893 a +SDict begin [ /View [/XYZ H.V] /Dest (3634) cvn H.B /DEST pdfmark end + -30 24893 a 1586 +x FJ(\045)1309 26479 y +SDict begin H.S end + 1309 26479 a 1309 26479 a +SDict begin 14.56 H.A end + 1309 +26479 a 1309 26479 a +SDict begin [ /View [/XYZ H.V] /Dest (3635) cvn H.B /DEST pdfmark end + 1309 26479 a FH(ls)h(-al)f(file1)-30 +28091 y FP(-rw-r--r--)2974 b(1)744 b(root)3719 b(root)5951 +b(9779)743 b(Feb)1487 b(8)744 b(09:17)f(file1)-30 29667 +y +SDict begin H.S end + -30 29667 a -30 29667 a +SDict begin 18.2 H.A end + -30 29667 a -30 29667 a +SDict begin [ /View [/XYZ H.V] /Dest (3636) cvn H.B /DEST pdfmark end + -30 +29667 a 1989 x FU(There)468 b(are)h(se)-39 b(v)-23 b(eral)468 +b(options)f(for)18515 31656 y +SDict begin H.S end + 18515 31656 a 18515 31656 +a +SDict begin 18.2 H.A end + 18515 31656 a 18515 31656 a +SDict begin [ /View [/XYZ H.V] /Dest (3637) cvn H.B /DEST pdfmark end + 18515 31656 a FP(touch)p +FU(,)h(including)f(options)g(to)h(specify)f(which)h(timestamp)-30 +33670 y(to)398 b(modify)-101 b(,)398 b(the)g(time)f(to)h(use,)g(and)g +(man)-23 b(y)397 b(more.)h(The)g(online)g(manual)f(page)h(discusses)f +(these)-30 35685 y(in)387 b(detail.)-30 36475 y +SDict begin H.S end + -30 36475 +a -30 36475 a +SDict begin 18.2 H.A end + -30 36475 a -30 36475 a +SDict begin [ /View [/XYZ H.V] /Dest (3638) cvn H.B /DEST pdfmark end + -30 36475 a 5502 +x FF(mkdir)-30 42930 y +SDict begin H.S end + -30 42930 a -30 42930 a +SDict begin 18.2 H.A end + -30 42930 +a -30 42930 a +SDict begin [ /View [/XYZ H.V] /Dest (3641) cvn H.B /DEST pdfmark end + -30 42930 a -30 42930 a +SDict begin H.S end + -30 42930 a -30 +42930 a +SDict begin 18.2 H.A end + -30 42930 a -30 42930 a +SDict begin [ /View [/XYZ H.V] /Dest (3642) cvn H.B /DEST pdfmark end + -30 42930 a 1991 x FP(mkdir)p +FU(\(1\))574 b(will)g(create)h(a)f(ne)-39 b(w)17711 44921 +y +SDict begin H.S end + 17711 44921 a 17711 44921 a +SDict begin 18.2 H.A end + 17711 44921 a 17711 44921 +a +SDict begin [ /View [/XYZ H.V] /Dest (3643) cvn H.B /DEST pdfmark end + 17711 44921 a 575 w FU(directory)-101 b(.)575 b(Y)-170 +b(ou)573 b(simply)h(specify)g(the)g(directory)g(to)h(create)-30 +46936 y(when)465 b(you)g(run)g(mkdir)-85 b(.)464 b(This)h(e)-23 +b(xample)464 b(creates)i(the)29621 46936 y +SDict begin H.S end + 29621 46936 +a 29621 46936 a +SDict begin 18.2 H.A end + 29621 46936 a 29621 46936 a +SDict begin [ /View [/XYZ H.V] /Dest (3646) cvn H.B /DEST pdfmark end + 29621 46936 +a FQ(hejaz)c FU(directory)j(in)g(the)g(current)g(direc-)-30 +48951 y(tory:)-30 50836 y +SDict begin H.S end + -30 50836 a -30 50836 a +SDict begin 14.56 H.A end + -30 +50836 a -30 50836 a +SDict begin [ /View [/XYZ H.V] /Dest (3647) cvn H.B /DEST pdfmark end + -30 50836 a -30 50836 a +SDict begin H.S end + -30 50836 +a -30 50836 a +SDict begin 14.56 H.A end + -30 50836 a -30 50836 a +SDict begin [ /View [/XYZ H.V] /Dest (3648) cvn H.B /DEST pdfmark end + -30 50836 a 1276 +x FJ(\045)1309 52112 y +SDict begin H.S end + 1309 52112 a 1309 52112 a +SDict begin 14.56 H.A end + 1309 +52112 a 1309 52112 a +SDict begin [ /View [/XYZ H.V] /Dest (3649) cvn H.B /DEST pdfmark end + 1309 52112 a FH(mkdir)743 b(hejaz)-30 +53830 y +SDict begin H.S end + -30 53830 a -30 53830 a +SDict begin 18.2 H.A end + -30 53830 a -30 53830 +a +SDict begin [ /View [/XYZ H.V] /Dest (3650) cvn H.B /DEST pdfmark end + -30 53830 a 1847 x FU(Y)-170 b(ou)387 b(can)g(also)g(specify)g(a)h +(path,)f(lik)-15 b(e)387 b(this:)-30 57562 y +SDict begin H.S end + -30 57562 +a -30 57562 a +SDict begin 14.56 H.A end + -30 57562 a -30 57562 a +SDict begin [ /View [/XYZ H.V] /Dest (3651) cvn H.B /DEST pdfmark end + -30 57562 a -30 +57562 a +SDict begin H.S end + -30 57562 a -30 57562 a +SDict begin 14.56 H.A end + -30 57562 a -30 57562 +a +SDict begin [ /View [/XYZ H.V] /Dest (3652) cvn H.B /DEST pdfmark end + -30 57562 a 1276 x FJ(\045)1309 58838 y +SDict begin H.S end + 1309 58838 +a 1309 58838 a +SDict begin 14.56 H.A end + 1309 58838 a 1309 58838 a +SDict begin [ /View [/XYZ H.V] /Dest (3653) cvn H.B /DEST pdfmark end + 1309 58838 a +FH(mkdir)743 b(/usr/local/hejaz)-30 60556 y +SDict begin H.S end + -30 60556 +a -30 60556 a +SDict begin 18.2 H.A end + -30 60556 a -30 60556 a +SDict begin [ /View [/XYZ H.V] /Dest (3654) cvn H.B /DEST pdfmark end + -30 60556 a 1846 +x FU(The)2917 62402 y +SDict begin H.S end + 2917 62402 a 2917 62402 a +SDict begin 18.2 H.A end + 2917 +62402 a 2917 62402 a +SDict begin [ /View [/XYZ H.V] /Dest (3655) cvn H.B /DEST pdfmark end + 2917 62402 a FP(-p)537 b FU(option)f(will)g(tell) +14906 62402 y +SDict begin H.S end + 14906 62402 a 14906 62402 a +SDict begin 18.2 H.A end + 14906 62402 +a 14906 62402 a +SDict begin [ /View [/XYZ H.V] /Dest (3656) cvn H.B /DEST pdfmark end + 14906 62402 a FP(mkdir)g FU(to)h(mak)-15 +b(e)536 b(an)-23 b(y)537 b(parent)g(directories.)f(The)h(abo)-23 +b(v)g(e)537 b(e)-23 b(xample)-30 64417 y(will)374 b(f)-15 +b(ail)374 b(if)6502 64417 y +SDict begin H.S end + 6502 64417 a 6502 64417 a +SDict begin 18.2 H.A end + +6502 64417 a 6502 64417 a +SDict begin [ /View [/XYZ H.V] /Dest (3657) cvn H.B /DEST pdfmark end + 6502 64417 a FP(/usr/local)f +FU(does)i(not)f(e)-23 b(xist.)374 b(The)26336 64417 y +SDict begin H.S end + +26336 64417 a 26336 64417 a +SDict begin 18.2 H.A end + 26336 64417 a 26336 64417 +a +SDict begin [ /View [/XYZ H.V] /Dest (3658) cvn H.B /DEST pdfmark end + 26336 64417 a FP(-p)g FU(option)g(will)g(create)39394 +64417 y +SDict begin H.S end + 39394 64417 a 39394 64417 a +SDict begin 18.2 H.A end + 39394 64417 a 39394 +64417 a +SDict begin [ /View [/XYZ H.V] /Dest (3659) cvn H.B /DEST pdfmark end + 39394 64417 a FQ(/usr/local)368 b FU(and)48644 +64417 y +SDict begin H.S end + 48644 64417 a 48644 64417 a +SDict begin 18.2 H.A end + 48644 64417 a 48644 +64417 a +SDict begin [ /View [/XYZ H.V] /Dest (3660) cvn H.B /DEST pdfmark end + 48644 64417 a FQ(/usr/)-30 66432 y(local/hejaz)p +FU(:)p Black 49394 73792 a FR(127)p Black eop end +%%Page: 128 150 +TeXDict begin 128 149 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.128) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (3711) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(10)g(Handling)f(F)-70 b(iles)387 b(and)g(Dir)-57 b(ectories)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3661) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3662) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FJ(\045)1309 3611 +y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + 1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3663) cvn H.B /DEST pdfmark end + 1309 +3611 a FH(mkdir)743 b(-p)h(/usr/local/hejaz)-30 6879 +y +SDict begin H.S end + -30 6879 a -30 6879 a +SDict begin 18.2 H.A end + -30 6879 a -30 6879 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-COPYMOVE) cvn H.B +/DEST pdfmark end + -30 6879 +a 5956 x FL(10.5)620 b(Cop)-33 b(y)619 b(and)g(Mo)-45 +b(ve)-30 13297 y +SDict begin H.S end + -30 13297 a -30 13297 a +SDict begin 18.2 H.A end + -30 13297 a +-30 13297 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-COPYMOVE-CP) cvn +H.B /DEST pdfmark end + -30 13297 a 4900 x FF(cp)-30 18582 y +SDict begin H.S end + -30 +18582 a -30 18582 a +SDict begin 18.2 H.A end + -30 18582 a -30 18582 a +SDict begin [ /View [/XYZ H.V] /Dest (3669) cvn H.B /DEST pdfmark end + -30 18582 +a -30 18582 a +SDict begin H.S end + -30 18582 a -30 18582 a +SDict begin 18.2 H.A end + -30 18582 a -30 +18582 a +SDict begin [ /View [/XYZ H.V] /Dest (3672) cvn H.B /DEST pdfmark end + -30 18582 a -30 19512 a +SDict begin H.S end + -30 19512 a -30 19512 +a +SDict begin 18.2 H.A end + -30 19512 a -30 19512 a +SDict begin [ /View [/XYZ H.V] /Dest (3675) cvn H.B /DEST pdfmark end + -30 19512 a -30 19512 a +SDict begin H.S end + -30 +19512 a -30 19512 a +SDict begin 18.2 H.A end + -30 19512 a -30 19512 a +SDict begin [ /View [/XYZ H.V] /Dest (3676) cvn H.B /DEST pdfmark end + -30 19512 +a 1630 x FP(cp)p FU(\(1\))423 b(copies)g(\002les.)g(DOS)g(users)g(will) +g(notice)f(its)h(similarity)f(to)h(the)37840 21142 y +SDict begin H.S end + +37840 21142 a 37840 21142 a +SDict begin 18.2 H.A end + 37840 21142 a 37840 21142 +a +SDict begin [ /View [/XYZ H.V] /Dest (3677) cvn H.B /DEST pdfmark end + 37840 21142 a FP(copy)g FU(command.)g(There)-30 23156 +y(are)385 b(man)-23 b(y)384 b(options)g(for)13192 23156 +y +SDict begin H.S end + 13192 23156 a 13192 23156 a +SDict begin 18.2 H.A end + 13192 23156 a 13192 23156 +a +SDict begin [ /View [/XYZ H.V] /Dest (3678) cvn H.B /DEST pdfmark end + 13192 23156 a FP(cp)h FU(,)g(so)f(you)g(should)g(ha)-31 +b(v)-23 b(e)385 b(a)f(look)g(at)h(the)f(man)h(page)f(before)h(using)f +(it.)-30 24267 y +SDict begin H.S end + -30 24267 a -30 24267 a +SDict begin 18.2 H.A end + -30 24267 a +-30 24267 a +SDict begin [ /View [/XYZ H.V] /Dest (3679) cvn H.B /DEST pdfmark end + -30 24267 a 1679 x FU(A)373 b(common)g(use)g(is)g(to)g(use) +15124 25946 y +SDict begin H.S end + 15124 25946 a 15124 25946 a +SDict begin 18.2 H.A end + 15124 25946 +a 15124 25946 a +SDict begin [ /View [/XYZ H.V] /Dest (3680) cvn H.B /DEST pdfmark end + 15124 25946 a FP(cp)g FU(to)g(cop)-15 +b(y)372 b(a)i(\002le)e(from)h(one)h(location)e(to)h(another)-85 +b(.)373 b(F)-23 b(or)373 b(e)-23 b(xample:)-30 27831 +y +SDict begin H.S end + -30 27831 a -30 27831 a +SDict begin 14.56 H.A end + -30 27831 a -30 27831 a +SDict begin [ /View [/XYZ H.V] /Dest (3681) cvn H.B /DEST pdfmark end + -30 +27831 a -30 27831 a +SDict begin H.S end + -30 27831 a -30 27831 a +SDict begin 14.56 H.A end + -30 27831 +a -30 27831 a +SDict begin [ /View [/XYZ H.V] /Dest (3682) cvn H.B /DEST pdfmark end + -30 27831 a 1277 x FJ(\045)1309 29108 y +SDict begin H.S end + +1309 29108 a 1309 29108 a +SDict begin 14.56 H.A end + 1309 29108 a 1309 29108 a +SDict begin [ /View [/XYZ H.V] /Dest (3683) cvn H.B /DEST pdfmark end + 1309 +29108 a FH(cp)744 b(hejaz)f(/tmp)-30 30825 y +SDict begin H.S end + -30 30825 +a -30 30825 a +SDict begin 18.2 H.A end + -30 30825 a -30 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (3684) cvn H.B /DEST pdfmark end + -30 30825 a 1847 +x FU(This)387 b(copies)g(the)9741 32672 y +SDict begin H.S end + 9741 32672 +a 9741 32672 a +SDict begin 18.2 H.A end + 9741 32672 a 9741 32672 a +SDict begin [ /View [/XYZ H.V] /Dest (3685) cvn H.B /DEST pdfmark end + 9741 32672 a +FQ(hejaz)d FU(\002le)j(from)g(the)h(current)f(directory)g(to)g(the) +35942 32672 y +SDict begin H.S end + 35942 32672 a 35942 32672 a +SDict begin 18.2 H.A end + 35942 32672 +a 35942 32672 a +SDict begin [ /View [/XYZ H.V] /Dest (3686) cvn H.B /DEST pdfmark end + 35942 32672 a FQ(/tmp)e FU(directory)-101 +b(.)-30 33782 y +SDict begin H.S end + -30 33782 a -30 33782 a +SDict begin 18.2 H.A end + -30 33782 a -30 +33782 a +SDict begin [ /View [/XYZ H.V] /Dest (3687) cvn H.B /DEST pdfmark end + -30 33782 a 1679 x FU(Man)-23 b(y)387 b(users)g(prefer)h(to)f +(k)-15 b(eep)387 b(the)g(timestamps)f(preserv)-23 b(ed,)387 +b(as)g(in)h(this)e(e)-23 b(xample:)-30 37347 y +SDict begin H.S end + -30 37347 +a -30 37347 a +SDict begin 14.56 H.A end + -30 37347 a -30 37347 a +SDict begin [ /View [/XYZ H.V] /Dest (3688) cvn H.B /DEST pdfmark end + -30 37347 a -30 +37347 a +SDict begin H.S end + -30 37347 a -30 37347 a +SDict begin 14.56 H.A end + -30 37347 a -30 37347 +a +SDict begin [ /View [/XYZ H.V] /Dest (3689) cvn H.B /DEST pdfmark end + -30 37347 a 1276 x FJ(\045)1309 38623 y +SDict begin H.S end + 1309 38623 +a 1309 38623 a +SDict begin 14.56 H.A end + 1309 38623 a 1309 38623 a +SDict begin [ /View [/XYZ H.V] /Dest (3690) cvn H.B /DEST pdfmark end + 1309 38623 a +FH(cp)744 b(-a)f(hejaz)h(/tmp)-30 40341 y +SDict begin H.S end + -30 40341 a +-30 40341 a +SDict begin 18.2 H.A end + -30 40341 a -30 40341 a +SDict begin [ /View [/XYZ H.V] /Dest (3691) cvn H.B /DEST pdfmark end + -30 40341 a 1846 +x FU(This)387 b(ensures)g(that)g(the)g(timestamps)f(are)i(not)f +(modi\002ed)f(in)h(the)g(cop)-15 b(y)-101 b(.)-30 43298 +y +SDict begin H.S end + -30 43298 a -30 43298 a +SDict begin 18.2 H.A end + -30 43298 a -30 43298 a +SDict begin [ /View [/XYZ H.V] /Dest (3692) cvn H.B /DEST pdfmark end + -30 +43298 a 1679 x FU(T)-124 b(o)364 b(recursi)-39 b(v)-23 +b(ely)364 b(cop)-15 b(y)364 b(the)g(contents)g(of)g(a)g(directory)g(to) +g(another)g(directory)-101 b(,)365 b(you)f(w)-15 b(ould)363 +b(issue)-30 46992 y(this)387 b(command:)-30 48557 y +SDict begin H.S end + -30 +48557 a -30 48557 a +SDict begin 14.56 H.A end + -30 48557 a -30 48557 a +SDict begin [ /View [/XYZ H.V] /Dest (3693) cvn H.B /DEST pdfmark end + -30 48557 +a -30 48557 a +SDict begin H.S end + -30 48557 a -30 48557 a +SDict begin 14.56 H.A end + -30 48557 a -30 +48557 a +SDict begin [ /View [/XYZ H.V] /Dest (3694) cvn H.B /DEST pdfmark end + -30 48557 a 1596 x FJ(\045)1309 50153 y +SDict begin H.S end + 1309 +50153 a 1309 50153 a +SDict begin 14.56 H.A end + 1309 50153 a 1309 50153 a +SDict begin [ /View [/XYZ H.V] /Dest (3695) cvn H.B /DEST pdfmark end + 1309 50153 +a FH(cp)744 b(-R)5772 50153 y +SDict begin H.S end + 5772 50153 a 5772 50153 +a +SDict begin 14.56 H.A end + 5772 50153 a 5772 50153 a +SDict begin [ /View [/XYZ H.V] /Dest (3696) cvn H.B /DEST pdfmark end + 5772 50153 a Fy(mydir)811 +b FH(/tmp)-30 51871 y +SDict begin H.S end + -30 51871 a -30 51871 a +SDict begin 18.2 H.A end + -30 51871 +a -30 51871 a +SDict begin [ /View [/XYZ H.V] /Dest (3697) cvn H.B /DEST pdfmark end + -30 51871 a 1846 x FU(That)387 b(will)g(cop)-15 +b(y)387 b(the)11663 53717 y +SDict begin H.S end + 11663 53717 a 11663 53717 +a +SDict begin 18.2 H.A end + 11663 53717 a 11663 53717 a +SDict begin [ /View [/XYZ H.V] /Dest (3698) cvn H.B /DEST pdfmark end + 11663 53717 a Fz(mydir)442 +b FU(directory)387 b(to)g(the)26612 53717 y +SDict begin H.S end + 26612 53717 +a 26612 53717 a +SDict begin 18.2 H.A end + 26612 53717 a 26612 53717 a +SDict begin [ /View [/XYZ H.V] /Dest (3699) cvn H.B /DEST pdfmark end + 26612 53717 +a FQ(/tmp)d FU(directory)-101 b(.)-30 54828 y +SDict begin H.S end + -30 54828 +a -30 54828 a +SDict begin 18.2 H.A end + -30 54828 a -30 54828 a +SDict begin [ /View [/XYZ H.V] /Dest (3700) cvn H.B /DEST pdfmark end + -30 54828 a 1679 +x FU(Also)471 b(if)h(you)f(wish)g(to)g(cop)-15 b(y)471 +b(a)h(directory)f(or)h(a)g(\002le)f(and)g(k)-15 b(eep)471 +b(all)h(it')-85 b(s)471 b(old)g(permissions)f(and)-30 +58522 y(time)387 b(stamps)f(and)i(k)-15 b(eep)387 b(it)g(e)-23 +b(xactly)386 b(the)i(same)f(use)28124 58522 y +SDict begin H.S end + 28124 58522 +a 28124 58522 a +SDict begin 18.2 H.A end + 28124 58522 a 28124 58522 a +SDict begin [ /View [/XYZ H.V] /Dest (3701) cvn H.B /DEST pdfmark end + 28124 58522 +a FP(cp)744 b(-p)p FU(.)-30 60407 y +SDict begin H.S end + -30 60407 a -30 60407 +a +SDict begin 14.56 H.A end + -30 60407 a -30 60407 a +SDict begin [ /View [/XYZ H.V] /Dest (3702) cvn H.B /DEST pdfmark end + -30 60407 a -30 60407 a +SDict begin H.S end + -30 +60407 a -30 60407 a +SDict begin 14.56 H.A end + -30 60407 a -30 60407 a +SDict begin [ /View [/XYZ H.V] /Dest (3703) cvn H.B /DEST pdfmark end + -30 60407 +a 1276 x FJ(\045)1309 61683 y +SDict begin H.S end + 1309 61683 a 1309 61683 +a +SDict begin 14.56 H.A end + 1309 61683 a 1309 61683 a +SDict begin [ /View [/XYZ H.V] /Dest (3704) cvn H.B /DEST pdfmark end + 1309 61683 a FH(ls)g(-l)f(file)-30 +63295 y FP(-rw-r--r--)2974 b(1)744 b(root)3719 b(vlad)8926 +b(4)744 b(Jan)1487 b(1)744 b(15:27)f(file)-30 63321 y +SDict begin H.S end + +-30 63321 a -30 63321 a +SDict begin 14.56 H.A end + -30 63321 a -30 63321 a +SDict begin [ /View [/XYZ H.V] /Dest (3705) cvn H.B /DEST pdfmark end + -30 63321 +a 1586 x FJ(\045)1309 64907 y +SDict begin H.S end + 1309 64907 a 1309 64907 +a +SDict begin 14.56 H.A end + 1309 64907 a 1309 64907 a +SDict begin [ /View [/XYZ H.V] /Dest (3706) cvn H.B /DEST pdfmark end + 1309 64907 a FH(cp)h(-p)f(file)h(/tmp)-30 +65075 y +SDict begin H.S end + -30 65075 a -30 65075 a +SDict begin 14.56 H.A end + -30 65075 a -30 65075 +a +SDict begin [ /View [/XYZ H.V] /Dest (3707) cvn H.B /DEST pdfmark end + -30 65075 a 1443 x FJ(\045)1309 66518 y +SDict begin H.S end + 1309 66518 +a 1309 66518 a +SDict begin 14.56 H.A end + 1309 66518 a 1309 66518 a +SDict begin [ /View [/XYZ H.V] /Dest (3708) cvn H.B /DEST pdfmark end + 1309 66518 a +FH(ls)g(-l)f(/tmp/file)-30 68130 y FP(-rw-r--r--)2974 +b(1)744 b(root)3719 b(vlad)8926 b(4)744 b(Jan)1487 b(1)744 +b(15:27)f(file)p Black -30 73792 a FR(128)p Black eop +end +%%Page: 129 151 +TeXDict begin 129 150 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.129) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (3761) cvn H.B /DEST pdfmark end + -30 -2687 a 24998 -1636 a FR(Chapter)387 +b(10)g(Handling)f(F)-70 b(iles)387 b(and)g(Dir)-57 b(ectories)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3709) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3710) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FP(cp)387 b FU(has)h(man)-23 +b(y)386 b(more)h(options)g(that)g(are)g(discussed)g(in)g(detail)g(in)g +(the)g(online)g(manual)g(page.)-30 4721 y +SDict begin H.S end + -30 4721 a +-30 4721 a +SDict begin 18.2 H.A end + -30 4721 a -30 4721 a +SDict begin [ /View [/XYZ H.V] /Dest (3711) cvn H.B /DEST pdfmark end + -30 4721 a 5182 x FF(mv)-30 +9903 y +SDict begin H.S end + -30 9903 a -30 9903 a +SDict begin 18.2 H.A end + -30 9903 a -30 9903 a +SDict begin [ /View [/XYZ H.V] /Dest (3714) cvn H.B /DEST pdfmark end + -30 +9903 a -30 9903 a +SDict begin H.S end + -30 9903 a -30 9903 a +SDict begin 18.2 H.A end + -30 9903 a -30 +9903 a +SDict begin [ /View [/XYZ H.V] /Dest (3717) cvn H.B /DEST pdfmark end + -30 9903 a -30 10833 a +SDict begin H.S end + -30 10833 a -30 10833 a +SDict begin 18.2 H.A end + +-30 10833 a -30 10833 a +SDict begin [ /View [/XYZ H.V] /Dest (3720) cvn H.B /DEST pdfmark end + -30 10833 a -30 10833 a +SDict begin H.S end + -30 10833 +a -30 10833 a +SDict begin 18.2 H.A end + -30 10833 a -30 10833 a +SDict begin [ /View [/XYZ H.V] /Dest (3721) cvn H.B /DEST pdfmark end + -30 10833 a 2015 +x FP(mv)p FU(\(1\))g(mo)-23 b(v)g(es)387 b(\002les)f(from)i(one)f +(place)g(to)g(another)-85 b(.)388 b(Sounds)e(simple)g(enough)h(doesn') +-28 b(t)387 b(it?)-30 14733 y +SDict begin H.S end + -30 14733 a -30 14733 a +SDict begin 14.56 H.A end + +-30 14733 a -30 14733 a +SDict begin [ /View [/XYZ H.V] /Dest (3722) cvn H.B /DEST pdfmark end + -30 14733 a -30 14733 a +SDict begin H.S end + -30 14733 +a -30 14733 a +SDict begin 14.56 H.A end + -30 14733 a -30 14733 a +SDict begin [ /View [/XYZ H.V] /Dest (3723) cvn H.B /DEST pdfmark end + -30 14733 a 1276 +x FJ(\045)1309 16009 y +SDict begin H.S end + 1309 16009 a 1309 16009 a +SDict begin 14.56 H.A end + 1309 +16009 a 1309 16009 a +SDict begin [ /View [/XYZ H.V] /Dest (3724) cvn H.B /DEST pdfmark end + 1309 16009 a FH(mv)744 b(oldfile)f(/tmp/newfile) +-30 17727 y +SDict begin H.S end + -30 17727 a -30 17727 a +SDict begin 18.2 H.A end + -30 17727 a -30 17727 +a +SDict begin [ /View [/XYZ H.V] /Dest (3725) cvn H.B /DEST pdfmark end + -30 17727 a -30 17727 a +SDict begin H.S end + -30 17727 a -30 17727 a +SDict begin 18.2 H.A end + -30 +17727 a -30 17727 a +SDict begin [ /View [/XYZ H.V] /Dest (3726) cvn H.B /DEST pdfmark end + -30 17727 a 1846 x FP(mv)600 b FU(has)f(a)h(fe)-39 +b(w)600 b(useful)f(command)g(line)g(options)g(that)g(are)h(detailed)g +(in)f(the)g(man)h(page.)g(In)-30 21588 y(practice,)5650 +21588 y +SDict begin H.S end + 5650 21588 a 5650 21588 a +SDict begin 18.2 H.A end + 5650 21588 a 5650 21588 +a +SDict begin [ /View [/XYZ H.V] /Dest (3727) cvn H.B /DEST pdfmark end + 5650 21588 a FP(mv)387 b FU(is)g(almost)g(ne)-39 b(v)-23 +b(er)387 b(used)g(with)g(commandline)f(options.)-30 24248 +y +SDict begin H.S end + -30 24248 a -30 24248 a +SDict begin 18.2 H.A end + -30 24248 a -30 24248 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-DELETION) cvn H.B +/DEST pdfmark end + -30 +24248 a 5789 x FL(10.6)620 b(Deletion:)g Fq(rm)664 b +FL(and)619 b Fq(rmdir)-30 30065 y +SDict begin H.S end + -30 30065 a -30 30065 +a +SDict begin 18.2 H.A end + -30 30065 a -30 30065 a +SDict begin [ /View [/XYZ H.V] /Dest (3732) cvn H.B /DEST pdfmark end + -30 30065 a 5334 x FF(rm)-30 +36329 y +SDict begin H.S end + -30 36329 a -30 36329 a +SDict begin 18.2 H.A end + -30 36329 a -30 36329 +a +SDict begin [ /View [/XYZ H.V] /Dest (3735) cvn H.B /DEST pdfmark end + -30 36329 a -30 36329 a +SDict begin H.S end + -30 36329 a -30 36329 a +SDict begin 18.2 H.A end + -30 +36329 a -30 36329 a +SDict begin [ /View [/XYZ H.V] /Dest (3736) cvn H.B /DEST pdfmark end + -30 36329 a 2015 x FP(rm)p FU(\(1\))378 +b(remo)-23 b(v)g(es)378 b(\002les)g(and)g(directory)20777 +38344 y +SDict begin H.S end + 20777 38344 a 20777 38344 a +SDict begin 18.2 H.A end + 20777 38344 a 20777 +38344 a +SDict begin [ /View [/XYZ H.V] /Dest (3737) cvn H.B /DEST pdfmark end + 20777 38344 a 378 w FU(trees.)h(DOS)f(users)g(will)g(notice)g +(the)g(similarity)f(to)h(both)-30 40359 y(the)2467 40359 +y +SDict begin H.S end + 2467 40359 a 2467 40359 a +SDict begin 18.2 H.A end + 2467 40359 a 2467 40359 a +SDict begin [ /View [/XYZ H.V] /Dest (3740) cvn H.B /DEST pdfmark end + +2467 40359 a FP(del)603 b FU(and)8143 40359 y +SDict begin H.S end + 8143 40359 +a 8143 40359 a +SDict begin 18.2 H.A end + 8143 40359 a 8143 40359 a +SDict begin [ /View [/XYZ H.V] /Dest (3741) cvn H.B /DEST pdfmark end + 8143 40359 a +FP(deltree)f FU(commands.)21659 40359 y +SDict begin H.S end + 21659 40359 a +21659 40359 a +SDict begin 18.2 H.A end + 21659 40359 a 21659 40359 a +SDict begin [ /View [/XYZ H.V] /Dest (3742) cvn H.B /DEST pdfmark end + 21659 40359 +a FP(rm)h FU(can)g(be)g(v)-23 b(ery)603 b(dangerous)f(if)h(you)g(do)g +(not)g(w)-15 b(atch)-30 42373 y(yourself.)434 b(While)f(it)g(is)h +(sometimes)e(possible)h(to)g(retrie)-39 b(v)-23 b(e)434 +b(a)f(recently)h(deleted)f(\002le,)h(it)f(can)h(be)-30 +44388 y(complicated)387 b(\(and)g(potentially)f(costly\))h(and)g(is)g +(be)-23 b(yond)387 b(the)g(scope)g(of)h(this)e(book.)-30 +45498 y +SDict begin H.S end + -30 45498 a -30 45498 a +SDict begin 18.2 H.A end + -30 45498 a -30 45498 +a +SDict begin [ /View [/XYZ H.V] /Dest (3743) cvn H.B /DEST pdfmark end + -30 45498 a 1680 x FU(T)-124 b(o)387 b(remo)-23 b(v)g(e)387 +b(a)g(single)g(\002le,)h(specify)f(its)g(name)g(when)g(you)g(run)g(rm:) +-30 49063 y +SDict begin H.S end + -30 49063 a -30 49063 a +SDict begin 14.56 H.A end + -30 49063 a -30 49063 +a +SDict begin [ /View [/XYZ H.V] /Dest (3744) cvn H.B /DEST pdfmark end + -30 49063 a -30 49063 a +SDict begin H.S end + -30 49063 a -30 49063 a +SDict begin 14.56 H.A end + -30 +49063 a -30 49063 a +SDict begin [ /View [/XYZ H.V] /Dest (3745) cvn H.B /DEST pdfmark end + -30 49063 a 1276 x FJ(\045)1309 50339 +y +SDict begin H.S end + 1309 50339 a 1309 50339 a +SDict begin 14.56 H.A end + 1309 50339 a 1309 50339 a +SDict begin [ /View [/XYZ H.V] /Dest (3746) cvn H.B /DEST pdfmark end + +1309 50339 a FH(rm)744 b(file1)-30 51914 y +SDict begin H.S end + -30 51914 +a -30 51914 a +SDict begin 18.2 H.A end + -30 51914 a -30 51914 a +SDict begin [ /View [/XYZ H.V] /Dest (3747) cvn H.B /DEST pdfmark end + -30 51914 a 1989 +x FU(If)536 b(the)f(\002le)g(has)g(write)g(permissions)f(remo)-23 +b(v)g(ed,)535 b(you)h(may)f(get)g(a)g(permission)g(denied)g(error)-30 +55918 y(message.)387 b(T)-124 b(o)388 b(force)f(remo)-23 +b(v)-39 b(al)387 b(of)h(the)f(\002le)g(no)g(matter)g(what,)g(pass)g +(the)38692 55918 y +SDict begin H.S end + 38692 55918 a 38692 55918 a +SDict begin 18.2 H.A end + 38692 +55918 a 38692 55918 a +SDict begin [ /View [/XYZ H.V] /Dest (3748) cvn H.B /DEST pdfmark end + 38692 55918 a FP(-f)g FU(option,)g(lik)-15 +b(e)386 b(this:)-30 57803 y +SDict begin H.S end + -30 57803 a -30 57803 a +SDict begin 14.56 H.A end + -30 +57803 a -30 57803 a +SDict begin [ /View [/XYZ H.V] /Dest (3749) cvn H.B /DEST pdfmark end + -30 57803 a -30 57803 a +SDict begin H.S end + -30 57803 +a -30 57803 a +SDict begin 14.56 H.A end + -30 57803 a -30 57803 a +SDict begin [ /View [/XYZ H.V] /Dest (3750) cvn H.B /DEST pdfmark end + -30 57803 a 1277 +x FJ(\045)1309 59080 y +SDict begin H.S end + 1309 59080 a 1309 59080 a +SDict begin 14.56 H.A end + 1309 +59080 a 1309 59080 a +SDict begin [ /View [/XYZ H.V] /Dest (3751) cvn H.B /DEST pdfmark end + 1309 59080 a FH(rm)744 b(-f)f(file1)-30 +60654 y +SDict begin H.S end + -30 60654 a -30 60654 a +SDict begin 18.2 H.A end + -30 60654 a -30 60654 +a +SDict begin [ /View [/XYZ H.V] /Dest (3752) cvn H.B /DEST pdfmark end + -30 60654 a 1990 x FU(T)-124 b(o)551 b(remo)-23 b(v)g(e)550 +b(an)h(entire)f(directory)-101 b(,)552 b(you)e(use)h(the)27733 +62644 y +SDict begin H.S end + 27733 62644 a 27733 62644 a +SDict begin 18.2 H.A end + 27733 62644 a 27733 +62644 a +SDict begin [ /View [/XYZ H.V] /Dest (3753) cvn H.B /DEST pdfmark end + 27733 62644 a 28284 62644 a +SDict begin H.S end + 28284 62644 a 28284 +62644 a +SDict begin 18.2 H.A end + 28284 62644 a 28284 62644 a +SDict begin [ /View [/XYZ H.V] /Dest (3756) cvn H.B /DEST pdfmark end + 28284 62644 a FP(-r)g +FU(and)33112 62644 y +SDict begin H.S end + 33112 62644 a 33112 62644 a +SDict begin 18.2 H.A end + 33112 +62644 a 33112 62644 a +SDict begin [ /View [/XYZ H.V] /Dest (3757) cvn H.B /DEST pdfmark end + 33112 62644 a FP(-f)f FU(options)g(together)-85 +b(.)551 b(This)f(is)h(a)-30 64659 y(good)545 b(e)-23 +b(xample)545 b(of)h(ho)-39 b(w)546 b(to)f(delete)h(the)g(entire)f +(contents)g(of)h(your)f(hard)h(dri)-39 b(v)-23 b(e.)546 +b(Y)-170 b(ou)545 b(really)-30 66673 y(don')-28 b(t)387 +b(w)-15 b(ant)387 b(to)g(do)g(this.)g(But)g(here')-85 +b(s)387 b(the)g(command)g(an)-23 b(yw)-15 b(ay:)p Black +49451 73792 a FR(129)p Black eop end +%%Page: 130 152 +TeXDict begin 130 151 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.130) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(10)g(Handling)f(F)-70 +b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 2504 +a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3758) cvn H.B /DEST pdfmark end + -30 2504 +a -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 +a +SDict begin [ /View [/XYZ H.V] /Dest (3759) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FJ(#)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 +3611 a +SDict begin 14.56 H.A end + 1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3760) cvn H.B /DEST pdfmark end + 1309 3611 a FH(rm)744 +b(-rf)f(/)-30 7176 y FU(Be)431 b(v)-23 b(ery)430 b(careful)h(with)g +FP(rm)p FU(;)f(you)h(can)g(shoot)f(yourself)g(in)h(the)f(foot.)h(There) +g(are)g(se)-39 b(v)-23 b(eral)431 b(com-)-30 9190 y(mand)387 +b(line)g(options,)g(which)g(are)h(discussed)e(in)h(detail)g(in)g(the)g +(online)g(manual)g(page.)-30 10301 y +SDict begin H.S end + -30 10301 a -30 +10301 a +SDict begin 18.2 H.A end + -30 10301 a -30 10301 a +SDict begin [ /View [/XYZ H.V] /Dest (3763) cvn H.B /DEST pdfmark end + -30 10301 a 5181 x FF(rmdir)-30 +16435 y +SDict begin H.S end + -30 16435 a -30 16435 a +SDict begin 18.2 H.A end + -30 16435 a -30 16435 +a +SDict begin [ /View [/XYZ H.V] /Dest (3766) cvn H.B /DEST pdfmark end + -30 16435 a -30 16435 a +SDict begin H.S end + -30 16435 a -30 16435 a +SDict begin 18.2 H.A end + -30 +16435 a -30 16435 a +SDict begin [ /View [/XYZ H.V] /Dest (3767) cvn H.B /DEST pdfmark end + -30 16435 a 1992 x FP(rmdir)p FU(\(1\))419 +b(remo)-23 b(v)g(es)419 b(directories)h(from)f(the)h(\002lesystem.)f +(The)h(directory)f(must)h(be)g(empty)f(be-)-30 20441 +y(fore)388 b(it)f(can)g(be)h(remo)-23 b(v)g(ed.)386 b(The)i(syntax)e +(is)i(simply:)-30 22327 y +SDict begin H.S end + -30 22327 a -30 22327 a +SDict begin 14.56 H.A end + -30 +22327 a -30 22327 a +SDict begin [ /View [/XYZ H.V] /Dest (3768) cvn H.B /DEST pdfmark end + -30 22327 a -30 22327 a +SDict begin H.S end + -30 22327 +a -30 22327 a +SDict begin 14.56 H.A end + -30 22327 a -30 22327 a +SDict begin [ /View [/XYZ H.V] /Dest (3769) cvn H.B /DEST pdfmark end + -30 22327 a 1276 +x FJ(\045)1309 23603 y +SDict begin H.S end + 1309 23603 a 1309 23603 a +SDict begin 14.56 H.A end + 1309 +23603 a 1309 23603 a +SDict begin [ /View [/XYZ H.V] /Dest (3770) cvn H.B /DEST pdfmark end + 1309 23603 a FH(rmdir)743 b FK(<)6715 +23603 y +SDict begin H.S end + 6715 23603 a 6715 23603 a +SDict begin 14.56 H.A end + 6715 23603 a 6715 23603 +a +SDict begin [ /View [/XYZ H.V] /Dest (3771) cvn H.B /DEST pdfmark end + 6715 23603 a Fy(directory)117 b FK(>)-30 25321 y +SDict begin H.S end + -30 +25321 a -30 25321 a +SDict begin 18.2 H.A end + -30 25321 a -30 25321 a +SDict begin [ /View [/XYZ H.V] /Dest (3772) cvn H.B /DEST pdfmark end + -30 25321 +a 1846 x FU(This)387 b(e)-23 b(xample)387 b(will)f(remo)-23 +b(v)g(e)387 b(the)18796 27167 y +SDict begin H.S end + 18796 27167 a 18796 27167 +a +SDict begin 18.2 H.A end + 18796 27167 a 18796 27167 a +SDict begin [ /View [/XYZ H.V] /Dest (3773) cvn H.B /DEST pdfmark end + 18796 27167 a FQ(hejaz)d +FU(subdirectory)j(in)g(the)g(current)h(w)-15 b(orking)386 +b(directory:)-30 29052 y +SDict begin H.S end + -30 29052 a -30 29052 a +SDict begin 14.56 H.A end + -30 +29052 a -30 29052 a +SDict begin [ /View [/XYZ H.V] /Dest (3774) cvn H.B /DEST pdfmark end + -30 29052 a -30 29052 a +SDict begin H.S end + -30 29052 +a -30 29052 a +SDict begin 14.56 H.A end + -30 29052 a -30 29052 a +SDict begin [ /View [/XYZ H.V] /Dest (3775) cvn H.B /DEST pdfmark end + -30 29052 a 1277 +x FJ(\045)1309 30329 y +SDict begin H.S end + 1309 30329 a 1309 30329 a +SDict begin 14.56 H.A end + 1309 +30329 a 1309 30329 a +SDict begin [ /View [/XYZ H.V] /Dest (3776) cvn H.B /DEST pdfmark end + 1309 30329 a FH(rmdir)743 b(hejaz)-30 +32046 y +SDict begin H.S end + -30 32046 a -30 32046 a +SDict begin 18.2 H.A end + -30 32046 a -30 32046 +a +SDict begin [ /View [/XYZ H.V] /Dest (3777) cvn H.B /DEST pdfmark end + -30 32046 a 1847 x FU(If)424 b(that)g(directory)g(does)g(not)g(e)-23 +b(xist,)19580 33893 y +SDict begin H.S end + 19580 33893 a 19580 33893 a +SDict begin 18.2 H.A end + 19580 +33893 a 19580 33893 a +SDict begin [ /View [/XYZ H.V] /Dest (3778) cvn H.B /DEST pdfmark end + 19580 33893 a FP(rmdir)423 b FU(will)h(tell)f +(you.)i(Y)-170 b(ou)423 b(can)h(also)g(specify)g(a)g(full)g(path)-30 +35908 y(to)387 b(a)h(directory)f(to)g(remo)-23 b(v)g(e,)387 +b(as)g(this)g(e)-23 b(xample)387 b(sho)-39 b(ws:)-30 +37793 y +SDict begin H.S end + -30 37793 a -30 37793 a +SDict begin 14.56 H.A end + -30 37793 a -30 37793 +a +SDict begin [ /View [/XYZ H.V] /Dest (3779) cvn H.B /DEST pdfmark end + -30 37793 a -30 37793 a +SDict begin H.S end + -30 37793 a -30 37793 a +SDict begin 14.56 H.A end + -30 +37793 a -30 37793 a +SDict begin [ /View [/XYZ H.V] /Dest (3780) cvn H.B /DEST pdfmark end + -30 37793 a 1276 x FJ(\045)1309 39069 +y +SDict begin H.S end + 1309 39069 a 1309 39069 a +SDict begin 14.56 H.A end + 1309 39069 a 1309 39069 a +SDict begin [ /View [/XYZ H.V] /Dest (3781) cvn H.B /DEST pdfmark end + +1309 39069 a FH(rmdir)743 b(/tmp/hejaz)-30 40787 y +SDict begin H.S end + -30 +40787 a -30 40787 a +SDict begin 18.2 H.A end + -30 40787 a -30 40787 a +SDict begin [ /View [/XYZ H.V] /Dest (3782) cvn H.B /DEST pdfmark end + -30 40787 +a 1847 x FU(That)387 b(e)-23 b(xample)387 b(will)g(try)g(to)g(remo)-23 +b(v)g(e)387 b(the)22584 42634 y +SDict begin H.S end + 22584 42634 a 22584 42634 +a +SDict begin 18.2 H.A end + 22584 42634 a 22584 42634 a +SDict begin [ /View [/XYZ H.V] /Dest (3783) cvn H.B /DEST pdfmark end + 22584 42634 a FQ(hejaz)d +FU(directory)j(inside)g(the)38456 42634 y +SDict begin H.S end + 38456 42634 +a 38456 42634 a +SDict begin 18.2 H.A end + 38456 42634 a 38456 42634 a +SDict begin [ /View [/XYZ H.V] /Dest (3784) cvn H.B /DEST pdfmark end + 38456 42634 +a FQ(/tmp)e FU(directory)-101 b(.)-30 43744 y +SDict begin H.S end + -30 43744 +a -30 43744 a +SDict begin 18.2 H.A end + -30 43744 a -30 43744 a +SDict begin [ /View [/XYZ H.V] /Dest (3785) cvn H.B /DEST pdfmark end + -30 43744 a 1679 +x FU(Y)-170 b(ou)482 b(can)g(also)h(remo)-23 b(v)g(e)481 +b(a)i(directory)f(and)h(all)f(of)g(its)g(parent)h(directories)f(by)g +(passing)g(the)50288 45423 y +SDict begin H.S end + 50288 45423 a 50288 45423 +a +SDict begin 18.2 H.A end + 50288 45423 a 50288 45423 a +SDict begin [ /View [/XYZ H.V] /Dest (3786) cvn H.B /DEST pdfmark end + 50288 45423 a FP(-p)-30 +47438 y FU(option.)-30 49323 y +SDict begin H.S end + -30 49323 a -30 49323 +a +SDict begin 14.56 H.A end + -30 49323 a -30 49323 a +SDict begin [ /View [/XYZ H.V] /Dest (3787) cvn H.B /DEST pdfmark end + -30 49323 a -30 49323 a +SDict begin H.S end + -30 +49323 a -30 49323 a +SDict begin 14.56 H.A end + -30 49323 a -30 49323 a +SDict begin [ /View [/XYZ H.V] /Dest (3788) cvn H.B /DEST pdfmark end + -30 49323 +a 1276 x FJ(\045)1309 50599 y +SDict begin H.S end + 1309 50599 a 1309 50599 +a +SDict begin 14.56 H.A end + 1309 50599 a 1309 50599 a +SDict begin [ /View [/XYZ H.V] /Dest (3789) cvn H.B /DEST pdfmark end + 1309 50599 a FH(rmdir)743 +b(-p)h(/tmp/hejaz)-30 52317 y +SDict begin H.S end + -30 52317 a -30 52317 a +SDict begin 18.2 H.A end + +-30 52317 a -30 52317 a +SDict begin [ /View [/XYZ H.V] /Dest (3790) cvn H.B /DEST pdfmark end + -30 52317 a 1847 x FU(This)498 +b(will)g(\002rst)f(try)h(to)g(remo)-23 b(v)g(e)498 b(the)20459 +54164 y +SDict begin H.S end + 20459 54164 a 20459 54164 a +SDict begin 18.2 H.A end + 20459 54164 a 20459 +54164 a +SDict begin [ /View [/XYZ H.V] /Dest (3791) cvn H.B /DEST pdfmark end + 20459 54164 a FQ(hejaz)d FU(directory)j(inside)34383 +54164 y +SDict begin H.S end + 34383 54164 a 34383 54164 a +SDict begin 18.2 H.A end + 34383 54164 a 34383 +54164 a +SDict begin [ /View [/XYZ H.V] /Dest (3792) cvn H.B /DEST pdfmark end + 34383 54164 a FQ(/tmp)p FU(.)e(If)i(that)g(is)g(successful,)g +(it)-30 56178 y(will)410 b(try)g(to)g(remo)-23 b(v)g(e)11552 +56178 y +SDict begin H.S end + 11552 56178 a 11552 56178 a +SDict begin 18.2 H.A end + 11552 56178 a 11552 +56178 a +SDict begin [ /View [/XYZ H.V] /Dest (3793) cvn H.B /DEST pdfmark end + 11552 56178 a FQ(/tmp)p FU(.)14855 56178 y +SDict begin H.S end + 14855 +56178 a 14855 56178 a +SDict begin 18.2 H.A end + 14855 56178 a 14855 56178 a +SDict begin [ /View [/XYZ H.V] /Dest (3794) cvn H.B /DEST pdfmark end + 14855 +56178 a FP(rmdir)410 b FU(will)g(continue)g(this)g(until)f(an)i(error)f +(is)h(encountered)f(or)g(the)-30 58193 y(entire)387 b(tree)h +(speci\002ed)e(is)i(remo)-23 b(v)g(ed.)-30 60853 y +SDict begin H.S end + -30 +60853 a -30 60853 a +SDict begin 18.2 H.A end + -30 60853 a -30 60853 a +SDict begin [ /View [/XYZ H.V] /Dest (FILE-COMMANDS-LINK) cvn H.B /DEST +pdfmark end + -30 60853 +a Black 12939 x FR(130)p Black eop end +%%Page: 131 153 +TeXDict begin 131 152 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.131) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 24998 -1636 a FR(Chapter)387 b(10)g(Handling)f(F)-70 +b(iles)387 b(and)g(Dir)-57 b(ectories)p Black -30 4132 +a FL(10.7)620 b(Aliasing)g(\002les)g(with)h Fq(ln)-30 +4629 y +SDict begin H.S end + -30 4629 a -30 4629 a +SDict begin 18.2 H.A end + -30 4629 a -30 4629 a +SDict begin [ /View [/XYZ H.V] /Dest (3798) cvn H.B /DEST pdfmark end + -30 +4629 a -30 5744 a +SDict begin H.S end + -30 5744 a -30 5744 a +SDict begin 18.2 H.A end + -30 5744 a -30 +5744 a +SDict begin [ /View [/XYZ H.V] /Dest (3800) cvn H.B /DEST pdfmark end + -30 5744 a -30 5744 a +SDict begin H.S end + -30 5744 a -30 5744 a +SDict begin 18.2 H.A end + -30 +5744 a -30 5744 a +SDict begin [ /View [/XYZ H.V] /Dest (3801) cvn H.B /DEST pdfmark end + -30 5744 a 1519 x FP(ln)p FU(\(1\))511 +b(is)g(used)f(to)h(create)h(links)e(between)h(\002les.)g(These)f(links) +h(can)g(be)g(either)g(hard)g(links)f(or)-30 9277 y(soft)344 +b(\(symbolic\))f(links.)g(The)h(dif)-39 b(ferences)344 +b(between)g(the)g(tw)-15 b(o)343 b(kinds)g(of)h(links)g(were)g +(discussed)-30 11292 y(in)p 0 TeXcolorgray 1532 11292 +a +SDict begin H.S end + 1532 11292 a FU(Section)387 b(9.3)8506 11292 y +SDict begin 18.2 H.L end + 8506 +11292 a 8506 11292 a +SDict begin [ /Subtype /Link /Dest (FILESYSTEM-STRUCTURE-LINKS) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 8506 11292 a Black FU(.)356 b(If)h(you)e(w)-15 +b(anted)356 b(to)f(mak)-15 b(e)356 b(a)g(symbolic)f(link)g(to)h(the)g +(directory)43007 11292 y +SDict begin H.S end + 43007 11292 a 43007 11292 a +SDict begin 18.2 H.A end + +43007 11292 a 43007 11292 a +SDict begin [ /View [/XYZ H.V] /Dest (3803) cvn H.B /DEST pdfmark end + 43007 11292 a FQ(/var/media/mp3)-30 +13307 y FU(and)387 b(place)h(the)f(link)g(in)g(your)g(home)g(directory) +-101 b(,)388 b(you)f(w)-15 b(ould)386 b(do)h(this:)-30 +15192 y +SDict begin H.S end + -30 15192 a -30 15192 a +SDict begin 14.56 H.A end + -30 15192 a -30 15192 +a +SDict begin [ /View [/XYZ H.V] /Dest (3804) cvn H.B /DEST pdfmark end + -30 15192 a -30 15192 a +SDict begin H.S end + -30 15192 a -30 15192 a +SDict begin 14.56 H.A end + -30 +15192 a -30 15192 a +SDict begin [ /View [/XYZ H.V] /Dest (3805) cvn H.B /DEST pdfmark end + -30 15192 a 1276 x FJ(\045)1309 16468 +y +SDict begin H.S end + 1309 16468 a 1309 16468 a +SDict begin 14.56 H.A end + 1309 16468 a 1309 16468 a +SDict begin [ /View [/XYZ H.V] /Dest (3806) cvn H.B /DEST pdfmark end + +1309 16468 a FH(ln)744 b(-s)f(/var/media/mp3)g(~/mp3)-30 +18186 y +SDict begin H.S end + -30 18186 a -30 18186 a +SDict begin 18.2 H.A end + -30 18186 a -30 18186 +a +SDict begin [ /View [/XYZ H.V] /Dest (3807) cvn H.B /DEST pdfmark end + -30 18186 a 1847 x FU(The)2823 20033 y +SDict begin H.S end + 2823 20033 a +2823 20033 a +SDict begin 18.2 H.A end + 2823 20033 a 2823 20033 a +SDict begin [ /View [/XYZ H.V] /Dest (3808) cvn H.B /DEST pdfmark end + 2823 20033 a FP(-s)443 +b FU(option)f(tells)12184 20033 y +SDict begin H.S end + 12184 20033 a 12184 +20033 a +SDict begin 18.2 H.A end + 12184 20033 a 12184 20033 a +SDict begin [ /View [/XYZ H.V] /Dest (3809) cvn H.B /DEST pdfmark end + 12184 20033 a FP(ln)h +FU(to)f(mak)-15 b(e)442 b(a)h(symbolic)f(link.)h(The)g(ne)-23 +b(xt)442 b(option)g(is)h(the)f(tar)-28 b(get)443 b(of)g(the)-30 +22047 y(link,)414 b(and)g(the)g(\002nal)g(option)f(is)h(what)g(to)g +(call)g(the)f(link.)h(In)h(this)e(case,)i(it)f(will)f(just)h(mak)-15 +b(e)413 b(a)h(\002le)-30 24062 y(called)4062 24062 y +SDict begin H.S end + +4062 24062 a 4062 24062 a +SDict begin 18.2 H.A end + 4062 24062 a 4062 24062 a +SDict begin [ /View [/XYZ H.V] /Dest (3810) cvn H.B /DEST pdfmark end + 4062 +24062 a FQ(mp3)389 b FU(in)i(your)f(home)h(directory)f(that)h(points)f +(to)29472 24062 y +SDict begin H.S end + 29472 24062 a 29472 24062 a +SDict begin 18.2 H.A end + 29472 24062 +a 29472 24062 a +SDict begin [ /View [/XYZ H.V] /Dest (3811) cvn H.B /DEST pdfmark end + 29472 24062 a FQ(/var/media/mp3)p FU(.)383 +b(Y)-170 b(ou)390 b(can)h(call)g(the)f(link)-30 26077 +y(itself)d(whate)-39 b(v)-23 b(er)387 b(you)g(w)-15 b(ant)387 +b(by)g(just)g(changing)g(the)g(last)g(option.)-30 27187 +y +SDict begin H.S end + -30 27187 a -30 27187 a +SDict begin 18.2 H.A end + -30 27187 a -30 27187 a +SDict begin [ /View [/XYZ H.V] /Dest (3812) cvn H.B /DEST pdfmark end + -30 +27187 a 1679 x FU(Making)464 b(a)h(hard)g(link)f(is)g(just)h(as)f +(simple.)h(All)f(you)g(ha)-31 b(v)-23 b(e)465 b(to)f(do)h(is)g(lea)-31 +b(v)-23 b(e)464 b(of)-39 b(f)465 b(the)45475 28866 y +SDict begin H.S end + +45475 28866 a 45475 28866 a +SDict begin 18.2 H.A end + 45475 28866 a 45475 28866 +a +SDict begin [ /View [/XYZ H.V] /Dest (3813) cvn H.B /DEST pdfmark end + 45475 28866 a FP(-s)f FU(option.)-30 30881 y(Hard)480 +b(links)e(may)i(not)f(normally)f(refer)i(to)g(directories)e(or)i(span)f +(\002le)g(systems,)g(ho)-39 b(we)g(v)-23 b(er)-85 b(.)480 +b(T)-124 b(o)-30 32895 y(create)388 b(a)f(hard)h(link)11072 +32895 y +SDict begin H.S end + 11072 32895 a 11072 32895 a +SDict begin 18.2 H.A end + 11072 32895 a 11072 +32895 a +SDict begin [ /View [/XYZ H.V] /Dest (3814) cvn H.B /DEST pdfmark end + 11072 32895 a FQ(/usr/bin/email)379 b FU(to)21822 +32895 y +SDict begin H.S end + 21822 32895 a 21822 32895 a +SDict begin 18.2 H.A end + 21822 32895 a 21822 +32895 a +SDict begin [ /View [/XYZ H.V] /Dest (3815) cvn H.B /DEST pdfmark end + 21822 32895 a FQ(/usr/bin/mutt)p FU(,)g(simply)387 +b(type)g(the)g(follo)-39 b(wing:)-30 34781 y +SDict begin H.S end + -30 34781 +a -30 34781 a +SDict begin 14.56 H.A end + -30 34781 a -30 34781 a +SDict begin [ /View [/XYZ H.V] /Dest (3816) cvn H.B /DEST pdfmark end + -30 34781 a -30 +34781 a +SDict begin H.S end + -30 34781 a -30 34781 a +SDict begin 14.56 H.A end + -30 34781 a -30 34781 +a +SDict begin [ /View [/XYZ H.V] /Dest (3817) cvn H.B /DEST pdfmark end + -30 34781 a 1276 x FJ(#)1309 36057 y +SDict begin H.S end + 1309 36057 a 1309 +36057 a +SDict begin 14.56 H.A end + 1309 36057 a 1309 36057 a +SDict begin [ /View [/XYZ H.V] /Dest (3818) cvn H.B /DEST pdfmark end + 1309 36057 a FH(ln)744 +b(/usr/bin/mutt)e(/usr/bin/email)p Black 49451 73792 +a FR(131)p Black eop end +%%Page: 132 154 +TeXDict begin 132 153 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.132) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(10)g(Handling)f(F)-70 +b(iles)387 b(and)g(Dir)-57 b(ectories)p Black Black -30 +73792 a(132)p Black eop end +%%Page: 133 155 +TeXDict begin 133 154 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.133) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL) cvn H.B /DEST +pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(11)-30 10743 y FO(Pr)-93 b(ocess)1287 b(Contr)-93 b(ol)p +-30 18316 51806 56 v -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 +a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (3821) cvn H.B /DEST pdfmark end + -30 18316 a -30 18316 a +SDict begin H.S end + -30 +18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (3823) cvn H.B /DEST pdfmark end + -30 18316 +a -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 +18316 a +SDict begin [ /View [/XYZ H.V] /Dest (3825) cvn H.B /DEST pdfmark end + -30 18316 a -30 19091 a +SDict begin H.S end + -30 19091 a -30 19091 +a +SDict begin 18.2 H.A end + -30 19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (3827) cvn H.B /DEST pdfmark end + -30 19091 a 1051 x FU(Ev)-23 +b(ery)335 b(program)g(that)f(is)h(running)g(is)g(called)f(a)i(process.) +f(These)g(processes)g(range)g(from)g(things)-30 22157 +y(lik)-15 b(e)398 b(the)g(X)g(W)-62 b(indo)-39 b(w)398 +b(System)f(to)h(system)g(programs)g(\(daemons\))f(that)h(are)h(started) +f(when)g(the)-30 24171 y(computer)378 b(boots.)g(Ev)-23 +b(ery)378 b(process)g(runs)g(as)g(a)h(particular)e(user)-85 +b(.)379 b(Processes)f(that)f(are)i(started)f(at)-30 26186 +y(boot)501 b(time)g(usually)f(run)h(as)15822 26186 y +SDict begin H.S end + +15822 26186 a 15822 26186 a +SDict begin 18.2 H.A end + 15822 26186 a 15822 26186 +a +SDict begin [ /View [/XYZ H.V] /Dest (3828) cvn H.B /DEST pdfmark end + 15822 26186 a FP(root)g FU(or)21091 26186 y +SDict begin H.S end + 21091 26186 +a 21091 26186 a +SDict begin 18.2 H.A end + 21091 26186 a 21091 26186 a +SDict begin [ /View [/XYZ H.V] /Dest (3829) cvn H.B /DEST pdfmark end + 21091 26186 +a FP(nobody)p FU(.)g(Processes)g(that)g(you)g(start)g(will)f(run)h(as)h +(you.)-30 28201 y(Processes)387 b(started)g(as)g(other)g(users)g(will)g +(run)g(as)h(those)f(users.)-30 28991 y +SDict begin H.S end + -30 28991 a -30 +28991 a +SDict begin 18.2 H.A end + -30 28991 a -30 28991 a +SDict begin [ /View [/XYZ H.V] /Dest (3830) cvn H.B /DEST pdfmark end + -30 28991 a 1999 x FU(Y)-170 +b(ou)361 b(ha)-31 b(v)-23 b(e)361 b(control)f(o)-23 b(v)g(er)361 +b(all)g(the)g(processes)g(that)g(you)g(start.)g(Additionally)-101 +b(,)41622 30990 y +SDict begin H.S end + 41622 30990 a 41622 30990 a +SDict begin 18.2 H.A end + 41622 30990 +a 41622 30990 a +SDict begin [ /View [/XYZ H.V] /Dest (3831) cvn H.B /DEST pdfmark end + 41622 30990 a FP(root)360 b FU(has)h(control)-30 +33005 y(o)-23 b(v)g(er)490 b(all)g(processes)g(on)g(the)g(system,)g +(including)f(those)h(started)g(by)g(other)g(users.)h(Processes)-30 +35020 y(can)539 b(be)f(controlled)f(and)i(monitored)e(through)h(se)-39 +b(v)-23 b(eral)538 b(programs,)g(as)g(well)g(as)h(some)e(shell)-30 +37034 y(commands.)-30 37049 y +SDict begin H.S end + -30 37049 a -30 37049 a +SDict begin 18.2 H.A end + +-30 37049 a -30 37049 a +SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-BACKGROUNDING) +cvn H.B /DEST pdfmark end + -30 37049 a 6110 x FL(11.1)620 +b(Bac)-45 b(kgr)g(ounding)-30 43655 y +SDict begin H.S end + -30 43655 a -30 +43655 a +SDict begin 18.2 H.A end + -30 43655 a -30 43655 a +SDict begin [ /View [/XYZ H.V] /Dest (3834) cvn H.B /DEST pdfmark end + -30 43655 a -30 44771 +a +SDict begin H.S end + -30 44771 a -30 44771 a +SDict begin 18.2 H.A end + -30 44771 a -30 44771 a +SDict begin [ /View [/XYZ H.V] /Dest (3837) cvn H.B /DEST pdfmark end + -30 +44771 a 1518 x FU(Programs)364 b(started)f(from)h(the)g(command)g(line) +g(start)g(up)g(in)g(the)g(fore)-23 b(ground.)364 b(This)f(allo)-39 +b(ws)364 b(you)-30 48304 y(to)444 b(see)h(all)f(the)h(output)f(of)g +(the)h(program)f(and)g(interact)h(with)f(it.)g(Ho)-39 +b(we)g(v)-23 b(er)-62 b(,)446 b(there)e(are)h(se)-39 +b(v)-23 b(eral)-30 50319 y(occasions)373 b(when)g(you')-77 +b(d)372 b(lik)-15 b(e)372 b(the)h(program)g(to)g(run)g(without)f +(taking)h(up)g(your)g(terminal.)f(This)-30 52333 y(is)387 +b(called)g(running)g(the)g(program)g(in)g(the)g(background,)h(and)f +(there)g(are)h(a)f(fe)-39 b(w)388 b(w)-15 b(ays)387 b(to)g(do)g(it.)-30 +53444 y +SDict begin H.S end + -30 53444 a -30 53444 a +SDict begin 18.2 H.A end + -30 53444 a -30 53444 +a +SDict begin [ /View [/XYZ H.V] /Dest (3838) cvn H.B /DEST pdfmark end + -30 53444 a 1679 x FU(The)455 b(\002rst)f(w)-15 b(ay)455 +b(to)g(background)f(a)h(process)g(is)f(by)h(adding)g(an)g(ampersand)f +(to)h(the)g(command)-30 57138 y(line)440 b(when)f(you)h(start)f(the)h +(program.)g(F)-23 b(or)439 b(e)-23 b(xample,)439 b(assume)h(you)f(w)-15 +b(anted)439 b(to)h(use)f(the)h(com-)-30 59152 y(mand)525 +b(line)h(mp3)f(player)14470 59152 y +SDict begin H.S end + 14470 59152 a 14470 +59152 a +SDict begin 18.2 H.A end + 14470 59152 a 14470 59152 a +SDict begin [ /View [/XYZ H.V] /Dest (3839) cvn H.B /DEST pdfmark end + 14470 59152 a FP(amp)g +FU(to)h(play)f(a)h(directory)f(full)h(of)g(mp3s,)f(b)-31 +b(ut)525 b(you)h(needed)g(to)f(do)-30 61167 y(something)486 +b(else)h(on)g(the)g(same)f(terminal.)h(The)g(follo)-39 +b(wing)486 b(command)h(line)f(w)-15 b(ould)486 b(start)h(up)-30 +63182 y(amp)387 b(in)g(the)h(background:)-30 65067 y +SDict begin H.S end + +-30 65067 a -30 65067 a +SDict begin 14.56 H.A end + -30 65067 a -30 65067 a +SDict begin [ /View [/XYZ H.V] /Dest (3840) cvn H.B /DEST pdfmark end + -30 65067 +a -30 65067 a +SDict begin H.S end + -30 65067 a -30 65067 a +SDict begin 14.56 H.A end + -30 65067 a -30 +65067 a +SDict begin [ /View [/XYZ H.V] /Dest (3841) cvn H.B /DEST pdfmark end + -30 65067 a 1276 x FJ(\045)1309 66343 y +SDict begin H.S end + 1309 +66343 a 1309 66343 a +SDict begin 14.56 H.A end + 1309 66343 a 1309 66343 a +SDict begin [ /View [/XYZ H.V] /Dest (3842) cvn H.B /DEST pdfmark end + 1309 66343 +a FH(amp)744 b(*.mp3)f(&)p Black -30 73672 a +SDict begin H.S end + -30 73672 +a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (3850) cvn H.B /DEST pdfmark end + -30 73672 a 49451 +74722 a FR(133)p Black eop end +%%Page: 134 156 +TeXDict begin 134 155 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.134) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(11)g(Pr)-70 b(ocess)387 +b(Contr)-70 b(ol)p Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 +a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (3843) cvn H.B /DEST pdfmark end + -30 2383 a 1107 x FU(The)387 +b(program)g(will)g(run)g(as)h(normal,)f(and)g(you)g(are)h(returned)f +(to)g(a)h(prompt.)-30 3826 y +SDict begin H.S end + -30 3826 a -30 3826 a +SDict begin 18.2 H.A end + -30 +3826 a -30 3826 a +SDict begin [ /View [/XYZ H.V] /Dest (3844) cvn H.B /DEST pdfmark end + -30 3826 a -30 3826 a +SDict begin H.S end + -30 3826 a -30 +3826 a +SDict begin 18.2 H.A end + -30 3826 a -30 3826 a +SDict begin [ /View [/XYZ H.V] /Dest (3847) cvn H.B /DEST pdfmark end + -30 3826 a 2454 x FU(The)330 +b(other)f(w)-15 b(ay)329 b(to)h(background)f(a)h(process)g(is)f(to)g +(do)h(so)g(while)f(it)g(is)h(running.)f(First,)h(start)f(up)h(a)-30 +8294 y(program.)308 b(While)g(it)g(is)f(running,)h(hit)g +FX(Contr)-28 b(ol)p FU(+)25997 8294 y +SDict begin H.S end + 25997 8294 a 25997 +8294 a +SDict begin 18.2 H.A end + 25997 8294 a 25997 8294 a +SDict begin [ /View [/XYZ H.V] /Dest (3853) cvn H.B /DEST pdfmark end + 25997 8294 a FX(z)p +FU(.)308 b(This)f(suspends)h(the)g(process.)g(A)g(suspended)-30 +10309 y(process)313 b(is)f(basically)g(paused.)h(It)g(momentarily)f +(stops)g(running,)g(b)-31 b(ut)313 b(can)g(be)g(started)f(up)h(ag)-8 +b(ain)-30 12324 y(at)403 b(an)-23 b(y)403 b(time.)g(Once)g(you)g(ha)-31 +b(v)-23 b(e)402 b(suspended)h(a)g(process,)g(you)g(are)g(returned)g(to) +g(a)g(prompt.)g(Y)-170 b(ou)-30 14338 y(can)388 b(background)e(the)i +(process)f(by)g(typing:)-30 16224 y +SDict begin H.S end + -30 16224 a -30 16224 +a +SDict begin 14.56 H.A end + -30 16224 a -30 16224 a +SDict begin [ /View [/XYZ H.V] /Dest (3854) cvn H.B /DEST pdfmark end + -30 16224 a -30 16224 a +SDict begin H.S end + -30 +16224 a -30 16224 a +SDict begin 14.56 H.A end + -30 16224 a -30 16224 a +SDict begin [ /View [/XYZ H.V] /Dest (3855) cvn H.B /DEST pdfmark end + -30 16224 +a 1276 x FJ(\045)1309 17500 y +SDict begin H.S end + 1309 17500 a 1309 17500 +a +SDict begin 14.56 H.A end + 1309 17500 a 1309 17500 a +SDict begin [ /View [/XYZ H.V] /Dest (3856) cvn H.B /DEST pdfmark end + 1309 17500 a FH(bg)-30 19218 +y +SDict begin H.S end + -30 19218 a -30 19218 a +SDict begin 18.2 H.A end + -30 19218 a -30 19218 a +SDict begin [ /View [/XYZ H.V] /Dest (3857) cvn H.B /DEST pdfmark end + -30 +19218 a 1846 x FU(No)-39 b(w)387 b(the)h(suspended)e(process)h(is)g +(running)g(in)g(the)g(background.)-30 22175 y +SDict begin H.S end + -30 22175 +a -30 22175 a +SDict begin 18.2 H.A end + -30 22175 a -30 22175 a +SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-FOREGROUNDING) +cvn H.B /DEST pdfmark end + -30 22175 a 5789 +x FL(11.2)620 b(Foregr)-45 b(ounding)-30 28460 y +SDict begin H.S end + -30 +28460 a -30 28460 a +SDict begin 18.2 H.A end + -30 28460 a -30 28460 a +SDict begin [ /View [/XYZ H.V] /Dest (3860) cvn H.B /DEST pdfmark end + -30 28460 +a -30 29576 a +SDict begin H.S end + -30 29576 a -30 29576 a +SDict begin 18.2 H.A end + -30 29576 a -30 +29576 a +SDict begin [ /View [/XYZ H.V] /Dest (3863) cvn H.B /DEST pdfmark end + -30 29576 a 1518 x FU(If)438 b(you)g(need)g(to)g(interact)g +(with)f(a)i(backgrounded)e(process,)h(you)g(can)g(bring)g(it)g(back)g +(into)f(the)-30 33109 y(fore)-23 b(ground.)419 b(If)g(you')-77 +b(v)-23 b(e)418 b(only)h(got)f(one)h(backgrounded)g(process,)g(you)g +(can)g(bring)f(it)h(back)g(by)-30 35124 y(typing:)-30 +37009 y +SDict begin H.S end + -30 37009 a -30 37009 a +SDict begin 14.56 H.A end + -30 37009 a -30 37009 +a +SDict begin [ /View [/XYZ H.V] /Dest (3864) cvn H.B /DEST pdfmark end + -30 37009 a -30 37009 a +SDict begin H.S end + -30 37009 a -30 37009 a +SDict begin 14.56 H.A end + -30 +37009 a -30 37009 a +SDict begin [ /View [/XYZ H.V] /Dest (3865) cvn H.B /DEST pdfmark end + -30 37009 a 1276 x FJ(\045)1309 38285 +y +SDict begin H.S end + 1309 38285 a 1309 38285 a +SDict begin 14.56 H.A end + 1309 38285 a 1309 38285 a +SDict begin [ /View [/XYZ H.V] /Dest (3866) cvn H.B /DEST pdfmark end + +1309 38285 a FH(fg)-30 40003 y +SDict begin H.S end + -30 40003 a -30 40003 +a +SDict begin 18.2 H.A end + -30 40003 a -30 40003 a +SDict begin [ /View [/XYZ H.V] /Dest (3867) cvn H.B /DEST pdfmark end + -30 40003 a 1847 x FU(If)406 +b(the)g(program)g(is)f(not)h(done)f(running,)h(the)g(program)f(will)h +(tak)-15 b(e)405 b(control)h(o)-23 b(v)g(er)405 b(you)h(terminal)-30 +43864 y(and)312 b(you)g(will)f(not)h(be)g(returned)f(to)h(a)g(prompt.)g +(Sometimes,)f(the)h(program)f(will)h(\002nish)f(running)-30 +45879 y(while)387 b(backgrounded.)g(In)h(this)e(instance,)i(you')-15 +b(ll)386 b(get)h(a)h(message)e(lik)-15 b(e)387 b(this:)-30 +47764 y +SDict begin H.S end + -30 47764 a -30 47764 a +SDict begin 14.56 H.A end + -30 47764 a -30 47764 +a +SDict begin [ /View [/XYZ H.V] /Dest (3868) cvn H.B /DEST pdfmark end + -30 47764 a 1276 x FP([1]+)1487 b(Done)10414 b(/bin/ls)743 +b($LS_OPTIONS)-30 50735 y +SDict begin H.S end + -30 50735 a -30 50735 a +SDict begin 18.2 H.A end + -30 +50735 a -30 50735 a +SDict begin [ /View [/XYZ H.V] /Dest (3869) cvn H.B /DEST pdfmark end + -30 50735 a 1870 x FU(That)298 b(tells)g(you)g +(that)g(the)g(backgrounded)g(process)g(\(in)g(this)g(case)34976 +52605 y +SDict begin H.S end + 34976 52605 a 34976 52605 a +SDict begin 18.2 H.A end + 34976 52605 a 34976 +52605 a +SDict begin [ /View [/XYZ H.V] /Dest (3870) cvn H.B /DEST pdfmark end + 34976 52605 a FP(ls)h FU(-)f(not)g(terribly)g(interesting\))-30 +54619 y(has)387 b(completed.)-30 54955 y +SDict begin H.S end + -30 54955 a +-30 54955 a +SDict begin 18.2 H.A end + -30 54955 a -30 54955 a +SDict begin [ /View [/XYZ H.V] /Dest (3871) cvn H.B /DEST pdfmark end + -30 54955 a -30 55730 +a +SDict begin H.S end + -30 55730 a -30 55730 a +SDict begin 18.2 H.A end + -30 55730 a -30 55730 a +SDict begin [ /View [/XYZ H.V] /Dest (3873) cvn H.B /DEST pdfmark end + -30 +55730 a 1679 x FU(It)482 b(is)g(possible)f(to)h(ha)-31 +b(v)-23 b(e)481 b(se)-39 b(v)-23 b(eral)482 b(processes)g(backgrounded) +f(at)h(once.)h(When)f(this)f(happens,)-30 59424 y(you')-15 +b(ll)475 b(need)h(to)f(kno)-39 b(w)476 b(which)f(process)h(you)f(w)-15 +b(ant)475 b(to)h(bring)f(back)h(to)f(the)h(fore)-23 b(ground.)475 +b(Just)-30 61438 y(typing)4365 61438 y +SDict begin H.S end + 4365 61438 a 4365 +61438 a +SDict begin 18.2 H.A end + 4365 61438 a 4365 61438 a +SDict begin [ /View [/XYZ H.V] /Dest (3874) cvn H.B /DEST pdfmark end + 4365 61438 a FP(fg)433 +b FU(will)g(fore)-23 b(ground)433 b(the)h(process)f(that)g(w)-15 +b(as)433 b(last)g(backgrounded.)h(What)f(if)h(you)f(had)-30 +63453 y(a)460 b(whole)g(list)f(of)h(processes)g(in)g(the)g(background?) +f(Luckily)-101 b(,)461 b(bash)e(includes)h(a)g(command)f(to)-30 +65468 y(list)387 b(all)g(the)g(processes.)h(It')-85 b(s)387 +b(called)19641 65468 y +SDict begin H.S end + 19641 65468 a 19641 65468 a +SDict begin 18.2 H.A end + 19641 +65468 a 19641 65468 a +SDict begin [ /View [/XYZ H.V] /Dest (3875) cvn H.B /DEST pdfmark end + 19641 65468 a FP(jobs)g FU(and)g(gi)-39 +b(v)-23 b(es)387 b(output)f(lik)-15 b(e)387 b(so:)p Black +-30 73672 a FR(134)p Black eop end +%%Page: 135 157 +TeXDict begin 135 156 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.135) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 34393 -1636 a FR(Chapter)386 b(11)h(Pr)-70 +b(ocess)387 b(Contr)-70 b(ol)p Black -30 2504 a +SDict begin H.S end + -30 2504 +a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3876) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 +a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3877) cvn H.B /DEST pdfmark end + -30 2504 +a 1107 x FJ(\045)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + +1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (3878) cvn H.B /DEST pdfmark end + 1309 3611 a FH(jobs)-30 5223 +y FP([1])2231 b(Stopped)12645 b(vim)-30 6835 y([2]-)1487 +b(Stopped)12645 b(amp)-30 8446 y([3]+)1487 b(Stopped)12645 +b(man)744 b(ps)-30 10191 y +SDict begin H.S end + -30 10191 a -30 10191 a +SDict begin 18.2 H.A end + -30 +10191 a -30 10191 a +SDict begin [ /View [/XYZ H.V] /Dest (3879) cvn H.B /DEST pdfmark end + -30 10191 a 1820 x FU(This)512 b(sho)-39 +b(ws)512 b(you)g(a)h(list)e(of)i(all)f(the)g(processes)g(that)g(are)h +(backgrounded.)f(As)g(you)g(can)g(see,)-30 14025 y(the)-23 +b(y)431 b(are)g(all)g(stopped.)g(This)f(means)h(that)g(the)g(processes) +f(are)i(suspended.)e(The)h(number)g(is)g(a)-30 16040 +y(sort)373 b(of)h(ID)f(for)g(all)h(the)f(backgrounded)g(processes.)g +(The)g(ID)h(with)f(a)g(plus)g(sign)g(beside)g(it)g(\()49544 +16040 y +SDict begin H.S end + 49544 16040 a 49544 16040 a +SDict begin 18.2 H.A end + 49544 16040 a 49544 +16040 a +SDict begin [ /View [/XYZ H.V] /Dest (3880) cvn H.B /DEST pdfmark end + 49544 16040 a FP(man)-30 18055 y(ps)p FU(\))387 +b(is)g(the)h(process)f(that)g(will)g(be)g(fore)-23 b(grounded)387 +b(if)g(you)g(just)g(type)36902 18055 y +SDict begin H.S end + 36902 18055 a +36902 18055 a +SDict begin 18.2 H.A end + 36902 18055 a 36902 18055 a +SDict begin [ /View [/XYZ H.V] /Dest (3881) cvn H.B /DEST pdfmark end + 36902 18055 +a FP(fg)p FU(.)-30 19165 y +SDict begin H.S end + -30 19165 a -30 19165 a +SDict begin 18.2 H.A end + -30 +19165 a -30 19165 a +SDict begin [ /View [/XYZ H.V] /Dest (3882) cvn H.B /DEST pdfmark end + -30 19165 a 1679 x FU(If)h(you)f(w)-15 +b(anted)386 b(to)h(fore)-23 b(ground)17792 20844 y +SDict begin H.S end + 17792 +20844 a 17792 20844 a +SDict begin 18.2 H.A end + 17792 20844 a 17792 20844 a +SDict begin [ /View [/XYZ H.V] /Dest (3883) cvn H.B /DEST pdfmark end + 17792 +20844 a FP(vim)p FU(,)388 b(you)f(w)-15 b(ould)386 b(type:)-30 +22730 y +SDict begin H.S end + -30 22730 a -30 22730 a +SDict begin 14.56 H.A end + -30 22730 a -30 22730 +a +SDict begin [ /View [/XYZ H.V] /Dest (3884) cvn H.B /DEST pdfmark end + -30 22730 a -30 22730 a +SDict begin H.S end + -30 22730 a -30 22730 a +SDict begin 14.56 H.A end + -30 +22730 a -30 22730 a +SDict begin [ /View [/XYZ H.V] /Dest (3885) cvn H.B /DEST pdfmark end + -30 22730 a 1276 x FJ(\045)1309 24006 +y +SDict begin H.S end + 1309 24006 a 1309 24006 a +SDict begin 14.56 H.A end + 1309 24006 a 1309 24006 a +SDict begin [ /View [/XYZ H.V] /Dest (3886) cvn H.B /DEST pdfmark end + +1309 24006 a FH(fg)744 b(1)-30 25723 y +SDict begin H.S end + -30 25723 a -30 +25723 a +SDict begin 18.2 H.A end + -30 25723 a -30 25723 a +SDict begin [ /View [/XYZ H.V] /Dest (3887) cvn H.B /DEST pdfmark end + -30 25723 a 1847 x FU(and)2598 +27570 y +SDict begin H.S end + 2598 27570 a 2598 27570 a +SDict begin 18.2 H.A end + 2598 27570 a 2598 27570 +a +SDict begin [ /View [/XYZ H.V] /Dest (3888) cvn H.B /DEST pdfmark end + 2598 27570 a FP(vim)389 b FU(w)-15 b(ould)389 b(spring)g(back)h(up)f +(to)h(the)f(console.)h(Backgrounding)e(processes)i(can)f(be)h(v)-23 +b(ery)-30 29585 y(useful)480 b(if)g(you)g(only)g(ha)-31 +b(v)-23 b(e)480 b(one)g(terminal)g(open)g(o)-23 b(v)g(er)480 +b(a)g(dialup)g(connection.)g(Y)-170 b(ou)480 b(can)g(ha)-31 +b(v)-23 b(e)-30 31599 y(se)-39 b(v)-23 b(eral)321 b(programs)g(running) +f(on)h(that)g(one)g(terminal,)g(periodically)f(switching)g(back)h(and)g +(forth)-30 33614 y(between)387 b(them.)-30 34405 y +SDict begin H.S end + -30 +34405 a -30 34405 a +SDict begin 18.2 H.A end + -30 34405 a -30 34405 a +SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-PS) cvn H.B /DEST +pdfmark end + -30 34405 +a 6109 x FL(11.3)620 b Fq(ps)-30 42091 y +SDict begin H.S end + -30 42091 a +-30 42091 a +SDict begin 18.2 H.A end + -30 42091 a -30 42091 a +SDict begin [ /View [/XYZ H.V] /Dest (3892) cvn H.B /DEST pdfmark end + -30 42091 a 1553 +x FU(So)615 b(no)-39 b(w)615 b(you)g(kno)-39 b(w)615 +b(ho)-39 b(w)615 b(to)g(switch)f(back)i(and)f(forth)g(between)f(se)-39 +b(v)-23 b(eral)615 b(processes)g(that)-30 45659 y(you')-77 +b(v)-23 b(e)571 b(started)g(from)g(the)g(command)g(line.)g(And)g(you)g +(also)h(kno)-39 b(w)571 b(that)g(there)g(are)h(lots)f(of)-30 +47673 y(processes)417 b(running)f(all)h(the)g(time.)g(So)f(ho)-39 +b(w)417 b(do)g(you)g(list)f(all)h(of)g(these)g(programs?)f(W)-124 +b(ell,)417 b(you)-30 49688 y(mak)-15 b(e)440 b(use)h(of)g(the)10326 +49688 y +SDict begin H.S end + 10326 49688 a 10326 49688 a +SDict begin 18.2 H.A end + 10326 49688 a 10326 +49688 a +SDict begin [ /View [/XYZ H.V] /Dest (3893) cvn H.B /DEST pdfmark end + 10326 49688 a FP(ps)p FU(\(1\))g(command.)g(This)g(command)f +(has)h(a)g(lot)g(of)g(options,)f(so)h(we')-15 b(ll)440 +b(only)-30 51703 y(co)-23 b(v)g(er)385 b(the)g(most)f(important)g(ones) +h(here.)h(F)-23 b(or)385 b(a)g(complete)g(listing,)f(see)h(the)g(man)g +(page)g(for)h(ps.)-30 53717 y(Man)h(pages)g(are)h(co)-23 +b(v)g(ered)387 b(in-depth)g(in)p 0 TeXcolorgray 21786 +53717 a +SDict begin H.S end + 21786 53717 a FU(Section)f(2.1.1)29921 53717 +y +SDict begin 18.2 H.L end + 29921 53717 a 29921 53717 a +SDict begin [ /Subtype /Link /Dest (HELP-SYSTEM-MAN) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 29921 53717 a Black 1 w +FU(.)-30 54053 y +SDict begin H.S end + -30 54053 a -30 54053 a +SDict begin 18.2 H.A end + -30 54053 a +-30 54053 a +SDict begin [ /View [/XYZ H.V] /Dest (3895) cvn H.B /DEST pdfmark end + -30 54053 a -30 54828 a +SDict begin H.S end + -30 54828 a -30 54828 +a +SDict begin 18.2 H.A end + -30 54828 a -30 54828 a +SDict begin [ /View [/XYZ H.V] /Dest (3898) cvn H.B /DEST pdfmark end + -30 54828 a 1679 x FU(Simply)490 +b(typing)9393 56507 y +SDict begin H.S end + 9393 56507 a 9393 56507 a +SDict begin 18.2 H.A end + 9393 +56507 a 9393 56507 a +SDict begin [ /View [/XYZ H.V] /Dest (3899) cvn H.B /DEST pdfmark end + 9393 56507 a FP(ps)h FU(will)g(get)h(you)f(a)h +(listing)e(of)i(the)f(programs)g(running)g(on)g(your)g(terminal.)-30 +58522 y(This)554 b(incudes)g(the)g(fore)-23 b(ground)554 +b(processes)g(\(which)g(include)g(whate)-39 b(v)-23 b(er)554 +b(shell)g(you)g(are)h(us-)-30 60536 y(ing,)402 b(and)g(of)g(course,) +11907 60536 y +SDict begin H.S end + 11907 60536 a 11907 60536 a +SDict begin 18.2 H.A end + 11907 60536 +a 11907 60536 a +SDict begin [ /View [/XYZ H.V] /Dest (3900) cvn H.B /DEST pdfmark end + 11907 60536 a FP(ps)g FU(itself\).)g(Also)f(listed)g +(are)h(backgrounded)f(processes)h(you)g(may)f(ha)-31 +b(v)-23 b(e)-30 62551 y(running.)387 b(Man)-23 b(y)387 +b(times,)g(that)g(will)g(be)g(a)h(v)-23 b(ery)387 b(short)g(listing:) +-30 62886 y +SDict begin H.S end + -30 62886 a -30 62886 a +SDict begin 18.2 H.A end + -30 62886 a -30 62886 +a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-PROCESS-CONTROL-PS-SHORT) +cvn H.B /DEST pdfmark end + -30 62886 a Black 49451 73792 a FR(135)p Black eop +end +%%Page: 136 158 +TeXDict begin 136 157 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.136) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(11)g(Pr)-70 b(ocess)387 +b(Contr)-70 b(ol)p Black -30 3611 a FX(Figur)-28 b(e)387 +b(11-1.)h(Basic)e FV(ps)h FX(output)-30 5477 y +SDict begin H.S end + -30 5477 +a -30 5477 a +SDict begin 14.56 H.A end + -30 5477 a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (3904) cvn H.B /DEST pdfmark end + -30 5477 a -30 5477 +a +SDict begin H.S end + -30 5477 a -30 5477 a +SDict begin 14.56 H.A end + -30 5477 a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (3905) cvn H.B /DEST pdfmark end + -30 5477 +a 1296 x FJ(\045)1309 6773 y +SDict begin H.S end + 1309 6773 a 1309 6773 a +SDict begin 14.56 H.A end + +1309 6773 a 1309 6773 a +SDict begin [ /View [/XYZ H.V] /Dest (3906) cvn H.B /DEST pdfmark end + 1309 6773 a FH(ps)2202 8384 y +FP(PID)743 b(TTY)7439 b(TIME)743 b(CMD)1458 9996 y(7923)g(ttyp0)2975 +b(00:00:00)743 b(bash)1458 11608 y(8059)g(ttyp0)2975 +b(00:00:00)743 b(ps)-30 13352 y +SDict begin H.S end + -30 13352 a -30 13352 +a +SDict begin 18.2 H.A end + -30 13352 a -30 13352 a +SDict begin [ /View [/XYZ H.V] /Dest (3907) cvn H.B /DEST pdfmark end + -30 13352 a 1820 x FU(Ev)-23 +b(en)387 b(though)f(this)h(is)g(not)f(a)i(lot)e(of)i(processes,)f(the)g +(information)f(is)h(v)-23 b(ery)386 b(typical.)h(Y)-170 +b(ou')-15 b(ll)386 b(get)-30 17187 y(the)472 b(same)g(columns)f(using)h +(re)-23 b(gular)471 b(ps)h(no)g(matter)g(ho)-39 b(w)472 +b(man)-23 b(y)471 b(processes)h(are)g(running.)g(So)-30 +19202 y(what)387 b(does)g(it)g(all)h(mean?)-30 19992 +y +SDict begin H.S end + -30 19992 a -30 19992 a +SDict begin 18.2 H.A end + -30 19992 a -30 19992 a +SDict begin [ /View [/XYZ H.V] /Dest (3908) cvn H.B /DEST pdfmark end + -30 +19992 a 1999 x FU(W)-124 b(ell,)448 b(the)6036 21991 +y +SDict begin H.S end + 6036 21991 a 6036 21991 a +SDict begin 18.2 H.A end + 6036 21991 a 6036 21991 a +SDict begin [ /View [/XYZ H.V] /Dest (3909) cvn H.B /DEST pdfmark end + +6036 21991 a FP(PID)g FU(is)g(the)12539 21991 y +SDict begin H.S end + 12539 +21991 a 12539 21991 a +SDict begin 18.2 H.A end + 12539 21991 a 12539 21991 a +SDict begin [ /View [/XYZ H.V] /Dest (3910) cvn H.B /DEST pdfmark end + 12539 +21991 a FR(pr)-70 b(ocess)448 b(ID)p FU(.)h(All)e(running)h(processes)f +(are)i(gi)-39 b(v)-23 b(en)447 b(a)h(unique)g(identi\002er)-30 +24006 y(which)583 b(ranges)h(between)f(1)h(and)f(32767.)g(Each)h +(process)f(is)h(assigned)e(the)i(ne)-23 b(xt)583 b(free)h(PID.)-30 +26020 y(When)381 b(a)h(process)f(quits)g(\(or)g(is)g(killed,)h(as)f +(you)g(will)g(see)g(in)h(the)f(ne)-23 b(xt)381 b(section\),)g(it)g(gi) +-39 b(v)-23 b(es)381 b(up)g(its)-30 28035 y(PID.)431 +b(When)g(the)g(max)g(PID)g(is)g(reached,)h(the)e(ne)-23 +b(xt)431 b(free)h(one)f(will)f(wrap)h(back)g(around)g(to)g(the)-30 +30050 y(lo)-39 b(west)387 b(free)h(one.)-30 30840 y +SDict begin H.S end + -30 +30840 a -30 30840 a +SDict begin 18.2 H.A end + -30 30840 a -30 30840 a +SDict begin [ /View [/XYZ H.V] /Dest (3911) cvn H.B /DEST pdfmark end + -30 30840 +a 1999 x FU(The)2846 32839 y +SDict begin H.S end + 2846 32839 a 2846 32839 +a +SDict begin 18.2 H.A end + 2846 32839 a 2846 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (3912) cvn H.B /DEST pdfmark end + 2846 32839 a FP(TTY)465 b +FU(column)h(indicates)f(which)g(terminal)h(the)f(process)h(is)g +(running)f(on.)h(Doing)f(a)h(plain)-30 34854 y +SDict begin H.S end + -30 34854 +a -30 34854 a +SDict begin 18.2 H.A end + -30 34854 a -30 34854 a +SDict begin [ /View [/XYZ H.V] /Dest (3913) cvn H.B /DEST pdfmark end + -30 34854 a FP(ps)333 +b FU(will)f(only)g(list)g(all)h(the)g(programs)f(running)g(on)h(the)f +(current)h(terminal,)f(so)h(all)g(the)f(processes)-30 +36869 y(gi)-39 b(v)-23 b(e)360 b(the)f(same)h(information)e(in)i(the)g +(TTY)f(column.)h(As)f(you)h(can)g(see,)g(both)f(processes)h(listed)-30 +38883 y(are)377 b(running)f(on)9363 38883 y +SDict begin H.S end + 9363 38883 +a 9363 38883 a +SDict begin 18.2 H.A end + 9363 38883 a 9363 38883 a +SDict begin [ /View [/XYZ H.V] /Dest (3914) cvn H.B /DEST pdfmark end + 9363 38883 a +FQ(ttyp0)p FU(.)d(This)j(indicates)g(that)g(the)-23 b(y)376 +b(are)h(either)f(running)g(remotely)f(or)i(from)f(an)-30 +40898 y(X)387 b(terminal)g(of)g(some)g(v)-39 b(ariety)-101 +b(.)-30 41233 y +SDict begin H.S end + -30 41233 a -30 41233 a +SDict begin 18.2 H.A end + -30 41233 a -30 +41233 a +SDict begin [ /View [/XYZ H.V] /Dest (3915) cvn H.B /DEST pdfmark end + -30 41233 a -30 42008 a +SDict begin H.S end + -30 42008 a -30 42008 +a +SDict begin 18.2 H.A end + -30 42008 a -30 42008 a +SDict begin [ /View [/XYZ H.V] /Dest (3917) cvn H.B /DEST pdfmark end + -30 42008 a 1679 x FU(The)2745 +43687 y +SDict begin H.S end + 2745 43687 a 2745 43687 a +SDict begin 18.2 H.A end + 2745 43687 a 2745 43687 +a +SDict begin [ /View [/XYZ H.V] /Dest (3918) cvn H.B /DEST pdfmark end + 2745 43687 a FP(TIME)365 b FU(column)g(indicated)f(ho)-39 +b(w)366 b(much)f(CPU)f(time)h(the)g(process)g(has)g(been)g(running.)g +(This)-30 45702 y(is)330 b(dif)-39 b(ferent)331 b(from)f(the)h(actual)f +(amount)g(of)h(time)f(that)g(a)g(process)h(runs.)f(Remember)g(that)h +(Linux)-30 47717 y(is)459 b(a)h(multitasking)e(operating)h(system.)g +(There)h(are)f(man)-23 b(y)459 b(processes)g(running)g(all)h(the)f +(time,)-30 49731 y(and)442 b(these)f(processes)g(each)h(get)f(a)h +(small)f(portion)g(of)g(the)h(processor')-85 b(s)441 +b(time.)g(So,)h(the)f(TIME)-30 51746 y(column)378 b(should)f(sho)-39 +b(w)379 b(much)e(less)h(time)g(for)h(each)f(process)g(than)g(it)g +(actually)g(tak)-15 b(es)378 b(to)g(run.)h(If)-30 53761 +y(you)479 b(see)h(more)g(than)f(se)-39 b(v)-23 b(eral)480 +b(minutes)e(in)i(the)f(TIME)h(column,)f(it)g(could)h(mean)f(that)g +(some-)-30 55775 y(thing)387 b(is)g(wrong.)-30 56886 +y +SDict begin H.S end + -30 56886 a -30 56886 a +SDict begin 18.2 H.A end + -30 56886 a -30 56886 a +SDict begin [ /View [/XYZ H.V] /Dest (3919) cvn H.B /DEST pdfmark end + -30 +56886 a 1679 x FU(Finally)-101 b(,)513 b(the)7569 58565 +y +SDict begin H.S end + 7569 58565 a 7569 58565 a +SDict begin 18.2 H.A end + 7569 58565 a 7569 58565 a +SDict begin [ /View [/XYZ H.V] /Dest (3920) cvn H.B /DEST pdfmark end + +7569 58565 a FP(CMD)g FU(column)f(sho)-39 b(ws)513 b(what)g(the)g +(program)f(actually)h(is.)g(It)g(only)g(lists)f(the)h(base)-30 +60580 y(name)433 b(of)h(the)g(program,)f(not)g(an)-23 +b(y)434 b(command)e(line)i(options)e(or)i(similar)f(information.)g(T) +-124 b(o)433 b(get)-30 62594 y(that)347 b(information,)g(you')-15 +b(ll)346 b(need)i(to)f(use)g(one)h(of)f(the)h(man)-23 +b(y)346 b(options)h(to)38667 62594 y +SDict begin H.S end + 38667 62594 a 38667 +62594 a +SDict begin 18.2 H.A end + 38667 62594 a 38667 62594 a +SDict begin [ /View [/XYZ H.V] /Dest (3921) cvn H.B /DEST pdfmark end + 38667 62594 a FP(ps)p +FU(.)h(W)-124 b(e')-15 b(ll)347 b(discuss)f(that)-30 +64609 y(shortly)-101 b(.)-30 65719 y +SDict begin H.S end + -30 65719 a -30 +65719 a +SDict begin 18.2 H.A end + -30 65719 a -30 65719 a +SDict begin [ /View [/XYZ H.V] /Dest (3922) cvn H.B /DEST pdfmark end + -30 65719 a 1680 x FU(Y)-170 +b(ou)508 b(can)h(get)g(a)g(complete)f(listing)g(of)h(the)g(processes)f +(running)g(on)h(your)g(system)f(using)g(the)p Black -30 +73792 a FR(136)p Black eop end +%%Page: 137 159 +TeXDict begin 137 158 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.137) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 34393 -1636 a FR(Chapter)386 b(11)h(Pr)-70 +b(ocess)387 b(Contr)-70 b(ol)p Black -30 3611 a FU(right)385 +b(combination)f(of)i(options.)f(This)g(will)g(probably)g(result)g(in)g +(a)h(long)f(listing)g(of)g(processes)-30 5626 y(\(\002fty-\002)-39 +b(v)-23 b(e)387 b(on)g(my)g(laptop)g(as)g(I)g(write)h(this)e +(sentence\),)i(so)f(I')-15 b(ll)387 b(abbre)-39 b(viate)387 +b(the)g(output:)-30 7511 y +SDict begin H.S end + -30 7511 a -30 7511 a +SDict begin 12.972 H.A end + -30 +7511 a -30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (3923) cvn H.B /DEST pdfmark end + -30 7511 a -30 7511 a +SDict begin H.S end + -30 7511 a -30 +7511 a +SDict begin 12.972 H.A end + -30 7511 a -30 7511 a +SDict begin [ /View [/XYZ H.V] /Dest (3924) cvn H.B /DEST pdfmark end + -30 7511 a 1100 x Fj(\045)1163 +8611 y +SDict begin H.S end + 1163 8611 a 1163 8611 a +SDict begin 12.972 H.A end + 1163 8611 a 1163 8611 +a +SDict begin [ /View [/XYZ H.V] /Dest (3925) cvn H.B /DEST pdfmark end + 1163 8611 a Fi(ps)662 b(-ax)633 10047 y Fh(PID)g(TTY)3975 +b(STAT)1987 b(TIME)662 b(COMMAND)1958 11483 y(1)h(?)5301 +b(S)3976 b(0:03)662 b(init)f([3])1958 12919 y(2)i(?)5301 +b(SW)3313 b(0:13)662 b([kflushd])1958 14355 y(3)h(?)5301 +b(SW)3313 b(0:14)662 b([kupdate])1958 15791 y(4)h(?)5301 +b(SW)3313 b(0:00)662 b([kpiod])1958 17227 y(5)h(?)5301 +b(SW)3313 b(0:17)662 b([kswapd])1296 18663 y(11)g(?)5301 +b(S)3976 b(0:00)662 b(/sbin/kerneld)1296 20099 y(30)g(?)5301 +b(SW)3313 b(0:01)662 b([cardmgr])1296 21535 y(50)g(?)5301 +b(S)3976 b(0:00)662 b(/sbin/rpc.portmap)1296 22971 y(54)g(?)5301 +b(S)3976 b(0:00)662 b(/usr/sbin/syslogd)1296 24407 y(57)g(?)5301 +b(S)3976 b(0:00)662 b(/usr/sbin/klogd)c(-c)k(3)1296 25843 +y(59)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/inetd)1296 +27279 y(61)g(?)5301 b(S)3976 b(0:04)662 b(/usr/local/sbin/sshd)1296 +28715 y(63)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/rpc.mountd)1296 +30151 y(65)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/rpc.nfsd)1296 +31587 y(67)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/crond)c(-l10)1296 +33023 y(69)k(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/atd)d(-b)j(15)g(-l) +g(1)1296 34459 y(77)g(?)5301 b(S)3976 b(0:00)662 b(/usr/sbin/apmd)1296 +35894 y(79)g(?)5301 b(S)3976 b(0:01)662 b(gpm)g(-m)g(/dev/mouse)e(-t)i +(ps2)1296 37330 y(94)g(?)5301 b(S)3976 b(0:00)662 b +(/usr/sbin/automount)657 b(/auto)k(file)h(/etc/auto.misc)633 +38766 y(106)g(tty1)3312 b(S)3976 b(0:08)662 b(-bash)633 +40202 y(108)g(tty3)3312 b(SW)h(0:00)662 b([agetty])633 +41638 y(109)g(tty4)3312 b(SW)h(0:00)662 b([agetty])633 +43074 y(110)g(tty5)3312 b(SW)h(0:00)662 b([agetty])633 +44510 y(111)g(tty6)3312 b(SW)h(0:00)662 b([agetty])633 +45946 y([output)f(cut])-30 47669 y +SDict begin H.S end + -30 47669 a -30 47669 +a +SDict begin 18.2 H.A end + -30 47669 a -30 47669 a +SDict begin [ /View [/XYZ H.V] /Dest (3926) cvn H.B /DEST pdfmark end + -30 47669 a 1842 x FU(Most)464 +b(of)g(these)h(processes)f(are)h(started)f(at)g(boot)g(time)g(on)h +(most)f(systems.)g(I')-77 b(v)-23 b(e)464 b(made)g(a)h(fe)-39 +b(w)-30 51525 y(modi\002cations)514 b(to)i(my)g(system,)f(so)h(your)g +(mileage)f(will)h(most)f(lik)-15 b(ely)515 b(v)-39 b(ary)-101 +b(.)517 b(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)516 b(you)-30 +53540 y(will)440 b(see)h(most)f(of)h(these)f(processes)g(on)h(your)f +(system)g(too.)h(As)f(you)h(can)f(see,)h(these)g(options)-30 +55555 y(display)481 b(command)f(line)h(options)f(to)i(the)f(running)f +(processes.)i(Recently)-101 b(,)481 b(a)h(k)-15 b(ernel)480 +b(vulner)-31 b(-)-30 57569 y(ability)440 b(in)6018 57569 +y +SDict begin H.S end + 6018 57569 a 6018 57569 a +SDict begin 18.2 H.A end + 6018 57569 a 6018 57569 a +SDict begin [ /View [/XYZ H.V] /Dest (3927) cvn H.B /DEST pdfmark end + +6018 57569 a FP(ptrace)g FU(f)-15 b(acilitated)440 b(a)h(\002x)f(which) +g(no)g(longer)h(sho)-39 b(ws)440 b(command)g(line)g(options)g(for)-30 +59584 y(man)-23 b(y)562 b(running)f(processes.)i(These)f(are)h(no)-39 +b(w)562 b(listed)g(in)g(brack)-15 b(ets)561 b(lik)-15 +b(e)562 b(PIDs)g(108)g(through)-30 61599 y(110.)388 b(It)f(also)g +(brings)g(up)g(a)g(fe)-39 b(w)388 b(more)f(columns)g(and)g(some)g +(other)g(interesting)f(output.)-30 61934 y +SDict begin H.S end + -30 61934 +a -30 61934 a +SDict begin 18.2 H.A end + -30 61934 a -30 61934 a +SDict begin [ /View [/XYZ H.V] /Dest (3928) cvn H.B /DEST pdfmark end + -30 61934 a -30 +62709 a +SDict begin H.S end + -30 62709 a -30 62709 a +SDict begin 18.2 H.A end + -30 62709 a -30 62709 +a +SDict begin [ /View [/XYZ H.V] /Dest (3930) cvn H.B /DEST pdfmark end + -30 62709 a 1679 x FU(First,)596 b(you')-15 b(ll)595 +b(notice)h(that)g(most)f(of)i(these)f(processes)f(are)i(listed)f(as)g +(running)f(on)h(tty)49324 64388 y +SDict begin H.S end + 49324 64388 a 49324 +64388 a +SDict begin 18.2 H.A end + 49324 64388 a 49324 64388 a +SDict begin [ /View [/XYZ H.V] /Dest (3931) cvn H.B /DEST pdfmark end + 49324 64388 a FU(\223?\224.)-30 +66403 y(Those)494 b(are)g(not)f(attached)h(to)f(an)-23 +b(y)494 b(particular)f(terminal.)h(This)f(is)g(most)h(common)e(with)i +(dae-)-30 68417 y(mons,)478 b(which)g(are)g(processes)g(which)f(run)h +(without)f(attaching)h(to)g(an)-23 b(y)478 b(particular)f(terminal.)p +Black 49394 73792 a FR(137)p Black eop end +%%Page: 138 160 +TeXDict begin 138 159 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.138) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(11)g(Pr)-70 b(ocess)387 +b(Contr)-70 b(ol)p Black -30 3611 a FU(Common)414 b(daemons)h(are)g +(sendmail,)g(BIND,)g(apache,)h(and)f(NFS.)g(The)-23 b(y)415 +b(typically)f(listen)h(for)-30 5626 y(some)387 b(request)g(from)g(a)h +(client,)f(and)g(return)g(information)g(to)g(it)g(upon)g(request.)-30 +5961 y +SDict begin H.S end + -30 5961 a -30 5961 a +SDict begin 18.2 H.A end + -30 5961 a -30 5961 a +SDict begin [ /View [/XYZ H.V] /Dest (3932) cvn H.B /DEST pdfmark end + -30 +5961 a -30 5961 a +SDict begin H.S end + -30 5961 a -30 5961 a +SDict begin 18.2 H.A end + -30 5961 a -30 +5961 a +SDict begin [ /View [/XYZ H.V] /Dest (3934) cvn H.B /DEST pdfmark end + -30 5961 a -30 6736 a +SDict begin H.S end + -30 6736 a -30 6736 a +SDict begin 18.2 H.A end + -30 +6736 a -30 6736 a +SDict begin [ /View [/XYZ H.V] /Dest (3936) cvn H.B /DEST pdfmark end + -30 6736 a 1679 x FU(Second,)534 b(there)f(is)h(a)g +(ne)-39 b(w)533 b(column:)20565 8415 y +SDict begin H.S end + 20565 8415 a 20565 +8415 a +SDict begin 18.2 H.A end + 20565 8415 a 20565 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (3937) cvn H.B /DEST pdfmark end + 20565 8415 a FP(STAT)p +FU(.)h(It)f(sho)-39 b(ws)534 b(the)f(status)g(of)h(the)f(process.)46624 +8415 y +SDict begin H.S end + 46624 8415 a 46624 8415 a +SDict begin 18.2 H.A end + 46624 8415 a 46624 8415 +a +SDict begin [ /View [/XYZ H.V] /Dest (3938) cvn H.B /DEST pdfmark end + 46624 8415 a FP(S)h FU(stands)-30 10430 y(for)540 b(sleeping:)g(the)f +(process)h(is)g(w)-15 b(aiting)539 b(for)h(something)f(to)h(happen.) +39317 10430 y +SDict begin H.S end + 39317 10430 a 39317 10430 a +SDict begin 18.2 H.A end + 39317 10430 +a 39317 10430 a +SDict begin [ /View [/XYZ H.V] /Dest (3939) cvn H.B /DEST pdfmark end + 39317 10430 a FP(Z)g FU(stands)g(for)g(a)g(zom-)-30 +12445 y(bied)458 b(process.)g(A)g(zombied)g(processes)g(is)g(one)g +(whose)f(parent)h(has)g(died,)h(lea)-31 b(ving)457 b(the)h(child)-30 +14459 y(processes)494 b(behind.)h(This)f(is)g(not)g(a)h(good)f(thing.) +27602 14459 y +SDict begin H.S end + 27602 14459 a 27602 14459 a +SDict begin 18.2 H.A end + 27602 14459 +a 27602 14459 a +SDict begin [ /View [/XYZ H.V] /Dest (3940) cvn H.B /DEST pdfmark end + 27602 14459 a FP(D)g FU(stands)g(for)h(a)f(process)g +(that)h(has)f(entered)-30 16474 y(an)550 b(uninterruptible)e(sleep.)h +(Often,)h(these)f(processes)g(refuse)h(to)f(die)g(e)-39 +b(v)-23 b(en)549 b(when)h(passed)f(a)-30 18489 y(SIGKILL.)410 +b(Y)-170 b(ou)410 b(can)h(read)f(more)h(about)f(SIGKILL)g(later)g(in)g +(the)h(ne)-23 b(xt)410 b(section)g(on)46129 18489 y +SDict begin H.S end + 46129 +18489 a 46129 18489 a +SDict begin 18.2 H.A end + 46129 18489 a 46129 18489 a +SDict begin [ /View [/XYZ H.V] /Dest (3941) cvn H.B /DEST pdfmark end + 46129 +18489 a FP(kill)g FU(.)h(W)-30 20503 y(stands)341 b(for)g(paging.)g(A)g +(dead)h(process)f(is)g(mark)-15 b(ed)340 b(with)h(an)32247 +20503 y +SDict begin H.S end + 32247 20503 a 32247 20503 a +SDict begin 18.2 H.A end + 32247 20503 a 32247 +20503 a +SDict begin [ /View [/XYZ H.V] /Dest (3942) cvn H.B /DEST pdfmark end + 32247 20503 a FP(X)p FU(.)h(A)f(process)g(mark)-15 +b(ed)45142 20503 y +SDict begin H.S end + 45142 20503 a 45142 20503 a +SDict begin 18.2 H.A end + 45142 +20503 a 45142 20503 a +SDict begin [ /View [/XYZ H.V] /Dest (3943) cvn H.B /DEST pdfmark end + 45142 20503 a FP(T)341 b FU(is)g(traced,)-30 +22518 y(or)387 b(stopped.)7245 22518 y +SDict begin H.S end + 7245 22518 a 7245 +22518 a +SDict begin 18.2 H.A end + 7245 22518 a 7245 22518 a +SDict begin [ /View [/XYZ H.V] /Dest (3944) cvn H.B /DEST pdfmark end + 7245 22518 a FP(R)g +FU(means)g(that)g(the)g(process)g(is)g(runable.)-30 23628 +y +SDict begin H.S end + -30 23628 a -30 23628 a +SDict begin 18.2 H.A end + -30 23628 a -30 23628 a +SDict begin [ /View [/XYZ H.V] /Dest (3945) cvn H.B /DEST pdfmark end + -30 +23628 a 1680 x FU(If)h(you)f(w)-15 b(ant)386 b(to)h(see)h(e)-39 +b(v)-23 b(en)387 b(more)g(information)g(about)g(the)g(running)f +(processes,)i(try)f(this)g(out:)-30 27193 y +SDict begin H.S end + -30 27193 +a -30 27193 a +SDict begin 12.972 H.A end + -30 27193 a -30 27193 a +SDict begin [ /View [/XYZ H.V] /Dest (3946) cvn H.B /DEST pdfmark end + -30 27193 a -30 +27193 a +SDict begin H.S end + -30 27193 a -30 27193 a +SDict begin 12.972 H.A end + -30 27193 a -30 27193 +a +SDict begin [ /View [/XYZ H.V] /Dest (3947) cvn H.B /DEST pdfmark end + -30 27193 a 1100 x Fj(\045)1163 28293 y +SDict begin H.S end + 1163 28293 +a 1163 28293 a +SDict begin 12.972 H.A end + 1163 28293 a 1163 28293 a +SDict begin [ /View [/XYZ H.V] /Dest (3948) cvn H.B /DEST pdfmark end + 1163 28293 a +Fi(ps)662 b(-aux)633 29729 y Fh(USER)4638 b(PID)662 b(\045CPU)f +(\045MEM)1987 b(VSZ)1325 b(RSS)662 b(TTY)3975 b(STAT)662 +b(START)1986 b(TIME)662 b(COMMAND)633 31165 y(root)5963 +b(1)1325 b(0.0)g(0.0)1987 b(344)g(80)663 b(?)5301 b(S)2651 +b(Mar02)1986 b(0:03)662 b(init)f([3])633 32601 y(root)5963 +b(2)1325 b(0.0)g(0.0)3313 b(0)2650 b(0)663 b(?)5301 b(SW)1988 +b(Mar02)e(0:13)662 b([kflushd])633 34037 y(root)5963 +b(3)1325 b(0.0)g(0.0)3313 b(0)2650 b(0)663 b(?)5301 b(SW)1988 +b(Mar02)e(0:14)662 b([kupdate])633 35473 y(root)5963 +b(4)1325 b(0.0)g(0.0)3313 b(0)2650 b(0)663 b(?)5301 b(SW)1988 +b(Mar02)e(0:00)662 b([kpiod])633 36909 y(root)5963 b(5)1325 +b(0.0)g(0.0)3313 b(0)2650 b(0)663 b(?)5301 b(SW)1988 +b(Mar02)e(0:17)662 b([kswapd])633 38345 y(root)5300 b(11)1325 +b(0.0)g(0.0)f(1044)1987 b(44)663 b(?)5301 b(S)2651 b(Mar02)1986 +b(0:00)662 b(/sbin/kerneld)633 39781 y(root)5300 b(30)1325 +b(0.0)g(0.0)f(1160)2650 b(0)663 b(?)5301 b(SW)1988 b(Mar02)e(0:01)662 +b([cardmgr])633 41217 y(bin)5963 b(50)1325 b(0.0)g(0.0)f(1076)h(120)662 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/sbin/rpc.port)633 +42653 y(root)5300 b(54)1325 b(0.0)g(0.1)f(1360)h(192)662 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/sysl)633 +44089 y(root)5300 b(57)1325 b(0.0)g(0.1)f(1276)h(152)662 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/klog)633 +45525 y(root)5300 b(59)1325 b(0.0)g(0.0)f(1332)1987 b(60)663 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/inet)633 +46961 y(root)5300 b(61)1325 b(0.0)g(0.2)f(1540)h(312)662 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:04)662 b(/usr/local/sbi)633 +48397 y(root)5300 b(63)1325 b(0.0)g(0.0)f(1796)1987 b(72)663 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/rpc.)633 +49832 y(root)5300 b(65)1325 b(0.0)g(0.0)f(1812)1987 b(68)663 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/rpc.)633 +51268 y(root)5300 b(67)1325 b(0.0)g(0.2)f(1172)h(260)662 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/cron)633 +52704 y(root)5300 b(77)1325 b(0.0)g(0.2)f(1048)h(316)662 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/apmd)633 +54140 y(root)5300 b(79)1325 b(0.0)g(0.1)f(1100)h(152)662 +b(?)5301 b(S)2651 b(Mar02)1986 b(0:01)662 b(gpm)633 55576 +y(root)5300 b(94)1325 b(0.0)g(0.2)f(1396)h(280)662 b(?)5301 +b(S)2651 b(Mar02)1986 b(0:00)662 b(/usr/sbin/auto)633 +57012 y(chris)3975 b(106)1324 b(0.0)h(0.5)f(1820)h(680)662 +b(tty1)3312 b(S)2651 b(Mar02)1986 b(0:08)662 b(-bash)633 +58448 y(root)4638 b(108)1324 b(0.0)h(0.0)f(1048)2650 +b(0)663 b(tty3)3312 b(SW)1988 b(Mar02)e(0:00)662 b([agetty])633 +59884 y(root)4638 b(109)1324 b(0.0)h(0.0)f(1048)2650 +b(0)663 b(tty4)3312 b(SW)1988 b(Mar02)e(0:00)662 b([agetty])633 +61320 y(root)4638 b(110)1324 b(0.0)h(0.0)f(1048)2650 +b(0)663 b(tty5)3312 b(SW)1988 b(Mar02)e(0:00)662 b([agetty])633 +62756 y(root)4638 b(111)1324 b(0.0)h(0.0)f(1048)2650 +b(0)663 b(tty6)3312 b(SW)1988 b(Mar02)e(0:00)662 b([agetty])633 +64192 y([output)f(cut])-30 64365 y +SDict begin H.S end + -30 64365 a -30 64365 +a +SDict begin 18.2 H.A end + -30 64365 a -30 64365 a +SDict begin [ /View [/XYZ H.V] /Dest (3949) cvn H.B /DEST pdfmark end + -30 64365 a Black 9427 x FR(138)p +Black eop end +%%Page: 139 161 +TeXDict begin 139 160 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.139) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (3978) cvn H.B /DEST pdfmark end + -30 -2687 a 34393 -1636 a FR(Chapter)386 +b(11)h(Pr)-70 b(ocess)387 b(Contr)-70 b(ol)p Black -30 +2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (3951) cvn H.B /DEST pdfmark end + -30 +2504 a 1107 x FU(That')-85 b(s)358 b(a)g(whole)g(lot)g(of)g +(information.)f(Basically)-101 b(,)358 b(it)g(adds)g(information)f +(including)g(what)h(user)-30 5626 y(started)614 b(the)g(process,)h(ho) +-39 b(w)614 b(much)g(of)g(the)g(system)g(resources)g(the)g(process)g +(is)g(using)g(\(the)-30 7640 y(\045CPU,)341 b(\045MEM,)f(VSZ,)h(and)f +(RSS)g(columns\),)g(and)h(on)g(what)f(date)h(the)f(process)h(w)-15 +b(as)340 b(started.)-30 9655 y(Ob)-23 b(viously)-101 +b(,)391 b(that')-85 b(s)391 b(a)h(lot)f(of)h(information)e(that)i +(could)f(come)g(in)h(handy)f(for)h(a)g(system)e(admin-)-30 +11670 y(istrator)-85 b(.)368 b(It)g(also)g(brings)g(up)g(another)g +(point:)g(the)g(information)f(no)-39 b(w)369 b(goes)f(of)-39 +b(f)368 b(the)g(edge)h(of)f(the)-30 13684 y(screen)388 +b(so)f(that)g(you)g(cannot)g(see)g(it)g(all.)h(The)24761 +13684 y +SDict begin H.S end + 24761 13684 a 24761 13684 a +SDict begin 18.2 H.A end + 24761 13684 a 24761 +13684 a +SDict begin [ /View [/XYZ H.V] /Dest (3952) cvn H.B /DEST pdfmark end + 24761 13684 a FP(-w)f FU(option)g(will)g(force)37354 +13684 y +SDict begin H.S end + 37354 13684 a 37354 13684 a +SDict begin 18.2 H.A end + 37354 13684 a 37354 +13684 a +SDict begin [ /View [/XYZ H.V] /Dest (3953) cvn H.B /DEST pdfmark end + 37354 13684 a FP(ps)g FU(to)h(wrap)f(long)g(lines.)-30 +14795 y +SDict begin H.S end + -30 14795 a -30 14795 a +SDict begin 18.2 H.A end + -30 14795 a -30 14795 +a +SDict begin [ /View [/XYZ H.V] /Dest (3954) cvn H.B /DEST pdfmark end + -30 14795 a 1679 x FU(It')-85 b(s)606 b(not)g(terribly)f(pretty)-101 +b(,)607 b(b)-31 b(ut)606 b(it)g(does)g(the)g(job)-62 +b(.)606 b(Y)-170 b(ou')-77 b(v)-23 b(e)605 b(no)-39 b(w)606 +b(got)g(the)g(complete)f(listings)-30 18489 y(for)546 +b(each)g(process.)g(There')-85 b(s)545 b(e)-39 b(v)-23 +b(en)546 b(more)g(information)e(that)i(you)f(can)h(display)f(about)h +(each)-30 20503 y(process.)415 b(Check)g(out)f(the)h(v)-23 +b(ery)414 b(in-depth)h(man)f(page)h(for)31871 20503 y +SDict begin H.S end + +31871 20503 a 31871 20503 a +SDict begin 18.2 H.A end + 31871 20503 a 31871 20503 +a +SDict begin [ /View [/XYZ H.V] /Dest (3955) cvn H.B /DEST pdfmark end + 31871 20503 a FP(ps)p FU(.)g(Ho)-39 b(we)g(v)-23 b(er)-62 +b(,)416 b(the)e(options)g(sho)-39 b(wn)-30 22518 y(abo)-23 +b(v)g(e)348 b(are)h(the)f(most)g(popular)g(ones)h(and)f(will)g(be)h +(the)f(ones)h(you)f(need)h(to)f(use)g(the)h(most)f(often.)-30 +23628 y +SDict begin H.S end + -30 23628 a -30 23628 a +SDict begin 18.2 H.A end + -30 23628 a -30 23628 +a +SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-KILL) cvn H.B +/DEST pdfmark end + -30 23628 a 5789 x FL(11.4)620 b Fq(kill)-30 29417 +y +SDict begin H.S end + -30 29417 a -30 29417 a +SDict begin 18.2 H.A end + -30 29417 a -30 29417 a +SDict begin [ /View [/XYZ H.V] /Dest (3959) cvn H.B /DEST pdfmark end + -30 +29417 a -30 29417 a +SDict begin H.S end + -30 29417 a -30 29417 a +SDict begin 18.2 H.A end + -30 29417 +a -30 29417 a +SDict begin [ /View [/XYZ H.V] /Dest (3961) cvn H.B /DEST pdfmark end + -30 29417 a -30 30533 a +SDict begin H.S end + -30 30533 a -30 +30533 a +SDict begin 18.2 H.A end + -30 30533 a -30 30533 a +SDict begin [ /View [/XYZ H.V] /Dest (3964) cvn H.B /DEST pdfmark end + -30 30533 a 2015 x FU(On)560 +b(occasion,)h(programs)e(misbeha)-31 b(v)-23 b(e)560 +b(and)g(you')-15 b(ll)559 b(need)h(to)g(put)g(them)g(back)h(in)f(line.) +g(The)-30 34563 y(program)588 b(for)h(this)f(kind)g(of)h +(administration)e(is)i(called)31712 34563 y +SDict begin H.S end + 31712 34563 +a 31712 34563 a +SDict begin 18.2 H.A end + 31712 34563 a 31712 34563 a +SDict begin [ /View [/XYZ H.V] /Dest (3965) cvn H.B /DEST pdfmark end + 31712 34563 +a FP(kill)p FU(\(1\),)g(and)f(it)h(can)g(be)f(used)h(for)-30 +36577 y(manipulating)419 b(processes)g(in)h(se)-39 b(v)-23 +b(eral)420 b(w)-15 b(ays.)420 b(The)g(most)g(ob)-23 b(vious)419 +b(use)h(of)41045 36577 y +SDict begin H.S end + 41045 36577 a 41045 36577 a +SDict begin 18.2 H.A end + +41045 36577 a 41045 36577 a +SDict begin [ /View [/XYZ H.V] /Dest (3966) cvn H.B /DEST pdfmark end + 41045 36577 a FP(kill)f FU(is)h(to)g(kill)g +(of)-39 b(f)-30 38592 y(a)464 b(process.)f(Y)-170 b(ou')-15 +b(ll)462 b(need)i(to)f(do)g(this)g(if)g(a)h(program)f(has)g(run)h(a)-23 +b(w)-15 b(ay)462 b(and)i(is)f(using)g(up)g(lots)g(of)-30 +40607 y(system)387 b(resources,)g(or)h(if)f(you')-77 +b(re)387 b(just)g(sick)g(of)g(it)g(running.)-30 41717 +y +SDict begin H.S end + -30 41717 a -30 41717 a +SDict begin 18.2 H.A end + -30 41717 a -30 41717 a +SDict begin [ /View [/XYZ H.V] /Dest (3967) cvn H.B /DEST pdfmark end + -30 +41717 a 1679 x FU(In)523 b(order)g(to)f(kill)g(of)-39 +b(f)524 b(a)e(process,)h(you')-15 b(ll)522 b(need)h(to)f(kno)-39 +b(w)523 b(its)f(PID)h(or)f(its)h(name.)g(T)-124 b(o)522 +b(get)h(the)-30 45411 y(PID,)446 b(use)g(the)8152 45411 +y +SDict begin H.S end + 8152 45411 a 8152 45411 a +SDict begin 18.2 H.A end + 8152 45411 a 8152 45411 a +SDict begin [ /View [/XYZ H.V] /Dest (3968) cvn H.B /DEST pdfmark end + +8152 45411 a FP(ps)f FU(command)h(as)g(w)-15 b(as)445 +b(discussed)g(in)h(the)f(last)h(section.)g(F)-23 b(or)445 +b(e)-23 b(xample,)446 b(to)g(kill)-30 47425 y(of)-39 +b(f)388 b(process)f(4747,)g(you')-77 b(d)387 b(issue)g(the)g(follo)-39 +b(wing:)-30 49311 y +SDict begin H.S end + -30 49311 a -30 49311 a +SDict begin 14.56 H.A end + -30 49311 +a -30 49311 a +SDict begin [ /View [/XYZ H.V] /Dest (3969) cvn H.B /DEST pdfmark end + -30 49311 a -30 49311 a +SDict begin H.S end + -30 49311 a -30 +49311 a +SDict begin 14.56 H.A end + -30 49311 a -30 49311 a +SDict begin [ /View [/XYZ H.V] /Dest (3970) cvn H.B /DEST pdfmark end + -30 49311 a 1276 x FJ(\045)1309 +50587 y +SDict begin H.S end + 1309 50587 a 1309 50587 a +SDict begin 14.56 H.A end + 1309 50587 a 1309 50587 +a +SDict begin [ /View [/XYZ H.V] /Dest (3971) cvn H.B /DEST pdfmark end + 1309 50587 a FH(kill)743 b(4747)-30 52158 y +SDict begin H.S end + -30 52158 +a -30 52158 a +SDict begin 18.2 H.A end + -30 52158 a -30 52158 a +SDict begin [ /View [/XYZ H.V] /Dest (3972) cvn H.B /DEST pdfmark end + -30 52158 a 1993 +x FU(Note)567 b(that)f(you')-15 b(ll)566 b(ha)-31 b(v)-23 +b(e)567 b(to)g(be)g(the)f(o)-39 b(wner)567 b(of)g(the)g(process)g(in)g +(order)g(to)f(kill)h(it.)g(This)f(is)h(a)-30 56166 y(security)478 +b(feature.)g(If)h(you)f(were)g(allo)-39 b(wed)478 b(to)g(kill)f(of)-39 +b(f)479 b(processes)e(started)h(by)g(other)g(users,)g(it)-30 +58181 y(w)-15 b(ould)339 b(be)g(possible)g(to)g(do)g(all)g(sorts)g(of)h +(malicious)e(things.)i(Of)f(course,)39241 58181 y +SDict begin H.S end + 39241 +58181 a 39241 58181 a +SDict begin 18.2 H.A end + 39241 58181 a 39241 58181 a +SDict begin [ /View [/XYZ H.V] /Dest (3973) cvn H.B /DEST pdfmark end + 39241 +58181 a FP(root)g FU(can)h(kill)e(of)-39 b(f)340 b(an)-23 +b(y)-30 60195 y(process)387 b(on)g(the)h(system.)-30 +61306 y +SDict begin H.S end + -30 61306 a -30 61306 a +SDict begin 18.2 H.A end + -30 61306 a -30 61306 +a +SDict begin [ /View [/XYZ H.V] /Dest (3974) cvn H.B /DEST pdfmark end + -30 61306 a 1679 x FU(There')-85 b(s)366 b(another)f(v)-39 +b(ariety)366 b(of)g(the)18544 62985 y +SDict begin H.S end + 18544 62985 a 18544 +62985 a +SDict begin 18.2 H.A end + 18544 62985 a 18544 62985 a +SDict begin [ /View [/XYZ H.V] /Dest (3975) cvn H.B /DEST pdfmark end + 18544 62985 a FP(kill)g +FU(command)f(called)32430 62985 y +SDict begin H.S end + 32430 62985 a 32430 +62985 a +SDict begin 18.2 H.A end + 32430 62985 a 32430 62985 a +SDict begin [ /View [/XYZ H.V] /Dest (3976) cvn H.B /DEST pdfmark end + 32430 62985 a FP(killall)p +FU(\(1\).)h(This)f(program)g(does)-30 65000 y(e)-23 b(xactly)517 +b(what)h(it)f(says:)g(it)h(kills)f(all)g(the)h(running)f(processes)g +(that)h(ha)-31 b(v)-23 b(e)517 b(a)h(certain)g(name.)g(If)-30 +67014 y(you)488 b(w)-15 b(anted)488 b(to)g(kill)g(of)-39 +b(f)489 b(all)f(the)g(running)23969 67014 y +SDict begin H.S end + 23969 67014 +a 23969 67014 a +SDict begin 18.2 H.A end + 23969 67014 a 23969 67014 a +SDict begin [ /View [/XYZ H.V] /Dest (3977) cvn H.B /DEST pdfmark end + 23969 67014 +a FP(vim)g FU(processes,)g(you)g(could)g(type)g(the)h(follo)-39 +b(wing)p Black 49451 73792 a FR(139)p Black eop end +%%Page: 140 162 +TeXDict begin 140 161 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.140) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (4009) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(11)g(Pr)-70 b(ocess)387 b(Contr)-70 b(ol)p Black -30 +3611 a FU(command:)-30 6773 y FJ(\045)1309 6773 y +SDict begin H.S end + 1309 +6773 a 1309 6773 a +SDict begin 14.56 H.A end + 1309 6773 a 1309 6773 a +SDict begin [ /View [/XYZ H.V] /Dest (3980) cvn H.B /DEST pdfmark end + 1309 6773 +a FH(killall)743 b(vim)-30 8347 y +SDict begin H.S end + -30 8347 a -30 8347 +a +SDict begin 18.2 H.A end + -30 8347 a -30 8347 a +SDict begin [ /View [/XYZ H.V] /Dest (3981) cvn H.B /DEST pdfmark end + -30 8347 a 1990 x FU(An)-23 b(y)432 +b(and)g(all)7700 10337 y +SDict begin H.S end + 7700 10337 a 7700 10337 a +SDict begin 18.2 H.A end + 7700 +10337 a 7700 10337 a +SDict begin [ /View [/XYZ H.V] /Dest (3982) cvn H.B /DEST pdfmark end + 7700 10337 a FP(vim)g FU(processes)g(you)g(ha)-31 +b(v)-23 b(e)432 b(running)g(will)f(die)h(of)-39 b(f.)433 +b(Doing)f(this)g(as)44509 10337 y +SDict begin H.S end + 44509 10337 a 44509 +10337 a +SDict begin 18.2 H.A end + 44509 10337 a 44509 10337 a +SDict begin [ /View [/XYZ H.V] /Dest (3983) cvn H.B /DEST pdfmark end + 44509 10337 a FP(root)g +FU(w)-15 b(ould)-30 12352 y(kill)390 b(of)-39 b(f)390 +b(all)g(the)8810 12352 y +SDict begin H.S end + 8810 12352 a 8810 12352 a +SDict begin 18.2 H.A end + 8810 +12352 a 8810 12352 a +SDict begin [ /View [/XYZ H.V] /Dest (3984) cvn H.B /DEST pdfmark end + 8810 12352 a FP(vim)g FU(processes)g(running)g +(for)g(all)g(users.)h(This)e(brings)h(up)g(an)g(interesting)f(w)-15 +b(ay)-30 14366 y(to)387 b(kick)g(e)-39 b(v)-23 b(eryone)388 +b(\(including)e(yourself\))h(of)-39 b(f)388 b(the)f(system:)-30 +16252 y +SDict begin H.S end + -30 16252 a -30 16252 a +SDict begin 14.56 H.A end + -30 16252 a -30 16252 +a +SDict begin [ /View [/XYZ H.V] /Dest (3985) cvn H.B /DEST pdfmark end + -30 16252 a -30 16252 a +SDict begin H.S end + -30 16252 a -30 16252 a +SDict begin 14.56 H.A end + -30 +16252 a -30 16252 a +SDict begin [ /View [/XYZ H.V] /Dest (3986) cvn H.B /DEST pdfmark end + -30 16252 a 1276 x FJ(#)1309 17528 +y +SDict begin H.S end + 1309 17528 a 1309 17528 a +SDict begin 14.56 H.A end + 1309 17528 a 1309 17528 a +SDict begin [ /View [/XYZ H.V] /Dest (3987) cvn H.B /DEST pdfmark end + +1309 17528 a FH(killall)743 b(bash)-30 19102 y +SDict begin H.S end + -30 19102 +a -30 19102 a +SDict begin 18.2 H.A end + -30 19102 a -30 19102 a +SDict begin [ /View [/XYZ H.V] /Dest (3988) cvn H.B /DEST pdfmark end + -30 19102 a 1990 +x FU(Sometimes)561 b(a)h(re)-23 b(gular)562 b(kill)f(doesn')-28 +b(t)561 b(get)h(the)g(job)g(done.)g(Certain)f(processes)h(will)f(not)h +(die)-30 23107 y(with)504 b(a)g(kill.)g(Y)-170 b(ou')-15 +b(ll)503 b(need)h(to)g(use)g(a)h(more)f(potent)g(form.)g(If)g(that)g +(pesk)-23 b(y)504 b(PID)g(4747)g(w)-15 b(asn')-28 b(t)-30 +25122 y(responding)387 b(to)g(your)g(kill)g(request,)g(you)g(could)g +(do)g(the)g(follo)-39 b(wing:)-30 27007 y +SDict begin H.S end + -30 27007 a +-30 27007 a +SDict begin 14.56 H.A end + -30 27007 a -30 27007 a +SDict begin [ /View [/XYZ H.V] /Dest (3989) cvn H.B /DEST pdfmark end + -30 27007 a -30 27007 +a +SDict begin H.S end + -30 27007 a -30 27007 a +SDict begin 14.56 H.A end + -30 27007 a -30 27007 a +SDict begin [ /View [/XYZ H.V] /Dest (3990) cvn H.B /DEST pdfmark end + -30 +27007 a 1276 x FJ(\045)1309 28283 y +SDict begin H.S end + 1309 28283 a 1309 +28283 a +SDict begin 14.56 H.A end + 1309 28283 a 1309 28283 a +SDict begin [ /View [/XYZ H.V] /Dest (3991) cvn H.B /DEST pdfmark end + 1309 28283 a FH(kill)743 +b(-9)h(4747)-30 29858 y +SDict begin H.S end + -30 29858 a -30 29858 a +SDict begin 18.2 H.A end + -30 29858 +a -30 29858 a +SDict begin [ /View [/XYZ H.V] /Dest (3992) cvn H.B /DEST pdfmark end + -30 29858 a 1989 x FU(That)340 b(will)g(almost)f +(certainly)h(cause)g(process)g(4747)f(to)h(die.)h(Y)-170 +b(ou)339 b(can)h(do)g(the)g(same)g(thing)f(with)-30 33862 +y +SDict begin H.S end + -30 33862 a -30 33862 a +SDict begin 18.2 H.A end + -30 33862 a -30 33862 a +SDict begin [ /View [/XYZ H.V] /Dest (3993) cvn H.B /DEST pdfmark end + -30 +33862 a FP(killall)p FU(.)492 b(What)g(this)f(is)h(doing)f(is)h +(sending)g(a)g(dif)-39 b(ferent)492 b(signal)f(to)h(the)g(process.)g(A) +g(re)-23 b(gular)-30 35877 y +SDict begin H.S end + -30 35877 a -30 35877 a +SDict begin 18.2 H.A end + +-30 35877 a -30 35877 a +SDict begin [ /View [/XYZ H.V] /Dest (3994) cvn H.B /DEST pdfmark end + -30 35877 a FP(kill)419 b FU(sends)g(a)8336 +35877 y +SDict begin H.S end + 8336 35877 a 8336 35877 a +SDict begin 18.2 H.A end + 8336 35877 a 8336 35877 +a +SDict begin [ /View [/XYZ H.V] /Dest (3995) cvn H.B /DEST pdfmark end + 8336 35877 a FP(SIGTERM)f FU(\(terminate\))h(signal)g(to)g(the)h +(process,)f(which)g(tells)g(it)g(to)h(\002nish)e(what)-30 +37891 y(it')-85 b(s)455 b(doing,)g(clean)h(up,)f(and)h(e)-23 +b(xit.)18650 37891 y +SDict begin H.S end + 18650 37891 a 18650 37891 a +SDict begin 18.2 H.A end + 18650 +37891 a 18650 37891 a +SDict begin [ /View [/XYZ H.V] /Dest (3996) cvn H.B /DEST pdfmark end + 18650 37891 a FP(kill)743 b(-9)455 +b FU(sends)g(a)29355 37891 y +SDict begin H.S end + 29355 37891 a 29355 37891 +a +SDict begin 18.2 H.A end + 29355 37891 a 29355 37891 a +SDict begin [ /View [/XYZ H.V] /Dest (3997) cvn H.B /DEST pdfmark end + 29355 37891 a FP(SIGKILL)g +FU(\(kill\))g(signal)f(to)i(the)f(process,)-30 39906 +y(which)504 b(essentially)e(drops)i(it.)g(The)g(process)f(is)h(not)f +(allo)-39 b(wed)504 b(to)f(clean-up,)h(and)g(sometimes)-30 +41921 y(bad)538 b(things)e(lik)-15 b(e)537 b(data)h(corruption)f(could) +g(occur)h(by)f(killing)g(something)f(with)h(a)46181 41921 +y +SDict begin H.S end + 46181 41921 a 46181 41921 a +SDict begin 18.2 H.A end + 46181 41921 a 46181 41921 +a +SDict begin [ /View [/XYZ H.V] /Dest (3998) cvn H.B /DEST pdfmark end + 46181 41921 a FP(SIGKILL)p FU(.)-30 43935 y(There')-85 +b(s)469 b(a)h(whole)f(list)g(of)g(signals)g(at)g(your)g(disposal.)g(Y) +-170 b(ou)469 b(can)g(get)g(a)h(listing)e(of)i(signals)e(by)-30 +45950 y(typing)387 b(the)g(follo)-39 b(wing:)-30 47835 +y +SDict begin H.S end + -30 47835 a -30 47835 a +SDict begin 14.56 H.A end + -30 47835 a -30 47835 a +SDict begin [ /View [/XYZ H.V] /Dest (3999) cvn H.B /DEST pdfmark end + -30 +47835 a -30 47835 a +SDict begin H.S end + -30 47835 a -30 47835 a +SDict begin 14.56 H.A end + -30 47835 +a -30 47835 a +SDict begin [ /View [/XYZ H.V] /Dest (4000) cvn H.B /DEST pdfmark end + -30 47835 a 1277 x FJ(\045)1309 49112 y +SDict begin H.S end + +1309 49112 a 1309 49112 a +SDict begin 14.56 H.A end + 1309 49112 a 1309 49112 a +SDict begin [ /View [/XYZ H.V] /Dest (4001) cvn H.B /DEST pdfmark end + 1309 +49112 a FH(kill)743 b(-l)1458 50723 y FP(1\))g(SIGHUP)3719 +b(2\))744 b(SIGINT)2975 b(3\))743 b(SIGQUIT)2231 b(4\))744 +b(SIGILL)1458 52335 y(5\))f(SIGTRAP)2975 b(6\))744 b(SIGABRT)2231 +b(7\))743 b(SIGBUS)2975 b(8\))744 b(SIGFPE)1458 53947 +y(9\))f(SIGKILL)2231 b(10\))744 b(SIGUSR1)1487 b(11\))743 +b(SIGSEGV)1487 b(12\))744 b(SIGUSR2)714 55559 y(13\))f(SIGPIPE)2231 +b(14\))744 b(SIGALRM)1487 b(15\))743 b(SIGTERM)1487 b(17\))744 +b(SIGCHLD)714 57170 y(18\))f(SIGCONT)2231 b(19\))744 +b(SIGSTOP)1487 b(20\))743 b(SIGTSTP)1487 b(21\))744 b(SIGTTIN)714 +58782 y(22\))f(SIGTTOU)2231 b(23\))744 b(SIGURG)2231 +b(24\))743 b(SIGXCPU)1487 b(25\))744 b(SIGXFSZ)714 60394 +y(26\))f(SIGVTALRM)g(27\))h(SIGPROF)1487 b(28\))743 b(SIGWINCH)g(29\))h +(SIGIO)714 62005 y(30\))f(SIGPWR)-30 63700 y +SDict begin H.S end + -30 63700 +a -30 63700 a +SDict begin 18.2 H.A end + -30 63700 a -30 63700 a +SDict begin [ /View [/XYZ H.V] /Dest (4002) cvn H.B /DEST pdfmark end + -30 63700 a 1870 +x FU(The)383 b(number)g(must)f(be)h(used)g(for)18538 +65570 y +SDict begin H.S end + 18538 65570 a 18538 65570 a +SDict begin 18.2 H.A end + 18538 65570 a 18538 +65570 a +SDict begin [ /View [/XYZ H.V] /Dest (4003) cvn H.B /DEST pdfmark end + 18538 65570 a FP(kill)p FU(,)g(while)g(the)g(name)g(minus)f +(the)h(leading)43523 65570 y +SDict begin H.S end + 43523 65570 a 43523 65570 +a +SDict begin 18.2 H.A end + 43523 65570 a 43523 65570 a +SDict begin [ /View [/XYZ H.V] /Dest (4004) cvn H.B /DEST pdfmark end + 43523 65570 a FU(\223SIG\224)g(can)g(be) +-30 67585 y(used)k(with)6341 67585 y +SDict begin H.S end + 6341 67585 a 6341 +67585 a +SDict begin 18.2 H.A end + 6341 67585 a 6341 67585 a +SDict begin [ /View [/XYZ H.V] /Dest (4005) cvn H.B /DEST pdfmark end + 6341 67585 a FP(killall)p +FU(.)g(Here')-85 b(s)387 b(another)g(e)-23 b(xample:)p +Black -30 73792 a FR(140)p Black eop end +%%Page: 141 163 +TeXDict begin 141 162 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.141) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 34393 -1636 a FR(Chapter)386 b(11)h(Pr)-70 +b(ocess)387 b(Contr)-70 b(ol)p Black -30 2504 a +SDict begin H.S end + -30 2504 +a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4006) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 +a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4007) cvn H.B /DEST pdfmark end + -30 2504 +a 1107 x FJ(\045)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + +1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4008) cvn H.B /DEST pdfmark end + 1309 3611 a FH(killall)743 b(-KILL)g(vim)-30 +7176 y FU(A)505 b(\002nal)g(use)g(of)g FP(kill)g FU(is)g(to)f(restart)h +(a)h(process.)f(Sending)f(a)33842 7176 y +SDict begin H.S end + 33842 7176 a +33842 7176 a +SDict begin 18.2 H.A end + 33842 7176 a 33842 7176 a +SDict begin [ /View [/XYZ H.V] /Dest (4011) cvn H.B /DEST pdfmark end + 33842 7176 a FP(SIGHUP)h +FU(will)f(cause)i(most)e(pro-)-30 9190 y(cesses)318 b(to)f(re-read)h +(their)g(con\002guration)e(\002les.)i(This)f(is)h(especially)f(helpful) +g(for)h(telling)f(system)-30 11205 y(processes)387 b(to)g(re-read)h +(their)f(con\002g)g(\002les)g(after)g(editing.)-30 12315 +y +SDict begin H.S end + -30 12315 a -30 12315 a +SDict begin 18.2 H.A end + -30 12315 a -30 12315 a +SDict begin [ /View [/XYZ H.V] /Dest (PROCESS-CONTROL-TOP) cvn H.B +/DEST pdfmark end + -30 +12315 a 5789 x FL(11.5)620 b Fq(top)-30 19682 y +SDict begin H.S end + -30 19682 +a -30 19682 a +SDict begin 18.2 H.A end + -30 19682 a -30 19682 a +SDict begin [ /View [/XYZ H.V] /Dest (4015) cvn H.B /DEST pdfmark end + -30 19682 a 1553 +x FU(Finally)-101 b(,)491 b(there')-85 b(s)490 b(a)h(command)f(you)h +(can)g(use)g(to)g(display)f(updating)g(information)g(about)g(the)-30 +23249 y(processes)397 b(running)g(on)h(the)f(system.)g(This)g(command)g +(is)h(called)36047 23249 y +SDict begin H.S end + 36047 23249 a 36047 23249 +a +SDict begin 18.2 H.A end + 36047 23249 a 36047 23249 a +SDict begin [ /View [/XYZ H.V] /Dest (4016) cvn H.B /DEST pdfmark end + 36047 23249 a FP(top)p +FU(\(1\),)g(and)f(is)h(started)f(lik)-15 b(e)-30 25264 +y(so:)-30 26829 y +SDict begin H.S end + -30 26829 a -30 26829 a +SDict begin 14.56 H.A end + -30 26829 a +-30 26829 a +SDict begin [ /View [/XYZ H.V] /Dest (4017) cvn H.B /DEST pdfmark end + -30 26829 a -30 26829 a +SDict begin H.S end + -30 26829 a -30 26829 +a +SDict begin 14.56 H.A end + -30 26829 a -30 26829 a +SDict begin [ /View [/XYZ H.V] /Dest (4018) cvn H.B /DEST pdfmark end + -30 26829 a 1597 x FJ(\045)1309 +28426 y +SDict begin H.S end + 1309 28426 a 1309 28426 a +SDict begin 14.56 H.A end + 1309 28426 a 1309 28426 +a +SDict begin [ /View [/XYZ H.V] /Dest (4019) cvn H.B /DEST pdfmark end + 1309 28426 a FH(top)-30 28594 y +SDict begin H.S end + -30 28594 a -30 28594 +a +SDict begin 18.2 H.A end + -30 28594 a -30 28594 a +SDict begin [ /View [/XYZ H.V] /Dest (4020) cvn H.B /DEST pdfmark end + -30 28594 a -30 30143 a +SDict begin H.S end + -30 +30143 a -30 30143 a +SDict begin 18.2 H.A end + -30 30143 a -30 30143 a +SDict begin [ /View [/XYZ H.V] /Dest (4022) cvn H.B /DEST pdfmark end + -30 30143 +a 1847 x FU(This)554 b(will)h(display)f(a)h(full)f(screen)h(of)g +(information)f(about)g(the)h(processes)f(running)g(on)h(the)-30 +34005 y(system,)533 b(as)g(well)g(as)g(some)f(o)-23 b(v)g(erall)532 +b(information)g(about)h(the)g(system.)f(This)h(includes)f(load)-30 +36019 y(a)-31 b(v)-23 b(erage,)356 b(number)g(of)f(processes,)h(the)g +(CPU)f(status,)g(free)i(memory)e(information,)g(and)h(details)-30 +38034 y(about)419 b(processes)f(including)g(PID,)h(user)-62 +b(,)420 b(priority)-101 b(,)418 b(CPU)h(and)g(memory)f(usage)h +(information,)-30 40049 y(running)387 b(time,)g(and)g(program)g(name.) +-30 41934 y +SDict begin H.S end + -30 41934 a -30 41934 a +SDict begin 12.972 H.A end + -30 41934 a -30 41934 +a +SDict begin [ /View [/XYZ H.V] /Dest (4023) cvn H.B /DEST pdfmark end + -30 41934 a 633 43034 a Fh(6:47pm)1324 b(up)662 b(1)g(day,)1324 +b(18:01,)g(1)663 b(user,)1324 b(load)661 b(average:)g(0.02,)g(0.07,)g +(0.02)-30 44470 y(61)h(processes:)e(59)i(sleeping,)e(2)j(running,)d(0)j +(zombie,)d(0)j(stopped)-30 45906 y(CPU)f(states:)1323 +b(2.8\045)662 b(user,)1324 b(3.1\045)662 b(system,)1323 +b(0.0\045)662 b(nice,)f(93.9\045)g(idle)-30 47342 y(Mem:)1987 +b(257992K)661 b(av,)1324 b(249672K)661 b(used,)2650 b(8320K)661 +b(free,)1987 b(51628K)661 b(shrd,)1324 b(78248K)661 b(buff)-30 +48778 y(Swap:)1987 b(32764K)661 b(av,)3313 b(136K)661 +b(used,)1987 b(32628K)661 b(free,)11265 b(82600K)661 +b(cached)-30 50214 y +SDict begin H.S end + -30 50214 a -30 50214 a +SDict begin 12.972 H.A end + -30 50214 +a -30 50214 a +SDict begin [ /View [/XYZ H.V] /Dest (4024) cvn H.B /DEST pdfmark end + -30 50214 a 633 51650 a Fg(PID)h(USER)2649 +b(PRI)1325 b(NI)g(SIZE)f(RSS)h(SHARE)f(STAT)g(LIB)662 +b(\045CPU)f(\045MEM)1325 b(TIME)661 b(COMMAND)633 53086 +y Fh(112)h(root)3312 b(12)1988 b(0)662 b(19376)1324 b(18M)1987 +b(2468)1325 b(R)4638 b(0)1326 b(3.7)e(7.5)662 b(55:53)f(X)-30 +54522 y(4947)h(david)2649 b(15)1988 b(0)1325 b(2136)661 +b(2136)1987 b(1748)1325 b(S)4638 b(0)1326 b(2.3)e(0.8)h(0:00)661 +b(screenshot)-30 55958 y(3398)h(david)3312 b(7)1988 b(0)662 +b(20544)1324 b(20M)1987 b(3000)1325 b(S)4638 b(0)1326 +b(1.5)e(7.9)h(0:14)661 b(gimp)-30 57394 y(4946)h(root)3312 +b(12)1988 b(0)1325 b(1040)661 b(1040)2650 b(836)1325 +b(R)4638 b(0)1326 b(1.5)e(0.4)h(0:00)661 b(top)633 58830 +y(121)h(david)3312 b(4)1988 b(0)g(796)1324 b(796)2650 +b(644)1325 b(S)4638 b(0)1326 b(1.1)e(0.3)662 b(25:37)f(wmSMPmon)633 +60266 y(115)h(david)3312 b(3)1988 b(0)1325 b(2180)661 +b(2180)1987 b(1452)1325 b(S)4638 b(0)1326 b(0.3)e(0.8)h(1:35)661 +b(wmaker)-30 61702 y(4948)h(david)2649 b(16)1988 b(0)g(776)1324 +b(776)2650 b(648)1325 b(S)4638 b(0)1326 b(0.3)e(0.3)h(0:00)661 +b(xwd)1958 63138 y(1)i(root)3975 b(1)1988 b(0)g(176)1324 +b(176)2650 b(148)1325 b(S)4638 b(0)1326 b(0.1)e(0.0)h(0:13)661 +b(init)633 64574 y(189)h(david)3312 b(1)1988 b(0)1325 +b(6256)661 b(6156)1987 b(4352)1325 b(S)4638 b(0)1326 +b(0.1)e(2.4)h(3:16)661 b(licq)-30 66010 y(4734)h(david)3312 +b(0)1988 b(0)1325 b(1164)661 b(1164)2650 b(916)1325 b(S)4638 +b(0)1326 b(0.1)e(0.4)h(0:00)661 b(rxvt)633 67446 y([output)g(cut])p +Black 49451 73792 a FR(141)p Black eop end +%%Page: 142 164 +TeXDict begin 142 163 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.142) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(11)g(Pr)-70 b(ocess)387 +b(Contr)-70 b(ol)p Black -30 3611 a FU(It')-85 b(s)504 +b(called)6661 3611 y +SDict begin H.S end + 6661 3611 a 6661 3611 a +SDict begin 18.2 H.A end + 6661 3611 +a 6661 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4026) cvn H.B /DEST pdfmark end + 6661 3611 a FP(top)g FU(because)h(the)f(most)g(CPU)g +(intensi)-39 b(v)-23 b(e)503 b(programs)h(will)g(be)h(listed)f(at)g +(the)h(top.)-30 5626 y(An)409 b(interesting)e(note)h(is)h(that)f(top)g +(will)g(be)g(listed)g(\002rst)g(on)h(most)e(inacti)-39 +b(v)-23 b(e)408 b(\(and)h(some)f(acti)-39 b(v)-23 b(e\))-30 +7640 y(systems)349 b(because)g(of)h(its)f(CPU)g(utilization.)g(Ho)-39 +b(we)g(v)-23 b(er)-62 b(,)30578 7640 y +SDict begin H.S end + 30578 7640 a 30578 +7640 a +SDict begin 18.2 H.A end + 30578 7640 a 30578 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (4027) cvn H.B /DEST pdfmark end + 30578 7640 a FP(top)350 +b FU(is)f(quite)g(useful)g(for)h(determining)-30 9655 +y(what)387 b(program)g(is)g(misbeha)-31 b(ving)386 b(and)i(needs)f(to)g +(be)g(killed)g(of)-39 b(f.)-30 10765 y +SDict begin H.S end + -30 10765 a -30 +10765 a +SDict begin 18.2 H.A end + -30 10765 a -30 10765 a +SDict begin [ /View [/XYZ H.V] /Dest (4028) cvn H.B /DEST pdfmark end + -30 10765 a 1680 x FU(But)475 +b(suppose)h(you)f(only)h(w)-15 b(ant)475 b(a)h(list)f(of)h(your)g(o)-39 +b(wn)475 b(processes,)h(or)g(the)g(processes)f(of)h(some)-30 +14459 y(other)404 b(user)-85 b(.)405 b(The)f(processes)g(you)g(w)-15 +b(ant)403 b(to)h(see)h(might)e(not)h(be)g(among)g(the)g(most)g(CPU)f +(inten-)-30 16474 y(si)-39 b(v)-23 b(e)379 b(programs)f(currently)g +(running.)h(The)23365 16474 y +SDict begin H.S end + 23365 16474 a 23365 16474 +a +SDict begin 18.2 H.A end + 23365 16474 a 23365 16474 a +SDict begin [ /View [/XYZ H.V] /Dest (4029) cvn H.B /DEST pdfmark end + 23365 16474 a FP(-u)g FU(option)f(allo) +-39 b(ws)378 b(you)h(to)f(specify)h(a)g(username)f(or)-30 +18489 y(UID)387 b(and)h(monitor)e(only)h(those)g(processes)g(o)-39 +b(wned)387 b(by)g(that)g(UID.)-30 20374 y +SDict begin H.S end + -30 20374 a +-30 20374 a +SDict begin 12.972 H.A end + -30 20374 a -30 20374 a +SDict begin [ /View [/XYZ H.V] /Dest (4030) cvn H.B /DEST pdfmark end + -30 20374 a -30 20374 +a +SDict begin H.S end + -30 20374 a -30 20374 a +SDict begin 12.972 H.A end + -30 20374 a -30 20374 a +SDict begin [ /View [/XYZ H.V] /Dest (4031) cvn H.B /DEST pdfmark end + -30 +20374 a 1100 x Fj(\045)1163 21474 y +SDict begin H.S end + 1163 21474 a 1163 +21474 a +SDict begin 12.972 H.A end + 1163 21474 a 1163 21474 a +SDict begin [ /View [/XYZ H.V] /Dest (4032) cvn H.B /DEST pdfmark end + 1163 21474 a Fi(top)662 +b(-u)g(alan)633 22910 y Fh(PID)g(USER)3975 b(PR)1325 +b(NI)g(VIRT)661 b(RES)1987 b(SHR)662 b(S)h(\045CPU)e(\045MEM)1987 +b(TIME+)g(COMMAND)-30 24346 y(3622)662 b(alan)3975 b(13)1987 +b(0)663 b(11012)1324 b(10m)662 b(6956)f(S)1325 b(1.0)g(2.1)1987 +b(0:03.66)661 b(gnome-terminal)-30 25782 y(3739)h(alan)3975 +b(13)1987 b(0)1326 b(1012)661 b(1012)1324 b(804)662 b(R)1325 +b(0.3)g(0.2)1987 b(0:00.06)661 b(top)-30 27218 y(3518)h(alan)4638 +b(9)1987 b(0)1326 b(1312)661 b(1312)h(1032)f(S)1325 b(0.0)g(0.3)1987 +b(0:00.09)661 b(bash)-30 28654 y(3529)h(alan)4638 b(9)1987 +b(0)h(984)1325 b(984)f(848)662 b(S)1325 b(0.0)g(0.2)1987 +b(0:00.00)661 b(startx)-30 30090 y(3544)h(alan)4638 b(9)1987 +b(0)h(640)1325 b(640)f(568)662 b(S)1325 b(0.0)g(0.1)1987 +b(0:00.00)661 b(xinit)-30 31526 y(3548)h(alan)4638 b(9)1987 +b(0)1326 b(8324)661 b(8320)h(6044)f(S)1325 b(0.0)g(1.6)1987 +b(0:00.30)661 b(gnome-session)-30 32962 y(3551)h(alan)4638 +b(9)1987 b(0)1326 b(7084)661 b(7084)h(1968)f(S)1325 b(0.0)g(1.4)1987 +b(0:00.50)661 b(gconfd-2)-30 34398 y(3553)h(alan)4638 +b(9)1987 b(0)1326 b(2232)661 b(2232)1324 b(380)662 b(S)1325 +b(0.0)g(0.4)1987 b(0:00.05)661 b(esd)-30 35834 y(3555)h(alan)4638 +b(9)1987 b(0)1326 b(2552)661 b(2552)h(1948)f(S)1325 b(0.0)g(0.5)1987 +b(0:00.10)661 b(bonobo-activati)-30 37270 y(3557)h(alan)4638 +b(9)1987 b(0)1326 b(2740)661 b(2740)h(2224)f(S)1325 b(0.0)g(0.5)1987 +b(0:00.05)661 b(gnome-smproxy)-30 38706 y(3559)h(alan)4638 +b(9)1987 b(0)1326 b(6496)661 b(6492)h(5004)f(S)1325 b(0.0)g(1.3)1987 +b(0:00.31)661 b(gnome-settings-)-30 40142 y(3565)h(alan)4638 +b(9)1987 b(0)1326 b(1740)661 b(1740)h(1440)f(S)1325 b(0.0)g(0.3)1987 +b(0:00.28)661 b(xscreensaver)-30 41578 y(3568)h(alan)4638 +b(9)1987 b(0)1326 b(7052)661 b(7052)h(4960)f(S)1325 b(0.0)g(1.4)1987 +b(0:02.28)661 b(metacity)-30 43014 y(3572)h(alan)4638 +b(9)1987 b(0)663 b(11412)1324 b(11m)662 b(7992)f(S)1325 +b(0.0)g(2.2)1987 b(0:01.58)661 b(gnome-panel)-30 44450 +y(3574)h(alan)4638 b(9)1987 b(0)663 b(12148)1324 b(11m)662 +b(8780)f(S)1325 b(0.0)g(2.4)1987 b(0:00.64)661 b(nautilus)-30 +45885 y(3575)h(alan)4638 b(9)1987 b(0)663 b(12148)1324 +b(11m)662 b(8780)f(S)1325 b(0.0)g(2.4)1987 b(0:00.00)661 +b(nautilus)-30 47321 y(3576)h(alan)4638 b(9)1987 b(0)663 +b(12148)1324 b(11m)662 b(8780)f(S)1325 b(0.0)g(2.4)1987 +b(0:00.00)661 b(nautilus)-30 48894 y +SDict begin H.S end + -30 48894 a -30 +48894 a +SDict begin 18.2 H.A end + -30 48894 a -30 48894 a +SDict begin [ /View [/XYZ H.V] /Dest (4033) cvn H.B /DEST pdfmark end + -30 48894 a 1992 x FU(As)614 +b(you)g(can)h(see,)g(I'm)f(currently)g(running)25489 +50886 y +SDict begin H.S end + 25489 50886 a 25489 50886 a +SDict begin 18.2 H.A end + 25489 50886 a 25489 +50886 a +SDict begin [ /View [/XYZ H.V] /Dest (4034) cvn H.B /DEST pdfmark end + 25489 50886 a FP(X)p FU(,)27235 50886 y +SDict begin H.S end + 27235 +50886 a 27235 50886 a +SDict begin 18.2 H.A end + 27235 50886 a 27235 50886 a +SDict begin [ /View [/XYZ H.V] /Dest (4035) cvn H.B /DEST pdfmark end + 27235 +50886 a FP(top)p FU(,)g(a)31771 50886 y +SDict begin H.S end + 31771 50886 a +31771 50886 a +SDict begin 18.2 H.A end + 31771 50886 a 31771 50886 a +SDict begin [ /View [/XYZ H.V] /Dest (4036) cvn H.B /DEST pdfmark end + 31771 50886 +a FP(gnome-terminal)f FU(\(in)h(which)g(I'm)-30 52901 +y(writing)411 b(this\))h(and)g(man)-23 b(y)412 b(other)g(X-related)g +(processes)f(which)h(tak)-15 b(e)412 b(up)g(the)g(most)f(CPU)g(time)-30 +54915 y(for)342 b(me.)h(This)f(is)f(a)i(good)f(w)-15 +b(ay)341 b(to)h(monitor)g(ho)-39 b(w)342 b(hard)g(your)g(users)g(are)g +(w)-15 b(orking)341 b(your)h(system.)-30 55251 y +SDict begin H.S end + -30 +55251 a -30 55251 a +SDict begin 18.2 H.A end + -30 55251 a -30 55251 a +SDict begin [ /View [/XYZ H.V] /Dest (4037) cvn H.B /DEST pdfmark end + -30 55251 +a -30 55251 a +SDict begin H.S end + -30 55251 a -30 55251 a +SDict begin 18.2 H.A end + -30 55251 a -30 +55251 a +SDict begin [ /View [/XYZ H.V] /Dest (4039) cvn H.B /DEST pdfmark end + -30 55251 a -30 56026 a +SDict begin H.S end + -30 56026 a -30 56026 +a +SDict begin 18.2 H.A end + -30 56026 a -30 56026 a +SDict begin [ /View [/XYZ H.V] /Dest (4041) cvn H.B /DEST pdfmark end + -30 56026 a -30 56026 a +SDict begin H.S end + -30 +56026 a -30 56026 a +SDict begin 18.2 H.A end + -30 56026 a -30 56026 a +SDict begin [ /View [/XYZ H.V] /Dest (4042) cvn H.B /DEST pdfmark end + -30 56026 +a 1679 x FP(top)597 b FU(also)g(supports)g(monitoring)f(processes)h(by) +g(their)g(PID,)h(ignoring)e(idle)h(and)h(zombied)-30 +59719 y(processes,)449 b(and)h(man)-23 b(y)448 b(other)i(options.)e +(The)i(best)f(place)g(to)g(get)g(a)h(handle)f(on)g(these)g(options)-30 +61734 y(is)387 b(the)g(man)g(page)h(for)12236 61734 y +SDict begin H.S end + +12236 61734 a 12236 61734 a +SDict begin 18.2 H.A end + 12236 61734 a 12236 61734 +a +SDict begin [ /View [/XYZ H.V] /Dest (4043) cvn H.B /DEST pdfmark end + 12236 61734 a FP(top)p FU(.)p Black -30 73792 a FR(142)p +Black eop end +%%Page: 143 165 +TeXDict begin 143 164 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.143) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN) cvn H.B /DEST +pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(12)-30 10743 y FO(Essential)1287 b(System)-30 16759 +y(Administration)p -30 24332 51806 56 v -30 24332 a +SDict begin H.S end + -30 +24332 a -30 24332 a +SDict begin 18.2 H.A end + -30 24332 a -30 24332 a +SDict begin [ /View [/XYZ H.V] /Dest (4046) cvn H.B /DEST pdfmark end + -30 24332 +a -30 25107 a +SDict begin H.S end + -30 25107 a -30 25107 a +SDict begin 18.2 H.A end + -30 25107 a -30 +25107 a +SDict begin [ /View [/XYZ H.V] /Dest (4048) cvn H.B /DEST pdfmark end + -30 25107 a 1051 x FU(Whoa)521 b(whoa)g(whoa)g(whoa)f(whoa....) +j(I)e(kno)-39 b(w)521 b(what)f(you')-77 b(re)521 b(thinking.)40313 +26158 y +SDict begin H.S end + 40313 26158 a 40313 26158 a +SDict begin 18.2 H.A end + 40313 26158 a 40313 +26158 a +SDict begin [ /View [/XYZ H.V] /Dest (4049) cvn H.B /DEST pdfmark end + 40313 26158 a FU(\223I'm)g(not)g(a)g(system)-30 +28172 y(administrator!)386 b(I)i(don')-28 b(t)387 b(e)-39 +b(v)-23 b(en)387 b(w)-15 b(ant)387 b(to)g(be)g(a)h(system)e +(administrator!\224)-30 28508 y +SDict begin H.S end + -30 28508 a -30 28508 +a +SDict begin 18.2 H.A end + -30 28508 a -30 28508 a +SDict begin [ /View [/XYZ H.V] /Dest (4050) cvn H.B /DEST pdfmark end + -30 28508 a -30 29283 a +SDict begin H.S end + -30 +29283 a -30 29283 a +SDict begin 18.2 H.A end + -30 29283 a -30 29283 a +SDict begin [ /View [/XYZ H.V] /Dest (4052) cvn H.B /DEST pdfmark end + -30 29283 +a 1679 x FU(F)-23 b(act)553 b(is,)g(you)f(are)h(the)g(administrator)f +(of)h(an)-23 b(y)552 b(computers)h(for)g(which)f(you)h(ha)-31 +b(v)-23 b(e)553 b(the)48800 30962 y +SDict begin H.S end + 48800 30962 a 48800 +30962 a +SDict begin 18.2 H.A end + 48800 30962 a 48800 30962 a +SDict begin [ /View [/XYZ H.V] /Dest (4053) cvn H.B /DEST pdfmark end + 48800 30962 a FP(root)-30 +32977 y FU(passw)-15 b(ord.)479 b(This)g(might)f(be)i(your)f(desktop)g +(box)g(with)g(one)g(or)h(tw)-15 b(o)478 b(users,)i(or)g(it)f(might)f +(be)i(a)-30 34991 y(big)540 b(serv)-23 b(er)539 b(with)h(se)-39 +b(v)-23 b(eral)539 b(hundred.)h(Re)-23 b(g)-8 b(ardless,)540 +b(you')-15 b(ll)539 b(need)g(to)h(kno)-39 b(w)540 b(ho)-39 +b(w)540 b(to)f(manage)-30 37006 y(users,)492 b(and)g(ho)-39 +b(w)491 b(to)h(shut)f(do)-39 b(wn)492 b(the)f(system)g(safely)-101 +b(.)492 b(These)g(tasks)f(seem)h(simple,)f(b)-31 b(ut)491 +b(the)-23 b(y)-30 39021 y(ha)-31 b(v)-23 b(e)387 b(some)g(quirks)g(to)g +(k)-15 b(eep)387 b(in)g(mind.)-30 39356 y +SDict begin H.S end + -30 39356 a +-30 39356 a +SDict begin 18.2 H.A end + -30 39356 a -30 39356 a +SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-USERS) cvn +H.B /DEST pdfmark end + -30 39356 a 5789 +x FL(12.1)620 b(User)-33 b(s)620 b(and)f(Gr)-45 b(oups)-30 +45607 y +SDict begin H.S end + -30 45607 a -30 45607 a +SDict begin 18.2 H.A end + -30 45607 a -30 45607 +a +SDict begin [ /View [/XYZ H.V] /Dest (4056) cvn H.B /DEST pdfmark end + -30 45607 a -30 46723 a +SDict begin H.S end + -30 46723 a -30 46723 a +SDict begin 18.2 H.A end + -30 +46723 a -30 46723 a +SDict begin [ /View [/XYZ H.V] /Dest (4059) cvn H.B /DEST pdfmark end + -30 46723 a 1553 x FU(As)517 b(mentioned)f(in)p +0 TeXcolorgray 10992 48276 a +SDict begin H.S end + 10992 48276 a FU(Chapter)387 +b(8)17061 48276 y +SDict begin 18.2 H.L end + 17061 48276 a 17061 48276 a +SDict begin [ /Subtype /Link /Dest (SHELL) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 17061 48276 +a Black -1 w FU(,)518 b(you)f(shouldn')-28 b(t)516 b(normally)g(use)h +(your)g(system)f(logged)g(in)h(as)-30 50290 y +SDict begin H.S end + -30 50290 +a -30 50290 a +SDict begin 18.2 H.A end + -30 50290 a -30 50290 a +SDict begin [ /View [/XYZ H.V] /Dest (4061) cvn H.B /DEST pdfmark end + -30 50290 a FP(root)p +FU(.)348 b(Instead,)f(you)h(should)f(create)g(a)h(normal)f(user)h +(account)f(for)h(e)-39 b(v)-23 b(eryday)347 b(use,)h(and)g(use)f(the) +-30 52305 y(root)483 b(account)g(only)g(for)g(system)g(administration)f +(tasks.)h(T)-124 b(o)483 b(create)h(a)f(user)-62 b(,)484 +b(you)f(can)g(either)-30 54320 y(use)387 b(the)h(tools)e(supplied)h +(with)f(Slackw)-15 b(are,)387 b(or)h(you)f(can)g(edit)g(the)h(passw)-15 +b(ord)386 b(\002les)h(by)g(hand.)-30 54655 y +SDict begin H.S end + -30 54655 +a -30 54655 a +SDict begin 18.2 H.A end + -30 54655 a -30 54655 a +SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-USERS-SCRIPTS) +cvn H.B /DEST pdfmark end + -30 54655 a 5027 +x FG(Supplied)519 b(Scripts)-30 60997 y +SDict begin H.S end + -30 60997 a -30 +60997 a +SDict begin 18.2 H.A end + -30 60997 a -30 60997 a +SDict begin [ /View [/XYZ H.V] /Dest (4064) cvn H.B /DEST pdfmark end + -30 60997 a 1629 x FU(The)d(easiest)g +(w)-15 b(ay)516 b(to)h(manage)f(users)g(and)g(groups)g(is)g(with)g(the) +g(supplied)g(scripts)g(and)g(pro-)-30 64641 y(grams.)618 +b(Slackw)-15 b(are)617 b(includes)g(the)h(programs)26586 +64641 y +SDict begin H.S end + 26586 64641 a 26586 64641 a +SDict begin 18.2 H.A end + 26586 64641 a 26586 +64641 a +SDict begin [ /View [/XYZ H.V] /Dest (4065) cvn H.B /DEST pdfmark end + 26586 64641 a FP(adduser)p FU(,)32799 64641 y +SDict begin H.S end + +32799 64641 a 32799 64641 a +SDict begin 18.2 H.A end + 32799 64641 a 32799 64641 +a +SDict begin [ /View [/XYZ H.V] /Dest (4066) cvn H.B /DEST pdfmark end + 32799 64641 a FP(userdel)p FU(\(8\),)40818 64641 y +SDict begin H.S end + +40818 64641 a 40818 64641 a +SDict begin 18.2 H.A end + 40818 64641 a 40818 64641 +a +SDict begin [ /View [/XYZ H.V] /Dest (4067) cvn H.B /DEST pdfmark end + 40818 64641 a FP(chfn)p FU(\(1\),)46606 64641 y +SDict begin H.S end + 46606 +64641 a 46606 64641 a +SDict begin 18.2 H.A end + 46606 64641 a 46606 64641 a +SDict begin [ /View [/XYZ H.V] /Dest (4068) cvn H.B /DEST pdfmark end + 46606 +64641 a FP(chsh)p FU(\(1\),)-30 66656 y(and)2784 66656 +y +SDict begin H.S end + 2784 66656 a 2784 66656 a +SDict begin 18.2 H.A end + 2784 66656 a 2784 66656 a +SDict begin [ /View [/XYZ H.V] /Dest (4069) cvn H.B /DEST pdfmark end + +2784 66656 a FP(passwd)p FU(\(1\))575 b(for)i(dealing)e(with)h(users.)g +(The)g(commands)34909 66656 y +SDict begin H.S end + 34909 66656 a 34909 66656 +a +SDict begin 18.2 H.A end + 34909 66656 a 34909 66656 a +SDict begin [ /View [/XYZ H.V] /Dest (4070) cvn H.B /DEST pdfmark end + 34909 66656 a FP(groupadd)p +FU(\(8\),)43630 66656 y +SDict begin H.S end + 43630 66656 a 43630 66656 a +SDict begin 18.2 H.A end + 43630 +66656 a 43630 66656 a +SDict begin [ /View [/XYZ H.V] /Dest (4071) cvn H.B /DEST pdfmark end + 43630 66656 a FP(groupdel)p FU(\(8\),)p +Black 49451 73672 a FR(143)p Black eop end +%%Page: 144 166 +TeXDict begin 144 165 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.144) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 3490 a FU(and)2592 +3490 y +SDict begin H.S end + 2592 3490 a 2592 3490 a +SDict begin 18.2 H.A end + 2592 3490 a 2592 3490 +a +SDict begin [ /View [/XYZ H.V] /Dest (4072) cvn H.B /DEST pdfmark end + 2592 3490 a FP(groupmod)p FU(\(8\))384 b(are)h(for)f(dealing)g(with)g +(groups.)h(W)-62 b(ith)384 b(the)g(e)-23 b(xception)384 +b(of)42043 3490 y +SDict begin H.S end + 42043 3490 a 42043 3490 a +SDict begin 18.2 H.A end + 42043 3490 +a 42043 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (4073) cvn H.B /DEST pdfmark end + 42043 3490 a FP(chfn)p FU(,)45791 3490 +y +SDict begin H.S end + 45791 3490 a 45791 3490 a +SDict begin 18.2 H.A end + 45791 3490 a 45791 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (4074) cvn H.B /DEST pdfmark end + +45791 3490 a FP(chsh)p FU(,)g(and)-30 5505 y +SDict begin H.S end + -30 5505 +a -30 5505 a +SDict begin 18.2 H.A end + -30 5505 a -30 5505 a +SDict begin [ /View [/XYZ H.V] /Dest (4075) cvn H.B /DEST pdfmark end + -30 5505 a FP(passwd)p +FU(,)414 b(these)f(programs)g(are)h(generally)f(only)h(run)f(as)30940 +5505 y +SDict begin H.S end + 30940 5505 a 30940 5505 a +SDict begin 18.2 H.A end + 30940 5505 a 30940 5505 +a +SDict begin [ /View [/XYZ H.V] /Dest (4076) cvn H.B /DEST pdfmark end + 30940 5505 a FP(root)p FU(,)h(and)f(are)h(therefore)g(located)f(in) +-30 7520 y +SDict begin H.S end + -30 7520 a -30 7520 a +SDict begin 18.2 H.A end + -30 7520 a -30 7520 +a +SDict begin [ /View [/XYZ H.V] /Dest (4077) cvn H.B /DEST pdfmark end + -30 7520 a FQ(/usr/sbin)p FU(.)6357 7520 y +SDict begin H.S end + 6357 7520 +a 6357 7520 a +SDict begin 18.2 H.A end + 6357 7520 a 6357 7520 a +SDict begin [ /View [/XYZ H.V] /Dest (4078) cvn H.B /DEST pdfmark end + 6357 7520 a FP(chfn)p +FU(,)10083 7520 y +SDict begin H.S end + 10083 7520 a 10083 7520 a +SDict begin 18.2 H.A end + 10083 7520 +a 10083 7520 a +SDict begin [ /View [/XYZ H.V] /Dest (4079) cvn H.B /DEST pdfmark end + 10083 7520 a FP(chsh)p FU(,)362 b(and)16409 +7520 y +SDict begin H.S end + 16409 7520 a 16409 7520 a +SDict begin 18.2 H.A end + 16409 7520 a 16409 7520 +a +SDict begin [ /View [/XYZ H.V] /Dest (4080) cvn H.B /DEST pdfmark end + 16409 7520 a FP(passwd)f FU(can)i(be)f(run)h(by)f(an)-23 +b(yone,)362 b(and)h(are)f(located)g(in)46378 7520 y +SDict begin H.S end + 46378 +7520 a 46378 7520 a +SDict begin 18.2 H.A end + 46378 7520 a 46378 7520 a +SDict begin [ /View [/XYZ H.V] /Dest (4081) cvn H.B /DEST pdfmark end + 46378 7520 +a FQ(/usr/bin)p FU(.)-30 8630 y +SDict begin H.S end + -30 8630 a -30 8630 a +SDict begin 18.2 H.A end + +-30 8630 a -30 8630 a +SDict begin [ /View [/XYZ H.V] /Dest (4082) cvn H.B /DEST pdfmark end + -30 8630 a 1679 x FU(Users)402 +b(can)h(be)f(added)g(with)g(the)17878 10309 y +SDict begin H.S end + 17878 10309 +a 17878 10309 a +SDict begin 18.2 H.A end + 17878 10309 a 17878 10309 a +SDict begin [ /View [/XYZ H.V] /Dest (4083) cvn H.B /DEST pdfmark end + 17878 10309 +a FP(adduser)f FU(program.)i(W)-124 b(e')-15 b(ll)401 +b(start)h(out)g(by)h(going)e(through)h(the)-30 12324 +y(whole)397 b(procedure,)g(sho)-39 b(wing)397 b(all)g(the)g(questions)f +(that)h(are)g(ask)-15 b(ed)396 b(and)h(a)h(brief)f(description)f(of)-30 +14338 y(what)368 b(e)-39 b(v)-23 b(erything)368 b(means.)h(The)g(def) +-15 b(ault)367 b(answer)i(is)f(in)h(the)f(brack)-15 b(ets,)369 +b(and)f(can)h(be)g(chosen)f(for)-30 16353 y(almost)387 +b(all)g(the)g(questions,)g(unless)f(you)i(really)f(w)-15 +b(ant)386 b(to)h(change)h(something.)-30 18238 y +SDict begin H.S end + -30 +18238 a -30 18238 a +SDict begin 14.56 H.A end + -30 18238 a -30 18238 a +SDict begin [ /View [/XYZ H.V] /Dest (4084) cvn H.B /DEST pdfmark end + -30 18238 +a -30 18238 a +SDict begin H.S end + -30 18238 a -30 18238 a +SDict begin 14.56 H.A end + -30 18238 a -30 +18238 a +SDict begin [ /View [/XYZ H.V] /Dest (4085) cvn H.B /DEST pdfmark end + -30 18238 a 1277 x FJ(#)1309 19515 y +SDict begin H.S end + 1309 19515 +a 1309 19515 a +SDict begin 14.56 H.A end + 1309 19515 a 1309 19515 a +SDict begin [ /View [/XYZ H.V] /Dest (4086) cvn H.B /DEST pdfmark end + 1309 19515 a +FH(adduser)-30 21126 y FP(Login)743 b(name)h(for)f(new)h(user)f([]:)h +(jellyd)-30 21321 y +SDict begin H.S end + -30 21321 a -30 21321 a +SDict begin 18.2 H.A end + -30 21321 +a -30 21321 a +SDict begin [ /View [/XYZ H.V] /Dest (4087) cvn H.B /DEST pdfmark end + -30 21321 a -30 22871 a +SDict begin H.S end + -30 22871 a -30 +22871 a +SDict begin 18.2 H.A end + -30 22871 a -30 22871 a +SDict begin [ /View [/XYZ H.V] /Dest (4089) cvn H.B /DEST pdfmark end + -30 22871 a 1820 x FU(This)416 +b(is)g(the)g(name)g(that)h(the)f(user)g(will)g(use)g(to)g(login.)g(T) +-54 b(raditionally)-101 b(,)416 b(login)g(names)g(are)g(eight)-30 +26705 y(characters)592 b(or)g(fe)-39 b(wer)-62 b(,)593 +b(and)f(all)g(lo)-39 b(wercase)592 b(characters.)h(\(Y)-170 +b(ou)591 b(may)h(use)g(more)g(than)f(eight)-30 28720 +y(characters,)442 b(or)e(use)h(digits,)g(b)-31 b(ut)440 +b(a)-31 b(v)g(oid)441 b(doing)f(so)h(unless)f(you)h(ha)-31 +b(v)-23 b(e)440 b(a)i(f)-15 b(airly)440 b(important)g(rea-)-30 +30735 y(son.\))-30 31787 y +SDict begin H.S end + -30 31787 a -30 31787 a +SDict begin 18.2 H.A end + -30 +31787 a -30 31787 a +SDict begin [ /View [/XYZ H.V] /Dest (4090) cvn H.B /DEST pdfmark end + -30 31787 a 1737 x FU(Y)-170 b(ou)387 +b(can)g(also)g(pro)-23 b(vide)387 b(the)g(login)g(name)g(as)g(an)h(ar) +-28 b(gument)387 b(on)g(the)g(command)f(line:)-30 35410 +y +SDict begin H.S end + -30 35410 a -30 35410 a +SDict begin 14.56 H.A end + -30 35410 a -30 35410 a +SDict begin [ /View [/XYZ H.V] /Dest (4091) cvn H.B /DEST pdfmark end + -30 +35410 a -30 35410 a +SDict begin H.S end + -30 35410 a -30 35410 a +SDict begin 14.56 H.A end + -30 35410 +a -30 35410 a +SDict begin [ /View [/XYZ H.V] /Dest (4092) cvn H.B /DEST pdfmark end + -30 35410 a 1276 x FJ(#)1309 36686 y +SDict begin H.S end + 1309 +36686 a 1309 36686 a +SDict begin 14.56 H.A end + 1309 36686 a 1309 36686 a +SDict begin [ /View [/XYZ H.V] /Dest (4093) cvn H.B /DEST pdfmark end + 1309 36686 +a FH(adduser)743 b(jellyd)-30 38403 y +SDict begin H.S end + -30 38403 a -30 +38403 a +SDict begin 18.2 H.A end + -30 38403 a -30 38403 a +SDict begin [ /View [/XYZ H.V] /Dest (4094) cvn H.B /DEST pdfmark end + -30 38403 a 1847 x FU(In)387 +b(either)h(case,)g(after)f(pro)-23 b(viding)386 b(the)h(login)g(name,)h +(adduser)f(will)g(prompt)f(for)i(the)f(user)g(ID:)-30 +42135 y +SDict begin H.S end + -30 42135 a -30 42135 a +SDict begin 14.56 H.A end + -30 42135 a -30 42135 +a +SDict begin [ /View [/XYZ H.V] /Dest (4095) cvn H.B /DEST pdfmark end + -30 42135 a 1277 x FP(User)743 b(ID)h(\('UID'\))f([)h(defaults)f(to)g +(next)h(available)f(]:)-30 45106 y +SDict begin H.S end + -30 45106 a -30 45106 +a +SDict begin 18.2 H.A end + -30 45106 a -30 45106 a +SDict begin [ /View [/XYZ H.V] /Dest (4096) cvn H.B /DEST pdfmark end + -30 45106 a 1870 x FU(The)377 +b(user)f(ID)h(\(UID\))g(is)f(ho)-39 b(w)377 b(o)-39 b(wnerships)376 +b(are)h(really)g(determined)f(in)g(Linux.)h(Each)f(user)h(has)-30 +48991 y(a)529 b(unique)g(number)-62 b(,)529 b(starting)f(at)h(1000)f +(in)h(Slackw)-15 b(are.)529 b(Y)-170 b(ou)528 b(can)h(pick)g(a)g(UID)g +(for)g(the)g(ne)-39 b(w)-30 51005 y(user)-62 b(,)388 +b(or)f(you)g(can)h(just)f(let)g(adduser)g(assign)f(the)i(user)f(the)g +(ne)-23 b(xt)387 b(free)h(one.)-30 52891 y +SDict begin H.S end + -30 52891 +a -30 52891 a +SDict begin 14.56 H.A end + -30 52891 a -30 52891 a +SDict begin [ /View [/XYZ H.V] /Dest (4097) cvn H.B /DEST pdfmark end + -30 52891 a 1276 +x FP(Initial)743 b(group)g([users]:)-30 54362 y +SDict begin H.S end + -30 54362 +a -30 54362 a +SDict begin 18.2 H.A end + -30 54362 a -30 54362 a +SDict begin [ /View [/XYZ H.V] /Dest (4098) cvn H.B /DEST pdfmark end + -30 54362 a -30 +55911 a +SDict begin H.S end + -30 55911 a -30 55911 a +SDict begin 18.2 H.A end + -30 55911 a -30 55911 +a +SDict begin [ /View [/XYZ H.V] /Dest (4101) cvn H.B /DEST pdfmark end + -30 55911 a 1820 x FU(All)490 b(users)g(are)h(placed)f(into)g(the) +18320 57731 y +SDict begin H.S end + 18320 57731 a 18320 57731 a +SDict begin 18.2 H.A end + 18320 57731 +a 18320 57731 a +SDict begin [ /View [/XYZ H.V] /Dest (4102) cvn H.B /DEST pdfmark end + 18320 57731 a FP(users)g FU(group)g(by)g(def)-15 +b(ault.)490 b(Y)-170 b(ou)490 b(might)f(w)-15 b(ant)490 +b(to)g(place)g(the)-30 59746 y(ne)-39 b(w)505 b(user)f(into)f(a)i(dif) +-39 b(ferent)504 b(group,)g(b)-31 b(ut)504 b(it)g(is)g(not)g +(recommended)g(unless)f(you)h(kno)-39 b(w)504 b(what)-30 +61761 y(you')-77 b(re)387 b(doing.)-30 63646 y +SDict begin H.S end + -30 63646 +a -30 63646 a +SDict begin 14.56 H.A end + -30 63646 a -30 63646 a +SDict begin [ /View [/XYZ H.V] /Dest (4103) cvn H.B /DEST pdfmark end + -30 63646 a 1276 +x FP(Additional)743 b(groups)g(\(comma)g(separated\))g([]:)p +Black -30 73672 a FR(144)p Black eop end +%%Page: 145 167 +TeXDict begin 145 166 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.145) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 24333 -1636 a FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a +-30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4104) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(This)406 +b(question)g(allo)-39 b(ws)407 b(you)f(to)g(place)h(the)g(ne)-39 +b(w)407 b(user)f(into)g(additional)g(groups.)h(It)f(is)h(possible)-30 +5626 y(for)419 b(a)h(user)f(to)g(be)h(in)f(se)-39 b(v)-23 +b(eral)419 b(groups)g(at)g(the)g(same)g(time.)g(This)g(is)g(useful)g +(if)g(you)g(ha)-31 b(v)-23 b(e)419 b(estab-)-30 7640 +y(lished)367 b(groups)g(for)h(things)e(lik)-15 b(e)367 +b(modifying)f(web)i(site)f(\002les,)g(playing)g(g)-8 +b(ames,)368 b(and)f(so)h(on.)f(F)-23 b(or)-30 9655 y(e)g(xample,)425 +b(some)g(sites)f(de\002ne)h(group)21141 9655 y +SDict begin H.S end + 21141 +9655 a 21141 9655 a +SDict begin 18.2 H.A end + 21141 9655 a 21141 9655 a +SDict begin [ /View [/XYZ H.V] /Dest (4105) cvn H.B /DEST pdfmark end + 21141 9655 +a FP(wheel)g FU(as)g(the)g(only)f(group)h(that)g(can)g(use)g(the)46678 +9655 y +SDict begin H.S end + 46678 9655 a 46678 9655 a +SDict begin 18.2 H.A end + 46678 9655 a 46678 9655 +a +SDict begin [ /View [/XYZ H.V] /Dest (4106) cvn H.B /DEST pdfmark end + 46678 9655 a FP(su)g FU(com-)-30 11670 y(mand.)351 +b(Or)-62 b(,)351 b(a)g(def)-15 b(ault)350 b(Slackw)-15 +b(are)350 b(installation)g(uses)g(the)31435 11670 y +SDict begin H.S end + 31435 +11670 a 31435 11670 a +SDict begin 18.2 H.A end + 31435 11670 a 31435 11670 a +SDict begin [ /View [/XYZ H.V] /Dest (4107) cvn H.B /DEST pdfmark end + 31435 +11670 a FP(sys)h FU(group)f(for)h(users)g(authorized)f(to)-30 +13684 y(play)387 b(sounds)g(through)f(the)i(internal)e(sound)h(card.) +-30 15570 y +SDict begin H.S end + -30 15570 a -30 15570 a +SDict begin 14.56 H.A end + -30 15570 a -30 15570 +a +SDict begin [ /View [/XYZ H.V] /Dest (4108) cvn H.B /DEST pdfmark end + -30 15570 a 1276 x FP(Home)743 b(directory)g([/home/jellyd])-30 +18590 y +SDict begin H.S end + -30 18590 a -30 18590 a +SDict begin 18.2 H.A end + -30 18590 a -30 18590 +a +SDict begin [ /View [/XYZ H.V] /Dest (4109) cvn H.B /DEST pdfmark end + -30 18590 a 1820 x FU(Home)346 b(directories)f(def)-15 +b(ault)345 b(to)g(being)h(placed)g(under)29231 20410 +y +SDict begin H.S end + 29231 20410 a 29231 20410 a +SDict begin 18.2 H.A end + 29231 20410 a 29231 20410 +a +SDict begin [ /View [/XYZ H.V] /Dest (4110) cvn H.B /DEST pdfmark end + 29231 20410 a FQ(/home)p FU(.)d(If)k(you)e(run)h(a)g(v)-23 +b(ery)345 b(lar)-28 b(ge)346 b(system,)-30 22425 y(it')-85 +b(s)432 b(possible)g(that)h(you)g(ha)-31 b(v)-23 b(e)432 +b(mo)-23 b(v)g(ed)432 b(the)h(home)g(directories)f(to)h(a)g(dif)-39 +b(ferent)433 b(location)f(\(or)h(to)-30 24440 y(man)-23 +b(y)523 b(locations\).)h(This)f(step)h(allo)-39 b(ws)523 +b(you)h(to)f(specify)h(where)g(the)f(user')-85 b(s)524 +b(home)f(directory)-30 26454 y(will)387 b(be.)-30 28020 +y +SDict begin H.S end + -30 28020 a -30 28020 a +SDict begin 14.56 H.A end + -30 28020 a -30 28020 a +SDict begin [ /View [/XYZ H.V] /Dest (4111) cvn H.B /DEST pdfmark end + -30 +28020 a 1596 x FP(Shell)743 b([)h(/bin/bash)f(])-30 31311 +y +SDict begin H.S end + -30 31311 a -30 31311 a +SDict begin 18.2 H.A end + -30 31311 a -30 31311 a +SDict begin [ /View [/XYZ H.V] /Dest (4112) cvn H.B /DEST pdfmark end + -30 +31311 a -30 31311 a +SDict begin H.S end + -30 31311 a -30 31311 a +SDict begin 18.2 H.A end + -30 31311 +a -30 31311 a +SDict begin [ /View [/XYZ H.V] /Dest (4113) cvn H.B /DEST pdfmark end + -30 31311 a 1869 x FP(bash)502 b FU(is)h(the)g(def)-15 +b(ault)501 b(shell)i(for)f(Slackw)-15 b(are)502 b(Linux,)h(and)g(will)f +(be)h(\002ne)f(for)h(most)f(people.)h(If)-30 35195 y(your)355 +b(ne)-39 b(w)355 b(user)f(comes)h(from)f(a)h(Unix)g(background,)f(the) +-23 b(y)355 b(may)f(be)h(f)-15 b(amiliar)354 b(with)g(a)h(dif)-39 +b(ferent)-30 37210 y(shell.)461 b(Y)-170 b(ou)460 b(can)h(change)g +(their)g(shell)f(no)-39 b(w)-101 b(,)462 b(or)f(the)-23 +b(y)460 b(can)h(change)g(it)g(themselv)-23 b(es)460 b(later)h(using)-30 +39224 y(the)2251 39224 y +SDict begin H.S end + 2251 39224 a 2251 39224 a +SDict begin 18.2 H.A end + 2251 +39224 a 2251 39224 a +SDict begin [ /View [/XYZ H.V] /Dest (4114) cvn H.B /DEST pdfmark end + 2251 39224 a FP(chsh)387 b FU(command.)-30 +40800 y +SDict begin H.S end + -30 40800 a -30 40800 a +SDict begin 14.56 H.A end + -30 40800 a -30 40800 +a +SDict begin [ /View [/XYZ H.V] /Dest (4115) cvn H.B /DEST pdfmark end + -30 40800 a 1586 x FP(Expiry)743 b(date)h(\(YYYY-MM-DD\))e([]:)-30 +44130 y +SDict begin H.S end + -30 44130 a -30 44130 a +SDict begin 18.2 H.A end + -30 44130 a -30 44130 +a +SDict begin [ /View [/XYZ H.V] /Dest (4116) cvn H.B /DEST pdfmark end + -30 44130 a 1820 x FU(Accounts)304 b(can)g(be)g(set)g(up)g(to)g(e)-23 +b(xpire)304 b(on)g(a)h(speci\002ed)e(date.)i(By)f(def)-15 +b(ault,)304 b(there)g(is)g(no)g(e)-23 b(xpiration)-30 +47965 y(date.)599 b(Y)-170 b(ou)598 b(can)h(change)f(that,)h(if)g(you') +-77 b(d)598 b(lik)-15 b(e.)598 b(This)g(option)g(might)g(be)g(useful)h +(for)f(people)-30 49979 y(running)e(an)g(ISP)f(who)h(might)f(w)-15 +b(ant)596 b(to)f(mak)-15 b(e)596 b(an)g(account)g(e)-23 +b(xpire)596 b(upon)f(a)i(certain)f(date,)-30 51994 y(unless)387 +b(the)-23 b(y)387 b(recei)-39 b(v)-23 b(e)387 b(the)g(ne)-23 +b(xt)387 b(year')-85 b(s)387 b(payment.)-30 53879 y +SDict begin H.S end + -30 +53879 a -30 53879 a +SDict begin 14.56 H.A end + -30 53879 a -30 53879 a +SDict begin [ /View [/XYZ H.V] /Dest (4117) cvn H.B /DEST pdfmark end + -30 53879 +a 1277 x FP(New)744 b(account)f(will)g(be)h(created)f(as)g(follows:)-30 +56767 y(---------------------------------------)-30 58379 +y(Login)g(name:)6695 b(jellyd)-30 59991 y(UID:)11902 +b([)743 b(Next)h(available)f(])-30 61603 y(Initial)g(group:)4463 +b(users)-30 63214 y(Additional)743 b(groups:)1487 b([)743 +b(None)h(])-30 64826 y(Home)f(directory:)3719 b(/home/jellyd)-30 +66438 y(Shell:)10414 b(/bin/bash)-30 68049 y(Expiry)743 +b(date:)5951 b([)743 b(Never)h(])p Black 49451 73792 +a FR(145)p Black eop end +%%Page: 146 168 +TeXDict begin 146 167 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.146) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a +-30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4118) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(This)488 +b(is)g(it...)h(if)f(you)g(w)-15 b(ant)488 b(to)g(bail)g(out,)g(hit) +24470 3611 y +SDict begin H.S end + 24470 3611 a 24470 3611 a +SDict begin 18.2 H.A end + 24470 3611 a 24470 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4119) cvn H.B /DEST pdfmark end + 24470 3611 a 24470 3611 a +SDict begin H.S end + 24470 3611 a 24470 3611 +a +SDict begin 18.2 H.A end + 24470 3611 a 24470 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4120) cvn H.B /DEST pdfmark end + 24470 3611 a FX(Contr)-28 +b(ol)p FU(+)30482 3611 y +SDict begin H.S end + 30482 3611 a 30482 3611 a +SDict begin 18.2 H.A end + 30482 +3611 a 30482 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4121) cvn H.B /DEST pdfmark end + 30482 3611 a FX(C)p FU(.)488 b(Otherwise,)h(press) +43395 3611 y +SDict begin H.S end + 43395 3611 a 43395 3611 a +SDict begin 18.2 H.A end + 43395 3611 a 43395 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4122) cvn H.B /DEST pdfmark end + 43395 3611 a Fv(ENTER)e FU(to)h(go)-30 5626 y(ahead)388 +b(and)f(mak)-15 b(e)386 b(the)i(account.)-30 6416 y +SDict begin H.S end + -30 +6416 a -30 6416 a +SDict begin 18.2 H.A end + -30 6416 a -30 6416 a +SDict begin [ /View [/XYZ H.V] /Dest (4123) cvn H.B /DEST pdfmark end + -30 6416 a 1999 +x FU(Y)-170 b(ou)608 b(no)-39 b(w)608 b(see)h(all)f(the)g(information)g +(that)g(you')-77 b(v)-23 b(e)607 b(entered)i(about)f(the)g(ne)-39 +b(w)609 b(account)f(and)-30 10430 y(are)546 b(gi)-39 +b(v)-23 b(en)545 b(the)g(opportunity)g(to)g(abort)g(the)h(account)f +(creation.)h(If)f(you)h(entered)f(something)-30 12445 +y(incorrectly)-101 b(,)346 b(you)f(should)g(hit)16447 +12445 y +SDict begin H.S end + 16447 12445 a 16447 12445 a +SDict begin 18.2 H.A end + 16447 12445 a 16447 +12445 a +SDict begin [ /View [/XYZ H.V] /Dest (4124) cvn H.B /DEST pdfmark end + 16447 12445 a 16447 12445 a +SDict begin H.S end + 16447 12445 a 16447 +12445 a +SDict begin 18.2 H.A end + 16447 12445 a 16447 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (4125) cvn H.B /DEST pdfmark end + 16447 12445 a FX(Contr)-28 +b(ol)p FU(+)22459 12445 y +SDict begin H.S end + 22459 12445 a 22459 12445 a +SDict begin 18.2 H.A end + +22459 12445 a 22459 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (4126) cvn H.B /DEST pdfmark end + 22459 12445 a FX(C)345 b +FU(and)g(start)g(o)-23 b(v)g(er)-85 b(.)345 b(Otherwise,)h(you)f(can)h +(hit)47127 12445 y +SDict begin H.S end + 47127 12445 a 47127 12445 a +SDict begin 18.2 H.A end + 47127 +12445 a 47127 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (4127) cvn H.B /DEST pdfmark end + 47127 12445 a Fv(enter)-30 14459 +y FU(and)387 b(the)h(account)f(will)f(be)i(made.)-30 +16025 y +SDict begin H.S end + -30 16025 a -30 16025 a +SDict begin 14.56 H.A end + -30 16025 a -30 16025 +a +SDict begin [ /View [/XYZ H.V] /Dest (4128) cvn H.B /DEST pdfmark end + -30 16025 a 1596 x FP(Creating)743 b(new)h(account...)-30 +20844 y(Changing)f(the)h(user)f(information)f(for)i(jellyd)-30 +22456 y(Enter)f(the)h(new)f(value,)h(or)f(press)g(return)h(for)f(the)h +(default)5921 24068 y(Full)g(Name)f([]:)g(Jeremy)5921 +25679 y(Room)h(Number)f([]:)g(Smith)g(130)5921 27291 +y(Work)h(Phone)f([]:)5921 28903 y(Home)h(Phone)f([]:)5921 +30515 y(Other)g([]:)-30 32209 y +SDict begin H.S end + -30 32209 a -30 32209 +a +SDict begin 18.2 H.A end + -30 32209 a -30 32209 a +SDict begin [ /View [/XYZ H.V] /Dest (4129) cvn H.B /DEST pdfmark end + -30 32209 a 1870 x FU(All)456 +b(of)g(this)f(information)g(is)h(optional.)g(Y)-170 b(ou)455 +b(don')-28 b(t)456 b(ha)-31 b(v)-23 b(e)456 b(to)g(enter)g(an)-23 +b(y)456 b(of)g(this)f(if)h(you)g(don')-28 b(t)-30 36094 +y(w)-15 b(ant)376 b(to,)i(and)e(the)h(user)g(can)g(change)g(it)g(at)g +(an)-23 b(y)376 b(time)h(using)32647 36094 y +SDict begin H.S end + 32647 36094 +a 32647 36094 a +SDict begin 18.2 H.A end + 32647 36094 a 32647 36094 a +SDict begin [ /View [/XYZ H.V] /Dest (4130) cvn H.B /DEST pdfmark end + 32647 36094 +a FP(chfn)p FU(.)g(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)378 +b(you)e(might)g(\002nd)-30 38108 y(it)383 b(helpful)f(to)g(enter)h(at)g +(least)f(the)h(full)f(name)h(and)g(a)g(phone)f(number)-62 +b(,)383 b(in)f(case)h(you)g(need)g(to)f(get)-30 40123 +y(in)387 b(touch)g(with)g(the)g(person)g(later)-85 b(.)-30 +42008 y +SDict begin H.S end + -30 42008 a -30 42008 a +SDict begin 14.56 H.A end + -30 42008 a -30 42008 +a +SDict begin [ /View [/XYZ H.V] /Dest (4131) cvn H.B /DEST pdfmark end + -30 42008 a 1277 x FP(Changing)743 b(password)g(for)g(jellyd)-30 +44896 y(Enter)g(the)h(new)f(password)g(\(minimum)g(of)h(5,)f(maximum)g +(of)h(127)g(characters\))-30 46508 y(Please)f(use)h(a)g(combination)e +(of)i(upper)f(and)g(lower)h(case)f(letters)g(and)h(numbers.)-30 +48120 y(New)g(password:)-30 49731 y(Re-enter)f(new)h(password:)-30 +51343 y(Password)f(changed.)-30 54567 y(Account)g(setup)g(complete.)-30 +54762 y +SDict begin H.S end + -30 54762 a -30 54762 a +SDict begin 18.2 H.A end + -30 54762 a -30 54762 +a +SDict begin [ /View [/XYZ H.V] /Dest (4132) cvn H.B /DEST pdfmark end + -30 54762 a -30 56311 a +SDict begin H.S end + -30 56311 a -30 56311 a +SDict begin 18.2 H.A end + -30 +56311 a -30 56311 a +SDict begin [ /View [/XYZ H.V] /Dest (4135) cvn H.B /DEST pdfmark end + -30 56311 a 1820 x FU(Y)-170 b(ou')-15 +b(ll)482 b(ha)-31 b(v)-23 b(e)484 b(to)f(enter)h(a)f(passw)-15 +b(ord)483 b(for)h(the)f(ne)-39 b(w)484 b(user)-85 b(.)484 +b(Generally)-101 b(,)484 b(if)f(the)h(ne)-39 b(w)483 +b(user)h(is)f(not)-30 60146 y(ph)-8 b(ysically)456 b(present)f(at)h +(this)g(point,)g(you')-15 b(ll)455 b(just)g(pick)h(some)g(def)-15 +b(ault)455 b(passw)-15 b(ord)455 b(and)h(tell)g(the)-30 +62160 y(user)387 b(to)h(change)f(it)g(to)g(something)f(more)h(secure.) +-30 62496 y +SDict begin H.S end + -30 62496 a -30 62496 a +SDict begin 18.2 H.A end + -30 62496 a -30 62496 +a +SDict begin [ /View [/XYZ H.V] /Dest (4136) cvn H.B /DEST pdfmark end + -30 62496 a -30 62496 a +SDict begin H.S end + -30 62496 a -30 62496 a +SDict begin 16.9 H.A end + -30 +62496 a -30 62496 a +SDict begin [ /View [/XYZ H.V] /Dest (4139) cvn H.B /DEST pdfmark end + -30 62496 a -30 64821 a +SDict begin H.S end + -30 64821 +a -30 64821 a +SDict begin 16.9 H.A end + -30 64821 a -30 64821 a +SDict begin [ /View [/XYZ H.V] /Dest (4140) cvn H.B /DEST pdfmark end + -30 64821 a 3070 +66356 a Fu(Note:)7325 66356 y +SDict begin H.S end + 7325 66356 a 7325 66356 +a +SDict begin 16.9 H.A end + 7325 66356 a 7325 66356 a +SDict begin [ /View [/XYZ H.V] /Dest (4141) cvn H.B /DEST pdfmark end + 7325 66356 a Ff(Choosing)579 +b(a)g(P)-58 b(ass)-43 b(w)-14 b(ord)139 b Ft(:)578 b(Ha)-29 +b(ving)579 b(a)g(secure)f(pass)-43 b(w)-14 b(ord)578 +b(is)h(the)g(\002rst)f(line)i(of)3070 68227 y(def)-43 +b(ense)446 b(against)g(getting)h(cr)-14 b(ac)-29 b(k)g(ed.)446 +b(Y)-201 b(ou)445 b(do)i(not)f(w)-22 b(ant)447 b(to)f(ha)-29 +b(v)-36 b(e)447 b(an)f(easily)g(guessed)p Black -30 73792 +a FR(146)p Black eop end +%%Page: 147 169 +TeXDict begin 147 168 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.147) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (4169) cvn H.B /DEST pdfmark end + -30 -2687 a 24333 -1636 a FR(Chapter)387 +b(12)g(Essential)f(System)h(Administr)-23 b(ation)p Black +3070 3611 a Ft(pass)-43 b(w)-14 b(ord,)452 b(because)h(that)g(mak)-29 +b(es)452 b(it)i(easier)f(f)-43 b(or)454 b(someone)f(to)g(break)g(into)h +(y)-29 b(our)453 b(sys-)3070 5482 y(tem.)487 b(Ideally)-144 +b(,)488 b(a)f(secure)f(pass)-43 b(w)-14 b(ord)486 b(w)-14 +b(ould)488 b(be)f(a)g(r)-14 b(andom)487 b(str)22 b(ing)487 +b(of)h(char)-14 b(acters)-22 b(,)486 b(in-)3070 7353 +y(cluding)359 b(upper)g(and)f(lo)-22 b(w)-14 b(ercase)359 +b(letters)-22 b(,)359 b(n)-14 b(umbers)-22 b(,)358 b(and)g(r)-14 +b(andom)359 b(char)-14 b(acters)-22 b(.)357 b(\(A)i(tab)3070 +9223 y(char)-14 b(acter)522 b(might)h(not)g(be)g(a)f(wise)h(choice)-22 +b(,)523 b(depending)h(on)f(what)g(kinds)f(of)h(comput-)3070 +11094 y(ers)561 b(y)-29 b(ou'll)563 b(be)f(logging)h(in)f(from.\))g +(There)h(are)f(man)-22 b(y)561 b(softw)-22 b(are)562 +b(pac)-29 b(kages)561 b(that)h(can)3070 12965 y(gener)-14 +b(ate)400 b(r)-14 b(andom)400 b(pass)-43 b(w)-14 b(ords)399 +b(f)-43 b(or)400 b(y)-29 b(ou;)400 b(search)g(the)g(Inter)36 +b(net)401 b(f)-43 b(or)400 b(these)g(utilities)-22 b(.)-30 +14060 y +SDict begin H.S end + -30 14060 a -30 14060 a +SDict begin 16.9 H.A end + -30 14060 a -30 14060 +a +SDict begin [ /View [/XYZ H.V] /Dest (4142) cvn H.B /DEST pdfmark end + -30 14060 a 3070 15611 a Ft(In)427 b(gener)-14 b(al,)429 +b(just)e(use)h(common)f(sense:)g(don't)h(pic)-29 b(k)427 +b(a)h(pass)-43 b(w)-14 b(ord)427 b(that)g(is)h(someone')-72 +b(s)3070 17481 y(bir)58 b(thda)-43 b(y)-144 b(,)341 b(a)g(common)g(phr) +-14 b(ase)-22 b(,)341 b(something)h(f)-43 b(ound)341 +b(on)h(y)-29 b(our)341 b(desk,)g(or)g(an)-22 b(ything)342 +b(that)g(is)3070 19352 y(easily)425 b(associated)g(with)g(y)-29 +b(ou.)425 b(A)g(pass)-43 b(w)-14 b(ord)424 b(lik)-29 +b(e)31041 19352 y +SDict begin H.S end + 31041 19352 a 31041 19352 a +SDict begin 16.9 H.A end + 31041 19352 +a 31041 19352 a +SDict begin [ /View [/XYZ H.V] /Dest (4143) cvn H.B /DEST pdfmark end + 31041 19352 a Ft(\223secure1\224)425 +b(or)h(an)-22 b(y)425 b(other)h(pass)-43 b(w)-14 b(ord)3070 +21223 y(y)-29 b(ou)400 b(see)f(in)i(pr)22 b(int)400 b(or)h(online)g(is) +f(also)g(bad.)358 24012 y +SDict begin H.S end + 358 24012 a 358 24012 a +SDict begin 18.2 H.A end + 358 +24012 a 358 24012 a +SDict begin [ /View [/XYZ H.V] /Dest (4144) cvn H.B /DEST pdfmark end + 358 24012 a -30 25562 a +SDict begin H.S end + -30 25562 +a -30 25562 a +SDict begin 18.2 H.A end + -30 25562 a -30 25562 a +SDict begin [ /View [/XYZ H.V] /Dest (4147) cvn H.B /DEST pdfmark end + -30 25562 a 2015 +x FU(Remo)-23 b(ving)369 b(users)h(is)f(not)h(dif)-39 +b(\002cult)370 b(at)g(all.)g(Just)f(run)28337 27577 y +SDict begin H.S end + +28337 27577 a 28337 27577 a +SDict begin 18.2 H.A end + 28337 27577 a 28337 27577 +a +SDict begin [ /View [/XYZ H.V] /Dest (4148) cvn H.B /DEST pdfmark end + 28337 27577 a FP(userdel)h FU(with)f(the)h(name)g(of)g(the)g(account) +-30 29591 y(to)358 b(remo)-23 b(v)g(e.)358 b(Y)-170 b(ou)358 +b(should)f(v)-23 b(erify)358 b(that)g(the)g(user)g(is)g(not)g(logged)g +(in,)g(and)h(that)f(no)g(processes)g(are)-30 31606 y(running)499 +b(as)g(that)g(user)-85 b(.)500 b(Also,)f(remember)g(that)g(once)g(you') +-77 b(v)-23 b(e)499 b(deleted)g(the)g(user)-62 b(,)500 +b(all)f(of)g(that)-30 33621 y(user')-85 b(s)387 b(passw)-15 +b(ord)386 b(information)h(is)g(gone)g(permanently)-101 +b(.)-30 35506 y +SDict begin H.S end + -30 35506 a -30 35506 a +SDict begin 14.56 H.A end + -30 35506 a -30 +35506 a +SDict begin [ /View [/XYZ H.V] /Dest (4149) cvn H.B /DEST pdfmark end + -30 35506 a -30 35506 a +SDict begin H.S end + -30 35506 a -30 35506 +a +SDict begin 14.56 H.A end + -30 35506 a -30 35506 a +SDict begin [ /View [/XYZ H.V] /Dest (4150) cvn H.B /DEST pdfmark end + -30 35506 a 1276 x FJ(#)1309 +36782 y +SDict begin H.S end + 1309 36782 a 1309 36782 a +SDict begin 14.56 H.A end + 1309 36782 a 1309 36782 +a +SDict begin [ /View [/XYZ H.V] /Dest (4151) cvn H.B /DEST pdfmark end + 1309 36782 a FH(userdel)743 b(jellyd)-30 38500 y +SDict begin H.S end + -30 +38500 a -30 38500 a +SDict begin 18.2 H.A end + -30 38500 a -30 38500 a +SDict begin [ /View [/XYZ H.V] /Dest (4152) cvn H.B /DEST pdfmark end + -30 38500 +a 1847 x FU(This)580 b(command)g(remo)-23 b(v)g(es)579 +b(that)h(anno)-15 b(ying)25021 40347 y +SDict begin H.S end + 25021 40347 a +25021 40347 a +SDict begin 18.2 H.A end + 25021 40347 a 25021 40347 a +SDict begin [ /View [/XYZ H.V] /Dest (4153) cvn H.B /DEST pdfmark end + 25021 40347 +a FP(jellyd)580 b FU(user)g(from)g(your)g(system.)g(Good)g(rid-)-30 +42361 y(dance!)366 b(:\))g(The)g(user)g(is)g(remo)-23 +b(v)g(ed)365 b(from)h(the)24284 42361 y +SDict begin H.S end + 24284 42361 a +24284 42361 a +SDict begin 18.2 H.A end + 24284 42361 a 24284 42361 a +SDict begin [ /View [/XYZ H.V] /Dest (4154) cvn H.B /DEST pdfmark end + 24284 42361 +a FQ(/etc/passwd)p FU(,)31928 42361 y +SDict begin H.S end + 31928 42361 a 31928 +42361 a +SDict begin 18.2 H.A end + 31928 42361 a 31928 42361 a +SDict begin [ /View [/XYZ H.V] /Dest (4155) cvn H.B /DEST pdfmark end + 31928 42361 a FQ(/etc/shadow)p +FU(,)359 b(and)42175 42361 y +SDict begin H.S end + 42175 42361 a 42175 42361 +a +SDict begin 18.2 H.A end + 42175 42361 a 42175 42361 a +SDict begin [ /View [/XYZ H.V] /Dest (4156) cvn H.B /DEST pdfmark end + 42175 42361 a FQ(/etc/group)h +FU(\002les,)-30 44376 y(b)-31 b(ut)387 b(doesn')-28 b(t)387 +b(remo)-23 b(v)g(e)387 b(the)g(user')-85 b(s)387 b(home)g(directory) +-101 b(.)-30 45486 y +SDict begin H.S end + -30 45486 a -30 45486 a +SDict begin 18.2 H.A end + -30 45486 +a -30 45486 a +SDict begin [ /View [/XYZ H.V] /Dest (4157) cvn H.B /DEST pdfmark end + -30 45486 a 1680 x FU(If)487 b(you')-77 +b(d)485 b(w)-15 b(anted)486 b(to)g(remo)-23 b(v)g(e)486 +b(the)g(home)g(directory)g(as)g(well,)h(you)f(w)-15 b(ould)485 +b(instead)h(use)h(this)-30 49180 y(command:)-30 50745 +y +SDict begin H.S end + -30 50745 a -30 50745 a +SDict begin 14.56 H.A end + -30 50745 a -30 50745 a +SDict begin [ /View [/XYZ H.V] /Dest (4158) cvn H.B /DEST pdfmark end + -30 +50745 a -30 50745 a +SDict begin H.S end + -30 50745 a -30 50745 a +SDict begin 14.56 H.A end + -30 50745 +a -30 50745 a +SDict begin [ /View [/XYZ H.V] /Dest (4159) cvn H.B /DEST pdfmark end + -30 50745 a 1597 x FJ(#)1309 52342 y +SDict begin H.S end + 1309 +52342 a 1309 52342 a +SDict begin 14.56 H.A end + 1309 52342 a 1309 52342 a +SDict begin [ /View [/XYZ H.V] /Dest (4160) cvn H.B /DEST pdfmark end + 1309 52342 +a FH(userdel)743 b(-r)h(jellyd)-30 54059 y +SDict begin H.S end + -30 54059 +a -30 54059 a +SDict begin 18.2 H.A end + -30 54059 a -30 54059 a +SDict begin [ /View [/XYZ H.V] /Dest (4161) cvn H.B /DEST pdfmark end + -30 54059 a 1847 +x FU(T)-108 b(emporarily)412 b(disabling)g(an)g(account)h(will)f(be)h +(co)-23 b(v)g(ered)413 b(in)g(the)f(ne)-23 b(xt)413 b(section)f(on)h +(passw)-15 b(ords,)-30 57921 y(since)541 b(a)g(temporary)g(change)g(in) +-62 b(v)-31 b(olv)-23 b(es)540 b(changing)g(the)h(user')-85 +b(s)541 b(passw)-15 b(ord.)540 b(Changing)g(other)-30 +59935 y(account)387 b(information)f(is)i(co)-23 b(v)g(ered)386 +b(in)p 0 TeXcolorgray 21143 59935 a +SDict begin H.S end + 21143 59935 a FU(Section)g(12.1.3) +30053 59935 y +SDict begin 18.2 H.L end + 30053 59935 a 30053 59935 a +SDict begin [ /Subtype /Link /Dest (ESSENTIAL-SYSADMIN-USERS-CHANGING) +cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 30053 59935 +a Black 1 w FU(.)-30 60726 y +SDict begin H.S end + -30 60726 a -30 60726 a +SDict begin 18.2 H.A end + +-30 60726 a -30 60726 a +SDict begin [ /View [/XYZ H.V] /Dest (4163) cvn H.B /DEST pdfmark end + -30 60726 a 1999 x FU(The)543 +b(programs)f(to)h(add)g(and)g(remo)-23 b(v)g(e)542 b(groups)g(are)h(v) +-23 b(ery)543 b(simple.)37307 62725 y +SDict begin H.S end + 37307 62725 a 37307 +62725 a +SDict begin 18.2 H.A end + 37307 62725 a 37307 62725 a +SDict begin [ /View [/XYZ H.V] /Dest (4164) cvn H.B /DEST pdfmark end + 37307 62725 a FP(groupadd)f +FU(will)h(just)f(add)-30 64740 y(another)579 b(entry)f(to)g(the)13217 +64740 y +SDict begin H.S end + 13217 64740 a 13217 64740 a +SDict begin 18.2 H.A end + 13217 64740 a 13217 +64740 a +SDict begin [ /View [/XYZ H.V] /Dest (4165) cvn H.B /DEST pdfmark end + 13217 64740 a FQ(/etc/group)572 b FU(\002le)579 +b(with)f(a)h(unique)f(group)g(ID,)h(while)42835 64740 +y +SDict begin H.S end + 42835 64740 a 42835 64740 a +SDict begin 18.2 H.A end + 42835 64740 a 42835 64740 +a +SDict begin [ /View [/XYZ H.V] /Dest (4166) cvn H.B /DEST pdfmark end + 42835 64740 a FP(groupdel)e FU(will)-30 66754 y(remo)-23 +b(v)g(e)334 b(the)g(speci\002ed)g(group.)h(It)f(is)g(up)h(to)f(you)g +(to)g(edit)30248 66754 y +SDict begin H.S end + 30248 66754 a 30248 66754 a +SDict begin 18.2 H.A end + +30248 66754 a 30248 66754 a +SDict begin [ /View [/XYZ H.V] /Dest (4167) cvn H.B /DEST pdfmark end + 30248 66754 a FQ(/etc/group)329 +b FU(to)334 b(add)g(users)h(to)f(a)g(speci\002c)p Black +49394 73792 a FR(147)p Black eop end +%%Page: 148 170 +TeXDict begin 148 169 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.148) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 3611 a FU(group.)388 +b(F)-23 b(or)386 b(e)-23 b(xample,)387 b(to)h(add)f(a)g(group)g(called) +26264 3611 y +SDict begin H.S end + 26264 3611 a 26264 3611 a +SDict begin 18.2 H.A end + 26264 3611 a 26264 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4168) cvn H.B /DEST pdfmark end + 26264 3611 a FP(cvs)p FU(:)-30 6773 y FJ(#)1309 +6773 y +SDict begin H.S end + 1309 6773 a 1309 6773 a +SDict begin 14.56 H.A end + 1309 6773 a 1309 6773 +a +SDict begin [ /View [/XYZ H.V] /Dest (4171) cvn H.B /DEST pdfmark end + 1309 6773 a FH(groupadd)743 b(cvs)-30 8490 y +SDict begin H.S end + -30 8490 +a -30 8490 a +SDict begin 18.2 H.A end + -30 8490 a -30 8490 a +SDict begin [ /View [/XYZ H.V] /Dest (4172) cvn H.B /DEST pdfmark end + -30 8490 a 1847 x +FU(And)387 b(to)g(remo)-23 b(v)g(e)387 b(it:)-30 11902 +y +SDict begin H.S end + -30 11902 a -30 11902 a +SDict begin 14.56 H.A end + -30 11902 a -30 11902 a +SDict begin [ /View [/XYZ H.V] /Dest (4173) cvn H.B /DEST pdfmark end + -30 +11902 a -30 11902 a +SDict begin H.S end + -30 11902 a -30 11902 a +SDict begin 14.56 H.A end + -30 11902 +a -30 11902 a +SDict begin [ /View [/XYZ H.V] /Dest (4174) cvn H.B /DEST pdfmark end + -30 11902 a 1596 x FJ(#)1309 13498 y +SDict begin H.S end + 1309 +13498 a 1309 13498 a +SDict begin 14.56 H.A end + 1309 13498 a 1309 13498 a +SDict begin [ /View [/XYZ H.V] /Dest (4175) cvn H.B /DEST pdfmark end + 1309 13498 +a FH(groupdel)743 b(cvs)-30 15216 y +SDict begin H.S end + -30 15216 a -30 15216 +a +SDict begin 18.2 H.A end + -30 15216 a -30 15216 a +SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-USERS-PASSWDS) +cvn H.B /DEST pdfmark end + -30 15216 a 5349 x FG(Changing)518 +b(P)-56 b(ass)-28 b(w)-37 b(or)g(ds)-30 20979 y +SDict begin H.S end + -30 20979 +a -30 20979 a +SDict begin 18.2 H.A end + -30 20979 a -30 20979 a +SDict begin [ /View [/XYZ H.V] /Dest (4178) cvn H.B /DEST pdfmark end + -30 20979 a -30 +21909 a +SDict begin H.S end + -30 21909 a -30 21909 a +SDict begin 18.2 H.A end + -30 21909 a -30 21909 +a +SDict begin [ /View [/XYZ H.V] /Dest (4181) cvn H.B /DEST pdfmark end + -30 21909 a 1601 x FU(The)2776 23510 y +SDict begin H.S end + 2776 23510 a +2776 23510 a +SDict begin 18.2 H.A end + 2776 23510 a 2776 23510 a +SDict begin [ /View [/XYZ H.V] /Dest (4182) cvn H.B /DEST pdfmark end + 2776 23510 a FP(passwd)395 +b FU(program)g(changes)h(passw)-15 b(ords)394 b(by)i(modifying)f(the) +36594 23510 y +SDict begin H.S end + 36594 23510 a 36594 23510 a +SDict begin 18.2 H.A end + 36594 23510 +a 36594 23510 a +SDict begin [ /View [/XYZ H.V] /Dest (4183) cvn H.B /DEST pdfmark end + 36594 23510 a FQ(/etc/shadow)389 b FU(\002le.)396 +b(This)f(\002le)-30 25524 y(holds)507 b(all)g(the)g(passw)-15 +b(ords)506 b(for)i(the)f(system)f(in)h(an)h(encrypted)f(format.)g(In)h +(order)f(to)g(change)-30 27539 y(your)387 b(o)-39 b(wn)388 +b(passw)-15 b(ord,)386 b(you)h(w)-15 b(ould)387 b(type:)-30 +29424 y +SDict begin H.S end + -30 29424 a -30 29424 a +SDict begin 14.56 H.A end + -30 29424 a -30 29424 +a +SDict begin [ /View [/XYZ H.V] /Dest (4184) cvn H.B /DEST pdfmark end + -30 29424 a -30 29424 a +SDict begin H.S end + -30 29424 a -30 29424 a +SDict begin 14.56 H.A end + -30 +29424 a -30 29424 a +SDict begin [ /View [/XYZ H.V] /Dest (4185) cvn H.B /DEST pdfmark end + -30 29424 a 1277 x FJ(\045)1309 30701 +y +SDict begin H.S end + 1309 30701 a 1309 30701 a +SDict begin 14.56 H.A end + 1309 30701 a 1309 30701 a +SDict begin [ /View [/XYZ H.V] /Dest (4186) cvn H.B /DEST pdfmark end + +1309 30701 a FH(passwd)-30 32312 y FP(Changing)743 b(password)g(for)g +(chris)-30 33924 y(Old)h(password:)-30 35536 y(Enter)f(the)h(new)f +(password)g(\(minumum)g(of)h(5,)f(maximum)g(of)h(127)g(characters\))-30 +37148 y(Please)f(use)h(a)g(combination)e(of)i(upper)f(and)g(lower)h +(case)f(letters)g(and)h(numbers.)-30 38759 y(New)g(password:)-30 +40504 y +SDict begin H.S end + -30 40504 a -30 40504 a +SDict begin 18.2 H.A end + -30 40504 a -30 40504 +a +SDict begin [ /View [/XYZ H.V] /Dest (4187) cvn H.B /DEST pdfmark end + -30 40504 a 1820 x FU(As)353 b(you)f(can)g(see,)i(you)e(are)h +(prompted)e(to)i(enter)f(your)h(old)f(passw)-15 b(ord.)352 +b(It)g(w)-15 b(on')-28 b(t)352 b(appear)h(on)f(the)-30 +44338 y(screen)387 b(as)h(you)f(type)g(it,)g(just)g(lik)-15 +b(e)386 b(when)h(you)g(log)g(in.)g(Then,)h(you)f(are)g(prompted)g(to)g +(enter)g(the)-30 46353 y(ne)-39 b(w)463 b(passw)-15 b(ord.)9664 +46353 y +SDict begin H.S end + 9664 46353 a 9664 46353 a +SDict begin 18.2 H.A end + 9664 46353 a 9664 46353 +a +SDict begin [ /View [/XYZ H.V] /Dest (4188) cvn H.B /DEST pdfmark end + 9664 46353 a FP(passwd)462 b FU(performs)g(a)h(lot)f(of)h(checks)f +(on)h(your)f(ne)-39 b(w)463 b(passw)-15 b(ord,)462 b(and)g(it)g(will) +-30 48368 y(complain)373 b(if)g(your)h(ne)-39 b(w)374 +b(passw)-15 b(ord)372 b(doesn')-28 b(t)373 b(pass)h(its)f(checks.)h(Y) +-170 b(ou)373 b(can)h(ignore)f(its)g(w)-15 b(arnings)-30 +50382 y(if)517 b(you)g(w)-15 b(ant.)517 b(Y)-170 b(ou)516 +b(will)h(be)g(prompted)f(to)h(enter)g(your)g(ne)-39 b(w)517 +b(passw)-15 b(ord)516 b(a)h(second)g(time)g(for)-30 52397 +y(con\002rmation.)-30 53187 y +SDict begin H.S end + -30 53187 a -30 53187 a +SDict begin 18.2 H.A end + +-30 53187 a -30 53187 a +SDict begin [ /View [/XYZ H.V] /Dest (4189) cvn H.B /DEST pdfmark end + -30 53187 a 2000 x FU(If)388 +b(you)f(are)6381 55187 y +SDict begin H.S end + 6381 55187 a 6381 55187 a +SDict begin 18.2 H.A end + 6381 +55187 a 6381 55187 a +SDict begin [ /View [/XYZ H.V] /Dest (4190) cvn H.B /DEST pdfmark end + 6381 55187 a FP(root)p FU(,)h(you)f(can)g(also)g +(change)h(another)f(user')-85 b(s)387 b(passw)-15 b(ord:)-30 +57072 y +SDict begin H.S end + -30 57072 a -30 57072 a +SDict begin 14.56 H.A end + -30 57072 a -30 57072 +a +SDict begin [ /View [/XYZ H.V] /Dest (4191) cvn H.B /DEST pdfmark end + -30 57072 a -30 57072 a +SDict begin H.S end + -30 57072 a -30 57072 a +SDict begin 14.56 H.A end + -30 +57072 a -30 57072 a +SDict begin [ /View [/XYZ H.V] /Dest (4192) cvn H.B /DEST pdfmark end + -30 57072 a 1276 x FJ(#)1309 58348 +y +SDict begin H.S end + 1309 58348 a 1309 58348 a +SDict begin 14.56 H.A end + 1309 58348 a 1309 58348 a +SDict begin [ /View [/XYZ H.V] /Dest (4193) cvn H.B /DEST pdfmark end + +1309 58348 a FH(passwd)743 b(ted)-30 60066 y +SDict begin H.S end + -30 60066 +a -30 60066 a +SDict begin 18.2 H.A end + -30 60066 a -30 60066 a +SDict begin [ /View [/XYZ H.V] /Dest (4194) cvn H.B /DEST pdfmark end + -30 60066 a 1846 +x FU(Y)-170 b(ou)328 b(will)g(then)g(ha)-31 b(v)-23 b(e)328 +b(to)h(go)f(through)g(the)g(same)h(procedure)f(as)h(abo)-23 +b(v)g(e,)328 b(e)-23 b(xcept)328 b(that)g(you)h(w)-15 +b(on')-28 b(t)-30 63927 y(ha)d(v)-23 b(e)387 b(to)g(enter)h(the)f +(user')-85 b(s)387 b(old)g(passw)-15 b(ord.)387 b(\(One)g(of)g(the)g +(man)-23 b(y)387 b(bene\002ts)g(of)g(being)45543 63927 +y +SDict begin H.S end + 45543 63927 a 45543 63927 a +SDict begin 18.2 H.A end + 45543 63927 a 45543 63927 +a +SDict begin [ /View [/XYZ H.V] /Dest (4195) cvn H.B /DEST pdfmark end + 45543 63927 a FP(root)p FU(...\))-30 64263 y +SDict begin H.S end + -30 64263 +a -30 64263 a +SDict begin 18.2 H.A end + -30 64263 a -30 64263 a +SDict begin [ /View [/XYZ H.V] /Dest (4196) cvn H.B /DEST pdfmark end + -30 64263 a -30 +64263 a +SDict begin H.S end + -30 64263 a -30 64263 a +SDict begin 18.2 H.A end + -30 64263 a -30 64263 +a +SDict begin [ /View [/XYZ H.V] /Dest (4199) cvn H.B /DEST pdfmark end + -30 64263 a Black 9529 x FR(148)p Black eop end +%%Page: 149 171 +TeXDict begin 149 170 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.149) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 24333 -1636 a FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a +-30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4202) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(If)559 +b(needed,)g(you)g(can)g(also)f(temporarily)g(disable)g(an)h(account,)g +(and)g(reenable)g(it)f(at)h(a)g(later)-30 5626 y(time)512 +b(if)g(needed.)g(Both)g(disabling)f(an)h(account)g(and)g(reenabling)g +(an)g(account)g(can)g(be)g(done)-30 7640 y(with)3113 +7640 y +SDict begin H.S end + 3113 7640 a 3113 7640 a +SDict begin 18.2 H.A end + 3113 7640 a 3113 7640 +a +SDict begin [ /View [/XYZ H.V] /Dest (4203) cvn H.B /DEST pdfmark end + 3113 7640 a FP(passwd)p FU(.)387 b(T)-124 b(o)387 b(disable)g(an)h +(account,)f(do)g(the)g(follo)-39 b(wing)387 b(as)34831 +7640 y +SDict begin H.S end + 34831 7640 a 34831 7640 a +SDict begin 18.2 H.A end + 34831 7640 a 34831 7640 +a +SDict begin [ /View [/XYZ H.V] /Dest (4204) cvn H.B /DEST pdfmark end + 34831 7640 a FP(root)p FU(:)-30 9526 y +SDict begin H.S end + -30 9526 a -30 +9526 a +SDict begin 14.56 H.A end + -30 9526 a -30 9526 a +SDict begin [ /View [/XYZ H.V] /Dest (4205) cvn H.B /DEST pdfmark end + -30 9526 a -30 9526 a +SDict begin H.S end + -30 +9526 a -30 9526 a +SDict begin 14.56 H.A end + -30 9526 a -30 9526 a +SDict begin [ /View [/XYZ H.V] /Dest (4206) cvn H.B /DEST pdfmark end + -30 9526 a 1276 +x FJ(#)1309 10802 y +SDict begin H.S end + 1309 10802 a 1309 10802 a +SDict begin 14.56 H.A end + 1309 10802 +a 1309 10802 a +SDict begin [ /View [/XYZ H.V] /Dest (4207) cvn H.B /DEST pdfmark end + 1309 10802 a FH(passwd)743 b(-l)h(david)-30 +12520 y +SDict begin H.S end + -30 12520 a -30 12520 a +SDict begin 18.2 H.A end + -30 12520 a -30 12520 +a +SDict begin [ /View [/XYZ H.V] /Dest (4208) cvn H.B /DEST pdfmark end + -30 12520 a 1846 x FU(This)361 b(will)f(change)h(da)-31 +b(vid')-85 b(s)361 b(passw)-15 b(ord)360 b(to)h(something)f(that)g(can) +i(ne)-39 b(v)-23 b(er)361 b(match)f(an)-23 b(y)361 b(encrypted)-30 +16381 y(v)-39 b(alue.)388 b(Y)-170 b(ou)387 b(w)-15 b(ould)386 +b(reenable)h(the)g(account)h(by)f(using:)-30 18266 y +SDict begin H.S end + +-30 18266 a -30 18266 a +SDict begin 14.56 H.A end + -30 18266 a -30 18266 a +SDict begin [ /View [/XYZ H.V] /Dest (4209) cvn H.B /DEST pdfmark end + -30 18266 +a -30 18266 a +SDict begin H.S end + -30 18266 a -30 18266 a +SDict begin 14.56 H.A end + -30 18266 a -30 +18266 a +SDict begin [ /View [/XYZ H.V] /Dest (4210) cvn H.B /DEST pdfmark end + -30 18266 a 1276 x FJ(#)1309 19542 y +SDict begin H.S end + 1309 19542 +a 1309 19542 a +SDict begin 14.56 H.A end + 1309 19542 a 1309 19542 a +SDict begin [ /View [/XYZ H.V] /Dest (4211) cvn H.B /DEST pdfmark end + 1309 19542 a +FH(passwd)743 b(-u)h(david)-30 21260 y +SDict begin H.S end + -30 21260 a -30 +21260 a +SDict begin 18.2 H.A end + -30 21260 a -30 21260 a +SDict begin [ /View [/XYZ H.V] /Dest (4212) cvn H.B /DEST pdfmark end + -30 21260 a 1847 x FU(No)-39 +b(w)-101 b(,)381 b(da)-31 b(vid')-85 b(s)379 b(account)g(is)h(back)g +(to)f(normal.)h(Disabling)f(an)h(account)f(might)g(be)h(useful)f(if)h +(the)-30 25122 y(user)385 b(doesn')-28 b(t)384 b(play)h(by)f(the)h +(rules)g(you')-77 b(v)-23 b(e)383 b(set)i(up)g(on)f(your)h(system,)f +(or)h(if)g(the)-23 b(y')-77 b(v)-23 b(e)384 b(e)-23 b(xported)384 +b(a)-30 27136 y(v)-23 b(ery)387 b(lar)-28 b(ge)388 b(cop)-15 +b(y)386 b(of)11609 27136 y +SDict begin H.S end + 11609 27136 a 11609 27136 +a +SDict begin 18.2 H.A end + 11609 27136 a 11609 27136 a +SDict begin [ /View [/XYZ H.V] /Dest (4213) cvn H.B /DEST pdfmark end + 11609 27136 a FP(xeyes)p +FU(\(1\))g(to)i(your)f(X)g(desktop.)-30 28247 y +SDict begin H.S end + -30 28247 +a -30 28247 a +SDict begin 18.2 H.A end + -30 28247 a -30 28247 a +SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-USERS-CHANGING) +cvn H.B /DEST pdfmark end + -30 28247 a 5181 +x FG(Changing)518 b(User)f(Inf)-37 b(ormation)-30 34772 +y +SDict begin H.S end + -30 34772 a -30 34772 a +SDict begin 18.2 H.A end + -30 34772 a -30 34772 a +SDict begin [ /View [/XYZ H.V] /Dest (4216) cvn H.B /DEST pdfmark end + -30 +34772 a 1601 x FU(There)512 b(are)h(tw)-15 b(o)511 b(pieces)h(of)h +(information)e(that)h(users)f(can)i(change)f(at)g(an)-23 +b(y)512 b(time:)g(their)f(shell)-30 38387 y(and)551 b(their)f(\002nger) +h(information.)f(Slackw)-15 b(are)550 b(Linux)g(uses)33035 +38387 y +SDict begin H.S end + 33035 38387 a 33035 38387 a +SDict begin 18.2 H.A end + 33035 38387 a 33035 +38387 a +SDict begin [ /View [/XYZ H.V] /Dest (4217) cvn H.B /DEST pdfmark end + 33035 38387 a FP(chsh)h FU(\(change)f(shell\))h(and)48800 +38387 y +SDict begin H.S end + 48800 38387 a 48800 38387 a +SDict begin 18.2 H.A end + 48800 38387 a 48800 +38387 a +SDict begin [ /View [/XYZ H.V] /Dest (4218) cvn H.B /DEST pdfmark end + 48800 38387 a FP(chfn)-30 40402 y FU(\(change)387 +b(\002nger\))g(to)h(modify)e(these)h(v)-39 b(alues.)-30 +41512 y +SDict begin H.S end + -30 41512 a -30 41512 a +SDict begin 18.2 H.A end + -30 41512 a -30 41512 +a +SDict begin [ /View [/XYZ H.V] /Dest (4219) cvn H.B /DEST pdfmark end + -30 41512 a 1680 x FU(A)627 b(user)g(can)g(pick)g(an)-23 +b(y)627 b(shell)f(that)h(is)g(listed)f(in)h(the)30347 +43192 y +SDict begin H.S end + 30347 43192 a 30347 43192 a +SDict begin 18.2 H.A end + 30347 43192 a 30347 +43192 a +SDict begin [ /View [/XYZ H.V] /Dest (4220) cvn H.B /DEST pdfmark end + 30347 43192 a FQ(/etc/shells)620 b FU(\002le.)627 +b(F)-23 b(or)626 b(most)h(people,)-30 45206 y +SDict begin H.S end + -30 45206 +a -30 45206 a +SDict begin 18.2 H.A end + -30 45206 a -30 45206 a +SDict begin [ /View [/XYZ H.V] /Dest (4221) cvn H.B /DEST pdfmark end + -30 45206 a FP(/bin/bash)550 +b FU(will)h(do)g(just)g(\002ne.)g(Others)g(might)g(be)g(f)-15 +b(amiliar)550 b(with)h(a)g(shell)g(found)g(on)g(their)-30 +47221 y(system)441 b(at)h(w)-15 b(ork)442 b(or)g(school)f(and)h(w)-15 +b(ant)441 b(to)h(use)g(what)f(the)-23 b(y)442 b(already)g(kno)-39 +b(w)-101 b(.)442 b(T)-124 b(o)442 b(change)g(your)-30 +49236 y(shell,)387 b(use)6126 49236 y +SDict begin H.S end + 6126 49236 a 6126 +49236 a +SDict begin 18.2 H.A end + 6126 49236 a 6126 49236 a +SDict begin [ /View [/XYZ H.V] /Dest (4222) cvn H.B /DEST pdfmark end + 6126 49236 a FP(chsh)p +FU(:)-30 51009 y +SDict begin H.S end + -30 51009 a -30 51009 a +SDict begin 14.56 H.A end + -30 51009 a +-30 51009 a +SDict begin [ /View [/XYZ H.V] /Dest (4223) cvn H.B /DEST pdfmark end + -30 51009 a -30 51009 a +SDict begin H.S end + -30 51009 a -30 51009 +a +SDict begin 14.56 H.A end + -30 51009 a -30 51009 a +SDict begin [ /View [/XYZ H.V] /Dest (4224) cvn H.B /DEST pdfmark end + -30 51009 a 1388 x FJ(\045)1309 +52397 y +SDict begin H.S end + 1309 52397 a 1309 52397 a +SDict begin 14.56 H.A end + 1309 52397 a 1309 52397 +a +SDict begin [ /View [/XYZ H.V] /Dest (4225) cvn H.B /DEST pdfmark end + 1309 52397 a FH(chsh)-30 54009 y FP(Password:)-30 55621 +y(Changing)743 b(the)h(login)f(shell)g(for)h(chris)-30 +57232 y(Enter)f(the)h(new)f(value,)h(or)f(press)g(return)h(for)f(the)h +(default)5921 58844 y(Login)f(Shell)h([/bin/bash]:)-30 +60588 y +SDict begin H.S end + -30 60588 a -30 60588 a +SDict begin 18.2 H.A end + -30 60588 a -30 60588 +a +SDict begin [ /View [/XYZ H.V] /Dest (4226) cvn H.B /DEST pdfmark end + -30 60588 a 1820 x FU(After)354 b(entering)f(your)g(passw)-15 +b(ord,)353 b(enter)h(the)g(full)f(path)g(to)h(the)f(ne)-39 +b(w)354 b(shell.)g(Mak)-15 b(e)353 b(sure)g(that)h(it')-85 +b(s)-30 64423 y(listed)436 b(in)g(the)7737 64423 y +SDict begin H.S end + 7737 +64423 a 7737 64423 a +SDict begin 18.2 H.A end + 7737 64423 a 7737 64423 a +SDict begin [ /View [/XYZ H.V] /Dest (4227) cvn H.B /DEST pdfmark end + 7737 64423 +a FQ(/etc/shells)p FU(\(5\))430 b(\002le)436 b(\002rst.)g(The)25369 +64423 y +SDict begin H.S end + 25369 64423 a 25369 64423 a +SDict begin 18.2 H.A end + 25369 64423 a 25369 +64423 a +SDict begin [ /View [/XYZ H.V] /Dest (4228) cvn H.B /DEST pdfmark end + 25369 64423 a FP(root)g FU(user)h(can)f(also)g(change)g(an)-23 +b(y)436 b(user')-85 b(s)436 b(shell)-30 66438 y(by)387 +b(running)7116 66438 y +SDict begin H.S end + 7116 66438 a 7116 66438 a +SDict begin 18.2 H.A end + 7116 +66438 a 7116 66438 a +SDict begin [ /View [/XYZ H.V] /Dest (4229) cvn H.B /DEST pdfmark end + 7116 66438 a FP(chsh)g FU(with)g(a)g(username)g +(as)h(the)f(ar)-28 b(gument.)p Black 49451 73792 a FR(149)p +Black eop end +%%Page: 150 172 +TeXDict begin 150 171 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.150) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (4257) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(12)g(Essential)f(System)h(Administr)-23 b(ation)p Black +-30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 +a +SDict begin [ /View [/XYZ H.V] /Dest (4230) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(The)540 b(\002nger)g(information)e(is)i(the)g +(optional)f(information)g(such)h(as)g(your)f(full)h(name,)g(phone)-30 +5626 y(numbers,)412 b(and)f(room)h(number)-85 b(.)411 +b(This)g(can)h(be)g(changed)g(using)34839 5626 y +SDict begin H.S end + 34839 +5626 a 34839 5626 a +SDict begin 18.2 H.A end + 34839 5626 a 34839 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (4231) cvn H.B /DEST pdfmark end + 34839 5626 +a FP(chfn)p FU(,)g(and)f(follo)-39 b(ws)412 b(the)f(same)-30 +7640 y(procedure)571 b(as)f(it)h(did)f(during)g(account)h(creation.)g +(As)f(usual,)35062 7640 y +SDict begin H.S end + 35062 7640 a 35062 7640 a +SDict begin 18.2 H.A end + 35062 +7640 a 35062 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (4232) cvn H.B /DEST pdfmark end + 35062 7640 a FP(root)g FU(can)h(change)g(an)-23 +b(yone')-85 b(s)-30 9655 y(\002nger)387 b(information.)-30 +12315 y +SDict begin H.S end + -30 12315 a -30 12315 a +SDict begin 18.2 H.A end + -30 12315 a -30 12315 +a +SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-HARDUSERS) +cvn H.B /DEST pdfmark end + -30 12315 a 5789 x FL(12.2)620 b(User)-33 b(s)620 b(and)f(Gr)-45 +b(oups,)620 b(the)f(Har)-45 b(d)621 b(W)-89 b(a)-45 b(y)-30 +19682 y +SDict begin H.S end + -30 19682 a -30 19682 a +SDict begin 18.2 H.A end + -30 19682 a -30 19682 +a +SDict begin [ /View [/XYZ H.V] /Dest (4235) cvn H.B /DEST pdfmark end + -30 19682 a 1553 x FU(Of)400 b(course,)f(it)h(is)f(possible)g(to)g +(add,)h(modify)-101 b(,)399 b(and)h(remo)-23 b(v)g(e)398 +b(users)i(and)f(groups)g(without)g(using)-30 23249 y(the)362 +b(scripts)f(and)g(programs)g(that)h(come)f(with)g(Slackw)-15 +b(are.)361 b(It')-85 b(s)362 b(not)f(really)g(dif)-39 +b(\002cult,)362 b(although)-30 25264 y(after)609 b(reading)g(this)g +(process,)g(you')-15 b(ll)608 b(probably)g(\002nd)h(it)g(much)f(easier) +h(to)g(use)g(the)g(scripts.)-30 27279 y(Ho)-39 b(we)g(v)-23 +b(er)-62 b(,)421 b(it')-85 b(s)420 b(important)g(to)g(kno)-39 +b(w)421 b(ho)-39 b(w)420 b(your)h(passw)-15 b(ord)419 +b(information)g(is)i(actually)f(stored,)-30 29293 y(in)358 +b(case)g(you)g(e)-39 b(v)-23 b(er)358 b(need)g(to)g(reco)-23 +b(v)g(er)358 b(this)g(information)f(and)h(don')-28 b(t)358 +b(ha)-31 b(v)-23 b(e)357 b(the)h(Slackw)-15 b(are)358 +b(tools)-30 31308 y(a)-31 b(v)-39 b(ailable.)-30 32098 +y +SDict begin H.S end + -30 32098 a -30 32098 a +SDict begin 18.2 H.A end + -30 32098 a -30 32098 a +SDict begin [ /View [/XYZ H.V] /Dest (4236) cvn H.B /DEST pdfmark end + -30 +32098 a 2000 x FU(First,)525 b(we')-15 b(ll)525 b(add)g(a)g(ne)-39 +b(w)526 b(user)f(to)g(the)21722 34098 y +SDict begin H.S end + 21722 34098 a +21722 34098 a +SDict begin 18.2 H.A end + 21722 34098 a 21722 34098 a +SDict begin [ /View [/XYZ H.V] /Dest (4237) cvn H.B /DEST pdfmark end + 21722 34098 +a FQ(/etc/passwd)p FU(\(5\),)31332 34098 y +SDict begin H.S end + 31332 34098 +a 31332 34098 a +SDict begin 18.2 H.A end + 31332 34098 a 31332 34098 a +SDict begin [ /View [/XYZ H.V] /Dest (4238) cvn H.B /DEST pdfmark end + 31332 34098 +a FQ(/etc/shadow)p FU(\(5\),)519 b(and)43705 34098 y +SDict begin H.S end + +43705 34098 a 43705 34098 a +SDict begin 18.2 H.A end + 43705 34098 a 43705 34098 +a +SDict begin [ /View [/XYZ H.V] /Dest (4239) cvn H.B /DEST pdfmark end + 43705 34098 a FQ(/etc/group)p FU(\(5\))-30 36112 y(\002les.)553 +b(The)6456 36112 y +SDict begin H.S end + 6456 36112 a 6456 36112 a +SDict begin 18.2 H.A end + 6456 36112 +a 6456 36112 a +SDict begin [ /View [/XYZ H.V] /Dest (4240) cvn H.B /DEST pdfmark end + 6456 36112 a FQ(passwd)c FU(\002le)j(holds)g(some)g +(information)g(about)g(the)g(users)g(on)h(your)f(system,)g(b)-31 +b(ut)-30 38127 y(\(strangely)382 b(enough\))g(not)f(their)h(passw)-15 +b(ords.)382 b(This)f(w)-15 b(as)382 b(once)g(the)g(case,)h(b)-31 +b(ut)382 b(w)-15 b(as)382 b(halted)f(long)-30 40142 y(ago)585 +b(for)h(security)e(reasons.)i(The)f(passwd)g(\002le)g(must)f(be)h +(readable)h(by)f(all)g(users,)g(b)-31 b(ut)585 b(you)-30 +42156 y(don')-28 b(t)451 b(w)-15 b(ant)450 b(encrypted)h(passw)-15 +b(ords)450 b(w)-15 b(orld-readable,)451 b(as)g(w)-15 +b(ould-be)450 b(intruders)h(can)g(use)g(the)-30 44171 +y(encrypted)510 b(passw)-15 b(ords)509 b(as)h(a)g(starting)g(point)f +(for)i(decrypting)e(a)h(user')-85 b(s)510 b(passw)-15 +b(ord.)510 b(Instead,)-30 46186 y(the)385 b(encrypted)g(passw)-15 +b(ords)384 b(are)h(k)-15 b(ept)385 b(in)f(the)h(shado)-39 +b(w)385 b(\002le,)g(which)g(is)g(only)g(readable)g(by)g(root,)-30 +48200 y(and)421 b(e)-39 b(v)-23 b(eryone')-85 b(s)421 +b(passw)-15 b(ord)420 b(is)i(entered)f(into)g(the)27547 +48200 y +SDict begin H.S end + 27547 48200 a 27547 48200 a +SDict begin 18.2 H.A end + 27547 48200 a 27547 +48200 a +SDict begin [ /View [/XYZ H.V] /Dest (4241) cvn H.B /DEST pdfmark end + 27547 48200 a FQ(passwd)c FU(\002le)k(simply)g(as)40482 +48200 y +SDict begin H.S end + 40482 48200 a 40482 48200 a +SDict begin 18.2 H.A end + 40482 48200 a 40482 +48200 a +SDict begin [ /View [/XYZ H.V] /Dest (4242) cvn H.B /DEST pdfmark end + 40482 48200 a FU(\223)41170 48200 y +SDict begin H.S end + 41170 48200 +a 41170 48200 a +SDict begin 18.2 H.A end + 41170 48200 a 41170 48200 a +SDict begin [ /View [/XYZ H.V] /Dest (4243) cvn H.B /DEST pdfmark end + 41170 48200 +a FP(x)p FU(\224.)h(The)46242 48200 y +SDict begin H.S end + 46242 48200 a 46242 +48200 a +SDict begin 18.2 H.A end + 46242 48200 a 46242 48200 a +SDict begin [ /View [/XYZ H.V] /Dest (4244) cvn H.B /DEST pdfmark end + 46242 48200 a FQ(group)c +FU(\002le)-30 50215 y(lists)387 b(all)g(the)g(groups)g(and)g(who)g(is)g +(in)g(each.)-30 51325 y +SDict begin H.S end + -30 51325 a -30 51325 a +SDict begin 18.2 H.A end + -30 51325 +a -30 51325 a +SDict begin [ /View [/XYZ H.V] /Dest (4245) cvn H.B /DEST pdfmark end + -30 51325 a 1680 x FU(Y)-170 b(ou)368 b(can)h(use)g(the) +10055 53005 y +SDict begin H.S end + 10055 53005 a 10055 53005 a +SDict begin 18.2 H.A end + 10055 53005 +a 10055 53005 a +SDict begin [ /View [/XYZ H.V] /Dest (4246) cvn H.B /DEST pdfmark end + 10055 53005 a FP(vipw)g FU(command)f(to)g(edit)h(the) +26412 53005 y +SDict begin H.S end + 26412 53005 a 26412 53005 a +SDict begin 18.2 H.A end + 26412 53005 +a 26412 53005 a +SDict begin [ /View [/XYZ H.V] /Dest (4247) cvn H.B /DEST pdfmark end + 26412 53005 a FQ(/etc/passwd)362 b FU(\002le)368 +b(safely)-101 b(,)370 b(and)f(the)45247 53005 y +SDict begin H.S end + 45247 +53005 a 45247 53005 a +SDict begin 18.2 H.A end + 45247 53005 a 45247 53005 a +SDict begin [ /View [/XYZ H.V] /Dest (4248) cvn H.B /DEST pdfmark end + 45247 +53005 a FP(vigr)f FU(com-)-30 55019 y(mand)343 b(to)g(edit)g(the)10211 +55019 y +SDict begin H.S end + 10211 55019 a 10211 55019 a +SDict begin 18.2 H.A end + 10211 55019 a 10211 +55019 a +SDict begin [ /View [/XYZ H.V] /Dest (4249) cvn H.B /DEST pdfmark end + 10211 55019 a FQ(/etc/group)337 b FU(\002le)343 +b(safely)-101 b(.)344 b(Use)26226 55019 y +SDict begin H.S end + 26226 55019 +a 26226 55019 a +SDict begin 18.2 H.A end + 26226 55019 a 26226 55019 a +SDict begin [ /View [/XYZ H.V] /Dest (4250) cvn H.B /DEST pdfmark end + 26226 55019 +a FP(vipw)744 b(-s)343 b FU(to)g(edit)g(the)38231 55019 +y +SDict begin H.S end + 38231 55019 a 38231 55019 a +SDict begin 18.2 H.A end + 38231 55019 a 38231 55019 +a +SDict begin [ /View [/XYZ H.V] /Dest (4251) cvn H.B /DEST pdfmark end + 38231 55019 a FQ(/etc/shadow)336 b FU(\002le)343 b(safely)-101 +b(.)-30 57034 y(\()486 57034 y +SDict begin H.S end + 486 57034 a 486 57034 +a +SDict begin 18.2 H.A end + 486 57034 a 486 57034 a +SDict begin [ /View [/XYZ H.V] /Dest (4252) cvn H.B /DEST pdfmark end + 486 57034 a FU(\223Safely\224)353 +b(in)h(this)f(conte)-23 b(xt)352 b(means)h(someone)g(else)h(w)-15 +b(on')-28 b(t)352 b(be)i(able)f(to)g(modify)g(the)g(\002le)h(you')-77 +b(re)-30 59049 y(editing)381 b(at)g(the)g(moment.)g(If)h(you')-77 +b(re)381 b(the)g(only)g(administrator)f(of)h(your)g(system,)g(you')-77 +b(re)381 b(prob-)-30 61063 y(ably)387 b(safe,)h(b)-31 +b(ut)387 b(it')-85 b(s)387 b(best)g(to)g(get)g(into)g(good)g(habits)g +(from)g(the)g(start.\))-30 62174 y +SDict begin H.S end + -30 62174 a -30 62174 +a +SDict begin 18.2 H.A end + -30 62174 a -30 62174 a +SDict begin [ /View [/XYZ H.V] /Dest (4253) cvn H.B /DEST pdfmark end + -30 62174 a 1679 x FU(Let')-85 +b(s)368 b(e)-23 b(xamine)367 b(the)11295 63853 y +SDict begin H.S end + 11295 +63853 a 11295 63853 a +SDict begin 18.2 H.A end + 11295 63853 a 11295 63853 a +SDict begin [ /View [/XYZ H.V] /Dest (4254) cvn H.B /DEST pdfmark end + 11295 +63853 a FQ(/etc/passwd)362 b FU(\002le)367 b(and)h(look)g(at)g(ho)-39 +b(w)368 b(to)g(add)g(a)h(ne)-39 b(w)368 b(user)-85 b(.)368 +b(A)h(typical)e(entry)-30 65867 y(in)1563 65867 y +SDict begin H.S end + 1563 +65867 a 1563 65867 a +SDict begin 18.2 H.A end + 1563 65867 a 1563 65867 a +SDict begin [ /View [/XYZ H.V] /Dest (4255) cvn H.B /DEST pdfmark end + 1563 65867 +a FQ(passwd)384 b FU(looks)j(lik)-15 b(e)386 b(this:)p +Black -30 73792 a FR(150)p Black eop end +%%Page: 151 173 +TeXDict begin 151 172 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.151) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (4274) cvn H.B /DEST pdfmark end + -30 -2687 a 24333 -1636 a FR(Chapter)387 +b(12)g(Essential)f(System)h(Administr)-23 b(ation)p Black +-30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 +a +SDict begin [ /View [/XYZ H.V] /Dest (4256) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FP(chris:x:1000:100:Chris)741 b(Lumens,Room)i +(2\204:/home/chris:/bin/bash)-30 7176 y FU(Each)449 b(line)f(is)g(an)h +(entry)f(for)h(one)f(user)-62 b(,)449 b(and)g(\002elds)f(on)g(each)h +(line)f(are)h(separated)g(by)f(a)h(colon.)-30 9190 y(The)356 +b(\002elds)g(are)h(the)f(login)g(name,)h(encrypted)f(passw)-15 +b(ord)355 b(\(\223)p FP(x)p FU(\224)i(for)f(e)-39 b(v)-23 +b(eryone)357 b(on)f(a)h(Slackw)-15 b(are)-30 11205 y(system,)506 +b(since)f(Slackw)-15 b(are)505 b(uses)h(shado)-39 b(w)505 +b(passw)-15 b(ords\),)505 b(user)h(ID,)g(group)g(ID,)g(the)g(optional) +-30 13220 y(\002nger)411 b(information)g(\(separated)h(by)f(commas\),)h +(home)f(directory)-101 b(,)412 b(and)g(shell.)g(T)-124 +b(o)411 b(add)h(a)g(ne)-39 b(w)-30 15234 y(user)376 b(by)g(hand,)g(add) +g(a)g(ne)-39 b(w)377 b(line)e(at)h(the)g(end)g(of)g(the)g(\002le,)g +(\002lling)f(in)h(the)g(appropriate)f(informa-)-30 17249 +y(tion.)-30 17264 y +SDict begin H.S end + -30 17264 a -30 17264 a +SDict begin 18.2 H.A end + -30 17264 +a -30 17264 a +SDict begin [ /View [/XYZ H.V] /Dest (4260) cvn H.B /DEST pdfmark end + -30 17264 a -30 18039 a +SDict begin H.S end + -30 18039 a -30 +18039 a +SDict begin 18.2 H.A end + -30 18039 a -30 18039 a +SDict begin [ /View [/XYZ H.V] /Dest (4262) cvn H.B /DEST pdfmark end + -30 18039 a 1999 x FU(The)469 +b(information)e(you)i(add)f(needs)h(to)f(meet)g(some)g(requirements,)h +(or)f(your)h(ne)-39 b(w)469 b(user)f(may)-30 22053 y(ha)-31 +b(v)-23 b(e)445 b(problems)g(logging)f(in.)i(First,)f(mak)-15 +b(e)445 b(sure)g(that)g(the)g(passw)-15 b(ord)445 b(\002eld)g(is)g(an) +45191 22053 y +SDict begin H.S end + 45191 22053 a 45191 22053 a +SDict begin 18.2 H.A end + 45191 22053 +a 45191 22053 a +SDict begin [ /View [/XYZ H.V] /Dest (4263) cvn H.B /DEST pdfmark end + 45191 22053 a FP(x)p FU(,)h(and)f(that)-30 +24068 y(both)461 b(the)h(user)g(name)f(and)h(user)f(ID)h(is)g(unique.)f +(Assign)g(the)h(user)f(a)h(group,)g(either)g(100)f(\(the)-30 +26082 y +SDict begin H.S end + -30 26082 a -30 26082 a +SDict begin 18.2 H.A end + -30 26082 a -30 26082 +a +SDict begin [ /View [/XYZ H.V] /Dest (4264) cvn H.B /DEST pdfmark end + -30 26082 a FU(\223users\224)509 b(group)g(in)g(Slackw)-15 +b(are\))509 b(or)g(your)g(def)-15 b(ault)509 b(group)g(\(use)g(its)g +(number)-62 b(,)509 b(not)g(its)g(name\).)-30 28097 y(Gi)-39 +b(v)-23 b(e)334 b(the)g(user)g(a)g(v)-39 b(alid)334 b(home)g(directory) +f(\(which)h(you')-15 b(ll)333 b(create)h(later\))g(and)g(shell)g +(\(remember)-62 b(,)-30 30112 y(v)-39 b(alid)387 b(shells)g(are)h +(listed)e(in)14954 30112 y +SDict begin H.S end + 14954 30112 a 14954 30112 +a +SDict begin 18.2 H.A end + 14954 30112 a 14954 30112 a +SDict begin [ /View [/XYZ H.V] /Dest (4265) cvn H.B /DEST pdfmark end + 14954 30112 a FQ(/etc/shells)p +FU(\).)-30 31164 y +SDict begin H.S end + -30 31164 a -30 31164 a +SDict begin 18.2 H.A end + -30 31164 +a -30 31164 a +SDict begin [ /View [/XYZ H.V] /Dest (4266) cvn H.B /DEST pdfmark end + -30 31164 a 1737 x FU(Ne)-23 b(xt,)447 +b(we')-15 b(ll)447 b(need)g(to)g(add)g(an)g(entry)g(in)f(the)h +(/etc/shado)-39 b(w)447 b(\002le,)g(which)g(holds)f(the)h(encrypted)-30 +34916 y(passw)-15 b(ords.)387 b(A)g(typical)g(entry)g(looks)g(lik)-15 +b(e)386 b(this:)-30 36801 y +SDict begin H.S end + -30 36801 a -30 36801 a +SDict begin 14.56 H.A end + -30 +36801 a -30 36801 a +SDict begin [ /View [/XYZ H.V] /Dest (4267) cvn H.B /DEST pdfmark end + -30 36801 a 1276 x FP +(chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::)-30 +39822 y +SDict begin H.S end + -30 39822 a -30 39822 a +SDict begin 18.2 H.A end + -30 39822 a -30 39822 +a +SDict begin [ /View [/XYZ H.V] /Dest (4268) cvn H.B /DEST pdfmark end + -30 39822 a 1820 x FU(Ag)-8 b(ain,)347 b(each)g(line)f(is)g(an)h +(entry)f(for)h(one)f(person,)h(with)f(each)h(\002eld)f(delimited)f(by)i +(a)f(colon.)h(The)-30 43656 y(\002elds)566 b(are)i(\(in)e(order\))i +(login)e(name,)h(encrypted)g(passw)-15 b(ord,)566 b(days)h(since)f(the) +h(Epoch)g(\(Jan-)-30 45671 y(uary)532 b(1,)h(1970\))f(that)g(the)g +(passw)-15 b(ord)531 b(w)-15 b(as)532 b(last)g(changed,)g(days)g +(before)h(the)f(passw)-15 b(ord)531 b(may)-30 47686 y(be)411 +b(changed,)g(days)f(after)h(which)f(the)g(passw)-15 b(ord)410 +b(must)g(be)g(changed,)h(days)f(before)h(passw)-15 b(ord)-30 +49700 y(e)-23 b(xpiration)385 b(that)h(the)g(user)h(is)f(noti\002ed,)f +(days)h(after)h(e)-23 b(xpiration)385 b(that)h(the)g(account)g(is)g +(disabled,)-30 51715 y(days)h(since)g(the)h(Epoch)f(that)g(the)g +(account)g(is)g(disabled,)g(and)g(a)h(reserv)-23 b(ed)387 +b(\002eld.)-30 52826 y +SDict begin H.S end + -30 52826 a -30 52826 a +SDict begin 18.2 H.A end + -30 52826 +a -30 52826 a +SDict begin [ /View [/XYZ H.V] /Dest (4269) cvn H.B /DEST pdfmark end + -30 52826 a 1679 x FU(As)312 b(you)g(can)g(see,)h(most)f +(of)g(that)g(is)g(for)g(account)g(e)-23 b(xpiration)311 +b(information.)h(If)g(you)g(aren')-28 b(t)313 b(using)-30 +56519 y(e)-23 b(xpiration)337 b(information,)g(you)g(only)h(need)f(to)h +(\002ll)f(in)h(a)f(fe)-39 b(w)339 b(\002elds)e(with)g(some)g(special)h +(v)-39 b(alues.)-30 58534 y(Otherwise,)377 b(you')-15 +b(ll)375 b(need)i(to)f(do)h(some)f(calculations)f(and)i(decision)f +(making)g(before)h(you)f(can)-30 60549 y(\002ll)501 b(those)h(\002elds) +f(in.)i(F)-23 b(or)501 b(a)h(ne)-39 b(w)502 b(user)-62 +b(,)503 b(just)e(put)h(some)g(random)f(g)-8 b(arbage)502 +b(in)g(the)g(passw)-15 b(ord)-30 62563 y(\002eld.)517 +b(Don')-28 b(t)516 b(w)-15 b(orry)516 b(about)g(what)g(the)h(passw)-15 +b(ord)515 b(is)h(right)g(no)-39 b(w)-101 b(,)518 b(because)e(you')-77 +b(re)516 b(going)g(to)-30 64578 y(change)359 b(it)f(in)g(a)h(minute.)f +(The)h(only)f(character)h(you)f(cannot)h(include)f(in)g(the)h(passw)-15 +b(ord)357 b(\002eld)h(is)-30 66593 y(a)389 b(colon.)f(Lea)-31 +b(v)-23 b(e)388 b(the)11668 66593 y +SDict begin H.S end + 11668 66593 a 11668 +66593 a +SDict begin 18.2 H.A end + 11668 66593 a 11668 66593 a +SDict begin [ /View [/XYZ H.V] /Dest (4270) cvn H.B /DEST pdfmark end + 11668 66593 a FU(\223days)h(since)f +(passw)-15 b(ord)387 b(w)-15 b(as)388 b(changed\224)g(\002eld)g(blank)g +(as)g(well.)h(Fill)e(in)50645 66593 y +SDict begin H.S end + 50645 66593 a 50645 +66593 a +SDict begin 18.2 H.A end + 50645 66593 a 50645 66593 a +SDict begin [ /View [/XYZ H.V] /Dest (4271) cvn H.B /DEST pdfmark end + 50645 66593 a FP(0)p +FU(,)p Black 49451 73792 a FR(151)p Black eop end +%%Page: 152 174 +TeXDict begin 152 173 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.152) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 3611 a +SDict begin H.S end + -30 3611 a +-30 3611 a +SDict begin 18.2 H.A end + -30 3611 a -30 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4272) cvn H.B /DEST pdfmark end + -30 3611 a FP(99999)p +FU(,)387 b(and)7090 3611 y +SDict begin H.S end + 7090 3611 a 7090 3611 a +SDict begin 18.2 H.A end + 7090 +3611 a 7090 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4273) cvn H.B /DEST pdfmark end + 7090 3611 a FP(7)g FU(just)g(as)g(you)g(see)h(in)f +(the)g(e)-23 b(xample)387 b(entry)-101 b(,)387 b(and)h(lea)-31 +b(v)-23 b(e)387 b(the)g(other)g(\002elds)g(blank.)-30 +6401 y(\(F)-23 b(or)606 b(those)f(of)h(you)g(who)g(think)f(you)h(see)g +(my)g(encrypted)g(passw)-15 b(ord)605 b(abo)-23 b(v)g(e)605 +b(and)h(belie)-39 b(v)-23 b(e)-30 8415 y(you')-77 b(v)-23 +b(e)506 b(got)h(a)g(le)-23 b(g)507 b(up)g(on)g(breaking)g(into)f(my)h +(system,)g(go)g(right)g(ahead.)g(If)h(you)e(can)i(crack)-30 +10430 y(that)601 b(passw)-15 b(ord,)601 b(you')-15 b(ll)600 +b(kno)-39 b(w)602 b(the)f(passw)-15 b(ord)600 b(to)i(a)f(\002re)-39 +b(w)-15 b(alled)601 b(test)g(system.)g(No)-39 b(w)602 +b(that')-85 b(s)-30 12445 y(useful)387 b(:\))g(\))-30 +12722 y +SDict begin H.S end + -30 12722 a -30 12722 a +SDict begin 18.2 H.A end + -30 12722 a -30 12722 +a +SDict begin [ /View [/XYZ H.V] /Dest (4275) cvn H.B /DEST pdfmark end + -30 12722 a -30 13497 a +SDict begin H.S end + -30 13497 a -30 13497 a +SDict begin 18.2 H.A end + -30 +13497 a -30 13497 a +SDict begin [ /View [/XYZ H.V] /Dest (4278) cvn H.B /DEST pdfmark end + -30 13497 a 1737 x FU(All)399 b(normal)g(users)g +(are)h(members)f(of)g(the)23080 15234 y +SDict begin H.S end + 23080 15234 a +23080 15234 a +SDict begin 18.2 H.A end + 23080 15234 a 23080 15234 a +SDict begin [ /View [/XYZ H.V] /Dest (4279) cvn H.B /DEST pdfmark end + 23080 15234 +a FU(\223)23768 15234 y +SDict begin H.S end + 23768 15234 a 23768 15234 a +SDict begin 18.2 H.A end + 23768 +15234 a 23768 15234 a +SDict begin [ /View [/XYZ H.V] /Dest (4280) cvn H.B /DEST pdfmark end + 23768 15234 a FP(users)p FU(\224)g(group)g(on)g +(a)h(typical)f(Slackw)-15 b(are)398 b(system.)-30 17249 +y(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)309 b(if)f(you)h(w)-15 +b(ant)307 b(to)h(create)h(a)g(ne)-39 b(w)308 b(group,)h(or)f(add)g(the) +h(ne)-39 b(w)308 b(user)g(to)h(additional)e(groups,)-30 +19264 y(you')-15 b(ll)386 b(need)i(to)f(modify)f(the)16097 +19264 y +SDict begin H.S end + 16097 19264 a 16097 19264 a +SDict begin 18.2 H.A end + 16097 19264 a 16097 +19264 a +SDict begin [ /View [/XYZ H.V] /Dest (4281) cvn H.B /DEST pdfmark end + 16097 19264 a FQ(/etc/group)381 b FU(\002le.)387 +b(Here)h(is)f(a)g(typical)g(entry:)-30 21149 y +SDict begin H.S end + -30 21149 +a -30 21149 a +SDict begin 14.56 H.A end + -30 21149 a -30 21149 a +SDict begin [ /View [/XYZ H.V] /Dest (4282) cvn H.B /DEST pdfmark end + -30 21149 a 1276 +x FP(cvs::102:chris,logan,david,root)-30 24169 y +SDict begin H.S end + -30 +24169 a -30 24169 a +SDict begin 18.2 H.A end + -30 24169 a -30 24169 a +SDict begin [ /View [/XYZ H.V] /Dest (4283) cvn H.B /DEST pdfmark end + -30 24169 +a 1820 x FU(The)510 b(\002elds)e(are)i(group)f(name,)h(group)f(passw) +-15 b(ord,)509 b(group)g(ID,)h(and)f(group)h(members,)f(sepa-)-30 +28004 y(rated)362 b(by)f(commas.)g(Creating)g(a)h(ne)-39 +b(w)362 b(group)f(is)g(a)h(simple)f(matter)g(of)h(adding)f(a)g(ne)-39 +b(w)362 b(line)f(with)-30 30019 y(a)447 b(unique)f(group)h(ID,)g(and)g +(listing)e(all)i(the)f(users)h(you)f(w)-15 b(ant)447 +b(to)f(be)h(in)f(the)h(group.)g(An)-23 b(y)446 b(users)-30 +32033 y(that)411 b(are)i(in)e(this)g(ne)-39 b(w)412 b(group)f(and)h +(are)g(logged)f(in)h(will)f(ha)-31 b(v)-23 b(e)411 b(to)h(log)f(out)h +(and)f(log)h(back)f(in)h(for)-30 34048 y(those)387 b(changes)g(to)g +(tak)-15 b(e)387 b(ef)-39 b(fect.)-30 35158 y +SDict begin H.S end + -30 35158 +a -30 35158 a +SDict begin 18.2 H.A end + -30 35158 a -30 35158 a +SDict begin [ /View [/XYZ H.V] /Dest (4284) cvn H.B /DEST pdfmark end + -30 35158 a 1680 +x FU(At)378 b(this)g(point,)h(it)f(might)f(be)i(a)g(good)f(idea)g(to)g +(use)h(the)29352 36838 y +SDict begin H.S end + 29352 36838 a 29352 36838 a +SDict begin 18.2 H.A end + +29352 36838 a 29352 36838 a +SDict begin [ /View [/XYZ H.V] /Dest (4285) cvn H.B /DEST pdfmark end + 29352 36838 a FP(pwck)f FU(and)35323 +36838 y +SDict begin H.S end + 35323 36838 a 35323 36838 a +SDict begin 18.2 H.A end + 35323 36838 a 35323 +36838 a +SDict begin [ /View [/XYZ H.V] /Dest (4286) cvn H.B /DEST pdfmark end + 35323 36838 a FP(grpck)g FU(commands)f(to)h(v)-23 +b(erify)-30 38852 y(that)461 b(the)h(changes)g(you')-77 +b(v)-23 b(e)460 b(made)i(are)g(consistent.)f(First,)g(use)34670 +38852 y +SDict begin H.S end + 34670 38852 a 34670 38852 a +SDict begin 18.2 H.A end + 34670 38852 a 34670 +38852 a +SDict begin [ /View [/XYZ H.V] /Dest (4287) cvn H.B /DEST pdfmark end + 34670 38852 a FP(pwck)743 b(-r)462 b FU(and)43038 +38852 y +SDict begin H.S end + 43038 38852 a 43038 38852 a +SDict begin 18.2 H.A end + 43038 38852 a 43038 +38852 a +SDict begin [ /View [/XYZ H.V] /Dest (4288) cvn H.B /DEST pdfmark end + 43038 38852 a FP(grpck)744 b(-r)p FU(:)461 b(the)-30 +40867 y +SDict begin H.S end + -30 40867 a -30 40867 a +SDict begin 18.2 H.A end + -30 40867 a -30 40867 +a +SDict begin [ /View [/XYZ H.V] /Dest (4289) cvn H.B /DEST pdfmark end + -30 40867 a FP(-r)494 b FU(switch)f(mak)-15 b(es)494 +b(no)g(changes,)g(b)-31 b(ut)494 b(lists)f(the)h(changes)g(you)f(w)-15 +b(ould)493 b(be)h(ask)-15 b(ed)494 b(to)g(mak)-15 b(e)493 +b(if)-30 42882 y(you)377 b(ran)f(the)h(command)f(without)g(the)g +(switch.)h(Y)-170 b(ou)376 b(can)g(use)h(this)f(output)g(to)h(decide)f +(whether)-30 44896 y(you)398 b(need)g(to)g(further)g(modify)f(an)-23 +b(y)398 b(\002les,)g(to)g(run)27161 44896 y +SDict begin H.S end + 27161 44896 +a 27161 44896 a +SDict begin 18.2 H.A end + 27161 44896 a 27161 44896 a +SDict begin [ /View [/XYZ H.V] /Dest (4290) cvn H.B /DEST pdfmark end + 27161 44896 +a FP(pwck)f FU(or)32223 44896 y +SDict begin H.S end + 32223 44896 a 32223 44896 +a +SDict begin 18.2 H.A end + 32223 44896 a 32223 44896 a +SDict begin [ /View [/XYZ H.V] /Dest (4291) cvn H.B /DEST pdfmark end + 32223 44896 a FP(grpck)h +FU(without)f(the)43767 44896 y +SDict begin H.S end + 43767 44896 a 43767 44896 +a +SDict begin 18.2 H.A end + 43767 44896 a 43767 44896 a +SDict begin [ /View [/XYZ H.V] /Dest (4292) cvn H.B /DEST pdfmark end + 43767 44896 a FP(-r)h FU(switch,)g(or)-30 +46911 y(to)387 b(simply)g(lea)-31 b(v)-23 b(e)387 b(your)g(changes)g +(as)g(the)-23 b(y)387 b(are.)-30 48021 y +SDict begin H.S end + -30 48021 a +-30 48021 a +SDict begin 18.2 H.A end + -30 48021 a -30 48021 a +SDict begin [ /View [/XYZ H.V] /Dest (4293) cvn H.B /DEST pdfmark end + -30 48021 a 1679 +x FU(At)440 b(this)g(point,)h(you)f(should)f(use)i(the)20834 +49700 y +SDict begin H.S end + 20834 49700 a 20834 49700 a +SDict begin 18.2 H.A end + 20834 49700 a 20834 +49700 a +SDict begin [ /View [/XYZ H.V] /Dest (4294) cvn H.B /DEST pdfmark end + 20834 49700 a FP(passwd)f FU(command)g(to)g(create)g(a)h +(proper)f(passw)-15 b(ord)440 b(for)-30 51715 y(the)541 +b(user)-85 b(.)542 b(Then,)g(use)12552 51715 y +SDict begin H.S end + 12552 +51715 a 12552 51715 a +SDict begin 18.2 H.A end + 12552 51715 a 12552 51715 a +SDict begin [ /View [/XYZ H.V] /Dest (4295) cvn H.B /DEST pdfmark end + 12552 +51715 a FP(mkdir)f FU(to)h(create)f(the)h(ne)-39 b(w)542 +b(user')-85 b(s)541 b(home)g(directory)g(in)g(the)h(location)-30 +53730 y(you)419 b(entered)f(into)h(the)12836 53730 y +SDict begin H.S end + +12836 53730 a 12836 53730 a +SDict begin 18.2 H.A end + 12836 53730 a 12836 53730 +a +SDict begin [ /View [/XYZ H.V] /Dest (4296) cvn H.B /DEST pdfmark end + 12836 53730 a FQ(/etc/passwd)412 b FU(\002le,)419 b(and)g(use)28074 +53730 y +SDict begin H.S end + 28074 53730 a 28074 53730 a +SDict begin 18.2 H.A end + 28074 53730 a 28074 +53730 a +SDict begin [ /View [/XYZ H.V] /Dest (4297) cvn H.B /DEST pdfmark end + 28074 53730 a FP(chown)f FU(to)h(change)f(the)h(o)-39 +b(wner)419 b(of)g(the)g(ne)-39 b(w)-30 55744 y(directory)387 +b(to)g(the)g(ne)-39 b(w)388 b(user)-85 b(.)-30 56080 +y +SDict begin H.S end + -30 56080 a -30 56080 a +SDict begin 18.2 H.A end + -30 56080 a -30 56080 a +SDict begin [ /View [/XYZ H.V] /Dest (4298) cvn H.B /DEST pdfmark end + -30 +56080 a -30 56080 a +SDict begin H.S end + -30 56080 a -30 56080 a +SDict begin 18.2 H.A end + -30 56080 +a -30 56080 a +SDict begin [ /View [/XYZ H.V] /Dest (4301) cvn H.B /DEST pdfmark end + -30 56080 a -30 56855 a +SDict begin H.S end + -30 56855 a -30 +56855 a +SDict begin 18.2 H.A end + -30 56855 a -30 56855 a +SDict begin [ /View [/XYZ H.V] /Dest (4303) cvn H.B /DEST pdfmark end + -30 56855 a 1679 x FU(Remo)-23 +b(ving)485 b(a)h(user)g(is)f(a)h(simple)g(matter)f(of)h(deleting)f(all) +h(of)g(the)g(entries)f(that)h(e)-23 b(xist)485 b(for)h(that)-30 +60549 y(user)-85 b(.)315 b(Remo)-23 b(v)g(e)313 b(the)h(user')-85 +b(s)314 b(entry)g(from)21566 60549 y +SDict begin H.S end + 21566 60549 a 21566 +60549 a +SDict begin 18.2 H.A end + 21566 60549 a 21566 60549 a +SDict begin [ /View [/XYZ H.V] /Dest (4304) cvn H.B /DEST pdfmark end + 21566 60549 a FQ(/etc/passwd)307 +b FU(and)31322 60549 y +SDict begin H.S end + 31322 60549 a 31322 60549 a +SDict begin 18.2 H.A end + 31322 +60549 a 31322 60549 a +SDict begin [ /View [/XYZ H.V] /Dest (4305) cvn H.B /DEST pdfmark end + 31322 60549 a FQ(/etc/shadow)p +FU(,)h(and)314 b(remo)-23 b(v)g(e)313 b(the)i(login)-30 +62563 y(name)567 b(from)h(an)-23 b(y)567 b(groups)g(in)g(the)19278 +62563 y +SDict begin H.S end + 19278 62563 a 19278 62563 a +SDict begin 18.2 H.A end + 19278 62563 a 19278 +62563 a +SDict begin [ /View [/XYZ H.V] /Dest (4306) cvn H.B /DEST pdfmark end + 19278 62563 a FQ(/etc/group)561 b FU(\002le.)568 +b(If)g(you)f(wish,)g(delete)h(the)f(user')-85 b(s)567 +b(home)-30 64578 y(directory)-101 b(,)388 b(the)f(mail)g(spool)g +(\002le,)g(and)g(his)g(crontab)g(entry)g(\(if)h(the)-23 +b(y)387 b(e)-23 b(xist\).)-30 65688 y +SDict begin H.S end + -30 65688 a -30 +65688 a +SDict begin 18.2 H.A end + -30 65688 a -30 65688 a +SDict begin [ /View [/XYZ H.V] /Dest (4307) cvn H.B /DEST pdfmark end + -30 65688 a 1680 x FU(Remo)g(ving)386 +b(groups)h(is)g(similar:)f(remo)-23 b(v)g(e)387 b(the)g(group')-85 +b(s)387 b(entry)g(from)37221 67368 y +SDict begin H.S end + 37221 67368 a 37221 +67368 a +SDict begin 18.2 H.A end + 37221 67368 a 37221 67368 a +SDict begin [ /View [/XYZ H.V] /Dest (4308) cvn H.B /DEST pdfmark end + 37221 67368 a FQ(/etc/group)p +FU(.)-30 68478 y +SDict begin H.S end + -30 68478 a -30 68478 a +SDict begin 18.2 H.A end + -30 68478 a +-30 68478 a +SDict begin [ /View [/XYZ H.V] /Dest (ESSENTIAL-SYSADMIN-SHUTDOWN) +cvn H.B /DEST pdfmark end + -30 68478 a Black 5314 x FR(152)p Black eop +end +%%Page: 153 175 +TeXDict begin 153 174 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.153) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 24333 -1636 a FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 4132 a FL(12.3)620 +b(Shutting)g(Do)-33 b(wn)619 b(Pr)-45 b(operl)-33 b(y)-30 +4629 y +SDict begin H.S end + -30 4629 a -30 4629 a +SDict begin 18.2 H.A end + -30 4629 a -30 4629 a +SDict begin [ /View [/XYZ H.V] /Dest (4311) cvn H.B /DEST pdfmark end + -30 +4629 a -30 5744 a +SDict begin H.S end + -30 5744 a -30 5744 a +SDict begin 18.2 H.A end + -30 5744 a -30 +5744 a +SDict begin [ /View [/XYZ H.V] /Dest (4313) cvn H.B /DEST pdfmark end + -30 5744 a 1519 x FU(It)531 b(is)f(v)-23 b(ery)530 +b(important)g(that)g(you)g(shut)g(do)-39 b(wn)530 b(your)h(system)e +(properly)-101 b(.)531 b(Simply)e(turning)h(the)-30 9277 +y(po)-39 b(wer)543 b(of)-39 b(f)543 b(with)g(the)g(po)-39 +b(wer)543 b(switch)f(can)h(cause)g(serious)g(\002lesystem)e(damage.)j +(While)e(the)-30 11292 y(system)367 b(is)h(on,)g(\002les)f(are)i(in)e +(use)h(e)-39 b(v)-23 b(en)368 b(if)g(you)g(aren')-28 +b(t)368 b(doing)f(an)-23 b(ything.)367 b(Remember)g(that)h(there)-30 +13307 y(are)309 b(man)-23 b(y)308 b(processes)h(running)f(in)g(the)h +(background)f(all)h(the)f(time.)h(These)g(processes)f(are)h(man-)-30 +15321 y(aging)407 b(the)f(system)h(and)g(k)-15 b(eep)406 +b(a)h(lot)g(of)g(\002les)f(open.)h(When)g(the)g(system')-85 +b(s)406 b(po)-39 b(wer)407 b(is)g(switched)-30 17336 +y(of)-39 b(f,)534 b(these)f(\002les)f(are)h(not)g(closed)g(properly)f +(and)h(may)g(become)g(corrupted.)g(Depending)f(on)-30 +19351 y(what)409 b(\002les)g(become)g(damaged,)h(the)f(system)g(might)g +(be)g(rendered)h(completely)e(unusable!)h(In)-30 21365 +y(an)-23 b(y)484 b(case,)g(you')-15 b(ll)483 b(ha)-31 +b(v)-23 b(e)483 b(to)h(go)f(through)g(a)h(long)f(\002lesystem)g(check)h +(procedure)f(on)h(the)f(ne)-23 b(xt)-30 23380 y(reboot.)-30 +23395 y +SDict begin H.S end + -30 23395 a -30 23395 a +SDict begin 18.2 H.A end + -30 23395 a -30 23395 +a +SDict begin [ /View [/XYZ H.V] /Dest (4314) cvn H.B /DEST pdfmark end + -30 23395 a -30 23395 a +SDict begin H.S end + -30 23395 a -30 23395 a +SDict begin 18.2 H.A end + -30 +23395 a -30 23395 a +SDict begin [ /View [/XYZ H.V] /Dest (4316) cvn H.B /DEST pdfmark end + -30 23395 a -30 23395 a +SDict begin H.S end + -30 23395 +a -30 23395 a +SDict begin 16.9 H.A end + -30 23395 a -30 23395 a +SDict begin [ /View [/XYZ H.V] /Dest (4319) cvn H.B /DEST pdfmark end + -30 23395 a -30 +25720 a +SDict begin H.S end + -30 25720 a -30 25720 a +SDict begin 16.9 H.A end + -30 25720 a -30 25720 +a +SDict begin [ /View [/XYZ H.V] /Dest (4320) cvn H.B /DEST pdfmark end + -30 25720 a 3070 27575 a Fu(Note:)422 b Ft(If)f(y)-29 +b(ou)422 b(con\002gured)f(y)-29 b(our)422 b(system)e(with)i(a)f(jour)36 +b(nalling)424 b(\002lesystem,)c(lik)-29 b(e)422 b(e)-43 +b(xt3)422 b(or)3070 29446 y(reiserfs)-22 b(,)325 b(y)-29 +b(ou'll)326 b(be)f(par)58 b(tially)326 b(protected)f(from)f +(\002lesystem)g(damage)-22 b(,)325 b(and)g(y)-29 b(our)325 +b(\002lesys-)3070 31317 y(tem)514 b(chec)-29 b(k)513 +b(on)h(reboot)h(will)h(be)e(shor)58 b(ter)514 b(than)h(if)f(y)-29 +b(ou)514 b(had)h(used)f(a)g(\002lesystem)f(with-)3070 +33188 y(out)421 b(jour)36 b(nalling,)423 b(lik)-29 b(e)422 +b(e)-43 b(xt2.)421 b(Ho)-22 b(w)-14 b(e)-43 b(v)-36 b(er)-72 +b(,)421 b(this)g(saf)-43 b(ety)420 b(net)h(is)g(no)g(e)-43 +b(xcuse)420 b(f)-43 b(or)421 b(improper)22 b(ly)3070 +35058 y(shutting)330 b(do)-22 b(wn)330 b(y)-29 b(our)330 +b(system!)e(A)h(jour)36 b(nalling)332 b(FS)e(is)g(meant)f(to)h(protect) +g(y)-29 b(our)330 b(\002les)f(from)3070 36929 y(e)-43 +b(v)-36 b(ents)399 b(be)-29 b(y)g(ond)400 b(y)-29 b(our)401 +b(control,)f(not)h(from)f(y)-29 b(our)400 b(o)-22 b(wn)400 +b(laziness)-22 b(.)358 39719 y +SDict begin H.S end + 358 39719 a 358 39719 +a +SDict begin 18.2 H.A end + 358 39719 a 358 39719 a +SDict begin [ /View [/XYZ H.V] /Dest (4321) cvn H.B /DEST pdfmark end + 358 39719 a -30 41268 a +SDict begin H.S end + -30 +41268 a -30 41268 a +SDict begin 18.2 H.A end + -30 41268 a -30 41268 a +SDict begin [ /View [/XYZ H.V] /Dest (4323) cvn H.B /DEST pdfmark end + -30 41268 +a 2015 x FU(In)395 b(an)-23 b(y)395 b(case,)h(when)f(you)g(w)-15 +b(ant)395 b(to)g(reboot)g(or)g(po)-39 b(wer)396 b(do)-39 +b(wn)395 b(your)g(computer)-62 b(,)395 b(it)g(is)g(important)-30 +45298 y(to)448 b(do)h(so)f(properly)-101 b(.)449 b(There)f(are)h(se)-39 +b(v)-23 b(eral)449 b(w)-15 b(ays)447 b(of)i(doing)f(so;)g(you)g(can)h +(pick)f(whiche)-39 b(v)-23 b(er)448 b(one)-30 47312 y(you)414 +b(think)f(is)g(the)h(most)f(fun)h(\(or)f(least)h(amount)f(of)h(w)-15 +b(ork\).)413 b(Since)h(a)g(shutdo)-39 b(wn)413 b(and)g(a)h(reboot)-30 +49327 y(are)526 b(similar)e(procedures,)i(most)e(of)h(the)h(w)-15 +b(ays)524 b(for)h(po)-39 b(wering)525 b(of)-39 b(f)526 +b(the)f(system)g(can)g(also)g(be)-30 51342 y(applied)387 +b(to)g(rebooting.)-30 52452 y +SDict begin H.S end + -30 52452 a -30 52452 a +SDict begin 18.2 H.A end + +-30 52452 a -30 52452 a +SDict begin [ /View [/XYZ H.V] /Dest (4324) cvn H.B /DEST pdfmark end + -30 52452 a 1679 x FU(The)511 +b(\002rst)f(method)g(is)g(through)g(the)20254 54131 y +SDict begin H.S end + +20254 54131 a 20254 54131 a +SDict begin 18.2 H.A end + 20254 54131 a 20254 54131 +a +SDict begin [ /View [/XYZ H.V] /Dest (4325) cvn H.B /DEST pdfmark end + 20254 54131 a FP(shutdown)p FU(\(8\))g(program,)g(and)h(it)g(is)f +(probably)g(the)h(most)-30 56146 y(popular)-85 b(.)5436 +56146 y +SDict begin H.S end + 5436 56146 a 5436 56146 a +SDict begin 18.2 H.A end + 5436 56146 a 5436 56146 +a +SDict begin [ /View [/XYZ H.V] /Dest (4326) cvn H.B /DEST pdfmark end + 5436 56146 a FP(shutdown)429 b FU(can)h(be)f(used)h(to)f(reboot)g(or) +h(turn)f(of)-39 b(f)430 b(the)f(system)g(at)h(a)f(gi)-39 +b(v)-23 b(en)430 b(time,)f(and)-30 58161 y(can)447 b(display)e(a)i +(message)f(to)g(all)g(the)g(logged-in)g(users)g(of)g(the)g(system)g +(telling)f(them)h(that)g(the)-30 60175 y(system)387 b(is)g(going)f(do) +-39 b(wn.)-30 61286 y +SDict begin H.S end + -30 61286 a -30 61286 a +SDict begin 18.2 H.A end + -30 61286 +a -30 61286 a +SDict begin [ /View [/XYZ H.V] /Dest (4327) cvn H.B /DEST pdfmark end + -30 61286 a 1679 x FU(The)387 b(most)g(basic)g(use)g(of)h +(shutdo)-39 b(wn)386 b(to)h(po)-39 b(wer)388 b(do)-39 +b(wn)387 b(the)g(computer)g(is:)-30 64850 y +SDict begin H.S end + -30 64850 +a -30 64850 a +SDict begin 14.56 H.A end + -30 64850 a -30 64850 a +SDict begin [ /View [/XYZ H.V] /Dest (4328) cvn H.B /DEST pdfmark end + -30 64850 a -30 +64850 a +SDict begin H.S end + -30 64850 a -30 64850 a +SDict begin 14.56 H.A end + -30 64850 a -30 64850 +a +SDict begin [ /View [/XYZ H.V] /Dest (4329) cvn H.B /DEST pdfmark end + -30 64850 a 1276 x FJ(#)1309 66126 y +SDict begin H.S end + 1309 66126 a 1309 +66126 a +SDict begin 14.56 H.A end + 1309 66126 a 1309 66126 a +SDict begin [ /View [/XYZ H.V] /Dest (4330) cvn H.B /DEST pdfmark end + 1309 66126 a FH(shutdown)743 +b(-h)h(now)p Black 49451 73792 a FR(153)p Black eop end +%%Page: 154 176 +TeXDict begin 154 175 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.154) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a +-30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4331) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(In)459 +b(this)f(case,)h(we)g(are)g(not)f(going)g(to)g(send)h(a)g(custom)e +(message)i(to)f(the)g(users;)h(the)-23 b(y)458 b(will)g(see)-30 +5626 y +SDict begin H.S end + -30 5626 a -30 5626 a +SDict begin 18.2 H.A end + -30 5626 a -30 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (4332) cvn H.B /DEST pdfmark end + -30 +5626 a FP(shutdown)p FU(')-85 b(s)519 b(def)-15 b(ault)519 +b(message.)18441 5626 y +SDict begin H.S end + 18441 5626 a 18441 5626 a +SDict begin 18.2 H.A end + 18441 +5626 a 18441 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (4333) cvn H.B /DEST pdfmark end + 18441 5626 a FU(\223)19129 5626 y +SDict begin H.S end + +19129 5626 a 19129 5626 a +SDict begin 18.2 H.A end + 19129 5626 a 19129 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (4334) cvn H.B /DEST pdfmark end + 19129 +5626 a FP(now)p FU(\224)h(is)g(the)g(time)g(that)g(we)g(w)-15 +b(ant)519 b(to)h(shutdo)-39 b(wn,)520 b(and)g(the)-30 +7640 y +SDict begin H.S end + -30 7640 a -30 7640 a +SDict begin 18.2 H.A end + -30 7640 a -30 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (4335) cvn H.B /DEST pdfmark end + -30 +7640 a FU(\223)658 7640 y +SDict begin H.S end + 658 7640 a 658 7640 a +SDict begin 18.2 H.A end + 658 7640 +a 658 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (4336) cvn H.B /DEST pdfmark end + 658 7640 a FP(-h)p FU(\224)492 b(means)g(to)g(halt)f(the)h +(system.)g(This)f(is)h(not)g(a)g(v)-23 b(ery)492 b(friendly)f(w)-15 +b(ay)492 b(to)g(run)g(a)g(multi-user)-30 9655 y(system,)305 +b(b)-31 b(ut)306 b(it)f(w)-15 b(orks)305 b(just)g(\002ne)h(on)f(your)h +(home)f(computer)-85 b(.)305 b(A)h(better)g(method)f(on)g(a)h +(multiuser)-30 11670 y(system)387 b(w)-15 b(ould)386 +b(be)h(to)g(gi)-39 b(v)-23 b(e)388 b(e)-39 b(v)-23 b(eryone)387 +b(a)g(little)g(adv)-39 b(ance)387 b(w)-15 b(arning:)-30 +13555 y +SDict begin H.S end + -30 13555 a -30 13555 a +SDict begin 14.56 H.A end + -30 13555 a -30 13555 +a +SDict begin [ /View [/XYZ H.V] /Dest (4337) cvn H.B /DEST pdfmark end + -30 13555 a -30 13555 a +SDict begin H.S end + -30 13555 a -30 13555 a +SDict begin 14.56 H.A end + -30 +13555 a -30 13555 a +SDict begin [ /View [/XYZ H.V] /Dest (4338) cvn H.B /DEST pdfmark end + -30 13555 a 1276 x FJ(#)1309 14831 +y +SDict begin H.S end + 1309 14831 a 1309 14831 a +SDict begin 14.56 H.A end + 1309 14831 a 1309 14831 a +SDict begin [ /View [/XYZ H.V] /Dest (4339) cvn H.B /DEST pdfmark end + +1309 14831 a FH(shutdown)743 b(-h)h(+60)-30 16406 y +SDict begin H.S end + -30 +16406 a -30 16406 a +SDict begin 18.2 H.A end + -30 16406 a -30 16406 a +SDict begin [ /View [/XYZ H.V] /Dest (4340) cvn H.B /DEST pdfmark end + -30 16406 +a 1990 x FU(This)369 b(w)-15 b(ould)368 b(shutdo)-39 +b(wn)368 b(the)h(system)g(in)g(one)g(hour)g(\(60)g(minutes\),)g(which)f +(w)-15 b(ould)368 b(be)i(just)e(\002ne)-30 20410 y(on)410 +b(a)g(normal)g(multiuser)f(system.)h(V)-93 b(ital)410 +b(systems)f(should)g(ha)-31 b(v)-23 b(e)410 b(their)g(do)-39 +b(wntime)409 b(scheduled)-30 22425 y(f)-15 b(ar)350 b(in)f(adv)-39 +b(ance,)351 b(and)f(you)f(should)h(post)f(w)-15 b(arnings)349 +b(about)g(the)h(do)-39 b(wntime)349 b(in)h(an)-23 b(y)349 +b(appropriate)-30 24440 y(locations)387 b(used)g(for)g(system)g +(noti\002cations)e(\(email,)j(b)-31 b(ulletin)386 b(board,)38250 +24440 y +SDict begin H.S end + 38250 24440 a 38250 24440 a +SDict begin 18.2 H.A end + 38250 24440 a 38250 +24440 a +SDict begin [ /View [/XYZ H.V] /Dest (4341) cvn H.B /DEST pdfmark end + 38250 24440 a FQ(/etc/motd)p FU(,)c(whate)-39 +b(v)-23 b(er\).)-30 25550 y +SDict begin H.S end + -30 25550 a -30 25550 a +SDict begin 18.2 H.A end + -30 +25550 a -30 25550 a +SDict begin [ /View [/XYZ H.V] /Dest (4342) cvn H.B /DEST pdfmark end + -30 25550 a 1679 x FU(Rebooting)386 +b(the)h(system)g(uses)g(the)g(same)g(command,)g(b)-31 +b(ut)387 b(substitutes)38854 27229 y +SDict begin H.S end + 38854 27229 a 38854 +27229 a +SDict begin 18.2 H.A end + 38854 27229 a 38854 27229 a +SDict begin [ /View [/XYZ H.V] /Dest (4343) cvn H.B /DEST pdfmark end + 38854 27229 a FU(\223)39542 +27229 y +SDict begin H.S end + 39542 27229 a 39542 27229 a +SDict begin 18.2 H.A end + 39542 27229 a 39542 +27229 a +SDict begin [ /View [/XYZ H.V] /Dest (4344) cvn H.B /DEST pdfmark end + 39542 27229 a FP(-r)p FU(\224)h(for)44300 27229 +y +SDict begin H.S end + 44300 27229 a 44300 27229 a +SDict begin 18.2 H.A end + 44300 27229 a 44300 27229 +a +SDict begin [ /View [/XYZ H.V] /Dest (4345) cvn H.B /DEST pdfmark end + 44300 27229 a FU(\223)44988 27229 y +SDict begin H.S end + 44988 27229 a 44988 +27229 a +SDict begin 18.2 H.A end + 44988 27229 a 44988 27229 a +SDict begin [ /View [/XYZ H.V] /Dest (4346) cvn H.B /DEST pdfmark end + 44988 27229 a FP(-h)p +FU(\224:)-30 29114 y +SDict begin H.S end + -30 29114 a -30 29114 a +SDict begin 14.56 H.A end + -30 29114 +a -30 29114 a +SDict begin [ /View [/XYZ H.V] /Dest (4347) cvn H.B /DEST pdfmark end + -30 29114 a -30 29114 a +SDict begin H.S end + -30 29114 a -30 +29114 a +SDict begin 14.56 H.A end + -30 29114 a -30 29114 a +SDict begin [ /View [/XYZ H.V] /Dest (4348) cvn H.B /DEST pdfmark end + -30 29114 a 1277 x FJ(#)1309 +30391 y +SDict begin H.S end + 1309 30391 a 1309 30391 a +SDict begin 14.56 H.A end + 1309 30391 a 1309 30391 +a +SDict begin [ /View [/XYZ H.V] /Dest (4349) cvn H.B /DEST pdfmark end + 1309 30391 a FH(shutdown)743 b(-r)h(now)-30 31965 y +SDict begin H.S end + +-30 31965 a -30 31965 a +SDict begin 18.2 H.A end + -30 31965 a -30 31965 a +SDict begin [ /View [/XYZ H.V] /Dest (4350) cvn H.B /DEST pdfmark end + -30 31965 +a 1990 x FU(Y)-170 b(ou)527 b(can)h(use)f(same)h(time)f(notation)g +(with)24155 33955 y +SDict begin H.S end + 24155 33955 a 24155 33955 a +SDict begin 18.2 H.A end + 24155 +33955 a 24155 33955 a +SDict begin [ /View [/XYZ H.V] /Dest (4351) cvn H.B /DEST pdfmark end + 24155 33955 a FP(shutdown)743 b(-r)528 +b FU(that)f(you)g(could)h(with)45825 33955 y +SDict begin H.S end + 45825 33955 +a 45825 33955 a +SDict begin 18.2 H.A end + 45825 33955 a 45825 33955 a +SDict begin [ /View [/XYZ H.V] /Dest (4352) cvn H.B /DEST pdfmark end + 45825 33955 +a FP(shutdown)-30 35970 y(-h)p FU(.)390 b(There)f(are)h(a)f(lot)g(of)h +(other)f(things)f(that)h(you)g(can)h(do)f(with)34109 +35970 y +SDict begin H.S end + 34109 35970 a 34109 35970 a +SDict begin 18.2 H.A end + 34109 35970 a 34109 +35970 a +SDict begin [ /View [/XYZ H.V] /Dest (4353) cvn H.B /DEST pdfmark end + 34109 35970 a FP(shutdown)f FU(to)h(control)g(when)g(to)-30 +37984 y(halt)e(or)g(reboot)g(the)h(machine;)e(see)i(the)f(man)g(page)g +(for)h(more)f(details.)-30 39095 y +SDict begin H.S end + -30 39095 a -30 39095 +a +SDict begin 18.2 H.A end + -30 39095 a -30 39095 a +SDict begin [ /View [/XYZ H.V] /Dest (4354) cvn H.B /DEST pdfmark end + -30 39095 a 1679 x FU(The)349 +b(second)f(w)-15 b(ay)349 b(of)f(shutting)g(do)-39 b(wn)349 +b(or)f(po)-39 b(wering)349 b(of)-39 b(f)349 b(the)g(computer)f(is)g(to) +h(use)g(the)46993 40774 y +SDict begin H.S end + 46993 40774 a 46993 40774 a +SDict begin 18.2 H.A end + +46993 40774 a 46993 40774 a +SDict begin [ /View [/XYZ H.V] /Dest (4355) cvn H.B /DEST pdfmark end + 46993 40774 a FP(halt)p FU(\(8\))-30 +42789 y(and)2751 42789 y +SDict begin H.S end + 2751 42789 a 2751 42789 a +SDict begin 18.2 H.A end + 2751 +42789 a 2751 42789 a +SDict begin [ /View [/XYZ H.V] /Dest (4356) cvn H.B /DEST pdfmark end + 2751 42789 a FP(reboot)p FU(\(8\))542 +b(commands.)g(As)h(the)g(names)f(indicate,)32250 42789 +y +SDict begin H.S end + 32250 42789 a 32250 42789 a +SDict begin 18.2 H.A end + 32250 42789 a 32250 42789 +a +SDict begin [ /View [/XYZ H.V] /Dest (4357) cvn H.B /DEST pdfmark end + 32250 42789 a FP(halt)h FU(will)f(immediately)g(halt)g(the)-30 +44803 y(operating)358 b(system,)f(and)13828 44803 y +SDict begin H.S end + 13828 +44803 a 13828 44803 a +SDict begin 18.2 H.A end + 13828 44803 a 13828 44803 a +SDict begin [ /View [/XYZ H.V] /Dest (4358) cvn H.B /DEST pdfmark end + 13828 +44803 a FP(reboot)g FU(will)h(reboot)g(the)f(system.)h(\()33555 +44803 y +SDict begin H.S end + 33555 44803 a 33555 44803 a +SDict begin 18.2 H.A end + 33555 44803 a 33555 +44803 a +SDict begin [ /View [/XYZ H.V] /Dest (4359) cvn H.B /DEST pdfmark end + 33555 44803 a FP(reboot)g FU(is)f(actually)h(just)f(a)h(sym-) +-30 46818 y(bolic)387 b(link)g(to)7849 46818 y +SDict begin H.S end + 7849 46818 +a 7849 46818 a +SDict begin 18.2 H.A end + 7849 46818 a 7849 46818 a +SDict begin [ /View [/XYZ H.V] /Dest (4360) cvn H.B /DEST pdfmark end + 7849 46818 a +FP(halt)p FU(.\))g(The)-23 b(y)387 b(are)h(in)-62 b(v)-31 +b(ok)-15 b(ed)386 b(lik)-15 b(e)387 b(so:)-30 48703 y +SDict begin H.S end + +-30 48703 a -30 48703 a +SDict begin 14.56 H.A end + -30 48703 a -30 48703 a +SDict begin [ /View [/XYZ H.V] /Dest (4361) cvn H.B /DEST pdfmark end + -30 48703 +a -30 48703 a +SDict begin H.S end + -30 48703 a -30 48703 a +SDict begin 14.56 H.A end + -30 48703 a -30 +48703 a +SDict begin [ /View [/XYZ H.V] /Dest (4362) cvn H.B /DEST pdfmark end + -30 48703 a 1276 x FJ(#)1309 49979 y +SDict begin H.S end + 1309 49979 +a 1309 49979 a +SDict begin 14.56 H.A end + 1309 49979 a 1309 49979 a +SDict begin [ /View [/XYZ H.V] /Dest (4363) cvn H.B /DEST pdfmark end + 1309 49979 a +FH(halt)-30 50004 y +SDict begin H.S end + -30 50004 a -30 50004 a +SDict begin 14.56 H.A end + -30 50004 +a -30 50004 a +SDict begin [ /View [/XYZ H.V] /Dest (4364) cvn H.B /DEST pdfmark end + -30 50004 a 1587 x FJ(#)1309 51591 y +SDict begin H.S end + 1309 +51591 a 1309 51591 a +SDict begin 14.56 H.A end + 1309 51591 a 1309 51591 a +SDict begin [ /View [/XYZ H.V] /Dest (4365) cvn H.B /DEST pdfmark end + 1309 51591 +a FH(reboot)-30 51616 y +SDict begin H.S end + -30 51616 a -30 51616 a +SDict begin 18.2 H.A end + -30 51616 +a -30 51616 a +SDict begin [ /View [/XYZ H.V] /Dest (4366) cvn H.B /DEST pdfmark end + -30 51616 a -30 51616 a +SDict begin H.S end + -30 51616 a -30 +51616 a +SDict begin 18.2 H.A end + -30 51616 a -30 51616 a +SDict begin [ /View [/XYZ H.V] /Dest (4368) cvn H.B /DEST pdfmark end + -30 51616 a -30 53166 +a +SDict begin H.S end + -30 53166 a -30 53166 a +SDict begin 18.2 H.A end + -30 53166 a -30 53166 a +SDict begin [ /View [/XYZ H.V] /Dest (4370) cvn H.B /DEST pdfmark end + -30 +53166 a 1990 x FU(A)447 b(lo)-39 b(wer)-31 b(-le)-39 +b(v)-23 b(el)447 b(w)-15 b(ay)446 b(to)g(reboot)h(or)g(shutdo)-39 +b(wn)446 b(the)h(system)f(is)g(to)h(talk)f(directly)h(to)45985 +55156 y +SDict begin H.S end + 45985 55156 a 45985 55156 a +SDict begin 18.2 H.A end + 45985 55156 a 45985 +55156 a +SDict begin [ /View [/XYZ H.V] /Dest (4371) cvn H.B /DEST pdfmark end + 45985 55156 a FP(init)p FU(.)g(All)-30 57170 +y(the)d(other)g(methods)g(are)g(simply)f(con)-62 b(v)-23 +b(enient)444 b(w)-15 b(ays)443 b(to)h(talk)g(to)35476 +57170 y +SDict begin H.S end + 35476 57170 a 35476 57170 a +SDict begin 18.2 H.A end + 35476 57170 a 35476 +57170 a +SDict begin [ /View [/XYZ H.V] /Dest (4372) cvn H.B /DEST pdfmark end + 35476 57170 a FP(init)p FU(,)g(b)-31 b(ut)444 +b(you)g(can)g(directly)-30 59185 y(tell)518 b(it)g(what)g(to)f(do)h +(using)15048 59185 y +SDict begin H.S end + 15048 59185 a 15048 59185 a +SDict begin 18.2 H.A end + 15048 +59185 a 15048 59185 a +SDict begin [ /View [/XYZ H.V] /Dest (4373) cvn H.B /DEST pdfmark end + 15048 59185 a FP(telinit)p FU(\(8\))f(\(note)h +(that)g(it)g(only)f(has)h(one)39120 59185 y +SDict begin H.S end + 39120 59185 +a 39120 59185 a +SDict begin 18.2 H.A end + 39120 59185 a 39120 59185 a +SDict begin [ /View [/XYZ H.V] /Dest (4374) cvn H.B /DEST pdfmark end + 39120 59185 +a FU(\223l\224\).)g(Using)46569 59185 y +SDict begin H.S end + 46569 59185 a +46569 59185 a +SDict begin 18.2 H.A end + 46569 59185 a 46569 59185 a +SDict begin [ /View [/XYZ H.V] /Dest (4375) cvn H.B /DEST pdfmark end + 46569 59185 +a FP(telinit)-30 61200 y FU(will)397 b(tell)5158 61200 +y +SDict begin H.S end + 5158 61200 a 5158 61200 a +SDict begin 18.2 H.A end + 5158 61200 a 5158 61200 a +SDict begin [ /View [/XYZ H.V] /Dest (4376) cvn H.B /DEST pdfmark end + +5158 61200 a FP(init)g FU(what)h(runle)-39 b(v)-23 b(el)397 +b(to)h(drop)f(into,)h(which)f(will)h(cause)f(a)h(special)g(script)f(to) +h(be)g(run.)-30 63214 y(This)458 b(script)f(will)g(kill)h(or)g(spa)-23 +b(wn)457 b(processes)h(as)g(needed)g(for)g(that)f(runle)-39 +b(v)-23 b(el.)458 b(This)g(w)-15 b(orks)457 b(for)-30 +65229 y(rebooting)387 b(and)g(shutting)f(do)-39 b(wn)387 +b(because)h(both)f(of)g(those)g(are)g(special)g(runle)-39 +b(v)-23 b(els.)-30 67114 y +SDict begin H.S end + -30 67114 a -30 67114 a +SDict begin 14.56 H.A end + -30 +67114 a -30 67114 a +SDict begin [ /View [/XYZ H.V] /Dest (4377) cvn H.B /DEST pdfmark end + -30 67114 a -30 67114 a +SDict begin H.S end + -30 67114 +a -30 67114 a +SDict begin 14.56 H.A end + -30 67114 a -30 67114 a +SDict begin [ /View [/XYZ H.V] /Dest (4378) cvn H.B /DEST pdfmark end + -30 67114 a 1276 +x FJ(#)1309 68390 y +SDict begin H.S end + 1309 68390 a 1309 68390 a +SDict begin 14.56 H.A end + 1309 68390 +a 1309 68390 a +SDict begin [ /View [/XYZ H.V] /Dest (4379) cvn H.B /DEST pdfmark end + 1309 68390 a FH(telinit)743 b(0)p Black +-30 73792 a FR(154)p Black eop end +%%Page: 155 177 +TeXDict begin 155 176 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.155) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 24333 -1636 a FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black -30 2504 a +SDict begin H.S end + -30 2504 a +-30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4380) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(Runle)-39 +b(v)-23 b(el)537 b(0)g(is)h(halt)f(mode.)g(T)-108 b(elling)21063 +3611 y +SDict begin H.S end + 21063 3611 a 21063 3611 a +SDict begin 18.2 H.A end + 21063 3611 a 21063 3611 +a +SDict begin [ /View [/XYZ H.V] /Dest (4381) cvn H.B /DEST pdfmark end + 21063 3611 a FP(init)537 b FU(to)g(enter)h(runle)-39 +b(v)-23 b(el)537 b(0)g(will)g(cause)h(all)f(processes)-30 +5626 y(to)440 b(be)g(killed)g(of)-39 b(f,)441 b(the)f(\002lesystems)f +(unmounted,)g(and)i(the)f(machine)f(to)h(be)h(halted.)f(This)g(is)g(a) +-30 7640 y(perfectly)497 b(acceptable)f(w)-15 b(ay)496 +b(to)g(bring)h(do)-39 b(wn)496 b(the)g(system.)h(On)f(man)-23 +b(y)496 b(laptops)g(and)g(modern)-30 9655 y(desktop)387 +b(computers,)g(this)g(will)f(also)h(cause)h(the)f(machine)g(to)g(be)g +(turned)g(of)-39 b(f.)-30 11540 y +SDict begin H.S end + -30 11540 a -30 11540 +a +SDict begin 14.56 H.A end + -30 11540 a -30 11540 a +SDict begin [ /View [/XYZ H.V] /Dest (4382) cvn H.B /DEST pdfmark end + -30 11540 a -30 11540 a +SDict begin H.S end + -30 +11540 a -30 11540 a +SDict begin 14.56 H.A end + -30 11540 a -30 11540 a +SDict begin [ /View [/XYZ H.V] /Dest (4383) cvn H.B /DEST pdfmark end + -30 11540 +a 1277 x FJ(#)1309 12817 y +SDict begin H.S end + 1309 12817 a 1309 12817 a +SDict begin 14.56 H.A end + +1309 12817 a 1309 12817 a +SDict begin [ /View [/XYZ H.V] /Dest (4384) cvn H.B /DEST pdfmark end + 1309 12817 a FH(telinit)743 +b(6)-30 14391 y +SDict begin H.S end + -30 14391 a -30 14391 a +SDict begin 18.2 H.A end + -30 14391 a -30 +14391 a +SDict begin [ /View [/XYZ H.V] /Dest (4385) cvn H.B /DEST pdfmark end + -30 14391 a 1990 x FU(Runle)-39 b(v)-23 b(el)466 +b(6)h(is)f(reboot)h(mode.)g(All)f(processes)h(will)f(be)h(killed)f(of) +-39 b(f,)468 b(the)e(\002lesystems)g(will)g(be)-30 18396 +y(unmounted,)350 b(and)g(the)g(machine)g(will)g(be)g(rebooted.)g(This)g +(is)g(a)g(perfectly)g(acceptable)h(method)-30 20410 y(of)387 +b(rebooting)g(the)g(system.)-30 21521 y +SDict begin H.S end + -30 21521 a -30 +21521 a +SDict begin 18.2 H.A end + -30 21521 a -30 21521 a +SDict begin [ /View [/XYZ H.V] /Dest (4386) cvn H.B /DEST pdfmark end + -30 21521 a 1679 x FU(F)-23 +b(or)596 b(the)h(curious,)g(when)g(switching)f(to)g(runle)-39 +b(v)-23 b(el)597 b(0)g(or)f(6,)i(whether)e(by)h(using)45437 +23200 y +SDict begin H.S end + 45437 23200 a 45437 23200 a +SDict begin 18.2 H.A end + 45437 23200 a 45437 +23200 a +SDict begin [ /View [/XYZ H.V] /Dest (4387) cvn H.B /DEST pdfmark end + 45437 23200 a FP(shutdown)p FU(,)-30 25215 y +SDict begin H.S end + +-30 25215 a -30 25215 a +SDict begin 18.2 H.A end + -30 25215 a -30 25215 a +SDict begin [ /View [/XYZ H.V] /Dest (4388) cvn H.B /DEST pdfmark end + -30 25215 +a FP(halt)p FU(,)324 b(or)5272 25215 y +SDict begin H.S end + 5272 25215 a 5272 +25215 a +SDict begin 18.2 H.A end + 5272 25215 a 5272 25215 a +SDict begin [ /View [/XYZ H.V] /Dest (4389) cvn H.B /DEST pdfmark end + 5272 25215 a FP(reboot)p +FU(,)g(the)g(script)16432 25215 y +SDict begin H.S end + 16432 25215 a 16432 +25215 a +SDict begin 18.2 H.A end + 16432 25215 a 16432 25215 a +SDict begin [ /View [/XYZ H.V] /Dest (4390) cvn H.B /DEST pdfmark end + 16432 25215 a FQ(/etc/rc.d/rc.6)315 +b FU(is)324 b(run.)g(\(The)g(script)36677 25215 y +SDict begin H.S end + 36677 +25215 a 36677 25215 a +SDict begin 18.2 H.A end + 36677 25215 a 36677 25215 a +SDict begin [ /View [/XYZ H.V] /Dest (4391) cvn H.B /DEST pdfmark end + 36677 +25215 a FQ(/etc/rc.d/rc.0)316 b FU(is)323 b(another)-30 +27229 y(symbolic)445 b(link,)i(to)10997 27229 y +SDict begin H.S end + 10997 +27229 a 10997 27229 a +SDict begin 18.2 H.A end + 10997 27229 a 10997 27229 a +SDict begin [ /View [/XYZ H.V] /Dest (4392) cvn H.B /DEST pdfmark end + 10997 +27229 a FQ(/etc/rc.d/rc.6)p FU(.\))438 b(Y)-170 b(ou)446 +b(can)g(customize)g(this)g(\002le)g(to)g(your)g(tastes--b)-31 +b(ut)446 b(be)-30 29244 y(sure)387 b(to)h(test)e(your)i(changes)f +(carefully!)-30 30354 y +SDict begin H.S end + -30 30354 a -30 30354 a +SDict begin 18.2 H.A end + -30 30354 +a -30 30354 a +SDict begin [ /View [/XYZ H.V] /Dest (4393) cvn H.B /DEST pdfmark end + -30 30354 a 1679 x FU(There)585 b(is)f(one)h(last)f +(method)g(of)h(rebooting)e(the)i(system.)f(All)g(the)h(other)f(methods) +g(require)-30 34048 y(you)483 b(to)g(be)h(logged)e(in)h(as)14579 +34048 y +SDict begin H.S end + 14579 34048 a 14579 34048 a +SDict begin 18.2 H.A end + 14579 34048 a 14579 +34048 a +SDict begin [ /View [/XYZ H.V] /Dest (4394) cvn H.B /DEST pdfmark end + 14579 34048 a FP(root)p FU(.)g(Ho)-39 b(we)g(v)-23 +b(er)-62 b(,)484 b(it)f(is)g(possible)g(to)g(reboot)g(the)g(machine)g +(e)-39 b(v)-23 b(en)483 b(if)-30 36063 y(you)361 b(aren')-28 +b(t)362 b(root,)f(pro)-23 b(vided)361 b(that)g(you)g(ha)-31 +b(v)-23 b(e)362 b(ph)-8 b(ysical)361 b(access)g(to)g(the)h(k)-15 +b(e)-23 b(yboard.)361 b(Using)48504 36063 y +SDict begin H.S end + 48504 36063 +a 48504 36063 a +SDict begin 18.2 H.A end + 48504 36063 a 48504 36063 a +SDict begin [ /View [/XYZ H.V] /Dest (4395) cvn H.B /DEST pdfmark end + 48504 36063 +a 48504 36063 a +SDict begin H.S end + 48504 36063 a 48504 36063 a +SDict begin 18.2 H.A end + 48504 36063 +a 48504 36063 a +SDict begin [ /View [/XYZ H.V] /Dest (4396) cvn H.B /DEST pdfmark end + 48504 36063 a FX(Con-)-30 38077 y(tr)-28 +b(ol)p FU(+)3226 38077 y +SDict begin H.S end + 3226 38077 a 3226 38077 a +SDict begin 18.2 H.A end + 3226 +38077 a 3226 38077 a +SDict begin [ /View [/XYZ H.V] /Dest (4397) cvn H.B /DEST pdfmark end + 3226 38077 a FX(Alt)p FU(+)6166 +38077 y +SDict begin H.S end + 6166 38077 a 6166 38077 a +SDict begin 18.2 H.A end + 6166 38077 a 6166 38077 +a +SDict begin [ /View [/XYZ H.V] /Dest (4398) cvn H.B /DEST pdfmark end + 6166 38077 a FX(Delete)337 b FU(\(the)f("three-\002ngered)g +(salute"\))h(will)f(cause)g(the)h(machine)f(to)g(immediately)-30 +40092 y(reboot.)429 b(\(Behind)e(the)h(scenes,)h(the)19672 +40092 y +SDict begin H.S end + 19672 40092 a 19672 40092 a +SDict begin 18.2 H.A end + 19672 40092 a 19672 +40092 a +SDict begin [ /View [/XYZ H.V] /Dest (4399) cvn H.B /DEST pdfmark end + 19672 40092 a FP(shutdown)f FU(command)f(is)h(called)g(for)h +(you)f(when)g(you)g(use)-30 42107 y +SDict begin H.S end + -30 42107 a -30 42107 +a +SDict begin 18.2 H.A end + -30 42107 a -30 42107 a +SDict begin [ /View [/XYZ H.V] /Dest (4400) cvn H.B /DEST pdfmark end + -30 42107 a -30 42107 a +SDict begin H.S end + -30 +42107 a -30 42107 a +SDict begin 18.2 H.A end + -30 42107 a -30 42107 a +SDict begin [ /View [/XYZ H.V] /Dest (4401) cvn H.B /DEST pdfmark end + -30 42107 +a FX(Contr)-28 b(ol)p FU(+)5982 42107 y +SDict begin H.S end + 5982 42107 a +5982 42107 a +SDict begin 18.2 H.A end + 5982 42107 a 5982 42107 a +SDict begin [ /View [/XYZ H.V] /Dest (4402) cvn H.B /DEST pdfmark end + 5982 42107 a FX(Alt)p +FU(+)8922 42107 y +SDict begin H.S end + 8922 42107 a 8922 42107 a +SDict begin 18.2 H.A end + 8922 42107 +a 8922 42107 a +SDict begin [ /View [/XYZ H.V] /Dest (4403) cvn H.B /DEST pdfmark end + 8922 42107 a FX(Delete)p FU(.\))310 b(The)g(salute)f +(doesn')-28 b(t)309 b(al)-15 b(w)g(ays)309 b(w)-15 b(ork)309 +b(when)h(using)f(X)h(W)-62 b(indo)-39 b(ws--you)-30 44121 +y(may)498 b(need)h(to)f(use)10830 44121 y +SDict begin H.S end + 10830 44121 +a 10830 44121 a +SDict begin 18.2 H.A end + 10830 44121 a 10830 44121 a +SDict begin [ /View [/XYZ H.V] /Dest (4404) cvn H.B /DEST pdfmark end + 10830 44121 +a 10830 44121 a +SDict begin H.S end + 10830 44121 a 10830 44121 a +SDict begin 18.2 H.A end + 10830 44121 +a 10830 44121 a +SDict begin [ /View [/XYZ H.V] /Dest (4405) cvn H.B /DEST pdfmark end + 10830 44121 a FX(Contr)-28 b(ol)p FU(+)16842 +44121 y +SDict begin H.S end + 16842 44121 a 16842 44121 a +SDict begin 18.2 H.A end + 16842 44121 a 16842 +44121 a +SDict begin [ /View [/XYZ H.V] /Dest (4406) cvn H.B /DEST pdfmark end + 16842 44121 a FX(Alt)p FU(+)19782 44121 y +SDict begin H.S end + 19782 +44121 a 19782 44121 a +SDict begin 18.2 H.A end + 19782 44121 a 19782 44121 a +SDict begin [ /View [/XYZ H.V] /Dest (4407) cvn H.B /DEST pdfmark end + 19782 +44121 a FX(F1)498 b FU(\(or)g(another)g(Function)g(k)-15 +b(e)-23 b(y\))497 b(to)i(switch)e(to)i(a)f(non-X)-30 +46136 y(W)-62 b(indo)-39 b(ws)387 b(terminal)g(before)g(using)g(it.)-30 +47246 y +SDict begin H.S end + -30 47246 a -30 47246 a +SDict begin 18.2 H.A end + -30 47246 a -30 47246 +a +SDict begin [ /View [/XYZ H.V] /Dest (4408) cvn H.B /DEST pdfmark end + -30 47246 a 1680 x FU(Finally)-101 b(,)441 b(the)g(\002le)f(that)h +(ultimately)f(controls)g(e)-39 b(v)-23 b(ery)441 b(aspect)g(of)g +(startup)f(and)h(shutdo)-39 b(wn)440 b(is)h(the)-30 50940 +y +SDict begin H.S end + -30 50940 a -30 50940 a +SDict begin 18.2 H.A end + -30 50940 a -30 50940 a +SDict begin [ /View [/XYZ H.V] /Dest (4409) cvn H.B /DEST pdfmark end + -30 +50940 a FQ(/etc/inittab)p FU(\(5\))474 b(\002le.)481 +b(In)h(general,)g(you)f(should)f(not)h(need)h(to)f(modify)g(this)g +(\002le,)g(b)-31 b(ut)481 b(it)g(may)-30 52955 y(gi)-39 +b(v)-23 b(e)336 b(you)h(insight)e(into)h(wh)-8 b(y)337 +b(some)f(things)g(w)-15 b(ork)336 b(the)g(w)-15 b(ay)336 +b(the)-23 b(y)336 b(do.)h(As)f(al)-15 b(w)g(ays,)336 +b(see)h(the)f(man)-30 54970 y(pages)387 b(for)h(further)f(details.)p +Black 49451 73792 a FR(155)p Black eop end +%%Page: 156 178 +TeXDict begin 156 177 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.156) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(12)g(Essential)f(System)h +(Administr)-23 b(ation)p Black Black -30 73792 a(156)p +Black eop end +%%Page: 157 179 +TeXDict begin 157 178 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.157) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS) cvn H.B +/DEST pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(13)-30 10743 y FO(Basic)1286 b(Netw)-93 b(ork)-30 16759 +y(Commands)p -30 24332 51806 56 v -30 24332 a +SDict begin H.S end + -30 24332 +a -30 24332 a +SDict begin 18.2 H.A end + -30 24332 a -30 24332 a +SDict begin [ /View [/XYZ H.V] /Dest (4412) cvn H.B /DEST pdfmark end + -30 24332 a -30 +25107 a +SDict begin H.S end + -30 25107 a -30 25107 a +SDict begin 18.2 H.A end + -30 25107 a -30 25107 +a +SDict begin [ /View [/XYZ H.V] /Dest (4414) cvn H.B /DEST pdfmark end + -30 25107 a 1051 x FU(A)383 b(netw)-15 b(ork)383 b(consists)f(of)i +(se)-39 b(v)-23 b(eral)383 b(computers)f(connected)h(together)-85 +b(.)383 b(The)h(netw)-15 b(ork)382 b(can)i(be)f(as)-30 +28172 y(simple)391 b(as)h(a)f(fe)-39 b(w)393 b(computers)d(connected)i +(in)f(your)h(home)f(or)h(of)-39 b(\002ce,)392 b(or)g(as)f(complicated)g +(as)h(a)-30 30187 y(lar)-28 b(ge)433 b(uni)-39 b(v)-23 +b(ersity)431 b(netw)-15 b(ork)431 b(or)i(e)-39 b(v)-23 +b(en)432 b(the)h(entire)f(Internet.)g(When)h(your)f(computer)f(is)i +(part)f(of)-30 32202 y(a)420 b(netw)-15 b(ork,)418 b(you)h(ha)-31 +b(v)-23 b(e)419 b(access)h(to)f(those)g(systems)f(either)h(directly)g +(or)g(through)g(services)g(lik)-15 b(e)-30 34216 y(mail)387 +b(and)g(the)g(web)-62 b(.)-30 35007 y +SDict begin H.S end + -30 35007 a -30 +35007 a +SDict begin 18.2 H.A end + -30 35007 a -30 35007 a +SDict begin [ /View [/XYZ H.V] /Dest (4415) cvn H.B /DEST pdfmark end + -30 35007 a 1999 x FU(There)492 +b(are)g(a)g(v)-39 b(ariety)492 b(of)g(netw)-15 b(orking)491 +b(programs)g(that)h(you)f(can)h(use.)h(Some)e(are)h(handy)g(for)-30 +39021 y(performing)520 b(diagnostics)g(to)g(see)h(if)g(e)-39 +b(v)-23 b(erything)520 b(is)g(w)-15 b(orking)520 b(properly)-101 +b(.)521 b(Others)f(\(lik)-15 b(e)520 b(mail)-30 41035 +y(readers)593 b(and)f(web)h(bro)-39 b(wsers\))592 b(are)h(useful)g(for) +f(getting)g(your)g(w)-15 b(ork)592 b(done)h(and)f(staying)g(in)-30 +43050 y(contact)387 b(with)g(other)g(people.)-30 43386 +y +SDict begin H.S end + -30 43386 a -30 43386 a +SDict begin 18.2 H.A end + -30 43386 a -30 43386 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-PING) +cvn H.B /DEST pdfmark end + -30 +43386 a 5789 x FL(13.1)620 b Fq(ping)-30 49671 y +SDict begin H.S end + -30 +49671 a -30 49671 a +SDict begin 18.2 H.A end + -30 49671 a -30 49671 a +SDict begin [ /View [/XYZ H.V] /Dest (4419) cvn H.B /DEST pdfmark end + -30 49671 +a -30 49671 a +SDict begin H.S end + -30 49671 a -30 49671 a +SDict begin 18.2 H.A end + -30 49671 a -30 +49671 a +SDict begin [ /View [/XYZ H.V] /Dest (4421) cvn H.B /DEST pdfmark end + -30 49671 a -30 50787 a +SDict begin H.S end + -30 50787 a -30 50787 +a +SDict begin 18.2 H.A end + -30 50787 a -30 50787 a +SDict begin [ /View [/XYZ H.V] /Dest (4423) cvn H.B /DEST pdfmark end + -30 50787 a -30 50787 a +SDict begin H.S end + -30 +50787 a -30 50787 a +SDict begin 18.2 H.A end + -30 50787 a -30 50787 a +SDict begin [ /View [/XYZ H.V] /Dest (4424) cvn H.B /DEST pdfmark end + -30 50787 +a 1518 x FP(ping)p FU(\(8\))504 b(sends)h(an)g(ICMP)15467 +52305 y +SDict begin H.S end + 15467 52305 a 15467 52305 a +SDict begin 18.2 H.A end + 15467 52305 a 15467 +52305 a +SDict begin [ /View [/XYZ H.V] /Dest (4425) cvn H.B /DEST pdfmark end + 15467 52305 a FP(ECHO_REQUEST)f FU(pack)-15 b(et)504 +b(to)g(the)h(speci\002ed)f(host.)h(If)g(the)f(host)h(re-)-30 +54320 y(sponds,)461 b(you)f(get)h(an)f(ICMP)g(pack)-15 +b(et)460 b(back.)h(Sound)f(strange?)h(W)-124 b(ell,)461 +b(you)f(can)43882 54320 y +SDict begin H.S end + 43882 54320 a 43882 54320 a +SDict begin 18.2 H.A end + +43882 54320 a 43882 54320 a +SDict begin [ /View [/XYZ H.V] /Dest (4426) cvn H.B /DEST pdfmark end + 43882 54320 a FU(\223ping\224)g(an)h(IP)-30 +56334 y(address)435 b(to)h(see)g(if)f(a)h(machine)f(is)h(ali)-39 +b(v)-23 b(e.)436 b(If)g(there)f(is)h(no)f(response,)h(you)f(kno)-39 +b(w)436 b(something)e(is)-30 58349 y(wrong.)388 b(Here)f(is)g(an)h(e) +-23 b(xample)386 b(con)-62 b(v)-23 b(ersation)387 b(between)g(tw)-15 +b(o)386 b(Linux)h(users:)-30 58685 y +SDict begin H.S end + -30 58685 a -30 +58685 a +SDict begin 18.2 H.A end + -30 58685 a -30 58685 a +SDict begin [ /View [/XYZ H.V] /Dest (4427) cvn H.B /DEST pdfmark end + -30 58685 a -30 61009 +a +SDict begin H.S end + -30 61009 a -30 61009 a +SDict begin 16.38 H.A end + -30 61009 a -30 61009 a +SDict begin [ /View [/XYZ H.V] /Dest (4428) cvn H.B /DEST pdfmark end + -30 +61009 a -30 61009 a +SDict begin H.S end + -30 61009 a -30 61009 a +SDict begin 16.38 H.A end + -30 61009 +a -30 61009 a +SDict begin [ /View [/XYZ H.V] /Dest (4429) cvn H.B /DEST pdfmark end + -30 61009 a 1520 62487 a Fe(User)348 b(A)p +FW(:)h(Loki')-77 b(s)349 b(do)-35 b(wn)350 b(ag)-7 b(ain.)-30 +62789 y +SDict begin H.S end + -30 62789 a -30 62789 a +SDict begin 16.38 H.A end + -30 62789 a -30 62789 +a +SDict begin [ /View [/XYZ H.V] /Dest (4430) cvn H.B /DEST pdfmark end + -30 62789 a 1520 64300 a Fe(User)348 b(B)p FW(:)h(Are)g(you)h(sure?) +-30 64602 y +SDict begin H.S end + -30 64602 a -30 64602 a +SDict begin 16.38 H.A end + -30 64602 a -30 64602 +a +SDict begin [ /View [/XYZ H.V] /Dest (4431) cvn H.B /DEST pdfmark end + -30 64602 a 1520 66113 a Fe(User)e(A)p FW(:)h(Y)-139 +b(eah,)348 b(I)i(tried)f(pinging)h(it,)e(b)-28 b(ut)349 +b(there')-77 b(s)350 b(no)g(response.)p Black -30 73672 +a +SDict begin H.S end + -30 73672 a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (4432) cvn H.B /DEST pdfmark end + -30 +73672 a 49394 74722 a FR(157)p Black eop end +%%Page: 158 180 +TeXDict begin 158 179 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.158) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 6280 a FU(It')-85 b(s)466 b(instances)f(lik)-15 +b(e)466 b(these)g(that)f(mak)-15 b(e)466 b FP(ping)g +FU(a)g(v)-23 b(ery)466 b(useful)f(day-to-day)h(command.)g(It)g(pro-)-30 +8294 y(vides)410 b(a)g(v)-23 b(ery)410 b(quick)f(w)-15 +b(ay)410 b(to)g(see)g(if)g(a)g(machine)f(is)h(up)g(and)g(connected)g +(to)g(the)f(netw)-15 b(ork.)410 b(The)-30 10309 y(basic)387 +b(syntax)g(is:)-30 12194 y +SDict begin H.S end + -30 12194 a -30 12194 a +SDict begin 14.56 H.A end + -30 +12194 a -30 12194 a +SDict begin [ /View [/XYZ H.V] /Dest (4434) cvn H.B /DEST pdfmark end + -30 12194 a -30 12194 a +SDict begin H.S end + -30 12194 +a -30 12194 a +SDict begin 14.56 H.A end + -30 12194 a -30 12194 a +SDict begin [ /View [/XYZ H.V] /Dest (4435) cvn H.B /DEST pdfmark end + -30 12194 a 1277 +x FJ(\045)1309 13471 y +SDict begin H.S end + 1309 13471 a 1309 13471 a +SDict begin 14.56 H.A end + 1309 +13471 a 1309 13471 a +SDict begin [ /View [/XYZ H.V] /Dest (4436) cvn H.B /DEST pdfmark end + 1309 13471 a FH(ping)743 b(www.slackware.com)-30 +15188 y +SDict begin H.S end + -30 15188 a -30 15188 a +SDict begin 18.2 H.A end + -30 15188 a -30 15188 +a +SDict begin [ /View [/XYZ H.V] /Dest (4437) cvn H.B /DEST pdfmark end + -30 15188 a 1847 x FU(There)474 b(are,)g(of)g(course,)g(se)-39 +b(v)-23 b(eral)473 b(options)g(that)g(can)h(be)g(speci\002ed.)f(Check)g +(the)43851 17035 y +SDict begin H.S end + 43851 17035 a 43851 17035 a +SDict begin 18.2 H.A end + 43851 +17035 a 43851 17035 a +SDict begin [ /View [/XYZ H.V] /Dest (4438) cvn H.B /DEST pdfmark end + 43851 17035 a FP(ping)p FU(\(1\))g(man)-30 +19050 y(page)387 b(for)h(more)f(information.)-30 20160 +y +SDict begin H.S end + -30 20160 a -30 20160 a +SDict begin 18.2 H.A end + -30 20160 a -30 20160 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-TRACEROUTE) +cvn H.B /DEST pdfmark end + -30 +20160 a 5789 x FL(13.2)620 b Fq(tracer)-45 b(oute)-30 +25977 y +SDict begin H.S end + -30 25977 a -30 25977 a +SDict begin 18.2 H.A end + -30 25977 a -30 25977 +a +SDict begin [ /View [/XYZ H.V] /Dest (4442) cvn H.B /DEST pdfmark end + -30 25977 a -30 25977 a +SDict begin H.S end + -30 25977 a -30 25977 a +SDict begin 18.2 H.A end + -30 +25977 a -30 25977 a +SDict begin [ /View [/XYZ H.V] /Dest (4445) cvn H.B /DEST pdfmark end + -30 25977 a -30 25977 a +SDict begin H.S end + -30 25977 +a -30 25977 a +SDict begin 18.2 H.A end + -30 25977 a -30 25977 a +SDict begin [ /View [/XYZ H.V] /Dest (4448) cvn H.B /DEST pdfmark end + -30 25977 a -30 +27093 a +SDict begin H.S end + -30 27093 a -30 27093 a +SDict begin 18.2 H.A end + -30 27093 a -30 27093 +a +SDict begin [ /View [/XYZ H.V] /Dest (4450) cvn H.B /DEST pdfmark end + -30 27093 a 1987 x FU(Slackw)-15 b(are')-85 b(s)8165 +29080 y +SDict begin H.S end + 8165 29080 a 8165 29080 a +SDict begin 18.2 H.A end + 8165 29080 a 8165 29080 +a +SDict begin [ /View [/XYZ H.V] /Dest (4451) cvn H.B /DEST pdfmark end + 8165 29080 a FP(traceroute)p FU(\(8\))722 b(command)f(is)h(a)h(v)-23 +b(ery)722 b(useful)g(netw)-15 b(ork)722 b(diagnostic)f(tool.)-30 +31094 y +SDict begin H.S end + -30 31094 a -30 31094 a +SDict begin 18.2 H.A end + -30 31094 a -30 31094 +a +SDict begin [ /View [/XYZ H.V] /Dest (4452) cvn H.B /DEST pdfmark end + -30 31094 a FP(traceroute)504 b FU(displays)h(each)h(host)f(that)g(a) +g(pack)-15 b(et)505 b(tra)-31 b(v)-23 b(els)505 b(through)g(as)g(it)g +(tries)g(to)h(reach)f(its)-30 33109 y(destination.)564 +b(Y)-170 b(ou)563 b(can)i(see)f(ho)-39 b(w)565 b(man)-23 +b(y)23224 33109 y +SDict begin H.S end + 23224 33109 a 23224 33109 a +SDict begin 18.2 H.A end + 23224 33109 +a 23224 33109 a +SDict begin [ /View [/XYZ H.V] /Dest (4453) cvn H.B /DEST pdfmark end + 23224 33109 a FU(\223hops\224)564 b(from)h(the)f +(Slackw)-15 b(are)563 b(web)i(site)f(you)g(are)-30 35124 +y(with)387 b(this)g(command:)-30 36689 y +SDict begin H.S end + -30 36689 a +-30 36689 a +SDict begin 14.56 H.A end + -30 36689 a -30 36689 a +SDict begin [ /View [/XYZ H.V] /Dest (4454) cvn H.B /DEST pdfmark end + -30 36689 a -30 36689 +a +SDict begin H.S end + -30 36689 a -30 36689 a +SDict begin 14.56 H.A end + -30 36689 a -30 36689 a +SDict begin [ /View [/XYZ H.V] /Dest (4455) cvn H.B /DEST pdfmark end + -30 +36689 a 1596 x FJ(\045)1309 38285 y +SDict begin H.S end + 1309 38285 a 1309 +38285 a +SDict begin 14.56 H.A end + 1309 38285 a 1309 38285 a +SDict begin [ /View [/XYZ H.V] /Dest (4456) cvn H.B /DEST pdfmark end + 1309 38285 a FH(traceroute)743 +b(www.slackware.com)-30 39860 y +SDict begin H.S end + -30 39860 a -30 39860 +a +SDict begin 18.2 H.A end + -30 39860 a -30 39860 a +SDict begin [ /View [/XYZ H.V] /Dest (4457) cvn H.B /DEST pdfmark end + -30 39860 a 1990 x FU(Each)441 +b(host)f(will)g(be)h(displayed,)f(along)h(with)f(the)h(response)f +(times)g(at)h(each)g(host.)f(Here)h(is)g(an)-30 43864 +y(e)-23 b(xample)387 b(output:)-30 45749 y +SDict begin H.S end + -30 45749 +a -30 45749 a +SDict begin 12.972 H.A end + -30 45749 a -30 45749 a +SDict begin [ /View [/XYZ H.V] /Dest (4458) cvn H.B /DEST pdfmark end + -30 45749 a -30 +45749 a +SDict begin H.S end + -30 45749 a -30 45749 a +SDict begin 12.972 H.A end + -30 45749 a -30 45749 +a +SDict begin [ /View [/XYZ H.V] /Dest (4459) cvn H.B /DEST pdfmark end + -30 45749 a 1101 x Fj(\045)1163 46850 y +SDict begin H.S end + 1163 46850 +a 1163 46850 a +SDict begin 12.972 H.A end + 1163 46850 a 1163 46850 a +SDict begin [ /View [/XYZ H.V] /Dest (4460) cvn H.B /DEST pdfmark end + 1163 46850 a +Fi(traceroute)660 b(www.slackware.com)-30 48286 y Fh(traceroute)g(to)i +(www.slackware.com)c(\(204.216.27.13\),)g(30)k(hops)g(max,)f(40)i(byte) +e(packets)-30 49722 y(1)1325 b(zuul.tdn)661 b(\(192.168.1.1\))1321 +b(0.409)662 b(ms)1325 b(1.032)661 b(ms)1325 b(0.303)661 +b(ms)-30 51158 y(2)1325 b(207.171.227.254)659 b(\(207.171.227.254\)) +1320 b(18.218)661 b(ms)1325 b(32.873)661 b(ms)1325 b(32.433)661 +b(ms)-30 52594 y(3)1325 b(border-sf-2-0-4.sirius.com)656 +b(\(205.134.230.254\))h(15.662)k(ms)i(15.731)e(ms)h(16.142)f(ms)-30 +54030 y(4)1325 b(pb-nap.crl.net)659 b(\(198.32.128.20\))1321 +b(20.741)661 b(ms)1325 b(23.672)661 b(ms)1325 b(21.378)661 +b(ms)-30 55466 y(5)1325 b(E0-CRL-SFO-03-E0X0.US.CRL.NET)655 +b(\(165.113.55.3\))j(22.293)j(ms)i(21.532)e(ms)h(21.29)f(ms)-30 +56902 y(6)1325 b(T1-CDROM-00-EX.US.CRL.NET)656 b(\(165.113.118.2\))1321 +b(24.544)661 b(ms)1325 b(42.955)661 b(ms)h(58.443)f(ms)-30 +58337 y(7)1325 b(www.slackware.com)658 b(\(204.216.27.13\))1321 +b(38.115)661 b(ms)1325 b(53.033)661 b(ms)1325 b(48.328)661 +b(ms)-30 60016 y +SDict begin H.S end + -30 60016 a -30 60016 a +SDict begin 18.2 H.A end + -30 60016 a +-30 60016 a +SDict begin [ /View [/XYZ H.V] /Dest (4461) cvn H.B /DEST pdfmark end + -30 60016 a -30 60016 a +SDict begin H.S end + -30 60016 a -30 60016 +a +SDict begin 18.2 H.A end + -30 60016 a -30 60016 a +SDict begin [ /View [/XYZ H.V] /Dest (4462) cvn H.B /DEST pdfmark end + -30 60016 a 1886 x FP(traceroute)326 +b FU(is)h(similar)f(to)15262 61902 y +SDict begin H.S end + 15262 61902 a 15262 +61902 a +SDict begin 18.2 H.A end + 15262 61902 a 15262 61902 a +SDict begin [ /View [/XYZ H.V] /Dest (4463) cvn H.B /DEST pdfmark end + 15262 61902 a FP(ping)h +FU(in)g(that)g(it)f(uses)h(ICMP)f(pack)-15 b(ets.)327 +b(There)g(are)h(se)-39 b(v)-23 b(eral)327 b(options)-30 +63917 y(that)464 b(you)h(can)f(specify)h(with)16325 63917 +y +SDict begin H.S end + 16325 63917 a 16325 63917 a +SDict begin 18.2 H.A end + 16325 63917 a 16325 63917 +a +SDict begin [ /View [/XYZ H.V] /Dest (4464) cvn H.B /DEST pdfmark end + 16325 63917 a FP(traceroute)p FU(.)f(These)g(options)g(are)g(e)-23 +b(xplained)464 b(in)h(detail)f(in)g(the)-30 65931 y(man)387 +b(page.)-30 67042 y +SDict begin H.S end + -30 67042 a -30 67042 a +SDict begin 18.2 H.A end + -30 67042 +a -30 67042 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-DNS) cvn +H.B /DEST pdfmark end + -30 67042 a Black 6630 x FR(158)p Black +eop end +%%Page: 159 181 +TeXDict begin 159 180 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.159) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f +(Commands)p Black -30 4132 a FL(13.3)620 b(DNS)h(T)-179 +b(ools)-30 4160 y +SDict begin H.S end + -30 4160 a -30 4160 a +SDict begin 18.2 H.A end + -30 4160 a -30 +4160 a +SDict begin [ /View [/XYZ H.V] /Dest (4467) cvn H.B /DEST pdfmark end + -30 4160 a -30 4160 a +SDict begin H.S end + -30 4160 a -30 4160 a +SDict begin 18.2 H.A end + -30 +4160 a -30 4160 a +SDict begin [ /View [/XYZ H.V] /Dest (4470) cvn H.B /DEST pdfmark end + -30 4160 a -30 5276 a +SDict begin H.S end + -30 5276 a -30 +5276 a +SDict begin 18.2 H.A end + -30 5276 a -30 5276 a +SDict begin [ /View [/XYZ H.V] /Dest (4472) cvn H.B /DEST pdfmark end + -30 5276 a 1987 x FU(Domain)878 +b(Name)g(Service)g(\(DNS)g(for)h(short\))f(is)g(that)g(magical)g +(protocol)g(that)g(allo)-39 b(ws)-30 9277 y(your)994 +b(computer)f(to)g(turn)g(meaningless)g(domain)g(names)g(lik)-15 +b(e)993 b(www)-101 b(.slackw)-15 b(are.com)-30 11292 +y(into)720 b(meaningful)f(IP)h(address)g(lik)-15 b(e)21376 +11292 y +SDict begin H.S end + 21376 11292 a 21376 11292 a +SDict begin 18.2 H.A end + 21376 11292 a 21376 +11292 a +SDict begin [ /View [/XYZ H.V] /Dest (4473) cvn H.B /DEST pdfmark end + 21376 11292 a 0 1 0 0 TeXcolorcmyk 21376 11292 +a +SDict begin H.S end + 21376 11292 a 0 1 0 0 TeXcolorcmyk FQ(64.57.102.34)p +0 1 0 0 TeXcolorcmyk 28893 10551 a +SDict begin H.R end + 28893 10551 a 28893 +11292 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (64.57.102.34) >> /Subtype /Link H.B /ANN pdfmark end + 28893 11292 a Black FU(.)720 b(Computers)f(can')-28 +b(t)721 b(route)f(pack)-15 b(ets)719 b(to)-30 13307 y(www)-101 +b(.slackw)-15 b(are.com,)454 b(b)-31 b(ut)454 b(the)-23 +b(y)453 b(can)h(route)g(pack)-15 b(ets)453 b(to)g(that)h(domain)f +(name')-85 b(s)453 b(IP)h(address.)-30 15321 y(This)562 +b(gi)-39 b(v)-23 b(es)563 b(us)g(a)g(con)-62 b(v)-23 +b(enient)561 b(w)-15 b(ay)563 b(to)f(remember)h(machines.)g(W)-62 +b(ithout)562 b(DNS)g(we')-77 b(d)562 b(ha)-31 b(v)-23 +b(e)-30 17336 y(to)530 b(k)-15 b(eep)530 b(a)g(mental)g(database)f(of)i +(just)e(what)h(IP)g(address)g(belongs)f(to)h(what)g(computer)-62 +b(,)530 b(and)-30 19351 y(that')-85 b(s)474 b(assuming)f(the)h(IP)h +(address)f(doesn')-28 b(t)474 b(change.)h(Clearly)e(using)h(names)g +(for)h(computers)-30 21365 y(is)387 b(better)-62 b(,)388 +b(b)-31 b(ut)387 b(ho)-39 b(w)387 b(do)g(we)h(map)f(names)g(to)g(IP)g +(addresses?)-30 21701 y +SDict begin H.S end + -30 21701 a -30 21701 a +SDict begin 18.2 H.A end + -30 21701 +a -30 21701 a +SDict begin [ /View [/XYZ H.V] /Dest (4474) cvn H.B /DEST pdfmark end + -30 21701 a 5026 x FF(host)-30 26750 y +SDict begin H.S end + +-30 26750 a -30 26750 a +SDict begin 18.2 H.A end + -30 26750 a -30 26750 a +SDict begin [ /View [/XYZ H.V] /Dest (4477) cvn H.B /DEST pdfmark end + -30 26750 +a -30 27680 a +SDict begin H.S end + -30 27680 a -30 27680 a +SDict begin 18.2 H.A end + -30 27680 a -30 +27680 a +SDict begin [ /View [/XYZ H.V] /Dest (4479) cvn H.B /DEST pdfmark end + -30 27680 a -30 27680 a +SDict begin H.S end + -30 27680 a -30 27680 +a +SDict begin 18.2 H.A end + -30 27680 a -30 27680 a +SDict begin [ /View [/XYZ H.V] /Dest (4480) cvn H.B /DEST pdfmark end + -30 27680 a 1992 x FP(host)p +FU(\(1\))473 b(can)g(do)g(this)g(for)g(us.)17104 29672 +y +SDict begin H.S end + 17104 29672 a 17104 29672 a +SDict begin 18.2 H.A end + 17104 29672 a 17104 29672 +a +SDict begin [ /View [/XYZ H.V] /Dest (4481) cvn H.B /DEST pdfmark end + 17104 29672 a FP(host)g FU(is)g(used)g(to)g(map)g(names)g(to)g(IP)g +(addresses.)g(It)g(is)g(a)g(v)-23 b(ery)-30 31687 y(quick)387 +b(and)g(simple)g(utility)f(without)g(a)i(lot)f(of)g(functions.)-30 +33572 y +SDict begin H.S end + -30 33572 a -30 33572 a +SDict begin 14.56 H.A end + -30 33572 a -30 33572 +a +SDict begin [ /View [/XYZ H.V] /Dest (4482) cvn H.B /DEST pdfmark end + -30 33572 a -30 33572 a +SDict begin H.S end + -30 33572 a -30 33572 a +SDict begin 14.56 H.A end + -30 +33572 a -30 33572 a +SDict begin [ /View [/XYZ H.V] /Dest (4483) cvn H.B /DEST pdfmark end + -30 33572 a 1276 x FJ(\045)1309 34848 +y +SDict begin H.S end + 1309 34848 a 1309 34848 a +SDict begin 14.56 H.A end + 1309 34848 a 1309 34848 a +SDict begin [ /View [/XYZ H.V] /Dest (4484) cvn H.B /DEST pdfmark end + +1309 34848 a FH(host)743 b(www.slackware.com)-30 36460 +y FP(www.slackware.com)f(is)i(an)f(alias)g(for)h(slackware.com.)-30 +38072 y(slackware.com)e(has)i(address)f(64.57.102.34)-30 +39647 y +SDict begin H.S end + -30 39647 a -30 39647 a +SDict begin 18.2 H.A end + -30 39647 a -30 39647 +a +SDict begin [ /View [/XYZ H.V] /Dest (4485) cvn H.B /DEST pdfmark end + -30 39647 a 1989 x FU(But)369 b(let')-85 b(s)369 b(say)h(for)f(some)g +(reason)h(we)f(w)-15 b(ant)369 b(to)h(map)f(an)g(IP)h(address)f(to)g(a) +h(domain)f(name;)g(what)-30 43651 y(then?)-30 44441 y +SDict begin H.S end + +-30 44441 a -30 44441 a +SDict begin 18.2 H.A end + -30 44441 a -30 44441 a +SDict begin [ /View [/XYZ H.V] /Dest (4486) cvn H.B /DEST pdfmark end + -30 44441 +a 5502 x FF(nslookup)-30 51257 y +SDict begin H.S end + -30 51257 a -30 51257 +a +SDict begin 18.2 H.A end + -30 51257 a -30 51257 a +SDict begin [ /View [/XYZ H.V] /Dest (4489) cvn H.B /DEST pdfmark end + -30 51257 a -30 51257 a +SDict begin H.S end + -30 +51257 a -30 51257 a +SDict begin 18.2 H.A end + -30 51257 a -30 51257 a +SDict begin [ /View [/XYZ H.V] /Dest (4490) cvn H.B /DEST pdfmark end + -30 51257 +a 1630 x FP(nslookup)332 b FU(is)g(a)h(tried)f(and)h(true)g(program)f +(that)g(has)h(weathered)f(the)h(ages.)40168 52887 y +SDict begin H.S end + 40168 +52887 a 40168 52887 a +SDict begin 18.2 H.A end + 40168 52887 a 40168 52887 a +SDict begin [ /View [/XYZ H.V] /Dest (4491) cvn H.B /DEST pdfmark end + 40168 +52887 a FP(nslookup)e FU(has)i(been)-30 54902 y(deprecated)398 +b(and)f(may)h(be)f(remo)-23 b(v)g(ed)397 b(from)g(future)h(releases.)g +(There)g(is)f(not)g(e)-39 b(v)-23 b(en)398 b(a)g(man)f(page)-30 +56916 y(for)388 b(this)e(program.)-30 58802 y +SDict begin H.S end + -30 58802 +a -30 58802 a +SDict begin 12.972 H.A end + -30 58802 a -30 58802 a +SDict begin [ /View [/XYZ H.V] /Dest (4492) cvn H.B /DEST pdfmark end + -30 58802 a -30 +58802 a +SDict begin H.S end + -30 58802 a -30 58802 a +SDict begin 12.972 H.A end + -30 58802 a -30 58802 +a +SDict begin [ /View [/XYZ H.V] /Dest (4493) cvn H.B /DEST pdfmark end + -30 58802 a 1100 x Fj(\045)1163 59902 y +SDict begin H.S end + 1163 59902 +a 1163 59902 a +SDict begin 12.972 H.A end + 1163 59902 a 1163 59902 a +SDict begin [ /View [/XYZ H.V] /Dest (4494) cvn H.B /DEST pdfmark end + 1163 59902 a +Fi(nslookup)660 b(64.57.102.34)-30 61338 y Fh(Note:)1324 +b(nslookup)661 b(is)h(deprecated)e(and)h(may)h(be)g(removed)f(from)h +(future)f(releases.)-30 62774 y(Consider)g(using)g(the)h(`dig')f(or)h +(`host')f(programs)g(instead.)1323 b(Run)662 b(nslookup)e(with)-30 +64210 y(the)i(`-sil[ent]')e(option)h(to)h(prevent)e(this)i(message)f +(from)g(appearing.)-30 65646 y(Server:)5963 b(192.168.1.254)-30 +67082 y(Address:)5300 b(192.168.1.254#53)p Black 49451 +73792 a FR(159)p Black eop end +%%Page: 160 182 +TeXDict begin 160 181 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.160) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 5047 a Fh(Non-authoritative)658 b(answer:)-30 +6483 y(www.slackware.com)4634 b(canonical)660 b(name)i(=)g +(slackware.com.)-30 7919 y(Name:)1987 b(slackware.com)-30 +9355 y(Address:)661 b(64.57.102.34)-30 10928 y +SDict begin H.S end + -30 10928 +a -30 10928 a +SDict begin 18.2 H.A end + -30 10928 a -30 10928 a +SDict begin [ /View [/XYZ H.V] /Dest (4495) cvn H.B /DEST pdfmark end + -30 10928 a 5494 +x FF(dig)-30 16836 y +SDict begin H.S end + -30 16836 a -30 16836 a +SDict begin 18.2 H.A end + -30 16836 +a -30 16836 a +SDict begin [ /View [/XYZ H.V] /Dest (4498) cvn H.B /DEST pdfmark end + -30 16836 a -30 17765 a +SDict begin H.S end + -30 17765 a -30 +17765 a +SDict begin 18.2 H.A end + -30 17765 a -30 17765 a +SDict begin [ /View [/XYZ H.V] /Dest (4501) cvn H.B /DEST pdfmark end + -30 17765 a 1601 x FU(The)296 +b(meanest)f(dog)g(in)h(the)f(pound,)h(the)f(domain)g(information)g +(groper)-62 b(,)38333 19366 y +SDict begin H.S end + 38333 19366 a 38333 19366 +a +SDict begin 18.2 H.A end + 38333 19366 a 38333 19366 a +SDict begin [ /View [/XYZ H.V] /Dest (4502) cvn H.B /DEST pdfmark end + 38333 19366 a FP(dig)p +FU(\(1\))295 b(for)h(short,)g(is)f(the)-30 21381 y(go-to)335 +b(program)g(for)g(\002nding)f(DNS)h(information.)27508 +21381 y +SDict begin H.S end + 27508 21381 a 27508 21381 a +SDict begin 18.2 H.A end + 27508 21381 a 27508 +21381 a +SDict begin [ /View [/XYZ H.V] /Dest (4503) cvn H.B /DEST pdfmark end + 27508 21381 a FP(dig)g FU(can)g(grab)g(just)g(about)g(an)-23 +b(ything)334 b(from)h(a)-30 23396 y(DNS)391 b(serv)-23 +b(er)390 b(including)g(re)-39 b(v)-23 b(erse)391 b(lookups,)g(A,)g(CN) +-54 b(AME,)391 b(MX,)g(SP)-172 b(,)390 b(and)h(TXT)g(records.)49544 +23396 y +SDict begin H.S end + 49544 23396 a 49544 23396 a +SDict begin 18.2 H.A end + 49544 23396 a 49544 +23396 a +SDict begin [ /View [/XYZ H.V] /Dest (4504) cvn H.B /DEST pdfmark end + 49544 23396 a FP(dig)-30 25410 y FU(has)468 b(man)-23 +b(y)467 b(command)h(line)f(options)g(and)h(if)g(you')-77 +b(re)468 b(not)f(f)-15 b(amiliar)467 b(with)h(it)g(you)g(should)f(read) +-30 27425 y(through)387 b(it')-85 b(s)387 b(e)-23 b(xtensi)-39 +b(v)-23 b(e)386 b(man)h(page.)-30 29310 y +SDict begin H.S end + -30 29310 a +-30 29310 a +SDict begin 12.972 H.A end + -30 29310 a -30 29310 a +SDict begin [ /View [/XYZ H.V] /Dest (4505) cvn H.B /DEST pdfmark end + -30 29310 a -30 29310 +a +SDict begin H.S end + -30 29310 a -30 29310 a +SDict begin 12.972 H.A end + -30 29310 a -30 29310 a +SDict begin [ /View [/XYZ H.V] /Dest (4506) cvn H.B /DEST pdfmark end + -30 +29310 a 1101 x Fj(\045)1163 30411 y +SDict begin H.S end + 1163 30411 a 1163 +30411 a +SDict begin 12.972 H.A end + 1163 30411 a 1163 30411 a +SDict begin [ /View [/XYZ H.V] /Dest (4507) cvn H.B /DEST pdfmark end + 1163 30411 a Fi(dig)662 +b(@192.168.1.254)d(www.slackware.com)e(mx)-30 33283 y +Fh(;)663 b Fd(<<)p Fh(>>)f(DiG)f(9.2.2)h Fd(<<)p Fh(>>)g +(@192.168.1.254)d(www.slackware.com)e(mx)-30 34718 y(;;)662 +b(global)f(options:)1323 b(printcmd)-30 36154 y(;;)662 +b(Got)g(answer:)-30 37590 y(;;)g(->>HEADER)p Fd(<<)p +Fh(-)e(opcode:)h(QUERY,)g(status:)g(NOERROR,)f(id:)i(26362)-30 +39026 y(;;)g(flags:)f(qr)h(rd)h(ra;)e(QUERY:)g(1,)i(ANSWER:)d(2,)i +(AUTHORITY:)e(2,)i(ADDITIONAL:)e(2)-30 41898 y(;;)i(QUESTION)f +(SECTION:)-30 43334 y(;www.slackware.com.)8610 b(IN)3976 +b(MX)-30 46206 y(;;)662 b(ANSWER)f(SECTION:)-30 47642 +y(www.slackware.com.)3971 b(76634)1987 b(IN)3976 b(CNAME)1986 +b(slackware.com.)-30 49078 y(slackware.com.)6623 b(86400)1987 +b(IN)3976 b(MX)f(1)663 b(mail.slackware.com.)-30 51950 +y(;;)f(AUTHORITY)e(SECTION:)-30 53386 y(slackware.com.)6623 +b(86400)1987 b(IN)3976 b(NS)f(ns1.cwo.com.)-30 54822 +y(slackware.com.)6623 b(86400)1987 b(IN)3976 b(NS)f(ns2.cwo.com.)-30 +57694 y(;;)662 b(ADDITIONAL)e(SECTION:)-30 59130 y(ns1.cwo.com.)7949 +b(163033)1324 b(IN)3976 b(A)4638 b(64.57.100.2)-30 60566 +y(ns2.cwo.com.)7949 b(163033)1324 b(IN)3976 b(A)4638 +b(64.57.100.3)-30 63437 y(;;)662 b(Query)g(time:)f(149)h(msec)-30 +64873 y(;;)g(SERVER:)f(192.168.1.254#53\(192.168.1.254\))-30 +66309 y(;;)h(WHEN:)g(Sat)f(Nov)1325 b(6)662 b(16:59:31)f(2004)-30 +67745 y(;;)h(MSG)g(SIZE)1324 b(rcvd:)662 b(159)p Black +-30 73792 a FR(160)p Black eop end +%%Page: 161 183 +TeXDict begin 161 182 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.161) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f +(Commands)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4508) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(This)485 b(should)f(gi)-39 +b(v)-23 b(e)485 b(you)g(an)g(idea)g(ho)-39 b(w)21861 +3611 y +SDict begin H.S end + 21861 3611 a 21861 3611 a +SDict begin 18.2 H.A end + 21861 3611 a 21861 3611 +a +SDict begin [ /View [/XYZ H.V] /Dest (4509) cvn H.B /DEST pdfmark end + 21861 3611 a FP(dig)485 b FU(w)-15 b(orks.)29222 3611 +y +SDict begin H.S end + 29222 3611 a 29222 3611 a +SDict begin 18.2 H.A end + 29222 3611 a 29222 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4510) cvn H.B /DEST pdfmark end + +29222 3611 a FU(\223@192.168.1.254\224)486 b(speci\002es)e(the)h(dns) +-30 5626 y(serv)-23 b(er)401 b(to)h(use.)8597 5626 y +SDict begin H.S end + +8597 5626 a 8597 5626 a +SDict begin 18.2 H.A end + 8597 5626 a 8597 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (4511) cvn H.B /DEST pdfmark end + 8597 +5626 a FU(\223www)-101 b(.slackw)-15 b(are.com\224)401 +b(is)h(the)f(domain)g(name)g(I)h(am)f(performing)g(a)h(lookup)-30 +7640 y(on,)433 b(and)5010 7640 y +SDict begin H.S end + 5010 7640 a 5010 7640 +a +SDict begin 18.2 H.A end + 5010 7640 a 5010 7640 a +SDict begin [ /View [/XYZ H.V] /Dest (4512) cvn H.B /DEST pdfmark end + 5010 7640 a FU(\223mx\224)f(is)g(the)g(type)g +(of)g(lookup)g(I)g(am)g(performing.)g(The)h(abo)-23 b(v)g(e)431 +b(query)h(tells)g(me)g(that)-30 9655 y(e-mail)387 b(to)5910 +9655 y +SDict begin H.S end + 5910 9655 a 5910 9655 a +SDict begin 18.2 H.A end + 5910 9655 a 5910 9655 +a +SDict begin [ /View [/XYZ H.V] /Dest (4513) cvn H.B /DEST pdfmark end + 5910 9655 a 0 1 0 0 TeXcolorcmyk 5910 9655 a +SDict begin H.S end + 5910 9655 +a 0 1 0 0 TeXcolorcmyk FQ(www.slackware.com)p 0 1 0 0 +TeXcolorcmyk 16558 8915 a +SDict begin H.R end + 16558 8915 a 16558 9655 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (www.slackware.com) >> /Subtype /Link H.B /ANN pdfmark end + 16558 +9655 a Black 388 w FU(will)g(instead)f(be)i(sent)f(to)30850 +9655 y +SDict begin H.S end + 30850 9655 a 30850 9655 a +SDict begin 18.2 H.A end + 30850 9655 a 30850 9655 +a +SDict begin [ /View [/XYZ H.V] /Dest (4514) cvn H.B /DEST pdfmark end + 30850 9655 a 0 1 0 0 TeXcolorcmyk 30850 9655 a +SDict begin H.S end + 30850 +9655 a 0 1 0 0 TeXcolorcmyk FQ(mail.slackware.com)p 0 1 0 0 +TeXcolorcmyk 42124 8915 a +SDict begin H.R end + 42124 8915 a 42124 9655 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (mail.slackware.com) >> /Subtype /Link H.B /ANN pdfmark end + 42124 +9655 a Black 388 w FU(for)g(deli)-39 b(v)-23 b(ery)-101 +b(.)-30 12315 y +SDict begin H.S end + -30 12315 a -30 12315 a +SDict begin 18.2 H.A end + -30 12315 a -30 +12315 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-FINGER) +cvn H.B /DEST pdfmark end + -30 12315 a 5789 x FL(13.4)620 b Fq(\002ng)22 +b(er)-30 18601 y +SDict begin H.S end + -30 18601 a -30 18601 a +SDict begin 18.2 H.A end + -30 18601 a +-30 18601 a +SDict begin [ /View [/XYZ H.V] /Dest (4518) cvn H.B /DEST pdfmark end + -30 18601 a -30 19717 a +SDict begin H.S end + -30 19717 a -30 19717 +a +SDict begin 18.2 H.A end + -30 19717 a -30 19717 a +SDict begin [ /View [/XYZ H.V] /Dest (4521) cvn H.B /DEST pdfmark end + -30 19717 a -30 19717 a +SDict begin H.S end + -30 +19717 a -30 19717 a +SDict begin 18.2 H.A end + -30 19717 a -30 19717 a +SDict begin [ /View [/XYZ H.V] /Dest (4522) cvn H.B /DEST pdfmark end + -30 19717 +a 1518 x FP(finger)p FU(\(1\))410 b(will)g(retrie)-39 +b(v)-23 b(e)411 b(information)f(about)g(the)g(speci\002ed)g(user)-85 +b(.)411 b(Y)-170 b(ou)410 b(gi)-39 b(v)-23 b(e)411 b(\002nger)f(a)h +(user)-31 b(-)-30 23249 y(name)407 b(or)f(an)h(email)f(address)h(and)f +(it)g(will)h(try)f(to)h(contact)f(the)g(necessary)h(serv)-23 +b(er)406 b(and)h(retrie)-39 b(v)-23 b(e)-30 25264 y(the)402 +b(username,)g(of)-39 b(\002ce,)402 b(telephone)g(number)-62 +b(,)402 b(and)f(other)h(pieces)g(of)g(information.)f(Here)h(is)g(an)-30 +27279 y(e)-23 b(xample:)-30 29164 y +SDict begin H.S end + -30 29164 a -30 29164 +a +SDict begin 14.56 H.A end + -30 29164 a -30 29164 a +SDict begin [ /View [/XYZ H.V] /Dest (4523) cvn H.B /DEST pdfmark end + -30 29164 a -30 29164 a +SDict begin H.S end + -30 +29164 a -30 29164 a +SDict begin 14.56 H.A end + -30 29164 a -30 29164 a +SDict begin [ /View [/XYZ H.V] /Dest (4524) cvn H.B /DEST pdfmark end + -30 29164 +a 1276 x FJ(\045)1309 30440 y +SDict begin H.S end + 1309 30440 a 1309 30440 +a +SDict begin 14.56 H.A end + 1309 30440 a 1309 30440 a +SDict begin [ /View [/XYZ H.V] /Dest (4525) cvn H.B /DEST pdfmark end + 1309 30440 a FH(finger)743 +b(johnc@idsoftware.com)-30 32158 y +SDict begin H.S end + -30 32158 a -30 32158 +a +SDict begin 18.2 H.A end + -30 32158 a -30 32158 a +SDict begin [ /View [/XYZ H.V] /Dest (4526) cvn H.B /DEST pdfmark end + -30 32158 a -30 32158 a +SDict begin H.S end + -30 +32158 a -30 32158 a +SDict begin 18.2 H.A end + -30 32158 a -30 32158 a +SDict begin [ /View [/XYZ H.V] /Dest (4527) cvn H.B /DEST pdfmark end + -30 32158 +a 1847 x FP(finger)374 b FU(can)g(return)g(the)g(username,)g(mail)f +(status,)h(phone)g(numbers,)g(and)g(\002les)g(referred)g(to)g(as)-30 +36019 y +SDict begin H.S end + -30 36019 a -30 36019 a +SDict begin 18.2 H.A end + -30 36019 a -30 36019 +a +SDict begin [ /View [/XYZ H.V] /Dest (4528) cvn H.B /DEST pdfmark end + -30 36019 a FU(\223dot)483 b(plan\224)f(and)9682 36019 +y +SDict begin H.S end + 9682 36019 a 9682 36019 a +SDict begin 18.2 H.A end + 9682 36019 a 9682 36019 a +SDict begin [ /View [/XYZ H.V] /Dest (4529) cvn H.B /DEST pdfmark end + +9682 36019 a FU(\223dot)h(project\224.)g(Of)g(course,)g(the)g +(information)f(returned)g(v)-39 b(aries)483 b(with)g(each)-30 +38034 y +SDict begin H.S end + -30 38034 a -30 38034 a +SDict begin 18.2 H.A end + -30 38034 a -30 38034 +a +SDict begin [ /View [/XYZ H.V] /Dest (4530) cvn H.B /DEST pdfmark end + -30 38034 a FP(finger)459 b FU(serv)-23 b(er)-85 b(.)459 +b(The)h(one)f(included)g(with)g(Slackw)-15 b(are)458 +b(returns)h(the)g(follo)-39 b(wing)459 b(information)-30 +40049 y(by)387 b(def)-15 b(ault:)-30 40384 y +SDict begin H.S end + -30 40384 +a -30 40384 a +SDict begin 18.2 H.A end + -30 40384 a -30 40384 a +SDict begin [ /View [/XYZ H.V] /Dest (4531) cvn H.B /DEST pdfmark end + -30 40384 a -30 +41159 a +SDict begin H.S end + -30 41159 a -30 41159 a +SDict begin 18.2 H.A end + -30 41159 a -30 41159 +a +SDict begin [ /View [/XYZ H.V] /Dest (4532) cvn H.B /DEST pdfmark end + -30 41159 a Black 3229 x FM(\225)p Black 1520 44388 +a +SDict begin H.S end + 1520 44388 a 1520 44388 a +SDict begin 18.2 H.A end + 1520 44388 a 1520 44388 a +SDict begin [ /View [/XYZ H.V] /Dest (4533) cvn H.B /DEST pdfmark end + +1520 44388 a FU(Username)-30 44403 y +SDict begin H.S end + -30 44403 a -30 +44403 a +SDict begin 18.2 H.A end + -30 44403 a -30 44403 a +SDict begin [ /View [/XYZ H.V] /Dest (4534) cvn H.B /DEST pdfmark end + -30 44403 a Black 2775 +x FM(\225)p Black 1520 47178 a +SDict begin H.S end + 1520 47178 a 1520 47178 +a +SDict begin 18.2 H.A end + 1520 47178 a 1520 47178 a +SDict begin [ /View [/XYZ H.V] /Dest (4535) cvn H.B /DEST pdfmark end + 1520 47178 a FU(Room)386 +b(number)-30 47193 y +SDict begin H.S end + -30 47193 a -30 47193 a +SDict begin 18.2 H.A end + -30 47193 +a -30 47193 a +SDict begin [ /View [/XYZ H.V] /Dest (4536) cvn H.B /DEST pdfmark end + -30 47193 a Black 2774 x FM(\225)p Black +1520 49967 a +SDict begin H.S end + 1520 49967 a 1520 49967 a +SDict begin 18.2 H.A end + 1520 49967 a 1520 +49967 a +SDict begin [ /View [/XYZ H.V] /Dest (4537) cvn H.B /DEST pdfmark end + 1520 49967 a FU(Home)h(phone)g(number)-30 50303 +y +SDict begin H.S end + -30 50303 a -30 50303 a +SDict begin 18.2 H.A end + -30 50303 a -30 50303 a +SDict begin [ /View [/XYZ H.V] /Dest (4538) cvn H.B /DEST pdfmark end + -30 +50303 a Black 2454 x FM(\225)p Black 1520 52757 a +SDict begin H.S end + 1520 +52757 a 1520 52757 a +SDict begin 18.2 H.A end + 1520 52757 a 1520 52757 a +SDict begin [ /View [/XYZ H.V] /Dest (4539) cvn H.B /DEST pdfmark end + 1520 52757 +a FU(W)-124 b(ork)387 b(phone)g(number)-30 53092 y +SDict begin H.S end + -30 +53092 a -30 53092 a +SDict begin 18.2 H.A end + -30 53092 a -30 53092 a +SDict begin [ /View [/XYZ H.V] /Dest (4540) cvn H.B /DEST pdfmark end + -30 53092 +a Black 2454 x FM(\225)p Black 1520 55546 a +SDict begin H.S end + 1520 55546 +a 1520 55546 a +SDict begin 18.2 H.A end + 1520 55546 a 1520 55546 a +SDict begin [ /View [/XYZ H.V] /Dest (4541) cvn H.B /DEST pdfmark end + 1520 55546 a +FU(Login)g(status)-30 55882 y +SDict begin H.S end + -30 55882 a -30 55882 a +SDict begin 18.2 H.A end + +-30 55882 a -30 55882 a +SDict begin [ /View [/XYZ H.V] /Dest (4542) cvn H.B /DEST pdfmark end + -30 55882 a Black 2454 x FM(\225)p +Black 1520 58336 a +SDict begin H.S end + 1520 58336 a 1520 58336 a +SDict begin 18.2 H.A end + 1520 58336 +a 1520 58336 a +SDict begin [ /View [/XYZ H.V] /Dest (4543) cvn H.B /DEST pdfmark end + 1520 58336 a FU(Email)g(status)-30 58351 +y +SDict begin H.S end + -30 58351 a -30 58351 a +SDict begin 18.2 H.A end + -30 58351 a -30 58351 a +SDict begin [ /View [/XYZ H.V] /Dest (4544) cvn H.B /DEST pdfmark end + -30 +58351 a Black 2774 x FM(\225)p Black 1520 61125 a +SDict begin H.S end + 1520 +61125 a 1520 61125 a +SDict begin 18.2 H.A end + 1520 61125 a 1520 61125 a +SDict begin [ /View [/XYZ H.V] /Dest (4545) cvn H.B /DEST pdfmark end + 1520 61125 +a FU(Contents)f(of)h(the)11378 61125 y +SDict begin H.S end + 11378 61125 a +11378 61125 a +SDict begin 18.2 H.A end + 11378 61125 a 11378 61125 a +SDict begin [ /View [/XYZ H.V] /Dest (4546) cvn H.B /DEST pdfmark end + 11378 61125 +a FQ(.plan)d FU(\002le)j(in)g(the)g(user')-85 b(s)387 +b(home)g(directory)-30 61461 y +SDict begin H.S end + -30 61461 a -30 61461 +a +SDict begin 18.2 H.A end + -30 61461 a -30 61461 a +SDict begin [ /View [/XYZ H.V] /Dest (4547) cvn H.B /DEST pdfmark end + -30 61461 a Black 2454 x FM(\225)p +Black 1520 63915 a +SDict begin H.S end + 1520 63915 a 1520 63915 a +SDict begin 18.2 H.A end + 1520 63915 +a 1520 63915 a +SDict begin [ /View [/XYZ H.V] /Dest (4548) cvn H.B /DEST pdfmark end + 1520 63915 a FU(Contents)f(of)h(the)11378 +63915 y +SDict begin H.S end + 11378 63915 a 11378 63915 a +SDict begin 18.2 H.A end + 11378 63915 a 11378 +63915 a +SDict begin [ /View [/XYZ H.V] /Dest (4549) cvn H.B /DEST pdfmark end + 11378 63915 a FQ(.project)382 b FU(\002le)387 +b(in)g(the)g(user')-85 b(s)387 b(home)g(directory)p Black +49451 73792 a FR(161)p Black eop end +%%Page: 162 184 +TeXDict begin 162 183 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.162) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4550) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(The)421 b(\002rst)f(four)g(items)g(can)h +(be)f(set)h(with)f(the)24502 3611 y +SDict begin H.S end + 24502 3611 a 24502 +3611 a +SDict begin 18.2 H.A end + 24502 3611 a 24502 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4551) cvn H.B /DEST pdfmark end + 24502 3611 a FP(chfn)g +FU(command.)h(It)f(stores)g(those)g(v)-39 b(alues)421 +b(in)f(the)-30 5626 y +SDict begin H.S end + -30 5626 a -30 5626 a +SDict begin 18.2 H.A end + -30 5626 +a -30 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (4552) cvn H.B /DEST pdfmark end + -30 5626 a FQ(/etc/passwd)527 b FU(\002le.)533 +b(T)-124 b(o)534 b(change)f(the)h(information)e(in)i(your)32742 +5626 y +SDict begin H.S end + 32742 5626 a 32742 5626 a +SDict begin 18.2 H.A end + 32742 5626 a 32742 5626 +a +SDict begin [ /View [/XYZ H.V] /Dest (4553) cvn H.B /DEST pdfmark end + 32742 5626 a FQ(.plan)c FU(or)38232 5626 y +SDict begin H.S end + 38232 5626 +a 38232 5626 a +SDict begin 18.2 H.A end + 38232 5626 a 38232 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (4554) cvn H.B /DEST pdfmark end + 38232 5626 a +FQ(.project)f FU(\002le,)k(just)g(edit)-30 7640 y(them)h(with)g(your)h +(f)-15 b(a)-31 b(v)g(orite)533 b(te)-23 b(xt)534 b(editor)-85 +b(.)535 b(The)-23 b(y)534 b(must)g(reside)g(in)g(your)h(home)f +(directory)g(and)-30 9655 y(must)387 b(be)g(called)9310 +9655 y +SDict begin H.S end + 9310 9655 a 9310 9655 a +SDict begin 18.2 H.A end + 9310 9655 a 9310 9655 +a +SDict begin [ /View [/XYZ H.V] /Dest (4555) cvn H.B /DEST pdfmark end + 9310 9655 a FQ(.plan)e FU(and)15455 9655 y +SDict begin H.S end + 15455 9655 +a 15455 9655 a +SDict begin 18.2 H.A end + 15455 9655 a 15455 9655 a +SDict begin [ /View [/XYZ H.V] /Dest (4556) cvn H.B /DEST pdfmark end + 15455 9655 a +FQ(.project)p FU(.)-30 10699 y +SDict begin H.S end + -30 10699 a -30 10699 +a +SDict begin 18.2 H.A end + -30 10699 a -30 10699 a +SDict begin [ /View [/XYZ H.V] /Dest (4557) cvn H.B /DEST pdfmark end + -30 10699 a 1746 x FU(Man)-23 +b(y)399 b(users)7546 12445 y +SDict begin H.S end + 7546 12445 a 7546 12445 +a +SDict begin 18.2 H.A end + 7546 12445 a 7546 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (4558) cvn H.B /DEST pdfmark end + 7546 12445 a FP(finger)g +FU(their)g(o)-39 b(wn)400 b(account)f(from)g(a)h(remote)f(machine)g(to) +h(quickly)e(see)i(if)f(the)-23 b(y)-30 14459 y(ha)-31 +b(v)-23 b(e)387 b(ne)-39 b(w)388 b(email.)f(Or)-62 b(,)388 +b(you)f(can)g(see)h(a)f(user')-85 b(s)387 b(plan)g(or)h(current)f +(project.)-30 15570 y +SDict begin H.S end + -30 15570 a -30 15570 a +SDict begin 18.2 H.A end + -30 15570 +a -30 15570 a +SDict begin [ /View [/XYZ H.V] /Dest (4559) cvn H.B /DEST pdfmark end + -30 15570 a 1679 x FU(Lik)-15 b(e)426 b(man)-23 +b(y)425 b(commands,)14597 17249 y +SDict begin H.S end + 14597 17249 a 14597 +17249 a +SDict begin 18.2 H.A end + 14597 17249 a 14597 17249 a +SDict begin [ /View [/XYZ H.V] /Dest (4560) cvn H.B /DEST pdfmark end + 14597 17249 a FP(finger)g +FU(has)h(options.)g(Check)g(the)g(man)g(page)g(for)g(more)g(informa-) +-30 19264 y(tion)387 b(on)g(what)g(special)g(options)g(you)g(can)g +(use.)-30 20374 y +SDict begin H.S end + -30 20374 a -30 20374 a +SDict begin 18.2 H.A end + -30 20374 a +-30 20374 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-TELNET) +cvn H.B /DEST pdfmark end + -30 20374 a 5789 x FL(13.5)620 b Fq(telnet)-30 +26191 y +SDict begin H.S end + -30 26191 a -30 26191 a +SDict begin 18.2 H.A end + -30 26191 a -30 26191 +a +SDict begin [ /View [/XYZ H.V] /Dest (4564) cvn H.B /DEST pdfmark end + -30 26191 a -30 26191 a +SDict begin H.S end + -30 26191 a -30 26191 a +SDict begin 18.2 H.A end + -30 +26191 a -30 26191 a +SDict begin [ /View [/XYZ H.V] /Dest (4566) cvn H.B /DEST pdfmark end + -30 26191 a -30 26191 a +SDict begin H.S end + -30 26191 +a -30 26191 a +SDict begin 18.2 H.A end + -30 26191 a -30 26191 a +SDict begin [ /View [/XYZ H.V] /Dest (4568) cvn H.B /DEST pdfmark end + -30 26191 a -30 +27307 a +SDict begin H.S end + -30 27307 a -30 27307 a +SDict begin 18.2 H.A end + -30 27307 a -30 27307 +a +SDict begin [ /View [/XYZ H.V] /Dest (4571) cvn H.B /DEST pdfmark end + -30 27307 a 1986 x FU(Someone)374 b(once)g(stated)g(that)16102 +29293 y +SDict begin H.S end + 16102 29293 a 16102 29293 a +SDict begin 18.2 H.A end + 16102 29293 a 16102 +29293 a +SDict begin [ /View [/XYZ H.V] /Dest (4572) cvn H.B /DEST pdfmark end + 16102 29293 a FP(telnet)p FU(\(1\))g(w)-15 b(as)374 +b(the)g(coolest)g(thing)f(he)i(had)f(e)-39 b(v)-23 b(er)375 +b(seen)f(on)g(com-)-30 31308 y(puters.)620 b(The)f(ability)f(to)h +(remotely)g(log)g(in)g(and)h(do)f(stuf)-39 b(f)619 b(on)g(another)g +(computer)g(is)g(what)-30 33323 y(separates)387 b(Unix)g(and)g +(Unix-lik)-15 b(e)386 b(operating)h(systems)g(from)g(other)g(operating) +g(systems.)-30 33658 y +SDict begin H.S end + -30 33658 a -30 33658 a +SDict begin 18.2 H.A end + -30 33658 +a -30 33658 a +SDict begin [ /View [/XYZ H.V] /Dest (4573) cvn H.B /DEST pdfmark end + -30 33658 a -30 34433 a +SDict begin H.S end + -30 34433 a -30 +34433 a +SDict begin 18.2 H.A end + -30 34433 a -30 34433 a +SDict begin [ /View [/XYZ H.V] /Dest (4576) cvn H.B /DEST pdfmark end + -30 34433 a -30 34433 +a +SDict begin H.S end + -30 34433 a -30 34433 a +SDict begin 18.2 H.A end + -30 34433 a -30 34433 a +SDict begin [ /View [/XYZ H.V] /Dest (4577) cvn H.B /DEST pdfmark end + -30 +34433 a 1679 x FP(telnet)473 b FU(allo)-39 b(ws)474 b(you)f(to)h(log)g +(in)f(to)h(a)g(computer)-62 b(,)473 b(just)h(as)g(if)f(you)h(were)g +(sitting)f(at)h(the)f(termi-)-30 38127 y(nal.)487 b(Once)g(your)g +(username)f(and)h(passw)-15 b(ord)486 b(are)h(v)-23 b(eri\002ed,)487 +b(you)f(are)h(gi)-39 b(v)-23 b(en)487 b(a)g(shell)f(prompt.)-30 +40142 y(From)319 b(here,)i(you)e(can)h(do)g(an)-23 b(ything)319 +b(requiring)g(a)h(te)-23 b(xt)319 b(console.)h(Compose)f(email,)h(read) +g(ne)-39 b(ws-)-30 42156 y(groups,)473 b(mo)-23 b(v)g(e)473 +b(\002les)g(around,)g(and)h(so)f(on.)h(If)f(you)h(are)f(running)g(X)g +(and)h(you)43181 42156 y +SDict begin H.S end + 43181 42156 a 43181 42156 a +SDict begin 18.2 H.A end + +43181 42156 a 43181 42156 a +SDict begin [ /View [/XYZ H.V] /Dest (4578) cvn H.B /DEST pdfmark end + 43181 42156 a FP(telnet)f +FU(to)g(an-)-30 44171 y(other)466 b(machine,)f(you)h(can)f(run)h(X)f +(programs)h(on)f(the)h(remote)f(computer)g(and)g(display)g(them)-30 +46186 y(on)387 b(yours.)-30 47296 y +SDict begin H.S end + -30 47296 a -30 47296 +a +SDict begin 18.2 H.A end + -30 47296 a -30 47296 a +SDict begin [ /View [/XYZ H.V] /Dest (4579) cvn H.B /DEST pdfmark end + -30 47296 a 1679 x FU(T)-124 +b(o)387 b(login)g(to)g(a)h(remote)f(machine,)g(use)g(this)g(syntax:)-30 +50860 y +SDict begin H.S end + -30 50860 a -30 50860 a +SDict begin 14.56 H.A end + -30 50860 a -30 50860 +a +SDict begin [ /View [/XYZ H.V] /Dest (4580) cvn H.B /DEST pdfmark end + -30 50860 a -30 50860 a +SDict begin H.S end + -30 50860 a -30 50860 a +SDict begin 14.56 H.A end + -30 +50860 a -30 50860 a +SDict begin [ /View [/XYZ H.V] /Dest (4581) cvn H.B /DEST pdfmark end + -30 50860 a 1277 x FJ(\045)1309 52137 +y +SDict begin H.S end + 1309 52137 a 1309 52137 a +SDict begin 14.56 H.A end + 1309 52137 a 1309 52137 a +SDict begin [ /View [/XYZ H.V] /Dest (4582) cvn H.B /DEST pdfmark end + +1309 52137 a FH(telnet)743 b FK(<)7459 52137 y +SDict begin H.S end + 7459 52137 +a 7459 52137 a +SDict begin 14.56 H.A end + 7459 52137 a 7459 52137 a +SDict begin [ /View [/XYZ H.V] /Dest (4583) cvn H.B /DEST pdfmark end + 7459 52137 a +Fy(hostname)5 b FK(>)-30 53734 y +SDict begin H.S end + -30 53734 a -30 53734 +a +SDict begin 18.2 H.A end + -30 53734 a -30 53734 a +SDict begin [ /View [/XYZ H.V] /Dest (4584) cvn H.B /DEST pdfmark end + -30 53734 a 1967 x FU(If)549 +b(the)g(host)f(responds,)g(you)h(will)f(recei)-39 b(v)-23 +b(e)549 b(a)g(login)f(prompt.)g(Gi)-39 b(v)-23 b(e)549 +b(it)f(your)h(username)f(and)-30 57716 y(passw)-15 b(ord.)354 +b(That')-85 b(s)353 b(it.)i(Y)-170 b(ou)353 b(are)i(no)-39 +b(w)354 b(at)g(a)g(shell.)h(T)-124 b(o)354 b(quit)f(your)h(telnet)g +(session,)g(use)g(either)g(the)-30 59730 y +SDict begin H.S end + -30 59730 +a -30 59730 a +SDict begin 18.2 H.A end + -30 59730 a -30 59730 a +SDict begin [ /View [/XYZ H.V] /Dest (4585) cvn H.B /DEST pdfmark end + -30 59730 a FP(exit)387 +b FU(command)g(or)g(the)13792 59730 y +SDict begin H.S end + 13792 59730 a 13792 +59730 a +SDict begin 18.2 H.A end + 13792 59730 a 13792 59730 a +SDict begin [ /View [/XYZ H.V] /Dest (4586) cvn H.B /DEST pdfmark end + 13792 59730 a FP(logout)g +FU(command.)-30 59925 y +SDict begin H.S end + -30 59925 a -30 59925 a +SDict begin 16.9 H.A end + -30 59925 +a -30 59925 a +SDict begin [ /View [/XYZ H.V] /Dest (4587) cvn H.B /DEST pdfmark end + -30 59925 a -30 62250 a +SDict begin H.S end + -30 62250 a -30 +62250 a +SDict begin 16.9 H.A end + -30 62250 a -30 62250 a +SDict begin [ /View [/XYZ H.V] /Dest (4588) cvn H.B /DEST pdfmark end + -30 62250 a 3070 63926 +a Fu(W)-58 b(arning:)9601 63926 y +SDict begin H.S end + 9601 63926 a 9601 63926 +a +SDict begin 16.9 H.A end + 9601 63926 a 9601 63926 a +SDict begin [ /View [/XYZ H.V] /Dest (4589) cvn H.B /DEST pdfmark end + 9601 63926 a Fn(telnet)352 +b Ft(does)i(not)g(encr)43 b(ypt)353 b(the)h(inf)-43 b(or)36 +b(mation)355 b(it)f(sends)-22 b(.)354 b(Ev)-36 b(er)43 +b(ything)353 b(is)h(sent)3070 65797 y(in)427 b(plain)h(te)-43 +b(xt,)427 b(e)-43 b(v)-36 b(en)427 b(pass)-43 b(w)-14 +b(ords)-22 b(.)426 b(It)h(is)g(not)g(advisab)-29 b(le)428 +b(to)f(use)38250 65797 y +SDict begin H.S end + 38250 65797 a 38250 65797 a +SDict begin 16.9 H.A end + +38250 65797 a 38250 65797 a +SDict begin [ /View [/XYZ H.V] /Dest (4590) cvn H.B /DEST pdfmark end + 38250 65797 a Fn(telnet)e +Ft(o)-22 b(v)-36 b(er)428 b(the)f(Inter-)p Black -30 +73792 a FR(162)p Black eop end +%%Page: 163 185 +TeXDict begin 163 184 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.163) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f +(Commands)p Black 3070 3611 a Ft(net.)437 b(Instead,)g(consider)h(the) +19777 3611 y +SDict begin H.S end + 19777 3611 a 19777 3611 a +SDict begin 16.9 H.A end + 19777 3611 a 19777 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4591) cvn H.B /DEST pdfmark end + 19777 3611 a Fn(Secure)690 b(Shell)p Ft(.)436 +b(It)h(encr)43 b(ypts)436 b(all)j(tr)-14 b(af\002c)436 +b(and)i(is)f(a)-29 b(v)-36 b(ailab)-29 b(le)3070 5482 +y(f)-43 b(or)400 b(free)-22 b(.)745 8271 y +SDict begin H.S end + 745 8271 a +745 8271 a +SDict begin 18.2 H.A end + 745 8271 a 745 8271 a +SDict begin [ /View [/XYZ H.V] /Dest (4592) cvn H.B /DEST pdfmark end + 745 8271 a -30 13789 +a FG(The)518 b(other)g(use)f(of)g(telnet)-30 14742 y +SDict begin H.S end + +-30 14742 a -30 14742 a +SDict begin 18.2 H.A end + -30 14742 a -30 14742 a +SDict begin [ /View [/XYZ H.V] /Dest (4594) cvn H.B /DEST pdfmark end + -30 14742 +a 1991 x FU(No)-39 b(w)430 b(that)f(we)h(ha)-31 b(v)-23 +b(e)429 b(con)-62 b(vinced)429 b(you)g(not)h(to)f(use)g(the)h(telnet)f +(protocol)g(an)-23 b(ymore)429 b(to)g(log)g(into)-30 +18748 y(a)388 b(remote)f(machine,)g(we')-15 b(ll)387 +b(sho)-39 b(w)387 b(you)g(a)g(couple)g(of)h(useful)f(w)-15 +b(ays)386 b(to)h(use)40702 18748 y +SDict begin H.S end + 40702 18748 a 40702 +18748 a +SDict begin 18.2 H.A end + 40702 18748 a 40702 18748 a +SDict begin [ /View [/XYZ H.V] /Dest (4595) cvn H.B /DEST pdfmark end + 40702 18748 a FP(telnet)p +FU(.)-30 19858 y +SDict begin H.S end + -30 19858 a -30 19858 a +SDict begin 18.2 H.A end + -30 19858 a +-30 19858 a +SDict begin [ /View [/XYZ H.V] /Dest (4596) cvn H.B /DEST pdfmark end + -30 19858 a 1679 x FU(Y)-170 b(ou)387 b(can)g(also)g(use)g +(the)13013 21537 y +SDict begin H.S end + 13013 21537 a 13013 21537 a +SDict begin 18.2 H.A end + 13013 +21537 a 13013 21537 a +SDict begin [ /View [/XYZ H.V] /Dest (4597) cvn H.B /DEST pdfmark end + 13013 21537 a FP(telnet)f FU(command)h(to)g +(connect)g(to)g(a)h(host)f(on)g(a)g(certain)h(port.)-30 +23422 y +SDict begin H.S end + -30 23422 a -30 23422 a +SDict begin 14.56 H.A end + -30 23422 a -30 23422 +a +SDict begin [ /View [/XYZ H.V] /Dest (4598) cvn H.B /DEST pdfmark end + -30 23422 a -30 23422 a +SDict begin H.S end + -30 23422 a -30 23422 a +SDict begin 14.56 H.A end + -30 +23422 a -30 23422 a +SDict begin [ /View [/XYZ H.V] /Dest (4599) cvn H.B /DEST pdfmark end + -30 23422 a 1277 x FJ(\045)1309 24699 +y +SDict begin H.S end + 1309 24699 a 1309 24699 a +SDict begin 14.56 H.A end + 1309 24699 a 1309 24699 a +SDict begin [ /View [/XYZ H.V] /Dest (4600) cvn H.B /DEST pdfmark end + +1309 24699 a FH(telnet)743 b FK(<)7459 24699 y +SDict begin H.S end + 7459 24699 +a 7459 24699 a +SDict begin 14.56 H.A end + 7459 24699 a 7459 24699 a +SDict begin [ /View [/XYZ H.V] /Dest (4601) cvn H.B /DEST pdfmark end + 7459 24699 a +Fy(hostname)5 b FK(>)743 b FH([port])-30 26416 y +SDict begin H.S end + -30 +26416 a -30 26416 a +SDict begin 18.2 H.A end + -30 26416 a -30 26416 a +SDict begin [ /View [/XYZ H.V] /Dest (4602) cvn H.B /DEST pdfmark end + -30 26416 +a 1847 x FU(This)512 b(can)h(be)g(quite)f(handy)g(when)h(you)f(quickly) +g(need)h(to)f(test)g(a)h(certain)g(service,)g(and)f(you)-30 +30278 y(need)400 b(full)f(control)g(o)-23 b(v)g(er)399 +b(the)g(commands,)g(and)h(you)f(need)g(to)h(see)f(what)h(e)-23 +b(xactly)399 b(is)g(going)g(on.)-30 32292 y(Y)-170 b(ou)467 +b(can)g(interacti)-39 b(v)-23 b(ely)467 b(test)g(or)g(use)g(an)h(SMTP)e +(serv)-23 b(er)-62 b(,)468 b(a)f(POP3)g(serv)-23 b(er)-62 +b(,)468 b(an)f(HTTP)g(serv)-23 b(er)-62 b(,)-30 34307 +y(etc.)388 b(this)f(w)-15 b(ay)-101 b(.)-30 35417 y +SDict begin H.S end + -30 +35417 a -30 35417 a +SDict begin 18.2 H.A end + -30 35417 a -30 35417 a +SDict begin [ /View [/XYZ H.V] /Dest (4603) cvn H.B /DEST pdfmark end + -30 35417 +a 1680 x FU(In)434 b(the)f(ne)-23 b(xt)433 b(\002gure)h(you')-15 +b(ll)432 b(see)i(ho)-39 b(w)434 b(you)f(can)26091 37097 +y +SDict begin H.S end + 26091 37097 a 26091 37097 a +SDict begin 18.2 H.A end + 26091 37097 a 26091 37097 +a +SDict begin [ /View [/XYZ H.V] /Dest (4604) cvn H.B /DEST pdfmark end + 26091 37097 a FP(telnet)g FU(to)g(a)h(HTTP)f(serv)-23 +b(er)433 b(on)h(port)f(80,)h(and)-30 39111 y(get)387 +b(some)g(basic)g(information)g(from)g(it.)-30 39447 y +SDict begin H.S end + +-30 39447 a -30 39447 a +SDict begin 18.2 H.A end + -30 39447 a -30 39447 a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-TELNET-WEB) +cvn H.B /DEST pdfmark end + -30 39447 +a 4004 x FX(Figur)-28 b(e)387 b(13-1.)h(T)-143 b(elnetting)386 +b(to)i(a)f(webser)-15 b(v)g(er)-30 45315 y +SDict begin H.S end + -30 45315 +a -30 45315 a +SDict begin 14.56 H.A end + -30 45315 a -30 45315 a +SDict begin [ /View [/XYZ H.V] /Dest (4607) cvn H.B /DEST pdfmark end + -30 45315 a -30 +45315 a +SDict begin H.S end + -30 45315 a -30 45315 a +SDict begin 14.56 H.A end + -30 45315 a -30 45315 +a +SDict begin [ /View [/XYZ H.V] /Dest (4608) cvn H.B /DEST pdfmark end + -30 45315 a 1297 x FJ(\045)1309 46612 y +SDict begin H.S end + 1309 46612 +a 1309 46612 a +SDict begin 14.56 H.A end + 1309 46612 a 1309 46612 a +SDict begin [ /View [/XYZ H.V] /Dest (4609) cvn H.B /DEST pdfmark end + 1309 46612 a +FH(telnet)743 b(store.slackware.com)f(80)-30 48224 y +FP(Trying)h(69.50.233.153...)-30 49836 y(Connected)g(to)h +(store.slackware.com.)-30 51447 y(Escape)f(character)g(is)h('^]'.)-30 +53059 y(HEAD)f(/)h(HTTP/1.0)-30 56282 y(HTTP/1.1)f(200)h(OK)-30 +57894 y(Date:)f(Mon,)h(25)f(Apr)h(2005)f(20:47:01)g(GMT)-30 +59506 y(Server:)g(Apache/1.3.33)f(\(Unix\))i(mod_ssl/2.8.22)e +(OpenSSL/0.9.7d)-30 61118 y(Last-Modified:)g(Fri,)i(18)f(Apr)h(2003)f +(10:58:54)g(GMT)-30 62729 y(ETag:)g("193424-c0-3e9fda6e")-30 +64341 y(Accept-Ranges:)f(bytes)-30 65953 y(Content-Length:)g(192)-30 +67565 y(Connection:)h(close)p Black 49451 73792 a FR(163)p +Black eop end +%%Page: 164 186 +TeXDict begin 164 185 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.164) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 3611 a FP(Content-Type:)742 b(text/html)-30 +6835 y(Connection)h(closed)g(by)h(foreign)f(host.)-30 +7030 y +SDict begin H.S end + -30 7030 a -30 7030 a +SDict begin 14.56 H.A end + -30 7030 a -30 7030 a +SDict begin [ /View [/XYZ H.V] /Dest (4610) cvn H.B /DEST pdfmark end + -30 +7030 a 1416 x FJ(\045)-30 10017 y +SDict begin H.S end + -30 10017 a -30 10017 +a +SDict begin 18.2 H.A end + -30 10017 a -30 10017 a +SDict begin [ /View [/XYZ H.V] /Dest (4611) cvn H.B /DEST pdfmark end + -30 10017 a 1994 x FU(Y)-170 +b(ou)459 b(can)g(do)g(the)g(same)g(for)g(other)g(plain-te)-23 +b(xt)458 b(protocols,)h(as)g(long)f(as)h(you)g(kno)-39 +b(w)459 b(what)g(port)-30 14025 y(to)387 b(connect)g(to,)h(and)f(what)g +(the)g(commands)g(are.)-30 16574 y +SDict begin H.S end + -30 16574 a -30 16574 +a +SDict begin 18.2 H.A end + -30 16574 a -30 16574 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-SSH) cvn +H.B /DEST pdfmark end + -30 16574 a 5901 x FL(13.6)620 +b(The)f(Secure)h(shell)-30 22503 y +SDict begin H.S end + -30 22503 a -30 22503 +a +SDict begin 18.2 H.A end + -30 22503 a -30 22503 a +SDict begin [ /View [/XYZ H.V] /Dest (4614) cvn H.B /DEST pdfmark end + -30 22503 a -30 22503 a +SDict begin H.S end + -30 +22503 a -30 22503 a +SDict begin 18.2 H.A end + -30 22503 a -30 22503 a +SDict begin [ /View [/XYZ H.V] /Dest (4616) cvn H.B /DEST pdfmark end + -30 22503 +a -30 23618 a +SDict begin H.S end + -30 23618 a -30 23618 a +SDict begin 18.2 H.A end + -30 23618 a -30 +23618 a +SDict begin [ /View [/XYZ H.V] /Dest (4619) cvn H.B /DEST pdfmark end + -30 23618 a 1987 x FU(T)-124 b(oday)-101 b(,)447 +b(secure)g(shell)g(basks)f(in)h(the)f(adoration)h(that)29274 +25605 y +SDict begin H.S end + 29274 25605 a 29274 25605 a +SDict begin 18.2 H.A end + 29274 25605 a 29274 +25605 a +SDict begin [ /View [/XYZ H.V] /Dest (4620) cvn H.B /DEST pdfmark end + 29274 25605 a FP(telnet)f FU(once)h(enjo)-15 +b(yed.)43283 25605 y +SDict begin H.S end + 43283 25605 a 43283 25605 a +SDict begin 18.2 H.A end + 43283 +25605 a 43283 25605 a +SDict begin [ /View [/XYZ H.V] /Dest (4621) cvn H.B /DEST pdfmark end + 43283 25605 a FP(ssh)p FU(\(1\))446 +b(allo)-39 b(ws)-30 27620 y(one)388 b(to)g(mak)-15 b(e)387 +b(a)h(connection)f(to)h(a)g(remote)g(machine)f(and)h(e)-23 +b(x)g(ecute)388 b(programs)f(as)h(if)g(one)g(were)-30 +29634 y(ph)-8 b(ysically)564 b(present;)h(ho)-39 b(we)g(v)-23 +b(er)-62 b(,)18495 29634 y +SDict begin H.S end + 18495 29634 a 18495 29634 +a +SDict begin 18.2 H.A end + 18495 29634 a 18495 29634 a +SDict begin [ /View [/XYZ H.V] /Dest (4622) cvn H.B /DEST pdfmark end + 18495 29634 a FP(ssh)565 +b FU(encrypts)g(all)f(the)h(data)g(tra)-31 b(v)-23 b(elling)564 +b(between)h(the)g(tw)-15 b(o)-30 31649 y(computers)346 +b(so)g(e)-39 b(v)-23 b(en)347 b(if)g(others)f(intercept)g(the)h(con)-62 +b(v)-23 b(ersation,)346 b(the)-23 b(y)346 b(are)h(unable)f(to)h +(understand)-30 33664 y(it.)388 b(A)f(typical)g(secure)g(shell)g +(connection)g(follo)-39 b(ws.)-30 35549 y +SDict begin H.S end + -30 35549 a +-30 35549 a +SDict begin 12.972 H.A end + -30 35549 a -30 35549 a +SDict begin [ /View [/XYZ H.V] /Dest (4623) cvn H.B /DEST pdfmark end + -30 35549 a -30 35549 +a +SDict begin H.S end + -30 35549 a -30 35549 a +SDict begin 12.972 H.A end + -30 35549 a -30 35549 a +SDict begin [ /View [/XYZ H.V] /Dest (4624) cvn H.B /DEST pdfmark end + -30 +35549 a 1100 x Fj(\045)1163 36649 y +SDict begin H.S end + 1163 36649 a 1163 +36649 a +SDict begin 12.972 H.A end + 1163 36649 a 1163 36649 a +SDict begin [ /View [/XYZ H.V] /Dest (4625) cvn H.B /DEST pdfmark end + 1163 36649 a Fi(ssh)662 +b(carrier.lizella.net)657 b(-l)662 b(alan)-30 38085 y +Fh(The)g(authenticity)d(of)j(host)g('carrier.lizella.net)657 +b(\(192.168.1.253\)')h(can't)j(be)-30 39521 y(established.)-30 +40957 y(RSA)h(key)g(fingerprint)d(is)k +(0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.)-30 +42393 y(Are)f(you)g(sure)f(you)h(want)g(to)g(continue)e(connecting)g +(\(yes/no\)?)g(yes)-30 43829 y(Warning:)h(Permanently)e(added)i +('carrier.lizella.net')c(\(RSA\))k(to)i(the)e(list)h(of)-30 +45265 y(known)f(hosts.)-30 46701 y(Password:)6597 46701 +y +SDict begin H.S end + 6597 46701 a 6597 46701 a +SDict begin 12.972 H.A end + 6597 46701 a 6597 46701 a +SDict begin [ /View [/XYZ H.V] /Dest (4626) cvn H.B /DEST pdfmark end + +6597 46701 a Fi(password)-30 48137 y Fh(Last)h(login:)f(Sat)h(Nov)1324 +b(6)663 b(16:32:19)d(2004)i(from)f(192.168.1.102)-30 +49573 y(Linux)g(2.4.26-smp.)-30 51009 y(alan@carrier:~$)10574 +51009 y +SDict begin H.S end + 10574 51009 a 10574 51009 a +SDict begin 12.972 H.A end + 10574 51009 a 10574 +51009 a +SDict begin [ /View [/XYZ H.V] /Dest (4627) cvn H.B /DEST pdfmark end + 10574 51009 a Fi(ls)h(-l)g(MANIFEST)-30 52445 +y Fh(-rw-r--r--)1323 b(1)662 b(alan)g(users)f(23545276)f(2004-10-28)g +(20:04)i(MANIFEST)-30 53881 y(alan@carrier:~$)10574 53881 +y +SDict begin H.S end + 10574 53881 a 10574 53881 a +SDict begin 12.972 H.A end + 10574 53881 a 10574 53881 +a +SDict begin [ /View [/XYZ H.V] /Dest (4628) cvn H.B /DEST pdfmark end + 10574 53881 a Fi(exit)-30 55317 y Fh(logout)-30 56753 +y(Connection)e(to)i(carrier.lizella.net)657 b(closed.)-30 +58326 y +SDict begin H.S end + -30 58326 a -30 58326 a +SDict begin 18.2 H.A end + -30 58326 a -30 58326 +a +SDict begin [ /View [/XYZ H.V] /Dest (4629) cvn H.B /DEST pdfmark end + -30 58326 a 1991 x FU(There)525 b(you)g(see)g(me)g(making)f(an)h(ssh) +f(connection)g(to)30605 60317 y +SDict begin H.S end + 30605 60317 a 30605 60317 +a +SDict begin 18.2 H.A end + 30605 60317 a 30605 60317 a +SDict begin [ /View [/XYZ H.V] /Dest (4630) cvn H.B /DEST pdfmark end + 30605 60317 a 0 1 0 0 TeXcolorcmyk +30605 60317 a +SDict begin H.S end + 30605 60317 a 0 1 0 0 TeXcolorcmyk FQ +(carrier.lizella.net)p 0 1 0 0 TeXcolorcmyk 42506 59577 +a +SDict begin H.R end + 42506 59577 a 42506 60317 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (carrier.lizella.net) >> /Subtype /Link H.B /ANN pdfmark +end + 42506 60317 a Black FU(,)h(and)g +(checking)-30 62332 y(the)387 b(permissions)f(on)h(the)14262 +62332 y +SDict begin H.S end + 14262 62332 a 14262 62332 a +SDict begin 18.2 H.A end + 14262 62332 a 14262 +62332 a +SDict begin [ /View [/XYZ H.V] /Dest (4631) cvn H.B /DEST pdfmark end + 14262 62332 a FQ(MANIFEST)382 b FU(\002le.)-30 +63442 y +SDict begin H.S end + -30 63442 a -30 63442 a +SDict begin 18.2 H.A end + -30 63442 a -30 63442 +a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL) +cvn H.B /DEST pdfmark end + -30 63442 a Black 10350 x FR(164)p Black eop end +%%Page: 165 187 +TeXDict begin 165 186 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.165) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (4658) cvn H.B /DEST pdfmark end + -30 -2687 a 27927 -1636 a FR(Chapter)386 +b(13)i(Basic)f(Network)f(Commands)p Black -30 4132 a +FL(13.7)620 b(email)-30 4160 y +SDict begin H.S end + -30 4160 a -30 4160 a +SDict begin 18.2 H.A end + +-30 4160 a -30 4160 a +SDict begin [ /View [/XYZ H.V] /Dest (4634) cvn H.B /DEST pdfmark end + -30 4160 a -30 5276 a +SDict begin H.S end + -30 5276 +a -30 5276 a +SDict begin 18.2 H.A end + -30 5276 a -30 5276 a +SDict begin [ /View [/XYZ H.V] /Dest (4636) cvn H.B /DEST pdfmark end + -30 5276 a 1987 x +FU(Electronic)332 b(mail)g(is)g(one)g(of)h(the)f(most)g(popular)g +(things)f(one)i(can)f(do)g(on)h(the)f(Internet.)g(In)h(1998,)-30 +9277 y(it)559 b(w)-15 b(as)559 b(reported)g(that)g(more)g(electronic)g +(mail)f(w)-15 b(as)559 b(sent)g(than)g(re)-23 b(gular)559 +b(mail.)g(It)g(is)g(indeed)-30 11292 y(common)387 b(and)g(useful.)-30 +12082 y +SDict begin H.S end + -30 12082 a -30 12082 a +SDict begin 18.2 H.A end + -30 12082 a -30 12082 +a +SDict begin [ /View [/XYZ H.V] /Dest (4637) cvn H.B /DEST pdfmark end + -30 12082 a 1999 x FU(Under)368 b(Slackw)-15 b(are,)367 +b(we)h(pro)-23 b(vide)367 b(a)g(standard)h(mail)f(serv)-23 +b(er)-62 b(,)368 b(and)f(se)-39 b(v)-23 b(eral)368 b(mail)f(clients.)h +(All)f(of)-30 16096 y(the)459 b(clients)f(discussed)g(belo)-39 +b(w)459 b(are)g(te)-23 b(xt-based.)459 b(A)f(lot)h(of)g(W)-62 +b(indo)-39 b(ws)458 b(users)h(may)f(be)h(ag)-8 b(ainst)-30 +18111 y(this,)527 b(b)-31 b(ut)526 b(you)g(will)h(\002nd)f(that)g(a)h +(te)-23 b(xt)526 b(based)h(client)f(is)g(v)-23 b(ery)527 +b(con)-62 b(v)-23 b(enient,)526 b(especially)g(when)-30 +20125 y(checking)518 b(mail)g(remotely)-101 b(.)519 b(Fear)f(not,)h +(there)g(are)f(man)-23 b(y)518 b(graphical)h(e-mail)f(clients)g(such)g +(as)-30 22140 y(KDE')-85 b(s)387 b(Kmail.)g(If)h(you)f(wish)g(to)g(use) +g(one)g(of)h(those)e(check)i(its)f(help)g(menu.)-30 22476 +y +SDict begin H.S end + -30 22476 a -30 22476 a +SDict begin 18.2 H.A end + -30 22476 a -30 22476 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-PINE) +cvn H.B /DEST pdfmark end + -30 +22476 a 5026 x FF(pine)-30 27887 y +SDict begin H.S end + -30 27887 a -30 27887 +a +SDict begin 18.2 H.A end + -30 27887 a -30 27887 a +SDict begin [ /View [/XYZ H.V] /Dest (4641) cvn H.B /DEST pdfmark end + -30 27887 a -30 27887 a +SDict begin H.S end + -30 +27887 a -30 27887 a +SDict begin 18.2 H.A end + -30 27887 a -30 27887 a +SDict begin [ /View [/XYZ H.V] /Dest (4644) cvn H.B /DEST pdfmark end + -30 27887 +a -30 27887 a +SDict begin H.S end + -30 27887 a -30 27887 a +SDict begin 18.2 H.A end + -30 27887 a -30 +27887 a +SDict begin [ /View [/XYZ H.V] /Dest (4647) cvn H.B /DEST pdfmark end + -30 27887 a -30 28817 a +SDict begin H.S end + -30 28817 a -30 28817 +a +SDict begin 18.2 H.A end + -30 28817 a -30 28817 a +SDict begin [ /View [/XYZ H.V] /Dest (4649) cvn H.B /DEST pdfmark end + -30 28817 a -30 28817 a +SDict begin H.S end + -30 +28817 a -30 28817 a +SDict begin 18.2 H.A end + -30 28817 a -30 28817 a +SDict begin [ /View [/XYZ H.V] /Dest (4650) cvn H.B /DEST pdfmark end + -30 28817 +a 1630 x FP(pine)p FU(\(1\))310 b(is)g(not)8698 30447 +y +SDict begin H.S end + 8698 30447 a 8698 30447 a +SDict begin 18.2 H.A end + 8698 30447 a 8698 30447 a +SDict begin [ /View [/XYZ H.V] /Dest (4651) cvn H.B /DEST pdfmark end + +8698 30447 a FP(elm)p FU(.)h(Or)f(so)g(the)h(saying)f(goes.)g(The)g +(Uni)-39 b(v)-23 b(ersity)310 b(of)g(W)-124 b(ashington)310 +b(created)g(their)-30 32461 y(program)432 b(for)g(Internet)g(ne)-39 +b(ws)433 b(and)f(email)g(out)g(of)g(a)g(need)h(for)f(an)g(easy)h(mail)e +(reader)i(for)f(their)-30 34476 y(students.)5848 34476 +y +SDict begin H.S end + 5848 34476 a 5848 34476 a +SDict begin 18.2 H.A end + 5848 34476 a 5848 34476 a +SDict begin [ /View [/XYZ H.V] /Dest (4652) cvn H.B /DEST pdfmark end + +5848 34476 a FP(pine)410 b FU(is)g(one)g(of)h(the)f(most)g(popular)g +(email)g(clients)f(in)h(use)h(today)f(and)g(is)g(a)-31 +b(v)-39 b(ailable)-30 36491 y(for)388 b(nearly)f(e)-39 +b(v)-23 b(ery)387 b(\003a)-31 b(v)g(or)387 b(of)h(Unix)e(and)i(e)-39 +b(v)-23 b(en)387 b(W)-62 b(indo)-39 b(ws.)-30 36826 y +SDict begin H.S end + +-30 36826 a -30 36826 a +SDict begin 18.2 H.A end + -30 36826 a -30 36826 a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-PINE) +cvn H.B /DEST pdfmark end + -30 36826 +a Black 49451 73792 a FR(165)p Black eop end +%%Page: 166 188 +TeXDict begin 166 187 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.166) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-ELM) +cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(13)g(Basic)g(Network)f(Commands)p Black -30 3611 a +FX(Figur)-28 b(e)387 b(13-2.)h(The)e(Pine)h(main)g(menu)-30 +5475 y +SDict begin H.S end + -30 5475 a -30 5475 a +SDict begin 18.2 H.A end + -30 5475 a -30 5475 a +SDict begin [ /View [/XYZ H.V] /Dest (4655) cvn H.B /DEST pdfmark end + -30 +5475 a -30 38552 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 38552 a @beginspecial 12 @llx +212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial +%%BeginDocument: basic-network-commands/pine.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +80c080c080c080c080c080c080c080c080c080c0f0c0fa00fcc0fc0009c0 +c00000c0c0c00000c0f900f3c0010000f6c0f90001c0c0fb00e6c0060000 +c0c0c00000fcc00000fac0fc0008c0c00000c0c0c00000f7c0070000c0c0 +c00000c0f9000fc00000c0c0c00000c00000c0c0c0000080c097c0f900f5 +c0fd00fac0fd00dcc0fc0009c0c00000c0c0c00000c0fa00fdc0fb0008c0 +c00000c0c0c00000eec0fb00f6c0060000c0c0c00000afc0efc0050000c0 +c00000fcc0130000c0c0c0000000c0c00000c0c00000c0c00000f4c0fd00 +f6c0010000fac0060000c0c0c00000e7c0fd0009c0000000c0c0c0000000 +fac00b0000c0c0c0000000c0c00000f7c0fd001bc0000000c0c00000c0c0 +0000c0000000c0c00000c00000c0c0c0000080c096c0050000c0c00000f4 +c0010000f9c0010000dbc0230000c0c0c0000000c0c00000c0c00000c0c0 +0000c00000c0c0c00000c00000c0c0c00000efc0060000c0c0c00000f7c0 +fd0003c0000000afc0efc0050000c0c00000fcc0040000c0c0c0fc000ac0 +0000c0c00000c0c0c000f5c0fc00f6c0010000fac0060000c0c0c00000e7 +c0f90006c0c00000c00000fbc0040000c0c0c0fc0002c00000f7c0f90008 +c0c00000c0c0c000c0fc000ac00000c00000c0c0c0000080c096c0050000 +c0c0c000f4c0010000f9c0010000ebc0010000f2c0040000c0c0c0fc0019 +c00000c0c00000c0c00000c00000c0c0c00000c0c00000c00000e9c00100 +00f7c0f900afc0efc0050000c0c00000fcc0040000c0c0c0f90005c0c000 +00c000f4c0040000c00000f6c0010000fac0060000c0c0c00000e7c0f900 +07c00000c0c0c00000fcc0040000c0c0c0f900f7c0f90008c0c00000c000 +c0c0c0f90007c00000c0c0c0000080c096c0030000c000fcc0fb00fbc001 +0000fbc0fc00fdc0fb0007c0c00000c0000000fbc0010000f2c0040000c0 +c0c0f90011c0c00000c0c00000c00000c0c0c00000c0c0fb00eac0010000 +f6c0f90001c0c0fb00fdc0fb00fdc0fb00fdc0fc00fcc0fd0004c00000c0 +c0fb00fdc0fb00e6c0efc0fb00fbc0070000c0c0c00000c0fc0001c0c0fc +00f5c0050000c0c00000f6c0fa00fdc0fb00e6c00e0000c000c00000c000 +00c0c0c00000fcc0070000c0c0c00000c0fc00f7c0080000c000c00000c0 +c0fc00fdc0020000c0fc0007c00000c0c0c0000080c096c0fc00fdc00600 +00c0c0c00000fcc0010000fcc0150000c00000c0c00000c0c0c00000c0c0 +000000c00000ecc0070000c0c0c00000c0fc0001c0c0fb000ec0c00000c0 +c0c00000c0c0c0000000eac0010000f5c01e0000c000c00000c00000c0c0 +c00000c00000c0c0c00000c00000c0c0c00000fbc01a0000c0c00000c0c0 +0000c0c00000c0c0c00000c00000c0c0c00000e7c0efc0010000f8c01100 +00c0c0c00000c0c0000000c0c00000c000f5c0f900f2c0090000c00000c0 +c0c00000e7c0070000c0c0c00000c0f900fcc00b0000c0c0c00000c0c000 +0000f7c01e0000c0c0c00000c0c00000c000c0c0c00000c0c0000000c000 +00c0c0c0000080c096c00d0000c000c0c0c00000c0c0c00000fcc00c0000 +c0c0c00000c0c00000c0c0f90007c0c00000c0c00000ecc0210000c0c0c0 +0000c0c0000000c0c00000c0c00000c00000c0c0c00000c0c0c0000000eb +c0010000f4c0070000c0c0c00000c0f90003c0c00000fac0010000fac0fb +0009c0c00000c0c00000c0c0f90003c0c00000e3c0efc0010000f8c00f00 +00c0c0c00000c0c0c00000c0c00000efc0010000f1c0090000c00000c0c0 +c00000e7c00e0000c0c0c00000c00000c0c0c00000fcc00b0000c0c0c000 +00c0c0c00000f7c00a0000c0c0c00000c0c00000fbc00e0000c0c0c00000 +c00000c0c0c0000080c096c0010000fbc0060000c0c0c00000fcc00e0000 +c0c0c00000c0c00000c0c00000f9c0010000e8c01d0000c0c0c00000c0c0 +c00000c0c00000c0c00000c00000c0c0c00000c0c0fb00edc0010000f3c0 +090000c0c0c00000c00000f8c0fd00fbc0fd00fdc0110000c0c00000c0c0 +0000c0c00000c0c00000f8c0fd00e5c0efc0010000f8c0130000c0c0c000 +00c0c0c00000c0c00000c0c0c000f3c0010000f1c0090000c00000c0c0c0 +0000e7c00e0000c0c0c00000c00000c0c0c00000fcc00b0000c0c0c00000 +c0c0c00000f7c01e0000c0c0c00000c0c00000c0c0c000c00000c0c0c000 +00c00000c0c0c0000080c096c0010000fbc0060000c0c0c00000fcc00e00 +00c0c0c00000c0c00000c0c00000f9c0010000f8c0010000f2c0220000c0 +c0c00000c0c0c00000c0c00000c0c00000c00000c0c0c00000c0c00000c0 +0000eec0010000f2c0090000c0c0c00000c00000f6c0010000fac0150000 +c0c00000c0c00000c0c00000c0c00000c0c00000f6c0010000e6c0efc001 +0000f8c0130000c0c0c00000c0c0c00000c0c00000c0c00000f3c0010000 +fbc0130000c0c0c00000c0c0c00000c00000c0c0c00000e7c00e0000c0c0 +c00000c00000c0c0c00000fcc00b0000c0c0c00000c0c0c00000f7c01e00 +00c0c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000 +80c096c0010000fbc0060000c0c0c00000fcc0170000c0c0c00000c0c000 +00c0c00000c0c0c00000c0c00000f8c0010000f2c0230000c0c0c00000c0 +c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000efc0 +060000c0c0c00000f7c03e0000c0c0c00000c00000c0c0c00000c00000c0 +c0c00000c00000c0c0c00000c00000c0c00000c0c00000c0c00000c0c000 +00c0c0c00000c00000c0c0c00000e7c0f0c0fc00fac0fc0009c0c00000c0 +c0c00000c0f900f4c0fc00fcc0010000fcc0fb00fdc0fb00e6c0110000c0 +c0c00000c00000c0c0c00000c0c0c0fc0008c0c00000c0c0c00000f7c007 +0000c0c0c00000c0f90009c00000c0c0c00000c0c0fb0080c096c0fc00fb +c0fb00fcc0fc00fdc0fd0004c00000c0c0fb0001c0c0fc00eac0fc0009c0 +c00000c0c0c00000c0fa00fdc0fb0008c0c00000c0c0c00000efc0f900f7 +c0080000c0c0c00000c0c0fb00fdc0fb00fdc0fb00fdc0fd0004c00000c0 +c0fb00fdc0fb00fdc0fb00e6c080c080c080c080c0acc0010000d6c080c0 +80c080c080c0b0c0050000c0c00000d6c080c080c080c080c0afc0fc00d5 +c080c080c080c080c080c080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000af00fbc0d60007c0c0 +000000c0c000f9c00000fcc0fc00fac08000ec00fcc0f30000c0f400fdc0 +f100fdc0da0001c0c0e500fac0fb0001c0c08000b500b00006c0c0000000 +c0c0d70012c0c0000000c0c00000c0c00000c0c00000c0c0fa0005c0c000 +00c0c08000ee0005c0c00000c0c0f50001c0c0f30001c0c0f00001c0c0da +0001c0c0e40005c0c00000c0c0fc0001c0c08000b500b00006c0c0000000 +c0c0d70012c0c0000000c0c00000c0c0000000c00000c0c0fa0005c0c000 +00c0c08000ef0001c0c0fc0000c0f50001c0c0f30001c0c0f00001c0c0bc +0005c0c00000c0c08000af00ac0001c0c0d6000cc0c0000000c0c00000c0 +c000c0fc0001c0c0fa0005c0c00000c0c08000ef0001c0c0f900fbc00100 +00fac0f50007c0c000c0c0000000fbc0fb000ac0c0000000c0c000c0c0c0 +f60008c0c00000c0c0000000fbc0fc00fdc0fd000ec0c000c0c0c0000000 +c0c0c000c0c0f60017c0c00000c0c0000000c0c0c0000000c0c000c0c0c0 +000000fbc08000c600ad0001c0c0d500f9c0010000fcc0fc0001c0c0fa00 +fbc08000ee0001c0c0fa000bc0c0000000c0c0000000c0c0f300fdc00a00 +c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0f7000ec0c000 +00c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000c0c000 +00c0c0f500fbc0fb0001c0c0fc000dc0c00000c0c000c0c0000000c0c080 +00c700ad0001c0c0d5000cc0c0000000c0c00000c0c000c0fc0001c0c0fa +0001c0c08300f9c0ef0002c0c000fcc00000f9c0fd0001c0c0f30006c0c0 +0000c0c000f9c0fc0001c0c0fc0005c0c00000c0c0f7000ac0c00000c0c0 +000000c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0f50001c0 +c0f80001c0c0fc0006c0c00000c0c000f9c08000c700ad0001c0c0d5000a +c0c0000000c0c00000c0c0fa0001c0c0fa0001c0c08000eb0009c0c00000 +00c0c000c0c0f80001c0c0f30008c0c00000c0c000c0c0f70001c0c0fc00 +05c0c00000c0c0f70005c0c00000c0c0fc00fdc0fa0001c0c0fc000cc0c0 +0000c0c000c0c00000c0c0f50001c0c0f80001c0c0fc0008c0c00000c0c0 +00c0c08000c20080001ac0c0000000c0c00000c0c0000000c00000c0c000 +0000c00000c0c08000eb0009c0c0000000c0c000c0c0f80001c0c0f30008 +c0c00000c0c000c0c0f70001c0c0fc0005c0c00000c0c0f70005c0c00000 +c0c0fa0001c0c0fb0001c0c0fc000cc0c00000c0c000c0c00000c0c0f500 +01c0c0f80001c0c0fc0008c0c00000c0c000c0c08000c200ad0001c0c0d5 +001ac0c0000000c0c00000c0c00000c0c00000c0c00000c0c00000c0c080 +00ea0015c0c00000c0c000c0c0000000c0c0000000c0c000c0c0f6000dc0 +c00000c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0f7000e +c0c00000c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000 +c0c00000c0c0f50001c0c0f80001c0c0fc000dc0c00000c0c000c0c00000 +00c0c08000c700ad0001c0c0d50007c0c0000000c0c000f9c00000f9c000 +00fcc08000ea00fdc00300c00000fbc0fb00fdc0f600fdc0050000c0c000 +00fbc0fc00fcc0fd00fbc0f500fdc00400c0c00000fbc0fc00fcc0fd0007 +c0c00000c0c00000fbc0f600fcc0fa00fcc0fd0007c0c00000c0c00000fb +c08000c60080008000970001c0c0cf0001c0c080009e0080008000970001 +c0c0d30005c0c00000c0c080009e00800080009800fcc0d300fcc080009d +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000b80080c080c080c098 +c0b000b80080c080c080c098c0b000b800f6c0fc00d4c0fc00fdc0fb0009 +c0c00000c0c0c00000c0fa00fdc0fb00fdc0fb0001c0c0f900f7c0070000 +c0c0c00000c0f90001c0c0fb00fdc0fb00fbc00000fac0fc0001c0c0f900 +c5c0fc00b3c0fd00dbc0fd0080c001c0c0b000b800f7c0050000c0c00000 +d6c0350000c0c00000c00000c0c0c00000c0000000c0000000c0c00000c0 +c00000c00000c0c0c00000c00000c0c0c00000c0c00000c0c00000f7c0fd +0021c0000000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000 +c0c0c0000000fcc00d0000c0c00000c0c00000c0c00000c6c0050000c0c0 +0000b3c0010000dac001000080c001c0c0b000b800f8c0010000fcc00000 +d7c0010000fcc00900c00000c0c0c00000c0f9001fc0c00000c0c00000c0 +0000c0c0c00000c00000c0c0c00000c0c00000c0c0c000f7c0f90022c0c0 +0000c0c0c000c00000c0c0c00000c00000c0c0c00000c0c00000c00000c0 +c00000fcc00800c0c00000c0c0c000c7c0010000fcc00000b3c0010000da +c001000080c001c0c0b000b800f8c0010000d2c0010000fac0070000c0c0 +c00000c0f90013c0c00000c0c00000c00000c0c0c00000c0c00000fac003 +0000c000f5c0f90005c0c00000c000fcc0010000fac0010000fbc0090000 +c0c0c00000c00000f9c0030000c000c5c0010000f9c0fb0012c0c0000000 +c00000c0c00000c0000000c0c0c0fb00fdc0fb00fdc0fb00f5c0fc00fdc0 +050000c0000000fcc0fc00f5c0fb00fdc0fb0007c0c00000c0000000fcc0 +fc00f5c0fc00f5c0fd0005c00000c0c0c0fb00fdc0fb00fdc0fb00fdc0fc +00fcc0fd0004c00000c0c0fb00cec0b000b800f8c0010000d2c0010000fa +c0100000c0c0c00000c00000c000c00000c0c0fb000ec0c00000c0c0c000 +00c0c0c0000000fcc0fc00f5c0080000c000c00000c0c0fc00fbc0fd00fb +c0fd00fdc0090000c0c0c00000c00000f9c0fc00c5c0010000fac0070000 +c0c0c00000c0f9001fc0c00000c0c00000c00000c0c0c00000c00000c0c0 +c00000c00000c0c0c00000f3c0110000c0c0c00000c0c00000c0c00000c0 +0000f6c01d0000c0c0c00000c00000c0c0c00000c0c00000c0c00000c0c0 +0000c00000f2c0010000f6c0f90017c00000c0c0c00000c00000c0c0c000 +00c00000c0c0c00000fbc0120000c0c00000c0c00000c0c00000c0c0c000 +00cfc0b000b800f8c0010000d2c0010000fac0120000c0c0c00000c00000 +c0c0c00000c0c00000fbc0060000c0c0c00000fbc0080000c0c0c00000c0 +00f5c00c0000c0c0c00000c0c00000c000f9c0010000fac0030000c0c0f9 +0003c00000c0fc0005c0c00000c000ddc0f900efc0010000fac0220000c0 +c0c00000c00000c000c00000c0c00000c0c00000c00000c0c0c00000c0c0 +0000fbc0f900f6c0fb00fdc00c0000c0c00000c00000c0c00000f5c00100 +00fbc0f9000ec0c00000c0c00000c00000c0c00000f5c0fb00f6c0070000 +c000c00000c0f90003c0c00000fac0010000fac0fb0009c0c00000c0c000 +00c0c0f900cfc0b000b800f8c0010000d2c0010000fac0120000c0c0c000 +00c00000c0c0c00000c0c00000fbc0060000c0c0c00000fac0050000c0c0 +0000f3c00a0000c0c0c00000c0c00000f6c0010000fac0150000c00000c0 +c0c00000c00000c0c0c00000c0c00000c3c0010000fac0290000c0c0c000 +00c00000c000c00000c0c00000c0c00000c00000c0c0c00000c0c0c00000 +00c0c0c00000f2c0150000c0c00000c0c0c00000c0c00000c00000c0c000 +00f4c0fd00fdc0010000f9c00c0000c0c00000c00000c0c00000f6c00500 +00c0c00000f6c0090000c000c00000c00000f8c0fd00fbc0fd00fdc01100 +00c0c00000c0c00000c0c00000c0c00000cac0b000b800f8c0010000fcc0 +0000d7c0010000fcc01400c00000c0c0c00000c00000c0c0c00000c0c000 +00fbc0160000c0c0c00000c00000c0c0c00000c0c00000c0c0c000f7c036 +0000c0c0c00000c0c00000c0c0c000c00000c0c0c00000c00000c0c0c000 +00c00000c0c0c00000c00000c0c0c00000c0c00000c0c0c000c7c0010000 +fcc02000c00000c0c0c00000c00000c000c00000c0c00000c0c00000c000 +00c0c0c00000fbc0050000c0c00000f2c0150000c0c00000c0c0c00000c0 +c00000c00000c0c00000f2c0050000c0c00000f9c00c0000c0c00000c000 +00c0c00000f6c0050000c0c00000f6c0090000c000c00000c00000f6c001 +0000fac0150000c0c00000c0c00000c0c00000c0c00000c0c00000cac0b0 +00b800f7c0050000c0c00000d6c0190000c0c00000c00000c0c0c00000c0 +0000c0c0c00000c0c00000fbc0160000c0c0c00000c00000c0c0c00000c0 +c00000c0c00000f7c0360000c0c0c00000c0c00000c0c00000c00000c0c0 +c00000c00000c0c0c00000c00000c0c0c00000c0c00000c0c00000c0c000 +00c0c00000c6c0350000c0c00000c00000c0c0c00000c00000c000c00000 +c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000c00000c0c0c0 +0000f7c0150000c0c00000c0c0c00000c0c00000c00000c0c00000f6c01d +0000c0c0c00000c00000c0c0c00000c0c00000c0c00000c00000c0c00000 +f6c0050000c0c00000f6c0360000c000c00000c00000c0c0c00000c00000 +c0c0c00000c00000c0c0c00000c00000c0c00000c0c00000c0c00000c0c0 +0000c0c0c00000cfc0b000b800f6c0fc00d4c0fc00fdc0fb0009c0c00000 +c0c0c00000c0fc00fbc0fb00fdc0fb0001c0c0f900f7c0070000c0c0c000 +00c0f90001c0c0fb00fdc0fb0011c0c00000c0c0c00000c0c0c0000000c0 +00c0f900c5c0fc00fdc0fb000ac0c00000c0c0c00000c0c0fb00fdc0fb00 +fdc0fb00fdc0fb00f5c0fd0012c00000c0c00000c0c00000c0c0000000c0 +0000f6c0fb00fdc0fb00fdc00d0000c0c00000c0c0000000c00000f6c0fd +0002c00000f7c0080000c0c0c00000c0c0fb00fdc0fb00fdc0fb00fdc0fd +0004c00000c0c0fb00fdc0fb00cec0b000b80080c080c002c0000080c0d7 +c0010000c6c0b000b80080c080c002c0000080c0dbc0050000c0c00000c6 +c0b000b80080c080c0fc0080c0dbc0fc00c5c0b000b80080c080c080c098 +c0b000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000ae00fcc0d60007c0c0000000c0c000f9c0010000fbc0fd00fbc0fb +0000c0fa00fcc0010000f9c0f500fcc0090000c0c0000000c0c000fbc0fd +00f9c00700c0c0000000c0c0b70006c0c0000000c0c0fc0001c0c09a0001 +c0c0ba0000c0f100fdc0f400fdc0fa00fdc09600ad0001c0c0d500fdc021 +00c0c0c00000c0c00000c0c000c0c0000000c0c000c0c0000000c0c00000 +00c0c0c0fc000dc0c00000c0c00000c0c00000c0c0f40023c0c0000000c0 +c0c00000c0c00000c0c000c0c0000000c0c00000c0c000c0c0000000c0c0 +b70006c0c0000000c0c0fc0001c0c09a0001c0c0bb0001c0c0f20004c0c0 +00c0c0f40001c0c0f90001c0c09600ad0001c0c0d500f9c0220000c0c000 +0000c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c00000c0c0 +fc0008c00000c0c0000000c0f40004c0c0000000fcc01900c0c00000c0c0 +0000c0c00000c0c0000000c00000c0c000c0c0b60006c0c0000000c0c080 +00cd0001c0c0f20004c0c00000c0f40001c0c0f90001c0c09600ad0001c0 +c0d500f9c0050000c0c000c0fc0001c0c0fa0001c0c0fb0009c0c0000000 +c0c000c0c0f90003c0c000c0f20004c0c0000000f9c00d0000c0c00000c0 +c00000c0c000c0fc00fbc0b6000cc0c0000000c0c0000000c0c0c0fc00fb +c0080000c0c0000000c0c0f700fdc00500c0c0000000fbc0fd00fbc0fd00 +fbc0fd00fcc0fc00fdc00400c0c00000fbc0fd00fbc0f400fdc0fd0005c0 +c000c0c0c0f500fbc01a0000c0c00000c0c00000c0c000c0c0c00000c0c0 +00c0c0c0000000fbc0090000c0c000c0c0c00000fac0f40001c0c0fb00fb +c0fb0001c0c0fb00fcc0fd00fbc0070000c0c000c0c0c0a600ad0001c0c0 +d50008c0c000c000c0c00000fcc0fb00fdc0fb00fdc0fd0009c0c0000000 +c0c000c0c0f900fcc0f20007c0c0000000c0c000fcc0090000c0c00000c0 +c00000fcc0fb00fdc0b50006c0c0000000c0c0fc0013c0c0000000c0c000 +0000c0c000c0c0000000c0c0f700f9c01700c0c0000000c0c000c0c00000 +00c0c000c0c0000000c0c0fb001ac0c00000c0c00000c0c00000c0c00000 +00c0c000c0c0000000c0c0f40001c0c0fc0005c0c00000c0c0f70033c0c0 +000000c0c000c0c00000c0c0000000c0c0c000c0c00000c0c0c000c0c000 +c0c0000000c0c00000c0c00000c0c0000000c0c0f300fcc0fd0006c0c000 +0000c0c0fc0001c0c0fc0015c0c000c0c00000c0c0000000c0c00000c0c0 +c000c0c0a700ad0001c0c0d5000cc0c0000000c0c00000c0c000c0f90001 +c0c0fa0003c0c00000f9c00300c0c000fcc0050000c0c000c0f20019c0c0 +000000c0c00000c0c0c00000c0c00000c0c00000c0c000c0fb00fdc0cd00 +f9c0ef0006c0c0000000c0c0fc0004c0c0000000f9c00700c0c000c000c0 +c0f70007c0c000c000c0c000f9c0030000c0c0fa0001c0c0fa00fbc00900 +00c0c00000c0c00000f9c0030000c0c0f00001c0c0fc0005c0c00000c0c0 +f70001c0c0fa0017c0c00000c0c0000000c0c00000c0c00000c0c00000c0 +c000f9c00c0000c0c00000c0c0000000c0c0f20001c0c0fc0006c0c00000 +00c0c0fc000cc0c0000000c0c00000c0c00000f9c0070000c0c00000c0c0 +a700ad0001c0c0d5000ac0c0000000c0c00000c0c0f60001c0c0fa0015c0 +c000c0c0000000c0c000c0c0000000c0c00000c0c0f00017c0c0000000c0 +c0000000c0c00000c0c00000c0c00000c0c0fa00fbc0b60006c0c0000000 +c0c0fc0006c0c0000000c0c0fa0006c0c000c000c0c0f70009c0c000c000 +c0c000c0c0f800fdc0fb00fdc0fd0011c0c00000c0c00000c0c00000c0c0 +0000c0c0f800fdc0f20001c0c0fc0005c0c00000c0c0f70001c0c0fa000a +c0c00000c0c0000000c0c0fa0001c0c0fb0001c0c0f9000ac0c00000c0c0 +000000c0c0f20001c0c0fc0006c0c0000000c0c0fc000ec0c0000000c0c0 +0000c0c00000c0c0f90001c0c0a300ad0001c0c0d50036c0c0000000c0c0 +0000c0c0000000c000c0c0000000c0c000c0c0000000c0c000c0c0000000 +c0c000c0c0000000c0c00000c0c0000000c0f40022c0c0000000c0c00000 +00c0c00000c0c00000c0c00000c0c0000000c00000c0c000c0c0b50004c0 +c000c0c0fb0006c0c0000000c0c0fa0006c0c000c000c0c0f70009c0c000 +c000c0c000c0c0f60001c0c0fa0015c0c00000c0c00000c0c00000c0c000 +00c0c00000c0c0f60001c0c0f30001c0c0fc0005c0c00000c0c0f70001c0 +c0fa000ac0c00000c0c0000000c0c0fa0001c0c0fb0001c0c0f9000ac0c0 +0000c0c0000000c0c0f20001c0c0fc0006c0c0000000c0c0fc000ec0c000 +0000c0c00000c0c00000c0c0f90001c0c0a300ad0001c0c0d50036c0c000 +0000c0c00000c0c00000c0c000c0c0000000c0c000c0c0000000c0c000c0 +c0000000c0c00000c0c00000c0c00000c0c00000c0c0f40023c0c0000000 +c0c0000000c0c00000c0c000c0c0000000c0c00000c0c000c0c0000000c0 +c0b500fdc0fa000cc0c0000000c0c0000000c0c000f9c0f7003ec0c000c0 +00c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0c0 +0000c0c00000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0f4 +0001c0c0fc0005c0c00000c0c0f70012c0c0000000c0c000c0c00000c0c0 +000000c0c0fa0001c0c0fb0016c0c0000000c0c00000c0c00000c0c00000 +00c0c000c0c0f50001c0c0fc0006c0c0000000c0c0fc0017c0c0000000c0 +c00000c0c00000c0c0000000c0c00000c0c0a300ae00fcc0d60007c0c000 +0000c0c000f9c0010000fbc0fd00fbc0110000c0c0000000c0c0000000c0 +c0c000c000f9c0f500fcc0090000c0c0000000c0c000fbc0fd00f9c00700 +c0c0000000c0c0b40000c0fa00fcc0fd00fbc0fd0004c0c000c0c0f60008 +c0c0000000c0c00000fbc0fd00fbc0fd00fbc0fd00fdc00400c0c00000fb +c0fd00fbc0fd00fbc0f400fcc0fd0005c0c00000c0c0f600fbc0fd00fdc0 +0300c0c000fcc0fc00fcc0fb00fbc0fd0005c0c00000c0c0fc00fdc0f500 +fcc0fc00fbc0fc00fcc0fd00fdc00400c0c00000fbc0010000fcc0a40080 +0080008000fc0001c0c08000860080008000800005c0c00000c0c0800086 +008000800080000000fcc080008500800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000800080008000800080008000800080008000b000fcc0d4 +00f9c0010000fbc0010000fcc0fc00fbc0fd00f9c00000fac0f600fcc0fa +00fcc0fd00fbc0fd00fac0a600fbc0f400fdc0ea0000c0e100fdc0f400fd +c0fa00fdc0e30000c0e10001c0c08000d500af0001c0c0d20011c0c00000 +c0c000c0c0000000c0c00000c0c0fa0015c0c000c0c0000000c0c00000c0 +c00000c0c00000c0c0f60001c0c0f8000dc0c0000000c0c0000000c0c000 +00fac0a70006c0c0000000c0c0f40001c0c0eb0001c0c0e20004c0c000c0 +c0f40001c0c0f90001c0c0e40001c0c0e10001c0c08000d500af0001c0c0 +d20011c0c0000000c000c0c0000000c0c00000c0c0fa0015c0c00000c0c0 +0000c0c0000000c00000c0c00000c0c0f60001c0c0f80013c0c0000000c0 +c0000000c0c00000c000c0c000c0a70006c0c0000000c0c0f40001c0c0eb +0001c0c0e20004c0c00000c0f40001c0c0f90001c0c0e40001c0c08000b4 +00af0001c0c0d20011c0c000c0000000c0c0000000c0c00000c0c0fa000b +c0c00000c0c00000c0c000c0fc0005c0c00000c0c0f60001c0c0f80001c0 +c0fc0001c0c0f80001c0c0a40001c0c0fa00fbc0fb0001c0c0fc00fbc0fd +00fbc0010000fac0f500fcc0f30001c0c0fb00fbc0fb0001c0c0fb00fcc0 +fd00fbc0070000c0c000c0c0c0f600fac0fd00fbc0f6000cc0c0000000c0 +c0000000c0c0c0fc00fbc0080000c0c0000000c0c08000e700af0001c0c0 +d200fcc0fd000ac0c0000000c0c00000c0c0fa0007c0c00000c0c00000fc +c0fc00fbc0f50001c0c0f80001c0c0fb00fdc0fa0001c0c0a300fdc0fd00 +06c0c0000000c0c0fc0018c0c0000000c0c0000000c0c000c0c0000000c0 +c0000000c0c0f00001c0c0f500fcc0fd0006c0c0000000c0c0fc0001c0c0 +fc0015c0c000c0c00000c0c0000000c0c00000c0c0c000c0c0f50001c0c0 +fc0006c0c0000000c0c0f70006c0c0000000c0c0fc0013c0c0000000c0c0 +000000c0c000c0c0000000c0c08000e700af0001c0c0d20011c0c000c000 +0000c0c0000000c0c00000c0c0fa000bc0c00000c0c00000c0c000c0fc00 +04c0c000c0c0f50001c0c0f80001c0c0f90001c0c0fb0001c0c0bd00f9c0 +eb0003c0c00000f9c0fc0004c0c0000000f9c00200c0c0f80001c0c0f300 +fbc0f40001c0c0fc0006c0c0000000c0c0fc000cc0c0000000c0c00000c0 +c00000f9c0070000c0c00000c0c0f50001c0c0fc0006c0c0000000c0c0f7 +0006c0c0000000c0c0fc0004c0c0000000f9c00700c0c000c000c0c08000 +e700af0001c0c0d20001c0c0fb000ac0c0000000c0c00000c0c0fa0009c0 +c00000c0c00000c0c0fa0005c0c00000c0c0f60001c0c0f80001c0c0f800 +01c0c0fc0001c0c0a00004c0c000c0c0f70006c0c0000000c0c0fa0001c0 +c0f80001c0c0f40005c0c00000c0c0f40001c0c0fc0006c0c0000000c0c0 +fc000ec0c0000000c0c00000c0c00000c0c0f90001c0c0f10001c0c0fc00 +06c0c0000000c0c0f70006c0c0000000c0c0fc0006c0c0000000c0c0fa00 +06c0c000c000c0c08000e700af0005c0c0000000c0d60001c0c0fb0026c0 +c0000000c0c00000c0c0000000c00000c0c00000c0c00000c0c0000000c0 +0000c0c00000c0c0f60005c0c0000000c0fc000bc0c0000000c0c0000000 +c0c0fc0001c0c0a50009c0c0000000c0c000c0c0f70006c0c0000000c0c0 +fa0001c0c0f80001c0c0f40005c0c00000c0c0f40001c0c0fc0006c0c000 +0000c0c0fc000ec0c0000000c0c00000c0c00000c0c0f90001c0c0f10001 +c0c0fc0006c0c0000000c0c0f70006c0c0000000c0c0fc0006c0c0000000 +c0c0fa0006c0c000c000c0c08000e700af0005c0c00000c0c0d60001c0c0 +fb0026c0c0000000c0c00000c0c00000c0c00000c0c000c0c0000000c0c0 +0000c0c00000c0c00000c0c0f60005c0c00000c0c0fc000bc0c0000000c0 +c0000000c0c0fc0001c0c0a5000ec0c0000000c0c000c0c0000000c0c0fc +001bc0c0000000c0c0000000c0c000c0c0000000c0c0000000c0c000c0c0 +f70005c0c00000c0c0f40001c0c0fc0006c0c0000000c0c0fc0017c0c000 +0000c0c00000c0c00000c0c0000000c0c00000c0c0f1000cc0c000c0c000 +c0c0000000c0c0f60004c0c000c0c0fb000cc0c0000000c0c0000000c0c0 +00f9c08000e700b000f9c0d700fcc0fb00fbc0010000f9c00000fbc0fd00 +f9c00700c0c0c00000c0c0f700f9c0fd00fcc0fd00fbc0fc00fcc0a500fb +c0fd00fbc0fc00fcc0fd00fbc0fd00fbc0fb00fdc0f500fdc00200c0c0f6 +00fcc0fc00fbc0fc00fcc0fd00fdc00400c0c00000fbc0010000fcc0f100 +fdc0fd00fbc0f400fdc0fb00fcc0fd00fbc0fd0004c0c000c0c08000e600 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +80008000800080008000ad0000c0d10000c0fc00fbc0fd00fbc0fd00fac0 +010000f9c0010000fbc0fd00fbc0f600fac0fd00fbc0fd00fbc0080000c0 +c0c00000c0c0af0006c0c0000000c0c0f400fdc0f30000c0e100fdc0fb00 +fdc0d600fdc0eb00fdc08000c300ae00fdc0d300fdc0fc002dc0c000c0c0 +000000c0c000c0c0000000c0c00000c0c00000c0c00000c0c000c0c00000 +00c0c000c0c0000000c0c0f6001dc0c00000c0c000c0c0000000c0c000c0 +c0000000c0c00000c0c00000c0c0af0006c0c0000000c0c0f30001c0c0f4 +0001c0c0e00001c0c0fa0001c0c0d50001c0c0ea0001c0c08000c300af00 +04c0c000c0c0d50035c0c000c0c0000000c0c00000c0c00000c0c00000c0 +c00000c0c00000c0c00000c0c0000000c000c0c0000000c0c000c0c00000 +00c0c0f6001dc0c00000c0c000c0c0000000c0c000c0c0000000c0c00000 +c0c00000c0c0af0006c0c0000000c0c0f30001c0c0f40001c0c0e00001c0 +c0fa0001c0c0d50001c0c0ea0001c0c08000c300b00006c0c0000000c0c0 +d70024c0c0000000c0c00000c0c00000c0c00000c0c00000c0c00000c0c0 +0000c0c00000c0c000c0fc0001c0c0fa0001c0c0f2001cc0c00000c0c000 +c0c0000000c0c000c0c0000000c0c00000c0c000c0c0ae000dc0c0000000 +c0c000c0c000c0c0c0fc00fcc0fd00fcc0fd00fac0fd00fbc0f500fcc0fb +00fcc0fc00fcc00a0000c0c000c0c0c0000000fbc0fd00fbc0fd00fbc0f5 +00fcc0fc00fbc0fd00fbc0fd0005c0c00000c0c08000c700b00006c0c000 +0000c0c0d70018c0c0000000c0c00000c0c00000c0c00000c0c00000c0c0 +0000fbc0fd00fcc0fb00fdc0fb00fdc0f400fbc0120000c0c0000000c0c0 +00c0c0000000c0c00000fcc0ad0015c0c0000000c0c00000c0c00000c0c0 +0000c0c000c0c0fa0001c0c0fc0001c0c0fc0006c0c0000000c0c0f30032 +c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0c000c0c000c0c0 +000000c0c000c0c0000000c0c000c0c0000000c0c0f6001cc0c000c0c000 +00c0c0000000c0c000c0c0000000c0c00000c0c000c0c08000c600b000f9 +c0d700f9c01d0000c0c00000c0c00000c0c00000c0c00000c0c000c0c000 +0000c0c000c0f90001c0c0fa0001c0c0f50017c0c00000c0c000c0c00000 +00c0c000c0c0000000c0c00000fcc0c500f9c0ef0018c0c0000000c0c000 +00c0c00000c0c000c0c00000c0c0000000fbc0fc0001c0c0fc00f9c0f600 +fbc0190000c0c00000c0c00000c0c00000c0c0000000c0c00000c0c000f9 +c0030000c0c0fa0001c0c0f20017c0c00000c0c000c0c0000000c0c000c0 +c0000000c0c00000fcc08000c500b00006c0c0000000c0c0d70022c0c000 +0000c0c00000c0c00000c0c00000c0c00000c0c00000c0c00000c0c00000 +c0c0f60001c0c0fa0001c0c0f6001cc0c00000c0c000c0c0000000c0c000 +c0c0000000c0c00000c0c000c0c0ae001dc0c0000000c0c00000c0c00000 +c0c000c0c00000c0c00000c0c00000c0c0fc0001c0c0fc0001c0c0f2001a +c0c00000c0c00000c0c00000c0c00000c0c00000c0c0000000c0c0fb0001 +c0c0f800fdc0fb00fdc0f40017c0c00000c0c000c0c0000000c0c000c0c0 +000000c0c00000fcc08000c500b00006c0c0000000c0c0d70036c0c00000 +00c0c00000c0c00000c0c00000c0c00000c0c00000c0c00000c0c00000c0 +c0000000c000c0c0000000c0c000c0c0000000c0c0f6001dc0c00000c0c0 +00c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0af001dc0c000 +0000c0c00000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fc0001 +c0c0fc0001c0c0f2001ac0c00000c0c00000c0c00000c0c00000c0c00000 +c0c0000000c0c0fb0001c0c0f60001c0c0fa0001c0c0f5001cc0c00000c0 +c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c08000c600b000 +06c0c0000000c0c0d70036c0c0000000c0c00000c0c000c0c0000000c0c0 +00c0c0000000c0c00000c0c00000c0c00000c0c000c0c0000000c0c000c0 +c0000000c0c0f6001dc0c00000c0c000c0c0000000c0c000c0c0000000c0 +c00000c0c00000c0c0af001dc0c0000000c0c00000c0c00000c0c000c0c0 +0000c0c00000c0c00000c0c0fc000cc0c000c0c000c0c0000000c0c0f700 +1ac0c00000c0c00000c0c00000c0c00000c0c00000c0c0000000c0c0fb00 +16c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f6001dc0c000 +00c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c08000c7 +00b00006c0c0000000c0c0d70007c0c0000000c0c000fbc0fd00fbc0fd00 +fdc0040000c0c000f9c0010000fbc0fd00fbc0f600fac0fd00fbc0fd00fb +c0080000c0c0c00000c0c0ae00fbc0fd00fbc0fd00fdc00a00c0c00000c0 +c0c000c0c0fc00fdc0fd00fbc0f500fdc01300c0c00000c0c0c000c0c000 +00c0c0c000c0c000fcc0fb00fbc0fd00fbc0fd00fbc0f500fbc0fd00fbc0 +fd00fbc0080000c0c0c00000c0c08000c70080008000c70001c0c0800080 +00bb0080008000c70001c0c080008000bb0080008000c800fcc080008000 +bc0080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000af00fbc0d500fbc0010000f9c0010000fac0 +0800c0c0000000c0c000fac08000f400fcc0eb00fdc0fb0001c0c0d500fa +c0fb0001c0c0e400fbc0f30000c0f90001c0c08000c500b00006c0c00000 +00c0c0d70010c0c0000000c0c00000c0c00000c0c00000fac00f00c0c000 +0000c0c00000c0c00000c0c08000f60005c0c00000c0c0ed0004c0c000c0 +c0fc0001c0c0d40005c0c00000c0c0fc0001c0c0e50006c0c0000000c0c0 +f50001c0c0f90001c0c08000c500b00006c0c0000000c0c0d70026c0c000 +0000c0c00000c0c0000000c00000c000c0c000c000c0c0000000c0c00000 +c0c00000c0c08000f70001c0c0fc0000c0ed0004c0c00000c0ce0005c0c0 +0000c0c0df0006c0c0000000c0c0f50001c0c08000bc00af0001c0c0d200 +01c0c0fa0003c0c000c0fa0013c0c0000000c0c0000000c0c00000c0c000 +00c0c08000f70001c0c0f900fbc0070000c0c000c0c0c0fc0001c0c0fa00 +fdc0fc00fdc01400c0c000c0c00000c0c00000c0c000c0c0c0000000fbc0 +f50017c0c00000c0c0000000c0c0c0000000c0c000c0c0c0000000fbc0f6 +000fc0c0000000c0c000c0c000c0c0c00000fac0fc00fdc0fc00fbc00a00 +00c0c000c0c0c0000000fbc08000de00ae00fdc0d300fdc0fc00fcc0fa00 +0dc0c0000000c0c0000000c0c00000fbc08000f60001c0c0fa0010c0c000 +0000c0c00000c0c00000c0c00000fcc0fa0023c0c0000000c0c00000c0c0 +0000c0c00000c0c0000000c0c0c000c0c000c0c0000000c0c0f600fbc0fb +0001c0c0fc000dc0c00000c0c000c0c0000000c0c0f70013c0c0000000c0 +c00000c0c00000c0c0000000c0c0f9001bc0c0000000c0c0000000c0c000 +00c0c00000c0c000c0c0000000c0c08000df00ac0001c0c0d20008c0c000 +0000c0c000c0fa000fc0c0000000c0c0000000c0c00000c0c08b00f9c0ef +0001c0c0fa0013c0c0000000c0c00000c0c00000c0c0000000c0c0f9001c +c0c0000000c0c00000c0c00000c0c00000c0c0000000c0c00000c0c000f9 +c0f60001c0c0f80001c0c0fc0006c0c00000c0c000f9c0f70013c0c00000 +00c0c00000c0c00000c0c0000000c0c0f90017c0c0000000c0c0000000c0 +c00000c0c00000c0c00000c0c08000db00ab0001c0c0d20005c0c00000c0 +c0f8000fc0c0000000c0c0000000c0c00000c0c08000f30001c0c0fa0013 +c0c0000000c0c00000c0c00000c0c0000000c0c0f90017c0c0000000c0c0 +0000c0c00000c0c00000c0c0000000c0c0fb0001c0c0f10001c0c0f80001 +c0c0fc0008c0c00000c0c000c0c0f20013c0c0000000c0c00000c0c00000 +c0c0000000c0c0f90019c0c0000000c0c0000000c0c00000c0c00000c0c0 +000000c0c0c08000dd00b00006c0c0000000c0c0d7000ec0c0000000c0c0 +0000c0c0000000c0fc000fc0c0000000c0c0000000c0c00000c0c08000f3 +0001c0c0fc0015c000c0c0000000c0c00000c0c00000c0c0000000c0c0f9 +0017c0c0000000c0c00000c0c00000c0c00000c0c0000000c0c0fb0001c0 +c0f10001c0c0f80001c0c0fc0008c0c00000c0c000c0c0f20013c0c00000 +00c0c00000c0c00000c0c0000000c0c0f90013c0c0000000c0c0000000c0 +c00000c0c00000c0c0fb0001c0c08000de00b00006c0c0000000c0c0d700 +0ec0c0000000c0c00000c0c00000c0c0fc000fc0c0000000c0c0000000c0 +c00000c0c08000f2001ac0c00000c0c000c0c0000000c0c00000c0c00000 +c0c0000000c0c0f90017c0c0000000c0c00000c0c00000c0c00000c0c000 +0000c0c0fb0006c0c0000000c0c0f60001c0c0f80001c0c0fc000dc0c000 +00c0c000c0c0000000c0c0f70016c0c0000000c0c00000c0c00000c0c000 +0000c0c000c0c0fc001bc0c0000000c0c0000000c0c00000c0c00000c0c0 +00c0c0000000c0c08000df00af00fbc0d500fbc0010000f9c0fd00fcc0fd +00fbc0010000fcc08000f200fcc0fd00fbc0fd0007c0c00000c0c00000fc +c0fb00fcc0fd00fbc0fd00fdc00300c0c000fcc0fb00fbc0f600fcc0fa00 +fcc0fd0007c0c00000c0c00000fbc0f500fbc0fd00fbc0fb00fdc0fc00fc +c0fd00fbc0fd0007c0c00000c0c00000fbc08000de0080008000a40001c0 +c0ad0001c0c08000b30080008000a80005c0c00000c0c0ad0001c0c08000 +b30080008000a700fcc0ad00fcc08000b400800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +80008000800080008000800080008000800080008000800080008000af00 +fbc0d500fbc00b0000c0c0000000c0c0000000fcc0fd00fac08000ef00fc +c0d10000c0fc00fdc0eb00fac0fb0001c0c080008d00b00006c0c0000000 +c0c0d7000ec0c0000000c0c000c0c0000000c0c0fc0001c0c0fc00fac080 +00ee0001c0c0d10001c0c0fb0001c0c0ea0005c0c00000c0c0fc0001c0c0 +80008d00b00006c0c0000000c0c0d7000ec0c0000000c0c000c0c0000000 +c0c0fc0001c0c0fc0005c000c0c000c08000ee0001c0c0d10001c0c0fb00 +01c0c0ea0005c0c00000c0c080008700b00006c0c0000000c0c0d7000ec0 +c0000000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c08000ec0001c0 +c0fa00fbc0fd00fcc0fd0008c0c0000000c0c00000fbc0f600fac0fd0007 +c0c000c0c0000000fbc0f50017c0c00000c0c0000000c0c0c0000000c0c0 +00c0c0c0000000fbc0f60010c0c000c0c0c00000c0c000c0c0c0000000fb +c0fd00fdc00c00c0c000c0c000c0c0c0000000fcc0fd00fdc00200c0c080 +00de00b00006c0c0000000c0c0d7000ec0c0000000c0c000c0c0000000c0 +c0fc0001c0c0fa0001c0c08000ec0001c0c0fb0006c0c0000000c0c0fb00 +12c0c00000c0c0000000c0c000c0c0000000c0c0f50001c0c0fb00fdc00a +00c0c000c0c0000000c0c0f600fbc0fb0001c0c0fc000dc0c00000c0c000 +c0c0000000c0c0f60025c0c00000c0c00000c0c0c000c0c000c0c0000000 +c0c000c0c00000c0c0000000c0c0c000c0c0fb0003c0c00000f9c08000df +00b00006c0c0000000c0c0d7000ec0c0000000c0c000c0c0000000c0c0fc +0001c0c0fa0001c0c08500f9c0ee0001c0c0fb00f9c0010000fbc0090000 +c0c0000000c0c000f9c0f50001c0c0fb0006c0c00000c0c000f9c0f60001 +c0c0f80001c0c0fc0006c0c00000c0c000f9c0f60027c0c00000c0c00000 +c0c00000c0c000c0c0000000c0c000c0c00000c0c0000000c0c00000c0c0 +0000fbc0080000c0c000c000c0c08000df00b00006c0c0000000c0c0d700 +0ec0c0000000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c08000ec00 +01c0c0fb0001c0c0fa0011c0c00000c0c00000c0c0000000c0c000c0c0f0 +0001c0c0fb0008c0c00000c0c000c0c0f10001c0c0f80001c0c0fc0008c0 +c00000c0c000c0c0f10009c0c00000c0c00000c0c0fb0012c0c0000000c0 +c000c0c00000c0c0000000c0c0fb000ec0c00000c0c00000c0c000c000c0 +c08000df00b00006c0c000c000c0c0d7000ec0c000c000c0c000c0c00000 +00c0c0fc0001c0c0fa0001c0c08000ec0008c0c0000000c000c0c0fa0011 +c0c00000c0c00000c0c0000000c0c000c0c0f00001c0c0fb0008c0c00000 +c0c000c0c0f10001c0c0f80001c0c0fc0008c0c00000c0c000c0c0f10009 +c0c00000c0c00000c0c0fb0012c0c0000000c0c000c0c00000c0c0000000 +c0c0fb000ec0c00000c0c00000c0c000c000c0c08000df00b00002c0c000 +fcc0d70002c0c000fcc00700c0c0000000c0c0fc0001c0c0fa0001c0c080 +00ec0025c0c00000c0c000c0c0000000c0c000c0c00000c0c0000000c0c0 +00c0c00000c0c0000000c0c0f50014c0c000c0c00000c0c00000c0c000c0 +c0000000c0c0f60001c0c0f80001c0c0fc000dc0c00000c0c000c0c00000 +00c0c0f60009c0c00000c0c00000c0c0fb0012c0c0000000c0c000c0c000 +00c0c0000000c0c0fb000ec0c00000c0c00000c0c000c000c0c08000df00 +af00fbc0d500fbc0fd00fbc0fc00fcc0fc00fcc08000ee00f9c0010000fb +c0fd00fdc00800c0c0000000c0c0c0fc00fbc0f300fdc00a0000c0c0c000 +00c0c00000fbc0f600fcc0fa00fcc0fd0007c0c00000c0c00000fbc0f500 +fbc0010000fcc0fb00fbc0fd00fbc0010000fcc0fb00fdc00a00c0c000c0 +c0000000c0c08000df00ac0001c0c0d20001c0c080008000dd0001c0c0e7 +0001c0c08000c600ac00fdc0d300fdc080008000de0001c0c0eb0005c0c0 +0000c0c08000c600800080008000d800fcc0eb00fcc08000c50080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +80008000800080008000800080008000e600fcc0db0001c0c0f500fdc0f8 +0000c0f10001c0c0fc00fbc0fd00fbc0fd00fbc0f500fbc0fc00fdc0fb00 +fdc0fc00fbc0e600fac0fc00fcc0090000c0c0000000c0c000f9c0f40001 +c0c0da0000c0e900fdc0de00fdc0e800fdc0f30000c0fc00fdc0eb0006c0 +c0000000c0c0f40001c0c0da0001c0c0fa0000c0e100fdc0f60006c0c000 +0000c0c0ef00fdc0f80001c0c0ea0000c0cc00e70005c0c00000c0c0dc00 +01c0c0f40001c0c0f90001c0c0f200fdc0fd0016c0c0000000c0c000c0c0 +000000c0c000c0c0000000c0c0f7001ec0c0000000c0c00000c0c000c0c0 +000000c0c000c0c00000c0c0000000c0c0e60005c0c00000c0c0fc0013c0 +c0000000c0c0c00000c0c00000c0c00000c0c0f40001c0c0db0001c0c0e8 +0001c0c0dd0001c0c0e90004c0c000c0c0f50001c0c0fb0001c0c0eb0006 +c0c0000000c0c0f40001c0c0da0001c0c0fb0001c0c0e20004c0c000c0c0 +f70006c0c0000000c0c0ee0001c0c0f80001c0c0eb0001c0c0cc00e80001 +c0c0fc0000c0ce0001c0c0f90001c0c0f300fcc0fd0016c0c0000000c0c0 +00c0c0000000c0c000c0c0000000c0c0f20011c0c000c0c0000000c0c000 +c0c0000000c0c0fa0001c0c0e60005c0c00000c0c0fc0004c0c0000000fc +c00a00c0c00000c0c0000000c0cd0001c0c0e80001c0c0dd0001c0c0e900 +04c0c00000c0f50001c0c0fb0001c0c0eb0006c0c0000000c0c0c50001c0 +c0e20004c0c00000c0f70006c0c0000000c0c0ee0001c0c0e10001c0c0cc +00e80001c0c0f900fbc0170000c0c000c0c0c00000c0c0000000c0c000c0 +c000c0c0c0fc00fdc0fc00fdc00b00c0c00000c0c000c0c00000fac0f300 +1bc0c0000000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f3 +0012c0c00000c0c0000000c0c000c0c0000000c0c0fa0001c0c0e60005c0 +c00000c0c0fc0004c0c0000000f9c0050000c0c000c0f300fdc0fc00fbc0 +f500fcc0f500fac00a0000c0c000c0c0c0000000fcc0fb00fcc0fd00fbc0 +0a0000c0c0c000c0c0000000fcc0fd000ec0c000c0c0c0000000c0c00000 +c0c0f600fbc0fc0001c0c0f400fac0fd0007c0c000c0c0000000fbc0f600 +0dc0c0000000c0c000c0c000c0c0c0fc00fdc0fd0008c0c0000000c0c000 +00fbc00a0000c0c000c0c0c0000000fbc0fc00fdc0fd00fac0080000c0c0 +000000c0c0f600fbc0fc0001c0c0f40008c0c0000000c0c00000fcc0fc00 +fbc0fd0004c0c000c0c0fc00fdc0fd000fc0c000c0c0c0000000c0c0c000 +c0c000fac0fd00fbc0070000c0c000c0c0c0de00e80001c0c0fa001ec0c0 +000000c0c00000c0c00000c0c000c0c0000000c0c00000c0c0c000c0c0fc +0018c0c0000000c0c00000c0c0000000c0c0c000c0c0000000c0c0f10001 +c0c0fc00fac0010000fbc0fd00fac0f40016c0c0000000c0c000c000c0c0 +00c0c000c000c0c0000000fcc0e500fbc0fb0007c0c0000000c0c000fcc0 +010000fcc0f2000bc0c0000000c0c0000000c0c0f30001c0c0f40001c0c0 +fb00fdc00200c0c0fb0013c0c0000000c0c000c0c00000c0c0000000c0c0 +00f9c0fb0011c0c0000000c0c0c000c0c00000c0c000c0c0f60008c0c000 +0000c0c00000fcc0f30001c0c0fb00fdc00a00c0c000c0c0000000c0c0f7 +000ec0c0000000c0c00000c0c00000c0c0fc0023c0c0000000c0c0000000 +c0c000c0c0000000c0c00000c0c0c000c0c000c0c0000000c0c0fc0001c0 +c0fb0001c0c0fc0006c0c0000000c0c0f70008c0c0000000c0c00000fcc0 +f50006c0c000c000c0c0fb0012c0c00000c0c0000000c0c00000c0c0c000 +c0c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fc0001c0c0fc00 +0ec0c0000000c0c00000c0c00000c0c0df00e80001c0c0fa001ec0c00000 +00c0c00000c0c00000c0c000c0c0000000c0c00000c0c00000c0c0fc0018 +c0c0000000c0c00000c0c0000000c0c00000c0c0000000c0c0f10001c0c0 +f80009c0c000c0c0000000c0c0fa0002c0c000f9c0fd0001c0c0fc000ec0 +c000c000c0c000c0c000c000c0c0fa0001c0c0e60001c0c0f80011c0c000 +0000c0c00000c0c0c00000c0c000c0f20001c0c0fc0001c0c0f200fbc0f4 +0001c0c0fb0007c0c00000c0c00000fbc0090000c0c00000c0c00000f9c0 +0900c0c000c000c0c00000fbc0fd0007c0c00000c0c00000fcc0f5000bc0 +c0000000c0c0000000c0c0f20001c0c0fb0006c0c00000c0c000f9c0f700 +0ec0c0000000c0c00000c0c00000c0c0fc000cc0c0000000c0c0000000c0 +c000f9c00b0000c0c00000c0c00000c0c0f80001c0c0fb0001c0c0fc0006 +c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f40008c0c000c000 +c0c00000fbc0fd0001c0c0fa0005c0c00000c0c0fc0001c0c0fc000cc0c0 +0000c0c000c0c00000c0c0fc0001c0c0fc000ec0c0000000c0c00000c0c0 +0000c0c0df00e80001c0c0fa001ac0c0000000c0c00000c0c00000c0c000 +c0c0000000c0c00000c0c0f80018c0c0000000c0c00000c0c0000000c0c0 +0000c0c0000000c0c0f10001c0c0f80009c0c000c0c0000000c0c0fa0001 +c0c0f60001c0c0fb000ec0c0000000c0c000c0c0000000c0c0fa0001c0c0 +e60001c0c0f8000fc0c0000000c0c0000000c0c00000c0c0f00001c0c0fb +00fdc0f50005c0c00000c0c0f40001c0c0fb0001c0c0fb0011c0c00000c0 +c00000c0c00000c0c00000c0c0fa0012c0c000c000c0c000c0c00000c0c0 +000000c0c0fa00fcc0f5000bc0c0000000c0c0000000c0c0f20001c0c0fb +0008c0c00000c0c000c0c0f2000ec0c0000000c0c00000c0c00000c0c0fc +000ec0c0000000c0c0000000c0c000c0c0f90001c0c0f900fdc0fa0001c0 +c0fb0001c0c0fc0006c0c0000000c0c0f7000bc0c0000000c0c0000000c0 +c0f4000dc0c000c000c0c000c0c00000c0c0fc00fdc0fc0005c0c00000c0 +c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fc0001c0c0fc000e +c0c0000000c0c00000c0c00000c0c0df00e80001c0c0fc001cc000c0c000 +0000c0c00000c0c00000c0c000c0c0000000c0c00000c0c0f80018c0c000 +0000c0c00000c0c0000000c0c00000c0c0000000c0c0f10001c0c0f80009 +c0c000c0c0000000c0c0fa0001c0c0f70001c0c0fa000ec0c0000000c0c0 +00c0c0000000c0c0fa0001c0c0e60001c0c0f80013c0c0000000c0c00000 +00c0c00000c0c0000000c0f40001c0c0f90001c0c0f60005c0c00000c0c0 +f40001c0c0fb0001c0c0fb0011c0c00000c0c00000c0c00000c0c00000c0 +c0fa0012c0c000c000c0c000c0c00000c0c0000000c0c0fa0004c0c000c0 +c0f6000bc0c0000000c0c0000000c0c0f20001c0c0fb0008c0c00000c0c0 +00c0c0f2000ec0c0000000c0c00000c0c00000c0c0fc000ec0c0000000c0 +c0000000c0c000c0c0f90001c0c0f70001c0c0fb0001c0c0fb0001c0c0fc +0006c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f400f9c00600 +c0c00000c0c0fa000ac0c0000000c0c00000c0c0fc0001c0c0fc000cc0c0 +0000c0c000c0c00000c0c0fc0001c0c0fc000ec0c0000000c0c00000c0c0 +0000c0c0df00e70021c0c00000c0c000c0c0000000c0c00000c0c00000c0 +c000c0c0000000c0c00000c0c0f8001bc0c0000000c0c00000c0c0000000 +c0c00000c0c0000000c0c000c0c0f40001c0c0f9000ac0c00000c0c00000 +00c0c0fb0001c0c0f6001ec0c0000000c0c00000c0c000c0c0000000c0c0 +00c0c00000c0c0000000c0c0fc0001c0c0ec0001c0c0f80013c0c0000000 +c0c0000000c0c00000c0c00000c0c0f4000bc0c0000000c0c0000000c0c0 +f70005c0c00000c0c0f40008c0c000c0c00000c0c0fb002ac0c00000c0c0 +0000c0c00000c0c00000c0c0000000c0c000c0c000c000c0c000c0c00000 +c0c0000000c0c0fa0005c0c00000c0c0f7000bc0c0000000c0c0000000c0 +c0f20014c0c000c0c00000c0c00000c0c000c0c0000000c0c0f7000ec0c0 +000000c0c00000c0c00000c0c0fc0001c0c0fc0011c0c000c0c00000c0c0 +000000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0c0fb000cc0c000 +c0c000c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f400fdc01b +00c0c0c000c0c00000c0c00000c0c0000000c0c00000c0c00000c0c0fc00 +01c0c0fc000cc0c00000c0c000c0c00000c0c0fc0014c0c000c0c000c0c0 +000000c0c00000c0c00000c0c0fc0001c0c0e500e600fcc0fd00fbc0fd00 +fbc0fd00fac00000fcc0fa00fcc0fd00fbc0080000c0c0c00000c0c0fc00 +fdc0f500fac0010000fcc0fc00fbc0fd00fcc0f500f9c0fd00fdc0fb00fd +c0fc00fbc0fb0001c0c0ed00fcc0fa00fcc0090000c0c0000000c0c000f9 +c0f500fcc0fd00fbc0f500fdc00200c0c0f400fdc0010000fcc0fb00fdc0 +0c00c0c00000c0c0c000c0c00000fbc0110000c0c0000000c0c00000c0c0 +c000c0c000fcc0fc00fdc0030000c0c0f600fbc0fd00fcc0f200fdc00a00 +00c0c0c00000c0c00000fbc0f500fbc0fd0008c0c00000c0c0000000fcc0 +fc00fdc0fc00fbc0010000fcc0fb00fbc0fc00fcc0fb00fdc0fd00fac0f6 +00fbc0fd00fcc0f4000fc0c000c0c0000000c0c0c000c0c00000fbc00b00 +00c0c0c00000c0c0000000fcc0fd0007c0c00000c0c00000fbc0fb00fdc0 +fd00fbc0fd0005c0c00000c0c0fc0001c0c0e500d70001c0c0f60001c0c0 +eb0001c0c0800080008000e10001c0c0ab0001c0c0c600d70001c0c0f700 +01c0c0ee0005c0c00000c0c0800080008000e20001c0c0ae0005c0c00000 +c0c0c600d800fcc0fc00fbc0ec00fcc0800080008000e500fbc0ac00fcc0 +c500800080008000800080008000e00080c080c0c8c08000d8008000e000 +bfc0050000c0c00000d6c0050000c0c0000080c0bfc08000d8008000e000 +01c0c0fc0001c0c0f900f5c0fd00fac0fd00e5c0080000c0c00000c0c0c0 +fc0009c0c00000c0c0c00000c0fa00fdc0fb0010c0c00000c0c0c00000c0 +c00000c0c00000ccc0fd00ebc0010000fac00000fcc0fd00f2c0fb00b4c0 +fc0001c0c08000d8008000e00003c0c00000fbc0050000c0c00000f4c001 +0000f9c0010000e5c0050000c0c00000fcc02b0000c0c0c0000000c0c000 +00c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000c0c00000c0 +c00000cbc0010000ebc0010000fbc0010000fbc0010000f3c0060000c0c0 +c00000b3c0030000c0c08000d8008000e00003c0c00000fbc0050000c0c0 +c000f4c0010000f9c0010000e4c00300c0c000fbc0040000c0c0c0fc0019 +c00000c0c00000c0c00000c00000c0c0c00000c0c00000c00000fcc00300 +c0c000cac0010000e4c0010000fbc0010000eec0010000b3c0030000c0c0 +8000d8008000e00003c0c00000fbc0030000c000fcc0fb00fbc0010000fb +c0fc00fdc0fb0007c0c00000c0000000ebc0040000c0c0c0f90011c0c000 +00c0c00000c00000c0c0c00000c0c0fb00edc0fb000ac0c00000c0000000 +c0c0c0fb000ac0c00000c0000000c0c0c0fb00fcc0fc00f6c00f0000c0c0 +c00000c0c0c0000000c0c0c0fa00fdc0040000c00000f2c0010000f6c0fd +0005c00000c0c0c0fb00fdc0fb00fdc0fb00fdc0fc00fcc0fd0004c00000 +c0c0fb00fdc0fb00fac0030000c0c08000d8008000e00003c0c00000fbc0 +fc00fdc0060000c0c0c00000fcc0010000fcc0150000c00000c0c00000c0 +c0c00000c0c0000000c00000ecc0070000c0c0c00000c0fc0001c0c0fb00 +0ec0c00000c0c0c00000c0c0c0000000edc02d0000c0c0c00000c0c00000 +c0c00000c00000c0c0c00000c0c00000c0c00000c00000c0c0c00000c0c0 +0000c00000f6c0060000c0c0c00000fcc0010000fbc0010000fbc0fd0002 +c00000f4c0010000f5c0f90017c00000c0c0c00000c00000c0c0c00000c0 +0000c0c0c00000fbc01a0000c0c00000c0c00000c0c00000c0c0c00000c0 +0000c0c0c00000fbc0030000c0c08000d8008000e00003c0c00000fbc00d +0000c000c0c0c00000c0c0c00000fcc00c0000c0c0c00000c0c00000c0c0 +f90007c0c00000c0c00000ecc0210000c0c0c00000c0c0000000c0c00000 +c0c00000c00000c0c0c00000c0c0c0000000edc00f0000c0c0c00000c0c0 +0000c0c00000c0f90008c0c00000c0c00000c0f90006c00000c0c00000f6 +c0060000c000c00000fcc0010000fbc0010000fbc0050000c0c00000f5c0 +010000f4c0070000c000c00000c0f90003c0c00000fac0010000fac0fb00 +09c0c00000c0c00000c0c0f90003c0c00000f7c0030000c0c08000d80080 +00e00003c0c00000fbc0010000fbc0060000c0c0c00000fcc00e0000c0c0 +c00000c0c00000c0c00000f9c0010000e8c01d0000c0c0c00000c0c0c000 +00c0c00000c0c00000c00000c0c0c00000c0c0fb00eec0110000c0c0c000 +00c0c00000c0c00000c00000f9c0080000c0c00000c00000fac0050000c0 +c00000f6c0060000c000c00000fcc0010000fbc0010000fbc0050000c0c0 +0000f6c0010000f3c0090000c000c00000c00000f8c0fd00fbc0fd00fdc0 +110000c0c00000c0c00000c0c00000c0c00000f8c0fd00f9c0030000c0c0 +8000d8008000e00003c0c00000fbc0010000fbc0060000c0c0c00000fcc0 +0e0000c0c0c00000c0c00000c0c00000f9c0010000e8c0220000c0c0c000 +00c0c0c00000c0c00000c0c00000c00000c0c0c00000c0c00000c00000ee +c0110000c0c0c00000c0c00000c0c00000c00000f9c0080000c0c00000c0 +0000fac0050000c0c00000f6c0060000c000c00000fcc0010000fbc00100 +00fbc0050000c0c00000f7c0010000f2c0090000c000c00000c00000f6c0 +010000fac0150000c0c00000c0c00000c0c00000c0c00000c0c00000f6c0 +010000fac0030000c0c08000d8008000e00003c0c00000fbc0010000fbc0 +060000c0c0c00000fcc0170000c0c0c00000c0c00000c0c00000c0c0c000 +00c0c00000e8c0230000c0c0c00000c0c0c00000c0c00000c0c00000c000 +00c0c0c00000c00000c0c0c00000efc02d0000c0c0c00000c0c00000c0c0 +0000c00000c0c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0 +c00000f6c0f900fcc0010000fbc00c0000c00000c0c00000c0c00000f7c0 +060000c0c0c00000f7c03e0000c000c00000c00000c0c0c00000c00000c0 +c0c00000c00000c0c0c00000c00000c0c00000c0c00000c0c00000c0c000 +00c0c0c00000c00000c0c0c00000fbc0030000c0c08000d8008000e00001 +c0c0fc0001c0c0fc00fbc0fb00fcc0fc00fdc0fd0004c00000c0c0fb0001 +c0c0fc00eac0fc0009c0c00000c0c0c00000c0fa00fdc0fb0008c0c00000 +c0c0c00000eec0fb00fdc0fb00fdc0fb00fdc0070000c0c00000c0c0fb00 +fdc0fd0002c00000f6c0040000c00000fcc0fc00fbc0fd0008c0c0000000 +c0c00000f7c0f900f7c0080000c0c0c00000c0c0fb00fdc0fb00fdc0fb00 +fdc0fd0004c00000c0c0fb00fdc0fb00fdc0fb00fcc0fc0001c0c08000d8 +008000e00080c0f7c001000080c0efc0010000e6c08000d8008000e00080 +c0f7c001000080c0f3c0050000c0c00000e6c08000d8008000e00080c0f8 +c0fc0080c0f3c0fc00e5c08000d8008000e00080c080c0c8c08000d800f8 +c08000b000f8c08000b800f8c08000b000f8c08000b000f8c08000b800f8 +c08000b00000c0fb0001c0c0f80006c0c0000000c0c0f500fdc08000c700 +01c0c0f800fac0e400fcc0f300fdc08000f00001c0c0f800fac0f400fdc0 +fd0006c0c0000000c0c0f40000c08000e400070000c0c0c00000c0f80006 +c0c0000000c0c0f40001c0c08000cd0007c00000c0c00000c0f70005c0c0 +0000c0c0e60005c0c00000c0c0f30001c0c08000f60007c00000c0c00000 +c0f70005c0c00000c0c0f4000bc0c0000000c0c0c00000c0c0f50001c0c0 +8000e400070000c0c0c00000c0f80006c0c0000000c0c0f40001c0c08000 +cd0007c00000c0c00000c0f70005c0c00000c0c0e70001c0c0fc0000c0f3 +0001c0c08000f60007c00000c0c00000c0f70005c0c00000c0c0f40004c0 +c0000000fcc00200c0c0f50001c0c08000e400fcc0030000c0c0f80008c0 +c0000000c0c00000fbc0fb000ac0c0000000c0c000c0c0c08000d60007c0 +0000c0c00000c0f7000fc0c00000c0c000c0c000c0c0c0000000fbc00b00 +00c0c0000000c0c000c0c0fa00fdc00200c0c0fc00fcc08000f60007c000 +00c0c00000c0f70007c0c00000c0c00000fbc0fb0004c0c0000000f9c001 +0000fbc0010000fac0fd00fbc0fd00fbc08000f600fdc0040000c0c0c0f8 +00f9c00700c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c08000d700 +00c0fb0001c0c0f700fbc0fd00fdc01500c0c000c0c0000000c0c000c0c0 +000000c0c000c0c0fa00f9c0060000c0c000c0c08000f60000c0fb0001c0 +c0f700fbc0080000c0c0000000c0c0fc0007c0c0000000c0c000fcc00c00 +c0c0000000c0c0000000c0c0fc000ec0c0000000c0c000c0c0000000c0c0 +8000f700fdc0040000c0c0c0f80007c0c0000000c0c000f9c0fc0001c0c0 +fc0005c0c00000c0c08000d70002c00000fbc0f70001c0c0fa0006c0c000 +00c0c000f9c00a00c0c0000000c0c000c0c0fa000dc0c000c000c0c000c0 +c00000c0c08000f60007c00000c00000c0c0f70006c0c000c0c00000f9c0 +fc0018c0c0000000c0c00000c0c0c000c0c0000000c0c0000000c0c0fc00 +f9c0030000c0c08000f300fdc0040000c0c0c0f80009c0c0000000c0c000 +c0c0f70001c0c0fc0005c0c00000c0c08000d70002c00000fbc0f70001c0 +c0fa0001c0c0fb0001c0c0fa0009c0c0000000c0c000c0c0fa000dc0c000 +c000c0c000c0c00000c0c08000f60007c00000c0c00000c0f70008c0c000 +00c0c000c0c0f70018c0c0000000c0c0000000c0c000c0c0000000c0c000 +0000c0c0fc0001c0c0f800fdc08000f500f8c0f80009c0c0000000c0c000 +c0c0f70001c0c0fc0005c0c00000c0c08000d70002c00000fbc0f70001c0 +c0fa0001c0c0fb0001c0c0fa0009c0c0000000c0c000c0c0fc000fc000c0 +c000c000c0c000c0c00000c0c08000f60007c00000c0c00000c0f70008c0 +c00000c0c000c0c0f70018c0c0000000c0c0000000c0c000c0c0000000c0 +c0000000c0c0fc0001c0c0f60001c0c08000f600fdc0040000c0c0c0f800 +0ec0c0000000c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0 +8000d70002c00000fbc0f70001c0c0fa0001c0c0fb0025c0c0000000c0c0 +0000c0c000c0c0000000c0c00000c0c000c0c000c000c0c000c0c00000c0 +c08000f60007c00000c0c00000c0f7000dc0c00000c0c000c0c0000000c0 +c0fc002bc0c0000000c0c0000000c0c000c0c0000000c0c0000000c0c000 +c0c000c0c0000000c0c000c0c0000000c0c08000f700fdc0040000c0c0c0 +f80008c0c0000000c0c00000fbc0fc00fcc0fd00fbc08000d200fcc0f800 +fcc0fc00fcc0fb00fbc0fc00fdc0fb00fcc0100000c0c0000000c0c00000 +c0c0c000c0c08000f40004c0c00000c0f800fdc0050000c0c00000fbc0fc +00fcc00a0000c0c0000000c0c00000fbc0fb00fdc0fd00fbc0fd00fbc080 +00f600f8c0df0001c0c08000d300f8c08000b800f8c08000b000f8c0df00 +01c0c08000d300f8c08000b800f8c08000b000f8c0e000fcc08000d400f8 +c08000b800f8c08000b000f8c08000b000f8c08000b800f8c08000b000f8 +c0a000f8c09800f8c08000b800f8c08000b000f8c0a000f8c09800f8c080 +00b800f8c08000b00000c0fb0001c0c0f700fbc0fd00fac00800c0c00000 +00c0c000f9c00000fac0f400fcc0090000c0c0000000c0c000fbc0fc00fb +c0f600f8c0f600fcc0fc00fcc0cc00fcc0e400fdc0020000c0f80006c0c0 +000000c0c0ec0000c0fa00fcc0f300fdc08000f30004c0c00000c0f800fd +c0040000c0c000fac0010000fcc0ec00fdc08000e300070000c0c0c00000 +c0f80008c0c0000000c0c00000fac01700c0c0000000c0c00000c0c00000 +c0c00000c0c00000c0c0f6001dc0c00000c0c000c0c0c000c0c0c00000c0 +c000c0c00000c0c0000000c0c0f70002c00000fbc0f60001c0c0fb0005c0 +c00000c0c0cb0001c0c0e30004c0c00000c0f800fdc0030000c0c0ed0001 +c0c0fb0005c0c00000c0c0f30001c0c08000f60007c00000c0c00000c0f7 +0011c0c00000c0c00000c0c00000c0c00000c0c0ea0001c0c08000e30007 +0000c0c0c00000c0f80026c0c0000000c0c00000c000c0c000c000c0c000 +0000c0c00000c0c0000000c00000c0c00000c0c0f70001c0c0fc0001c000 +f9c00f0000c0c00000c0c000c0c0000000c0c0f70003c0c00000fcc0f600 +01c0c0fc0001c0c0fc0000c0cb0001c0c0e20003c00000c0f800fcc00200 +c0c0ed0001c0c0fc0001c0c0fc0000c0f30001c0c08000f60007c00000c0 +c00000c0f70011c0c00000c0c00000c0c00000c0c00000c0c0ea0001c0c0 +8000e300070000c0c0c00000c0f80006c0c0000000c0c0fc0011c0c00000 +00c0c0000000c0c00000c0c000c0fc0005c0c00000c0c0f70001c0c0fa00 +f9c00b0000c0c00000c0c00000c0c0f300fdc0040000c0c0c0f60001c0c0 +fc0001c0c0f900fbc0120000c0c0c000c0c00000c0c000c0c0c0000000fb +c0fd00fbc0fd00fbc0fa0001c0c0df0000c0f800f9c0010000fbc0090000 +c0c0000000c0c000fac0030000c0c0fa00fdc00200c0c0fc00fcc08000f6 +0007c00000c00000c0c0f70011c0c000c0c0000000c0c00000c0c00000c0 +c0fa00fbc0fd00fbc0fd0005c0c00000c0c08000e700070000c0c0c00000 +c0f80006c0c0000000c0c0fc0004c0c0000000f9c0010000fcc0fc00fbc0 +f60001c0c0fa0014c0c000c000c0c00000c0c00000c0c0000000c0c0c0f5 +00fcc0030000c0c0f60001c0c0fc0001c0c0fa0007c0c0000000c0c000f9 +c01f0000c0c00000c0c000c0c0000000c0c000c0c0000000c0c000c0c000 +0000c0c0fb0001c0c0e40000c0fc0000c0f80002c0c000fcc00e00c0c000 +0000c0c00000c0c000c0c0fc0001c0c0fc0001c0c0fa00f9c0060000c0c0 +00c0c08000f60000c0fc00fdc0f700fcc0fc00fbc0fd0001c0c0fb0015c0 +c0000000c0c000c0c0000000c0c00000c0c000c0c08000e600070000c0c0 +c00000c0f80006c0c0000000c0c0fc0011c0c0000000c0c0000000c0c000 +00c0c000c0fc0004c0c000c0c0f60001c0c0fa000ec0c0000000c0c00000 +c0c00000c0c0fb0001c0c0f600fbc0020000c0f60001c0c0fc0001c0c0fa +0022c0c0000000c0c000c0c000c000c0c00000c0c00000c0c000c0c00000 +00c0c00000c0c0fb00f9c0fb0001c0c0e40005c0c0000000c0f80007c0c0 +0000c0c0c000f9c0fd00fdc0fb0001c0c0fc0001c0c0fa000dc0c000c000 +c0c000c0c00000c0c08000f60000c0fc00fdc0f700fcc0fc0009c0c00000 +c0c00000c0c0fb0009c0c0000000c0c000c0c0f900fcc08000e500070000 +c0c0c00000c0f80006c0c0000000c0c0fc000fc0c0000000c0c0000000c0 +c00000c0c0fa0005c0c00000c0c0f70001c0c0fa000ec0c0000000c0c000 +00c0c00000c0c0fa0001c0c0f700fcc0030000c0c0f60001c0c0fc0001c0 +c0fa0029c0c0000000c0c000c0c000c000c0c00000c0c00000c0c000c0c0 +000000c0c0000000c0c0c0000000c0c0f60001c0c0e400fdc0020000c0f8 +0009c0c0000000c0c000c0c0f800fdc0fb0001c0c0fc0001c0c0fa000dc0 +c000c000c0c000c0c00000c0c08000f60007c00000c00000c0c0f70011c0 +c000c0c0000000c0c00000c0c00000c0c0fb0009c0c0000000c0c000c0c0 +f900fcc08000e500070000c0c0c00000c0f80006c0c0000000c0c0fc001b +c0c0000000c0c0000000c0c00000c0c0000000c00000c0c00000c0c0f700 +01c0c0fc0018c000c0c0000000c0c00000c0c00000c0c000c0c0000000c0 +c0f700fdc0040000c0c0c0f60001c0c0fc0001c0c0fc0020c000c0c00000 +00c0c000c0c000c000c0c00000c0c00000c0c000c0c0000000c0c0fb0005 +c0c00000c0c0f60001c0c0e400fdc0020000c0f80009c0c0000000c0c000 +c0c0f800fdc0fb0001c0c0fc0001c0c0fc000fc000c0c000c000c0c000c0 +c00000c0c08000f60007c00000c0c00000c0f70020c0c00000c0c00000c0 +c00000c0c00000c0c0000000c000c0c0000000c0c000c0c0f90004c0c000 +c0c08000e600070000c0c0c00000c0f80006c0c0000000c0c0fc001bc0c0 +000000c0c0000000c0c00000c0c00000c0c00000c0c00000c0c0f6001dc0 +c00000c0c000c0c0000000c0c00000c0c000c0c00000c0c0000000c0c0f7 +0003c0c00000fcc0f60001c0c0fb0035c0c00000c0c000c0c0000000c0c0 +00c0c000c000c0c00000c0c00000c0c000c0c0000000c0c000c0c0000000 +c0c000c0c0000000c0c0fb0001c0c0e400fdc0020000c0f80015c0c00000 +00c0c000c0c0000000c0c00000c0c000c0c0fc001bc0c000c0c00000c0c0 +0000c0c000c0c000c000c0c000c0c00000c0c08000f60007c00000c0c000 +00c0f7002dc0c00000c0c00000c0c00000c0c00000c0c00000c0c000c0c0 +000000c0c000c0c0000000c0c00000c0c00000c0c08000e70000c0fb0001 +c0c0f700fbc0fc00fcc0090000c0c0000000c0c000f9c00700c0c0c00000 +c0c0f500fcc0090000c0c0000000c0c000fbc0fc00fbc0f60002c00000fb +c0f600fcc0fc00fcc0fd00fbc00a0000c0c0000000c0c00000fbc0fd00fb +c0fd00fbc0fd00fbc0fc00fcc0e400fdc0020000c0f80008c0c0000000c0 +c00000fbc0080000c0c0000000c0c0fc00fdc0fc00fcc0100000c0c00000 +00c0c00000c0c0c000c0c08000f40004c0c00000c0f800fdc0040000c0c0 +00fac0010000f9c0010000fbc0fd00fbc0080000c0c0c00000c0c08000e7 +00f8c0a000f8c0d70001c0c0c300f8c08000b800f8c08000b000f8c0a000 +f8c0d70001c0c0c300f8c08000b800f8c08000b000f8c0a000f8c0d800fc +c0c400f8c08000b800f8c08000b000f8c0a000f8c09800f8c08000b800f8 +c08000b000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 38552 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 38552 a 3565 x FU(Y)-170 +b(ou)406 b(will)g(see)h(a)g(menu)g(of)f(commands)g(and)h(a)g(ro)-39 +b(w)407 b(of)g(command)f(k)-15 b(e)-23 b(ys)406 b(at)g(the)h(bottom.)f +FP(pine)-30 44131 y FU(is)387 b(indeed)g(a)h(comple)-23 +b(x)386 b(program,)i(so)f(we)g(will)g(not)g(discuss)f(e)-39 +b(v)-23 b(ery)388 b(feature)f(about)g(it)g(here.)-30 +45242 y +SDict begin H.S end + -30 45242 a -30 45242 a +SDict begin 18.2 H.A end + -30 45242 a -30 45242 +a +SDict begin [ /View [/XYZ H.V] /Dest (4660) cvn H.B /DEST pdfmark end + -30 45242 a 1679 x FU(T)-124 b(o)351 b(see)g(what')-85 +b(s)350 b(in)h(your)f(inbox,)h(type)20683 46921 y +SDict begin H.S end + 20683 +46921 a 20683 46921 a +SDict begin 18.2 H.A end + 20683 46921 a 20683 46921 a +SDict begin [ /View [/XYZ H.V] /Dest (4661) cvn H.B /DEST pdfmark end + 20683 +46921 a Fv(i)p FU(.)g(Y)-170 b(our)350 b(messages)g(are)h(listed)g +(with)f(their)h(date,)g(author)-62 b(,)-30 48936 y(and)433 +b(subject.)g(Highlight)f(the)g(message)h(you)g(w)-15 +b(ant)432 b(and)h(press)34714 48936 y +SDict begin H.S end + 34714 48936 a 34714 +48936 a +SDict begin 18.2 H.A end + 34714 48936 a 34714 48936 a +SDict begin [ /View [/XYZ H.V] /Dest (4662) cvn H.B /DEST pdfmark end + 34714 48936 a Fv(enter)f +FU(to)h(vie)-39 b(w)433 b(it.)g(Pressing)-30 50950 y +SDict begin H.S end + +-30 50950 a -30 50950 a +SDict begin 18.2 H.A end + -30 50950 a -30 50950 a +SDict begin [ /View [/XYZ H.V] /Dest (4663) cvn H.B /DEST pdfmark end + -30 50950 +a Fv(r)347 b FU(will)g(start)g(a)g(reply)g(to)g(the)h(message.)f(Once)g +(you)g(ha)-31 b(v)-23 b(e)347 b(written)g(the)g(response,)g(type)47029 +50950 y +SDict begin H.S end + 47029 50950 a 47029 50950 a +SDict begin 18.2 H.A end + 47029 50950 a 47029 +50950 a +SDict begin [ /View [/XYZ H.V] /Dest (4664) cvn H.B /DEST pdfmark end + 47029 50950 a 47029 50950 a +SDict begin H.S end + 47029 50950 a 47029 +50950 a +SDict begin 18.2 H.A end + 47029 50950 a 47029 50950 a +SDict begin [ /View [/XYZ H.V] /Dest (4665) cvn H.B /DEST pdfmark end + 47029 50950 a FX(Ctrl)p +FU(+)50657 50950 y +SDict begin H.S end + 50657 50950 a 50657 50950 a +SDict begin 18.2 H.A end + 50657 +50950 a 50657 50950 a +SDict begin [ /View [/XYZ H.V] /Dest (4666) cvn H.B /DEST pdfmark end + 50657 50950 a FX(X)-30 52965 y +FU(to)387 b(send)g(it.)h(Y)-170 b(ou)386 b(can)i(press)15424 +52965 y +SDict begin H.S end + 15424 52965 a 15424 52965 a +SDict begin 18.2 H.A end + 15424 52965 a 15424 +52965 a +SDict begin [ /View [/XYZ H.V] /Dest (4667) cvn H.B /DEST pdfmark end + 15424 52965 a Fv(i)f FU(to)g(get)h(back)f(to)g(the)g(message)g +(listing.)-30 54075 y +SDict begin H.S end + -30 54075 a -30 54075 a +SDict begin 18.2 H.A end + -30 54075 +a -30 54075 a +SDict begin [ /View [/XYZ H.V] /Dest (4668) cvn H.B /DEST pdfmark end + -30 54075 a 1679 x FU(If)478 b(you)f(w)-15 +b(ant)477 b(to)g(delete)g(a)h(message,)f(press)24561 +55754 y +SDict begin H.S end + 24561 55754 a 24561 55754 a +SDict begin 18.2 H.A end + 24561 55754 a 24561 +55754 a +SDict begin [ /View [/XYZ H.V] /Dest (4669) cvn H.B /DEST pdfmark end + 24561 55754 a Fv(d)p FU(.)h(It)f(will)g(mark)h(the)f +(highlighted)f(message)h(for)-30 57769 y(deletion.)5781 +57769 y +SDict begin H.S end + 5781 57769 a 5781 57769 a +SDict begin 18.2 H.A end + 5781 57769 a 5781 57769 +a +SDict begin [ /View [/XYZ H.V] /Dest (4670) cvn H.B /DEST pdfmark end + 5781 57769 a FP(pine)429 b FU(deletes)h(the)g(mail)f(when)h(you)g(e) +-23 b(xit)429 b(the)h(program.)37094 57769 y +SDict begin H.S end + 37094 57769 +a 37094 57769 a +SDict begin 18.2 H.A end + 37094 57769 a 37094 57769 a +SDict begin [ /View [/XYZ H.V] /Dest (4671) cvn H.B /DEST pdfmark end + 37094 57769 +a FP(pine)f FU(also)h(lets)g(you)f(store)-30 59784 y(your)h(mail)g(in)g +(folders.)g(Y)-170 b(ou)430 b(can)g(get)g(a)h(listing)e(of)h(folders)g +(by)g(pressing)40474 59784 y +SDict begin H.S end + 40474 59784 a 40474 59784 +a +SDict begin 18.2 H.A end + 40474 59784 a 40474 59784 a +SDict begin [ /View [/XYZ H.V] /Dest (4672) cvn H.B /DEST pdfmark end + 40474 59784 a Fv(l)p FU(.)g(At)g(the)g +(message)-30 61798 y(listing,)352 b(press)8122 61798 +y +SDict begin H.S end + 8122 61798 a 8122 61798 a +SDict begin 18.2 H.A end + 8122 61798 a 8122 61798 a +SDict begin [ /View [/XYZ H.V] /Dest (4673) cvn H.B /DEST pdfmark end + +8122 61798 a Fv(s)g FU(to)g(sa)-31 b(v)-23 b(e)352 b(it)g(to)f(another) +h(folder)-85 b(.)352 b(It)g(will)g(ask)g(for)g(the)g(folder)g(name)f +(to)h(write)g(the)-30 63813 y(message)387 b(to.)-30 64923 +y +SDict begin H.S end + -30 64923 a -30 64923 a +SDict begin 18.2 H.A end + -30 64923 a -30 64923 a +SDict begin [ /View [/XYZ H.V] /Dest (4674) cvn H.B /DEST pdfmark end + -30 +64923 a -30 64923 a +SDict begin H.S end + -30 64923 a -30 64923 a +SDict begin 18.2 H.A end + -30 64923 +a -30 64923 a +SDict begin [ /View [/XYZ H.V] /Dest (4675) cvn H.B /DEST pdfmark end + -30 64923 a 1680 x FP(pine)397 b FU(of)-39 +b(fers)397 b(man)-23 b(y)-101 b(,)397 b(man)-23 b(y)396 +b(features;)g(you)h(should)f(de\002nitely)g(ha)-31 b(v)-23 +b(e)396 b(a)h(look)g(at)g(the)f(man)h(page)p Black -30 +73792 a FR(166)p Black eop end +%%Page: 167 189 +TeXDict begin 167 188 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.167) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (4699) cvn H.B /DEST pdfmark end + -30 -2687 a 27927 -1636 a FR(Chapter)386 +b(13)i(Basic)f(Network)f(Commands)p Black -30 3611 a +FU(for)i(more)f(information.)f(It)i(will)e(contain)h(the)g(latest)g +(information)g(about)g(the)g(program.)-30 4721 y +SDict begin H.S end + -30 +4721 a -30 4721 a +SDict begin 18.2 H.A end + -30 4721 a -30 4721 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-ELM) +cvn H.B /DEST pdfmark end + -30 4721 a 5182 +x FF(elm)-30 9926 y +SDict begin H.S end + -30 9926 a -30 9926 a +SDict begin 18.2 H.A end + -30 9926 a +-30 9926 a +SDict begin [ /View [/XYZ H.V] /Dest (4679) cvn H.B /DEST pdfmark end + -30 9926 a -30 10856 a +SDict begin H.S end + -30 10856 a -30 10856 +a +SDict begin 18.2 H.A end + -30 10856 a -30 10856 a +SDict begin [ /View [/XYZ H.V] /Dest (4682) cvn H.B /DEST pdfmark end + -30 10856 a -30 10856 a +SDict begin H.S end + -30 +10856 a -30 10856 a +SDict begin 18.2 H.A end + -30 10856 a -30 10856 a +SDict begin [ /View [/XYZ H.V] /Dest (4683) cvn H.B /DEST pdfmark end + -30 10856 +a 1992 x FP(elm)p FU(\(1\))421 b(is)f(another)h(popular)f(te)-23 +b(xt-based)420 b(email)g(client.)h(Though)f(not)h(quite)f(as)h(user)f +(friendly)-30 14862 y(as)1648 14862 y +SDict begin H.S end + 1648 14862 a 1648 +14862 a +SDict begin 18.2 H.A end + 1648 14862 a 1648 14862 a +SDict begin [ /View [/XYZ H.V] /Dest (4684) cvn H.B /DEST pdfmark end + 1648 14862 a FP(pine)p +FU(,)388 b(it')-85 b(s)387 b(de\002nitely)f(been)h(around)g(a)h(lot)f +(longer)-85 b(.)-30 15198 y +SDict begin H.S end + -30 15198 a -30 15198 a +SDict begin 18.2 H.A end + -30 +15198 a -30 15198 a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-ELM) +cvn H.B /DEST pdfmark end + -30 15198 a 4004 x FX(Figur)-28 b(e)387 +b(13-3.)h(Elm)e(main)h(scr)-28 b(een)-30 21066 y +SDict begin H.S end + -30 +21066 a -30 21066 a +SDict begin 18.2 H.A end + -30 21066 a -30 21066 a +SDict begin [ /View [/XYZ H.V] /Dest (4687) cvn H.B /DEST pdfmark end + -30 21066 +a -30 54143 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 54143 a @beginspecial 12 @llx 212 @lly +600 @urx 580 @ury 5880 @rwi @setspecial +%%BeginDocument: basic-network-commands/elm.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +80008000800080008000800080008000800080008000ce0001c0c08a0001 +c0c080008000ac00a80006c0c0000000c0c0f40001c0c0fb00fdc0fd00fd +c0e00001c0c0eb0001c0c0c10001c0c0fb00fdc0da0000c0fa0001c0c0e9 +0001c0c0fa0000c0fc00fdc0f200fbc0ac00fcc0010000f9c00000fcc0fc +0006c0c0000000c0c0f600fbc0f600f9c0f700fac0010000fcc0fa00fdc0 +fb00fcc09e00a800fdc00300c0c0c0f40001c0c0fa0001c0c0fc0001c0c0 +e00001c0c0eb0001c0c0c10001c0c0fa0001c0c0db0001c0c0fa0001c0c0 +e90001c0c0fb0001c0c0fb0001c0c0f30006c0c0000000c0c0ad0001c0c0 +fb0009c0c00000c0c00000c0c0fb00fdc00300c0c0c0f70006c0c0000000 +c0c0f70001c0c0f10009c0c00000c0c00000c0c0fa0001c0c0f70001c0c0 +9e00a800f9c0ec0001c0c0fc0001c0c0ca0001c0c0f50000c0e10000c0e4 +0001c0c0f70000c0e50001c0c0fb0001c0c0e10001c0c0fb0001c0c0ee00 +01c0c0ad0001c0c0fb0009c0c0000000c00000c0c0fb00f9c0f20001c0c0 +f70001c0c0f10009c0c00000c0c00000c0c0fb0001c0c0f60001c0c09e00 +a800f9c0010000fcc0fb00fdc0fa0001c0c0fc00fcc0fc00fbc0080000c0 +c0000000c0c0f500fdc0fc00fbc0e9000bc0c000c0c0000000c0c00000fc +c0fd0005c0c000c0c0c0f9000bc0c000c0c0c000c0c0000000fcc0fb00fd +c0fa0001c0c0f8000bc0c000c0c000c0c0c0000000fbc0fd00fbc0010000 +fac0ee000fc0c0000000c0c0000000c0c0c0000000fac0fd0004c0c000c0 +c0f20001c0c0f600fdc00500c0c0000000fbc0fd00fbc0fd00fbc0fd00fc +c0fc00fdc00400c0c00000fbc0fd00fbc0f40001c0c0fb0003c0c000c0fc +0001c0c0fb00f9c0f30001c0c0f60001c0c0f10009c0c00000c0c00000c0 +c0fb0001c0c0f60001c0c09e00a80006c0c000c000c0c0fb0001c0c0fb00 +01c0c0fa0001c0c0fc0014c0c000c0c00000c0c0000000c0c00000c0c000 +c0c0f3000bc0c0000000c0c0000000c0c0eb000ac0c00000c0c0000000c0 +c0fb000ac0c0000000c0c0c000c0c0fb0003c0c00000f9c0fb0001c0c0fb +0001c0c0fa0001c0c0f9001fc0c0000000c0c0c000c0c000c0c0000000c0 +c000c0c0000000c0c0000000c0c0ec0006c0c0000000c0c0fc0001c0c0fb +0001c0c0fb00fdc00200c0c0f40001c0c0f500f9c01700c0c0000000c0c0 +00c0c0000000c0c000c0c0000000c0c0fb001ac0c00000c0c00000c0c000 +00c0c0000000c0c000c0c0000000c0c0f50001c0c0fb00fcc0fc0001c0c0 +fb0006c0c000c000c0c0f40001c0c0f500fac0f500fbc0fd0001c0c0fb00 +fac0fa0001c0c09e00a80008c0c0000000c0c00000fbc0fb0001c0c0fa00 +01c0c0fc0013c0c00000c0c000c0c0000000c0c0000000c0c0c0f20001c0 +c0fc0001c0c0e8000dc0c0000000c0c0000000c0c00000fbc0fd0005c0c0 +0000c0c0fc000dc0c0000000c0c000c000c0c00000fbc0fb0001c0c0fa00 +01c0c0fa0001c0c0fc001ac0c00000c0c000c0c0000000c0c000c0c00000 +00c0c0000000c0c0ec0006c0c000c000c0c0fc0001c0c0fb0001c0c0fb00 +05c0c00000c0c0f50001c0c0f40007c0c000c000c0c000f9c0030000c0c0 +fa0001c0c0fa00fbc0090000c0c00000c0c00000f9c0030000c0c0f10001 +c0c0fb0003c0c000c0fc0001c0c0fb0006c0c0000000c0c0f50001c0c0ef +0001c0c0f60001c0c0fa0001c0c0fb0006c0c0000000c0c0fb0001c0c09e +00a8000dc0c0000000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fc00 +13c0c00000c0c000c0c0000000c0c0000000c0c0c0f20001c0c0fb00fdc0 +eb0001c0c0fc0012c0c0000000c0c000c0c00000c0c0000000c0c0f90001 +c0c0fc000dc0c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fb +0001c0c0fb0001c0c0fb0013c0c0000000c0c000c0c0000000c0c0000000 +c0c0ec0006c0c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0 +c0f60001c0c0f30009c0c000c000c0c000c0c0f800fdc0fb00fdc0fd0011 +c0c00000c0c00000c0c00000c0c00000c0c0f800fdc0f30001c0c0fb0001 +c0c0fa0001c0c0fb0006c0c0000000c0c0f60001c0c0ee0001c0c0f60001 +c0c0fa0001c0c0fb0006c0c0000000c0c0fb0001c0c09e00a8000dc0c000 +0000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fc0013c0c00000c0c0 +00c0c0000000c0c0000000c0c0c0f20001c0c0f90001c0c0ed0001c0c0fb +0012c0c0000000c0c000c0c00000c0c0000000c0c0fa0001c0c0fb000dc0 +c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fc0001c0c0fa00 +01c0c0fb0013c0c0000000c0c000c0c0000000c0c0000000c0c0ec0006c0 +c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0c0f70001c0c0 +f20009c0c000c000c0c000c0c0f60001c0c0fa0015c0c00000c0c00000c0 +c00000c0c00000c0c00000c0c0f60001c0c0f40001c0c0fb0015c0c00000 +00c00000c0c0000000c000c0c0000000c0c0f70001c0c0ed0001c0c0f600 +01c0c0fa000dc0c0000000c000c0c0000000c0c0fb0001c0c09e00a8000d +c0c0000000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fc0014c0c000 +00c0c000c0c0000000c0c00000c0c000c0c0f3000bc0c0000000c0c00000 +00c0c0ef0001c0c0f90011c0c000c0c00000c0c00000c0c0000000c0c0fb +0001c0c0fa000dc0c000c000c0c000c0c00000c0c0fb0001c0c0fa0006c0 +c0000000c0c0f90001c0c0fb0016c0c0000000c0c000c0c0000000c0c000 +0000c0c000c0c0ef00f9c0fc0001c0c0fb000cc0c000c0c00000c0c00000 +c0c0f70006c0c0000000c0c0f7003ec0c000c000c0c000c0c0000000c0c0 +00c0c0000000c0c000c0c0000000c0c000c0c00000c0c00000c0c00000c0 +c00000c0c0000000c0c000c0c0000000c0c0f50001c0c0fb0015c0c00000 +c0c00000c0c00000c0c000c0c0000000c0c0f70006c0c0000000c0c0fc00 +0bc0c0000000c0c0000000c0c0f60001c0c0fa000dc0c00000c0c000c0c0 +000000c0c0fb0001c0c09e00a80011c0c0000000c0c00000c0c0c000c0c0 +000000fcc0fc00fcc0fd00fbc0fd00fbc0080000c0c0000000c0c0f500fc +c0fd00fbc0ee0000c0f700fdc0fc00fdc00300c0c000fcc0fc0000c0f900 +11c0c0000000c0c00000c0c0c000c0c0000000fcc0fc00fcc0020000c0f9 +00fcc0fb00fbc0fd00fbc0fb00fdc0ed0004c0c000c0c0fc00fcc0fb00fd +c0080000c0c0c00000c0c0f700f9c0f70008c0c0000000c0c00000fbc0fd +00fbc0fd00fbc0fd00fdc00400c0c00000fbc0fd00fbc0fd00fbc0f400fc +c0010000f9c00000f9c00700c0c0000000c0c0f700f9c0fc0001c0c0fc00 +fbc0f600fcc0fc00f9c0010000fbc0fc00fcc09e00800080008000e40001 +c0c080009e00800080008000e80005c0c00000c0c080009e008000800080 +00e700fcc080009d00800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +0080008000800080008000800080008000800080008000800080008000d5 +0001c0c0e400fbc0e30004c0c0000000f9c0e700fac0f30000c0f10001c0 +c0f500fdc0f000fcc0ef0006c0c0000000c0c0f500fdc0fd00fdc0e800fd +c0f20001c0c0fb0004c0c0000000f9c0fb0001c0c0fc0001c0c0ec0006c0 +c0000000c0c0f500fdc0d20000c0ec00fcc0f90001c0c0d90004c0c00000 +00fbc0fc00fdc0ed00fdc0d200fbc0f30001c0c0fb0001c0c0f90001c0c0 +e500d600fdc0e50006c0c0000000c0c0e500fdc0fd0006c0c0000000c0c0 +e60005c0c00000c0c0f50001c0c0f10001c0c0f40001c0c0ef0001c0c0ee +0006c0c0000000c0c0f40001c0c0fc0001c0c0e70001c0c0f30001c0c0fb +00fdc0fd0006c0c0000000c0c0fc00fdc0fb0001c0c0ed0006c0c0000000 +c0c0f40001c0c0d30001c0c0eb0001c0c0f80001c0c0da000bc0c0000000 +c0c0000000c0c0fc0001c0c0ec0001c0c0d30006c0c0000000c0c0f500fd +c0fa0001c0c0fb00fcc0e600d700fcc0e50006c0c0000000c0c0e600fcc0 +f80001c0c0e60005c0c00000c0c0f50001c0c0e30001c0c0ef0001c0c0ee +0006c0c0000000c0c0f40001c0c0fc0001c0c0e70001c0c0f40001c0c0fb +00fcc0f80004c0c0000000fcc0fa0001c0c0ee0006c0c0000000c0c0f400 +01c0c0d30001c0c0eb0001c0c0d10001c0c0fc0006c0c0000000c0c0fc00 +01c0c0ec0001c0c0d30006c0c0000000c0c0f600fcc0f90001c0c0fc00fc +c0e600d50001c0c0e40001c0c0fa00fbc0070000c0c000c0c0c0f30001c0 +c0f80001c0c0e60007c0c00000c0c00000fcc0fd00fac0070000c0c000c0 +c0c0fc00fdc0fc00fbc0fd0005c0c00000c0c0f30001c0c0ee0008c0c000 +0000c0c00000fbc0fb0001c0c0fc0007c0c00000c0c00000fbc0070000c0 +c000c0c0c0fc00fcc0f40001c0c0f90001c0c0f80008c0c00000c0c000c0 +c0fa0001c0c0ee0008c0c0000000c0c00000fbc0fb0001c0c0fc00fbc0fd +00fbc00a0000c0c0c000c0c0000000fbc0f600fac0fd00fbc0f50001c0c0 +f900fdc0fd0016c0c000c0c0c00000c0c00000c0c00000c0c0000000c0c0 +f50001c0c0fb0001c0c0f80001c0c0fc00fcc0fc00fbc0fd000fc0c00000 +c0c000c0c0000000c0c00000fcc0fd0008c0c000c0c0c0000000fbc0f600 +06c0c0000000c0c0f40001c0c0f90001c0c0fc00fcc0e600d50001c0c0e3 +00fdc0fd000ec0c0000000c0c00000c0c00000c0c0f40001c0c0f90001c0 +c0e500fbc0fa0001c0c0fc0001c0c0fb00fdc00200c0c0fc0012c0c00000 +00c0c0000000c0c00000c0c000c0c0f20001c0c0ee000ec0c0000000c0c0 +00c0c0000000c0c0fc0001c0c0fc001cc0c000c0c00000c0c0000000c0c0 +0000c0c0c000c0c00000c0c000c0c0f40001c0c0f90001c0c0f90009c0c0 +0000c0c00000c0c0fa0001c0c0ee000ec0c000c000c0c000c0c0000000c0 +c0fc0014c0c0000000c0c0000000c0c000c0c0000000c0c000f9c00700c0 +c0000000c0c0f50001c0c0fc0006c0c0000000c0c0f60001c0c0f80001c0 +c0fc0014c0c00000c0c000c0c00000c0c0000000c0c000c0c0f40001c0c0 +fa00fdc0fa0001c0c0f9001ac0c00000c0c0000000c0c00000c0c000c0c0 +0000c0c0000000c0c0fb0012c0c0000000c0c0c000c0c000c0c0000000c0 +c0f600fac0f40001c0c0f90001c0c0fb0001c0c0e500d50001c0c0e10003 +c0c00000f9c0070000c0c00000c0c0f40001c0c0fa0001c0c0e40001c0c0 +fa00fbc0fc0001c0c0fb0005c0c00000c0c0fc0006c0c0000000c0c0f900 +fcc0f10001c0c0ee000ec0c0000000c0c000c0c0000000c0c0fc0001c0c0 +fc00fcc0fd00f9c00e0000c0c00000c0c000c0c00000c0c0f40001c0c0f9 +0001c0c0fa0004c0c0000000f9c0fb0001c0c0ee0007c0c000c000c0c000 +f9c0fc0006c0c0000000c0c0fa000fc0c0000000c0c000c0c000c000c0c0 +00f9c0f50001c0c0fc0006c0c0000000c0c0f60001c0c0f80001c0c0fc00 +0cc0c00000c0c000c0c00000c0c0fc00fdc0f30001c0c0f80001c0c0fb00 +01c0c0fc00fbc0030000c0c0f900fcc0fd0008c0c000c000c0c00000fbc0 +fd0006c0c00000c0c000f9c0f20001c0c0f40001c0c0f90001c0c0fb0001 +c0c0e500d50001c0c0e00004c0c000c0c0f90005c0c00000c0c0f40001c0 +c0fb0001c0c0e30001c0c0fb0005c0c00000c0c0fc0001c0c0fb0001c0c0 +f80006c0c0000000c0c0f900fcc0f50005c0c00000c0c0ee000ec0c00000 +00c0c000c0c0000000c0c0fc0001c0c0fc00fcc0fd0001c0c0f90001c0c0 +fb0005c0c00000c0c0f40001c0c0f90001c0c0fb0001c0c0f80001c0c0fa +0001c0c0ee0009c0c000c000c0c000c0c0f70006c0c0000000c0c0fa0011 +c0c0000000c0c000c0c000c000c0c000c0c0f00001c0c0fc0006c0c00000 +00c0c0f60001c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0fc +00fdc0f30001c0c0f70001c0c0fc000ec0c0000000c0c00000c0c00000c0 +c0f900fcc0fd0012c0c000c000c0c000c0c00000c0c0000000c0c0fb0001 +c0c0ed0001c0c0f40001c0c0f90001c0c0fb0001c0c0e500d50001c0c0e5 +0009c0c0000000c0c000c0c0f90005c0c00000c0c0f40001c0c0fb0001c0 +c0e30001c0c0fb0005c0c00000c0c0fc0001c0c0fb0001c0c0f80006c0c0 +000000c0c0f90004c0c000c0c0f60005c0c00000c0c0ed000dc0c000c0c0 +0000c0c0000000c0c0fc0001c0c0fc0008c0c000c0c00000c0c0f90001c0 +c0fb0005c0c00000c0c0f40001c0c0f90001c0c0fb0001c0c0f80001c0c0 +fa0001c0c0ee00f9c00200c0c0f70006c0c0000000c0c0fa0011c0c00000 +00c0c000c0c000c000c0c000c0c0f00001c0c0fc0006c0c0000000c0c0f6 +0005c0c0000000c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fc +00fdc0f30001c0c0fc0006c0c0000000c0c0fc000ec0c0000000c0c00000 +c0c00000c0c0f90019c0c000c0c00000c0c000c000c0c000c0c00000c0c0 +000000c0c0fb0001c0c0ed0001c0c0f40001c0c0f90001c0c0de00d50001 +c0c0e50016c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0f400 +01c0c0fb0001c0c0e30001c0c0fb0005c0c00000c0c0fc0008c0c000c0c0 +0000c0c0f80013c0c0000000c0c0000000c0c00000c0c00000c0c0f70005 +c0c00000c0c0fb0001c0c0f300fdc0fd0006c0c0000000c0c0fc0001c0c0 +fc0011c0c00000c0c000c0c0000000c0c00000c0c0fb0005c0c00000c0c0 +f30001c0c0fa0001c0c0fb0001c0c0f80001c0c0fb0001c0c0ed00fdc00b +00c0c0c000c0c0000000c0c0fc0023c0c0000000c0c0000000c0c000c0c0 +000000c0c000c0c000c000c0c000c0c0000000c0c0f5000cc0c000c0c000 +c0c0000000c0c0f60005c0c00000c0c0fc0001c0c0fc0014c0c00000c0c0 +00c0c00000c0c0000000c0c000c0c0f3000bc0c0000000c0c0000000c0c0 +fc001cc0c0000000c0c00000c0c00000c0c0000000c0c00000c0c00000c0 +c000f9c00b00c0c00000c0c0000000c0c0fb0006c0c0000000c0c0f30001 +c0c0fb0001c0c0fa0001c0c0fa0001c0c0fa0001c0c0e500d700fac0e600 +fbc0fd00fbc0fd00fbc0f500fac0fd0001c0c0e400fcc0fb00fdc00200c0 +c0fc00fdc0010000fcc0fa00fcc0fd00fbc0080000c0c0c00000c0c0f600 +fcc0fa0001c0c0f20000c0fb00fbc0fc00fcc00a0000c0c0c00000c0c000 +00fbc0010000fcc0fb00fdc00200c0c0f30004c0c0000000fac0fd0001c0 +c0f900fcc0fd0001c0c0eb0007c0c000c0c0000000fbc0fc00fcc0fd00fb +c0fd00fbc00a0000c0c0000000c0c00000fbc0f300fdc0fd00fbc0f600f9 +c0fd00fcc0fd0015c0c00000c0c00000c0c0c000c0c000c0c0000000c0c0 +f30004c0c0000000fbc0fc00fcc0fd00fdc00400c0c00000fbc0190000c0 +c0c00000c0c00000c0c000c0c0000000c0c0c000c0c000fcc0fb00fbc0f5 +00fcc0fa0001c0c0fc00fac0fd0001c0c0f90001c0c0e500a70001c0c080 +00800080008000db00a70001c0c08000800080008000db00a800fcc08000 +800080008000dc008000800080008000800080c080c080c080c090c0f000 +80c080c080c080c090c0f000efc0fb00edc0fb00e5c0fb00e3c0040000c0 +c0c0f90080c0cbc0010000fac0030000c0c0f900fdc0010000e4c0fa00eb +c0010000f2c00000d9c0010000fac00000fcc0fd00f0c00000fcc0fd00eb +c0fc00f9c0010000bac00000d4c0f000f0c0060000c0c0c00000efc00600 +00c0c0c00000e7c0060000c0c0c00000e5c0fd00fdc0060000c0c0c00000 +80c0ccc0010000fac0fd0003c0c00000f7c0010000e4c0050000c0c00000 +ecc0010000f3c0010000d9c0010000fbc0010000fbc0010000f1c0010000 +fbc0010000eac0010000f8c0010000bbc0010000d4c0f000f0c0060000c0 +c0c00000eac0010000e7c0060000c0c0c00000e6c0fc00f8c001000080c0 +cdc0010000fac0fc0003c0c00000f6c0010000e5c0050000c0c00000ddc0 +010000d2c0010000fbc0010000f1c0010000fbc0010000eac0010000b1c0 +010000d4c0f000f0c0060000c0c0c00000ebc0010000e5c0010000fac0fb +0007c0c00000c0000000f3c0010000f8c001000080c0cdc0010000fbc008 +0000c00000c0c00000f6c0010000e5c0070000c0c00000c0c0fb00fdc0fd +0008c00000c0c0c0000000fcc0fb0001c0c0fa00fdc0fb0007c0c00000c0 +000000f6c00f0000c0c0c00000c0c0c0000000c0c0c0fa00fdc0040000c0 +0000f6c0fa00fdc0070000c00000c0c0c0fb00f5c0010000f9c0fd00fdc0 +160000c0000000c0c00000c0c00000c0c00000c0c0c00000f6c0fb00fdc0 +fb0011c0c00000c0c00000c0c00000c0000000c0c0fa00fdc0fb0007c0c0 +0000c0000000f6c00f0000c0000000c0c00000c0000000c0c0f000f0c006 +0000c0c0c00000ecc0010000e3c0fd00fdc00e0000c0c0c00000c0c00000 +c0c00000f4c0010000f9c001000080c0ccc0010000fcc0070000c0c00000 +c0c0fa00fac0010000e5c0fb000fc0c00000c0c0c00000c00000c0c00000 +fbc0100000c0c0c00000c0c0c00000c0c0c00000fcc00e0000c0c0c00000 +c0c0000000c00000f7c0060000c0c0c00000fcc0010000fbc0010000fbc0 +fd0002c00000f5c0010000fbc0fd000ac00000c00000c0c0c00000f6c001 +0000f8c0010000fcc0140000c0c00000c00000c0c00000c0c0c00000c000 +00f6c0230000c0c0c00000c00000c0c0c00000c00000c0c00000c0c0c000 +00c0c00000c0c0c00000fcc00e0000c0c0c00000c0c0000000c00000f6c0 +0e0000c0c00000c0c0000000c00000c0f000f0c0060000c0c0c00000edc0 +010000e0c0030000c0c0f90007c0c00000c0c00000f4c0010000fac00100 +0080c0cbc0010000fcc0f900fac0010000fbc0010000e5c0060000c00000 +c0c0f90006c00000c0c00000fbc0010000fcc0010000f9c0010000fcc0f9 +0007c0c00000c0c00000f7c0060000c000c00000fcc0010000fbc0010000 +fbc0050000c0c00000f5c0010000fbc0060000c0c00000c0f900f6c00100 +00f8c0010000fcc00c0000c0c00000c00000c0c00000fcc0fd00f5c00100 +00fac01b0000c0c0c00000c00000c0c00000c0c0c00000c0c00000c0c0c0 +0000fcc0f90007c0c00000c0c00000f6c00e0000c0c00000c0c00000c0c0 +0000c0f000f0c0060000c0c0c00000eec0010000dec0040000c00000f9c0 +050000c0c00000f4c0010000fbc001000080c0cac0010000f8c0010000f9 +c0010000fbc0010000e5c0080000c0c00000c00000fac0050000c0c00000 +fbc0010000fbc0fd00fbc0010000fcc0010000f9c0010000f3c0060000c0 +00c00000fcc0010000fbc0010000fbc0050000c0c00000f5c0010000fbc0 +080000c0c00000c00000f1c0010000f8c0010000fcc00c0000c0c00000c0 +0000c0c00000fcc0fd00f5c0010000fac01b0000c0c0c00000c00000c0c0 +0000c0c0c00000c0c00000c0c0c00000fcc0010000f9c0010000f2c00900 +00c0c00000c0c00000fbc0f000f0c0060000c0c0c00000efc0010000e2c0 +090000c0c0c00000c00000f9c0050000c0c00000f4c0010000fbc0010000 +80c0cac0010000f8c0010000f9c0010000fbc0010000e5c0080000c0c000 +00c00000fac0050000c0c00000fbc0010000f9c0010000fcc0010000fcc0 +010000f9c0010000f3c0060000c000c00000fcc0010000fbc0010000fbc0 +050000c0c00000f5c0010000fbc0080000c0c00000c00000f1c0050000c0 +c0c000fcc0010000fcc00c0000c0c00000c00000c0c00000fcc0fd00f5c0 +010000fac01b0000c0c0c00000c00000c0c00000c0c0c00000c0c00000c0 +c0c00000fcc0010000f9c0010000f2c0090000c0c00000c0c00000fbc0f0 +00f0c0060000c0c0c00000efc0060000c0c0c00000e7c0160000c0c0c000 +00c00000c0c0c00000c0c00000c0c00000f4c0010000fbc001000080c0c9 +c0010000f9c00a0000c0c00000c0c0c00000fcc0010000e4c0140000c0c0 +0000c00000c0c0c00000c00000c0c00000fbc01f0000c0c0c00000c0c0c0 +0000c0c0c00000c00000c00000c0c0c00000c0c00000f3c0f900fcc00100 +00fbc00c0000c00000c0c00000c0c00000f5c0140000c00000c0c00000c0 +c00000c00000c0c0c00000f6c0050000c0c00000fcc0010000fcc0140000 +c0c00000c00000c0c00000c0c0c00000c00000f6c0320000c0c0c00000c0 +0000c0c0c00000c00000c0c00000c0c0c00000c0c00000c0c0c00000c000 +00c00000c0c0c00000c0c00000f2c0090000c0c00000c0c00000fbc0f000 +efc0fb00eec0f900e6c0fb00fdc0fb00fdc0fb00f5c0fa00fdc001000080 +c0c8c0010000fbc0fc0001c0c0fb00fcc0010000e4c0fd0005c0c00000c0 +c0fb00fdc0fb00fcc0fc00fdc0fb00fbc0fd00fdc0fb0001c0c0fc00f3c0 +040000c00000fcc0fc00fbc0fd0008c0c0000000c0c00000f4c0fd000ac0 +c0000000c0c00000c0c0fb00f6c0f900fdc0fc00fdc0150000c0c00000c0 +c0000000c00000c00000c0c0c00000f6c0fb00fdc0fb00fdc0fd000ac000 +00c0c00000c0c00000fcc0fd00fdc0fb0001c0c0fc00f3c0fb0001c0c0fc +00fcc0f000a7c001000080c080c0e7c001000080c095c0010000f3c0f000 +a7c001000080c080c0ebc0050000c0c0000080c095c0010000f3c0f000a8 +c0fc0080c080c0ebc0fc0080c095c0fc00f4c0f00080c080c080c080c090 +c0f000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000800080008000e70005c0c00000c0c08000fc00fdc0f300 +00c0fc00fdc0e800fdc0f400fdc0fb00fdc0ea0001c0c0b200fdc0ee00fd +c0c00001c0c0e20000c0fc00fdc0e800fdc0fb0001c0c0ea0000c0ec00fd +c0d80000c0cc00e70005c0c00000c0c08000fd0004c0c000c0c0f50001c0 +c0fb0001c0c0e90004c0c000c0c0f40001c0c0fa0001c0c0ea0001c0c0b1 +0001c0c0ed0001c0c0c00001c0c0e30001c0c0fb0001c0c0e90004c0c000 +c0c0fc0001c0c0eb0001c0c0eb0001c0c0d90001c0c0cc00e70005c0c000 +00c0c08000fd0004c0c00000c0f50001c0c0fb0001c0c0e90004c0c00000 +c0f40001c0c0fa0001c0c0990001c0c0ed0001c0c0a10001c0c0fb0001c0 +c0e90004c0c00000c0e50001c0c0eb0001c0c0d90001c0c0e90001c0c0e5 +00e70007c0c00000c0c00000fbc0070000c0c00000c0c0f500fbc0fd00fc +c0fd0005c0c000c0c0c0f60008c0c00000c0c0000000fbc0fd00fbc0f500 +fcc0fd000ec0c000c0c0c00000c0c0000000c0c0f600fbc0fc0001c0c0f4 +00fac0fd0007c0c000c0c0000000fbc0f40001c0c0fb00fbc0fb0001c0c0 +fa0001c0c0fc00fbc0200000c0c0000000c0c0000000c0c0c0000000c0c0 +00c0c0c0000000c0c0c000c0c0f600fbc0fd00fbc0120000c0c0c000c0c0 +0000c0c0c000c0c0000000fcc0fd0005c0c000c0c0c0fc00fcc0fd00fbc0 +f500fcc0fd0006c0c0000000c0c0f70010c0c000c0c0c00000c0c000c0c0 +c0000000fbc0fd00fbc0fd00fbc0fc00fdc0fd000ec0c000c0c0c0000000 +c0c0c000c0c0f700fac0fd0007c0c000c0c0000000fbc0f40001c0c0fa00 +fdc0fd0008c0c000c0c0c0000000fbc0010000fac0f500fbc0fd0007c0c0 +00c0c0000000fcc0fd0008c0c000c0c0c0000000fcc0fc00fbc0010000fa +c0fd00fbc0070000c0c000c0c0c0fb0001c0c0e500e600fcc00f0000c0c0 +000000c0c000c0c00000c0c0f60006c0c0000000c0c0fb000ac0c0000000 +c0c00000c0c0f70016c0c00000c0c00000c0c0000000c0c000c0c0000000 +c0c0f30012c0c0000000c0c00000c0c000c0c0000000c0c0f70008c0c000 +0000c0c00000fcc0f30001c0c0fb00fdc00a00c0c000c0c0000000c0c0f6 +00fcc0fd0006c0c0000000c0c0fc0001c0c0fa0013c0c0000000c0c00000 +00c0c000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000c0c00000 +c0c0f6000fc0c0000000c0c000c0c0000000c0c000f9c00000f9c0fb001a +c0c0000000c0c00000c0c00000c0c000c0c00000c0c0000000c0c0f6000d +c0c000c0c00000c0c0000000c0c0f60025c0c00000c0c00000c0c0c000c0 +c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0 +fc000cc0c00000c0c000c0c00000c0c0f40001c0c0fb00fdc00a00c0c000 +c0c0000000c0c0f600fcc0fa0001c0c0fc00fdc00f00c0c000c0c0000000 +c0c0000000c0c0f4000ec0c0000000c0c00000c0c0c000c0c0fb000ac0c0 +000000c0c0c000c0c0fb000fc0c00000c0c0000000c0c0000000c0c0fc00 +0ec0c0000000c0c00000c0c0c000c0c0df00e50012c0c0000000c0c00000 +00c0c000c0c00000c0c0f60001c0c0f900fbc0fd0005c0c00000c0c0f700 +0ac0c00000c0c0000000c0c0fb00f9c0f600fbc0fd000dc0c00000c0c000 +c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f20001c0c0fb0006 +c0c00000c0c000f9c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa +0013c0c0000000c0c0000000c0c000c0c000c000c0c0fc0001c0c0fc000c +c0c00000c0c000c0c00000c0c0f60001c0c0fa0018c0c0000000c0c000c0 +c000c000c0c000c0c000c000c0c00000fbc0fd0011c0c00000c0c000c0c0 +0000c0c0000000c0c0f2000dc0c00000c0c000c0c0000000c0c0f6000ec0 +c00000c0c00000c0c00000c0c000f9c0030000c0c0fa0001c0c0f80001c0 +c0fc000cc0c00000c0c000c0c00000c0c0f40001c0c0fb0006c0c00000c0 +c000f9c0f50001c0c0f90001c0c0fc0009c0c00000c0c00000c0c0f90001 +c0c0f40001c0c0f90007c0c00000c0c00000fbc0fd0007c0c00000c0c000 +00fbc0030000c0c0f80001c0c0fc00f9c0070000c0c00000c0c0df00e500 +12c0c0000000c0c0000000c0c000c0c00000c0c0f60001c0c0fa000ec0c0 +0000c0c0000000c0c00000c0c0f70005c0c00000c0c0fc00fdc0fd0001c0 +c0f20016c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0f7000b +c0c0000000c0c0000000c0c0f20001c0c0fb0008c0c00000c0c000c0c0f0 +0001c0c0fc0006c0c0000000c0c0fc0001c0c0fa0013c0c0000000c0c000 +0000c0c000c0c000c000c0c0fc0001c0c0fc000cc0c00000c0c000c0c000 +00c0c0f60001c0c0fa002dc0c0000000c0c000c0c000c000c0c000c0c000 +c000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c0fc00fd +c0f4000dc0c00000c0c000c0c0000000c0c0f60009c0c00000c0c00000c0 +c0fb0001c0c0f800fdc0fb00fdc0fa0001c0c0fc000cc0c00000c0c000c0 +c00000c0c0f40001c0c0fb0008c0c00000c0c000c0c0f00001c0c0f90001 +c0c0fc0001c0c0f900fdc0fb0001c0c0f40001c0c0f90011c0c00000c0c0 +00c0c00000c0c0000000c0c0fb0009c0c00000c0c00000c0c0f80001c0c0 +fc0001c0c0f90001c0c0db00e50012c0c0000000c0c0000000c0c000c0c0 +0000c0c0f60001c0c0fa000ec0c00000c0c0000000c0c00000c0c0f70005 +c0c00000c0c0fa0005c0c00000c0c0f20016c0c00000c0c0000000c0c000 +00c0c000c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0f20001c0 +c0fb0008c0c00000c0c000c0c0f00001c0c0fc0006c0c0000000c0c0fc00 +01c0c0fa0013c0c0000000c0c0000000c0c000c0c000c000c0c0fc0001c0 +c0fc000cc0c00000c0c000c0c00000c0c0f60001c0c0fa002dc0c0000000 +c0c000c0c000c000c0c000c0c000c000c0c000c0c00000c0c0000000c0c0 +0000c0c000c0c00000c0c0fa0001c0c0f5000dc0c00000c0c000c0c00000 +00c0c0f60009c0c00000c0c00000c0c0fb0001c0c0f60001c0c0fa0001c0 +c0fb0001c0c0fc000cc0c00000c0c000c0c00000c0c0f40001c0c0fb0008 +c0c00000c0c000c0c0f00001c0c0f90001c0c0fc0001c0c0f70001c0c0fc +0001c0c0f40001c0c0f90011c0c00000c0c000c0c00000c0c0000000c0c0 +fb0009c0c00000c0c00000c0c0f80001c0c0fc0001c0c0f90001c0c0f800 +01c0c0e500e50012c0c0000000c0c0000000c0c000c0c00000c0c0f60016 +c0c0000000c0c000c0c00000c0c0000000c0c00000c0c0f70016c0c00000 +c0c00000c0c0000000c0c000c0c0000000c0c0f70016c0c00000c0c00000 +00c0c00000c0c000c0c0000000c0c0f7000bc0c0000000c0c0000000c0c0 +f20014c0c000c0c00000c0c00000c0c000c0c0000000c0c0f50001c0c0fc +0006c0c0000000c0c0fc0001c0c0fa000cc0c0000000c0c0000000c0c000 +f9c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0f6003ec0c00000 +00c0c000c0c0000000c0c000c0c000c000c0c000c0c000c000c0c000c0c0 +0000c0c0000000c0c00000c0c000c0c00000c0c00000c0c0000000c0c0f6 +000dc0c00000c0c000c0c0000000c0c0f60009c0c00000c0c00000c0c0fb +0016c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0 +fc000cc0c00000c0c000c0c00000c0c0f40014c0c000c0c00000c0c00000 +c0c000c0c0000000c0c0f50001c0c0f90001c0c0fc0001c0c0fb000ec0c0 +000000c0c0000000c0c000c0c0f7001ac0c0000000c0c00000c0c00000c0 +c000c0c00000c0c0000000c0c0fb0022c0c00000c0c00000c0c0000000c0 +c0000000c0c000c0c000c0c0000000c0c00000c0c0f80001c0c0e500e600 +fcc0fd00fbc0fd00fdc00200c0c0f600fbc0fd00fdc00a00c0c00000c0c0 +0000c0c0f600fdc00400c0c00000fbc0fd00fbc0f500fdc00c00c0c00000 +c0c00000c0c00000fac0f600fbc0fd00fcc0f200fdc00a0000c0c0c00000 +c0c00000fbc0f500fcc0fc00fbc0fc00fcc0fc00fcc0fd00fbc0fd0004c0 +c000c0c0fc00fcc0fd0007c0c00000c0c00000fbc0f500fbc0fd00fbc02a +0000c0c0000000c0c000c0c0000000c0c00000c0c0c000c0c00000c0c000 +00c0c00000c0c0c000c0c00000fbc0f500fbc0fd00fac0f600fbc0010000 +fcc0fb00fbc0fd00fbc0fd00fbc0fc00fcc0fd0007c0c00000c0c00000fb +c0f300fdc00a0000c0c0c00000c0c00000fbc0f500fcc0fb00fcc0010000 +fcc0fb00fbc0fb00fdc0f500fbc0110000c0c0c00000c0c00000c0c0c000 +c0c000fcc0fb00fdc00400c0c00000fbc0fb00fdc0fd00fbc0010000fcc0 +fa0001c0c0e4008000f30001c0c08000fb0001c0c0a10001c0c0f60001c0 +c0c70001c0c08000be008000f40001c0c08000070000c0c00000c0c0a200 +01c0c0f50001c0c0cb0005c0c00000c0c08000be008000f800fbc08000fc +00fcc0a500fbc0f500fcc0cb00fcc08000bd008000800080008000800080 +00800080008000800080008000800080008000f500fdc0fc0001c0c0f200 +fdc0f20000c0ca0001c0c0f100fdc0f400fdc0f20000c0d90001c0c0fb00 +fdc0db0001c0c0f10001c0c0fb00fdc08b0001c0c0ea00fdc0d200fdc0fc +0001c0c0d100fdc0e30001c0c0fb00fdc0db0001c0c0f10001c0c0fa0000 +c0ec00f40001c0c0fb0001c0c0f20001c0c0f30001c0c0c90001c0c0f100 +01c0c0f30001c0c0f30001c0c0d90001c0c0fa0001c0c0da0001c0c0f200 +01c0c0fa0001c0c08a0001c0c0ea0001c0c0d30004c0c000c0c0fc0001c0 +c0d10001c0c0e30001c0c0fa0001c0c0da0001c0c0f20001c0c0fb0001c0 +c0ec00f40001c0c0fa0001c0c0f30001c0c0f30001c0c0c80001c0c0f200 +01c0c0f30001c0c0f30001c0c0d10001c0c0d90001c0c0eb0001c0c08900 +01c0c0eb0001c0c0d30004c0c00000c0fb0001c0c0d20001c0c0db0001c0 +c0d90001c0c0ec0001c0c0ec00f600fcc0fa0004c0c0000000fbc0fb0001 +c0c0fc00fbc0010000fac0fd00fbc0f500fbc0070000c0c000c0c0c0f600 +05c0c00000c0c0fa0009c0c00000c0c000c0c0c0fc00fcc0fd00fbc0fb00 +01c0c0fc00fbc0010000fac0fd00fbc0f600fdc00500c0c0000000fcc0fb +00fdc0fa0001c0c0e500fdc00200c0c0fa0004c0c0000000fcc0fb00fdc0 +fa0001c0c0f400fcc0f500fdc00500c0c0000000fbc0fd00fbc0fd00fbc0 +fd00fcc0fc00fdc00400c0c00000fbc0e60005c0c000c0c0c0fa0004c0c0 +000000fbc0070000c0c000c0c0c0fb000bc0c0000000c0c0000000c0c0f6 +00fbc0070000c0c000c0c0c0f40001c0c0f80004c0c0000000fbc0120000 +c0c000c0c0c00000c0c0000000c0c00000fcc0fd0005c0c000c0c0c0fc00 +fcc0f600fdc00500c0c0000000fcc0fb00fdc0fa0001c0c0e400fdc00200 +c0c0fb0009c0c00000c0c00000c0c0fc00fdc0fd00fac0ee00f70004c0c0 +00c0c0fa000ac0c00000c0c0000000c0c0fc0010c0c0000000c0c0000000 +c0c0000000c0c0fc0006c0c0000000c0c0f7000ec0c0000000c0c00000c0 +c0c000c0c0f70005c0c00000c0c0fa001ac0c0000000c0c00000c0c00000 +c0c000c0c00000c0c0000000c0c0fc0010c0c0000000c0c0000000c0c000 +0000c0c0fc0006c0c0000000c0c0f700f9c0fb0001c0c0fb0001c0c0fa00 +01c0c0e500f9c0fb0001c0c0fa0001c0c0fb0001c0c0fa0001c0c0f10001 +c0c0f600f9c01700c0c0000000c0c000c0c0000000c0c000c0c0000000c0 +c0fb0012c0c00000c0c00000c0c00000c0c0000000c0c0e600fdc00200c0 +c0fb0012c0c00000c0c0000000c0c00000c0c00000c0c0fc000bc0c00000 +00c0c0000000c0c0f7000ec0c0000000c0c00000c0c0c000c0c0f600fcc0 +f9001ac0c00000c0c0000000c0c00000c0c0c000c0c000c0c0000000c0c0 +fb0011c0c0000000c0c0c000c0c00000c0c000c0c0f600f9c0fb0001c0c0 +fb0001c0c0fa0001c0c0e50005c0c00000c0c0fa0009c0c00000c0c00000 +c0c0fb0001c0c0fb0001c0c0ec00f80005c0c00000c0c0fa0003c0c00000 +f9c0fc0004c0c0000000f9c0fd0001c0c0fc00f9c0f7000ec0c0000000c0 +c00000c0c00000c0c0f70005c0c00000c0c0fa0013c0c0000000c0c00000 +c0c000c0c00000c0c00000f9c0fc0004c0c0000000f9c0fd0001c0c0fc00 +f9c0f70008c0c000c000c0c00000fbc0fb0001c0c0fa0001c0c0e50006c0 +c000c000c0c0fb0004c0c0000000fbc0fb0001c0c0fa0001c0c0f400fbc0 +f60007c0c000c000c0c000f9c0030000c0c0fa0001c0c0fa00fbc0090000 +c0c00000c0c00000f9c0e60005c0c00000c0c0fb0003c0c00000f9c00700 +00c0c00000c0c0fc000bc0c0000000c0c0000000c0c0f7000ec0c0000000 +c0c00000c0c00000c0c0f50001c0c0f8001cc0c00000c0c0000000c0c000 +00c0c00000c0c000c0c000c000c0c00000fbc0fd000cc0c00000c0c000c0 +c00000c0c0f60008c0c000c000c0c00000fbc0fb0001c0c0fa0001c0c0e5 +0005c0c00000c0c0fa0009c0c00000c0c00000c0c0fb0001c0c0fb0001c0 +c0ec00f80005c0c00000c0c0fa0005c0c00000c0c0f70006c0c0000000c0 +c0f80001c0c0fc0001c0c0f2000ac0c0000000c0c00000c0c0f30005c0c0 +0000c0c0fa0015c0c0000000c0c00000c0c000c0c00000c0c00000c0c0f7 +0006c0c0000000c0c0f80001c0c0fc0001c0c0f2000dc0c000c000c0c000 +c0c00000c0c0fb0001c0c0fa0001c0c0e50006c0c000c000c0c0fb0009c0 +c00000c0c00000c0c0fb0001c0c0fa0001c0c0f50005c0c00000c0c0f600 +09c0c000c000c0c000c0c0f800fdc0fb00fdc0fd0011c0c00000c0c00000 +c0c00000c0c00000c0c0e10001c0c0f70005c0c00000c0c0f90005c0c000 +00c0c0fc000bc0c0000000c0c0000000c0c0f7000ac0c0000000c0c00000 +c0c0f10001c0c0f8000ec0c00000c0c0000000c0c00000c0c0fb0012c0c0 +00c000c0c000c0c00000c0c0000000c0c0fb0005c0c00000c0c0f6000dc0 +c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0e50005c0c00000 +c0c0fa0009c0c00000c0c00000c0c0fb0001c0c0fb0001c0c0ec00f80005 +c0c00000c0c0fa0005c0c00000c0c0f70006c0c0000000c0c0f80001c0c0 +fc0001c0c0f2000ac0c0000000c0c00000c0c0f30005c0c00000c0c0fa00 +15c0c0000000c0c00000c0c000c0c00000c0c00000c0c0f70006c0c00000 +00c0c0f80001c0c0fc0001c0c0f2000dc0c000c000c0c000c0c00000c0c0 +fb0001c0c0fa0001c0c0fa0001c0c0ed0006c0c000c000c0c0fb0009c0c0 +0000c0c00000c0c0fb0001c0c0fa0001c0c0f50005c0c00000c0c0f60009 +c0c000c000c0c000c0c0f60001c0c0fa0015c0c00000c0c00000c0c00000 +c0c00000c0c00000c0c0f70001c0c0ec0001c0c0f70005c0c00000c0c0f9 +0005c0c00000c0c0fc000bc0c0000000c0c0000000c0c0f7000ac0c00000 +00c0c00000c0c0f10001c0c0f8000ec0c00000c0c0000000c0c00000c0c0 +fb0012c0c000c000c0c000c0c00000c0c0000000c0c0fb0005c0c00000c0 +c0f6000dc0c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fa00 +01c0c0ed0005c0c00000c0c0fa0009c0c00000c0c00000c0c0fb0001c0c0 +fb0001c0c0ec00f80005c0c00000c0c0fb000bc0c0000000c0c0000000c0 +c0fc001bc0c0000000c0c0000000c0c0000000c0c000c0c000c0c0000000 +c0c0f7000ac0c0000000c0c00000c0c0f30005c0c00000c0c0fb0001c0c0 +fc0015c0c00000c0c000c0c00000c0c00000c0c0000000c0c0fc001bc0c0 +000000c0c0000000c0c0000000c0c000c0c000c0c0000000c0c0f7000dc0 +c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fa0001c0c0ed00 +06c0c000c000c0c0fc000ac0c0000000c0c00000c0c0fb0001c0c0fa0001 +c0c0f50005c0c00000c0c0f60036c0c000c000c0c000c0c0000000c0c000 +c0c0000000c0c000c0c0000000c0c000c0c00000c0c00000c0c00000c0c0 +0000c0c0000000c0c0fc0001c0c0ec0001c0c0f80013c0c0000000c0c000 +0000c0c00000c0c00000c0c0fc000bc0c0000000c0c0000000c0c0f7000a +c0c0000000c0c00000c0c0f10001c0c0f9000fc0c0000000c0c0000000c0 +c00000c0c0fb00f9c00b00c0c00000c0c0000000c0c0fb0005c0c00000c0 +c0f6000dc0c000c000c0c000c0c00000c0c0fb0001c0c0fa0001c0c0fa00 +01c0c0ed0005c0c00000c0c0fb000ac0c0000000c0c00000c0c0fb0001c0 +c0fb0004c0c000c0c0ef00f700fdc00700c0c0000000c0c0fb00fbc0fc00 +fcc0fd00fbc0fb00fdc0fd00fbc0f500fbc0010000fcc0f300fdc00700c0 +c0000000c0c0fb000fc0c00000c0c00000c0c0c000c0c00000fbc0fc00fc +c0fd00fbc0fb00fdc0fd00fbc0f60011c0c0000000c0c00000c0c0c000c0 +c0000000fcc0fc00fcc0fb0001c0c0ed000bc0c0000000c0c0000000c0c0 +fb00fdc00500c0c0000000fcc0fc00fcc0f500fdc00200c0c0f70008c0c0 +000000c0c00000fbc0fd00fbc0fd00fbc0fd00fdc00400c0c00000fbc0fd +00fbc0fb0001c0c0ed00fcc0fa0001c0c0fb00fbc0fd00fbc0fc00fcc0fd +00fac0f600fbc0010000fcc0f300fcc0fb0001c0c0fb00fbc0010000fcc0 +fb000ec0c000c0c0000000c0c0c000c0c000fcc0fb00fdc00200c0c0f700 +11c0c0000000c0c00000c0c0c000c0c0000000fcc0fc00fcc0fb0001c0c0 +ec00fbc0fc0001c0c0fb00fdc00500c0c0000000fcc0fb00fdc0ee008000 +ae0001c0c0800001c0c0f40001c0c0d30001c0c0ee0001c0c08000f50001 +c0c0e80001c0c0ce0080008000b00005c0c00000c0c0c50001c0c0ef0001 +c0c08000da0001c0c0ce0080008000af00fcc0c500fcc0f400fbc08000da +00fcc0cf0080008000800080008000800080008000800080008000800080 +0080008000df00fac0d400fdc08000d30000c0bf0001c0c0bc00fdc0d600 +fdc09a00fbc0e600fdc0f100fdc0d500df00fac0d30001c0c08000e90001 +c0c0ed0001c0c0e30001c0c0de0001c0c0bb0001c0c0d50001c0c09b0006 +c0c0000000c0c0e60001c0c0f00001c0c0d500df0005c000c0c000c0d300 +01c0c08000ea0001c0c0ec0001c0c0e20001c0c0980001c0c0d50001c0c0 +9b0006c0c0000000c0c0e60001c0c0f00001c0c0d500dd0001c0c0fc00fb +c0f60008c0c000c0c0c0000000fbc0fd00fcc0fb00fcc0f500fcc0f500fd +c00500c0c0000000fbc0fd00fbc0fd00fbc0fd00fcc0fc00fdc00400c0c0 +0000fbc0ee0010c0c000c0c0c00000c0c000c0c0c0000000fbc0fd00fbc0 +fd00fbc0f3000dc0c0000000c0c000c0c0c0000000fbc0010000fac01700 +00c0c00000c0c00000c0c000c0c0c00000c0c000c0c0c0fb0001c0c0e100 +fdc0f600fac0f700fdc00500c0c0000000fbc00a0000c0c0000000c0c000 +00fbc0f400fcc0fd00fbc00f0000c0c0000000c0c000c0c000c0c0c0ed00 +05c0c00000c0c0f600fac0f700fdc00500c0c0000000fbc00a0000c0c000 +0000c0c00000fbc0f6000dc0c00000c0c00000c0c000c0c0c0ea0001c0c0 +f500fac0f60007c0c000c0c0000000fbc0fb000ac0c0000000c0c000c0c0 +c0de00dd000bc0c0000000c0c0000000c0c0f600fdc00a00c0c000c0c000 +0000c0c0fb0009c0c0000000c0c000c0c0f20001c0c0f600f9c01700c0c0 +000000c0c000c0c0000000c0c000c0c0000000c0c0fb0012c0c00000c0c0 +0000c0c00000c0c0000000c0c0ee0025c0c00000c0c00000c0c0c000c0c0 +00c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f50001c0c0fb +00fdc00f00c0c000c0c0000000c0c0000000c0c0fc0016c0c00000c0c000 +0000c0c0c000c0c00000c0c00000c0c0fb0001c0c0e10001c0c0e700f9c0 +1700c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f6001dc0c0 +00c0c00000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0ee00 +04c0c000c0c0e600f9c01700c0c0000000c0c000c0c0000000c0c000c0c0 +000000c0c0f7000ec0c00000c0c0000000c0c00000c0c0ec0001c0c0e400 +fdc00a00c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0df00 +dd000bc0c0000000c0c0000000c0c0f60006c0c00000c0c000f9c0010000 +fbc0070000c0c00000c0c0f500fbc0f60007c0c000c000c0c000f9c00300 +00c0c0fa0001c0c0fa00fbc0090000c0c00000c0c00000f9c0ee000ec0c0 +0000c0c00000c0c00000c0c000f9c0030000c0c0fa0001c0c0f20001c0c0 +fa0006c0c00000c0c000f9c0fd0001c0c0fc0016c0c00000c0c0000000c0 +c00000c0c00000c0c00000c0c0fa0001c0c0e20001c0c0e70017c0c000c0 +00c0c000c0c0000000c0c000c0c0000000c0c000f9c0f7001ec0c00000c0 +c00000c0c0000000c0c000c0c000c000c0c00000c0c00000c0c0ee00fcc0 +e50017c0c000c000c0c000c0c0000000c0c000c0c0000000c0c000f9c0f7 +000ec0c00000c0c0000000c0c00000c0c0ec0001c0c0e40006c0c00000c0 +c000f9c0fc0001c0c0fc0005c0c00000c0c0df00dd000bc0c0000000c0c0 +000000c0c0f60001c0c0fb0001c0c0fa000dc0c00000c0c00000c0c00000 +c0c0f60005c0c00000c0c0f60009c0c000c000c0c000c0c0f800fdc0fb00 +fdc0fd0011c0c00000c0c00000c0c00000c0c00000c0c0e90009c0c00000 +c0c00000c0c0fb0001c0c0f800fdc0fb00fdc0f30001c0c0fb0001c0c0fb +0001c0c0f80001c0c0fc000ac0c00000c0c0000000c0c0fa0005c0c00000 +c0c0fb0001c0c0e10001c0c0f600fac0f70019c0c000c000c0c000c0c000 +0000c0c000c0c0000000c0c000c0c0f2001ec0c00000c0c00000c0c00000 +00c0c000c0c000c000c0c00000c0c00000c0c0ee00fcc0f400fac0f70019 +c0c000c000c0c000c0c0000000c0c000c0c0000000c0c000c0c0f2000ec0 +c00000c0c0000000c0c00000c0c0ec0001c0c0f400fac0f60008c0c00000 +c0c000c0c0f70001c0c0fc0005c0c00000c0c0df00dd000bc0c0000000c0 +c0000000c0c0f60001c0c0fb0001c0c0fa000dc0c00000c0c00000c0c000 +00c0c0f60005c0c00000c0c0f60009c0c000c000c0c000c0c0f60001c0c0 +fa0015c0c00000c0c00000c0c00000c0c00000c0c00000c0c0f70001c0c0 +f40009c0c00000c0c00000c0c0fb0001c0c0f60001c0c0fa0001c0c0f300 +01c0c0fc0001c0c0fb0001c0c0f80001c0c0fc000ac0c00000c0c0000000 +c0c0fa0005c0c00000c0c0fc0001c0c0e00001c0c0e70019c0c000c000c0 +c000c0c0000000c0c000c0c0000000c0c000c0c0f2001ec0c00000c0c000 +00c0c0000000c0c000c0c000c000c0c00000c0c00000c0c0fc0001c0c0f4 +0004c0c000c0c0e60019c0c000c000c0c000c0c0000000c0c000c0c00000 +00c0c000c0c0f2000ec0c00000c0c0000000c0c00000c0c0fc0001c0c0d4 +0008c0c00000c0c000c0c0f70001c0c0fc0005c0c00000c0c0df00dd000b +c0c0000000c0c0000000c0c0f60001c0c0fb0015c0c0000000c0c000c0c0 +0000c0c00000c0c00000c0c0f60005c0c00000c0c0f60036c0c000c000c0 +c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0c00000 +c0c00000c0c00000c0c00000c0c0000000c0c0fc0001c0c0f40009c0c000 +00c0c00000c0c0fb0016c0c0000000c0c000c0c0000000c0c000c0c00000 +00c0c0f30006c0c0000000c0c0fb001ac0c0000000c0c0000000c0c000c0 +c000c0c00000c0c0000000c0c0fa000ac0c00000c0c0000000c0c0f90001 +c0c0e80001c0c0e7001ec0c000c000c0c000c0c0000000c0c00000c0c000 +c0c00000c0c0000000c0c0f7000fc0c00000c0c00000c0c0000000c0c000 +f9c0070000c0c00000c0c0fc0001c0c0f40005c0c00000c0c0e7001ec0c0 +00c000c0c000c0c0000000c0c00000c0c000c0c00000c0c0000000c0c0f7 +000ec0c00000c0c0000000c0c00000c0c0fc0001c0c0f20001c0c0e4000d +c0c00000c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0df00 +de00fcc0fd00fbc0f600fcc0fb00fbc0fd00fdc00a00c0c00000c0c0c000 +c0c0f600fdc00200c0c0f70008c0c0000000c0c00000fbc0fd00fbc0fd00 +fbc0fd00fdc00400c0c00000fbc0fd00fbc0fb0001c0c0f400fbc0010000 +fcc0fb00fbc0fd00fbc0fd00fbc0f10002c0c000fcc0fb00fbc0fb00fdc0 +fd00fdc00300c0c000fcc0fb0009c0c00000c0c00000c0c0f80001c0c0e8 +0001c0c0e70008c0c0000000c0c00000fbc0fc00fdc0fc00fbc0f500fdc0 +0400c0c00000fbc0fd000dc0c000c0c0000000c0c00000c0c0fc0001c0c0 +f500fdc0030000c0c0e70008c0c0000000c0c00000fbc0fc00fdc0fc00fb +c0f500fdc00400c0c00000fbc0fb0001c0c0f20001c0c0e500fdc0050000 +c0c00000fbc0fc00fcc0fd00fbc0de008000e40001c0c0f40001c0c0f300 +01c0c08000fa0005c0c00000c0c09d0001c0c0a30001c0c0f90001c0c0bb +0001c0c0db008000e80005c0c00000c0c0e50001c0c08000fa0005c0c000 +00c0c08000be0001c0c0b20001c0c0db008000e700fcc0e500fcc08000fa +00fcc08000be00fcc0b400fcc0dc00800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000800080008000800080008000800080008000010000fcc0 +d300fdc08000800080008000b6000600c0c00000c0c0d30001c0c0800080 +0080008000b60001c0c0fc0000c0d30001c0c0fb0001c0c0800080008000 +8000bd0001c0c0f900fbc0120000c0c0c000c0c00000c0c0c000c0c00000 +00fcc0fd0005c0c000c0c0c0fc00fcc0fb0001c0c08000800080008000bd +0001c0c0fa0007c0c0000000c0c000f9c00000f9c0fb0011c0c0000000c0 +c00000c0c00000c0c000c0c08000800080008000b60001c0c0fa0018c0c0 +000000c0c000c0c000c000c0c000c0c000c000c0c00000fbc0fd000cc0c0 +0000c0c000c0c00000c0c08000800080008000b60001c0c0fa002dc0c000 +0000c0c000c0c000c000c0c000c0c000c000c0c000c0c00000c0c0000000 +c0c00000c0c000c0c00000c0c08000800080008000b60001c0c0fc002fc0 +00c0c0000000c0c000c0c000c000c0c000c0c000c000c0c000c0c00000c0 +c0000000c0c00000c0c000c0c00000c0c0fb0001c0c08000800080008000 +bd003500c0c00000c0c000c0c0000000c0c000c0c000c000c0c000c0c000 +c000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c0fb0001 +c0c08000800080008000bd00010000fcc0fd00fbc0280000c0c0000000c0 +c000c0c0000000c0c00000c0c0c000c0c00000c0c00000c0c00000c0c0c0 +00c0c08000800080008000b7008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +0080008000800080008000800080008000800080008000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 54143 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 54143 a -30 55692 a +SDict begin H.S end + -30 +55692 a -30 55692 a +SDict begin 18.2 H.A end + -30 55692 a -30 55692 a +SDict begin [ /View [/XYZ H.V] /Dest (4690) cvn H.B /DEST pdfmark end + -30 55692 +a 2015 x FU(By)406 b(def)-15 b(ault,)405 b(you)h(are)g(placed)f(in)h +(your)g(inbox.)f(The)h(messages)f(are)h(listed)f(with)h(the)f(message) +-30 59722 y(number)-62 b(,)418 b(date,)h(sender)-62 b(,)418 +b(and)h(subject.)f(Use)g(the)g(arro)-39 b(w)418 b(k)-15 +b(e)-23 b(ys)418 b(to)g(highlight)e(the)i(message)g(you)-30 +61736 y(w)-15 b(ant.)387 b(Press)7401 61736 y +SDict begin H.S end + 7401 61736 +a 7401 61736 a +SDict begin 18.2 H.A end + 7401 61736 a 7401 61736 a +SDict begin [ /View [/XYZ H.V] /Dest (4691) cvn H.B /DEST pdfmark end + 7401 61736 a +Fv(Enter)g FU(to)g(read)g(the)h(message.)-30 62072 y +SDict begin H.S end + +-30 62072 a -30 62072 a +SDict begin 18.2 H.A end + -30 62072 a -30 62072 a +SDict begin [ /View [/XYZ H.V] /Dest (4692) cvn H.B /DEST pdfmark end + -30 62072 +a -30 62847 a +SDict begin H.S end + -30 62847 a -30 62847 a +SDict begin 18.2 H.A end + -30 62847 a -30 +62847 a +SDict begin [ /View [/XYZ H.V] /Dest (4695) cvn H.B /DEST pdfmark end + -30 62847 a 1679 x FU(T)-124 b(o)327 b(compose)f(a)i(ne)-39 +b(w)327 b(message,)g(type)20577 64526 y +SDict begin H.S end + 20577 64526 a +20577 64526 a +SDict begin 18.2 H.A end + 20577 64526 a 20577 64526 a +SDict begin [ /View [/XYZ H.V] /Dest (4696) cvn H.B /DEST pdfmark end + 20577 64526 +a Fv(m)g FU(at)g(the)g(main)g(screen.)g(The)36337 64526 +y +SDict begin H.S end + 36337 64526 a 36337 64526 a +SDict begin 18.2 H.A end + 36337 64526 a 36337 64526 +a +SDict begin [ /View [/XYZ H.V] /Dest (4697) cvn H.B /DEST pdfmark end + 36337 64526 a Fv(d)g FU(k)-15 b(e)-23 b(y)326 b(will)h(\003ag)f(a)h +(message)-30 66541 y(for)379 b(deletion.)g(And)g(the)13237 +66541 y +SDict begin H.S end + 13237 66541 a 13237 66541 a +SDict begin 18.2 H.A end + 13237 66541 a 13237 +66541 a +SDict begin [ /View [/XYZ H.V] /Dest (4698) cvn H.B /DEST pdfmark end + 13237 66541 a Fv(r)g FU(k)-15 b(e)-23 b(y)379 +b(will)f(reply)h(to)g(the)g(current)h(message)e(you)h(are)h(reading.)f +(All)g(of)p Black 49394 73792 a FR(167)p Black eop end +%%Page: 168 190 +TeXDict begin 168 189 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.168) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (4733) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(13)g(Basic)g(Network)f(Commands)p Black -30 3611 a +FU(these)h(k)-15 b(e)-23 b(ys)387 b(are)g(displayed)g(at)g(the)g +(bottom)g(of)g(the)g(screen)h(with)f(a)g(prompt.)-30 +6401 y(The)520 b(man)f(page)h(discusses)f FP(elm)g FU(in)h(more)f +(detail,)h(so)f(you)h(will)f(probably)g(w)-15 b(ant)519 +b(to)h(consult)-30 8415 y(that)387 b(before)h(using)10773 +8415 y +SDict begin H.S end + 10773 8415 a 10773 8415 a +SDict begin 18.2 H.A end + 10773 8415 a 10773 8415 +a +SDict begin [ /View [/XYZ H.V] /Dest (4701) cvn H.B /DEST pdfmark end + 10773 8415 a FP(elm)p FU(.)-30 9526 y +SDict begin H.S end + -30 9526 a -30 +9526 a +SDict begin 18.2 H.A end + -30 9526 a -30 9526 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-MUTT) +cvn H.B /DEST pdfmark end + -30 9526 a 5181 x FF(m)-37 +b(utt)-30 14730 y +SDict begin H.S end + -30 14730 a -30 14730 a +SDict begin 18.2 H.A end + -30 14730 a +-30 14730 a +SDict begin [ /View [/XYZ H.V] /Dest (4705) cvn H.B /DEST pdfmark end + -30 14730 a -30 15660 a +SDict begin H.S end + -30 15660 a -30 15660 +a +SDict begin 18.2 H.A end + -30 15660 a -30 15660 a +SDict begin [ /View [/XYZ H.V] /Dest (4708) cvn H.B /DEST pdfmark end + -30 15660 a -30 15660 a +SDict begin H.S end + -30 +15660 a -30 15660 a +SDict begin 18.2 H.A end + -30 15660 a -30 15660 a +SDict begin [ /View [/XYZ H.V] /Dest (4709) cvn H.B /DEST pdfmark end + -30 15660 +a 1992 x FU(\223All)375 b(mail)f(clients)g(suck.)h(This)f(one)h(just)f +(sucks)g(less.\224)30118 17652 y +SDict begin H.S end + 30118 17652 a 30118 +17652 a +SDict begin 18.2 H.A end + 30118 17652 a 30118 17652 a +SDict begin [ /View [/XYZ H.V] /Dest (4710) cvn H.B /DEST pdfmark end + 30118 17652 a FP(mutt)p +FU(')-85 b(s)374 b(original)g(interf)-15 b(ace)374 b(w)-15 +b(as)374 b(based)-30 19666 y(on)1934 19666 y +SDict begin H.S end + 1934 19666 +a 1934 19666 a +SDict begin 18.2 H.A end + 1934 19666 a 1934 19666 a +SDict begin [ /View [/XYZ H.V] /Dest (4711) cvn H.B /DEST pdfmark end + 1934 19666 a +FP(elm)413 b FU(with)g(added)g(features)h(found)f(in)g(other)h(popular) +f(mailclients,)f(resulting)h(in)g(a)h(h)-8 b(ybrid)-30 +21681 y(mutt.)-30 22471 y +SDict begin H.S end + -30 22471 a -30 22471 a +SDict begin 18.2 H.A end + -30 +22471 a -30 22471 a +SDict begin [ /View [/XYZ H.V] /Dest (4712) cvn H.B /DEST pdfmark end + -30 22471 a 2000 x FU(Some)387 b(of)5566 +24471 y +SDict begin H.S end + 5566 24471 a 5566 24471 a +SDict begin 18.2 H.A end + 5566 24471 a 5566 24471 +a +SDict begin [ /View [/XYZ H.V] /Dest (4713) cvn H.B /DEST pdfmark end + 5566 24471 a FP(mutt)p FU(')-85 b(s)387 b(features)g(include:)-30 +24497 y +SDict begin H.S end + -30 24497 a -30 24497 a +SDict begin 18.2 H.A end + -30 24497 a -30 24497 +a +SDict begin [ /View [/XYZ H.V] /Dest (4714) cvn H.B /DEST pdfmark end + -30 24497 a -30 25272 a +SDict begin H.S end + -30 25272 a -30 25272 a +SDict begin 18.2 H.A end + -30 +25272 a -30 25272 a +SDict begin [ /View [/XYZ H.V] /Dest (4715) cvn H.B /DEST pdfmark end + -30 25272 a Black 3538 x FM(\225)p +Black 1520 28810 a +SDict begin H.S end + 1520 28810 a 1520 28810 a +SDict begin 18.2 H.A end + 1520 28810 +a 1520 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (4716) cvn H.B /DEST pdfmark end + 1520 28810 a FU(color)g(support)-30 29145 +y +SDict begin H.S end + -30 29145 a -30 29145 a +SDict begin 18.2 H.A end + -30 29145 a -30 29145 a +SDict begin [ /View [/XYZ H.V] /Dest (4717) cvn H.B /DEST pdfmark end + -30 +29145 a Black 2454 x FM(\225)p Black 1520 31599 a +SDict begin H.S end + 1520 +31599 a 1520 31599 a +SDict begin 18.2 H.A end + 1520 31599 a 1520 31599 a +SDict begin [ /View [/XYZ H.V] /Dest (4718) cvn H.B /DEST pdfmark end + 1520 31599 +a FU(message)g(threading)-30 31935 y +SDict begin H.S end + -30 31935 a -30 +31935 a +SDict begin 18.2 H.A end + -30 31935 a -30 31935 a +SDict begin [ /View [/XYZ H.V] /Dest (4719) cvn H.B /DEST pdfmark end + -30 31935 a Black 2454 +x FM(\225)p Black 1520 34389 a +SDict begin H.S end + 1520 34389 a 1520 34389 +a +SDict begin 18.2 H.A end + 1520 34389 a 1520 34389 a +SDict begin [ /View [/XYZ H.V] /Dest (4720) cvn H.B /DEST pdfmark end + 1520 34389 a FU(MIME)g(and)g(PGP/MIME)f +(support)-30 34725 y +SDict begin H.S end + -30 34725 a -30 34725 a +SDict begin 18.2 H.A end + -30 34725 +a -30 34725 a +SDict begin [ /View [/XYZ H.V] /Dest (4721) cvn H.B /DEST pdfmark end + -30 34725 a Black 2454 x FM(\225)p Black +1520 37179 a +SDict begin H.S end + 1520 37179 a 1520 37179 a +SDict begin 18.2 H.A end + 1520 37179 a 1520 +37179 a +SDict begin [ /View [/XYZ H.V] /Dest (4722) cvn H.B /DEST pdfmark end + 1520 37179 a FU(pop3)h(and)g(imap)g(support)-30 +37514 y +SDict begin H.S end + -30 37514 a -30 37514 a +SDict begin 18.2 H.A end + -30 37514 a -30 37514 +a +SDict begin [ /View [/XYZ H.V] /Dest (4723) cvn H.B /DEST pdfmark end + -30 37514 a Black 2454 x FM(\225)p Black 1520 39968 +a +SDict begin H.S end + 1520 39968 a 1520 39968 a +SDict begin 18.2 H.A end + 1520 39968 a 1520 39968 a +SDict begin [ /View [/XYZ H.V] /Dest (4724) cvn H.B /DEST pdfmark end + +1520 39968 a FU(support)f(for)i(multiple)e(mailbox)h(formats)f(\(mbox,) +i(MMDF)-124 b(,)386 b(MH,)i(maildir\))-30 40304 y +SDict begin H.S end + -30 +40304 a -30 40304 a +SDict begin 18.2 H.A end + -30 40304 a -30 40304 a +SDict begin [ /View [/XYZ H.V] /Dest (4725) cvn H.B /DEST pdfmark end + -30 40304 +a Black 2454 x FM(\225)p Black 1520 42758 a +SDict begin H.S end + 1520 42758 +a 1520 42758 a +SDict begin 18.2 H.A end + 1520 42758 a 1520 42758 a +SDict begin [ /View [/XYZ H.V] /Dest (4726) cvn H.B /DEST pdfmark end + 1520 42758 a +1520 42758 a +SDict begin H.S end + 1520 42758 a 1520 42758 a +SDict begin 18.2 H.A end + 1520 42758 a 1520 +42758 a +SDict begin [ /View [/XYZ H.V] /Dest (4727) cvn H.B /DEST pdfmark end + 1520 42758 a FR(highly)f FU(customizable)-30 +43075 y +SDict begin H.S end + -30 43075 a -30 43075 a +SDict begin 18.2 H.A end + -30 43075 a -30 43075 +a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-EMAIL-MUTT) +cvn H.B /DEST pdfmark end + -30 43075 a Black 30717 x FR(168)p Black eop end +%%Page: 169 191 +TeXDict begin 169 190 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.169) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (4751) cvn H.B /DEST pdfmark end + -30 -2687 a 27927 -1636 a FR(Chapter)386 +b(13)i(Basic)f(Network)f(Commands)p Black -30 3611 a +FX(Figur)-28 b(e)387 b(13-4.)h(Mutt)f(main)f(scr)-28 +b(een)-30 5475 y +SDict begin H.S end + -30 5475 a -30 5475 a +SDict begin 18.2 H.A end + -30 5475 a -30 +5475 a +SDict begin [ /View [/XYZ H.V] /Dest (4730) cvn H.B /DEST pdfmark end + -30 5475 a -30 38552 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 38552 a @beginspecial +12 @llx 212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial +%%BeginDocument: basic-network-commands/mutt.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +80c080c080c080c080c080c080c080c080c080c0efc0fb00f3c0010000fa +c00000e9c0fd00f6c0fb00f3c0fd00ddc0060000c0c0c00000f4c0fd00f4 +c0fd00dcc0fb00c6c0060000c0c0c00000f4c0010000fbc0fd00ddc0fa00 +ecc0fd00d3c0fc00cdc0fb00f6c0060000c0c0c00000f5c0fd0080c0f5c0 +f0c0060000c0c0c00000f4c0010000fbc0010000e8c0010000f5c0040000 +c00000f3c0010000ddc0060000c0c0c00000f3c0010000f3c0010000ddc0 +060000c0c0c00000c7c0fd0003c0000000f4c0010000fac0010000dcc005 +0000c0c00000ecc0010000d4c0050000c0c00000cfc0060000c0c0c00000 +f7c0060000c0c0c00000f4c001000080c0f5c0f5c00b0000c0c0c00000c0 +c0c00000edc0010000e8c0010000fbc0010000fcc0050000c0c00000f4c0 +010000e2c00b0000c0c0c00000c0c0c00000f3c0010000f3c0010000e2c0 +0b0000c0c0c00000c0c0c00000ccc0040000c0c0c0f900ecc0010000e2c0 +010000fcc0050000c0c00000ecc0010000dac0060000c0c0c00000fcc000 +00cfc0060000c0c0c00000fcc00b0000c0c0c00000c0c0c00000f4c00100 +0080c0f5c006c0000000c00000fcc0120000c0c0c00000c0c0c00000c000 +00c0c00000fcc0fd00fdc0fa00ecc0fc00fbc0010000fcc0070000c0c000 +00c0c0fb00fbc0010000edc0050000c0c00000fbc0120000c0c0c00000c0 +c0c00000c00000c0000000fcc0fc00fdc0fb00fbc0010000ecc0fb00fbc0 +010000fcc0010000fac0fc00fdc0080000c0c0c00000c0c0fb00eec0fd00 +02c00000fbc0040000c0c0c0f90001c0c0fc00fbc0fd00fac0010000edc0 +050000c0000000fbc0010000fcc0070000c0c00000c0c0fb0007c0c00000 +c0000000fbc00b0000c0c0c00000c0c0c00000eec0fd0002c00000fcc006 +0000c0c0c00000fac0080000c0000000c0c0c0fb000fc0c00000c0c00000 +c0c00000c0000000eac0010000fbc00d0000c0c0c00000c0c0c00000c0c0 +fb00fbc00a0000c0c0c00000c000000080c0fec0050000c0c00000f6c00d +0000c0c0c00000c00000c0c00000fbc0010000fbc0010000ebc0040000c0 +0000f5c00d0000c0c00000c00000c0c0c00000fcc0010000edc0050000c0 +c00000f6c01e0000c0c0c00000c0c00000c0c00000c0c00000c00000c0c0 +0000c0c0c00000fcc0010000edc0060000c0c0c00000f5c0fd00f9c01200 +00c0c00000c0c0c00000c00000c0c0c00000efc0f900f7c0060000c000c0 +0000fbc0010000fbc0010000fac0010000ecc0fd0002c00000f6c0fb0010 +c0c00000c0c0c00000c0c00000c0c00000fcc00b0000c0c0c00000c0c0c0 +0000efc0050000c0c00000f6c0010000f9c0fd001ac00000c00000c0c0c0 +0000c00000c0c00000c0c0c00000c0c00000ecc0010000f5c0f90007c000 +00c0c0c00000fcc0010000fcc0050000c0c0000080c0ffc0050000c0c000 +00f6c00d0000c0c0c00000c00000c0c00000fbc0010000fbc0010000ecc0 +050000c0c00000f5c0060000c0c00000c0f900fcc0010000edc0050000c0 +c00000f6c0170000c0c0c00000c0c00000c0c00000c00000c0c00000c0c0 +f900fcc0010000ecc0010000efc0040000c0c0c0fb0009c0c00000c0c0c0 +0000c0f900efc0060000c000c00000f7c0080000c0c0c00000c0c0fb00fb +c0010000fac0010000ecc0050000c0c00000f6c0060000c00000c0c0f900 +07c0c00000c0c00000fcc00b0000c0c0c00000c0c0c00000efc0050000c0 +c00000f6c0020000c0fc001fc0c00000c0c00000c00000c0c0c00000c000 +00c0c00000c0c0c00000c0c00000ecc0010000f5c0070000c0c0c00000c0 +f900fcc0010000fcc0050000c0c0000080c0ffc0050000c0c00000f6c00d +0000c0c0c00000c00000c0c00000fbc0010000fbc0010000ecc0050000c0 +c00000f5c0080000c0c00000c00000f7c0010000edc0050000c0c00000f6 +c0190000c0c0c00000c0c00000c0c00000c00000c0c00000c0c00000f7c0 +010000ebc0fd00f0c0140000c00000c0c00000c0c00000c0c0c00000c000 +00eac0060000c000c00000f7c00d0000c0c0c00000c00000c0c00000fbc0 +010000fac0010000ecc0010000f2c0080000c0c00000c00000f9c0050000 +c0c00000fcc00b0000c0c0c00000c0c0c00000efc0050000c0c00000f6c0 +0a0000c0c0c00000c0c00000fbc0160000c0c0c00000c00000c0c00000c0 +c0c00000c0c00000ecc0010000f5c0090000c0c0c00000c00000f7c00100 +00fcc0050000c0c0000080c0ffc0050000c0c00000fbc0120000c0c0c000 +00c000c00000c00000c0c00000fbc0010000fbc0010000ecc0050000c0c0 +0000fbc0010000fcc0080000c0c00000c00000f7c0010000edc0050000c0 +c00000fbc01e0000c0c0c00000c0c0c00000c0c00000c0c00000c00000c0 +c00000c0c00000f7c0010000e9c0010000fbc01e0000c0c0c00000c0c0c0 +0000c00000c0c00000c0c00000c0c0c00000c00000eac0060000c000c000 +00fcc0120000c0c0c00000c0c0c00000c00000c0c00000fbc0010000fac0 +010000ecc0010000f8c0010000fcc0080000c0c00000c00000f9c0050000 +c0c00000fcc00b0000c0c0c00000c0c0c00000efc0050000c0c00000fbc0 +0f0000c0c0c00000c0c0c00000c0c00000fbc0160000c0c0c00000c00000 +c0c00000c0c0c00000c0c00000e4c00e0000c0c0c00000c0c0c00000c000 +00f7c0010000fcc0050000c0c0000080c0ffc0050000c0c00000fbc00700 +00c0c0c00000c0fc0006c00000c0c00000fbc0010000fbc0040000c00000 +efc0050000c0c00000fbc0010000fcc00d0000c00000c0c00000c0c0c000 +00fcc0010000edc0050000c0c00000fbc0230000c0c0c00000c0c0c00000 +c0c00000c0c00000c00000c0c00000c0c00000c0c0c00000fcc0010000ed +c0060000c0c0c00000fcc0230000c0c0c00000c0c0c00000c00000c0c000 +00c0c0c00000c00000c0c00000c0c0c00000efc0060000c000c00000fcc0 +120000c0c0c00000c0c0c00000c00000c0c00000fbc0010000fac0010000 +ecc0010000f8c0010000fcc0150000c0c00000c00000c0c0c00000c0c000 +00c0c00000fcc00b0000c0c0c00000c0c0c00000efc0050000c0c00000fb +c0010000fcc0090000c0c00000c0c00000fbc0160000c0c0c00000c00000 +c0c00000c0c0c00000c0c00000ecc0010000fac0130000c0c0c00000c0c0 +c00000c00000c0c0c00000fcc0010000fcc0050000c0c0000080c0ffc000 +c0fb00f5c0fb00fdc0fd0005c00000c0c0c0fc00fbc0fd00edc0fd0002c0 +0000f7c0fb00fcc0fb00fcc0fc00edc0fd0002c00000f6c0fb00fdc00f00 +00c0c00000c0c0000000c00000c0c0fb00fcc0fc00edc0fb00f5c0fb00fd +c0fd0008c00000c0c0c0000000fcc0fb00eec0060000c0c0c00000f7c011 +0000c0c0c00000c0c0000000c00000c0c0c0fc00fcc0fc00eec0fc00f4c0 +fd0005c0c00000c0c0fb00fdc0fb00fcc0fc00fdc0fa00eec0fb00f4c0fd +0002c000c0fc00fbc0fb00fdc0fd0004c00000c0c0fb00ebc0010000f5c0 +080000c0c0c00000c0c0fb00fcc0fc00fdc0fb0080c0fec0fcc0010000f2 +c001000080c080c0b5c0010000eec0010000ebc0010000d5c0010000c2c0 +01000080c0fbc0fcc0010000f2c0fd0080c080c0b6c0010000efc0010000 +eec0050000c0c00000d5c0010000c2c001000080c0fbc0fdc0fc0080c080 +c0a7c0fc00f4c0fb00ecc0fc00d5c0fc00c4c0fc0080c0fcc080c080c080 +c080c080c08000800080008000800080008000800080008000e50001c0c0 +f400fbc0f600f9c0f600fbc0e30004c0c0000000f9c0f600fac0d40000c0 +b00001c0c0ed00fbc0fd00fbc0fc0001c0c0f400fac0eb0001c0c0f20000 +c0d90001c0c0fa0000c0fc00fdc0f00000c0fc00fdc0eb00fcc0f90001c0 +c0ba0000c0c70001c0c0ec0000c0ec00e600fdc0f50006c0c0000000c0c0 +f60005c0c00000c0c0f70006c0c0000000c0c0e500fdc0fd0006c0c00000 +00c0c0f600fac0d50001c0c0b10001c0c0ed000ec0c0000000c0c000c0c0 +000000c0c0fc0001c0c0f40005c0c00000c0c0ec0001c0c0f30001c0c0d9 +0001c0c0fb0001c0c0fb0001c0c0f10001c0c0fb0001c0c0ea0001c0c0f8 +0001c0c0bb0001c0c0c70001c0c0ed0001c0c0ec00e700fcc0f50006c0c0 +000000c0c0f60005c0c0000000c0f70006c0c0000000c0c0e600fcc0f800 +01c0c0f60005c000c0c000c0d50001c0c0b20001c0c0e70001c0c0fa0001 +c0c0fb0001c0c0f50005c0c00000c0c0dd0001c0c0d20001c0c0fb0001c0 +c0f10001c0c0fb0001c0c0ea0001c0c0b10001c0c0b20001c0c0ec00e500 +01c0c0f50006c0c0000000c0c0f60003c0c000c0f40001c0c0fa00fbc007 +0000c0c000c0c0c0f30001c0c0f80001c0c0f40001c0c0fc00fbc0f60008 +c0c000c0c0c0000000fbc0fd00fbc0010000fac0b40001c0c0e80001c0c0 +f90001c0c0fb0001c0c0f50007c0c00000c0c00000fbc0fd00fdc00800c0 +c0000000c0c0c0fc00fbc0010000fac0fd00fbc0070000c0c000c0c0c0f6 +000fc0c0000000c0c0000000c0c0c0000000fac0fd0004c0c000c0c0f600 +fac0fd0007c0c000c0c0000000fbc0f50001c0c0f900fdc0fd0016c0c000 +c0c0c00000c0c00000c0c00000c0c0000000c0c0f600fbc0fd00fbc01100 +00c0c00000c0c00000c0c000c0c0c00000fac0fd00fbc0070000c0c000c0 +c0c0f60010c0c000c0c0c00000c0c000c0c0c0000000fbc0fa00fdc00100 +00fbc0fd00fbc0010000fac0ee00e50001c0c0f50006c0c0000000c0c0f6 +00fcc0f300fdc0fd000ec0c0000000c0c00000c0c00000c0c0f40001c0c0 +f90001c0c0f3000bc0c0000000c0c0000000c0c0f600fdc01700c0c000c0 +c0000000c0c000c0c0000000c0c0000000c0c0b20001c0c0e90001c0c0fb +00fcc0fa0001c0c0f500fbc00f0000c0c0000000c0c000c0c00000c0c0fb +0010c0c0000000c0c0000000c0c0000000c0c0fc000ec0c0000000c0c000 +00c0c0c000c0c0f70006c0c0000000c0c0fc0001c0c0fb0001c0c0fb00fd +c00200c0c0f50001c0c0fb00fdc00a00c0c000c0c0000000c0c0f60001c0 +c0f80001c0c0fc0014c0c00000c0c000c0c00000c0c0000000c0c000c0c0 +f60023c0c0000000c0c000c0c0000000c0c000c0c00000c0c0000000c0c0 +0000c0c0000000c0c0fc000ec0c0000000c0c00000c0c0c000c0c0f60015 +c0c00000c0c00000c0c0c000c0c000c0c0000000c0c0fa0016c0c000c0c0 +000000c0c000c0c0000000c0c0000000c0c0ec00e50001c0c0f50006c0c0 +000000c0c0f60003c0c000c0f10003c0c00000f9c0070000c0c00000c0c0 +f40001c0c0fa0001c0c0f2000bc0c0000000c0c0000000c0c0f6001ac0c0 +0000c0c000c0c0000000c0c000c0c0000000c0c0000000c0c0b20001c0c0 +ea0001c0c0f70001c0c0fb0001c0c0f50006c0c000c0c00000f9c00600c0 +c00000c0c0fb0001c0c0fc0001c0c0f90001c0c0fc00f9c0070000c0c000 +00c0c0f70006c0c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c00000 +c0c0f50001c0c0fb0006c0c00000c0c000f9c0f60001c0c0f80001c0c0fc +000cc0c00000c0c000c0c00000c0c0fc00fdc0f50001c0c0fa001bc0c000 +0000c0c000c0c00000c0c0000000c0c00000c0c0000000c0c0fc00f9c007 +0000c0c00000c0c0f60015c0c00000c0c00000c0c00000c0c000c0c00000 +00c0c0fa0002c0c000f9c00200c0c0f80001c0c0ec00e50001c0c0f50006 +c0c0000000c0c0f60001c0c0ee0004c0c000c0c0f90005c0c00000c0c0f4 +0001c0c0fb0001c0c0f1000bc0c0000000c0c0000000c0c0f60001c0c0fb +0013c0c0000000c0c000c0c0000000c0c0000000c0c0b20001c0c0eb0001 +c0c0f60001c0c0fb0001c0c0f50008c0c00000c0c000c0c0fa0005c0c000 +00c0c0fb0001c0c0fb00fdc0fb0001c0c0fc0001c0c0f90001c0c0f30006 +c0c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0c0f50001c0 +c0fb0008c0c00000c0c000c0c0f10001c0c0f80001c0c0fc000cc0c00000 +c0c000c0c00000c0c0fc00fdc0f50001c0c0fa001bc0c0000000c0c000c0 +c00000c0c0000000c0c00000c0c0000000c0c0fc0001c0c0f90001c0c0f2 +0009c0c00000c0c00000c0c0fb0006c0c0000000c0c0fa0004c0c000c0c0 +fa0001c0c0f80001c0c0ec00e50001c0c0f50006c0c0000000c0c0f60001 +c0c0f30009c0c0000000c0c000c0c0f90005c0c00000c0c0f40001c0c0fb +0001c0c0f1000bc0c0000000c0c0000000c0c0f60001c0c0fb0013c0c000 +0000c0c000c0c0000000c0c0000000c0c0b20001c0c0ec0001c0c0f50001 +c0c0fb0001c0c0f50008c0c00000c0c000c0c0fa0005c0c00000c0c0fb00 +01c0c0f90001c0c0fc0001c0c0fc0001c0c0f90001c0c0f30006c0c000c0 +00c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0c0f50001c0c0fb0008 +c0c00000c0c000c0c0f10005c0c0000000c0fc0001c0c0fc000cc0c00000 +c0c000c0c00000c0c0fc00fdc0f50001c0c0fa001bc0c0000000c0c000c0 +c00000c0c0000000c0c00000c0c0000000c0c0fc0001c0c0f90001c0c0f2 +0009c0c00000c0c00000c0c0fb0006c0c0000000c0c0fa0004c0c000c0c0 +fa0001c0c0f80001c0c0ec00e50001c0c0f50006c0c0000000c0c0f60001 +c0c0f30016c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0f400 +01c0c0fb0001c0c0f1000bc0c0000000c0c0000000c0c0f60001c0c0fb00 +16c0c0000000c0c000c0c0000000c0c0000000c0c000c0c0b40001c0c0ed +000ec0c0000000c0c000c0c0000000c0c0fc0001c0c0f40014c0c00000c0 +c000c0c0000000c0c000c0c00000c0c0fb001fc0c0000000c0c0000000c0 +c0000000c0c000c0c000c0c0000000c0c00000c0c0f300f9c0fc0001c0c0 +fb000cc0c000c0c00000c0c00000c0c0f50014c0c000c0c00000c0c00000 +c0c000c0c0000000c0c0f60005c0c00000c0c0fc0001c0c0fc0014c0c000 +00c0c000c0c00000c0c0000000c0c000c0c0f60032c0c0000000c0c000c0 +c0000000c0c000c0c00000c0c0000000c0c00000c0c0000000c0c000c0c0 +00c0c0000000c0c00000c0c0f20009c0c00000c0c00000c0c0fb0006c0c0 +000000c0c0fa0019c0c000c0c0000000c0c000c0c0000000c0c0000000c0 +c000c0c0ef00e700fac0f600fbc0f600fcc0f300fbc0fd00fbc0fd00fbc0 +f500fac0fd0001c0c0f200fcc0fd00fbc0f600fcc0fb00fbc0fd00fbc0fb +00fdc0b20001c0c0ee00f9c0010000fbc0fc0001c0c0f400fdc0050000c0 +c00000fbc0fd00fbc0fc00fcc0fd00fbc0fb00fdc0fd00fbc0010000fcc0 +f30004c0c000c0c0fc00fcc0fb00fdc0080000c0c0c00000c0c0f400fdc0 +0a0000c0c0c00000c0c00000fbc0f600f9c0fd00fcc0fd0015c0c00000c0 +c00000c0c0c000c0c000c0c0000000c0c0f600fbc0fd00fbc0fd00fdc00a +00c0c00000c0c00000c0c0fc00fdc0fd00fbc0010000fcc0f300fbc00100 +00fcc0fb00fbc0f90003c0c00000fbc0fd00fbc0fb00fdc0ee00a70001c0 +c080008f0001c0c08000950001c0c0ea0005c0c00000c0c0d700a70001c0 +c08000930005c0c00000c0c08000950001c0c0ea0005c0c00000c0c0d700 +a800fcc080009300fcc080009500fcc0ea00fcc0d6008000800080008000 +800080c080c080c080c080c080c080c080c080c080c0e7c0fb00d5c0fb00 +e3c0040000c0c0c0f900f7c0fa00f3c00000f1c0010000f5c0fd00f0c0fc +00efc0060000c0c0c00000f5c0fd00fdc0fd00efc0010000f3c0040000c0 +c0c0f90001c0c0fb00fcc0010000f4c0060000c0c0c00000f5c0fd00d2c0 +0000ecc0fc00f9c0010000d9c0040000c0c0c0fb00fcc0fd00edc0fd00d2 +c0fb00f3c0010000fbc0010000f9c0010000bdc0e8c0060000c0c0c00000 +d7c0060000c0c0c00000e5c0fd00fdc0060000c0c0c00000f6c0050000c0 +c00000f5c0010000f1c0010000f4c0010000efc0010000eec0060000c0c0 +c00000f4c0010000fcc0010000f0c0010000f3c0fd00fdc0010000fac006 +0000c0c0c00000fcc0010000f5c0060000c0c0c00000f4c0010000d3c001 +0000ebc0010000f8c0010000dac00b0000c0c0c00000c0c0c00000fcc001 +0000ecc0010000d3c0060000c0c0c00000f5c0fd00fac0010000fbc0fc00 +bec0e3c0010000d7c0060000c0c0c00000e6c0fc00f8c0010000f6c00500 +00c0c00000f5c0010000e3c0010000efc0010000eec0060000c0c0c00000 +f4c0010000fcc0010000f1c0010000f3c0fc00fdc0010000f5c0010000fb +c0010000f6c0060000c0c0c00000f4c0010000d3c0010000ebc0010000d1 +c0010000fcc0060000c0c0c00000fcc0010000ecc0010000d3c0060000c0 +c0c00000f6c0fc00f9c0010000fcc0fc00bec0e4c0010000e3c0010000f4 +c0010000fac0fb0007c0c00000c0000000f3c0010000f8c0010000f6c007 +0000c0c00000c0c0fc00fdc0fa0007c0c00000c0000000fcc0fd00fcc0fb +00fdc0050000c0c00000f3c0010000eec0080000c0c0c00000c0c0fb00fb +c0010000fcc0050000c0c00000f5c0010000f1c0060000c0c0c00000f5c0 +010000fbc0010000f6c0080000c0c0c00000c0c0fb00fbc0010000fcc0fb +00fdc0fb000ac0c0000000c00000c0c0c0fb00f6c0fa00fdc0fb00f5c001 +0000f9c0fd00fdc0160000c0000000c0c00000c0c00000c0c00000c0c0c0 +0000f5c0010000fbc0010000f8c0010000fcc0fc00fcc0fb00fdc00f0000 +c0c00000c00000c0c0c00000c0c0fc00fdc0080000c0000000c0c0c0fb00 +f6c0060000c0c0c00000f4c0010000f9c0010000fcc0fc00bec0e5c00100 +00e2c0010000f3c0fd00fdc00e0000c0c0c00000c0c00000c0c00000f4c0 +010000f9c0010000f5c0fb00fac0010000fcc0010000fbc0fd0002c00000 +fcc0120000c0c0c00000c0c0c00000c0c00000c00000f2c0010000eec00e +0000c0c0c00000c00000c0c0c00000fcc0010000fcc0040000c00000f4c0 +010000f1c0040000c0c0c0fa00fcc0fc00fac0010000f6c00e0000c000c0 +0000c00000c0c0c00000fcc0140000c0c0c00000c0c0c00000c00000c0c0 +c00000c0f90007c00000c0c0c00000f5c0010000fcc0060000c0c0c00000 +f6c0010000f8c0010000fcc0140000c0c00000c00000c0c00000c0c0c000 +00c00000f4c0010000fac0fd00fac0010000f9c01a0000c0c00000c0c0c0 +0000c0c00000c00000c0c00000c0c0c00000fbc0120000c0c0c0000000c0 +0000c00000c0c0c00000f6c0fa00f4c0010000f9c0010000fbc0010000bd +c0e6c0010000e3c0fa00f3c0030000c0c0f90007c0c00000c0c00000f4c0 +010000fac0010000f4c0010000fac0fb00fcc0010000fbc0050000c0c000 +00fcc0060000c0c0c00000f9c0fc00f1c0010000eec00e0000c0c0c00000 +c00000c0c0c00000fcc0010000fcc0fc00f3c0010000f1c0010000f8c001 +0000fac0010000fbc0010000f6c0070000c000c00000c0f900fcc0060000 +c0c0c00000fac00f0000c0c0c00000c00000c000c00000c0f900f5c00100 +00fcc0060000c0c0c00000f6c0010000f8c0010000fcc00c0000c0c00000 +c00000c0c00000fcc0fd00f3c0010000f8c0010000fbc0010000fcc0fb00 +03c0c00000f9c0fc00fdc0080000c000c00000c0c0fb00fdc0060000c0c0 +0000c0f900f2c0010000f4c0010000f9c0010000fbc0010000bdc0e7c001 +0000e0c0010000f0c0040000c00000f9c0050000c0c00000f4c0010000fb +c0010000f3c0010000fbc0050000c0c00000fcc0010000fbc0010000f8c0 +060000c0c0c00000f9c0fc00f5c0050000c0c00000eec00e0000c0c0c000 +00c00000c0c0c00000fcc0010000fcc0fc00f3c0010000f1c0010000f8c0 +010000fac0010000fbc0010000f6c0090000c000c00000c00000f7c00600 +00c0c0c00000fac0110000c0c0c00000c00000c000c00000c00000f0c001 +0000fcc0060000c0c0c00000f6c0010000f8c0010000fcc00c0000c0c000 +00c00000c0c00000fcc0fd00f3c0010000f7c0010000fcc00e0000c0c0c0 +0000c0c00000c0c00000f9c0fc00fdc0120000c000c00000c00000c0c000 +00c0c0c00000fbc0010000edc0010000f4c0010000f9c0010000fbc00100 +00bdc0e8c0010000dfc0010000f5c0090000c0c0c00000c00000f9c00500 +00c0c00000f4c0010000fbc0010000f3c0010000fbc0050000c0c00000fc +c0010000fbc0010000f8c0060000c0c0c00000f9c0040000c00000f6c005 +0000c0c00000edc00d0000c00000c0c00000c0c0c00000fcc0010000fcc0 +040000c00000f4c0010000f1c0010000f8c0010000fac0010000fbc00100 +00f6c0f90002c00000f7c0060000c0c0c00000fac0110000c0c0c00000c0 +0000c000c00000c00000f0c0010000fcc0060000c0c0c00000f6c0050000 +c0c0c000fcc0010000fcc00c0000c0c00000c00000c0c00000fcc0fd00f3 +c0010000fcc0060000c0c0c00000fcc00e0000c0c0c00000c0c00000c0c0 +0000f9c0190000c00000c0c00000c000c00000c00000c0c00000c0c0c000 +00fbc0010000edc0010000f4c0010000f9c0010000b6c0e8c0060000c0c0 +c00000d7c0160000c0c0c00000c00000c0c0c00000c0c00000c0c00000f4 +c0010000fbc0010000f3c0010000fbc0050000c0c00000fcc0080000c000 +00c0c00000f8c0130000c0c0c00000c0c0c00000c0c00000c0c00000f7c0 +050000c0c00000fbc0010000f3c0fd00fdc0060000c0c0c00000fcc00100 +00fcc0050000c0c00000f4c0010000f2c0130000c0c0c00000c0c0c00000 +c00000c0c0c00000fcc0010000f5c0fd000bc0000000c00000c0c0c00000 +fcc0230000c0c0c00000c0c0c00000c00000c0c0c00000c00000c000c000 +00c00000c0c0c00000f5c00c0000c00000c00000c0c0c00000f6c0050000 +c0c00000fcc0010000fcc0140000c0c00000c00000c0c00000c0c0c00000 +c00000f3c00b0000c0c0c00000c0c0c00000fcc01c0000c0c0c00000c0c0 +0000c0c00000c0c0c00000c0c00000c0c00000c0f9000bc00000c0c00000 +c0c0c00000fbc0060000c0c0c00000f3c0010000fbc0010000fac0010000 +fac0010000fac0010000bdc0e8c0f900d6c0fb00fdc0fb00fdc0fb00f5c0 +fa00fdc0010000f4c0fc00fbc0fd0002c00000fcc0fd0001c0c0fc00fac0 +fc00fdc0fb0008c0c0000000c0c00000f6c0fc00fac0010000f2c00000fb +c0fb00fcc0fc0008c0c0000000c0c00000f3c0010000f5c0fa0001c0c0fb +00fdc0fb00fcc0010000f3c0070000c00000c0c0c0fb00fcc0fc00fdc0fb +00fdc0fb000ac0c00000c0c0c00000c0c0fb00f3c0fd00fdc0fb00f6c0f9 +00fdc0fc00fdc0150000c0c00000c0c0000000c00000c00000c0c0c00000 +f3c0040000c0c0c0fb00fcc0fc00fdc0fd0004c00000c0c0fb0019c0c000 +0000c0c00000c0c00000c00000c0c0c0000000c00000c0fc00fbc0fb00f5 +c0fc00fac0010000fcc0fa00fdc0010000f9c0010000bdc0a7c001000080 +c080c080c080c0dbc0a7c001000080c080c080c080c0dbc0a8c0fc0080c0 +80c080c080c0dcc080c080c080c080c080c0800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080c080c080c080c080c080c080c080c080c080c0e8c0 +060000c0c0c00000f4c00000f9c00000b1c0010000fbc0fd00dac00000f2 +c0fc0008c0c00000c0c0c00000dec0fb00f5c0fb00fcc0fd00fac0fd00f3 +c0010000f4c0fb00f6c0f9000ac0000000c0c00000c0c0c0fc00e2c00100 +00fbc0fd00f3c00000e9c0fd00f3c00000f2c001000080c0010000f4c0fd +00fbc0fd00fbc0010000e4c0e8c0fd0003c0000000f5c0010000fac00100 +00b1c0010000fac0010000dbc0010000f2c0010000fcc0fd0003c0000000 +dfc0060000c0c0c00000f7c0060000c0c0c00000fcc0010000f9c0010000 +f4c0fd00f5c0060000c0c0c00000f7c0010000f9c0050000c0c00000fbc0 +010000e3c0010000f9c0010000f4c0010000e8c0010000f4c0010000f1c0 +01000082c0010000f2c0010000fac0010000fac0010000e5c0e8c0f900f5 +c0010000fac0010000f9c0010000efc00000e1c00000e4c0010000f7c000 +00e5c0010000f2c0010000fcc0f900e4c0010000f8c0010000f7c0060000 +c0c0c00000fcc0010000f9c0010000fbc0010000fcc0fc00f5c0060000c0 +c0c00000f7c0010000f9c0050000c0c00000fbc0010000e4c0010000f8c0 +010000f4c0010000eec00000fbc0010000f4c0010000f0c001000084c001 +0000f1c0010000fac0010000f9c0010000e6c0e8c0f90008c00000c0c000 +00c0c0fa0001c0c0fa00fbc0010000f0c00b0000c00000c0c0c00000c0c0 +fc00fdc0050000c0000000f9c00b0000c0000000c00000c0c0c0fc00fbc0 +fd00fac0010000f8c00b0000c00000c0000000c0c0c0fb00fdc0fb0001c0 +c0fa00f4c0010000fcc0f90001c0c0fb00fdc0fd0004c00000c0c0fb00fb +c0010000f9c0010000f6c0060000c0c0c00000fcc0010000fbc0fc00fbc0 +010000fac0010000f5c0060000c0c0c00000f7c0010000f9c0040000c000 +00fac0010000e4c0010000fac0fc00fdc0fc00fdc0fa00fdc0fb00f9c004 +0000c0c0c0fc00fdc0fc00fdc0fa00fdc0fb00fac001000084c0010000fb +c0fc00fac0010000fac0010000f9c0010000e6c0e8c00d0000c000c00000 +c00000c0c00000fcc0010000fac0010000e8c00a0000c0c00000c0c0c000 +00fbc00a0000c0c0c0000000c00000fbc0030000c0c0f900fbc0010000fb +c0010000fac0010000f9c01f0000c0c0c0000000c00000c00000c0c0c000 +00c00000c0c0c00000c0c0c00000f2c0010000fcc01e0000c000c00000c0 +0000c0c0c00000c00000c0c00000c0c00000c0c0c00000f4c0010000f5c0 +060000c0c0c00000fcc0010000fcc0040000c00000f3c0010000f4c0fa00 +f7c0fa00fdc0fc00f9c0010000e4c0010000fbc0040000c00000fac00100 +00fcc0010000fcc0060000c0c0c00000fbc0090000c0c0c00000c00000fa +c0010000fcc0010000fcc0060000c0c0c00000fbc001000084c0010000f8 +c0010000fbc0010000fac0010000f9c0010000e6c0f90000c0f90000c0f9 +000ec00000c0c0c00000c00000c0c00000fcc0010000fac0010000e9c00d +0000c0c0c00000c0c0c00000c0c0fb00fdc0050000c0c00000fcc00d0000 +c0c0c00000c000c00000c0c0fb00fbc0010000fac0010000fac0010000fc +c01a0000c0c00000c00000c0c0c00000c00000c0c0c00000c0c0c00000f2 +c0010000fcc00a0000c0c0c00000c0c00000fbc00a0000c0c00000c0c0c0 +0000f1c0010000f4c0060000c0c0c00000fcc00a0000c0c0c00000c0c000 +00f3c0010000f0c0010000f2c0030000c0c0fc00f9c0030000c0c0f90000 +c0f90000c0f900fdc0010000fcc0080000c0c00000c0c0c0fb00fcc00100 +00fcc0f900fcc00d0000c0c0c00000c0c00000c0c0c0fb00fcc0010000fc +c0f900fbc0030000c0c0f90000c0f90000c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 +00c0f90000c0f900fdc0010000fbc0fb00fbc0010000fac0010000f9c003 +0000c0c0f90000c0f90000c0f900ffc0e8c00d0000c0c0c00000c00000c0 +c00000fcc0010000fac0010000eac0010000fcc0120000c0c0c00000c000 +00c0c00000c0c0c00000f9c0010000fcc00d0000c000c00000c00000c0c0 +0000fbc0010000fac0010000fbc0010000fbc0010000fbc0130000c0c0c0 +0000c00000c0c0c00000c0c0c00000f2c0010000fcc0150000c0c0c00000 +c0c0c0000000c0c0c00000c0c00000fcc0fd00f4c0010000f3c0060000c0 +c0c00000fcc00a0000c0c0c00000c0c00000f3c0010000f0c0010000f2c0 +080000c0c00000c00000fac0010000e4c0010000fcc00d0000c0c00000c0 +c00000c0c00000fcc0010000fcc0010000f8c0010000fcc00d0000c0c000 +00c0c00000c0c00000fcc0010000fcc0010000f6c001000084c0010000fc +c0050000c0c00000fbc0010000fac0010000f9c0010000e6c0e8c00d0000 +c0c0c00000c00000c0c00000fcc0010000fac0010000f9c0010000f4c001 +0000fbc0120000c0c0c00000c00000c0c00000c0c0c00000fac0010000fb +c00d0000c000c00000c00000c0c00000fbc0010000fac0010000fcc00100 +00fac0010000fbc0130000c0c0c00000c00000c0c0c00000c0c0c00000f2 +c0010000fcc0060000c0c0c00000fbc0090000c0c00000c0c00000fac001 +0000fbc0060000c0c0c00000f2c0060000c0c0c00000fcc00a0000c0c0c0 +0000c0c00000fbc0010000fac0010000f0c0010000f2c0090000c0c00000 +c0c00000fbc0010000e4c0010000fcc00d0000c0c00000c0c00000c0c000 +00fcc0010000fcc0010000f9c0010000fbc00d0000c0c00000c0c00000c0 +c00000fcc0010000fcc0010000f6c001000084c0010000fcc0050000c0c0 +0000fbc0010000fac0010000f9c0010000e6c0e8c00d0000c0c0c00000c0 +0000c0c00000fcc00c0000c00000c0c0c00000c00000fcc0010000f5c001 +0000f9c0110000c00000c0c00000c0c00000c0c0c00000fbc0010000fac0 +0d0000c000c00000c00000c0c00000fbc0010000fac0060000c0c0c00000 +f9c0010000fbc0160000c0c0c00000c00000c0c0c00000c0c0c00000c000 +00f5c0010000fcc01e0000c0c0c00000c00000c0c0c00000c00000c0c000 +00c0c00000c0c0c00000fcc00b0000c0c0c00000c0c0c00000f7c0060000 +c0c0c00000fcc00a0000c0c0c00000c0c00000fbc0010000fac0010000f1 +c0010000fbc0130000c0c0c00000c0c0c00000c0c00000c0c00000fbc001 +0000e3c0120000c0c0c00000c0c00000c0c00000c0c00000fcc00f0000c0 +0000c00000c0c0c00000c00000fac00d0000c0c00000c0c00000c0c00000 +fcc00c0000c00000c00000c0c0c00000fcc001000082c00a0000c0c0c000 +00c0c00000fbc0010000fac0010000fac0010000e5c0e8c00e0000c0c0c0 +0000c0c0000000c00000fcc0fd00fbc0fd00eec00000f7c0fd00fcc0fd00 +03c00000c0fc00fcc00000f9c0110000c0c0c00000c0c0000000c00000c0 +c0c0fc00fcc0fc0002c0c000f9c0fc00fbc0fb00fdc0fb00fbc0fd00f4c0 +fc000ac0c00000c0c0c00000c0c0fb00fdc0fb00fdc0fb00f6c0f900f6c0 +fb00fcc0fc00fdc0fd0002c00000f6c0fa00f6c0fc00fac0010000fcc0fb +000bc0c0000000c0c00000c0c0c0fc00e2c0120000c0c0c0000000c00000 +c0c0000000c00000fcc0fd00fdc0fb0002c0c000f8c0fd000ac00000c0c0 +000000c00000fcc0fd00fdc0fb00fcc001000080c00d0000c0c0c0000000 +c00000c0c0c0fc00fcc0fc00fcc0010000e4c080c0a4c001000080c080c0 +80c0dec080c0a8c0050000c0c0000080c080c080c0dec080c0a7c0fc0080 +c080c080c0ddc080c080c080c080c080c080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 38552 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 38552 a 3565 x FU(if)336 +b(you')-77 b(re)335 b(looking)g(for)h(a)g(mail)g(client)f(that)h(will)f +(let)h(you)f(be)h(in)g(total)f(control)h(o)-23 b(v)g(er)335 +b(e)-39 b(v)-23 b(erything,)-30 44131 y(then)424 b(you)f(will)h(lik)-15 +b(e)423 b FP(mutt)p FU(.)h(all)g(the)f(def)-15 b(ault)423 +b(settings)g(can)h(be)g(customized,)g(k)-15 b(e)-23 b(ybindings)422 +b(can)-30 46146 y(be)387 b(changed.)h(if)f(you)g(lik)-15 +b(e)387 b(to)g(add)g(a)h(macro,)f(you)h(can.)-30 47256 +y +SDict begin H.S end + -30 47256 a -30 47256 a +SDict begin 18.2 H.A end + -30 47256 a -30 47256 a +SDict begin [ /View [/XYZ H.V] /Dest (4735) cvn H.B /DEST pdfmark end + -30 +47256 a 1680 x FU(you)416 b(probably)g(w)-15 b(ant)416 +b(to)h(tak)-15 b(e)416 b(a)g(look)g(at)h(the)24779 48936 +y +SDict begin H.S end + 24779 48936 a 24779 48936 a +SDict begin 18.2 H.A end + 24779 48936 a 24779 48936 +a +SDict begin [ /View [/XYZ H.V] /Dest (4736) cvn H.B /DEST pdfmark end + 24779 48936 a FQ(muttrc)c FU(manpage,)k(which)f(will)g(tell)g(you)h +(ho)-39 b(w)416 b(to)-30 50950 y(con\002gure)387 b(e)-39 +b(v)-23 b(erything.)387 b(or)g(tak)-15 b(e)387 b(a)h(look)f(at)g(the)g +(included)g(e)-23 b(xample)37529 50950 y +SDict begin H.S end + 37529 50950 +a 37529 50950 a +SDict begin 18.2 H.A end + 37529 50950 a 37529 50950 a +SDict begin [ /View [/XYZ H.V] /Dest (4737) cvn H.B /DEST pdfmark end + 37529 50950 +a FQ(muttrc)384 b FU(\002le.)-30 52061 y +SDict begin H.S end + -30 52061 a +-30 52061 a +SDict begin 18.2 H.A end + -30 52061 a -30 52061 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-EMAIL-NAIL) +cvn H.B /DEST pdfmark end + -30 52061 a 5181 +x FF(nail)-30 57265 y +SDict begin H.S end + -30 57265 a -30 57265 a +SDict begin 18.2 H.A end + -30 57265 +a -30 57265 a +SDict begin [ /View [/XYZ H.V] /Dest (4741) cvn H.B /DEST pdfmark end + -30 57265 a -30 58195 a +SDict begin H.S end + -30 58195 a -30 +58195 a +SDict begin 18.2 H.A end + -30 58195 a -30 58195 a +SDict begin [ /View [/XYZ H.V] /Dest (4744) cvn H.B /DEST pdfmark end + -30 58195 a -30 58195 +a +SDict begin H.S end + -30 58195 a -30 58195 a +SDict begin 18.2 H.A end + -30 58195 a -30 58195 a +SDict begin [ /View [/XYZ H.V] /Dest (4745) cvn H.B /DEST pdfmark end + -30 +58195 a 1992 x FP(nail)p FU(\(1\))472 b(is)h(a)g(command)f(line)g(dri) +-39 b(v)-23 b(en)473 b(mail)f(client.)h(It)g(is)f(v)-23 +b(ery)473 b(primiti)-39 b(v)-23 b(e)472 b(and)g(of)-39 +b(fers)473 b(pretty)-30 62201 y(much)351 b(nothing)f(in)g(the)h(w)-15 +b(ay)350 b(of)h(user)g(interf)-15 b(aces.)351 b(Ho)-39 +b(we)g(v)-23 b(er)-62 b(,)351 b(mailx)g(is)f(handy)h(for)g(times)f +(when)-30 64216 y(you)460 b(need)g(to)g(quickly)g(mail)f(something,)h +(scripting)f(a)h(b)-31 b(ulk)460 b(mailer)-62 b(,)460 +b(testing)g(your)g(MT)-144 b(A)459 b(in-)-30 66231 y(stallation)436 +b(or)h(something)f(similar)-85 b(.)437 b(Note)g(that)g(Slackw)-15 +b(are)436 b(creates)i(symbolic)e(links)g(to)48800 66231 +y +SDict begin H.S end + 48800 66231 a 48800 66231 a +SDict begin 18.2 H.A end + 48800 66231 a 48800 66231 +a +SDict begin [ /View [/XYZ H.V] /Dest (4746) cvn H.B /DEST pdfmark end + 48800 66231 a FP(nail)-30 68245 y FU(at)1439 68245 +y +SDict begin H.S end + 1439 68245 a 1439 68245 a +SDict begin 18.2 H.A end + 1439 68245 a 1439 68245 a +SDict begin [ /View [/XYZ H.V] /Dest (4747) cvn H.B /DEST pdfmark end + +1439 68245 a FQ(/usr/bin/mail)341 b FU(and)12519 68245 +y +SDict begin H.S end + 12519 68245 a 12519 68245 a +SDict begin 18.2 H.A end + 12519 68245 a 12519 68245 +a +SDict begin [ /View [/XYZ H.V] /Dest (4748) cvn H.B /DEST pdfmark end + 12519 68245 a FQ(/usr/bin/mailx)p FU(.)g(An)-23 b(y)350 +b(of)f(these)h(three)g(commands)e(e)-23 b(x)g(ecutes)350 +b(the)f(same)p Black 49451 73792 a FR(169)p Black eop +end +%%Page: 170 192 +TeXDict begin 170 191 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.170) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 3611 a FU(program.)h(In)h(f)-15 b(act,)387 +b(you)g(will)g(most)g(lik)-15 b(ely)386 b(see)25937 3611 +y +SDict begin H.S end + 25937 3611 a 25937 3611 a +SDict begin 18.2 H.A end + 25937 3611 a 25937 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4749) cvn H.B /DEST pdfmark end + +25937 3611 a FP(nail)h FU(referred)h(to)f(as)37863 3611 +y +SDict begin H.S end + 37863 3611 a 37863 3611 a +SDict begin 18.2 H.A end + 37863 3611 a 37863 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (4750) cvn H.B /DEST pdfmark end + +37863 3611 a FP(mail)p FU(.)-30 6401 y(The)g(basic)g(command)g(line)g +(is:)-30 7966 y +SDict begin H.S end + -30 7966 a -30 7966 a +SDict begin 14.56 H.A end + -30 7966 a -30 +7966 a +SDict begin [ /View [/XYZ H.V] /Dest (4752) cvn H.B /DEST pdfmark end + -30 7966 a -30 7966 a +SDict begin H.S end + -30 7966 a -30 7966 a +SDict begin 14.56 H.A end + -30 +7966 a -30 7966 a +SDict begin [ /View [/XYZ H.V] /Dest (4753) cvn H.B /DEST pdfmark end + -30 7966 a 1596 x FJ(\045)1309 9562 +y +SDict begin H.S end + 1309 9562 a 1309 9562 a +SDict begin 14.56 H.A end + 1309 9562 a 1309 9562 a +SDict begin [ /View [/XYZ H.V] /Dest (4754) cvn H.B /DEST pdfmark end + 1309 +9562 a FH(mailx)743 b FK(<)p FH(subject)p FK(>)g(<)p +FH(to-addr)p FK(>)-30 11280 y +SDict begin H.S end + -30 11280 a -30 11280 a +SDict begin 18.2 H.A end + +-30 11280 a -30 11280 a +SDict begin [ /View [/XYZ H.V] /Dest (4755) cvn H.B /DEST pdfmark end + -30 11280 a -30 11280 a +SDict begin H.S end + -30 11280 +a -30 11280 a +SDict begin 18.2 H.A end + -30 11280 a -30 11280 a +SDict begin [ /View [/XYZ H.V] /Dest (4756) cvn H.B /DEST pdfmark end + -30 11280 a 1847 +x FP(mailx)499 b FU(reads)h(the)g(message)f(body)g(from)h(standard)f +(input.)h(So)f(you)g(can)h(cat)g(a)g(\002le)f(into)h(this)-30 +15141 y(command)373 b(to)g(mail)f(it,)i(or)f(you)g(can)g(just)g(type)f +(te)-23 b(xt)373 b(and)g(hit)32622 15141 y +SDict begin H.S end + 32622 15141 +a 32622 15141 a +SDict begin 18.2 H.A end + 32622 15141 a 32622 15141 a +SDict begin [ /View [/XYZ H.V] /Dest (4757) cvn H.B /DEST pdfmark end + 32622 15141 +a 32622 15141 a +SDict begin H.S end + 32622 15141 a 32622 15141 a +SDict begin 18.2 H.A end + 32622 15141 +a 32622 15141 a +SDict begin [ /View [/XYZ H.V] /Dest (4758) cvn H.B /DEST pdfmark end + 32622 15141 a FX(Ctrl)p FU(+)36250 15141 +y +SDict begin H.S end + 36250 15141 a 36250 15141 a +SDict begin 18.2 H.A end + 36250 15141 a 36250 15141 +a +SDict begin [ /View [/XYZ H.V] /Dest (4759) cvn H.B /DEST pdfmark end + 36250 15141 a FX(D)g FU(when)g(\002nished)f(with)h(the)-30 +17156 y(message.)-30 18266 y +SDict begin H.S end + -30 18266 a -30 18266 a +SDict begin 18.2 H.A end + +-30 18266 a -30 18266 a +SDict begin [ /View [/XYZ H.V] /Dest (4760) cvn H.B /DEST pdfmark end + -30 18266 a 1679 x FU(Here)388 +b(is)f(an)g(e)-23 b(xample)387 b(of)g(mailing)g(a)g(program)g(source)g +(\002le)g(to)g(another)g(person.)-30 21831 y +SDict begin H.S end + -30 21831 +a -30 21831 a +SDict begin 14.56 H.A end + -30 21831 a -30 21831 a +SDict begin [ /View [/XYZ H.V] /Dest (4761) cvn H.B /DEST pdfmark end + -30 21831 a -30 +21831 a +SDict begin H.S end + -30 21831 a -30 21831 a +SDict begin 14.56 H.A end + -30 21831 a -30 21831 +a +SDict begin [ /View [/XYZ H.V] /Dest (4762) cvn H.B /DEST pdfmark end + -30 21831 a 1276 x FJ(\045)1309 23107 y +SDict begin H.S end + 1309 23107 +a 1309 23107 a +SDict begin 14.56 H.A end + 1309 23107 a 1309 23107 a +SDict begin [ /View [/XYZ H.V] /Dest (4763) cvn H.B /DEST pdfmark end + 1309 23107 a +FH(cat)744 b(randomfunc.c)e(|)i(mail)f(-s)h("Here's)f(that)g(function") +g(asdf@example.net)-30 24967 y +SDict begin H.S end + -30 24967 a -30 24967 +a +SDict begin 18.2 H.A end + -30 24967 a -30 24967 a +SDict begin [ /View [/XYZ H.V] /Dest (4764) cvn H.B /DEST pdfmark end + -30 24967 a 1704 x FU(The)338 +b(man)g(page)g(e)-23 b(xplains)337 b(more)h(of)g(what)22972 +26671 y +SDict begin H.S end + 22972 26671 a 22972 26671 a +SDict begin 18.2 H.A end + 22972 26671 a 22972 +26671 a +SDict begin [ /View [/XYZ H.V] /Dest (4765) cvn H.B /DEST pdfmark end + 22972 26671 a FP(nail)f FU(can)h(do,)h(so)e(you)h(will)g +(probably)f(w)-15 b(ant)337 b(to)h(ha)-31 b(v)-23 b(e)-30 +28686 y(a)388 b(look)e(at)i(that)f(before)g(using)g(it.)-30 +31346 y +SDict begin H.S end + -30 31346 a -30 31346 a +SDict begin 18.2 H.A end + -30 31346 a -30 31346 +a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-WEB) cvn +H.B /DEST pdfmark end + -30 31346 a 5789 x FL(13.8)620 b(Br)-45 b(o)-33 b(wser)g(s)-30 +37163 y +SDict begin H.S end + -30 37163 a -30 37163 a +SDict begin 18.2 H.A end + -30 37163 a -30 37163 +a +SDict begin [ /View [/XYZ H.V] /Dest (4768) cvn H.B /DEST pdfmark end + -30 37163 a -30 38279 a +SDict begin H.S end + -30 38279 a -30 38279 a +SDict begin 18.2 H.A end + -30 +38279 a -30 38279 a +SDict begin [ /View [/XYZ H.V] /Dest (4770) cvn H.B /DEST pdfmark end + -30 38279 a 1987 x FU(The)438 b(\002rst)g(thing)f +(that)h(people)f(think)h(about)f(when)h(the)-23 b(y)438 +b(hear)g(the)g(w)-15 b(ord)437 b(Internet)h(is)46783 +40266 y +SDict begin H.S end + 46783 40266 a 46783 40266 a +SDict begin 18.2 H.A end + 46783 40266 a 46783 +40266 a +SDict begin [ /View [/XYZ H.V] /Dest (4771) cvn H.B /DEST pdfmark end + 46783 40266 a FU(\223sur\002ng)-30 42280 y(the)519 +b(net\224.)g(Or)g(looking)f(at)h(websites)g(using)f(a)h(web)g(bro)-39 +b(wser)-85 b(.)519 b(This)f(is)h(probably)g(by)f(f)-15 +b(ar)519 b(the)-30 44295 y(most)387 b(popular)g(use)g(of)g(the)g +(Internet)g(for)h(the)f(a)-31 b(v)-23 b(erage)387 b(user)-85 +b(.)-30 45405 y +SDict begin H.S end + -30 45405 a -30 45405 a +SDict begin 18.2 H.A end + -30 45405 a -30 +45405 a +SDict begin [ /View [/XYZ H.V] /Dest (4772) cvn H.B /DEST pdfmark end + -30 45405 a 1680 x FU(Slackw)-15 b(are)389 b(pro)-23 +b(vides)388 b(popular)h(graphical)g(web)g(bro)-39 b(wsers)389 +b(in)g(the)36576 47085 y +SDict begin H.S end + 36576 47085 a 36576 47085 a +SDict begin 18.2 H.A end + +36576 47085 a 36576 47085 a +SDict begin [ /View [/XYZ H.V] /Dest (4773) cvn H.B /DEST pdfmark end + 36576 47085 a FU(\223XAP\224)g(series,)h +(as)f(well)g(as)-30 49099 y(te)-23 b(xt)472 b(mode)g(bro)-39 +b(wsers)473 b(in)f(the)16733 49099 y +SDict begin H.S end + 16733 49099 a 16733 +49099 a +SDict begin 18.2 H.A end + 16733 49099 a 16733 49099 a +SDict begin [ /View [/XYZ H.V] /Dest (4774) cvn H.B /DEST pdfmark end + 16733 49099 a FU(\223N\224)h +(series.)g(W)-124 b(e')-15 b(ll)472 b(tak)-15 b(e)472 +b(a)h(quick)f(look)g(at)g(some)h(of)f(the)h(most)-30 +51114 y(common)387 b(options)f(belo)-39 b(w)-101 b(.)-30 +51449 y +SDict begin H.S end + -30 51449 a -30 51449 a +SDict begin 18.2 H.A end + -30 51449 a -30 51449 +a +SDict begin [ /View [/XYZ H.V] /Dest (4775) cvn H.B /DEST pdfmark end + -30 51449 a 5027 x FF(l)-28 b(ynx)-30 56861 y +SDict begin H.S end + -30 56861 +a -30 56861 a +SDict begin 18.2 H.A end + -30 56861 a -30 56861 a +SDict begin [ /View [/XYZ H.V] /Dest (4778) cvn H.B /DEST pdfmark end + -30 56861 a -30 +56861 a +SDict begin H.S end + -30 56861 a -30 56861 a +SDict begin 18.2 H.A end + -30 56861 a -30 56861 +a +SDict begin [ /View [/XYZ H.V] /Dest (4781) cvn H.B /DEST pdfmark end + -30 56861 a -30 57791 a +SDict begin H.S end + -30 57791 a -30 57791 a +SDict begin 18.2 H.A end + -30 +57791 a -30 57791 a +SDict begin [ /View [/XYZ H.V] /Dest (4784) cvn H.B /DEST pdfmark end + -30 57791 a -30 57791 a +SDict begin H.S end + -30 57791 +a -30 57791 a +SDict begin 18.2 H.A end + -30 57791 a -30 57791 a +SDict begin [ /View [/XYZ H.V] /Dest (4785) cvn H.B /DEST pdfmark end + -30 57791 a 1629 +x FP(lynx)p FU(\(1\))378 b(is)g(a)g(te)-23 b(xt-based)378 +b(web)g(bro)-39 b(wser)-85 b(.)378 b(It)h(is)f(a)g(v)-23 +b(ery)378 b(quick)g(w)-15 b(ay)377 b(of)i(looking)e(up)h(something)-30 +61435 y(on)505 b(the)g(Internet.)h(Sometimes)e(graphics)h(just)g(get)g +(in)g(the)g(w)-15 b(ay)505 b(if)g(you)g(kno)-39 b(w)505 +b(e)-23 b(xactly)505 b(what)-30 63450 y(you')-77 b(re)387 +b(after)-85 b(.)-30 64560 y +SDict begin H.S end + -30 64560 a -30 64560 a +SDict begin 18.2 H.A end + -30 +64560 a -30 64560 a +SDict begin [ /View [/XYZ H.V] /Dest (4786) cvn H.B /DEST pdfmark end + -30 64560 a 1679 x FU(T)-124 b(o)387 +b(start)5011 66239 y +SDict begin H.S end + 5011 66239 a 5011 66239 a +SDict begin 18.2 H.A end + 5011 66239 +a 5011 66239 a +SDict begin [ /View [/XYZ H.V] /Dest (4787) cvn H.B /DEST pdfmark end + 5011 66239 a FP(lynx)p FU(,)h(just)f(type)14445 +66239 y +SDict begin H.S end + 14445 66239 a 14445 66239 a +SDict begin 18.2 H.A end + 14445 66239 a 14445 +66239 a +SDict begin [ /View [/XYZ H.V] /Dest (4788) cvn H.B /DEST pdfmark end + 14445 66239 a FP(lynx)g FU(at)g(the)g(prompt:)p +Black -30 73792 a FR(170)p Black eop end +%%Page: 171 193 +TeXDict begin 171 192 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.171) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f +(Commands)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4789) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (4790) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FJ(\045)1309 +3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + 1309 3611 a 1309 3611 +a +SDict begin [ /View [/XYZ H.V] /Dest (4791) cvn H.B /DEST pdfmark end + 1309 3611 a FH(lynx)-30 3779 y +SDict begin H.S end + -30 3779 a -30 3779 +a +SDict begin 18.2 H.A end + -30 3779 a -30 3779 a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LYNX) +cvn H.B /DEST pdfmark end + -30 3779 a 4946 x FX(Figur)-28 +b(e)387 b(13-5.)h(L)-85 b(ynx)386 b(default)g(start)i(page)-30 +10590 y +SDict begin H.S end + -30 10590 a -30 10590 a +SDict begin 18.2 H.A end + -30 10590 a -30 10590 +a +SDict begin [ /View [/XYZ H.V] /Dest (4794) cvn H.B /DEST pdfmark end + -30 10590 a -30 43666 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 43666 a @beginspecial 12 +@llx 212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial +%%BeginDocument: basic-network-commands/lynx.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +80008000800080008000800080008000800080008000800080008800fc69 +da00fc69f300fd69db000069f900016969e5008000800080008700016969 +d800016969f300046969006969dd00016969f900016969e5008000800080 +008700016969d800016969f300046969000069dd00016969dc0080008000 +80008700016969fb00166969000000696900696900696969000069690000 +006969f4000a6969000000696900696969fc00016969fb00fb6912000069 +69006969690000696969006969000000fc69fd00fa69fc00fd69fc00fb69 +070000696900696969f6008000800080008700016969fb00156969000000 +6969000069690000696900006969006969f300016969fc00076969000069 +690000fc69fd000f69690000006969000069696900696900f969fb000169 +69fc00016969f900136969000000696900000069690000696900006969f7 +008000800080008700016969fb0014696900000069690000696900006969 +000000696969f200016969fc000a6969000069690000006969fc00186969 +0000006969000069690000696900696900690069690000fb69fc00016969 +f900136969000000696900000069690000696900006969f7008000800080 +008700016969fb0014696900000069690000696900006969000000696969 +f200016969fc000a6969000069690000006969fc000a6969000000696900 +006969fb000d6969006900696900696900006969fc00016969f900136969 +000000696900000069690000696900006969f70080008000800087001b69 +690000006900696900000069690000696900006969000000696969f20001 +6969fc000a6969000069690000006969fc000a6969000000696900006969 +fb000d6969006900696900696900006969fc00016969f900136969000000 +696900000069690000696900006969f70080008000800087001c69690000 +69690069690000006969000069690000696900006969006969f300016969 +fc000a6969000069690000006969fc000a6969000000696900006969fb00 +0d6969006900696900696900006969fc00046969006969fc001369690000 +00696900000069690000696900006969f7008000800080008800f9690100 +00fa690f00006969000069690069690000006969f500fc69fd0007696900 +0069690000fc69fc00fb69010000fc69fc000e6969000000696900006969 +69006969fc00fd69fc00fc69fd00fb69fd0005696900006969f700800080 +0080008000fb0001696987008000800080008000fc000169698600800080 +0080008000fb6985008000800080008000800080008000e000e01c800080 +00c00080008000e000e01c80008000c00080008000e000fce2e41c800080 +00c00080008000e000021ce2e2e31c80008000c00080008000e000021ce2 +e2e31c80008000c00080008000e000021ce2e2fb1c17e2e21c1c1ce2e21c +e2e21ce2e2e21c1ce2e21c1c1ce2e21c80008000c00080008000e000021c +e2e2fb1c17e2e21c1c1ce2e21c1ce2e21c1ce2e21c1ce2e21ce2e21c1c80 +008000c00080008000e000021ce2e2fb1c17e2e21c1c1ce2e21c1ce2e21c +1ce2e21c1c1ce2e2e21c1c1c80008000c00080008000e000021ce2e2fb1c +17e2e21c1c1ce2e21c1ce2e21c1ce2e21c1c1ce2e2e21c1c1c80008000c0 +0080008000e0001f1ce2e21c1c1ce21ce2e21c1c1ce2e21c1ce2e21c1ce2 +e21c1c1ce2e2e21c1c1c80008000c00080008000e0001f1ce2e21c1ce2e2 +1ce2e21c1c1ce2e21c1ce2e21c1ce2e21c1ce2e21ce2e21c1c80008000c0 +0080008000e000f9e2011c1cfae2101c1ce2e21c1ce2e21ce2e21c1c1ce2 +e21c80008000c00080008000e000f31c01e2e2ef1c80008000c000800080 +00e000f41c01e2e2ee1c80008000c00080008000e000f81cfbe2ed1c8000 +8000c00080008000e000e01c80008000c000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000e800fc4cd90001c0c0da0000 +c0e90000c0f400fdc0c000fdc0e30000c0fc00fdc0eb0006c0c0000000c0 +c0ed00fdc0fa00fdc0f60006c0c0000000c0c0fc0001c0c0fa00fdc0ee00 +06c0c0000000c0c0f700fdc0cb00fce2db00fbe2f500fbe2f500fbe28000 +fe00e700014c4cd80001c0c0db0001c0c0ea0001c0c0f30001c0c0c10004 +c0c000c0c0e50001c0c0fb0001c0c0eb0006c0c0000000c0c0ec0001c0c0 +f90001c0c0f60006c0c0000000c0c0fc0001c0c0f90001c0c0ee0006c0c0 +000000c0c0f60001c0c0ca0001e2e2db0006e2e2000000e2e2f70006e2e2 +000000e2e2f70006e2e2000000e2e28000ff00e700014c4cb10001c0c0ea +0001c0c0f30001c0c0c10004c0c00000c0e50001c0c0fb0001c0c0eb0006 +c0c0000000c0c0ec0001c0c0f90001c0c0f60006c0c0000000c0c0f30001 +c0c0ee0006c0c0000000c0c0f60001c0c0ca0001e2e2d60001e2e2f70006 +e2e2000000e2e2f20001e2e28000ff00e700014c4cfb00164c4c0000004c +4c004c4c004c4c4c00004c4c0000004c4cf500fdc0fc00fbc0f500fcc0f5 +00fac0fd00fbc0090000c0c0000000c0c000fac0f500fcc0fd0008c0c000 +c0c0c0000000fbc00a0000c0c0000000c0c00000fbc0fd00fbc0070000c0 +c000c0c0c0f40001c0c0fb00fbc0070000c0c000c0c0c0f600fac0fd0007 +c0c000c0c0000000fbc0f60008c0c0000000c0c00000fbc0070000c0c000 +c0c0c0fb0001c0c0fb00fcc0f6000cc0c0000000c0c0000000c0c0c0fb00 +fcc0fd00fbc0f60008c0c0000000c0c00000fbc0fd00fcc0cc0001e2e2fb +0016e2e2000000e2e200e2e200e2e2e20000e2e2000000e2e2f30001e2e2 +f60006e2e2000000e2e2f20001e2e2f70018c0c000c0c0c00000c0c00000 +c0c00000c0c000c0c0c0000000fbc0f500fbc0070000c0c000c0c0c0be00 +e700014c4cfb00154c4c0000004c4c00004c4c00004c4c00004c4c004c4c +f3000bc0c0000000c0c0000000c0c0f30001c0c0f40001c0c0fc000dc0c0 +000000c0c00000c0c000c0c0fc0001c0c0f30035c0c000c0c0000000c0c0 +c000c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0 +c0000000c0c00000c0c0c000c0c0f600fcc0fd000ec0c0000000c0c00000 +c0c0c000c0c0f50001c0c0fb00fdc00a00c0c000c0c0000000c0c0f70016 +c0c000c000c0c000c0c0000000c0c00000c0c0c000c0c0fc0001c0c0fc00 +04c0c000c0c0f60006c0c000c000c0c0fc0001c0c0fc000dc0c000c0c000 +00c0c0000000c0c0f70015c0c000c000c0c000c0c0000000c0c00000c0c0 +00c0c0cd0001e2e2fb0015e2e2000000e2e20000e2e20000e2e20000e2e2 +00e2e2f30001e2e2f400fbe2f400fce2f500fdc01a00c0c000c0c00000c0 +c0000000c0c00000c0c000c0c0000000c0c0f7000ec0c0000000c0c00000 +c0c00000c0c0bf00e700014c4cfb00144c4c0000004c4c00004c4c00004c +4c0000004c4c4cf20001c0c0fc0001c0c0f200fbc0f40001c0c0fc00f9c0 +fd00fdc0fb0001c0c0f30021c0c00000c0c00000c0c00000c0c000c0c000 +0000c0c000c0c000c000c0c00000c0c0fb00f9c0070000c0c00000c0c0f5 +0001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f50001c0c0fb0006 +c0c00000c0c000f9c0f70016c0c000c000c0c000c0c0000000c0c00000c0 +c00000c0c0fc000ac0c0000000c0c00000c0c0f60006c0c000c000c0c0fc +000cc0c0000000c0c00000c0c00000f9c0f70007c0c000c000c0c000f9c0 +070000c0c00000c0c0ce0001e2e2fb0014e2e2000000e2e20000e2e20000 +e2e2000000e2e2e2f30001e2e2f40006e2e2000000e2e2f20001e2e2f600 +19c0c00000c0c000c0c00000c0c0000000c0c00000c0c00000c0c0f3000e +c0c0000000c0c00000c0c00000c0c0bf00e700014c4cfb00144c4c000000 +4c4c00004c4c00004c4c0000004c4c4cf20001c0c0fb00fdc0f50005c0c0 +0000c0c0f40001c0c0fc0001c0c0f800fdc0fb0001c0c0f30009c0c00000 +c0c00000c0c0fb0019c0c0000000c0c000c0c000c000c0c0000000c0c0c0 +000000c0c0f90001c0c0f10001c0c0fc000ac0c0000000c0c00000c0c0f1 +0001c0c0fb0008c0c00000c0c000c0c0f20012c0c000c000c0c000c0c000 +0000c0c00000c0c0f8000ac0c0000000c0c00000c0c0f60006c0c000c000 +c0c0fc000ec0c0000000c0c00000c0c00000c0c0f20009c0c000c000c0c0 +00c0c0f90005c0c00000c0c0ce0001e2e2fb0014e2e2000000e2e20000e2 +e20000e2e2000000e2e2e2f40001e2e2f30006e2e2000000e2e2f20001e2 +e2f60001c0c0fb0014c0c00000c0c0000000c0c00000c0c0000000c0c0c0 +f5000ec0c0000000c0c00000c0c00000c0c0bf00e7001b4c4c0000004c00 +4c4c0000004c4c00004c4c00004c4c0000004c4c4cf20001c0c0f90001c0 +c0f60005c0c00000c0c0f40001c0c0fc0001c0c0f800fdc0fb0001c0c0f3 +0009c0c00000c0c00000c0c0fb000ec0c0000000c0c000c0c000c000c0c0 +fb0005c0c00000c0c0f90001c0c0f10001c0c0fc000ac0c0000000c0c000 +00c0c0f10001c0c0fb0008c0c00000c0c000c0c0f200f9c00b00c0c00000 +00c0c00000c0c0f8000ac0c0000000c0c00000c0c0f600f9c0fc000ec0c0 +000000c0c00000c0c00000c0c0f200f9c00200c0c0f90005c0c00000c0c0 +ce001be2e2000000e200e2e2000000e2e20000e2e20000e2e2000000e2e2 +e2f50001e2e2f20006e2e2000000e2e2f20001e2e2f60001c0c0fb000ec0 +c00000c0c0000000c0c00000c0c0fb0001c0c0f6000ec0c0000000c0c000 +00c0c00000c0c0bf00e7001c4c4c00004c4c004c4c0000004c4c00004c4c +00004c4c00004c4c004c4cf3000bc0c0000000c0c0000000c0c0f70005c0 +c00000c0c0f40013c0c000c0c000c0c0000000c0c00000c0c000c0c0fc00 +04c0c000c0c0f60009c0c00000c0c00000c0c0fb0007c0c0000000c0c000 +f9c01300c0c0000000c0c000c0c0000000c0c00000c0c0f10001c0c0fc00 +0ac0c0000000c0c00000c0c0f10014c0c000c0c00000c0c00000c0c000c0 +c0000000c0c0f700fdc00f00c0c0c000c0c0000000c0c00000c0c0f8000a +c0c0000000c0c00000c0c0f600fdc00300c0c0c0fc0013c0c0000000c0c0 +0000c0c00000c0c0000000c0c0f700fdc01300c0c0c000c0c0000000c0c0 +0000c0c00000c0c0fc0001c0c0d4001ce2e20000e2e200e2e2000000e2e2 +0000e2e20000e2e20000e2e200e2e2f60006e2e2000000e2e2fc000be2e2 +000000e2e2000000e2e2fc000be2e2000000e2e2000000e2e2f60001c0c0 +fb0016c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0f7000ec0 +c0000000c0c00000c0c00000c0c0bf00e800f94c010000fa4c0f00004c4c +00004c4c004c4c0000004c4cf500fcc0fd00fbc0f500fdc00200c0c0f400 +fdc0fd00fbc0080000c0c0000000c0c0fc00fdc0f500fbc0010000fcc0fb +00fbc0fd0007c0c000c0c0000000fbc0fd00fbc0010000fcc0f300fcc0fc +00fbc0010000fcc0f100fdc00a0000c0c0c00000c0c00000fbc0f50007c0 +c000c0c0000000fbc0010000fcc0fa00fcc0fd00fdc00200c0c0f60004c0 +c000c0c0fc00fcc0fd00fdc00400c0c00000fbc0f50007c0c000c0c00000 +00fbc0fd00fbc0fb0001c0c0d500f9e2010000fae20f0000e2e20000e2e2 +00e2e2000000e2e2f700f9e2fc0001e2e2fc00fbe2fb0001e2e2fc00fbe2 +f600fcc0fb00fdc00c00c0c00000c0c00000c0c00000fbc0f500fbc0fd00 +05c0c00000c0c0bf00db00014c4c800080008000ea0001e2e28000bf00dc +00014c4c800080008000ea0001e2e28000be00e000fb4c800080008000ed +00fbe28000bd008000800080008000800080008000800080008000800080 +00800080008000e80006c0c0000000c0c0d70010c0c0000000c0c000c0c0 +000000c0c00000fbc0ee0006c0c0000000c0c0fc0001c0c0f200fdc0dd00 +fbc0010000f9c0f600fbc0fd00fbc0f60008c0c0000000c0c00000fac0f7 +00fdc0f00000c0e10000a6f300fbc0f30001c0c0dc00fbc0f30001c0c0fa +0001c0c0d500fbc0fc00fbc0fd00fbc0f20004c0c0000000fbc0fd00fbc0 +fc00fdc08000f500e80006c0c0000000c0c0d70016c0c0000000c0c000c0 +c0c000c0c0c000c0c0000000c0c0ef0006c0c0000000c0c0fc0001c0c0f1 +0001c0c0de0009c0c0000000c0c000c0c0f2000ec0c0000000c0c000c0c0 +000000c0c0f700fdc0050000c0c00000fac0f60001c0c0f10001c0c0e200 +01a6a6f40006c0c0000000c0c0f500fdc0dd0006c0c0000000c0c0f500fd +c0fb00fdc0d40015c0c000c0c00000c0c0000000c0c000c0c0000000c0c0 +f40017c0c0000000c0c0000000c0c000c0c0000000c0c00000c0c08000f3 +00e80006c0c0000000c0c0d70007c0c0000000c0c000f9c00700c0c00000 +00c0c0ef0006c0c0000000c0c0eb0001c0c0de0009c0c0000000c0c000c0 +c0f40010c000c0c0000000c0c000c0c0000000c0c0f90001c000fcc00a00 +c0c00000c000c0c000c0f60001c0c0f10001c0c0e20001a6a6ef0001c0c0 +f600fcc0d80001c0c0f600fcc0fc00fcc0d40015c0c00000c0c000c0c000 +0000c0c000c0c0000000c0c0f50001c0c0f7000cc0c000c0c0000000c0c0 +00c0c08000f200e8001ec0c0000000c0c000c0c000c0c0c0000000c0c000 +00c0c000c0c0000000c0c0ef0007c0c0000000c0c000f9c0030000c0c0eb +0015c0c0000000c0c0000000c0c0c0000000c0c000c0c0c0fc00fcc0fd00 +fbc00a0000c0c0000000c0c00000fbc0f60009c0c0000000c0c000c0c0f5 +0011c0c000c0c0000000c0c000c0c0000000c0c0fa0002c0c000f9c0fc00 +01c0c0f400fcc0fd0007c0c00000c0c00000fac0f60008a6a600a6a6a600 +0000fba6010000faa6f10001c0c0f40001c0c0f400fbc0070000c0c000c0 +c0c0f10001c0c0f40001c0c0fa0001c0c0ec00fbc0070000c0c000c0c0c0 +f50011c0c00000c0c000c0c0000000c0c00000c0c0f10001c0c0f7000cc0 +c000c0c0000000c0c000c0c0f100fbc0070000c0c000c0c0c08e00e80011 +c0c0000000c0c00000c0c00000c0c0000000fcc0fd0004c0c000c0c0ee00 +14c0c0000000c0c000c0c000c000c0c0000000c0c0c0ed0006c0c000c000 +c0c0fc0001c0c0fc0025c0c00000c0c00000c0c000c0c00000c0c0000000 +c0c000c0c0000000c0c000c0c0000000c0c0f600fac00000fac0fa0004c0 +c0000000fac0010000fbc0fa0006c0c00000c0c000fcc0fc0001c0c0f400 +0cc0c000c0c00000c0c00000c0c0fc0001c0c0f30012a6a60000a6a600a6 +a6000000a6a6000000a6a6f200fcc0f30001c0c0f5000ec0c0000000c0c0 +0000c0c0c000c0c0f500fcc0f30001c0c0fa0001c0c0ed000ec0c0000000 +c0c00000c0c00000c0c0f60013c0c00000c0c000c0c0000000c0c0000000 +c0c0c0f30001c0c0fa00fcc0fd00fbc0010000fac0f6000ec0c0000000c0 +c00000c0c0c000c0c08f00e8000fc0c0000000c0c00000c0c00000c0c000 +f8c0040000c0c0c0ed000ec0c0000000c0c000c0c0000000c0c0fb0001c0 +c0ee0006c0c000c000c0c0fc0001c0c0fc0021c0c00000c0c000c0c00000 +c0c00000c0c0000000c0c000c0c000c000c0c00000c0c0ee0001c0c0fa00 +01c0c0fc0001c0c0f80009c0c000c0c0000000c0c0fc000bc0c0000000c0 +c00000c0c0c0fc0001c0c0f4000cc0c00000c0c000c0c00000c0c0fc0001 +c0c0f30012a6a60000a6a600a6a6000000a6a6000000a6a6ef0001c0c0f4 +0001c0c0f5000ec0c0000000c0c00000c0c00000c0c0f20001c0c0f40001 +c0c0fa0001c0c0ed000ec0c0000000c0c00000c0c00000c0c0f6000dc0c0 +0000c0c000c0c0000000c0c0fb0001c0c0f40001c0c0f70011c0c000c0c0 +000000c0c000c0c0000000c0c0f7000ec0c0000000c0c00000c0c00000c0 +c08f00e80011c0c0000000c0c00000c0c00000c0c0000000fcc0fc00fdc0 +ed000ec0c0000000c0c000c0c0000000c0c0fa0001c0c0ef0006c0c000c0 +00c0c0fc0001c0c0fc0023c0c00000c0c000c0c00000c0c00000c0c00000 +00c0c000c0c000c000c0c0000000c0c0c0f00001c0c0fa0006c0c0000000 +c0c0f7000ec0c000c0c0000000c0c0000000c0c0fc0006c0c0000000c0c0 +fc0001c0c0f4000cc0c00000c0c000c0c00000c0c0fc0001c0c0f30012a6 +a60000a6a600a6a6000000a6a6000000a6a6ef0001c0c0f40001c0c0f500 +0ac0c0000000c0c00000c0c0ee0001c0c0f40001c0c0fa0001c0c0ed000e +c0c0000000c0c00000c0c00000c0c0f6000dc0c00000c0c000c0c0000000 +c0c0fa0001c0c0f50001c0c0f70011c0c000c0c0000000c0c000c0c00000 +00c0c0f7000ac0c0000000c0c00000c0c08b00e8001cc0c0000000c0c000 +00c0c00000c0c00000c0c00000c0c0000000c0c0c0fa0001c0c0f40015c0 +c000c0c00000c0c0000000c0c000c0c0000000c0c0fc0001c0c0f500f9c0 +fc0001c0c0fc001dc0c00000c0c000c0c00000c0c00000c0c0000000c0c0 +00c0c000c000c0c0fb0001c0c0f10001c0c0fa0005c0c00000c0c0f6000d +c0c000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0c0f4 +000cc0c00000c0c000c0c00000c0c0fc0001c0c0f30012a6a60000a6a600 +a6a6000000a6a6000000a6a6ef0001c0c0f40001c0c0f5000ac0c0000000 +c0c00000c0c0ee0001c0c0f40001c0c0fa0001c0c0fa0001c0c0f5000ec0 +c0000000c0c00000c0c00000c0c0f60015c0c00000c0c000c0c0000000c0 +c000c0c0000000c0c0f50001c0c0f70011c0c000c0c0000000c0c000c0c0 +000000c0c0f7000ac0c0000000c0c00000c0c08b00e8000ec0c0000000c0 +c00000c0c00000c0c0f60004c0c000c0c0fb0001c0c0f300fdc0fd000ec0 +c0000000c0c000c0c0000000c0c0fc0001c0c0f500fdc00300c0c0c0fc00 +01c0c0fc0016c0c00000c0c000c0c00000c0c00000c0c0000000c0c000f9 +c00700c0c0000000c0c0f3000dc0c00000c0c0000000c0c000c0c0f6000d +c0c00000c0c0000000c0c000c0c0fa0006c0c0000000c0c0fc0001c0c0f4 +000cc0c00000c0c000c0c00000c0c0fc0004c0c000c0c0f60015a6a60000 +a6a600a6a6000000a6a6000000a6a600a6a6f70006c0c0000000c0c0fc00 +01c0c0fa0001c0c0f5000ac0c0000000c0c00000c0c0f30006c0c0000000 +c0c0fc0001c0c0fa0001c0c0fa0001c0c0fa0001c0c0f5000ec0c0000000 +c0c00000c0c00000c0c0f60015c0c000c0c00000c0c0000000c0c000c0c0 +000000c0c0f4001bc0c0000000c0c0000000c0c000c0c0000000c0c000c0 +c0000000c0c0f7000ac0c0000000c0c00000c0c08b00e700fbc0fd0005c0 +c00000c0c0f70006c0c0000000c0c0fc0001c0c0f20000c0fc0008c0c000 +0000c0c00000fbc0fb0001c0c0f40004c0c000c0c0fc00fcc0fd000fc0c0 +0000c0c00000c0c0c000c0c00000fbc0fd0007c0c000c0c0000000fbc0f5 +00fcc0fc00fbc0020000c0f800fcc0fc00fbc0020000c0f90009c0c00000 +00c0c0000000fcc0f500fbc0fd00fdc00200c0c0fc00fdc0f50007a6a600 +00a6a60000fba6fb00fda6f500fbc0fb0001c0c0fc00fac0f600fbc00100 +00fcc0f300fbc0fb0001c0c0fc00fac0010000fac0fc0001c0c0f400fbc0 +fd0005c0c00000c0c0f700fbc0fc00fbc0fd00fbc0f20004c0c0000000fb +c0fd00fbc0fd00fbc0f500fbc0010000fcc08c00c60001c0c0da0001c0c0 +80008000d20001c0c0800094008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000e800fdc0f80001c0c0f500fdc0e90001c0c0e100fdc0f500fbc0fd +00fbc0f500fbc0f600f9c00f00c0c0000000c0c000c0c0000000c0c0e600 +fac00300c0c0c0b0000095f100fd95e400fd95d2000095f200fd95d20001 +9595e20001c0c0e300fdc08d00e70001c0c0f80001c0c0f40001c0c0e800 +01c0c0e10001c0c0f6000ec0c0000000c0c000c0c0000000c0c0f70006c0 +c0000000c0c0f60015c0c00000c0c000c0c0c000c0c0c000c0c0000000c0 +c0e600fac0030000c0c0b100019595f000019595e300019595d300019595 +f100019595d200019595e20001c0c0e20001c0c08d00e70001c0c0ea0001 +c0c0e70001c0c0e20001c0c0f6000ec0c0000000c0c000c0c0000000c0c0 +f90000c0fa0001c0c0f60006c0c0000000c000f9c0060000c0c000c0c0e5 +0009c000c0c000c00000c0c0b100019595f000019595e300019595d30001 +9595f100019595920001c0c08d00e70004c0c000c0c0fc00fdc0fc00fdc0 +0c00c0c00000c0c000c0c0000000fbc0070000c0c000c0c0c0fa0001c0c0 +f500fcc0fd0005c0c000c0c0c0fc00fcc0f6000ac0c0000000c0c00000c0 +c0f60001c0c0fb0001c0c0f50006c0c000c0000000f9c0010000fbc0e300 +01c0c0fc0007c0c000c0c0000000fbc0ed00fb951a000095950000959500 +009595009595950000959500959595000000fb9509000095950095959500 +00fa95f400fc95fd00fb950a0000959500000095950000fb95fb00019595 +fc00fb951200009595009595950000959595009595000000fb9509000095 +95009595950000fa95fd00fc95fa00019595f50008959500000095950000 +fb950a0000959500959595000000fb95fc00fd95fc00fb95070000959500 +959595f400fdc0fc00fbc0f500fcc0fa0001c0c0fc00fbc0fd00fbc09e00 +e700fdc00200c0c0fc0023c0c0000000c0c00000c0c0000000c0c0c000c0 +c000c0c0000000c0c00000c0c0c000c0c0fb0001c0c0f20011c0c0000000 +c0c00000c0c00000c0c000c0c0f6000cc0c0000000c0c0000000c0c0c0f9 +0001c0c0fb0001c0c0f400fcc0fd000cc0c000c000c0c0000000c0c0c0e2 +0001c0c0fc00fdc00a00c0c000c0c0000000c0c0ef003395950000009595 +009595000095950000009595950095950000959595009595009595000000 +959500009595000095950000009595f3001d959500959500009595000000 +959500959500000095950095950000009595fc0014959500000095950000 +009595000095950000959500f99514009595000000959500009595000095 +950000009595f800019595fb00019595f5001e9595000000959500959500 +0000959500009595950095950095950000009595fc001395950000009595 +00000095950000959500009595f4000bc0c0000000c0c0000000c0c0f300 +01c0c0fb0013c0c0000000c0c0000000c0c000c0c0000000c0c09f00e700 +05c0c00000c0c0fc0014c0c0000000c0c00000c0c0000000c0c00000c0c0 +00f9c0070000c0c00000c0c0fb0001c0c0f500fbc0fd000cc0c00000c0c0 +00c0c00000c0c0f60006c0c0000000c0c0fb0001c0c0fb0001c0c0fb0001 +c0c0f30013c0c000c0000000c0c0000000c0c0000000c0c0c0e20001c0c0 +fc0006c0c00000c0c000f9c0ef00019595fa001795950000959500000095 +9500009595000095950000959500f9950c00009595000095950000009595 +f400079595000095950000f99508009595000000959500f995fc001c9595 +000000959500000095950000959500009595009595009500959500f9950c +00009595000095950000009595fb00fb95fb00019595f500079595000000 +959500f9950b000095950000959500009595f80013959500000095950000 +0095950000959500009595f40001c0c0fc0001c0c0f200fbc0fb0001c0c0 +fc0001c0c0fb0006c0c0000000c0c09f00e70005c0c00000c0c0fc0016c0 +c0000000c0c00000c0c0000000c0c00000c0c000c0c0f90001c0c0f70001 +c0c0f60015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f60006 +c0c0000000c0c0fa0006c0c0000000c0c0fb0001c0c0f20001c0c0fb0008 +c0c0000000c0c00000fbc0e30001c0c0fc0008c0c00000c0c000c0c0ea00 +019595fa000a9595000095950000009595fa00019595fb00019595f9000a +9595000095950000009595f4000995950000959500009595fa0009959500 +00009595009595f7001e9595000000959500000095950000959500009595 +0095950095009595009595f9000a9595000095950000009595fc00059595 +00009595fb00019595f5000995950000009595009595f900019595f900fd +95fa00139595000000959500000095950000959500009595f40001c0c0fb +00fdc0f50005c0c00000c0c0fb0001c0c0fb00fdc0fd0006c0c0000000c0 +c09f00e70005c0c00000c0c0fc0016c0c0000000c0c00000c0c0000000c0 +c00000c0c000c0c0f90001c0c0f70001c0c0f60015c0c00000c0c0000000 +c0c00000c0c000c0c00000c0c0f60012c0c0000000c0c000c0c0000000c0 +c00000c0c0fb0001c0c0f10014c0c0000000c000c0c0000000c0c00000c0 +c000c0c0e30001c0c0fc0008c0c00000c0c000c0c0ea00019595fa000a95 +95000095950000009595fa00019595fb00019595f9000a95950000959500 +00009595f4000995950000959500009595fa000995950000009595009595 +f7001e959500000095950000009595000095950000959500959500950095 +95009595f9000a9595000095950000009595fc0005959500009595fb0001 +9595f5000995950000009595009595f900019595f700019595fb00139595 +000000959500000095950000959500009595f40001c0c0f90001c0c0f600 +05c0c00000c0c0fb0001c0c0f9000ac0c00000c0c0000000c0c09f00e700 +05c0c00000c0c0fc001fc0c0000000c0c00000c0c0000000c0c00000c0c0 +00c0c0000000c0c00000c0c0f80001c0c0f50015c0c00000c0c0000000c0 +c00000c0c000c0c00000c0c0f60011c0c0000000c0c000c0c0000000c0c0 +00c0c0fa0006c0c0000000c0c0f60015c0c00000c0c000c0c0000000c0c0 +00c0c0000000c0c0fc0001c0c0ea0001c0c0fc000dc0c00000c0c000c0c0 +000000c0c0ef001295950000009595009595000095950000009595fa0001 +9595fb00169595000000959500009595000095950000009595009595f700 +1e9595000095950000959500000095950000959500959500009595000000 +9595fc003a95950000009595000000959500009595000095950095950095 +009595009595000000959500009595000095950000009595009595009595 +00009595fb00019595f40011959500959500009595000000959500009595 +fb000695950000009595fc00139595000000959500000095950000959500 +009595f4000bc0c0000000c0c0000000c0c0f70005c0c00000c0c0fb0013 +c0c0000000c0c0000000c0c000c0c0000000c0c09f00e800fdc0060000c0 +c0000000fcc0fd00fbc00a0000c0c0c00000c0c00000fbc0010000fcc0fa +0001c0c0f300fdc01200c0c00000c0c00000c0c00000c0c0c000c0c0f600 +fbc0fd00fbc0020000c0f900f9c0f700f9c00f00c0c0000000c0c000c0c0 +000000c0c0fc0001c0c0eb00fcc00a0000c0c0c00000c0c00000fbc0ed00 +fb95fd00fd950300959500fc95fc00fc95fb00fb95fd0005959500009595 +fc00fd95f500fd95040095950000fb95fc00fd95fc00fb95fc00fc95fd00 +fb95fd00fb950a0000959500000095950000fb95fd0005959500009595fc +00fd95fd00fd9505009595000000fc95f400fd95fc00fb95010000fc95fb +00fb95fc00fc95fd00fb95fd0005959500009595f500fcc0fd00fbc0f500 +fdc00500c0c0000000fcc0fd00fbc0fd00fbc09e00d40001c0c080008000 +c50001959580008000eb00d80005c0c00000c0c080008000c50001959580 +008000eb00d700fcc080008000c500fc9580008000ec0080008000800080 +0080008000800080008000800080008000800080008000cd0001c0c0fb00 +fdc0f500fdc0f900fdc0ea00fdc0e30000c0e90000c0f90001c0c0d500fa +c0eb0000c0e90000c0ec0006c0c0000000c0c0c40001c0c0ed00fdc0f000 +00c0e90000c0e90000c08000bc00cd0001c0c0fa0001c0c0f40001c0c0f8 +0001c0c0eb0004c0c000c0c0e50001c0c0ea0001c0c0f90001c0c0d40005 +c0c00000c0c0ed0001c0c0ea0001c0c0ec00fdc00300c0c0c0c40001c0c0 +ec0001c0c0f10001c0c0ea0001c0c0ea0001c0c08000bc00c50001c0c0f4 +0001c0c0f80001c0c0eb0004c0c00000c0e50001c0c0ea0001c0c0cb0005 +c0c00000c0c0ed0001c0c0ea0001c0c0ec00f9c0ae0001c0c0f10001c0c0 +ea0001c0c0ea0001c0c08000bc00e700fcc0fd0008c0c0000000c0c00000 +fcc0fb00fdc0fa0001c0c0fc00fcc0fc00fcc0fa0001c0c0fc00fbc0f400 +01c0c0fb00fbc0070000c0c000c0c0c0f600fac0fd00fbc0fd00fbc00100 +00fac0fc00fdc0fd000ec0c000c0c0c0000000c0c0c000c0c0e60007c0c0 +0000c0c00000fbc0090000c0c000c0c0c00000fac0fd00fbc0f600fac0fd +00fbc0f600f9c0010000fcc0fc00fbc0f500fcc0fd0008c0c000c0c0c000 +0000fbc0f400fdc0fd0005c0c000c0c0c0f500fcc0fc00fbc0010000fac0 +fd00fcc0f500fac0fd00fbc0fd00fbc0010000fac08000be00e4000ac0c0 +0000c0c0000000c0c0fb0001c0c0fb0001c0c0fa0001c0c0f90009c0c000 +0000c0c000c0c0fb000bc0c0000000c0c0000000c0c0f600fcc0fd000ec0 +c0000000c0c00000c0c0c000c0c0f50001c0c0fc0013c0c0000000c0c000 +c0c0000000c0c0000000c0c0f90001c0c0fc000cc0c00000c0c000c0c000 +00c0c0e500fbc0150000c0c0000000c0c00000c0c0c000c0c0000000c0c0 +fc0006c0c0000000c0c0f50001c0c0fc0006c0c0000000c0c0f70006c0c0 +00c000c0c0fb000ac0c00000c0c0000000c0c0f30012c0c0000000c0c0c0 +00c0c000c0c0000000c0c0f40001c0c0fc0005c0c00000c0c0f60012c0c0 +00c0c00000c0c0000000c0c0000000c0c0f80001c0c0f40001c0c0fc0013 +c0c0000000c0c000c0c0000000c0c0000000c0c08000bc00e700fbc00a00 +00c0c0000000c0c00000fbc0fb0001c0c0fa0001c0c0fc00fbc0fd0005c0 +c00000c0c0fc0004c0c0000000f9c0f50001c0c0fc000ec0c0000000c0c0 +0000c0c00000c0c0f50001c0c0fc00f9c0030000c0c0f90001c0c0f90001 +c0c0fc000cc0c00000c0c000c0c00000c0c0e50001c0c0fb0013c0c00000 +00c0c00000c0c00000c0c0000000c0c0fb0001c0c0f10001c0c0fc0006c0 +c0000000c0c0f70008c0c0000000c0c00000fbc0030000c0c0f100fbc0fd +0006c0c00000c0c000f9c0f40001c0c0fc0005c0c00000c0c0f60006c0c0 +0000c0c000f9c0fd0001c0c0fb00fbc0f40001c0c0fc00f9c0030000c0c0 +f90001c0c08000bc00e80015c0c00000c0c00000c0c0000000c0c000c0c0 +0000c0c0fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000 +c0c0fc0006c0c0000000c0c0f00001c0c0fc000ac0c0000000c0c00000c0 +c0f10001c0c0fc0001c0c0f800fdc0fb0001c0c0f90001c0c0fc000cc0c0 +0000c0c000c0c00000c0c0e50001c0c0fb000ac0c0000000c0c00000c0c0 +f90001c0c0fa00fdc0f30001c0c0fc0006c0c0000000c0c0f70011c0c000 +0000c0c000c0c00000c0c00000c0c0f2000ac0c00000c0c0000000c0c0fb +0001c0c0ef0001c0c0fc0005c0c00000c0c0f60008c0c00000c0c000c0c0 +f80001c0c0fc0005c0c00000c0c0f40001c0c0fc0001c0c0f800fdc0fb00 +01c0c08000bc00e80015c0c00000c0c00000c0c0000000c0c000c0c00000 +c0c0fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000c0c0 +fc0006c0c0000000c0c0f00001c0c0fc000ac0c0000000c0c00000c0c0f1 +0001c0c0fc0001c0c0f60001c0c0fc0001c0c0f90001c0c0fc000cc0c000 +00c0c000c0c00000c0c0e50001c0c0fb000ac0c0000000c0c00000c0c0f9 +0001c0c0f80001c0c0f40001c0c0fc0006c0c0000000c0c0f70011c0c000 +0000c0c000c0c00000c0c00000c0c0f2000ac0c00000c0c0000000c0c0fb +0001c0c0ef0001c0c0fc0005c0c00000c0c0f60008c0c00000c0c000c0c0 +f80001c0c0fc0005c0c00000c0c0f40001c0c0fc0001c0c0f60001c0c0fc +0001c0c08000bc00e80015c0c00000c0c0000000c0c000c0c00000c0c000 +00c0c0fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000c0 +c0fc000bc0c0000000c0c0000000c0c0f50001c0c0fc000ac0c0000000c0 +c00000c0c0f1001cc0c000c0c000c0c0000000c0c000c0c0000000c0c000 +0000c0c000c0c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fb00 +01c0c0ec0001c0c0fb000ac0c0000000c0c00000c0c0f9000cc0c000c0c0 +00c0c0000000c0c0f5000cc0c000c0c000c0c0000000c0c0f70016c0c000 +0000c0c000c0c00000c0c00000c0c0000000c0c0f7000ac0c00000c0c000 +0000c0c0fb0006c0c0000000c0c0f40001c0c0fc0005c0c00000c0c0f600 +1cc0c00000c0c000c0c0000000c0c0000000c0c000c0c000c0c00000c0c0 +f4001cc0c000c0c000c0c0000000c0c000c0c0000000c0c0000000c0c000 +c0c0fc0001c0c08000c500e700fdc00800c0c0000000c0c0c0fc00fdc005 +00c0c0000000fcc0fc00fcc0fd00fdc00400c0c00000fbc0fc00fcc0fd00 +fbc0f500fcc0fc00fbc0010000fcc0f100fdc0fd00fbc0fd00fbc0fb00fd +c0fc00fcc0fd0007c0c00000c0c00000fbc0fb0001c0c0ed00fcc0fb00fb +c0010000fcc0f900fdc0fd00fbc0f300fdc0fd00fbc0f60010c0c0000000 +c0c00000c0c0c000c0c00000fbc0f500fdc00300c0c000fcc0fb00fbc0f4 +00fcc0fd0005c0c00000c0c0f600fbc0fd00fbc0fb00fdc0fd00fdc00200 +c0c0f400fdc0fd00fbc0fd00fbc0fb00fdc0fb0001c0c08000c5008000c4 +0001c0c0800080008000be008000c80005c0c00000c0c0800080008000be +008000c700fcc0800080008000bd00800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000800080008000800080008000800080008000c800066969 +000000696994000069f9000169698200fd69f300016969ea000069fc00fd +69d100fd95fa00019595e500fd95f100fd95ca00016969fa00fd69f300fd +69eb00016969fa000069fc00fd69c300c800fd6903006969699500016969 +f9000169698100016969f300016969eb00016969fb00016969d000019595 +fa00019595e400019595f000019595ca00016969f900016969f200016969 +eb00016969fb00016969fb00016969c300c800f96995000169698000f800 +016969dc00016969fb00016969d000019595dc00019595f000019595c100 +016969f200016969e400016969fb00016969c300d70005696900006969f7 +00f969010000fc69fd000e696900696969000069690000006969f7000869 +6900006969000000fb69fd00fb69070000696900696969f500fd690c0069 +6900696900006969000000fb69fd00fb69010000fa69fc00fd69fc00fb69 +0a0000696900696969000000fb69f500fc69fd0008696900696969000000 +fb69f500fc69fd0008696900696969000000fb690a000069690000006969 +0000fb690a0000696900696969000000fb69fc00fc69f400fd69fd000569 +6900696969f600fa69fd00076969006969000000fb69ed00fb9507000095 +9500959595fb00019595fb00fd95fd0008959500959595000000fb95f500 +079595009595000000fb95fb000a9595000000959500959595f600106969 +006969690000696900696969000000fb690e000069690000006969000000 +696969fb00fc69fd00fb69fc00fc69f6000f696900000069690000006969 +69000000fa69fd00046969006969c600d600fc69f6000669690069006969 +fb001269690000006969000069690069690000006969f7001e6969000069 +6900006969000000696900696900000069690000696969006969f7002369 +690000696900006969000069690000696900000069690069690000006969 +0000006969f9001b69690000006969000000696900006969000069690069 +690000006969f3001269690000006969690069690069690000006969f300 +396969000000696900006969006969000000696900696900000069690069 +6900000069690000696969006969006969000000696900006969006969f3 +00016969fc0005696900006969f500016969fb00fd690a00696900696900 +00006969ef000e959500000095950000959500009595fc00019595fa0001 +9595fc000d9595000095950095950000009595f600fd950a009595009595 +0000009595fc00019595fc0005959500009595f6001d6969000069690000 +69696900696900696900000069690069690000006969fc00016969fc0014 +696900696900006969000000696900006969006969f60006696900000069 +69fc00016969fb00016969fb00fd6902006969c700d800f869f800086969 +00000069690000fb69fd000d6969000069690069690000006969f7000a69 +69000069690000006969fb00f969070000696900006969f7000f69690000 +696900006969000069690000f9690300006969f900016969f90017696900 +000069690000006969000069690000696900006969f200fb69fd00066969 +0000696900f969f600fb69fd000969690000696900006969fb0007696900 +6900696900f96908000069690000696900f9690600696900006969f30001 +6969fc0005696900006969f500016969fb000669690000696900f969ef00 +0e959500000095950000959500009595fc00019595fa00019595fc000695 +950000959500f995f6000695950000959500f995fc00019595fc00059595 +00009595f6001d6969000069690000696900006969006969000000696900 +69690000006969fc000c69690000006969000069690000f9690600696900 +006969f6000669690069006969fc00016969fb00016969fb000569690000 +6969c700d600fc69f6001e69690000006969006969000069690000006969 +000069690069690000006969f70005696900006969fc00fd69fd00016969 +f900016969f30011696900006969000069690000696900006969f800fd69 +fb00016969f9001969690000006969000000696900006969000069690000 +00696969f5000a6969000069690000006969fb00016969f2002169690000 +696900000069690000696900000069696900000069690069006969006969 +f900016969fb00016969fa0005696900006969f300016969fc0005696900 +006969f500016969fb0008696900006969006969ea000e95950000009595 +0000959500009595fc00019595fa00019595fc0008959500009595009595 +f10008959500009595009595f700019595fc0005959500009595f6000969 +690000696900006969fb000e696900000069690069690000006969fc000e +696900000069690000696900006969fa0005696900006969f60006696900 +69006969fc00016969fb00016969fb0005696900006969c700d700056969 +00006969f7001e6969000000696900696900006969000000696900006969 +0069690000006969f70005696900006969fa0005696900006969f9000169 +69f30011696900006969000069690000696900006969f600016969fc0001 +6969f900136969000000696900000069690000696900006969fb00016969 +f6000a6969000069690000006969fb00016969f2000e6969000069690000 +00696900006969fb000d6969000069690069006969006969f900016969fb +00016969fa0005696900006969f300016969fc0005696900006969f50001 +6969fb0008696900006969006969ea000e95950000009595000095950000 +9595fc00019595fa00019595fc0008959500009595009595f10008959500 +009595009595f700019595fc0005959500009595f6000969690000696900 +006969fb000e696900000069690069690000006969fc000e696900000069 +690000696900006969fa0005696900006969f6000669690069006969fc00 +016969fb00016969fb0005696900006969c700c8001e6969000000696900 +6969000069690000006969000069690069690000006969f7001a69690000 +6969000069690000006969006969000000696900006969f3002669690000 +696900006969000069690000696900000069690069690000006969000000 +6969006969fc001b69690000006969000000696900006969000069690069 +690000006969f7000a6969000069690000006969fb000669690000006969 +f70017696900006969000000696900006969006969000000696900f9690b +006969000000696900006969fb000d6969000000696900696900006969f3 +00016969fc0005696900006969f500146969006969000069690000696900 +69690000006969ef000e959500000095950000959500009595fc00019595 +fa00019595fc000d9595000095950095950000009595f6000d9595000095 +950095950000009595fc00019595fc0005959500009595f6000969690000 +696900006969fb000d6969000000696900006969006969fb001a69690000 +0069690000696900006969000000696900696900006969f600f969fc0001 +6969fb000c69690069690000696900006969c700c8001869690000006969 +000069696900696900006969000069690000fa69f600fd69040069690000 +fb69fd00fb69010000fc69f300fb69fd00fd69040069690000fb69fd00fb +69fb00fd69fc00fc69fd00fb69fd00076969000069690000fb69f500fd69 +0300696900fc69fb00fb69f500fd690c00696900006969000069690000fb +69fd00076969006969000000fb69010000fc69fb00fb69fd00fd69020069 +69f500fc69fd0005696900006969f400fd690a0000696969000069690000 +fb69ed00fb95fd0008959500009595000000fc95fc00fc95fd0007959500 +0095950000fb95f600fd9505000095950000fb95fc00fc95fd00fb95f500 +fb69010000fc69fb00fb69fc00fd69fb00fc69fd00fd69040069690000fb +69fd00fd6902006969f600046969006969fc00fc69fb00fd690800006969 +6900006969c700ab00016969cb0001696980008000bd00019595f2000169 +698000e300ac00016969ca0001696980008000bd00019595f20001696980 +00e300b000fb69ca00fc6980008000bf00fc95f400fc698000e400800080 +00800080008000800080008000800080008000c600016969f20001696980 +0080008000cc00c800fc69d400fa69d3000069fc00fd69e900016969fb00 +fb69fc00016969f400fd69e0000069e900fd69fb00016969f200fd69f300 +0069fc00fd69f800016969ed00fd69f100fd6980008000f500c700016969 +d20005696900006969d500016969fb00016969e900016969fc000b696900 +000069690000006969f300016969e100016969ea00046969006969fc0001 +6969f100016969f400016969fb00016969f800016969ec00016969f00001 +696980008000f500c700016969d20005696900006969d500016969fb0001 +6969ea00016969fb000a6969000000696900006969f200016969e1000169 +69ea00046969000069eb00016969f400016969fb00016969e200016969f0 +0001696980008000f500c700016969fb0016696900000069690069690069 +6969000069690000006969ee000f69690000696900696900696969000000 +fb69fd00fb69fd00fb69f600fa69fd00076969006969000000fb69ea0001 +6969ed00076969000069690000fb6908000069690000006969f700fa69fd +00fb69f400016969fa00fd69fd0005696900696969fc00fc69f600fa69fd +00046969006969fc00fd69fc00fb69f500076969006969000000fb69fb00 +0a696900000069690069696980008000fe00c700016969fb001569690000 +006969000069690000696900006969006969ed00fb69fd00fd691a006969 +006969000000696900696900000069690069690000006969f500016969fb +00fd690a0069690069690000006969ec00016969ec001569690069690000 +696900000069690069690000006969f500016969fc000669690000006969 +f600fc69fa00016969fc000c69690000696900006969006969f400016969 +fb00fd6902006969fc000b696900000069690000006969f600fd690a0069 +690069690000006969fc00016969fc000569690000696980008000ff00c7 +00016969fb0014696900000069690000696900006969000000696969ec00 +016969fa000669690000696900f9690300006969fa00016969f100016969 +fb000669690000696900f969ec00016969ec00fc69fd00f9690700696900 +00006969f500016969fc000669690000006969f500016969f900016969fc +000c69690000696900696900006969f400016969fb0005696900006969fc +00016969fc00016969f2000669690000696900f969fc00016969fc000569 +690000696980008000ff00c700016969fb00146969000000696900006969 +00006969000000696969ec00016969fa00016969fb00016969f800fd69fb +00fd69f300016969fb0008696900006969006969e700016969ec00fc69fd +00016969fa000669690000006969f500016969fc000669690000006969f5 +00016969f900016969fc000c69690000696900696900006969f400016969 +fb0005696900006969fc00016969fb00fd69f40008696900006969006969 +f700016969fc000569690000696980008000ff00c7001b69690000006900 +696900000069690000696900006969000000696969ec00016969fa000169 +69fb00016969f600016969fa00016969f400016969fb0008696900006969 +006969d10008696900696900006969fa000669690000006969f500016969 +fc000669690000006969f500016969f900016969fc000c69690000696900 +696900006969f400016969fb0005696900006969fc00016969f900016969 +f50008696900006969006969f700016969fc000569690000696980008000 +ff00c7001c69690000696900696900000069690000696900006969000069 +69006969fb00016969f400016969fa00016969fb00166969000000696900 +696900000069690069690000006969f50014696900696900006969000069 +690069690000006969ec00016969ec001569690000696900696900000069 +690069690000006969f5000c69690069690069690000006969f500016969 +f900016969fc000c69690000696900696900006969f4000c696900696900 +00696900006969fc000b696900000069690000006969f6000d6969000069 +690069690000006969fc00016969fc0005696900006969fc000169698000 +8500c800f969010000fa690f00006969000069690069690000006969fc00 +016969f500fc69fc00fc69fb00fb69fd00fb69fd00fb69f300fd690a0000 +696969000069690000fb69eb00016969ed00fd6905000069690000fb69fd +00fa69f400fd69fd00fb69f500fc69fb00fc69fd000d6969000069690000 +696969006969f400fd690b000069696900006969000000fc69fd00fb69f6 +00fd6905000069690000fb69fc00fc69fd00fb69fb0001696980008500bb +000169698000da000169698000f60001696980008000fb00bc0001696980 +00da000169698000f50001696980008000fb00c000fb698000dd00fb6980 +00f500fc6980008000fc0080008000800080008000800080008000800080 +0080008000800080008000c600fc69fb00fd6983000069e900016969e200 +fd69fb00016969fa00fd69fb00fd69fb00016969eb00fd69fa000069e100 +016969fa000069fc00fd69f300fc698900016969fa000069e90000699400 +c500016969fb000469690069698500016969e900016969e100016969fb00 +016969fb000c69690069690000006969006969fc00016969ea00016969fb +00016969e100016969fb00016969fb00016969f2000169698800016969fb +00016969ea000169699400c500016969fb000469690000698500016969c8 +00016969f4000c69690000690000006969000069e400016969fb00016969 +da00016969fb00016969f2000169698100016969ea000169699400d70005 +696900006969f400016969fb00016969f40008696900000069690000fb69 +070000696900006969f500fc69fd0008696900696969000000fb69f500fb +690a0000696900696969000000fb69fd00fb691100006969000069690000 +6969006969690000fa69fd00fb69070000696900696969fc00fd69fd000e +696900696969000000696969006969f500fc69fc00fd69fb00016969fa00 +016969fa00fd69fc00fb69070000696900006969fb00046969000000fa69 +08000069690000006969f7000f69690000006969000000696969000000fa +69fd00046969006969f500016969fb001669690000006969006969006969 +69000069690000006969f70008696900000069690000fb69070000696900 +006969f600fd6905006969000000fc69fd000669690000006969f7000d69 +69000000696900696900696969fc00fd69fd00fa69fd00fb69f600fa69fd +00fb699e00d600fc69f300016969fc00fc69f50015696900000069690069 +69000000696900696900006969f200126969000000696969006969006969 +0000006969f7003369690000006969000069690000696900696900000069 +690069690000006969006969000069690000006969000069690000006969 +fc000e696900000069690000696969006969fc00016969fc000c69690000 +696900696900006969f500046969006969fb00016969fc00fc69fc00fc69 +fa001269690000006969000000696900696900006969fb00016969fb0001 +6969fc000669690000006969f7000669690000006969fc00016969fb0001 +6969fb00fd6902006969f600016969fb0015696900000069690000696900 +00696900006969006969f600156969000000696900696900000069690069 +6900006969f600f969fb000a6969000069690000006969f7000e69690000 +0069690000696969006969fc00016969fb00016969fc0006696900000069 +69f500016969fc0006696900000069699f00d800f869f500016969fb0001 +6969f4001569690000006969006969000000696900696900006969f500fb +69fd000669690000696900f969f700f9690a0000696900006969006969fa +001b69690000006969006969000069690000006969000069690000006969 +fc00f969070000696900006969fc00016969fc000c696900006969006969 +00006969f60005696900006969fb00016969fb00016969fa00016969f900 +0669690000006969fa0005696900006969fb00016969fb00016969fc0006 +69690000006969f7000669690069006969fc00016969fb00016969fb0005 +696900006969f600016969fb001469690000006969000069690000696900 +0000696969f5001569690000006969006969000000696900696900006969 +f60008696900690069690000fb6908000069690000006969f7000e696900 +690069690000696900006969fc00016969fb00016969fc00f969f5000169 +69fc0006696900000069699f00d600fc69f300016969fb00016969f40015 +69690000006969006969000000696900696900006969f6000a6969000069 +690000006969fb00016969f200016969f90008696900006969006969fa00 +1b69690000006969006969000069690000006969000069690000006969fc +00016969f900016969f800016969fc000c69690000696900696900006969 +f60005696900006969fb00016969fb00016969fa00016969f90006696900 +00006969fa0005696900006969fb00016969fb00016969fc000669690000 +006969f7000669690069006969fc00016969fb00016969fb000569690000 +6969f600016969fb00146969000000696900006969000069690000006969 +69f5001569690000006969006969000000696900696900006969f6001669 +69006900696900696900006969000069690000006969f7000a6969006900 +696900006969f800016969fb00016969fc00016969f000016969fc000669 +6900000069699f00d70005696900006969f400016969fb00016969f40015 +69690000006969006969000000696900696900006969f6000a6969000069 +690000006969fb00016969f200016969f90008696900006969006969fa00 +1b69690000006969006969000069690000006969000069690000006969fc +00016969f900016969f800016969fc000c69690000696900696900006969 +f60005696900006969fb00016969fb00016969fa00016969f90006696900 +00006969fa0005696900006969fb00016969fb00016969fc000669690000 +006969f7000669690069006969fc00016969fb00016969fb000569690000 +6969f6001b69690000006900696900000069690000696900006969000000 +696969f5001569690000006969006969000000696900696900006969f600 +166969006900696900696900006969000069690000006969f7000a696900 +6900696900006969f800016969fb00016969fc00016969f000016969fc00 +06696900000069699f00c500016969fb00016969f4001569690000006969 +006969000000696900696900006969f6000a6969000069690000006969fb +000669690000006969f70042696900000069690000696900006969006969 +000000696900696900000069690069690000696900000069690000696900 +00006969006969006969000000696900006969f800016969fc000c696900 +00696900696900006969f60005696900006969fb00016969fb00016969fa +00016969f9001269690000006969000000696900696900006969fb000169 +69fb000c69690069690069690000006969f700f969fc00016969fb000c69 +690069690000696900006969f6001c696900006969006969000000696900 +0069690000696900006969006969f6001569690000006969006969000000 +696900696900006969f60016696900690069690069690000696900006969 +0000006969f700f9690300006969f800016969fb000c6969006969006969 +0000006969f5000c696900696900696900000069699f00c600fc69fd00fc +69f400fa69010000fb69fd00fd6902006969f600fd690300696900fc69fb +00fb69f500fb69fd00076969000069690000fb69fd00fb69fd00fd690a00 +69690000696900006969fc00fd69fd00fb69010000fc69fa00fc69fd0007 +6969000069690000fb69f500fd6905006969000000fc69fd00fc69fc00fc +69fb00fc69fd00fb69fd00fd6905006969000000fc69fb00fd69fd00fa69 +f600046969006969fc00fc69fb00fd6908000069696900006969f700f969 +010000fa690f00006969000069690069690000006969f600fa69010000fb +69fd00fd6902006969f700106969000000696900006969690069690000fa +69f6000669690069690000fc69fa00fc69fb00fd69fd00fb69f300fd69fd +00fb699e00ab000169698000eb00016969a900016969c200016969e20001 +6969d2000169698000d700ac000169698000ee0005696900006969aa0001 +6969c200016969e200016969d2000169698000d600b000fb698000ec00fc +69ad00fb69c500fb69e500fb69d500fb698000d500800080008000800080 +008000800080008000800080008000800080008000c600fda6da00fda6db +0001a6a6da0000a6e400fa69d300fd69f3000069f100016969fb00fd69f2 +00fd699600fd69e8000069f1000069fc00fd69eb00076969000000696900 +fa69010000fc69ec00fd699b00c50001a6a6d90001a6a6ed00fba6f30001 +a6a6db0001a6a6e30005696900006969d300016969f400016969f1000169 +69fa00016969f1000169699500016969e900016969f200016969fb000169 +69eb001269690000006969000069690000696900006969ea000169699b00 +c50001a6a6d90001a6a6ee0006a6a6000000a6a6cd0001a6a6e300056969 +00006969d300016969f400016969e900016969f1000169699500016969e9 +00016969f200016969fb00016969eb001269690000006969000069690000 +696900006969ea000169699b00c5001ba6a6000000a6a6000000a6a600a6 +a600a6a6a60000a6a6000000a6a6f500fca6fd00fba6120000a6a6000000 +a6a600a6a6000000a6a60000fba6fc00fda6fc00fda60200a6a6f70008a6 +a600a6a6a6000000fba6010000faa6e500076969000069690000fb69f500 +fc69fc00fb69f400fc69fd00fb69010000fa69fd00fc69fb00fd69fa0001 +6969fc00fb69fc00fc69f500fc69fc00fb69f60008696900000069690000 +fb69070000696900006969f500fb69fd00fc69fd0005696900696969f500 +fc69fc00fc69fc00fb690900006969000069690000fa69f600fa69fd0007 +6969006969000000fb69f600126969000000696900006969000069690000 +6969f300106969000000696900006969006969000000fb690a0000696900 +696969000000fb69b600c5001aa6a6000000a6a6000000a6a60000a6a600 +00a6a60000a6a600a6a6f50019a6a600a6a60000a6a6000000a6a600a6a6 +000000a6a600a6a600fca60700a6a6000000a6a6fc000aa6a6000000a6a6 +0000a6a6f50012a6a60000a6a600a6a6000000a6a6000000a6a6e300fb69 +08000069690000006969f3000a6969000069690000006969f60012696900 +69690000696900000069690000006969f800016969fb00016969fa001269 +690000006969000000696900006969006969f2000a696900006969000000 +6969f7001569690000006969006969000000696900696900006969f60006 +69690000006969fb000a6969000000696900006969f30019696900000069 +6900696900006969000000696900696900006969fc00016969f200016969 +fb00fd690a0069690069690000006969f70008696900000069690000fb69 +fd00016969f3002669690000006969000069696900696900696900000069 +6900006969690069690069690000006969b700c5001ca6a6000000a6a600 +0000a6a60000a6a60000a6a6000000a6a6a6000000f9a60800a6a60000a6 +a60000f9a60b00a6a6000000a6a600a6a600fca6030000a6a6f8000aa6a6 +000000a6a60000a6a6f50006a6a60000a6a600f9a6fd0001a6a6e3000669 +690000696900f969f600fb69fd00016969f300076969000069690000f969 +fd00016969fb00fb69fb00016969fa00046969000000f969060069690000 +6969f500fb69fd00016969f3001569690000006969006969000000696900 +696900006969f600016969f900fb69fd0005696900006969f600fb69fd00 +14696900006969006969000000696900696900006969fc00016969f20001 +6969fb000669690000696900f969f7001269690000006969000069690069 +690000006969f3000f69690069006969000069690000696900f969080000 +69690000696900f969b700c50019a6a6000000a6a6000000a6a60000a6a6 +0000a6a6000000a6a6a6f50009a6a60000a6a60000a6a6fa000aa6a60000 +00a6a600a6a600fca6fd00fda6fa000aa6a6000000a6a60000a6a6f50008 +a6a60000a6a600a6a6f80001a6a6e30008696900006969006969f2000569 +6900006969fc00fd69f5000969690000696900006969f800016969fc0005 +696900006969fb00016969fa000669690000006969fa0005696900006969 +f60005696900006969fc00fd69f500156969000000696900696900000069 +6900696900006969f600016969fa000e6969000069690000006969000069 +69f7001d6969000069690000006969000069690069690000006969006969 +00006969fc00016969f200016969fb0008696900006969006969f2001269 +690000006969000069690000696900006969f30011696900690069690000 +696900006969006969f900016969fb00016969b200c50019a6a6000000a6 +a6000000a6a60000a6a60000a6a6000000a6a6a6f50009a6a60000a6a600 +00a6a6fa000da6a6000000a6a600a6a600a6a6a6fa0001a6a6fb000aa6a6 +000000a6a60000a6a6f50008a6a60000a6a600a6a6f80001a6a6e3000869 +6900006969006969f20005696900006969fa00016969f600096969000069 +6900006969f800016969fc0005696900006969fb00016969fa0006696900 +00006969fa0005696900006969f60005696900006969fa00016969f60015 +69690000006969006969000000696900696900006969f600016969fa000e +696900006969000000696900006969f7001d696900006969000000696900 +006969006969000000696900696900006969fc00016969f200016969fb00 +08696900006969006969f200166969000000696900006969000069690000 +696900000069f70011696900690069690000696900006969006969f90001 +6969fb00016969b200c5001aa6a6000000a6a6000000a6a60000a6a60000 +a6a60000a6a600a6a6f60019a6a60000a6a60000a6a6000000a6a60000a6 +a600a6a60000a6a6fa0006a6a6000000a6a6fc000aa6a6000000a6a60000 +a6a6fb0001a6a6fc0015a6a60000a6a600a6a6000000a6a6000000a6a600 +a6a6fc00016969ec000d6969000069690069690000006969f7000e696900 +006969000069690000006969f7001d696900006969000069690000006969 +000000696900696900696900006969fb00016969fa001269690000006969 +000000696900696900006969f6000e696900006969000069690000006969 +f7001569690000006969006969000000696900696900006969f600166969 +000000696900696900006969000000696900006969f7001d696900006969 +000000696900006969006969000000696900696900006969fc0004696900 +6969f50014696900696900006969000069690069690000006969f7001669 +69000000696900006969000069690000696900006969f700f96913000069 +6900006969006969000000696900006969fb000669690000006969b700c6 +00fca6fd00faa60f0000a6a60000a6a600a6a6000000a6a6f600fda60400 +a6a60000fba6fc00fda6fc00fba6fd00fba6fc00fca6fd00fba6fb0001a6 +a6fc0007a6a60000a6a60000fba6fb00fda6fb00016969ed00fa69fd00fb +69f500fd69040069690000fb69f500fd69040069690000fb69fb00fd69fd +00fd6905006969000000fc69fc00fc69fd00fb69fd00fd6902006969f600 +fd69040069690000fb69f500fa69010000fb69fd00fd6902006969f600fb +69fd00fd690a0069690000696900006969f600fd69040069690000fb69fd +00fb69fd00fd6902006969fc00fd69f300fd690a00006969690000696900 +00fb69f500fb690900006969690000696900f969f6000f69690069690000 +696969000069690000fb69010000fc69fb00fb69b600bb0001a6a6b30001 +a6a68000b10001696980008000e700bc0001a6a6b60005a6a60000a6a680 +00b20001696980008000e600c000fba6b400fca68000b500fb6980008000 +e50080008000800080008000800080008000800080008000800080008000 +80008000e5000069fc00fd69eb000669690000006969f700fd69eb00fd69 +c300fd69f000fd69f3000069e400fd69f900fd69dd00fd69f0000069d100 +fd69fb00016969fa00fd69e600fd69f0000069f400fc69a4008000e60001 +6969fb00016969eb000669690000006969f600016969ea00016969c20001 +6969ef00016969f400016969e300016969f800016969dc00016969f10001 +6969d000016969fb00016969f900016969e500016969f100016969f30001 +6969a3008000e600016969fb00016969eb000669690000006969f6000169 +69ea00016969c200016969ef00016969f400016969e300016969f8000169 +69dc00016969f100016969d000016969f200016969e500016969f1000169 +69f300016969a300c80008696900000069690000fb690700006969000069 +69f60008696900000069690000fb690a0000696900696969000000fb69f5 +00fb69070000696900696969f600fa69fd00076969006969000000fb69f6 +0008696900000069690000fb69fd00fc69f5001069690000006969000069 +69006969000000fb69070000696900696969f60008696900000069690000 +fb69070000696900006969f500076969006969000000fc69fb00fc69f600 +fa690a0000696900696969000000fb690a0000696900006969000000fc69 +fa00016969fc00fb69ee00106969000000696900006969006969000000fc +69fd00fa69f60008696900000069690000fb69070000696900006969f400 +fc69fc00fd69fb00fc69ee00106969000000696900006969006969000000 +fc69fd00fa69f500016969fb001669690000006969006969006969690000 +69690000006969bf00c80015696900000069690069690000006969006969 +00006969f6001e6969000000696900696900000069690000696969006969 +0069690000006969f7000e696900000069690000696900006969f5000169 +69fb00fd690a0069690069690000006969f7001569690069006969006969 +000000696900006969006969f6001e696900000069690000696969006969 +00696900000069690000696900006969f700156969000000696900696900 +0000696900696900006969f500fd6902006969fb00096969000000696900 +6969f400016969fb00fd6919006969006969000000696900696900006969 +0000006969006969fb000b696900000069690000006969ef000e69690000 +0069690000696969006969fb00016969fc00016969f40015696900000069 +69006969000000696900696900006969f500046969006969fb00016969fc +00046969006969ee000e696900000069690000696969006969fb00016969 +fc00016969f300016969fb00156969000000696900006969000069690000 +6969006969be00c800156969000000696900696900000069690069690000 +6969f600076969006900696900f96908000069690000696900f969f7000e +696900000069690000696900006969f500016969fb000669690000696900 +f969f700076969006900696900f969070000696900006969f7000f696900 +69006969000069690000696900f969070000696900006969f70015696900 +00006969006969000000696900696900006969f500076969000069690000 +fb69070000696900006969f400016969fb001d6969000069690069690000 +00696900696900006969000000696900006969fc00046969000000f969ef +00106969006900696900006969000069690000fb69fc00016969f4001569 +690000006969006969000000696900696900006969f60005696900006969 +fb000a6969000000696900006969ee001069690069006969000069690000 +69690000fb69fc00016969f300016969fb00146969000000696900006969 +00006969000000696969bd00c80015696900000069690069690000006969 +00696900006969f6000969690069006969006969f900016969fb00016969 +f2000e696900000069690000696900006969f500016969fb000869690000 +6969006969f2000969690069006969006969f90005696900006969f70011 +696900690069690000696900006969006969f90005696900006969f70015 +69690000006969006969000000696900696900006969f500146969000069 +69006969000069690000696900006969f400016969fb00016969fb001669 +69000000696900696900006969000000696900006969fc00066969000000 +6969ea001569690069006969000069690000696900696900006969fc0001 +6969f4001569690000006969006969000000696900696900006969f60005 +696900006969fb000a6969000000696900006969ee001569690069006969 +000069690000696900696900006969fc00016969f300016969fb00146969 +00000069690000696900006969000000696969bd00c80015696900000069 +69006969000000696900696900006969f6000969690069006969006969f9 +00016969fb00016969f2000e696900000069690000696900006969f50001 +6969fb0008696900006969006969f200f96902006969f900056969000069 +69f70011696900690069690000696900006969006969f900056969000069 +69f7001569690000006969006969000000696900696900006969f5001469 +6900006969006969000069690000696900006969f400016969fb00016969 +fb00166969000000696900696900006969000000696900006969fc000669 +690000006969f700016969f5001569690069006969000069690000696900 +696900006969fc00016969f4001569690000006969006969000000696900 +696900006969f60005696900006969fb000a6969000000696900006969fb +00016969f5001569690069006969000069690000696900696900006969fc +00016969f3001b6969000000690069690000006969000069690000696900 +0000696969bd00c800156969000000696900696900000069690069690000 +6969f600f9690b006969000000696900006969fb000669690000006969f7 +000e696900000069690000696900006969f5001469690069690000696900 +0069690069690000006969f700fd69130069696900696900000069690000 +696900006969f700f9691700006969000069690069690000006969000069 +6900006969f7001569690000006969006969000000696900696900006969 +f50014696900006969006969000069690000696900006969f40008696900 +696900006969fb0016696900000069690069690000696900000069690000 +6969fc000b696900000069690000006969fc00016969f500f9690e000069 +690000696900696900006969fc00046969006969f7001569690000006969 +006969000000696900696900006969f60005696900006969fb000a696900 +0000696900006969fb00016969f500f9690e000069690000696900696900 +006969fc00046969006969f6001c69690000696900696900000069690000 +69690000696900006969006969be00c700fa69010000fb69fd00fd690200 +6969f600076969006969000000fb69010000fc69fb00fb69f500fb69fd00 +05696900006969f400fd690a0000696969000069690000fb69f500076969 +006969000000fb69fd00fb69f5000f696900696900006969690000696900 +00fb69fd0005696900006969f600fa69010000fb69fd00fd6902006969f7 +00fd69130000696900006969690069690000696969006969f400fd690100 +00fc69fb00fb69fd00fd69040069690000fb69fc00fc69fd00fb69fb0001 +6969f4001569690069690000696969000069690000696969006969fc00fd +69f500fa69010000fb69fd00fd6902006969f600fd6905006969000000fc +69fd00fd6902006969fc00016969f4001569690069690000696969000069 +690000696969006969fc00fd69f600f969010000fa690f00006969000069 +690069690000006969bf00c3000169698000ba000169698d00016969c700 +016969cd00016969bf00016969af00c4000169698000ba000169698000d2 +000169698a00016969ae00c800fb698000bd00fb698000d500fb698d00fb +69ad00800080008000800080008000800080008000800080009600016969 +f200016969800080008000fc00a500016969c500fd69d700016969fb0000 +69e200016969f200016969f400fd69e900016969d900fd69ee00fd69f000 +0069f300fb69fd00fb69d600fd69c900fc69fb00fd698000fe00a5000169 +69c400016969d800016969fb00016969e200016969f200016969f3000169 +69e800016969d900016969ed00016969f100016969f4000e696900000069 +690069690000006969d600016969c800016969fb000469690069698000ff +008000e700016969d900016969fa00016969e300016969f200016969f200 +016969e700016969da00016969ed00016969f100016969f4000e69690000 +0069690069690000006969d600016969c800016969fb0004696900006980 +00ff00c80008696900000069690000fb690a0000696900696969000000fb +69fc00fd69fc00fb69070000696900696969f60008696900000069690000 +fb69070000696900006969f500076969006969000000fc69fd0008696900 +000069690000fb69f400016969fc00fa6910000069690069696900006969 +0000006969ee00fa69ee00076969000069690000fb690800006969000000 +6969fb00016969ed00fc69fd0005696900696969fc00fc69f60010696900 +0000696900006969006969000000fc69fd00fa69f6000a69690000006969 +00006969f30008696900000069690000fb69070000696900006969f50007 +6969006969000000fc69fd0008696900000069690000fb69e300016969fb +00016969f40008696900000069690000fb69070000696900006969f500fc +69fd0008696900696969000000fb69be00c8001e69690000006969006969 +000000696900006969690069690069690000006969fc0013696900000069 +6900000069690000696900006969f7001569690000006969006969000000 +696900696900006969f500fd6902006969fb001269690000696900000069 +690069690000006969f500016969fa00016969fb00fd690a006969006969 +0000006969d6001569690069690000696900000069690069690000006969 +fb00016969ea0011696900000069690000696900006969006969f6000e69 +6900000069690000696969006969fb00016969fc00016969f4000c696900 +00006969000000696969f500156969000000696900696900000069690069 +6900006969f500fd6902006969fb00126969000069690000006969006969 +0000006969e400016969fc00fc69f5001569690000006969006969000000 +696900696900006969f20012696900000069696900696900696900000069 +69bf00c800076969000000696900f9690b000069690000696900006969f8 +00136969000000696900000069690000696900006969f700156969000000 +6969006969000000696900696900006969f500076969000069690000fb69 +0900006969000000696900f969f500016969fa00016969fb000d69690000 +69690069690000006969d600fc69fd00f969070069690000006969fb0001 +6969ed00fb69fd000c69690000696900696900006969f600106969006900 +696900006969000069690000fb69fc00016969f4000669690000006969fb +00016969f6001569690000006969006969000000696900696900006969f5 +00076969000069690000fb690900006969000000696900f969e400016969 +fb00016969f4001569690000006969006969000000696900696900006969 +f500fb69fd000669690000696900f969bf00c80009696900000069690069 +69f900016969f900fd69fa00136969000000696900000069690000696900 +006969f7001569690000006969006969000000696900696900006969f500 +1869690000696900696900006969000069690000006969006969f0000169 +69fa00016969fb00016969fb000669690000006969ee00fa69ee00fc69fd +00016969fa000669690000006969fb00016969ee00156969000069690000 +0069690000696900696900006969f6001569690069006969000069690000 +696900696900006969fc00016969f4000669690000006969fa00016969f7 +001569690000006969006969000000696900696900006969f50018696900 +00696900696900006969000069690000006969006969df00016969fb0001 +6969f4001569690000006969006969000000696900696900006969f6000a +6969000069690000006969fb00016969ba00c80009696900000069690069 +69f900016969f700016969fb001369690000006969000000696900006969 +00006969f7001569690000006969006969000000696900696900006969f5 +001869690000696900696900006969000069690000006969006969f00001 +6969fa00016969fb00016969fb000669690000006969d600086969006969 +00006969fa000669690000006969fb00016969fb00016969f50015696900 +00696900000069690000696900696900006969f600156969006900696900 +0069690000696900696900006969fc00016969f4000e6969000000696900 +69690000006969f700156969000000696900696900000069690069690000 +6969f5001869690000696900696900006969000069690000006969006969 +df00016969fb00016969f400156969000000696900696900000069690069 +6900006969f6000a6969000069690000006969fb00016969ba00c7001169 +6900696900006969000000696900006969fb000669690000006969fc0013 +6969000000696900000069690000696900006969f7001569690000006969 +006969000000696900696900006969f5001d696900006969006969000069 +690000006969006969000069690000006969f400016969fb000869690069 +6900006969fb000669690000006969d60015696900006969006969000000 +69690069690000006969fc00016969fa00016969f5001569690000696900 +000069690000696900696900006969f600f9690e00006969000069690069 +6900006969fc00046969006969f7000e6969000000696900696900000069 +69f7001569690000006969006969000000696900696900006969f5001d69 +6900006969006969000069690000006969006969000069690000006969fc +00016969ea00016969fb00016969f4001569690000006969006969000000 +696900696900006969f6000a6969000069690000006969fb000669690000 +006969bf00c600fd69fc00fb69010000fc69fb00fb69fc00fc69fd00fb69 +fd0005696900006969f600fa69010000fb69fd00fd6902006969f700fd69 +11000069690000696969006969000000696969fc00fb69f200016969fb00 +fd69010000fc69fb00fa69d700fd6905000069690000fb69fd00fa69fd00 +016969f900016969f400fd69120069690000696900006969000069696900 +6969f6001569690069690000696969000069690000696969006969fc00fd +69f500fb69fd00fb69f500fa69010000fb69fd00fd6902006969f700fd69 +11000069690000696969006969000000696969fc00fb69fb00016969eb00 +fc69fd00fc69f400fa69010000fb69fd00fd6902006969f600fd69030069 +6900fc69fb00fb69be008300016969a200016969c200016969f500016969 +8f0001696992000169698f008400016969a200016969c200016969820001 +696992000169698e008800fb69a500fb69c500fb698500fb699500fb698d +008000800080008000800080008000800080008000800080008000800080 +00b500016969c300fd69fa00fd69c3000169698b00fd69fb00fd69da00fd +69f3000069c100fd698000ce00b500016969c200016969f900016969c300 +0169698a00016969fa00016969d900016969f400016969c0000169698000 +ce008000f500016969f9000169698000cb00016969fa00016969d9000169 +69f400016969c0000169698000ce00c80008696900006969000000fb69fc +00fd69fd000e696900696969000000696969006969f600fc69fd00056969 +00696969f500fb69fb00016969fb00fc69fd00fb69070000696900696969 +f60008696900000069690000fb690a0000696900696969000000fb69fc00 +fd69fc00fb69070000696900696969ee0008696900000069690000fb6907 +0000696900006969f600fd6905006969000000fc69fd0006696900000069 +69f70008696900000069690000fb69fb00016969fa00016969f500086969 +00696969000000fb69fd00fb69fc00fc69f600fa69fd00fb69f600206969 +000069690000696900696969000000696969006969006969006969690000 +00fc69fb00fc69fd00fb698000d600c8000e696900006969000069690000 +006969fc00016969fc000c69690000696900696900006969f2000a696900 +0000696900006969f7000669690000006969fc00016969fc001569690069 +690000696900000069690000696969006969f7001e696900000069690069 +69000000696900006969690069690069690000006969fc00136969000000 +696900000069690000696900006969ef0015696900000069690069690000 +00696900696900006969f600f969fb000a6969000069690000006969f700 +0e696900000069690069690000006969fc00016969fa00016969f4001c69 +69000069690069690000006969006969000000696900006969006969f400 +016969fc000669690000006969f7001e6969000069690000006969000069 +6900696900006969000000696969006969fb001269690000006969006969 +0000696900000069698000d700c8000a6969000069690000006969f80001 +6969fc000c69690000696900696900006969f500fb69fd00056969000069 +69f7000669690000006969fc000c69690000006969000069690000f96907 +0000696900006969f700076969000000696900f9690b0000696900006969 +00006969f800136969000000696900000069690000696900006969ef0015 +69690000006969006969000000696900696900006969f600086969006900 +69690000fb6908000069690000006969f700076969006900696900f969fc +00016969fa00016969f4000669690000696900f9690000f9690600696900 +006969f400016969fc000669690000006969f70020696900006969000000 +696900006969006969000069690000006969000069690000fb6909000069 +69000069690000f9698000d700c80005696900006969fc00fd69fa000169 +69fc000c69690000696900696900006969f6000e69690000696900000069 +6900006969f7000669690000006969fc000e696900000069690000696900 +006969f900016969f3000969690000006969006969f900016969f900fd69 +fa00136969000000696900000069690000696900006969ef001569690000 +006969006969000000696900696900006969f60016696900690069690069 +6900006969000069690000006969f7000969690069006969006969f70001 +6969fa00016969f40008696900006969006969fa00016969fa0005696900 +006969f400016969fc000669690000006969f7001a696900006969000000 +696900006969006969000069690000006969fb0011696900006969000069 +6900006969000069698000d200c80005696900006969fa00016969fb0001 +6969fc000c69690000696900696900006969f6000e696900006969000000 +696900006969f7000669690000006969fc000e6969000000696900006969 +00006969f900016969f3000969690000006969006969f900016969f70001 +6969fb00136969000000696900000069690000696900006969fc00016969 +f5001569690000006969006969000000696900696900006969f600166969 +006900696900696900006969000069690000006969f70009696900690069 +69006969f700016969fa00016969f40008696900006969006969fa000169 +69fa0005696900006969f400016969fc000669690000006969f7001a6969 +00006969000000696900006969006969000069690000006969fb00116969 +000069690000696900006969000069698000d200c8000e69690000696900 +0069690000006969fc00016969fc000c69690000696900696900006969f6 +000e696900006969000000696900006969f7000669690000006969fc0017 +696900000069690000696900006969000000696900006969f20011696900 +696900006969000000696900006969fb000669690000006969fc00136969 +000000696900000069690000696900006969fc00016969f5001569690000 +006969006969000000696900696900006969f60016696900690069690069 +6900006969000069690000006969f700f969070069690000006969fc0001 +6969fa00016969f4001c6969000069690069690000006969006969000000 +696900696900006969f4000c69690069690069690000006969f7001a6969 +00006969000000696900006969006969000069690000006969fb00166969 +000069690000696900006969000069690000006969fc000169698000dd00 +c700fd69040069690000fb69fc00fc69fd00076969000069690000fb69f5 +00fd690a0069690000696900006969f600fb69fc00fc69fd00fd69040069 +690000fb69010000fc69f200fd69fc00fb69010000fc69fb00fb69fc00fc +69fd00fb69fd0005696900006969fc00016969f400fa69010000fb69fd00 +fd6902006969f700106969000000696900006969690069690000fa69f600 +076969006969000000fb69fc00fc69fc00fc69f500076969000069690000 +fb69fd00fb69fd00fd6902006969f400fd69fd00fb69f500fd6904006969 +0000fb69fd00fb69010000fc69fb00fd690c006969000069696900696900 +00fb69fb000169698000dd00a4000169698000f400016969ef00016969d2 +000169698600016969f7000169698000b600a800056969000069698000e2 +00016969d2000169698500016969fb00056969000069698000b600a700fc +698000e500fb69d500fb698500fc69fb00fc698000b50080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000800080008000d80080e280e280e280e2f8e2b000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +0080008000800080008000800080008000e80006c0c0000000c0c0f40001 +c0c0f20000c0f10001c0c0ea00fdc0f600fdc0e100fd95e200fd95e600fd +95800080008000d300e800fdc00300c0c0c0f40001c0c0f30001c0c0f100 +01c0c0e90001c0c0f50001c0c0e000019595e100019595ed00fb95fd0001 +9595800080008000d300e800f9c0e50001c0c0d80001c0c0f50001c0c0e0 +00019595e100019595ee000a9595000000959500009595800080008000d3 +00e800f9c0010000fcc0fb00fdc0fd0007c0c000c0c0c00000fac0fd00fc +c0fb00fdc0fd0008c0c000c0c0c0000000fbc0fc00fcc0f500fcc0fd0006 +c0c0000000c0c0ec001e9595000000959500000095950095950095959500 +0095950000009595000000fc95fd00fb9512000095950000009595009595 +00000095950000fc95fd0008959500959595000000fb950a000095950000 +0095950000fb95fd00fb95070000959500959595f500fb95100000959500 +95959500000095959500959580008000a700e80006c0c000c000c0c0fb00 +01c0c0fb0001c0c0fc000ac0c00000c0c0000000c0c0f80001c0c0fb0001 +c0c0fc0014c0c00000c0c000c0c0000000c0c00000c0c000c0c0f5000dc0 +c000c0c00000c0c0000000c0c0ec00379595000000959500000095950000 +959500009595000095950095950000009595009595000095950000009595 +009595000000959500959500fc9537000095950095950000009595950095 +950095950000009595009595000000959500959500000095950095950000 +0095950000959595009595f7001595950000009595000095959500959500 +95950000959580008000a600e80008c0c0000000c0c00000fbc0fb0001c0 +c0fc000ac0c00000c0c0000000c0c0fb00fbc0fb0001c0c0fc0006c0c000 +00c0c000f9c00600c0c00000c0c0f5000dc0c00000c0c000c0c0000000c0 +c0ec00249595000000959500000095950000959500009595000000959595 +0000009595000095950000f9950b009595000000959500959500fc952300 +009595000095950000959500009595009595000000959500959500950095 +9500009595fb00f995070000959500009595f70015959500000095950000 +9595000095950095950000959580008000a600e8000dc0c0000000c0c000 +c0c00000c0c0fb0001c0c0fc000ac0c00000c0c0000000c0c0fc0005c0c0 +0000c0c0fb0001c0c0fc0008c0c00000c0c000c0c0fa0005c0c00000c0c0 +f5000dc0c00000c0c000c0c0000000c0c0ec002695950000009595000000 +9595000095950000959500000095959500000095950000959500009595fa +000a9595000000959500959500fc950b000095950000959500009595fb00 +199595000000959500959500950095950000009595950000009595f90001 +9595f3000a9595000000959500009595fb000595950000959580008000a6 +00e8000dc0c0000000c0c000c0c00000c0c0fb0001c0c0fc000ac0c00000 +c0c0000000c0c0fc0005c0c00000c0c0fb0001c0c0fc0008c0c00000c0c0 +00c0c0fa0005c0c00000c0c0f5000dc0c00000c0c000c0c0000000c0c0ec +002695950000009595000000959500009595000095950000009595950000 +0095950000959500009595fa001a95950000009595009595009595950000 +0095950000959500009595fb000e959500000095950095950095009595fb +0005959500009595f900019595f3000a9595000000959500009595fb0005 +95950000959580008000a600e8000dc0c0000000c0c000c0c00000c0c0fb +0001c0c0fc0014c0c00000c0c0000000c0c000c0c000c0c00000c0c0fb00 +01c0c0fc0014c0c00000c0c000c0c0000000c0c000c0c00000c0c0f5000d +c0c00000c0c000c0c0000000c0c0ec003695950000009595000000959500 +009595000095950000959500959500009595000095950000959500000095 +950000959500959500009595f9000995950000959500009595fb00079595 +000000959500f995130095950000009595009595000000959500009595f8 +000f95950000009595000000959500009595fb0005959500009595fb0001 +c0c080008000ad00e80011c0c0000000c0c00000c0c0c000c0c0000000fc +c0fd0005c0c00000c0c0fc00fdc0fd00fdc00500c0c0000000fcc0fd0007 +c0c00000c0c00000fbc0fd00fdc00200c0c0f600fbc0fd00fac0ed00fc95 +fd00fa951900009595000095950095950000009595000095959500959500 +00fb95fc00fd95fc00fb95fd00fb95010000fc95fb00fb95fd0007959500 +9595000000fb95fd00fb95010000fc95f900019595fc00fb95010000fc95 +fb00fb95fb0001c0c080008000ad00830001c0c0e2000195958000fb0001 +959580008000a600840001c0c0e200019595800007000095950000959580 +008000a6008800fbc0e500fb958000fc00fc9580008000a5008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000801c801c801c801c801c801c801cee +1c01e2e2f21c01e2e2a21c01e2e2f21c01e2e2aa1c01e2e2ea1c01e2e284 +1c011c1cfce2d31cfde2e61c06e2e21c1c1ce2e2b71cfde2d81c00e2ba1c +01e2e2fb1cfbe2fc1c01e2e2f11cfde2e61cfde2f11cfde2e31c01e2e2f2 +1c01e2e2f11c00e2d91c01e2e2fa1c00e2ea1c01e2e2ea1c01e2e2f11c00 +e2d41cfde2eb1cfde2db1c061ce2e21c1ce2e2d31c01e2e2e61c06e2e21c +1c1ce2e2b61c01e2e2d91c01e2e2ba1c01e2e2fc1c0be2e21c1c1ce2e21c +1c1ce2e2f21c04e2e21ce2e2e61c01e2e2f01c01e2e2e31c01e2e2f21c01 +e2e2f21c01e2e2d91c01e2e2fb1c01e2e2ea1c01e2e2f71c01e2e2f51c01 +e2e2f21c01e2e2d31c01e2e2ea1c01e2e2db1c01e2e2fc1c00e2d31c01e2 +e2f31c01e2e2f51c06e2e21c1c1ce2e2b61c01e2e2d91c01e2e2bb1c01e2 +e2fb1c0ae2e21c1c1ce2e21c1ce2e2f11c04e2e21c1ce2e61c01e2e2f01c +01e2e2e41c01e2e2f21c01e2e2f11c01e2e2d21c01e2e2eb1c01e2e2f71c +01e2e2f51c01e2e2f11c01e2e2d31c01e2e2ea1c01e2e2db1c01e2e2f91c +fbe2121c1ce2e2e21ce2e21c1ce2e2e21ce2e21c1c1cfce2fd1c05e2e21c +e2e2e2fc1cfce2fd1cfbe2fb1c01e2e2f51c08e2e21c1c1ce2e21c1cfbe2 +fd1cfbe2f51cfce2fd1c10e2e21ce2e2e21c1ce2e21ce2e2e21c1c1cfbe2 +081c1ce2e21c1c1ce2e2f61c07e2e21c1ce2e21c1cfbe20a1c1ce2e21c1c +1ce2e21c1cfbe2f61cfae2fd1cfbe2f61cfde2051ce2e21c1c1cfbe20a1c +1ce2e21c1c1ce2e21c1cfbe2e21c01e2e2ec1c01e2e2fb1cfbe2071c1ce2 +e21ce2e2e2f51c07e2e21ce2e21c1c1cfbe2fb1c0ae2e21c1c1ce2e21ce2 +e2e2e51cfde2021ce2e2ef1cfae2fd1cfbe2f51cfde2091ce2e21ce2e21c +1ce2e2fc1cfde2fd1cfae2e31c01e2e2e51cfae2fd1cfbe2f51cfde2041c +e2e21c1cfbe2f51cfce2fc1cfce2fc1cfbe2fd1c05e2e21c1ce2e2df1c01 +e2e2fa1c07e2e21c1c1ce2e21cf9e2001cf9e2fb1c1ae2e21c1c1ce2e21c +1ce2e21c1ce2e21ce2e21c1ce2e21c1c1ce2e2ef1c16e2e21c1c1ce2e21c +e2e21c1c1ce2e21ce2e21c1c1ce2e2f31c22e2e21c1c1ce2e2e21ce2e21c +1ce2e2e21ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e2f61c1de2e21ce2 +e21c1ce2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e2f51c01e2 +e2fc1c06e2e21c1c1ce2e2f71cf9e2171ce2e21c1c1ce2e21ce2e21c1c1c +e2e21ce2e21c1c1ce2e2e41c01e2e2ec1cfce2fd1c0ee2e21c1c1ce2e21c +1ce2e2e21ce2e2f61cfde20a1ce2e21ce2e21c1c1ce2e2fc1c01e2e2fc1c +05e2e21c1ce2e2e71c05e2e21c1ce2e2ec1c01e2e2fc1c06e2e21c1c1ce2 +e2f71c0de2e21c1ce2e21c1ce2e21c1ce2e2fb1c01e2e2fb1c01e2e2e21c +01e2e2e21c01e2e2fc1c06e2e21c1c1ce2e2f71c0ee2e21c1ce2e21c1ce2 +e21c1c1ce2e2f61c04e2e21ce2e2fa1c11e2e21c1ce2e21c1c1ce2e21c1c +e2e21ce2e2de1c01e2e2fa1c18e2e21c1c1ce2e21ce2e21ce21ce2e21ce2 +e21ce21ce2e21c1cfbe2fd1c11e2e21c1ce2e21ce2e21c1ce2e21c1c1ce2 +e2eb1c0ae2e21c1c1ce2e21c1ce2e2fb1cf9e2f61cfbe2fd1c1de2e21c1c +e2e21c1ce2e21c1ce2e21ce2e21c1c1ce2e21ce2e21ce21ce2e2f61cfce2 +fd1cf9e20b1ce2e21c1c1ce2e21c1ce2e2f11c01e2e2fc1c06e2e21c1c1c +e2e2f71c17e2e21ce21ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e21cf9 +e2e41c01e2e2eb1c01e2e2fc1c0ee2e21c1c1ce2e21c1ce2e21c1ce2e2f6 +1c06e2e21c1ce2e21cf9e2fc1c01e2e2fc1c05e2e21c1ce2e2e71c05e2e2 +1c1ce2e2ec1c01e2e2fc1c06e2e21c1c1ce2e2f71c0de2e21c1ce2e21c1c +e2e21c1ce2e2fb1c01e2e2fb1c01e2e2e31c01e2e2fb1cf9e2ed1c01e2e2 +fc1c06e2e21c1c1ce2e2f71c0ee2e21c1ce2e21c1ce2e21c1c1ce2e2f61c +07e2e21c1ce2e21c1cfbe2031c1ce2e2f91cfce2dd1c01e2e2fa1c2de2e2 +1c1c1ce2e21ce2e21ce21ce2e21ce2e21ce21ce2e21ce2e21c1ce2e21c1c +1ce2e21c1ce2e21ce2e21c1ce2e2fc1cfde2ed1c11e2e21c1c1ce2e21c1c +1ce2e2e21c1c1ce2e2f21c0ae2e21c1ce2e21c1c1ce2e2fa1c01e2e2fb1c +0ee2e21c1c1ce2e21ce2e21ce21ce2e2f61cfce2fd1c01e2e2fa1c0ce2e2 +1c1c1ce2e21c1c1ce2e2e2f31c01e2e2fc1c06e2e21c1c1ce2e2f71c19e2 +e21ce21ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e2df1c01e2e2 +eb1c01e2e2fc1c0ae2e21c1c1ce2e21c1ce2e2f21c08e2e21c1ce2e21ce2 +e2f71c01e2e2fc1c05e2e21c1ce2e2e71c05e2e21c1ce2e2ec1c01e2e2fc +1c06e2e21c1c1ce2e2f71c0de2e21c1ce2e21c1ce2e21c1ce2e2fb1c01e2 +e2fb1c01e2e2e21c01e2e2e21c01e2e2fc1c06e2e21c1c1ce2e2f71c0ee2 +e21c1ce2e21c1ce2e21c1c1ce2e2f61c10e2e21c1ce2e21ce2e21c1ce2e2 +1c1ce2e2f91cfce2dd1c01e2e2fc1c2fe21ce2e21c1c1ce2e21ce2e21ce2 +1ce2e21ce2e21ce21ce2e21ce2e21c1ce2e21c1c1ce2e21c1ce2e21ce2e2 +1c1ce2e2fa1c01e2e2fb1c01e2e2f51c06e2e21c1c1ce2e2fb1c05e2e21c +1ce2e2f21c0ae2e21c1ce2e21c1c1ce2e2fa1c01e2e2fb1c0ee2e21c1c1c +e2e21ce2e21ce21ce2e2f61c08e2e21ce2e21c1ce2e2fa1c06e2e21c1c1c +e2e2fb1c01e2e2f41c01e2e2fc1c06e2e21c1c1ce2e2f71c19e2e21ce21c +e2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e2f71c01e2e2d31c01e2 +e2fc1c0ae2e21c1c1ce2e21c1ce2e2f21c08e2e21c1ce2e21ce2e2f71c01 +e2e2fc1c05e2e21c1ce2e2fc1c01e2e2ed1c05e2e21c1ce2e2ec1c01e2e2 +fc1c06e2e21c1c1ce2e2f71c0de2e21c1ce2e21c1ce2e21c1ce2e2fb1c01 +e2e2fb1c01e2e2f91c01e2e2ea1c01e2e2e31c01e2e2fc1c06e2e21c1c1c +e2e2f71c0ee2e21c1ce2e21c1ce2e21c1c1ce2e2f61c10e2e21c1ce2e21c +e2e21c1ce2e21c1ce2e2f91c04e2e21ce2e2de1c3e1ce2e21c1ce2e21ce2 +e21c1c1ce2e21ce2e21ce21ce2e21ce2e21ce21ce2e21ce2e21c1ce2e21c +1c1ce2e21c1ce2e21ce2e21c1ce2e21c1ce2e21c1c1ce2e2fc1c01e2e2f5 +1c16e2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e2f71c0ae2e2 +1c1ce2e21c1c1ce2e2fa1c01e2e2fb1c07e2e21c1c1ce2e21cf9e2f61c1d +e2e21c1ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e21ce2e21c1c1ce2e2 +f51c0ce2e21ce2e21ce2e21c1c1ce2e2f71c1ee2e21ce21ce2e21ce2e21c +1c1ce2e21c1ce2e21ce2e21c1ce2e21c1c1ce2e2fc1c01e2e2ea1c01e2e2 +eb1c01e2e2fc1c0ae2e21c1c1ce2e21c1ce2e2f21c0de2e21c1ce2e21ce2 +e21c1c1ce2e2fc1c01e2e2fc1c05e2e21c1ce2e2fc1c01e2e2ed1c05e2e2 +1c1ce2e2ec1c0ce2e21ce2e21ce2e21c1c1ce2e2f71c0de2e21c1ce2e21c +1ce2e21c1ce2e2fb1c01e2e2fb1c04e2e21ce2e2fc1c01e2e2e91c01e2e2 +e41c0ce2e21ce2e21ce2e21c1c1ce2e2f71c0ee2e21c1ce2e21c1ce2e21c +1c1ce2e2f61c1de2e21c1ce2e21ce2e21c1ce2e21c1ce2e21c1c1ce2e21c +1ce2e21c1ce2e2fc1c01e2e2e51c011c1cfce2fd1cfbe22a1c1ce2e21c1c +1ce2e21ce2e21c1c1ce2e21c1ce2e2e21ce2e21c1ce2e21c1ce2e21c1ce2 +e2e21ce2e21c1cfbe2ed1cfbe2fd1cfbe2fd1cfbe2f51cfde2031ce2e21c +fce2fc1cfce2fb1cfbe2fd1c04e2e21ce2e2f61cfde2051c1ce2e21c1cfb +e2fd1cfae2011c1cfbe2f31cfde2fd1cfbe2f61c08e2e21c1c1ce2e21c1c +fbe2fc1cfde2fc1cfbe2fb1c01e2e2ea1c01e2e2ec1cfce2fc1cfbe2011c +1cfce2f41cfde2051c1ce2e21c1cfbe2fc1cfce2fd1cfbe2fb1c01e2e2ec +1cfbe2eb1cfde2fd1cfbe2f51cfbe2fd1cfde2051ce2e21c1c1cfce2fb1c +fde2fb1c01e2e2e81c01e2e2e41cfde2fd1cfbe2f51cfbe2fd1cfbe2f51c +fbe2fd1cfde2041ce2e21c1cfbe2081c1ce2e2e21c1ce2e2fc1c01e2e2e5 +1c801ccb1c01e2e2b51c01e2e29b1c01e2e2f91c01e2e2e81c01e2e2d21c +01e2e2e41c01e2e2b01c01e2e2ae1c801ccc1c01e2e2801ccd1c01e2e2df +1c01e2e2d21c01e2e2961c05e2e21c1ce2e2ae1c801cd01cfbe2801ccd1c +fce2e11cfce2d41cfce2961cfce2ad1c801c801c801c801c801c80008000 +80008000800080008000800080008000ed0000c0d400fdc0d30006c0c000 +0000c0c0dc00fdc0f600fbc0da0000c0b400fac0fb0001c0c0f500fdc0f8 +0000c0f10000c0e900fdc0f400fdc0fb00fdc0d300fdc0fa0001c0c0f500 +fdc0eb00fcc0f100fdc0fb0000c0f10000c0d400fdc0eb00fdc0d300ee00 +fdc0d40001c0c0d30006c0c0000000c0c0db0001c0c0f50004c0c000c0c0 +dc0001c0c0b30005c0c00000c0c0fc0001c0c0f40001c0c0f90001c0c0f2 +0001c0c0ea0004c0c000c0c0f40001c0c0fa0001c0c0d20001c0c0fa0001 +c0c0f40001c0c0ea0001c0c0f10009c0c000c0c0000000c0c0f20001c0c0 +d30001c0c0ea0001c0c0d300ef0004c0c000c0c0d50001c0c0e00001c0c0 +f50006c0c0000000c0c0db0001c0c0f50005c0c00000c0c0dd0001c0c0b3 +0005c0c00000c0c0ee0001c0c0f90001c0c0f20001c0c0ea0004c0c00000 +c0f40001c0c0fa0001c0c0d20001c0c0ec0001c0c0f80001c0c0f40001c0 +c0f10009c0c00000c0000000c0c0f20001c0c0d30001c0c0ea0001c0c0d3 +00f00018c0c0000000c0c000c0c000c0c0c00000c0c000c0c0c0000000fb +c0080000c0c0000000c0c0f60007c0c00000c0c00000fbc00a0000c0c000 +0000c0c00000fbc0fb0001c0c0f5000dc0c0000000c0c000c0c000c0c0c0 +f500fcc0fd0005c0c000c0c0c0fc00fcc0f50007c0c00000c0c00000fbc0 +0f0000c0c0000000c0c000c0c000c0c0c0f600fac0fd00fbc0f600fdc005 +00c0c0000000fbc00a0000c0c0000000c0c00000fbc0e5000bc0c00000c0 +c0000000c0c0c0fc00fdc00b00c0c00000c0c000c0c00000fac0f600fac0 +fd00fbc0f40001c0c0fb00fbc0fb0001c0c0fa0001c0c0fc00fbc0080000 +c0c0000000c0c0f600fcc0f20001c0c0fb00fdc0fd000ec0c000c0c0c000 +0000c0c00000c0c0fc0001c0c0f40001c0c0fa00fbc0fc0001c0c0fc00fa +c0f600fac0fd00fbc0f500fdc00400c0c00000fbc0f500fcc0fc00fcc0fc +00fbc0fd0005c0c00000c0c0d700f00026c0c0000000c0c00000c0c0c000 +c0c00000c0c0c000c0c000c0c0000000c0c000c0c0000000c0c0f6001dc0 +c000c0c00000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0ef +000ec0c0000000c0c00000c0c00000c0c0f30011c0c0000000c0c00000c0 +c00000c0c000c0c0f5001dc0c00000c0c000c0c0000000c0c000c0c00000 +00c0c00000c0c00000c0c0f50001c0c0fc0006c0c0000000c0c0f700f9c0 +1700c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0e600fbc0fb +0018c0c0000000c0c00000c0c0000000c0c0c000c0c0000000c0c0f20001 +c0c0fc0006c0c0000000c0c0f600fcc0fd0006c0c0000000c0c0fc0001c0 +c0fa0013c0c0000000c0c0000000c0c000c0c0000000c0c0f30001c0c0f3 +0001c0c0fa0001c0c0fc000cc0c00000c0c00000c0c000c0c0ed0001c0c0 +fb0008c0c0000000c0c00000fcc0fb0001c0c0f20001c0c0fc0006c0c000 +0000c0c0f7000ec0c00000c0c00000c0c0000000c0c0f60004c0c000c0c0 +fa0011c0c00000c0c0000000c0c00000c0c000c0c0d600f000f9c01f0000 +c0c00000c0c00000c0c00000c0c000c0c0000000c0c000c0c000c000c0c0 +f600fcc0fd00f9c00b00c0c0000000c0c00000c0c0eb000ec0c0000000c0 +c00000c0c00000c0c0f600fbc0fd000cc0c00000c0c000c0c00000c0c0f5 +001dc0c00000c0c000c0c0000000c0c000c0c000c000c0c00000c0c00000 +c0c0f50001c0c0fc0006c0c0000000c0c0f70017c0c000c000c0c000c0c0 +000000c0c000c0c0000000c0c000f9c0e60004c0c000c0c0fb0018c0c000 +0000c0c00000c0c0000000c0c00000c0c0000000c0c0f20001c0c0fc0006 +c0c0000000c0c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa0013 +c0c0000000c0c0000000c0c000c0c000c000c0c0f600fbc0f30001c0c0fa +0001c0c0fc0007c0c00000c0c00000fcc0ec0001c0c0fb00f9c0fd0001c0 +c0fa0001c0c0f20001c0c0fc0006c0c0000000c0c0f7000ec0c00000c0c0 +0000c0c0000000c0c0f60007c0c00000c0c00000fbc0030000c0c0f900fc +c0d500f0000ac0c0000000c0c00000c0c0fa0001c0c0fb000ec0c0000000 +c0c000c0c000c000c0c0f600fcc0fd0001c0c0fa000cc0c0000000c0c000 +0000c0c0c0ed000ec0c0000000c0c00000c0c00000c0c0f70015c0c00000 +c0c0000000c0c00000c0c000c0c00000c0c0f5001dc0c00000c0c000c0c0 +000000c0c000c0c000c000c0c00000c0c00000c0c0f50001c0c0fc0006c0 +c0000000c0c0f70019c0c000c000c0c000c0c0000000c0c000c0c0000000 +c0c000c0c0e10005c0c00000c0c0fc0018c0c0000000c0c00000c0c00000 +00c0c00000c0c0000000c0c0f20001c0c0fc0006c0c0000000c0c0f50001 +c0c0fc0006c0c0000000c0c0fc0001c0c0fa0013c0c0000000c0c0000000 +c0c000c0c000c000c0c0f70005c0c00000c0c0f30001c0c0fa0001c0c0fc +0007c0c00000c0c00000fcc0ec0001c0c0fb0001c0c0f80001c0c0fa0001 +c0c0f20001c0c0fc0006c0c0000000c0c0f7000ec0c00000c0c00000c0c0 +000000c0c0f60010c0c00000c0c000c0c00000c0c00000c0c0f900fcc0d5 +00f0000ac0c0000000c0c00000c0c0fa0001c0c0fb000ec0c0000000c0c0 +00c0c000c000c0c0f60008c0c000c0c00000c0c0fa0006c0c0000000c0c0 +fb0001c0c0fb0001c0c0f5000ec0c0000000c0c00000c0c00000c0c0f700 +15c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f5001dc0c00000 +c0c000c0c0000000c0c000c0c000c000c0c00000c0c00000c0c0f50001c0 +c0fc0006c0c0000000c0c0f70019c0c000c000c0c000c0c0000000c0c000 +c0c0000000c0c000c0c0e10005c0c00000c0c0fc0018c0c0000000c0c000 +00c0c0000000c0c00000c0c0000000c0c0f20001c0c0fc0006c0c0000000 +c0c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa0013c0c0000000 +c0c0000000c0c000c0c000c000c0c0f70005c0c00000c0c0f30001c0c0fa +0001c0c0fc000cc0c00000c0c00000c0c000c0c0fb0001c0c0f40008c0c0 +000000c000c0c0f80001c0c0fa0001c0c0f20001c0c0fc0006c0c0000000 +c0c0f7000ec0c00000c0c00000c0c0000000c0c0f60010c0c00000c0c000 +c0c00000c0c00000c0c0f90004c0c000c0c0d600f0000ac0c0000000c0c0 +0000c0c0fa0001c0c0fb0007c0c0000000c0c000f9c0f6001dc0c00000c0 +c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0 +f5000ec0c0000000c0c00000c0c00000c0c0f70015c0c00000c0c0000000 +c0c00000c0c000c0c00000c0c0f5000ec0c000c0c00000c0c0000000c0c0 +00f9c0070000c0c00000c0c0f5000cc0c000c0c000c0c0000000c0c0f700 +1ec0c000c000c0c000c0c0000000c0c00000c0c000c0c00000c0c0000000 +c0c0fc0001c0c0ec0005c0c00000c0c0fc001bc0c0000000c0c00000c0c0 +000000c0c00000c0c0000000c0c000c0c0f5000cc0c000c0c000c0c00000 +00c0c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa000cc0c00000 +00c0c0000000c0c000f9c0f70005c0c00000c0c0f30001c0c0fa0001c0c0 +fc000dc0c00000c0c00000c0c00000c0c0fc0001c0c0f40012c0c00000c0 +c000c0c0000000c0c0000000c0c0fa0004c0c000c0c0f5000cc0c000c0c0 +00c0c0000000c0c0f7000ec0c00000c0c00000c0c0000000c0c0f6001dc0 +c00000c0c000c0c00000c0c00000c0c0000000c0c00000c0c00000c0c0fc +0001c0c0dd00f00007c0c0000000c0c000fcc0fc00fcc0fb00fbc0fd0004 +c0c000c0c0f600fdc0050000c0c00000fbc0fd00fac0010000fbc0ed00fb +c0fd00fbc0f500fdc01200c0c00000c0c00000c0c00000c0c0c000c0c0f7 +00fbc0fc00fbc0fd000dc0c000c0c0000000c0c00000c0c0f400fdc0fd00 +fbc0f60008c0c0000000c0c00000fbc0fc00fdc0fc00fbc0fb0001c0c0ed +00fdc0060000c0c0000000fcc0fd00fbc0080000c0c0c00000c0c0fc00fd +c0f300fdc0fd00fbc0f500fcc0fc00fbc0fc00fcc0fc00fcc0fd00fbc0fd +0004c0c000c0c0f500fdc00200c0c0f500fcc0fc00fcc0fd0012c0c00000 +c0c000c0c0c00000c0c0000000c0c0f400f9c0010000fbc0fd00fcc0fa00 +fdc0f300fdc0fd00fbc0f500fbc0fd00fbc0f500fbc0fd00fdc00400c0c0 +0000fbc0080000c0c0c00000c0c0fc0001c0c0dd00ab0001c0c0de0001c0 +c08000c70001c0c08000920001c0c0a600ac0001c0c0dd0001c0c08000cb +0005c0c00000c0c08000960005c0c00000c0c0a600b000fbc0dd00fcc080 +00cb00fcc080009400fcc0a5008000800080008000800080008000800080 +00800080008000800080008000f8000bc0c0000000c0c0000000c0c0f200 +fdc0ec00fbc0fc0001c0c0f10000c0f90001c0c0dd00fac0fc0001c0c0f1 +0001c0c0f20000c0f200fcc0fc0001c0c0ec000bc0c0000000c0c0000000 +c0c0f10001c0c0b400fbc0fc0001c0c0f10001c0c0fa0000c0bc00fdc0f1 +00fcc0fb00fdc0f400fdc0f20000c0f200fcc0f600fdc0f80001c0c0f200 +00c0da00fdc0fa0001c0c0f20000c0dc00f80006c0c0000000c0c0fc0001 +c0c0f20001c0c0ed0006c0c0000000c0c0fc0001c0c0f30001c0c0f90001 +c0c0dc0005c0c00000c0c0fc0001c0c0f20001c0c0f30001c0c0f30005c0 +c00000c0c0fc0001c0c0ed00fdc00300c0c0c0fc0001c0c0f20001c0c0b5 +0006c0c0000000c0c0fc0001c0c0f20001c0c0fb0001c0c0bb0001c0c0f1 +0001c0c0f80001c0c0f30001c0c0f30001c0c0f00001c0c0f50001c0c0f8 +0001c0c0f30001c0c0d90001c0c0fa0001c0c0f30001c0c0dc00f80006c0 +c0000000c0c0fb0001c0c0f30001c0c0ed0006c0c0000000c0c0fb0001c0 +c0f40001c0c0d30005c0c00000c0c0fb0001c0c0e40001c0c0f40001c0c0 +fc0000c0fb0001c0c0ee00f9c0fb0001c0c0a60006c0c0000000c0c0fb00 +01c0c0ec0001c0c0ee0000c0ce0001c0c0f10001c0c0f80001c0c0f30001 +c0c0f30001c0c0f00001c0c0f50001c0c0e90001c0c0d90001c0c0eb0001 +c0c0dc00f80006c0c0000000c0c0fb0004c0c0000000fbc0fb000ac0c000 +0000c0c000c0c0c0f60006c0c0000000c0c0fb000bc0c00000c0c000c0c0 +c00000fac0fc00fdc0fc00fbc00a0000c0c000c0c0c0000000fbc0f50005 +c0c00000c0c0fb0009c0c00000c0c000c0c0c0fc00fdc0fd0007c0c000c0 +c0c00000fac0f60001c0c0f60004c0c0000000fbc0f600f9c0fb0004c0c0 +000000fcc0fb00fdc0fd0005c0c000c0c0c0f500fbc0fd00fbc00a0000c0 +c000c0c0c0000000fbc0fd00fbc0070000c0c000c0c0c0f60006c0c00000 +00c0c0fb0009c0c00000c0c00000c0c0fc00fdc0fd00fac0f10003c0c000 +00fac0010000fbc0fd00fbc0fd00fcc0fd0008c0c000c0c0c0000000fbc0 +fd0004c0c000c0c0f40001c0c0fa00fcc0fd00fbc0fb0001c0c0fc00fbc0 +010000fac0fd00fbc0fa0004c0c0000000fac0060000c0c000c0c0fc00fd +c0fc00fbc0010000fac0fd00fbc0100000c0c000c0c0c00000c0c0000000 +c0c0f40001c0c0fb00fdc0fc00fbc0010000fac0de00f800f9c0fb000ac0 +c00000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0c0f70006c0c000 +0000c0c0fb000fc0c0000000c0c00000c0c0000000c0c0f9001bc0c00000 +00c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f600fbc0fa00 +0ac0c0000000c0c0c000c0c0fc0001c0c0fc000ac0c00000c0c0000000c0 +c0f40001c0c0f6000ac0c00000c0c0000000c0c0f70006c0c000c000c0c0 +fb0001c0c0fa0001c0c0fb0001c0c0fc0005c0c00000c0c0f7002ec0c000 +0000c0c000c0c0000000c0c00000c0c0c000c0c000c0c0000000c0c000c0 +c0000000c0c00000c0c00000c0c0f70006c0c0000000c0c0fb0009c0c000 +00c0c00000c0c0fb0001c0c0fb0001c0c0f00001c0c0f6000ec0c0000000 +c0c000c0c0000000c0c0fb001ac0c0000000c0c0c000c0c000c0c0000000 +c0c00000c0c0c000c0c0f50001c0c0fb000dc0c000c0c00000c0c0000000 +c0c0fc0010c0c0000000c0c0000000c0c0000000c0c0fc0006c0c0000000 +c0c0fb0001c0c0f500fdc00200c0c0fc0010c0c0000000c0c0000000c0c0 +000000c0c0fc0016c0c0000000c0c00000c0c0c000c0c000c0c0000000c0 +c0f40001c0c0fa0010c0c0000000c0c0000000c0c0000000c0c0dc00f800 +06c0c0000000c0c0fb0003c0c00000f9c0fc0001c0c0fc0005c0c00000c0 +c0f70006c0c0000000c0c0fb000fc0c0000000c0c00000c0c0000000c0c0 +f90017c0c0000000c0c0000000c0c00000c0c00000c0c00000c0c0f20001 +c0c0f7000ac0c0000000c0c00000c0c0fc0001c0c0fc000ac0c00000c0c0 +000000c0c0f40002c0c000fcc0fb000ac0c00000c0c0000000c0c0f70006 +c0c0000000c0c0fb0004c0c0000000fbc0fb0001c0c0fc0005c0c00000c0 +c0f60001c0c0fb0001c0c0f90006c0c00000c0c000f9c00000f9c0070000 +c0c00000c0c0f70006c0c0000000c0c0fb0009c0c00000c0c00000c0c0fb +0001c0c0fb0001c0c0f10001c0c0f40001c0c0fb00f9c0010000fbc0fd00 +08c0c00000c0c000c0c0f90005c0c00000c0c0f50001c0c0fc0007c0c000 +00c0c00000f9c0fc0004c0c0000000f9c0fd0001c0c0fc00f9c0fb0001c0 +c0f50005c0c00000c0c0fc0001c0c0fc0001c0c0f90001c0c0fc0016c0c0 +000000c0c00000c0c00000c0c000c0c0000000c0c0f40001c0c0fa0001c0 +c0fc0001c0c0f90001c0c0dc00f80006c0c0000000c0c0fb0005c0c00000 +c0c0f70001c0c0fc0005c0c00000c0c0f70006c0c0000000c0c0fb000fc0 +c0000000c0c00000c0c0000000c0c0f90019c0c0000000c0c0000000c0c0 +0000c0c00000c0c0000000c0c0c0f40001c0c0f70006c0c0000000c0c0f8 +0001c0c0fc000ac0c00000c0c0000000c0c0f40006c0c0000000c0c0fb00 +0ac0c00000c0c0000000c0c0f70006c0c0000000c0c0fb0009c0c00000c0 +c00000c0c0fb0001c0c0fc0005c0c00000c0c0f500fdc0fd0001c0c0f900 +01c0c0fb0001c0c0fa0001c0c0f90005c0c00000c0c0f70006c0c0000000 +c0c0fb0009c0c00000c0c00000c0c0fb0001c0c0fb0001c0c0f20001c0c0 +fb00fac0fd00fdc0fd0001c0c0fa000ac0c00000c0c0000000c0c0fb0001 +c0c0f90005c0c00000c0c0f50001c0c0fc0009c0c00000c0c00000c0c0f7 +0006c0c0000000c0c0f80001c0c0fc0001c0c0f60004c0c0000000fac007 +0000c0c00000c0c0fc0001c0c0fb00fdc0fb0001c0c0fc000ac0c0000000 +c0c00000c0c0fb0006c0c0000000c0c0f40001c0c0fa0001c0c0fb00fdc0 +fb0001c0c0dc00f80006c0c0000000c0c0fb0005c0c00000c0c0f70001c0 +c0fc0005c0c00000c0c0f70006c0c0000000c0c0fb000fc0c0000000c0c0 +0000c0c0000000c0c0f90013c0c0000000c0c0000000c0c00000c0c00000 +c0c0fb0001c0c0f50001c0c0f70006c0c0000000c0c0f80001c0c0fc000a +c0c00000c0c0000000c0c0f40006c0c0000000c0c0fb000ac0c00000c0c0 +000000c0c0f70006c0c0000000c0c0fb0009c0c00000c0c00000c0c0fb00 +01c0c0fc0005c0c00000c0c0f30005c0c00000c0c0f90001c0c0fb0001c0 +c0fa0001c0c0f90005c0c00000c0c0f70006c0c000c000c0c0fb0009c0c0 +0000c0c00000c0c0fb0001c0c0fb0001c0c0f30001c0c0ef0005c0c00000 +c0c0fa000ac0c00000c0c0000000c0c0fb0001c0c0f90005c0c00000c0c0 +f50001c0c0fc0009c0c00000c0c00000c0c0f70006c0c0000000c0c0f800 +01c0c0fc0001c0c0f60001c0c0f50005c0c00000c0c0fc0001c0c0f90001 +c0c0fc0001c0c0fc000ac0c0000000c0c00000c0c0fb0006c0c0000000c0 +c0f40001c0c0fa0001c0c0f90001c0c0fc0001c0c0dc00f80006c0c00000 +00c0c0fc000bc0c0000000c0c0000000c0c0fc0001c0c0fc0005c0c00000 +c0c0f70006c0c0000000c0c0fc0001c0c0fc000dc0c00000c0c0000000c0 +c000c0c0fc001bc0c0000000c0c0000000c0c00000c0c00000c0c000c0c0 +000000c0c0f60001c0c0f80001c0c0fc0001c0c0f80001c0c0fc000dc0c0 +0000c0c0000000c0c000c0c0f60005c0c00000c0c0fc000bc0c0000000c0 +c0000000c0c0f70006c0c0000000c0c0fc000ac0c0000000c0c00000c0c0 +fb0001c0c0fc0005c0c00000c0c0f70012c0c0000000c0c000c0c0000000 +c0c00000c0c0fb0016c0c0000000c0c000c0c0000000c0c00000c0c00000 +c0c0f70002c0c000fcc0fc000ac0c0000000c0c00000c0c0fb0001c0c0fb +0004c0c000c0c0f70001c0c0f2001ac0c0000000c0c000c0c0000000c0c0 +00c0c00000c0c0000000c0c0fb000ec0c0000000c0c00000c0c00000c0c0 +f50001c0c0fc000ec0c00000c0c00000c0c0000000c0c0fc001bc0c00000 +00c0c0000000c0c0000000c0c000c0c000c0c0000000c0c0fb0001c0c0f5 +0005c0c00000c0c0fc001fc0c0000000c0c0000000c0c0000000c0c000c0 +c000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0f40001c0c0fa00 +13c0c0000000c0c0000000c0c0000000c0c000c0c0df00f8000bc0c00000 +00c0c0000000c0c0fb00fbc0fc00fcc0fd00fbc0f500fbc0fc0001c0c0fb +00fbc0fb00fdc0fc00fcc0fd00fbc0fd0007c0c00000c0c00000fbc0f600 +fcc0fa0001c0c0fc00fcc0fa00fcc0fd0005c0c00000c0c0fc00fdc0f400 +fdc00600c0000000c0c0fb00fbc0f6000bc0c0000000c0c0000000c0c0fb +00fdc00500c0c0000000fcc0fd0005c0c00000c0c0f600fbc0fd00fbc001 +0000fcc0fb00fbc0fd00fbc0fd0005c0c00000c0c0f600fbc0fc0001c0c0 +fb00fdc00500c0c0000000fcc0fb00fdc0f60000c0f000fbc0fd00fbc0fd +00fdc00300c0c000fcc0fb00fbc0080000c0c0c00000c0c0f500fcc0fd00 +fdc00400c0c00000fbc0fc00fcc0fd00fbc0fb00fdc0fd00fbc0fc00fcc0 +f600fdc0060000c0c0000000fcc0fd00fbc0fb00fdc0fd00fbc0010000fc +c0fb00fac0f500fcc0fc00fcc0fd00fbc0fb00fdc0de00d70001c0c0e200 +01c0c08000870001c0c08000910001c0c0b700d70001c0c0e20001c0c080 +008700fdc08000930001c0c0b600d800fcc0e400fcc08000800080009c00 +fbc0b50080008000800080008000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 43666 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 43666 a -30 45216 a +SDict begin H.S end + -30 +45216 a -30 45216 a +SDict begin 18.2 H.A end + -30 45216 a -30 45216 a +SDict begin [ /View [/XYZ H.V] /Dest (4797) cvn H.B /DEST pdfmark end + -30 45216 +a 2015 x FU(Y)-170 b(ou)387 b(may)g(w)-15 b(ant)386 b(to)i(specify)f(a) +g(site)g(for)21562 47231 y +SDict begin H.S end + 21562 47231 a 21562 47231 +a +SDict begin 18.2 H.A end + 21562 47231 a 21562 47231 a +SDict begin [ /View [/XYZ H.V] /Dest (4798) cvn H.B /DEST pdfmark end + 21562 47231 a FP(lynx)g +FU(to)h(open)f(to:)-30 49116 y +SDict begin H.S end + -30 49116 a -30 49116 +a +SDict begin 14.56 H.A end + -30 49116 a -30 49116 a +SDict begin [ /View [/XYZ H.V] /Dest (4799) cvn H.B /DEST pdfmark end + -30 49116 a -30 49116 a +SDict begin H.S end + -30 +49116 a -30 49116 a +SDict begin 14.56 H.A end + -30 49116 a -30 49116 a +SDict begin [ /View [/XYZ H.V] /Dest (4800) cvn H.B /DEST pdfmark end + -30 49116 +a 1276 x FJ(\045)1309 50392 y +SDict begin H.S end + 1309 50392 a 1309 50392 +a +SDict begin 14.56 H.A end + 1309 50392 a 1309 50392 a +SDict begin [ /View [/XYZ H.V] /Dest (4801) cvn H.B /DEST pdfmark end + 1309 50392 a FH(lynx)743 +b(http://www.slackware.com)-30 52110 y +SDict begin H.S end + -30 52110 a -30 +52110 a +SDict begin 18.2 H.A end + -30 52110 a -30 52110 a +SDict begin [ /View [/XYZ H.V] /Dest (4802) cvn H.B /DEST pdfmark end + -30 52110 a -30 52110 +a +SDict begin H.S end + -30 52110 a -30 52110 a +SDict begin 18.2 H.A end + -30 52110 a -30 52110 a +SDict begin [ /View [/XYZ H.V] /Dest (4803) cvn H.B /DEST pdfmark end + -30 +52110 a 1847 x FP(lynx)513 b FU(prints)g(the)g(command)g(k)-15 +b(e)-23 b(ys)512 b(and)h(what)g(the)-23 b(y)513 b(do)h(at)f(the)g +(bottom)f(of)i(the)f(screen.)h(The)-30 55971 y(up)367 +b(and)g(do)-39 b(wn)367 b(arro)-39 b(w)368 b(k)-15 b(e)-23 +b(ys)366 b(mo)-23 b(v)g(e)366 b(around)h(the)g(document,)32939 +55971 y +SDict begin H.S end + 32939 55971 a 32939 55971 a +SDict begin 18.2 H.A end + 32939 55971 a 32939 +55971 a +SDict begin [ /View [/XYZ H.V] /Dest (4804) cvn H.B /DEST pdfmark end + 32939 55971 a Fv(Enter)f FU(selects)h(the)g(highlighted)-30 +57986 y(link,)333 b(and)g(the)7900 57986 y +SDict begin H.S end + 7900 57986 +a 7900 57986 a +SDict begin 18.2 H.A end + 7900 57986 a 7900 57986 a +SDict begin [ /View [/XYZ H.V] /Dest (4805) cvn H.B /DEST pdfmark end + 7900 57986 a +Fv(left)929 b(arrow)333 b FU(goes)f(back)i(to)e(the)h(pre)-39 +b(vious)333 b(page.)g(T)-124 b(yping)41695 57986 y +SDict begin H.S end + 41695 +57986 a 41695 57986 a +SDict begin 18.2 H.A end + 41695 57986 a 41695 57986 a +SDict begin [ /View [/XYZ H.V] /Dest (4806) cvn H.B /DEST pdfmark end + 41695 +57986 a Fv(d)333 b FU(will)f(do)-39 b(wnload)-30 60001 +y(the)369 b(currently)g(selected)f(\002le.)i(The)19074 +60001 y +SDict begin H.S end + 19074 60001 a 19074 60001 a +SDict begin 18.2 H.A end + 19074 60001 a 19074 +60001 a +SDict begin [ /View [/XYZ H.V] /Dest (4807) cvn H.B /DEST pdfmark end + 19074 60001 a Fv(g)f FU(command)f(brings)g(up)h(the)g(Go)g +(prompt,)g(where)g(you)g(can)-30 62015 y(gi)-39 b(v)-23 +b(e)2964 62015 y +SDict begin H.S end + 2964 62015 a 2964 62015 a +SDict begin 18.2 H.A end + 2964 62015 +a 2964 62015 a +SDict begin [ /View [/XYZ H.V] /Dest (4808) cvn H.B /DEST pdfmark end + 2964 62015 a FP(lynx)387 b FU(a)h(URL)f(to)g(open.)-30 +63126 y +SDict begin H.S end + -30 63126 a -30 63126 a +SDict begin 18.2 H.A end + -30 63126 a -30 63126 +a +SDict begin [ /View [/XYZ H.V] /Dest (4809) cvn H.B /DEST pdfmark end + -30 63126 a 1679 x FU(There)471 b(are)g(man)-23 b(y)470 +b(other)g(commands)g(in)22826 64805 y +SDict begin H.S end + 22826 64805 a 22826 +64805 a +SDict begin 18.2 H.A end + 22826 64805 a 22826 64805 a +SDict begin [ /View [/XYZ H.V] /Dest (4810) cvn H.B /DEST pdfmark end + 22826 64805 a FP(lynx)p +FU(.)g(Y)-170 b(ou)470 b(can)h(either)f(consult)g(the)h(man)f(page,)h +(or)-30 66820 y(type)3026 66820 y +SDict begin H.S end + 3026 66820 a 3026 66820 +a +SDict begin 18.2 H.A end + 3026 66820 a 3026 66820 a +SDict begin [ /View [/XYZ H.V] /Dest (4811) cvn H.B /DEST pdfmark end + 3026 66820 a Fv(h)387 b FU(to)h(get)f(the)g +(help)g(screen)g(for)h(more)f(information.)-30 67930 +y +SDict begin H.S end + -30 67930 a -30 67930 a +SDict begin 18.2 H.A end + -30 67930 a -30 67930 a +SDict begin [ /View [/XYZ H.V] /Dest (4812) cvn H.B /DEST pdfmark end + -30 +67930 a Black 49451 73792 a FR(171)p Black eop end +%%Page: 172 194 +TeXDict begin 172 193 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.172) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 3861 a FF(links)-30 3884 y +SDict begin H.S end + -30 3884 a -30 3884 +a +SDict begin 18.2 H.A end + -30 3884 a -30 3884 a +SDict begin [ /View [/XYZ H.V] /Dest (4815) cvn H.B /DEST pdfmark end + -30 3884 a -30 4814 a +SDict begin H.S end + -30 4814 +a -30 4814 a +SDict begin 18.2 H.A end + -30 4814 a -30 4814 a +SDict begin [ /View [/XYZ H.V] /Dest (4818) cvn H.B /DEST pdfmark end + -30 4814 a 1991 x +FU(Just)504 b(lik)-15 b(e)5700 6805 y +SDict begin H.S end + 5700 6805 a 5700 +6805 a +SDict begin 18.2 H.A end + 5700 6805 a 5700 6805 a +SDict begin [ /View [/XYZ H.V] /Dest (4819) cvn H.B /DEST pdfmark end + 5700 6805 a FP(lynx)p +FU(,)9568 6805 y +SDict begin H.S end + 9568 6805 a 9568 6805 a +SDict begin 18.2 H.A end + 9568 6805 a +9568 6805 a +SDict begin [ /View [/XYZ H.V] /Dest (4820) cvn H.B /DEST pdfmark end + 9568 6805 a FP(links)504 b FU(is)h(a)g(te)-23 +b(xtmode)503 b(web)i(bro)-39 b(wser)-62 b(,)505 b(where)g(you)g(do)f +(all)h(the)g(na)-31 b(vig)-8 b(ation)-30 8820 y(using)504 +b(the)g(k)-15 b(e)-23 b(yboard.)504 b(Ho)-39 b(we)g(v)-23 +b(er)-62 b(,)505 b(when)g(you)f(press)g(the)32039 8820 +y +SDict begin H.S end + 32039 8820 a 32039 8820 a +SDict begin 18.2 H.A end + 32039 8820 a 32039 8820 a +SDict begin [ /View [/XYZ H.V] /Dest (4821) cvn H.B /DEST pdfmark end + +32039 8820 a Fv(Esc)g FU(k)-15 b(e)-23 b(y)-101 b(,)504 +b(it)h(will)f(acti)-39 b(v)g(ate)504 b(a)h(v)-23 b(ery)-30 +10835 y(con)-62 b(v)-23 b(enient)411 b(pulldo)-39 b(wn)410 +b(menu)h(on)g(the)h(top)f(of)g(the)g(screen.)h(This)f(mak)-15 +b(es)411 b(it)g(v)-23 b(ery)411 b(easy)g(to)h(use,)-30 +12849 y(without)567 b(ha)-31 b(ving)567 b(to)h(learn)g(all)g(the)f(k) +-15 b(e)-23 b(yboard)567 b(shortcuts.)h(People)f(who)g(do)h(not)g(use)f +(a)h(te)-23 b(xt)-30 14864 y(bro)-39 b(wser)387 b(e)-39 +b(v)-23 b(ery)388 b(day)f(will)g(appreciate)g(this)g(feature.)-30 +15974 y +SDict begin H.S end + -30 15974 a -30 15974 a +SDict begin 18.2 H.A end + -30 15974 a -30 15974 +a +SDict begin [ /View [/XYZ H.V] /Dest (4822) cvn H.B /DEST pdfmark end + -30 15974 a -30 15974 a +SDict begin H.S end + -30 15974 a -30 15974 a +SDict begin 18.2 H.A end + -30 +15974 a -30 15974 a +SDict begin [ /View [/XYZ H.V] /Dest (4823) cvn H.B /DEST pdfmark end + -30 15974 a 1680 x FP(links)488 b +FU(seems)g(to)g(ha)-31 b(v)-23 b(e)488 b(better)h(support)e(for)i(both) +f(frames)g(and)g(tables,)h(when)f(compared)g(to)-30 19668 +y +SDict begin H.S end + -30 19668 a -30 19668 a +SDict begin 18.2 H.A end + -30 19668 a -30 19668 a +SDict begin [ /View [/XYZ H.V] /Dest (4824) cvn H.B /DEST pdfmark end + -30 +19668 a FP(lynx)p FU(.)-30 19863 y +SDict begin H.S end + -30 19863 a -30 19863 +a +SDict begin 18.2 H.A end + -30 19863 a -30 19863 a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-WEB-LINKS) +cvn H.B /DEST pdfmark end + -30 19863 a 4144 x FX(Figur)-28 +b(e)387 b(13-6.)h(Links,)e(with)h(the)g(\002le)g(menu)g(open)-30 +25872 y +SDict begin H.S end + -30 25872 a -30 25872 a +SDict begin 18.2 H.A end + -30 25872 a -30 25872 +a +SDict begin [ /View [/XYZ H.V] /Dest (4827) cvn H.B /DEST pdfmark end + -30 25872 a -30 58949 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 58949 a @beginspecial 12 +@llx 212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial +%%BeginDocument: basic-network-commands/links.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +f0c0c00080c080c080c080c0d0c0f0c0c00080c080c080c080c0d0c0f0c0 +f000f9c0fc0001c0c0fb00fdc0e500f0c0060000c0c0c00000fcc0010000 +cdc0fc00f9c0010000f5c0fd00dbc0fb00e3c0fd00eac0fd00d5c0fb00f3 +c00000ccc0060000c0c0c00000f5c0fd0080c0a5c0f0c0ef0005c0c00000 +c0c0fc0001c0c0fa0001c0c0e500f0c0060000c0c0c00000fcc0010000cc +c0010000f8c0010000f4c0010000dac0040000c00000e3c0010000e9c001 +0000d6c0060000c0c0c00000f5c0010000ccc0060000c0c0c00000f4c001 +000080c0a5c0f0c0ef0005c0c0000000c0f40001c0c0e500f0c0060000c0 +c0c00000c6c0010000eac0010000dac0050000c0c00000e4c0010000e9c0 +010000d6c0060000c0c0c00000f5c0010000ccc0060000c0c0c00000f4c0 +01000080c0a5c0f0c0ef0003c0c000c0fb00fdc0fa0001c0c0fc00fbc0ee +00f0c00c0000c0c0c00000c0c0c0000000fcc0fb0008c0c00000c0c0c000 +00dec0010000f9c0fd00fdc00e0000c0000000c0c0c00000c0c00000dec0 +070000c0c00000c0c0fb000fc0c00000c0c0c00000c00000c0000000fbc0 +010000fcc0fb00fdc0fc00fbc0fc00fdc0fb00ddc0010000fac0fb0001c0 +c0fa000fc0c00000c0c00000c0c00000c0000000dec0080000c0c0c00000 +c0c0fb00fbc00a0000c0c0c00000c000000080c0aec0f0c0ef00fcc0fa00 +01c0c0fa000bc0c0000000c0c0000000c0c0ef00f0c0060000c0c0c00000 +fcc0130000c0c0c00000c0c0c00000c00000c0c0c00000dec0010000f8c0 +010000fcc00c0000c0c00000c0c00000c00000ddc01d0000c0c00000c000 +00c0c0c00000c00000c0c0c00000c0c00000c0c00000fcc00b0000c0c0c0 +0000c0c0c00000fbc0120000c0c0c00000c00000c0c00000c0c0c00000dd +c0fd00fdc00b0000c0c0c00000c0c0c00000fcc00e0000c0c00000c0c0c0 +0000c0c00000dfc0f90007c00000c0c0c00000fcc0010000fcc0050000c0 +c0000080c0afc0f0c0ef0003c0c000c0fa0001c0c0fa0004c0c0000000f9 +c0ef00f0c0060000c0c0c00000fcc0040000c0c0c0f90007c00000c000c0 +0000dec0010000f8c0010000fcc0070000c0c00000c0c0fc00dcc01d0000 +c0c00000c00000c0c0c00000c00000c000c00000c0c00000c0c00000fcc0 +0d0000c0c0c00000c0c0c00000c0c0fb000cc0c00000c0c00000c0c0c000 +00d7c0030000c0c0f900fdc0010000fcc00e0000c0c00000c0c0c00000c0 +c00000dfc0070000c0c0c00000c0f900fcc0010000fcc0050000c0c00000 +80c0afc0f0c0ef0001c0c0f80001c0c0fa0006c0c0000000c0c0ea00f0c0 +060000c0c0c00000fcc0060000c0c0c00000fac0060000c000c00000dec0 +010000f8c0010000fcc0070000c0c00000c0c0fc00dcc01d0000c0c00000 +c00000c0c0c00000c00000c000c00000c0c00000c0c00000fcc01a0000c0 +c0c00000c0c0c00000c00000c0c00000c0c00000c0c00000fcc0fd00d8c0 +040000c00000f8c0010000fcc00e0000c0c00000c0c0c00000c0c00000df +c0090000c0c0c00000c00000f7c0010000fcc0050000c0c0000080c0afc0 +f0c0ef0001c0c0f80001c0c0fa0006c0c0000000c0c0ea00efc0040000c0 +0000fbc0060000c0c0c00000fac0060000c000c00000dec0050000c0c0c0 +00fcc0010000fcc00c0000c0c00000c0c00000c00000ddc01d0000c0c000 +00c00000c0c0c00000c00000c000c00000c0c00000c0c00000fcc01a0000 +c0c0c00000c0c0c00000c00000c0c00000c0c00000c0c00000fac0010000 +dec0090000c0c0c00000c00000f8c0010000fcc00e0000c0c00000c0c0c0 +0000c0c00000dfc0090000c0c0c00000c00000f7c0010000fcc0050000c0 +c0000080c0afc0f0c0ef0001c0c0f80001c0c0fa000bc0c0000000c0c000 +0000c0c0ef00eec0fd00fac00c0000c0c0c00000c0c0c00000c0f900dec0 +050000c0c00000fcc0010000fcc00d0000c0c00000c0c00000c0c00000de +c00e0000c00000c0c00000c0c0c00000c0f90007c0c00000c0c00000fcc0 +230000c0c0c00000c0c0c00000c00000c0c00000c0c00000c0c00000c0c0 +0000c0c0c00000dfc0260000c0c0c00000c00000c0c0c00000c0c0c00000 +c00000c00000c0c00000c0c0c00000c0c00000dfc00e0000c0c0c00000c0 +0000c0c0c00000fcc0010000fcc0050000c0c0000080c0afc0f0c0f000fc +c0fa00fcc0fc00fcc0fd00fbc0ee00edc00000fac0fc00fdc0fb00fdc004 +0000c00000dec0f900fdc0fc00fdc00d0000c0c00000c0000000c0c00000 +dfc0fb00fcc0fb00fdc0100000c00000c0c0c00000c0c00000c0c0c0fc00 +fdc0fb00fdc0fd000cc00000c0c0000000c00000c0c0fb00ddc0fb00fdc0 +fb00fbc0fd00fdc0fd0004c00000c0c0fb00dec0080000c0c0c00000c0c0 +fb00fcc0fc00fdc0fb0080c0aec0f0c0c00080c080c0e7c0010000c2c001 +000080c0abc0f0c0c00080c080c0e7c0010000c2c001000080c0abc0f0c0 +c00080c080c0e8c0fc00c4c0fc0080c0acc0f0c0c00080c080c080c080c0 +d0c0f00080c088c0800080008800f00080c088c0800080008800f00080c0 +88c0ed0001c0c0ea00fdc0f500fbc0fc00fdc0ed00fdc0d300fac0ee00fd +c0f300fac0e90001c0c0ec0000c08000ec00f00080c088c0ed0001c0c0e9 +0001c0c0f60006c0c0000000c0c0fc0001c0c0ec0001c0c0d20005c0c000 +00c0c0ee0001c0c0f20005c0c00000c0c0ea0001c0c0ed0001c0c08000ec +00f00080c088c0d40001c0c0f60006c0c0000000c0c0fc0001c0c0ec0001 +c0c0d20005c0c00000c0c0ee0001c0c0f20005c0c00000c0c0d50001c0c0 +8000ec00f000fdc001000080c092c0050000c0c0c000fbc00e0000c0c000 +0000c0c0000000c0c0c0fc00fbc0fd00fbc0fc00fcc0f50001c0c0f80001 +c0c0fc00fcc0fc00fbc0fd000fc0c00000c0c000c0c0000000c0c00000fc +c0fd0008c0c000c0c0c0000000fbc0f50007c0c00000c0c00000fbc0fd00 +fbc0fd0005c0c00000c0c0f6000fc0c00000c0c000c0c000c0c0c0000000 +fbc0fa00fdc0010000fbc0fd00fbc0010000fac08000ee00f000fdc00100 +0080c092c0010000fbc0fd0009c0c000c0c0000000c0c0fc001ac0c00000 +00c0c0000000c0c000c0c0000000c0c00000c0c000c0c0f400fdc0fa0001 +c0c0f9001ac0c00000c0c0000000c0c00000c0c000c0c00000c0c0000000 +c0c0fb0012c0c0000000c0c0c000c0c000c0c0000000c0c0f600fbc01700 +00c0c0000000c0c000c0c0000000c0c00000c0c000c0c0f500fbc0fd00fd +c00a00c0c000c0c0000000c0c0fa0016c0c000c0c0000000c0c000c0c000 +0000c0c0000000c0c08000ec00f00000c0fa0000c0f90000c0f90000c0f9 +0000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000 +c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f9 +0000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000 +c0f90000c0f90000c0f90000c0f90001c0c0fa00f8c00700c0c0000000c0 +c0fc0001c0c0fc0001c0c0fb00f9c00600c0c00000c0c0f20001c0c0fb00 +01c0c0fc00fbc0030000c0c0f900fcc0fd0008c0c000c000c0c00000fbc0 +fd0006c0c00000c0c000f9c0f60017c0c00000c0c000c0c0000000c0c000 +c0c0000000c0c00000fcc0f40001c0c0fa000dc0c00000c0c000c0c00000 +00c0c0fa0002c0c000f9c00200c0c0f80001c0c08000ec00f000fdc00100 +0080c092c0010000fbc0fa0006c0c0000000c0c0fc0001c0c0fb00fdc0fd +0001c0c0fa0005c0c00000c0c0f10001c0c0fc000ec0c0000000c0c00000 +c0c00000c0c0f900fcc0fd0012c0c000c000c0c000c0c00000c0c0000000 +c0c0fb0001c0c0f10017c0c00000c0c000c0c0000000c0c000c0c0000000 +c0c00000fcc0f40001c0c0fa0001c0c0fb0006c0c0000000c0c0fa0004c0 +c000c0c0fa0001c0c0f80001c0c08000ec00f000fdc001000080c092c001 +0000fbc0fa0006c0c0000000c0c0fc0001c0c0f90005c0c00000c0c0fa00 +05c0c00000c0c0f60006c0c0000000c0c0fc000ec0c0000000c0c00000c0 +c00000c0c0f90019c0c000c0c00000c0c000c000c0c000c0c00000c0c000 +0000c0c0fb0001c0c0f1001cc0c00000c0c000c0c0000000c0c000c0c000 +0000c0c00000c0c000c0c0f50001c0c0fa0001c0c0fb0006c0c0000000c0 +c0fa0004c0c000c0c0fa0001c0c0f80001c0c08000ec00f00080c086c0fd +0008c0c00000c0c000c0c0fb001ac0c0000000c0c0000000c0c000c0c000 +0000c0c000c0c00000c0c0f60006c0c0000000c0c0fc001cc0c0000000c0 +c00000c0c00000c0c0000000c0c00000c0c00000c0c000f9c00b00c0c000 +00c0c0000000c0c0fb0006c0c0000000c0c0f6001dc0c00000c0c000c0c0 +000000c0c000c0c0000000c0c00000c0c00000c0c0f60001c0c0fa0001c0 +c0fb0006c0c0000000c0c0fa0019c0c000c0c0000000c0c000c0c0000000 +c0c0000000c0c000c0c08000ef00f00080c088c00000fbc0fc00fdc0fb00 +fcc0fd00fbc0fd00fbc0fd00fdc00200c0c0f600fbc0fc00fcc0fd00fdc0 +0400c0c00000fbc0190000c0c0c00000c0c00000c0c000c0c0000000c0c0 +c000c0c000fcc0fb00fbc0f600fac0fd00fbc0fd00fbc0080000c0c0c000 +00c0c0f700fcc0fc00fcc0fb00fbc0f90003c0c00000fbc0fd00fbc0fb00 +fdc08000ee00f00080c088c08000b70005c0c00000c0c08000d700f00080 +c088c08000b70005c0c00000c0c08000d700f00080c088c08000b600fcc0 +8000d600f00080c088c0800080008800f000f8c080009800f8c080008000 +8800f000f8c080009800f8c0800080008800f000fdc0040000c0c0c0f600 +fcc0eb0000c0ec0007c0c0000000c0c000fac0010000fcc08000e400fdc0 +040000c0c0c0800080008800f000fdc0040000c0c0c0f70005c0c00000c0 +c0ed0001c0c0ec0012c0c0000000c0c00000c0c00000c0c00000c0c08000 +e300fdc0040000c0c0c0800080008800f000fdc0040000c0c0c0f80001c0 +c0fc0000c0ed0001c0c0ec0012c0c0000000c0c00000c0c00000c0c00000 +c0c08000e300fdc0040000c0c0c0800080008800f000fdc0040000c0c0c0 +f80001c0c0f900fbc0f600fac0fd00fbc0f60012c0c0000000c0c00000c0 +c00000c0c00000c0c08000f200fdc00200c0c0f700fdc0040000c0c0c080 +0080008800f000fdc0040000c0c0c0f80001c0c0fa0006c0c0000000c0c0 +f50001c0c0fc0006c0c0000000c0c0f70008c0c0000000c0c00000fbc0fd +0001c0c08000f30005c0c00000c0c0f600fdc0040000c0c0c08000800088 +00f000fdc0040000c0c0c0f80002c0c000fcc00700c0c0000000c0c0f500 +01c0c0fc0006c0c0000000c0c0f70012c0c0000000c0c00000c0c000c0c0 +000000c0c08000f30005c0c00000c0c0f600fdc0040000c0c0c080008000 +8800f000fdc0040000c0c0c0f8000ec0c0000000c0c000c0c0000000c0c0 +f50001c0c0fc0006c0c0000000c0c0f70012c0c0000000c0c00000c0c000 +00c0c00000c0c08000f30005c0c00000c0c0f600fdc0040000c0c0c08000 +80008800f000fdc0040000c0c0c0f8000ec0c0000000c0c000c0c0000000 +c0c0f50001c0c0fc0006c0c0000000c0c0f70016c0c0000000c0c00000c0 +c00000c0c00000c0c0000000c08000f70005c0c00000c0c0f600fdc00400 +00c0c0c0800080008800f000fdc0040000c0c0c0f7000dc0c00000c0c000 +c0c0000000c0c0f5000cc0c000c0c000c0c0000000c0c0f70016c0c00000 +00c0c00000c0c00000c0c00000c0c00000c0c08000f70005c0c00000c0c0 +f600fdc0040000c0c0c0800080008800f000fdc0040000c0c0c0f600fdc0 +0300c00000fbc0f300fdc0fd00fbc0f500fbc0090000c0c0c00000c0c000 +f9c08000f600fbc0f600fdc0040000c0c0c0800080008800f000f8c08000 +a40001c0c0f600f8c0800080008800f000f8c08000a80005c0c00000c0c0 +f600f8c0800080008800f000f8c08000a700fcc0f500f8c0800080008800 +f000f8c080009800f8c0800080008800f000d8c0f80080c0b8c080008000 +8800f000d8c0f80080c0b8c0800080008800f000fdc0010000f3c0fc00eb +c0fb00f0c0fd0080c0d0c0040000c0c0c0800080008800f000fdc0010000 +f4c0050000c0c00000efc00200c0c0fb00efc001000080c0d0c0040000c0 +c0c0800080008800f000fdc0010000f5c0010000fcc00000efc00200c0c0 +fb00efc001000080c0d0c0040000c0c0c0800080008800f000fdc0010000 +f5c0010000f9c0fb00f6c00000fcc0fd0000c0fc00fcc0fb00fdc0050000 +c0c0000080c0e7c0f900f4c0040000c0c0c0800080008800f000fdc00100 +00f5c0010000fac0060000c0c0c00000f7c00700c0c000c0c00000fcc011 +0000c0c00000c0c0c00000c0c00000c0000080c0e6c0050000c0c00000f3 +c0040000c0c0c0800080008800f000fdc0010000f5c0020000c0fc0007c0 +0000c0c0c00000f7c00800c0c00000c0c000c0fb0003c0c00000f9c0fc00 +80c0e2c0010000f2c0040000c0c0c0800080008800f000fdc0010000f5c0 +0e0000c0c0c00000c00000c0c0c00000f7c01100c0c00000c0c0000000c0 +c00000c0c00000f9c0fc0080c0e3c0010000f1c0040000c0c0c080008000 +8800f000fdc0010000f5c00e0000c0c0c00000c00000c0c0c00000f7c011 +00c0c00000c0c0000000c0c00000c0c00000f9c0040000c0000080c0e5c0 +010000f0c0040000c0c0c0800080008800f000fdc0010000f4c00d0000c0 +c00000c00000c0c0c00000f7c01e00c0c00000c0c0000000c0c00000c0c0 +0000c0c0c00000c0c00000c0c0000080c0e7c0060000c0c0c00000f4c004 +0000c0c0c0800080008800f000fdc0010000f3c0fd0003c000c0c0fb00f6 +c00000fbc00a0000c0000000c00000c0c0fb0008c0c0000000c0c0000080 +c0e7c0f900f4c0040000c0c0c0800080008800f000d8c0f80080c0b8c080 +0080008800f000d8c0f80080c0b8c0800080008800f000d8c0f80080c0b8 +c0800080008800f000d8c0f80080c0b8c0800080008800f000f0c0f80080 +c0a0c0800080008800f000f0c0f80080c0a0c0800080008800f000fdc001 +0000f3c0fd0007c0c000c0c0c00000f2c0000080c0b9c0040000c0c0c080 +0080008800f000fdc0010000f3c0fd0007c0c000c0c0c00000f3c0010000 +80c0cbc0010000f0c0040000c0c0c0800080008800f000fdc0010000f3c0 +fd0002c0c000eec001000080c0cac0010000f1c0040000c0c0c080008000 +8800f000fdc0010000f3c0fd0007c0c000c0c0000000fcc0fb0001c0c0fa +00fdc0fb0010c0c00000c0000000c0c00000c0c0c0000080c0e4c0010000 +f2c0040000c0c0c0800080008800f000fdc0010000eec01400c0c0c00000 +c0c0c00000c0c0c00000c0c0c00000fcc0160000c0c0c00000c0c0000000 +c00000c00000c0c0c0000080c0e3c0010000f3c0040000c0c0c080008000 +8800f000fdc0010000f3c0fd0007c0c000c0c0c00000fcc0010000f9c001 +0000fcc0160000c0c0c00000c0c00000c0c00000c00000c0c0c0000080c0 +e2c0010000f4c0040000c0c0c0800080008800f000fdc0010000f3c0fd00 +07c0c000c0c0c00000fbc0fd00fbc0010000fcc00a0000c0c0c00000c0c0 +0000fbc0060000c0c0c0000080c0e3c0010000f3c0040000c0c0c0800080 +008800f000fdc0010000f3c0fd0007c0c000c0c0c00000f9c0010000fcc0 +010000fcc00a0000c0c0c00000c0c00000fbc0060000c0c0c0000080c0e4 +c0010000f2c0040000c0c0c0800080008800f000fdc0010000f3c0fd0025 +c0c000c0c0c00000c0c0c00000c0c0c00000c0c0c00000c00000c00000c0 +c0c00000c0c00000fbc0060000c0c0c0000080c0e5c0010000f1c0040000 +c0c0c0800080008800f000fdc0010000f3c0fd0004c0c000c0c0fc00fdc0 +fb00fbc0fd00fdc0fb0001c0c0fc00fbc0fa0080c0e6c0010000f0c00400 +00c0c0c0800080008800f000f0c0f800d3c001000080c0cfc08000800088 +00f000f0c0f800d4c001000080c0cec0800080008800f000f0c0f800d8c0 +fb0080c0cdc0800080008800f000f0c0f80080c0a0c0800080008800f000 +f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080008800 +f000fdc0010000efc0010000f6c0fd00eac0fd0084c0fc00fbc00000f2c0 +fd00f5c0fa00f3c0040000c0c0c0800080008800f000fdc0010000f5c007 +00c0c00000c0c000f5c0010000e9c001000085c00a0000c0c00000c0c0c0 +0000f1c0010000f4c0050000c0c00000f4c0040000c0c0c0800080008800 +f000fdc0010000f5c00700c0c00000c0c000f5c0010000e9c001000086c0 +010000fcc00500c0c0c00000f1c0010000f4c0050000c0c00000f4c00400 +00c0c0c0800080008800f000fdc0010000f5c00800c0c00000c0c000c0fb +00fbc0010000fcc0fb00fdc0fc00fbc0fc0086c0010000fac0fa0007c0c0 +0000c0000000fbc0010000f4c0050000c0c00000f4c0040000c0c0c08000 +80008800f000fdc0010000f5c00000fbc0fc00fdc0010000fcc00b0000c0 +c0c00000c0c0c00000fbc0090000c0c0c00000c0000086c0010000f8c001 +0000fbc0fd0002c00000fcc0010000f4c0fb00f3c0040000c0c0c0800080 +008800f000fdc0010000f5c00500c0c000c0c0f700fcc00d0000c0c0c000 +00c0c0c00000c0c0fb0007c0c00000c0c0000086c0010000f8c0010000fb +c0050000c0c00000fcc0040000c0c0c0f90006c0c00000c00000f3c00400 +00c0c0c0800080008800f000fdc0010000f5c00900c0c00000c0c0000000 +f7c01a0000c0c0c00000c0c0c00000c00000c0c00000c0c00000c0c00000 +86c0010000f8c0010000fbc0010000f8c0010000f4c0050000c0c00000f4 +c0040000c0c0c0800080008800f000fdc0010000f5c00900c0c00000c0c0 +000000f7c01a0000c0c0c00000c0c0c00000c00000c0c00000c0c00000c0 +c0000086c0010000fcc00500c0c0c00000fbc0010000f8c0010000f4c005 +0000c0c00000f4c0040000c0c0c0800080008800f000fdc0010000f5c00e +00c0c00000c0c0000000c0c0c00000fcc01a0000c0c0c00000c0c0c00000 +c00000c0c00000c0c00000c0c0000085c0110000c0c00000c0c0c00000c0 +0000c0c00000f8c0010000f4c0050000c0c00000f4c0040000c0c0c08000 +80008800f000fdc0010000f2c0050000c0c000c0fb00fcc0fc00fdc0fb00 +fdc0fd000ac00000c0c0000000c0000085c0fc00fbc0fd0001c0c0fc00fa +c0fc00f6c0fd0003c0c00000f4c0040000c0c0c0800080008800f000f0c0 +f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080008800f000 +f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080008800 +f000b0c0f80080c0e0c0800080008800f000b0c0f80080c0e0c080008000 +8800f000fdc0010000f5c0fa00eec0fd00e3c0fd00fbc0f80080c0e5c004 +0000c0c0c0800080008800f000fdc0010000f4c0050000c0c00000eec001 +0000e2c0010000fbc0f80080c0e5c0040000c0c0c0800080008800f000fd +c0010000f4c0050000c0c00000eec0010000e2c0010000fbc0f80080c0e5 +c0040000c0c0c0800080008800f000fdc0010000f4c0070000c0c00000c0 +c0fb00fdc0fb00fdc00f0000c0c00000c0000000c00000c0c0c0fc00fdc0 +100000c0000000c0c0c00000c0c00000c000fbc001000080c0f7c0fb00f3 +c0040000c0c0c0800080008800f000fdc0010000f4c0fb0019c0c00000c0 +c0c00000c00000c0c0c00000c0c00000c00000c0c0f900fbc0110000c0c0 +c0000000c00000c0c00000c00000fcc0fd0002c0c00080c0f8c0060000c0 +c0c00000f4c0040000c0c0c0800080008800f000fdc0010000f4c0170000 +c0c00000c00000c0c0c00000c00000c0c0c00000c0c0fc00fdc0080000c0 +00c00000c0c0fb00fdc0070000c0c00000c0c0fc00fdc00200c0c0fb0080 +c0f7c0010000f0c0040000c0c0c0800080008800f000fdc0010000f4c017 +0000c0c00000c00000c0c0c00000c00000c0c0c00000c0c0fc00fdc01200 +00c000c00000c00000c0c00000c0c0c00000fac0fc00fdc0070000c0c0c0 +00000080c0f6c0fd00f2c0040000c0c0c0800080008800f000fdc0010000 +f4c0310000c0c00000c00000c0c0c00000c00000c0c0c00000c0c00000c0 +0000c0c00000c000c00000c00000c0c00000c0c0c00000fac0060000c000 +00c0c0fc0003c0c0000080c0f4c0010000f3c0040000c0c0c08000800088 +00f000fdc0010000f4c0310000c0c00000c00000c0c0c00000c00000c0c0 +c00000c0c00000c0c00000c00000c000c00000c00000c0c00000c0c0c000 +00fac00e0000c0c00000c0c0c0000000c0c00080c0f8c0060000c0c0c000 +00f4c0040000c0c0c0800080008800f000fdc0010000f5c0fa00fdc0fb00 +fdc0fb0019c0c0000000c0c00000c00000c0c0c00000c0c0000000c00000 +c0fc00fcc0fd0005c0c00000c000fbc001000080c0f7c0fb00f3c0040000 +c0c0c0800080008800f000b0c0f80080c0e0c0800080008800f000b0c0f8 +0080c0e0c0800080008800f000b0c0f80080c0e0c0800080008800f000b0 +c0f80080c0e0c0800080008800f000e8c0f80080c0a8c0800080008800f0 +00e8c0f80080c0a8c0800080008800f000fdc0010000f4c0fb0001c0c0f8 +00e8c0fd00ebc0fd00e3c0fd0080c0040000c0c0c0800080008800f000fd +c0010000f5c0070000c0c0c00000c0f800e7c0010000eac0010000e2c001 +000080c0040000c0c0c0800080008800f000fdc0010000f5c0070000c0c0 +c00000c0f800e7c0010000eac0010000e2c001000080c0040000c0c0c080 +0080008800f000fdc0010000f4c0010000fbc00000fcc0fb00fdc0030000 +c0c0fb00f5c0fc00fcc0fb00fdc0fb00fdc00f0000c0c00000c0000000c0 +0000c0c0c0fc00fdc0100000c0000000c0c0c00000c0c00000c0c0fb008b +c0040000c0c0c0800080008800f000fdc0010000f3c0fd00fdc0fc0001c0 +c0fc00fdc0090000c00000c0c0c00000f6c01e0000c00000c0c00000c0c0 +c00000c00000c0c0c00000c0c00000c00000c0c0f900fbc01a0000c0c0c0 +000000c00000c0c00000c00000c0c00000c0c0c000008cc0040000c0c0c0 +800080008800f000fdc0010000f1c0040000c0c000fbc0fc00fdc0020000 +c0f900f6c0170000c0c00000c00000c0c0c00000c00000c0c0c00000c0c0 +fc00fdc0080000c000c00000c0c0fb00fdc0070000c0c00000c0c0fc00fc +c001000088c0040000c0c0c0800080008800f000fdc0010000f0c0080000 +c0c0c00000c0c0fc00fdc0040000c00000f1c0170000c0c00000c00000c0 +c0c00000c00000c0c0c00000c0c0fc00fdc0120000c000c00000c00000c0 +c00000c0c0c00000fac0fc00fbc0fd008ac0040000c0c0c0800080008800 +f000fdc0010000f5c00d0000c0c0c00000c0c0c00000c0c0fc00fdc00400 +00c00000f1c0310000c0c00000c00000c0c0c00000c00000c0c0c00000c0 +c00000c00000c0c00000c000c00000c00000c0c00000c0c0c00000fac004 +0000c00000fac00100008bc0040000c0c0c0800080008800f000fdc00100 +00f5c01e0000c0c0c00000c0c0c00000c0c00000c00000c00000c0c00000 +c0c0c00000f6c0310000c0c00000c00000c0c0c00000c00000c0c0c00000 +c0c00000c0c00000c00000c000c00000c00000c0c00000c0c0c00000fac0 +0d0000c0c00000c00000c0c0c000008cc0040000c0c0c0800080008800f0 +00fdc0010000f4c0fb000ec0c000c0c0c000c0c000c0c0000000fcc0fb00 +f5c0fb00fdc0fb00fdc0fb0019c0c0000000c0c00000c00000c0c0c00000 +c0c0000000c00000c0fc00fcc0fd0005c0c00000c0c0fb008bc0040000c0 +c0c0800080008800f000e8c0f80080c0a8c0800080008800f000e8c0f800 +80c0a8c0800080008800f000e8c0f80080c0a8c0800080008800f000e8c0 +f80080c0a8c0800080008800f00080c088c0800080008800f00080c088c0 +800080008800f000fdc001000080c092c0040000c0c0c0800080008800f0 +00fdc001000080c092c0040000c0c0c0800080008800f000fdc001000080 +c092c0040000c0c0c0800080008800f000fdc001000080c092c0040000c0 +c0c0800080008800f000fdc001000080c092c0040000c0c0c08000800088 +00f000fdc0040000c0c0c0f90000c0f90000c0f90000c0f90000c0f90000 +c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f9 +0000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000 +c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f9 +0000c0f900fcc0040000c0c0c0800080008800f000fdc001000080c092c0 +040000c0c0c0800080008800f000fdc001000080c092c0040000c0c0c080 +0080008800f000fdc001000080c092c0040000c0c0c0800080008800f000 +fdc001000080c092c0040000c0c0c0800080008800f00080c088c0800080 +008800f00080c088c0800080008800f00080c088c0800080008800f00080 +c088c0800080008800f000e0c0f80080c0b0c0800080008800f000e0c0f8 +0080c0b0c0800080008800f000fdc0010000f4c0fb00f6c0f80080c0b5c0 +040000c0c0c0800080008800f000fdc0010000f5c0060000c0c0c00000f7 +c0f80080c0b5c0040000c0c0c0800080008800f000fdc0010000f5c00600 +00c0c0c00000f7c0f80080c0b5c0040000c0c0c0800080008800f000fdc0 +010000f4c0010000fac0fc00fbc0fd0003c0c000c0fb00f5c0fc00fcc0fb +0080c0d3c0040000c0c0c0800080008800f000fdc0010000f3c0fd00f9c0 +010000fcc0fd0009c0c0000000c0c0c00000f3c00a0000c0c00000c0c0c0 +000080c0d4c0040000c0c0c0800080008800f000fdc0010000f1c0040000 +c0c0c0fb00fcc0fd0001c0c0f800f6c0fb00fdc001000080c0d0c0040000 +c0c0c0800080008800f000fdc0010000f0c0080000c00000c0c00000fcc0 +fd0004c0c0000000f2c0050000c0c00000fcc0fd0080c0d2c0040000c0c0 +c0800080008800f000fdc0010000f5c00d0000c0c0c00000c00000c0c000 +00fcc0fd0004c0c0000000f2c0050000c0c00000fac001000080c0d3c004 +0000c0c0c0800080008800f000fdc0010000f5c0150000c0c0c00000c000 +00c0c00000c0c000c0c000c0c0fc00fdc0010000f7c00e0000c0c00000c0 +c00000c0c0c0000080c0d4c0040000c0c0c0800080008800f000fdc00100 +00f4c0fb00fdc0fd000cc00000c00000c0c0c0000000c0fb00f5c0fd0004 +c00000c0c0fb0080c0d3c0040000c0c0c0800080008800f000e0c0f80080 +c0b0c0800080008800f000e0c0f80080c0b0c0800080008800f000e0c0f8 +0080c0b0c0800080008800f000e0c0f80080c0b0c0800080008800f000c8 +c0f80080c0c8c0800080008800f000c8c0f80080c0c8c0800080008800f0 +00fdc0010000f4c0fb00dcc0fd0001c0c0f90001c0c0fc0080c0d9c00400 +00c0c0c0800080008800f000fdc0010000f5c0060000c0c0c00000ddc0fd +000dc0c000c00000c0c00000c0c0000080c0d8c0040000c0c0c080008000 +8800f000fdc0010000f5c0060000c0c0c00000ddc0fd000dc0c000c00000 +c0c00000c0c0000080c0d8c0040000c0c0c0800080008800f000fdc00100 +00f4c0010000fac0fc00fdc0080000c0c0c00000c0c0fb00f4c0fd000dc0 +c000c00000c0c00000c0c00000f2c0fc00fcc0fb0080c0f3c0040000c0c0 +c0800080008800f000fdc0010000f3c0fd00f9c0120000c0c00000c0c0c0 +0000c00000c0c0c00000f5c0fd0003c0c000c0fb00fdc0010000efc00a00 +00c0c00000c0c0c0000080c0f4c0040000c0c0c0800080008800f000fdc0 +010000f1c0040000c0c0c0fb0009c0c00000c0c0c00000c0f900f5c0fd00 +0dc0c000c00000c00000c0c0c00000f2c0fb00fdc001000080c0f0c00400 +00c0c0c0800080008800f000fdc0010000f0c0140000c00000c0c00000c0 +c00000c0c0c00000c00000f0c0fd000dc0c000c00000c0c00000c0c00000 +f3c0050000c0c00000fcc0fd0080c0f2c0040000c0c0c0800080008800f0 +00fdc0010000f5c0190000c0c0c00000c00000c0c00000c0c00000c0c0c0 +0000c00000f0c0fd0011c0c000c00000c0c00000c0c00000c0c0c000f7c0 +050000c0c00000fac001000080c0f3c0040000c0c0c0800080008800f000 +fdc0010000f5c01e0000c0c0c00000c00000c0c00000c0c0c00000c00000 +c0c00000c0c0c00000f5c0fd0011c0c000c00000c0c00000c0c00000c0c0 +0000f7c00e0000c0c00000c0c00000c0c0c0000080c0f4c0040000c0c0c0 +800080008800f000fdc0010000f4c0fb00fdc0fd0008c00000c0c0c00000 +00fcc0fb00f6c00000fbc0fb0004c0c00000c0f900f6c0fd0004c00000c0 +c0fb0080c0f3c0040000c0c0c0800080008800f000c8c0f80080c0c8c080 +0080008800f000c8c0f80080c0c8c0800080008800f000c8c0f80080c0c8 +c0800080008800f000c8c0f80080c0c8c0800080008800f00088c0f80088 +c0800080008800f00088c0f80088c0800080008800f000fdc0010000f4c0 +fb00dbc0fd00dbc00000f9c00000f4c0fd00fdc0010000f5c0fd00cbc000 +00d1c0040000c0c0c0800080008800f000fdc0010000f5c0060000c0c0c0 +0000ddc0040000c00000ddc0010000fac0010000f4c0fc0003c0c00000f4 +c0010000ccc0010000d1c0040000c0c0c0800080008800f000fdc0010000 +f5c0060000c0c0c00000ddc0040000c0c000ddc0010000fac0010000f4c0 +fc0003c0c00000f4c0010000ccc0010000d1c0040000c0c0c08000800088 +00f000fdc0010000f4c0010000fac0fc00fdc0080000c0c0c00000c0c0fb +00f4c0010000fbc0fb0012c0c00000c0000000c0c0000000c00000c0c0c0 +fc00fdc0fa0001c0c0fa00fdc0fb0003c0c00000fcc0010000f6c0fc00fd +c0fb00fdc0fb0012c0c00000c0c00000c0c0000000c00000c0c0c0fb0009 +c0c00000c0000000c0c0fa00d3c0040000c0c0c0800080008800f000fdc0 +010000f3c0fd00f9c0120000c0c00000c0c0c00000c00000c0c0c00000f6 +c0fc00fdc00f0000c0c0c00000c0c0000000c00000c0f900fbc0010000fc +c0010000fac0010000fcc00f0000c0c0c00000c000c0c000c0c00000f7c0 +1e0000c00000c0c00000c0c0c00000c00000c0c0c00000c00000c0c00000 +c0c0f90014c00000c0c0c00000c0c00000c0c00000c0c0c00000d1c00400 +00c0c0c0800080008800f000fdc0010000f1c0040000c0c0c0fb0009c0c0 +0000c0c0c00000c0f900f5c0010000fcc0180000c0c0c00000c0c00000c0 +c00000c00000c000c00000c0c0fb00fcc0010000fac0010000fcc0f900fd +c0050000c0c00000f8c0110000c0c00000c0c00000c0c0c00000c00000fa +c00f0000c0c00000c0c00000c000c00000c0f9000cc0c00000c0c00000c0 +c0c00000d1c0040000c0c0c0800080008800f000fdc0010000f0c0140000 +c00000c0c00000c0c00000c0c0c00000c00000f0c0010000fcc00a0000c0 +c0c00000c0c00000fbc00d0000c000c00000c00000c0c00000fcc0010000 +fac0010000fcc0010000f8c0050000c0c00000f8c0110000c0c00000c0c0 +0000c0c0c00000c00000fac0110000c0c00000c0c00000c000c00000c000 +00f9c00a0000c0c00000c0c0c00000d1c0040000c0c0c0800080008800f0 +00fdc0010000f5c0190000c0c0c00000c00000c0c00000c0c00000c0c0c0 +0000c00000f0c0010000fcc00a0000c0c0c00000c0c00000fbc00d0000c0 +00c00000c00000c0c00000fcc0010000fac0010000fcc0010000f8c00500 +00c0c00000f8c0110000c0c00000c0c00000c0c0c00000c00000fac01100 +00c0c00000c0c00000c000c00000c00000f9c00a0000c0c00000c0c0c000 +00d1c0040000c0c0c0800080008800f000fdc0010000f5c01e0000c0c0c0 +0000c00000c0c00000c0c0c00000c00000c0c00000c0c0c00000f5c00100 +00fcc00a0000c0c0c00000c0c00000fbc00d0000c000c00000c00000c0c0 +0000fcc01d0000c00000c0c0c00000c00000c00000c0c0c00000c0c0c000 +00c0c00000f8c03e0000c0c00000c0c00000c0c0c00000c00000c0c0c000 +00c00000c0c00000c0c00000c000c00000c00000c0c0c00000c0c00000c0 +c00000c0c0c00000c00000d4c0040000c0c0c0800080008800f000fdc001 +0000f4c0fb00fdc0fd0008c00000c0c0c0000000fcc0fb00f5c0fc00fcc0 +fb0001c0c0fc00fcc00e0000c0c0c00000c0c0000000c00000fcc0fd00fb +c0fd00fdc0fb0009c0c000c0c0c000c0c000f7c0fd0004c00000c0c0fb00 +fdc0fb00fdc0fd000cc00000c00000c0c0c00000c0c0fb00fdc0050000c0 +c00000fcc0fd00d3c0040000c0c0c0800080008800f00088c0f80088c080 +0080008800f00088c0f80088c0800080008800f00088c0f80088c0800080 +008800f00088c0f80088c0800080008800f00080c088c0800080008800f0 +0080c088c0800080008800f000fdc001000080c092c0040000c0c0c08000 +80008800f000fdc001000080c092c0040000c0c0c0800080008800f000fd +c001000080c092c0040000c0c0c0800080008800f000fdc001000080c092 +c0040000c0c0c0800080008800f000fdc001000080c092c0040000c0c0c0 +800080008800f000fdc0040000c0c0c0f90000c0f90000c0f90000c0f900 +00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 +00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f900fcc0040000c0c0c0800080008800f000fdc00100 +0080c092c0040000c0c0c0800080008800f000fdc001000080c092c00400 +00c0c0c0800080008800f000fdc001000080c092c0040000c0c0c0800080 +008800f000fdc001000080c092c0040000c0c0c0800080008800f00080c0 +88c0800080008800f00080c088c0800080008800f00080c088c080008000 +8800f00080c088c0800080008800f000f0c0f80080c0a0c0800080008800 +f000f0c0f80080c0a0c08000800088000000fbc0fc00fdc0fd00fdc00100 +00f2c0090000c0c000c0c0c00000fbc0fd00fbc0fd00f5c0fd00ebc0fd00 +d0c0fd00c3c00000f9c0010000dac0040000c0c0c080008000880006c0c0 +000000c0c0fc0009c0c0000000c0c0c00000f5c00c00c0c00000c0c000c0 +c0c00000fac0010000fac0010000f4c0010000eac0010000cfc0010000c4 +c0010000f9c0010000dac0040000c0c0c080008000880006c0c0000000c0 +c0fc0009c0c0000000c0c0c00000f5c00700c0c00000c0c000f5c0010000 +fac0010000f4c0010000eac0010000cfc0010000c4c0010000d1c0040000 +c0c0c08000800088000200c0c0f80009c0c0000000c0c0c00000f5c00c00 +c0c000c0c00000c0c0000000fac0010000fac0010000f4c0fc00fcc0fc00 +fcc0fb00fdc0170000c0c00000c0c0000000c00000c00000c0000000c0c0 +c0fb000fc0c00000c0c00000c0c00000c0000000fcc0fc00f5c0fb00fdc0 +fb0012c0c00000c0000000c0c00000c0000000c0c0c0fb00fdc0fb0001c0 +c0fa00fcc0fd00fcc0fb000ac0c00000c0000000c0c0c0fb00f3c0040000 +c0c0c0800080008800040000c0c0c0fa0009c0c0000000c0c0c00000f5c0 +0000fcc0fd00fdc0010000fac0010000fac0010000f4c0040000c00000fa +c0410000c0c00000c0c0c00000c0c00000c00000c0c00000c0c00000c0c0 +c0000000c00000c00000c0c0c00000c00000c0c00000c0c0c00000c0c000 +00c0c00000c00000f6c0330000c0c0c00000c00000c0c0c00000c0c00000 +c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000c0c0 +c00000f9c01b0000c0c0c00000c0c0c00000c0c00000c0c00000c00000c0 +c0c00000f4c0040000c0c0c0800080008800fc0001c0c0fb0009c0c00000 +00c0c0c00000f5c00000fcc0fd00fdc0010000fac0010000fac0010000f4 +c0070000c0c00000c0c0fb0003c0c00000f9c0fc00fdc02d0000c0c00000 +c0c0c00000c0c00000c00000c0c0c00000c00000c0c00000c0c0c00000c0 +c00000c00000c0c00000f6c0010000fac0170000c0c0c00000c0c00000c0 +c00000c0c00000c0c00000c0f90002c00000f8c0010000f9c0170000c0c0 +c00000c0c0c00000c0c00000c0c00000c0c00000f0c0040000c0c0c08000 +80008800fb0001c0c0fc0009c0c0000000c0c0c00000f5c00c00c0c000c0 +c00000c0c0c00000fac0010000fac0010000f4c0100000c0c00000c00000 +c0c00000c0c00000f9c0fc00fdc00a0000c0c00000c0c0c00000fbc01d00 +00c0c0c00000c00000c0c00000c0c0c00000c0c00000c00000c0c00000f6 +c0010000fac0190000c0c0c00000c0c00000c0c00000c0c00000c0c00000 +c00000fac0010000f8c0010000f9c0190000c0c0c00000c0c0c00000c0c0 +0000c0c00000c0c0c0000000f2c0040000c0c0c080008000880006c0c000 +0000c0c0fc0009c0c0000000c0c0c00000f5c00c00c0c00000c0c000c0c0 +c00000fac0010000fac0010000f4c0100000c0c00000c00000c0c00000c0 +c00000f9c0110000c00000c0c00000c0c00000c0c0c00000fbc01d0000c0 +c0c00000c00000c0c00000c0c0c00000c0c00000c00000c0c00000f6c001 +0000fac0190000c0c0c00000c0c00000c0c00000c0c00000c0c00000c000 +00fac0010000f8c0010000f9c0130000c0c0c00000c0c0c00000c0c00000 +c0c00000fbc0010000f3c0040000c0c0c080008000880006c0c0000000c0 +c0fc0009c0c0000000c0c0c00000f5c00c00c0c00000c0c000c0c0c00000 +fac0010000fac0010000f4c0290000c0c00000c00000c0c00000c0c00000 +c0c0c00000c0c00000c0c00000c00000c0c00000c0c0c00000fbc01d0000 +c0c0c00000c00000c0c00000c0c0c00000c0c00000c00000c0c00000f6c0 +360000c0c0c00000c00000c0c0c00000c0c00000c0c00000c0c00000c0c0 +0000c00000c0c0c00000c00000c0c0c00000c0c0c00000c00000fcc01b00 +00c0c0c00000c0c0c00000c0c00000c0c00000c00000c0c0c00000f4c004 +0000c0c0c08000800088000000fbc0fc00fcc0060000c0c0c00000f2c006 +0000c0c000c0c0fc00fcc0fc00fcc0fc00f5c0fb00fdc0fd0004c00000c0 +c0fb000ac0c0000000c0c00000c0c0fb0001c0c0fc00fbc0fb00fdc0fd00 +12c00000c0c00000c0c00000c0c0000000c00000f6c0fb00fdc0fb00fdc0 +0f0000c0c00000c0c00000c0c00000c0c0fb00fdc0fb00fbc0fd00fcc0fc +00fdc0fb00fdc0070000c0c00000c0c0fb00f3c0040000c0c0c080008000 +8800f000f0c0f800bcc001000080c0e6c0800080008800f000f0c0f800c0 +c0050000c0c0000080c0e6c0800080008800f000f0c0f800bfc0fc0080c0 +e5c0800080008800f000f0c0f80080c0a0c0800080008800f00080c0f8c0 +f80098c0800080008800f00080c0f8c0f80098c0800080008800f000fdc0 +010000f5c0fd0003c0c00000fcc0010000fbc0fd00fbc0fd00ebc0fd00fb +c0fd00c5c0fd0000c0fc00fdc0010000a2c0040000c0c0c0800080008800 +f000fdc0010000f4c0050000c0c00000fcc0010000fac0010000fac00100 +00eac0010000fac0010000c5c0030000c0c0fc00fdc0010000a2c0040000 +c0c0c0800080008800f000fdc0010000f4c0050000c0c00000f4c0010000 +fac0010000eac0010000fac0010000c5c0030000c0c0fc009dc0040000c0 +c0c0800080008800f000fdc0010000f4c0040000c00000fcc0fd00fac001 +0000fac0010000f4c0fc00fac0010000fac0010000f4c0fb00fdc0fb0012 +c0c00000c0000000c0c00000c0000000c0c0c0fb00fdc0fb00f8c0060000 +c0c0000000fcc0fb000ac0c00000c0000000c0c0c0fb00bbc0040000c0c0 +c0800080008800f000fdc0010000f4c0fc00fac0010000fac0010000fac0 +010000f1c0010000fbc0010000fac0010000f5c0330000c0c0c00000c000 +00c0c0c00000c0c00000c0c00000c0c00000c0c00000c00000c0c0c00000 +c00000c0c0c00000c00000c0c0fc00fdc01b0000c0c0c00000c0c0c00000 +c0c00000c0c00000c00000c0c0c00000bcc0040000c0c0c0800080008800 +f000fdc0010000f4c0fc00fac0010000fac0010000fac0010000f4c0fb00 +fbc0010000fac0010000f5c0010000fac0170000c0c0c00000c0c00000c0 +c00000c0c00000c0c00000c0f90002c00000fac0030000c0c0fc00fdc017 +0000c0c0c00000c0c0c00000c0c00000c0c00000c0c00000b8c0040000c0 +c0c0800080008800f000fdc0010000f4c0040000c00000fbc0010000fac0 +010000fac0010000f5c0050000c0c00000fbc0010000fac0010000f5c001 +0000fac0190000c0c0c00000c0c00000c0c00000c0c00000c0c00000c000 +00fac0010000fac0030000c0c0fc00fdc0190000c0c0c00000c0c0c00000 +c0c00000c0c00000c0c0c0000000bac0040000c0c0c0800080008800f000 +fdc0010000f4c0050000c0c00000fcc0010000fac0010000fac0010000f5 +c0050000c0c00000fbc0010000fac0010000f5c0010000fac0190000c0c0 +c00000c0c00000c0c00000c0c00000c0c00000c00000fac0010000fac003 +0000c0c0fc00fdc0130000c0c0c00000c0c0c00000c0c00000c0c00000fb +c0010000bbc0040000c0c0c0800080008800f000fdc0010000f4c0050000 +c0c00000fcc0010000fac0010000fac0010000f5c0050000c0c00000fbc0 +010000fac0010000f5c0560000c0c0c00000c00000c0c0c00000c0c00000 +c0c00000c0c00000c0c00000c00000c0c0c00000c00000c0c0c00000c000 +00c0c000c0c000c0c0c00000c0c0c00000c0c0c00000c0c00000c0c00000 +c00000c0c0c00000bcc0040000c0c0c0800080008800f000fdc0010000f5 +c0fd0006c0c00000c0c0c0fc00fcc0fc00fcc0fc00f5c0fd0005c00000c0 +c0c0fc00fcc0fc00f5c0fb00fdc0fb00fdc00f0000c0c00000c0c00000c0 +c00000c0c0fb00fdc0fb000bc0c0000000c0c0c00000c0c0fc00fdc0fb00 +fdc0070000c0c00000c0c0fb00bbc0040000c0c0c0800080008800f00080 +c0f8c0f80098c0800080008800f00080c0f8c0f80098c0800080008800f0 +0080c0f8c0f80098c0800080008800f00080c0f8c0f80098c08000800088 +00f000f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080 +008800f000fdc0010000eec00500c0c0000000edc0fd00e9c0fd00fbc0fd +00ddc0fd0088c0040000c0c0c0f500fdc0f30000c0e10000c0e90000c0fc +00fdc0e00001c0c0fa0000c0e300fac00300c0c0c0f80001c0c0ca0001c0 +c0da00fdc0f30000c0fc00fdc0eb00fdc0eb00fdc0e300f000fdc0010000 +f5c00c00c0c00000c0c000c0c0c00000ecc0010000e8c0010000fac00100 +00dcc001000088c0040000c0c0c0f40001c0c0f40001c0c0e20001c0c0ea +0001c0c0fb0001c0c0e00001c0c0fb0001c0c0e300fac0030000c0c0f800 +01c0c0ca0001c0c0db0004c0c000c0c0f50001c0c0fb0001c0c0ea0001c0 +c0ea0001c0c0e300f000fdc0010000f5c00c00c0c0000000c000c0c0c000 +00ecc0010000e8c0010000fac0010000dcc001000088c0040000c0c0c0f4 +0001c0c0f40001c0c0e20001c0c0ea0001c0c0fb0001c0c0d90001c0c0e3 +0009c000c0c000c00000c0c0990004c0c00000c0f50001c0c0fb0001c0c0 +ea0001c0c0ea0001c0c0e300f000fdc0010000f5c01800c0c000c0000000 +c0c0c00000c0c0c00000c0c00000c0c0c0fb00fdc0040000c00000f5c0fc +00fac0010000fac0010000f4c0fb00fdc0fc00fcc0fb00fdc0070000c000 +00c0c0c0fb00fdc0fb009bc0010000fbc00300c0c0c0fc00fcc0fd00fcc0 +fd00fac0fd00fbc0fd00fbc0f600fac0fd00fbc0f600fac0fd0007c0c000 +c0c0000000fbc0f500fbc0fc00fdc0fd00fac0fd00fbc0eb0001c0c0fc00 +04c0c000c0c0fc00fdc0fc00fbc0f60008c0c0000000c0c00000fbc00a00 +00c0c000c0c0c0000000fbc0fc00fdc0fc00fbc0070000c0c000c0c0c0f5 +00fbc0fc0001c0c0f400fac0fd0007c0c000c0c0000000fbc0f500fcc0fc +00fbc0fd00fbc0fd0005c0c00000c0c0e700f000fdc0010000f5c00000fc +c0fd00fdc01b0000c0c0c00000c0c00000c0c00000c0c0c00000c0c00000 +00c00000f3c0010000fbc0010000fac0010000f5c0060000c0c0c00000fb +c0220000c0c00000c0c0c00000c0c0000000c00000c00000c0c0c00000c0 +0000c0c0c000009cc0120000c0c0c000c0c00000c0c00000c0c000c0c0fa +0001c0c0fc0001c0c0fc000ec0c0000000c0c000c0c0000000c0c0f50001 +c0c0fc0006c0c0000000c0c0f50001c0c0fb00fdc00a00c0c000c0c00000 +00c0c0f70006c0c0000000c0c0fc0001c0c0fb0001c0c0fc0006c0c00000 +00c0c0ec0001c0c0fc00fdc00200c0c0fc000bc0c0000000c0c0000000c0 +c0f7001ec0c0000000c0c000c0c0000000c0c00000c0c0c000c0c000c0c0 +000000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0c0f700 +08c0c0000000c0c00000fcc0f30001c0c0fb00fdc00a00c0c000c0c00000 +00c0c0f6001cc0c000c0c00000c0c0000000c0c000c0c0000000c0c00000 +c0c000c0c0e600f000fdc0010000f5c01a00c0c000c0000000c0c0c00000 +c0c0c00000c0c00000c0c0c00000fac0050000c0c00000f6c0fb00fbc001 +0000fac0010000f5c0010000f9c0fb0003c0c00000f9c0060000c0c00000 +c0f90003c0c0000098c0150000c0c0c000c0c00000c0c000c0c00000c0c0 +000000fbc0fc0001c0c0fc00f9c0030000c0c0f10001c0c0fc0006c0c000 +0000c0c0f50001c0c0fb0006c0c00000c0c000f9c0f60001c0c0f80001c0 +c0fb0001c0c0fc00f9c0ec0001c0c0fc0005c0c00000c0c0fc0001c0c0fc +0001c0c0f30007c0c0000000c0c000f9c00b0000c0c00000c0c00000c0c0 +f80013c0c0000000c0c0000000c0c00000c0c00000c0c0f7000bc0c00000 +00c0c0000000c0c0f20001c0c0fb0006c0c00000c0c000f9c0f60017c0c0 +0000c0c000c0c0000000c0c000c0c0000000c0c00000fcc0e500f000fdc0 +010000f5c00200c0c0fb00fdc00a0000c0c0c00000c0c00000fcc0fd00fc +c0050000c0c00000f7c0050000c0c00000fbc0010000fac0010000f5c001 +0000fac0090000c0c00000c0c00000f9c0080000c0c00000c00000f8c0fd +009ac01a0000c0c0c000c0c00000c0c000c0c00000c0c00000c0c00000c0 +c0fc0001c0c0fc0001c0c0f800fdc0f30001c0c0fc0006c0c0000000c0c0 +f50001c0c0fb0008c0c00000c0c000c0c0f000fdc0fa0001c0c0fb0001c0 +c0fc0001c0c0e70001c0c0fc0005c0c00000c0c0fc0001c0c0fb00fdc0f5 +0009c0c0000000c0c000c0c0f90001c0c0f900fdc0fa0013c0c0000000c0 +c0000000c0c00000c0c00000c0c0f7000bc0c0000000c0c0000000c0c0f2 +0001c0c0fb0008c0c00000c0c000c0c0f10017c0c00000c0c000c0c00000 +00c0c000c0c0000000c0c00000fcc0e500f000fdc0010000f5c00200c0c0 +fb00fdc00a0000c0c0c00000c0c00000fac00a0000c0c0c00000c0c00000 +f7c0050000c0c00000fbc0010000fac0010000f5c0010000fac0090000c0 +c00000c0c00000f9c0080000c0c00000c00000f6c00100009bc01a0000c0 +c0c000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fc0001c0c0fc +0001c0c0f60001c0c0f40001c0c0fc0006c0c0000000c0c0f50001c0c0fb +0008c0c00000c0c000c0c0ee0001c0c0fb0001c0c0fb0001c0c0fc0001c0 +c0e70001c0c0fc0005c0c00000c0c0fc0001c0c0f90001c0c0f60009c0c0 +000000c0c000c0c0f90001c0c0f70001c0c0fb0013c0c0000000c0c00000 +00c0c00000c0c00000c0c0f7000bc0c0000000c0c0000000c0c0f20001c0 +c0fb0008c0c00000c0c000c0c0f1001cc0c00000c0c000c0c0000000c0c0 +00c0c0000000c0c00000c0c000c0c0e600f000fdc0010000f5c00200c0c0 +fb00fdc01b0000c0c0c00000c0c00000c0c00000c0c0c00000c0c00000c0 +c00000f7c0050000c0c00000fbc0010000fac0010000f5c02e0000c0c0c0 +0000c00000c0c00000c0c00000c0c0c00000c0c00000c0c00000c00000c0 +c0c00000c00000c0c0c000009cc01a0000c0c0c000c0c00000c0c000c0c0 +0000c0c00000c0c00000c0c0fc0014c0c000c0c000c0c0000000c0c000c0 +c0000000c0c0f5000cc0c000c0c000c0c0000000c0c0f50014c0c000c0c0 +0000c0c00000c0c000c0c0000000c0c0f70006c0c0000000c0c0fc0001c0 +c0fb000cc0c000c0c000c0c0000000c0c0fc0001c0c0f20001c0c0fc0005 +c0c00000c0c0fc000bc0c0000000c0c0000000c0c0f60011c0c000c0c000 +00c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0013c0c0000000 +c0c0000000c0c00000c0c00000c0c0f7000bc0c0000000c0c0000000c0c0 +f20014c0c000c0c00000c0c00000c0c000c0c0000000c0c0f6001dc0c000 +00c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0e700f0 +00fdc0010000f1c0fc0001c0c0fc00fdc0fd0004c00000c0c0fb0008c0c0 +000000c0c00000f6c0fd0005c00000c0c0c0fc00fcc0fc00f5c0fb00fdc0 +fd0004c00000c0c0fb000ac0c0000000c0c00000c0c0fb00fdc0fb009bc0 +050000c0c0c000fbc0fd00fdc00a00c0c00000c0c0c000c0c0fc00fdc0fd +00fbc0fd00fbc0f300fdc0fd00fbc0f300fdc00a0000c0c0c00000c0c000 +00fbc0f500fbc0fc00fcc0fb00fdc0fd00fbc0fb0001c0c0f300fcc00b00 +00c0c0c00000c0c0000000fcc0fd00fbc0f400fdc0fc00fbc0010000fcc0 +fb00fbc0fc00fcc0fd00fbc0fd0005c0c00000c0c0f600fbc0fd00fcc0f2 +00fdc00a0000c0c0c00000c0c00000fbc0f500fbc0fd00fbc0fd00fbc008 +0000c0c0c00000c0c0e700f000f0c0f80080c0a0c00200c0c0800080008b +00f000f0c0f80080c0a0c00200c0c0800080008b00f000f0c0f80080c09c +c0800080008c00f000f0c0f80080c0a0c0800080008800f000a8c0f80080 +c0e8c0800080008800f000a8c0f80080c0e8c0800080008800f000fdc001 +0000f5c0fa00bec0fd0004c0c0000000f5c0fd0080c0fbc0040000c0c0c0 +f600fdc0fb00fdc0ed00fdc0980001c0c0e20001c0c0f20000c0e90000c0 +fc00fdc0eb00fbc0ed00fac0ee00fdc0b300f000fdc0010000f4c0050000 +c0c00000bfc0fd0004c0c0000000f6c0040000c0000080c0fcc0040000c0 +c0c0f50001c0c0fa0001c0c0ec0001c0c0980001c0c0e20001c0c0f30001 +c0c0ea0001c0c0fb0001c0c0ea0004c0c000c0c0ed0005c0c00000c0c0ee +0001c0c0b300f000fdc0010000f4c0050000c0c00000bfc0f800f6c00400 +00c0c00080c0fcc0040000c0c0c0f50001c0c0fa0001c0c0ec0001c0c080 +00e90001c0c0ea0001c0c0fb0001c0c0ea0005c0c00000c0c0ee0005c0c0 +0000c0c0ee0001c0c0b300f000fdc0010000f4c0070000c0c00000c0c0fb +00fdc0fb00fdc0fb0012c0c00000c0c00000c0c00000c0000000c0c0c0fb +00fdc0fb00f6c0040000c0c0c0fb0003c0000000fcc0010000fbc0fb0083 +c0050000c0c0c000fcc0fa0001c0c0fa0001c0c0f400fbc0fd0007c0c000 +c0c0000000fcc0fd0010c0c000c0c0c0000000c0c0c000c0c00000fbc0fd +00fbc0f500fcc0fd0008c0c000c0c0c0000000fbc0f500fdc00400c0c000 +00fbc0fc00fdc0fd000ec0c000c0c0c0000000c0c0c000c0c0f500fdc0fd +0007c0c000c0c0c00000fac0fd00fbc0f600fac0fd0007c0c000c0c00000 +00fbc0f50007c0c00000c0c00000fbc0fd00fbc0fd0007c0c00000c0c000 +00fbc0fd00fbc0fd0005c0c00000c0c0b700f000fdc0010000f4c0fb0038 +c0c00000c0c0c00000c00000c0c0c00000c00000c0c0c00000c00000c0c0 +0000c0c0c0000000c00000c00000c0c0c00000c00000c0c0c00000f7c0fd +000dc0c0000000c00000c0c00000c0c0fc00fdc0060000c0c0c0000084c0 +040000c0c0c0fc0001c0c0fb0001c0c0fa0001c0c0f5000ec0c0000000c0 +c00000c0c0c000c0c0fb0022c0c0000000c0c00000c0c000c0c00000c0c0 +0000c0c0000000c0c000c0c0000000c0c0f30012c0c0000000c0c0c000c0 +c000c0c0000000c0c0f7000ec0c00000c0c00000c0c0000000c0c0fc0001 +c0c0fc000cc0c00000c0c000c0c00000c0c0f30001c0c0fc000ac0c00000 +c0c0000000c0c0fc0006c0c0000000c0c0f50001c0c0fb00fdc00a00c0c0 +00c0c0000000c0c0f60017c0c00000c0c000c0c0000000c0c000c0c00000 +00c0c00000fbc0170000c0c0000000c0c000c0c0000000c0c00000c0c000 +c0c0b600f000fdc0010000f4c0060000c00000c0c0f90003c0c00000fbc0 +190000c0c0c00000c00000c0c00000c0c0c00000c0c00000c00000fac0f9 +00f7c0fd0010c0c0000000c00000c0c00000c0c0c00000fcc0060000c0c0 +c0000084c0050000c0c0c000fbc0fb0001c0c0fa0001c0c0f50001c0c0f9 +0007c0c00000c0c00000fbc0fd000ec0c00000c0c000c0c00000c0c00000 +f9c0030000c0c0f200fbc0fd0006c0c00000c0c000f9c0f7000ec0c00000 +c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000c0c00000 +c0c0f30001c0c0fc000ac0c00000c0c0000000c0c0fc0006c0c0000000c0 +c0f50001c0c0fb0006c0c00000c0c000f9c0f60010c0c00000c0c000c0c0 +000000c0c000c0c0f90017c0c00000c0c000c0c0000000c0c000c0c00000 +00c0c00000fcc0b500f000fdc0010000f4c0080000c0c00000c00000f8c0 +fd00fdc0120000c0c0c00000c00000c0c00000c0c0c00000fbc0010000fa +c0010000f2c0fd0010c0c0000000c00000c0c00000c0c0c00000fcc00600 +00c0c0c0000084c0010000fbc0030000c0c0fb0001c0c0fa0001c0c0f500 +01c0c0f90020c0c00000c0c000c0c00000c0c0000000c0c00000c0c000c0 +c00000c0c00000c0c0f800fdc0f5000ac0c00000c0c0000000c0c0fb0001 +c0c0f2000ec0c00000c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c0 +0000c0c000c0c00000c0c0f30001c0c0fc000ac0c00000c0c0000000c0c0 +fc0006c0c0000000c0c0f50001c0c0fb0008c0c00000c0c000c0c0f10010 +c0c00000c0c000c0c0000000c0c000c0c0f90017c0c00000c0c000c0c000 +0000c0c000c0c0000000c0c00000fcc0b500f000fdc0010000f4c0080000 +c0c00000c00000f6c0160000c0c00000c0c0c00000c00000c0c00000c0c0 +c00000fbc0010000fac0010000f2c0fd0010c0c0000000c00000c0c00000 +c0c0c00000fcc0060000c0c0c0000084c0010000fbc0030000c0c0fb0001 +c0c0fa0001c0c0f50001c0c0f90020c0c00000c0c000c0c00000c0c00000 +00c0c00000c0c000c0c00000c0c00000c0c0f60001c0c0f6000ac0c00000 +c0c0000000c0c0fb0001c0c0f2000ec0c00000c0c00000c0c0000000c0c0 +fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0f30001c0c0fc000ac0 +c00000c0c0000000c0c0fc0006c0c0000000c0c0f50001c0c0fb0008c0c0 +0000c0c000c0c0f10010c0c00000c0c000c0c0000000c0c000c0c0f9001c +c0c00000c0c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c0b6 +00f000fdc0010000f4c0290000c0c00000c00000c0c0c00000c00000c0c0 +c00000c00000c0c0c00000c00000c0c00000c0c0c00000fbc00e0000c0c0 +c00000c00000c0c0c00000f7c0fd0010c0c0000000c00000c0c00000c0c0 +c00000fcc0060000c0c0c0000084c0010000fbc0030000c0c0fb0001c0c0 +fa0001c0c0f50036c0c0000000c0c00000c0c00000c0c000c0c00000c0c0 +000000c0c00000c0c000c0c00000c0c00000c0c0000000c0c000c0c00000 +00c0c0f7000ac0c00000c0c0000000c0c0fb0006c0c0000000c0c0f7000e +c0c00000c0c00000c0c0000000c0c0fc0001c0c0fc000cc0c00000c0c000 +c0c00000c0c0f30001c0c0fc0015c0c00000c0c0000000c0c000c0c000c0 +c0000000c0c0f50014c0c000c0c00000c0c00000c0c000c0c0000000c0c0 +f60035c0c000c0c00000c0c0000000c0c000c0c0000000c0c00000c0c000 +00c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c0b700f0 +00fdc0010000f5c0fd0005c0c00000c0c0fb00fdc0fb00fdc0fb00fdc0fd +0003c00000c0fc00fbc0fb00fdc0fb00f6c0010000fcc00a0000c00000c0 +c00000c0c0fc00fcc0fb0083c00e0000c0c0c000c0c0c000c0c0000000fc +c0fc00fcc0f500fbc01a0000c0c0c00000c0c00000c0c0c000c0c00000c0 +c00000c0c00000fbc0fd00fbc0fd00fbc0f500fdc00300c0c000fcc0fb00 +fbc0f500fbc0fd00fbc0fc00fcc0fd0007c0c00000c0c00000fbc0f400fc +c0fd0005c0c00000c0c0fc00fdc0fd00fbc0f300fdc00a0000c0c0c00000 +c0c00000fbc0f600fbc0fc00fbc0fd00fbc0010000fac0fd00fbc0fd00fb +c0080000c0c0c00000c0c0b700f000a8c0f80080c0e8c0bc0001c0c0c200 +01c0c0e20001c0c08000ae00f000a8c0f80080c0e8c0c00005c0c00000c0 +c0c60005c0c00000c0c0e60005c0c00000c0c08000ae00f000a8c0f80080 +c0e8c0bf00fcc0c400fcc0e400fcc08000ad00f000a8c0f80080c0e8c080 +0080008800f000f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0 +c0800080008800f000fdc0010000f3c0fd0002c0c000cdc0010000f2c0fd +0080c0ebc0040000c0c0c0ee00fdc0fb00fdc0d20001c0c0fb00fdc0f500 +fdc0f900fdc0ed00fac0ec00fdc0f400fbc0de0006c0c0000000c0c0eb00 +01c0c0fb0000c0f20001c0c08c00f000fdc0010000f2c00400c0c0c000cd +c0010000f3c0040000c0000080c0ecc0040000c0c0c0ed0001c0c0fa0001 +c0c0d20001c0c0fa0001c0c0f40001c0c0f80001c0c0ec0005c0c00000c0 +c0ec0001c0c0f50006c0c0000000c0c0df00fdc0030000c0c0ec0001c0c0 +fb0001c0c0f10001c0c08d00f000fdc0010000eec00000bec0040000c0c0 +0080c0ecc0040000c0c0c0ed0001c0c0fa0001c0c0ca0001c0c0f40001c0 +c0f80001c0c0ec0005c0c00000c0c0ec0001c0c0f50006c0c0000000c0c0 +df00fcc00200c0c0ed0001c0c0fa0001c0c0f00001c0c08e00f000fdc001 +0000eec00100c0fb000ac0c0000000c00000c0c0c0fb0010c0c00000c000 +0000c0c00000c0c0c00000f5c0fd00fdc0050000c0000000fcc0010000fb +c0fb0080c0f3c0050000c0c0c000fbc0fd00fcc0fa0001c0c0fa000bc0c0 +000000c0c0000000c0c0f600fcc0fd0008c0c0000000c0c00000fcc0fb00 +fdc0fa0001c0c0fc00fcc0fc00fcc0fa0001c0c0fc00fbc0f50007c0c000 +00c0c00000fbc0fd00fcc0fa0001c0c0f40001c0c0fa00fbc0fd00fbc007 +0000c0c000c0c0c0f600f9c0010000fbc00d0000c0c0000000c0c0000000 +c0c0fc00fac0070000c0c0c000c0c0fa0001c0c08e00f000fdc0010000f3 +c00d00c000c0c0000000c0c0c00000c0f90017c00000c0c0c00000c0c000 +0000c00000c00000c0c0c00000f4c0010000fcc0070000c0c00000c0c0fc +00fdc0060000c0c0c0000080c0f4c0010000fbc0fd0001c0c0fb0001c0c0 +fb0001c0c0fa000bc0c0000000c0c0000000c0c0f3000ac0c00000c0c000 +0000c0c0fb0001c0c0fb0001c0c0fa0001c0c0f90009c0c0000000c0c000 +c0c0fb000bc0c0000000c0c0000000c0c0f600fbc0080000c0c0000000c0 +c0fb0001c0c0fb0001c0c0f300fdc0fd0016c0c0000000c0c000c0c00000 +00c0c00000c0c00000c0c0f70002c0c000fcc01400c0c0000000c0c000c0 +c0000000c0c0000000c0c0fa0001c0c0fc00f9c0fb0001c0c08e00f000fd +c0010000f3c0fd0001c0c0f8001fc00000c000c00000c00000c0c0c00000 +c0c00000c0c00000c00000c0c0c00000f4c0010000fcc00a0000c0c00000 +c0c0c00000fcc0060000c0c0c0000080c0f4c0010000fbc0f900fbc0fb00 +01c0c0fa000bc0c0000000c0c0000000c0c0f600fbc00a0000c0c0000000 +c0c00000fbc0fb0001c0c0fa0001c0c0fc00fbc0fd0005c0c00000c0c0fc +0004c0c0000000f9c0f60006c0c000c0c00000f9c0010000fbc0fb0001c0 +c0f1001ac0c00000c0c0000000c0c000c0c0000000c0c00000c0c00000c0 +c0f7001bc0c00000c0c0c000c0c0000000c0c000c0c000c000c0c0000000 +c0c0fa0001c0c0fc0006c0c000c000c0c0fb0001c0c08e00f000fdc00100 +00f3c0fd0004c0c0000000fac0120000c000c00000c00000c0c0c00000c0 +c00000fbc0060000c0c0c00000f4c0010000fcc00a0000c0c00000c0c0c0 +0000fcc0060000c0c0c0000080c0f4c0010000fbc0fa0005c0c00000c0c0 +fb0001c0c0fa000bc0c0000000c0c0000000c0c0f70015c0c00000c0c000 +00c0c0000000c0c000c0c00000c0c0fb0001c0c0fa0013c0c0000000c0c0 +0000c0c0000000c0c00000c0c0fc0006c0c0000000c0c0f10008c0c00000 +c0c000c0c0fa0005c0c00000c0c0fb0001c0c0f00019c0c000c0c0000000 +c0c000c0c0000000c0c00000c0c00000c0c0f7001bc0c0000000c0c000c0 +c0000000c0c000c0c000c000c0c0000000c0c0fa0001c0c0fc0006c0c000 +c000c0c0fb0001c0c08e00f000fdc0010000f3c0fd0004c0c0000000fac0 +120000c000c00000c00000c0c0c00000c0c00000fbc0060000c0c0c00000 +f4c0010000fcc00a0000c0c00000c0c0c00000fcc0060000c0c0c0000080 +c0f4c0010000fbc0fa0005c0c00000c0c0fb0001c0c0fa000bc0c0000000 +c0c0000000c0c0f70015c0c00000c0c00000c0c0000000c0c000c0c00000 +c0c0fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000c0c0 +fc0006c0c0000000c0c0f10008c0c00000c0c000c0c0fa0005c0c00000c0 +c0fb0001c0c0f5001ec0c0000000c0c000c0c0000000c0c000c0c0000000 +c0c00000c0c00000c0c0f7001bc0c0000000c0c000c0c0000000c0c000c0 +c000c000c0c0000000c0c0fa0001c0c0fc0006c0c000c000c0c0fb0001c0 +c08e00f000fdc0010000f3c0fd001dc0c0000000c0c0c00000c00000c000 +c00000c00000c0c0c00000c0c00000fbc0060000c0c0c00000f4c0010000 +fcc00a0000c0c00000c0c0c00000fcc0060000c0c0c0000080c0f4c00100 +00fbc0fd0008c0c000c0c00000c0c0fb0001c0c0fa000bc0c0000000c0c0 +000000c0c0f70015c0c00000c0c0000000c0c000c0c00000c0c00000c0c0 +fb0001c0c0fa0013c0c0000000c0c00000c0c0000000c0c00000c0c0fc00 +0bc0c0000000c0c0000000c0c0f60014c0c00000c0c000c0c0000000c0c0 +00c0c00000c0c0fb0001c0c0f5001ec0c0000000c0c000c0c0000000c0c0 +00c0c0000000c0c00000c0c00000c0c0f7000fc0c0000000c0c000c0c000 +0000c0c000f9c0fc0001c0c0fb000cc0c000c0c000c0c000c000c0c0fc00 +01c0c0fa0001c0c09500f000fdc0010000f3c0fd0003c0c000c0fb000ac0 +c00000c0c0c00000c0c0fb0001c0c0fc00fbc0fa00f5c0fc00fdc0070000 +c0c00000c0c0fc00fcc0fb0080c0f3c0050000c0c0c000fbc0fd00fdc005 +00c0c0000000fcc0fc00fcc0fd00fac0f600fdc00800c0c0000000c0c0c0 +fc00fdc00500c0c0000000fcc0fc00fcc0fd00fdc00400c0c00000fbc0fc +00fcc0fd00fbc0f600fdc0050000c0c00000fbc0fd00fdc00500c0c00000 +00fcc0f500fbc0fd00fbc0fd00fbc0fd0005c0c00000c0c0f70008c0c000 +0000c0c00000fbc0fd0004c0c000c0c0fa0001c0c0fb00fdc00d0000c0c0 +000000c0c0000000c0c0f90001c0c09500f000f0c0f800dbc001000080c0 +c7c0db0001c0c080008000af00f000f0c0f800dcc001000080c0c6c0dc00 +01c0c080008000ae00f000f0c0f800e0c0fb0080c0c5c0e000fbc0800080 +00ad00f000f0c0f80080c0a0c0800080008800f00080c088c08000800088 +00f00080c088c0800080008800f000fdc001000080c092c0040000c0c0c0 +800080008800f000fdc001000080c092c0040000c0c0c0800080008800f0 +00fdc001000080c092c0040000c0c0c0800080008800f000fdc001000080 +c092c0040000c0c0c0800080008800f000fdc001000080c092c0040000c0 +c0c0800080008800f000fdc0040000c0c0c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 +00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 +00c0f90000c0f90000c0f900fcc0040000c0c0c0800080008800f000fdc0 +01000080c092c0040000c0c0c0800080008800f000fdc001000080c092c0 +040000c0c0c0800080008800f000fdc001000080c092c0040000c0c0c080 +0080008800f000fdc001000080c092c0040000c0c0c0800080008800f000 +80c088c0800080008800f00080c088c0800080008800f00080c088c08000 +80008800f00080c088c0800080008800f000f0c0f80080c0a0c080008000 +8800f000f0c0f80080c0a0c0800080008800f000fdc0010000f5c00000fb +c0020000c0fb00eec0fd00f1c0fd00fbc0fd0080c0dac0040000c0c0c080 +0080008800f000fdc0010000f3c0fd0009c0c0000000c0c0c00000eec001 +0000f0c0010000fac001000080c0dac0040000c0c0c0800080008800f000 +fdc0010000f3c0fd0009c0c0000000c0c0c00000eec0010000f0c0010000 +fac001000080c0dac0040000c0c0c0800080008800f000fdc0010000f3c0 +fd0005c0c000c00000f2c0fb00fdc0070000c00000c0c0c0fb00fbc00100 +00fac001000080c0dac0040000c0c0c0800080008800f000fdc0010000f3 +c0fd0007c0c000c0c0000000f5c0160000c0c0c00000c0c0000000c00000 +c00000c0c0c00000fcc0010000fac001000080c0dac0040000c0c0c08000 +80008800f000fdc0010000f3c0fd0002c0c000fcc0010000f5c0010000fa +c0060000c0c00000c0f900fcc0010000fac001000080c0dac0040000c0c0 +c0800080008800f000fdc0010000f3c0fd0002c0c000fbc0010000f5c0fd +00fcc0080000c0c00000c00000f7c0010000fac001000080c0dac0040000 +c0c0c0800080008800f000fdc0010000f3c0fd0009c0c0000000c0c0c000 +00f3c00d0000c0c0c00000c0c00000c00000f7c0010000fac001000080c0 +dac0040000c0c0c0800080008800f000fdc0010000f3c0fd0009c0c00000 +00c0c0c00000f7c0160000c0c0c00000c0c00000c0c00000c00000c0c0c0 +0000fcc0010000fac001000080c0dac0040000c0c0c0800080008800f000 +fdc0010000f5c00000fbc0020000c0fb00f5c0fb000ac0c0000000c0c000 +00c0c0fb00fcc0fc00fcc0fc0080c0dbc0040000c0c0c0800080008800f0 +00f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c08000800088 +00f000f0c0f80080c0a0c0800080008800f000f0c0f80080c0a0c0800080 +008800f00080c088c0800080008800f00080c088c0800080008800f000fd +c001000080c092c0040000c0c0c0800080008800f000fdc001000080c092 +c0040000c0c0c0800080008800f000fdc001000080c092c0040000c0c0c0 +800080008800f000fdc001000080c092c0040000c0c0c0800080008800f0 +00fdc001000080c092c0040000c0c0c0800080008800f000fdc0040000c0 +c0c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 +00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900fcc00400 +00c0c0c0800080008800f000fdc001000080c092c0040000c0c0c0800080 +008800f000fdc001000080c092c0040000c0c0c0800080008800f000fdc0 +01000080c092c0040000c0c0c0800080008800f000fdc001000080c092c0 +040000c0c0c0800080008800f00080c088c0800080008800f00080c088c0 +800080008800f00080c088c0800080008800f00080c088c0800080008800 +f000e8c0f80080c0a8c0800080008800f000e8c0f80080c0a8c080008000 +8800f000fdc0010000f5c0f90000c0f800fdc0010000fac0000080c0b9c0 +040000c0c0c0800080008800f000fdc0010000f4c0060000c0c00000c0f8 +00fdc0010000fbc001000080c0b9c0040000c0c0c0800080008800f000fd +c0010000f4c0060000c0c0c000c0f800f6c001000080c0b9c0040000c0c0 +c0800080008800f000fdc0010000f4c0030000c000fbc0fd000ac0c000c0 +c0000000c0c0c0fa0080c0cdc0fd0002c00000f4c0040000c0c0c0800080 +008800f000fdc0010000f4c0fc00fdc00c00c0c000c0c00000c0c0c00000 +fbc001000080c0ccc0050000c0c00000f3c0040000c0c0c0800080008800 +f000fdc0010000f4c0130000c000c0c0c00000c0c0c0000000c0c0c00000 +fbc001000080c0ccc0050000c0c00000f3c0040000c0c0c0800080008800 +f000fdc0010000f4c0010000fbc00c0000c0c0c0000000c0c0c00000fbc0 +01000080c0ccc0050000c0c00000f3c0040000c0c0c0800080008800f000 +fdc0010000f4c0130000c0c0c000c00000c0c0c0000000c0c0c00000fbc0 +01000080c0ccc0050000c0c00000f3c0040000c0c0c0800080008800f000 +fdc0010000f4c0130000c0c00000c000c0c000c0c00000c0c0c00000fbc0 +040000c0000080c0cfc0050000c0c00000f3c0040000c0c0c08000800088 +00f000fdc0010000f5c0f900fdc0fd0004c0c000c0c0fc00fbc0fd0080c0 +cdc0fb00f3c0040000c0c0c0800080008800f000e8c0f80080c0bcc00100 +00eec0800080008800f000e8c0f80080c0bcc0010000eec0800080008800 +f000e8c0f80080c0bdc0fc00efc0800080008800f000e8c0f80080c0a8c0 +800080008800f00080c088c0800080008800f00080c088c0800080008800 +0ac0c0000000c0c000c0c0c0fb0080c088c08000800088000ac0c0000000 +c0c00000c0c0fb0080c088c08000800088000ac0c0000000c0c00000c0c0 +fb0080c088c080008000880014c0c0000000c0c00000c0c000c0c00000c0 +c0c0000080c092c0040000c0c0c080008000880014c0c000c000c0c00000 +c0c0c000c0c000c0c0c0000080c092c0040000c0c0c080008000880010c0 +c000c000c0c00000c0c00000c0c000c0fa0000c0f90000c0f90000c0f900 +00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f900 +00c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0f90000c0 +f90000c0f90000c0f90000c0f90001c0c0fa0000c080008000880014c0c0 +00c000c0c00000c0c00000c0c000c0c0c0000080c092c0040000c0c0c080 +0080008800f9c00d0000c0c00000c0c000c0c0c0000080c092c0040000c0 +c0c0800080008800fdc00c00c0c0c00000c0c00000c0c00080c088c08000 +800088000f00c0c000c0c00000c0c0c00000c0c00080c088c08000800088 +00f00080c088c0800080008800f00080c088c0800080008800f00080c088 +c0800080008800f00080c088c08000800088008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +c080c080c0c0c08000c00080c080c080c0c0c08000c00001c0c0fc00d6c0 +fd00f8c00000f9c00000d2c0fd00edc0fd00fbc0fd00ebc0fd00f1c0fd00 +fac0010000ebc0fd00fbc0fd00dac00000f1c0010000c3c0fd00edc0fd00 +e8c00000f2c0fd00f0c0010000efc08000c000fdc0010000d4c0010000f9 +c0010000fac0010000d1c0010000ecc0010000fac0010000eac0010000f0 +c0010000fac0010000eac0010000fac0010000dbc0010000f1c0010000c2 +c0010000ecc0010000e9c0010000f1c0010000f0c0010000efc08000c000 +fdc0010000d4c0010000f9c0010000fac0010000f1c0010000f7c00000f9 +c00000f4c0010000ecc0010000fac0010000eac0010000f0c0010000e2c0 +010000fac0010000dbc0010000f6c00000c9c00000f4c0010000ecc00100 +00e9c0010000f1c0010000ddc08000c000fdc00d0000c0c0c0000000c000 +00c0c0c0fc00fcc0fd0004c00000c0c0fb00f5c0060000c00000c0c0fa00 +01c0c0fa0007c0c00000c0000000fbc0010000f8c0010000fac0030000c0 +c0fb00fbc0010000fcc0fc00fcc0fb00fdc0070000c0c00000c0c0fc00fc +c0fb00fdc0fb00fdc0050000c0c00000f4c0010000fbc0fd00fdc0f90001 +c0c0fb00fbc0010000fac0010000fcc0fc00f5c0080000c0000000c0c0c0 +fb0001c0c0fa00f9c0130000c0c0c0000000c0c0c0000000c00000c0c0c0 +fc00fcc0fd0004c00000c0c0fb00fdc0fb00f9c0030000c0c0fb00fbc001 +0000fcc0fc00fcc0fb00fdc00f0000c0c00000c0000000c00000c0c0c0fb +0001c0c0fa00fdc0fc00fac0010000f1c0fd0010c00000c0000000c0c0c0 +000000c00000c08000c000fdc0040000c0c0c0f900fbc0120000c0c00000 +c0c00000c0c00000c0c0c00000f6c0fd0007c00000c0c0c00000fac00100 +00fbc0050000c0c00000f3c0010000fac00a0000c0c00000c0c0c00000fc +c0010000f9c0310000c0c00000c0c0c00000c0c00000c00000c0c0c00000 +c00000c0c00000c0c0c00000c00000c0c0c00000c0c00000c00000f3c001 +0000fac0130000c0c0c00000c0c00000c0c00000c0c0c00000fcc0010000 +fac0010000f9c0010000f5c0120000c0c00000c00000c0c0c00000c0c0c0 +0000f8c0010000fbc0040000c0c0c0f900fbc01a0000c0c00000c0c00000 +c0c00000c0c0c00000c00000c0c0c00000fbc00a0000c0c00000c0c0c000 +00fcc0010000f9c0130000c0c00000c0c0c00000c0c00000c00000c0c0f9 +000cc00000c0c0c00000c0c0c00000f8c0010000fbc0010000f0c0120000 +c0c00000c0c00000c00000c0c00000c0c08000c000fdc00d0000c0c0c000 +00c000c00000c0c0fb0009c0c00000c0c00000c0c0f900f6c00a0000c0c0 +0000c0c0c00000fac0010000fbc0050000c0c00000f4c0010000fac00100 +00fcc0010000f8c0010000fcc0fb0003c0c00000f9c0fc00fcc0170000c0 +c00000c00000c0c0c00000c00000c0c0c00000c0c0fc00f2c0010000fac0 +010000fac0040000c0c0c0f900fcc0010000fac0010000fcc0fb00f5c006 +0000c0c00000c0f900fdc0010000f9c0010000fac00d0000c0c0c00000c0 +00c00000c0c0fb0009c0c00000c0c00000c0c0f90003c0c00000f8c00100 +00fcc0010000f8c0010000fcc0fb0003c0c00000f9c0fc00fdc0070000c0 +00c00000c0f900fdc0010000fbc0fb00fbc0010000f0c0120000c0c00000 +c0c00000c00000c0c00000c0c08000c000fdc01e0000c0c0c00000c000c0 +0000c00000c0c00000c0c00000c0c00000c0c00000f1c00a0000c0c00000 +c0c0c00000fac0010000fbc0050000c0c00000f5c0010000fac0010000fa +c0fd00fac00e0000c0c0c00000c0c00000c0c00000f9c0fc00fcc0170000 +c0c00000c00000c0c0c00000c00000c0c0c00000c0c0fc00f2c0010000fa +c0010000fbc0010000fcc0010000f7c0010000fac00a0000c0c0c00000c0 +c00000f5c0080000c0c00000c00000f8c0010000fac0010000f9c01e0000 +c0c0c00000c000c00000c00000c0c00000c0c00000c0c00000c0c00000f8 +c0fd00fbc0010000fac0fd00fac00e0000c0c0c00000c0c00000c0c00000 +f9c0fc00fdc0090000c000c00000c00000f8c0010000fcc0050000c0c000 +00fbc0010000f0c0120000c0c00000c0c00000c00000c0c00000c0c08000 +c000fdc01e0000c0c0c00000c000c00000c00000c0c00000c0c00000c0c0 +0000c0c00000f1c00a0000c0c00000c0c0c00000fac0010000fbc0050000 +c0c00000fcc0010000fcc0010000fac0010000f7c0010000fbc00e0000c0 +c0c00000c0c00000c0c00000f9c0240000c00000c0c0c00000c0c00000c0 +0000c0c0c00000c00000c0c0c00000c0c00000c00000f3c0010000fac001 +0000fcc0010000fbc0010000f7c0010000fac00a0000c0c0c00000c0c000 +00f5c0080000c0c00000c00000f8c0010000fbc0010000f8c01e0000c0c0 +c00000c000c00000c00000c0c00000c0c00000c0c00000c0c00000f6c006 +0000c0c0c00000f7c0010000fbc00e0000c0c0c00000c0c00000c0c00000 +f9c0100000c00000c0c00000c000c00000c00000f8c0010000fcc0050000 +c0c00000fbc0010000f0c0120000c0c00000c0c00000c00000c0c00000c0 +c08000c000fdc0230000c0c0c00000c000c00000c00000c0c00000c0c000 +00c0c00000c0c00000c0c0c00000f6c01d0000c0c00000c0c0c00000c000 +00c0c0c00000c00000c0c00000c0c00000fcc0060000c0c0c00000fac001 +0000fac0060000c0c0c00000fcc03b0000c0c0c00000c0c00000c0c00000 +c0c0c00000c0c00000c0c00000c0c00000c0c00000c00000c0c0c00000c0 +0000c0c0c00000c0c00000c0c00000fcc0010000fac0010000fac0130000 +c0c0c00000c0c0c00000c00000c0c0c00000fcc0010000fac00a0000c0c0 +c00000c0c00000fbc0010000fcc0180000c0c00000c00000c0c0c00000c0 +c0c00000c00000c00000f7c02e0000c0c0c00000c000c00000c00000c0c0 +0000c0c00000c0c00000c0c00000c0c0c00000c00000c0c0c00000c00000 +fac0060000c0c0c00000fcc03a0000c0c0c00000c0c00000c0c00000c0c0 +c00000c0c00000c0c00000c00000c000c00000c00000c0c0c00000c0c0c0 +0000c00000c00000c0c00000fbc0010000fac0010000f8c0120000c0c000 +00c0c00000c00000c0c00000c0c08000c00001c0c0fc0012c0c00000c0c0 +c00000c0c0000000c00000c0c0fb00fdc0fb00f6c0fd0003c0c00000fcc0 +fd00fbc0fd00fdc0fb00f6c00000f9c00000f8c0fb00fcc0fc00fdc0fd00 +04c00000c0c0fb000ac0c0000000c0c00000c0c0fb00fdc0fb00fdc0fb00 +08c0c0000000c0c00000fcc0010000fbc0fc00fcc0fc0001c0c0f90001c0 +c0fb00fcc0fc00fcc0fc00fdc0fd0002c00000fcc0010000fcc0070000c0 +c00000c0c0fb00fbc0fd0002c0c000f7c0fc0012c0c00000c0c0c00000c0 +c0000000c00000c0c0fb00fdc0fb00fdc0fb0002c0c000f8c0fb00fcc0fc +00fdc0fd0004c00000c0c0fb0012c0c0000000c0c00000c00000c0c0c000 +00c0c0fb00fbc0fd00fdc0fd0005c00000c0c0c0fc00fbc0010000f8c003 +0000c0c0fb00fdc0fb0001c0c08000c000e4c0010000d5c001000080c097 +c00100008dc0090000c0c00000c0c00000f7c0030000c0c08000c000e8c0 +050000c0c00000d5c001000080c09bc0050000c0c000008dc0090000c0c0 +0000c0c00000fbc0070000c0c00000c0c08000c000e7c0fc00d5c0fc0080 +c09bc0fc008bc0fc0001c0c0fc00fbc0fc00fdc08000c00080c080c080c0 +c0c08000c000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 58949 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 58949 a -30 60498 a +SDict begin H.S end + -30 +60498 a -30 60498 a +SDict begin 18.2 H.A end + -30 60498 a -30 60498 a +SDict begin [ /View [/XYZ H.V] /Dest (4830) cvn H.B /DEST pdfmark end + -30 60498 +a Black 13294 x FR(172)p Black eop end +%%Page: 173 195 +TeXDict begin 173 194 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.173) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f +(Commands)p Black -30 3763 a FF(wg)19 b(et)-30 4177 y +SDict begin H.S end + +-30 4177 a -30 4177 a +SDict begin 18.2 H.A end + -30 4177 a -30 4177 a +SDict begin [ /View [/XYZ H.V] /Dest (4833) cvn H.B /DEST pdfmark end + -30 4177 +a -30 4177 a +SDict begin H.S end + -30 4177 a -30 4177 a +SDict begin 18.2 H.A end + -30 4177 a -30 4177 +a +SDict begin [ /View [/XYZ H.V] /Dest (4836) cvn H.B /DEST pdfmark end + -30 4177 a -30 4177 a +SDict begin H.S end + -30 4177 a -30 4177 a +SDict begin 18.2 H.A end + -30 4177 +a -30 4177 a +SDict begin [ /View [/XYZ H.V] /Dest (4839) cvn H.B /DEST pdfmark end + -30 4177 a -30 5107 a +SDict begin H.S end + -30 5107 a -30 5107 +a +SDict begin 18.2 H.A end + -30 5107 a -30 5107 a +SDict begin [ /View [/XYZ H.V] /Dest (4841) cvn H.B /DEST pdfmark end + -30 5107 a -30 5107 a +SDict begin H.S end + -30 5107 +a -30 5107 a +SDict begin 18.2 H.A end + -30 5107 a -30 5107 a +SDict begin [ /View [/XYZ H.V] /Dest (4842) cvn H.B /DEST pdfmark end + -30 5107 a 1601 x +FP(wget)p FU(\(1\))544 b(is)f(a)h(command)f(line)h(utility)f(that)g +(will)g(do)-39 b(wnload)544 b(\002les)f(from)h(a)g(speci\002ed)f(URL.) +-30 8722 y(While)529 b(not)g(an)g(actual)g(web-bro)-39 +b(wser)-62 b(,)21925 8722 y +SDict begin H.S end + 21925 8722 a 21925 8722 a +SDict begin 18.2 H.A end + +21925 8722 a 21925 8722 a +SDict begin [ /View [/XYZ H.V] /Dest (4843) cvn H.B /DEST pdfmark end + 21925 8722 a FP(wget)529 b +FU(is)g(used)g(primarily)g(to)g(grab)g(whole)g(or)g(partial)-30 +10737 y(web)366 b(sites)g(for)g(of)-39 b(\003ine)366 +b(vie)-39 b(wing,)366 b(or)g(for)g(f)-15 b(ast)366 b(do)-39 +b(wnload)366 b(of)g(single)f(\002les)h(from)g(HTTP)f(or)i(FTP)-30 +12752 y(serv)-23 b(ers)387 b(instead.)g(The)h(basic)f(syntax)g(is:)-30 +14637 y +SDict begin H.S end + -30 14637 a -30 14637 a +SDict begin 14.56 H.A end + -30 14637 a -30 14637 +a +SDict begin [ /View [/XYZ H.V] /Dest (4844) cvn H.B /DEST pdfmark end + -30 14637 a -30 14637 a +SDict begin H.S end + -30 14637 a -30 14637 a +SDict begin 14.56 H.A end + -30 +14637 a -30 14637 a +SDict begin [ /View [/XYZ H.V] /Dest (4845) cvn H.B /DEST pdfmark end + -30 14637 a 1276 x FJ(\045)1309 15913 +y +SDict begin H.S end + 1309 15913 a 1309 15913 a +SDict begin 14.56 H.A end + 1309 15913 a 1309 15913 a +SDict begin [ /View [/XYZ H.V] /Dest (4846) cvn H.B /DEST pdfmark end + +1309 15913 a FH(wget)743 b FK(<)p FH(url)p FK(>)-30 17631 +y +SDict begin H.S end + -30 17631 a -30 17631 a +SDict begin 18.2 H.A end + -30 17631 a -30 17631 a +SDict begin [ /View [/XYZ H.V] /Dest (4847) cvn H.B /DEST pdfmark end + -30 +17631 a 1847 x FU(Y)-170 b(ou)387 b(can)g(also)g(pass)g(options.)g(F) +-23 b(or)387 b(e)-23 b(xample,)387 b(this)g(will)g(do)-39 +b(wnload)386 b(the)i(Slackw)-15 b(are)386 b(web)h(site:)-30 +21363 y +SDict begin H.S end + -30 21363 a -30 21363 a +SDict begin 14.56 H.A end + -30 21363 a -30 21363 +a +SDict begin [ /View [/XYZ H.V] /Dest (4848) cvn H.B /DEST pdfmark end + -30 21363 a -30 21363 a +SDict begin H.S end + -30 21363 a -30 21363 a +SDict begin 14.56 H.A end + -30 +21363 a -30 21363 a +SDict begin [ /View [/XYZ H.V] /Dest (4849) cvn H.B /DEST pdfmark end + -30 21363 a 1276 x FJ(\045)1309 22639 +y +SDict begin H.S end + 1309 22639 a 1309 22639 a +SDict begin 14.56 H.A end + 1309 22639 a 1309 22639 a +SDict begin [ /View [/XYZ H.V] /Dest (4850) cvn H.B /DEST pdfmark end + +1309 22639 a FH(wget)743 b(--recursive)g(http://www.slackware.com)-30 +24357 y +SDict begin H.S end + -30 24357 a -30 24357 a +SDict begin 18.2 H.A end + -30 24357 a -30 24357 +a +SDict begin [ /View [/XYZ H.V] /Dest (4851) cvn H.B /DEST pdfmark end + -30 24357 a -30 24357 a +SDict begin H.S end + -30 24357 a -30 24357 a +SDict begin 18.2 H.A end + -30 +24357 a -30 24357 a +SDict begin [ /View [/XYZ H.V] /Dest (4852) cvn H.B /DEST pdfmark end + -30 24357 a 1846 x FP(wget)424 b +FU(will)g(create)h(a)11443 26203 y +SDict begin H.S end + 11443 26203 a 11443 +26203 a +SDict begin 18.2 H.A end + 11443 26203 a 11443 26203 a +SDict begin [ /View [/XYZ H.V] /Dest (4853) cvn H.B /DEST pdfmark end + 11443 26203 a FQ(www.slackware.com) +414 b FU(directory)424 b(and)h(store)f(the)h(\002les)f(in)g(there,)h +(just)f(as)h(the)-30 28218 y(site)387 b(does.)-30 29008 +y +SDict begin H.S end + -30 29008 a -30 29008 a +SDict begin 18.2 H.A end + -30 29008 a -30 29008 a +SDict begin [ /View [/XYZ H.V] /Dest (4854) cvn H.B /DEST pdfmark end + -30 +29008 a -30 29008 a +SDict begin H.S end + -30 29008 a -30 29008 a +SDict begin 18.2 H.A end + -30 29008 +a -30 29008 a +SDict begin [ /View [/XYZ H.V] /Dest (4855) cvn H.B /DEST pdfmark end + -30 29008 a 2000 x FP(wget)371 b FU(can)g(also)f(do)-39 +b(wnload)371 b(\002les)f(from)h(FTP)f(sites;)g(just)g(specify)h(an)g +(FTP)f(URL)h(instead)f(of)h(an)-30 33022 y(HTTP)387 b(one.)-30 +34588 y +SDict begin H.S end + -30 34588 a -30 34588 a +SDict begin 12.972 H.A end + -30 34588 a -30 34588 +a +SDict begin [ /View [/XYZ H.V] /Dest (4856) cvn H.B /DEST pdfmark end + -30 34588 a -30 34588 a +SDict begin H.S end + -30 34588 a -30 34588 a +SDict begin 12.972 H.A end + -30 +34588 a -30 34588 a +SDict begin [ /View [/XYZ H.V] /Dest (4857) cvn H.B /DEST pdfmark end + -30 34588 a 1420 x Fj(\045)1163 36008 +y +SDict begin H.S end + 1163 36008 a 1163 36008 a +SDict begin 12.972 H.A end + 1163 36008 a 1163 36008 a +SDict begin [ /View [/XYZ H.V] /Dest (4858) cvn H.B /DEST pdfmark end + +1163 36008 a Fi(wget)662 b +(ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz)-30 37444 +y Fh(--12:18:16--)1322 b(ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz) +7260 38880 y(=>)662 b(`wget-1.8.2.tar.gz')-30 40316 y(Resolving)e +(ftp.gnu.org...)f(done.)-30 41752 y(Connecting)h(to)i +(ftp.gnu.org[199.232.41.7]:21...)654 b(connected.)-30 +43188 y(Logging)661 b(in)h(as)g(anonymous)e(...)i(Logged)f(in!)-30 +44624 y(==>)h(SYST)g(...)f(done.)1987 b(==>)662 b(PWD)g(...)g(done.)-30 +46060 y(==>)g(TYPE)g(I)g(...)g(done.)f(==>)h(CWD)g(/gnu/wget)e(...)i +(done.)-30 47496 y(==>)g(PORT)g(...)f(done.)1987 b(==>)662 +b(RETR)g(wget-1.8.2.tar.gz)657 b(...)662 b(done.)-30 +48932 y(Length:)f(1,154,648)f(\(unauthoritative\))-30 +51803 y(100\045[==================================>])651 +b(1,154,648)3311 b(209.55K/s)2648 b(ETA)662 b(00:00)-30 +54675 y(12:18:23)f(\(209.55KB/s\))e(-)j(`wget-1.8.2.tar.gz')c(saved)j +([1154648])-30 56398 y +SDict begin H.S end + -30 56398 a -30 56398 a +SDict begin 18.2 H.A end + -30 56398 +a -30 56398 a +SDict begin [ /View [/XYZ H.V] /Dest (4859) cvn H.B /DEST pdfmark end + -30 56398 a -30 56398 a +SDict begin H.S end + -30 56398 a -30 +56398 a +SDict begin 18.2 H.A end + -30 56398 a -30 56398 a +SDict begin [ /View [/XYZ H.V] /Dest (4860) cvn H.B /DEST pdfmark end + -30 56398 a 1842 x FP(wget)474 +b FU(has)h(man)-23 b(y)474 b(more)g(options,)g(which)g(mak)-15 +b(e)474 b(it)g(nice)h(for)g(site)f(speci\002c)g(scripts)g(\(web)g(site) +-30 60254 y(mirroring)387 b(and)g(so)g(forth\).)h(The)f(man)g(page)g +(should)g(be)g(consulted)g(for)g(more)g(information.)-30 +62915 y +SDict begin H.S end + -30 62915 a -30 62915 a +SDict begin 18.2 H.A end + -30 62915 a -30 62915 +a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-FTP) cvn +H.B /DEST pdfmark end + -30 62915 a Black 49451 73792 a FR(173)p Black eop +end +%%Page: 174 196 +TeXDict begin 174 195 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.174) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 4132 a FL(13.9)620 b(FTP)g(Clients)-30 4160 +y +SDict begin H.S end + -30 4160 a -30 4160 a +SDict begin 18.2 H.A end + -30 4160 a -30 4160 a +SDict begin [ /View [/XYZ H.V] /Dest (4863) cvn H.B /DEST pdfmark end + -30 4160 +a -30 5276 a +SDict begin H.S end + -30 5276 a -30 5276 a +SDict begin 18.2 H.A end + -30 5276 a -30 5276 +a +SDict begin [ /View [/XYZ H.V] /Dest (4866) cvn H.B /DEST pdfmark end + -30 5276 a 1987 x FU(FTP)553 b(stands)h(for)g(the)f(File)h(T)-54 +b(ransfer)553 b(Protocol.)h(It)g(allo)-39 b(ws)553 b(you)h(to)g(send)g +(and)f(recei)-39 b(v)-23 b(e)554 b(\002les)-30 9277 y(between)392 +b(tw)-15 b(o)390 b(computers.)i(There)f(is)h(the)f(FTP)g(serv)-23 +b(er)392 b(and)f(the)h(FTP)f(client.)g(W)-124 b(e)392 +b(discuss)f(the)-30 11292 y(client)c(in)g(this)g(section.)-30 +12082 y +SDict begin H.S end + -30 12082 a -30 12082 a +SDict begin 18.2 H.A end + -30 12082 a -30 12082 +a +SDict begin [ /View [/XYZ H.V] /Dest (4867) cvn H.B /DEST pdfmark end + -30 12082 a 1999 x FU(F)-23 b(or)420 b(the)g(curious,)h(the)12519 +14081 y +SDict begin H.S end + 12519 14081 a 12519 14081 a +SDict begin 18.2 H.A end + 12519 14081 a 12519 +14081 a +SDict begin [ /View [/XYZ H.V] /Dest (4868) cvn H.B /DEST pdfmark end + 12519 14081 a FU(\223client\224)f(is)g(you.)h(The)25176 +14081 y +SDict begin H.S end + 25176 14081 a 25176 14081 a +SDict begin 18.2 H.A end + 25176 14081 a 25176 +14081 a +SDict begin [ /View [/XYZ H.V] /Dest (4869) cvn H.B /DEST pdfmark end + 25176 14081 a FU(\223serv)-23 b(er\224)421 b(is)f(the)g +(computer)g(that)g(answers)g(your)-30 16096 y(FTP)376 +b(request)h(and)f(lets)h(you)f(login.)h(Y)-170 b(ou)376 +b(will)g(do)-39 b(wnload)376 b(\002les)h(from)f(and)h(upload)f(\002les) +h(to)f(the)-30 18111 y(serv)-23 b(er)-85 b(.)388 b(The)f(client)g +(cannot)g(accept)g(FTP)g(connections,)g(it)g(can)g(only)g(connect)g(to) +g(serv)-23 b(ers.)-30 18446 y +SDict begin H.S end + -30 18446 a -30 18446 a +SDict begin 18.2 H.A end + +-30 18446 a -30 18446 a +SDict begin [ /View [/XYZ H.V] /Dest (4870) cvn H.B /DEST pdfmark end + -30 18446 a 5027 x FF(ftp)-30 +24788 y +SDict begin H.S end + -30 24788 a -30 24788 a +SDict begin 18.2 H.A end + -30 24788 a -30 24788 +a +SDict begin [ /View [/XYZ H.V] /Dest (4873) cvn H.B /DEST pdfmark end + -30 24788 a 1629 x FU(T)-124 b(o)387 b(connect)g(to)h(an)f(FTP)g +(serv)-23 b(er)-62 b(,)387 b(simply)g(run)g(the)27481 +26417 y +SDict begin H.S end + 27481 26417 a 27481 26417 a +SDict begin 18.2 H.A end + 27481 26417 a 27481 +26417 a +SDict begin [ /View [/XYZ H.V] /Dest (4874) cvn H.B /DEST pdfmark end + 27481 26417 a FP(ftp)p FU(\(1\))g(command)g(and)g(specify)g +(the)g(host:)-30 28303 y +SDict begin H.S end + -30 28303 a -30 28303 a +SDict begin 14.56 H.A end + -30 +28303 a -30 28303 a +SDict begin [ /View [/XYZ H.V] /Dest (4875) cvn H.B /DEST pdfmark end + -30 28303 a -30 28303 a +SDict begin H.S end + -30 28303 +a -30 28303 a +SDict begin 14.56 H.A end + -30 28303 a -30 28303 a +SDict begin [ /View [/XYZ H.V] /Dest (4876) cvn H.B /DEST pdfmark end + -30 28303 a 1276 +x FJ(\045)1309 29579 y +SDict begin H.S end + 1309 29579 a 1309 29579 a +SDict begin 14.56 H.A end + 1309 +29579 a 1309 29579 a +SDict begin [ /View [/XYZ H.V] /Dest (4877) cvn H.B /DEST pdfmark end + 1309 29579 a FH(ftp)744 b FK(<)p +FH(hostname)p FK(>)e FH([port])-30 31297 y +SDict begin H.S end + -30 31297 +a -30 31297 a +SDict begin 18.2 H.A end + -30 31297 a -30 31297 a +SDict begin [ /View [/XYZ H.V] /Dest (4878) cvn H.B /DEST pdfmark end + -30 31297 a 1846 +x FU(If)468 b(the)g(host)f(is)h(running)f(an)h(FTP)f(serv)-23 +b(er)-62 b(,)468 b(it)f(will)h(ask)f(for)h(a)g(username)g(and)f(passw) +-15 b(ord.)468 b(Y)-170 b(ou)-30 35158 y(can)484 b(log)g(in)g(as)g +(yourself)g(or)g(as)17648 35158 y +SDict begin H.S end + 17648 35158 a 17648 +35158 a +SDict begin 18.2 H.A end + 17648 35158 a 17648 35158 a +SDict begin [ /View [/XYZ H.V] /Dest (4879) cvn H.B /DEST pdfmark end + 17648 35158 a FU(\223anon)-23 +b(ymous\224.)484 b(Anon)-23 b(ymous)482 b(FTP)i(sites)f(are)i(v)-23 +b(ery)483 b(popular)-30 37173 y(for)463 b(softw)-15 b(are)463 +b(archi)-39 b(v)-23 b(es.)463 b(F)-23 b(or)462 b(e)-23 +b(xample,)463 b(to)g(get)g(Slackw)-15 b(are)462 b(Linux)g(via)h(FTP) +-172 b(,)463 b(you)g(must)f(use)-30 39187 y(anon)-23 +b(ymous)386 b(FTP)-172 b(.)-30 40298 y +SDict begin H.S end + -30 40298 a -30 +40298 a +SDict begin 18.2 H.A end + -30 40298 a -30 40298 a +SDict begin [ /View [/XYZ H.V] /Dest (4880) cvn H.B /DEST pdfmark end + -30 40298 a 1679 x FU(Once)483 +b(connected,)h(you)f(will)f(be)i(at)f(the)22505 41977 +y +SDict begin H.S end + 22505 41977 a 22505 41977 a +SDict begin 18.2 H.A end + 22505 41977 a 22505 41977 +a +SDict begin [ /View [/XYZ H.V] /Dest (4881) cvn H.B /DEST pdfmark end + 22505 41977 a FP(ftp)p FK(>)g FU(prompt.)g(There)g(are)h(special)f +(commands)f(for)-30 43992 y(FTP)-172 b(,)353 b(b)-31 +b(ut)352 b(the)-23 b(y)353 b(are)g(similar)f(to)g(other)h(standard)g +(commands.)f(The)h(follo)-39 b(wing)352 b(sho)-39 b(ws)352 +b(some)h(of)-30 46006 y(the)387 b(basic)g(commands)g(and)g(what)g(the) +-23 b(y)387 b(do:)-30 46342 y +SDict begin H.S end + -30 46342 a -30 46342 a +SDict begin 18.2 H.A end + +-30 46342 a -30 46342 a +SDict begin [ /View [/XYZ H.V] /Dest (4882) cvn H.B /DEST pdfmark end + -30 46342 a 4003 x FX(T)-143 +b(able)387 b(13-1.)h FV(ftp)f FX(commands)-30 52211 y +SDict begin H.S end + +-30 52211 a -30 52211 a +SDict begin 18.2 H.A end + -30 52211 a -30 52211 a +SDict begin [ /View [/XYZ H.V] /Dest (4885) cvn H.B /DEST pdfmark end + -30 52211 +a -30 52211 a +SDict begin H.S end + -30 52211 a -30 52211 a +SDict begin 18.2 H.A end + -30 52211 a -30 +52211 a +SDict begin [ /View [/XYZ H.V] /Dest (table.11) cvn H.B /DEST pdfmark +end + -30 52211 a 1761 x FE(Command)5374 b(Purpose)p +-30 54349 51806 45 v -30 54349 V -30 56110 a FP(ls)11464 +b FU(List)386 b(\002les)-30 58203 y FP(cd)744 b FK(<)p +FP(dirname)p FK(>)3626 b FU(Change)386 b(directory)-30 +60299 y FP(bin)10720 b FU(Set)387 b(binary)g(transfer)g(mode)-30 +62396 y FP(ascii)9232 b FU(Set)387 b(ASCII)f(transfer)i(mode)-30 +64489 y FP(get)744 b FK(<)p FP(filename)p FK(>)2138 b +FU(Do)-39 b(wnload)386 b(a)i(\002le)-30 66582 y FP(put)744 +b FK(<)p FP(filename)p FK(>)2138 b FU(Upload)386 b(a)i(\002le)p +Black -30 73792 a FR(174)p Black eop end +%%Page: 175 197 +TeXDict begin 175 196 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.175) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f +(Commands)p Black -30 4265 a FE(Command)5374 b(Purpose)-30 +6358 y FP(hash)9976 b FU(T)-124 b(oggle)386 b(hash)i(mark)f(stats)f +(indicator)-30 8455 y FP(tick)9976 b FU(T)-124 b(oggle)386 +b(byte)h(counter)h(indicator)-30 10551 y FP(prom)9976 +b FU(T)-124 b(oggle)386 b(interacti)-39 b(v)-23 b(e)387 +b(mode)g(for)h(do)-39 b(wnloads)-30 12648 y FP(mget)743 +b FK(<)p FP(mask)p FK(>)4371 b FU(Do)-39 b(wnload)386 +b(a)i(\002le)f(or)g(group)g(of)h(\002les;)e(wildcards)h(are)h(allo)-39 +b(wed)-30 14744 y FP(mput)743 b FK(<)p FP(mask)p FK(>)4371 +b FU(Upload)386 b(a)i(\002le)f(or)g(group)g(of)h(\002les;)e(wildcards)h +(are)h(allo)-39 b(wed)-30 16840 y FP(quit)9976 b FU(Log)387 +b(of)-39 b(f)387 b(the)g(FTP)g(serv)-23 b(er)-30 17176 +y +SDict begin H.S end + -30 17176 a -30 17176 a +SDict begin 18.2 H.A end + -30 17176 a -30 17176 a +SDict begin [ /View [/XYZ H.V] /Dest (4941) cvn H.B /DEST pdfmark end + -30 +17176 a -30 18726 a +SDict begin H.S end + -30 18726 a -30 18726 a +SDict begin 18.2 H.A end + -30 18726 +a -30 18726 a +SDict begin [ /View [/XYZ H.V] /Dest (4944) cvn H.B /DEST pdfmark end + -30 18726 a 1682 x FU(Y)-170 b(ou)347 b(can)i(also)e(use) +h(some)g(of)g(the)g(follo)-39 b(wing)347 b(commands)g(which)h(are)h +(quite)e(self-e)-23 b(xplanatory:)-30 22423 y +SDict begin H.S end + -30 22423 +a -30 22423 a +SDict begin 18.2 H.A end + -30 22423 a -30 22423 a +SDict begin [ /View [/XYZ H.V] /Dest (4945) cvn H.B /DEST pdfmark end + -30 22423 a FP(chmod)p +FU(,)4461 22423 y +SDict begin H.S end + 4461 22423 a 4461 22423 a +SDict begin 18.2 H.A end + 4461 22423 +a 4461 22423 a +SDict begin [ /View [/XYZ H.V] /Dest (4946) cvn H.B /DEST pdfmark end + 4461 22423 a FP(delete)p FU(,)9695 22423 +y +SDict begin H.S end + 9695 22423 a 9695 22423 a +SDict begin 18.2 H.A end + 9695 22423 a 9695 22423 a +SDict begin [ /View [/XYZ H.V] /Dest (4947) cvn H.B /DEST pdfmark end + +9695 22423 a FP(rename)p FU(,)14930 22423 y +SDict begin H.S end + 14930 22423 +a 14930 22423 a +SDict begin 18.2 H.A end + 14930 22423 a 14930 22423 a +SDict begin [ /View [/XYZ H.V] /Dest (4948) cvn H.B /DEST pdfmark end + 14930 22423 +a FP(rmdir)p FU(.)384 b(F)-23 b(or)383 b(a)h(complete)f(list)g(of)h +(all)f(commands)g(and)h(their)f(mean-)-30 24438 y(ing,)388 +b(just)e(type)8408 24438 y +SDict begin H.S end + 8408 24438 a 8408 24438 a +SDict begin 18.2 H.A end + +8408 24438 a 8408 24438 a +SDict begin [ /View [/XYZ H.V] /Dest (4949) cvn H.B /DEST pdfmark end + 8408 24438 a Fv(help)h FU(or)14194 +24438 y +SDict begin H.S end + 14194 24438 a 14194 24438 a +SDict begin 18.2 H.A end + 14194 24438 a 14194 +24438 a +SDict begin [ /View [/XYZ H.V] /Dest (4950) cvn H.B /DEST pdfmark end + 14194 24438 a Fv(?)g FU(and)g(you')-15 b(ll)386 +b(see)i(a)f(complete)g(listing)f(on)h(screen.)-30 25548 +y +SDict begin H.S end + -30 25548 a -30 25548 a +SDict begin 18.2 H.A end + -30 25548 a -30 25548 a +SDict begin [ /View [/XYZ H.V] /Dest (4951) cvn H.B /DEST pdfmark end + -30 +25548 a 1679 x FU(FTP)474 b(is)h(a)g(f)-15 b(airly)474 +b(simple)h(program)f(to)h(use,)g(b)-31 b(ut)475 b(lacks)g(the)g(user)g +(interf)-15 b(ace)474 b(that)h(man)-23 b(y)474 b(of)h(us)-30 +29242 y(are)470 b(used)g(to)f(no)-39 b(w)-15 b(adays.)469 +b(The)h(man)f(page)h(discusses)f(some)g(of)h(the)g(command)f(line)g +(options)-30 31256 y(for)2165 31256 y +SDict begin H.S end + 2165 31256 a 2165 +31256 a +SDict begin 18.2 H.A end + 2165 31256 a 2165 31256 a +SDict begin [ /View [/XYZ H.V] /Dest (4952) cvn H.B /DEST pdfmark end + 2165 31256 a FP(ftp)p +FU(\(1\).)-30 33084 y +SDict begin H.S end + -30 33084 a -30 33084 a +SDict begin 12.972 H.A end + -30 33084 +a -30 33084 a +SDict begin [ /View [/XYZ H.V] /Dest (4953) cvn H.B /DEST pdfmark end + -30 33084 a 1158 x Fh(ftp>)3284 34242 y +SDict begin H.S end + +3284 34242 a 3284 34242 a +SDict begin 12.972 H.A end + 3284 34242 a 3284 34242 a +SDict begin [ /View [/XYZ H.V] /Dest (4954) cvn H.B /DEST pdfmark end + 3284 +34242 a Fi(ls)662 b(*.TXT)-30 35678 y Fh(200)g(PORT)g(command)e +(successful.)-30 37114 y(150)i(Opening)f(ASCII)g(mode)h(data)f +(connection)f(for)i(/bin/ls.)-30 38550 y(-rw-r--r--)1985 +b(1)663 b(root)3312 b(100)5964 b(18606)661 b(Apr)1325 +b(6)g(2002)661 b(BOOTING.TXT)-30 39986 y(-rw-r--r--)1985 +b(1)663 b(root)3312 b(100)5964 b(10518)661 b(Jun)h(13)1325 +b(2002)661 b(COPYRIGHT.TXT)-30 41422 y(-rw-r--r--)1985 +b(1)663 b(root)3312 b(100)7289 b(602)662 b(Apr)1325 b(6)g(2002)661 +b(CRYPTO_NOTICE.TXT)-30 42858 y(-rw-r--r--)1985 b(1)663 +b(root)3312 b(100)5964 b(32431)661 b(Sep)h(29)g(02:56)f(FAQ.TXT)-30 +44294 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5301 +b(499784)661 b(Mar)1325 b(3)662 b(19:29)f(FILELIST.TXT)-30 +45730 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5301 +b(241099)661 b(Mar)1325 b(3)662 b(19:12)f(PACKAGES.TXT)-30 +47166 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5964 +b(12339)661 b(Jun)h(19)1325 b(2002)661 b(README81.TXT)-30 +48602 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5964 +b(14826)661 b(Jun)h(17)1325 b(2002)661 b(SPEAKUP_DOCS.TXT)-30 +50038 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)5964 +b(15434)661 b(Jun)h(17)1325 b(2002)661 b(SPEAK_INSTALL.TXT)-30 +51474 y(-rw-r--r--)1985 b(1)663 b(root)3312 b(100)6627 +b(2876)661 b(Jun)h(17)1325 b(2002)661 b(UPGRADE.TXT)-30 +52909 y(226)h(Transfer)e(complete.)-30 54345 y(ftp>)3284 +54345 y +SDict begin H.S end + 3284 54345 a 3284 54345 a +SDict begin 12.972 H.A end + 3284 54345 a 3284 54345 +a +SDict begin [ /View [/XYZ H.V] /Dest (4955) cvn H.B /DEST pdfmark end + 3284 54345 a Fi(tick)-30 55781 y Fh(Tick)i(counter)e(printing)h(on)h +(\(10240)f(bytes/tick)f(increment\).)-30 57217 y(ftp>)3284 +57217 y +SDict begin H.S end + 3284 57217 a 3284 57217 a +SDict begin 12.972 H.A end + 3284 57217 a 3284 57217 +a +SDict begin [ /View [/XYZ H.V] /Dest (4956) cvn H.B /DEST pdfmark end + 3284 57217 a Fi(get)i(README81.TXT)-30 58653 y Fh(local:)f +(README81.TXT)e(remote:)i(README81.TXT)-30 60089 y(200)h(PORT)g +(command)e(successful.)-30 61525 y(150)i(Opening)f(BINARY)g(mode)g +(data)h(connection)e(for)i(README81.TXT)d(\(12339)i(bytes\).)-30 +62961 y(Bytes)g(transferred:)f(12339)-30 64397 y(226)i(Transfer)e +(complete.)-30 65833 y(12339)h(bytes)h(received)e(in)i(0.208)g(secs)f +(\(58)h(Kbytes/sec\))-30 67556 y +SDict begin H.S end + -30 67556 a -30 67556 +a +SDict begin 18.2 H.A end + -30 67556 a -30 67556 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-FTP-NCFTP) +cvn H.B /DEST pdfmark end + -30 67556 a Black 49451 73792 +a FR(175)p Black eop end +%%Page: 176 198 +TeXDict begin 176 197 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.176) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 3861 a FF(ncftp)-30 4246 y +SDict begin H.S end + -30 4246 a -30 4246 +a +SDict begin 18.2 H.A end + -30 4246 a -30 4246 a +SDict begin [ /View [/XYZ H.V] /Dest (4960) cvn H.B /DEST pdfmark end + -30 4246 a -30 5176 a +SDict begin H.S end + -30 5176 +a -30 5176 a +SDict begin 18.2 H.A end + -30 5176 a -30 5176 a +SDict begin [ /View [/XYZ H.V] /Dest (4963) cvn H.B /DEST pdfmark end + -30 5176 a -30 5176 +a +SDict begin H.S end + -30 5176 a -30 5176 a +SDict begin 18.2 H.A end + -30 5176 a -30 5176 a +SDict begin [ /View [/XYZ H.V] /Dest (4964) cvn H.B /DEST pdfmark end + -30 5176 +a 1629 x FP(ncftp)p FU(\(1\))393 b(\(pronounced)g("Nik-F-T)-143 +b(-P"\))394 b(is)f(an)h(alternati)-39 b(v)-23 b(e)393 +b(to)g(the)g(traditional)g(ftp)g(client)g(that)-30 8820 +y(comes)457 b(with)h(Slackw)-15 b(are.)457 b(It)h(is)f(still)g(a)h(te) +-23 b(xt-based)457 b(program,)h(b)-31 b(ut)457 b(of)-39 +b(fers)458 b(man)-23 b(y)457 b(adv)-39 b(antages)-30 +10835 y(o)-23 b(v)g(er)3065 10835 y +SDict begin H.S end + 3065 10835 a 3065 +10835 a +SDict begin 18.2 H.A end + 3065 10835 a 3065 10835 a +SDict begin [ /View [/XYZ H.V] /Dest (4965) cvn H.B /DEST pdfmark end + 3065 10835 a FP(ftp)p +FU(,)387 b(including:)-30 11170 y +SDict begin H.S end + -30 11170 a -30 11170 +a +SDict begin 18.2 H.A end + -30 11170 a -30 11170 a +SDict begin [ /View [/XYZ H.V] /Dest (4966) cvn H.B /DEST pdfmark end + -30 11170 a -30 11945 a +SDict begin H.S end + -30 +11945 a -30 11945 a +SDict begin 18.2 H.A end + -30 11945 a -30 11945 a +SDict begin [ /View [/XYZ H.V] /Dest (4967) cvn H.B /DEST pdfmark end + -30 11945 +a Black 3229 x FM(\225)p Black 1520 15174 a +SDict begin H.S end + 1520 15174 +a 1520 15174 a +SDict begin 18.2 H.A end + 1520 15174 a 1520 15174 a +SDict begin [ /View [/XYZ H.V] /Dest (4968) cvn H.B /DEST pdfmark end + 1520 15174 a +FU(T)-124 b(ab)387 b(completion)-30 15509 y +SDict begin H.S end + -30 15509 +a -30 15509 a +SDict begin 18.2 H.A end + -30 15509 a -30 15509 a +SDict begin [ /View [/XYZ H.V] /Dest (4969) cvn H.B /DEST pdfmark end + -30 15509 a Black +2454 x FM(\225)p Black 1520 17963 a +SDict begin H.S end + 1520 17963 a 1520 +17963 a +SDict begin 18.2 H.A end + 1520 17963 a 1520 17963 a +SDict begin [ /View [/XYZ H.V] /Dest (4970) cvn H.B /DEST pdfmark end + 1520 17963 a FU(Bookmarks)f(\002le) +-30 17978 y +SDict begin H.S end + -30 17978 a -30 17978 a +SDict begin 18.2 H.A end + -30 17978 a -30 17978 +a +SDict begin [ /View [/XYZ H.V] /Dest (4971) cvn H.B /DEST pdfmark end + -30 17978 a Black 2775 x FM(\225)p Black 1520 20753 +a +SDict begin H.S end + 1520 20753 a 1520 20753 a +SDict begin 18.2 H.A end + 1520 20753 a 1520 20753 a +SDict begin [ /View [/XYZ H.V] /Dest (4972) cvn H.B /DEST pdfmark end + +1520 20753 a FU(More)h(liberal)g(wildcard)g(uses)-30 +20768 y +SDict begin H.S end + -30 20768 a -30 20768 a +SDict begin 18.2 H.A end + -30 20768 a -30 20768 +a +SDict begin [ /View [/XYZ H.V] /Dest (4973) cvn H.B /DEST pdfmark end + -30 20768 a Black 2775 x FM(\225)p Black 1520 23543 +a +SDict begin H.S end + 1520 23543 a 1520 23543 a +SDict begin 18.2 H.A end + 1520 23543 a 1520 23543 a +SDict begin [ /View [/XYZ H.V] /Dest (4974) cvn H.B /DEST pdfmark end + +1520 23543 a FU(Command)f(history)-30 24653 y +SDict begin H.S end + -30 24653 +a -30 24653 a +SDict begin 18.2 H.A end + -30 24653 a -30 24653 a +SDict begin [ /View [/XYZ H.V] /Dest (4975) cvn H.B /DEST pdfmark end + -30 24653 a 1679 +x FU(By)410 b(def)-15 b(ault,)7274 26332 y +SDict begin H.S end + 7274 26332 +a 7274 26332 a +SDict begin 18.2 H.A end + 7274 26332 a 7274 26332 a +SDict begin [ /View [/XYZ H.V] /Dest (4976) cvn H.B /DEST pdfmark end + 7274 26332 a +FP(ncftp)410 b FU(will)f(try)h(to)g(log)f(in)h(anon)-23 +b(ymously)408 b(to)i(the)g(serv)-23 b(er)410 b(you)f(specify)-101 +b(.)411 b(Y)-170 b(ou)409 b(can)-30 28347 y(force)3696 +28347 y +SDict begin H.S end + 3696 28347 a 3696 28347 a +SDict begin 18.2 H.A end + 3696 28347 a 3696 28347 +a +SDict begin [ /View [/XYZ H.V] /Dest (4977) cvn H.B /DEST pdfmark end + 3696 28347 a FP(ncftp)543 b FU(to)f(present)h(a)g(login)g(prompt)f +(with)g(the)30442 28347 y +SDict begin H.S end + 30442 28347 a 30442 28347 a +SDict begin 18.2 H.A end + +30442 28347 a 30442 28347 a +SDict begin [ /View [/XYZ H.V] /Dest (4978) cvn H.B /DEST pdfmark end + 30442 28347 a FU(\223)31130 +28347 y +SDict begin H.S end + 31130 28347 a 31130 28347 a +SDict begin 18.2 H.A end + 31130 28347 a 31130 +28347 a +SDict begin [ /View [/XYZ H.V] /Dest (4979) cvn H.B /DEST pdfmark end + 31130 28347 a FP(-u)p FU(\224)h(option.)g(Once)g(logged)f(in,)h +(you)-30 30361 y(can)421 b(use)f(the)g(same)h(commands)e(as)i(in)21421 +30361 y +SDict begin H.S end + 21421 30361 a 21421 30361 a +SDict begin 18.2 H.A end + 21421 30361 a 21421 +30361 a +SDict begin [ /View [/XYZ H.V] /Dest (4980) cvn H.B /DEST pdfmark end + 21421 30361 a FP(ftp)p FU(,)g(only)f(you')-15 +b(ll)419 b(notice)h(a)h(nicer)f(interf)-15 b(ace,)421 +b(one)f(that)-30 32376 y(w)-15 b(orks)387 b(more)g(lik)-15 +b(e)10398 32376 y +SDict begin H.S end + 10398 32376 a 10398 32376 a +SDict begin 18.2 H.A end + 10398 32376 +a 10398 32376 a +SDict begin [ /View [/XYZ H.V] /Dest (4981) cvn H.B /DEST pdfmark end + 10398 32376 a FP(bash)p FU(.)-30 33952 +y +SDict begin H.S end + -30 33952 a -30 33952 a +SDict begin 12.972 H.A end + -30 33952 a -30 33952 a +SDict begin [ /View [/XYZ H.V] /Dest (4982) cvn H.B /DEST pdfmark end + -30 +33952 a 1410 x Fh(ncftp)661 b(/pub/linux/slackware)c(>)19189 +35362 y +SDict begin H.S end + 19189 35362 a 19189 35362 a +SDict begin 12.972 H.A end + 19189 35362 a 19189 +35362 a +SDict begin [ /View [/XYZ H.V] /Dest (4983) cvn H.B /DEST pdfmark end + 19189 35362 a Fi(cd)662 b(slackware-current/)-30 +36798 y Fh(Please)f(read)h(the)g(file)f(README81.TXT)1296 +38234 y(it)h(was)g(last)f(modified)g(on)h(Wed)g(Jun)f(19)i(16:24:21)d +(2002)i(-)g(258)g(days)f(ago)-30 39670 y(CWD)h(command)f(successful.) +-30 41106 y(ncftp)g(...ware/slackware-current)656 b(>)22502 +41106 y +SDict begin H.S end + 22502 41106 a 22502 41106 a +SDict begin 12.972 H.A end + 22502 41106 a 22502 +41106 a +SDict begin [ /View [/XYZ H.V] /Dest (4984) cvn H.B /DEST pdfmark end + 22502 41106 a Fi(ls)-30 42542 y Fh(BOOTING.TXT)9938 +b(FAQ.TXT)12589 b(bootdisks/)-30 43977 y(CHECKSUMS)11264 +b(FILELIST.TXT)9274 b(extra/)-30 45413 y(CHECKSUMS.asc)8612 +b(GPG-KEY)12589 b(isolinux/)-30 46849 y(CHECKSUMS.md5)8612 +b(PACKAGES.TXT)9274 b(kernels/)-30 48285 y(CHECKSUMS.md5.asc)5960 +b(PRERELEASE_NOTES)6622 b(pasture/)-30 49721 y(COPYING)12590 +b(README81.TXT)9274 b(rootdisks/)-30 51157 y(COPYRIGHT.TXT)8612 +b(SPEEKUP_DOCS.TXT)6622 b(slackware/)-30 52593 y(CRYPTO_NOTICE.TXT)5960 +b(SPEEK_INSTALL.TXT)f(source/)-30 54029 y(CURRENT.WARNING)7286 +b(Slackware-HOWTO)-30 55465 y(ChangeLog.txt)8612 b(UPGRADE.TXT)-30 +56901 y(ncftp)661 b(...ware/slackware-current)656 b(>)22502 +56901 y +SDict begin H.S end + 22502 56901 a 22502 56901 a +SDict begin 12.972 H.A end + 22502 56901 a 22502 +56901 a +SDict begin [ /View [/XYZ H.V] /Dest (4985) cvn H.B /DEST pdfmark end + 22502 56901 a Fi(get)662 b(README81.TXT)-30 58337 +y Fh(README81.TXT:)28493 b(12.29)661 b(kB)1325 b(307.07)661 +b(kB/s)-30 61524 y +SDict begin H.S end + -30 61524 a -30 61524 a +SDict begin 18.2 H.A end + -30 61524 +a -30 61524 a +SDict begin [ /View [/XYZ H.V] /Dest (BASIC-NETWORK-COMMANDS-TALK) +cvn H.B /DEST pdfmark end + -30 61524 a Black 12268 x FR(176)p Black +eop end +%%Page: 177 199 +TeXDict begin 177 198 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.177) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5024) cvn H.B /DEST pdfmark end + -30 -2687 a 27927 -1636 a FR(Chapter)386 +b(13)i(Basic)f(Network)f(Commands)p Black -30 4132 a +FL(13.10)620 b(T)-179 b(alking)620 b(to)g(Other)g(P)-67 +b(eople)-30 4629 y +SDict begin H.S end + -30 4629 a -30 4629 a +SDict begin 18.2 H.A end + -30 4629 a -30 +4629 a +SDict begin [ /View [/XYZ H.V] /Dest (4988) cvn H.B /DEST pdfmark end + -30 4629 a 4865 x FF(wall)-30 9517 y +SDict begin H.S end + -30 9517 +a -30 9517 a +SDict begin 18.2 H.A end + -30 9517 a -30 9517 a +SDict begin [ /View [/XYZ H.V] /Dest (4991) cvn H.B /DEST pdfmark end + -30 9517 a -30 10447 +a +SDict begin H.S end + -30 10447 a -30 10447 a +SDict begin 18.2 H.A end + -30 10447 a -30 10447 a +SDict begin [ /View [/XYZ H.V] /Dest (4994) cvn H.B /DEST pdfmark end + -30 +10447 a -30 10447 a +SDict begin H.S end + -30 10447 a -30 10447 a +SDict begin 18.2 H.A end + -30 10447 +a -30 10447 a +SDict begin [ /View [/XYZ H.V] /Dest (4995) cvn H.B /DEST pdfmark end + -30 10447 a 1992 x FP(wall)p FU(\(1\))359 +b(is)g(a)g(quick)g(w)-15 b(ay)358 b(to)h(write)g(a)h(message)e(to)h +(the)g(users)g(on)g(a)h(system.)e(The)i(basic)f(syntax)-30 +14453 y(is:)-30 16019 y +SDict begin H.S end + -30 16019 a -30 16019 a +SDict begin 14.56 H.A end + -30 16019 +a -30 16019 a +SDict begin [ /View [/XYZ H.V] /Dest (4996) cvn H.B /DEST pdfmark end + -30 16019 a -30 16019 a +SDict begin H.S end + -30 16019 a -30 +16019 a +SDict begin 14.56 H.A end + -30 16019 a -30 16019 a +SDict begin [ /View [/XYZ H.V] /Dest (4997) cvn H.B /DEST pdfmark end + -30 16019 a 1596 x FJ(\045)1309 +17615 y +SDict begin H.S end + 1309 17615 a 1309 17615 a +SDict begin 14.56 H.A end + 1309 17615 a 1309 17615 +a +SDict begin [ /View [/XYZ H.V] /Dest (4998) cvn H.B /DEST pdfmark end + 1309 17615 a FH(wall)743 b([file])-30 19297 y +SDict begin H.S end + -30 19297 +a -30 19297 a +SDict begin 18.2 H.A end + -30 19297 a -30 19297 a +SDict begin [ /View [/XYZ H.V] /Dest (4999) cvn H.B /DEST pdfmark end + -30 19297 a 1882 +x FU(This)448 b(will)g(result)g(in)g(the)g(contents)g(of)g([\002le])h +(being)f(displayed)f(on)h(the)h(terminals)e(of)i(all)f(cur)-31 +b(-)-30 23194 y(rently)366 b(logged)f(in)h(users.)h(If)f(you)g(don')-28 +b(t)366 b(specify)g(a)g(\002le,)g(w)-15 b(all)366 b(will)f(read)i(from) +e(standard)h(input,)-30 25209 y(so)387 b(you)g(can)h(just)f(type)g +(your)g(message,)g(and)g(end)h(with)30315 25209 y +SDict begin H.S end + 30315 +25209 a 30315 25209 a +SDict begin 18.2 H.A end + 30315 25209 a 30315 25209 a +SDict begin [ /View [/XYZ H.V] /Dest (5000) cvn H.B /DEST pdfmark end + 30315 +25209 a 30315 25209 a +SDict begin H.S end + 30315 25209 a 30315 25209 a +SDict begin 18.2 H.A end + 30315 +25209 a 30315 25209 a +SDict begin [ /View [/XYZ H.V] /Dest (5001) cvn H.B /DEST pdfmark end + 30315 25209 a FX(Ctrl)p FU(+)33943 +25209 y +SDict begin H.S end + 33943 25209 a 33943 25209 a +SDict begin 18.2 H.A end + 33943 25209 a 33943 +25209 a +SDict begin [ /View [/XYZ H.V] /Dest (5002) cvn H.B /DEST pdfmark end + 33943 25209 a FX(d)p FU(.)-30 26319 y +SDict begin H.S end + -30 26319 +a -30 26319 a +SDict begin 18.2 H.A end + -30 26319 a -30 26319 a +SDict begin [ /View [/XYZ H.V] /Dest (5003) cvn H.B /DEST pdfmark end + -30 26319 a -30 +26319 a +SDict begin H.S end + -30 26319 a -30 26319 a +SDict begin 18.2 H.A end + -30 26319 a -30 26319 +a +SDict begin [ /View [/XYZ H.V] /Dest (5004) cvn H.B /DEST pdfmark end + -30 26319 a 1679 x FP(wall)360 b FU(doesn')-28 b(t)359 +b(ha)-31 b(v)-23 b(e)360 b(man)-23 b(y)359 b(features,)h(and)g(apart)g +(from)g(letting)f(your)g(users)h(kno)-39 b(w)360 b(that)g(you')-77 +b(re)-30 30013 y(about)404 b(to)g(do)g(some)f(serious)h(maintenance)f +(to)h(the)g(system,)g(or)g(e)-39 b(v)-23 b(en)404 b(reboot)g(it,)g(so)g +(the)-23 b(y)403 b(ha)-31 b(v)-23 b(e)-30 32028 y(time)387 +b(to)g(sa)-31 b(v)-23 b(e)387 b(their)g(w)-15 b(ork)387 +b(and)g(log)g(of)-39 b(f)388 b(:\))-30 33138 y +SDict begin H.S end + -30 33138 +a -30 33138 a +SDict begin 18.2 H.A end + -30 33138 a -30 33138 a +SDict begin [ /View [/XYZ H.V] /Dest (5005) cvn H.B /DEST pdfmark end + -30 33138 a 5181 +x FF(talk)-30 38342 y +SDict begin H.S end + -30 38342 a -30 38342 a +SDict begin 18.2 H.A end + -30 38342 +a -30 38342 a +SDict begin [ /View [/XYZ H.V] /Dest (5008) cvn H.B /DEST pdfmark end + -30 38342 a -30 38342 a +SDict begin H.S end + -30 38342 a -30 +38342 a +SDict begin 18.2 H.A end + -30 38342 a -30 38342 a +SDict begin [ /View [/XYZ H.V] /Dest (5011) cvn H.B /DEST pdfmark end + -30 38342 a -30 39273 +a +SDict begin H.S end + -30 39273 a -30 39273 a +SDict begin 18.2 H.A end + -30 39273 a -30 39273 a +SDict begin [ /View [/XYZ H.V] /Dest (5013) cvn H.B /DEST pdfmark end + -30 +39273 a -30 39273 a +SDict begin H.S end + -30 39273 a -30 39273 a +SDict begin 18.2 H.A end + -30 39273 +a -30 39273 a +SDict begin [ /View [/XYZ H.V] /Dest (5014) cvn H.B /DEST pdfmark end + -30 39273 a 1991 x FP(talk)p FU(\(1\))f(allo)-39 +b(ws)387 b(tw)-15 b(o)386 b(users)h(to)g(chat.)h(It)f(splits)f(the)h +(screen)h(in)f(half,)g(horizontally)-101 b(.)387 b(T)-124 +b(o)387 b(request)-30 43279 y(a)h(chat)f(with)g(another)g(user)-62 +b(,)388 b(use)f(this)g(command:)-30 45052 y +SDict begin H.S end + -30 45052 +a -30 45052 a +SDict begin 14.56 H.A end + -30 45052 a -30 45052 a +SDict begin [ /View [/XYZ H.V] /Dest (5015) cvn H.B /DEST pdfmark end + -30 45052 a -30 +45052 a +SDict begin H.S end + -30 45052 a -30 45052 a +SDict begin 14.56 H.A end + -30 45052 a -30 45052 +a +SDict begin [ /View [/XYZ H.V] /Dest (5016) cvn H.B /DEST pdfmark end + -30 45052 a 1388 x FJ(\045)1309 46440 y +SDict begin H.S end + 1309 46440 +a 1309 46440 a +SDict begin 14.56 H.A end + 1309 46440 a 1309 46440 a +SDict begin [ /View [/XYZ H.V] /Dest (5017) cvn H.B /DEST pdfmark end + 1309 46440 a +FH(talk)743 b FK(<)p FH(person)p FK(>)g FH([ttyname])-30 +46608 y +SDict begin H.S end + -30 46608 a -30 46608 a +SDict begin 18.2 H.A end + -30 46608 a -30 46608 +a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-TALK) +cvn H.B /DEST pdfmark end + -30 46608 a Black 49394 73792 a FR(177)p Black eop +end +%%Page: 178 200 +TeXDict begin 178 199 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.178) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 3611 a FX(Figur)-28 b(e)387 b(13-7.)h(T)-115 +b(w)-15 b(o)386 b(users)h(in)g(a)g FV(talk)g FX(session)-30 +5475 y +SDict begin H.S end + -30 5475 a -30 5475 a +SDict begin 18.2 H.A end + -30 5475 a -30 5475 a +SDict begin [ /View [/XYZ H.V] /Dest (5021) cvn H.B /DEST pdfmark end + -30 +5475 a -30 38552 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 38552 a @beginspecial 12 @llx +212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial +%%BeginDocument: basic-network-commands/talk.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +fd0000c0e90000c080008000800080009c00030000c0c0ea0001c0c08000 +8000800080009c00030000c0c0ea0001c0c080008000800080009c00fac0 +fd00fbc0fd00fbc0010000fac080008000800080009e00030000c0c0fc00 +13c0c0000000c0c000c0c0000000c0c0000000c0c080008000800080009c +00030000c0c0fc00f9c0030000c0c0f90001c0c080008000800080009c00 +030000c0c0fc0001c0c0f800fdc0fb0001c0c080008000800080009c0003 +0000c0c0fc0001c0c0f60001c0c0fc0001c0c080008000800080009c001e +0000c0c000c0c000c0c0000000c0c000c0c0000000c0c0000000c0c000c0 +c080008000800080009f00fd00fdc0fd00fbc0fd00fbc0fb00fdc0800080 +00800080009e008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +0080008000800080c080c080c080c080c080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080000000fac00300c0c0c0f80001c0c0ea0001c0c0da0000c0 +e90000c08000800080008000ec000000fac0030000c0c0f80001c0c0ea00 +01c0c0db0001c0c0ea0001c0c08000800080008000ec000a00c000c0c000 +c00000c0c0b90001c0c0ea0001c0c08000800080008000ec00fd0001c0c0 +fc0004c0c000c0c0fc00fdc0fc00fbc0f400fdc0fc00fbc0f500fcc0f500 +fac0fd00fbc0fd00fbc0010000fac08000800080008000ee00fd0001c0c0 +fc00fdc00200c0c0fc000bc0c0000000c0c0000000c0c0f4000bc0c00000 +00c0c0000000c0c0f30001c0c0f40001c0c0fc0013c0c0000000c0c000c0 +c0000000c0c0000000c0c08000800080008000ec00fd0001c0c0fc0005c0 +c00000c0c0fc0001c0c0fc0001c0c0f00001c0c0fc0001c0c0f200fbc0f4 +0001c0c0fc00f9c0030000c0c0f90001c0c08000800080008000ec00fd00 +01c0c0fc0005c0c00000c0c0fc0001c0c0fb00fdc0f20001c0c0fb00fdc0 +f50005c0c00000c0c0f40001c0c0fc0001c0c0f800fdc0fb0001c0c08000 +800080008000ec00fd0001c0c0fc0005c0c00000c0c0fc0001c0c0f90001 +c0c0f30001c0c0f90001c0c0f60005c0c00000c0c0f40001c0c0fc0001c0 +c0f60001c0c0fc0001c0c08000800080008000ec00fd0001c0c0fc0005c0 +c00000c0c0fc000bc0c0000000c0c0000000c0c0f4000bc0c0000000c0c0 +000000c0c0f70005c0c00000c0c0f4001cc0c000c0c000c0c0000000c0c0 +00c0c0000000c0c0000000c0c000c0c0fc0001c0c08000800080008000f5 +00010000fcc00b0000c0c0c00000c0c0000000fcc0fd00fbc0f400fcc0fd +00fbc0f500fdc00200c0c0f400fdc0fd00fbc0fd00fbc0fb00fdc0fb0001 +c0c08000800080008000f500800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +8000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 38552 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 38552 a 3565 x FU(If)g(you)f(specify)g +(just)g(a)g(username,)h(the)f(chat)g(request)g(is)g(assumed)g(to)g(be)h +(local,)f(so)g(only)g(local)-30 44131 y(users)492 b(are)h(queried.)g +(The)f(ttyname)g(is)g(required)g(if)g(you)h(w)-15 b(ant)491 +b(to)i(ring)f(a)g(user)h(on)f(a)g(speci\002c)-30 46146 +y(terminal)348 b(\(if)h(the)g(user)g(is)g(logged)g(in)f(more)h(than)g +(once\).)h(The)e(required)h(information)f(for)h FP(talk)-30 +48161 y FU(can)388 b(be)f(obtained)g(from)g(the)15765 +48161 y +SDict begin H.S end + 15765 48161 a 15765 48161 a +SDict begin 18.2 H.A end + 15765 48161 a 15765 +48161 a +SDict begin [ /View [/XYZ H.V] /Dest (5026) cvn H.B /DEST pdfmark end + 15765 48161 a FP(w)p FU(\(1\))g(command.)-30 +49213 y +SDict begin H.S end + -30 49213 a -30 49213 a +SDict begin 18.2 H.A end + -30 49213 a -30 49213 +a +SDict begin [ /View [/XYZ H.V] /Dest (5027) cvn H.B /DEST pdfmark end + -30 49213 a -30 49213 a +SDict begin H.S end + -30 49213 a -30 49213 a +SDict begin 18.2 H.A end + -30 +49213 a -30 49213 a +SDict begin [ /View [/XYZ H.V] /Dest (5028) cvn H.B /DEST pdfmark end + -30 49213 a 1737 x FP(talk)473 b +FU(can)h(also)f(ring)g(users)g(on)h(remote)f(hosts.)g(F)-23 +b(or)473 b(the)g(username)g(you)g(simply)g(specify)g(an)-30 +52965 y(email)387 b(address.)9224 52965 y +SDict begin H.S end + 9224 52965 +a 9224 52965 a +SDict begin 18.2 H.A end + 9224 52965 a 9224 52965 a +SDict begin [ /View [/XYZ H.V] /Dest (5029) cvn H.B /DEST pdfmark end + 9224 52965 a +FP(talk)f FU(will)h(try)g(to)h(contact)f(that)g(remote)g(user)g(on)g +(that)g(host.)-30 54075 y +SDict begin H.S end + -30 54075 a -30 54075 a +SDict begin 18.2 H.A end + -30 +54075 a -30 54075 a +SDict begin [ /View [/XYZ H.V] /Dest (5030) cvn H.B /DEST pdfmark end + -30 54075 a -30 54075 a +SDict begin H.S end + -30 54075 +a -30 54075 a +SDict begin 18.2 H.A end + -30 54075 a -30 54075 a +SDict begin [ /View [/XYZ H.V] /Dest (5031) cvn H.B /DEST pdfmark end + -30 54075 a 1679 +x FP(talk)g FU(is)g(some)-39 b(what)387 b(limited.)g(It)g(only)g +(supports)f(tw)-15 b(o)387 b(users)g(and)g(is)g(half-duple)-23 +b(x.)-30 56865 y +SDict begin H.S end + -30 56865 a -30 56865 a +SDict begin 18.2 H.A end + -30 56865 a +-30 56865 a +SDict begin [ /View [/XYZ H.V] /Dest (5032) cvn H.B /DEST pdfmark end + -30 56865 a 5181 x FF(ytalk)-30 63361 y +SDict begin H.S end + -30 +63361 a -30 63361 a +SDict begin 18.2 H.A end + -30 63361 a -30 63361 a +SDict begin [ /View [/XYZ H.V] /Dest (5035) cvn H.B /DEST pdfmark end + -30 63361 +a -30 63361 a +SDict begin H.S end + -30 63361 a -30 63361 a +SDict begin 18.2 H.A end + -30 63361 a -30 +63361 a +SDict begin [ /View [/XYZ H.V] /Dest (5036) cvn H.B /DEST pdfmark end + -30 63361 a 1630 x FP(ytalk)p FU(\(1\))383 b(is)g(a)g(backw)-15 +b(ards)382 b(compatible)g(replacement)h(for)32779 64991 +y +SDict begin H.S end + 32779 64991 a 32779 64991 a +SDict begin 18.2 H.A end + 32779 64991 a 32779 64991 +a +SDict begin [ /View [/XYZ H.V] /Dest (5037) cvn H.B /DEST pdfmark end + 32779 64991 a FP(talk)p FU(.)g(It)g(comes)g(with)g(Slackw)-15 +b(are)-30 67006 y(as)387 b(the)3930 67006 y +SDict begin H.S end + 3930 67006 +a 3930 67006 a +SDict begin 18.2 H.A end + 3930 67006 a 3930 67006 a +SDict begin [ /View [/XYZ H.V] /Dest (5038) cvn H.B /DEST pdfmark end + 3930 67006 a +FP(ytalk)f FU(command.)h(The)h(syntax)f(is)g(similar)-62 +b(,)387 b(b)-31 b(ut)387 b(has)g(a)g(fe)-39 b(w)388 b(dif)-39 +b(ferences:)p Black -30 73792 a FR(178)p Black eop end +%%Page: 179 201 +TeXDict begin 179 200 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.179) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 27927 -1636 a FR(Chapter)386 b(13)i(Basic)f(Network)f +(Commands)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 +2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5039) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 +2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5040) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FJ(\045)1309 +3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + 1309 3611 a 1309 3611 +a +SDict begin [ /View [/XYZ H.V] /Dest (5041) cvn H.B /DEST pdfmark end + 1309 3611 a FH(ytalk)743 b FK(<)p FH(username)p FK(>)p +FH([#ttyname])-30 3779 y +SDict begin H.S end + -30 3779 a -30 3779 a +SDict begin 18.2 H.A end + -30 3779 +a -30 3779 a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-BASIC-NETWORK-COMMANDS-TALK-YTALK) +cvn H.B /DEST pdfmark end + -30 3779 a 4946 x FX(Figur)-28 b(e)387 b(13-8.)h(T)-115 +b(w)-15 b(o)386 b(users)h(in)g(a)g FV(ytalk)g FX(session)-30 +10591 y +SDict begin H.S end + -30 10591 a -30 10591 a +SDict begin 18.2 H.A end + -30 10591 a -30 10591 +a +SDict begin [ /View [/XYZ H.V] /Dest (5045) cvn H.B /DEST pdfmark end + -30 10591 a -30 43668 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 43668 a @beginspecial 12 +@llx 212 @lly 600 @urx 580 @ury 5880 @rwi @setspecial +%%BeginDocument: basic-network-commands/ytalk.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +800080008000800080008000800080008000800080008f0007c0c00000c0 +c00000fac0f500fdc0fd00fdc0d00001c0c0e400fbc0f30001c0c0f20001 +c0c08000850080008f0007c0c00000c0c00000fac0f40001c0c0fc0001c0 +c0d00001c0c0e50006c0c0000000c0c0f500fdc0f300fdc0800085008000 +8f000dc0c00000c0c00000c000c0c000c0f40001c0c0fc0001c0c0ae0001 +c0c0f600fcc0f400fcc08000850080009f00fac0f60005c0c00000c0c0fc +0001c0c0fc00fcc0fa0001c0c0fc0005c0c00000c0c0f70008c0c0000000 +c0c00000fbc00a0000c0c000c0c0c0000000fbc0fc00fdc0fc00fbc00700 +00c0c000c0c0c0f10001c0c0f40001c0c0f20001c0c0f400fac080009700 +80008e00fcc0fb0001c0c0f90001c0c0fb0001c0c0fc0004c0c000c0c0f6 +001ec0c0000000c0c000c0c0000000c0c00000c0c0c000c0c000c0c00000 +00c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0c0f500fcc0 +f30001c0c0f20001c0c080008500f9c00000f9c00000f9c00000f9c00000 +f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0 +0000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000 +f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0 +0000f9c0ec0001c0c0fa0001c0c0fc00fbc0fb0001c0c0fc00fcc0f50007 +c0c0000000c0c000f9c00b0000c0c00000c0c00000c0c0f80013c0c00000 +00c0c0000000c0c00000c0c00000c0c0f20001c0c0f40001c0c0f20001c0 +c0ed00f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c000 +00f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9 +c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c000 +00f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0ff0080 +009f00fac0f40001c0c0fa000ac0c0000000c0c00000c0c0fb0001c0c0fc +00fcc0f50009c0c0000000c0c000c0c0f90001c0c0f900fdc0fa0013c0c0 +000000c0c0000000c0c00000c0c00000c0c0f20001c0c0f40001c0c0f200 +01c0c0f400fac08000970080008d0001c0c0fa000ac0c0000000c0c00000 +c0c0fb0001c0c0fc0004c0c000c0c0f60009c0c0000000c0c000c0c0f900 +01c0c0f70001c0c0fb0013c0c0000000c0c0000000c0c00000c0c00000c0 +c0f20001c0c0f40001c0c0f20001c0c08000850080008d0001c0c0fa000a +c0c0000000c0c00000c0c0fb0001c0c0fc0005c0c00000c0c0f60011c0c0 +00c0c00000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0013c0 +c0000000c0c0000000c0c00000c0c00000c0c0f70006c0c0000000c0c0fc +0001c0c0fa0001c0c0fa0001c0c0fa0001c0c08000850080008e00fcc0fc +00fcc0fd00fdc00500c0c0000000fcc0080000c0c0c00000c0c0f500fdc0 +fc00fbc0010000fcc0fb00fbc0fc00fcc0fd00fbc0fd0005c0c00000c0c0 +f600fbc0fb0001c0c0fc00fac0fc0001c0c0fc00fac08000870080008000 +800080008000800080008000800080008000800080008000800080008000 +8000800080008000800080008000800080008000800080008000fd0000c0 +e90000c080008000800080009c00030000c0c0ea0001c0c0800080008000 +80009c00030000c0c0ea0001c0c080008000800080009c00fac0fd00fbc0 +fd00fbc0010000fac080008000800080009e00030000c0c0fc0013c0c000 +0000c0c000c0c0000000c0c0000000c0c080008000800080009c00030000 +c0c0fc00f9c0030000c0c0f90001c0c080008000800080009c00030000c0 +c0fc0001c0c0f800fdc0fb0001c0c080008000800080009c00030000c0c0 +fc0001c0c0f60001c0c0fc0001c0c080008000800080009c001e0000c0c0 +00c0c000c0c0000000c0c000c0c0000000c0c0000000c0c000c0c0800080 +00800080009f00fd00fdc0fd00fbc0fd00fbc0fb00fdc080008000800080 +009e00800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000850000c0f10001c0c0fc00fbc0fd00 +fbc0f30001c0c0fb00fdc0fc00fbc0f30001c0c0f20001c0c0fc00fbc0fd +00fbc0f30000c0f90000c0f10001c0c0800095008000860001c0c0fb00fb +c0fc00fdc0fd000ec0c0000000c0c000c0c0000000c0c0f500fdc0fc0001 +c0c0fb0006c0c0000000c0c0f500fdc0f300fdc0fd0015c0c0000000c0c0 +00c0c0000000c0c00000c0c000c0c0fc0001c0c0fa0001c0c0f200fdc080 +0095008000860001c0c0fc0008c0c0000000c0c00000fcc0fd0006c0c000 +0000c0c0fa0001c0c0f600fcc0fd0001c0c0fa0006c0c0000000c0c0f600 +fcc0f400fcc0f80001c0c0fa0008c0c00000c0c000c0c0fc0001c0c0fa00 +01c0c0f300fcc0800095008000af00fac0f70008c0c000c0c0c0000000fb +c0fd00fbc0010000fac0080000c0c0000000c0c0fc000bc0c0000000c0c0 +000000c0c0fb0001c0c0f30006c0c0000000c0c0fa0006c0c0000000c0c0 +f40001c0c0f20001c0c0f80001c0c0fb0003c0c00000f9c00000fac00100 +00fac0080000c0c0000000c0c0fc0001c0c0f400fac08000a70080009f00 +fdc01700c0c000c0c0000000c0c000c0c0000000c0c0000000c0c0fc0002 +c0c000fcc0fc0001c0c0fc00fac0fc0001c0c0f20004c0c0000000fac0fd +00fbc0f30001c0c0f20001c0c0fb00fcc0fb0001c0c0fc0004c0c000c0c0 +fc0001c0c0fa0001c0c0fc0006c0c0000000c0c0fc0001c0c080009500f9 +c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c000 +00f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9 +c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c000 +00f9c00000f9c00000f9c0ee001ac0c00000c0c000c0c0000000c0c000c0 +c0000000c0c0000000c0c0fc0002c0c000fcc0fc0001c0c0f80006c0c000 +0000c0c0f10013c0c0000000c0c0000000c0c000c0c0000000c0c0f40001 +c0c0f20001c0c0f80006c0c0000000c0c0fb0004c0c000c0c0fc0001c0c0 +fa0001c0c0fc0006c0c0000000c0c0fc0001c0c0ed00f9c00000f9c00000 +f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0 +0000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000 +f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c00000f9c0 +0000f9c00000f9c0ff008000af00fac0f60001c0c0fb0013c0c0000000c0 +c000c0c0000000c0c0000000c0c0fc0002c0c000fcc0fc0001c0c0f80005 +c0c00000c0c0f00013c0c0000000c0c0000000c0c000c0c0000000c0c0f4 +0001c0c0f20001c0c0f80005c0c00000c0c0fa0004c0c000c0c0fc0001c0 +c0fa0001c0c0fc0006c0c0000000c0c0fc0001c0c0f400fac08000a70080 +009f0001c0c0fb0013c0c0000000c0c000c0c0000000c0c0000000c0c0fc +0005c0c000c0c0c0fb0001c0c0f80004c0c000c0c0ef0013c0c0000000c0 +c0000000c0c000c0c0000000c0c0f40001c0c0f20001c0c0f80004c0c000 +c0c0fa00f9c0fd0001c0c0fa0001c0c0fc0006c0c0000000c0c0fc0001c0 +c08000950080009f0001c0c0fb0019c0c0000000c0c000c0c0000000c0c0 +000000c0c000c0c000c0c0f70001c0c0f9000ac0c00000c0c0000000c0c0 +fc0001c0c0fa0013c0c0000000c0c0000000c0c000c0c0000000c0c0fc00 +01c0c0fa0001c0c0fa0001c0c0fa001ac0c0000000c0c0000000c0c000c0 +c0000000c0c00000c0c000c0c0fc0014c0c000c0c0000000c0c000c0c000 +c0c0000000c0c0fc0001c0c0800095008000a000fcc0fb00fbc0fd00fbc0 +fb00fdc0fd00fbc0fd00fac0010000fcc0fd00f9c0fc0001c0c0fc00fac0 +010000fbc0fd00fbc0fb0001c0c0fc00fac0fc0001c0c0fc00fac0010000 +fbc0010000f9c0060000c0c000c0c0fb00fdc0fb00fdc0fd00fac0010000 +fac080009700800080008000f30001c0c080008f00800080008000f40001 +c0c080008e00800080008000f800fbc080008d0080008000800080008000 +8000800080008000800080008000800080008000fd0000c0fc00fdc0f800 +01c0c0ea0001c0c0da0000c0e90000c08000800080008000ec00030000c0 +c0fb0001c0c0f80001c0c0ea0001c0c0db0001c0c0ea0001c0c080008000 +80008000ec00030000c0c0fb0001c0c0b90001c0c0ea0001c0c080008000 +80008000ec00fac0fd0004c0c000c0c0fc00fdc0fc00fbc0f400fdc0fc00 +fbc0f500fcc0f500fac0fd00fbc0fd00fbc0010000fac080008000800080 +00ee00030000c0c0fb00fdc00200c0c0fc000bc0c0000000c0c0000000c0 +c0f4000bc0c0000000c0c0000000c0c0f30001c0c0f40001c0c0fc0013c0 +c0000000c0c000c0c0000000c0c0000000c0c08000800080008000ec0003 +0000c0c0fb0005c0c00000c0c0fc0001c0c0fc0001c0c0f00001c0c0fc00 +01c0c0f200fbc0f40001c0c0fc00f9c0030000c0c0f90001c0c080008000 +80008000ec00030000c0c0fb0005c0c00000c0c0fc0001c0c0fb00fdc0f2 +0001c0c0fb00fdc0f50005c0c00000c0c0f40001c0c0fc0001c0c0f800fd +c0fb0001c0c08000800080008000ec00030000c0c0fb0005c0c00000c0c0 +fc0001c0c0f90001c0c0f30001c0c0f90001c0c0f60005c0c00000c0c0f4 +0001c0c0fc0001c0c0f60001c0c0fc0001c0c08000800080008000ec000e +0000c0c000c0c00000c0c00000c0c0fc000bc0c0000000c0c0000000c0c0 +f4000bc0c0000000c0c0000000c0c0f70005c0c00000c0c0f4001cc0c000 +c0c000c0c0000000c0c000c0c0000000c0c0000000c0c000c0c080008000 +80008000ef00fd00fdc00b0000c0c0c00000c0c0000000fcc0fd00fbc0f4 +00fcc0fd00fbc0f500fdc00200c0c0f400fdc0fd00fbc0fd00fbc0fb00fd +c08000800080008000ee0080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +0080008000800080008000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 43668 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 43668 a -30 45218 a +SDict begin H.S end + -30 +45218 a -30 45218 a +SDict begin 18.2 H.A end + -30 45218 a -30 45218 a +SDict begin [ /View [/XYZ H.V] /Dest (5048) cvn H.B /DEST pdfmark end + -30 45218 +a 2014 x FU(The)514 b(username)g(and)f(terminal)h(are)g(speci\002ed)f +(the)h(same)g(as)g(under)f(talk,)h(e)-23 b(xcept)514 +b(you)g(must)-30 49247 y(put)387 b(them)g(together)g(with)g(the)g(hash) +g(mark)g(\(#\).)-30 50357 y +SDict begin H.S end + -30 50357 a -30 50357 a +SDict begin 18.2 H.A end + -30 +50357 a -30 50357 a +SDict begin [ /View [/XYZ H.V] /Dest (5049) cvn H.B /DEST pdfmark end + -30 50357 a 1680 x FU(ytalk)g(of)-39 +b(fers)388 b(se)-39 b(v)-23 b(eral)387 b(adv)-39 b(antages:)-30 +52372 y +SDict begin H.S end + -30 52372 a -30 52372 a +SDict begin 18.2 H.A end + -30 52372 a -30 52372 +a +SDict begin [ /View [/XYZ H.V] /Dest (5050) cvn H.B /DEST pdfmark end + -30 52372 a -30 53147 a +SDict begin H.S end + -30 53147 a -30 53147 a +SDict begin 18.2 H.A end + -30 +53147 a -30 53147 a +SDict begin [ /View [/XYZ H.V] /Dest (5051) cvn H.B /DEST pdfmark end + -30 53147 a Black 3229 x FM(\225)p +Black 1520 56376 a +SDict begin H.S end + 1520 56376 a 1520 56376 a +SDict begin 18.2 H.A end + 1520 56376 +a 1520 56376 a +SDict begin [ /View [/XYZ H.V] /Dest (5052) cvn H.B /DEST pdfmark end + 1520 56376 a FU(It)387 b(supports)g(more)g(than)g(tw)-15 +b(o)386 b(users.)-30 56711 y +SDict begin H.S end + -30 56711 a -30 56711 a +SDict begin 18.2 H.A end + +-30 56711 a -30 56711 a +SDict begin [ /View [/XYZ H.V] /Dest (5053) cvn H.B /DEST pdfmark end + -30 56711 a Black 2454 x FM(\225)p +Black 1520 59165 a +SDict begin H.S end + 1520 59165 a 1520 59165 a +SDict begin 18.2 H.A end + 1520 59165 +a 1520 59165 a +SDict begin [ /View [/XYZ H.V] /Dest (5054) cvn H.B /DEST pdfmark end + 1520 59165 a FU(A)h(menu)g(of)h(options)e(that)h(can)g +(be)h(brought)e(up)i(an)-23 b(ytime)386 b(with)36234 +59165 y +SDict begin H.S end + 36234 59165 a 36234 59165 a +SDict begin 18.2 H.A end + 36234 59165 a 36234 +59165 a +SDict begin [ /View [/XYZ H.V] /Dest (5055) cvn H.B /DEST pdfmark end + 36234 59165 a Fv(Esc)p FU(.)-30 59501 y +SDict begin H.S end + -30 59501 +a -30 59501 a +SDict begin 18.2 H.A end + -30 59501 a -30 59501 a +SDict begin [ /View [/XYZ H.V] /Dest (5056) cvn H.B /DEST pdfmark end + -30 59501 a Black +2454 x FM(\225)p Black 1520 61955 a +SDict begin H.S end + 1520 61955 a 1520 +61955 a +SDict begin 18.2 H.A end + 1520 61955 a 1520 61955 a +SDict begin [ /View [/XYZ H.V] /Dest (5057) cvn H.B /DEST pdfmark end + 1520 61955 a FU(Y)-170 +b(ou)386 b(can)i(shell)f(out)g(while)g(still)f(in)h(the)h(talk)f +(session.)-30 61970 y +SDict begin H.S end + -30 61970 a -30 61970 a +SDict begin 18.2 H.A end + -30 61970 +a -30 61970 a +SDict begin [ /View [/XYZ H.V] /Dest (5058) cvn H.B /DEST pdfmark end + -30 61970 a Black 2774 x FM(\225)p Black +1520 64744 a +SDict begin H.S end + 1520 64744 a 1520 64744 a +SDict begin 18.2 H.A end + 1520 64744 a 1520 +64744 a +SDict begin [ /View [/XYZ H.V] /Dest (5059) cvn H.B /DEST pdfmark end + 1520 64744 a FU(Plus)f(more...)p Black 49451 +73792 a FR(179)p Black eop end +%%Page: 180 202 +TeXDict begin 180 201 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.180) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(13)g(Basic)g(Network)f(Commands)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5060) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(If)606 b(you')-77 b(re)606 +b(a)g(serv)-23 b(er)606 b(administrator)-62 b(,)605 b(you')-15 +b(ll)605 b(w)-15 b(ant)605 b(to)h(mak)-15 b(e)605 b(sure)h(that)f(the) +43314 3611 y +SDict begin H.S end + 43314 3611 a 43314 3611 a +SDict begin 18.2 H.A end + 43314 3611 a 43314 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5061) cvn H.B /DEST pdfmark end + 43314 3611 a FP(ntalk)h FU(port)f(is)-30 5626 +y(enabled)387 b(in)6770 5626 y +SDict begin H.S end + 6770 5626 a 6770 5626 +a +SDict begin 18.2 H.A end + 6770 5626 a 6770 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (5062) cvn H.B /DEST pdfmark end + 6770 5626 a FQ(/etc/inetd.conf)p +FU(.)16941 5626 y +SDict begin H.S end + 16941 5626 a 16941 5626 a +SDict begin 18.2 H.A end + 16941 5626 +a 16941 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (5063) cvn H.B /DEST pdfmark end + 16941 5626 a FP(ytalk)f FU(needs)i(that)f(to)g(w)-15 +b(ork)386 b(properly)-101 b(.)p Black -30 73792 a FR(180)p +Black eop end +%%Page: 181 203 +TeXDict begin 181 202 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.181) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY) cvn H.B /DEST pdfmark +end + -30 2383 a 2345 x FS(Chapter)894 +b(14)-30 10743 y FO(Security)p -30 18316 51806 56 v -30 +18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 +a +SDict begin [ /View [/XYZ H.V] /Dest (5066) cvn H.B /DEST pdfmark end + -30 18316 a -30 19091 a +SDict begin H.S end + -30 19091 a -30 19091 a +SDict begin 18.2 H.A end + -30 +19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (5068) cvn H.B /DEST pdfmark end + -30 19091 a 1051 x FU(Security)493 +b(on)g(an)-23 b(y)493 b(system)g(is)g(important;)f(it)h(can)g(pre)-39 +b(v)-23 b(ent)494 b(people)f(launching)f(attacks)h(from)-30 +22157 y(your)373 b(machine,)g(as)g(well)f(as)h(protect)g(sensiti)-39 +b(v)-23 b(e)372 b(data.)h(This)f(chapter)h(is)g(all)f(about)h(ho)-39 +b(w)373 b(to)f(start)-30 24171 y(securing)583 b(your)h(Slackw)-15 +b(are)583 b(box)g(ag)-8 b(ainst)583 b(script)h(kiddies,)f(crack)-15 +b(ers)583 b(and)h(rogue)g(hamsters)-30 26186 y(alik)-15 +b(e.)599 b(Bear)h(in)f(mind)g(that)g(this)g(is)h(only)f(the)g(start)g +(of)h(securing)f(a)h(system;)e(security)h(is)h(a)-30 +28201 y(process,)388 b(not)f(a)g(state.)-30 28536 y +SDict begin H.S end + -30 +28536 a -30 28536 a +SDict begin 18.2 H.A end + -30 28536 a -30 28536 a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-DISABLE) cvn H.B /DEST +pdfmark end + -30 28536 +a 5789 x FL(14.1)620 b(Disab)-22 b(ling)620 b(Ser)22 +b(vices)-30 34822 y +SDict begin H.S end + -30 34822 a -30 34822 a +SDict begin 18.2 H.A end + -30 34822 +a -30 34822 a +SDict begin [ /View [/XYZ H.V] /Dest (5071) cvn H.B /DEST pdfmark end + -30 34822 a -30 35938 a +SDict begin H.S end + -30 35938 a -30 +35938 a +SDict begin 18.2 H.A end + -30 35938 a -30 35938 a +SDict begin [ /View [/XYZ H.V] /Dest (5074) cvn H.B /DEST pdfmark end + -30 35938 a 1518 x FU(The)421 +b(\002rst)f(step)h(after)g(installing)f(Slackw)-15 b(are)420 +b(should)g(be)h(to)g(disable)f(an)-23 b(y)421 b(services)g(you)f(don') +-28 b(t)-30 39470 y(need.)385 b(An)-23 b(y)385 b(services)f(could)g +(potentially)g(pose)g(a)h(security)g(risk,)g(so)f(it)h(is)f(important)g +(to)g(run)h(as)-30 41485 y(fe)-39 b(w)456 b(services)g(as)g(possible)e +(\(i.e.)j(only)e(those)h(that)f(are)h(needed\).)g(Services)g(are)g +(started)f(from)-30 43500 y(tw)-15 b(o)387 b(main)g(places)g(-)11317 +43500 y +SDict begin H.S end + 11317 43500 a 11317 43500 a +SDict begin 18.2 H.A end + 11317 43500 a 11317 +43500 a +SDict begin [ /View [/XYZ H.V] /Dest (5075) cvn H.B /DEST pdfmark end + 11317 43500 a FP(inetd)g FU(and)g(init)g(scripts.)-30 +43835 y +SDict begin H.S end + -30 43835 a -30 43835 a +SDict begin 18.2 H.A end + -30 43835 a -30 43835 +a +SDict begin [ /View [/XYZ H.V] /Dest (5076) cvn H.B /DEST pdfmark end + -30 43835 a -30 43835 a +SDict begin H.S end + -30 43835 a -30 43835 a +SDict begin 18.2 H.A end + -30 +43835 a -30 43835 a +SDict begin [ /View [/XYZ H.V] /Dest (5078) cvn H.B /DEST pdfmark end + -30 43835 a -30 43835 a +SDict begin H.S end + -30 43835 +a -30 43835 a +SDict begin 18.2 H.A end + -30 43835 a -30 43835 a +SDict begin [ /View [/XYZ H.V] /Dest (5080) cvn H.B /DEST pdfmark end + -30 43835 a 5027 +x FG(Ser)19 b(vices)517 b(star)37 b(ted)519 b(fr)-37 +b(om)518 b FF(inetd)-30 48885 y +SDict begin H.S end + -30 48885 a -30 48885 +a +SDict begin 18.2 H.A end + -30 48885 a -30 48885 a +SDict begin [ /View [/XYZ H.V] /Dest (5083) cvn H.B /DEST pdfmark end + -30 48885 a -30 49815 a +SDict begin H.S end + -30 +49815 a -30 49815 a +SDict begin 18.2 H.A end + -30 49815 a -30 49815 a +SDict begin [ /View [/XYZ H.V] /Dest (5085) cvn H.B /DEST pdfmark end + -30 49815 +a 1991 x FU(A)477 b(lot)f(of)h(the)g(daemons)f(that)h(come)g(with)f +(Slackw)-15 b(are)476 b(are)h(run)g(from)38990 51806 +y +SDict begin H.S end + 38990 51806 a 38990 51806 a +SDict begin 18.2 H.A end + 38990 51806 a 38990 51806 +a +SDict begin [ /View [/XYZ H.V] /Dest (5086) cvn H.B /DEST pdfmark end + 38990 51806 a FP(inetd)p FU(\(8\).)45381 51806 y +SDict begin H.S end + 45381 +51806 a 45381 51806 a +SDict begin 18.2 H.A end + 45381 51806 a 45381 51806 a +SDict begin [ /View [/XYZ H.V] /Dest (5087) cvn H.B /DEST pdfmark end + 45381 +51806 a FP(inetd)f FU(is)h(a)-30 53821 y(daemon)375 b(that)g(listens)g +(on)g(all)g(of)h(the)f(ports)g(used)g(by)g(services)g(con\002gured)g +(to)g(be)h(started)f(by)g(it)-30 55836 y(and)401 b(spa)-23 +b(wns)400 b(an)g(instance)h(of)f(the)h(rele)-39 b(v)g(ant)401 +b(daemon)f(when)h(a)f(connection)g(attempt)g(is)h(made.)-30 +57850 y(Daemons)441 b(started)g(from)14291 57850 y +SDict begin H.S end + 14291 +57850 a 14291 57850 a +SDict begin 18.2 H.A end + 14291 57850 a 14291 57850 a +SDict begin [ /View [/XYZ H.V] /Dest (5088) cvn H.B /DEST pdfmark end + 14291 +57850 a FP(inetd)g FU(can)g(be)h(disabled)e(by)h(commenting)f(out)h +(the)g(rele)-39 b(v)g(ant)441 b(lines)-30 59865 y(in)1582 +59865 y +SDict begin H.S end + 1582 59865 a 1582 59865 a +SDict begin 18.2 H.A end + 1582 59865 a 1582 59865 +a +SDict begin [ /View [/XYZ H.V] /Dest (5089) cvn H.B /DEST pdfmark end + 1582 59865 a FQ(/etc/inetd.conf)p FU(.)396 b(T)-124 +b(o)406 b(do)f(this,)h(open)f(this)g(\002le)g(in)h(your)f(f)-15 +b(a)-31 b(v)g(orite)405 b(editor)g(\(e.g.)44398 59865 +y +SDict begin H.S end + 44398 59865 a 44398 59865 a +SDict begin 18.2 H.A end + 44398 59865 a 44398 59865 +a +SDict begin [ /View [/XYZ H.V] /Dest (5090) cvn H.B /DEST pdfmark end + 44398 59865 a FP(vi)p FU(\))h(and)f(you)-30 61880 y(should)387 +b(see)g(lines)g(similar)f(to)i(this:)-30 63445 y +SDict begin H.S end + -30 +63445 a -30 63445 a +SDict begin 14.56 H.A end + -30 63445 a -30 63445 a +SDict begin [ /View [/XYZ H.V] /Dest (5091) cvn H.B /DEST pdfmark end + -30 63445 +a 1596 x FP(telnet)743 b(stream)1487 b(tcp)3719 b(nowait)1487 +b(root)2975 b(/usr/sbin/tcpd)1486 b(in.telnetd)p Black +49451 73672 a FR(181)p Black eop end +%%Page: 182 204 +TeXDict begin 182 203 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.182) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5117) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(14)g(Security)p Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 +a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (5092) cvn H.B /DEST pdfmark end + -30 2383 a 1107 x FU(Y)-170 b(ou)479 +b(can)g(disable)g(this)f(service,)i(and)f(an)-23 b(y)479 +b(others)g(you)g(don')-28 b(t)479 b(need,)g(by)g(commenting)f(them)-30 +5505 y(out)337 b(\(i.e.)h(adding)e(a)10615 5505 y +SDict begin H.S end + 10615 +5505 a 10615 5505 a +SDict begin 18.2 H.A end + 10615 5505 a 10615 5505 a +SDict begin [ /View [/XYZ H.V] /Dest (5093) cvn H.B /DEST pdfmark end + 10615 5505 +a FP(#)h FU(\(hash\))g(symbol)f(to)h(the)f(be)-23 b(ginning)336 +b(of)h(the)g(line\).)g(The)g(abo)-23 b(v)g(e)336 b(line)h(w)-15 +b(ould)-30 7520 y(then)387 b(become:)-30 9085 y +SDict begin H.S end + -30 9085 +a -30 9085 a +SDict begin 14.56 H.A end + -30 9085 a -30 9085 a +SDict begin [ /View [/XYZ H.V] /Dest (5094) cvn H.B /DEST pdfmark end + -30 9085 a 1596 x +FP(#telnet)743 b(stream)1487 b(tcp)3719 b(nowait)1487 +b(root)2975 b(/usr/sbin/tcpd)1486 b(in.telnetd)-30 12425 +y +SDict begin H.S end + -30 12425 a -30 12425 a +SDict begin 18.2 H.A end + -30 12425 a -30 12425 a +SDict begin [ /View [/XYZ H.V] /Dest (5095) cvn H.B /DEST pdfmark end + -30 +12425 a 1820 x FU(After)3687 14245 y +SDict begin H.S end + 3687 14245 a 3687 +14245 a +SDict begin 18.2 H.A end + 3687 14245 a 3687 14245 a +SDict begin [ /View [/XYZ H.V] /Dest (5096) cvn H.B /DEST pdfmark end + 3687 14245 a FP(inetd)446 +b FU(has)g(been)g(restarted,)h(this)f(service)g(will)g(be)h(disabled.)f +(Y)-170 b(ou)446 b(can)g(restart)48056 14245 y +SDict begin H.S end + 48056 +14245 a 48056 14245 a +SDict begin 18.2 H.A end + 48056 14245 a 48056 14245 a +SDict begin [ /View [/XYZ H.V] /Dest (5097) cvn H.B /DEST pdfmark end + 48056 +14245 a FP(inetd)-30 16260 y FU(with)387 b(the)g(command:)-30 +17825 y +SDict begin H.S end + -30 17825 a -30 17825 a +SDict begin 14.56 H.A end + -30 17825 a -30 17825 +a +SDict begin [ /View [/XYZ H.V] /Dest (5098) cvn H.B /DEST pdfmark end + -30 17825 a -30 17825 a +SDict begin H.S end + -30 17825 a -30 17825 a +SDict begin 14.56 H.A end + -30 +17825 a -30 17825 a +SDict begin [ /View [/XYZ H.V] /Dest (5099) cvn H.B /DEST pdfmark end + -30 17825 a 1597 x FJ(#)1309 19422 +y +SDict begin H.S end + 1309 19422 a 1309 19422 a +SDict begin 14.56 H.A end + 1309 19422 a 1309 19422 a +SDict begin [ /View [/XYZ H.V] /Dest (5100) cvn H.B /DEST pdfmark end + +1309 19422 a FH(kill)743 b(-HUP)h($\(cat)f(/var/run/inetd.pid\))-30 +21139 y +SDict begin H.S end + -30 21139 a -30 21139 a +SDict begin 18.2 H.A end + -30 21139 a -30 21139 +a +SDict begin [ /View [/XYZ H.V] /Dest (5101) cvn H.B /DEST pdfmark end + -30 21139 a 5349 x FG(Ser)19 b(vices)517 b(star)37 +b(ted)519 b(fr)-37 b(om)518 b(init)f(scripts)-30 27803 +y +SDict begin H.S end + -30 27803 a -30 27803 a +SDict begin 18.2 H.A end + -30 27803 a -30 27803 a +SDict begin [ /View [/XYZ H.V] /Dest (5103) cvn H.B /DEST pdfmark end + -30 +27803 a 1630 x FU(The)577 b(rest)g(of)g(the)g(services)g(started)g +(when)g(the)f(machine)h(starts)g(are)g(started)g(from)g(the)g(init)-30 +31448 y(scripts)435 b(in)6094 31448 y +SDict begin H.S end + 6094 31448 a 6094 +31448 a +SDict begin 18.2 H.A end + 6094 31448 a 6094 31448 a +SDict begin [ /View [/XYZ H.V] /Dest (5104) cvn H.B /DEST pdfmark end + 6094 31448 a FQ(/etc/rc.d/)p +FU(.)429 b(These)436 b(can)g(be)f(disabled)g(in)h(tw)-15 +b(o)434 b(dif)-39 b(ferent)436 b(w)-15 b(ays,)435 b(the)h(\002rst)f +(being)g(to)-30 33462 y(remo)-23 b(v)g(e)481 b(the)h(e)-23 +b(x)g(ecute)482 b(permissions)e(on)i(the)g(rele)-39 b(v)g(ant)482 +b(init)g(script)f(and)h(the)g(second)g(being)f(to)-30 +35477 y(comment)387 b(out)g(the)g(rele)-39 b(v)g(ant)387 +b(lines)g(in)g(the)h(init)e(scripts.)-30 35812 y +SDict begin H.S end + -30 +35812 a -30 35812 a +SDict begin 18.2 H.A end + -30 35812 a -30 35812 a +SDict begin [ /View [/XYZ H.V] /Dest (5105) cvn H.B /DEST pdfmark end + -30 35812 +a -30 36587 a +SDict begin H.S end + -30 36587 a -30 36587 a +SDict begin 18.2 H.A end + -30 36587 a -30 +36587 a +SDict begin [ /View [/XYZ H.V] /Dest (5107) cvn H.B /DEST pdfmark end + -30 36587 a 1679 x FU(F)-23 b(or)412 b(e)-23 +b(xample,)412 b(SSH)f(is)h(started)g(by)g(its)f(o)-39 +b(wn)412 b(init)g(script)g(at)32530 38266 y +SDict begin H.S end + 32530 38266 +a 32530 38266 a +SDict begin 18.2 H.A end + 32530 38266 a 32530 38266 a +SDict begin [ /View [/XYZ H.V] /Dest (5108) cvn H.B /DEST pdfmark end + 32530 38266 +a FQ(/etc/rc.d/rc.sshd)p FU(.)402 b(Y)-170 b(ou)411 b(can)h(dis-)-30 +40281 y(able)387 b(this)g(using:)-30 42166 y +SDict begin H.S end + -30 42166 +a -30 42166 a +SDict begin 14.56 H.A end + -30 42166 a -30 42166 a +SDict begin [ /View [/XYZ H.V] /Dest (5109) cvn H.B /DEST pdfmark end + -30 42166 a -30 +42166 a +SDict begin H.S end + -30 42166 a -30 42166 a +SDict begin 14.56 H.A end + -30 42166 a -30 42166 +a +SDict begin [ /View [/XYZ H.V] /Dest (5110) cvn H.B /DEST pdfmark end + -30 42166 a 1277 x FJ(#)1309 43443 y +SDict begin H.S end + 1309 43443 a 1309 +43443 a +SDict begin 14.56 H.A end + 1309 43443 a 1309 43443 a +SDict begin [ /View [/XYZ H.V] /Dest (5111) cvn H.B /DEST pdfmark end + 1309 43443 a FH(chmod)743 +b(-x)h(/etc/rc.d/rc.sshd)-30 45084 y +SDict begin H.S end + -30 45084 a -30 +45084 a +SDict begin 18.2 H.A end + -30 45084 a -30 45084 a +SDict begin [ /View [/XYZ H.V] /Dest (5112) cvn H.B /DEST pdfmark end + -30 45084 a 1923 x FU(F)-23 +b(or)424 b(services)g(that)g(don')-28 b(t)424 b(ha)-31 +b(v)-23 b(e)424 b(their)g(o)-39 b(wn)424 b(init)g(script,)g(you)g(will) +g(need)h(to)f(comment)f(out)h(the)-30 49022 y(rele)-39 +b(v)g(ant)459 b(lines)e(in)h(the)h(init)e(scripts)h(to)g(disable)g +(them.)g(F)-23 b(or)458 b(e)-23 b(xample,)458 b(the)g(portmap)f(daemon) +-30 51036 y(is)387 b(started)g(by)g(the)h(follo)-39 b(wing)386 +b(lines)h(in)21412 51036 y +SDict begin H.S end + 21412 51036 a 21412 51036 +a +SDict begin 18.2 H.A end + 21412 51036 a 21412 51036 a +SDict begin [ /View [/XYZ H.V] /Dest (5113) cvn H.B /DEST pdfmark end + 21412 51036 a FQ(/etc/rc.d/rc.inet2)p +FU(:)-30 52922 y +SDict begin H.S end + -30 52922 a -30 52922 a +SDict begin 14.56 H.A end + -30 52922 a +-30 52922 a +SDict begin [ /View [/XYZ H.V] /Dest (5114) cvn H.B /DEST pdfmark end + -30 52922 a 1276 x FP(#)744 b(This)f(must)h(be)f(running)g +(in)h(order)f(to)h(mount)f(NFS)h(volumes.)-30 55810 y(#)g(Start)f(the)h +(RPC)f(portmapper:)-30 57421 y(if)h([)f(-x)h(/sbin/rpc.portmap)e(];)i +(then)1458 59033 y(echo)f("Starting)g(RPC)h(portmapper:)1486 +b(/sbin/rpc.portmap")1458 60645 y(/sbin/rpc.portmap)-30 +62257 y(fi)-30 63868 y(#)744 b(Done)f(starting)g(the)h(RPC)f +(portmapper.)p Black -30 73672 a FR(182)p Black eop end +%%Page: 183 205 +TeXDict begin 183 204 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.183) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 39293 -1636 a FR(Chapter)386 b(14)h(Security)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5115) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(This)468 b(can)h(be)g(disabled)f(by)h +(adding)20086 3611 y +SDict begin H.S end + 20086 3611 a 20086 3611 a +SDict begin 18.2 H.A end + 20086 +3611 a 20086 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5116) cvn H.B /DEST pdfmark end + 20086 3611 a FP(#)g FU(symbols)f(to)h(the)f(be)-23 +b(ginnings)468 b(of)h(the)f(lines)h(that)f(don')-28 b(t)-30 +5626 y(already)387 b(start)g(with)g(them,)h(lik)-15 b(e)386 +b(so:)-30 8787 y FP(#)744 b(This)f(must)h(be)f(running)g(in)h(order)f +(to)h(mount)f(NFS)h(volumes.)-30 10399 y(#)g(Start)f(the)h(RPC)f +(portmapper:)-30 12011 y(#if)h([)f(-x)h(/sbin/rpc.portmap)e(];)h(then) +-30 13622 y(#)1488 b(echo)743 b("Starting)g(RPC)g(portmapper:)1487 +b(/sbin/rpc.portmap")-30 15234 y(#)h(/sbin/rpc.portmap)-30 +16846 y(#fi)-30 18458 y(#)744 b(Done)f(starting)g(the)h(RPC)f +(portmapper.)-30 18653 y +SDict begin H.S end + -30 18653 a -30 18653 a +SDict begin 18.2 H.A end + -30 +18653 a -30 18653 a +SDict begin [ /View [/XYZ H.V] /Dest (5118) cvn H.B /DEST pdfmark end + -30 18653 a -30 18653 a +SDict begin H.S end + -30 18653 +a -30 18653 a +SDict begin 18.2 H.A end + -30 18653 a -30 18653 a +SDict begin [ /View [/XYZ H.V] /Dest (5120) cvn H.B /DEST pdfmark end + -30 18653 a -30 +18653 a +SDict begin H.S end + -30 18653 a -30 18653 a +SDict begin 18.2 H.A end + -30 18653 a -30 18653 +a +SDict begin [ /View [/XYZ H.V] /Dest (5122) cvn H.B /DEST pdfmark end + -30 18653 a -30 20202 a +SDict begin H.S end + -30 20202 a -30 20202 a +SDict begin 18.2 H.A end + -30 +20202 a -30 20202 a +SDict begin [ /View [/XYZ H.V] /Dest (5124) cvn H.B /DEST pdfmark end + -30 20202 a 1820 x FU(These)409 b(changes)g(will)f +(only)h(tak)-15 b(e)408 b(ef)-39 b(fect)410 b(after)f(either)g(a)g +(reboot)g(or)g(changing)f(from)h(and)g(back)-30 24037 +y(to)417 b(runle)-39 b(v)-23 b(el)417 b(3)g(or)g(4.)h(Y)-170 +b(ou)416 b(can)i(do)f(this)g(by)g(typing)f(the)h(follo)-39 +b(wing)417 b(on)g(the)g(console)g(\(you)g(will)-30 26051 +y(need)387 b(to)h(log)f(in)g(ag)-8 b(ain)387 b(after)h(changing)e(to)h +(runle)-39 b(v)-23 b(el)387 b(1\):)-30 27937 y +SDict begin H.S end + -30 27937 +a -30 27937 a +SDict begin 14.56 H.A end + -30 27937 a -30 27937 a +SDict begin [ /View [/XYZ H.V] /Dest (5125) cvn H.B /DEST pdfmark end + -30 27937 a -30 +27937 a +SDict begin H.S end + -30 27937 a -30 27937 a +SDict begin 14.56 H.A end + -30 27937 a -30 27937 +a +SDict begin [ /View [/XYZ H.V] /Dest (5126) cvn H.B /DEST pdfmark end + -30 27937 a 1276 x FJ(#)1309 29213 y +SDict begin H.S end + 1309 29213 a 1309 +29213 a +SDict begin 14.56 H.A end + 1309 29213 a 1309 29213 a +SDict begin [ /View [/XYZ H.V] /Dest (5127) cvn H.B /DEST pdfmark end + 1309 29213 a FH(telinit)743 +b(1)-30 29238 y +SDict begin H.S end + -30 29238 a -30 29238 a +SDict begin 14.56 H.A end + -30 29238 a -30 +29238 a +SDict begin [ /View [/XYZ H.V] /Dest (5128) cvn H.B /DEST pdfmark end + -30 29238 a 1587 x FJ(#)1309 30825 y +SDict begin H.S end + 1309 30825 +a 1309 30825 a +SDict begin 14.56 H.A end + 1309 30825 a 1309 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (5129) cvn H.B /DEST pdfmark end + 1309 30825 a +FH(telinit)g(3)-30 33949 y +SDict begin H.S end + -30 33949 a -30 33949 a +SDict begin 18.2 H.A end + -30 +33949 a -30 33949 a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-HOST) cvn H.B /DEST +pdfmark end + -30 33949 a 6100 x FL(14.2)620 b(Host)g(Access)g +(Contr)-45 b(ol)-30 40077 y +SDict begin H.S end + -30 40077 a -30 40077 a +SDict begin 18.2 H.A end + -30 +40077 a -30 40077 a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-HOST-IPTABLES) cvn H.B +/DEST pdfmark end + -30 40077 a 5334 x FF(iptab)-19 b(les)-30 +45796 y +SDict begin H.S end + -30 45796 a -30 45796 a +SDict begin 18.2 H.A end + -30 45796 a -30 45796 +a +SDict begin [ /View [/XYZ H.V] /Dest (5135) cvn H.B /DEST pdfmark end + -30 45796 a -30 45796 a +SDict begin H.S end + -30 45796 a -30 45796 a +SDict begin 18.2 H.A end + -30 +45796 a -30 45796 a +SDict begin [ /View [/XYZ H.V] /Dest (5137) cvn H.B /DEST pdfmark end + -30 45796 a -30 45796 a +SDict begin H.S end + -30 45796 +a -30 45796 a +SDict begin 18.2 H.A end + -30 45796 a -30 45796 a +SDict begin [ /View [/XYZ H.V] /Dest (5139) cvn H.B /DEST pdfmark end + -30 45796 a -30 +46726 a +SDict begin H.S end + -30 46726 a -30 46726 a +SDict begin 18.2 H.A end + -30 46726 a -30 46726 +a +SDict begin [ /View [/XYZ H.V] /Dest (5141) cvn H.B /DEST pdfmark end + -30 46726 a -30 46726 a +SDict begin H.S end + -30 46726 a -30 46726 a +SDict begin 18.2 H.A end + -30 +46726 a -30 46726 a +SDict begin [ /View [/XYZ H.V] /Dest (5142) cvn H.B /DEST pdfmark end + -30 46726 a 1629 x FP(iptables)361 +b FU(is)g(the)g(pack)-15 b(et)361 b(\002ltering)g(con\002guration)f +(program)h(for)h(Linux)f(2.4)g(and)h(abo)-23 b(v)g(e.)361 +b(The)-30 50370 y(2.4)453 b(k)-15 b(ernel)452 b(\(2.4.5,)i(to)f(be)f(e) +-23 b(xact\))453 b(w)-15 b(as)452 b(\002rst)g(introduced)g(into)h +(Slackw)-15 b(are)452 b(\(as)g(an)h(option\))f(in)-30 +52385 y(v)-23 b(ersion)385 b(8.0)g(and)h(w)-15 b(as)384 +b(made)h(the)h(def)-15 b(ault)384 b(in)h(Slackw)-15 b(are)385 +b(8.1.)h(This)f(section)f(only)h(co)-23 b(v)g(ers)385 +b(the)-30 54399 y(basics)420 b(of)h(its)f(usage)h(and)f(you)h(should)f +(check)p 0 1 0 0 TeXcolorcmyk 25717 54753 a +SDict begin H.S end + 25717 54753 +a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)o(w)l(w)l(w)l(.)l(n)l(e)l(t)l +(f)l(i)l(l)l(t)l(e)l(r)l(.)l(o)l(r)l(g)l(/)p 0 1 0 0 +TeXcolorcmyk 45943 53293 a +SDict begin H.R end + 45943 53293 a 45943 54399 +a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.netfilter.org/) >> /Subtype /Link H.B /ANN pdfmark +end + 45943 54399 a Black 420 w FU(for)h(more)-30 56414 y(details.)391 +b(These)h(commands)e(can)i(be)f(entered)h(into)28147 +56414 y +SDict begin H.S end + 28147 56414 a 28147 56414 a +SDict begin 18.2 H.A end + 28147 56414 a 28147 +56414 a +SDict begin [ /View [/XYZ H.V] /Dest (5144) cvn H.B /DEST pdfmark end + 28147 56414 a FQ(/etc/rc.d/rc.firewall)p FU(,)378 +b(which)391 b(has)h(to)f(be)-30 58429 y(set)316 b(as)g(e)-23 +b(x)g(ecutable)316 b(for)g(these)g(rules)g(to)g(tak)-15 +b(e)315 b(ef)-39 b(fect)317 b(at)f(startup.)g(Note)g(that)g(incorrect) +45825 58429 y +SDict begin H.S end + 45825 58429 a 45825 58429 a +SDict begin 18.2 H.A end + 45825 58429 +a 45825 58429 a +SDict begin [ /View [/XYZ H.V] /Dest (5145) cvn H.B /DEST pdfmark end + 45825 58429 a FP(iptables)-30 60443 y +FU(commands)382 b(can)g(essentially)g(lock)g(you)g(out)g(of)g(your)h(o) +-39 b(wn)382 b(machine.)h(Unless)e(you)i(are)f(100\045)-30 +62458 y(con\002dent)387 b(in)g(your)g(skills,)g(al)-15 +b(w)g(ays)386 b(ensure)h(you)g(ha)-31 b(v)-23 b(e)387 +b(local)g(access)h(to)f(the)g(machine.)-30 63568 y +SDict begin H.S end + -30 +63568 a -30 63568 a +SDict begin 18.2 H.A end + -30 63568 a -30 63568 a +SDict begin [ /View [/XYZ H.V] /Dest (5146) cvn H.B /DEST pdfmark end + -30 63568 +a 1680 x FU(The)340 b(\002rst)f(thing)g(most)g(people)h(should)f(do)h +(is)f(set)h(the)f(def)-15 b(ault)339 b(polic)-23 b(y)339 +b(for)h(each)g(inbound)f(chain)-30 67262 y(to)387 b(DR)-62 +b(OP:)p Black 49451 73792 a FR(183)p Black eop end +%%Page: 184 206 +TeXDict begin 184 205 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.184) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5181) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(14)g(Security)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 +a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5147) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 +a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5148) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x +FJ(#)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + 1309 3611 a +1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5149) cvn H.B /DEST pdfmark end + 1309 3611 a FH(iptables)743 b(-P)h(INPUT)f(DROP)-30 +3779 y +SDict begin H.S end + -30 3779 a -30 3779 a +SDict begin 14.56 H.A end + -30 3779 a -30 3779 a +SDict begin [ /View [/XYZ H.V] /Dest (5150) cvn H.B /DEST pdfmark end + -30 +3779 a 1444 x FJ(#)1309 5223 y +SDict begin H.S end + 1309 5223 a 1309 5223 +a +SDict begin 14.56 H.A end + 1309 5223 a 1309 5223 a +SDict begin [ /View [/XYZ H.V] /Dest (5151) cvn H.B /DEST pdfmark end + 1309 5223 a FH(iptables)g(-P)h(FORWARD)f +(DROP)-30 6941 y +SDict begin H.S end + -30 6941 a -30 6941 a +SDict begin 18.2 H.A end + -30 6941 a -30 +6941 a +SDict begin [ /View [/XYZ H.V] /Dest (5152) cvn H.B /DEST pdfmark end + -30 6941 a 1846 x FU(When)402 b(e)-39 b(v)-23 +b(erything)401 b(is)h(denied,)g(you)g(can)g(start)f(allo)-39 +b(wing)402 b(things.)f(The)h(\002rst)f(thing)h(to)f(allo)-39 +b(w)402 b(is)-30 10802 y(an)-23 b(y)387 b(traf)-39 b(\002c)388 +b(for)f(sessions)f(which)h(are)h(already)f(established:)-30 +12687 y +SDict begin H.S end + -30 12687 a -30 12687 a +SDict begin 14.56 H.A end + -30 12687 a -30 12687 +a +SDict begin [ /View [/XYZ H.V] /Dest (5153) cvn H.B /DEST pdfmark end + -30 12687 a -30 12687 a +SDict begin H.S end + -30 12687 a -30 12687 a +SDict begin 14.56 H.A end + -30 +12687 a -30 12687 a +SDict begin [ /View [/XYZ H.V] /Dest (5154) cvn H.B /DEST pdfmark end + -30 12687 a 1276 x FJ(#)1309 13963 +y +SDict begin H.S end + 1309 13963 a 1309 13963 a +SDict begin 14.56 H.A end + 1309 13963 a 1309 13963 a +SDict begin [ /View [/XYZ H.V] /Dest (5155) cvn H.B /DEST pdfmark end + +1309 13963 a FH(iptables)743 b(-A)h(INPUT)f(-m)h(state)f(--state)g +(ESTABLISHED,RELATED)e(-j)j(ACCEPT)-30 15681 y +SDict begin H.S end + -30 15681 +a -30 15681 a +SDict begin 18.2 H.A end + -30 15681 a -30 15681 a +SDict begin [ /View [/XYZ H.V] /Dest (5156) cvn H.B /DEST pdfmark end + -30 15681 a 1847 +x FU(So)387 b(as)h(not)f(to)h(break)g(an)-23 b(y)387 +b(applications)g(that)g(communicate)g(using)g(the)g(loopback)g +(address,)h(it)-30 19542 y(is)f(usually)g(wise)g(to)g(add)g(a)h(rule)f +(lik)-15 b(e)387 b(this:)-30 21428 y +SDict begin H.S end + -30 21428 a -30 +21428 a +SDict begin 14.56 H.A end + -30 21428 a -30 21428 a +SDict begin [ /View [/XYZ H.V] /Dest (5157) cvn H.B /DEST pdfmark end + -30 21428 a -30 21428 +a +SDict begin H.S end + -30 21428 a -30 21428 a +SDict begin 14.56 H.A end + -30 21428 a -30 21428 a +SDict begin [ /View [/XYZ H.V] /Dest (5158) cvn H.B /DEST pdfmark end + -30 +21428 a 1276 x FJ(#)1309 22704 y +SDict begin H.S end + 1309 22704 a 1309 22704 +a +SDict begin 14.56 H.A end + 1309 22704 a 1309 22704 a +SDict begin [ /View [/XYZ H.V] /Dest (5159) cvn H.B /DEST pdfmark end + 1309 22704 a FH(iptables)743 +b(-A)h(INPUT)f(-s)h(127.0.0.0/8)e(-d)i(127.0.0.0/8)e(-i)i(lo)f(-j)h +(ACCEPT)-30 24422 y +SDict begin H.S end + -30 24422 a -30 24422 a +SDict begin 18.2 H.A end + -30 24422 +a -30 24422 a +SDict begin [ /View [/XYZ H.V] /Dest (5160) cvn H.B /DEST pdfmark end + -30 24422 a 1846 x FU(This)441 b(rules)h(allo)-39 +b(ws)441 b(an)-23 b(y)441 b(traf)-39 b(\002c)442 b(to)g(and)f(from)h +(127.0.0.0/8)g(\(127.0.0.0)g(-)g(127.255.255.255\))-30 +28283 y(on)347 b(the)g(loopback)f(\()10652 28283 y +SDict begin H.S end + 10652 +28283 a 10652 28283 a +SDict begin 18.2 H.A end + 10652 28283 a 10652 28283 a +SDict begin [ /View [/XYZ H.V] /Dest (5161) cvn H.B /DEST pdfmark end + 10652 +28283 a FQ(lo)p FU(\))g(interf)-15 b(ace.)347 b(When)f(creating)h +(rules,)g(it)g(is)f(a)i(good)e(idea)h(to)g(be)g(as)f(speci\002c)-30 +30298 y(as)506 b(possible,)f(to)h(mak)-15 b(e)505 b(sure)h(that)f(your) +h(rules)f(do)h(not)g(inadv)-23 b(ertently)504 b(allo)-39 +b(w)506 b(an)-23 b(ything)505 b(e)-39 b(vil.)-30 32312 +y(That)387 b(said,)h(rules)f(that)g(allo)-39 b(w)387 +b(too)g(little)g(mean)g(more)g(rules)g(and)g(more)g(typing.)-30 +32648 y +SDict begin H.S end + -30 32648 a -30 32648 a +SDict begin 18.2 H.A end + -30 32648 a -30 32648 +a +SDict begin [ /View [/XYZ H.V] /Dest (5162) cvn H.B /DEST pdfmark end + -30 32648 a -30 33423 a +SDict begin H.S end + -30 33423 a -30 33423 a +SDict begin 18.2 H.A end + -30 +33423 a -30 33423 a +SDict begin [ /View [/XYZ H.V] /Dest (5164) cvn H.B /DEST pdfmark end + -30 33423 a 1679 x FU(The)452 b(ne)-23 +b(xt)451 b(thing)g(to)g(do)g(w)-15 b(ould)451 b(be)h(to)f(allo)-39 +b(w)451 b(access)h(to)f(speci\002c)g(services)h(running)f(on)g(your)-30 +37117 y(machine.)563 b(If,)h(for)f(e)-23 b(xample,)563 +b(you)g(w)-15 b(anted)562 b(to)h(run)g(a)g(web)g(serv)-23 +b(er)563 b(on)g(your)g(machine,)g(you)-30 39131 y(w)-15 +b(ould)386 b(use)i(a)f(rule)g(similar)g(to)g(this:)-30 +40696 y +SDict begin H.S end + -30 40696 a -30 40696 a +SDict begin 14.56 H.A end + -30 40696 a -30 40696 +a +SDict begin [ /View [/XYZ H.V] /Dest (5165) cvn H.B /DEST pdfmark end + -30 40696 a -30 40696 a +SDict begin H.S end + -30 40696 a -30 40696 a +SDict begin 14.56 H.A end + -30 +40696 a -30 40696 a +SDict begin [ /View [/XYZ H.V] /Dest (5166) cvn H.B /DEST pdfmark end + -30 40696 a 1597 x FJ(#)1309 42293 +y +SDict begin H.S end + 1309 42293 a 1309 42293 a +SDict begin 14.56 H.A end + 1309 42293 a 1309 42293 a +SDict begin [ /View [/XYZ H.V] /Dest (5167) cvn H.B /DEST pdfmark end + +1309 42293 a FH(iptables)743 b(-A)h(INPUT)f(-p)h(tcp)f(--dport)g(80)h +(-i)f(ppp0)h(-j)f(ACCEPT)-30 44010 y +SDict begin H.S end + -30 44010 a -30 +44010 a +SDict begin 18.2 H.A end + -30 44010 a -30 44010 a +SDict begin [ /View [/XYZ H.V] /Dest (5168) cvn H.B /DEST pdfmark end + -30 44010 a 1847 x FU(This)368 +b(will)f(allo)-39 b(w)368 b(access)g(from)g(an)-23 b(y)368 +b(machine)g(to)f(port)h(80)g(on)g(your)g(machine)g(via)g(the)47180 +45857 y +SDict begin H.S end + 47180 45857 a 47180 45857 a +SDict begin 18.2 H.A end + 47180 45857 a 47180 +45857 a +SDict begin [ /View [/XYZ H.V] /Dest (5169) cvn H.B /DEST pdfmark end + 47180 45857 a FQ(ppp0)e FU(in-)-30 47872 y(terf)-15 +b(ace.)374 b(Y)-170 b(ou)372 b(may)h(w)-15 b(ant)372 +b(to)h(restrict)g(access)g(to)g(this)g(service)g(so)g(that)g(only)f +(certain)i(machines)-30 49886 y(can)388 b(access)f(it.)g(This)g(rule)h +(allo)-39 b(ws)387 b(access)g(to)g(your)g(web)h(service)f(from)39138 +49886 y +SDict begin H.S end + 39138 49886 a 39138 49886 a +SDict begin 18.2 H.A end + 39138 49886 a 39138 +49886 a +SDict begin [ /View [/XYZ H.V] /Dest (5170) cvn H.B /DEST pdfmark end + 39138 49886 a 0 1 0 0 TeXcolorcmyk 39138 49886 +a +SDict begin H.S end + 39138 49886 a 0 1 0 0 TeXcolorcmyk FQ(64.57.102.34)p +0 1 0 0 TeXcolorcmyk 46654 49146 a +SDict begin H.R end + 46654 49146 a 46654 +49886 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (64.57.102.34) >> /Subtype /Link H.B /ANN pdfmark end + 46654 49886 a Black FU(:)-30 51772 y +SDict begin H.S end + -30 51772 +a -30 51772 a +SDict begin 14.56 H.A end + -30 51772 a -30 51772 a +SDict begin [ /View [/XYZ H.V] /Dest (5171) cvn H.B /DEST pdfmark end + -30 51772 a -30 +51772 a +SDict begin H.S end + -30 51772 a -30 51772 a +SDict begin 14.56 H.A end + -30 51772 a -30 51772 +a +SDict begin [ /View [/XYZ H.V] /Dest (5172) cvn H.B /DEST pdfmark end + -30 51772 a 1276 x FJ(#)1309 53048 y +SDict begin H.S end + 1309 53048 a 1309 +53048 a +SDict begin 14.56 H.A end + 1309 53048 a 1309 53048 a +SDict begin [ /View [/XYZ H.V] /Dest (5173) cvn H.B /DEST pdfmark end + 1309 53048 a FH(iptables)743 +b(-A)h(INPUT)f(-p)h(tcp)f(-s)h(64.57.102.34)e(--dport)h(80)h(-i)f(ppp0) +h(-j)f(ACCEPT)-30 54766 y +SDict begin H.S end + -30 54766 a -30 54766 a +SDict begin 18.2 H.A end + -30 +54766 a -30 54766 a +SDict begin [ /View [/XYZ H.V] /Dest (5174) cvn H.B /DEST pdfmark end + -30 54766 a 1846 x FU(Allo)-39 b(wing)392 +b(ICMP)g(traf)-39 b(\002c)392 b(can)h(be)g(useful)f(for)g(diagnostic)g +(purposes.)g(T)-124 b(o)393 b(do)f(this,)h(you)f(w)-15 +b(ould)-30 58627 y(use)387 b(a)h(rule)f(lik)-15 b(e)387 +b(this:)-30 60192 y +SDict begin H.S end + -30 60192 a -30 60192 a +SDict begin 14.56 H.A end + -30 60192 +a -30 60192 a +SDict begin [ /View [/XYZ H.V] /Dest (5175) cvn H.B /DEST pdfmark end + -30 60192 a -30 60192 a +SDict begin H.S end + -30 60192 a -30 +60192 a +SDict begin 14.56 H.A end + -30 60192 a -30 60192 a +SDict begin [ /View [/XYZ H.V] /Dest (5176) cvn H.B /DEST pdfmark end + -30 60192 a 1596 x FJ(#)1309 +61788 y +SDict begin H.S end + 1309 61788 a 1309 61788 a +SDict begin 14.56 H.A end + 1309 61788 a 1309 61788 +a +SDict begin [ /View [/XYZ H.V] /Dest (5177) cvn H.B /DEST pdfmark end + 1309 61788 a FH(iptables)743 b(-A)h(INPUT)f(-p)h(icmp)f(-j)h(ACCEPT) +-30 61956 y +SDict begin H.S end + -30 61956 a -30 61956 a +SDict begin 18.2 H.A end + -30 61956 a -30 61956 +a +SDict begin [ /View [/XYZ H.V] /Dest (5178) cvn H.B /DEST pdfmark end + -30 61956 a -30 63506 a +SDict begin H.S end + -30 63506 a -30 63506 a +SDict begin 18.2 H.A end + -30 +63506 a -30 63506 a +SDict begin [ /View [/XYZ H.V] /Dest (5180) cvn H.B /DEST pdfmark end + -30 63506 a 1847 x FU(Most)479 b(people)g(will)g +(also)g(w)-15 b(ant)479 b(to)g(set)h(up)f(Netw)-15 b(ork)478 +b(Address)h(T)-54 b(ranslation)479 b(\(N)-54 b(A)-172 +b(T\))479 b(on)g(their)-30 67368 y(g)-8 b(ate)-39 b(w)-15 +b(ay)504 b(machine,)g(so)g(that)g(other)g(machines)f(on)h(their)g(netw) +-15 b(ork)503 b(can)h(access)g(the)g(Internet)p Black +-30 73792 a FR(184)p Black eop end +%%Page: 185 207 +TeXDict begin 185 206 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.185) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5210) cvn H.B /DEST pdfmark end + -30 -2687 a 39293 -1636 a FR(Chapter)386 +b(14)h(Security)p Black -30 3611 a FU(through)g(it.)g(Y)-170 +b(ou)387 b(w)-15 b(ould)386 b(use)h(the)h(follo)-39 b(wing)386 +b(rule)h(to)h(do)f(this:)-30 6773 y FJ(#)1309 6773 y +SDict begin H.S end + +1309 6773 a 1309 6773 a +SDict begin 14.56 H.A end + 1309 6773 a 1309 6773 a +SDict begin [ /View [/XYZ H.V] /Dest (5183) cvn H.B /DEST pdfmark end + 1309 +6773 a FH(iptables)743 b(-t)h(nat)f(-A)h(POSTROUTING)e(-o)i(ppp0)f(-j)h +(MASQUERADE)-30 6941 y +SDict begin H.S end + -30 6941 a -30 6941 a +SDict begin 18.2 H.A end + -30 6941 +a -30 6941 a +SDict begin [ /View [/XYZ H.V] /Dest (5184) cvn H.B /DEST pdfmark end + -30 6941 a -30 8490 a +SDict begin H.S end + -30 8490 a -30 8490 +a +SDict begin 18.2 H.A end + -30 8490 a -30 8490 a +SDict begin [ /View [/XYZ H.V] /Dest (5186) cvn H.B /DEST pdfmark end + -30 8490 a 1847 x FU(Y)-170 b(ou)455 +b(will)g(also)g(need)h(to)f(enable)h(IP)f(forw)-15 b(arding.)455 +b(Y)-170 b(ou)455 b(can)h(do)g(this)f(temporarily)-101 +b(,)455 b(using)g(the)-30 12352 y(follo)-39 b(wing)387 +b(command:)-30 14237 y +SDict begin H.S end + -30 14237 a -30 14237 a +SDict begin 14.56 H.A end + -30 14237 +a -30 14237 a +SDict begin [ /View [/XYZ H.V] /Dest (5187) cvn H.B /DEST pdfmark end + -30 14237 a -30 14237 a +SDict begin H.S end + -30 14237 a -30 +14237 a +SDict begin 14.56 H.A end + -30 14237 a -30 14237 a +SDict begin [ /View [/XYZ H.V] /Dest (5188) cvn H.B /DEST pdfmark end + -30 14237 a 1276 x FJ(#)1309 +15513 y +SDict begin H.S end + 1309 15513 a 1309 15513 a +SDict begin 14.56 H.A end + 1309 15513 a 1309 15513 +a +SDict begin [ /View [/XYZ H.V] /Dest (5189) cvn H.B /DEST pdfmark end + 1309 15513 a FH(echo)743 b(1)h(>)g(/proc/sys/net/ipv4/ip_forward)-30 +17231 y +SDict begin H.S end + -30 17231 a -30 17231 a +SDict begin 18.2 H.A end + -30 17231 a -30 17231 +a +SDict begin [ /View [/XYZ H.V] /Dest (5190) cvn H.B /DEST pdfmark end + -30 17231 a 1847 x FU(T)-124 b(o)451 b(enable)g(IP)g(forw)-15 +b(arding)451 b(on)g(a)g(more)g(permanent)g(basis)g(\(i.e.)h(so)f(that)g +(the)g(change)h(is)f(k)-15 b(ept)-30 21092 y(after)585 +b(a)f(reboot\),)h(you)f(will)g(need)g(to)g(open)g(the)g(\002le)29959 +21092 y +SDict begin H.S end + 29959 21092 a 29959 21092 a +SDict begin 18.2 H.A end + 29959 21092 a 29959 +21092 a +SDict begin [ /View [/XYZ H.V] /Dest (5191) cvn H.B /DEST pdfmark end + 29959 21092 a FQ(/etc/rc.d/rc.inet2)573 b FU(in)585 +b(your)f(f)-15 b(a)-31 b(v)g(orite)-30 23107 y(editor)387 +b(and)g(change)h(the)f(follo)-39 b(wing)386 b(line:)-30 +24992 y +SDict begin H.S end + -30 24992 a -30 24992 a +SDict begin 14.56 H.A end + -30 24992 a -30 24992 +a +SDict begin [ /View [/XYZ H.V] /Dest (5192) cvn H.B /DEST pdfmark end + -30 24992 a 1276 x FP(IPV4_FORWARD=0)-30 27963 y +SDict begin H.S end + -30 +27963 a -30 27963 a +SDict begin 18.2 H.A end + -30 27963 a -30 27963 a +SDict begin [ /View [/XYZ H.V] /Dest (5193) cvn H.B /DEST pdfmark end + -30 27963 +a 1870 x FU(...to)j(this:)-30 31398 y +SDict begin H.S end + -30 31398 a -30 +31398 a +SDict begin 14.56 H.A end + -30 31398 a -30 31398 a +SDict begin [ /View [/XYZ H.V] /Dest (5194) cvn H.B /DEST pdfmark end + -30 31398 a 1596 x FP(IPV4_FORWARD=1) +-30 34689 y +SDict begin H.S end + -30 34689 a -30 34689 a +SDict begin 18.2 H.A end + -30 34689 a -30 34689 +a +SDict begin [ /View [/XYZ H.V] /Dest (5195) cvn H.B /DEST pdfmark end + -30 34689 a 1870 x FU(F)-23 b(or)387 b(more)g(information)f(on)h(N) +-54 b(A)-172 b(T)-115 b(,)388 b(see)g(the)23968 36559 +y +SDict begin H.S end + 23968 36559 a 23968 36559 a +SDict begin 18.2 H.A end + 23968 36559 a 23968 36559 +a +SDict begin [ /View [/XYZ H.V] /Dest (5196) cvn H.B /DEST pdfmark end + 23968 36559 a FU(N)-54 b(A)-172 b(T)387 b(HO)-54 b(WT)-28 +b(O)32999 35939 y FT(2)33463 36559 y FU(.)-30 37557 y +SDict begin H.S end + +-30 37557 a -30 37557 a +SDict begin 18.2 H.A end + -30 37557 a -30 37557 a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-HOST-TCPWRAPPERS) cvn +H.B /DEST pdfmark end + -30 37557 +a 5294 x FF(tcpwrapper)g(s)-30 43236 y +SDict begin H.S end + -30 43236 a -30 +43236 a +SDict begin 18.2 H.A end + -30 43236 a -30 43236 a +SDict begin [ /View [/XYZ H.V] /Dest (5200) cvn H.B /DEST pdfmark end + -30 43236 a -30 44165 +a +SDict begin H.S end + -30 44165 a -30 44165 a +SDict begin 18.2 H.A end + -30 44165 a -30 44165 a +SDict begin [ /View [/XYZ H.V] /Dest (5202) cvn H.B /DEST pdfmark end + -30 +44165 a -30 44165 a +SDict begin H.S end + -30 44165 a -30 44165 a +SDict begin 18.2 H.A end + -30 44165 +a -30 44165 a +SDict begin [ /View [/XYZ H.V] /Dest (5203) cvn H.B /DEST pdfmark end + -30 44165 a 1630 x FP(tcpwrappers)451 b +FU(controls)g(access)h(to)g(daemons)f(at)h(the)g(application)f(le)-39 +b(v)-23 b(el,)452 b(rather)g(than)f(at)h(the)-30 47810 +y(IP)500 b(le)-39 b(v)-23 b(el.)500 b(This)g(can)g(pro)-23 +b(vide)500 b(an)g(e)-23 b(xtra)500 b(layer)g(of)g(security)g(at)g +(times)f(when)h(IP-le)-39 b(v)-23 b(el)500 b(access)-30 +49824 y(controls)395 b(\(e.g.)h(Net\002lter\))f(are)h(not)f +(functioning)g(correctly)-101 b(.)396 b(F)-23 b(or)395 +b(e)-23 b(xample,)395 b(if)g(you)g(recompile)-30 51839 +y(the)353 b(k)-15 b(ernel)352 b(b)-31 b(ut)353 b(for)-28 +b(get)353 b(to)f(include)h(iptables)f(support,)g(your)h(IP)g(le)-39 +b(v)-23 b(el)353 b(protection)f(will)g(f)-15 b(ail)352 +b(b)-31 b(ut)-30 53854 y(tcpwrappers)387 b(will)g(still)f(help)h +(protect)g(your)h(system.)-30 54964 y +SDict begin H.S end + -30 54964 a -30 +54964 a +SDict begin 18.2 H.A end + -30 54964 a -30 54964 a +SDict begin [ /View [/XYZ H.V] /Dest (5204) cvn H.B /DEST pdfmark end + -30 54964 a 1679 x FU(Access)305 +b(to)g(services)g(protected)f(by)h(tcpwrappers)g(can)g(be)g(controlled) +g(using)41754 56643 y +SDict begin H.S end + 41754 56643 a 41754 56643 a +SDict begin 18.2 H.A end + 41754 +56643 a 41754 56643 a +SDict begin [ /View [/XYZ H.V] /Dest (5205) cvn H.B /DEST pdfmark end + 41754 56643 a FQ(/etc/hosts.allow)-30 +58658 y FU(and)2595 58658 y +SDict begin H.S end + 2595 58658 a 2595 58658 a +SDict begin 18.2 H.A end + +2595 58658 a 2595 58658 a +SDict begin [ /View [/XYZ H.V] /Dest (5206) cvn H.B /DEST pdfmark end + 2595 58658 a FQ(/etc/hosts.deny)p +FU(.)-30 59702 y +SDict begin H.S end + -30 59702 a -30 59702 a +SDict begin 18.2 H.A end + -30 59702 a +-30 59702 a +SDict begin [ /View [/XYZ H.V] /Dest (5207) cvn H.B /DEST pdfmark end + -30 59702 a 1746 x FU(The)404 b(majority)f(of)h(people)g(w) +-15 b(ould)403 b(ha)-31 b(v)-23 b(e)404 b(a)g(single)g(line)g(in)f +(their)34992 61448 y +SDict begin H.S end + 34992 61448 a 34992 61448 a +SDict begin 18.2 H.A end + 34992 +61448 a 34992 61448 a +SDict begin [ /View [/XYZ H.V] /Dest (5208) cvn H.B /DEST pdfmark end + 34992 61448 a FQ(/etc/hosts.deny)395 +b FU(\002le)404 b(to)f(den)-23 b(y)-30 63462 y(access)388 +b(to)f(all)g(daemons)g(by)g(def)-15 b(ault.)387 b(This)f(line)i(w)-15 +b(ould)386 b(be:)p Black -30 64838 16000 45 v -30 65802 +a Fx(2)249 b(http://www)-65 b(.net\002lter)-55 b(.or)-18 +b(g/documentation/HO)-35 b(WT)-18 b(O/N)-35 b(A)-111 +b(T)-92 b(-HO)-35 b(WT)-18 b(O.txt)p Black Black 49451 +73792 a FR(185)p Black eop end +%%Page: 186 208 +TeXDict begin 186 207 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.186) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-CURRENT-PATCHES) cvn +H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(14)g(Security)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 +a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5209) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FP(ALL)744 +b(:)f(ALL)-30 7176 y FU(When)416 b(this)f(is)h(done,)g(you)f(can)h +(concentrate)g(on)f(allo)-39 b(wing)416 b(access)g(to)f(services)h(for) +g(speci\002ed)-30 9190 y(hosts,)525 b(domains,)g(or)h(IP)f(ranges.)h +(This)f(can)h(be)f(done)h(in)f(the)g FQ(/etc/hosts.allow)516 +b FU(\002le,)525 b(which)-30 11205 y(follo)-39 b(ws)387 +b(the)g(same)g(format.)-30 11995 y +SDict begin H.S end + -30 11995 a -30 11995 +a +SDict begin 18.2 H.A end + -30 11995 a -30 11995 a +SDict begin [ /View [/XYZ H.V] /Dest (5212) cvn H.B /DEST pdfmark end + -30 11995 a 1999 x FU(A)375 +b(lot)g(of)g(people)g(w)-15 b(ould)374 b(start)h(by)g(accepting)f(all)h +(connections)f(from)38256 13994 y +SDict begin H.S end + 38256 13994 a 38256 +13994 a +SDict begin 18.2 H.A end + 38256 13994 a 38256 13994 a +SDict begin [ /View [/XYZ H.V] /Dest (5213) cvn H.B /DEST pdfmark end + 38256 13994 a 0 1 0 0 +TeXcolorcmyk 38256 13994 a +SDict begin H.S end + 38256 13994 a 0 1 0 0 TeXcolorcmyk +FQ(localhost)p 0 1 0 0 TeXcolorcmyk 43893 13254 a +SDict begin H.R end + 43893 +13254 a 43893 13994 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (localhost) >> /Subtype /Link H.B /ANN pdfmark end + 43893 13994 a Black FU(.)i(This)f(can)g(be)-30 +16009 y(achie)-39 b(v)-23 b(ed)387 b(using:)-30 17894 +y +SDict begin H.S end + -30 17894 a -30 17894 a +SDict begin 14.56 H.A end + -30 17894 a -30 17894 a +SDict begin [ /View [/XYZ H.V] /Dest (5214) cvn H.B /DEST pdfmark end + -30 +17894 a 1277 x FP(ALL)744 b(:)f(127.0.0.1)-30 20746 y +SDict begin H.S end + +-30 20746 a -30 20746 a +SDict begin 18.2 H.A end + -30 20746 a -30 20746 a +SDict begin [ /View [/XYZ H.V] /Dest (5215) cvn H.B /DEST pdfmark end + -30 20746 +a 1989 x FU(T)-124 b(o)409 b(allo)-39 b(w)409 b(access)g(to)g(SSHd)f +(from)19220 22735 y +SDict begin H.S end + 19220 22735 a 19220 22735 a +SDict begin 18.2 H.A end + 19220 +22735 a 19220 22735 a +SDict begin [ /View [/XYZ H.V] /Dest (5216) cvn H.B /DEST pdfmark end + 19220 22735 a 0 1 0 0 TeXcolorcmyk +19220 22836 a +SDict begin H.S end + 19220 22836 a 0 1 0 0 TeXcolorcmyk -101 +x FQ(192.168.0.0/24)p 0 1 0 0 TeXcolorcmyk 27989 21893 +a +SDict begin H.R end + 27989 21893 a 27989 22735 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (192.168.0.0/24) >> /Subtype /Link H.B /ANN pdfmark end + 27989 22735 a Black FU(,)i(you)f(could)f +(use)h(either)g(of)g(the)g(follo)-39 b(wing)-30 24750 +y(rules:)-30 26315 y +SDict begin H.S end + -30 26315 a -30 26315 a +SDict begin 14.56 H.A end + -30 26315 +a -30 26315 a +SDict begin [ /View [/XYZ H.V] /Dest (5217) cvn H.B /DEST pdfmark end + -30 26315 a 1596 x FP(sshd)743 b(:)h(192.168.0.0/24)-30 +29523 y(sshd)f(:)h(192.168.0.)-30 29549 y +SDict begin H.S end + -30 29549 a +-30 29549 a +SDict begin 18.2 H.A end + -30 29549 a -30 29549 a +SDict begin [ /View [/XYZ H.V] /Dest (5218) cvn H.B /DEST pdfmark end + -30 29549 a -30 29549 +a +SDict begin H.S end + -30 29549 a -30 29549 a +SDict begin 18.2 H.A end + -30 29549 a -30 29549 a +SDict begin [ /View [/XYZ H.V] /Dest (5220) cvn H.B /DEST pdfmark end + -30 +29549 a -30 31099 a +SDict begin H.S end + -30 31099 a -30 31099 a +SDict begin 18.2 H.A end + -30 31099 +a -30 31099 a +SDict begin [ /View [/XYZ H.V] /Dest (5222) cvn H.B /DEST pdfmark end + -30 31099 a 1988 x FU(It)530 b(is)f(also)g(possible)g(to) +g(restrict)h(access)f(to)h(hosts)f(in)g(certain)h(domains.)f(This)g +(can)h(be)f(done)-30 35102 y(using)430 b(the)g(follo)-39 +b(wing)430 b(rule)g(\(note)g(that)g(this)g(relies)g(on)g(the)g(re)-39 +b(v)-23 b(erse)430 b(DNS)g(entry)g(for)h(the)f(con-)-30 +37117 y(necting)495 b(host)f(being)g(trustw)-15 b(orth)-8 +b(y)-101 b(,)495 b(so)f(I)h(w)-15 b(ould)494 b(recommand)h(ag)-8 +b(ainst)494 b(its)h(use)f(on)h(Internet-)-30 39131 y(connected)387 +b(hosts\):)-30 40958 y +SDict begin H.S end + -30 40958 a -30 40958 a +SDict begin 14.56 H.A end + -30 40958 +a -30 40958 a +SDict begin [ /View [/XYZ H.V] /Dest (5223) cvn H.B /DEST pdfmark end + -30 40958 a 1335 x FP(sshd)743 b(:)h(.slackware.com)-30 +45418 y +SDict begin H.S end + -30 45418 a -30 45418 a +SDict begin 18.2 H.A end + -30 45418 a -30 45418 +a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-CURRENT) cvn H.B /DEST +pdfmark end + -30 45418 a 6099 x FL(14.3)620 b(K)-33 b(eeping)619 +b(Current)-30 52013 y +SDict begin H.S end + -30 52013 a -30 52013 a +SDict begin 18.2 H.A end + -30 52013 +a -30 52013 a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-CURRENT-LIST) cvn H.B +/DEST pdfmark end + -30 52013 a 4866 x Fc(slackware-security)511 +b FG(mailing)517 b(list)-30 57293 y +SDict begin H.S end + -30 57293 a -30 57293 +a +SDict begin 18.2 H.A end + -30 57293 a -30 57293 a +SDict begin [ /View [/XYZ H.V] /Dest (5229) cvn H.B /DEST pdfmark end + -30 57293 a -30 58223 a +SDict begin H.S end + -30 +58223 a -30 58223 a +SDict begin 18.2 H.A end + -30 58223 a -30 58223 a +SDict begin [ /View [/XYZ H.V] /Dest (5232) cvn H.B /DEST pdfmark end + -30 58223 +a 1600 x FU(Whene)-39 b(v)-23 b(er)471 b(a)h(security)f(problem)g(af) +-39 b(fects)472 b(Slackw)-15 b(are,)471 b(an)g(email)g(is)g(sent)g(to)g +(all)h(subscribers)-30 61838 y(to)543 b(the)4155 61838 +y +SDict begin H.S end + 4155 61838 a 4155 61838 a +SDict begin 18.2 H.A end + 4155 61838 a 4155 61838 a +SDict begin [ /View [/XYZ H.V] /Dest (5233) cvn H.B /DEST pdfmark end + +4155 61838 a FP(slackware-security@slackware.com)c FU(mailing)j(list.)h +(Reports)f(are)h(sent)f(out)h(for)-30 63853 y(vulnerabilities)301 +b(of)h(an)-23 b(y)302 b(part)f(of)i(Slackw)-15 b(are,)301 +b(apart)h(from)g(the)g(softw)-15 b(are)301 b(in)40724 +63853 y +SDict begin H.S end + 40724 63853 a 40724 63853 a +SDict begin 18.2 H.A end + 40724 63853 a 40724 +63853 a +SDict begin [ /View [/XYZ H.V] /Dest (5234) cvn H.B /DEST pdfmark end + 40724 63853 a FQ(/extra)d FU(or)46378 63853 y +SDict begin H.S end + +46378 63853 a 46378 63853 a +SDict begin 18.2 H.A end + 46378 63853 a 46378 63853 +a +SDict begin [ /View [/XYZ H.V] /Dest (5235) cvn H.B /DEST pdfmark end + 46378 63853 a FQ(/pasture)p FU(.)-30 65867 y(These)450 +b(security)g(announcement)f(emails)h(include)f(details)h(on)g +(obtaining)f(updated)h(v)-23 b(ersions)-30 67882 y(of)387 +b(Slackw)-15 b(are)387 b(packages)g(or)h(w)-15 b(ork-arounds,)386 +b(if)i(an)-23 b(y)-101 b(.)p Black -30 73792 a FR(186)p +Black eop end +%%Page: 187 209 +TeXDict begin 187 208 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.187) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 39293 -1636 a FR(Chapter)386 b(14)h(Security)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5236) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(Subscribing)f(to)h(Slackw)-15 +b(are)387 b(mailing)f(lists)h(is)g(co)-23 b(v)g(ered)387 +b(in)p 0 TeXcolorgray 32451 3611 a +SDict begin H.S end + 32451 3611 a FU(Section)f(2.2.2) +40586 3611 y +SDict begin 18.2 H.L end + 40586 3611 a 40586 3611 a +SDict begin [ /Subtype /Link /Dest (HELP-ONLINE-EMAIL) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 40586 3611 a Black +1 w FU(.)-30 4721 y +SDict begin H.S end + -30 4721 a -30 4721 a +SDict begin 18.2 H.A end + -30 4721 a +-30 4721 a +SDict begin [ /View [/XYZ H.V] /Dest (SECURITY-CURRENT-PATCHES) cvn +H.B /DEST pdfmark end + -30 4721 a 5182 x FG(The)518 b FA(/patche)n(s)487 +b FG(director)19 b(y)-30 10288 y +SDict begin H.S end + -30 10288 a -30 10288 +a +SDict begin 18.2 H.A end + -30 10288 a -30 10288 a +SDict begin [ /View [/XYZ H.V] /Dest (5241) cvn H.B /DEST pdfmark end + -30 10288 a -30 10288 a +SDict begin H.S end + -30 +10288 a -30 10288 a +SDict begin 18.2 H.A end + -30 10288 a -30 10288 a +SDict begin [ /View [/XYZ H.V] /Dest (5244) cvn H.B /DEST pdfmark end + -30 10288 +a -30 10288 a +SDict begin H.S end + -30 10288 a -30 10288 a +SDict begin 18.2 H.A end + -30 10288 a -30 +10288 a +SDict begin [ /View [/XYZ H.V] /Dest (5247) cvn H.B /DEST pdfmark end + -30 10288 a -30 11218 a +SDict begin H.S end + -30 11218 a -30 11218 +a +SDict begin 18.2 H.A end + -30 11218 a -30 11218 a +SDict begin [ /View [/XYZ H.V] /Dest (5249) cvn H.B /DEST pdfmark end + -30 11218 a 1630 x FU(Whene)-39 +b(v)-23 b(er)494 b(updated)f(packages)h(are)g(released)f(for)h(a)g(v) +-23 b(ersion)493 b(of)h(Slackw)-15 b(are)492 b(\(usually)h(only)-30 +14862 y(to)461 b(\002x)f(a)h(security)f(problem,)h(in)f(the)h(case)g +(of)g(already)f(released)h(Slackw)-15 b(are)460 b(v)-23 +b(ersions\),)460 b(the)-23 b(y)-30 16877 y(are)352 b(placed)g(in)f(the) +10414 16877 y +SDict begin H.S end + 10414 16877 a 10414 16877 a +SDict begin 18.2 H.A end + 10414 16877 +a 10414 16877 a +SDict begin [ /View [/XYZ H.V] /Dest (5250) cvn H.B /DEST pdfmark end + 10414 16877 a FQ(/patches)c FU(directory)-101 +b(.)352 b(The)f(full)h(path)f(to)h(these)f(patches)h(will)f(depend)h +(on)f(the)-30 18892 y(mirror)387 b(you)g(are)h(using,)f(b)-31 +b(ut)387 b(will)g(tak)-15 b(e)387 b(the)g(form)27213 +18892 y +SDict begin H.S end + 27213 18892 a 27213 18892 a +SDict begin 18.2 H.A end + 27213 18892 a 27213 +18892 a +SDict begin [ /View [/XYZ H.V] /Dest (5251) cvn H.B /DEST pdfmark end + 27213 18892 a FQ(/path/to/slackware-)55 b(x.x/patches/)p +FU(.)-30 19227 y +SDict begin H.S end + -30 19227 a -30 19227 a +SDict begin 18.2 H.A end + -30 19227 a +-30 19227 a +SDict begin [ /View [/XYZ H.V] /Dest (5252) cvn H.B /DEST pdfmark end + -30 19227 a -30 19227 a +SDict begin H.S end + -30 19227 a -30 19227 +a +SDict begin 18.2 H.A end + -30 19227 a -30 19227 a +SDict begin [ /View [/XYZ H.V] /Dest (5254) cvn H.B /DEST pdfmark end + -30 19227 a -30 20002 a +SDict begin H.S end + -30 +20002 a -30 20002 a +SDict begin 18.2 H.A end + -30 20002 a -30 20002 a +SDict begin [ /View [/XYZ H.V] /Dest (5256) cvn H.B /DEST pdfmark end + -30 20002 +a 1679 x FU(Before)429 b(installing)f(these)g(packages,)i(it)e(is)h(a)g +(good)g(idea)g(to)f(v)-23 b(erify)429 b(the)39399 21681 +y +SDict begin H.S end + 39399 21681 a 39399 21681 a +SDict begin 18.2 H.A end + 39399 21681 a 39399 21681 +a +SDict begin [ /View [/XYZ H.V] /Dest (5257) cvn H.B /DEST pdfmark end + 39399 21681 a FP(md5sum)f FU(of)h(the)g(pack-)-30 23696 +y(age.)2966 23696 y +SDict begin H.S end + 2966 23696 a 2966 23696 a +SDict begin 18.2 H.A end + 2966 23696 +a 2966 23696 a +SDict begin [ /View [/XYZ H.V] /Dest (5258) cvn H.B /DEST pdfmark end + 2966 23696 a FP(md5sum)p FU(\(1\))457 +b(is)h(a)f(commandline)g(utility)f(that)i(creates)g(a)34075 +23696 y +SDict begin H.S end + 34075 23696 a 34075 23696 a +SDict begin 18.2 H.A end + 34075 23696 a 34075 +23696 a +SDict begin [ /View [/XYZ H.V] /Dest (5259) cvn H.B /DEST pdfmark end + 34075 23696 a FU(\223unique\224)g(mathematical)e(hash)-30 +25710 y(of)528 b(the)g(\002le.)g(If)h(a)f(single)f(bit)h(of)g(the)g +(\002le)g(has)g(been)g(changed,)g(it)g(will)g(generate)g(a)g(dif)-39 +b(ferent)-30 27725 y(md5sum)386 b(v)-39 b(alue.)-30 29290 +y +SDict begin H.S end + -30 29290 a -30 29290 a +SDict begin 14.56 H.A end + -30 29290 a -30 29290 a +SDict begin [ /View [/XYZ H.V] /Dest (5260) cvn H.B /DEST pdfmark end + -30 +29290 a -30 29290 a +SDict begin H.S end + -30 29290 a -30 29290 a +SDict begin 14.56 H.A end + -30 29290 +a -30 29290 a +SDict begin [ /View [/XYZ H.V] /Dest (5261) cvn H.B /DEST pdfmark end + -30 29290 a 1597 x FJ(\045)1309 30887 y +SDict begin H.S end + +1309 30887 a 1309 30887 a +SDict begin 14.56 H.A end + 1309 30887 a 1309 30887 a +SDict begin [ /View [/XYZ H.V] /Dest (5262) cvn H.B /DEST pdfmark end + 1309 +30887 a FH(md5sum)743 b(package-)p FK(<)p FH(ver)p FK(>)p +FH(-)p FK(<)p FH(arch)p FK(>)p FH(-)p FK(<)p FH(rev)p +FK(>)p FH(.tgz)-30 32498 y FP(6341417aa1c025448b53073a1f1d287d)1484 +b(package-)p FK(<)p FP(ver)p FK(>)p FP(-)p FK(<)p FP(arch)p +FK(>)p FP(-)p FK(<)p FP(rev)p FK(>)p FP(.tgz)-30 34243 +y +SDict begin H.S end + -30 34243 a -30 34243 a +SDict begin 18.2 H.A end + -30 34243 a -30 34243 a +SDict begin [ /View [/XYZ H.V] /Dest (5263) cvn H.B /DEST pdfmark end + -30 +34243 a 1820 x FU(Y)-170 b(ou)391 b(should)h(then)f(check)h(this)g(ag) +-8 b(ainst)391 b(the)h(line)g(for)g(the)g(ne)-39 b(w)392 +b(package)g(in)f(the)43633 36063 y +SDict begin H.S end + 43633 36063 a 43633 +36063 a +SDict begin 18.2 H.A end + 43633 36063 a 43633 36063 a +SDict begin [ /View [/XYZ H.V] /Dest (5264) cvn H.B /DEST pdfmark end + 43633 36063 a FQ(CHECKSUMS.md5)-30 +38077 y FU(\002le)430 b(in)g(the)g(root)g(of)h(the)13314 +38077 y +SDict begin H.S end + 13314 38077 a 13314 38077 a +SDict begin 18.2 H.A end + 13314 38077 a 13314 +38077 a +SDict begin [ /View [/XYZ H.V] /Dest (5265) cvn H.B /DEST pdfmark end + 13314 38077 a FQ(slackware-)55 b($VERSION)419 +b FU(directory)430 b(\(also)g(in)g(the)38503 38077 y +SDict begin H.S end + +38503 38077 a 38503 38077 a +SDict begin 18.2 H.A end + 38503 38077 a 38503 38077 +a +SDict begin [ /View [/XYZ H.V] /Dest (5267) cvn H.B /DEST pdfmark end + 38503 38077 a FQ(/patches)425 b FU(directory)430 b(for)-30 +40092 y(patches\))387 b(or)h(in)f(the)g(email)g(to)g(the)18779 +40092 y +SDict begin H.S end + 18779 40092 a 18779 40092 a +SDict begin 18.2 H.A end + 18779 40092 a 18779 +40092 a +SDict begin [ /View [/XYZ H.V] /Dest (5268) cvn H.B /DEST pdfmark end + 18779 40092 a FP(slackware-security)e FU(mailing)i(list.)-30 +41202 y +SDict begin H.S end + -30 41202 a -30 41202 a +SDict begin 18.2 H.A end + -30 41202 a -30 41202 +a +SDict begin [ /View [/XYZ H.V] /Dest (5269) cvn H.B /DEST pdfmark end + -30 41202 a 1680 x FU(If)369 b(you)f(ha)-31 b(v)-23 +b(e)368 b(a)h(\002le)f(with)g(the)h(md5sum)e(v)-39 b(alues)369 +b(in)f(it,)h(you)f(can)h(source)f(it)h(instead)f(with)g(the)50288 +42882 y +SDict begin H.S end + 50288 42882 a 50288 42882 a +SDict begin 18.2 H.A end + 50288 42882 a 50288 +42882 a +SDict begin [ /View [/XYZ H.V] /Dest (5270) cvn H.B /DEST pdfmark end + 50288 42882 a FP(-c)-30 44896 y FU(option)387 +b(to)5912 44896 y +SDict begin H.S end + 5912 44896 a 5912 44896 a +SDict begin 18.2 H.A end + 5912 44896 +a 5912 44896 a +SDict begin [ /View [/XYZ H.V] /Dest (5271) cvn H.B /DEST pdfmark end + 5912 44896 a FP(md5sum)p FU(.)-30 46782 +y +SDict begin H.S end + -30 46782 a -30 46782 a +SDict begin 14.56 H.A end + -30 46782 a -30 46782 a +SDict begin [ /View [/XYZ H.V] /Dest (5272) cvn H.B /DEST pdfmark end + -30 +46782 a -30 46782 a +SDict begin H.S end + -30 46782 a -30 46782 a +SDict begin 14.56 H.A end + -30 46782 +a -30 46782 a +SDict begin [ /View [/XYZ H.V] /Dest (5273) cvn H.B /DEST pdfmark end + -30 46782 a 1276 x FJ(#)1309 48058 y +SDict begin H.S end + 1309 +48058 a 1309 48058 a +SDict begin 14.56 H.A end + 1309 48058 a 1309 48058 a +SDict begin [ /View [/XYZ H.V] /Dest (5274) cvn H.B /DEST pdfmark end + 1309 48058 +a FH(md5sum)743 b(-c)h(CHECKSUMS.md5)-30 49670 y FP(./ANNOUNCE.10_0:)e +(OK)-30 51281 y(./BOOTING.TXT:)g(OK)-30 52893 y(./COPYING:)h(OK)-30 +54505 y(./COPYRIGHT.TXT:)f(OK)-30 56116 y(./CRYPTO_NOTICE.TXT:)g(OK)-30 +57728 y(./ChangeLog.txt:)g(OK)-30 59340 y(./FAQ.TXT:)h(FAILED)-30 +61066 y +SDict begin H.S end + -30 61066 a -30 61066 a +SDict begin 18.2 H.A end + -30 61066 a -30 61066 +a +SDict begin [ /View [/XYZ H.V] /Dest (5275) cvn H.B /DEST pdfmark end + -30 61066 a 1838 x FU(As)415 b(you)h(can)f(see,)h(an)-23 +b(y)415 b(\002les)g(that)18565 62904 y +SDict begin H.S end + 18565 62904 a +18565 62904 a +SDict begin 18.2 H.A end + 18565 62904 a 18565 62904 a +SDict begin [ /View [/XYZ H.V] /Dest (5276) cvn H.B /DEST pdfmark end + 18565 62904 +a FP(md5sum)g FU(e)-39 b(v)g(aluates)416 b(as)f(correct)h(are)f(listed) +42054 62904 y +SDict begin H.S end + 42054 62904 a 42054 62904 a +SDict begin 18.2 H.A end + 42054 62904 +a 42054 62904 a +SDict begin [ /View [/XYZ H.V] /Dest (5277) cvn H.B /DEST pdfmark end + 42054 62904 a FU(\223)42742 62904 y +SDict begin H.S end + 42742 +62904 a 42742 62904 a +SDict begin 18.2 H.A end + 42742 62904 a 42742 62904 a +SDict begin [ /View [/XYZ H.V] /Dest (5278) cvn H.B /DEST pdfmark end + 42742 +62904 a FP(OK)p FU(\224)g(while)g(\002les)-30 64919 y(that)392 +b(f)-15 b(ail)391 b(are)h(labelled)12711 64919 y +SDict begin H.S end + 12711 +64919 a 12711 64919 a +SDict begin 18.2 H.A end + 12711 64919 a 12711 64919 a +SDict begin [ /View [/XYZ H.V] /Dest (5279) cvn H.B /DEST pdfmark end + 12711 +64919 a FU(\223)13399 64919 y +SDict begin H.S end + 13399 64919 a 13399 64919 +a +SDict begin 18.2 H.A end + 13399 64919 a 13399 64919 a +SDict begin [ /View [/XYZ H.V] /Dest (5280) cvn H.B /DEST pdfmark end + 13399 64919 a FP(FAILED)p +FU(\224.)g(\(Y)-155 b(es,)392 b(this)f(w)-15 b(as)391 +b(an)h(insult)f(to)g(your)h(intelligence.)f(Wh)-8 b(y)392 +b(do)-30 66934 y(you)387 b(put)g(up)g(with)g(me?\))p +Black 49394 73792 a FR(187)p Black eop end +%%Page: 188 210 +TeXDict begin 188 209 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.188) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(14)g(Security)p +Black Black -30 73792 a(188)p Black eop end +%%Page: 189 211 +TeXDict begin 189 210 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.189) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES) cvn H.B /DEST +pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(15)-30 10743 y FO(Ar)-93 b(c)-46 b(hive)1287 b(Files)p +-30 18316 51806 56 v -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 +a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES-GZIP) cvn H.B /DEST +pdfmark end + -30 18316 a 4852 x FL(15.1)620 +b Fq(gzip)-30 23664 y +SDict begin H.S end + -30 23664 a -30 23664 a +SDict begin 18.2 H.A end + -30 23664 +a -30 23664 a +SDict begin [ /View [/XYZ H.V] /Dest (5286) cvn H.B /DEST pdfmark end + -30 23664 a -30 23664 a +SDict begin H.S end + -30 23664 a -30 +23664 a +SDict begin 18.2 H.A end + -30 23664 a -30 23664 a +SDict begin [ /View [/XYZ H.V] /Dest (5288) cvn H.B /DEST pdfmark end + -30 23664 a -30 23664 +a +SDict begin H.S end + -30 23664 a -30 23664 a +SDict begin 18.2 H.A end + -30 23664 a -30 23664 a +SDict begin [ /View [/XYZ H.V] /Dest (5290) cvn H.B /DEST pdfmark end + -30 +23664 a -30 23664 a +SDict begin H.S end + -30 23664 a -30 23664 a +SDict begin 18.2 H.A end + -30 23664 +a -30 23664 a +SDict begin [ /View [/XYZ H.V] /Dest (5293) cvn H.B /DEST pdfmark end + -30 23664 a -30 24780 a +SDict begin H.S end + -30 24780 a -30 +24780 a +SDict begin 18.2 H.A end + -30 24780 a -30 24780 a +SDict begin [ /View [/XYZ H.V] /Dest (5295) cvn H.B /DEST pdfmark end + -30 24780 a -30 24780 +a +SDict begin H.S end + -30 24780 a -30 24780 a +SDict begin 18.2 H.A end + -30 24780 a -30 24780 a +SDict begin [ /View [/XYZ H.V] /Dest (5296) cvn H.B /DEST pdfmark end + -30 +24780 a 1518 x FP(gzip)p FU(\(1\))473 b(is)f(the)h(GNU)g(compression)f +(program.)h(It)g(tak)-15 b(es)472 b(a)h(single)f(\002le)h(and)g +(compresses)f(it.)-30 28313 y(The)387 b(basic)g(usage)h(is)f(as)g +(follo)-39 b(ws:)-30 30198 y +SDict begin H.S end + -30 30198 a -30 30198 a +SDict begin 14.56 H.A end + +-30 30198 a -30 30198 a +SDict begin [ /View [/XYZ H.V] /Dest (5297) cvn H.B /DEST pdfmark end + -30 30198 a -30 30198 a +SDict begin H.S end + -30 30198 +a -30 30198 a +SDict begin 14.56 H.A end + -30 30198 a -30 30198 a +SDict begin [ /View [/XYZ H.V] /Dest (5298) cvn H.B /DEST pdfmark end + -30 30198 a 1277 +x FJ(\045)1309 31475 y +SDict begin H.S end + 1309 31475 a 1309 31475 a +SDict begin 14.56 H.A end + 1309 +31475 a 1309 31475 a +SDict begin [ /View [/XYZ H.V] /Dest (5299) cvn H.B /DEST pdfmark end + 1309 31475 a FH(gzip)5028 31475 +y +SDict begin H.S end + 5028 31475 a 5028 31475 a +SDict begin 14.56 H.A end + 5028 31475 a 5028 31475 a +SDict begin [ /View [/XYZ H.V] /Dest (5300) cvn H.B /DEST pdfmark end + +5028 31475 a Fy(filename)-30 33192 y +SDict begin H.S end + -30 33192 a -30 +33192 a +SDict begin 18.2 H.A end + -30 33192 a -30 33192 a +SDict begin [ /View [/XYZ H.V] /Dest (5301) cvn H.B /DEST pdfmark end + -30 33192 a 1847 x FU(The)568 +b(resulting)f(\002le)g(will)g(be)h(named)21197 35039 +y +SDict begin H.S end + 21197 35039 a 21197 35039 a +SDict begin 18.2 H.A end + 21197 35039 a 21197 35039 +a +SDict begin [ /View [/XYZ H.V] /Dest (5302) cvn H.B /DEST pdfmark end + 21197 35039 a FQ(filename.gz)561 b FU(and)568 b(will)f(usually)g(be)g +(smaller)h(than)f(the)-30 37054 y(input)439 b(\002le.)h(Note)g(that) +12621 37054 y +SDict begin H.S end + 12621 37054 a 12621 37054 a +SDict begin 18.2 H.A end + 12621 37054 +a 12621 37054 a +SDict begin [ /View [/XYZ H.V] /Dest (5304) cvn H.B /DEST pdfmark end + 12621 37054 a FQ(filename.gz)433 b FU(will)439 +b(replace)27716 37054 y +SDict begin H.S end + 27716 37054 a 27716 37054 a +SDict begin 18.2 H.A end + 27716 +37054 a 27716 37054 a +SDict begin [ /View [/XYZ H.V] /Dest (5305) cvn H.B /DEST pdfmark end + 27716 37054 a FQ(filename)p FU(.)c(This)440 +b(means)f(that)43914 37054 y +SDict begin H.S end + 43914 37054 a 43914 37054 +a +SDict begin 18.2 H.A end + 43914 37054 a 43914 37054 a +SDict begin [ /View [/XYZ H.V] /Dest (5306) cvn H.B /DEST pdfmark end + 43914 37054 a FQ(filename)434 +b FU(will)-30 39068 y(no)493 b(longer)g(e)-23 b(xist,)493 +b(e)-39 b(v)-23 b(en)493 b(though)g(a)g(gzipped)g(cop)-15 +b(y)492 b(will.)h(Re)-23 b(gular)493 b(te)-23 b(xt)492 +b(\002les)h(will)g(compress)-30 41083 y(nicely)-101 b(,)568 +b(while)f(jpe)-23 b(g)567 b(images,)g(mp3s,)g(and)h(other)f(such)g +(\002les)g(will)g(not)g(compress)g(too)g(well)-30 43098 +y(as)474 b(the)-23 b(y)474 b(are)h(already)f(compressed.)g(This)f +(basic)h(usage)h(is)f(a)g(balance)g(of)g(\002nal)g(\002le)g(size)g(and) +-30 45112 y(compression)386 b(time.)i(The)f(maximum)f(compression)g +(can)i(be)f(achie)-39 b(v)-23 b(ed)387 b(lik)-15 b(e)387 +b(so:)-30 46998 y +SDict begin H.S end + -30 46998 a -30 46998 a +SDict begin 14.56 H.A end + -30 46998 a +-30 46998 a +SDict begin [ /View [/XYZ H.V] /Dest (5307) cvn H.B /DEST pdfmark end + -30 46998 a -30 46998 a +SDict begin H.S end + -30 46998 a -30 46998 +a +SDict begin 14.56 H.A end + -30 46998 a -30 46998 a +SDict begin [ /View [/XYZ H.V] /Dest (5308) cvn H.B /DEST pdfmark end + -30 46998 a 1276 x FJ(\045)1309 +48274 y +SDict begin H.S end + 1309 48274 a 1309 48274 a +SDict begin 14.56 H.A end + 1309 48274 a 1309 48274 +a +SDict begin [ /View [/XYZ H.V] /Dest (5309) cvn H.B /DEST pdfmark end + 1309 48274 a FH(gzip)743 b(-9)7260 48274 y +SDict begin H.S end + 7260 48274 +a 7260 48274 a +SDict begin 14.56 H.A end + 7260 48274 a 7260 48274 a +SDict begin [ /View [/XYZ H.V] /Dest (5310) cvn H.B /DEST pdfmark end + 7260 48274 a +Fy(filename)-30 49991 y +SDict begin H.S end + -30 49991 a -30 49991 a +SDict begin 18.2 H.A end + -30 49991 +a -30 49991 a +SDict begin [ /View [/XYZ H.V] /Dest (5311) cvn H.B /DEST pdfmark end + -30 49991 a 1847 x FU(This)485 b(will)f(tak)-15 +b(e)485 b(a)g(longer)g(time)f(to)h(compress)g(the)f(\002le,)i(b)-31 +b(ut)484 b(the)h(result)g(will)f(be)h(as)h(small)e(as)-30 +53853 y +SDict begin H.S end + -30 53853 a -30 53853 a +SDict begin 18.2 H.A end + -30 53853 a -30 53853 +a +SDict begin [ /View [/XYZ H.V] /Dest (5312) cvn H.B /DEST pdfmark end + -30 53853 a FP(gzip)463 b FU(can)h(mak)-15 b(e)463 +b(it.)h(Using)f(lo)-39 b(wer)464 b(v)-39 b(alues)463 +b(for)h(the)g(command)f(line)g(option)g(will)g(cause)h(it)f(to)-30 +55867 y(compress)387 b(f)-15 b(aster)-62 b(,)387 b(b)-31 +b(ut)387 b(the)g(\002le)g(will)g(not)g(be)h(as)f(compressed.)-30 +56978 y +SDict begin H.S end + -30 56978 a -30 56978 a +SDict begin 18.2 H.A end + -30 56978 a -30 56978 +a +SDict begin [ /View [/XYZ H.V] /Dest (5313) cvn H.B /DEST pdfmark end + -30 56978 a 1679 x FU(Decompressing)318 b(gzipped)h(\002les)f(can)i +(be)f(done)g(using)f(tw)-15 b(o)319 b(commands,)f(which)h(are)h(really) +f(just)-30 60672 y(the)350 b(same)f(program.)11735 60672 +y +SDict begin H.S end + 11735 60672 a 11735 60672 a +SDict begin 18.2 H.A end + 11735 60672 a 11735 60672 +a +SDict begin [ /View [/XYZ H.V] /Dest (5314) cvn H.B /DEST pdfmark end + 11735 60672 a FP(gzip)h FU(will)e(decompress)h(an)-23 +b(y)350 b(\002le)f(with)g(a)h(recognized)f(\002le)g(e)-23 +b(xtension.)349 b(A)-30 62686 y(recognized)393 b(e)-23 +b(xtension)391 b(can)i(be)g(an)-23 b(y)393 b(of)f(the)h(follo)-39 +b(wing:)31261 62686 y +SDict begin H.S end + 31261 62686 a 31261 62686 a +SDict begin 18.2 H.A end + 31261 +62686 a 31261 62686 a +SDict begin [ /View [/XYZ H.V] /Dest (5315) cvn H.B /DEST pdfmark end + 31261 62686 a FQ(.gz)p FU(,)33920 +62686 y +SDict begin H.S end + 33920 62686 a 33920 62686 a +SDict begin 18.2 H.A end + 33920 62686 a 33920 +62686 a +SDict begin [ /View [/XYZ H.V] /Dest (5316) cvn H.B /DEST pdfmark end + 33920 62686 a FQ(-)55 b(gz)p FU(,)36635 62686 +y +SDict begin H.S end + 36635 62686 a 36635 62686 a +SDict begin 18.2 H.A end + 36635 62686 a 36635 62686 +a +SDict begin [ /View [/XYZ H.V] /Dest (5317) cvn H.B /DEST pdfmark end + 36635 62686 a FQ(.z)p FU(,)38668 62686 y +SDict begin H.S end + 38668 62686 +a 38668 62686 a +SDict begin 18.2 H.A end + 38668 62686 a 38668 62686 a +SDict begin [ /View [/XYZ H.V] /Dest (5318) cvn H.B /DEST pdfmark end + 38668 62686 +a FQ(-)g(z)p FU(,)40757 62686 y +SDict begin H.S end + 40757 62686 a 40757 62686 +a +SDict begin 18.2 H.A end + 40757 62686 a 40757 62686 a +SDict begin [ /View [/XYZ H.V] /Dest (5319) cvn H.B /DEST pdfmark end + 40757 62686 a FQ(.Z)p FU(,)392 +b(or)44473 62686 y +SDict begin H.S end + 44473 62686 a 44473 62686 a +SDict begin 18.2 H.A end + 44473 +62686 a 44473 62686 a +SDict begin [ /View [/XYZ H.V] /Dest (5320) cvn H.B /DEST pdfmark end + 44473 62686 a FQ(-)55 b(Z)p FU(.)393 +b(The)f(\002rst)-30 64701 y(method)387 b(is)g(to)g(call)10646 +64701 y +SDict begin H.S end + 10646 64701 a 10646 64701 a +SDict begin 18.2 H.A end + 10646 64701 a 10646 +64701 a +SDict begin [ /View [/XYZ H.V] /Dest (5321) cvn H.B /DEST pdfmark end + 10646 64701 a FP(gunzip)p FU(\(1\))g(on)g(a)h(\002le,)f(lik)-15 +b(e)386 b(so:)-30 66528 y +SDict begin H.S end + -30 66528 a -30 66528 a +SDict begin 14.56 H.A end + -30 +66528 a -30 66528 a +SDict begin [ /View [/XYZ H.V] /Dest (5322) cvn H.B /DEST pdfmark end + -30 66528 a -30 66528 a +SDict begin H.S end + -30 66528 +a -30 66528 a +SDict begin 14.56 H.A end + -30 66528 a -30 66528 a +SDict begin [ /View [/XYZ H.V] /Dest (5323) cvn H.B /DEST pdfmark end + -30 66528 a 1335 +x FJ(\045)1309 67863 y +SDict begin H.S end + 1309 67863 a 1309 67863 a +SDict begin 14.56 H.A end + 1309 +67863 a 1309 67863 a +SDict begin [ /View [/XYZ H.V] /Dest (5324) cvn H.B /DEST pdfmark end + 1309 67863 a FH(gunzip)6516 67863 +y +SDict begin H.S end + 6516 67863 a 6516 67863 a +SDict begin 14.56 H.A end + 6516 67863 a 6516 67863 a +SDict begin [ /View [/XYZ H.V] /Dest (5325) cvn H.B /DEST pdfmark end + +6516 67863 a Fy(filename.gz)-30 68031 y +SDict begin H.S end + -30 68031 a -30 +68031 a +SDict begin 18.2 H.A end + -30 68031 a -30 68031 a +SDict begin [ /View [/XYZ H.V] /Dest (5326) cvn H.B /DEST pdfmark end + -30 68031 a Black 49451 +73672 a FR(189)p Black eop end +%%Page: 190 212 +TeXDict begin 190 211 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.190) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(15)g(Ar)-57 b(c)-23 +b(hive)386 b(F)-70 b(iles)p Black -30 2383 a +SDict begin H.S end + -30 2383 +a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (5328) cvn H.B /DEST pdfmark end + -30 2383 a 1107 x +FU(This)397 b(will)f(lea)-31 b(v)-23 b(e)397 b(a)g(decompressed)f(v)-23 +b(ersion)397 b(of)g(in\002le)f(in)h(the)g(current)g(directory)-101 +b(,)397 b(and)g(the)49897 3490 y +SDict begin H.S end + 49897 3490 a 49897 3490 +a +SDict begin 18.2 H.A end + 49897 3490 a 49897 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (5329) cvn H.B /DEST pdfmark end + 49897 3490 a FQ(.gz)-30 5505 +y FU(e)-23 b(xtension)529 b(will)g(be)h(stripped)f(from)g(the)h +(\002lename.)29094 5505 y +SDict begin H.S end + 29094 5505 a 29094 5505 a +SDict begin 18.2 H.A end + 29094 +5505 a 29094 5505 a +SDict begin [ /View [/XYZ H.V] /Dest (5330) cvn H.B /DEST pdfmark end + 29094 5505 a FP(gunzip)f FU(is)h(really)f(part)h +(of)44469 5505 y +SDict begin H.S end + 44469 5505 a 44469 5505 a +SDict begin 18.2 H.A end + 44469 5505 +a 44469 5505 a +SDict begin [ /View [/XYZ H.V] /Dest (5331) cvn H.B /DEST pdfmark end + 44469 5505 a FP(gzip)g FU(and)f(is)-30 +7520 y(identical)472 b(to)7459 7520 y +SDict begin H.S end + 7459 7520 a 7459 +7520 a +SDict begin 18.2 H.A end + 7459 7520 a 7459 7520 a +SDict begin [ /View [/XYZ H.V] /Dest (5332) cvn H.B /DEST pdfmark end + 7459 7520 a FP(gzip)743 +b(-d)p FU(.)473 b(As)f(such,)19421 7520 y +SDict begin H.S end + 19421 7520 +a 19421 7520 a +SDict begin 18.2 H.A end + 19421 7520 a 19421 7520 a +SDict begin [ /View [/XYZ H.V] /Dest (5333) cvn H.B /DEST pdfmark end + 19421 7520 a +FP(gzip)h FU(is)f(often)g(pronounced)35823 7520 y +SDict begin H.S end + 35823 +7520 a 35823 7520 a +SDict begin 18.2 H.A end + 35823 7520 a 35823 7520 a +SDict begin [ /View [/XYZ H.V] /Dest (5334) cvn H.B /DEST pdfmark end + 35823 7520 +a FP(gunzip)p FU(,)g(as)h(that)f(name)h(just)-30 9534 +y(sounds)387 b(cooler)-85 b(.)387 b(:^\))-30 10587 y +SDict begin H.S end + +-30 10587 a -30 10587 a +SDict begin 18.2 H.A end + -30 10587 a -30 10587 a +SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES-BZIP2) cvn H.B +/DEST pdfmark end + -30 10587 +a 5847 x FL(15.2)620 b Fq(bzip2)-30 16896 y +SDict begin H.S end + -30 16896 +a -30 16896 a +SDict begin 18.2 H.A end + -30 16896 a -30 16896 a +SDict begin [ /View [/XYZ H.V] /Dest (5338) cvn H.B /DEST pdfmark end + -30 16896 a -30 +18011 a +SDict begin H.S end + -30 18011 a -30 18011 a +SDict begin 18.2 H.A end + -30 18011 a -30 18011 +a +SDict begin [ /View [/XYZ H.V] /Dest (5340) cvn H.B /DEST pdfmark end + -30 18011 a -30 18011 a +SDict begin H.S end + -30 18011 a -30 18011 a +SDict begin 18.2 H.A end + -30 +18011 a -30 18011 a +SDict begin [ /View [/XYZ H.V] /Dest (5341) cvn H.B /DEST pdfmark end + -30 18011 a 1553 x FP(bzip2)p FU(\(1\))594 +b(is)f(an)i(alternati)-39 b(v)-23 b(e)593 b(compression)g(program)h +(installed)f(on)h(Slackw)-15 b(are)593 b(Linux.)h(It)-30 +21579 y(uses)341 b(a)h(dif)-39 b(ferent)342 b(compression)e(algorithm)h +(from)27547 21579 y +SDict begin H.S end + 27547 21579 a 27547 21579 a +SDict begin 18.2 H.A end + 27547 +21579 a 27547 21579 a +SDict begin [ /View [/XYZ H.V] /Dest (5342) cvn H.B /DEST pdfmark end + 27547 21579 a FP(gzip)p FU(,)h(which)f(results)g +(in)g(some)g(adv)-39 b(antages)-30 23594 y(and)413 b(some)f(disadv)-39 +b(antages.)412 b(The)h(main)f(adv)-39 b(antage)413 b(for)30971 +23594 y +SDict begin H.S end + 30971 23594 a 30971 23594 a +SDict begin 18.2 H.A end + 30971 23594 a 30971 +23594 a +SDict begin [ /View [/XYZ H.V] /Dest (5343) cvn H.B /DEST pdfmark end + 30971 23594 a FP(bzip2)f FU(is)h(the)f(compressed)g(\002le)h +(size.)-30 25608 y +SDict begin H.S end + -30 25608 a -30 25608 a +SDict begin 18.2 H.A end + -30 25608 +a -30 25608 a +SDict begin [ /View [/XYZ H.V] /Dest (5344) cvn H.B /DEST pdfmark end + -30 25608 a FP(bzip2)569 b FU(will)g(almost)g(al)-15 +b(w)g(ays)568 b(compress)g(better)i(than)30544 25608 +y +SDict begin H.S end + 30544 25608 a 30544 25608 a +SDict begin 18.2 H.A end + 30544 25608 a 30544 25608 +a +SDict begin [ /View [/XYZ H.V] /Dest (5345) cvn H.B /DEST pdfmark end + 30544 25608 a FP(gzip)p FU(.)f(In)h(some)f(instances,)g(this)g(can) +-30 27623 y(result)614 b(in)g(dramatically)g(smaller)g(\002les.)g(This) +g(can)h(be)f(a)h(great)f(adv)-39 b(antage)614 b(for)h(people)f(on)-30 +29638 y(slo)-39 b(wer)590 b(modem)e(connections.)h(Also)g(remember)-62 +b(,)590 b(when)f(do)-39 b(wnloading)589 b(softw)-15 b(are)589 +b(from)g(a)-30 31652 y(public)549 b(ftp)h(serv)-23 b(er)-62 +b(,)549 b(it')-85 b(s)549 b(generally)h(good)f(netiquette)f(to)i(do)-39 +b(wnload)549 b(the)41197 31652 y +SDict begin H.S end + 41197 31652 a 41197 +31652 a +SDict begin 18.2 H.A end + 41197 31652 a 41197 31652 a +SDict begin [ /View [/XYZ H.V] /Dest (5346) cvn H.B /DEST pdfmark end + 41197 31652 a FQ(.bz2)e +FU(\002les)i(instead)-30 33667 y(of)476 b(the)4108 33667 +y +SDict begin H.S end + 4108 33667 a 4108 33667 a +SDict begin 18.2 H.A end + 4108 33667 a 4108 33667 a +SDict begin [ /View [/XYZ H.V] /Dest (5347) cvn H.B /DEST pdfmark end + +4108 33667 a FQ(.gz)e FU(\002les,)i(as)h(this)f(results)f(in)h(less)g +(o)-23 b(v)g(erhead)476 b(for)h(the)f(generous)g(people)g(hosting)f +(the)-30 35682 y(serv)-23 b(er)-85 b(.)-30 36472 y +SDict begin H.S end + -30 +36472 a -30 36472 a +SDict begin 18.2 H.A end + -30 36472 a -30 36472 a +SDict begin [ /View [/XYZ H.V] /Dest (5348) cvn H.B /DEST pdfmark end + -30 36472 +a 1999 x FU(The)477 b(disadv)-39 b(antage)477 b(to)13071 +38471 y +SDict begin H.S end + 13071 38471 a 13071 38471 a +SDict begin 18.2 H.A end + 13071 38471 a 13071 +38471 a +SDict begin [ /View [/XYZ H.V] /Dest (5349) cvn H.B /DEST pdfmark end + 13071 38471 a FP(bzip2)g FU(is)g(that)g(it)g(is)g(more)g(CPU)g +(intensi)-39 b(v)-23 b(e)477 b(than)40743 38471 y +SDict begin H.S end + 40743 +38471 a 40743 38471 a +SDict begin 18.2 H.A end + 40743 38471 a 40743 38471 a +SDict begin [ /View [/XYZ H.V] /Dest (5350) cvn H.B /DEST pdfmark end + 40743 +38471 a FP(gzip)p FU(.)g(This)g(means)-30 40486 y(that)528 +b(bzipping)e(a)i(\002le)g(will)f(generally)g(tak)-15 +b(e)527 b(longer)h(and)g(will)f(use)g(more)h(of)g(the)f(CPU)g(than)-30 +42500 y(gzipping)406 b(the)g(\002le)h(w)-15 b(ould.)406 +b(When)g(considering)g(which)g(compression)g(program)g(to)g(use,)h(you) +-30 44515 y(must)387 b(weigh)g(this)g(speed)g(vs.)g(compressed)g(size)g +(and)g(determine)g(which)g(is)g(more)g(important.)-30 +45625 y +SDict begin H.S end + -30 45625 a -30 45625 a +SDict begin 18.2 H.A end + -30 45625 a -30 45625 +a +SDict begin [ /View [/XYZ H.V] /Dest (5351) cvn H.B /DEST pdfmark end + -30 45625 a 1680 x FU(The)439 b(usage)f(of)8515 47305 +y +SDict begin H.S end + 8515 47305 a 8515 47305 a +SDict begin 18.2 H.A end + 8515 47305 a 8515 47305 a +SDict begin [ /View [/XYZ H.V] /Dest (5352) cvn H.B /DEST pdfmark end + +8515 47305 a FP(bzip2)g FU(is)g(nearly)h(identical)f(to)25877 +47305 y +SDict begin H.S end + 25877 47305 a 25877 47305 a +SDict begin 18.2 H.A end + 25877 47305 a 25877 +47305 a +SDict begin [ /View [/XYZ H.V] /Dest (5353) cvn H.B /DEST pdfmark end + 25877 47305 a FP(gzip)p FU(,)g(so)h(not)f(much)g(time)g(will)g +(be)g(spent)g(dis-)-30 49319 y(cussing)361 b(it.)i(Lik)-15 +b(e)9780 49319 y +SDict begin H.S end + 9780 49319 a 9780 49319 a +SDict begin 18.2 H.A end + 9780 49319 +a 9780 49319 a +SDict begin [ /View [/XYZ H.V] /Dest (5354) cvn H.B /DEST pdfmark end + 9780 49319 a FP(gunzip)p FU(,)14993 49319 +y +SDict begin H.S end + 14993 49319 a 14993 49319 a +SDict begin 18.2 H.A end + 14993 49319 a 14993 49319 +a +SDict begin [ /View [/XYZ H.V] /Dest (5355) cvn H.B /DEST pdfmark end + 14993 49319 a FP(bunzip2)361 b FU(is)h(identical)f(to)29225 +49319 y +SDict begin H.S end + 29225 49319 a 29225 49319 a +SDict begin 18.2 H.A end + 29225 49319 a 29225 +49319 a +SDict begin [ /View [/XYZ H.V] /Dest (5356) cvn H.B /DEST pdfmark end + 29225 49319 a FP(bzip2)743 b(-d)p FU(.)362 b(The)g(primary)g +(dif)-39 b(ference)362 b(in)-30 51334 y(practical)387 +b(usage)g(is)g(that)13742 51334 y +SDict begin H.S end + 13742 51334 a 13742 +51334 a +SDict begin 18.2 H.A end + 13742 51334 a 13742 51334 a +SDict begin [ /View [/XYZ H.V] /Dest (5357) cvn H.B /DEST pdfmark end + 13742 51334 a FP(bzip2)g +FU(uses)g(the)23187 51334 y +SDict begin H.S end + 23187 51334 a 23187 51334 +a +SDict begin 18.2 H.A end + 23187 51334 a 23187 51334 a +SDict begin [ /View [/XYZ H.V] /Dest (5358) cvn H.B /DEST pdfmark end + 23187 51334 a FQ(.bz2)d +FU(e)-23 b(xtension.)-30 53219 y +SDict begin H.S end + -30 53219 a -30 53219 +a +SDict begin 14.56 H.A end + -30 53219 a -30 53219 a +SDict begin [ /View [/XYZ H.V] /Dest (5359) cvn H.B /DEST pdfmark end + -30 53219 a -30 53219 a +SDict begin H.S end + -30 +53219 a -30 53219 a +SDict begin 14.56 H.A end + -30 53219 a -30 53219 a +SDict begin [ /View [/XYZ H.V] /Dest (5360) cvn H.B /DEST pdfmark end + -30 53219 +a 1276 x FJ(\045)1309 54495 y +SDict begin H.S end + 1309 54495 a 1309 54495 +a +SDict begin 14.56 H.A end + 1309 54495 a 1309 54495 a +SDict begin [ /View [/XYZ H.V] /Dest (5361) cvn H.B /DEST pdfmark end + 1309 54495 a FH(bzip2)5772 +54495 y +SDict begin H.S end + 5772 54495 a 5772 54495 a +SDict begin 14.56 H.A end + 5772 54495 a 5772 54495 +a +SDict begin [ /View [/XYZ H.V] /Dest (5362) cvn H.B /DEST pdfmark end + 5772 54495 a Fy(filename)-30 54663 y +SDict begin H.S end + -30 54663 a -30 +54663 a +SDict begin 14.56 H.A end + -30 54663 a -30 54663 a +SDict begin [ /View [/XYZ H.V] /Dest (5363) cvn H.B /DEST pdfmark end + -30 54663 a 1444 x FJ(\045)1309 +56107 y +SDict begin H.S end + 1309 56107 a 1309 56107 a +SDict begin 14.56 H.A end + 1309 56107 a 1309 56107 +a +SDict begin [ /View [/XYZ H.V] /Dest (5364) cvn H.B /DEST pdfmark end + 1309 56107 a FH(bunzip2)7260 56107 y +SDict begin H.S end + 7260 56107 a 7260 +56107 a +SDict begin 14.56 H.A end + 7260 56107 a 7260 56107 a +SDict begin [ /View [/XYZ H.V] /Dest (5365) cvn H.B /DEST pdfmark end + 7260 56107 a Fy(filename.bz2)-30 +56275 y +SDict begin H.S end + -30 56275 a -30 56275 a +SDict begin 14.56 H.A end + -30 56275 a -30 56275 +a +SDict begin [ /View [/XYZ H.V] /Dest (5366) cvn H.B /DEST pdfmark end + -30 56275 a 1444 x FJ(\045)1309 57719 y +SDict begin H.S end + 1309 57719 +a 1309 57719 a +SDict begin 14.56 H.A end + 1309 57719 a 1309 57719 a +SDict begin [ /View [/XYZ H.V] /Dest (5367) cvn H.B /DEST pdfmark end + 1309 57719 a +FH(bzip2)743 b(-9)8004 57719 y +SDict begin H.S end + 8004 57719 a 8004 57719 +a +SDict begin 14.56 H.A end + 8004 57719 a 8004 57719 a +SDict begin [ /View [/XYZ H.V] /Dest (5368) cvn H.B /DEST pdfmark end + 8004 57719 a Fy(filename)-30 +59437 y +SDict begin H.S end + -30 59437 a -30 59437 a +SDict begin 18.2 H.A end + -30 59437 a -30 59437 +a +SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES-TAR) cvn H.B /DEST +pdfmark end + -30 59437 a Black 14235 x FR(190)p Black eop end +%%Page: 191 213 +TeXDict begin 191 212 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.191) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5416) cvn H.B /DEST pdfmark end + -30 -2687 a 36215 -1636 a FR(Chapter)386 +b(15)i(Ar)-57 b(c)-23 b(hive)386 b(F)-70 b(iles)p Black +-30 4084 a FL(15.3)620 b Fq(tar)-30 4112 y +SDict begin H.S end + -30 4112 a +-30 4112 a +SDict begin 18.2 H.A end + -30 4112 a -30 4112 a +SDict begin [ /View [/XYZ H.V] /Dest (5372) cvn H.B /DEST pdfmark end + -30 4112 a -30 4112 +a +SDict begin H.S end + -30 4112 a -30 4112 a +SDict begin 18.2 H.A end + -30 4112 a -30 4112 a +SDict begin [ /View [/XYZ H.V] /Dest (5374) cvn H.B /DEST pdfmark end + -30 4112 +a -30 5228 a +SDict begin H.S end + -30 5228 a -30 5228 a +SDict begin 18.2 H.A end + -30 5228 a -30 5228 +a +SDict begin [ /View [/XYZ H.V] /Dest (5377) cvn H.B /DEST pdfmark end + -30 5228 a -30 5228 a +SDict begin H.S end + -30 5228 a -30 5228 a +SDict begin 18.2 H.A end + -30 5228 +a -30 5228 a +SDict begin [ /View [/XYZ H.V] /Dest (5378) cvn H.B /DEST pdfmark end + -30 5228 a 1987 x FP(tar)p FU(\(1\))425 +b(is)f(the)h(GNU)f(tape)h(archi)-39 b(v)-23 b(er)-85 +b(.)425 b(It)g(tak)-15 b(es)424 b(se)-39 b(v)-23 b(eral)424 +b(\002les)h(or)f(directories)g(and)h(creates)g(one)-30 +9229 y(lar)-28 b(ge)520 b(\002le.)h(This)f(allo)-39 b(ws)519 +b(you)h(to)g(compress)g(an)g(entire)g(directory)g(tree,)h(which)f(is)g +(impossi-)-30 11244 y(ble)543 b(by)g(just)g(using)11184 +11244 y +SDict begin H.S end + 11184 11244 a 11184 11244 a +SDict begin 18.2 H.A end + 11184 11244 a 11184 +11244 a +SDict begin [ /View [/XYZ H.V] /Dest (5379) cvn H.B /DEST pdfmark end + 11184 11244 a FP(gzip)g FU(or)16537 11244 y +SDict begin H.S end + 16537 +11244 a 16537 11244 a +SDict begin 18.2 H.A end + 16537 11244 a 16537 11244 a +SDict begin [ /View [/XYZ H.V] /Dest (5380) cvn H.B /DEST pdfmark end + 16537 +11244 a FP(bzip2)p FU(.)21187 11244 y +SDict begin H.S end + 21187 11244 a 21187 +11244 a +SDict begin 18.2 H.A end + 21187 11244 a 21187 11244 a +SDict begin [ /View [/XYZ H.V] /Dest (5381) cvn H.B /DEST pdfmark end + 21187 11244 a FP(tar)g +FU(has)g(man)-23 b(y)543 b(command)f(line)h(options,)g(which)g(are)-30 +13259 y(e)-23 b(xplained)547 b(in)g(its)h(man)f(page.)h(This)f(section) +g(will)g(just)g(co)-23 b(v)g(er)547 b(the)h(most)f(common)g(uses)g(of) +-30 15273 y +SDict begin H.S end + -30 15273 a -30 15273 a +SDict begin 18.2 H.A end + -30 15273 a -30 15273 +a +SDict begin [ /View [/XYZ H.V] /Dest (5382) cvn H.B /DEST pdfmark end + -30 15273 a FP(tar)p FU(.)-30 16074 y +SDict begin H.S end + -30 16074 a -30 +16074 a +SDict begin 18.2 H.A end + -30 16074 a -30 16074 a +SDict begin [ /View [/XYZ H.V] /Dest (5383) cvn H.B /DEST pdfmark end + -30 16074 a 1989 x FU(The)337 +b(most)f(common)g(use)h(for)16376 18063 y +SDict begin H.S end + 16376 18063 +a 16376 18063 a +SDict begin 18.2 H.A end + 16376 18063 a 16376 18063 a +SDict begin [ /View [/XYZ H.V] /Dest (5384) cvn H.B /DEST pdfmark end + 16376 18063 +a FP(tar)g FU(is)g(to)f(decompress)h(and)g(unarchi)-39 +b(v)-23 b(e)336 b(a)h(package)g(that)g(you')-77 b(v)-23 +b(e)-30 20077 y(do)-39 b(wnloaded)307 b(from)g(a)h(web)f(site)g(or)g +(ftp)g(site.)h(Most)e(\002les)h(will)g(come)g(with)g(a)40780 +20077 y +SDict begin H.S end + 40780 20077 a 40780 20077 a +SDict begin 18.2 H.A end + 40780 20077 a 40780 +20077 a +SDict begin [ /View [/XYZ H.V] /Dest (5385) cvn H.B /DEST pdfmark end + 40780 20077 a FQ(.tar.gz)c FU(e)-23 b(xtension.)-30 +22092 y(This)544 b(is)g(commonly)g(kno)-39 b(wn)544 b(as)g(a)19815 +22092 y +SDict begin H.S end + 19815 22092 a 19815 22092 a +SDict begin 18.2 H.A end + 19815 22092 a 19815 +22092 a +SDict begin [ /View [/XYZ H.V] /Dest (5386) cvn H.B /DEST pdfmark end + 19815 22092 a FU(\223tarball\224.)h(It)f(means)g(that)g(se)-39 +b(v)-23 b(eral)545 b(\002les)e(were)i(archi)-39 b(v)-23 +b(ed)-30 24107 y(using)3685 24107 y +SDict begin H.S end + 3685 24107 a 3685 +24107 a +SDict begin 18.2 H.A end + 3685 24107 a 3685 24107 a +SDict begin [ /View [/XYZ H.V] /Dest (5387) cvn H.B /DEST pdfmark end + 3685 24107 a FP(tar)356 +b FU(and)g(then)g(compressed)g(using)23280 24107 y +SDict begin H.S end + 23280 +24107 a 23280 24107 a +SDict begin 18.2 H.A end + 23280 24107 a 23280 24107 a +SDict begin [ /View [/XYZ H.V] /Dest (5388) cvn H.B /DEST pdfmark end + 23280 +24107 a FP(gzip)p FU(.)g(Y)-170 b(ou)356 b(might)f(also)h(see)g(this)g +(listed)g(as)g(a)48018 24107 y +SDict begin H.S end + 48018 24107 a 48018 24107 +a +SDict begin 18.2 H.A end + 48018 24107 a 48018 24107 a +SDict begin [ /View [/XYZ H.V] /Dest (5389) cvn H.B /DEST pdfmark end + 48018 24107 a FQ(.tar.Z)-30 +26121 y FU(\002le.)388 b(It)f(means)g(the)g(same)g(thing,)g(b)-31 +b(ut)387 b(this)g(is)g(usually)g(encountered)g(on)g(older)g(Unix)g +(systems.)-30 27232 y +SDict begin H.S end + -30 27232 a -30 27232 a +SDict begin 18.2 H.A end + -30 27232 +a -30 27232 a +SDict begin [ /View [/XYZ H.V] /Dest (5390) cvn H.B /DEST pdfmark end + -30 27232 a 1679 x FU(Alternati)-39 b(v)-23 +b(ely)-101 b(,)373 b(you)g(might)g(\002nd)g(a)19282 28911 +y +SDict begin H.S end + 19282 28911 a 19282 28911 a +SDict begin 18.2 H.A end + 19282 28911 a 19282 28911 +a +SDict begin [ /View [/XYZ H.V] /Dest (5391) cvn H.B /DEST pdfmark end + 19282 28911 a FQ(.tar.bz2)368 b FU(\002le)373 b(some)-39 +b(where.)374 b(K)-39 b(ernel)374 b(source)f(is)g(distrib)-31 +b(uted)-30 30926 y(as)382 b(such)g(because)g(it)g(is)g(a)g(smaller)g +(do)-39 b(wnload.)382 b(As)g(you)g(might)f(ha)-31 b(v)-23 +b(e)382 b(guessed,)h(this)e(is)h(se)-39 b(v)-23 b(eral)-30 +32940 y(\002les)387 b(archi)-39 b(v)-23 b(ed)387 b(with)11745 +32940 y +SDict begin H.S end + 11745 32940 a 11745 32940 a +SDict begin 18.2 H.A end + 11745 32940 a 11745 +32940 a +SDict begin [ /View [/XYZ H.V] /Dest (5392) cvn H.B /DEST pdfmark end + 11745 32940 a FP(tar)g FU(and)g(then)g(bzipped.)-30 +34051 y +SDict begin H.S end + -30 34051 a -30 34051 a +SDict begin 18.2 H.A end + -30 34051 a -30 34051 +a +SDict begin [ /View [/XYZ H.V] /Dest (5393) cvn H.B /DEST pdfmark end + -30 34051 a 1679 x FU(Y)-170 b(ou)392 b(can)h(get)f(to)h(all)f(the)h +(\002les)f(in)h(this)f(archi)-39 b(v)-23 b(e)393 b(by)f(making)g(use)h +(of)36744 35730 y +SDict begin H.S end + 36744 35730 a 36744 35730 a +SDict begin 18.2 H.A end + 36744 35730 +a 36744 35730 a +SDict begin [ /View [/XYZ H.V] /Dest (5394) cvn H.B /DEST pdfmark end + 36744 35730 a FP(tar)g FU(and)f(some)h(command)-30 +37745 y(line)j(ar)-28 b(guments.)396 b(Unarchi)-39 b(ving)396 +b(a)h(tarball)f(mak)-15 b(es)395 b(use)i(of)f(the)34229 +37745 y +SDict begin H.S end + 34229 37745 a 34229 37745 a +SDict begin 18.2 H.A end + 34229 37745 a 34229 +37745 a +SDict begin [ /View [/XYZ H.V] /Dest (5395) cvn H.B /DEST pdfmark end + 34229 37745 a FP(-z)h FU(\003ag,)f(which)g(means)g(to)g +(\002rst)-30 39759 y(run)295 b(the)h(\002le)f(through)11913 +39759 y +SDict begin H.S end + 11913 39759 a 11913 39759 a +SDict begin 18.2 H.A end + 11913 39759 a 11913 +39759 a +SDict begin [ /View [/XYZ H.V] /Dest (5396) cvn H.B /DEST pdfmark end + 11913 39759 a FP(gunzip)g FU(and)h(decompress)e(it.)i(The)f +(most)g(common)g(w)-15 b(ay)294 b(to)i(decompress)-30 +41774 y(a)388 b(tarball)f(is)g(lik)-15 b(e)386 b(so:)-30 +43339 y +SDict begin H.S end + -30 43339 a -30 43339 a +SDict begin 14.56 H.A end + -30 43339 a -30 43339 +a +SDict begin [ /View [/XYZ H.V] /Dest (5397) cvn H.B /DEST pdfmark end + -30 43339 a -30 43339 a +SDict begin H.S end + -30 43339 a -30 43339 a +SDict begin 14.56 H.A end + -30 +43339 a -30 43339 a +SDict begin [ /View [/XYZ H.V] /Dest (5398) cvn H.B /DEST pdfmark end + -30 43339 a 1596 x FJ(\045)1309 44935 +y +SDict begin H.S end + 1309 44935 a 1309 44935 a +SDict begin 14.56 H.A end + 1309 44935 a 1309 44935 a +SDict begin [ /View [/XYZ H.V] /Dest (5399) cvn H.B /DEST pdfmark end + +1309 44935 a FH(tar)744 b(-xvzf)f(filename.tar.gz)-30 +46653 y +SDict begin H.S end + -30 46653 a -30 46653 a +SDict begin 18.2 H.A end + -30 46653 a -30 46653 +a +SDict begin [ /View [/XYZ H.V] /Dest (5400) cvn H.B /DEST pdfmark end + -30 46653 a 1847 x FU(That')-85 b(s)379 b(quite)g(a)g(fe)-39 +b(w)380 b(options.)f(So)f(what)i(do)f(the)-23 b(y)378 +b(all)i(mean?)f(The)36269 48500 y +SDict begin H.S end + 36269 48500 a 36269 +48500 a +SDict begin 18.2 H.A end + 36269 48500 a 36269 48500 a +SDict begin [ /View [/XYZ H.V] /Dest (5401) cvn H.B /DEST pdfmark end + 36269 48500 a FP(-x)g +FU(means)g(to)g(e)-23 b(xtract.)379 b(This)-30 50514 +y(is)319 b(important,)g(as)g(it)g(tells)13751 50514 y +SDict begin H.S end + +13751 50514 a 13751 50514 a +SDict begin 18.2 H.A end + 13751 50514 a 13751 50514 +a +SDict begin [ /View [/XYZ H.V] /Dest (5402) cvn H.B /DEST pdfmark end + 13751 50514 a FP(tar)g FU(e)-23 b(xactly)319 b(what)g(to)g(do)g(with) +g(the)g(input)g(\002le.)g(In)h(this)e(case,)i(we')-15 +b(ll)319 b(be)-30 52529 y(splitting)413 b(it)g(back)h(up)g(into)f(all)h +(the)f(\002les)h(that)f(it)h(came)g(from.)33651 52529 +y +SDict begin H.S end + 33651 52529 a 33651 52529 a +SDict begin 18.2 H.A end + 33651 52529 a 33651 52529 +a +SDict begin [ /View [/XYZ H.V] /Dest (5403) cvn H.B /DEST pdfmark end + 33651 52529 a FP(-v)g FU(means)f(to)h(be)g(v)-23 b(erbose.)413 +b(This)-30 54544 y(will)394 b(list)f(all)h(the)g(\002les)f(that)h(are)g +(being)g(unarchi)-39 b(v)-23 b(ed.)394 b(It)g(is)g(perfectly)g +(acceptable)g(to)g(lea)-31 b(v)-23 b(e)394 b(this)-30 +56558 y(option)415 b(of)-39 b(f,)416 b(if)f(some)-39 +b(what)414 b(boring.)i(Alternati)-39 b(v)-23 b(ely)-101 +b(,)414 b(you)h(could)g(use)37687 56558 y +SDict begin H.S end + 37687 56558 +a 37687 56558 a +SDict begin 18.2 H.A end + 37687 56558 a 37687 56558 a +SDict begin [ /View [/XYZ H.V] /Dest (5404) cvn H.B /DEST pdfmark end + 37687 56558 +a FP(-vv)g FU(to)g(be)g(v)-23 b(ery)415 b(v)-23 b(erbose)-30 +58573 y(and)380 b(list)g(e)-39 b(v)-23 b(en)381 b(more)f(information)f +(about)h(each)h(\002le)f(being)g(unarchi)-39 b(v)-23 +b(ed.)380 b(The)42983 58573 y +SDict begin H.S end + 42983 58573 a 42983 58573 +a +SDict begin 18.2 H.A end + 42983 58573 a 42983 58573 a +SDict begin [ /View [/XYZ H.V] /Dest (5405) cvn H.B /DEST pdfmark end + 42983 58573 a FP(-z)g FU(option)f(tells) +-30 60588 y +SDict begin H.S end + -30 60588 a -30 60588 a +SDict begin 18.2 H.A end + -30 60588 a -30 60588 +a +SDict begin [ /View [/XYZ H.V] /Dest (5406) cvn H.B /DEST pdfmark end + -30 60588 a FP(tar)442 b FU(to)g(run)6800 60588 y +SDict begin H.S end + 6800 +60588 a 6800 60588 a +SDict begin 18.2 H.A end + 6800 60588 a 6800 60588 a +SDict begin [ /View [/XYZ H.V] /Dest (5407) cvn H.B /DEST pdfmark end + 6800 60588 +a FQ(filename.tar.gz)433 b FU(through)21901 60588 y +SDict begin H.S end + 21901 +60588 a 21901 60588 a +SDict begin 18.2 H.A end + 21901 60588 a 21901 60588 a +SDict begin [ /View [/XYZ H.V] /Dest (5408) cvn H.B /DEST pdfmark end + 21901 +60588 a FP(gunzip)442 b FU(\002rst.)g(And)g(\002nally)-101 +b(,)442 b(the)40185 60588 y +SDict begin H.S end + 40185 60588 a 40185 60588 +a +SDict begin 18.2 H.A end + 40185 60588 a 40185 60588 a +SDict begin [ /View [/XYZ H.V] /Dest (5409) cvn H.B /DEST pdfmark end + 40185 60588 a FP(-f)g FU(option)g(tells) +49544 60588 y +SDict begin H.S end + 49544 60588 a 49544 60588 a +SDict begin 18.2 H.A end + 49544 60588 +a 49544 60588 a +SDict begin [ /View [/XYZ H.V] /Dest (5410) cvn H.B /DEST pdfmark end + 49544 60588 a FP(tar)-30 62602 y FU(that)387 +b(the)g(ne)-23 b(xt)387 b(string)g(on)g(the)g(command)g(line)g(is)g +(the)g(\002le)g(to)g(operate)g(on.)-30 63713 y +SDict begin H.S end + -30 63713 +a -30 63713 a +SDict begin 18.2 H.A end + -30 63713 a -30 63713 a +SDict begin [ /View [/XYZ H.V] /Dest (5411) cvn H.B /DEST pdfmark end + -30 63713 a 1679 +x FU(There)437 b(are)f(a)h(fe)-39 b(w)437 b(other)f(w)-15 +b(ays)435 b(to)i(write)f(this)f(same)i(command.)f(On)g(older)g(systems) +f(lacking)-30 67407 y(a)388 b(decent)f(cop)-15 b(y)386 +b(of)i(GNU)14285 67407 y +SDict begin H.S end + 14285 67407 a 14285 67407 a +SDict begin 18.2 H.A end + +14285 67407 a 14285 67407 a +SDict begin [ /View [/XYZ H.V] /Dest (5412) cvn H.B /DEST pdfmark end + 14285 67407 a FP(tar)p FU(,)g(you)f(might)f +(see)h(it)h(written)e(lik)-15 b(e)387 b(so:)p Black 49451 +73792 a FR(191)p Black eop end +%%Page: 192 214 +TeXDict begin 192 213 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.192) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5458) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(15)g(Ar)-57 b(c)-23 b(hive)386 b(F)-70 b(iles)p Black +-30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 +a +SDict begin [ /View [/XYZ H.V] /Dest (5413) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 +a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5414) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FJ(\045)1309 3611 y +SDict begin H.S end + 1309 +3611 a 1309 3611 a +SDict begin 14.56 H.A end + 1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5415) cvn H.B /DEST pdfmark end + 1309 3611 +a FH(gunzip)743 b(filename.tar.gz)f(|)i(tar)g(-xvf)f(-)-30 +7176 y FU(This)410 b(command)g(line)g(will)g(uncompress)f(the)i(\002le) +f(and)g(send)g(the)h(output)e(to)i FP(tar)p FU(.)f(Since)48800 +7176 y +SDict begin H.S end + 48800 7176 a 48800 7176 a +SDict begin 18.2 H.A end + 48800 7176 a 48800 7176 +a +SDict begin [ /View [/XYZ H.V] /Dest (5418) cvn H.B /DEST pdfmark end + 48800 7176 a FP(gzip)-30 9190 y FU(will)539 b(write)g(its)f(output)h +(to)f(standard)h(out)g(if)g(told)g(to)f(do)h(so,)h(this)e(command)h +(will)f(write)h(the)-30 11205 y(decompressed)551 b(\002le)g(to)h +(standard)f(out.)h(The)g(pipe)f(then)h(sends)f(it)g(to)38882 +11205 y +SDict begin H.S end + 38882 11205 a 38882 11205 a +SDict begin 18.2 H.A end + 38882 11205 a 38882 +11205 a +SDict begin [ /View [/XYZ H.V] /Dest (5419) cvn H.B /DEST pdfmark end + 38882 11205 a FP(tar)g FU(for)h(unarchi)-39 b(ving.)-30 +13220 y(The)2765 13220 y +SDict begin H.S end + 2765 13220 a 2765 13220 a +SDict begin 18.2 H.A end + 2765 +13220 a 2765 13220 a +SDict begin [ /View [/XYZ H.V] /Dest (5420) cvn H.B /DEST pdfmark end + 2765 13220 a FU(\223-\224)385 b(means)g(to)f +(operate)h(on)g(standard)f(input.)h(It)g(will)f(unarchi)-39 +b(v)-23 b(e)384 b(the)h(stream)g(of)f(data)h(that)-30 +15234 y(it)i(gets)g(from)7503 15234 y +SDict begin H.S end + 7503 15234 a 7503 +15234 a +SDict begin 18.2 H.A end + 7503 15234 a 7503 15234 a +SDict begin [ /View [/XYZ H.V] /Dest (5421) cvn H.B /DEST pdfmark end + 7503 15234 a FP(gzip)g +FU(and)h(write)f(that)g(to)g(the)g(disk.)-30 16345 y +SDict begin H.S end + +-30 16345 a -30 16345 a +SDict begin 18.2 H.A end + -30 16345 a -30 16345 a +SDict begin [ /View [/XYZ H.V] /Dest (5422) cvn H.B /DEST pdfmark end + -30 16345 +a 1679 x FU(Another)614 b(w)-15 b(ay)614 b(to)g(write)h(the)f(\002rst)g +(command)g(line)g(is)g(to)h(lea)-31 b(v)-23 b(e)614 b(of)-39 +b(f)615 b(the)f(dash)g(before)h(the)-30 20038 y(options,)387 +b(lik)-15 b(e)386 b(so:)-30 21924 y +SDict begin H.S end + -30 21924 a -30 21924 +a +SDict begin 14.56 H.A end + -30 21924 a -30 21924 a +SDict begin [ /View [/XYZ H.V] /Dest (5423) cvn H.B /DEST pdfmark end + -30 21924 a -30 21924 a +SDict begin H.S end + -30 +21924 a -30 21924 a +SDict begin 14.56 H.A end + -30 21924 a -30 21924 a +SDict begin [ /View [/XYZ H.V] /Dest (5424) cvn H.B /DEST pdfmark end + -30 21924 +a 1276 x FJ(\045)1309 23200 y +SDict begin H.S end + 1309 23200 a 1309 23200 +a +SDict begin 14.56 H.A end + 1309 23200 a 1309 23200 a +SDict begin [ /View [/XYZ H.V] /Dest (5425) cvn H.B /DEST pdfmark end + 1309 23200 a FH(tar)744 b(xvzf)f +(filename.tar.gz)-30 24918 y +SDict begin H.S end + -30 24918 a -30 24918 a +SDict begin 18.2 H.A end + +-30 24918 a -30 24918 a +SDict begin [ /View [/XYZ H.V] /Dest (5426) cvn H.B /DEST pdfmark end + -30 24918 a 1846 x FU(Y)-170 +b(ou)545 b(might)f(also)h(encounter)g(a)h(bzipped)f(archi)-39 +b(v)-23 b(e.)546 b(The)f(v)-23 b(ersion)545 b(of)38868 +26764 y +SDict begin H.S end + 38868 26764 a 38868 26764 a +SDict begin 18.2 H.A end + 38868 26764 a 38868 +26764 a +SDict begin [ /View [/XYZ H.V] /Dest (5427) cvn H.B /DEST pdfmark end + 38868 26764 a FP(tar)g FU(that)g(comes)g(with)-30 +28779 y(Slackw)-15 b(are)483 b(Linux)f(can)i(handle)f(these)g(the)g +(same)g(as)g(gzipped)g(archi)-39 b(v)-23 b(es.)484 b(Instead)f(of)g +(the)50288 28779 y +SDict begin H.S end + 50288 28779 a 50288 28779 a +SDict begin 18.2 H.A end + 50288 +28779 a 50288 28779 a +SDict begin [ /View [/XYZ H.V] /Dest (5428) cvn H.B /DEST pdfmark end + 50288 28779 a FP(-z)-30 30794 y +FU(command)387 b(line)g(option,)g(you')-77 b(d)386 b(use)20296 +30794 y +SDict begin H.S end + 20296 30794 a 20296 30794 a +SDict begin 18.2 H.A end + 20296 30794 a 20296 +30794 a +SDict begin [ /View [/XYZ H.V] /Dest (5429) cvn H.B /DEST pdfmark end + 20296 30794 a FP(-j)p FU(:)-30 32679 y +SDict begin H.S end + -30 32679 +a -30 32679 a +SDict begin 14.56 H.A end + -30 32679 a -30 32679 a +SDict begin [ /View [/XYZ H.V] /Dest (5430) cvn H.B /DEST pdfmark end + -30 32679 a -30 +32679 a +SDict begin H.S end + -30 32679 a -30 32679 a +SDict begin 14.56 H.A end + -30 32679 a -30 32679 +a +SDict begin [ /View [/XYZ H.V] /Dest (5431) cvn H.B /DEST pdfmark end + -30 32679 a 1276 x FJ(\045)1309 33955 y +SDict begin H.S end + 1309 33955 +a 1309 33955 a +SDict begin 14.56 H.A end + 1309 33955 a 1309 33955 a +SDict begin [ /View [/XYZ H.V] /Dest (5432) cvn H.B /DEST pdfmark end + 1309 33955 a +FH(tar)744 b(-xvjf)f(filename.tar.bz2)-30 35673 y +SDict begin H.S end + -30 +35673 a -30 35673 a +SDict begin 18.2 H.A end + -30 35673 a -30 35673 a +SDict begin [ /View [/XYZ H.V] /Dest (5433) cvn H.B /DEST pdfmark end + -30 35673 +a 1847 x FU(It)334 b(is)g(important)g(to)g(note)g(that)16183 +37520 y +SDict begin H.S end + 16183 37520 a 16183 37520 a +SDict begin 18.2 H.A end + 16183 37520 a 16183 +37520 a +SDict begin [ /View [/XYZ H.V] /Dest (5434) cvn H.B /DEST pdfmark end + 16183 37520 a FP(tar)g FU(will)g(place)g(the)g(unarchi)-39 +b(v)-23 b(ed)334 b(\002les)g(in)g(the)g(current)h(directory)-101 +b(.)-30 39534 y(So,)552 b(if)f(you)g(had)g(an)h(archi)-39 +b(v)-23 b(e)551 b(in)18531 39534 y +SDict begin H.S end + 18531 39534 a 18531 +39534 a +SDict begin 18.2 H.A end + 18531 39534 a 18531 39534 a +SDict begin [ /View [/XYZ H.V] /Dest (5435) cvn H.B /DEST pdfmark end + 18531 39534 a FQ(/tmp)e +FU(that)j(you)f(w)-15 b(anted)550 b(to)h(decompress)g(into)g(your)g +(home)-30 41549 y(directory)-101 b(,)401 b(there)g(are)h(a)f(fe)-39 +b(w)401 b(options.)f(First,)h(the)g(archi)-39 b(v)-23 +b(e)401 b(could)f(be)h(mo)-23 b(v)g(ed)400 b(into)h(your)f(home)-30 +43564 y(directory)317 b(and)g(then)g(run)h(through)18945 +43564 y +SDict begin H.S end + 18945 43564 a 18945 43564 a +SDict begin 18.2 H.A end + 18945 43564 a 18945 +43564 a +SDict begin [ /View [/XYZ H.V] /Dest (5436) cvn H.B /DEST pdfmark end + 18945 43564 a FP(tar)p FU(.)g(Second,)f(you)g(could)g(specify)g +(the)h(path)f(to)g(the)g(archi)-39 b(v)-23 b(e)-30 45578 +y(\002le)435 b(on)f(the)h(command)f(line.)h(Third,)g(you)g(can)f(use)h +(the)30834 45578 y +SDict begin H.S end + 30834 45578 a 30834 45578 a +SDict begin 18.2 H.A end + 30834 +45578 a 30834 45578 a +SDict begin [ /View [/XYZ H.V] /Dest (5437) cvn H.B /DEST pdfmark end + 30834 45578 a FP(-C)g FU(option)f(to)38793 +45578 y +SDict begin H.S end + 38793 45578 a 38793 45578 a +SDict begin 18.2 H.A end + 38793 45578 a 38793 +45578 a +SDict begin [ /View [/XYZ H.V] /Dest (5438) cvn H.B /DEST pdfmark end + 38793 45578 a FU(\223e)-23 b(xplode\224)435 b(the)f(tarball)-30 +47593 y(in)387 b(a)h(speci\002ed)e(directory)-101 b(.)-30 +49478 y +SDict begin H.S end + -30 49478 a -30 49478 a +SDict begin 14.56 H.A end + -30 49478 a -30 49478 +a +SDict begin [ /View [/XYZ H.V] /Dest (5439) cvn H.B /DEST pdfmark end + -30 49478 a -30 49478 a +SDict begin H.S end + -30 49478 a -30 49478 a +SDict begin 14.56 H.A end + -30 +49478 a -30 49478 a +SDict begin [ /View [/XYZ H.V] /Dest (5440) cvn H.B /DEST pdfmark end + -30 49478 a 1276 x FJ(\045)1309 50754 +y +SDict begin H.S end + 1309 50754 a 1309 50754 a +SDict begin 14.56 H.A end + 1309 50754 a 1309 50754 a +SDict begin [ /View [/XYZ H.V] /Dest (5441) cvn H.B /DEST pdfmark end + +1309 50754 a FH(cd)744 b($HOME)-30 50922 y +SDict begin H.S end + -30 50922 +a -30 50922 a +SDict begin 14.56 H.A end + -30 50922 a -30 50922 a +SDict begin [ /View [/XYZ H.V] /Dest (5442) cvn H.B /DEST pdfmark end + -30 50922 a 1444 +x FJ(\045)1309 52366 y +SDict begin H.S end + 1309 52366 a 1309 52366 a +SDict begin 14.56 H.A end + 1309 +52366 a 1309 52366 a +SDict begin [ /View [/XYZ H.V] /Dest (5443) cvn H.B /DEST pdfmark end + 1309 52366 a FH(cp)g(/tmp/filename.tar.gz)d(.)-30 +52534 y +SDict begin H.S end + -30 52534 a -30 52534 a +SDict begin 14.56 H.A end + -30 52534 a -30 52534 +a +SDict begin [ /View [/XYZ H.V] /Dest (5444) cvn H.B /DEST pdfmark end + -30 52534 a 1444 x FJ(\045)1309 53978 y +SDict begin H.S end + 1309 53978 +a 1309 53978 a +SDict begin 14.56 H.A end + 1309 53978 a 1309 53978 a +SDict begin [ /View [/XYZ H.V] /Dest (5445) cvn H.B /DEST pdfmark end + 1309 53978 a +FH(tar)j(-xvzf)f(filename.tar.gz)-30 55590 y +SDict begin H.S end + -30 55590 +a -30 55590 a +SDict begin 14.56 H.A end + -30 55590 a -30 55590 a +SDict begin [ /View [/XYZ H.V] /Dest (5446) cvn H.B /DEST pdfmark end + -30 55590 a 1611 +x FJ(\045)1309 57201 y +SDict begin H.S end + 1309 57201 a 1309 57201 a +SDict begin 14.56 H.A end + 1309 +57201 a 1309 57201 a +SDict begin [ /View [/XYZ H.V] /Dest (5447) cvn H.B /DEST pdfmark end + 1309 57201 a FH(cd)h($HOME)-30 57369 +y +SDict begin H.S end + -30 57369 a -30 57369 a +SDict begin 14.56 H.A end + -30 57369 a -30 57369 a +SDict begin [ /View [/XYZ H.V] /Dest (5448) cvn H.B /DEST pdfmark end + -30 +57369 a 1444 x FJ(\045)1309 58813 y +SDict begin H.S end + 1309 58813 a 1309 +58813 a +SDict begin 14.56 H.A end + 1309 58813 a 1309 58813 a +SDict begin [ /View [/XYZ H.V] /Dest (5449) cvn H.B /DEST pdfmark end + 1309 58813 a FH(tar)g(-xvzf)f +(/tmp/filename.tar.gz)-30 60425 y +SDict begin H.S end + -30 60425 a -30 60425 +a +SDict begin 14.56 H.A end + -30 60425 a -30 60425 a +SDict begin [ /View [/XYZ H.V] /Dest (5450) cvn H.B /DEST pdfmark end + -30 60425 a 1611 x FJ(\045)1309 +62036 y +SDict begin H.S end + 1309 62036 a 1309 62036 a +SDict begin 14.56 H.A end + 1309 62036 a 1309 62036 +a +SDict begin [ /View [/XYZ H.V] /Dest (5451) cvn H.B /DEST pdfmark end + 1309 62036 a FH(cd)h(/)-30 62127 y +SDict begin H.S end + -30 62127 a -30 +62127 a +SDict begin 14.56 H.A end + -30 62127 a -30 62127 a +SDict begin [ /View [/XYZ H.V] /Dest (5452) cvn H.B /DEST pdfmark end + -30 62127 a 1521 x FJ(\045)1309 +63648 y +SDict begin H.S end + 1309 63648 a 1309 63648 a +SDict begin 14.56 H.A end + 1309 63648 a 1309 63648 +a +SDict begin [ /View [/XYZ H.V] /Dest (5453) cvn H.B /DEST pdfmark end + 1309 63648 a FH(tar)g(-xvzf)f(/tmp/filename.tar.gz)e(-C)j($HOME)-30 +63816 y +SDict begin H.S end + -30 63816 a -30 63816 a +SDict begin 18.2 H.A end + -30 63816 a -30 63816 +a +SDict begin [ /View [/XYZ H.V] /Dest (5454) cvn H.B /DEST pdfmark end + -30 63816 a Black 9976 x FR(192)p Black eop end +%%Page: 193 215 +TeXDict begin 193 214 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.193) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5501) cvn H.B /DEST pdfmark end + -30 -2687 a 36215 -1636 a FR(Chapter)386 +b(15)i(Ar)-57 b(c)-23 b(hive)386 b(F)-70 b(iles)p Black +-30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 +a +SDict begin [ /View [/XYZ H.V] /Dest (5457) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(All)372 b(the)g(abo)-23 b(v)g(e)372 +b(statements)f(are)h(equi)-39 b(v)g(alent.)373 b(In)f(each)g(case,)h +(the)f(archi)-39 b(v)-23 b(e)372 b(is)g(unpack)-15 b(ed)372 +b(inside)-30 5626 y(your)387 b(home)g(directory)g(and)g(the)h(original) +e(uncompressed)h(archi)-39 b(v)-23 b(e)387 b(is)g(left)g(in)g(place.) +-30 8415 y(So)473 b(what)h(good)f(is)g(being)h(able)f(to)h(uncompress)f +(these)g(archi)-39 b(v)-23 b(es)474 b(if)f(you)h(can')-28 +b(t)473 b(mak)-15 b(e)473 b(them?)-30 10430 y(W)-124 +b(ell,)496 b FP(tar)e FU(handles)h(that)g(too.)g(In)h(most)e(cases)h +(it')-85 b(s)495 b(as)g(easy)g(as)g(remo)-23 b(ving)494 +b(the)44456 10430 y +SDict begin H.S end + 44456 10430 a 44456 10430 a +SDict begin 18.2 H.A end + 44456 +10430 a 44456 10430 a +SDict begin [ /View [/XYZ H.V] /Dest (5460) cvn H.B /DEST pdfmark end + 44456 10430 a FU(\223)45144 10430 +y +SDict begin H.S end + 45144 10430 a 45144 10430 a +SDict begin 18.2 H.A end + 45144 10430 a 45144 10430 +a +SDict begin [ /View [/XYZ H.V] /Dest (5461) cvn H.B /DEST pdfmark end + 45144 10430 a FP(-x)p FU(\224)h(option)-30 12445 y(and)387 +b(replacing)g(it)g(with)g(the)15422 12445 y +SDict begin H.S end + 15422 12445 +a 15422 12445 a +SDict begin 18.2 H.A end + 15422 12445 a 15422 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (5462) cvn H.B /DEST pdfmark end + 15422 12445 +a FU(\223)16110 12445 y +SDict begin H.S end + 16110 12445 a 16110 12445 a +SDict begin 18.2 H.A end + 16110 +12445 a 16110 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (5463) cvn H.B /DEST pdfmark end + 16110 12445 a FP(-c)p FU(\224)h(option.)-30 +14330 y +SDict begin H.S end + -30 14330 a -30 14330 a +SDict begin 14.56 H.A end + -30 14330 a -30 14330 +a +SDict begin [ /View [/XYZ H.V] /Dest (5464) cvn H.B /DEST pdfmark end + -30 14330 a -30 14330 a +SDict begin H.S end + -30 14330 a -30 14330 a +SDict begin 14.56 H.A end + -30 +14330 a -30 14330 a +SDict begin [ /View [/XYZ H.V] /Dest (5465) cvn H.B /DEST pdfmark end + -30 14330 a 1276 x FJ(\045)1309 15606 +y +SDict begin H.S end + 1309 15606 a 1309 15606 a +SDict begin 14.56 H.A end + 1309 15606 a 1309 15606 a +SDict begin [ /View [/XYZ H.V] /Dest (5466) cvn H.B /DEST pdfmark end + +1309 15606 a FH(tar)744 b(-cvzf)f(filename.tar.gz)f(.)-30 +17324 y +SDict begin H.S end + -30 17324 a -30 17324 a +SDict begin 18.2 H.A end + -30 17324 a -30 17324 +a +SDict begin [ /View [/XYZ H.V] /Dest (5467) cvn H.B /DEST pdfmark end + -30 17324 a 1847 x FU(In)328 b(this)g(command)g(line,)g(the)15860 +19171 y +SDict begin H.S end + 15860 19171 a 15860 19171 a +SDict begin 18.2 H.A end + 15860 19171 a 15860 +19171 a +SDict begin [ /View [/XYZ H.V] /Dest (5468) cvn H.B /DEST pdfmark end + 15860 19171 a FP(-c)g FU(option)g(tells)24877 +19171 y +SDict begin H.S end + 24877 19171 a 24877 19171 a +SDict begin 18.2 H.A end + 24877 19171 a 24877 +19171 a +SDict begin [ /View [/XYZ H.V] /Dest (5469) cvn H.B /DEST pdfmark end + 24877 19171 a FP(tar)g FU(to)g(create)h(an)f(archi)-39 +b(v)-23 b(e,)329 b(while)f(the)45999 19171 y +SDict begin H.S end + 45999 19171 +a 45999 19171 a +SDict begin 18.2 H.A end + 45999 19171 a 45999 19171 a +SDict begin [ /View [/XYZ H.V] /Dest (5470) cvn H.B /DEST pdfmark end + 45999 19171 +a FP(-z)g FU(option)-30 21185 y(runs)379 b(the)g(resulting)g(archi)-39 +b(v)-23 b(e)379 b(\002le)g(through)23533 21185 y +SDict begin H.S end + 23533 +21185 a 23533 21185 a +SDict begin 18.2 H.A end + 23533 21185 a 23533 21185 a +SDict begin [ /View [/XYZ H.V] /Dest (5471) cvn H.B /DEST pdfmark end + 23533 +21185 a FP(gzip)g FU(to)g(compress)g(it.)36334 21185 +y +SDict begin H.S end + 36334 21185 a 36334 21185 a +SDict begin 18.2 H.A end + 36334 21185 a 36334 21185 +a +SDict begin [ /View [/XYZ H.V] /Dest (5472) cvn H.B /DEST pdfmark end + 36334 21185 a FQ(filename.tar.gz)370 b FU(is)379 b(the)g(\002le)-30 +23200 y(that)387 b(you)g(w)-15 b(ant)387 b(to)g(create.)-30 +24310 y +SDict begin H.S end + -30 24310 a -30 24310 a +SDict begin 18.2 H.A end + -30 24310 a -30 24310 +a +SDict begin [ /View [/XYZ H.V] /Dest (5473) cvn H.B /DEST pdfmark end + -30 24310 a 1679 x FU(Specifying)604 b(the)9788 25989 +y +SDict begin H.S end + 9788 25989 a 9788 25989 a +SDict begin 18.2 H.A end + 9788 25989 a 9788 25989 a +SDict begin [ /View [/XYZ H.V] /Dest (5474) cvn H.B /DEST pdfmark end + +9788 25989 a FU(\223)10476 25989 y +SDict begin H.S end + 10476 25989 a 10476 +25989 a +SDict begin 18.2 H.A end + 10476 25989 a 10476 25989 a +SDict begin [ /View [/XYZ H.V] /Dest (5475) cvn H.B /DEST pdfmark end + 10476 25989 a FP(-f)p +FU(\224)g(option)g(isn')-28 b(t)604 b(al)-15 b(w)g(ays)603 +b(necessary)-101 b(,)605 b(b)-31 b(ut)604 b(is)g(typically)g(good)g +(practice)-30 28004 y(an)-23 b(yw)-15 b(ay)-101 b(.)316 +b(W)-62 b(ithout)314 b(it,)12252 28004 y +SDict begin H.S end + 12252 28004 +a 12252 28004 a +SDict begin 18.2 H.A end + 12252 28004 a 12252 28004 a +SDict begin [ /View [/XYZ H.V] /Dest (5476) cvn H.B /DEST pdfmark end + 12252 28004 +a FP(tar)i FU(writes)f(to)g(standard)h(output,)f(which)g(is)h(usually)f +(desired)g(for)h(piping)-30 30019 y +SDict begin H.S end + -30 30019 a -30 30019 +a +SDict begin 18.2 H.A end + -30 30019 a -30 30019 a +SDict begin [ /View [/XYZ H.V] /Dest (5477) cvn H.B /DEST pdfmark end + -30 30019 a FP(tar)p FU(')-85 +b(s)387 b(output)f(to)i(another)f(program,)g(lik)-15 +b(e)386 b(so.)-30 31904 y +SDict begin H.S end + -30 31904 a -30 31904 a +SDict begin 14.56 H.A end + -30 +31904 a -30 31904 a +SDict begin [ /View [/XYZ H.V] /Dest (5478) cvn H.B /DEST pdfmark end + -30 31904 a -30 31904 a +SDict begin H.S end + -30 31904 +a -30 31904 a +SDict begin 14.56 H.A end + -30 31904 a -30 31904 a +SDict begin [ /View [/XYZ H.V] /Dest (5479) cvn H.B /DEST pdfmark end + -30 31904 a 1276 +x FJ(\045)1309 33180 y +SDict begin H.S end + 1309 33180 a 1309 33180 a +SDict begin 14.56 H.A end + 1309 +33180 a 1309 33180 a +SDict begin [ /View [/XYZ H.V] /Dest (5480) cvn H.B /DEST pdfmark end + 1309 33180 a FH(tar)744 b(-cv)f(filename.tar)g(.)g +(|)h(gpg)g(--encrypt)-30 35040 y +SDict begin H.S end + -30 35040 a -30 35040 +a +SDict begin 18.2 H.A end + -30 35040 a -30 35040 a +SDict begin [ /View [/XYZ H.V] /Dest (5481) cvn H.B /DEST pdfmark end + -30 35040 a 1705 x FU(That)370 +b(command)f(creates)h(an)g(non-compressed)f(tar)h(archi)-39 +b(v)-23 b(e)370 b(of)g(the)g(current)g(directory)-101 +b(,)370 b(pipes)-30 38759 y(the)404 b(tarball)h(through)11858 +38759 y +SDict begin H.S end + 11858 38759 a 11858 38759 a +SDict begin 18.2 H.A end + 11858 38759 a 11858 +38759 a +SDict begin [ /View [/XYZ H.V] /Dest (5482) cvn H.B /DEST pdfmark end + 11858 38759 a FP(gpg)g FU(which)f(encrypts)g(and)g(compresses)g +(the)h(tarball,)f(making)g(it)g(realis-)-30 40774 y(tically)387 +b(impossible)f(to)h(read)g(by)h(an)-23 b(yone)386 b(other)i(than)f(the) +g(person)g(kno)-39 b(wing)387 b(the)g(secret)g(k)-15 +b(e)-23 b(y)-101 b(.)-30 41884 y +SDict begin H.S end + -30 41884 a -30 41884 +a +SDict begin 18.2 H.A end + -30 41884 a -30 41884 a +SDict begin [ /View [/XYZ H.V] /Dest (ARCHIVE-FILES-ZIP) cvn H.B /DEST +pdfmark end + -30 41884 a 5789 x FL(15.4)620 +b Fq(zip)-30 48135 y +SDict begin H.S end + -30 48135 a -30 48135 a +SDict begin 18.2 H.A end + -30 48135 +a -30 48135 a +SDict begin [ /View [/XYZ H.V] /Dest (5486) cvn H.B /DEST pdfmark end + -30 48135 a -30 49251 a +SDict begin H.S end + -30 49251 a -30 +49251 a +SDict begin 18.2 H.A end + -30 49251 a -30 49251 a +SDict begin [ /View [/XYZ H.V] /Dest (5488) cvn H.B /DEST pdfmark end + -30 49251 a 1553 x FU(Finally)-101 +b(,)415 b(there)h(are)g(tw)-15 b(o)415 b(utilities)f(that)i(can)f(be)h +(used)f(on)h(zip)f(\002les.)h(These)f(are)h(v)-23 b(ery)416 +b(common)-30 52819 y(in)431 b(the)g(W)-62 b(indo)-39 +b(ws)431 b(w)-15 b(orld,)431 b(so)g(Linux)f(has)h(programs)g(to)g(deal) +g(with)g(them.)g(The)g(compression)-30 54833 y(program)387 +b(is)g(called)11117 54833 y +SDict begin H.S end + 11117 54833 a 11117 54833 +a +SDict begin 18.2 H.A end + 11117 54833 a 11117 54833 a +SDict begin [ /View [/XYZ H.V] /Dest (5489) cvn H.B /DEST pdfmark end + 11117 54833 a FP(zip)p +FU(\(1\),)h(and)f(the)g(decompression)f(program)h(is)h(called)41669 +54833 y +SDict begin H.S end + 41669 54833 a 41669 54833 a +SDict begin 18.2 H.A end + 41669 54833 a 41669 +54833 a +SDict begin [ /View [/XYZ H.V] /Dest (5490) cvn H.B /DEST pdfmark end + 41669 54833 a FP(unzip)p FU(\(1\).)-30 56718 +y +SDict begin H.S end + -30 56718 a -30 56718 a +SDict begin 14.56 H.A end + -30 56718 a -30 56718 a +SDict begin [ /View [/XYZ H.V] /Dest (5491) cvn H.B /DEST pdfmark end + -30 +56718 a -30 56718 a +SDict begin H.S end + -30 56718 a -30 56718 a +SDict begin 14.56 H.A end + -30 56718 +a -30 56718 a +SDict begin [ /View [/XYZ H.V] /Dest (5492) cvn H.B /DEST pdfmark end + -30 56718 a 1277 x FJ(\045)1309 57995 y +SDict begin H.S end + +1309 57995 a 1309 57995 a +SDict begin 14.56 H.A end + 1309 57995 a 1309 57995 a +SDict begin [ /View [/XYZ H.V] /Dest (5493) cvn H.B /DEST pdfmark end + 1309 +57995 a FH(zip)744 b(foo)f(*)-30 59712 y +SDict begin H.S end + -30 59712 a +-30 59712 a +SDict begin 18.2 H.A end + -30 59712 a -30 59712 a +SDict begin [ /View [/XYZ H.V] /Dest (5494) cvn H.B /DEST pdfmark end + -30 59712 a 1847 +x FU(This)426 b(will)h(create)g(the)f(\002le)14845 61559 +y +SDict begin H.S end + 14845 61559 a 14845 61559 a +SDict begin 18.2 H.A end + 14845 61559 a 14845 61559 +a +SDict begin [ /View [/XYZ H.V] /Dest (5495) cvn H.B /DEST pdfmark end + 14845 61559 a FQ(foo.zip)p FU(,)d(which)j(will)g(contain)g(all)h(the) +g(\002les)f(in)h(the)f(current)h(direc-)-30 63574 y(tory)-101 +b(.)3112 63574 y +SDict begin H.S end + 3112 63574 a 3112 63574 a +SDict begin 18.2 H.A end + 3112 63574 +a 3112 63574 a +SDict begin [ /View [/XYZ H.V] /Dest (5496) cvn H.B /DEST pdfmark end + 3112 63574 a FP(zip)359 b FU(will)f(add)h(the)13322 +63574 y +SDict begin H.S end + 13322 63574 a 13322 63574 a +SDict begin 18.2 H.A end + 13322 63574 a 13322 +63574 a +SDict begin [ /View [/XYZ H.V] /Dest (5497) cvn H.B /DEST pdfmark end + 13322 63574 a FQ(.zip)e FU(e)-23 b(xtension)358 +b(automatically)-101 b(,)358 b(so)g(there')-85 b(s)359 +b(no)g(need)f(to)h(include)f(that)-30 65588 y(in)426 +b(the)f(\002le)h(name.)g(Y)-170 b(ou)425 b(can)h(also)g(recurse)g +(through)f(the)h(current)f(directory)-101 b(,)426 b(zipping)g(up)f(an) +-23 b(y)-30 67603 y(directories)387 b(that)g(are)h(also)f(laying)f +(around:)p Black 49451 73792 a FR(193)p Black eop end +%%Page: 194 216 +TeXDict begin 194 215 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.194) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(15)g(Ar)-57 b(c)-23 +b(hive)386 b(F)-70 b(iles)p Black -30 2504 a +SDict begin H.S end + -30 2504 +a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5498) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 +a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5499) cvn H.B /DEST pdfmark end + -30 2504 +a 1107 x FJ(\045)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + +1309 3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5500) cvn H.B /DEST pdfmark end + 1309 3611 a FH(zip)744 b(-r)f(foo)h(*)-30 +7176 y FU(Decompressing)386 b(\002les)h(is)g(easy)-101 +b(,)388 b(as)g(well.)-30 9061 y +SDict begin H.S end + -30 9061 a -30 9061 a +SDict begin 14.56 H.A end + +-30 9061 a -30 9061 a +SDict begin [ /View [/XYZ H.V] /Dest (5502) cvn H.B /DEST pdfmark end + -30 9061 a -30 9061 a +SDict begin H.S end + -30 9061 +a -30 9061 a +SDict begin 14.56 H.A end + -30 9061 a -30 9061 a +SDict begin [ /View [/XYZ H.V] /Dest (5503) cvn H.B /DEST pdfmark end + -30 9061 a 1276 x +FJ(\045)1309 10337 y +SDict begin H.S end + 1309 10337 a 1309 10337 a +SDict begin 14.56 H.A end + 1309 10337 +a 1309 10337 a +SDict begin [ /View [/XYZ H.V] /Dest (5504) cvn H.B /DEST pdfmark end + 1309 10337 a FH(unzip)743 b(foo.zip)-30 +12055 y +SDict begin H.S end + -30 12055 a -30 12055 a +SDict begin 18.2 H.A end + -30 12055 a -30 12055 +a +SDict begin [ /View [/XYZ H.V] /Dest (5505) cvn H.B /DEST pdfmark end + -30 12055 a 1846 x FU(This)632 b(will)g(e)-23 b(xtract)632 +b(all)h(the)f(\002les)g(in)g(the)g(\002le)26131 13901 +y +SDict begin H.S end + 26131 13901 a 26131 13901 a +SDict begin 18.2 H.A end + 26131 13901 a 26131 13901 +a +SDict begin [ /View [/XYZ H.V] /Dest (5506) cvn H.B /DEST pdfmark end + 26131 13901 a FQ(foo.zip)p FU(,)c(including)k(an)-23 +b(y)632 b(directories)g(in)g(the)-30 15916 y(archi)-39 +b(v)-23 b(e.)-30 16706 y +SDict begin H.S end + -30 16706 a -30 16706 a +SDict begin 18.2 H.A end + -30 +16706 a -30 16706 a +SDict begin [ /View [/XYZ H.V] /Dest (5507) cvn H.B /DEST pdfmark end + -30 16706 a 2000 x FU(The)2752 18706 +y +SDict begin H.S end + 2752 18706 a 2752 18706 a +SDict begin 18.2 H.A end + 2752 18706 a 2752 18706 a +SDict begin [ /View [/XYZ H.V] /Dest (5508) cvn H.B /DEST pdfmark end + +2752 18706 a FP(zip)372 b FU(utilities)f(ha)-31 b(v)-23 +b(e)372 b(se)-39 b(v)-23 b(eral)372 b(adv)-39 b(anced)372 +b(options)f(for)i(creating)f(self-e)-23 b(xtracting)371 +b(archi)-39 b(v)-23 b(es,)-30 20720 y(lea)-31 b(ving)568 +b(out)g(\002les,)g(controlling)f(compressed)g(\002le)h(size,)h +(printing)e(out)h(what)g(will)g(happen,)-30 22735 y(and)444 +b(much)f(more.)h(See)f(the)h(man)f(pages)h(for)24910 +22735 y +SDict begin H.S end + 24910 22735 a 24910 22735 a +SDict begin 18.2 H.A end + 24910 22735 a 24910 +22735 a +SDict begin [ /View [/XYZ H.V] /Dest (5509) cvn H.B /DEST pdfmark end + 24910 22735 a FP(zip)f FU(and)30266 22735 y +SDict begin H.S end + 30266 +22735 a 30266 22735 a +SDict begin 18.2 H.A end + 30266 22735 a 30266 22735 a +SDict begin [ /View [/XYZ H.V] /Dest (5510) cvn H.B /DEST pdfmark end + 30266 +22735 a FP(unzip)h FU(to)f(\002nd)g(out)h(ho)-39 b(w)443 +b(to)h(use)f(these)-30 24750 y(options.)p Black -30 73792 +a FR(194)p Black eop end +%%Page: 195 217 +TeXDict begin 195 216 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.195) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (VI) cvn H.B /DEST pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(16)-30 10743 y FO(Vi)p -30 18316 51806 56 v -30 18316 +a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (5513) cvn H.B /DEST pdfmark end + -30 +18316 a -30 19091 a +SDict begin H.S end + -30 19091 a -30 19091 a +SDict begin 18.2 H.A end + -30 19091 +a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (5515) cvn H.B /DEST pdfmark end + -30 19091 a -30 19091 a +SDict begin H.S end + -30 19091 a -30 +19091 a +SDict begin 18.2 H.A end + -30 19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (5516) cvn H.B /DEST pdfmark end + -30 19091 a 1051 x FP(vi)p +FU(\(1\))573 b(is)h(the)f(standard)g(Unix)g(te)-23 b(xt)573 +b(editing)f(program,)i(and)f(while)g(mastering)g(it)g(is)g(not)g(as)-30 +22157 y(essential)384 b(as)g(it)g(once)g(w)-15 b(as,)384 +b(is)g(still)f(a)h(v)-23 b(ery)384 b(re)-39 b(w)-15 b(arding)384 +b(goal.)g(There)g(are)h(se)-39 b(v)-23 b(eral)384 b(v)-23 +b(ersions)383 b(\(or)-30 24171 y(clones\))354 b(of)6446 +24171 y +SDict begin H.S end + 6446 24171 a 6446 24171 a +SDict begin 18.2 H.A end + 6446 24171 a 6446 24171 +a +SDict begin [ /View [/XYZ H.V] /Dest (5517) cvn H.B /DEST pdfmark end + 6446 24171 a FP(vi)h FU(a)-31 b(v)-39 b(ailable,)355 +b(including)20765 24171 y +SDict begin H.S end + 20765 24171 a 20765 24171 a +SDict begin 18.2 H.A end + +20765 24171 a 20765 24171 a +SDict begin [ /View [/XYZ H.V] /Dest (5518) cvn H.B /DEST pdfmark end + 20765 24171 a FP(vi)p FU(,)22995 +24171 y +SDict begin H.S end + 22995 24171 a 22995 24171 a +SDict begin 18.2 H.A end + 22995 24171 a 22995 +24171 a +SDict begin [ /View [/XYZ H.V] /Dest (5519) cvn H.B /DEST pdfmark end + 22995 24171 a FP(elvis)p FU(,)27457 24171 y +SDict begin H.S end + 27457 +24171 a 27457 24171 a +SDict begin 18.2 H.A end + 27457 24171 a 27457 24171 a +SDict begin [ /View [/XYZ H.V] /Dest (5520) cvn H.B /DEST pdfmark end + 27457 +24171 a FP(vile)p FU(,)g(and)33767 24171 y +SDict begin H.S end + 33767 24171 +a 33767 24171 a +SDict begin 18.2 H.A end + 33767 24171 a 33767 24171 a +SDict begin [ /View [/XYZ H.V] /Dest (5521) cvn H.B /DEST pdfmark end + 33767 24171 +a FP(vim)p FU(.)g(One)g(of)f(these)h(is)f(a)-31 b(v)-39 +b(ailable)-30 26186 y(on)374 b(just)g(about)g(an)-23 +b(y)374 b(v)-23 b(ersion)374 b(of)g(Unix,)g(as)h(well)f(as)g(on)g +(Linux.)h(All)f(of)g(these)g(v)-23 b(ersions)373 b(include)-30 +28201 y(the)360 b(same)f(basic)h(feature)g(set)f(and)h(commands,)f(so)h +(learning)f(one)h(clone)f(should)g(mak)-15 b(e)359 b(it)h(easy)-30 +30215 y(to)502 b(learn)h(another)-85 b(.)502 b(W)-62 +b(ith)502 b(the)h(v)-39 b(ariety)502 b(of)h(te)-23 b(xt)502 +b(editors)g(included)g(with)g(Linux)g(distrib)-31 b(utions)-30 +32230 y(and)539 b(Unix)g(v)-39 b(ariants)539 b(these)g(days,)h(man)-23 +b(y)539 b(people)g(no)g(longer)g(use)37109 32230 y +SDict begin H.S end + 37109 +32230 a 37109 32230 a +SDict begin 18.2 H.A end + 37109 32230 a 37109 32230 a +SDict begin [ /View [/XYZ H.V] /Dest (5522) cvn H.B /DEST pdfmark end + 37109 +32230 a FP(vi)p FU(.)g(Still,)g(it)g(remains)g(the)-30 +34245 y(most)503 b(uni)-39 b(v)-23 b(ersal)503 b(te)-23 +b(xt)503 b(editor)h(across)f(Unix)g(and)h(Unix)f(w)-15 +b(ork-alik)g(es.)503 b(Mastering)45825 34245 y +SDict begin H.S end + 45825 +34245 a 45825 34245 a +SDict begin 18.2 H.A end + 45825 34245 a 45825 34245 a +SDict begin [ /View [/XYZ H.V] /Dest (5523) cvn H.B /DEST pdfmark end + 45825 +34245 a FP(vi)g FU(means)-30 36259 y(you)439 b(should)f(ne)-39 +b(v)-23 b(er)439 b(be)h(sitting)e(at)h(a)g(Unix)g(machine)f(and)h(not)g +(be)g(comfortable)g(with)f(at)h(least)-30 38274 y(one)387 +b(po)-39 b(werful)388 b(te)-23 b(xt)386 b(editor)-85 +b(.)-30 39384 y +SDict begin H.S end + -30 39384 a -30 39384 a +SDict begin 18.2 H.A end + -30 39384 a -30 +39384 a +SDict begin [ /View [/XYZ H.V] /Dest (5524) cvn H.B /DEST pdfmark end + -30 39384 a -30 39384 a +SDict begin H.S end + -30 39384 a -30 39384 +a +SDict begin 18.2 H.A end + -30 39384 a -30 39384 a +SDict begin [ /View [/XYZ H.V] /Dest (5525) cvn H.B /DEST pdfmark end + -30 39384 a 1680 x FP(vi)445 +b FU(includes)f(a)h(number)f(of)h(po)-39 b(werful)445 +b(features)f(including)g(syntax)g(highlighting,)g(code)h(for)-31 +b(-)-30 43078 y(matting,)500 b(a)h(po)-39 b(werful)501 +b(search-and-replace)g(mechanism,)f(macros,)h(and)g(more.)g(These)g +(fea-)-30 45093 y(tures)580 b(mak)-15 b(e)580 b(it)g(especially)f +(attracti)-39 b(v)-23 b(e)580 b(to)g(programmers,)g(web)g(de)-39 +b(v)-23 b(elopers,)580 b(and)g(the)g(lik)-15 b(e.)-30 +47108 y(System)421 b(administrators)g(will)g(appreciate)h(the)g +(automation)f(and)h(inte)-23 b(gration)421 b(with)h(the)f(shell)-30 +49122 y(that)387 b(is)g(possible.)-30 50233 y +SDict begin H.S end + -30 50233 +a -30 50233 a +SDict begin 18.2 H.A end + -30 50233 a -30 50233 a +SDict begin [ /View [/XYZ H.V] /Dest (5526) cvn H.B /DEST pdfmark end + -30 50233 a 1679 +x FU(On)464 b(Slackw)-15 b(are)463 b(Linux,)h(the)f(def)-15 +b(ault)463 b(v)-23 b(ersion)463 b(of)27652 51912 y +SDict begin H.S end + 27652 +51912 a 27652 51912 a +SDict begin 18.2 H.A end + 27652 51912 a 27652 51912 a +SDict begin [ /View [/XYZ H.V] /Dest (5527) cvn H.B /DEST pdfmark end + 27652 +51912 a FP(vi)h FU(a)-31 b(v)-39 b(ailable)464 b(is)37090 +51912 y +SDict begin H.S end + 37090 51912 a 37090 51912 a +SDict begin 18.2 H.A end + 37090 51912 a 37090 +51912 a +SDict begin [ /View [/XYZ H.V] /Dest (5528) cvn H.B /DEST pdfmark end + 37090 51912 a FP(elvis)p FU(.)g(Other)g(v)-23 +b(ersions)463 b(-)-30 53926 y(including)6224 53926 y +SDict begin H.S end + +6224 53926 a 6224 53926 a +SDict begin 18.2 H.A end + 6224 53926 a 6224 53926 a +SDict begin [ /View [/XYZ H.V] /Dest (5529) cvn H.B /DEST pdfmark end + 6224 +53926 a FP(vim)399 b FU(and)11492 53926 y +SDict begin H.S end + 11492 53926 +a 11492 53926 a +SDict begin 18.2 H.A end + 11492 53926 a 11492 53926 a +SDict begin [ /View [/XYZ H.V] /Dest (5530) cvn H.B /DEST pdfmark end + 11492 53926 +a FP(gvim)g FU(-)g(are)h(a)-31 b(v)-39 b(ailable)399 +b(if)g(you')-77 b(v)-23 b(e)398 b(installed)g(the)h(proper)g(packages.) +48800 53926 y +SDict begin H.S end + 48800 53926 a 48800 53926 a +SDict begin 18.2 H.A end + 48800 53926 +a 48800 53926 a +SDict begin [ /View [/XYZ H.V] /Dest (5531) cvn H.B /DEST pdfmark end + 48800 53926 a FP(gvim)-30 55941 y FU(is)373 +b(an)g(X)g(W)-62 b(indo)-39 b(w)372 b(v)-23 b(ersion)372 +b(of)16890 55941 y +SDict begin H.S end + 16890 55941 a 16890 55941 a +SDict begin 18.2 H.A end + 16890 +55941 a 16890 55941 a +SDict begin [ /View [/XYZ H.V] /Dest (5532) cvn H.B /DEST pdfmark end + 16890 55941 a FP(vim)h FU(that)f(includes)h +(toolbars,)f(detachable)h(menus,)g(and)g(dialog)-30 57956 +y(box)-23 b(es.)-30 57971 y +SDict begin H.S end + -30 57971 a -30 57971 a +SDict begin 18.2 H.A end + -30 +57971 a -30 57971 a +SDict begin [ /View [/XYZ H.V] /Dest (5533) cvn H.B /DEST pdfmark end + -30 57971 a -30 57971 a +SDict begin H.S end + -30 57971 +a -30 57971 a +SDict begin 18.2 H.A end + -30 57971 a -30 57971 a +SDict begin [ /View [/XYZ H.V] /Dest (5535) cvn H.B /DEST pdfmark end + -30 57971 a -30 +57971 a +SDict begin H.S end + -30 57971 a -30 57971 a +SDict begin 18.2 H.A end + -30 57971 a -30 57971 +a +SDict begin [ /View [/XYZ H.V] /Dest (VI-STARTING) cvn H.B /DEST pdfmark +end + -30 57971 a 6109 x FL(16.1)620 b(Star)45 b(ting)620 +b(vi)-30 64577 y +SDict begin H.S end + -30 64577 a -30 64577 a +SDict begin 18.2 H.A end + -30 64577 a +-30 64577 a +SDict begin [ /View [/XYZ H.V] /Dest (5539) cvn H.B /DEST pdfmark end + -30 64577 a -30 65693 a +SDict begin H.S end + -30 65693 a -30 65693 +a +SDict begin 18.2 H.A end + -30 65693 a -30 65693 a +SDict begin [ /View [/XYZ H.V] /Dest (5542) cvn H.B /DEST pdfmark end + -30 65693 a -30 65693 a +SDict begin H.S end + -30 +65693 a -30 65693 a +SDict begin 18.2 H.A end + -30 65693 a -30 65693 a +SDict begin [ /View [/XYZ H.V] /Dest (5543) cvn H.B /DEST pdfmark end + -30 65693 +a 1518 x FP(vi)412 b FU(can)h(be)f(started)g(from)h(the)f(command)g +(line)g(in)g(a)g(v)-39 b(ariety)413 b(of)f(w)-15 b(ays.)412 +b(The)h(simplest)e(form)h(is)p Black -30 73672 a +SDict begin H.S end + -30 +73672 a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (5544) cvn H.B /DEST pdfmark end + -30 73672 +a 49451 74722 a FR(195)p Black eop end +%%Page: 196 218 +TeXDict begin 196 217 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.196) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5564) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(16)g(V)-115 b(i)p Black -30 3490 a FU(just:)-30 6652 +y FJ(\045)1309 6652 y +SDict begin H.S end + 1309 6652 a 1309 6652 a +SDict begin 14.56 H.A end + 1309 6652 +a 1309 6652 a +SDict begin [ /View [/XYZ H.V] /Dest (5546) cvn H.B /DEST pdfmark end + 1309 6652 a FH(vi)-30 6673 y +SDict begin H.S end + -30 6673 a +-30 6673 a +SDict begin 18.2 H.A end + -30 6673 a -30 6673 a +SDict begin [ /View [/XYZ H.V] /Dest (FIG-VI-VIM-SPLITEDIT) cvn H.B +/DEST pdfmark end + -30 6673 a 5093 x FX(Figur)-28 +b(e)387 b(16-1.)h(A)f(vi)g(session.)-30 13630 y +SDict begin H.S end + -30 13630 +a -30 13630 a +SDict begin 18.2 H.A end + -30 13630 a -30 13630 a +SDict begin [ /View [/XYZ H.V] /Dest (5549) cvn H.B /DEST pdfmark end + -30 13630 a -30 +46707 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 46707 a @beginspecial 12 @llx 212 @lly 600 +@urx 580 @ury 5880 @rwi @setspecial +%%BeginDocument: vi/vim-splitedit.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +800080008000800080008000800080008000800080008000800080008000 +80008000800080008000ea0000c080008000800080009700f70005c0c000 +00c0c0fa0001c0c080008000800080009700f600fcc0fa0001c0c0800080 +00800080009600f800f8c0fd0001c0c080008000800080009500f600fcc0 +fc0001c0c080008000800080009400f70009c0c00000c0c00000c0c08000 +8000800080009300f00001c0c080008000800080009200f00000c0800080 +008000800091008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000ed0001c0c0fa00fdc080008000800080009e00ed0001c0 +c0f90001c0c080008000800080009e00e40001c0c080008000800080009e +0008c0c0000000c0c00000fbc0fc00fdc0fb00fcc080008000800080009e +000ec0c0000000c0c000c0c0000000c0c0fc0001c0c0fc0004c0c000c0c0 +80008000800080009e000ec0c0000000c0c000c0c0000000c0c0fc000ac0 +c0000000c0c00000c0c080008000800080009e000ec0c0000000c0c000c0 +c0000000c0c0fc000ac0c0000000c0c00000c0c080008000800080009e00 +0ec0c0000000c0c000c0c0000000c0c0fc000ac0c0000000c0c00000c0c0 +80008000800080009e000e00c0c000c0c00000c0c0000000c0c0fc000ac0 +c0000000c0c00000c0c080008000800080009e00040000c0c0c0fc00fbc0 +fc00fcc0fd00fdc00200c0c080008000800080009f008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080000000fac0f700fdc0 +fb00fac0e30000c0f80004c0c0000000fac0f700fdc0e80000c0f400fdc0 +f10001c0c080008000800094000000fac0f60001c0c0fa0005c0c00000c0 +c0e50001c0c0f90001c0c0fc00fac0f60001c0c0e90001c0c0f30001c0c0 +f00001c0c080008000800095000600c000c0c000c0f60001c0c0fa0005c0 +c00000c0c0e50001c0c0fa0001c0c0fb0005c000c0c000c0f60001c0c0e9 +0001c0c0f30001c0c0ef0001c0c08000800080009600fd0001c0c0fc00fc +c0fc00fcc0fc0007c0c00000c0c00000fbc0fd00fbc0fd00fbc0010000fa +c0fc0001c0c0f90001c0c0fc00fcc0fc00fcc0fc00fbc0f600fac0fd00fc +c0fc00fcc0fc00fbc0fa0001c0c08000800080009600fd0001c0c0f9000c +c0c0000000c0c000c0c0000000fbc01d0000c0c0000000c0c000c0c00000 +00c0c000c0c0000000c0c0000000c0c0fa0001c0c0f90001c0c0f90012c0 +c0000000c0c000c0c00000c0c0000000c0c0f50001c0c0f80012c0c00000 +00c0c000c0c00000c0c0000000c0c0fb0001c0c08000800080009600fd00 +01c0c0fc00fbc0fd000ec0c00000c0c00000c0c000c0c00000f9c0030000 +c0c0fb00f9c0fd0001c0c0fa0001c0c0f90001c0c0fc00fbc0fd0009c0c0 +0000c0c00000c0c0f10001c0c0fb00fbc0fd0009c0c00000c0c00000c0c0 +f70001c0c08000800080009600fd001ec0c0000000c0c00000c0c0000000 +c0c00000c0c00000c0c00000c0c000c0c0f800fdc0fd0001c0c0f80001c0 +c0fa0001c0c0f90019c0c0000000c0c00000c0c0000000c0c00000c0c000 +0000c0c0c0f30001c0c0fc0014c0c00000c0c0000000c0c00000c0c00000 +00c0c0c0f90001c0c08000800080009600fd001ec0c0000000c0c00000c0 +c0000000c0c00000c0c00000c0c00000c0c000c0c0f60005c0c00000c0c0 +f80001c0c0fa0001c0c0f90013c0c0000000c0c00000c0c0000000c0c000 +00c0c0fb0001c0c0f40001c0c0fc000ec0c00000c0c0000000c0c00000c0 +c0fb0001c0c0fa0001c0c08000800080009600fd003bc0c0000000c0c000 +00c0c0000000c0c00000c0c00000c0c00000c0c000c0c0000000c0c000c0 +c0000000c0c000c0c0000000c0c0000000c0c000c0c0fc0001c0c0fa001b +c0c0000000c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0f500 +1cc0c000c0c000c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0 +fc0001c0c08000800080009500010000fcc0fd00fdc00400c0c00000fbc0 +0a0000c0c0c00000c0c00000fbc0fd00fbc0fd00fbc0fb00fdc0fa0001c0 +c0fc00fcc0fd00fdc00400c0c00000fbc0fd00fbc0f300fdc0fd00fdc004 +00c0c00000fbc0fd00fbc0fc0001c0c08000800080009400800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000fc00fdc08000 +8000800080008700fd0001c0c080008000800080008500fd0001c0c08000 +8000800080008500fd0001c0c0800080008000800085000300c0c0c08000 +8000800080008400fd0001c0c080008000800080008500fd0001c0c08000 +8000800080008500fd0001c0c080008000800080008500fd0001c0c08000 +8000800080008500fc00fdc0800080008000800087008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +80008000800080008000800080008000800080008000dd0001c0c0f20000 +c0f10001c0c08000800080008000c500dd0001c0c0f30001c0c0f10001c0 +c08000800080008000c500ce0001c0c0e90001c0c08000800080008000cd +00de00fdc0fd0007c0c000c0c0c00000fac0f400fdc0fa0001c0c0800080 +0080008000cd00dd0001c0c0fc000ac0c00000c0c0000000c0c0f10001c0 +c08000800080008000c500dd0001c0c0fc000ac0c00000c0c0000000c0c0 +f10001c0c08000800080008000c500dd0001c0c0fc000ac0c00000c0c000 +0000c0c0f10001c0c08000800080008000c500dd0001c0c0fc000ac0c000 +00c0c0000000c0c0f10001c0c0fa0001c0c08000800080008000cd00dd00 +01c0c0fc000dc0c00000c0c0000000c0c000c0c0f40001c0c0fa0001c0c0 +8000800080008000cd00de00fcc0fd0005c0c00000c0c0fc00fdc0f400fc +c0fc0001c0c08000800080008000cc008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +8000800080008000800080008000800080008000800080008000dd00fdc0 +e20001c0c0fb0001c0c0e300fdc0ea0001c0c0e400fac0fc0000c0fc00fa +c0f30000c0fc00fac0010000fac0fb0000c0fb0005c0c00000c0c0f600fb +c0fc00fcc0010000f9c00000f9c0dc0001c0c0fb0001c0c080008000bc00 +de0004c0c000c0c0e40001c0c0fa0001c0c0e40004c0c000c0c0eb0001c0 +c0f00001c0c0f600fac0fd00fdc0fc0005c0c00000c0c0f500fdc0fc0013 +c0c00000c0c00000c0c00000c0c0000000c0c0c0fc0005c0c00000c0c0f7 +0006c0c0000000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000 +c0c0dc0001c0c0fa0001c0c080008000bd00de0004c0c00000c0e50001c0 +c0dc0006c0c0000000c0c0fc0001c0c0e10001c0c0f50015c000c0c000c0 +0000c0c000c0c0000000c0c00000c0c0f60025c0c000c0c0000000c0c000 +00c0c00000c0c00000c0c00000c0c000c0c0000000c0c00000c0c0f70006 +c0c0000000c0c0fc0005c0c0000000c0fc0009c0c00000c0c0000000c0fc +0001c0c0d90001c0c080008000be00de0001c0c0fb00fbc0070000c0c000 +c0c0c0f40001c0c0fa00fdc0f400fac0f70006c0c0000000c0c0fc0001c0 +c0f300fdc0f20001c0c0f20013c0c0000000c0c0000000c0c00000c0c000 +00c0c0f70026c0c0000000c0c00000c0c00000c0c00000c0c00000c0c000 +c0c0000000c0c00000c0c00000c0c0f60001c0c0f80001c0c0f90008c0c0 +000000c0c000c0fa0001c0c0f20001c0c0fa0001c0c0fb00fdc0f90001c0 +c080008000be00df00fcc0fd000ec0c0000000c0c00000c0c0c000c0c0f5 +0001c0c0f90001c0c0e50006c0c000c000c0c0ec0001c0c0f30001c0c0f1 +000dc0c0000000c0c0000000c0c00000fbc0f60008c0c0000000c0c00000 +fbc0fd00fbc00b0000c0c0000000c0c0000000fcc0f400fdc0fa0001c0c0 +fa0001c0c0fc00fcc0ea0001c0c0fa0001c0c0fa0001c0c0f90001c0c080 +008000be00de0001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f500 +01c0c0f90001c0c0e50006c0c000c000c0c0ec0001c0c0f40001c0c0f000 +04c0c0000000f9c0070000c0c00000c0c0f700f9c0100000c0c000c0c000 +0000c0c000c0c00000f9c0fc0001c0c0f10001c0c0fb0001c0c0fb0001c0 +c0fb0003c0c000c0ec00fac0010000fac0fc0001c0c0f90001c0c0800080 +00be00de0001c0c0fc000ac0c0000000c0c00000c0c0f10001c0c0f90001 +c0c0f400fac0f70006c0c0000000c0c0ec0001c0c0f30001c0c0f10013c0 +c0000000c0c0000000c0c00000c0c00000c0c0f7001ec0c0000000c0c000 +00c0c00000c0c00000c0c00000c0c000c0c0000000c0c0fc0001c0c0f000 +01c0c0fc0001c0c0fc0001c0c0fa0001c0c0e80001c0c0fa0001c0c0fa00 +01c0c0f90001c0c080008000be00de0001c0c0fc000ac0c0000000c0c000 +00c0c0f10001c0c0f90001c0c0e50006c0c0000000c0c0fc0001c0c0f200 +01c0c0f20001c0c0f20013c0c0000000c0c0000000c0c00000c0c00000c0 +c0f7001ec0c0000000c0c00000c0c00000c0c00000c0c00000c0c000c0c0 +000000c0c0fc0001c0c0f50006c0c0000000c0c0fc0006c0c0000000c0c0 +fc0008c00000c0c0000000c0fc0001c0c0f20001c0c0fa0001c0c0fa0001 +c0c0f90001c0c080008000be00de0001c0c0fc000ac0c0000000c0c00000 +c0c0f00001c0c0fa0001c0c0e40004c0c000c0c0fb0001c0c0f20001c0c0 +f10001c0c0f30013c0c0000000c0c0000000c0c00000c0c00000c0c0f700 +1ec0c0000000c0c00000c0c00000c0c00000c0c00000c0c000c0c0000000 +c0c0fc0001c0c0f50006c0c0000000c0c0fc0013c0c0000000c0c0000000 +c0c00000c0c00000c0c0fc0001c0c0e20001c0c0fa0001c0c080008000bd +00df00fcc0fc00fbc0010000fcc0f00001c0c0fc00fcc0e400fdc0fb0001 +c0c0f200fcc0f10001c0c0f500fcc0090000c0c0000000c0c000fac0f600 +21c0c0000000c0c000c0c0c00000c0c000c0c0c00000c0c000c0c0000000 +c0c0000000fcc0f500fbc0fc00fcc0010000f9c00000f9c0fd0001c0c0e2 +00fcc0fc0001c0c080008000bc00800080008000800080008000c800f8c0 +d800f8c0800080008000f000800080008000800080008000800080008000 +80008000800080008000800080008000800080008000bd0000c0f400fdc0 +f100fcc0fb0001c0c0fb00fcc0e400fdc08000800080009500be0001c0c0 +f30001c0c0f10001c0c0f90001c0c0f90001c0c0e50004c0c000c0c08000 +800080009600be0001c0c0f30001c0c0f10001c0c0f00001c0c0e60006c0 +c0000000c0c0fc0001c0c08000800080009d00c000fac0fd00fcc0fc00fc +c0fc00fbc0fc0001c0c0fa00fdc0f90001c0c0f500fac0f70006c0c00000 +00c0c0fc0001c0c08000800080009d00be0001c0c0f80017c0c0000000c0 +c000c0c00000c0c0000000c0c0000000c0c0f90001c0c0f90001c0c0e600 +06c0c000c000c0c08000800080009700be0001c0c0fb00fbc0fd0009c0c0 +0000c0c00000c0c0f90001c0c0f90001c0c0f90001c0c0e60006c0c000c0 +00c0c08000800080009700be0001c0c0fc0014c0c00000c0c0000000c0c0 +0000c0c0000000c0c0c0fb0001c0c0f90001c0c0f90001c0c0f500fac0f7 +0006c0c0000000c0c08000800080009700be0001c0c0fc000ec0c00000c0 +c0000000c0c00000c0c0fb0001c0c0fc0001c0c0f90001c0c0f90001c0c0 +e60006c0c0000000c0c0fc0001c0c08000800080009d00be0021c0c000c0 +c000c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0000000c0c0 +f90001c0c0f90001c0c0e50004c0c000c0c0fb0001c0c08000800080009d +00bd00fdc0fd00fdc00400c0c00000fbc0fd00fbc0fc00fcc0fc00fcc0fc +00fcc0e400fdc0fb0001c0c08000800080009c0080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +dd00fdc0e20001c0c0fb0001c0c0e300fdc0ea0001c0c0e50006c0c00000 +00c0c0fc0000c0fc0006c0c0000000c0c0f600fac0fc0000c0fc00fac0fd +00fbc0eb0001c0c0dc00fbc0fc0001c0c080008000a400de0004c0c000c0 +c0e40001c0c0fa0001c0c0e40004c0c000c0c0eb0001c0c0f00001c0c0f7 +00fdc01300c0c0c0000000c0c0c0000000c0c0000000c0c0f600fac0fd00 +fdc0fc000dc0c00000c0c000c0c0000000c0c0ec0001c0c0dd0006c0c000 +0000c0c0fc0001c0c080008000a500de0004c0c00000c0e50001c0c0dc00 +06c0c0000000c0c0fc0001c0c0e10001c0c0f600f9c00e0000c0c000c0c0 +000000c0c000c0c0f5001dc000c0c000c00000c0c000c0c0000000c0c000 +00c0c000c0c0000000c0c0fc0001c0c0cd0006c0c0000000c0c0fb0001c0 +c080008000a600de0001c0c0fb00fbc0070000c0c000c0c0c0f40001c0c0 +fa00fdc0f400fac0f70006c0c0000000c0c0fc0001c0c0f300fdc0f20001 +c0c0f500f9c00900c0c0000000c0c00000fbc0f30017c0c0000000c0c000 +0000c0c00000c0c00000c0c00000c0c0f80001c0c0f300fdc0f20001c0c0 +fc00fac0f70006c0c0000000c0c0fb0001c0c080008000a600df00fcc0fd +000ec0c0000000c0c00000c0c0c000c0c0f50001c0c0f90001c0c0e50006 +c0c000c000c0c0ec0001c0c0f30001c0c0f40014c0c000c000c0c000c0c0 +000000c0c0000000c0c0c0f2000dc0c0000000c0c0000000c0c00000fbc0 +fc00fdc0ea0001c0c0f20001c0c0ec00fbc0fa0001c0c080008000a600de +0001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f50001c0c0f90001 +c0c0e50006c0c000c000c0c0ec0001c0c0f40001c0c0f30007c0c0000000 +c0c000f9c0fd00fdc0f20004c0c0000000f9c0070000c0c00000c0c0fb00 +01c0c0eb0001c0c0f400fac0ef0006c0c0000000c0c0fb0001c0c0800080 +00a600de0001c0c0fc000ac0c0000000c0c00000c0c0f10001c0c0f90001 +c0c0f400fac0f70006c0c0000000c0c0ec0001c0c0f30001c0c0f40010c0 +c0000000c0c000c0c0000000c0c00000fbc0f30013c0c0000000c0c00000 +00c0c00000c0c00000c0c0fa0001c0c0ec0001c0c0f20001c0c0fc00fac0 +f70006c0c0000000c0c0fb0001c0c080008000a600de0001c0c0fc000ac0 +c0000000c0c00000c0c0f10001c0c0f90001c0c0e50006c0c0000000c0c0 +fc0001c0c0f20001c0c0f20001c0c0f50015c0c0000000c0c000c0c00000 +00c0c00000c0c000c0c0f3001bc0c0000000c0c0000000c0c00000c0c000 +00c0c000c0c0000000c0c0fc0001c0c0f20001c0c0f20001c0c0ed0006c0 +c0000000c0c0fb0001c0c080008000a600de0001c0c0fc000ac0c0000000 +c0c00000c0c0f00001c0c0fa0001c0c0e40004c0c000c0c0fb0001c0c0f2 +0001c0c0f10001c0c0f60016c0c0000000c0c000c0c0000000c0c000c0c0 +000000c0c0f4001bc0c0000000c0c0000000c0c00000c0c00000c0c000c0 +c0000000c0c0fc0001c0c0f20001c0c0dd0006c0c0000000c0c0fc0001c0 +c080008000a500df00fcc0fc00fbc0010000fcc0f00001c0c0fc00fcc0e4 +00fdc0fb0001c0c0f200fcc0f10001c0c0f70016c0c0000000c0c000c0c0 +000000c0c000c0c0000000c0c0f500fcc0090000c0c0000000c0c000fac0 +fd00fbc0fc0001c0c0f200fcc0dd00fbc0fc0001c0c080008000a4008000 +80008000800080008000c800f8c0800080008000c0008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +8000bf00fac0f700fdc0fa00fbc0f30000c0f80001c0c0fb0000c0f400fd +c0e00001c0c0fb0001c0c0800080008000b400bf00fac0f60001c0c0fb00 +06c0c0000000c0c0f50001c0c0f90001c0c0fb0001c0c0f30001c0c0e000 +01c0c0fa0001c0c0800080008000b500bf0005c000c0c000c0f60001c0c0 +fb0006c0c0000000c0c0f50001c0c0fa0001c0c0fa0001c0c0f30001c0c0 +d70001c0c0fb0001c0c0800080008000bd00bd0001c0c0fc00fcc0fc00fc +c0fc0001c0c0fa00fbc0010000fac0fc0001c0c0fc00fac0fd00fcc0fc00 +fcc0fc00fbc0ec00fdc0f90001c0c0fb0001c0c0800080008000bd00bd00 +01c0c0f90009c0c0000000c0c000c0c0fc00fdc0fd000bc0c0000000c0c0 +000000c0c0fa0001c0c0fa0001c0c0f80012c0c0000000c0c000c0c00000 +c0c0000000c0c0ec0001c0c0f90001c0c0800080008000b600bd0001c0c0 +fc00fbc0fd0005c0c00000c0c0fb0003c0c00000f9c0fd0001c0c0fa0001 +c0c0fa0001c0c0fb00fbc0fd0009c0c00000c0c00000c0c0e80001c0c0f9 +0001c0c0800080008000b600bd0013c0c0000000c0c00000c0c0000000c0 +c00000c0c0fa0004c0c000c0c0f80001c0c0fa0001c0c0fa0001c0c0fc00 +14c0c00000c0c0000000c0c00000c0c0000000c0c0c0ea0001c0c0f90001 +c0c0800080008000b600bd001ec0c0000000c0c00000c0c0000000c0c000 +00c0c000c0c0000000c0c000c0c0f80001c0c0fa0001c0c0fa0001c0c0fc +000ec0c00000c0c0000000c0c00000c0c0fb0001c0c0fb0001c0c0f20001 +c0c0f90001c0c0fb0001c0c0800080008000bd00bd002bc0c0000000c0c0 +0000c0c0000000c0c00000c0c000c0c0000000c0c000c0c0000000c0c000 +0000c0c000c0c0fc0001c0c0fb001cc0c000c0c000c0c00000c0c0000000 +c0c00000c0c000c0c0000000c0c0fc0001c0c0f20001c0c0fa0001c0c0fa +0001c0c0800080008000bd00be00fcc0fd00fdc00400c0c00000fbc0fd00 +fbc0fd00fbc0fb00fdc0fa0001c0c0fb00fdc0fd00fdc00400c0c00000fb +c0fd00fbc0fb0001c0c0f300fcc0fc0001c0c0fa0001c0c0800080008000 +bc008000e60001c0c08000800080009c0080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080000300c0c0c080008000800080008400fd0001c0c0800080 +00800080008500fd0001c0c080008000800080008500fd0001c0c0800080 +00800080008500fc00fdc080008000800080008700fd0001c0c080008000 +800080008500fd0001c0c080008000800080008500fd0001c0c080008000 +800080008500fd0001c0c0800080008000800085000300c0c0c080008000 +800080008400800080008000800080008000800080008000800080008000 +8000800080008000800080008000800080c080c080c080c080c080c080c0 +80c080c080c0fdc00080f4c0fd8080c080c080c080c093c003c0c08080f3 +c001808080c080c080c080c093c003c0c08080f3c001808080c080c080c0 +80c093c0fa80fdc0fc80fcc0fc80fcc0fb80f5c0fb8080c080c080c080c0 +aec003c0c08080f8c0128080c0c0c08080c08080c0c08080c0c0c08080f7 +c0068080c0c0c0808080c080c080c080c0afc003c0c08080fbc0fb80fdc0 +098080c0c08080c0c08080f3c001808080c080c080c080c0aac003c0c080 +80fcc0148080c0c08080c0c0c08080c0c08080c0c0c0808080f5c0018080 +80c080c080c080c0aac003c0c08080fcc00e8080c0c08080c0c0c08080c0 +c08080fbc0018080f6c001808080c080c080c080c0aac01ec0c08080c080 +80c08080c0c08080c0c0c08080c0c08080c08080c0c0c08080fcc00b8080 +c0c0c08080c0c0c0808080c080c080c080c0afc0fdc0fd80fdc0fd8004c0 +8080c0c0fb80fdc0fb80fbc0018080fcc0fb8080c080c080c080c0aec080 +c080c080c080c080c080c080c080c080c080c080c080c080c080c080c080 +c080c080c080c080c08000800080008000800080008000800080008000dd +0001c0c0fa00fdc0f20001c0c0fa0001c0c0fb0000c0d300fac0e500fcc0 +f400fdc0fb00fdc0ed0006c0c0000000c0c0fb0001c0c0fc00fcc0040000 +c0c0c0d900fdc0e20000c0fc00fdc0f90001c0c0fa0001c0c0da00fdc0fb +0001c0c080008000f400dd0001c0c0fb0004c0c000c0c0f40001c0c0fa00 +01c0c0fb0001c0c0d300fac0e60005c0c00000c0c0f40001c0c0fa0001c0 +c0ed00fdc0030000c0c0fc0001c0c0fc0009c0c00000c0c00000c0c0d800 +01c0c0e30001c0c0fb0001c0c0f80001c0c0fa0001c0c0dc0004c0c000c0 +c0fb0001c0c080008000f500d60004c0c00000c0f50001c0c0fa0001c0c0 +fa0001c0c0d30005c000c0c000c0e70001c0c0fc0000c0f40001c0c0fa00 +01c0c0ed00fcc00700c0c0000000c0c0fc0001c0c0fc0004c00000c0c0d8 +0001c0c0e30001c0c0fb0001c0c0f70001c0c0fa0001c0c0de0006c0c000 +0000c0c0fb0001c0c080008000f600de00fdc0fb0001c0c0f20001c0c0fa +0001c0c0fc00fac00f0000c0c0c000c0c00000c0c000c0c0c0f500fac0f4 +0015c0c0000000c0c0000000c0c000c0c000c0c0c0000000fbc0030000c0 +c0f900fcc0fa0001c0c0fa0001c0c0fc00fbc0fd00fbc0010000f9c0fd00 +01c0c0fc0001c0c0f90007c0c000c0c0000000fcc0fd0005c0c000c0c0c0 +eb0001c0c0fc00fbc0110000c0c000c0c0c0000000c0c0c000c0c000fac0 +fd0004c0c000c0c0fa0001c0c0fa0001c0c0f500fac0010000fac0f70006 +c0c0000000c0c0fb0001c0c080008000f600dd0001c0c0fc00fcc0f30001 +c0c0fa0001c0c0fa0001c0c0fc00f9c0070000c0c00000c0c0e4001ec0c0 +000000c0c0000000c0c00000c0c00000c0c000c0c0000000c0c000c0c0f6 +0001c0c0fb0001c0c0fa0017c0c0000000c0c0000000c0c000c0c0000000 +c0c000c0c000fcc0fd0001c0c0fc0001c0c0f900fdc00200c0c0fb000ac0 +c0000000c0c0c000c0c0ec001ac0c0000000c0c0000000c0c00000c0c000 +00c0c000c0c00000c0c0fc0001c0c0fb00fdc00200c0c0fb0001c0c0fa00 +01c0c0de0006c0c000c000c0c0fb0001c0c080008000f600dd0001c0c0fb +0001c0c0f20001c0c0fa0001c0c0fa0001c0c0fc000ec0c000c000c0c000 +00c0c00000c0c0e40014c0c0000000c0c0000000c0c00000c0c00000c0c0 +00f9c00200c0c0f900fbc0fb0001c0c0fa000ec0c0000000c0c0000000c0 +c000c0c0fa000bc0c00000c0c0c0000000c0c0fc0001c0c0f90007c0c000 +00c0c00000fbc0fd0005c0c00000c0c0ec0004c0c0000000f9c00e0000c0 +c00000c0c000c0c00000c0c0fc0001c0c0fb0005c0c00000c0c0fb0001c0 +c0fa0001c0c0de0006c0c000c000c0c0fb0001c0c080008000f600dd0001 +c0c0fb0001c0c0f20001c0c0fa0001c0c0fa0001c0c0fc000ec0c000c000 +c0c00000c0c00000c0c0f600fac0f40016c0c0000000c0c0000000c0c000 +00c0c00000c0c000c0c0fa0001c0c0fa0005c0c00000c0c0fb0001c0c0fa +000ec0c0000000c0c0000000c0c000c0c0fa000bc0c0000000c0c0000000 +c0c0fc0001c0c0f90011c0c00000c0c000c0c00000c0c0000000c0c0e800 +06c0c0000000c0c0f9000cc0c00000c0c000c0c00000c0c0fc0001c0c0fb +0005c0c00000c0c0fb0001c0c0fa0001c0c0f500fac0010000fac0f70006 +c0c0000000c0c0fb0001c0c080008000f600dd0001c0c0fb0001c0c0f200 +01c0c0fa0001c0c0fa0001c0c0fc000ec0c000c000c0c00000c0c00000c0 +c0e40016c0c0000000c0c0000000c0c00000c0c00000c0c000c0c0fa0001 +c0c0fc0007c000c0c00000c0c0fb0001c0c0fa000ec0c0000000c0c00000 +00c0c000c0c0fa000bc0c0000000c0c0000000c0c0fc0001c0c0fc0014c0 +0000c0c00000c0c000c0c00000c0c0000000c0c0f80001c0c0f20006c0c0 +000000c0c0f9000cc0c00000c0c000c0c00000c0c0fc0001c0c0fb0005c0 +c00000c0c0fb0001c0c0fa0001c0c0de0006c0c0000000c0c0fb0001c0c0 +80008000f600dd0001c0c0fb0001c0c0f10001c0c0fa0001c0c0fb0014c0 +c000c0c000c0c000c000c0c00000c0c00000c0c0e4002ac0c0000000c0c0 +000000c0c00000c0c00000c0c000c0c0000000c0c00000c0c00000c0c000 +c0c00000c0c0fb0001c0c0fa001bc0c0000000c0c0000000c0c000c0c000 +0000c0c000c0c0000000c0c0fc0001c0c0fc0019c0c00000c0c00000c0c0 +0000c0c000c0c00000c0c0000000c0c0f80001c0c0f2001ac0c0000000c0 +c0000000c0c00000c0c00000c0c000c0c00000c0c0fc000cc0c000c0c000 +00c0c00000c0c0fc0001c0c0fa0001c0c0dc0004c0c000c0c0fb0001c0c0 +80008000f500de00fcc0fd00fcc0f10001c0c0fa0001c0c0fb00fdc00a00 +00c0c0000000c0c00000fbc0e400fcc0fd00fac0010000fbc0fd00fbc0fc +00fcc0fd00fdc00500c0c0000000fcc0fc00fcc0fd00fbc0fd00fbc00800 +00c0c0000000c0c0fb0001c0c0fc00fcc0110000c0c0c00000c0c00000c0 +c0c000c0c000fcc0f90001c0c0f300fcc0fd00fbc0fd0007c0c00000c0c0 +0000fbc0fb00fdc00d0000c0c0c00000c0c0000000c0c0fa0001c0c0da00 +fdc0fb0001c0c080008000f400a70001c0c0d60005c0c00000c0c0910001 +c0c0d80001c0c080008000a600a70001c0c0d70006c0c0000000c0c08000 +eb0005c0c00000c0c080008000a600a800fcc0dc00fbc0fd00fcc08000eb +00fcc080008000a500800080008000800080008000800080008000800080 +008000800080008000bf00fbc0ee00f9c0db0003c0c00000f9c00000fac0 +010000fac0fd00fbc0010000fac0f500fbc0010000fac0010000f9c0fc00 +00c0fc00fcc0fc00fcc0fb00fbc0fc00fcc0fc0001c0c0800080008000fc +00c00006c0c0000000c0c0ee0005c0c00000c0c0dc0001c0c0fc0025c0c0 +0000c0c00000c0c00000c0c00000c0c00000c0c000c0c0000000c0c00000 +c0c00000c0c0f7001cc0c0000000c0c00000c0c00000c0c00000c0c00000 +c0c0000000c0c0c0fc0001c0c0fa0001c0c0fb000ec0c0000000c0c00000 +c0c00000c0c0fc0001c0c0800080008000fd00c00006c0c0000000c0c0ee +0005c0c0000000c0dd0001c0c0fb0025c0c0000000c00000c0c00000c0c0 +0000c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f70022c0c000 +0000c0c00000c0c00000c0c00000c0c0000000c00000c0c000c0c0000000 +c0c0fa0001c0c0fb0009c0c0000000c0c000c0c0fc0000c0fb0001c0c0fb +0001c0c0800080008500bf0001c0c0fb0008c0c0000000c0c00000fbc0fd +0017c0c000c0000000c0c000c0c0c00000c0c000c0c0c0000000fbc00700 +00c0c000c0c0c0fc0001c0c0fb0003c0c000c0fc001dc0c00000c0c00000 +c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f60001c0c0fa0019 +c0c00000c0c00000c0c000c0000000c0c0000000c0c00000c0c0fa0001c0 +c0fb0009c0c0000000c0c000c0c0f60001c0c0fb0001c0c0800080008500 +be00fdc0fd0010c0c0000000c0c000c0c0000000c0c00000fcc0fc00fdc0 +1f00c0c00000c0c0c000c0c000c0c0000000c0c00000c0c0c000c0c00000 +00c0c0fb00fcc0fc00fbc0fd00fbc00a0000c0c0000000c0c00000fbc0f4 +00fdc0fc00fbc0fd00fcc0fd000ac0c0000000c0c00000c0c0fa0001c0c0 +fb0009c0c0000000c0c000c0c0f60001c0c0800080008000fe00bc000ec0 +c00000c0c0000000c0c00000c0c0fa0003c0c000c0fc0022c0c00000c0c0 +0000c0c00000c0c000c0c0000000c0c00000c0c00000c0c0000000c0c0fb +0003c0c000c0fc001cc0c000c0c0000000c0c000c0c00000c0c0000000c0 +c00000c0c000c0c0f20013c0c0000000c0c000c0c0000000c0c000c00000 +00f9c0030000c0c0fa0001c0c0fb0009c0c0000000c0c000c0c0f60001c0 +c0800080008000fe00bb000fc0c000c0c0000000c0c0000000c0c0c0fc00 +01c0c0fa0001c0c0fa0001c0c0fb000ac0c0000000c0c00000c0c0f90001 +c0c0fb0001c0c0fa001dc0c00000c0c00000c0c00000c0c000c0c0000000 +c0c00000c0c00000c0c0f2000dc0c00000c0c00000c0c00000c0c0fb000a +c0c0000000c0c00000c0c0fa0001c0c0fb0009c0c0000000c0c000c0c0f6 +0001c0c0800080008000fe00c0000ec0c0000000c0c000c0c0000000c0c0 +fb000ec0c0000000c0c0000000c00000c0c0fa0001c0c0fb000ac0c00000 +00c0c00000c0c0f90001c0c0fb0025c0c0000000c00000c0c00000c0c000 +00c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f70039c0c00000 +00c0c00000c0c00000c0c00000c0c0000000c000c0c0000000c0c00000c0 +c0000000c00000c0c0000000c000c0c0000000c0c000c0c0fc0000c0fb00 +01c0c0fb0001c0c0800080008500c00022c0c0000000c0c000c0c0000000 +c0c000c0c0000000c0c00000c0c00000c0c00000c0c0fa0001c0c0fb000a +c0c0000000c0c00000c0c0f80001c0c0fc0025c0c00000c0c00000c0c000 +00c0c00000c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f7003e +c0c0000000c0c00000c0c00000c0c00000c0c00000c0c000c0c0000000c0 +c00000c0c00000c0c00000c0c00000c0c000c0c0000000c0c00000c0c000 +00c0c0fc0001c0c0fa0001c0c0800080008500bf00fbc0fd00fac0010000 +fbc0010000f9c00000fcc0fc00fcc0fb00fbc0010000fcc0f80003c0c000 +00f9c01100c0c0c00000c0c000c0c0c00000c0c00000fbc0080000c0c0c0 +0000c0c0f600fbc0090000c0c0c00000c0c000f9c00800c0c0000000c0c0 +00f9c00000f9c0010000fbc0fc00fcc0fc0001c0c0fa0001c0c080008000 +8400b30001c0c08000800080008000cf00b40001c0c09e00f8c080008000 +8000b800b800fbc08000800080008000cd00800080008000800080008000 +800080008000800080008000800080008000d000fdc0f000fdc0f300fdc0 +fb00fdc0db0000c08000800080008400cf0001c0c0f10004c0c000c0c0f3 +0001c0c0fa0001c0c0dc0001c0c08000800080008400cf0001c0c0f10004 +c0c00000c0f30001c0c0fa0001c0c0dc0001c0c0e90001c0c08000800080 +009d00df0007c0c00000c0c00000fbc0fd00fcc0fd0005c0c00000c0c0fc +0001c0c0fb00fcc0fb00fcc0fc00fcc0070000c0c000c0c0c0f500fac0f7 +00fac00f0000c0c0c000c0c00000c0c000c0c0c0fb0001c0c08000800080 +009d00de00fcc01a0000c0c0000000c0c00000c0c000c0c00000c0c00000 +c0c0000000fcc0f9001ac0c0000000c0c000c0c0000000c0c000c0c00000 +00c0c0c000c0c0e50001c0c0fc00f9c0070000c0c00000c0c08000800080 +009700e000f8c00200c0c0fa000cc0c00000c0c000c0c00000c0c0fc0001 +c0c0fb00fbc0180000c0c00000c0c00000c0c00000c0c0000000c0c00000 +c0c0e50001c0c0fc000ec0c000c000c0c00000c0c00000c0c08000800080 +009700de00fcc0fc00fdc0fc000cc0c00000c0c000c0c00000c0c0fc0001 +c0c0fc001ac0c00000c0c00000c0c00000c0c00000c0c00000c0c0000000 +c0c0f200fac0f50001c0c0fc000ec0c000c000c0c00000c0c00000c0c080 +00800080009700df0005c0c00000c0c0fb0011c0c0000000c0c00000c0c0 +00c0c00000c0c0fc0001c0c0fc001ac0c00000c0c00000c0c00000c0c000 +00c0c00000c0c0000000c0c0e10001c0c0fc000ec0c000c000c0c00000c0 +c00000c0c0fc0001c0c08000800080009d00d80015c0c0000000c0c00000 +c0c00000c0c000c0c00000c0c0fc0001c0c0fc001ac0c00000c0c00000c0 +c00000c0c00000c0c00000c0c0000000c0c0e10014c0c000c0c000c0c000 +c000c0c00000c0c00000c0c0fc0001c0c08000800080009d00d700fbc0fd +00fbc0fd00fdc00400c0c00000fcc0fc00fdc01300c0c00000c0c0c000c0 +c00000c0c0c000c0c000fcc0e100fdc00a0000c0c0000000c0c00000fbc0 +fc0001c0c08000800080009c008000ef0001c0c080008000800093008000 +ef0001c0c080008000800093008000f000fcc08000800080009400800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000dd00fdc0e20001c0c0fb0001c0c0e500fdc0e100fdc0ea +0001c0c0b20001c0c0eb0001c0c0f000fdc0800080009f00de0004c0c000 +c0c0e40001c0c0fa0001c0c0e40001c0c0e20004c0c000c0c0eb0001c0c0 +f00001c0c0c40001c0c0ea0001c0c0f20001c0c0800080009d00de0004c0 +c00000c0e50001c0c0db0001c0c0e30006c0c0000000c0c0fc0001c0c0e1 +0001c0c0d30001c0c0d90001c0c0f30001c0c0800080009d00de0001c0c0 +fb00fbc0070000c0c000c0c0c0f40001c0c0fa00fdc0f400fac0f60005c0 +c00000c0c0f600fac0f70006c0c0000000c0c0fc0001c0c0f300fdc0f200 +01c0c0f50010c0c000c0c0c00000c0c000c0c0c0000000fbc0080000c0c0 +000000c0c0fc0001c0c0f300fdc0fa0001c0c0fa0001c0c0f90001c0c0f3 +0001c0c0800080009d00df00fcc0fd000ec0c0000000c0c00000c0c0c000 +c0c0f50001c0c0f90001c0c0e40004c0c000c0c0e60006c0c000c000c0c0 +ec0001c0c0f30001c0c0f3001dc0c00000c0c00000c0c0c000c0c000c0c0 +000000c0c000c0c0000000c0c0ec0001c0c0fa0001c0c0fa0001c0c0f900 +01c0c0f500fdc0800080009c00de0001c0c0fc000ec0c0000000c0c00000 +c0c00000c0c0f50001c0c0f90001c0c0e400fcc0e50006c0c000c000c0c0 +ec0001c0c0f40001c0c0f2001dc0c00000c0c00000c0c00000c0c000c0c0 +000000c0c000c0c000c000c0c0ec0001c0c0fc00fac0010000fac0fb0001 +c0c0f30001c0c0800080009d00de0001c0c0fc000ac0c0000000c0c00000 +c0c0f10001c0c0f90001c0c0f400fac0f600fcc0f400fac0f70006c0c000 +0000c0c0ec0001c0c0f30001c0c0f30009c0c00000c0c00000c0c0fb000e +c0c0000000c0c000c0c000c000c0c0ec0001c0c0fa0001c0c0fa0001c0c0 +f90001c0c0f30001c0c0800080009d00de0001c0c0fc000ac0c0000000c0 +c00000c0c0f10001c0c0f90001c0c0e40004c0c000c0c0e60006c0c00000 +00c0c0fc0001c0c0f20001c0c0f20001c0c0f40009c0c00000c0c00000c0 +c0fb000ec0c0000000c0c000c0c000c000c0c0fc0001c0c0f20001c0c0fa +0001c0c0fa0001c0c0f90001c0c0f30001c0c0800080009d00de0001c0c0 +fc000ac0c0000000c0c00000c0c0f00001c0c0fa0001c0c0e40005c0c000 +00c0c0e60004c0c000c0c0fb0001c0c0f20001c0c0f10001c0c0f50009c0 +c00000c0c00000c0c0fb0007c0c0000000c0c000f9c0fc0001c0c0f20001 +c0c0ea0001c0c0f20001c0c0800080009d00df00fcc0fc00fbc0010000fc +c0f00001c0c0fc00fcc0e600fdc0030000c0c0e500fdc0fb0001c0c0f200 +fcc0f10001c0c0f60006c0c00000c0c000fcc0fb00fbc0fd0004c0c000c0 +c0fc0001c0c0f200fcc0ec0001c0c0f000fdc0800080009f008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000800080008000800080008000800080008000c000fdc0db +00fac0090000c0c0000000c0c000f9c0f70007c0c0000000c0c000f9c0fc +0000c0fc00fbc0800080008000a500bf0001c0c0da0015c0c00000c0c000 +c0c0000000c0c00000c0c00000c0c0f70014c0c0000000c0c00000c0c000 +00c0c0000000c0c0c0fc0004c0c000c0c0800080008000a600bf0001c0c0 +da0015c0c00000c0c000c0c0000000c0c00000c0c0000000c0f7001ec0c0 +000000c0c00000c0c0000000c00000c0c000c0c0000000c0c00000c0c0fc +0001c0c0800080008000ad00bf0005c0c00000c0c0f40001c0c0fc00fac0 +f60013c0c00000c0c000c0c0000000c0c00000c0c000c0f5001ec0c00000 +00c0c00000c0c000c0000000c0c0000000c0c00000c0c00000c0c0fc0001 +c0c0800080008000ad00bf0004c0c000c0c0f30001c0c0ec00fbc00a0000 +c0c0000000c0c00000fcc0f500f9c0010000fcc0fd000ec0c0000000c0c0 +0000c0c00000c0c0800080008000a700bf00fcc0f400fac0ee0013c0c000 +00c0c000c0c0000000c0c00000c0c000c0f5000fc0c0000000c0c00000c0 +c000c0000000f9c0070000c0c00000c0c0800080008000a700bf00fcc0f2 +0001c0c0fc00fac0f60011c0c00000c0c000c0c0000000c0c00000c0c0f3 +000ac0c0000000c0c00000c0c0fb000ec0c0000000c0c00000c0c00000c0 +c0800080008000a700bf0004c0c000c0c0f30001c0c0ec0011c0c00000c0 +c000c0c0000000c0c00000c0c0f3001ec0c0000000c0c00000c0c0000000 +c000c0c0000000c0c00000c0c00000c0c0fc0001c0c0800080008000ad00 +bf0005c0c00000c0c0de0011c0c00000c0c000c0c0000000c0c00000c0c0 +f3001dc0c0000000c0c00000c0c00000c0c000c0c0000000c0c00000c0c0 +00c0c0fb0001c0c0800080008000ad00c000fdc0030000c0c0df00fac0fd +00fbc0010000fcc0f40007c0c0000000c0c000f9c00800c0c0000000c0c0 +00fbc0fb0001c0c0800080008000ac00800080008000800080008000f8c0 +800080008000880080008000800080008000800080008000800080008000 +800080008000800080008000800080008000bd00fdc0e20001c0c0f90001 +c0c0e700fac0090000c0c0000000c0c000f9c0f70007c0c0000000c0c000 +f9c0fc0000c0fc00fbc0e80001c0c0dd00fdc0fa00fdc0cb0000c0d70001 +c0c0ed0001c0c0f000fdc080009700be0004c0c000c0c0e40001c0c0f800 +01c0c0e60015c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f700 +14c0c0000000c0c00000c0c00000c0c0000000c0c0c0fc0004c0c000c0c0 +e90001c0c0f20001c0c0ec0001c0c0f90001c0c0cc0001c0c0d70001c0c0 +ec0001c0c0f20001c0c080009500be0004c0c00000c0e50001c0c0db0015 +c0c00000c0c000c0c0000000c0c00000c0c0000000c0f7001ec0c0000000 +c0c00000c0c0000000c00000c0c000c0c0000000c0c00000c0c0fc0001c0 +c0e10001c0c0eb0001c0c0f90001c0c0cc0001c0c0e90001c0c0d90001c0 +c0f30001c0c080009500be0001c0c0fb00fbc0070000c0c000c0c0c0f400 +01c0c0f800fdc0f600fac0f60013c0c00000c0c000c0c0000000c0c00000 +c0c000c0f5001ec0c0000000c0c00000c0c000c0000000c0c0000000c0c0 +0000c0c00000c0c0fc0001c0c0f100fdc0f40001c0c0f400fbc0fb0001c0 +c0fb00fcc0f600fdc00500c0c0000000fcc0fd0006c0c0000000c0c0f700 +07c0c000c0c0c00000fac00a0000c0c000c0c0c0000000fbc0fb0001c0c0 +f100fdc0fc0001c0c0fa0001c0c0f90001c0c0f30001c0c080009500bf00 +fcc0fd000ec0c0000000c0c00000c0c0c000c0c0f50001c0c0f70001c0c0 +e600fbc00a0000c0c0000000c0c00000fcc0f500f9c0010000fcc0fd000e +c0c0000000c0c00000c0c00000c0c0ea0001c0c0f50001c0c0f40006c0c0 +000000c0c0fc0001c0c0fc0004c0c000c0c0f600f9c0fb0009c0c0000000 +c0c000c0c0f5000ac0c00000c0c0000000c0c0fb00fdc00a00c0c000c0c0 +000000c0c0ea0001c0c0fc0001c0c0fa0001c0c0f90001c0c0f500fdc080 +009400be0001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f50001c0 +c0f70001c0c0e60013c0c00000c0c000c0c0000000c0c00000c0c000c0f5 +000fc0c0000000c0c00000c0c000c0000000f9c0070000c0c00000c0c0ea +0001c0c0f60001c0c0f30006c0c0000000c0c0fc000ac0c0000000c0c000 +00c0c0f60008c0c000c000c0c00000fbc0fc00fdc0f4000ac0c00000c0c0 +000000c0c0fb0009c0c00000c0c00000c0c0e60003c0c00000fac0010000 +fac0fb0001c0c0f30001c0c080009500be0001c0c0fc000ac0c0000000c0 +c00000c0c0f10001c0c0f70001c0c0f600fac0f60011c0c00000c0c000c0 +c0000000c0c00000c0c0f3000ac0c0000000c0c00000c0c0fb000ec0c000 +0000c0c00000c0c00000c0c0ea0001c0c0f50001c0c0f40006c0c0000000 +c0c0fc000ac0c0000000c0c00000c0c0f6000dc0c000c000c0c000c0c000 +00c0c0fc00fdc0f4000ac0c00000c0c0000000c0c0fb0001c0c0f900fdc0 +e80001c0c0fc0001c0c0fa0001c0c0f90001c0c0f30001c0c080009500be +0001c0c0fc000ac0c0000000c0c00000c0c0f10001c0c0f70001c0c0e600 +11c0c00000c0c000c0c0000000c0c00000c0c0f3001ec0c0000000c0c000 +00c0c0000000c000c0c0000000c0c00000c0c00000c0c0fc0001c0c0f000 +01c0c0f40001c0c0f50006c0c0000000c0c0fc000ac0c0000000c0c00000 +c0c0f6000dc0c000c000c0c000c0c00000c0c0fc00fdc0f4000ac0c00000 +c0c0000000c0c0fb0001c0c0f70001c0c0fb0001c0c0f00001c0c0fc0001 +c0c0fa0001c0c0f90001c0c0f30001c0c080009500be0001c0c0fc000ac0 +c0000000c0c00000c0c0f00001c0c0f80001c0c0e60011c0c00000c0c000 +c0c0000000c0c00000c0c0f3001dc0c0000000c0c00000c0c00000c0c000 +c0c0000000c0c00000c0c000c0c0fb0001c0c0f00001c0c0f30001c0c0f6 +0006c0c0000000c0c0fc000ac0c0000000c0c00000c0c0f60015c0c000c0 +00c0c000c0c00000c0c0000000c0c000c0c0f50011c0c00000c0c0000000 +c0c000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0c0f00001c0c0ec +0001c0c0f20001c0c080009500bf00fcc0fc00fbc0010000fcc0f00001c0 +c0f90001c0c0e700fac0fd00fbc0010000fcc0f40007c0c0000000c0c000 +f9c00800c0c0000000c0c000fbc0fb0001c0c0ef0001c0c0f20001c0c0f6 +00fbc0fc00fcc0fd00fdc00200c0c0f70016c0c0000000c0c00000c0c0c0 +00c0c000c0c0000000c0c0f600fbc0fb00fdc0010000fcc0fb00fbc0fc00 +01c0c0ef0001c0c0ed0001c0c0f000fdc080009700970005c0c00000c0c0 +960005c0c00000c0c0a60001c0c0d20005c0c00000c0c080008000ef0097 +0005c0c00000c0c0cf00f8c0cf0005c0c00000c0c0cf00f8c0e800f8c002 +00c0c0d20005c0c00000c0c080008000ef009600fcc09400fcc0a600fcc0 +d200fcc080008000ee008000800080008000800080008000800080008000 +800080008000800080008000ec0001c0c0fb0000c0dc00fdc0e100fcc004 +0000c0c0c0e900fcc0d400fdc0fb0001c0c080008000bc008000ed0001c0 +c0fb0001c0c0db0001c0c0e10001c0c0fb0001c0c0e70001c0c0d30001c0 +c0fa0001c0c080008000bd008000ee0001c0c0fa0001c0c0db0001c0c0e1 +0001c0c0fb0001c0c0e70001c0c0d30001c0c0f90001c0c0fb0001c0c080 +008000c500a000fdc00500c0c0000000fbc00a0000c0c0c000c0c0000000 +fbc0150000c0c000c0c0c00000c0c0000000c0c0000000c0c0fc00fac00f +0000c0c0c000c0c00000c0c000c0c0c0ed00fcc0fc00fcc0fc00fbc0fd00 +fbc0fc0001c0c0fb0005c0c00000c0c0fc0001c0c0fa0001c0c0f90001c0 +c0ee0008c0c000c0c0c0000000fbc0fd00fbc0fb0001c0c0f90001c0c0fb +0001c0c080008000c500a000f9c00800c0c0000000c0c000f9c01c00c0c0 +000000c0c00000c0c00000c0c000c0c0000000c0c0000000c0c0fa0001c0 +c0fc00f9c0070000c0c00000c0c0ee0004c0c000c0c0fa0017c0c00000c0 +c0000000c0c000c0c0000000c0c0000000c0c0fb0004c0c000c0c0fb0001 +c0c0fa0001c0c0f90001c0c0ed0015c0c00000c0c000c0c0000000c0c000 +c0c0000000c0c0fc0001c0c0f90001c0c080008000be00a00007c0c000c0 +00c0c000f9c00a00c0c000c000c0c000c0c0f90012c0c00000c0c000c0c0 +000000c0c0000000c0c0fa0001c0c0fc000ec0c000c000c0c00000c0c000 +00c0c0ee0007c0c00000c0c00000fbc0fd0001c0c0fb00f9c0fd0001c0c0 +fb00fcc0fc00fac0010000fac0fb0001c0c0ed0008c0c00000c0c000c0c0 +fa0006c0c0000000c0c0fc0001c0c0f90001c0c080008000be00a00009c0 +c000c000c0c000c0c0fa0009c0c000c000c0c000c0c0f90012c0c00000c0 +c000c0c0000000c0c0000000c0c0fa0001c0c0fc000ec0c000c000c0c000 +00c0c00000c0c0ee000cc0c00000c0c000c0c00000c0c0fc00fdc0fd0001 +c0c0f80001c0c0fb00fcc0fa0001c0c0fa0001c0c0f90001c0c0ed0008c0 +c00000c0c000c0c0fa0006c0c0000000c0c0fc0001c0c0f90001c0c08000 +8000be00a00009c0c000c000c0c000c0c0fa0009c0c000c000c0c000c0c0 +f90012c0c00000c0c000c0c0000000c0c0000000c0c0fa0001c0c0fc000e +c0c000c000c0c00000c0c00000c0c0fc0001c0c0f4000cc0c00000c0c000 +c0c00000c0c0fa0005c0c00000c0c0f80001c0c0fb0004c0c000c0c0fb00 +01c0c0fa0001c0c0f90001c0c0fb0001c0c0f40008c0c00000c0c000c0c0 +fa0006c0c0000000c0c0fc0001c0c0f90001c0c0fb0001c0c080008000c5 +00a0002ec0c000c000c0c000c0c0000000c0c000c0c000c000c0c000c0c0 +000000c0c00000c0c00000c0c000c0c0000000c0c0fc0001c0c0fb0014c0 +c000c0c000c0c000c000c0c00000c0c00000c0c0fc0001c0c0f40022c0c0 +0000c0c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c00000 +00c0c0fb0005c0c00000c0c0eb0001c0c0fb0001c0c0f40015c0c00000c0 +c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c0fa0001 +c0c080008000c500a00008c0c0000000c0c00000fbc00a0000c0c0000000 +c0c00000fbc0fd00fbc0fd00fac0fb0001c0c0fb00fdc00a0000c0c00000 +00c0c00000fbc0fb0001c0c0f400fbc0fd00fdc00400c0c00000fbc0fd00 +fbc0fc00fcc0080000c0c0c00000c0c0ed00fcc0fb0001c0c0f40007c0c0 +0000c0c00000fbc0fd00fbc0fc00fcc0fc0001c0c0fa0001c0c080008000 +c40080000200c0c0f60001c0c0e60001c0c0f90001c0c0aa0001c0c08000 +80008c0080000200c0c0f70001c0c0e50001c0c0800080008000ab008000 +fcc0fc00fbc0e500fcc0800080008000ac00800080008000800080008000 +8000800080008000800080008000800080009d0000c0b200fdc080008000 +8000b5009e0001c0c0b10001c0c0800080008000b5009e0001c0c0b10001 +c0c0fa0001c0c0800080008000bd00a000fac00f0000c0c0c000c0c00000 +c0c000c0c0c0f30001c0c0fc00fac0f70008c0c000c0c0c0000000fbc0fd +00fbc0fb0001c0c0fa0001c0c0800080008000bd009e0001c0c0fc00f9c0 +070000c0c00000c0c0f40001c0c0ec0015c0c00000c0c000c0c0000000c0 +c000c0c0000000c0c0fc0001c0c0800080008000b5009e0001c0c0fc000e +c0c000c000c0c00000c0c00000c0c0f600fac0ee0008c0c00000c0c000c0 +c0fa0006c0c0000000c0c0fc0001c0c0800080008000b5009e0001c0c0fc +000ec0c000c000c0c00000c0c00000c0c0f40001c0c0fc00fac0f60008c0 +c00000c0c000c0c0fa0006c0c0000000c0c0fc0001c0c0800080008000b5 +009e0001c0c0fc000ec0c000c000c0c00000c0c00000c0c0f40001c0c0ec +0008c0c00000c0c000c0c0fa0006c0c0000000c0c0fc0001c0c0fa0001c0 +c0800080008000bd009e0014c0c000c0c000c0c000c000c0c00000c0c000 +00c0c0de0015c0c00000c0c000c0c0000000c0c000c0c0000000c0c0fc00 +01c0c0fa0001c0c0800080008000bd009d00fdc00a0000c0c0000000c0c0 +0000fbc0dd0007c0c00000c0c00000fbc0fd00fbc0fc00fcc0fc0001c0c0 +800080008000bc008f0001c0c08000800080008000f3008f0001c0c08000 +800080008000f3009000fcc08000800080008000f4008000800080008000 +80008000800080008000800080008000800080008000bf00fdc080008000 +80008000c400bd0001c0c08000800080008000c500bd0001c0c080008000 +80008000c500bd0001c0c08000800080008000c500bc00fdc08000800080 +008000c700bd0001c0c08000800080008000c500bd0001c0c08000800080 +008000c500bd0001c0c08000800080008000c500bd0001c0c08000800080 +008000c500bf00fdc08000800080008000c4008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +c080c080c080c080c080c080c080c080c080c080c080c080c080c080c080 +c080c080c080c080c080c080c080c080c080c000c0fb00fdc0fb000ac0c0 +0000c0000000c0c0c0fb00fdc0fb0007c0c00000c0000000f5c0fb0080c0 +80c080c080c0bec02e0000c0c0c00000c00000c0c0c00000c0c0000000c0 +0000c00000c0c0c00000c00000c0c0c00000c0c00000c0c00000f7c00600 +00c0c0c0000080c080c080c080c0bfc002c00000fbc0010000f9c0060000 +c0c00000c0f90000c0f90007c0c00000c0c00000f7c001000080c080c080 +c080c0bac009c0c0000000c0c0c00000f9c0010000fbc0010000fac00100 +00f9c0050000c0c00000f7c001000080c080c080c080c0bac0fcc0050000 +c0c00000f9c0010000fbc0010000fac0010000f9c0050000c0c00000f7c0 +01000080c080c080c080c0bac0120000c0c0c00000c00000c0c0c00000c0 +c00000fbc0160000c0c0c00000c00000c0c0c00000c0c00000c0c00000fc +c00b0000c0c0c00000c0c0c0000080c080c080c080c0bfc000c0fb00fdc0 +fb0001c0c0fc00fbc0fb00fdc0fb00fdc0050000c0c00000fcc0010000fc +c0fb0080c080c080c080c0bec080c080c080c080c080c080c080c080c080 +c080c080c080c080c080c080c080c080c080c080c080c080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 46707 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 46707 a -30 48257 a +SDict begin H.S end + -30 +48257 a -30 48257 a +SDict begin 18.2 H.A end + -30 48257 a -30 48257 a +SDict begin [ /View [/XYZ H.V] /Dest (5552) cvn H.B /DEST pdfmark end + -30 48257 +a 2014 x FU(This)465 b(will)f(start)h(up)11216 50271 +y +SDict begin H.S end + 11216 50271 a 11216 50271 a +SDict begin 18.2 H.A end + 11216 50271 a 11216 50271 +a +SDict begin [ /View [/XYZ H.V] /Dest (5553) cvn H.B /DEST pdfmark end + 11216 50271 a FP(vi)g FU(with)f(an)h(empty)g(b)-31 +b(uf)-39 b(fer)-85 b(.)465 b(At)g(this)f(point,)h(you')-15 +b(ll)464 b(see)h(a)g(mostly)f(blank)-30 52286 y(screen.)455 +b(It)f(is)g(no)-39 b(w)455 b(in)12404 52286 y +SDict begin H.S end + 12404 52286 +a 12404 52286 a +SDict begin 18.2 H.A end + 12404 52286 a 12404 52286 a +SDict begin [ /View [/XYZ H.V] /Dest (5554) cvn H.B /DEST pdfmark end + 12404 52286 +a FU(\223command)f(mode\224,)g(w)-15 b(aiting)453 b(for)i(you)f(to)g +(do)g(something.)g(F)-23 b(or)454 b(a)g(dis-)-30 54301 +y(cussion)345 b(of)g(the)g(v)-39 b(arious)13709 54301 +y +SDict begin H.S end + 13709 54301 a 13709 54301 a +SDict begin 18.2 H.A end + 13709 54301 a 13709 54301 +a +SDict begin [ /View [/XYZ H.V] /Dest (5555) cvn H.B /DEST pdfmark end + 13709 54301 a FP(vi)345 b FU(modes,)g(see)g(the)p 0 +TeXcolorgray 24884 54301 a +SDict begin H.S end + 24884 54301 a FU(Section)387 +b(16.2)32633 54301 y +SDict begin 18.2 H.L end + 32633 54301 a 32633 54301 a +SDict begin [ /Subtype /Link /Dest (VI-MODES) cvn /H /I /Border [0 +0 0] /Color [1 0 0] H.B /ANN pdfmark end + 32633 +54301 a Black FU(.)346 b(In)f(order)g(to)g(quit)g(out)g(of)46887 +54301 y +SDict begin H.S end + 46887 54301 a 46887 54301 a +SDict begin 18.2 H.A end + 46887 54301 a 46887 +54301 a +SDict begin [ /View [/XYZ H.V] /Dest (5557) cvn H.B /DEST pdfmark end + 46887 54301 a FP(vi)p FU(,)g(type)-30 56315 y(the)387 +b(follo)-39 b(wing:)-30 58201 y +SDict begin H.S end + -30 58201 a -30 58201 +a +SDict begin 14.56 H.A end + -30 58201 a -30 58201 a +SDict begin [ /View [/XYZ H.V] /Dest (5558) cvn H.B /DEST pdfmark end + -30 58201 a -30 58201 a +SDict begin H.S end + -30 +58201 a -30 58201 a +SDict begin 14.56 H.A end + -30 58201 a -30 58201 a +SDict begin [ /View [/XYZ H.V] /Dest (5559) cvn H.B /DEST pdfmark end + -30 58201 +a 1276 x FH(:q)-30 61195 y +SDict begin H.S end + -30 61195 a -30 61195 a +SDict begin 18.2 H.A end + -30 +61195 a -30 61195 a +SDict begin [ /View [/XYZ H.V] /Dest (5560) cvn H.B /DEST pdfmark end + -30 61195 a 1846 x FU(Assuming)478 +b(that)i(there)f(ha)-31 b(v)-23 b(e)479 b(been)h(no)f(changes)h(to)f +(the)g(\002le,)h(this)f(will)g(cause)43813 63041 y +SDict begin H.S end + 43813 +63041 a 43813 63041 a +SDict begin 18.2 H.A end + 43813 63041 a 43813 63041 a +SDict begin [ /View [/XYZ H.V] /Dest (5561) cvn H.B /DEST pdfmark end + 43813 +63041 a FP(vi)g FU(to)g(quit.)h(If)-30 65056 y(there)503 +b(ha)-31 b(v)-23 b(e)503 b(been)g(changes)g(made,)g(it)g(will)g(w)-15 +b(arn)502 b(you)h(that)g(there)g(ha)-31 b(v)-23 b(e)503 +b(been)g(changes)g(and)-30 67071 y(tell)457 b(you)h(ho)-39 +b(w)457 b(to)h(disre)-23 b(g)-8 b(ard)457 b(them.)h(Disre)-23 +b(g)-8 b(arding)456 b(changes)i(usually)f(means)g(appending)g(an)p +Black -30 73672 a FR(196)p Black eop end +%%Page: 197 219 +TeXDict begin 197 218 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.197) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 43108 -1636 a FR(Chapter)387 b(16)g(V)-115 +b(i)p Black -30 3611 a FU(e)-23 b(xclamation)386 b(point)h(after)h(the) +16991 3611 y +SDict begin H.S end + 16991 3611 a 16991 3611 a +SDict begin 18.2 H.A end + 16991 3611 a 16991 +3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5562) cvn H.B /DEST pdfmark end + 16991 3611 a FU(\223)17679 3611 y +SDict begin H.S end + 17679 3611 a +17679 3611 a +SDict begin 18.2 H.A end + 17679 3611 a 17679 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5563) cvn H.B /DEST pdfmark end + 17679 3611 a FX(q)p +FU(\224)f(lik)-15 b(e)387 b(so:)-30 6773 y FH(:q!)-30 +8490 y +SDict begin H.S end + -30 8490 a -30 8490 a +SDict begin 18.2 H.A end + -30 8490 a -30 8490 a +SDict begin [ /View [/XYZ H.V] /Dest (5566) cvn H.B /DEST pdfmark end + -30 +8490 a 1847 x FU(The)326 b(e)-23 b(xclamation)324 b(point)h(usually)g +(means)h(to)f(force)h(some)f(action.)h(W)-124 b(e')-15 +b(ll)325 b(discuss)g(it)h(and)f(other)-30 12352 y(k)-15 +b(e)-23 b(y)387 b(combinations)f(in)h(further)g(details)g(later)-85 +b(.)-30 13462 y +SDict begin H.S end + -30 13462 a -30 13462 a +SDict begin 18.2 H.A end + -30 13462 a -30 +13462 a +SDict begin [ /View [/XYZ H.V] /Dest (5567) cvn H.B /DEST pdfmark end + -30 13462 a 1679 x FU(Y)-170 b(ou)436 b(can)g(also)g(start) +11530 15141 y +SDict begin H.S end + 11530 15141 a 11530 15141 a +SDict begin 18.2 H.A end + 11530 15141 +a 11530 15141 a +SDict begin [ /View [/XYZ H.V] /Dest (5568) cvn H.B /DEST pdfmark end + 11530 15141 a FP(vi)g FU(with)g(a)g(pre-e)-23 +b(xisting)435 b(\002le.)h(F)-23 b(or)436 b(e)-23 b(xample,)436 +b(the)g(\002le)41754 15141 y +SDict begin H.S end + 41754 15141 a 41754 15141 +a +SDict begin 18.2 H.A end + 41754 15141 a 41754 15141 a +SDict begin [ /View [/XYZ H.V] /Dest (5569) cvn H.B /DEST pdfmark end + 41754 15141 a FQ(/etc/resolv.conf)-30 +17156 y FU(w)-15 b(ould)386 b(be)i(opened)f(lik)-15 b(e)386 +b(so:)-30 19041 y +SDict begin H.S end + -30 19041 a -30 19041 a +SDict begin 14.56 H.A end + -30 19041 a +-30 19041 a +SDict begin [ /View [/XYZ H.V] /Dest (5570) cvn H.B /DEST pdfmark end + -30 19041 a -30 19041 a +SDict begin H.S end + -30 19041 a -30 19041 +a +SDict begin 14.56 H.A end + -30 19041 a -30 19041 a +SDict begin [ /View [/XYZ H.V] /Dest (5571) cvn H.B /DEST pdfmark end + -30 19041 a 1276 x FJ(\045)1309 +20317 y +SDict begin H.S end + 1309 20317 a 1309 20317 a +SDict begin 14.56 H.A end + 1309 20317 a 1309 20317 +a +SDict begin [ /View [/XYZ H.V] /Dest (5572) cvn H.B /DEST pdfmark end + 1309 20317 a FH(vi)744 b(/etc/resolv.conf)-30 21958 +y +SDict begin H.S end + -30 21958 a -30 21958 a +SDict begin 18.2 H.A end + -30 21958 a -30 21958 a +SDict begin [ /View [/XYZ H.V] /Dest (5573) cvn H.B /DEST pdfmark end + -30 +21958 a 1924 x FU(Finally)-101 b(,)5115 23882 y +SDict begin H.S end + 5115 +23882 a 5115 23882 a +SDict begin 18.2 H.A end + 5115 23882 a 5115 23882 a +SDict begin [ /View [/XYZ H.V] /Dest (5574) cvn H.B /DEST pdfmark end + 5115 23882 +a FP(vi)467 b FU(can)f(be)h(started)f(on)g(a)h(particular)f(line)g(of)g +(a)h(\002le.)g(This)f(is)g(especially)g(useful)g(for)-30 +25896 y(programmers)327 b(when)f(an)i(error)f(message)g(includes)f(the) +h(line)g(their)g(program)g(bombed)f(on.)h(F)-23 b(or)-30 +27911 y(e)g(xample,)387 b(you)g(could)g(start)g(up)17508 +27911 y +SDict begin H.S end + 17508 27911 a 17508 27911 a +SDict begin 18.2 H.A end + 17508 27911 a 17508 +27911 a +SDict begin [ /View [/XYZ H.V] /Dest (5575) cvn H.B /DEST pdfmark end + 17508 27911 a FP(vi)h FU(on)f(line)g(47)g(of)27648 +27911 y +SDict begin H.S end + 27648 27911 a 27648 27911 a +SDict begin 18.2 H.A end + 27648 27911 a 27648 +27911 a +SDict begin [ /View [/XYZ H.V] /Dest (5576) cvn H.B /DEST pdfmark end + 27648 27911 a FQ(/usr/src/linux/init/main.c)371 +b FU(lik)-15 b(e)387 b(so:)-30 29796 y +SDict begin H.S end + -30 29796 a -30 +29796 a +SDict begin 14.56 H.A end + -30 29796 a -30 29796 a +SDict begin [ /View [/XYZ H.V] /Dest (5577) cvn H.B /DEST pdfmark end + -30 29796 a -30 29796 +a +SDict begin H.S end + -30 29796 a -30 29796 a +SDict begin 14.56 H.A end + -30 29796 a -30 29796 a +SDict begin [ /View [/XYZ H.V] /Dest (5578) cvn H.B /DEST pdfmark end + -30 +29796 a 1277 x FJ(\045)1309 31073 y +SDict begin H.S end + 1309 31073 a 1309 +31073 a +SDict begin 14.56 H.A end + 1309 31073 a 1309 31073 a +SDict begin [ /View [/XYZ H.V] /Dest (5579) cvn H.B /DEST pdfmark end + 1309 31073 a FH(vi)744 +b(+47)f(/usr/src/linux/init/main.c)-30 32713 y +SDict begin H.S end + -30 32713 +a -30 32713 a +SDict begin 18.2 H.A end + -30 32713 a -30 32713 a +SDict begin [ /View [/XYZ H.V] /Dest (5580) cvn H.B /DEST pdfmark end + -30 32713 a -30 +32713 a +SDict begin H.S end + -30 32713 a -30 32713 a +SDict begin 18.2 H.A end + -30 32713 a -30 32713 +a +SDict begin [ /View [/XYZ H.V] /Dest (5581) cvn H.B /DEST pdfmark end + -30 32713 a 1924 x FP(vi)504 b FU(will)g(display)f(the)h(gi)-39 +b(v)-23 b(en)504 b(\002le)g(and)g(will)g(place)g(the)g(cursor)h(at)f +(the)g(speci\002ed)f(line.)i(In)f(the)-30 36652 y(case)374 +b(where)f(you)g(specify)g(a)h(line)f(that)g(is)g(after)h(the)f(end)g +(of)h(the)f(\002le,)37346 36652 y +SDict begin H.S end + 37346 36652 a 37346 +36652 a +SDict begin 18.2 H.A end + 37346 36652 a 37346 36652 a +SDict begin [ /View [/XYZ H.V] /Dest (5582) cvn H.B /DEST pdfmark end + 37346 36652 a FP(vi)h +FU(will)e(place)i(the)f(cursor)-30 38666 y(on)338 b(the)h(last)f(line.) +h(This)f(is)g(especially)g(helpful)g(for)g(programmers,)h(as)f(the)-23 +b(y)338 b(can)h(jump)f(straight)-30 40681 y(to)387 b(the)g(location)g +(in)g(the)g(\002le)g(that)g(an)h(error)f(occurred,)h(without)f(ha)-31 +b(ving)386 b(to)i(search)f(for)g(it.)-30 41791 y +SDict begin H.S end + -30 +41791 a -30 41791 a +SDict begin 18.2 H.A end + -30 41791 a -30 41791 a +SDict begin [ /View [/XYZ H.V] /Dest (VI-MODES) cvn H.B /DEST pdfmark +end + -30 41791 +a 5789 x FL(16.2)620 b(Modes)-30 47608 y +SDict begin H.S end + -30 47608 a +-30 47608 a +SDict begin 18.2 H.A end + -30 47608 a -30 47608 a +SDict begin [ /View [/XYZ H.V] /Dest (5585) cvn H.B /DEST pdfmark end + -30 47608 a -30 48724 +a +SDict begin H.S end + -30 48724 a -30 48724 a +SDict begin 18.2 H.A end + -30 48724 a -30 48724 a +SDict begin [ /View [/XYZ H.V] /Dest (5588) cvn H.B /DEST pdfmark end + -30 +48724 a -30 48724 a +SDict begin H.S end + -30 48724 a -30 48724 a +SDict begin 18.2 H.A end + -30 48724 +a -30 48724 a +SDict begin [ /View [/XYZ H.V] /Dest (5589) cvn H.B /DEST pdfmark end + -30 48724 a 1987 x FP(vi)541 b FU(operates)g(in)g(v)-39 +b(arious)541 b(modes,)g(which)g(are)g(used)g(to)g(accomplish)f(v)-39 +b(arious)541 b(tasks.)g(When)-30 52726 y(you)344 b(\002rst)g(start)8407 +52726 y +SDict begin H.S end + 8407 52726 a 8407 52726 a +SDict begin 18.2 H.A end + 8407 52726 a 8407 52726 +a +SDict begin [ /View [/XYZ H.V] /Dest (5590) cvn H.B /DEST pdfmark end + 8407 52726 a FP(vi)p FU(,)h(you)f(are)g(placed)g(into)g(command)f +(mode.)h(From)g(this)f(point,)h(you)g(can)g(issue)-30 +54740 y(v)-39 b(arious)316 b(commands)e(to)i(manipulate)e(te)-23 +b(xt,)316 b(mo)-23 b(v)g(e)315 b(around)g(in)h(the)f(\002le,)h(sa)-31 +b(v)-23 b(e,)316 b(quit,)f(and)h(change)-30 56755 y(modes.)299 +b(Editing)e(the)i(te)-23 b(xt)298 b(is)g(done)g(in)g(insert)h(mode.)f +(Y)-170 b(ou)298 b(can)h(quickly)e(mo)-23 b(v)g(e)298 +b(between)g(modes)-30 58770 y(with)387 b(a)g(v)-39 b(ariety)388 +b(of)f(k)-15 b(e)-23 b(ystrok)-15 b(es,)386 b(which)h(are)h(e)-23 +b(xplained)386 b(belo)-39 b(w)-101 b(.)-30 59105 y +SDict begin H.S end + -30 +59105 a -30 59105 a +SDict begin 18.2 H.A end + -30 59105 a -30 59105 a +SDict begin [ /View [/XYZ H.V] /Dest (VI-MODES-COMMAND-MODE) cvn H.B +/DEST pdfmark end + -30 59105 +a 5027 x FG(Command)518 b(Mode)-30 65085 y +SDict begin H.S end + -30 65085 +a -30 65085 a +SDict begin 18.2 H.A end + -30 65085 a -30 65085 a +SDict begin [ /View [/XYZ H.V] /Dest (5593) cvn H.B /DEST pdfmark end + -30 65085 a 1991 +x FU(Y)-170 b(ou)375 b(are)h(\002rst)g(placed)g(into)f(command)g(mode.) +h(From)f(this)g(mode,)h(you)g(cannot)g(directly)f(enter)p +Black 49394 73792 a FR(197)p Black eop end +%%Page: 198 220 +TeXDict begin 198 219 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.198) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5637) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(16)g(V)-115 b(i)p Black -30 3611 a FU(te)-23 b(xt)342 +b(or)h(edit)g(what)g(is)f(already)h(there.)h(Ho)-39 b(we)g(v)-23 +b(er)-62 b(,)343 b(you)g(can)g(manipulate)f(the)h(te)-23 +b(xt,)343 b(search,)g(quit,)-30 5626 y(sa)-31 b(v)-23 +b(e,)536 b(load)f(ne)-39 b(w)536 b(\002les,)g(and)f(more.)h(This)g(is)f +(intended)g(only)g(to)h(be)f(an)h(introduction)f(to)g(the)-30 +7640 y(command)387 b(mode.)g(F)-23 b(or)387 b(a)g(description)g(of)g +(the)g(v)-39 b(arious)387 b(commands,)g(see)p 0 TeXcolorgray +40282 7640 a +SDict begin H.S end + 40282 7640 a FU(Section)f(16.7)48030 7640 +y +SDict begin 18.2 H.L end + 48030 7640 a 48030 7640 a +SDict begin [ /Subtype /Link /Dest (VI-KEYS) cvn /H /I /Border [0 0 +0] /Color [1 0 0] H.B /ANN pdfmark end + 48030 7640 a Black FU(.)-30 +8751 y +SDict begin H.S end + -30 8751 a -30 8751 a +SDict begin 18.2 H.A end + -30 8751 a -30 8751 a +SDict begin [ /View [/XYZ H.V] /Dest (5595) cvn H.B /DEST pdfmark end + -30 +8751 a 1679 x FU(Probably)586 b(the)g(most)g(often)g(used)g(command)g +(in)g(command)g(mode)g(is)g(changing)g(to)g(insert)-30 +12445 y(mode.)442 b(This)g(is)g(accomplished)f(by)h(hitting)g(the)26700 +12445 y +SDict begin H.S end + 26700 12445 a 26700 12445 a +SDict begin 18.2 H.A end + 26700 12445 a 26700 +12445 a +SDict begin [ /View [/XYZ H.V] /Dest (5596) cvn H.B /DEST pdfmark end + 26700 12445 a FX(i)g FU(k)-15 b(e)-23 b(y)-101 +b(.)442 b(The)g(cursor)g(changes)g(shapes,)h(and)50744 +12445 y +SDict begin H.S end + 50744 12445 a 50744 12445 a +SDict begin 18.2 H.A end + 50744 12445 a 50744 +12445 a +SDict begin [ /View [/XYZ H.V] /Dest (5597) cvn H.B /DEST pdfmark end + 50744 12445 a FR(--)-30 14459 y(INSERT)369 b(--)h +FU(is)g(displayed)f(at)h(the)g(bottom)f(of)h(the)g(screen)g(\(note)g +(that)g(this)f(does)h(not)f(happen)h(in)-30 16474 y(all)424 +b(clones)g(of)8044 16474 y +SDict begin H.S end + 8044 16474 a 8044 16474 a +SDict begin 18.2 H.A end + +8044 16474 a 8044 16474 a +SDict begin [ /View [/XYZ H.V] /Dest (5598) cvn H.B /DEST pdfmark end + 8044 16474 a FP(vi)p FU(\).)h(From)e(there,)i +(all)f(your)h(k)-15 b(e)-23 b(ystrok)-15 b(es)422 b(are)j(entered)f +(into)g(the)g(current)h(b)-31 b(uf)-39 b(fer)-30 18489 +y(and)420 b(are)f(displayed)g(to)g(the)h(screen.)g(T)-124 +b(o)419 b(get)h(back)f(into)g(command)g(mode,)h(hit)f(the)45662 +18489 y +SDict begin H.S end + 45662 18489 a 45662 18489 a +SDict begin 18.2 H.A end + 45662 18489 a 45662 +18489 a +SDict begin [ /View [/XYZ H.V] /Dest (5599) cvn H.B /DEST pdfmark end + 45662 18489 a FX(ESCAPE)-30 20503 y FU(k)-15 +b(e)-23 b(y)-101 b(.)-30 21614 y +SDict begin H.S end + -30 21614 a -30 21614 +a +SDict begin 18.2 H.A end + -30 21614 a -30 21614 a +SDict begin [ /View [/XYZ H.V] /Dest (5600) cvn H.B /DEST pdfmark end + -30 21614 a 1679 x FU(Command)450 +b(mode)g(is)g(also)h(where)f(you)h(mo)-23 b(v)g(e)449 +b(around)i(in)f(the)h(\002le.)f(On)h(some)f(systems,)g(you)-30 +25308 y(can)411 b(use)f(the)g(arro)-39 b(w)410 b(k)-15 +b(e)-23 b(ys)410 b(to)g(mo)-23 b(v)g(e)409 b(around.)i(On)f(other)g +(systems,)g(you)g(may)g(need)g(to)g(use)g(the)-30 27322 +y(more)423 b(traditional)e(k)-15 b(e)-23 b(ys)422 b(of)15310 +27322 y +SDict begin H.S end + 15310 27322 a 15310 27322 a +SDict begin 18.2 H.A end + 15310 27322 a 15310 +27322 a +SDict begin [ /View [/XYZ H.V] /Dest (5601) cvn H.B /DEST pdfmark end + 15310 27322 a FU(\223)15998 27322 y +SDict begin H.S end + 15998 27322 +a 15998 27322 a +SDict begin 18.2 H.A end + 15998 27322 a 15998 27322 a +SDict begin [ /View [/XYZ H.V] /Dest (5602) cvn H.B /DEST pdfmark end + 15998 27322 +a FX(hjkl)p FU(\224.)g(Here)h(is)f(a)h(simple)f(listing)g(of)g(ho)-39 +b(w)423 b(these)g(k)-15 b(e)-23 b(ys)421 b(are)i(used)-30 +29337 y(to)387 b(mo)-23 b(v)g(e)387 b(around:)-30 29352 +y +SDict begin H.S end + -30 29352 a -30 29352 a +SDict begin 18.2 H.A end + -30 29352 a -30 29352 a +SDict begin [ /View [/XYZ H.V] /Dest (5603) cvn H.B /DEST pdfmark end + -30 +29352 a -30 31677 a +SDict begin H.S end + -30 31677 a -30 31677 a +SDict begin 18.2 H.A end + -30 31677 +a -30 31677 a +SDict begin [ /View [/XYZ H.V] /Dest (5604) cvn H.B /DEST pdfmark end + -30 31677 a -30 31677 a +SDict begin H.S end + -30 31677 a -30 +31677 a +SDict begin 18.2 H.A end + -30 31677 a -30 31677 a +SDict begin [ /View [/XYZ H.V] /Dest (table.12) cvn H.B /DEST pdfmark +end + -30 31677 a 1727 x FX(h)12090 +b FU(mo)-23 b(v)g(e)386 b(left)h(one)g(character)-30 +35463 y FX(j)12436 b FU(mo)-23 b(v)g(e)386 b(do)-39 b(wn)387 +b(one)g(character)-30 37522 y FX(k)12090 b FU(mo)-23 +b(v)g(e)386 b(up)h(one)g(character)-30 39584 y FX(l)12521 +b FU(mo)-23 b(v)g(e)386 b(right)h(one)g(character)-30 +41469 y +SDict begin H.S end + -30 41469 a -30 41469 a +SDict begin 18.2 H.A end + -30 41469 a -30 41469 +a +SDict begin [ /View [/XYZ H.V] /Dest (5624) cvn H.B /DEST pdfmark end + -30 41469 a 2015 x FU(Simply)k(press)i(a)f(k)-15 b(e)-23 +b(y)392 b(to)g(mo)-23 b(v)g(e.)392 b(As)g(you)h(will)f(see)g(later)-62 +b(,)393 b(these)f(k)-15 b(e)-23 b(ys)392 b(can)g(be)h(combined)e(with) +-30 45499 y(a)d(number)e(to)i(mo)-23 b(v)g(e)386 b(much)h(more)g(ef)-39 +b(\002ciently)-101 b(.)-30 46609 y +SDict begin H.S end + -30 46609 a -30 46609 +a +SDict begin 18.2 H.A end + -30 46609 a -30 46609 a +SDict begin [ /View [/XYZ H.V] /Dest (5625) cvn H.B /DEST pdfmark end + -30 46609 a 1679 x FU(Man)-23 +b(y)373 b(of)g(the)h(commands)e(that)h(you)g(will)g(use)g(in)g(command) +g(mode)g(be)-23 b(gin)373 b(with)g(a)g(colon.)g(F)-23 +b(or)-30 50303 y(e)g(xample,)470 b(quitting)g(is)12853 +50303 y +SDict begin H.S end + 12853 50303 a 12853 50303 a +SDict begin 18.2 H.A end + 12853 50303 a 12853 +50303 a +SDict begin [ /View [/XYZ H.V] /Dest (5626) cvn H.B /DEST pdfmark end + 12853 50303 a FX(:q)p FU(,)h(as)f(discussed)g(earlier)-85 +b(.)470 b(The)h(colon)f(simply)f(indicates)h(that)g(it)h(is)f(a)-30 +52318 y(command,)455 b(while)f(the)13172 52318 y +SDict begin H.S end + 13172 +52318 a 13172 52318 a +SDict begin 18.2 H.A end + 13172 52318 a 13172 52318 a +SDict begin [ /View [/XYZ H.V] /Dest (5627) cvn H.B /DEST pdfmark end + 13172 +52318 a FU(\223)13860 52318 y +SDict begin H.S end + 13860 52318 a 13860 52318 +a +SDict begin 18.2 H.A end + 13860 52318 a 13860 52318 a +SDict begin [ /View [/XYZ H.V] /Dest (5628) cvn H.B /DEST pdfmark end + 13860 52318 a FX(q)p FU(\224)h(tells) +18904 52318 y +SDict begin H.S end + 18904 52318 a 18904 52318 a +SDict begin 18.2 H.A end + 18904 52318 +a 18904 52318 a +SDict begin [ /View [/XYZ H.V] /Dest (5629) cvn H.B /DEST pdfmark end + 18904 52318 a FP(vi)g FU(to)f(quit.)h(Other)g(commands) +f(are)i(an)f(optional)f(number)-62 b(,)-30 54332 y(follo)-39 +b(wed)577 b(by)h(a)f(letter)-85 b(.)578 b(These)f(commands)g(do)g(not)g +(ha)-31 b(v)-23 b(e)577 b(a)h(colon)f(before)h(them,)f(and)h(are)-30 +56347 y(generally)387 b(used)g(to)g(manipulate)g(the)g(te)-23 +b(xt.)-30 57457 y +SDict begin H.S end + -30 57457 a -30 57457 a +SDict begin 18.2 H.A end + -30 57457 a +-30 57457 a +SDict begin [ /View [/XYZ H.V] /Dest (5630) cvn H.B /DEST pdfmark end + -30 57457 a 1679 x FU(F)g(or)456 b(e)-23 +b(xample,)457 b(deleting)f(one)g(line)g(from)h(a)g(\002le)f(is)g +(accomplished)g(by)g(hitting)43585 59136 y +SDict begin H.S end + 43585 59136 +a 43585 59136 a +SDict begin 18.2 H.A end + 43585 59136 a 43585 59136 a +SDict begin [ /View [/XYZ H.V] /Dest (5631) cvn H.B /DEST pdfmark end + 43585 59136 +a FX(dd)p FU(.)g(This)g(will)-30 61151 y(remo)-23 b(v)g(e)560 +b(the)g(line)h(that)f(the)g(cursor)h(is)f(on.)h(Issuing)f(the)g +(command)38502 61151 y +SDict begin H.S end + 38502 61151 a 38502 61151 a +SDict begin 18.2 H.A end + 38502 +61151 a 38502 61151 a +SDict begin [ /View [/XYZ H.V] /Dest (5632) cvn H.B /DEST pdfmark end + 38502 61151 a FX(4dd)g FU(w)-15 +b(ould)560 b(tell)48522 61151 y +SDict begin H.S end + 48522 61151 a 48522 61151 +a +SDict begin 18.2 H.A end + 48522 61151 a 48522 61151 a +SDict begin [ /View [/XYZ H.V] /Dest (5633) cvn H.B /DEST pdfmark end + 48522 61151 a FP(vi)g FU(to)-30 +63166 y(remo)-23 b(v)g(e)416 b(the)g(line)g(that)g(the)g(cursor)h(is)f +(on)g(and)g(the)h(three)f(after)g(that.)h(In)f(general,)h(the)f(number) +-30 65180 y(tells)2941 65180 y +SDict begin H.S end + 2941 65180 a 2941 65180 +a +SDict begin 18.2 H.A end + 2941 65180 a 2941 65180 a +SDict begin [ /View [/XYZ H.V] /Dest (5634) cvn H.B /DEST pdfmark end + 2941 65180 a FP(vi)387 b +FU(ho)-39 b(w)387 b(man)-23 b(y)387 b(times)g(to)g(perform)g(the)g +(command.)-30 66291 y +SDict begin H.S end + -30 66291 a -30 66291 a +SDict begin 18.2 H.A end + -30 66291 +a -30 66291 a +SDict begin [ /View [/XYZ H.V] /Dest (5635) cvn H.B /DEST pdfmark end + -30 66291 a 1679 x FU(Y)-170 b(ou)358 b(can)g(combine)f +(a)h(number)g(with)g(the)g(mo)-23 b(v)g(ement)356 b(k)-15 +b(e)-23 b(ys)358 b(to)f(mo)-23 b(v)g(e)358 b(around)g(se)-39 +b(v)-23 b(eral)358 b(charac-)p Black -30 73792 a FR(198)p +Black eop end +%%Page: 199 221 +TeXDict begin 199 220 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.199) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 43108 -1636 a FR(Chapter)387 b(16)g(V)-115 +b(i)p Black -30 3611 a FU(ters)387 b(at)h(a)f(time.)g(F)-23 +b(or)387 b(e)-23 b(xample,)17226 3611 y +SDict begin H.S end + 17226 3611 a +17226 3611 a +SDict begin 18.2 H.A end + 17226 3611 a 17226 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5636) cvn H.B /DEST pdfmark end + 17226 3611 a FX(10k)387 +b FU(w)-15 b(ould)386 b(mo)-23 b(v)g(e)387 b(up)g(ten)g(lines)g(on)g +(the)h(screen.)-30 6401 y(Command)481 b(mode)i(can)f(also)g(be)h(used)f +(to)g(cut)h(and)f(paste,)h(insert)f(te)-23 b(xt,)482 +b(and)h(read)f(other)g(\002les)-30 8415 y(into)522 b(the)h(current)f(b) +-31 b(uf)-39 b(fer)-85 b(.)523 b(Cop)-15 b(ying)521 b(te)-23 +b(xt)522 b(is)h(accomplished)e(with)h(the)h FX(y)f FU(k)-15 +b(e)-23 b(y)522 b(\()44274 8415 y +SDict begin H.S end + 44274 8415 a 44274 +8415 a +SDict begin 18.2 H.A end + 44274 8415 a 44274 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (5639) cvn H.B /DEST pdfmark end + 44274 8415 a FX(y)h +FU(stands)f(for)-30 10430 y(yank\).)438 b(Cop)-15 b(ying)436 +b(the)h(current)g(line)g(is)h(done)f(by)g(typing)31312 +10430 y +SDict begin H.S end + 31312 10430 a 31312 10430 a +SDict begin 18.2 H.A end + 31312 10430 a 31312 +10430 a +SDict begin [ /View [/XYZ H.V] /Dest (5640) cvn H.B /DEST pdfmark end + 31312 10430 a FX(yy)p FU(,)g(and)h(this)f(can)g(be)h(pre\002x) +-23 b(ed)436 b(with)-30 12445 y(a)375 b(number)f(to)h(yank)f(more)h +(lines.)g(Then,)g(mo)-23 b(v)g(e)373 b(to)i(the)g(location)f(for)g(the) +h(cop)-15 b(y)374 b(and)h(hit)47742 12445 y +SDict begin H.S end + 47742 12445 +a 47742 12445 a +SDict begin 18.2 H.A end + 47742 12445 a 47742 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (5641) cvn H.B /DEST pdfmark end + 47742 12445 +a FX(p)p FU(.)g(The)-30 14459 y(te)-23 b(xt)387 b(is)g(pasted)g(on)g +(the)g(line)g(after)h(the)f(current)g(one.)-30 15570 +y +SDict begin H.S end + -30 15570 a -30 15570 a +SDict begin 18.2 H.A end + -30 15570 a -30 15570 a +SDict begin [ /View [/XYZ H.V] /Dest (5642) cvn H.B /DEST pdfmark end + -30 +15570 a 1679 x FU(Cutting)310 b(te)-23 b(xt)311 b(is)h(done)f(by)h +(typing)18349 17249 y +SDict begin H.S end + 18349 17249 a 18349 17249 a +SDict begin 18.2 H.A end + 18349 +17249 a 18349 17249 a +SDict begin [ /View [/XYZ H.V] /Dest (5643) cvn H.B /DEST pdfmark end + 18349 17249 a FX(dd)p FU(,)g(and)23321 +17249 y +SDict begin H.S end + 23321 17249 a 23321 17249 a +SDict begin 18.2 H.A end + 23321 17249 a 23321 +17249 a +SDict begin [ /View [/XYZ H.V] /Dest (5644) cvn H.B /DEST pdfmark end + 23321 17249 a FX(p)f FU(can)h(be)g(used)f(to)g(paste)h(the)f +(cut)h(te)-23 b(xt)311 b(back)g(into)g(the)-30 19264 +y(\002le.)468 b(Reading)e(in)h(te)-23 b(xt)467 b(from)g(another)g +(\002le)g(is)h(a)f(simple)g(procedure.)g(Just)g(type)44246 +19264 y +SDict begin H.S end + 44246 19264 a 44246 19264 a +SDict begin 18.2 H.A end + 44246 19264 a 44246 +19264 a +SDict begin [ /View [/XYZ H.V] /Dest (5645) cvn H.B /DEST pdfmark end + 44246 19264 a FX(:r)p FU(,)h(follo)-39 b(wed)-30 +21278 y(by)401 b(a)g(space)h(and)f(the)g(\002le)g(name)g(that)g +(contains)f(the)h(te)-23 b(xt)401 b(to)g(be)g(inserted.)g(The)g +(\002le')-85 b(s)401 b(contents)-30 23293 y(will)388 +b(be)g(pasted)g(into)g(the)g(current)g(b)-31 b(uf)-39 +b(fer)388 b(on)g(the)h(line)e(after)i(the)f(cursor)-85 +b(.)388 b(More)g(sophisticated)-30 25308 y +SDict begin H.S end + -30 25308 +a -30 25308 a +SDict begin 18.2 H.A end + -30 25308 a -30 25308 a +SDict begin [ /View [/XYZ H.V] /Dest (5646) cvn H.B /DEST pdfmark end + -30 25308 a FP(vi)f +FU(clones)g(e)-39 b(v)-23 b(en)388 b(contain)e(\002lename)h(completion) +f(similar)h(to)g(the)g(shell')-85 b(s.)-30 26418 y +SDict begin H.S end + -30 +26418 a -30 26418 a +SDict begin 18.2 H.A end + -30 26418 a -30 26418 a +SDict begin [ /View [/XYZ H.V] /Dest (5647) cvn H.B /DEST pdfmark end + -30 26418 +a 1679 x FU(The)485 b(\002nal)g(use)g(that)g(will)g(be)g(co)-23 +b(v)g(ered)485 b(is)f(searching.)i(Command)e(mode)h(allo)-39 +b(ws)484 b(for)i(simple)-30 30112 y(searching,)412 b(as)f(well)g(as)h +(complicated)e(search-and-replace)i(commands)e(that)h(mak)-15 +b(e)411 b(use)g(of)h(a)-30 32126 y(po)-39 b(werful)501 +b(v)-23 b(ersion)499 b(of)i(re)-23 b(gular)500 b(e)-23 +b(xpressions.)500 b(A)h(complete)f(discussion)f(of)i(re)-23 +b(gular)500 b(e)-23 b(xpres-)-30 34141 y(sions)302 b(is)h(be)-23 +b(yond)302 b(the)h(scope)g(of)g(this)f(chapter)-62 b(,)303 +b(so)g(this)f(section)h(will)f(only)h(co)-23 b(v)g(er)302 +b(simple)g(means)-30 36156 y(of)387 b(searching.)-30 +37266 y +SDict begin H.S end + -30 37266 a -30 37266 a +SDict begin 18.2 H.A end + -30 37266 a -30 37266 +a +SDict begin [ /View [/XYZ H.V] /Dest (5648) cvn H.B /DEST pdfmark end + -30 37266 a 1679 x FU(A)451 b(simple)f(search)i(is)e(accomplished)h +(by)f(hitting)g(the)29836 38945 y +SDict begin H.S end + 29836 38945 a 29836 +38945 a +SDict begin 18.2 H.A end + 29836 38945 a 29836 38945 a +SDict begin [ /View [/XYZ H.V] /Dest (5649) cvn H.B /DEST pdfmark end + 29836 38945 a FX(/)h +FU(k)-15 b(e)-23 b(y)-101 b(,)451 b(follo)-39 b(wed)451 +b(by)g(the)g(te)-23 b(xt)450 b(that)h(you)-30 40960 y(are)432 +b(searching)g(for)-85 b(.)11206 40960 y +SDict begin H.S end + 11206 40960 a +11206 40960 a +SDict begin 18.2 H.A end + 11206 40960 a 11206 40960 a +SDict begin [ /View [/XYZ H.V] /Dest (5650) cvn H.B /DEST pdfmark end + 11206 40960 +a FP(vi)431 b FU(will)h(search)g(forw)-15 b(ard)431 b(from)h(the)f +(cursor)h(to)g(the)f(end)h(of)g(the)f(\002le)h(for)g(a)-30 +42975 y(match,)460 b(stopping)e(when)i(it)f(\002nds)g(one.)h(Note)f +(that)h(ine)-23 b(xact)459 b(matches)g(will)g(cause)45580 +42975 y +SDict begin H.S end + 45580 42975 a 45580 42975 a +SDict begin 18.2 H.A end + 45580 42975 a 45580 +42975 a +SDict begin [ /View [/XYZ H.V] /Dest (5651) cvn H.B /DEST pdfmark end + 45580 42975 a FP(vi)g FU(to)g(stop)-30 44989 +y(as)370 b(well.)g(F)-23 b(or)369 b(e)-23 b(xample,)370 +b(a)g(search)g(for)21104 44989 y +SDict begin H.S end + 21104 44989 a 21104 +44989 a +SDict begin 18.2 H.A end + 21104 44989 a 21104 44989 a +SDict begin [ /View [/XYZ H.V] /Dest (5652) cvn H.B /DEST pdfmark end + 21104 44989 a FU(\223)21792 +44989 y +SDict begin H.S end + 21792 44989 a 21792 44989 a +SDict begin 18.2 H.A end + 21792 44989 a 21792 +44989 a +SDict begin [ /View [/XYZ H.V] /Dest (5653) cvn H.B /DEST pdfmark end + 21792 44989 a FR(the)p FU(\224)g(will)f(cause)31337 +44989 y +SDict begin H.S end + 31337 44989 a 31337 44989 a +SDict begin 18.2 H.A end + 31337 44989 a 31337 +44989 a +SDict begin [ /View [/XYZ H.V] /Dest (5654) cvn H.B /DEST pdfmark end + 31337 44989 a FP(vi)h FU(to)f(stop)h(on)39643 +44989 y +SDict begin H.S end + 39643 44989 a 39643 44989 a +SDict begin 18.2 H.A end + 39643 44989 a 39643 +44989 a +SDict begin [ /View [/XYZ H.V] /Dest (5655) cvn H.B /DEST pdfmark end + 39643 44989 a FU(\223)40331 44989 y +SDict begin H.S end + 40331 44989 +a 40331 44989 a +SDict begin 18.2 H.A end + 40331 44989 a 40331 44989 a +SDict begin [ /View [/XYZ H.V] /Dest (5656) cvn H.B /DEST pdfmark end + 40331 44989 +a FR(then)p FU(\224,)44446 44989 y +SDict begin H.S end + 44446 44989 a 44446 +44989 a +SDict begin 18.2 H.A end + 44446 44989 a 44446 44989 a +SDict begin [ /View [/XYZ H.V] /Dest (5657) cvn H.B /DEST pdfmark end + 44446 44989 a FU(\223)45134 +44989 y +SDict begin H.S end + 45134 44989 a 45134 44989 a +SDict begin 18.2 H.A end + 45134 44989 a 45134 +44989 a +SDict begin [ /View [/XYZ H.V] /Dest (5658) cvn H.B /DEST pdfmark end + 45134 44989 a FR(ther)-57 b(efor)g(e)p FU(\224,)-30 +47004 y(and)387 b(so)h(on.)f(This)g(is)g(because)g(all)h(of)f(those)g +(w)-15 b(ords)386 b(do)h(match)34087 47004 y +SDict begin H.S end + 34087 47004 +a 34087 47004 a +SDict begin 18.2 H.A end + 34087 47004 a 34087 47004 a +SDict begin [ /View [/XYZ H.V] /Dest (5659) cvn H.B /DEST pdfmark end + 34087 47004 +a FU(\223)34775 47004 y +SDict begin H.S end + 34775 47004 a 34775 47004 a +SDict begin 18.2 H.A end + 34775 +47004 a 34775 47004 a +SDict begin [ /View [/XYZ H.V] /Dest (5660) cvn H.B /DEST pdfmark end + 34775 47004 a FR(the)p FU(\224.)-30 +47797 y +SDict begin H.S end + -30 47797 a -30 47797 a +SDict begin 18.2 H.A end + -30 47797 a -30 47797 +a +SDict begin [ /View [/XYZ H.V] /Dest (5661) cvn H.B /DEST pdfmark end + -30 47797 a 1996 x FU(After)3629 49793 y +SDict begin H.S end + 3629 49793 +a 3629 49793 a +SDict begin 18.2 H.A end + 3629 49793 a 3629 49793 a +SDict begin [ /View [/XYZ H.V] /Dest (5662) cvn H.B /DEST pdfmark end + 3629 49793 a +FP(vi)i FU(has)f(found)h(the)f(\002rst)g(match,)h(you)g(can)g(continue) +f(on)g(to)h(the)g(ne)-23 b(xt)388 b(match)g(simply)g(by)-30 +51808 y(hitting)456 b(the)6827 51808 y +SDict begin H.S end + 6827 51808 a 6827 +51808 a +SDict begin 18.2 H.A end + 6827 51808 a 6827 51808 a +SDict begin [ /View [/XYZ H.V] /Dest (5663) cvn H.B /DEST pdfmark end + 6827 51808 a FX(/)h +FU(k)-15 b(e)-23 b(y)456 b(follo)-39 b(wed)457 b(by)g(enter)-85 +b(.)458 b(Y)-170 b(ou)456 b(can)i(also)f(search)g(backw)-15 +b(ards)457 b(through)f(the)h(\002le)-30 53823 y(by)352 +b(replacing)g(the)g(slash)f(with)h(the)19042 53823 y +SDict begin H.S end + +19042 53823 a 19042 53823 a +SDict begin 18.2 H.A end + 19042 53823 a 19042 53823 +a +SDict begin [ /View [/XYZ H.V] /Dest (5664) cvn H.B /DEST pdfmark end + 19042 53823 a FX(?)g FU(k)-15 b(e)-23 b(y)-101 b(.)351 +b(F)-23 b(or)352 b(e)-23 b(xample,)352 b(searching)f(backw)-15 +b(ards)352 b(through)f(the)-30 55837 y(\002le)387 b(for)4533 +55837 y +SDict begin H.S end + 4533 55837 a 4533 55837 a +SDict begin 18.2 H.A end + 4533 55837 a 4533 55837 +a +SDict begin [ /View [/XYZ H.V] /Dest (5665) cvn H.B /DEST pdfmark end + 4533 55837 a FU(\223)5221 55837 y +SDict begin H.S end + 5221 55837 a 5221 +55837 a +SDict begin 18.2 H.A end + 5221 55837 a 5221 55837 a +SDict begin [ /View [/XYZ H.V] /Dest (5666) cvn H.B /DEST pdfmark end + 5221 55837 a FR(the)p +FU(\224)g(w)-15 b(ould)386 b(be)i(accomplished)e(by)h(typing)29482 +55837 y +SDict begin H.S end + 29482 55837 a 29482 55837 a +SDict begin 18.2 H.A end + 29482 55837 a 29482 +55837 a +SDict begin [ /View [/XYZ H.V] /Dest (5667) cvn H.B /DEST pdfmark end + 29482 55837 a FX(?the)p FU(.)-30 56948 y +SDict begin H.S end + -30 +56948 a -30 56948 a +SDict begin 18.2 H.A end + -30 56948 a -30 56948 a +SDict begin [ /View [/XYZ H.V] /Dest (VI-MODES-INSET-MODE) cvn H.B +/DEST pdfmark end + -30 56948 +a 5181 x FG(Inser)37 b(t)518 b(Mode)-30 63083 y +SDict begin H.S end + -30 63083 +a -30 63083 a +SDict begin 18.2 H.A end + -30 63083 a -30 63083 a +SDict begin [ /View [/XYZ H.V] /Dest (5670) cvn H.B /DEST pdfmark end + -30 63083 a 1991 +x FU(Inserting)309 b(and)g(replacing)f(te)-23 b(xt)309 +b(is)g(accomplished)f(in)h(insert)g(mode.)g(As)g(pre)-39 +b(viously)308 b(discussed,)-30 67089 y(you)493 b(can)h(get)g(into)f +(insert)g(mode)g(by)h(hitting)25185 67089 y +SDict begin H.S end + 25185 67089 +a 25185 67089 a +SDict begin 18.2 H.A end + 25185 67089 a 25185 67089 a +SDict begin [ /View [/XYZ H.V] /Dest (5671) cvn H.B /DEST pdfmark end + 25185 67089 +a FX(i)g FU(from)f(command)g(mode.)h(Then,)g(all)f(te)-23 +b(xt)493 b(that)p Black 49451 73792 a FR(199)p Black +eop end +%%Page: 200 222 +TeXDict begin 200 221 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.200) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5702) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(16)g(V)-115 b(i)p Black -30 3611 a FU(you)392 b(type)f(is)h(entered)g +(into)f(the)h(current)g(b)-31 b(uf)-39 b(fer)-85 b(.)392 +b(Hitting)f(the)33476 3611 y +SDict begin H.S end + 33476 3611 a 33476 3611 +a +SDict begin 18.2 H.A end + 33476 3611 a 33476 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (5672) cvn H.B /DEST pdfmark end + 33476 3611 a FX(ESCAPE)f +FU(k)-15 b(e)-23 b(y)391 b(tak)-15 b(es)391 b(you)h(back)-30 +5626 y(into)387 b(command)f(mode.)-30 6416 y +SDict begin H.S end + -30 6416 +a -30 6416 a +SDict begin 18.2 H.A end + -30 6416 a -30 6416 a +SDict begin [ /View [/XYZ H.V] /Dest (5673) cvn H.B /DEST pdfmark end + -30 6416 a 1999 x +FU(Replacing)594 b(te)-23 b(xt)593 b(is)h(accomplished)g(in)g(se)-39 +b(v)-23 b(eral)594 b(w)-15 b(ays.)594 b(From)g(command)f(mode,)i +(hitting)51088 8415 y +SDict begin H.S end + 51088 8415 a 51088 8415 a +SDict begin 18.2 H.A end + 51088 +8415 a 51088 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (5674) cvn H.B /DEST pdfmark end + 51088 8415 a FX(r)-30 10430 y FU(will)407 +b(allo)-39 b(w)407 b(you)g(to)g(replace)h(the)f(one)g(character)h +(underneath)f(the)g(cursor)-85 b(.)408 b(Just)e(type)i(the)f(ne)-39 +b(w)-30 12445 y(character)402 b(and)g(it)f(will)g(replace)h(the)f(one)h +(under)f(the)h(cursor)-85 b(.)401 b(Y)-170 b(ou)401 b(will)g(then)h(be) +f(immediately)-30 14459 y(placed)305 b(back)g(into)f(command)h(mode.)g +(Hitting)25517 14459 y +SDict begin H.S end + 25517 14459 a 25517 14459 a +SDict begin 18.2 H.A end + 25517 +14459 a 25517 14459 a +SDict begin [ /View [/XYZ H.V] /Dest (5675) cvn H.B /DEST pdfmark end + 25517 14459 a FX(R)g FU(allo)-39 +b(ws)305 b(you)g(to)f(replace)i(as)e(man)-23 b(y)305 +b(characters)-30 16474 y(as)362 b(you')-77 b(d)361 b(lik)-15 +b(e.)361 b(T)-124 b(o)362 b(get)g(out)f(of)h(this)g(replacement)f +(mode,)h(just)f(hit)36122 16474 y +SDict begin H.S end + 36122 16474 a 36122 +16474 a +SDict begin 18.2 H.A end + 36122 16474 a 36122 16474 a +SDict begin [ /View [/XYZ H.V] /Dest (5676) cvn H.B /DEST pdfmark end + 36122 16474 a FX(ESCAPE)f +FU(to)i(go)g(back)f(into)-30 18489 y(command)387 b(mode.)-30 +19279 y +SDict begin H.S end + -30 19279 a -30 19279 a +SDict begin 18.2 H.A end + -30 19279 a -30 19279 +a +SDict begin [ /View [/XYZ H.V] /Dest (5677) cvn H.B /DEST pdfmark end + -30 19279 a 1999 x FU(There)492 b(is)f(yet)g(another)g(w)-15 +b(ay)491 b(to)g(toggle)g(between)g(insertion)g(and)g(replacement.)h +(Hitting)e(the)-30 23293 y +SDict begin H.S end + -30 23293 a -30 23293 a +SDict begin 18.2 H.A end + -30 +23293 a -30 23293 a +SDict begin [ /View [/XYZ H.V] /Dest (5678) cvn H.B /DEST pdfmark end + -30 23293 a FX(INSER)-62 b(T)526 +b FU(k)-15 b(e)-23 b(y)526 b(from)i(command)e(mode)h(will)g(tak)-15 +b(e)526 b(you)h(into)g(insert)g(mode.)g(Once)h(you)f(are)-30 +25308 y(in)478 b(insert)g(mode,)g(the)g(k)-15 b(e)-23 +b(yboard')-85 b(s)19496 25308 y +SDict begin H.S end + 19496 25308 a 19496 25308 +a +SDict begin 18.2 H.A end + 19496 25308 a 19496 25308 a +SDict begin [ /View [/XYZ H.V] /Dest (5679) cvn H.B /DEST pdfmark end + 19496 25308 a FX(INSER)-62 +b(T)477 b FU(k)-15 b(e)-23 b(y)477 b(serv)-23 b(es)478 +b(as)g(a)g(toggle)g(between)f(insert)h(and)-30 27322 +y(replace.)562 b(Hitting)e(it)g(once)h(will)g(allo)-39 +b(w)561 b(you)g(to)f(replace.)i(Hitting)e(it)h(once)g(more)f(will)h +(once)-30 29337 y(ag)-8 b(ain)388 b(allo)-39 b(w)387 +b(you)g(to)g(insert)g(te)-23 b(xt.)-30 31997 y +SDict begin H.S end + -30 31997 +a -30 31997 a +SDict begin 18.2 H.A end + -30 31997 a -30 31997 a +SDict begin [ /View [/XYZ H.V] /Dest (VI-OPENING-FILES) cvn H.B /DEST +pdfmark end + -30 31997 a 5789 +x FL(16.3)620 b(Opening)f(Files)-30 38283 y +SDict begin H.S end + -30 38283 +a -30 38283 a +SDict begin 18.2 H.A end + -30 38283 a -30 38283 a +SDict begin [ /View [/XYZ H.V] /Dest (5682) cvn H.B /DEST pdfmark end + -30 38283 a -30 +39398 a +SDict begin H.S end + -30 39398 a -30 39398 a +SDict begin 18.2 H.A end + -30 39398 a -30 39398 +a +SDict begin [ /View [/XYZ H.V] /Dest (5685) cvn H.B /DEST pdfmark end + -30 39398 a -30 39398 a +SDict begin H.S end + -30 39398 a -30 39398 a +SDict begin 18.2 H.A end + -30 +39398 a -30 39398 a +SDict begin [ /View [/XYZ H.V] /Dest (5686) cvn H.B /DEST pdfmark end + -30 39398 a 1519 x FP(vi)425 b FU(allo)-39 +b(ws)424 b(you)g(to)h(open)f(\002les)h(from)f(command)g(mode)g(as)h +(well)g(as)f(specifying)g(a)h(\002le)g(on)f(the)-30 42931 +y(command)387 b(line)g(to)g(open.)g(T)-124 b(o)388 b(open)f(the)g +(\002le)24597 42931 y +SDict begin H.S end + 24597 42931 a 24597 42931 a +SDict begin 18.2 H.A end + 24597 +42931 a 24597 42931 a +SDict begin [ /View [/XYZ H.V] /Dest (5687) cvn H.B /DEST pdfmark end + 24597 42931 a FQ(/etc/lilo.conf)p +FU(:)-30 44816 y +SDict begin H.S end + -30 44816 a -30 44816 a +SDict begin 14.56 H.A end + -30 44816 a +-30 44816 a +SDict begin [ /View [/XYZ H.V] /Dest (5688) cvn H.B /DEST pdfmark end + -30 44816 a -30 44816 a +SDict begin H.S end + -30 44816 a -30 44816 +a +SDict begin 14.56 H.A end + -30 44816 a -30 44816 a +SDict begin [ /View [/XYZ H.V] /Dest (5689) cvn H.B /DEST pdfmark end + -30 44816 a 1277 x FH(:e)744 +b(/etc/lilo.conf)-30 47734 y +SDict begin H.S end + -30 47734 a -30 47734 a +SDict begin 18.2 H.A end + +-30 47734 a -30 47734 a +SDict begin [ /View [/XYZ H.V] /Dest (5690) cvn H.B /DEST pdfmark end + -30 47734 a 1923 x FU(If)310 +b(you)f(ha)-31 b(v)-23 b(e)309 b(made)g(changes)g(to)h(the)f(current)g +(b)-31 b(uf)-39 b(fer)310 b(without)e(sa)-31 b(ving,)38295 +49657 y +SDict begin H.S end + 38295 49657 a 38295 49657 a +SDict begin 18.2 H.A end + 38295 49657 a 38295 +49657 a +SDict begin [ /View [/XYZ H.V] /Dest (5691) cvn H.B /DEST pdfmark end + 38295 49657 a FP(vi)309 b FU(will)g(complain.)g(Y)-170 +b(ou)-30 51672 y(can)504 b(still)f(open)g(the)h(\002le)f(without)g(sa) +-31 b(ving)503 b(the)g(current)h(b)-31 b(uf)-39 b(fer)504 +b(by)g(typing)41640 51672 y +SDict begin H.S end + 41640 51672 a 41640 51672 +a +SDict begin 18.2 H.A end + 41640 51672 a 41640 51672 a +SDict begin [ /View [/XYZ H.V] /Dest (5692) cvn H.B /DEST pdfmark end + 41640 51672 a FX(:e!)p +FU(,)h(follo)-39 b(wed)503 b(by)-30 53686 y(a)419 b(space)f(and)h(the)f +(\002lename.)g(In)h(general,)23125 53686 y +SDict begin H.S end + 23125 53686 +a 23125 53686 a +SDict begin 18.2 H.A end + 23125 53686 a 23125 53686 a +SDict begin [ /View [/XYZ H.V] /Dest (5693) cvn H.B /DEST pdfmark end + 23125 53686 +a FP(vi)p FU(')-85 b(s)418 b(w)-15 b(arnings)418 b(can)g(be)h +(suppressed)e(by)i(follo)-39 b(wing)-30 55701 y(the)387 +b(command)g(with)g(an)g(e)-23 b(xclamation)386 b(mark.)-30 +56491 y +SDict begin H.S end + -30 56491 a -30 56491 a +SDict begin 18.2 H.A end + -30 56491 a -30 56491 +a +SDict begin [ /View [/XYZ H.V] /Dest (5694) cvn H.B /DEST pdfmark end + -30 56491 a 2000 x FU(If)522 b(you)f(w)-15 b(ant)520 +b(to)h(reopen)h(the)f(current)g(\002le,)h(you)f(can)g(do)g(so)g(simply) +g(by)g(typing)45352 58491 y +SDict begin H.S end + 45352 58491 a 45352 58491 +a +SDict begin 18.2 H.A end + 45352 58491 a 45352 58491 a +SDict begin [ /View [/XYZ H.V] /Dest (5695) cvn H.B /DEST pdfmark end + 45352 58491 a FX(e!)p FU(.)h(This)f(is) +-30 60505 y(particularly)387 b(useful)g(if)g(you)g(ha)-31 +b(v)-23 b(e)387 b(someho)-39 b(w)387 b(messed)g(up)g(the)g(\002le)g +(and)g(w)-15 b(ant)387 b(to)g(reopen)g(it.)-30 61616 +y +SDict begin H.S end + -30 61616 a -30 61616 a +SDict begin 18.2 H.A end + -30 61616 a -30 61616 a +SDict begin [ /View [/XYZ H.V] /Dest (5696) cvn H.B /DEST pdfmark end + -30 +61616 a 1679 x FU(Some)3871 63295 y +SDict begin H.S end + 3871 63295 a 3871 +63295 a +SDict begin 18.2 H.A end + 3871 63295 a 3871 63295 a +SDict begin [ /View [/XYZ H.V] /Dest (5697) cvn H.B /DEST pdfmark end + 3871 63295 a FP(vi)371 +b FU(clones)g(\(for)g(e)-23 b(xample,)18741 63295 y +SDict begin H.S end + 18741 +63295 a 18741 63295 a +SDict begin 18.2 H.A end + 18741 63295 a 18741 63295 a +SDict begin [ /View [/XYZ H.V] /Dest (5698) cvn H.B /DEST pdfmark end + 18741 +63295 a FP(vim)p FU(\))371 b(allo)-39 b(w)371 b(for)g(multiple)e(b)-31 +b(uf)-39 b(fers)372 b(to)e(be)i(open)e(at)h(the)g(same)-30 +65310 y(time.)332 b(F)-23 b(or)330 b(e)-23 b(xample,)332 +b(to)f(open)g(up)h(the)f(\002le)23152 65310 y +SDict begin H.S end + 23152 65310 +a 23152 65310 a +SDict begin 18.2 H.A end + 23152 65310 a 23152 65310 a +SDict begin [ /View [/XYZ H.V] /Dest (5699) cvn H.B /DEST pdfmark end + 23152 65310 +a FQ(09-)55 b(vi.sgml)326 b FU(in)331 b(my)g(home)g(directory)g(while)g +(another)-30 67324 y(\002le)387 b(w)-15 b(as)387 b(open,)g(I)h(w)-15 +b(ould)386 b(type:)p Black -30 73792 a FR(200)p Black +eop end +%%Page: 201 223 +TeXDict begin 201 222 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.201) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 43108 -1636 a FR(Chapter)387 b(16)g(V)-115 +b(i)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 +a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5700) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 +a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5701) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FH(:split)743 +b(~/09-vi.sgml)-30 7176 y FU(The)439 b(ne)-39 b(w)440 +b(\002le)e(is)h(displayed)g(on)g(the)g(top)g(half)g(of)g(the)g(screen,) +h(and)f(the)g(old)g(\002le)g(is)g(displayed)-30 9190 +y(in)495 b(the)h(bottom)e(half)h(of)h(the)f(screen.)h(There)f(are)h(a)g +(lot)f(of)g(commands)g(that)g(manipulate)f(the)-30 11205 +y(split)386 b(screen,)h(and)f(man)-23 b(y)386 b(of)g(these)g(commands)g +(start)g(to)g(resemble)g(something)f(out)h(of)g FP(Emacs)-30 +13220 y FU(The)363 b(best)g(place)g(to)g(look)g(up)g(these)f(commands)h +(w)-15 b(ould)362 b(be)h(the)g(man)g(page)g(for)g(your)g(vi)g(clone.) +-30 15234 y(Note)370 b(that)g(man)-23 b(y)370 b(clones)g(do)g(not)g +(support)g(the)g(split-screen)g(idea,)h(so)f(you)g(might)g(not)g(be)g +(able)-30 17249 y(to)387 b(use)g(it)h(at)f(all.)-30 18039 +y +SDict begin H.S end + -30 18039 a -30 18039 a +SDict begin 18.2 H.A end + -30 18039 a -30 18039 a +SDict begin [ /View [/XYZ H.V] /Dest (VI-SAVING-FILES) cvn H.B /DEST +pdfmark end + -30 +18039 a 6109 x FL(16.4)620 b(Sa)-33 b(ving)620 b(Files)-30 +24645 y +SDict begin H.S end + -30 24645 a -30 24645 a +SDict begin 18.2 H.A end + -30 24645 a -30 24645 +a +SDict begin [ /View [/XYZ H.V] /Dest (5706) cvn H.B /DEST pdfmark end + -30 24645 a -30 25761 a +SDict begin H.S end + -30 25761 a -30 25761 a +SDict begin 18.2 H.A end + -30 +25761 a -30 25761 a +SDict begin [ /View [/XYZ H.V] /Dest (5709) cvn H.B /DEST pdfmark end + -30 25761 a 1518 x FU(There)457 b(are)g(se)-39 +b(v)-23 b(eral)457 b(w)-15 b(ays)457 b(to)f(sa)-31 b(v)-23 +b(e)457 b(\002les)g(in)24323 27279 y +SDict begin H.S end + 24323 27279 a 24323 +27279 a +SDict begin 18.2 H.A end + 24323 27279 a 24323 27279 a +SDict begin [ /View [/XYZ H.V] /Dest (5710) cvn H.B /DEST pdfmark end + 24323 27279 a FP(vi)p +FU(.)h(If)f(you)f(w)-15 b(ant)457 b(to)f(sa)-31 b(v)-23 +b(e)457 b(the)g(current)g(b)-31 b(uf)-39 b(fer)457 b(to)-30 +29293 y(the)387 b(\002le)4619 29293 y +SDict begin H.S end + 4619 29293 a 4619 +29293 a +SDict begin 18.2 H.A end + 4619 29293 a 4619 29293 a +SDict begin [ /View [/XYZ H.V] /Dest (5711) cvn H.B /DEST pdfmark end + 4619 29293 a FQ(randomness)p +FU(,)382 b(you)387 b(w)-15 b(ould)386 b(type:)-30 31179 +y +SDict begin H.S end + -30 31179 a -30 31179 a +SDict begin 14.56 H.A end + -30 31179 a -30 31179 a +SDict begin [ /View [/XYZ H.V] /Dest (5712) cvn H.B /DEST pdfmark end + -30 +31179 a -30 31179 a +SDict begin H.S end + -30 31179 a -30 31179 a +SDict begin 14.56 H.A end + -30 31179 +a -30 31179 a +SDict begin [ /View [/XYZ H.V] /Dest (5713) cvn H.B /DEST pdfmark end + -30 31179 a 1276 x FH(:w)744 b(randomness)-30 +34029 y +SDict begin H.S end + -30 34029 a -30 34029 a +SDict begin 18.2 H.A end + -30 34029 a -30 34029 +a +SDict begin [ /View [/XYZ H.V] /Dest (5714) cvn H.B /DEST pdfmark end + -30 34029 a 1990 x FU(Once)605 b(you')-77 b(v)-23 b(e)603 +b(sa)-31 b(v)-23 b(ed)604 b(the)g(\002le)g(once,)h(sa)-31 +b(ving)604 b(it)g(ag)-8 b(ain)604 b(is)h(as)f(simple)g(as)g(typing) +46504 36019 y +SDict begin H.S end + 46504 36019 a 46504 36019 a +SDict begin 18.2 H.A end + 46504 36019 +a 46504 36019 a +SDict begin [ /View [/XYZ H.V] /Dest (5715) cvn H.B /DEST pdfmark end + 46504 36019 a FX(:w)p FU(.)g(An)-23 b(y)-30 +38034 y(changes)445 b(will)g(be)h(written)e(out)h(to)h(the)f(\002le.)g +(After)h(you')-77 b(v)-23 b(e)444 b(sa)-31 b(v)-23 b(ed)445 +b(the)g(\002le,)h(you)f(are)h(dumped)-30 40049 y(back)431 +b(into)f(command)h(mode.)f(If)i(you)e(w)-15 b(ant)430 +b(to)h(sa)-31 b(v)-23 b(e)431 b(the)f(\002le)h(and)g(quit)39636 +40049 y +SDict begin H.S end + 39636 40049 a 39636 40049 a +SDict begin 18.2 H.A end + 39636 40049 a 39636 +40049 a +SDict begin [ /View [/XYZ H.V] /Dest (5716) cvn H.B /DEST pdfmark end + 39636 40049 a FP(vi)g FU(\(a)g(v)-23 b(ery)431 +b(common)-30 42063 y(operation\),)444 b(you)f(w)-15 b(ould)443 +b(type)17354 42063 y +SDict begin H.S end + 17354 42063 a 17354 42063 a +SDict begin 18.2 H.A end + 17354 +42063 a 17354 42063 a +SDict begin [ /View [/XYZ H.V] /Dest (5717) cvn H.B /DEST pdfmark end + 17354 42063 a FX(:wq)p FU(.)h(That)g(tells)26994 +42063 y +SDict begin H.S end + 26994 42063 a 26994 42063 a +SDict begin 18.2 H.A end + 26994 42063 a 26994 +42063 a +SDict begin [ /View [/XYZ H.V] /Dest (5718) cvn H.B /DEST pdfmark end + 26994 42063 a FP(vi)f FU(to)h(sa)-31 b(v)-23 +b(e)443 b(the)h(current)g(\002le)f(and)h(quit)f(back)-30 +44078 y(to)387 b(the)g(shell.)-30 44868 y +SDict begin H.S end + -30 44868 a +-30 44868 a +SDict begin 18.2 H.A end + -30 44868 a -30 44868 a +SDict begin [ /View [/XYZ H.V] /Dest (5719) cvn H.B /DEST pdfmark end + -30 44868 a 2000 +x FU(On)395 b(occasion,)f(you)h(w)-15 b(ant)394 b(to)g(sa)-31 +b(v)-23 b(e)395 b(a)g(\002le)f(that)g(is)h(mark)-15 b(ed)394 +b(as)h(read-only)-101 b(.)395 b(Y)-170 b(ou)394 b(can)g(do)h(this)f(by) +-30 48882 y(adding)387 b(an)g(e)-23 b(xclamation)387 +b(point)f(after)i(the)f(write)g(command,)g(lik)-15 b(e)387 +b(so:)-30 50767 y +SDict begin H.S end + -30 50767 a -30 50767 a +SDict begin 14.56 H.A end + -30 50767 a +-30 50767 a +SDict begin [ /View [/XYZ H.V] /Dest (5720) cvn H.B /DEST pdfmark end + -30 50767 a -30 50767 a +SDict begin H.S end + -30 50767 a -30 50767 +a +SDict begin 14.56 H.A end + -30 50767 a -30 50767 a +SDict begin [ /View [/XYZ H.V] /Dest (5721) cvn H.B /DEST pdfmark end + -30 50767 a 1277 x FH(:w!)-30 +53618 y +SDict begin H.S end + -30 53618 a -30 53618 a +SDict begin 18.2 H.A end + -30 53618 a -30 53618 +a +SDict begin [ /View [/XYZ H.V] /Dest (5722) cvn H.B /DEST pdfmark end + -30 53618 a 1990 x FU(Ho)-39 b(we)g(v)-23 b(er)-62 +b(,)438 b(there)f(will)f(still)h(be)g(instances)f(where)h(you)g(cannot) +g(write)f(the)h(\002le)g(\(for)g(e)-23 b(xample,)-30 +57623 y(you)414 b(are)h(attempting)f(to)g(edit)g(a)h(\002le)f(that)h +(is)f(o)-39 b(wned)415 b(by)f(another)g(user\).)h(When)g(this)f +(happens,)-30 59637 y +SDict begin H.S end + -30 59637 a -30 59637 a +SDict begin 18.2 H.A end + -30 59637 +a -30 59637 a +SDict begin [ /View [/XYZ H.V] /Dest (5723) cvn H.B /DEST pdfmark end + -30 59637 a FP(vi)442 b FU(will)g(tell)g(you)f(that)h(it) +g(cannot)g(sa)-31 b(v)-23 b(e)442 b(the)g(\002le.)g(If)h(you)f(really)f +(w)-15 b(ant)442 b(to)g(edit)g(the)g(\002le,)g(you')-15 +b(ll)-30 61652 y(ha)-31 b(v)-23 b(e)387 b(to)g(come)g(back)h(and)f +(edit)g(it)g(as)20145 61652 y +SDict begin H.S end + 20145 61652 a 20145 61652 +a +SDict begin 18.2 H.A end + 20145 61652 a 20145 61652 a +SDict begin [ /View [/XYZ H.V] /Dest (5724) cvn H.B /DEST pdfmark end + 20145 61652 a FP(root)f +FU(or)i(\(preferably\))f(the)g(o)-39 b(wner)388 b(of)f(that)g(\002le.) +-30 62762 y +SDict begin H.S end + -30 62762 a -30 62762 a +SDict begin 18.2 H.A end + -30 62762 a -30 62762 +a +SDict begin [ /View [/XYZ H.V] /Dest (VI-QUITTING-VI) cvn H.B /DEST +pdfmark end + -30 62762 a Black 49451 73792 a FR(201)p Black eop +end +%%Page: 202 224 +TeXDict begin 202 223 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.202) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (5761) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(16)g(V)-115 b(i)p Black -30 4132 a FL(16.5)620 b(Quitting)g(vi)-30 +4629 y +SDict begin H.S end + -30 4629 a -30 4629 a +SDict begin 18.2 H.A end + -30 4629 a -30 4629 a +SDict begin [ /View [/XYZ H.V] /Dest (5727) cvn H.B /DEST pdfmark end + -30 +4629 a -30 5744 a +SDict begin H.S end + -30 5744 a -30 5744 a +SDict begin 18.2 H.A end + -30 5744 a -30 +5744 a +SDict begin [ /View [/XYZ H.V] /Dest (5730) cvn H.B /DEST pdfmark end + -30 5744 a 1519 x FU(One)317 b(w)-15 b(ay)315 +b(to)i(quit)10002 7263 y +SDict begin H.S end + 10002 7263 a 10002 7263 a +SDict begin 18.2 H.A end + 10002 +7263 a 10002 7263 a +SDict begin [ /View [/XYZ H.V] /Dest (5731) cvn H.B /DEST pdfmark end + 10002 7263 a FP(vi)f FU(is)g(through)18294 +7263 y +SDict begin H.S end + 18294 7263 a 18294 7263 a +SDict begin 18.2 H.A end + 18294 7263 a 18294 7263 +a +SDict begin [ /View [/XYZ H.V] /Dest (5732) cvn H.B /DEST pdfmark end + 18294 7263 a FX(:wq)p FU(,)g(which)h(will)e(sa)-31 +b(v)-23 b(e)317 b(the)f(current)g(b)-31 b(uf)-39 b(fer)317 +b(before)g(quitting.)-30 9277 y(Y)-170 b(ou)364 b(can)i(also)e(quit)h +(without)f(sa)-31 b(ving)364 b(with)23590 9277 y +SDict begin H.S end + 23590 +9277 a 23590 9277 a +SDict begin 18.2 H.A end + 23590 9277 a 23590 9277 a +SDict begin [ /View [/XYZ H.V] /Dest (5733) cvn H.B /DEST pdfmark end + 23590 9277 +a FX(:q)h FU(or)g(\(more)f(commonly\))38565 9277 y +SDict begin H.S end + 38565 +9277 a 38565 9277 a +SDict begin 18.2 H.A end + 38565 9277 a 38565 9277 a +SDict begin [ /View [/XYZ H.V] /Dest (5734) cvn H.B /DEST pdfmark end + 38565 9277 +a FX(:q!)p FU(.)i(The)f(latter)f(is)h(used)-30 11292 +y(when)387 b(you')-77 b(v)-23 b(e)387 b(modi\002ed)f(the)h(\002le)g(b) +-31 b(ut)387 b(do)g(not)g(wish)g(to)g(sa)-31 b(v)-23 +b(e)387 b(an)-23 b(y)387 b(changes)g(to)h(it.)-30 12402 +y +SDict begin H.S end + -30 12402 a -30 12402 a +SDict begin 18.2 H.A end + -30 12402 a -30 12402 a +SDict begin [ /View [/XYZ H.V] /Dest (5735) cvn H.B /DEST pdfmark end + -30 +12402 a 1679 x FU(On)342 b(occasion,)h(your)f(machine)g(might)g(crash)g +(or)26341 14081 y +SDict begin H.S end + 26341 14081 a 26341 14081 a +SDict begin 18.2 H.A end + 26341 14081 +a 26341 14081 a +SDict begin [ /View [/XYZ H.V] /Dest (5736) cvn H.B /DEST pdfmark end + 26341 14081 a FP(vi)g FU(might)g(crash.)h(Ho)-39 +b(we)g(v)-23 b(er)-62 b(,)343 b(both)45476 14081 y +SDict begin H.S end + 45476 +14081 a 45476 14081 a +SDict begin 18.2 H.A end + 45476 14081 a 45476 14081 a +SDict begin [ /View [/XYZ H.V] /Dest (5737) cvn H.B /DEST pdfmark end + 45476 +14081 a FP(elvis)f FU(and)-30 16096 y +SDict begin H.S end + -30 16096 a -30 +16096 a +SDict begin 18.2 H.A end + -30 16096 a -30 16096 a +SDict begin [ /View [/XYZ H.V] /Dest (5738) cvn H.B /DEST pdfmark end + -30 16096 a FP(vim)475 +b FU(will)f(tak)-15 b(e)475 b(steps)f(to)h(minimize)f(the)h(damage)g +(to)f(an)-23 b(y)475 b(open)g(b)-31 b(uf)-39 b(fers.)475 +b(Both)g(editors)f(sa)-31 b(v)-23 b(e)-30 18111 y(the)363 +b(open)g(b)-31 b(uf)-39 b(fers)364 b(to)f(a)g(temporary)g(\002le)g(on)g +(occasion.)h(This)f(\002le)f(is)i(usually)e(named)h(similarly)-30 +20125 y(to)387 b(the)g(open)h(\002le,)f(b)-31 b(ut)387 +b(with)g(a)g(dot)g(at)h(the)f(be)-23 b(ginning.)386 b(This)h(mak)-15 +b(es)387 b(the)g(\002le)g(hidden.)-30 21236 y +SDict begin H.S end + -30 21236 +a -30 21236 a +SDict begin 18.2 H.A end + -30 21236 a -30 21236 a +SDict begin [ /View [/XYZ H.V] /Dest (5739) cvn H.B /DEST pdfmark end + -30 21236 a 1679 +x FU(This)321 b(temporary)g(\002le)g(gets)g(remo)-23 +b(v)g(ed)321 b(once)g(the)h(editor)f(quits)f(under)i(normal)f +(conditions.)f(This)-30 24930 y(means)413 b(that)h(the)f(temporary)g +(cop)-15 b(y)413 b(will)h(still)e(be)i(around)g(if)f(something)g +(crashes.)h(When)f(you)-30 26944 y(go)d(back)h(to)f(edit)g(the)g +(\002le)g(ag)-8 b(ain,)411 b(you)f(will)g(be)h(prompted)e(for)i(what)f +(action)g(to)g(tak)-15 b(e.)410 b(In)h(most)-30 28959 +y(cases,)421 b(a)f(lar)-28 b(ge)420 b(amount)g(of)g(your)g(unsa)-31 +b(v)-23 b(ed)420 b(w)-15 b(ork)419 b(can)h(be)h(reco)-23 +b(v)g(ered.)39047 28959 y +SDict begin H.S end + 39047 28959 a 39047 28959 a +SDict begin 18.2 H.A end + +39047 28959 a 39047 28959 a +SDict begin [ /View [/XYZ H.V] /Dest (5740) cvn H.B /DEST pdfmark end + 39047 28959 a FP(elvis)420 +b FU(will)f(also)h(send)-30 30974 y(you)387 b(a)h(mail)f(\(from)g +(Graceland,)g(oddly)g(enough)g(:\))g(telling)g(you)g(that)g(a)g(backup) +g(cop)-15 b(y)387 b(e)-23 b(xists.)-30 32084 y +SDict begin H.S end + -30 32084 +a -30 32084 a +SDict begin 18.2 H.A end + -30 32084 a -30 32084 a +SDict begin [ /View [/XYZ H.V] /Dest (VI-CONFIGURATION) cvn H.B /DEST +pdfmark end + -30 32084 a 5789 +x FL(16.6)620 b(vi)h(Con\002guration)-30 38370 y +SDict begin H.S end + -30 +38370 a -30 38370 a +SDict begin 18.2 H.A end + -30 38370 a -30 38370 a +SDict begin [ /View [/XYZ H.V] /Dest (5743) cvn H.B /DEST pdfmark end + -30 38370 +a -30 39485 a +SDict begin H.S end + -30 39485 a -30 39485 a +SDict begin 18.2 H.A end + -30 39485 a -30 +39485 a +SDict begin [ /View [/XYZ H.V] /Dest (5746) cvn H.B /DEST pdfmark end + -30 39485 a 1519 x FU(Y)-170 b(our)3372 41004 +y +SDict begin H.S end + 3372 41004 a 3372 41004 a +SDict begin 18.2 H.A end + 3372 41004 a 3372 41004 a +SDict begin [ /View [/XYZ H.V] /Dest (5747) cvn H.B /DEST pdfmark end + +3372 41004 a FP(vi)387 b FU(clone)g(of)g(choice)h(can)f(be)h +(con\002gured)e(in)h(se)-39 b(v)-23 b(eral)388 b(w)-15 +b(ays.)-30 42114 y +SDict begin H.S end + -30 42114 a -30 42114 a +SDict begin 18.2 H.A end + -30 42114 +a -30 42114 a +SDict begin [ /View [/XYZ H.V] /Dest (5748) cvn H.B /DEST pdfmark end + -30 42114 a 1679 x FU(A)325 b(v)-39 b(ariety)325 +b(of)g(commands)f(can)h(be)h(entered)f(while)f(in)h(command)f(mode)h +(to)g(set)g(up)44769 43793 y +SDict begin H.S end + 44769 43793 a 44769 43793 +a +SDict begin 18.2 H.A end + 44769 43793 a 44769 43793 a +SDict begin [ /View [/XYZ H.V] /Dest (5749) cvn H.B /DEST pdfmark end + 44769 43793 a FP(vi)f FU(just)h(ho)-39 +b(w)-30 45808 y(you)337 b(lik)-15 b(e)336 b(it.)h(Depending)g(on)f +(your)h(editor)-62 b(,)337 b(you)g(can)g(enable)g(features)g(to)g(mak) +-15 b(e)336 b(programming)-30 47823 y(easier)381 b(\(lik)-15 +b(e)380 b(syntax)g(hilighting,)g(auto-indenting,)f(and)i(more\),)g(set) +g(up)f(macros)h(to)f(automak)-15 b(e)-30 49837 y(tasks,)387 +b(enable)h(te)-23 b(xtual)386 b(substitutions,)g(and)h(more.)-30 +50836 y +SDict begin H.S end + -30 50836 a -30 50836 a +SDict begin 18.2 H.A end + -30 50836 a -30 50836 +a +SDict begin [ /View [/XYZ H.V] /Dest (5750) cvn H.B /DEST pdfmark end + -30 50836 a 1791 x FU(Almost)576 b(all)g(of)g(these)h(commands)e(can) +i(be)g(put)f(into)g(a)g(con\002guration)g(\002le)g(in)g(your)g(home)-30 +54641 y(directory)-101 b(.)6160 54641 y +SDict begin H.S end + 6160 54641 a +6160 54641 a +SDict begin 18.2 H.A end + 6160 54641 a 6160 54641 a +SDict begin [ /View [/XYZ H.V] /Dest (5751) cvn H.B /DEST pdfmark end + 6160 54641 a FP(elvis)309 +b FU(e)-23 b(xpects)308 b(a)16120 54641 y +SDict begin H.S end + 16120 54641 +a 16120 54641 a +SDict begin 18.2 H.A end + 16120 54641 a 16120 54641 a +SDict begin [ /View [/XYZ H.V] /Dest (5752) cvn H.B /DEST pdfmark end + 16120 54641 +a FQ(.exrc)e FU(\002le,)j(while)25990 54641 y +SDict begin H.S end + 25990 54641 +a 25990 54641 a +SDict begin 18.2 H.A end + 25990 54641 a 25990 54641 a +SDict begin [ /View [/XYZ H.V] /Dest (5753) cvn H.B /DEST pdfmark end + 25990 54641 +a FP(vim)g FU(e)-23 b(xpects)309 b(a)34462 54641 y +SDict begin H.S end + 34462 +54641 a 34462 54641 a +SDict begin 18.2 H.A end + 34462 54641 a 34462 54641 a +SDict begin [ /View [/XYZ H.V] /Dest (5754) cvn H.B /DEST pdfmark end + 34462 +54641 a FQ(.vimrc)c FU(\002le.)k(Most)f(of)h(the)g(setup)-30 +56656 y(commands)369 b(that)g(can)h(be)g(entered)f(in)h(command)f(mode) +g(can)h(be)g(placed)f(in)h(the)f(con\002guration)-30 +58671 y(\002le.)388 b(This)e(includes)h(setup)g(information,)g(te)-23 +b(xtual)386 b(substitutions,)g(macros,)h(and)h(more.)-30 +59781 y +SDict begin H.S end + -30 59781 a -30 59781 a +SDict begin 18.2 H.A end + -30 59781 a -30 59781 +a +SDict begin [ /View [/XYZ H.V] /Dest (5755) cvn H.B /DEST pdfmark end + -30 59781 a 1679 x FU(Discussing)471 b(all)g(these)h(options)f(and)h +(the)f(dif)-39 b(ferences)473 b(between)e(the)h(editors)f(is)h(quite)f +(an)h(in-)-30 63475 y(v)-31 b(olv)-23 b(ed)434 b(subject.)h(F)-23 +b(or)434 b(more)h(information,)f(check)h(out)f(the)h(man)f(page)h(or)g +(web)g(site)f(for)h(your)-30 65490 y(preferred)5979 65490 +y +SDict begin H.S end + 5979 65490 a 5979 65490 a +SDict begin 18.2 H.A end + 5979 65490 a 5979 65490 a +SDict begin [ /View [/XYZ H.V] /Dest (5756) cvn H.B /DEST pdfmark end + +5979 65490 a FP(vi)330 b FU(editor)-85 b(.)330 b(Some)g(editors)g +(\(lik)-15 b(e)23611 65490 y +SDict begin H.S end + 23611 65490 a 23611 65490 +a +SDict begin 18.2 H.A end + 23611 65490 a 23611 65490 a +SDict begin [ /View [/XYZ H.V] /Dest (5757) cvn H.B /DEST pdfmark end + 23611 65490 a FP(vim)p +FU(\))330 b(ha)-31 b(v)-23 b(e)330 b(e)-23 b(xtensi)-39 +b(v)-23 b(e)330 b(help)g(within)g(the)g(editor)g(that)p +Black -30 73792 a FR(202)p Black eop end +%%Page: 203 225 +TeXDict begin 203 224 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.203) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 43108 -1636 a FR(Chapter)387 b(16)g(V)-115 +b(i)p Black -30 3611 a FU(can)396 b(be)g(accessed)g(with)f(the)15634 +3611 y +SDict begin H.S end + 15634 3611 a 15634 3611 a +SDict begin 18.2 H.A end + 15634 3611 a 15634 3611 +a +SDict begin [ /View [/XYZ H.V] /Dest (5758) cvn H.B /DEST pdfmark end + 15634 3611 a FX(:help)g FU(command,)h(or)g(something)f(similar)-85 +b(.)395 b(Y)-170 b(ou)395 b(can)h(also)g(check)-30 5626 +y(out)387 b(the)g(O'Reilly)g(book)13918 5626 y +SDict begin H.S end + 13918 +5626 a 13918 5626 a +SDict begin 18.2 H.A end + 13918 5626 a 13918 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (5759) cvn H.B /DEST pdfmark end + 13918 5626 +a FR(Learning)f(the)22269 5626 y +SDict begin H.S end + 22269 5626 a 22269 5626 +a +SDict begin 18.2 H.A end + 22269 5626 a 22269 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (5760) cvn H.B /DEST pdfmark end + 22269 5626 a Fw(vi)h FR(Editor)423 +b FU(by)387 b(Lamb)g(and)g(Robbins.)-30 8415 y(Man)-23 +b(y)345 b(common)g(programs)g(in)g(Linux)g(will)g(load)g(up)h(a)g(te) +-23 b(xt)345 b(\002le)g(in)g FP(vi)h FU(by)f(def)-15 +b(ault.)345 b(F)-23 b(or)345 b(e)-23 b(xam-)-30 10430 +y(ple,)354 b(editing)e(your)h(crontabs)g(will)f(start)h(up)23750 +10430 y +SDict begin H.S end + 23750 10430 a 23750 10430 a +SDict begin 18.2 H.A end + 23750 10430 a 23750 +10430 a +SDict begin [ /View [/XYZ H.V] /Dest (5763) cvn H.B /DEST pdfmark end + 23750 10430 a FP(vi)g FU(by)g(def)-15 b(ault.)353 +b(If)g(you)g(do)g(not)g(lik)-15 b(e)43485 10430 y +SDict begin H.S end + 43485 +10430 a 43485 10430 a +SDict begin 18.2 H.A end + 43485 10430 a 43485 10430 a +SDict begin [ /View [/XYZ H.V] /Dest (5764) cvn H.B /DEST pdfmark end + 43485 +10430 a FP(vi)353 b FU(and)g(w)-15 b(ould)-30 12445 y(lik)g(e)491 +b(another)g(editor)g(to)g(be)h(started)f(instead,)g(all)g(you)h(need)f +(to)g(do)h(is)f(set)g(the)43698 12445 y +SDict begin H.S end + 43698 12445 a +43698 12445 a +SDict begin 18.2 H.A end + 43698 12445 a 43698 12445 a +SDict begin [ /View [/XYZ H.V] /Dest (5765) cvn H.B /DEST pdfmark end + 43698 12445 +a FP(VISUAL)g FU(en)-62 b(vi-)-30 14459 y(ronment)522 +b(v)-39 b(ariable)522 b(to)g(the)g(editor)f(you)h(prefer)-85 +b(.)523 b(F)-23 b(or)522 b(information)f(on)h(setting)f(en)-62 +b(vironment)-30 16474 y(v)-39 b(ariables,)405 b(see)h(the)f(section)f +(called)h(En)-62 b(vironment)404 b(V)-172 b(ariables)405 +b(in)g(Chapter)f(8.)i(If)f(you)g(w)-15 b(ant)404 b(to)-30 +18489 y(mak)-15 b(e)350 b(sure)h(that)f(your)g(editor)h(will)f(be)g +(the)h(def)-15 b(ault)350 b(e)-39 b(v)-23 b(ery)350 b(time)h(you)f +(login,)g(add)h(the)f(VISU)-62 b(AL)-30 20503 y(setting)387 +b(to)g(your)9312 20503 y +SDict begin H.S end + 9312 20503 a 9312 20503 a +SDict begin 18.2 H.A end + 9312 +20503 a 9312 20503 a +SDict begin [ /View [/XYZ H.V] /Dest (5766) cvn H.B /DEST pdfmark end + 9312 20503 a FQ(.bash_profile)379 +b FU(or)19520 20503 y +SDict begin H.S end + 19520 20503 a 19520 20503 a +SDict begin 18.2 H.A end + 19520 +20503 a 19520 20503 a +SDict begin [ /View [/XYZ H.V] /Dest (5767) cvn H.B /DEST pdfmark end + 19520 20503 a FQ(.bashrc)k FU(\002les.)-30 +21614 y +SDict begin H.S end + -30 21614 a -30 21614 a +SDict begin 18.2 H.A end + -30 21614 a -30 21614 +a +SDict begin [ /View [/XYZ H.V] /Dest (VI-KEYS) cvn H.B /DEST pdfmark +end + -30 21614 a 5789 x FL(16.7)620 b(Vi)h(K)-33 b(e)g(ys)-30 +28981 y +SDict begin H.S end + -30 28981 a -30 28981 a +SDict begin 18.2 H.A end + -30 28981 a -30 28981 +a +SDict begin [ /View [/XYZ H.V] /Dest (5770) cvn H.B /DEST pdfmark end + -30 28981 a 1552 x FU(This)538 b(section)g(is)g(a)g(quick)g +(reference)h(of)g(man)-23 b(y)537 b(common)33026 30533 +y +SDict begin H.S end + 33026 30533 a 33026 30533 a +SDict begin 18.2 H.A end + 33026 30533 a 33026 30533 +a +SDict begin [ /View [/XYZ H.V] /Dest (5771) cvn H.B /DEST pdfmark end + 33026 30533 a FP(vi)h FU(commands.)g(Some)g(of)g(these)-30 +32548 y(were)388 b(discussed)e(earlier)i(in)f(the)g(chapter)-62 +b(,)388 b(while)f(man)-23 b(y)386 b(will)h(be)g(ne)-39 +b(w)-101 b(.)-30 32883 y +SDict begin H.S end + -30 32883 a -30 32883 a +SDict begin 18.2 H.A end + -30 +32883 a -30 32883 a +SDict begin [ /View [/XYZ H.V] /Dest (5772) cvn H.B /DEST pdfmark end + -30 32883 a 4004 x FX(T)-143 b(able)387 +b(16-1.)h(Mo)-15 b(v)g(ement)-30 38456 y +SDict begin H.S end + -30 38456 a +-30 38456 a +SDict begin 18.2 H.A end + -30 38456 a -30 38456 a +SDict begin [ /View [/XYZ H.V] /Dest (5774) cvn H.B /DEST pdfmark end + -30 38456 a -30 38456 +a +SDict begin H.S end + -30 38456 a -30 38456 a +SDict begin 18.2 H.A end + -30 38456 a -30 38456 a +SDict begin [ /View [/XYZ H.V] /Dest (table.13) cvn H.B /DEST pdfmark +end + -30 +38456 a 9068 40216 a FE(Operation)20844 b(K)-23 b(e)g(y)p +-30 40593 51806 45 v -30 40593 V -30 42354 a FU(left,)388 +b(do)-39 b(wn,)387 b(up,)h(right)23890 b FX(h)p FU(,)388 +b FX(j)p FU(,)g FX(k)p FU(,)f FX(l)-30 44450 y FU(T)-124 +b(o)387 b(the)h(end)f(of)g(the)g(line)25097 b FX($)-30 +46543 y FU(T)-124 b(o)387 b(the)h(be)-23 b(ginning)386 +b(of)h(the)g(line)21096 b FX(^)-30 48640 y FU(T)-124 +b(o)387 b(the)h(end)f(of)g(the)g(\002le)25226 b FX(G)-30 +50733 y FU(T)-124 b(o)387 b(the)h(be)-23 b(ginning)386 +b(of)h(the)g(\002le)21245 b FX(:1)-30 52829 y FU(T)-124 +b(o)387 b(line)g(47)31381 b FX(:47)-30 53161 y +SDict begin H.S end + -30 53161 +a -30 53161 a +SDict begin 18.2 H.A end + -30 53161 a -30 53161 a +SDict begin [ /View [/XYZ H.V] /Dest (5807) cvn H.B /DEST pdfmark end + -30 53161 a 4782 +x FX(T)-143 b(able)387 b(16-2.)h(Editing)-30 59808 y +SDict begin H.S end + +-30 59808 a -30 59808 a +SDict begin 18.2 H.A end + -30 59808 a -30 59808 a +SDict begin [ /View [/XYZ H.V] /Dest (5809) cvn H.B /DEST pdfmark end + -30 59808 +a -30 59808 a +SDict begin H.S end + -30 59808 a -30 59808 a +SDict begin 18.2 H.A end + -30 59808 a -30 +59808 a +SDict begin [ /View [/XYZ H.V] /Dest (table.14) cvn H.B /DEST pdfmark +end + -30 59808 a 9068 61569 a FE(Operation)20844 b(K)-23 +b(e)g(y)p -30 61945 51806 45 v -30 61945 V -30 63706 +a FU(Remo)g(ving)386 b(a)i(line)27576 b FX(dd)-30 65802 +y FU(Remo)-23 b(ving)386 b(\002)-39 b(v)-23 b(e)387 b(lines)25012 +b FX(5dd)-30 67899 y FU(Replacing)387 b(a)g(character)24892 +b FX(r)p Black 49451 73792 a FR(203)p Black eop end +%%Page: 204 226 +TeXDict begin 204 225 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.204) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(16)g(V)-115 b(i)p +Black 9068 4265 a FE(Operation)20844 b(K)-23 b(e)g(y)-30 +6358 y FU(Remo)g(ving)386 b(a)i(character)24697 b FX(x)-30 +8455 y FU(Remo)-23 b(ving)386 b(ten)h(characters)22114 +b FX(10x)-30 10551 y FU(Undo)387 b(last)g(action)28071 +b FX(u)-30 12644 y FU(Join)387 b(current)g(and)g(ne)-23 +b(xt)387 b(lines)21940 b FX(J)-30 14737 y FU(Replace)387 +b(old)g(with)g(ne)-39 b(w)-101 b(,)388 b(globally)14867 +b FX(\045s'old'new'g)-30 15073 y +SDict begin H.S end + -30 15073 a -30 15073 +a +SDict begin 18.2 H.A end + -30 15073 a -30 15073 a +SDict begin [ /View [/XYZ H.V] /Dest (5847) cvn H.B /DEST pdfmark end + -30 15073 a 4782 x FX(T)-143 +b(able)387 b(16-3.)h(Sear)-28 b(ching)-30 21719 y +SDict begin H.S end + -30 +21719 a -30 21719 a +SDict begin 18.2 H.A end + -30 21719 a -30 21719 a +SDict begin [ /View [/XYZ H.V] /Dest (5849) cvn H.B /DEST pdfmark end + -30 21719 +a -30 21719 a +SDict begin H.S end + -30 21719 a -30 21719 a +SDict begin 18.2 H.A end + -30 21719 a -30 +21719 a +SDict begin [ /View [/XYZ H.V] /Dest (table.15) cvn H.B /DEST pdfmark +end + -30 21719 a 9068 23480 a FE(Operation)20844 b(K)-23 +b(e)g(y)p -30 23856 51806 45 v -30 23856 V -30 25617 +a FU(Search)387 b(for)h(\223asdf\224)26311 b FX(/asdf)-30 +27710 y FU(Search)387 b(backw)-15 b(ards)387 b(for)g(\223asdf\224)19141 +b FX(?asdf)-30 29803 y FU(Repeat)387 b(last)g(search)h(forw)-15 +b(ards)21375 b FX(/)-30 31900 y FU(Repeat)387 b(last)g(search)h(backw) +-15 b(ards)20084 b FX(?)-30 33996 y FU(Repeat)387 b(last)g(search,)h +(same)f(direction)17184 b FX(n)-30 36093 y FU(Repeat)387 +b(last)g(search,)h(opposite)e(direction)14988 b FX(N)-30 +36428 y +SDict begin H.S end + -30 36428 a -30 36428 a +SDict begin 18.2 H.A end + -30 36428 a -30 36428 +a +SDict begin [ /View [/XYZ H.V] /Dest (5881) cvn H.B /DEST pdfmark end + -30 36428 a 4782 x FX(T)-143 b(able)387 b(16-4.)h(Sa)-39 +b(ving)386 b(and)h(Quitting)-30 43075 y +SDict begin H.S end + -30 43075 a -30 +43075 a +SDict begin 18.2 H.A end + -30 43075 a -30 43075 a +SDict begin [ /View [/XYZ H.V] /Dest (5883) cvn H.B /DEST pdfmark end + -30 43075 a -30 43075 +a +SDict begin H.S end + -30 43075 a -30 43075 a +SDict begin 18.2 H.A end + -30 43075 a -30 43075 a +SDict begin [ /View [/XYZ H.V] /Dest (table.16) cvn H.B /DEST pdfmark +end + -30 +43075 a 9068 44836 a FE(Operation)20844 b(K)-23 b(e)g(y)p +-30 45212 51806 45 v -30 45212 V -30 46973 a FU(Quit)35216 +b FX(:q)-30 49066 y FU(Quit)387 b(without)f(sa)-31 b(ving)25432 +b FX(:q!)-30 51162 y FU(Write)387 b(and)h(quit)28458 +b FX(:wq)-30 53259 y FU(Write,)388 b(without)e(quitting)23592 +b FX(:w)-30 55355 y FU(Reload)387 b(currently)g(open)g(\002le)21660 +b FX(:e!)-30 57452 y FU(Write)387 b(b)-31 b(uf)-39 b(fer)388 +b(to)f(\002le)g FQ(asdf)21783 b FX(:w)387 b(asdf)-30 +59545 y FU(Open)g(\002le)g FQ(hejaz)26854 b FX(:e)387 +b(hejaz)-30 61641 y FU(Read)g(\002le)g FQ(asdf)e FU(into)i(b)-31 +b(uf)-39 b(fer)21139 b FX(:r)388 b(asdf)-30 63734 y FU(Read)f(output)g +(of)g FP(ls)g FU(into)g(b)-31 b(uf)-39 b(fer)19101 b +FX(:r)388 b(!ls)p Black -30 73792 a FR(204)p Black eop +end +%%Page: 205 227 +TeXDict begin 205 226 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.205) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS) cvn H.B /DEST pdfmark +end + -30 2383 a 2345 x FS(Chapter)894 +b(17)-30 10743 y FO(Emacs)p -30 18316 51806 56 v -30 +18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a -30 18316 +a +SDict begin [ /View [/XYZ H.V] /Dest (5931) cvn H.B /DEST pdfmark end + -30 18316 a -30 19091 a +SDict begin H.S end + -30 19091 a -30 19091 a +SDict begin 18.2 H.A end + -30 +19091 a -30 19091 a +SDict begin [ /View [/XYZ H.V] /Dest (5933) cvn H.B /DEST pdfmark end + -30 19091 a 1051 x FU(While)4100 +20142 y +SDict begin H.S end + 4100 20142 a 4100 20142 a +SDict begin 18.2 H.A end + 4100 20142 a 4100 20142 +a +SDict begin [ /View [/XYZ H.V] /Dest (5934) cvn H.B /DEST pdfmark end + 4100 20142 a FP(vi)341 b FU(\(with)h(its)f(clones\))h(is)g(without)f +(a)h(doubt)f(the)h(most)f(ubiquitous)g(editor)g(on)h(Unix-lik)-15 +b(e)-30 22157 y(systems,)516 b(Emacs)f(comes)h(in)g(a)g(good)g(second.) +g(Instead)g(of)g(using)g(dif)-39 b(ferent)43141 22157 +y +SDict begin H.S end + 43141 22157 a 43141 22157 a +SDict begin 18.2 H.A end + 43141 22157 a 43141 22157 +a +SDict begin [ /View [/XYZ H.V] /Dest (5935) cvn H.B /DEST pdfmark end + 43141 22157 a FU(\223modes\224,)516 b(lik)-15 b(e)-30 +24171 y +SDict begin H.S end + -30 24171 a -30 24171 a +SDict begin 18.2 H.A end + -30 24171 a -30 24171 +a +SDict begin [ /View [/XYZ H.V] /Dest (5936) cvn H.B /DEST pdfmark end + -30 24171 a FP(vi)401 b FU(does,)h(it)f(uses)9822 24171 +y +SDict begin H.S end + 9822 24171 a 9822 24171 a +SDict begin 18.2 H.A end + 9822 24171 a 9822 24171 a +SDict begin [ /View [/XYZ H.V] /Dest (5937) cvn H.B /DEST pdfmark end + +9822 24171 a FX(Contr)-28 b(ol)400 b FU(and)18000 24171 +y +SDict begin H.S end + 18000 24171 a 18000 24171 a +SDict begin 18.2 H.A end + 18000 24171 a 18000 24171 +a +SDict begin [ /View [/XYZ H.V] /Dest (5938) cvn H.B /DEST pdfmark end + 18000 24171 a FX(Alt)h FU(k)-15 b(e)-23 b(y)400 b(combinations)g(to)h +(enter)g(commands,)g(in)g(much)g(the)-30 26186 y(same)442 +b(w)-15 b(ay)442 b(that)g(you)h(can)f(use)17242 26186 +y +SDict begin H.S end + 17242 26186 a 17242 26186 a +SDict begin 18.2 H.A end + 17242 26186 a 17242 26186 +a +SDict begin [ /View [/XYZ H.V] /Dest (5939) cvn H.B /DEST pdfmark end + 17242 26186 a FX(Contr)-28 b(ol)442 b FU(and)25503 +26186 y +SDict begin H.S end + 25503 26186 a 25503 26186 a +SDict begin 18.2 H.A end + 25503 26186 a 25503 +26186 a +SDict begin [ /View [/XYZ H.V] /Dest (5940) cvn H.B /DEST pdfmark end + 25503 26186 a FX(Alt)g FU(k)-15 b(e)-23 b(y)442 +b(combinations)f(in)h(a)h(w)-15 b(ord)441 b(processor)-30 +28201 y(and)295 b(indeed)f(in)h(man)-23 b(y)294 b(other)h(applications) +f(to)g(e)-23 b(x)g(ecute)295 b(certain)f(functions.)h(\(Though)f(it)h +(should)-30 30215 y(be)416 b(noted)e(that)i(the)f(commands)f(rarely)i +(correspond;)e(so)h(while)g(man)-23 b(y)415 b(modern)g(applications)-30 +32230 y(use)2539 32230 y +SDict begin H.S end + 2539 32230 a 2539 32230 a +SDict begin 18.2 H.A end + 2539 +32230 a 2539 32230 a +SDict begin [ /View [/XYZ H.V] /Dest (5941) cvn H.B /DEST pdfmark end + 2539 32230 a 2539 32230 a +SDict begin H.S end + 2539 32230 +a 2539 32230 a +SDict begin 18.2 H.A end + 2539 32230 a 2539 32230 a +SDict begin [ /View [/XYZ H.V] /Dest (5942) cvn H.B /DEST pdfmark end + 2539 32230 a +FX(Ctrl)p FU(-)5809 32230 y +SDict begin H.S end + 5809 32230 a 5809 32230 a +SDict begin 18.2 H.A end + +5809 32230 a 5809 32230 a +SDict begin [ /View [/XYZ H.V] /Dest (5943) cvn H.B /DEST pdfmark end + 5809 32230 a FX(C)p FU(/)7861 +32230 y +SDict begin H.S end + 7861 32230 a 7861 32230 a +SDict begin 18.2 H.A end + 7861 32230 a 7861 32230 +a +SDict begin [ /View [/XYZ H.V] /Dest (5944) cvn H.B /DEST pdfmark end + 7861 32230 a FX(X)p FU(/)9913 32230 y +SDict begin H.S end + 9913 32230 a +9913 32230 a +SDict begin 18.2 H.A end + 9913 32230 a 9913 32230 a +SDict begin [ /View [/XYZ H.V] /Dest (5945) cvn H.B /DEST pdfmark end + 9913 32230 a FX(V)503 +b FU(for)g(cop)-15 b(ying,)501 b(cutting)h(and)h(pasting,)f(Emacs)g +(uses)h(dif)-39 b(ferent)502 b(k)-15 b(e)-23 b(ys)502 +b(and)-30 34245 y(actually)387 b(a)g(some)-39 b(what)387 +b(dif)-39 b(ferent)388 b(mechanism)e(for)i(this.\))-30 +35355 y +SDict begin H.S end + -30 35355 a -30 35355 a +SDict begin 18.2 H.A end + -30 35355 a -30 35355 +a +SDict begin [ /View [/XYZ H.V] /Dest (5946) cvn H.B /DEST pdfmark end + -30 35355 a 1679 x FU(Also)356 b(unlik)-15 b(e)7469 +37034 y +SDict begin H.S end + 7469 37034 a 7469 37034 a +SDict begin 18.2 H.A end + 7469 37034 a 7469 37034 +a +SDict begin [ /View [/XYZ H.V] /Dest (5947) cvn H.B /DEST pdfmark end + 7469 37034 a FP(vi)p FU(,)357 b(which)f(is)g(an)h(\(e)-23 +b(xcellent\))356 b(editor)g(and)g(nothing)g(more,)g(Emacs)h(is)f(a)g +(program)-30 39049 y(with)502 b(near)g(endless)f(capabilities.)g(Emacs) +h(is)g(\(for)g(the)f(most)h(part\))f(written)h(in)f(Lisp,)h(which)-30 +41064 y(is)461 b(a)g(v)-23 b(ery)461 b(po)-39 b(werful)461 +b(programming)f(language)h(that)g(has)g(the)g(peculiar)g(property)g +(that)g(e)-39 b(v)-23 b(ery)-30 43078 y(program)490 b(written)f(in)h +(it)g(is)g(automatically)f(a)h(Lisp)f(compiler)h(of)g(its)f(o)-39 +b(wn.)491 b(This)f(means)f(that)-30 45093 y(the)387 b(user)h(can)f(e) +-23 b(xtend)387 b(Emacs,)g(and)h(in)f(f)-15 b(act)387 +b(write)g(completely)f(ne)-39 b(w)388 b(programs)44092 +45093 y +SDict begin H.S end + 44092 45093 a 44092 45093 a +SDict begin 18.2 H.A end + 44092 45093 a 44092 +45093 a +SDict begin [ /View [/XYZ H.V] /Dest (5948) cvn H.B /DEST pdfmark end + 44092 45093 a FU(\223in)g(Emacs\224.)-30 45428 +y +SDict begin H.S end + -30 45428 a -30 45428 a +SDict begin 18.2 H.A end + -30 45428 a -30 45428 a +SDict begin [ /View [/XYZ H.V] /Dest (5949) cvn H.B /DEST pdfmark end + -30 +45428 a -30 45428 a +SDict begin H.S end + -30 45428 a -30 45428 a +SDict begin 18.2 H.A end + -30 45428 +a -30 45428 a +SDict begin [ /View [/XYZ H.V] /Dest (5952) cvn H.B /DEST pdfmark end + -30 45428 a -30 46203 a +SDict begin H.S end + -30 46203 a -30 +46203 a +SDict begin 18.2 H.A end + -30 46203 a -30 46203 a +SDict begin [ /View [/XYZ H.V] /Dest (5955) cvn H.B /DEST pdfmark end + -30 46203 a 1679 x FU(As)457 +b(a)h(result,)f(Emacs)g(is)h(not)f(just)f(an)i(editor)f(an)-23 +b(ymore.)457 b(There)g(are)h(man)-23 b(y)457 b(add-on)g(packages)-30 +49897 y(for)366 b(Emacs)f(a)-31 b(v)-39 b(ailable)365 +b(\(man)-23 b(y)365 b(come)g(with)g(the)g(program')-85 +b(s)365 b(source\))g(that)g(pro)-23 b(vide)365 b(all)g(sorts)g(of)-30 +51912 y(functionality)-101 b(.)298 b(Man)-23 b(y)298 +b(of)g(these)h(are)f(related)h(to)f(te)-23 b(xt)298 b(editing,)g(which) +g(is)g(after)h(all)f(Emacs')g(basic)-30 53926 y(task,)463 +b(b)-31 b(ut)463 b(it)g(doesn')-28 b(t)462 b(stop)h(there.)g(There)g +(are)h(for)f(e)-23 b(xample)462 b(se)-39 b(v)-23 b(eral)463 +b(spreadsheet)g(programs)-30 55941 y(for)582 b(Emacs,)g(there)g(are)h +(databases,)f(g)-8 b(ames,)582 b(mail)f(and)h(ne)-39 +b(ws)582 b(clients)g(\(the)g(top)f(one)h(being)-30 57956 +y(Gnus\),)388 b(etc.)-30 58233 y +SDict begin H.S end + -30 58233 a -30 58233 +a +SDict begin 18.2 H.A end + -30 58233 a -30 58233 a +SDict begin [ /View [/XYZ H.V] /Dest (5956) cvn H.B /DEST pdfmark end + -30 58233 a -30 58233 a +SDict begin H.S end + -30 +58233 a -30 58233 a +SDict begin 18.2 H.A end + -30 58233 a -30 58233 a +SDict begin [ /View [/XYZ H.V] /Dest (5958) cvn H.B /DEST pdfmark end + -30 58233 +a -30 59008 a +SDict begin H.S end + -30 59008 a -30 59008 a +SDict begin 18.2 H.A end + -30 59008 a -30 +59008 a +SDict begin [ /View [/XYZ H.V] /Dest (5960) cvn H.B /DEST pdfmark end + -30 59008 a 1737 x FU(There)311 b(are)g(tw)-15 +b(o)310 b(main)h(v)-23 b(ersions)310 b(of)g(Emacs:)h(GNU)f(Emacs)h +(\(which)f(is)h(the)g(v)-23 b(ersion)310 b(that)g(comes)-30 +62760 y(with)466 b(Slackw)-15 b(are\))466 b(and)h(XEmacs.)f(The)h +(latter)f(is)27451 62760 y +SDict begin H.S end + 27451 62760 a 27451 62760 +a +SDict begin 18.2 H.A end + 27451 62760 a 27451 62760 a +SDict begin [ /View [/XYZ H.V] /Dest (5961) cvn H.B /DEST pdfmark end + 27451 62760 a FR(not)495 +b FU(a)466 b(v)-23 b(ersion)466 b(for)h(Emacs)f(running)g(under)-30 +64775 y(X.)385 b(In)g(f)-15 b(act,)385 b(both)f(Emacs)h(and)g(XEmacs)f +(run)h(on)f(the)h(console)f(as)h(well)g(as)f(under)h(X.)g(XEmacs)-30 +66789 y(w)-15 b(as)531 b(once)g(started)h(as)f(a)h(project)f(to)g(tidy) +g(up)g(the)h(Emacs)f(code.)h(Currently)-101 b(,)531 b(both)g(v)-23 +b(ersions)p Black 49451 73672 a FR(205)p Black eop end +%%Page: 206 228 +TeXDict begin 206 227 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.206) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(17)g(Emacs)p Black +-30 3490 a FU(are)432 b(being)f(acti)-39 b(v)-23 b(ely)431 +b(de)-39 b(v)-23 b(eloped,)431 b(and)h(there)f(is)g(in)g(f)-15 +b(act)431 b(much)h(interaction)e(between)h(the)h(tw)-15 +b(o)-30 5505 y(de)-39 b(v)-23 b(elopment)362 b(teams.)g(F)-23 +b(or)362 b(the)g(present)g(chapter)-62 b(,)363 b(it)f(is)g(immaterial)g +(whether)g(you)g(use)g(Emacs)-30 7520 y(or)387 b(XEmacs,)h(the)f(dif) +-39 b(ferences)388 b(between)f(them)g(are)g(not)g(rele)-39 +b(v)g(ant)388 b(to)f(the)g(normal)g(user)-85 b(.)-30 +7744 y +SDict begin H.S end + -30 7744 a -30 7744 a +SDict begin 18.2 H.A end + -30 7744 a -30 7744 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS-STARTING) cvn H.B /DEST +pdfmark end + -30 +7744 a 5900 x FL(17.1)620 b(Star)45 b(ting)620 b(emacs)-30 +14141 y +SDict begin H.S end + -30 14141 a -30 14141 a +SDict begin 18.2 H.A end + -30 14141 a -30 14141 +a +SDict begin [ /View [/XYZ H.V] /Dest (5964) cvn H.B /DEST pdfmark end + -30 14141 a -30 15257 a +SDict begin H.S end + -30 15257 a -30 15257 a +SDict begin 18.2 H.A end + -30 +15257 a -30 15257 a +SDict begin [ /View [/XYZ H.V] /Dest (5967) cvn H.B /DEST pdfmark end + -30 15257 a 1518 x FU(Emacs)394 b(can)g(be)g +(started)g(from)g(the)g(shell)f(by)h(simply)f(typing)33353 +16775 y +SDict begin H.S end + 33353 16775 a 33353 16775 a +SDict begin 18.2 H.A end + 33353 16775 a 33353 +16775 a +SDict begin [ /View [/XYZ H.V] /Dest (5968) cvn H.B /DEST pdfmark end + 33353 16775 a FP(emacs)p FU(.)h(When)g(you)g(are)h(running)-30 +18789 y(X,)378 b(Emacs)g(will)f(\(normally\))g(come)h(up)g(with)f(its)g +(o)-39 b(wn)378 b(X)g(windo)-39 b(w)-101 b(,)378 b(usually)f(with)g(a)h +(menu)g(bar)-30 20804 y(at)401 b(the)h(top,)f(where)g(you)g(can)h +(\002nd)e(the)i(most)e(important)g(functions.)h(On)g(startup,)h(Emacs)e +(will)-30 22819 y(\002rst)529 b(sho)-39 b(w)529 b(a)g(welcome)g +(message,)h(and)f(then)g(after)g(a)h(fe)-39 b(w)529 b(seconds)g(will)g +(drop)g(you)g(in)g(the)-30 24833 y(*scratch*)387 b(b)-31 +b(uf)-39 b(fer)-85 b(.)388 b(\(See)p 0 TeXcolorgray 13843 +24833 a +SDict begin H.S end + 13843 24833 a FU(Section)f(17.2)21592 24833 y +SDict begin 18.2 H.L end + +21592 24833 a 21592 24833 a +SDict begin [ /Subtype /Link /Dest (EMACS-BUFFERS) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 21592 24833 a Black FU(.\))-30 +25111 y +SDict begin H.S end + -30 25111 a -30 25111 a +SDict begin 18.2 H.A end + -30 25111 a -30 25111 +a +SDict begin [ /View [/XYZ H.V] /Dest (5970) cvn H.B /DEST pdfmark end + -30 25111 a -30 27435 a +SDict begin H.S end + -30 27435 a -30 27435 a +SDict begin 18.2 H.A end + -30 +27435 a -30 27435 a +SDict begin [ /View [/XYZ H.V] /Dest (5971) cvn H.B /DEST pdfmark end + -30 27435 a -30 60512 a + currentpoint currentpoint translate 0.79 0.79 scale neg exch neg exch +translate + -30 60512 +a @beginspecial 12 @llx 212 @lly 600 @urx 580 @ury 5880 +@rwi @setspecial +%%BeginDocument: emacs/emacs.eps +%!PS-Adobe-2.0 EPSF-2.0 +%%Creator: pnmtops +%%Title: noname.ps +%%Pages: 1 +%%BoundingBox: 12 212 600 580 +%%EndComments +/rlestr1 1 string def +/readrlestring { + /rlestr exch def + currentfile rlestr1 readhexstring pop + 0 get + dup 127 le { + currentfile rlestr 0 + 4 3 roll + 1 add getinterval + readhexstring pop + length + } { + 256 exch sub dup + currentfile rlestr1 readhexstring pop + 0 get + exch 0 exch 1 exch 1 sub { + rlestr exch 2 index put + } for + pop + } ifelse +} bind def +/readstring { + dup length 0 { + 3 copy exch + 1 index sub + getinterval + readrlestring + add + 2 copy le { exit } if + } loop + pop pop +} bind def +/picstr 640 string def +%%EndProlog +%%Page: 1 1 +gsave +12.24 212.4 translate +587.52 367.2 scale +640 400 8 +[ 640 0 0 -400 0 400 ] +{ picstr readstring } +image +80c080c080c080c080c080c080c080c080c080c0f900fcc0010000fbc0fd +00edc0f900fcc0fd00fbc0010000fac00000f3c0fb00f3c00000f9c00100 +00ddc0fa00f3c0fd00fbc0fd00ddc0fa00edc0fd00edc0060000c0c0c000 +00f5c0fd0080c080c095c006c00000c0c00000fcc0010000fac0010000ec +c0050000c0c00000fbc0010000fbc0010000fbc0010000f4c0060000c0c0 +c00000f5c0010000f9c0010000dcc0050000c0c00000f5c00c0000c00000 +c0c0c00000c00000dec0fa00ecc0010000edc0060000c0c0c00000f4c001 +000080c080c095c006c00000c0c0c000f4c0010000ecc0050000c0c0c000 +fbc0010000f4c0010000f4c0060000c0c0c00000f5c0010000d3c0050000 +c0c00000f5c00c0000c0c000c0c0c00000c0c000dec00500c00000c000ec +c0010000edc0060000c0c0c00000f4c001000080c080c095c004c00000c0 +00fbc0fd00fac0010000fcc0fb00f5c0030000c000fbc0fc00fcc0fd00fd +c0fa00f6c00f0000c0c0c00000c00000c0000000c0c0fa00fcc0fd00fcc0 +fb000ac0c00000c0000000c0c0c0fb00f5c00c0000c0c00000c00000c0c0 +0000fcc0010000fac0010000fbc0fb000ac0c00000c0000000c0c0c0fb00 +f3c0010000fcc0fb00fdc0fb00fbc0010000fcc0fb00f6c0080000c0c0c0 +0000c0c0fb00fbc00a0000c0c0c00000c000000080c080c09ec000c0fc00 +fac0010000fac00b0000c0c0c00000c0c0c00000f6c0fc00fcc0040000c0 +0000fbc0010000fbc0010000f4c0130000c0c0c00000c0c00000c0c00000 +c0c0c00000f9c01b0000c0c0c00000c0c0c00000c0c00000c0c00000c000 +00c0c0c00000f6c0fb000ac0c00000c0c00000c0c0c0fc00fcc0fc00fdc0 +160000c0c0c00000c0c0000000c00000c00000c0c0c00000f4c0130000c0 +c0c00000c0c0c00000c00000c0c0c00000fcc00b0000c0c0c00000c0c0c0 +0000f7c0f90007c00000c0c0c00000fcc0010000fcc0050000c0c0000080 +c080c09fc004c00000c000fac0010000fac0040000c0c0c0f900f6c00c00 +00c000c0c0c00000c0c00000fbc0010000fbc0010000f4c0130000c0c0c0 +0000c0c00000c0c00000c0c0c00000f9c0170000c0c0c00000c0c0c00000 +c0c00000c0c00000c0c00000f2c00c0000c0c00000c00000c0c00000fcc0 +010000fac0010000fcc0f9000bc0c00000c0c00000c0c00000f0c0130000 +c0c0c00000c0c0c00000c00000c0c0c00000fcc0010000fcc0010000f3c0 +070000c0c0c00000c0f900fcc0010000fcc0050000c0c0000080c080c09f +c002c00000f8c0010000fac0060000c0c0c00000f1c0010000fbc0050000 +c0c00000fbc0010000fbc0010000f4c0130000c0c0c00000c0c00000c0c0 +0000c0c0c00000f9c0190000c0c0c00000c0c0c00000c0c00000c0c00000 +c0c0c0000000f4c00c0000c0c00000c00000c0c00000fcc0010000fac001 +0000fcc0010000f9c0010000f9c0fd00f2c0130000c0c0c00000c0c0c000 +00c00000c0c0c00000fcc0010000fbc0fd00f5c0090000c0c0c00000c000 +00f7c0010000fcc0050000c0c0000080c080c09fc002c00000f8c0010000 +fac0060000c0c0c00000f1c00c0000c0c0c000c00000c0c00000fbc00100 +00fbc0010000f4c0130000c0c0c00000c0c00000c0c00000c0c0c00000f9 +c0130000c0c0c00000c0c0c00000c0c00000c0c00000fbc0010000f5c00c +0000c0c00000c00000c0c00000fcc0010000fac0010000fcc0010000f9c0 +010000f7c0010000f3c0130000c0c0c00000c0c0c00000c00000c0c0c000 +00fcc0010000f9c0010000f6c0090000c0c0c00000c00000f7c0010000fc +c0050000c0c0000080c080c09fc002c00000f8c0010000fac00b0000c0c0 +c00000c0c0c00000f6c00c0000c0c00000c00000c0c00000fbc0010000fb +c0040000c00000f7c0160000c0c0c00000c0c00000c0c00000c0c0c00000 +c00000fcc01b0000c0c0c00000c0c0c00000c0c00000c0c00000c00000c0 +c0c00000f6c00c0000c0c00000c00000c0c00000fcc0010000fac0010000 +fcc00a0000c0c0c00000c0c00000fbc0060000c0c0c00000f4c0130000c0 +c0c00000c0c0c00000c00000c0c0c00000fcc00b0000c0c0c00000c0c0c0 +0000f7c00e0000c0c0c00000c00000c0c0c00000fcc0010000fcc0050000 +c0c0000080c080c09fc0fc00fac0fc00fcc0fc00fdc0fb00f6c0f9000ac0 +c0000000c00000c0c0c0fc00fbc0fd00f5c0fb00fdc0fb00fbc0fd00fcc0 +fc00fdc0fb00fdc0070000c0c00000c0c0fb00f6c0fa00fdc0fd0004c000 +00c0c0fc00fcc0fc00fcc0fb0001c0c0fc00fbc0fb00f4c0fc00fdc0fb00 +fdc0fb00fcc0fc00fdc0fb00f6c0080000c0c0c00000c0c0fb00fcc0fc00 +fdc0fb0080c080c09ec0a7c001000080c0c2c001000080c080c09bc0a7c0 +01000080c0c2c001000080c080c09bc0a8c0fc0080c0c4c0fc0080c080c0 +9cc080c080c080c080c080c0800080008000800080008000800080008000 +800006c0c0000000c0c0f500fdc0d20000c0ea00fcc0100000c0c0000000 +c0c000c0c0000000c0c0f700f9c08000ec0000c0e900fdc0f30000c0fc00 +fdc0e900fcc0100000c0c0000000c0c000c0c0000000c0c0f700fcc0f900 +01c0c0b20000c0f90001c0c0ca0000c0940006c0c0000000c0c0f40001c0 +c0d30001c0c0eb0015c0c00000c0c000c0c0c00000c0c000c0c0000000c0 +c0f60005c0c00000c0c08000ed0001c0c0ea0004c0c000c0c0f50001c0c0 +fb0001c0c0ea0015c0c00000c0c000c0c0c00000c0c000c0c0000000c0c0 +f60001c0c0f80001c0c0b30001c0c0f90001c0c0cb0001c0c0940006c0c0 +000000c0c0f40001c0c0d30001c0c0ec0001c0c0fc0001c000fcc00a00c0 +c000c0c0000000c0c0f60005c0c0000000c08000ed0001c0c0ea0004c0c0 +0000c0f50001c0c0fb0001c0c0eb0001c0c0fc0001c000fcc00a00c0c000 +c0c0000000c0c0f90004c00000c0c0a90001c0c0c20001c0c0940008c0c0 +000000c0c00000fbc0fb0001c0c0fc00fbc0fd00fbc00a0000c0c0c000c0 +c0000000fbc0f600fac0fd00fbc0f60001c0c0fa00f9c00700c0c0000000 +c0c0f6000fc0c000c0000000c0c0c000c0c0000000fcc0fc00fbc0fd00fb +c0ed00fbc00a0000c0c000c0c0c0000000fbc0f500fbc0fd00fbc0120000 +c0c0c000c0c00000c0c000c0c0c0000000fbc00a0000c0c000c0c0c00000 +00fbc0090000c0c000c0c0c00000fac0f500fbc0fc0001c0c0f400fac0fd +0007c0c000c0c0000000fbc0f60001c0c0fa00f9c00700c0c0000000c0c0 +fa0005c0c00000c0c0f900fdc0fd0016c0c000c0c0c00000c0c00000c0c0 +0000c0c0000000c0c0f600fbc00a0000c0c000c0c0c0000000fbc00a0000 +c0c000c0c0c0000000fcc0fd00fac0fc00fdc0fd000ec0c000c0c0c00000 +00c0c0c000c0c0f600fbc00a0000c0c0000000c0c00000fbc0010000fac0 +fd00fbc0070000c0c0c000c0c0a6000ec0c000c000c0c000c0c0000000c0 +c0fc0014c0c0000000c0c0000000c0c000c0c0000000c0c000f9c00700c0 +c0000000c0c0f50001c0c0fc0006c0c0000000c0c0f70001c0c0fa0002c0 +c000fcc00700c0c0000000c0c0f600fcc0fd00f9c0fb0012c0c00000c0c0 +000000c0c000c0c0000000c0c0ef0016c0c0000000c0c00000c0c00000c0 +c000c0c0000000c0c0f7000fc0c0000000c0c000c0c0000000c0c000f9c0 +2c0000c0c00000c0c000c0c0000000c0c00000c0c00000c0c000c0c00000 +00c0c00000c0c00000c0c0000000c0c0f40008c0c0000000c0c00000fcc0 +f30001c0c0fb00fdc00a00c0c000c0c0000000c0c0f70001c0c0fa0002c0 +c000fcc00700c0c0000000c0c0fb0006c0c0000000c0c0f80001c0c0fc00 +14c0c00000c0c000c0c00000c0c0000000c0c000c0c0f6001ec0c0000000 +c0c00000c0c00000c0c000c0c0000000c0c00000c0c0c000c0c0fb0001c0 +c0fc0001c0c0f90001c0c0fc000cc0c00000c0c000c0c00000c0c0f6001b +c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0000000c0c0fc00 +07c0c0000000c0c000f9c0a70007c0c000c000c0c000f9c0fc0006c0c000 +0000c0c0fa000fc0c0000000c0c000c0c000c000c0c000f9c0f50001c0c0 +fc0006c0c0000000c0c0f70002c0c000fcc00f00c0c00000c0c0c000c0c0 +000000c0c0f6000fc0c000c0000000c0c000c000c0c00000fbc0030000c0 +c0f90001c0c0eb000fc0c0000000c0c00000c0c00000c0c000f9c0f70001 +c0c0fa0027c0c0000000c0c000c0c000c000c0c00000c0c00000c0c000c0 +c0000000c0c00000c0c00000c0c000f9c00c0000c0c00000c0c0000000c0 +c0f4000bc0c0000000c0c0000000c0c0f20001c0c0fb0006c0c00000c0c0 +00f9c0f70002c0c000fcc00f00c0c00000c0c0c000c0c0000000c0c0fc00 +01c0c0fc0001c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0fc +00fdc0f5000fc0c0000000c0c00000c0c00000c0c000f9c0090000c0c000 +00c0c00000fbc0fc0001c0c0f90001c0c0fc000cc0c00000c0c000c0c000 +00c0c0f50001c0c0fb000ac0c0000000c0c00000c0c0f90001c0c0fc00f9 +c00700c0c000c000c0c0a70009c0c000c000c0c000c0c0f70006c0c00000 +00c0c0fa0011c0c0000000c0c000c0c000c000c0c000c0c0f00001c0c0fc +0006c0c0000000c0c0f70016c0c0000000c0c000c0c0000000c0c000c0c0 +000000c0c0f60001c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0 +c0f800fdc0ed0011c0c0000000c0c00000c0c00000c0c000c0c0f20001c0 +c0fa0029c0c0000000c0c000c0c000c000c0c00000c0c00000c0c000c0c0 +000000c0c00000c0c00000c0c000c0c0f9000ac0c00000c0c0000000c0c0 +f4000bc0c0000000c0c0000000c0c0f20001c0c0fb0008c0c00000c0c000 +c0c0f2001bc0c0000000c0c000c0c0000000c0c000c0c0000000c0c00000 +00c0c0fb0001c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0fc +00fdc0f50011c0c0000000c0c00000c0c00000c0c000c0c0f90001c0c0fb +0005c0c00000c0c0fc0001c0c0f90001c0c0fc000cc0c00000c0c000c0c0 +0000c0c0f400fdc0fd000cc0c0000000c0c0000000c0c0c0fb0001c0c0fc +0001c0c0fa0006c0c000c000c0c0a700f9c00200c0c0f70006c0c0000000 +c0c0fa0011c0c0000000c0c000c0c000c000c0c000c0c0f00001c0c0fc00 +06c0c0000000c0c0f70016c0c0000000c0c000c0c0000000c0c000c0c000 +0000c0c0f60018c0c0000000c000c0c000c000c0c000c0c00000c0c00000 +c0c0f60001c0c0fb0001c0c0f50011c0c0000000c0c00000c0c00000c0c0 +00c0c0f20001c0c0fa0029c0c0000000c0c000c0c000c000c0c00000c0c0 +0000c0c000c0c0000000c0c00000c0c00000c0c000c0c0f9000ac0c00000 +c0c0000000c0c0f4000bc0c0000000c0c0000000c0c0f20001c0c0fb0008 +c0c00000c0c000c0c0f2001ac0c0000000c0c000c0c0000000c0c000c0c0 +000000c0c00000c0c0fa0005c0c0000000c0fc0001c0c0fc000cc0c00000 +c0c000c0c00000c0c0fc00fdc0f50011c0c0000000c0c00000c0c00000c0 +c000c0c0f90001c0c0fb0005c0c00000c0c0fc0001c0c0f90001c0c0fc00 +0cc0c00000c0c000c0c00000c0c0f2000ac0c00000c0c0000000c0c0fb00 +01c0c0fc0001c0c0fc0001c0c0fa0006c0c000c000c0c0a700fdc00b00c0 +c0c000c0c0000000c0c0fc0023c0c0000000c0c0000000c0c000c0c00000 +00c0c000c0c000c000c0c000c0c0000000c0c0f5000cc0c000c0c000c0c0 +000000c0c0f60015c0c00000c0c000c0c0000000c0c000c0c0000000c0c0 +f60025c0c00000c0c000c0c000c000c0c000c0c00000c0c00000c0c00000 +00c0c000c0c0000000c0c0fc0001c0c0f50016c0c0000000c0c00000c0c0 +0000c0c000c0c0000000c0c0f70046c0c0000000c0c000c0c0000000c0c0 +00c0c000c000c0c00000c0c00000c0c000c0c0000000c0c00000c0c00000 +c0c000c0c0000000c0c00000c0c00000c0c0000000c0c000c0c0f7000bc0 +c0000000c0c0000000c0c0f20014c0c000c0c00000c0c00000c0c000c0c0 +000000c0c0f60018c0c00000c0c000c0c0000000c0c000c0c0000000c0c0 +00c0c0f90005c0c00000c0c0fc0001c0c0fc0014c0c00000c0c000c0c000 +00c0c0000000c0c000c0c0f6001ac0c0000000c0c00000c0c00000c0c000 +c0c0000000c0c00000c0c0fb0005c0c00000c0c0fc0004c0c000c0c0fc00 +01c0c0fc000cc0c00000c0c000c0c00000c0c0f6002ec0c0000000c0c000 +c0c0000000c0c000c0c0000000c0c0000000c0c000c0c000c0c0000000c0 +c000c0c000c000c0c0fc0001c0c0ad000800c0c000c0c0000000fbc0fc00 +fcc0fd00fbc0fd00fbc00a0000c0c0000000c0c00000fbc0f300fdc0fd00 +fbc0f400fdc00b00c000c0c0000000c0c00000fbc0f600f9c01100c0c000 +0000c0c00000c0c0c000c0c00000fbc0fd00fbc0fb0001c0c0f400fbc0fd +0007c0c00000c0c00000fbc0f500fbc0fd00fbc00a0000c0c0000000c0c0 +0000fbc0fd00fbc0fd0007c0c00000c0c00000fbc0fd0005c0c00000c0c0 +fc00fdc0f500fbc0fd00fcc0f200fdc00a0000c0c0c00000c0c00000fbc0 +f400fdc00b00c000c0c0000000c0c00000fbc0020000c0f900f9c0fd00fc +c0fd0015c0c00000c0c00000c0c0c000c0c000c0c0000000c0c0f600fbc0 +fd00fbc0fd00fbc0010000fcc0fb00fdc00200c0c0fc00fdc0fc00fcc0fd +0007c0c00000c0c00000fbc0f500fbc0fd00fac0010000fbc0fb00fdc0fd +00fbc0080000c0c0000000c0c0fc0001c0c0ad008000de0001c0c0bb0001 +c0c08000ba0001c0c0c70001c0c0e90001c0c087008000970001c0c08000 +ba0001c0c0cb0005c0c00000c0c0ea0001c0c0860080009800fcc08000bc +00fcc0cb00fcc0ed00fbc085008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +0080008000800080008000800080008000800080008000010000fcc0f300 +00c0f400fdc0f100fdc09b00fcc0f600fdc0e7000ac0c00000c0c0000000 +c0c0f500fdc0fa00fdc0f300fdc0dc00fcc0fd00fac00000fac0010000fc +c0e100fdc0c600fdc0f90001c0c080009c000600c0c00000c0c0f50001c0 +c0f30001c0c0f00001c0c09c0005c0c00000c0c0f60001c0c0e8000bc0c0 +000000c0c0000000c0c0f40001c0c0f90001c0c0f20001c0c0dd0007c0c0 +0000c0c00000fac00b0000c0c00000c0c00000c0c0df0001c0c0c50001c0 +c0f80001c0c080009d0001c0c0fc0000c0f50001c0c0f30001c0c0f00001 +c0c09d0001c0c0fc0000c0f60001c0c0e90001c0c0fc0006c0c0000000c0 +c0f40001c0c0f90001c0c0f20001c0c0de0001c0c0fc0014c00000c000c0 +c000c00000c0c00000c0c00000c0c0df0001c0c0c50001c0c0f70001c0c0 +80009e0001c0c0f900fbc0010000fac0f50007c0c000c0c0000000fbc0fb +000ac0c0000000c0c000c0c0c0a60001c0c0f10004c0c000c0c0ec0001c0 +c0fc0008c0c0000000c0c00000fbc0fb0001c0c0fb00fcc0f400fcc0fd00 +fbc00f0000c0c0000000c0c000c0c000c0c0c0f60001c0c0f70001c0c0fc +0009c0c00000c0c00000c0c0f200fcc0fd0005c0c000c0c0c0fc00fcc0f6 +0010c0c000c0c0c00000c0c000c0c0c0000000fbc0fd00fbc0fd00fbc0f5 +0004c0c000c0c0fa0001c0c080009e0001c0c0fa000bc0c0000000c0c000 +0000c0c0f300fdc00a00c0c000c0c0000000c0c0fc0001c0c0fc0005c0c0 +0000c0c0a70001c0c0f100fdc00200c0c0ed0001c0c0fc00f9c00700c0c0 +000000c0c0fc0001c0c0fc0004c0c000c0c0f5001dc0c000c0c00000c0c0 +000000c0c000c0c0000000c0c00000c0c00000c0c0f70001c0c0f70001c0 +c0fc00fbc0fd0001c0c0ef0011c0c0000000c0c00000c0c00000c0c000c0 +c0f50025c0c00000c0c00000c0c0c000c0c000c0c0000000c0c000c0c000 +0000c0c000c0c0000000c0c0f600fdc00200c0c0fb0001c0c080009e0002 +c0c000fcc00000f9c0fd0001c0c0f30006c0c00000c0c000f9c0fc0001c0 +c0fc0005c0c00000c0c0a70001c0c0fa00f9c0070000c0c00000c0c0ed00 +01c0c0fc000ec0c0000000c0c000c0c0000000c0c0fc000ac0c0000000c0 +c00000c0c0f6001ec0c00000c0c00000c0c0000000c0c000c0c000c000c0 +c00000c0c00000c0c0f70001c0c0f70001c0c0fc0009c0c000c0c0000000 +c0c0f200fbc0fd000cc0c00000c0c000c0c00000c0c0f5000ec0c00000c0 +c00000c0c00000c0c000f9c0030000c0c0fa0001c0c0f20005c0c00000c0 +c0fb0001c0c080009e0009c0c0000000c0c000c0c0f80001c0c0f30008c0 +c00000c0c000c0c0f70001c0c0fc0005c0c00000c0c0a70001c0c0f10005 +c0c00000c0c0ed0001c0c0fc000ec0c0000000c0c000c0c0000000c0c0fc +000ac0c0000000c0c00000c0c0f6001ec0c00000c0c00000c0c0000000c0 +c000c0c000c000c0c00000c0c00000c0c0f70001c0c0f70001c0c0fc0009 +c0c00000c0c00000c0c0f30015c0c00000c0c0000000c0c00000c0c000c0 +c00000c0c0f50009c0c00000c0c00000c0c0fb0001c0c0f800fdc0fb00fd +c0f40005c0c00000c0c0fb0001c0c080009e0009c0c0000000c0c000c0c0 +f80001c0c0f30008c0c00000c0c000c0c0f70001c0c0fc0005c0c00000c0 +c0a70001c0c0fc0000c0f60005c0c00000c0c0ed0001c0c0fc000ec0c000 +0000c0c000c0c0000000c0c0fc000ac0c0000000c0c00000c0c0f6001ec0 +c00000c0c00000c0c0000000c0c000c0c000c000c0c00000c0c00000c0c0 +f70001c0c0fc0000c0fc0001c0c0fc000dc0c00000c0c00000c0c0000000 +c0f70015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f50009c0 +c00000c0c00000c0c0fb0001c0c0f60001c0c0fa0001c0c0f50005c0c000 +00c0c0fb0001c0c080009e001600c0c00000c0c000c0c0000000c0c00000 +00c0c000c0c0f6000dc0c00000c0c000c0c0000000c0c0fc0001c0c0fc00 +05c0c00000c0c0a60005c0c00000c0c0f60005c0c00000c0c0ec0013c0c0 +000000c0c0000000c0c000c0c0000000c0c0fc000ac0c0000000c0c00000 +c0c0f6000fc0c00000c0c00000c0c0000000c0c000f9c0070000c0c00000 +c0c0f60005c0c00000c0c0fc0001c0c0fc000dc0c00000c0c00000c0c000 +00c0c0f70015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f500 +09c0c00000c0c00000c0c0fb0016c0c0000000c0c000c0c0000000c0c000 +c0c0000000c0c0f60005c0c00000c0c0fc0001c0c080009d00080000c0c0 +c000c00000fbc0fb00fdc0f600fdc0050000c0c00000fbc0fc00fcc0fd00 +fbc0a400fcc0f600fdc0030000c0c0eb000cc0c00000c0c0000000c0c000 +00fbc0fc00fcc0fd00fdc00200c0c0f600fdc00400c0c00000fbc0fd000d +c0c000c0c0000000c0c00000c0c0f500fcc0fc00fcc0090000c0c0c00000 +c0c000f9c0f600fdc01200c0c00000c0c00000c0c00000c0c0c000c0c0f6 +00fbc0010000fcc0fb00fbc0fd00fbc0fd00fbc0f600fdc0080000c0c000 +0000c0c080009c00c70001c0c080008000da0001c0c080008000e300c700 +01c0c080008000da0001c0c080008000e300c800fcc080008000dc00fcc0 +80008000e400800080008000800080008000800080008000800080008000 +800080008000f9c0ad00fdc0c300fcc0f600fdc0800080008000ab000600 +c0c00000c0c0ac0001c0c0c40005c0c00000c0c0f60001c0c08000800080 +00ab000600c0c0000000c0ac0001c0c0c50001c0c0fc0000c0f60001c0c0 +800080008000ab001000c0c000c0000000c0c0c000c0c0000000fcc0fc00 +fbc0fd00fbc0f600fdc00500c0c0000000fcc0fd0010c0c000c0c0c00000 +c0c00000c0c0000000fcc0fa0001c0c0c50001c0c0f10004c0c000c0c0f6 +0005c0c000c0c0c0800080008000be000000fcc0fd00f9c0fb0012c0c000 +00c0c0000000c0c000c0c0000000c0c0f700f9c0fb0011c0c0000000c0c0 +0000c0c000c0c00000c0c0fa0001c0c0fb0001c0c0c50001c0c0f100fdc0 +0200c0c0f600fdc00200c0c0800080008000bf001000c0c000c0000000c0 +c000c000c0c00000fbc0030000c0c0f90001c0c0f30008c0c000c000c0c0 +0000fbc0fd000fc0c00000c0c000c0c00000c0c0000000fbc0fb0001c0c0 +c50001c0c0fa00f9c0070000c0c00000c0c0f60005c0c00000c0c0800080 +008000bf000200c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0c0 +f800fdc0f50025c0c000c000c0c000c0c00000c0c0000000c0c00000c0c0 +00c0c00000c0c00000c0c00000c0c0fb0001c0c0c50001c0c0f10005c0c0 +0000c0c0f60001c0c0800080008000bb001900c0c0000000c000c0c000c0 +00c0c000c0c00000c0c00000c0c0f60001c0c0f60025c0c000c000c0c000 +c0c00000c0c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0 +fb0001c0c0c50001c0c0fc0000c0f60005c0c00000c0c0f60001c0c08000 +80008000bb002600c0c00000c0c000c0c000c000c0c000c0c00000c0c000 +00c0c0000000c0c000c0c0000000c0c0f70025c0c000c000c0c000c0c000 +00c0c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb0001 +c0c0c40005c0c00000c0c0f60005c0c00000c0c0f60001c0c08000800080 +00bb00f9c01100c0c0000000c0c00000c0c0c000c0c00000fbc0fd00fbc0 +f60029c0c0000000c0c00000c0c0c000c0c00000c0c00000c0c00000c0c0 +c000c0c00000c0c0c000c0c0000000fcc0c400fcc0f600fdc0030000c0c0 +f700fcc0800080008000bc00800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000f9c0d40000c0f10000c0e90001c0c0f300fd +c0d300fcc0f600fdc0f00000c0a40006c0c0000000c0c0f400fdc0e600fd +c0a900fcc08000a6000600c0c00000c0c0d50001c0c0f20001c0c0e90001 +c0c0f20001c0c0d40005c0c00000c0c0f60001c0c0f10001c0c0a40006c0 +c0000000c0c0f30001c0c0e50001c0c0aa0005c0c00000c0c08000a70006 +00c0c0000000c0d50001c0c0f20001c0c0d90001c0c0d50001c0c0fc0000 +c0f60001c0c0f10001c0c0a40006c0c0000000c0c0f30001c0c0e50001c0 +c0ab0001c0c0fc0000c08000a7001000c0c000c0000000c0c0c000c0c000 +0000fcc0fc00fbc0fd00fbc0f600fac0090000c0c00000c0c00000fac0fd +00fbc0070000c0c000c0c0c0fc00fdc0fc00fcc0fa0001c0c0d50001c0c0 +f10004c0c000c0c0f600fac0a6000dc0c0000000c0c000c0c000c0c0c0fc +00fcc0fd00fbc0f500fbc0fd0007c0c000c0c0000000fcc0fd0010c0c000 +c0c0c0000000c0c0c000c0c00000fbc0fd00fbc0d60001c0c0f20006c0c0 +000000c0c0f70005c0c00000c0c08000c6000000fcc0fd00f9c0fb0012c0 +c00000c0c0000000c0c000c0c0000000c0c0f50001c0c0fc0005c0c00000 +c0c0fc0001c0c0fc000ec0c0000000c0c00000c0c0c000c0c0fc0001c0c0 +f90001c0c0fb0001c0c0d50001c0c0f100fdc00200c0c0f50001c0c0a400 +1ec0c0000000c0c00000c0c00000c0c00000c0c000c0c00000c0c0000000 +c0c0f7000ec0c0000000c0c00000c0c0c000c0c0fb0022c0c0000000c0c0 +0000c0c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0d700 +01c0c0f10004c0c000c0c0f60005c0c00000c0c08000c6001000c0c000c0 +000000c0c000c000c0c00000fbc0030000c0c0f90001c0c0f10001c0c0fc +0005c0c00000c0c0fc0001c0c0fc000ec0c0000000c0c00000c0c00000c0 +c0fc0001c0c0fc00fbc0fb0001c0c0d50001c0c0fa00f9c0070000c0c000 +00c0c0f50001c0c0a4001ec0c0000000c0c00000c0c00000c0c000c0c000 +00c0c00000c0c0000000c0c0f70001c0c0f90007c0c00000c0c00000fbc0 +fd000ec0c00000c0c000c0c00000c0c00000f9c0030000c0c0d30001c0c0 +fa00f9c0fd00fdc0f50005c0c00000c0c08000c6000200c0c0fb0011c0c0 +00c000c0c000c0c00000c0c00000c0c0f800fdc0f30001c0c0fc0005c0c0 +0000c0c0fc0001c0c0fc000ac0c0000000c0c00000c0c0f8000ac0c00000 +00c0c00000c0c0fb0001c0c0d50001c0c0f10005c0c00000c0c0f50001c0 +c0a4001ec0c0000000c0c00000c0c00000c0c000c0c00000c0c00000c0c0 +000000c0c0f70001c0c0f90020c0c00000c0c000c0c00000c0c0000000c0 +c00000c0c000c0c00000c0c00000c0c0f800fdc0d50001c0c0f000fdc0f5 +0005c0c00000c0c08000c6001900c0c0000000c000c0c000c000c0c000c0 +c00000c0c00000c0c0f60001c0c0f40001c0c0fc0005c0c00000c0c0fc00 +01c0c0fc000ac0c0000000c0c00000c0c0f8000ac0c0000000c0c00000c0 +c0fb0001c0c0d50001c0c0fc0000c0f60005c0c00000c0c0f50001c0c0a4 +001ec0c0000000c0c00000c0c00000c0c000c0c00000c0c00000c0c00000 +00c0c0f70001c0c0f90020c0c00000c0c000c0c00000c0c0000000c0c000 +00c0c000c0c00000c0c00000c0c0f60001c0c0d60001c0c0fc0000c0f500 +fdc0f50005c0c00000c0c08000c6002600c0c00000c0c000c0c000c000c0 +c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0f5000bc0c0 +00c0c000c0c00000c0c0fc0010c0c000c0c000c0c0000000c0c00000c0c0 +f8000ac0c0000000c0c00000c0c0fb0001c0c0d40005c0c00000c0c0f600 +05c0c00000c0c0f50004c0c000c0c0a7001ec0c0000000c0c00000c0c000 +00c0c000c0c00000c0c00000c0c0000000c0c0f70036c0c0000000c0c000 +00c0c00000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c0 +0000c0c0000000c0c000c0c0000000c0c0d60005c0c00000c0c0f60004c0 +c000c0c0f60005c0c00000c0c08000c600f9c01100c0c0000000c0c00000 +c0c0c000c0c00000fbc0fd00fbc0f300fdc0fd00fdc00200c0c0fc00fdc0 +fd00fbc0010000fcc0fa00fcc0fd00fdc00500c0c0000000fcc0d400fcc0 +f600fdc0030000c0c0f400fdc0a500fbc0fd000fc0c00000c0c00000c0c0 +c000c0c00000fbc0f500fbc01a0000c0c0c00000c0c00000c0c0c000c0c0 +0000c0c00000c0c00000fbc0fd00fbc0fd00fbc0d400fcc0f60006c0c000 +0000c0c0f600fdc00200c0c08000c700800080009c0001c0c080008000e6 +0080008000a00005c0c00000c0c080008000e600800080009f00fcc08000 +8000e5008000800080008000800080008000800080008000800080008000 +80008000fac0bc00fdc0b300fcc0f600fdc0f100fcc0a600f9c0f40001c0 +c0fa0000c0f400f9c0a500fcc0e400fcc08000c6000600c0c00000c0c0bc +0001c0c0b40005c0c00000c0c0f60001c0c0f20005c0c00000c0c0a60005 +c0c00000c0c0f40001c0c0fb0001c0c0f30005c0c00000c0c0a60005c0c0 +0000c0c0e60005c0c00000c0c08000c7000600c0c00000c0c0bc0001c0c0 +b50001c0c0fc0000c0f60001c0c0f30001c0c0fc0000c0a60005c0c00000 +00c0ed0001c0c0f30005c0c0000000c0a70001c0c0fc0000c0e70001c0c0 +fc0000c08000c7001600c0c00000c0c000c0c00000c0c00000c0c0000000 +c0c0f700fdc00500c0c0000000fcc0fd0010c0c000c0c0c00000c0c00000 +c0c0000000fcc0fa0001c0c0fc00fbc0be0001c0c0f10004c0c000c0c0f6 +0001c0c0f200fdc00200c0c0b50016c0c000c0000000c0c0000000c0c000 +0000c0c0c0000000fac0f5000fc0c000c0000000c0c0c000c0c0000000fc +c0fc00fbc0fd00fbc0c60001c0c0f20006c0c0000000c0c0f70001c0c0f1 +00fbc08000d6000000fbc0100000c0c00000c0c00000c0c0000000c0c0f7 +00f9c0fb0011c0c0000000c0c00000c0c000c0c00000c0c0fa0001c0c0fb +000bc0c0000000c0c0000000c0c0bf0001c0c0f100fdc00200c0c0f70001 +c0c0f200f9c0b600fcc0fc0004c0c000c0c0fb0001c0c0fb0001c0c0f300 +fcc0fd00f9c0fb0012c0c00000c0c0000000c0c000c0c0000000c0c0c700 +01c0c0f10004c0c000c0c0f60001c0c0f20006c0c0000000c0c08000d700 +1600c0c00000c0c000c0c00000c0c00000c0c0000000c0c0f70008c0c000 +c000c0c00000fbc0fd000fc0c00000c0c000c0c00000c0c0000000fbc0fb +0001c0c0fc0001c0c0bb0001c0c0fa00f9c0070000c0c00000c0c0f70001 +c0c0fa00f9c00700c0c000c000c0c0b60003c0c000c0fb00fdc0fa0001c0 +c0fb0001c0c0f3000fc0c000c0000000c0c000c000c0c00000fbc0030000 +c0c0f90001c0c0c30001c0c0fa00f9c0fd00fdc0f50001c0c0fa00f9c002 +00c0c08000d2001600c0c00000c0c000c0c00000c0c00000c0c0000000c0 +c0f70025c0c000c000c0c000c0c00000c0c0000000c0c00000c0c000c0c0 +0000c0c00000c0c00000c0c0fb0001c0c0fb00fdc0bd0001c0c0f10005c0 +c00000c0c0f70001c0c0f20006c0c000c000c0c0b60001c0c0f900fdc0fa +0001c0c0fb0001c0c0f30001c0c0fb0011c0c000c000c0c000c0c00000c0 +c00000c0c0f800fdc0c50001c0c0f000fdc0f50001c0c0f20001c0c08000 +d2001600c0c00000c0c000c0c00000c0c00000c0c0000000c0c0f70025c0 +c000c000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c000 +00c0c00000c0c0fb0001c0c0f90001c0c0be0001c0c0fc0000c0f60005c0 +c00000c0c0f70001c0c0fc0000c0f70006c0c000c000c0c0b6000bc0c000 +0000c0000000c0c0c0fa0001c0c0fb0001c0c0f30018c0c0000000c000c0 +c000c000c0c000c0c00000c0c00000c0c0f60001c0c0c60001c0c0fc0000 +c0f500fdc0f50001c0c0fc0000c0f70001c0c08000d2001600c0c00000c0 +c000c0c00000c0c00000c0c0000000c0c0f70025c0c000c000c0c000c0c0 +0000c0c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb00 +0bc0c0000000c0c0000000c0c0be0005c0c00000c0c0f60005c0c00000c0 +c0f60005c0c00000c0c0f70006c0c000c000c0c0b6000cc0c00000c0c000 +00c0c000c0c0fb0001c0c0fb0004c0c000c0c0f60025c0c00000c0c000c0 +c000c000c0c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0 +c60005c0c00000c0c0f60004c0c000c0c0f50005c0c00000c0c0f70006c0 +c0000000c0c08000d700fac0fd00fdc00400c0c00000fac0f70029c0c000 +0000c0c00000c0c0c000c0c00000c0c00000c0c00000c0c0c000c0c00000 +c0c0c000c0c0000000fcc0fd00fbc0bc00fcc0f600fdc0030000c0c0f500 +fcc0f60006c0c0000000c0c0b700f9c00a00c0c0000000c0c0000000fcc0 +fb00fdc0f600f9c01100c0c0000000c0c00000c0c0c000c0c00000fbc0fd +00fbc0c400fcc0f60006c0c0000000c0c0f500fcc0f500fbc08000d600eb +0001c0c080008000800080009700ec0001c0c080008000800080009600f0 +00fbc0800080008000800095008000800080008000800080008000800080 +00800080008000800080008000fac0a400fdc0cb00fcc0f600fdc0f00001 +c0c0800080008000bd000600c0c00000c0c0a40001c0c0cc0005c0c00000 +c0c0f60001c0c0f00001c0c0800080008000bd000600c0c00000c0c0a400 +01c0c0cd0001c0c0fc0000c0f60001c0c0800080008000ab001000c0c000 +00c0c000c0c000c0c0c0000000fbc00a0000c0c0000000c0c00000fbc0fd +00fbc0f600fdc00500c0c0000000fcc0fd0010c0c000c0c0c00000c0c000 +00c0c0000000fcc0fa0001c0c0fc00fbc0d60001c0c0f10004c0c000c0c0 +f400fdc0800080008000bd000000fbc0fd00fdc02200c0c000c0c0000000 +c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f700f9c0 +fb0011c0c0000000c0c00000c0c000c0c00000c0c0fa0001c0c0fb000bc0 +c0000000c0c0000000c0c0d70001c0c0f100fdc00200c0c0f40001c0c080 +0080008000bd002200c0c00000c0c00000c0c00000c0c000c0c0000000c0 +c000c0c000c000c0c00000c0c0fb00f9c0f70008c0c000c000c0c00000fb +c0fd000fc0c00000c0c000c0c00000c0c0000000fbc0fb0001c0c0fc0001 +c0c0d30001c0c0fa00f9c0070000c0c00000c0c0f40001c0c08000800080 +00bd000a00c0c00000c0c00000c0c0fb0019c0c0000000c0c000c0c000c0 +00c0c0000000c0c0c0000000c0c0f20025c0c000c000c0c000c0c00000c0 +c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb0001c0c0 +fb00fdc0d50001c0c0f10005c0c00000c0c0f40001c0c0800080008000bd +000a00c0c00000c0c00000c0c0fb000ec0c0000000c0c000c0c000c000c0 +c0fb0005c0c00000c0c0f20025c0c000c000c0c000c0c00000c0c0000000 +c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb0001c0c0f90001c0 +c0d60001c0c0fc0000c0f60005c0c00000c0c0f40001c0c0800080008000 +bd000a00c0c00000c0c00000c0c0fb0007c0c0000000c0c000f9c00f00c0 +c0000000c0c000c0c0000000c0c0f70025c0c000c000c0c000c0c00000c0 +c0000000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fb000bc0c0 +000000c0c0000000c0c0d60005c0c00000c0c0f60005c0c00000c0c0f400 +01c0c0800080008000bd00fac0010000fcc0fb00fbc0fd0007c0c000c0c0 +000000fbc0fd00fbc0f60029c0c0000000c0c00000c0c0c000c0c00000c0 +c00000c0c00000c0c0c000c0c00000c0c0c000c0c0000000fcc0fd00fbc0 +d400fcc0f600fdc0030000c0c0f500fcc0800080008000be008000800080 +008000800080008000800080008000800080008000800080008000800080 +00800080008000800080008000800080008000030000c0c0b20001c0c080 +008000d400fd0000c0f10000c0f90001c0c0ea0000c0cc00fdc0d300f9c0 +fc0001c0c0fb00fdc0cd00f9c0010000fbc0fc00fcc0f30001c0c0c50006 +c0c0000000c0c0f40001c0c080008000d500040000c0c0c0f30001c0c0f9 +0001c0c0eb0001c0c0cb0001c0c0d2000bc0c00000c0c0000000c0c0c0fc +0004c0c000c0c0cd0015c0c00000c0c000c0c0000000c0c00000c0c00000 +c0c0f30001c0c0c600fdc00300c0c0c0f30001c0c080008000d6000500c0 +c000c0c0f40001c0c0e20001c0c0cb0001c0c0d20007c0c0000000c00000 +fcc0fd0006c0c0000000c0c0ce0010c0c0000000c000c0c0000000c0c000 +c0c0fc0000c0b700f9c080008000c70008c0c0000000c0c00000fbc00100 +00fac0fc00fdc0fd0008c0c0000000c0c00000fcc0fd00fac0fd00fbc0f6 +00fdc00500c0c0000000fbc0120000c0c000c0c0c00000c0c00000c0c000 +0000fcc0fc00fcc0fd0005c0c000c0c0c0e50003c0c000c0fa000bc0c000 +0000c0c0000000c0c0ee00fbc0070000c0c000c0c0c0ed0003c0c000c0fc +0001c0c0fb0001c0c0d900fbc0070000c0c000c0c0c0e600f9c080008000 +c70013c0c0000000c0c000c0c0000000c0c0000000c0c0f9000bc0c00000 +00c0c0000000c0c0fb0001c0c0fc0001c0c0fc0006c0c0000000c0c0f700 +f9c01e00c0c0000000c0c00000c0c00000c0c000c0c00000c0c0000000c0 +c000c0c0fa000ac0c0000000c0c0c000c0c0e600fcc0fa000bc0c0000000 +c0c000c000c0c0ef000ec0c0000000c0c00000c0c0c000c0c0ee00fcc0fb +00fdc0fd0001c0c0da000ec0c0000000c0c00000c0c0c000c0c0e70006c0 +c000c000c0c080008000c700f9c00200c0c0f80001c0c0f9000dc0c00000 +00c0c0000000c0c00000fbc0fc0001c0c0fc00f9c0f70007c0c000c000c0 +c000f9c0190000c0c00000c0c000c0c00000c0c0000000c0c00000c0c000 +00fbc0fd0005c0c00000c0c0e60003c0c000c0fa000bc0c0000000c0c000 +c000c0c0ef000ec0c0000000c0c00000c0c00000c0c0ee0003c0c000c0f9 +0005c0c00000c0c0da000ec0c0000000c0c00000c0c00000c0c0e70007c0 +c0000000c0c000f9c080008000cf0009c0c0000000c0c000c0c0f80001c0 +c0f90012c0c0000000c0c0000000c0c000c0c00000c0c0fc0001c0c0fc00 +01c0c0f20009c0c000c000c0c000c0c0f90021c0c00000c0c000c0c00000 +c0c0000000c0c00000c0c000c0c00000c0c0000000c0c0e20001c0c0f800 +0bc0c0000000c0c0000000c0c0ef000ac0c0000000c0c00000c0c0ea0001 +c0c0f60004c0c000c0c0da000ac0c0000000c0c00000c0c0e30006c0c000 +0000c0c080008000c70009c0c0000000c0c000c0c0f80001c0c0f90012c0 +c0000000c0c0000000c0c000c0c00000c0c0fc0001c0c0fc0001c0c0f200 +09c0c000c000c0c000c0c0f90021c0c00000c0c000c0c00000c0c0000000 +c0c00000c0c000c0c00000c0c0000000c0c0e20001c0c0f8000bc0c00000 +00c0c0000000c0c0ef000ac0c0000000c0c00000c0c0ea0010c0c0000000 +c000c0c0000000c0c000c0c0fc0000c0df000ac0c0000000c0c00000c0c0 +e30006c0c0000000c0c080008000c70016c0c0000000c0c000c0c0000000 +c0c0000000c0c000c0c0fc0001c0c0fc000cc0c000c0c00000c0c00000c0 +c0fc000cc0c000c0c000c0c0000000c0c0f70032c0c000c000c0c000c0c0 +000000c0c00000c0c00000c0c000c0c00000c0c0000000c0c00000c0c000 +c0c00000c0c0000000c0c0e20001c0c0f80001c0c0fc0004c0c000c0c0ee +000ac0c0000000c0c00000c0c0ea0015c0c00000c0c000c0c0000000c0c0 +0000c0c00000c0c0df000ac0c0000000c0c00000c0c0e30006c0c0000000 +c0c080008000c70008c0c0000000c0c00000fbc0fb00fdc0fc00fcc0fc00 +fdc0fc00fdc00200c0c0fc00fdc0fd00fbc0f60008c0c0000000c0c00000 +fbc0fd000fc0c00000c0c00000c0c0c000c0c00000fbc0fd00fdc00300c0 +c000fcc0e400fcc0fb00fac0fd00fdc0ec00fbc0010000fcc0ec00f9c001 +0000fbc0fc00fcc0dd00fbc0010000fcc0e40006c0c0000000c0c0800080 +00c700800080008000800080008000800080008000800080008000800080 +0080008000800080008000800080008000800080008000f60001c0c0ea00 +01c0c08000aa0001c0c0ea0001c0c0800080009400fc0001c0c0fb0001c0 +c0fb00fcc0f40001c0c0a10000c0fc00fdc0e900fcc0fd00fac00000fac0 +010000fcc0f400fdc0d0000bc0c0000000c0c0000000c0c0f50001c0c0a1 +0000c0fc00fdc0eb0006c0c0000000c0c0f40000c0e80001c0c0e30000c0 +fa00fdc0fa0000c0fa0001c0c0f400fdc08300fd0001c0c0f9000ac0c000 +0000c0c00000c0c0f50001c0c0a20001c0c0fb0001c0c0ea0007c0c00000 +c0c00000fac00b0000c0c00000c0c00000c0c0f20001c0c0cf000ac0c000 +00c0c0c000c0c0c0f50001c0c0a20001c0c0fb0001c0c0eb00fdc00300c0 +c0c0f50001c0c0e90001c0c0e300fdc0fa0001c0c0fb0001c0c0f90001c0 +c0f40001c0c08300030000c0c0f40001c0c0fc0000c0f60001c0c0a10001 +c0c0fb0001c0c0eb0001c0c0fc0014c00000c000c0c000c00000c0c00000 +c0c00000c0c0f20001c0c0cb00f9c0f60001c0c0a10001c0c0fb0001c0c0 +eb00f9c0f50001c0c0ea0001c0c0e30004c0c000c0c0fb0001c0c0fb0001 +c0c0f80001c0c0f50001c0c08300030000c0c0f40001c0c0e200fdc00500 +c0c0000000fbc0fd00fcc0fd0008c0c000c0c0c0000000fbc0f60008c0c0 +0000c0c0000000fbc0fd00fbc0f600fac0fd0007c0c000c0c0000000fbc0 +f60001c0c0f70001c0c0fc0009c0c00000c0c00000c0c0f20007c0c00000 +c0c00000fbc0080000c0c0000000c0c0df00f9c0e700fdc00500c0c00000 +00fbc0fd00fcc0fd0008c0c000c0c0c0000000fbc0f60008c0c00000c0c0 +000000fbc0fd00fbc0f600fac0fd0007c0c000c0c0000000fbc0f600f9c0 +010000fbc0010000fac0fd00fcc0f30001c0c0fb00fbc0070000c0c000c0 +c0c0f60006c0c0000000c0c0fc0004c0c0000000fac0fa0001c0c0f50007 +c0c00000c0c00000fbc0080000c0c0000000c0c09700030000c0c0f40001 +c0c0e200f9c00700c0c0000000c0c0fb0012c0c0000000c0c00000c0c000 +c0c0000000c0c0f70016c0c00000c0c00000c0c0000000c0c000c0c00000 +00c0c0f50001c0c0fb00fdc00a00c0c000c0c0000000c0c0f70001c0c0f7 +0001c0c0fc00fbc0fd0001c0c0f20015c0c000c0c00000c0c0000000c0c0 +00c0c0000000c0c0df0006c0c000c000c0c0e700f9c00700c0c0000000c0 +c0fb0012c0c0000000c0c00000c0c000c0c0000000c0c0f70016c0c00000 +c0c00000c0c0000000c0c000c0c0000000c0c0f50001c0c0fb00fdc00a00 +c0c000c0c0000000c0c0f70013c0c000c000c0c000c0c0000000c0c00000 +00c0c0f80001c0c0f40001c0c0fc000ec0c0000000c0c00000c0c0c000c0 +c0f70006c0c0000000c0c0fc0001c0c0fb0001c0c0f80001c0c0f50015c0 +c000c0c00000c0c0000000c0c000c0c0000000c0c09700030000c0c0f400 +01c0c0fa00f9c0ef0007c0c000c000c0c000f9c0010000fbc0fd0009c0c0 +0000c0c00000c0c0f3000ac0c00000c0c0000000c0c0fb00f9c0f50001c0 +c0fb0006c0c00000c0c000f9c0f70001c0c0f70001c0c0fc0009c0c000c0 +c0000000c0c0f200fcc0fd00f9c00700c0c0000000c0c0df0007c0c00000 +00c0c000f9c0ef0007c0c000c000c0c000f9c0010000fbc0fd0009c0c000 +00c0c00000c0c0f3000ac0c00000c0c0000000c0c0fb00f9c0f50001c0c0 +fb0006c0c00000c0c000f9c0f70007c0c0000000c0c000f9c0fd0001c0c0 +fb00fbc0f40001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f700f9 +c0fc0001c0c0fb0001c0c0f80001c0c0f500fcc0fd00f9c00700c0c00000 +00c0c09700030000c0c0f40001c0c0e20009c0c000c000c0c000c0c0fa00 +14c0c00000c0c0000000c0c00000c0c0000000c0c0c0f50005c0c00000c0 +c0fc00fdc0fd0001c0c0f00001c0c0fb0008c0c00000c0c000c0c0f20001 +c0c0f70001c0c0fc0009c0c00000c0c00000c0c0f200fcc0fd0001c0c0fa +0006c0c0000000c0c0df0006c0c0000000c0c0e70009c0c000c000c0c000 +c0c0fa0014c0c00000c0c0000000c0c00000c0c0000000c0c0c0f50005c0 +c00000c0c0fc00fdc0fd0001c0c0f00001c0c0fb0008c0c00000c0c000c0 +c0f20009c0c0000000c0c000c0c0f80001c0c0fc0005c0c00000c0c0f400 +01c0c0fc000ac0c0000000c0c00000c0c0f30006c0c0000000c0c0fc0001 +c0c0fb0001c0c0f80001c0c0f500fcc0fd0001c0c0fa0006c0c0000000c0 +c09700030000c0c0f40001c0c0fc0000c0e70009c0c000c000c0c000c0c0 +fa000ec0c00000c0c0000000c0c00000c0c0fb0001c0c0f60005c0c00000 +c0c0fa0005c0c00000c0c0f00001c0c0fb0008c0c00000c0c000c0c0f200 +01c0c0fc0000c0fc0001c0c0fc000dc0c00000c0c00000c0c0000000c0f6 +0008c0c000c0c00000c0c0fa0006c0c0000000c0c0df0006c0c0000000c0 +c0e70009c0c000c000c0c000c0c0fa000ec0c00000c0c0000000c0c00000 +c0c0fb0001c0c0f60005c0c00000c0c0fa0005c0c00000c0c0f00001c0c0 +fb0008c0c00000c0c000c0c0f20009c0c0000000c0c000c0c0f80001c0c0 +fc0005c0c00000c0c0f40001c0c0fc000ac0c0000000c0c00000c0c0f300 +06c0c0000000c0c0fc0001c0c0fb0001c0c0f80001c0c0f50008c0c000c0 +c00000c0c0fa0006c0c0000000c0c09700fd0001c0c0f40005c0c00000c0 +c0e70026c0c000c000c0c000c0c0000000c0c000c0c00000c0c0000000c0 +c00000c0c000c0c0000000c0c0f70016c0c00000c0c00000c0c0000000c0 +c000c0c0000000c0c0f50014c0c000c0c00000c0c00000c0c000c0c00000 +00c0c0f60005c0c00000c0c0fc0001c0c0fc000dc0c00000c0c00000c0c0 +0000c0c0f60015c0c00000c0c000c0c0000000c0c000c0c0000000c0c0fc +0001c0c0e50006c0c0000000c0c0e70026c0c000c000c0c000c0c0000000 +c0c000c0c00000c0c0000000c0c00000c0c000c0c0000000c0c0f70016c0 +c00000c0c00000c0c0000000c0c000c0c0000000c0c0f50014c0c000c0c0 +0000c0c00000c0c000c0c0000000c0c0f7001dc0c0000000c0c000c0c000 +0000c0c0000000c0c000c0c000c0c00000c0c0f3000fc0c0000000c0c000 +0000c0c00000c0c0f30006c0c0000000c0c0fc0001c0c0fb0004c0c000c0 +c0fc0001c0c0f40015c0c00000c0c000c0c0000000c0c000c0c0000000c0 +c0fc0001c0c09d00fc0001c0c0f400fcc0e60008c0c0000000c0c00000fb +c0fd00fdc00c00c0c00000c0c00000c0c00000fbc0f500fdc00400c0c000 +00fbc0fd00fbc0f300fdc00a0000c0c0c00000c0c00000fbc0f400fcc0fc +00fcc0090000c0c0c00000c0c000f9c0f700fdc0050000c0c00000fbc0fd +00fac0fc0001c0c0e50006c0c0000000c0c0e70008c0c0000000c0c00000 +fbc0fd00fdc00c00c0c00000c0c00000c0c00000fbc0f500fdc00400c0c0 +0000fbc0fd00fbc0f300fdc00a0000c0c0c00000c0c00000fbc0f60008c0 +c0000000c0c00000fbc0fb00fdc0fd00fdc00200c0c0f30004c0c0000000 +fbc0010000fcc0f40009c0c0000000c0c0000000fcc0fb00fdc0fc0001c0 +c0f400fdc0050000c0c00000fbc0fd00fac0fc0001c0c09d008000a30001 +c0c080008000ca0001c0c097008000a40001c0c080008000ca0001c0c096 +008000a800fbc080008000cd00fbc0950080008000800080008000800080 +0080008000800080008000800080008000010000fcc0fb00fdc0d600fdc0 +c30006c0c0000000c0c0f40000c0ec00fdc0980001c0c0ea0000c0e900fd +c0f30000c0dc00f9c0010000fbc0fc00fcc0f300fdc0f400fdc0fb00fdc0 +e200fdc0f600fdc0e80000c0fc00fdc0e300fdc0d80000c0e20001c0c0e4 +00fd0001c0c0fb0004c0c000c0c0d60001c0c0c300fdc00300c0c0c0f500 +01c0c0eb0001c0c0980001c0c0eb0001c0c0e80001c0c0f40001c0c0db00 +15c0c00000c0c000c0c0000000c0c00000c0c00000c0c0f50004c0c000c0 +c0f40001c0c0fa0001c0c0e10001c0c0f50001c0c0e90001c0c0fb0001c0 +c0e20001c0c0d90001c0c0e10001c0c0e500fd0001c0c0fb0004c0c00000 +c0d60001c0c0c300f9c0f50001c0c0eb0001c0c0810001c0c0e80001c0c0 +f40001c0c0db0010c0c0000000c000c0c0000000c0c000c0c0fc0000c0f5 +0004c0c00000c0f40001c0c0fa0001c0c0e10001c0c0f50001c0c0e90001 +c0c0fb0001c0c0e20001c0c0d90001c0c0e00001c0c0e600fd0001c0c0fb +0001c0c0f40008c0c0000000c0c00000fbc0070000c0c00000c0c0f50007 +c0c000c0c0000000fcc0fd0008c0c0000000c0c00000fbc0f60008c0c000 +c0c0c0000000fbc0f600f9c0010000fbc0010000fac0fd00fcc0f40007c0 +c00000c0c00000fbc0080000c0c0000000c0c0ef0008c0c0000000c0c000 +00fbc0070000c0c00000c0c0f600fdc00500c0c0000000fcc0fd0006c0c0 +000000c0c0f500fdc0fd0008c0c000c0c0c0000000fbc0010000fac0fd00 +fbc0fd00fcc0fb00fcc0f600fac0120000c0c0000000c0c000c0c000c0c0 +c0000000fbc0f50003c0c000c0fc0001c0c0fb0001c0c0f00001c0c0fb00 +fbc0fb0001c0c0fa0001c0c0fc00fbc00a0000c0c0000000c0c00000fbc0 +fc00fcc0f500fcc0fd0006c0c0000000c0c0f700fac0fd0007c0c000c0c0 +000000fbc0f500fbc0fd0007c0c000c0c0000000fcc0fd0008c0c000c0c0 +c0000000fcc0fc00fbc0010000fac0fd00fbc0070000c0c000c0c0c0f200 +01c0c0e600fd0001c0c0fc00fcc0f50015c0c0000000c0c000c0c0000000 +c0c000c0c00000c0c0f500fdc00200c0c0fb0012c0c00000c0c0000000c0 +c000c0c0000000c0c0f6000dc0c00000c0c000c0c0000000c0c0f70013c0 +c000c000c0c000c0c0000000c0c0000000c0c0f80001c0c0f50015c0c000 +c0c00000c0c0000000c0c000c0c0000000c0c0ef0015c0c0000000c0c000 +c0c0000000c0c000c0c00000c0c0f600f9c0fb000ac0c00000c0c0000000 +c0c0f40001c0c0fc0012c0c00000c0c000c0c0000000c0c0000000c0c0fc +0006c0c0000000c0c0fb0009c0c0000000c0c000c0c0f40001c0c0fc0016 +c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f600fcc0fb00fd +c0fd0001c0c0f100fcc0fd0006c0c0000000c0c0fc0001c0c0fa0022c0c0 +000000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c0 +00c0c0f5000dc0c000c0c00000c0c0000000c0c0f50001c0c0fb00fdc00a +00c0c000c0c0000000c0c0f7000ec0c0000000c0c00000c0c0c000c0c0fb +000ac0c0000000c0c0c000c0c0fb000fc0c00000c0c0000000c0c0000000 +c0c0fc000ec0c0000000c0c00000c0c0c000c0c0f30001c0c0e600fd0001 +c0c0fb0001c0c0f40015c0c0000000c0c000c0c0000000c0c000c0c00000 +c0c0f50007c0c00000c0c00000fbc0090000c0c0000000c0c000f9c0f600 +0dc0c00000c0c000c0c0000000c0c0f70007c0c0000000c0c000f9c0fd00 +01c0c0fb00fbc0f500fcc0fd00f9c00700c0c0000000c0c0ef0015c0c000 +0000c0c000c0c0000000c0c000c0c00000c0c0f60008c0c000c000c0c000 +00fbc0080000c0c0000000c0c0f40001c0c0fc0009c0c00000c0c00000c0 +c0f90001c0c0fc00f9c0010000fbc0070000c0c00000c0c0f40001c0c0fc +000fc0c0000000c0c00000c0c00000c0c000f9c0f60003c0c000c0f90005 +c0c00000c0c0f00001c0c0fc0006c0c0000000c0c0fc0001c0c0fa0014c0 +c0000000c0c0000000c0c000c0c000c000c0c000f9c00600c0c00000c0c0 +f5000dc0c00000c0c000c0c0000000c0c0f50001c0c0fb0006c0c00000c0 +c000f9c0f70001c0c0f90007c0c00000c0c00000fbc0fd0007c0c00000c0 +c00000fbc0030000c0c0f80001c0c0fc00f9c0070000c0c00000c0c0f300 +01c0c0e600fd0001c0c0fb0001c0c0f40015c0c0000000c0c000c0c00000 +00c0c000c0c00000c0c0f50018c0c00000c0c000c0c00000c0c00000c0c0 +000000c0c000c0c0f1000dc0c00000c0c000c0c0000000c0c0f70009c0c0 +000000c0c000c0c0f80001c0c0fc0005c0c00000c0c0f500fcc0fd0001c0 +c0fa0006c0c0000000c0c0ef0015c0c0000000c0c000c0c0000000c0c000 +c0c00000c0c0f60016c0c000c000c0c000c0c00000c0c00000c0c0000000 +c0c0f40001c0c0fc000bc0c00000c0c0000000c0c0c0fb0001c0c0fc0001 +c0c0fa000dc0c00000c0c00000c0c00000c0c0f40001c0c0fc0011c0c000 +0000c0c00000c0c00000c0c000c0c0f10001c0c0f60004c0c000c0c0f000 +01c0c0fc0006c0c0000000c0c0fc0001c0c0fa0016c0c0000000c0c00000 +00c0c000c0c000c000c0c000c0c0fa0005c0c00000c0c0f5000dc0c00000 +c0c000c0c0000000c0c0f50001c0c0fb0008c0c00000c0c000c0c0f20001 +c0c0f90011c0c00000c0c000c0c00000c0c0000000c0c0fb0009c0c00000 +c0c00000c0c0f80001c0c0fc0001c0c0f90001c0c0ef0001c0c0e600fd00 +01c0c0fb0001c0c0f40015c0c0000000c0c000c0c0000000c0c000c0c000 +00c0c0f50018c0c00000c0c000c0c00000c0c00000c0c0000000c0c000c0 +c0f1000dc0c00000c0c000c0c0000000c0c0f70009c0c0000000c0c000c0 +c0f80001c0c0fc0005c0c00000c0c0f50008c0c000c0c00000c0c0fa0006 +c0c0000000c0c0fc0001c0c0f50015c0c0000000c0c000c0c0000000c0c0 +00c0c00000c0c0f60016c0c000c000c0c000c0c00000c0c00000c0c00000 +00c0c0f40001c0c0fc0005c0c00000c0c0fb0001c0c0fc0001c0c0fc0001 +c0c0fa000dc0c00000c0c00000c0c00000c0c0f40001c0c0fc0011c0c000 +0000c0c00000c0c00000c0c000c0c0f10010c0c0000000c000c0c0000000 +c0c000c0c0fc0000c0f50001c0c0fc0006c0c0000000c0c0fc0001c0c0fa +0016c0c0000000c0c0000000c0c000c0c000c000c0c000c0c0fa0005c0c0 +0000c0c0f5000dc0c00000c0c000c0c0000000c0c0f50001c0c0fb0008c0 +c00000c0c000c0c0f20001c0c0f90011c0c00000c0c000c0c00000c0c000 +0000c0c0fb0009c0c00000c0c00000c0c0f80001c0c0fc0001c0c0f90001 +c0c0ef0001c0c0e600fd0001c0c0fb0001c0c0f40015c0c0000000c0c000 +c0c0000000c0c000c0c00000c0c0f5001dc0c00000c0c000c0c00000c0c0 +000000c0c000c0c00000c0c0000000c0c0f6000dc0c00000c0c000c0c000 +0000c0c0f7001dc0c0000000c0c000c0c0000000c0c0000000c0c000c0c0 +00c0c00000c0c0f50015c0c00000c0c000c0c0000000c0c000c0c0000000 +c0c0fc0001c0c0f50015c0c0000000c0c000c0c0000000c0c000c0c00000 +c0c0f60016c0c000c000c0c000c0c00000c0c00000c0c0000000c0c0f400 +01c0c0fc002cc0c00000c0c000c0c0000000c0c0000000c0c000c0c000c0 +c0000000c0c000c0c00000c0c00000c0c00000c0c0f4001cc0c000c0c000 +c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f60015c0c00000 +c0c000c0c0000000c0c00000c0c00000c0c0f50001c0c0fc0006c0c00000 +00c0c0fc0001c0c0fa000cc0c0000000c0c0000000c0c000f9c00e00c0c0 +000000c0c000c0c00000c0c0f5000dc0c00000c0c000c0c0000000c0c0f5 +0014c0c000c0c00000c0c00000c0c000c0c0000000c0c0f7001ac0c00000 +00c0c00000c0c00000c0c000c0c00000c0c0000000c0c0fb0022c0c00000 +c0c00000c0c0000000c0c0000000c0c000c0c000c0c0000000c0c00000c0 +c0f80001c0c0fa0001c0c0e500010000fcc0fd00fcc0f400fac0010000fb +c0fd00fdc00200c0c0f700fdc0110000c0c00000c0c0c000c0c0000000c0 +c0c0fc00fbc0f50007c0c00000c0c00000fbc0f60008c0c0000000c0c000 +00fbc0fb00fdc0fd00fdc00200c0c0f700fdc0050000c0c00000fbc0fd00 +fac0fc0001c0c0f400fac0010000fbc0fd00fdc00200c0c0f70010c0c000 +0000c0c00000c0c0c000c0c00000fac0f500fcc0fd0007c0c00000c0c000 +00fbc0fb00fdc0fd00fbc0fd00fdc00a00c0c00000c0c0c000c0c0f400fd +c0fd00fac0010000fbc0fd00fbc0f600f9c0010000fbc0fc00fcc0f500fc +c0fc00fbc0fc00fcc0fc00fcc0fd00fbc0fd0007c0c000c0c0000000fbc0 +fd00fdc00200c0c0f600fbc0fd00fac0f400fdc00a0000c0c0c00000c0c0 +0000fbc0f500fbc0110000c0c0c00000c0c00000c0c0c000c0c000fcc0fb +00fdc00400c0c00000fbc0fb00fdc0fd00fbc0010000fcc0f90001c0c0fb +0001c0c0e400e30001c0c08000ea0006c0c0000000c0c0ef0001c0c0d200 +01c0c0aa0005c0c00000c0c08000f60001c0c08000e700e40001c0c08000 +ea0001c0c0ea0001c0c0d20001c0c0aa0006c0c0000000c0c08000f70001 +c0c08000e600e800fbc08000ed00fbc0ed00fbc0d500fbc0ad00fbc0fd00 +fcc08000fc00fbc08000e500800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +80008000800080008000800080008000800080008000010000fcc0100000 +c0c0000000c0c000c0c0000000c0c0f700f9c0d600fbc0fd00fbc0f400fd +c0f300fdc0f400fbc0f20001c0c0fb0001c0c0fb00fdc0fc00fbc0fc00fd +c0db00fdc0fa0001c0c0b50006c0c0000000c0c0f40000c0ea00fdc0fd00 +fdc0f80001c0c0fa0000c0ec0006c0c0000000c0c0ee00fbc0fb00fdc0d4 +00fdc0fb00fdc0f500fdc0e10001c0c09c001600c0c00000c0c000c0c0c0 +0000c0c000c0c0000000c0c0f60005c0c00000c0c0d7000ec0c0000000c0 +c000c0c0000000c0c0f60004c0c000c0c0f50004c0c000c0c0f60006c0c0 +000000c0c0f40001c0c0fa0001c0c0fc0001c0c0fb000ac0c0000000c0c0 +0000c0c0d80001c0c0fa0001c0c0b50006c0c0000000c0c0f50001c0c0e9 +0001c0c0fc0001c0c0f80001c0c0fb0001c0c0ec0006c0c0000000c0c0ef +0006c0c0000000c0c0fb0001c0c0d30001c0c0fa0001c0c0f40001c0c0e0 +0001c0c09d0001c0c0fc0001c000fcc00a00c0c000c0c0000000c0c0f600 +05c0c0000000c0d20001c0c0fa0001c0c0f70006c0c0000000c0c0f70006 +c0c0000000c0c0f20001c0c0f50001c0c0f40001c0c0fa0009c0c0000000 +c0c000c0c0d70001c0c0ac0004c0c000c0c0f40001c0c0e90001c0c0fc00 +01c0c0f10001c0c0eb0004c0c000c0c0e90001c0c0fb0001c0c0d30001c0 +c0fa0001c0c0f40001c0c0df0001c0c09e0001c0c0fa00f9c00700c0c000 +0000c0c0f6000fc0c000c0000000c0c0c000c0c0000000fcc0fc00fbc0fd +00fbc0f20001c0c0f90001c0c0f70006c0c0000000c0c0f70006c0c00000 +00c0c0f30001c0c0f40001c0c0fa00fdc0fd0001c0c0fa0009c0c0000000 +c0c000c0c0f20008c0c000c0c0c0000000fbc0f30001c0c0fb00fdc0fd00 +16c0c000c0c0c00000c0c00000c0c00000c0c0000000c0c0f600fdc01100 +c0c000c0c000c0c0c00000c0c00000c0c0ed00fbc0f600fac0fd00fbc0fd +00fbc0fb0001c0c0fc000ec0c00000c0c0000000c0c0c0000000fac0ed00 +fbc0fd00fcc0fd0006c0c0000000c0c0fa0004c0c0000000fcc0f500fbc0 +fd00fbc00a0000c0c000c0c0c0000000fbc0fb0001c0c0fa0001c0c0f400 +fcc0fc00fcc0fd0008c0c000c0c0c0000000fbc0fa0001c0c09e0001c0c0 +fa0002c0c000fcc00700c0c0000000c0c0f600fcc0fd00f9c0fb0012c0c0 +0000c0c0000000c0c000c0c0000000c0c0f40001c0c0fb00fcc0f60006c0 +c000c000c0c0f70006c0c000c000c0c0f40001c0c0f30001c0c0f90004c0 +c0000000fac0fd00fbc0010000fac0f5000dc0c00000c0c000c0c0000000 +c0c0f40001c0c0fa0001c0c0fc0014c0c00000c0c000c0c00000c0c00000 +00c0c000c0c0f60015c0c00000c0c0000000c0c00000c0c000c0c00000c0 +c0ec00fdc0f30001c0c0fc000ec0c0000000c0c000c0c0000000c0c0fc00 +01c0c0fc0004c0c000c0c0fb0001c0c0fb0001c0c0ea00fdc0f9000dc0c0 +0000c0c0000000c0c0000000fcc0fd0004c0c000c0c0f6001ec0c0000000 +c0c000c0c0000000c0c00000c0c0c000c0c000c0c0000000c0c0fc0001c0 +c0fa0001c0c0f40004c0c000c0c0fa0012c0c0000000c0c0c000c0c000c0 +c0000000c0c0fb0001c0c09e0002c0c000fcc00f00c0c00000c0c0c000c0 +c0000000c0c0f6000fc0c000c0000000c0c000c000c0c00000fbc0030000 +c0c0f90001c0c0f10001c0c0f70001c0c0f70006c0c000c000c0c0f70006 +c0c000c000c0c0f50001c0c0f20001c0c0f9001cc0c0000000c0c0000000 +c0c000c0c0000000c0c000c0c0000000c0c000f9c00a0000c0c00000c0c0 +00c0c0fa00f9c0fc0001c0c0fa0001c0c0fc000cc0c00000c0c000c0c000 +00c0c0fc00fdc0fd00f9c01600c0c00000c0c0000000c0c00000c0c000c0 +c00000c0c0ec00fdc0f30001c0c0fc000ec0c0000000c0c000c0c0000000 +c0c0fc0001c0c0fc00fcc0fa0001c0c0fb0001c0c0ea00fdc0fc00fbc008 +0000c0c000c000c0c0fa0008c0c000c0c00000c0c0f50001c0c0fb0001c0 +c0f9000dc0c00000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c0f400 +07c0c00000c0c00000fbc0fd0009c0c00000c0c00000c0c0f70001c0c09e +0016c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f60001c0c0 +fb0011c0c000c000c0c000c0c00000c0c00000c0c0f800fdc0f40001c0c0 +f60001c0c0f70006c0c0000000c0c0f70006c0c0000000c0c0f60001c0c0 +f10001c0c0f9001bc0c0000000c0c0000000c0c000c0c0000000c0c000c0 +c0000000c0c0f60008c0c00000c0c000c0c0ef0001c0c0fa0001c0c0fc00 +0cc0c00000c0c000c0c00000c0c0fc00fdc0f50015c0c00000c0c0000000 +c0c00000c0c000c0c00000c0c0ed00fbc0f40001c0c0fc000ec0c0000000 +c0c000c0c0000000c0c0fc0001c0c0fc00fcc0fa0001c0c0fb0001c0c0eb +00fbc0100000c0c00000c0c00000c0c000c000c0c0fa0008c0c000c0c000 +00c0c0f400fdc0fd0001c0c0f90001c0c0fb0006c0c0000000c0c0fc0001 +c0c0fa0001c0c0f40011c0c00000c0c000c0c00000c0c0000000c0c0f900 +fdc0f90001c0c09e0016c0c0000000c0c000c0c0000000c0c000c0c00000 +00c0c0f60018c0c0000000c000c0c000c000c0c000c0c00000c0c00000c0 +c0f60001c0c0f60001c0c0f50001c0c0f70006c0c0000000c0c0f70006c0 +c0000000c0c0f70001c0c0f00001c0c0f9001bc0c0000000c0c0000000c0 +c000c0c0000000c0c000c0c0000000c0c0f60008c0c00000c0c000c0c0ef +0001c0c0fa0001c0c0fc000cc0c00000c0c000c0c00000c0c0fc00fdc0f5 +0015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0fb0001c0c0f4 +0004c0c000c0c0f40001c0c0fc000ec0c0000000c0c000c0c0000000c0c0 +fc0001c0c0fc0004c0c000c0c0fb0001c0c0fb0001c0c0f90001c0c0f400 +15c0c000c0c00000c0c00000c0c00000c0c000c000c0c0fa0008c0c000c0 +c00000c0c0f20005c0c00000c0c0f90001c0c0fb0006c0c0000000c0c0fc +0001c0c0fa0001c0c0f40011c0c00000c0c000c0c00000c0c0000000c0c0 +f70001c0c0fa0001c0c09e001600c0c00000c0c000c0c0000000c0c000c0 +c0000000c0c0f60025c0c00000c0c000c0c000c000c0c000c0c00000c0c0 +0000c0c0000000c0c000c0c0000000c0c0f7000ec0c0000000c0c000c0c0 +000000c0c0fc0001c0c0fc0004c0c000c0c0fb0001c0c0fc0004c0c000c0 +c0fb000bc0c0000000c0c0000000c0c0f40001c0c0fa001bc0c0000000c0 +c0000000c0c000c0c0000000c0c000c0c0000000c0c0f6000dc0c00000c0 +c000c0c0000000c0c0f40001c0c0fa0001c0c0fc0014c0c00000c0c000c0 +c00000c0c0000000c0c000c0c0f60015c0c00000c0c0000000c0c00000c0 +c000c0c00000c0c0fb0001c0c0f50006c0c0000000c0c0f50014c0c000c0 +c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0fc0005c0c00000c0 +c0fc0001c0c0fb0004c0c000c0c0fc0001c0c0f5000fc0c0000000c0c000 +c0c00000c0c00000f9c00e00c0c0000000c0c000c0c00000c0c0f60012c0 +c0000000c0c000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc00 +01c0c0fa0001c0c0f40011c0c00000c0c000c0c00000c0c0000000c0c0fb +0006c0c0000000c0c0fc0001c0c09d00100000c0c0c000c000c0c0000000 +c0c00000fbc0f600f9c01100c0c0000000c0c00000c0c0c000c0c00000fb +c0fd00fbc0f600f9c0010000fbc0fb0001c0c0fb00fdc0fa0001c0c0fb00 +fdc0fa0004c0c0000000f9c0f30001c0c0fc00fcc0fd00fbc0fd00fbc0fd +00fbc0f500fbc0fd00fbc0f400fcc0fc00fcc0fd0015c0c00000c0c00000 +c0c0c000c0c000c0c0000000c0c0f600fbc0fd000dc0c00000c0c00000c0 +c0c000c0c0fc0001c0c0f50006c0c0000000c0c0f400fdc0fd00fbc0fd00 +fbc0fc00fcc00b0000c0c0c00000c0c0000000fcc0fb00fdc0fb0001c0c0 +f50018c0c0000000c0c00000c0c0c000c0c00000c0c000c0c0000000fbc0 +fd00fdc00200c0c0f600fbc0fd00fbc0010000fcc0fb00fbc0fc00fcc0fc +00fcc0f500fbc0fd00fdc00300c0c000fcc0fb00fbc0fc0001c0c09c0080 +00b70001c0c0b70001c0c0ec0001c0c0aa0001c0c0800084008000b70001 +c0c0bb0005c0c00000c0c08000800096008000b800fcc0bb00fcc0800080 +009500800080008000800080008000800080008000800080008000800080 +008000ed00fdc0f500fbc0fc00fdc0fb00fdc0fd00f9c0f500fdc0fc00fb +c0f500fbc0010000f9c0d500fdc0ed00fdc0800080008000b300ee0004c0 +c000c0c0f70019c0c0000000c0c00000c0c000c0c0000000c0c000c0c000 +00c0c0f1000dc0c000c0c00000c0c0000000c0c0f70009c0c0000000c0c0 +00c0c0cf0001c0c0ec0001c0c0800080008000b300ee0004c0c00000c0f2 +0014c0c000c0c0000000c0c000c0c0000000c0c000c0c0f20006c0c00000 +00c0c0fa0001c0c0f20004c0c000c0c0cf0001c0c0ec0001c0c080008000 +8000b300f700fbc0fc0001c0c0f00015c0c00000c0c0000000c0c000c0c0 +000000c0c000c0c0f20006c0c0000000c0c0fa0001c0c0f30005c0c00000 +c0c0f100fbc0070000c0c000c0c0c0f500fbc0fb0001c0c0fc00fcc0fc00 +fbc0fd000fc0c00000c0c000c0c0000000c0c00000fcc0fd0008c0c000c0 +c0c0000000fbc0800080008000d600f80008c0c0000000c0c00000fcc0f2 +0014c0c0000000c0c000c000c0c000c0c000c000c0c000fac0f60009c0c0 +00c000c0c0000000fcc0f30004c0c0000000fac0f6000ec0c0000000c0c0 +0000c0c00000c0c0f70006c0c0000000c0c0fc0001c0c0f9001ac0c00000 +c0c0000000c0c00000c0c000c0c00000c0c0000000c0c0fb0012c0c00000 +00c0c0c000c0c000c0c0000000c0c0800080008000d700f8000bc0c00000 +00c0c0000000c0c0f20001c0c0fc000ec0c000c000c0c000c0c000c000c0 +c0fa0002c0c000f9c00700c0c000c000c0c0fa0002c0c000f9c0fd0001c0 +c0f70001c0c0f7000ec0c0000000c0c00000c0c00000c0c0f60001c0c0f8 +0001c0c0fc00fbc0030000c0c0f900fcc0fd0008c0c000c000c0c00000fb +c0fd0006c0c00000c0c000f9c0800080008000d700f8000bc0c0000000c0 +c0000000c0c0f30001c0c0fb000ec0c0000000c0c000c0c0000000c0c0fa +0001c0c0f70006c0c0000000c0c0fa0001c0c0f60001c0c0f60001c0c0f7 +000ec0c0000000c0c00000c0c00000c0c0f500fdc0fa000ec0c0000000c0 +c00000c0c00000c0c0f900fcc0fd0012c0c000c000c0c000c0c00000c0c0 +000000c0c0fb0001c0c0800080008000d200f8000bc0c0000000c0c00000 +00c0c0f40001c0c0fa000ec0c0000000c0c000c0c0000000c0c0fa0001c0 +c0f70006c0c0000000c0c0fa0001c0c0f70001c0c0f50001c0c0f7000ec0 +c0000000c0c00000c0c00000c0c0f30001c0c0fb000ec0c0000000c0c000 +00c0c00000c0c0f90019c0c000c0c00000c0c000c000c0c000c0c00000c0 +c0000000c0c0fb0001c0c0800080008000d200f8000bc0c0000000c0c000 +0000c0c0f4001ec0c0000000c0c00000c0c000c0c0000000c0c000c0c000 +00c0c0000000c0c0f6000dc0c000c0c00000c0c0000000c0c0f7000ec0c0 +000000c0c000c0c0000000c0c0f7000ec0c0000000c0c00000c0c00000c0 +c0f70006c0c0000000c0c0fc001cc0c0000000c0c00000c0c00000c0c000 +0000c0c00000c0c00000c0c000f9c00b00c0c00000c0c0000000c0c0fb00 +06c0c0000000c0c0800080008000d700f700fbc0fd00fcc0f500f9c0fd00 +fdc0fb00fdc0fc00fbc0f400fdc0fc00fbc0f600f9c0010000fbc0f500fb +c0fd0005c0c00000c0c0f600fbc0fc00fcc0fd00fdc00400c0c00000fbc0 +190000c0c0c00000c0c00000c0c000c0c0000000c0c0c000c0c000fcc0fb +00fbc0800080008000d60080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +0080008000800080008000010000fcc0db0001c0c0f500fdc0f80000c0f0 +0001c0c0fc00fcc0fc0001c0c0f300fbc0fc00fdc0fb00fdc0f90001c0c0 +f600f9c0de00fbc0f300fdc0fb0000c0d400f9c0e400fdc0f30000c0f900 +01c0c0db00fcc080008000ee000600c0c00000c0c0dc0001c0c0f40001c0 +c0f90001c0c0f10001c0c0fc0005c0c00000c0c0fc0001c0c0f50015c0c0 +000000c0c00000c0c000c0c0000000c0c000c0c0fb00fdc0f50005c0c000 +00c0c0df0006c0c0000000c0c0f50009c0c000c0c0000000c0c0d30005c0 +c00000c0c0e30001c0c0f40001c0c0f90001c0c0da0001c0c080008000ed +0001c0c0fc0000c0ce0001c0c0f90001c0c0f20001c0c0fc0001c0c0fc00 +00c0fb0001c0c0f10014c0c000c0c0000000c0c000c0c0000000c0c00000 +00fcc0f50005c0c0000000c0df0006c0c0000000c0c0f50009c0c00000c0 +000000c0c0d30005c0c0000000c0e30001c0c0f40001c0c0d10001c0c080 +008000ed0001c0c0f900fbc0170000c0c000c0c0c00000c0c0000000c0c0 +00c0c000c0c0c0fc00fdc0fc00fdc00b00c0c00000c0c000c0c00000fac0 +f40001c0c0fc0001c0c0f60001c0c0f20019c0c00000c0c0000000c0c000 +c0c0000000c0c00000c0c000c0c0f5000fc0c000c0000000c0c000c0c0c0 +000000fbc0fd00fbc0f50001c0c0fa00fbc0fc0001c0c0fc00fac00a0000 +c0c0000000c0c00000fcc0fd0008c0c000c0c0c0000000fbc0f50003c0c0 +00c0fc00fbc00f0000c0c00000c0c00000c0c000c0c0c0fc00fcc0fd00fc +c0fd00fac0fc00fdc0fc00fbc0070000c0c000c0c0c0eb000dc0c0000000 +c0c000c0c0c0000000fbc080008000fe0001c0c0fa001ec0c0000000c0c0 +0000c0c00000c0c000c0c0000000c0c00000c0c0c000c0c0fc0018c0c000 +0000c0c00000c0c0000000c0c0c000c0c0000000c0c0f20001c0c0fc0001 +c0c0f60001c0c0f3001ac0c0000000c0c000c000c0c000c0c000c000c0c0 +00c0c00000c0c0f500fcc0fc00fdc01200c0c000c0c0000000c0c000c0c0 +000000c0c0f500fdc0fd0008c0c0000000c0c00000fcc0fb0001c0c0fc00 +06c0c0000000c0c0fb0012c0c0000000c0c0c000c0c000c0c0000000c0c0 +f600fcc0fd001dc0c0000000c0c000c0c00000c0c0000000c0c00000c0c0 +0000c0c000c0c0fa0001c0c0fc0001c0c0f90013c0c0000000c0c0000000 +c0c00000c0c00000c0c0ec0001c0c0fc000dc0c00000c0c000c0c0000000 +c0c080008000ff0001c0c0fa001ec0c0000000c0c00000c0c00000c0c000 +c0c0000000c0c00000c0c00000c0c0fc0018c0c0000000c0c00000c0c000 +0000c0c00000c0c0000000c0c0f20001c0c0fc0001c0c0f60001c0c0f400 +01c0c0fc000fc0c000c000c0c000c0c000c000c0c000f9c0f60003c0c000 +c0fc0006c0c00000c0c000f9c00000f9c0f3000fc0c00000c0c0000000c0 +c0000000c0c0fa0001c0c0fc0008c0c000c000c0c00000fbc0fd0006c0c0 +0000c0c000f9c0f60027c0c000c0000000c0c0000000c0c000c0c00000c0 +c0000000c0c00000c0c000c0c00000c0c0000000fbc0fc0001c0c0f90013 +c0c0000000c0c0000000c0c00000c0c00000c0c0ec0001c0c0fc0008c0c0 +0000c0c000c0c080008000fa0001c0c0fa001ac0c0000000c0c00000c0c0 +0000c0c000c0c0000000c0c00000c0c0f80018c0c0000000c0c00000c0c0 +000000c0c00000c0c0000000c0c0f20001c0c0fc0001c0c0f60001c0c0f5 +0001c0c0fb000ec0c0000000c0c000c0c0000000c0c0fb0001c0c0f50001 +c0c0fa0001c0c0fb0001c0c0fa0001c0c0ed000ec0c000c0c0000000c0c0 +000000c0c0fa0001c0c0fc0012c0c000c000c0c000c0c00000c0c0000000 +c0c0fb0001c0c0f10001c0c0fb0025c0c0000000c0c000c0c00000c0c000 +0000c0c00000c0c000c0c00000c0c00000c0c00000c0c0fc0001c0c0f900 +13c0c0000000c0c0000000c0c00000c0c00000c0c0ec0001c0c0fc0008c0 +c00000c0c000c0c080008000fa0001c0c0fc001cc000c0c0000000c0c000 +00c0c00000c0c000c0c0000000c0c00000c0c0f80018c0c0000000c0c000 +00c0c0000000c0c00000c0c0000000c0c0f20001c0c0fc0001c0c0fc0000 +c0fb0001c0c0f60001c0c0fa000ec0c0000000c0c000c0c0000000c0c0fb +0001c0c0f50001c0c0fa0001c0c0fb0001c0c0fa0001c0c0f20013c0c000 +0000c0c000c0c0000000c0c0000000c0c0fa0001c0c0fc0012c0c000c000 +c0c000c0c00000c0c0000000c0c0fb0001c0c0f10001c0c0fb0025c0c000 +0000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c00000c0 +c00000c0c0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c000 +00c0c0fc0001c0c0f20001c0c0fc0008c0c00000c0c000c0c080008000fa +002200c0c00000c0c000c0c0000000c0c00000c0c00000c0c000c0c00000 +00c0c00000c0c0f8001bc0c0000000c0c00000c0c0000000c0c00000c0c0 +000000c0c000c0c0f40001c0c0fc0005c0c00000c0c0fc0001c0c0f50015 +c0c0000000c0c00000c0c000c0c0000000c0c000c0c0fa0001c0c0f50001 +c0c0fa0001c0c0fb000ec0c0000000c0c000c0c0000000c0c0f70013c0c0 +000000c0c000c0c0000000c0c0000000c0c0fa0005c0c000c0c000f9c00b +00c0c00000c0c0000000c0c0fb0006c0c0000000c0c0f60001c0c0fb0025 +c0c0000000c0c000c0c00000c0c0000000c0c00000c0c000c0c00000c0c0 +0000c0c00000c0c0fc0004c0c000c0c0fc0013c0c0000000c0c0000000c0 +c00000c0c00000c0c0fc0001c0c0f20001c0c0fc000dc0c00000c0c000c0 +c0000000c0c0fc0001c0c080008500010000fcc0fd00fbc0fd00fbc0fd00 +fac00000fcc0fa00fcc0fd00fbc0080000c0c0c00000c0c0fc00fdc0f200 +01c0c0fc00fcc0fc0001c0c0f400f9c0fd00fdc0fb00fdc0fa00fcc0f700 +fcc0fc00fcc0fb00fbc0fd00fbc0f500fbc0fd00fbc0fd00fcc0fa00fdc0 +fd000ec0c000c0c0000000c0c0c000c0c000fcc0fb00fbc0f600fcc0fb00 +fbc0fd00fdc01a00c0c00000c0c00000c0c00000c0c0c000c0c00000c0c0 +c000c0c0fc00fdc0fc00fcc0fd00fbc0fd0005c0c00000c0c0fc0001c0c0 +f300fcc0fd0007c0c00000c0c00000fbc0fb0001c0c080008500ef0001c0 +c0f60001c0c0eb0001c0c080008000dc0001c0c080008000dc00ef0001c0 +c0f70001c0c0ee0005c0c00000c0c08000800080008000b600f000fcc0fc +00fbc0ec00fcc08000800080008000b50080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000800080 +008000800080008000800080008000800080008000800080008000010000 +fcc0100000c0c0000000c0c000c0c0000000c0c0f700f9c09c0001c0c0fa +0000c0fc00fdc0f00000c0fc00fac0fd00fbc0fd00fbc0010000fcc0fc00 +08c0c0000000c0c00000fac00000f9c00000fcc0fb0005c0c00000c0c0f7 +0008c0c0000000c0c00000fbc0f60006c0c0000000c0c0fc0000c0fc00fa +c0010000fac0fb0000c0fc0008c0c0000000c0c00000fac0070000c0c000 +00c0c0ec0000c0da00fcc0f600fdc0f100fcc0e300fdc0e300fdc0f400fd +c0fb00fdc0f200fdc0f30000c0f10001c0c0fb00fdc0c5001600c0c00000 +c0c000c0c0c00000c0c000c0c0000000c0c0f60005c0c00000c0c09c0001 +c0c0fb0001c0c0fb0001c0c0f100fdc0fc0019c0c00000c0c000c0c00000 +00c0c000c0c0000000c0c00000c0c0fb0008c0c0000000c0c00000fac00b +0000c0c00000c0c00000c0c0fa0005c0c00000c0c0f700fdc00b0000c0c0 +00c0c0000000c0c0f7000cc0c0000000c0c0000000c0c0c0fc001fc0c000 +00c0c00000c0c00000c0c0000000c0c0c0000000c0c0c00000c0c00000fa +c0070000c0c00000c0c0ed0001c0c0db0005c0c00000c0c0f60001c0c0f2 +0005c0c00000c0c0e50004c0c000c0c0e50004c0c000c0c0f40001c0c0fa +0001c0c0f10001c0c0f40001c0c0f10001c0c0fa0001c0c0c50001c0c0fc +0001c000fcc00a00c0c000c0c0000000c0c0f60005c0c0000000c0950001 +c0c0fb0001c0c0f20021c0c000c0c0000000c0c00000c0c000c0c0000000 +c0c000c0c0000000c0c00000c0c0fb001ac0c0000000c0c00000c000c0c0 +00c00000c0c0000000c00000c0c0fa0005c0c00000c0c0f700fcc00a00c0 +c000c0c0000000c0c0f70027c0c0000000c0c00000c0c000c0c0000000c0 +c00000c0c00000c0c00000c0c00000c0c000c0c00000fcc01200c0c00000 +c000c0c000c00000c0c00000c0c0fc0001c0c0f30001c0c0dc0001c0c0fc +0000c0f60001c0c0f30001c0c0fc0000c0e50004c0c00000c0e50004c0c0 +0000c0f40001c0c0fa0001c0c0f10001c0c0f40001c0c0e90001c0c0c500 +01c0c0fa00f9c00700c0c0000000c0c0f6000fc0c000c0000000c0c0c000 +c0c0000000fcc0fc00fbc0fd00fbc0f500fbc0fd00fbc00a0000c0c0c000 +c0c0000000fbc0fd00fbc0f6000fc0c0000000c0c0000000c0c0c0000000 +fac0fd0004c0c000c0c0f60012c0c0000000c0c00000c0c00000c0c00000 +c0c0fb000ac0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0 +c0fc0003c0c000c0fc0001c0c0fa0005c0c00000c0c0f700f9c00700c0c0 +000000c0c0f70027c0c0000000c0c000c0c0000000c0c00000c0c00000c0 +c00000c0c00000c0c000c0c0000000c0c000f9c0fc0001c0c0fc0005c0c0 +0000c0c0fc0001c0c0f500fac0120000c0c0000000c0c000c0c000c0c0c0 +000000fbc0f60001c0c0f10004c0c000c0c0f60001c0c0f20006c0c00000 +00c0c0f50001c0c0fb00fbc0070000c0c000c0c0c0f40001c0c0fc0005c0 +c00000c0c0fb0001c0c0fa0001c0c0f300fcc0fd00fbc0010000fac0fd00 +fcc0fb00fdc0fa0001c0c0fc00fbc0ce0001c0c0fa0002c0c000fcc00700 +c0c0000000c0c0f600fcc0fd00f9c0fb0012c0c00000c0c0000000c0c000 +c0c0000000c0c0f7000fc0c0000000c0c000c0c0000000c0c000f9c00f00 +c0c0000000c0c000c0c0000000c0c0f70006c0c0000000c0c0fc0001c0c0 +fb0001c0c0fb00fdc00200c0c0f70008c0c0000000c0c00000fbc0fc00fd +c0fd000ac0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0001c0c0 +fc00fcc0fc0001c0c0f900fcc0f60002c0c000fcc00700c0c0000000c0c0 +f70010c0c000c000c0c000c0c0000000c0c00000fbc0fd00fbc00c0000c0 +c0000000c0c000c0c000fcc0fc0001c0c0fb00fcc0ec0001c0c0fc0016c0 +c0000000c0c00000c0c00000c0c000c0c0000000c0c0f70001c0c0f100fd +c00200c0c0f70001c0c0f20006c0c0000000c0c0f600fcc0fd000ec0c000 +0000c0c00000c0c0c000c0c0f600fcc0fd0005c0c00000c0c0fb0001c0c0 +fa0001c0c0f40012c0c000c0c00000c0c0000000c0c0000000c0c0f80001 +c0c0fb0001c0c0fa000bc0c0000000c0c0000000c0c0cf0002c0c000fcc0 +0f00c0c00000c0c0c000c0c0000000c0c0f6000fc0c000c0000000c0c000 +c000c0c00000fbc0030000c0c0f90001c0c0f30001c0c0fa000fc0c00000 +00c0c000c0c000c000c0c000f9c0030000c0c0f30006c0c000c000c0c0fc +0001c0c0fb0001c0c0fb0005c0c00000c0c0f700f9c0070000c0c00000c0 +c0fb000ec0c00000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc +0001c0c0fc0003c0c000c0fc0001c0c0f80001c0c0f5000ec0c00000c0c0 +c000c0c0000000c0c0f70007c0c000c000c0c000f9c0100000c0c000c0c0 +000000c0c000c0c00000f9c00700c0c00000c0c0c0fc0001c0c0fa0001c0 +c0eb0001c0c0fc000fc0c0000000c0c00000c0c00000c0c000f9c0f70001 +c0c0fa00f9c0070000c0c00000c0c0f70001c0c0fa00f9c00700c0c000c0 +00c0c0f50001c0c0fc000ec0c0000000c0c00000c0c00000c0c0f50001c0 +c0fc0005c0c00000c0c0fb0001c0c0fa0001c0c0f50007c0c00000c0c000 +00f9c0fd0001c0c0fb00fbc0fb0001c0c0fa0001c0c0fc0001c0c0cb0016 +c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f60001c0c0fb00 +11c0c000c000c0c000c0c00000c0c00000c0c0f800fdc0f50001c0c0fa00 +11c0c0000000c0c000c0c000c000c0c000c0c0f800fdc0f50006c0c000c0 +00c0c0fc0001c0c0fb0001c0c0fb0005c0c00000c0c0f7000ec0c0000000 +c0c00000c0c00000c0c0fa000dc0c000c0c0000000c0c00000c0c0fb0006 +c0c0000000c0c0fc0001c0c0fc0001c0c0fa0001c0c0f80001c0c0f5000e +c0c0000000c0c000c0c0000000c0c0f7002ec0c000c000c0c000c0c00000 +00c0c00000c0c00000c0c00000c0c00000c0c000c0c0000000c0c000c0c0 +000000c0c0fc0001c0c0fa0001c0c0eb0001c0c0fc0011c0c0000000c0c0 +0000c0c00000c0c000c0c0f20001c0c0f10005c0c00000c0c0f70001c0c0 +f20006c0c000c000c0c0f50001c0c0fc000ac0c0000000c0c00000c0c0f1 +0001c0c0fc0005c0c00000c0c0fb0001c0c0fa0001c0c0f50009c0c00000 +c0c00000c0c0f80001c0c0fc0005c0c00000c0c0fb0001c0c0fa0001c0c0 +fb00fdc0cd0016c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0 +f60018c0c0000000c000c0c000c000c0c000c0c00000c0c00000c0c0f600 +01c0c0f60001c0c0fa0011c0c0000000c0c000c0c000c000c0c000c0c0f6 +0001c0c0f60006c0c000c000c0c0fc0001c0c0fb0001c0c0fb0005c0c000 +00c0c0f7002ec0c0000000c0c00000c0c00000c0c000c0c0000000c0c000 +c0c0000000c0c00000c0c0000000c000c0c0000000c0c0fc0001c0c0fc00 +0dc0c0000000c00000c0c0000000c0fc0001c0c0f5000ec0c0000000c0c0 +00c0c0000000c0c0f700f9c02700c0c0000000c0c00000c0c00000c0c000 +00c0c00000c0c000c0c0000000c0c000c0c0000000c0c0fc0001c0c0fa00 +01c0c0fa0001c0c0f30001c0c0fc0011c0c0000000c0c00000c0c00000c0 +c000c0c0f20001c0c0fc0000c0f60005c0c00000c0c0f70001c0c0fc0000 +c0f70006c0c000c000c0c0f50001c0c0fc000ac0c0000000c0c00000c0c0 +f10001c0c0fc0005c0c00000c0c0fb0001c0c0fa0001c0c0f50009c0c000 +00c0c00000c0c0f80001c0c0fc0005c0c00000c0c0fb0001c0c0fa0001c0 +c0f90001c0c0ce001600c0c00000c0c000c0c0000000c0c000c0c0000000 +c0c0f60025c0c00000c0c000c0c000c000c0c000c0c00000c0c00000c0c0 +000000c0c000c0c0000000c0c0f70026c0c0000000c0c000c0c0000000c0 +c000c0c000c000c0c000c0c0000000c0c000c0c0000000c0c0f700f9c0fc +0001c0c0fb000cc0c000c0c00000c0c00000c0c0f7002ec0c0000000c0c0 +0000c0c00000c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000 +c0c000c0c0000000c0c0fc0001c0c0fc000dc0c00000c0c00000c0c00000 +c0c0fc0001c0c0f5000ec0c0000000c0c000c0c0000000c0c0f700fdc02b +00c0c0c000c0c0000000c0c00000c0c00000c0c00000c0c00000c0c000c0 +c0000000c0c000c0c0000000c0c0fc0001c0c0fa0001c0c0fa0001c0c0f3 +001cc0c000c0c000c0c0000000c0c00000c0c00000c0c000c0c0000000c0 +c0f60005c0c00000c0c0f60005c0c00000c0c0f60005c0c00000c0c0f700 +f9c0f50001c0c0fc000ac0c0000000c0c00000c0c0f10001c0c0fc0005c0 +c00000c0c0fb0001c0c0fa0001c0c0f5001dc0c00000c0c00000c0c00000 +00c0c0000000c0c000c0c000c0c00000c0c0fb0001c0c0fa000bc0c00000 +00c0c0000000c0c0fc0001c0c0d500100000c0c0c000c000c0c0000000c0 +c00000fbc0f600f9c01100c0c0000000c0c00000c0c0c000c0c00000fbc0 +fd00fbc0f500fbc0fd00fbc00a0000c0c0000000c0c00000fbc0fd00fbc0 +f50004c0c000c0c0fc00fcc0fb00fdc0080000c0c0c00000c0c0f70007c0 +c0000000c0c000fac0fd00fbc0fd00fbc0010000f9c0010000fbc0fc00fc +c0010000f9c00000f9c0fd00fcc0f60008c0c0000000c0c00000fbc0f500 +30c0c000c0c00000c0c0000000c0c000c0c0c00000c0c000c0c0c00000c0 +c000c0c0000000c0c000c0c0000000c0c0000000fcc0fc00fcc0fc0001c0 +c0f100fdc0fd00fac0010000fbc0fd00fbc0f400fcc0f600fdc0030000c0 +c0f500fcc0f50004c0c000c0c0f500fcc0fc00fbc0010000fcc0f300fcc0 +fc00fdc00500c0c0000000fcc0fc00fcc0f500fdc00400c0c00000fbc0fb +00fdc0fd00fdc00500c0c0000000fcc0fc00fcc0fd00fbc0fb0001c0c0d5 +00800080008b0005c0c00000c0c080008000fb00800080008c0006c0c000 +0000c0c080008000fb00800080009000fbc0fd00fcc080008000fc008000 +80008000800080008000800080008000800080008000800080008000f9c0 +d40001c0c0ed00f9c0de00fbc0f300fdc0fb0000c0cc00f9c0c40001c0c0 +ed00f9c0e400fdc08000f300fdc0fb0001c0c0f20000c0f10007c0c00000 +00c0c0c0f00000c0d10001c0c0bd000600c0c00000c0c0d40001c0c0ec00 +05c0c00000c0c0df0006c0c0000000c0c0f50009c0c000c0c0000000c0c0 +cb0005c0c00000c0c0c40001c0c0ec0005c0c00000c0c0e30001c0c08000 +f20001c0c0fb0001c0c0f30001c0c0f10001c0c0fc0001c0c0f10001c0c0 +d10001c0c0bd000600c0c0000000c0be0005c0c0000000c0df0006c0c000 +0000c0c0f50009c0c00000c0000000c0c0cb0005c0c0000000c0ae0005c0 +c0000000c0e30001c0c08000f20001c0c0ec0001c0c0eb0001c0c0f10001 +c0c08c001000c0c000c0000000c0c0c000c0c0000000fcc0fc00fbc0fd00 +fbc0f400fdc0fc00fbc0f5000fc0c000c0000000c0c000c0c0c0000000fb +c0fd00fbc0f50001c0c0fa00fbc0fc0001c0c0fc00fac00a0000c0c00000 +00c0c00000fcc0fd0008c0c000c0c0c0000000fbc0ed000fc0c000c00000 +00c0c000c0c0c0000000fbc0fd00fbc0f500fcc0fc00fbc0f400fdc0fd00 +05c0c000c0c0c0f5000fc0c000c0000000c0c000c0c0c0000000fbc0fd00 +fbc0fc00fcc0fd00fbc0070000c0c0c000c0c0ed00fbc0fd00fbc0f60008 +c0c0000000c0c00000fbc0070000c0c00000c0c0f500fbc0fd00fcc0fd00 +05c0c000c0c0c0f60008c0c000c0c0c0000000fbc0fc00fcc0fc00fdc0fc +00fbc0010000fac0070000c0c000c0c0c0fc00fdc0fc00fcc0fd0007c0c0 +0000c0c00000fac0fd00fbc0f500fbc0fd00fbc0070000c0c000c0c0c0fc +00fdc0fc00fbc0fd00fbc0ce000000fcc0fd00f9c0fb0012c0c00000c0c0 +000000c0c000c0c0000000c0c0f4000bc0c0000000c0c0000000c0c0f600 +fcc0fc00fdc01200c0c000c0c0000000c0c000c0c0000000c0c0f500fdc0 +fd0008c0c0000000c0c00000fcc0fb0001c0c0fc0006c0c0000000c0c0fb +0012c0c0000000c0c0c000c0c000c0c0000000c0c0ee00fcc0fc00fdc012 +00c0c000c0c0000000c0c000c0c0000000c0c0f3000ac0c00000c0c00000 +00c0c0f40001c0c0fc0005c0c00000c0c0f600fcc0fc00fdc02300c0c000 +c0c0000000c0c000c0c0000000c0c00000c0c000c0c00000c0c0000000c0 +c000f9c0ef000ec0c0000000c0c000c0c0000000c0c0f70015c0c0000000 +c0c000c0c0000000c0c000c0c00000c0c0f60006c0c0000000c0c0fb000a +c0c0000000c0c00000c0c0f600fdc01100c0c000c0c0000000c0c00000c0 +c000c0c0fb0010c0c0000000c0c0000000c0c0000000c0c0fb00fdc00200 +c0c0fc0001c0c0fc000cc0c000c0c00000c0c00000c0c0fc0001c0c0fc00 +06c0c0000000c0c0f70016c0c0000000c0c000c0c0000000c0c00000c0c0 +0000c0c0fc0013c0c0000000c0c0000000c0c000c0c0000000c0c0cf0010 +00c0c000c0000000c0c000c000c0c00000fbc0030000c0c0f90001c0c0f0 +0001c0c0fc0001c0c0f20003c0c000c0fc0006c0c00000c0c000f9c00000 +f9c0f3000fc0c00000c0c0000000c0c0000000c0c0fa0001c0c0fc0008c0 +c000c000c0c00000fbc0fd0006c0c00000c0c000f9c00000f9c00000f9c0 +050000c0c000c0fc0006c0c00000c0c000f9c00000f9c0f600fbc0fd0001 +c0c0f00001c0c0fc0005c0c00000c0c0f60003c0c000c0fc0006c0c00000 +c0c000f9c00000f9c01800c0c00000c0c00000c0c0000000c0c000c0c000 +c000c0c000f9c00000f9c0030000c0c0fb0006c0c0000000c0c0f70015c0 +c0000000c0c000c0c0000000c0c000c0c00000c0c0f60001c0c0f900fbc0 +fd0005c0c00000c0c0f60006c0c00000c0c000f9c00600c0c00000c0c0fb +0001c0c0fc0001c0c0f90001c0c0fb0005c0c00000c0c0fc0001c0c0fc00 +0cc0c00000c0c000c0c00000c0c0fc0001c0c0fc00f9c0f70001c0c0fa00 +0ec0c0000000c0c00000c0c00000c0c0fc0004c0c0000000f9c0030000c0 +c0cb000200c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0c0f800 +fdc0f20001c0c0fb00fdc0f40001c0c0fa0001c0c0fb0001c0c0fa0001c0 +c0ed000ec0c000c0c0000000c0c0000000c0c0fa0001c0c0fc0012c0c000 +c000c0c000c0c00000c0c0000000c0c0fb0001c0c0e90001c0c0fa0001c0 +c0fb0001c0c0fa0001c0c0f20005c0c00000c0c0fc00fdc0f20001c0c0fc +0005c0c00000c0c0f60001c0c0fa0001c0c0fb0001c0c0fa0001c0c0fa00 +16c0c00000c0c00000c0c0000000c0c000c0c000c000c0c0ed00fdc0fd00 +06c0c0000000c0c0f70015c0c0000000c0c000c0c0000000c0c000c0c000 +00c0c0f60001c0c0fa000ec0c00000c0c0000000c0c00000c0c0f60001c0 +c0fb0001c0c0fa0005c0c00000c0c0fb0001c0c0fb00fdc0fb0001c0c0fb +0001c0c0f80001c0c0fc000cc0c00000c0c000c0c00000c0c0fc0001c0c0 +fc0001c0c0f20001c0c0fa000ec0c0000000c0c00000c0c00000c0c0fc00 +06c0c0000000c0c0f800fdc0cd001900c0c0000000c000c0c000c000c0c0 +00c0c00000c0c00000c0c0f60001c0c0f30001c0c0f90001c0c0f50001c0 +c0fa0001c0c0fb0001c0c0fa0001c0c0f20013c0c0000000c0c000c0c000 +0000c0c0000000c0c0fa0001c0c0fc0012c0c000c000c0c000c0c00000c0 +c0000000c0c0fb0001c0c0e90001c0c0fa0001c0c0fb0001c0c0fa0001c0 +c0f20005c0c00000c0c0fa0001c0c0f30001c0c0fc0005c0c00000c0c0f6 +0001c0c0fa0001c0c0fb0001c0c0fa0001c0c0fa0016c0c00000c0c00000 +c0c0000000c0c000c0c000c000c0c0eb000ac0c00000c0c0000000c0c0f7 +0015c0c0000000c0c000c0c0000000c0c000c0c00000c0c0f60001c0c0fa +000ec0c00000c0c0000000c0c00000c0c0f60001c0c0fb0001c0c0fa0005 +c0c00000c0c0fb0001c0c0f90001c0c0fc0001c0c0fb0001c0c0f80001c0 +c0fc000cc0c00000c0c000c0c00000c0c0fc0001c0c0fc0001c0c0f20001 +c0c0fa000ec0c0000000c0c00000c0c00000c0c0fc0006c0c0000000c0c0 +f60001c0c0ce002600c0c00000c0c000c0c000c000c0c000c0c00000c0c0 +0000c0c0000000c0c000c0c0000000c0c0f4000bc0c0000000c0c0000000 +c0c0f60001c0c0fa0001c0c0fb000ec0c0000000c0c000c0c0000000c0c0 +f70013c0c0000000c0c000c0c0000000c0c0000000c0c0fa0005c0c000c0 +c000f9c00b00c0c00000c0c0000000c0c0fb0006c0c0000000c0c0ee0001 +c0c0fa0001c0c0fb000ec0c0000000c0c000c0c0000000c0c0f7000ec0c0 +0000c0c00000c0c0000000c0c0f40001c0c0fc0005c0c00000c0c0f60001 +c0c0fa0001c0c0fb0026c0c0000000c0c000c0c0000000c0c000c0c00000 +c0c00000c0c0000000c0c000c0c000c000c0c0ef000ec0c0000000c0c000 +c0c0000000c0c0f70015c0c0000000c0c000c0c0000000c0c000c0c00000 +c0c0f60016c0c0000000c0c000c0c00000c0c0000000c0c00000c0c0f600 +01c0c0fb000dc0c0000000c0c000c0c00000c0c0fb0017c0c0000000c0c0 +000000c0c0000000c0c000c0c00000c0c0f80001c0c0fc000cc0c00000c0 +c000c0c00000c0c0fc000cc0c000c0c000c0c0000000c0c0f70016c0c000 +0000c0c000c0c0000000c0c00000c0c00000c0c0fc0013c0c0000000c0c0 +000000c0c000c0c0000000c0c0cf00f9c01100c0c0000000c0c00000c0c0 +c000c0c00000fbc0fd00fbc0f400fcc0fd00fbc0f600fcc0fc00fcc0fb00 +fbc0fd00fbc0f500fbc0fd00fbc0fd00fcc0fa00fdc0fd000ec0c000c0c0 +000000c0c0c000c0c000fcc0fb00fbc0ee00fcc0fc00fcc0fb00fbc0fd00 +fbc0f500fdc00400c0c00000fbc0f400fcc0fd0005c0c00000c0c0f700fc +c0fc00fcc0fb00fbc0fd00fbc0fd00fdc00400c0c00000fbc0080000c0c0 +000000c0c0ee00fbc0fd00fbc0f500fac0010000fbc0fd00fdc00200c0c0 +f600fbc0fd00fdc00a00c0c00000c0c00000c0c0f700fcc0fb00fbc0fd00 +fdc00500c0c0000000fcc0fd00fbc0fb00fdc0010000fcc0fa00fcc0fd00 +fbc0fd00fdc00200c0c0fc00fdc0fd00fbc0f500fbc0fd00fbc0fd00fbc0 +fc00fcc0fd00fbc0fd00fbc0ce0080008000830001c0c08000ce0001c0c0 +b30080008000840001c0c08000cd0001c0c0b300800080008800fbc08000 +cd00fcc0b400800080008000800080008000800080008000800080008000 +800080008000f500fdc0f600f9c0c400fdc0e300fdc0fb0001c0c0fa00fd +c0eb0001c0c0fa0000c0e90000c0da00fcc0f600fdc0f100fcc0e30000c0 +c90000c0fc00fdc0d000fdc0fb0001c0c0fa0000c0f90001c0c08000b500 +f60004c0c000c0c0f60005c0c00000c0c0c30001c0c0e20001c0c0fb0001 +c0c0fb0004c0c000c0c0ec0001c0c0fb0001c0c0ea0001c0c0db0005c0c0 +0000c0c0f60001c0c0f20005c0c00000c0c0e50001c0c0ca0001c0c0fb00 +01c0c0cf0001c0c0fb0001c0c0fb0001c0c0f90001c0c08000b500f60004 +c0c00000c0f60005c0c0000000c0c30001c0c0e20001c0c0f40004c0c000 +00c0e50001c0c0f90001c0c0f30001c0c0dc0001c0c0fc0000c0f60001c0 +c0f30001c0c0fc0000c0e50001c0c0ca0001c0c0fb0001c0c0cf0001c0c0 +f40001c0c08000ac000000fbc0fc0001c0c0f3000fc0c000c0000000c0c0 +c000c0c0000000fcc0fc00fbc0fd00fbc0f500fcc0fd0005c0c000c0c0c0 +fc00fcc0f600fdc00500c0c0000000fbc0fc00fcc0fc00fdc0fb0001c0c0 +fc0006c0c0000000c0c0f500fdc0fd00fac0fb0001c0c0f500fac0120000 +c0c0000000c0c000c0c000c0c0c0000000fbc0f60001c0c0f10004c0c000 +c0c0f60001c0c0f100fbc0f600fac0fd00fbc0f500fbc0fd00fbc0fd00fb +c0f600fac0fd0007c0c000c0c0000000fbc0f500fbc0fd00fbc0070000c0 +c000c0c0c0fc00fcc0fc00fdc0fd00fac0fc00fdc0fc00fbc00a0000c0c0 +00c0c0c0000000fbc08000ce0008c0c0000000c0c00000fcc0f400fcc0fd +00f9c0fb0012c0c00000c0c0000000c0c000c0c0000000c0c0f30011c0c0 +000000c0c00000c0c00000c0c000c0c0f600f9c00e00c0c0000000c0c000 +00c0c000c0c0fb0001c0c0fc00fcc0fd0006c0c0000000c0c0f40001c0c0 +fb0001c0c0ea0001c0c0fc0016c0c0000000c0c00000c0c00000c0c000c0 +c0000000c0c0f70001c0c0f100fdc00200c0c0f70001c0c0f20006c0c000 +0000c0c0f50001c0c0fc0006c0c0000000c0c0f70016c0c0000000c0c000 +c0c0000000c0c000c0c0000000c0c0f50001c0c0fb00fdc00a00c0c000c0 +c0000000c0c0f7001dc0c0000000c0c000c0c0000000c0c00000c0c00000 +c0c00000c0c000c0c0fb0001c0c0fb0001c0c0f9001bc0c0000000c0c000 +0000c0c00000c0c00000c0c000c0c0000000c0c08000cf000bc0c0000000 +c0c0000000c0c0f3000fc0c000c0000000c0c000c000c0c00000fbc00300 +00c0c0f90001c0c0f200fbc0fd000cc0c00000c0c000c0c00000c0c0f600 +15c0c000c000c0c000c0c0000000c0c000c0c00000c0c0fb0001c0c0fb00 +01c0c0fc0006c0c0000000c0c0f40001c0c0fb0001c0c0ea0001c0c0fc00 +0fc0c0000000c0c00000c0c00000c0c000f9c0f70001c0c0fa00f9c00700 +00c0c00000c0c0f70001c0c0fa00f9c00200c0c0f00001c0c0fc0006c0c0 +000000c0c0f60001c0c0fb00f9c00000f9c0f50001c0c0fb0006c0c00000 +c0c000f9c0f70001c0c0fa0015c0c0000000c0c00000c0c00000c0c000c0 +c00000c0c0fb0001c0c0fb0001c0c0f90017c0c0000000c0c0000000c0c0 +0000c0c00000c0c00000c0c08000cb000bc0c0000000c0c0000000c0c0f3 +0001c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0c0f800fdc0f5 +0015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f60015c0c000 +c000c0c000c0c0000000c0c000c0c00000c0c0fb0001c0c0fb0001c0c0fc +0006c0c0000000c0c0f40001c0c0fb0001c0c0ea0001c0c0fc0011c0c000 +0000c0c00000c0c00000c0c000c0c0f20001c0c0f10005c0c00000c0c0f7 +0001c0c0f20001c0c0f00001c0c0fc0006c0c0000000c0c0f500fdc0fd00 +01c0c0fa0001c0c0f00001c0c0fb0008c0c00000c0c000c0c0f20001c0c0 +fa0015c0c0000000c0c00000c0c00000c0c000c0c00000c0c0fb0001c0c0 +fb0001c0c0f90019c0c0000000c0c0000000c0c00000c0c00000c0c00000 +00c0c0c08000cd000bc0c0000000c0c0000000c0c0f30018c0c0000000c0 +00c0c000c000c0c000c0c00000c0c00000c0c0f60001c0c0f60015c0c000 +00c0c0000000c0c00000c0c000c0c00000c0c0f60015c0c000c000c0c000 +c0c0000000c0c000c0c00000c0c0fb0001c0c0fb0001c0c0fc0006c0c000 +0000c0c0f40001c0c0fb0001c0c0f90001c0c0f30001c0c0fc0011c0c000 +0000c0c00000c0c00000c0c000c0c0f20001c0c0fc0000c0f60005c0c000 +00c0c0f70001c0c0fc0000c0f70001c0c0f00001c0c0fc0006c0c0000000 +c0c0f30005c0c00000c0c0fa0001c0c0f00001c0c0fb0008c0c00000c0c0 +00c0c0f20001c0c0fa0015c0c0000000c0c00000c0c00000c0c000c0c000 +00c0c0fb0001c0c0fb0001c0c0f90013c0c0000000c0c0000000c0c00000 +c0c00000c0c0fb0001c0c08000ce000bc0c0000000c0c0000000c0c0f300 +25c0c00000c0c000c0c000c000c0c000c0c00000c0c00000c0c0000000c0 +c000c0c0000000c0c0f70015c0c00000c0c0000000c0c00000c0c000c0c0 +0000c0c0f60015c0c000c000c0c000c0c0000000c0c000c0c00000c0c0fb +0001c0c0fb0001c0c0fc0006c0c0000000c0c0f40001c0c0fb0004c0c000 +c0c0fc0001c0c0f3001cc0c000c0c000c0c0000000c0c00000c0c00000c0 +c000c0c0000000c0c0f60005c0c00000c0c0f60005c0c00000c0c0f60005 +c0c00000c0c0f70006c0c0000000c0c0f5000cc0c000c0c000c0c0000000 +c0c0f70016c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0f500 +14c0c000c0c00000c0c00000c0c000c0c0000000c0c0f7001dc0c0000000 +c0c000c0c0000000c0c00000c0c00000c0c000c0c00000c0c0fb0001c0c0 +fb0004c0c000c0c0fc001bc0c0000000c0c0000000c0c00000c0c00000c0 +c000c0c0000000c0c0fc0001c0c08000d5000000fbc0fd00fcc0f500f9c0 +1100c0c0000000c0c00000c0c0c000c0c00000fbc0fd00fbc0f500fdc012 +00c0c00000c0c00000c0c00000c0c0c000c0c0f70008c0c0000000c0c000 +00fbc0fd00fdc00500c0c0000000fcc0fd00fcc0fc00fac0f500fcc0fb00 +fdc0fc0001c0c0f100fdc0fd00fac0010000fbc0fd00fbc0f400fcc0f600 +fdc0030000c0c0f500fcc0f500fbc0f300fdc0fd00fbc0f500fbc0fd00fb +c0fd00fbc0f300fdc00a0000c0c0c00000c0c00000fbc0f500fbc0fd00fb +c0fd0010c0c00000c0c00000c0c0c000c0c0000000fcc0fb00fdc0fc00fc +c0fd00fbc0fd0007c0c00000c0c00000fbc0fb0001c0c08000d5008000eb +0001c0c0ca0005c0c00000c0c0800080008000d3008000ec0001c0c0ca00 +06c0c0000000c0c0800080008000d3008000f000fbc0cd00fbc0fd00fcc0 +800080008000d40080008000800080008000800080008000800080008000 +80008000800080000000fac0dd00fcc0f600fdc0f100fcc0f300fdc0f300 +fdc0e30001c0c0f200fdc0db0000c0f90001c0c0ba0000c0f90000c0f900 +01c0c0e20000c0fc00fdc0e900fdc0f20000c0e90000c0d10001c0c08000 +bd000000fac0de0005c0c00000c0c0f60001c0c0f20005c0c00000c0c0f3 +0001c0c0f40004c0c000c0c0e40001c0c0f30004c0c000c0c0dd0001c0c0 +f90001c0c0bb0001c0c0fa0001c0c0f90001c0c0e30001c0c0fb0001c0c0 +e80001c0c0f30001c0c0ea0001c0c0d10001c0c08000bd000600c000c0c0 +00c0df0001c0c0fc0000c0f60001c0c0f30001c0c0fc0000c0f30001c0c0 +f40004c0c00000c0d50004c0c00000c0dd0001c0c0b20001c0c0fa0001c0 +c0da0001c0c0fb0001c0c0e80001c0c0f30001c0c0ea0001c0c080008c00 +fd0015c0c0000000c0c0000000c0c000c0c000c0c0c0000000fbc0f60001 +c0c0f10004c0c000c0c0f60001c0c0f000fcc0f40001c0c0fb00fbc00700 +00c0c000c0c0c0f400fdc0fd0005c0c000c0c0c0fc0001c0c0fb00fbc012 +0000c0c000c0c0c00000c0c0c000c0c0000000fcc0fd00fac0fc00fdc0fc +00fbc0070000c0c000c0c0c0f500fbc0070000c0c000c0c0c0f500fdc004 +00c0c00000fbc0010000fac0010000fac0fc00fdc0fd000ec0c000c0c0c0 +000000c0c0c000c0c0f700fac0fd0007c0c000c0c0000000fbc0f30001c0 +c0fc00fcc0fd00fac0fd00fbc0fd00fbc0010000fac0f60008c0c0000000 +c0c00000fbc00a0000c0c000c0c0c0000000fbc0fc00fdc0fc00fbc00700 +00c0c000c0c0c08000ce00fd001bc0c0000000c0c0000000c0c00000c0c0 +0000c0c000c0c0000000c0c0f70001c0c0f100fdc00200c0c0f70001c0c0 +f10004c0c000c0c0f500fcc0fd000ec0c0000000c0c00000c0c0c000c0c0 +f40001c0c0fc0007c0c00000c0c00000fcc0fd000fc0c0000000c0c00000 +c0c0c000c0c000f9c0fb0001c0c0fc0001c0c0f90013c0c0000000c0c000 +0000c0c00000c0c00000c0c0f7000ec0c0000000c0c00000c0c00000c0c0 +f70013c0c00000c0c00000c0c0000000c0c0000000c0c0fa0001c0c0f900 +01c0c0fc000cc0c00000c0c000c0c00000c0c0f40001c0c0fb00fdc00a00 +c0c000c0c0000000c0c0f40001c0c0f90001c0c0fc0001c0c0fc0013c0c0 +000000c0c000c0c0000000c0c0000000c0c0f4001ec0c0000000c0c000c0 +c0000000c0c00000c0c0c000c0c000c0c0000000c0c0fc0013c0c0000000 +c0c0000000c0c00000c0c00000c0c08000cf00fd0014c0c0000000c0c000 +0000c0c00000c0c00000c0c000f9c0f70001c0c0fa00f9c0070000c0c000 +00c0c0f70001c0c0fa00f9c00600c0c00000c0c0f40001c0c0fc000ec0c0 +000000c0c00000c0c00000c0c0f40001c0c0fc000ac0c00000c0c0000000 +c0c0fc0018c0c0000000c0c00000c0c00000c0c000c0c000c000c0c00000 +fbc0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c00000c0c0 +f7000ec0c0000000c0c00000c0c00000c0c0f70007c0c00000c0c00000f9 +c0fd0001c0c0fa0001c0c0f90001c0c0fc000cc0c00000c0c000c0c00000 +c0c0f40001c0c0fb0006c0c00000c0c000f9c0f40001c0c0fc00fbc0fc00 +01c0c0fc00f9c0030000c0c0f90001c0c0f40007c0c0000000c0c000f9c0 +0b0000c0c00000c0c00000c0c0f80013c0c0000000c0c0000000c0c00000 +c0c00000c0c08000cf00fd0016c0c0000000c0c0000000c0c00000c0c000 +00c0c000c0c0f20001c0c0f10005c0c00000c0c0f70001c0c0f20005c0c0 +0000c0c0f40001c0c0fc000ac0c0000000c0c00000c0c0f00001c0c0fc00 +0ac0c00000c0c0000000c0c0fc000ac0c0000000c0c00000c0c0fb000dc0 +c000c000c0c000c0c00000c0c0fc0001c0c0f90013c0c0000000c0c00000 +00c0c00000c0c00000c0c0f7000ec0c0000000c0c00000c0c00000c0c0f7 +0009c0c00000c0c00000c0c0f80001c0c0fa0001c0c0f90001c0c0fc000c +c0c00000c0c000c0c00000c0c0f40001c0c0fb0008c0c00000c0c000c0c0 +ef000ac0c0000000c0c00000c0c0fc0001c0c0fc0001c0c0f800fdc0fb00 +01c0c0f40009c0c0000000c0c000c0c0f90001c0c0f900fdc0fa0013c0c0 +000000c0c0000000c0c00000c0c00000c0c08000cf00fd0016c0c0000000 +c0c0000000c0c00000c0c00000c0c000c0c0f20001c0c0fc0000c0f60005 +c0c00000c0c0f70001c0c0fc0000c0f70005c0c00000c0c0f40001c0c0fc +000ac0c0000000c0c00000c0c0f00001c0c0fc000ac0c00000c0c0000000 +c0c0fc000ac0c0000000c0c00000c0c0fb000dc0c000c000c0c000c0c000 +00c0c0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c00000c0 +c0f7000ec0c0000000c0c00000c0c00000c0c0f70009c0c00000c0c00000 +c0c0f80001c0c0fa0001c0c0f90001c0c0fc000cc0c00000c0c000c0c000 +00c0c0f40001c0c0fb0008c0c00000c0c000c0c0ef000ac0c0000000c0c0 +0000c0c0fc0001c0c0fc0001c0c0f60001c0c0fc0001c0c0f40009c0c000 +0000c0c000c0c0f90001c0c0f70001c0c0fb0013c0c0000000c0c0000000 +c0c00000c0c00000c0c08000cf00fd001bc0c0000000c0c0000000c0c000 +00c0c00000c0c000c0c0000000c0c0f60005c0c00000c0c0f60005c0c000 +00c0c0f60005c0c00000c0c0f70005c0c00000c0c0f40001c0c0fc000ac0 +c0000000c0c00000c0c0f00001c0c0fc000ac0c00000c0c0000000c0c0fc +000ac0c0000000c0c00000c0c0fb000dc0c000c000c0c000c0c00000c0c0 +fc0004c0c000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0 +c0f7000ec0c0000000c0c00000c0c00000c0c0f7001ec0c00000c0c00000 +c0c0000000c0c0000000c0c000c0c0000000c0c000c0c0fc0001c0c0fc00 +0cc0c00000c0c000c0c00000c0c0f40014c0c000c0c00000c0c00000c0c0 +00c0c0000000c0c0f4000ac0c0000000c0c00000c0c0fc001cc0c000c0c0 +00c0c0000000c0c000c0c0000000c0c0000000c0c000c0c0f60011c0c000 +c0c00000c0c0000000c0c00000c0c0fb0006c0c0000000c0c0fc0013c0c0 +000000c0c0000000c0c00000c0c00000c0c0fc0001c0c08000d500010000 +fcc0fd00fac0010000fbc0fd00fbc0f400fcc0f600fdc0030000c0c0f500 +fcc0f500fdc00200c0c0f600fcc0fc00fbc0010000fcc0f200fcc0fd0007 +c0c00000c0c00000fcc0fc00fbc0010000fcc0fc000ec0c0000000c0c000 +00c0c0c000c0c0fc00fdc0fc00fcc0fd00fbc0fd0005c0c00000c0c0f600 +fbc0fd0005c0c00000c0c0f600fbc0fd00fbc0fb00fdc0fb00fdc0fc00fc +c0fd0007c0c00000c0c00000fbc0f300fdc00a0000c0c0c00000c0c00000 +fbc0f400fcc0fd00fdc00200c0c0fc00fdc0fd00fbc0fd00fbc0fb00fdc0 +f400fdc0fc00fbc0010000fcc0fb00fbc0fc00fcc0fd00fbc0fd0005c0c0 +0000c0c0fc0001c0c08000d500f30005c0c00000c0c080008f0001c0c0d2 +0001c0c080008000b600f40006c0c0000000c0c08000930005c0c00000c0 +c0d60005c0c00000c0c080008000b600f800fbc0fd00fcc080009300fcc0 +d400fcc080008000b5008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +800080008000800080008000800080008000800080008000800080008000 +8000800080008000800080008000800080008000010000fcc0fb00fdc0de +00f9c0b40001c0c0c500fdc0f000fdc0cb0000c0fa00fdc0e20000c0dc00 +06c0c0000000c0c0840001c0c0e500fac0010000f9c0010000fac08f00fd +0001c0c0fb0004c0c000c0c0de0005c0c00000c0c0b40001c0c0c40001c0 +c0ef0001c0c0cc0001c0c0f90001c0c0e30001c0c0dc00fdc00300c0c0c0 +840001c0c0e4000fc0c00000c0c00000c0c00000c0c00000fac08f00fd00 +01c0c0fb0004c0c00000c0de0005c0c0000000c08000f60001c0c0ef0001 +c0c0cc0001c0c0f90001c0c0e30001c0c0dc00f9c08000e60015c0c00000 +c0c00000c0c0000000c00000c000c0c000c08f00fd0001c0c0fb0001c0c0 +f300fcc0fd0005c0c000c0c0c0f5000fc0c000c0000000c0c0c000c0c000 +0000fcc0fc00fbc0fd00fbc0f500fbc0fd00fbc0fd00fbc0fd00fbc0fc00 +fdc0fc00fbc0070000c0c000c0c0c0f500fbc00a0000c0c000c0c0c00000 +00fcc0fc00fbc0fd0007c0c000c0c0000000fbc0fc00fcc0f60008c0c000 +c0c0c0000000fbc0fd00fbc0fd00fbc0090000c0c000c0c0c00000fac0fb +000bc0c0000000c0c0000000c0c0ef00fac0120000c0c0000000c0c000c0 +c000c0c0c0000000fbc0f600f9c0f70006c0c0000000c0c0f70008c0c000 +c0c0c0000000fbc0fd00fbc0fd00fbc00a0000c0c0000000c0c00000fbc0 +070000c0c000c0c0c0f500fbc0fd00fbc0fd00fbc0fd00fbc0fc00fdc0fc +00fbc0070000c0c000c0c0c0f5000bc0c00000c0c00000c0c000c0fa0001 +c0c08d00fd0001c0c0fc00fcc0f1000ac0c0000000c0c00000c0c0f600fc +c0fd00f9c0fb0012c0c00000c0c0000000c0c000c0c0000000c0c0f7001e +c0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0 +c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0c0f7000ec0c000 +0000c0c00000c0c0c000c0c0fb0021c0c00000c0c0000000c0c00000c0c0 +c000c0c000c0c0000000c0c00000c0c000c0c0f500fdc02700c0c000c0c0 +000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0c000 +0000c0c0f9000bc0c0000000c0c0000000c0c0ed0001c0c0fc0016c0c000 +0000c0c00000c0c00000c0c000c0c0000000c0c0f70006c0c000c000c0c0 +f60004c0c000c0c0f500fdc03200c0c000c0c0000000c0c000c0c0000000 +c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c0 +c000c0c0f7001ec0c0000000c0c000c0c0000000c0c000c0c0000000c0c0 +00c0c0000000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0 +c0f600fbc0fd00fcc0fa0001c0c08d00fd0001c0c0fb0001c0c0f300fbc0 +fd0005c0c00000c0c0f6000fc0c000c0000000c0c000c000c0c00000fbc0 +030000c0c0f90001c0c0f20001c0c0fb00f9c0030000c0c0fa0001c0c0f8 +0013c0c0000000c0c0000000c0c00000c0c00000c0c0f70001c0c0f90007 +c0c00000c0c00000fbc0fd0001c0c0fa0006c0c00000c0c000f9c00600c0 +c00000c0c0f50006c0c00000c0c000f9c00200c0c0fa00f9c00c0000c0c0 +0000c0c0000000c0c0f9000bc0c0000000c0c0000000c0c0ed0001c0c0fc +000fc0c0000000c0c00000c0c00000c0c000f9c0f70007c0c0000000c0c0 +00f9c0fd00fdc0f40006c0c00000c0c000f9c00200c0c0fa000fc0c00000 +00c0c000c0c0000000c0c000f9c0080000c0c00000c0c000f9c0030000c0 +c0fb00f9c0030000c0c0fa0001c0c0f80013c0c0000000c0c0000000c0c0 +0000c0c00000c0c0f6000bc0c000c0c0000000c0c000c0fa0001c0c08d00 +fd0001c0c0fb0001c0c0f4000ec0c00000c0c0000000c0c00000c0c0f600 +01c0c0fb0011c0c000c000c0c000c0c00000c0c00000c0c0f800fdc0f300 +fdc0fd0001c0c0f800fdc0fb00fdc0fa0013c0c0000000c0c0000000c0c0 +0000c0c00000c0c0f70001c0c0f90001c0c0fb0005c0c00000c0c0fc00fd +c0fc0008c0c00000c0c000c0c0fa0005c0c00000c0c0f50001c0c0fb0001 +c0c0fa0001c0c0fa0001c0c0f9000ac0c00000c0c0000000c0c0f9000bc0 +c0000000c0c0000000c0c0ed0001c0c0fc0011c0c0000000c0c00000c0c0 +0000c0c000c0c0f20006c0c0000000c0c0f500fdc0f40001c0c0fb0001c0 +c0fa0001c0c0fa0011c0c0000000c0c000c0c0000000c0c000c0c0f90001 +c0c0f100fdc0fd0001c0c0f800fdc0fb00fdc0fa0013c0c0000000c0c000 +0000c0c00000c0c00000c0c0f60009c0c00000c0c00000c0c0f80001c0c0 +8d00fd0001c0c0fb0001c0c0f4000ec0c00000c0c0000000c0c00000c0c0 +f60018c0c0000000c000c0c000c000c0c000c0c00000c0c00000c0c0f600 +01c0c0f20005c0c00000c0c0f60001c0c0fa0001c0c0fb0013c0c0000000 +c0c0000000c0c00000c0c00000c0c0f70001c0c0f90001c0c0fb0005c0c0 +0000c0c0fa000dc0c0000000c0c00000c0c000c0c0fa0005c0c00000c0c0 +f50001c0c0fb0001c0c0fa0001c0c0fa0001c0c0f9000ac0c00000c0c000 +0000c0c0f9000bc0c0000000c0c0000000c0c0fc0001c0c0f30001c0c0fc +0011c0c0000000c0c00000c0c00000c0c000c0c0f20006c0c0000000c0c0 +f500fdc0f40001c0c0fb0001c0c0fa0001c0c0fa0011c0c0000000c0c000 +c0c0000000c0c000c0c0f90001c0c0ef0005c0c00000c0c0f60001c0c0fa +0001c0c0fb0013c0c0000000c0c0000000c0c00000c0c00000c0c0f6000d +c0c00000c0c00000c0c0000000c0fc0001c0c08d00fd0001c0c0fb0001c0 +c0f4000ec0c00000c0c0000000c0c00000c0c0f60025c0c00000c0c000c0 +c000c000c0c000c0c00000c0c00000c0c0000000c0c000c0c0000000c0c0 +f7001ec0c0000000c0c000c0c0000000c0c000c0c0000000c0c000c0c000 +0000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000c0c0f7000a +c0c0000000c0c00000c0c0fb0025c0c00000c0c00000c0c0000000c0c000 +00c0c00000c0c000c0c0000000c0c000c0c00000c0c0f50001c0c0fb0026 +c0c0000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c00000c0 +c0000000c0c000c0c0fc000bc0c0000000c0c0000000c0c0fc0001c0c0f3 +001cc0c000c0c000c0c0000000c0c00000c0c00000c0c000c0c0000000c0 +c0f70006c0c0000000c0c0f60004c0c000c0c0f50001c0c0fb002ac0c000 +0000c0c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c00000c0 +c0000000c0c00000c0c0f3001ec0c0000000c0c000c0c0000000c0c000c0 +c0000000c0c000c0c0000000c0c0fc0013c0c0000000c0c0000000c0c000 +00c0c00000c0c0f6000dc0c00000c0c00000c0c00000c0c0fc0001c0c08d +00010000fcc0fd00fcc0f400fdc00a00c0c00000c0c00000c0c0f700f9c0 +1100c0c0000000c0c00000c0c0c000c0c00000fbc0fd00fbc0f500fbc0fd +00fbc0fd00fbc0fd00fbc0fc00fcc0fd00fbc0fd0005c0c00000c0c0f600 +fbc0010000fcc0fb00fdc00400c0c00000fbc00a0000c0c0c00000c0c000 +00fbc0fd00fdc00200c0c0f700fcc0fb00fbc0fd00fbc0fd00fbc0fd0005 +c0c00000c0c0fc00fdc0fc00fcc0fd00fac0fc0001c0c0f200fdc0fd00fa +c0010000fbc0fd00fbc0f60006c0c0000000c0c0f70006c0c0000000c0c0 +f700fcc0fb00fbc0fd00fbc0fd00fbc0fc00fdc0fc00fbc0010000fcc0f3 +00fbc0fd00fbc0fd00fbc0fd00fbc0fc00fcc0fd00fbc0fd0005c0c00000 +c0c0f700fdc0040000c0c000f9c0fd00fcc08e0080008000e30006c0c000 +0000c0c0e70005c0c00000c0c080008000c30080008000e40001c0c0e200 +06c0c0000000c0c080008000c30080008000e800fbc0e500fbc0fd00fcc0 +80008000c400800080008000800080008000800080008000800080008000 +800080008000fd0000c0a90000c0fc00fdc0e800fdc0fb0001c0c0fb00fd +c09200fdc0fb0001c0c0fa0000c0f90001c0c0800080009500030000c0c0 +aa0001c0c0fb0001c0c0e90004c0c000c0c0fc0001c0c0fa0001c0c09100 +01c0c0fb0001c0c0fb0001c0c0f90001c0c0800080009500030000c0c0aa +0001c0c0fb0001c0c0e90004c0c00000c0f40001c0c0910001c0c0f40001 +c0c0800080008c00fac0fd00fbc0f60008c0c000c0c0c0000000fbc0fd00 +fbc0fd00fbc00a0000c0c0000000c0c00000fbc0070000c0c000c0c0c0f6 +00fac0fd0007c0c000c0c0000000fbc0f40001c0c0fa00fdc0fa0001c0c0 +fc00fbc0fd00fbc0f60008c0c0000000c0c00000fbc0070000c0c00000c0 +c0f60008c0c0000000c0c00000fbc00a0000c0c000c0c0c0000000fbc0f5 +00fbc0fc00fcc0fc00fdc0fd00fac0fc00fdc0fd000ec0c000c0c0c00000 +00c0c0c000c0c080008000a700030000c0c0fc0006c0c0000000c0c0f600 +fdc03200c0c000c0c0000000c0c000c0c0000000c0c000c0c0000000c0c0 +00c0c0000000c0c000c0c0000000c0c00000c0c0c000c0c0f50001c0c0fb +00fdc00a00c0c000c0c0000000c0c0f600fcc0fa0001c0c0fa0013c0c000 +0000c0c0000000c0c000c0c0000000c0c0f70015c0c0000000c0c000c0c0 +000000c0c000c0c00000c0c0f6001ec0c0000000c0c000c0c0000000c0c0 +0000c0c0c000c0c000c0c0000000c0c0f7000dc0c0000000c0c00000c0c0 +00c0c0fb0001c0c0fb0001c0c0f90001c0c0fc000cc0c00000c0c000c0c0 +0000c0c080008000a600030000c0c0fc0006c0c0000000c0c0f60006c0c0 +0000c0c000f9c00200c0c0fa000fc0c0000000c0c000c0c0000000c0c000 +f9c0070000c0c00000c0c0f50001c0c0fb0006c0c00000c0c000f9c0f500 +01c0c0f90001c0c0fa0004c0c0000000f9c0030000c0c0f30015c0c00000 +00c0c000c0c0000000c0c000c0c00000c0c0f60007c0c000c000c0c000f9 +c0080000c0c00000c0c000f9c0f700f9c00600c0c00000c0c0fb0001c0c0 +fb0001c0c0f90001c0c0fc000cc0c00000c0c000c0c00000c0c080008000 +a600030000c0c0fc0006c0c0000000c0c0f60001c0c0fb0001c0c0fa0001 +c0c0fa0011c0c0000000c0c000c0c0000000c0c000c0c0f90001c0c0f100 +01c0c0fb0008c0c00000c0c000c0c0f00001c0c0f90001c0c0fa0006c0c0 +000000c0c0f800fdc0f50015c0c0000000c0c000c0c0000000c0c000c0c0 +0000c0c0f60009c0c000c000c0c000c0c0f90001c0c0fb0001c0c0f20001 +c0c0fa0005c0c00000c0c0fb0001c0c0fb0001c0c0f90001c0c0fc000cc0 +c00000c0c000c0c00000c0c080008000a600030000c0c0fc0006c0c00000 +00c0c0f60001c0c0fb0001c0c0fa0001c0c0fa0011c0c0000000c0c000c0 +c0000000c0c000c0c0f90001c0c0f10001c0c0fb0008c0c00000c0c000c0 +c0f00001c0c0f90001c0c0fa0006c0c0000000c0c0f60001c0c0f60015c0 +c0000000c0c000c0c0000000c0c000c0c00000c0c0f60009c0c000c000c0 +c000c0c0f90001c0c0fb0001c0c0f20001c0c0fa0005c0c00000c0c0fb00 +01c0c0fb0001c0c0f90001c0c0fc000cc0c00000c0c000c0c00000c0c080 +008000a6000e0000c0c000c0c000c0c0000000c0c0f60001c0c0fb002ac0 +c0000000c0c000c0c0000000c0c000c0c0000000c0c00000c0c000c0c000 +00c0c0000000c0c00000c0c0f10014c0c000c0c00000c0c00000c0c000c0 +c0000000c0c0f50001c0c0f90001c0c0fa0013c0c0000000c0c0000000c0 +c000c0c0000000c0c0f70015c0c0000000c0c000c0c0000000c0c000c0c0 +0000c0c0f600f9c00b00c0c0000000c0c00000c0c0fb0006c0c0000000c0 +c0f7000dc0c0000000c0c000c0c00000c0c0fb0001c0c0fb0004c0c000c0 +c0fc0001c0c0fc000cc0c00000c0c000c0c00000c0c0fb0001c0c0800080 +00ad00fd00fdc0fd00fbc0f600fcc0fb00fbc0fd00fbc0fd00fbc0fc00fd +c0fc00fbc0010000fcc0f100fdc00a0000c0c0c00000c0c00000fbc0f500 +fcc0fb00fcc0fc00fcc0fd00fbc0fd00fbc0f500fac0010000fbc0fd00fd +c00200c0c0f60007c0c000c0c0000000fbc0010000fcc0fb00fbc0f500fb +c0fd00fdc00500c0c0000000fcc0fb00fdc0fc00fcc0fd0007c0c00000c0 +c00000fbc0fb0001c0c080008000ad008000d30001c0c08b0001c0c08000 +8000a6008000d40001c0c08e0005c0c00000c0c080008000a6008000d800 +fbc08c00fcc080008000a5008000800080008000800080c080c080c080c0 +80c080c080c080c080c080c0d6c0fc8010c0c08080c0c0c08080c08080c0 +c0c08080f7c0f98080c080c080c080c0cfc0d7c0158080c0c08080c08080 +80c0c08080c08080c0c0c08080f6c0058080c0c0808080c080c080c080c0 +cfc0d8c0018080fcc00180c0fc800ac08080c08080c0c0c08080f6c00580 +80c0c0c08080c080c080c080c0cfc0d8c0018080fac0f98007c08080c0c0 +c08080f6c00f8080c080c0c0c0808080c08080c0c0c0fc80fcc0fb80fdc0 +fb8080c080c080c080c0eec0d8c0018080fac0028080c0fc8007c08080c0 +c0c08080f6c0fc80fdc0f980fbc0128080c0c08080c0c0c08080c08080c0 +c0c0808080c080c080c080c0efc0f98000c0f98000c0f98000c0f980f7c0 +028080c0fc800fc08080c0c0808080c08080c0c0c08080f6c00f8080c080 +c0c0c08080c080c08080c0c0fb8003c0c08080f9c0018080f3c0f98000c0 +f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f980 +00c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0 +f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f980 +00c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0 +f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f980 +00c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0 +f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f980 +00c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0f98000c0 +f98000c0f98000c0f98000c0f980ffc0d8c0168080c0c0c08080c08080c0 +c0c08080c08080c0c0c08080f6c0018080fbc0118080c080c08080c08080 +c0c08080c0c08080f8c0fd8080c080c080c080c0edc0d8c0168080c0c0c0 +8080c08080c0c0c08080c08080c0c0c08080f6c0188080c0c0c080c08080 +c080c08080c08080c0c08080c0c08080f6c001808080c080c080c080c0ee +c0d7c0158080c0c08080c08080c0c0c08080c08080c0c0c08080f6c02580 +80c0c08080c08080c080c08080c08080c0c08080c0c08080c0c0c08080c0 +8080c0c0c0808080c080c080c080c0efc0d6c0fd800bc080c08080c0c0c0 +8080c0c0fb80f6c0f98011c08080c0c0c08080c0c0808080c08080c0c0fb +80fdc0fb8080c080c080c080c0eec080c080c080c080c080c080c080c080 +c080c080c080c080c080c080c080c080c080c080c080c080c08000800080 +008000800080008000800080008000f9c0e40001c0c0f200fdc0db0000c0 +f90001c0c0dd00fdc0e80000c0f10000c0fc00fdc0e900fcc0100000c0c0 +000000c0c000c0c0000000c0c0f700fac0e90001c0c0ec0000c0e100fdc0 +f30001c0c0fa0000c0d200fdc0e20000c0da00fcc0f600fdc0f100fcc080 +00f6000600c0c00000c0c0e40001c0c0f30004c0c000c0c0dd0001c0c0f9 +0001c0c0dc0001c0c0e90001c0c0f20001c0c0fb0001c0c0ea0015c0c000 +00c0c000c0c0c00000c0c000c0c0000000c0c0f60005c0c00000c0c0ea00 +01c0c0ed0001c0c0e00001c0c0f30001c0c0fb0001c0c0d10001c0c0e300 +01c0c0db0005c0c00000c0c0f60001c0c0f20005c0c00000c0c08000f700 +0600c0c0000000c0d50004c0c00000c0dd0001c0c0d30001c0c0e90001c0 +c0f20001c0c0fb0001c0c0eb0001c0c0fc0001c000fcc00a00c0c000c0c0 +000000c0c0f60005c0c00000c0c0d50001c0c0e00001c0c0ec0001c0c0d1 +0001c0c0e30001c0c0dc0001c0c0fc0000c0f60001c0c0f30001c0c0fc00 +00c08000f7000400c0c000c0fc00fbc0070000c0c000c0c0c0f400fdc0fd +0005c0c000c0c0c0fc0001c0c0fb00fbc0120000c0c000c0c0c00000c0c0 +c000c0c0000000fcc0fd00fac0fc00fdc0fc00fbc0070000c0c000c0c0c0 +f500fcc0fc00fcc0fc00fbc0090000c0c00000c0c00000fac0f600fac0fd +0007c0c000c0c0000000fbc0f60001c0c0fa00f9c00700c0c0000000c0c0 +f6000fc0c00000c0c000c0c000c0c0c0000000fbc0fa00fdc0010000fbc0 +fd00fbc0010000fac0f500fcc0fd0005c0c000c0c0c0fc00fcc0f400fdc0 +fd00fac0fd00fbc0f500fdc00400c0c00000fbc0fd00fcc0fa0001c0c0fc +00fbc0ee00fac0120000c0c0000000c0c000c0c000c0c0c0000000fbc0f6 +0001c0c0f10004c0c000c0c0f60001c0c0f20005c0c000c0c0c086000000 +fcc0fd000ec0c0000000c0c00000c0c0c000c0c0f40001c0c0fc0007c0c0 +0000c0c00000fcc0fd000fc0c0000000c0c00000c0c0c000c0c000f9c0fb +0001c0c0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c00000 +c0c0f30019c0c0000000c0c000c0c00000c0c0000000c0c000c0c00000c0 +c0fc0001c0c0f20001c0c0fb00fdc00a00c0c000c0c0000000c0c0f70001 +c0c0fa0002c0c000fcc00700c0c0000000c0c0f600fbc0fd00fdc00a00c0 +c000c0c0000000c0c0fa0016c0c000c0c0000000c0c000c0c0000000c0c0 +000000c0c0f00011c0c0000000c0c00000c0c00000c0c000c0c0f30001c0 +c0fb0001c0c0fc0006c0c0000000c0c0f7000ec0c00000c0c00000c0c000 +0000c0c0fb0001c0c0fb000bc0c0000000c0c0000000c0c0ed0001c0c0fc +0016c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f70001c0c0 +f100fdc00200c0c0f70001c0c0f10005c0c00000c0c087001600c0c000c0 +000000c0c0000000c0c00000c0c00000c0c0f40001c0c0fc000ac0c00000 +c0c0000000c0c0fc0018c0c0000000c0c00000c0c00000c0c000c0c000c0 +00c0c00000fbc0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0 +c00000c0c0f600fbc0fd0014c0c00000c0c000c0c0000000c0c000c0c000 +00c0c0fc0001c0c0f20001c0c0fb0006c0c00000c0c000f9c0f70002c0c0 +00fcc00f00c0c00000c0c0c000c0c0000000c0c0f60001c0c0fa000dc0c0 +0000c0c000c0c0000000c0c0fa0002c0c000f9c00200c0c0f80001c0c0f3 +00fbc0fd000cc0c00000c0c000c0c00000c0c0f30001c0c0fb0001c0c0fb +0001c0c0f30010c0c00000c0c00000c0c0000000c0c00000fbc0fb0001c0 +c0fc0001c0c0e90001c0c0fc000fc0c0000000c0c00000c0c00000c0c000 +f9c0f70001c0c0fa00f9c0070000c0c00000c0c0f70001c0c0fa00f9c007 +0000c0c00000c0c087000200c0c0fb000ac0c0000000c0c00000c0c0f000 +01c0c0fc000ac0c00000c0c0000000c0c0fc000ac0c0000000c0c00000c0 +c0fb000dc0c000c000c0c000c0c00000c0c0fc0001c0c0f90013c0c00000 +00c0c0000000c0c00000c0c00000c0c0f7001dc0c00000c0c0000000c0c0 +0000c0c000c0c0000000c0c000c0c00000c0c0fc0001c0c0f20001c0c0fb +0008c0c00000c0c000c0c0f20016c0c0000000c0c000c0c0000000c0c000 +c0c0000000c0c0f60001c0c0fa0001c0c0fb0006c0c0000000c0c0fa0004 +c0c000c0c0fa0001c0c0f80001c0c0f40015c0c00000c0c0000000c0c000 +00c0c000c0c00000c0c0f30001c0c0fb0001c0c0fa00fdc0f50015c0c000 +00c0c00000c0c0000000c0c000c0c00000c0c0fb0001c0c0fb00fdc0eb00 +01c0c0fc0011c0c0000000c0c00000c0c00000c0c000c0c0f20001c0c0f1 +0005c0c00000c0c0f70001c0c0f10005c0c00000c0c087000200c0c0fb00 +0ac0c0000000c0c00000c0c0f00001c0c0fc000ac0c00000c0c0000000c0 +c0fc000ac0c0000000c0c00000c0c0fb000dc0c000c000c0c000c0c00000 +c0c0fc0001c0c0f90013c0c0000000c0c0000000c0c00000c0c00000c0c0 +f7001dc0c00000c0c0000000c0c00000c0c000c0c0000000c0c000c0c000 +00c0c0fc0001c0c0f20001c0c0fb0008c0c00000c0c000c0c0f20016c0c0 +000000c0c000c0c0000000c0c000c0c0000000c0c0f60001c0c0fa0001c0 +c0fb0006c0c0000000c0c0fa0004c0c000c0c0fa0001c0c0f80001c0c0f4 +0015c0c00000c0c0000000c0c00000c0c000c0c00000c0c0f30001c0c0fb +0001c0c0f80001c0c0f60015c0c00000c0c00000c0c0000000c0c000c0c0 +0000c0c0fb0001c0c0f90001c0c0fb0001c0c0f30001c0c0fc0011c0c000 +0000c0c00000c0c00000c0c000c0c0f20001c0c0fc0000c0f60005c0c000 +00c0c0f70001c0c0fc0000c0f60005c0c00000c0c087000200c0c0fb000a +c0c0000000c0c00000c0c0f00001c0c0fc000ac0c00000c0c0000000c0c0 +fc000ac0c0000000c0c00000c0c0fb000dc0c000c000c0c000c0c00000c0 +c0fc0004c0c000c0c0fc0013c0c0000000c0c0000000c0c00000c0c00000 +c0c0f7001dc0c00000c0c0000000c0c00000c0c000c0c0000000c0c000c0 +c00000c0c0fc0004c0c000c0c0f50014c0c000c0c00000c0c00000c0c000 +c0c0000000c0c0f60015c0c00000c0c000c0c0000000c0c000c0c0000000 +c0c0f60001c0c0fa0001c0c0fb0006c0c0000000c0c0fa0019c0c000c0c0 +000000c0c000c0c0000000c0c0000000c0c000c0c0f70015c0c00000c0c0 +000000c0c00000c0c000c0c00000c0c0f30001c0c0fb000cc0c000c0c000 +c0c0000000c0c0f70015c0c00000c0c00000c0c0000000c0c000c0c00000 +c0c0fb000bc0c0000000c0c0000000c0c0fc0001c0c0f3001cc0c000c0c0 +00c0c0000000c0c00000c0c00000c0c000c0c0000000c0c0f60005c0c000 +00c0c0f60005c0c00000c0c0f60005c0c00000c0c0f60005c0c00000c0c0 +fc0001c0c08d00fcc0fb00fbc0010000fcc0f200fcc0fd0007c0c00000c0 +c00000fcc0fc00fbc0010000fcc0fc000ec0c0000000c0c00000c0c0c000 +c0c0fc00fdc0fc00fcc0fd00fbc0fd0005c0c00000c0c0f600fdc00400c0 +c00000fbc0fd00fbc0fd00fdc00200c0c0fc00fdc0f300fdc00a0000c0c0 +c00000c0c00000fbc0f400fdc00b00c000c0c0000000c0c00000fbc0f600 +fcc0fc00fcc0fb00fbc0f90003c0c00000fbc0fd00fbc0fb00fdc0f500fd +c01200c0c00000c0c00000c0c00000c0c0c000c0c0f500fcc0fb00fdc0fd +00fbc0f500fbc0fd00fbc0fd00fdc00500c0c0000000fcc0fd00fbc0fb00 +01c0c0f200fdc0fd00fac0010000fbc0fd00fbc0f400fcc0f600fdc00300 +00c0c0f500fcc0f500fbc0fb0001c0c08d0080008000f70005c0c00000c0 +c09b0001c0c0dc0001c0c0e70005c0c00000c0c0ba0001c0c08300800080 +00f70005c0c00000c0c09f0005c0c00000c0c0c20006c0c0000000c0c0ba +0001c0c0830080008000f600fcc09d00fcc0c500fbc0fd00fcc0bc00fcc0 +840080008000800080008000 +grestore +showpage +%%Trailer + +%%EndDocument + @endspecial -30 60512 a + currentpoint currentpoint translate 1 0.79 div 1 0.79 div scale neg +exch neg exch translate + -30 60512 a -30 62062 a +SDict begin H.S end + -30 +62062 a -30 62062 a +SDict begin 18.2 H.A end + -30 62062 a -30 62062 a +SDict begin [ /View [/XYZ H.V] /Dest (5974) cvn H.B /DEST pdfmark end + -30 62062 +a 2015 x FU(Y)-170 b(ou)387 b(can)g(also)g(start)g(Emacs)g(on)g(an)h(e) +-23 b(xisting)386 b(\002le)h(by)g(typing)-30 65962 y +SDict begin H.S end + +-30 65962 a -30 65962 a +SDict begin 14.56 H.A end + -30 65962 a -30 65962 a +SDict begin [ /View [/XYZ H.V] /Dest (5975) cvn H.B /DEST pdfmark end + -30 65962 +a -30 65962 a +SDict begin H.S end + -30 65962 a -30 65962 a +SDict begin 14.56 H.A end + -30 65962 a -30 +65962 a +SDict begin [ /View [/XYZ H.V] /Dest (5976) cvn H.B /DEST pdfmark end + -30 65962 a 1276 x FJ(\045)1309 67238 y +SDict begin H.S end + 1309 +67238 a 1309 67238 a +SDict begin 14.56 H.A end + 1309 67238 a 1309 67238 a +SDict begin [ /View [/XYZ H.V] /Dest (5977) cvn H.B /DEST pdfmark end + 1309 67238 +a FH(emacs)743 b(/etc/resolv.conf)p Black -30 73672 a +FR(206)p Black eop end +%%Page: 207 229 +TeXDict begin 207 228 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.207) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 40240 -1636 a FR(Chapter)386 b(17)h(Emacs)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (5978) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(This)426 b(will)f(cause)i(Emacs)e(to)h +(load)g(the)g(speci\002ed)g(\002le)g(when)g(it)g(starts)f(up,)i +(skipping)e(the)h(wel-)-30 5626 y(come)387 b(message.)-30 +5961 y +SDict begin H.S end + -30 5961 a -30 5961 a +SDict begin 18.2 H.A end + -30 5961 a -30 5961 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS-COMMAND-KEYS) cvn H.B /DEST +pdfmark end + -30 +5961 a 5027 x FG(Command)518 b(K)-28 b(e)g(ys)-30 12303 +y +SDict begin H.S end + -30 12303 a -30 12303 a +SDict begin 18.2 H.A end + -30 12303 a -30 12303 a +SDict begin [ /View [/XYZ H.V] /Dest (5981) cvn H.B /DEST pdfmark end + -30 +12303 a 1629 x FU(As)326 b(mentioned)f(abo)-23 b(v)g(e,)326 +b(Emacs)g(uses)20707 13932 y +SDict begin H.S end + 20707 13932 a 20707 13932 +a +SDict begin 18.2 H.A end + 20707 13932 a 20707 13932 a +SDict begin [ /View [/XYZ H.V] /Dest (5982) cvn H.B /DEST pdfmark end + 20707 13932 a FX(Contr)-28 +b(ol)326 b FU(and)28735 13932 y +SDict begin H.S end + 28735 13932 a 28735 13932 +a +SDict begin 18.2 H.A end + 28735 13932 a 28735 13932 a +SDict begin [ /View [/XYZ H.V] /Dest (5983) cvn H.B /DEST pdfmark end + 28735 13932 a FX(Alt)g +FU(combinations)e(for)i(commands.)g(The)-30 15947 y(usual)443 +b(con)-62 b(v)-23 b(ention)441 b(is)i(to)g(write)f(these)h(with)24508 +15947 y +SDict begin H.S end + 24508 15947 a 24508 15947 a +SDict begin 18.2 H.A end + 24508 15947 a 24508 +15947 a +SDict begin [ /View [/XYZ H.V] /Dest (5984) cvn H.B /DEST pdfmark end + 24508 15947 a 24508 15947 a +SDict begin H.S end + 24508 15947 a 24508 +15947 a +SDict begin 18.2 H.A end + 24508 15947 a 24508 15947 a +SDict begin [ /View [/XYZ H.V] /Dest (5985) cvn H.B /DEST pdfmark end + 24508 15947 a FX(C)p +FU(-)26143 15947 y +SDict begin H.S end + 26143 15947 a 26143 15947 a +SDict begin 18.2 H.A end + 26143 +15947 a 26143 15947 a +SDict begin [ /View [/XYZ H.V] /Dest (5986) cvn H.B /DEST pdfmark end + 26143 15947 a FX(letter)g FU(and)32794 +15947 y +SDict begin H.S end + 32794 15947 a 32794 15947 a +SDict begin 18.2 H.A end + 32794 15947 a 32794 +15947 a +SDict begin [ /View [/XYZ H.V] /Dest (5987) cvn H.B /DEST pdfmark end + 32794 15947 a 32794 15947 a +SDict begin H.S end + 32794 15947 a 32794 +15947 a +SDict begin 18.2 H.A end + 32794 15947 a 32794 15947 a +SDict begin [ /View [/XYZ H.V] /Dest (5988) cvn H.B /DEST pdfmark end + 32794 15947 a FX(M)p +FU(-)34773 15947 y +SDict begin H.S end + 34773 15947 a 34773 15947 a +SDict begin 18.2 H.A end + 34773 +15947 a 34773 15947 a +SDict begin [ /View [/XYZ H.V] /Dest (5989) cvn H.B /DEST pdfmark end + 34773 15947 a FX(letter)p FU(,)h(respecti)-39 +b(v)-23 b(ely)-101 b(.)443 b(So)49366 15947 y +SDict begin H.S end + 49366 15947 +a 49366 15947 a +SDict begin 18.2 H.A end + 49366 15947 a 49366 15947 a +SDict begin [ /View [/XYZ H.V] /Dest (5990) cvn H.B /DEST pdfmark end + 49366 15947 +a 49366 15947 a +SDict begin H.S end + 49366 15947 a 49366 15947 a +SDict begin 18.2 H.A end + 49366 15947 +a 49366 15947 a +SDict begin [ /View [/XYZ H.V] /Dest (5991) cvn H.B /DEST pdfmark end + 49366 15947 a FX(C)p FU(-)51001 15947 +y +SDict begin H.S end + 51001 15947 a 51001 15947 a +SDict begin 18.2 H.A end + 51001 15947 a 51001 15947 +a +SDict begin [ /View [/XYZ H.V] /Dest (5992) cvn H.B /DEST pdfmark end + 51001 15947 a FX(x)-30 17962 y FU(means)4249 17962 +y +SDict begin H.S end + 4249 17962 a 4249 17962 a +SDict begin 18.2 H.A end + 4249 17962 a 4249 17962 a +SDict begin [ /View [/XYZ H.V] /Dest (5993) cvn H.B /DEST pdfmark end + +4249 17962 a 4249 17962 a +SDict begin H.S end + 4249 17962 a 4249 17962 a +SDict begin 18.2 H.A end + 4249 +17962 a 4249 17962 a +SDict begin [ /View [/XYZ H.V] /Dest (5994) cvn H.B /DEST pdfmark end + 4249 17962 a FX(Contr)-28 b(ol)p +FU(+)10261 17962 y +SDict begin H.S end + 10261 17962 a 10261 17962 a +SDict begin 18.2 H.A end + 10261 +17962 a 10261 17962 a +SDict begin [ /View [/XYZ H.V] /Dest (5995) cvn H.B /DEST pdfmark end + 10261 17962 a FX(x)p FU(,)318 b(and)14298 +17962 y +SDict begin H.S end + 14298 17962 a 14298 17962 a +SDict begin 18.2 H.A end + 14298 17962 a 14298 +17962 a +SDict begin [ /View [/XYZ H.V] /Dest (5996) cvn H.B /DEST pdfmark end + 14298 17962 a 14298 17962 a +SDict begin H.S end + 14298 17962 a 14298 +17962 a +SDict begin 18.2 H.A end + 14298 17962 a 14298 17962 a +SDict begin [ /View [/XYZ H.V] /Dest (5997) cvn H.B /DEST pdfmark end + 14298 17962 a FX(M)p +FU(-)16277 17962 y +SDict begin H.S end + 16277 17962 a 16277 17962 a +SDict begin 18.2 H.A end + 16277 +17962 a 16277 17962 a +SDict begin [ /View [/XYZ H.V] /Dest (5998) cvn H.B /DEST pdfmark end + 16277 17962 a FX(x)h FU(means)21650 +17962 y +SDict begin H.S end + 21650 17962 a 21650 17962 a +SDict begin 18.2 H.A end + 21650 17962 a 21650 +17962 a +SDict begin [ /View [/XYZ H.V] /Dest (5999) cvn H.B /DEST pdfmark end + 21650 17962 a 21650 17962 a +SDict begin H.S end + 21650 17962 a 21650 +17962 a +SDict begin 18.2 H.A end + 21650 17962 a 21650 17962 a +SDict begin [ /View [/XYZ H.V] /Dest (6000) cvn H.B /DEST pdfmark end + 21650 17962 a FX(Alt)p +FU(+)24590 17962 y +SDict begin H.S end + 24590 17962 a 24590 17962 a +SDict begin 18.2 H.A end + 24590 +17962 a 24590 17962 a +SDict begin [ /View [/XYZ H.V] /Dest (6001) cvn H.B /DEST pdfmark end + 24590 17962 a FX(x)p FU(.)g(\(The)g(letter)32819 +17962 y +SDict begin H.S end + 32819 17962 a 32819 17962 a +SDict begin 18.2 H.A end + 32819 17962 a 32819 +17962 a +SDict begin [ /View [/XYZ H.V] /Dest (6002) cvn H.B /DEST pdfmark end + 32819 17962 a FX(M)g FU(is)g(used)g(instead)f(of)h(A)g(because) +-30 19976 y(originally)456 b(the)g(k)-15 b(e)-23 b(y)456 +b(w)-15 b(as)456 b(not)h(the)19099 19976 y +SDict begin H.S end + 19099 19976 +a 19099 19976 a +SDict begin 18.2 H.A end + 19099 19976 a 19099 19976 a +SDict begin [ /View [/XYZ H.V] /Dest (6003) cvn H.B /DEST pdfmark end + 19099 19976 +a FX(Alt)g FU(k)-15 b(e)-23 b(y)456 b(b)-31 b(ut)456 +b(the)29035 19976 y +SDict begin H.S end + 29035 19976 a 29035 19976 a +SDict begin 18.2 H.A end + 29035 +19976 a 29035 19976 a +SDict begin [ /View [/XYZ H.V] /Dest (6004) cvn H.B /DEST pdfmark end + 29035 19976 a FX(Meta)g FU(k)-15 +b(e)-23 b(y)-101 b(.)457 b(The)38743 19976 y +SDict begin H.S end + 38743 19976 +a 38743 19976 a +SDict begin 18.2 H.A end + 38743 19976 a 38743 19976 a +SDict begin [ /View [/XYZ H.V] /Dest (6005) cvn H.B /DEST pdfmark end + 38743 19976 +a FX(Meta)f FU(k)-15 b(e)-23 b(y)456 b(has)h(all)f(b)-31 +b(ut)-30 21991 y(disappeared)423 b(from)h(computer)f(k)-15 +b(e)-23 b(yboards,)422 b(and)i(in)f(Emacs)g(the)35814 +21991 y +SDict begin H.S end + 35814 21991 a 35814 21991 a +SDict begin 18.2 H.A end + 35814 21991 a 35814 +21991 a +SDict begin [ /View [/XYZ H.V] /Dest (6006) cvn H.B /DEST pdfmark end + 35814 21991 a FX(Alt)g FU(k)-15 b(e)-23 b(y)423 +b(has)g(tak)-15 b(en)423 b(o)-23 b(v)g(er)423 b(its)-30 +24006 y(function.\))-30 25058 y +SDict begin H.S end + -30 25058 a -30 25058 +a +SDict begin 18.2 H.A end + -30 25058 a -30 25058 a +SDict begin [ /View [/XYZ H.V] /Dest (6007) cvn H.B /DEST pdfmark end + -30 25058 a 1737 x FU(Man)-23 +b(y)553 b(Emacs)g(commands)g(consist)g(of)g(sequences)h(of)f(k)-15 +b(e)-23 b(ys)553 b(and)g(k)-15 b(e)-23 b(y)553 b(combinations.)g(F)-23 +b(or)-30 28810 y(e)g(xample,)5977 28810 y +SDict begin H.S end + 5977 28810 +a 5977 28810 a +SDict begin 18.2 H.A end + 5977 28810 a 5977 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6008) cvn H.B /DEST pdfmark end + 5977 28810 a +5977 28810 a +SDict begin H.S end + 5977 28810 a 5977 28810 a +SDict begin 18.2 H.A end + 5977 28810 a 5977 +28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6009) cvn H.B /DEST pdfmark end + 5977 28810 a FX(C)p FU(-)7612 28810 y +SDict begin H.S end + 7612 28810 +a 7612 28810 a +SDict begin 18.2 H.A end + 7612 28810 a 7612 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6010) cvn H.B /DEST pdfmark end + 7612 28810 a +FX(x)8779 28810 y +SDict begin H.S end + 8779 28810 a 8779 28810 a +SDict begin 18.2 H.A end + 8779 28810 +a 8779 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6011) cvn H.B /DEST pdfmark end + 8779 28810 a 8779 28810 a +SDict begin H.S end + 8779 28810 a +8779 28810 a +SDict begin 18.2 H.A end + 8779 28810 a 8779 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6012) cvn H.B /DEST pdfmark end + 8779 28810 a FX(C)p +FU(-)10414 28810 y +SDict begin H.S end + 10414 28810 a 10414 28810 a +SDict begin 18.2 H.A end + 10414 +28810 a 10414 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6013) cvn H.B /DEST pdfmark end + 10414 28810 a FX(c)392 b FU(\(that)g(is)16152 +28810 y +SDict begin H.S end + 16152 28810 a 16152 28810 a +SDict begin 18.2 H.A end + 16152 28810 a 16152 +28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6014) cvn H.B /DEST pdfmark end + 16152 28810 a 16152 28810 a +SDict begin H.S end + 16152 28810 a 16152 +28810 a +SDict begin 18.2 H.A end + 16152 28810 a 16152 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6015) cvn H.B /DEST pdfmark end + 16152 28810 a FX(Contr)-28 +b(ol)p FU(-)21806 28810 y +SDict begin H.S end + 21806 28810 a 21806 28810 a +SDict begin 18.2 H.A end + +21806 28810 a 21806 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6016) cvn H.B /DEST pdfmark end + 21806 28810 a FX(x)392 b +FU(follo)-39 b(wed)391 b(by)30777 28810 y +SDict begin H.S end + 30777 28810 +a 30777 28810 a +SDict begin 18.2 H.A end + 30777 28810 a 30777 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6017) cvn H.B /DEST pdfmark end + 30777 28810 +a 30777 28810 a +SDict begin H.S end + 30777 28810 a 30777 28810 a +SDict begin 18.2 H.A end + 30777 28810 +a 30777 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6018) cvn H.B /DEST pdfmark end + 30777 28810 a FX(Contr)-28 b(ol)p FU(-)36431 +28810 y +SDict begin H.S end + 36431 28810 a 36431 28810 a +SDict begin 18.2 H.A end + 36431 28810 a 36431 +28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6019) cvn H.B /DEST pdfmark end + 36431 28810 a FX(c)392 b FU(\))g(quits)f(Emacs,)46736 +28810 y +SDict begin H.S end + 46736 28810 a 46736 28810 a +SDict begin 18.2 H.A end + 46736 28810 a 46736 +28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6020) cvn H.B /DEST pdfmark end + 46736 28810 a 46736 28810 a +SDict begin H.S end + 46736 28810 a 46736 +28810 a +SDict begin 18.2 H.A end + 46736 28810 a 46736 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6021) cvn H.B /DEST pdfmark end + 46736 28810 a FX(C)p +FU(-)48371 28810 y +SDict begin H.S end + 48371 28810 a 48371 28810 a +SDict begin 18.2 H.A end + 48371 +28810 a 48371 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6022) cvn H.B /DEST pdfmark end + 48371 28810 a FX(x)49538 28810 +y +SDict begin H.S end + 49538 28810 a 49538 28810 a +SDict begin 18.2 H.A end + 49538 28810 a 49538 28810 +a +SDict begin [ /View [/XYZ H.V] /Dest (6023) cvn H.B /DEST pdfmark end + 49538 28810 a 49538 28810 a +SDict begin H.S end + 49538 28810 a 49538 28810 +a +SDict begin 18.2 H.A end + 49538 28810 a 49538 28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6024) cvn H.B /DEST pdfmark end + 49538 28810 a FX(C)p FU(-)51173 +28810 y +SDict begin H.S end + 51173 28810 a 51173 28810 a +SDict begin 18.2 H.A end + 51173 28810 a 51173 +28810 a +SDict begin [ /View [/XYZ H.V] /Dest (6025) cvn H.B /DEST pdfmark end + 51173 28810 a FX(s)-30 30825 y FU(sa)-31 b(v)-23 +b(es)559 b(the)h(current)g(\002le.)g(K)-39 b(eep)560 +b(in)f(mind)h(that)26350 30825 y +SDict begin H.S end + 26350 30825 a 26350 +30825 a +SDict begin 18.2 H.A end + 26350 30825 a 26350 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6026) cvn H.B /DEST pdfmark end + 26350 30825 a 26350 +30825 a +SDict begin H.S end + 26350 30825 a 26350 30825 a +SDict begin 18.2 H.A end + 26350 30825 a 26350 +30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6027) cvn H.B /DEST pdfmark end + 26350 30825 a FX(C)p FU(-)27985 30825 y +SDict begin H.S end + 27985 +30825 a 27985 30825 a +SDict begin 18.2 H.A end + 27985 30825 a 27985 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6028) cvn H.B /DEST pdfmark end + 27985 +30825 a FX(x)29320 30825 y +SDict begin H.S end + 29320 30825 a 29320 30825 +a +SDict begin 18.2 H.A end + 29320 30825 a 29320 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6029) cvn H.B /DEST pdfmark end + 29320 30825 a 29320 30825 +a +SDict begin H.S end + 29320 30825 a 29320 30825 a +SDict begin 18.2 H.A end + 29320 30825 a 29320 30825 +a +SDict begin [ /View [/XYZ H.V] /Dest (6030) cvn H.B /DEST pdfmark end + 29320 30825 a FX(C)p FU(-)30955 30825 y +SDict begin H.S end + 30955 30825 +a 30955 30825 a +SDict begin 18.2 H.A end + 30955 30825 a 30955 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6031) cvn H.B /DEST pdfmark end + 30955 30825 +a FX(b)f FU(is)33970 30825 y +SDict begin H.S end + 33970 30825 a 33970 30825 +a +SDict begin 18.2 H.A end + 33970 30825 a 33970 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6032) cvn H.B /DEST pdfmark end + 33970 30825 a FR(not)587 +b FU(the)560 b(same)f(as)44587 30825 y +SDict begin H.S end + 44587 30825 a +44587 30825 a +SDict begin 18.2 H.A end + 44587 30825 a 44587 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6033) cvn H.B /DEST pdfmark end + 44587 30825 +a 44587 30825 a +SDict begin H.S end + 44587 30825 a 44587 30825 a +SDict begin 18.2 H.A end + 44587 30825 +a 44587 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6034) cvn H.B /DEST pdfmark end + 44587 30825 a FX(C)p FU(-)46222 30825 +y +SDict begin H.S end + 46222 30825 a 46222 30825 a +SDict begin 18.2 H.A end + 46222 30825 a 46222 30825 +a +SDict begin [ /View [/XYZ H.V] /Dest (6035) cvn H.B /DEST pdfmark end + 46222 30825 a FX(x)47557 30825 y +SDict begin H.S end + 47557 30825 a 47557 +30825 a +SDict begin 18.2 H.A end + 47557 30825 a 47557 30825 a +SDict begin [ /View [/XYZ H.V] /Dest (6036) cvn H.B /DEST pdfmark end + 47557 30825 a FX(b)p +FU(.)h(The)-30 32839 y(former)437 b(means)9020 32839 +y +SDict begin H.S end + 9020 32839 a 9020 32839 a +SDict begin 18.2 H.A end + 9020 32839 a 9020 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (6037) cvn H.B /DEST pdfmark end + +9020 32839 a 9020 32839 a +SDict begin H.S end + 9020 32839 a 9020 32839 a +SDict begin 18.2 H.A end + 9020 +32839 a 9020 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (6038) cvn H.B /DEST pdfmark end + 9020 32839 a FX(Contr)-28 b(ol)p +FU(-)14674 32839 y +SDict begin H.S end + 14674 32839 a 14674 32839 a +SDict begin 18.2 H.A end + 14674 +32839 a 14674 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (6039) cvn H.B /DEST pdfmark end + 14674 32839 a FX(x)436 b FU(follo)-39 +b(wed)437 b(by)23779 32839 y +SDict begin H.S end + 23779 32839 a 23779 32839 +a +SDict begin 18.2 H.A end + 23779 32839 a 23779 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (6040) cvn H.B /DEST pdfmark end + 23779 32839 a 23779 32839 +a +SDict begin H.S end + 23779 32839 a 23779 32839 a +SDict begin 18.2 H.A end + 23779 32839 a 23779 32839 +a +SDict begin [ /View [/XYZ H.V] /Dest (6041) cvn H.B /DEST pdfmark end + 23779 32839 a FX(Contr)-28 b(ol)p FU(-)29433 32839 +y +SDict begin H.S end + 29433 32839 a 29433 32839 a +SDict begin 18.2 H.A end + 29433 32839 a 29433 32839 +a +SDict begin [ /View [/XYZ H.V] /Dest (6042) cvn H.B /DEST pdfmark end + 29433 32839 a FX(b)p FU(,)437 b(while)f(the)h(latter)f(means)45348 +32839 y +SDict begin H.S end + 45348 32839 a 45348 32839 a +SDict begin 18.2 H.A end + 45348 32839 a 45348 +32839 a +SDict begin [ /View [/XYZ H.V] /Dest (6043) cvn H.B /DEST pdfmark end + 45348 32839 a 45348 32839 a +SDict begin H.S end + 45348 32839 a 45348 +32839 a +SDict begin 18.2 H.A end + 45348 32839 a 45348 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (6044) cvn H.B /DEST pdfmark end + 45348 32839 a FX(Contr)-28 +b(ol)p FU(-)51002 32839 y +SDict begin H.S end + 51002 32839 a 51002 32839 a +SDict begin 18.2 H.A end + +51002 32839 a 51002 32839 a +SDict begin [ /View [/XYZ H.V] /Dest (6045) cvn H.B /DEST pdfmark end + 51002 32839 a FX(x)-30 34854 +y FU(follo)-39 b(wed)387 b(by)g(just)g(')10908 34854 +y +SDict begin H.S end + 10908 34854 a 10908 34854 a +SDict begin 18.2 H.A end + 10908 34854 a 10908 34854 +a +SDict begin [ /View [/XYZ H.V] /Dest (6046) cvn H.B /DEST pdfmark end + 10908 34854 a FX(b)p FU('.)-30 37514 y +SDict begin H.S end + -30 37514 a +-30 37514 a +SDict begin 18.2 H.A end + -30 37514 a -30 37514 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS-BUFFERS) cvn H.B /DEST +pdfmark end + -30 37514 a 5789 +x FL(17.2)620 b(Buff)-22 b(er)-33 b(s)-30 43331 y +SDict begin H.S end + -30 +43331 a -30 43331 a +SDict begin 18.2 H.A end + -30 43331 a -30 43331 a +SDict begin [ /View [/XYZ H.V] /Dest (6049) cvn H.B /DEST pdfmark end + -30 43331 +a -30 44447 a +SDict begin H.S end + -30 44447 a -30 44447 a +SDict begin 18.2 H.A end + -30 44447 a -30 +44447 a +SDict begin [ /View [/XYZ H.V] /Dest (6052) cvn H.B /DEST pdfmark end + -30 44447 a 1987 x FU(In)504 b(Emacs,)g(the)f(concept)h(of) +16303 46434 y +SDict begin H.S end + 16303 46434 a 16303 46434 a +SDict begin 18.2 H.A end + 16303 46434 +a 16303 46434 a +SDict begin [ /View [/XYZ H.V] /Dest (6053) cvn H.B /DEST pdfmark end + 16303 46434 a FU(\223b)-31 b(uf)-39 b(fers\224)504 +b(is)g(essential.)f(Ev)-23 b(ery)503 b(\002le)h(that)f(you)g(open)h(is) +f(loaded)-30 48448 y(into)524 b(its)g(o)-39 b(wn)525 +b(b)-31 b(uf)-39 b(fer)-85 b(.)525 b(Furthermore,)f(Emacs)g(has)g(se) +-39 b(v)-23 b(eral)525 b(special)f(b)-31 b(uf)-39 b(fers,)525 +b(which)f(do)g(not)-30 50463 y(contain)373 b(a)h(\002le)g(b)-31 +b(ut)373 b(are)h(used)g(for)g(other)f(things.)h(Such)f(special)h(b)-31 +b(uf)-39 b(fers)374 b(usually)f(ha)-31 b(v)-23 b(e)373 +b(a)h(name)-30 52478 y(that)342 b(starts)f(and)h(ends)g(with)f(an)h +(asterisk.)g(F)-23 b(or)341 b(e)-23 b(xample,)342 b(the)g(b)-31 +b(uf)-39 b(fer)342 b(that)g(Emacs)f(sho)-39 b(ws)342 +b(when)-30 54492 y(it)490 b(is)f(\002rst)h(started,)g(is)g(the)f +(so-called)h(*scratch*)g(b)-31 b(uf)-39 b(fer)-85 b(.)490 +b(In)g(the)g(*scratch*)f(b)-31 b(uf)-39 b(fer)-62 b(,)491 +b(you)f(can)-30 56507 y(type)431 b(te)-23 b(xt)431 b(in)g(the)g(normal) +f(w)-15 b(ay)-101 b(,)432 b(b)-31 b(ut)430 b(te)-23 b(xt)431 +b(that)g(is)g(typed)g(there)g(is)g(not)g(sa)-31 b(v)-23 +b(ed)430 b(when)h(Emacs)g(is)-30 58522 y(closed.)-30 +59312 y +SDict begin H.S end + -30 59312 a -30 59312 a +SDict begin 18.2 H.A end + -30 59312 a -30 59312 +a +SDict begin [ /View [/XYZ H.V] /Dest (6054) cvn H.B /DEST pdfmark end + -30 59312 a 1999 x FU(There)378 b(is)g(one)g(other)g(special)g(b)-31 +b(uf)-39 b(fer)378 b(you)g(need)g(to)g(kno)-39 b(w)378 +b(about,)g(and)h(that)e(is)h(the)g(minib)-31 b(uf)-39 +b(fer)-85 b(.)-30 63326 y(This)434 b(b)-31 b(uf)-39 b(fer)434 +b(consists)f(of)h(only)g(one)g(line,)g(and)g(is)g(al)-15 +b(w)g(ays)433 b(on)h(the)g(screen:)g(it)g(is)g(the)f(v)-23 +b(ery)434 b(last)-30 65341 y(line)335 b(of)g(the)h(Emacs)f(windo)-39 +b(w)-101 b(,)335 b(belo)-39 b(w)335 b(the)g(status)g(bar)h(for)f(the)g +(current)g(b)-31 b(uf)-39 b(fer)-85 b(.)336 b(The)f(minib)-31 +b(uf)-39 b(fer)-30 67355 y(is)519 b(where)h(Emacs)f(sho)-39 +b(ws)519 b(messages)g(for)h(the)f(user)-62 b(,)520 b(and)f(it)g(is)h +(also)f(the)g(place)h(where)f(com-)p Black 49394 73792 +a FR(207)p Black eop end +%%Page: 208 230 +TeXDict begin 208 229 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.208) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(17)g(Emacs)p Black +-30 3611 a FU(mands)340 b(that)h(require)f(some)h(user)f(input)g(are)h +(e)-23 b(x)g(ecuted.)341 b(F)-23 b(or)340 b(e)-23 b(xample,)340 +b(when)h(you)f(open)h(a)g(\002le,)-30 5626 y(Emacs)387 +b(will)g(ask)g(for)h(its)e(name)i(in)f(the)g(minib)-31 +b(uf)-39 b(fer)-85 b(.)-30 6416 y +SDict begin H.S end + -30 6416 a -30 6416 +a +SDict begin 18.2 H.A end + -30 6416 a -30 6416 a +SDict begin [ /View [/XYZ H.V] /Dest (6055) cvn H.B /DEST pdfmark end + -30 6416 a 1999 x FU(Switching)491 +b(from)i(one)f(b)-31 b(uf)-39 b(fer)493 b(to)g(another)f(can)h(be)f +(done)h(with)f(the)g(command)44376 8415 y +SDict begin H.S end + 44376 8415 +a 44376 8415 a +SDict begin 18.2 H.A end + 44376 8415 a 44376 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (6056) cvn H.B /DEST pdfmark end + 44376 8415 a +44376 8415 a +SDict begin H.S end + 44376 8415 a 44376 8415 a +SDict begin 18.2 H.A end + 44376 8415 a 44376 +8415 a +SDict begin [ /View [/XYZ H.V] /Dest (6057) cvn H.B /DEST pdfmark end + 44376 8415 a FX(C)p FU(-)46011 8415 y +SDict begin H.S end + 46011 8415 +a 46011 8415 a +SDict begin 18.2 H.A end + 46011 8415 a 46011 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (6058) cvn H.B /DEST pdfmark end + 46011 8415 a +FX(x)47279 8415 y +SDict begin H.S end + 47279 8415 a 47279 8415 a +SDict begin 18.2 H.A end + 47279 8415 +a 47279 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (6059) cvn H.B /DEST pdfmark end + 47279 8415 a FX(b)p FU(.)g(This)-30 10430 +y(will)387 b(prompt)f(you)h(for)g(the)g(name)g(of)g(a)h(b)-31 +b(uf)-39 b(fer)387 b(\(a)h(b)-31 b(uf)-39 b(fer')-85 +b(s)387 b(name)g(is)g(usually)f(the)h(name)g(of)g(the)-30 +12445 y(\002le)411 b(you)h(are)g(editing)f(in)g(it\),)h(and)f(it)h(gi) +-39 b(v)-23 b(es)411 b(a)h(def)-15 b(ault)411 b(choice,)h(which)f(is)g +(normally)g(the)h(b)-31 b(uf)-39 b(fer)-30 14459 y(that)529 +b(you)h(were)g(in)f(before)h(you)f(switched)g(to)h(or)g(created)f(the)h +(current)g(b)-31 b(uf)-39 b(fer)-85 b(.)530 b(Just)f(hitting)-30 +16474 y +SDict begin H.S end + -30 16474 a -30 16474 a +SDict begin 18.2 H.A end + -30 16474 a -30 16474 +a +SDict begin [ /View [/XYZ H.V] /Dest (6060) cvn H.B /DEST pdfmark end + -30 16474 a FR(Enter)423 b FU(will)386 b(switch)h(to)g(that)g(def)-15 +b(ault)387 b(b)-31 b(uf)-39 b(fer)-85 b(.)-30 17267 y +SDict begin H.S end + +-30 17267 a -30 17267 a +SDict begin 18.2 H.A end + -30 17267 a -30 17267 a +SDict begin [ /View [/XYZ H.V] /Dest (6061) cvn H.B /DEST pdfmark end + -30 17267 +a 1997 x FU(If)425 b(you)f(w)-15 b(ant)424 b(to)g(switch)g(to)g +(another)g(b)-31 b(uf)-39 b(fer)425 b(than)f(the)g(def)-15 +b(ault)424 b(of)-39 b(fered)425 b(by)f(Emacs,)g(just)g(type)-30 +21278 y(its)519 b(name.)g(Note)g(that)g(you)g(can)g(use)g(so-called) +26806 21278 y +SDict begin H.S end + 26806 21278 a 26806 21278 a +SDict begin 18.2 H.A end + 26806 21278 +a 26806 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6062) cvn H.B /DEST pdfmark end + 26806 21278 a FX(T)-143 b(ab)p FU(-completion)518 +b(here:)h(type)g(the)g(\002rst)g(fe)-39 b(w)-30 23293 +y(letters)437 b(of)h(the)g(b)-31 b(uf)-39 b(fer')-85 +b(s)437 b(name)h(and)f(hit)21987 23293 y +SDict begin H.S end + 21987 23293 +a 21987 23293 a +SDict begin 18.2 H.A end + 21987 23293 a 21987 23293 a +SDict begin [ /View [/XYZ H.V] /Dest (6063) cvn H.B /DEST pdfmark end + 21987 23293 +a FX(T)-143 b(ab)p FU(;)438 b(Emacs)f(will)g(then)g(complete)g(the)h +(name)f(of)h(the)-30 25308 y(b)-31 b(uf)-39 b(fer)-85 +b(.)4376 25308 y +SDict begin H.S end + 4376 25308 a 4376 25308 a +SDict begin 18.2 H.A end + 4376 25308 +a 4376 25308 a +SDict begin [ /View [/XYZ H.V] /Dest (6064) cvn H.B /DEST pdfmark end + 4376 25308 a FX(T)-143 b(ab)387 b FU(completion)f(w)-15 +b(orks)387 b(e)-39 b(v)-23 b(erywhere)387 b(in)g(Emacs)g(where)h(it)f +(mak)-15 b(es)386 b(sense.)-30 26418 y +SDict begin H.S end + -30 26418 a -30 +26418 a +SDict begin 18.2 H.A end + -30 26418 a -30 26418 a +SDict begin [ /View [/XYZ H.V] /Dest (6065) cvn H.B /DEST pdfmark end + -30 26418 a 1679 x FU(Y)-170 +b(ou)493 b(can)h(get)g(a)g(list)f(of)h(open)g(b)-31 b(uf)-39 +b(fers)494 b(by)f(hitting)28256 28097 y +SDict begin H.S end + 28256 28097 a +28256 28097 a +SDict begin 18.2 H.A end + 28256 28097 a 28256 28097 a +SDict begin [ /View [/XYZ H.V] /Dest (6066) cvn H.B /DEST pdfmark end + 28256 28097 +a 28256 28097 a +SDict begin H.S end + 28256 28097 a 28256 28097 a +SDict begin 18.2 H.A end + 28256 28097 +a 28256 28097 a +SDict begin [ /View [/XYZ H.V] /Dest (6067) cvn H.B /DEST pdfmark end + 28256 28097 a FX(C)p FU(-)29891 28097 +y +SDict begin H.S end + 29891 28097 a 29891 28097 a +SDict begin 18.2 H.A end + 29891 28097 a 29891 28097 +a +SDict begin [ /View [/XYZ H.V] /Dest (6068) cvn H.B /DEST pdfmark end + 29891 28097 a FX(x)31160 28097 y +SDict begin H.S end + 31160 28097 a 31160 +28097 a +SDict begin 18.2 H.A end + 31160 28097 a 31160 28097 a +SDict begin [ /View [/XYZ H.V] /Dest (6069) cvn H.B /DEST pdfmark end + 31160 28097 a 31160 +28097 a +SDict begin H.S end + 31160 28097 a 31160 28097 a +SDict begin 18.2 H.A end + 31160 28097 a 31160 +28097 a +SDict begin [ /View [/XYZ H.V] /Dest (6070) cvn H.B /DEST pdfmark end + 31160 28097 a FX(C)p FU(-)32795 28097 y +SDict begin H.S end + 32795 +28097 a 32795 28097 a +SDict begin 18.2 H.A end + 32795 28097 a 32795 28097 a +SDict begin [ /View [/XYZ H.V] /Dest (6071) cvn H.B /DEST pdfmark end + 32795 +28097 a FX(b)p FU(.)h(This)f(command)g(will)h(usually)-30 +30112 y(split)343 b(the)h(screen)h(in)f(tw)-15 b(o,)343 +b(displaying)g(the)h(b)-31 b(uf)-39 b(fer)345 b(you)f(were)g(w)-15 +b(orking)343 b(in)h(in)g(the)g(top)g(half,)g(and)-30 +32126 y(a)365 b(ne)-39 b(w)365 b(b)-31 b(uf)-39 b(fer)366 +b(called)f(*Buf)-39 b(fer)364 b(List*)h(in)g(the)f(bottom)g(half.)i +(This)e(b)-31 b(uf)-39 b(fer)365 b(contains)g(a)g(list)f(of)h(all)-30 +34141 y(the)378 b(b)-31 b(uf)-39 b(fers,)379 b(their)e(sizes)h(and)g +(modes,)g(and)g(the)g(\002les,)g(if)g(an)-23 b(y)-101 +b(,)378 b(that)g(those)g(b)-31 b(uf)-39 b(fers)378 b(are)g(visiting)-30 +36156 y(\(as)388 b(it)f(is)g(called)g(in)g(Emacs\).)g(Y)-170 +b(ou)387 b(can)h(get)f(rid)g(of)g(this)g(split)g(screen)g(by)g(typing) +43747 36156 y +SDict begin H.S end + 43747 36156 a 43747 36156 a +SDict begin 18.2 H.A end + 43747 36156 +a 43747 36156 a +SDict begin [ /View [/XYZ H.V] /Dest (6072) cvn H.B /DEST pdfmark end + 43747 36156 a 43747 36156 a +SDict begin H.S end + 43747 36156 +a 43747 36156 a +SDict begin 18.2 H.A end + 43747 36156 a 43747 36156 a +SDict begin [ /View [/XYZ H.V] /Dest (6073) cvn H.B /DEST pdfmark end + 43747 36156 +a FX(C)p FU(-)45382 36156 y +SDict begin H.S end + 45382 36156 a 45382 36156 +a +SDict begin 18.2 H.A end + 45382 36156 a 45382 36156 a +SDict begin [ /View [/XYZ H.V] /Dest (6074) cvn H.B /DEST pdfmark end + 45382 36156 a FX(x)46544 +36156 y +SDict begin H.S end + 46544 36156 a 46544 36156 a +SDict begin 18.2 H.A end + 46544 36156 a 46544 +36156 a +SDict begin [ /View [/XYZ H.V] /Dest (6075) cvn H.B /DEST pdfmark end + 46544 36156 a FX(1)p FU(.)-30 36491 y +SDict begin H.S end + -30 36491 +a -30 36491 a +SDict begin 16.9 H.A end + -30 36491 a -30 36491 a +SDict begin [ /View [/XYZ H.V] /Dest (6076) cvn H.B /DEST pdfmark end + -30 36491 a -30 +38816 a +SDict begin H.S end + -30 38816 a -30 38816 a +SDict begin 16.9 H.A end + -30 38816 a -30 38816 +a +SDict begin [ /View [/XYZ H.V] /Dest (6077) cvn H.B /DEST pdfmark end + -30 38816 a 3070 40351 a Fu(Note:)506 b Ft(Under)g(X,)f(the)h(list)g +(of)f(b)-29 b(uff)-43 b(ers)506 b(is)f(also)h(a)-29 b(v)-36 +b(ailab)-29 b(le)507 b(in)f(the)g(Buff)-43 b(er)506 b(men)-14 +b(u)505 b(in)h(the)3070 42222 y(men)-14 b(u)399 b(bar)-72 +b(.)-30 46561 y +SDict begin H.S end + -30 46561 a -30 46561 a +SDict begin 18.2 H.A end + -30 46561 a -30 +46561 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS-MODES) cvn H.B /DEST pdfmark +end + -30 46561 a 6125 x FL(17.3)620 b(Modes)-30 52714 +y +SDict begin H.S end + -30 52714 a -30 52714 a +SDict begin 18.2 H.A end + -30 52714 a -30 52714 a +SDict begin [ /View [/XYZ H.V] /Dest (6080) cvn H.B /DEST pdfmark end + -30 +52714 a -30 53829 a +SDict begin H.S end + -30 53829 a -30 53829 a +SDict begin 18.2 H.A end + -30 53829 +a -30 53829 a +SDict begin [ /View [/XYZ H.V] /Dest (6083) cvn H.B /DEST pdfmark end + -30 53829 a 1987 x FU(Ev)-23 b(ery)370 +b(b)-31 b(uf)-39 b(fer)370 b(in)f(Emacs)h(has)g(an)f(associated)h +(mode.)g(This)f(mode)g(is)h(v)-23 b(ery)370 b(dif)-39 +b(ferent)369 b(from)h(the)-30 57831 y(idea)435 b(of)g(modes)f(in)10835 +57831 y +SDict begin H.S end + 10835 57831 a 10835 57831 a +SDict begin 18.2 H.A end + 10835 57831 a 10835 +57831 a +SDict begin [ /View [/XYZ H.V] /Dest (6084) cvn H.B /DEST pdfmark end + 10835 57831 a FP(vi)p FU(:)g(a)h(mode)f(tells)h(you)f(what)h +(kind)f(of)h(b)-31 b(uf)-39 b(fer)435 b(you)g(are)g(in.)g(F)-23 +b(or)434 b(e)-23 b(xample,)-30 59846 y(there)392 b(is)f(te)-23 +b(xt-mode)391 b(for)g(normal)g(te)-23 b(xt)391 b(\002les,)h(b)-31 +b(ut)391 b(there)h(are)f(also)h(modes)f(such)g(as)h(c-mode)f(for)-30 +61860 y(editing)441 b(C)f(programs,)h(sh-mode)g(for)g(editing)g(shell)f +(scripts,)h(late)-23 b(x-mode)441 b(for)g(editing)f(L)48664 +61587 y Fb(A)49215 61860 y FU(T)49904 62209 y(E)50657 +61860 y(X)-30 63875 y(\002les,)380 b(mail-mode)g(for)g(editing)g(email) +g(and)g(ne)-39 b(ws)380 b(messages,)h(etc.)f(A)h(mode)f(pro)-23 +b(vides)379 b(special)-30 65890 y(customizations)504 +b(and)g(functionality)g(that)h(is)g(useful)f(for)h(the)g(kind)g(of)g +(\002le)f(you)h(are)g(editing.)-30 67904 y(It)430 b(is)g(e)-39 +b(v)-23 b(en)430 b(possible)g(for)g(a)g(mode)g(to)g(rede\002ne)g(k)-15 +b(e)-23 b(ys)429 b(and)h(k)-15 b(e)-23 b(y)430 b(commands.)g(F)-23 +b(or)429 b(e)-23 b(xample,)430 b(in)p Black -30 73792 +a FR(208)p Black eop end +%%Page: 209 231 +TeXDict begin 209 230 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.209) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6111) cvn H.B /DEST pdfmark end + -30 -2687 a 40240 -1636 a FR(Chapter)386 +b(17)h(Emacs)p Black -30 3611 a FU(T)-108 b(e)-23 b(xt)349 +b(mode,)i(the)f(T)-124 b(ab)350 b(k)-15 b(e)-23 b(y)350 +b(simply)f(jumps)h(to)g(the)g(ne)-23 b(xt)350 b(tab)g(stop,)g(b)-31 +b(ut)350 b(in)g(man)-23 b(y)350 b(programming)-30 5626 +y(language)445 b(modes,)g(the)13228 5626 y +SDict begin H.S end + 13228 5626 +a 13228 5626 a +SDict begin 18.2 H.A end + 13228 5626 a 13228 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (6086) cvn H.B /DEST pdfmark end + 13228 5626 a +FX(T)-143 b(ab)445 b FU(k)-15 b(e)-23 b(y)444 b(indents)h(the)g +(current)g(line)g(according)g(to)g(the)g(depth)g(of)g(the)-30 +7640 y(block)387 b(that)g(line)g(is)g(in.)-30 8431 y +SDict begin H.S end + +-30 8431 a -30 8431 a +SDict begin 18.2 H.A end + -30 8431 a -30 8431 a +SDict begin [ /View [/XYZ H.V] /Dest (6087) cvn H.B /DEST pdfmark end + -30 8431 +a 1999 x FU(The)495 b(modes)f(mentioned)g(abo)-23 b(v)g(e)495 +b(are)g(called)f(major)h(modes.)g(Each)g(b)-31 b(uf)-39 +b(fer)495 b(has)g(e)-23 b(xactly)494 b(one)-30 12445 +y(major)668 b(mode.)g(Additionally)-101 b(,)668 b(a)g(b)-31 +b(uf)-39 b(fer)669 b(can)g(ha)-31 b(v)-23 b(e)668 b(one)g(or)g(more)g +(minor)g(modes.)g(A)g(mi-)-30 14459 y(nor)485 b(mode)f(pro)-23 +b(vides)484 b(additional)g(features)h(that)f(may)h(be)g(useful)f(for)h +(certain)g(editing)f(tasks.)-30 16474 y(F)-23 b(or)480 +b(e)-23 b(xample,)480 b(if)g(you)g(hit)g(the)17398 16474 +y +SDict begin H.S end + 17398 16474 a 17398 16474 a +SDict begin 18.2 H.A end + 17398 16474 a 17398 16474 +a +SDict begin [ /View [/XYZ H.V] /Dest (6088) cvn H.B /DEST pdfmark end + 17398 16474 a FX(INSER)-62 b(T)479 b FU(k)-15 b(e)-23 +b(y)-101 b(,)480 b(you)g(in)-62 b(v)-31 b(ok)-15 b(e)480 +b(o)-23 b(v)g(erwrite-mode,)479 b(which)h(does)-30 18489 +y(what)452 b(you')-77 b(d)450 b(e)-23 b(xpect.)452 b(There)g(is)f(also) +g(an)h(auto-\002ll-mode,)f(which)g(is)g(handy)h(in)f(combination)-30 +20503 y(with)432 b(te)-23 b(xt-mode)432 b(or)h(late)-23 +b(x-mode:)431 b(it)h(causes)h(each)g(line)f(that)g(you)h(type)f(to)g +(be)h(automatically)-30 22518 y(wrapped)603 b(once)h(the)f(line)g +(reaches)h(a)f(certain)h(number)f(of)g(characters.)h(W)-62 +b(ithout)603 b(auto-\002ll-)-30 24533 y(mode,)562 b(you)g(ha)-31 +b(v)-23 b(e)561 b(to)h(type)15681 24533 y +SDict begin H.S end + 15681 24533 +a 15681 24533 a +SDict begin 18.2 H.A end + 15681 24533 a 15681 24533 a +SDict begin [ /View [/XYZ H.V] /Dest (6089) cvn H.B /DEST pdfmark end + 15681 24533 +a 15681 24533 a +SDict begin H.S end + 15681 24533 a 15681 24533 a +SDict begin 18.2 H.A end + 15681 24533 +a 15681 24533 a +SDict begin [ /View [/XYZ H.V] /Dest (6090) cvn H.B /DEST pdfmark end + 15681 24533 a FX(M)p FU(-)17660 24533 +y +SDict begin H.S end + 17660 24533 a 17660 24533 a +SDict begin 18.2 H.A end + 17660 24533 a 17660 24533 +a +SDict begin [ /View [/XYZ H.V] /Dest (6091) cvn H.B /DEST pdfmark end + 17660 24533 a FX(q)g FU(to)g(\002ll)f(out)g(a)h(paragraph.)h(\(Which) +e(you)h(can)g(also)f(use)h(to)-30 26547 y(reformat)512 +b(a)h(paragraph)f(after)h(you')-77 b(v)-23 b(e)511 b(edited)h(some)g +(te)-23 b(xt)512 b(in)g(it)g(and)g(it)g(is)g(no)g(longer)g(nicely)-30 +28562 y(\002lled)387 b(out.\))-30 28839 y +SDict begin H.S end + -30 28839 a +-30 28839 a +SDict begin 18.2 H.A end + -30 28839 a -30 28839 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS-OPENING-FILES) cvn H.B +/DEST pdfmark end + -30 28839 a 5085 +x FG(Opening)518 b(\002les)-30 35268 y +SDict begin H.S end + -30 35268 a -30 +35268 a +SDict begin 18.2 H.A end + -30 35268 a -30 35268 a +SDict begin [ /View [/XYZ H.V] /Dest (6094) cvn H.B /DEST pdfmark end + -30 35268 a 1601 x FU(T)-124 +b(o)387 b(open)g(a)h(\002le)f(in)g(Emacs,)h(type)-30 +38754 y +SDict begin H.S end + -30 38754 a -30 38754 a +SDict begin 14.56 H.A end + -30 38754 a -30 38754 +a +SDict begin [ /View [/XYZ H.V] /Dest (6095) cvn H.B /DEST pdfmark end + -30 38754 a -30 38754 a +SDict begin H.S end + -30 38754 a -30 38754 a +SDict begin 14.56 H.A end + -30 +38754 a -30 38754 a +SDict begin [ /View [/XYZ H.V] /Dest (6096) cvn H.B /DEST pdfmark end + -30 38754 a 1276 x FH(C-x)744 b(C-f)-30 +41605 y +SDict begin H.S end + -30 41605 a -30 41605 a +SDict begin 18.2 H.A end + -30 41605 a -30 41605 +a +SDict begin [ /View [/XYZ H.V] /Dest (6097) cvn H.B /DEST pdfmark end + -30 41605 a 1990 x FU(Emacs)562 b(will)f(ask)h(you)g(for)g(the)g +(name)f(of)h(the)g(\002le,)g(\002lling)f(in)h(some)f(def)-15 +b(ault)561 b(path)h(for)g(you)-30 45609 y(\(which)519 +b(is)f(usually)11342 45609 y +SDict begin H.S end + 11342 45609 a 11342 45609 +a +SDict begin 18.2 H.A end + 11342 45609 a 11342 45609 a +SDict begin [ /View [/XYZ H.V] /Dest (6098) cvn H.B /DEST pdfmark end + 11342 45609 a FQ(~/)f FU(\).)j(After)f +(you)f(type)h(the)g(\002lename)f(\(you)h(can)g(use)41239 +45609 y +SDict begin H.S end + 41239 45609 a 41239 45609 a +SDict begin 18.2 H.A end + 41239 45609 a 41239 +45609 a +SDict begin [ /View [/XYZ H.V] /Dest (6099) cvn H.B /DEST pdfmark end + 41239 45609 a FX(T)-143 b(ab)519 b FU(completion\))-30 +47624 y(and)371 b(hit)4588 47624 y +SDict begin H.S end + 4588 47624 a 4588 +47624 a +SDict begin 18.2 H.A end + 4588 47624 a 4588 47624 a +SDict begin [ /View [/XYZ H.V] /Dest (6100) cvn H.B /DEST pdfmark end + 4588 47624 a FX(ENTER)f +FU(,)i(Emacs)f(will)g(open)g(the)h(\002le)f(in)g(a)h(ne)-39 +b(w)371 b(b)-31 b(uf)-39 b(fer)372 b(and)f(display)g(that)g(b)-31 +b(uf)-39 b(fer)372 b(on)-30 49639 y(the)387 b(screen.)-30 +49654 y +SDict begin H.S end + -30 49654 a -30 49654 a +SDict begin 16.9 H.A end + -30 49654 a -30 49654 +a +SDict begin [ /View [/XYZ H.V] /Dest (6101) cvn H.B /DEST pdfmark end + -30 49654 a -30 51979 a +SDict begin H.S end + -30 51979 a -30 51979 a +SDict begin 16.9 H.A end + -30 +51979 a -30 51979 a +SDict begin [ /View [/XYZ H.V] /Dest (6102) cvn H.B /DEST pdfmark end + -30 51979 a 3070 53834 a Fu(Note:)379 +b Ft(Emacs)e(will)i(automatically)g(create)g(a)f(ne)-29 +b(w)379 b(b)-29 b(uff)-43 b(er)-72 b(,)379 b(it)g(will)h(not)e(load)h +(the)g(\002le)f(into)3070 55705 y(the)400 b(current)g(b)-29 +b(uff)-43 b(er)-72 b(.)-30 60044 y +SDict begin H.S end + -30 60044 a -30 60044 +a +SDict begin 18.2 H.A end + -30 60044 a -30 60044 a +SDict begin [ /View [/XYZ H.V] /Dest (6103) cvn H.B /DEST pdfmark end + -30 60044 a 2015 x FU(In)359 +b(order)g(to)f(create)h(a)g(ne)-39 b(w)359 b(\002le)g(in)f(emacs,)h +(you)g(cannot)f(just)h(go)f(typing)g(right)h(a)-23 b(w)-15 +b(ay)-101 b(.)358 b(Y)-170 b(ou)358 b(\002rst)-30 64073 +y(ha)-31 b(v)-23 b(e)336 b(to)g(create)g(a)g(b)-31 b(uf)-39 +b(fer)336 b(for)g(it,)g(and)g(come)g(up)g(with)f(a)h(\002lename.)g(Y) +-170 b(ou)335 b(do)h(this)f(by)h(typing)49366 64073 y +SDict begin H.S end + +49366 64073 a 49366 64073 a +SDict begin 18.2 H.A end + 49366 64073 a 49366 64073 +a +SDict begin [ /View [/XYZ H.V] /Dest (6104) cvn H.B /DEST pdfmark end + 49366 64073 a 49366 64073 a +SDict begin H.S end + 49366 64073 a 49366 64073 +a +SDict begin 18.2 H.A end + 49366 64073 a 49366 64073 a +SDict begin [ /View [/XYZ H.V] /Dest (6105) cvn H.B /DEST pdfmark end + 49366 64073 a FX(C)p FU(-)51001 +64073 y +SDict begin H.S end + 51001 64073 a 51001 64073 a +SDict begin 18.2 H.A end + 51001 64073 a 51001 +64073 a +SDict begin [ /View [/XYZ H.V] /Dest (6106) cvn H.B /DEST pdfmark end + 51001 64073 a FX(x)-30 66088 y +SDict begin H.S end + -30 66088 a -30 +66088 a +SDict begin 18.2 H.A end + -30 66088 a -30 66088 a +SDict begin [ /View [/XYZ H.V] /Dest (6107) cvn H.B /DEST pdfmark end + -30 66088 a -30 66088 +a +SDict begin H.S end + -30 66088 a -30 66088 a +SDict begin 18.2 H.A end + -30 66088 a -30 66088 a +SDict begin [ /View [/XYZ H.V] /Dest (6108) cvn H.B /DEST pdfmark end + -30 +66088 a FX(C)p FU(-)1605 66088 y +SDict begin H.S end + 1605 66088 a 1605 66088 +a +SDict begin 18.2 H.A end + 1605 66088 a 1605 66088 a +SDict begin [ /View [/XYZ H.V] /Dest (6109) cvn H.B /DEST pdfmark end + 1605 66088 a FX(f)465 b FU(and)g(typing)g +(a)g(\002lename,)g(just)g(as)g(if)g(you)g(were)g(opening)f(an)i(e)-23 +b(xisting)464 b(\002le.)h(Emacs)f(will)p Black 49451 +73792 a FR(209)p Black eop end +%%Page: 210 232 +TeXDict begin 210 231 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.210) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(17)g(Emacs)p Black +-30 3611 a FU(notice)466 b(that)f(the)h(\002le)g(you)f(typed)h(doesn') +-28 b(t)465 b(e)-23 b(xist,)466 b(and)g(will)f(create)i(a)f(ne)-39 +b(w)466 b(b)-31 b(uf)-39 b(fer)466 b(and)g(report)-30 +5626 y +SDict begin H.S end + -30 5626 a -30 5626 a +SDict begin 18.2 H.A end + -30 5626 a -30 5626 a +SDict begin [ /View [/XYZ H.V] /Dest (6110) cvn H.B /DEST pdfmark end + -30 +5626 a FU(\223\(Ne)-39 b(w)388 b(\002le\)\224)f(in)g(the)g(minib)-31 +b(uf)-39 b(fer)-85 b(.)-30 8415 y(When)312 b(you)g(type)f +FX(C)p FU(-)11235 8415 y +SDict begin H.S end + 11235 8415 a 11235 8415 a +SDict begin 18.2 H.A end + 11235 +8415 a 11235 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (6114) cvn H.B /DEST pdfmark end + 11235 8415 a FX(x)12322 8415 y +SDict begin H.S end + 12322 +8415 a 12322 8415 a +SDict begin 18.2 H.A end + 12322 8415 a 12322 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (6115) cvn H.B /DEST pdfmark end + 12322 8415 +a 12322 8415 a +SDict begin H.S end + 12322 8415 a 12322 8415 a +SDict begin 18.2 H.A end + 12322 8415 a +12322 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (6116) cvn H.B /DEST pdfmark end + 12322 8415 a FX(C)p FU(-)13957 8415 y +SDict begin H.S end + 13957 +8415 a 13957 8415 a +SDict begin 18.2 H.A end + 13957 8415 a 13957 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (6117) cvn H.B /DEST pdfmark end + 13957 8415 +a FX(f)i FU(and)e(then)h(enter)g(a)g(directory)g(name)g(instead)f(of)h +(a)g(\002lename,)g(Emacs)-30 10430 y(will)405 b(create)g(a)g(ne)-39 +b(w)406 b(b)-31 b(uf)-39 b(fer)405 b(in)g(which)g(you)g(will)g(\002nd)f +(a)i(list)e(of)h(all)g(the)g(\002les)g(in)g(that)g(directory)-101 +b(.)-30 12445 y(Y)-170 b(ou)319 b(can)h(mo)-23 b(v)g(e)318 +b(the)i(cursor)f(to)h(the)f(\002le)g(that)g(you)h(are)g(looking)e(for)i +(and)f(type)h(,)g(and)f(Emacs)g(will)-30 14459 y(open)379 +b(it.)h(\(There)g(are)g(in)f(f)-15 b(act)379 b(a)h(lot)f(more)h +(actions)f(you)g(can)h(perform)f(here,)h(such)g(as)f(deleting,)-30 +16474 y(renaming)483 b(and)g(mo)-23 b(ving)483 b(\002les,)g(etc.)h +(Emacs)f(is)g(no)-39 b(w)483 b(in)h(dired-mode,)f(which)g(is)g +(basically)g(a)-30 18489 y(simple)387 b(\002le)g(manager)-85 +b(.\))-30 19599 y +SDict begin H.S end + -30 19599 a -30 19599 a +SDict begin 18.2 H.A end + -30 19599 a +-30 19599 a +SDict begin [ /View [/XYZ H.V] /Dest (6118) cvn H.B /DEST pdfmark end + -30 19599 a 1679 x FU(When)367 b(you)g(ha)-31 +b(v)-23 b(e)367 b(typed)13779 21278 y +SDict begin H.S end + 13779 21278 a 13779 +21278 a +SDict begin 18.2 H.A end + 13779 21278 a 13779 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6119) cvn H.B /DEST pdfmark end + 13779 21278 a 13779 +21278 a +SDict begin H.S end + 13779 21278 a 13779 21278 a +SDict begin 18.2 H.A end + 13779 21278 a 13779 +21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6120) cvn H.B /DEST pdfmark end + 13779 21278 a FX(C)p FU(-)15414 21278 y +SDict begin H.S end + 15414 +21278 a 15414 21278 a +SDict begin 18.2 H.A end + 15414 21278 a 15414 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6121) cvn H.B /DEST pdfmark end + 15414 +21278 a FX(x)16556 21278 y +SDict begin H.S end + 16556 21278 a 16556 21278 +a +SDict begin 18.2 H.A end + 16556 21278 a 16556 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6122) cvn H.B /DEST pdfmark end + 16556 21278 a 16556 21278 +a +SDict begin H.S end + 16556 21278 a 16556 21278 a +SDict begin 18.2 H.A end + 16556 21278 a 16556 21278 +a +SDict begin [ /View [/XYZ H.V] /Dest (6123) cvn H.B /DEST pdfmark end + 16556 21278 a FX(C)p FU(-)18191 21278 y +SDict begin H.S end + 18191 21278 +a 18191 21278 a +SDict begin 18.2 H.A end + 18191 21278 a 18191 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6124) cvn H.B /DEST pdfmark end + 18191 21278 +a FX(f)h FU(and)e(suddenly)h(change)g(your)g(mind,)f(you)h(can)g(type) +47793 21278 y +SDict begin H.S end + 47793 21278 a 47793 21278 a +SDict begin 18.2 H.A end + 47793 21278 +a 47793 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6125) cvn H.B /DEST pdfmark end + 47793 21278 a 47793 21278 a +SDict begin H.S end + 47793 21278 +a 47793 21278 a +SDict begin 18.2 H.A end + 47793 21278 a 47793 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6126) cvn H.B /DEST pdfmark end + 47793 21278 +a FX(C)p FU(-)49428 21278 y +SDict begin H.S end + 49428 21278 a 49428 21278 +a +SDict begin 18.2 H.A end + 49428 21278 a 49428 21278 a +SDict begin [ /View [/XYZ H.V] /Dest (6127) cvn H.B /DEST pdfmark end + 49428 21278 a FX(g)g FU(to)-30 +23293 y(cancel)g(the)h(action.)11099 23293 y +SDict begin H.S end + 11099 23293 +a 11099 23293 a +SDict begin 18.2 H.A end + 11099 23293 a 11099 23293 a +SDict begin [ /View [/XYZ H.V] /Dest (6128) cvn H.B /DEST pdfmark end + 11099 23293 +a 11099 23293 a +SDict begin H.S end + 11099 23293 a 11099 23293 a +SDict begin 18.2 H.A end + 11099 23293 +a 11099 23293 a +SDict begin [ /View [/XYZ H.V] /Dest (6129) cvn H.B /DEST pdfmark end + 11099 23293 a FX(C)p FU(-)12734 23293 +y +SDict begin H.S end + 12734 23293 a 12734 23293 a +SDict begin 18.2 H.A end + 12734 23293 a 12734 23293 +a +SDict begin [ /View [/XYZ H.V] /Dest (6130) cvn H.B /DEST pdfmark end + 12734 23293 a FX(g)f FU(w)-15 b(orks)367 b(almost)f(e)-39 +b(v)-23 b(erywhere)368 b(where)f(you)g(w)-15 b(ant)367 +b(to)g(cancel)g(an)g(action)-30 25308 y(or)387 b(command)g(that)g(you') +-77 b(v)-23 b(e)386 b(started)h(b)-31 b(ut)387 b(don')-28 +b(t)387 b(w)-15 b(ant)387 b(to)g(\002nish.)-30 27968 +y +SDict begin H.S end + -30 27968 a -30 27968 a +SDict begin 18.2 H.A end + -30 27968 a -30 27968 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS-BASIC-EDITING) cvn H.B +/DEST pdfmark end + -30 +27968 a 5789 x FL(17.4)620 b(Basic)g(Editing)-30 34253 +y +SDict begin H.S end + -30 34253 a -30 34253 a +SDict begin 18.2 H.A end + -30 34253 a -30 34253 a +SDict begin [ /View [/XYZ H.V] /Dest (6133) cvn H.B /DEST pdfmark end + -30 +34253 a -30 35369 a +SDict begin H.S end + -30 35369 a -30 35369 a +SDict begin 18.2 H.A end + -30 35369 +a -30 35369 a +SDict begin [ /View [/XYZ H.V] /Dest (6136) cvn H.B /DEST pdfmark end + -30 35369 a 1518 x FU(When)436 b(you)f(ha)-31 +b(v)-23 b(e)436 b(opened)f(a)h(\002le,)g(you)f(can)h(of)g(course)g(mo) +-23 b(v)g(e)435 b(around)g(in)h(it)f(with)g(the)h(cursor)-85 +b(.)-30 38902 y(The)2830 38902 y +SDict begin H.S end + 2830 38902 a 2830 38902 +a +SDict begin 18.2 H.A end + 2830 38902 a 2830 38902 a +SDict begin [ /View [/XYZ H.V] /Dest (6137) cvn H.B /DEST pdfmark end + 2830 38902 a FX(cursor)449 +b(k)-15 b(eys)448 b FU(and)13632 38902 y +SDict begin H.S end + 13632 38902 +a 13632 38902 a +SDict begin 18.2 H.A end + 13632 38902 a 13632 38902 a +SDict begin [ /View [/XYZ H.V] /Dest (6138) cvn H.B /DEST pdfmark end + 13632 38902 +a FX(PgUp)p FU(,)18171 38902 y +SDict begin H.S end + 18171 38902 a 18171 38902 +a +SDict begin 18.2 H.A end + 18171 38902 a 18171 38902 a +SDict begin [ /View [/XYZ H.V] /Dest (6139) cvn H.B /DEST pdfmark end + 18171 38902 a FX(PgDn)h +FU(do)g(what)h(you')-77 b(d)448 b(e)-23 b(xpect.)36631 +38902 y +SDict begin H.S end + 36631 38902 a 36631 38902 a +SDict begin 18.2 H.A end + 36631 38902 a 36631 +38902 a +SDict begin [ /View [/XYZ H.V] /Dest (6140) cvn H.B /DEST pdfmark end + 36631 38902 a FX(Home)449 b FU(and)43728 38902 +y +SDict begin H.S end + 43728 38902 a 43728 38902 a +SDict begin 18.2 H.A end + 43728 38902 a 43728 38902 +a +SDict begin [ /View [/XYZ H.V] /Dest (6141) cvn H.B /DEST pdfmark end + 43728 38902 a FX(End)f FU(jump)h(to)-30 40917 y(the)343 +b(be)-23 b(ginning)342 b(and)h(end)g(of)g(the)f(line.)i(\(In)f(older)f +(v)-23 b(ersions,)343 b(the)-23 b(y)342 b(w)-15 b(ould)342 +b(actually)h(jump)f(to)h(the)-30 42931 y(be)-23 b(ginning)470 +b(and)i(end)f(of)g(the)g(b)-31 b(uf)-39 b(fer)-85 b(.\))472 +b(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)472 b(there)g(are)f(also)36446 +42931 y +SDict begin H.S end + 36446 42931 a 36446 42931 a +SDict begin 18.2 H.A end + 36446 42931 a 36446 +42931 a +SDict begin [ /View [/XYZ H.V] /Dest (6142) cvn H.B /DEST pdfmark end + 36446 42931 a FX(Contr)-28 b(ol)471 b FU(and)44765 +42931 y +SDict begin H.S end + 44765 42931 a 44765 42931 a +SDict begin 18.2 H.A end + 44765 42931 a 44765 +42931 a +SDict begin [ /View [/XYZ H.V] /Dest (6143) cvn H.B /DEST pdfmark end + 44765 42931 a FX(Meta)g FU(\()49194 42931 y +SDict begin H.S end + 49194 +42931 a 49194 42931 a +SDict begin 18.2 H.A end + 49194 42931 a 49194 42931 a +SDict begin [ /View [/XYZ H.V] /Dest (6144) cvn H.B /DEST pdfmark end + 49194 +42931 a FX(Alt)p FU(\))-30 44946 y(k)-15 b(e)-23 b(y)515 +b(combos)g(that)g(mo)-23 b(v)g(e)514 b(the)i(cursor)f(around.)h +(Because)f(you)g(do)h(not)f(need)g(to)h(mo)-23 b(v)g(e)514 +b(your)-30 46961 y(hands)391 b(to)h(another)g(part)f(of)h(the)g(k)-15 +b(e)-23 b(yboard)390 b(for)i(these,)g(the)-23 b(y)391 +b(are)h(much)g(quick)-15 b(er)391 b(once)h(you)f(get)-30 +48975 y(used)c(to)g(them.)h(The)f(most)g(important)f(such)h(commands)f +(are)i(listed)f(in)p 0 TeXcolorgray 39228 48975 a +SDict begin H.S end + 39228 +48975 a FU(T)-124 b(able)387 b(17-1)45861 48975 y +SDict begin 18.2 H.L end + 45861 +48975 a 45861 48975 a +SDict begin [ /Subtype /Link /Dest (TABLE-EMACS-BASIC-EDITING) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 45861 48975 a Black FU(.)-30 49311 +y +SDict begin H.S end + -30 49311 a -30 49311 a +SDict begin 18.2 H.A end + -30 49311 a -30 49311 a +SDict begin [ /View [/XYZ H.V] /Dest (6146) cvn H.B /DEST pdfmark end + -30 +49311 a -30 49311 a +SDict begin H.S end + -30 49311 a -30 49311 a +SDict begin 18.2 H.A end + -30 49311 +a -30 49311 a +SDict begin [ /View [/XYZ H.V] /Dest (TABLE-EMACS-BASIC-EDITING) cvn +H.B /DEST pdfmark end + -30 49311 a -30 49311 a +SDict begin H.S end + -30 49311 a -30 +49311 a +SDict begin 18.2 H.A end + -30 49311 a -30 49311 a +SDict begin [ /View [/XYZ H.V] /Dest (6295) cvn H.B /DEST pdfmark end + -30 49311 a -30 50860 +a +SDict begin H.S end + -30 50860 a -30 50860 a +SDict begin 18.2 H.A end + -30 50860 a -30 50860 a +SDict begin [ /View [/XYZ H.V] /Dest (6297) cvn H.B /DEST pdfmark end + -30 +50860 a 1680 x FU(Note)421 b(that)g(man)-23 b(y)9991 +52540 y +SDict begin H.S end + 9991 52540 a 9991 52540 a +SDict begin 18.2 H.A end + 9991 52540 a 9991 52540 +a +SDict begin [ /View [/XYZ H.V] /Dest (6298) cvn H.B /DEST pdfmark end + 9991 52540 a FX(Meta)421 b FU(commands)f(are)i(parallel)e(to)h(the) +32314 52540 y +SDict begin H.S end + 32314 52540 a 32314 52540 a +SDict begin 18.2 H.A end + 32314 52540 +a 32314 52540 a +SDict begin [ /View [/XYZ H.V] /Dest (6299) cvn H.B /DEST pdfmark end + 32314 52540 a FX(Contr)-28 b(ol)420 b +FU(commands)h(e)-23 b(xcept)420 b(that)-30 54554 y(the)-23 +b(y)325 b(operate)g(on)g(lar)-28 b(ger)325 b(units:)f(while)21152 +54554 y +SDict begin H.S end + 21152 54554 a 21152 54554 a +SDict begin 18.2 H.A end + 21152 54554 a 21152 +54554 a +SDict begin [ /View [/XYZ H.V] /Dest (6300) cvn H.B /DEST pdfmark end + 21152 54554 a 21152 54554 a +SDict begin H.S end + 21152 54554 a 21152 +54554 a +SDict begin 18.2 H.A end + 21152 54554 a 21152 54554 a +SDict begin [ /View [/XYZ H.V] /Dest (6301) cvn H.B /DEST pdfmark end + 21152 54554 a FX(C)p +FU(-)22787 54554 y +SDict begin H.S end + 22787 54554 a 22787 54554 a +SDict begin 18.2 H.A end + 22787 +54554 a 22787 54554 a +SDict begin [ /View [/XYZ H.V] /Dest (6302) cvn H.B /DEST pdfmark end + 22787 54554 a FX(f)h FU(goes)g(forw)-15 +b(ard)324 b(one)h(character)-62 b(,)40900 54554 y +SDict begin H.S end + 40900 +54554 a 40900 54554 a +SDict begin 18.2 H.A end + 40900 54554 a 40900 54554 a +SDict begin [ /View [/XYZ H.V] /Dest (6303) cvn H.B /DEST pdfmark end + 40900 +54554 a 40900 54554 a +SDict begin H.S end + 40900 54554 a 40900 54554 a +SDict begin 18.2 H.A end + 40900 +54554 a 40900 54554 a +SDict begin [ /View [/XYZ H.V] /Dest (6304) cvn H.B /DEST pdfmark end + 40900 54554 a FX(M)p FU(-)42879 +54554 y +SDict begin H.S end + 42879 54554 a 42879 54554 a +SDict begin 18.2 H.A end + 42879 54554 a 42879 +54554 a +SDict begin [ /View [/XYZ H.V] /Dest (6305) cvn H.B /DEST pdfmark end + 42879 54554 a FX(f)326 b FU(goes)e(forw)-15 b(ard)-30 +56569 y(an)387 b(entire)h(w)-15 b(ord,)387 b(etc.)-30 +57568 y +SDict begin H.S end + -30 57568 a -30 57568 a +SDict begin 18.2 H.A end + -30 57568 a -30 57568 +a +SDict begin [ /View [/XYZ H.V] /Dest (6306) cvn H.B /DEST pdfmark end + -30 57568 a 1790 x FU(Also)965 b(note)f(that)10786 +59358 y +SDict begin H.S end + 10786 59358 a 10786 59358 a +SDict begin 18.2 H.A end + 10786 59358 a 10786 +59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6307) cvn H.B /DEST pdfmark end + 10786 59358 a 10786 59358 a +SDict begin H.S end + 10786 59358 a 10786 +59358 a +SDict begin 18.2 H.A end + 10786 59358 a 10786 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6308) cvn H.B /DEST pdfmark end + 10786 59358 a FX(M)p +FU(-)12765 59358 y +SDict begin H.S end + 12765 59358 a 12765 59358 a +SDict begin 18.2 H.A end + 12765 +59358 a 12765 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6309) cvn H.B /DEST pdfmark end + 12765 59358 a Fl(<)h FU(and)18147 +59358 y +SDict begin H.S end + 18147 59358 a 18147 59358 a +SDict begin 18.2 H.A end + 18147 59358 a 18147 +59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6310) cvn H.B /DEST pdfmark end + 18147 59358 a 18147 59358 a +SDict begin H.S end + 18147 59358 a 18147 +59358 a +SDict begin 18.2 H.A end + 18147 59358 a 18147 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6311) cvn H.B /DEST pdfmark end + 18147 59358 a FX(M)p +FU(-)20126 59358 y +SDict begin H.S end + 20126 59358 a 20126 59358 a +SDict begin 18.2 H.A end + 20126 +59358 a 20126 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6312) cvn H.B /DEST pdfmark end + 20126 59358 a Fl(>)g FU(require)g(you)g(to)f +(type)36753 59358 y +SDict begin H.S end + 36753 59358 a 36753 59358 a +SDict begin 18.2 H.A end + 36753 +59358 a 36753 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6313) cvn H.B /DEST pdfmark end + 36753 59358 a 36753 59358 a +SDict begin H.S end + 36753 +59358 a 36753 59358 a +SDict begin 18.2 H.A end + 36753 59358 a 36753 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6314) cvn H.B /DEST pdfmark end + 36753 +59358 a FX(Shift)p FU(+)40814 59358 y +SDict begin H.S end + 40814 59358 a 40814 +59358 a +SDict begin 18.2 H.A end + 40814 59358 a 40814 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6315) cvn H.B /DEST pdfmark end + 40814 59358 a FX(Alt)p +FU(+)43754 59358 y +SDict begin H.S end + 43754 59358 a 43754 59358 a +SDict begin 18.2 H.A end + 43754 +59358 a 43754 59358 a +SDict begin [ /View [/XYZ H.V] /Dest (6316) cvn H.B /DEST pdfmark end + 43754 59358 a FX(comma)g FU(and)-30 +61373 y +SDict begin H.S end + -30 61373 a -30 61373 a +SDict begin 18.2 H.A end + -30 61373 a -30 61373 +a +SDict begin [ /View [/XYZ H.V] /Dest (6317) cvn H.B /DEST pdfmark end + -30 61373 a -30 61373 a +SDict begin H.S end + -30 61373 a -30 61373 a +SDict begin 18.2 H.A end + -30 +61373 a -30 61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6318) cvn H.B /DEST pdfmark end + -30 61373 a FX(Shift)p FU(+)4031 +61373 y +SDict begin H.S end + 4031 61373 a 4031 61373 a +SDict begin 18.2 H.A end + 4031 61373 a 4031 61373 +a +SDict begin [ /View [/XYZ H.V] /Dest (6319) cvn H.B /DEST pdfmark end + 4031 61373 a FX(Alt)p FU(+)6971 61373 y +SDict begin H.S end + 6971 61373 +a 6971 61373 a +SDict begin 18.2 H.A end + 6971 61373 a 6971 61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6320) cvn H.B /DEST pdfmark end + 6971 61373 a +FX(dot)592 b FU(respecti)-39 b(v)-23 b(ely)-101 b(,)593 +b(since)21799 61373 y +SDict begin H.S end + 21799 61373 a 21799 61373 a +SDict begin 18.2 H.A end + 21799 +61373 a 21799 61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6321) cvn H.B /DEST pdfmark end + 21799 61373 a Fl(<)g FU(and)26437 +61373 y +SDict begin H.S end + 26437 61373 a 26437 61373 a +SDict begin 18.2 H.A end + 26437 61373 a 26437 +61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6322) cvn H.B /DEST pdfmark end + 26437 61373 a Fl(>)g FU(are)g(on)32872 61373 +y +SDict begin H.S end + 32872 61373 a 32872 61373 a +SDict begin 18.2 H.A end + 32872 61373 a 32872 61373 +a +SDict begin [ /View [/XYZ H.V] /Dest (6323) cvn H.B /DEST pdfmark end + 32872 61373 a 32872 61373 a +SDict begin H.S end + 32872 61373 a 32872 61373 +a +SDict begin 18.2 H.A end + 32872 61373 a 32872 61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6324) cvn H.B /DEST pdfmark end + 32872 61373 a FX(Shift)p +FU(+)36933 61373 y +SDict begin H.S end + 36933 61373 a 36933 61373 a +SDict begin 18.2 H.A end + 36933 +61373 a 36933 61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6325) cvn H.B /DEST pdfmark end + 36933 61373 a FX(comma)f FU(and)45176 +61373 y +SDict begin H.S end + 45176 61373 a 45176 61373 a +SDict begin 18.2 H.A end + 45176 61373 a 45176 +61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6326) cvn H.B /DEST pdfmark end + 45176 61373 a 45176 61373 a +SDict begin H.S end + 45176 61373 a 45176 +61373 a +SDict begin 18.2 H.A end + 45176 61373 a 45176 61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6327) cvn H.B /DEST pdfmark end + 45176 61373 a FX(Shift)p +FU(+)49237 61373 y +SDict begin H.S end + 49237 61373 a 49237 61373 a +SDict begin 18.2 H.A end + 49237 +61373 a 49237 61373 a +SDict begin [ /View [/XYZ H.V] /Dest (6328) cvn H.B /DEST pdfmark end + 49237 61373 a FX(dot)p FU(.)-30 +63388 y(\(Unless)734 b(of)h(course)f(you)g(ha)-31 b(v)-23 +b(e)734 b(a)h(dif)-39 b(ferent)734 b(k)-15 b(e)-23 b(yboard)734 +b(layout)g(from)g(the)g(standard)g(US)-30 65402 y(layout.\))-30 +66513 y +SDict begin H.S end + -30 66513 a -30 66513 a +SDict begin 18.2 H.A end + -30 66513 a -30 66513 +a +SDict begin [ /View [/XYZ H.V] /Dest (6329) cvn H.B /DEST pdfmark end + -30 66513 a 1679 x FU(Note)406 b(that)6121 68192 y +SDict begin H.S end + +6121 68192 a 6121 68192 a +SDict begin 18.2 H.A end + 6121 68192 a 6121 68192 a +SDict begin [ /View [/XYZ H.V] /Dest (6330) cvn H.B /DEST pdfmark end + 6121 +68192 a 6121 68192 a +SDict begin H.S end + 6121 68192 a 6121 68192 a +SDict begin 18.2 H.A end + 6121 68192 +a 6121 68192 a +SDict begin [ /View [/XYZ H.V] /Dest (6331) cvn H.B /DEST pdfmark end + 6121 68192 a FX(C)p FU(-)7756 68192 y +SDict begin H.S end + +7756 68192 a 7756 68192 a +SDict begin 18.2 H.A end + 7756 68192 a 7756 68192 a +SDict begin [ /View [/XYZ H.V] /Dest (6332) cvn H.B /DEST pdfmark end + 7756 +68192 a FX(k)g FU(deletes)g(\(kills,)g(as)h(it)f(is)g(commonly)g +(called\))g(all)g(the)h(te)-23 b(xt)406 b(after)g(the)h(cursor)f(to)p +Black -30 73792 a FR(210)p Black eop end +%%Page: 211 233 +TeXDict begin 211 232 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.211) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 40240 -1636 a FR(Chapter)386 b(17)h(Emacs)p +Black Black -30 10352 a FX(T)-143 b(able)387 b(17-1.)h(Basic)e(Emacs)h +(Editing)f(Commands)-30 12217 y +SDict begin H.S end + -30 12217 a -30 12217 +a +SDict begin 18.2 H.A end + -30 12217 a -30 12217 a +SDict begin [ /View [/XYZ H.V] /Dest (6151) cvn H.B /DEST pdfmark end + -30 12217 a -30 12217 a +SDict begin H.S end + -30 +12217 a -30 12217 a +SDict begin 18.2 H.A end + -30 12217 a -30 12217 a +SDict begin [ /View [/XYZ H.V] /Dest (table.17) cvn H.B /DEST pdfmark +end + -30 12217 +a 1761 x FE(Command)5374 b(Result)p -30 14354 51806 45 +v -30 14354 V 358 16115 a FX(C)p FU(-)p FX(b)10067 b +FU(go)387 b(one)g(character)h(back)358 18211 y FX(C)p +FU(-)p FX(f)10413 b FU(go)387 b(one)g(character)h(forw)-15 +b(ard)358 20308 y FX(C)p FU(-)p FX(n)10067 b FU(go)387 +b(one)g(line)g(do)-39 b(wn)358 22404 y FX(C)p FU(-)p +FX(p)10067 b FU(go)387 b(one)g(line)g(up)358 24501 y +FX(C)p FU(-)p FX(a)10154 b FU(go)387 b(to)g(the)g(be)-23 +b(ginning)386 b(of)i(the)f(line)358 26597 y FX(C)p FU(-)p +FX(e)10241 b FU(go)387 b(to)g(the)g(end)g(of)h(the)f(line)358 +28694 y FX(M)p FU(-)p FX(b)9723 b FU(go)387 b(one)g(w)-15 +b(ord)387 b(back)358 30790 y FX(M)p FU(-)p FX(f)10069 +b FU(go)387 b(one)g(w)-15 b(ord)387 b(forw)-15 b(ard)358 +32887 y FX(M)p FU(-)p FX(})9974 b FU(go)387 b(one)g(paragraph)g(forw) +-15 b(ard)358 34983 y FX(M)p FU(-)p FX({)9974 b FU(go)387 +b(one)g(paragraph)g(backw)-15 b(ard)358 37079 y FX(M)p +FU(-)p FX(a)9810 b FU(go)387 b(one)g(sentence)g(backw)-15 +b(ard)358 39176 y FX(M)p FU(-)p FX(e)9897 b FU(go)387 +b(one)g(sentence)g(forw)-15 b(ard)358 41272 y FX(C)p +FU(-)p FX(d)10067 b FU(delete)387 b(the)g(character)h(under)f(the)g +(cursor)358 43365 y FX(M)p FU(-)p FX(d)9723 b FU(delete)387 +b(until)f(the)i(end)f(of)g(the)g(current)h(w)-15 b(ord)358 +45458 y FX(C)p FU(-)p FX(v)10154 b FU(go)387 b(do)-39 +b(wn)387 b(one)g(screen)h(\(i.e.,)g(PgDn\))358 47555 +y FX(M)p FU(-)p FX(v)9810 b FU(go)387 b(up)g(one)g(screen)h(\(i.e.,)g +(PgUp\))358 49651 y FX(M)p FU(-)p Fl(<)9371 b FU(go)387 +b(to)g(the)g(be)-23 b(ginning)386 b(of)i(the)f(b)-31 +b(uf)-39 b(fer)358 51748 y FX(M)p FU(-)p Fl(>)9371 b +FU(go)387 b(to)g(the)g(end)g(of)h(the)f(b)-31 b(uf)-39 +b(fer)358 53844 y FX(C)p FU(-)p FX(_)10154 b FU(undo)386 +b(the)i(last)f(change)g(\(can)g(be)h(repeated\);)f(note)g(that)g(you)g +(actually)12922 55859 y(ha)-31 b(v)-23 b(e)387 b(to)g(type)g +FX(Shift)p FU(+)p FX(Contr)-28 b(ol)p FU(+)p FX(h)-23 +b(yphen)384 b FU(for)k(this.)358 57955 y FX(C)p FU(-)p +FX(k)10067 b FU(delete)387 b(to)g(end)g(of)g(line)358 +60048 y FX(C)p FU(-)p FX(s)10326 b FU(forw)-15 b(ard)386 +b(search)358 62141 y FX(C)p FU(-)p FX(r)10241 b FU(backw)-15 +b(ard)386 b(search)p Black Black 49451 73792 a FR(211)p +Black eop end +%%Page: 212 234 +TeXDict begin 212 233 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.212) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6365) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(17)g(Emacs)p Black -30 3611 a FU(the)483 b(end)g(of)g(the)g(line,)h +(b)-31 b(ut)482 b(doesn')-28 b(t)483 b(delete)g(the)g(line)g(itself)f +(\(i.e.,)j(it)e(doesn')-28 b(t)482 b(delete)h(the)g(\002nal)-30 +5626 y(ne)-39 b(wline\).)374 b(It)f(only)g(deletes)g(the)h(line)f(if)g +(there)h(w)-15 b(as)373 b(no)g(te)-23 b(xt)373 b(after)h(the)f(cursor) +-85 b(.)374 b(In)f(other)g(w)-15 b(ords,)-30 7640 y(in)401 +b(order)g(to)g(delete)g(a)g(complete)g(line,)g(you)g(ha)-31 +b(v)-23 b(e)401 b(to)f(put)h(the)g(cursor)g(at)g(the)g(be)-23 +b(ginning)400 b(of)h(the)-30 9655 y(line,)492 b(and)f(then)g(hit)11192 +9655 y +SDict begin H.S end + 11192 9655 a 11192 9655 a +SDict begin 18.2 H.A end + 11192 9655 a 11192 9655 +a +SDict begin [ /View [/XYZ H.V] /Dest (6333) cvn H.B /DEST pdfmark end + 11192 9655 a 11192 9655 a +SDict begin H.S end + 11192 9655 a 11192 9655 a +SDict begin 18.2 H.A end + +11192 9655 a 11192 9655 a +SDict begin [ /View [/XYZ H.V] /Dest (6334) cvn H.B /DEST pdfmark end + 11192 9655 a FX(C)p FU(-)12827 +9655 y +SDict begin H.S end + 12827 9655 a 12827 9655 a +SDict begin 18.2 H.A end + 12827 9655 a 12827 9655 +a +SDict begin [ /View [/XYZ H.V] /Dest (6335) cvn H.B /DEST pdfmark end + 12827 9655 a FX(k)g FU(twice:)g(once)g(to)h(delete)f(the)h(te)-23 +b(xt)490 b(on)i(the)f(line,)h(once)f(to)h(delete)f(the)-30 +11670 y(line)387 b(itself.)-30 12460 y +SDict begin H.S end + -30 12460 a -30 +12460 a +SDict begin 18.2 H.A end + -30 12460 a -30 12460 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS-SAVING-FILES) cvn H.B /DEST +pdfmark end + -30 12460 a 6109 x FL(17.5)620 +b(Sa)-33 b(ving)620 b(Files)-30 19066 y +SDict begin H.S end + -30 19066 a -30 +19066 a +SDict begin 18.2 H.A end + -30 19066 a -30 19066 a +SDict begin [ /View [/XYZ H.V] /Dest (6338) cvn H.B /DEST pdfmark end + -30 19066 a -30 20182 +a +SDict begin H.S end + -30 20182 a -30 20182 a +SDict begin 18.2 H.A end + -30 20182 a -30 20182 a +SDict begin [ /View [/XYZ H.V] /Dest (6341) cvn H.B /DEST pdfmark end + -30 +20182 a 1518 x FU(In)387 b(order)h(to)f(sa)-31 b(v)-23 +b(e)387 b(a)h(\002le,)f(you)g(type)-30 23585 y +SDict begin H.S end + -30 23585 +a -30 23585 a +SDict begin 14.56 H.A end + -30 23585 a -30 23585 a +SDict begin [ /View [/XYZ H.V] /Dest (6342) cvn H.B /DEST pdfmark end + -30 23585 a -30 +23585 a +SDict begin H.S end + -30 23585 a -30 23585 a +SDict begin 14.56 H.A end + -30 23585 a -30 23585 +a +SDict begin [ /View [/XYZ H.V] /Dest (6343) cvn H.B /DEST pdfmark end + -30 23585 a 1276 x FH(C-x)744 b(C-s)-30 26436 y +SDict begin H.S end + -30 +26436 a -30 26436 a +SDict begin 18.2 H.A end + -30 26436 a -30 26436 a +SDict begin [ /View [/XYZ H.V] /Dest (6344) cvn H.B /DEST pdfmark end + -30 26436 +a 1990 x FU(Emacs)396 b(will)g(not)g(ask)h(you)f(for)g(a)h(\002lename,) +f(the)g(b)-31 b(uf)-39 b(fer)397 b(will)f(just)g(be)h(sa)-31 +b(v)-23 b(ed)396 b(to)g(the)g(\002le)g(it)h(w)-15 b(as)-30 +30440 y(loaded)387 b(from.)h(If)f(you)g(w)-15 b(ant)387 +b(to)g(sa)-31 b(v)-23 b(e)387 b(your)g(te)-23 b(xt)387 +b(to)g(another)g(\002le,)h(type)-30 32326 y +SDict begin H.S end + -30 32326 +a -30 32326 a +SDict begin 14.56 H.A end + -30 32326 a -30 32326 a +SDict begin [ /View [/XYZ H.V] /Dest (6345) cvn H.B /DEST pdfmark end + -30 32326 a -30 +32326 a +SDict begin H.S end + -30 32326 a -30 32326 a +SDict begin 14.56 H.A end + -30 32326 a -30 32326 +a +SDict begin [ /View [/XYZ H.V] /Dest (6346) cvn H.B /DEST pdfmark end + -30 32326 a 1276 x FH(C-x)744 b(C-w)-30 35176 y +SDict begin H.S end + -30 +35176 a -30 35176 a +SDict begin 18.2 H.A end + -30 35176 a -30 35176 a +SDict begin [ /View [/XYZ H.V] /Dest (6347) cvn H.B /DEST pdfmark end + -30 35176 +a 1990 x FU(When)479 b(you)g(sa)-31 b(v)-23 b(e)479 b(the)g(\002le)g +(for)h(the)f(\002rst)g(time)f(in)h(this)g(session,)g(Emacs)g(will)g +(normally)f(sa)-31 b(v)-23 b(e)-30 39181 y(the)347 b(old)g(v)-23 +b(ersion)347 b(of)h(your)f(\002le)g(to)g(a)h(backup)f(\002le,)g(which)g +(has)h(the)f(same)g(name)g(appended)g(with)-30 41196 +y(a)363 b(tilde:)g(so)g(if)g(you')-77 b(re)362 b(editing)h(a)g(\002le) +20016 41196 y +SDict begin H.S end + 20016 41196 a 20016 41196 a +SDict begin 18.2 H.A end + 20016 41196 +a 20016 41196 a +SDict begin [ /View [/XYZ H.V] /Dest (6348) cvn H.B /DEST pdfmark end + 20016 41196 a FU(\223)20704 41196 y +SDict begin H.S end + 20704 +41196 a 20704 41196 a +SDict begin 18.2 H.A end + 20704 41196 a 20704 41196 a +SDict begin [ /View [/XYZ H.V] /Dest (6349) cvn H.B /DEST pdfmark end + 20704 +41196 a FQ(cars.txt)p FU(\224,)358 b(Emacs)363 b(will)g(create)g(a)g +(backup)44375 41196 y +SDict begin H.S end + 44375 41196 a 44375 41196 a +SDict begin 18.2 H.A end + 44375 +41196 a 44375 41196 a +SDict begin [ /View [/XYZ H.V] /Dest (6350) cvn H.B /DEST pdfmark end + 44375 41196 a FU(\223)45063 41196 +y +SDict begin H.S end + 45063 41196 a 45063 41196 a +SDict begin 18.2 H.A end + 45063 41196 a 45063 41196 +a +SDict begin [ /View [/XYZ H.V] /Dest (6351) cvn H.B /DEST pdfmark end + 45063 41196 a FQ(cars.txt~)p FU(\224.)-30 42306 y +SDict begin H.S end + -30 +42306 a -30 42306 a +SDict begin 18.2 H.A end + -30 42306 a -30 42306 a +SDict begin [ /View [/XYZ H.V] /Dest (6352) cvn H.B /DEST pdfmark end + -30 42306 +a 1679 x FU(This)345 b(backup)g(\002le)g(is)f(a)i(cop)-15 +b(y)344 b(of)i(the)f(\002le)f(that)h(you)g(opened.)h(While)e(you)h(are) +h(w)-15 b(orking,)344 b(Emacs)-30 46000 y(will)594 b(also)g(re)-23 +b(gularly)594 b(create)h(an)g(auto-sa)-31 b(v)-23 b(e)594 +b(cop)-15 b(y)594 b(of)g(the)h(w)-15 b(ork)594 b(you)g(are)h(doing,)f +(to)h(a)f(\002le)-30 48014 y(named)524 b(with)f(hash)h(signs:)15412 +48014 y +SDict begin H.S end + 15412 48014 a 15412 48014 a +SDict begin 18.2 H.A end + 15412 48014 a 15412 +48014 a +SDict begin [ /View [/XYZ H.V] /Dest (6353) cvn H.B /DEST pdfmark end + 15412 48014 a FQ(#cars.txt#)p FU(.)518 b(This)523 +b(backup)h(is)g(deleted)g(when)g(you)g(sa)-31 b(v)-23 +b(e)523 b(the)h(\002le)-30 50029 y(with)387 b(C-x)g(C-s.)-30 +50819 y +SDict begin H.S end + -30 50819 a -30 50819 a +SDict begin 18.2 H.A end + -30 50819 a -30 50819 +a +SDict begin [ /View [/XYZ H.V] /Dest (6354) cvn H.B /DEST pdfmark end + -30 50819 a 2000 x FU(When)g(you)g(are)h(done)f(editing)g(a)g +(\002le,)h(you)f(can)g(kill)g(the)g(b)-31 b(uf)-39 b(fer)388 +b(that)f(holds)g(it)g(by)g(typing)-30 54704 y +SDict begin H.S end + -30 54704 +a -30 54704 a +SDict begin 14.56 H.A end + -30 54704 a -30 54704 a +SDict begin [ /View [/XYZ H.V] /Dest (6355) cvn H.B /DEST pdfmark end + -30 54704 a -30 +54704 a +SDict begin H.S end + -30 54704 a -30 54704 a +SDict begin 14.56 H.A end + -30 54704 a -30 54704 +a +SDict begin [ /View [/XYZ H.V] /Dest (6356) cvn H.B /DEST pdfmark end + -30 54704 a 1276 x FH(C-x)744 b(k)-30 57555 y +SDict begin H.S end + -30 57555 +a -30 57555 a +SDict begin 18.2 H.A end + -30 57555 a -30 57555 a +SDict begin [ /View [/XYZ H.V] /Dest (6357) cvn H.B /DEST pdfmark end + -30 57555 a 1989 +x FU(Emacs)511 b(will)g(then)g(ask)g(you)h(which)f(b)-31 +b(uf)-39 b(fer)511 b(you)h(w)-15 b(ant)510 b(to)h(kill,)h(with)f(the)g +(current)g(b)-31 b(uf)-39 b(fer)512 b(as)-30 61559 y(def)-15 +b(ault,)394 b(which)f(you)h(can)g(select)f(by)h(hitting)24793 +61559 y +SDict begin H.S end + 24793 61559 a 24793 61559 a +SDict begin 18.2 H.A end + 24793 61559 a 24793 +61559 a +SDict begin [ /View [/XYZ H.V] /Dest (6358) cvn H.B /DEST pdfmark end + 24793 61559 a FX(ENTER)p FU(.)f(If)h(you)g(ha)-31 +b(v)-23 b(en')-28 b(t)393 b(sa)-31 b(v)-23 b(ed)394 b(your)f(\002le)h +(yet,)-30 63574 y(Emacs)387 b(will)g(ask)g(you)g(if)g(you)h(really)f(w) +-15 b(ant)386 b(to)h(kill)g(the)g(b)-31 b(uf)-39 b(fer)-85 +b(.)-30 63909 y +SDict begin H.S end + -30 63909 a -30 63909 a +SDict begin 18.2 H.A end + -30 63909 a -30 +63909 a +SDict begin [ /View [/XYZ H.V] /Dest (EMACS-QUITING) cvn H.B /DEST +pdfmark end + -30 63909 a Black 9883 x FR(212)p Black eop end +%%Page: 213 235 +TeXDict begin 213 234 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.213) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 40240 -1636 a FR(Chapter)386 b(17)h(Emacs)p +Black -30 3861 a FG(Quitting)518 b(Emacs)-30 4275 y +SDict begin H.S end + -30 +4275 a -30 4275 a +SDict begin 18.2 H.A end + -30 4275 a -30 4275 a +SDict begin [ /View [/XYZ H.V] /Dest (6361) cvn H.B /DEST pdfmark end + -30 4275 a -30 +5204 a +SDict begin H.S end + -30 5204 a -30 5204 a +SDict begin 18.2 H.A end + -30 5204 a -30 5204 a +SDict begin [ /View [/XYZ H.V] /Dest (6364) cvn H.B /DEST pdfmark end + -30 +5204 a 1601 x FU(When)387 b(you)g(are)h(done)f(with)g(Emacs)g +(altogether)-62 b(,)387 b(you)g(can)h(type)-30 9967 y +FH(C-x)744 b(C-c)-30 11541 y +SDict begin H.S end + -30 11541 a -30 11541 a +SDict begin 18.2 H.A end + +-30 11541 a -30 11541 a +SDict begin [ /View [/XYZ H.V] /Dest (6367) cvn H.B /DEST pdfmark end + -30 11541 a 1990 x FU(This)450 +b(quits)h(Emacs.)g(If)g(you)f(ha)-31 b(v)-23 b(e)451 +b(an)-23 b(y)450 b(unsa)-31 b(v)-23 b(ed)451 b(\002les,)f(Emacs)h(will) +f(tell)h(you)f(so,)h(and)g(ask)g(if)-30 15546 y(you)353 +b(w)-15 b(ant)353 b(to)g(sa)-31 b(v)-23 b(e)353 b(them)g(each)h(in)f +(turn.)h(If)f(you)g(answer)h(no)f(to)g(an)-23 b(y)353 +b(of)h(these,)f(Emacs)g(will)g(ask)-30 17561 y(for)388 +b(one)f(\002nal)g(con\002rmation)f(and)h(then)g(quit.)p +Black 49451 73792 a FR(213)p Black eop end +%%Page: 214 236 +TeXDict begin 214 235 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.214) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(17)g(Emacs)p Black +Black -30 73792 a(214)p Black eop end +%%Page: 215 237 +TeXDict begin 215 236 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.215) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT) cvn H.B /DEST +pdfmark end + -30 2383 a 2345 x FS(Chapter)894 +b(18)-30 10743 y FO(Slac)-93 b(kware)1287 b(P)-139 b(ac)-93 +b(ka)-46 b(g)46 b(e)-30 16759 y(Mana)-46 b(g)46 b(ement)p +-30 24332 51806 56 v -30 24332 a +SDict begin H.S end + -30 24332 a -30 24332 +a +SDict begin 18.2 H.A end + -30 24332 a -30 24332 a +SDict begin [ /View [/XYZ H.V] /Dest (6370) cvn H.B /DEST pdfmark end + -30 24332 a -30 24332 a +SDict begin H.S end + -30 +24332 a -30 24332 a +SDict begin 18.2 H.A end + -30 24332 a -30 24332 a +SDict begin [ /View [/XYZ H.V] /Dest (6372) cvn H.B /DEST pdfmark end + -30 24332 +a -30 25107 a +SDict begin H.S end + -30 25107 a -30 25107 a +SDict begin 18.2 H.A end + -30 25107 a -30 +25107 a +SDict begin [ /View [/XYZ H.V] /Dest (6375) cvn H.B /DEST pdfmark end + -30 25107 a 1051 x FU(A)390 b(softw)-15 b(are)389 +b(package)h(is)f(a)h(b)-31 b(undle)389 b(of)h(related)f(programs)h +(that)f(are)h(ready)g(for)f(you)h(to)f(install.)-30 28172 +y(When)398 b(you)g(do)-39 b(wnload)398 b(a)g(source)h(code)f(archi)-39 +b(v)-23 b(e,)399 b(you)f(ha)-31 b(v)-23 b(e)398 b(to)g(con\002gure,)g +(compile,)g(and)g(in-)-30 30187 y(stall)506 b(it)g(by)g(hand.)h(W)-62 +b(ith)506 b(a)g(softw)-15 b(are)506 b(package,)h(this)e(has)i(already)f +(been)g(done)g(for)h(you.)f(All)-30 32202 y(that)443 +b(you)h(ha)-31 b(v)-23 b(e)443 b(to)g(do)h(is)f(install)g(the)g +(package.)h(Another)f(handy)g(feature)h(of)g(using)f(softw)-15 +b(are)-30 34216 y(packages)385 b(is)g(that)h(it)f(is)g(v)-23 +b(ery)385 b(easy)g(to)g(remo)-23 b(v)g(e)385 b(and)g(upgrade)h(them,)f +(if)g(you)g(so)h(desire.)f(Slack-)-30 36231 y(w)-15 b(are)359 +b(comes)f(with)g(programs)h(for)f(all)h(your)g(package)f(management)g +(needs.)h(Y)-170 b(ou)358 b(can)h(install,)-30 38246 +y(remo)-23 b(v)g(e,)387 b(upgrade,)h(mak)-15 b(e,)387 +b(and)g(e)-23 b(xamine)387 b(packages)g(v)-23 b(ery)387 +b(easily)-101 b(.)-30 38581 y +SDict begin H.S end + -30 38581 a -30 38581 a +SDict begin 18.2 H.A end + +-30 38581 a -30 38581 a +SDict begin [ /View [/XYZ H.V] /Dest (6376) cvn H.B /DEST pdfmark end + -30 38581 a -30 38581 a +SDict begin H.S end + -30 38581 +a -30 38581 a +SDict begin 18.2 H.A end + -30 38581 a -30 38581 a +SDict begin [ /View [/XYZ H.V] /Dest (6378) cvn H.B /DEST pdfmark end + -30 38581 a -30 +39356 a +SDict begin H.S end + -30 39356 a -30 39356 a +SDict begin 18.2 H.A end + -30 39356 a -30 39356 +a +SDict begin [ /View [/XYZ H.V] /Dest (6380) cvn H.B /DEST pdfmark end + -30 39356 a 1679 x FU(There')-85 b(s)324 b(a)g(myth)g(that')-85 +b(s)323 b(been)i(going)e(around)h(e)-39 b(v)-23 b(er)324 +b(since)g(RedHat)g(deb)-31 b(uted)324 b(RedHat)f(P)-23 +b(ackage)-30 43050 y(Manager)-62 b(,)569 b(that)f(Slackw)-15 +b(are)568 b(has)g(no)g(package)h(management)f(tool.)g(This)g(simply)f +(couldn')-28 b(t)-30 45065 y(be)458 b(further)h(from)f(the)g(truth.)g +(Slackw)-15 b(are)457 b(has)h(al)-15 b(w)g(ays)457 b(included)h(a)g +(package)g(manager)-62 b(,)459 b(e)-39 b(v)-23 b(en)-30 +47079 y(before)336 b(RedHat)f(e)-23 b(xisted.)336 b(While)f(not)g(as)h +(full-featured)g(or)f(as)h(ubiquitous)e(as)i(rpm)g(\(or)f(for)h(that) +-30 49094 y(matter)414 b(deb\),)7899 49094 y +SDict begin H.S end + 7899 49094 +a 7899 49094 a +SDict begin 18.2 H.A end + 7899 49094 a 7899 49094 a +SDict begin [ /View [/XYZ H.V] /Dest (6381) cvn H.B /DEST pdfmark end + 7899 49094 a +FP(pkgtool)g FU(and)g(its)g(associated)f(programs)h(are)g(e)-39 +b(v)-23 b(ery)414 b(bit)g(as)g(good)g(at)g(installing)-30 +51109 y(packages)587 b(as)f(rpm.)h(The)g(truth)f(about)22126 +51109 y +SDict begin H.S end + 22126 51109 a 22126 51109 a +SDict begin 18.2 H.A end + 22126 51109 a 22126 +51109 a +SDict begin [ /View [/XYZ H.V] /Dest (6382) cvn H.B /DEST pdfmark end + 22126 51109 a FP(pkgtool)g FU(is)g(not)g(that)h(it)f(doesn')-28 +b(t)586 b(e)-23 b(xist,)587 b(b)-31 b(ut)586 b(that)g(it)-30 +53123 y(doesn')-28 b(t)387 b(do)g(an)-23 b(y)387 b(dependenc)-23 +b(y)387 b(checking.)-30 54234 y +SDict begin H.S end + -30 54234 a -30 54234 +a +SDict begin 18.2 H.A end + -30 54234 a -30 54234 a +SDict begin [ /View [/XYZ H.V] /Dest (6383) cvn H.B /DEST pdfmark end + -30 54234 a 1679 x FU(Apparently)571 +b(man)-23 b(y)572 b(people)f(in)h(the)g(Linux)f(community)f(think)i +(that)f(a)h(packager)g(manager)-30 57928 y(must)534 b(by)g +(de\002nition)g(include)g(dependenc)-23 b(y)534 b(checking.)g(W)-124 +b(ell,)535 b(that)f(simply)g(isn')-28 b(t)534 b(the)g(case,)-30 +59942 y(as)g(Slackw)-15 b(are)534 b(most)f(certainly)h(does)g(not.)g +(This)g(is)g(not)g(to)g(say)g(that)g(Slackw)-15 b(are)533 +b(packages)-30 61957 y(don')-28 b(t)312 b(ha)-31 b(v)-23 +b(e)312 b(dependencies,)g(b)-31 b(ut)312 b(rather)g(that)g(its)g +(package)g(manager)g(doesn')-28 b(t)311 b(check)i(for)f(them.)-30 +63972 y(Dependenc)-23 b(y)387 b(management)f(is)i(left)f(up)g(to)g(the) +g(sysadmin,)g(and)g(that')-85 b(s)387 b(the)g(w)-15 b(ay)387 +b(we)g(lik)-15 b(e)387 b(it.)-30 64307 y +SDict begin H.S end + -30 64307 a +-30 64307 a +SDict begin 18.2 H.A end + -30 64307 a -30 64307 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-OVERVIEW) +cvn H.B /DEST pdfmark end + -30 64307 a Black +49451 73672 a FR(215)p Black eop end +%%Page: 216 238 +TeXDict begin 216 237 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.216) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(18)g(Slac)-31 b(kwar)-57 +b(e)386 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 b(Mana)-15 +b(g)g(ement)p Black -30 4011 a FL(18.1)620 b(Over)22 +b(vie)-33 b(w)620 b(of)g(P)-67 b(ac)-45 b(ka)-22 b(g)22 +b(e)620 b(Format)-30 5624 y +SDict begin H.S end + -30 5624 a -30 5624 a +SDict begin 18.2 H.A end + -30 +5624 a -30 5624 a +SDict begin [ /View [/XYZ H.V] /Dest (6386) cvn H.B /DEST pdfmark end + -30 5624 a 1518 x FU(Before)361 b(learning)f(the)h +(utilities,)f(you)g(should)g(become)h(f)-15 b(amiliar)359 +b(with)i(the)f(format)h(of)f(a)h(Slack-)-30 9156 y(w)-15 +b(are)578 b(package.)g(In)g(Slackw)-15 b(are,)577 b(a)h(package)g(is)g +(simply)f(a)h(tar)f(archi)-39 b(v)-23 b(e)578 b(\002le)g(that)f(has)h +(been)-30 11171 y(compressed)387 b(with)10817 11171 y +SDict begin H.S end + +10817 11171 a 10817 11171 a +SDict begin 18.2 H.A end + 10817 11171 a 10817 11171 +a +SDict begin [ /View [/XYZ H.V] /Dest (6387) cvn H.B /DEST pdfmark end + 10817 11171 a FP(gzip)p FU(.)g(P)-23 b(ackages)387 +b(are)g(b)-31 b(uilt)387 b(to)g(be)h(e)-23 b(xtracted)386 +b(in)i(the)f(root)g(directory)-101 b(.)-30 12281 y +SDict begin H.S end + -30 +12281 a -30 12281 a +SDict begin 18.2 H.A end + -30 12281 a -30 12281 a +SDict begin [ /View [/XYZ H.V] /Dest (6388) cvn H.B /DEST pdfmark end + -30 12281 +a 1680 x FU(Here)388 b(is)f(a)g(\002ctitious)f(program)h(and)g(its)g(e) +-23 b(xample)387 b(package:)-30 15846 y +SDict begin H.S end + -30 15846 a -30 +15846 a +SDict begin 14.56 H.A end + -30 15846 a -30 15846 a +SDict begin [ /View [/XYZ H.V] /Dest (6389) cvn H.B /DEST pdfmark end + -30 15846 a 1276 x FP(./)-30 +18734 y(usr/)-30 20346 y(usr/bin/)-30 21957 y(usr/bin/makehejaz)-30 +23569 y(usr/doc/)-30 25181 y(usr/doc/makehejaz-1.0/)-30 +26792 y(usr/doc/makehejaz-1.0/COPYING)-30 28404 y +(usr/doc/makehejaz-1.0/README)-30 30016 y(usr/man/)-30 +31628 y(usr/man/man1)-30 33239 y(usr/man/man1/makehejaz.1.gz)-30 +34851 y(install/)-30 36463 y(install/doinst.sh)-30 38111 +y +SDict begin H.S end + -30 38111 a -30 38111 a +SDict begin 18.2 H.A end + -30 38111 a -30 38111 a +SDict begin [ /View [/XYZ H.V] /Dest (6390) cvn H.B /DEST pdfmark end + -30 +38111 a 1916 x FU(The)445 b(package)g(system)f(will)h(e)-23 +b(xtract)444 b(this)h(\002le)f(in)h(the)g(root)g(directory)f(to)h +(install)f(it.)h(An)g(entry)-30 42042 y(in)386 b(the)h(package)f +(database)g(will)g(be)h(created)f(that)g(contains)g(the)h(contents)e +(of)i(this)f(package)g(so)-30 44057 y(that)h(it)g(can)h(be)f(upgraded)g +(or)g(remo)-23 b(v)g(ed)387 b(later)-85 b(.)-30 45167 +y +SDict begin H.S end + -30 45167 a -30 45167 a +SDict begin 18.2 H.A end + -30 45167 a -30 45167 a +SDict begin [ /View [/XYZ H.V] /Dest (6391) cvn H.B /DEST pdfmark end + -30 +45167 a 1679 x FU(Notice)333 b(the)6661 46846 y +SDict begin H.S end + 6661 +46846 a 6661 46846 a +SDict begin 18.2 H.A end + 6661 46846 a 6661 46846 a +SDict begin [ /View [/XYZ H.V] /Dest (6392) cvn H.B /DEST pdfmark end + 6661 46846 +a FQ(install/)328 b FU(subdirectory)-101 b(.)333 b(This)g(is)f(a)h +(special)g(directory)g(that)f(can)h(contain)g(a)g(postin-)-30 +48861 y(stallation)389 b(script)g(called)13966 48861 +y +SDict begin H.S end + 13966 48861 a 13966 48861 a +SDict begin 18.2 H.A end + 13966 48861 a 13966 48861 +a +SDict begin [ /View [/XYZ H.V] /Dest (6393) cvn H.B /DEST pdfmark end + 13966 48861 a FQ(doinst.sh)p FU(.)384 b(If)390 b(the)f(package)h +(system)f(\002nds)g(this)g(\002le,)g(it)g(will)g(e)-23 +b(x)g(ecute)-30 50876 y(it)387 b(after)h(installing)e(the)h(package.) +-30 51986 y +SDict begin H.S end + -30 51986 a -30 51986 a +SDict begin 18.2 H.A end + -30 51986 a -30 51986 +a +SDict begin [ /View [/XYZ H.V] /Dest (6394) cvn H.B /DEST pdfmark end + -30 51986 a 1679 x FU(Other)342 b(scripts)g(can)h(be)f(embedded)g(in) +h(the)f(package,)h(b)-31 b(ut)342 b(those)g(are)h(discussed)f(more)g +(in)g(detail)-30 55680 y(in)p 0 TeXcolorgray 1563 55680 +a +SDict begin H.S end + 1563 55680 a FU(Section)387 b(18.3.2)10474 55680 y +SDict begin 18.2 H.L end + +10474 55680 a 10474 55680 a +SDict begin [ /Subtype /Link /Dest (PACKAGE-MANAGEMENT-MAKEPKG) cvn +/H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 10474 55680 a Black 388 w +FU(belo)-39 b(w)-101 b(.)-30 56470 y +SDict begin H.S end + -30 56470 a -30 +56470 a +SDict begin 18.2 H.A end + -30 56470 a -30 56470 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES) +cvn H.B /DEST pdfmark end + -30 56470 a 6109 x FL(18.2)620 +b(P)-67 b(ac)-45 b(ka)-22 b(g)22 b(e)620 b(Utilities)-30 +64192 y +SDict begin H.S end + -30 64192 a -30 64192 a +SDict begin 18.2 H.A end + -30 64192 a -30 64192 +a +SDict begin [ /View [/XYZ H.V] /Dest (6398) cvn H.B /DEST pdfmark end + -30 64192 a 1518 x FU(There)535 b(are)g(four)g(main)f(utilities)f +(for)i(package)g(management.)f(The)-23 b(y)534 b(perform)h +(installation,)-30 67724 y(remo)-23 b(v)-39 b(al,)387 +b(and)h(upgrades)f(of)g(packages.)-30 68060 y +SDict begin H.S end + -30 68060 +a -30 68060 a +SDict begin 18.2 H.A end + -30 68060 a -30 68060 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-PKGTOOL) +cvn H.B /DEST pdfmark end + -30 68060 a Black +5612 x FR(216)p Black eop end +%%Page: 217 239 +TeXDict begin 217 238 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.217) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6425) cvn H.B /DEST pdfmark end + -30 -2687 a 23991 -1636 a FR(Chapter)386 +b(18)h(Slac)-31 b(kwar)-57 b(e)387 b(P)-124 b(ac)-31 +b(ka)-15 b(g)g(e)386 b(Mana)-15 b(g)g(ement)p Black -30 +3821 a FG(pkgtool)-30 4235 y +SDict begin H.S end + -30 4235 a -30 4235 a +SDict begin 18.2 H.A end + -30 +4235 a -30 4235 a +SDict begin [ /View [/XYZ H.V] /Dest (6401) cvn H.B /DEST pdfmark end + -30 4235 a -30 4235 a +SDict begin H.S end + -30 4235 a -30 +4235 a +SDict begin 18.2 H.A end + -30 4235 a -30 4235 a +SDict begin [ /View [/XYZ H.V] /Dest (6403) cvn H.B /DEST pdfmark end + -30 4235 a -30 4235 a +SDict begin H.S end + -30 +4235 a -30 4235 a +SDict begin 18.2 H.A end + -30 4235 a -30 4235 a +SDict begin [ /View [/XYZ H.V] /Dest (6406) cvn H.B /DEST pdfmark end + -30 4235 a -30 +5164 a +SDict begin H.S end + -30 5164 a -30 5164 a +SDict begin 18.2 H.A end + -30 5164 a -30 5164 a +SDict begin [ /View [/XYZ H.V] /Dest (6409) cvn H.B /DEST pdfmark end + -30 +5164 a -30 5164 a +SDict begin H.S end + -30 5164 a -30 5164 a +SDict begin 18.2 H.A end + -30 5164 a -30 +5164 a +SDict begin [ /View [/XYZ H.V] /Dest (6410) cvn H.B /DEST pdfmark end + -30 5164 a 1601 x FP(pkgtool)p FU(\(8\))431 b(is)h(a)h(menu-dri) +-39 b(v)-23 b(en)431 b(program)h(that)g(allo)-39 b(ws)431 +b(installation)g(and)h(remo)-23 b(v)-39 b(al)432 b(of)g(pack-)-30 +8780 y(ages.)388 b(The)f(main)g(menu)g(is)g(sho)-39 b(wn)387 +b(in)p 0 TeXcolorgray 21023 8780 a +SDict begin H.S end + 21023 8780 a FU(Figure)g(18-1)28298 +8780 y +SDict begin 18.2 H.L end + 28298 8780 a 28298 8780 a +SDict begin [ /Subtype /Link /Dest (PKGTOOL-MAIN-MENU) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 28298 8780 a Black FU(.)-30 +9115 y +SDict begin H.S end + -30 9115 a -30 9115 a +SDict begin 18.2 H.A end + -30 9115 a -30 9115 a +SDict begin [ /View [/XYZ H.V] /Dest (PKGTOOL-MAIN-MENU) cvn H.B /DEST +pdfmark end + -30 +9115 a 4004 x FX(Figur)-28 b(e)387 b(18-1.)h(Pkgtool')-57 +b(s)386 b(main)g(menu.)-30 14984 y +SDict begin H.S end + -30 14984 a -30 14984 +a +SDict begin 18.2 H.A end + -30 14984 a -30 14984 a +SDict begin [ /View [/XYZ H.V] /Dest (6414) cvn H.B /DEST pdfmark end + -30 14984 a -30 39758 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 +39758 a @beginspecial 21 @llx 60 @lly 467 @urx 276 @ury +4460 @rwi @setspecial +%%BeginDocument: package-management/pkgtool.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 467 276 + +/Outterbox +{ newpath moveto +0 208 rlineto +75 0 rlineto +23 61 moveto +443 0 rlineto +0 208 rlineto +-90 0 rlineto +23 87 moveto +443 0 rlineto +closepath } def + +/Innerbox +{ moveto +420 0 rlineto +0 105 rlineto +-420 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 13 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +100 266 TitleFont(Slackware Package Tool (pkgtool version 9.1.0)) show + +34 245 PanelFont (Welcome to the Slackware package tool.) show +34 220 PanelFont (Which option would you like?) show + +74 191 ContentFont (Current) show +74 177 ContentFont (Other) show +74 163 ContentFont (Floppy) show +74 149 ContentFont (Remove) show +74 135 ContentFont (View) show +74 121 ContentFont (Setup) show +74 107 ContentFont (Exit) show + +129 191 ContentFont (Install packages from the current directory) show +129 177 ContentFont (Install packages from some other directory) show +129 163 ContentFont (Install packages from floppy disks) show +129 149 ContentFont (Remove packages that are currently installed) show +129 135 ContentFont (View the list of files contained in a package) show +129 121 ContentFont (Choose Slackware installation scripts to run again) show +129 107 ContentFont (Exit Pkgtool) show + +153 71 ButtonFont (< OK >) show +267 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 39758 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 39758 a -30 41308 a +SDict begin H.S end + -30 +41308 a -30 41308 a +SDict begin 18.2 H.A end + -30 41308 a -30 41308 a +SDict begin [ /View [/XYZ H.V] /Dest (6417) cvn H.B /DEST pdfmark end + -30 41308 +a 2015 x FU(Installation)491 b(is)g(of)-39 b(fered)492 +b(from)f(the)h(current)f(directory)-101 b(,)492 b(another)f(directory) +-101 b(,)492 b(or)g(from)f(\003opp)-15 b(y)-30 45338 +y(disks.)483 b(Simply)g(select)g(the)h(installation)e(method)g(you)i(w) +-15 b(ant)483 b(and)g(pkgtool)g(will)g(search)g(that)-30 +47352 y(location)387 b(for)g(v)-39 b(alid)387 b(packages)h(to)f +(install.)-30 48463 y +SDict begin H.S end + -30 48463 a -30 48463 a +SDict begin 18.2 H.A end + -30 48463 +a -30 48463 a +SDict begin [ /View [/XYZ H.V] /Dest (6418) cvn H.B /DEST pdfmark end + -30 48463 a 1679 x FU(Y)-170 b(ou)387 b(may)g(also)g(vie) +-39 b(w)387 b(a)h(list)e(of)i(installed)e(packages,)i(as)f(sho)-39 +b(wn)387 b(in)p 0 TeXcolorgray 36954 50142 a +SDict begin H.S end + 36954 50142 +a FU(Figure)g(18-2)44229 50142 y +SDict begin 18.2 H.L end + 44229 50142 a 44229 +50142 a +SDict begin [ /Subtype /Link /Dest (PKGTOOL-VIEW-MODE) cvn /H /I /Border +[0 0 0] /Color [1 0 0] H.B /ANN pdfmark end + 44229 50142 a Black FU(.)-30 50477 y +SDict begin H.S end + -30 50477 +a -30 50477 a +SDict begin 18.2 H.A end + -30 50477 a -30 50477 a +SDict begin [ /View [/XYZ H.V] /Dest (PKGTOOL-VIEW-MODE) cvn H.B /DEST +pdfmark end + -30 50477 a Black +49394 73792 a FR(217)p Black eop end +%%Page: 218 240 +TeXDict begin 218 239 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.218) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(18)g(Slac)-31 b(kwar)-57 +b(e)386 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 b(Mana)-15 +b(g)g(ement)p Black -30 3611 a FX(Figur)-28 b(e)387 b(18-2.)h(Pkgtool)e +(view)h(mode)-30 5475 y +SDict begin H.S end + -30 5475 a -30 5475 a +SDict begin 18.2 H.A end + -30 5475 +a -30 5475 a +SDict begin [ /View [/XYZ H.V] /Dest (6422) cvn H.B /DEST pdfmark end + -30 5475 a -30 29695 a + currentpoint currentpoint translate 1 1 scale neg exch neg exch translate + -30 29695 a @beginspecial +21 @llx 60 @lly 425 @urx 271 @ury 4040 @rwi @setspecial +%%BeginDocument: package-management/pkgtool-view.eps +%!PS-Adobe-2.0 EPSF-1.2 +%%BoundingBox: 21 60 425 271 + +/Outterbox +{ newpath moveto +0 208 rlineto +401 0 rlineto +0 -208 rlineto +closepath +23 86 moveto +401 0 rlineto } def + +/Innerbox +{ moveto +379 0 rlineto +0 142 rlineto +-379 0 rlineto +closepath} def + +/TitleFont +{ /Helvetica findfont 13 scalefont setfont +moveto } def + +/PanelFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ContentFont +{ /Helvetica findfont 12 scalefont setfont +moveto } def + +/ButtonFont +{ /Helvetica findfont 11 scalefont setfont +moveto } def + +23 61 Outterbox +34 100 Innerbox + +100 266 TitleFont() show + +34 251 PanelFont (Please select the package you wish to view.) show +34 220 PanelFont () show + +42 230 ContentFont (a2ps-4.13b-i386-2) show +42 216 ContentFont (aaa_base-9.1.0-noarch) show +42 202 ContentFont (aalib-1.4rc5-i386-1) show +42 188 ContentFont (abiword-2.0.0-i486-1) show +42 174 ContentFont (acct-6.3.2-i386-1) show +42 160 ContentFont (acme-2.4.0-i486-1) show +42 146 ContentFont (acpid-1.0.2-i486-1) show +42 132 ContentFont (alsa-driver-0.9.6-i48) show +42 118 ContentFont (alsa-lib-0.9.6-i486-1) show +42 104 ContentFont (alsa-oss-0.9.6-i486-1) show + +169 230 ContentFont (a2ps (any to PostScript filter)) show +169 216 ContentFont (aaa_base \(Basic Linux filesystem pac) show +169 202 ContentFont (aalib (ASCII Art library) _1l1vlvlvl) show +169 188 ContentFont (abiword (AbiWord Personal)) show +169 174 ContentFont (acct (process accounting utilities)) show +169 160 ContentFont (acme) show +169 146 ContentFont (acpid (ACPI daemon)) show +169 132 ContentFont (alsa-driver \(Advanced Linux Sound Ar) show +169 118 ContentFont (alsa-lib \(Advanced Linux Sound Archi) show +169 104 ContentFont (alsa-oss \(library/wrapper to use OSS) show + +143 71 ButtonFont (< OK >) show +227 71 ButtonFont (< Cancel >) show + +stroke +showpage +%%EOF + +%%EndDocument + @endspecial -30 29695 a + currentpoint currentpoint translate 1 1 div 1 1 div scale neg exch +neg exch translate + -30 29695 a 3564 x FU(If)373 +b(you)f(w)-15 b(ant)372 b(to)g(remo)-23 b(v)g(e)372 b(packages,)h +(select)g(the)f(remo)-23 b(v)g(e)372 b(option)g(and)g(you)h(will)f(be)g +(presented)-30 35274 y(with)396 b(a)g(checklist)f(of)i(all)f(the)f +(installed)h(packages.)g(Flag)g(the)g(ones)g(you)f(w)-15 +b(ant)396 b(to)g(remo)-23 b(v)g(e)395 b(and)-30 37289 +y(select)387 b(OK.)h FP(pkgtool)f FU(will)f(remo)-23 +b(v)g(e)387 b(them.)-30 37484 y +SDict begin H.S end + -30 37484 a -30 37484 +a +SDict begin 18.2 H.A end + -30 37484 a -30 37484 a +SDict begin [ /View [/XYZ H.V] /Dest (6427) cvn H.B /DEST pdfmark end + -30 37484 a -30 38258 a +SDict begin H.S end + -30 +38258 a -30 38258 a +SDict begin 18.2 H.A end + -30 38258 a -30 38258 a +SDict begin [ /View [/XYZ H.V] /Dest (6430) cvn H.B /DEST pdfmark end + -30 38258 +a 1820 x FU(Some)500 b(users)h(prefer)g(this)f(utility)g(to)h(the)f +(command)g(line)h(utilities.)f(Ho)-39 b(we)g(v)-23 b(er)-62 +b(,)501 b(it)g(should)f(be)-30 42093 y(noted)473 b(that)g(the)g +(command)f(line)h(utilities)f(of)-39 b(fer)474 b(man)-23 +b(y)472 b(more)h(options.)g(Also,)g(the)g(ability)f(to)-30 +44107 y(upgrade)387 b(packages)g(is)h(only)e(of)-39 b(fered)388 +b(through)f(the)g(command)g(line)g(utilities.)-30 45218 +y +SDict begin H.S end + -30 45218 a -30 45218 a +SDict begin 18.2 H.A end + -30 45218 a -30 45218 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-INSTALLPKG) +cvn H.B /DEST pdfmark end + -30 +45218 a 5181 x FG(installpkg)-30 50813 y +SDict begin H.S end + -30 50813 a +-30 50813 a +SDict begin 18.2 H.A end + -30 50813 a -30 50813 a +SDict begin [ /View [/XYZ H.V] /Dest (6433) cvn H.B /DEST pdfmark end + -30 50813 a -30 50813 +a +SDict begin H.S end + -30 50813 a -30 50813 a +SDict begin 18.2 H.A end + -30 50813 a -30 50813 a +SDict begin [ /View [/XYZ H.V] /Dest (6435) cvn H.B /DEST pdfmark end + -30 +50813 a -30 51743 a +SDict begin H.S end + -30 51743 a -30 51743 a +SDict begin 18.2 H.A end + -30 51743 +a -30 51743 a +SDict begin [ /View [/XYZ H.V] /Dest (6438) cvn H.B /DEST pdfmark end + -30 51743 a -30 51743 a +SDict begin H.S end + -30 51743 a -30 +51743 a +SDict begin 18.2 H.A end + -30 51743 a -30 51743 a +SDict begin [ /View [/XYZ H.V] /Dest (6439) cvn H.B /DEST pdfmark end + -30 51743 a 1601 x FP(installpkg)p +FU(\(8\))374 b(handles)h(installation)f(of)i(ne)-39 b(w)376 +b(packages)f(on)g(the)g(system.)g(The)h(syntax)f(is)g(as)-30 +55359 y(follo)-39 b(ws:)-30 56924 y +SDict begin H.S end + -30 56924 a -30 56924 +a +SDict begin 14.56 H.A end + -30 56924 a -30 56924 a +SDict begin [ /View [/XYZ H.V] /Dest (6440) cvn H.B /DEST pdfmark end + -30 56924 a -30 56924 a +SDict begin H.S end + -30 +56924 a -30 56924 a +SDict begin 14.56 H.A end + -30 56924 a -30 56924 a +SDict begin [ /View [/XYZ H.V] /Dest (6441) cvn H.B /DEST pdfmark end + -30 56924 +a 1596 x FJ(#)1309 58520 y +SDict begin H.S end + 1309 58520 a 1309 58520 a +SDict begin 14.56 H.A end + +1309 58520 a 1309 58520 a +SDict begin [ /View [/XYZ H.V] /Dest (6442) cvn H.B /DEST pdfmark end + 1309 58520 a FH(installpkg)743 +b(option)g(package_name)-30 60238 y +SDict begin H.S end + -30 60238 a -30 60238 +a +SDict begin 18.2 H.A end + -30 60238 a -30 60238 a +SDict begin [ /View [/XYZ H.V] /Dest (6443) cvn H.B /DEST pdfmark end + -30 60238 a 1846 x FU(Three)388 +b(options)e(are)i(pro)-23 b(vided)386 b(for)19270 62084 +y +SDict begin H.S end + 19270 62084 a 19270 62084 a +SDict begin 18.2 H.A end + 19270 62084 a 19270 62084 +a +SDict begin [ /View [/XYZ H.V] /Dest (6444) cvn H.B /DEST pdfmark end + 19270 62084 a FP(installpkg)p FU(.)h(Only)g(one)g(option)g(can)g(be)h +(used)f(at)g(a)h(time.)p Black -30 73792 a FR(218)p Black +eop end +%%Page: 219 241 +TeXDict begin 219 240 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.219) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 23991 -1636 a FR(Chapter)386 b(18)h(Slac)-31 +b(kwar)-57 b(e)387 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 +b(Mana)-15 b(g)g(ement)p Black -30 3611 a FX(T)-143 b(able)387 +b(18-1.)h FV(installpkg)d FX(Options)-30 5477 y +SDict begin H.S end + -30 5477 +a -30 5477 a +SDict begin 18.2 H.A end + -30 5477 a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (6448) cvn H.B /DEST pdfmark end + -30 5477 a -30 5477 +a +SDict begin H.S end + -30 5477 a -30 5477 a +SDict begin 18.2 H.A end + -30 5477 a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (table.18) cvn H.B /DEST pdfmark +end + -30 5477 +a 1761 x FE(Option)7958 b(Eff)-15 b(ects)p -30 7614 51806 +45 v -30 7614 V -30 9375 a FU(-m)11230 b(Performs)386 +b(a)i(mak)-15 b(epkg)386 b(operation)h(on)g(the)g(current)g(directory) +-101 b(.)-30 11472 y(-w)-15 b(arn)9353 b(Sho)-39 b(ws)386 +b(what)h(w)-15 b(ould)387 b(happen)g(if)g(you)g(installed)g(the)g +(speci\002ed)12922 13486 y(package.)g(This)g(is)g(useful)g(for)h +(production)e(systems)g(so)i(you)f(can)g(see)12922 15501 +y(e)-23 b(xactly)386 b(what)h(w)-15 b(ould)387 b(happen)g(before)g +(installing)f(something.)-30 17598 y(-r)11920 b(Recursi)-39 +b(v)-23 b(ely)386 b(install)h(all)g(packages)g(in)g(the)g(current)g +(directory)g(and)12922 19612 y(do)-39 b(wn.)387 b(The)g(package)h(name) +f(can)g(use)h(wildcards,)f(which)g(w)-15 b(ould)386 b(be)12922 +21627 y(used)h(as)g(the)g(search)h(mask)f(when)g(recursi)-39 +b(v)-23 b(ely)387 b(installing.)-30 23512 y +SDict begin H.S end + -30 23512 +a -30 23512 a +SDict begin 18.2 H.A end + -30 23512 a -30 23512 a +SDict begin [ /View [/XYZ H.V] /Dest (6465) cvn H.B /DEST pdfmark end + -30 23512 a 1683 +x FU(If)361 b(you)g(pass)g(the)9334 25195 y +SDict begin H.S end + 9334 25195 +a 9334 25195 a +SDict begin 18.2 H.A end + 9334 25195 a 9334 25195 a +SDict begin [ /View [/XYZ H.V] /Dest (6466) cvn H.B /DEST pdfmark end + 9334 25195 a +FP(ROOT)f FU(en)-62 b(vironment)360 b(v)-39 b(ariable)361 +b(before)30436 25195 y +SDict begin H.S end + 30436 25195 a 30436 25195 a +SDict begin 18.2 H.A end + 30436 +25195 a 30436 25195 a +SDict begin [ /View [/XYZ H.V] /Dest (6467) cvn H.B /DEST pdfmark end + 30436 25195 a FP(installpkg)p FU(,)f(that)h(path) +g(will)f(be)h(used)-30 27209 y(for)d(the)f(root)h(directory)-101 +b(.)358 b(This)f(is)g(useful)h(for)f(setting)g(up)h(ne)-39 +b(w)358 b(dri)-39 b(v)-23 b(es)357 b(for)h(your)f(root)h(directory)-101 +b(.)-30 29224 y(The)-23 b(y)387 b(will)g(typically)f(be)i(mounted)e(to) +21384 29224 y +SDict begin H.S end + 21384 29224 a 21384 29224 a +SDict begin 18.2 H.A end + 21384 29224 +a 21384 29224 a +SDict begin [ /View [/XYZ H.V] /Dest (6468) cvn H.B /DEST pdfmark end + 21384 29224 a FQ(/mnt)f FU(or)j(something)e(other)h +(than)39429 29224 y +SDict begin H.S end + 39429 29224 a 39429 29224 a +SDict begin 18.2 H.A end + 39429 +29224 a 39429 29224 a +SDict begin [ /View [/XYZ H.V] /Dest (6469) cvn H.B /DEST pdfmark end + 39429 29224 a FQ(/)p FU(.)-30 30334 +y +SDict begin H.S end + -30 30334 a -30 30334 a +SDict begin 18.2 H.A end + -30 30334 a -30 30334 a +SDict begin [ /View [/XYZ H.V] /Dest (6470) cvn H.B /DEST pdfmark end + -30 +30334 a 1680 x FU(The)428 b(installed)f(package)h(database)f(entry)h +(is)g(stored)f(in)30680 32014 y +SDict begin H.S end + 30680 32014 a 30680 32014 +a +SDict begin 18.2 H.A end + 30680 32014 a 30680 32014 a +SDict begin [ /View [/XYZ H.V] /Dest (6471) cvn H.B /DEST pdfmark end + 30680 32014 a FQ(/var/log/packages)p +FU(.)418 b(The)427 b(entry)h(is)g(re-)-30 34028 y(ally)414 +b(just)f(a)h(plain)f(te)-23 b(xt)413 b(\002le,)h(one)g(for)g(each)g +(package.)g(If)g(the)g(package)f(has)h(a)g(postinstallation)-30 +36043 y(script,)387 b(it)h(is)f(written)f(to)13230 36043 +y +SDict begin H.S end + 13230 36043 a 13230 36043 a +SDict begin 18.2 H.A end + 13230 36043 a 13230 36043 +a +SDict begin [ /View [/XYZ H.V] /Dest (6472) cvn H.B /DEST pdfmark end + 13230 36043 a FQ(/var/log/scripts/)p FU(.)-30 37153 +y +SDict begin H.S end + -30 37153 a -30 37153 a +SDict begin 18.2 H.A end + -30 37153 a -30 37153 a +SDict begin [ /View [/XYZ H.V] /Dest (6473) cvn H.B /DEST pdfmark end + -30 +37153 a 1679 x FU(Y)-170 b(ou)503 b(may)h(specify)g(se)-39 +b(v)-23 b(eral)503 b(packages)h(or)g(use)g(wildcards)f(for)h(the)g +(package)g(name.)g(Be)g(ad-)-30 40847 y(vised)426 b(that)6419 +40847 y +SDict begin H.S end + 6419 40847 a 6419 40847 a +SDict begin 18.2 H.A end + 6419 40847 a 6419 40847 +a +SDict begin [ /View [/XYZ H.V] /Dest (6474) cvn H.B /DEST pdfmark end + 6419 40847 a FP(installpkg)g FU(will)g(not)g(tell)g(you)g(if)h(you)f +(are)h(o)-23 b(v)g(erwriting)425 b(an)i(installed)e(package.)-30 +42862 y(It)j(will)f(simply)f(install)h(right)g(on)g(top)g(of)h(the)f +(old)h(one.)g(If)f(you)h(w)-15 b(ant)426 b(to)i(ensure)f(that)g(old)g +(\002les)-30 44876 y(from)387 b(the)g(pre)-39 b(vious)387 +b(package)h(are)f(safely)h(remo)-23 b(v)g(ed,)386 b(use)31774 +44876 y +SDict begin H.S end + 31774 44876 a 31774 44876 a +SDict begin 18.2 H.A end + 31774 44876 a 31774 +44876 a +SDict begin [ /View [/XYZ H.V] /Dest (6475) cvn H.B /DEST pdfmark end + 31774 44876 a FP(upgradepkg)p FU(.)-30 45987 +y +SDict begin H.S end + -30 45987 a -30 45987 a +SDict begin 18.2 H.A end + -30 45987 a -30 45987 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-REMOVEPKG) +cvn H.B /DEST pdfmark end + -30 +45987 a 5181 x FG(remo)-37 b(vepkg)-30 51582 y +SDict begin H.S end + -30 51582 +a -30 51582 a +SDict begin 18.2 H.A end + -30 51582 a -30 51582 a +SDict begin [ /View [/XYZ H.V] /Dest (6478) cvn H.B /DEST pdfmark end + -30 51582 a -30 +51582 a +SDict begin H.S end + -30 51582 a -30 51582 a +SDict begin 18.2 H.A end + -30 51582 a -30 51582 +a +SDict begin [ /View [/XYZ H.V] /Dest (6481) cvn H.B /DEST pdfmark end + -30 51582 a -30 52512 a +SDict begin H.S end + -30 52512 a -30 52512 a +SDict begin 18.2 H.A end + -30 +52512 a -30 52512 a +SDict begin [ /View [/XYZ H.V] /Dest (6483) cvn H.B /DEST pdfmark end + -30 52512 a -30 52512 a +SDict begin H.S end + -30 52512 +a -30 52512 a +SDict begin 18.2 H.A end + -30 52512 a -30 52512 a +SDict begin [ /View [/XYZ H.V] /Dest (6484) cvn H.B /DEST pdfmark end + -30 52512 a 1601 +x FP(removepkg)p FU(\(8\))462 b(handles)h(remo)-23 b(ving)462 +b(installed)g(packages)h(from)g(the)g(system.)g(The)g(syntax)f(is)-30 +56128 y(as)387 b(follo)-39 b(ws:)-30 57693 y +SDict begin H.S end + -30 57693 +a -30 57693 a +SDict begin 14.56 H.A end + -30 57693 a -30 57693 a +SDict begin [ /View [/XYZ H.V] /Dest (6485) cvn H.B /DEST pdfmark end + -30 57693 a -30 +57693 a +SDict begin H.S end + -30 57693 a -30 57693 a +SDict begin 14.56 H.A end + -30 57693 a -30 57693 +a +SDict begin [ /View [/XYZ H.V] /Dest (6486) cvn H.B /DEST pdfmark end + -30 57693 a 1596 x FJ(#)1309 59289 y +SDict begin H.S end + 1309 59289 a 1309 +59289 a +SDict begin 14.56 H.A end + 1309 59289 a 1309 59289 a +SDict begin [ /View [/XYZ H.V] /Dest (6487) cvn H.B /DEST pdfmark end + 1309 59289 a FH(removepkg)743 +b(option)g(package_name)-30 61007 y +SDict begin H.S end + -30 61007 a -30 61007 +a +SDict begin 18.2 H.A end + -30 61007 a -30 61007 a +SDict begin [ /View [/XYZ H.V] /Dest (6488) cvn H.B /DEST pdfmark end + -30 61007 a 1846 x FU(F)-23 +b(our)387 b(options)f(are)i(pro)-23 b(vided)386 b(for)18561 +62853 y +SDict begin H.S end + 18561 62853 a 18561 62853 a +SDict begin 18.2 H.A end + 18561 62853 a 18561 +62853 a +SDict begin [ /View [/XYZ H.V] /Dest (6489) cvn H.B /DEST pdfmark end + 18561 62853 a FP(removepkg)p FU(.)h(Only)f(one)i(option)e(may)h +(be)h(used)f(at)g(a)h(time.)-30 63189 y +SDict begin H.S end + -30 63189 a -30 +63189 a +SDict begin 18.2 H.A end + -30 63189 a -30 63189 a +SDict begin [ /View [/XYZ H.V] /Dest (6490) cvn H.B /DEST pdfmark end + -30 63189 a Black 49451 +73792 a FR(219)p Black eop end +%%Page: 220 242 +TeXDict begin 220 241 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.220) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6541) cvn H.B /DEST pdfmark end + -30 -2687 a 1051 x FR(Chapter)387 +b(18)g(Slac)-31 b(kwar)-57 b(e)386 b(P)-124 b(ac)-31 +b(ka)-15 b(g)g(e)386 b(Mana)-15 b(g)g(ement)p Black -30 +3611 a FX(T)-143 b(able)387 b(18-2.)h FV(remo)-23 b(v)g(epkg)386 +b FX(Options)-30 5477 y +SDict begin H.S end + -30 5477 a -30 5477 a +SDict begin 18.2 H.A end + -30 5477 +a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (6493) cvn H.B /DEST pdfmark end + -30 5477 a -30 5477 a +SDict begin H.S end + -30 5477 a -30 5477 +a +SDict begin 18.2 H.A end + -30 5477 a -30 5477 a +SDict begin [ /View [/XYZ H.V] /Dest (table.19) cvn H.B /DEST pdfmark +end + -30 5477 a 1761 x FE(Option)7958 +b(Eff)-15 b(ects)p -30 7614 51806 45 v -30 7614 V -30 +9375 a FU(-cop)g(y)9438 b(The)387 b(package)g(is)g(copied)g(to)g(the)h +(preserv)-23 b(ed)387 b(packages)g(directory)-101 b(.)12922 +11390 y(This)379 b(creates)h(a)g(tree)g(of)h(the)e(original)h(package)g +(without)f(remo)-23 b(ving)379 b(it.)-30 15498 y(-k)-15 +b(eep)9525 b(Sa)-31 b(v)-23 b(es)386 b(temporary)h(\002les)g(created)g +(during)g(the)g(remo)-23 b(v)-39 b(al.)388 b(Really)e(only)12922 +17512 y(useful)h(for)g(deb)-31 b(ugging)386 b(purposes.)-30 +19609 y(-preserv)-23 b(e)7210 b(The)387 b(package)g(is)g(remo)-23 +b(v)g(ed,)387 b(b)-31 b(ut)387 b(copied)g(to)g(the)h(preserv)-23 +b(ed)387 b(packages)12922 21623 y(directory)f(at)i(the)f(same)g(time.) +-30 23720 y(-w)-15 b(arn)9353 b(Sho)-39 b(ws)386 b(what)h(w)-15 +b(ould)387 b(happen)g(if)g(you)g(remo)-23 b(v)g(ed)387 +b(the)g(package.)-30 25605 y +SDict begin H.S end + -30 25605 a -30 25605 a +SDict begin 18.2 H.A end + +-30 25605 a -30 25605 a +SDict begin [ /View [/XYZ H.V] /Dest (6513) cvn H.B /DEST pdfmark end + -30 25605 a 1683 x FU(If)419 +b(you)e(pass)h(the)9562 27288 y +SDict begin H.S end + 9562 27288 a 9562 27288 +a +SDict begin 18.2 H.A end + 9562 27288 a 9562 27288 a +SDict begin [ /View [/XYZ H.V] /Dest (6514) cvn H.B /DEST pdfmark end + 9562 27288 a FP(ROOT)g FU(en)-62 +b(vironment)417 b(v)-39 b(ariable)419 b(before)30894 +27288 y +SDict begin H.S end + 30894 27288 a 30894 27288 a +SDict begin 18.2 H.A end + 30894 27288 a 30894 +27288 a +SDict begin [ /View [/XYZ H.V] /Dest (6515) cvn H.B /DEST pdfmark end + 30894 27288 a FP(removepkg)p FU(,)f(that)f(path)h(will)g(be)g +(used)-30 29302 y(for)358 b(the)f(root)h(directory)-101 +b(.)358 b(This)f(is)g(useful)h(for)f(setting)g(up)h(ne)-39 +b(w)358 b(dri)-39 b(v)-23 b(es)357 b(for)h(your)f(root)h(directory)-101 +b(.)-30 31317 y(The)-23 b(y)387 b(will)g(typically)f(be)i(mounted)e(to) +21384 31317 y +SDict begin H.S end + 21384 31317 a 21384 31317 a +SDict begin 18.2 H.A end + 21384 31317 +a 21384 31317 a +SDict begin [ /View [/XYZ H.V] /Dest (6516) cvn H.B /DEST pdfmark end + 21384 31317 a FQ(/mnt)f FU(or)j(something)e(other)h +(than)39429 31317 y +SDict begin H.S end + 39429 31317 a 39429 31317 a +SDict begin 18.2 H.A end + 39429 +31317 a 39429 31317 a +SDict begin [ /View [/XYZ H.V] /Dest (6517) cvn H.B /DEST pdfmark end + 39429 31317 a FQ(/)p FU(.)-30 32427 +y +SDict begin H.S end + -30 32427 a -30 32427 a +SDict begin 18.2 H.A end + -30 32427 a -30 32427 a +SDict begin [ /View [/XYZ H.V] /Dest (6518) cvn H.B /DEST pdfmark end + -30 +32427 a -30 32427 a +SDict begin H.S end + -30 32427 a -30 32427 a +SDict begin 18.2 H.A end + -30 32427 +a -30 32427 a +SDict begin [ /View [/XYZ H.V] /Dest (6519) cvn H.B /DEST pdfmark end + -30 32427 a 1680 x FP(removepkg)534 b FU(looks)g(at)h +(the)g(other)f(installed)g(packages)h(and)f(only)h(remo)-23 +b(v)g(es)534 b(\002les)g(unique)g(to)-30 36121 y(the)394 +b(package)g(you)f(specify)-101 b(.)394 b(It)g(will)f(also)h(scan)f(the) +h(postinstallation)e(script)h(for)h(the)g(speci\002ed)-30 +38136 y(package)387 b(and)h(remo)-23 b(v)g(e)386 b(an)-23 +b(y)387 b(symbolic)g(links)f(that)h(were)h(created)f(by)h(it.)-30 +39246 y +SDict begin H.S end + -30 39246 a -30 39246 a +SDict begin 18.2 H.A end + -30 39246 a -30 39246 +a +SDict begin [ /View [/XYZ H.V] /Dest (6520) cvn H.B /DEST pdfmark end + -30 39246 a 1679 x FU(During)329 b(the)h(remo)-23 b(v)-39 +b(al)329 b(process,)h(a)g(status)e(report)i(is)f(displayed.)h(After)f +(the)h(remo)-23 b(v)-39 b(al,)329 b(the)h(pack-)-30 42940 +y(age)607 b(database)f(entry)h(is)f(mo)-23 b(v)g(ed)606 +b(to)20693 42940 y +SDict begin H.S end + 20693 42940 a 20693 42940 a +SDict begin 18.2 H.A end + 20693 +42940 a 20693 42940 a +SDict begin [ /View [/XYZ H.V] /Dest (6521) cvn H.B /DEST pdfmark end + 20693 42940 a FQ(/var/log/removed_packages)591 +b FU(and)606 b(the)h(postinstallation)-30 44955 y(script)387 +b(is)g(mo)-23 b(v)g(ed)386 b(to)11375 44955 y +SDict begin H.S end + 11375 44955 +a 11375 44955 a +SDict begin 18.2 H.A end + 11375 44955 a 11375 44955 a +SDict begin [ /View [/XYZ H.V] /Dest (6522) cvn H.B /DEST pdfmark end + 11375 44955 +a FQ(/var/log/removed)p FU(_scripts.)-30 46065 y +SDict begin H.S end + -30 +46065 a -30 46065 a +SDict begin 18.2 H.A end + -30 46065 a -30 46065 a +SDict begin [ /View [/XYZ H.V] /Dest (6523) cvn H.B /DEST pdfmark end + -30 46065 +a 1679 x FU(Just)421 b(as)h(with)7693 47744 y +SDict begin H.S end + 7693 47744 +a 7693 47744 a +SDict begin 18.2 H.A end + 7693 47744 a 7693 47744 a +SDict begin [ /View [/XYZ H.V] /Dest (6524) cvn H.B /DEST pdfmark end + 7693 47744 a +FP(installpkg)p FU(,)f(you)g(can)g(specify)h(se)-39 b(v)-23 +b(eral)421 b(packages)h(or)f(use)g(wildcards)g(for)h(the)-30 +49759 y(package)387 b(name.)-30 50869 y +SDict begin H.S end + -30 50869 a -30 +50869 a +SDict begin 18.2 H.A end + -30 50869 a -30 50869 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-UPGRADEPKG) +cvn H.B /DEST pdfmark end + -30 50869 a 5182 x FG(upgradepkg)-30 +56465 y +SDict begin H.S end + -30 56465 a -30 56465 a +SDict begin 18.2 H.A end + -30 56465 a -30 56465 +a +SDict begin [ /View [/XYZ H.V] /Dest (6527) cvn H.B /DEST pdfmark end + -30 56465 a -30 56465 a +SDict begin H.S end + -30 56465 a -30 56465 a +SDict begin 18.2 H.A end + -30 +56465 a -30 56465 a +SDict begin [ /View [/XYZ H.V] /Dest (6530) cvn H.B /DEST pdfmark end + -30 56465 a -30 57395 a +SDict begin H.S end + -30 57395 +a -30 57395 a +SDict begin 18.2 H.A end + -30 57395 a -30 57395 a +SDict begin [ /View [/XYZ H.V] /Dest (6532) cvn H.B /DEST pdfmark end + -30 57395 a -30 +57395 a +SDict begin H.S end + -30 57395 a -30 57395 a +SDict begin 18.2 H.A end + -30 57395 a -30 57395 +a +SDict begin [ /View [/XYZ H.V] /Dest (6533) cvn H.B /DEST pdfmark end + -30 57395 a 1600 x FP(upgradepkg)p FU(\(8\))501 b(will)g(upgrade)g +(an)h(installed)f(Slackw)-15 b(are)501 b(package.)h(The)g(syntax)f(is)g +(as)h(fol-)-30 61010 y(lo)-39 b(ws:)-30 62575 y +SDict begin H.S end + -30 62575 +a -30 62575 a +SDict begin 14.56 H.A end + -30 62575 a -30 62575 a +SDict begin [ /View [/XYZ H.V] /Dest (6534) cvn H.B /DEST pdfmark end + -30 62575 a -30 +62575 a +SDict begin H.S end + -30 62575 a -30 62575 a +SDict begin 14.56 H.A end + -30 62575 a -30 62575 +a +SDict begin [ /View [/XYZ H.V] /Dest (6535) cvn H.B /DEST pdfmark end + -30 62575 a 1597 x FJ(#)1309 64172 y +SDict begin H.S end + 1309 64172 a 1309 +64172 a +SDict begin 14.56 H.A end + 1309 64172 a 1309 64172 a +SDict begin [ /View [/XYZ H.V] /Dest (6536) cvn H.B /DEST pdfmark end + 1309 64172 a FH(upgradepkg)743 +b(package_name)-30 65889 y +SDict begin H.S end + -30 65889 a -30 65889 a +SDict begin 18.2 H.A end + -30 +65889 a -30 65889 a +SDict begin [ /View [/XYZ H.V] /Dest (6537) cvn H.B /DEST pdfmark end + -30 65889 a 1847 x FU(or)p Black +-30 73792 a FR(220)p Black eop end +%%Page: 221 243 +TeXDict begin 221 242 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.221) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 23991 -1636 a FR(Chapter)386 b(18)h(Slac)-31 +b(kwar)-57 b(e)387 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 +b(Mana)-15 b(g)g(ement)p Black -30 2504 a +SDict begin H.S end + -30 2504 a +-30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (6538) cvn H.B /DEST pdfmark end + -30 2504 a -30 2504 +a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (6539) cvn H.B /DEST pdfmark end + -30 2504 +a 1107 x FJ(#)1309 3611 y +SDict begin H.S end + 1309 3611 a 1309 3611 a +SDict begin 14.56 H.A end + 1309 +3611 a 1309 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (6540) cvn H.B /DEST pdfmark end + 1309 3611 a FH(upgradepkg)743 b +(old_package_name\045new_package_name)-30 7176 y FP(upgradepkg)553 +b FU(w)-15 b(orks)554 b(by)g(\002rst)g(installing)f(the)h(ne)-39 +b(w)554 b(package)h(and)f(then)g(remo)-23 b(ving)553 +b(the)h(old)-30 9190 y(package)324 b(so)f(that)g(old)g(\002les)g(are)g +(no)g(longer)h(around)f(on)g(the)g(system.)g(If)h(the)f(upgraded)g +(package)-30 11205 y(name)457 b(has)g(changed,)h(use)f(the)g(percent)g +(sign)f(syntax)h(to)g(specify)g(the)g(old)g(package)g(\(the)g(one)-30 +13220 y(that)387 b(is)g(installed\))g(and)g(the)g(ne)-39 +b(w)388 b(package)f(\(the)g(one)h(you)f(are)g(upgrading)g(it)g(to\).) +-30 14330 y +SDict begin H.S end + -30 14330 a -30 14330 a +SDict begin 18.2 H.A end + -30 14330 a -30 14330 +a +SDict begin [ /View [/XYZ H.V] /Dest (6543) cvn H.B /DEST pdfmark end + -30 14330 a 1679 x FU(If)361 b(you)g(pass)g(the)9334 +16009 y +SDict begin H.S end + 9334 16009 a 9334 16009 a +SDict begin 18.2 H.A end + 9334 16009 a 9334 16009 +a +SDict begin [ /View [/XYZ H.V] /Dest (6544) cvn H.B /DEST pdfmark end + 9334 16009 a FP(ROOT)f FU(en)-62 b(vironment)360 b(v)-39 +b(ariable)361 b(before)30436 16009 y +SDict begin H.S end + 30436 16009 a 30436 +16009 a +SDict begin 18.2 H.A end + 30436 16009 a 30436 16009 a +SDict begin [ /View [/XYZ H.V] /Dest (6545) cvn H.B /DEST pdfmark end + 30436 16009 a FP(upgradepkg)p +FU(,)f(that)h(path)g(will)f(be)h(used)-30 18024 y(for)d(the)f(root)h +(directory)-101 b(.)358 b(This)f(is)g(useful)h(for)f(setting)g(up)h(ne) +-39 b(w)358 b(dri)-39 b(v)-23 b(es)357 b(for)h(your)f(root)h(directory) +-101 b(.)-30 20038 y(The)-23 b(y)387 b(will)g(typically)f(be)i(mounted) +e(to)21384 20038 y +SDict begin H.S end + 21384 20038 a 21384 20038 a +SDict begin 18.2 H.A end + 21384 +20038 a 21384 20038 a +SDict begin [ /View [/XYZ H.V] /Dest (6546) cvn H.B /DEST pdfmark end + 21384 20038 a FQ(/mnt)f FU(or)j(something)e +(other)h(than)39429 20038 y +SDict begin H.S end + 39429 20038 a 39429 20038 +a +SDict begin 18.2 H.A end + 39429 20038 a 39429 20038 a +SDict begin [ /View [/XYZ H.V] /Dest (6547) cvn H.B /DEST pdfmark end + 39429 20038 a FQ(/)p FU(.)-30 +21149 y +SDict begin H.S end + -30 21149 a -30 21149 a +SDict begin 18.2 H.A end + -30 21149 a -30 21149 +a +SDict begin [ /View [/XYZ H.V] /Dest (6548) cvn H.B /DEST pdfmark end + -30 21149 a -30 21149 a +SDict begin H.S end + -30 21149 a -30 21149 a +SDict begin 18.2 H.A end + -30 +21149 a -30 21149 a +SDict begin [ /View [/XYZ H.V] /Dest (6549) cvn H.B /DEST pdfmark end + -30 21149 a 1679 x FP(upgradepkg)458 +b FU(is)g(not)h(\003a)-23 b(wless.)458 b(Y)-170 b(ou)458 +b(should)h(al)-15 b(w)g(ays)457 b(back)i(up)g(your)f(con\002guration)g +(\002les.)h(If)-30 24843 y(the)-23 b(y)409 b(get)f(remo)-23 +b(v)g(ed)408 b(or)h(o)-23 b(v)g(erwritten,)408 b(you')-15 +b(ll)408 b(w)-15 b(ant)408 b(a)i(cop)-15 b(y)408 b(of)h(the)f +(originals)g(for)h(an)-23 b(y)409 b(needed)-30 26857 +y(repair)388 b(w)-15 b(ork.)-30 27968 y +SDict begin H.S end + -30 27968 a -30 +27968 a +SDict begin 18.2 H.A end + -30 27968 a -30 27968 a +SDict begin [ /View [/XYZ H.V] /Dest (6550) cvn H.B /DEST pdfmark end + -30 27968 a 1679 x FU(Just)522 +b(as)h(with)7996 29647 y +SDict begin H.S end + 7996 29647 a 7996 29647 a +SDict begin 18.2 H.A end + 7996 +29647 a 7996 29647 a +SDict begin [ /View [/XYZ H.V] /Dest (6551) cvn H.B /DEST pdfmark end + 7996 29647 a FP(installpkg)f FU(and)18719 +29647 y +SDict begin H.S end + 18719 29647 a 18719 29647 a +SDict begin 18.2 H.A end + 18719 29647 a 18719 +29647 a +SDict begin [ /View [/XYZ H.V] /Dest (6552) cvn H.B /DEST pdfmark end + 18719 29647 a FP(removepkg)p FU(,)g(you)h(can)f(specify)h(se) +-39 b(v)-23 b(eral)523 b(packages)f(or)h(use)-30 31661 +y(wildcards)387 b(for)g(the)g(package)h(name.)-30 32772 +y +SDict begin H.S end + -30 32772 a -30 32772 a +SDict begin 18.2 H.A end + -30 32772 a -30 32772 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-RPM) +cvn H.B /DEST pdfmark end + -30 +32772 a 5181 x FF(rpm2tgz)155 b FG(/)p FF(rpm2tar)-28 +b(gz)-30 38367 y +SDict begin H.S end + -30 38367 a -30 38367 a +SDict begin 18.2 H.A end + -30 38367 a +-30 38367 a +SDict begin [ /View [/XYZ H.V] /Dest (6557) cvn H.B /DEST pdfmark end + -30 38367 a -30 38367 a +SDict begin H.S end + -30 38367 a -30 38367 +a +SDict begin 18.2 H.A end + -30 38367 a -30 38367 a +SDict begin [ /View [/XYZ H.V] /Dest (6559) cvn H.B /DEST pdfmark end + -30 38367 a -30 39297 a +SDict begin H.S end + -30 +39297 a -30 39297 a +SDict begin 18.2 H.A end + -30 39297 a -30 39297 a +SDict begin [ /View [/XYZ H.V] /Dest (6562) cvn H.B /DEST pdfmark end + -30 39297 +a 1601 x FU(The)336 b(Red)g(Hat)g(P)-23 b(ackage)336 +b(Manager)g(is)g(a)g(popular)g(packaging)g(system)f(a)-31 +b(v)-39 b(ailable)336 b(today)-101 b(.)337 b(Man)-23 +b(y)-30 42913 y(softw)-15 b(are)359 b(distrib)-31 b(utors)358 +b(are)h(of)-39 b(fering)360 b(their)f(products)f(in)i(RPM)e(format.)h +(Since)g(this)g(is)g(not)g(our)-30 44927 y(nati)-39 b(v)-23 +b(e)344 b(format,)g(we)g(do)f(not)h(recommend)f(people)h(rely)g(on)g +(them.)g(Ho)-39 b(we)g(v)-23 b(er)-62 b(,)344 b(some)g(things)f(are)-30 +46942 y(only)387 b(a)-31 b(v)-39 b(ailable)387 b(as)h(an)f(RPM)f(\(e) +-39 b(v)-23 b(en)388 b(the)f(source\).)-30 47277 y +SDict begin H.S end + -30 +47277 a -30 47277 a +SDict begin 18.2 H.A end + -30 47277 a -30 47277 a +SDict begin [ /View [/XYZ H.V] /Dest (6563) cvn H.B /DEST pdfmark end + -30 47277 +a -30 48052 a +SDict begin H.S end + -30 48052 a -30 48052 a +SDict begin 18.2 H.A end + -30 48052 a -30 +48052 a +SDict begin [ /View [/XYZ H.V] /Dest (6566) cvn H.B /DEST pdfmark end + -30 48052 a 1679 x FU(W)-124 b(e)528 b(pro)-23 +b(vide)526 b(a)i(program)f(that)g(will)f(con)-62 b(v)-23 +b(ert)527 b(RPM)g(packages)g(to)g(our)g(nati)-39 b(v)-23 +b(e)44224 49731 y +SDict begin H.S end + 44224 49731 a 44224 49731 a +SDict begin 18.2 H.A end + 44224 49731 +a 44224 49731 a +SDict begin [ /View [/XYZ H.V] /Dest (6567) cvn H.B /DEST pdfmark end + 44224 49731 a FQ(.tgz)525 b FU(format.)-30 +51746 y(This)325 b(will)g(allo)-39 b(w)325 b(you)g(to)g(e)-23 +b(xtract)325 b(the)g(package)h(\(perhaps)f(with)34582 +51746 y +SDict begin H.S end + 34582 51746 a 34582 51746 a +SDict begin 18.2 H.A end + 34582 51746 a 34582 +51746 a +SDict begin [ /View [/XYZ H.V] /Dest (6568) cvn H.B /DEST pdfmark end + 34582 51746 a FP(explodepkg)p FU(\))f(to)h(a)g(temporary)-30 +53761 y(directory)387 b(and)g(e)-23 b(xamine)387 b(its)g(contents.)-30 +54871 y +SDict begin H.S end + -30 54871 a -30 54871 a +SDict begin 18.2 H.A end + -30 54871 a -30 54871 +a +SDict begin [ /View [/XYZ H.V] /Dest (6569) cvn H.B /DEST pdfmark end + -30 54871 a 1679 x FU(The)2791 56550 y +SDict begin H.S end + 2791 56550 a +2791 56550 a +SDict begin 18.2 H.A end + 2791 56550 a 2791 56550 a +SDict begin [ /View [/XYZ H.V] /Dest (6570) cvn H.B /DEST pdfmark end + 2791 56550 a FP(rpm2tgz)409 +b FU(program)h(will)g(create)h(a)g(Slackw)-15 b(are)409 +b(package)i(with)f(a)38701 56550 y +SDict begin H.S end + 38701 56550 a 38701 +56550 a +SDict begin 18.2 H.A end + 38701 56550 a 38701 56550 a +SDict begin [ /View [/XYZ H.V] /Dest (6571) cvn H.B /DEST pdfmark end + 38701 56550 a FQ(.tgz)e +FU(e)-23 b(xtension,)410 b(while)-30 58565 y +SDict begin H.S end + -30 58565 +a -30 58565 a +SDict begin 18.2 H.A end + -30 58565 a -30 58565 a +SDict begin [ /View [/XYZ H.V] /Dest (6572) cvn H.B /DEST pdfmark end + -30 58565 a FQ(rpm2targz)382 +b FU(creates)387 b(an)h(archi)-39 b(v)-23 b(e)387 b(with)g(a)21639 +58565 y +SDict begin H.S end + 21639 58565 a 21639 58565 a +SDict begin 18.2 H.A end + 21639 58565 a 21639 +58565 a +SDict begin [ /View [/XYZ H.V] /Dest (6573) cvn H.B /DEST pdfmark end + 21639 58565 a FQ(.tar.gz)c FU(e)-23 b(xtension.)-30 +61159 y +SDict begin H.S end + -30 61159 a -30 61159 a +SDict begin 18.2 H.A end + -30 61159 a -30 61159 +a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-MAKING-PACKAGES) +cvn H.B /DEST pdfmark end + -30 61159 a Black 49451 73792 a FR(221)p Black eop +end +%%Page: 222 244 +TeXDict begin 222 243 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.222) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(18)g(Slac)-31 b(kwar)-57 +b(e)386 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 b(Mana)-15 +b(g)g(ement)p Black -30 4132 a FL(18.3)620 b(Making)f(P)-67 +b(ac)-45 b(ka)-22 b(g)22 b(es)-30 4629 y +SDict begin H.S end + -30 4629 a -30 +4629 a +SDict begin 18.2 H.A end + -30 4629 a -30 4629 a +SDict begin [ /View [/XYZ H.V] /Dest (6576) cvn H.B /DEST pdfmark end + -30 4629 a -30 5744 a +SDict begin H.S end + -30 +5744 a -30 5744 a +SDict begin 18.2 H.A end + -30 5744 a -30 5744 a +SDict begin [ /View [/XYZ H.V] /Dest (6579) cvn H.B /DEST pdfmark end + -30 5744 a 1519 +x FU(Making)623 b(Slackw)-15 b(are)624 b(packages)g(can)g(be)g(either)g +(easy)g(or)g(dif)-39 b(\002cult.)624 b(There)g(is)g(no)f(speci\002c)-30 +9277 y(method)520 b(for)h(b)-31 b(uilding)520 b(a)h(package.)g(The)g +(only)f(requirement)g(is)h(that)g(the)f(package)h(be)g(a)g(tar)-30 +11292 y(gzipped)387 b(\002le)g(and)g(if)h(there)f(is)g(a)g +(postinstallation)f(script,)h(it)g(must)g(be)38152 11292 +y +SDict begin H.S end + 38152 11292 a 38152 11292 a +SDict begin 18.2 H.A end + 38152 11292 a 38152 11292 +a +SDict begin [ /View [/XYZ H.V] /Dest (6580) cvn H.B /DEST pdfmark end + 38152 11292 a FQ(/install/doinst.sh)p FU(.)-30 12402 +y +SDict begin H.S end + -30 12402 a -30 12402 a +SDict begin 18.2 H.A end + -30 12402 a -30 12402 a +SDict begin [ /View [/XYZ H.V] /Dest (6581) cvn H.B /DEST pdfmark end + -30 +12402 a 1679 x FU(If)437 b(you)f(are)g(interested)g(in)g(making)g +(packages)g(for)g(your)g(system)g(or)g(for)g(a)h(netw)-15 +b(ork)435 b(that)h(you)-30 16096 y(manage,)393 b(you)g(should)f(ha)-31 +b(v)-23 b(e)393 b(a)h(look)e(at)h(the)g(v)-39 b(arious)393 +b(b)-31 b(uild)392 b(scripts)h(in)g(the)g(Slackw)-15 +b(are)392 b(source)-30 18111 y(tree.)c(There)f(are)h(se)-39 +b(v)-23 b(eral)387 b(methods)g(we)g(use)g(for)h(making)e(packages.)-30 +18446 y +SDict begin H.S end + -30 18446 a -30 18446 a +SDict begin 18.2 H.A end + -30 18446 a -30 18446 +a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-EXPLODEPKG) +cvn H.B /DEST pdfmark end + -30 18446 a 5027 x FF(e)-28 b(xplodepkg)-30 23887 y +SDict begin H.S end + +-30 23887 a -30 23887 a +SDict begin 18.2 H.A end + -30 23887 a -30 23887 a +SDict begin [ /View [/XYZ H.V] /Dest (6585) cvn H.B /DEST pdfmark end + -30 23887 +a -30 23887 a +SDict begin H.S end + -30 23887 a -30 23887 a +SDict begin 18.2 H.A end + -30 23887 a -30 +23887 a +SDict begin [ /View [/XYZ H.V] /Dest (6587) cvn H.B /DEST pdfmark end + -30 23887 a -30 24817 a +SDict begin H.S end + -30 24817 a -30 24817 +a +SDict begin 18.2 H.A end + -30 24817 a -30 24817 a +SDict begin [ /View [/XYZ H.V] /Dest (6589) cvn H.B /DEST pdfmark end + -30 24817 a -30 24817 a +SDict begin H.S end + -30 +24817 a -30 24817 a +SDict begin 18.2 H.A end + -30 24817 a -30 24817 a +SDict begin [ /View [/XYZ H.V] /Dest (6590) cvn H.B /DEST pdfmark end + -30 24817 +a 1600 x FP(explodepkg)p FU(\(8\))413 b(will)h(do)g(the)g(same)g(thing) +g(that)26667 26417 y +SDict begin H.S end + 26667 26417 a 26667 26417 a +SDict begin 18.2 H.A end + 26667 +26417 a 26667 26417 a +SDict begin [ /View [/XYZ H.V] /Dest (6591) cvn H.B /DEST pdfmark end + 26667 26417 a FP(installpkg)f FU(does)h(to)g(e) +-23 b(xtract)414 b(the)g(package,)-30 28432 y(b)-31 b(ut)466 +b(it)h(doesn')-28 b(t)466 b(actually)g(install)g(it)g(and)g(it)h +(doesn')-28 b(t)466 b(record)h(it)f(in)g(the)h(packages)f(database.)h +(It)-30 30447 y(simply)386 b(e)-23 b(xtracts)387 b(it)g(to)g(the)h +(current)f(directory)-101 b(.)-30 31557 y +SDict begin H.S end + -30 31557 a +-30 31557 a +SDict begin 18.2 H.A end + -30 31557 a -30 31557 a +SDict begin [ /View [/XYZ H.V] /Dest (6592) cvn H.B /DEST pdfmark end + -30 31557 a 1679 +x FU(If)382 b(you)g(look)f(at)h(the)f(Slackw)-15 b(are)381 +b(source)h(tree,)h(you)e(will)g(see)h(ho)-39 b(w)382 +b(we)g(use)g(this)f(command)g(for)-30 35251 y +SDict begin H.S end + -30 35251 +a -30 35251 a +SDict begin 18.2 H.A end + -30 35251 a -30 35251 a +SDict begin [ /View [/XYZ H.V] /Dest (6593) cvn H.B /DEST pdfmark end + -30 35251 a FU(\223frame)-39 +b(w)-15 b(ork\224)346 b(packages.)g(These)g(packages)g(contain)f(a)i +(sk)-15 b(eleton)345 b(of)h(what)f(the)h(\002nal)g(package)-30 +37266 y(will)373 b(look)g(lik)-15 b(e.)374 b(The)-23 +b(y)373 b(hold)g(all)h(the)f(necessary)h(\002lenames)e +(\(zero-length\),)i(permissions,)f(and)-30 39280 y(o)-39 +b(wnerships.)374 b(The)g(b)-31 b(uild)373 b(script)h(will)f(cat)h(the)g +(package)g(contents)g(from)g(the)f(source)h(directory)-30 +41295 y(to)387 b(the)g(package)h(b)-31 b(uild)386 b(directory)-101 +b(.)-30 42405 y +SDict begin H.S end + -30 42405 a -30 42405 a +SDict begin 18.2 H.A end + -30 42405 a -30 +42405 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-MAKEPKG) cvn +H.B /DEST pdfmark end + -30 42405 a 5182 x FF(makepkg)-30 48001 y +SDict begin H.S end + -30 +48001 a -30 48001 a +SDict begin 18.2 H.A end + -30 48001 a -30 48001 a +SDict begin [ /View [/XYZ H.V] /Dest (6597) cvn H.B /DEST pdfmark end + -30 48001 +a -30 48931 a +SDict begin H.S end + -30 48931 a -30 48931 a +SDict begin 18.2 H.A end + -30 48931 a -30 +48931 a +SDict begin [ /View [/XYZ H.V] /Dest (6599) cvn H.B /DEST pdfmark end + -30 48931 a -30 48931 a +SDict begin H.S end + -30 48931 a -30 48931 +a +SDict begin 18.2 H.A end + -30 48931 a -30 48931 a +SDict begin [ /View [/XYZ H.V] /Dest (6600) cvn H.B /DEST pdfmark end + -30 48931 a 1600 x FP(makepkg)p +FU(\(8\))405 b(will)g(package)g(up)g(the)h(current)f(directory)g(into)g +(a)g(v)-39 b(alid)406 b(Slackw)-15 b(are)404 b(package.)i(It)-30 +52546 y(will)499 b(search)h(the)g(tree)g(for)f(an)-23 +b(y)500 b(symbolic)e(links)i(and)f(add)h(a)g(creation)f(block)h(to)f +(the)h(postin-)-30 54561 y(stallation)534 b(script)g(for)h(creating)g +(them)f(during)g(the)h(package)g(install.)f(It)h(also)f(w)-15 +b(arns)534 b(of)h(an)-23 b(y)-30 56575 y(zero-length)387 +b(\002les)g(in)g(the)g(package)g(tree.)-30 57686 y +SDict begin H.S end + -30 +57686 a -30 57686 a +SDict begin 18.2 H.A end + -30 57686 a -30 57686 a +SDict begin [ /View [/XYZ H.V] /Dest (6601) cvn H.B /DEST pdfmark end + -30 57686 +a 1679 x FU(This)g(command)g(is)g(typically)f(run)h(after)h(you)f(ha) +-31 b(v)-23 b(e)387 b(created)g(your)h(package)f(tree.)-30 +60475 y +SDict begin H.S end + -30 60475 a -30 60475 a +SDict begin 18.2 H.A end + -30 60475 a -30 60475 +a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS) +cvn H.B /DEST pdfmark end + -30 60475 a Black 13317 x FR(222)p Black eop end +%%Page: 223 245 +TeXDict begin 223 244 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.223) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6644) cvn H.B /DEST pdfmark end + -30 -2687 a 23991 -1636 a FR(Chapter)386 +b(18)h(Slac)-31 b(kwar)-57 b(e)387 b(P)-124 b(ac)-31 +b(ka)-15 b(g)g(e)386 b(Mana)-15 b(g)g(ement)p Black -30 +3861 a FG(Slac)-37 b(kBuild)517 b(Scripts)-30 4246 y +SDict begin H.S end + +-30 4246 a -30 4246 a +SDict begin 18.2 H.A end + -30 4246 a -30 4246 a +SDict begin [ /View [/XYZ H.V] /Dest (6604) cvn H.B /DEST pdfmark end + -30 4246 +a -30 5176 a +SDict begin H.S end + -30 5176 a -30 5176 a +SDict begin 18.2 H.A end + -30 5176 a -30 5176 +a +SDict begin [ /View [/XYZ H.V] /Dest (6606) cvn H.B /DEST pdfmark end + -30 5176 a 1629 x FU(Slackw)-15 b(are)431 b(packages)g(are)h(b)-31 +b(uilt)431 b(in)g(man)-23 b(y)431 b(dif)-39 b(ferent)431 +b(w)-15 b(ays)431 b(by)h(necessity)-101 b(.)431 b(Not)g(all)h(softw)-15 +b(are)-30 8820 y(packages)549 b(are)h(written)f(by)h(their)f +(programmers)g(to)g(compile)g(the)g(same)h(w)-15 b(ay)-101 +b(.)549 b(Man)-23 b(y)549 b(ha)-31 b(v)-23 b(e)-30 10835 +y(compile)429 b(time)g(options)f(that)h(are)h(not)f(all)g(included)g +(in)g(the)h(packages)f(Slackw)-15 b(are)428 b(uses.)i(Per)-31 +b(-)-30 12849 y(haps)400 b(you)g(need)g(some)f(of)i(this)e +(functionality;)g(you')-15 b(ll)399 b(need)h(to)g(compile)f(your)h(o) +-39 b(wn)400 b(package)-30 14864 y(then.)443 b(F)-23 +b(ortunately)440 b(for)j(man)-23 b(y)441 b(Slackw)-15 +b(are)442 b(packages,)g(you)g(can)h(\002nd)f(SlackBuild)e(scripts)i(in) +-30 16879 y(the)387 b(package')-85 b(s)387 b(source)h(code.)-30 +17989 y +SDict begin H.S end + -30 17989 a -30 17989 a +SDict begin 18.2 H.A end + -30 17989 a -30 17989 +a +SDict begin [ /View [/XYZ H.V] /Dest (6607) cvn H.B /DEST pdfmark end + -30 17989 a 1679 x FU(So)475 b(what)h(is)f(a)h(SlackBuild)e(script?)i +(SlackBuild)e(scripts)h(are)h(e)-23 b(x)g(ecutable)475 +b(shell)g(scripts)g(that)-30 21683 y(you)602 b(run)g(as)7459 +21683 y +SDict begin H.S end + 7459 21683 a 7459 21683 a +SDict begin 18.2 H.A end + 7459 21683 a 7459 21683 +a +SDict begin [ /View [/XYZ H.V] /Dest (6608) cvn H.B /DEST pdfmark end + 7459 21683 a FP(root)g FU(to)g(con\002gure,)g(compile,)g(and)g +(create)h(Slackw)-15 b(are)602 b(packages.)g(Y)-170 b(ou)602 +b(can)-30 23698 y(freely)426 b(modify)g(these)f(scripts)h(in)g(the)g +(source)g(directory)f(and)h(run)g(them)g(to)g(create)g(your)g(o)-39 +b(wn)-30 25712 y(v)-23 b(ersions)387 b(of)g(the)g(def)-15 +b(ault)387 b(Slackw)-15 b(are)386 b(packages.)-30 28372 +y +SDict begin H.S end + -30 28372 a -30 28372 a +SDict begin 18.2 H.A end + -30 28372 a -30 28372 a +SDict begin [ /View [/XYZ H.V] /Dest (PACKAGE-MANAGEMENT-MAKING-TAGS-AND-TAGFILES) +cvn H.B /DEST pdfmark end + -30 +28372 a 5789 x FL(18.4)620 b(Making)f(T)-179 b(a)-22 +b(gs)620 b(and)f(T)-179 b(a)-22 b(g\002les)619 b(\(f)-45 +b(or)620 b(setup\))-30 34658 y +SDict begin H.S end + -30 34658 a -30 34658 +a +SDict begin 18.2 H.A end + -30 34658 a -30 34658 a +SDict begin [ /View [/XYZ H.V] /Dest (6611) cvn H.B /DEST pdfmark end + -30 34658 a -30 34658 a +SDict begin H.S end + -30 +34658 a -30 34658 a +SDict begin 18.2 H.A end + -30 34658 a -30 34658 a +SDict begin [ /View [/XYZ H.V] /Dest (6613) cvn H.B /DEST pdfmark end + -30 34658 +a -30 34658 a +SDict begin H.S end + -30 34658 a -30 34658 a +SDict begin 18.2 H.A end + -30 34658 a -30 +34658 a +SDict begin [ /View [/XYZ H.V] /Dest (6615) cvn H.B /DEST pdfmark end + -30 34658 a -30 35774 a +SDict begin H.S end + -30 35774 a -30 35774 +a +SDict begin 18.2 H.A end + -30 35774 a -30 35774 a +SDict begin [ /View [/XYZ H.V] /Dest (6618) cvn H.B /DEST pdfmark end + -30 35774 a 1518 x FU(The)385 +b(Slackw)-15 b(are)384 b(setup)h(program)g(handles)f(installation)g(of) +h(the)g(softw)-15 b(are)384 b(packages)h(on)g(your)-30 +39307 y(system.)363 b(There)g(are)g(\002les)f(that)h(tell)f(the)h +(setup)f(program)h(which)g(packages)f(must)g(be)h(installed,)-30 +41321 y(which)495 b(ones)g(are)g(optional,)g(and)g(which)g(ones)g(are)g +(selected)g(by)g(def)-15 b(ault)494 b(by)h(the)g(setup)g(pro-)-30 +43336 y(gram.)-30 44446 y +SDict begin H.S end + -30 44446 a -30 44446 a +SDict begin 18.2 H.A end + -30 +44446 a -30 44446 a +SDict begin [ /View [/XYZ H.V] /Dest (6619) cvn H.B /DEST pdfmark end + -30 44446 a 1679 x FU(A)617 b(tag\002le)f(is)g(in)h +(the)f(\002rst)g(softw)-15 b(are)616 b(series)h(directory)f(and)h(is)f +(called)h(tag\002le.)f(It)h(lists)f(the)-30 48140 y(packages)387 +b(in)g(that)g(particular)g(disk)g(set)g(and)h(their)f(status.)g(The)g +(status)g(can)g(be:)-30 48476 y +SDict begin H.S end + -30 48476 a -30 48476 +a +SDict begin 18.2 H.A end + -30 48476 a -30 48476 a +SDict begin [ /View [/XYZ H.V] /Dest (6620) cvn H.B /DEST pdfmark end + -30 48476 a 4003 x FX(T)-143 +b(able)387 b(18-3.)h(T)-143 b(ag\002le)386 b(Status)h(Options)-30 +54344 y +SDict begin H.S end + -30 54344 a -30 54344 a +SDict begin 18.2 H.A end + -30 54344 a -30 54344 +a +SDict begin [ /View [/XYZ H.V] /Dest (6622) cvn H.B /DEST pdfmark end + -30 54344 a -30 54344 a +SDict begin H.S end + -30 54344 a -30 54344 a +SDict begin 18.2 H.A end + -30 +54344 a -30 54344 a +SDict begin [ /View [/XYZ H.V] /Dest (table.20) cvn H.B /DEST pdfmark +end + -30 54344 a 1761 x FE(Option)7958 +b(Meaning)p -30 56494 51806 45 v -30 56494 V -30 58255 +a FU(ADD)9595 b(The)387 b(package)g(is)g(required)g(for)h(proper)f +(system)g(operation)-30 60351 y(SKP)10109 b(The)387 b(package)g(will)g +(be)g(automatically)f(skipped)-30 62448 y(REC)9937 b(The)387 +b(package)g(is)g(not)g(required,)h(b)-31 b(ut)387 b(recommended)-30 +64544 y(OPT)10024 b(The)387 b(package)g(is)g(optional)-30 +66429 y +SDict begin H.S end + -30 66429 a -30 66429 a +SDict begin 18.2 H.A end + -30 66429 a -30 66429 +a +SDict begin [ /View [/XYZ H.V] /Dest (6642) cvn H.B /DEST pdfmark end + -30 66429 a 1670 x FU(The)g(format)g(is)g(simply:)p +Black 49451 73792 a FR(223)p Black eop end +%%Page: 224 246 +TeXDict begin 224 245 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.224) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(18)g(Slac)-31 b(kwar)-57 +b(e)386 b(P)-124 b(ac)-31 b(ka)-15 b(g)g(e)386 b(Mana)-15 +b(g)g(ement)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 14.56 H.A end + +-30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (6643) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FP(package_name:)742 +b(status)-30 7176 y FU(One)560 b(package)g(per)g(line.)h(The)f +(original)f(tag\002les)g(for)h(each)h(softw)-15 b(are)559 +b(series)h(are)g(stored)g(as)-30 9190 y(tag\002le.or)-28 +b(g.)388 b(So)f(if)g(you)g(mess)g(up)g(yours,)g(you)g(can)h(restore)f +(the)g(original)g(one.)-30 10301 y +SDict begin H.S end + -30 10301 a -30 10301 +a +SDict begin 18.2 H.A end + -30 10301 a -30 10301 a +SDict begin [ /View [/XYZ H.V] /Dest (6645) cvn H.B /DEST pdfmark end + -30 10301 a 1679 x FU(Man)-23 +b(y)473 b(administrators)f(prefer)i(writing)f(their)g(o)-39 +b(wn)474 b(tag\002les)f(and)g(starting)g(the)g(installer)g(and)-30 +13994 y(selecting)5812 13994 y +SDict begin H.S end + 5812 13994 a 5812 13994 +a +SDict begin 18.2 H.A end + 5812 13994 a 5812 13994 a +SDict begin [ /View [/XYZ H.V] /Dest (6646) cvn H.B /DEST pdfmark end + 5812 13994 a FU(\223full\224.)332 +b(The)g(setup)g(program)g(will)f(read)i(the)f(tag\002les)f(and)h +(perform)g(the)g(installation)-30 16009 y(according)431 +b(to)g(their)g(contents.)g(If)g(you)g(use)g(REC)f(or)h(OPT)-115 +b(,)432 b(a)f(dialog)g(box)g(will)f(be)h(presented)-30 +18024 y(to)549 b(the)g(user)g(asking)g(whether)g(or)g(not)g(the)-23 +b(y)548 b(w)-15 b(ant)549 b(a)g(particular)g(package.)h(Therefore,)f +(it)g(is)-30 20038 y(recommended)306 b(that)h(you)f(stick)h(with)f(ADD) +h(and)g(SKP)f(when)g(writing)h(tag\002les)f(for)h(automated)-30 +22053 y(installs.)-30 22843 y +SDict begin H.S end + -30 22843 a -30 22843 a +SDict begin 18.2 H.A end + +-30 22843 a -30 22843 a +SDict begin [ /View [/XYZ H.V] /Dest (6647) cvn H.B /DEST pdfmark end + -30 22843 a 2000 x FU(Just)375 +b(mak)-15 b(e)375 b(sure)h(your)g(tag\002les)f(are)h(written)f(to)g +(the)h(same)g(location)f(as)g(the)h(originals.)f(Or)h(you)-30 +26857 y(can)388 b(specify)f(a)g(custom)g(tag\002le)f(path)i(if)f(you)g +(ha)-31 b(v)-23 b(e)387 b(custom)g(tag\002les.)p Black +-30 73792 a FR(224)p Black eop end +%%Page: 225 247 +TeXDict begin 225 246 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.225) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK) cvn H.B /DEST pdfmark +end + -30 2383 a 2345 x FS(Chapter)894 +b(19)-30 10743 y FO(ZipSlac)-93 b(k)p -30 18316 51806 +56 v -30 18316 a +SDict begin H.S end + -30 18316 a -30 18316 a +SDict begin 18.2 H.A end + -30 18316 a +-30 18316 a +SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-WHAT) cvn H.B /DEST +pdfmark end + -30 18316 a 4852 x FL(19.1)620 b(What)g(is)g(ZipSlac)-45 +b(k?)-30 23630 y +SDict begin H.S end + -30 23630 a -30 23630 a +SDict begin 18.2 H.A end + -30 23630 a +-30 23630 a +SDict begin [ /View [/XYZ H.V] /Dest (6652) cvn H.B /DEST pdfmark end + -30 23630 a -30 23630 a +SDict begin H.S end + -30 23630 a -30 23630 +a +SDict begin 18.2 H.A end + -30 23630 a -30 23630 a +SDict begin [ /View [/XYZ H.V] /Dest (6654) cvn H.B /DEST pdfmark end + -30 23630 a -30 23630 a +SDict begin H.S end + -30 +23630 a -30 23630 a +SDict begin 18.2 H.A end + -30 23630 a -30 23630 a +SDict begin [ /View [/XYZ H.V] /Dest (6656) cvn H.B /DEST pdfmark end + -30 23630 +a -30 24746 a +SDict begin H.S end + -30 24746 a -30 24746 a +SDict begin 18.2 H.A end + -30 24746 a -30 +24746 a +SDict begin [ /View [/XYZ H.V] /Dest (6658) cvn H.B /DEST pdfmark end + -30 24746 a 1552 x FU(ZipSlack)482 b(is)h(a)g(special)g(v)-23 +b(ersion)482 b(of)h(Slackw)-15 b(are)483 b(Linux.)g(It')-85 +b(s)482 b(an)h(already)g(installed)g(cop)-15 b(y)482 +b(of)-30 28313 y(Slackw)-15 b(are)593 b(that')-85 b(s)593 +b(ready)h(to)f(run)h(from)f(your)h(DOS)f(or)h(W)-62 b(indo)-39 +b(ws)593 b(partition.)g(It')-85 b(s)593 b(a)h(basic)-30 +30328 y(installation,)386 b(you)i(do)f(not)g(get)g(e)-39 +b(v)-23 b(erything)387 b(that)g(comes)g(with)f(Slackw)-15 +b(are.)-30 30663 y +SDict begin H.S end + -30 30663 a -30 30663 a +SDict begin 18.2 H.A end + -30 30663 +a -30 30663 a +SDict begin [ /View [/XYZ H.V] /Dest (6659) cvn H.B /DEST pdfmark end + -30 30663 a -30 31438 a +SDict begin H.S end + -30 31438 a -30 +31438 a +SDict begin 18.2 H.A end + -30 31438 a -30 31438 a +SDict begin [ /View [/XYZ H.V] /Dest (6661) cvn H.B /DEST pdfmark end + -30 31438 a 1679 x FU(ZipSlack)554 +b(gets)g(its)g(name)g(from)g(the)g(form)h(it')-85 b(s)553 +b(distrib)-31 b(uted)554 b(in,)g(a)h(big)f(.ZIP)g(\002le.)h(Users)f(of) +-30 35132 y(DOS)422 b(and)h(W)-62 b(indo)-39 b(ws)422 +b(will)g(probably)g(be)h(f)-15 b(amiliar)422 b(with)g(these)h(\002les.) +f(The)-23 b(y)423 b(are)g(compressed)-30 37147 y(archi)-39 +b(v)-23 b(es.)427 b(The)g(ZipSlack)f(archi)-39 b(v)-23 +b(e)426 b(contains)g(e)-39 b(v)-23 b(erything)426 b(you)h(need)f(to)h +(get)f(up)h(and)g(running)-30 39161 y(with)387 b(Slackw)-15 +b(are.)-30 39952 y +SDict begin H.S end + -30 39952 a -30 39952 a +SDict begin 18.2 H.A end + -30 39952 +a -30 39952 a +SDict begin [ /View [/XYZ H.V] /Dest (6662) cvn H.B /DEST pdfmark end + -30 39952 a 1999 x FU(It)467 b(is)f(important)g(to)h +(note)f(that)g(ZipSlack)g(is)h(signi\002cantly)e(dif)-39 +b(ferent)467 b(from)f(a)h(re)-23 b(gular)467 b(instal-)-30 +43965 y(lation.)547 b(Ev)-23 b(en)548 b(though)f(the)-23 +b(y)547 b(function)g(the)g(same)g(and)h(contain)f(the)g(same)h +(programs,)f(their)-30 45980 y(intended)558 b(audiences)h(and)g +(functions)f(dif)-39 b(fer)-85 b(.)559 b(Se)-39 b(v)-23 +b(eral)558 b(adv)-39 b(antages)559 b(and)g(disadv)-39 +b(antages)558 b(of)-30 47995 y(ZipSlack)387 b(are)g(discussed)g(belo) +-39 b(w)-101 b(.)-30 49105 y +SDict begin H.S end + -30 49105 a -30 49105 a +SDict begin 18.2 H.A end + +-30 49105 a -30 49105 a +SDict begin [ /View [/XYZ H.V] /Dest (6663) cvn H.B /DEST pdfmark end + -30 49105 a 1679 x FU(One)449 +b(last)f(thing,)g(you)h(should)f(al)-15 b(w)g(ays)447 +b(re)-39 b(vie)g(w)449 b(the)g(documentation)e(included)h(in)h(the)f +(actual)-30 52799 y(ZipSlack)380 b(directory)-101 b(.)381 +b(It)f(contains)g(the)h(latest)f(information)f(re)-23 +b(g)-8 b(arding)381 b(installation,)e(booting,)-30 54814 +y(and)387 b(general)h(use)f(of)g(the)g(product.)-30 55149 +y +SDict begin H.S end + -30 55149 a -30 55149 a +SDict begin 18.2 H.A end + -30 55149 a -30 55149 a +SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-ADVANTAGES) cvn H.B +/DEST pdfmark end + -30 +55149 a 5027 x FG(Ad)-28 b(v)-37 b(anta)-19 b(g)19 b(es)-30 +60590 y +SDict begin H.S end + -30 60590 a -30 60590 a +SDict begin 18.2 H.A end + -30 60590 a -30 60590 +a +SDict begin [ /View [/XYZ H.V] /Dest (6666) cvn H.B /DEST pdfmark end + -30 60590 a -30 61519 a +SDict begin H.S end + -30 61519 a -30 61519 a +SDict begin 18.2 H.A end + -30 +61519 a -30 61519 a +SDict begin [ /View [/XYZ H.V] /Dest (6667) cvn H.B /DEST pdfmark end + -30 61519 a Black 3461 x FM(\225)p +Black 1520 64980 a +SDict begin H.S end + 1520 64980 a 1520 64980 a +SDict begin 18.2 H.A end + 1520 64980 +a 1520 64980 a +SDict begin [ /View [/XYZ H.V] /Dest (6668) cvn H.B /DEST pdfmark end + 1520 64980 a FU(Does)387 b(not)g(require)g +(repartitioning)f(of)i(your)f(hard)g(disk.)-30 65315 +y +SDict begin H.S end + -30 65315 a -30 65315 a +SDict begin 18.2 H.A end + -30 65315 a -30 65315 a +SDict begin [ /View [/XYZ H.V] /Dest (6669) cvn H.B /DEST pdfmark end + -30 +65315 a Black -30 73672 a +SDict begin H.S end + -30 73672 a -30 73672 a +SDict begin 18.2 H.A end + -30 +73672 a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-DISADVANTAGES) cvn H.B +/DEST pdfmark end + -30 73672 a 49451 74722 a FR(225)p +Black eop end +%%Page: 226 248 +TeXDict begin 226 247 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.226) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Chapter)387 b(19)g(ZipSlac)-31 +b(k)p Black Black -30 3490 a FM(\225)p Black 1520 3490 +a +SDict begin H.S end + 1520 3490 a 1520 3490 a +SDict begin 18.2 H.A end + 1520 3490 a 1520 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (6670) cvn H.B /DEST pdfmark end + 1520 +3490 a FU(Great)526 b(w)-15 b(ay)526 b(to)g(learn)g(Slackw)-15 +b(are)525 b(Linux)h(without)f(stumbling)g(through)g(the)h(installation) +1520 5505 y(process.)-30 6615 y +SDict begin H.S end + -30 6615 a -30 6615 a +SDict begin 18.2 H.A end + +-30 6615 a -30 6615 a +SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-DISADVANTAGES) cvn H.B +/DEST pdfmark end + -30 6615 a 5182 x FG(Disad)-28 +b(v)-37 b(anta)-19 b(g)19 b(es)-30 12211 y +SDict begin H.S end + -30 12211 +a -30 12211 a +SDict begin 18.2 H.A end + -30 12211 a -30 12211 a +SDict begin [ /View [/XYZ H.V] /Dest (6673) cvn H.B /DEST pdfmark end + -30 12211 a -30 +13140 a +SDict begin H.S end + -30 13140 a -30 13140 a +SDict begin 18.2 H.A end + -30 13140 a -30 13140 +a +SDict begin [ /View [/XYZ H.V] /Dest (6674) cvn H.B /DEST pdfmark end + -30 13140 a Black 3461 x FM(\225)p Black 1520 16601 +a +SDict begin H.S end + 1520 16601 a 1520 16601 a +SDict begin 18.2 H.A end + 1520 16601 a 1520 16601 a +SDict begin [ /View [/XYZ H.V] /Dest (6675) cvn H.B /DEST pdfmark end + +1520 16601 a FU(Uses)387 b(the)g(DOS)g(\002lesystem,)g(which)g(is)g +(slo)-39 b(wer)387 b(than)g(a)g(nati)-39 b(v)-23 b(e)387 +b(Linux)g(\002lesystem.)-30 16937 y +SDict begin H.S end + -30 16937 a -30 16937 +a +SDict begin 18.2 H.A end + -30 16937 a -30 16937 a +SDict begin [ /View [/XYZ H.V] /Dest (6676) cvn H.B /DEST pdfmark end + -30 16937 a Black 2454 x FM(\225)p +Black 1520 19391 a +SDict begin H.S end + 1520 19391 a 1520 19391 a +SDict begin 18.2 H.A end + 1520 19391 +a 1520 19391 a +SDict begin [ /View [/XYZ H.V] /Dest (6677) cvn H.B /DEST pdfmark end + 1520 19391 a FU(W)-62 b(ill)387 b(not)g(w)-15 +b(ork)386 b(with)h(W)-62 b(indo)-39 b(ws)387 b(NT)-115 +b(.)-30 21731 y +SDict begin H.S end + -30 21731 a -30 21731 a +SDict begin 18.2 H.A end + -30 21731 a -30 +21731 a +SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-GETTING) cvn H.B /DEST +pdfmark end + -30 21731 a 6109 x FL(19.2)620 b(Getting)g(ZipSlac)-45 +b(k)-30 29452 y +SDict begin H.S end + -30 29452 a -30 29452 a +SDict begin 18.2 H.A end + -30 29452 a -30 +29452 a +SDict begin [ /View [/XYZ H.V] /Dest (6680) cvn H.B /DEST pdfmark end + -30 29452 a 1518 x FU(Obtaining)406 b(ZipSlack)g(is)h(easy)-101 +b(.)408 b(If)f(you)g(ha)-31 b(v)-23 b(e)407 b(purchased)g(the)g(of)-39 +b(\002cial)406 b(Slackw)-15 b(are)407 b(Linux)f(CD)-30 +32985 y(set,)618 b(then)e(you)h(already)g(ha)-31 b(v)-23 +b(e)617 b(ZipSlack.)g(Just)g(\002nd)f(the)h(CD)g(that)g(contains)f(the) +46765 32985 y +SDict begin H.S end + 46765 32985 a 46765 32985 a +SDict begin 18.2 H.A end + 46765 32985 +a 46765 32985 a +SDict begin [ /View [/XYZ H.V] /Dest (6681) cvn H.B /DEST pdfmark end + 46765 32985 a FQ(zipslack)-30 35000 y +FU(directory)493 b(and)g(place)g(it)g(in)h(your)f(CD-R)-62 +b(OM)492 b(dri)-39 b(v)-23 b(e.)493 b(It')-85 b(s)493 +b(usually)g(the)g(third)g(or)g(fourth)g(disc,)-30 37014 +y(b)-31 b(ut)407 b(al)-15 b(w)g(ays)407 b(trust)g(the)g(labels)g(o)-23 +b(v)g(er)407 b(this)g(documentation)g(as)g(the)h(disk)f(it)g(resides)g +(on)h(is)f(prone)-30 39029 y(to)387 b(change.)-30 40139 +y +SDict begin H.S end + -30 40139 a -30 40139 a +SDict begin 18.2 H.A end + -30 40139 a -30 40139 a +SDict begin [ /View [/XYZ H.V] /Dest (6682) cvn H.B /DEST pdfmark end + -30 +40139 a 1680 x FU(If)430 b(you)g(w)-15 b(ant)429 b(to)g(do)-39 +b(wnload)430 b(ZipSlack,)f(you)h(should)f(\002rst)g(visit)g(our)37921 +41819 y +SDict begin H.S end + 37921 41819 a 37921 41819 a +SDict begin 18.2 H.A end + 37921 41819 a 37921 +41819 a +SDict begin [ /View [/XYZ H.V] /Dest (6683) cvn H.B /DEST pdfmark end + 37921 41819 a FU(\223Get)h(Slack\224)f(web)h(page)-30 +43833 y(for)388 b(the)f(latest)g(do)-39 b(wnload)386 +b(information:)-30 44624 y +SDict begin H.S end + -30 44624 a -30 44624 a +SDict begin 18.2 H.A end + -30 +44624 a -30 44624 a +SDict begin [ /View [/XYZ H.V] /Dest (6684) cvn H.B /DEST pdfmark end + -30 44624 a 0 1 0 0 TeXcolorcmyk +-30 46977 a +SDict begin H.S end + -30 46977 a 0 1 0 0 TeXcolorcmyk -354 x FA(http://)n(w)l(w) +l(w)l(.)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)l(g)l +(e)l(t)l(s)l(l)l(a)l(c)l(k)l(/)p 0 1 0 0 TeXcolorcmyk +27476 45516 a +SDict begin H.R end + 27476 45516 a 27476 46623 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (http://www.slackware.com/getslack/) >> /Subtype /Link H.B +/ANN pdfmark end + 27476 46623 +a Black -30 47752 a +SDict begin H.S end + -30 47752 a -30 47752 a +SDict begin 18.2 H.A end + -30 47752 +a -30 47752 a +SDict begin [ /View [/XYZ H.V] /Dest (6686) cvn H.B /DEST pdfmark end + -30 47752 a 1660 x FU(ZipSlack)584 b(is)g(part)g(of)g +(each)h(Slackw)-15 b(are)584 b(release.)h(Locate)f(the)g(release)h(you) +f(w)-15 b(ant,)584 b(and)g(go)-30 51427 y(to)524 b(that)g(directory)f +(on)h(the)g(FTP)f(site.)h(The)g(latest)g(release)g(directory)g(can)g +(be)g(found)f(at)i(this)-30 53442 y(location:)-30 54232 +y +SDict begin H.S end + -30 54232 a -30 54232 a +SDict begin 18.2 H.A end + -30 54232 a -30 54232 a +SDict begin [ /View [/XYZ H.V] /Dest (6687) cvn H.B /DEST pdfmark end + -30 +54232 a 0 1 0 0 TeXcolorcmyk -30 56585 a +SDict begin H.S end + -30 56585 a +0 1 0 0 TeXcolorcmyk -354 x FA(ftp://f)n(t)l(p)l(.)l(s)l(l)l(a)l(c)l(k) +l(w)l(a)l(r)l(e)l(.)l(c)l(o)l(m)l(/)l(p)l(u)l(b)l(/)l(s)l(l)l(a)l(c)l +(k)l(w)l(a)l(r)l(e)l(/)l(s)l(l)l(a)l(c)l(k)l(w)l(a)l(r)l(e)l(/)p +0 1 0 0 TeXcolorcmyk 38802 55124 a +SDict begin H.R end + 38802 55124 a 38802 +56231 a +SDict begin [ /H /I /Border [0 0 0] /Color [0 1 1] /Action << /Subtype +/URI /URI (ftp://ftp.slackware.com/pub/slackware/slackware/) >> /Subtype +/Link H.B /ANN pdfmark end + 38802 56231 a Black -30 57360 a +SDict begin H.S end + -30 57360 a -30 +57360 a +SDict begin 18.2 H.A end + -30 57360 a -30 57360 a +SDict begin [ /View [/XYZ H.V] /Dest (6689) cvn H.B /DEST pdfmark end + -30 57360 a 1661 x FU(Y)-170 +b(ou')-15 b(ll)548 b(\002nd)h(ZipSlack)f(in)h(the)17685 +59021 y +SDict begin H.S end + 17685 59021 a 17685 59021 a +SDict begin 18.2 H.A end + 17685 59021 a 17685 +59021 a +SDict begin [ /View [/XYZ H.V] /Dest (6690) cvn H.B /DEST pdfmark end + 17685 59021 a FQ(/zipslack)543 b FU(subdirectory)-101 +b(.)549 b(ZipSlack)g(is)g(of)-39 b(fered)550 b(as)f(one)g(big)-30 +61035 y +SDict begin H.S end + -30 61035 a -30 61035 a +SDict begin 18.2 H.A end + -30 61035 a -30 61035 +a +SDict begin [ /View [/XYZ H.V] /Dest (6691) cvn H.B /DEST pdfmark end + -30 61035 a FQ(.ZIP)385 b FU(\002le)i(or)g(\003opp)-15 +b(y-sized)386 b(chunks.)h(The)h(chunks)f(are)g(in)g(the)33837 +61035 y +SDict begin H.S end + 33837 61035 a 33837 61035 a +SDict begin 18.2 H.A end + 33837 61035 a 33837 +61035 a +SDict begin [ /View [/XYZ H.V] /Dest (6692) cvn H.B /DEST pdfmark end + 33837 61035 a FQ(/zipslack/split)378 b FU(directory)-101 +b(.)-30 62146 y +SDict begin H.S end + -30 62146 a -30 62146 a +SDict begin 18.2 H.A end + -30 62146 a -30 +62146 a +SDict begin [ /View [/XYZ H.V] /Dest (6693) cvn H.B /DEST pdfmark end + -30 62146 a 1679 x FU(Don')-28 b(t)463 b(stop)f(at)g(just)h +(the)13707 63825 y +SDict begin H.S end + 13707 63825 a 13707 63825 a +SDict begin 18.2 H.A end + 13707 +63825 a 13707 63825 a +SDict begin [ /View [/XYZ H.V] /Dest (6694) cvn H.B /DEST pdfmark end + 13707 63825 a FQ(.ZIP)d FU(\002les.)j(Y)-170 +b(ou)462 b(should)g(also)g(do)-39 b(wnload)463 b(the)f(documentation)f +(\002les)-30 65840 y(and)387 b(an)-23 b(y)387 b(boot)g(images)g(that)g +(appear)h(in)f(the)g(directory)-101 b(.)-30 66175 y +SDict begin H.S end + -30 +66175 a -30 66175 a +SDict begin 18.2 H.A end + -30 66175 a -30 66175 a +SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-INSTALLATION) cvn H.B +/DEST pdfmark end + -30 66175 +a Black 7497 x FR(226)p Black eop end +%%Page: 227 249 +TeXDict begin 227 248 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.227) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 38952 -1636 a FR(Chapter)386 b(19)h(ZipSlac)-31 +b(k)p Black -30 3861 a FG(Installation)-30 3884 y +SDict begin H.S end + -30 +3884 a -30 3884 a +SDict begin 18.2 H.A end + -30 3884 a -30 3884 a +SDict begin [ /View [/XYZ H.V] /Dest (6697) cvn H.B /DEST pdfmark end + -30 3884 a -30 +4814 a +SDict begin H.S end + -30 4814 a -30 4814 a +SDict begin 18.2 H.A end + -30 4814 a -30 4814 a +SDict begin [ /View [/XYZ H.V] /Dest (6699) cvn H.B /DEST pdfmark end + -30 +4814 a 1991 x FU(Once)417 b(you')-77 b(v)-23 b(e)417 +b(do)-39 b(wnloaded)416 b(the)h(necessary)g(components,)g(you')-15 +b(ll)416 b(need)h(to)g(e)-23 b(xtract)417 b(the)49270 +6805 y +SDict begin H.S end + 49270 6805 a 49270 6805 a +SDict begin 18.2 H.A end + 49270 6805 a 49270 6805 +a +SDict begin [ /View [/XYZ H.V] /Dest (6700) cvn H.B /DEST pdfmark end + 49270 6805 a FQ(.ZIP)-30 8820 y FU(\002le.)617 b(Be)g(sure)h(to)f +(use)g(a)g(32-bit)g(unzipper)-85 b(.)617 b(The)g(size)g(and)g +(\002lenames)f(in)h(the)g(archi)-39 b(v)-23 b(e)618 b(are)-30 +10835 y(too)480 b(much)h(for)g(a)f(16-bit)g(unzipper)-85 +b(.)481 b(Examples)f(of)h(32-bit)f(unzippers)g(include)g(W)-62 +b(inZip)480 b(and)-30 12849 y(PKZIP)387 b(for)g(W)-62 +b(indo)-39 b(ws.)-30 13640 y +SDict begin H.S end + -30 13640 a -30 13640 a +SDict begin 18.2 H.A end + +-30 13640 a -30 13640 a +SDict begin [ /View [/XYZ H.V] /Dest (6701) cvn H.B /DEST pdfmark end + -30 13640 a 1999 x FU(ZipSlack)496 +b(is)h(designed)f(to)h(be)g(e)-23 b(xtracted)496 b(directly)h(to)f(the) +h(root)g(directory)f(of)h(a)g(dri)-39 b(v)-23 b(e)497 +b(\(such)-30 17654 y(as)1761 17654 y +SDict begin H.S end + 1761 17654 a 1761 +17654 a +SDict begin 18.2 H.A end + 1761 17654 a 1761 17654 a +SDict begin [ /View [/XYZ H.V] /Dest (6702) cvn H.B /DEST pdfmark end + 1761 17654 a FP(C:)j +FU(or)5540 17654 y +SDict begin H.S end + 5540 17654 a 5540 17654 a +SDict begin 18.2 H.A end + 5540 17654 +a 5540 17654 a +SDict begin [ /View [/XYZ H.V] /Dest (6703) cvn H.B /DEST pdfmark end + 5540 17654 a FP(D:)p FU(\).)g(A)10050 +17654 y +SDict begin H.S end + 10050 17654 a 10050 17654 a +SDict begin 18.2 H.A end + 10050 17654 a 10050 +17654 a +SDict begin [ /View [/XYZ H.V] /Dest (6704) cvn H.B /DEST pdfmark end + 10050 17654 a FQ(\\LINUX)d FU(directory)i(will)h(be)g(created)g +(that)g(contains)f(the)h(actual)g(Slackw)-15 b(are)-30 +19668 y(installation.)306 b(Y)-170 b(ou')-15 b(ll)306 +b(also)h(\002nd)g(the)g(\002les)f(necessary)i(to)f(booting)f(the)h +(system)f(in)h(that)g(directory)-30 21683 y(as)387 b(well.)-30 +22473 y +SDict begin H.S end + -30 22473 a -30 22473 a +SDict begin 18.2 H.A end + -30 22473 a -30 22473 +a +SDict begin [ /View [/XYZ H.V] /Dest (6705) cvn H.B /DEST pdfmark end + -30 22473 a 1999 x FU(After)470 b(you')-77 b(v)-23 +b(e)470 b(e)-23 b(xtracted)469 b(the)h(\002les,)h(you)f(should)f(ha)-31 +b(v)-23 b(e)470 b(a)32214 24472 y +SDict begin H.S end + 32214 24472 a 32214 +24472 a +SDict begin 18.2 H.A end + 32214 24472 a 32214 24472 a +SDict begin [ /View [/XYZ H.V] /Dest (6706) cvn H.B /DEST pdfmark end + 32214 24472 a FQ(\\LINUX)d +FU(directory)j(on)g(the)g(dri)-39 b(v)-23 b(e)470 b(of)-30 +26487 y(your)387 b(choosing)g(\(we')-15 b(ll)386 b(use)15708 +26487 y +SDict begin H.S end + 15708 26487 a 15708 26487 a +SDict begin 18.2 H.A end + 15708 26487 a 15708 +26487 a +SDict begin [ /View [/XYZ H.V] /Dest (6707) cvn H.B /DEST pdfmark end + 15708 26487 a FP(C:)h FU(from)g(here)g(on\).)-30 +29147 y +SDict begin H.S end + -30 29147 a -30 29147 a +SDict begin 18.2 H.A end + -30 29147 a -30 29147 +a +SDict begin [ /View [/XYZ H.V] /Dest (ZIPSLACK-BOOTING) cvn H.B /DEST +pdfmark end + -30 29147 a 5789 x FL(19.3)620 b(Booting)f(ZipSlac)-45 +b(k)-30 35433 y +SDict begin H.S end + -30 35433 a -30 35433 a +SDict begin 18.2 H.A end + -30 35433 a -30 +35433 a +SDict begin [ /View [/XYZ H.V] /Dest (6710) cvn H.B /DEST pdfmark end + -30 35433 a -30 36549 a +SDict begin H.S end + -30 36549 a -30 36549 +a +SDict begin 18.2 H.A end + -30 36549 a -30 36549 a +SDict begin [ /View [/XYZ H.V] /Dest (6713) cvn H.B /DEST pdfmark end + -30 36549 a 1518 x FU(There)463 +b(are)f(se)-39 b(v)-23 b(eral)463 b(w)-15 b(ays)461 b(to)h(boot)g +(ZipSlack.)g(The)h(most)e(common)h(is)g(to)g(use)g(the)h(included)-30 +40081 y(LINUX.B)-54 b(A)-172 b(T)328 b(to)g(boot)g(the)g(system)f(from) +i(DOS)e(\(or)i(from)f(DOS)g(mode)g(under)g(W)-62 b(indo)-39 +b(ws)328 b(9x\).)-30 42096 y(This)387 b(\002le)g(must)g(be)g(edited)g +(to)g(match)g(your)g(system)g(before)g(it)g(will)g(w)-15 +b(ork.)-30 43206 y +SDict begin H.S end + -30 43206 a -30 43206 a +SDict begin 18.2 H.A end + -30 43206 +a -30 43206 a +SDict begin [ /View [/XYZ H.V] /Dest (6714) cvn H.B /DEST pdfmark end + -30 43206 a 1680 x FU(Start)390 b(by)g(opening)f(the) +12895 44886 y +SDict begin H.S end + 12895 44886 a 12895 44886 a +SDict begin 18.2 H.A end + 12895 44886 +a 12895 44886 a +SDict begin [ /View [/XYZ H.V] /Dest (6715) cvn H.B /DEST pdfmark end + 12895 44886 a FQ(C:\\LINUX\\LINUX.BAT)379 +b FU(\002le)390 b(in)g(your)g(f)-15 b(a)-31 b(v)g(orite)389 +b(te)-23 b(xt)390 b(editor)-85 b(.)390 b(At)g(the)g(top)g(of)-30 +46900 y(the)364 b(\002le)f(you)h(will)f(notice)g(a)h(lar)-28 +b(ge)364 b(comment.)g(It)g(e)-23 b(xplains)362 b(what)i(you)g(need)f +(to)h(edit)f(in)h(this)f(\002le)-30 48915 y(\(and)440 +b(also)g(what)g(to)g(do)g(if)g(you)g(are)h(booting)e(from)h(an)g(e)-23 +b(xternal)440 b(Zip)g(dri)-39 b(v)-23 b(e\).)440 b(Don')-28 +b(t)440 b(w)-15 b(orry)440 b(if)-30 50930 y(you)457 b(don')-28 +b(t)456 b(understand)g(the)16060 50930 y +SDict begin H.S end + 16060 50930 +a 16060 50930 a +SDict begin 18.2 H.A end + 16060 50930 a 16060 50930 a +SDict begin [ /View [/XYZ H.V] /Dest (6716) cvn H.B /DEST pdfmark end + 16060 50930 +a FP(root=)g FU(setting.)g(There)h(are)g(se)-39 b(v)-23 +b(eral)456 b(e)-23 b(xamples,)457 b(so)f(feel)h(free)g(to)-30 +52944 y(pick)450 b(one)g(and)g(try)g(it.)g(If)g(it)g(doesn')-28 +b(t)450 b(w)-15 b(ork,)449 b(you)h(can)g(edit)g(the)g(\002le)g(ag)-8 +b(ain,)450 b(comment)f(out)h(the)-30 54959 y(line)387 +b(you)g(uncommented,)g(and)g(pick)g(another)g(one.)-30 +56069 y +SDict begin H.S end + -30 56069 a -30 56069 a +SDict begin 18.2 H.A end + -30 56069 a -30 56069 +a +SDict begin [ /View [/XYZ H.V] /Dest (6717) cvn H.B /DEST pdfmark end + -30 56069 a 1679 x FU(After)409 b(you)g(uncomment)f(the)h(line)f(you) +h(w)-15 b(ant)408 b(by)h(remo)-23 b(ving)408 b(the)35874 +57748 y +SDict begin H.S end + 35874 57748 a 35874 57748 a +SDict begin 18.2 H.A end + 35874 57748 a 35874 +57748 a +SDict begin [ /View [/XYZ H.V] /Dest (6718) cvn H.B /DEST pdfmark end + 35874 57748 a FU(\223rem\224)h(at)g(the)g(be)-23 +b(ginning)408 b(of)-30 59763 y(the)387 b(line,)h(sa)-31 +b(v)-23 b(e)387 b(the)g(\002le)g(and)g(e)-23 b(xit)387 +b(the)g(editor)-85 b(.)387 b(Bring)g(your)g(machine)g(into)g(DOS)g +(mode.)-30 60874 y +SDict begin H.S end + -30 60874 a -30 60874 a +SDict begin 18.2 H.A end + -30 60874 +a -30 60874 a +SDict begin [ /View [/XYZ H.V] /Dest (6719) cvn H.B /DEST pdfmark end + -30 60874 a 1679 x FU(A)g(DOS)g(prompt)g(windo)-39 +b(w)387 b(in)g(W)-62 b(indo)-39 b(ws)387 b(9x)g(will)g(NO)-62 +b(T)387 b(w)-15 b(ork.)-30 63663 y +SDict begin H.S end + -30 63663 a -30 63663 +a +SDict begin 18.2 H.A end + -30 63663 a -30 63663 a +SDict begin [ /View [/XYZ H.V] /Dest (6720) cvn H.B /DEST pdfmark end + -30 63663 a 1679 x FU(T)-124 +b(ype)3486 65342 y +SDict begin H.S end + 3486 65342 a 3486 65342 a +SDict begin 18.2 H.A end + 3486 65342 +a 3486 65342 a +SDict begin [ /View [/XYZ H.V] /Dest (6721) cvn H.B /DEST pdfmark end + 3486 65342 a FP(C:\\LINUX\\LINUX.BAT)452 +b FU(to)j(boot)f(the)h(system.)f(If)h(all)g(goes)f(well,)h(you)g +(should)f(be)h(pre-)-30 67357 y(sented)387 b(with)g(a)g(login)g +(prompt.)p Black 49394 73792 a FR(227)p Black eop end +%%Page: 228 250 +TeXDict begin 228 249 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.228) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Chapter)387 b(19)g(ZipSlac)-31 +b(k)p Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 +a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (6722) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FU(Log)427 b(in)g(as)6245 +3611 y +SDict begin H.S end + 6245 3611 a 6245 3611 a +SDict begin 18.2 H.A end + 6245 3611 a 6245 3611 +a +SDict begin [ /View [/XYZ H.V] /Dest (6723) cvn H.B /DEST pdfmark end + 6245 3611 a FP(root)p FU(,)g(with)g(no)g(passw)-15 +b(ord.)426 b(Y)-170 b(ou')-15 b(ll)426 b(probably)g(w)-15 +b(ant)427 b(to)f(set)h(a)h(passw)-15 b(ord)426 b(for)h(root,)-30 +5626 y(as)508 b(well)f(as)g(adding)g(an)h(account)f(for)h(yourself.)f +(At)h(this)f(point)g(you)g(can)h(refer)f(to)h(the)f(other)-30 +7640 y(sections)387 b(in)g(this)g(book)g(for)g(general)g(system)g +(usage.)-30 8751 y +SDict begin H.S end + -30 8751 a -30 8751 a +SDict begin 18.2 H.A end + -30 8751 a -30 +8751 a +SDict begin [ /View [/XYZ H.V] /Dest (6724) cvn H.B /DEST pdfmark end + -30 8751 a 1679 x FU(If)362 b(using)g(the)7341 +10430 y +SDict begin H.S end + 7341 10430 a 7341 10430 a +SDict begin 18.2 H.A end + 7341 10430 a 7341 10430 +a +SDict begin [ /View [/XYZ H.V] /Dest (6725) cvn H.B /DEST pdfmark end + 7341 10430 a FQ(LINUX.BAT)356 b FU(\002le)361 b(to)h(boot)g(the)g +(system)f(didn')-28 b(t)361 b(w)-15 b(ork)362 b(for)g(you,)g(you)g +(should)f(refer)h(to)-30 12445 y(the)387 b(included)7976 +12445 y +SDict begin H.S end + 7976 12445 a 7976 12445 a +SDict begin 18.2 H.A end + 7976 12445 a 7976 12445 +a +SDict begin [ /View [/XYZ H.V] /Dest (6726) cvn H.B /DEST pdfmark end + 7976 12445 a FQ(C:\\LINUX\\README.1ST)375 b FU(\002le)387 +b(for)h(other)f(w)-15 b(ays)386 b(to)i(boot.)p Black +-30 73792 a FR(228)p Black eop end +%%Page: 229 251 +TeXDict begin 229 250 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.229) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (GLOSSARY) cvn H.B /DEST pdfmark +end + -30 2383 a 3376 x FO(Glossar)46 +b(y)p -30 13332 51806 56 v -30 14494 a +SDict begin H.S end + -30 14494 a -30 +14494 a +SDict begin 18.2 H.A end + -30 14494 a -30 14494 a +SDict begin [ /View [/XYZ H.V] /Dest (6729) cvn H.B /DEST pdfmark end + -30 14494 a 1098 x FE(Account)-30 +16386 y +SDict begin H.S end + -30 16386 a -30 16386 a +SDict begin 18.2 H.A end + -30 16386 a -30 16386 +a +SDict begin [ /View [/XYZ H.V] /Dest (6730) cvn H.B /DEST pdfmark end + -30 16386 a -30 17161 a +SDict begin H.S end + -30 17161 a -30 17161 a +SDict begin 18.2 H.A end + -30 +17161 a -30 17161 a +SDict begin [ /View [/XYZ H.V] /Dest (6731) cvn H.B /DEST pdfmark end + -30 17161 a 3070 19156 a FU(All)494 +b(of)g(the)h(information)e(about)h(a)h(user)-62 b(,)495 +b(including)e(username,)i(passw)-15 b(ord,)494 b(\002nger)g(in-)3070 +21171 y(formation,)i(UID)g(and)g(GID,)h(and)f(home)g(directory)-101 +b(.)497 b(T)-124 b(o)496 b(create)h(an)g(account)f(is)g(to)g(add)3070 +23185 y(and)387 b(de\002ne)g(a)g(user)-85 b(.)-30 27137 +y +SDict begin H.S end + -30 27137 a -30 27137 a +SDict begin 18.2 H.A end + -30 27137 a -30 27137 a +SDict begin [ /View [/XYZ H.V] /Dest (6733) cvn H.B /DEST pdfmark end + -30 +27137 a 2015 x FE(Bac)-31 b(kgr)g(ound)-30 30272 y +SDict begin H.S end + -30 +30272 a -30 30272 a +SDict begin 18.2 H.A end + -30 30272 a -30 30272 a +SDict begin [ /View [/XYZ H.V] /Dest (6734) cvn H.B /DEST pdfmark end + -30 30272 +a -30 31046 a +SDict begin H.S end + -30 31046 a -30 31046 a +SDict begin 18.2 H.A end + -30 31046 a -30 +31046 a +SDict begin [ /View [/XYZ H.V] /Dest (6735) cvn H.B /DEST pdfmark end + -30 31046 a 3070 32716 a FU(An)-23 b(y)616 b(process)h(that)g +(is)g(running)g(without)f(accepting)h(or)g(controlling)f(the)h(input)g +(of)g(a)3070 34731 y(terminal)386 b(is)h(said)g(to)g(be)h(running)f(in) +g(the)g(background.)-30 38683 y +SDict begin H.S end + -30 38683 a -30 38683 +a +SDict begin 18.2 H.A end + -30 38683 a -30 38683 a +SDict begin [ /View [/XYZ H.V] /Dest (6737) cvn H.B /DEST pdfmark end + -30 38683 a 2015 x FE(Boot)431 +b(disk)-30 41492 y +SDict begin H.S end + -30 41492 a -30 41492 a +SDict begin 18.2 H.A end + -30 41492 +a -30 41492 a +SDict begin [ /View [/XYZ H.V] /Dest (6738) cvn H.B /DEST pdfmark end + -30 41492 a -30 42267 a +SDict begin H.S end + -30 42267 a -30 +42267 a +SDict begin 18.2 H.A end + -30 42267 a -30 42267 a +SDict begin [ /View [/XYZ H.V] /Dest (6739) cvn H.B /DEST pdfmark end + -30 42267 a 3070 44262 +a FU(A)506 b(\003opp)-15 b(y)506 b(disk)g(containing)g(an)h(operating)f +(system)g(\(in)h(our)f(case,)i(the)e(Linux)h(k)-15 b(ernel\))3070 +46277 y(from)387 b(which)g(a)g(computer)g(can)g(be)h(started.)-30 +50228 y +SDict begin H.S end + -30 50228 a -30 50228 a +SDict begin 18.2 H.A end + -30 50228 a -30 50228 +a +SDict begin [ /View [/XYZ H.V] /Dest (6741) cvn H.B /DEST pdfmark end + -30 50228 a 2015 x FE(Compile)-30 53339 y +SDict begin H.S end + -30 53339 +a -30 53339 a +SDict begin 18.2 H.A end + -30 53339 a -30 53339 a +SDict begin [ /View [/XYZ H.V] /Dest (6742) cvn H.B /DEST pdfmark end + -30 53339 a -30 +54114 a +SDict begin H.S end + -30 54114 a -30 54114 a +SDict begin 18.2 H.A end + -30 54114 a -30 54114 +a +SDict begin [ /View [/XYZ H.V] /Dest (6743) cvn H.B /DEST pdfmark end + -30 54114 a 3070 55808 a FU(T)-124 b(o)387 b(con)-62 +b(v)-23 b(ert)387 b(source)g(code)g(to)g(machine-readable)30746 +55808 y +SDict begin H.S end + 30746 55808 a 30746 55808 a +SDict begin 18.2 H.A end + 30746 55808 a 30746 +55808 a +SDict begin [ /View [/XYZ H.V] /Dest (6744) cvn H.B /DEST pdfmark end + 30746 55808 a FU(\223binary\224)g(code.)-30 59759 +y +SDict begin H.S end + -30 59759 a -30 59759 a +SDict begin 18.2 H.A end + -30 59759 a -30 59759 a +SDict begin [ /View [/XYZ H.V] /Dest (6746) cvn H.B /DEST pdfmark end + -30 +59759 a 2015 x FE(Daemon)-30 62568 y +SDict begin H.S end + -30 62568 a -30 +62568 a +SDict begin 18.2 H.A end + -30 62568 a -30 62568 a +SDict begin [ /View [/XYZ H.V] /Dest (6747) cvn H.B /DEST pdfmark end + -30 62568 a -30 63343 +a +SDict begin H.S end + -30 63343 a -30 63343 a +SDict begin 18.2 H.A end + -30 63343 a -30 63343 a +SDict begin [ /View [/XYZ H.V] /Dest (6748) cvn H.B /DEST pdfmark end + -30 +63343 a 3070 65338 a FU(A)485 b(program)g(designed)g(to)h(run)f(in)h +(the)f(background)g(and,)h(without)f(user)h(interv)-23 +b(ention,)3070 67353 y(perform)387 b(a)g(speci\002c)g(task)g(\(usually) +g(pro)-23 b(viding)386 b(a)h(service\).)p Black -30 73672 +a +SDict begin H.S end + -30 73672 a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (6750) cvn H.B /DEST pdfmark end + -30 +73672 a 49451 74722 a FR(229)p Black eop end +%%Page: 230 252 +TeXDict begin 230 251 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.230) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 8025 x FE(Darkstar)-30 7461 y +SDict begin H.S end + -30 +7461 a -30 7461 a +SDict begin 18.2 H.A end + -30 7461 a -30 7461 a +SDict begin [ /View [/XYZ H.V] /Dest (6751) cvn H.B /DEST pdfmark end + -30 7461 a -30 +8236 a +SDict begin H.S end + -30 8236 a -30 8236 a +SDict begin 18.2 H.A end + -30 8236 a -30 8236 a +SDict begin [ /View [/XYZ H.V] /Dest (6752) cvn H.B /DEST pdfmark end + -30 +8236 a 3070 10232 a FU(The)525 b(def)-15 b(ault)525 b(hostname)g(in)h +(Slackw)-15 b(are;)525 b(your)g(computer)h(will)f(be)h(called)f +(darkstar)h(if)3070 12246 y(you)387 b(do)g(not)g(specify)g(some)g +(other)g(name.)-30 13357 y +SDict begin H.S end + -30 13357 a -30 13357 a +SDict begin 18.2 H.A end + -30 +13357 a -30 13357 a +SDict begin [ /View [/XYZ H.V] /Dest (6753) cvn H.B /DEST pdfmark end + -30 13357 a 3070 15036 a FU(One)452 +b(of)h(P)-23 b(atrick)452 b(V)-200 b(olk)-15 b(erding')-85 +b(s)451 b(de)-39 b(v)-23 b(elopment)452 b(machines,)h(named)f(after) +43965 15036 y +SDict begin H.S end + 43965 15036 a 43965 15036 a +SDict begin 18.2 H.A end + 43965 15036 +a 43965 15036 a +SDict begin [ /View [/XYZ H.V] /Dest (6754) cvn H.B /DEST pdfmark end + 43965 15036 a FU(\223Dark)h(Star\224,)3070 +17051 y(a)387 b(song)g(by)g(the)g(Grateful)g(Dead.)-30 +21002 y +SDict begin H.S end + -30 21002 a -30 21002 a +SDict begin 18.2 H.A end + -30 21002 a -30 21002 +a +SDict begin [ /View [/XYZ H.V] /Dest (6756) cvn H.B /DEST pdfmark end + -30 21002 a 2015 x FE(Desktop)430 b(En)-62 b(vir)-31 +b(onment)-30 24113 y +SDict begin H.S end + -30 24113 a -30 24113 a +SDict begin 18.2 H.A end + -30 24113 +a -30 24113 a +SDict begin [ /View [/XYZ H.V] /Dest (6757) cvn H.B /DEST pdfmark end + -30 24113 a -30 24888 a +SDict begin H.S end + -30 24888 a -30 +24888 a +SDict begin 18.2 H.A end + -30 24888 a -30 24888 a +SDict begin [ /View [/XYZ H.V] /Dest (6758) cvn H.B /DEST pdfmark end + -30 24888 a 3070 26581 +a FU(A)365 b(graphical)g(user)h(interf)-15 b(ace)365 +b(\(GUI\))g(that)g(runs)h(atop)f(the)g(X)h(W)-62 b(indo)-39 +b(w)365 b(System)g(and)g(pro-)3070 28596 y(vides)433 +b(such)h(features)g(as)h(inte)-23 b(grated)433 b(applications,)h +(cohesi)-39 b(v)-23 b(e)433 b(look-and-feel)h(between)3070 +30611 y(programs)542 b(and)h(components,)f(\002le)g(and)h(windo)-39 +b(w)542 b(management)g(capabilities,)h(etc.)g(A)3070 +32625 y(step)387 b(be)-23 b(yond)386 b(the)h(simple)g(windo)-39 +b(w)387 b(manager)-85 b(.)-30 36577 y +SDict begin H.S end + -30 36577 a -30 +36577 a +SDict begin 18.2 H.A end + -30 36577 a -30 36577 a +SDict begin [ /View [/XYZ H.V] /Dest (6760) cvn H.B /DEST pdfmark end + -30 36577 a 2015 x FE(De)-23 +b(vice)429 b(driver)-30 39386 y +SDict begin H.S end + -30 39386 a -30 39386 +a +SDict begin 18.2 H.A end + -30 39386 a -30 39386 a +SDict begin [ /View [/XYZ H.V] /Dest (6761) cvn H.B /DEST pdfmark end + -30 39386 a -30 40161 a +SDict begin H.S end + -30 +40161 a -30 40161 a +SDict begin 18.2 H.A end + -30 40161 a -30 40161 a +SDict begin [ /View [/XYZ H.V] /Dest (6762) cvn H.B /DEST pdfmark end + -30 40161 +a 3070 42156 a FU(A)387 b(chunk)g(of)g(code)h(in)f(the)g(k)-15 +b(ernel)387 b(that)g(directly)g(controls)f(a)i(piece)f(of)g(hardw)-15 +b(are.)-30 46108 y +SDict begin H.S end + -30 46108 a -30 46108 a +SDict begin 18.2 H.A end + -30 46108 +a -30 46108 a +SDict begin [ /View [/XYZ H.V] /Dest (6764) cvn H.B /DEST pdfmark end + -30 46108 a 2015 x FE(De)-23 b(vice)429 +b(node)-30 48917 y +SDict begin H.S end + -30 48917 a -30 48917 a +SDict begin 18.2 H.A end + -30 48917 +a -30 48917 a +SDict begin [ /View [/XYZ H.V] /Dest (6765) cvn H.B /DEST pdfmark end + -30 48917 a -30 49692 a +SDict begin H.S end + -30 49692 a -30 +49692 a +SDict begin 18.2 H.A end + -30 49692 a -30 49692 a +SDict begin [ /View [/XYZ H.V] /Dest (6766) cvn H.B /DEST pdfmark end + -30 49692 a 3070 51687 +a FU(A)436 b(special)g(type)g(of)g(\002le)g(in)h(the)20587 +51687 y +SDict begin H.S end + 20587 51687 a 20587 51687 a +SDict begin 18.2 H.A end + 20587 51687 a 20587 +51687 a +SDict begin [ /View [/XYZ H.V] /Dest (6767) cvn H.B /DEST pdfmark end + 20587 51687 a FQ(/dev)d FU(\002lesystem)h(that)h(represents)g +(a)g(hardw)-15 b(are)436 b(compo-)3070 53702 y(nent)387 +b(to)g(the)g(operating)g(system.)-30 57654 y +SDict begin H.S end + -30 57654 +a -30 57654 a +SDict begin 18.2 H.A end + -30 57654 a -30 57654 a +SDict begin [ /View [/XYZ H.V] /Dest (6769) cvn H.B /DEST pdfmark end + -30 57654 a 2014 +x FE(DNS)-30 60463 y +SDict begin H.S end + -30 60463 a -30 60463 a +SDict begin 18.2 H.A end + -30 60463 +a -30 60463 a +SDict begin [ /View [/XYZ H.V] /Dest (6770) cvn H.B /DEST pdfmark end + -30 60463 a -30 61238 a +SDict begin H.S end + -30 61238 a -30 +61238 a +SDict begin 18.2 H.A end + -30 61238 a -30 61238 a +SDict begin [ /View [/XYZ H.V] /Dest (6771) cvn H.B /DEST pdfmark end + -30 61238 a 3070 63233 +a FU(Domain)631 b(Name)h(Service.)g(A)f(system)g(in)h(which)g(netw)-15 +b(ork)g(ed)630 b(computers)h(are)h(gi)-39 b(v)-23 b(en)3070 +65248 y(names)387 b(which)g(translate)f(to)i(numerical)e(addresses.)p +Black -30 73672 a FR(230)p Black eop end +%%Page: 231 253 +TeXDict begin 231 252 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.231) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (6773) cvn H.B /DEST pdfmark end + -30 2383 a 1131 x FE(Domain)430 +b(name)-30 4308 y +SDict begin H.S end + -30 4308 a -30 4308 a +SDict begin 18.2 H.A end + -30 4308 a -30 +4308 a +SDict begin [ /View [/XYZ H.V] /Dest (6774) cvn H.B /DEST pdfmark end + -30 4308 a -30 5083 a +SDict begin H.S end + -30 5083 a -30 5083 a +SDict begin 18.2 H.A end + -30 +5083 a -30 5083 a +SDict begin [ /View [/XYZ H.V] /Dest (6775) cvn H.B /DEST pdfmark end + -30 5083 a 3070 7078 a FU(A)387 b(computer')-85 +b(s)386 b(DNS)h(name,)h(e)-23 b(xcluding)386 b(its)h(host)g(name.)-30 +11030 y +SDict begin H.S end + -30 11030 a -30 11030 a +SDict begin 18.2 H.A end + -30 11030 a -30 11030 +a +SDict begin [ /View [/XYZ H.V] /Dest (6777) cvn H.B /DEST pdfmark end + -30 11030 a 2015 x FE(Dot)431 b(\002le)-30 13839 y +SDict begin H.S end + +-30 13839 a -30 13839 a +SDict begin 18.2 H.A end + -30 13839 a -30 13839 a +SDict begin [ /View [/XYZ H.V] /Dest (6778) cvn H.B /DEST pdfmark end + -30 13839 +a -30 14614 a +SDict begin H.S end + -30 14614 a -30 14614 a +SDict begin 18.2 H.A end + -30 14614 a -30 +14614 a +SDict begin [ /View [/XYZ H.V] /Dest (6779) cvn H.B /DEST pdfmark end + -30 14614 a 3070 16609 a FU(In)359 b(Linux,)g(\002les)g(which)g +(are)h(to)f(be)h(hidden)f(ha)-31 b(v)-23 b(e)359 b(\002lenames)f(be)-23 +b(ginning)359 b(with)g(a)g(dot)g(\('.)-108 b('\).)-30 +20561 y +SDict begin H.S end + -30 20561 a -30 20561 a +SDict begin 18.2 H.A end + -30 20561 a -30 20561 +a +SDict begin [ /View [/XYZ H.V] /Dest (6781) cvn H.B /DEST pdfmark end + -30 20561 a 2015 x FE(Dotted)430 b(quad)-30 23671 y +SDict begin H.S end + +-30 23671 a -30 23671 a +SDict begin 18.2 H.A end + -30 23671 a -30 23671 a +SDict begin [ /View [/XYZ H.V] /Dest (6782) cvn H.B /DEST pdfmark end + -30 23671 +a -30 24446 a +SDict begin H.S end + -30 24446 a -30 24446 a +SDict begin 18.2 H.A end + -30 24446 a -30 +24446 a +SDict begin [ /View [/XYZ H.V] /Dest (6783) cvn H.B /DEST pdfmark end + -30 24446 a 3070 26140 a FU(The)326 b(format)h(of)g(IP)f +(addresses,)h(so)f(called)h(because)g(it)f(consists)g(of)h(four)g +(numbers)f(\(range)3070 28155 y(0-255)387 b(decimal\))f(separated)i(by) +f(periods.)-30 32107 y +SDict begin H.S end + -30 32107 a -30 32107 a +SDict begin 18.2 H.A end + -30 32107 +a -30 32107 a +SDict begin [ /View [/XYZ H.V] /Dest (6785) cvn H.B /DEST pdfmark end + -30 32107 a 2014 x FE(Dynamic)429 b(loader)-30 +35217 y +SDict begin H.S end + -30 35217 a -30 35217 a +SDict begin 18.2 H.A end + -30 35217 a -30 35217 +a +SDict begin [ /View [/XYZ H.V] /Dest (6786) cvn H.B /DEST pdfmark end + -30 35217 a -30 35992 a +SDict begin H.S end + -30 35992 a -30 35992 a +SDict begin 18.2 H.A end + -30 +35992 a -30 35992 a +SDict begin [ /View [/XYZ H.V] /Dest (6787) cvn H.B /DEST pdfmark end + -30 35992 a 3070 37686 a FU(When)599 +b(programs)g(are)h(compiled)e(under)i(Linux,)f(the)-23 +b(y)599 b(usually)g(use)g(pieces)g(of)h(code)3070 39700 +y(\(functions\))336 b(from)g(e)-23 b(xternal)337 b(libraries.)f(When)h +(such)g(programs)f(are)h(run,)g(those)f(libraries)3070 +41715 y(must)452 b(be)h(found)g(and)g(the)g(required)g(functions)f +(loaded)h(into)g(memory)-101 b(.)453 b(This)f(is)h(the)g(job)3070 +43730 y(of)387 b(the)g(dynamic)g(loader)-85 b(.)-30 47682 +y +SDict begin H.S end + -30 47682 a -30 47682 a +SDict begin 18.2 H.A end + -30 47682 a -30 47682 a +SDict begin [ /View [/XYZ H.V] /Dest (6789) cvn H.B /DEST pdfmark end + -30 +47682 a 2014 x FE(En)-62 b(vir)-31 b(onment)429 b(v)-31 +b(ariab)-15 b(le)-30 50490 y +SDict begin H.S end + -30 50490 a -30 50490 a +SDict begin 18.2 H.A end + +-30 50490 a -30 50490 a +SDict begin [ /View [/XYZ H.V] /Dest (6790) cvn H.B /DEST pdfmark end + -30 50490 a -30 51265 a +SDict begin H.S end + -30 51265 +a -30 51265 a +SDict begin 18.2 H.A end + -30 51265 a -30 51265 a +SDict begin [ /View [/XYZ H.V] /Dest (6791) cvn H.B /DEST pdfmark end + -30 51265 a 3070 +53261 a FU(A)466 b(v)-39 b(ariable)467 b(set)f(in)h(the)f(user')-85 +b(s)467 b(shell)f(which)g(can)h(be)g(referenced)g(by)f(that)h(user)f +(or)h(pro-)3070 55275 y(grams)504 b(run)g(by)h(that)f(user)g(within)g +(that)g(shell.)h(En)-62 b(vironment)503 b(v)-39 b(ariables)504 +b(are)h(generally)3070 57290 y(used)387 b(to)g(store)g(preferences)g +(and)h(def)-15 b(ault)386 b(parameters.)-30 61242 y +SDict begin H.S end + -30 +61242 a -30 61242 a +SDict begin 18.2 H.A end + -30 61242 a -30 61242 a +SDict begin [ /View [/XYZ H.V] /Dest (6793) cvn H.B /DEST pdfmark end + -30 61242 +a 2014 x FE(Epoc)-15 b(h)-30 64352 y +SDict begin H.S end + -30 64352 a -30 +64352 a +SDict begin 18.2 H.A end + -30 64352 a -30 64352 a +SDict begin [ /View [/XYZ H.V] /Dest (6794) cvn H.B /DEST pdfmark end + -30 64352 a -30 65127 +a +SDict begin H.S end + -30 65127 a -30 65127 a +SDict begin 18.2 H.A end + -30 65127 a -30 65127 a +SDict begin [ /View [/XYZ H.V] /Dest (6795) cvn H.B /DEST pdfmark end + -30 +65127 a 3070 66821 a FU(A)417 b(period)g(of)h(history;)e(in)h(Unix,) +21373 66821 y +SDict begin H.S end + 21373 66821 a 21373 66821 a +SDict begin 18.2 H.A end + 21373 66821 +a 21373 66821 a +SDict begin [ /View [/XYZ H.V] /Dest (6796) cvn H.B /DEST pdfmark end + 21373 66821 a FU(\223The)g(Epoch\224)h(be)-23 +b(gins)416 b(at)i(00:00:00)e(UTC)h(January)h(1,)p Black +49451 73672 a FR(231)p Black eop end +%%Page: 232 254 +TeXDict begin 232 253 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.232) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6821) cvn H.B /DEST pdfmark end + -30 -2687 a Black 3070 3490 a FU(1970.)450 +b(This)f(is)h(considered)g(the)21204 3490 y +SDict begin H.S end + 21204 3490 +a 21204 3490 a +SDict begin 18.2 H.A end + 21204 3490 a 21204 3490 a +SDict begin [ /View [/XYZ H.V] /Dest (6797) cvn H.B /DEST pdfmark end + 21204 3490 a +FU(\223da)-23 b(wn)449 b(of)i(time\224)e(by)h(Unix)g(and)g(Unix-lik)-15 +b(e)449 b(operating)3070 5505 y(systems,)386 b(and)i(all)f(other)g +(time)g(is)g(calculated)g(relati)-39 b(v)-23 b(e)387 +b(to)g(this)g(date.)-30 9457 y +SDict begin H.S end + -30 9457 a -30 9457 a +SDict begin 18.2 H.A end + +-30 9457 a -30 9457 a +SDict begin [ /View [/XYZ H.V] /Dest (6799) cvn H.B /DEST pdfmark end + -30 9457 a 2014 x FE(Filesystem)-30 +12567 y +SDict begin H.S end + -30 12567 a -30 12567 a +SDict begin 18.2 H.A end + -30 12567 a -30 12567 +a +SDict begin [ /View [/XYZ H.V] /Dest (6800) cvn H.B /DEST pdfmark end + -30 12567 a -30 13342 a +SDict begin H.S end + -30 13342 a -30 13342 a +SDict begin 18.2 H.A end + -30 +13342 a -30 13342 a +SDict begin [ /View [/XYZ H.V] /Dest (6801) cvn H.B /DEST pdfmark end + -30 13342 a 3070 15036 a FU(A)499 +b(representation)g(of)h(stored)f(data)h(in)f(which)29119 +15036 y +SDict begin H.S end + 29119 15036 a 29119 15036 a +SDict begin 18.2 H.A end + 29119 15036 a 29119 +15036 a +SDict begin [ /View [/XYZ H.V] /Dest (6802) cvn H.B /DEST pdfmark end + 29119 15036 a FU(\223\002les\224)g(of)h(data)g(are)g(k)-15 +b(ept)498 b(or)-28 b(g)-8 b(anized)500 b(in)3070 17051 +y +SDict begin H.S end + 3070 17051 a 3070 17051 a +SDict begin 18.2 H.A end + 3070 17051 a 3070 17051 a +SDict begin [ /View [/XYZ H.V] /Dest (6803) cvn H.B /DEST pdfmark end + +3070 17051 a FU(\223directories\224.)439 b(The)h(\002lesystem)e(is)h +(the)h(nearly)f(uni)-39 b(v)-23 b(ersal)439 b(form)g(of)h +(representation)f(for)3070 19065 y(data)387 b(stored)g(to)g(disks)g +(\(both)g(\002x)-23 b(ed)386 b(and)h(remo)-23 b(v)-39 +b(able\).)-30 23017 y +SDict begin H.S end + -30 23017 a -30 23017 a +SDict begin 18.2 H.A end + -30 23017 +a -30 23017 a +SDict begin [ /View [/XYZ H.V] /Dest (6805) cvn H.B /DEST pdfmark end + -30 23017 a 2015 x FE(Foregr)-31 b(ound)-30 +26151 y +SDict begin H.S end + -30 26151 a -30 26151 a +SDict begin 18.2 H.A end + -30 26151 a -30 26151 +a +SDict begin [ /View [/XYZ H.V] /Dest (6806) cvn H.B /DEST pdfmark end + -30 26151 a -30 26926 a +SDict begin H.S end + -30 26926 a -30 26926 a +SDict begin 18.2 H.A end + -30 +26926 a -30 26926 a +SDict begin [ /View [/XYZ H.V] /Dest (6807) cvn H.B /DEST pdfmark end + -30 26926 a 3070 28596 a FU(A)435 +b(program)f(that)h(is)g(accepting)g(or)g(controlling)f(a)h(terminal') +-85 b(s)435 b(input)f(is)h(said)g(to)g(be)g(run-)3070 +30611 y(ning)386 b(in)i(the)f(fore)-23 b(ground.)-30 +34563 y +SDict begin H.S end + -30 34563 a -30 34563 a +SDict begin 18.2 H.A end + -30 34563 a -30 34563 +a +SDict begin [ /View [/XYZ H.V] /Dest (6809) cvn H.B /DEST pdfmark end + -30 34563 a 2014 x FE(Frameb)-31 b(uff)-15 b(er)-30 +37372 y +SDict begin H.S end + -30 37372 a -30 37372 a +SDict begin 18.2 H.A end + -30 37372 a -30 37372 +a +SDict begin [ /View [/XYZ H.V] /Dest (6810) cvn H.B /DEST pdfmark end + -30 37372 a -30 38146 a +SDict begin H.S end + -30 38146 a -30 38146 a +SDict begin 18.2 H.A end + -30 +38146 a -30 38146 a +SDict begin [ /View [/XYZ H.V] /Dest (6811) cvn H.B /DEST pdfmark end + -30 38146 a 3070 40142 a FU(A)294 +b(type)h(of)g(graphics)f(de)-39 b(vice;)295 b(in)g(Linux,)g(this)f +(most)g(often)h(refers)g(to)g(the)g(softw)-15 b(are)294 +b(frame-)3070 42156 y(b)-31 b(uf)-39 b(fer)-62 b(,)296 +b(which)g(pro)-23 b(vides)295 b(a)h(standard)f(frameb)-31 +b(uf)-39 b(fer)297 b(interf)-15 b(ace)295 b(to)h(programs)f(while)g(k) +-15 b(eep-)3070 44171 y(ing)392 b(speci\002c)h(hardw)-15 +b(are)393 b(dri)-39 b(v)-23 b(ers)393 b(hidden)g(from)g(them.)g(This)g +(layer)g(of)g(abstraction)g(frees)3070 46186 y(programs)386 +b(of)i(the)f(need)g(to)g(speak)h(to)f(v)-39 b(arious)387 +b(hardw)-15 b(are)387 b(dri)-39 b(v)-23 b(ers.)-30 50138 +y +SDict begin H.S end + -30 50138 a -30 50138 a +SDict begin 18.2 H.A end + -30 50138 a -30 50138 a +SDict begin [ /View [/XYZ H.V] /Dest (6813) cvn H.B /DEST pdfmark end + -30 +50138 a 2014 x FE(FTP)-30 52927 y +SDict begin H.S end + -30 52927 a -30 52927 +a +SDict begin 18.2 H.A end + -30 52927 a -30 52927 a +SDict begin [ /View [/XYZ H.V] /Dest (6814) cvn H.B /DEST pdfmark end + -30 52927 a -30 53702 a +SDict begin H.S end + -30 +53702 a -30 53702 a +SDict begin 18.2 H.A end + -30 53702 a -30 53702 a +SDict begin [ /View [/XYZ H.V] /Dest (6815) cvn H.B /DEST pdfmark end + -30 53702 +a 3070 55717 a FU(The)453 b(File)g(T)-54 b(ransfer)453 +b(Protocol.)g(FTP)g(is)g(a)h(v)-23 b(ery)453 b(popular)g(method)g(of)g +(transferring)g(data)3070 57731 y(between)387 b(computers.)-30 +61683 y +SDict begin H.S end + -30 61683 a -30 61683 a +SDict begin 18.2 H.A end + -30 61683 a -30 61683 +a +SDict begin [ /View [/XYZ H.V] /Dest (6817) cvn H.B /DEST pdfmark end + -30 61683 a 2015 x FE(Gate)-23 b(wa)-31 b(y)-30 64793 +y +SDict begin H.S end + -30 64793 a -30 64793 a +SDict begin 18.2 H.A end + -30 64793 a -30 64793 a +SDict begin [ /View [/XYZ H.V] /Dest (6818) cvn H.B /DEST pdfmark end + -30 +64793 a -30 65568 a +SDict begin H.S end + -30 65568 a -30 65568 a +SDict begin 18.2 H.A end + -30 65568 +a -30 65568 a +SDict begin [ /View [/XYZ H.V] /Dest (6819) cvn H.B /DEST pdfmark end + -30 65568 a 3070 67262 a FU(A)349 b(computer)g(through)f +(which)h(data)h(on)f(a)g(netw)-15 b(ork)349 b(is)g(transferred)g(to)g +(another)g(netw)-15 b(ork.)p Black -30 73672 a FR(232)p +Black eop end +%%Page: 233 255 +TeXDict begin 233 254 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.233) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 8025 x FE(GID)-30 7461 y +SDict begin H.S end + -30 7461 +a -30 7461 a +SDict begin 18.2 H.A end + -30 7461 a -30 7461 a +SDict begin [ /View [/XYZ H.V] /Dest (6822) cvn H.B /DEST pdfmark end + -30 7461 a -30 8236 +a +SDict begin H.S end + -30 8236 a -30 8236 a +SDict begin 18.2 H.A end + -30 8236 a -30 8236 a +SDict begin [ /View [/XYZ H.V] /Dest (6823) cvn H.B /DEST pdfmark end + -30 8236 +a 3070 10232 a FU(Group)387 b(Identi\002er)-85 b(.)387 +b(The)g(GID)g(is)g(a)h(unique)f(number)f(attrib)-31 b(uted)387 +b(to)g(a)h(group)f(of)g(users.)-30 14183 y +SDict begin H.S end + -30 14183 +a -30 14183 a +SDict begin 18.2 H.A end + -30 14183 a -30 14183 a +SDict begin [ /View [/XYZ H.V] /Dest (6825) cvn H.B /DEST pdfmark end + -30 14183 a 2015 +x FE(Gr)-31 b(oup)-30 17294 y +SDict begin H.S end + -30 17294 a -30 17294 a +SDict begin 18.2 H.A end + +-30 17294 a -30 17294 a +SDict begin [ /View [/XYZ H.V] /Dest (6826) cvn H.B /DEST pdfmark end + -30 17294 a -30 18069 a +SDict begin H.S end + -30 18069 +a -30 18069 a +SDict begin 18.2 H.A end + -30 18069 a -30 18069 a +SDict begin [ /View [/XYZ H.V] /Dest (6827) cvn H.B /DEST pdfmark end + -30 18069 a 3070 +19763 a FU(Users)387 b(in)h(Unix)g(belong)f(to)18268 +19763 y +SDict begin H.S end + 18268 19763 a 18268 19763 a +SDict begin 18.2 H.A end + 18268 19763 a 18268 +19763 a +SDict begin [ /View [/XYZ H.V] /Dest (6828) cvn H.B /DEST pdfmark end + 18268 19763 a FU(\223groups\224,)h(which)g(can)g(contain)g(man) +-23 b(y)387 b(other)h(users)g(and)g(are)3070 21777 y(used)312 +b(for)g(more)g(general)g(access)g(control)g(than)g(the)g(e)-23 +b(xistence)312 b(of)g(users)g(alone)g(can)g(easily)3070 +23792 y(allo)-39 b(w)-101 b(.)-30 27744 y +SDict begin H.S end + -30 27744 a +-30 27744 a +SDict begin 18.2 H.A end + -30 27744 a -30 27744 a +SDict begin [ /View [/XYZ H.V] /Dest (6830) cvn H.B /DEST pdfmark end + -30 27744 a 2014 +x FE(GUI)-30 30553 y +SDict begin H.S end + -30 30553 a -30 30553 a +SDict begin 18.2 H.A end + -30 30553 +a -30 30553 a +SDict begin [ /View [/XYZ H.V] /Dest (6831) cvn H.B /DEST pdfmark end + -30 30553 a -30 31328 a +SDict begin H.S end + -30 31328 a -30 +31328 a +SDict begin 18.2 H.A end + -30 31328 a -30 31328 a +SDict begin [ /View [/XYZ H.V] /Dest (6832) cvn H.B /DEST pdfmark end + -30 31328 a 3070 33323 +a FU(Graphical)412 b(User)h(Interf)-15 b(ace.)414 b(A)f(softw)-15 +b(are)412 b(interf)-15 b(ace)413 b(that)f(uses)h(rendered)g(graphical)g +(el-)3070 35337 y(ements)437 b(such)h(as)g(b)-31 b(uttons,)437 +b(scrollbars,)h(windo)-39 b(ws,)438 b(etc.)h(rather)f(than)f(solely)h +(te)-23 b(xt-based)3070 37352 y(input)386 b(and)i(output)-30 +41304 y +SDict begin H.S end + -30 41304 a -30 41304 a +SDict begin 18.2 H.A end + -30 41304 a -30 41304 +a +SDict begin [ /View [/XYZ H.V] /Dest (6834) cvn H.B /DEST pdfmark end + -30 41304 a 2015 x FE(Home)430 b(director)15 b(y)-30 +44414 y +SDict begin H.S end + -30 44414 a -30 44414 a +SDict begin 18.2 H.A end + -30 44414 a -30 44414 +a +SDict begin [ /View [/XYZ H.V] /Dest (6835) cvn H.B /DEST pdfmark end + -30 44414 a -30 45189 a +SDict begin H.S end + -30 45189 a -30 45189 a +SDict begin 18.2 H.A end + -30 +45189 a -30 45189 a +SDict begin [ /View [/XYZ H.V] /Dest (6836) cvn H.B /DEST pdfmark end + -30 45189 a 3070 46883 a FU(A)543 +b(user')-85 b(s)8892 46883 y +SDict begin H.S end + 8892 46883 a 8892 46883 +a +SDict begin 18.2 H.A end + 8892 46883 a 8892 46883 a +SDict begin [ /View [/XYZ H.V] /Dest (6837) cvn H.B /DEST pdfmark end + 8892 46883 a FU(\223home)543 +b(directory\224)h(is)g(the)f(directory)h(the)f(user)h(is)g(placed)g(in) +f(immediately)3070 48898 y(upon)363 b(logging)f(in.)i(Users)g(ha)-31 +b(v)-23 b(e)363 b(full)g(permissions)g(and)g(more)h(or)f(less)g(free)h +(reign)g(within)3070 50912 y(their)387 b(home)g(directories.)-30 +54864 y +SDict begin H.S end + -30 54864 a -30 54864 a +SDict begin 18.2 H.A end + -30 54864 a -30 54864 +a +SDict begin [ /View [/XYZ H.V] /Dest (6839) cvn H.B /DEST pdfmark end + -30 54864 a 2015 x FE(HO)-77 b(WT)-62 b(O)-30 57673 +y +SDict begin H.S end + -30 57673 a -30 57673 a +SDict begin 18.2 H.A end + -30 57673 a -30 57673 a +SDict begin [ /View [/XYZ H.V] /Dest (6840) cvn H.B /DEST pdfmark end + -30 +57673 a -30 58448 a +SDict begin H.S end + -30 58448 a -30 58448 a +SDict begin 18.2 H.A end + -30 58448 +a -30 58448 a +SDict begin [ /View [/XYZ H.V] /Dest (6841) cvn H.B /DEST pdfmark end + -30 58448 a 3070 60443 a FU(A)550 b(document)g +(describing)18409 60443 y +SDict begin H.S end + 18409 60443 a 18409 60443 a +SDict begin 18.2 H.A end + +18409 60443 a 18409 60443 a +SDict begin [ /View [/XYZ H.V] /Dest (6842) cvn H.B /DEST pdfmark end + 18409 60443 a FU(\223ho)-39 +b(w)551 b(to\224)g(do)f(something,)g(such)h(as)g(con\002gure)f(a)h +(\002re)-39 b(w)-15 b(all)3070 62458 y(or)571 b(manage)g(users)h(and)f +(groups.)g(There)h(is)f(a)h(lar)-28 b(ge)571 b(collection)g(of)h(these) +f(documents)3070 64473 y(a)-31 b(v)-39 b(ailable)387 +b(from)g(the)g(Linux)g(Documentation)f(Project.)p Black +49451 73672 a FR(233)p Black eop end +%%Page: 234 256 +TeXDict begin 234 255 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.234) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6868) cvn H.B /DEST pdfmark end + -30 -2687 a Black -30 2383 a +SDict begin H.S end + -30 +2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (6844) cvn H.B /DEST pdfmark end + -30 2383 a 1107 +x FE(HTTP)-30 4265 y +SDict begin H.S end + -30 4265 a -30 4265 a +SDict begin 18.2 H.A end + -30 4265 a +-30 4265 a +SDict begin [ /View [/XYZ H.V] /Dest (6845) cvn H.B /DEST pdfmark end + -30 4265 a -30 5040 a +SDict begin H.S end + -30 5040 a -30 5040 +a +SDict begin 18.2 H.A end + -30 5040 a -30 5040 a +SDict begin [ /View [/XYZ H.V] /Dest (6846) cvn H.B /DEST pdfmark end + -30 5040 a 3070 7055 a FU(The)471 +b(Hyperte)-23 b(xt)470 b(T)-54 b(ransfer)471 b(Protocol.)g(HTTP)f(is)h +(the)g(primary)g(protocol)f(on)h(which)g(the)3070 9069 +y(W)-124 b(orld)387 b(W)-62 b(ide)387 b(W)-124 b(eb)387 +b(operates.)-30 13021 y +SDict begin H.S end + -30 13021 a -30 13021 a +SDict begin 18.2 H.A end + -30 13021 +a -30 13021 a +SDict begin [ /View [/XYZ H.V] /Dest (6848) cvn H.B /DEST pdfmark end + -30 13021 a 2015 x FE(ICMP)-30 15830 y +SDict begin H.S end + +-30 15830 a -30 15830 a +SDict begin 18.2 H.A end + -30 15830 a -30 15830 a +SDict begin [ /View [/XYZ H.V] /Dest (6849) cvn H.B /DEST pdfmark end + -30 15830 +a -30 16605 a +SDict begin H.S end + -30 16605 a -30 16605 a +SDict begin 18.2 H.A end + -30 16605 a -30 +16605 a +SDict begin [ /View [/XYZ H.V] /Dest (6850) cvn H.B /DEST pdfmark end + -30 16605 a 3070 18600 a FU(Internet)623 b(Control)h(Message)f +(Protocol.)h(A)g(v)-23 b(ery)624 b(basic)g(netw)-15 b(orking)622 +b(protocol,)i(used)3070 20615 y(mostly)386 b(for)h(pings.)-30 +24567 y +SDict begin H.S end + -30 24567 a -30 24567 a +SDict begin 18.2 H.A end + -30 24567 a -30 24567 +a +SDict begin [ /View [/XYZ H.V] /Dest (6852) cvn H.B /DEST pdfmark end + -30 24567 a 2014 x FE(K)-23 b(ernel)-30 27376 y +SDict begin H.S end + -30 +27376 a -30 27376 a +SDict begin 18.2 H.A end + -30 27376 a -30 27376 a +SDict begin [ /View [/XYZ H.V] /Dest (6853) cvn H.B /DEST pdfmark end + -30 27376 +a -30 28151 a +SDict begin H.S end + -30 28151 a -30 28151 a +SDict begin 18.2 H.A end + -30 28151 a -30 +28151 a +SDict begin [ /View [/XYZ H.V] /Dest (6854) cvn H.B /DEST pdfmark end + -30 28151 a 3070 30146 a FU(The)574 b(heart)h(of)f(an)h +(operating)f(system.)g(The)h(k)-15 b(ernel)574 b(is)g(the)h(part)f +(that)g(pro)-23 b(vides)574 b(basic)3070 32161 y(process)387 +b(control)f(and)i(interf)-15 b(aces)386 b(with)h(the)g(computer')-85 +b(s)387 b(hardw)-15 b(are.)-30 36112 y +SDict begin H.S end + -30 36112 a -30 +36112 a +SDict begin 18.2 H.A end + -30 36112 a -30 36112 a +SDict begin [ /View [/XYZ H.V] /Dest (6856) cvn H.B /DEST pdfmark end + -30 36112 a 2015 x FE(K)-23 +b(ernel)429 b(module)-30 38921 y +SDict begin H.S end + -30 38921 a -30 38921 +a +SDict begin 18.2 H.A end + -30 38921 a -30 38921 a +SDict begin [ /View [/XYZ H.V] /Dest (6857) cvn H.B /DEST pdfmark end + -30 38921 a -30 39696 a +SDict begin H.S end + -30 +39696 a -30 39696 a +SDict begin 18.2 H.A end + -30 39696 a -30 39696 a +SDict begin [ /View [/XYZ H.V] /Dest (6858) cvn H.B /DEST pdfmark end + -30 39696 +a 3070 41691 a FU(A)497 b(piece)h(of)g(k)-15 b(ernel)497 +b(code,)i(usually)e(a)h(dri)-39 b(v)-23 b(er)498 b(of)g(some)f(sort,)h +(that)g(can)g(be)f(loaded)h(and)3070 43706 y(unloaded)418 +b(from)g(memory)g(separately)g(from)h(the)f(main)g(body)g(of)h(the)f(k) +-15 b(ernel.)419 b(Modules)3070 45721 y(are)458 b(handy)f(when)h +(upgrading)f(dri)-39 b(v)-23 b(ers)458 b(or)g(testing)f(k)-15 +b(ernel)457 b(settings,)h(because)f(the)-23 b(y)458 b(can)3070 +47735 y(be)387 b(loaded)g(and)g(unloaded)g(without)f(rebooting.)-30 +51687 y +SDict begin H.S end + -30 51687 a -30 51687 a +SDict begin 18.2 H.A end + -30 51687 a -30 51687 +a +SDict begin [ /View [/XYZ H.V] /Dest (6860) cvn H.B /DEST pdfmark end + -30 51687 a 2015 x FE(Librar)15 b(y)-30 54798 y +SDict begin H.S end + -30 +54798 a -30 54798 a +SDict begin 18.2 H.A end + -30 54798 a -30 54798 a +SDict begin [ /View [/XYZ H.V] /Dest (6861) cvn H.B /DEST pdfmark end + -30 54798 +a -30 55572 a +SDict begin H.S end + -30 55572 a -30 55572 a +SDict begin 18.2 H.A end + -30 55572 a -30 +55572 a +SDict begin [ /View [/XYZ H.V] /Dest (6862) cvn H.B /DEST pdfmark end + -30 55572 a 3070 57266 a FU(A)387 b(collection)f(of)i +(functions)e(which)h(can)h(be)f(shared)g(between)h(programs.)-30 +61218 y +SDict begin H.S end + -30 61218 a -30 61218 a +SDict begin 18.2 H.A end + -30 61218 a -30 61218 +a +SDict begin [ /View [/XYZ H.V] /Dest (6864) cvn H.B /DEST pdfmark end + -30 61218 a 2015 x FE(LILO)-30 64027 y +SDict begin H.S end + -30 64027 a +-30 64027 a +SDict begin 18.2 H.A end + -30 64027 a -30 64027 a +SDict begin [ /View [/XYZ H.V] /Dest (6865) cvn H.B /DEST pdfmark end + -30 64027 a -30 64802 +a +SDict begin H.S end + -30 64802 a -30 64802 a +SDict begin 18.2 H.A end + -30 64802 a -30 64802 a +SDict begin [ /View [/XYZ H.V] /Dest (6866) cvn H.B /DEST pdfmark end + -30 +64802 a 3070 66797 a FU(The)f(LInux)g(LOader)-85 b(.)387 +b(LILO)h(is)f(the)g(most)g(widely-used)f(Linux)h(boot)g(manager)-85 +b(.)p Black -30 73672 a FR(234)p Black eop end +%%Page: 235 257 +TeXDict begin 235 256 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.235) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 8025 x FE(LO)-77 b(ADLIN)-30 7461 +y +SDict begin H.S end + -30 7461 a -30 7461 a +SDict begin 18.2 H.A end + -30 7461 a -30 7461 a +SDict begin [ /View [/XYZ H.V] /Dest (6869) cvn H.B /DEST pdfmark end + -30 7461 +a -30 8236 a +SDict begin H.S end + -30 8236 a -30 8236 a +SDict begin 18.2 H.A end + -30 8236 a -30 8236 +a +SDict begin [ /View [/XYZ H.V] /Dest (6870) cvn H.B /DEST pdfmark end + -30 8236 a 3070 10232 a FU(LO)-54 b(ADLIN)585 b(is)i(a)g(program)f +(that)g(runs)h(under)f(MS)g(DOS)g(or)h(W)-62 b(indo)-39 +b(ws)586 b(and)h(boots)f(a)3070 12246 y(Linux)368 b(system.)i(It)f(is)g +(most)g(commonly)f(used)h(on)h(computers)e(with)h(multiple)g(operating) +3070 14261 y(systems)386 b(\(including)g(Linux)h(and)g(DOS/W)-62 +b(indo)-39 b(ws,)387 b(of)g(course\).)-30 18213 y +SDict begin H.S end + -30 +18213 a -30 18213 a +SDict begin 18.2 H.A end + -30 18213 a -30 18213 a +SDict begin [ /View [/XYZ H.V] /Dest (6872) cvn H.B /DEST pdfmark end + -30 18213 +a 2014 x FE(Man)430 b(section)-30 21022 y +SDict begin H.S end + -30 21022 a +-30 21022 a +SDict begin 18.2 H.A end + -30 21022 a -30 21022 a +SDict begin [ /View [/XYZ H.V] /Dest (6873) cvn H.B /DEST pdfmark end + -30 21022 a -30 21797 +a +SDict begin H.S end + -30 21797 a -30 21797 a +SDict begin 18.2 H.A end + -30 21797 a -30 21797 a +SDict begin [ /View [/XYZ H.V] /Dest (6874) cvn H.B /DEST pdfmark end + -30 +21797 a 3070 23792 a FU(P)-23 b(ages)339 b(in)h(the)f(standard)h(Unix)f +(online)h(manual)f(\("man"\))h(are)h(grouped)e(into)h(sections)f(for) +3070 25807 y(easy)436 b(reference.)i(All)f(C)g(programming)e(pages)i +(are)g(in)g(section)f(3,)i(system)e(administra-)3070 +27821 y(tion)386 b(pages)i(in)f(section)f(5,)i(etc.)-30 +31773 y +SDict begin H.S end + -30 31773 a -30 31773 a +SDict begin 18.2 H.A end + -30 31773 a -30 31773 +a +SDict begin [ /View [/XYZ H.V] /Dest (6876) cvn H.B /DEST pdfmark end + -30 31773 a 2015 x FE(MBR)-30 34563 y +SDict begin H.S end + -30 34563 a -30 +34563 a +SDict begin 18.2 H.A end + -30 34563 a -30 34563 a +SDict begin [ /View [/XYZ H.V] /Dest (6877) cvn H.B /DEST pdfmark end + -30 34563 a -30 35337 +a +SDict begin H.S end + -30 35337 a -30 35337 a +SDict begin 18.2 H.A end + -30 35337 a -30 35337 a +SDict begin [ /View [/XYZ H.V] /Dest (6878) cvn H.B /DEST pdfmark end + -30 +35337 a 3070 37352 a FU(The)425 b(Master)h(Boot)f(Record.)h(A)g(reserv) +-23 b(ed)425 b(space)h(on)g(a)g(hard)g(dri)-39 b(v)-23 +b(e)425 b(where)h(information)3070 39367 y(on)555 b(what)g(to)g(do)g +(when)g(booting)f(is)h(stored.)h(LILO)f(or)g(other)g(boot)g(managers)g +(can)g(be)3070 41381 y(written)386 b(here.)-30 45333 +y +SDict begin H.S end + -30 45333 a -30 45333 a +SDict begin 18.2 H.A end + -30 45333 a -30 45333 a +SDict begin [ /View [/XYZ H.V] /Dest (6880) cvn H.B /DEST pdfmark end + -30 +45333 a 2015 x FE(Motif)-30 48142 y +SDict begin H.S end + -30 48142 a -30 48142 +a +SDict begin 18.2 H.A end + -30 48142 a -30 48142 a +SDict begin [ /View [/XYZ H.V] /Dest (6881) cvn H.B /DEST pdfmark end + -30 48142 a -30 48917 a +SDict begin H.S end + -30 +48917 a -30 48917 a +SDict begin 18.2 H.A end + -30 48917 a -30 48917 a +SDict begin [ /View [/XYZ H.V] /Dest (6882) cvn H.B /DEST pdfmark end + -30 48917 +a 3070 50912 a FU(A)h(popular)g(programming)f(toolkit)g(used)h(in)h +(man)-23 b(y)386 b(older)h(X)h(programs.)-30 54864 y +SDict begin H.S end + +-30 54864 a -30 54864 a +SDict begin 18.2 H.A end + -30 54864 a -30 54864 a +SDict begin [ /View [/XYZ H.V] /Dest (6884) cvn H.B /DEST pdfmark end + -30 54864 +a 2015 x FE(MO)-62 b(TD)-30 57673 y +SDict begin H.S end + -30 57673 a -30 57673 +a +SDict begin 18.2 H.A end + -30 57673 a -30 57673 a +SDict begin [ /View [/XYZ H.V] /Dest (6885) cvn H.B /DEST pdfmark end + -30 57673 a -30 58448 a +SDict begin H.S end + -30 +58448 a -30 58448 a +SDict begin 18.2 H.A end + -30 58448 a -30 58448 a +SDict begin [ /View [/XYZ H.V] /Dest (6886) cvn H.B /DEST pdfmark end + -30 58448 +a 3070 60443 a FU(Message)483 b(of)g(the)g(Day)-101 b(.)484 +b(The)f(motd)g(\(stored)g(in)g(Linux)g(in)35393 60443 +y +SDict begin H.S end + 35393 60443 a 35393 60443 a +SDict begin 18.2 H.A end + 35393 60443 a 35393 60443 +a +SDict begin [ /View [/XYZ H.V] /Dest (6887) cvn H.B /DEST pdfmark end + 35393 60443 a FQ(/etc/motd)478 b FU(is)483 b(a)g(te)-23 +b(xt)483 b(\002le)g(that)3070 62458 y(is)396 b(displayed)g(to)g(all)h +(users)f(upon)g(logging)g(in.)h(T)-54 b(raditionally)-101 +b(,)396 b(it)g(is)g(used)h(by)f(the)h(system)3070 64473 +y(administrator)386 b(as)h(a)h(sort)f(of)18866 64473 +y +SDict begin H.S end + 18866 64473 a 18866 64473 a +SDict begin 18.2 H.A end + 18866 64473 a 18866 64473 +a +SDict begin [ /View [/XYZ H.V] /Dest (6888) cvn H.B /DEST pdfmark end + 18866 64473 a FU(\223b)-31 b(ulletin)386 b(board\224)i(for)f +(communicating)f(with)h(users.)p Black 49451 73672 a +FR(235)p Black eop end +%%Page: 236 258 +TeXDict begin 236 257 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.236) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6916) cvn H.B /DEST pdfmark end + -30 -2687 a Black -30 2383 a +SDict begin H.S end + -30 +2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (6890) cvn H.B /DEST pdfmark end + -30 2383 a 1131 +x FE(Mount)431 b(point)-30 4609 y +SDict begin H.S end + -30 4609 a -30 4609 +a +SDict begin 18.2 H.A end + -30 4609 a -30 4609 a +SDict begin [ /View [/XYZ H.V] /Dest (6891) cvn H.B /DEST pdfmark end + -30 4609 a -30 5384 a +SDict begin H.S end + -30 5384 +a -30 5384 a +SDict begin 18.2 H.A end + -30 5384 a -30 5384 a +SDict begin [ /View [/XYZ H.V] /Dest (6892) cvn H.B /DEST pdfmark end + -30 5384 a 3070 7078 +a FU(An)296 b(empty)f(directory)h(in)g(a)g(\002lesystem)f(where)h +(another)g(\002lesystem)f(is)h(to)g(be)44588 7078 y +SDict begin H.S end + 44588 +7078 a 44588 7078 a +SDict begin 18.2 H.A end + 44588 7078 a 44588 7078 a +SDict begin [ /View [/XYZ H.V] /Dest (6893) cvn H.B /DEST pdfmark end + 44588 7078 +a FU(\223mounted\224,)3070 9093 y(or)387 b(grafted)g(on.)-30 +13045 y +SDict begin H.S end + -30 13045 a -30 13045 a +SDict begin 18.2 H.A end + -30 13045 a -30 13045 +a +SDict begin [ /View [/XYZ H.V] /Dest (6895) cvn H.B /DEST pdfmark end + -30 13045 a 2014 x FE(Nameser)15 b(ver)-30 15854 y +SDict begin H.S end + +-30 15854 a -30 15854 a +SDict begin 18.2 H.A end + -30 15854 a -30 15854 a +SDict begin [ /View [/XYZ H.V] /Dest (6896) cvn H.B /DEST pdfmark end + -30 15854 +a -30 16629 a +SDict begin H.S end + -30 16629 a -30 16629 a +SDict begin 18.2 H.A end + -30 16629 a -30 +16629 a +SDict begin [ /View [/XYZ H.V] /Dest (6897) cvn H.B /DEST pdfmark end + -30 16629 a 3070 18624 a FU(A)394 b(DNS)h(information)e(serv) +-23 b(er)-85 b(.)395 b(Nameserv)-23 b(ers)394 b(translate)h(DNS)f +(names)g(to)h(numerical)f(IP)3070 20638 y(addresses.)-30 +24590 y +SDict begin H.S end + -30 24590 a -30 24590 a +SDict begin 18.2 H.A end + -30 24590 a -30 24590 +a +SDict begin [ /View [/XYZ H.V] /Dest (6899) cvn H.B /DEST pdfmark end + -30 24590 a 2015 x FE(Netw)-31 b(ork)430 b(interface)-30 +27399 y +SDict begin H.S end + -30 27399 a -30 27399 a +SDict begin 18.2 H.A end + -30 27399 a -30 27399 +a +SDict begin [ /View [/XYZ H.V] /Dest (6900) cvn H.B /DEST pdfmark end + -30 27399 a -30 28174 a +SDict begin H.S end + -30 28174 a -30 28174 a +SDict begin 18.2 H.A end + -30 +28174 a -30 28174 a +SDict begin [ /View [/XYZ H.V] /Dest (6901) cvn H.B /DEST pdfmark end + -30 28174 a 3070 30169 a FU(A)466 +b(virtual)g(representation)g(of)g(a)h(netw)-15 b(ork)466 +b(de)-39 b(vice)466 b(pro)-23 b(vided)466 b(by)g(the)h(k)-15 +b(ernel.)466 b(Netw)-15 b(ork)3070 32184 y(interf)g(aces)386 +b(allo)-39 b(w)387 b(users)h(and)f(programs)g(to)g(talk)g(to)g(netw)-15 +b(ork)386 b(de)-39 b(vices.)-30 36136 y +SDict begin H.S end + -30 36136 a -30 +36136 a +SDict begin 18.2 H.A end + -30 36136 a -30 36136 a +SDict begin [ /View [/XYZ H.V] /Dest (6903) cvn H.B /DEST pdfmark end + -30 36136 a 2015 x FE(NFS)-30 +38945 y +SDict begin H.S end + -30 38945 a -30 38945 a +SDict begin 18.2 H.A end + -30 38945 a -30 38945 +a +SDict begin [ /View [/XYZ H.V] /Dest (6904) cvn H.B /DEST pdfmark end + -30 38945 a -30 39720 a +SDict begin H.S end + -30 39720 a -30 39720 a +SDict begin 18.2 H.A end + -30 +39720 a -30 39720 a +SDict begin [ /View [/XYZ H.V] /Dest (6905) cvn H.B /DEST pdfmark end + -30 39720 a 3070 41715 a FU(The)398 +b(Netw)-15 b(ork)397 b(Filesystem.)g(NFS)g(allo)-39 b(ws)398 +b(the)g(mounting)f(of)h(remote)f(\002lesystems)g(as)h(if)3070 +43730 y(the)-23 b(y)346 b(were)h(local)f(to)h(your)f(computer)g(and)h +(thus)f(pro)-23 b(vides)346 b(a)g(transparent)h(method)f(of)g(\002le) +3070 45744 y(sharing.)-30 49696 y +SDict begin H.S end + -30 49696 a -30 49696 +a +SDict begin 18.2 H.A end + -30 49696 a -30 49696 a +SDict begin [ /View [/XYZ H.V] /Dest (6907) cvn H.B /DEST pdfmark end + -30 49696 a 2015 x FE(Octal)-30 +52505 y +SDict begin H.S end + -30 52505 a -30 52505 a +SDict begin 18.2 H.A end + -30 52505 a -30 52505 +a +SDict begin [ /View [/XYZ H.V] /Dest (6908) cvn H.B /DEST pdfmark end + -30 52505 a -30 53280 a +SDict begin H.S end + -30 53280 a -30 53280 a +SDict begin 18.2 H.A end + -30 +53280 a -30 53280 a +SDict begin [ /View [/XYZ H.V] /Dest (6909) cvn H.B /DEST pdfmark end + -30 53280 a 3070 55275 a FU(Base-8)387 +b(number)f(system,)h(with)g(digits)g(0-7.)-30 59227 y +SDict begin H.S end + +-30 59227 a -30 59227 a +SDict begin 18.2 H.A end + -30 59227 a -30 59227 a +SDict begin [ /View [/XYZ H.V] /Dest (6911) cvn H.B /DEST pdfmark end + -30 59227 +a 2015 x FE(P)-46 b(a)-15 b(g)15 b(er)-30 62361 y +SDict begin H.S end + -30 +62361 a -30 62361 a +SDict begin 18.2 H.A end + -30 62361 a -30 62361 a +SDict begin [ /View [/XYZ H.V] /Dest (6912) cvn H.B /DEST pdfmark end + -30 62361 +a -30 63136 a +SDict begin H.S end + -30 63136 a -30 63136 a +SDict begin 18.2 H.A end + -30 63136 a -30 +63136 a +SDict begin [ /View [/XYZ H.V] /Dest (6913) cvn H.B /DEST pdfmark end + -30 63136 a 3070 64806 a FU(An)445 b(X)g(program)g(that)g(allo) +-39 b(ws)445 b(the)h(user)f(to)g(see)h(and)f(switch)g(between)g +(multiple)47731 64806 y +SDict begin H.S end + 47731 64806 a 47731 64806 a +SDict begin 18.2 H.A end + 47731 +64806 a 47731 64806 a +SDict begin [ /View [/XYZ H.V] /Dest (6914) cvn H.B /DEST pdfmark end + 47731 64806 a FU(\223desk-)3070 +66821 y(tops\224.)p Black -30 73672 a FR(236)p Black +eop end +%%Page: 237 259 +TeXDict begin 237 258 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.237) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (6943) cvn H.B /DEST pdfmark end + -30 -2687 a Black 9354 x FE(P)-46 +b(ar)31 b(tition)-30 7461 y +SDict begin H.S end + -30 7461 a -30 7461 a +SDict begin 18.2 H.A end + -30 +7461 a -30 7461 a +SDict begin [ /View [/XYZ H.V] /Dest (6917) cvn H.B /DEST pdfmark end + -30 7461 a -30 8236 a +SDict begin H.S end + -30 8236 a -30 +8236 a +SDict begin 18.2 H.A end + -30 8236 a -30 8236 a +SDict begin [ /View [/XYZ H.V] /Dest (6918) cvn H.B /DEST pdfmark end + -30 8236 a 3070 10232 a +FU(A)387 b(di)-39 b(vision)386 b(of)i(a)f(hard)h(dri)-39 +b(v)-23 b(e.)387 b(Filesystems)f(e)-23 b(xist)387 b(on)g(top)g(of)g +(partitions.)-30 14183 y +SDict begin H.S end + -30 14183 a -30 14183 a +SDict begin 18.2 H.A end + -30 +14183 a -30 14183 a +SDict begin [ /View [/XYZ H.V] /Dest (6920) cvn H.B /DEST pdfmark end + -30 14183 a 2015 x FE(PPP)-30 16973 +y +SDict begin H.S end + -30 16973 a -30 16973 a +SDict begin 18.2 H.A end + -30 16973 a -30 16973 a +SDict begin [ /View [/XYZ H.V] /Dest (6921) cvn H.B /DEST pdfmark end + -30 +16973 a -30 17748 a +SDict begin H.S end + -30 17748 a -30 17748 a +SDict begin 18.2 H.A end + -30 17748 +a -30 17748 a +SDict begin [ /View [/XYZ H.V] /Dest (6922) cvn H.B /DEST pdfmark end + -30 17748 a 3070 19763 a FU(Point-to-Point)516 +b(Protocol.)h(PPP)g(is)h(used)g(mainly)f(for)h(connecting)g(via)g +(modem)f(to)h(an)3070 21777 y(Internet)387 b(Service)g(Pro)-23 +b(vider)-85 b(.)-30 25729 y +SDict begin H.S end + -30 25729 a -30 25729 a +SDict begin 18.2 H.A end + -30 +25729 a -30 25729 a +SDict begin [ /View [/XYZ H.V] /Dest (6924) cvn H.B /DEST pdfmark end + -30 25729 a 2015 x FE(Pr)-31 b(ocess)-30 +28538 y +SDict begin H.S end + -30 28538 a -30 28538 a +SDict begin 18.2 H.A end + -30 28538 a -30 28538 +a +SDict begin [ /View [/XYZ H.V] /Dest (6925) cvn H.B /DEST pdfmark end + -30 28538 a -30 29313 a +SDict begin H.S end + -30 29313 a -30 29313 a +SDict begin 18.2 H.A end + -30 +29313 a -30 29313 a +SDict begin [ /View [/XYZ H.V] /Dest (6926) cvn H.B /DEST pdfmark end + -30 29313 a 3070 31308 a FU(A)387 +b(running)g(program.)-30 35260 y +SDict begin H.S end + -30 35260 a -30 35260 +a +SDict begin 18.2 H.A end + -30 35260 a -30 35260 a +SDict begin [ /View [/XYZ H.V] /Dest (6928) cvn H.B /DEST pdfmark end + -30 35260 a 2015 x FE(Root)431 +b(director)15 b(y)-30 38370 y +SDict begin H.S end + -30 38370 a -30 38370 a +SDict begin 18.2 H.A end + +-30 38370 a -30 38370 a +SDict begin [ /View [/XYZ H.V] /Dest (6929) cvn H.B /DEST pdfmark end + -30 38370 a -30 39145 a +SDict begin H.S end + -30 39145 +a -30 39145 a +SDict begin 18.2 H.A end + -30 39145 a -30 39145 a +SDict begin [ /View [/XYZ H.V] /Dest (6930) cvn H.B /DEST pdfmark end + -30 39145 a 3070 +40839 a FU(Represented)350 b(as)12723 40839 y +SDict begin H.S end + 12723 40839 +a 12723 40839 a +SDict begin 18.2 H.A end + 12723 40839 a 12723 40839 a +SDict begin [ /View [/XYZ H.V] /Dest (6931) cvn H.B /DEST pdfmark end + 12723 40839 +a FU(\223/\224,)h(the)g(root)f(directory)h(e)-23 b(xists)349 +b(at)i(the)g(top)f(of)h(the)g(\002lesystem,)f(with)g(all)3070 +42854 y(other)387 b(directories)g(branching)f(out)h(beneath)g(it)h(in)f +(a)31648 42854 y +SDict begin H.S end + 31648 42854 a 31648 42854 a +SDict begin 18.2 H.A end + 31648 42854 +a 31648 42854 a +SDict begin [ /View [/XYZ H.V] /Dest (6932) cvn H.B /DEST pdfmark end + 31648 42854 a FU(\223\002le)g(tree\224.)-30 +46806 y +SDict begin H.S end + -30 46806 a -30 46806 a +SDict begin 18.2 H.A end + -30 46806 a -30 46806 +a +SDict begin [ /View [/XYZ H.V] /Dest (6934) cvn H.B /DEST pdfmark end + -30 46806 a 2014 x FE(Root)431 b(disk)-30 49614 y +SDict begin H.S end + -30 +49614 a -30 49614 a +SDict begin 18.2 H.A end + -30 49614 a -30 49614 a +SDict begin [ /View [/XYZ H.V] /Dest (6935) cvn H.B /DEST pdfmark end + -30 49614 +a -30 50389 a +SDict begin H.S end + -30 50389 a -30 50389 a +SDict begin 18.2 H.A end + -30 50389 a -30 +50389 a +SDict begin [ /View [/XYZ H.V] /Dest (6936) cvn H.B /DEST pdfmark end + -30 50389 a 3070 52385 a FU(The)387 b(disk)g(\(usually)f(\002x) +-23 b(ed\))387 b(on)g(which)g(the)g(root)g(directory)g(is)h(stored.)-30 +56337 y +SDict begin H.S end + -30 56337 a -30 56337 a +SDict begin 18.2 H.A end + -30 56337 a -30 56337 +a +SDict begin [ /View [/XYZ H.V] /Dest (6938) cvn H.B /DEST pdfmark end + -30 56337 a 2014 x FE(Routing)430 b(tab)-15 b(le)-30 +59471 y +SDict begin H.S end + -30 59471 a -30 59471 a +SDict begin 18.2 H.A end + -30 59471 a -30 59471 +a +SDict begin [ /View [/XYZ H.V] /Dest (6939) cvn H.B /DEST pdfmark end + -30 59471 a -30 60246 a +SDict begin H.S end + -30 60246 a -30 60246 a +SDict begin 18.2 H.A end + -30 +60246 a -30 60246 a +SDict begin [ /View [/XYZ H.V] /Dest (6940) cvn H.B /DEST pdfmark end + -30 60246 a 3070 61916 a FU(The)600 +b(set)g(of)g(information)f(the)i(k)-15 b(ernel)599 b(uses)h(in)30238 +61916 y +SDict begin H.S end + 30238 61916 a 30238 61916 a +SDict begin 18.2 H.A end + 30238 61916 a 30238 +61916 a +SDict begin [ /View [/XYZ H.V] /Dest (6941) cvn H.B /DEST pdfmark end + 30238 61916 a FU(\223routing\224)g(netw)-15 b(ork)599 +b(data)i(around.)f(It)3070 63930 y(contains)348 b(such)h(tidbits)f(as)h +(where)g(your)g(def)-15 b(ault)348 b(g)-8 b(ate)-39 b(w)-15 +b(ay)349 b(is,)g(which)f(netw)-15 b(ork)348 b(interf)-15 +b(ace)3070 65945 y(is)387 b(connected)g(to)g(which)g(netw)-15 +b(ork,)387 b(etc.)p Black 49394 73672 a FR(237)p Black +eop end +%%Page: 238 260 +TeXDict begin 238 259 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.238) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 8025 x FE(Runle)-23 b(vel)-30 7461 +y +SDict begin H.S end + -30 7461 a -30 7461 a +SDict begin 18.2 H.A end + -30 7461 a -30 7461 a +SDict begin [ /View [/XYZ H.V] /Dest (6944) cvn H.B /DEST pdfmark end + -30 7461 +a -30 8236 a +SDict begin H.S end + -30 8236 a -30 8236 a +SDict begin 18.2 H.A end + -30 8236 a -30 8236 +a +SDict begin [ /View [/XYZ H.V] /Dest (6945) cvn H.B /DEST pdfmark end + -30 8236 a 3070 10232 a FU(The)324 b(o)-23 b(v)g(erall)323 +b(system)h(state)g(as)g(de\002ned)g(by)g(init.)g(Runle)-39 +b(v)-23 b(el)323 b(6)h(is)g(rebooting,)g(runle)-39 b(v)-23 +b(el)324 b(1)g(is)3070 12246 y +SDict begin H.S end + 3070 12246 a 3070 12246 +a +SDict begin 18.2 H.A end + 3070 12246 a 3070 12246 a +SDict begin [ /View [/XYZ H.V] /Dest (6946) cvn H.B /DEST pdfmark end + 3070 12246 a FU(\223single)329 +b(user)g(mode\224,)h(runle)-39 b(v)-23 b(el)329 b(4)g(is)h(an)f(X)h +(login,)f(etc.)h(There)g(are)g(6)f(a)-31 b(v)-39 b(ailable)330 +b(runle)-39 b(v)-23 b(els)3070 14261 y(on)387 b(a)g(Slackw)-15 +b(are)387 b(system.)-30 18213 y +SDict begin H.S end + -30 18213 a -30 18213 +a +SDict begin 18.2 H.A end + -30 18213 a -30 18213 a +SDict begin [ /View [/XYZ H.V] /Dest (6948) cvn H.B /DEST pdfmark end + -30 18213 a 2014 x FE(Secure)429 +b(shell)-30 21022 y +SDict begin H.S end + -30 21022 a -30 21022 a +SDict begin 18.2 H.A end + -30 21022 +a -30 21022 a +SDict begin [ /View [/XYZ H.V] /Dest (6949) cvn H.B /DEST pdfmark end + -30 21022 a -30 21797 a +SDict begin H.S end + -30 21797 a -30 +21797 a +SDict begin 18.2 H.A end + -30 21797 a -30 21797 a +SDict begin [ /View [/XYZ H.V] /Dest (6950) cvn H.B /DEST pdfmark end + -30 21797 a 3070 23792 +a FU(An)341 b(encrypted)g(\(thus)f(secure\))i(method)e(of)h(logging)g +(in)g(remotely)f(to)h(a)h(computer)-85 b(.)341 b(Man)-23 +b(y)3070 25807 y(secure)387 b(shell)g(programs)g(are)g(a)-31 +b(v)-39 b(ailable;)387 b(both)g(a)h(client)f(and)g(serv)-23 +b(er)387 b(are)h(needed.)-30 29758 y +SDict begin H.S end + -30 29758 a -30 +29758 a +SDict begin 18.2 H.A end + -30 29758 a -30 29758 a +SDict begin [ /View [/XYZ H.V] /Dest (6952) cvn H.B /DEST pdfmark end + -30 29758 a 2015 x FE(Ser)15 +b(vice)-30 32567 y +SDict begin H.S end + -30 32567 a -30 32567 a +SDict begin 18.2 H.A end + -30 32567 +a -30 32567 a +SDict begin [ /View [/XYZ H.V] /Dest (6953) cvn H.B /DEST pdfmark end + -30 32567 a -30 33342 a +SDict begin H.S end + -30 33342 a -30 +33342 a +SDict begin 18.2 H.A end + -30 33342 a -30 33342 a +SDict begin [ /View [/XYZ H.V] /Dest (6954) cvn H.B /DEST pdfmark end + -30 33342 a 3070 35337 +a FU(The)385 b(sharing)h(of)g(information)f(and/or)g(data)h(between)g +(programs)f(and)h(computers)f(from)3070 37352 y(a)i(single)8235 +37352 y +SDict begin H.S end + 8235 37352 a 8235 37352 a +SDict begin 18.2 H.A end + 8235 37352 a 8235 37352 +a +SDict begin [ /View [/XYZ H.V] /Dest (6955) cvn H.B /DEST pdfmark end + 8235 37352 a FU(\223serv)-23 b(er\224)387 b(to)g(multiple)20908 +37352 y +SDict begin H.S end + 20908 37352 a 20908 37352 a +SDict begin 18.2 H.A end + 20908 37352 a 20908 +37352 a +SDict begin [ /View [/XYZ H.V] /Dest (6956) cvn H.B /DEST pdfmark end + 20908 37352 a FU(\223clients\224.)h(HTTP)-172 +b(,)387 b(FTP)-172 b(,)387 b(NFS,)g(etc.)h(are)g(services.)-30 +41304 y +SDict begin H.S end + -30 41304 a -30 41304 a +SDict begin 18.2 H.A end + -30 41304 a -30 41304 +a +SDict begin [ /View [/XYZ H.V] /Dest (6958) cvn H.B /DEST pdfmark end + -30 41304 a 2015 x FE(Shado)-23 b(w)429 b(pass)-23 +b(w)-31 b(or)g(d)429 b(suite)-30 44414 y +SDict begin H.S end + -30 44414 a +-30 44414 a +SDict begin 18.2 H.A end + -30 44414 a -30 44414 a +SDict begin [ /View [/XYZ H.V] /Dest (6959) cvn H.B /DEST pdfmark end + -30 44414 a -30 45189 +a +SDict begin H.S end + -30 45189 a -30 45189 a +SDict begin 18.2 H.A end + -30 45189 a -30 45189 a +SDict begin [ /View [/XYZ H.V] /Dest (6960) cvn H.B /DEST pdfmark end + -30 +45189 a 3070 46883 a FU(The)637 b(shado)-39 b(w)638 b(passw)-15 +b(ord)636 b(suite)h(allo)-39 b(ws)637 b(encrypted)h(passw)-15 +b(ords)636 b(to)h(be)h(hidden)f(from)3070 48898 y(users,)372 +b(while)g(the)g(rest)g(of)h(the)f(information)f(in)h(the)31170 +48898 y +SDict begin H.S end + 31170 48898 a 31170 48898 a +SDict begin 18.2 H.A end + 31170 48898 a 31170 +48898 a +SDict begin [ /View [/XYZ H.V] /Dest (6961) cvn H.B /DEST pdfmark end + 31170 48898 a FQ(/etc/passwd)366 b FU(\002le)372 +b(remains)g(visible)f(to)3070 50912 y(all.)387 b(This)g(helps)g(pre)-39 +b(v)-23 b(ent)387 b(brute-force)g(attempts)g(at)g(cracking)g(passw)-15 +b(ords.)-30 54864 y +SDict begin H.S end + -30 54864 a -30 54864 a +SDict begin 18.2 H.A end + -30 54864 +a -30 54864 a +SDict begin [ /View [/XYZ H.V] /Dest (6963) cvn H.B /DEST pdfmark end + -30 54864 a 2015 x FE(Shell)-30 57673 y +SDict begin H.S end + +-30 57673 a -30 57673 a +SDict begin 18.2 H.A end + -30 57673 a -30 57673 a +SDict begin [ /View [/XYZ H.V] /Dest (6964) cvn H.B /DEST pdfmark end + -30 57673 +a -30 58448 a +SDict begin H.S end + -30 58448 a -30 58448 a +SDict begin 18.2 H.A end + -30 58448 a -30 +58448 a +SDict begin [ /View [/XYZ H.V] /Dest (6965) cvn H.B /DEST pdfmark end + -30 58448 a 3070 60443 a FU(Shells)455 b(pro)-23 +b(vide)456 b(a)h(commandline)f(interf)-15 b(ace)456 b(to)g(the)h(user) +-85 b(.)457 b(When)f(you')-77 b(re)456 b(looking)g(at)h(a)3070 +62458 y(te)-23 b(xt)386 b(prompt,)h(you')-77 b(re)387 +b(in)g(a)h(shell.)p Black -30 73672 a FR(238)p Black +eop end +%%Page: 239 261 +TeXDict begin 239 260 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.239) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (6967) cvn H.B /DEST pdfmark end + -30 2383 a 1131 x FE(Shell)430 +b(b)-31 b(uiltin)-30 4308 y +SDict begin H.S end + -30 4308 a -30 4308 a +SDict begin 18.2 H.A end + -30 +4308 a -30 4308 a +SDict begin [ /View [/XYZ H.V] /Dest (6968) cvn H.B /DEST pdfmark end + -30 4308 a -30 5083 a +SDict begin H.S end + -30 5083 a -30 +5083 a +SDict begin 18.2 H.A end + -30 5083 a -30 5083 a +SDict begin [ /View [/XYZ H.V] /Dest (6969) cvn H.B /DEST pdfmark end + -30 5083 a 3070 7078 a FU(A)497 +b(command)g(b)-31 b(uilt)497 b(into)g(the)h(shell,)g(as)f(opposed)g(to) +h(being)f(pro)-23 b(vided)497 b(by)h(an)f(e)-23 b(xternal)3070 +9093 y(program.)387 b(F)-23 b(or)387 b(instance,)17465 +9093 y +SDict begin H.S end + 17465 9093 a 17465 9093 a +SDict begin 18.2 H.A end + 17465 9093 a 17465 9093 +a +SDict begin [ /View [/XYZ H.V] /Dest (6970) cvn H.B /DEST pdfmark end + 17465 9093 a FP(bash)g FU(has)g(a)24357 9093 y +SDict begin H.S end + 24357 +9093 a 24357 9093 a +SDict begin 18.2 H.A end + 24357 9093 a 24357 9093 a +SDict begin [ /View [/XYZ H.V] /Dest (6971) cvn H.B /DEST pdfmark end + 24357 9093 +a FP(cd)g FU(b)-31 b(uiltin.)-30 13045 y +SDict begin H.S end + -30 13045 a +-30 13045 a +SDict begin 18.2 H.A end + -30 13045 a -30 13045 a +SDict begin [ /View [/XYZ H.V] /Dest (6973) cvn H.B /DEST pdfmark end + -30 13045 a 2014 +x FE(Signal)-30 16179 y +SDict begin H.S end + -30 16179 a -30 16179 a +SDict begin 18.2 H.A end + -30 16179 +a -30 16179 a +SDict begin [ /View [/XYZ H.V] /Dest (6974) cvn H.B /DEST pdfmark end + -30 16179 a -30 16954 a +SDict begin H.S end + -30 16954 a -30 +16954 a +SDict begin 18.2 H.A end + -30 16954 a -30 16954 a +SDict begin [ /View [/XYZ H.V] /Dest (6975) cvn H.B /DEST pdfmark end + -30 16954 a 3070 18624 +a FU(Unix)500 b(programs)f(can)i(communicate)f(between)g(each)g(other)h +(using)e(simple)45707 18624 y +SDict begin H.S end + 45707 18624 a 45707 18624 +a +SDict begin 18.2 H.A end + 45707 18624 a 45707 18624 a +SDict begin [ /View [/XYZ H.V] /Dest (6976) cvn H.B /DEST pdfmark end + 45707 18624 a FU(\223signals\224,)3070 +20638 y(which)339 b(are)i(enumerated)e(and)h(usually)f(ha)-31 +b(v)-23 b(e)340 b(speci\002c)f(meanings.)39348 20638 +y +SDict begin H.S end + 39348 20638 a 39348 20638 a +SDict begin 18.2 H.A end + 39348 20638 a 39348 20638 +a +SDict begin [ /View [/XYZ H.V] /Dest (6977) cvn H.B /DEST pdfmark end + 39348 20638 a FP(kill)743 b(-l)340 b FU(will)g(list)f(the)3070 +22653 y(a)-31 b(v)-39 b(ailable)387 b(signals.)-30 26605 +y +SDict begin H.S end + -30 26605 a -30 26605 a +SDict begin 18.2 H.A end + -30 26605 a -30 26605 a +SDict begin [ /View [/XYZ H.V] /Dest (6979) cvn H.B /DEST pdfmark end + -30 +26605 a 2015 x FE(SLIP)-30 29414 y +SDict begin H.S end + -30 29414 a -30 29414 +a +SDict begin 18.2 H.A end + -30 29414 a -30 29414 a +SDict begin [ /View [/XYZ H.V] /Dest (6980) cvn H.B /DEST pdfmark end + -30 29414 a -30 30189 a +SDict begin H.S end + -30 +30189 a -30 30189 a +SDict begin 18.2 H.A end + -30 30189 a -30 30189 a +SDict begin [ /View [/XYZ H.V] /Dest (6981) cvn H.B /DEST pdfmark end + -30 30189 +a 3070 32184 a FU(Serial)318 b(Line)h(Interf)-15 b(ace)319 +b(Protocol.)g(SLIP)f(is)h(a)h(similar)e(protocol)g(to)h(PPP)-172 +b(,)319 b(in)g(that)g(it')-85 b(s)318 b(used)3070 34199 +y(for)387 b(connecting)g(tw)-15 b(o)386 b(machines)h(via)g(a)h(serial)f +(interf)-15 b(ace.)-30 38151 y +SDict begin H.S end + -30 38151 a -30 38151 +a +SDict begin 18.2 H.A end + -30 38151 a -30 38151 a +SDict begin [ /View [/XYZ H.V] /Dest (6983) cvn H.B /DEST pdfmark end + -30 38151 a 2014 x FE(Software)429 +b(pac)-31 b(ka)-15 b(g)15 b(e)-30 41285 y +SDict begin H.S end + -30 41285 a +-30 41285 a +SDict begin 18.2 H.A end + -30 41285 a -30 41285 a +SDict begin [ /View [/XYZ H.V] /Dest (6984) cvn H.B /DEST pdfmark end + -30 41285 a -30 42060 +a +SDict begin H.S end + -30 42060 a -30 42060 a +SDict begin 18.2 H.A end + -30 42060 a -30 42060 a +SDict begin [ /View [/XYZ H.V] /Dest (6985) cvn H.B /DEST pdfmark end + -30 +42060 a 3070 43730 a FU(A)473 b(program)g(and)h(its)f(associated)g +(\002les,)h(archi)-39 b(v)-23 b(ed)473 b(and)h(compressed)e(into)i(a)f +(single)g(\002le)3070 45744 y(along)451 b(with)h(an)-23 +b(y)452 b(necessary)g(scripts)g(or)g(information)g(to)g(aid)g(in)g +(managing)f(the)i(instal-)3070 47759 y(lation,)387 b(upgrade,)g(and)h +(remo)-23 b(v)-39 b(al)386 b(of)i(those)f(\002les.)-30 +51711 y +SDict begin H.S end + -30 51711 a -30 51711 a +SDict begin 18.2 H.A end + -30 51711 a -30 51711 +a +SDict begin [ /View [/XYZ H.V] /Dest (6987) cvn H.B /DEST pdfmark end + -30 51711 a 2015 x FE(Software)429 b(series)-30 54520 +y +SDict begin H.S end + -30 54520 a -30 54520 a +SDict begin 18.2 H.A end + -30 54520 a -30 54520 a +SDict begin [ /View [/XYZ H.V] /Dest (6988) cvn H.B /DEST pdfmark end + -30 +54520 a -30 55295 a +SDict begin H.S end + -30 55295 a -30 55295 a +SDict begin 18.2 H.A end + -30 55295 +a -30 55295 a +SDict begin [ /View [/XYZ H.V] /Dest (6989) cvn H.B /DEST pdfmark end + -30 55295 a 3070 57290 a FU(A)381 b(collection)g(of)g +(related)h(softw)-15 b(are)381 b(packages)g(in)g(Slackw)-15 +b(are.)382 b(All)f(KDE)g(packages)h(are)3070 59305 y(in)387 +b(the)6944 59305 y +SDict begin H.S end + 6944 59305 a 6944 59305 a +SDict begin 18.2 H.A end + 6944 59305 +a 6944 59305 a +SDict begin [ /View [/XYZ H.V] /Dest (6990) cvn H.B /DEST pdfmark end + 6944 59305 a FU(\223kde\224)g(series,)h(netw)-15 +b(orking)386 b(packages)h(in)g(the)32621 59305 y +SDict begin H.S end + 32621 +59305 a 32621 59305 a +SDict begin 18.2 H.A end + 32621 59305 a 32621 59305 a +SDict begin [ /View [/XYZ H.V] /Dest (6991) cvn H.B /DEST pdfmark end + 32621 +59305 a FU(\223n\224)h(series,)f(etc.)p Black 49451 73672 +a FR(239)p Black eop end +%%Page: 240 262 +TeXDict begin 240 261 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.240) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (6993) cvn H.B /DEST pdfmark end + -30 2383 a 1131 x FE(Sour)-31 b(ce)430 +b(code)-30 4308 y +SDict begin H.S end + -30 4308 a -30 4308 a +SDict begin 18.2 H.A end + -30 4308 a -30 +4308 a +SDict begin [ /View [/XYZ H.V] /Dest (6994) cvn H.B /DEST pdfmark end + -30 4308 a -30 5083 a +SDict begin H.S end + -30 5083 a -30 5083 a +SDict begin 18.2 H.A end + -30 +5083 a -30 5083 a +SDict begin [ /View [/XYZ H.V] /Dest (6995) cvn H.B /DEST pdfmark end + -30 5083 a 3070 7078 a FU(The)456 b(\(more)h(or)f +(less\))h(human-readable)f(code)g(in)h(which)f(most)g(programs)g(are)h +(written.)3070 9093 y(Source)387 b(code)g(is)g(compiled)g(into)21449 +9093 y +SDict begin H.S end + 21449 9093 a 21449 9093 a +SDict begin 18.2 H.A end + 21449 9093 a 21449 9093 +a +SDict begin [ /View [/XYZ H.V] /Dest (6996) cvn H.B /DEST pdfmark end + 21449 9093 a FU(\223binary\224)h(code.)-30 13045 y +SDict begin H.S end + +-30 13045 a -30 13045 a +SDict begin 18.2 H.A end + -30 13045 a -30 13045 a +SDict begin [ /View [/XYZ H.V] /Dest (6998) cvn H.B /DEST pdfmark end + -30 13045 +a 2014 x FE(Standar)-31 b(d)429 b(Err)-31 b(or)430 b(\(stderr\))-30 +16155 y +SDict begin H.S end + -30 16155 a -30 16155 a +SDict begin 18.2 H.A end + -30 16155 a -30 16155 +a +SDict begin [ /View [/XYZ H.V] /Dest (6999) cvn H.B /DEST pdfmark end + -30 16155 a -30 16930 a +SDict begin H.S end + -30 16930 a -30 16930 a +SDict begin 18.2 H.A end + -30 +16930 a -30 16930 a +SDict begin [ /View [/XYZ H.V] /Dest (7000) cvn H.B /DEST pdfmark end + -30 16930 a 3070 18624 a FU(The)332 +b(Unix-standard)g(output)f(stream)h(for)h(errors.)g(Programs)e(write)i +(an)-23 b(y)332 b(error)h(messages)3070 20638 y(on)387 +b(stderr)-62 b(,)387 b(so)h(that)f(the)-23 b(y)386 b(can)i(be)f +(separated)g(from)h(normal)e(output.)-30 24590 y +SDict begin H.S end + -30 +24590 a -30 24590 a +SDict begin 18.2 H.A end + -30 24590 a -30 24590 a +SDict begin [ /View [/XYZ H.V] /Dest (7002) cvn H.B /DEST pdfmark end + -30 24590 +a 2015 x FE(Standar)-31 b(d)429 b(Input)i(\(stdin\))-30 +27701 y +SDict begin H.S end + -30 27701 a -30 27701 a +SDict begin 18.2 H.A end + -30 27701 a -30 27701 +a +SDict begin [ /View [/XYZ H.V] /Dest (7003) cvn H.B /DEST pdfmark end + -30 27701 a -30 28476 a +SDict begin H.S end + -30 28476 a -30 28476 a +SDict begin 18.2 H.A end + -30 +28476 a -30 28476 a +SDict begin [ /View [/XYZ H.V] /Dest (7004) cvn H.B /DEST pdfmark end + -30 28476 a 3070 30169 a FU(The)547 +b(Unix-standard)g(input)g(stream.)h(Data)g(can)f(be)h(redirected)g(or)g +(piped)f(into)g(a)h(pro-)3070 32184 y(gram')-85 b(s)386 +b(stdin)h(from)g(an)-23 b(y)387 b(source.)-30 36136 y +SDict begin H.S end + +-30 36136 a -30 36136 a +SDict begin 18.2 H.A end + -30 36136 a -30 36136 a +SDict begin [ /View [/XYZ H.V] /Dest (7006) cvn H.B /DEST pdfmark end + -30 36136 +a 2015 x FE(Standar)-31 b(d)429 b(Output)i(\(stdout\))-30 +39246 y +SDict begin H.S end + -30 39246 a -30 39246 a +SDict begin 18.2 H.A end + -30 39246 a -30 39246 +a +SDict begin [ /View [/XYZ H.V] /Dest (7007) cvn H.B /DEST pdfmark end + -30 39246 a -30 40021 a +SDict begin H.S end + -30 40021 a -30 40021 a +SDict begin 18.2 H.A end + -30 +40021 a -30 40021 a +SDict begin [ /View [/XYZ H.V] /Dest (7008) cvn H.B /DEST pdfmark end + -30 40021 a 3070 41715 a FU(The)325 +b(Unix-standard)f(output)g(stream.)i(Normal)e(te)-23 +b(xt)325 b(output)f(from)h(a)h(program)f(is)f(written)3070 +43730 y(to)386 b(stdout,)g(which)g(is)g(separate)g(from)g(the)h(error)f +(messages)g(reported)g(on)g(stderr)h(and)f(can)3070 45744 +y(be)h(piped)g(or)g(redirected)h(into)e(other)h(programs')g(stdin)g(or) +g(to)g(a)h(\002le.)-30 49696 y +SDict begin H.S end + -30 49696 a -30 49696 +a +SDict begin 18.2 H.A end + -30 49696 a -30 49696 a +SDict begin [ /View [/XYZ H.V] /Dest (7010) cvn H.B /DEST pdfmark end + -30 49696 a 2015 x FE(Subnet)-30 +52505 y +SDict begin H.S end + -30 52505 a -30 52505 a +SDict begin 18.2 H.A end + -30 52505 a -30 52505 +a +SDict begin [ /View [/XYZ H.V] /Dest (7011) cvn H.B /DEST pdfmark end + -30 52505 a -30 53280 a +SDict begin H.S end + -30 53280 a -30 53280 a +SDict begin 18.2 H.A end + -30 +53280 a -30 53280 a +SDict begin [ /View [/XYZ H.V] /Dest (7012) cvn H.B /DEST pdfmark end + -30 53280 a 3070 55275 a FU(An)442 +b(IP)g(address)g(range)g(that)g(is)g(part)g(of)g(a)h(lar)-28 +b(ger)442 b(range.)h(F)-23 b(or)441 b(instance,)i(192.168.1.0)f(is)3070 +57290 y(a)378 b(subnet)f(of)h(192.168.0.0)h(\(where)f(0)g(is)g(a)g +(mask)f(meaning)35645 57290 y +SDict begin H.S end + 35645 57290 a 35645 57290 +a +SDict begin 18.2 H.A end + 35645 57290 a 35645 57290 a +SDict begin [ /View [/XYZ H.V] /Dest (7013) cvn H.B /DEST pdfmark end + 35645 57290 a FU(\223unde\002ned\224\);)g +(it)h(is,)g(in)g(f)-15 b(act,)3070 59305 y(the)5351 59305 +y +SDict begin H.S end + 5351 59305 a 5351 59305 a +SDict begin 18.2 H.A end + 5351 59305 a 5351 59305 a +SDict begin [ /View [/XYZ H.V] /Dest (7014) cvn H.B /DEST pdfmark end + +5351 59305 a FU(\223.1\224)388 b(subnet.)p Black -30 +73672 a FR(240)p Black eop end +%%Page: 241 263 +TeXDict begin 241 262 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.241) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7016) cvn H.B /DEST pdfmark end + -30 2383 a 1131 x FE(Superb)-15 +b(loc)-31 b(k)-30 4609 y +SDict begin H.S end + -30 4609 a -30 4609 a +SDict begin 18.2 H.A end + -30 4609 +a -30 4609 a +SDict begin [ /View [/XYZ H.V] /Dest (7017) cvn H.B /DEST pdfmark end + -30 4609 a -30 5384 a +SDict begin H.S end + -30 5384 a -30 5384 +a +SDict begin 18.2 H.A end + -30 5384 a -30 5384 a +SDict begin [ /View [/XYZ H.V] /Dest (7018) cvn H.B /DEST pdfmark end + -30 5384 a 3070 7078 a FU(In)376 +b(Linux,)h(partitions)f(are)h(discussed)e(in)i(terms)f(of)h(blocks.)f +(A)h(block)f(is)h(512)f(bytes.)h(The)3070 9093 y(superblock)386 +b(is)h(the)h(\002rst)e(512)h(bytes)g(of)h(a)f(partition.)-30 +13045 y +SDict begin H.S end + -30 13045 a -30 13045 a +SDict begin 18.2 H.A end + -30 13045 a -30 13045 +a +SDict begin [ /View [/XYZ H.V] /Dest (7020) cvn H.B /DEST pdfmark end + -30 13045 a 2014 x FE(Supplemental)428 b(disk)-30 16155 +y +SDict begin H.S end + -30 16155 a -30 16155 a +SDict begin 18.2 H.A end + -30 16155 a -30 16155 a +SDict begin [ /View [/XYZ H.V] /Dest (7021) cvn H.B /DEST pdfmark end + -30 +16155 a -30 16930 a +SDict begin H.S end + -30 16930 a -30 16930 a +SDict begin 18.2 H.A end + -30 16930 +a -30 16930 a +SDict begin [ /View [/XYZ H.V] /Dest (7022) cvn H.B /DEST pdfmark end + -30 16930 a 3070 18624 a FU(In)537 b(Slackw)-15 +b(are,)536 b(a)i(\003opp)-15 b(y)536 b(disk)g(used)h(during)f +(installation)g(that)h(contains)f(neither)h(the)3070 +20638 y(k)-15 b(ernel)412 b(\(which)g(is)h(on)g(the)f(boot)h(disk\))f +(nor)h(the)g(root)f(\002lesystem)g(\(which)g(is)h(on)g(the)f(root)3070 +22653 y(disk\),)307 b(b)-31 b(ut)307 b(additional)g(needed)g(\002les)g +(such)g(as)h(netw)-15 b(ork)306 b(modules)h(or)g(PCMCIA)f(support.)-30 +26605 y +SDict begin H.S end + -30 26605 a -30 26605 a +SDict begin 18.2 H.A end + -30 26605 a -30 26605 +a +SDict begin [ /View [/XYZ H.V] /Dest (7024) cvn H.B /DEST pdfmark end + -30 26605 a 2015 x FE(Suspended)429 b(pr)-31 b(ocess)-30 +29715 y +SDict begin H.S end + -30 29715 a -30 29715 a +SDict begin 18.2 H.A end + -30 29715 a -30 29715 +a +SDict begin [ /View [/XYZ H.V] /Dest (7025) cvn H.B /DEST pdfmark end + -30 29715 a -30 30490 a +SDict begin H.S end + -30 30490 a -30 30490 a +SDict begin 18.2 H.A end + -30 +30490 a -30 30490 a +SDict begin [ /View [/XYZ H.V] /Dest (7026) cvn H.B /DEST pdfmark end + -30 30490 a 3070 32184 a FU(A)387 +b(process)g(which)g(has)g(been)h(frozen)f(until)g(killed)f(or)i +(resumed.)-30 36136 y +SDict begin H.S end + -30 36136 a -30 36136 a +SDict begin 18.2 H.A end + -30 36136 +a -30 36136 a +SDict begin [ /View [/XYZ H.V] /Dest (7028) cvn H.B /DEST pdfmark end + -30 36136 a 2015 x FE(Swap)430 b(space)-30 +39246 y +SDict begin H.S end + -30 39246 a -30 39246 a +SDict begin 18.2 H.A end + -30 39246 a -30 39246 +a +SDict begin [ /View [/XYZ H.V] /Dest (7029) cvn H.B /DEST pdfmark end + -30 39246 a -30 40021 a +SDict begin H.S end + -30 40021 a -30 40021 a +SDict begin 18.2 H.A end + -30 +40021 a -30 40021 a +SDict begin [ /View [/XYZ H.V] /Dest (7030) cvn H.B /DEST pdfmark end + -30 40021 a 3070 41715 a FU(Disk)496 +b(space)h(used)f(by)h(the)f(k)-15 b(ernel)496 b(as)24349 +41715 y +SDict begin H.S end + 24349 41715 a 24349 41715 a +SDict begin 18.2 H.A end + 24349 41715 a 24349 +41715 a +SDict begin [ /View [/XYZ H.V] /Dest (7031) cvn H.B /DEST pdfmark end + 24349 41715 a FU(\223virtual\224)g(RAM.)h(It)f(is)h(slo)-39 +b(wer)496 b(than)h(RAM,)f(b)-31 b(ut)3070 43730 y(because)515 +b(disk)h(space)g(is)f(cheaper)-62 b(,)517 b(sw)-15 b(ap)515 +b(is)g(usually)g(more)h(plentiful.)f(Sw)-15 b(ap)515 +b(space)h(is)3070 45744 y(useful)328 b(to)h(the)f(k)-15 +b(ernel)328 b(for)h(holding)f(lesser)-31 b(-used)328 +b(data)h(and)g(as)g(a)g(f)-15 b(allback)328 b(when)g(ph)-8 +b(ysical)3070 47759 y(RAM)386 b(is)h(e)-23 b(xhausted.)-30 +51711 y +SDict begin H.S end + -30 51711 a -30 51711 a +SDict begin 18.2 H.A end + -30 51711 a -30 51711 +a +SDict begin [ /View [/XYZ H.V] /Dest (7033) cvn H.B /DEST pdfmark end + -30 51711 a 2015 x FE(Symbolic)429 b(link)-30 54821 +y +SDict begin H.S end + -30 54821 a -30 54821 a +SDict begin 18.2 H.A end + -30 54821 a -30 54821 a +SDict begin [ /View [/XYZ H.V] /Dest (7034) cvn H.B /DEST pdfmark end + -30 +54821 a -30 55596 a +SDict begin H.S end + -30 55596 a -30 55596 a +SDict begin 18.2 H.A end + -30 55596 +a -30 55596 a +SDict begin [ /View [/XYZ H.V] /Dest (7035) cvn H.B /DEST pdfmark end + -30 55596 a 3070 57290 a FU(A)i(special)h(\002le)f(that)h +(simply)f(points)f(to)i(the)g(location)f(of)h(another)f(\002le.)h +(Symbolic)f(links)3070 59305 y(are)387 b(used)g(to)g(a)-31 +b(v)g(oid)387 b(data)h(duplication)e(when)h(a)h(\002le)f(is)g(needed)g +(in)g(multiple)f(locations.)p Black 49451 73672 a FR(241)p +Black eop end +%%Page: 242 264 +TeXDict begin 242 263 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.242) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7037) cvn H.B /DEST pdfmark end + -30 2383 a 1131 x FE(T)-124 b(a)-15 +b(g\002le)-30 4633 y +SDict begin H.S end + -30 4633 a -30 4633 a +SDict begin 18.2 H.A end + -30 4633 a +-30 4633 a +SDict begin [ /View [/XYZ H.V] /Dest (7038) cvn H.B /DEST pdfmark end + -30 4633 a -30 5408 a +SDict begin H.S end + -30 5408 a -30 5408 +a +SDict begin 18.2 H.A end + -30 5408 a -30 5408 a +SDict begin [ /View [/XYZ H.V] /Dest (7039) cvn H.B /DEST pdfmark end + -30 5408 a 3070 7078 a FU(A)620 +b(\002le)g(used)g(by)g(the)g(Slackw)-15 b(are)22615 7078 +y +SDict begin H.S end + 22615 7078 a 22615 7078 a +SDict begin 18.2 H.A end + 22615 7078 a 22615 7078 a +SDict begin [ /View [/XYZ H.V] /Dest (7040) cvn H.B /DEST pdfmark end + +22615 7078 a FP(setup)620 b FU(program)g(during)f(installation,)h +(which)g(de-)3070 9093 y(scribes)387 b(a)g(set)g(of)h(packages)f(to)g +(be)g(installed.)-30 13045 y +SDict begin H.S end + -30 13045 a -30 13045 a +SDict begin 18.2 H.A end + +-30 13045 a -30 13045 a +SDict begin [ /View [/XYZ H.V] /Dest (7042) cvn H.B /DEST pdfmark end + -30 13045 a 2014 x FE(T)-93 b(erminal)-30 +15854 y +SDict begin H.S end + -30 15854 a -30 15854 a +SDict begin 18.2 H.A end + -30 15854 a -30 15854 +a +SDict begin [ /View [/XYZ H.V] /Dest (7043) cvn H.B /DEST pdfmark end + -30 15854 a -30 16629 a +SDict begin H.S end + -30 16629 a -30 16629 a +SDict begin 18.2 H.A end + -30 +16629 a -30 16629 a +SDict begin [ /View [/XYZ H.V] /Dest (7044) cvn H.B /DEST pdfmark end + -30 16629 a 3070 18624 a FU(A)462 +b(human-computer)f(interf)-15 b(ace)461 b(consisting)g(of)h(at)h(least) +e(a)i(screen)f(\(or)g(virtual)g(screen\))3070 20638 y(and)387 +b(some)g(method)f(of)i(input)e(\(almost)h(al)-15 b(w)g(ays)386 +b(at)h(least)g(a)h(k)-15 b(e)-23 b(yboard\).)-30 24590 +y +SDict begin H.S end + -30 24590 a -30 24590 a +SDict begin 18.2 H.A end + -30 24590 a -30 24590 a +SDict begin [ /View [/XYZ H.V] /Dest (7046) cvn H.B /DEST pdfmark end + -30 +24590 a 2015 x FE(T)-124 b(oolkit,)430 b(GUI)-30 27640 +y +SDict begin H.S end + -30 27640 a -30 27640 a +SDict begin 18.2 H.A end + -30 27640 a -30 27640 a +SDict begin [ /View [/XYZ H.V] /Dest (7047) cvn H.B /DEST pdfmark end + -30 +27640 a -30 28415 a +SDict begin H.S end + -30 28415 a -30 28415 a +SDict begin 18.2 H.A end + -30 28415 +a -30 28415 a +SDict begin [ /View [/XYZ H.V] /Dest (7048) cvn H.B /DEST pdfmark end + -30 28415 a 3070 30169 a FU(A)424 b(GUI)g(toolkit)f(is)h +(a)h(collection)e(of)i(libraries)e(that)h(pro)-23 b(vide)424 +b(a)g(programmer)g(with)g(code)3070 32184 y(to)320 b(dra)-23 +b(w)7990 32184 y +SDict begin H.S end + 7990 32184 a 7990 32184 a +SDict begin 18.2 H.A end + 7990 32184 +a 7990 32184 a +SDict begin [ /View [/XYZ H.V] /Dest (7049) cvn H.B /DEST pdfmark end + 7990 32184 a FU(\223widgets\224)320 b(such)g(as)g +(scrollbars,)g(checkbox)-23 b(es,)320 b(etc.)g(and)h(construct)e(a)h +(graphical)3070 34199 y(interf)-15 b(ace.)387 b(The)g(GUI)g(toolkit)g +(used)g(by)g(a)h(program)f(often)g(de\002nes)f(its)41704 +34199 y +SDict begin H.S end + 41704 34199 a 41704 34199 a +SDict begin 18.2 H.A end + 41704 34199 a 41704 +34199 a +SDict begin [ /View [/XYZ H.V] /Dest (7050) cvn H.B /DEST pdfmark end + 41704 34199 a FU(\223look)h(and)h(feel\224.)-30 +38151 y +SDict begin H.S end + -30 38151 a -30 38151 a +SDict begin 18.2 H.A end + -30 38151 a -30 38151 +a +SDict begin [ /View [/XYZ H.V] /Dest (7052) cvn H.B /DEST pdfmark end + -30 38151 a 2014 x FE(UID)-30 40959 y +SDict begin H.S end + -30 40959 a -30 +40959 a +SDict begin 18.2 H.A end + -30 40959 a -30 40959 a +SDict begin [ /View [/XYZ H.V] /Dest (7053) cvn H.B /DEST pdfmark end + -30 40959 a -30 41734 +a +SDict begin H.S end + -30 41734 a -30 41734 a +SDict begin 18.2 H.A end + -30 41734 a -30 41734 a +SDict begin [ /View [/XYZ H.V] /Dest (7054) cvn H.B /DEST pdfmark end + -30 +41734 a 3070 43730 a FU(User)415 b(Identi\002er)-85 b(.)416 +b(A)g(unique)f(number)g(that)h(identi\002es)e(a)i(user)g(to)g(the)g +(system.)f(UIDs)h(are)3070 45744 y(used)586 b(by)h(most)f(programs)h +(instead)f(of)h(usernames)g(because)g(a)g(number)f(is)h(easier)g(to) +3070 47759 y(deal)482 b(with;)f(usernames)h(are)h(generally)e(only)h +(used)g(when)g(the)g(user)g(has)g(to)g(see)h(things)3070 +49774 y(happen.)-30 53726 y +SDict begin H.S end + -30 53726 a -30 53726 a +SDict begin 18.2 H.A end + -30 +53726 a -30 53726 a +SDict begin [ /View [/XYZ H.V] /Dest (7056) cvn H.B /DEST pdfmark end + -30 53726 a 2014 x FE(VESA)-30 56534 +y +SDict begin H.S end + -30 56534 a -30 56534 a +SDict begin 18.2 H.A end + -30 56534 a -30 56534 a +SDict begin [ /View [/XYZ H.V] /Dest (7057) cvn H.B /DEST pdfmark end + -30 +56534 a -30 57309 a +SDict begin H.S end + -30 57309 a -30 57309 a +SDict begin 18.2 H.A end + -30 57309 +a -30 57309 a +SDict begin [ /View [/XYZ H.V] /Dest (7058) cvn H.B /DEST pdfmark end + -30 57309 a 3070 59305 a FU(V)-93 b(ideo)300 +b(Electronics)f(Standards)h(Association.)g(The)g(term)34607 +59305 y +SDict begin H.S end + 34607 59305 a 34607 59305 a +SDict begin 18.2 H.A end + 34607 59305 a 34607 +59305 a +SDict begin [ /View [/XYZ H.V] /Dest (7059) cvn H.B /DEST pdfmark end + 34607 59305 a FU(\223VESA\224)g(is)g(often)g(used)h(to)f(de-) +3070 61319 y(note)338 b(a)i(standard)e(speci\002ed)g(by)h(said)g +(Association.)f(Nearly)h(all)g(modern)g(video)f(adapters)3070 +63334 y(are)387 b(VESA-compliant.)p Black -30 73672 a +FR(242)p Black eop end +%%Page: 243 265 +TeXDict begin 243 264 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.243) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7061) cvn H.B /DEST pdfmark end + -30 2383 a 1131 x FE(Vir)31 b(tual)430 +b(terminal)-30 4308 y +SDict begin H.S end + -30 4308 a -30 4308 a +SDict begin 18.2 H.A end + -30 4308 +a -30 4308 a +SDict begin [ /View [/XYZ H.V] /Dest (7062) cvn H.B /DEST pdfmark end + -30 4308 a -30 5083 a +SDict begin H.S end + -30 5083 a -30 5083 +a +SDict begin 18.2 H.A end + -30 5083 a -30 5083 a +SDict begin [ /View [/XYZ H.V] /Dest (7063) cvn H.B /DEST pdfmark end + -30 5083 a 3070 7078 a FU(The)350 +b(use)g(of)h(softw)-15 b(are)350 b(to)g(simulate)g(multiple)f +(terminals)h(while)g(using)g(only)g(a)g(single)g(set)3070 +9093 y(of)403 b(input/output)f(de)-39 b(vices)404 b(\(k)-15 +b(e)-23 b(yboard,)403 b(monitor)-62 b(,)404 b(mouse\).)f(Special)h(k) +-15 b(e)-23 b(ystrok)-15 b(es)402 b(switch)3070 11108 +y(between)387 b(virtual)f(terminals)h(at)g(a)h(single)f(ph)-8 +b(ysical)386 b(terminal.)-30 15059 y +SDict begin H.S end + -30 15059 a -30 +15059 a +SDict begin 18.2 H.A end + -30 15059 a -30 15059 a +SDict begin [ /View [/XYZ H.V] /Dest (7065) cvn H.B /DEST pdfmark end + -30 15059 a 2015 x FE(Windo)-23 +b(w)430 b(mana)-15 b(g)15 b(er)-30 18194 y +SDict begin H.S end + -30 18194 +a -30 18194 a +SDict begin 18.2 H.A end + -30 18194 a -30 18194 a +SDict begin [ /View [/XYZ H.V] /Dest (7066) cvn H.B /DEST pdfmark end + -30 18194 a -30 +18969 a +SDict begin H.S end + -30 18969 a -30 18969 a +SDict begin 18.2 H.A end + -30 18969 a -30 18969 +a +SDict begin [ /View [/XYZ H.V] /Dest (7067) cvn H.B /DEST pdfmark end + -30 18969 a 3070 20638 a FU(An)527 b(X)h(program)f(whose)g(purpose)h +(is)f(to)h(pro)-23 b(vide)527 b(a)h(graphical)f(interf)-15 +b(ace)527 b(be)-23 b(yond)527 b(the)3070 22653 y(simple)413 +b(rectangle-dra)-23 b(wing)413 b(of)h(the)h(X)f(W)-62 +b(indo)-39 b(w)414 b(System.)f(W)-62 b(indo)-39 b(w)414 +b(managers)g(gener)-31 b(-)3070 24668 y(ally)387 b(pro)-23 +b(vide)386 b(titlebars,)h(menus)g(for)g(running)g(programs,)g(etc.)-30 +28620 y +SDict begin H.S end + -30 28620 a -30 28620 a +SDict begin 18.2 H.A end + -30 28620 a -30 28620 +a +SDict begin [ /View [/XYZ H.V] /Dest (7069) cvn H.B /DEST pdfmark end + -30 28620 a 2014 x FE(W)-93 b(orking)430 b(director)15 +b(y)-30 31754 y +SDict begin H.S end + -30 31754 a -30 31754 a +SDict begin 18.2 H.A end + -30 31754 a -30 +31754 a +SDict begin [ /View [/XYZ H.V] /Dest (7070) cvn H.B /DEST pdfmark end + -30 31754 a -30 32529 a +SDict begin H.S end + -30 32529 a -30 32529 +a +SDict begin 18.2 H.A end + -30 32529 a -30 32529 a +SDict begin [ /View [/XYZ H.V] /Dest (7071) cvn H.B /DEST pdfmark end + -30 32529 a 3070 34199 a FU(The)387 +b(directory)g(in)g(which)g(a)g(program)g(considers)g(itself)g(to)g(be)g +(while)g(running.)-30 38151 y +SDict begin H.S end + -30 38151 a -30 38151 a +SDict begin 18.2 H.A end + +-30 38151 a -30 38151 a +SDict begin [ /View [/XYZ H.V] /Dest (7073) cvn H.B /DEST pdfmark end + -30 38151 a 2014 x FE(Wrapper)430 +b(pr)-31 b(ogram)-30 41285 y +SDict begin H.S end + -30 41285 a -30 41285 a +SDict begin 18.2 H.A end + +-30 41285 a -30 41285 a +SDict begin [ /View [/XYZ H.V] /Dest (7074) cvn H.B /DEST pdfmark end + -30 41285 a -30 42060 a +SDict begin H.S end + -30 42060 +a -30 42060 a +SDict begin 18.2 H.A end + -30 42060 a -30 42060 a +SDict begin [ /View [/XYZ H.V] /Dest (7075) cvn H.B /DEST pdfmark end + -30 42060 a 3070 +43730 a FU(A)468 b(program)f(whose)h(sole)g(purpose)f(is)h(to)g(run)g +(other)g(programs,)f(b)-31 b(ut)468 b(change)g(their)g(be-)3070 +45744 y(ha)-31 b(vior)387 b(in)g(some)g(w)-15 b(ay)386 +b(by)i(altering)e(their)i(en)-62 b(vironments)386 b(or)h(\002ltering)f +(their)i(input.)-30 49696 y +SDict begin H.S end + -30 49696 a -30 49696 a +SDict begin 18.2 H.A end + -30 +49696 a -30 49696 a +SDict begin [ /View [/XYZ H.V] /Dest (7077) cvn H.B /DEST pdfmark end + -30 49696 a 2015 x FE(X)431 b(ser)15 +b(ver)-30 52505 y +SDict begin H.S end + -30 52505 a -30 52505 a +SDict begin 18.2 H.A end + -30 52505 a +-30 52505 a +SDict begin [ /View [/XYZ H.V] /Dest (7078) cvn H.B /DEST pdfmark end + -30 52505 a -30 53280 a +SDict begin H.S end + -30 53280 a -30 53280 +a +SDict begin 18.2 H.A end + -30 53280 a -30 53280 a +SDict begin [ /View [/XYZ H.V] /Dest (7079) cvn H.B /DEST pdfmark end + -30 53280 a 3070 55275 a FU(The)315 +b(program)h(in)g(the)f(X)h(W)-62 b(indo)-39 b(w)316 b(System)f(which)g +(interf)-15 b(aces)315 b(with)h(graphics)f(hardw)-15 +b(are)3070 57290 y(and)387 b(handles)g(the)g(actual)g(running)g(of)g(X) +g(programs.)p Black 49451 73672 a FR(243)p Black eop +end +%%Page: 244 266 +TeXDict begin 244 265 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.244) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7081) cvn H.B /DEST pdfmark end + -30 2383 a 1131 x FE(X)431 b(Windo)-23 +b(w)429 b(System)-30 4609 y +SDict begin H.S end + -30 4609 a -30 4609 a +SDict begin 18.2 H.A end + -30 +4609 a -30 4609 a +SDict begin [ /View [/XYZ H.V] /Dest (7082) cvn H.B /DEST pdfmark end + -30 4609 a -30 5384 a +SDict begin H.S end + -30 5384 a -30 +5384 a +SDict begin 18.2 H.A end + -30 5384 a -30 5384 a +SDict begin [ /View [/XYZ H.V] /Dest (7083) cvn H.B /DEST pdfmark end + -30 5384 a 3070 7078 a FU(Netw)-15 +b(ork-oriented)379 b(graphical)h(interf)-15 b(ace)380 +b(system)g(used)g(on)g(most)g(Unix-lik)-15 b(e)380 b(operating)3070 +9093 y(systems,)386 b(including)h(Linux.)p Black -30 +73672 a FR(244)p Black eop end +%%Page: 245 267 +TeXDict begin 245 266 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.245) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (GPL) cvn H.B /DEST pdfmark end + -30 2383 a 2345 x FS(Appendix)895 +b(A.)-30 10743 y FO(The)1287 b(GNU)f(General)-30 16759 +y(Pub)-46 b(lic)1288 b(License)p -30 24332 51806 56 v +-30 25882 a +SDict begin H.S end + -30 25882 a -30 25882 a +SDict begin 18.2 H.A end + -30 25882 a -30 25882 +a +SDict begin [ /View [/XYZ H.V] /Dest (7086) cvn H.B /DEST pdfmark end + -30 25882 a 1051 x FU(GNU)387 b(GENERAL)g(PUBLIC)f(LICENSE)-30 +30962 y(V)-172 b(ersion)387 b(2,)h(June)f(1991)-30 32977 +y(Cop)-15 b(yright)386 b(\(C\))h(1989,)g(1991)g(Free)h(Softw)-15 +b(are)386 b(F)-23 b(oundation,)386 b(Inc.)-30 34991 y(59)h(T)-108 +b(emple)387 b(Place,)g(Suite)g(330,)g(Boston,)g(MA)775 +b(02111-1307)e(USA)-30 37006 y(Ev)-23 b(eryone)387 b(is)g(permitted)g +(to)g(cop)-15 b(y)386 b(and)i(distrib)-31 b(ute)386 b(v)-23 +b(erbatim)386 b(copies)h(of)h(this)-30 39021 y(license)f(document,)g(b) +-31 b(ut)387 b(changing)g(it)g(is)g(not)g(allo)-39 b(wed.)-30 +39356 y +SDict begin H.S end + -30 39356 a -30 39356 a +SDict begin 18.2 H.A end + -30 39356 a -30 39356 +a +SDict begin [ /View [/XYZ H.V] /Dest (7087) cvn H.B /DEST pdfmark end + -30 39356 a 4779 x FE(Preamb)-15 b(le)-30 44929 y +SDict begin H.S end + -30 +44929 a -30 44929 a +SDict begin 18.2 H.A end + -30 44929 a -30 44929 a +SDict begin [ /View [/XYZ H.V] /Dest (7089) cvn H.B /DEST pdfmark end + -30 44929 +a 1995 x FU(The)373 b(licenses)g(for)g(most)g(softw)-15 +b(are)372 b(are)h(designed)g(to)g(tak)-15 b(e)373 b(a)-23 +b(w)-15 b(ay)372 b(your)h(freedom)g(to)g(share)g(and)-30 +48939 y(change)544 b(it.)g(By)g(contrast,)g(the)g(GNU)f(General)h +(Public)f(License)h(is)g(intended)f(to)h(guarantee)-30 +50954 y(your)473 b(freedom)g(to)g(share)h(and)f(change)g(free)h(softw) +-15 b(are--to)472 b(mak)-15 b(e)473 b(sure)g(the)g(softw)-15 +b(are)473 b(is)g(free)-30 52968 y(for)489 b(all)f(its)h(users.)g(This)f +(General)h(Public)f(License)g(applies)g(to)h(most)f(of)h(the)f(Free)h +(Softw)-15 b(are)-30 54983 y(F)-23 b(oundation')-85 b(s)589 +b(softw)-15 b(are)590 b(and)h(to)f(an)-23 b(y)591 b(other)f(program)h +(whose)f(authors)g(commit)g(to)h(using)-30 56998 y(it.)441 +b(\(Some)g(other)g(Free)g(Softw)-15 b(are)440 b(F)-23 +b(oundation)440 b(softw)-15 b(are)441 b(is)f(co)-23 b(v)g(ered)441 +b(by)g(the)g(GNU)g(Library)-30 59012 y(General)387 b(Public)g(License)g +(instead.\))g(Y)-170 b(ou)387 b(can)g(apply)g(it)g(to)h(your)f +(programs,)g(too.)-30 60123 y +SDict begin H.S end + -30 60123 a -30 60123 a +SDict begin 18.2 H.A end + +-30 60123 a -30 60123 a +SDict begin [ /View [/XYZ H.V] /Dest (7090) cvn H.B /DEST pdfmark end + -30 60123 a 1679 x FU(When)336 +b(we)g(speak)g(of)g(free)g(softw)-15 b(are,)336 b(we)g(are)g(referring) +g(to)g(freedom,)g(not)g(price.)g(Our)g(General)-30 63817 +y(Public)483 b(Licenses)f(are)i(designed)f(to)g(mak)-15 +b(e)482 b(sure)i(that)f(you)g(ha)-31 b(v)-23 b(e)483 +b(the)g(freedom)g(to)g(distrib)-31 b(ute)-30 65831 y(copies)526 +b(of)h(free)g(softw)-15 b(are)525 b(\(and)i(char)-28 +b(ge)526 b(for)h(this)f(service)g(if)h(you)f(wish\),)g(that)h(you)f +(recei)-39 b(v)-23 b(e)p Black -30 73672 a +SDict begin H.S end + -30 73672 +a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (7091) cvn H.B /DEST pdfmark end + -30 73672 a 49451 +74722 a FR(245)p Black eop end +%%Page: 246 268 +TeXDict begin 246 267 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.246) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -278 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 +b(al)386 b(Public)h(License)p Black -30 3490 a FU(source)551 +b(code)f(or)h(can)f(get)h(it)f(if)g(you)g(w)-15 b(ant)550 +b(it,)h(that)f(you)g(can)h(change)f(the)h(softw)-15 b(are)550 +b(or)g(use)-30 5505 y(pieces)387 b(of)h(it)f(in)g(ne)-39 +b(w)387 b(free)h(programs;)f(and)g(that)g(you)g(kno)-39 +b(w)387 b(you)g(can)h(do)f(these)g(things.)-30 8294 y(T)-124 +b(o)421 b(protect)g(your)f(rights,)h(we)g(need)g(to)g(mak)-15 +b(e)420 b(restrictions)g(that)h(forbid)f(an)-23 b(yone)421 +b(to)g(den)-23 b(y)420 b(you)-30 10309 y(these)i(rights)g(or)g(to)g +(ask)h(you)f(to)g(surrender)g(the)g(rights.)g(These)g(restrictions)g +(translate)f(to)i(cer)-31 b(-)-30 12324 y(tain)355 b(responsibilities)f +(for)h(you)h(if)f(you)g(distrib)-31 b(ute)355 b(copies)g(of)g(the)g +(softw)-15 b(are,)356 b(or)f(if)g(you)h(modify)-30 14338 +y(it.)-30 15129 y +SDict begin H.S end + -30 15129 a -30 15129 a +SDict begin 18.2 H.A end + -30 15129 a +-30 15129 a +SDict begin [ /View [/XYZ H.V] /Dest (7092) cvn H.B /DEST pdfmark end + -30 15129 a 1999 x FU(F)-23 b(or)403 b(e)-23 +b(xample,)403 b(if)g(you)g(distrib)-31 b(ute)402 b(copies)g(of)i(such)e +(a)i(program,)f(whether)g(gratis)g(or)g(for)g(a)g(fee,)-30 +19143 y(you)486 b(must)g(gi)-39 b(v)-23 b(e)486 b(the)h(recipients)f +(all)g(the)g(rights)g(that)g(you)h(ha)-31 b(v)-23 b(e.)486 +b(Y)-170 b(ou)486 b(must)g(mak)-15 b(e)486 b(sure)g(that)-30 +21157 y(the)-23 b(y)-101 b(,)436 b(too,)g(recei)-39 b(v)-23 +b(e)436 b(or)g(can)g(get)f(the)h(source)g(code.)g(And)f(you)h(must)f +(sho)-39 b(w)436 b(them)f(these)g(terms)-30 23172 y(so)387 +b(the)-23 b(y)387 b(kno)-39 b(w)387 b(their)g(rights.)-30 +24282 y +SDict begin H.S end + -30 24282 a -30 24282 a +SDict begin 18.2 H.A end + -30 24282 a -30 24282 +a +SDict begin [ /View [/XYZ H.V] /Dest (7093) cvn H.B /DEST pdfmark end + -30 24282 a 1680 x FU(W)-124 b(e)417 b(protect)f(your)h(rights)f +(with)g(tw)-15 b(o)416 b(steps:)g(\(1\))g(cop)-15 b(yright)416 +b(the)g(softw)-15 b(are,)417 b(and)f(\(2\))h(of)-39 b(fer)417 +b(you)-30 27976 y(this)459 b(license)g(which)g(gi)-39 +b(v)-23 b(es)459 b(you)g(le)-23 b(g)-8 b(al)459 b(permission)f(to)i +(cop)-15 b(y)-101 b(,)459 b(distrib)-31 b(ute)458 b(and/or)h(modify)g +(the)-30 29991 y(softw)-15 b(are.)-30 30781 y +SDict begin H.S end + -30 30781 +a -30 30781 a +SDict begin 18.2 H.A end + -30 30781 a -30 30781 a +SDict begin [ /View [/XYZ H.V] /Dest (7094) cvn H.B /DEST pdfmark end + -30 30781 a 1999 +x FU(Also,)443 b(for)h(each)f(author')-85 b(s)443 b(protection)f(and)h +(ours,)h(we)f(w)-15 b(ant)442 b(to)h(mak)-15 b(e)443 +b(certain)g(that)g(e)-39 b(v)-23 b(eryone)-30 34795 y(understands)441 +b(that)h(there)g(is)g(no)g(w)-15 b(arranty)442 b(for)g(this)f(free)i +(softw)-15 b(are.)442 b(If)g(the)g(softw)-15 b(are)441 +b(is)h(mod-)-30 36810 y(i\002ed)425 b(by)h(someone)f(else)h(and)f +(passed)h(on,)g(we)g(w)-15 b(ant)425 b(its)g(recipients)g(to)h(kno)-39 +b(w)425 b(that)h(what)f(the)-23 b(y)-30 38824 y(ha)-31 +b(v)-23 b(e)357 b(is)f(not)h(the)f(original,)h(so)f(that)h(an)-23 +b(y)356 b(problems)g(introduced)g(by)h(others)f(will)g(not)h(re\003ect) +f(on)-30 40839 y(the)387 b(original)g(authors')g(reputations.)-30 +41949 y +SDict begin H.S end + -30 41949 a -30 41949 a +SDict begin 18.2 H.A end + -30 41949 a -30 41949 +a +SDict begin [ /View [/XYZ H.V] /Dest (7095) cvn H.B /DEST pdfmark end + -30 41949 a 1680 x FU(Finally)-101 b(,)465 b(an)-23 +b(y)465 b(free)h(program)f(is)h(threatened)f(constantly)f(by)h(softw) +-15 b(are)465 b(patents.)h(W)-124 b(e)465 b(wish)g(to)-30 +45643 y(a)-31 b(v)g(oid)382 b(the)h(danger)f(that)g(redistrib)-31 +b(utors)382 b(of)g(a)h(free)g(program)f(will)g(indi)-39 +b(vidually)381 b(obtain)h(patent)-30 47658 y(licenses,)396 +b(in)f(ef)-39 b(fect)396 b(making)f(the)h(program)f(proprietary)-101 +b(.)396 b(T)-124 b(o)396 b(pre)-39 b(v)-23 b(ent)395 +b(this,)h(we)f(ha)-31 b(v)-23 b(e)396 b(made)f(it)-30 +49673 y(clear)388 b(that)f(an)-23 b(y)387 b(patent)g(must)f(be)i +(licensed)f(for)g(e)-39 b(v)-23 b(eryone')-85 b(s)387 +b(free)h(use)f(or)g(not)g(licensed)g(at)g(all.)-30 50783 +y +SDict begin H.S end + -30 50783 a -30 50783 a +SDict begin 18.2 H.A end + -30 50783 a -30 50783 a +SDict begin [ /View [/XYZ H.V] /Dest (7096) cvn H.B /DEST pdfmark end + -30 +50783 a 1679 x FU(The)g(precise)h(terms)f(and)g(conditions)f(for)h(cop) +-15 b(ying,)387 b(distrib)-31 b(ution)386 b(and)h(modi\002cation)f +(follo)-39 b(w)-101 b(.)-30 53573 y +SDict begin H.S end + -30 53573 a -30 53573 +a +SDict begin 18.2 H.A end + -30 53573 a -30 53573 a +SDict begin [ /View [/XYZ H.V] /Dest (7097) cvn H.B /DEST pdfmark end + -30 53573 a 4778 x FE(TERMS)430 +b(AND)h(CONDITIONS)-30 59145 y +SDict begin H.S end + -30 59145 a -30 59145 +a +SDict begin 18.2 H.A end + -30 59145 a -30 59145 a +SDict begin [ /View [/XYZ H.V] /Dest (7099) cvn H.B /DEST pdfmark end + -30 59145 a -30 59145 a +SDict begin H.S end + -30 +59145 a -30 59145 a +SDict begin 18.2 H.A end + -30 59145 a -30 59145 a +SDict begin [ /View [/XYZ H.V] /Dest (7100) cvn H.B /DEST pdfmark end + -30 59145 +a 1996 x FR(TERMS)472 b(AND)g(CONDITIONS)g(FOR)g(COPYING,)g(DISTRIB)-15 +b(UTION)471 b(AND)h(MODIFICA-)-30 63155 y(TION)-30 63174 +y +SDict begin H.S end + -30 63174 a -30 63174 a +SDict begin 18.2 H.A end + -30 63174 a -30 63174 a +SDict begin [ /View [/XYZ H.V] /Dest (7101) cvn H.B /DEST pdfmark end + -30 +63174 a -30 63949 a +SDict begin H.S end + -30 63949 a -30 63949 a +SDict begin 18.2 H.A end + -30 63949 +a -30 63949 a +SDict begin [ /View [/XYZ H.V] /Dest (7102) cvn H.B /DEST pdfmark end + -30 63949 a Black 9723 x FR(246)p Black +eop end +%%Page: 247 269 +TeXDict begin 247 268 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.247) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 22832 -1636 a FR(Appendix)386 b(A.)i(The)f(GNU)g(Gener) +-23 b(al)387 b(Public)f(License)p Black Black 1210 3611 +a FU(1.)p Black 2760 3611 a +SDict begin H.S end + 2760 3611 a 2760 3611 a +SDict begin 18.2 H.A end + 2760 +3611 a 2760 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (7103) cvn H.B /DEST pdfmark end + 2760 3611 a FU(This)608 b(License)h(applies)f(to)g +(an)-23 b(y)609 b(program)f(or)h(other)g(w)-15 b(ork)608 +b(which)g(contains)g(a)h(notice)2760 5626 y(placed)449 +b(by)h(the)g(cop)-15 b(yright)448 b(holder)i(saying)f(it)g(may)h(be)g +(distrib)-31 b(uted)448 b(under)i(the)g(terms)f(of)2760 +7640 y(this)373 b(General)i(Public)e(License.)i(The)23354 +7640 y +SDict begin H.S end + 23354 7640 a 23354 7640 a +SDict begin 18.2 H.A end + 23354 7640 a 23354 7640 +a +SDict begin [ /View [/XYZ H.V] /Dest (7104) cvn H.B /DEST pdfmark end + 23354 7640 a FU(\223Program\224,)f(belo)-39 b(w)-101 +b(,)375 b(refers)g(to)f(an)-23 b(y)374 b(such)g(program)2760 +9655 y(or)440 b(w)-15 b(ork,)440 b(and)g(a)12294 9655 +y +SDict begin H.S end + 12294 9655 a 12294 9655 a +SDict begin 18.2 H.A end + 12294 9655 a 12294 9655 a +SDict begin [ /View [/XYZ H.V] /Dest (7105) cvn H.B /DEST pdfmark end + +12294 9655 a FU(\223w)-15 b(ork)440 b(based)f(on)h(the)g(Program\224)g +(means)g(either)g(the)g(Program)f(or)h(an)-23 b(y)2760 +11670 y(deri)-39 b(v)g(ati)g(v)-23 b(e)447 b(w)-15 b(ork)446 +b(under)h(cop)-15 b(yright)445 b(la)-23 b(w:)447 b(that)f(is)h(to)g +(say)-101 b(,)447 b(a)g(w)-15 b(ork)446 b(containing)g(the)h(Pro-)2760 +13684 y(gram)e(or)h(a)g(portion)f(of)h(it,)g(either)g(v)-23 +b(erbatim)445 b(or)h(with)f(modi\002cations)f(and/or)i(translated)2760 +15699 y(into)354 b(another)g(language.)h(\(Hereinafter)-62 +b(,)356 b(translation)d(is)i(included)f(without)g(limitation)f(in)2760 +17714 y(the)387 b(term)8269 17714 y +SDict begin H.S end + 8269 17714 a 8269 +17714 a +SDict begin 18.2 H.A end + 8269 17714 a 8269 17714 a +SDict begin [ /View [/XYZ H.V] /Dest (7106) cvn H.B /DEST pdfmark end + 8269 17714 a FU +(\223modi\002cation\224.\))f(Each)i(licensee)f(is)g(addressed)g(as) +37233 17714 y +SDict begin H.S end + 37233 17714 a 37233 17714 a +SDict begin 18.2 H.A end + 37233 17714 +a 37233 17714 a +SDict begin [ /View [/XYZ H.V] /Dest (7107) cvn H.B /DEST pdfmark end + 37233 17714 a FU(\223you\224.)-30 18824 +y +SDict begin H.S end + -30 18824 a -30 18824 a +SDict begin 18.2 H.A end + -30 18824 a -30 18824 a +SDict begin [ /View [/XYZ H.V] /Dest (7108) cvn H.B /DEST pdfmark end + -30 +18824 a 2760 20503 a FU(Acti)-39 b(vities)433 b(other)g(than)h(cop)-15 +b(ying,)433 b(distrib)-31 b(ution)432 b(and)i(modi\002cation)e(are)i +(not)g(co)-23 b(v)g(ered)433 b(by)2760 22518 y(this)467 +b(License;)h(the)-23 b(y)468 b(are)g(outside)g(its)g(scope.)g(The)g +(act)h(of)f(running)g(the)g(Program)f(is)h(not)2760 24533 +y(restricted,)314 b(and)g(the)f(output)h(from)g(the)f(Program)h(is)g +(co)-23 b(v)g(ered)313 b(only)h(if)g(its)f(contents)g(consti-)2760 +26547 y(tute)330 b(a)h(w)-15 b(ork)330 b(based)h(on)g(the)f(Program)g +(\(independent)g(of)h(ha)-31 b(ving)331 b(been)f(made)h(by)g(running) +2760 28562 y(the)387 b(Program\).)g(Whether)g(that)g(is)g(true)h +(depends)e(on)i(what)f(the)g(Program)g(does.)745 31352 +y +SDict begin H.S end + 745 31352 a 745 31352 a +SDict begin 18.2 H.A end + 745 31352 a 745 31352 a +SDict begin [ /View [/XYZ H.V] /Dest (7109) cvn H.B /DEST pdfmark end + 745 +31352 a Black 1210 34141 a FU(2.)p Black 2760 34141 a +SDict begin H.S end + +2760 34141 a 2760 34141 a +SDict begin 18.2 H.A end + 2760 34141 a 2760 34141 a +SDict begin [ /View [/XYZ H.V] /Dest (7110) cvn H.B /DEST pdfmark end + 2760 +34141 a FU(Y)-170 b(ou)459 b(may)i(cop)-15 b(y)460 b(and)g(distrib)-31 +b(ute)460 b(v)-23 b(erbatim)459 b(copies)h(of)h(the)f(Program')-85 +b(s)460 b(source)g(code)h(as)2760 36156 y(you)466 b(recei)-39 +b(v)-23 b(e)467 b(it,)g(in)g(an)-23 b(y)466 b(medium,)g(pro)-23 +b(vided)466 b(that)h(you)f(conspicuously)g(and)g(appropri-)2760 +38170 y(ately)530 b(publish)f(on)i(each)f(cop)-15 b(y)530 +b(an)h(appropriate)f(cop)-15 b(yright)529 b(notice)h(and)g(disclaimer)g +(of)2760 40185 y(w)-15 b(arranty;)367 b(k)-15 b(eep)367 +b(intact)g(all)h(the)f(notices)g(that)h(refer)g(to)g(this)f(License)g +(and)h(to)f(the)h(absence)2760 42200 y(of)541 b(an)-23 +b(y)541 b(w)-15 b(arranty;)541 b(and)g(gi)-39 b(v)-23 +b(e)541 b(an)-23 b(y)541 b(other)h(recipients)e(of)i(the)f(Program)g(a) +g(cop)-15 b(y)541 b(of)g(this)2760 44214 y(License)387 +b(along)g(with)g(the)g(Program.)-30 45325 y +SDict begin H.S end + -30 45325 +a -30 45325 a +SDict begin 18.2 H.A end + -30 45325 a -30 45325 a +SDict begin [ /View [/XYZ H.V] /Dest (7111) cvn H.B /DEST pdfmark end + -30 45325 a 2760 +47004 a FU(Y)-170 b(ou)451 b(may)g(char)-28 b(ge)452 +b(a)g(fee)g(for)g(the)g(ph)-8 b(ysical)451 b(act)h(of)g(transferring)f +(a)h(cop)-15 b(y)-101 b(,)452 b(and)g(you)f(may)2760 +49019 y(at)387 b(your)g(option)g(of)-39 b(fer)387 b(w)-15 +b(arranty)387 b(protection)g(in)g(e)-23 b(xchange)387 +b(for)g(a)h(fee.)745 51808 y +SDict begin H.S end + 745 51808 a 745 51808 a +SDict begin 18.2 H.A end + +745 51808 a 745 51808 a +SDict begin [ /View [/XYZ H.V] /Dest (7112) cvn H.B /DEST pdfmark end + 745 51808 a Black 1210 54598 +a FU(3.)p Black 2760 54598 a +SDict begin H.S end + 2760 54598 a 2760 54598 +a +SDict begin 18.2 H.A end + 2760 54598 a 2760 54598 a +SDict begin [ /View [/XYZ H.V] /Dest (7113) cvn H.B /DEST pdfmark end + 2760 54598 a FU(Y)-170 b(ou)443 +b(may)g(modify)g(your)g(cop)-15 b(y)443 b(or)h(copies)f(of)h(the)f +(Program)g(or)h(an)-23 b(y)443 b(portion)g(of)h(it,)f(thus)2760 +56612 y(forming)448 b(a)i(w)-15 b(ork)448 b(based)h(on)g(the)g +(Program,)g(and)g(cop)-15 b(y)449 b(and)g(distrib)-31 +b(ute)448 b(such)h(modi\002ca-)2760 58627 y(tions)e(or)h(w)-15 +b(ork)448 b(under)g(the)f(terms)h(of)g(Section)g(1)g(abo)-23 +b(v)g(e,)448 b(pro)-23 b(vided)447 b(that)h(you)f(also)h(meet)2760 +60642 y(all)387 b(of)g(these)g(conditions:)-30 60657 +y +SDict begin H.S end + -30 60657 a -30 60657 a +SDict begin 18.2 H.A end + -30 60657 a -30 60657 a +SDict begin [ /View [/XYZ H.V] /Dest (7114) cvn H.B /DEST pdfmark end + -30 +60657 a -30 60657 a +SDict begin H.S end + -30 60657 a -30 60657 a +SDict begin 18.2 H.A end + -30 60657 +a -30 60657 a +SDict begin [ /View [/XYZ H.V] /Dest (7115) cvn H.B /DEST pdfmark end + -30 60657 a Black 4086 63431 a FU(a.)p +Black 5549 63431 a +SDict begin H.S end + 5549 63431 a 5549 63431 a +SDict begin 18.2 H.A end + 5549 63431 +a 5549 63431 a +SDict begin [ /View [/XYZ H.V] /Dest (7116) cvn H.B /DEST pdfmark end + 5549 63431 a FU(Y)-170 b(ou)515 b(must)h(cause)g(the)f +(modi\002ed)g(\002les)h(to)g(carry)g(prominent)f(notices)g(stating)g +(that)5549 65446 y(you)387 b(changed)g(the)h(\002les)e(and)i(the)f +(date)g(of)g(an)-23 b(y)388 b(change.)-30 65781 y +SDict begin H.S end + -30 +65781 a -30 65781 a +SDict begin 18.2 H.A end + -30 65781 a -30 65781 a +SDict begin [ /View [/XYZ H.V] /Dest (7117) cvn H.B /DEST pdfmark end + -30 65781 +a Black 49394 73792 a FR(247)p Black eop end +%%Page: 248 270 +TeXDict begin 248 269 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.248) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 +b(al)386 b(Public)h(License)p Black Black 4061 3611 a +FU(b)-62 b(.)p Black 5549 3611 a +SDict begin H.S end + 5549 3611 a 5549 3611 +a +SDict begin 18.2 H.A end + 5549 3611 a 5549 3611 a +SDict begin [ /View [/XYZ H.V] /Dest (7118) cvn H.B /DEST pdfmark end + 5549 3611 a FU(Y)-170 b(ou)504 +b(must)g(cause)h(an)-23 b(y)505 b(w)-15 b(ork)504 b(that)h(you)f +(distrib)-31 b(ute)504 b(or)h(publish,)f(that)h(in)f(whole)h(or)5549 +5626 y(in)495 b(part)g(contains)f(or)h(is)g(deri)-39 +b(v)-23 b(ed)495 b(from)g(the)g(Program)f(or)h(an)-23 +b(y)495 b(part)g(thereof,)g(to)g(be)5549 7640 y(licensed)426 +b(as)h(a)g(whole)f(at)g(no)h(char)-28 b(ge)427 b(to)f(all)g(third)h +(parties)f(under)g(the)h(terms)f(of)g(this)5549 9655 +y(License.)-30 9670 y +SDict begin H.S end + -30 9670 a -30 9670 a +SDict begin 18.2 H.A end + -30 9670 +a -30 9670 a +SDict begin [ /View [/XYZ H.V] /Dest (7119) cvn H.B /DEST pdfmark end + -30 9670 a Black 4086 12445 a FU(c.)p Black +5549 12445 a +SDict begin H.S end + 5549 12445 a 5549 12445 a +SDict begin 18.2 H.A end + 5549 12445 a 5549 +12445 a +SDict begin [ /View [/XYZ H.V] /Dest (7120) cvn H.B /DEST pdfmark end + 5549 12445 a FU(If)385 b(the)g(modi\002ed)e(program)i(normally) +f(reads)g(commands)g(interacti)-39 b(v)-23 b(ely)384 +b(when)h(run,)5549 14459 y(you)352 b(must)g(cause)g(it,)h(when)f +(started)g(running)f(for)i(such)f(interacti)-39 b(v)-23 +b(e)351 b(use)h(in)h(the)f(most)5549 16474 y(ordinary)334 +b(w)-15 b(ay)-101 b(,)335 b(to)f(print)g(or)h(display)e(an)i +(announcement)e(including)h(an)g(appropriate)5549 18489 +y(cop)-15 b(yright)409 b(notice)g(and)h(a)g(notice)f(that)g(there)h(is) +g(no)f(w)-15 b(arranty)409 b(\(or)h(else,)g(saying)f(that)5549 +20503 y(you)398 b(pro)-23 b(vide)397 b(a)h(w)-15 b(arranty\))397 +b(and)h(that)g(users)f(may)h(redistrib)-31 b(ute)397 +b(the)h(program)f(under)5549 22518 y(these)484 b(conditions,)f(and)g +(telling)g(the)h(user)g(ho)-39 b(w)483 b(to)h(vie)-39 +b(w)484 b(a)g(cop)-15 b(y)483 b(of)h(this)f(License.)5549 +24533 y(\(Exception:)446 b(if)g(the)g(Program)g(itself)g(is)g +(interacti)-39 b(v)-23 b(e)446 b(b)-31 b(ut)446 b(does)g(not)g +(normally)f(print)5549 26547 y(such)399 b(an)h(announcement,)f(your)g +(w)-15 b(ork)399 b(based)g(on)g(the)h(Program)f(is)g(not)g(required)g +(to)5549 28562 y(print)387 b(an)g(announcement.\))-30 +29672 y +SDict begin H.S end + -30 29672 a -30 29672 a +SDict begin 18.2 H.A end + -30 29672 a -30 29672 +a +SDict begin [ /View [/XYZ H.V] /Dest (7121) cvn H.B /DEST pdfmark end + -30 29672 a 2760 31352 a FU(These)445 b(requirements)g(apply)g(to)g +(the)g(modi\002ed)g(w)-15 b(ork)444 b(as)i(a)f(whole.)h(If)g +(identi\002able)e(sec-)2760 33366 y(tions)581 b(of)g(that)h(w)-15 +b(ork)580 b(are)i(not)g(deri)-39 b(v)-23 b(ed)581 b(from)h(the)f +(Program,)g(and)h(can)g(be)f(reasonably)2760 35381 y(considered)562 +b(independent)h(and)g(separate)g(w)-15 b(orks)562 b(in)h(themselv)-23 +b(es,)562 b(then)h(this)g(License,)2760 37396 y(and)419 +b(its)g(terms,)g(do)h(not)f(apply)g(to)g(those)g(sections)g(when)g(you) +g(distrib)-31 b(ute)419 b(them)f(as)i(sepa-)2760 39410 +y(rate)390 b(w)-15 b(orks.)390 b(But)f(when)h(you)g(distrib)-31 +b(ute)389 b(the)h(same)g(sections)f(as)h(part)g(of)g(a)h(whole)e(which) +2760 41425 y(is)501 b(a)h(w)-15 b(ork)501 b(based)g(on)h(the)f +(Program,)g(the)h(distrib)-31 b(ution)500 b(of)h(the)h(whole)f(must)g +(be)h(on)f(the)2760 43440 y(terms)345 b(of)g(this)h(License,)f(whose)h +(permissions)e(for)i(other)f(licensees)g(e)-23 b(xtend)345 +b(to)h(the)f(entire)2760 45454 y(whole,)387 b(and)g(thus)g(to)g(each)h +(and)f(e)-39 b(v)-23 b(ery)387 b(part)h(re)-23 b(g)-8 +b(ardless)387 b(of)g(who)g(wrote)g(it.)-30 46565 y +SDict begin H.S end + -30 +46565 a -30 46565 a +SDict begin 18.2 H.A end + -30 46565 a -30 46565 a +SDict begin [ /View [/XYZ H.V] /Dest (7122) cvn H.B /DEST pdfmark end + -30 46565 +a 2760 48244 a FU(Thus,)429 b(it)g(is)g(not)g(the)g(intent)g(of)h(this) +e(section)h(to)g(claim)g(rights)g(or)g(contest)g(your)g(rights)g(to) +2760 50258 y(w)-15 b(ork)382 b(written)h(entirely)g(by)g(you;)f(rather) +-62 b(,)384 b(the)f(intent)g(is)g(to)g(e)-23 b(x)g(ercise)383 +b(the)g(right)f(to)h(control)2760 52273 y(the)k(distrib)-31 +b(ution)386 b(of)h(deri)-39 b(v)g(ati)g(v)-23 b(e)387 +b(or)h(collecti)-39 b(v)-23 b(e)386 b(w)-15 b(orks)387 +b(based)g(on)g(the)g(Program.)-30 53383 y +SDict begin H.S end + -30 53383 a +-30 53383 a +SDict begin 18.2 H.A end + -30 53383 a -30 53383 a +SDict begin [ /View [/XYZ H.V] /Dest (7123) cvn H.B /DEST pdfmark end + -30 53383 a 2760 +55063 a FU(In)476 b(addition,)h(mere)f(aggre)-23 b(g)-8 +b(ation)476 b(of)h(another)f(w)-15 b(ork)476 b(not)h(based)f(on)h(the)f +(Program)g(with)2760 57077 y(the)481 b(Program)h(\(or)g(with)f(a)h(w) +-15 b(ork)481 b(based)h(on)f(the)h(Program\))f(on)h(a)g(v)-31 +b(olume)481 b(of)h(a)g(storage)2760 59092 y(or)516 b(distrib)-31 +b(ution)514 b(medium)h(does)g(not)h(bring)f(the)h(other)f(w)-15 +b(ork)516 b(under)f(the)h(scope)g(of)g(this)2760 61107 +y(License.)745 63896 y +SDict begin H.S end + 745 63896 a 745 63896 a +SDict begin 18.2 H.A end + 745 63896 +a 745 63896 a +SDict begin [ /View [/XYZ H.V] /Dest (7124) cvn H.B /DEST pdfmark end + 745 63896 a Black 1210 66686 a FU(4.)p +Black 2760 66686 a +SDict begin H.S end + 2760 66686 a 2760 66686 a +SDict begin 18.2 H.A end + 2760 66686 +a 2760 66686 a +SDict begin [ /View [/XYZ H.V] /Dest (7125) cvn H.B /DEST pdfmark end + 2760 66686 a FU(Y)-170 b(ou)384 b(may)g(cop)-15 +b(y)385 b(and)f(distrib)-31 b(ute)384 b(the)h(Program)f(\(or)h(a)g(w) +-15 b(ork)384 b(based)h(on)g(it,)g(under)g(Section)p +Black -30 73792 a FR(248)p Black eop end +%%Page: 249 271 +TeXDict begin 249 270 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.249) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 22832 -1636 a FR(Appendix)386 b(A.)i(The)f(GNU)g(Gener) +-23 b(al)387 b(Public)f(License)p Black 2760 3611 a FU(2\))404 +b(in)h(object)f(code)h(or)f(e)-23 b(x)g(ecutable)404 +b(form)h(under)f(the)h(terms)f(of)h(Sections)f(1)g(and)h(2)g(abo)-23 +b(v)g(e)2760 5626 y(pro)g(vided)386 b(that)h(you)g(also)g(do)g(one)h +(of)f(the)g(follo)-39 b(wing:)-30 5961 y +SDict begin H.S end + -30 5961 a -30 +5961 a +SDict begin 18.2 H.A end + -30 5961 a -30 5961 a +SDict begin [ /View [/XYZ H.V] /Dest (7126) cvn H.B /DEST pdfmark end + -30 5961 a -30 5961 a +SDict begin H.S end + -30 +5961 a -30 5961 a +SDict begin 18.2 H.A end + -30 5961 a -30 5961 a +SDict begin [ /View [/XYZ H.V] /Dest (7127) cvn H.B /DEST pdfmark end + -30 5961 a Black +4086 8415 a FU(a.)p Black 5549 8415 a +SDict begin H.S end + 5549 8415 a 5549 +8415 a +SDict begin 18.2 H.A end + 5549 8415 a 5549 8415 a +SDict begin [ /View [/XYZ H.V] /Dest (7128) cvn H.B /DEST pdfmark end + 5549 8415 a FU(Accompan)-23 +b(y)520 b(it)g(with)g(the)g(complete)g(corresponding)f +(machine-readable)h(source)5549 10430 y(code,)400 b(which)g(must)f(be)h +(distrib)-31 b(uted)399 b(under)g(the)h(terms)f(of)h(Sections)f(1)h +(and)g(2)g(abo)-23 b(v)g(e)5549 12445 y(on)387 b(a)h(medium)e +(customarily)h(used)g(for)g(softw)-15 b(are)387 b(interchange;)f(or)-62 +b(,)-30 12780 y +SDict begin H.S end + -30 12780 a -30 12780 a +SDict begin 18.2 H.A end + -30 12780 a -30 +12780 a +SDict begin [ /View [/XYZ H.V] /Dest (7129) cvn H.B /DEST pdfmark end + -30 12780 a Black 4061 15234 a FU(b)g(.)p Black +5549 15234 a +SDict begin H.S end + 5549 15234 a 5549 15234 a +SDict begin 18.2 H.A end + 5549 15234 a 5549 +15234 a +SDict begin [ /View [/XYZ H.V] /Dest (7130) cvn H.B /DEST pdfmark end + 5549 15234 a FU(Accompan)-23 b(y)368 b(it)g(with)g(a)g(written) +g(of)-39 b(fer)-62 b(,)370 b(v)-39 b(alid)368 b(for)g(at)h(least)f +(three)g(years,)h(to)f(gi)-39 b(v)-23 b(e)368 b(an)-23 +b(y)5549 17249 y(third)488 b(party)-101 b(,)489 b(for)g(a)g(char)-28 +b(ge)489 b(no)f(more)g(than)h(your)f(cost)g(of)h(ph)-8 +b(ysically)488 b(performing)5549 19264 y(source)464 b(distrib)-31 +b(ution,)462 b(a)i(complete)f(machine-readable)g(cop)-15 +b(y)463 b(of)h(the)f(correspond-)5549 21278 y(ing)340 +b(source)h(code,)g(to)f(be)h(distrib)-31 b(uted)339 b(under)i(the)f +(terms)h(of)f(Sections)g(1)g(and)h(2)g(abo)-23 b(v)g(e)5549 +23293 y(on)387 b(a)h(medium)e(customarily)h(used)g(for)g(softw)-15 +b(are)387 b(interchange;)f(or)-62 b(,)-30 23628 y +SDict begin H.S end + -30 +23628 a -30 23628 a +SDict begin 18.2 H.A end + -30 23628 a -30 23628 a +SDict begin [ /View [/XYZ H.V] /Dest (7131) cvn H.B /DEST pdfmark end + -30 23628 +a Black 4086 26082 a FU(c.)p Black 5549 26082 a +SDict begin H.S end + 5549 +26082 a 5549 26082 a +SDict begin 18.2 H.A end + 5549 26082 a 5549 26082 a +SDict begin [ /View [/XYZ H.V] /Dest (7132) cvn H.B /DEST pdfmark end + 5549 26082 +a FU(Accompan)-23 b(y)335 b(it)g(with)h(the)f(information)g(you)g +(recei)-39 b(v)-23 b(ed)336 b(as)f(to)h(the)f(of)-39 +b(fer)337 b(to)e(distrib)-31 b(ute)5549 28097 y(corresponding)475 +b(source)g(code.)h(\(This)e(alternati)-39 b(v)-23 b(e)475 +b(is)g(allo)-39 b(wed)475 b(only)g(for)h(noncom-)5549 +30112 y(mercial)388 b(distrib)-31 b(ution)386 b(and)i(only)g(if)g(you)f +(recei)-39 b(v)-23 b(ed)388 b(the)g(program)g(in)f(object)h(code)g(or) +5549 32126 y(e)-23 b(x)g(ecutable)387 b(form)g(with)g(such)g(an)g(of) +-39 b(fer)-62 b(,)388 b(in)g(accord)f(with)g(Subsection)f(b)h(abo)-23 +b(v)g(e.\))-30 33179 y +SDict begin H.S end + -30 33179 a -30 33179 a +SDict begin 18.2 H.A end + -30 33179 +a -30 33179 a +SDict begin [ /View [/XYZ H.V] /Dest (7133) cvn H.B /DEST pdfmark end + -30 33179 a 2760 34916 a FU(The)472 b(source)h(code)f +(for)h(a)f(w)-15 b(ork)472 b(means)h(the)f(preferred)h(form)f(of)h(the) +f(w)-15 b(ork)472 b(for)h(making)2760 36931 y(modi\002cations)359 +b(to)j(it.)f(F)-23 b(or)361 b(an)h(e)-23 b(x)g(ecutable)361 +b(w)-15 b(ork,)361 b(complete)g(source)g(code)h(means)f(all)g(the)2760 +38945 y(source)409 b(code)h(for)g(all)f(modules)g(it)h(contains,)f +(plus)g(an)-23 b(y)410 b(associated)f(interf)-15 b(ace)409 +b(de\002nition)2760 40960 y(\002les,)562 b(plus)g(the)g(scripts)g(used) +g(to)g(control)g(compilation)f(and)h(installation)f(of)h(the)g(e)-23 +b(x)g(e-)2760 42975 y(cutable.)473 b(Ho)-39 b(we)g(v)-23 +b(er)-62 b(,)474 b(as)f(a)h(special)f(e)-23 b(xception,)472 +b(the)i(source)f(code)g(distrib)-31 b(uted)472 b(need)h(not)2760 +44989 y(include)492 b(an)-23 b(ything)492 b(that)h(is)g(normally)f +(distrib)-31 b(uted)492 b(\(in)h(either)g(source)g(or)g(binary)g +(form\))2760 47004 y(with)453 b(the)h(major)g(components)f(\(compiler) +-62 b(,)454 b(k)-15 b(ernel,)454 b(and)g(so)g(on\))g(of)g(the)g +(operating)f(sys-)2760 49019 y(tem)339 b(on)h(which)g(the)g(e)-23 +b(x)g(ecutable)339 b(runs,)h(unless)f(that)h(component)f(itself)h +(accompanies)f(the)2760 51033 y(e)-23 b(x)g(ecutable.)-30 +51824 y +SDict begin H.S end + -30 51824 a -30 51824 a +SDict begin 18.2 H.A end + -30 51824 a -30 51824 +a +SDict begin [ /View [/XYZ H.V] /Dest (7134) cvn H.B /DEST pdfmark end + -30 51824 a 2760 53823 a FU(If)457 b(distrib)-31 b(ution)455 +b(of)h(e)-23 b(x)g(ecutable)456 b(or)h(object)f(code)h(is)g(made)f(by)h +(of)-39 b(fering)456 b(access)h(to)g(cop)-15 b(y)2760 +55837 y(from)333 b(a)h(designated)f(place,)h(then)f(of)-39 +b(fering)334 b(equi)-39 b(v)g(alent)333 b(access)h(to)f(cop)-15 +b(y)333 b(the)g(source)h(code)2760 57852 y(from)350 b(the)h(same)g +(place)f(counts)h(as)g(distrib)-31 b(ution)349 b(of)i(the)f(source)h +(code,)g(e)-39 b(v)-23 b(en)351 b(though)f(third)2760 +59867 y(parties)387 b(are)g(not)g(compelled)g(to)g(cop)-15 +b(y)387 b(the)g(source)g(along)g(with)g(the)g(object)g(code.)745 +62656 y +SDict begin H.S end + 745 62656 a 745 62656 a +SDict begin 18.2 H.A end + 745 62656 a 745 62656 +a +SDict begin [ /View [/XYZ H.V] /Dest (7135) cvn H.B /DEST pdfmark end + 745 62656 a Black 1210 65446 a FU(5.)p Black 2760 65446 +a +SDict begin H.S end + 2760 65446 a 2760 65446 a +SDict begin 18.2 H.A end + 2760 65446 a 2760 65446 a +SDict begin [ /View [/XYZ H.V] /Dest (7136) cvn H.B /DEST pdfmark end + +2760 65446 a FU(Y)-170 b(ou)446 b(may)g(not)h(cop)-15 +b(y)-101 b(,)447 b(modify)-101 b(,)447 b(sublicense,)f(or)h(distrib)-31 +b(ute)446 b(the)g(Program)h(e)-23 b(xcept)446 b(as)h(e)-23 +b(x-)2760 67461 y(pressly)558 b(pro)-23 b(vided)558 b(under)h(this)g +(License.)g(An)-23 b(y)558 b(attempt)h(otherwise)f(to)h(cop)-15 +b(y)-101 b(,)559 b(modify)-101 b(,)p Black 49451 73792 +a FR(249)p Black eop end +%%Page: 250 272 +TeXDict begin 250 271 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.250) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 +b(al)386 b(Public)h(License)p Black 2760 3611 a FU(sublicense)512 +b(or)h(distrib)-31 b(ute)511 b(the)i(Program)f(is)h(v)-31 +b(oid,)513 b(and)g(will)f(automatically)g(terminate)2760 +5626 y(your)478 b(rights)h(under)f(this)h(License.)g(Ho)-39 +b(we)g(v)-23 b(er)-62 b(,)479 b(parties)g(who)f(ha)-31 +b(v)-23 b(e)479 b(recei)-39 b(v)-23 b(ed)479 b(copies,)g(or)2760 +7640 y(rights,)512 b(from)h(you)g(under)g(this)f(License)h(will)f(not)h +(ha)-31 b(v)-23 b(e)513 b(their)f(licenses)h(terminated)f(so)2760 +9655 y(long)387 b(as)g(such)g(parties)g(remain)g(in)g(full)g +(compliance.)-30 9991 y +SDict begin H.S end + -30 9991 a -30 9991 a +SDict begin 18.2 H.A end + -30 9991 +a -30 9991 a +SDict begin [ /View [/XYZ H.V] /Dest (7137) cvn H.B /DEST pdfmark end + -30 9991 a Black 1210 12445 a FU(6.)p Black +2760 12445 a +SDict begin H.S end + 2760 12445 a 2760 12445 a +SDict begin 18.2 H.A end + 2760 12445 a 2760 +12445 a +SDict begin [ /View [/XYZ H.V] /Dest (7138) cvn H.B /DEST pdfmark end + 2760 12445 a FU(Y)-170 b(ou)408 b(are)h(not)f(required)h(to)f +(accept)h(this)g(License,)g(since)f(you)h(ha)-31 b(v)-23 +b(e)408 b(not)h(signed)f(it.)h(Ho)-39 b(w-)2760 14459 +y(e)g(v)-23 b(er)-62 b(,)545 b(nothing)g(else)g(grants)f(you)h +(permission)f(to)h(modify)f(or)i(distrib)-31 b(ute)544 +b(the)h(Program)2760 16474 y(or)516 b(its)g(deri)-39 +b(v)g(ati)g(v)-23 b(e)516 b(w)-15 b(orks.)516 b(These)h(actions)e(are)i +(prohibited)f(by)g(la)-23 b(w)516 b(if)g(you)g(do)h(not)f(ac-)2760 +18489 y(cept)438 b(this)g(License.)h(Therefore,)g(by)f(modifying)f(or)i +(distrib)-31 b(uting)437 b(the)h(Program)g(\(or)g(an)-23 +b(y)2760 20503 y(w)-15 b(ork)357 b(based)i(on)f(the)g(Program\),)g(you) +g(indicate)g(your)g(acceptance)h(of)f(this)g(License)g(to)g(do)2760 +22518 y(so,)494 b(and)g(all)g(its)f(terms)h(and)g(conditions)e(for)j +(cop)-15 b(ying,)493 b(distrib)-31 b(uting)492 b(or)i(modifying)f(the) +2760 24533 y(Program)386 b(or)i(w)-15 b(orks)386 b(based)h(on)h(it.)-30 +24868 y +SDict begin H.S end + -30 24868 a -30 24868 a +SDict begin 18.2 H.A end + -30 24868 a -30 24868 +a +SDict begin [ /View [/XYZ H.V] /Dest (7139) cvn H.B /DEST pdfmark end + -30 24868 a Black 1210 27322 a FU(7.)p Black 2760 27322 +a +SDict begin H.S end + 2760 27322 a 2760 27322 a +SDict begin 18.2 H.A end + 2760 27322 a 2760 27322 a +SDict begin [ /View [/XYZ H.V] /Dest (7140) cvn H.B /DEST pdfmark end + +2760 27322 a FU(Each)514 b(time)g(you)g(redistrib)-31 +b(ute)514 b(the)g(Program)g(\(or)h(an)-23 b(y)514 b(w)-15 +b(ork)514 b(based)g(on)h(the)f(Program\),)2760 29337 +y(the)375 b(recipient)g(automatically)g(recei)-39 b(v)-23 +b(es)375 b(a)h(license)g(from)f(the)g(original)g(licensor)h(to)f(cop) +-15 b(y)-101 b(,)2760 31352 y(distrib)-31 b(ute)579 b(or)i(modify)f +(the)g(Program)g(subject)g(to)h(these)f(terms)g(and)h(conditions.)f(Y) +-170 b(ou)2760 33366 y(may)403 b(not)g(impose)f(an)-23 +b(y)403 b(further)h(restrictions)e(on)h(the)g(recipients')g(e)-23 +b(x)g(ercise)403 b(of)g(the)h(rights)2760 35381 y(granted)440 +b(herein.)h(Y)-170 b(ou)440 b(are)h(not)f(responsible)f(for)i +(enforcing)f(compliance)g(by)h(third)f(par)-31 b(-)2760 +37396 y(ties)387 b(to)g(this)g(License.)-30 37411 y +SDict begin H.S end + -30 +37411 a -30 37411 a +SDict begin 18.2 H.A end + -30 37411 a -30 37411 a +SDict begin [ /View [/XYZ H.V] /Dest (7141) cvn H.B /DEST pdfmark end + -30 37411 +a Black 1210 40185 a FU(8.)p Black 2760 40185 a +SDict begin H.S end + 2760 +40185 a 2760 40185 a +SDict begin 18.2 H.A end + 2760 40185 a 2760 40185 a +SDict begin [ /View [/XYZ H.V] /Dest (7142) cvn H.B /DEST pdfmark end + 2760 40185 +a FU(If,)519 b(as)g(a)f(consequence)h(of)f(a)h(court)g(judgment)e(or)i +(alle)-23 b(g)-8 b(ation)518 b(of)h(patent)f(infringement)2760 +42200 y(or)532 b(for)g(an)-23 b(y)531 b(other)h(reason)g(\(not)g +(limited)f(to)g(patent)h(issues\),)g(conditions)f(are)h(imposed)2760 +44214 y(on)600 b(you)f(\(whether)h(by)g(court)g(order)-62 +b(,)600 b(agreement)g(or)g(otherwise\))g(that)g(contradict)f(the)2760 +46229 y(conditions)478 b(of)h(this)g(License,)g(the)-23 +b(y)479 b(do)h(not)f(e)-23 b(xcuse)479 b(you)g(from)g(the)g(conditions) +f(of)h(this)2760 48244 y(License.)315 b(If)h(you)f(cannot)g(distrib)-31 +b(ute)314 b(so)h(as)h(to)f(satisfy)f(simultaneously)g(your)h(oblig)-8 +b(ations)2760 50258 y(under)495 b(this)f(License)h(and)h(an)-23 +b(y)494 b(other)h(pertinent)g(oblig)-8 b(ations,)495 +b(then)g(as)g(a)g(consequence)2760 52273 y(you)328 b(may)g(not)h +(distrib)-31 b(ute)327 b(the)i(Program)f(at)h(all.)f(F)-23 +b(or)329 b(e)-23 b(xample,)328 b(if)h(a)f(patent)h(license)f(w)-15 +b(ould)2760 54288 y(not)490 b(permit)g(ro)-15 b(yalty-free)489 +b(redistrib)-31 b(ution)489 b(of)i(the)f(Program)g(by)g(all)h(those)f +(who)g(recei)-39 b(v)-23 b(e)2760 56302 y(copies)487 +b(directly)h(or)g(indirectly)g(through)f(you,)i(then)e(the)i(only)e(w) +-15 b(ay)488 b(you)g(could)g(satisfy)2760 58317 y(both)568 +b(it)h(and)f(this)h(License)f(w)-15 b(ould)568 b(be)h(to)g(refrain)g +(entirely)f(from)h(distrib)-31 b(ution)567 b(of)i(the)2760 +60332 y(Program.)-30 61442 y +SDict begin H.S end + -30 61442 a -30 61442 a +SDict begin 18.2 H.A end + +-30 61442 a -30 61442 a +SDict begin [ /View [/XYZ H.V] /Dest (7143) cvn H.B /DEST pdfmark end + -30 61442 a 2760 63121 a FU(If)372 +b(an)-23 b(y)371 b(portion)g(of)h(this)f(section)g(is)g(held)h(in)-62 +b(v)-39 b(alid)371 b(or)h(unenforceable)f(under)h(an)-23 +b(y)371 b(particu-)2760 65136 y(lar)390 b(circumstance,)g(the)g +(balance)g(of)g(the)g(section)g(is)g(intended)g(to)g(apply)f(and)h(the) +g(section)2760 67151 y(as)d(a)h(whole)e(is)i(intended)e(to)h(apply)g +(in)g(other)h(circumstances.)p Black -30 73792 a FR(250)p +Black eop end +%%Page: 251 273 +TeXDict begin 251 272 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.251) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black 22832 -1636 a FR(Appendix)386 b(A.)i(The)f(GNU)g(Gener) +-23 b(al)387 b(Public)f(License)p Black -30 2504 a +SDict begin H.S end + -30 +2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 2504 a +SDict begin [ /View [/XYZ H.V] /Dest (7144) cvn H.B /DEST pdfmark end + -30 2504 a 2760 +3611 a FU(It)577 b(is)g(not)h(the)f(purpose)g(of)h(this)f(section)g(to) +g(induce)g(you)g(to)h(infringe)f(an)-23 b(y)577 b(patents)g(or)2760 +5626 y(other)351 b(property)g(right)g(claims)g(or)g(to)g(contest)g(v) +-39 b(alidity)351 b(of)h(an)-23 b(y)351 b(such)g(claims;)g(this)f +(section)2760 7640 y(has)410 b(the)g(sole)g(purpose)g(of)h(protecting)f +(the)g(inte)-23 b(grity)409 b(of)i(the)f(free)h(softw)-15 +b(are)410 b(distrib)-31 b(ution)2760 9655 y(system,)518 +b(which)h(is)g(implemented)f(by)h(public)f(license)h(practices.)g(Man) +-23 b(y)518 b(people)h(ha)-31 b(v)-23 b(e)2760 11670 +y(made)432 b(generous)h(contrib)-31 b(utions)432 b(to)h(the)f(wide)h +(range)g(of)g(softw)-15 b(are)433 b(distrib)-31 b(uted)432 +b(through)2760 13684 y(that)481 b(system)g(in)g(reliance)h(on)f +(consistent)g(application)g(of)g(that)h(system;)e(it)i(is)f(up)h(to)f +(the)2760 15699 y(author/donor)397 b(to)i(decide)f(if)g(he)h(or)g(she)f +(is)g(willing)g(to)g(distrib)-31 b(ute)398 b(softw)-15 +b(are)397 b(through)h(an)-23 b(y)2760 17714 y(other)387 +b(system)f(and)i(a)f(licensee)g(cannot)g(impose)g(that)g(choice.)-30 +18824 y +SDict begin H.S end + -30 18824 a -30 18824 a +SDict begin 18.2 H.A end + -30 18824 a -30 18824 +a +SDict begin [ /View [/XYZ H.V] /Dest (7145) cvn H.B /DEST pdfmark end + -30 18824 a 2760 20503 a FU(This)413 b(section)g(is)h(intended)f(to)g +(mak)-15 b(e)414 b(thoroughly)e(clear)i(what)g(is)f(belie)-39 +b(v)-23 b(ed)414 b(to)f(be)h(a)g(con-)2760 22518 y(sequence)387 +b(of)g(the)g(rest)h(of)f(this)g(License.)745 25308 y +SDict begin H.S end + +745 25308 a 745 25308 a +SDict begin 18.2 H.A end + 745 25308 a 745 25308 a +SDict begin [ /View [/XYZ H.V] /Dest (7146) cvn H.B /DEST pdfmark end + 745 25308 +a Black 1210 28097 a FU(9.)p Black 2760 28097 a +SDict begin H.S end + 2760 +28097 a 2760 28097 a +SDict begin 18.2 H.A end + 2760 28097 a 2760 28097 a +SDict begin [ /View [/XYZ H.V] /Dest (7147) cvn H.B /DEST pdfmark end + 2760 28097 +a FU(If)376 b(the)g(distrib)-31 b(ution)374 b(and/or)h(use)h(of)g(the)g +(Program)f(is)h(restricted)f(in)h(certain)g(countries)f(ei-)2760 +30112 y(ther)434 b(by)f(patents)h(or)g(by)f(cop)-15 b(yrighted)433 +b(interf)-15 b(aces,)434 b(the)g(original)f(cop)-15 b(yright)433 +b(holder)g(who)2760 32126 y(places)420 b(the)g(Program)f(under)h(this)g +(License)g(may)g(add)g(an)g(e)-23 b(xplicit)419 b(geographical)h +(distri-)2760 34141 y(b)-31 b(ution)307 b(limitation)f(e)-23 +b(xcluding)307 b(those)h(countries,)g(so)f(that)h(distrib)-31 +b(ution)307 b(is)g(permitted)g(only)2760 36156 y(in)349 +b(or)g(among)g(countries)f(not)h(thus)g(e)-23 b(xcluded.)349 +b(In)g(such)g(case,)h(this)f(License)g(incorporates)2760 +38170 y(the)387 b(limitation)f(as)h(if)g(written)g(in)g(the)g(body)g +(of)h(this)f(License.)-30 38506 y +SDict begin H.S end + -30 38506 a -30 38506 +a +SDict begin 18.2 H.A end + -30 38506 a -30 38506 a +SDict begin [ /View [/XYZ H.V] /Dest (7148) cvn H.B /DEST pdfmark end + -30 38506 a Black 435 40960 +a FU(10.)p Black 2760 40960 a +SDict begin H.S end + 2760 40960 a 2760 40960 +a +SDict begin 18.2 H.A end + 2760 40960 a 2760 40960 a +SDict begin [ /View [/XYZ H.V] /Dest (7149) cvn H.B /DEST pdfmark end + 2760 40960 a FU(The)430 b(Free)h(Softw)-15 +b(are)429 b(F)-23 b(oundation)429 b(may)i(publish)e(re)-39 +b(vised)431 b(and/or)f(ne)-39 b(w)431 b(v)-23 b(ersions)429 +b(of)i(the)2760 42975 y(General)388 b(Public)f(License)g(from)h(time)f +(to)h(time.)g(Such)g(ne)-39 b(w)388 b(v)-23 b(ersions)387 +b(will)g(be)h(similar)f(in)2760 44989 y(spirit)370 b(to)i(the)f +(present)g(v)-23 b(ersion,)371 b(b)-31 b(ut)372 b(may)f(dif)-39 +b(fer)372 b(in)f(detail)g(to)g(address)h(ne)-39 b(w)371 +b(problems)g(or)2760 47004 y(concerns.)-30 47794 y +SDict begin H.S end + -30 +47794 a -30 47794 a +SDict begin 18.2 H.A end + -30 47794 a -30 47794 a +SDict begin [ /View [/XYZ H.V] /Dest (7150) cvn H.B /DEST pdfmark end + -30 47794 +a 2760 49793 a FU(Each)392 b(v)-23 b(ersion)391 b(is)h(gi)-39 +b(v)-23 b(en)392 b(a)h(distinguishing)d(v)-23 b(ersion)391 +b(number)-85 b(.)392 b(If)h(the)f(Program)g(speci\002es)2760 +51808 y(a)330 b(v)-23 b(ersion)330 b(number)g(of)g(this)g(License)g +(which)g(applies)f(to)i(it)f(and)37189 51808 y +SDict begin H.S end + 37189 +51808 a 37189 51808 a +SDict begin 18.2 H.A end + 37189 51808 a 37189 51808 a +SDict begin [ /View [/XYZ H.V] /Dest (7151) cvn H.B /DEST pdfmark end + 37189 +51808 a FU(\223an)-23 b(y)330 b(later)g(v)-23 b(ersion\224,)330 +b(you)2760 53823 y(ha)-31 b(v)-23 b(e)461 b(the)h(option)f(of)g(follo) +-39 b(wing)461 b(the)h(terms)f(and)h(conditions)e(either)i(of)g(that)f +(v)-23 b(ersion)461 b(or)2760 55837 y(of)393 b(an)-23 +b(y)394 b(later)g(v)-23 b(ersion)393 b(published)f(by)i(the)g(Free)f +(Softw)-15 b(are)393 b(F)-23 b(oundation.)393 b(If)h(the)g(Program)2760 +57852 y(does)382 b(not)f(specify)h(a)h(v)-23 b(ersion)381 +b(number)h(of)g(this)g(License,)g(you)g(may)g(choose)g(an)-23 +b(y)382 b(v)-23 b(ersion)2760 59867 y(e)-39 b(v)-23 b(er)387 +b(published)g(by)g(the)g(Free)g(Softw)-15 b(are)387 b(F)-23 +b(oundation.)745 62656 y +SDict begin H.S end + 745 62656 a 745 62656 a +SDict begin 18.2 H.A end + 745 +62656 a 745 62656 a +SDict begin [ /View [/XYZ H.V] /Dest (7152) cvn H.B /DEST pdfmark end + 745 62656 a Black 435 65446 a FU(11.)p +Black 2760 65446 a +SDict begin H.S end + 2760 65446 a 2760 65446 a +SDict begin 18.2 H.A end + 2760 65446 +a 2760 65446 a +SDict begin [ /View [/XYZ H.V] /Dest (7153) cvn H.B /DEST pdfmark end + 2760 65446 a FU(If)393 b(you)h(wish)f(to)g(incorporate)g +(parts)g(of)h(the)f(Program)g(into)g(other)g(free)h(programs)f(whose) +2760 67461 y(distrib)-31 b(ution)485 b(conditions)g(are)i(dif)-39 +b(ferent,)487 b(write)g(to)f(the)h(author)f(to)g(ask)h(for)g +(permission.)p Black 49451 73792 a FR(251)p Black eop +end +%%Page: 252 274 +TeXDict begin 252 273 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.252) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 +b(al)386 b(Public)h(License)p Black 2760 3611 a FU(F)-23 +b(or)523 b(softw)-15 b(are)524 b(which)f(is)h(cop)-15 +b(yrighted)523 b(by)h(the)g(Free)g(Softw)-15 b(are)523 +b(F)-23 b(oundation,)523 b(write)h(to)2760 5626 y(the)374 +b(Free)g(Softw)-15 b(are)373 b(F)-23 b(oundation;)372 +b(we)i(sometimes)f(mak)-15 b(e)374 b(e)-23 b(xceptions)373 +b(for)h(this.)g(Our)g(de-)2760 7640 y(cision)358 b(will)g(be)g(guided)g +(by)h(the)f(tw)-15 b(o)358 b(goals)g(of)h(preserving)f(the)h(free)g +(status)e(of)i(all)g(deri)-39 b(v)g(a-)2760 9655 y(ti)g(v)-23 +b(es)499 b(of)i(our)f(free)g(softw)-15 b(are)500 b(and)g(of)g +(promoting)f(the)h(sharing)g(and)g(reuse)g(of)h(softw)-15 +b(are)2760 11670 y(generally)-101 b(.)-30 12005 y +SDict begin H.S end + -30 +12005 a -30 12005 a +SDict begin 18.2 H.A end + -30 12005 a -30 12005 a +SDict begin [ /View [/XYZ H.V] /Dest (7154) cvn H.B /DEST pdfmark end + -30 12005 +a Black 435 14459 a FU(12.)p Black 2760 14459 a +SDict begin H.S end + 2760 +14459 a 2760 14459 a +SDict begin 18.2 H.A end + 2760 14459 a 2760 14459 a +SDict begin [ /View [/XYZ H.V] /Dest (7155) cvn H.B /DEST pdfmark end + 2760 14459 +a FU(NO)387 b(W)-186 b(ARRANTY)-30 15250 y +SDict begin H.S end + -30 15250 +a -30 15250 a +SDict begin 18.2 H.A end + -30 15250 a -30 15250 a +SDict begin [ /View [/XYZ H.V] /Dest (7156) cvn H.B /DEST pdfmark end + -30 15250 a 2760 +17249 a FU(BECA)-85 b(USE)405 b(THE)h(PR)-62 b(OGRAM)405 +b(IS)i(LICENSED)e(FREE)h(OF)g(CHARGE,)g(THERE)g(IS)2760 +19264 y(NO)527 b(W)-186 b(ARRANTY)527 b(FOR)h(THE)f(PR)-62 +b(OGRAM,)527 b(T)-28 b(O)528 b(THE)g(EXTENT)f(PERMITTED)2760 +21278 y(BY)367 b(APPLICABLE)f(LA)-139 b(W)c(.)369 b(EXCEPT)e(WHEN)g(O) +-62 b(THER)-85 b(WISE)367 b(ST)-144 b(A)-172 b(TED)367 +b(IN)h(WRIT)-143 b(-)2760 23293 y(ING)509 b(THE)g(COPYRIGHT)g(HOLDERS)f +(AND/OR)h(O)-62 b(THER)509 b(P)-143 b(AR)-93 b(TIES)508 +b(PR)-62 b(O)-77 b(VIDE)2760 25308 y(THE)676 b(PR)-62 +b(OGRAM)14728 25308 y +SDict begin H.S end + 14728 25308 a 14728 25308 a +SDict begin 18.2 H.A end + 14728 +25308 a 14728 25308 a +SDict begin [ /View [/XYZ H.V] /Dest (7157) cvn H.B /DEST pdfmark end + 14728 25308 a FU(\223AS)677 b(IS\224)g(WITHOUT)g +(W)-186 b(ARRANTY)676 b(OF)g(ANY)h(KIND,)h(EI-)2760 27322 +y(THER)431 b(EXPRESSED)e(OR)i(IMPLIED,)h(INCLUDING,)f(B)-15 +b(UT)430 b(NO)-62 b(T)432 b(LIMITED)e(T)-28 b(O,)2760 +29337 y(THE)591 b(IMPLIED)f(W)-186 b(ARRANTIES)590 b(OF)g(MERCHANT)-144 +b(ABILITY)589 b(AND)i(FITNESS)2760 31352 y(FOR)436 b(A)h(P)-143 +b(AR)-93 b(TICULAR)436 b(PURPOSE.)g(THE)h(ENTIRE)g(RISK)g(AS)f(T)-28 +b(O)438 b(THE)f(Q)-15 b(U)-62 b(AL-)2760 33366 y(ITY)402 +b(AND)h(PERFORMANCE)d(OF)j(THE)f(PR)-62 b(OGRAM)402 b(IS)g(WITH)h(Y)-46 +b(OU.)403 b(SHOULD)2760 35381 y(THE)341 b(PR)-62 b(OGRAM)340 +b(PR)-62 b(O)-77 b(VE)340 b(DEFECTIVE,)h(Y)-46 b(OU)341 +b(ASSUME)f(THE)h(COST)g(OF)g(ALL)2760 37396 y(NECESSAR)-101 +b(Y)386 b(SER)-124 b(VICING,)386 b(REP)-143 b(AIR)387 +b(OR)g(CORRECTION.)745 40185 y +SDict begin H.S end + 745 40185 a 745 40185 +a +SDict begin 18.2 H.A end + 745 40185 a 745 40185 a +SDict begin [ /View [/XYZ H.V] /Dest (7158) cvn H.B /DEST pdfmark end + 745 40185 a Black 435 42975 +a FU(13.)p Black 2760 42975 a +SDict begin H.S end + 2760 42975 a 2760 42975 +a +SDict begin 18.2 H.A end + 2760 42975 a 2760 42975 a +SDict begin [ /View [/XYZ H.V] /Dest (7159) cvn H.B /DEST pdfmark end + 2760 42975 a FU(IN)1164 b(NO)f(EVENT)h +(UNLESS)f(REQ)-15 b(UIRED)1162 b(BY)i(APPLICABLE)e(LA)-139 +b(W)1163 b(OR)2760 44989 y(A)-62 b(GREED)935 b(T)-28 +b(O)935 b(IN)h(WRITING)f(WILL)h(ANY)f(COPYRIGHT)f(HOLDER,)i(OR)2760 +47004 y(ANY)785 b(O)-62 b(THER)785 b(P)-143 b(AR)-93 +b(TY)786 b(WHO)f(MA)-163 b(Y)786 b(MODIFY)f(AND/OR)g(REDISTRIB)-15 +b(UTE)2760 49019 y(THE)691 b(PR)-62 b(OGRAM)690 b(AS)i(PERMITTED)e(ABO) +-77 b(VE,)691 b(BE)h(LIABLE)f(T)-28 b(O)692 b(Y)-46 b(OU)691 +b(FOR)2760 51033 y(D)-62 b(AMA)g(GES,)1119 b(INCLUDING)f(ANY)h +(GENERAL,)g(SPECIAL,)g(INCIDENT)-144 b(AL)2760 53048 +y(OR)860 b(CONSEQ)-15 b(UENTIAL)859 b(D)-62 b(AMA)g(GES)860 +b(ARISING)g(OUT)g(OF)g(THE)h(USE)f(OR)2760 55063 y(IN)-54 +b(ABILITY)494 b(T)-28 b(O)494 b(USE)h(THE)f(PR)-62 b(OGRAM)494 +b(\(INCLUDING)g(B)-15 b(UT)494 b(NO)-62 b(T)494 b(LIMITED)2760 +57077 y(T)-28 b(O)706 b(LOSS)f(OF)h(D)-62 b(A)-172 b(T)-144 +b(A)705 b(OR)h(D)-62 b(A)-172 b(T)-144 b(A)705 b(BEING)h(RENDERED)f(IN) +-54 b(A)-62 b(CCURA)-172 b(TE)704 b(OR)2760 59092 y(LOSSES)486 +b(SUST)-144 b(AINED)486 b(BY)h(Y)-46 b(OU)486 b(OR)h(THIRD)g(P)-143 +b(AR)-93 b(TIES)486 b(OR)h(A)h(F)-115 b(AILURE)486 b(OF)2760 +61107 y(THE)444 b(PR)-62 b(OGRAM)444 b(T)-28 b(O)444 +b(OPERA)-172 b(TE)444 b(WITH)h(ANY)f(O)-62 b(THER)445 +b(PR)-62 b(OGRAMS\),)443 b(EVEN)2760 63121 y(IF)624 b(SUCH)f(HOLDER)h +(OR)g(O)-62 b(THER)623 b(P)-143 b(AR)-93 b(TY)624 b(HAS)g(BEEN)g(AD)-62 +b(VISED)623 b(OF)h(THE)2760 65136 y(POSSIBILITY)385 b(OF)i(SUCH)g(D)-62 +b(AMA)g(GES.)-30 65926 y +SDict begin H.S end + -30 65926 a -30 65926 a +SDict begin 18.2 H.A end + -30 +65926 a -30 65926 a +SDict begin [ /View [/XYZ H.V] /Dest (7160) cvn H.B /DEST pdfmark end + -30 65926 a 1999 x FU(END)387 b(OF)g(TERMS)f(AND)i +(CONDITIONS)p Black -30 73792 a FR(252)p Black eop end +%%Page: 253 275 +TeXDict begin 253 274 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.253) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (7171) cvn H.B /DEST pdfmark end + -30 -2687 a 22832 -1636 a FR(Appendix)386 +b(A.)i(The)f(GNU)g(Gener)-23 b(al)387 b(Public)f(License)p +Black -30 2504 a +SDict begin H.S end + -30 2504 a -30 2504 a +SDict begin 18.2 H.A end + -30 2504 a -30 +2504 a +SDict begin [ /View [/XYZ H.V] /Dest (7161) cvn H.B /DEST pdfmark end + -30 2504 a 1107 x FE(Ho)-23 b(w)430 b(to)h(Appl)-23 +b(y)430 b(These)f(T)-93 b(erms)430 b(to)h(Y)-155 b(our)430 +b(Ne)-23 b(w)429 b(Pr)-31 b(ograms)-30 4731 y +SDict begin H.S end + -30 4731 +a -30 4731 a +SDict begin 18.2 H.A end + -30 4731 a -30 4731 a +SDict begin [ /View [/XYZ H.V] /Dest (7163) cvn H.B /DEST pdfmark end + -30 4731 a 1670 x +FU(If)429 b(you)f(de)-39 b(v)-23 b(elop)429 b(a)g(ne)-39 +b(w)429 b(program,)f(and)h(you)f(w)-15 b(ant)428 b(it)h(to)f(be)h(of)g +(the)f(greatest)h(possible)f(use)g(to)-30 8415 y(the)467 +b(public,)f(the)h(best)f(w)-15 b(ay)466 b(to)h(achie)-39 +b(v)-23 b(e)466 b(this)g(is)h(to)f(mak)-15 b(e)466 b(it)h(free)g(softw) +-15 b(are)466 b(which)g(e)-39 b(v)-23 b(eryone)-30 10430 +y(can)388 b(redistrib)-31 b(ute)386 b(and)h(change)h(under)f(these)g +(terms.)-30 11540 y +SDict begin H.S end + -30 11540 a -30 11540 a +SDict begin 18.2 H.A end + -30 11540 +a -30 11540 a +SDict begin [ /View [/XYZ H.V] /Dest (7164) cvn H.B /DEST pdfmark end + -30 11540 a 1680 x FU(T)-124 b(o)466 b(do)g(so,)h(attach) +f(the)g(follo)-39 b(wing)466 b(notices)f(to)h(the)h(program.)f(It)g(is) +g(safest)g(to)g(attach)g(them)g(to)-30 15234 y(the)535 +b(start)f(of)g(each)h(source)g(\002le)f(to)g(most)g(ef)-39 +b(fecti)g(v)-23 b(ely)534 b(con)-62 b(v)-23 b(e)g(y)534 +b(the)h(e)-23 b(xclusion)533 b(of)i(w)-15 b(arranty;)-30 +17249 y(and)369 b(each)h(\002le)f(should)f(ha)-31 b(v)-23 +b(e)369 b(at)h(least)f(the)22841 17249 y +SDict begin H.S end + 22841 17249 +a 22841 17249 a +SDict begin 18.2 H.A end + 22841 17249 a 22841 17249 a +SDict begin [ /View [/XYZ H.V] /Dest (7165) cvn H.B /DEST pdfmark end + 22841 17249 +a FU(\223cop)-15 b(yright\224)368 b(line)h(and)g(a)h(pointer)f(to)g +(where)g(the)g(full)-30 19264 y(notice)387 b(is)g(found.)-30 +20829 y +SDict begin H.S end + -30 20829 a -30 20829 a +SDict begin 12.972 H.A end + -30 20829 a -30 20829 +a +SDict begin [ /View [/XYZ H.V] /Dest (7166) cvn H.B /DEST pdfmark end + -30 20829 a 1420 x Fd(<)p Fh(one)662 b(line)g(to)g(give)f(the)h +(program's)e(name)i(and)g(a)g(brief)f(idea)h(of)g(what)g(it)g(does.)p +Fd(>)1958 23685 y Fh(Copyright)e(\(C\))i Fd(<)p Fh(year)p +Fd(>)1325 b(<)p Fh(name)661 b(of)h(author)p Fd(>)1958 +26557 y Fh(This)g(program)f(is)h(free)f(software;)f(you)i(can)g +(redistribute)d(it)k(and/or)e(modify)1958 27993 y(it)h(under)g(the)g +(terms)f(of)h(the)g(GNU)g(General)e(Public)h(License)g(as)h(published)e +(by)1958 29429 y(the)i(Free)g(Software)e(Foundation;)g(either)h +(version)f(2)j(of)f(the)g(License,)e(or)1958 30865 y(\(at)i(your)g +(option\))e(any)i(later)g(version.)1958 33737 y(This)g(program)f(is)h +(distributed)d(in)j(the)g(hope)g(that)f(it)i(will)e(be)h(useful,)1958 +35173 y(but)g(WITHOUT)f(ANY)h(WARRANTY;)e(without)h(even)g(the)h +(implied)f(warranty)f(of)1958 36609 y(MERCHANTABILITY)f(or)j(FITNESS)f +(FOR)g(A)i(PARTICULAR)d(PURPOSE.)1323 b(See)662 b(the)1958 +38045 y(GNU)g(General)f(Public)g(License)g(for)g(more)h(details.)1958 +40917 y(You)g(should)f(have)h(received)e(a)j(copy)e(of)h(the)g(GNU)g +(General)f(Public)g(License)1958 42353 y(along)h(with)f(this)h +(program;)e(if)i(not,)g(write)f(to)h(the)g(Free)g(Software)1958 +43788 y(Foundation,)e(Inc.,)h(59)h(Temple)f(Place,)g(Suite)h(330,)f +(Boston,)g(MA)1987 b(02111-1307)660 b(USA)-30 45512 y +SDict begin H.S end + +-30 45512 a -30 45512 a +SDict begin 18.2 H.A end + -30 45512 a -30 45512 a +SDict begin [ /View [/XYZ H.V] /Dest (7167) cvn H.B /DEST pdfmark end + -30 45512 +a 1841 x FU(Also)387 b(add)g(information)f(on)i(ho)-39 +b(w)387 b(to)g(contact)g(you)g(by)g(electronic)g(and)h(paper)f(mail.) +-30 48463 y +SDict begin H.S end + -30 48463 a -30 48463 a +SDict begin 18.2 H.A end + -30 48463 a -30 48463 +a +SDict begin [ /View [/XYZ H.V] /Dest (7168) cvn H.B /DEST pdfmark end + -30 48463 a 1679 x FU(If)422 b(the)f(program)g(is)h(interacti)-39 +b(v)-23 b(e,)421 b(mak)-15 b(e)421 b(it)g(output)g(a)h(short)f(notice)g +(lik)-15 b(e)421 b(this)g(when)g(it)g(starts)g(in)-30 +52157 y(an)387 b(interacti)-39 b(v)-23 b(e)387 b(mode:)-30 +53722 y +SDict begin H.S end + -30 53722 a -30 53722 a +SDict begin 12.972 H.A end + -30 53722 a -30 53722 +a +SDict begin [ /View [/XYZ H.V] /Dest (7169) cvn H.B /DEST pdfmark end + -30 53722 a 1421 x Fh(Gnomovision)660 b(version)g(69,)i(Copyright)e +(\(C\))i(year)1325 b(name)661 b(of)h(author)-30 56579 +y(Gnomovision)e(comes)h(with)h(ABSOLUTELY)d(NO)k(WARRANTY;)d(for)i +(details)e(type)i(`show)f(w'.)-30 58015 y(This)h(is)g(free)f(software,) +g(and)g(you)h(are)g(welcome)f(to)h(redistribute)d(it)-30 +59451 y(under)i(certain)g(conditions;)f(type)h(`show)h(c')g(for)g +(details.)-30 61174 y +SDict begin H.S end + -30 61174 a -30 61174 a +SDict begin 18.2 H.A end + -30 61174 +a -30 61174 a +SDict begin [ /View [/XYZ H.V] /Dest (7170) cvn H.B /DEST pdfmark end + -30 61174 a 1841 x FU(The)558 b(h)-8 b(ypothetical)557 +b(commands)f(`sho)-39 b(w)558 b(w')g(and)f(`sho)-39 b(w)558 +b(c')g(should)e(sho)-39 b(w)558 b(the)f(appropriate)-30 +65030 y(parts)331 b(of)g(the)g(General)g(Public)f(License.)i(Of)f +(course,)g(the)g(commands)f(you)h(use)g(may)g(be)g(called)p +Black 49451 73792 a FR(253)p Black eop end +%%Page: 254 276 +TeXDict begin 254 275 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1237 a +SDict begin H.S end + -30 -1237 a 0 TeXcolorgray +0 TeXcolorgray -30 -1237 a +SDict begin H.R end + -30 -1237 a -30 -1237 a +SDict begin [ /View [/XYZ H.V] /Dest (page.254) cvn H.B /DEST pdfmark +end + -30 +-1237 a Black -399 x FR(Appendix)387 b(A.)h(The)f(GNU)g(Gener)-23 +b(al)386 b(Public)h(License)p Black -30 3611 a FU(something)507 +b(other)h(than)f(`sho)-39 b(w)508 b(w')g(and)g(`sho)-39 +b(w)508 b(c';)g(the)-23 b(y)507 b(could)h(e)-39 b(v)-23 +b(en)508 b(be)g(mouse-clicks)f(or)-30 5626 y(menu)387 +b(items--whate)-39 b(v)-23 b(er)387 b(suits)f(your)h(program.)-30 +8415 y(Y)-170 b(ou)365 b(should)f(also)h(get)g(your)h(emplo)-15 +b(yer)364 b(\(if)h(you)g(w)-15 b(ork)365 b(as)g(a)h(programmer\))e(or)i +(your)f(school,)g(if)-30 10430 y(an)-23 b(y)-101 b(,)352 +b(to)f(sign)g(a)g(\223cop)-15 b(yright)351 b(disclaimer\224)f(for)i +(the)f(program,)g(if)h(necessary)-101 b(.)351 b(Here)h(is)f(a)h +(sample;)-30 12445 y(alter)387 b(the)h(names:)-30 14010 +y +SDict begin H.S end + -30 14010 a -30 14010 a +SDict begin 12.972 H.A end + -30 14010 a -30 14010 a +SDict begin [ /View [/XYZ H.V] /Dest (7173) cvn H.B /DEST pdfmark end + -30 +14010 a 1296 15430 a Fh(Yoyodyne,)660 b(Inc.,)h(hereby)g(disclaims)f +(all)i(copyright)e(interest)h(in)h(the)g(program)1296 +16866 y(`Gnomovision')d(\(which)i(makes)g(passes)g(at)h(compilers\))e +(written)h(by)h(James)f(Hacker.)1296 19738 y Fd(<)p Fh(signature)f(of)i +(Ty)g(Coon)p Fd(>)p Fh(,)f(1)i(April)e(1989)1296 21174 +y(Ty)h(Coon,)f(President)f(of)i(Vice)-30 22897 y +SDict begin H.S end + -30 +22897 a -30 22897 a +SDict begin 18.2 H.A end + -30 22897 a -30 22897 a +SDict begin [ /View [/XYZ H.V] /Dest (7174) cvn H.B /DEST pdfmark end + -30 22897 +a 1842 x FU(This)460 b(General)g(Public)f(License)h(does)g(not)g +(permit)f(incorporating)h(your)g(program)f(into)h(pro-)-30 +26753 y(prietary)357 b(programs.)h(If)f(your)h(program)f(is)g(a)h +(subroutine)e(library)-101 b(,)358 b(you)g(may)f(consider)g(it)g(more) +-30 28768 y(useful)407 b(to)f(permit)g(linking)g(proprietary)g +(applications)g(with)g(the)h(library)-101 b(.)407 b(If)g(this)f(is)h +(what)f(you)-30 30783 y(w)-15 b(ant)387 b(to)g(do,)g(use)h(the)f(GNU)g +(Library)g(General)g(Public)g(License)g(instead)g(of)g(this)g(License.) +p Black -30 73792 a FR(254)p Black eop end +%%Page: 255 277 +TeXDict begin 255 276 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.255) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (DOC-INDEX) cvn H.B /DEST pdfmark +end + -30 2383 a 3276 x FO(Inde)-69 b(x)-30 +6722 y +SDict begin H.S end + -30 6722 a -30 6722 a +SDict begin 18.2 H.A end + -30 6722 a -30 6722 a +SDict begin [ /View [/XYZ H.V] /Dest (7176) cvn H.B /DEST pdfmark end + -30 +6722 a 6270 x FL(Symbols)-30 14570 y +SDict begin H.S end + -30 14570 a -30 +14570 a +SDict begin 18.2 H.A end + -30 14570 a -30 14570 a +SDict begin [ /View [/XYZ H.V] /Dest (7179) cvn H.B /DEST pdfmark end + -30 14570 a 1699 x FW(3-D)350 +b(hardw)-14 b(are,)p 0 TeXcolorgray 8360 16269 a +SDict begin H.S end + 8360 +16269 a FW(75)9754 16269 y +SDict begin 18.2 H.L end + 9754 16269 a 9754 16269 a +SDict begin [ /Subtype /Link /Dest (2242) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +9754 16269 a Black -30 16471 a +SDict begin H.S end + -30 16471 a -30 16471 +a +SDict begin 18.2 H.A end + -30 16471 a -30 16471 a +SDict begin [ /View [/XYZ H.V] /Dest (7182) cvn H.B /DEST pdfmark end + -30 16471 a 1960 x FW(802.11,)p +0 TeXcolorgray 4503 18431 a +SDict begin H.S end + 4503 18431 a FW(67)5897 18431 +y +SDict begin 18.2 H.L end + 5897 18431 a 5897 18431 a +SDict begin [ /Subtype /Link /Dest (2022) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5897 18431 a Black -30 18632 +a +SDict begin H.S end + -30 18632 a -30 18632 a +SDict begin 18.2 H.A end + -30 18632 a -30 18632 a +SDict begin [ /View [/XYZ H.V] /Dest (7184) cvn H.B /DEST pdfmark end + -30 +18632 a 6363 x FL(A)-30 26111 y +SDict begin H.S end + -30 26111 a -30 26111 +a +SDict begin 18.2 H.A end + -30 26111 a -30 26111 a +SDict begin [ /View [/XYZ H.V] /Dest (7187) cvn H.B /DEST pdfmark end + -30 26111 a 2162 x FW(accounts)-30 +28287 y +SDict begin H.S end + -30 28287 a -30 28287 a +SDict begin 18.2 H.A end + -30 28287 a -30 28287 +a +SDict begin [ /View [/XYZ H.V] /Dest (7188) cvn H.B /DEST pdfmark end + -30 28287 a 3070 30434 a FW(\(see)349 b(users\))-30 +30684 y +SDict begin H.S end + -30 30684 a -30 30684 a +SDict begin 18.2 H.A end + -30 30684 a -30 30684 +a +SDict begin [ /View [/XYZ H.V] /Dest (7189) cvn H.B /DEST pdfmark end + -30 30684 a 1520 32595 a FW(disabling,)p 0 TeXcolorgray +7332 32595 a +SDict begin H.S end + 7332 32595 a FW(148)9423 32595 y +SDict begin 18.2 H.L end + 9423 32595 +a 9423 32595 a +SDict begin [ /Subtype /Link /Dest (4196) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9423 32595 a Black -30 32897 a +SDict begin H.S end + -30 32897 +a -30 32897 a +SDict begin 18.2 H.A end + -30 32897 a -30 32897 a +SDict begin [ /View [/XYZ H.V] /Dest (7192) cvn H.B /DEST pdfmark end + -30 32897 a 1860 +x FW(Apache,)p 0 TeXcolorgray 4927 34757 a +SDict begin H.S end + 4927 34757 +a FW(1)5624 34757 y +SDict begin 18.2 H.L end + 5624 34757 a 5624 34757 a +SDict begin [ /Subtype /Link /Dest (307) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5624 34757 +a Black FW(,)p 0 TeXcolorgray 6322 34757 a +SDict begin H.S end + 6322 34757 +a FW(49)7716 34757 y +SDict begin 18.2 H.L end + 7716 34757 a 7716 34757 a +SDict begin [ /Subtype /Link /Dest (1521) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7716 34757 +a Black -30 35059 a +SDict begin H.S end + -30 35059 a -30 35059 a +SDict begin 18.2 H.A end + -30 35059 +a -30 35059 a +SDict begin [ /View [/XYZ H.V] /Dest (7196) cvn H.B /DEST pdfmark end + -30 35059 a 1859 x FW(AppleT)-112 b(alk,)p +0 TeXcolorgray 6521 36918 a +SDict begin H.S end + 6521 36918 a FW(49)7915 36918 +y +SDict begin 18.2 H.L end + 7915 36918 a 7915 36918 a +SDict begin [ /Subtype /Link /Dest (1513) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7915 36918 a Black -30 37220 +a +SDict begin H.S end + -30 37220 a -30 37220 a +SDict begin 18.2 H.A end + -30 37220 a -30 37220 a +SDict begin [ /View [/XYZ H.V] /Dest (7199) cvn H.B /DEST pdfmark end + -30 +37220 a 1860 x FW(apropos,)p 0 TeXcolorgray 5083 39080 +a +SDict begin H.S end + 5083 39080 a FW(8)5780 39080 y +SDict begin 18.2 H.L end + 5780 39080 a 5780 39080 +a +SDict begin [ /Subtype /Link /Dest (449) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5780 39080 a Black -30 39382 a +SDict begin H.S end + -30 39382 a -30 39382 +a +SDict begin 18.2 H.A end + -30 39382 a -30 39382 a +SDict begin [ /View [/XYZ H.V] /Dest (7201) cvn H.B /DEST pdfmark end + -30 39382 a 6262 x FL(B)-30 +46760 y +SDict begin H.S end + -30 46760 a -30 46760 a +SDict begin 18.2 H.A end + -30 46760 a -30 46760 +a +SDict begin [ /View [/XYZ H.V] /Dest (7204) cvn H.B /DEST pdfmark end + -30 46760 a 2162 x FW(bash,)p 0 TeXcolorgray 3224 48922 +a +SDict begin H.S end + 3224 48922 a FW(45)4618 48922 y +SDict begin 18.2 H.L end + 4618 48922 a 4618 48922 +a +SDict begin [ /Subtype /Link /Dest (1340) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4618 48922 a Black 1 w FW(,)p 0 TeXcolorgray 5316 48922 +a +SDict begin H.S end + 5316 48922 a FW(101)7407 48922 y +SDict begin 18.2 H.L end + 7407 48922 a 7407 +48922 a +SDict begin [ /Subtype /Link /Dest (2671) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7407 48922 a Black 1 w FW(,)p 0 TeXcolorgray +8106 48922 a +SDict begin H.S end + 8106 48922 a FW(106)10197 48922 y +SDict begin 18.2 H.L end + 10197 +48922 a 10197 48922 a +SDict begin [ /Subtype /Link /Dest (2889) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10197 48922 a Black 1 w FW(,)p +0 TeXcolorgray 10895 48922 a +SDict begin H.S end + 10895 48922 a FW(114)12986 +48922 y +SDict begin 18.2 H.L end + 12986 48922 a 12986 48922 a +SDict begin [ /Subtype /Link /Dest (3212) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12986 48922 a Black +-30 49123 a +SDict begin H.S end + -30 49123 a -30 49123 a +SDict begin 18.2 H.A end + -30 49123 a -30 49123 +a +SDict begin [ /View [/XYZ H.V] /Dest (7210) cvn H.B /DEST pdfmark end + -30 49123 a 1960 x FW(BIND,)p 0 TeXcolorgray 4076 51083 +a +SDict begin H.S end + 4076 51083 a FW(1)4773 51083 y +SDict begin 18.2 H.L end + 4773 51083 a 4773 51083 +a +SDict begin [ /Subtype /Link /Dest (309) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4773 51083 a Black -30 51285 a +SDict begin H.S end + -30 51285 a -30 51285 +a +SDict begin 18.2 H.A end + -30 51285 a -30 51285 a +SDict begin [ /View [/XYZ H.V] /Dest (7213) cvn H.B /DEST pdfmark end + -30 51285 a 1960 x FW(boot)350 +b(disk,)p 0 TeXcolorgray 5821 53245 a +SDict begin H.S end + 5821 53245 a FW(33)7215 +53245 y +SDict begin 18.2 H.L end + 7215 53245 a 7215 53245 a +SDict begin [ /Subtype /Link /Dest (1112) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7215 53245 a Black +-30 53446 a +SDict begin H.S end + -30 53446 a -30 53446 a +SDict begin 18.2 H.A end + -30 53446 a -30 53446 +a +SDict begin [ /View [/XYZ H.V] /Dest (7216) cvn H.B /DEST pdfmark end + -30 53446 a 1960 x FW(booting,)p 0 TeXcolorgray 4930 +55406 a +SDict begin H.S end + 4930 55406 a FW(89)6324 55406 y +SDict begin 18.2 H.L end + 6324 55406 a +6324 55406 a +SDict begin [ /Subtype /Link /Dest (2469) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6324 55406 a Black -30 55708 a +SDict begin H.S end + -30 55708 +a -30 55708 a +SDict begin 18.2 H.A end + -30 55708 a -30 55708 a +SDict begin [ /View [/XYZ H.V] /Dest (7218) cvn H.B /DEST pdfmark end + -30 55708 a 1520 +57567 a FW(ZipSlack,)p 0 TeXcolorgray 7254 57567 a +SDict begin H.S end + 7254 +57567 a FW(227)9345 57567 y +SDict begin 18.2 H.L end + 9345 57567 a 9345 57567 a +SDict begin [ /Subtype /Link /Dest (6710) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +9345 57567 a Black -30 57869 a +SDict begin H.S end + -30 57869 a -30 57869 +a +SDict begin 18.2 H.A end + -30 57869 a -30 57869 a +SDict begin [ /View [/XYZ H.V] /Dest (7221) cvn H.B /DEST pdfmark end + -30 57869 a 1860 x FW(BSD,)p +0 TeXcolorgray 3380 59729 a +SDict begin H.S end + 3380 59729 a FW(13)4774 59729 +y +SDict begin 18.2 H.L end + 4774 59729 a 4774 59729 a +SDict begin [ /Subtype /Link /Dest (586) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4774 59729 a Black 1 w FW(,)p +0 TeXcolorgray 5472 59729 a +SDict begin H.S end + 5472 59729 a FW(46)6866 59729 +y +SDict begin 18.2 H.L end + 6866 59729 a 6866 59729 a +SDict begin [ /Subtype /Link /Dest (1398) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6866 59729 a Black -30 59930 +a +SDict begin H.S end + -30 59930 a -30 59930 a +SDict begin 18.2 H.A end + -30 59930 a -30 59930 a +SDict begin [ /View [/XYZ H.V] /Dest (7224) cvn H.B /DEST pdfmark end + -30 +59930 a 1520 61890 a FW(init,)p 0 TeXcolorgray 4078 61890 +a +SDict begin H.S end + 4078 61890 a FW(49)5472 61890 y +SDict begin 18.2 H.L end + 5472 61890 a 5472 61890 +a +SDict begin [ /Subtype /Link /Dest (1538) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5472 61890 a Black -30 62092 a +SDict begin H.S end + -30 62092 a -30 62092 +a +SDict begin 18.2 H.A end + -30 62092 a -30 62092 a +SDict begin [ /View [/XYZ H.V] /Dest (7226) cvn H.B /DEST pdfmark end + -30 62092 a 1520 64052 a FW(license,)p +0 TeXcolorgray 6090 64052 a +SDict begin H.S end + 6090 64052 a FW(4)6787 64052 +y +SDict begin 18.2 H.L end + 6787 64052 a 6787 64052 a +SDict begin [ /Subtype /Link /Dest (371) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6787 64052 a Black -30 64253 +a +SDict begin H.S end + -30 64253 a -30 64253 a +SDict begin 18.2 H.A end + -30 64253 a -30 64253 a +SDict begin [ /View [/XYZ H.V] /Dest (7229) cvn H.B /DEST pdfmark end + -30 +64253 a 1960 x FW(bzip2,)p 0 TeXcolorgray 3767 66213 +a +SDict begin H.S end + 3767 66213 a FW(190)5858 66213 y +SDict begin 18.2 H.L end + 5858 66213 a 5858 +66213 a +SDict begin [ /Subtype /Link /Dest (5338) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5858 66213 a Black -30 66515 a +SDict begin H.S end + -30 66515 a -30 +66515 a +SDict begin 18.2 H.A end + -30 66515 a -30 66515 a +SDict begin [ /View [/XYZ H.V] /Dest (7231) cvn H.B /DEST pdfmark end + -30 66515 a Black Black +27866 4011 a FL(C)27866 5155 y +SDict begin H.S end + 27866 5155 a 27866 5155 +a +SDict begin 18.2 H.A end + 27866 5155 a 27866 5155 a +SDict begin [ /View [/XYZ H.V] /Dest (7234) cvn H.B /DEST pdfmark end + 27866 5155 a 2040 x FW(cat,)p +0 TeXcolorgray 30189 7195 a +SDict begin H.S end + 30189 7195 a FW(125)32280 +7195 y +SDict begin 18.2 H.L end + 32280 7195 a 32280 7195 a +SDict begin [ /Subtype /Link /Dest (3565) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32280 7195 a Black 27866 +7396 a +SDict begin H.S end + 27866 7396 a 27866 7396 a +SDict begin 18.2 H.A end + 27866 7396 a 27866 7396 +a +SDict begin [ /View [/XYZ H.V] /Dest (7237) cvn H.B /DEST pdfmark end + 27866 7396 a 1867 x FW(cd,)p 0 TeXcolorgray 29880 9263 +a +SDict begin H.S end + 29880 9263 a FW(123)31971 9263 y +SDict begin 18.2 H.L end + 31971 9263 a 31971 +9263 a +SDict begin [ /Subtype /Link /Dest (3441) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 31971 9263 a Black 27866 9464 a +SDict begin H.S end + 27866 9464 a 27866 +9464 a +SDict begin 18.2 H.A end + 27866 9464 a 27866 9464 a +SDict begin [ /View [/XYZ H.V] /Dest (7240) cvn H.B /DEST pdfmark end + 27866 9464 a 1867 x +FW(CD-R)-56 b(OM,)p 0 TeXcolorgray 34086 11331 a +SDict begin H.S end + 34086 +11331 a FW(117)36177 11331 y +SDict begin 18.2 H.L end + 36177 11331 a 36177 11331 +a +SDict begin [ /Subtype /Link /Dest (3326) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36177 11331 a Black 27866 11532 a +SDict begin H.S end + 27866 11532 a 27866 +11532 a +SDict begin 18.2 H.A end + 27866 11532 a 27866 11532 a +SDict begin [ /View [/XYZ H.V] /Dest (7243) cvn H.B /DEST pdfmark end + 27866 11532 a 1866 +x FW(checksum,)p 0 TeXcolorgray 34141 13398 a +SDict begin H.S end + 34141 13398 +a FW(187)36232 13398 y +SDict begin 18.2 H.L end + 36232 13398 a 36232 13398 a +SDict begin [ /Subtype /Link /Dest (5254) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36232 +13398 a Black 27866 13600 a +SDict begin H.S end + 27866 13600 a 27866 13600 +a +SDict begin 18.2 H.A end + 27866 13600 a 27866 13600 a +SDict begin [ /View [/XYZ H.V] /Dest (7246) cvn H.B /DEST pdfmark end + 27866 13600 a 1866 x FW(chmod,)p +0 TeXcolorgray 32359 15466 a +SDict begin H.S end + 32359 15466 a FW(50)33753 +15466 y +SDict begin 18.2 H.L end + 33753 15466 a 33753 15466 a +SDict begin [ /Subtype /Link /Dest (1569) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33753 15466 a Black +1 w FW(,)p 0 TeXcolorgray 34452 15466 a +SDict begin H.S end + 34452 15466 a +FW(113)36543 15466 y +SDict begin 18.2 H.L end + 36543 15466 a 36543 15466 a +SDict begin [ /Subtype /Link /Dest (3199) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36543 +15466 a Black 27866 15668 a +SDict begin H.S end + 27866 15668 a 27866 15668 +a +SDict begin 18.2 H.A end + 27866 15668 a 27866 15668 a +SDict begin [ /View [/XYZ H.V] /Dest (7250) cvn H.B /DEST pdfmark end + 27866 15668 a 1866 x FW(cho)-35 +b(wn,)p 0 TeXcolorgray 32246 17534 a +SDict begin H.S end + 32246 17534 a FW(111)34337 +17534 y +SDict begin 18.2 H.L end + 34337 17534 a 34337 17534 a +SDict begin [ /Subtype /Link /Dest (3100) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34337 17534 a Black +27866 17736 a +SDict begin H.S end + 27866 17736 a 27866 17736 a +SDict begin 18.2 H.A end + 27866 17736 +a 27866 17736 a +SDict begin [ /View [/XYZ H.V] /Dest (7253) cvn H.B /DEST pdfmark end + 27866 17736 a 1866 x FW(CIFS,)p 0 TeXcolorgray +31509 19602 a +SDict begin H.S end + 31509 19602 a FW(70)32903 19602 y +SDict begin 18.2 H.L end + 32903 +19602 a 32903 19602 a +SDict begin [ /Subtype /Link /Dest (2135) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32903 19602 a Black 27866 19803 +a +SDict begin H.S end + 27866 19803 a 27866 19803 a +SDict begin 18.2 H.A end + 27866 19803 a 27866 19803 +a +SDict begin [ /View [/XYZ H.V] /Dest (7256) cvn H.B /DEST pdfmark end + 27866 19803 a 1867 x FW(compression,)p 0 TeXcolorgray +35613 21670 a +SDict begin H.S end + 35613 21670 a FW(189)37704 21670 y +SDict begin 18.2 H.L end + 37704 +21670 a 37704 21670 a +SDict begin [ /Subtype /Link /Dest (5293) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37704 21670 a Black 27866 21972 +a +SDict begin H.S end + 27866 21972 a 27866 21972 a +SDict begin 18.2 H.A end + 27866 21972 a 27866 21972 +a +SDict begin [ /View [/XYZ H.V] /Dest (7258) cvn H.B /DEST pdfmark end + 27866 21972 a 5982 x FL(D)27866 29070 y +SDict begin H.S end + 27866 29070 +a 27866 29070 a +SDict begin 18.2 H.A end + 27866 29070 a 27866 29070 a +SDict begin [ /View [/XYZ H.V] /Dest (7261) cvn H.B /DEST pdfmark end + 27866 29070 +a 2067 x FW(daemons,)p 0 TeXcolorgray 33521 31137 a +SDict begin H.S end + 33521 +31137 a FW(133)35612 31137 y +SDict begin 18.2 H.L end + 35612 31137 a 35612 31137 +a +SDict begin [ /Subtype /Link /Dest (3825) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35612 31137 a Black 1 w FW(,)p 0 TeXcolorgray 36311 +31137 a +SDict begin H.S end + 36311 31137 a FW(137)38402 31137 y +SDict begin 18.2 H.L end + 38402 31137 +a 38402 31137 a +SDict begin [ /Subtype /Link /Dest (3928) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38402 31137 a Black 1 w FW(,)p 0 TeXcolorgray +39100 31137 a +SDict begin H.S end + 39100 31137 a FW(181)41191 31137 y +SDict begin 18.2 H.L end + 41191 +31137 a 41191 31137 a +SDict begin [ /Subtype /Link /Dest (5083) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 41191 31137 a Black 27866 31339 +a +SDict begin H.S end + 27866 31339 a 27866 31339 a +SDict begin 18.2 H.A end + 27866 31339 a 27866 31339 +a +SDict begin [ /View [/XYZ H.V] /Dest (7266) cvn H.B /DEST pdfmark end + 27866 31339 a 1866 x FW(darkstar)-56 b(,)p 0 TeXcolorgray +33000 33205 a +SDict begin H.S end + 33000 33205 a FW(101)35091 33205 y +SDict begin 18.2 H.L end + 35091 +33205 a 35091 33205 a +SDict begin [ /Subtype /Link /Dest (2684) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35091 33205 a Black 27866 33407 +a +SDict begin H.S end + 27866 33407 a 27866 33407 a +SDict begin 18.2 H.A end + 27866 33407 a 27866 33407 +a +SDict begin [ /View [/XYZ H.V] /Dest (7269) cvn H.B /DEST pdfmark end + 27866 33407 a 1866 x FW(Debian)349 b(Linux,)p 0 TeXcolorgray +36272 35273 a +SDict begin H.S end + 36272 35273 a FW(215)38363 35273 y +SDict begin 18.2 H.L end + 38363 +35273 a 38363 35273 a +SDict begin [ /Subtype /Link /Dest (6378) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38363 35273 a Black 27866 35475 +a +SDict begin H.S end + 27866 35475 a 27866 35475 a +SDict begin 18.2 H.A end + 27866 35475 a 27866 35475 +a +SDict begin [ /View [/XYZ H.V] /Dest (7272) cvn H.B /DEST pdfmark end + 27866 35475 a 1866 x FW(decompression,)p 0 TeXcolorgray +36930 37341 a +SDict begin H.S end + 36930 37341 a FW(189)39021 37341 y +SDict begin 18.2 H.L end + 39021 +37341 a 39021 37341 a +SDict begin [ /Subtype /Link /Dest (5326) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39021 37341 a Black 27866 37643 +a +SDict begin H.S end + 27866 37643 a 27866 37643 a +SDict begin 18.2 H.A end + 27866 37643 a 27866 37643 +a +SDict begin [ /View [/XYZ H.V] /Dest (7275) cvn H.B /DEST pdfmark end + 27866 37643 a 1766 x FW(def)-14 b(ault)349 b(g)-7 b(ate)-35 +b(w)-14 b(ay)-91 b(,)p 0 TeXcolorgray 37272 39409 a +SDict begin H.S end + 37272 +39409 a FW(64)38666 39409 y +SDict begin 18.2 H.L end + 38666 39409 a 38666 39409 +a +SDict begin [ /Subtype /Link /Dest (1903) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38666 39409 a Black 27866 39711 a +SDict begin H.S end + 27866 39711 a 27866 +39711 a +SDict begin 18.2 H.A end + 27866 39711 a 27866 39711 a +SDict begin [ /View [/XYZ H.V] /Dest (7278) cvn H.B /DEST pdfmark end + 27866 39711 a 1765 +x FW(def)-14 b(ault)349 b(route,)p 0 TeXcolorgray 35637 +41476 a +SDict begin H.S end + 35637 41476 a FW(64)37031 41476 y +SDict begin 18.2 H.L end + 37031 41476 +a 37031 41476 a +SDict begin [ /Subtype /Link /Dest (1901) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37031 41476 a Black 27866 41678 a +SDict begin H.S end + 27866 +41678 a 27866 41678 a +SDict begin 18.2 H.A end + 27866 41678 a 27866 41678 a +SDict begin [ /View [/XYZ H.V] /Dest (7281) cvn H.B /DEST pdfmark end + 27866 +41678 a 1866 x FW(de)-35 b(vices)27866 43558 y +SDict begin H.S end + 27866 +43558 a 27866 43558 a +SDict begin 18.2 H.A end + 27866 43558 a 27866 43558 a +SDict begin [ /View [/XYZ H.V] /Dest (7282) cvn H.B /DEST pdfmark end + 27866 +43558 a 29415 45612 a FW(mounting,)p 0 TeXcolorgray 35460 +45612 a +SDict begin H.S end + 35460 45612 a FW(117)37551 45612 y +SDict begin 18.2 H.L end + 37551 45612 +a 37551 45612 a +SDict begin [ /Subtype /Link /Dest (3307) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37551 45612 a Black 27866 45914 a +SDict begin H.S end + 27866 +45914 a 27866 45914 a +SDict begin 18.2 H.A end + 27866 45914 a 27866 45914 a +SDict begin [ /View [/XYZ H.V] /Dest (7285) cvn H.B /DEST pdfmark end + 27866 +45914 a 1766 x FW(DHCP)-155 b(,)p 0 TeXcolorgray 32128 +47680 a +SDict begin H.S end + 32128 47680 a FW(57)33522 47680 y +SDict begin 18.2 H.L end + 33522 47680 +a 33522 47680 a +SDict begin [ /Subtype /Link /Dest (1747) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33522 47680 a Black 1 w FW(,)p 0 TeXcolorgray +34220 47680 a +SDict begin H.S end + 34220 47680 a FW(61)35614 47680 y +SDict begin 18.2 H.L end + 35614 +47680 a 35614 47680 a +SDict begin [ /Subtype /Link /Dest (1844) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35614 47680 a Black 27866 47881 +a +SDict begin H.S end + 27866 47881 a 27866 47881 a +SDict begin 18.2 H.A end + 27866 47881 a 27866 47881 +a +SDict begin [ /View [/XYZ H.V] /Dest (7288) cvn H.B /DEST pdfmark end + 27866 47881 a 29415 49748 a FW(client,)p 0 TeXcolorgray +33212 49748 a +SDict begin H.S end + 33212 49748 a FW(62)34606 49748 y +SDict begin 18.2 H.L end + 34606 +49748 a 34606 49748 a +SDict begin [ /Subtype /Link /Dest (1864) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34606 49748 a Black 27866 49949 +a +SDict begin H.S end + 27866 49949 a 27866 49949 a +SDict begin 18.2 H.A end + 27866 49949 a 27866 49949 +a +SDict begin [ /View [/XYZ H.V] /Dest (7291) cvn H.B /DEST pdfmark end + 27866 49949 a 1867 x FW(directories,)p 0 TeXcolorgray +34450 51816 a +SDict begin H.S end + 34450 51816 a FW(122)36541 51816 y +SDict begin 18.2 H.L end + 36541 +51816 a 36541 51816 a +SDict begin [ /Subtype /Link /Dest (3419) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36541 51816 a Black 27866 52017 +a +SDict begin H.S end + 27866 52017 a 27866 52017 a +SDict begin 18.2 H.A end + 27866 52017 a 27866 52017 +a +SDict begin [ /View [/XYZ H.V] /Dest (7293) cvn H.B /DEST pdfmark end + 27866 52017 a 29415 53883 a FW(changing,)p 0 TeXcolorgray +35226 53883 a +SDict begin H.S end + 35226 53883 a FW(123)37317 53883 y +SDict begin 18.2 H.L end + 37317 +53883 a 37317 53883 a +SDict begin [ /Subtype /Link /Dest (3438) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37317 53883 a Black 27866 54185 +a +SDict begin H.S end + 27866 54185 a 27866 54185 a +SDict begin 18.2 H.A end + 27866 54185 a 27866 54185 +a +SDict begin [ /View [/XYZ H.V] /Dest (7295) cvn H.B /DEST pdfmark end + 27866 54185 a 29415 55951 a FW(cop)-14 b(ying,)p 0 +TeXcolorgray 34593 55951 a +SDict begin H.S end + 34593 55951 a FW(128)36684 +55951 y +SDict begin 18.2 H.L end + 36684 55951 a 36684 55951 a +SDict begin [ /Subtype /Link /Dest (3672) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36684 55951 a Black +27866 56253 a +SDict begin H.S end + 27866 56253 a 27866 56253 a +SDict begin 18.2 H.A end + 27866 56253 +a 27866 56253 a +SDict begin [ /View [/XYZ H.V] /Dest (7297) cvn H.B /DEST pdfmark end + 27866 56253 a 29415 58019 a FW(creating,)p +0 TeXcolorgray 34605 58019 a +SDict begin H.S end + 34605 58019 a FW(127)36696 +58019 y +SDict begin 18.2 H.L end + 36696 58019 a 36696 58019 a +SDict begin [ /Subtype /Link /Dest (3643) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36696 58019 a Black +27866 58321 a +SDict begin H.S end + 27866 58321 a 27866 58321 a +SDict begin 18.2 H.A end + 27866 58321 +a 27866 58321 a +SDict begin [ /View [/XYZ H.V] /Dest (7299) cvn H.B /DEST pdfmark end + 27866 58321 a 29415 60087 a FW(current,)p +0 TeXcolorgray 34063 60087 a +SDict begin H.S end + 34063 60087 a FW(124)36154 +60087 y +SDict begin 18.2 H.L end + 36154 60087 a 36154 60087 a +SDict begin [ /Subtype /Link /Dest (3465) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36154 60087 a Black +27866 60288 a +SDict begin H.S end + 27866 60288 a 27866 60288 a +SDict begin 18.2 H.A end + 27866 60288 +a 27866 60288 a +SDict begin [ /View [/XYZ H.V] /Dest (7301) cvn H.B /DEST pdfmark end + 27866 60288 a 29415 62155 a FW(mo)-21 +b(ving,)p 0 TeXcolorgray 34354 62155 a +SDict begin H.S end + 34354 62155 a +FW(129)36445 62155 y +SDict begin 18.2 H.L end + 36445 62155 a 36445 62155 a +SDict begin [ /Subtype /Link /Dest (3717) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36445 +62155 a Black 27866 62457 a +SDict begin H.S end + 27866 62457 a 27866 62457 +a +SDict begin 18.2 H.A end + 27866 62457 a 27866 62457 a +SDict begin [ /View [/XYZ H.V] /Dest (7303) cvn H.B /DEST pdfmark end + 27866 62457 a 29415 64222 +a FW(remo)g(ving,)p 0 TeXcolorgray 35438 64222 a +SDict begin H.S end + 35438 +64222 a FW(129)37529 64222 y +SDict begin 18.2 H.L end + 37529 64222 a 37529 64222 +a +SDict begin [ /Subtype /Link /Dest (3753) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37529 64222 a Black 27866 64524 a +SDict begin H.S end + 27866 64524 a 27866 +64524 a +SDict begin 18.2 H.A end + 27866 64524 a 27866 64524 a +SDict begin [ /View [/XYZ H.V] /Dest (7306) cvn H.B /DEST pdfmark end + 27866 64524 a 1766 +x FW(DNS,)p 0 TeXcolorgray 31352 66290 a +SDict begin H.S end + 31352 66290 +a FW(64)32746 66290 y +SDict begin 18.2 H.L end + 32746 66290 a 32746 66290 a +SDict begin [ /Subtype /Link /Dest (1917) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32746 +66290 a Black 1 w FW(,)p 0 TeXcolorgray 33445 66290 a +SDict begin H.S end + +33445 66290 a FW(159)35536 66290 y +SDict begin 18.2 H.L end + 35536 66290 a 35536 +66290 a +SDict begin [ /Subtype /Link /Dest (4470) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35536 66290 a Black 1 w FW(,)p 0 TeXcolorgray +36234 66290 a +SDict begin H.S end + 36234 66290 a FW(186)38325 66290 y +SDict begin 18.2 H.L end + 38325 +66290 a 38325 66290 a +SDict begin [ /Subtype /Link /Dest (5220) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38325 66290 a Black 27866 66492 +a +SDict begin H.S end + 27866 66492 a 27866 66492 a +SDict begin 18.2 H.A end + 27866 66492 a 27866 66492 +a +SDict begin [ /View [/XYZ H.V] /Dest (7310) cvn H.B /DEST pdfmark end + 27866 66492 a 29415 68358 a FW(diagnostics,)p 0 TeXcolorgray +36389 68358 a +SDict begin H.S end + 36389 68358 a FW(160)38480 68358 y +SDict begin 18.2 H.L end + 38480 +68358 a 38480 68358 a +SDict begin [ /Subtype /Link /Dest (4498) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38480 68358 a Black Black -30 73672 +a +SDict begin H.S end + -30 73672 a -30 73672 a +SDict begin 18.2 H.A end + -30 73672 a -30 73672 a +SDict begin [ /View [/XYZ H.V] /Dest (7316) cvn H.B /DEST pdfmark end + -30 +73672 a 49451 74722 a FR(255)p Black eop end +%%Page: 256 278 +TeXDict begin 256 277 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.256) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black -30 2383 a +SDict begin H.S end + -30 2383 a -30 2383 a +SDict begin 18.2 H.A end + +-30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7313) cvn H.B /DEST pdfmark end + -30 2383 a 1107 x FW(Domain)350 +b(Name)f(Service)-30 3504 y +SDict begin H.S end + -30 3504 a -30 3504 a +SDict begin 18.2 H.A end + -30 +3504 a -30 3504 a +SDict begin [ /View [/XYZ H.V] /Dest (7314) cvn H.B /DEST pdfmark end + -30 3504 a 1520 5506 a FW(\(see)g(DNS\))-30 +7521 y(DOS,)p 0 TeXcolorgray 3457 7521 a +SDict begin H.S end + 3457 7521 a +FW(41)4851 7521 y +SDict begin 18.2 H.L end + 4851 7521 a 4851 7521 a +SDict begin [ /Subtype /Link /Dest (7316) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4851 7521 a +Black 1 w FW(,)p 0 TeXcolorgray 5549 7521 a +SDict begin H.S end + 5549 7521 +a FW(89)6943 7521 y +SDict begin 18.2 H.L end + 6943 7521 a 6943 7521 a +SDict begin [ /Subtype /Link /Dest (2475) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6943 7521 +a Black 1 w FW(,)p 0 TeXcolorgray 7641 7521 a +SDict begin H.S end + 7641 7521 +a FW(225)9732 7521 y +SDict begin 18.2 H.L end + 9732 7521 a 9732 7521 a +SDict begin [ /Subtype /Link /Dest (6656) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9732 7521 +a Black -30 7722 a +SDict begin H.S end + -30 7722 a -30 7722 a +SDict begin 18.2 H.A end + -30 7722 a -30 +7722 a +SDict begin [ /View [/XYZ H.V] /Dest (7321) cvn H.B /DEST pdfmark end + -30 7722 a 1814 x FW(Dual)g(booting,)p 0 TeXcolorgray +7990 9536 a +SDict begin H.S end + 7990 9536 a FW(94)9384 9536 y +SDict begin 18.2 H.L end + 9384 9536 a +9384 9536 a +SDict begin [ /Subtype /Link /Dest (2565) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9384 9536 a Black -30 9838 a +SDict begin H.S end + -30 9838 a -30 +9838 a +SDict begin 18.2 H.A end + -30 9838 a -30 9838 a +SDict begin [ /View [/XYZ H.V] /Dest (7323) cvn H.B /DEST pdfmark end + -30 9838 a 5825 x FL(E)-30 +16779 y +SDict begin H.S end + -30 16779 a -30 16779 a +SDict begin 18.2 H.A end + -30 16779 a -30 16779 +a +SDict begin [ /View [/XYZ H.V] /Dest (7326) cvn H.B /DEST pdfmark end + -30 16779 a 2015 x FW(echo,)p 0 TeXcolorgray 3301 18794 +a +SDict begin H.S end + 3301 18794 a FW(126)5392 18794 y +SDict begin 18.2 H.L end + 5392 18794 a 5392 +18794 a +SDict begin [ /Subtype /Link /Dest (3605) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5392 18794 a Black -30 18995 a +SDict begin H.S end + -30 18995 a -30 +18995 a +SDict begin 18.2 H.A end + -30 18995 a -30 18995 a +SDict begin [ /View [/XYZ H.V] /Dest (7329) cvn H.B /DEST pdfmark end + -30 18995 a 1814 x FW(editor)-30 +20823 y +SDict begin H.S end + -30 20823 a -30 20823 a +SDict begin 18.2 H.A end + -30 20823 a -30 20823 +a +SDict begin [ /View [/XYZ H.V] /Dest (7330) cvn H.B /DEST pdfmark end + -30 20823 a 1520 22825 a FW(\(see)g(Emacs)g(or)h(vi\))-30 +23074 y +SDict begin H.S end + -30 23074 a -30 23074 a +SDict begin 18.2 H.A end + -30 23074 a -30 23074 +a +SDict begin [ /View [/XYZ H.V] /Dest (7332) cvn H.B /DEST pdfmark end + -30 23074 a 1766 x FW(elvis,)p 0 TeXcolorgray 3302 +24840 a +SDict begin H.S end + 3302 24840 a FW(195)5393 24840 y +SDict begin 18.2 H.L end + 5393 24840 a +5393 24840 a +SDict begin [ /Subtype /Link /Dest (5535) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5393 24840 a Black -30 25041 a +SDict begin H.S end + -30 25041 +a -30 25041 a +SDict begin 18.2 H.A end + -30 25041 a -30 25041 a +SDict begin [ /View [/XYZ H.V] /Dest (7335) cvn H.B /DEST pdfmark end + -30 25041 a 1814 +x FW(emacs,)p 0 TeXcolorgray 4153 26855 a +SDict begin H.S end + 4153 26855 +a FW(2)4850 26855 y +SDict begin 18.2 H.L end + 4850 26855 a 4850 26855 a +SDict begin [ /Subtype /Link /Dest (333) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4850 26855 +a Black FW(,)p 0 TeXcolorgray 5548 26855 a +SDict begin H.S end + 5548 26855 +a FW(205)7639 26855 y +SDict begin 18.2 H.L end + 7639 26855 a 7639 26855 a +SDict begin [ /Subtype /Link /Dest (5931) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7639 +26855 a Black -30 27057 a +SDict begin H.S end + -30 27057 a -30 27057 a +SDict begin 18.2 H.A end + -30 +27057 a -30 27057 a +SDict begin [ /View [/XYZ H.V] /Dest (7338) cvn H.B /DEST pdfmark end + -30 27057 a 1520 28871 a FW(basic)f(commands,)p +0 TeXcolorgray 11476 28871 a +SDict begin H.S end + 11476 28871 a FW(210)13567 +28871 y +SDict begin 18.2 H.L end + 13567 28871 a 13567 28871 a +SDict begin [ /Subtype /Link /Dest (6146) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 13567 28871 a Black +-30 29072 a +SDict begin H.S end + -30 29072 a -30 29072 a +SDict begin 18.2 H.A end + -30 29072 a -30 29072 +a +SDict begin [ /View [/XYZ H.V] /Dest (7340) cvn H.B /DEST pdfmark end + -30 29072 a 1520 30886 a FW(basic)g(editing,)p 0 TeXcolorgray +9307 30886 a +SDict begin H.S end + 9307 30886 a FW(210)11398 30886 y +SDict begin 18.2 H.L end + 11398 +30886 a 11398 30886 a +SDict begin [ /Subtype /Link /Dest (6133) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11398 30886 a Black -30 31188 a +SDict begin H.S end + +-30 31188 a -30 31188 a +SDict begin 18.2 H.A end + -30 31188 a -30 31188 a +SDict begin [ /View [/XYZ H.V] /Dest (7342) cvn H.B /DEST pdfmark end + -30 31188 +a 1520 32901 a FW(b)-28 b(uf)-35 b(fers,)p 0 TeXcolorgray +6104 32901 a +SDict begin H.S end + 6104 32901 a FW(207)8195 32901 y +SDict begin 18.2 H.L end + 8195 32901 +a 8195 32901 a +SDict begin [ /Subtype /Link /Dest (6049) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8195 32901 a Black -30 33103 a +SDict begin H.S end + -30 33103 +a -30 33103 a +SDict begin 18.2 H.A end + -30 33103 a -30 33103 a +SDict begin [ /View [/XYZ H.V] /Dest (7344) cvn H.B /DEST pdfmark end + -30 33103 a 1520 +34917 a FW(modes,)p 0 TeXcolorgray 5859 34917 a +SDict begin H.S end + 5859 +34917 a FW(208)7950 34917 y +SDict begin 18.2 H.L end + 7950 34917 a 7950 34917 a +SDict begin [ /Subtype /Link /Dest (6080) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +7950 34917 a Black -30 35118 a +SDict begin H.S end + -30 35118 a -30 35118 +a +SDict begin 18.2 H.A end + -30 35118 a -30 35118 a +SDict begin [ /View [/XYZ H.V] /Dest (7346) cvn H.B /DEST pdfmark end + -30 35118 a 1520 36932 a FW(quitting,)p +0 TeXcolorgray 6558 36932 a +SDict begin H.S end + 6558 36932 a FW(213)8649 +36932 y +SDict begin 18.2 H.L end + 8649 36932 a 8649 36932 a +SDict begin [ /Subtype /Link /Dest (6361) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8649 36932 a Black +-30 37234 a +SDict begin H.S end + -30 37234 a -30 37234 a +SDict begin 18.2 H.A end + -30 37234 a -30 37234 +a +SDict begin [ /View [/XYZ H.V] /Dest (7348) cvn H.B /DEST pdfmark end + -30 37234 a 1520 38947 a FW(sa)-28 b(ving)349 b(\002les,)p +0 TeXcolorgray 8505 38947 a +SDict begin H.S end + 8505 38947 a FW(212)10596 +38947 y +SDict begin 18.2 H.L end + 10596 38947 a 10596 38947 a +SDict begin [ /Subtype /Link /Dest (6338) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10596 38947 a Black +-30 39249 a +SDict begin H.S end + -30 39249 a -30 39249 a +SDict begin 18.2 H.A end + -30 39249 a -30 39249 +a +SDict begin [ /View [/XYZ H.V] /Dest (7350) cvn H.B /DEST pdfmark end + -30 39249 a 1520 40962 a FW(starting,)p 0 TeXcolorgray +6401 40962 a +SDict begin H.S end + 6401 40962 a FW(206)8492 40962 y +SDict begin 18.2 H.L end + 8492 40962 +a 8492 40962 a +SDict begin [ /Subtype /Link /Dest (5964) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8492 40962 a Black -30 41264 a +SDict begin H.S end + -30 41264 +a -30 41264 a +SDict begin 18.2 H.A end + -30 41264 a -30 41264 a +SDict begin [ /View [/XYZ H.V] /Dest (7353) cvn H.B /DEST pdfmark end + -30 41264 a 1714 +x FW(email,)p 0 TeXcolorgray 3767 42978 a +SDict begin H.S end + 3767 42978 +a FW(165)5858 42978 y +SDict begin 18.2 H.L end + 5858 42978 a 5858 42978 a +SDict begin [ /Subtype /Link /Dest (4634) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5858 +42978 a Black -30 43179 a +SDict begin H.S end + -30 43179 a -30 43179 a +SDict begin 18.2 H.A end + -30 +43179 a -30 43179 a +SDict begin [ /View [/XYZ H.V] /Dest (7355) cvn H.B /DEST pdfmark end + -30 43179 a 1520 44993 a FW(composing,)p +0 TeXcolorgray 8339 44993 a +SDict begin H.S end + 8339 44993 a FW(167)10430 +44993 y +SDict begin 18.2 H.L end + 10430 44993 a 10430 44993 a +SDict begin [ /Subtype /Link /Dest (4692) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10430 44993 a Black +-30 45295 a +SDict begin H.S end + -30 45295 a -30 45295 a +SDict begin 18.2 H.A end + -30 45295 a -30 45295 +a +SDict begin [ /View [/XYZ H.V] /Dest (7358) cvn H.B /DEST pdfmark end + -30 45295 a 1713 x FW(email)g(clients)-30 47022 y +SDict begin H.S end + -30 +47022 a -30 47022 a +SDict begin 18.2 H.A end + -30 47022 a -30 47022 a +SDict begin [ /View [/XYZ H.V] /Dest (7359) cvn H.B /DEST pdfmark end + -30 47022 +a 1520 49024 a FW(elm,)p 0 TeXcolorgray 4309 49024 a +SDict begin H.S end + +4309 49024 a FW(165)6400 49024 y +SDict begin 18.2 H.L end + 6400 49024 a 6400 49024 +a +SDict begin [ /Subtype /Link /Dest (4644) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6400 49024 a Black 2 w FW(,)p 0 TeXcolorgray 7099 49024 +a +SDict begin H.S end + 7099 49024 a FW(167)9190 49024 y +SDict begin 18.2 H.L end + 9190 49024 a 9190 +49024 a +SDict begin [ /Subtype /Link /Dest (4679) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9190 49024 a Black -30 49225 a +SDict begin H.S end + -30 49225 a -30 +49225 a +SDict begin 18.2 H.A end + -30 49225 a -30 49225 a +SDict begin [ /View [/XYZ H.V] /Dest (7362) cvn H.B /DEST pdfmark end + -30 49225 a 1520 51039 +a FW(mutt,)p 0 TeXcolorgray 4775 51039 a +SDict begin H.S end + 4775 51039 a +FW(168)6866 51039 y +SDict begin 18.2 H.L end + 6866 51039 a 6866 51039 a +SDict begin [ /Subtype /Link /Dest (4705) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6866 51039 +a Black -30 51241 a +SDict begin H.S end + -30 51241 a -30 51241 a +SDict begin 18.2 H.A end + -30 51241 +a -30 51241 a +SDict begin [ /View [/XYZ H.V] /Dest (7364) cvn H.B /DEST pdfmark end + -30 51241 a 1520 53054 a FW(nail,)p 0 TeXcolorgray +4309 53054 a +SDict begin H.S end + 4309 53054 a FW(169)6400 53054 y +SDict begin 18.2 H.L end + 6400 53054 +a 6400 53054 a +SDict begin [ /Subtype /Link /Dest (4741) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6400 53054 a Black -30 53256 a +SDict begin H.S end + -30 53256 +a -30 53256 a +SDict begin 18.2 H.A end + -30 53256 a -30 53256 a +SDict begin [ /View [/XYZ H.V] /Dest (7366) cvn H.B /DEST pdfmark end + -30 53256 a 1520 +55070 a FW(pine,)p 0 TeXcolorgray 4619 55070 a +SDict begin H.S end + 4619 55070 +a FW(165)6710 55070 y +SDict begin 18.2 H.L end + 6710 55070 a 6710 55070 a +SDict begin [ /Subtype /Link /Dest (4641) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6710 +55070 a Black -30 55372 a +SDict begin H.S end + -30 55372 a -30 55372 a +SDict begin 18.2 H.A end + -30 +55372 a -30 55372 a +SDict begin [ /View [/XYZ H.V] /Dest (7369) cvn H.B /DEST pdfmark end + -30 55372 a 1713 x FW(en)-56 b(vironment)352 +b(v)-35 b(ariables,)p 0 TeXcolorgray 13011 57085 a +SDict begin H.S end + 13011 +57085 a FW(103)15102 57085 y +SDict begin 18.2 H.L end + 15102 57085 a 15102 57085 +a +SDict begin [ /Subtype /Link /Dest (2739) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 15102 57085 a Black 1 w FW(,)p 0 TeXcolorgray 15801 +57085 a +SDict begin H.S end + 15801 57085 a FW(107)17892 57085 y +SDict begin 18.2 H.L end + 17892 57085 +a 17892 57085 a +SDict begin [ /Subtype /Link /Dest (2897) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 17892 57085 a Black -30 57287 a +SDict begin H.S end + -30 57287 +a -30 57287 a +SDict begin 18.2 H.A end + -30 57287 a -30 57287 a +SDict begin [ /View [/XYZ H.V] /Dest (7373) cvn H.B /DEST pdfmark end + -30 57287 a 1813 +x FW(e)-21 b(xplodepkg,)p 0 TeXcolorgray 7155 59100 a +SDict begin H.S end + +7155 59100 a FW(222)9246 59100 y +SDict begin 18.2 H.L end + 9246 59100 a 9246 59100 +a +SDict begin [ /Subtype /Link /Dest (6585) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9246 59100 a Black -30 59402 a +SDict begin H.S end + -30 59402 a -30 59402 +a +SDict begin 18.2 H.A end + -30 59402 a -30 59402 a +SDict begin [ /View [/XYZ H.V] /Dest (7375) cvn H.B /DEST pdfmark end + -30 59402 a 5825 x FL(F)-30 +66343 y +SDict begin H.S end + -30 66343 a -30 66343 a +SDict begin 18.2 H.A end + -30 66343 a -30 66343 +a +SDict begin [ /View [/XYZ H.V] /Dest (7378) cvn H.B /DEST pdfmark end + -30 66343 a 2015 x FW(F)-103 b(A)-77 b(Qs,)p 0 TeXcolorgray +3820 68358 a +SDict begin H.S end + 3820 68358 a FW(10)5214 68358 y +SDict begin 18.2 H.L end + 5214 68358 +a 5214 68358 a +SDict begin [ /Subtype /Link /Dest (493) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5214 68358 a Black Black Black 27866 2383 +a +SDict begin H.S end + 27866 2383 a 27866 2383 a +SDict begin 18.2 H.A end + 27866 2383 a 27866 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7381) cvn H.B /DEST pdfmark end + +27866 2383 a 1107 x FW(fdisk,)p 0 TeXcolorgray 31352 +3490 a +SDict begin H.S end + 31352 3490 a FW(22)32746 3490 y +SDict begin 18.2 H.L end + 32746 3490 a 32746 +3490 a +SDict begin [ /Subtype /Link /Dest (902) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32746 3490 a Black 27866 3692 a +SDict begin H.S end + 27866 3692 a 27866 +3692 a +SDict begin 18.2 H.A end + 27866 3692 a 27866 3692 a +SDict begin [ /View [/XYZ H.V] /Dest (7384) cvn H.B /DEST pdfmark end + 27866 3692 a 1825 x +FW(\002le)349 b(systems,)p 0 TeXcolorgray 35111 5517 +a +SDict begin H.S end + 35111 5517 a FW(28)36505 5517 y +SDict begin 18.2 H.L end + 36505 5517 a 36505 +5517 a +SDict begin [ /Subtype /Link /Dest (1028) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36505 5517 a Black 1 w FW(,)p 0 TeXcolorgray 37203 +5517 a +SDict begin H.S end + 37203 5517 a FW(41)38597 5517 y +SDict begin 18.2 H.L end + 38597 5517 a 38597 +5517 a +SDict begin [ /Subtype /Link /Dest (1217) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38597 5517 a Black 1 w FW(,)p 0 TeXcolorgray 39296 +5517 a +SDict begin H.S end + 39296 5517 a FW(111)41387 5517 y +SDict begin 18.2 H.L end + 41387 5517 a +41387 5517 a +SDict begin [ /Subtype /Link /Dest (3070) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 41387 5517 a Black 27866 5819 a +SDict begin H.S end + 27866 5819 +a 27866 5819 a +SDict begin 18.2 H.A end + 27866 5819 a 27866 5819 a +SDict begin [ /View [/XYZ H.V] /Dest (7388) cvn H.B /DEST pdfmark end + 27866 5819 a +29415 7544 a FW(journalling,)p 0 TeXcolorgray 36234 7544 +a +SDict begin H.S end + 36234 7544 a FW(153)38325 7544 y +SDict begin 18.2 H.L end + 38325 7544 a 38325 +7544 a +SDict begin [ /Subtype /Link /Dest (4316) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38325 7544 a Black 27866 7846 a +SDict begin H.S end + 27866 7846 a 27866 +7846 a +SDict begin 18.2 H.A end + 27866 7846 a 27866 7846 a +SDict begin [ /View [/XYZ H.V] /Dest (7390) cvn H.B /DEST pdfmark end + 27866 7846 a 29415 9572 +a FW(layout,)p 0 TeXcolorgray 33600 9572 a +SDict begin H.S end + 33600 9572 +a FW(41)34994 9572 y +SDict begin 18.2 H.L end + 34994 9572 a 34994 9572 a +SDict begin [ /Subtype /Link /Dest (1219) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34994 +9572 a Black 27866 9874 a +SDict begin H.S end + 27866 9874 a 27866 9874 a +SDict begin 18.2 H.A end + 27866 +9874 a 27866 9874 a +SDict begin [ /View [/XYZ H.V] /Dest (7392) cvn H.B /DEST pdfmark end + 27866 9874 a 29415 11599 a FW(netw)-14 +b(ork,)p 0 TeXcolorgray 34669 11599 a +SDict begin H.S end + 34669 11599 a FW(70)36063 +11599 y +SDict begin 18.2 H.L end + 36063 11599 a 36063 11599 a +SDict begin [ /Subtype /Link /Dest (2107) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36063 11599 a Black +27866 11800 a +SDict begin H.S end + 27866 11800 a 27866 11800 a +SDict begin 18.2 H.A end + 27866 11800 +a 27866 11800 a +SDict begin [ /View [/XYZ H.V] /Dest (7394) cvn H.B /DEST pdfmark end + 27866 11800 a 29415 13626 a FW(SMB,)p +0 TeXcolorgray 33058 13626 a +SDict begin H.S end + 33058 13626 a FW(70)34452 +13626 y +SDict begin 18.2 H.L end + 34452 13626 a 34452 13626 a +SDict begin [ /Subtype /Link /Dest (2128) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34452 13626 a Black +27866 13827 a +SDict begin H.S end + 27866 13827 a 27866 13827 a +SDict begin 18.2 H.A end + 27866 13827 +a 27866 13827 a +SDict begin [ /View [/XYZ H.V] /Dest (7397) cvn H.B /DEST pdfmark end + 27866 13827 a 1826 x FW(\002les)27866 +15667 y +SDict begin H.S end + 27866 15667 a 27866 15667 a +SDict begin 18.2 H.A end + 27866 15667 a 27866 +15667 a +SDict begin [ /View [/XYZ H.V] /Dest (7398) cvn H.B /DEST pdfmark end + 27866 15667 a 29415 17680 a FW(archi)-35 b(ving,)p +0 TeXcolorgray 35346 17680 a +SDict begin H.S end + 35346 17680 a FW(192)37437 +17680 y +SDict begin 18.2 H.L end + 37437 17680 a 37437 17680 a +SDict begin [ /Subtype /Link /Dest (5454) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37437 17680 a Black +27866 17982 a +SDict begin H.S end + 27866 17982 a 27866 17982 a +SDict begin 18.2 H.A end + 27866 17982 +a 27866 17982 a +SDict begin [ /View [/XYZ H.V] /Dest (7400) cvn H.B /DEST pdfmark end + 27866 17982 a 29415 19707 a FW(changing)351 +b(o)-35 b(wnership,)p 0 TeXcolorgray 41350 19707 a +SDict begin H.S end + 41350 +19707 a FW(111)43441 19707 y +SDict begin 18.2 H.L end + 43441 19707 a 43441 19707 +a +SDict begin [ /Subtype /Link /Dest (3097) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 43441 19707 a Black 27866 20009 a +SDict begin H.S end + 27866 20009 a 27866 +20009 a +SDict begin 18.2 H.A end + 27866 20009 a 27866 20009 a +SDict begin [ /View [/XYZ H.V] /Dest (7402) cvn H.B /DEST pdfmark end + 27866 20009 a 29415 +21734 a FW(compressing,)p 0 TeXcolorgray 37163 21734 +a +SDict begin H.S end + 37163 21734 a FW(189)39254 21734 y +SDict begin 18.2 H.L end + 39254 21734 a 39254 +21734 a +SDict begin [ /Subtype /Link /Dest (5290) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39254 21734 a Black 27866 22036 a +SDict begin H.S end + 27866 22036 +a 27866 22036 a +SDict begin 18.2 H.A end + 27866 22036 a 27866 22036 a +SDict begin [ /View [/XYZ H.V] /Dest (7404) cvn H.B /DEST pdfmark end + 27866 22036 +a 29415 23761 a FW(cop)-14 b(ying,)p 0 TeXcolorgray 34593 +23761 a +SDict begin H.S end + 34593 23761 a FW(128)36684 23761 y +SDict begin 18.2 H.L end + 36684 23761 +a 36684 23761 a +SDict begin [ /Subtype /Link /Dest (3669) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36684 23761 a Black 27866 24063 a +SDict begin H.S end + 27866 +24063 a 27866 24063 a +SDict begin 18.2 H.A end + 27866 24063 a 27866 24063 a +SDict begin [ /View [/XYZ H.V] /Dest (7406) cvn H.B /DEST pdfmark end + 27866 +24063 a 29415 25789 a FW(displaying,)p 0 TeXcolorgray +35925 25789 a +SDict begin H.S end + 35925 25789 a FW(126)38016 25789 y +SDict begin 18.2 H.L end + 38016 +25789 a 38016 25789 a +SDict begin [ /Subtype /Link /Dest (3578) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38016 25789 a Black 27866 26091 +a +SDict begin H.S end + 27866 26091 a 27866 26091 a +SDict begin 18.2 H.A end + 27866 26091 a 27866 26091 +a +SDict begin [ /View [/XYZ H.V] /Dest (7408) cvn H.B /DEST pdfmark end + 27866 26091 a 29415 27816 a FW(do)-35 b(wnloading,)p +0 TeXcolorgray 37361 27816 a +SDict begin H.S end + 37361 27816 a FW(173)39452 +27816 y +SDict begin 18.2 H.L end + 39452 27816 a 39452 27816 a +SDict begin [ /Subtype /Link /Dest (4836) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39452 27816 a Black +27866 28118 a +SDict begin H.S end + 27866 28118 a 27866 28118 a +SDict begin 18.2 H.A end + 27866 28118 +a 27866 28118 a +SDict begin [ /View [/XYZ H.V] /Dest (7410) cvn H.B /DEST pdfmark end + 27866 28118 a 29415 29843 a FW(editing,)p +0 TeXcolorgray 33987 29843 a +SDict begin H.S end + 33987 29843 a FW(205)36078 +29843 y +SDict begin 18.2 H.L end + 36078 29843 a 36078 29843 a +SDict begin [ /Subtype /Link /Dest (5952) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36078 29843 a Black +27866 30145 a +SDict begin H.S end + 27866 30145 a 27866 30145 a +SDict begin 18.2 H.A end + 27866 30145 +a 27866 30145 a +SDict begin [ /View [/XYZ H.V] /Dest (7412) cvn H.B /DEST pdfmark end + 27866 30145 a 29415 31870 a FW(listing,)p +0 TeXcolorgray 33601 31870 a +SDict begin H.S end + 33601 31870 a FW(121)35692 +31870 y +SDict begin 18.2 H.L end + 35692 31870 a 35692 31870 a +SDict begin [ /Subtype /Link /Dest (3400) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35692 31870 a Black +27866 32172 a +SDict begin H.S end + 27866 32172 a 27866 32172 a +SDict begin 18.2 H.A end + 27866 32172 +a 27866 32172 a +SDict begin [ /View [/XYZ H.V] /Dest (7414) cvn H.B /DEST pdfmark end + 27866 32172 a 29415 33897 a FW(mo)-21 +b(ving,)p 0 TeXcolorgray 34354 33897 a +SDict begin H.S end + 34354 33897 a +FW(129)36445 33897 y +SDict begin 18.2 H.L end + 36445 33897 a 36445 33897 a +SDict begin [ /Subtype /Link /Dest (3714) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36445 +33897 a Black 27866 34199 a +SDict begin H.S end + 27866 34199 a 27866 34199 +a +SDict begin 18.2 H.A end + 27866 34199 a 27866 34199 a +SDict begin [ /View [/XYZ H.V] /Dest (7416) cvn H.B /DEST pdfmark end + 27866 34199 a 29415 35924 +a FW(o)-35 b(wnership,)p 0 TeXcolorgray 35888 35924 a +SDict begin H.S end + +35888 35924 a FW(111)37979 35924 y +SDict begin 18.2 H.L end + 37979 35924 a 37979 +35924 a +SDict begin [ /Subtype /Link /Dest (3080) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37979 35924 a Black 27866 36226 a +SDict begin H.S end + 27866 36226 +a 27866 36226 a +SDict begin 18.2 H.A end + 27866 36226 a 27866 36226 a +SDict begin [ /View [/XYZ H.V] /Dest (7418) cvn H.B /DEST pdfmark end + 27866 36226 +a 29415 37951 a FW(permission,)p 0 TeXcolorgray 36234 +37951 a +SDict begin H.S end + 36234 37951 a FW(112)38325 37951 y +SDict begin 18.2 H.L end + 38325 37951 +a 38325 37951 a +SDict begin [ /Subtype /Link /Dest (3136) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38325 37951 a Black 27866 38253 a +SDict begin H.S end + 27866 +38253 a 27866 38253 a +SDict begin 18.2 H.A end + 27866 38253 a 27866 38253 a +SDict begin [ /View [/XYZ H.V] /Dest (7420) cvn H.B /DEST pdfmark end + 27866 +38253 a 29415 39978 a FW(remo)-21 b(ving,)p 0 TeXcolorgray +35438 39978 a +SDict begin H.S end + 35438 39978 a FW(129)37529 39978 y +SDict begin 18.2 H.L end + 37529 +39978 a 37529 39978 a +SDict begin [ /Subtype /Link /Dest (3737) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37529 39978 a Black 27866 40280 +a +SDict begin H.S end + 27866 40280 a 27866 40280 a +SDict begin 18.2 H.A end + 27866 40280 a 27866 40280 +a +SDict begin [ /View [/XYZ H.V] /Dest (7422) cvn H.B /DEST pdfmark end + 27866 40280 a 29415 42006 a FW(timestamps,)p 0 TeXcolorgray +36467 42006 a +SDict begin H.S end + 36467 42006 a FW(127)38558 42006 y +SDict begin 18.2 H.L end + 38558 +42006 a 38558 42006 a +SDict begin [ /Subtype /Link /Dest (3621) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38558 42006 a Black 27866 42307 +a +SDict begin H.S end + 27866 42307 a 27866 42307 a +SDict begin 18.2 H.A end + 27866 42307 a 27866 42307 +a +SDict begin [ /View [/XYZ H.V] /Dest (7425) cvn H.B /DEST pdfmark end + 27866 42307 a 1726 x FW(\002nd,)p 0 TeXcolorgray 30733 +44033 a +SDict begin H.S end + 30733 44033 a FW(45)32127 44033 y +SDict begin 18.2 H.L end + 32127 44033 +a 32127 44033 a +SDict begin [ /Subtype /Link /Dest (1365) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32127 44033 a Black 27866 44234 a +SDict begin H.S end + 27866 +44234 a 27866 44234 a +SDict begin 18.2 H.A end + 27866 44234 a 27866 44234 a +SDict begin [ /View [/XYZ H.V] /Dest (7428) cvn H.B /DEST pdfmark end + 27866 +44234 a 1826 x FW(\002re)-35 b(w)-14 b(all,)p 0 TeXcolorgray +32775 46060 a +SDict begin H.S end + 32775 46060 a FW(183)34866 46060 y +SDict begin 18.2 H.L end + 34866 +46060 a 34866 46060 a +SDict begin [ /Subtype /Link /Dest (5139) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34866 46060 a Black 27866 46261 +a +SDict begin H.S end + 27866 46261 a 27866 46261 a +SDict begin 18.2 H.A end + 27866 46261 a 27866 46261 +a +SDict begin [ /View [/XYZ H.V] /Dest (7431) cvn H.B /DEST pdfmark end + 27866 46261 a 1826 x FW(\003opp)g(y)350 b(disk,)p 0 +TeXcolorgray 34788 48087 a +SDict begin H.S end + 34788 48087 a FW(91)36182 +48087 y +SDict begin 18.2 H.L end + 36182 48087 a 36182 48087 a +SDict begin [ /Subtype /Link /Dest (2530) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36182 48087 a Black +FW(,)p 0 TeXcolorgray 36880 48087 a +SDict begin H.S end + 36880 48087 a FW(118)38971 +48087 y +SDict begin 18.2 H.L end + 38971 48087 a 38971 48087 a +SDict begin [ /Subtype /Link /Dest (3365) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38971 48087 a Black +27866 48389 a +SDict begin H.S end + 27866 48389 a 27866 48389 a +SDict begin 18.2 H.A end + 27866 48389 +a 27866 48389 a +SDict begin [ /View [/XYZ H.V] /Dest (7435) cvn H.B /DEST pdfmark end + 27866 48389 a 1725 x FW(\003opp)-14 b(y)350 +b(disks)27866 50416 y +SDict begin H.S end + 27866 50416 a 27866 50416 a +SDict begin 18.2 H.A end + 27866 +50416 a 27866 50416 a +SDict begin [ /View [/XYZ H.V] /Dest (7436) cvn H.B /DEST pdfmark end + 27866 50416 a 29415 52141 a FW(cop)-14 +b(ying,)p 0 TeXcolorgray 34593 52141 a +SDict begin H.S end + 34593 52141 a +FW(21)35987 52141 y +SDict begin 18.2 H.L end + 35987 52141 a 35987 52141 a +SDict begin [ /Subtype /Link /Dest (873) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35987 +52141 a Black 27866 52443 a +SDict begin H.S end + 27866 52443 a 27866 52443 +a +SDict begin 18.2 H.A end + 27866 52443 a 27866 52443 a +SDict begin [ /View [/XYZ H.V] /Dest (7439) cvn H.B /DEST pdfmark end + 27866 52443 a 1725 x FW(font,)p +0 TeXcolorgray 30810 54168 a +SDict begin H.S end + 30810 54168 a FW(38)32204 +54168 y +SDict begin 18.2 H.L end + 32204 54168 a 32204 54168 a +SDict begin [ /Subtype /Link /Dest (1161) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32204 54168 a Black +1 w FW(,)p 0 TeXcolorgray 32902 54168 a +SDict begin H.S end + 32902 54168 a +FW(50)34296 54168 y +SDict begin 18.2 H.L end + 34296 54168 a 34296 54168 a +SDict begin [ /Subtype /Link /Dest (1561) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34296 +54168 a Black 27866 54370 a +SDict begin H.S end + 27866 54370 a 27866 54370 +a +SDict begin 18.2 H.A end + 27866 54370 a 27866 54370 a +SDict begin [ /View [/XYZ H.V] /Dest (7443) cvn H.B /DEST pdfmark end + 27866 54370 a 1825 x FW(free)350 +b(softw)-14 b(are,)p 0 TeXcolorgray 35867 56195 a +SDict begin H.S end + 35867 +56195 a FW(3)36564 56195 y +SDict begin 18.2 H.L end + 36564 56195 a 36564 56195 +a +SDict begin [ /Subtype /Link /Dest (355) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36564 56195 a Black 27866 56397 a +SDict begin H.S end + 27866 56397 a 27866 +56397 a +SDict begin 18.2 H.A end + 27866 56397 a 27866 56397 a +SDict begin [ /View [/XYZ H.V] /Dest (7446) cvn H.B /DEST pdfmark end + 27866 56397 a 1826 +x FW(Free)350 b(Softw)-14 b(are)350 b(F)-21 b(oundation,)p +0 TeXcolorgray 43093 58223 a +SDict begin H.S end + 43093 58223 a FW(2)43790 +58223 y +SDict begin 18.2 H.L end + 43790 58223 a 43790 58223 a +SDict begin [ /Subtype /Link /Dest (323) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 43790 58223 a Black +1 w FW(,)p 0 TeXcolorgray 44488 58223 a +SDict begin H.S end + 44488 58223 a +FW(3)45185 58223 y +SDict begin 18.2 H.L end + 45185 58223 a 45185 58223 a +SDict begin [ /Subtype /Link /Dest (359) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 45185 +58223 a Black 27866 58424 a +SDict begin H.S end + 27866 58424 a 27866 58424 +a +SDict begin 18.2 H.A end + 27866 58424 a 27866 58424 a +SDict begin [ /View [/XYZ H.V] /Dest (7450) cvn H.B /DEST pdfmark end + 27866 58424 a 1826 x FW(FTP)-155 +b(,)p 0 TeXcolorgray 30811 60250 a +SDict begin H.S end + 30811 60250 a FW(70)32205 +60250 y +SDict begin 18.2 H.L end + 32205 60250 a 32205 60250 a +SDict begin [ /Subtype /Link /Dest (2110) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32205 60250 a Black +27866 60451 a +SDict begin H.S end + 27866 60451 a 27866 60451 a +SDict begin 18.2 H.A end + 27866 60451 +a 27866 60451 a +SDict begin [ /View [/XYZ H.V] /Dest (7452) cvn H.B /DEST pdfmark end + 27866 60451 a 29415 62277 a FW(clients,)p +0 TeXcolorgray 33754 62277 a +SDict begin H.S end + 33754 62277 a FW(174)35845 +62277 y +SDict begin 18.2 H.L end + 35845 62277 a 35845 62277 a +SDict begin [ /Subtype /Link /Dest (4863) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35845 62277 a Black +27866 62478 a +SDict begin H.S end + 27866 62478 a 27866 62478 a +SDict begin 18.2 H.A end + 27866 62478 +a 27866 62478 a +SDict begin [ /View [/XYZ H.V] /Dest (7454) cvn H.B /DEST pdfmark end + 27866 62478 a 29415 64304 a FW(commands,)p +0 TeXcolorgray 36156 64304 a +SDict begin H.S end + 36156 64304 a FW(175)38247 +64304 y +SDict begin 18.2 H.L end + 38247 64304 a 38247 64304 a +SDict begin [ /Subtype /Link /Dest (4941) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38247 64304 a Black +27866 64505 a +SDict begin H.S end + 27866 64505 a 27866 64505 a +SDict begin 18.2 H.A end + 27866 64505 +a 27866 64505 a +SDict begin [ /View [/XYZ H.V] /Dest (7457) cvn H.B /DEST pdfmark end + 27866 64505 a 1826 x FW(FTP)349 b(clients)27866 +66345 y +SDict begin H.S end + 27866 66345 a 27866 66345 a +SDict begin 18.2 H.A end + 27866 66345 a 27866 +66345 a +SDict begin [ /View [/XYZ H.V] /Dest (7458) cvn H.B /DEST pdfmark end + 27866 66345 a 29415 68358 a FW(NcFTP)-155 b(,)p +0 TeXcolorgray 33987 68358 a +SDict begin H.S end + 33987 68358 a FW(176)36078 +68358 y +SDict begin 18.2 H.L end + 36078 68358 a 36078 68358 a +SDict begin [ /Subtype /Link /Dest (4960) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36078 68358 a Black +27866 68560 a +SDict begin H.S end + 27866 68560 a 27866 68560 a +SDict begin 18.2 H.A end + 27866 68560 +a 27866 68560 a +SDict begin [ /View [/XYZ H.V] /Dest (7460) cvn H.B /DEST pdfmark end + 27866 68560 a Black -30 73672 a FR(256)p +Black eop end +%%Page: 257 279 +TeXDict begin 257 278 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.257) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (7617) cvn H.B /DEST pdfmark end + -30 -2687 a Black 6698 x FL(G)-30 +5155 y +SDict begin H.S end + -30 5155 a -30 5155 a +SDict begin 18.2 H.A end + -30 5155 a -30 5155 a +SDict begin [ /View [/XYZ H.V] /Dest (7463) cvn H.B /DEST pdfmark end + -30 +5155 a 2000 x FW(gcc,)p 0 TeXcolorgray 2603 7155 a +SDict begin H.S end + 2603 +7155 a FW(2)3300 7155 y +SDict begin 18.2 H.L end + 3300 7155 a 3300 7155 a +SDict begin [ /Subtype /Link /Dest (325) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 3300 +7155 a Black -30 7457 a +SDict begin H.S end + -30 7457 a -30 7457 a +SDict begin 18.2 H.A end + -30 7457 +a -30 7457 a +SDict begin [ /View [/XYZ H.V] /Dest (7466) cvn H.B /DEST pdfmark end + -30 7457 a 1726 x FW(GIMP)-155 b(,)p 0 TeXcolorgray +4000 9183 a +SDict begin H.S end + 4000 9183 a FW(83)5394 9183 y +SDict begin 18.2 H.L end + 5394 9183 a +5394 9183 a +SDict begin [ /Subtype /Link /Dest (2394) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5394 9183 a Black -30 9384 a +SDict begin H.S end + -30 9384 a -30 +9384 a +SDict begin 18.2 H.A end + -30 9384 a -30 9384 a +SDict begin [ /View [/XYZ H.V] /Dest (7469) cvn H.B /DEST pdfmark end + -30 9384 a 1827 x FW(GNOME,)p +0 TeXcolorgray 5781 11211 a +SDict begin H.S end + 5781 11211 a FW(15)7175 11211 +y +SDict begin 18.2 H.L end + 7175 11211 a 7175 11211 a +SDict begin [ /Subtype /Link /Dest (647) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7175 11211 a Black FW(,)p +0 TeXcolorgray 7873 11211 a +SDict begin H.S end + 7873 11211 a FW(83)9267 11211 +y +SDict begin 18.2 H.L end + 9267 11211 a 9267 11211 a +SDict begin [ /Subtype /Link /Dest (2391) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9267 11211 a Black -30 11412 +a +SDict begin H.S end + -30 11412 a -30 11412 a +SDict begin 18.2 H.A end + -30 11412 a -30 11412 a +SDict begin [ /View [/XYZ H.V] /Dest (7473) cvn H.B /DEST pdfmark end + -30 +11412 a 1827 x FW(GNU,)p 0 TeXcolorgray 3689 13239 a +SDict begin H.S end + +3689 13239 a FW(2)4386 13239 y +SDict begin 18.2 H.L end + 4386 13239 a 4386 13239 +a +SDict begin [ /Subtype /Link /Dest (319) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4386 13239 a Black FW(,)p 0 TeXcolorgray 5083 13239 +a +SDict begin H.S end + 5083 13239 a FW(3)5780 13239 y +SDict begin 18.2 H.L end + 5780 13239 a 5780 13239 +a +SDict begin [ /Subtype /Link /Dest (361) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5780 13239 a Black 1 w FW(,)p 0 TeXcolorgray 6478 13239 +a +SDict begin H.S end + 6478 13239 a FW(189)8569 13239 y +SDict begin 18.2 H.L end + 8569 13239 a 8569 +13239 a +SDict begin [ /Subtype /Link /Dest (5288) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8569 13239 a Black -30 13440 a +SDict begin H.S end + -30 13440 a -30 +13440 a +SDict begin 18.2 H.A end + -30 13440 a -30 13440 a +SDict begin [ /View [/XYZ H.V] /Dest (7478) cvn H.B /DEST pdfmark end + -30 13440 a 1827 x FW(GNU)349 +b(Emacs,)p 0 TeXcolorgray 7756 15267 a +SDict begin H.S end + 7756 15267 a FW(205)9847 +15267 y +SDict begin 18.2 H.L end + 9847 15267 a 9847 15267 a +SDict begin [ /Subtype /Link /Dest (5956) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9847 15267 a Black +-30 15468 a +SDict begin H.S end + -30 15468 a -30 15468 a +SDict begin 18.2 H.A end + -30 15468 a -30 15468 +a +SDict begin [ /View [/XYZ H.V] /Dest (7481) cvn H.B /DEST pdfmark end + -30 15468 a 1827 x FW(GNU)g(tape)g(archi)-35 b(v)-21 +b(er)-30 17597 y +SDict begin H.S end + -30 17597 a -30 17597 a +SDict begin 18.2 H.A end + -30 17597 a +-30 17597 a +SDict begin [ /View [/XYZ H.V] /Dest (7482) cvn H.B /DEST pdfmark end + -30 17597 a 1520 19323 a FW(\(see)349 b(tar\))-30 +19572 y +SDict begin H.S end + -30 19572 a -30 19572 a +SDict begin 18.2 H.A end + -30 19572 a -30 19572 +a +SDict begin [ /View [/XYZ H.V] /Dest (7484) cvn H.B /DEST pdfmark end + -30 19572 a 1779 x FW(GNU/Linux,)p 0 TeXcolorgray 7408 +21351 a +SDict begin H.S end + 7408 21351 a FW(2)8105 21351 y +SDict begin 18.2 H.L end + 8105 21351 a 8105 +21351 a +SDict begin [ /Subtype /Link /Dest (321) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8105 21351 a Black -30 21552 a +SDict begin H.S end + -30 21552 a -30 +21552 a +SDict begin 18.2 H.A end + -30 21552 a -30 21552 a +SDict begin [ /View [/XYZ H.V] /Dest (7487) cvn H.B /DEST pdfmark end + -30 21552 a 1827 x FW(GPL,)p +0 TeXcolorgray 3302 23379 a +SDict begin H.S end + 3302 23379 a FW(1)3999 23379 +y +SDict begin 18.2 H.L end + 3999 23379 a 3999 23379 a +SDict begin [ /Subtype /Link /Dest (303) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 3999 23379 a Black 1 w FW(,)p +0 TeXcolorgray 4697 23379 a +SDict begin H.S end + 4697 23379 a FW(4)5394 23379 +y +SDict begin 18.2 H.L end + 5394 23379 a 5394 23379 a +SDict begin [ /Subtype /Link /Dest (365) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5394 23379 a Black -30 23580 +a +SDict begin H.S end + -30 23580 a -30 23580 a +SDict begin 18.2 H.A end + -30 23580 a -30 23580 a +SDict begin [ /View [/XYZ H.V] /Dest (7491) cvn H.B /DEST pdfmark end + -30 +23580 a 1826 x FW(group,)p 0 TeXcolorgray 3921 25406 +a +SDict begin H.S end + 3921 25406 a FW(111)6012 25406 y +SDict begin 18.2 H.L end + 6012 25406 a 6012 +25406 a +SDict begin [ /Subtype /Link /Dest (3090) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6012 25406 a Black -30 25708 a +SDict begin H.S end + -30 25708 a -30 +25708 a +SDict begin 18.2 H.A end + -30 25708 a -30 25708 a +SDict begin [ /View [/XYZ H.V] /Dest (7494) cvn H.B /DEST pdfmark end + -30 25708 a 1726 x FW(groups)-30 +27736 y +SDict begin H.S end + -30 27736 a -30 27736 a +SDict begin 18.2 H.A end + -30 27736 a -30 27736 +a +SDict begin [ /View [/XYZ H.V] /Dest (7495) cvn H.B /DEST pdfmark end + -30 27736 a 1520 29462 a FW(adding,)p 0 TeXcolorgray +6014 29462 a +SDict begin H.S end + 6014 29462 a FW(152)8105 29462 y +SDict begin 18.2 H.L end + 8105 29462 +a 8105 29462 a +SDict begin [ /Subtype /Link /Dest (4275) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8105 29462 a Black -30 29764 a +SDict begin H.S end + -30 29764 +a -30 29764 a +SDict begin 18.2 H.A end + -30 29764 a -30 29764 a +SDict begin [ /View [/XYZ H.V] /Dest (7497) cvn H.B /DEST pdfmark end + -30 29764 a 1520 +31490 a FW(initial,)p 0 TeXcolorgray 5473 31490 a +SDict begin H.S end + 5473 +31490 a FW(144)7564 31490 y +SDict begin 18.2 H.L end + 7564 31490 a 7564 31490 a +SDict begin [ /Subtype /Link /Dest (4098) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +7564 31490 a Black -30 31692 a +SDict begin H.S end + -30 31692 a -30 31692 +a +SDict begin 18.2 H.A end + -30 31692 a -30 31692 a +SDict begin [ /View [/XYZ H.V] /Dest (7500) cvn H.B /DEST pdfmark end + -30 31692 a 1826 x FW(GR)-56 +b(UB,)p 0 TeXcolorgray 4486 33518 a +SDict begin H.S end + 4486 33518 a FW(89)5880 +33518 y +SDict begin 18.2 H.L end + 5880 33518 a 5880 33518 a +SDict begin [ /Subtype /Link /Dest (2478) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5880 33518 a Black +-30 33720 a +SDict begin H.S end + -30 33720 a -30 33720 a +SDict begin 18.2 H.A end + -30 33720 a -30 33720 +a +SDict begin [ /View [/XYZ H.V] /Dest (7503) cvn H.B /DEST pdfmark end + -30 33720 a 1826 x FW(gzip,)p 0 TeXcolorgray 3069 35546 +a +SDict begin H.S end + 3069 35546 a FW(189)5160 35546 y +SDict begin 18.2 H.L end + 5160 35546 a 5160 +35546 a +SDict begin [ /Subtype /Link /Dest (5286) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5160 35546 a Black -30 35848 a +SDict begin H.S end + -30 35848 a -30 +35848 a +SDict begin 18.2 H.A end + -30 35848 a -30 35848 a +SDict begin [ /View [/XYZ H.V] /Dest (7505) cvn H.B /DEST pdfmark end + -30 35848 a 5863 x FL(H)-30 +42826 y +SDict begin H.S end + -30 42826 a -30 42826 a +SDict begin 18.2 H.A end + -30 42826 a -30 42826 +a +SDict begin [ /View [/XYZ H.V] /Dest (7508) cvn H.B /DEST pdfmark end + -30 42826 a 2028 x FW(hard)350 b(disk,)p 0 TeXcolorgray +5820 44854 a +SDict begin H.S end + 5820 44854 a FW(22)7214 44854 y +SDict begin 18.2 H.L end + 7214 44854 +a 7214 44854 a +SDict begin [ /Subtype /Link /Dest (904) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7214 44854 a Black -30 45056 a +SDict begin H.S end + -30 45056 +a -30 45056 a +SDict begin 18.2 H.A end + -30 45056 a -30 45056 a +SDict begin [ /View [/XYZ H.V] /Dest (7511) cvn H.B /DEST pdfmark end + -30 45056 a 1826 +x FW(hardw)-14 b(are)351 b(requirements,)p 0 TeXcolorgray +13473 46882 a +SDict begin H.S end + 13473 46882 a FW(17)14867 46882 y +SDict begin 18.2 H.L end + 14867 +46882 a 14867 46882 a +SDict begin [ /Subtype /Link /Dest (696) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14867 46882 a Black -30 47184 a +SDict begin H.S end + +-30 47184 a -30 47184 a +SDict begin 18.2 H.A end + -30 47184 a -30 47184 a +SDict begin [ /View [/XYZ H.V] /Dest (7514) cvn H.B /DEST pdfmark end + -30 47184 +a 1726 x FW(home)f(directory)-91 b(,)p 0 TeXcolorgray +9060 48910 a +SDict begin H.S end + 9060 48910 a FW(152)11151 48910 y +SDict begin 18.2 H.L end + 11151 +48910 a 11151 48910 a +SDict begin [ /Subtype /Link /Dest (4301) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11151 48910 a Black -30 49212 a +SDict begin H.S end + +-30 49212 a -30 49212 a +SDict begin 18.2 H.A end + -30 49212 a -30 49212 a +SDict begin [ /View [/XYZ H.V] /Dest (7517) cvn H.B /DEST pdfmark end + -30 49212 +a 1726 x FW(HO)-49 b(WT)-25 b(Os,)p 0 TeXcolorgray 6326 +50938 a +SDict begin H.S end + 6326 50938 a FW(10)7720 50938 y +SDict begin 18.2 H.L end + 7720 50938 a +7720 50938 a +SDict begin [ /Subtype /Link /Dest (488) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7720 50938 a Black -30 51140 a +SDict begin H.S end + -30 51140 +a -30 51140 a +SDict begin 18.2 H.A end + -30 51140 a -30 51140 a +SDict begin [ /View [/XYZ H.V] /Dest (7520) cvn H.B /DEST pdfmark end + -30 51140 a 1826 +x FW(httpd)-30 53268 y +SDict begin H.S end + -30 53268 a -30 53268 a +SDict begin 18.2 H.A end + -30 53268 +a -30 53268 a +SDict begin [ /View [/XYZ H.V] /Dest (7521) cvn H.B /DEST pdfmark end + -30 53268 a 1520 54994 a FW(\(see)349 b(Apache\))-30 +55296 y +SDict begin H.S end + -30 55296 a -30 55296 a +SDict begin 18.2 H.A end + -30 55296 a -30 55296 +a +SDict begin [ /View [/XYZ H.V] /Dest (7522) cvn H.B /DEST pdfmark end + -30 55296 a 5862 x FL(I)-30 62274 y +SDict begin H.S end + -30 62274 a -30 +62274 a +SDict begin 18.2 H.A end + -30 62274 a -30 62274 a +SDict begin [ /View [/XYZ H.V] /Dest (7525) cvn H.B /DEST pdfmark end + -30 62274 a 2028 x FW(IBM,)p +0 TeXcolorgray 3302 64302 a +SDict begin H.S end + 3302 64302 a FW(70)4696 64302 +y +SDict begin 18.2 H.L end + 4696 64302 a 4696 64302 a +SDict begin [ /Subtype /Link /Dest (2137) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4696 64302 a Black -30 64504 +a +SDict begin H.S end + -30 64504 a -30 64504 a +SDict begin 18.2 H.A end + -30 64504 a -30 64504 a +SDict begin [ /View [/XYZ H.V] /Dest (7528) cvn H.B /DEST pdfmark end + -30 +64504 a 1826 x FW(ICMP)-155 b(,)p 0 TeXcolorgray 3923 +66330 a +SDict begin H.S end + 3923 66330 a FW(157)6014 66330 y +SDict begin 18.2 H.L end + 6014 66330 a +6014 66330 a +SDict begin [ /Subtype /Link /Dest (4421) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6014 66330 a Black -30 66532 a +SDict begin H.S end + -30 66532 +a -30 66532 a +SDict begin 18.2 H.A end + -30 66532 a -30 66532 a +SDict begin [ /View [/XYZ H.V] /Dest (7531) cvn H.B /DEST pdfmark end + -30 66532 a 1826 +x FW(IDE,)p 0 TeXcolorgray 2991 68358 a +SDict begin H.S end + 2991 68358 a +FW(22)4385 68358 y +SDict begin 18.2 H.L end + 4385 68358 a 4385 68358 a +SDict begin [ /Subtype /Link /Dest (906) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4385 68358 +a Black Black Black 27866 2383 a +SDict begin H.S end + 27866 2383 a 27866 2383 +a +SDict begin 18.2 H.A end + 27866 2383 a 27866 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7534) cvn H.B /DEST pdfmark end + 27866 2383 a 1107 x FW(idle)348 +b(process,)p 0 TeXcolorgray 35187 3490 a +SDict begin H.S end + 35187 3490 a +FW(142)37278 3490 y +SDict begin 18.2 H.L end + 37278 3490 a 37278 3490 a +SDict begin [ /Subtype /Link /Dest (4037) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37278 3490 +a Black 27866 3792 a +SDict begin H.S end + 27866 3792 a 27866 3792 a +SDict begin 18.2 H.A end + 27866 +3792 a 27866 3792 a +SDict begin [ /View [/XYZ H.V] /Dest (7537) cvn H.B /DEST pdfmark end + 27866 3792 a 1969 x FW(ifcon\002g,)p +0 TeXcolorgray 32902 5761 a +SDict begin H.S end + 32902 5761 a FW(61)34296 +5761 y +SDict begin 18.2 H.L end + 34296 5761 a 34296 5761 a +SDict begin [ /Subtype /Link /Dest (1837) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34296 5761 a Black 27866 +6063 a +SDict begin H.S end + 27866 6063 a 27866 6063 a +SDict begin 18.2 H.A end + 27866 6063 a 27866 6063 +a +SDict begin [ /View [/XYZ H.V] /Dest (7540) cvn H.B /DEST pdfmark end + 27866 6063 a 1969 x FW(inetd,)p 0 TeXcolorgray 31352 +8032 a +SDict begin H.S end + 31352 8032 a FW(181)33443 8032 y +SDict begin 18.2 H.L end + 33443 8032 a +33443 8032 a +SDict begin [ /Subtype /Link /Dest (5076) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33443 8032 a Black 27866 8233 a +SDict begin H.S end + 27866 8233 +a 27866 8233 a +SDict begin 18.2 H.A end + 27866 8233 a 27866 8233 a +SDict begin [ /View [/XYZ H.V] /Dest (7543) cvn H.B /DEST pdfmark end + 27866 8233 a +2069 x FW(init,)p 0 TeXcolorgray 30423 10302 a +SDict begin H.S end + 30423 +10302 a FW(47)31817 10302 y +SDict begin 18.2 H.L end + 31817 10302 a 31817 10302 +a +SDict begin [ /Subtype /Link /Dest (1409) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 31817 10302 a Black 1 w FW(,)p 0 TeXcolorgray 32516 +10302 a +SDict begin H.S end + 32516 10302 a FW(48)33910 10302 y +SDict begin 18.2 H.L end + 33910 10302 +a 33910 10302 a +SDict begin [ /Subtype /Link /Dest (1456) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33910 10302 a Black FW(,)p 0 TeXcolorgray +34608 10302 a +SDict begin H.S end + 34608 10302 a FW(86)36002 10302 y +SDict begin 18.2 H.L end + 36002 +10302 a 36002 10302 a +SDict begin [ /Subtype /Link /Dest (2432) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36002 10302 a Black 1 w FW(,)p +0 TeXcolorgray 36700 10302 a +SDict begin H.S end + 36700 10302 a FW(154)38791 +10302 y +SDict begin 18.2 H.L end + 38791 10302 a 38791 10302 a +SDict begin [ /Subtype /Link /Dest (4366) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38791 10302 a Black +27866 10504 a +SDict begin H.S end + 27866 10504 a 27866 10504 a +SDict begin 18.2 H.A end + 27866 10504 +a 27866 10504 a +SDict begin [ /View [/XYZ H.V] /Dest (7549) cvn H.B /DEST pdfmark end + 27866 10504 a 2069 x FW(init)g(scripts,)p +0 TeXcolorgray 34414 12573 a +SDict begin H.S end + 34414 12573 a FW(181)36505 +12573 y +SDict begin 18.2 H.L end + 36505 12573 a 36505 12573 a +SDict begin [ /Subtype /Link /Dest (5078) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36505 12573 a Black +27866 12875 a +SDict begin H.S end + 27866 12875 a 27866 12875 a +SDict begin 18.2 H.A end + 27866 12875 +a 27866 12875 a +SDict begin [ /View [/XYZ H.V] /Dest (7552) cvn H.B /DEST pdfmark end + 27866 12875 a 1969 x FW(input)h(redirection,)p +0 TeXcolorgray 37821 14844 a +SDict begin H.S end + 37821 14844 a FW(105)39912 +14844 y +SDict begin 18.2 H.L end + 39912 14844 a 39912 14844 a +SDict begin [ /Subtype /Link /Dest (2849) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39912 14844 a Black +27866 15145 a +SDict begin H.S end + 27866 15145 a 27866 15145 a +SDict begin 18.2 H.A end + 27866 15145 +a 27866 15145 a +SDict begin [ /View [/XYZ H.V] /Dest (7555) cvn H.B /DEST pdfmark end + 27866 15145 a 1969 x FW(installation,)p +0 TeXcolorgray 34763 17114 a +SDict begin H.S end + 34763 17114 a FW(15)36157 +17114 y +SDict begin 18.2 H.L end + 36157 17114 a 36157 17114 a +SDict begin [ /Subtype /Link /Dest (635) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36157 17114 a Black +27866 17316 a +SDict begin H.S end + 27866 17316 a 27866 17316 a +SDict begin 18.2 H.A end + 27866 17316 +a 27866 17316 a +SDict begin [ /View [/XYZ H.V] /Dest (7557) cvn H.B /DEST pdfmark end + 27866 17316 a 29415 19385 a FW(boot)h(disk,)p +0 TeXcolorgray 35266 19385 a +SDict begin H.S end + 35266 19385 a FW(20)36660 +19385 y +SDict begin 18.2 H.L end + 36660 19385 a 36660 19385 a +SDict begin [ /Subtype /Link /Dest (835) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36660 19385 a Black +27866 19586 a +SDict begin H.S end + 27866 19586 a 27866 19586 a +SDict begin 18.2 H.A end + 27866 19586 +a 27866 19586 a +SDict begin [ /View [/XYZ H.V] /Dest (7559) cvn H.B /DEST pdfmark end + 27866 19586 a 29415 21656 a FW(CD-R)-56 +b(OM,)p 0 TeXcolorgray 35636 21656 a +SDict begin H.S end + 35636 21656 a FW(19)37030 +21656 y +SDict begin 18.2 H.L end + 37030 21656 a 37030 21656 a +SDict begin [ /Subtype /Link /Dest (814) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37030 21656 a Black +1 w FW(,)p 0 TeXcolorgray 37728 21656 a +SDict begin H.S end + 37728 21656 a +FW(29)39122 21656 y +SDict begin 18.2 H.L end + 39122 21656 a 39122 21656 a +SDict begin [ /Subtype /Link /Dest (1041) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39122 +21656 a Black 27866 21857 a +SDict begin H.S end + 27866 21857 a 27866 21857 +a +SDict begin 18.2 H.A end + 27866 21857 a 27866 21857 a +SDict begin [ /View [/XYZ H.V] /Dest (7562) cvn H.B /DEST pdfmark end + 27866 21857 a 29415 23926 +a FW(\003opp)-14 b(y)-91 b(,)p 0 TeXcolorgray 33573 23926 +a +SDict begin H.S end + 33573 23926 a FW(19)34967 23926 y +SDict begin 18.2 H.L end + 34967 23926 a 34967 +23926 a +SDict begin [ /Subtype /Link /Dest (807) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34967 23926 a Black 27866 24228 a +SDict begin H.S end + 27866 24228 +a 27866 24228 a +SDict begin 18.2 H.A end + 27866 24228 a 27866 24228 a +SDict begin [ /View [/XYZ H.V] /Dest (7564) cvn H.B /DEST pdfmark end + 27866 24228 +a 29415 26197 a FW(lo)-35 b(w)349 b(memory)-91 b(,)p +0 TeXcolorgray 37077 26197 a +SDict begin H.S end + 37077 26197 a FW(17)38471 +26197 y +SDict begin 18.2 H.L end + 38471 26197 a 38471 26197 a +SDict begin [ /Subtype /Link /Dest (732) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38471 26197 a Black +27866 26499 a +SDict begin H.S end + 27866 26499 a 27866 26499 a +SDict begin 18.2 H.A end + 27866 26499 +a 27866 26499 a +SDict begin [ /View [/XYZ H.V] /Dest (7566) cvn H.B /DEST pdfmark end + 27866 26499 a 29415 28467 a FW(NFS,)p +0 TeXcolorgray 32671 28467 a +SDict begin H.S end + 32671 28467 a FW(17)34065 +28467 y +SDict begin 18.2 H.L end + 34065 28467 a 34065 28467 a +SDict begin [ /Subtype /Link /Dest (728) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34065 28467 a Black +FW(,)p 0 TeXcolorgray 34763 28467 a +SDict begin H.S end + 34763 28467 a FW(20)36157 +28467 y +SDict begin 18.2 H.L end + 36157 28467 a 36157 28467 a +SDict begin [ /Subtype /Link /Dest (824) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36157 28467 a Black +1 w FW(,)p 0 TeXcolorgray 36855 28467 a +SDict begin H.S end + 36855 28467 a +FW(29)38249 28467 y +SDict begin 18.2 H.L end + 38249 28467 a 38249 28467 a +SDict begin [ /Subtype /Link /Dest (1047) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38249 +28467 a Black 27866 28669 a +SDict begin H.S end + 27866 28669 a 27866 28669 +a +SDict begin 18.2 H.A end + 27866 28669 a 27866 28669 a +SDict begin [ /View [/XYZ H.V] /Dest (7570) cvn H.B /DEST pdfmark end + 27866 28669 a 29415 30738 +a FW(PLIP)-155 b(,SLIP)g(,PPP)g(,)p 0 TeXcolorgray 38407 +30738 a +SDict begin H.S end + 38407 30738 a FW(20)39801 30738 y +SDict begin 18.2 H.L end + 39801 30738 +a 39801 30738 a +SDict begin [ /Subtype /Link /Dest (829) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39801 30738 a Black 27866 30940 a +SDict begin H.S end + 27866 +30940 a 27866 30940 a +SDict begin 18.2 H.A end + 27866 30940 a 27866 30940 a +SDict begin [ /View [/XYZ H.V] /Dest (7572) cvn H.B /DEST pdfmark end + 27866 +30940 a 29415 33009 a FW(root)350 b(disk,)p 0 TeXcolorgray +35033 33009 a +SDict begin H.S end + 35033 33009 a FW(21)36427 33009 y +SDict begin 18.2 H.L end + 36427 +33009 a 36427 33009 a +SDict begin [ /Subtype /Link /Dest (849) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36427 33009 a Black 27866 33210 +a +SDict begin H.S end + 27866 33210 a 27866 33210 a +SDict begin 18.2 H.A end + 27866 33210 a 27866 33210 +a +SDict begin [ /View [/XYZ H.V] /Dest (7574) cvn H.B /DEST pdfmark end + 27866 33210 a 29415 35279 a FW(supplemental)g(disk,)p +0 TeXcolorgray 40225 35279 a +SDict begin H.S end + 40225 35279 a FW(21)41619 +35279 y +SDict begin 18.2 H.L end + 41619 35279 a 41619 35279 a +SDict begin [ /Subtype /Link /Dest (861) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 41619 35279 a Black +27866 35581 a +SDict begin H.S end + 27866 35581 a 27866 35581 a +SDict begin 18.2 H.A end + 27866 35581 +a 27866 35581 a +SDict begin [ /View [/XYZ H.V] /Dest (7576) cvn H.B /DEST pdfmark end + 27866 35581 a 29415 37550 a FW(system)f(requirements,)p +0 TeXcolorgray 41618 37550 a +SDict begin H.S end + 41618 37550 a FW(17)43012 +37550 y +SDict begin 18.2 H.L end + 43012 37550 a 43012 37550 a +SDict begin [ /Subtype /Link /Dest (702) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 43012 37550 a Black +27866 37852 a +SDict begin H.S end + 27866 37852 a 27866 37852 a +SDict begin 18.2 H.A end + 27866 37852 +a 27866 37852 a +SDict begin [ /View [/XYZ H.V] /Dest (7579) cvn H.B /DEST pdfmark end + 27866 37852 a 1969 x FW(installation)f(methods,)p +0 TeXcolorgray 39838 39821 a +SDict begin H.S end + 39838 39821 a FW(30)41232 +39821 y +SDict begin 18.2 H.L end + 41232 39821 a 41232 39821 a +SDict begin [ /Subtype /Link /Dest (1068) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 41232 39821 a Black +27866 40022 a +SDict begin H.S end + 27866 40022 a 27866 40022 a +SDict begin 18.2 H.A end + 27866 40022 +a 27866 40022 a +SDict begin [ /View [/XYZ H.V] /Dest (7582) cvn H.B /DEST pdfmark end + 27866 40022 a 2069 x FW(installpkg,)p +0 TeXcolorgray 34065 42091 a +SDict begin H.S end + 34065 42091 a FW(218)36156 +42091 y +SDict begin 18.2 H.L end + 36156 42091 a 36156 42091 a +SDict begin [ /Subtype /Link /Dest (6433) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36156 42091 a Black +1 w FW(,)p 0 TeXcolorgray 36855 42091 a +SDict begin H.S end + 36855 42091 a +FW(222)38946 42091 y +SDict begin 18.2 H.L end + 38946 42091 a 38946 42091 a +SDict begin [ /Subtype /Link /Dest (6587) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38946 +42091 a Black 27866 42393 a +SDict begin H.S end + 27866 42393 a 27866 42393 +a +SDict begin 18.2 H.A end + 27866 42393 a 27866 42393 a +SDict begin [ /View [/XYZ H.V] /Dest (7586) cvn H.B /DEST pdfmark end + 27866 42393 a 1969 x FW(IP)h(address,)p +0 TeXcolorgray 34334 44362 a +SDict begin H.S end + 34334 44362 a FW(61)35728 +44362 y +SDict begin 18.2 H.L end + 35728 44362 a 35728 44362 a +SDict begin [ /Subtype /Link /Dest (1840) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35728 44362 a Black +1 w FW(,)p 0 TeXcolorgray 36427 44362 a +SDict begin H.S end + 36427 44362 a +FW(159)38518 44362 y +SDict begin 18.2 H.L end + 38518 44362 a 38518 44362 a +SDict begin [ /Subtype /Link /Dest (4477) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38518 +44362 a Black 27866 44564 a +SDict begin H.S end + 27866 44564 a 27866 44564 +a +SDict begin 18.2 H.A end + 27866 44564 a 27866 44564 a +SDict begin [ /View [/XYZ H.V] /Dest (7589) cvn H.B /DEST pdfmark end + 27866 44564 a 29415 46633 +a FW(static,)p 0 TeXcolorgray 33057 46633 a +SDict begin H.S end + 33057 46633 +a FW(63)34451 46633 y +SDict begin 18.2 H.L end + 34451 46633 a 34451 46633 a +SDict begin [ /Subtype /Link /Dest (1883) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34451 +46633 a Black 27866 46834 a +SDict begin H.S end + 27866 46834 a 27866 46834 +a +SDict begin 18.2 H.A end + 27866 46834 a 27866 46834 a +SDict begin [ /View [/XYZ H.V] /Dest (7592) cvn H.B /DEST pdfmark end + 27866 46834 a 2069 x FW(IP)g(forw)-14 +b(arding,)p 0 TeXcolorgray 36334 48903 a +SDict begin H.S end + 36334 48903 +a FW(185)38425 48903 y +SDict begin 18.2 H.L end + 38425 48903 a 38425 48903 a +SDict begin [ /Subtype /Link /Dest (5184) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38425 +48903 a Black 27866 49205 a +SDict begin H.S end + 27866 49205 a 27866 49205 +a +SDict begin 18.2 H.A end + 27866 49205 a 27866 49205 a +SDict begin [ /View [/XYZ H.V] /Dest (7595) cvn H.B /DEST pdfmark end + 27866 49205 a 1969 x FW(iptables,)p +0 TeXcolorgray 32902 51174 a +SDict begin H.S end + 32902 51174 a FW(183)34993 +51174 y +SDict begin 18.2 H.L end + 34993 51174 a 34993 51174 a +SDict begin [ /Subtype /Link /Dest (5135) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34993 51174 a Black +27866 51476 a +SDict begin H.S end + 27866 51476 a 27866 51476 a +SDict begin 18.2 H.A end + 27866 51476 +a 27866 51476 a +SDict begin [ /View [/XYZ H.V] /Dest (7598) cvn H.B /DEST pdfmark end + 27866 51476 a 1969 x FW(ISA,)p 0 TeXcolorgray +30810 53445 a +SDict begin H.S end + 30810 53445 a FW(59)32204 53445 y +SDict begin 18.2 H.L end + 32204 +53445 a 32204 53445 a +SDict begin [ /Subtype /Link /Dest (1803) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32204 53445 a Black 27866 53646 +a +SDict begin H.S end + 27866 53646 a 27866 53646 a +SDict begin 18.2 H.A end + 27866 53646 a 27866 53646 +a +SDict begin [ /View [/XYZ H.V] /Dest (7600) cvn H.B /DEST pdfmark end + 27866 53646 a 6691 x FL(J)27866 61481 y +SDict begin H.S end + 27866 61481 +a 27866 61481 a +SDict begin 18.2 H.A end + 27866 61481 a 27866 61481 a +SDict begin [ /View [/XYZ H.V] /Dest (7603) cvn H.B /DEST pdfmark end + 27866 61481 +a 2243 x FW(jobs,)p 0 TeXcolorgray 30888 63724 a +SDict begin H.S end + 30888 +63724 a FW(134)32979 63724 y +SDict begin 18.2 H.L end + 32979 63724 a 32979 63724 +a +SDict begin [ /Subtype /Link /Dest (3871) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32979 63724 a Black 27866 64026 a +SDict begin H.S end + 27866 64026 a 27866 +64026 a +SDict begin 18.2 H.A end + 27866 64026 a 27866 64026 a +SDict begin [ /View [/XYZ H.V] /Dest (7606) cvn H.B /DEST pdfmark end + 27866 64026 a 1968 +x FW(journalling)350 b(\002le)f(system,)p 0 TeXcolorgray +41039 65994 a +SDict begin H.S end + 41039 65994 a FW(153)43130 65994 y +SDict begin 18.2 H.L end + 43130 +65994 a 43130 65994 a +SDict begin [ /Subtype /Link /Dest (4314) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 43130 65994 a Black 27866 66296 +a +SDict begin H.S end + 27866 66296 a 27866 66296 a +SDict begin 18.2 H.A end + 27866 66296 a 27866 66296 +a +SDict begin [ /View [/XYZ H.V] /Dest (7608) cvn H.B /DEST pdfmark end + 27866 66296 a Black 49394 73672 a FR(257)p Black eop +end +%%Page: 258 280 +TeXDict begin 258 279 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.258) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (7771) cvn H.B /DEST pdfmark end + -30 -2687 a Black 6650 x FL(K)-30 +5079 y +SDict begin H.S end + -30 5079 a -30 5079 a +SDict begin 18.2 H.A end + -30 5079 a -30 5079 a +SDict begin [ /View [/XYZ H.V] /Dest (7611) cvn H.B /DEST pdfmark end + -30 +5079 a 2070 x FW(K)349 b(Desktop)g(En)-56 b(vironment)352 +b(\(KDE\),)p 0 TeXcolorgray 18392 7149 a +SDict begin H.S end + 18392 7149 a +FW(83)19786 7149 y +SDict begin 18.2 H.L end + 19786 7149 a 19786 7149 a +SDict begin [ /Subtype /Link /Dest (2389) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 19786 7149 +a Black -30 7450 a +SDict begin H.S end + -30 7450 a -30 7450 a +SDict begin 18.2 H.A end + -30 7450 a -30 +7450 a +SDict begin [ /View [/XYZ H.V] /Dest (7614) cvn H.B /DEST pdfmark end + -30 7450 a 1768 x FW(KDE,)p 0 TeXcolorgray 3534 +9218 a +SDict begin H.S end + 3534 9218 a FW(15)4928 9218 y +SDict begin 18.2 H.L end + 4928 9218 a 4928 +9218 a +SDict begin [ /Subtype /Link /Dest (645) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4928 9218 a Black -30 11287 a FW(k)-14 b(ernel,)p +0 TeXcolorgray 4139 11287 a +SDict begin H.S end + 4139 11287 a FW(1)4836 11287 +y +SDict begin 18.2 H.L end + 4836 11287 a 4836 11287 a +SDict begin [ /Subtype /Link /Dest (7617) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4836 11287 a Black FW(,)p +0 TeXcolorgray 5534 11287 a +SDict begin H.S end + 5534 11287 a FW(50)6928 11287 +y +SDict begin 18.2 H.L end + 6928 11287 a 6928 11287 a +SDict begin [ /Subtype /Link /Dest (1577) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6928 11287 a Black -30 11489 +a +SDict begin H.S end + -30 11489 a -30 11489 a +SDict begin 18.2 H.A end + -30 11489 a -30 11489 a +SDict begin [ /View [/XYZ H.V] /Dest (7620) cvn H.B /DEST pdfmark end + -30 +11489 a 1520 13357 a FW(2.4.x)349 b(compiling,)p 0 TeXcolorgray +11013 13357 a +SDict begin H.S end + 11013 13357 a FW(52)12407 13357 y +SDict begin 18.2 H.L end + 12407 +13357 a 12407 13357 a +SDict begin [ /Subtype /Link /Dest (1630) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12407 13357 a Black -30 13659 a +SDict begin H.S end + +-30 13659 a -30 13659 a +SDict begin 18.2 H.A end + -30 13659 a -30 13659 a +SDict begin [ /View [/XYZ H.V] /Dest (7622) cvn H.B /DEST pdfmark end + -30 13659 +a 1520 15426 a FW(2.6.x)g(compiling,)p 0 TeXcolorgray +11013 15426 a +SDict begin H.S end + 11013 15426 a FW(54)12407 15426 y +SDict begin 18.2 H.L end + 12407 +15426 a 12407 15426 a +SDict begin [ /Subtype /Link /Dest (1687) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12407 15426 a Black -30 15728 a +SDict begin H.S end + +-30 15728 a -30 15728 a +SDict begin 18.2 H.A end + -30 15728 a -30 15728 a +SDict begin [ /View [/XYZ H.V] /Dest (7624) cvn H.B /DEST pdfmark end + -30 15728 +a 1520 17496 a FW(compiling,)p 0 TeXcolorgray 7874 17496 +a +SDict begin H.S end + 7874 17496 a FW(51)9268 17496 y +SDict begin 18.2 H.L end + 9268 17496 a 9268 17496 +a +SDict begin [ /Subtype /Link /Dest (1616) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9268 17496 a Black -30 17798 a +SDict begin H.S end + -30 17798 a -30 17798 +a +SDict begin 18.2 H.A end + -30 17798 a -30 17798 a +SDict begin [ /View [/XYZ H.V] /Dest (7626) cvn H.B /DEST pdfmark end + -30 17798 a 1520 19565 a FW(frame)h(b)-28 +b(uf)-35 b(fer)-56 b(,)p 0 TeXcolorgray 9107 19565 a +SDict begin H.S end + +9107 19565 a FW(90)10501 19565 y +SDict begin 18.2 H.L end + 10501 19565 a 10501 +19565 a +SDict begin [ /Subtype /Link /Dest (2512) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10501 19565 a Black -30 19767 a +SDict begin H.S end + -30 19767 a -30 +19767 a +SDict begin 18.2 H.A end + -30 19767 a -30 19767 a +SDict begin [ /View [/XYZ H.V] /Dest (7628) cvn H.B /DEST pdfmark end + -30 19767 a 1520 21634 +a FW(modules,)p 0 TeXcolorgray 6944 21634 a +SDict begin H.S end + 6944 21634 +a FW(54)8338 21634 y +SDict begin 18.2 H.L end + 8338 21634 a 8338 21634 a +SDict begin [ /Subtype /Link /Dest (1668) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8338 21634 +a Black 1 w FW(,)p 0 TeXcolorgray 9036 21634 a +SDict begin H.S end + 9036 21634 +a FW(55)10430 21634 y +SDict begin 18.2 H.L end + 10430 21634 a 10430 21634 a +SDict begin [ /Subtype /Link /Dest (1699) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10430 +21634 a Black -30 21836 a +SDict begin H.S end + -30 21836 a -30 21836 a +SDict begin 18.2 H.A end + -30 +21836 a -30 21836 a +SDict begin [ /View [/XYZ H.V] /Dest (7632) cvn H.B /DEST pdfmark end + -30 21836 a 1868 x FW(k)-14 b(ernel)350 +b(module,)p 0 TeXcolorgray 8672 23704 a +SDict begin H.S end + 8672 23704 a +FW(58)10066 23704 y +SDict begin 18.2 H.L end + 10066 23704 a 10066 23704 a +SDict begin [ /Subtype /Link /Dest (1773) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10066 +23704 a Black -30 23905 a +SDict begin H.S end + -30 23905 a -30 23905 a +SDict begin 18.2 H.A end + -30 +23905 a -30 23905 a +SDict begin [ /View [/XYZ H.V] /Dest (7634) cvn H.B /DEST pdfmark end + -30 23905 a 1520 25773 a FW(loading,)p +0 TeXcolorgray 6402 25773 a +SDict begin H.S end + 6402 25773 a FW(55)7796 25773 +y +SDict begin 18.2 H.L end + 7796 25773 a 7796 25773 a +SDict begin [ /Subtype /Link /Dest (1715) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7796 25773 a Black -30 26075 +a +SDict begin H.S end + -30 26075 a -30 26075 a +SDict begin 18.2 H.A end + -30 26075 a -30 26075 a +SDict begin [ /View [/XYZ H.V] /Dest (7636) cvn H.B /DEST pdfmark end + -30 +26075 a 1520 27843 a FW(remo)-21 b(ving,)p 0 TeXcolorgray +7542 27843 a +SDict begin H.S end + 7542 27843 a FW(55)8936 27843 y +SDict begin 18.2 H.L end + 8936 27843 +a 8936 27843 a +SDict begin [ /Subtype /Link /Dest (1712) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8936 27843 a Black -30 28145 a +SDict begin H.S end + -30 28145 +a -30 28145 a +SDict begin 18.2 H.A end + -30 28145 a -30 28145 a +SDict begin [ /View [/XYZ H.V] /Dest (7639) cvn H.B /DEST pdfmark end + -30 28145 a 1767 +x FW(k)-14 b(ernel)350 b(modules,)p 0 TeXcolorgray 9215 +29912 a +SDict begin H.S end + 9215 29912 a FW(47)10609 29912 y +SDict begin 18.2 H.L end + 10609 29912 +a 10609 29912 a +SDict begin [ /Subtype /Link /Dest (1429) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10609 29912 a Black FW(,)p 0 TeXcolorgray +11307 29912 a +SDict begin H.S end + 11307 29912 a FW(67)12701 29912 y +SDict begin 18.2 H.L end + 12701 +29912 a 12701 29912 a +SDict begin [ /Subtype /Link /Dest (2037) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12701 29912 a Black -30 30114 a +SDict begin H.S end + +-30 30114 a -30 30114 a +SDict begin 18.2 H.A end + -30 30114 a -30 30114 a +SDict begin [ /View [/XYZ H.V] /Dest (7643) cvn H.B /DEST pdfmark end + -30 30114 +a 1868 x FW(k)-14 b(e)-21 b(yboard,)p 0 TeXcolorgray +5823 31982 a +SDict begin H.S end + 5823 31982 a FW(26)7217 31982 y +SDict begin 18.2 H.L end + 7217 31982 +a 7217 31982 a +SDict begin [ /Subtype /Link /Dest (1004) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7217 31982 a Black -30 32284 a +SDict begin H.S end + -30 32284 +a -30 32284 a +SDict begin 18.2 H.A end + -30 32284 a -30 32284 a +SDict begin [ /View [/XYZ H.V] /Dest (7646) cvn H.B /DEST pdfmark end + -30 32284 a 1767 +x FW(k)-14 b(e)-21 b(ymap,)p 0 TeXcolorgray 5048 34051 +a +SDict begin H.S end + 5048 34051 a FW(26)6442 34051 y +SDict begin 18.2 H.L end + 6442 34051 a 6442 34051 +a +SDict begin [ /Subtype /Link /Dest (1002) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6442 34051 a Black -30 34353 a +SDict begin H.S end + -30 34353 a -30 34353 +a +SDict begin 18.2 H.A end + -30 34353 a -30 34353 a +SDict begin [ /View [/XYZ H.V] /Dest (7649) cvn H.B /DEST pdfmark end + -30 34353 a 1767 x FW(kill,)p +0 TeXcolorgray 2528 36120 a +SDict begin H.S end + 2528 36120 a FW(139)4619 +36120 y +SDict begin 18.2 H.L end + 4619 36120 a 4619 36120 a +SDict begin [ /Subtype /Link /Dest (3959) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4619 36120 a Black +-30 36322 a +SDict begin H.S end + -30 36322 a -30 36322 a +SDict begin 18.2 H.A end + -30 36322 a -30 36322 +a +SDict begin [ /View [/XYZ H.V] /Dest (7651) cvn H.B /DEST pdfmark end + -30 36322 a 6087 x FL(L)-30 43525 y +SDict begin H.S end + -30 43525 a -30 +43525 a +SDict begin 18.2 H.A end + -30 43525 a -30 43525 a +SDict begin [ /View [/XYZ H.V] /Dest (7654) cvn H.B /DEST pdfmark end + -30 43525 a 2069 x FW(LILO,)p +0 TeXcolorgray 3843 45594 a +SDict begin H.S end + 3843 45594 a FW(38)5237 45594 +y +SDict begin 18.2 H.L end + 5237 45594 a 5237 45594 a +SDict begin [ /Subtype /Link /Dest (1170) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5237 45594 a Black 1 w FW(,)p +0 TeXcolorgray 5936 45594 a +SDict begin H.S end + 5936 45594 a FW(89)7330 45594 +y +SDict begin 18.2 H.L end + 7330 45594 a 7330 45594 a +SDict begin [ /Subtype /Link /Dest (2471) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7330 45594 a Black -30 45796 +a +SDict begin H.S end + -30 45796 a -30 45796 a +SDict begin 18.2 H.A end + -30 45796 a -30 45796 a +SDict begin [ /View [/XYZ H.V] /Dest (7657) cvn H.B /DEST pdfmark end + -30 +45796 a 1520 47664 a FW(con\002guration,)p 0 TeXcolorgray +9655 47664 a +SDict begin H.S end + 9655 47664 a FW(90)11049 47664 y +SDict begin 18.2 H.L end + 11049 47664 +a 11049 47664 a +SDict begin [ /Subtype /Link /Dest (2490) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11049 47664 a Black -30 47966 a +SDict begin H.S end + -30 47966 +a -30 47966 a +SDict begin 18.2 H.A end + -30 47966 a -30 47966 a +SDict begin [ /View [/XYZ H.V] /Dest (7660) cvn H.B /DEST pdfmark end + -30 47966 a 1767 +x FW(links,)p 0 TeXcolorgray 3380 49733 a +SDict begin H.S end + 3380 49733 +a FW(111)5471 49733 y +SDict begin 18.2 H.L end + 5471 49733 a 5471 49733 a +SDict begin [ /Subtype /Link /Dest (3072) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5471 +49733 a Black 1 w FW(,)p 0 TeXcolorgray 6170 49733 a +SDict begin H.S end + +6170 49733 a FW(116)8261 49733 y +SDict begin 18.2 H.L end + 8261 49733 a 8261 49733 +a +SDict begin [ /Subtype /Link /Dest (3285) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8261 49733 a Black 1 w FW(,)p 0 TeXcolorgray 8959 49733 +a +SDict begin H.S end + 8959 49733 a FW(131)11050 49733 y +SDict begin 18.2 H.L end + 11050 49733 a 11050 +49733 a +SDict begin [ /Subtype /Link /Dest (3798) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11050 49733 a Black -30 49935 a +SDict begin H.S end + -30 49935 a -30 +49935 a +SDict begin 18.2 H.A end + -30 49935 a -30 49935 a +SDict begin [ /View [/XYZ H.V] /Dest (7665) cvn H.B /DEST pdfmark end + -30 49935 a 1868 x FW(Linux)350 +b(k)-14 b(ernel,)p 0 TeXcolorgray 7820 51803 a +SDict begin H.S end + 7820 51803 +a FW(2)8517 51803 y +SDict begin 18.2 H.L end + 8517 51803 a 8517 51803 a +SDict begin [ /Subtype /Link /Dest (317) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8517 51803 +a Black -30 52004 a +SDict begin H.S end + -30 52004 a -30 52004 a +SDict begin 18.2 H.A end + -30 52004 +a -30 52004 a +SDict begin [ /View [/XYZ H.V] /Dest (7668) cvn H.B /DEST pdfmark end + -30 52004 a 1868 x FW(Linux)350 b(Loader)-30 +53886 y +SDict begin H.S end + -30 53886 a -30 53886 a +SDict begin 18.2 H.A end + -30 53886 a -30 53886 +a +SDict begin [ /View [/XYZ H.V] /Dest (7669) cvn H.B /DEST pdfmark end + -30 53886 a 1520 55942 a FW(\(see)f(LILO\))-30 56191 +y +SDict begin H.S end + -30 56191 a -30 56191 a +SDict begin 18.2 H.A end + -30 56191 a -30 56191 a +SDict begin [ /View [/XYZ H.V] /Dest (7671) cvn H.B /DEST pdfmark end + -30 +56191 a 1820 x FW(LISP)-155 b(,)p 0 TeXcolorgray 3380 +58011 a +SDict begin H.S end + 3380 58011 a FW(2)4077 58011 y +SDict begin 18.2 H.L end + 4077 58011 a 4077 +58011 a +SDict begin [ /Subtype /Link /Dest (342) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4077 58011 a Black -30 58213 a +SDict begin H.S end + -30 58213 a -30 +58213 a +SDict begin 18.2 H.A end + -30 58213 a -30 58213 a +SDict begin [ /View [/XYZ H.V] /Dest (7674) cvn H.B /DEST pdfmark end + -30 58213 a 1867 x FW(Loadlin,)p +0 TeXcolorgray 5007 60080 a +SDict begin H.S end + 5007 60080 a FW(89)6401 60080 +y +SDict begin 18.2 H.L end + 6401 60080 a 6401 60080 a +SDict begin [ /Subtype /Link /Dest (2473) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6401 60080 a Black FW(,)p +0 TeXcolorgray 7099 60080 a +SDict begin H.S end + 7099 60080 a FW(93)8493 60080 +y +SDict begin 18.2 H.L end + 8493 60080 a 8493 60080 a +SDict begin [ /Subtype /Link /Dest (2553) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8493 60080 a Black -30 60282 +a +SDict begin H.S end + -30 60282 a -30 60282 a +SDict begin 18.2 H.A end + -30 60282 a -30 60282 a +SDict begin [ /View [/XYZ H.V] /Dest (7678) cvn H.B /DEST pdfmark end + -30 +60282 a 1868 x FW(log)349 b(in)-30 62452 y +SDict begin H.S end + -30 62452 +a -30 62452 a +SDict begin 18.2 H.A end + -30 62452 a -30 62452 a +SDict begin [ /View [/XYZ H.V] /Dest (7679) cvn H.B /DEST pdfmark end + -30 62452 a 1520 +64219 a FW(remote,)p 0 TeXcolorgray 6090 64219 a +SDict begin H.S end + 6090 +64219 a FW(162)8181 64219 y +SDict begin 18.2 H.L end + 8181 64219 a 8181 64219 a +SDict begin [ /Subtype /Link /Dest (4568) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +8181 64219 a Black 2 w FW(,)p 0 TeXcolorgray 8880 64219 +a +SDict begin H.S end + 8880 64219 a FW(164)10971 64219 y +SDict begin 18.2 H.L end + 10971 64219 a 10971 +64219 a +SDict begin [ /Subtype /Link /Dest (4616) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10971 64219 a Black -30 64421 a +SDict begin H.S end + -30 64421 a -30 +64421 a +SDict begin 18.2 H.A end + -30 64421 a -30 64421 a +SDict begin [ /View [/XYZ H.V] /Dest (7683) cvn H.B /DEST pdfmark end + -30 64421 a 1868 x FW(logging)h(in,)p +0 TeXcolorgray 6364 66289 a +SDict begin H.S end + 6364 66289 a FW(101)8455 +66289 y +SDict begin 18.2 H.L end + 8455 66289 a 8455 66289 a +SDict begin [ /Subtype /Link /Dest (2680) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8455 66289 a Black +-30 66591 a +SDict begin H.S end + -30 66591 a -30 66591 a +SDict begin 18.2 H.A end + -30 66591 a -30 66591 +a +SDict begin [ /View [/XYZ H.V] /Dest (7686) cvn H.B /DEST pdfmark end + -30 66591 a 1767 x FW(login)f(name,)p 0 TeXcolorgray +6905 68358 a +SDict begin H.S end + 6905 68358 a FW(144)8996 68358 y +SDict begin 18.2 H.L end + 8996 68358 +a 8996 68358 a +SDict begin [ /Subtype /Link /Dest (4087) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8996 68358 a Black Black Black 27866 2383 +a +SDict begin H.S end + 27866 2383 a 27866 2383 a +SDict begin 18.2 H.A end + 27866 2383 a 27866 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7689) cvn H.B /DEST pdfmark end + +27866 2383 a 1107 x FW(ls,)p 0 TeXcolorgray 29493 3490 +a +SDict begin H.S end + 29493 3490 a FW(121)31584 3490 y +SDict begin 18.2 H.L end + 31584 3490 a 31584 +3490 a +SDict begin [ /Subtype /Link /Dest (3403) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 31584 3490 a Black 27866 3692 a +SDict begin H.S end + 27866 3692 a 27866 +3692 a +SDict begin 18.2 H.A end + 27866 3692 a 27866 3692 a +SDict begin [ /View [/XYZ H.V] /Dest (7691) cvn H.B /DEST pdfmark end + 27866 3692 a 5925 x +FL(M)27866 10733 y +SDict begin H.S end + 27866 10733 a 27866 10733 a +SDict begin 18.2 H.A end + 27866 +10733 a 27866 10733 a +SDict begin [ /View [/XYZ H.V] /Dest (7694) cvn H.B /DEST pdfmark end + 27866 10733 a 2015 x FW(MacOS,)p +0 TeXcolorgray 32824 12748 a +SDict begin H.S end + 32824 12748 a FW(41)34218 +12748 y +SDict begin 18.2 H.L end + 34218 12748 a 34218 12748 a +SDict begin [ /Subtype /Link /Dest (1212) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34218 12748 a Black +1 w FW(,)p 0 TeXcolorgray 34916 12748 a +SDict begin H.S end + 34916 12748 a +FW(83)36310 12748 y +SDict begin 18.2 H.L end + 36310 12748 a 36310 12748 a +SDict begin [ /Subtype /Link /Dest (2387) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36310 +12748 a Black 27866 12949 a +SDict begin H.S end + 27866 12949 a 27866 12949 +a +SDict begin 18.2 H.A end + 27866 12949 a 27866 12949 a +SDict begin [ /View [/XYZ H.V] /Dest (7698) cvn H.B /DEST pdfmark end + 27866 12949 a 1814 x FW(mail)27866 +14777 y +SDict begin H.S end + 27866 14777 a 27866 14777 a +SDict begin 18.2 H.A end + 27866 14777 a 27866 +14777 a +SDict begin [ /View [/XYZ H.V] /Dest (7699) cvn H.B /DEST pdfmark end + 27866 14777 a 29415 16779 a FW(spool)g(\002le,)p +0 TeXcolorgray 35266 16779 a +SDict begin H.S end + 35266 16779 a FW(152)37357 +16779 y +SDict begin 18.2 H.L end + 37357 16779 a 37357 16779 a +SDict begin [ /Subtype /Link /Dest (4298) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37357 16779 a Black +27866 17081 a +SDict begin H.S end + 27866 17081 a 27866 17081 a +SDict begin 18.2 H.A end + 27866 17081 +a 27866 17081 a +SDict begin [ /View [/XYZ H.V] /Dest (7702) cvn H.B /DEST pdfmark end + 27866 17081 a 1713 x FW(mail)f(folders,)p +0 TeXcolorgray 35265 18794 a +SDict begin H.S end + 35265 18794 a FW(165)37356 +18794 y +SDict begin 18.2 H.L end + 37356 18794 a 37356 18794 a +SDict begin [ /Subtype /Link /Dest (4647) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37356 18794 a Black +27866 18995 a +SDict begin H.S end + 27866 18995 a 27866 18995 a +SDict begin 18.2 H.A end + 27866 18995 +a 27866 18995 a +SDict begin [ /View [/XYZ H.V] /Dest (7705) cvn H.B /DEST pdfmark end + 27866 18995 a 1814 x FW(mak)-14 b(epkg,)p +0 TeXcolorgray 33662 20809 a +SDict begin H.S end + 33662 20809 a FW(222)35753 +20809 y +SDict begin 18.2 H.L end + 35753 20809 a 35753 20809 a +SDict begin [ /Subtype /Link /Dest (6597) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35753 20809 a Black +27866 21111 a +SDict begin H.S end + 27866 21111 a 27866 21111 a +SDict begin 18.2 H.A end + 27866 21111 +a 27866 21111 a +SDict begin [ /View [/XYZ H.V] /Dest (7708) cvn H.B /DEST pdfmark end + 27866 21111 a 1714 x FW(man)349 b(pages,)p +0 TeXcolorgray 34489 22825 a +SDict begin H.S end + 34489 22825 a FW(7)35186 +22825 y +SDict begin 18.2 H.L end + 35186 22825 a 35186 22825 a +SDict begin [ /Subtype /Link /Dest (389) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35186 22825 a Black +27866 23127 a +SDict begin H.S end + 27866 23127 a 27866 23127 a +SDict begin 18.2 H.A end + 27866 23127 +a 27866 23127 a +SDict begin [ /View [/XYZ H.V] /Dest (7711) cvn H.B /DEST pdfmark end + 27866 23127 a 1713 x FW(manuals)27866 +24854 y +SDict begin H.S end + 27866 24854 a 27866 24854 a +SDict begin 18.2 H.A end + 27866 24854 a 27866 +24854 a +SDict begin [ /View [/XYZ H.V] /Dest (7712) cvn H.B /DEST pdfmark end + 27866 24854 a 29415 26855 a FW(\(see)g(man)h(pages\))27866 +27157 y +SDict begin H.S end + 27866 27157 a 27866 27157 a +SDict begin 18.2 H.A end + 27866 27157 a 27866 +27157 a +SDict begin [ /View [/XYZ H.V] /Dest (7714) cvn H.B /DEST pdfmark end + 27866 27157 a 1714 x FW(Master)e(Boot)i(Record)h(\(MBR\),)p +0 TeXcolorgray 44252 28871 a +SDict begin H.S end + 44252 28871 a FW(94)45646 +28871 y +SDict begin 18.2 H.L end + 45646 28871 a 45646 28871 a +SDict begin [ /Subtype /Link /Dest (2572) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 45646 28871 a Black +27866 29120 a +SDict begin H.S end + 27866 29120 a 27866 29120 a +SDict begin 18.2 H.A end + 27866 29120 +a 27866 29120 a +SDict begin [ /View [/XYZ H.V] /Dest (7717) cvn H.B /DEST pdfmark end + 27866 29120 a 1766 x FW(MD5)e(checksum,)p +0 TeXcolorgray 37434 30886 a +SDict begin H.S end + 37434 30886 a FW(187)39525 +30886 y +SDict begin 18.2 H.L end + 39525 30886 a 39525 30886 a +SDict begin [ /Subtype /Link /Dest (5252) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39525 30886 a Black +27866 31087 a +SDict begin H.S end + 27866 31087 a 27866 31087 a +SDict begin 18.2 H.A end + 27866 31087 +a 27866 31087 a +SDict begin [ /View [/XYZ H.V] /Dest (7720) cvn H.B /DEST pdfmark end + 27866 31087 a 1814 x FW(Meta)f(k)-14 +b(e)-21 b(y)-91 b(,)p 0 TeXcolorgray 33666 32901 a +SDict begin H.S end + 33666 +32901 a FW(210)35757 32901 y +SDict begin 18.2 H.L end + 35757 32901 a 35757 32901 +a +SDict begin [ /Subtype /Link /Dest (6295) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35757 32901 a Black 27866 33203 a +SDict begin H.S end + 27866 33203 a 27866 +33203 a +SDict begin 18.2 H.A end + 27866 33203 a 27866 33203 a +SDict begin [ /View [/XYZ H.V] /Dest (7723) cvn H.B /DEST pdfmark end + 27866 33203 a 1714 +x FW(Microsoft,)p 0 TeXcolorgray 34064 34917 a +SDict begin H.S end + 34064 +34917 a FW(70)35458 34917 y +SDict begin 18.2 H.L end + 35458 34917 a 35458 34917 +a +SDict begin [ /Subtype /Link /Dest (2139) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35458 34917 a Black 27866 35118 a +SDict begin H.S end + 27866 35118 a 27866 +35118 a +SDict begin 18.2 H.A end + 27866 35118 a 27866 35118 a +SDict begin [ /View [/XYZ H.V] /Dest (7726) cvn H.B /DEST pdfmark end + 27866 35118 a 1814 +x FW(modem,)p 0 TeXcolorgray 32747 36932 a +SDict begin H.S end + 32747 36932 +a FW(34)34141 36932 y +SDict begin 18.2 H.L end + 34141 36932 a 34141 36932 a +SDict begin [ /Subtype /Link /Dest (1125) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34141 +36932 a Black 27866 37133 a +SDict begin H.S end + 27866 37133 a 27866 37133 +a +SDict begin 18.2 H.A end + 27866 37133 a 27866 37133 a +SDict begin [ /View [/XYZ H.V] /Dest (7729) cvn H.B /DEST pdfmark end + 27866 37133 a 1814 x FW(modems,)p +0 TeXcolorgray 33290 38947 a +SDict begin H.S end + 33290 38947 a FW(59)34684 +38947 y +SDict begin 18.2 H.L end + 34684 38947 a 34684 38947 a +SDict begin [ /Subtype /Link /Dest (1797) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34684 38947 a Black +27866 39149 a +SDict begin H.S end + 27866 39149 a 27866 39149 a +SDict begin 18.2 H.A end + 27866 39149 +a 27866 39149 a +SDict begin [ /View [/XYZ H.V] /Dest (7731) cvn H.B /DEST pdfmark end + 27866 39149 a 29415 40962 a FW(W)-56 +b(inModems,)p 0 TeXcolorgray 37340 40962 a +SDict begin H.S end + 37340 40962 +a FW(59)38734 40962 y +SDict begin 18.2 H.L end + 38734 40962 a 38734 40962 a +SDict begin [ /Subtype /Link /Dest (1807) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38734 +40962 a Black 27866 41164 a +SDict begin H.S end + 27866 41164 a 27866 41164 +a +SDict begin 18.2 H.A end + 27866 41164 a 27866 41164 a +SDict begin [ /View [/XYZ H.V] /Dest (7734) cvn H.B /DEST pdfmark end + 27866 41164 a 1814 x FW(mount,)p +0 TeXcolorgray 32128 42978 a +SDict begin H.S end + 32128 42978 a FW(117)34219 +42978 y +SDict begin 18.2 H.L end + 34219 42978 a 34219 42978 a +SDict begin [ /Subtype /Link /Dest (3310) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34219 42978 a Black +27866 43179 a +SDict begin H.S end + 27866 43179 a 27866 43179 a +SDict begin 18.2 H.A end + 27866 43179 +a 27866 43179 a +SDict begin [ /View [/XYZ H.V] /Dest (7737) cvn H.B /DEST pdfmark end + 27866 43179 a 1814 x FW(mouse,)p 0 TeXcolorgray +32205 44993 a +SDict begin H.S end + 32205 44993 a FW(36)33599 44993 y +SDict begin 18.2 H.L end + 33599 +44993 a 33599 44993 a +SDict begin [ /Subtype /Link /Dest (1143) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33599 44993 a Black FW(,)p 0 TeXcolorgray +34297 44993 a +SDict begin H.S end + 34297 44993 a FW(50)35691 44993 y +SDict begin 18.2 H.L end + 35691 +44993 a 35691 44993 a +SDict begin [ /Subtype /Link /Dest (1548) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35691 44993 a Black 1 w FW(,)p +0 TeXcolorgray 36389 44993 a +SDict begin H.S end + 36389 44993 a FW(77)37783 +44993 y +SDict begin 18.2 H.L end + 37783 44993 a 37783 44993 a +SDict begin [ /Subtype /Link /Dest (2272) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37783 44993 a Black +27866 45195 a +SDict begin H.S end + 27866 45195 a 27866 45195 a +SDict begin 18.2 H.A end + 27866 45195 +a 27866 45195 a +SDict begin [ /View [/XYZ H.V] /Dest (7742) cvn H.B /DEST pdfmark end + 27866 45195 a 1813 x FW(multitasking,)p +0 TeXcolorgray 35538 47008 a +SDict begin H.S end + 35538 47008 a FW(136)37629 +47008 y +SDict begin 18.2 H.L end + 37629 47008 a 37629 47008 a +SDict begin [ /Subtype /Link /Dest (3915) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37629 47008 a Black +27866 47310 a +SDict begin H.S end + 27866 47310 a 27866 47310 a +SDict begin 18.2 H.A end + 27866 47310 +a 27866 47310 a +SDict begin [ /View [/XYZ H.V] /Dest (7745) cvn H.B /DEST pdfmark end + 27866 47310 a 1714 x FW(multiuser)g(,)p +0 TeXcolorgray 33776 49024 a +SDict begin H.S end + 33776 49024 a FW(111)35867 +49024 y +SDict begin 18.2 H.L end + 35867 49024 a 35867 49024 a +SDict begin [ /Subtype /Link /Dest (3068) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35867 49024 a Black +27866 49225 a +SDict begin H.S end + 27866 49225 a 27866 49225 a +SDict begin 18.2 H.A end + 27866 49225 +a 27866 49225 a +SDict begin [ /View [/XYZ H.V] /Dest (7747) cvn H.B /DEST pdfmark end + 27866 49225 a 5925 x FL(N)27866 56266 +y +SDict begin H.S end + 27866 56266 a 27866 56266 a +SDict begin 18.2 H.A end + 27866 56266 a 27866 56266 +a +SDict begin [ /View [/XYZ H.V] /Dest (7750) cvn H.B /DEST pdfmark end + 27866 56266 a 2015 x FW(NetBEUI,)p 0 TeXcolorgray 33831 +58281 a +SDict begin H.S end + 33831 58281 a FW(70)35225 58281 y +SDict begin 18.2 H.L end + 35225 58281 +a 35225 58281 a +SDict begin [ /Subtype /Link /Dest (2133) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35225 58281 a Black 27866 58483 a +SDict begin H.S end + 27866 +58483 a 27866 58483 a +SDict begin 18.2 H.A end + 27866 58483 a 27866 58483 a +SDict begin [ /View [/XYZ H.V] /Dest (7753) cvn H.B /DEST pdfmark end + 27866 +58483 a 1814 x FW(NetBIOS,)p 0 TeXcolorgray 33754 60297 +a +SDict begin H.S end + 33754 60297 a FW(70)35148 60297 y +SDict begin 18.2 H.L end + 35148 60297 a 35148 +60297 a +SDict begin [ /Subtype /Link /Dest (2131) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35148 60297 a Black 27866 60498 a +SDict begin H.S end + 27866 60498 +a 27866 60498 a +SDict begin 18.2 H.A end + 27866 60498 a 27866 60498 a +SDict begin [ /View [/XYZ H.V] /Dest (7756) cvn H.B /DEST pdfmark end + 27866 60498 +a 1814 x FW(netcon\002g,)p 0 TeXcolorgray 33754 62312 +a +SDict begin H.S end + 33754 62312 a FW(39)35148 62312 y +SDict begin 18.2 H.L end + 35148 62312 a 35148 +62312 a +SDict begin [ /Subtype /Link /Dest (1184) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35148 62312 a Black 1 w FW(,)p 0 TeXcolorgray +35846 62312 a +SDict begin H.S end + 35846 62312 a FW(57)37240 62312 y +SDict begin 18.2 H.L end + 37240 +62312 a 37240 62312 a +SDict begin [ /Subtype /Link /Dest (1735) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37240 62312 a Black 1 w FW(,)p +0 TeXcolorgray 37938 62312 a +SDict begin H.S end + 37938 62312 a Fa(??)39333 +62312 y +SDict begin 18.2 H.L end + 39333 62312 a 39333 62312 a +SDict begin [ /Subtype /Link /Dest (1873) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39333 62312 a Black +27866 62614 a +SDict begin H.S end + 27866 62614 a 27866 62614 a +SDict begin 18.2 H.A end + 27866 62614 +a 27866 62614 a +SDict begin [ /View [/XYZ H.V] /Dest (7761) cvn H.B /DEST pdfmark end + 27866 62614 a 1713 x FW(netw)-14 b(ork,)p +0 TeXcolorgray 33120 64327 a +SDict begin H.S end + 33120 64327 a FW(157)35211 +64327 y +SDict begin 18.2 H.L end + 35211 64327 a 35211 64327 a +SDict begin [ /Subtype /Link /Dest (4412) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35211 64327 a Black +27866 64529 a +SDict begin H.S end + 27866 64529 a 27866 64529 a +SDict begin 18.2 H.A end + 27866 64529 +a 27866 64529 a +SDict begin [ /View [/XYZ H.V] /Dest (7763) cvn H.B /DEST pdfmark end + 27866 64529 a 29415 66343 a FW(diagnostics,)p +0 TeXcolorgray 36389 66343 a +SDict begin H.S end + 36389 66343 a FW(158)38480 +66343 y +SDict begin 18.2 H.L end + 38480 66343 a 38480 66343 a +SDict begin [ /Subtype /Link /Dest (4442) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38480 66343 a Black +27866 66645 a +SDict begin H.S end + 27866 66645 a 27866 66645 a +SDict begin 18.2 H.A end + 27866 66645 +a 27866 66645 a +SDict begin [ /View [/XYZ H.V] /Dest (7765) cvn H.B /DEST pdfmark end + 27866 66645 a 29415 68358 a FW(route,)p +0 TeXcolorgray 32979 68358 a +SDict begin H.S end + 32979 68358 a FW(158)35070 +68358 y +SDict begin 18.2 H.L end + 35070 68358 a 35070 68358 a +SDict begin [ /Subtype /Link /Dest (4445) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35070 68358 a Black +Black -30 73672 a FR(258)p Black eop end +%%Page: 259 281 +TeXDict begin 259 280 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.259) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (7929) cvn H.B /DEST pdfmark end + -30 -2687 a Black -30 2383 a +SDict begin H.S end + -30 +2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7768) cvn H.B /DEST pdfmark end + -30 2383 a 1107 +x FW(Netw)-14 b(ork)350 b(Address)f(T)-49 b(ranslation)350 +b(\(N)-49 b(A)-155 b(T\),)p 0 TeXcolorgray 21046 3490 +a +SDict begin H.S end + 21046 3490 a FW(184)23137 3490 y +SDict begin 18.2 H.L end + 23137 3490 a 23137 +3490 a +SDict begin [ /Subtype /Link /Dest (5178) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 23137 3490 a Black -30 5506 a FW(netw)-14 b(ork)350 +b(card,)p 0 TeXcolorgray 7973 5506 a +SDict begin H.S end + 7973 5506 a FW(58)9367 +5506 y +SDict begin 18.2 H.L end + 9367 5506 a 9367 5506 a +SDict begin [ /Subtype /Link /Dest (7771) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9367 5506 a Black -30 +5707 a +SDict begin H.S end + -30 5707 a -30 5707 a +SDict begin 18.2 H.A end + -30 5707 a -30 5707 a +SDict begin [ /View [/XYZ H.V] /Dest (7774) cvn H.B /DEST pdfmark end + -30 +5707 a 1814 x FW(netw)-14 b(ork)350 b(\002le)g(systems,)p +0 TeXcolorgray 12121 7521 a +SDict begin H.S end + 12121 7521 a FW(70)13515 +7521 y +SDict begin 18.2 H.L end + 13515 7521 a 13515 7521 a +SDict begin [ /Subtype /Link /Dest (2105) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 13515 7521 a Black -30 +7823 a +SDict begin H.S end + -30 7823 a -30 7823 a +SDict begin 18.2 H.A end + -30 7823 a -30 7823 a +SDict begin [ /View [/XYZ H.V] /Dest (7776) cvn H.B /DEST pdfmark end + -30 +7823 a 1520 9536 a FW(windo)-35 b(ws,)p 0 TeXcolorgray +7219 9536 a +SDict begin H.S end + 7219 9536 a FW(70)8613 9536 y +SDict begin 18.2 H.L end + 8613 9536 a +8613 9536 a +SDict begin [ /Subtype /Link /Dest (2125) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8613 9536 a Black -30 9738 a +SDict begin H.S end + -30 9738 a -30 +9738 a +SDict begin 18.2 H.A end + -30 9738 a -30 9738 a +SDict begin [ /View [/XYZ H.V] /Dest (7779) cvn H.B /DEST pdfmark end + -30 9738 a 1814 x FW(Ne)g(ws,)p +0 TeXcolorgray 3808 11552 a +SDict begin H.S end + 3808 11552 a FW(49)5202 11552 +y +SDict begin 18.2 H.L end + 5202 11552 a 5202 11552 a +SDict begin [ /Subtype /Link /Dest (1531) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5202 11552 a Black -30 11753 +a +SDict begin H.S end + -30 11753 a -30 11753 a +SDict begin 18.2 H.A end + -30 11753 a -30 11753 a +SDict begin [ /View [/XYZ H.V] /Dest (7782) cvn H.B /DEST pdfmark end + -30 +11753 a 1814 x FW(NFS,)p 0 TeXcolorgray 3225 13567 a +SDict begin H.S end + +3225 13567 a FW(17)4619 13567 y +SDict begin 18.2 H.L end + 4619 13567 a 4619 13567 +a +SDict begin [ /Subtype /Link /Dest (726) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4619 13567 a Black 1 w FW(,)p 0 TeXcolorgray 5318 13567 +a +SDict begin H.S end + 5318 13567 a FW(29)6712 13567 y +SDict begin 18.2 H.L end + 6712 13567 a 6712 13567 +a +SDict begin [ /Subtype /Link /Dest (1045) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6712 13567 a Black FW(,)p 0 TeXcolorgray 7410 13567 +a +SDict begin H.S end + 7410 13567 a FW(73)8804 13567 y +SDict begin 18.2 H.L end + 8804 13567 a 8804 13567 +a +SDict begin [ /Subtype /Link /Dest (2189) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8804 13567 a Black -30 13768 a +SDict begin H.S end + -30 13768 a -30 13768 +a +SDict begin 18.2 H.A end + -30 13768 a -30 13768 a +SDict begin [ /View [/XYZ H.V] /Dest (7786) cvn H.B /DEST pdfmark end + -30 13768 a 1520 15582 a FW(client)349 +b(con\002guration,)p 0 TeXcolorgray 13103 15582 a +SDict begin H.S end + 13103 +15582 a FW(73)14497 15582 y +SDict begin 18.2 H.L end + 14497 15582 a 14497 15582 +a +SDict begin [ /Subtype /Link /Dest (2196) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14497 15582 a Black -30 15884 a +SDict begin H.S end + -30 15884 a -30 15884 +a +SDict begin 18.2 H.A end + -30 15884 a -30 15884 a +SDict begin [ /View [/XYZ H.V] /Dest (7788) cvn H.B /DEST pdfmark end + -30 15884 a 1520 17598 a FW(mounts,)p +0 TeXcolorgray 6325 17598 a +SDict begin H.S end + 6325 17598 a FW(111)8416 +17598 y +SDict begin 18.2 H.L end + 8416 17598 a 8416 17598 a +SDict begin [ /Subtype /Link /Dest (3074) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8416 17598 a Black +1 w FW(,)p 0 TeXcolorgray 9114 17598 a +SDict begin H.S end + 9114 17598 a FW(119)11205 +17598 y +SDict begin 18.2 H.L end + 11205 17598 a 11205 17598 a +SDict begin [ /Subtype /Link /Dest (3380) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11205 17598 a Black +-30 17799 a +SDict begin H.S end + -30 17799 a -30 17799 a +SDict begin 18.2 H.A end + -30 17799 a -30 17799 +a +SDict begin [ /View [/XYZ H.V] /Dest (7791) cvn H.B /DEST pdfmark end + -30 17799 a 5925 x FL(O)-30 24868 y +SDict begin H.S end + -30 24868 a -30 +24868 a +SDict begin 18.2 H.A end + -30 24868 a -30 24868 a +SDict begin [ /View [/XYZ H.V] /Dest (7794) cvn H.B /DEST pdfmark end + -30 24868 a 1987 x FW(open)h(source,)p +0 TeXcolorgray 7368 26855 a +SDict begin H.S end + 7368 26855 a FW(3)8065 26855 +y +SDict begin 18.2 H.L end + 8065 26855 a 8065 26855 a +SDict begin [ /Subtype /Link /Dest (353) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8065 26855 a Black -30 27157 +a +SDict begin H.S end + -30 27157 a -30 27157 a +SDict begin 18.2 H.A end + -30 27157 a -30 27157 a +SDict begin [ /View [/XYZ H.V] /Dest (7797) cvn H.B /DEST pdfmark end + -30 +27157 a 1714 x FW(Open)g(Source)h(Initiati)-35 b(v)-21 +b(e,)p 0 TeXcolorgray 13240 28871 a +SDict begin H.S end + 13240 28871 a FW(4)13937 +28871 y +SDict begin 18.2 H.L end + 13937 28871 a 13937 28871 a +SDict begin [ /Subtype /Link /Dest (376) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 13937 28871 a Black +-30 29172 a +SDict begin H.S end + -30 29172 a -30 29172 a +SDict begin 18.2 H.A end + -30 29172 a -30 29172 +a +SDict begin [ /View [/XYZ H.V] /Dest (7800) cvn H.B /DEST pdfmark end + -30 29172 a 1714 x FW(output)350 b(redirection,)p 0 +TeXcolorgray 10623 30886 a +SDict begin H.S end + 10623 30886 a FW(105)12714 +30886 y +SDict begin 18.2 H.L end + 12714 30886 a 12714 30886 a +SDict begin [ /Subtype /Link /Dest (2847) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12714 30886 a Black +-30 31188 a +SDict begin H.S end + -30 31188 a -30 31188 a +SDict begin 18.2 H.A end + -30 31188 a -30 31188 +a +SDict begin [ /View [/XYZ H.V] /Dest (7802) cvn H.B /DEST pdfmark end + -30 31188 a 5824 x FL(P)-30 38128 y +SDict begin H.S end + -30 38128 a -30 +38128 a +SDict begin 18.2 H.A end + -30 38128 a -30 38128 a +SDict begin [ /View [/XYZ H.V] /Dest (7805) cvn H.B /DEST pdfmark end + -30 38128 a 2016 x FW(package)h +(management,)p 0 TeXcolorgray 12713 40144 a +SDict begin H.S end + 12713 40144 +a FW(215)14804 40144 y +SDict begin 18.2 H.L end + 14804 40144 a 14804 40144 a +SDict begin [ /Subtype /Link /Dest (6370) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14804 +40144 a Black -30 40446 a +SDict begin H.S end + -30 40446 a -30 40446 a +SDict begin 18.2 H.A end + -30 +40446 a -30 40446 a +SDict begin [ /View [/XYZ H.V] /Dest (7808) cvn H.B /DEST pdfmark end + -30 40446 a 1713 x FW(packages)-30 +42461 y +SDict begin H.S end + -30 42461 a -30 42461 a +SDict begin 18.2 H.A end + -30 42461 a -30 42461 +a +SDict begin [ /View [/XYZ H.V] /Dest (7809) cvn H.B /DEST pdfmark end + -30 42461 a 1520 44174 a FW(installing,)p 0 TeXcolorgray +7410 44174 a +SDict begin H.S end + 7410 44174 a FW(217)9501 44174 y +SDict begin 18.2 H.L end + 9501 44174 +a 9501 44174 a +SDict begin [ /Subtype /Link /Dest (6403) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9501 44174 a Black 1 w FW(,)p 0 TeXcolorgray +10199 44174 a +SDict begin H.S end + 10199 44174 a FW(218)12290 44174 y +SDict begin 18.2 H.L end + 12290 +44174 a 12290 44174 a +SDict begin [ /Subtype /Link /Dest (6435) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12290 44174 a Black -30 44476 a +SDict begin H.S end + +-30 44476 a -30 44476 a +SDict begin 18.2 H.A end + -30 44476 a -30 44476 a +SDict begin [ /View [/XYZ H.V] /Dest (7812) cvn H.B /DEST pdfmark end + -30 44476 +a 1520 46190 a FW(making,)p 0 TeXcolorgray 6402 46190 +a +SDict begin H.S end + 6402 46190 a FW(222)8493 46190 y +SDict begin 18.2 H.L end + 8493 46190 a 8493 +46190 a +SDict begin [ /Subtype /Link /Dest (6576) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8493 46190 a Black -30 46491 a +SDict begin H.S end + -30 46491 a -30 +46491 a +SDict begin 18.2 H.A end + -30 46491 a -30 46491 a +SDict begin [ /View [/XYZ H.V] /Dest (7814) cvn H.B /DEST pdfmark end + -30 46491 a 1520 48205 +a FW(remo)-21 b(ving,)p 0 TeXcolorgray 7542 48205 a +SDict begin H.S end + 7542 +48205 a FW(217)9633 48205 y +SDict begin 18.2 H.L end + 9633 48205 a 9633 48205 a +SDict begin [ /Subtype /Link /Dest (6406) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +9633 48205 a Black 2 w FW(,)p 0 TeXcolorgray 10332 48205 +a +SDict begin H.S end + 10332 48205 a FW(219)12423 48205 y +SDict begin 18.2 H.L end + 12423 48205 a 12423 +48205 a +SDict begin [ /Subtype /Link /Dest (6478) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12423 48205 a Black -30 48507 a +SDict begin H.S end + -30 48507 a -30 +48507 a +SDict begin 18.2 H.A end + -30 48507 a -30 48507 a +SDict begin [ /View [/XYZ H.V] /Dest (7817) cvn H.B /DEST pdfmark end + -30 48507 a 1520 50220 +a FW(upgrading,)p 0 TeXcolorgray 7873 50220 a +SDict begin H.S end + 7873 50220 +a FW(218)9964 50220 y +SDict begin 18.2 H.L end + 9964 50220 a 9964 50220 a +SDict begin [ /Subtype /Link /Dest (6427) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9964 +50220 a Black 1 w FW(,)p 0 TeXcolorgray 10663 50220 a +SDict begin H.S end + +10663 50220 a FW(220)12754 50220 y +SDict begin 18.2 H.L end + 12754 50220 a 12754 +50220 a +SDict begin [ /Subtype /Link /Dest (6527) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12754 50220 a Black -30 50522 a +SDict begin H.S end + -30 50522 a -30 +50522 a +SDict begin 18.2 H.A end + -30 50522 a -30 50522 a +SDict begin [ /View [/XYZ H.V] /Dest (7821) cvn H.B /DEST pdfmark end + -30 50522 a 1714 x FW(pack)-14 +b(et)350 b(\002ltering,)p 0 TeXcolorgray 9060 52236 a +SDict begin H.S end + +9060 52236 a FW(183)11151 52236 y +SDict begin 18.2 H.L end + 11151 52236 a 11151 +52236 a +SDict begin [ /Subtype /Link /Dest (5137) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11151 52236 a Black -30 52537 a +SDict begin H.S end + -30 52537 a -30 +52537 a +SDict begin 18.2 H.A end + -30 52537 a -30 52537 a +SDict begin [ /View [/XYZ H.V] /Dest (7824) cvn H.B /DEST pdfmark end + -30 52537 a 1714 x FW(pagers,)p +0 TeXcolorgray 4308 54251 a +SDict begin H.S end + 4308 54251 a FW(124)6399 +54251 y +SDict begin 18.2 H.L end + 6399 54251 a 6399 54251 a +SDict begin [ /Subtype /Link /Dest (3493) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6399 54251 a Black +-30 54553 a +SDict begin H.S end + -30 54553 a -30 54553 a +SDict begin 18.2 H.A end + -30 54553 a -30 54553 +a +SDict begin [ /View [/XYZ H.V] /Dest (7826) cvn H.B /DEST pdfmark end + -30 54553 a 1520 56266 a FW(less,)p 0 TeXcolorgray +4309 56266 a +SDict begin H.S end + 4309 56266 a FW(125)6400 56266 y +SDict begin 18.2 H.L end + 6400 56266 +a 6400 56266 a +SDict begin [ /Subtype /Link /Dest (3522) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6400 56266 a Black -30 56468 a +SDict begin H.S end + -30 56468 +a -30 56468 a +SDict begin 18.2 H.A end + -30 56468 a -30 56468 a +SDict begin [ /View [/XYZ H.V] /Dest (7828) cvn H.B /DEST pdfmark end + -30 56468 a 1520 +58281 a FW(more,)p 0 TeXcolorgray 5083 58281 a +SDict begin H.S end + 5083 58281 +a FW(124)7174 58281 y +SDict begin 18.2 H.L end + 7174 58281 a 7174 58281 a +SDict begin [ /Subtype /Link /Dest (3495) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7174 +58281 a Black -30 58483 a +SDict begin H.S end + -30 58483 a -30 58483 a +SDict begin 18.2 H.A end + -30 +58483 a -30 58483 a +SDict begin [ /View [/XYZ H.V] /Dest (7830) cvn H.B /DEST pdfmark end + -30 58483 a 1520 60297 a FW(most,)p +0 TeXcolorgray 4930 60297 a +SDict begin H.S end + 4930 60297 a FW(125)7021 +60297 y +SDict begin 18.2 H.L end + 7021 60297 a 7021 60297 a +SDict begin [ /Subtype /Link /Dest (3541) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7021 60297 a Black +-30 60498 a +SDict begin H.S end + -30 60498 a -30 60498 a +SDict begin 18.2 H.A end + -30 60498 a -30 60498 +a +SDict begin [ /View [/XYZ H.V] /Dest (7833) cvn H.B /DEST pdfmark end + -30 60498 a 1814 x FW(paging,)p 0 TeXcolorgray 4464 +62312 a +SDict begin H.S end + 4464 62312 a FW(138)6555 62312 y +SDict begin 18.2 H.L end + 6555 62312 a +6555 62312 a +SDict begin [ /Subtype /Link /Dest (3934) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6555 62312 a Black -30 62614 a +SDict begin H.S end + -30 62614 +a -30 62614 a +SDict begin 18.2 H.A end + -30 62614 a -30 62614 a +SDict begin [ /View [/XYZ H.V] /Dest (7836) cvn H.B /DEST pdfmark end + -30 62614 a 1713 +x FW(partitioning,)p 0 TeXcolorgray 7177 64327 a +SDict begin H.S end + 7177 +64327 a FW(22)8571 64327 y +SDict begin 18.2 H.L end + 8571 64327 a 8571 64327 a +SDict begin [ /Subtype /Link /Dest (892) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +8571 64327 a Black -30 64629 a +SDict begin H.S end + -30 64629 a -30 64629 +a +SDict begin 18.2 H.A end + -30 64629 a -30 64629 a +SDict begin [ /View [/XYZ H.V] /Dest (7839) cvn H.B /DEST pdfmark end + -30 64629 a 1714 x FW(passw)-14 +b(ords,)p 0 TeXcolorgray 6464 66343 a +SDict begin H.S end + 6464 66343 a FW(102)8555 +66343 y +SDict begin 18.2 H.L end + 8555 66343 a 8555 66343 a +SDict begin [ /Subtype /Link /Dest (2688) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8555 66343 a Black +-30 66645 a +SDict begin H.S end + -30 66645 a -30 66645 a +SDict begin 18.2 H.A end + -30 66645 a -30 66645 +a +SDict begin [ /View [/XYZ H.V] /Dest (7841) cvn H.B /DEST pdfmark end + -30 66645 a 1520 68358 a FW(changing,)p 0 TeXcolorgray +7330 68358 a +SDict begin H.S end + 7330 68358 a FW(148)9421 68358 y +SDict begin 18.2 H.L end + 9421 68358 +a 9421 68358 a +SDict begin [ /Subtype /Link /Dest (4178) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9421 68358 a Black Black Black 27866 2383 +a +SDict begin H.S end + 27866 2383 a 27866 2383 a +SDict begin 18.2 H.A end + 27866 2383 a 27866 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7843) cvn H.B /DEST pdfmark end + +27866 2383 a 29415 3490 a FW(choosing,)p 0 TeXcolorgray +35149 3490 a +SDict begin H.S end + 35149 3490 a FW(146)37240 3490 y +SDict begin 18.2 H.L end + 37240 3490 +a 37240 3490 a +SDict begin [ /Subtype /Link /Dest (4136) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37240 3490 a Black 27866 3792 a +SDict begin H.S end + 27866 +3792 a 27866 3792 a +SDict begin 18.2 H.A end + 27866 3792 a 27866 3792 a +SDict begin [ /View [/XYZ H.V] /Dest (7846) cvn H.B /DEST pdfmark end + 27866 3792 +a 1752 x FW(patches,)p 0 TeXcolorgray 32746 5544 a +SDict begin H.S end + 32746 +5544 a FW(187)34837 5544 y +SDict begin 18.2 H.L end + 34837 5544 a 34837 5544 a +SDict begin [ /Subtype /Link /Dest (5247) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +34837 5544 a Black 27866 5846 a +SDict begin H.S end + 27866 5846 a 27866 5846 +a +SDict begin 18.2 H.A end + 27866 5846 a 27866 5846 a +SDict begin [ /View [/XYZ H.V] /Dest (7849) cvn H.B /DEST pdfmark end + 27866 5846 a 1752 x FW(P)-128 +b(A)-155 b(TH,)p 0 TeXcolorgray 31921 7598 a +SDict begin H.S end + 31921 7598 +a FW(103)34012 7598 y +SDict begin 18.2 H.L end + 34012 7598 a 34012 7598 a +SDict begin [ /Subtype /Link /Dest (2737) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34012 +7598 a Black 27866 7800 a +SDict begin H.S end + 27866 7800 a 27866 7800 a +SDict begin 18.2 H.A end + 27866 +7800 a 27866 7800 a +SDict begin [ /View [/XYZ H.V] /Dest (7852) cvn H.B /DEST pdfmark end + 27866 7800 a 1852 x FW(PCI,)p 0 TeXcolorgray +30733 9652 a +SDict begin H.S end + 30733 9652 a FW(59)32127 9652 y +SDict begin 18.2 H.L end + 32127 9652 +a 32127 9652 a +SDict begin [ /Subtype /Link /Dest (1799) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32127 9652 a Black 27866 9854 a +SDict begin H.S end + 27866 +9854 a 27866 9854 a +SDict begin 18.2 H.A end + 27866 9854 a 27866 9854 a +SDict begin [ /View [/XYZ H.V] /Dest (7855) cvn H.B /DEST pdfmark end + 27866 9854 +a 1852 x FW(PCMCIA,)p 0 TeXcolorgray 33910 11706 a +SDict begin H.S end + 33910 +11706 a FW(47)35304 11706 y +SDict begin 18.2 H.L end + 35304 11706 a 35304 11706 +a +SDict begin [ /Subtype /Link /Dest (1436) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35304 11706 a Black 1 w FW(,)p 0 TeXcolorgray 36003 +11706 a +SDict begin H.S end + 36003 11706 a FW(60)37397 11706 y +SDict begin 18.2 H.L end + 37397 11706 +a 37397 11706 a +SDict begin [ /Subtype /Link /Dest (1816) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37397 11706 a Black 27866 11907 a +SDict begin H.S end + 27866 +11907 a 27866 11907 a +SDict begin 18.2 H.A end + 27866 11907 a 27866 11907 a +SDict begin [ /View [/XYZ H.V] /Dest (7859) cvn H.B /DEST pdfmark end + 27866 +11907 a 1853 x FW(ping,)p 0 TeXcolorgray 31043 13760 +a +SDict begin H.S end + 31043 13760 a FW(157)33134 13760 y +SDict begin 18.2 H.L end + 33134 13760 a 33134 +13760 a +SDict begin [ /Subtype /Link /Dest (4419) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33134 13760 a Black 27866 14062 a +SDict begin H.S end + 27866 14062 +a 27866 14062 a +SDict begin 18.2 H.A end + 27866 14062 a 27866 14062 a +SDict begin [ /View [/XYZ H.V] /Dest (7862) cvn H.B /DEST pdfmark end + 27866 14062 +a 1752 x FW(pipes,)p 0 TeXcolorgray 31507 15814 a +SDict begin H.S end + 31507 +15814 a FW(105)33598 15814 y +SDict begin 18.2 H.L end + 33598 15814 a 33598 15814 +a +SDict begin [ /Subtype /Link /Dest (2845) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33598 15814 a Black 27866 16116 a +SDict begin H.S end + 27866 16116 a 27866 +16116 a +SDict begin 18.2 H.A end + 27866 16116 a 27866 16116 a +SDict begin [ /View [/XYZ H.V] /Dest (7865) cvn H.B /DEST pdfmark end + 27866 16116 a 1752 +x FW(pkgtool,)p 0 TeXcolorgray 32825 17868 a +SDict begin H.S end + 32825 17868 +a FW(217)34916 17868 y +SDict begin 18.2 H.L end + 34916 17868 a 34916 17868 a +SDict begin [ /Subtype /Link /Dest (6401) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34916 +17868 a Black 27866 18170 a +SDict begin H.S end + 27866 18170 a 27866 18170 +a +SDict begin 18.2 H.A end + 27866 18170 a 27866 18170 a +SDict begin [ /View [/XYZ H.V] /Dest (7868) cvn H.B /DEST pdfmark end + 27866 18170 a 1752 x FW(PPP)g(,)p +0 TeXcolorgray 30735 19922 a +SDict begin H.S end + 30735 19922 a FW(65)32129 +19922 y +SDict begin 18.2 H.L end + 32129 19922 a 32129 19922 a +SDict begin [ /Subtype /Link /Dest (1948) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32129 19922 a Black +27866 20123 a +SDict begin H.S end + 27866 20123 a 27866 20123 a +SDict begin 18.2 H.A end + 27866 20123 +a 27866 20123 a +SDict begin [ /View [/XYZ H.V] /Dest (7870) cvn H.B /DEST pdfmark end + 27866 20123 a 29415 21976 a FW(setup,)p +0 TeXcolorgray 33057 21976 a +SDict begin H.S end + 33057 21976 a FW(66)34451 +21976 y +SDict begin 18.2 H.L end + 34451 21976 a 34451 21976 a +SDict begin [ /Subtype /Link /Dest (1956) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34451 21976 a Black +27866 22277 a +SDict begin H.S end + 27866 22277 a 27866 22277 a +SDict begin 18.2 H.A end + 27866 22277 +a 27866 22277 a +SDict begin [ /View [/XYZ H.V] /Dest (7873) cvn H.B /DEST pdfmark end + 27866 22277 a 1752 x FW(process,)p 0 +TeXcolorgray 32746 24029 a +SDict begin H.S end + 32746 24029 a FW(133)34837 +24029 y +SDict begin 18.2 H.L end + 34837 24029 a 34837 24029 a +SDict begin [ /Subtype /Link /Dest (3821) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34837 24029 a Black +27866 24331 a +SDict begin H.S end + 27866 24331 a 27866 24331 a +SDict begin 18.2 H.A end + 27866 24331 +a 27866 24331 a +SDict begin [ /View [/XYZ H.V] /Dest (7875) cvn H.B /DEST pdfmark end + 27866 24331 a 29415 26083 a FW(suspend,)p +0 TeXcolorgray 34607 26083 a +SDict begin H.S end + 34607 26083 a FW(134)36698 +26083 y +SDict begin 18.2 H.L end + 36698 26083 a 36698 26083 a +SDict begin [ /Subtype /Link /Dest (3847) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36698 26083 a Black +27866 26385 a +SDict begin H.S end + 27866 26385 a 27866 26385 a +SDict begin 18.2 H.A end + 27866 26385 +a 27866 26385 a +SDict begin [ /View [/XYZ H.V] /Dest (7877) cvn H.B /DEST pdfmark end + 27866 26385 a 29415 28137 a FW(terminating,)p +0 TeXcolorgray 36544 28137 a +SDict begin H.S end + 36544 28137 a FW(139)38635 +28137 y +SDict begin 18.2 H.L end + 38635 28137 a 38635 28137 a +SDict begin [ /Subtype /Link /Dest (3961) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38635 28137 a Black +27866 28439 a +SDict begin H.S end + 27866 28439 a 27866 28439 a +SDict begin 18.2 H.A end + 27866 28439 +a 27866 28439 a +SDict begin [ /View [/XYZ H.V] /Dest (7880) cvn H.B /DEST pdfmark end + 27866 28439 a 1752 x FW(programs)27866 +30493 y +SDict begin H.S end + 27866 30493 a 27866 30493 a +SDict begin 18.2 H.A end + 27866 30493 a 27866 +30493 a +SDict begin [ /View [/XYZ H.V] /Dest (7881) cvn H.B /DEST pdfmark end + 27866 30493 a 29415 32245 a FW(installing,)p +0 TeXcolorgray 35305 32245 a +SDict begin H.S end + 35305 32245 a FW(215)37396 +32245 y +SDict begin 18.2 H.L end + 37396 32245 a 37396 32245 a +SDict begin [ /Subtype /Link /Dest (6372) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37396 32245 a Black +27866 32547 a +SDict begin H.S end + 27866 32547 a 27866 32547 a +SDict begin 18.2 H.A end + 27866 32547 +a 27866 32547 a +SDict begin [ /View [/XYZ H.V] /Dest (7883) cvn H.B /DEST pdfmark end + 27866 32547 a 29415 34299 a FW(listing,)p +0 TeXcolorgray 33601 34299 a +SDict begin H.S end + 33601 34299 a FW(135)35692 +34299 y +SDict begin 18.2 H.L end + 35692 34299 a 35692 34299 a +SDict begin [ /Subtype /Link /Dest (3895) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35692 34299 a Black +27866 34601 a +SDict begin H.S end + 27866 34601 a 27866 34601 a +SDict begin 18.2 H.A end + 27866 34601 +a 27866 34601 a +SDict begin [ /View [/XYZ H.V] /Dest (7885) cvn H.B /DEST pdfmark end + 27866 34601 a 29415 36353 a FW(running)351 +b(in)e(background,)p 0 TeXcolorgray 42819 36353 a +SDict begin H.S end + 42819 +36353 a FW(133)44910 36353 y +SDict begin 18.2 H.L end + 44910 36353 a 44910 36353 +a +SDict begin [ /Subtype /Link /Dest (3834) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 44910 36353 a Black 27866 36655 a +SDict begin H.S end + 27866 36655 a 27866 +36655 a +SDict begin 18.2 H.A end + 27866 36655 a 27866 36655 a +SDict begin [ /View [/XYZ H.V] /Dest (7887) cvn H.B /DEST pdfmark end + 27866 36655 a 29415 +38407 a FW(running)i(in)e(fore)-21 b(ground,)p 0 TeXcolorgray +42410 38407 a +SDict begin H.S end + 42410 38407 a FW(134)44501 38407 y +SDict begin 18.2 H.L end + 44501 +38407 a 44501 38407 a +SDict begin [ /Subtype /Link /Dest (3860) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 44501 38407 a Black 27866 38709 +a +SDict begin H.S end + 27866 38709 a 27866 38709 a +SDict begin 18.2 H.A end + 27866 38709 a 27866 38709 +a +SDict begin [ /View [/XYZ H.V] /Dest (7889) cvn H.B /DEST pdfmark end + 27866 38709 a 29415 40461 a FW(suspending,)p 0 TeXcolorgray +36389 40461 a +SDict begin H.S end + 36389 40461 a FW(134)38480 40461 y +SDict begin 18.2 H.L end + 38480 +40461 a 38480 40461 a +SDict begin [ /Subtype /Link /Dest (3844) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38480 40461 a Black 27866 40763 +a +SDict begin H.S end + 27866 40763 a 27866 40763 a +SDict begin 18.2 H.A end + 27866 40763 a 27866 40763 +a +SDict begin [ /View [/XYZ H.V] /Dest (7892) cvn H.B /DEST pdfmark end + 27866 40763 a 1752 x FW(pwd,)p 0 TeXcolorgray 30965 +42515 a +SDict begin H.S end + 30965 42515 a FW(124)33056 42515 y +SDict begin 18.2 H.L end + 33056 42515 +a 33056 42515 a +SDict begin [ /Subtype /Link /Dest (3468) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33056 42515 a Black 27866 42817 a +SDict begin H.S end + 27866 +42817 a 27866 42817 a +SDict begin 18.2 H.A end + 27866 42817 a 27866 42817 a +SDict begin [ /View [/XYZ H.V] /Dest (7894) cvn H.B /DEST pdfmark end + 27866 +42817 a 5940 x FL(R)27866 49873 y +SDict begin H.S end + 27866 49873 a 27866 +49873 a +SDict begin 18.2 H.A end + 27866 49873 a 27866 49873 a +SDict begin [ /View [/XYZ H.V] /Dest (7897) cvn H.B /DEST pdfmark end + 27866 49873 a 2054 +x FW(RAM,)p 0 TeXcolorgray 31740 51927 a +SDict begin H.S end + 31740 51927 +a FW(80)33134 51927 y +SDict begin 18.2 H.L end + 33134 51927 a 33134 51927 a +SDict begin [ /Subtype /Link /Dest (2316) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33134 +51927 a Black 27866 52128 a +SDict begin H.S end + 27866 52128 a 27866 52128 +a +SDict begin 18.2 H.A end + 27866 52128 a 27866 52128 a +SDict begin [ /View [/XYZ H.V] /Dest (7900) cvn H.B /DEST pdfmark end + 27866 52128 a 1853 x FW(reboot,)p +0 TeXcolorgray 32126 53981 a +SDict begin H.S end + 32126 53981 a FW(153)34217 +53981 y +SDict begin 18.2 H.L end + 34217 53981 a 34217 53981 a +SDict begin [ /Subtype /Link /Dest (4321) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34217 53981 a Black +2 w FW(,)p 0 TeXcolorgray 34916 53981 a +SDict begin H.S end + 34916 53981 a +FW(183)37007 53981 y +SDict begin 18.2 H.L end + 37007 53981 a 37007 53981 a +SDict begin [ /Subtype /Link /Dest (5120) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37007 +53981 a Black 27866 54182 a +SDict begin H.S end + 27866 54182 a 27866 54182 +a +SDict begin 18.2 H.A end + 27866 54182 a 27866 54182 a +SDict begin [ /View [/XYZ H.V] /Dest (7904) cvn H.B /DEST pdfmark end + 27866 54182 a 1853 x FW(Red)349 +b(Hat)g(Linux,)p 0 TeXcolorgray 36853 56035 a +SDict begin H.S end + 36853 56035 +a FW(215)38944 56035 y +SDict begin 18.2 H.L end + 38944 56035 a 38944 56035 a +SDict begin [ /Subtype /Link /Dest (6376) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38944 +56035 a Black 27866 56236 a +SDict begin H.S end + 27866 56236 a 27866 56236 +a +SDict begin 18.2 H.A end + 27866 56236 a 27866 56236 a +SDict begin [ /View [/XYZ H.V] /Dest (7907) cvn H.B /DEST pdfmark end + 27866 56236 a 1853 x FW(Red)g(Hat)g(P)-21 +b(ackage)351 b(Manager)-56 b(,)p 0 TeXcolorgray 43398 +58089 a +SDict begin H.S end + 43398 58089 a FW(221)45489 58089 y +SDict begin 18.2 H.L end + 45489 58089 +a 45489 58089 a +SDict begin [ /Subtype /Link /Dest (6557) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 45489 58089 a Black 27866 58390 a +SDict begin H.S end + 27866 +58390 a 27866 58390 a +SDict begin 18.2 H.A end + 27866 58390 a 27866 58390 a +SDict begin [ /View [/XYZ H.V] /Dest (7909) cvn H.B /DEST pdfmark end + 27866 +58390 a 29415 60142 a FW(con)g(v)-21 b(erting,)p 0 TeXcolorgray +36001 60142 a +SDict begin H.S end + 36001 60142 a FW(221)38092 60142 y +SDict begin 18.2 H.L end + 38092 +60142 a 38092 60142 a +SDict begin [ /Subtype /Link /Dest (6563) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38092 60142 a Black 27866 60444 +a +SDict begin H.S end + 27866 60444 a 27866 60444 a +SDict begin 18.2 H.A end + 27866 60444 a 27866 60444 +a +SDict begin [ /View [/XYZ H.V] /Dest (7912) cvn H.B /DEST pdfmark end + 27866 60444 a 1752 x FW(remote)349 b(login,)p 0 TeXcolorgray +35652 62196 a +SDict begin H.S end + 35652 62196 a FW(162)37743 62196 y +SDict begin 18.2 H.L end + 37743 +62196 a 37743 62196 a +SDict begin [ /Subtype /Link /Dest (4566) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37743 62196 a Black 27866 62498 +a +SDict begin H.S end + 27866 62498 a 27866 62498 a +SDict begin 18.2 H.A end + 27866 62498 a 27866 62498 +a +SDict begin [ /View [/XYZ H.V] /Dest (7915) cvn H.B /DEST pdfmark end + 27866 62498 a 1752 x FW(remo)-21 b(v)g(epkg,)p 0 TeXcolorgray +34796 64250 a +SDict begin H.S end + 34796 64250 a FW(219)36887 64250 y +SDict begin 18.2 H.L end + 36887 +64250 a 36887 64250 a +SDict begin [ /Subtype /Link /Dest (6481) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36887 64250 a Black 27866 64552 +a +SDict begin H.S end + 27866 64552 a 27866 64552 a +SDict begin 18.2 H.A end + 27866 64552 a 27866 64552 +a +SDict begin [ /View [/XYZ H.V] /Dest (7918) cvn H.B /DEST pdfmark end + 27866 64552 a 1752 x FW(resolv)g(er)-56 b(,)p 0 TeXcolorgray +32979 66304 a +SDict begin H.S end + 32979 66304 a FW(64)34373 66304 y +SDict begin 18.2 H.L end + 34373 +66304 a 34373 66304 a +SDict begin [ /Subtype /Link /Dest (1911) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34373 66304 a Black 27866 66506 +a +SDict begin H.S end + 27866 66506 a 27866 66506 a +SDict begin 18.2 H.A end + 27866 66506 a 27866 66506 +a +SDict begin [ /View [/XYZ H.V] /Dest (7921) cvn H.B /DEST pdfmark end + 27866 66506 a 1852 x FW(re)-35 b(v)-21 b(erse)350 b(DNS,)p +0 TeXcolorgray 35672 68358 a +SDict begin H.S end + 35672 68358 a FW(186)37763 +68358 y +SDict begin 18.2 H.L end + 37763 68358 a 37763 68358 a +SDict begin [ /Subtype /Link /Dest (5218) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37763 68358 a Black +Black 49451 73672 a FR(259)p Black eop end +%%Page: 260 282 +TeXDict begin 260 281 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.260) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (8101) cvn H.B /DEST pdfmark end + -30 -2687 a Black -30 2383 a +SDict begin H.S end + -30 +2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (7924) cvn H.B /DEST pdfmark end + -30 2383 a 1107 +x FW(root,)p 0 TeXcolorgray 2914 3490 a +SDict begin H.S end + 2914 3490 a FW(102)5005 +3490 y +SDict begin 18.2 H.L end + 5005 3490 a 5005 3490 a +SDict begin [ /Subtype /Link /Dest (2686) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5005 3490 a Black 2 w +FW(,)p 0 TeXcolorgray 5704 3490 a +SDict begin H.S end + 5704 3490 a FW(115)7795 +3490 y +SDict begin 18.2 H.L end + 7795 3490 a 7795 3490 a +SDict begin [ /Subtype /Link /Dest (3278) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7795 3490 a Black 1 w +FW(,)p 0 TeXcolorgray 8494 3490 a +SDict begin H.S end + 8494 3490 a FW(143)10585 +3490 y +SDict begin 18.2 H.L end + 10585 3490 a 10585 3490 a +SDict begin [ /Subtype /Link /Dest (4050) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10585 3490 a Black -30 +5544 a FW(root)350 b(directory)-91 b(,)p 0 TeXcolorgray +8208 5544 a +SDict begin H.S end + 8208 5544 a FW(41)9602 5544 y +SDict begin 18.2 H.L end + 9602 5544 a +9602 5544 a +SDict begin [ /Subtype /Link /Dest (7929) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9602 5544 a Black -30 5846 a +SDict begin H.S end + -30 5846 a -30 +5846 a +SDict begin 18.2 H.A end + -30 5846 a -30 5846 a +SDict begin [ /View [/XYZ H.V] /Dest (7932) cvn H.B /DEST pdfmark end + -30 5846 a 1752 x FW(route,)p +0 TeXcolorgray 3534 7598 a +SDict begin H.S end + 3534 7598 a FW(158)5625 7598 +y +SDict begin 18.2 H.L end + 5625 7598 a 5625 7598 a +SDict begin [ /Subtype /Link /Dest (4448) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5625 7598 a Black -30 7800 +a +SDict begin H.S end + -30 7800 a -30 7800 a +SDict begin 18.2 H.A end + -30 7800 a -30 7800 a +SDict begin [ /View [/XYZ H.V] /Dest (7935) cvn H.B /DEST pdfmark end + -30 7800 +a 1852 x FW(RPM)-30 9652 y +SDict begin H.S end + -30 9652 a -30 9652 a +SDict begin 18.2 H.A end + -30 +9652 a -30 9652 a +SDict begin [ /View [/XYZ H.V] /Dest (7936) cvn H.B /DEST pdfmark end + -30 9652 a 1520 11706 a FW(\(see)349 +b(Red)h(Hat)e(P)-21 b(ackage)352 b(Manager\))-30 12008 +y +SDict begin H.S end + -30 12008 a -30 12008 a +SDict begin 18.2 H.A end + -30 12008 a -30 12008 a +SDict begin [ /View [/XYZ H.V] /Dest (7938) cvn H.B /DEST pdfmark end + -30 +12008 a 1752 x FW(runle)-35 b(v)-21 b(el,)p 0 TeXcolorgray +5182 13760 a +SDict begin H.S end + 5182 13760 a FW(47)6576 13760 y +SDict begin 18.2 H.L end + 6576 13760 +a 6576 13760 a +SDict begin [ /Subtype /Link /Dest (1403) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6576 13760 a Black 1 w FW(,)p 0 TeXcolorgray +7274 13760 a +SDict begin H.S end + 7274 13760 a FW(48)8668 13760 y +SDict begin 18.2 H.L end + 8668 13760 +a 8668 13760 a +SDict begin [ /Subtype /Link /Dest (1458) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8668 13760 a Black 1 w FW(,)p 0 TeXcolorgray +9367 13760 a +SDict begin H.S end + 9367 13760 a FW(86)10761 13760 y +SDict begin 18.2 H.L end + 10761 13760 +a 10761 13760 a +SDict begin [ /Subtype /Link /Dest (2434) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10761 13760 a Black -30 13961 a +SDict begin H.S end + -30 13961 +a -30 13961 a +SDict begin 18.2 H.A end + -30 13961 a -30 13961 a +SDict begin [ /View [/XYZ H.V] /Dest (7943) cvn H.B /DEST pdfmark end + -30 13961 a 1853 +x FW(runle)-35 b(v)-21 b(els,)p 0 TeXcolorgray 5725 15814 +a +SDict begin H.S end + 5725 15814 a FW(183)7816 15814 y +SDict begin 18.2 H.L end + 7816 15814 a 7816 +15814 a +SDict begin [ /Subtype /Link /Dest (5118) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7816 15814 a Black -30 16015 a +SDict begin H.S end + -30 16015 a -30 +16015 a +SDict begin 18.2 H.A end + -30 16015 a -30 16015 a +SDict begin [ /View [/XYZ H.V] /Dest (7945) cvn H.B /DEST pdfmark end + -30 16015 a 6041 x FL(S)-30 +23200 y +SDict begin H.S end + -30 23200 a -30 23200 a +SDict begin 18.2 H.A end + -30 23200 a -30 23200 +a +SDict begin [ /View [/XYZ H.V] /Dest (7948) cvn H.B /DEST pdfmark end + -30 23200 a 2026 x FW(Samba,)p 0 TeXcolorgray 4464 +25226 a +SDict begin H.S end + 4464 25226 a FW(70)5858 25226 y +SDict begin 18.2 H.L end + 5858 25226 a +5858 25226 a +SDict begin [ /Subtype /Link /Dest (2123) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5858 25226 a Black -30 25427 a +SDict begin H.S end + -30 25427 +a -30 25427 a +SDict begin 18.2 H.A end + -30 25427 a -30 25427 a +SDict begin [ /View [/XYZ H.V] /Dest (7950) cvn H.B /DEST pdfmark end + -30 25427 a 1520 +27280 a FW(con\002guration,)p 0 TeXcolorgray 9655 27280 +a +SDict begin H.S end + 9655 27280 a FW(71)11049 27280 y +SDict begin 18.2 H.L end + 11049 27280 a 11049 +27280 a +SDict begin [ /Subtype /Link /Dest (2142) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11049 27280 a Black -30 27582 a +SDict begin H.S end + -30 27582 a -30 +27582 a +SDict begin 18.2 H.A end + -30 27582 a -30 27582 a +SDict begin [ /View [/XYZ H.V] /Dest (7953) cvn H.B /DEST pdfmark end + -30 27582 a 1752 x FW(SCP)-155 +b(,)p 0 TeXcolorgray 2994 29334 a +SDict begin H.S end + 2994 29334 a FW(70)4388 +29334 y +SDict begin 18.2 H.L end + 4388 29334 a 4388 29334 a +SDict begin [ /Subtype /Link /Dest (2112) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4388 29334 a Black +-30 29535 a +SDict begin H.S end + -30 29535 a -30 29535 a +SDict begin 18.2 H.A end + -30 29535 a -30 29535 +a +SDict begin [ /View [/XYZ H.V] /Dest (7956) cvn H.B /DEST pdfmark end + -30 29535 a 1853 x FW(screen,)p 0 TeXcolorgray 4230 +31388 a +SDict begin H.S end + 4230 31388 a FW(110)6321 31388 y +SDict begin 18.2 H.L end + 6321 31388 a +6321 31388 a +SDict begin [ /Subtype /Link /Dest (3026) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6321 31388 a Black -30 31589 a +SDict begin H.S end + -30 31589 +a -30 31589 a +SDict begin 18.2 H.A end + -30 31589 a -30 31589 a +SDict begin [ /View [/XYZ H.V] /Dest (7959) cvn H.B /DEST pdfmark end + -30 31589 a 1852 +x FW(SCSI,)p 0 TeXcolorgray 3613 33441 a +SDict begin H.S end + 3613 33441 a +FW(22)5007 33441 y +SDict begin 18.2 H.L end + 5007 33441 a 5007 33441 a +SDict begin [ /Subtype /Link /Dest (908) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5007 33441 +a Black -30 33643 a +SDict begin H.S end + -30 33643 a -30 33643 a +SDict begin 18.2 H.A end + -30 33643 +a -30 33643 a +SDict begin [ /View [/XYZ H.V] /Dest (7962) cvn H.B /DEST pdfmark end + -30 33643 a 1852 x FW(Secure)351 b(Shell)e(\(SSH\),)p +0 TeXcolorgray 11515 35495 a +SDict begin H.S end + 11515 35495 a FW(164)13606 +35495 y +SDict begin 18.2 H.L end + 13606 35495 a 13606 35495 a +SDict begin [ /Subtype /Link /Dest (4614) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 13606 35495 a Black +1 w FW(,)p 0 TeXcolorgray 14304 35495 a +SDict begin H.S end + 14304 35495 a +FW(182)16395 35495 y +SDict begin 18.2 H.L end + 16395 35495 a 16395 35495 a +SDict begin [ /Subtype /Link /Dest (5105) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 16395 +35495 a Black -30 35745 a +SDict begin H.S end + -30 35745 a -30 35745 a +SDict begin 18.2 H.A end + -30 +35745 a -30 35745 a +SDict begin [ /View [/XYZ H.V] /Dest (7966) cvn H.B /DEST pdfmark end + -30 35745 a 1804 x FW(security)-91 +b(,)p 0 TeXcolorgray 4993 37549 a +SDict begin H.S end + 4993 37549 a FW(12)6387 +37549 y +SDict begin 18.2 H.L end + 6387 37549 a 6387 37549 a +SDict begin [ /Subtype /Link /Dest (550) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6387 37549 a Black +FW(,)p 0 TeXcolorgray 7085 37549 a +SDict begin H.S end + 7085 37549 a FW(181)9176 +37549 y +SDict begin 18.2 H.L end + 9176 37549 a 9176 37549 a +SDict begin [ /Subtype /Link /Dest (5066) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9176 37549 a Black +-30 37851 a +SDict begin H.S end + -30 37851 a -30 37851 a +SDict begin 18.2 H.A end + -30 37851 a -30 37851 +a +SDict begin [ /View [/XYZ H.V] /Dest (7969) cvn H.B /DEST pdfmark end + -30 37851 a 1520 39603 a FW(patches,)p 0 TeXcolorgray +6400 39603 a +SDict begin H.S end + 6400 39603 a FW(187)8491 39603 y +SDict begin 18.2 H.L end + 8491 39603 +a 8491 39603 a +SDict begin [ /Subtype /Link /Dest (5244) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8491 39603 a Black -30 39905 a +SDict begin H.S end + -30 39905 +a -30 39905 a +SDict begin 18.2 H.A end + -30 39905 a -30 39905 a +SDict begin [ /View [/XYZ H.V] /Dest (7972) cvn H.B /DEST pdfmark end + -30 39905 a 1752 +x FW(sendmail,)p 0 TeXcolorgray 5704 41657 a +SDict begin H.S end + 5704 41657 +a FW(1)6401 41657 y +SDict begin 18.2 H.L end + 6401 41657 a 6401 41657 a +SDict begin [ /Subtype /Link /Dest (305) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6401 41657 +a Black -30 41859 a +SDict begin H.S end + -30 41859 a -30 41859 a +SDict begin 18.2 H.A end + -30 41859 +a -30 41859 a +SDict begin [ /View [/XYZ H.V] /Dest (7975) cvn H.B /DEST pdfmark end + -30 41859 a 1852 x FW(serial)349 b(ports,)p +0 TeXcolorgray 6827 43711 a +SDict begin H.S end + 6827 43711 a FW(47)8221 43711 +y +SDict begin 18.2 H.L end + 8221 43711 a 8221 43711 a +SDict begin [ /Subtype /Link /Dest (1444) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8221 43711 a Black -30 44013 +a +SDict begin H.S end + -30 44013 a -30 44013 a +SDict begin 18.2 H.A end + -30 44013 a -30 44013 a +SDict begin [ /View [/XYZ H.V] /Dest (7978) cvn H.B /DEST pdfmark end + -30 +44013 a 1752 x FW(services)-30 45779 y +SDict begin H.S end + -30 45779 a -30 +45779 a +SDict begin 18.2 H.A end + -30 45779 a -30 45779 a +SDict begin [ /View [/XYZ H.V] /Dest (7979) cvn H.B /DEST pdfmark end + -30 45779 a 1520 47819 +a FW(disabling,)p 0 TeXcolorgray 7332 47819 a +SDict begin H.S end + 7332 47819 +a FW(181)9423 47819 y +SDict begin 18.2 H.L end + 9423 47819 a 9423 47819 a +SDict begin [ /Subtype /Link /Dest (5071) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9423 +47819 a Black -30 48121 a +SDict begin H.S end + -30 48121 a -30 48121 a +SDict begin 18.2 H.A end + -30 +48121 a -30 48121 a +SDict begin [ /View [/XYZ H.V] /Dest (7982) cvn H.B /DEST pdfmark end + -30 48121 a 1752 x FW(setup,)p 0 +TeXcolorgray 3612 49873 a +SDict begin H.S end + 3612 49873 a FW(25)5006 49873 +y +SDict begin 18.2 H.L end + 5006 49873 a 5006 49873 a +SDict begin [ /Subtype /Link /Dest (974) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5006 49873 a Black -30 50175 +a +SDict begin H.S end + -30 50175 a -30 50175 a +SDict begin 18.2 H.A end + -30 50175 a -30 50175 a +SDict begin [ /View [/XYZ H.V] /Dest (7984) cvn H.B /DEST pdfmark end + -30 +50175 a 1520 51927 a FW(tag\002les,)p 0 TeXcolorgray +6247 51927 a +SDict begin H.S end + 6247 51927 a FW(223)8338 51927 y +SDict begin 18.2 H.L end + 8338 51927 +a 8338 51927 a +SDict begin [ /Subtype /Link /Dest (6615) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8338 51927 a Black -30 52229 a +SDict begin H.S end + -30 52229 +a -30 52229 a +SDict begin 18.2 H.A end + -30 52229 a -30 52229 a +SDict begin [ /View [/XYZ H.V] /Dest (7987) cvn H.B /DEST pdfmark end + -30 52229 a 1752 +x FW(shell,)p 0 TeXcolorgray 3302 53981 a +SDict begin H.S end + 3302 53981 +a FW(101)5393 53981 y +SDict begin 18.2 H.L end + 5393 53981 a 5393 53981 a +SDict begin [ /Subtype /Link /Dest (2669) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5393 +53981 a Black -30 54182 a +SDict begin H.S end + -30 54182 a -30 54182 a +SDict begin 18.2 H.A end + -30 +54182 a -30 54182 a +SDict begin [ /View [/XYZ H.V] /Dest (7990) cvn H.B /DEST pdfmark end + -30 54182 a 1853 x FW(shells,)p 0 +TeXcolorgray 3845 56035 a +SDict begin H.S end + 3845 56035 a FW(151)5936 56035 +y +SDict begin 18.2 H.L end + 5936 56035 a 5936 56035 a +SDict begin [ /Subtype /Link /Dest (4260) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5936 56035 a Black -30 56236 +a +SDict begin H.S end + -30 56236 a -30 56236 a +SDict begin 18.2 H.A end + -30 56236 a -30 56236 a +SDict begin [ /View [/XYZ H.V] /Dest (7993) cvn H.B /DEST pdfmark end + -30 +56236 a 1853 x FW(shutdo)-35 b(wn,)p 0 TeXcolorgray 6057 +58089 a +SDict begin H.S end + 6057 58089 a FW(153)8148 58089 y +SDict begin 18.2 H.L end + 8148 58089 a +8148 58089 a +SDict begin [ /Subtype /Link /Dest (4311) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8148 58089 a Black -30 58290 a +SDict begin H.S end + -30 58290 +a -30 58290 a +SDict begin 18.2 H.A end + -30 58290 a -30 58290 a +SDict begin [ /View [/XYZ H.V] /Dest (7996) cvn H.B /DEST pdfmark end + -30 58290 a 1852 +x FW(Silicon)350 b(Graphics,)p 0 TeXcolorgray 10004 60142 +a +SDict begin H.S end + 10004 60142 a FW(83)11398 60142 y +SDict begin 18.2 H.L end + 11398 60142 a 11398 +60142 a +SDict begin [ /Subtype /Link /Dest (2381) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11398 60142 a Black -30 60444 a +SDict begin H.S end + -30 60444 a -30 +60444 a +SDict begin 18.2 H.A end + -30 60444 a -30 60444 a +SDict begin [ /View [/XYZ H.V] /Dest (7999) cvn H.B /DEST pdfmark end + -30 60444 a 1752 x FW(SlackBuild,)p +0 TeXcolorgray 6867 62196 a +SDict begin H.S end + 6867 62196 a FW(223)8958 +62196 y +SDict begin 18.2 H.L end + 8958 62196 a 8958 62196 a +SDict begin [ /Subtype /Link /Dest (6604) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8958 62196 a Black +-30 62398 a +SDict begin H.S end + -30 62398 a -30 62398 a +SDict begin 18.2 H.A end + -30 62398 a -30 62398 +a +SDict begin [ /View [/XYZ H.V] /Dest (8002) cvn H.B /DEST pdfmark end + -30 62398 a 1852 x FW(Slackw)-14 b(are)351 b(Linux)-30 +64264 y +SDict begin H.S end + -30 64264 a -30 64264 a +SDict begin 18.2 H.A end + -30 64264 a -30 64264 +a +SDict begin [ /View [/XYZ H.V] /Dest (8003) cvn H.B /DEST pdfmark end + -30 64264 a 1520 66304 a FW(minimum)e(requirements,)p +0 TeXcolorgray 15274 66304 a +SDict begin H.S end + 15274 66304 a FW(17)16668 +66304 y +SDict begin 18.2 H.L end + 16668 66304 a 16668 66304 a +SDict begin [ /Subtype /Link /Dest (699) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 16668 66304 a Black +-30 66606 a +SDict begin H.S end + -30 66606 a -30 66606 a +SDict begin 18.2 H.A end + -30 66606 a -30 66606 +a +SDict begin [ /View [/XYZ H.V] /Dest (8005) cvn H.B /DEST pdfmark end + -30 66606 a 1520 68358 a FW(of)-35 b(\002cial)350 b(CDs,)p +0 TeXcolorgray 8962 68358 a +SDict begin H.S end + 8962 68358 a FW(15)10356 +68358 y +SDict begin 18.2 H.L end + 10356 68358 a 10356 68358 a +SDict begin [ /Subtype /Link /Dest (642) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10356 68358 a Black +Black Black 27866 2383 a +SDict begin H.S end + 27866 2383 a 27866 2383 a +SDict begin 18.2 H.A end + 27866 +2383 a 27866 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (8007) cvn H.B /DEST pdfmark end + 27866 2383 a 29415 3490 a FW(softw)-14 +b(are)350 b(series,)p 0 TeXcolorgray 38425 3490 a +SDict begin H.S end + 38425 +3490 a FW(17)39819 3490 y +SDict begin 18.2 H.L end + 39819 3490 a 39819 3490 a +SDict begin [ /Subtype /Link /Dest (739) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39819 +3490 a Black 27866 3692 a +SDict begin H.S end + 27866 3692 a 27866 3692 a +SDict begin 18.2 H.A end + 27866 +3692 a 27866 3692 a +SDict begin [ /View [/XYZ H.V] /Dest (8009) cvn H.B /DEST pdfmark end + 27866 3692 a 29415 5544 a FW(store,)p +0 TeXcolorgray 32824 5544 a +SDict begin H.S end + 32824 5544 a FW(16)34218 +5544 y +SDict begin 18.2 H.L end + 34218 5544 a 34218 5544 a +SDict begin [ /Subtype /Link /Dest (653) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34218 5544 a Black 27866 +5746 a +SDict begin H.S end + 27866 5746 a 27866 5746 a +SDict begin 18.2 H.A end + 27866 5746 a 27866 5746 +a +SDict begin [ /View [/XYZ H.V] /Dest (8012) cvn H.B /DEST pdfmark end + 27866 5746 a 1852 x FW(SLIP)-155 b(,)p 0 TeXcolorgray +31276 7598 a +SDict begin H.S end + 31276 7598 a FW(65)32670 7598 y +SDict begin 18.2 H.L end + 32670 7598 +a 32670 7598 a +SDict begin [ /Subtype /Link /Dest (1950) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32670 7598 a Black 27866 7800 a +SDict begin H.S end + 27866 +7800 a 27866 7800 a +SDict begin 18.2 H.A end + 27866 7800 a 27866 7800 a +SDict begin [ /View [/XYZ H.V] /Dest (8015) cvn H.B /DEST pdfmark end + 27866 7800 +a 1852 x FW(slocate,)p 0 TeXcolorgray 32436 9652 a +SDict begin H.S end + 32436 +9652 a FW(46)33830 9652 y +SDict begin 18.2 H.L end + 33830 9652 a 33830 9652 a +SDict begin [ /Subtype /Link /Dest (1380) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33830 +9652 a Black 27866 9854 a +SDict begin H.S end + 27866 9854 a 27866 9854 a +SDict begin 18.2 H.A end + 27866 +9854 a 27866 9854 a +SDict begin [ /View [/XYZ H.V] /Dest (8018) cvn H.B /DEST pdfmark end + 27866 9854 a 1852 x FW(SLS)349 b(Linux,)p +0 TeXcolorgray 34647 11706 a +SDict begin H.S end + 34647 11706 a FW(2)35344 +11706 y +SDict begin 18.2 H.L end + 35344 11706 a 35344 11706 a +SDict begin [ /Subtype /Link /Dest (345) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35344 11706 a Black +27866 11907 a +SDict begin H.S end + 27866 11907 a 27866 11907 a +SDict begin 18.2 H.A end + 27866 11907 +a 27866 11907 a +SDict begin [ /View [/XYZ H.V] /Dest (8021) cvn H.B /DEST pdfmark end + 27866 11907 a 1853 x FW(SMB,)p 0 TeXcolorgray +31509 13760 a +SDict begin H.S end + 31509 13760 a FW(70)32903 13760 y +SDict begin 18.2 H.L end + 32903 +13760 a 32903 13760 a +SDict begin [ /Subtype /Link /Dest (2121) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32903 13760 a Black 27866 13961 +a +SDict begin H.S end + 27866 13961 a 27866 13961 a +SDict begin 18.2 H.A end + 27866 13961 a 27866 13961 +a +SDict begin [ /View [/XYZ H.V] /Dest (8024) cvn H.B /DEST pdfmark end + 27866 13961 a 1853 x FW(Solaris,)p 0 TeXcolorgray 32437 +15814 a +SDict begin H.S end + 32437 15814 a FW(73)33831 15814 y +SDict begin 18.2 H.L end + 33831 15814 +a 33831 15814 a +SDict begin [ /Subtype /Link /Dest (2193) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33831 15814 a Black 27866 16015 a +SDict begin H.S end + 27866 +16015 a 27866 16015 a +SDict begin 18.2 H.A end + 27866 16015 a 27866 16015 a +SDict begin [ /View [/XYZ H.V] /Dest (8027) cvn H.B /DEST pdfmark end + 27866 +16015 a 1853 x FW(static)e(IP)-155 b(,)p 0 TeXcolorgray +32941 17868 a +SDict begin H.S end + 32941 17868 a FW(57)34335 17868 y +SDict begin 18.2 H.L end + 34335 +17868 a 34335 17868 a +SDict begin [ /Subtype /Link /Dest (1745) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34335 17868 a Black 27866 18069 +a +SDict begin H.S end + 27866 18069 a 27866 18069 a +SDict begin 18.2 H.A end + 27866 18069 a 27866 18069 +a +SDict begin [ /View [/XYZ H.V] /Dest (8030) cvn H.B /DEST pdfmark end + 27866 18069 a 1853 x FW(su,)p 0 TeXcolorgray 29803 +19922 a +SDict begin H.S end + 29803 19922 a FW(102)31894 19922 y +SDict begin 18.2 H.L end + 31894 19922 +a 31894 19922 a +SDict begin [ /Subtype /Link /Dest (2715) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 31894 19922 a Black 27866 20123 a +SDict begin H.S end + 27866 +20123 a 27866 20123 a +SDict begin 18.2 H.A end + 27866 20123 a 27866 20123 a +SDict begin [ /View [/XYZ H.V] /Dest (8033) cvn H.B /DEST pdfmark end + 27866 +20123 a 1853 x FW(Sun)349 b(Microsystems,)p 0 TeXcolorgray +38908 21976 a +SDict begin H.S end + 38908 21976 a FW(73)40302 21976 y +SDict begin 18.2 H.L end + 40302 +21976 a 40302 21976 a +SDict begin [ /Subtype /Link /Dest (2191) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 40302 21976 a Black 1 w FW(,)p +0 TeXcolorgray 41000 21976 a +SDict begin H.S end + 41000 21976 a FW(83)42394 +21976 y +SDict begin 18.2 H.L end + 42394 21976 a 42394 21976 a +SDict begin [ /Subtype /Link /Dest (2379) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 42394 21976 a Black +27866 22277 a +SDict begin H.S end + 27866 22277 a 27866 22277 a +SDict begin 18.2 H.A end + 27866 22277 +a 27866 22277 a +SDict begin [ /View [/XYZ H.V] /Dest (8037) cvn H.B /DEST pdfmark end + 27866 22277 a 1752 x FW(superuser)-56 +b(,)p 0 TeXcolorgray 33852 24029 a +SDict begin H.S end + 33852 24029 a FW(102)35943 +24029 y +SDict begin 18.2 H.L end + 35943 24029 a 35943 24029 a +SDict begin [ /Subtype /Link /Dest (2707) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35943 24029 a Black +27866 24331 a +SDict begin H.S end + 27866 24331 a 27866 24331 a +SDict begin 18.2 H.A end + 27866 24331 +a 27866 24331 a +SDict begin [ /View [/XYZ H.V] /Dest (8040) cvn H.B /DEST pdfmark end + 27866 24331 a 1752 x FW(support)27866 +26385 y +SDict begin H.S end + 27866 26385 a 27866 26385 a +SDict begin 18.2 H.A end + 27866 26385 a 27866 +26385 a +SDict begin [ /View [/XYZ H.V] /Dest (8041) cvn H.B /DEST pdfmark end + 27866 26385 a 29415 28137 a FW(email,)p 0 TeXcolorgray +33212 28137 a +SDict begin H.S end + 33212 28137 a FW(11)34606 28137 y +SDict begin 18.2 H.L end + 34606 +28137 a 34606 28137 a +SDict begin [ /Subtype /Link /Dest (527) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34606 28137 a Black 27866 28339 +a +SDict begin H.S end + 27866 28339 a 27866 28339 a +SDict begin 18.2 H.A end + 27866 28339 a 27866 28339 +a +SDict begin [ /View [/XYZ H.V] /Dest (8043) cvn H.B /DEST pdfmark end + 27866 28339 a 29415 30191 a FW(mailing)349 b(lists,)p +0 TeXcolorgray 36972 30191 a +SDict begin H.S end + 36972 30191 a FW(11)38366 +30191 y +SDict begin 18.2 H.L end + 38366 30191 a 38366 30191 a +SDict begin [ /Subtype /Link /Dest (536) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38366 30191 a Black +1 w FW(,)p 0 TeXcolorgray 39064 30191 a +SDict begin H.S end + 39064 30191 a +FW(186)41155 30191 y +SDict begin 18.2 H.L end + 41155 30191 a 41155 30191 a +SDict begin [ /Subtype /Link /Dest (5229) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 41155 +30191 a Black 27866 30493 a +SDict begin H.S end + 27866 30493 a 27866 30493 +a +SDict begin 18.2 H.A end + 27866 30493 a 27866 30493 a +SDict begin [ /View [/XYZ H.V] /Dest (8046) cvn H.B /DEST pdfmark end + 27866 30493 a 29415 32245 +a FW(patches,)p 0 TeXcolorgray 34295 32245 a +SDict begin H.S end + 34295 32245 +a FW(187)36386 32245 y +SDict begin 18.2 H.L end + 36386 32245 a 36386 32245 a +SDict begin [ /Subtype /Link /Dest (5241) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36386 +32245 a Black 27866 32547 a +SDict begin H.S end + 27866 32547 a 27866 32547 +a +SDict begin 18.2 H.A end + 27866 32547 a 27866 32547 a +SDict begin [ /View [/XYZ H.V] /Dest (8048) cvn H.B /DEST pdfmark end + 27866 32547 a 29415 34299 +a FW(usenet,)p 0 TeXcolorgray 33676 34299 a +SDict begin H.S end + 33676 34299 +a FW(14)35070 34299 y +SDict begin 18.2 H.L end + 35070 34299 a 35070 34299 a +SDict begin [ /Subtype /Link /Dest (621) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35070 +34299 a Black 27866 34501 a +SDict begin H.S end + 27866 34501 a 27866 34501 +a +SDict begin 18.2 H.A end + 27866 34501 a 27866 34501 a +SDict begin [ /View [/XYZ H.V] /Dest (8051) cvn H.B /DEST pdfmark end + 27866 34501 a 1852 x FW(sw)-14 +b(ap)348 b(partition,)p 0 TeXcolorgray 36491 36353 a +SDict begin H.S end + +36491 36353 a FW(23)37885 36353 y +SDict begin 18.2 H.L end + 37885 36353 a 37885 +36353 a +SDict begin [ /Subtype /Link /Dest (935) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37885 36353 a Black FW(,)p 0 TeXcolorgray 38583 +36353 a +SDict begin H.S end + 38583 36353 a FW(27)39977 36353 y +SDict begin 18.2 H.L end + 39977 36353 +a 39977 36353 a +SDict begin [ /Subtype /Link /Dest (1018) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39977 36353 a Black 27866 36655 a +SDict begin H.S end + 27866 +36655 a 27866 36655 a +SDict begin 18.2 H.A end + 27866 36655 a 27866 36655 a +SDict begin [ /View [/XYZ H.V] /Dest (8055) cvn H.B /DEST pdfmark end + 27866 +36655 a 1752 x FW(symbolic)h(link,)p 0 TeXcolorgray 36196 +38407 a +SDict begin H.S end + 36196 38407 a FW(116)38287 38407 y +SDict begin 18.2 H.L end + 38287 38407 +a 38287 38407 a +SDict begin [ /Subtype /Link /Dest (3289) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38287 38407 a Black 27866 38709 a +SDict begin H.S end + 27866 +38709 a 27866 38709 a +SDict begin 18.2 H.A end + 27866 38709 a 27866 38709 a +SDict begin [ /View [/XYZ H.V] /Dest (8058) cvn H.B /DEST pdfmark end + 27866 +38709 a 1752 x FW(system)f(administration,)p 0 TeXcolorgray +40845 40461 a +SDict begin H.S end + 40845 40461 a FW(143)42936 40461 y +SDict begin 18.2 H.L end + 42936 +40461 a 42936 40461 a +SDict begin [ /Subtype /Link /Dest (4046) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 42936 40461 a Black 27866 40763 +a +SDict begin H.S end + 27866 40763 a 27866 40763 a +SDict begin 18.2 H.A end + 27866 40763 a 27866 40763 +a +SDict begin [ /View [/XYZ H.V] /Dest (8061) cvn H.B /DEST pdfmark end + 27866 40763 a 1752 x FW(system)g(load,)p 0 TeXcolorgray +35188 42515 a +SDict begin H.S end + 35188 42515 a FW(141)37279 42515 y +SDict begin 18.2 H.L end + 37279 +42515 a 37279 42515 a +SDict begin [ /Subtype /Link /Dest (4020) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37279 42515 a Black 27866 42817 +a +SDict begin H.S end + 27866 42817 a 27866 42817 a +SDict begin 18.2 H.A end + 27866 42817 a 27866 42817 +a +SDict begin [ /View [/XYZ H.V] /Dest (8064) cvn H.B /DEST pdfmark end + 27866 42817 a 1752 x FW(system)g(resources,)p 0 TeXcolorgray +38053 44569 a +SDict begin H.S end + 38053 44569 a FW(138)40144 44569 y +SDict begin 18.2 H.L end + 40144 +44569 a 40144 44569 a +SDict begin [ /Subtype /Link /Dest (3949) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 40144 44569 a Black 27866 44871 +a +SDict begin H.S end + 27866 44871 a 27866 44871 a +SDict begin 18.2 H.A end + 27866 44871 a 27866 44871 +a +SDict begin [ /View [/XYZ H.V] /Dest (8067) cvn H.B /DEST pdfmark end + 27866 44871 a 1752 x FW(System)h(V)-180 b(,)p 0 TeXcolorgray +33846 46623 a +SDict begin H.S end + 33846 46623 a FW(46)35240 46623 y +SDict begin 18.2 H.L end + 35240 +46623 a 35240 46623 a +SDict begin [ /Subtype /Link /Dest (1400) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35240 46623 a Black 1 w FW(,)p +0 TeXcolorgray 35938 46623 a +SDict begin H.S end + 35938 46623 a FW(48)37332 +46623 y +SDict begin 18.2 H.L end + 37332 46623 a 37332 46623 a +SDict begin [ /Subtype /Link /Dest (1451) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37332 46623 a Black +27866 46924 a +SDict begin H.S end + 27866 46924 a 27866 46924 a +SDict begin 18.2 H.A end + 27866 46924 +a 27866 46924 a +SDict begin [ /View [/XYZ H.V] /Dest (8070) cvn H.B /DEST pdfmark end + 27866 46924 a 29415 48676 a FW(init)349 +b(compatibility)-91 b(,)p 0 TeXcolorgray 39671 48676 +a +SDict begin H.S end + 39671 48676 a FW(49)41065 48676 y +SDict begin 18.2 H.L end + 41065 48676 a 41065 +48676 a +SDict begin [ /Subtype /Link /Dest (1535) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 41065 48676 a Black 27866 48978 a +SDict begin H.S end + 27866 48978 +a 27866 48978 a +SDict begin 18.2 H.A end + 27866 48978 a 27866 48978 a +SDict begin [ /View [/XYZ H.V] /Dest (8072) cvn H.B /DEST pdfmark end + 27866 48978 +a 5941 x FL(T)27866 56035 y +SDict begin H.S end + 27866 56035 a 27866 56035 +a +SDict begin 18.2 H.A end + 27866 56035 a 27866 56035 a +SDict begin [ /View [/XYZ H.V] /Dest (8075) cvn H.B /DEST pdfmark end + 27866 56035 a 2054 x FW(tab)349 +b(completion,)p 0 TeXcolorgray 36892 58089 a +SDict begin H.S end + 36892 58089 +a FW(108)38983 58089 y +SDict begin 18.2 H.L end + 38983 58089 a 38983 58089 a +SDict begin [ /Subtype /Link /Dest (2954) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38983 +58089 a Black 27866 58390 a +SDict begin H.S end + 27866 58390 a 27866 58390 +a +SDict begin 18.2 H.A end + 27866 58390 a 27866 58390 a +SDict begin [ /View [/XYZ H.V] /Dest (8078) cvn H.B /DEST pdfmark end + 27866 58390 a 1752 x FW(T)-112 +b(ag\002les,)p 0 TeXcolorgray 32945 60142 a +SDict begin H.S end + 32945 60142 +a FW(223)35036 60142 y +SDict begin 18.2 H.L end + 35036 60142 a 35036 60142 a +SDict begin [ /Subtype /Link /Dest (6613) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35036 +60142 a Black 27866 60444 a +SDict begin H.S end + 27866 60444 a 27866 60444 +a +SDict begin 18.2 H.A end + 27866 60444 a 27866 60444 a +SDict begin [ /View [/XYZ H.V] /Dest (8081) cvn H.B /DEST pdfmark end + 27866 60444 a 1752 x FW(T)g(ags,)p +0 TeXcolorgray 31163 62196 a +SDict begin H.S end + 31163 62196 a FW(223)33254 +62196 y +SDict begin 18.2 H.L end + 33254 62196 a 33254 62196 a +SDict begin [ /Subtype /Link /Dest (6611) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33254 62196 a Black +27866 62498 a +SDict begin H.S end + 27866 62498 a 27866 62498 a +SDict begin 18.2 H.A end + 27866 62498 +a 27866 62498 a +SDict begin [ /View [/XYZ H.V] /Dest (8084) cvn H.B /DEST pdfmark end + 27866 62498 a 1752 x FW(talk,)p 0 TeXcolorgray +30655 64250 a +SDict begin H.S end + 30655 64250 a FW(177)32746 64250 y +SDict begin 18.2 H.L end + 32746 +64250 a 32746 64250 a +SDict begin [ /Subtype /Link /Dest (5011) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32746 64250 a Black 27866 64452 +a +SDict begin H.S end + 27866 64452 a 27866 64452 a +SDict begin 18.2 H.A end + 27866 64452 a 27866 64452 +a +SDict begin [ /View [/XYZ H.V] /Dest (8087) cvn H.B /DEST pdfmark end + 27866 64452 a 1852 x FW(tar)-56 b(,)p 0 TeXcolorgray +29979 66304 a +SDict begin H.S end + 29979 66304 a FW(191)32070 66304 y +SDict begin 18.2 H.L end + 32070 +66304 a 32070 66304 a +SDict begin [ /Subtype /Link /Dest (5372) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32070 66304 a Black 27866 66506 +a +SDict begin H.S end + 27866 66506 a 27866 66506 a +SDict begin 18.2 H.A end + 27866 66506 a 27866 66506 +a +SDict begin [ /View [/XYZ H.V] /Dest (8090) cvn H.B /DEST pdfmark end + 27866 66506 a 1852 x FW(TCP)349 b(wrappers,)p 0 TeXcolorgray +36581 68358 a +SDict begin H.S end + 36581 68358 a FW(185)38672 68358 y +SDict begin 18.2 H.L end + 38672 +68358 a 38672 68358 a +SDict begin [ /Subtype /Link /Dest (5200) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38672 68358 a Black Black -30 73672 +a FR(260)p Black eop end +%%Page: 261 283 +TeXDict begin 261 282 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.261) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black -30 -2687 a +SDict begin H.S end + -30 -2687 a -30 -2687 a +SDict begin 18.2 H.A end + -30 +-2687 a -30 -2687 a +SDict begin [ /View [/XYZ H.V] /Dest (8255) cvn H.B /DEST pdfmark end + -30 -2687 a Black -30 2383 a +SDict begin H.S end + -30 +2383 a -30 2383 a +SDict begin 18.2 H.A end + -30 2383 a -30 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (8093) cvn H.B /DEST pdfmark end + -30 2383 a 1107 +x FW(TCP/IP)-155 b(,)p 0 TeXcolorgray 4698 3490 a +SDict begin H.S end + 4698 +3490 a FW(61)6092 3490 y +SDict begin 18.2 H.L end + 6092 3490 a 6092 3490 a +SDict begin [ /Subtype /Link /Dest (1826) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6092 +3490 a Black 1 w FW(,)p 0 TeXcolorgray 6790 3490 a +SDict begin H.S end + 6790 +3490 a FW(70)8184 3490 y +SDict begin 18.2 H.L end + 8184 3490 a 8184 3490 a +SDict begin [ /Subtype /Link /Dest (2114) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8184 +3490 a Black -30 3692 a +SDict begin H.S end + -30 3692 a -30 3692 a +SDict begin 18.2 H.A end + -30 3692 +a -30 3692 a +SDict begin [ /View [/XYZ H.V] /Dest (8097) cvn H.B /DEST pdfmark end + -30 3692 a 1814 x FW(telinit,)p 0 TeXcolorgray +3923 5506 a +SDict begin H.S end + 3923 5506 a FW(154)6014 5506 y +SDict begin 18.2 H.L end + 6014 5506 +a 6014 5506 a +SDict begin [ /Subtype /Link /Dest (4368) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6014 5506 a Black 1 w FW(,)p 0 TeXcolorgray +6712 5506 a +SDict begin H.S end + 6712 5506 a FW(183)8803 5506 y +SDict begin 18.2 H.L end + 8803 5506 +a 8803 5506 a +SDict begin [ /Subtype /Link /Dest (5122) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8803 5506 a Black -30 7521 a FW(telnet,)p +0 TeXcolorgray 3767 7521 a +SDict begin H.S end + 3767 7521 a FW(162)5858 7521 +y +SDict begin 18.2 H.L end + 5858 7521 a 5858 7521 a +SDict begin [ /Subtype /Link /Dest (8101) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5858 7521 a Black -30 7722 +a +SDict begin H.S end + -30 7722 a -30 7722 a +SDict begin 18.2 H.A end + -30 7722 a -30 7722 a +SDict begin [ /View [/XYZ H.V] /Dest (8104) cvn H.B /DEST pdfmark end + -30 7722 +a 1814 x FW(terminal,)p 0 TeXcolorgray 5316 9536 a +SDict begin H.S end + 5316 +9536 a FW(82)6710 9536 y +SDict begin 18.2 H.L end + 6710 9536 a 6710 9536 a +SDict begin [ /Subtype /Link /Dest (2357) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6710 +9536 a Black -30 9738 a +SDict begin H.S end + -30 9738 a -30 9738 a +SDict begin 18.2 H.A end + -30 9738 +a -30 9738 a +SDict begin [ /View [/XYZ H.V] /Dest (8107) cvn H.B /DEST pdfmark end + -30 9738 a 1814 x FW(timezone,)p 0 TeXcolorgray +5781 11552 a +SDict begin H.S end + 5781 11552 a FW(35)7175 11552 y +SDict begin 18.2 H.L end + 7175 11552 +a 7175 11552 a +SDict begin [ /Subtype /Link /Dest (1134) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7175 11552 a Black -30 11753 a +SDict begin H.S end + -30 11753 +a -30 11753 a +SDict begin 18.2 H.A end + -30 11753 a -30 11753 a +SDict begin [ /View [/XYZ H.V] /Dest (8110) cvn H.B /DEST pdfmark end + -30 11753 a 1814 +x FW(T)-112 b(orv)-35 b(alds,)350 b(Linus,)p 0 TeXcolorgray +9354 13567 a +SDict begin H.S end + 9354 13567 a FW(1)10051 13567 y +SDict begin 18.2 H.L end + 10051 13567 +a 10051 13567 a +SDict begin [ /Subtype /Link /Dest (299) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10051 13567 a Black -30 13768 a +SDict begin H.S end + -30 13768 +a -30 13768 a +SDict begin 18.2 H.A end + -30 13768 a -30 13768 a +SDict begin [ /View [/XYZ H.V] /Dest (8113) cvn H.B /DEST pdfmark end + -30 13768 a 1814 +x FW(touch,)p 0 TeXcolorgray 3767 15582 a +SDict begin H.S end + 3767 15582 +a FW(127)5858 15582 y +SDict begin 18.2 H.L end + 5858 15582 a 5858 15582 a +SDict begin [ /Subtype /Link /Dest (3624) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5858 +15582 a Black -30 15784 a +SDict begin H.S end + -30 15784 a -30 15784 a +SDict begin 18.2 H.A end + -30 +15784 a -30 15784 a +SDict begin [ /View [/XYZ H.V] /Dest (8116) cvn H.B /DEST pdfmark end + -30 15784 a 1814 x FW(twm,)p 0 TeXcolorgray +3147 17598 a +SDict begin H.S end + 3147 17598 a FW(82)4541 17598 y +SDict begin 18.2 H.L end + 4541 17598 +a 4541 17598 a +SDict begin [ /Subtype /Link /Dest (2355) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4541 17598 a Black -30 17799 a +SDict begin H.S end + -30 17799 +a -30 17799 a +SDict begin 18.2 H.A end + -30 17799 a -30 17799 a +SDict begin [ /View [/XYZ H.V] /Dest (8118) cvn H.B /DEST pdfmark end + -30 17799 a 5925 +x FL(U)-30 24868 y +SDict begin H.S end + -30 24868 a -30 24868 a +SDict begin 18.2 H.A end + -30 24868 +a -30 24868 a +SDict begin [ /View [/XYZ H.V] /Dest (8121) cvn H.B /DEST pdfmark end + -30 24868 a 1987 x FW(umask,)p 0 TeXcolorgray +4309 26855 a +SDict begin H.S end + 4309 26855 a FW(114)6400 26855 y +SDict begin 18.2 H.L end + 6400 26855 +a 6400 26855 a +SDict begin [ /Subtype /Link /Dest (3214) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6400 26855 a Black -30 27057 a +SDict begin H.S end + -30 27057 +a -30 27057 a +SDict begin 18.2 H.A end + -30 27057 a -30 27057 a +SDict begin [ /View [/XYZ H.V] /Dest (8124) cvn H.B /DEST pdfmark end + -30 27057 a 1814 +x FW(upgradepkg,)p 0 TeXcolorgray 7252 28871 a +SDict begin H.S end + 7252 28871 +a FW(220)9343 28871 y +SDict begin 18.2 H.L end + 9343 28871 a 9343 28871 a +SDict begin [ /Subtype /Link /Dest (6530) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9343 +28871 a Black -30 29172 a +SDict begin H.S end + -30 29172 a -30 29172 a +SDict begin 18.2 H.A end + -30 +29172 a -30 29172 a +SDict begin [ /View [/XYZ H.V] /Dest (8127) cvn H.B /DEST pdfmark end + -30 29172 a 1714 x FW(URL,)p 0 TeXcolorgray +3457 30886 a +SDict begin H.S end + 3457 30886 a FW(173)5548 30886 y +SDict begin 18.2 H.L end + 5548 30886 +a 5548 30886 a +SDict begin [ /Subtype /Link /Dest (4839) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5548 30886 a Black -30 31087 a +SDict begin H.S end + -30 31087 +a -30 31087 a +SDict begin 18.2 H.A end + -30 31087 a -30 31087 a +SDict begin [ /View [/XYZ H.V] /Dest (8130) cvn H.B /DEST pdfmark end + -30 31087 a 1814 +x FW(USB,)p 0 TeXcolorgray 3380 32901 a +SDict begin H.S end + 3380 32901 a +FW(59)4774 32901 y +SDict begin 18.2 H.L end + 4774 32901 a 4774 32901 a +SDict begin [ /Subtype /Link /Dest (1801) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4774 32901 +a Black -30 33103 a +SDict begin H.S end + -30 33103 a -30 33103 a +SDict begin 18.2 H.A end + -30 33103 +a -30 33103 a +SDict begin [ /View [/XYZ H.V] /Dest (8133) cvn H.B /DEST pdfmark end + -30 33103 a 1814 x FW(Usenet,)p 0 TeXcolorgray +4541 34917 a +SDict begin H.S end + 4541 34917 a FW(14)5935 34917 y +SDict begin 18.2 H.L end + 5935 34917 +a 5935 34917 a +SDict begin [ /Subtype /Link /Dest (624) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5935 34917 a Black -30 35118 a +SDict begin H.S end + -30 35118 +a -30 35118 a +SDict begin 18.2 H.A end + -30 35118 a -30 35118 a +SDict begin [ /View [/XYZ H.V] /Dest (8136) cvn H.B /DEST pdfmark end + -30 35118 a 1814 +x FW(user)-56 b(,)p 0 TeXcolorgray 2935 36932 a +SDict begin H.S end + 2935 +36932 a FW(111)5026 36932 y +SDict begin 18.2 H.L end + 5026 36932 a 5026 36932 a +SDict begin [ /Subtype /Link /Dest (3088) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +5026 36932 a Black -30 37133 a +SDict begin H.S end + -30 37133 a -30 37133 +a +SDict begin 18.2 H.A end + -30 37133 a -30 37133 a +SDict begin [ /View [/XYZ H.V] /Dest (8139) cvn H.B /DEST pdfmark end + -30 37133 a 1814 x FW(users,)p +0 TeXcolorgray 3534 38947 a +SDict begin H.S end + 3534 38947 a FW(102)5625 +38947 y +SDict begin 18.2 H.L end + 5625 38947 a 5625 38947 a +SDict begin [ /Subtype /Link /Dest (2698) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5625 38947 a Black +-30 39149 a +SDict begin H.S end + -30 39149 a -30 39149 a +SDict begin 18.2 H.A end + -30 39149 a -30 39149 +a +SDict begin [ /View [/XYZ H.V] /Dest (8141) cvn H.B /DEST pdfmark end + -30 39149 a 1520 40962 a FW(adding,)p 0 TeXcolorgray +6014 40962 a +SDict begin H.S end + 6014 40962 a FW(143)8105 40962 y +SDict begin 18.2 H.L end + 8105 40962 +a 8105 40962 a +SDict begin [ /Subtype /Link /Dest (4056) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8105 40962 a Black -30 41264 a +SDict begin H.S end + -30 41264 +a -30 41264 a +SDict begin 18.2 H.A end + -30 41264 a -30 41264 a +SDict begin [ /View [/XYZ H.V] /Dest (8143) cvn H.B /DEST pdfmark end + -30 41264 a 1520 +42978 a FW(messaging,)p 0 TeXcolorgray 8106 42978 a +SDict begin H.S end + 8106 +42978 a FW(177)10197 42978 y +SDict begin 18.2 H.L end + 10197 42978 a 10197 42978 +a +SDict begin [ /Subtype /Link /Dest (4991) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10197 42978 a Black -30 43280 a +SDict begin H.S end + -30 43280 a -30 43280 +a +SDict begin 18.2 H.A end + -30 43280 a -30 43280 a +SDict begin [ /View [/XYZ H.V] /Dest (8145) cvn H.B /DEST pdfmark end + -30 43280 a 1520 44993 a FW(online)349 +b(chat,)p 0 TeXcolorgray 8376 44993 a +SDict begin H.S end + 8376 44993 a FW(177)10467 +44993 y +SDict begin 18.2 H.L end + 10467 44993 a 10467 44993 a +SDict begin [ /Subtype /Link /Dest (5008) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10467 44993 a Black +-30 45195 a +SDict begin H.S end + -30 45195 a -30 45195 a +SDict begin 18.2 H.A end + -30 45195 a -30 45195 +a +SDict begin [ /View [/XYZ H.V] /Dest (8147) cvn H.B /DEST pdfmark end + -30 45195 a 1520 47008 a FW(passw)-14 b(ords,)p 0 TeXcolorgray +8014 47008 a +SDict begin H.S end + 8014 47008 a FW(146)10105 47008 y +SDict begin 18.2 H.L end + 10105 +47008 a 10105 47008 a +SDict begin [ /Subtype /Link /Dest (4132) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10105 47008 a Black -30 47310 a +SDict begin H.S end + +-30 47310 a -30 47310 a +SDict begin 18.2 H.A end + -30 47310 a -30 47310 a +SDict begin [ /View [/XYZ H.V] /Dest (8149) cvn H.B /DEST pdfmark end + -30 47310 +a 1520 49024 a FW(querying,)p 0 TeXcolorgray 7176 49024 +a +SDict begin H.S end + 7176 49024 a FW(161)9267 49024 y +SDict begin 18.2 H.L end + 9267 49024 a 9267 +49024 a +SDict begin [ /Subtype /Link /Dest (4518) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9267 49024 a Black -30 49326 a +SDict begin H.S end + -30 49326 a -30 +49326 a +SDict begin 18.2 H.A end + -30 49326 a -30 49326 a +SDict begin [ /View [/XYZ H.V] /Dest (8151) cvn H.B /DEST pdfmark end + -30 49326 a 1520 51039 +a FW(remo)-21 b(ving,)p 0 TeXcolorgray 7542 51039 a +SDict begin H.S end + 7542 +51039 a FW(147)9633 51039 y +SDict begin 18.2 H.L end + 9633 51039 a 9633 51039 a +SDict begin [ /Subtype /Link /Dest (4144) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +9633 51039 a Black -30 51341 a +SDict begin H.S end + -30 51341 a -30 51341 +a +SDict begin 18.2 H.A end + -30 51341 a -30 51341 a +SDict begin [ /View [/XYZ H.V] /Dest (8153) cvn H.B /DEST pdfmark end + -30 51341 a 5825 x FL(V)-30 +58281 y +SDict begin H.S end + -30 58281 a -30 58281 a +SDict begin 18.2 H.A end + -30 58281 a -30 58281 +a +SDict begin [ /View [/XYZ H.V] /Dest (8156) cvn H.B /DEST pdfmark end + -30 58281 a 2016 x FW(vi,)p 0 TeXcolorgray 1753 60297 +a +SDict begin H.S end + 1753 60297 a FW(2)2450 60297 y +SDict begin 18.2 H.L end + 2450 60297 a 2450 60297 +a +SDict begin [ /Subtype /Link /Dest (335) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 2450 60297 a Black FW(,)p 0 TeXcolorgray 3147 60297 +a +SDict begin H.S end + 3147 60297 a FW(195)5238 60297 y +SDict begin 18.2 H.L end + 5238 60297 a 5238 +60297 a +SDict begin [ /Subtype /Link /Dest (5513) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5238 60297 a Black -30 60498 a +SDict begin H.S end + -30 60498 a -30 +60498 a +SDict begin 18.2 H.A end + -30 60498 a -30 60498 a +SDict begin [ /View [/XYZ H.V] /Dest (8159) cvn H.B /DEST pdfmark end + -30 60498 a 1520 62312 +a FW(con\002guration,)p 0 TeXcolorgray 9655 62312 a +SDict begin H.S end + 9655 +62312 a FW(202)11746 62312 y +SDict begin 18.2 H.L end + 11746 62312 a 11746 62312 +a +SDict begin [ /Subtype /Link /Dest (5743) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11746 62312 a Black -30 62614 a +SDict begin H.S end + -30 62614 a -30 62614 +a +SDict begin 18.2 H.A end + -30 62614 a -30 62614 a +SDict begin [ /View [/XYZ H.V] /Dest (8161) cvn H.B /DEST pdfmark end + -30 62614 a 1520 64327 a FW(modes,)p +0 TeXcolorgray 5859 64327 a +SDict begin H.S end + 5859 64327 a FW(197)7950 +64327 y +SDict begin 18.2 H.L end + 7950 64327 a 7950 64327 a +SDict begin [ /Subtype /Link /Dest (5585) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7950 64327 a Black +-30 64529 a +SDict begin H.S end + -30 64529 a -30 64529 a +SDict begin 18.2 H.A end + -30 64529 a -30 64529 +a +SDict begin [ /View [/XYZ H.V] /Dest (8163) cvn H.B /DEST pdfmark end + -30 64529 a 1520 66343 a FW(opening)350 b(\002les,)p +0 TeXcolorgray 9385 66343 a +SDict begin H.S end + 9385 66343 a FW(200)11476 +66343 y +SDict begin 18.2 H.L end + 11476 66343 a 11476 66343 a +SDict begin [ /Subtype /Link /Dest (5682) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11476 66343 a Black +-30 66645 a +SDict begin H.S end + -30 66645 a -30 66645 a +SDict begin 18.2 H.A end + -30 66645 a -30 66645 +a +SDict begin [ /View [/XYZ H.V] /Dest (8165) cvn H.B /DEST pdfmark end + -30 66645 a 1520 68358 a FW(quitting,)p 0 TeXcolorgray +6558 68358 a +SDict begin H.S end + 6558 68358 a FW(202)8649 68358 y +SDict begin 18.2 H.L end + 8649 68358 +a 8649 68358 a +SDict begin [ /Subtype /Link /Dest (5727) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 8649 68358 a Black Black Black 27866 2383 +a +SDict begin H.S end + 27866 2383 a 27866 2383 a +SDict begin 18.2 H.A end + 27866 2383 a 27866 2383 a +SDict begin [ /View [/XYZ H.V] /Dest (8167) cvn H.B /DEST pdfmark end + +27866 2383 a 29415 3490 a FW(sa)-28 b(ving)350 b(\002les,)p +0 TeXcolorgray 36400 3490 a +SDict begin H.S end + 36400 3490 a FW(201)38491 +3490 y +SDict begin 18.2 H.L end + 38491 3490 a 38491 3490 a +SDict begin [ /Subtype /Link /Dest (5706) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38491 3490 a Black 27866 +3792 a +SDict begin H.S end + 27866 3792 a 27866 3792 a +SDict begin 18.2 H.A end + 27866 3792 a 27866 3792 +a +SDict begin [ /View [/XYZ H.V] /Dest (8169) cvn H.B /DEST pdfmark end + 27866 3792 a 29415 5614 a FW(starting,)p 0 TeXcolorgray +34297 5614 a +SDict begin H.S end + 34297 5614 a FW(195)36388 5614 y +SDict begin 18.2 H.L end + 36388 5614 +a 36388 5614 a +SDict begin [ /Subtype /Link /Dest (5539) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36388 5614 a Black 27866 5916 a +SDict begin H.S end + 27866 +5916 a 27866 5916 a +SDict begin 18.2 H.A end + 27866 5916 a 27866 5916 a +SDict begin [ /View [/XYZ H.V] /Dest (8172) cvn H.B /DEST pdfmark end + 27866 5916 +a 1823 x FW(vim,)p 0 TeXcolorgray 30733 7739 a +SDict begin H.S end + 30733 +7739 a FW(195)32824 7739 y +SDict begin 18.2 H.L end + 32824 7739 a 32824 7739 a +SDict begin [ /Subtype /Link /Dest (5533) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + +32824 7739 a Black 27866 7940 a +SDict begin H.S end + 27866 7940 a 27866 7940 +a +SDict begin 18.2 H.A end + 27866 7940 a 27866 7940 a +SDict begin [ /View [/XYZ H.V] /Dest (8175) cvn H.B /DEST pdfmark end + 27866 7940 a 1923 x FW(virtual)f +(terminals,)p 0 TeXcolorgray 37745 9863 a +SDict begin H.S end + 37745 9863 +a FW(109)39836 9863 y +SDict begin 18.2 H.L end + 39836 9863 a 39836 9863 a +SDict begin [ /Subtype /Link /Dest (2985) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39836 +9863 a Black 27866 10064 a +SDict begin H.S end + 27866 10064 a 27866 10064 +a +SDict begin 18.2 H.A end + 27866 10064 a 27866 10064 a +SDict begin [ /View [/XYZ H.V] /Dest (8177) cvn H.B /DEST pdfmark end + 27866 10064 a 29415 11987 +a FW(X)g(W)-56 b(indo)-35 b(w)350 b(System,)p 0 TeXcolorgray +40637 11987 a +SDict begin H.S end + 40637 11987 a FW(109)42728 11987 y +SDict begin 18.2 H.L end + 42728 +11987 a 42728 11987 a +SDict begin [ /Subtype /Link /Dest (3000) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 42728 11987 a Black 27866 12289 +a +SDict begin H.S end + 27866 12289 a 27866 12289 a +SDict begin 18.2 H.A end + 27866 12289 a 27866 12289 +a +SDict begin [ /View [/XYZ H.V] /Dest (8180) cvn H.B /DEST pdfmark end + 27866 12289 a 1822 x FW(V)-180 b(olkdering,)350 b(P)-21 +b(atrick,)p 0 TeXcolorgray 39364 14111 a +SDict begin H.S end + 39364 14111 +a FW(2)40061 14111 y +SDict begin 18.2 H.L end + 40061 14111 a 40061 14111 a +SDict begin [ /Subtype /Link /Dest (340) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 40061 +14111 a Black 27866 14413 a +SDict begin H.S end + 27866 14413 a 27866 14413 +a +SDict begin 18.2 H.A end + 27866 14413 a 27866 14413 a +SDict begin [ /View [/XYZ H.V] /Dest (8182) cvn H.B /DEST pdfmark end + 27866 14413 a 6151 x FL(W)27866 +21680 y +SDict begin H.S end + 27866 21680 a 27866 21680 a +SDict begin 18.2 H.A end + 27866 21680 a 27866 +21680 a +SDict begin [ /View [/XYZ H.V] /Dest (8185) cvn H.B /DEST pdfmark end + 27866 21680 a 2124 x FW(web)349 b(bro)-35 b(wsers,)p +0 TeXcolorgray 36235 23804 a +SDict begin H.S end + 36235 23804 a FW(170)38326 +23804 y +SDict begin 18.2 H.L end + 38326 23804 a 38326 23804 a +SDict begin [ /Subtype /Link /Dest (4768) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38326 23804 a Black +27866 24006 a +SDict begin H.S end + 27866 24006 a 27866 24006 a +SDict begin 18.2 H.A end + 27866 24006 +a 27866 24006 a +SDict begin [ /View [/XYZ H.V] /Dest (8187) cvn H.B /DEST pdfmark end + 27866 24006 a 29415 25928 a FW(links,)p +0 TeXcolorgray 32825 25928 a +SDict begin H.S end + 32825 25928 a FW(172)34916 +25928 y +SDict begin 18.2 H.L end + 34916 25928 a 34916 25928 a +SDict begin [ /Subtype /Link /Dest (4815) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34916 25928 a Black +27866 26130 a +SDict begin H.S end + 27866 26130 a 27866 26130 a +SDict begin 18.2 H.A end + 27866 26130 +a 27866 26130 a +SDict begin [ /View [/XYZ H.V] /Dest (8189) cvn H.B /DEST pdfmark end + 27866 26130 a 29415 28052 a FW(lynx,)p +0 TeXcolorgray 32593 28052 a +SDict begin H.S end + 32593 28052 a FW(170)34684 +28052 y +SDict begin 18.2 H.L end + 34684 28052 a 34684 28052 a +SDict begin [ /Subtype /Link /Dest (4781) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34684 28052 a Black +27866 28354 a +SDict begin H.S end + 27866 28354 a 27866 28354 a +SDict begin 18.2 H.A end + 27866 28354 +a 27866 28354 a +SDict begin [ /View [/XYZ H.V] /Dest (8191) cvn H.B /DEST pdfmark end + 27866 28354 a 29415 30177 a FW(te)-21 +b(xt)349 b(mode,)p 0 TeXcolorgray 35632 30177 a +SDict begin H.S end + 35632 +30177 a FW(170)37723 30177 y +SDict begin 18.2 H.L end + 37723 30177 a 37723 30177 +a +SDict begin [ /Subtype /Link /Dest (4778) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37723 30177 a Black 27866 30378 a +SDict begin H.S end + 27866 30378 a 27866 +30378 a +SDict begin 18.2 H.A end + 27866 30378 a 27866 30378 a +SDict begin [ /View [/XYZ H.V] /Dest (8193) cvn H.B /DEST pdfmark end + 27866 30378 a 29415 +32301 a FW(wget,)p 0 TeXcolorgray 32824 32301 a +SDict begin H.S end + 32824 +32301 a FW(173)34915 32301 y +SDict begin 18.2 H.L end + 34915 32301 a 34915 32301 +a +SDict begin [ /Subtype /Link /Dest (4833) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34915 32301 a Black 27866 32603 a +SDict begin H.S end + 27866 32603 a 27866 +32603 a +SDict begin 18.2 H.A end + 27866 32603 a 27866 32603 a +SDict begin [ /View [/XYZ H.V] /Dest (8196) cvn H.B /DEST pdfmark end + 27866 32603 a 1822 +x FW(web)g(serv)-21 b(er)-56 b(,)p 0 TeXcolorgray 34566 +34425 a +SDict begin H.S end + 34566 34425 a FW(184)36657 34425 y +SDict begin 18.2 H.L end + 36657 34425 +a 36657 34425 a +SDict begin [ /Subtype /Link /Dest (5162) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36657 34425 a Black 27866 34626 a +SDict begin H.S end + 27866 +34626 a 27866 34626 a +SDict begin 18.2 H.A end + 27866 34626 a 27866 34626 a +SDict begin [ /View [/XYZ H.V] /Dest (8199) cvn H.B /DEST pdfmark end + 27866 +34626 a 1923 x FW(WEP)-155 b(,)p 0 TeXcolorgray 31352 +36549 a +SDict begin H.S end + 31352 36549 a FW(68)32746 36549 y +SDict begin 18.2 H.L end + 32746 36549 +a 32746 36549 a +SDict begin [ /Subtype /Link /Dest (2060) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32746 36549 a Black 27866 36751 a +SDict begin H.S end + 27866 +36751 a 27866 36751 a +SDict begin 18.2 H.A end + 27866 36751 a 27866 36751 a +SDict begin [ /View [/XYZ H.V] /Dest (8202) cvn H.B /DEST pdfmark end + 27866 +36751 a 1922 x FW(whatis,)p 0 TeXcolorgray 32205 38673 +a +SDict begin H.S end + 32205 38673 a FW(8)32902 38673 y +SDict begin 18.2 H.L end + 32902 38673 a 32902 +38673 a +SDict begin [ /Subtype /Link /Dest (447) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 32902 38673 a Black 27866 38875 a +SDict begin H.S end + 27866 38875 +a 27866 38875 a +SDict begin 18.2 H.A end + 27866 38875 a 27866 38875 a +SDict begin [ /View [/XYZ H.V] /Dest (8205) cvn H.B /DEST pdfmark end + 27866 38875 +a 1922 x FW(whereis,)p 0 TeXcolorgray 32901 40797 a +SDict begin H.S end + 32901 +40797 a FW(45)34295 40797 y +SDict begin 18.2 H.L end + 34295 40797 a 34295 40797 +a +SDict begin [ /Subtype /Link /Dest (1349) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34295 40797 a Black 27866 40999 a +SDict begin H.S end + 27866 40999 a 27866 +40999 a +SDict begin 18.2 H.A end + 27866 40999 a 27866 40999 a +SDict begin [ /View [/XYZ H.V] /Dest (8208) cvn H.B /DEST pdfmark end + 27866 40999 a 1923 +x FW(which,)p 0 TeXcolorgray 31972 42922 a +SDict begin H.S end + 31972 42922 +a FW(45)33366 42922 y +SDict begin 18.2 H.L end + 33366 42922 a 33366 42922 a +SDict begin [ /Subtype /Link /Dest (1331) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 33366 +42922 a Black 27866 43123 a +SDict begin H.S end + 27866 43123 a 27866 43123 +a +SDict begin 18.2 H.A end + 27866 43123 a 27866 43123 a +SDict begin [ /View [/XYZ H.V] /Dest (8211) cvn H.B /DEST pdfmark end + 27866 43123 a 1923 x FW(wildcard,)p +0 TeXcolorgray 33443 45046 a +SDict begin H.S end + 33443 45046 a FW(104)35534 +45046 y +SDict begin 18.2 H.L end + 35534 45046 a 35534 45046 a +SDict begin [ /Subtype /Link /Dest (2762) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 35534 45046 a Black +27866 45247 a +SDict begin H.S end + 27866 45247 a 27866 45247 a +SDict begin 18.2 H.A end + 27866 45247 +a 27866 45247 a +SDict begin [ /View [/XYZ H.V] /Dest (8214) cvn H.B /DEST pdfmark end + 27866 45247 a 1923 x FW(windo)-35 b(w)349 +b(manager)-56 b(,)p 0 TeXcolorgray 38117 47170 a +SDict begin H.S end + 38117 +47170 a FW(40)39511 47170 y +SDict begin 18.2 H.L end + 39511 47170 a 39511 47170 +a +SDict begin [ /Subtype /Link /Dest (1193) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39511 47170 a Black 1 w FW(,)p 0 TeXcolorgray 40209 +47170 a +SDict begin H.S end + 40209 47170 a FW(75)41603 47170 y +SDict begin 18.2 H.L end + 41603 47170 +a 41603 47170 a +SDict begin [ /Subtype /Link /Dest (2234) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 41603 47170 a Black 1 w FW(,)p 0 TeXcolorgray +42301 47170 a +SDict begin H.S end + 42301 47170 a FW(84)43695 47170 y +SDict begin 18.2 H.L end + 43695 +47170 a 43695 47170 a +SDict begin [ /Subtype /Link /Dest (2399) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 43695 47170 a Black 27866 47472 +a +SDict begin H.S end + 27866 47472 a 27866 47472 a +SDict begin 18.2 H.A end + 27866 47472 a 27866 47472 +a +SDict begin [ /View [/XYZ H.V] /Dest (8219) cvn H.B /DEST pdfmark end + 27866 47472 a 1822 x FW(W)g(indo)-35 b(ws,)p 0 TeXcolorgray +33818 49294 a +SDict begin H.S end + 33818 49294 a FW(3)34515 49294 y +SDict begin 18.2 H.L end + 34515 +49294 a 34515 49294 a +SDict begin [ /Subtype /Link /Dest (348) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 34515 49294 a Black 1 w FW(,)p +0 TeXcolorgray 35213 49294 a +SDict begin H.S end + 35213 49294 a FW(41)36607 +49294 y +SDict begin 18.2 H.L end + 36607 49294 a 36607 49294 a +SDict begin [ /Subtype /Link /Dest (1210) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36607 49294 a Black +1 w FW(,)p 0 TeXcolorgray 37305 49294 a +SDict begin H.S end + 37305 49294 a +FW(83)38699 49294 y +SDict begin 18.2 H.L end + 38699 49294 a 38699 49294 a +SDict begin [ /Subtype /Link /Dest (2385) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38699 +49294 a Black 1 w FW(,)p 0 TeXcolorgray 39397 49294 a +SDict begin H.S end + +39397 49294 a FW(94)40791 49294 y +SDict begin 18.2 H.L end + 40791 49294 a 40791 +49294 a +SDict begin [ /Subtype /Link /Dest (2574) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 40791 49294 a Black 1 w FW(,)p 0 TeXcolorgray +41490 49294 a +SDict begin H.S end + 41490 49294 a FW(225)43581 49294 y +SDict begin 18.2 H.L end + 43581 +49294 a 43581 49294 a +SDict begin [ /Subtype /Link /Dest (6654) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 43581 49294 a Black 27866 49496 +a +SDict begin H.S end + 27866 49496 a 27866 49496 a +SDict begin 18.2 H.A end + 27866 49496 a 27866 49496 +a +SDict begin [ /View [/XYZ H.V] /Dest (8226) cvn H.B /DEST pdfmark end + 27866 49496 a 1922 x FW(W)-56 b(indo)-35 b(ws)349 b(2000,)p +0 TeXcolorgray 36957 51418 a +SDict begin H.S end + 36957 51418 a FW(72)38351 +51418 y +SDict begin 18.2 H.L end + 38351 51418 a 38351 51418 a +SDict begin [ /Subtype /Link /Dest (2162) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38351 51418 a Black +27866 51620 a +SDict begin H.S end + 27866 51620 a 27866 51620 a +SDict begin 18.2 H.A end + 27866 51620 +a 27866 51620 a +SDict begin [ /View [/XYZ H.V] /Dest (8229) cvn H.B /DEST pdfmark end + 27866 51620 a 1922 x FW(W)-56 b(indo)-35 +b(ws)349 b(NT)-103 b(,)p 0 TeXcolorgray 35923 53542 a +SDict begin H.S end + +35923 53542 a FW(72)37317 53542 y +SDict begin 18.2 H.L end + 37317 53542 a 37317 +53542 a +SDict begin [ /Subtype /Link /Dest (2158) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37317 53542 a Black 1 w FW(,)p 0 TeXcolorgray +38015 53542 a +SDict begin H.S end + 38015 53542 a FW(98)39409 53542 y +SDict begin 18.2 H.L end + 39409 +53542 a 39409 53542 a +SDict begin [ /Subtype /Link /Dest (2635) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 39409 53542 a Black 27866 53744 +a +SDict begin H.S end + 27866 53744 a 27866 53744 a +SDict begin 18.2 H.A end + 27866 53744 a 27866 53744 +a +SDict begin [ /View [/XYZ H.V] /Dest (8233) cvn H.B /DEST pdfmark end + 27866 53744 a 1923 x FW(W)-56 b(indo)-35 b(ws)349 b(XP)-155 +b(,)p 0 TeXcolorgray 35795 55667 a +SDict begin H.S end + 35795 55667 a FW(72)37189 +55667 y +SDict begin 18.2 H.L end + 37189 55667 a 37189 55667 a +SDict begin [ /Subtype /Link /Dest (2160) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37189 55667 a Black +27866 55868 a +SDict begin H.S end + 27866 55868 a 27866 55868 a +SDict begin 18.2 H.A end + 27866 55868 +a 27866 55868 a +SDict begin [ /View [/XYZ H.V] /Dest (8236) cvn H.B /DEST pdfmark end + 27866 55868 a 1923 x FW(W)-56 b(inModems,)p +0 TeXcolorgray 35791 57791 a +SDict begin H.S end + 35791 57791 a FW(59)37185 +57791 y +SDict begin 18.2 H.L end + 37185 57791 a 37185 57791 a +SDict begin [ /Subtype /Link /Dest (1805) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 37185 57791 a Black +27866 57992 a +SDict begin H.S end + 27866 57992 a 27866 57992 a +SDict begin 18.2 H.A end + 27866 57992 +a 27866 57992 a +SDict begin [ /View [/XYZ H.V] /Dest (8239) cvn H.B /DEST pdfmark end + 27866 57992 a 1923 x FW(wireless)348 +b(netw)-14 b(orking)27866 60217 y +SDict begin H.S end + 27866 60217 a 27866 +60217 a +SDict begin 18.2 H.A end + 27866 60217 a 27866 60217 a +SDict begin [ /View [/XYZ H.V] /Dest (8240) cvn H.B /DEST pdfmark end + 27866 60217 a 29415 +62039 a FW(hardw)g(are,)p 0 TeXcolorgray 35287 62039 +a +SDict begin H.S end + 35287 62039 a FW(67)36681 62039 y +SDict begin 18.2 H.L end + 36681 62039 a 36681 +62039 a +SDict begin [ /Subtype /Link /Dest (2034) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 36681 62039 a Black 27866 62241 a +SDict begin H.S end + 27866 62241 +a 27866 62241 a +SDict begin 18.2 H.A end + 27866 62241 a 27866 62241 a +SDict begin [ /View [/XYZ H.V] /Dest (8243) cvn H.B /DEST pdfmark end + 27866 62241 +a 1922 x FW(wireless)348 b(netw)-14 b(orking,)p 0 TeXcolorgray +39821 64163 a +SDict begin H.S end + 39821 64163 a FW(67)41215 64163 y +SDict begin 18.2 H.L end + 41215 +64163 a 41215 64163 a +SDict begin [ /Subtype /Link /Dest (2020) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 41215 64163 a Black 27866 64465 +a +SDict begin H.S end + 27866 64465 a 27866 64465 a +SDict begin 18.2 H.A end + 27866 64465 a 27866 64465 +a +SDict begin [ /View [/XYZ H.V] /Dest (8245) cvn H.B /DEST pdfmark end + 27866 64465 a 29415 66287 a FW(con\002guration,)p 0 +TeXcolorgray 37551 66287 a +SDict begin H.S end + 37551 66287 a FW(68)38945 +66287 y +SDict begin 18.2 H.L end + 38945 66287 a 38945 66287 a +SDict begin [ /Subtype /Link /Dest (2045) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 38945 66287 a Black +27866 66589 a +SDict begin H.S end + 27866 66589 a 27866 66589 a +SDict begin 18.2 H.A end + 27866 66589 +a 27866 66589 a +SDict begin [ /View [/XYZ H.V] /Dest (8247) cvn H.B /DEST pdfmark end + 27866 66589 a Black 49451 73672 a FR(261)p +Black eop end +%%Page: 262 284 +TeXDict begin 262 283 bop -8000 -8000 a +SDict begin /product where{pop product(Distiller)search{pop pop pop +version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto +closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show +grestore}if}{pop}ifelse}{pop}ifelse}if end + -8000 -8000 a +Black 0 TeXcolorgray -30 -1358 a +SDict begin H.S end + -30 -1358 a 0 TeXcolorgray +0 TeXcolorgray -30 -1358 a +SDict begin H.R end + -30 -1358 a -30 -1358 a +SDict begin [ /View [/XYZ H.V] /Dest (page.262) cvn H.B /DEST pdfmark +end + -30 +-1358 a Black Black 5321 x FL(X)-30 5079 y +SDict begin H.S end + -30 5079 a +-30 5079 a +SDict begin 18.2 H.A end + -30 5079 a -30 5079 a +SDict begin [ /View [/XYZ H.V] /Dest (8250) cvn H.B /DEST pdfmark end + -30 5079 a 2015 x FW(X)349 +b(W)-56 b(indo)-35 b(w)349 b(System,)p 0 TeXcolorgray +11192 7094 a +SDict begin H.S end + 11192 7094 a FW(40)12586 7094 y +SDict begin 18.2 H.L end + 12586 7094 +a 12586 7094 a +SDict begin [ /Subtype /Link /Dest (1191) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12586 7094 a Black 1 w FW(,)p 0 TeXcolorgray +13285 7094 a +SDict begin H.S end + 13285 7094 a FW(48)14679 7094 y +SDict begin 18.2 H.L end + 14679 7094 +a 14679 7094 a +SDict begin [ /Subtype /Link /Dest (1462) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14679 7094 a Black FW(,)p 0 TeXcolorgray +15377 7094 a +SDict begin H.S end + 15377 7094 a FW(75)16771 7094 y +SDict begin 18.2 H.L end + 16771 7094 +a 16771 7094 a +SDict begin [ /Subtype /Link /Dest (2229) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 16771 7094 a Black FW(,)p 0 TeXcolorgray +17469 7094 a +SDict begin H.S end + 17469 7094 a FW(133)19560 7094 y +SDict begin 18.2 H.L end + 19560 7094 +a 19560 7094 a +SDict begin [ /Subtype /Link /Dest (3823) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 19560 7094 a Black 1520 9108 a FW(con\002guration,)p +0 TeXcolorgray 9655 9108 a +SDict begin H.S end + 9655 9108 a FW(75)11049 9108 +y +SDict begin 18.2 H.L end + 11049 9108 a 11049 9108 a +SDict begin [ /Subtype /Link /Dest (8255) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11049 9108 a Black -30 9410 +a +SDict begin H.S end + -30 9410 a -30 9410 a +SDict begin 18.2 H.A end + -30 9410 a -30 9410 a +SDict begin [ /View [/XYZ H.V] /Dest (8257) cvn H.B /DEST pdfmark end + -30 9410 +a 1520 11123 a FW(login)g(manager)-56 b(,)p 0 TeXcolorgray +10180 11123 a +SDict begin H.S end + 10180 11123 a FW(85)11574 11123 y +SDict begin 18.2 H.L end + 11574 +11123 a 11574 11123 a +SDict begin [ /Subtype /Link /Dest (2421) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11574 11123 a Black -30 11425 a +SDict begin H.S end + +-30 11425 a -30 11425 a +SDict begin 18.2 H.A end + -30 11425 a -30 11425 a +SDict begin [ /View [/XYZ H.V] /Dest (8259) cvn H.B /DEST pdfmark end + -30 11425 +a 1520 13138 a FW(monitor)350 b(con\002guration,)p 0 +TeXcolorgray 14421 13138 a +SDict begin H.S end + 14421 13138 a FW(79)15815 +13138 y +SDict begin 18.2 H.L end + 15815 13138 a 15815 13138 a +SDict begin [ /Subtype /Link /Dest (2302) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 15815 13138 a Black +-30 13440 a +SDict begin H.S end + -30 13440 a -30 13440 a +SDict begin 18.2 H.A end + -30 13440 a -30 13440 +a +SDict begin [ /View [/XYZ H.V] /Dest (8261) cvn H.B /DEST pdfmark end + -30 13440 a 1520 15152 a FW(remote)g(clients,)p 0 TeXcolorgray +10081 15152 a +SDict begin H.S end + 10081 15152 a FW(162)12172 15152 y +SDict begin 18.2 H.L end + 12172 +15152 a 12172 15152 a +SDict begin [ /Subtype /Link /Dest (4573) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 12172 15152 a Black -30 15354 a +SDict begin H.S end + +-30 15354 a -30 15354 a +SDict begin 18.2 H.A end + -30 15354 a -30 15354 a +SDict begin [ /View [/XYZ H.V] /Dest (8263) cvn H.B /DEST pdfmark end + -30 15354 +a 1520 17167 a FW(resolution,)p 0 TeXcolorgray 7796 17167 +a +SDict begin H.S end + 7796 17167 a FW(80)9190 17167 y +SDict begin 18.2 H.L end + 9190 17167 a 9190 17167 +a +SDict begin [ /Subtype /Link /Dest (2321) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 9190 17167 a Black -30 17369 a +SDict begin H.S end + -30 17369 a -30 17369 +a +SDict begin 18.2 H.A end + -30 17369 a -30 17369 a +SDict begin [ /View [/XYZ H.V] /Dest (8265) cvn H.B /DEST pdfmark end + -30 17369 a 1520 19182 a FW(serv)-21 +b(er)-56 b(,)p 0 TeXcolorgray 5548 19182 a +SDict begin H.S end + 5548 19182 +a FW(75)6942 19182 y +SDict begin 18.2 H.L end + 6942 19182 a 6942 19182 a +SDict begin [ /Subtype /Link /Dest (2236) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 6942 19182 +a Black -30 19383 a +SDict begin H.S end + -30 19383 a -30 19383 a +SDict begin 18.2 H.A end + -30 19383 +a -30 19383 a +SDict begin [ /View [/XYZ H.V] /Dest (8267) cvn H.B /DEST pdfmark end + -30 19383 a 1520 21196 a FW(starting,)p +0 TeXcolorgray 6401 21196 a +SDict begin H.S end + 6401 21196 a FW(81)7795 21196 +y +SDict begin 18.2 H.L end + 7795 21196 a 7795 21196 a +SDict begin [ /Subtype /Link /Dest (2344) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7795 21196 a Black -30 21498 +a +SDict begin H.S end + -30 21498 a -30 21498 a +SDict begin 18.2 H.A end + -30 21498 a -30 21498 a +SDict begin [ /View [/XYZ H.V] /Dest (8269) cvn H.B /DEST pdfmark end + -30 +21498 a 1520 23211 a FW(virtual)349 b(terminals,)p 0 +TeXcolorgray 11399 23211 a +SDict begin H.S end + 11399 23211 a FW(109)13490 +23211 y +SDict begin 18.2 H.L end + 13490 23211 a 13490 23211 a +SDict begin [ /Subtype /Link /Dest (3003) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 13490 23211 a Black +-30 23413 a +SDict begin H.S end + -30 23413 a -30 23413 a +SDict begin 18.2 H.A end + -30 23413 a -30 23413 +a +SDict begin [ /View [/XYZ H.V] /Dest (8272) cvn H.B /DEST pdfmark end + -30 23413 a 1813 x FW(xdm,)p 0 TeXcolorgray 3147 25226 +a +SDict begin H.S end + 3147 25226 a FW(85)4541 25226 y +SDict begin 18.2 H.L end + 4541 25226 a 4541 25226 +a +SDict begin [ /Subtype /Link /Dest (2424) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4541 25226 a Black -30 25427 a +SDict begin H.S end + -30 25427 a -30 25427 +a +SDict begin 18.2 H.A end + -30 25427 a -30 25427 a +SDict begin [ /View [/XYZ H.V] /Dest (8275) cvn H.B /DEST pdfmark end + -30 25427 a 1813 x FW(XEmacs,)p +0 TeXcolorgray 5393 27240 a +SDict begin H.S end + 5393 27240 a FW(205)7484 +27240 y +SDict begin 18.2 H.L end + 7484 27240 a 7484 27240 a +SDict begin [ /Subtype /Link /Dest (5958) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7484 27240 a Black +-30 27442 a +SDict begin H.S end + -30 27442 a -30 27442 a +SDict begin 18.2 H.A end + -30 27442 a -30 27442 +a +SDict begin [ /View [/XYZ H.V] /Dest (8278) cvn H.B /DEST pdfmark end + -30 27442 a 1813 x FW(Xor)-25 b(g,)p 0 TeXcolorgray +3509 29255 a +SDict begin H.S end + 3509 29255 a FW(75)4903 29255 y +SDict begin 18.2 H.L end + 4903 29255 +a 4903 29255 a +SDict begin [ /Subtype /Link /Dest (2231) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4903 29255 a Black -30 29557 a +SDict begin H.S end + -30 29557 +a -30 29557 a +SDict begin 18.2 H.A end + -30 29557 a -30 29557 a +SDict begin [ /View [/XYZ H.V] /Dest (8281) cvn H.B /DEST pdfmark end + -30 29557 a 1713 +x FW(xterm,)p 0 TeXcolorgray 3921 31270 a +SDict begin H.S end + 3921 31270 +a FW(82)5315 31270 y +SDict begin 18.2 H.L end + 5315 31270 a 5315 31270 a +SDict begin [ /Subtype /Link /Dest (2359) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 5315 31270 +a Black -30 31471 a +SDict begin H.S end + -30 31471 a -30 31471 a +SDict begin 18.2 H.A end + -30 31471 +a -30 31471 a +SDict begin [ /View [/XYZ H.V] /Dest (8283) cvn H.B /DEST pdfmark end + -30 31471 a 5923 x FL(Z)-30 38510 y +SDict begin H.S end + -30 +38510 a -30 38510 a +SDict begin 18.2 H.A end + -30 38510 a -30 38510 a +SDict begin [ /View [/XYZ H.V] /Dest (8286) cvn H.B /DEST pdfmark end + -30 38510 +a 2015 x FW(zip,)p 0 TeXcolorgray 2372 40525 a +SDict begin H.S end + 2372 40525 +a FW(193)4463 40525 y +SDict begin 18.2 H.L end + 4463 40525 a 4463 40525 a +SDict begin [ /Subtype /Link /Dest (5486) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 4463 +40525 a Black 1 w FW(,)p 0 TeXcolorgray 5161 40525 a +SDict begin H.S end + +5161 40525 a FW(225)7252 40525 y +SDict begin 18.2 H.L end + 7252 40525 a 7252 40525 +a +SDict begin [ /Subtype /Link /Dest (6659) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7252 40525 a Black 2 w FW(,)p 0 TeXcolorgray 7951 40525 +a +SDict begin H.S end + 7951 40525 a FW(227)10042 40525 y +SDict begin 18.2 H.L end + 10042 40525 a 10042 +40525 a +SDict begin [ /Subtype /Link /Dest (6697) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 10042 40525 a Black -30 40827 a +SDict begin H.S end + -30 40827 a -30 +40827 a +SDict begin 18.2 H.A end + -30 40827 a -30 40827 a +SDict begin [ /View [/XYZ H.V] /Dest (8291) cvn H.B /DEST pdfmark end + -30 40827 a 1712 x FW(ZipSlack,)p +0 TeXcolorgray 5704 42539 a +SDict begin H.S end + 5704 42539 a FW(225)7795 +42539 y +SDict begin 18.2 H.L end + 7795 42539 a 7795 42539 a +SDict begin [ /Subtype /Link /Dest (6652) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 7795 42539 a Black +-30 42841 a +SDict begin H.S end + -30 42841 a -30 42841 a +SDict begin 18.2 H.A end + -30 42841 a -30 42841 +a +SDict begin [ /View [/XYZ H.V] /Dest (8294) cvn H.B /DEST pdfmark end + -30 42841 a 1713 x FW(zombie)350 b(process,)p 0 TeXcolorgray +9305 44554 a +SDict begin H.S end + 9305 44554 a FW(138)11396 44554 y +SDict begin 18.2 H.L end + 11396 +44554 a 11396 44554 a +SDict begin [ /Subtype /Link /Dest (3932) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 11396 44554 a Black 1 w FW(,)p +0 TeXcolorgray 12095 44554 a +SDict begin H.S end + 12095 44554 a FW(142)14186 +44554 y +SDict begin 18.2 H.L end + 14186 44554 a 14186 44554 a +SDict begin [ /Subtype /Link /Dest (4039) cvn /H /I /Border [0 0 0] +/Color [1 0 0] H.B /ANN pdfmark end + 14186 44554 a Black +Black Black Black -30 73672 a FR(262)p Black eop end +%%Trailer + +userdict /end-hook known{end-hook}if +%%EOF diff --git a/slackware64/a/install-packages b/slackware64/a/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/a/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/a/install.end b/slackware64/a/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/a/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/a/maketag b/slackware64/a/maketag new file mode 100644 index 000000000..8303cae05 --- /dev/null +++ b/slackware64/a/maketag @@ -0,0 +1,130 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES A (BASE LINUX SYSTEM)" \ + --checklist "Please confirm the packages you wish to install \ +from series A. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any packages don't want installed. You are \ +cautioned against unselecting REQUIRED packages. However, it's your \ +system. :^) Press ENTER when you are done." 21 76 10 \ +"aaa_base" "Basic filesystem, shell, and utils - REQUIRED" "on" \ +"aaa_elflibs" "Various ELF libraries -- REQUIRED" "on" \ +"aaa_terminfo" "A subset of the terminfo database from ncurses" "on" \ +"acl" "POSIX Access Control List tools -- REQUIRED" "on" \ +"acpid" "ACPI Power Management daemon" "on" \ +"apmd" "APM Power Management daemon" "on" \ +"attr" "Tools for fs extended attributes -- REQUIRED" "on" \ +"bash" "GNU bash shell - REQUIRED" "on" \ +"bin" "Various system utilities - REQUIRED" "on" \ +"bzip2" "bzip2 compression utility" "on" \ +"coreutils" "The core GNU command-line utilities - REQUIRED" "on" \ +"cpio" "The GNU cpio backup/archiving utility" "on" \ +"cryptsetup" "Utilities for encrypting partitions" "on" \ +"cups" "CUPS - printer spooling system" "on" \ +"cxxlibs" "C++ shared libraries - REQUIRED" "on" \ +"dbus" "Message bus daemon" "on" \ +"dcron" "Cron daemon - REQUIRED" "on" \ +"device-mapper" "The device-mapper is used with LVM" "on" \ +"devs" "Device files found in /dev - REQUIRED" "on" \ +"dialog" "The program that generates these menus :-)" "on" \ +"dosfstools" "Tools for working with FAT filesystems" "on" \ +"e2fsprogs" "Utilities for ext2/ext3 filesystems - REQUIRED" "on" \ +"ed" "A clone of the old, original UN*X line editor" "on" \ +"eject" "A tool for ejecting removable media" "on" \ +"elvis" "elvis text editor (vi clone) - REQUIRED" "on" \ +"etc" "System config files & utilities - REQUIRED" "on" \ +"file" "Determines what file format data is in" "on" \ +"findutils" "GNU file finding utilities" "on" \ +"floppy" "Utilities for using DOS floppies" "on" \ +"gawk" "GNU awk pattern scanning language" "on" \ +"genpower" "UPS monitoring daemon" "on" \ +"gettext" "Programs used to internationalize scripts" "on" \ +"getty-ps" "Getty_ps serial login support - OPTIONAL" "on" \ +"glibc-solibs" "Runtime glibc support libraries" "on" \ +"glibc-zoneinfo" "Configures your time zone" "on" \ +"gpm" "Cut and paste text with your mouse" "on" \ +"grep" "GNU grep searching tool - REQUIRED" "on" \ +"gzip" "GNU zip compression utility - REQUIRED" "on" \ +"hdparm" "Get/Set IDE hard drive parameters" "on" \ +"infozip" "zip/unzip archive utilities" "on" \ +"inotify-tools" "Command-line tools for using inotify." "on" \ +"jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \ +"kbd" "Change keyboard and console mappings" "on" \ +"kernel-firmware" "Linux 2.6.29.6 kernel firmware -- REQUIRED" "on" \ +"kernel-generic" "Generic 2.6.29.6 kernel (needs an initrd)" "on" \ +"kernel-huge" "Loaded 2.6.29.6 Linux kernel" "on" \ +"kernel-modules" "Linux 2.6.29.6 kernel modules -- REQUIRED" "on" \ +"less" "A text pager utility - REQUIRED" "on" \ +"lha" "LHA archive utility" "on" \ +"lilo" "Boot loader for Linux, DOS, OS/2, etc." "on" \ +"logrotate" "System log rotation utility" "on" \ +"lvm2" "Tools for creating logical volumes" "on" \ +"mdadm" "Utilities for managing MD (RAID) devices" "on" \ +"minicom" "Serial transfer and modem comm package" "on" \ +"mkinitrd" "Tool for building an initial ramdisk" "on" \ +"module-init-tools" "Kernel module utilities -- REQUIRED" "on" \ +"mt-st" "mt ported from BSD - controls tape drive" "on" \ +"mtx" "Controls tape autochangers" "on" \ +"ncompress" "The historic compress utility" "on" \ +"ntfs-3g" "FUSE-based NTFS read-write mount program" "on" \ +"openssl-solibs" "OpenSSL shared libraries -- REQUIRED" "on" \ +"patch" "Applies a diff file to an original file" "on" \ +"pciutils" "Linux PCI utilities" "on" \ +"pcmciautils" "PCMCIA card services for 2.6.x+ kernels" "on" \ +"pkgtools" "Slackware package management tools - REQUIRED" "on" \ +"procps" "Displays process info - REQUIRED" "on" \ +"quota" "User disk quota utilities" "on" \ +"reiserfsprogs" "Tools for the ReiserFS journaling filesystem" "on" \ +"rpm2tgz" "A simple script to convert an RPM to a tgz" "on" \ +"sdparm" "Get/Set SCSI hard drive parameters" "on" \ +"sed" "GNU stream editor -- REQUIRED" "on" \ +"shadow" "Shadow password suite -- REQUIRED" "on" \ +"sharutils" "GNU shell archive utilities - REQUIRED" "on" \ +"slocate" "Locates files on the system" "on" \ +"smartmontools" "Hard drive monitoring utilities" "on" \ +"splitvt" "Split a screen into sections (use screen ;-)" "on" \ +"sysfsutils" "Utilities for the sysfs filesystem" "on" \ +"sysklogd" "Logs system and kernel messages" "on" \ +"syslinux" "Loader for making Linux boot floppies" "on" \ +"sysvinit" "System V-like INIT programs - REQUIRED" "on" \ +"sysvinit-functions" "Init functions used by some third-party apps" "on" \ +"sysvinit-scripts" "The startup scripts for Slackware - REQUIRED" "on" \ +"tar" "GNU tar archive utility -- REQUIRED" "on" \ +"tcsh" "Extended C shell /bin/tcsh" "on" \ +"time" "Times how long a process takes to run" "on" \ +"tree" "Display a directory in tree form" "on" \ +"udev" "System for managing /dev in 2.6 - RECOMMENDED" "on" \ +"unarj" "Extract ARJ archives" "on" \ +"usbutils" "Linux USB utilities" "on" \ +"utempter" "Library used for writing to utmp/wtmp" "on" \ +"util-linux-ng" "Util-linux utilities - REQUIRED" "on" \ +"which" "Locate an executable in your $PATH" "on" \ +"xfsprogs" "Utilities for SGI's XFS filesystem" "on" \ +"xz" "xz (LZMA) compression utility - REQUIRED" "on" \ +"zoo" "Zoo archive utility" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +aaa_base aaa_elflibs aaa_terminfo acl acpid apmd attr bash bin bzip2 coreutils cpio cryptsetup cups cxxlibs dbus dcron device-mapper devs dialog dosfstools e2fsprogs ed eject elvis etc file findutils floppy gawk genpower gettext getty-ps glibc-solibs glibc-zoneinfo gpm grep gzip hdparm infozip inotify-tools jfsutils kbd kernel-firmware kernel-generic kernel-huge kernel-modules less lha lilo logrotate lvm2 mdadm minicom mkinitrd module-init-tools mt-st mtx ncompress ntfs-3g openssl-solibs patch pciutils pcmciautils pkgtools procps quota reiserfsprogs rpm2tgz sdparm sed shadow sharutils slocate smartmontools splitvt sysfsutils sysklogd syslinux sysvinit sysvinit-functions sysvinit-scripts tar tcsh time tree udev unarj usbutils utempter util-linux-ng which xfsprogs xz zoo \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +aaa_base aaa_elflibs aaa_terminfo acl acpid apmd attr bash bin bzip2 coreutils cpio cryptsetup cups cxxlibs dbus dcron device-mapper devs dialog dosfstools e2fsprogs ed eject elvis etc file findutils floppy gawk genpower gettext getty-ps glibc-solibs glibc-zoneinfo gpm grep gzip hdparm infozip inotify-tools jfsutils kbd kernel-firmware kernel-generic kernel-huge kernel-modules less lha lilo logrotate lvm2 mdadm minicom mkinitrd module-init-tools mt-st mtx ncompress ntfs-3g openssl-solibs patch pciutils pcmciautils pkgtools procps quota reiserfsprogs rpm2tgz sdparm sed shadow sharutils slocate smartmontools splitvt sysfsutils sysklogd syslinux sysvinit sysvinit-functions sysvinit-scripts tar tcsh time tree udev unarj usbutils utempter util-linux-ng which xfsprogs xz zoo \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/a/maketag.ez b/slackware64/a/maketag.ez new file mode 100644 index 000000000..8303cae05 --- /dev/null +++ b/slackware64/a/maketag.ez @@ -0,0 +1,130 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES A (BASE LINUX SYSTEM)" \ + --checklist "Please confirm the packages you wish to install \ +from series A. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any packages don't want installed. You are \ +cautioned against unselecting REQUIRED packages. However, it's your \ +system. :^) Press ENTER when you are done." 21 76 10 \ +"aaa_base" "Basic filesystem, shell, and utils - REQUIRED" "on" \ +"aaa_elflibs" "Various ELF libraries -- REQUIRED" "on" \ +"aaa_terminfo" "A subset of the terminfo database from ncurses" "on" \ +"acl" "POSIX Access Control List tools -- REQUIRED" "on" \ +"acpid" "ACPI Power Management daemon" "on" \ +"apmd" "APM Power Management daemon" "on" \ +"attr" "Tools for fs extended attributes -- REQUIRED" "on" \ +"bash" "GNU bash shell - REQUIRED" "on" \ +"bin" "Various system utilities - REQUIRED" "on" \ +"bzip2" "bzip2 compression utility" "on" \ +"coreutils" "The core GNU command-line utilities - REQUIRED" "on" \ +"cpio" "The GNU cpio backup/archiving utility" "on" \ +"cryptsetup" "Utilities for encrypting partitions" "on" \ +"cups" "CUPS - printer spooling system" "on" \ +"cxxlibs" "C++ shared libraries - REQUIRED" "on" \ +"dbus" "Message bus daemon" "on" \ +"dcron" "Cron daemon - REQUIRED" "on" \ +"device-mapper" "The device-mapper is used with LVM" "on" \ +"devs" "Device files found in /dev - REQUIRED" "on" \ +"dialog" "The program that generates these menus :-)" "on" \ +"dosfstools" "Tools for working with FAT filesystems" "on" \ +"e2fsprogs" "Utilities for ext2/ext3 filesystems - REQUIRED" "on" \ +"ed" "A clone of the old, original UN*X line editor" "on" \ +"eject" "A tool for ejecting removable media" "on" \ +"elvis" "elvis text editor (vi clone) - REQUIRED" "on" \ +"etc" "System config files & utilities - REQUIRED" "on" \ +"file" "Determines what file format data is in" "on" \ +"findutils" "GNU file finding utilities" "on" \ +"floppy" "Utilities for using DOS floppies" "on" \ +"gawk" "GNU awk pattern scanning language" "on" \ +"genpower" "UPS monitoring daemon" "on" \ +"gettext" "Programs used to internationalize scripts" "on" \ +"getty-ps" "Getty_ps serial login support - OPTIONAL" "on" \ +"glibc-solibs" "Runtime glibc support libraries" "on" \ +"glibc-zoneinfo" "Configures your time zone" "on" \ +"gpm" "Cut and paste text with your mouse" "on" \ +"grep" "GNU grep searching tool - REQUIRED" "on" \ +"gzip" "GNU zip compression utility - REQUIRED" "on" \ +"hdparm" "Get/Set IDE hard drive parameters" "on" \ +"infozip" "zip/unzip archive utilities" "on" \ +"inotify-tools" "Command-line tools for using inotify." "on" \ +"jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \ +"kbd" "Change keyboard and console mappings" "on" \ +"kernel-firmware" "Linux 2.6.29.6 kernel firmware -- REQUIRED" "on" \ +"kernel-generic" "Generic 2.6.29.6 kernel (needs an initrd)" "on" \ +"kernel-huge" "Loaded 2.6.29.6 Linux kernel" "on" \ +"kernel-modules" "Linux 2.6.29.6 kernel modules -- REQUIRED" "on" \ +"less" "A text pager utility - REQUIRED" "on" \ +"lha" "LHA archive utility" "on" \ +"lilo" "Boot loader for Linux, DOS, OS/2, etc." "on" \ +"logrotate" "System log rotation utility" "on" \ +"lvm2" "Tools for creating logical volumes" "on" \ +"mdadm" "Utilities for managing MD (RAID) devices" "on" \ +"minicom" "Serial transfer and modem comm package" "on" \ +"mkinitrd" "Tool for building an initial ramdisk" "on" \ +"module-init-tools" "Kernel module utilities -- REQUIRED" "on" \ +"mt-st" "mt ported from BSD - controls tape drive" "on" \ +"mtx" "Controls tape autochangers" "on" \ +"ncompress" "The historic compress utility" "on" \ +"ntfs-3g" "FUSE-based NTFS read-write mount program" "on" \ +"openssl-solibs" "OpenSSL shared libraries -- REQUIRED" "on" \ +"patch" "Applies a diff file to an original file" "on" \ +"pciutils" "Linux PCI utilities" "on" \ +"pcmciautils" "PCMCIA card services for 2.6.x+ kernels" "on" \ +"pkgtools" "Slackware package management tools - REQUIRED" "on" \ +"procps" "Displays process info - REQUIRED" "on" \ +"quota" "User disk quota utilities" "on" \ +"reiserfsprogs" "Tools for the ReiserFS journaling filesystem" "on" \ +"rpm2tgz" "A simple script to convert an RPM to a tgz" "on" \ +"sdparm" "Get/Set SCSI hard drive parameters" "on" \ +"sed" "GNU stream editor -- REQUIRED" "on" \ +"shadow" "Shadow password suite -- REQUIRED" "on" \ +"sharutils" "GNU shell archive utilities - REQUIRED" "on" \ +"slocate" "Locates files on the system" "on" \ +"smartmontools" "Hard drive monitoring utilities" "on" \ +"splitvt" "Split a screen into sections (use screen ;-)" "on" \ +"sysfsutils" "Utilities for the sysfs filesystem" "on" \ +"sysklogd" "Logs system and kernel messages" "on" \ +"syslinux" "Loader for making Linux boot floppies" "on" \ +"sysvinit" "System V-like INIT programs - REQUIRED" "on" \ +"sysvinit-functions" "Init functions used by some third-party apps" "on" \ +"sysvinit-scripts" "The startup scripts for Slackware - REQUIRED" "on" \ +"tar" "GNU tar archive utility -- REQUIRED" "on" \ +"tcsh" "Extended C shell /bin/tcsh" "on" \ +"time" "Times how long a process takes to run" "on" \ +"tree" "Display a directory in tree form" "on" \ +"udev" "System for managing /dev in 2.6 - RECOMMENDED" "on" \ +"unarj" "Extract ARJ archives" "on" \ +"usbutils" "Linux USB utilities" "on" \ +"utempter" "Library used for writing to utmp/wtmp" "on" \ +"util-linux-ng" "Util-linux utilities - REQUIRED" "on" \ +"which" "Locate an executable in your $PATH" "on" \ +"xfsprogs" "Utilities for SGI's XFS filesystem" "on" \ +"xz" "xz (LZMA) compression utility - REQUIRED" "on" \ +"zoo" "Zoo archive utility" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +aaa_base aaa_elflibs aaa_terminfo acl acpid apmd attr bash bin bzip2 coreutils cpio cryptsetup cups cxxlibs dbus dcron device-mapper devs dialog dosfstools e2fsprogs ed eject elvis etc file findutils floppy gawk genpower gettext getty-ps glibc-solibs glibc-zoneinfo gpm grep gzip hdparm infozip inotify-tools jfsutils kbd kernel-firmware kernel-generic kernel-huge kernel-modules less lha lilo logrotate lvm2 mdadm minicom mkinitrd module-init-tools mt-st mtx ncompress ntfs-3g openssl-solibs patch pciutils pcmciautils pkgtools procps quota reiserfsprogs rpm2tgz sdparm sed shadow sharutils slocate smartmontools splitvt sysfsutils sysklogd syslinux sysvinit sysvinit-functions sysvinit-scripts tar tcsh time tree udev unarj usbutils utempter util-linux-ng which xfsprogs xz zoo \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +aaa_base aaa_elflibs aaa_terminfo acl acpid apmd attr bash bin bzip2 coreutils cpio cryptsetup cups cxxlibs dbus dcron device-mapper devs dialog dosfstools e2fsprogs ed eject elvis etc file findutils floppy gawk genpower gettext getty-ps glibc-solibs glibc-zoneinfo gpm grep gzip hdparm infozip inotify-tools jfsutils kbd kernel-firmware kernel-generic kernel-huge kernel-modules less lha lilo logrotate lvm2 mdadm minicom mkinitrd module-init-tools mt-st mtx ncompress ntfs-3g openssl-solibs patch pciutils pcmciautils pkgtools procps quota reiserfsprogs rpm2tgz sdparm sed shadow sharutils slocate smartmontools splitvt sysfsutils sysklogd syslinux sysvinit sysvinit-functions sysvinit-scripts tar tcsh time tree udev unarj usbutils utempter util-linux-ng which xfsprogs xz zoo \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/a/tagfile b/slackware64/a/tagfile new file mode 100644 index 000000000..392da1947 --- /dev/null +++ b/slackware64/a/tagfile @@ -0,0 +1,95 @@ +aaa_base:ADD +aaa_elflibs:ADD +aaa_terminfo:REC +acl:ADD +acpid:REC +apmd:REC +attr:ADD +bash:ADD +bin:ADD +bzip2:ADD +coreutils:ADD +cpio:ADD +cryptsetup:OPT +cups:REC +cxxlibs:ADD +dbus:REC +dcron:ADD +device-mapper:REC +devs:ADD +dialog:REC +dosfstools:REC +e2fsprogs:ADD +ed:REC +eject:REC +elvis:ADD +etc:ADD +file:REC +findutils:ADD +floppy:ADD +gawk:ADD +genpower:OPT +gettext:REC +getty-ps:OPT +glibc-solibs:ADD +glibc-zoneinfo:ADD +gpm:REC +grep:ADD +gzip:ADD +hdparm:ADD +infozip:ADD +inotify-tools:REC +jfsutils:OPT +kbd:REC +kernel-firmware:ADD +kernel-generic:REC +kernel-huge:ADD +kernel-modules:ADD +less:ADD +lha:REC +lilo:ADD +logrotate:ADD +lvm2:REC +mdadm:OPT +minicom:REC +mkinitrd:REC +module-init-tools:ADD +mt-st:OPT +mtx:REC +ncompress:REC +ntfs-3g:OPT +openssl-solibs:ADD +patch:REC +pciutils:REC +pcmciautils:REC +pkgtools:ADD +procps:ADD +quota:OPT +reiserfsprogs:ADD +rpm2tgz:REC +sdparm:ADD +sed:ADD +shadow:ADD +sharutils:ADD +slocate:ADD +smartmontools:ADD +splitvt:REC +sysfsutils:REC +sysklogd:ADD +syslinux:ADD +sysvinit:ADD +sysvinit-functions:OPT +sysvinit-scripts:ADD +tar:ADD +tcsh:REC +time:REC +tree:REC +udev:ADD +unarj:REC +usbutils:ADD +utempter:REC +util-linux-ng:ADD +which:REC +xfsprogs:OPT +xz:ADD +zoo:REC diff --git a/slackware64/ap/install-packages b/slackware64/ap/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/ap/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/ap/install.end b/slackware64/ap/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/ap/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/ap/maketag b/slackware64/ap/maketag new file mode 100644 index 000000000..f6a5c26d0 --- /dev/null +++ b/slackware64/ap/maketag @@ -0,0 +1,103 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES AP (APPLICATIONS)" \ + --checklist "Please confirm the packages you wish to install \ +from series AP. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are \ +done." 22 72 12 \ +"a2ps" "Any to .ps filter (required by APSfilter)" "on" \ +"acct" "Process accounting utilities" "on" \ +"alsa-utils" "ALSA sound utilities" "on" \ +"amp" "A command-line MP3 player" "on" \ +"ash" "A small /bin/sh type shell" "on" \ +"at" "Schedule commands to execute at a later time" "on" \ +"aumix" "Audio mixer for the console or X" "on" \ +"bc" "GNU bc - arbitrary precision math language" "on" \ +"bpe" "Binary Patch (file) Editor" "on" \ +"cdparanoia" "Cdparanoia CD audio ripper" "on" \ +"cdrdao" "Tool for burning audio CDRs" "on" \ +"cdrtools" "CD-R/RW mastering/burning tools" "on" \ +"cupsddk" "CUPS Driver Development Kit" "on" \ +"dc3dd" "Enhanced dd for computer forensics" "on" \ +"diffstat" "Generate diff statistics" "on" \ +"diffutils" "GNU diffutils - find file differences" "on" \ +"dmapi" "Data Management API library for xfsdump" "on" \ +"dmidecode" "DMI table decoder (displays hardware info)" "on" \ +"dvd+rw-tools" "DVD+/-R/RW mastering/burning tools" "on" \ +"enscript" "A text to PostScript utility" "on" \ +"flac" "Free Lossless Audio Codec" "on" \ +"foomatic-filters" "Print filter for gutenprint and hplip" "on" \ +"ghostscript" "GPL Ghostscript PS/PDF interpreter" "on" \ +"ghostscript-fonts-std" "Ghostscript Type1 fonts" "on" \ +"gphoto2" "A command-line camera client for libgphoto2" "on" \ +"groff" "GNU groff document formatting system" "on" \ +"gutenprint" "Additional printer drivers for gs and CUPS" "on" \ +"hplip" "HP printing and scanning software" "on" \ +"ispell" "The International version of ispell" "on" \ +"jed" "JED programmer's editor" "on" \ +"joe" "joe text editor" "on" \ +"jove" "Jonathan's Own Version of Emacs text editor" "on" \ +"ksh93" "KornShell language and interactive shell" "on" \ +"libx86" "Real-mode x86 code execution library" "on" \ +"linuxdoc-tools" "Utilities for DocBook/SGML documents" "on" \ +"lm_sensors" "Hardware monitoring package" "on" \ +"lsof" "A tool to list open files" "on" \ +"lsscsi" "Display infomation about SCSI devices" "on" \ +"madplay" "MPEG audio player" "on" \ +"man" "Primary tool for reading online documentation" "on" \ +"man-pages" "Online documentation (requires groff)" "on" \ +"mc" "The Midnight Commander file manager" "on" \ +"most" "A pager, like 'more' or 'less'" "on" \ +"mpg321" "A command-line MP3 player" "on" \ +"mysql" "MySQL database server" "on" \ +"nano" "A simple editor with the look and feel of Pico" "on" \ +"normalize" "Normalize audio file volume" "on" \ +"ntfsprogs" "Utilities for the NTFS filesystem" "on" \ +"pm-utils" "Power management utilities" "on" \ +"radeontool" "Utility for laptops with a Radeon chipset" "on" \ +"rexima" "Small console audio mixer" "on" \ +"rpm" "RPM package tool (unsupported)" "on" \ +"rzip" "A large file compression utility" "on" \ +"sc" "The 'sc' spreadsheet" "on" \ +"screen" "ANSI/vt100 virtual terminal emulator" "on" \ +"seejpeg" "An SVGAlib image viewer" "on" \ +"slackpkg" "Slackware package updating tool" "on" \ +"sox" "Sound utilities" "on" \ +"sqlite" "A small SQL database server and library" "on" \ +"sudo" "Allow special users limited root access" "on" \ +"sysstat" "System performance monitoring tools" "on" \ +"texinfo" "GNU texinfo documentation system" "on" \ +"vbetool" "Video BIOS execution tool" "on" \ +"vim" "Improved vi clone" "on" \ +"vorbis-tools" "Ogg Vorbis encoder, player, and utilities" "on" \ +"workbone" "a text-based audio CD player" "on" \ +"xfsdump" "Backup/restore tools for the XFS filesystem" "on" \ +"zsh" "Zsh - a custom *nix shell" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +a2ps acct alsa-utils amp ash at aumix bc bpe cdparanoia cdrdao cdrtools cupsddk dc3dd diffstat diffutils dmapi dmidecode dvd+rw-tools enscript flac foomatic-filters ghostscript ghostscript-fonts-std gphoto2 groff gutenprint hplip ispell jed joe jove ksh93 libx86 linuxdoc-tools lm_sensors lsof lsscsi madplay man man-pages mc most mpg321 mysql nano normalize ntfsprogs pm-utils radeontool rexima rpm rzip sc screen seejpeg slackpkg sox sqlite sudo sysstat texinfo vbetool vim vorbis-tools workbone xfsdump zsh \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +a2ps acct alsa-utils amp ash at aumix bc bpe cdparanoia cdrdao cdrtools cupsddk dc3dd diffstat diffutils dmapi dmidecode dvd+rw-tools enscript flac foomatic-filters ghostscript ghostscript-fonts-std gphoto2 groff gutenprint hplip ispell jed joe jove ksh93 libx86 linuxdoc-tools lm_sensors lsof lsscsi madplay man man-pages mc most mpg321 mysql nano normalize ntfsprogs pm-utils radeontool rexima rpm rzip sc screen seejpeg slackpkg sox sqlite sudo sysstat texinfo vbetool vim vorbis-tools workbone xfsdump zsh \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/ap/maketag.ez b/slackware64/ap/maketag.ez new file mode 100644 index 000000000..f6a5c26d0 --- /dev/null +++ b/slackware64/ap/maketag.ez @@ -0,0 +1,103 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES AP (APPLICATIONS)" \ + --checklist "Please confirm the packages you wish to install \ +from series AP. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are \ +done." 22 72 12 \ +"a2ps" "Any to .ps filter (required by APSfilter)" "on" \ +"acct" "Process accounting utilities" "on" \ +"alsa-utils" "ALSA sound utilities" "on" \ +"amp" "A command-line MP3 player" "on" \ +"ash" "A small /bin/sh type shell" "on" \ +"at" "Schedule commands to execute at a later time" "on" \ +"aumix" "Audio mixer for the console or X" "on" \ +"bc" "GNU bc - arbitrary precision math language" "on" \ +"bpe" "Binary Patch (file) Editor" "on" \ +"cdparanoia" "Cdparanoia CD audio ripper" "on" \ +"cdrdao" "Tool for burning audio CDRs" "on" \ +"cdrtools" "CD-R/RW mastering/burning tools" "on" \ +"cupsddk" "CUPS Driver Development Kit" "on" \ +"dc3dd" "Enhanced dd for computer forensics" "on" \ +"diffstat" "Generate diff statistics" "on" \ +"diffutils" "GNU diffutils - find file differences" "on" \ +"dmapi" "Data Management API library for xfsdump" "on" \ +"dmidecode" "DMI table decoder (displays hardware info)" "on" \ +"dvd+rw-tools" "DVD+/-R/RW mastering/burning tools" "on" \ +"enscript" "A text to PostScript utility" "on" \ +"flac" "Free Lossless Audio Codec" "on" \ +"foomatic-filters" "Print filter for gutenprint and hplip" "on" \ +"ghostscript" "GPL Ghostscript PS/PDF interpreter" "on" \ +"ghostscript-fonts-std" "Ghostscript Type1 fonts" "on" \ +"gphoto2" "A command-line camera client for libgphoto2" "on" \ +"groff" "GNU groff document formatting system" "on" \ +"gutenprint" "Additional printer drivers for gs and CUPS" "on" \ +"hplip" "HP printing and scanning software" "on" \ +"ispell" "The International version of ispell" "on" \ +"jed" "JED programmer's editor" "on" \ +"joe" "joe text editor" "on" \ +"jove" "Jonathan's Own Version of Emacs text editor" "on" \ +"ksh93" "KornShell language and interactive shell" "on" \ +"libx86" "Real-mode x86 code execution library" "on" \ +"linuxdoc-tools" "Utilities for DocBook/SGML documents" "on" \ +"lm_sensors" "Hardware monitoring package" "on" \ +"lsof" "A tool to list open files" "on" \ +"lsscsi" "Display infomation about SCSI devices" "on" \ +"madplay" "MPEG audio player" "on" \ +"man" "Primary tool for reading online documentation" "on" \ +"man-pages" "Online documentation (requires groff)" "on" \ +"mc" "The Midnight Commander file manager" "on" \ +"most" "A pager, like 'more' or 'less'" "on" \ +"mpg321" "A command-line MP3 player" "on" \ +"mysql" "MySQL database server" "on" \ +"nano" "A simple editor with the look and feel of Pico" "on" \ +"normalize" "Normalize audio file volume" "on" \ +"ntfsprogs" "Utilities for the NTFS filesystem" "on" \ +"pm-utils" "Power management utilities" "on" \ +"radeontool" "Utility for laptops with a Radeon chipset" "on" \ +"rexima" "Small console audio mixer" "on" \ +"rpm" "RPM package tool (unsupported)" "on" \ +"rzip" "A large file compression utility" "on" \ +"sc" "The 'sc' spreadsheet" "on" \ +"screen" "ANSI/vt100 virtual terminal emulator" "on" \ +"seejpeg" "An SVGAlib image viewer" "on" \ +"slackpkg" "Slackware package updating tool" "on" \ +"sox" "Sound utilities" "on" \ +"sqlite" "A small SQL database server and library" "on" \ +"sudo" "Allow special users limited root access" "on" \ +"sysstat" "System performance monitoring tools" "on" \ +"texinfo" "GNU texinfo documentation system" "on" \ +"vbetool" "Video BIOS execution tool" "on" \ +"vim" "Improved vi clone" "on" \ +"vorbis-tools" "Ogg Vorbis encoder, player, and utilities" "on" \ +"workbone" "a text-based audio CD player" "on" \ +"xfsdump" "Backup/restore tools for the XFS filesystem" "on" \ +"zsh" "Zsh - a custom *nix shell" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +a2ps acct alsa-utils amp ash at aumix bc bpe cdparanoia cdrdao cdrtools cupsddk dc3dd diffstat diffutils dmapi dmidecode dvd+rw-tools enscript flac foomatic-filters ghostscript ghostscript-fonts-std gphoto2 groff gutenprint hplip ispell jed joe jove ksh93 libx86 linuxdoc-tools lm_sensors lsof lsscsi madplay man man-pages mc most mpg321 mysql nano normalize ntfsprogs pm-utils radeontool rexima rpm rzip sc screen seejpeg slackpkg sox sqlite sudo sysstat texinfo vbetool vim vorbis-tools workbone xfsdump zsh \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +a2ps acct alsa-utils amp ash at aumix bc bpe cdparanoia cdrdao cdrtools cupsddk dc3dd diffstat diffutils dmapi dmidecode dvd+rw-tools enscript flac foomatic-filters ghostscript ghostscript-fonts-std gphoto2 groff gutenprint hplip ispell jed joe jove ksh93 libx86 linuxdoc-tools lm_sensors lsof lsscsi madplay man man-pages mc most mpg321 mysql nano normalize ntfsprogs pm-utils radeontool rexima rpm rzip sc screen seejpeg slackpkg sox sqlite sudo sysstat texinfo vbetool vim vorbis-tools workbone xfsdump zsh \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/ap/tagfile b/slackware64/ap/tagfile new file mode 100644 index 000000000..0ce719451 --- /dev/null +++ b/slackware64/ap/tagfile @@ -0,0 +1,68 @@ +a2ps:REC +acct:OPT +alsa-utils:REC +amp:OPT +ash:OPT +at:OPT +aumix:OPT +bc:OPT +bpe:OPT +cdparanoia:OPT +cdrdao:OPT +cdrtools:OPT +cupsddk:REC +dc3dd:OPT +diffstat:REC +diffutils:REC +dmapi:REC +dmidecode:ADD +dvd+rw-tools:OPT +enscript:OPT +flac:OPT +foomatic-filters:REC +ghostscript:REC +ghostscript-fonts-std:REC +gphoto2:REC +groff:ADD +gutenprint:OPT +hplip:REC +ispell:OPT +jed:OPT +joe:OPT +jove:OPT +ksh93:OPT +libx86:REC +linuxdoc-tools:REC +lm_sensors:REC +lsof:OPT +lsscsi:OPT +madplay:OPT +man:ADD +man-pages:REC +mc:OPT +most:OPT +mpg321:OPT +mysql:OPT +nano:REC +normalize:OPT +ntfsprogs:OPT +pm-utils:OPT +radeontool:REC +rexima:REC +rpm:OPT +rzip:OPT +sc:OPT +screen:OPT +seejpeg:REC +slackpkg:REC +sox:REC +sqlite:OPT +sudo:OPT +sysstat:OPT +texinfo:REC +vbetool:REC +vim:REC +vorbis-tools:OPT +workbone:OPT +xfsdump:REC +zsh:OPT diff --git a/slackware64/d/install-packages b/slackware64/d/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/d/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/d/install.end b/slackware64/d/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/d/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/d/maketag b/slackware64/d/maketag new file mode 100644 index 000000000..a9148feca --- /dev/null +++ b/slackware64/d/maketag @@ -0,0 +1,78 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES D (PROGRAM DEVELOPMENT)" \ + --checklist "Please confirm the packages you wish to install \ +from series D. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are \ +done." 22 72 12 \ +"autoconf" "GNU source autoconfig system" "on" \ +"automake" "GNU makefile generator" "on" \ +"binutils" "GNU C compiler utilities" "on" \ +"bison" "GNU bison parser generator" "on" \ +"ccache" "Fast Compiler Cache" "on" \ +"clisp" "CLISP Common Lisp" "on" \ +"cmake" "Cross platform make utility" "on" \ +"cscope" "Source code browser" "on" \ +"cvs" "Concurrent Versions System" "on" \ +"dev86" "8086 assembler/loader" "on" \ +"distcc" "gcc frontend to use networked machines" "on" \ +"doxygen" "Source code documentation generator" "on" \ +"flex" "Fast lexical analyzer generator" "on" \ +"gcc" "GNU gcc-4.3.3 C compiler" "on" \ +"gcc-g++" "GNU C++ compiler for gcc-4.3.3" "on" \ +"gcc-gfortran" "GNU Fortran-95 compiler for gcc-4.3.3" "on" \ +"gcc-gnat" "GNU Ada 95 compiler for gcc-4.3.3" "on" \ +"gcc-java" "GNU Java compiler for gcc-4.3.3" "on" \ +"gcc-objc" "GNU Objective-C compiler for gcc-4.3.3" "on" \ +"gdb" "The GNU debugger" "on" \ +"gettext-tools" "GNU internationalization devel package" "on" \ +"git" "A directory content manager" "on" \ +"gperf" "Generates hash functions" "on" \ +"guile" "GNU extension language library" "on" \ +"indent" "Change the indenting style of a C program" "on" \ +"intltool" "Internationalization utilities" "on" \ +"kernel-headers" "Linux kernel include files" "on" \ +"libtool" "GNU libtool library support script" "on" \ +"m4" "GNU m4 macro processor" "on" \ +"make" "GNU make" "on" \ +"mercurial" "Distributed source management system" "on" \ +"nasm" "NASM assembler" "on" \ +"oprofile" "System profiling tool" "on" \ +"p2c" "A Pascal to C translator" "on" \ +"perl" "Larry Wall's systems language" "on" \ +"pkg-config" "A tool for managing library information" "on" \ +"pmake" "Parallel make from BSD" "on" \ +"python" "An interpreted object-oriented language" "on" \ +"rcs" "GNU revision control system" "on" \ +"ruby" "Interpreted object-oriented script language" "on" \ +"strace" "Traces program execution" "on" \ +"subversion" "Subversion version control system" "on" \ +"swig" "Simplified Wrapper and Interface Generator" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +autoconf automake binutils bison ccache clisp cmake cscope cvs dev86 distcc doxygen flex gcc gcc-g++ gcc-gfortran gcc-gnat gcc-java gcc-objc gdb gettext-tools git gperf guile indent intltool kernel-headers libtool m4 make mercurial nasm oprofile p2c perl pkg-config pmake python rcs ruby strace subversion swig \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +autoconf automake binutils bison ccache clisp cmake cscope cvs dev86 distcc doxygen flex gcc gcc-g++ gcc-gfortran gcc-gnat gcc-java gcc-objc gdb gettext-tools git gperf guile indent intltool kernel-headers libtool m4 make mercurial nasm oprofile p2c perl pkg-config pmake python rcs ruby strace subversion swig \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/d/maketag.ez b/slackware64/d/maketag.ez new file mode 100644 index 000000000..a9148feca --- /dev/null +++ b/slackware64/d/maketag.ez @@ -0,0 +1,78 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES D (PROGRAM DEVELOPMENT)" \ + --checklist "Please confirm the packages you wish to install \ +from series D. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are \ +done." 22 72 12 \ +"autoconf" "GNU source autoconfig system" "on" \ +"automake" "GNU makefile generator" "on" \ +"binutils" "GNU C compiler utilities" "on" \ +"bison" "GNU bison parser generator" "on" \ +"ccache" "Fast Compiler Cache" "on" \ +"clisp" "CLISP Common Lisp" "on" \ +"cmake" "Cross platform make utility" "on" \ +"cscope" "Source code browser" "on" \ +"cvs" "Concurrent Versions System" "on" \ +"dev86" "8086 assembler/loader" "on" \ +"distcc" "gcc frontend to use networked machines" "on" \ +"doxygen" "Source code documentation generator" "on" \ +"flex" "Fast lexical analyzer generator" "on" \ +"gcc" "GNU gcc-4.3.3 C compiler" "on" \ +"gcc-g++" "GNU C++ compiler for gcc-4.3.3" "on" \ +"gcc-gfortran" "GNU Fortran-95 compiler for gcc-4.3.3" "on" \ +"gcc-gnat" "GNU Ada 95 compiler for gcc-4.3.3" "on" \ +"gcc-java" "GNU Java compiler for gcc-4.3.3" "on" \ +"gcc-objc" "GNU Objective-C compiler for gcc-4.3.3" "on" \ +"gdb" "The GNU debugger" "on" \ +"gettext-tools" "GNU internationalization devel package" "on" \ +"git" "A directory content manager" "on" \ +"gperf" "Generates hash functions" "on" \ +"guile" "GNU extension language library" "on" \ +"indent" "Change the indenting style of a C program" "on" \ +"intltool" "Internationalization utilities" "on" \ +"kernel-headers" "Linux kernel include files" "on" \ +"libtool" "GNU libtool library support script" "on" \ +"m4" "GNU m4 macro processor" "on" \ +"make" "GNU make" "on" \ +"mercurial" "Distributed source management system" "on" \ +"nasm" "NASM assembler" "on" \ +"oprofile" "System profiling tool" "on" \ +"p2c" "A Pascal to C translator" "on" \ +"perl" "Larry Wall's systems language" "on" \ +"pkg-config" "A tool for managing library information" "on" \ +"pmake" "Parallel make from BSD" "on" \ +"python" "An interpreted object-oriented language" "on" \ +"rcs" "GNU revision control system" "on" \ +"ruby" "Interpreted object-oriented script language" "on" \ +"strace" "Traces program execution" "on" \ +"subversion" "Subversion version control system" "on" \ +"swig" "Simplified Wrapper and Interface Generator" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +autoconf automake binutils bison ccache clisp cmake cscope cvs dev86 distcc doxygen flex gcc gcc-g++ gcc-gfortran gcc-gnat gcc-java gcc-objc gdb gettext-tools git gperf guile indent intltool kernel-headers libtool m4 make mercurial nasm oprofile p2c perl pkg-config pmake python rcs ruby strace subversion swig \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +autoconf automake binutils bison ccache clisp cmake cscope cvs dev86 distcc doxygen flex gcc gcc-g++ gcc-gfortran gcc-gnat gcc-java gcc-objc gdb gettext-tools git gperf guile indent intltool kernel-headers libtool m4 make mercurial nasm oprofile p2c perl pkg-config pmake python rcs ruby strace subversion swig \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/d/tagfile b/slackware64/d/tagfile new file mode 100644 index 000000000..92415a8db --- /dev/null +++ b/slackware64/d/tagfile @@ -0,0 +1,43 @@ +autoconf:OPT +automake:OPT +binutils:ADD +bison:ADD +ccache:OPT +clisp:OPT +cmake:REC +cscope:OPT +cvs:REC +dev86:ADD +distcc:OPT +doxygen:OPT +flex:ADD +gcc:ADD +gcc-g++:REC +gcc-gfortran:OPT +gcc-gnat:OPT +gcc-java:OPT +gcc-objc:OPT +gdb:REC +gettext-tools:REC +git:REC +gperf:REC +guile:OPT +indent:OPT +intltool:REC +kernel-headers:ADD +libtool:OPT +m4:REC +make:ADD +mercurial:REC +nasm:OPT +oprofile:OPT +p2c:OPT +perl:REC +pkg-config:REC +pmake:REC +python:REC +rcs:REC +ruby:REC +strace:REC +subversion:OPT +swig:REC diff --git a/slackware64/e/install-packages b/slackware64/e/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/e/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/e/install.end b/slackware64/e/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/e/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/e/maketag b/slackware64/e/maketag new file mode 100644 index 000000000..009f9b39b --- /dev/null +++ b/slackware64/e/maketag @@ -0,0 +1,36 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES E (GNU EMACS)" \ + --checklist "Please confirm the packages you wish to install \ +from series E. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are \ +done." 16 72 6 \ +"emacs" "The GNU Emacs 22.3 system" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +emacs \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +emacs \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/e/maketag.ez b/slackware64/e/maketag.ez new file mode 100644 index 000000000..009f9b39b --- /dev/null +++ b/slackware64/e/maketag.ez @@ -0,0 +1,36 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES E (GNU EMACS)" \ + --checklist "Please confirm the packages you wish to install \ +from series E. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are \ +done." 16 72 6 \ +"emacs" "The GNU Emacs 22.3 system" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +emacs \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +emacs \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/e/tagfile b/slackware64/e/tagfile new file mode 100644 index 000000000..679686091 --- /dev/null +++ b/slackware64/e/tagfile @@ -0,0 +1 @@ +emacs:ADD diff --git a/slackware64/f/install-packages b/slackware64/f/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/f/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/f/install.end b/slackware64/f/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/f/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/f/maketag b/slackware64/f/maketag new file mode 100644 index 000000000..05ef4e29d --- /dev/null +++ b/slackware64/f/maketag @@ -0,0 +1,37 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES F (FAQS/DOCS)" \ + --checklist "Please confirm the packages you wish to install \ +from series F. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +12 70 2 \ +"linux-faqs" "The Linux FAQ and other documentation" "on" \ +"linux-howtos" "HOWTOs from the Linux Doc Project" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +linux-faqs linux-howtos \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +linux-faqs linux-howtos \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/f/maketag.ez b/slackware64/f/maketag.ez new file mode 100644 index 000000000..05ef4e29d --- /dev/null +++ b/slackware64/f/maketag.ez @@ -0,0 +1,37 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES F (FAQS/DOCS)" \ + --checklist "Please confirm the packages you wish to install \ +from series F. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +12 70 2 \ +"linux-faqs" "The Linux FAQ and other documentation" "on" \ +"linux-howtos" "HOWTOs from the Linux Doc Project" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +linux-faqs linux-howtos \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +linux-faqs linux-howtos \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/f/tagfile b/slackware64/f/tagfile new file mode 100644 index 000000000..c9709de84 --- /dev/null +++ b/slackware64/f/tagfile @@ -0,0 +1,2 @@ +linux-faqs:ADD +linux-howtos:ADD diff --git a/slackware64/k/install-packages b/slackware64/k/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/k/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/k/install.end b/slackware64/k/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/k/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/k/maketag b/slackware64/k/maketag new file mode 100644 index 000000000..281a5628c --- /dev/null +++ b/slackware64/k/maketag @@ -0,0 +1,46 @@ +#!/bin/sh +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +add() { + for package in $* ; do + echo "$package: ADD" >> $TMP/SeTnewtag + done +} +skip() { + for package in $* ; do + echo "$package: SKP" >> $TMP/SeTnewtag + done +} +#item ####description ###on off ### +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING SOFTWARE FROM SERIES K (Linux kernel source)" \ + --checklist "Please confirm the packages you wish to install \ +from series K. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are \ +done." 11 70 1 \ +"kernel-source" "Linux 2.6.29.6 kernel source" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +kernel-source \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +kernel-source \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/k/maketag.ez b/slackware64/k/maketag.ez new file mode 100644 index 000000000..281a5628c --- /dev/null +++ b/slackware64/k/maketag.ez @@ -0,0 +1,46 @@ +#!/bin/sh +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +add() { + for package in $* ; do + echo "$package: ADD" >> $TMP/SeTnewtag + done +} +skip() { + for package in $* ; do + echo "$package: SKP" >> $TMP/SeTnewtag + done +} +#item ####description ###on off ### +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING SOFTWARE FROM SERIES K (Linux kernel source)" \ + --checklist "Please confirm the packages you wish to install \ +from series K. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are \ +done." 11 70 1 \ +"kernel-source" "Linux 2.6.29.6 kernel source" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +kernel-source \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +kernel-source \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/k/tagfile b/slackware64/k/tagfile new file mode 100644 index 000000000..2e87a76db --- /dev/null +++ b/slackware64/k/tagfile @@ -0,0 +1 @@ +kernel-source:REC diff --git a/slackware64/kde/install-packages b/slackware64/kde/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/kde/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/kde/install.end b/slackware64/kde/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/kde/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/kde/maketag b/slackware64/kde/maketag new file mode 100644 index 000000000..674b04bf1 --- /dev/null +++ b/slackware64/kde/maketag @@ -0,0 +1,69 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES KDE" \ +--checklist "Please confirm the packages you wish to install \ +from series KDE. KDE is a network transparent desktop \ +environment that seeks to fill the need for an easy to use desktop \ +for Unix workstations, similar to the desktop environments found \ +under MacOS or Windows. Use the UP/DOWN keys to scroll through \ +the list, and the SPACE key to deselect any items you don't want \ +to install. Press ENTER when you are done." \ +22 72 9 \ +"amarok" "A media player for KDE" "on" \ +"guidance-power-manager" "KDE frontend for HAL's power features" "on" \ +"k3b" "CD/DVD burning app for KDE" "on" \ +"kaudiocreator" "CD ripper and audio encoder" "on" \ +"kdeaccessibility" "KDE accessibility utilities" "on" \ +"kdeadmin" "KDE system administration utilities" "on" \ +"kdeartwork" "Extra themes, sounds, wallpapers, and styles" "on" \ +"kdebase" "The K Desktop Environment base package" "on" \ +"kdebase-runtime" "The KDE base rumtime support package" "on" \ +"kdebase-workspace" "The KDE base workspace package" "on" \ +"kdebindings" "Optional KDE library bindings" "on" \ +"kdeedu" "KDE Edutainment programs" "on" \ +"kdegames" "A KDE games collection" "on" \ +"kdegraphics" "Graphic programs for KDE" "on" \ +"kdelibs" "Libraries required for KDE" "on" \ +"kdemultimedia" "Multimedia programs for KDE" "on" \ +"kdenetwork" "Networking programs for KDE" "on" \ +"kdepim" "Personal Information Management tools" "on" \ +"kdepimlibs" "KDE Personal Information Management libraries" "on" \ +"kdeplasma-addons" "Plasma addons for KDE" "on" \ +"kdesdk" "KDE software development kit" "on" \ +"kdetoys" "Toys for the KDE desktop" "on" \ +"kdeutils" "Utilities for KDE" "on" \ +"kdevelop" "KDE Application Development Environment" "on" \ +"kdevplatform" "Libraries used by kdevelop" "on" \ +"kdewebdev" "Quanta Plus web development environment" "on" \ +"koffice" "The KDE office productivity suite" "on" \ +"konq-plugins" "Plugins to extend Konqueror" "on" \ +"ktorrent" "BitTorrent program for KDE" "on" \ +"mplayerthumbs" "Use MPlayer for KDE video thumbnail support" "on" \ +"skanlite" "KDE scanning program" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +amarok guidance-power-manager k3b kaudiocreator kdeaccessibility kdeadmin kdeartwork kdebase kdebase-runtime kdebase-workspace kdebindings kdeedu kdegames kdegraphics kdelibs kdemultimedia kdenetwork kdepim kdepimlibs kdeplasma-addons kdesdk kdetoys kdeutils kdevelop kdevplatform kdewebdev koffice konq-plugins ktorrent mplayerthumbs skanlite \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +amarok guidance-power-manager k3b kaudiocreator kdeaccessibility kdeadmin kdeartwork kdebase kdebase-runtime kdebase-workspace kdebindings kdeedu kdegames kdegraphics kdelibs kdemultimedia kdenetwork kdepim kdepimlibs kdeplasma-addons kdesdk kdetoys kdeutils kdevelop kdevplatform kdewebdev koffice konq-plugins ktorrent mplayerthumbs skanlite \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/kde/maketag.ez b/slackware64/kde/maketag.ez new file mode 100644 index 000000000..674b04bf1 --- /dev/null +++ b/slackware64/kde/maketag.ez @@ -0,0 +1,69 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES KDE" \ +--checklist "Please confirm the packages you wish to install \ +from series KDE. KDE is a network transparent desktop \ +environment that seeks to fill the need for an easy to use desktop \ +for Unix workstations, similar to the desktop environments found \ +under MacOS or Windows. Use the UP/DOWN keys to scroll through \ +the list, and the SPACE key to deselect any items you don't want \ +to install. Press ENTER when you are done." \ +22 72 9 \ +"amarok" "A media player for KDE" "on" \ +"guidance-power-manager" "KDE frontend for HAL's power features" "on" \ +"k3b" "CD/DVD burning app for KDE" "on" \ +"kaudiocreator" "CD ripper and audio encoder" "on" \ +"kdeaccessibility" "KDE accessibility utilities" "on" \ +"kdeadmin" "KDE system administration utilities" "on" \ +"kdeartwork" "Extra themes, sounds, wallpapers, and styles" "on" \ +"kdebase" "The K Desktop Environment base package" "on" \ +"kdebase-runtime" "The KDE base rumtime support package" "on" \ +"kdebase-workspace" "The KDE base workspace package" "on" \ +"kdebindings" "Optional KDE library bindings" "on" \ +"kdeedu" "KDE Edutainment programs" "on" \ +"kdegames" "A KDE games collection" "on" \ +"kdegraphics" "Graphic programs for KDE" "on" \ +"kdelibs" "Libraries required for KDE" "on" \ +"kdemultimedia" "Multimedia programs for KDE" "on" \ +"kdenetwork" "Networking programs for KDE" "on" \ +"kdepim" "Personal Information Management tools" "on" \ +"kdepimlibs" "KDE Personal Information Management libraries" "on" \ +"kdeplasma-addons" "Plasma addons for KDE" "on" \ +"kdesdk" "KDE software development kit" "on" \ +"kdetoys" "Toys for the KDE desktop" "on" \ +"kdeutils" "Utilities for KDE" "on" \ +"kdevelop" "KDE Application Development Environment" "on" \ +"kdevplatform" "Libraries used by kdevelop" "on" \ +"kdewebdev" "Quanta Plus web development environment" "on" \ +"koffice" "The KDE office productivity suite" "on" \ +"konq-plugins" "Plugins to extend Konqueror" "on" \ +"ktorrent" "BitTorrent program for KDE" "on" \ +"mplayerthumbs" "Use MPlayer for KDE video thumbnail support" "on" \ +"skanlite" "KDE scanning program" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +amarok guidance-power-manager k3b kaudiocreator kdeaccessibility kdeadmin kdeartwork kdebase kdebase-runtime kdebase-workspace kdebindings kdeedu kdegames kdegraphics kdelibs kdemultimedia kdenetwork kdepim kdepimlibs kdeplasma-addons kdesdk kdetoys kdeutils kdevelop kdevplatform kdewebdev koffice konq-plugins ktorrent mplayerthumbs skanlite \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +amarok guidance-power-manager k3b kaudiocreator kdeaccessibility kdeadmin kdeartwork kdebase kdebase-runtime kdebase-workspace kdebindings kdeedu kdegames kdegraphics kdelibs kdemultimedia kdenetwork kdepim kdepimlibs kdeplasma-addons kdesdk kdetoys kdeutils kdevelop kdevplatform kdewebdev koffice konq-plugins ktorrent mplayerthumbs skanlite \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/kde/tagfile b/slackware64/kde/tagfile new file mode 100644 index 000000000..dab8651c6 --- /dev/null +++ b/slackware64/kde/tagfile @@ -0,0 +1,31 @@ +amarok:OPT +guidance-power-manager:REC +k3b:OPT +kaudiocreator:REC +kdeaccessibility:OPT +kdeadmin:ADD +kdeartwork:ADD +kdebase:ADD +kdebase-runtime:ADD +kdebase-workspace:ADD +kdebindings:OPT +kdeedu:REC +kdegames:REC +kdegraphics:ADD +kdelibs:ADD +kdemultimedia:REC +kdenetwork:REC +kdepim:REC +kdepimlibs:REC +kdeplasma-addons:ADD +kdesdk:OPT +kdetoys:REC +kdeutils:ADD +kdevelop:OPT +kdevplatform:OPT +kdewebdev:OPT +koffice:REC +konq-plugins:REC +ktorrent:REC +mplayerthumbs:OPT +skanlite:REC diff --git a/slackware64/kdei/install-packages b/slackware64/kdei/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/kdei/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/kdei/install.end b/slackware64/kdei/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/kdei/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/kdei/maketag b/slackware64/kdei/maketag new file mode 100644 index 000000000..ba8020c05 --- /dev/null +++ b/slackware64/kdei/maketag @@ -0,0 +1,118 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "KDE INTERNATIONAL LANGUAGE SUPPORT (KDEI SERIES)" \ + --checklist "If you would like to install support \ +within KDE for languages other than US English, please \ +select them from the list below. \ +Press ENTER \ +when you are done." 21 74 12 \ +"kde-l10n-ar" "Arabic language support" "off" \ +"kde-l10n-bg" "Bulgarian language support" "off" \ +"kde-l10n-bn_IN" "Bengali language support" "off" \ +"kde-l10n-ca" "Catalan language support" "off" \ +"kde-l10n-cs" "Czech language support" "off" \ +"kde-l10n-csb" "Kashubian language support" "off" \ +"kde-l10n-da" "Danish language support" "off" \ +"kde-l10n-de" "German language support" "off" \ +"kde-l10n-el" "Greek language support" "off" \ +"kde-l10n-en_GB" "English (UK) language support" "off" \ +"kde-l10n-es" "Spanish language support" "off" \ +"kde-l10n-et" "Estonian language support" "off" \ +"kde-l10n-eu" "Basque language support" "off" \ +"kde-l10n-fi" "Finnish language support" "off" \ +"kde-l10n-fr" "French language support" "off" \ +"kde-l10n-ga" "Irish language support" "off" \ +"kde-l10n-gl" "Galician language support" "off" \ +"kde-l10n-gu" "Gujarati language support" "off" \ +"kde-l10n-he" "Hebrew language support" "off" \ +"kde-l10n-hi" "Hindi language support" "off" \ +"kde-l10n-hu" "Hungarian language support" "off" \ +"kde-l10n-is" "Icelandic language support" "off" \ +"kde-l10n-it" "Italian language support" "off" \ +"kde-l10n-ja" "Japanese language support" "off" \ +"kde-l10n-kk" "Kazakh language support" "off" \ +"kde-l10n-km" "Khmer language support" "off" \ +"kde-l10n-kn" "Kannada language support" "off" \ +"kde-l10n-ko" "Korean language support" "off" \ +"kde-l10n-ku" "Kurdish language support" "off" \ +"kde-l10n-lt" "Lithuanian language support" "off" \ +"kde-l10n-lv" "Latvian language support" "off" \ +"kde-l10n-mai" "Maithili language support" "off" \ +"kde-l10n-mk" "Macedonian language support" "off" \ +"kde-l10n-ml" "Malayalam language support" "off" \ +"kde-l10n-mr" "Marathi language support" "off" \ +"kde-l10n-nb" "Norwegian (Bokmaal) language support" "off" \ +"kde-l10n-nds" "Low Saxon language support" "off" \ +"kde-l10n-nl" "Dutch language support" "off" \ +"kde-l10n-nn" "Norwegian (Nynorsk) language support" "off" \ +"kde-l10n-pa" "Punjabi language support" "off" \ +"kde-l10n-pl" "Polish language support" "off" \ +"kde-l10n-pt" "Portuguese language support" "off" \ +"kde-l10n-pt_BR" "Brazil Portuguese language support" "off" \ +"kde-l10n-ro" "Romanian language support" "off" \ +"kde-l10n-ru" "Russian language support" "off" \ +"kde-l10n-sk" "Slovak language support" "off" \ +"kde-l10n-sl" "Slovenian language support" "off" \ +"kde-l10n-sr" "Serbian language support" "off" \ +"kde-l10n-sv" "Swedish language support" "off" \ +"kde-l10n-tg" "Tajik language support" "off" \ +"kde-l10n-th" "Thai language support" "off" \ +"kde-l10n-tr" "Turkish language support" "off" \ +"kde-l10n-uk" "Ukrainian language support" "off" \ +"kde-l10n-wa" "Walloon language support" "off" \ +"kde-l10n-zh_CN" "Simplified Chinese language support" "off" \ +"kde-l10n-zh_TW" "Chinese language support" "off" \ +"koffice-l10n-ca" "Catalan language support" "off" \ +"koffice-l10n-cs" "Czech language support" "off" \ +"koffice-l10n-da" "Danish language support" "off" \ +"koffice-l10n-de" "German language support" "off" \ +"koffice-l10n-el" "Greek language support" "off" \ +"koffice-l10n-en_GB" "English (UK) language support" "off" \ +"koffice-l10n-es" "Spanish language support" "off" \ +"koffice-l10n-et" "Estonian language support" "off" \ +"koffice-l10n-fr" "French language support" "off" \ +"koffice-l10n-fy" "Abkhasysk language support" "off" \ +"koffice-l10n-gl" "Galician language support" "off" \ +"koffice-l10n-hi" "Hindi language support" "off" \ +"koffice-l10n-it" "Italian language support" "off" \ +"koffice-l10n-ja" "Japanese language support" "off" \ +"koffice-l10n-kk" "Kazakh language support" "off" \ +"koffice-l10n-nb" "Norwegian (Bokmaal) language support" "off" \ +"koffice-l10n-nds" "Low Saxon language support" "off" \ +"koffice-l10n-nl" "Dutch language support" "off" \ +"koffice-l10n-pl" "Polish language support" "off" \ +"koffice-l10n-pt" "Portuguese language support" "off" \ +"koffice-l10n-pt_BR" "Brazil Portuguese language support" "off" \ +"koffice-l10n-sv" "Swedish language support" "off" \ +"koffice-l10n-tr" "Turkish language support" "off" \ +"koffice-l10n-uk" "Ukrainian language support" "off" \ +"koffice-l10n-wa" "Walloon language support" "off" \ +"koffice-l10n-zh_CN" "Simplified Chinese language support" "off" \ +"koffice-l10n-zh_TW" "Chinese language support" "off" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +kde-l10n-ar kde-l10n-bg kde-l10n-bn_IN kde-l10n-ca kde-l10n-cs kde-l10n-csb kde-l10n-da kde-l10n-de kde-l10n-el kde-l10n-en_GB kde-l10n-es kde-l10n-et kde-l10n-eu kde-l10n-fi kde-l10n-fr kde-l10n-ga kde-l10n-gl kde-l10n-gu kde-l10n-he kde-l10n-hi kde-l10n-hu kde-l10n-is kde-l10n-it kde-l10n-ja kde-l10n-kk kde-l10n-km kde-l10n-kn kde-l10n-ko kde-l10n-ku kde-l10n-lt kde-l10n-lv kde-l10n-mai kde-l10n-mk kde-l10n-ml kde-l10n-mr kde-l10n-nb kde-l10n-nds kde-l10n-nl kde-l10n-nn kde-l10n-pa kde-l10n-pl kde-l10n-pt kde-l10n-pt_BR kde-l10n-ro kde-l10n-ru kde-l10n-sk kde-l10n-sl kde-l10n-sr kde-l10n-sv kde-l10n-tg kde-l10n-th kde-l10n-tr kde-l10n-uk kde-l10n-wa kde-l10n-zh_CN kde-l10n-zh_TW koffice-l10n-ca koffice-l10n-cs koffice-l10n-da koffice-l10n-de koffice-l10n-el koffice-l10n-en_GB koffice-l10n-es koffice-l10n-et koffice-l10n-fr koffice-l10n-fy koffice-l10n-gl koffice-l10n-hi koffice-l10n-it koffice-l10n-ja koffice-l10n-kk koffice-l10n-nb koffice-l10n-nds koffice-l10n-nl koffice-l10n-pl koffice-l10n-pt koffice-l10n-pt_BR koffice-l10n-sv koffice-l10n-tr koffice-l10n-uk koffice-l10n-wa koffice-l10n-zh_CN koffice-l10n-zh_TW \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +kde-l10n-ar kde-l10n-bg kde-l10n-bn_IN kde-l10n-ca kde-l10n-cs kde-l10n-csb kde-l10n-da kde-l10n-de kde-l10n-el kde-l10n-en_GB kde-l10n-es kde-l10n-et kde-l10n-eu kde-l10n-fi kde-l10n-fr kde-l10n-ga kde-l10n-gl kde-l10n-gu kde-l10n-he kde-l10n-hi kde-l10n-hu kde-l10n-is kde-l10n-it kde-l10n-ja kde-l10n-kk kde-l10n-km kde-l10n-kn kde-l10n-ko kde-l10n-ku kde-l10n-lt kde-l10n-lv kde-l10n-mai kde-l10n-mk kde-l10n-ml kde-l10n-mr kde-l10n-nb kde-l10n-nds kde-l10n-nl kde-l10n-nn kde-l10n-pa kde-l10n-pl kde-l10n-pt kde-l10n-pt_BR kde-l10n-ro kde-l10n-ru kde-l10n-sk kde-l10n-sl kde-l10n-sr kde-l10n-sv kde-l10n-tg kde-l10n-th kde-l10n-tr kde-l10n-uk kde-l10n-wa kde-l10n-zh_CN kde-l10n-zh_TW koffice-l10n-ca koffice-l10n-cs koffice-l10n-da koffice-l10n-de koffice-l10n-el koffice-l10n-en_GB koffice-l10n-es koffice-l10n-et koffice-l10n-fr koffice-l10n-fy koffice-l10n-gl koffice-l10n-hi koffice-l10n-it koffice-l10n-ja koffice-l10n-kk koffice-l10n-nb koffice-l10n-nds koffice-l10n-nl koffice-l10n-pl koffice-l10n-pt koffice-l10n-pt_BR koffice-l10n-sv koffice-l10n-tr koffice-l10n-uk koffice-l10n-wa koffice-l10n-zh_CN koffice-l10n-zh_TW \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/kdei/maketag.ez b/slackware64/kdei/maketag.ez new file mode 100644 index 000000000..ba8020c05 --- /dev/null +++ b/slackware64/kdei/maketag.ez @@ -0,0 +1,118 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "KDE INTERNATIONAL LANGUAGE SUPPORT (KDEI SERIES)" \ + --checklist "If you would like to install support \ +within KDE for languages other than US English, please \ +select them from the list below. \ +Press ENTER \ +when you are done." 21 74 12 \ +"kde-l10n-ar" "Arabic language support" "off" \ +"kde-l10n-bg" "Bulgarian language support" "off" \ +"kde-l10n-bn_IN" "Bengali language support" "off" \ +"kde-l10n-ca" "Catalan language support" "off" \ +"kde-l10n-cs" "Czech language support" "off" \ +"kde-l10n-csb" "Kashubian language support" "off" \ +"kde-l10n-da" "Danish language support" "off" \ +"kde-l10n-de" "German language support" "off" \ +"kde-l10n-el" "Greek language support" "off" \ +"kde-l10n-en_GB" "English (UK) language support" "off" \ +"kde-l10n-es" "Spanish language support" "off" \ +"kde-l10n-et" "Estonian language support" "off" \ +"kde-l10n-eu" "Basque language support" "off" \ +"kde-l10n-fi" "Finnish language support" "off" \ +"kde-l10n-fr" "French language support" "off" \ +"kde-l10n-ga" "Irish language support" "off" \ +"kde-l10n-gl" "Galician language support" "off" \ +"kde-l10n-gu" "Gujarati language support" "off" \ +"kde-l10n-he" "Hebrew language support" "off" \ +"kde-l10n-hi" "Hindi language support" "off" \ +"kde-l10n-hu" "Hungarian language support" "off" \ +"kde-l10n-is" "Icelandic language support" "off" \ +"kde-l10n-it" "Italian language support" "off" \ +"kde-l10n-ja" "Japanese language support" "off" \ +"kde-l10n-kk" "Kazakh language support" "off" \ +"kde-l10n-km" "Khmer language support" "off" \ +"kde-l10n-kn" "Kannada language support" "off" \ +"kde-l10n-ko" "Korean language support" "off" \ +"kde-l10n-ku" "Kurdish language support" "off" \ +"kde-l10n-lt" "Lithuanian language support" "off" \ +"kde-l10n-lv" "Latvian language support" "off" \ +"kde-l10n-mai" "Maithili language support" "off" \ +"kde-l10n-mk" "Macedonian language support" "off" \ +"kde-l10n-ml" "Malayalam language support" "off" \ +"kde-l10n-mr" "Marathi language support" "off" \ +"kde-l10n-nb" "Norwegian (Bokmaal) language support" "off" \ +"kde-l10n-nds" "Low Saxon language support" "off" \ +"kde-l10n-nl" "Dutch language support" "off" \ +"kde-l10n-nn" "Norwegian (Nynorsk) language support" "off" \ +"kde-l10n-pa" "Punjabi language support" "off" \ +"kde-l10n-pl" "Polish language support" "off" \ +"kde-l10n-pt" "Portuguese language support" "off" \ +"kde-l10n-pt_BR" "Brazil Portuguese language support" "off" \ +"kde-l10n-ro" "Romanian language support" "off" \ +"kde-l10n-ru" "Russian language support" "off" \ +"kde-l10n-sk" "Slovak language support" "off" \ +"kde-l10n-sl" "Slovenian language support" "off" \ +"kde-l10n-sr" "Serbian language support" "off" \ +"kde-l10n-sv" "Swedish language support" "off" \ +"kde-l10n-tg" "Tajik language support" "off" \ +"kde-l10n-th" "Thai language support" "off" \ +"kde-l10n-tr" "Turkish language support" "off" \ +"kde-l10n-uk" "Ukrainian language support" "off" \ +"kde-l10n-wa" "Walloon language support" "off" \ +"kde-l10n-zh_CN" "Simplified Chinese language support" "off" \ +"kde-l10n-zh_TW" "Chinese language support" "off" \ +"koffice-l10n-ca" "Catalan language support" "off" \ +"koffice-l10n-cs" "Czech language support" "off" \ +"koffice-l10n-da" "Danish language support" "off" \ +"koffice-l10n-de" "German language support" "off" \ +"koffice-l10n-el" "Greek language support" "off" \ +"koffice-l10n-en_GB" "English (UK) language support" "off" \ +"koffice-l10n-es" "Spanish language support" "off" \ +"koffice-l10n-et" "Estonian language support" "off" \ +"koffice-l10n-fr" "French language support" "off" \ +"koffice-l10n-fy" "Abkhasysk language support" "off" \ +"koffice-l10n-gl" "Galician language support" "off" \ +"koffice-l10n-hi" "Hindi language support" "off" \ +"koffice-l10n-it" "Italian language support" "off" \ +"koffice-l10n-ja" "Japanese language support" "off" \ +"koffice-l10n-kk" "Kazakh language support" "off" \ +"koffice-l10n-nb" "Norwegian (Bokmaal) language support" "off" \ +"koffice-l10n-nds" "Low Saxon language support" "off" \ +"koffice-l10n-nl" "Dutch language support" "off" \ +"koffice-l10n-pl" "Polish language support" "off" \ +"koffice-l10n-pt" "Portuguese language support" "off" \ +"koffice-l10n-pt_BR" "Brazil Portuguese language support" "off" \ +"koffice-l10n-sv" "Swedish language support" "off" \ +"koffice-l10n-tr" "Turkish language support" "off" \ +"koffice-l10n-uk" "Ukrainian language support" "off" \ +"koffice-l10n-wa" "Walloon language support" "off" \ +"koffice-l10n-zh_CN" "Simplified Chinese language support" "off" \ +"koffice-l10n-zh_TW" "Chinese language support" "off" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +kde-l10n-ar kde-l10n-bg kde-l10n-bn_IN kde-l10n-ca kde-l10n-cs kde-l10n-csb kde-l10n-da kde-l10n-de kde-l10n-el kde-l10n-en_GB kde-l10n-es kde-l10n-et kde-l10n-eu kde-l10n-fi kde-l10n-fr kde-l10n-ga kde-l10n-gl kde-l10n-gu kde-l10n-he kde-l10n-hi kde-l10n-hu kde-l10n-is kde-l10n-it kde-l10n-ja kde-l10n-kk kde-l10n-km kde-l10n-kn kde-l10n-ko kde-l10n-ku kde-l10n-lt kde-l10n-lv kde-l10n-mai kde-l10n-mk kde-l10n-ml kde-l10n-mr kde-l10n-nb kde-l10n-nds kde-l10n-nl kde-l10n-nn kde-l10n-pa kde-l10n-pl kde-l10n-pt kde-l10n-pt_BR kde-l10n-ro kde-l10n-ru kde-l10n-sk kde-l10n-sl kde-l10n-sr kde-l10n-sv kde-l10n-tg kde-l10n-th kde-l10n-tr kde-l10n-uk kde-l10n-wa kde-l10n-zh_CN kde-l10n-zh_TW koffice-l10n-ca koffice-l10n-cs koffice-l10n-da koffice-l10n-de koffice-l10n-el koffice-l10n-en_GB koffice-l10n-es koffice-l10n-et koffice-l10n-fr koffice-l10n-fy koffice-l10n-gl koffice-l10n-hi koffice-l10n-it koffice-l10n-ja koffice-l10n-kk koffice-l10n-nb koffice-l10n-nds koffice-l10n-nl koffice-l10n-pl koffice-l10n-pt koffice-l10n-pt_BR koffice-l10n-sv koffice-l10n-tr koffice-l10n-uk koffice-l10n-wa koffice-l10n-zh_CN koffice-l10n-zh_TW \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +kde-l10n-ar kde-l10n-bg kde-l10n-bn_IN kde-l10n-ca kde-l10n-cs kde-l10n-csb kde-l10n-da kde-l10n-de kde-l10n-el kde-l10n-en_GB kde-l10n-es kde-l10n-et kde-l10n-eu kde-l10n-fi kde-l10n-fr kde-l10n-ga kde-l10n-gl kde-l10n-gu kde-l10n-he kde-l10n-hi kde-l10n-hu kde-l10n-is kde-l10n-it kde-l10n-ja kde-l10n-kk kde-l10n-km kde-l10n-kn kde-l10n-ko kde-l10n-ku kde-l10n-lt kde-l10n-lv kde-l10n-mai kde-l10n-mk kde-l10n-ml kde-l10n-mr kde-l10n-nb kde-l10n-nds kde-l10n-nl kde-l10n-nn kde-l10n-pa kde-l10n-pl kde-l10n-pt kde-l10n-pt_BR kde-l10n-ro kde-l10n-ru kde-l10n-sk kde-l10n-sl kde-l10n-sr kde-l10n-sv kde-l10n-tg kde-l10n-th kde-l10n-tr kde-l10n-uk kde-l10n-wa kde-l10n-zh_CN kde-l10n-zh_TW koffice-l10n-ca koffice-l10n-cs koffice-l10n-da koffice-l10n-de koffice-l10n-el koffice-l10n-en_GB koffice-l10n-es koffice-l10n-et koffice-l10n-fr koffice-l10n-fy koffice-l10n-gl koffice-l10n-hi koffice-l10n-it koffice-l10n-ja koffice-l10n-kk koffice-l10n-nb koffice-l10n-nds koffice-l10n-nl koffice-l10n-pl koffice-l10n-pt koffice-l10n-pt_BR koffice-l10n-sv koffice-l10n-tr koffice-l10n-uk koffice-l10n-wa koffice-l10n-zh_CN koffice-l10n-zh_TW \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/kdei/tagfile b/slackware64/kdei/tagfile new file mode 100644 index 000000000..299b1aff0 --- /dev/null +++ b/slackware64/kdei/tagfile @@ -0,0 +1,83 @@ +kde-l10n-ar:OPT +kde-l10n-bg:OPT +kde-l10n-bn_IN:OPT +kde-l10n-ca:OPT +kde-l10n-cs:OPT +kde-l10n-csb:OPT +kde-l10n-da:OPT +kde-l10n-de:OPT +kde-l10n-el:OPT +kde-l10n-en_GB:OPT +kde-l10n-es:OPT +kde-l10n-et:OPT +kde-l10n-eu:OPT +kde-l10n-fi:OPT +kde-l10n-fr:OPT +kde-l10n-ga:OPT +kde-l10n-gl:OPT +kde-l10n-gu:OPT +kde-l10n-he:OPT +kde-l10n-hi:OPT +kde-l10n-hu:OPT +kde-l10n-is:OPT +kde-l10n-it:OPT +kde-l10n-ja:OPT +kde-l10n-kk:OPT +kde-l10n-km:OPT +kde-l10n-kn:OPT +kde-l10n-ko:OPT +kde-l10n-ku:OPT +kde-l10n-lt:OPT +kde-l10n-lv:OPT +kde-l10n-mai:OPT +kde-l10n-mk:OPT +kde-l10n-ml:OPT +kde-l10n-mr:OPT +kde-l10n-nb:OPT +kde-l10n-nds:OPT +kde-l10n-nl:OPT +kde-l10n-nn:OPT +kde-l10n-pa:OPT +kde-l10n-pl:OPT +kde-l10n-pt:OPT +kde-l10n-pt_BR:OPT +kde-l10n-ro:OPT +kde-l10n-ru:OPT +kde-l10n-sk:OPT +kde-l10n-sl:OPT +kde-l10n-sr:OPT +kde-l10n-sv:OPT +kde-l10n-tg:OPT +kde-l10n-th:OPT +kde-l10n-tr:OPT +kde-l10n-uk:OPT +kde-l10n-wa:OPT +kde-l10n-zh_CN:OPT +kde-l10n-zh_TW:OPT +koffice-l10n-ca:OPT +koffice-l10n-cs:OPT +koffice-l10n-da:OPT +koffice-l10n-de:OPT +koffice-l10n-el:OPT +koffice-l10n-en_GB:OPT +koffice-l10n-es:OPT +koffice-l10n-et:OPT +koffice-l10n-fr:OPT +koffice-l10n-fy:OPT +koffice-l10n-gl:OPT +koffice-l10n-hi:OPT +koffice-l10n-it:OPT +koffice-l10n-ja:OPT +koffice-l10n-kk:OPT +koffice-l10n-nb:OPT +koffice-l10n-nds:OPT +koffice-l10n-nl:OPT +koffice-l10n-pl:OPT +koffice-l10n-pt:OPT +koffice-l10n-pt_BR:OPT +koffice-l10n-sv:OPT +koffice-l10n-tr:OPT +koffice-l10n-uk:OPT +koffice-l10n-wa:OPT +koffice-l10n-zh_CN:OPT +koffice-l10n-zh_TW:OPT diff --git a/slackware64/l/install-packages b/slackware64/l/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/l/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/l/install.end b/slackware64/l/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/l/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/l/maketag b/slackware64/l/maketag new file mode 100644 index 000000000..d9a7c0095 --- /dev/null +++ b/slackware64/l/maketag @@ -0,0 +1,206 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES L (Libraries)" \ + --checklist "Please confirm the packages you wish to install \ +from series L. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Keep in mind that many of these libraries are required by KDE \ +or other parts of the system. It's safest to install all of these \ +packages even if you aren't sure if you need them. Press ENTER when \ +you are done." 22 74 10 \ +"M2Crypto" "Cryptography toolkit for Python" "on" \ +"PyQt" "Python bindings for Qt" "on" \ +"QScintilla" "Qt port of the Scintilla C++ editor control" "on" \ +"aalib" "ASCII Art library" "on" \ +"akonadi" "PIM storage service" "on" \ +"alsa-lib" "ALSA sound library" "on" \ +"alsa-oss" "OSS compatibility wrapper for ALSA" "on" \ +"apr" "Apache Portable Runtime library" "on" \ +"apr-util" "Extra APR library interfaces" "on" \ +"aspell" "Spell checking library" "on" \ +"aspell-en" "English word list for Aspell" "on" \ +"atk" "Accessability library" "on" \ +"audiofile" "SGI's Audio File sound library" "on" \ +"automoc4" "Automatic moc for Qt4" "on" \ +"babl" "A pixel format translation library" "on" \ +"boost" "Boost C++ Libraries" "on" \ +"cairo" "Vector graphics library used by GTK+" "on" \ +"chmlib" "Library for accessing CHM files" "on" \ +"clucene" "Text-Search Engine" "on" \ +"db42" "Berkeley DB library, version 4.2" "on" \ +"db44" "Berkeley DB library, version 4.4" "on" \ +"dbus-glib" "glib bindings for the dbus IPC library" "on" \ +"dbus-python" "Python bindings for the D-Bus library" "on" \ +"desktop-file-utils" "Tools for .desktop files" "on" \ +"djvulibre" "Web-centric document and image format" "on" \ +"eigen2" "C++ math library" "on" \ +"enchant" "A wrapper for spellcheck libraries" "on" \ +"esound" "Enlightened Sound Daemon" "on" \ +"exiv2" "Exif and IPTC Metadata Library and Tools" "on" \ +"expat" "XML parser library" "on" \ +"freetype" "Font rendering library" "on" \ +"fribidi" "Unicode BiDirectional library" "on" \ +"fuse" "Tools for using filesystems in userspace" "on" \ +"gamin" "a minimalist FAM replacement" "on" \ +"gd" "A graphics library" "on" \ +"gdbm" "The GNU gdbm database library" "on" \ +"gegl" "Generic Graphics Library" "on" \ +"glib" "Support library used by GTK+" "on" \ +"glib2" "GLib version 2" "on" \ +"glibc" "The GNU C library" "on" \ +"glibc-i18n" "Internationalization support for glibc" "on" \ +"glibc-profile" "Profiling support for glibc" "on" \ +"gmime" "MIME parsing library" "on" \ +"gmm" "C++ generic matrix template library" "on" \ +"gmp" "A library for arithmetic" "on" \ +"gnome-icon-theme" "Icons for GTK+ applications" "on" \ +"gst-plugins-base" "A base set of GStreamer plugins" "on" \ +"gstreamer" "Streaming multimedia framework library" "on" \ +"gtk+" "A graphical toolkit library" "on" \ +"gtk+2" "GTK+ version 2" "on" \ +"gtkspell" "GTK+ spell checker interface library" "on" \ +"hal" "The HAL Hardware Abstraction Layer" "on" \ +"hal-info" "Hardware device info for HAL" "on" \ +"hicolor-icon-theme" "Standard icon theme tree" "on" \ +"icon-naming-utils" "Icon naming utilities" "on" \ +"ilmbase" "Industrial Light & Magic base libraries" "on" \ +"imlib" "Image loading and rendering library" "on" \ +"iso-codes" "ISO standard lists" "on" \ +"jasper" "JPEG-2000 library" "on" \ +"jre" "Runtime support for Java(TM)" "on" \ +"lcms" "Little Color Management System" "on" \ +"lesstif" "A Motif clone" "on" \ +"libaio" "Asynchronous I/O library" "on" \ +"libao" "Audio Output library" "on" \ +"libarchive" "Archive reading library" "on" \ +"libart_lgpl" "2D graphics library used by KDE" "on" \ +"libcaca" "Colour AsCii Art library" "on" \ +"libcap" "POSIX capabilities library" "on" \ +"libcddb" "online CD database lookup library" "on" \ +"libcdio" "GNU CD I/O library" "on" \ +"libdvdread" "Library for reading DVDs" "on" \ +"libexif" "EXIF (image information) library" "on" \ +"libglade" "An interface construction library" "on" \ +"libgphoto2" "A library for accessing digital cameras" "on" \ +"libgpod" "A library for a popular music device" "on" \ +"libgsf" "File I/O library" "on" \ +"libgtkhtml" "HTML rendering library" "on" \ +"libical" "iCAL protocol implementation" "on" \ +"libid3tag" "ID3 tag manipulation library" "on" \ +"libidl" "Interface Definition Language library" "on" \ +"libidn" "GNU Internationalized Domain Name library" "on" \ +"libieee1284" "Library to identify parallel port devices" "on" \ +"libjpeg" "JPEG image library and tools" "on" \ +"libkarma" "A library for accessing the Rio Karma player" "on" \ +"libmad" "high-quality MPEG audio library" "on" \ +"libmcrypt" "Mcrypt encryption library" "on" \ +"libmcs" "Manages configuration settings" "on" \ +"libmng" "Multiple-image Network Graphics library" "on" \ +"libmowgli" "A collection of programming routines." "on" \ +"libmsn" "MSN Messenger protocol implementation" "on" \ +"libmtp" "MTP media device support library" "on" \ +"libnjb" "Creative Nomad and related device library" "on" \ +"libnl" "Netlink socket library" "on" \ +"libogg" "Ogg Bitstream library" "on" \ +"liboil" "CPU optimizations library" "on" \ +"libpng" "Portable Network Graphics library" "on" \ +"libraw1394" "User space IEEE 1394 driver" "on" \ +"librsvg" "Scalable Vector Graphics library" "on" \ +"libspectre" "Ghostscript wrapper library" "on" \ +"libtermcap" "GNU terminal control library" "on" \ +"libtheora" "Theora video codec library" "on" \ +"libtiff" "Tag Image File format library" "on" \ +"libungif" "GIF extraction library" "on" \ +"libusb" "A library for accessing USB devices" "on" \ +"libvisual" "Audio visualization library" "on" \ +"libvisual-plugins" "Plugins for the libvisual library" "on" \ +"libvncserver" "VNC Server Library" "on" \ +"libvorbis" "Ogg Vorbis library" "on" \ +"libwmf" "WMF graphics format library" "on" \ +"libwmf-docs" "Documentation for libwmf" "on" \ +"libwnck" "Window Navigator Construction Kit library" "on" \ +"libwpd" "WordPerfect document handling library" "on" \ +"libxklavier" "XKB library" "on" \ +"libxml2" "XML parser library v2" "on" \ +"libxslt" "XML transformation library" "on" \ +"libzip" "Zip archive library" "on" \ +"lzo" "fast data compression library" "on" \ +"mhash" "Thread-safe hash library" "on" \ +"mm" "Shared Memory Allocation library" "on" \ +"mpfr" "Another math lib based on GMP" "on" \ +"ncurses" "CRT screen handling package" "on" \ +"neon" "HTTP and WebDAV client library" "on" \ +"netpbm" "Graphics library and tools" "on" \ +"openexr" "HDR image file format and library" "on" \ +"pango" "Text rendering library" "on" \ +"parted" "GNU parted, a partition manipulation program" "on" \ +"pcre" "Perl-compatible regular expression library" "on" \ +"phonon" "Multimedia framework for KDE4" "on" \ +"pil" "Python Imaging Library" "on" \ +"pilot-link" "PalmOS communication library" "on" \ +"poppler" "Portable Document Format (PDF) library" "on" \ +"poppler-data" "Data files that can be used by poppler" "on" \ +"popt" "Command line parsing library" "on" \ +"pycairo" "Python bindings for cairo" "on" \ +"pycups" "Python bindings for the CUPS API" "on" \ +"pygobject" "GObject bindings for Python" "on" \ +"pygtk" "GTK+ bindings for Python" "on" \ +"pyrex" "A Python extension language" "on" \ +"qca" "Qt Cryptographic Architecture" "on" \ +"qca-cyrus-sasl" "Cyrus SASL plugin for QCA" "on" \ +"qca-gnupg" "GnuPG plugin for QCA" "on" \ +"qca-ossl" "OpenSSL plugin for QCA" "on" \ +"qimageblitz" "Graphical effect/filter library for KDE4" "on" \ +"qt" "C++ GUI library used by KDE" "on" \ +"qtscriptgenerator" "Qt API Bindings for QtScript" "on" \ +"raptor" "RDF parser and serializer" "on" \ +"rasqal" "RDF parsing library" "on" \ +"readline" "Input library with editing" "on" \ +"redland" "RDF high-level interface library" "on" \ +"sdl" "Simple DirectMedia Layer library" "on" \ +"seamonkey-solibs" "SeaMonkey shared libraries (runtime subset)" "on" \ +"shared-mime-info" "MIME database" "on" \ +"sip" "Tool for generating Python bindings" "on" \ +"slang" "S-Lang interpreted language and library v2" "on" \ +"slang1" "S-Lang interpreted language and library v1" "on" \ +"soprano" "C++/Qt4 framework for RDF data" "on" \ +"startup-notification" "Busy cursor library" "on" \ +"strigi" "Fast and light desktop search engine" "on" \ +"svgalib" "Super-VGA Graphics Library" "on" \ +"t1lib" "Library for handling Type 1 fonts" "on" \ +"taglib" "Audio meta-data library" "on" \ +"taglib-extras" "Taglib extra formats support" "on" \ +"tango-icon-theme" "Tango icon theme" "on" \ +"tango-icon-theme-extras" "Extra icons for the Tango icon theme" "on" \ +"urwid" "Python console UI module" "on" \ +"vte" "A terminal emulator for GTK+" "on" \ +"wavpack" "A lossless WAV file compressor" "on" \ +"wv2" "MS Word .doc import library" "on" \ +"zlib" "general purpose data compression library" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +M2Crypto PyQt QScintilla aalib akonadi alsa-lib alsa-oss apr apr-util aspell aspell-en atk audiofile automoc4 babl boost cairo chmlib clucene db42 db44 dbus-glib dbus-python desktop-file-utils djvulibre eigen2 enchant esound exiv2 expat freetype fribidi fuse gamin gd gdbm gegl glib glib2 glibc glibc-i18n glibc-profile gmime gmm gmp gnome-icon-theme gst-plugins-base gstreamer gtk+ gtk+2 gtkspell hal hal-info hicolor-icon-theme icon-naming-utils ilmbase imlib iso-codes jasper jre lcms lesstif libaio libao libarchive libart_lgpl libcaca libcap libcddb libcdio libdvdread libexif libglade libgphoto2 libgpod libgsf libgtkhtml libical libid3tag libidl libidn libieee1284 libjpeg libkarma libmad libmcrypt libmcs libmng libmowgli libmsn libmtp libnjb libnl libogg liboil libpng libraw1394 librsvg libspectre libtermcap libtheora libtiff libungif libusb libvisual libvisual-plugins libvncserver libvorbis libwmf libwmf-docs libwnck libwpd libxklavier libxml2 libxslt libzip lzo mhash mm mpfr ncurses neon netpbm openexr pango parted pcre phonon pil pilot-link poppler poppler-data popt pycairo pycups pygobject pygtk pyrex qca qca-cyrus-sasl qca-gnupg qca-ossl qimageblitz qt qtscriptgenerator raptor rasqal readline redland sdl seamonkey-solibs shared-mime-info sip slang slang1 soprano startup-notification strigi svgalib t1lib taglib taglib-extras tango-icon-theme tango-icon-theme-extras urwid vte wavpack wv2 zlib \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +M2Crypto PyQt QScintilla aalib akonadi alsa-lib alsa-oss apr apr-util aspell aspell-en atk audiofile automoc4 babl boost cairo chmlib clucene db42 db44 dbus-glib dbus-python desktop-file-utils djvulibre eigen2 enchant esound exiv2 expat freetype fribidi fuse gamin gd gdbm gegl glib glib2 glibc glibc-i18n glibc-profile gmime gmm gmp gnome-icon-theme gst-plugins-base gstreamer gtk+ gtk+2 gtkspell hal hal-info hicolor-icon-theme icon-naming-utils ilmbase imlib iso-codes jasper jre lcms lesstif libaio libao libarchive libart_lgpl libcaca libcap libcddb libcdio libdvdread libexif libglade libgphoto2 libgpod libgsf libgtkhtml libical libid3tag libidl libidn libieee1284 libjpeg libkarma libmad libmcrypt libmcs libmng libmowgli libmsn libmtp libnjb libnl libogg liboil libpng libraw1394 librsvg libspectre libtermcap libtheora libtiff libungif libusb libvisual libvisual-plugins libvncserver libvorbis libwmf libwmf-docs libwnck libwpd libxklavier libxml2 libxslt libzip lzo mhash mm mpfr ncurses neon netpbm openexr pango parted pcre phonon pil pilot-link poppler poppler-data popt pycairo pycups pygobject pygtk pyrex qca qca-cyrus-sasl qca-gnupg qca-ossl qimageblitz qt qtscriptgenerator raptor rasqal readline redland sdl seamonkey-solibs shared-mime-info sip slang slang1 soprano startup-notification strigi svgalib t1lib taglib taglib-extras tango-icon-theme tango-icon-theme-extras urwid vte wavpack wv2 zlib \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/l/maketag.ez b/slackware64/l/maketag.ez new file mode 100644 index 000000000..d9a7c0095 --- /dev/null +++ b/slackware64/l/maketag.ez @@ -0,0 +1,206 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES L (Libraries)" \ + --checklist "Please confirm the packages you wish to install \ +from series L. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Keep in mind that many of these libraries are required by KDE \ +or other parts of the system. It's safest to install all of these \ +packages even if you aren't sure if you need them. Press ENTER when \ +you are done." 22 74 10 \ +"M2Crypto" "Cryptography toolkit for Python" "on" \ +"PyQt" "Python bindings for Qt" "on" \ +"QScintilla" "Qt port of the Scintilla C++ editor control" "on" \ +"aalib" "ASCII Art library" "on" \ +"akonadi" "PIM storage service" "on" \ +"alsa-lib" "ALSA sound library" "on" \ +"alsa-oss" "OSS compatibility wrapper for ALSA" "on" \ +"apr" "Apache Portable Runtime library" "on" \ +"apr-util" "Extra APR library interfaces" "on" \ +"aspell" "Spell checking library" "on" \ +"aspell-en" "English word list for Aspell" "on" \ +"atk" "Accessability library" "on" \ +"audiofile" "SGI's Audio File sound library" "on" \ +"automoc4" "Automatic moc for Qt4" "on" \ +"babl" "A pixel format translation library" "on" \ +"boost" "Boost C++ Libraries" "on" \ +"cairo" "Vector graphics library used by GTK+" "on" \ +"chmlib" "Library for accessing CHM files" "on" \ +"clucene" "Text-Search Engine" "on" \ +"db42" "Berkeley DB library, version 4.2" "on" \ +"db44" "Berkeley DB library, version 4.4" "on" \ +"dbus-glib" "glib bindings for the dbus IPC library" "on" \ +"dbus-python" "Python bindings for the D-Bus library" "on" \ +"desktop-file-utils" "Tools for .desktop files" "on" \ +"djvulibre" "Web-centric document and image format" "on" \ +"eigen2" "C++ math library" "on" \ +"enchant" "A wrapper for spellcheck libraries" "on" \ +"esound" "Enlightened Sound Daemon" "on" \ +"exiv2" "Exif and IPTC Metadata Library and Tools" "on" \ +"expat" "XML parser library" "on" \ +"freetype" "Font rendering library" "on" \ +"fribidi" "Unicode BiDirectional library" "on" \ +"fuse" "Tools for using filesystems in userspace" "on" \ +"gamin" "a minimalist FAM replacement" "on" \ +"gd" "A graphics library" "on" \ +"gdbm" "The GNU gdbm database library" "on" \ +"gegl" "Generic Graphics Library" "on" \ +"glib" "Support library used by GTK+" "on" \ +"glib2" "GLib version 2" "on" \ +"glibc" "The GNU C library" "on" \ +"glibc-i18n" "Internationalization support for glibc" "on" \ +"glibc-profile" "Profiling support for glibc" "on" \ +"gmime" "MIME parsing library" "on" \ +"gmm" "C++ generic matrix template library" "on" \ +"gmp" "A library for arithmetic" "on" \ +"gnome-icon-theme" "Icons for GTK+ applications" "on" \ +"gst-plugins-base" "A base set of GStreamer plugins" "on" \ +"gstreamer" "Streaming multimedia framework library" "on" \ +"gtk+" "A graphical toolkit library" "on" \ +"gtk+2" "GTK+ version 2" "on" \ +"gtkspell" "GTK+ spell checker interface library" "on" \ +"hal" "The HAL Hardware Abstraction Layer" "on" \ +"hal-info" "Hardware device info for HAL" "on" \ +"hicolor-icon-theme" "Standard icon theme tree" "on" \ +"icon-naming-utils" "Icon naming utilities" "on" \ +"ilmbase" "Industrial Light & Magic base libraries" "on" \ +"imlib" "Image loading and rendering library" "on" \ +"iso-codes" "ISO standard lists" "on" \ +"jasper" "JPEG-2000 library" "on" \ +"jre" "Runtime support for Java(TM)" "on" \ +"lcms" "Little Color Management System" "on" \ +"lesstif" "A Motif clone" "on" \ +"libaio" "Asynchronous I/O library" "on" \ +"libao" "Audio Output library" "on" \ +"libarchive" "Archive reading library" "on" \ +"libart_lgpl" "2D graphics library used by KDE" "on" \ +"libcaca" "Colour AsCii Art library" "on" \ +"libcap" "POSIX capabilities library" "on" \ +"libcddb" "online CD database lookup library" "on" \ +"libcdio" "GNU CD I/O library" "on" \ +"libdvdread" "Library for reading DVDs" "on" \ +"libexif" "EXIF (image information) library" "on" \ +"libglade" "An interface construction library" "on" \ +"libgphoto2" "A library for accessing digital cameras" "on" \ +"libgpod" "A library for a popular music device" "on" \ +"libgsf" "File I/O library" "on" \ +"libgtkhtml" "HTML rendering library" "on" \ +"libical" "iCAL protocol implementation" "on" \ +"libid3tag" "ID3 tag manipulation library" "on" \ +"libidl" "Interface Definition Language library" "on" \ +"libidn" "GNU Internationalized Domain Name library" "on" \ +"libieee1284" "Library to identify parallel port devices" "on" \ +"libjpeg" "JPEG image library and tools" "on" \ +"libkarma" "A library for accessing the Rio Karma player" "on" \ +"libmad" "high-quality MPEG audio library" "on" \ +"libmcrypt" "Mcrypt encryption library" "on" \ +"libmcs" "Manages configuration settings" "on" \ +"libmng" "Multiple-image Network Graphics library" "on" \ +"libmowgli" "A collection of programming routines." "on" \ +"libmsn" "MSN Messenger protocol implementation" "on" \ +"libmtp" "MTP media device support library" "on" \ +"libnjb" "Creative Nomad and related device library" "on" \ +"libnl" "Netlink socket library" "on" \ +"libogg" "Ogg Bitstream library" "on" \ +"liboil" "CPU optimizations library" "on" \ +"libpng" "Portable Network Graphics library" "on" \ +"libraw1394" "User space IEEE 1394 driver" "on" \ +"librsvg" "Scalable Vector Graphics library" "on" \ +"libspectre" "Ghostscript wrapper library" "on" \ +"libtermcap" "GNU terminal control library" "on" \ +"libtheora" "Theora video codec library" "on" \ +"libtiff" "Tag Image File format library" "on" \ +"libungif" "GIF extraction library" "on" \ +"libusb" "A library for accessing USB devices" "on" \ +"libvisual" "Audio visualization library" "on" \ +"libvisual-plugins" "Plugins for the libvisual library" "on" \ +"libvncserver" "VNC Server Library" "on" \ +"libvorbis" "Ogg Vorbis library" "on" \ +"libwmf" "WMF graphics format library" "on" \ +"libwmf-docs" "Documentation for libwmf" "on" \ +"libwnck" "Window Navigator Construction Kit library" "on" \ +"libwpd" "WordPerfect document handling library" "on" \ +"libxklavier" "XKB library" "on" \ +"libxml2" "XML parser library v2" "on" \ +"libxslt" "XML transformation library" "on" \ +"libzip" "Zip archive library" "on" \ +"lzo" "fast data compression library" "on" \ +"mhash" "Thread-safe hash library" "on" \ +"mm" "Shared Memory Allocation library" "on" \ +"mpfr" "Another math lib based on GMP" "on" \ +"ncurses" "CRT screen handling package" "on" \ +"neon" "HTTP and WebDAV client library" "on" \ +"netpbm" "Graphics library and tools" "on" \ +"openexr" "HDR image file format and library" "on" \ +"pango" "Text rendering library" "on" \ +"parted" "GNU parted, a partition manipulation program" "on" \ +"pcre" "Perl-compatible regular expression library" "on" \ +"phonon" "Multimedia framework for KDE4" "on" \ +"pil" "Python Imaging Library" "on" \ +"pilot-link" "PalmOS communication library" "on" \ +"poppler" "Portable Document Format (PDF) library" "on" \ +"poppler-data" "Data files that can be used by poppler" "on" \ +"popt" "Command line parsing library" "on" \ +"pycairo" "Python bindings for cairo" "on" \ +"pycups" "Python bindings for the CUPS API" "on" \ +"pygobject" "GObject bindings for Python" "on" \ +"pygtk" "GTK+ bindings for Python" "on" \ +"pyrex" "A Python extension language" "on" \ +"qca" "Qt Cryptographic Architecture" "on" \ +"qca-cyrus-sasl" "Cyrus SASL plugin for QCA" "on" \ +"qca-gnupg" "GnuPG plugin for QCA" "on" \ +"qca-ossl" "OpenSSL plugin for QCA" "on" \ +"qimageblitz" "Graphical effect/filter library for KDE4" "on" \ +"qt" "C++ GUI library used by KDE" "on" \ +"qtscriptgenerator" "Qt API Bindings for QtScript" "on" \ +"raptor" "RDF parser and serializer" "on" \ +"rasqal" "RDF parsing library" "on" \ +"readline" "Input library with editing" "on" \ +"redland" "RDF high-level interface library" "on" \ +"sdl" "Simple DirectMedia Layer library" "on" \ +"seamonkey-solibs" "SeaMonkey shared libraries (runtime subset)" "on" \ +"shared-mime-info" "MIME database" "on" \ +"sip" "Tool for generating Python bindings" "on" \ +"slang" "S-Lang interpreted language and library v2" "on" \ +"slang1" "S-Lang interpreted language and library v1" "on" \ +"soprano" "C++/Qt4 framework for RDF data" "on" \ +"startup-notification" "Busy cursor library" "on" \ +"strigi" "Fast and light desktop search engine" "on" \ +"svgalib" "Super-VGA Graphics Library" "on" \ +"t1lib" "Library for handling Type 1 fonts" "on" \ +"taglib" "Audio meta-data library" "on" \ +"taglib-extras" "Taglib extra formats support" "on" \ +"tango-icon-theme" "Tango icon theme" "on" \ +"tango-icon-theme-extras" "Extra icons for the Tango icon theme" "on" \ +"urwid" "Python console UI module" "on" \ +"vte" "A terminal emulator for GTK+" "on" \ +"wavpack" "A lossless WAV file compressor" "on" \ +"wv2" "MS Word .doc import library" "on" \ +"zlib" "general purpose data compression library" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +M2Crypto PyQt QScintilla aalib akonadi alsa-lib alsa-oss apr apr-util aspell aspell-en atk audiofile automoc4 babl boost cairo chmlib clucene db42 db44 dbus-glib dbus-python desktop-file-utils djvulibre eigen2 enchant esound exiv2 expat freetype fribidi fuse gamin gd gdbm gegl glib glib2 glibc glibc-i18n glibc-profile gmime gmm gmp gnome-icon-theme gst-plugins-base gstreamer gtk+ gtk+2 gtkspell hal hal-info hicolor-icon-theme icon-naming-utils ilmbase imlib iso-codes jasper jre lcms lesstif libaio libao libarchive libart_lgpl libcaca libcap libcddb libcdio libdvdread libexif libglade libgphoto2 libgpod libgsf libgtkhtml libical libid3tag libidl libidn libieee1284 libjpeg libkarma libmad libmcrypt libmcs libmng libmowgli libmsn libmtp libnjb libnl libogg liboil libpng libraw1394 librsvg libspectre libtermcap libtheora libtiff libungif libusb libvisual libvisual-plugins libvncserver libvorbis libwmf libwmf-docs libwnck libwpd libxklavier libxml2 libxslt libzip lzo mhash mm mpfr ncurses neon netpbm openexr pango parted pcre phonon pil pilot-link poppler poppler-data popt pycairo pycups pygobject pygtk pyrex qca qca-cyrus-sasl qca-gnupg qca-ossl qimageblitz qt qtscriptgenerator raptor rasqal readline redland sdl seamonkey-solibs shared-mime-info sip slang slang1 soprano startup-notification strigi svgalib t1lib taglib taglib-extras tango-icon-theme tango-icon-theme-extras urwid vte wavpack wv2 zlib \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +M2Crypto PyQt QScintilla aalib akonadi alsa-lib alsa-oss apr apr-util aspell aspell-en atk audiofile automoc4 babl boost cairo chmlib clucene db42 db44 dbus-glib dbus-python desktop-file-utils djvulibre eigen2 enchant esound exiv2 expat freetype fribidi fuse gamin gd gdbm gegl glib glib2 glibc glibc-i18n glibc-profile gmime gmm gmp gnome-icon-theme gst-plugins-base gstreamer gtk+ gtk+2 gtkspell hal hal-info hicolor-icon-theme icon-naming-utils ilmbase imlib iso-codes jasper jre lcms lesstif libaio libao libarchive libart_lgpl libcaca libcap libcddb libcdio libdvdread libexif libglade libgphoto2 libgpod libgsf libgtkhtml libical libid3tag libidl libidn libieee1284 libjpeg libkarma libmad libmcrypt libmcs libmng libmowgli libmsn libmtp libnjb libnl libogg liboil libpng libraw1394 librsvg libspectre libtermcap libtheora libtiff libungif libusb libvisual libvisual-plugins libvncserver libvorbis libwmf libwmf-docs libwnck libwpd libxklavier libxml2 libxslt libzip lzo mhash mm mpfr ncurses neon netpbm openexr pango parted pcre phonon pil pilot-link poppler poppler-data popt pycairo pycups pygobject pygtk pyrex qca qca-cyrus-sasl qca-gnupg qca-ossl qimageblitz qt qtscriptgenerator raptor rasqal readline redland sdl seamonkey-solibs shared-mime-info sip slang slang1 soprano startup-notification strigi svgalib t1lib taglib taglib-extras tango-icon-theme tango-icon-theme-extras urwid vte wavpack wv2 zlib \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/l/tagfile b/slackware64/l/tagfile new file mode 100644 index 000000000..b7cb3cb4a --- /dev/null +++ b/slackware64/l/tagfile @@ -0,0 +1,169 @@ +M2Crypto:REC +PyQt:REC +QScintilla:REC +aalib:REC +akonadi:REC +alsa-lib:ADD +alsa-oss:OPT +apr:REC +apr-util:REC +aspell:REC +aspell-en:REC +atk:REC +audiofile:REC +automoc4:REC +babl:REC +boost:REC +cairo:REC +chmlib:REC +clucene:REC +db42:REC +db44:REC +dbus-glib:REC +dbus-python:REC +desktop-file-utils:REC +djvulibre:REC +eigen2:REC +enchant:REC +esound:REC +exiv2:REC +expat:REC +freetype:REC +fribidi:REC +fuse:OPT +gamin:REC +gd:REC +gdbm:REC +gegl:REC +glib:REC +glib2:REC +glibc:REC +glibc-i18n:OPT +glibc-profile:OPT +gmime:REC +gmm:REC +gmp:REC +gnome-icon-theme:REC +gst-plugins-base:ADD +gstreamer:ADD +gtk+:REC +gtk+2:REC +gtkspell:REC +hal:REC +hal-info:REC +hicolor-icon-theme:REC +icon-naming-utils:REC +ilmbase:REC +imlib:REC +iso-codes:REC +jasper:REC +jre:OPT +lcms:REC +lesstif:REC +libaio:REC +libao:REC +libarchive:REC +libart_lgpl:REC +libcaca:OPT +libcap:REC +libcddb:REC +libcdio:REC +libdvdread:REC +libexif:REC +libglade:REC +libgphoto2:REC +libgpod:REC +libgsf:REC +libgtkhtml:REC +libical:REC +libid3tag:REC +libidl:REC +libidn:REC +libieee1284:REC +libjpeg:REC +libkarma:REC +libmad:REC +libmcrypt:REC +libmcs:REC +libmng:REC +libmowgli:REC +libmsn:REC +libmtp:REC +libnjb:REC +libnl:REC +libogg:REC +liboil:REC +libpng:REC +libraw1394:REC +librsvg:REC +libspectre:REC +libtermcap:REC +libtheora:REC +libtiff:REC +libungif:REC +libusb:REC +libvisual:REC +libvisual-plugins:REC +libvncserver:REC +libvorbis:REC +libwmf:REC +libwmf-docs:OPT +libwnck:REC +libwpd:REC +libxklavier:REC +libxml2:REC +libxslt:REC +libzip:REC +lzo:OPT +mhash:REC +mm:REC +mpfr:REC +ncurses:REC +neon:REC +netpbm:REC +openexr:REC +pango:REC +parted:ADD +pcre:REC +phonon:REC +pil:REC +pilot-link:REC +poppler:OPT +poppler-data:OPT +popt:REC +pycairo:REC +pycups:REC +pygobject:REC +pygtk:REC +pyrex:REC +qca:REC +qca-cyrus-sasl:REC +qca-gnupg:REC +qca-ossl:REC +qimageblitz:REC +qt:ADD +qtscriptgenerator:ADD +raptor:REC +rasqal:REC +readline:REC +redland:REC +sdl:REC +seamonkey-solibs:REC +shared-mime-info:REC +sip:REC +slang:REC +slang1:REC +soprano:REC +startup-notification:ADD +strigi:REC +svgalib:REC +t1lib:REC +taglib:REC +taglib-extras:REC +tango-icon-theme:REC +tango-icon-theme-extras:REC +urwid:REC +vte:REC +wavpack:OPT +wv2:REC +zlib:REC diff --git a/slackware64/n/install-packages b/slackware64/n/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/n/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/n/install.end b/slackware64/n/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/n/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/n/maketag b/slackware64/n/maketag new file mode 100644 index 000000000..5a085bab0 --- /dev/null +++ b/slackware64/n/maketag @@ -0,0 +1,160 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES N (NETWORK/NEWS/MAIL/UUCP)" \ + --checklist "Please confirm the packages you wish to install \ +from series N. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +21 72 11 \ +"alpine" "Alpine menu-driven mail program" "on" \ +"autofs" "Linux automounter" "on" \ +"biff+comsat" "Announces email delivery" "on" \ +"bind" "Berkeley Internet Name Domain server" "on" \ +"bluez-firmware" "Firmware for Bluetooth(TM) devices" "on" \ +"bluez-hcidump" "Bluetooth(TM) network analyzer" "on" \ +"bluez-libs" "Libraries to support Bluetooth(TM)" "on" \ +"bluez-utils" "Utilities for Bluetooth(TM)" "on" \ +"bootp" "Internet Bootstrap Protocol server" "on" \ +"bridge-utils" "Tools for setting up Ethernet bridges" "on" \ +"bsd-finger" "BSD finger daemon and client" "on" \ +"crda" "Central Regulatory Domain Agent" "on" \ +"curl" "Command-line URL transfer utility" "on" \ +"cyrus-sasl" "SASL email authentication library" "on" \ +"dhcp" "DHCP server (and client) utilities" "on" \ +"dhcpcd" "DHCP client daemon" "on" \ +"dirmngr" "Certificate Revocation Lists Manager for GPG" "on" \ +"dnsmasq" "Small DNS/DHCP server for a LAN" "on" \ +"elm" "Menu-driven user mail program" "on" \ +"epic4" "EPIC4 Internet Relay Chat (IRC) client" "on" \ +"ethtool" "A tool for configuring Ethernet devices" "on" \ +"fetchmail" "Fetch mail from POP/IMAP/ETRN servers" "on" \ +"getmail" "POP3 mail retrieval tool" "on" \ +"gnupg" "GNU Privacy Guard public key encryption" "on" \ +"gnupg2" "GNU Privacy Guard version 2.x" "on" \ +"gnutls" "GNU TLS/SSL (secure communications) library" "on" \ +"gpa" "GNU Privacy Assistant" "on" \ +"gpgme" "GnuPG Made Easy library" "on" \ +"htdig" "Indexing and search engine" "on" \ +"httpd" "Apache WWW (HTTP) server" "on" \ +"icmpinfo" "Dump or log ICMP packets" "on" \ +"imapd" "ipop3d/imapd remote mail access daemons" "on" \ +"inetd" "Internet super server daemon" "on" \ +"iproute2" "Kernel routing and traffic control" "on" \ +"iptables" "Firewall configuration utility" "on" \ +"iptraf" "Network monitoring program" "on" \ +"iputils" "Some common network tools" "on" \ +"ipw2100-fw" "Firmware for Intel ipw2100 wireless." "on" \ +"ipw2200-fw" "Firmware for Intel ipw2200 wireless." "on" \ +"irssi" "IRSSI Internet Relay Chat (IRC) client" "on" \ +"iw" "Utility for mac80211 based wireless devices" "on" \ +"iwlwifi-3945-ucode" "Microcode for Intel 3945 wireless chips." "on" \ +"iwlwifi-4965-ucode" "Microcode for Intel 4965 wireless chips." "on" \ +"iwlwifi-5000-ucode" "Microcode for Intel 5000 wireless chips." "on" \ +"iwlwifi-5150-ucode" "Microcode for Intel 5150 wireless chips." "on" \ +"lftp" "Shell-like FTP and HTTP transfer program" "on" \ +"libassuan" "Interprocess Communication Library for GPG" "on" \ +"libgcrypt" "General purpose crypto library" "on" \ +"libgpg-error" "GnuPG Error Definitions Library" "on" \ +"libksba" "X.509 & CMS library for S/MIME and TLS" "on" \ +"links" "Text-based WWW browser (with frames)" "on" \ +"lynx" "Classic text-based WWW browser" "on" \ +"mailx" "A simple user mail program" "on" \ +"mcabber" "Jabber messaging client for the console" "on" \ +"metamail" "Metamail multimedia mail extensions" "on" \ +"mtr" "Network diagnosic tool" "on" \ +"mutt" "The Mutt E-Mail Client" "on" \ +"nc" "Netcat network utility" "on" \ +"ncftp" "NcFTP file transfer utilities" "on" \ +"net-snmp" "Simple Network Management Protocol tools" "on" \ +"net-tools" "Utilities required for networking on Linux" "on" \ +"netatalk" "Print/file server for Apple Macs" "on" \ +"netdate" "A simple network time utility" "on" \ +"netkit-bootparamd" "A diskless client server used with Suns" "on" \ +"netkit-ftp" "The BSD FTP client" "on" \ +"netkit-ntalk" "BSD talk daemon/client" "on" \ +"netkit-routed" "An (old) BSD dynamic routing daemon" "on" \ +"netkit-rsh" "BSD rsh suite. Most people use ssh instead." "on" \ +"netkit-rusers" "BSD utility to see who is logged in on a net" "on" \ +"netkit-rwall" "Write to every user on a system" "on" \ +"netkit-rwho" "See information about users on the local net" "on" \ +"netkit-timed" "BSD time server daemon" "on" \ +"netpipes" "Network pipe utilities" "on" \ +"netwatch" "Another network monitoring program" "on" \ +"network-scripts" "Scripts required for networking on Slackware" "on" \ +"netwrite" "Write to users on a remote machine" "on" \ +"newspost" "Posts multipart binaries on USENET" "on" \ +"nfs-utils" "Network File System daemons" "on" \ +"nmap" "Network scanning utility" "on" \ +"nn" "The NN news reader" "on" \ +"ntp" "Network Time Protocol" "on" \ +"obexftp" "Object Exchange FTP client/server" "on" \ +"openldap-client" "LDAP authentication libraries" "on" \ +"openobex" "Object Exchange protocol library" "on" \ +"openssh" "OpenSSH Secure Shell" "on" \ +"openssl" "OpenSSL Secure Sockets Layer toolkit" "on" \ +"openvpn" "Secure IP VPN tunnel daemon" "on" \ +"php" "PHP scripting language for Apache" "on" \ +"pidentd" "TCP/IP IDENT protocol server" "on" \ +"pinentry" "PIN Entry dialogs" "on" \ +"popa3d" "Post Office Protocol v. 3 (POP3) server" "on" \ +"portmap" "Manages NFS and other RPC connections" "on" \ +"ppp" "Point-to-point protocol" "on" \ +"procmail" "Mail delivery/filtering utility" "on" \ +"proftpd" "The Professional FTP (file transfer) daemon" "on" \ +"pssh" "Parallel versions of the openssh tools" "on" \ +"pth" "GNU Portable Threads" "on" \ +"rdist" "Remote file distribution utility" "on" \ +"rp-pppoe" "Connect to ADSL ISPs that use PPPoE" "on" \ +"rsync" "Enhanced replacement for rcp" "on" \ +"rt61-firmware" "Firmware for rt61 wireless cards." "on" \ +"rt71w-firmware" "Firmware for rt71w wireless cards." "on" \ +"samba" "SMB print/file server for Windows LANs" "on" \ +"sendmail" "The sendmail mail transport agent" "on" \ +"sendmail-cf" "Extra configuration files for sendmail" "on" \ +"slrn" "slrn (s-lang read news) news reader" "on" \ +"snownews" "Console RSS reader" "on" \ +"stunnel" "Universal SSL tunnel" "on" \ +"tcp_wrappers" "A daemon and wrapper to increase security" "on" \ +"tcpdump" "Tool for dumping network packets" "on" \ +"telnet" "The telnet client and telnetd daemon" "on" \ +"tftp-hpa" "A TFTP implementation" "on" \ +"tin" "The 'tin' news reader" "on" \ +"traceroute" "Packet tracing utility" "on" \ +"trn" "A threaded news reader" "on" \ +"uucp" "Taylor UUCP with HDB && Taylor configs" "on" \ +"vlan" "Virtual LAN configuration tool" "on" \ +"vsftpd" "The Very Secure FTP (file transfer) daemon" "on" \ +"wget" "WWW/FTP retrieval tool" "on" \ +"whois" "Enhanced whois client" "on" \ +"wireless-tools" "Tools for wireless networking" "on" \ +"wpa_supplicant" "WPA/WPA2/IEEE 802.1X (wireless) Supplicant" "on" \ +"yptools" "NIS servers and clients" "on" \ +"ytalk" "Multi-user talk program" "on" \ +"zd1211-firmware" "Firmware for zd1211 USB wireless" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +alpine autofs biff+comsat bind bluez-firmware bluez-hcidump bluez-libs bluez-utils bootp bridge-utils bsd-finger crda curl cyrus-sasl dhcp dhcpcd dirmngr dnsmasq elm epic4 ethtool fetchmail getmail gnupg gnupg2 gnutls gpa gpgme htdig httpd icmpinfo imapd inetd iproute2 iptables iptraf iputils ipw2100-fw ipw2200-fw irssi iw iwlwifi-3945-ucode iwlwifi-4965-ucode iwlwifi-5000-ucode iwlwifi-5150-ucode lftp libassuan libgcrypt libgpg-error libksba links lynx mailx mcabber metamail mtr mutt nc ncftp net-snmp net-tools netatalk netdate netkit-bootparamd netkit-ftp netkit-ntalk netkit-routed netkit-rsh netkit-rusers netkit-rwall netkit-rwho netkit-timed netpipes netwatch network-scripts netwrite newspost nfs-utils nmap nn ntp obexftp openldap-client openobex openssh openssl openvpn php pidentd pinentry popa3d portmap ppp procmail proftpd pssh pth rdist rp-pppoe rsync rt61-firmware rt71w-firmware samba sendmail sendmail-cf slrn snownews stunnel tcp_wrappers tcpdump telnet tftp-hpa tin traceroute trn uucp vlan vsftpd wget whois wireless-tools wpa_supplicant yptools ytalk zd1211-firmware \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +alpine autofs biff+comsat bind bluez-firmware bluez-hcidump bluez-libs bluez-utils bootp bridge-utils bsd-finger crda curl cyrus-sasl dhcp dhcpcd dirmngr dnsmasq elm epic4 ethtool fetchmail getmail gnupg gnupg2 gnutls gpa gpgme htdig httpd icmpinfo imapd inetd iproute2 iptables iptraf iputils ipw2100-fw ipw2200-fw irssi iw iwlwifi-3945-ucode iwlwifi-4965-ucode iwlwifi-5000-ucode iwlwifi-5150-ucode lftp libassuan libgcrypt libgpg-error libksba links lynx mailx mcabber metamail mtr mutt nc ncftp net-snmp net-tools netatalk netdate netkit-bootparamd netkit-ftp netkit-ntalk netkit-routed netkit-rsh netkit-rusers netkit-rwall netkit-rwho netkit-timed netpipes netwatch network-scripts netwrite newspost nfs-utils nmap nn ntp obexftp openldap-client openobex openssh openssl openvpn php pidentd pinentry popa3d portmap ppp procmail proftpd pssh pth rdist rp-pppoe rsync rt61-firmware rt71w-firmware samba sendmail sendmail-cf slrn snownews stunnel tcp_wrappers tcpdump telnet tftp-hpa tin traceroute trn uucp vlan vsftpd wget whois wireless-tools wpa_supplicant yptools ytalk zd1211-firmware \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/n/maketag.ez b/slackware64/n/maketag.ez new file mode 100644 index 000000000..5a085bab0 --- /dev/null +++ b/slackware64/n/maketag.ez @@ -0,0 +1,160 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES N (NETWORK/NEWS/MAIL/UUCP)" \ + --checklist "Please confirm the packages you wish to install \ +from series N. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +21 72 11 \ +"alpine" "Alpine menu-driven mail program" "on" \ +"autofs" "Linux automounter" "on" \ +"biff+comsat" "Announces email delivery" "on" \ +"bind" "Berkeley Internet Name Domain server" "on" \ +"bluez-firmware" "Firmware for Bluetooth(TM) devices" "on" \ +"bluez-hcidump" "Bluetooth(TM) network analyzer" "on" \ +"bluez-libs" "Libraries to support Bluetooth(TM)" "on" \ +"bluez-utils" "Utilities for Bluetooth(TM)" "on" \ +"bootp" "Internet Bootstrap Protocol server" "on" \ +"bridge-utils" "Tools for setting up Ethernet bridges" "on" \ +"bsd-finger" "BSD finger daemon and client" "on" \ +"crda" "Central Regulatory Domain Agent" "on" \ +"curl" "Command-line URL transfer utility" "on" \ +"cyrus-sasl" "SASL email authentication library" "on" \ +"dhcp" "DHCP server (and client) utilities" "on" \ +"dhcpcd" "DHCP client daemon" "on" \ +"dirmngr" "Certificate Revocation Lists Manager for GPG" "on" \ +"dnsmasq" "Small DNS/DHCP server for a LAN" "on" \ +"elm" "Menu-driven user mail program" "on" \ +"epic4" "EPIC4 Internet Relay Chat (IRC) client" "on" \ +"ethtool" "A tool for configuring Ethernet devices" "on" \ +"fetchmail" "Fetch mail from POP/IMAP/ETRN servers" "on" \ +"getmail" "POP3 mail retrieval tool" "on" \ +"gnupg" "GNU Privacy Guard public key encryption" "on" \ +"gnupg2" "GNU Privacy Guard version 2.x" "on" \ +"gnutls" "GNU TLS/SSL (secure communications) library" "on" \ +"gpa" "GNU Privacy Assistant" "on" \ +"gpgme" "GnuPG Made Easy library" "on" \ +"htdig" "Indexing and search engine" "on" \ +"httpd" "Apache WWW (HTTP) server" "on" \ +"icmpinfo" "Dump or log ICMP packets" "on" \ +"imapd" "ipop3d/imapd remote mail access daemons" "on" \ +"inetd" "Internet super server daemon" "on" \ +"iproute2" "Kernel routing and traffic control" "on" \ +"iptables" "Firewall configuration utility" "on" \ +"iptraf" "Network monitoring program" "on" \ +"iputils" "Some common network tools" "on" \ +"ipw2100-fw" "Firmware for Intel ipw2100 wireless." "on" \ +"ipw2200-fw" "Firmware for Intel ipw2200 wireless." "on" \ +"irssi" "IRSSI Internet Relay Chat (IRC) client" "on" \ +"iw" "Utility for mac80211 based wireless devices" "on" \ +"iwlwifi-3945-ucode" "Microcode for Intel 3945 wireless chips." "on" \ +"iwlwifi-4965-ucode" "Microcode for Intel 4965 wireless chips." "on" \ +"iwlwifi-5000-ucode" "Microcode for Intel 5000 wireless chips." "on" \ +"iwlwifi-5150-ucode" "Microcode for Intel 5150 wireless chips." "on" \ +"lftp" "Shell-like FTP and HTTP transfer program" "on" \ +"libassuan" "Interprocess Communication Library for GPG" "on" \ +"libgcrypt" "General purpose crypto library" "on" \ +"libgpg-error" "GnuPG Error Definitions Library" "on" \ +"libksba" "X.509 & CMS library for S/MIME and TLS" "on" \ +"links" "Text-based WWW browser (with frames)" "on" \ +"lynx" "Classic text-based WWW browser" "on" \ +"mailx" "A simple user mail program" "on" \ +"mcabber" "Jabber messaging client for the console" "on" \ +"metamail" "Metamail multimedia mail extensions" "on" \ +"mtr" "Network diagnosic tool" "on" \ +"mutt" "The Mutt E-Mail Client" "on" \ +"nc" "Netcat network utility" "on" \ +"ncftp" "NcFTP file transfer utilities" "on" \ +"net-snmp" "Simple Network Management Protocol tools" "on" \ +"net-tools" "Utilities required for networking on Linux" "on" \ +"netatalk" "Print/file server for Apple Macs" "on" \ +"netdate" "A simple network time utility" "on" \ +"netkit-bootparamd" "A diskless client server used with Suns" "on" \ +"netkit-ftp" "The BSD FTP client" "on" \ +"netkit-ntalk" "BSD talk daemon/client" "on" \ +"netkit-routed" "An (old) BSD dynamic routing daemon" "on" \ +"netkit-rsh" "BSD rsh suite. Most people use ssh instead." "on" \ +"netkit-rusers" "BSD utility to see who is logged in on a net" "on" \ +"netkit-rwall" "Write to every user on a system" "on" \ +"netkit-rwho" "See information about users on the local net" "on" \ +"netkit-timed" "BSD time server daemon" "on" \ +"netpipes" "Network pipe utilities" "on" \ +"netwatch" "Another network monitoring program" "on" \ +"network-scripts" "Scripts required for networking on Slackware" "on" \ +"netwrite" "Write to users on a remote machine" "on" \ +"newspost" "Posts multipart binaries on USENET" "on" \ +"nfs-utils" "Network File System daemons" "on" \ +"nmap" "Network scanning utility" "on" \ +"nn" "The NN news reader" "on" \ +"ntp" "Network Time Protocol" "on" \ +"obexftp" "Object Exchange FTP client/server" "on" \ +"openldap-client" "LDAP authentication libraries" "on" \ +"openobex" "Object Exchange protocol library" "on" \ +"openssh" "OpenSSH Secure Shell" "on" \ +"openssl" "OpenSSL Secure Sockets Layer toolkit" "on" \ +"openvpn" "Secure IP VPN tunnel daemon" "on" \ +"php" "PHP scripting language for Apache" "on" \ +"pidentd" "TCP/IP IDENT protocol server" "on" \ +"pinentry" "PIN Entry dialogs" "on" \ +"popa3d" "Post Office Protocol v. 3 (POP3) server" "on" \ +"portmap" "Manages NFS and other RPC connections" "on" \ +"ppp" "Point-to-point protocol" "on" \ +"procmail" "Mail delivery/filtering utility" "on" \ +"proftpd" "The Professional FTP (file transfer) daemon" "on" \ +"pssh" "Parallel versions of the openssh tools" "on" \ +"pth" "GNU Portable Threads" "on" \ +"rdist" "Remote file distribution utility" "on" \ +"rp-pppoe" "Connect to ADSL ISPs that use PPPoE" "on" \ +"rsync" "Enhanced replacement for rcp" "on" \ +"rt61-firmware" "Firmware for rt61 wireless cards." "on" \ +"rt71w-firmware" "Firmware for rt71w wireless cards." "on" \ +"samba" "SMB print/file server for Windows LANs" "on" \ +"sendmail" "The sendmail mail transport agent" "on" \ +"sendmail-cf" "Extra configuration files for sendmail" "on" \ +"slrn" "slrn (s-lang read news) news reader" "on" \ +"snownews" "Console RSS reader" "on" \ +"stunnel" "Universal SSL tunnel" "on" \ +"tcp_wrappers" "A daemon and wrapper to increase security" "on" \ +"tcpdump" "Tool for dumping network packets" "on" \ +"telnet" "The telnet client and telnetd daemon" "on" \ +"tftp-hpa" "A TFTP implementation" "on" \ +"tin" "The 'tin' news reader" "on" \ +"traceroute" "Packet tracing utility" "on" \ +"trn" "A threaded news reader" "on" \ +"uucp" "Taylor UUCP with HDB && Taylor configs" "on" \ +"vlan" "Virtual LAN configuration tool" "on" \ +"vsftpd" "The Very Secure FTP (file transfer) daemon" "on" \ +"wget" "WWW/FTP retrieval tool" "on" \ +"whois" "Enhanced whois client" "on" \ +"wireless-tools" "Tools for wireless networking" "on" \ +"wpa_supplicant" "WPA/WPA2/IEEE 802.1X (wireless) Supplicant" "on" \ +"yptools" "NIS servers and clients" "on" \ +"ytalk" "Multi-user talk program" "on" \ +"zd1211-firmware" "Firmware for zd1211 USB wireless" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +alpine autofs biff+comsat bind bluez-firmware bluez-hcidump bluez-libs bluez-utils bootp bridge-utils bsd-finger crda curl cyrus-sasl dhcp dhcpcd dirmngr dnsmasq elm epic4 ethtool fetchmail getmail gnupg gnupg2 gnutls gpa gpgme htdig httpd icmpinfo imapd inetd iproute2 iptables iptraf iputils ipw2100-fw ipw2200-fw irssi iw iwlwifi-3945-ucode iwlwifi-4965-ucode iwlwifi-5000-ucode iwlwifi-5150-ucode lftp libassuan libgcrypt libgpg-error libksba links lynx mailx mcabber metamail mtr mutt nc ncftp net-snmp net-tools netatalk netdate netkit-bootparamd netkit-ftp netkit-ntalk netkit-routed netkit-rsh netkit-rusers netkit-rwall netkit-rwho netkit-timed netpipes netwatch network-scripts netwrite newspost nfs-utils nmap nn ntp obexftp openldap-client openobex openssh openssl openvpn php pidentd pinentry popa3d portmap ppp procmail proftpd pssh pth rdist rp-pppoe rsync rt61-firmware rt71w-firmware samba sendmail sendmail-cf slrn snownews stunnel tcp_wrappers tcpdump telnet tftp-hpa tin traceroute trn uucp vlan vsftpd wget whois wireless-tools wpa_supplicant yptools ytalk zd1211-firmware \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +alpine autofs biff+comsat bind bluez-firmware bluez-hcidump bluez-libs bluez-utils bootp bridge-utils bsd-finger crda curl cyrus-sasl dhcp dhcpcd dirmngr dnsmasq elm epic4 ethtool fetchmail getmail gnupg gnupg2 gnutls gpa gpgme htdig httpd icmpinfo imapd inetd iproute2 iptables iptraf iputils ipw2100-fw ipw2200-fw irssi iw iwlwifi-3945-ucode iwlwifi-4965-ucode iwlwifi-5000-ucode iwlwifi-5150-ucode lftp libassuan libgcrypt libgpg-error libksba links lynx mailx mcabber metamail mtr mutt nc ncftp net-snmp net-tools netatalk netdate netkit-bootparamd netkit-ftp netkit-ntalk netkit-routed netkit-rsh netkit-rusers netkit-rwall netkit-rwho netkit-timed netpipes netwatch network-scripts netwrite newspost nfs-utils nmap nn ntp obexftp openldap-client openobex openssh openssl openvpn php pidentd pinentry popa3d portmap ppp procmail proftpd pssh pth rdist rp-pppoe rsync rt61-firmware rt71w-firmware samba sendmail sendmail-cf slrn snownews stunnel tcp_wrappers tcpdump telnet tftp-hpa tin traceroute trn uucp vlan vsftpd wget whois wireless-tools wpa_supplicant yptools ytalk zd1211-firmware \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/n/tagfile b/slackware64/n/tagfile new file mode 100644 index 000000000..3506c1cb1 --- /dev/null +++ b/slackware64/n/tagfile @@ -0,0 +1,125 @@ +alpine:OPT +autofs:OPT +biff+comsat:OPT +bind:REC +bluez-firmware:ADD +bluez-hcidump:ADD +bluez-libs:ADD +bluez-utils:ADD +bootp:OPT +bridge-utils:OPT +bsd-finger:OPT +crda:REC +curl:OPT +cyrus-sasl:REC +dhcp:OPT +dhcpcd:REC +dirmngr:REC +dnsmasq:OPT +elm:OPT +epic4:OPT +ethtool:OPT +fetchmail:OPT +getmail:REC +gnupg:OPT +gnupg2:REC +gnutls:ADD +gpa:REC +gpgme:REC +htdig:OPT +httpd:OPT +icmpinfo:OPT +imapd:OPT +inetd:REC +iproute2:OPT +iptables:ADD +iptraf:OPT +iputils:OPT +ipw2100-fw:ADD +ipw2200-fw:ADD +irssi:OPT +iw:REC +iwlwifi-3945-ucode:ADD +iwlwifi-4965-ucode:ADD +iwlwifi-5000-ucode:ADD +iwlwifi-5150-ucode:ADD +lftp:OPT +libassuan:REC +libgcrypt:REC +libgpg-error:REC +libksba:REC +links:OPT +lynx:OPT +mailx:REC +mcabber:OPT +metamail:REC +mtr:OPT +mutt:OPT +nc:OPT +ncftp:OPT +net-snmp:REC +net-tools:OPT +netatalk:OPT +netdate:OPT +netkit-bootparamd:OPT +netkit-ftp:OPT +netkit-ntalk:OPT +netkit-routed:OPT +netkit-rsh:OPT +netkit-rusers:OPT +netkit-rwall:OPT +netkit-rwho:OPT +netkit-timed:OPT +netpipes:OPT +netwatch:OPT +network-scripts:ADD +netwrite:OPT +newspost:OPT +nfs-utils:OPT +nmap:OPT +nn:OPT +ntp:OPT +obexftp:REC +openldap-client:REC +openobex:REC +openssh:REC +openssl:REC +openvpn:OPT +php:OPT +pidentd:REC +pinentry:REC +popa3d:REC +portmap:REC +ppp:OPT +procmail:REC +proftpd:OPT +pssh:OPT +pth:REC +rdist:OPT +rp-pppoe:OPT +rsync:OPT +rt61-firmware:ADD +rt71w-firmware:ADD +samba:OPT +sendmail:REC +sendmail-cf:OPT +slrn:OPT +snownews:OPT +stunnel:OPT +tcp_wrappers:REC +tcpdump:REC +telnet:REC +tftp-hpa:OPT +tin:OPT +traceroute:OPT +trn:OPT +uucp:OPT +vlan:OPT +vsftpd:REC +wget:OPT +whois:OPT +wireless-tools:OPT +wpa_supplicant:REC +yptools:OPT +ytalk:OPT +zd1211-firmware:ADD diff --git a/slackware64/t/install-packages b/slackware64/t/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/t/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/t/install.end b/slackware64/t/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/t/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/t/maketag b/slackware64/t/maketag new file mode 100644 index 000000000..508d959d9 --- /dev/null +++ b/slackware64/t/maketag @@ -0,0 +1,40 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES T (teTeX)" \ + --checklist "Use this menu to confirm the packages you \ +wish to install for series T (The teTeX distribution of TeX). \ +Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +14 70 4 \ +"tetex" "teTeX base package" "on" \ +"tetex-doc" "teTeX documentation" "on" \ +"transfig" "transfig (used by xfig)" "on" \ +"xfig" "drawing tool for LaTeX" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +tetex tetex-doc transfig xfig \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +tetex tetex-doc transfig xfig \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/t/maketag.ez b/slackware64/t/maketag.ez new file mode 100644 index 000000000..508d959d9 --- /dev/null +++ b/slackware64/t/maketag.ez @@ -0,0 +1,40 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES T (teTeX)" \ + --checklist "Use this menu to confirm the packages you \ +wish to install for series T (The teTeX distribution of TeX). \ +Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +14 70 4 \ +"tetex" "teTeX base package" "on" \ +"tetex-doc" "teTeX documentation" "on" \ +"transfig" "transfig (used by xfig)" "on" \ +"xfig" "drawing tool for LaTeX" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +tetex tetex-doc transfig xfig \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +tetex tetex-doc transfig xfig \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/t/tagfile b/slackware64/t/tagfile new file mode 100644 index 000000000..a19aa7de2 --- /dev/null +++ b/slackware64/t/tagfile @@ -0,0 +1,4 @@ +tetex:ADD +tetex-doc:REC +transfig:OPT +xfig:OPT diff --git a/slackware64/tcl/install-packages b/slackware64/tcl/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/tcl/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/tcl/install.end b/slackware64/tcl/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/tcl/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/tcl/maketag b/slackware64/tcl/maketag new file mode 100644 index 000000000..f18d9e7cc --- /dev/null +++ b/slackware64/tcl/maketag @@ -0,0 +1,43 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +rm -rf $TMP/SeTnewtag +rm -rf $TMP/SeTpkgs +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES TCL (Tcl/Tk/TclX)" \ + --checklist "Please confirm the packages you wish to install \ +from series TCL. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +16 70 6 \ +"expect" "A tool for automating interactive applications" "on" \ +"hfsutils" "Tools for reading/writing Macintosh volumes" "on" \ +"tcl" "The TCL script language" "on" \ +"tclx" "Extended Tcl" "on" \ +"tix" "Tix widget library for Tk" "on" \ +"tk" "The TK toolkit for TCL" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +expect hfsutils tcl tclx tix tk \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +expect hfsutils tcl tclx tix tk \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/tcl/maketag.ez b/slackware64/tcl/maketag.ez new file mode 100644 index 000000000..f18d9e7cc --- /dev/null +++ b/slackware64/tcl/maketag.ez @@ -0,0 +1,43 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +rm -rf $TMP/SeTnewtag +rm -rf $TMP/SeTpkgs +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES TCL (Tcl/Tk/TclX)" \ + --checklist "Please confirm the packages you wish to install \ +from series TCL. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +16 70 6 \ +"expect" "A tool for automating interactive applications" "on" \ +"hfsutils" "Tools for reading/writing Macintosh volumes" "on" \ +"tcl" "The TCL script language" "on" \ +"tclx" "Extended Tcl" "on" \ +"tix" "Tix widget library for Tk" "on" \ +"tk" "The TK toolkit for TCL" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +expect hfsutils tcl tclx tix tk \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +expect hfsutils tcl tclx tix tk \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/tcl/tagfile b/slackware64/tcl/tagfile new file mode 100644 index 000000000..736bfd706 --- /dev/null +++ b/slackware64/tcl/tagfile @@ -0,0 +1,6 @@ +expect:OPT +hfsutils:OPT +tcl:ADD +tclx:REC +tix:OPT +tk:REC diff --git a/slackware64/x/install-packages b/slackware64/x/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/x/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/x/install.end b/slackware64/x/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/x/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/x/maketag b/slackware64/x/maketag new file mode 100644 index 000000000..f013ef612 --- /dev/null +++ b/slackware64/x/maketag @@ -0,0 +1,339 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES X (X Window System)" \ + --checklist "Please confirm the packages you wish to install \ +from series X. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +21 76 11 \ +"anthy" "Japanese input method library" "on" \ +"appres" "List X application resource database" "on" \ +"bdftopcf" "convert X font from BDF to PCF format" "on" \ +"beforelight" "A sample screen saver" "on" \ +"bigreqsproto" "Prototype files (.h, .pc) for X" "on" \ +"bitmap" "Bitmap editor and converter utilities for X" "on" \ +"compiz" "Compositing window manager for X" "on" \ +"compositeproto" "Prototype files (.h, .pc) for X" "on" \ +"damageproto" "Prototype files (.h, .pc) for X" "on" \ +"dejavu-fonts-ttf" "DejaVu TrueType font family" "on" \ +"dmxproto" "Prototype files (.h, .pc) for X" "on" \ +"dri2proto" "Prototype files (.h, .pc) for X DRI" "on" \ +"editres" "A dynamic resource editor for X" "on" \ +"encodings" "Font encodings for X" "on" \ +"evieext" "Prototype files (.h, .pc) for X" "on" \ +"fixesproto" "Prototype files (.h, .pc) for X" "on" \ +"font-adobe-100dpi" "font package for X" "on" \ +"font-adobe-75dpi" "font package for X" "on" \ +"font-adobe-utopia-100dpi" "font package for X" "on" \ +"font-adobe-utopia-75dpi" "font package for X" "on" \ +"font-adobe-utopia-type1" "font package for X" "on" \ +"font-alias" "fonts.alias files for X" "on" \ +"font-arabic-misc" "font package for X" "on" \ +"font-bh-100dpi" "font package for X" "on" \ +"font-bh-75dpi" "font package for X" "on" \ +"font-bh-lucidatypewriter-100dpi" "font package for X" "on" \ +"font-bh-lucidatypewriter-75dpi" "font package for X" "on" \ +"font-bh-ttf" "font package for X" "on" \ +"font-bh-type1" "font package for X" "on" \ +"font-bitstream-100dpi" "font package for X" "on" \ +"font-bitstream-75dpi" "font package for X" "on" \ +"font-bitstream-speedo" "font package for X" "on" \ +"font-bitstream-type1" "font package for X" "on" \ +"font-cronyx-cyrillic" "font package for X" "on" \ +"font-cursor-misc" "font package for X" "on" \ +"font-daewoo-misc" "font package for X" "on" \ +"font-dec-misc" "font package for X" "on" \ +"font-ibm-type1" "font package for X" "on" \ +"font-isas-misc" "font package for X" "on" \ +"font-jis-misc" "font package for X" "on" \ +"font-micro-misc" "font package for X" "on" \ +"font-misc-cyrillic" "font package for X" "on" \ +"font-misc-ethiopic" "font package for X" "on" \ +"font-misc-meltho" "font package for X" "on" \ +"font-misc-misc" "font package for X" "on" \ +"font-mutt-misc" "font package for X" "on" \ +"font-schumacher-misc" "font package for X" "on" \ +"font-screen-cyrillic" "font package for X" "on" \ +"font-sony-misc" "font package for X" "on" \ +"font-sun-misc" "font package for X" "on" \ +"font-util" "font utilities package for X" "on" \ +"font-winitzki-cyrillic" "font package for X" "on" \ +"font-xfree86-type1" "font package for X" "on" \ +"fontcacheproto" "Prototype files (.h, .pc) for X" "on" \ +"fontconfig" "Font configuration library" "on" \ +"fontsproto" "Prototype files (.h, .pc) for X" "on" \ +"fonttosfnt" "Wraps a bitmap font in a TrueType wrapper" "on" \ +"fslsfonts" "list fonts served by X font server" "on" \ +"fstobdf" "Generate BDF font from X font server" "on" \ +"gccmakedep" "create dependencies in makefiles with gcc -M" "on" \ +"glew" "OpenGL Extension Wrangler Library" "on" \ +"glproto" "Prototype files (.h, .pc) for X" "on" \ +"iceauth" "ICE authority file utility" "on" \ +"ico" "animate an icosahedron or other polyhedron" "on" \ +"imake" "C preprocessor interface to the make utility" "on" \ +"inputproto" "Prototype files (.h, .pc) for X" "on" \ +"intel-gpu-tools" "Intel DRM driver testing tools" "on" \ +"kbproto" "Prototype files (.h, .pc) for X" "on" \ +"lbxproxy" "Low BandWidth X proxy" "on" \ +"libFS" "libFS is a library for X" "on" \ +"libICE" "libICE is a library for X" "on" \ +"libSM" "libSM is a library for X" "on" \ +"libX11" "libX11 is a library for X" "on" \ +"libXScrnSaver" "libXScrnSaver is a library for X" "on" \ +"libXTrap" "libXTrap is a library for X" "on" \ +"libXau" "libXau is a library for X" "on" \ +"libXaw" "libXaw is a library for X" "on" \ +"libXcomposite" "libXcomposite is a library for X" "on" \ +"libXcursor" "libXcursor is a library for X" "on" \ +"libXdamage" "libXdamage is a library for X" "on" \ +"libXdmcp" "libXdmcp is a library for X" "on" \ +"libXevie" "libXevie is a library for X" "on" \ +"libXext" "libXext is a library for X" "on" \ +"libXfixes" "libXfixes is a library for X" "on" \ +"libXfont" "libXfont is a library for X" "on" \ +"libXfontcache" "libXfontcache is a library for X" "on" \ +"libXft" "libXft is a library for X" "on" \ +"libXi" "libXi is a library for X" "on" \ +"libXinerama" "libXinerama is a library for X" "on" \ +"libXmu" "libXmu is a library for X" "on" \ +"libXp" "libXp is a library for X" "on" \ +"libXpm" "libXpm is a library for X" "on" \ +"libXprintAppUtil" "libXprintAppUtil is a library for X" "on" \ +"libXprintUtil" "libXprintUtil is a library for X" "on" \ +"libXrandr" "libXrandr is a library for X" "on" \ +"libXrender" "libXrender is a library for X" "on" \ +"libXres" "libXres is a library for X" "on" \ +"libXt" "libXt is a library for X" "on" \ +"libXtst" "libXtst is a library for X" "on" \ +"libXv" "libXv is a library for X" "on" \ +"libXvMC" "libXvMC is a library for X" "on" \ +"libXxf86dga" "libXxf86dga is a library for X" "on" \ +"libXxf86misc" "libXxf86misc is a library for X" "on" \ +"libXxf86vm" "libXxf86vm is a library for X" "on" \ +"libdmx" "libdmx is a library for X" "on" \ +"libdrm" "libdrm is a library for X" "on" \ +"liberation-fonts-ttf" "Liberation Fonts TrueType fonts" "on" \ +"libfontenc" "libfontenc is a library for X" "on" \ +"libhangul" "Hangul keyboard input library" "on" \ +"liblbxutil" "liblbxutil is a library for X" "on" \ +"libpciaccess" "PCI access library for X" "on" \ +"libpthread-stubs" "libpthread-stubs is a library for X" "on" \ +"libxcb" "libxcb is a library for X" "on" \ +"libxkbfile" "libxkbfile is a library for X" "on" \ +"libxkbui" "libxkbui is a library for X" "on" \ +"listres" "list resources in widgets" "on" \ +"lndir" "create a tree of symlinks to another directory" "on" \ +"luit" "ISO 2022 support for Unicode terminals" "on" \ +"m17n-lib" "multilingualization library" "on" \ +"makedepend" "create dependencies in makefiles" "on" \ +"mesa" "Mesa 3-D library" "on" \ +"mkcomposecache" "create a cache file for a compose file" "on" \ +"mkfontdir" "create an index of X font files in a directory" "on" \ +"mkfontscale" "create an index of scalable font files for X" "on" \ +"oclock" "A clock widget for the X desktop" "on" \ +"pixman" "Low-level pixel manipulation library" "on" \ +"printproto" "Prototype files (.h, .pc) for X" "on" \ +"proxymngr" "proxy manager service" "on" \ +"randrproto" "Prototype files (.h, .pc) for X" "on" \ +"recordproto" "Prototype files (.h, .pc) for X" "on" \ +"rendercheck" "simple tests of the X Render extension" "on" \ +"renderproto" "Prototype files (.h, .pc) for X" "on" \ +"resourceproto" "Prototype files (.h, .pc) for X" "on" \ +"rgb" "uncompiles rgb color-name databases" "on" \ +"rstart" "an example of a Remote Start client" "on" \ +"sazanami-fonts-ttf" "Japanese TrueType Unicode fonts" "on" \ +"scim" "Smart Common Input Method platform" "on" \ +"scim-anthy" "a SCIM IMEngine module for anthy" "on" \ +"scim-bridge" "another gtk-immodule for SCIM" "on" \ +"scim-hangul" "SCIM IMengine for Hangul" "on" \ +"scim-input-pad" "On-screen input pad for SCIM" "on" \ +"scim-m17n" "SCIM bridge support for m17n input" "on" \ +"scim-pinyin" "smart pinyin IM engine" "on" \ +"scim-tables" "CJK tables IMEngine for scim" "on" \ +"scripts" "miscellaneous scripts for X" "on" \ +"scrnsaverproto" "Prototype files (.h, .pc) for X" "on" \ +"sessreg" "manage utmp/wtmp entries for non-init clients" "on" \ +"setxkbmap" "set the keyboard with the X Keyboard Extension" "on" \ +"showfont" "font dumper for X font server" "on" \ +"sinhala_lklug-font-ttf" "Sinhala Unicode TrueType font" "on" \ +"smproxy" "Session Manager Proxy" "on" \ +"tibmachuni-font-ttf" "Tibetan Machine Unicode font" "on" \ +"trapproto" "Prototype files (.h, .pc) for X" "on" \ +"ttf-indic-fonts" "Indic script TrueType fonts" "on" \ +"twm" "TWM window manager" "on" \ +"util-macros" "m4 macros needed by X" "on" \ +"videoproto" "Prototype files (.h, .pc) for X" "on" \ +"viewres" "graphical class browser for Xt" "on" \ +"wqy-zenhei-font-ttf" "Wen Quan Yi Zen Hei CJK TTF Font" "on" \ +"x11-skel" "Some directories and links needed by X11" "on" \ +"x11perf" "X11 server performance test program" "on" \ +"xauth" "X authority file utility" "on" \ +"xaw3d" "A more 3-D looking version of libXaw" "on" \ +"xbacklight" "Adjust backlight brightness in X" "on" \ +"xbiff" "mailbox flag for X" "on" \ +"xbitmaps" "various bitmaps used by X" "on" \ +"xcalc" "A calculator program for X" "on" \ +"xcb-proto" "Prototype files (.h, .pc) for X" "on" \ +"xcb-util" "Utilities for XCB" "on" \ +"xclipboard" "X clipboard client" "on" \ +"xclock" "A desktop clock program for X" "on" \ +"xcmiscproto" "Prototype files (.h, .pc) for X" "on" \ +"xcmsdb" "Device Color Characterization utility for X" "on" \ +"xcompmgr" "X Compositing Manager" "on" \ +"xconsole" "monitor system console messages with X" "on" \ +"xcursor-themes" "various cursor themes for X" "on" \ +"xcursorgen" "create an X cursor from PNG files" "on" \ +"xdbedizzy" "demo of DBE creating a spinning scene" "on" \ +"xdg-utils" "Scripts to help with desktop integration" "on" \ +"xditview" "display ditroff output" "on" \ +"xdm" "X Display Manager with support for XDMCP" "on" \ +"xdpyinfo" "display information utility for X" "on" \ +"xdriinfo" "query configuration information of DRI drivers" "on" \ +"xedit" "simple text editor for X" "on" \ +"xev" "print contents of X events" "on" \ +"xextproto" "Prototype files (.h, .pc) for X" "on" \ +"xeyes" "Desktop eyes that follow the mouse" "on" \ +"xf86-input-acecad" "acecad input driver for X" "on" \ +"xf86-input-aiptek" "aiptek input driver for X" "on" \ +"xf86-input-citron" "citron input driver for X" "on" \ +"xf86-input-elographics" "elographics input driver for X" "on" \ +"xf86-input-evdev" "evdev input driver for X" "on" \ +"xf86-input-fpit" "fpit input driver for X" "on" \ +"xf86-input-hyperpen" "hyperpen input driver for X" "on" \ +"xf86-input-joystick" "joystick input driver for X" "on" \ +"xf86-input-keyboard" "keyboard input driver for X" "on" \ +"xf86-input-mouse" "mouse input driver for X" "on" \ +"xf86-input-mutouch" "mutouch input driver for X" "on" \ +"xf86-input-penmount" "penmount input driver for X" "on" \ +"xf86-input-synaptics" "Synaptics touchpad input driver for X" "on" \ +"xf86-input-vmmouse" "vmmouse input driver for X" "on" \ +"xf86-input-void" "void input driver for X" "on" \ +"xf86-video-apm" "apm video driver for X" "on" \ +"xf86-video-ark" "ark video driver for X" "on" \ +"xf86-video-ast" "ast video driver for X" "on" \ +"xf86-video-ati" "ati video driver for X" "on" \ +"xf86-video-chips" "chips video driver for X" "on" \ +"xf86-video-cirrus" "cirrus video driver for X" "on" \ +"xf86-video-dummy" "dummy video driver for X" "on" \ +"xf86-video-glint" "glint video driver for X" "on" \ +"xf86-video-i128" "i128 video driver for X" "on" \ +"xf86-video-i740" "i740 video driver for X" "on" \ +"xf86-video-intel" "intel video driver for X" "on" \ +"xf86-video-mach64" "ATI Mach64 video driver for X" "on" \ +"xf86-video-mga" "mga video driver for X" "on" \ +"xf86-video-neomagic" "neomagic video driver for X" "on" \ +"xf86-video-newport" "newport video driver for X" "on" \ +"xf86-video-nv" "nv video driver for X" "on" \ +"xf86-video-openchrome" "VIA UniChrome video driver for X" "on" \ +"xf86-video-r128" "ATI Rage128 video driver for X" "on" \ +"xf86-video-radeonhd" "radeonhd video driver for X" "on" \ +"xf86-video-rendition" "rendition video driver for X" "on" \ +"xf86-video-s3" "s3 video driver for X" "on" \ +"xf86-video-s3virge" "s3virge video driver for X" "on" \ +"xf86-video-savage" "savage video driver for X" "on" \ +"xf86-video-siliconmotion" "siliconmotion video driver for X" "on" \ +"xf86-video-sis" "sis video driver for X" "on" \ +"xf86-video-sisusb" "sisusb video driver for X" "on" \ +"xf86-video-tdfx" "tdfx video driver for X" "on" \ +"xf86-video-tga" "tga video driver for X" "on" \ +"xf86-video-trident" "trident video driver for X" "on" \ +"xf86-video-tseng" "tseng video driver for X" "on" \ +"xf86-video-v4l" "v4l video driver for X" "on" \ +"xf86-video-vesa" "vesa video driver for X" "on" \ +"xf86-video-vmware" "vmware video driver for X" "on" \ +"xf86-video-voodoo" "voodoo video driver for X" "on" \ +"xf86bigfontproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86dga" "test program for the XFree86-DGA extension" "on" \ +"xf86dgaproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86driproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86miscproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86rushproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86vidmodeproto" "Prototype files (.h, .pc) for X" "on" \ +"xfd" "display all the characters in an X font" "on" \ +"xfindproxy" "locate proxy services" "on" \ +"xfontsel" "point and click selection of X11 font names" "on" \ +"xfs" "X font server" "on" \ +"xfsinfo" "X font server information utility" "on" \ +"xfwp" "X firewall proxy" "on" \ +"xgamma" "Adjust gamma correction through the X server" "on" \ +"xgc" "X graphics demo" "on" \ +"xhost" "server access control program for X" "on" \ +"xineramaproto" "Prototype files (.h, .pc) for X" "on" \ +"xinit" "X Window System initializer" "on" \ +"xinput" "Configure and test Xinput devices" "on" \ +"xkbcomp" "compile XKB keyboard description" "on" \ +"xkbevd" "XKB event daemon" "on" \ +"xkbprint" "print an XKB keyboard description" "on" \ +"xkbutils" "miscellaneous keyboard utilities for X" "on" \ +"xkeyboard-config" "XKB data files for supported locales" "on" \ +"xkill" "kill a client by its X resource" "on" \ +"xload" "system load average display for X" "on" \ +"xlogo" "displays the X Window System logo" "on" \ +"xlsatoms" "list interned atoms defined on server" "on" \ +"xlsclients" "list client applications running on a display" "on" \ +"xlsfonts" "server font list displayer for X" "on" \ +"xmag" "magnify parts of the screen" "on" \ +"xman" "A man page viewer for X" "on" \ +"xmessage" "display a message or query in an X window" "on" \ +"xmh" "send and read mail with an X interface to MH" "on" \ +"xmodmap" "Modifies keymap and mouse settings" "on" \ +"xmore" "Text display program for X" "on" \ +"xorg-cf-files" "Config files used by imake and makedepend" "on" \ +"xorg-docs" "Documemtation for the X Window System" "on" \ +"xorg-server" "the primary X.Org X server" "on" \ +"xorg-server-xephyr" "Improved nested X server/client" "on" \ +"xorg-server-xnest" "a nested X server" "on" \ +"xorg-server-xvfb" "an X server for the framebuffer" "on" \ +"xorg-sgml-doctools" "SGML/DocBook additions for X documentation" "on" \ +"xplsprinters" "shows a list of Xprint printers" "on" \ +"xpr" "print an X window dump" "on" \ +"xprehashprinterlist" "recomputes the list of available printers" "on" \ +"xprop" "property displayer for X" "on" \ +"xproto" "Prototype files (.h, .pc) for X" "on" \ +"xproxymanagementprotocol" "Prototype files (.h, .pc) for X" "on" \ +"xpyb" "Python bindings based on XCB" "on" \ +"xrandr" "command line interface to RandR extension" "on" \ +"xrdb" "X server resource database utility" "on" \ +"xrefresh" "refresh all or part of an X screen" "on" \ +"xscope" "X window protocol viewer" "on" \ +"xset" "user preference utility for X" "on" \ +"xsetmode" "set the mode for an X Input device" "on" \ +"xsetpointer" "set an X Input device as the main pointer" "on" \ +"xsetroot" "root window parameter setting utility for X" "on" \ +"xsm" "X Session Manager" "on" \ +"xstdcmap" "X standard colormap utility" "on" \ +"xterm" "The X terminal emulator" "on" \ +"xtrans" "transport bindings for X" "on" \ +"xtrap" "commands for capturing program events" "on" \ +"xvidtune" "video mode tuner for Xorg" "on" \ +"xvinfo" "print X-Video extension adaptor information" "on" \ +"xwd" "dump an image of an X window" "on" \ +"xwininfo" "window information utility for X" "on" \ +"xwud" "image displayer for X" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +anthy appres bdftopcf beforelight bigreqsproto bitmap compiz compositeproto damageproto dejavu-fonts-ttf dmxproto dri2proto editres encodings evieext fixesproto font-adobe-100dpi font-adobe-75dpi font-adobe-utopia-100dpi font-adobe-utopia-75dpi font-adobe-utopia-type1 font-alias font-arabic-misc font-bh-100dpi font-bh-75dpi font-bh-lucidatypewriter-100dpi font-bh-lucidatypewriter-75dpi font-bh-ttf font-bh-type1 font-bitstream-100dpi font-bitstream-75dpi font-bitstream-speedo font-bitstream-type1 font-cronyx-cyrillic font-cursor-misc font-daewoo-misc font-dec-misc font-ibm-type1 font-isas-misc font-jis-misc font-micro-misc font-misc-cyrillic font-misc-ethiopic font-misc-meltho font-misc-misc font-mutt-misc font-schumacher-misc font-screen-cyrillic font-sony-misc font-sun-misc font-util font-winitzki-cyrillic font-xfree86-type1 fontcacheproto fontconfig fontsproto fonttosfnt fslsfonts fstobdf gccmakedep glew glproto iceauth ico imake inputproto intel-gpu-tools kbproto lbxproxy libFS libICE libSM libX11 libXScrnSaver libXTrap libXau libXaw libXcomposite libXcursor libXdamage libXdmcp libXevie libXext libXfixes libXfont libXfontcache libXft libXi libXinerama libXmu libXp libXpm libXprintAppUtil libXprintUtil libXrandr libXrender libXres libXt libXtst libXv libXvMC libXxf86dga libXxf86misc libXxf86vm libdmx libdrm liberation-fonts-ttf libfontenc libhangul liblbxutil libpciaccess libpthread-stubs libxcb libxkbfile libxkbui listres lndir luit m17n-lib makedepend mesa mkcomposecache mkfontdir mkfontscale oclock pixman printproto proxymngr randrproto recordproto rendercheck renderproto resourceproto rgb rstart sazanami-fonts-ttf scim scim-anthy scim-bridge scim-hangul scim-input-pad scim-m17n scim-pinyin scim-tables scripts scrnsaverproto sessreg setxkbmap showfont sinhala_lklug-font-ttf smproxy tibmachuni-font-ttf trapproto ttf-indic-fonts twm util-macros videoproto viewres wqy-zenhei-font-ttf x11-skel x11perf xauth xaw3d xbacklight xbiff xbitmaps xcalc xcb-proto xcb-util xclipboard xclock xcmiscproto xcmsdb xcompmgr xconsole xcursor-themes xcursorgen xdbedizzy xdg-utils xditview xdm xdpyinfo xdriinfo xedit xev xextproto xeyes xf86-input-acecad xf86-input-aiptek xf86-input-citron xf86-input-elographics xf86-input-evdev xf86-input-fpit xf86-input-hyperpen xf86-input-joystick xf86-input-keyboard xf86-input-mouse xf86-input-mutouch xf86-input-penmount xf86-input-synaptics xf86-input-vmmouse xf86-input-void xf86-video-apm xf86-video-ark xf86-video-ast xf86-video-ati xf86-video-chips xf86-video-cirrus xf86-video-dummy xf86-video-glint xf86-video-i128 xf86-video-i740 xf86-video-intel xf86-video-mach64 xf86-video-mga xf86-video-neomagic xf86-video-newport xf86-video-nv xf86-video-openchrome xf86-video-r128 xf86-video-radeonhd xf86-video-rendition xf86-video-s3 xf86-video-s3virge xf86-video-savage xf86-video-siliconmotion xf86-video-sis xf86-video-sisusb xf86-video-tdfx xf86-video-tga xf86-video-trident xf86-video-tseng xf86-video-v4l xf86-video-vesa xf86-video-vmware xf86-video-voodoo xf86bigfontproto xf86dga xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfd xfindproxy xfontsel xfs xfsinfo xfwp xgamma xgc xhost xineramaproto xinit xinput xkbcomp xkbevd xkbprint xkbutils xkeyboard-config xkill xload xlogo xlsatoms xlsclients xlsfonts xmag xman xmessage xmh xmodmap xmore xorg-cf-files xorg-docs xorg-server xorg-server-xephyr xorg-server-xnest xorg-server-xvfb xorg-sgml-doctools xplsprinters xpr xprehashprinterlist xprop xproto xproxymanagementprotocol xpyb xrandr xrdb xrefresh xscope xset xsetmode xsetpointer xsetroot xsm xstdcmap xterm xtrans xtrap xvidtune xvinfo xwd xwininfo xwud \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +anthy appres bdftopcf beforelight bigreqsproto bitmap compiz compositeproto damageproto dejavu-fonts-ttf dmxproto dri2proto editres encodings evieext fixesproto font-adobe-100dpi font-adobe-75dpi font-adobe-utopia-100dpi font-adobe-utopia-75dpi font-adobe-utopia-type1 font-alias font-arabic-misc font-bh-100dpi font-bh-75dpi font-bh-lucidatypewriter-100dpi font-bh-lucidatypewriter-75dpi font-bh-ttf font-bh-type1 font-bitstream-100dpi font-bitstream-75dpi font-bitstream-speedo font-bitstream-type1 font-cronyx-cyrillic font-cursor-misc font-daewoo-misc font-dec-misc font-ibm-type1 font-isas-misc font-jis-misc font-micro-misc font-misc-cyrillic font-misc-ethiopic font-misc-meltho font-misc-misc font-mutt-misc font-schumacher-misc font-screen-cyrillic font-sony-misc font-sun-misc font-util font-winitzki-cyrillic font-xfree86-type1 fontcacheproto fontconfig fontsproto fonttosfnt fslsfonts fstobdf gccmakedep glew glproto iceauth ico imake inputproto intel-gpu-tools kbproto lbxproxy libFS libICE libSM libX11 libXScrnSaver libXTrap libXau libXaw libXcomposite libXcursor libXdamage libXdmcp libXevie libXext libXfixes libXfont libXfontcache libXft libXi libXinerama libXmu libXp libXpm libXprintAppUtil libXprintUtil libXrandr libXrender libXres libXt libXtst libXv libXvMC libXxf86dga libXxf86misc libXxf86vm libdmx libdrm liberation-fonts-ttf libfontenc libhangul liblbxutil libpciaccess libpthread-stubs libxcb libxkbfile libxkbui listres lndir luit m17n-lib makedepend mesa mkcomposecache mkfontdir mkfontscale oclock pixman printproto proxymngr randrproto recordproto rendercheck renderproto resourceproto rgb rstart sazanami-fonts-ttf scim scim-anthy scim-bridge scim-hangul scim-input-pad scim-m17n scim-pinyin scim-tables scripts scrnsaverproto sessreg setxkbmap showfont sinhala_lklug-font-ttf smproxy tibmachuni-font-ttf trapproto ttf-indic-fonts twm util-macros videoproto viewres wqy-zenhei-font-ttf x11-skel x11perf xauth xaw3d xbacklight xbiff xbitmaps xcalc xcb-proto xcb-util xclipboard xclock xcmiscproto xcmsdb xcompmgr xconsole xcursor-themes xcursorgen xdbedizzy xdg-utils xditview xdm xdpyinfo xdriinfo xedit xev xextproto xeyes xf86-input-acecad xf86-input-aiptek xf86-input-citron xf86-input-elographics xf86-input-evdev xf86-input-fpit xf86-input-hyperpen xf86-input-joystick xf86-input-keyboard xf86-input-mouse xf86-input-mutouch xf86-input-penmount xf86-input-synaptics xf86-input-vmmouse xf86-input-void xf86-video-apm xf86-video-ark xf86-video-ast xf86-video-ati xf86-video-chips xf86-video-cirrus xf86-video-dummy xf86-video-glint xf86-video-i128 xf86-video-i740 xf86-video-intel xf86-video-mach64 xf86-video-mga xf86-video-neomagic xf86-video-newport xf86-video-nv xf86-video-openchrome xf86-video-r128 xf86-video-radeonhd xf86-video-rendition xf86-video-s3 xf86-video-s3virge xf86-video-savage xf86-video-siliconmotion xf86-video-sis xf86-video-sisusb xf86-video-tdfx xf86-video-tga xf86-video-trident xf86-video-tseng xf86-video-v4l xf86-video-vesa xf86-video-vmware xf86-video-voodoo xf86bigfontproto xf86dga xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfd xfindproxy xfontsel xfs xfsinfo xfwp xgamma xgc xhost xineramaproto xinit xinput xkbcomp xkbevd xkbprint xkbutils xkeyboard-config xkill xload xlogo xlsatoms xlsclients xlsfonts xmag xman xmessage xmh xmodmap xmore xorg-cf-files xorg-docs xorg-server xorg-server-xephyr xorg-server-xnest xorg-server-xvfb xorg-sgml-doctools xplsprinters xpr xprehashprinterlist xprop xproto xproxymanagementprotocol xpyb xrandr xrdb xrefresh xscope xset xsetmode xsetpointer xsetroot xsm xstdcmap xterm xtrans xtrap xvidtune xvinfo xwd xwininfo xwud \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/x/maketag.ez b/slackware64/x/maketag.ez new file mode 100644 index 000000000..f013ef612 --- /dev/null +++ b/slackware64/x/maketag.ez @@ -0,0 +1,339 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES X (X Window System)" \ + --checklist "Please confirm the packages you wish to install \ +from series X. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +21 76 11 \ +"anthy" "Japanese input method library" "on" \ +"appres" "List X application resource database" "on" \ +"bdftopcf" "convert X font from BDF to PCF format" "on" \ +"beforelight" "A sample screen saver" "on" \ +"bigreqsproto" "Prototype files (.h, .pc) for X" "on" \ +"bitmap" "Bitmap editor and converter utilities for X" "on" \ +"compiz" "Compositing window manager for X" "on" \ +"compositeproto" "Prototype files (.h, .pc) for X" "on" \ +"damageproto" "Prototype files (.h, .pc) for X" "on" \ +"dejavu-fonts-ttf" "DejaVu TrueType font family" "on" \ +"dmxproto" "Prototype files (.h, .pc) for X" "on" \ +"dri2proto" "Prototype files (.h, .pc) for X DRI" "on" \ +"editres" "A dynamic resource editor for X" "on" \ +"encodings" "Font encodings for X" "on" \ +"evieext" "Prototype files (.h, .pc) for X" "on" \ +"fixesproto" "Prototype files (.h, .pc) for X" "on" \ +"font-adobe-100dpi" "font package for X" "on" \ +"font-adobe-75dpi" "font package for X" "on" \ +"font-adobe-utopia-100dpi" "font package for X" "on" \ +"font-adobe-utopia-75dpi" "font package for X" "on" \ +"font-adobe-utopia-type1" "font package for X" "on" \ +"font-alias" "fonts.alias files for X" "on" \ +"font-arabic-misc" "font package for X" "on" \ +"font-bh-100dpi" "font package for X" "on" \ +"font-bh-75dpi" "font package for X" "on" \ +"font-bh-lucidatypewriter-100dpi" "font package for X" "on" \ +"font-bh-lucidatypewriter-75dpi" "font package for X" "on" \ +"font-bh-ttf" "font package for X" "on" \ +"font-bh-type1" "font package for X" "on" \ +"font-bitstream-100dpi" "font package for X" "on" \ +"font-bitstream-75dpi" "font package for X" "on" \ +"font-bitstream-speedo" "font package for X" "on" \ +"font-bitstream-type1" "font package for X" "on" \ +"font-cronyx-cyrillic" "font package for X" "on" \ +"font-cursor-misc" "font package for X" "on" \ +"font-daewoo-misc" "font package for X" "on" \ +"font-dec-misc" "font package for X" "on" \ +"font-ibm-type1" "font package for X" "on" \ +"font-isas-misc" "font package for X" "on" \ +"font-jis-misc" "font package for X" "on" \ +"font-micro-misc" "font package for X" "on" \ +"font-misc-cyrillic" "font package for X" "on" \ +"font-misc-ethiopic" "font package for X" "on" \ +"font-misc-meltho" "font package for X" "on" \ +"font-misc-misc" "font package for X" "on" \ +"font-mutt-misc" "font package for X" "on" \ +"font-schumacher-misc" "font package for X" "on" \ +"font-screen-cyrillic" "font package for X" "on" \ +"font-sony-misc" "font package for X" "on" \ +"font-sun-misc" "font package for X" "on" \ +"font-util" "font utilities package for X" "on" \ +"font-winitzki-cyrillic" "font package for X" "on" \ +"font-xfree86-type1" "font package for X" "on" \ +"fontcacheproto" "Prototype files (.h, .pc) for X" "on" \ +"fontconfig" "Font configuration library" "on" \ +"fontsproto" "Prototype files (.h, .pc) for X" "on" \ +"fonttosfnt" "Wraps a bitmap font in a TrueType wrapper" "on" \ +"fslsfonts" "list fonts served by X font server" "on" \ +"fstobdf" "Generate BDF font from X font server" "on" \ +"gccmakedep" "create dependencies in makefiles with gcc -M" "on" \ +"glew" "OpenGL Extension Wrangler Library" "on" \ +"glproto" "Prototype files (.h, .pc) for X" "on" \ +"iceauth" "ICE authority file utility" "on" \ +"ico" "animate an icosahedron or other polyhedron" "on" \ +"imake" "C preprocessor interface to the make utility" "on" \ +"inputproto" "Prototype files (.h, .pc) for X" "on" \ +"intel-gpu-tools" "Intel DRM driver testing tools" "on" \ +"kbproto" "Prototype files (.h, .pc) for X" "on" \ +"lbxproxy" "Low BandWidth X proxy" "on" \ +"libFS" "libFS is a library for X" "on" \ +"libICE" "libICE is a library for X" "on" \ +"libSM" "libSM is a library for X" "on" \ +"libX11" "libX11 is a library for X" "on" \ +"libXScrnSaver" "libXScrnSaver is a library for X" "on" \ +"libXTrap" "libXTrap is a library for X" "on" \ +"libXau" "libXau is a library for X" "on" \ +"libXaw" "libXaw is a library for X" "on" \ +"libXcomposite" "libXcomposite is a library for X" "on" \ +"libXcursor" "libXcursor is a library for X" "on" \ +"libXdamage" "libXdamage is a library for X" "on" \ +"libXdmcp" "libXdmcp is a library for X" "on" \ +"libXevie" "libXevie is a library for X" "on" \ +"libXext" "libXext is a library for X" "on" \ +"libXfixes" "libXfixes is a library for X" "on" \ +"libXfont" "libXfont is a library for X" "on" \ +"libXfontcache" "libXfontcache is a library for X" "on" \ +"libXft" "libXft is a library for X" "on" \ +"libXi" "libXi is a library for X" "on" \ +"libXinerama" "libXinerama is a library for X" "on" \ +"libXmu" "libXmu is a library for X" "on" \ +"libXp" "libXp is a library for X" "on" \ +"libXpm" "libXpm is a library for X" "on" \ +"libXprintAppUtil" "libXprintAppUtil is a library for X" "on" \ +"libXprintUtil" "libXprintUtil is a library for X" "on" \ +"libXrandr" "libXrandr is a library for X" "on" \ +"libXrender" "libXrender is a library for X" "on" \ +"libXres" "libXres is a library for X" "on" \ +"libXt" "libXt is a library for X" "on" \ +"libXtst" "libXtst is a library for X" "on" \ +"libXv" "libXv is a library for X" "on" \ +"libXvMC" "libXvMC is a library for X" "on" \ +"libXxf86dga" "libXxf86dga is a library for X" "on" \ +"libXxf86misc" "libXxf86misc is a library for X" "on" \ +"libXxf86vm" "libXxf86vm is a library for X" "on" \ +"libdmx" "libdmx is a library for X" "on" \ +"libdrm" "libdrm is a library for X" "on" \ +"liberation-fonts-ttf" "Liberation Fonts TrueType fonts" "on" \ +"libfontenc" "libfontenc is a library for X" "on" \ +"libhangul" "Hangul keyboard input library" "on" \ +"liblbxutil" "liblbxutil is a library for X" "on" \ +"libpciaccess" "PCI access library for X" "on" \ +"libpthread-stubs" "libpthread-stubs is a library for X" "on" \ +"libxcb" "libxcb is a library for X" "on" \ +"libxkbfile" "libxkbfile is a library for X" "on" \ +"libxkbui" "libxkbui is a library for X" "on" \ +"listres" "list resources in widgets" "on" \ +"lndir" "create a tree of symlinks to another directory" "on" \ +"luit" "ISO 2022 support for Unicode terminals" "on" \ +"m17n-lib" "multilingualization library" "on" \ +"makedepend" "create dependencies in makefiles" "on" \ +"mesa" "Mesa 3-D library" "on" \ +"mkcomposecache" "create a cache file for a compose file" "on" \ +"mkfontdir" "create an index of X font files in a directory" "on" \ +"mkfontscale" "create an index of scalable font files for X" "on" \ +"oclock" "A clock widget for the X desktop" "on" \ +"pixman" "Low-level pixel manipulation library" "on" \ +"printproto" "Prototype files (.h, .pc) for X" "on" \ +"proxymngr" "proxy manager service" "on" \ +"randrproto" "Prototype files (.h, .pc) for X" "on" \ +"recordproto" "Prototype files (.h, .pc) for X" "on" \ +"rendercheck" "simple tests of the X Render extension" "on" \ +"renderproto" "Prototype files (.h, .pc) for X" "on" \ +"resourceproto" "Prototype files (.h, .pc) for X" "on" \ +"rgb" "uncompiles rgb color-name databases" "on" \ +"rstart" "an example of a Remote Start client" "on" \ +"sazanami-fonts-ttf" "Japanese TrueType Unicode fonts" "on" \ +"scim" "Smart Common Input Method platform" "on" \ +"scim-anthy" "a SCIM IMEngine module for anthy" "on" \ +"scim-bridge" "another gtk-immodule for SCIM" "on" \ +"scim-hangul" "SCIM IMengine for Hangul" "on" \ +"scim-input-pad" "On-screen input pad for SCIM" "on" \ +"scim-m17n" "SCIM bridge support for m17n input" "on" \ +"scim-pinyin" "smart pinyin IM engine" "on" \ +"scim-tables" "CJK tables IMEngine for scim" "on" \ +"scripts" "miscellaneous scripts for X" "on" \ +"scrnsaverproto" "Prototype files (.h, .pc) for X" "on" \ +"sessreg" "manage utmp/wtmp entries for non-init clients" "on" \ +"setxkbmap" "set the keyboard with the X Keyboard Extension" "on" \ +"showfont" "font dumper for X font server" "on" \ +"sinhala_lklug-font-ttf" "Sinhala Unicode TrueType font" "on" \ +"smproxy" "Session Manager Proxy" "on" \ +"tibmachuni-font-ttf" "Tibetan Machine Unicode font" "on" \ +"trapproto" "Prototype files (.h, .pc) for X" "on" \ +"ttf-indic-fonts" "Indic script TrueType fonts" "on" \ +"twm" "TWM window manager" "on" \ +"util-macros" "m4 macros needed by X" "on" \ +"videoproto" "Prototype files (.h, .pc) for X" "on" \ +"viewres" "graphical class browser for Xt" "on" \ +"wqy-zenhei-font-ttf" "Wen Quan Yi Zen Hei CJK TTF Font" "on" \ +"x11-skel" "Some directories and links needed by X11" "on" \ +"x11perf" "X11 server performance test program" "on" \ +"xauth" "X authority file utility" "on" \ +"xaw3d" "A more 3-D looking version of libXaw" "on" \ +"xbacklight" "Adjust backlight brightness in X" "on" \ +"xbiff" "mailbox flag for X" "on" \ +"xbitmaps" "various bitmaps used by X" "on" \ +"xcalc" "A calculator program for X" "on" \ +"xcb-proto" "Prototype files (.h, .pc) for X" "on" \ +"xcb-util" "Utilities for XCB" "on" \ +"xclipboard" "X clipboard client" "on" \ +"xclock" "A desktop clock program for X" "on" \ +"xcmiscproto" "Prototype files (.h, .pc) for X" "on" \ +"xcmsdb" "Device Color Characterization utility for X" "on" \ +"xcompmgr" "X Compositing Manager" "on" \ +"xconsole" "monitor system console messages with X" "on" \ +"xcursor-themes" "various cursor themes for X" "on" \ +"xcursorgen" "create an X cursor from PNG files" "on" \ +"xdbedizzy" "demo of DBE creating a spinning scene" "on" \ +"xdg-utils" "Scripts to help with desktop integration" "on" \ +"xditview" "display ditroff output" "on" \ +"xdm" "X Display Manager with support for XDMCP" "on" \ +"xdpyinfo" "display information utility for X" "on" \ +"xdriinfo" "query configuration information of DRI drivers" "on" \ +"xedit" "simple text editor for X" "on" \ +"xev" "print contents of X events" "on" \ +"xextproto" "Prototype files (.h, .pc) for X" "on" \ +"xeyes" "Desktop eyes that follow the mouse" "on" \ +"xf86-input-acecad" "acecad input driver for X" "on" \ +"xf86-input-aiptek" "aiptek input driver for X" "on" \ +"xf86-input-citron" "citron input driver for X" "on" \ +"xf86-input-elographics" "elographics input driver for X" "on" \ +"xf86-input-evdev" "evdev input driver for X" "on" \ +"xf86-input-fpit" "fpit input driver for X" "on" \ +"xf86-input-hyperpen" "hyperpen input driver for X" "on" \ +"xf86-input-joystick" "joystick input driver for X" "on" \ +"xf86-input-keyboard" "keyboard input driver for X" "on" \ +"xf86-input-mouse" "mouse input driver for X" "on" \ +"xf86-input-mutouch" "mutouch input driver for X" "on" \ +"xf86-input-penmount" "penmount input driver for X" "on" \ +"xf86-input-synaptics" "Synaptics touchpad input driver for X" "on" \ +"xf86-input-vmmouse" "vmmouse input driver for X" "on" \ +"xf86-input-void" "void input driver for X" "on" \ +"xf86-video-apm" "apm video driver for X" "on" \ +"xf86-video-ark" "ark video driver for X" "on" \ +"xf86-video-ast" "ast video driver for X" "on" \ +"xf86-video-ati" "ati video driver for X" "on" \ +"xf86-video-chips" "chips video driver for X" "on" \ +"xf86-video-cirrus" "cirrus video driver for X" "on" \ +"xf86-video-dummy" "dummy video driver for X" "on" \ +"xf86-video-glint" "glint video driver for X" "on" \ +"xf86-video-i128" "i128 video driver for X" "on" \ +"xf86-video-i740" "i740 video driver for X" "on" \ +"xf86-video-intel" "intel video driver for X" "on" \ +"xf86-video-mach64" "ATI Mach64 video driver for X" "on" \ +"xf86-video-mga" "mga video driver for X" "on" \ +"xf86-video-neomagic" "neomagic video driver for X" "on" \ +"xf86-video-newport" "newport video driver for X" "on" \ +"xf86-video-nv" "nv video driver for X" "on" \ +"xf86-video-openchrome" "VIA UniChrome video driver for X" "on" \ +"xf86-video-r128" "ATI Rage128 video driver for X" "on" \ +"xf86-video-radeonhd" "radeonhd video driver for X" "on" \ +"xf86-video-rendition" "rendition video driver for X" "on" \ +"xf86-video-s3" "s3 video driver for X" "on" \ +"xf86-video-s3virge" "s3virge video driver for X" "on" \ +"xf86-video-savage" "savage video driver for X" "on" \ +"xf86-video-siliconmotion" "siliconmotion video driver for X" "on" \ +"xf86-video-sis" "sis video driver for X" "on" \ +"xf86-video-sisusb" "sisusb video driver for X" "on" \ +"xf86-video-tdfx" "tdfx video driver for X" "on" \ +"xf86-video-tga" "tga video driver for X" "on" \ +"xf86-video-trident" "trident video driver for X" "on" \ +"xf86-video-tseng" "tseng video driver for X" "on" \ +"xf86-video-v4l" "v4l video driver for X" "on" \ +"xf86-video-vesa" "vesa video driver for X" "on" \ +"xf86-video-vmware" "vmware video driver for X" "on" \ +"xf86-video-voodoo" "voodoo video driver for X" "on" \ +"xf86bigfontproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86dga" "test program for the XFree86-DGA extension" "on" \ +"xf86dgaproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86driproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86miscproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86rushproto" "Prototype files (.h, .pc) for X" "on" \ +"xf86vidmodeproto" "Prototype files (.h, .pc) for X" "on" \ +"xfd" "display all the characters in an X font" "on" \ +"xfindproxy" "locate proxy services" "on" \ +"xfontsel" "point and click selection of X11 font names" "on" \ +"xfs" "X font server" "on" \ +"xfsinfo" "X font server information utility" "on" \ +"xfwp" "X firewall proxy" "on" \ +"xgamma" "Adjust gamma correction through the X server" "on" \ +"xgc" "X graphics demo" "on" \ +"xhost" "server access control program for X" "on" \ +"xineramaproto" "Prototype files (.h, .pc) for X" "on" \ +"xinit" "X Window System initializer" "on" \ +"xinput" "Configure and test Xinput devices" "on" \ +"xkbcomp" "compile XKB keyboard description" "on" \ +"xkbevd" "XKB event daemon" "on" \ +"xkbprint" "print an XKB keyboard description" "on" \ +"xkbutils" "miscellaneous keyboard utilities for X" "on" \ +"xkeyboard-config" "XKB data files for supported locales" "on" \ +"xkill" "kill a client by its X resource" "on" \ +"xload" "system load average display for X" "on" \ +"xlogo" "displays the X Window System logo" "on" \ +"xlsatoms" "list interned atoms defined on server" "on" \ +"xlsclients" "list client applications running on a display" "on" \ +"xlsfonts" "server font list displayer for X" "on" \ +"xmag" "magnify parts of the screen" "on" \ +"xman" "A man page viewer for X" "on" \ +"xmessage" "display a message or query in an X window" "on" \ +"xmh" "send and read mail with an X interface to MH" "on" \ +"xmodmap" "Modifies keymap and mouse settings" "on" \ +"xmore" "Text display program for X" "on" \ +"xorg-cf-files" "Config files used by imake and makedepend" "on" \ +"xorg-docs" "Documemtation for the X Window System" "on" \ +"xorg-server" "the primary X.Org X server" "on" \ +"xorg-server-xephyr" "Improved nested X server/client" "on" \ +"xorg-server-xnest" "a nested X server" "on" \ +"xorg-server-xvfb" "an X server for the framebuffer" "on" \ +"xorg-sgml-doctools" "SGML/DocBook additions for X documentation" "on" \ +"xplsprinters" "shows a list of Xprint printers" "on" \ +"xpr" "print an X window dump" "on" \ +"xprehashprinterlist" "recomputes the list of available printers" "on" \ +"xprop" "property displayer for X" "on" \ +"xproto" "Prototype files (.h, .pc) for X" "on" \ +"xproxymanagementprotocol" "Prototype files (.h, .pc) for X" "on" \ +"xpyb" "Python bindings based on XCB" "on" \ +"xrandr" "command line interface to RandR extension" "on" \ +"xrdb" "X server resource database utility" "on" \ +"xrefresh" "refresh all or part of an X screen" "on" \ +"xscope" "X window protocol viewer" "on" \ +"xset" "user preference utility for X" "on" \ +"xsetmode" "set the mode for an X Input device" "on" \ +"xsetpointer" "set an X Input device as the main pointer" "on" \ +"xsetroot" "root window parameter setting utility for X" "on" \ +"xsm" "X Session Manager" "on" \ +"xstdcmap" "X standard colormap utility" "on" \ +"xterm" "The X terminal emulator" "on" \ +"xtrans" "transport bindings for X" "on" \ +"xtrap" "commands for capturing program events" "on" \ +"xvidtune" "video mode tuner for Xorg" "on" \ +"xvinfo" "print X-Video extension adaptor information" "on" \ +"xwd" "dump an image of an X window" "on" \ +"xwininfo" "window information utility for X" "on" \ +"xwud" "image displayer for X" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +anthy appres bdftopcf beforelight bigreqsproto bitmap compiz compositeproto damageproto dejavu-fonts-ttf dmxproto dri2proto editres encodings evieext fixesproto font-adobe-100dpi font-adobe-75dpi font-adobe-utopia-100dpi font-adobe-utopia-75dpi font-adobe-utopia-type1 font-alias font-arabic-misc font-bh-100dpi font-bh-75dpi font-bh-lucidatypewriter-100dpi font-bh-lucidatypewriter-75dpi font-bh-ttf font-bh-type1 font-bitstream-100dpi font-bitstream-75dpi font-bitstream-speedo font-bitstream-type1 font-cronyx-cyrillic font-cursor-misc font-daewoo-misc font-dec-misc font-ibm-type1 font-isas-misc font-jis-misc font-micro-misc font-misc-cyrillic font-misc-ethiopic font-misc-meltho font-misc-misc font-mutt-misc font-schumacher-misc font-screen-cyrillic font-sony-misc font-sun-misc font-util font-winitzki-cyrillic font-xfree86-type1 fontcacheproto fontconfig fontsproto fonttosfnt fslsfonts fstobdf gccmakedep glew glproto iceauth ico imake inputproto intel-gpu-tools kbproto lbxproxy libFS libICE libSM libX11 libXScrnSaver libXTrap libXau libXaw libXcomposite libXcursor libXdamage libXdmcp libXevie libXext libXfixes libXfont libXfontcache libXft libXi libXinerama libXmu libXp libXpm libXprintAppUtil libXprintUtil libXrandr libXrender libXres libXt libXtst libXv libXvMC libXxf86dga libXxf86misc libXxf86vm libdmx libdrm liberation-fonts-ttf libfontenc libhangul liblbxutil libpciaccess libpthread-stubs libxcb libxkbfile libxkbui listres lndir luit m17n-lib makedepend mesa mkcomposecache mkfontdir mkfontscale oclock pixman printproto proxymngr randrproto recordproto rendercheck renderproto resourceproto rgb rstart sazanami-fonts-ttf scim scim-anthy scim-bridge scim-hangul scim-input-pad scim-m17n scim-pinyin scim-tables scripts scrnsaverproto sessreg setxkbmap showfont sinhala_lklug-font-ttf smproxy tibmachuni-font-ttf trapproto ttf-indic-fonts twm util-macros videoproto viewres wqy-zenhei-font-ttf x11-skel x11perf xauth xaw3d xbacklight xbiff xbitmaps xcalc xcb-proto xcb-util xclipboard xclock xcmiscproto xcmsdb xcompmgr xconsole xcursor-themes xcursorgen xdbedizzy xdg-utils xditview xdm xdpyinfo xdriinfo xedit xev xextproto xeyes xf86-input-acecad xf86-input-aiptek xf86-input-citron xf86-input-elographics xf86-input-evdev xf86-input-fpit xf86-input-hyperpen xf86-input-joystick xf86-input-keyboard xf86-input-mouse xf86-input-mutouch xf86-input-penmount xf86-input-synaptics xf86-input-vmmouse xf86-input-void xf86-video-apm xf86-video-ark xf86-video-ast xf86-video-ati xf86-video-chips xf86-video-cirrus xf86-video-dummy xf86-video-glint xf86-video-i128 xf86-video-i740 xf86-video-intel xf86-video-mach64 xf86-video-mga xf86-video-neomagic xf86-video-newport xf86-video-nv xf86-video-openchrome xf86-video-r128 xf86-video-radeonhd xf86-video-rendition xf86-video-s3 xf86-video-s3virge xf86-video-savage xf86-video-siliconmotion xf86-video-sis xf86-video-sisusb xf86-video-tdfx xf86-video-tga xf86-video-trident xf86-video-tseng xf86-video-v4l xf86-video-vesa xf86-video-vmware xf86-video-voodoo xf86bigfontproto xf86dga xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfd xfindproxy xfontsel xfs xfsinfo xfwp xgamma xgc xhost xineramaproto xinit xinput xkbcomp xkbevd xkbprint xkbutils xkeyboard-config xkill xload xlogo xlsatoms xlsclients xlsfonts xmag xman xmessage xmh xmodmap xmore xorg-cf-files xorg-docs xorg-server xorg-server-xephyr xorg-server-xnest xorg-server-xvfb xorg-sgml-doctools xplsprinters xpr xprehashprinterlist xprop xproto xproxymanagementprotocol xpyb xrandr xrdb xrefresh xscope xset xsetmode xsetpointer xsetroot xsm xstdcmap xterm xtrans xtrap xvidtune xvinfo xwd xwininfo xwud \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +anthy appres bdftopcf beforelight bigreqsproto bitmap compiz compositeproto damageproto dejavu-fonts-ttf dmxproto dri2proto editres encodings evieext fixesproto font-adobe-100dpi font-adobe-75dpi font-adobe-utopia-100dpi font-adobe-utopia-75dpi font-adobe-utopia-type1 font-alias font-arabic-misc font-bh-100dpi font-bh-75dpi font-bh-lucidatypewriter-100dpi font-bh-lucidatypewriter-75dpi font-bh-ttf font-bh-type1 font-bitstream-100dpi font-bitstream-75dpi font-bitstream-speedo font-bitstream-type1 font-cronyx-cyrillic font-cursor-misc font-daewoo-misc font-dec-misc font-ibm-type1 font-isas-misc font-jis-misc font-micro-misc font-misc-cyrillic font-misc-ethiopic font-misc-meltho font-misc-misc font-mutt-misc font-schumacher-misc font-screen-cyrillic font-sony-misc font-sun-misc font-util font-winitzki-cyrillic font-xfree86-type1 fontcacheproto fontconfig fontsproto fonttosfnt fslsfonts fstobdf gccmakedep glew glproto iceauth ico imake inputproto intel-gpu-tools kbproto lbxproxy libFS libICE libSM libX11 libXScrnSaver libXTrap libXau libXaw libXcomposite libXcursor libXdamage libXdmcp libXevie libXext libXfixes libXfont libXfontcache libXft libXi libXinerama libXmu libXp libXpm libXprintAppUtil libXprintUtil libXrandr libXrender libXres libXt libXtst libXv libXvMC libXxf86dga libXxf86misc libXxf86vm libdmx libdrm liberation-fonts-ttf libfontenc libhangul liblbxutil libpciaccess libpthread-stubs libxcb libxkbfile libxkbui listres lndir luit m17n-lib makedepend mesa mkcomposecache mkfontdir mkfontscale oclock pixman printproto proxymngr randrproto recordproto rendercheck renderproto resourceproto rgb rstart sazanami-fonts-ttf scim scim-anthy scim-bridge scim-hangul scim-input-pad scim-m17n scim-pinyin scim-tables scripts scrnsaverproto sessreg setxkbmap showfont sinhala_lklug-font-ttf smproxy tibmachuni-font-ttf trapproto ttf-indic-fonts twm util-macros videoproto viewres wqy-zenhei-font-ttf x11-skel x11perf xauth xaw3d xbacklight xbiff xbitmaps xcalc xcb-proto xcb-util xclipboard xclock xcmiscproto xcmsdb xcompmgr xconsole xcursor-themes xcursorgen xdbedizzy xdg-utils xditview xdm xdpyinfo xdriinfo xedit xev xextproto xeyes xf86-input-acecad xf86-input-aiptek xf86-input-citron xf86-input-elographics xf86-input-evdev xf86-input-fpit xf86-input-hyperpen xf86-input-joystick xf86-input-keyboard xf86-input-mouse xf86-input-mutouch xf86-input-penmount xf86-input-synaptics xf86-input-vmmouse xf86-input-void xf86-video-apm xf86-video-ark xf86-video-ast xf86-video-ati xf86-video-chips xf86-video-cirrus xf86-video-dummy xf86-video-glint xf86-video-i128 xf86-video-i740 xf86-video-intel xf86-video-mach64 xf86-video-mga xf86-video-neomagic xf86-video-newport xf86-video-nv xf86-video-openchrome xf86-video-r128 xf86-video-radeonhd xf86-video-rendition xf86-video-s3 xf86-video-s3virge xf86-video-savage xf86-video-siliconmotion xf86-video-sis xf86-video-sisusb xf86-video-tdfx xf86-video-tga xf86-video-trident xf86-video-tseng xf86-video-v4l xf86-video-vesa xf86-video-vmware xf86-video-voodoo xf86bigfontproto xf86dga xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfd xfindproxy xfontsel xfs xfsinfo xfwp xgamma xgc xhost xineramaproto xinit xinput xkbcomp xkbevd xkbprint xkbutils xkeyboard-config xkill xload xlogo xlsatoms xlsclients xlsfonts xmag xman xmessage xmh xmodmap xmore xorg-cf-files xorg-docs xorg-server xorg-server-xephyr xorg-server-xnest xorg-server-xvfb xorg-sgml-doctools xplsprinters xpr xprehashprinterlist xprop xproto xproxymanagementprotocol xpyb xrandr xrdb xrefresh xscope xset xsetmode xsetpointer xsetroot xsm xstdcmap xterm xtrans xtrap xvidtune xvinfo xwd xwininfo xwud \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/x/tagfile b/slackware64/x/tagfile new file mode 100644 index 000000000..20abc6c6c --- /dev/null +++ b/slackware64/x/tagfile @@ -0,0 +1,304 @@ +anthy:REC +appres:REC +bdftopcf:REC +beforelight:REC +bigreqsproto:REC +bitmap:REC +compiz:REC +compositeproto:REC +damageproto:REC +dejavu-fonts-ttf:REC +dmxproto:REC +dri2proto:REC +editres:REC +encodings:REC +evieext:REC +fixesproto:REC +font-adobe-100dpi:REC +font-adobe-75dpi:REC +font-adobe-utopia-100dpi:REC +font-adobe-utopia-75dpi:REC +font-adobe-utopia-type1:REC +font-alias:REC +font-arabic-misc:REC +font-bh-100dpi:REC +font-bh-75dpi:REC +font-bh-lucidatypewriter-100dpi:REC +font-bh-lucidatypewriter-75dpi:REC +font-bh-ttf:REC +font-bh-type1:REC +font-bitstream-100dpi:REC +font-bitstream-75dpi:REC +font-bitstream-speedo:REC +font-bitstream-type1:REC +font-cronyx-cyrillic:REC +font-cursor-misc:REC +font-daewoo-misc:REC +font-dec-misc:REC +font-ibm-type1:REC +font-isas-misc:REC +font-jis-misc:REC +font-micro-misc:REC +font-misc-cyrillic:REC +font-misc-ethiopic:REC +font-misc-meltho:REC +font-misc-misc:REC +font-mutt-misc:REC +font-schumacher-misc:REC +font-screen-cyrillic:REC +font-sony-misc:REC +font-sun-misc:REC +font-util:REC +font-winitzki-cyrillic:REC +font-xfree86-type1:REC +fontcacheproto:REC +fontconfig:ADD +fontsproto:REC +fonttosfnt:REC +fslsfonts:REC +fstobdf:REC +gccmakedep:REC +glew:ADD +glproto:REC +iceauth:REC +ico:REC +imake:REC +inputproto:REC +intel-gpu-tools:ADD +kbproto:REC +lbxproxy:REC +libFS:REC +libICE:REC +libSM:REC +libX11:REC +libXScrnSaver:REC +libXTrap:REC +libXau:REC +libXaw:REC +libXcomposite:REC +libXcursor:REC +libXdamage:REC +libXdmcp:REC +libXevie:REC +libXext:REC +libXfixes:REC +libXfont:REC +libXfontcache:REC +libXft:REC +libXi:REC +libXinerama:REC +libXmu:REC +libXp:REC +libXpm:REC +libXprintAppUtil:REC +libXprintUtil:REC +libXrandr:REC +libXrender:REC +libXres:REC +libXt:REC +libXtst:REC +libXv:REC +libXvMC:REC +libXxf86dga:REC +libXxf86misc:REC +libXxf86vm:REC +libdmx:REC +libdrm:REC +liberation-fonts-ttf:REC +libfontenc:REC +libhangul:REC +liblbxutil:REC +libpciaccess:REC +libpthread-stubs:REC +libxcb:REC +libxkbfile:REC +libxkbui:REC +listres:REC +lndir:REC +luit:REC +m17n-lib:REC +makedepend:REC +mesa:REC +mkcomposecache:REC +mkfontdir:REC +mkfontscale:REC +oclock:REC +pixman:REC +printproto:REC +proxymngr:REC +randrproto:REC +recordproto:REC +rendercheck:REC +renderproto:REC +resourceproto:REC +rgb:REC +rstart:REC +sazanami-fonts-ttf:REC +scim:REC +scim-anthy:REC +scim-bridge:REC +scim-hangul:REC +scim-input-pad:REC +scim-m17n:REC +scim-pinyin:REC +scim-tables:REC +scripts:REC +scrnsaverproto:REC +sessreg:REC +setxkbmap:REC +showfont:REC +sinhala_lklug-font-ttf:REC +smproxy:REC +tibmachuni-font-ttf:REC +trapproto:REC +ttf-indic-fonts:REC +twm:REC +util-macros:REC +videoproto:REC +viewres:REC +wqy-zenhei-font-ttf:REC +x11-skel:REC +x11perf:REC +xauth:REC +xaw3d:REC +xbacklight:REC +xbiff:REC +xbitmaps:REC +xcalc:REC +xcb-proto:REC +xcb-util:ADD +xclipboard:REC +xclock:REC +xcmiscproto:REC +xcmsdb:REC +xcompmgr:REC +xconsole:REC +xcursor-themes:REC +xcursorgen:REC +xdbedizzy:REC +xdg-utils:OPT +xditview:REC +xdm:REC +xdpyinfo:REC +xdriinfo:REC +xedit:REC +xev:REC +xextproto:REC +xeyes:REC +xf86-input-acecad:REC +xf86-input-aiptek:REC +xf86-input-citron:REC +xf86-input-elographics:REC +xf86-input-evdev:REC +xf86-input-fpit:REC +xf86-input-hyperpen:REC +xf86-input-joystick:REC +xf86-input-keyboard:REC +xf86-input-mouse:REC +xf86-input-mutouch:REC +xf86-input-penmount:REC +xf86-input-synaptics:REC +xf86-input-vmmouse:REC +xf86-input-void:REC +xf86-video-apm:REC +xf86-video-ark:REC +xf86-video-ast:REC +xf86-video-ati:REC +xf86-video-chips:REC +xf86-video-cirrus:REC +xf86-video-dummy:REC +xf86-video-glint:REC +xf86-video-i128:REC +xf86-video-i740:REC +xf86-video-intel:REC +xf86-video-mach64:REC +xf86-video-mga:REC +xf86-video-neomagic:REC +xf86-video-newport:REC +xf86-video-nv:REC +xf86-video-openchrome:REC +xf86-video-r128:REC +xf86-video-radeonhd:REC +xf86-video-rendition:REC +xf86-video-s3:REC +xf86-video-s3virge:REC +xf86-video-savage:REC +xf86-video-siliconmotion:REC +xf86-video-sis:REC +xf86-video-sisusb:REC +xf86-video-tdfx:REC +xf86-video-tga:REC +xf86-video-trident:REC +xf86-video-tseng:REC +xf86-video-v4l:REC +xf86-video-vesa:REC +xf86-video-vmware:REC +xf86-video-voodoo:REC +xf86bigfontproto:REC +xf86dga:REC +xf86dgaproto:REC +xf86driproto:REC +xf86miscproto:REC +xf86rushproto:REC +xf86vidmodeproto:REC +xfd:REC +xfindproxy:REC +xfontsel:REC +xfs:REC +xfsinfo:REC +xfwp:REC +xgamma:REC +xgc:REC +xhost:REC +xineramaproto:REC +xinit:REC +xinput:REC +xkbcomp:REC +xkbevd:REC +xkbprint:REC +xkbutils:REC +xkeyboard-config:REC +xkill:REC +xload:REC +xlogo:REC +xlsatoms:REC +xlsclients:REC +xlsfonts:REC +xmag:REC +xman:REC +xmessage:REC +xmh:REC +xmodmap:REC +xmore:REC +xorg-cf-files:REC +xorg-docs:REC +xorg-server:REC +xorg-server-xephyr:ADD +xorg-server-xnest:REC +xorg-server-xvfb:REC +xorg-sgml-doctools:REC +xplsprinters:REC +xpr:REC +xprehashprinterlist:REC +xprop:REC +xproto:REC +xproxymanagementprotocol:REC +xpyb:ADD +xrandr:REC +xrdb:REC +xrefresh:REC +xscope:ADD +xset:REC +xsetmode:REC +xsetpointer:REC +xsetroot:REC +xsm:REC +xstdcmap:REC +xterm:REC +xtrans:REC +xtrap:REC +xvidtune:REC +xvinfo:REC +xwd:REC +xwininfo:REC +xwud:REC diff --git a/slackware64/xap/install-packages b/slackware64/xap/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/xap/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/xap/install.end b/slackware64/xap/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/xap/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/xap/maketag b/slackware64/xap/maketag new file mode 100644 index 000000000..2af6f34d4 --- /dev/null +++ b/slackware64/xap/maketag @@ -0,0 +1,81 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES XAP (X APPLICATIONS)" \ + --checklist "Please confirm the packages you wish to install \ +from series XAP. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +20 70 10 \ +"MPlayer" "Media player" "on" \ +"audacious" "A media player of the XMMS lineage" "on" \ +"audacious-plugins" "Plugins for Audacious to support media types" "on" \ +"blackbox" "Minimalist and fast window manager" "on" \ +"electricsheep" "A distributed screensaver program" "on" \ +"fluxbox" "Window manager based on blackbox" "on" \ +"fvwm" "FVWM window manager" "on" \ +"gftp" "A multithreaded FTP client" "on" \ +"gimp" "GNU Image Manipulation Program" "on" \ +"gkrellm" "Graphical system monitor utility" "on" \ +"gnuchess" "Chess playing programs" "on" \ +"gnuplot" "Gnuplot function plotting utility" "on" \ +"gqview" "A lightweight picture viewing program" "on" \ +"gucharmap" "Unicode character map" "on" \ +"gv" ".ps/.pdf viewer based on Ghostview" "on" \ +"gxine" "Multimedia player (GTK+ user interface)" "on" \ +"imagemagick" "ImageMagick image utilities" "on" \ +"mozilla-firefox" "Mozilla Firefox web browser" "on" \ +"mozilla-thunderbird" "Mozilla Thunderbird email client" "on" \ +"pan" "Pan newsreader (good for Reading News)" "on" \ +"pidgin" "GTK+ based messaging program" "on" \ +"rdesktop" "Remote Desktop Protocol client" "on" \ +"rxvt" "Lightweight xterm alternative" "on" \ +"sane" "Scanner Access Now Easy" "on" \ +"seamonkey" "SeaMonkey Application Suite" "on" \ +"seyon" "A complete telecommunications package" "on" \ +"thunar-volman" "Thunar Volume Manager for Xfce" "on" \ +"vim-gvim" "X/GTK+ GUI add-on for the VIM editor" "on" \ +"windowmaker" "GNU window manager for X" "on" \ +"x11-ssh-askpass" "X11-based SSH passphrase dialog" "on" \ +"x3270" "x3270 - IBM host access tool" "on" \ +"xchat" "IRC client for X" "on" \ +"xfce" "A lightweight desktop environment for X" "on" \ +"xfce4-power-manager" "Power Management daemon for Xfce" "on" \ +"xfractint" "Fractint for X" "on" \ +"xgames" "A collection of games for X" "on" \ +"xine-lib" "Multimedia player libraries" "on" \ +"xine-ui" "Multimedia player (user interface)" "on" \ +"xlockmore" "A screen saver and locker for X" "on" \ +"xmms" "An audio player similar to WinAmp" "on" \ +"xpaint" "A color painting/image editing program" "on" \ +"xpdf" "Portable Document Format (PDF) viewer" "on" \ +"xsane" "X interface to Scanner Access Now Easy" "on" \ +"xscreensaver" "A screen saver and locker for X" "on" \ +"xv" "XV GIF/TIFF/JPEG/PostScript Image Viewer" "on" \ +"xxgdb" "X frontend for the GNU gdb debugger" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +MPlayer audacious audacious-plugins blackbox electricsheep fluxbox fvwm gftp gimp gkrellm gnuchess gnuplot gqview gucharmap gv gxine imagemagick mozilla-firefox mozilla-thunderbird pan pidgin rdesktop rxvt sane seamonkey seyon thunar-volman vim-gvim windowmaker x11-ssh-askpass x3270 xchat xfce xfce4-power-manager xfractint xgames xine-lib xine-ui xlockmore xmms xpaint xpdf xsane xscreensaver xv xxgdb \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +MPlayer audacious audacious-plugins blackbox electricsheep fluxbox fvwm gftp gimp gkrellm gnuchess gnuplot gqview gucharmap gv gxine imagemagick mozilla-firefox mozilla-thunderbird pan pidgin rdesktop rxvt sane seamonkey seyon thunar-volman vim-gvim windowmaker x11-ssh-askpass x3270 xchat xfce xfce4-power-manager xfractint xgames xine-lib xine-ui xlockmore xmms xpaint xpdf xsane xscreensaver xv xxgdb \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/xap/maketag.ez b/slackware64/xap/maketag.ez new file mode 100644 index 000000000..2af6f34d4 --- /dev/null +++ b/slackware64/xap/maketag.ez @@ -0,0 +1,81 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES XAP (X APPLICATIONS)" \ + --checklist "Please confirm the packages you wish to install \ +from series XAP. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +20 70 10 \ +"MPlayer" "Media player" "on" \ +"audacious" "A media player of the XMMS lineage" "on" \ +"audacious-plugins" "Plugins for Audacious to support media types" "on" \ +"blackbox" "Minimalist and fast window manager" "on" \ +"electricsheep" "A distributed screensaver program" "on" \ +"fluxbox" "Window manager based on blackbox" "on" \ +"fvwm" "FVWM window manager" "on" \ +"gftp" "A multithreaded FTP client" "on" \ +"gimp" "GNU Image Manipulation Program" "on" \ +"gkrellm" "Graphical system monitor utility" "on" \ +"gnuchess" "Chess playing programs" "on" \ +"gnuplot" "Gnuplot function plotting utility" "on" \ +"gqview" "A lightweight picture viewing program" "on" \ +"gucharmap" "Unicode character map" "on" \ +"gv" ".ps/.pdf viewer based on Ghostview" "on" \ +"gxine" "Multimedia player (GTK+ user interface)" "on" \ +"imagemagick" "ImageMagick image utilities" "on" \ +"mozilla-firefox" "Mozilla Firefox web browser" "on" \ +"mozilla-thunderbird" "Mozilla Thunderbird email client" "on" \ +"pan" "Pan newsreader (good for Reading News)" "on" \ +"pidgin" "GTK+ based messaging program" "on" \ +"rdesktop" "Remote Desktop Protocol client" "on" \ +"rxvt" "Lightweight xterm alternative" "on" \ +"sane" "Scanner Access Now Easy" "on" \ +"seamonkey" "SeaMonkey Application Suite" "on" \ +"seyon" "A complete telecommunications package" "on" \ +"thunar-volman" "Thunar Volume Manager for Xfce" "on" \ +"vim-gvim" "X/GTK+ GUI add-on for the VIM editor" "on" \ +"windowmaker" "GNU window manager for X" "on" \ +"x11-ssh-askpass" "X11-based SSH passphrase dialog" "on" \ +"x3270" "x3270 - IBM host access tool" "on" \ +"xchat" "IRC client for X" "on" \ +"xfce" "A lightweight desktop environment for X" "on" \ +"xfce4-power-manager" "Power Management daemon for Xfce" "on" \ +"xfractint" "Fractint for X" "on" \ +"xgames" "A collection of games for X" "on" \ +"xine-lib" "Multimedia player libraries" "on" \ +"xine-ui" "Multimedia player (user interface)" "on" \ +"xlockmore" "A screen saver and locker for X" "on" \ +"xmms" "An audio player similar to WinAmp" "on" \ +"xpaint" "A color painting/image editing program" "on" \ +"xpdf" "Portable Document Format (PDF) viewer" "on" \ +"xsane" "X interface to Scanner Access Now Easy" "on" \ +"xscreensaver" "A screen saver and locker for X" "on" \ +"xv" "XV GIF/TIFF/JPEG/PostScript Image Viewer" "on" \ +"xxgdb" "X frontend for the GNU gdb debugger" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +MPlayer audacious audacious-plugins blackbox electricsheep fluxbox fvwm gftp gimp gkrellm gnuchess gnuplot gqview gucharmap gv gxine imagemagick mozilla-firefox mozilla-thunderbird pan pidgin rdesktop rxvt sane seamonkey seyon thunar-volman vim-gvim windowmaker x11-ssh-askpass x3270 xchat xfce xfce4-power-manager xfractint xgames xine-lib xine-ui xlockmore xmms xpaint xpdf xsane xscreensaver xv xxgdb \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +MPlayer audacious audacious-plugins blackbox electricsheep fluxbox fvwm gftp gimp gkrellm gnuchess gnuplot gqview gucharmap gv gxine imagemagick mozilla-firefox mozilla-thunderbird pan pidgin rdesktop rxvt sane seamonkey seyon thunar-volman vim-gvim windowmaker x11-ssh-askpass x3270 xchat xfce xfce4-power-manager xfractint xgames xine-lib xine-ui xlockmore xmms xpaint xpdf xsane xscreensaver xv xxgdb \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/xap/tagfile b/slackware64/xap/tagfile new file mode 100644 index 000000000..7ce8a84bf --- /dev/null +++ b/slackware64/xap/tagfile @@ -0,0 +1,46 @@ +MPlayer:OPT +audacious:REC +audacious-plugins:REC +blackbox:OPT +electricsheep:REC +fluxbox:OPT +fvwm:REC +gftp:OPT +gimp:REC +gkrellm:OPT +gnuchess:REC +gnuplot:OPT +gqview:REC +gucharmap:OPT +gv:REC +gxine:OPT +imagemagick:REC +mozilla-firefox:REC +mozilla-thunderbird:REC +pan:REC +pidgin:OPT +rdesktop:OPT +rxvt:REC +sane:OPT +seamonkey:REC +seyon:OPT +thunar-volman:REC +vim-gvim:REC +windowmaker:REC +x11-ssh-askpass:REC +x3270:OPT +xchat:OPT +xfce:OPT +xfce4-power-manager:REC +xfractint:OPT +xgames:REC +xine-lib:REC +xine-ui:REC +xlockmore:REC +xmms:OPT +xpaint:OPT +xpdf:OPT +xsane:OPT +xscreensaver:REC +xv:REC +xxgdb:REC diff --git a/slackware64/y/install-packages b/slackware64/y/install-packages new file mode 100755 index 000000000..3232fb680 --- /dev/null +++ b/slackware64/y/install-packages @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2002 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This is a simple script to install a package series from the command line. +# If you're already running Slackware, you can just run this script to install +# the packages. +# +# I originally got the idea for this tool because Slackware with both KDE and +# GNOME doesn't fit on a single CD-ROM anymore, so I wanted to provide a quick +# way to add a series later on with the same ease as the initial installation. +# +# To use this script, just run it as root in the current directory like this: +# +# ./install-packages +# +# Note that this script does not make any attempt to remove or upgrade existing +# packages. If you want to upgrade an existing installation, you will be better +# served using the pkgtools directly. Here's how to upgrade all the packages in +# this series: +# +# upgradepkg *.t?z (upgrades already installed packages) +# installpkg *.t?z (installs all packages, to make sure new ones are installed) +# +# If you upgrade a series like this, afterwards you might need to merge over any +# required changes in the new config files, which will have the suffix .new. +# These can be found like this: +# +# find / -name "*.new" +# +# OK, on with the show! Enjoy! :-) +# +# Patrick Volkerding + +# Use the existing maketag script to provide a package selection menu: +sh maketag + +# Quick bail if nothing was requested: +if grep ADD /var/log/setup/tmp/SeTnewtag 1> /dev/null 2> /dev/null ; then + true +else + rm -f /var/log/setup/tmp/SeTnewtag + exit +fi + +# Install the selected packages: +for PKG in *.t?z ; do + if [ ! "$ROOT" = "" ]; then + installpkg -root $ROOT -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + else + installpkg -infobox -tagfile /var/log/setup/tmp/SeTnewtag $PKG + fi +done +rm -f /var/log/setup/tmp/SeTnewtag +echo +echo "Done installing packages." diff --git a/slackware64/y/install.end b/slackware64/y/install.end new file mode 100644 index 000000000..67eb307dd --- /dev/null +++ b/slackware64/y/install.end @@ -0,0 +1,14 @@ +#SERIES_LAST_DIRECTORY + +This file must be present to signal to 'setup' that this is the last +directory in this package series. It serves no other purpose, other than +to make you curious enough to use rot13 to read the rest of it (_at your +own risk!_ :) + +Sbe vasbezngvba nobhg trggvat "Obo" va lbhe yvsr, cyrnfr ivfvg: + + Puhepu bs gur FhoTravhf + uggc://jjj.fhotravhf.pbz + +Qba'g fnl lbh jrer abg jnearq jura gur Kvfgf pbzr sbe lbh. + diff --git a/slackware64/y/maketag b/slackware64/y/maketag new file mode 100644 index 000000000..b35b445da --- /dev/null +++ b/slackware64/y/maketag @@ -0,0 +1,46 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +add() { + for package in $* ; do + echo "$package: ADD" >> $TMP/SeTnewtag + done +} +skip() { + for package in $* ; do + echo "$package: SKP" >> $TMP/SeTnewtag + done +} +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES Y (GAMES)" \ + --checklist "Please confirm the packages you wish to install \ +from series Y. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +11 70 1 \ +"bsd-games" "The BSD text games collection" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +bsd-games \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +bsd-games \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/y/maketag.ez b/slackware64/y/maketag.ez new file mode 100644 index 000000000..b35b445da --- /dev/null +++ b/slackware64/y/maketag.ez @@ -0,0 +1,46 @@ +#!/bin/sh +#item ####description ###on off ### +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +add() { + for package in $* ; do + echo "$package: ADD" >> $TMP/SeTnewtag + done +} +skip() { + for package in $* ; do + echo "$package: SKP" >> $TMP/SeTnewtag + done +} +cat /dev/null > $TMP/SeTnewtag +dialog --title "SELECTING PACKAGES FROM SERIES Y (GAMES)" \ + --checklist "Please confirm the packages you wish to install \ +from series Y. Use the UP/DOWN keys to scroll through the list, and \ +the SPACE key to deselect any items you don't want to install. \ +Press ENTER when you are done." \ +11 70 1 \ +"bsd-games" "The BSD text games collection" "on" \ +2> $TMP/SeTpkgs +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTpkgs + > $TMP/SeTnewtag + for pkg in \ +bsd-games \ + ; do + echo "$pkg: SKP" >> $TMP/SeTnewtag + done + exit +fi +cat /dev/null > $TMP/SeTnewtag +for PACKAGE in \ +bsd-games \ + ; do + if fgrep \"$PACKAGE\" $TMP/SeTpkgs 1> /dev/null 2> /dev/null ; then + echo "$PACKAGE: ADD" >> $TMP/SeTnewtag + else + echo "$PACKAGE: SKP" >> $TMP/SeTnewtag + fi +done +rm -f $TMP/SeTpkgs diff --git a/slackware64/y/tagfile b/slackware64/y/tagfile new file mode 100644 index 000000000..41dbc4c6e --- /dev/null +++ b/slackware64/y/tagfile @@ -0,0 +1 @@ +bsd-games:OPT diff --git a/source/a/aaa_base/aaa_base.SlackBuild b/source/a/aaa_base/aaa_base.SlackBuild new file mode 100755 index 000000000..3d1a73051 --- /dev/null +++ b/source/a/aaa_base/aaa_base.SlackBuild @@ -0,0 +1,56 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=13.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-aaa_base + +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_aaa_base.tar.gz + +echo "+======================+" +echo "| repackaging aaa_base |" +echo "+======================+" + +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/slackware-version > $PKG/etc/slackware-version + +# Add lib64 directories on x86_64: +if [ "$ARCH" = "x86_64" ]; then + mkdir -p $PKG/lib64 $PKG/usr/lib64 $PKG/usr/local/lib64 +fi + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/aaa_base-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $PKG +fi diff --git a/source/a/aaa_base/slack-desc b/source/a/aaa_base/slack-desc new file mode 100644 index 000000000..011f90fb4 --- /dev/null +++ b/source/a/aaa_base/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +aaa_base: aaa_base (Basic Linux filesystem package) +aaa_base: +aaa_base: Sets up the empty directory tree for Slackware and adds an email to +aaa_base: root's mailbox welcoming them to Linux. :) This package should be +aaa_base: installed first, and never uninstalled. +aaa_base: +aaa_base: +aaa_base: +aaa_base: +aaa_base: +aaa_base: diff --git a/source/a/aaa_base/slackware-version b/source/a/aaa_base/slackware-version new file mode 100644 index 000000000..0c779cf82 --- /dev/null +++ b/source/a/aaa_base/slackware-version @@ -0,0 +1 @@ +Slackware 13.0.0.0.0 diff --git a/source/a/aaa_elflibs/aaa_elflibs.SlackBuild b/source/a/aaa_elflibs/aaa_elflibs.SlackBuild new file mode 100755 index 000000000..fd5ade86f --- /dev/null +++ b/source/a/aaa_elflibs/aaa_elflibs.SlackBuild @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=aaa_elflibs +VERSION=${VERSION:-13.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $PKG +cat $CWD/symlinks-to-tracked-libs \ + | sed -e "s#^/lib/#/lib${LIBDIRSUFFIX}/#" \ + -e "s#^/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" \ + | while read library ; do + ( [ ! -e $library ] && continue + echo "Adding $library" + mkdir -p $(dirname $library | cut -b2- ) + cd $(dirname $library | cut -b2- ) + rm -f $(basename $library) + cp -a $library . + rm -f $(readlink $library) + cp -a $(dirname $library)/$(readlink $library) . + ) +done +cat $CWD/tracked-files \ + | sed -e "s#^/lib/#/lib${LIBDIRSUFFIX}/#" \ + -e "s#^/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" \ + | while read library ; do + ( [ ! -e $library ] && continue + echo "Adding $library" + mkdir -p $(dirname $library | cut -b2- ) + cd $(dirname $library | cut -b2- ) + rm -f $(basename $library) + cp -a $library . + ) +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/aaa_elflibs/slack-desc b/source/a/aaa_elflibs/slack-desc new file mode 100644 index 000000000..29a6c8fbe --- /dev/null +++ b/source/a/aaa_elflibs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +aaa_elflibs: aaa_elflibs (shared libraries needed by many programs) +aaa_elflibs: +aaa_elflibs: This is a collection of shared libraries needed to run Linux programs. +aaa_elflibs: ELF (Executable and Linking Format) is the standard Linux binary +aaa_elflibs: format. These libraries are gathered from other Slackware packages +aaa_elflibs: and are intended to give a fairly complete initial set of libraries. +aaa_elflibs: This package should be not upgraded or reinstalled (it could copy +aaa_elflibs: over newer library versions). +aaa_elflibs: +aaa_elflibs: +aaa_elflibs: diff --git a/source/a/aaa_elflibs/symlinks-to-tracked-libs b/source/a/aaa_elflibs/symlinks-to-tracked-libs new file mode 100644 index 000000000..b8c2c758a --- /dev/null +++ b/source/a/aaa_elflibs/symlinks-to-tracked-libs @@ -0,0 +1,55 @@ +/lib/libacl.so.1 +/lib/libattr.so.1 +/lib/libbz2.so.1 +/lib/libbz2.so.1.0 +/lib/libcap.so.2 +/lib/libdm.so.0 +/lib/libfuse.so.2 +/lib/libgpm.so.1 +/lib/libncurses.so.5 +/lib/libncursesw.so.5 +/lib/libsysfs.so.2 +/lib/libtermcap.so.2 +/usr/lib/libasound.so.2 +/usr/lib/libcurl.so.2 +/usr/lib/libcurl.so.3 +/usr/lib/libcurl.so.4 +/usr/lib/libexpat.so.0 +/usr/lib/libexpat.so.1 +/usr/lib/libform.so.5 +/usr/lib/libformw.so.5 +/usr/lib/libfreetype.so.6 +/usr/lib/libgdbm.so.2 +/usr/lib/libgdbm.so.3 +/usr/lib/libglib-2.0.so.0 +/usr/lib/libgmodule-2.0.so.0 +/usr/lib/libgmp.so.3 +/usr/lib/libgmpxx.so.3 +/usr/lib/libgobject-2.0.so.0 +/usr/lib/libgthread-2.0.so.0 +/usr/lib/libhistory.so.4 +/usr/lib/libhistory.so.5 +/usr/lib/libidn.so.11 +/usr/lib/libjpeg.so.62 +/usr/lib/liblber-2.3.so.0 +/usr/lib/libldap-2.3.so.0 +/usr/lib/libmenu.so.5 +/usr/lib/libmenuw.so.5 +/usr/lib/libmm.so.14 +/usr/lib/libmp.so.3 +/usr/lib/libpanel.so.5 +/usr/lib/libpanelw.so.5 +/usr/lib/libpcre.so.0 +/usr/lib/libpcreposix.so.0 +/usr/lib/libpng.so.3 +/usr/lib/libpng12.so.0 +/usr/lib/libpopt.so.0 +/usr/lib/libreadline.so.4 +/usr/lib/libreadline.so.5 +/usr/lib/libslang.so.1 +/usr/lib/libslang.so.2 +/usr/lib/libtiff.so.3 +/usr/lib/libusb-0.1.so.4 +/usr/lib/libvga.so.1 +/usr/lib/libvgagl.so.1 +/usr/lib/libz.so.1 diff --git a/source/a/aaa_elflibs/tracked-files b/source/a/aaa_elflibs/tracked-files new file mode 100644 index 000000000..16b731ba0 --- /dev/null +++ b/source/a/aaa_elflibs/tracked-files @@ -0,0 +1,8 @@ +/lib/libdb-3.1.so +/lib/libdb-3.3.so +/lib/libdb-4.2.so +/lib/libdb-4.4.so +/lib/libdevmapper.so.1.02 +/usr/lib/libcups.so.2 +/usr/lib/libcupsimage.so.2 +/usr/lib/libgcc_s.so.1 diff --git a/source/a/aaa_terminfo/aaa_terminfo.SlackBuild b/source/a/aaa_terminfo/aaa_terminfo.SlackBuild new file mode 100755 index 000000000..a1e7d288f --- /dev/null +++ b/source/a/aaa_terminfo/aaa_terminfo.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh +# Copyright 2006, 2007, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=aaa_terminfo +# Note the version of ncurses in use: +VERSION=${VERSION:-5.7} +ARCH=${ARCH:-noarch} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +# Best do this on a machine with the terminfo +# updated already. ;-) +cd $PKG + +# I wonder if anything still looks here? +mkdir -p usr/lib${LIBDIRSUFFIX} +( cd usr/lib${LIBDIRSUFFIX} + rm -rf terminfo + ln -sf /usr/share/terminfo terminfo +) + +# This has been the tradition starter collection since forever. +for dir in l n u v x ; do + mkdir -p usr/share/terminfo/$dir + ( cd usr/share/terminfo/$dir + cp -a /usr/share/terminfo/$dir/* . + ) +done + +# Remove dangling symlinks: +( cd usr/share/terminfo + for file in $(find . -type l) ; do + if [ "$(readlink -e $file)" = "" ]; then + rm --verbose $file + fi + done +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/aaa_terminfo/slack-desc b/source/a/aaa_terminfo/slack-desc new file mode 100644 index 000000000..d393062f1 --- /dev/null +++ b/source/a/aaa_terminfo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +aaa_terminfo: aaa_terminfo (a basic collection of terminfo entries) +aaa_terminfo: +aaa_terminfo: This is a starter set of files from the terminfo database, which +aaa_terminfo: should be enough in most cases. The complete set (from which this +aaa_terminfo: is derived) can be found in the ncurses package. +aaa_terminfo: +aaa_terminfo: The terminfo database describes the characteristics of terminals, so +aaa_terminfo: don't try to log in without this package. :-) +aaa_terminfo: +aaa_terminfo: +aaa_terminfo: diff --git a/source/a/acl/acl.SlackBuild b/source/a/acl/acl.SlackBuild new file mode 100755 index 000000000..7ad70d045 --- /dev/null +++ b/source/a/acl/acl.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.2.47-1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-acl + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP + +rm -rf acl-$(echo $VERSION | cut -f 1 -d '-') +tar xzvf $CWD/acl_$VERSION.tar.gz +cd acl-$(echo $VERSION | cut -f 1 -d '-') + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add DESTDIR support and improve docs install location: +zcat $CWD/acl.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit + +# Make sure you have the same version of autoconf as the +# developers did... ;-) +autoconf + +./configure \ + --prefix=/ \ + --exec-prefix=/ \ + --sbindir=/bin \ + --bindir=/usr/bin \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include \ + --mandir=/usr/man \ + --datadir=/usr/share + +make || exit 1 +make install DESTDIR=$PKG +make install-dev DESTDIR=$PKG +make install-lib DESTDIR=$PKG + +mv $PKG/usr/share/doc $PKG/usr +( cd $PKG/usr/doc ; mv acl acl-$VERSION ) +#It would be nice to keep the same timestamps that the files have in the source: +cp -a \ + README doc/COPYING doc/PORTING \ + $PKG/usr/doc/acl-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +# Remove bogus files: +rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/libacl.so $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# Make /usr/lib${LIBDIRSUFFIX}/libacl.so a symlink to /lib${LIBDIRSUFFIX}: +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libacl.so + ln -sf /lib${LIBDIRSUFFIX}/libacl.so.1 libacl.so +) +# Fix shared library perms: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* + +# Gzip the man pages: +( cd $PKG/usr/man + for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + gzip -9 */*.? +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/acl-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz + diff --git a/source/a/acl/acl.destdir.diff b/source/a/acl/acl.destdir.diff new file mode 100644 index 000000000..df284724b --- /dev/null +++ b/source/a/acl/acl.destdir.diff @@ -0,0 +1,36 @@ +--- ./include/buildmacros.orig 2007-09-10 21:00:47.000000000 -0500 ++++ ./include/buildmacros 2008-03-31 23:58:16.000000000 -0500 +@@ -27,7 +27,7 @@ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + SHELL = /bin/sh + IMAGES_DIR = $(TOPDIR)/all-images +--- ./include/builddefs.in.orig 2007-09-10 21:00:47.000000000 -0500 ++++ ./include/builddefs.in 2008-03-31 23:58:16.000000000 -0500 +@@ -27,14 +27,14 @@ + PKG_VERSION = @pkg_version@ + PKG_PLATFORM = @pkg_platform@ + PKG_DISTRIBUTION= @pkg_distribution@ +-PKG_BIN_DIR = @bindir@ +-PKG_SBIN_DIR = @sbindir@ +-PKG_LIB_DIR = @libdir@@libdirsuffix@ +-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@ +-PKG_INC_DIR = @includedir@ +-PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ +-PKG_LOCALE_DIR = @datadir@/locale ++PKG_BIN_DIR = $(DESTDIR)@bindir@ ++PKG_SBIN_DIR = $(DESTDIR)@sbindir@ ++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@ ++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@ ++PKG_INC_DIR = $(DESTDIR)@includedir@ ++PKG_MAN_DIR = $(DESTDIR)@mandir@ ++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@ ++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale + + CC = @cc@ + AWK = @awk@ diff --git a/source/a/acl/slack-desc b/source/a/acl/slack-desc new file mode 100644 index 000000000..9609c5854 --- /dev/null +++ b/source/a/acl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +acl: acl (tools for using POSIX Access Control Lists) +acl: +acl: This package contains a set of tools and libraries for manipulating +acl: POSIX Access Control Lists. POSIX Access Control Lists (defined in +acl: POSIX 1003.1e draft standard 17) are used to define more fine-grained +acl: discretionary access rights for files and directories. +acl: +acl: +acl: +acl: +acl: diff --git a/source/a/acpid/acpi_handler.sh b/source/a/acpid/acpi_handler.sh new file mode 100644 index 000000000..386fa8d05 --- /dev/null +++ b/source/a/acpid/acpi_handler.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# Default acpi script that takes an entry for all actions + +IFS=${IFS}/ +set $@ + +case "$1" in + button) + case "$2" in + power) /sbin/init 0 + ;; + *) logger "ACPI action $2 is not defined" + ;; + esac + ;; + *) + logger "ACPI group $1 / action $2 is not defined" + ;; +esac diff --git a/source/a/acpid/acpid.SlackBuild b/source/a/acpid/acpid.SlackBuild new file mode 100755 index 000000000..3010e0136 --- /dev/null +++ b/source/a/acpid/acpid.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.0.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-acpid + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf acpid-$VERSION +tar xvf $CWD/acpid-$VERSION.tar.?z* || exit 1 +cd acpid-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 +strip acpid acpi_listen +mkdir -p $PKG/usr/sbin +cat acpid > $PKG/usr/sbin/acpid +chmod 755 $PKG/usr/sbin/acpid +mkdir -p $PKG/usr/bin +cat acpi_listen > $PKG/usr/bin/acpi_listen +chmod 755 $PKG/usr/bin/acpi_listen +mkdir -p $PKG/usr/man/man8 +cat acpid.8 | gzip -9c > $PKG/usr/man/man8/acpid.8.gz +cat acpi_listen.8 | gzip -9c > $PKG/usr/man/man8/acpi_listen.8.gz +mkdir -p $PKG/usr/doc/acpid-$VERSION +cp -a Changelog README \ + $PKG/usr/doc/acpid-$VERSION +cp -a samples $PKG/usr/doc/acpid-$VERSION +mkdir -p $PKG/etc/acpi/events +zcat $CWD/acpi_handler.sh.gz > $PKG/etc/acpi/acpi_handler.sh.new +chmod 755 $PKG/etc/acpi/acpi_handler.sh.new +zcat $CWD/default.gz > $PKG/etc/acpi/events/default +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.acpid.gz > $PKG/etc/rc.d/rc.acpid +chmod 755 $PKG/etc/rc.d/rc.acpid +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/acpid-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/acpid/default b/source/a/acpid/default new file mode 100644 index 000000000..db1233908 --- /dev/null +++ b/source/a/acpid/default @@ -0,0 +1,18 @@ +# This is the ACPID default configuration, it takes all +# events and passes them to /etc/acpi/default.sh for further +# processing. + +# event keeps a regular expression matching the event. To get +# power events only, just use something like "event=button power.*" +# to catch it. +# action keeps the command to be executed after an event occurs +# In case of the power event above, your entry may look this way: +#event=button power.* +#action=/sbin/init 0 + +# Optionally you can specify the placeholder %e. It will pass +# through the whole kernel event message to the program you've +# specified. + +event=.* +action=/etc/acpi/acpi_handler.sh %e diff --git a/source/a/acpid/doinst.sh b/source/a/acpid/doinst.sh new file mode 100644 index 000000000..c090b9fe5 --- /dev/null +++ b/source/a/acpid/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/acpi/acpi_handler.sh.new diff --git a/source/a/acpid/rc.acpid b/source/a/acpid/rc.acpid new file mode 100644 index 000000000..32486d17c --- /dev/null +++ b/source/a/acpid/rc.acpid @@ -0,0 +1,36 @@ +#!/bin/sh +# Start/stop/restart acpid. + +# Start acpid: +acpid_start() { + if [ -x /usr/sbin/acpid -a -d /proc/acpi ]; then + echo "Starting ACPI daemon: /usr/sbin/acpid" + /usr/sbin/acpid + fi +} + +# Stop acpid: +acpid_stop() { + killall acpid +} + +# Restart acpid: +acpid_restart() { + acpid_stop + sleep 1 + acpid_start +} + +case "$1" in +'start') + acpid_start + ;; +'stop') + acpid_stop + ;; +'restart') + acpid_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/a/acpid/slack-desc b/source/a/acpid/slack-desc new file mode 100644 index 000000000..b72ac8e62 --- /dev/null +++ b/source/a/acpid/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +acpid: acpid (ACPI daemon) +acpid: +acpid: Most modern computers support the Advanced Configuration and Power +acpid: Interface (ACPI) standard to allow intelligent power management. +acpid: This package contains acpid, which is the user-space daemon needed in +acpid: order to make the Linux ACPI support completely functional. +acpid: +acpid: ACPI must be compiled into the kernel to run acpid. +acpid: +acpid: +acpid: diff --git a/source/a/apmd/apmd.SlackBuild b/source/a/apmd/apmd.SlackBuild new file mode 100755 index 000000000..13e472735 --- /dev/null +++ b/source/a/apmd/apmd.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-3.2.2} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-apmd + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf apmd-$VERSION +tar xvf $CWD/apmd-$VERSION.tar.bz2 || exit 1 +cd apmd-$VERSION + +if [ "$ARCH" = "x86_64" ]; then + sed -i -e "s#/lib#/lib64#" Makefile +fi + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" make $NUMJOBS || exit 1 +CFLAGS="$SLKCFLAGS" make install DESTDIR=$PKG + +( cd xbattery + cp ../.libs/libapm.a .. + xmkmf + make -j3 +) + +mkdir -p $PKG/usr/bin +cat xapm > $PKG/usr/bin/xapm +cat xbattery/xbattery > $PKG/usr/bin/xbattery +chmod 755 $PKG/usr/bin/{xapm,xbattery} + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/man/man1 +cat xbattery/xbattery.man | gzip -9c > $PKG/usr/man/man1/xbattery.1.gz +for page in apm.1 apmsleep.1 on_ac_power.1 xapm.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/${page}.gz +done +mkdir -p $PKG/usr/man/man8 +cat apmd.8 | gzip -9c > $PKG/usr/man/man8/apmd.8.gz +mkdir -p $PKG/usr/man/fr/man1 +cat apmsleep.fr.1 | gzip -9c > $PKG/usr/man/fr/man1/apmsleep.1.gz + +mkdir -p $PKG/usr/doc/apmd-$VERSION +cp -a \ + AUTHORS COPYING LSM README apmlib.COPYING apmsleep.README \ + $PKG/usr/doc/apmd-$VERSION +cp -a xbattery/README $PKG/usr/doc/apmd-$VERSION/README.xbattery + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -c n -l y $TMP/apmd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/apmd/slack-desc b/source/a/apmd/slack-desc new file mode 100644 index 000000000..a6f5c9a65 --- /dev/null +++ b/source/a/apmd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +apmd: apmd (Advanced Power Management daemon) +apmd: +apmd: apmd is an APM monitoring daemon, and works in conjunction with the +apmd: APM BIOS driver in the kernel. Apmd (and the included tools) handle +apmd: tasks such as automatically putting a laptop into suspend when the +apmd: power level drop below a certain point. This package also includes +apmd: the graphical power management tools xapm and xbattery. +apmd: +apmd: The apmd tools were written by Rik Faith and are maintained by +apmd: Avery Pennarun. xbattery was written by Nathan Sidwell. +apmd: diff --git a/source/a/attr/attr.SlackBuild b/source/a/attr/attr.SlackBuild new file mode 100755 index 000000000..9c16a8d60 --- /dev/null +++ b/source/a/attr/attr.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2005-2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.4.43-1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-attr + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf attr-$(echo $VERSION | cut -f 1 -d '-') +tar xzvf $CWD/attr_$VERSION.tar.gz +cd attr-$(echo $VERSION | cut -f 1 -d '-') +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add DESTDIR support and improve docs install location: +zcat $CWD/attr.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# The 1/2 assed job has begun... the onus of running autoconf should never +# be placed on packagers. They may not have the same autotools versions. +autoconf + +./configure \ + --prefix=/ \ + --exec-prefix=/ \ + --sbindir=/bin \ + --bindir=/usr/bin \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include \ + --mandir=/usr/man \ + --datadir=/usr/share + +make || exit 1 +make install DESTDIR=$PKG +make install-dev DESTDIR=$PKG +make install-lib DESTDIR=$PKG + +mv $PKG/usr/share/doc $PKG/usr +( cd $PKG/usr/doc ; mv attr attr-$VERSION ) +#It would be nice to keep the same timestamps that the files have in the source: +rm -rf $PKG/usr/doc/attr-$VERSION/ea-conv +cp -a \ + README doc/COPYING doc/PORTING doc/ea-conv \ + $PKG/usr/doc/attr-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +# Remove bogus files: +rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/libattr.so $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# Make /usr/lib${LIBDIRSUFFIX}/libattr.so a symlink to /lib${LIBDIRSUFFIX}: +( cd $PKG/usr/lib${LIBDIRSUFFIX} ; rm -f libattr.so ; ln -sf /lib${LIBDIRSUFFIX}/libattr.so.1 libattr.so ) +# Fix shared library perms: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* + +# Gzip the man pages: +( cd $PKG/usr/man + for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + gzip -9 */*.? +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/attr-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz + diff --git a/source/a/attr/attr.destdir.diff b/source/a/attr/attr.destdir.diff new file mode 100644 index 000000000..ced69eefb --- /dev/null +++ b/source/a/attr/attr.destdir.diff @@ -0,0 +1,36 @@ +--- ./include/buildmacros.orig 2007-09-10 21:00:49.000000000 -0500 ++++ ./include/buildmacros 2008-03-31 23:54:02.000000000 -0500 +@@ -27,7 +27,7 @@ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + SHELL = /bin/sh + IMAGES_DIR = $(TOPDIR)/all-images +--- ./include/builddefs.in.orig 2007-09-10 21:00:49.000000000 -0500 ++++ ./include/builddefs.in 2008-03-31 23:54:02.000000000 -0500 +@@ -27,14 +27,14 @@ + PKG_VERSION = @pkg_version@ + PKG_PLATFORM = @pkg_platform@ + PKG_DISTRIBUTION= @pkg_distribution@ +-PKG_BIN_DIR = @bindir@ +-PKG_SBIN_DIR = @sbindir@ +-PKG_LIB_DIR = @libdir@@libdirsuffix@ +-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@ +-PKG_INC_DIR = @includedir@/attr +-PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ +-PKG_LOCALE_DIR = @datadir@/locale ++PKG_BIN_DIR = $(DESTDIR)@bindir@ ++PKG_SBIN_DIR = $(DESTDIR)@sbindir@ ++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@ ++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@ ++PKG_INC_DIR = $(DESTDIR)@includedir@/attr ++PKG_MAN_DIR = $(DESTDIR)@mandir@ ++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@ ++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale + + CC = @cc@ + AWK = @awk@ diff --git a/source/a/attr/build b/source/a/attr/build new file mode 100644 index 000000000..52b6039a1 --- /dev/null +++ b/source/a/attr/build @@ -0,0 +1,7 @@ +I think I used this build order... -P. + +1. attr +2. acl +3. xfsprogs +4. dmapi +5. xfsdump diff --git a/source/a/attr/slack-desc b/source/a/attr/slack-desc new file mode 100644 index 000000000..e9220f2fb --- /dev/null +++ b/source/a/attr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +attr: attr (tools for using extended attributes on filesystems) +attr: +attr: This package contains a set of tools for manipulating extended +attr: attributes (name:value pairs associated permanently with files and +attr: directories) on filesystem objects, and the library and header files +attr: needed to develop programs which make use of extended attributes. +attr: Extended attributes are used to provide additional functionality to +attr: a filesystem. For example, Access Control Lists (ACLs) are +attr: implemented using extended attributes. +attr: +attr: diff --git a/source/a/bash/bash.SlackBuild b/source/a/bash/bash.SlackBuild new file mode 100755 index 000000000..04c8ff953 --- /dev/null +++ b/source/a/bash/bash.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bash + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Determine bash patchlevel: +PATCHLEVEL=`( cd $CWD/patches ; /bin/ls *gz | tail -1 | cut -f 2 -d - | cut -f 1 -d . 2> /dev/null )` +if [ "$PATCHLEVEL" = "" ]; then + PATCHLEVEL=0 +fi + +cd $TMP +rm -rf bash-$VERSION +tar xzvf $CWD/bash-$VERSION.tar.gz || exit 1 +cd bash-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +for patch in $CWD/patches/bash* ; do + zcat $patch | patch -p0 --verbose || exit 1 +done +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr $ARCH-slackware-linux +make -j3 || exit 1 +make install DESTDIR=$PKG +mkdir -p $PKG/bin +mv $PKG/usr/bin/bash $PKG/bin/bash2.new +strip --strip-unneeded $PKG/bin/bash2.new +# We don't include the "bashbug" script. +rm -rf $PKG/usr/bin $PKG/usr/man/man1/bashbug.1 +gzip -9 $PKG/usr/man/man1/* +mkdir -p $PKG/usr/doc/bash-$VERSION +cp -a AUTHORS CHANGES COMPAT COPYING INSTALL MANIFEST NEWS NOTES \ + README Y2K doc/FAQ doc/INTRO $PKG/usr/doc/bash-$VERSION +cd doc +groff -ms -Tascii article.ms > $PKG/usr/doc/bash-$VERSION/article.txt +# bash.1 is already installed by "make install" +for page in builtins.1 rbash.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bash-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/bash-$VERSION + rm -rf $PKG +fi diff --git a/source/a/bash/doinst.sh b/source/a/bash/doinst.sh new file mode 100644 index 000000000..21760838d --- /dev/null +++ b/source/a/bash/doinst.sh @@ -0,0 +1,18 @@ +if [ -r bin/bash ]; then + mv bin/bash bin/bash.old +fi +mv bin/bash2.new bin/bash +if [ -f bin/bash.old ]; then + rm -f bin/bash.old +fi +if [ ! -r etc/shells ]; then + touch etc/shells + chmod 644 etc/shells +fi +if fgrep "/bin/bash" etc/shells 1> /dev/null 2> /dev/null ; then + true +else + echo "/bin/bash" >> etc/shells +fi +( cd usr/bin ; rm -rf bash ) +( cd usr/bin ; ln -sf /bin/bash bash ) diff --git a/source/a/bash/patches/bash31-001 b/source/a/bash/patches/bash31-001 new file mode 100644 index 000000000..4a10a02c1 --- /dev/null +++ b/source/a/bash/patches/bash31-001 @@ -0,0 +1,104 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-001 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <20051212015924.GA820@toucan.gentoo.org> <20051214034438.GK1863@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00030.html http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00041.html + +Bug-Description: + +There are parsing problems with compound assignments in several contexts, +including as arguments to builtins like `local', `eval', and `let', and +as multiple assignments in a single command. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Fri Dec 16 20:43:07 2005 +*************** +*** 3696,3700 **** + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! parser_state |= PST_ASSIGNOK; + } + +--- 3696,3702 ---- + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! parser_state |= PST_ASSIGNOK; +! else if (STREQ (token, "eval") || STREQ (token, "let")) +! parser_state |= PST_ASSIGNOK; + } + +*************** +*** 4687,4691 **** + { + WORD_LIST *wl, *rl; +! int tok, orig_line_number, orig_token_size; + char *saved_token, *ret; + +--- 4689,4693 ---- + { + WORD_LIST *wl, *rl; +! int tok, orig_line_number, orig_token_size, orig_last_token, assignok; + char *saved_token, *ret; + +*************** +*** 4693,4696 **** +--- 4695,4699 ---- + orig_token_size = token_buffer_size; + orig_line_number = line_number; ++ orig_last_token = last_read_token; + + last_read_token = WORD; /* WORD to allow reserved words here */ +*************** +*** 4699,4702 **** +--- 4702,4707 ---- + token_buffer_size = 0; + ++ assignok = parser_state&PST_ASSIGNOK; /* XXX */ ++ + wl = (WORD_LIST *)NULL; /* ( */ + parser_state |= PST_COMPASSIGN; +*************** +*** 4741,4745 **** + } + +! last_read_token = WORD; + if (wl) + { +--- 4746,4750 ---- + } + +! last_read_token = orig_last_token; /* XXX - was WORD? */ + if (wl) + { +*************** +*** 4753,4756 **** +--- 4758,4765 ---- + if (retlenp) + *retlenp = (ret && *ret) ? strlen (ret) : 0; ++ ++ if (assignok) ++ parser_state |= PST_ASSIGNOK; ++ + return ret; + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-002 b/source/a/bash/patches/bash31-002 new file mode 100644 index 000000000..fac9a99af --- /dev/null +++ b/source/a/bash/patches/bash31-002 @@ -0,0 +1,239 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-002 + +Bug-Reported-by: vapier@gentoo.org +Bug-Reference-ID: <20051210223218.GD3324@toucan.gentoo.org> +Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00021.html + +Bug-Description: + +This corrects several omissions in the bash documentation: It adds the new +options to `ulimit', the exact expansions for `case' patterns, clarification +of the language concerning the return value of `[[', and updated version +information. + +Patch: + +*** ../bash-3.1/doc/bash.1 Wed Oct 12 11:40:52 2005 +--- doc/bash.1 Wed Dec 28 19:58:54 2005 +*************** +*** 7,16 **** + .\" chet@po.cwru.edu + .\" +! .\" Last Change: Sat Aug 27 13:28:44 EDT 2005 + .\" + .\" bash_builtins, strip all but Built-Ins section + .if \n(zZ=1 .ig zZ + .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1" + .\" + .\" There's some problem with having a `@' +--- 7,16 ---- + .\" chet@po.cwru.edu + .\" +! .\" Last Change: Wed Dec 28 19:58:45 EST 2005 + .\" + .\" bash_builtins, strip all but Built-Ins section + .if \n(zZ=1 .ig zZ + .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Dec 28" "GNU Bash-3.1" + .\" + .\" There's some problem with having a `@' +*************** +*** 678,683 **** + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +--- 678,683 ---- + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches (\fB==\fP) or does not match +! (\fB!=\fP) the pattern, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +*************** +*** 808,811 **** +--- 808,817 ---- + .B Pathname Expansion + below). ++ The \fIword\fP is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, process substitution and quote removal. ++ Each \fIpattern\fP examined is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, and process substitution. + If the shell option + .B nocasematch +*************** +*** 8485,8489 **** + none are found. + .TP +! \fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. +--- 8485,8489 ---- + none are found. + .TP +! \fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. +*************** +*** 8524,8527 **** +--- 8524,8530 ---- + The maximum size of files created by the shell + .TP ++ .B \-i ++ The maximum number of pending signals ++ .TP + .B \-l + The maximum size that may be locked into memory +*************** +*** 8537,8540 **** +--- 8540,8546 ---- + The pipe size in 512-byte blocks (this may not be set) + .TP ++ .B \-q ++ The maximum number of bytes in POSIX message queues ++ .TP + .B \-s + The maximum stack size +*************** +*** 8548,8551 **** +--- 8554,8560 ---- + .B \-v + The maximum amount of virtual memory available to the shell ++ .TP ++ .B \-x ++ The maximum number of file locks + .PD + .PP +*** ../bash-3.1/doc/bashref.texi Mon Oct 3 15:07:21 2005 +--- doc/bashref.texi Fri Dec 30 10:50:39 2005 +*************** +*** 962,967 **** + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +--- 962,967 ---- + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches (@samp{==}) or does not +! match (@samp{!=})the pattern, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +*************** +*** 2599,2603 **** + or inconvenient to obtain with separate utilities. + +! This section briefly the builtins which Bash inherits from + the Bourne Shell, as well as the builtin commands which are unique + to or have been extended in Bash. +--- 2597,2601 ---- + or inconvenient to obtain with separate utilities. + +! This section briefly describes the builtins which Bash inherits from + the Bourne Shell, as well as the builtin commands which are unique + to or have been extended in Bash. +*************** +*** 3834,3838 **** + @btindex ulimit + @example +! ulimit [-acdflmnpstuvSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes +--- 3834,3838 ---- + @btindex ulimit + @example +! ulimit [-acdfilmnpqstuvxSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes +*************** +*** 3858,3861 **** +--- 3858,3864 ---- + The maximum size of files created by the shell. + ++ @item -i ++ The maximum number of pending signals. ++ + @item -l + The maximum size that may be locked into memory. +*************** +*** 3870,3873 **** +--- 3873,3879 ---- + The pipe buffer size. + ++ @item -q ++ The maximum number of bytes in POSIX message queues. ++ + @item -s + The maximum stack size. +*************** +*** 3882,3885 **** +--- 3888,3894 ---- + The maximum amount of virtual memory available to the process. + ++ @item -x ++ The maximum number of file locks. ++ + @end table + +*************** +*** 4090,4095 **** + + @item -x +! Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP +! commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the @env{PS4} +--- 4103,4108 ---- + + @item -x +! Print a trace of simple commands, @code{for} commands, @code{case} +! commands, @code{select} commands, and arithmetic @code{for} commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the @env{PS4} +*** ../bash-3.1/doc/version.texi Tue Sep 20 14:52:56 2005 +--- doc/version.texi Fri Dec 30 10:50:58 2005 +*************** +*** 3,10 **** + @end ignore + +! @set LASTCHANGE Mon Sep 5 11:47:04 EDT 2005 + +! @set EDITION 3.1-beta1 +! @set VERSION 3.1-beta1 +! @set UPDATED 5 September 2005 +! @set UPDATED-MONTH September 2005 +--- 3,10 ---- + @end ignore + +! @set LASTCHANGE Fri Dec 30 10:50:51 EST 2005 + +! @set EDITION 3.1 +! @set VERSION 3.1 +! @set UPDATED 30 December 2005 +! @set UPDATED-MONTH December 2005 +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-003 b/source/a/bash/patches/bash31-003 new file mode 100644 index 000000000..cd36dc83e --- /dev/null +++ b/source/a/bash/patches/bash31-003 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-003 + +Bug-Reported-by: Adam Buraczewski +Bug-Reference-ID: <200512210950.jBL9o4C2008608@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00055.html + +Bug-Description: + +A missing #define guard causes bash to not compile when readline is not +configured in, either as the result of explicit disabling or when the +`--enable-minimal-config' option is given to configure. + +Patch: + +*** ../bash-3.1/variables.c Sat Nov 12 21:22:37 2005 +--- variables.c Mon Dec 26 13:34:03 2005 +*************** +*** 861,867 **** +--- 863,871 ---- + char val[INT_STRLEN_BOUND(int) + 1], *v; + ++ #if defined (READLINE) + /* If we are currently assigning to LINES or COLUMNS, don't do anything. */ + if (winsize_assignment) + return; ++ #endif + + v = inttostr (lines, val, sizeof (val)); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-004 b/source/a/bash/patches/bash31-004 new file mode 100644 index 000000000..4f9d578ef --- /dev/null +++ b/source/a/bash/patches/bash31-004 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-004 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <20051223172359.GF14579@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00062.html + +Bug-Description: + +A local array variable declared at function scope that shadows a variable +of the same name declared in a previous scope did not create a separate +variable instance, but used the previous one. + +Patch: + +*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 +--- subst.c Fri Dec 30 12:11:53 2005 +*************** +*** 2188,2192 **** + { + v = find_variable (name); +! if (v == 0 || array_p (v) == 0) + v = make_local_array_variable (name); + v = assign_array_var_from_string (v, value, flags); +--- 2188,2192 ---- + { + v = find_variable (name); +! if (v == 0 || array_p (v) == 0 || v->context != variable_context) + v = make_local_array_variable (name); + v = assign_array_var_from_string (v, value, flags); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-005 b/source/a/bash/patches/bash31-005 new file mode 100644 index 000000000..b6d5cdca8 --- /dev/null +++ b/source/a/bash/patches/bash31-005 @@ -0,0 +1,54 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-005 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When tilde expansion fails, POSIX leaves it unspecified whether or not the +word undergoes the additional word expansions. Bash-3.1 as distributed +skipped the rest of the expansions; this patch restores the bash-3.0 behavior. + +This means that something like + USER=ratbert + echo ~$USER + +will echo `~ratbert' rather than `~$USER'. + +Patch: + +*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 +--- subst.c Fri Dec 30 12:11:53 2005 +*************** +*** 6796,6799 **** +--- 6823,6832 ---- + { + temp1 = bash_tilde_expand (temp, tflag); ++ if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) ++ { ++ FREE (temp); ++ FREE (temp1); ++ goto add_character; /* tilde expansion failed */ ++ } + free (temp); + temp = temp1; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-006 b/source/a/bash/patches/bash31-006 new file mode 100644 index 000000000..8d7499381 --- /dev/null +++ b/source/a/bash/patches/bash31-006 @@ -0,0 +1,58 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-006 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <200601120613.11907.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00045.html + +Bug-Description: + +Under some circumstances, Bash can use an incorrect setting for the flag +that indicates whether or not the terminal can auto-wrap, resulting in line- +wrapping errors. + +Patch: + +*** ../bash-3.1/lib/readline/terminal.c Sat Nov 12 20:46:54 2005 +--- lib/readline/terminal.c Tue Jan 31 10:57:54 2006 +*************** +*** 123,127 **** + + /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap; + + /* Non-zero means that this terminal has a meta key. */ +--- 126,130 ---- + + /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap = -1; + + /* Non-zero means that this terminal has a meta key. */ +*************** +*** 275,278 **** +--- 278,284 ---- + int rows, cols; + { ++ if (_rl_term_autowrap == -1) ++ _rl_init_terminal_io (rl_terminal_name); ++ + if (rows > 0) + _rl_screenheight = rows; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-007 b/source/a/bash/patches/bash31-007 new file mode 100644 index 000000000..6233786c4 --- /dev/null +++ b/source/a/bash/patches/bash31-007 @@ -0,0 +1,121 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-007 + +Bug-Reported-by: Tim Waugh , Laird Breyer +Bug-Reference-ID: <20060105174434.GY16000@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00009.html + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347695 + +Bug-Description: + +When the number of saved jobs exceeds the initial size of the jobs array +(4096 slots), the array must be compacted and reallocated. An error in +the code to do that could cause a segmentation fault. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 845,851 **** + { + sigset_t set, oset; +! int nsize, i, j; + JOB **nlist; + + nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); + nsize *= JOB_SLOTS; +--- 888,895 ---- + { + sigset_t set, oset; +! int nsize, i, j, ncur, nprev; + JOB **nlist; + ++ ncur = nprev = NO_JOB; + nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); + nsize *= JOB_SLOTS; +*************** +*** 855,869 **** + + BLOCK_CHILD (set, oset); +! nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); + for (i = j = 0; i < js.j_jobslots; i++) + if (jobs[i]) +! nlist[j++] = jobs[i]; + + js.j_firstj = 0; +! js.j_lastj = (j > 0) ? j - 1: 0; + js.j_jobslots = nsize; + +! free (jobs); +! jobs = nlist; + + UNBLOCK_CHILD (oset); +--- 899,947 ---- + + BLOCK_CHILD (set, oset); +! nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *)); +! + for (i = j = 0; i < js.j_jobslots; i++) + if (jobs[i]) +! { +! if (i == js.j_current) +! ncur = j; +! if (i == js.j_previous) +! nprev = j; +! nlist[j++] = jobs[i]; +! } +! +! #if defined (DEBUG) +! itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize); +! itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0); +! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0); +! #endif + + js.j_firstj = 0; +! js.j_lastj = (j > 0) ? j - 1 : 0; +! js.j_njobs = j; + js.j_jobslots = nsize; + +! /* Zero out remaining slots in new jobs list */ +! for ( ; j < nsize; j++) +! nlist[j] = (JOB *)NULL; +! +! if (jobs != nlist) +! { +! free (jobs); +! jobs = nlist; +! } +! +! if (ncur != NO_JOB) +! js.j_current = ncur; +! if (nprev != NO_JOB) +! js.j_previous = nprev; +! +! /* Need to reset these */ +! if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj) +! reset_current (); +! +! #ifdef DEBUG +! itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous); +! #endif + + UNBLOCK_CHILD (oset); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-008 b/source/a/bash/patches/bash31-008 new file mode 100644 index 000000000..3427b64e0 --- /dev/null +++ b/source/a/bash/patches/bash31-008 @@ -0,0 +1,51 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-008 + +Bug-Reported-by: Ingemar Nilsson +Bug-Reference-ID: <43C38D35.7020404@kth.se> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00044.html + +Bug-Description: + +In some cases, bash inappropriately allows SIGINT from the terminal to +reach background processes. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 2199,2203 **** + wait_sigint_received = 0; + if (job_control == 0) +! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); + + termination_state = last_command_exit_value; +--- 2298,2306 ---- + wait_sigint_received = 0; + if (job_control == 0) +! { +! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +! if (old_sigint_handler == SIG_IGN) +! set_signal_handler (SIGINT, old_sigint_handler); +! } + + termination_state = last_command_exit_value; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-009 b/source/a/bash/patches/bash31-009 new file mode 100644 index 000000000..8ef229585 --- /dev/null +++ b/source/a/bash/patches/bash31-009 @@ -0,0 +1,66 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-009 + +Bug-Reported-by: Joshua Neuheisel +Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html + +Bug-Description: + +Under some circumstances, background (asynchronous) jobs can set the terminal +process group incorrectly. This can cause a foreground process (including +the foreground shell) to get read errors and exit. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 620,625 **** + * the parent gives it away. + * + */ +! if (job_control && newjob->pgrp) + give_terminal_to (newjob->pgrp, 0); + } +--- 634,642 ---- + * the parent gives it away. + * ++ * Don't give the terminal away if this shell is an asynchronous ++ * subshell. ++ * + */ +! if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) + give_terminal_to (newjob->pgrp, 0); + } +*************** +*** 1656,1660 **** + shell's process group (we could be in the middle of a + pipeline, for example). */ +! if (async_p == 0 && pipeline_pgrp != shell_pgrp) + give_terminal_to (pipeline_pgrp, 0); + +--- 1743,1747 ---- + shell's process group (we could be in the middle of a + pipeline, for example). */ +! if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0)) + give_terminal_to (pipeline_pgrp, 0); + +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-010 b/source/a/bash/patches/bash31-010 new file mode 100644 index 000000000..066a3242d --- /dev/null +++ b/source/a/bash/patches/bash31-010 @@ -0,0 +1,54 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-010 + +Bug-Reported-by: vw@vonwolff.de +Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html + +Bug-Description: + +There is a difference in behavior between bash-3.0 and bash-3.1 involving +parsing of single- and double-quoted strings occurring in old-style +command substitution. The difference has to do with how backslashes are +processed. This patch restores a measure of backwards compatibility while +the question of POSIX conformance and ultimately correct behavior is discussed. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 2899,2903 **** + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + { +! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); + goto add_nestret; + } +--- 2901,2909 ---- + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + { +! /* Add P_ALLOWESC so backslash quotes the next character and +! shell_getc does the right thing with \. We do this for +! a measure of backwards compatibility -- it's not strictly the +! right POSIX thing. */ +! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_ALLOWESC); + goto add_nestret; + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-011 b/source/a/bash/patches/bash31-011 new file mode 100644 index 000000000..025b83907 --- /dev/null +++ b/source/a/bash/patches/bash31-011 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-011 + +Bug-Reported-by: Mike Stroyan +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00033.html + +Bug-Description: + +A change in bash-3.1 caused the single quotes to be stripped from ANSI-C +quoting inside double-quoted command substitutions. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 2908,2912 **** + count--; + if (ch == '(') /* ) */ +! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +--- 2914,2918 ---- + count--; + if (ch == '(') /* ) */ +! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-012 b/source/a/bash/patches/bash31-012 new file mode 100644 index 000000000..b0ddb3a48 --- /dev/null +++ b/source/a/bash/patches/bash31-012 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-012 + +Bug-Reported-by: Alexander Kshevetskiy +Bug-Reference-ID: <308374997.20060124175849@dgap.mipt.ru> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00097.html + +Bug-Description: + +There is a parsing problem involving parentheses in assignment statements +that causes words to be terminated prematurely. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 3579,3583 **** + all_digit_token = 0; + compound_assignment = 1; +! #if 0 + goto next_character; + #else +--- 3584,3588 ---- + all_digit_token = 0; + compound_assignment = 1; +! #if 1 + goto next_character; + #else +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-013 b/source/a/bash/patches/bash31-013 new file mode 100644 index 000000000..93c7c8fc8 --- /dev/null +++ b/source/a/bash/patches/bash31-013 @@ -0,0 +1,44 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-013 + +Bug-Reported-by: Bob Rossi +Bug-Reference-ID: <43F60606.80708@case.edu> +Bug-Reference-URL: + +Bug-Description: + +In some cases, readline will reference freed memory when attempting to +display a portion of the prompt. + +Patch: + +*** ../bash-3.1-patched/lib/readline/readline.c Mon Jul 4 22:29:35 2005 +--- lib/readline/readline.c Fri Feb 17 22:54:22 2006 +*************** +*** 282,287 **** +--- 282,288 ---- + { + FREE (rl_prompt); + rl_prompt = prompt ? savestring (prompt) : (char *)NULL; ++ rl_display_prompt = rl_prompt ? rl_prompt : ""; + + rl_visible_prompt_length = rl_expand_prompt (rl_prompt); + return 0; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-014 b/source/a/bash/patches/bash31-014 new file mode 100644 index 000000000..82ff9b408 --- /dev/null +++ b/source/a/bash/patches/bash31-014 @@ -0,0 +1,105 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-014 + +Bug-Reported-by: Mike Stroyan +Bug-Reference-ID: <20060203191607.GC27614@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00004.html + +Bug-Description: + +The displayed search prompt is corrupted when using non-incremental +searches in vi and emacs mode if the prompt contains non-printing +characters or spans multiple lines. The prompt is expanded more than +once; the second time without the escape sequences that protect non- +printing characters from the length calculations. + +Patch: + +*** ../bash-3.1-patched/lib/readline/display.c Wed Nov 30 14:05:02 2005 +--- lib/readline/display.c Sat Feb 18 12:14:58 2006 +*************** +*** 1983,1993 **** + int pchar; + { + int len; +! char *pmt; + + rl_save_prompt (); + +! if (saved_local_prompt == 0) + { + len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; + pmt = (char *)xmalloc (len + 2); +--- 1998,2012 ---- + int pchar; + { + int len; +! char *pmt, *p; + + rl_save_prompt (); + +! /* We've saved the prompt, and can do anything with the various prompt +! strings we need before they're restored. We want the unexpanded +! portion of the prompt string after any final newline. */ +! p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; +! if (p == 0) + { + len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; + pmt = (char *)xmalloc (len + 2); +*************** +*** 1998,2016 **** + } + else + { +! len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; + pmt = (char *)xmalloc (len + 2); + if (len) +! strcpy (pmt, saved_local_prompt); + pmt[len] = pchar; + pmt[len+1] = '\0'; +! local_prompt = savestring (pmt); +! prompt_last_invisible = saved_last_invisible; +! prompt_visible_length = saved_visible_length + 1; +! } + + prompt_physical_chars = saved_physical_chars + 1; +- + return pmt; + } + +--- 2017,2033 ---- + } + else + { +! p++; +! len = strlen (p); + pmt = (char *)xmalloc (len + 2); + if (len) +! strcpy (pmt, p); + pmt[len] = pchar; + pmt[len+1] = '\0'; +! } + ++ /* will be overwritten by expand_prompt, called from rl_message */ + prompt_physical_chars = saved_physical_chars + 1; + return pmt; + } + +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-015 b/source/a/bash/patches/bash31-015 new file mode 100644 index 000000000..deb9eed58 --- /dev/null +++ b/source/a/bash/patches/bash31-015 @@ -0,0 +1,106 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-015 + +Bug-Reported-by: Benoit Vila +Bug-Reference-ID: <43FCA614.1090108@free.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00058.html + +Bug-Description: + +A problem with the extended globbing code prevented dots from matching +filenames when used in some extended matching patterns. + +Patch: + +*** ../bash-3.1-patched/lib/glob/sm_loop.c Sun Oct 16 21:21:04 2005 +--- lib/glob/sm_loop.c Mon Feb 27 17:18:43 2006 +*************** +*** 639,643 **** + CHAR *pnext; /* pointer to next sub-pattern */ + CHAR *srest; /* pointer to rest of string */ +! int m1, m2; + + #if DEBUG_MATCHING +--- 638,642 ---- + CHAR *pnext; /* pointer to next sub-pattern */ + CHAR *srest; /* pointer to rest of string */ +! int m1, m2, xflags; /* xflags = flags passed to recursive matches */ + + #if DEBUG_MATCHING +*************** +*** 645,648 **** +--- 644,648 ---- + fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se); + fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe); ++ fprintf(stderr, "extmatch: flags = %d\n", flags); + #endif + +*************** +*** 678,683 **** + multiple matches of the pattern. */ + if (m1) +! m2 = (GMATCH (srest, se, prest, pe, flags) == 0) || +! (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0); + if (m1 && m2) + return (0); +--- 678,687 ---- + multiple matches of the pattern. */ + if (m1) +! { +! /* if srest > s, we are not at start of string */ +! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) || +! (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0); +! } + if (m1 && m2) + return (0); +*************** +*** 705,710 **** + for ( ; srest <= se; srest++) + { + if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! GMATCH (srest, se, prest, pe, flags) == 0) + return (0); + } +--- 709,716 ---- + for ( ; srest <= se; srest++) + { ++ /* if srest > s, we are not at start of string */ ++ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; + if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! GMATCH (srest, se, prest, pe, xflags) == 0) + return (0); + } +*************** +*** 727,731 **** + break; + } +! if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0) + return (0); + } +--- 733,739 ---- + break; + } +! /* if srest > s, we are not at start of string */ +! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0) + return (0); + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-016 b/source/a/bash/patches/bash31-016 new file mode 100644 index 000000000..fa0ffe1c7 --- /dev/null +++ b/source/a/bash/patches/bash31-016 @@ -0,0 +1,51 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-016 + +Bug-Reported-by: Nikita Danilov +Bug-Reference-ID: <17397.51015.769854.541057@gargle.gargle.HOWL> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00064.html + +Bug-Description: + +Bash will dump core when attempting to perform globbing in directories with +very large numbers of files. + +Patch: + +*** ../bash-3.1-patched/lib/glob/glob.c Thu Mar 24 12:42:27 2005 +--- lib/glob/glob.c Fri Mar 3 16:54:12 2006 +*************** +*** 361,364 **** +--- 361,365 ---- + + firstmalloc = 0; ++ nalloca = 0; + + /* If PAT is empty, skip the loop, but return one (empty) filename. */ +*************** +*** 547,550 **** +--- 551,556 ---- + tmplink = lastlink; + } ++ else ++ tmplink = 0; + free (lastlink->name); + lastlink = lastlink->next; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/patches/bash31-017 b/source/a/bash/patches/bash31-017 new file mode 100644 index 000000000..84f891551 --- /dev/null +++ b/source/a/bash/patches/bash31-017 @@ -0,0 +1,131 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-017 + +Bug-Reported-by: syphir@syphir.sytes.net +Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net> +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831 + +Bug-Description: + +Array expansion fails with an arithmetic syntax error when the subscript +appears within double quotes. For example: ${a["4"]}. + +Patch: + +*** ../bash-3.1-patched/subst.c Wed Apr 12 08:47:08 2006 +--- subst.c Wed Apr 12 08:49:02 2006 +*************** +*** 2576,2579 **** +--- 2576,2586 ---- + } + ++ char * ++ expand_arith_string (string, quoted) ++ char *string; ++ { ++ return (expand_string_if_necessary (string, quoted, expand_string)); ++ } ++ + #if defined (COND_COMMAND) + /* Just remove backslashes in STRING. Returns a new string. */ +*************** +*** 5249,5253 **** + t = (char *)0; + +! temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string); + *e1p = evalexp (temp1, &expok); + free (temp1); +--- 5256,5260 ---- + t = (char *)0; + +! temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES); + *e1p = evalexp (temp1, &expok); + free (temp1); +*************** +*** 5294,5298 **** + t++; + temp2 = savestring (t); +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + t[-1] = ':'; +--- 5301,5305 ---- + t++; + temp2 = savestring (t); +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + t[-1] = ':'; +*************** +*** 6436,6440 **** + + /* Expand variables found inside the expression. */ +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + +--- 6443,6447 ---- + + /* Expand variables found inside the expression. */ +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + +*************** +*** 6478,6482 **** + + /* Do initial variable expansion. */ +! temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string); + + goto arithsub; +--- 6485,6489 ---- + + /* Do initial variable expansion. */ +! temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); + + goto arithsub; +*** ../bash-3.1-patched/subst.h Sun Nov 7 15:12:28 2004 +--- subst.h Mon Mar 27 09:10:38 2006 +*************** +*** 152,155 **** +--- 152,158 ---- + extern char *expand_assignment_string_to_string __P((char *, int)); + ++ /* Expand an arithmetic expression string */ ++ extern char *expand_arith_string __P((char *, int)); ++ + /* De-quoted quoted characters in STRING. */ + extern char *dequote_string __P((char *)); +*** ../bash-3.1-patched/arrayfunc.c Mon Jul 4 20:25:58 2005 +--- arrayfunc.c Mon Mar 27 09:10:47 2006 +*************** +*** 593,601 **** + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! #if 0 +! t = expand_string_to_string (exp, 0); +! #else +! t = expand_string_to_string (exp, Q_DOUBLE_QUOTES); +! #endif + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +--- 591,595 ---- + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! t = expand_arith_string (exp, 0); + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/source/a/bash/slack-desc b/source/a/bash/slack-desc new file mode 100644 index 000000000..f2fdb9292 --- /dev/null +++ b/source/a/bash/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bash: bash (sh-compatible shell) +bash: +bash: The GNU Bourne-Again SHell. Bash is a sh-compatible command +bash: interpreter that executes commands read from the standard input or +bash: from a file. Bash also incorporates useful features from the Korn +bash: and C shells (ksh and csh). Bash is ultimately intended to be a +bash: conformant implementation of the IEEE Posix Shell and Tools +bash: specification (IEEE Working Group 1003.2). +bash: +bash: Bash must be present for the system to boot properly. +bash: diff --git a/source/a/bin/bin.SlackBuild b/source/a/bin/bin.SlackBuild new file mode 100755 index 000000000..69995accc --- /dev/null +++ b/source/a/bin/bin.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=11.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bin + +# These don't need to be real recent, as we only require a couple +# of things such as 'mktemp' and 'tempfile'. +DUTILS=2.7 + +# The fbset package +FBSET=2.1 + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+=============+" +echo "| debianutils |" +echo "+=============+" +cd $TMP +rm -rf debianutils-$DUTILS +tar xzvf $CWD/debianutils_$DUTILS.tar.gz +cd debianutils-$DUTILS +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +## We use our own very simple run-parts script +## in the dcron package instead. +#cat run-parts > $PKG/usr/bin/run-parts +#cat run-parts.8 | gzip -9c > $PKG/usr/man/man8/run-parts.8.gz +mkdir -p $PKG/usr/bin $PKG/usr/man/man{1,8} +cat mktemp > $PKG/usr/bin/mktemp +cat mktemp.1 | gzip -9c > $PKG/usr/man/man1/mktemp.1.gz +cat savelog > $PKG/usr/bin/savelog +cat savelog.8 | gzip -9c > $PKG/usr/man/man8/savelog.8.gz +cat tempfile > $PKG/usr/bin/tempfile +cat tempfile.1 | gzip -9c > $PKG/usr/man/man1/tempfile.1.gz +chmod 755 $PKG/usr/bin/* +mkdir -p $PKG/usr/doc/debianutils-$DUTILS +cp -a debian/copyright $PKG/usr/doc/debianutils-$DUTILS + +echo "+===========+" +echo "| fbset-${FBSET} |" +echo "+===========+" +cd $TMP +rm -rf fbset-${FBSET} +tar xzvf $CWD/fbset-${FBSET}.tar.gz +cd fbset-${FBSET} +chown -R root:root . +make || exit 1 +mkdir -p $PKG/usr/sbin +cat fbset > $PKG/usr/sbin/fbset +chmod 755 $PKG/usr/sbin/fbset +mkdir -p $PKG/etc +cat etc/fb.modes.ATI > $PKG/etc/fb.modes +mkdir -p $PKG/usr/man/man5 +cat fb.modes.5 | gzip -9c > $PKG/usr/man/man5/fb.modes.5.gz +mkdir -p $PKG/usr/man/man8 +cat fbset.8 | gzip -9c > $PKG/usr/man/man8/fbset.8.gz +mkdir -p $PKG/usr/doc/fbset-${FBSET} +cp -a \ + INSTALL etc/* \ + $PKG/usr/doc/fbset-${FBSET} +rm -r $PKG/usr/doc/fbset-${FBSET}/CVS + +echo "+=========+" +echo "| banners |" +echo "+=========+" +cd $TMP +rm -rf banners +tar xzvf $CWD/banners.tar.gz +cd banners +chown -R root:root . +make || exit 1 +cat bban > $PKG/usr/bin/bban +cat sysvbanner > $PKG/usr/bin/sysvbanner +chmod 755 $PKG/usr/bin/{bban,sysvbanner} + +echo "+===============+" +echo "| todos/fromdos |" +echo "+===============+" +cd $TMP +rm -rf todos +tar xzvf $CWD/todos.tar.gz +cd todos +chown -R root:root . +make || exit 1 +mkdir -p $PKG/usr/bin +cat todos > $PKG/usr/bin/todos +cat fromdos > $PKG/usr/bin/fromdos +chmod 755 $PKG/usr/bin/*dos +mkdir -p $PKG/usr/man/man1 +cat todos.1.gz > $PKG/usr/man/man1/todos.1.gz +cat fromdos.1.gz > $PKG/usr/man/man1/fromdos.1.gz + +# These are a couple of really old scripts that might still +# be useful for a couple more years. :-) +zcat $CWD/scripts/diskcopy.gz > $PKG/usr/bin/diskcopy +zcat $CWD/scripts/xx.gz > $PKG/usr/bin/xx +chmod 755 $PKG/usr/bin/diskcopy +chmod 755 $PKG/usr/bin/xx + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bin-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/bin/debianutils_2.7.dsc b/source/a/bin/debianutils_2.7.dsc new file mode 100644 index 000000000..25a643a7b --- /dev/null +++ b/source/a/bin/debianutils_2.7.dsc @@ -0,0 +1,21 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +Format: 1.0 +Source: debianutils +Version: 2.7 +Binary: debianutils +Maintainer: Clint Adams +Architecture: any +Standards-Version: 3.6.1 +Files: + e966d93a3ee20068197104049ebd7d70 165590 debianutils_2.7.tar.gz + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.4 (GNU/Linux) +Comment: Debian! + +iD8DBQFAO4b85m0u66uWM3ARAotWAKCE/B4HoDVZ5rHi4AISWwHO59cEgwCgqQ6d +Rt+5nuJdAgkcQgKDQu52RwI= +=2QDD +-----END PGP SIGNATURE----- diff --git a/source/a/bin/scripts/diskcopy b/source/a/bin/scripts/diskcopy new file mode 100644 index 000000000..9f3cc586f --- /dev/null +++ b/source/a/bin/scripts/diskcopy @@ -0,0 +1,9 @@ +#!/bin/sh +echo -n "Insert source disk in first floppy drive, then hit enter" +read ans; +MCOOKIE=`mcookie` +dd if=/dev/fd0 of=/tmp/dcopy.$MCOOKIE +echo -n "Remove source disk and insert destination disk, then hit enter" +read ans; +dd of=/dev/fd0 if=/tmp/dcopy.$MCOOKIE +/bin/rm -f /tmp/dcopy.$MCOOKIE diff --git a/source/a/bin/scripts/xx b/source/a/bin/scripts/xx new file mode 100644 index 000000000..4116c2093 --- /dev/null +++ b/source/a/bin/scripts/xx @@ -0,0 +1,21 @@ +# +# A script to extract binary files from uudecoded files. Ignores all headers +# and irrelevant stuff. Has shortfalls like all such scripts/programs but works +# (almost) 100% of the time. We tested it against many such tools available +# at many ftp sites and found it having higher success rate. There are +# a few c-programs out there and it is slower as compared to them but it +# works even in those cases when they fail to work. +# The only time it will not work is that if uuencoded source file is cut up +# in many pieces and LAST part contains LESS THAN 3 SOURCE lines in it and +# we know that such cases (almost) never arise....guarenteed....:) +# +# Written by Tahir Zia Khawaja and +# Nasir Ahmed Noor +#umnoor@ccu.umanitoba.ca +#umkhawaj@ccu.umanitoba.ca +# +awk '$0 ~ /^begin / {print $0; exit}' $1 > $$gifile +egrep "^M[^a-z]" $1 >> $$gifile +awk 'NR > 2 {sl=lr; lr=pr; pr=$0} $1 ~ /^end/ {print sl; print lr; print pr; exit}' $1 >> $$gifile +uudecode $$gifile +rm $$gifile diff --git a/source/a/bin/slack-desc b/source/a/bin/slack-desc new file mode 100644 index 000000000..de9e307d7 --- /dev/null +++ b/source/a/bin/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bin: bin (some command-line utilities) +bin: +bin: The bin package is a collection of miscellaneous command-line +bin: utilities. Some of these (such as 'tempfile') are used in system +bin: scripts. +bin: +bin: +bin: +bin: +bin: +bin: diff --git a/source/a/bzip2/bzip2-1.0.4.saneso.diff b/source/a/bzip2/bzip2-1.0.4.saneso.diff new file mode 100644 index 000000000..edbf1ad00 --- /dev/null +++ b/source/a/bzip2/bzip2-1.0.4.saneso.diff @@ -0,0 +1,20 @@ +--- ./Makefile-libbz2_so.orig 2007-01-02 20:00:55.000000000 -0600 ++++ ./Makefile-libbz2_so 2007-01-23 22:02:29.000000000 -0600 +@@ -35,13 +35,13 @@ + bzlib.o + + all: $(OBJS) +- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.4 $(OBJS) ++ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.4 $(OBJS) + $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.4 +- rm -f libbz2.so.1.0 +- ln -s libbz2.so.1.0.4 libbz2.so.1.0 ++ rm -f libbz2.so.1 ++ ln -s libbz2.so.1.0.4 libbz2.so.1 + + clean: +- rm -f $(OBJS) bzip2.o libbz2.so.1.0.4 libbz2.so.1.0 bzip2-shared ++ rm -f $(OBJS) bzip2.o libbz2.so.1.0.4 libbz2.so.1 bzip2-shared + + blocksort.o: blocksort.c + $(CC) $(CFLAGS) -c blocksort.c diff --git a/source/a/bzip2/bzip2.SlackBuild b/source/a/bzip2/bzip2.SlackBuild new file mode 100755 index 000000000..465f75e07 --- /dev/null +++ b/source/a/bzip2/bzip2.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.0.5 +SOLIB=1.0.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bzip2 + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf bzip2-$VERSION +tar xzvf $CWD/bzip2-$VERSION.tar.gz +cd bzip2-$VERSION +chown -R root:root . +# This should be ok, since libbz2.so.1.0 will still exist. +zcat $CWD/bzip2-1.0.4.saneso.diff.gz | patch -p1 || exit +make -f Makefile-libbz2_so || exit 1 +make || exit 1 +mkdir -p $PKG/usr/include +cp -a bzlib.h $PKG/usr/include +chown root:root $PKG/usr/include/bzlib.h +chmod 644 $PKG/usr/include/bzlib.h +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cp -a libbz2.a $PKG/usr/lib${LIBDIRSUFFIX}/libbz2.a +mkdir -p $PKG/lib${LIBDIRSUFFIX} +cp -a libbz2.so.$SOLIB $PKG/lib${LIBDIRSUFFIX}/libbz2.so.$SOLIB +chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/libbz2.a +chmod 755 $PKG/lib${LIBDIRSUFFIX}/libbz2.so.$SOLIB +mkdir -p $PKG/bin +cat bzip2-shared > $PKG/bin/bzip2 +cat bzip2recover > $PKG/bin/bzip2recover +mkdir -p $PKG/usr/man/man1 +cat bzip2.1 | gzip -9c > $PKG/usr/man/man1/bzip2.1.gz +echo '.so man1/bzip2.1' | gzip -9c > $PKG/usr/man/man1/bzip2recover.1.gz +mkdir -p $PKG/usr/doc/bzip2-$VERSION +cp -a CHANGES LICENSE README README.COMPILATION.PROBLEMS Y2K_INFO \ + bzip2.txt *.html $PKG/usr/doc/bzip2-$VERSION +chmod 644 $PKG/usr/doc/bzip2-$VERSION/* +# Link up them links +( cd $PKG + ( cd lib${LIBDIRSUFFIX} + rm -f libbz2.so.1.0 libbz2.so.1 + ln -sf libbz2.so.$SOLIB libbz2.so.1.0 + ln -sf libbz2.so.1.0 libbz2.so.1 + ) + ( cd usr/lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/libbz2.so.1 libbz2.so + ) + ( cd bin ; ln -sf bzip2 bunzip2 ) + ( cd bin ; ln -sf bzip2 bzcat ) + mkdir -p usr/bin + ( cd usr/bin + ln -sf ../../bin/bzip2 . + ln -sf ../../bin/bzip2 bunzip2 + ln -sf ../../bin/bzip2 bzcat + ln -sf bzmore bzless + ) +) +# Here are some optional scripts: +for file in bzdiff bzgrep bzmore ; do + cat $file > $PKG/usr/bin/$file + cat ${file}.1 | gzip -9c > $PKG/usr/man/man1/${file}.1.gz +done +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +chmod 755 $PKG/bin/* $PKG/usr/bin/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bzip2-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/bzip2-$VERSION + rm -rf $PKG +fi diff --git a/source/a/bzip2/slack-desc b/source/a/bzip2/slack-desc new file mode 100644 index 000000000..8026e7553 --- /dev/null +++ b/source/a/bzip2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bzip2: bzip2 (a block-sorting file compressor) +bzip2: +bzip2: Bzip2 compresses files using the Burrows-Wheeler block sorting text +bzip2: compression algorithm, and Huffman coding. Compression is generally +bzip2: considerably better than that achieved by more conventional LZ77/LZ78- +bzip2: based compressors, and approaches the performance of the PPM family of +bzip2: statistical compressors. +bzip2: +bzip2: Julian Seward is the author of bzip2. +bzip2: +bzip2: diff --git a/source/a/coreutils/DIR_COLORS b/source/a/coreutils/DIR_COLORS new file mode 100644 index 000000000..2556aa014 --- /dev/null +++ b/source/a/coreutils/DIR_COLORS @@ -0,0 +1,202 @@ +# Configuration file for dircolors, a utility to help you set the +# LS_COLORS environment variable used by GNU ls with the --color option. + +# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the +# slackware version of dircolors) are recognized but ignored. +# (see the scripts in /etc/profile.d/coreutils-dircolors.* to change default +# options in the Slackware aliases) + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM linux +TERM linux-c +TERM mach-color +TERM console +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cygwin +TERM dtterm +TERM putty +TERM xterm +TERM xterm-color +TERM xterm-debian +TERM rxvt +TERM screen +TERM screen-bce +TERM screen-w +TERM vt100 +TERM Eterm + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +NORMAL 00 # global default, although everything should be something. +FILE 00 # normal file +# RESET 0 # reset to "normal" color +DIR 01;34 # directory +LINK 01;36 # symbolic link. (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +# HARDLINK 44;37 # regular file with more than one link +FIFO 40;33 # pipe +SOCK 01;35 # socket +DOOR 01;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +EXEC 01;32 # This is for files with execute permission: + +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') + +# DOS-style executables (bright green) +.bat 01;32 +.BAT 01;32 +.btm 01;32 +.BTM 01;32 +.cmd 01;32 +.CMD 01;32 +.com 01;32 +.COM 01;32 +.dll 01;32 +.DLL 01;32 +.exe 01;32 +.EXE 01;32 + +# archives or compressed (bright red) +.7z 01;31 +.ace 01;31 +.arj 01;31 +.bz2 01;31 +.cpio 01;31 +.deb 01;31 +.dz 01;31 +.gz 01;31 +.jar 01;31 +.lzh 01;31 +.lzma 01;31 +.rar 01;31 +.RAR 01;31 +.rpm 01;31 +.rz 01;31 +.tar 01;31 +.taz 01;31 +.tb2 01;31 +.tbz2 01;31 +.tbz 01;31 +.tgz 01;31 +.tlz 01;31 +.trz 01;31 +.txz 01;31 +.tz 01;31 +.tz2 01;31 +.xz 01;31 +.z 01;31 +.Z 01;31 +.zip 01;31 +.ZIP 01;31 +.zoo 01;31 + +# multimedia (video/image/sound) file formats +.aac 00;35 +.anx 01;35 +.asf 01;35 +.ASF 01;35 +.au 00;35 +.axa 00;35 +.axv 01;35 +.avi 01;35 +.AVI 01;35 +.bmp 01;35 +.BMP 01;35 +.flac 01;35 +.FLAC 01;35 +.gif 01;35 +.GIF 01;35 +.jpg 01;35 +.JPG 01;35 +.jpeg 01;35 +.JPEG 01;35 +.m2a 01;35 +.M2A 01;35 +.m2v 01;35 +.M2V 01;35 +.m4a 01;35 +.M4A 01;35 +.m4p 01;35 +.M4P 01;35 +.m4v 01;35 +.M4V 01;35 +.mid 00;35 +.midi 00;35 +.mka 00;35 +.mov 01;35 +.MOV 01;35 +.mp3 01;35 +.MP3 01;35 +.mp4 01;35 +.mp4v 01;35 +.mpc 01;35 +.MPC 01;35 +.mpeg 01;35 +.MPEG 01;35 +.mpg 01;35 +.MPG 01;35 +.nuv 01;35 +.oga 00;35 +.ogv 01;35 +.ogx 01;35 +.ogg 01;35 +.OGG 01;35 +.pbm 01;35 +.pgm 01;35 +.png 01;35 +.PNG 01;35 +.ppm 01;35 +.qt 01;35 +.ra 00;35 +.ram 01;35 +.RAM 01;35 +.rm 01;35 +.RM 01;35 +.spx 00;35 +.svg 01;35 +.svgz 01;35 +.tga 01;35 +.TGA 01;35 +.tif 01;35 +.TIF 01;35 +.tiff 01;35 +.TIFF 01;35 +.vob 01;35 +.wav 01;35 +.WAV 01;35 +.wma 01;35 +.WMA 01;35 +.wmv 01;35 +.WMV 01;35 +.xbm 01;35 +.xcf 01;35 +.xpm 01;35 +.xspf 00;35 +.xwd 01;35 +.XWD 01;35 + diff --git a/source/a/coreutils/coreutils-dircolors.csh b/source/a/coreutils/coreutils-dircolors.csh new file mode 100644 index 000000000..38d73ca2a --- /dev/null +++ b/source/a/coreutils/coreutils-dircolors.csh @@ -0,0 +1,48 @@ +# Slackware color ls profile script for /bin/csh-like shells. + +# Set up LS_OPTIONS environment variable. +# This contains extra command line options to use with ls. +# The default ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +# -b = better support for special characters +setenv OPTIONS "-F -b -T 0" + +# COLOR needs one of these arguments: +# 'auto' colorizes output to ttys, but not pipes. +# 'always' adds color characters to all output. +# 'never' shuts colorization off. +setenv COLOR auto + +# This section shouldn't require any user adjustment since it is +# simply setting the LS_OPTIONS variable using the information +# already given above: +setenv LS_OPTIONS " $OPTIONS --color=$COLOR " +unset COLOR +unset OPTIONS + +# Set up aliases to use color ls by default. A few additional +# aliases like 'dir', 'vdir', etc, are some ancient artifacts +# from 1992 or so... possibly they should be disabled, but maybe +# someone out there is actually using them? :-) +alias ls '/bin/ls $LS_OPTIONS'; +alias dir '/bin/ls $LS_OPTIONS --format=vertical'; +alias vdir '/bin/ls $LS_OPTIONS --format=long'; +alias d dir; +alias v vdir; +unset noglob; + +# Set up the LS_COLORS environment: +[ -f $HOME/.dir_colors ] +if ($status == 0) then + eval `/bin/dircolors -c $HOME/.dir_colors` +endif +[ -f /etc/DIR_COLORS ] +if ($status == 0) then + eval `/bin/dircolors -c /etc/DIR_COLORS` +endif +[ ! -f $HOME/.dir_colors -a ! -f /etc/DIR_COLORS ] +if ($status == 0) then + eval `/bin/dircolors -c` +endif + diff --git a/source/a/coreutils/coreutils-dircolors.sh b/source/a/coreutils/coreutils-dircolors.sh new file mode 100644 index 000000000..728ea7452 --- /dev/null +++ b/source/a/coreutils/coreutils-dircolors.sh @@ -0,0 +1,65 @@ +# Slackware color ls profile script for /bin/sh-like shells. + +# Set up LS_OPTIONS environment variable. +# This contains extra command line options to use with ls. +# The default ones are: +# -F = show '/' for dirs, '*' for executables, etc. +# -T 0 = don't trust tab spacing when formatting ls output. +# -b = better support for special characters +if [ "$SHELL" != "/bin/zsh" ]; then + # Edit options below for all sh-like shells except zsh: + OPTIONS="-F -b -T 0" +else + # If you use zsh, edit the options below instead: + OPTIONS=( -F -b -T 0 ) +fi + +# COLOR needs one of these arguments: +# 'auto' colorizes output to ttys, but not pipes. +# 'always' adds color characters to all output. +# 'never' shuts colorization off. +COLOR=auto + +# This section shouldn't require any user adjustment since it is +# simply setting the LS_OPTIONS variable using the information +# already given above: +if [ "$SHELL" = "/bin/zsh" ]; then + LS_OPTIONS=( $OPTIONS --color=$COLOR ); +else + LS_OPTIONS=" $OPTIONS --color=$COLOR "; +fi +export LS_OPTIONS; +unset COLOR +unset OPTIONS + +# Set up aliases to use color ls by default. A few additional +# aliases like 'dir', 'vdir', etc, are some ancient artifacts +# from 1992 or so... possibly they should be disabled, but maybe +# someone out there is actually using them? :-) +# Assume shell aliases are supported. Ash is going to freak out +# when it sees zsh syntax anyway, so whatever. +alias ls='/bin/ls $LS_OPTIONS'; +alias dir='/bin/ls $LS_OPTIONS --format=vertical'; +alias vdir='/bin/ls $LS_OPTIONS --format=long'; +alias d=dir; +alias v=vdir; + +# Just for fun, here are the old sh/ash style shell functions. +# this script isn't currently working with ash (and makes some noisy +# error messages), but perhaps these will still be of use to +# someone... +#ls () { /bin/ls $LS_OPTIONS "$@" ; }; +#dir () { /bin/ls $LS_OPTIONS --format=vertical "$@" ; }; +#vdir () { /bin/ls $LS_OPTIONS --format=long "$@" ; }; +#d () { dir "$@" ; }; +#v () { vdir "$@" ; }; + +# Set up the LS_COLORS environment: +if [ -f $HOME/.dir_colors ]; then + eval `/bin/dircolors -b $HOME/.dir_colors` +elif [ -f /etc/DIR_COLORS ]; then + eval `/bin/dircolors -b /etc/DIR_COLORS` +else + eval `/bin/dircolors -b` +fi + diff --git a/source/a/coreutils/coreutils.SlackBuild b/source/a/coreutils/coreutils.SlackBuild new file mode 100755 index 000000000..bc0434277 --- /dev/null +++ b/source/a/coreutils/coreutils.SlackBuild @@ -0,0 +1,168 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PRGNAM=coreutils +VERSION=${VERSION:-7.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP + +rm -rf $PRGNAM-$VERSION +if [ -r $CWD/$PRGNAM-$VERSION.tar.gz ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.bz2 ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.xz ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.xz || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.lzma ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.lzma || exit 1 +else + exit 1 +fi + +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Patch in the uname for Linux enhancements +zcat $CWD/$PRGNAM.uname.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Compilation with glibc version later than 2.3.2 needs the environment +# variable DEFAULT_POSIX2_VERSION set to 199209. +# Without the next line, the coreutils will start complaining about 'obsolete' +# command switches, like "tail -20" will be considered obsolete. +# This behaviour breaks many other packages... the 'obsolete' parameters are +# too commonly used to disregard them. Better to stick with the older more +# widely accepted standards until things begin to demand the new way. + +CFLAGS="$SLKCFLAGS" \ +DEFAULT_POSIX2_VERSION=199209 \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --sysconfdir=/etc \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# We have had the mktemp from debianutils included with Slackware for quite a +# long time, and certain options are changed here, like changing -u to mean a +# dry-run rather than to unlink the tempfile when finished. Since this could +# break existing scripts, unless someone can tell me a good reason why we +# should start using a new version of mktemp, we will continue to use the +# one we've been using. If the new one starts to become expected, let me know. +# We'll figure out what the best options are and go from there. +mv $PKG/bin/mktemp $PKG/bin/mktemp-gnu +mv $PKG/usr/man/man1/mktemp.1 $PKG/usr/man/man1/mktemp-gnu.1 + +# This seems wrong, and it stomps on files in the ksh93 package, though I'm +# not sure the placement of those is correct, either... The ksh93 package +# installs them as flat text files, while coreutils installs empty directories +# Oh well, this is what we've done for years, and nobody's complained... +rm -rf $PKG/usr/share/locale/*/LC_TIME + +# These are important enough that they should probably all go into /bin at this +# point... Having some of them unavailable when /usr isn't mounted is just a +# source of unending bug reports for various third party applications. +# Time to end those reports. :-) +mkdir -p $PKG/bin $PKG/usr/bin +( cd $PKG/usr/bin + for file in ../../bin/* ; do + ln --verbose -sf $file . + done +) + +# Add some defaults, although a very slack-like set of default options are built +# into /bin/ls now anyway: +mkdir -p $PKG/etc +zcat $CWD/DIR_COLORS.gz > $PKG/etc/DIR_COLORS.new + +# Since dircolors no longer provides any default aliases these scripts +# will be needed for ls to act as expected: +mkdir -p $PKG/etc/profile.d +zcat $CWD/coreutils-dircolors.csh.gz > $PKG/etc/profile.d/coreutils-dircolors.csh +zcat $CWD/coreutils-dircolors.sh.gz > $PKG/etc/profile.d/coreutils-dircolors.sh +chmod 755 $PKG/etc/profile.d/* + +# Remove things that are provided by other Slackware packages: +for dupe in hostname kill su uptime ; do + rm -f $PKG/bin/${dupe} $PKG/usr/bin/${dupe} \ + $PKG/usr/sbin/${dupe} $PKG/usr/man/man?/${dupe}.* ; +done + +# Add ginstall links (there's still a lot of stuff that needs this to compile): +( cd $PKG/bin ; ln -sf install ginstall ) +( cd $PKG/usr/bin ; ln -sf ../../bin/ginstall ginstall ) +( cd $PKG/usr/man/man1 ; ln -sf install.1 ginstall.1 ) + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* NEWS README THANKS THANKS-to-translators TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/coreutils/coreutils.uname.diff b/source/a/coreutils/coreutils.uname.diff new file mode 100644 index 000000000..bd39221c1 --- /dev/null +++ b/source/a/coreutils/coreutils.uname.diff @@ -0,0 +1,161 @@ +Submitted By: Jim Gifford +Date: 2006-08-24 +Initial Package Version: 5.97 +Upstream Status: Not Accepted +Origin: Gentoo - http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils +Description: Display CPU Information from /proc/cpuinfo or /proc/sysinfo + +Original Patch by - Matthew Burgess and Scot McPherson + +diff -Nur coreutils-7.1.orig/src/uname.c coreutils-7.1/src/uname.c +--- coreutils-7.1/src/uname.c 2008-09-18 02:06:57.000000000 -0500 ++++ coreutils-7.1/src/uname.c 2009-02-22 21:23:02.209219703 -0600 +@@ -50,6 +50,11 @@ + # include + #endif + ++#if defined (__linux__) ++# define USE_PROCINFO ++# define UNAME_HARDWARE_PLATFORM ++#endif ++ + #include "system.h" + #include "error.h" + #include "quote.h" +@@ -155,6 +160,106 @@ + exit (status); + } + ++#if defined(USE_PROCINFO) ++ ++# if defined(__s390__) || defined(__s390x__) ++# define CPUINFO_FILE "/proc/sysinfo" ++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c" ++# else ++# define CPUINFO_FILE "/proc/cpuinfo" ++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c" ++# endif ++ ++# define PROCINFO_PROCESSOR 0 ++# define PROCINFO_HARDWARE_PLATFORM 1 ++ ++static void __eat_cpuinfo_space(char *buf) ++{ ++ /* first eat trailing space */ ++ char *tmp = buf + strlen(buf) - 1; ++ while (tmp > buf && isspace(*tmp)) ++ *tmp-- = '\0'; ++ /* then eat leading space */ ++ tmp = buf; ++ while (*tmp && isspace(*tmp)) ++ tmp++; ++ if (tmp != buf) ++ memmove(buf, tmp, strlen(tmp)+1); ++} ++ ++static int __linux_procinfo (int x, char *fstr, size_t s) ++{ ++ FILE *fp; ++ ++ char *procinfo_keys[] = { ++ /* --processor --hardware-platform */ ++ #if defined(__alpha__) ++ "cpu model", "system type" ++ #elif defined(__arm__) ++ "Processor", "Hardware" ++ #elif defined(bfin) ++ "CPU", "BOARD Name" ++ #elif defined(__cris__) ++ "cpu", "cpu model" ++ #elif defined(__frv__) ++ "CPU-Core", "System" ++ #elif defined(__i386__) || defined(__x86_64__) ++ "model name", "vendor_id" ++ #elif defined(__ia64__) ++ "family", "vendor" ++ #elif defined(__hppa__) ++ "cpu", "model" ++ #elif defined(__m68k__) ++ "CPU", "MMU" ++ #elif defined(__mips__) ++ "cpu model", "system type" ++ #elif defined(__powerpc__) || defined(__powerpc64__) ++ "cpu", "machine" ++ #elif defined(__s390__) || defined(__s390x__) ++ "Type", "Manufacturer" ++ #elif defined(__sh__) ++ "cpu type", "machine" ++ #elif defined(sparc) || defined(__sparc__) ++ "type", "cpu" ++ #elif defined(__vax__) ++ "cpu type", "cpu" ++ #else ++ "unknown", "unknown" ++ #endif ++ }; ++ ++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) { ++ char key[65], value[257], eol, *ret = NULL; ++ ++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) { ++ __eat_cpuinfo_space(key); ++ if (!strcmp(key, procinfo_keys[x])) { ++ __eat_cpuinfo_space(value); ++ ret = value; ++ break; ++ } ++ if (eol != '\n') { ++ /* we need two fscanf's here in case the previous ++ * length limit caused us to read right up to the ++ * newline ... doing "%*[^\n]\n" wont eat the newline ++ */ ++ fscanf(fp, "%*[^\n]"); ++ fscanf(fp, "\n"); ++ } ++ } ++ fclose(fp); ++ ++ if (ret) { ++ strncpy(fstr, ret, s); ++ return 0; ++ } ++ } ++ ++ return -1; ++} ++ ++#endif ++ + /* Print ELEMENT, preceded by a space if something has already been + printed. */ + +@@ -302,10 +407,14 @@ + if (toprint & PRINT_PROCESSOR) + { + char const *element = unknown; +-#if HAVE_SYSINFO && defined SI_ARCHITECTURE ++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO) + { + static char processor[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor)) ++#else + if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor)) ++#endif + element = processor; + } + #endif +@@ -358,9 +467,13 @@ + if (element == unknown) + { + static char hardware_platform[257]; ++#if defined(USE_PROCINFO) ++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform)) ++#else + size_t s = sizeof hardware_platform; + static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM }; + if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0) ++#endif + element = hardware_platform; + } + #endif diff --git a/source/a/coreutils/doinst.sh b/source/a/coreutils/doinst.sh new file mode 100644 index 000000000..b1a6112ff --- /dev/null +++ b/source/a/coreutils/doinst.sh @@ -0,0 +1,13 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/DIR_COLORS.new + diff --git a/source/a/coreutils/slack-desc b/source/a/coreutils/slack-desc new file mode 100644 index 000000000..57e562d34 --- /dev/null +++ b/source/a/coreutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +coreutils: coreutils (core GNU utilities) +coreutils: +coreutils: These are the GNU core utilities, the basic command line programs +coreutils: such as 'mkdir', 'ls', and 'rm' that are needed for the system to +coreutils: run. This package is the union of the GNU fileutils, sh-utils, and +coreutils: textutils packages. Most of these programs have significant +coreutils: advantages over their Unix counterparts, such as greater speed, +coreutils: additional options, and fewer arbitrary limits. +coreutils: +coreutils: +coreutils: diff --git a/source/a/cpio/cpio-2.9.gcc43.diff b/source/a/cpio/cpio-2.9.gcc43.diff new file mode 100644 index 000000000..cfe02d7f0 --- /dev/null +++ b/source/a/cpio/cpio-2.9.gcc43.diff @@ -0,0 +1,30 @@ +--- ./lib/argp-fmtstream.h.orig 2006-01-21 04:37:18.000000000 -0600 ++++ ./lib/argp-fmtstream.h 2009-03-15 15:17:22.000000000 -0500 +@@ -198,8 +198,12 @@ + #endif + + #ifndef ARGP_FS_EI ++#ifdef __GNUC_STDC_INLINE__ ++#define ARGP_FS_EI extern inline __attribute__((__gnu_inline__)) ++#else + #define ARGP_FS_EI extern inline + #endif ++#endif + + ARGP_FS_EI size_t + __argp_fmtstream_write (argp_fmtstream_t __fs, +--- ./lib/argp.h.orig 2007-03-30 11:20:19.000000000 -0500 ++++ ./lib/argp.h 2009-03-15 15:16:34.000000000 -0500 +@@ -580,7 +580,11 @@ + # endif + + # ifndef ARGP_EI +-# define ARGP_EI extern __inline__ ++# if defined __GNUC_STDC_INLINE__ ++# define ARGP_EI extern __inline__ __attribute__((__gnu_inline__)) ++# else ++# define ARGP_EI extern __inline__ ++# endif + # endif + + ARGP_EI void diff --git a/source/a/cpio/cpio.SlackBuild b/source/a/cpio/cpio.SlackBuild new file mode 100755 index 000000000..9cb6054bc --- /dev/null +++ b/source/a/cpio/cpio.SlackBuild @@ -0,0 +1,126 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=cpio +VERSION=${VERSION:-2.9} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/cpio-2.9.gcc43.diff.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Use the rmt provided by the tar package +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/${PKGNAM}-$VERSION \ + --enable-mt \ + --with-rmt=/sbin/rmt \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG INSTALL="install -p" || exit 1 + +# Remove an empty directory +rmdir $PKG/usr/libexec + +# Do not clash with the 'mt' which is part of tar: +mv $PKG/bin/mt{,-GNU} +mv $PKG/usr/man/man1/mt{,-GNU}.1 + +# Strip stuff: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info pages: +rm -f $PKG/usr/info/dir +gzip -9f $PKG/usr/info/* + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/cpio-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog NEWS README THANKS TODO \ + $PKG/usr/doc/cpio-$VERSION +chmod 644 $PKG/usr/doc/cpio-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/cpio/slack-desc b/source/a/cpio/slack-desc new file mode 100644 index 000000000..90f820c22 --- /dev/null +++ b/source/a/cpio/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cpio: cpio (backup and archiving utility) +cpio: +cpio: This is GNU cpio, a program to manage archives of files. This package +cpio: also includes mt, a tape drive control program. cpio copies files into +cpio: or out of a cpio or tar archive, which is a file that contains other +cpio: files plus information about them, such as their pathname, owner, +cpio: timestamps, and access permissions. The archive can be another file on +cpio: the disk, a magnetic tape, or a pipe. +cpio: +cpio: +cpio: diff --git a/source/a/cryptsetup/cryptsetup.SlackBuild b/source/a/cryptsetup/cryptsetup.SlackBuild new file mode 100755 index 000000000..7a7f3a8ba --- /dev/null +++ b/source/a/cryptsetup/cryptsetup.SlackBuild @@ -0,0 +1,144 @@ +#!/bin/sh + +# Copyright (c) 2007, 2009 Eric Hameleers +# Copyright (c) 2007, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: cryptsetup +# Descr: Utility for setting up encrypted filesystems +# URL: http://luks.endorphin.org/dm-crypt +# +# ----------------------------------------------------------------------------- + +PRGNAM=cryptsetup +VERSION=${VERSION:-1.0.7} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cryptsetup + +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf cryptsetup-$VERSION +tar xvf $CWD/cryptsetup-$VERSION.tar.bz2 || exit 1 +cd cryptsetup-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-libgcrypt \ + --enable-libdevmapper \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux +make +make DESTDIR=$PKG install + +# +# Next, make the static version that we will use for mkinitrd: +# + +make clean +echo Building ... +LDFLAGS="$SLKLDFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-libgcrypt \ + --enable-libdevmapper \ + --enable-static \ + --disable-shared \ + --disable-shared-library \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux +make + +# I have to do one old-school thing to leave a mark here: +mkdir -p $PKG/sbin +cat src/cryptsetup > $PKG/sbin/cryptsetup.static +chmod 755 $PKG/sbin/cryptsetup.static + +mv $PKG/usr/sbin/cryptsetup $PKG/usr/sbin/cryptsetup.dynamic +# Replace with a link: +( cd $PKG/usr/sbin ; ln -sf cryptsetup.dynamic cryptsetup ) +# In /sbin, use the static version as /usr *might* not be mounted yet. +# However, note that some cryptsetup operations cause the static +# version to segfault, so for things like formatting you'll want +# to use the dynamic one. That's what should be in the $PATH first. +( cd $PKG/sbin ; ln -sf cryptsetup.static cryptsetup ) + +# Remove unneeded empty directory: +#rmdir $PKG/usr/lib/cryptsetup + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* + +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; || true + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/a/cryptsetup/slack-desc b/source/a/cryptsetup/slack-desc new file mode 100644 index 000000000..fbc0035b5 --- /dev/null +++ b/source/a/cryptsetup/slack-desc @@ -0,0 +1,21 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cryptsetup: cryptsetup (utility for setting up encrypted filesystems) +cryptsetup: +cryptsetup: LUKS is a standard for cross-platform hard disk encryption. +cryptsetup: It provides secure management of multiple userpasswords and +cryptsetup: stores setup information in the partition header. +cryptsetup: LUKS for dm-crypt is now implemented in cryptsetup replacing the +cryptsetup: original cryptsetup. It provides all the functionally of the +cryptsetup: original version plus all LUKS features. +cryptsetup: +cryptsetup: cryptsetup home: http://luks.endorphin.org/dm-crypt +cryptsetup: + + diff --git a/source/a/cups/cups.SlackBuild b/source/a/cups/cups.SlackBuild new file mode 100755 index 000000000..5ae070951 --- /dev/null +++ b/source/a/cups/cups.SlackBuild @@ -0,0 +1,171 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# CUPS build script by volkerdi@slackware.com. + +VERSION=1.3.11 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cups + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf cups-$VERSION +tar xvf $CWD/cups-$VERSION-source.tar.?z* || exit 1 +cd cups-$VERSION + +zcat $CWD/cups.firefox.desktop.diff.gz | patch -p1 --verbose || exit 1 + +sed -i.orig -e 's#$exec_prefix/lib/cups#$libdir/cups#g' configure +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-ssl \ + --enable-openssl=yes \ + --enable-gnutls=no \ + --enable-cdsassl=no \ + --docdir=/usr/doc \ + --without-php \ + --disable-pam \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || exit 1 +mkdir -p $PKG/etc/cups +mkdir -p $PKG/var/spool +make BUILDROOT=$PKG install || exit 1 + +# I've added so many things like /etc/init.d/ to Slackware that CUPS +# is now installing init scripts to the Red Hat locations. We'll move +# them to the usual locations: +mkdir -p $PKG/etc/rc.d +# Handle this as a config file, and non-executable in a default install: +mv $PKG/etc/init.d/cups $PKG/etc/rc.d/rc.cups.new +chmod 644 $PKG/etc/rc.d/rc.cups.new +# Clear out the additions: +rm -rf $PKG/etc/init.d $PKG/etc/rc{0,2,3,5}.d + +# I'm not sure if overwriting this blindly could have ill effects, +# but it never hurts to play it safe. According to the dbus-daemon +# manpage, only files ending in .conf will be used, so there won't +# be any unintended doubling up. +mv $PKG/etc/dbus-1/system.d/cups.conf $PKG/etc/dbus-1/system.d/cups.conf.new + +# For full CUPS SMB support, you'll need to install the cups-samba +# package from the source in this directory. There's no easy way +# to add that to a package build, and the requests aren't pouring in, +# so you'll have to install it yourself. It's easy to do. + +# However, this will get you the most useful SMB support for free. +# Thanks to Boris Kurktchiev for the tip. :-) +( cd $PKG/usr/lib${LIBDIRSUFFIX}/cups/backend + if [ ! -e smb ]; then + ln -sf /usr/bin/smbspool smb + fi +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Remove preformatted manpages and move the manpages to /usr/man: +( cd $PKG/usr/share/man + find . -type d -name "cat*" | xargs rm -rf + cd .. + mv man .. +) + +# Adjust/expand docs: +( mkdir -p $PKG/usr/doc + mv $PKG/usr/share/doc/cups $PKG/usr/doc/cups-$VERSION + rmdir $PKG/usr/share/doc + cd $PKG/usr/doc + ln -sf cups-$VERSION cups ) + +# I'm sorry, but PDF files are almost as bloated and annoying as +# MS Word documents. We'll retain the HTML files in /usr/doc. +( cd $PKG/usr/doc + find . -name "*.pdf" -exec rm -f {} \; ) + +# Apply no-clobber fix to conffiles: +( cd $PKG/etc/cups + for file in * ; do + if [ -f $file ]; then + mv $file $file.new + fi + done ) + +# Strip stuff: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Use symlinks to certain binaries so that CUPS and LPRng can coexist: +SUFFIX=cups +for file in \ +usr/bin/cancel \ +usr/bin/lp \ +usr/bin/lpq \ +usr/bin/lpr \ +usr/bin/lprm \ +usr/bin/lpstat \ +usr/sbin/lpc ; do + ( cd $PKG + mv ${file} ${file}-${SUFFIX} + ( cd `dirname ${file}` ; ln -sf `basename ${file}`-${SUFFIX} `basename ${file}` ) + ) +done +# Now fix the associated man pages: +mv $PKG/usr/man/man1/cancel.1.gz $PKG/usr/man/man1/cancel-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lp.1.gz $PKG/usr/man/man1/lp-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpq.1.gz $PKG/usr/man/man1/lpq-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpr.1.gz $PKG/usr/man/man1/lpr-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lprm.1.gz $PKG/usr/man/man1/lprm-${SUFFIX}.1.gz +mv $PKG/usr/man/man1/lpstat.1.gz $PKG/usr/man/man1/lpstat-${SUFFIX}.1.gz +mv $PKG/usr/man/man8/lpc.8.gz $PKG/usr/man/man8/lpc-${SUFFIX}.8.gz +( cd $PKG/usr/man/man1 + ln -sf cancel-${SUFFIX}.1.gz cancel.1.gz + ln -sf lp-${SUFFIX}.1.gz lp.1.gz + ln -sf lpq-${SUFFIX}.1.gz lpq.1.gz + ln -sf lpr-${SUFFIX}.1.gz lpr.1.gz + ln -sf lprm-${SUFFIX}.1.gz lprm.1.gz + ln -sf lpstat-${SUFFIX}.1.gz lpstat.1.gz +) +( cd $PKG/usr/man/man8 + ln -sf lpc-${SUFFIX}.8.gz lpc.8.gz +) + +# Add the doinst.sh that installs the .new conffiles: +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/cups-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/cups/cups.firefox.desktop.diff b/source/a/cups/cups.firefox.desktop.diff new file mode 100644 index 000000000..96affd5a3 --- /dev/null +++ b/source/a/cups/cups.firefox.desktop.diff @@ -0,0 +1,11 @@ +diff -u -r --new-file cups-1.3.11.orig/desktop/cups.desktop cups-1.3.11/desktop/cups.desktop +--- cups-1.3.11.orig/desktop/cups.desktop 2008-09-05 19:30:39.000000000 -0500 ++++ cups-1.3.11/desktop/cups.desktop 2009-08-21 20:18:23.604682681 -0500 +@@ -1,6 +1,6 @@ + [Desktop Entry] + Categories=System;Printing;HardwareSettings;X-Red-Hat-Base; +-Exec=htmlview http://localhost:631/ ++Exec=firefox http://localhost:631/ + Icon=cups + StartupNotify=false + Terminal=false diff --git a/source/a/cups/doinst.sh b/source/a/cups/doinst.sh new file mode 100644 index 000000000..3f56dab3f --- /dev/null +++ b/source/a/cups/doinst.sh @@ -0,0 +1,28 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +for file in etc/cups/*.new ; do + config $file +done +config etc/dbus-1/system.d/cups.conf.new + +# Leave any new rc.cups with the same permissions as the old one: +# This is a kludge, but it's because there's no --reference option +# on busybox's 'chmod': +if [ -e etc/rc.d/rc.cups ]; then + if [ -x etc/rc.d/rc.cups ]; then + chmod 755 etc/rc.d/rc.cups.new + else + chmod 644 etc/rc.d/rc.cups.new + fi +fi +# Then config() it: +config etc/rc.d/rc.cups.new diff --git a/source/a/cups/slack-desc b/source/a/cups/slack-desc new file mode 100644 index 000000000..c2e1643c9 --- /dev/null +++ b/source/a/cups/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cups: CUPS (Common UNIX Printing System) +cups: +cups: The Common UNIX Printing System provides a portable printing layer for +cups: UNIX(R)-like operating systems. It has been developed by Easy Software +cups: Products to promote a standard printing solution for all UNIX vendors +cups: and users. CUPS uses the Internet Printing Protocol ("IPP") as the +cups: basis for managing print jobs and queues. The CUPS package includes +cups: System V and Berkeley command-line interfaces, a PostScript RIP +cups: package for supporting non-PostScript printer drivers, and tools for +cups: creating additional printer drivers and other CUPS services. +cups: diff --git a/source/a/cxxlibs/cxxlibs.SlackBuild b/source/a/cxxlibs/cxxlibs.SlackBuild new file mode 100755 index 000000000..025a64949 --- /dev/null +++ b/source/a/cxxlibs/cxxlibs.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=cxxlibs +VERSION=${VERSION:-6.0.10} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $PKG +cat $CWD/symlinks-to-tracked-libs${LIBDIRSUFFIX} | while read library ; do + ( mkdir -p $(dirname $library | cut -b2- ) + cd $(dirname $library | cut -b2- ) + rm -f $(basename $library) + cp -a $library . + rm -f $(readlink $library) + cp -a $(dirname $library)/$(readlink $library) . + ) +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/cxxlibs/oldgcc/oldgcc.build b/source/a/cxxlibs/oldgcc/oldgcc.build new file mode 100755 index 000000000..471fefa13 --- /dev/null +++ b/source/a/cxxlibs/oldgcc/oldgcc.build @@ -0,0 +1,73 @@ +#!/bin/sh +# GCC package build script (written by volkerdi@slackware.com) +# +# Copyright 2003, 2005 Slackware Linux, Inc., Concord, California, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# NOTE - THIS DOESN'T MAKE PACKAGES! IT JUST BUILDS GCC AND G++ +# this is for the purpose of getting libstdc++.so.5 +VERSION=3.3.6 +ARCH=${ARCH:-x86_64} +TARGET=${TARGET:-$ARCH-slackware-linux} +BUILD=${BUILD:-1} + +CWD=`pwd` +# Temporary build location. This should *NOT* be a directory +# path a non-root user could create later... +TMP=/gcc-build-$(mcookie) + +# Clear the build locations: +if [ -d $TMP ]; then + rm -rf $TMP +fi + +EXTRA=--disable-multilib + +mkdir -p $TMP +cd $TMP +tar xjvf $CWD/gcc-$VERSION.tar.bz2 +# install docs +( cd gcc-$VERSION + # Fix perms/owners + chown -R root.root . + find . -perm 777 -exec chmod 755 {} \; + find . -perm 775 -exec chmod 755 {} \; + find . -perm 754 -exec chmod 755 {} \; + find . -perm 664 -exec chmod 644 {} \; +) +# build gcc +( mkdir gcc.build.lnx; + cd gcc.build.lnx; + CFLAGS="-O2 -fPIC" \ + ../gcc-$VERSION/configure \ + --enable-shared \ + --enable-threads=posix \ + --enable-__cxa_atexit \ + --enable-languages=c,c++ \ + --disable-checking \ + --with-gnu-ld \ + --verbose \ + --target=${TARGET} \ + --host=${TARGET} \ + $EXTRA + # Include all debugging info (for now): + make #bootstrap; +) 2>&1 | tee $TMP/gcc.build.log diff --git a/source/a/cxxlibs/slack-desc b/source/a/cxxlibs/slack-desc new file mode 100644 index 000000000..c1428f943 --- /dev/null +++ b/source/a/cxxlibs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cxxlibs: cxxlibs (C++ shared library compatibility package) +cxxlibs: +cxxlibs: This package contains the shared libraries needed to run dynamically +cxxlibs: linked C++ binaries linked with older versions of libstdc++. +cxxlibs: +cxxlibs: +cxxlibs: +cxxlibs: +cxxlibs: +cxxlibs: +cxxlibs: diff --git a/source/a/cxxlibs/symlinks-to-tracked-libs b/source/a/cxxlibs/symlinks-to-tracked-libs new file mode 100644 index 000000000..e4f67cf60 --- /dev/null +++ b/source/a/cxxlibs/symlinks-to-tracked-libs @@ -0,0 +1,5 @@ +/usr/i486-slackware-linux/lib/libstdc++-libc6.1-2.so.3 +/usr/i486-slackware-linux/lib/libstdc++-libc6.2-2.so.3 +/usr/i486-slackware-linux/lib/libstdc++.so.4 +/usr/i486-slackware-linux/lib/libstdc++.so.5 +/usr/lib/libstdc++.so.6 diff --git a/source/a/cxxlibs/symlinks-to-tracked-libs64 b/source/a/cxxlibs/symlinks-to-tracked-libs64 new file mode 100644 index 000000000..3a348cf1e --- /dev/null +++ b/source/a/cxxlibs/symlinks-to-tracked-libs64 @@ -0,0 +1,2 @@ +/usr/lib64/libstdc++.so.5 +/usr/lib64/libstdc++.so.6 diff --git a/source/a/dbus/dbus.SlackBuild b/source/a/dbus/dbus.SlackBuild new file mode 100755 index 000000000..c761ce54c --- /dev/null +++ b/source/a/dbus/dbus.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh +# Copyright 2007, 2008 Robby Workman +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PRGNAM=dbus +VERSION=1.2.14 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.xz || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-shared=yes \ + --enable-static=no \ + --with-system-pid-file=/var/run/dbus/dbus.pid \ + --with-system-socket=/var/run/dbus/system_bus_socket \ + --with-init-scripts=slackware \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +# Install a custom init script for dbus - the included one is not good for us +rm $PKG/etc/rc.d/* +zcat $CWD/rc.messagebus.gz > $PKG/etc/rc.d/rc.messagebus.new +chmod 0755 $PKG/etc/rc.d/rc.messagebus.new + +# Let's not clobber existing config files +mv $PKG/etc/dbus-1/session.conf $PKG/etc/dbus-1/session.conf.new +mv $PKG/etc/dbus-1/system.conf $PKG/etc/dbus-1/system.conf.new + +# Fix some directory ownership +chown messagebus $PKG/var/lib/dbus + +# Add documentation +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING HACKING INSTALL NEWS README doc/*.{txt,html,dtd} \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/dbus/doinst.sh b/source/a/dbus/doinst.sh new file mode 100644 index 000000000..71c3d7a07 --- /dev/null +++ b/source/a/dbus/doinst.sh @@ -0,0 +1,24 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.messagebus.new: +if [ -e etc/rc.d/rc.messagebus ]; then + cp -a etc/rc.d/rc.messagebus etc/rc.d/rc.messagebus.new.incoming + cat etc/rc.d/rc.messagebus.new > etc/rc.d/rc.messagebus.new.incoming + mv etc/rc.d/rc.messagebus.new.incoming etc/rc.d/rc.messagebus.new +fi + +config etc/dbus-1/session.conf.new +config etc/dbus-1/system.conf.new +config etc/rc.d/rc.messagebus.new + diff --git a/source/a/dbus/rc.messagebus b/source/a/dbus/rc.messagebus new file mode 100644 index 000000000..7b27eb599 --- /dev/null +++ b/source/a/dbus/rc.messagebus @@ -0,0 +1,80 @@ +#!/bin/sh +# +# messagebus: The D-BUS systemwide message bus +# +# description: This is a daemon which broadcasts notifications of system events \ +# and other messages. See http://www.freedesktop.org/software/dbus/ +# +# processname: dbus-daemon +# pidfile: /var/run/dbus/pid + +# This is a modified version of the rc.messagebus script distributed with the +# dbus sources. Thanks to Don Tanner of the GWare Project +# for most of the work involved --Robby Workman + + +PIDFILE=/var/run/dbus/dbus.pid + +start() { + if ! ps axc | grep -w dbus-daemon ; then + rm -f $(dirname $PIDFILE)/* + if [ -x /usr/bin/dbus-uuidgen -a -x /usr/bin/dbus-daemon ] ; then + echo "Starting system message bus: /usr/bin/dbus-uuidgen --ensure ; /usr/bin/dbus-daemon --system" + /usr/bin/dbus-uuidgen --ensure + /usr/bin/dbus-daemon --system 1> /dev/null + fi + fi +} + +stop() { + if [ -e "$PIDFILE" ]; then + echo "Stopping system message bus..." + pid=$(cat $PIDFILE) + kill $pid 1> /dev/null 2> /dev/null + # Just in case: + killall dbus-daemon 1> /dev/null 2> /dev/null + rm -f $PIDFILE + fi +} + +reload() { + echo "Reloading system message bus configuration..." + if [ -e "$PIDFILE" ]; then + pid=$(cat $PIDFILE) + kill -HUP $pid + else + killall -HUP dbus-daemon + fi +} + +status() { + if ps axc | grep -wq dbus-daemon 2>/dev/null ; then + echo "dbus-daemon is running." + else + echo "dbus is stopped." + fi +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + reload) + reload + ;; + status) + status + ;; + *) + echo $"Usage: $0 {start|stop|restart|reload|status}" + ;; +esac + diff --git a/source/a/dbus/slack-desc b/source/a/dbus/slack-desc new file mode 100644 index 000000000..0610ab8d3 --- /dev/null +++ b/source/a/dbus/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + |-----handy-ruler------------------------------------------------------| +dbus: dbus (D-Bus message bus system) +dbus: +dbus: D-Bus supplies both a system daemon (for events such as "new hardware +dbus: device added" or "printer queue changed") and a per user login +dbus: session daemon (for general IPC needs among user applications). +dbus: Also, the message bus is built on top of a general one-to-one message +dbus: passing framework, which can be used by any two apps to communicate +dbus: directly (without going through the message bus daemon). +dbus: +dbus: +dbus: diff --git a/source/a/dcron/dcron-2.3.3.crontab.diff4 b/source/a/dcron/dcron-2.3.3.crontab.diff4 new file mode 100644 index 000000000..30d0501a0 --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.crontab.diff4 @@ -0,0 +1,19 @@ +--- ./crontab.c.orig Wed Feb 20 14:31:32 2002 ++++ ./crontab.c Wed Feb 20 14:33:13 2002 +@@ -197,14 +197,14 @@ + int n; + + snprintf(path, sizeof(path), "%s.new", pas->pw_name); +- if ((fd = open(path, O_CREAT|O_TRUNC|O_EXCL|O_APPEND|O_WRONLY, 0600)) >= 0) { ++ if ((fd = open(path, O_CREAT|O_TRUNC|O_APPEND|O_WRONLY, 0600)) >= 0) { + while ((n = read(repFd, buf, sizeof(buf))) > 0) { + write(fd, buf, n); + } + close(fd); + rename(path, pas->pw_name); + } else { +- fprintf(stderr, "unable to create %s/%s\n", CDir, buf); ++ fprintf(stderr, "unable to create %s/%s\n", CDir, path); + } + close(repFd); + } diff --git a/source/a/dcron/dcron-2.3.3.diff b/source/a/dcron/dcron-2.3.3.diff new file mode 100644 index 000000000..22806de3e --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.diff @@ -0,0 +1,40 @@ +--- ./defs.h.orig Fri Sep 5 14:44:32 1997 ++++ ./defs.h Thu Aug 26 16:56:10 1999 +@@ -29,7 +29,7 @@ + #define CRONTABS "/var/spool/cron/crontabs" + #endif + #ifndef TMPDIR +-#define TMPDIR "/tmp" ++#define TMPDIR "/var/spool/cron" + #endif + #ifndef OPEN_MAX + #define OPEN_MAX 256 +--- ./subs.c.orig Mon Feb 16 13:35:10 1998 ++++ ./subs.c Thu Aug 26 16:57:21 1999 +@@ -15,7 +15,7 @@ + Prototype int ChangeUser(const char *user, short dochdir); + Prototype void vlog(int level, int fd, const char *ctl, va_list va); + Prototype int slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate); +-Prototype char *strdup(const char *); ++Prototype char *xx_strdup(const char *); + + void + log9(const char *ctl, ...) +@@ -80,7 +80,7 @@ + + buf[0] = 0; + if (useDate) +- strftime(buf, 128, "%d-%b-%y %H:%M ", tp); ++ strftime(buf, 128, "%d-%b-%Y %H:%M ", tp); + vsnprintf(buf + strlen(buf), sz - strlen(buf), ctl, va); + return(strlen(buf)); + } +@@ -132,7 +132,7 @@ + } + + char * +-strdup(const char *str) ++xx_strdup(const char *str) + { + char *ptr = malloc(strlen(str) + 1); + diff --git a/source/a/dcron/dcron-2.3.3.diff2 b/source/a/dcron/dcron-2.3.3.diff2 new file mode 100644 index 000000000..8eb8242c5 --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.diff2 @@ -0,0 +1,477 @@ +--- ./CHANGES:1.1 Fri Jan 7 18:15:59 2000 ++++ ./CHANGES Thu Apr 20 12:10:36 2000 +@@ -1,3 +1,15 @@ ++20/03/00 - TEMHOTA ++ Adding SIGHUP signal handler. crond die when init send to it SIGHUP. ++ Rewrtited all loging code. Added logging through syslog and normal ++ logging to file. ++ ++ Technical details: ++ + logging through syslog used facility LOG_CRON ++ + log_err - now *always* write message to logger (if selected logging ++ through syslog - message send as LOG_ERR). ++ + log9 - sends message hrough syslog loglevel LOG_WARNING ++ + for all other log levels - default syslog loglevel LOG_NOTICE ++ + 02/16/98 - Jordan Mendelson (jordy@wserv.com) + + Numerous people have reported a problem with logging. I'm sorry +--- ./Makefile:1.1 Fri Jan 7 18:15:59 2000 ++++ ./Makefile Thu Apr 20 12:24:40 2000 +@@ -27,7 +27,7 @@ + rm -f crond crontab + + cleano: +- rm -f *.o dcron.tgz $(PROTOS) ++ rm -f *.o dcron.tgz $(PROTOS) *~ + + install: crond crontab + install -o root -g root -m 0755 crond /usr/sbin +--- ./crontab.c:1.1 Fri Jan 7 18:15:59 2000 ++++ ./crontab.c Sun Mar 19 15:03:36 2000 +@@ -15,6 +15,9 @@ + char *CDir = CRONTABS; + int UserId; + short LogLevel = 9; ++short DebugOpt = 0; ++short LoggerOpt = 0; ++char *LogFile = LOG_FILE; + + void EditFile(const char *user, const char *file); + int GetReplaceStream(const char *user, const char *file); +@@ -136,7 +139,7 @@ + */ + + if (chdir(CDir) < 0) { +- fprintf(stderr, "cannot change diir to %s: %s\n", CDir, strerror(errno)); ++ fprintf(stderr, "cannot change dir to %s: %s\n", CDir, strerror(errno)); + exit(1); + } + +--- ./defs.h:1.1 Fri Jan 7 18:15:59 2000 ++++ ./defs.h Sun Mar 19 15:03:36 2000 +@@ -17,6 +17,9 @@ + #include + #include + #include ++#include ++#include ++#include + #include + #include + #include +@@ -30,6 +33,9 @@ + #endif + #ifndef TMPDIR + #define TMPDIR "/var/spool/cron" ++#endif ++#ifndef LOG_FILE ++#define LOG_FILE "/var/log/cron" + #endif + #ifndef OPEN_MAX + #define OPEN_MAX 256 +--- ./job.c:1.1 Fri Jan 7 18:15:59 2000 ++++ ./job.c Thu Apr 20 12:10:36 2000 +@@ -16,7 +16,7 @@ + { + char mailFile[128]; + int mailFd; +- ++ + line->cl_Pid = 0; + line->cl_MailFlag = 0; + +@@ -57,14 +57,6 @@ + log(5, "Child Running %s\n", line->cl_Shell); + + /* +- * Setup close-on-exec descriptor in case exec fails +- */ +- +- dup2(2, 8); +- fcntl(8, F_SETFD, 1); +- fclose(stderr); +- +- /* + * stdin is already /dev/null, setup stdout and stderr + */ + +@@ -73,13 +65,13 @@ + dup2(mailFd, 2); + close(mailFd); + } else { +- logfd(8, "unable to create mail file user %s file %s, output to /dev/null\n", ++ log_err("unable to create mail file user %s file %s, output to /dev/null\n", + file->cf_User, + mailFile + ); + } + execl("/bin/sh", "/bin/sh", "-c", line->cl_Shell, NULL, NULL); +- logfd(8, "unable to exec, user %s cmd /bin/sh -c %s\n", ++ log_err("unable to exec, user %s cmd /bin/sh -c %s\n", + file->cf_User, + line->cl_Shell + ); +@@ -89,7 +81,7 @@ + /* + * PARENT, FORK FAILED + */ +- log9("couldn't fork, user %s\n", file->cf_User); ++ log_err("couldn't fork, user %s\n", file->cf_User); + line->cl_Pid = 0; + remove(mailFile); + } else { +@@ -158,6 +150,7 @@ + if (mailFd < 0) { + return; + } ++ + if (fstat(mailFd, &sbuf) < 0 || + sbuf.st_uid != DaemonUid || + sbuf.st_nlink != 0 || +@@ -182,15 +175,6 @@ + exit(0); + + /* +- * create close-on-exec log descriptor in case exec fails +- */ +- +- dup2(2, 8); +- fcntl(8, F_SETFD, 1); +- +- fclose(stderr); +- +- /* + * run sendmail with mail file as standard input, only if + * mail file exists! + */ +@@ -200,7 +184,7 @@ + close(mailFd); + + execl(SENDMAIL, SENDMAIL, SENDMAIL_ARGS, NULL, NULL); +- logfd(8, "unable to exec %s %s, user %s, output to sink null", ++ log_err("unable to exec %s %s, user %s, output to sink null", + SENDMAIL, + SENDMAIL_ARGS, + file->cf_User +@@ -210,7 +194,7 @@ + /* + * PARENT, FORK FAILED + */ +- log9("unable to fork, user %s", file->cf_User); ++ log_err("unable to fork, user %s", file->cf_User); + line->cl_Pid = 0; + } else { + /* +--- ./main.c:1.1 Fri Jan 7 18:15:59 2000 ++++ ./main.c Sun Mar 19 15:03:36 2000 +@@ -15,14 +15,18 @@ + Prototype short DebugOpt; + Prototype short LogLevel; + Prototype short ForegroundOpt; +-Prototype char *CDir; +-Prototype int DaemonUid; ++Prototype short LoggerOpt; ++Prototype char *CDir; ++Prototype char *LogFile; ++Prototype uid_t DaemonUid; + + short DebugOpt; + short LogLevel = 8; +-short ForegroundOpt; ++short ForegroundOpt = 0; ++short LoggerOpt; + char *CDir = CRONTABS; +-int DaemonUid; ++char *LogFile = LOG_FILE; ++uid_t DaemonUid; + + int + main(int ac, char **av) +@@ -35,48 +39,49 @@ + + DaemonUid = getuid(); + +- for (i = 1; i < ac; ++i) { +- char *ptr = av[i]; ++ opterr = 0; /* disable getopt 'errors' message.*/ + +- if (*ptr == '-') { +- ptr += 2; +- +- switch(ptr[-1]) { ++ while ((i = getopt(ac,av,"d:l:L:fbSc:")) != EOF){ ++ ++ switch (i){ + case 'l': +- LogLevel = (*ptr) ? strtol(ptr, NULL, 0) : 1; +- continue; ++ LogLevel = atoi(optarg); ++ break; + case 'd': +- DebugOpt = (*ptr) ? strtol(ptr, NULL, 0) : 1; ++ DebugOpt = atoi(optarg); + LogLevel = 0; + /* fall through */ ++ break; + case 'f': + ForegroundOpt = 1; +- continue; ++ break; + case 'b': + ForegroundOpt = 0; +- continue; ++ break; ++ case 'S': /* select logging to syslog */ ++ LoggerOpt = 0; ++ break; ++ case 'L': /* select internal file logger */ ++ LoggerOpt = 1; ++ if (*optarg != 0) LogFile = optarg; ++ break; + case 'c': +- CDir = (*ptr) ? ptr : av[++i]; +- continue; ++ if (*optarg != 0) CDir = optarg; ++ break; + default: ++ /* ++ * parse error ++ */ ++ printf("dcron " VERSION "\n"); ++ printf("dcron -d [#] -l [#] -S -L logfile -f -b -c dir\n"); ++ printf("-d num\tdebug level\n-l num\tlog level (8 - default)\n-S\tlog to syslod (defualt)\n"); ++ printf("-L file\tlog to file\n-f\trun in fordeground\n"); ++ printf("-b\trun in background (default)\n-c dir\tworking dir\n"); ++ exit(1); + break; +- } +- } +- break; /* error */ +- } +- +- /* +- * check for parse error +- */ +- +- if (i != ac) { +- if (i > ac) +- puts("expected argument for option"); +- printf("dcron " VERSION "\n"); +- printf("dcron -d[#] -l[#] -f -b -c dir\n"); +- exit(1); ++ } + } +- ++ + /* + * change directory + */ +@@ -87,14 +92,15 @@ + } + + /* +- * close stdin and stdout (stderr normally redirected by caller). +- * close unused descriptors ++ * close stdin and stdout, stderr. ++ * close unused descriptors - don't need. + * optional detach from controlling terminal + */ + + fclose(stdin); + fclose(stdout); +- ++ fclose(stderr); ++ + i = open("/dev/null", O_RDWR); + if (i < 0) { + perror("open: /dev/null:"); +@@ -102,15 +108,14 @@ + } + dup2(i, 0); + dup2(i, 1); ++ dup2(i, 2); + +- for (i = 3; i < OPEN_MAX; ++i) { +- close(i); +- } +- + if (ForegroundOpt == 0) { + int fd; + int pid; +- ++ if (setsid() < 0) ++ perror("setsid"); ++ + if ((fd = open("/dev/tty", O_RDWR)) >= 0) { + ioctl(fd, TIOCNOTTY, 0); + close(fd); +@@ -125,13 +130,17 @@ + if (pid > 0) + exit(0); + } +- ++ ++ (void)startlogger(); /* need if syslog mode selected */ ++ (void)initsignals(); /* set some signal handlers */ ++ + /* + * main loop - synchronize to 1 second after the minute, minimum sleep + * of 1 second. + */ ++ ++ log(9,"%s " VERSION " dillon, started, log level %d\n", av[0], LogLevel); + +- log9("%s " VERSION " dillon, started\n", av[0]); + SynchronizeDir("."); + + { +--- ./subs.c:1.1 Fri Jan 7 18:15:59 2000 ++++ ./subs.c Sun Mar 19 15:03:36 2000 +@@ -10,43 +10,62 @@ + + Prototype void log(int level, const char *ctl, ...); + Prototype void log9(const char *ctl, ...); +-Prototype void logfd(int fd, const char *ctl, ...); ++Prototype void log_err(const char *ctl, ...); + Prototype void fdprintf(int fd, const char *ctl, ...); +-Prototype int ChangeUser(const char *user, short dochdir); +-Prototype void vlog(int level, int fd, const char *ctl, va_list va); +-Prototype int slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate); ++Prototype void vlog(int level, int MLOG_LEVEL, const char *ctl, va_list va); ++Prototype int ChangeUser(const char *user, short dochdir); + Prototype char *xx_strdup(const char *); ++Prototype void startlogger(void); ++Prototype void initsignals(void); + ++/* ++ set log_level=9 and log messages ++*/ ++ + void + log9(const char *ctl, ...) + { + va_list va; + + va_start(va, ctl); +- vlog(9, 2, ctl, va); ++ vlog(9, LOG_WARNING, ctl, va); + va_end(va); + } + ++/* ++ normal logger call point. ++*/ ++ + void + log(int level, const char *ctl, ...) + { + va_list va; + + va_start(va, ctl); +- vlog(level, 2, ctl, va); ++ vlog(level, LOG_NOTICE, ctl, va); + va_end(va); + } + ++/* ++ Original: void ++ logfd(int fd, const char *ctl, ...) ++ Updated to: log_error (used by jobs.c) ++*/ ++ + void +-logfd(int fd, const char *ctl, ...) ++log_err(const char *ctl, ...) + { + va_list va; + + va_start(va, ctl); +- vlog(9, fd, ctl, va); ++ vlog(20, LOG_ERR, ctl, va); + va_end(va); + } + ++/* ++ used by jobs.c (write to temp file..) ++*/ ++ + void + fdprintf(int fd, const char *ctl, ...) + { +@@ -60,32 +79,28 @@ + } + + void +-vlog(int level, int fd, const char *ctl, va_list va) ++vlog(int level, int MLOG_LEVEL, const char *ctl, va_list va) + { + char buf[1024]; +- short n; +- static short useDate = 1; ++ int logfd; + + if (level >= LogLevel) { +- write(fd, buf, n = slog(buf, sizeof(buf), ctl, va, useDate)); +- useDate = (n && buf[n-1] == '\n'); ++ ++ vsnprintf(buf,sizeof(buf), ctl, va); ++ if (DebugOpt) fprintf(stderr,"%s",buf); ++ else ++ if (LoggerOpt == 0) syslog(MLOG_LEVEL, "%s",buf ); ++ else { ++ if ((logfd = open(LogFile,O_WRONLY|O_CREAT|O_APPEND,600)) >= 0){ ++ write(logfd, buf, strlen(buf)); ++ close(logfd); ++ } else ++ fprintf(stderr,"Can't open log file. Err: %s",strerror(errno)); ++ } + } + } + + int +-slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate) +-{ +- time_t t = time(NULL); +- struct tm *tp = localtime(&t); +- +- buf[0] = 0; +- if (useDate) +- strftime(buf, 128, "%d-%b-%Y %H:%M ", tp); +- vsnprintf(buf + strlen(buf), sz - strlen(buf), ctl, va); +- return(strlen(buf)); +-} +- +-int + ChangeUser(const char *user, short dochdir) + { + struct passwd *pas; +@@ -141,3 +156,28 @@ + return(ptr); + } + ++ ++void ++startlogger(void){ ++int logfd; ++ ++ if (LoggerOpt == 0) ++ openlog("crond",LOG_CONS|LOG_PID,LOG_CRON); ++ ++ else { /* test logfile */ ++ if ((logfd = open(LogFile,O_WRONLY|O_CREAT|O_APPEND,600)) >= 0) ++ close(logfd); ++ else ++ printf("Failed to open log file '%s' reason: %s",LogFile,strerror(errno)); ++ } ++} ++ ++ ++void ++initsignals(void){ ++ ++ signal(SIGHUP,SIG_IGN); /* hmm.. but, if kill -HUP original ++ * version - his died. ;( ++ */ ++ ++} diff --git a/source/a/dcron/dcron-2.3.3.diff3 b/source/a/dcron/dcron-2.3.3.diff3 new file mode 100644 index 000000000..25c72fc96 --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.diff3 @@ -0,0 +1,11 @@ +--- ./defs.h.orig Wed May 30 14:13:05 2001 ++++ ./defs.h Wed May 30 14:13:13 2001 +@@ -41,7 +41,7 @@ + #define OPEN_MAX 256 + #endif + #ifndef SENDMAIL +-#define SENDMAIL "/usr/lib/sendmail" ++#define SENDMAIL "/usr/sbin/sendmail" + #endif + #ifndef SENDMAIL_ARGS + #define SENDMAIL_ARGS "-t", "-oem", "-i" diff --git a/source/a/dcron/dcron-2.3.3.lsm b/source/a/dcron/dcron-2.3.3.lsm new file mode 100644 index 000000000..5c161b50a --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.lsm @@ -0,0 +1,17 @@ +Begin3 +Title: DCron - yet another cron +Version: 2.3.3 +Entered-date: 17Feb98 +Description: A multi-user cron written from scratch by the author, + similar to vixie-cron but with significant differences. + Attention paid less to feature creep and more to usability + and reliability +Keywords: cron crontab dcron +Author: dillon@apollo.west.oic.com (Matthew Dillon) +Maintained-by: dillon@apollo.west.oic.com (Matthew Dillon) +Primary-site: sunsite.unc.edu /pub/Linux/system/daemons/cron +Alternate-site: +Original-site: +Platforms: +Copying-policy: GPL +End diff --git a/source/a/dcron/dcron-2.3.3.version.diff b/source/a/dcron/dcron-2.3.3.version.diff new file mode 100644 index 000000000..1b65a0c98 --- /dev/null +++ b/source/a/dcron/dcron-2.3.3.version.diff @@ -0,0 +1,11 @@ +--- ./defs.h.orig Tue Apr 9 01:07:07 2002 ++++ ./defs.h Tue Apr 9 01:07:15 2002 +@@ -51,7 +51,7 @@ + #endif + + +-#define VERSION "2.3.2" ++#define VERSION "2.3.3" + + typedef struct CronFile { + struct CronFile *cf_Next; diff --git a/source/a/dcron/dcron.SlackBuild b/source/a/dcron/dcron.SlackBuild new file mode 100755 index 000000000..c9bb62ff3 --- /dev/null +++ b/source/a/dcron/dcron.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.3.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dcron + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_dcron.tar.gz + +cd $TMP +rm -rf dcron-$VERSION +tar xzvf $CWD/dcron-$VERSION.tar.gz +cd dcron-$VERSION +mkdir -p $PKG/usr/doc/dcron-$VERSION +cp -a CHANGES README dcron-$VERSION.lsm $PKG/usr/doc/dcron-2.3.3 +chown root:root $PKG/usr/doc/dcron-$VERSION/* +chmod 644 $PKG/usr/doc/dcron-$VERSION/* +zcat $CWD/dcron-$VERSION.diff.gz | patch -p1 -E --verbose --backup || exit +# Added signal handling/logging patch from TEMHOTA : +zcat $CWD/dcron-$VERSION.diff2.gz | patch -p1 -E --verbose --backup || exit +# Use /usr/sbin/sendmail, not /usr/lib/sendmail. Fixes cron working +# with Postfix. Suggested by Big Brother. +zcat $CWD/dcron-$VERSION.diff3.gz | patch -p1 -E --verbose --backup || exit +# Fix problem where user creates /var/spool/cron/crontabs/.new +# using 'crontab -', exits with control-c, and then crontab refuses to +# overwrite the junk file: +zcat $CWD/dcron-$VERSION.crontab.diff4.gz | patch -p1 -E --verbose --backup || exit +# Dcron reports wrong version: +zcat $CWD/dcron-2.3.3.version.diff.gz | patch -p1 || exit +# Keep dcron from improperly forking in some circumstances. +# Thanks to Henrik Carlqvist for the patch. +zcat $CWD/dcron.fork.diff.gz | patch -p1 +make +strip crond crontab +cat crond > $PKG/usr/sbin/crond +cat crontab > $PKG/usr/bin/crontab +zcat $CWD/run-parts.gz > $PKG/usr/bin/run-parts +cat crontab.1 | gzip -9c > $PKG/usr/man/man1/crontab.1.gz +cat crond.8 | gzip -9c > $PKG/usr/man/man8/crond.8.gz +cat $CWD/run-parts.8.gz > $PKG/usr/man/man8/run-parts.8.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/dcron-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/dcron/dcron.fork.diff b/source/a/dcron/dcron.fork.diff new file mode 100644 index 000000000..b3aefc054 --- /dev/null +++ b/source/a/dcron/dcron.fork.diff @@ -0,0 +1,11 @@ +--- ./job.c.orig 2005-09-11 16:36:43.000000000 -0700 ++++ ./job.c 2005-09-11 16:37:51.000000000 -0700 +@@ -51,7 +51,7 @@ + */ + + if (ChangeUser(file->cf_User, 1) < 0) +- return; ++ exit(0); + + if (DebugOpt) + log(5, "Child Running %s\n", line->cl_Shell); diff --git a/source/a/dcron/dcron.tmpdir.diff b/source/a/dcron/dcron.tmpdir.diff new file mode 100644 index 000000000..3946fedeb --- /dev/null +++ b/source/a/dcron/dcron.tmpdir.diff @@ -0,0 +1,11 @@ +--- defs.h.orig Mon May 2 10:27:40 1994 ++++ defs.h Sun Apr 4 22:09:00 1999 +@@ -29,7 +29,7 @@ + #define CRONTABS "/var/spool/cron/crontabs" + #endif + #ifndef TMPDIR +-#define TMPDIR "/tmp" ++#define TMPDIR "/var/spool/cron" + #endif + #ifndef OPEN_MAX + #define OPEN_MAX 256 diff --git a/source/a/dcron/run-parts b/source/a/dcron/run-parts new file mode 100644 index 000000000..dd6b59b3e --- /dev/null +++ b/source/a/dcron/run-parts @@ -0,0 +1,49 @@ +#!/bin/sh +# run-parts: Runs all the scripts found in a directory. + +# keep going when something fails +set +e + +if [ $# -lt 1 ]; then + echo "Usage: run-parts " + exit 1 +fi + +if [ ! -d $1 ]; then + echo "Not a directory: $1" + echo "Usage: run-parts " + exit 1 +fi + +# There are several types of files that we would like to +# ignore automatically, as they are likely to be backups +# of other scripts: +IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp" + +# Main loop: +for SCRIPT in $1/* ; do + # If this is not a regular file, skip it: + if [ ! -f $SCRIPT ]; then + continue + fi + # Determine if this file should be skipped by suffix: + SKIP=false + for SUFFIX in $IGNORE_SUFFIXES ; do + if [ ! "`basename $SCRIPT $SUFFIX`" = "`basename $SCRIPT`" ]; then + SKIP=true + break + fi + done + if [ "$SKIP" = "true" ]; then + continue + fi + # If we've made it this far, then run the script if it's executable: + if [ -x $SCRIPT ]; then + echo "$SCRIPT:" + echo + $SCRIPT 2>&1 + echo + fi +done + +exit 0 diff --git a/source/a/dcron/run-parts.8 b/source/a/dcron/run-parts.8 new file mode 100644 index 000000000..2d5e5f6ad --- /dev/null +++ b/source/a/dcron/run-parts.8 @@ -0,0 +1,36 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH RUN-PARTS 8 "14 Apr 2002" "Slackware Version 8.1.0 +.SH NAME +run-parts \- run scripts found in a directory +.SH SYNOPSIS +.B run-parts +.LP +.SH DESCRIPTION +.B run-parts +is a utility that will run scripts that are found in a directory. For example, +it might be useful to create an /etc/cron.daily directory and put scripts in +there for daily cron jobs. Then +.B run-parts +can be called once a day from root's crontab to run all the scripts found in +/etc/cron.daily: + +40 4 * * * run-parts /etc/cron.daily + +.B run-parts +automatically skips files with certain suffixes that are generally associated +with backup or extra files. Any file that ends in one of these will be silently +ignored: ~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp +.SH AUTHOR +Patrick J. Volkerding , with ideas borrowed from the +Red Hat and Debian versions of this utility. +.SH "SEE ALSO" +.BR crond(8), +.BR crontab(8). diff --git a/source/a/dcron/slack-desc b/source/a/dcron/slack-desc new file mode 100644 index 000000000..d56e60871 --- /dev/null +++ b/source/a/dcron/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dcron: dcron (Dillon's Cron daemon) +dcron: +dcron: The cron daemon runs in the background and executes tasks on behalf of +dcron: users at the appropriate time. Many timed system tasks are started +dcron: with cron, such as the nightly indexing with updatedb. +dcron: +dcron: dcron was written entirely from scratch by Matthew Dillon. +dcron: +dcron: +dcron: +dcron: diff --git a/source/a/device-mapper/64-device-mapper.rules b/source/a/device-mapper/64-device-mapper.rules new file mode 100644 index 000000000..7e9a235db --- /dev/null +++ b/source/a/device-mapper/64-device-mapper.rules @@ -0,0 +1,37 @@ +# device mapper links hook into "change" events, when the dm table +# becomes available; some table-types must be ignored + +KERNEL=="device-mapper", NAME="mapper/control" + +KERNEL!="dm-*", GOTO="device_mapper_end" +ACTION!="add|change", GOTO="device_mapper_end" + +# lookup device name +# use dmsetup, until devmap_name is provided by sys-fs/device-mapper +PROGRAM=="/sbin/dmsetup -j %M -m %m --noopencount --noheadings -c -o name info", + ENV{DM_NAME}="%c" + +# do not do anything if dmsetup does not provide a name +ENV{DM_NAME}=="", NAME="", OPTIONS="ignore_device" + +# ignore luks crypt devices while not fully up +ENV{DM_NAME}=="temporary-cryptsetup-*", NAME="", OPTIONS="ignore_device" + +# use queried name +ENV{DM_NAME}=="?*", NAME="mapper/$env{DM_NAME}" + +SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}" +SYMLINK+="disk/by-name/$env{DM_NAME}" + +PROGRAM!="/sbin/dmsetup status -j %M -m %m", GOTO="device_mapper_end" +ENV{DM_TYPE}="%c{3}" + +ENV{DM_TYPE}=="|*error*", GOTO="device_mapper_end" + +IMPORT{program}="vol_id --export $tempnode" +OPTIONS="link_priority=50" +ENV{DM_TYPE}=="*snapshot-origin*", OPTIONS="link_priority=60" +ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" +ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" + +LABEL="device_mapper_end" diff --git a/source/a/device-mapper/device-mapper.SlackBuild b/source/a/device-mapper/device-mapper.SlackBuild new file mode 100755 index 000000000..d770deed7 --- /dev/null +++ b/source/a/device-mapper/device-mapper.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.02.28 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-device-mapper + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf device-mapper.$VERSION +tar xvf $CWD/device-mapper.$VERSION.tar.bz2 || exit 1 +cd device-mapper.$VERSION + +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --libdir=/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-static_link \ + --enable-pkgconfig \ + --enable-dmeventd \ + --disable-selinux \ + --with-device-uid=0 \ + --with-device-gid=6 \ + --with-device-mode=0660 \ + --build=$ARCH-slackware-linux + # I tried adding --enable-compat but that failed to compile + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# On x86_64 the pkgconfig files are installed to the wrong directory, but +# the .pc content is correct, so we just move them over: +if [ ! -d $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig ]; then + mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} + mv $PKG/usr/lib/pkgconfig $PKG/usr/lib${LIBDIRSUFFIX}/ + rmdir $PKG/usr/lib || exit 1 +fi + +mkdir -p $PKG/lib/udev/rules.d +cat $CWD/64-device-mapper.rules > $PKG/lib/udev/rules.d/64-device-mapper.rules + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/device-mapper.$VERSION +cp -a \ + COPYING* INSTALL INTRO README* VERSION WHATS_NEW \ + $PKG/usr/doc/device-mapper.$VERSION + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/device-mapper-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/device-mapper/slack-desc b/source/a/device-mapper/slack-desc new file mode 100644 index 000000000..2708a39fb --- /dev/null +++ b/source/a/device-mapper/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +device-mapper: device-mapper (device-mapper for logical volume management) +device-mapper: +device-mapper: The goal of device-mapper is to support volume management. The +device-mapper: driver enables the definition of new block devices composed of +device-mapper: ranges of sectors of existing devices. This can be used to define +device-mapper: disk partitions or logical volumes. +device-mapper: +device-mapper: device-mapper is required by LVM2, the Logical Volume Manager. +device-mapper: +device-mapper: +device-mapper: + diff --git a/source/a/devs/devs.SlackBuild b/source/a/devs/devs.SlackBuild new file mode 100755 index 000000000..61ddf33b4 --- /dev/null +++ b/source/a/devs/devs.SlackBuild @@ -0,0 +1,62 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.3.1 +ARCH=noarch +BUILD=${BUILD:-25} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-devs + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_devs.tar.gz + +cd $TMP +rm -r MAKEDEV-${VERSION} +tar xzvf $CWD/makedev_${VERSION}.orig.tar.gz +cd MAKEDEV-${VERSION} +zcat $CWD/makedev_2.3.1-46.2.diff.gz | patch -p1 -E +#zcat $CWD/makedev_.slack.diff.gz | patch -p1 -E +# Add many more IDE devices: +zcat $CWD/makedev_2.3.1.hd.diff.gz | patch -p1 -E +# Still not enough: +zcat $CWD/makedev.hd.diff.gz | patch -p1 -E +cat MAKEDEV > $PKG/dev/MAKEDEV +cat README > $PKG/dev/README.MAKEDEV +gzip -9c MAKEDEV.man > $PKG/usr/man/man8/MAKEDEV.8.gz +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/devs-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/MAKEDEV-${VERSION} + rm -rf $PKG +fi diff --git a/source/a/devs/makedev.hd.diff b/source/a/devs/makedev.hd.diff new file mode 100644 index 000000000..7276c1dc0 --- /dev/null +++ b/source/a/devs/makedev.hd.diff @@ -0,0 +1,92 @@ +--- ./MAKEDEV.orig 2002-06-09 12:31:22.000000000 -0700 ++++ ./MAKEDEV 2002-06-09 12:31:51.000000000 -0700 +@@ -914,7 +914,7 @@ + base=`index ab $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major `math $base + $part` $disk + done +@@ -925,7 +925,7 @@ + base=`index cd $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -936,7 +936,7 @@ + base=`index ef $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -947,7 +947,7 @@ + base=`index gh $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -958,7 +958,7 @@ + base=`index ij $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -969,7 +969,7 @@ + base=`index kl $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -980,7 +980,7 @@ + base=`index mn $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -991,7 +991,7 @@ + base=`index op $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -1002,7 +1002,7 @@ + base=`index qr $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done +@@ -1013,7 +1013,7 @@ + base=`index st $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + do + makedev hd$unit$part b $major $(( $base + $part )) $disk + done diff --git a/source/a/devs/makedev_2.3.1-46.2.diff b/source/a/devs/makedev_2.3.1-46.2.diff new file mode 100644 index 000000000..87ad22f85 --- /dev/null +++ b/source/a/devs/makedev_2.3.1-46.2.diff @@ -0,0 +1,2952 @@ +--- makedev-2.3.1.orig/MAKEDEV.man ++++ makedev-2.3.1/MAKEDEV.man +@@ -124,8 +124,7 @@ + .BI ttyC x + and the corresponding dial-out device is + .BI cub x +-By default devices for 7 lines are created, but this can be changed to +-15 by removing the comment. ++Devices for 32 lines are created. + .TP + .B Pseudo Terminals + .TP +@@ -387,4 +386,4 @@ + Linux Allocated Devices, maintained by H.\ Peter Anvin, + . + .SH AUTHOR +-Nick Holloway, &2 +- echo "`expr \"$1\" : \"\(.*\) $2 \"` `expr \"$1\" : \".* $2 \(.*\)\"`" +- } +-fi ++math () { ++ eval echo "\$(($*))" ++} ++index () { # index string c ++ eval "I=\${1%$2*}" ++ eval echo "\${#I}" ++} ++suffix () { ++ eval echo "\${1#$2}" ++} ++strip () { ++ eval echo "\${1% $2 *} \${1#* $2 }" ++} ++first () { ++ eval echo "\${1:0:1}" ++} ++second () { ++ eval echo "\${1:1:1}" ++} ++substr () { ++ echo $1 | cut -c $2 ++} + + #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# + +@@ -140,6 +142,7 @@ + exec 3<$procfs/devices + while read major device <&3 + do ++ device=`echo $device|tr -d /` + case "$major" in + Character|Block|'') + ;; +@@ -166,7 +169,7 @@ + while [ $# -ne 0 ] + do + case "$1" in +- mem|tty|ttyp|cua|cub) ;; ++ mem|tty|ttyp|cua|cub|cui) ;; + hd) (for d in a b c d e f g h ; do + echo -n hd$d " " + done) ; echo +@@ -175,13 +178,16 @@ + ide1) echo hdc hdd ;; + ide2) echo hde hdf ;; + ide3) echo hdg hdh ;; +- sd) echo sda sdb ;; +- sr) echo scd0 ;; ++ sd) echo sda sdb sdc sdd ;; ++ sg) echo sg ;; ++ sr) echo scd ;; + st) echo st0 ;; + xd) echo xda xdb ;; ++ ad) echo ada adb ;; + fd) echo fd0 fd1 ;; + lp) echo lp ;; + mt) echo ftape ;; ++ qft) echo ftape ;; + loop) echo loop ;; + md) echo md ;; + ibcs2) echo ibcs2 ;; +@@ -191,13 +197,31 @@ + ac4096) echo ac4096 ;; + hw) echo helloworld ;; + sbpcd | sbpcd[123]) echo $1 ;; +- Joystick) echo js ;; ++ joystick) echo js ;; + apm_bios) echo apm ;; + dcf) echo dcf ;; + aztcd) echo aztcd ;; ++ cm206cd) echo cm206cd ;; ++ gscd) echo gscd ;; + pcmcia) ;; # taken care of by its own driver + ttyC) echo cyclades ;; ++ isdn) echo isdnmodem isdnbri dcbri ;; + vcs) ;; ++ pty) echo pty ;; ++ misc) echo misc ;; ++ 3dfx) echo 3dfx ;; ++ agpgart) echo agpgart ;; ++ ipmi|ipmikcs) echo ipmi ;; ++ fb) echo fb ;; ++ nb) echo nb0 nb1 ;; ++ netlink) echo netlink ;; ++ hamradio) echo hamradio ;; ++ snd) ;; ++ ptm) ;; ++ pts) ;; ++ ttyS) echo ttyS0 ttyS1 ttyS2 ttyS3 ;; ++ ttyI) echo ttyI0 ttyI1 ttyI2 ttyI3 ;; ++ ircomm|irlpt) irda ;; + *) echo "$0: don't know what \"$1\" is" >&2 ;; + esac + shift +@@ -206,20 +230,148 @@ + + for arg + do ++# case `cvt $arg` in + case $arg in + generic) ++ # pick the right generic- using dpkg's knowledge ++ case `dpkg --print-installation-architecture` in ++ alpha) ++ $0 $opts generic-alpha ++ ;; ++ arm) ++ $0 $opts generic-arm ++ ;; ++ i386) ++ $0 $opts generic-i386 ++ ;; ++ m68k) ++ $0 $opts generic-m68k ++ ;; ++ powerpc) ++ $0 $opts generic-powerpc ++ ;; ++ sparc) ++ $0 $opts generic-sparc ++ ;; ++ *) ++ echo "$0: no support for generic-$arg" >&2 ++ exit 1 ++ ;; ++ esac ++ ;; ++ generic-alpha) + $0 $opts std + $0 $opts fd + $0 $opts fd0 fd1 +- $0 $opts hda hdb ++ $0 $opts hda hdb hdc hdd ++ $0 $opts xda xdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ++ $0 $opts busmice ++ $0 $opts lp ++ $0 $opts par ++ $0 $opts audio ++ $0 $opts fb ++ ;; ++ generic-arm) ++ $0 $opts std ++ $0 $opts fd ++ $0 $opts fd0 fd1 ++ $0 $opts hda hdb hdc hdd ++ $0 $opts xda xdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ++ $0 $opts busmice ++ $0 $opts lp ++ $0 $opts par ++ $0 $opts audio ++ $0 $opts fb ++ ;; ++ generic-i386) ++ $0 $opts std ++ $0 $opts fd ++ $0 $opts fd0 fd1 ++ $0 $opts hda hdb hdc hdd + $0 $opts xda xdb +- $0 $opts sda sdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg + $0 $opts pty + $0 $opts console + $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 + $0 $opts busmice + $0 $opts lp + $0 $opts par ++ $0 $opts audio ++ $0 $opts fb ++ ;; ++ generic-m68k) ++ $0 $opts std ++ $0 $opts fd ++ $0 $opts fd0-bare fd1-bare ++ $0 $opts hda hdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts sg ++ $0 $opts ada adb ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS5 ++ $0 $opts m68k-mice ++ $0 $opts lp ++ $0 $opts par ++ $0 $opts nvram ++ $0 $opts audio ++ $0 $opts fb ++ ;; ++ generic-powerpc) ++ $0 $opts std ++ $0 $opts fd ++ $0 $opts fd0-bare fd1-bare ++ $0 $opts hda hdb hdc hdd ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ++ $0 $opts busmice ++ $0 $opts lp ++ $0 $opts par ++ $0 $opts nvram ++ $0 $opts audio ++ $0 $opts adb ++ $0 $opts fb ++ $0 $opts rtc ++ ;; ++ generic-sparc) ++ $0 $opts std ++ $0 $opts fd0-bare fd1-bare ++ $0 $opts hda hdb ++ $0 $opts sda sdb sdc sdd ++ $0 $opts scd0 scd1 ++ $0 $opts st0 st1 ++ $0 $opts sg ++ $0 $opts pty ++ $0 $opts console ++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ++ $0 $opts fb ++ $0 $opts rtc ++ makedev kbd c 11 0 $cons ++ makedev sunmouse c 10 6 $mouse ++ symlink sunmouse mouse ++ makedev openprom c 10 139 $private + ;; + local) + $0.local $opts +@@ -232,22 +384,71 @@ + makedev zero c 1 5 $public + symlink core $procfs/kcore + makedev full c 1 7 $public +- $0 ram ++ makedev random c 1 8 $readable ++ makedev urandom c 1 9 $readable + makedev tty c 5 0 $tty ++ $0 $opts ram ++ $0 $opts loop ++ ;; ++ hamradio) ++ $0 $opts scc ++ $0 $opts bc ++ ;; ++ scc) ++ for unit in 0 1 2 3 4 5 6 7 ++ do ++ makedev scc$unit c 34 $unit $system ++ done ++ ;; ++ bc) ++ for unit in 0 1 2 3 ++ do ++ makedev bc$unit c 51 $unit $system ++ done ++ ;; ++ random) ++ makedev random c 1 8 $readable ++ ;; ++ urandom) ++ makedev urandom c 1 9 $readable + ;; + ram) +- for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do ++ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do + makedev ram$i b 1 $i $disk + done +- ln -sf ram1 ram ++ symlink ram ram1 + ;; +- console) +- major=`Major vcs` # not fatal +- # console ++ ram[0-9]|ram1[0-6]) ++ unit=`suffix $arg ram` ++ makedev ram$unit b 1 $unit $disk ++ ;; ++ initrd) ++ makedev initrd b 1 250 $disk ++ ;; ++ consoleonly) + makedev tty0 c 4 0 $cons +- symlink console tty0 ++ # new kernels need a device, old ones a symlink... sigh ++ kern_rev1=`uname -r | awk -F'.' '{print $1}'` ++ kern_rev2=`uname -r | awk -F'.' '{print $2}'` ++ if [ $kern_rev1 -gt 2 ] ++ then ++ makedev console c 5 1 $cons ++ else ++ if [ $kern_rev1 -eq 2 -a $kern_rev2 -ge 1 ] ++ then ++ makedev console c 5 1 $cons ++ else ++ symlink console tty0 ++ fi ++ fi ++ ;; ++ console) ++ $0 $opts consoleonly ++ major=`Major vcs 7` # not fatal + [ "$major" ] && makedev vcs0 c $major 0 $vcs +- [ "$major" ] && makedev vcsa c $major 128 $vcs ++ symlink vcs vcs0 ++ [ "$major" ] && makedev vcsa0 c $major 128 $vcs ++ symlink vcsa vcsa0 + # individual vts + line=1 + while [ $line -le $MAXVT -a $line -le 63 ] +@@ -258,6 +459,32 @@ + line=`math $line + 1` + done + ;; ++ adb) ++ # pick the right arch device using dpkg's knowledge ++ case `dpkg --print-installation-architecture` in ++ powerpc) ++ # ADB bus devices (char) ++ makedev adb c 56 0 $mouse ++ makedev adbmouse c 10 10 $mouse ++ ;; ++ m68k) ++ # ACSI disk 2, whole device (block) ++ makedev adb b 28 16 $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ minor=$(( 16 + $part )) ++ makedev adb$part b 28 $minor $disk ++ done ++ ;; ++ *) ++ echo "no support for adb on $arg" >&2 ++ exit 1 ++ ;; ++ esac ++ ;; ++ nvram) ++ makedev nvram c 10 144 $kmem ++ ;; + tty[1-9]|tty[1-5][0-9]|tty[6][0-3]) + line=`suffix $arg tty` + makedev tty$line c 4 $line $tty +@@ -265,8 +492,7 @@ + ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3]) + line=`suffix $arg ttyS` + minor=`math 64 + $line` +- makedev ttyS$line c 4 $minor $tty +- makedev cua$line c 5 $minor $dialout ++ makedev ttyS$line c 4 $minor $dialout + ;; + pty[a-ep-z]) + bank=`suffix $arg pty` +@@ -285,42 +511,350 @@ + do + ptysufs="$ptysufs pty$i" + done +- $0 $opts $ptysufs ++ $0 $opts $ptysufs ptmx + ;; +- cyclades) +- major1=`Major ttyC` || continue +- major2=`Major cub` || continue ++ ptmx) ++ # master pty multiplexer for 2.1 kernels ++ makedev ptmx c 5 2 $tty ++ ;; ++ cyclades|ttyC) ++ major1=`Major ttyC 19` || continue ++ #major2=`Major cub 20` || continue + for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \ +- 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ++ 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ++ do ++ makedev ttyC$i c $major1 $i $dialout ++ #makedev cub$i c $major2 $i $dialout ++ done ++ ;; ++ stallion|ttyE) ++ major1=`Major ttyE 24` || continue ++ #major2=`Major cue 25` || continue ++ majorc=28 ++ minor=0 ++ until [ $minor -gt 256 ] ++ do ++ makedev ttyE$minor c $major1 $minor $dialout ++ #makedev cue$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ for i in 0 1 2 3 ++ do ++ makedev staliomem$i c $majorc $i $private ++ done ++ ;; ++ chase|ttyH) ++ major1=`Major ttyH 17` || continue ++ #major2=`Major cuh 18` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyH$minor c $major1 $minor $dialout ++ #makedev cuh$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ rocketport|ttyR) ++ major1=`Major ttyR 46` || continue ++ #major2=`Major cur 47` || continue ++ minor=0 ++ until [ $minor -gt 64 ] # tell me if 64 is wrong ++ do ++ makedev ttyR$minor c $major1 $minor $dialout ++ #makedev cur$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ ttyV) ++ major1=`Major ttyV 105` || continue ++ #major2=`Major cuv 106` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyV$minor c $major1 $minor $dialout ++ #makedev cuv$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ digi|ttyD) ++ major1=`Major ttyD 22` || continue ++ #major2=`Major cud 23` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyD$minor c $major1 $minor $dialout ++ #makedev cud$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ specialix|ttyX) ++ major1=`Major ttyX 32` || continue ++ #major2=`Major cux 33` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyX$minor c $major1 $minor $dialout ++ #makedev cux$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ specialixIO8|ttyW) ++ major1=`Major ttyW 75` || continue ++ #major2=`Major cuw 76` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyW$minor c $major1 $minor $dialout ++ #makedev cuw$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ PAM|ttyM) ++ major1=`Major ttyM 79` || continue ++ #major2=`Major cum 80` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyM$minor c $major1 $minor $dialout ++ #makedev cum$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ riscom|ttyL) ++ major=`Major ttyL 48` || continue ++ minor=0 ++ until [ $minor -gt 16 ] # tell me if 16 is wrong ++ do ++ makedev ttyL$minor c $major $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ computone|ttyF) ++ major=`Major ttyF 71` || continue ++ #major2=`Major cuf 72` || continue ++ minor=0 ++ until [ $minor -gt 255 ] ++ do ++ makedev ttyF$minor c $major $minor $dialout ++ #makedev cuf$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ major=73 ++ for i in 0 4 8 12 ++ do ++ makedev ip2ipl$i c $major $i $private ++ makedev ip2stat$i c $major `math $i + 1` $private ++ done ++ ;; ++ ESP|ttyP) ++ major=`Major ttyP 57` || continue ++ #major2=`Major cup 58` || continue ++ minor=0 ++ until [ $minor -gt 4 ] # tell me if 4 is wrong ++ do ++ makedev ttyP$minor c $major $minor $dialout ++ #makedev cup$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ COMX|comx) ++ major=`Major comx 88` || continue ++ minor=0 ++ until [ $minor -gt 4 ] # tell me if 4 is wrong ++ do ++ makedev comx$minor c $major $minor $private ++ minor=`math $minor + 1` ++ done ++ ;; ++ isdnmodem|ttyI) ++ major1=`Major ttyI 43` || continue ++ #major2=`Major cui 44` || continue ++ minor=0 ++ until [ $minor -gt 63 ] ++ do ++ makedev ttyI$minor c $major1 $minor $dialout ++ #makedev cui$minor c $major2 $minor $dialout ++ minor=`math $minor + 1` ++ done ++ ;; ++ isdnbri) ++ major=45 ++ minor=0 ++ until [ $minor -gt 63 ] ++ do ++ makedev isdn$minor c $major $minor $private ++ makedev isdnctrl$minor c $major `math $minor + 64` $private ++ makedev ippp$minor c $major `math $minor + 128` $private ++ minor=`math $minor + 1` ++ done ++ makedev isdninfo c $major 255 $private ++ ;; ++ dcbri) ++ major=52 ++ for i in 0 1 2 3 ++ do ++ makedev dcbri$i c $major $i $private ++ done ++ ;; ++ capi) ++ major=68 ++ makedev capi20 c $major 0 $private ++ for i in 0 1 2 3 4 5 6 7 8 9 ++ do ++ makedev capi20.0$i c $major `math $i + 1` $private ++ done ++ for i in 10 11 12 13 14 15 16 17 18 19 ++ do ++ makedev capi20.$i c $major `math $i + 1` $private ++ done ++ ;; ++ fb) ++ for i in 0 1 2 3 4 5 6 7 ++ do ++ makedev fb$i c 29 `math 32 \* $i` $cons ++ makedev fb${i}current c 29 `math 32 \* $i` $cons ++ makedev fb${i}autodetect c 29 `math 32 \* $i + 1` $cons ++ done ++ ;; ++ fb[0-7]) ++ dev=`suffix $arg fb` ++ base=`math 32 \* $dev` ++ makedev fb$dev c 29 $base $cons ++ makedev fb${dev}current c 29 $base $cons ++ makedev fb${dev}autodetect c 29 `math $base + 1` $cons ++ for i in 0 1 2 3 4 5 6 7 + do +- makedev ttyC$i c $major1 $i $tty +- makedev cub$i c $major2 $i $dialout ++ makedev fb${dev}user$i c 29 `math $base + 24 + $i` $cons ++ done ++ ;; ++ netlink) ++ makedev route c 36 0 $coda ++ makedev skip c 36 1 $coda ++ makedev fwmonitor c 36 3 $coda ++ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ makedev tap$i c 36 `math $i + 16` $coda + done + ;; + lp) +- major=`Major lp` || continue ++ major=`Major lp 6` || continue + makedev ${arg}0 c $major 0 $printer + makedev ${arg}1 c $major 1 $printer + makedev ${arg}2 c $major 2 $printer + ;; + par) +- major=`Major lp` || continue ++ major=`Major lp 6` || continue ++ makedev ${arg}0 c $major 0 $printer ++ makedev ${arg}1 c $major 1 $printer ++ makedev ${arg}2 c $major 2 $printer ++ ;; ++ parport) ++ major=`Major parport 99` || continue + makedev ${arg}0 c $major 0 $printer + makedev ${arg}1 c $major 1 $printer + makedev ${arg}2 c $major 2 $printer + ;; ++ slm) ++ major=`Major slm 28` || continue ++ for i in 0 1 2 3 ++ do ++ makedev slm c $major $i $printer ++ done ++ ;; + busmice) + major=`Major mouse 10` || continue +- makedev logimouse c $major 0 $mouse +- makedev psmouse c $major 1 $mouse +- makedev msmouse c $major 2 $mouse +- makedev atimouse c $major 3 $mouse +- makedev jmouse c $major 4 $mouse ++ makedev logibm c $major 0 $mouse ++ makedev psaux c $major 1 $mouse ++ makedev inportbm c $major 2 $mouse ++ makedev atibm c $major 3 $mouse ++ makedev jbm c $major 4 $mouse ++ makedev usbmouse c $major 32 $mouse ++ ;; ++ m68k-mice) ++ major=`Major mouse 10` || continue ++ makedev amigamouse c $major 4 $mouse ++ makedev atarimouse c $major 5 $mouse ++ makedev amigamouse1 c $major 7 $mouse ++ makedev adbmouse c $major 10 $mouse ++ ;; ++ 3dfx) ++ major=`Major $arg 107` || continue ++ makedev $arg c $major 0 $video ++ ;; ++ agpgart) ++ major=`Major $arg 10` || continue ++ makedev $arg c $major 175 $video ++ ;; ++ ipmi|ipmikcs) ++ major=`Major ipmikcs 10` || continue ++ makedev ipmikcs c $major 173 $private ++ ;; ++ irda) ++ for i in 0 1 ++ do ++ makedev ircomm$i c 161 $i $mouse ++ makedev irlpt$i c 161 `math $i + 16` $mouse ++ done ++ ;; ++ misc) ++ major=`Major mouse 10` || continue ++ makedev logibm c $major 0 $mouse ++ makedev psaux c $major 1 $mouse ++ makedev inportbm c $major 2 $mouse ++ makedev atibm c $major 3 $mouse ++ makedev jbm c $major 4 $mouse ++ makedev amigamouse c $major 4 $mouse ++ makedev atarimouse c $major 5 $mouse ++ makedev sunmouse c $major 6 $mouse ++ makedev amigamouse1 c $major 7 $mouse ++ makedev smouse c $major 8 $mouse ++ makedev pc110pad c $major 9 $mouse ++ makedev adbmouse c $major 10 $mouse ++ makedev beep c $major 128 $mouse ++ makedev modreq c $major 129 $mouse ++ makedev watchdog c $major 130 $mouse ++ makedev temperature c $major 131 $mouse ++ makedev hwtrap c $major 132 $mouse ++ makedev exttrp c $major 133 $mouse ++ makedev apm_bios c $major 134 $mouse ++ makedev rtc c $major 135 $mouse ++ makedev openprom c $major 139 $mouse ++ makedev relay8 c $major 140 $mouse ++ makedev relay16 c $major 141 $mouse ++ makedev msr c $major 142 $mouse ++ makedev pciconf c $major 143 $mouse ++ makedev nvram c $major 144 $mouse ++ makedev hfmodem c $major 145 $mouse ++ makedev led c $major 151 $mouse ++ makedev mergemem c $major 153 $mouse ++ makedev pmu c $major 154 $mouse ++ ;; ++ smapi|thinkpad) ++ major=`Major mouse 10` || continue ++ makedev smapi c $major 170 $mouse ++ symlink smapi thinkpad ++ ;; ++ rtc) ++ major=`Major mouse 10` || continue ++ makedev rtc c $major 135 $mouse + ;; + js) +- major=`Major Joystick` || continue +- makedev js0 c $major 0 $mouse +- makedev js1 c $major 1 $mouse ++ major=`Major Joystick 15` || continue ++ for unit in 0 1 2 3 ++ do ++ makedev js$unit c $major $unit $readable ++ makedev djs$unit c $major `math $unit + 128` $readable ++ done ++ ;; ++ fd[0-7]-bare) ++ sarg="${arg%-bare}" ++ major=`Major fd 2` || continue ++ base=`suffix $sarg fd` ++ if [ $base -ge 4 ] ++ then ++ base=`math $base + 124` ++ fi ++ makedev ${sarg} b $major $base $floppy + ;; + fd[0-7]) + major=`Major fd 2` || continue +@@ -332,39 +866,47 @@ + makedev ${arg} b $major $base $floppy + makedev ${arg}d360 b $major `math $base + 4` $floppy + makedev ${arg}h1200 b $major `math $base + 8` $floppy +- makedev ${arg}D360 b $major `math $base + 12` $floppy +- makedev ${arg}D720 b $major `math $base + 16` $floppy ++ makedev ${arg}u360 b $major `math $base + 12` $floppy ++ makedev ${arg}u720 b $major `math $base + 16` $floppy + makedev ${arg}h360 b $major `math $base + 20` $floppy + makedev ${arg}h720 b $major `math $base + 24` $floppy +- makedev ${arg}H1440 b $major `math $base + 28` $floppy +- makedev ${arg}E2880 b $major `math $base + 32` $floppy ++ makedev ${arg}u1440 b $major `math $base + 28` $floppy ++ makedev ${arg}u2880 b $major `math $base + 32` $floppy + makedev ${arg}CompaQ b $major `math $base + 36` $floppy + +- symlink ${arg}H360 ${arg}D360 +- symlink ${arg}H720 ${arg}D720 +- + makedev ${arg}h1440 b $major `math $base + 40` $floppy +- makedev ${arg}H1680 b $major `math $base + 44` $floppy ++ makedev ${arg}u1680 b $major `math $base + 44` $floppy + makedev ${arg}h410 b $major `math $base + 48` $floppy +- makedev ${arg}H820 b $major `math $base + 52` $floppy ++ makedev ${arg}u820 b $major `math $base + 52` $floppy + makedev ${arg}h1476 b $major `math $base + 56` $floppy +- makedev ${arg}H1722 b $major `math $base + 60` $floppy ++ makedev ${arg}u1722 b $major `math $base + 60` $floppy + makedev ${arg}h420 b $major `math $base + 64` $floppy +- makedev ${arg}H830 b $major `math $base + 68` $floppy ++ makedev ${arg}u830 b $major `math $base + 68` $floppy + makedev ${arg}h1494 b $major `math $base + 72` $floppy +- makedev ${arg}H1743 b $major `math $base + 76` $floppy ++ makedev ${arg}u1743 b $major `math $base + 76` $floppy + makedev ${arg}h880 b $major `math $base + 80` $floppy +- makedev ${arg}D1040 b $major `math $base + 84` $floppy +- makedev ${arg}D1120 b $major `math $base + 88` $floppy ++ makedev ${arg}u1040 b $major `math $base + 84` $floppy ++ makedev ${arg}u1120 b $major `math $base + 88` $floppy + makedev ${arg}h1600 b $major `math $base + 92` $floppy +- makedev ${arg}H1760 b $major `math $base + 96` $floppy +- makedev ${arg}H1920 b $major `math $base + 100` $floppy +- makedev ${arg}E3200 b $major `math $base + 104` $floppy +- makedev ${arg}E3520 b $major `math $base + 108` $floppy +- makedev ${arg}E3840 b $major `math $base + 112` $floppy +- makedev ${arg}H1840 b $major `math $base + 116` $floppy +- makedev ${arg}D800 b $major `math $base + 120` $floppy +- makedev ${arg}H1600 b $major `math $base + 124` $floppy ++ makedev ${arg}u1760 b $major `math $base + 96` $floppy ++ makedev ${arg}u1920 b $major `math $base + 100` $floppy ++ makedev ${arg}u3200 b $major `math $base + 104` $floppy ++ makedev ${arg}u3520 b $major `math $base + 108` $floppy ++ makedev ${arg}u3840 b $major `math $base + 112` $floppy ++ makedev ${arg}u1840 b $major `math $base + 116` $floppy ++ makedev ${arg}u800 b $major `math $base + 120` $floppy ++ makedev ${arg}u1600 b $major `math $base + 124` $floppy ++ ;; ++ ed[a-b]) ++ major=`Major ed 36` || continue ++ unit=`suffix $arg ed` ++ base=`index ab $unit` ++ base=`math $base \* 64` ++ makedev ed$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev ed$unit$part b $major `math $base + $part` $disk ++ done + ;; + hd[a-b]) + major=`Major ide0` || major=`Major hd 3` || continue +@@ -372,7 +914,7 @@ + base=`index ab $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do + makedev hd$unit$part b $major `math $base + $part` $disk + done +@@ -383,9 +925,9 @@ + base=`index cd $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do +- makedev hd$unit$part b $major `expr $base + $part` $disk ++ makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[e-f]) +@@ -394,9 +936,9 @@ + base=`index ef $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do +- makedev hd$unit$part b $major `expr $base + $part` $disk ++ makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; + hd[g-h]) +@@ -405,18 +947,47 @@ + base=`index gh $unit` + base=`math $base \* 64` + makedev hd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ hd[i-j]) ++ major=`Major ide4 56` || continue ++ unit=`suffix $arg hd` ++ base=`index ij $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + do +- makedev hd$unit$part b $major `expr $base + $part` $disk ++ makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; +- ht) ++ hd[k-l]) ++ major=`Major ide4 57` || continue ++ unit=`suffix $arg hd` ++ base=`index kl $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ ht0) + major=`Major ht0 37` || continue + # Only one IDE tape drive is currently supported; ht0. + makedev ht0 c $major 0 $tape +- makedev ht0 c $major 0 $tape + makedev nht0 c $major 128 $tape + ;; ++ pt) ++ major=`Major pt 96` || continue ++ for i in 0 1 2 3 ++ do ++ makedev pt$i c $major $i $tape ++ makedev npt$i c $major `math $i + 128` $tape ++ done ++ ;; + xd[a-d]) + major=`Major xd 13` || continue + unit=`suffix $arg xd` +@@ -425,31 +996,139 @@ + makedev xd$unit b $major $base $disk + for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 + do +- makedev xd$unit$part b $major `expr $base + $part` $disk ++ makedev xd$unit$part b $major $(( $base + $part )) $disk + done + ;; +- sd[a-h]) ++ sd[a-z]) + major=`Major sd 8` || continue + unit=`suffix $arg sd` +- base=`index abcdefgh $unit` +- base=`math $base \* 16` ++ base=`index abcdefghijklmnopqrstuvwxyz $unit` ++ base=$(( $base * 16 )) ++ if [ $base -lt 256 ]; then ++ major=8 ++ else ++ major=65 ++ base=$(( $base - 256 )) ++ fi ++ makedev sd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ minor=$(( $base + $part )) ++ makedev sd$unit$part b $major $minor $disk ++ done ++ ;; ++ sd[a-d][a-z]) ++ unit=`suffix $arg sd` ++ unitmaj=`first $unit` ++ unitmin=`second $unit` ++ basemaj=`index Xabcd $unitmaj` ++ basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin` ++ basemaj=`math $basemaj \* 416` ++ basemin=`math $basemin \* 16` ++ base=`math $basemaj + $basemin` ++ basemaj=`math $base / 256` ++ base=`math $base % 256` ++ major=`math basemaj \+ 64` ++ if [ $major -gt 71 ]; then ++ echo "$0: don't know how to make device \"$arg\"" >&2 ++ exit 0 ++ fi + makedev sd$unit b $major $base $disk +- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do +- minor=`expr $base + $part` ++ minor=$(( $base + $part )) + makedev sd$unit$part b $major $minor $disk + done ++ ;; ++ ad[a-p]) ++ major=`Major ad 28` || continue ++ unit=`suffix $arg ad` ++ base=`index abcdefghijklmnop $unit` ++ base=`math $base \* 16` ++ makedev ad$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ minor=$(( $base + $part )) ++ makedev ad$unit$part b $major $minor $disk ++ done ++ ;; ++ dac960) ++ for ctr in 0 1 2 3 4 5 6 7 ++ do ++ $0 $opts dac960.$ctr ++ done ++ ;; ++ dac960.[0-7]) ++ [ -d rd ] || { ++ mkdir rd ++ chown root.root rd ++ chmod 755 rd ++ } ++ unit=`suffix $arg dac960.` ++ major=`math 48 + $unit` ++ minor=0 ++ for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \ ++ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ++ do ++ makedev rd/c${unit}d${ld} b $major $minor $disk ++ minor=`math $minor + 1` ++ for part in 1 2 3 4 5 6 7 ++ do ++ makedev rd/c${unit}d${ld}p$part b $major $minor $disk ++ minor=`math $minor + 1` ++ done ++ done ++ ;; ++ ida) ++ for ctr in 0 1 2 # 3 4 5 6 7 ++ do ++ $0 $opts ida.$ctr ++ done ++ ;; ++ ida.[0-7]) ++ [ -d ida ] || { ++ mkdir ida ++ chown root.root ida ++ chmod 755 ida ++ } ++ unit=`suffix $arg ida.` ++ major=`math 72 + $unit` ++ minor=0 ++ for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ makedev ida/c${unit}d${ld} b $major $minor $disk ++ minor=`math $minor + 1` ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ++ do ++ makedev ida/c${unit}d${ld}p$part b $major $minor $disk ++ minor=`math $minor + 1` ++ done ++ done ++ ;; ++ rom) ++ major=`Major rom 31` ++ for i in 0 1 2 3 4 5 6 7 ++ do ++ makedev rom$i b $major $i $disk ++ makedev rrom$i b $major `math $i +8` $disk ++ makedev flash$i b $major `math $i +16` $disk ++ makedev rflash$i b $major `math $i +24` $disk ++ done ++ ;; ++ nb[0-7]) ++ major=`Major nbd 43` || continue ++ minor=`suffix $arg nb` ++ makedev nb$minor b $major $minor $disk + ;; + loop) +- major=`Major loop` || continue + for part in 0 1 2 3 4 5 6 7 + do +- makedev loop$part b $major $part $disk ++ makedev loop$part b 7 $part $disk + done + ;; + md) +- major=`Major md` || continue +- for part in 0 1 2 3 ++ major=`Major md 9` || continue ++ for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + do + makedev md$part b $major $part $disk + done +@@ -457,42 +1136,129 @@ + st[0-7]) + major=`Major st 9` + unit=`suffix $arg st` +- makedev st$unit c $major $unit $tape +- makedev nst$unit c $major `math 128 + $unit` $tape ++ makedev st${unit} c $major $unit $tape ++ makedev nst${unit} c $major `math 128 + $unit` $tape ++ ++ makedev st${unit}l c $major `math 32 + $unit` $tape ++ makedev nst${unit}l c $major `math 160 + $unit` $tape ++ ++ makedev st${unit}m c $major `math 64 + $unit` $tape ++ makedev nst${unit}m c $major `math 192 + $unit` $tape ++ ++ makedev st${unit}a c $major `math 96 + $unit` $tape ++ makedev nst${unit}a c $major `math 224 + $unit` $tape + ;; + qic) + major=`Major tpqic02 12` ++ makedev ntpqic11 c $major 2 $tape ++ makedev tpqic11 c $major 3 $tape ++ makedev ntpqic24 c $major 4 $tape ++ makedev tpqic24 c $major 5 $tape ++ makedev ntpqic120 c $major 6 $tape ++ makedev tpqic120 c $major 7 $tape ++ makedev ntpqic150 c $major 8 $tape ++ makedev tpqic150 c $major 9 $tape + makedev rmt8 c $major 6 $tape + makedev rmt16 c $major 8 $tape + makedev tape-d c $major 136 $tape + makedev tape-reset c $major 255 $tape ++ $0 $opts qft + ;; + ftape) +- major=`Major mt 27` || continue ++ major=`Major qft 27` || continue + for unit in 0 1 2 3 + do +- makedev rft$unit c $major $unit $tape +- makedev nrft$unit c $major `math $unit + 4` $tape ++ makedev qft$unit c $major $unit $tape ++ makedev nqft$unit c $major `math $unit + 4` $tape ++ makedev zqft$unit c $major `math $unit + 16` $tape ++ makedev nzqft$unit c $major `math $unit + 20` $tape ++ makedev rawqft$unit c $major `math $unit + 32` $tape ++ makedev nrawqft$unit c $major `math $unit + 36` $tape ++ done ++ symlink ftape qft0 ++ symlink nftape nqft0 ++ ;; ++ sr|scd|scd-all) ++ major=`Major sr 11` || continue ++ for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ++ do ++ makedev scd$unit b $major $unit $cdrom ++ symlink sr$unit scd$unit + done +- symlink ftape rft0 +- symlink nftape nrft0 + ;; +- scd[0-7]) ++ cfs0) ++ makedev cfs0 c 67 0 $coda ++ ;; ++ scd[0-9]|scd[0-1][0-9]) + major=`Major sr 11` || continue + unit=`suffix $arg scd` + makedev scd$unit b $major $unit $cdrom ++ ln -f scd$unit sr$unit ++ ;; ++ ttyI[0-9]|ttyI[1-5][0-9]|ttyI[6][0-3]) ++ major=43 ++ unit=`suffix $arg ttyI` ++ makedev ttyI$unit c $major $unit $dialout ++ ;; ++ ippp[0-9]|ippp[1-5][0-9]|ippp[6][0-3]) ++ major=45 ++ unit=`suffix $arg ippp` ++ minor=`math $unit + 128` ++ makedev ippp$unit c $major $minor $dialout ++ ;; ++ isdn[0-9]|isdn[1-5][0-9]|isdn[6][0-3]) ++ major=45 ++ unit=`suffix $arg isdn` ++ minor=`math $unit + 0` ++ makedev isdn$unit c $major $minor $dialout ++ ;; ++ isdnctrl[0-9]|isdnctrl[1-5][0-9]|isdnctrl[6][0-3]) ++ major=45 ++ unit=`suffix $arg isdnctrl` ++ minor=`math $unit + 64` ++ makedev isdnctrl$unit c $major $minor $dialout ++ ;; ++ isdninfo) ++ makedev isdninfo c 45 255 $dialout ++ ;; ++ isdn-tty) ++ major=43 ++ for unit in 0 1 2 3 4 5 6 7 ++ do ++ makedev ttyI$unit c $major $unit $dialout ++ done ++ ;; ++ isdn-ippp) ++ major=45 ++ for unit in 0 1 2 3 4 5 6 7 ++ do ++ makedev ippp$unit c $major `math $unit + 128` $dialout ++ done ++ ;; ++ isdn-io) ++ for unit in 0 1 2 3 4 5 6 7 ++ do ++ makedev isdn$unit c 45 $unit $dialout ++ makedev isdnctrl$unit c 45 `math $unit + 64` $dialout ++ makedev ippp$unit c 45 `math $unit + 128` $dialout ++ done ++ makedev isdninfo c 45 255 $dialout + ;; + sonycd) +- major=`Major cdu31a` || continue ++ major=`Major sonycd 15` || continue + makedev $arg b $major 0 $cdrom + ;; + mcd) + major=`Major mcd 23` || continue + makedev $arg b $major 0 $cdrom + ;; +- mcdx) +- major=`Major mcdx 20` || continue +- makedev $arg b $major 0 $cdrom ++ mcdx|mcdx[0-4]) ++ major=`Major $arg 20` || continue ++ for unit in 0 1 2 3 4 ++ do ++ makedev mcdx$unit b $major $unit $cdrom ++ done ++ test -r mcdx || symlink mcdx mcdx0 + ;; + cdu535) + makedev $arg b 24 0 $cdrom +@@ -501,28 +1267,51 @@ + makedev $arg b 24 0 $cdrom + ;; + sbpcd|sbpcd[123]) +- major=`Major $arg` || continue ++ major=`Major $arg 25` || continue + base=`suffix ${arg}0 sbpcd` +- # base=`expr ${arg}0 : "sbpcd\(.\)"` + for minor in 0 1 2 3 + do + # XXX +- unit=`expr substr 0123456789abcdef \( $base \* 4 + $minor + 1 \) 1` ++ unit=$(substr 0123456789abcdef $(( $base * 4 + $minor + 1 )) ) + makedev sbpcd$unit b $major $minor $cdrom + done + [ $arg = sbpcd ] && symlink $arg ${arg}0 + ;; + aztcd) +- major=`Major $arg` || continue ++ major=`Major $arg 29` || continue ++ makedev ${arg}0 b $major 0 $cdrom ++ ;; ++ cm206cd) ++ major=`Major $arg 30` || continue ++ makedev ${arg}0 b $major 0 $cdrom ++ ;; ++ gscd) ++ major=`Major $arg 16` || continue + makedev ${arg}0 b $major 0 $cdrom + ;; + bpcd) + makedev $arg b 41 0 $cdrom + ;; ++ optcd) ++ makedev $arg b 17 0 $cdrom ++ ;; ++ sjcd) ++ makedev $arg b 18 0 $cdrom ++ ;; ++ cfs|coda) ++ makedev cfs0 c 67 0 $private ++ ;; ++ xfs|arla) ++ makedev xfs0 c 103 0 $private ++ ;; + logiscan) + major=`Major logiscan` || continue + makedev $arg c $major 0 $scanner + ;; ++ toshiba) ++ major=`Major $arg 10` || continue ++ makedev $arg c $major 181 root root 0666 ++ ;; + m105scan) + major=`Major m105` || continue + makedev $arg c $major 0 $scanner +@@ -534,34 +1323,119 @@ + audio) + major=`Major sound 14` + makedev mixer c $major 0 $audio ++ makedev mixer1 c $major 16 $audio ++ makedev mixer2 c $major 32 $audio ++ makedev mixer3 c $major 48 $audio + makedev sequencer c $major 1 $audio + makedev midi00 c $major 2 $audio +- makedev dsp c $major 3 $audio +- makedev audio c $major 4 $audio +- makedev sndstat c $major 6 $audio +-# makedev sequencer2 c $major 8 $audio +- makedev mixer1 c $major 16 $audio +-# makedev patmgr0 c $major 17 $audio + makedev midi01 c $major 18 $audio +- makedev dsp1 c $major 19 $audio +- makedev audio1 c $major 20 $audio +-# makedev patmgr1 c $major 33 $audio + makedev midi02 c $major 34 $audio + makedev midi03 c $major 50 $audio ++ makedev dsp c $major 3 $audio ++ makedev dsp1 c $major 19 $audio ++ makedev dsp2 c $major 35 $audio ++ makedev dsp3 c $major 51 $audio ++ makedev audio c $major 4 $audio ++ makedev audio1 c $major 20 $audio ++ makedev audio2 c $major 36 $audio ++ makedev audio3 c $major 52 $audio ++ makedev sndstat c $major 6 $audio ++ makedev audioctl c $major 7 $audio ++ major=31 ++ makedev mpu401data c $major 0 $audio ++ makedev mpu401stat c $major 1 $audio ++ major=35 ++ for i in 0 1 2 3 ++ do ++ makedev midi$i c $major $i $audio ++ makedev rmidi$i c $major `math $i + 64` $audio ++ makedev smpte$i c $major `math $i + 128` $audio ++ done + ;; + pcaudio) +- major=`Major pcsp` || continue ++ major=`Major pcsp 13` || continue + makedev pcmixer c $major 0 $audio + makedev pcsp c $major 3 $audio + makedev pcaudio c $major 4 $audio + ;; +- sg) ++ video|video4linux|v4l|radio) ++ # video4linux api includes radio, teletext, etc. ++ major=`Major video 81` || continue ++ minor=0 ++ until [ $minor -gt 63 ] ++ do ++ makedev video$minor c $major $minor $video ++ makedev radio$minor c $major `math $minor + 64` $video ++ minor=`math $minor + 1` ++ done ++ symlink radio radio0 ++ minor=0 ++ until [ $minor -gt 31 ] ++ do ++ makedev vtx$minor c $major `math $minor + 192` $video ++ makedev vbi$minor c $major `math $minor + 224` $video ++ minor=`math $minor + 1` ++ done ++ symlink video video0 ++ symlink vbi vbi0 ++ major=82 ++ minor=0 ++ until [ $minor -gt 1 ] ++ do ++ makedev winradio$minor c $major $minor $video ++ minor=`math $minor + 1` ++ done ++ major=83 ++ makedev vtx c $major 0 $video ++ makedev vttuner c $major 16 $video ++ ;; ++ i2c) ++ major=`Major i2c 89` || continue ++ minor=0 ++ until [ $minor -gt 1 ] # tell me if 1 is wrong... ++ do ++ makedev i2c-$minor c $major $minor $private ++ minor=`math $minor + 1` ++ done ++ ;; ++ tlk) ++ major=102 ++ minor=0 ++ until [ $minor -gt 3 ] # tell me if 3 is wrong... ++ do ++ makedev tlk$minor c $major $minor $video ++ minor=`math $minor + 1` ++ done ++ ;; ++ srnd) ++ makedev srnd0 c 110 0 $video ++ makedev srnd1 c 110 1 $video ++ ;; ++ fgrab) ++ makedev mmetfgrab c 40 0 $video ++ makedev wvisfgrab c 26 0 $video ++ for i in 0 1 # more? ++ do ++ makedev iscc$i c 93 $i $video ++ makedev isccctl$i c 93 `math $i + 128` $video ++ done ++ for i in 0 1 # more? ++ do ++ makedev dcxx$i c 94 $i $video ++ done ++ ;; ++ sg|sg-all) + major=`Major sg 21` +- for unit in a b c d e f g h ++ for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + do +- minor=`index abcdefgh $unit` +- # minor=`expr abcdefgh : ".*$unit" - 1` +- makedev $arg$unit c $major $minor $scsi ++ makedev sg$unit c $major $unit $scsi ++ done ++ ;; ++ pg) ++ major=`Major pg 97` ++ for unit in 0 1 2 3 ++ do ++ makedev pg$unit c $major $unit $scsi + done + ;; + fd) +@@ -572,15 +1446,34 @@ + symlink stderr fd/2 + ;; + ibcs2) +- major=`Major ibcs2` || continue ++ major=`Major ibcs2 30` || continue + makedev socksys c $major 0 $ibcs2 + symlink nfsd socksys + makedev spx c $major 1 $ibcs2 + symlink X0R null + ;; ++ netlink) ++ major=36 ++ makedev route c $major 0 $private ++ makedev skip c $major 1 $private ++ ;; ++ enskip) ++ major=64 ++ makedev enskip c $major 0 $private ++ ;; ++ ipfilt*) ++ major=95 ++ makedev ipl c $major 0 $private ++ makedev ipnat c $major 1 $private ++ makedev ipstate c $major 2 $private ++ makedev ipauth c $major 3 $private ++ ;; ++ qng) ++ makedev qng c 77 0 $private ++ ;; + apm) +- major=`Major apm_bios` || continue +- makedev $arg c $major 0 $system ++ major=`Major mouse 10` || continue ++ makedev apm_bios c $major 134 $mouse + ;; + dcf) + major=`Major dcf` || continue +@@ -590,6 +1483,11 @@ + major=`Major hw` || continue + makedev helloworld c $major 0 $public + ;; ++ ipsec) ++ # For the Free S/WAN (http://www.xs4all.nl/~freeswan/) ++ # implementation of IPSEC ++ makedev ipsec c 36 10 $ipsec ++ ;; + update) + if [ ! "$devices" ] + then +@@ -619,7 +1517,6 @@ + create="$create "`cvt $device` + fi + devs=`strip " $devs " $device` +- # devs=`expr "$devs" : "\(.*\) $device"``expr "$devs" : ".* $device\(.*\)"` + done + exec 3<&- + fi +@@ -637,6 +1534,7 @@ + ;; + *) + echo "$0: don't know how to make device \"$arg\"" >&2 ++ exit 1 + ;; + esac + done +--- makedev-2.3.1.orig/Makefile ++++ makedev-2.3.1/Makefile +@@ -1,14 +1,15 @@ + # $Id: Makefile,v 2.2 1995/05/21 17:45:18 alfie Exp $ + ++BINDIR = $(ROOT)/sbin + DEVDIR = $(ROOT)/dev +-MANDIR = $(ROOT)/usr/man ++MANDIR = $(ROOT)/usr/share/man + MANEXT = 8 + + default: + @echo Nothing to make. + + install: +- install -m 755 MAKEDEV $(DEVDIR) ++ install -m 755 MAKEDEV $(BINDIR) + install -m 644 MAKEDEV.man $(MANDIR)/man$(MANEXT)/MAKEDEV.$(MANEXT) + + clean: +--- makedev-2.3.1.orig/debian/old/README.debian ++++ makedev-2.3.1/debian/old/README.debian +@@ -0,0 +1,95 @@ ++makedev for DEBIAN ++================== ++ ++The /etc/makedev.cfg and /etc/devinfo files are rewritten to fit the ++Debian /dev layout. ++ ++Security : all mouse devices are changed to mode 600. Only serial ++devices are mode 660 root:dialout. It's possible to crash x11 and ++console with writing random bytes to a mouse device. ++ ++Serial console : ++/dev/console should be a symlink to your real console device. ++If it does not exist, or is not a symlink, it will be replaced with a ++symlink console -> tty0. ++ ++This version of makedev will check /dev for tty*/pty* devices, and if ++there are some with the old major number, it will create a ++/etc/rc.boot/makedev script. This will script will change the ++master/slave devices the next time you boot. ++ ++serial devices should be owned by user "uucp" and group "dialout". ++former they were owned by root. new devices are created with uucp as ++owner, but you will have to change old devices to user uucp on your own. ++It's new policy to have all serial devices owned by uucp, but the last ++word in this discussion isn't said... ++ ++some device names have changed. please read ++/usr/doc/makedev/devices.{txt|html} ++ ++the permissions should be secure enough, but if you find any bugs, or ++unfounded hard permissions, please let me know (i don't know much about ++the right permissions for devices, i yust used the value, everybody else ++was using, and made read & write only available for root, whenever i ++found nothing better. ++ ++/dev/console is now a symlink to /dev/tty0. for more infomation, please ++look at a new 2.1 linux kernel : Documentation/devices.txt. That is the ++"Linux Allocated Device" paper, the official list of linux devices. ++If your boot console is a serial device, you will have to change that ++symlink. ++ ++MAKEDEV-C will not work with any kernel with mcdx support, if ++/proc/devices contains "Mitsumi CD-ROM". if so, patch ++/usr/src/linux/driver/cdrom/mcdx.c : ++1149c1149 ++< if (unregister_blkdev(MAJOR_NR, "mcdx") != 0) { ++--- ++> if (unregister_blkdev(MAJOR_NR, DEVICE_NAME) != 0) { ++1270c1270 ++< if (register_blkdev(MAJOR_NR, "mcdx", &mcdx_fops) != 0) { ++--- ++> if (register_blkdev(MAJOR_NR, DEVICE_NAME, &mcdx_fops) != 0) { ++ ++ ++about call out devices (/dev/cu*) : ++ ++ /dev/ttySxx devices are fully POSIX-compliant TTY devices. If you ++ are only going to be using one set of tty devices, you should be ++ using /dev/ttySxx. ++ ++ /dev/cuaXX devices are different from /dev/ttySXX in two ways --- ++ first of all, they will allow you to open the device even if ++ CLOCAL is not set and the O_NONBLOCK flag was not given to the ++ open device. This allows programs that don't use the ++ POSIX-mondated interface for opening /dev/ttySxx devices to be ++ able to use /dev/cuaXX to make outgoing phone calls on their modem ++ (cu stands for "callout", and is taken from SunOS). ++ ++ The second way in which /dev/cuaXX differs from /dev/ttySXX is ++ that if they are used, they will trigger a simplistic kernel-based ++ locking scheme: If /dev/ttySXX is opened by one or more processes, ++ then an attempt to open /dev/cuaXX will return EAGAIN. If ++ /dev/cuaXX is opened by one or more processes, then an attempt to ++ open /dev/ttySXX will result the open blocking until /dev/cuaXX is ++ closed, and the carrier detect line goes high. the open blocking ++ until /dev/cuaXX is closed, and the carrier detect line goes high. ++ ++ While this will allow for simple lockouts between a user using a ++ modem for callout and a getty listening on the line for logins, it ++ doesn't work if you need to arbitrate between multiple programs ++ wanting to do dialout --- for example, users wanting to do dialout ++ and UUCP. ++ ++ I originally implemented the cuaXX/ttySXX lockout mechanism back ++ before FSSTND established a standard convention for the use of tty ++ lock files. Now that it's there, people should use the tty lock ++ files and not try using /dev/cuaXX. The only reason why ++ /dev/cuaXX hasn't disappeared yet is for backwards compatibility ++ reasons. -- Theodore Ts'o ++ ++ ++debian has no /dev/cu* devices. But you can create them, if you need ++them. Read devices.txt for details. ++ ++Andreas Jellinghaus , Sun, 13 Apr 1997 21:05:58 +0200 +--- makedev-2.3.1.orig/debian/old/devices.sgml ++++ makedev-2.3.1/debian/old/devices.sgml +@@ -0,0 +1,294 @@ ++ ++ ++
++ ++devices created by makedev ++<author> Andreas Jellinghaus <tt>aj@debian.org</tt> ++<date> version 0.3, based on Linux allocated device 2.1.62 ++<abstract> ++ some devices are created by default, some are left out on boot ++ floppies, other devices are only created on demand and some ++ devices are obsolete or have new names. ++</abstract> ++ ++<sect> batches <p> ++ ++call out devices are not generated by default. however if you need them, ++you can generate them (see below). ++ ++<descrip> ++<tag/generic/all standard batches for normal Linux\/i386 systems. ++ (standard misc devices, ttyS[0-3], mouse, printer, tapes ++ (scsi, qic, qic117), audio, scsi generic, standard disk, cdroms ++ and ttys) ++<tag/generic-m68k/all generic devices for m68k (additional ++ framebuffer, some mouse devices and m68k scsi disk devices are ++ included, ++ but busmouse devices and qic and qic117 are left out). ++<tag/boot-floppy/a subset of generic. (no audio, less ttys) ++<tag/std-hd/standard hard disks (hd[a-h,xd[ab],sd[a-h],ram disk,md,loop) ++<tag/std-cdrom/standard cdroms (scsi, old non-scsi non-atapi cdroms) ++<tag/compatiblity/collection of old devices. It is usefull to remove them, but ++make sure, that you have generated the new ones, and that you know, what ++you are doing ! serial-cu, printer-old, mouse-old, sr-old, ++qic-old, misc-old, sg-old ++<tag/update/special tag : reads \/proc\/devices and generates new devices ++ found there. ++</descrip> ++ ++<sect> Limits (standard devices) <p> ++ ++There are some limits in this version of devinfo : it will only create a ++special number of devices (e.g. ramdisks, hda partitions). If one of ++these limits is unrealistic, please tell me. Most limits have no good ++reason, I just didn't want to create hundreds of devices, so I only ++created a few. If a limit is too low for you : a) please tell me and b) ++modify /etc/devinfo (should be easy). <p> ++ ++<descrip> ++<tag/ramdisks/8 devices ram[0-7] ++<tag/ide harddisks/20 partitions each (devices hd[a-h]) ++<tag/xt harddisks/20 partitions each (devices xd[ab] ++<tag/loopback/8 devices loop[0-7] ++<tag/metadisk/4 devices md[0-3] ++<tag/scsi cdrom/scd: 8 devices scd[0-7] ++<tag/scsi cdrom/scd-all : 16 devices scd[0-15] ++<tag/scsi generic/sg : 8 devices sg[0-7] ++<tag/scsi generic/sg-all : 16 devices sg[0-15] ++<tag/scsi tapes/8 devices st[0-7] ++<tag/mscdex/4 cdrom devices dos_cd[0-3] ++<tag/joysticks/2 devices each js[0-1] djs[0-1] ++<tag/other cdroms/only one device created : sonycd, gscd, optcd, sjcd, ++hitcd, mcd, cdu535, aztcd, cm206cd, bpcd (if there are several cdroms ++possible : please tell me !) ++<tag/serial/default bootdisks and base system will only have ttyS[0-3], ++but you can create all possible devices ttyS[0-63] with "MAKEDEV serial" ++or several additional devices with "MAKEDEV ttyS4 ttyS5 ...". ++</descrip> ++ ++<sect> additional devices <p> ++ ++you can create these devices with "MAKEDEV name" and delete them with ++"MAKEDEV -d name". you can either use the name listed here (this will ++create all possible devices), or individual devices (use the device ++name) e.g. "serial" will create all 64 serial devices ttyS[0-63] but ++"ttyS0" will only create this one. ++ ++<sect1> serial devices <p> ++ ++<descrip> ++<tag/isdn-tty/isdn terminal devices. 8 devices : ttyI[0-7] ++<tag/isdn-tty-all/isdn terminal devices. 64 devices : ttyI[0-63] ++ ++<tag/isdn-ppp/isdn sync ppp network devices. 8 devices : ippp[0-7] ++<tag/isdn-ppp-all/isdn sync ppp network devices. 64 devices : ippp[0-63] ++ ++<tag/isdn-io/isdn raw and control devices. 18 devices : ++ isdn[0-7] isdnctrl[0-7] isdnctrl isdninfo ++<tag/isdn-io-all/isdn raw and control devices. 130 devices : ++ isdn[0-63] isdnctrl[0-63] isdnctrl isdninfo ++ ++<tag/serial-cu/serial callout devices. they are only for compatibility, ++most people don't need them. 64 devices : cua[0-63] ++ ++<tag/isdn-cu/isdn call out devices. they are only for compatibility, ++most people don't need them. 64 devices : cui[0-7] ++<tag/isdn-cu-all/isdn call out devices. they are only for compatibility, ++most people don't need them. 64 devices : cui[0-63] ++ ++<tag/chase{-cu}/devices for chase serial card (append -cu to create ++call out devices). 32 devices ttyH[0-31] (cuh[0-31]) ++ ++<tag/cyclades{-cu}/devices for cyclades serial card (append -cu to create ++call out devices). 32 devices ttyC[0-31] (cub[0-31]) ++ ++<tag/digiboard{-cu}/devices for digiboard serial card (append -cu to create ++call out devices). 32 devices ttyD[0-31] (cud[0-31]) ++ ++<tag/stallion{-cu}/devices for stallion serial card (append -cu to create ++callout devices). 32 devices ttyE[0-31] (cue[0-31]) ++ ++<tag/stallion-mem/devices to access stallion serial card. 4 devices ++stallionmem[0-3] ++ ++<tag/specialix{-cu}/devices for specialix serial card (append -cu to create ++call out devices). 32 devices ttyX[0-31] (cux[0-31]) ++ ++<tag/rockport{-cu}/devices for rockport serial card (append -cu to create ++call out devices). 32 devices ttyR[0-31] (cur[0-31]) ++ ++<tag/riscom{-cu}/devices for riscom serial card (append -cu to create ++call out devices). 32 devices ttyL[0-31] (cul[0-31]) ++ ++<tag/hayes{-cu}/devices for hayes serial card (append -cu to create ++call out devices). 32 devices ttyP[0-31] (cup[0-31]) ++ ++<tag/baycom/devices for baycom radio modem. 32 devices bc[0-31] ++ ++<tag/computone{-cu}/devices for computone intelliport II serial card ++(append -cu to create call out devices). 32 devices ttyF[0-31] ++(cuf[0-31]) ++ ++<tag/computone-ctrl/devices to access computone intelliport II serial ++card. 8 devices ip2ipl[0-3] and ip2stat[0-3] ++ ++<tag/dcbri/spellcaster datacomm\/bri isdn card. 4 devices dcbri[0-3] ++<tag/specialix{-cu}/devices for specialix IO8+ serial card. 32 devices ++ttyW[0-31] (cuw[0-32]) ++<tag/pam{-cu}/devices for PAM Software's mulitmodem boards. 32 devices ++ttyM[0-31] (cum[0-31]) ++</descrip> ++ ++<sect1> misc devices <p> ++ ++<descrip> ++<tag/pty[p-za-e]/master pty devices. 16 devices pty?[0-9a-f] each ++<tag/tty[p-za-e]/slave tty devices. 16 devices pty?[0-9a-f] each ++<tag/floppy-all/generic only includes the fd0 and fd1 devices. this way ++you can generate devices for the 3rd ... 8th floppies. i recommend to ++install fdutils and use MAKEFLOPPIES to create the floppy devices you ++need. 30 devices each fd[0-7]* ++ ++<tag/framebuffer/universal frame buffer (68k,sparc). ++ 22 devices fb0* fb1* ++<tag/other-arch/amigamouse, atarimouse, sunmouse, openprom, kbd ++<tag/double/"double" compressed disk. 16 devices [c]double[0-7] ++<tag/ez[a-d]/syquest ex135 parallel port removable drive. ++ 20 partitions each ++<tag/ed[ab]/mca esdi hard disk. 20 partitions ed?* each ++ ++<tag/sbpcd[234]/2nd,3rd,4th sound blaster cdrom controller. 4 devices sbpcdXX each ++<tag/mscdex/MSCDEX CD-ROM callback support. 4 devices dos_cd[0-3] ++<tag/cm205cd/cm205 cdrom devices (not supported in 2.x). ++ 2 device cm205cd lmscd ++<tag/ad[a-p]/acsi disc\/cdrom (68k\/atari). 16 devices ad?* each ++<tag/gs4500/genius 4500 handheld scanner. 1 device gs4500 ++<tag/slm/atari sm asci laser printer (68k\/atari). 4 devices slm[0-3] ++<tag/ht/ide tape. 2 devices ht0 nht0 ++<tag/z2ram/zorro II ramdisk. 1 device z2ram ++<tag/cfs/coda network file-system. ++ 1 device cfs0 ++<tag/dtlk/DoubleTalk PC speech synthesizer, from RC Systems. 1 device dtlk ++ ++<tag/ibcs2/ibcs2 devices as described in "Linux Allocated Devices". ++you need to create the directory /dev/inet before running makedev. ++ibcs2-unoff has lots more devices (i don't know if all are needed, or ++not. in doubt use ibcs2-unoff). 9 devices (socksys spx nfsd X0R inet/*). ++ ++<tag/ibcs2-unoff/ibcs2 devices as described in the ibcs2 package. you ++need to create the directories "X" and "inet" before creating these ++devices. 74 devices (arp egp ggp icmp ip ipip pup rawip rip tcp udp nfsd ++X0R socksys spx pty[10-47] inet/* X/*) ++ ++<tag/nvram/some special m68k hardware ? 1 device nvram ++ ++<tag/system-sgi/devices for linux/sgi. 5 devices graphics opengl gfx ++input/mouse input/keyboard ++ ++<tag/nb/network block devices. 8 devices nb* ++<tag/ftl/flash translatio layer (FTL) filesystems. max. 16 drives a-p ++with each 15 partitions (like scsi disks sd*). ++<tag/qng/Quantum Noice Generator. 1 device qng ++<tag/at200/Photometrics AT200 CCD camera. 1 device at200 ++<tag/bttv/Brooktree Bt848 frame grabbers. 12 devices bttv[0-3] ++bttvc[0-3] bttv-vbi[0-3] ++<tag/winradio/WiNRADiO communications receiver card. 4 devices ++winradio[0-3] ++<tag/videotext/Teletext/videotext interfaces 2 devices vtx vttuner ++<tag/ihcp/ikon 1011[57] Versatec Greensheet Interface. 2devices ihcp[0-1] ++<tag/shimq/Linux/SGI shared memory input queue. 5 devices shmiq ++qcntl[0-3] ++<tag/sch/SCSI media changer. 8 devices sch[0-7] ++<tag/controla/Sony control-a1 stereo control bus. ++</descrip> ++ ++<sect1> sound <p> ++<descrip> ++<tag/mpu401/mpu401 MIDI data & status ports. ++ 2 devices mpu401{data,stat} ++<tag/tclmidi/tclmidi midi driver. ++ 12 devices midi[0-3] rmidi[0-3] smpte[0-3] ++</descrip> ++ ++<sect1> misc <p> ++<descrip> ++<tag/wvisfgrab/quanta winvision frame grabber. ++ 1 device wvisfrab ++<tag/mmetfgrab/matrox meteor frame grabber. ++ 1 device mmetfgrab ++<tag/ml16p[abc]/ml-16p experimental i\/o board. ++ 20 device ml16p?* each ++<tag/scc/Z8530 HDLC driver. 8 devices scc[0-7] ++<tag/rom/rom\/flash memory card. ++ 32 devices rom[0-7] rrom[0-7] flash[0-7] rflash[0-7] ++<tag/netlink/netlink support. 2 devices route skip ++<tag/mlanai/myricom pci myrinet board. 8 devices mlanai[0-7] ++<tag/yamm/yet another micro monitor. 1 device yamm ++<tag/bdm/bdm interface for remote debugging MC683xx mc. ++ 6 devices pd_bdm[0-2] icd_bdm[0-2] ++<tag/holter/electrocardiognosis holter serial port. ++ 3 devices holter[0-2] ++<tag/dsp56k/dsp56001 digital signal processor. ++ 1 device dsp56k ++<tag/adbus/apple desktop bus. this was disabled, because it clashes with ++ab[b], the second acsi device (m68k/atari acsi disk). ++ 1 device adb ++<tag/firewall/sf firewall package. ++ 1 device firewall ++<tag/plink/sundance plink transputer boards. ++ 12 devices [r]plink[0-3][d] ++<tag/enskip/enskip kernel encryption package ++<tag/yppcpci/yarc powerpc pci coprocessor card ++<tag/capi20/CAPI 2.0 interface. ++ 21 devices capi20 capi20.[01-19] ++<tag/ma16/ma16 numeric accelerator card ++<tag/aps/spellcaster protocol service interface. ++ 7 devices aps* ++<tag/sci/dolphin interconnect solutions' pci-sci bridge. ++ 4 devices SCI\/[0-3] ++</descrip> ++ ++<sect> compatibility <p> ++ ++not all devices have a standard device name shared by all linux ++distributions, and many names have changed in the past. here is a list, ++so you can find new names, create the old devices (if you want), or ++remove them (to get rid of duplicates). ++ ++<descrip> ++<tag/call out devices/cu* devices are not created by default. but you ++can create or remove them : serial-cu chase-cu cyclades-cu digiboard-cu ++stallion-cu specialix-cu isdn-cu rockport-cu riscom-cu hayes-cu ++computone-cu ++<tag/printer-old/parallel port devices, standard name is lp[0-3], not par[0-3] ++<tag/mouse-old/(bus-)mouse devices : logimouse(logibm) psmouse(psaux) ++msmouse(inportbm) atimouse(atibm) jmouse(jbm) ++<tag/sr-old/scsi cdrom devices (now called scd) ++<tag/qic-old/qic streamer devices : nqt qt nqt11 qt11 nqt24 qt24 nqt120 ++qt120 nqt150 qt150 qt-reset ++<tag/misc-old/for standardized names, some devices got renamed. old : ++midi, sbpcd, aztcd0, vcs0, lmscd, ramdisk ++new : midi00, sbpcd0, aztcd, vcs, ram0, cm205cd, ram0 ++<tag/sg-old/scsi generic devices now use numbers (sg[0-7]), not letters ++sg[a-h]) ++<tag/isdn-old/an old version created ipp* devices. this was a typo, they ++are called ippp* ++</descrip> ++ ++i left some links : even if they are for compatibility, removing them ++might break existing software. ++ ++<descrip> ++<tag/isdnctrl/link to "isdnctrl0" ++<tag/mfd0/m68k amiga hd floppy device ++</descrip> ++ ++<sect> note about console and tty0 <p> ++ ++New standard is : /dev/tty0 is a device (char,4,0). ++console should be a symlink : to tty0, or whatever your console is. ++If it is not a symlink, makedev will replace it with a symlink to tty0. ++Someday there will be a kernel managed device /dev/console to handle ++this (it will be char 5 1). ++ ++</article> +--- makedev-2.3.1.orig/debian/changelog ++++ makedev-2.3.1/debian/changelog +@@ -0,0 +1,747 @@ ++makedev (2.3.1-46.2) stable unstable; urgency=low ++ ++ * non-maintainer update ++ * argh, target stable and unstable ++ ++ -- Adam Di Carlo <aph@debian.org> Sun, 15 Oct 2000 14:01:16 -0400 ++ ++makedev (2.3.1-46.1) unstable; urgency=low ++ ++ * non-maintainer update ++ * 'symlink mcdx mcdx0' was reversed (one line patch) ++ ++ -- Adam Di Carlo <aph@debian.org> Sun, 15 Oct 2000 04:36:30 -0400 ++ ++makedev (2.3.1-46) stable unstable; urgency=medium ++ ++ * fix silly symlink loop between ram and ram1, closes: #69475, #69351 ++ * fix similar symlink reversal between scd and sr devices, and make 'sr' ++ a valid target, not just when using 'update', closes: #69500 ++ * change agpart to agpgart as per devices.txt, closes: #69319 ++ * add sg* devices to generic targets that include SCSI, closes: #69231 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 29 Aug 2000 01:13:30 -0600 ++ ++makedev (2.3.1-45) stable unstable; urgency=low ++ ++ * incorporates work done by Martin Schulze <joey@finlandia.infodrom.north.de> ++ with my profound thanks. ++ * Added gscd and cm206cd device files, closes: #69057 ++ * Corrected mcdx drivers, support all five drives, closes: #69058 ++ * Corrected symlink creation (i.e. use symlink() instead of ln -s) ++ * Added /dev/toshiba (Toshiba laptop SMM support), closes: #54729, #59242 ++ * Added sdc and sdd to generic-m68k since they were missing, closes: #61027 ++ * Made joystick devices readable by everybody (closes: Bug#61499) ++ * Added '$opts' whenever $0 aka MAKEDEV gets called, thus `-n' is passed ++ to the child properly, closes: #63159 ++ * Added hyphen `-' between i2c and the number as described by devices.txt, ++ closes: #63523 ++ * Fixed wrong creation of hdi hdj hdk and hdl, closes: #64881 ++ * Added hdc and hdd to generic-powerpc since they were missing, ++ closes: #65852 ++ * Added support for ttyI and cui (ignored) to 'update' target by ++ modifying cvt(), closes: #66838 ++ * Corrected a whole bunch of math errors where a `$' was missing, trying ++ to add 1 to 'minor', closes: #68915 ++ * Fixed /proc/devices-parser to ignore slashes, closes: #31854 ++ * Removed out-dated Replaces, closes: #61256 ++ * Added audioctl, closes: #60755 ++ * Added agpart, closes: #61084 ++ * Adjusted 3dfx to have file mode $video instead of $audio ++ * Added ipmikcs (Intelligent Platform Management) with mode 0600 (mode ++ may be unpracticable), closes: #67431 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 15 Aug 2000 21:52:23 -0600 ++ ++makedev (2.3.1-44) frozen unstable; urgency=low ++ ++ * patch from tausq for a case I missed when converting expr to $(( )), ++ fixes problem creating sbpcd devices. Target frozen since this was ++ marked release-critical. Closes: #63585 ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 6 May 2000 20:24:40 -0600 ++ ++makedev (2.3.1-43) frozen unstable; urgency=low ++ ++ * add invocation of '/sbin/MAKEDEV std' to postinst to ensure key devices ++ have proper owner/group/perms on upgrades, closes: #61367 ++ * replace /dev/MAKEDEV references with /sbin/MAKEDEV references in the ++ postinst ++ * target frozen since broken perms on /dev/tty keeps xterm from working ++ which is very confusing and frustrating on upgrades. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 3 May 2000 14:27:04 -0600 ++ ++makedev (2.3.1-42) frozen unstable; urgency=low ++ ++ * eliminate the use of expr, since it is in /usr, which may not be mounted ++ during system recovery when makedev is often needed. Target frozen since ++ this was tagged release critical, closes: #62925 ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 24 Apr 2000 22:27:18 -0600 ++ ++makedev (2.3.1-41) frozen unstable; urgency=low ++ ++ * Arrange for all scd* devices to have hardlinked sr* counterparts as per ++ devices.txt. Target frozen since this is release critical, closes: #61862 ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Apr 2000 20:01:39 -0600 ++ ++makedev (2.3.1-40) frozen unstable; urgency=low ++ ++ * fix flakey code for discovering proper major numbers for several device ++ types. This broke the raidtools postinst in some cases, which I think ++ makes this worth adding to frozen, even though there's no bug in the BTS ++ about it (problem reported and fixed during an IRC session). There are ++ still a few potential major number problems in MAKEDEV, but they're all ++ for obscure devices that are not in devices.txt, and which I'll therefore ++ probably remove entirely when rewriting makedev for woody. ++ * fix type, smtpe should be smpte, closes: #59061 ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 19 Mar 2000 20:28:30 -0700 ++ ++makedev (2.3.1-39) frozen unstable; urgency=low ++ ++ * add missing major number clause to thinkpad/smapi device, closes: #57381 ++ target frozen since this is clearly release-critical ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 9 Feb 2000 12:07:07 -0700 ++ ++makedev (2.3.1-38) frozen unstable; urgency=low ++ ++ * target frozen since 56724 was tagged release-critical ++ * rework ftape stuff to match 2.2 kernel device definitions, closes: #56724 ++ * add code to create /dev/smapi and symlink it as /dev/thinkpad. This can ++ be called as either smapi or thinkpad. Closes: #54714 ++ * add /dev/radio symlink to radio0, closes: #55649 ++ * update the netlink target to create fwmonitor and the tap* devices, ++ closes: #54772 ++ * add IRDA device support, closes: #47296 ++ ++ -- Bdale Garbee <bdale@gag.com> Thu, 3 Feb 2000 23:51:58 -0700 ++ ++makedev (2.3.1-37) unstable; urgency=low ++ ++ * add openprom entry for Sparc systems, closes: #54296 ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Jan 2000 20:03:00 -0700 ++ ++makedev (2.3.1-36) unstable; urgency=low ++ ++ * fix cyclades target to make 32 instead of 33 devices, and update man page ++ to match what the code does, closes: #51892 ++ * add st0/st1/scd0/scd1 to generic-i386 and generic-alpha to improve the ++ consistency across platforms, closes: #52871 ++ * create an initial generic-arm target, anticipating the need as debian-arm ++ struggles to get ready to release with potato. ++ * update handling of network block devices (nb) so that specifying a single ++ device works as expected. calling for 'nb' will give nb0 and nb1. ++ Closes: #53781 ++ * support digital joysticks (djs) in joystick/js target, closes: #53314 ++ * update to current policy rev, add Build-Depends. ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Jan 2000 02:14:24 -0700 ++ ++makedev (2.3.1-35) unstable; urgency=low ++ ++ * change group of video4linux devices to new group video appearing in ++ base-passwd 3.0.4, closes: 51429 ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 28 Nov 1999 20:00:12 -0700 ++ ++makedev (2.3.1-34) unstable; urgency=low ++ ++ * re-craft 'ida' target the same way we did dac960 to allow the boot-floopies ++ folks to create just one or two cards worth. Closes: #51341 ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 26 Nov 1999 17:54:56 -0700 ++ ++makedev (2.3.1-33) unstable; urgency=low ++ ++ * add usbmouse support to busmice target, closes: #50326 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 16 Nov 1999 03:20:03 -0700 ++ ++makedev (2.3.1-32) unstable; urgency=low ++ ++ * add 'audio' to the targets for generic-i386, closes: #49935 ++ * craft an initial generic-alpha target to make the boot-floppies stuff ++ work right. For now, just clone the i386 target since I have no idea ++ what is really needed... closes: #49934 ++ * add support for creating ramN devices one at a time, closes: #49853 ++ * add target 'consoleonly' that creates the minimum number of devices to ++ support /dev/console, and recraft the 'console' target to use it and then ++ add all the vcs* devices, et al. Closes: #49852 ++ * re-craft 'dac960' target to be a loop around targets dac960.[0-7] so that ++ boot-floppies creators can create just one or two cards worth of devices ++ instead of having to do them all. Closes: #49864 ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 15 Nov 1999 22:38:43 -0700 ++ ++makedev (2.3.1-31) unstable; urgency=low ++ ++ * fixes for major numbers on some oddball CDROM types, needed for boot disks ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 10 Nov 1999 23:58:56 -0700 ++ ++makedev (2.3.1-30) unstable; urgency=low ++ ++ * fill in a few more audio devices, closes: #49107 ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 3 Nov 1999 20:28:54 -0700 ++ ++makedev (2.3.1-29) unstable; urgency=low ++ ++ * the /dev/vcs* handling is correct, closes: #42035 ++ * fix case construct for ht0, closes: #42519 ++ * fix major number determination for several devices, closes: #43560 ++ * add js2, js3 to joystick device creation, but leave owner/group/mode ++ the same as for mice until/unless some more compelling argument is ++ presented, closes: #43790 ++ * improve consistency of vcs device creation, making vcs0 and vcsa0, with ++ symlinks for vcs and vcsa, closes: #45698 ++ * add support for /dev/3dfx, closes: #48734 ++ * /dev/sr* is obsolete, use /dev/scd*, closes: #32723 ++ * RH 2.5 was merged as of 2.3.1-24, closes: #45153 ++ * FHS compliance ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 30 Oct 1999 16:53:32 -0600 ++ ++makedev (2.3.1-28) unstable; urgency=medium ++ ++ * /o\ oops... -27 was broken badly. Close 42355, 42359, 42361. ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 3 Aug 1999 02:38:06 -0600 ++ ++makedev (2.3.1-27) unstable; urgency=medium ++ ++ * fix loop's major number, closes 38559. ++ * fix group of scd* to be cdrom, not disk. Closes 41227, 41812. ++ * add vbi symlink, closes 39406 ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 2 Aug 1999 00:59:19 -0600 ++ ++makedev (2.3.1-26) unstable; urgency=medium ++ ++ * fix another syntax error introduced in -25... /o\ ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 29 May 1999 03:12:32 -0600 ++ ++makedev (2.3.1-25) unstable; urgency=medium ++ ++ * fix *ugly* typos introduced in -24, closes 38489, 38465. ++ * update MAKEDEV to install the mouse -> sunmouse link in generic-sparc, ++ in addition to making it in the postinst if needed. Closes 38432. ++ * have MAKEDEV exit with error 1 if we hit a "don't know how to make device" ++ situation. I'm a bit concerned about this since it *might* break a ++ package postinst somewhere. However, it is clearly the right thing to do ++ on a purely conceptual level. Closes 29974. ++ * add support for Free S/WAN (IPSEC) device, closes 38372. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 26 May 1999 14:00:29 -0600 ++ ++makedev (2.3.1-24) unstable; urgency=low ++ ++ * fold in patch from Espy to provide all the functionality of the RedHat ++ makedev 2.5. Leave our version number as 2.3.1-XX for now, since we're ++ not actually cleanly derived from the 2.5 RedHat bits. Closes 37795, 28616. ++ * make 'scd' act like 'scd-all', closes 37071 ++ * patch for postinst typo, closes 37612 ++ * move MAKEDEV to /sbin, create an init.d fragment to put a symlink in the ++ /dev directory at boot time. This should allow devfs to do its thing, ++ closing 37795, 33025. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 26 May 1999 14:00:29 -0600 ++ ++makedev (2.3.1-23) stable unstable; urgency=low ++ ++ * fix problems with st* and adb pointed out by Hartmut ++ ++ -- Bdale Garbee <bdale@gag.com> Thu, 15 Apr 1999 08:39:39 -0600 ++ ++makedev (2.3.1-22) unstable; urgency=low ++ ++ * add 'hamradio' as a target, which is a macro for the new scc[0-7] and ++ bc[0-3] targets, closes 34773. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Apr 1999 11:55:46 -0600 ++ ++makedev (2.3.1-21) stable unstable; urgency=low ++ ++ * make /dev/mouse a symlink to /dev/sunmouse on sparc, closes 35616 ++ * have postinst create audio devices, closes 35646 ++ * also create [alm] suffix versions for st* devices, closes 33041 ++ * add support for hd[ijkl]... noticed while investigating bug 33798 ++ * use the same owner/group/perms for nvram that we use for kmem, closes 34111 ++ * add loop to the std device set, closes 34899 ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Apr 1999 11:13:47 -0600 ++ ++makedev (2.3.1-20) stable unstable; urgency=medium ++ ++ * release-critical fixes from Hartmut for powerpc, closes 34004 ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 10 Mar 1999 07:51:08 -0700 ++ ++makedev (2.3.1-19) frozen unstable; urgency=medium ++ ++ * fix identification of 'sg' in update, closes the part of 33752 (grave) ++ that I can duplicate on i386 in -18 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 23 Feb 1999 07:44:30 -0700 ++ ++makedev (2.3.1-18) frozen unstable; urgency=medium ++ ++ * as requested by Wichert, have the postinst force /dev/kmem owner, group, ++ and permissions since this is a security issue, closes 33703. ++ * another patch needed for m68k slink boot floppies from Michael Schmitz ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 22 Feb 1999 22:56:47 -0700 ++ ++makedev (2.3.1-17) frozen unstable; urgency=low ++ ++ * Wichert points out that /dev/kmem doesn't need to be group writeable. ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 20 Feb 1999 16:12:29 -0700 ++ ++makedev (2.3.1-16) frozen unstable; urgency=medium ++ ++ * apply patch for m68k that is release-critical for slink ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 19 Feb 1999 20:07:05 -0700 ++ ++makedev (2.3.1-15) frozen unstable; urgency=medium ++ ++ * fix major number for sunmouse as per Eric Delaunay, closes 33425 ++ * tighten default permission on mouse and joystick devices, closes 32378 ++ * change audio devices to root.audio 660, closes 32849 ++ * apply patch from Eric Delaunay to fix problem with scsi devices and 2.2 ++ kernels, closes 32999 ++ * target 'frozen' since the sunmouse fix at the very least should be in ++ slink... ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 17 Feb 1999 16:53:41 -0700 ++ ++makedev (2.3.1-14) frozen unstable; urgency=low ++ ++ * additions from Eric Delaunay needed for sparc frozen, closes 32458 ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 27 Jan 1999 13:54:31 -0700 ++ ++makedev (2.3.1-13) frozen unstable; urgency=low ++ ++ * make random/urandom available separately, not just in std, closes 32145 ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 19 Jan 1999 21:27:14 -0700 ++ ++makedev (2.3.1-12) frozen unstable; urgency=low ++ ++ * add random/urandom to the std target, closes 31562 and 29193 ++ * update manpage to indicate the manpage is out of date, I need to make a ++ chunk of time at some point to give it a thorough review/update. ++ * don't make /dev/cua*, fix group on /dev/ttyS*, closes 30867 ++ * change postinst to use syntax that isn't bash-specific, closes 18807 ++ and 30849 ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 9 Jan 1999 00:39:25 -0700 ++ ++makedev (2.3.1-11) frozen unstable; urgency=low ++ ++ * allow 16 sd's instead of 8, as the kernel does. closes 30555. ++ * create hdc and hdd in generic-i386, and create 20 partitions per hd ++ instead of 4, closes 30522. ++ * go back (forward?) to using 'u' instead of '[DHE]' in fd entries, ++ closes 30438. ++ * add 'fb' to both the generic-i386 and generic-powerpc clauses, closes ++ 29228 ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 12 Dec 1998 08:10:22 -0700 ++ ++makedev (2.3.1-10) frozen unstable; urgency=low ++ ++ * instead of having the postinst explicitly link /dev/console, have it ++ call MAKEDEV if console doesn't exist. Update MAKEDEV to know how to ++ link it for 2.0 kernels and prior, and create the explicit device for ++ 2.1 and later running kernels. Building this based on running kernel ++ revision doesn't feel clean, but I see no better way. ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 18:49:30 -0700 ++ ++makedev (2.3.1-9) frozen unstable; urgency=low ++ ++ * fix postinst to cd to /dev so that devices don't end up in /, now that ++ we don't do the cd in MAKEDEV itself ++ * move 'generic' to 'generic-i386', and have 'generic' use dpkg to determine ++ which generic-<arch> to use... this paves the way for fixing support for ++ other architectures. ++ * Several changes per drow on IRC: ++ change MAXVT from 8 to 63 ++ change sd[ab] to create 15 instead of 8 subdevices ++ fix char->block on one scd instance ++ diffs to add support for powerpc machines ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 18:49:30 -0700 ++ ++makedev (2.3.1-8) frozen unstable; urgency=low ++ ++ * add support for ram0 to the ram* list (0 was omitted), part of 28933. ++ * device 'rtc' was part of 'misc', give it a top-level entry too to reduce ++ possible confusion. Part of 28933. ++ * add an entry for 'initrd', closes 28933 (slink release-critical). ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 10:18:37 -0700 ++ ++makedev (2.3.1-7) frozen unstable; urgency=low ++ ++ * now that MAKEDEV is a script, this can be an 'all' package instead of ++ an 'any'. Thanks to Hartmut Koptein for pointing this out. ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 6 Nov 1998 11:42:58 -0700 ++ ++makedev (2.3.1-6) frozen unstable; urgency=low ++ ++ * add ttyS entry so update works with recent 2.1 kernels ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 2 Nov 1998 21:47:34 -0700 ++ ++makedev (2.3.1-5) frozen unstable; urgency=low ++ ++ * fix typo affecting fb devices, closes 28742 ++ * fix syntax used for wildcarded devices, part of closing 28769 ++ * fix error in minor numbers for isdn-ippp, part of closing 28769 ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 1 Nov 1998 23:09:45 -0700 ++ ++makedev (2.3.1-4) frozen unstable; urgency=low ++ ++ * add support for additional scd and sg devices, closes 28029. ++ * change device names for busmice back to what we used in makedev-1.*, which ++ is also what the kernel documentation uses. Closes 28143. ++ * add support for various devices in contemporary kernels, closes 27720. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 28 Oct 1998 23:41:58 -0700 ++ ++makedev (2.3.1-3) unstable; urgency=low ++ ++ * use 'dialout' instead of 'serial' to select owner/group/perms for ISDN ++ devices, closes 27536 ++ * use 'dialout' as group for serial devices instead of 'uucp' to be ++ compatible with prior Debian makedev packages. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 7 Oct 1998 22:50:36 -0600 ++ ++makedev (2.3.1-2) unstable; urgency=low ++ ++ * fix scd-all and sg-all entry points. The latter is just an alias for 'sg', ++ but the former was genuinely missing. Switch sg devices to numeric suffix ++ to comply with kernel's devices.txt. Closes 27490. ++ * close 26586, since I'm pretty sure it's a weirdy not caused by the package. ++ * add ISDN devices, closes 26971. ++ * add cfs0 for CODA, closes 23815. ++ ++ -- Bdale Garbee <bdale@gag.com> Tue, 6 Oct 1998 00:33:59 -0600 ++ ++makedev (2.3.1-1) unstable; urgency=low ++ ++ * New upstream version. This is a *significant* change! ++ This is a move (back?) from the short-lived makedev that depended on a ++ non-free parser to the one that is just a shell script. We will now be ++ more like other Linux distributions, no longer depending on a non-free ++ hunk of code to build the makedev package, and some porting and other ++ issues will get better. ++ * With the major change in upstream code, several bugs are not relevant ++ any more. Therefore, close 12949, 18037, 18807, 20665, 22648, 22868, ++ 23771, 23898, 24477, 24572, 25660, 25840, 26058. ++ * add support for /dev/ptmx, built as part of pty*, closes 23612. ++ * add support for /dev/ed[ab], closes 23887. ++ ++ -- Bdale Garbee <bdale@gag.com> Sun, 6 Sep 1998 21:21:32 -0600 ++ ++makedev (1.6-32) frozen unstable; urgency=medium ++ ++ * serial devices now owned by root.dialout, closes 22297 (important) ++ * tape devices now owned by root.tape, closes 11910 ++ * be explicit about which 'ls' we're calling, closes 22225 ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 22 May 1998 23:52:58 -0600 ++ ++makedev (1.6-31) unstable; urgency=low ++ ++ * add powerpc support, closes 21949 ++ * lose the menu entry ++ ++ -- Bdale Garbee <bdale@gag.com> Sat, 2 May 1998 01:29:06 -0600 ++ ++makedev (1.6-30) unstable; urgency=low ++ ++ * change from debmake to debhelper ++ * fix errors and warnings reported by lintian ++ * deliver devices.sgml instead of trying to build the .txt and .html files, ++ closes bug 16953 ++ ++ -- Bdale Garbee <bdale@gag.com> Mon, 9 Feb 1998 22:31:43 -0700 ++ ++makedev (1.6-29) unstable; urgency=low ++ ++ * add arpd device, on request of Elie Rosenblum <erosenbl@nyx.net>. ++ ++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Jan 1998 09:42:14 -0700 ++ ++makedev (1.6-28) unstable; urgency=low ++ ++ * new maintainer ++ ++ -- Bdale Garbee <bdale@gag.com> Fri, 5 Dec 1997 23:22:57 -0700 ++ ++makedev (1.6-27) unstable; urgency=low ++ ++ * changed /dev/console handling. ++ * updated devinfo to kernel 2.1.62 device list. ++ * changed all device with group "sys" to group "root". ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sat, 8 Nov 1997 11:56:18 +0100 ++ ++makedev (1.6-26) unstable; urgency=low ++ ++ * fixed bug #13787 : amigamouse1 was not corrected by postinst. ++ * fixed ad devices. ++ * added nvram device, added ad* to std-hd-m68k, added ttyS4 and ttyS6 ++ to m68k boot-floppies and m68k generic ++ ++ -- Andreas Jellinghaus <aj@debian.org> Thu, 16 Oct 1997 20:09:14 +0200 ++ ++makedev (1.6-25) unstable; urgency=low ++ ++ * bug #9077 is obsolete (kernel bug, fixed in kernel). ++ * libc6 release : closes bugs #12791 and #13122. ++ * fixed bug #12158 : added sr* and sg* devices. ++ * fixed bug #12385 : wrong standard number. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Fri, 19 Sep 1997 16:12:32 +0200 ++ ++makedev (1.6-24) unstable; urgency=low ++ ++ * removed support for old floppy devices. ++ * only create generic floppy devices. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 10 Sep 1997 10:31:53 +0200 ++ ++makedev (1.6-23) unstable; urgency=low ++ ++ * renamed isdn batches : isdn-xx is 8 devices, isdn-xx-all are 64 ++ devices (isdn-io, isdn-tty, isdn-ippp, isdn-cu). ++ * increased numer to 5500 devices. (makedev is getting too large). ++ ++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:40:11 +0200 ++ ++makedev (1.6-22) unstable; urgency=low ++ ++ * bugfix with cvstree (i forgot to commit befor tagging :-() ++ ++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:30:08 +0200 ++ ++makedev (1.6-21) unstable; urgency=low ++ ++ * bugfix : out of memory. aarrgg : makedev has fixed size tables. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:28:24 +0200 ++ ++makedev (1.6-20) unstable; urgency=low ++ ++ * corrected problem with my own cvs tree ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 7 Sep 1997 16:54:10 +0200 ++ ++makedev (1.6-19) unstable; urgency=low ++ ++ * changed /dev/full to mode 0622 (0666 was a security hole, as ++ discussed on linux-kernel). ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 7 Sep 1997 16:22:27 +0200 ++ ++makedev (1.6-18) unstable; urgency=low ++ ++ * added isdn-*-small devices (only 8 devices, not 64). ++ ++ -- Andreas Jellinghaus <aj@debian.org> Fri, 22 Aug 1997 12:57:20 +0200 ++ ++makedev (1.6-17) unstable; urgency=low ++ ++ * close bug 6541 (missing audio device) : not reproduceable ++ * generate random and urandom, if missing (bug #12134) ++ * enabled makedev to create more sg* and sr* devices (bug #12158) ++ * changed doubletalkt to dtlk as requested ++ * sd[a-h]16 removed (bug, sda16 = sdb, scsi only supports 15 ++ partitions) ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 17 Aug 1997 19:19:33 +0200 ++ ++makedev (1.6-16) stable unstable; urgency=low ++ ++ * security bug fixed : all mouse devices are now mode 600. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 30 Jul 1997 10:31:04 +0200 ++ ++makedev (1.6-15) unstable; urgency=low ++ ++ * ibcs2 removed from generic set. revised ibcs2-unoff. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Tue, 29 Jul 1997 13:13:43 +0200 ++ ++makedev (1.6-14) unstable; urgency=low ++ ++ * bug in postinst : type "MAKDEV" and "/dev/tty0" instead of "tty0" (#11441) ++ * stable version (libc5 compiled) for isdnutils ++ ++ -- Andreas Jellinghaus <aj@debian.org> Fri, 25 Jul 1997 10:12:14 +0200 ++ ++makedev (1.6-13) unstable; urgency=low ++ ++ * fixed menu entry (thanks to Abdallah Chatila <acha@poboxes.com>) ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 9 Jul 1997 21:33:55 +0200 ++ ++makedev (1.6-12) unstable; urgency=low ++ ++ * bug fix (changed doubletalk to class audio). ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 9 Jul 1997 09:45:38 +0200 ++ ++makedev (1.6-11) unstable; urgency=low ++ ++ * Fixed isdn devices (ippp were missing). ++ * No longer create isdn device as default (that is done by isdnutils). ++ * Added doubletalk device. Added more ibcs2 stuff. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Tue, 8 Jul 1997 19:04:45 +0200 ++ ++makedev (1.6-10) unstable stable; urgency=low ++ ++ * fixed console device, added documentation. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 25 Jun 1997 13:20:46 +0200 ++ ++makedev (1.6-9) unstable stable; urgency=low ++ ++ * Added comment about cua devices. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Tue, 24 Jun 1997 09:21:20 +0200 ++ ++makedev (1.6-8) unstable stable; urgency=low ++ ++ * changed /dev/console to be a symlink to /dev/tty0. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 22 Jun 1997 21:42:35 +0200 ++ ++makedev (1.6-7) unstable stable; urgency=low ++ ++ * fixed bug with possible /dev/console symlink. ++ * fixed bug with not always creating /dev/tty0. (xfree 3.3 need this) ++ ++ -- Andreas Jellinghaus <aj@debian.org> Thu, 19 Jun 1997 22:38:46 +0200 ++ ++makedev (1.6-6) unstable; urgency=low ++ ++ * fixed documentation (thanks to David Welton <davidw@efn.org>) ++ * patch for m68k from frank neumann included ++ ++ -- Andreas Jellinghaus <aj@debian.org> Mon, 9 Jun 1997 15:45:00 +0200 ++ ++makedev (1.6-5) unstable; urgency=low ++ ++ * libc6 release ++ * added postinst script to change tty/pty devices to new major ++ numbers (the next time you boot). ++ * changed all serial devices from root.dialout to uucp.dialout ++ * added generic-ARCH batches ++ * changed (u)random permissions from 444 to 644 ++ * corrected mcd/mcdx handling. ++ * small bugfix in manpages. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Thu, 24 Apr 1997 19:12:58 +0200 ++ ++makedev (1.6-4) unstable frozen; urgency=low ++ ++ * fixed manpage, added generic-m68k, added mfd0, changed framebuffer ++ create both : fb[01] and fb[01]current, changed framebuffer ++ class to mode 664. disabled adb (apple desktob bus). ++ this fixes bug #9053 ++ * fixed mitsumi cdrom detection. ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 23 Apr 1997 16:23:50 +0200 ++ ++makedev (1.6-3) unstable frozen; urgency=low ++ ++ * bug fixed : st?l devices (nor st?1). ++ * only create fd0 and fd1 with generic ++ * seperated old device names to "-old" groups ++ * not generating cm205cd by default ++ * "boot-floppy" added with less devices ++ * documentation in sgml and txt format ++ ++ -- Andreas Jellinghaus <aj@debian.org> Wed, 16 Apr 1997 12:58:56 +0200 ++ ++makedev (1.6-2) unstable frozen; urgency=high ++ ++ * new maintainer Andreas Jellinghaus <aj@debian.org> ++ * rewrote devinfo (according to linux allocated devices, 2.0.30,2.1.31 ++ * this fixes bug #8396 (isdn devices) ++ * this fixes bug #8399 (don't generate cu* devices) ++ * this fixes bug #7144 (device for goldstar cdrom - gscd) ++ * this fixes bug #8173 (new names for floppy devices fd*) ++ * this fixes bug #8068 (hd[efgh] devises added : now ide[0123]) ++ (this includes: renamed all floppy device (bug #8173), ++ * this fixes bug #3493 (isdn devices) ++ * this fixes bug #5542 (ttyS* group dialout, cu* not generated) ++ * this fixes bug #6926 (loop back devices corrected) ++ * this fixes bug #6983 (loop back devices creatable) ++ * this fixes bug #7038 (mcd device creatable (only one)) ++ * this fixes bug #7754 (sr* devices are created for compatibility) ++ * this fixes parts of bug #7783 (only new tty/pty are created) ++ * bug #7755 obsolete (old cat file ? current man page is ok) ++ * bug #8009 obsolete (disks 1997-04-04 are ok) ++ * remove from generic : cua[0-3] lmscd ram sbpcd[9-15] vcs0 ++ added to generic: X0R aztcd beep bpcd cm205cd cm206cd exttrp gscd ++ hd[efgh]* hitcd hwtrap initrd ippp* jbm loop* mcd md* modreq nsfd ++ nst*[1am] optcd ram[0-7] ramdisk relay16 relay8 rtc sd[abcdefgh][9-16] ++ sequence2 sg[0-7] sjcd socksys spx sr[0-7] st*[1am] tpqic* tty[13-63] ++ ttyI[0-63] urandom vcs vcs[13-63] vcsa vcsa[13-63] watchdog ++ (ca. + 600 devices, size + 11 k in a ext2fs) ++ ++ -- Andreas Jellinghaus <aj@debian.org> Sun, 13 Apr 1997 21:06:14 +0200 ++ ++makedev (1.6-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Bruce Perens <bruce@pixar.com> Wed, 19 Mar 1997 20:40:17 -0800 ++ ++makedev (1.5-4) unstable; urgency=low ++ ++ * Add devices. Increase the maximum size of a batch from 32 to 1024. ++ ++ -- Bruce Perens <bruce@pixar.com> Tue, 17 Dec 1996 20:34:06 -0800 ++ ++makedev (1.5-3) unstable; urgency=low ++ ++ * Make hd[a-d][8-20] and sd[a-h][8-20]. Remove bad empty "omit" from ++ makedev.cfg ++ ++ -- Bruce Perens <bruce@pixar.com> Sun, 8 Dec 1996 09:42:18 -0800 ++ ++makedev (1.5-2) unstable; urgency=low ++ ++ * Change class of ttySn devices to dialout. ++ * Add ISDN. ++ ++ -- Bruce Perens <bruce@pixar.com> Fri, 6 Dec 1996 21:17:12 -0800 ++ ++makedev (1.5-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Bruce Perens <bruce@pixar.com> Wed, 30 Oct 1996 20:36:44 -0800 ++ ++Local variables: ++mode: debian-changelog ++End: +--- makedev-2.3.1.orig/debian/conffiles ++++ makedev-2.3.1/debian/conffiles +@@ -0,0 +1 @@ ++/etc/init.d/makedev +--- makedev-2.3.1.orig/debian/control ++++ makedev-2.3.1/debian/control +@@ -0,0 +1,13 @@ ++Source: makedev ++Section: base ++Priority: required ++Maintainer: Bdale Garbee <bdale@gag.com> ++Build-Depends: debhelper ++Standards-Version: 3.1.1.1 ++ ++Package: makedev ++Architecture: all ++Depends: base-passwd (>= 3.0.4) ++Description: Creates special device files in /dev. ++ The MAKEDEV executable is used to populate the /dev directory with device ++ files. +--- makedev-2.3.1.orig/debian/copyright ++++ makedev-2.3.1/debian/copyright +@@ -0,0 +1,45 @@ ++This package is maintained for Debian by Bdale Garbee, <bdale@gag.com>. ++ ++It was downloaded from ftp.redhat.com, as a source .rpm from the 5.1 release ++tree. ++ ++Copyright: ++ ++No explicit copyright is asserted. Nick Holloway is the earliest author ++recorded in the sourcecode. I queried him for an explicit statement ++regarding the license status of this work, and this is his reply: ++ ++ Date: Tue, 21 Jul 1998 19:57:10 +0100 ++ From: Nick Holloway <Nick.Holloway@alfie.demon.co.uk> ++ Message-Id: <199807211857.TAA19068@alfie.demon.co.uk> ++ To: Bdale Garbee <bdale@gag.com> ++ Subject: Re: makedev license? ++ ++ > I maintain the makedev package for Debian GNU/Linux. I am about to move ++ > from the ill-fated makedev-1.6 to the makedev-2.3.1 derived from your work ++ > by the folks at Redhat. I don't see any evidence of a copyright assertion ++ > or explicit license statement in the source. Your name appears to be the ++ > earliest attached to the current sourcecode. Am I correct in assuming the ++ > GPL? We try to be meticulous about having our base system be compliant ++ > with our Debian Free Software Guidelines, so I'd like an explicit statement. ++ ++ It was never explictly released as GPL, as that would have required ++ including the file COPYING which would have been much larger than the ++ actual MAKEDEV script (I was also too lazy to find out what incantations ++ needed to be made). However, it is intended to be used as anyone sees ++ fit, and the statement under "Copying Policy" is "Freely Redistributable" ++ (see MAKEDEV.lsm from any of the releases I made). ++ ++ The more recent modifications were done by Michael K. Johnson at ++ Redhat. I think the understanding was that he would be taking over the ++ maintenance of MAKEDEV (our discussion took place last September). ++ ++ The only previous history was (according to an old posting to ++ comp.os.linux) that I started with Jim Winstead's script. ++ ++ So, as far as I am concerned, it is consistentwith the Debian FSG. ++ ++ -- ++ `O O' | Home: Nick.Holloway@alfie.demon.co.uk http://www.alfie.demon.co.uk/ ++ // ^ \\ | Work: Nick.Holloway@parallax.co.uk ++ +--- makedev-2.3.1.orig/debian/dirs ++++ makedev-2.3.1/debian/dirs +@@ -0,0 +1,2 @@ ++sbin ++usr/share/man/man8 +--- makedev-2.3.1.orig/debian/init.d ++++ makedev-2.3.1/debian/init.d +@@ -0,0 +1,21 @@ ++#! /bin/sh ++ ++PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin ++ ++set -e ++ ++case "$1" in ++ start) ++ ln -fs /sbin/MAKEDEV /dev/MAKEDEV ++ ;; ++ stop|reload|restart|force-reload) ++ ;; ++ *) ++ N=/etc/init.d/makedev ++ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 ++ echo "Usage: $N {start|stop|restart|force-reload}" >&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 +--- makedev-2.3.1.orig/debian/postinst ++++ makedev-2.3.1/debian/postinst +@@ -0,0 +1,62 @@ ++#!/bin/sh ++ ++set +e ++ ++#DEBHELPER# ++ ++cd /dev ++ ++/sbin/MAKEDEV std ++ ++test -e /dev/console || /sbin/MAKEDEV console ++test -e /dev/tty0 || /sbin/MAKEDEV tty0 ++test -e /dev/random || /sbin/MAKEDEV random ++test -e /dev/urandom || /sbin/MAKEDEV urandom ++test -e /dev/full && chmod 0622 /dev/full ++test -e /dev/audio || /sbin/MAKEDEV audio ++ ++[ ! -f /dev/mouse -a -f /dev/sunmouse ] && ln -s sunmouse mouse ++ ++for A in sda16 sdb16 sdc16 sdd16 sde16 sdf16 sdg16 sdh16 \ ++ ada16 adb16 adc16 add16 ade16 adf16 adg16 adh16 ++do ++ test -e /dev/$A && rm /dev/$A ++done ++ ++for A in logibm psaux inportbm atibm jbm smouse logimouse psmouse \ ++msmouse atimouse jmouse amigamouse atarimouse sunmouse amigamouse1 ++do ++ test -e /dev/$A && chmod 600 /dev/$A ++done ++ ++# fix security hole caused by group-write permissions on kmem ++test -e /dev/kmem && chown root.kmem /dev/kmem && chmod 0640 /dev/kmem ++ ++LIST="" ++ ++for TYPE in tty pty ; do ++ for LETTER in p q r s t u v w x y z a b c d e ; do ++ if [ -e /dev/$TYPE$LETTER"0" ]; then ++ MAJOR="`/bin/ls -l /dev/$TYPE$LETTER"0"|cut -c33-36`" ++ if [ "$MAJOR" = 4 ] ; then ++ LIST="$LIST $TYPE$LETTER" ++ fi ++ fi ++ done ++done ++ ++if [ -n "$LIST" ]; then ++ cat > /etc/rc.boot/makedev << EOF ++#!/bin/sh ++ ++echo "Creating new console devices" ++/sbin/MAKEDEV $LIST ++ ++rm /etc/rc.boot/makedev ; exit 0 ++EOF ++ ++chmod 755 /etc/rc.boot/makedev ++ ++fi ++ ++exit 0 +--- makedev-2.3.1.orig/debian/preinst ++++ makedev-2.3.1/debian/preinst +@@ -0,0 +1,5 @@ ++#!/bin/sh ++ ++rm -f /usr/man/man8/MAKEDEV.8 /usr/man/man8/MAKEDEV-C.8 \ ++ /usr/man/man8/MAKEDEV-C.8.gz ++exit 0 +--- makedev-2.3.1.orig/debian/rules ++++ makedev-2.3.1/debian/rules +@@ -0,0 +1,56 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ -$(MAKE) clean ++ -rm -f debian/devices.txt debian/devices*html ++ dh_clean ++ ++# Build architecture-independent files here. ++binary-indep: build ++ ++# Build architecture-dependent files here. ++binary-arch: build ++# dh_testversion ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ ROOT=debian/tmp $(MAKE) install ++ ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++ dh_installinit ++ dh_installcron ++ dh_installmanpages ++ dh_undocumented ++ dh_installchangelogs ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_suidregister ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++# dh_makeshlibs ++ dh_md5sums ++ dh_builddeb ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary diff --git a/source/a/devs/makedev_2.3.1.hd.diff b/source/a/devs/makedev_2.3.1.hd.diff new file mode 100644 index 000000000..4f5058b23 --- /dev/null +++ b/source/a/devs/makedev_2.3.1.hd.diff @@ -0,0 +1,71 @@ +--- ./MAKEDEV.orig Sun Feb 24 15:46:03 2002 ++++ ./MAKEDEV Sun Feb 24 16:12:18 2002 +@@ -147,7 +147,7 @@ + Character|Block|'') + ;; + *) +- eval "major_$device=$major" ++ # eval "major_$device=$major" + devices="$devices $device" + ;; + esac +@@ -964,7 +964,7 @@ + done + ;; + hd[k-l]) +- major=`Major ide4 57` || continue ++ major=`Major ide5 57` || continue + unit=`suffix $arg hd` + base=`index kl $unit` + base=`math $base \* 64` +@@ -974,6 +974,50 @@ + makedev hd$unit$part b $major $(( $base + $part )) $disk + done + ;; ++ hd[m-n]) ++ major=`Major ide6 88` || continue ++ unit=`suffix $arg hd` ++ base=`index mn $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ hd[o-p]) ++ major=`Major ide7 89` || continue ++ unit=`suffix $arg hd` ++ base=`index op $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ hd[q-r]) ++ major=`Major ide8 90` || continue ++ unit=`suffix $arg hd` ++ base=`index qr $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; ++ hd[s-t]) ++ major=`Major ide9 91` || continue ++ unit=`suffix $arg hd` ++ base=`index st $unit` ++ base=`math $base \* 64` ++ makedev hd$unit b $major $base $disk ++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ++ do ++ makedev hd$unit$part b $major $(( $base + $part )) $disk ++ done ++ ;; + ht0) + major=`Major ht0 37` || continue + # Only one IDE tape drive is currently supported; ht0. diff --git a/source/a/devs/makedev_2.3.1.slack.diff b/source/a/devs/makedev_2.3.1.slack.diff new file mode 100644 index 000000000..8a1998561 --- /dev/null +++ b/source/a/devs/makedev_2.3.1.slack.diff @@ -0,0 +1,19 @@ +--- ./MAKEDEV.orig 2004-05-20 19:27:42.000000000 -0700 ++++ ./MAKEDEV 2004-05-20 19:28:47.000000000 -0700 +@@ -17,14 +17,14 @@ + tty=" root tty 0666" + cons=" root tty 0622" + vcs=" root root 0600" +-dialout=" root dialout 0660" ++dialout=" root uucp 0660" + mouse=" root root 0660" + printer=" root lp 0660" + floppy=" root floppy 0660" + disk=" root disk 0660" + scsi=" root root 0600" + cdrom=" root cdrom 0660" +- tape=" root tape 0660" ++ tape=" root disk 0660" + audio=" root audio 0660" + video=" root video 0660" + ibcs2=" root root 0666" diff --git a/source/a/devs/slack-desc b/source/a/devs/slack-desc new file mode 100644 index 000000000..e8b5d1d5f --- /dev/null +++ b/source/a/devs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +devs: devs (system device files) +devs: +devs: This package creates special files in the /dev directory that +devs: represent your system's hardware, and a tool (/dev/MAKEDEV) for +devs: creating new device files. These files are required to access +devs: hardware on a Linux system. +devs: +devs: +devs: +devs: +devs: diff --git a/source/a/dialog/dialog.SlackBuild b/source/a/dialog/dialog.SlackBuild new file mode 100755 index 000000000..9c9bd3f65 --- /dev/null +++ b/source/a/dialog/dialog.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=dialog +VERSION=${VERSION:-1.1-20080819} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/dialog.smaller.min.height.diff.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --disable-static \ + --enable-nls \ + --with-ncursesw \ + --enable-widec \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Keep the old traditional looknfeel :-) +mkdir -p $PKG/etc +cat samples/slackware.rc > $PKG/etc/dialogrc + +mkdir -p $PKG/bin +mv $PKG/usr/bin/dialog $PKG/bin +( cd $PKG/usr/bin + ln -sf ../../bin/dialog . +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES COPYING README VERSION dialog.lsm \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/a/dialog/dialog.smaller.min.height.diff b/source/a/dialog/dialog.smaller.min.height.diff new file mode 100644 index 000000000..c9a327af3 --- /dev/null +++ b/source/a/dialog/dialog.smaller.min.height.diff @@ -0,0 +1,22 @@ +--- ./checklist.c.orig 2008-06-20 15:58:21.000000000 -0500 ++++ ./checklist.c 2009-04-22 19:00:18.000000000 -0500 +@@ -31,7 +31,7 @@ + + static int list_width, check_x, item_x, checkflag; + +-#define MIN_HIGH (1 + (5 * MARGIN)) ++#define MIN_HIGH 4 + + #define LLEN(n) ((n) * CHECKBOX_TAGS) + #define ItemData(i) &items[LLEN(i)] +--- ./menubox.c.orig 2008-06-19 19:54:16.000000000 -0500 ++++ ./menubox.c 2009-04-22 19:00:07.000000000 -0500 +@@ -35,7 +35,7 @@ + Editing + } Mode; + +-#define MIN_HIGH (1 + (5 * MARGIN)) ++#define MIN_HIGH 4 + + #define INPUT_ROWS 3 /* rows per inputmenu entry */ + diff --git a/source/a/dialog/slack-desc b/source/a/dialog/slack-desc new file mode 100644 index 000000000..8c20026f8 --- /dev/null +++ b/source/a/dialog/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dialog: dialog (display dialog boxes from shell scripts) +dialog: +dialog: Dialog is a program to present a variety of questions or display +dialog: messages using dialog boxes from a shell script. The Slackware +dialog: package management script "pkgtool" uses this, as do various other +dialog: menu-driven console scripts. +dialog: +dialog: Dialog was originally contributed to Slackware by Savio Lam, and has +dialog: been contributed to by many. Dialog is currently maintained by +dialog: Thomas E. Dickey. +dialog: diff --git a/source/a/dosfstools/dosfstools.SlackBuild b/source/a/dosfstools/dosfstools.SlackBuild new file mode 100755 index 000000000..ebe99c68b --- /dev/null +++ b/source/a/dosfstools/dosfstools.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.11 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dosfstools + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf dosfstools-$VERSION +tar xzvf $CWD/dosfstools-$VERSION.src.tar.gz +cd dosfstools-$VERSION +chown -R root:root . +make -j4 || exit 1 + +( cd mkdosfs + mkdir -p $PKG/sbin + cat mkdosfs > $PKG/sbin/mkdosfs + chmod 755 $PKG/sbin/mkdosfs + mkdir -p $PKG/usr/man/man8 + cat mkdosfs.8 | gzip -9c > $PKG/usr/man/man8/mkdosfs.8.gz +) +( cd $PKG/sbin ; rm -f mkfs.msdos ; ln -sf mkdosfs mkfs.msdos ) +( cd dosfsck + cat dosfsck > $PKG/sbin/dosfsck + chmod 755 $PKG/sbin/dosfsck + cat dosfsck.8 | gzip -9c > $PKG/usr/man/man8/dosfsck.8.gz +) +mkdir -p $PKG/usr/doc/dosfstools-$VERSION +cp -a \ + CHANGES README.Atari TODO \ + $PKG/usr/doc/dosfstools-$VERSION +mkdir -p $PKG/usr/doc/dosfstools-$VERSION/mkdosfs +( cd mkdosfs ; cp -a ANNOUNCE COPYING README mkdosfs-ygg-0.3b.lsm $PKG/usr/doc/dosfstools-$VERSION/mkdosfs ) +mkdir -p $PKG/usr/doc/dosfstools-$VERSION/dosfsck +( cd dosfsck ; cp -a CHANGES COPYING README $PKG/usr/doc/dosfstools-$VERSION/dosfsck ) + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/dosfstools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/dosfstools/slack-desc b/source/a/dosfstools/slack-desc new file mode 100644 index 000000000..b070c1e29 --- /dev/null +++ b/source/a/dosfstools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dosfstools: dosfstools (tools for working with FAT filesystems) +dosfstools: +dosfstools: Utilities for creating FAT filesystems (mkdosfs), and for checking +dosfstools: and repairing them (dosfsck). +dosfstools: +dosfstools: +dosfstools: +dosfstools: +dosfstools: +dosfstools: +dosfstools: diff --git a/source/a/e2fsprogs/doinst.sh b/source/a/e2fsprogs/doinst.sh new file mode 100644 index 000000000..c47d7e847 --- /dev/null +++ b/source/a/e2fsprogs/doinst.sh @@ -0,0 +1,18 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/mke2fs.conf.new + +if [ -x /usr/bin/install-info ]; then + install-info --info-dir=/usr/info /usr/info/libext2fs.info.gz 2> /dev/null +fi + diff --git a/source/a/e2fsprogs/e2fsprogs.SlackBuild b/source/a/e2fsprogs/e2fsprogs.SlackBuild new file mode 100755 index 000000000..c57cea4f3 --- /dev/null +++ b/source/a/e2fsprogs/e2fsprogs.SlackBuild @@ -0,0 +1,159 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-1.41.8} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-e2fsprogs + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf e2fsprogs-$VERSION +tar xvf $CWD/e2fsprogs-$VERSION.tar.?z* || exit 1 +cd e2fsprogs-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Disable --uuidd builds the same functionality into libuuid.*. +# It's better that way. +# Keep the included libblkid and libuuid for now, but we'll be using the +# system-wide one from util-linux-ng sooner or later... +# fsck.* will also be moving to u-l-ng +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix= \ + --libdir=/lib${LIBDIRSUFFIX} \ + --bindir=/usr/bin \ + --includedir=/usr/include \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/e2fsprogs-$VERSION \ + --enable-elf-shlibs \ + --enable-libblkid \ + --enable-libuuid \ + --disable-uuidd \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install-libs DESTDIR=$PKG || exit 1 + +# I guess Ted would rather not have this included, so we won't. +# ( cd misc +# make findsuper +# cat findsuper > $PKG/sbin/findsuper +# chmod 0755 $PKG/sbin/findsuper ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Don't clobber an existing config file +mv $PKG/etc/mke2fs.conf $PKG/etc/mke2fs.conf.new + +# Fix up package: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +mv $PKG/lib${LIBDIRSUFFIX}/pkgconfig $PKG/lib${LIBDIRSUFFIX}/*.so \ + $PKG/usr/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + for i in *.so ; do + ln -sf /lib${LIBDIRSUFFIX}/$(readlink $i) $i ; + done +) +( cd $PKG/sbin + rm -f \ + mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev \ + fsck.ext2 fsck.ext3 fsck.ext4dev e2label findfs + ln -sf mke2fs mkfs.ext2 + ln -sf mke2fs mkfs.ext3 + ln -sf mke2fs mkfs.ext4 + ln -sf mke2fs mkfs.ext4dev + ln -sf tune2fs e2label + ln -sf tune2fs findfs + cat << EOF > fsck.ext2 +#!/bin/sh +exec /sbin/e2fsck -C 0 \$* +EOF + chmod 0755 fsck.ext2 + # Why won't symlinks work here? --RW + # Because $0 will always be "fsck.ext2" in that case. --PJV + cp -a fsck.ext2 fsck.ext3 + cp -a fsck.ext2 fsck.ext4 + cp -a fsck.ext2 fsck.ext4dev +) +( cd $PKG/usr/man/man3 + rm -f uuid_generate_random.3 uuid_generate_time.3 + ln -sf uuid_generate.3 uuid_generate_random.3 + ln -sf uuid_generate.3 uuid_generate_time.3 +) +( cd $PKG/usr/man/man8 + rm -f fsck.ext2.8 fsck.ext3.8 mkfs.ext2.8 mkfs.ext3.8 \ + mkfs.ext4.8 mkfs.ext4dev.8 + ln -sf e2fsck.8 fsck.ext2.8 + ln -sf e2fsck.8 fsck.ext3.8 + ln -sf e2fsck.8 fsck.ext4.8 + ln -sf e2fsck.8 fsck.ext4dev.8 + ln -sf mke2fs.8 mkfs.ext2.8 + ln -sf mke2fs.8 mkfs.ext3.8 + ln -sf mke2fs.8 mkfs.ext4.8 + ln -sf mke2fs.8 mkfs.ext4dev.8 +) + +# Compress and link manpages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/e2fsprogs-$VERSION +cp -a \ + COPYING* INSTALL INSTALL.elfbin README* RELEASE-NOTES SHLIBS \ + $PKG/usr/doc/e2fsprogs-$VERSION +chmod 644 $PKG/usr/doc/e2fsprogs-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/e2fsprogs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/e2fsprogs/slack-desc b/source/a/e2fsprogs/slack-desc new file mode 100644 index 000000000..e35c02a2b --- /dev/null +++ b/source/a/e2fsprogs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +e2fsprogs: e2fsprogs (ext2 and ext3 filesystems utilities) +e2fsprogs: +e2fsprogs: Utilities needed to create and maintain ext2 and ext3 filesystems. +e2fsprogs: +e2fsprogs: These utilities were written by Remy Card (the developer and +e2fsprogs: maintainer of the ext2 fs) and Theodore T'so. +e2fsprogs: +e2fsprogs: +e2fsprogs: +e2fsprogs: +e2fsprogs: diff --git a/source/a/ed/ed.SlackBuild b/source/a/ed/ed.SlackBuild new file mode 100755 index 000000000..534ca116d --- /dev/null +++ b/source/a/ed/ed.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=ed +VERSION=${VERSION:-1.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +if [ ! -r $PKG/usr/man/man1/ed.1 ]; then + mkdir -p $PKG/usr/man/man1 + cat doc/ed.1 > $PKG/usr/man/man1/ed.1 +fi + +# Traditional: +( mkdir $PKG/bin + rm $PKG/usr/bin/red + mv $PKG/usr/bin/ed $PKG/bin + cd $PKG/bin + ln -sf ed red + cd $PKG/usr/bin + ln -sf ../../bin/ed . + ln -sf ed red +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/ed/slack-desc b/source/a/ed/slack-desc new file mode 100644 index 000000000..b0121daa5 --- /dev/null +++ b/source/a/ed/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ed: ed (text editor) +ed: +ed: GNU ed is an 8-bit clean, more or less POSIX-compliant implementation +ed: of the standard Unix line editor. These days, full-screen editors +ed: have rendered 'ed' mostly of historical interest. Nonetheless, it +ed: appeals to a handful of aging programmers who still believe that +ed: "Small is Beautiful". +ed: +ed: +ed: +ed: diff --git a/source/a/eject/eject.SlackBuild b/source/a/eject/eject.SlackBuild new file mode 100755 index 000000000..56d1e79fc --- /dev/null +++ b/source/a/eject/eject.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=eject +VERSION=${VERSION:-2.1.5} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 +cd ${PKGNAM} + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING NEWS PORTING PROBLEMS README TODO eject-$VERSION.lsm \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/eject/slack-desc b/source/a/eject/slack-desc new file mode 100644 index 000000000..624b05b7d --- /dev/null +++ b/source/a/eject/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +eject: eject (a tool to eject removable media) +eject: +eject: Eject allows removable media (typically a DVD, CD, floppy disk, tape, +eject: etc.) to be ejected under software control. The command can also +eject: control some multi-disc changers, the auto-eject feature supported by +eject: some devices, and can close the disc tray of some drives. +eject: +eject: The 'eject' program was written by Jeff Tranter. +eject: +eject: +eject: diff --git a/source/a/elvis/elvis.SlackBuild b/source/a/elvis/elvis.SlackBuild new file mode 100755 index 000000000..3bb83ba70 --- /dev/null +++ b/source/a/elvis/elvis.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.2_0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-elvis + +rm -rf $PKG +mkdir -p $TMP $PKG/usr +cd $TMP +rm -rf elvis-$VERSION +tar xjvf $CWD/elvis-$VERSION.tar.bz2 +cd elvis-$VERSION +chown -R root:root . +# Time for a kludge (i.e. don't suggest this kind of thing be +# done as a rule... I don't know why I'm crazy today). +# First we build and install this with a bogus --prefix, and +# then build it again and replace the binaries. +# (to prevent compiling in /tmp/package-elvis/ paths) +./configure \ + --without-x \ + --without-gnome \ + --bindir=$PKG/usr/bin \ + --datadir=$PKG/usr/share/elvis-$VERSION \ + --docdir=$PKG/usr/share/elvis-$VERSION/doc \ + --verbose +make +make install +# Now we make the real binaries: +make clean +./configure \ + --without-x \ + --without-gnome \ + --bindir=/usr/bin \ + --datadir=/usr/share/elvis-$VERSION \ + --docdir=/usr/share/elvis-$VERSION/doc \ + --verbose +make +# And install them: +cat elvis > $PKG/usr/bin/elvis +cat elvtags > $PKG/usr/bin/elvtags +cat ref > $PKG/usr/bin/ref +# Turn off color highlighting by default. I can't imagine editing files like +# that all day... (this coming from the inventor of /etc/(DIR|LS)_COLORS ;-) +cp -a $CWD/elvis.clr* $PKG/usr/share/elvis-$VERSION +chown root:root $PKG/usr/share/elvis-$VERSION/elvis.clr* +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +# Install the man pages: +mkdir -p $PKG/usr/man/man1 +( cd doc + cat ctags.man | gzip -9c > $PKG/usr/man/man1/elvtags.1.gz + cat elvfmt.man | gzip -9c > $PKG/usr/man/man1/elvfmt.1.gz + cat elvis.man | gzip -9c > $PKG/usr/man/man1/elvis.1.gz + cat ref.man | gzip -9c > $PKG/usr/man/man1/ref.1.gz +) +cp -a \ + BUGS COPYING INSTALL README.html \ + $PKG/usr/share/elvis-$VERSION +# If this is actually useful for anything, fill me in on what it's for: +rm -f $PKG/usr/share/elvis-$VERSION/tags +rm -f $PKG/usr/share/elvis-$VERSION/doc/*.man +rm -f $PKG/usr/share/elvis-$VERSION/doc/printdoc.bat + +# Add /usr/bin/ex and /usr/bin/vi symlinks. +( cd $PKG/usr/bin ; ln -sf elvis ex ; ln -sf elvis vi ) +mkdir $PKG/usr/doc +( cd $PKG/usr/doc ; ln -sf /usr/share/elvis-$VERSION . ) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/elvis-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/elvis/elvis.clr b/source/a/elvis/elvis.clr new file mode 100644 index 000000000..6b906afaf --- /dev/null +++ b/source/a/elvis/elvis.clr @@ -0,0 +1,56 @@ +switch gui +case windows +case x11 { +" color normal black on gray90 +" color argument like keyword green or dark green +" color bottom like normal +" color comment italic dark green or light green +" color cursor blue on navyblue +" color fixed gray35 or gray80 +" color function Red4 or pink +" color guide white +" color hexheading gray70 +" color hlsearch boxed +" color keyword bold +" color libt like keyword italic +" color linenumber gray +" color link like formatted underlined blue or light blue +" color number Blue4 or light blue +" color other like keyword +" color prep bold Blue4 or light blue +" color prepquote like string +" color scroll like tool +" color scrollbar like toolbar +" color selection on tan +" color spell on pink +" color status like tool +" color statusbar like toolbar +" color string tan4 or tan1 +" color tool black on gray75 +" color toolbar white on gray40 +" color variable Gray15 or palegoldenrod +} +case vio +case termcap { +" color normal yellow or black +" color char like string +" color comment italic light green or green +" color fixed white or gray +" color function light cyan or cyan +" color hexheading gray +" color hlsearch bold +" color keyword bold white or black +" color libt like keyword +" color linenumber gray +" color link underlined blue or light cyan +" color number light cyan or blue +" color other like keyword +" color prep bold magenta or blue +" color prepquote like string +" color regexp like string +" color ruler blue or light cyan +" color showmode green boxed +" color spell red or light magenta +" color string white or brown +" color variable like normal +} diff --git a/source/a/elvis/elvis.clr.orig b/source/a/elvis/elvis.clr.orig new file mode 100644 index 000000000..d132c6738 --- /dev/null +++ b/source/a/elvis/elvis.clr.orig @@ -0,0 +1,56 @@ +switch gui +case windows +case x11 { + color normal black on gray90 + color argument like keyword green or dark green + color bottom like normal + color comment italic dark green or light green + color cursor blue on navyblue + color fixed gray35 or gray80 + color function Red4 or pink + color guide white + color hexheading gray70 + color hlsearch boxed + color keyword bold + color libt like keyword italic + color linenumber gray + color link like formatted underlined blue or light blue + color number Blue4 or light blue + color other like keyword + color prep bold Blue4 or light blue + color prepquote like string + color scroll like tool + color scrollbar like toolbar + color selection on tan + color spell on pink + color status like tool + color statusbar like toolbar + color string tan4 or tan1 + color tool black on gray75 + color toolbar white on gray40 + color variable Gray15 or palegoldenrod +} +case vio +case termcap { + color normal yellow or black + color char like string + color comment italic light green or green + color fixed white or gray + color function light cyan or cyan + color hexheading gray + color hlsearch bold + color keyword bold white or black + color libt like keyword + color linenumber gray + color link underlined blue or light cyan + color number light cyan or blue + color other like keyword + color prep bold magenta or blue + color prepquote like string + color regexp like string + color ruler blue or light cyan + color showmode green boxed + color spell red or light magenta + color string white or brown + color variable like normal +} diff --git a/source/a/elvis/slack-desc b/source/a/elvis/slack-desc new file mode 100644 index 000000000..f60d350d8 --- /dev/null +++ b/source/a/elvis/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +elvis: elvis (text editor) +elvis: +elvis: Elvis is a text editor. It is intended to be a modern replacement +elvis: for the classic ex/vi editor of UNIX fame. Elvis supports many new +elvis: features, including multiple edit buffers, multiple windows, and a +elvis: variety of display modes. +elvis: +elvis: As elvis is Slackware's default vi, this is a required package. +elvis: +elvis: +elvis: diff --git a/source/a/etc/etc.SlackBuild b/source/a/etc/etc.SlackBuild new file mode 100755 index 000000000..6c708883b --- /dev/null +++ b/source/a/etc/etc.SlackBuild @@ -0,0 +1,50 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=13.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-etc +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_etc.tar.gz +# Fix for ARCH: +sed -i -e "s#/i486-slackware-linux#/${ARCH}-slackware-linux#" etc/ld.so.conf.new +cp -a $CWD/termcap-BSD.gz etc/termcap-BSD.gz +gzip -d --force etc/termcap-BSD.gz +chown root:root etc/termcap-BSD +chmod 644 etc/termcap-BSD +zcat $CWD/nsswitch.conf.gz > $PKG/etc/nsswitch.conf.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/etc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/etc/nsswitch.conf b/source/a/etc/nsswitch.conf new file mode 100644 index 000000000..3d993afcb --- /dev/null +++ b/source/a/etc/nsswitch.conf @@ -0,0 +1,42 @@ +# +# /etc/nsswitch.conf +# +# An example Name Service Switch config file. This file should be +# sorted with the most-used services at the beginning. +# +# The entry '[NOTFOUND=return]' means that the search for an +# entry should stop if the search in the previous entry turned +# up nothing. Note that if the search failed due to some other reason +# (like no NIS server responding) then the search continues with the +# next entry. +# +# Legal entries are: +# +# nisplus or nis+ Use NIS+ (NIS version 3) +# nis or yp Use NIS (NIS version 2), also called YP +# dns Use DNS (Domain Name Service) +# files Use the local files +# [NOTFOUND=return] Stop searching if not found so far +# + +# passwd: files nis +# shadow: files nis +# group: files nis + +passwd: compat +group: compat + +hosts: files dns +networks: files + +services: files +protocols: files +rpc: files +ethers: files +netmasks: files +netgroup: files +bootparams: files + +automount: files +aliases: files + diff --git a/source/a/etc/slack-desc b/source/a/etc/slack-desc new file mode 100644 index 000000000..9d9d9bbd4 --- /dev/null +++ b/source/a/etc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +etc: etc (system configuration files) +etc: +etc: System configuration files. The /etc directory is traditionally the +etc: location where configuration files are found. +etc: +etc: +etc: +etc: +etc: +etc: +etc: diff --git a/source/a/etc/termcap-BSD b/source/a/etc/termcap-BSD new file mode 100644 index 000000000..01094d609 --- /dev/null +++ b/source/a/etc/termcap-BSD @@ -0,0 +1,16470 @@ +######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE +# +# Version 11.0.1 +# $Date: 2000/03/02 15:51:11 $ +# termcap syntax +# +# Eric S. Raymond (current maintainer) +# John Kunze, Berkeley +# Craig Leres, Berkeley +# +# Please e-mail changes to terminfo@thyrsus.com; the old termcap@berkeley.edu +# address is no longer valid. The latest version can always be found at +# <http://www.tuxedo.org/terminfo>. +# +# PURPOSE OF THIS FILE: +# +# This file describes the capabilities of various character-cell terminals, +# as needed by software such as screen-oriented editors. +# +# Other terminfo and termcap files exist, supported by various OS vendors +# or as relics of various older versions of UNIX. This one is the longest +# and most comprehensive one in existence. It subsumes not only the entirety +# of the historical 4.4BSD, GNU, System V and SCO termcap files and the BRL +# termcap file, but also large numbers of vendor-maintained termcap and +# terminfo entries more complete and carefully tested than those in historical +# termcap/terminfo versions. +# +# Pointers to related resources (including the ncurses distribution) may +# be found at <http://www.tuxedo.org/terminfo>. +# +# INTERNATIONALIZATION: +# +# This file uses only the US-ASCII character set (no ISO8859 characters). +# +# This file assumes a US-ASCII character set. If you need to fix this, start +# by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers +# for your character set. \E(A and \E)A enables the British character set +# with the pound sign at position 2/3. +# +# In a Japanese-processing environment using EUC/Japanese or Shift-JIS, +# C1 characters are considered the first-byte set of the Japanese encodings, +# so \E)0 should be avoided in <enacs> and initialization strings. +# +# FILE FORMAT: +# +# The version you are looking at may be in any of three formats: master +# (terminfo with OT capabilities), stock terminfo, or termcap. You can tell +# which by the format given in the header above. +# +# The master format is accepted and generated by the terminfo tools in the +# ncurses suite; it differs from stock (System V-compatible) terminfo only +# in that it admits a group of capabilities (prefixed `OT') equivalent to +# various obsolete termcap capabilities. You can, thus, convert from master +# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if +# you have ncurses `tic -I' is nicer (among other things, it automatically +# outputs entries in a canonical form). +# +# The termcap version is generated automatically from the master version +# using tic -C. This filtering leaves in the OT capabilities under their +# original termcap names. All translated entries fit within the 1023-byte +# string-table limit of archaic termcap libraries except where explicitly +# noted below. Note that the termcap translation assumes that your termcap +# library can handle multiple tc capabilities in an entry. 4.4BSD has this +# capability. Older versions of GNU termcap, through 1.3, do not. +# +# For details on these formats, see terminfo(5) in the ncurses distribution, +# and termcap(5) in the 4.4BSD Unix Programmer's Manual. Be aware that 4.4BSD +# curses has been declared obsolete by the caretakers of the 4.4BSD sources +# as of June 1995; they are encouraging everyone to migrate to ncurses. +# +# Note: unlike some other distributed terminfo files (Novell Unix & SCO's), +# no entry in this file has embedded comments. This is so source translation +# to termcap only has to carry over leading comments. Also, no name field +# contains embedded whitespace (such whitespace confuses rdist). +# +# Further note: older versions of this file were often installed with an editor +# script (reorder) that moved the most common terminal types to the front of +# the file. This should no longer be necessary, as the file is now ordered +# roughly by type frequency with ANSI/VT100 and other common types up front. +# +# Some information has been merged in from terminfo files distributed by +# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below). Much information +# comes from vendors who maintain official terminfos for their hardware +# (notably DEC and Wyse). +# +# A detailed change history is included at the end of this file. +# +# FILE ORGANIZATION: +# +# Comments in this file begin with # - they cannot appear in the middle +# of a terminfo/termcap entry (this feature had to be sacrificed in order +# to allow standard terminfo and termcap syntax to be generated cleanly from +# the master format). Individual capabilities are commented out by +# placing a period between the colon and the capability name. +# +# The file is divided up into major sections (headed by lines beginning with +# the string "########") and minor sections (beginning with "####"); do +# +# grep "^####" <file> | more +# +# to see a listing of section headings. The intent of the divisions is +# (a) to make it easier to find things, and (b) to order the database so +# that important and frequently-encountered terminal types are near the +# front (so that you'll get reasonable search efficiency from a linear +# search of the termcap form even if you don't use reorder). Minor sections +# usually correspond to manufacturers or standard terminal classes. +# Parenthesized words following manufacturer names are type prefixes or +# product line names used by that manufacturers. +# +# HOW TO READ THE ENTRIES: +# +# The first name in an entry is the canonical name for the model or +# type, last entry is a verbose description. Others are mnemonic synonyms for +# the terminal. +# +# Terminal names look like <manufacturer> <model> - <modes/options> +# The part to the left of the dash, if a dash is present, describes the +# particular hardware of the terminal. The part to the right may be used +# for flags indicating special ROMs, extra memory, particular terminal modes, +# or user preferences. +# +# All names should be in lower case, for consistency in typing. +# +# The following are conventionally used suffixes: +# -2p Has two pages of memory. Likewise 4p, 8p, etc. +# -am Enable auto-margin. +# -m Monochrome. Suppress color support +# -mc Magic-cookie. Some terminals (notably older Wyses) can +# only support one attribute without magic-cookie lossage. +# Their base entry is usually paired with another that +# uses magic cookies to support multiple attributes. +# -nam No auto-margin - suppress :am: capability +# -nl No labels - suppress soft labels +# -ns No status line - suppress status line +# -rv Terminal in reverse video mode (black on white) +# -s Enable status line. +# -vb Use visible bell (:vb:) rather than :bl:. +# -w Wide - in 132 column mode. +# If a name has multiple suffixes and one is a line height, that one should +# go first. Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'. +# +# Entries with embedded plus signs are designed to be included through use/tc +# capabilities, not used as standalone entries. +# +# To avoid search clashes, some older all-numeric names for terminals have +# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621). +# All primary names of terminals now have alphanumeric prefixes. +# +# Comments marked "esr" are mostly results of applying the termcap-compiler +# code packaged with ncurses and contemplating the resulting error messages. +# In many cases, these indicated obvious fixes to syntax garbled by the +# composers. In a few cases, I was able to deduce corrected forms for garbled +# capabilities by looking at context. All the information in the original +# entries is preserved in the comments. +# +# In the comments, terminfo capability names are bracketed with <> (angle +# brackets). Termcap capability names are bracketed with :: (colons). +# +# INTERPRETATION OF USER CAPABILITIES +# +# The System V Release 4 and XPG4 terminfo format defines ten string +# capabilities for use by applications, <u0>...<u9>. In this file, we use +# certain of these capabilities to describe functions which are not covered +# by terminfo. The mapping is as follows: +# +# u9 terminal enquire string (equiv. to ANSI/ECMA-48 DA) +# u8 terminal answerback description +# u7 cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6) +# u6 cursor position report (equiv. to ANSI/ECMA-48 CPR) +# +# The terminal enquire string <u9> should elicit an answerback response +# from the terminal. Common values for <u9> will be ^E (on older ASCII +# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals). +# +# The cursor position request (<u7>) string should elicit a cursor position +# report. A typical value (for VT100 terminals) is \E[6n. +# +# The terminal answerback description (u8) must consist of an expected +# answerback string. The string may contain the following scanf(3)-like +# escapes: +# +# %c Accept any character +# %[...] Accept any number of characters in the given set +# +# The cursor position report (<u6>) string must contain two scanf(3)-style +# %d format elements. The first of these must correspond to the Y coordinate +# and the second to the %d. If the string contains the sequence %i, it is +# taken as an instruction to decrement each value after reading it (this is +# the inverse sense from the cup string). The typical CPR value is +# \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals). +# +# These capabilities are used by tac(1m), the terminfo action checker +# (distributed with ncurses 5.0). +# +# TABSET FILES +# +# All the entries in this file have been edited to assume that the tabset +# files directory is /usr/share/tabset, in conformance with the File Hierarchy +# Standard for Linux and open-source BSD systems. Some vendors (notably Sun) +# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset. +# +# No curses package we know of actually uses these files. If their location +# is an issue, you will have to hand-patch the file locations before compiling +# this file. +# +# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL +# +# As the ANSI/ECMA-48 standard and variants take firmer hold, and as +# character-cell terminals are increasingly replaced by X displays, much of +# this file is becoming a historical document (this is part of the reason for +# the new organization, which puts ANSI types, xterm, Unix consoles, +# and vt100 up front in confidence that this will catch 95% of new hardware). +# +# For the terminal types still alive, I'd like to have manufacturer's +# contact data (Internet address and/or snail-mail + phone). +# +# I'm also interested in enriching the comments so that the latter portions of +# the file do in fact become a potted history of VDT technology as seen by +# UNIX hackers. Ideally, I'd like the headers for each manufacturer to +# include its live/dead/out-of-the-business status, and for as many +# terminal types as possible to be tagged with information like years +# of heaviest use, popularity, and interesting features. +# +# I'm especially interested in identifying the obscure entries listed under +# `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal +# wisdom about them gets lost. If you know a lot about obscure old terminals, +# please go to the terminfo resource page, grab the UFO file (ufo.ti), and +# eyeball it for things you can identify and describe. +# +# If you have been around long enough to contribute, please read the file +# with this in mind and send me your annotations. +# +# COPYRIGHTS AND OTHER DELUSIONS +# +# The BSD ancestor of this file had a standard Regents of the University of +# California copyright with dates from 1980 to 1993. +# +# Some information has been merged in from a terminfo file SCO distributes. +# It has an obnoxious boilerplate copyright which I'm ignoring because they +# took so much of the content from the ancestral BSD versions of this file +# and didn't attribute it, thereby violating the BSD Regents' copyright. +# +# Not that anyone should care. However many valid functions copyrights may +# serve, putting one on a termcap/terminfo file with hundreds of anonymous +# contributors makes about as much sense as copyrighting a wall-full of +# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous. +# +# This file deliberately has no copyright. It belongs to no one and everyone. +# If you claim you own it, you will merely succeed in looking like a fool. +# Use it as you like. Use it at your own risk. Copy and redistribute freely. +# There are no guarantees anywhere. Svaha! +# + +######## ANSI, UNIX CONSOLE, AND SPECIAL TYPES +# +# This section describes terminal classes and brands that are still +# quite common. +# + +#### Specials +# +# Special "terminals". These are used to label tty lines when you don't +# know what kind of terminal is on it. The characteristics of an unknown +# terminal are the lowest common denominator - they look about like a ti 700. +# + +dumb|80-column dumb tty:\ + :am:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:sf=^J: +unknown|unknown terminal type:\ + :gn:tc=dumb: +lpr|printer|line printer:\ + :bs:hc:os:\ + :co#132:li#66:\ + :bl=^G:cr=^M:do=^J:ff=^L:le=^H:sf=^J: +glasstty|classic glass tty interpreting ASCII control characters:\ + :am:bs:\ + :co#80:\ + :bl=^G:cl=^L:cr=^M:do=^J:kd=^J:kl=^H:le=^H:nw=^M^J:ta=^I: +vanilla:\ + :bs:\ + :bl=^G:cr=^M:do=^J:sf=^J: + +#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities +# +# See the end-of-file comment for more on these. +# + +# ANSI capabilities are broken up into pieces, so that a terminal +# implementing some ANSI subset can use many of them. +ansi+local1:\ + :do=\E[B:le=\E[D:nd=\E[C:up=\E[A: +ansi+local:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:tc=ansi+local1: +ansi+tabs:\ + :bt=\E[Z:ct=\E[2g:st=\EH:ta=^I: +ansi+inittabs:\ + :it#8:tc=ansi+tabs: +ansi+erase:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J: +ansi+rca:\ + :ch=\E[%+^AG:cv=\E[%+^Ad: +ansi+cup:\ + :cm=\E[%i%d;%dH:ho=\E[H: +ansi+rep:\ + :..rp=%p1%c\E[%p2%{1}%-%db: +ansi+idl1:\ + :al=\E[L:dl=\E[M: +ansi+idl:\ + :AL=\E[%dL:DL=\E[%dM:tc=ansi+idl1: +ansi+idc:\ + :IC=\E[%d@:dc=\E[P:ei=\E6:ic=\E[@:im=\E6: +ansi+arrows:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A: +ansi+sgr|ansi graphic renditions:\ + :mb=\E[5m:me=\E[0m:mk=\E[8m:mr=\E[7m: +ansi+sgrso|ansi standout only:\ + :se=\E[m:so=\E[7m: +ansi+sgrul|ansi underline only:\ + :ue=\E[m:us=\E[4m: +ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim:\ + :md=\E[1m:\ + :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:tc=ansi+sgr:tc=ansi+sgrso:tc=ansi+sgrul: +ansi+sgrdim|ansi graphic renditions; assuming terminal has dim; not bold:\ + :mh=\E[2m:\ + :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;m:tc=ansi+sgr:tc=ansi+sgrso:tc=ansi+sgrul: +ansi+pp|ansi printer port:\ + :pf=\E[4i:po=\E[5i:ps=\E[0i: +ansi+csr|ansi scroll-region plus cursor save & restore:\ + :cs=\E[%i%d;%dr:rc=\E8:sc=\E7: + +# The IBM PC alternate character set. Plug this into any Intel console entry. +# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the +# ROM graphics for control characters such as the diamond, up- and down-arrow. +# This works with the System V, Linux, and BSDI consoles. It's a safe bet this +# will work with any Intel console, they all seem to have inherited \E[11m +# from the ANSI.SYS de-facto standard. +klone+acs|alternate character set for ansi.sys displays:\ + :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\ + :ae=\E[10m:as=\E[11m: + +# Highlight controls corresponding to the ANSI.SYS standard. Most +# console drivers for Intel boxes obey these. Makes the same assumption +# about \E[11m as klone+acs. True ANSI/ECMA-48 would have :se=\E[27m:, +# :ue=\E[24m:, but this isn't a documented feature of ANSI.SYS. +klone+sgr|attribute control for ansi.sys displays:\ + :S2=\E[11m:S3=\E[10m:mb=\E[5m:md=\E[1m:me=\E[0;10m:\ + :mk=\E[8m:mr=\E[7m:\ + :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:\ + :se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:\ + :tc=klone+acs: + +# Highlight controls corresponding to the ANSI.SYS standard. *All* +# console drivers for Intel boxes obey these. Does not assume \E[11m will +# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS +# diamond and arrow characters under curses. +klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m):\ + :as=\E[12m:mb=\E[5m:md=\E[1m:me=\E[0;10m:mk=\E[8m:\ + :mr=\E[7m:\ + :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m:\ + :se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:\ + :tc=klone+acs: + +# KOI8-R (RFC1489) acs (alternate character set) +# From: Qing Long <qinglong@Bolizm.ihep.su>, 24 Feb 1996. +klone+koi8acs|alternate character set for ansi.sys displays with KOI8 charset:\ + :ac=+\020\054\021-\036.^_0\215`\004a\237f\234g\232h\222i\220j\205k\203l\202m\204n\212o\213p\216q\0r\217s\214t\206u\207v\210w\211x\201y\230z\231{\267|\274}L~\225:\ + :ae=\E[10m:as=\E[11m: + +# ANSI.SYS color control. The setab/setaf caps depend on the coincidence +# between SVr4/XPG4's color numbers and ANSI.SYS attributes. Here are longer +# but equivalent strings that don't rely on that coincidence: +# setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +# setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, +# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard. +# They match a subset of ECMA-48. +klone+color|color control for ansi.sys and ISO6429-compatible displays:\ + :Co#8:NC#3:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[37;40m: + +# This is better than klone+color, it doesn't assume white-on-black as the +# default color pair, but many `ANSI' terminals don't grok the <op> cap. +ecma+color|color control for ECMA-48-compatible terminals:\ + :Co#8:NC#3:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[39;49m: + +# Attribute control for ECMA-48-compatible terminals +ecma+sgr|attribute capabilities for true ECMA-48 terminals:\ + :se=\E[27m:ue=\E[24m:\ + :tc=klone+sgr: + +# For comparison, here are all the capabilities implied by the Intel +# Binary Compatibility Standard (level 2) that fit within terminfo. +# For more detail on this rather pathetic standard, see the comments +# near the end of this file. +ibcs2|Intel Binary Compatibility Standard prescriptions:\ + :AL=\E[%dL:DC=\E[%dP:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ + :RA=\E[?7l:RI=\E[%dC:S1=\E=%p1%dg:SA=\E[?7h:SF=\E[%dS:\ + :SR=\E[%dT:UP=\E[%dA:bt=\E[Z:ch=\E[%i%dG:cl=\Ec:\ + :cm=\E[%i%d;%dH:ct=\E[g:cv=\E[%i%dd:ec=\E[%dX:ei=:im=:\ + :rc=\E7:sc=\E7:st=\EH: + +#### ANSI/ECMA-48 terminals and terminal emulators +# +# See near the end of this file for details on ANSI conformance. +# Don't mess with these entries! Lots of other entries depend on them! +# +# This section lists entries in a least-capable to most-capable order. +# if you're in doubt about what `ANSI' matches yours, try them in that +# order and back off from the first that breaks. + +# ansi-mr is for ANSI terminals with ONLY relative cursor addressing +# and more than one page of memory. It uses local motions instead of +# direct cursor addressing, and makes almost no assumptions. It does +# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen. +ansi-mr|mem rel cup ansi:\ + :am:xo:\ + :co#80:li#24:tc=vanilla:tc=ansi+erase:tc=ansi+local1: + +# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but +# beware of screen size problems and memory relative cursor addressing. +ansi-mini|minimum ansi standard terminal:\ + :am:xo:\ + :co#80:li#24:tc=vanilla:tc=ansi+cup:tc=ansi+erase: + +# ansi-mtabs adds relative addressing and minimal tab support +ansi-mtabs|any ansi terminal with pessimistic assumptions:\ + :it#8:\ + :ta=^I:tc=ansi+local1:tc=ansi-mini: + +# ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL +# +# The following is an entry for the full ANSI 3.64 (1977). It lacks +# padding, but most terminals using the standard are "fast" enough +# not to require any -- even at 9600 bps. If you encounter problems, +# try including the padding specifications. +# +# Note: the :as: and :ae: specifications are not implemented here, for +# the available termcap documentation does not make clear WHICH alternate +# character set to specify. ANSI 3.64 seems to make allowances for several. +# Please make the appropriate adjustments to fit your needs -- that is +# if you will be using alternate character sets. +# +# There are very few terminals running the full ANSI 3.64 standard, +# so I could only test this entry on one verified terminal (Visual 102). +# I would appreciate the results on other terminals sent to me. +# +# Please report comments, changes, and problems to: +# +# U.S. MAIL: Hugh Hansard +# Box: 22830 +# Emory University +# Atlanta, GA. 30322. +# +# USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh. +# +# (Added vt100 :rc:,:sc: to quiet a tic warning --esr) +ansi77|ansi 3.64 standard 1977 version:\ + :am:bs:mi:\ + :co#80:it#8:li#24:\ + :al=5*\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=5*\E[M:\ + :do=\E[B:ei=\E[4l:ho=\E[H:im=\E[4h:k1=\EOP:k2=\EOR:k4=\EOS:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +# Procomm and some other ANSI emulations don't recognize all of the ANSI- +# standard capabilities. This entry deletes :UP:, :RI:, :DO:, :LE:, and +# <vpa>/<hpa> capabilities, forcing curses to use repetitions of :up:, +# :nd:, :do: and :le:. Also deleted :IC: and :ic:, as QModem up to +# 5.03 doesn't recognize these. Finally, we delete :rp: and :sr:, which seem +# to confuse many emulators. On the other hand, we can count on these programs +# doing :ae:/:as:/:sa:. Older versions of this entry featured +# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under +# ANSI.SYS influence. +# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995 +pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode):\ + :am:bs:mi:ms:\ + :co#80:it#8:li#24:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:dc=\E[P:dl=\E[M:do=\E[B:\ + :ho=\E[H:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=\E[D:nd=\E[C:sf=^J:st=\EH:ta=^I:up=\E[A:\ + :tc=klone+sgr-dumb: +pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode):\ + :li#25:tc=pcansi-m: +pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode):\ + :li#33:tc=pcansi-m: +pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode):\ + :li#43:tc=pcansi-m: +# The color versions. All PC emulators do color... +pcansi|ibm-pc terminal programs claiming to be ansi:\ + :tc=klone+color:tc=pcansi-m: +pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines:\ + :li#25:tc=pcansi: +pcansi-33|pcansi33|ibm-pc terminal programs with 33 lines:\ + :li#33:tc=pcansi: +pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines:\ + :li#43:tc=pcansi: + +# ansi-m -- full ANSI X3.64 with ANSI.SYS-compatible attributes, no color. +# If you want pound signs rather than dollars, replace `B' with `A' +# in the <s0ds>, <s1ds>, <s2ds>, and <s3ds> capabilities. +# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995 +ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes:\ + :5i:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :cb=\E[1K:ch=\E[%i%dG:ct=\E[2g:cv=\E[%i%dd:ec=\E[%dX:ei=:\ + :im=:kB=\E[Z:kI=\E[L:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:\ + :nw=\r\E[S:pf=\E[4i:po=\E[5i:..rp=%p1%c\E[%p2%{1}%-%db:\ + :s0=\E(B:s1=\E)B:s2=\E*B:s3=\E+B:ta=\E[I:\ + :tc=pcansi-m: + +# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in +# standard terminfo. Assumes ANSI.SYS-compatible attributes and color. +# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995 +ansi|ansi/pc-term compatible with color:\ + :u6=\E[%i%d;%dR:u7=\E[6n:..u8=\E[?%[;0123456789]c:\ + :u9=\E[c:\ + :tc=ecma+color:tc=klone+sgr:tc=ansi-m: + +# ansi-generic is a vanilla ANSI terminal. This is assumed to implement +# all the normal ANSI stuff with no extensions. It assumes +# insert/delete line/char is there, so it won't work with +# vt100 clones. It assumes video attributes for bold, blink, +# underline, and reverse, which won't matter much if the terminal +# can't do some of those. Padding is assumed to be zero, which +# shouldn't hurt since xon/xoff is assumed. +ansi-generic|generic ansi standard terminal:\ + :am:xo:\ + :co#80:li#24:tc=vanilla:tc=ansi+csr:tc=ansi+cup:\ + :tc=ansi+rca:tc=ansi+erase:tc=ansi+tabs:tc=ansi+local:\ + :tc=ansi+idc:tc=ansi+idl:tc=ansi+rep:tc=ansi+sgrbold:\ + :tc=ansi+arrows: + +#### Linux consoles +# + +# This entry is good for the 1.2.13 or later version of the Linux console. +# +# *************************************************************************** +# * * +# * WARNING: * +# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in * +# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab * +# * character. Here are the keymap replacement lines that will set this up: * +# * * +# keycode 15 = Tab Tab +# alt keycode 15 = Meta_Tab +# shift keycode 15 = F26 +# string F26 ="\033[Z" +# * * +# * This has to use a key slot which is unfortunate (any unused one will * +# * do, F26 is the higher-numbered one). The change ought to be built * +# * into the kernel tables. * +# * * +# *************************************************************************** +# +# The 1.3.x kernels add color-change capabilities; if yours doesn't have this +# and it matters, turn off <ccc>. The %02x escape used to implement this is +# not back-portable to SV curses and not supported in ncurses versions before +# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size +# themselves; this entry assumes that capability. +# +# This entry is good for the 1.2.13 or later version of the Linux console. +# +# *************************************************************************** +# * * +# * WARNING: * +# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in * +# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab * +# * character. Here are the keymap replacement lines that will set this up: * +# * * +# keycode 15 = Tab Tab +# alt keycode 15 = Meta_Tab +# shift keycode 15 = F26 +# string F26 ="\033[Z" +# * * +# * This has to use a key slot which is unfortunate (any unused one will * +# * do, F26 is the higher-numbered one). The change ought to be built * +# * into the kernel tables. * +# * * +# *************************************************************************** +# +# The 1.3.x kernels add color-change capabilities; if yours doesn't have this +# and it matters, turn off <ccc>. The %02x escape used to implement this is +# not back-portable to SV curses and not supported in ncurses versions before +# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size +# themselves; this entry assumes that capability. +# +# The 2.2.x kernels add a private mode that sets the cursor type; use that to +# get a block cursor for cvvis. +# reported by Frank Heckenbach <frank@g-n-u.de>. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +linux|linux console:\ + :am:eo:mi:ms:xn:xo:\ + :it#8:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:K2=\E[G:al=\E[L:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k1=\E[[A:k2=\E[[B:\ + :k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:\ + :kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:rc=\E8:sc=\E7:se=\E[27m:sf=^J:\ + :sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=200\E[?5h\E[?5l:ve=\E[?25h\E[?0c:vi=\E[?25l\E[?1c:\ + :vs=\E[?25h\E[?8c:\ + :tc=klone+sgr:tc=ecma+color: +linux-m|Linux console no color:\ + :Co@:pa@:\ + :AB@:AF@:Sb@:Sf@:tc=linux: +linux-c-nc|linux console 1.3.x hack for ncurses only:\ + :cc:\ + :..Ic=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x:\ + :oc=\E]R:\ + :tc=linux: +# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996 +linux-c|linux console 1.3.6+ with private palette for each virtual console:\ + :cc:\ + :Co#8:pa#64:\ + :..Ic=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p3%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p4%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;:\ + :oc=\E]R:\ + :tc=linux: + +# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file +linux-nic|linux with ich/ich1 suppressed for non-curses programs:\ + :IC@:ei=:ic@:im=:\ + :tc=linux: + +# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts. +# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997. +linux-koi8|linux with koi8 alternate character set:\ + :ac=+\020\054\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224:tc=linux:\ + :tc=klone+koi8acs: + +# Another entry for KOI8-r with Qing Long's acsc. +# (which one better complies with the standard?) +linux-koi8r|linux with koi8-r alternate character set:\ + :tc=linux:tc=klone+koi8acs: + +# Entry for the latin1 and latin2 fonts +linux-lat|linux with latin1 or latin2 alternate character set:\ + :ac=+\020\054\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376:\ + :tc=linux: + +#### NetBSD consoles +# +# pcvt termcap database entries (corresponding to release 3.31) +# Author's last edit-date: [Fri Sep 15 20:29:10 1995] +# +# (For the terminfo master file, I translated these into terminfo syntax. +# Then I dropped all the pseudo-HP entries. we don't want and can't use +# the :Xs: flag. Then I split :is: into a size-independent :i1: and a +# size-dependent :is:. Finally, I added <rmam>/<smam> -- esr) + +# NOTE: :ic: has been taken out of this entry. for reference, it should +# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below. +# (esr: added :vi: and :ve: to resolve NetBSD Problem Report #4583) +pcvtXX|pcvt vt200 emulator (DEC VT220):\ + :am:km:mi:ms:xn:\ + :it#8:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dS:\ + :SR=\E[%dT:UP=\E[%dA:\ + :ac=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :i1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:im=\E[4h:\ + :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\ + :k6=\E[23~:k7=\E[24~:k8=\E[25~:kD=\E[3~:kH=\E[4~:kI=\E[2~:\ + :kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :r1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:\ + :ve=\E[?25h:vi=\E[?25l: + +# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor) +# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and +# 50 lines entries; 80 columns +pcvt25|dec vt220 emulation with 25 lines:\ + :co#80:li#25:\ + :is=\E[1;25r\E[25;1H:tc=pcvtXX: +pcvt28|dec vt220 emulation with 28 lines:\ + :co#80:li#28:\ + :is=\E[1;28r\E[28;1H:tc=pcvtXX: +pcvt35|dec vt220 emulation with 35 lines:\ + :co#80:li#35:\ + :is=\E[1;35r\E[35;1H:tc=pcvtXX: +pcvt40|dec vt220 emulation with 40 lines:\ + :co#80:li#40:\ + :is=\E[1;40r\E[40;1H:tc=pcvtXX: +pcvt43|dec vt220 emulation with 43 lines:\ + :co#80:li#43:\ + :is=\E[1;43r\E[43;1H:tc=pcvtXX: +pcvt50|dec vt220 emulation with 50 lines:\ + :co#80:li#50:\ + :is=\E[1;50r\E[50;1H:tc=pcvtXX: + +# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor) +# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and +# 50 lines entries; 132 columns +pcvt25w|dec vt220 emulation with 25 lines and 132 cols:\ + :co#132:li#25:\ + :is=\E[1;25r\E[25;1H:tc=pcvtXX: +pcvt28w|dec vt220 emulation with 28 lines and 132 cols:\ + :co#132:li#28:\ + :is=\E[1;28r\E[28;1H:tc=pcvtXX: +pcvt35w|dec vt220 emulation with 35 lines and 132 cols:\ + :co#132:li#35:\ + :is=\E[1;35r\E[35;1H:tc=pcvtXX: +pcvt40w|dec vt220 emulation with 40 lines and 132 cols:\ + :co#132:li#40:\ + :is=\E[1;40r\E[40;1H:tc=pcvtXX: +pcvt43w|dec vt220 emulation with 43 lines and 132 cols:\ + :co#132:li#43:\ + :is=\E[1;43r\E[43;1H:tc=pcvtXX: +pcvt50w|dec vt220 emulation with 50 lines and 132 cols:\ + :co#132:li#50:\ + :is=\E[1;50r\E[50;1H:tc=pcvtXX: + +# Terminfo entries to enable the use of the ncurses library in colour on a +# NetBSD-arm32 console (only tested on a RiscPC). +# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98 +# modified codes for setf/setb to setaf/setab, then to klone+color, corrected +# typo in invis - TD +arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480):\ + :am:ms:ut:xn:xo:\ + :co#80:it#8:li#30:\ + :@8=\E[M:DO=\E[%dB:K1=\E[q:K2=\E[r:K3=\E[s:K4=\E[p:K5=\E[n:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :eA=\E(B\E)0:ho=\E[H:k0=\E[y:k1=\E[P:k2=\E[Q:k3=\E[R:\ + :k4=\E[S:k5=\E[t:k6=\E[u:k7=\E[v:k8=\E[l:k9=\E[w:k;=\E[x:\ + :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:\ + :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mk=\E[8m:\ + :mr=\E[6m:nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m:\ + :tc=ecma+sgr:tc=klone+color: +arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768):\ + :co#132:li#50:tc=arm100: + +# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine +# manufactured by Sharp for the Japenese market. +# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996 +x68k|x68k-ite|NetBSD/x68k ITE:\ + :co#96:li#32:\ + :%1=\E[28~:kC=\E[9~:tc=vt220: + +# <tv@pobox.com>: +# Entry for the DNARD OpenFirmware console, close to ANSI but not quite. +# +# (still unfinished, but good enough so far.) +ofcons:\ + :bw:\ + :co#80:li#30:\ + :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\ + :LE=\233%dD:RI=\233%dC:UP=\233%dA:al=\233L:bl=^G:cd=\233J:\ + :ce=\233K:cl=^L:cm=\233%i%d;%dH:cr=^M:dc=\233P:dl=\233M:\ + :do=\233B:ei=:ic=\233@:im=:k1=\2330P:k2=\2330Q:k3=\2330W:\ + :k4=\2330x:k5=\2330t:k6=\2330u:k7=\2330q:k8=\2330r:\ + :k9=\2330p:k;=\2330M:kD=\233P:kN=\233/:kP=\233?:kb=^H:\ + :kd=\233B:kl=\233D:kr=\233C:ku=\233A:le=\233D:mb=\2337;2m:\ + :md=\2331m:me=\2330m:mh=\2332m:mk=\2338m:mr=\2337m:\ + :nd=\233C:nw=^M^J:se=\2330m:sf=^J:ta=^I:ue=\2330m:up=\233A:\ + :vb=^G: + +# NetBSD "wscons" emulator in vt220 mode +# These are micro-minimal and probably need to be redone for real +# after the manner of the pcvt entries. +wsvt25|NetBSD wscons in 25 line DEC VT220 mode:\ + :co#80:li#25:tc=vt220: + +wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta:\ + :km:\ + :co#80:li#25:tc=vt220: + +# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and +# DECstation/pmax. +rcons|BSD rasterconsole:\ + :tc=sun-il: +# Color version of above. Color currenly only provided by NetBSD. +rcons-color|BSD rasterconsole with ANSI color:\ + :ut:\ + :Co#8:pa#64:\ + :AB=\E[4%dm:AF=\E[3%dm:op=\E[m:tc=rcons: + +#### FreeBSD console entries +# +# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996 +# Andrey Chernov maintains the FreeBSD termcap distributions. +# +# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade +# or comment out the :cb: capability in the console entry. +# +# Alexander Lukyanov reports: +# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there. +# Now el1 clears not only to the line beginning, but also a large chunk +# of previous line. But there is another bug - ech does not work at all. +# + +# for syscons +# common entry without semigraphics +# Bug: The <op> capability resets attributes. +# Bug? The ech and el1 attributes appear to move the cursor in some cases; for +# instance el1 does if the cursor is moved to the right margin first. Removed +# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K) +# +# Setting colors turns off reverse; we cannot guarantee order, so use ncv. +# Note that this disables standout with color. +cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode):\ + :NP:am:bw:eo:ms:ut:\ + :Co#8:NC#21:co#80:it#8:li#25:pa#64:\ + :@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:AL=\E[%dL:DC=\E[%dP:\ + :DL=\E[%dM:DO=\E[%dB:F1=\E[W:F2=\E[X:IC=\E[%d@:K2=\E[E:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cv=\E[%i%dd:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:\ + :k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\ + :k;=\E[V:kB=\E[Z:kD=\177:kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mh=\E[30;1m:mr=\E[7m:nd=\E[C:nw=\E[E:\ + :op=\E[x:r1=\E[x\E[m\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:\ + :ta=^I:up=\E[A:ve=\E[=0C:vs=\E[=1C: +cons25|ansis|ansi80x25|freebsd console (25-line ansi mode):\ + :ac=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371:\ + :tc=cons25w: +cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode):\ + :Co@:pa@:\ + :AB@:AF@:md@:mh@:op@:ue=\E[m:us=\E[4m:tc=cons25: +cons30|ansi80x30|freebsd console (30-line ansi mode):\ + :li#30:tc=cons25: +cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode):\ + :li#30:tc=cons25-m: +cons43|ansi80x43|freebsd console (43-line ansi mode):\ + :li#43:tc=cons25: +cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode):\ + :li#43:tc=cons25-m: +cons50|ansil|ansi80x50|freebsd console (50-line ansi mode):\ + :li#50:tc=cons25: +cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode):\ + :li#50:tc=cons25-m: +cons60|ansi80x60|freebsd console (60-line ansi mode):\ + :li#60:tc=cons25: +cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode):\ + :li#60:tc=cons25-m: +cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic:\ + :ac=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225:\ + :tc=cons25w: +cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono):\ + :Co@:pa@:\ + :AB@:AF@:op@:ue=\E[m:us=\E[4m:tc=cons25r: +cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines):\ + :li#50:tc=cons25r: +cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono):\ + :li#50:tc=cons25r-m: +cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines):\ + :li#60:tc=cons25r: +cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono):\ + :li#60:tc=cons25r-m: +# ISO 8859-1 FreeBSD console +cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars:\ + :ac=+\253\054\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237:\ + :tc=cons25w: +cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono):\ + :Co@:pa@:\ + :AB@:AF@:md@:mh@:op@:ue=\E[m:us=\E[4m:tc=cons25l1: +cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines):\ + :li#50:tc=cons25l1: +cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono):\ + :li#50:tc=cons25l1-m: +cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines):\ + :li#60:tc=cons25l1: +cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono):\ + :li#60:tc=cons25l1-m: + +#### 386BSD and BSD/OS Consoles +# + +# This was the original 386BSD console entry (I think). +# Some places it's named oldpc3|oldibmpc3. +# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu> +origpc3|origibmpc3|IBM PC 386BSD Console:\ + :am:bw:eo:xo:\ + :co#80:li#25:\ + :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\ + :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[H:\ + :kd=\E[B:kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[7m:\ + :me=\E[m\E[1;0x\E[2;7x:nd=\E[C:se=\E[1;0x\E[2;7x:\ + :sf=\E[S:so=\E[1;7x\E[2;0x:sr=\E[T:ue=\E[1;0x\E[2;7x:\ + :up=\E[A:us=\E[1;7x\E[2;0x: + +# description of BSD/386 console emulator in version 1.0 (supplied by BSDI) +oldpc3|oldibmpc3|old IBM PC BSD/386 Console:\ + :km:\ + :li#25:\ + :al=\E[L:bl=^G:cr=^M:dl=\E[M:do=^J:kH=\E[F:kI=\E[L:kN=\E[G:\ + :kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :md=\E[=15F:me=\E[=R:mh=\E[=8F:nw=^M^J:sf=^J:ta=^I: + +# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1 +# Note, the emulator supports many of the additional console features +# listed in the iBCS2 (e.g. character-set selection) though not all +# are described here. This entry really ought to be upgraded. +# Also note, the console will also work with fewer lines after doing +# "stty rows NN", e.g. to use 24 lines. +# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996) +# Bug: The <op> capability resets attributes. +bsdos-pc-nobold|BSD/OS PC console w/o bold:\ + :am:eo:km:xo:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\ + :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:kH=\E[F:\ + :kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:nd=\E[C:nw=^M^J:rc=\E8:\ + :..sa=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;:\ + :sc=\E7:sf=^J:ta=^I:up=\E[A:\ + :tc=klone+sgr:tc=klone+color: +bsdos-pc|IBM PC BSD/OS Console:\ + :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:tc=bsdos-pc-nobold: + +# Old names for BSD/OS PC console used in releases before 4.1. +pc3|BSD/OS on the PC Console:\ + :tc=bsdos-pc-nobold: +ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline:\ + :tc=bsdos-pc: + +# BSD/OS on the SPARC +bsdos-sparc|Sun SPARC BSD/OS Console:\ + :tc=sun: + +# BSD/OS on the PowerPC +bsdos-ppc|PowerPC BSD/OS Console:\ + :tc=bsdos-pc: + +#### DEC VT100 and compatibles +# +# DEC terminals from the vt100 forward are collected here. Older DEC terminals +# and micro consoles can be found in the `obsolete' section. More details on +# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be +# found near the end of this file. +# +# Except where noted, these entries are DEC's official terminfos. +# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support +# Engineering for more information. Updated terminfos and termcaps +# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. +# +# In October 1995 DEC sold its terminals business, including the VT and Dorio +# line and trademark, to SunRiver Data Systems. SunRiver has since changed +# its name to Boundless Technologies; see http://www.boundless.com. +# + +# NOTE: Any VT100 emulation, whether in hardware or software, almost +# certainly includes what DEC called the `Level 1 editing extension' codes; +# only the very oldest VT100s lacked these and there probably aren't any of +# those left alive. To capture these, use one of the VT102 entries. +# +# Note that the :xn: glitch in vt100 is not quite the same as on the Concept, +# since the cursor is left in a different position while in the +# weird state (concept at beginning of next line, vt100 at end +# of this line) so all versions of vi before 3.7 don't handle +# :xn: right on vt100. The correct way to handle :xn: is when +# you output the char in column 80, immediately output CR LF +# and then assume you are in column 1 of the next line. If :xn: +# is on, am should be on too. +# +# I assume you have smooth scroll off or are at a slow enough baud +# rate that it doesn't matter (1200? or less). Also this assumes +# that you set auto-nl to "on", if you set it off use vt100-nam +# below. +# +# The padding requirements listed here are guesses. It is strongly +# recommended that xon/xoff be enabled, as this is assumed here. +# +# The vt100 uses <rs2> and <rf> rather than :is:/:ct:/:st: because the +# tab settings are in non-volatile memory and don't need to be +# reset upon login. Also setting the number of columns glitches +# the screen annoyingly. You can type "reset" to get them set. +# +# The VT100 series terminals have cursor ("arrows") keys which can operate +# in two different modes: Cursor Mode and Application Mode. Cursor Mode +# is the reset state, and is assumed to be the normal state. Application +# Mode is the "set" state. In Cursor Mode, the cursor keys transmit +# "Esc [ {code}" sequences, conforming to ANSI standards. In Application +# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode +# was provided primarily as an aid to the porting of VT52 applications. It is +# assumed that the cursor keys are normally in Cursor Mode, and expected that +# applications such as vi will always transmit the :ks: string. Therefore, +# the definitions for the cursor keys are made to match what the terminal +# transmits after the :ks: string is transmitted. If the :ks: string +# is a null string or is not defined, then cursor keys are assumed to be in +# "Cursor Mode", and the cursor keys definitions should match that assumption, +# else the appication may fail. It is also expected that applications will +# always transmit the :ke: string to the terminal before they exit. +# +# The VT100 series terminals have an auxilliary keypad, commonly referred to as +# the "Numeric Keypad", because it is a cluster of numeric and function keys. +# The Numeric Keypad which can operate in two different modes: Numeric Mode and +# Application Mode. Numeric Mode is the reset state, and is assumed to be +# the normal state. Application Mode is the "set" state. In Numeric Mode, +# the numeric and punctuation keys transmit ASCII 7-bit characters, and the +# Enter key transmits the same as the Return key (Note: the Return key +# can be configured to send either LF (\015) or CR LF). In Application Mode, +# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys +# always send the same "Esc O {code}" sequences. It is assumed that the keypad +# is normally in Numeric Mode. If an application requires that the keypad be +# in Application Mode then it is expected that the user, or the application, +# will set the TERM environment variable to point to a terminfo entry which has +# defined the :ks: string to include the codes that switch the keypad into +# Application Mode, and the terminfo entry will also define function key +# fields to match the Application Mode control codes. If the :ks: string +# is a null string or is not defined, then the keypad is assumed to be in +# Numeric Mode. If the :ks: string switches the keypad into Application +# Mode, it is expected that the :ke: string will contain the control codes +# necessary to reset the keypad to "Normal" mode, and it is also expected that +# applications which transmit the :ks: string will also always transmit the +# :ke: string to the terminal before they exit. +# +# Here's a diagram of the VT100 keypad keys with their bindings. +# The top line is the name of the key (some DEC keyboards have the keys +# labelled somewhat differently, like GOLD instead of PF1, but this is +# the most "official" name). The second line is the escape sequence it +# generates in Application Keypad mode (where "$" means the ESC +# character). The third line contains two items, first the mapping of +# the key in terminfo, and then in termcap. +# _______________________________________ +# | PF1 | PF2 | PF3 | PF4 | +# | $OP | $OQ | $OR | $OS | +# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_| +# | 7 8 9 - | +# | $Ow | $Ox | $Oy | $Om | +# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________| +# | 4 | 5 | 6 | , | +# | $Ot | $Ou | $Ov | $Ol | +# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_| +# | 1 | 2 | 3 | | +# | $Oq | $Or | $Os | enter | +# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM | +# | 0 | . | | +# | $Op | $On | | +# |___kc1_______K4____|_kc3__K5_|_kent_@8_| +# +# And here, for those of you with orphaned VT100s lacking documentation, is +# a description of the soft switches invoked when you do `Set Up'. +# +# Scroll 0-Jump Shifted 3 0-# +# | 1-Smooth | 1-British pound sign +# | Autorepeat 0-Off | Wrap Around 0-Off +# | | 1-On | | 1-On +# | | Screen 0-Dark Bkg | | New Line 0-Off +# | | | 1-Light Bkg | | | 1-On +# | | | Cursor 0-Underline | | | Interlace 0-Off +# | | | | 1-Block | | | | 1-On +# | | | | | | | | +# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings +# | | | | | | | | +# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz +# | | | 1-On | | | 1-50 Hz +# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits +# | | 1-ANSI | | 1-8 Bits +# | Keyclick 0-Off | Parity 0-Off +# | 1-On | 1-On +# Margin Bell 0-Off Parity Sense 0-Odd +# 1-On 1-Even +# +# The following SET-UP modes are assumed for normal operation: +# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS +# WRAP_AROUND_ON JUMP_SCROLL_OFF +# Other SET-UP modes may be set for operator convenience or communication +# requirements; I recommend +# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_# +# Unless you have a graphics add-on such as Digital Engineering's VT640 +# (and even then, whenever it can be arranged!) you should set +# INTERLACE_OFF +# +# (vt100: I added <rmam>/<smam> based on the init string, also :bs:. -- esr) +vt100|vt100-am|dec vt100 (w/advanced video):\ + :am:bs:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +vt100nam|vt100-nam|vt100 no automargins:\ + :am@:xn@:tc=vt100-am: +vt100-vb|dec vt100 (w/advanced video) & no beep:\ + :bl@:vb=\E[?5h\E[?5l:tc=vt100: + +# Ordinary vt100 in 132 column ("wide") mode. +vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video):\ + :co#132:li#24:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-am: +vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin):\ + :co#132:li#14:vt@:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-nam: + +# vt100 with no advanced video. +vt100-nav|vt100 without advanced video option:\ + :sg#1:\ + :mb@:md@:me@:mr@:sa@:se=\E[m:so=\E[7m:ue@:us@:tc=vt100: +vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option):\ + :co#132:li#14:tc=vt100-nav: + +# vt100 with one of the 24 lines used as a status line. +# We put the status line on the top. +vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline:\ + :es:hs:\ + :li#23:\ + :cl=\E[2;1H\E[J:cm=\E[%i%+^A;%dH:cs=\E[%i%i%d;%dr:\ + :ds=\E7\E[1;24r\E8:fs=\E8:ho=\E[2;1H:is=\E7\E[2;24r\E8:\ + :ts=\E7\E[1;%p1%dH\E[1K:\ + :tc=vt100-am: + +# Status line at bottom. +# Clearing the screen will clobber status line. +vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline:\ + :es:hs:\ + :li#23:\ + :ds=\E7\E[1;24r\E8:fs=\E8:is=\E[1;23r\E[23;1H:\ + :ts=\E7\E[24;%p1%dH\E[1K:\ + :tc=vt100-am: + +# Most of the `vt100' emulators out there actually emulate a vt102 +# This entry (or vt102-nsgr) is probably the right thing to use for +# these. +vt102|dec vt102:\ + :mi:\ + :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:tc=vt100: +vt102-w|dec vt102 in wide mode:\ + :co#132:\ + :r3=\E[?3h:tc=vt102: + +# Many brain-dead PC comm programs that pretend to be `vt100-compatible' +# fail to interpret the ^O and ^N escapes properly. Symptom: the :me: +# string in the canonical vt100 entry above leaves the screen littered +# with little snowflake or star characters (IBM PC ROM character \017 = ^O) +# after highlight turnoffs. This entry should fix that, and even leave +# ACS support working, at the cost of making multiple-highlight changes +# slightly more expensive. +# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995 +vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes):\ + :me=\E[m:sa@:\ + :tc=vt102: + +# VT125 Graphics CRT. Clear screen also erases graphics +vt125|vt125 graphics terminal:\ + :cl=\E[H\E[2J\EPpS(E)\E\:tc=vt100: + +# This isn't a DEC entry, it came from University of Wisconsin. +# (vt131: I added <rmam>/<smam> based on the init string, also :bs: -- esr) +vt131|dec vt131:\ + :am:bs:xn:\ + :co#80:it#8:li#24:vt#3:\ + :RA=\E[?7h:SA=\E[?7h:bl=^G:cd=50\E[J:ce=3\E[K:\ + :cl=50\E[;H\E[2J:cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :do=^J:ho=\E[H:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:\ + :me=2\E[m:mr=2\E[7m:nd=2\E[C:nw=^M^J:\ + :r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\ + :se=2\E[m:so=2\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:\ + :us=2\E[4m: + +# vt132 - like vt100 but slower and has ins/del line and such. +# I'm told that :im:/:ei: are backwards in the terminal from the +# manual and from the ANSI standard, this describes the actual +# terminal. I've never actually used a vt132 myself, so this +# is untested. +# +vt132|DEC vt132:\ + :xn:\ + :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4h:im=\E[4l:ip=:sf=\n:tc=vt100: + +# This vt220 description maps F5--F9 to the second block of function keys +# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict +# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping. +# PF1--PF4 are used as F1--F4. +# +vt220-old|vt200-old|DEC VT220 in vt100 emulation mode:\ + :am:bs:mi:pt:xn:xo:\ + :co#80:li#24:vt#3:\ + :@7=\E[4~:RA=\E[?7l:SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:k9=\E[21~:\ + :k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\ + :kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/share/tabset/vt100:\ + :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\ + :sc=\E7:se=\E[27m:sf=20\ED:so=\E[7m:sr=14\EM:ta=^I:\ + :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: + +# A much better description of the VT200/220; used to be vt220-8 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt220|vt200|dec vt220:\ + :am:bs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:ho=\E[H:if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E[?7h\E[>\E[?1h\E F\E[?4l:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kI=\E[2~:\ + :kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ + :st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l: +vt220-w|vt200-w|DEC vt220 in wide mode:\ + :co#132:\ + :r3=\E[?3h:tc=vt220: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode:\ + :am:bs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\ + :LE=\233%dD:RI=\233%dC:UP=\233%dA:ae=^O:al=\233L:as=^N:\ + :bl=^G:cd=\233J:ce=\233K:cl=\233H\233J:cm=\233%i%d;%dH:\ + :cr=^M:cs=\233%i%d;%dr:ct=\2333g:dc=\233P:dl=\233M:do=^J:\ + :ec=\233%dX:ei=\2334l:ho=\233H:\ + :if=/usr/share/tabset/vt100:im=\2334h:\ + :is=\233?7h\233>\233?1h\E F\233?4l:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k6=\23317~:k7=\23318~:k8=\23319~:\ + :k9=\23320~:kI=\2332~:kN=\2336~:kP=\2335~:kb=^H:kd=\233B:\ + :kh=\233H:kl=\233D:kr=\233C:ku=\233A:le=^H:mb=\2335m:\ + :md=\2331m:me=\233m:mr=\2337m:nd=\233C:nw=\EE:rc=\E8:\ + :sc=\E7:se=\23327m:sf=\ED:so=\2337m:sr=\EM:st=\EH:ta=^I:\ + :ue=\23324m:up=\233A:us=\2334m:vb=\233?5h\233?5l: + +# +# vt220d: +# This vt220 description regards F6--F10 as the second block of function keys +# at the top of the keyboard. This mapping follows the description given +# in the VT220 Programmer Reference Manual and agrees with the labeling +# on some terminals that emulate the vt220. There is no support for an F5. +# See vt220 for an alternate mapping. +# +vt220d|DEC VT220 in vt100 mode with DEC function key labeling:\ + :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ + :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:k5@:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :tc=vt220-old: + +vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins:\ + :am@:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220: + +# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko +# (not an official DEC entry!) +# The problem with real vt220 terminals is they don't send escapes when in +# in vt220 mode. This can be gotten around two ways. 1> don't send +# escapes or 2> put the vt220 into vt100 mode and use all the nifty +# features of vt100 advanced video which it then has. +# +# This entry takes the view of putting a vt220 into vt100 mode so +# you can use the escape key in emacs and everything else which needs it. +# +# You probably don't want to use this on a VMS machine since VMS will think +# it has a vt220 and will get fouled up coming out of emacs +# +# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996 +# (Added vt100 :rc:,:sc: to quiet a tic warning -- esr) +vt200-js|vt220-js|dec vt200 series with jump scroll:\ + :am:\ + :co#80:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:dm=:do=^J:ed=:\ + :ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :nw=^M\ED:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/lib/tabset/vt100:sc=\E7:se=5\E[27m:sf=\ED:\ + :so=5\E[7m:sr=\EM:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m: + + +# This was DEC's vt320. Use the purpose-built one below instead +#vt320|DEC VT320 in vt100 emulation mode, +# use=vt220, + +# +# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam. +# +vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode:\ + :am@:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220: + +# These entries are not DEC's official ones, they were purpose-built for the +# VT320. Here are the designer's notes: +# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to +# 'Erase to End of Field'... since nothing seems to use 'end' anyways... +# khome is Home on a PC kbd. Actually 'FIND' on a VT. +# Things that use <knxt> usually use tab anyways... and things that don't use +# tab usually use <knxt> instead... +# kprv is same as tab - Backtab is useless... +# I left out :sa: because of its RIDICULOUS complexity, +# and the resulting fact that it causes the termcap translation of the entry +# to SMASH the 1k-barrier... +# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +# (vt320: uncommented :fs:, comnmmented out <kslt> to avoid a conflict --esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt320|vt300|dec vt320 7 bit terminal:\ + :am:es:hs:mi:ms:xn:\ + :co#80:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:fs=\E[0$}:ho=\E[H:im=\E[4h:\ + :is=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:ts=\E[1$}\E[H\E[K:ue=\E[m:\ + :up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: +vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy:\ + :am@:\ + :is=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\ + :r2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\ + :tc=vt320: +# We have to init 132-col mode, not 80-col mode. +vt320-w|vt300-w|dec vt320 wide 7 bit terminal:\ + :co#132:ws#132:\ + :is=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :r2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :tc=vt320: +vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am:\ + :am@:\ + :is=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\ + :r2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\ + :tc=vt320-w: + +# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals +# which are pretty much a superset of the VT320. They have the +# host writable status line, yet another different DRCS matrix size, +# and such, but they add the DEC Technical character set, Multiple text +# pages, selectable length pages, and the like. The difference between +# the vt330 and vt340 is that the latter has only 2 planes and a monochrome +# monitor, the former has 4 planes and a color monitor. These terminals +# support VT131 and ANSI block mode, but as with much of these things, +# termcap/terminfo doesn't deal with these features. +# +# Note that this entry is are set up in what was the standard way for GNU +# Emacs v18 terminal modes to deal with the cursor keys in that the arrow +# keys were switched into application mode at the same time the numeric pad +# is switched into application mode. This changes the definitions of the +# arrow keys. Emacs v19 is smarter and mines its keys directly out of +# your termcap or terminfo entry, +# +# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 +# (vt340: string capability "sb=\E[M" corrected to "sr"; +# also, added <rmam>/<smam> based on the init string -- esr) +vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\ + :fs=\E[$}:ho=\E[H:im=\E[4h:\ + :is=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ + :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\ + :r1=\E[?3l:rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=200\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: + +# DEC doesn't supply a vt400 description, so we add Daniel Glasser's +# (originally written with vt420 as its primary name, and usable for it). +# +# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple +# text pages and long text pages with selectable length of the vt340, along +# with left and right margins, rectangular area text copy, fill, and erase +# operations, selected region character attribute change operations, +# page memory and rectangle checksums, insert/delete column, reception +# macros, and other features too numerous to remember right now. TERMCAP +# can only take advantage of a few of these added features. +# +# Note that this entry is are set up in what was the standard way for GNU +# Emacs v18 terminal modes to deal with the cursor keys in that the arrow +# keys were switched into application mode at the same time the numeric pad +# is switched into application mode. This changes the definitions of the +# arrow keys. Emacs v19 is smarter and mines its keys directly out of +# your termcap entry, +# +# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993 +# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:"; +# also, added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:\ + :cd=10\E[J:ce=4\E[K:cl=10\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:fs=\E[$}:ho=\E[H:\ + :ic=\E[@:im=\E[4h:\ + :is=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:se=\E[27m:\ + :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=200\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: + +# (vt420: I removed :k0:, it collided with <kf10>. I also restored +# a missing :sc: -- esr) +vt420|DEC VT420:\ + :am:mi:xn:xo:\ + :co#80:li#24:vt#3:\ + :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\ + :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\ + :im=\E[4h:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\ + :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/share/tabset/vt300:\ + :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\ + :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: + +# +# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx) +# takes two parameters, the key and the string. Translating the key is +# straightforward (keys 1-5 are not defined on real terminals, though some +# emulators define these): +# +# if (key < 16) then value = key; +# else if (key < 21) then value = key + 1; +# else if (key < 25) then value = key + 2; +# else if (key < 27) then value = key + 3; +# else if (key < 30) then value = key + 4; +# else value = key + 5; +# +# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT". +# There's no provision in terminfo for emitting a string in this format, so the +# application has to know it. +# +vt420pc|DEC VT420 w/PC keyboard:\ + :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[11;2~:F4=\E[12;2~:\ + :F5=\E[13;2~:F6=\E[14;2~:F7=\E[15;2~:F8=\E[17;2~:\ + :F9=\E[18;2~:FA=\E[19;2~:FB=\E[20;2~:FC=\E[21;2~:\ + :FD=\E[23;2~:FE=\E[24;2~:FF=\E[23~:FG=\E[24~:FH=\E[25~:\ + :FI=\E[26~:FJ=\E[28~:FK=\E[29~:FL=\E[31~:FM=\E[32~:\ + :FN=\E[33~:FO=\E[34~:FP=\E[35~:FQ=\E[36~:FR=\E[23;2~:\ + :FS=\E[24;2~:FT=\E[25;2~:FU=\E[26;2~:FV=\E[28;2~:\ + :FW=\E[29;2~:FX=\E[31;2~:FY=\E[32;2~:FZ=\E[33;2~:\ + :Fa=\E[34;2~:Fb=\E[35;2~:Fc=\E[36;2~:\ + :S6=USR_TERM\072vt420pcdos\072:k1=\E[11~:k2=\E[12~:\ + :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\177:kh=\E[H:\ + :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\:tc=vt420: + +vt420pcdos|DEC VT420 w/PC for DOS Merge:\ + :li#25:\ + :S1=%?%p2%{19}%=%t\E\023\021%e%p2%{32}%<%t\E%p2%c%e%p2%{127}%=%t\E\177%e%p2%c%;:\ + :S4=\E[?1;2r\E[34h:\ + :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:S6@:\ + :me=\E[m:sa@:\ + :tc=vt420pc: + +vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys:\ + :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ + :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :kD=\177:kh=\E[H:l1=\EOP:l2=\EOQ:l3=\EOR:l4=\EOS:\ + :tc=vt420: + +vt510|DEC VT510:\ + :tc=vt420: +vt510pc|DEC VT510 w/PC keyboard:\ + :tc=vt420pc: +vt510pcdos|DEC VT510 w/PC for DOS Merge:\ + :tc=vt420pcdos: + +# VT520/VT525 +# +# The VT520 is a monochrome text terminal capable of managing up to +# four independent sessions in the terminal. It has multiple ANSI +# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console) +# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950, +# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only. +# +# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or +# [Alt]/[Print Screen] depending upon which keyboard and which +# terminal mode is being used. If Set-Up has been disabled or +# assigned to an unknown key, Set-Up may be entered by pressing +# [F3] as the first key after power up, regardless of keyboard type. +# (vt520: I added <rmam>/<smam> based on the init string, also :sc: -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +vt520|DEC VT520:\ + :am:mi:xn:xo:\ + :co#80:li#24:vt#3:\ + :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\ + :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\ + :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\ + :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:r3=\E[?67h\E[64;1"p:\ + :rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:se=\E[m:sf=\ED:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +# (vt525: I added <rmam>/<smam> based on the init string; +# removed :se:=\E[m, :ue:=\E[m, added :sc: -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +vt525|DEC VT525:\ + :am:mi:xn:xo:\ + :co#80:li#24:vt#3:\ + :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\ + :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\ + :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\ + :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\ + :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:r3=\E[?67h\E[64;1"p:\ + :rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:se=\E[m:sf=\ED:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +#### VT100 emulations +# + +# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows +# (the best Windows telnet as of September 1995) presents the name `dec-vt100' +# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us +# that this works best with a stock vt100 entry. +dec-vt100|EWAN telnet's vt100 emulation:\ + :tc=vt100: + +# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996 +dec-vt220|DOS tnvt200 terminal emulator:\ + :am@:tc=vt220: + +# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to +# anyone who needs PC VT340 emulation. (or anything below that level, for +# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's +# RDBM systems, it includes ReGIS and SiXel support! I'm impressed... +# I can send the address if requested. +# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr) +# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +z340|zstem vt340 terminal emulator 132col 42line:\ + :li#42:\ + :is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H:\ + :tc=vt320-w: +z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins):\ + :am@:\ + :is=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H:\ + :tc=z340: + +# CRT is shareware. It implements some xterm features, including mouse. +crt|crt-vt220|CRT 2.3 emulating VT220:\ + :ms:ut:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:Sb=\E[4%dm:Sf=\E[3%dm:\ + :op=\E[39;49m:st=\EH:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:\ + :u9=\E[c:\ + :tc=vt220: + +# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by +# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator +# (communication program) which supports: +# +# - Serial port connections. +# - TCP/IP (telnet) connections. +# - VT100 emulation, and selected VT200/300 emulation. +# - TEK4010 emulation. +# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and +# Quick-VAN). +# - Scripts using the "Tera Term Language". +# - Japanese and Russian character sets. +# +# The program does not come with terminfo or termcap entries. However, the +# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no +# vt52 or doublesize character support; blinking is done with color). Besides +# the HPA, VPA extensions it also implements CPL and CNL. +# +# All of the function keys can be remapped. This description shows the default +# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys +# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad +# is laid out like vt220, rather than the face codes on the PC keyboard, i.e, +# kfnd Insert +# kslt Delete +# kich1 Home +# kdch1 PageUp +# kpp End +# knp PageDown +# +# ANSI colors are implemented, but cannot be combined with video attributes +# except for reverse. +# +# No fonts are supplied with the program, so the acsc string is chosen to +# correspond with the default Microsoft terminal font. +# +# Tera Term recognizes some xterm sequences, including those for setting and +# retrieving the window title, and for setting the window size (i.e., using +# "resize -s"), though it does not pass SIGWINCH to the application if the +# user resizes the window with the mouse. +teraterm|Tera Term Pro:\ + :km:xo@:\ + :NC#43:vt@:\ + :*6=\E[4~:@0=\E[1~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ + :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ + :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\ + :al=\E[L:cb=\E[1K:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cv=\E[%i%dd:dc=\E[P:dl=\E[M:ec=\E[%dX:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:op=\E[100m:se=\E[27m:so=\E[7m:\ + :sr=\EM:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:\ + :ue=\E[24m:up=\E[A:us=\E[4m:vb=200\E[?5h\E[?5l:\ + :ve=\E[?25h:vi=\E[?25l:\ + :tc=klone+color:tc=vt100: + +# Tested with WinNT 4.0, the telnet application assumes the screensize is +# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters. +ms-vt100|MS telnet imitating dec vt100:\ + :li#25:\ + :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\ + :ct@:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?6c:u9=\E[c:\ + :tc=vt100: + +#### X terminal emulators +# +# You can add the following line to your .Xdefaults to change the terminal type +# set by the xterms you start up to my-xterm: +# +# *termName: my-xterm +# +# System administrators can change the default entry for xterm instances +# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either +# case, xterm will detect and reject an invalid terminal type, falling back +# to the default of xterm. +# + +# X10/6.6 11/7/86, minus alternate screen, plus (csr) +# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string; +# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E) +# as these seem not to work -- esr) +x10term|vs100-x10|xterm terminal emulator (X10 window system):\ + :am:bs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#65:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\ + :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ + :im=\E[4h:is=\E\E[m\E[?7h\E[?1;4l:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: +# Compatible with the R5 xterm +# (from the XFree86 3.2 distribution, <blink=@> removed) +# added khome/kend, rmir/smir, rmul/smul based on the R5 xterm code - TD +# corrected typos in rs2 string - TD +xterm-r5|xterm R5 version:\ + :am:bs:km:ms:xn:\ + :co#80:it#8:li#24:\ + :@7=\E[4~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ + :F1=\E[23~:F2=\E[24~:IC=\E[%d@:Km=\E[M:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:\ + :im=\E[4h:k0=\EOq:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\ + :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :k;=\E[21~:kA=\E[30~:kD=\E[3~:kE=\E[8~:kI=\E[2~:kL=\E[31~:\ + :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:\ + :r2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H:\ + :rc=\E8:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +# Compatible with the R6 xterm +# (from XFree86 3.2 distribution, <acsc> and :it: added, <blink@> removed) +# added khome/kend - TD +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +xterm-r6|xterm-old|xterm X11R6 version:\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:\ + :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up. +# The name has been changed and some aliases have been removed. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System):\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:\ + :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\177:kI=\E[2~:\ + :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\EOH:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:\ + :me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\ + :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[2J\E[?47l\E8:\ + :ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: + +# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100 +# codes for F1-F4 except while in VT220 mode. +xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System):\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :tc=xterm-xf86-v32: + +# This version was released in XFree86 3.3.3 (November 1998). +# Besides providing printer support, it exploits a new feature that allows +# xterm to use terminfo-based descriptions with the titeInhibit resource. +xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System):\ + :5i:\ + :*6@:@0@:@7=\E[4~:ei=:ic@:im=:is=\E[\041p\E[?3;4l\E[4l\E>:\ + :kD=\E[3~:kh=\E[1~:mb=\E[5m:mk=\E[8m:pf=\E[4i:po=\E[5i:\ + :ps=\E[i:r1=\Ec:r2=\E[\041p\E[?3;4l\E[4l\E>:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\ + :te=\E[?1047l\E[?1048l:ti=\E[?1048h\E[?1047h:\ + :tc=xterm-xf86-v33: + +# This beta version will probably be released in XFree86 4.0. +xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System):\ + :@7=\EOF:K1=\EOH:K2=\EOE:K3=\E[5~:K4=\EOF:K5=\E[6~:kD=\177:\ + :kh=\EOH:te=\E[?1049l:ti=\E[?1049h:\ + :tc=xterm-xf86-v333: + +xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.0 Window System):\ + :tc=xterm-xf86-v40: + +# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997 +xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1:\ + :se=\E[m:ue=\E[m:\ + :tc=xterm-xf86-v33: + +# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey) +xterm-16color|xterm with 16 colors like aixterm:\ + :Co#16:NC#32:pa#256:\ + :AB=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm:\ + :AF=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm:\ + :..Sb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m:\ + :..Sf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m:\ + :tc=xterm-xf86-v40: + +# This is another variant, for XFree86 4.0 xterm (T.Dickey) +# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color. +# To use it, your decTerminalID resource must be set to 200 or above. +# +# HTS \E H \210 +# RI \E M \215 +# SS3 \E O \217 +# CSI \E [ \233 +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +xterm-8bit|xterm terminal emulator 8-bit controls (X Window System):\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\ + :K1=\217w:K2=\217y:K3=\217u:K4=\217q:K5=\217s:LE=\233%dD:\ + :RI=\233%dC:UP=\233%dA:ae=^O:al=\233L:as=^N:bl=^G:bt=\233Z:\ + :cd=\233J:ce=\233K:cl=\233H\2332J:cm=\233%i%d;%dH:cr=^M:\ + :cs=\233%i%d;%dr:ct=\2333g:dc=\233P:dl=\233M:do=^J:\ + :ec=\233%dX:ei=\2334l:ho=\233H:im=\2334h:\ + :is=\E7\E G\233r\233m\233?7h\233?1;3;4;6l\2334l\E8\E>:\ + :k1=\23311~:k2=\23312~:k3=\23313~:k4=\23314~:k5=\23315~:\ + :k6=\23317~:k7=\23318~:k8=\23319~:k9=\23320~:kD=\2333~:\ + :kI=\2332~:kN=\2336~:kP=\2335~:kb=^H:kd=\217B:\ + :ke=\233?1l\E>:kh=\2331~:kl=\217D:kr=\217C:ks=\233?1h\E=:\ + :ku=\217A:le=^H:mb=\2335m:md=\2331m:me=\233m^O:mr=\2337m:\ + :nd=\233C:rc=\E8:sc=\E7:se=\23327m:sf=^J:so=\2337m:sr=\215:\ + :st=\210:ta=^I:te=\233?1049l:ti=\233?1049h:ue=\23324m:\ + :up=\233A:us=\2334m:vb=\233?5h\233?5l:ve=\233?25h:\ + :vi=\233?25l:vs=\233?25h: + +xterm-24|vs100|xterms|xterm terminal emulator (X Window System):\ + :li#24:tc=xterm: + +# This is xterm for ncurses. +xterm|xterm terminal emulator (X Window System):\ + :Km=\E[M:\ + :ac=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:\ + :tc=xterm-r6: + +# These entries allow access to the X titlebar and icon name as a status line. +# Note that twm (and possibly window managers descended from it such as tvtwm, +# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess +# with it. +xterm+sl|access X title line and icon name:\ + :hs:\ + :ws#40:\ + :ds=\E]0;\007:fs=^G:ts=\E]0;:tc=xterm: +xterm+sl-twm|access X title line (pacify twm-descended window managers):\ + :hs:\ + :ws#40:\ + :ds=\E]2;\007:fs=^G:ts=\E]2;:tc=xterm: + +# +# The following xterm variants don't depend on your base version +# +# xterm with bold instead of underline +xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold:\ + :so=\E[7m:us=\E[1m:\ + :tc=xterm: +# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr) +# (kterm should not invoke DEC Graphics as the alternate character set +# -- Kenji Rikitake) +kterm|kterm kanji terminal emulator (X window system):\ + :es:hs:\ + :Km=\E[M:ac@:ae@:as@:cs=\E[%i%d;%dr:ds=\E[?H:eA@:fs=\E[?F:\ + :op=\E[39;49m:rc=\E8:sc=\E7:ts=\E[?E\E[?%i%dT:\ + :tc=xterm-r6:tc=klone+color: +# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file +xterm-nic|xterm with ich/ich1 suppressed for non-curses programs:\ + :IC@:ei=:ic@:im=:\ + :tc=xterm: +# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996 +xterm1|xterm terminal emulator ignoring the alternate screen buffer:\ + :te@:ti@:\ + :tc=xterm: + +# This describes the capabilities of color_xterm, an xterm variant from +# before ECMA-64 color support was folded into the main-line xterm release. +# This entry is straight from color_xterm's maintainer. +# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996 +# The README's with the distribution also say that it supports SGR 21, 24, 25 +# and 27, but they are not present in the terminfo or termcap. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +color_xterm|cx|cx100|color_xterm color terminal emulator for X:\ + :am:bs:km:mi:ms:xn:\ + :co#80:it#8:li#65:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ + :i1=\E[r\E[m\E[?7h\E[?4;6l\E[4l:im=\E[4h:k1=\E[11~:\ + :k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\EOB:kh=\E[7~:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\ + :sf=^J:so=\E[7m:sr=\EM:ta=^I:te=\E>\E[?41;1r:\ + :ti=\E[?1;41s\E[?1;41h\E=:ue=\E[24m:up=\E[A:us=\E[4m: + +# The 'nxterm' distributed with Redhat Linux is a slight rehack of +# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support +# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This +# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except +# that each of those implements the home, end, delete keys differently. +nxterm|xterm-color|generic color xterm:\ + :NC@:\ + :op=\E[m:tc=xterm-r6:tc=klone+color: + +# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997 +# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997 +# Notes: +# rxvt 2.21b uses +# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O, +# but some applications don't work with that. +# It also has an AIX extension +# box2=lqkxjmwuvtn, +# and +# ech=\E[%p1%dX, +# but the latter does not work correctly. +# +# The distributed terminfo says it implements hpa and vpa, but they are not +# implemented correctly, using relative rather than absolute positioning. +# +# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM. +# Since rxvt is not really compatible with xterm, it should be configured as +# "rxvt" (monochrome) and "rxvt-color". +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +rxvt|rxvt terminal base (X Window System):\ + :am:bs:eo:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ + :ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\ + :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\ + :k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\ + :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\ + :kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[0m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\ + :se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\ + :vs=\E[?25h: +rxvt-color|rxvt terminal emulator (X Window System):\ + :Co#8:pa#64:\ + :AB=\E[%p1%{40}%+%dm:AF=\E[%p1%{30}%+%dm:me=\E[m\017:\ + :op=\E[39;49m:\ + :tc=rxvt: + +# These (xtermc and xtermm) are distributed with Solaris. They refer to a +# variant of xterm which is apparently no longer supported, but are interesting +# because they illustrate SVr4 curses mouse controls - T.Dickey +# (untranslatable capabilities removed to fit entry within 1023 bytes) +xtermm|xterm terminal emulator (monocrome):\ + :am:bs:km:mi:ms:xn:\ + :BT#3:co#80:it#8:li#24:\ + :@7=\E[Y:@8=\EOM:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ + :F1=\EOZ:F2=\EOA:Gm=\E[%p1%dY:IC=\E[%d@:K1=\EOq:K2=\EOr:\ + :K3=\EOs:K4=\EOp:K5=\EOn:Km=\E[^_:LE=\E[%dD:RI=\E[%dC:\ + :RQ=\E[492Z:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\ + :ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:k;=\EOY:kN=\E[U:\ + :kP=\E[V:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:ku=\EOA:\ + :le=\E[1D:mb=@:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:\ + :r1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\ + :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E@0\E[?4r:\ + :ti=\E@0\E[?4s\E[?4h\E@1:up=\E[A: + +xtermc|xterm terminal emulator (color):\ + :Co#8:NC#7:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:\ + :..Sb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\ + :..Sf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\ + :op=\E[100m:\ + :tc=xtermm: + +# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995 +# Here's a termcap entry I've been using for xterm_color, which comes +# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the +# color stuff, I also have a status line defined as the window manager +# title bar. [I have translated it to terminfo -- ESR] +xterm-pcolor|xterm with color used for highlights and status line:\ + :md=\E[1m\E[43m:mr=\E[7m\E[34m:so=\E[7m\E[31m:\ + :us=\E[4m\E[42m:\ + :tc=xterm+sl:tc=xterm-r6: + +# HP ships this, except for the pb#9600 which was merged in from BSD termcap. +# (hpterm: added empty <acsc>, we have no idea what ACS chars look like --esr) +hpterm|X-hpterm|hp X11 terminal emulator:\ + :am:da:db:mi:xs:\ + :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:pb#9600:sg#0:\ + :LF=\E&j@:LO=\E&jB:ac=:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:\ + :cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:\ + :cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:\ + :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:\ + :kA=\EL:kC=\EJ:kD=\EP:kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:\ + :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:\ + :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:\ + :ku=\EA:le=^H:md=\E&dB:me=\E&d@:mh=\E&dH:ml=\El:mr=\E&dB:\ + :mu=\Em:nd=\EC:..pk=\E&f%p1%dk%p2%l%dL%p2%s:\ + :..pl=\E&f1a%p1%dk%p2%l%dL%p2%s:\ + :..pn=\E&f%p1%dk%p2%l%dd0L%p2%s:\ + :..px=\E&f2a%p1%dk%p2%l%dL%p2%s:\ + :..sa=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;:\ + :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:\ + :up=\EA:us=\E&dD: + +# This entry describes an xterm with Sun-style function keys enabled +# via the X resource setting "xterm*sunFunctionKeys:true" +# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same. +# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z> +# because we want it to be seen as <kcpy>. +# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance +# with their Sun keyboard labels instead. +# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996 +xterm-sun|xterm with sunFunctionKeys true:\ + :%1=\E[196z:&8=\E[195z:@0=\E[200z:@5=\E[197z:@7=\E[220z:\ + :F1=\E[192z:F2=\E[193z:F3=\E[194z:F4=\E[195z:F5=\E[196z:\ + :F7=\E[198z:F8=\E[199z:F9=\E[200z:FA=\E[201z:FL=\E[208z:\ + :FM=\E[209z:FN=\E[210z:FO=\E[211z:FP=\E[212z:FQ=\E[213z:\ + :FS=\E[215z:FU=\E[217z:FW=\E[219z:FY=\E[221z:K2=\E[218z:\ + :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\ + :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:\ + :kI=\E[2z:kN=\E[222z:kP=\E[216z:kh=\E[214z:\ + :tc=xterm: +xterms-sun|small (80x24) xterm with sunFunctionKeys true:\ + :co#80:li#24:tc=xterm-sun: + +# This is for the extensible terminal emulator on the X11R6 contrib tape. +emu|emu native mode:\ + :mi:ms:xo:\ + :Co#15:co#80:it#8:li#24:pa#64:vt#200:\ + :*6=\Esel:@0=\Efind:@8=^M:AB=\Es%i%p1%d;:AF=\Er%i%p1%d;:\ + :AL=\EQ%d;:DC=\EI%d;:DL=\ER%d;:DO=\Ep%d;:F1=\EF11:\ + :F2=\EF12:F3=\EF13:F4=\EF14:F5=\EF15:F6=\EF16:F7=\EF17:\ + :F8=\EF18:F9=\EF19:FA=\EF20:LE=\Eq-%d;:RI=\Eq%d;:\ + :UP=\Ep-%d;:\ + :ac=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244:\ + :ae=\0:al=\EQ1;:as=\0:bl=^G:cb=\EL:cd=\EN:ce=\EK:\ + :cl=\EP\EE0;0;:cm=\EE%d;%d;:cr=^M:cs=\Ek%d;%d;:ct=\Ej:\ + :dc=\EI1;:dl=\ER1;:do=\EB:eA=\0:ec=\Ej%d;:ei=\EX:\ + :ho=\EE0;0;:im=\EY:is=\ES\Er0;\Es0;:k0=\EF00:k1=\EF01:\ + :k2=\EF02:k3=\EF03:k4=\EF04:k5=\EF05:k6=\EF06:k7=\EF07:\ + :k8=\EF08:k9=\EF09:k;=\EF10:kD=\177:kI=\Eins:kN=\Enext:\ + :kP=\Eprior:kb=^H:kd=\EB:kl=\EC:kr=\ED:ku=\EA:le=^H:\ + :mb=\ES\EW:md=\ES\EU:me=\ES:mr=\ES\ET:nd=\ED:\ + :oc=\Es0;\Er0;:r2=\ES\Es0;\Er0;:se=\ES:sf=\EG:so=\ES\ET:\ + :sr=\EF:st=\Eh:ta=^I:ue=\ES:up=\EA:us=\ES\EV:ve=\Ea:vi=\EZ:\ + :vs=\Ea: + +######## COMMERCIAL WORKSTATION CONSOLES +# + +#### Alpha consoles +# + +# This is from the OSF/1 Release 1.0 termcap file +pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation:\ + :am:xo:\ + :co#80:li#25:\ + :al=\E[L:bl=^G:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nw=^M^J:se=\E[m:so=\E[7m:ta=^I:up=\E[A: + +#### AT&T consoles +# + +# This actually describes the generic SVr4 display driver for Intel boxes. +# The :mh=\E[2m: isn't documented and therefore may not be reliable. +# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995 +att6386|at386|386at|AT&T WGS 6386 console:\ + :am:bw:eo:xo:\ + :co#80:it#8:li#25:\ + :@7=\E[Y:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\EOZ:\ + :F2=\EOA:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:\ + :SR=\E[%dT:UP=\E[%dA:\ + :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\ + :ae=\E[10m:al=\E[1L:as=\E[12m:bl=^G:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:ch=\E[%i%dG:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\ + :ct=\E[2g:cv=\E[%i%dd:dc=\E[P:dl=\E[1M:do=\E[B:ec=\E[%dX:\ + :ei=:ho=\E[H:ic=\E[1@:im=:is=\E[0;10;39m:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\ + :k;=\EOY:kB=^]:kD=\E[P:kI=\E[@:kM=\E0:kN=\E[U:kP=\E[V:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\ + :md=\E[1m:me=\E[0;10m:mh=\E[2m:mk=\E[9m:mr=\E[7m:nd=\E[C:\ + :nw=\r\E[S:rc=\E8:\ + :..sa=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m:\ + :sc=\E7:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=1C:vi=\E[=C:\ + :tc=klone+color: +# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr) +pc6300plus|AT&T 6300 plus:\ + :am:bs:xo:\ + :co#80:li#24:\ + :al=\E[1L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[H:\ + :cm=\E[%i%2;%2H:cr=^M:ct=\E[3g:dc=\E[1P:dl=\E[1M:do=\E[B:\ + :ei=:ho=\E[H:ic=\E[1@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:\ + :k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\EOk:k;=\EOu:kb=^H:\ + :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mh=\E[2m:mk=\E[9m:mr=\E[7m:nd=\E[C:nw=^M^J:\ + :se=\E[m:sf=^J:so=\E[7m:st=\EH:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[=1C:vi=\E[=C: + +# From: Benjamin C. W. Sittler <bsittler@nmt.edu> +# +# I have a UNIX PC which I use as a terminal attached to my Linux PC. +# Unfortunately, the UNIX PC terminfo entry that comes with ncurses +# is broken. All the special key sequences are broken, making it unusable +# with Emacs. The problem stems from the following: +# +# The UNIX PC has a plethora of keys (103 of them, and there's no numeric +# keypad!), loadable fonts, and strange highlighting modes ("dithered" +# half-intensity, "smeared" bold, and real strike-out, for example.) It also +# uses resizable terminal windows, but the bundled terminal program always +# uses an 80x24 window (and doesn't support seem to support a 132-column +# mode.) +# +# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a +# library which was a superset of SVr3.5 curses (called tam, for "terminal +# access method".) tam includes support for real, overlapping windows, +# onscreen function key labels, and bitmap graphics. But since the primary +# user interface on the UNIX PC was a GUI program (ua, for "user +# assistant",) and remote administration was considered important for the +# machine, tam also supported VT100-compatible terminals attached to the +# serial port or used across the StarLan network. To simulate the extra keys +# not present on a VT100, users could press ESC and a two-letter sequence, +# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences, +# however, were not the same as those sent by the actual Undo key. The +# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example. +# (If you're interested in adding some of the tam calls to ncurses, btw, I +# have the full documentation and several programs which use tam. It also +# used an extended terminfo format to describe key sequences, special +# highlighting modes, etc.) +# +# KEYS: This means that ncurses would quite painful on the UNIX PC, since +# there are two sequences for every key-modifier combination (local keyboard +# sequence and remote "VT100" sequence.) But I doubt many people are trying +# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the +# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume) +# seem to have been built from the manual describing the VT100 sequences. +# This means it doesn't work for a real live UNIX PC. +# +# FONTS: The UNIX PC also has a strange interpretation of "alternate +# character set". Rather than the VT100 graphics you might expect, it allows +# up to 8 custom fonts to be loaded at any given time. This means that +# programs expecting VT100 graphics will usually be disappointed. For this +# reason I have disabled the smacs/rmacs sequences, but they could easily be +# re-enabled. Here are the relevant control sequences (from the ESCAPE(7) +# manpage), should you wish to do so: +# +# SGR10 - Select font 0 - ESC [ 10 m or SO +# SGR11 - Select font 1 - ESC [ 11 m or SI +# SGR12 - Select font 2 - ESC [ 12 m +# ... (etc.) +# SGR17 - Select font 7 - ESC [ 17 m +# +# Graphics for line drawing are not reliably found at *any* character +# location because the UNIX PC has dynamically reloadable fonts. I use font +# 0 for regular text and font 1 for italics, but this is by no means +# universal. So ASCII line drawing is in order if smacs/rmacs are enabled. +# +# MISC: The cursor visible/cursor invisible sequences were swapped in the +# distributed terminfo. +# +# To ameliorate these problems (and fix a few highlighting bugs) I rewrote +# the UNIX PC terminfo entry. The modified version works great with Lynx, +# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC +# attached by serial cable. In Emacs, even the Undo key works, and many +# applications can now use the F1-F8 keys. +# +# esr's notes: +# Terminfo entry for the AT&T Unix PC 7300 +# from escape(7) in Unix PC 7300 Manual. +# Somewhat similar to a vt100-am (but different enough +# to redo this from scratch.) +# +# /*************************************************************** +# * +# * FONT LOADING PROGRAM FOR THE UNIX PC +# * +# * This routine loads a font defined in the file ALTFONT +# * into font memory slot #1. Once the font has been loaded, +# * it can be used as an alternative character set. +# * +# * The call to ioctl with the argument WIOCLFONT is the key +# * to this routine. For more information, see window(7) in +# * the PC 7300 documentation. +# ***************************************************************/ +# #include <string.h> /* needed for strcpy call */ +# #include <sys/window.h> /* needed for ioctl call */ +# #define FNSIZE 60 /* font name size */ +# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */ +# /* +# * The file /usr/lib/wfont/special.8.ft comes with the +# * standard PC software. It defines a graphics character set +# * similar to that of the Teletype 5425 terminal. To view +# * this or other fonts in /usr/lib/wfont, use the command +# * cfont <filename>. For further information on fonts see +# * cfont(1) in the PC 7300 documentation. +# */ +# +# struct altfdata /* structure for alt font data */ +# { +# short altf_slot; /* memory slot number */ +# char altf_name[FNSIZE]; /* font name (file name) */ +# }; +# ldfont() +# { +# int wd; /* window in which altfont will be */ +# struct altfdata altf; +# altf.altf_slot=1; +# strcpy(altf.altf_name,ALTFONT); +# for (wd =1; wd < 12; wd++) { +# ioctl(wd, WIOCLFONT,&altf); +# } +# } +# +# (att7300: added :vi:/:ve:/:ic:/<invis> from the BSDI entry, +# they're confirmed by the man page for the System V display---esr) +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300:\ + :am:xo:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:al=\E[L:bl=^G:bt=\E^I:cd=\E[0J:ce=\E[0K:\ + :cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=:ho=\E[H:i1=\017\E[=1w:ic=\E[@:im=:k1=\EOc:\ + :k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:\ + :kD=\ENf:kI=\ENj:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[9m:md=\E[1m:\ + :me=\E[0;10m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:se=\E[m:\ + :sf=^J:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=0C:\ + :vi=\E[=1C: + +#### Hewlett-Packard consoles +# +# These are descriptions for the HP700 series, the workstations formerly +# known as Apollos. HP terminals are described elsewhere in the file +# + +# From: Victor Duchovni <vic@fine.princeton.edu> +# (hp700-wy: removed obsolete ":nl=^J:"; +# replaced /usr/share/tabset/hp700-wy with std because :it#8:,:st=\E1: -- esr) +hp700-wy|HP700/41 emulating wyse30:\ + :am:bs:bw:mi:ms:\ + :co#80:it#8:li#24:sg#1:\ + :al=0.7*\EE:bt=\EI:cd=\EY:ce=10\ET:cl=^Z:cm=\E=%+ %+ :\ + :cr=^M:ct=\E0:cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ei=\Er:ho=^^:\ + :i1=\E~"\EC\Er\E(\EG0\003\E`9\E`1:\ + :if=/usr/share/tabset/stdcrt:im=\Eq:kB=\EI:kC=^Z:kE=\ET:\ + :kI=\Eq:kM=\Er:kS=\EY:kT=\EI:kb=\177:kd=^V:kh=^^:kl=^H:kr=^L:\ + :ku=^K:le=^H:ll=^^^K:me=10\EG0:nd=^L:se=10\EG0:so=10\EG4:\ + :sr=\Ej:st=\E1:ta=^I:ue=10\EG0:up=^K:us=10\EG8: +hp70092|hp70092a|hp70092A|HP 700/92:\ + :am:da:db:xs:\ + :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:\ + :LF=\E&j@:LO=\E&jB:ac=0cjgktlrmfn/q\054t5u6v8w7x.:ae=^O:\ + :al=\EL:as=^N:bl=^G:bt=\Ei:ce=\EK:ch=\E&a%dC:\ + :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\ + :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\ + :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\ + :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\ + :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:\ + :md=\E&dB:me=\E&d@:mh=\E&dH:mr=\E&dB:nd=\EC:se=\E&d@:\ + :so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:up=\EA:us=\E&dD: + +# HP 700/44 Setup parameters: +# Terminal Mode HP-PCterm +# Inhibit Auto Wrap NO +# Status Line Host Writable +# PC Character Set YES +# Twenty-Five Line Mode YES +# XON/XOFF @128 or 64 (sc) +# Keycode Mode NO or YES (sc) +# Backspace Key BS or BS/DEL +# +# :is: sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; +# \E\\? does not turn off keycode mode +# <smsc> sets alternate start/stop; keycode on +hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode:\ + :am:eo:xn:xo:\ + :co#80:li#25:\ + :@7=\E[4~:RA=\E[?7l:S4=\E[>11h\EPO**x0/65;1/67\E\:\ + :S5=\E[>11l\EP1**x0/11;1/13\E[m\E\:SA=\E[?7h:XF=g:XN=e:\ + :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :ic=\E[@:im=:\ + :is=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\:\ + :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\ + :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:\ + :kB=\E[Z:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:me=\E[m:nd=\E[C:se=\E[m:sf=^J:\ + :so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l: + +#### Iris consoles +# + +# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is +# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes +# for the application keypad mode. We have added iris-ansi-ap rather than +# change the original to keypad mode. +# +# (iris-ansi: added rmam/smam based on init string -- esr) +# +# This entry, and those derived from it, is used in xwsh (also known as +# winterm). Some capabilities that do not fit into the terminfo model +# include the shift- and control-functionkeys: +# +# F1-F12 generate different codes when shift or control modifiers are used. +# For example: +# F1 \E[001q +# shift F1 \E[013q +# control-F1 \E[025q +# +# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e., +# \EOP to \EOS. The shifted and control modifiers still do the same thing. +# +# The cursor keys also have different codes: +# control-up \E[162q +# control-down \E[165q +# control-left \E[159q +# control-right \E[168q +# +# shift-up \E[161q +# shift-down \E[164q +# shift-left \E[158q +# shift-right \E[167q +# +# control-tab \[072q +# +# iris-ansi-net alias helps with IRIX does when you rsh to a remote system. +iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100):\ + :am:\ + :co#80:it#8:li#40:\ + :!2=\E[218q:#2=\E[143q:#4=\E[158q:%9=\E[209q:%f=\E[210q:\ + :%i=\E[167q:&7=\E[217q:*4=\E[P:*7=\E[147q:@7=\E[146q:\ + :@8=^M:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:F1=\E[011q:\ + :F2=\E[012q:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\ + :UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:\ + :ho=\E[H:is=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8:\ + :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\ + :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:k;=\E[010q:\ + :kB=\E[Z:kD=\177:kI=\E[139q:kM=\E[146q:kN=\E[154q:\ + :kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=\E[D:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :pk=\EP101;%d.y%s\E\:rc=\E8:sc=\E7:se=\E[m:sf=\ED:\ + :so=\E[1;7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[9/y\E[12/y\E[=6l:vs=\E[10/y\E[=1h\E[=2l\E[=6h: +iris-ansi-ap|IRIS ANSI in application-keypad mode:\ + :@8=\EOM:F1=\E[011q:F2=\E[012q:is=\E[?1l\E=\E[?7h:\ + :k9=\E[009q:k;=\E[010q:\ + :tc=iris-ansi: + +# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX +# (T.Dickey 98/1/24) +iris-color|xwsh|IRIX ANSI with color:\ + :NC#33:\ + :DC=\E[%dP:IC=\E[%d@:ZH=\E[3m:ZR=\E[23m:cs=\E[%i%d;%dr:\ + :ec=\E[%dX:ei=:im=:mh=\E[2m:r1=\Ec:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\ + :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[24m:\ + :tc=klone+color:tc=iris-ansi-ap: + +# (wsiris: this had extension capabilities +# :HS=\E7F2:HE=\E7F7:\ +# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite: +# See the note on Iris extensions near the end of this file. +# Finally, removed suboptimal :cl:=\EH\EJ and added :do: & +# :vb: from BRL -- esr) +wsiris|iris40|iris emulating a 40 line visual 50 (approximately):\ + :am:bs:nc:pt:\ + :co#80:it#8:kn#3:li#40:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :dl=\EM:\ + :do=\EB:ho=\EH:is=\E7B0\E7F7\E7C2\E7R3:k0=\E0:k1=\E1:\ + :k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:k8=\E8:k9=\E9:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:me=\E7F7:mh=\E7F2:nd=\EC:\ + :nl=\EB:se=\E0@:sf=^J:so=\E9P:sr=\EI:ta=^I:ue=\E7R3\E0@:\ + :up=\EA:us=\E7R2\E9P:vb=\E7F4\E7B1\013\E7F7\E7B0:ve=\E>:\ + :vs=\E;: + +#### NeWS consoles +# +# Console terminal windows under the NeWS (Sun's Display Postscript windowing +# environment). Note: these have nothing to do with Sony's News workstation +# line. +# + +# Entry for NeWS's psterm from Eric Messick & Hugh Daniel +# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr) +psterm|psterm-basic|NeWS psterm-80x34:\ + :am:bs:hs:km:ul:\ + :co#80:it#8:li#34:\ + :al=\EA:cd=\EB:ce=\EC:cl=^L:cm=\E%d;%d;:cs=\EE%d;%d;:\ + :dc=\EF:dl=\EK:do=\EP:ei=\ENi:fs=\ENl:ho=\ER:i1=\EN*:\ + :im=\EOi:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\ET:ll=\EU:\ + :mb=\EOb:md=\EOd:me=\EN*:mr=\EOr:nd=\EV:rc=^\:sc=^]:se=\ENo:\ + :sf=\EW:so=\EOo:sr=\EX:ta=^I:te=\ENt:ti=\EOt:ts=\EOl:\ + :ue=\ENu:up=\EY:us=\EOu:vb=\EZ: +psterm-96x48|NeWS psterm 96x48:\ + :co#96:li#48:tc=psterm: +psterm-90x28|NeWS psterm 90x28:\ + :co#90:li#28:tc=psterm: +psterm-80x24|NeWS psterm 80x24:\ + :co#80:li#24:tc=psterm: +# This is a faster termcap for psterm. Warning: if you use this termcap, +# some control characters you type will do strange things to the screen. +# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr) +psterm-fast|NeWS psterm fast version (flaky ctrl chars):\ + :am:bs:hs:km:ul:\ + :co#80:it#8:li#34:\ + :al=^A:cd=^B:ce=^C:cl=^L:cm=\004%d;%d;:cs=\005%d;%d;:dc=^F:\ + :dl=^K:do=^P:ei=^Ni:fs=^Nl:ho=^R:i1=^N*:im=^Oi:kd=\E[B:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^T:ll=^U:mb=^Ob:md=^Od:me=^N*:\ + :mr=^Or:nd=^V:rc=^\:sc=^]:se=^No:sf=^W:so=^Oo:sr=^X:ta=^I:\ + :te=^Nt:ti=^Ot:ts=^Ol:ue=^Nu:up=^Y:us=^Ou:vb=^Z: + +#### NeXT consoles +# +# Use `glasstty' for the Workspace application +# + +# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995 +next|NeXT console:\ + :am:xt:\ + :co#80:it#8:li#24:\ + :bl=^G:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:do=^J:ho=\E[H:\ + :kb=^H:kd=^J:kl=^H:le=^H:me=\E[m:nd=\E[C:nw=^M^J:se=\E[4;1m:\ + :sf=^J:so=\E[4;2m:ta=^I:up=\E[A: +nextshell|NeXT Shell application:\ + :am:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:le=^H:nw=^M^J:ta=^I: + +#### SCO consoles +# + +# SCO console and SOS-Syscons console for 386bsd +# (scoansi: had unknown capabilities +# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\ +# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C: +# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\ +# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\ +# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\ +# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based +# on the :as:=\E[12m -- esr) +# SCO function keys and <acsc> corrected by Thomas Dickey. +# In this description based on SCO's keyboard(HW) manpage list of default function key +# values: +# F13-F24 are shifted F1-F12 +# F25-F36 are control F1-F12 +# F37-F48 are shift+control F1-F12 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +scoansi|SCO Extended ANSI standard crt:\ + :am:eo:xo:\ + :Co#8:co#80:it#8:li#25:pa#64:\ + :@1=\E[E:@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:F1=\E[W:\ + :F2=\E[X:F3=\E[Y:F5=\E[a:F6=\E[b:F7=\E[c:F8=\E[d:F9=\E[e:\ + :FA=\E[f:FB=\E[g:FC=\E[h:FD=\E[i:FE=\E[j:FF=\E[k:FG=\E[l:\ + :FH=\E[m:FI=\E[n:FJ=\E[o:FK=\E[p:FL=\E[q:FM=\E[r:FN=\E[s:\ + :FO=\E[t:FP=\E[u:FQ=\E[v:FR=\E[w:FS=\E[x:FT=\E[y:FU=\E[z:\ + :FV=\E[@:FW=\E[[:FX=\E[\:FY=\E[]:FZ=\E[\136:Fa=\E[_:\ + :Fb=\E[`:Fc=\E[{:\ + :ac=0[5566778899\072\072;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`ja0fxgqh2jYk?lZm@nEqDtCu4vAwBx3~y:\ + :ae=\E[10m:al=\E[L:as=\E[12m:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ + :ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\ + :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:k;=\E[V:kB=\E[Z:\ + :kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0;10m:\ + :mk=\E[8m:mr=\E[7m:nd=\E[C:op=\E[37;40m:se=\E[m:sf=\E[S:\ + :so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +#### Sun consoles +# + +# :is1: resets scrolling region in case a previous user had used "tset vt100" +oldsun|Sun Microsystems Workstation console:\ + :am:bs:km:mi:ms:\ + :co#80:it#8:li#34:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:i1=\E[1r:ic=\E[@:im=:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:ta=^I:up=\E[A: +# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995 +# :li: capability later corrected by J.T. Conklin <jtc@cygnus.com> +# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998) +sun-il|Sun Microsystems console with working insert-line:\ + :am:km:ms:\ + :co#80:li#34:\ + :%7=\E[194z:&5=\E[193z:&8=\E[195z:@7=\E[220z:AL=\E[%dL:\ + :DC=\E[%dP:DL=\E[%dM:F1=\E[234z:F2=\E[235z:IC=\E[%d@:\ + :K2=\E[218z:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ic=\E[@:im=:\ + :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\ + :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:\ + :kD=\177:kN=\E[222z:kP=\E[216z:kb=^H:kd=\E[B:kh=\E[214z:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md@:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r2=\E[s:\ + :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m:\ + :se=\E[m:sf=^J:so=\E[7m:ta=^I:u8=\E[1t:u9=\E[11t:ue@:\ + :up=\E[A:us@: +# On a SparcStation 5, :al:/:AL: flake out on the last line. +# Unfortunately, without them the terminal has no way to scroll. +sun-ss5|Sun SparcStation 5 console:\ + :AL@:al@:tc=sun-il: +# If you are using an SS5, change the sun definition to use sun-ss5. +sun|sun1|sun2|Sun Microsystems Inc. workstation console:\ + :tc=sun-il: + +# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985 +sun-s|Sun Microsystems Workstation window with status line:\ + :hs:\ + :ds=\E]l\E\:fs=\E\:ts=\E]l:tc=sun: +sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs:\ + :hs:\ + :ds=\E]l\E\:fs=\E\:ts=\E]l:tc=sun-e: +sun-48|Sun 48-line window:\ + :co#80:li#48:tc=sun: +sun-34|Sun 34-line window:\ + :co#80:li#34:tc=sun: +sun-24|Sun 24-line window:\ + :co#80:li#24:tc=sun: +sun-17|Sun 17-line window:\ + :co#80:li#17:tc=sun: +sun-12|Sun 12-line window:\ + :co#80:li#12:tc=sun: +sun-1|Sun 1-line window for sysline:\ + :es:hs:\ + :co#80:li#1:\ + :ds=^L:fs=\E[K:ts=^M:tc=sun: +sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character:\ + :ei@:ic@:im@:\ + :tc=sun: +sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history:\ + :li#35:\ + :te=\E[>4h:ti=\E[>4l:tc=sun: + +#### Common Desktop Environment +# + +# This ships with Sun's CDE in Solaris 2.5 +# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net> +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +dtterm|CDE desktop terminal:\ + :am:mi:ms:xn:xo:\ + :co#80:it#8:li#24:lm#0:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\ + :ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E F\E>\E[?1l\E[?7h\E[?45l:k1=\E[11~:k2=\E[12~:\ + :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :rc=\E8:sc=\E7:se=\E[22;27m:sf=\ED:so=\E[2;7m:sr=\EM:\ + :st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:\ + :ve=\E[?25h:vi=\E[?25l: + +#### Mach +# + +# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk> +mach|Mach Console:\ + :am:km:\ + :co#80:it#8:li#25:\ + :@7=\E[Y:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\ + :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:\ + :k9=\EOX:k;=\EOY:kD=\E[9:kH=\E[F:kI=\E[@:kN=\E[U:kP=\E[V:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[0m:mr=\E[7m:nd=\E[C:nw=^M^J:\ + :se=\E[0m:sf=^J:so=\E[7m:ta=^I:up=\E[A: +mach-bold|Mach Console with bold instead of underline:\ + :ue=\E[0m:us=\E[1m:\ + :tc=mach: + +#### OSF Unix +# + +# OSF/1 1.1 Snapshot 2 +pmcons|pmconsole|PMAX console:\ + :am:\ + :co#128:li#57:\ + :bl=^G:cl=^L:cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:sf=^J:ta=^I:up=^K: + +######## UNIX VIRTUAL TERMINALS AND TELNET CLIENTS +# + +#### FSF virtual terminal types +# + +# The codes supported by the term.el terminal emulation in GNU Emacs 19.30 +eterm|gnu emacs term.el terminal emulation:\ + :am:mi:xn:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ + :im=\E[4h:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:se=\E[m:\ + :sf=^J:so=\E[7m:ta=^I:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:\ + :ue=\E[m:up=\E[A:us=\E[4m: + +# Entries for use by the `screen' program by Juergen Weigert, +# Michael Schroeder, Oliver Laumann. The screen and +# screen-w entries came with version 3.7.1. The screen2 and screen3 entries +# come from University of Wisconsin and may be older. +# (screen: added :ve: on ANSI model -- esr) +# (screen: added <el1> -- TD) + +screen|VT 100/ANSI X3.64 virtual terminal:\ + :am:km:mi:ms:xn:\ + :Co#8:co#80:it#8:li#24:pa#64:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\ + :F2=\E[24~:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :ac=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :k;=\E[21~:kD=\E[3~:kH=\E[4~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:r2=\Ec:rc=\E8:sc=\E7:se=\E[23m:\ + :sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\EM:\ + :us=\E[4m:vb=\Eg:ve=\E[34h\E[?25h:vi=\E[?25l:vs=\E[34l:\ + :tc=ecma+color: + +screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols:\ + :co#132:tc=screen: + +screen2|old VT 100/ANSI X3.64 virtual terminal:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ic=:im=\E[4h:k0=\E~:\ + :k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:\ + :k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\ + :me=\E[m:nd=\E[C:nw=^M^J:r1=\Ec:rc=\E8:sc=\E7:se=\E[23m:\ + :sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:\ + :us=\E[4m: +# (screen3: removed unknown ":xv:LP:G0:" -- esr) +screen3|older VT 100/ANSI X3.64 virtual terminal:\ + :km:mi:ms:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\EOB:ke=\E>:kl=\EOD:kr=\EOC:ks=\E=:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:r1=\Ec:\ + :rc=\E8:sc=\E7:se=\E[23m:sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[24m:up=\EM:us=\E[4m: + +# Francesco Potorti <F.Potorti@cnuce.cnr.it>: +# NCSA telnet is one of the most used telnet clients for the Macintosh. It has +# been maintained until recently by the National Center for Supercomputer +# Applications, and it is feature rich, stable and free. It can be downloaded +# from www.ncsa.edu. This terminfo description file is based on xterm-vt220, +# xterm+sl, and the docs at NCSA. It works well. +# +# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode +# The terminal options should be set as follows: +# Xterm sequences ON +# use VT wrap mode ON +# use Emacs arrow keys OFF +# CTRL-COMND is Emacs meta ON +# 8 bit mode ON +# answerback string: "ncsa-vt220-8" +# setup keys: all disabled +# +# Application mode is not used. +# +# Other special mappings: +# Apple VT220 +# HELP Find +# HOME Insert here +# PAGEUP Remove +# DEL Select +# END Prev Screen +# PAGEDOWN Next Screen +# +# Though it supports ANSI color, NCSA Telnet uses color to represent blinking +# text. +# +# The status-line manipulation is a mapping of the xterm-compatible control +# sequences for setting the window-title. So you must use tsl and fsl in +# pairs, since the latter ends the string that is loaded to the window-title. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode:\ + :am:hs:km:mi:ms:xn:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E]0;\007:ei=\E[4l:fs=^G:ho=\E[H:\ + :if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>:k1=\E[17~:\ + :k2=\E[18:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E23~:\ + :k7=\E[24~:k8=\E[25~:k9=\E[26~:kD=\E[4~:kN=\E[6~:kP=\E[3~:\ + :kb=^H:kd=\E[B:kh=\E[2~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[27m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E[2J\E8:ti=\E7:ts=\E]0;:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l: +ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode:\ + :tc=ncsa-m:tc=klone+color: +ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode:\ + :hs@:\ + :ds@:fs@:ts@:tc=ncsa: +ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode:\ + :hs@:\ + :ds@:fs@:ts@:tc=ncsa-m: +# alternate -TD: +# The documented function-key mapping refers to the Apple Extended Keyboard +# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style +# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on +# some keyboards and many applications require these as F1-F4. +# +ncsa-vt220|NCSA Telnet using vt220-compatible function keys:\ + :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\ + :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:k;=\E[21~:\ + :tc=ncsa: + +#### Pilot Pro Palm-Top +# + +# From: Jason Downs <downsj@downsj.com>, 15 Jun 1997 (Top Gun Telnet's author) +pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional:\ + :am:xn:\ + :co#39:li#16:\ + :bl=^G:cl=\Ec:cm=\Em%+ %+ :cr=^M:do=^J:ho=\Em :kN=^L:kP=^K:\ + :kb=^H:kd=^J:kl=^H:le=^H:nw=\Em~ :se=\EB:sf=^J:so=\Eb:ta=^I: + +######## NON-UNIX CONSOLES +# + +#### MGR +# +# MGR is a Bell Labs window system lighter-weight than X. +# These entries describe MGR's xterm-equivalent. +# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997 +# + +mgr|Bellcore MGR (non X) window system terminal emulation:\ + :am:km:\ + :AL=\E%da:DC=\E%dE:DL=\E%dd:IC=\E%dA:RA=\E5S:SA=\E5s:\ + :al=\Ea:bl=^G:cd=\EC:ce=\Ec:cl=^L:cm=\E%r%d;%dM:cr=^M:\ + :cs=\E%d;%dt:dc=\EE:dl=\Ed:do=\Ef:ei=:hd=\E1;2f:hu=\E1;2u:\ + :ic=\EA:im=:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :md=\E2n:me=\E0n:mr=\E1n:nd=\Er:nw=^M^J:se=\E0n:sf=^J:\ + :so=\E1n:ta=^I:ue=\E0n:up=\Eu:us=\E4n:ve=\Eh:vi=\E9h:\ + :vs=\E0h: +mgr-sun|Mgr window with Sun keyboard:\ + :%1=\E[207z:%6=\E[198z:&8=\E[195z:@0=\E[200z:@5=\E197z:\ + :@7=\E[220z:@8=\E[250z:F1=\E[234z:F2=\E[235z:K1=\E[214z:\ + :K2=\E[218z:K3=\E[216z:K4=\E[220z:K5=\E[222z:k1=\E[224z:\ + :k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:k6=\E[229z:\ + :k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:kN=\E[222z:\ + :kP=\E[216z:kh=\E[214z:\ + :tc=mgr: +mgr-linux|Mgr window with Linux keyboard:\ + :@7=\E[4~:F1=\E[23~:F2=\E[24~:K1=\E[H:K2=\E[G:K3=\E[5~:\ + :K4=\E[Y:K5=\E[6~:k0=\E[[J:k1=\E[[A:k2=\E[[B:k3=\E[[C:\ + :k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:k;=\E[21~:kD=\E[3~:kN=\E[6~:kP=\E[5~:kh=\E[1~:tc=mgr: + +#### BeOS +# +# BeOS entry for Terminal program Seems to be almost ANSI +beterm|BeOS Terminal:\ + :am:eo:mi:ms:xn:xo:\ + :Co#8:NC#5:co#80:it#8:li#25:pa#64:\ + :&7=^Z:@7=\E[4~:AB=\E[4%p1%dm:AF=\E[3%p1%dm:AL=\E[%dL:\ + :DC=\E[%dP:DL=\E[%dM:F1=\E[21~:F2=\E[22~:IC=\E[%d@:\ + :Sb=\E[%+(m:Sf=\E[%+^^m:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :ch=\E[%i%dG:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=^J:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k1=\E[11~:k2=\E[12~:\ + :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[16~:k7=\E[17~:\ + :k8=\E[18~:k9=\E[19~:k;=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ + :kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:md=\E[1m:me=\E[0;10m:mr=\E[7m:nd=\E[C:nw=^M^J:\ + :op=\E[m:r1=\Ec:rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\ + :st=\EH:ta=^I:u6=\E[%i%d;%dR:u7=\E[6n:ue=\E[24m:up=\E[A:\ + :us=\E[4m: + +#### QNX +# + +# QNX 4.0 Console +# Michael's original version of this entry had <am@>, :ti=\Ei:, +# :te=\Eh\ER:; this was so terminfo applications could write the lower +# right corner without triggering a scroll. The ncurses terminfo library can +# handle this case with the :ic: capability, and prefers :am: for better +# optimization. Bug: The <op> capability resets attributes. +# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996 +# (removed: :sa=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,:) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +qnx|qnx4|qnx console:\ + :km:mi:ms:xt:\ + :co#80:it#4:li#25:\ + :al=\EE:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\ + :dc=\Ef:dl=\EF:do=^J:ei=:ho=\EH:ic=\Ee:im=:k1=\377\201:\ + :k2=\377\202:k3=\377\203:k4=\377\204:k5=\377\205:\ + :k6=\377\206:k7=\377\207:k8=\377\210:k9=\377\211:\ + :kD=\377\254:kI=\377\253:kN=\377\252:kP=\377\242:\ + :kd=\377\251:kh=\377\240:kl=\377\244:kr=\377\246:\ + :ku=\377\241:le=^H:mb=\E{:md=\E<:me=\E}\E]\E>\E):mr=\E(:\ + :nd=\EC:rp=\Eg%r%+ %.:se=\E):sf=^J:so=\E(:sr=\EI:ta=^I:\ + :te=\Eh\ER:ti=\Ei:ue=\E]:up=\EA:us=\E[:ve=\Ey1:vi=\Ey0:\ + :vs=\Ey2: + +# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998 +# (esr: commented out <scp> and :te: to avoid warnings.) +# (TD: derive from original qnx4 entry) +qnxt2|qnx 2.15 serial terminal:\ + :am:\ + :!3@:%h@:%j@:&7@:Sb@:Sf@:dc@:ei=:ic@:im=:rp@:se=\E>:so=\E<:te@:ti@:\ + :ve@:vi@:vs@:\ + :tc=qnx4: + +#### DOS ANSI.SYS variants +# +# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS +# documentation (except for the keyboard key reassignment feature, which +# doen't fit the <pfkey> model well). The klone+acs sequences were valid +# though undocumented. The <pfkey> capability is untested but should work for +# keys F1-F10 (%p1 values outside this range will yield unpredictable results). +# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995 +ansi.sys-old|ANSI.SYS under PC-DOS 2.1:\ + :am:bs:mi:ms:xo:\ + :co#80:li#25:\ + :RA=\E[?7l:SA=\E[?7h:ce=\E[k:cl=\E[2J:cm=\E[%i%d;%dH:\ + :do=\E[B:ho=\E[H:is=\E[m\E[?7h:kd=^J:kh=^^:kl=^H:kr=^L:\ + :ku=^K:le=^H:nd=\E[C:pk=\E[0;%+:;"%s":rc=\E[u:sc=\E[s:\ + :u6=\E[%i%d;%dR:u7=\E[6n:up=\E[A:\ + :tc=klone+color:tc=klone+sgr: +ansi.sys|ANSI.SYS 3.1 and later versions:\ + :ce=\E[K:tc=ansi.sys-old: + +# +# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS. +# This should only be used when the terminal emulator cannot redefine the keys. +# Since redefining keys with ansi.sys also affects PC-DOS programs, the key +# definitions must be restored. If the terminal emulator is quit while in vi +# or others using :ks:/:ke:, the keypad will not be defined as per PC-DOS. +# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix +# (^U and ^D are already defined for tn3270). The ESC is safe for vi but it +# does "beep". ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab. +# Note that :kl: is always BS, because PC-dos can tolerate this change. +# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi. +# Consequently the End keypad key could not be set (it is relatively safe and +# actually useful because it sends ^@ O, which beeps and opens a line above). +ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi:\ + :is=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:\ + :ke=\E[;71;0;71p\E[;72;0;72p\E[;73;0;73p\E[;77;0;77p\E[;80;0;80p\E[;81;0;81p\E[;82;0;82p\E[;83;0;83p:\ + :ks=\E[;71;30p\E[;72;11p\E[;73;27;21p\E[;77;12p\E[;80;10p\E[;81;27;4p\E[;82;27;27;105p\E[;83;127p:\ + :tc=ansi.sys: +# +# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer. +nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS:\ + :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\ + :is=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n:tc=ansi.sys: +# +# See ansi.sysk and nansi.sys above. +nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi:\ + :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\ + :is=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:tc=ansi.sysk: + +#### OS/2 +# + +# Except for the "-emx" suffixes, these are as distributed with EMX 0.9b, +# a Unix-style environment used on OS/2. (Note that the suffix makes some +# names longer than 14 characters, the nominal maximum). +# +# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs. +ansi-emx|ANSI.SYS color:\ + :am:eo:mi:ms:ut:xn:xo:\ + :Co#16:co#80:it#8:li#25:pa#64:\ + :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\ + :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[1;33;44m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\ + :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\ + :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\ + :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[0m\E[1;33;44m:mr=\E[5;37;41m:nd=\E[C:nw=^M^J:\ + :r1=\Ec:se=\E[0;44m\E[1;33m:sf=^J:so=\E[0;31;47m:st=\EH:\ + :ta=^I:u8=\E[?6c:u9=\E[c:ue=\E[0;44m\E[1;33m:up=\E[A:\ + :us=\E[1;31;44m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l: +ansi-color-2-emx|ANSI.SYS color 2:\ + :am:eo:mi:ms:ut:xn:xo:\ + :Co#16:co#80:it#8:li#25:pa#64:\ + :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\ + :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[0;37;44m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\ + :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\ + :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\ + :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;37;44m:\ + :mr=\E[1;37;46m:nd=\E[C:nw=^M^J:r1=\Ec:se=\E[0;37;44m:\ + :sf=^J:so=\E[1;37;46m:st=\EH:ta=^I:u8=\E[?6c:u9=\E[c:\ + :ue=\E[0;37;44m:up=\E[A:us=\E[1;36;44m:vb=\E[?5h\E[?5l:\ + :ve=\E[?25h:vi=\E[?25l: +ansi-color-3-emx|ANSI.SYS color 3:\ + :am:eo:mi:ms:ut:xn:xo:\ + :Co#16:co#80:it#8:li#25:pa#64:\ + :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\ + :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[0;37;40m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\ + :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\ + :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\ + :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;10m:\ + :mr=\E[1;37;46m:nd=\E[C:nw=^M^J:r1=\Ec:se=\E[0;37;40m:\ + :sf=^J:so=\E[1;37;46m:st=\EH:ta=^I:u8=\E[?6c:u9=\E[c:\ + :ue=\E[0;37;40m:up=\E[A:us=\E[0;36;40m:vb=\E[?5h\E[?5l:\ + :ve=\E[?25h:vi=\E[?25l: +mono-emx|stupid monochrome ansi terminal with only one kind of emphasis:\ + :am:\ + :co#80:it#8:li#24:\ + :K2=\E[G:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:do=\E[B:\ + :ho=\E[H:k0=\0D:k1=\0;:k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:\ + :k7=\0A:k8=\0B:k9=\0C:kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:\ + :kd=\0P:kh=\0G:kl=\0K:kr=\0M:ku=\0H:le=\E[D:me=\E[0m:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:ta=^I:up=\E[A: + +# Use this for cygwin32 (tested with beta 19.1) +# underline is colored bright magenta +# shifted kf1-kf12 are kf11-kf22 +cygwin|ansi emulation for cygwin32:\ + :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\ + :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\ + :FA=\E[34~:RA@:SA@:k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:\ + :k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:\ + :kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:\ + :tc=ansi.sys: + + +#### Windows NT +# +# This entry fits the Windows NT console when the _POSIX_TERM environment +# variable is set to 'on'. While the Windows NT POSIX console is seldom used, +# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP +# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating +# systems is not, and (surprise!) they match very well. +# +# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up +# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only +# are the installation instructions a pile of mind-numbing bureaucratese, +# but the termcap entry is actually broken and unusable as given; the :do: +# capability is misspelled "d". +# +# To use this, you need to a bunch of environment variables: +# +# SET _POSIX_TERM=on +# SET TERM=ansi +# SET TERMCAP=location of termcap file in POSIX file format +# which is case-sensitive. +# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap +# SET TMP=//C/TEMP +# +# Important note: setting the TMP environment variable in POSIX style renders +# it incompatible with a lot of other applications, including Visual C++. So +# you should have a separate command window just for vi. All the other +# variables may be permanently set in the Control Panel\System applet. +# +# You can find out more about the restrictions of this facility at +# <http://www.nentug.org/unix-to-nt/ntposix.htm>. +# +# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997 +ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode:\ + :am:bw:ms:\ + :co#80:it#8:li#25:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:\ + :ho=\E[H:kb=^H:kd=\E[V:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :me=\E[0m:mr=\E[7m:nd=\E[C:nw=\r\E[S:rc=\E[u:sc=\E[s:\ + :se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:up=\E[A: +# From: jew@venus.sunquest.com +# Date: 19 Feb 93 23:41:07 GMT +# Here's a combination of ansi and vt100 termcap +# entries that works nearly perfectly for me +# (Gateway 2000 Handbook and Microsoft Works 3.0): +pcmw|PC running Microsoft Works:\ + :am:xn:\ + :co#80:it#8:li#24:vt#3:\ + :bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\ + :cm=5\E[%i%d;%dH:cr=^M:ct=2\E[3g:do=^J:ho=\E[H:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:mb=2\E[5m:\ + :md=2\E[1m:me=2\E[m:mr=2\E[7m:nd=2\E[C:nw=5\r\ED:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/share/lib/tabset/vt100:sc=\E7:se=2\E[m:sf=5\ED:\ + :so=2\E[7m:sr=5\EM:st=2\EH:ta=^I:ue=2\E[m:up=2\E[A:\ + :us=2\E[4m: + +######## COMMON TERMINAL TYPES +# +# This section describes terminal classes and maker brands that are still +# quite common, but have proprietary command sets not blessed by ANSI. +# + +#### Lear-Siegler (adm) +# +# These guys are long since out of the terminals business, but +# in 1995 many current terminals still have an adm type as one of their +# emulations (usually their stupidest, and usually labeled adm3, though +# these `adm3' emulations normally have adm3a+ capabilities). +# +# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a +# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator') +# was being held to ground would trigger a send of the top line on the screen. +# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22 +# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>, +# for clearing up this point.) +# + +adm1a|adm1|lsi adm1a:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cl=\E;:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:le=^H:nd=^L:\ + :sf=^J:up=^K: +adm2|lsi adm2:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:kd=^J:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K: +# (adm3: removed obsolete ":ma=^K^P:" -- esr) +adm3|lsi adm3:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=^Z:cr=^M:do=^J:le=^H:sf=^J: +# The following ADM-3A switch settings are assumed for normal operation: +# SPACE U/L_DISP CLR_SCRN 24_LINE +# CUR_CTL LC_EN AUTO_NL FDX +# Other switches may be set for operator convenience or communication +# requirements. I recommend +# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF +# ETX_OFF EOT_OFF +# Most of these terminals required an option ROM to support lower case display. +# Open the case and look at the motherboard; if you see an open 24-pin DIP +# socket, you may be out of luck. +# +# (adm3a: some capabilities merged in from BRl entry -- esr) +adm3a|lsi adm3a:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=1\032:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:kd=^J:kl=^H:\ + :kr=^L:ku=^K:le=^H:ma=^K^P:nd=^L:nl=^J:r1=^N:rs=^N:sf=^J:\ + :up=^K: +adm3a+|adm3a plus:\ + :kb=^H:tc=adm3a: +# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr) +adm5|lsi adm5:\ + :sg#1:\ + :bl=^G:cd=\EY:ce=\ET:cr=^M:do=^J:kb=^H:kh=^^:se=\EG:so=\EG:tc=adm3a+: +# A lot of terminals other than adm11s use these. Wherever you see +# use=adm+sgr with some of its capabilities disabled, try the +# disabled ones. They may well work but not have been documented or +# expressed in the using entry. We'd like to cook up an :sa: but the +# :ae:/:as: sequences of the using entries vary too much. +adm+sgr|adm style highlight capabilities:\ + :me=\EG0:mk=\EG1:mr=\EG4:se=\EG0:so=\EG4:ue=\EG0:us=\EG8: +# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL +# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs> +# :kh: from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. :cl: could also +# be ^Z, according to his entry. +# (adm11: :us:=\EG4 was obviously erroneous because it also said +# :mr:=\EG4. Looking at other ADMs confirms this -- esr) +adm11|LSI ADM-11:\ + :am:bs:hs:\ + :co#80:kn#8:li#24:\ + :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ds=\Eh:\ + :fs=\E(\r:ho=^^:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:kb=^H:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:nd=^L:nl=^J:nw=^M^J:ta=^I:\ + :ts=\EF\E):up=^K:\ + :tc=adm+sgr: +# From: Andrew Scott Beals <bandy@lll-crg.ARPA> +# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995 +# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996 +# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had +# :is:=\Eq but that looked wrong; this :is: is from Dave Yost <esquire!yost> +# via BRL. That entry asserted :sg#1:, but I've left that out because +# neither earlier nor later ADMSs have it -- esr) +# +# You will need to get into the supervisor setup before you can set +# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should +# see a lot more setup options. +# +# While in supervisor setup you can also use following codes: +# +# Ctrl-P Personality character selections (configure for example what +# arrow keys send, if I recall correctly) +# Ctrl-T tabs 1-80 use left&right to move and up to set and +# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor +# Ctrl-B Binary setup (probably not needed. I think that everything can +# be set using normal setup) +# Ctrl-A Answerback mode (enter answerback message) +# Ctrl-U User friendly mode (normal setup) +# Ctrl-D Defaults entire setup and function keys from EPROM tables +# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds. +# Ctrl-R Reads both setup and functions keys from NVM. +# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status +# +# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to +# RTS/CTS used nowadays with virtually every modem and computer. 19200 +# bps works fine with hardware flow control. +# +# The following null-modem cable should fix this and enable you to use +# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also +# set ADM-12+ for DTR handshaking from supervisor setup. +# +# PC Serial ADM-12+ +# -------- ------- +# 2 - 3 +# 3 - 2 +# 4 - 5 +# 5 - 20 +# 6,8 - 4 +# 7 - 7 +# 20 - 6,8 +# +adm12|lsi adm12:\ + :am:bs:mi:pt:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E0:\ + :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:ic=\EQ:im=\Eq:\ + :is=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1:\ + :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\ + :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:kl=^H:kr=^L:\ + :ku=^K:le=^H:nd=^L:st=\E1:up=^K:\ + :tc=adm+sgr: +# (adm20: removed obsolete ":kn#7:" -- esr) +adm20|lear siegler adm20:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ + :cm=\E=%i%r%+^_%+^_:cr=^M:dc=\EW:dl=\ER:ei=:ho=^^:ic=\EQ:\ + :im=:k1=^A:k2=^B:k3=^W:k4=^D:k5=^E:k6=^X:k7=^Z:le=^H:me=\E(:\ + :nd=^L:se=\E(:so=\E):ta=^I:up=^K: +adm21|lear siegler adm21:\ + :sg#1:\ + :al=30*\EE:bl=^G:cd=\EY:ce=\ET:cr=^M:dc=\EW:dl=30*\ER:do=^J:\ + :ei=:ic=\EQ:im=:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:mk@:sf=^J:\ + :tc=adm+sgr:tc=adm3a: +# (adm22: ":em=:" was an obvious typo for ":ei=:"; also, +# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :"; +# removed bogus-looking \200 from before :cm:. -- esr) +adm22|lsi adm22:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\ + :is=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:l1=F1:l2=F2:\ + :l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:le=^H:me=\E(:nd=^L:se=\E(:\ + :so=\E):ta=\Ei:up=^K: +# ADM 31 DIP Switches +# +# This information comes from two versions of the manual for the +# Lear-Siegler ADM 31. +# +# Main board: +# rear of case +# +-||||-------------------------------------+ +# + S1S2 ||S + +# + ||3 + +# + + +# + ||S + +# + ||4 + +# + + +# + + +# + + +# + + +# + + +# +-+ +-+ +# + + +# + S5 S6 S7 + +# + == == == + +# +----------------------------------------------+ +# front of case (keyboard) +# +# S1 - Data Rate - Modem +# S2 - Data Rate - Printer +# ------------------------ +# Data Rate Setting +# ------------------- +# 50 0 0 0 0 +# 75 1 0 0 0 +# 110 0 1 0 0 +# 134.5 1 1 0 0 +# 150 0 0 1 0 +# 300 1 0 1 0 +# 600 0 1 1 0 +# 1200 1 1 1 0 +# 1800 0 0 0 1 +# 2000 1 0 0 1 +# 2400 0 1 0 1 +# 3600 1 1 0 1 +# 4800 0 0 1 1 +# 7200 1 0 1 1 +# 9600 0 1 1 1 +# x 1 1 1 1 +# +# S3 - Interface/Printer/Attributes +# --------------------------------- +# Printer Busy Control +# sw1 sw2 sw3 +# --------------- +# off off off Busy not active, CD disabled +# off off on Busy not active, CD enabled +# off on off Busy active on J5-20, CD disabled +# on off off Busy active on J5-19, CD disabled - Factory Set. +# on off on Busy active on J5-19, CD enabled +# +# sw4 Used in conjuction with S4 for comm interface control - Fact 0 +# +# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0 +# +# sw6 ON enables printer BUSY active LOW - Factory Setting +# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses +# +# sw7 ON - steady cursor - Factory Setting +# OFF - blinking cursor +# +# sw8 ON causes selected attribute character to be displayed +# OFF causes SPACE to be displayed instead - Factory Setting +# +# S4 - Interface +# -------------- +# Modem Interface +# S3 S4 S4 S4 S4 +# sw4 sw1 sw2 sw3 sw4 +# --------------------------- +# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and +# Current Loop disabled - Factory Setting +# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect +# disabled +# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and +# Current Loop Disabled +# +# sw5 ON disables dot stretching mode - Factory Setting +# OFF enables dot stretching mode +# sw6 ON enables blanking function +# OFF enables underline function - Factory Setting +# sw7 ON causes NULLS to be displayed as NULLS +# OFF causes NULLS to be displayed as SPACES - Factory Setting +# +# S5 - Word Structure +# ------------------- +# sw1 ON enables BREAK key - Factory Setting +# OFF disables BREAK key +# sw2 ON selects 50Hz monitor refresh rate +# OFF selects 60Hz monitor refresh rate - Factory Setting +# +# Modem Port Selection +# sw3 sw4 sw5 +# --------------- +# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits +# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits +# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set. +# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit +# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits +# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit +# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit +# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit +# +# sw6 ON sends bit 8 a 1 (mark) +# OFF sends bit 8 as 0 (space) - Factory Setting +# sw7 ON selects Block Mode +# OFF selects Conversation Mode - Factory Setting +# sw8 ON selects Full Duplex operation +# OFF selects Half Duplex operation - Factory Setting +# +# S6 - Printer +# ------------ +# sw1, sw2, sw6, sw7 Reserved - Factory 0 +# +# Printer Port Selection +# same as Modem above, bit 8 (when 8 DATA bits) is always = 0 +# +# sw8 ON enables Printer Port +# OFF disables Printer Port - Factory Setting +# +# S7 - Polling Address +# -------------------- +# sw1-7 Establish ASCII character which designates terminal polling address +# ON = logic 0 +# OFF = logic 1 - Factory Setting +# sw8 ON enables Polling Option +# OFF disables Polling Option - Factory Setting +# +# +# On some older adm31s, S4 does not exist, and S5-sw6 is not defined. +# +# This adm31 entry uses underline as the standout mode. +# If the adm31 gives you trouble with standout mode, check the DIP switch in +# position 6, bank @c11, 25% from back end of the circuit board. Should be +# OFF. If there is no such switch, you have an old adm31 and must use oadm31. +# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr) +adm31|lsi adm31 with sw6 set for underline mode:\ + :am:bs:mi:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eu\E0:k0=^A0\r:\ + :k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:k6=^A6\r:\ + :k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:\ + :me=\EG0:nd=^L:se=\EG0:sf=^J:so=\EG1:ue=\EG0:up=^K:us=\EG1: +adm31-old|o31|old adm31:\ + :so=\EG4:ue@:us@:tc=adm31: +# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL +adm36|LSI ADM36:\ + :bs:pt:\ + :kn#4:\ + :if=/usr/lib/tabset/vt100:\ + :is=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l:tc=vt100: +# (adm42: removed obsolete ":ma=^K^P:" -- esr) +adm42|lsi adm42:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:im=\Eq:ip=:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:pc=\177:sf=^J:ta=^I:ue@:\ + :up=^K:us@:vs=\EC\E3 \E3(:\ + :tc=adm+sgr: +# The following termcap for the Lear Siegler ADM-42 leaves the +# "system line" at the bottom of the screen blank (for those who +# find it distracting otherwise) +adm42-ns|lsi adm-42 with no system line:\ + :al=\EE\EF \011:bt=\EI\EF \011:cd=\EY\EF \011:\ + :ce=\ET\EF \011:cl=\E;\EF \011:cm=\E=%+ %+ \EF \011:\ + :dc=\EW\EF \011:dl=\ER\EF \011:ei=\Er\EF \011:\ + :im=\Eq\EF \011:tc=adm42: +# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985. +# The insert mode of this terminal is commented out because it's broken for our +# purposes in that it will shift the position of every character on the page, +# not just the cursor line! +# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996 +adm1178|1178|lsi adm1178:\ + :am:\ + :co#80:li#24:sg#1:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^J:ho=^^:ip=6*:kb=^H:kd=^J:kl=^H:\ + :le=^H:md=\E(:me=\E):mr=\EG4:nd=^L:nw=^M^J:pc=\177:se=\EG0:\ + :sf=^J:so=\EG4:ta=^I:ue=\EG0:up=^K:us=\EG1:vs=\EC\E3 \E3(: + +#### Qume (qvt) +# +# Qume, Inc. +# 3475-A North 1st Street +# San Jose CA 95134 +# Vox: (800)-457-4447 +# Fax: (408)-473-1510 +# Net: josed@techsupp.wyse.com (Jose D'Oliveira) +# +# Qume was bought by Wyse, but still (as of early 1995) has its own support +# group and production division. +# +# Discontinued Qume models: +# +# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+ +# built to replace them, and a qvt119+ which was a 101+ with available wide +# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations +# and an ANSI-compatible qvt203 that replaced it. Qume started producing +# ANSI-compatible terminals with the qvt323 and qvt61. +# +# Current Qume models (as of February 1995): +# +# All current Qume terminals have ANSI-compatible operation modes. +# Qume is still producing the qvt62, which features emulations for other +# popular lines such as ADDS, and dual-host capabilities. The qvt82 is +# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal +# with many emulations including Wyse370, Wyse 325, etc. Their newest +# model is the qvt520, which is vt420-compatible. +# +# There are some ancient printing Qume terminals under `Daisy Wheel Printers' +# +# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its +# setup mode. Shift-s should be a configuration save to NVRAM. + +qvt101|qvt108|qume qvt 101 and QVT 108:\ + :sg#1:tc=qvt101+: + +# This used to have :vs=\E.2: but no :ve: or :vi:. The BSD termcap +# file had :vs=\EM4 \200\200\200:. I've done the safe thing and yanked +# both. The :mr: is from BSD, which also claimed bold=\E( and dim=\E). +# What seems to be going on here is that this entry was designed so that +# the normal highlight is bold and standout is dim plus something else +# (reverse-video maybe? But then, are there two :mr: sequences?) +qvt101+|qvt101p|qume qvt 101 PLUS product:\ + :am:bw:hs:ul:\ + :co#80:li#24:sg#0:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\ + :ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=:fs=^M:ho=^^:\ + :ic=\EQ:im=:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ + :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\ + :kB=\EI:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:mk@:nd=^L:pf=\EA:po=\E@:se=\E(:sf=^J:\ + :so=\E0P\E):st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:ve=\E.4:\ + :tc=adm+sgr: +qvt102|qume qvt 102:\ + :ve=\E.:tc=qvt101: +# (qvt103: added <rmam>/<smam> based on init string -- esr) +qvt103|qume qvt 103:\ + :am:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\ + :UP=\E[%dA:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +qvt103-w|qume qvt103 132 cols:\ + :co#132:li#24:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt103: +qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals:\ + :am:hs:mi:ms:\ + :co#80:li#24:sg#0:\ + :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*1:cm=\E=%+ %+ :\ + :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:\ + :ho=^^:im=\Eq:is=\EDF\EC\EG0\Er\E(\E%EX:k0=^AI\r:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:\ + :ku=^K:le=^H:nd=^L:pf=\EA:po=\E@:sf=^J:sr=\EJ:st=\E1:ta=^I:\ + :ts=\Eg\Ef:up=^K:us=\EG8:vb=\En0\En1:ve=\E.4:vs=\E.2:\ + :tc=adm+sgr: +qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines:\ + :li#25:tc=qvt119+: +qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode:\ + :co#132:\ + :is=\EDF\EC\EG0\Er\E(\E%\EX\En4:tc=qvt119+: +qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25:\ + :li#25:tc=qvt119+: +qvt203|qvt203+|qume qvt 203 Plus:\ + :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:ip=:k0=\E[29~:\ + :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\ + :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[28~:sf=\n:\ + :tc=qvt103: +qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video):\ + :co#132:li#24:\ + :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt203: +# +# Since a command is present for enabling 25 data lines, +# a specific terminfo entry may be generated for the 203. +# If one is desired for the QVT 119 PLUS then 25 lines must +# be selected in the status line (setup line 9). +# +qvt203-25|QVT 203 PLUS with 25 by 80 column mode:\ + :co#80:li#25:\ + :is=\E[=40h\E[?3l:tc=qvt203: +qvt203-25-w|QVT 203 PLUS with 25 by 132 columns:\ + :co#132:li#25:\ + :r2=\E[?3h\E[=40h:tc=qvt203: + +#### Televideo (tvi) +# +# TeleVideo +# 550 East Brokaw Road +# PO Box 49048 95161 +# San Jose CA 95112 +# Vox: (408)-954-8333 +# Fax: (408)-954-0623 +# +# +# There are some tvi terminals that require incredible amounts of padding and +# some that don't. I'm assuming tvi912 and tvi920 are the old slow ones, and +# tvi912b, tvi912c, tvi920b, tvi920c are the new ones that don't need padding. +# +# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer +# Televideo terminals are ANSI and PC-ANSI compatible. + +tvi803|televideo 803:\ + :cl=\E*:tc=tvi950: + +# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86 +# Switch settings are: +# +# S1 1 2 3 4 +# D D D D 9600 +# D D D U 50 +# D D U D 75 +# D D U U 110 +# D U D D 135 +# D U D U 150 +# D U U D 300 +# D U U U 600 +# U D D D 1200 +# U D D U 1800 +# U D U D 2400 +# U D U U 3600 +# U U D D 4800 +# U U D U 7200 +# U U U D 9600 +# U U U U 19200 +# +# S1 5 6 7 8 +# U D X D 7N1 (data bits, parity, stop bits) (X means ignored) +# U D X U 7N2 +# U U D D 7O1 +# U U D U 7O2 +# U U U D 7E1 +# U U U U 7E2 +# D D X D 8N1 +# D D X U 8N2 +# D U D D 8O1 +# D U U U 8E2 +# +# S1 9 Autowrap +# U on +# D off +# +# S1 10 CR/LF +# U do CR/LF when CR received +# D do CR when CR received +# +# S2 1 Mode +# U block +# D conversational +# +# S2 2 Duplex +# U half +# D full +# +# S2 3 Hertz +# U 50 +# D 60 +# +# S2 4 Edit mode +# U local +# D duplex +# +# S2 5 Cursor type +# U underline +# D block +# +# S2 6 Cursor down key +# U send ^J +# D send ^V +# +# S2 7 Screen colour +# U green on black +# D black on green +# +# S2 8 DSR status (pin 6) +# U disconnected +# D connected +# +# S2 9 DCD status (pin 8) +# U disconnected +# D duplex +# +# S2 10 DTR status (pin 20) +# U disconnected +# D duplex +# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added :kh:, :le:, :do:, +# :sf:, <hpa>, <vpa>, :am:, :ms: from SCO entry -- esr) +tvi910|televideo model 910:\ + :am:bs:ms:\ + :co#80:it#8:li#24:sg#1:\ + :bl=^G:bt=\EI:cd=\EY:ce=\ET:ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :\ + :cr=^M:cv=\E[%+ :do=^J:ho=\E=\001\001:\ + :if=/usr/share/tabset/stdcrt:k0=^AI\r:k1=^A@\r:k2=^AA\r:\ + :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\ + :k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:\ + :sf=^J:ta=^I:up=^K:\ + :tc=adm+sgr: +# From: Alan R. Rogers <rogers%albany@csnet-relay> +# as subsequently hacked over by someone at SCO +# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr) +# +# Here are the 910+'s DIP switches (U = up, D = down, X = don't care): +# +# S1 1 2 3 4: +# D D D D 9600 D D D U 50 D D U D 75 D D U U 110 +# D U D D 135 D U D U 150 D U U D 300 D U U U 600 +# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600 +# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200 +# +# S1 5 6 7 8: +# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2 +# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2 +# D U D D 8O1 D U U U 8E2 +# +# S1 9 Autowrap (U = on, D = off) +# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received) +# S2 1 Mode (U = block, D = conversational) +# S2 2 Duplex (U = half, D = full) +# S2 3 Hertz (U = 50, D = 60) +# S2 4 Edit mode (U = local, D = duplex) +# S2 5 Cursor type (U = underline, D = block) +# S2 6 Cursor down key (U = send ^J, D = send ^V) +# S2 7 Screen colour (U = green on black, D = black on green) +# S2 8 DSR status (pin 6) (U = disconnected, D = connected) +# S2 9 DCD status (pin 8) (U = disconnected, D = connected) +# S2 10 DTR status (pin 20) (U = disconnected, D = connected) +# +tvi910+|televideo 910+:\ + :al=\EE:dc=\EW:dl=\ER:ei=:ho=^^:ic=\EQ:im=:k0=^A@\r:k1=^AA\r:\ + :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\ + :k8=^AH\r:k9=^AI\r:ll=\E=7 :\ + :tc=tvi910: + +# (tvi912: removed obsolete ":ma=^K^P^L :", added :vb: and +# :kh: from BRL entry -- esr) +tvi912|tvi914|tvi920|old televideo 912/914/920:\ + :am:bs:ms:pt:\ + :co#80:it#8:li#24:sg#1:\ + :al=\EE:bl=^G:cd=\Ey:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:\ + :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:\ + :if=/usr/share/tabset/stdcrt:im=:k0=^AI\r:k1=^A@\r:\ + :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\ + :k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ + :nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:ue=\Em:up=^K:us=\El:\ + :vb=\Eb\Ed: +# the 912 has a <funct> key that's like shift: <funct>8 xmits "^A8\r". +# The 920 has this plus real function keys that xmit different things. +# Terminfo makes you use the funct key on the 912 but the real keys on the 920. +tvi912c|tvi912b|new televideo 912:\ + :al=\EE:dl=\ER:tc=tvi912: +# set to page 1 when entering curses application (\E-17 ) +# reset to page 0 when exiting curses application (\E-07 ) +tvi912-2p|tvi920-2p|tvi-2p|televideo w/2 pages:\ + :te=\E-07 :ti=\E-17 :tc=tvi912: +# We got some new tvi912c terminals that act really weird on the regular +# termcap, so one of our gurus worked this up. Seems that cursor +# addressing is broken. +tvi912cc|tvi912 at cowell college:\ + :cm@:tc=tvi912c: + +# Here are the switch settings for the tvi920c: +# +# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down: +# 2: 9600 3: 4800 4: 2400 5: 1200 +# 6: 600 7: 300 8: 150 9: 75 +# 10: 110 +# +# S2 UART/Terminal options: +# Up Down +# 1: Not used Not allowed +# 2: Alternate character set Standard character set +# 3: Full duplex Half duplex +# 4: 50 Hz refresh 60 Hz refresh +# 5: No parity Send parity +# 6: 2 stop bits 1 stop bit +# 7: 8 data bits 7 data bits +# 8: Not used Not allowed on Rev E or lower +# 9: Even parity Odd parity +# 10: Steady cursor Blinking cursor +# (On Rev E or lower, use W25 instead of switch 10.) +# +# S5 UART/Terminal options: +# Open Closed +# 1: P3-6 Not connected DSR received on P3-6 +# 2: P3-8 Not connected DCD received on P3-8 +# +# 3 Open, 4 Open: P3-20 Not connected +# 3 Open, 4 Closed: DTR on when terminal is on +# 3 Closed, 4 Open: DTR is connected to RTS +# 3 Closed, 4 Closed: Not allowed +# +# 5 Closed: HDX printer (hardware control) Rev. K with extension port off, +# all data transmitted out of the modem port (P3) will also be +# transmitted out of the printer port (P4). +# +# 6 Open, 7 Open: Not allowed +# 6 Open, 7 Closed: 20ma current loop input +# 6 Closed, 7 Open: RS232 input +# 6 Closed, 7 Closed: Not allowed +# +# Jumper options: +# If the jumper is installed, the effect will occur (the next time the terminal +# is switched on). +# +# S4/W31: Enables automatic LF upon receipt of CR from +# remote or keyboard. +# S4/W32: Enables transmission of EOT at the end of Send. If not +# installed, a carriage return is sent. +# S4/W33: Disables automatic carriage return in column 80. +# S4/W34: Selects Page Print Mode as initial condition. If not +# installed, Extension Mode is selected. +# +tvi920b|tvi920c|new televideo 920:\ + :al=\EE:dl=\ER:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ + :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\ + :tc=tvi912: + +# Televideo 921 and variants +# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995 +# (tvi921: removed :ko=bt: before translation, I see no backtab cap; +# also added empty <acsc> to suppress tic warning -- esr) +tvi921|televideo model 921 with sysline same as page & real vi function:\ + :am:bs:hs:pt:xn:xs:\ + :co#80:li#24:sg#0:\ + :ac=:ae=\E%:al=\EE:as=\E$:cd=\EY:ce=\ET:cl=^Z:cm=3\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=1*\ER:do=^V:ds=\Ef\r\Eg:ei=:fs=\Eg:ho=^^:\ + :ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\ + :is=\El\E"\EF1\E.3\017\EA\E<:kA=\EE:kC=^Z:kD=\EW:kE=\ET:\ + :kI=\EQ:kL=1*\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:ku=^K:le=^H:\ + :mk@:nd=^L:nw=^M^J:sf=^J:ta=^I:ts=\Ef\EG0:up=^K:ve=\E.3:\ + :vs=\E.2:\ + :tc=adm+sgr: +# without the beeper +# (tvi92B: removed :ko=bt: before translation, I see no backtab cap; +# also added empty <acsc> to suppress tic warning -- esr) +tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper:\ + :am:hs:xn:xs:\ + :co#80:li#24:sg#0:\ + :ac=:ae=\E%:al=\EE:as=\E$:cd=\EY:ce=\ET:cl=^Z:cm=3\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=1*\ER:do=^V:ds=\Ef\r\Eg:ei=:fs=\Eg:ho=^^:\ + :ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\ + :is=\El\E"\EF1\E.3\017\EA\E<:kA=\EE:kC=^Z:kD=\EW:kE=\ET:\ + :kI=\EQ:kL=1*\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:ku=^K:le=^H:\ + :mk@:nd=^L:nw=^M^J:sf=^J:ta=^I:ts=\Ef\EG0:up=^K:vb=\Eb\Ed:\ + :ve=\E.3:vs=\E.2:\ + :tc=adm+sgr: +# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr) +tvi92D|tvi92B with DTR instead of XON/XOFF & better padding:\ + :al=2*\EE:dl=2*\ER:is=\El\E"\EF1\E.3\016\EA\E<:kA=2*\EE:\ + :kL=2*\ER:\ + :tc=tvi92B: + +# (tvi924: This used to have :ds=\Es0:, :fs=\031:. I put the new strings +# in from a BSD termcap file because it looks like they do something the +# old ones skip -- esr) +tvi924|televideo tvi924:\ + :am:bw:hs:in:mi:ms:xn:xo:\ + :co#80:it#8:li#24:sg#0:ws#80:\ + :F1=^AK\r:F2=^AL\r:F3=^AM\r:F4=^AN\r:F5=^AO\r:al=\EE:bl=^G:\ + :bt=\EI:cd=\Ey:ce=\Et:cl=\E*0:cm=\E=%+ %+ :cr=^M:\ + :cs=\E_%+ %+ :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Es0\Ef\031:\ + :ei=:fs=\031\Es1:ho=^^:\ + :i1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0:ic=\EQ:\ + :if=/usr/share/tabset/stdcrt:im=:k0=^A@\r:k1=^AA\r:\ + :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\ + :k8=^AH\r:k9=^AI\r:k;=^AJ\r:kA=\EE:kC=\E*0:kD=\EW:kE=\Et:\ + :kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:\ + :l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:l9=F10:\ + :la=F11:le=^H:mb=\EG2:mk@:nd=^L:pk=\E|%+1%s\031:sf=^J:\ + :sr=\Ej:st=\E1:ta=^I:ts=\Ef:up=^K:vb=\Eb\Ed:ve=\E.3:vi=\E.0:\ + :vs=\E.1:\ + :tc=adm+sgr: + +# TVI925 DIP switches. In each of these, D = Down and U = Up, +# +# Here are the settings for the external (baud) switches (S1): +# +# Position Baud +# 7 8 9 10 [Printer] +# 1 2 3 4 [Main RS232] +# ----------------------------------------------------- +# D D D D 9600 +# D D D U 50 +# D D U D 75 +# D D U U 110 +# D U D D 135 +# D U D U 150 +# D U U D 300 +# D U U U 600 +# U D D D 1200 +# U D D U 1800 +# U D U D 2400 +# U D U U 3600 +# U U D D 4800 +# U U D U 7200 +# U U U D 9600 +# U U U U 19200 +# +# +# Settings for word length and stop-bits (S1) +# +# Position Description +# 5 6 +# --------------------------- +# U - 7-bit word +# D - 8-bit word +# - U 2 stop bits +# - D 1 stop bit +# +# +# S2 (external) settings +# +# Position Up Dn Description +# -------------------------------------------- +# 1 X Local edit +# X Duplex edit (transmit editing keys) +# -------------------------------------------- +# 2 X 912/920 emulation +# X 925 +# -------------------------------------------- +# 3 X +# 4 X No parity +# 5 X +# -------------------------------------------- +# 3 X +# 4 X Odd parity +# 5 X +# -------------------------------------------- +# 3 X +# 4 X Even parity +# 5 X +# -------------------------------------------- +# 3 X +# 4 X Mark parity +# 5 X +# -------------------------------------------- +# 3 X +# 4 X Space parity +# 5 X +# -------------------------------------------- +# 6 X White on black display +# X Black on white display +# -------------------------------------------- +# 7 X Half Duplex +# 8 X +# -------------------------------------------- +# 7 X Full Duplex +# 8 X +# -------------------------------------------- +# 7 X Block mode +# 8 X +# -------------------------------------------- +# 9 X 50 Hz +# X 60 Hz +# -------------------------------------------- +# 10 X CR/LF (Auto LF) +# X CR only +# +# S3 (internal switch) settings: +# +# Position Up Dn Description +# -------------------------------------------- +# 1 X Keyclick off +# X Keyclick on +# -------------------------------------------- +# 2 X English +# 3 X +# -------------------------------------------- +# 2 X German +# 3 X +# -------------------------------------------- +# 2 X French +# 3 X +# -------------------------------------------- +# 2 X Spanish +# 3 X +# -------------------------------------------- +# 4 X Blinking block cursor +# 5 X +# -------------------------------------------- +# 4 X Blinking underline cursor +# 5 X +# -------------------------------------------- +# 4 X Steady block cursor +# 5 X +# -------------------------------------------- +# 4 X Steady underline cursor +# 5 X +# -------------------------------------------- +# 6 X Screen blanking timer (ON) +# X Screen blanking timer (OFF) +# -------------------------------------------- +# 7 X Page attributes +# X Line attributes +# -------------------------------------------- +# 8 X DCD disconnected +# X DCD connected +# -------------------------------------------- +# 9 X DSR disconnected +# X DSR connected +# -------------------------------------------- +# 10 X DTR Disconnected +# X DTR connected +# -------------------------------------------- +# +# (tvi925: BSD has :cl=\E*:. I got :is: and :sr: from there -- esr) +tvi925|televideo 925:\ + :am:bs:bw:hs:ul:\ + :co#80:li#24:sg#1:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\ + :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Eh:ei=:fs=^M\Eg:ho=^^:ic=\EQ:\ + :im=:is=\El\E":k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ + :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\ + :kA=\EE:kC=^Z:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:\ + :kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:sf=^J:sr=\Ej:st=\E1:\ + :ta=^I:ts=\Eh\Ef:up=^K:vb=\Eb\Ed:ve=\E.4:vs=\E.2:\ + :tc=adm+sgr: +# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL +# to avoid "magic cookie" standout glitch: +tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\ + :sg@:\ + :kb=^H:kd=^J:kl=^H:se=\E(:so=\E):tc=tvi925: + +# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993 +# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82 +# for additional capabilities, +# The following tvi descriptions from B:pjphar and virus!mike +# is for all 950s. It sets the following attributes: +# full duplex (\EDF) write protect off (\E() +# conversation mode (\EC) graphics mode off (\E%) +# white on black (\Ed) auto page flip off (\Ew) +# turn off status line (\Eg) clear status line (\Ef\r) +# normal video (\E0) monitor mode off (\EX or \Eu) +# edit mode (\Er) load blank char to space (\Ee\040) +# line edit mode (\EO) enable buffer control (^O) +# protect mode off (\E\047) duplex edit keys (\El) +# program unshifted send key to send line all (\E016) +# program shifted send key to send line unprotected (\E004) +# set the following to nulls: +# field delimiter (\Ex0\200\200) +# line delimiter (\Ex1\200\200) +# start-protected field delimiter (\Ex2\200\200) +# end-protected field delimiter (\Ex3\200\200) +# set end of text delimiter to carriage return/null (\Ex4\r\200) +# +# TVI 950 Switch Setting Reference Charts +# +# TABLE 1: +# +# S1 1 2 3 4 5 6 7 8 9 10 +# +-----------------------+-----+-----+-----------------------+ +# | Computer Baud Rate |Data |Stop | Printer Baud Rate | +# | |Bits |Bits | | +# +------+-----------------------+-----+-----+-----------------------+ +# | Up | See | 7 | 2 | See | +# +------+-----------------------+-----+-----+-----------------------+ +# | Down | TABLE 2 | 8 | 1 | TABLE 2 | +# +------+-----------------------+-----+-----+-----------------------+ +# +# +# S2 1 2 3 4 5 6 7 8 9 10 +# +-----+-----+-----------------+-----+-----------+-----+-----+ +# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click| +# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +# | Up | Dplx|Blink| See |GonBk| See | 60 | Off | +# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On | +# +------+-----+-----+-----------------+-----+-----------+-----+-----+ +# +# TABLE 2: +# +# +-----------+-----+-----+-----+-----+-----------+ +# | Display | 1 | 2 | 3 | 4 | Baud | +# +-----------+-----+-----+-----+-----+ | +# | Printer | 7 | 8 | 9 | 10 | Rate | +# +-----------+-----+-----+-----+-----+-----------+ +# | D | D | D | D | 9600 | +# | U | D | D | D | 50 | +# | D | U | D | D | 75 | +# | U | U | D | D | 110 | +# | D | D | U | D | 135 | +# | U | D | U | D | 150 | +# | D | U | U | D | 300 | +# | U | U | U | D | 600 | +# | D | D | D | U | 1200 | +# | U | D | D | U | 1800 | +# | D | U | D | U | 2400 | +# | U | U | D | U | 3600 | +# | D | D | U | U | 4800 | +# | U | D | U | U | 7200 | +# | D | U | U | U | 9600 | +# | U | U | U | U | 19200 | +# +-----+-----+-----+-----+-----------+ +# +# TABLE 3: +# +-----+-----+-----+-----------+ +# | 3 | 4 | 5 | Parity | +# +-----+-----+-----+-----------+ +# | X | X | D | None | +# | D | D | U | Odd | +# | D | U | U | Even | +# | U | D | U | Mark | +# | U | U | U | Space | +# +-----+-----+-----+-----------+ +# X = don't care +# +# CHART: +# +-----+-----+-----------------+ +# | 7 | 8 | Communication | +# +-----+-----+-----------------+ +# | D | D | Half Duplex | +# | D | U | Full Duplex | +# | U | D | Block | +# | U | U | Local | +# +-----+-----+-----------------+ +# +# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:". +# I also inserted :ic: and :kI:; the :ko: string indicated that :IC: +# should be present and all tvi native modes use the same string for this. +# Finally, note that BSD has cud1=^V. -- esr) +tvi950|televideo 950:\ + :am:bs:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:sg#1:\ + :ac=b\011c\014d\re\ni\013:ae=^X:al=\EE:as=^U:bl=^G:bt=\EI:\ + :cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:ct=\E3:dc=\EW:\ + :dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:ic=\EQ:im=\Eq:\ + :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r:\ + :k0=^A0\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ + :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kB=\EI:kC=\E*:\ + :kD=\EW:kE=\Et:kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:mk@:nd=^L:pf=\Ea:po=\E`:sf=^J:sr=\Ej:\ + :st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:\ + :tc=adm+sgr: +# +# is for 950 with two pages adds the following: +# set 48 line page (\E\\2) +# place cursor at page 0, line 24, column 1 (\E-07 ) +# set local (no send) edit keys (\Ek) +# +# two page 950 adds the following: +# when entering ex, set 24 line page (\E\\1) +# when exiting ex, reset 48 line page (\E\\2) +# place cursor at 0,24,1 (\E-07 ) +# set duplex (send) edit keys (\El) when entering vi +# set local (no send) edit keys (\Ek) when exiting vi +# +tvi950-2p|televideo950 w/2 pages:\ + :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\2\E-07 \011:\ + :ke=\Ek:ks=\El:te=\E\2\E-07 :ti=\E\1\E-07 :\ + :tc=tvi950: +# +# is for 950 with four pages adds the following: +# set 96 line page (\E\\3) +# place cursor at page 0, line 24, column 1 (\E-07 ) +# +# four page 950 adds the following: +# when entering ex, set 24 line page (\E\\1) +# when exiting ex, reset 96 line page (\E\\3) +# place cursor at 0,24,1 (\E-07 ) +# +tvi950-4p|televideo950 w/4 pages:\ + :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\3\E-07 \011:\ + :ke=\Ek:ks=\El:te=\E\3\E-07 :ti=\E\1\E-07 :\ + :tc=tvi950: +# +# :is: for reverse video 950 changes the following: +# set reverse video (\Ed) +# +# set vb accordingly (\Ed ...delay... \Eb) +# +tvi950-rv|televideo950 rev video:\ + :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0:\ + :vb=\Ed\Eb:\ + :tc=tvi950: + +# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv +tvi950-rv-2p|televideo950 rev video w/2 pages:\ + :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\2\E-07 :\ + :ke=\Ek:ks=\El:te=\E\2\E-07 :ti=\E\1\E-07 :vb=\Ed\Eb:\ + :tc=tvi950: + +# tvi950-rv uses the appropriate entries from 950-4p and 950-rv +tvi950-rv-4p|televideo950 rev video w/4 pages:\ + :is=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\3\E-07 :\ + :ke=\Ek:ks=\El:te=\E\3\E-07 :ti=\E\1\E-07 :vb=\Ed\Eb:\ + :tc=tvi950: +# From: Andreas Stolcke <stolcke@icsi.berkeley.edu> +# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H"; +# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in +# the :rs: string, inserted the :IC: implied by the termcap :ko: string. Note +# the :ko: string had :cl: in it, which means that one of the original +# :cl=\E*:, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what +# the 950 has. Finally, corrected the <kel> string to match the 950 and what +# ko implies -- esr) +# If the BSD termcap file was right, :cm=\E=%p1%{32}%+%c%p2%{32}%+%c: would +# also work. +tvi955|televideo 955:\ + :5i:bs:ms@:\ + :it#8:sg@:\ + :RA=\E[=7l:RX=^N:SA=\E[=7h:SX=^O:\ + :ac=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ:ae=\E%:as=\E$:\ + :cm=\E[%i%d;%dH:do=^V:is=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El:\ + :kM=\EQ:kN=\EK:kP=\EJ:kT=\E1:ka=\E3:kt=\E2:mb=\EG2:\ + :me=\EG0\E[=5l:mh=\E[=5h:mk=\EG1:ps=\EP:\ + :r1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r:\ + :sf@:ve=\E.2:vi=\E.0:vs=\E.1:\ + :tc=tvi950: +tvi955-w|955-w|televideo955 w/132 cols:\ + :co#132:\ + :is=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El:tc=tvi955: +# use half-intensity as normal mode, full intensity as :md: +tvi955-hb|955-hb|televideo955 half-bright:\ + :is=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El:md=\E[=5l:\ + :me=\EG0\E[=5h:mh@:tc=tvi955: +# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin +# (tvi970: removed ":sg#0:"; removed :se:=\E[m, :ue:=\E[m; +# added :am:/:cs:/:ho:/<hpa>/<vpa>/:ti:/:te: from BRL. +# According to BRL we could have :ke:=\E>, :ks:=\E= but I'm not sure what +# it does to the function keys. I deduced <rmam>/<smam>. +# also added empty <acsc> to suppress tic warning, -- esr) +tvi970|televideo 970:\ + :am:bs:da:db:mi:ms:pt:\ + :co#80:it#8:li#24:\ + :RA=\E[?7h:SA=\E[?7l:ac=:ae=\E(B:al=\E[L:as=\E(B:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[2J:cm=\E[%i%d;%df:\ + :cs=\E[%i%d;%dr:cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=\ED:\ + :ds=\Eg\Ef\r:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J:k1=\E?a:\ + :k2=\E?b:k3=\E?c:k4=\E?d:k5=\E?e:k6=\E?f:k7=\E?g:k8=\E?h:\ + :k9=\E?i:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ta=^I:te=:\ + :ti=\E[?20l\E[?7h\E[1Q:ue=\E[m:up=\EM:us=\E[4m:\ + :vb=\E[5m\E[m:vs=\E[1Q: +tvi970-vb|televideo 970 with visual bell:\ + :vb=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l:tc=tvi970: +tvi970-2p|televideo 970 with using 2 pages of memory:\ + :te=\E[H\E[J\E[V:ti=\E[U\E[?20l\E[?7h\E[1Q:\ + :tc=tvi970: +# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars +# per line (rather than 40), Esc K chooses the normal character set. Not sure +# padding is needed, but adapted from the tvi920c termcap. The :so: and +# :us: strings are klutzy, but at least use no screen space. +# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>, +# its absence means <smam>=\Ev isn't safe to use. -- esr) +# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84. +# The :cd:/:k0:/:k1:/:kh:/<mc4>, and <mc5> caps are from BRL, which says: +# F1 and F2 should be programmed as ^A and ^B; required for UNIFY. +tvipt|televideo personal terminal:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dl=\ER:\ + :ho=^^:if=/usr/share/tabset/stdcrt:is=\Ev\Eu\EK:k0=^A:\ + :k1=^B:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:pf=^T:\ + :po=^R:se=\EF:so=\EG1@A\EH:ue=\EF:up=^K:us=\EG1B@\EH: +# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +tvi9065|televideo 9065:\ + :am:bw:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#25:lm#0:ma#4:vt#0:ws#30:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E%:\ + :al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ + :cm=\E=%+ %+ :cr=^M:cs=\E[%i%d;%dr:ct=\E3:dc=\EW:dl=\ER:\ + :dm=\Er:do=^V:ds=\E_30\r:ec=\E[%d@:ed=\0:ei=\Er:fs=^M:ho=^^:\ + :i1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er:\ + :i2=\E<\E[=4l\E[=8h:if=/usr/share/tabset/stdcrt:im=\Eq:\ + :ip=:is=\EF2\EG0\E\L:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kb=^H:\ + :kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E[25;1H:mb=\EG2:\ + :md=\EG\054:me=\EG0:mh=\EGp:mr=\EG4:nd=^L:nw=^M^J:\ + :rp=\E[%r%db%.:se=\EG0:sf=^J:so=\EGt:sr=\Ej:st=\E1:ta=^I:\ + :te=\E.3\Er\E[1;25r\E[25;0H:ti=\E.2:ts=\E[4;1v\E_30:\ + :uc=\EG8\EG0:ue=\EG0:up=^K:us=\EG8:vb=\Eb\Ed:ve=\E.3:\ + :vi=\E.0:vs=\E.2: + +#### Visual (vi) +# +# In September 1993, Visual Technology of Westboro, Massachusetts, +# merged with White Pine Software of Nashua, New Hampshire. +# +# White Pine Software may be contacted at +1 603/886-9050. +# Or visit White Pine on the World Wide Web at URL http://www.wpine.com. +# + +# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs> +# Recently I hacked together the following termcap for Visual +# Technology's Visual 50 terminal. It's a slight modification of +# the vt52 termcap. +# It's intended to run when the Visual 50 is in vt52 emulation mode +# (I know what you're thinking; if it's emulating a vt52, then why +# another termcap? Well, it turns out that the Visual 50 can handle +# :dl: and db(?) among other things, which the vt52 can't) +# The termcap works OK for the most part. The only problem is on +# character inserts. The whole line gets painfully redrawn for each +# character typed. Any suggestions? +# Beau's entry is combined with the vi50 entry from University of Wisconsin. +# Note especially the :al: function. :k4:-:k6: are really l4-l6 in +# disguise; :k7:-:k9: are really l1-l3. +vi50|visual 50:\ + :am:bs:da:db:ms:pt:\ + :co#80:it#8:li#24:\ + :al=\EL:bl=^G:bt=4\Ez:cd=\EJ:ce=16\EK:cl=\EH\EJ:\ + :cm=\EY%+ %+ :cr=^M:dl=3*\EM:do=\EB:ho=\EH:k1=\EP:k2=\EQ:\ + :k3=\ER:k4=\EV:k5=\EE:k6=\E]:k7=\EL:k8=\Ev:k9=\EM:kb=^H:\ + :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:nl=^J:\ + :nw=^M^J:se=\ET:sf=^J:so=\EU:sr=\EI:ta=^I:ue=\EW:up=\EA:\ + :us=\ES: +# this one was BSD & SCO's vi50 +vi50adm|visual 50 in adm3a mode:\ + :am:ms:\ + :co#80:it#8:li#24:\ + :al=\EL:bl=^G:cd=\Ek:ce=\EK:cl=^Z:cm=\E=%+ %+ :cr=^M:dl=\EM:\ + :do=^J:ho=\EH:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\ + :nd=^L:se=\ET:sf=^J:so=\EU:ta=^I:up=^K: +# From: Jeff Siegal <jbs@quiotix.com> +vi55|Visual 55:\ + :am:bs:mi:ms:\ + :co#80:it#8:li#24:\ + :al=\EL:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :cs=\E_%+A%+A:\ + :dc=\Ew:dl=\EM:do=^J:ei=\Eb:ho=\EH:im=\Ea:\ + :is=\Ev\E_AX\Eb\EW\E9P\ET:kb=^H:kd=\EB:kl=\ED:kr=\EC:\ + :ku=\EA:le=^H:nd=\EC:se=\ET:so=\EU:sr=\EI:ta=^I:up=\EA: + +# Visual 200 from BRL +# The following switch settings are assumed for normal operation: +# FULL_DUPLEX SCROLL CR +# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE +# Other switches may be set for operator convenience or communication +# requirements. +# Character insertion is kludged in order to get around the "beep" misfeature. +# (This cap is commented out because :im:/:ei: is more efficient -- esr) +# Supposedly "4*" delays should be used for :al:, :cd:, :cl:, :dc:, +# and :dl: strings, but we seem to get along fine without them. +vi200|visual 200:\ + :am:bs:mi:ms:pt:\ + :co#80:it#8:kn#10:li#24:\ + :ac=:ae=\EG:al=\EL:as=\EF:bl=^G:bt=\Ez:cd=\Ey:ce=\Ex:cl=\Ev:\ + :cm=\EY%+ %+ :cr=^M:ct=\Eg:dc=\EO:dl=\EM:do=^J:ho=\EH:\ + :k0=\E?p:k1=\E?q:k2=\E?r:k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:\ + :k7=\E?w:k8=\E?x:k9=\E?y:kA=\EL:kC=\Ev:kD=\EO:kE=\Et:kI=\Ei:\ + :kL=\EM:kM=\Ej:kS=\EJ:kT=\E1:kb=^H:kd=\EB:ke=\E>:kh=\EH:\ + :kl=\ED:kr=\EC:ks=\E=:kt=\E2:ku=\EA:le=^H:me=\E3\Eb:mh=\E4:\ + :mk=\Ea:nd=\EC:pf=\EX:po=\EW:ps=\EH\E]:\ + :r1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX:se=\E3:sf=^J:so=\E4:\ + :sr=\EI:st=\E1:ta=^I:up=\EA:ve=\Ec:vs=\Ed: +# The older Visuals didn't come with function keys. This entry uses +# :ks: and :ke: so that the keypad keys can be used as function keys. +# If your version of vi doesn't support function keys you may want +# to use vi200-f. +vi200-f|visual 200 no function keys:\ + :is=\E3\Eb\Ej\E\\El\EG\Ed\Ek:k0=\E?p:k1=\E?q:k2=\E?r:\ + :k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:k7=\E?w:k8=\E?x:k9=\E?y:\ + :ke=\E>:ks=\E=:se@:so@:\ + :tc=vi200: +vi200-rv|visual 200 reverse video:\ + :se=\E3:so=\E4:sr@:ve@:vs@:tc=vi200: + +# the function keys are programmable but we don't reprogram them to their +# default values with :is: because programming them is very verbose. maybe +# an initialization file should be made for the 300 and they could be stuck +# in it. +# (vi300: added <rmam>/<smam> based on init string -- esr) +vi300|visual 300 ansi x3.64:\ + :am:bw:mi:xn:\ + :co#80:li#24:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s:\ + :k1=\E_A\E\:k2=\E_B\E\:k3=\E_C\E\:k4=\E_D\E\:k5=\E_E\E\:\ + :k6=\E_F\E\:k7=\E_G\E\:k8=\E_H\E\:k9=\E_I\E\:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:\ + :se=\E[m:sf=^J:so=\E[1m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# some of the vi300s have older firmware that has the command +# sequence for setting editing extent reversed. +vi300-old|visual 300 with old firmware (set edit extent reversed):\ + :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s:\ + :tc=vi300: + +# Visual 500 prototype entry from University of Wisconsin. +# The best place to look for the escape sequences is page A1-1 of the +# Visual 500 manual. The initialization sequence given here may be +# overkill, but it does leave out some of the initializations which can +# be done with the menus in set-up mode. +# The :xp: line below is so that emacs can understand the padding requirements +# of this slow terminal. :xp: is 10 time the padding factor. +# (vi500: removed unknown :xp#4: termcap; +# also added empty <acsc> to suppress tic warning -- esr) +vi500|visual 500:\ + :am:mi:ms:\ + :co#80:it#8:li#33:\ + :ac=:ae=^O:al=3*\EL\Ex:as=^N:bt=4\Ez:cd=3*\Ey:ce=16\Ex:\ + :cl=6*\Ev:cm=\EY%+ %+ :cr=^M:cs=\E(%+ %+ :dc=3*\EO:\ + :dl=3*\EM:do=\EB:ei=\Ej:ho=\EH:im=\Ei:\ + :is=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\:\ + :kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ + :nw=^M^J:se=\E^G:sf=^J:so=\E^H:ta=8\011:ue=\E^C:up=\EA:\ + :us=\E^D: + +# The visual 550 is a visual 300 with tektronix graphics, +# and with 33 lines. clear screen is modified here to +# also clear the graphics. +vi550|visual 550 ansi x3.64:\ + :li#33:\ + :cl=\030\E[H\E[2J:tc=vi300: + +vi603|visual603|visual 603:\ + :hs:mi:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:ds=\EP2;1~\E\:ei=\E[4l:\ + :fs=\E\:i1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r:\ + :im=\E[4h:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ts=\EP2~:ue=\E[24m:\ + :up=\E[A:us=\E[4m:\ + :tc=vt100: + +#### Wyse (wy) +# +# Wyse Technology +# 3471 North First Street +# San Jose, CA 95134 +# Vox: (408)-473-1200 +# Fax: (408) 473-1222 +# Web: http://www.wyse.com +# +# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at +# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the +# obvious address, <http://www.wyse.com>. They keep terminfo entries at +# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>. +# +# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995. +# They now own the Qume and Amdek brands, too. So these are the people to +# talk with about all Link, Qume, and Amdek terminals. +# +# These entries include a few small fixes. +# I canceled the bel capacities in the vb entries. +# I made two trivial syntax fixes in the wyse30 entry. +# I made some entries relative to adm+sgr. +# +# +# Note: The wyse75, wyse85, and wyse99 have been discontinued. + +# Although the Wyse 30 can support more than one attribute +# it requires magic cookies to do so. Many applications do not +# function well with magic cookies. The following terminfo uses +# the protect mode to support one attribute (dim) without cookies. +# If more than one attribute is needed then the wy30-mc terminfo +# should be used. +# +wy30|wyse30|Wyse 30:\ + :5i:am:bw:hs:mi:ms:xo:\ + :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\ + :#2=\E{:&3=\Er:@8=\E7:LF=\EA11:LO=\EA10:\ + :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\ + :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\ + :ho=^^:im=\Eq:ip=:is=\E'\E(\E\1363\E`9\016\024:k1=^A@\r:\ + :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\ + :k8=^AG\r:kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:\ + :kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ + :ll=^^^K:me=\E(\EH\003:mh=\E`7\E):mp=\E`7\E):nd=^L:\ + :nw=^M^J:pf=^T:pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:\ + :..sa=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ + :se=\E(:sf=\n:so=\E`7\E):sr=\Ej:st=\E1:ta=\011:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0: +# +# This terminal description uses the non-hidden attribute mode +# (with magic cookie). +# +# (wy30-mc: added :ti: to suppress tic warning --esr) +wy30-mc|wyse30-mc|wyse 30 with magic cookies:\ + :ms@:\ + :ma@:sg#1:\ + :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\ + :me=\EG0\E(\EH\003:mh=\EGp:mp=\EG0\E):\ + :..sa=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ + :se=\EG0:so=\EG4:te=\EG0:ti=:\ + :tc=wy30:tc=adm+sgr: +# The mandatory pause used by :vb: does not work with +# older versions of terminfo. If you see this effect then +# unset xon and delete the / from the delay. +# i.e. change $<100/> to $<100> +wy30-vb|wyse30-vb|wyse 30 visible bell:\ + :bl@:tc=wy30: +# +# The Wyse 50 can support one attribute (e.g. Dim, Inverse, +# Normal) without magic cookies by using the protect mode. +# The following description uses this feature, but when more +# than one attribute is put on the screen at once, all attributes +# will be changed to be the same as the last attribute given. +# The Wyse 50 can support more attributes when used with magic +# cookies. The wy50-mc terminal description uses magic cookies +# to correctly handle multiple attributes on a screen. +# +wy50|wyse50|Wyse 50:\ + :5i:am:bw:hs:mi:ms:xo:\ + :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\ + :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\ + :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:\ + :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\ + :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\ + :ho=^^:i1=\E`\072\E`9:im=\Eq:ip=:is=\016\024\E'\E(:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\ + :kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:me=\E(\EH\003:mh=\E`7\E):\ + :mp=\E`7\E):mr=\E`6\E):nd=^L:nw=^M^J:pf=^T:pn=\Ez%+/%s\r:\ + :po=^X:ps=\EP:px=\Ez%+?%s\177:\ + :..sa=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ + :se=\E(:sf=\n:so=\E`6\E):sr=\Ej:st=\E1:ta=^I:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0: +# +# This terminal description uses the non-hidden attribute mode +# (with magic cookie). +# +# The mandatory pause used by flash does not work with some +# older versions of terminfo. If you see this effect then +# unset :xo: and delete the / from the delay. +# i.e. change $<100/> to $<100> +# (wy50-mc: added :ti: to suppress tic warning --esr) +wy50-mc|wyse50-mc|wyse 50 with magic cookies:\ + :ms@:\ + :ma@:sg#1:\ + :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\ + :me=\EG0\E(\EH\003:mh=\EGp:mp=\EG0\E):mr=\EG4:\ + :..sa=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\ + :se=\EG0:so=\EGt:te=\EG0:ti=:\ + :tc=wy50:tc=adm+sgr: +wy50-vb|wyse50-vb|wyse 50 visible bell:\ + :bl@:tc=wy50: +wy50-w|wyse50-w|wyse 50 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy50: +wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell:\ + :bl@:\ + :tc=wy50-w: +# +# The Wyse 350 is a Wyse 50 with color. +# Unfortunately this means that it has magic cookies. +# The color attributes are designed to overlap the reverse, dim and +# underline attributes. This is nice for monochrome applications +# because you can make underline stuff green (or any other color) +# but for true color applications it's not so hot because you cannot +# mix color with reverse, dim or underline. +# To further complicate things one of the attributes must be +# black (either the foreground or the background). In reverse video +# the background changes color with black letters. In normal video +# the foreground changes colors on a black background. +# This terminfo uses some of the more advanced features of curses +# to display both color and blink. In the final analysis I am not +# sure that the wy350 runs better with this terminfo than it does +# with the wy50 terminfo (with user adjusted colors). +# +# The mandatory pause used by flash does not work with +# older versions of terminfo. If you see this effect then +# unset xon and delete the / from the delay. +# i.e. change $<100/> to $<100> +# +# Bug: The <op> capability resets attributes. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +wy350|wyse350|Wyse 350:\ + :5i:am:bw:hs:mi:xo:\ + :Co#8:NC#55:Nl#8:co#80:lh#1:li#24:lw#8:pa#8:sg#1:ws#45:\ + :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\ + :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:Sb=:\ + :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EG0\EH\003:al=\EE:\ + :as=\EG0\EH\002:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=^^:i1=\E`\072\E`9:i2=\E%?:im=\Eq:ip=:\ + :is=\016\024\E'\E(:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\ + :kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:\ + :kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:\ + :mb=\EG2:me=\EG0\E(\EH\003%{0}%PA%{0}%PC:mh=\EGp:\ + :mp=\EG0\E):nd=^L:nw=^M^J:oc=\E%?:op=\EG0:pf=^T:\ + :pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:sf=\n:sr=\Ej:\ + :st=\E1:ta=^I:ts=\EF:up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +wy350-vb|wyse350-vb|wyse 350 visible bell:\ + :bl@:tc=wy350: +wy350-w|wyse350-w|wyse 350 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy350: +wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell:\ + :bl@:\ + :tc=wy350-w: +# +# This terminfo description is untested. +# The wyse100 emulates an adm31, so the adm31 entry should work. +# +wy100|wyse 100:\ + :hs:mi:\ + :co#80:li#24:sg#1:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ds=\EA31:ei=\Er:fs=^M:im=\Eq:is=\Eu\E0:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:kb=^H:kd=^J:kh=\E{:kl=^H:kr=^L:ku=^K:\ + :le=^H:mk@:nd=^L:sf=^J:ts=\EF:up=^K:\ + :tc=adm+sgr: +# +# The Wyse 120/150 has most of the features of the Wyse 60. +# This terminal does not need padding up to 9600 baud! +# :ms: should be set but the clear screen fails when in +# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear +# then set :ms:. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy120|wyse120|wy150|wyse150|Wyse 120/150:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:it#8:li#24:pb#9601:ws#45:\ + :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:i2=\EwJ\Ew1:im=\Eq:ip=:\ + :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:ti=\Ew0:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +# +wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy120: +# +wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy120: +# +wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy120-w: +# +wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell:\ + :bl@:\ + :tc=wy120: +# +wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell:\ + :bl@:\ + :tc=wy120-w: +# +# The Wyse 60 is like the Wyse 50 but with more padding. +# The reset strings are slow and the pad times very depending +# on other parameters such as font loading. I have tried +# to follow the following outline: +# +# <rs1> -> set personality +# <rs2> -> set number of columns +# <rs3> -> set number of lines +# :i1: -> select the proper font +# :is: -> do the initialization +# :i3: -> set up display memory (2 pages) +# +# The Wyse 60's that have vt100 emulation are slower than the +# older Wyse 60's. This change happened mid-1987. +# The capabilities effected are :dc: :dl: :al: :sf: :sr: +# +# The meta key is only half right. This terminal will return the +# high order bit set when you hit CTRL-function_key +# +# It may be useful to assign two function keys with the +# values \E=(\s look at old data in page 1 +# \E=W, look at bottom of page 1 +# where \s is a space ( ). +# +# Note: +# The Wyse 60 runs faster when the XON/XOFF +# handshake is turned off. +# +# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid +# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy60|wyse60|Wyse 60:\ + :am:bw:hs:km:mi:ms:\ + :co#80:li#24:ws#45:\ + :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=\E{:i1=\EcB0\EcC1:i2=\EwJ\Ew1:im=\Eq:ip=:\ + :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E{^K:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:ti=\Ew0:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +# +wy60-w|wyse60-w|wyse 60 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\EeF\E`;:tc=wy60: +# +wy60-25|wyse60-25|wyse 60 80-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy60: +wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy60-w: +# +wy60-42|wyse60-42|wyse 60 80-column 42-lines:\ + :li#42:\ + :al=\EE:cd=\Ey:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:\ + :i1=\EcB2\EcC3:ip=:nw=\r\n:r3=\Ee*:sf=\n:sr=\Ej:tc=wy60: +wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ho=\036:ip=:nw=\r\n:\ + :r2=\EeF\E`;:\ + :tc=wy60-42: +# +wy60-43|wyse60-43|wyse 60 80-column 43-lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\Ee+:tc=wy60-42: +wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\Ee+:tc=wy60-42-w: +# +wy60-vb|wyse60-vb|Wyse 60 visible bell:\ + :bl@:tc=wy60: +wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell:\ + :bl@:\ + :tc=wy60-w: + +# The Wyse-99GT looks at lot like the Wyse 60 except that it +# does not have the 42/43 line mode. In the Wyse-60 the "lines" +# setup parameter controls the number of lines on the screen. +# For the Wyse 99GT the "lines" setup parameter controls the +# number of lines in a page. The screen can display 25 lines max. +# The Wyse-99GT also has personalities for the VT220 and +# Tektronix 4014. But this has no bearing on the native mode. +# +# (msgr) should be set but the clear screen fails when in +# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear +# then set msgr, else use msgr@. +# +# u0 -> enter Tektronix mode +# u1 -> exit Tektronix mode +# +wy99gt|wyse99gt|Wyse 99gt:\ + :ms@:\ + :al=\EE:cd=\Ey:ce=\Et:cl=\E+:dc=\EW:dl=\ER:i2=\Ew0:ip=:nw@:\ + :r2=\E`\072:sf=\n:sr=\Ej:ta=\011:te=\Ew0:ti=\Ew1:\ + :u0=\E~>\E8:u1=\E[42h:vb=\E`8\E`9:tc=wy60: +# +wy99gt-w|wyse99gt-w|wyse 99gt 132-column:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy99gt: +# +wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r2=\E`\072:r3=\EwG\Ee):tc=wy99gt: +# +wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r2=\E`;:tc=wy99gt-w: +# +wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell:\ + :bl@:tc=wy99gt: +# +wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell:\ + :bl@:\ + :tc=wy99gt-w: +# +# The Wyse 160 is combination of the WY-60 and the WY-99gt. +# The reset strings are slow and the pad times very depending +# on other parameters such as font loading. I have tried +# to follow the following outline: +# +# <rs1> -> set personality +# <rs2> -> set number of columns +# <rs3> -> set number of lines +# :i1: -> select the proper font +# :is: -> do the initialization +# :i3: -> set up display memory (2 pages) +# +# The display memory may be used for either text or graphics. +# When "Display Memory = Shared" the terminal will have more pages +# but garbage may be left on the screen when you switch from +# graphics to text. If "Display Memory = Unshared" then the +# text area will be only one page long. +# +# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid +# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy160|wyse160|Wyse 160:\ + :am:bw:hs:km:mi:ms:\ + :co#80:li#24:ws#38:\ + :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=\E{:i1=\EcB0\EcC1:i2=\Ew0:im=\Eq:ip=:\ + :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E{^K:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:ti=\Ew1:ts=\EF:up=^K:\ + :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +# +wy160-w|wyse160-w|wyse 160 132-column:\ + :Nl#16:co#132:lw#7:ws#90:\ + :cm=\Ea%i%dR%dC:dc=\EW:r2=\EeF\E`;:tc=wy160: +# +wy160-25|wyse160-25|wyse 160 80-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy160: +wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy160-w: +# +wy160-42|wyse160-42|wyse 160 80-column 42-lines:\ + :li#42:\ + :al=\EE:cd=\Ey:cl=\E+:dl=\ER:i1=\EcB2\EcC3:nw=\r\n:r3=\Ee*:\ + :sf=\n:sr=\Ej:\ + :tc=wy160: +wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines:\ + :Nl#16:co#132:lw#7:ws#90:\ + :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\EeF\E`;:tc=wy160-42: +# +wy160-43|wyse160-43|wyse 160 80-column 43-lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\Ee+:tc=wy160-42: +wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\Ee+:tc=wy160-42-w: +# +wy160-vb|wyse160-vb|Wyse 160 visible bell:\ + :bl@:tc=wy160: +wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell:\ + :bl@:\ + :tc=wy160-w: +# +# The Wyse 75 is a vt100 lookalike without advanced video. +# +# The Wyse 75 can support one attribute (e.g. Dim, Inverse, +# Underline) without magic cookies. The following description +# uses this capability, but when more than one attribute is +# put on the screen at once, all attributes will be changed +# to be the same as the last attribute given. +# The Wyse 75 can support more attributes when used with magic +# cookies. The wy75-mc terminal description uses magic cookies +# to correctly handle multiple attributes on a screen. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy75|wyse75|wyse 75:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:li#24:ma#1:pb#1201:ws#78:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E[>\054\001\001\E[>-\001\001:ec=\E[%dX:ei=\E[4l:\ + :fs=^A:ho=\E[H:\ + :i1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h:i2=\E[m:\ + :im=\E[4h:ip=:is=\E>\E(B\E)0\017:k1=\E[?5i:k2=\E[?3i:\ + :k3=\E[2i:k4=\E[@:k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:kI=\E[@:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[?1l\E[?7h\E=:ku=\E[A:le=^H:\ + :me=\E[m\017:mh=\E[0t\E[2m:mr=\E[1t\E[7m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[m:sf=\n:so=\E[1t\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[>\054\001:ue=\E[m:up=\E[A:us=\E[2t\E[4m:\ + :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l: +# +# This terminal description uses the non-hidden attribute mode +# (with magic cookie). +# +wy75-mc|wyse75-mc|wyse 75 with magic cookies:\ + :ms@:\ + :ma@:sg#1:\ + :ae=\E[0p\017:as=\E[0p\016:i2=\E[m\E[p:mb=\E[2p:\ + :me=\E[0p\017:mh=\E[1p:mk=\E[4p:mr=\E[16p:\ + :..sa=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;:\ + :se=\E[0p:so=\E[17p:ue=\E[0p:us=\E[8p:\ + :tc=wy75: +wy75-vb|wyse75-vb|wyse 75 with visible bell:\ + :pb@:\ + :bl@:tc=wy75: +wy75-w|wyse75-w|wyse 75 in 132 column mode:\ + :co#132:ws#130:\ + :r2=\E[35h\E[?3h:tc=wy75: +wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns:\ + :pb@:\ + :bl@:tc=wy75-w: +# +# Wyse 85 emulating a vt220 7 bit mode. +# 24 line screen with status line. +# +# The vt220 mode permits more function keys but it wipes out +# the escape key. I strongly recommend that <f11> be set to +# escape (esc). +# The terminal may have to be set for 8 data bits and 2 stop +# bits for the arrow keys to work. +# The Wyse 85 runs faster with XON/XOFF enabled. Also the +# :DC: and :IC: work best when XON/XOFF is set. :IC: and +# :DC: leave trash on the screen when used without XON/XOFF. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy85|wyse85|wyse 85:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\ + :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\ + :i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ + :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:kl=\E[D:kr=\E[C:\ + :ks=\E[?1l\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\n:\ + :so=\E[7m:sr=\EM:st=\EH:ta=\011:\ + :ts=\E[40h\E7\E[25;%i%p1%dH:ue=\E[m:up=\E[A:us=\E[4m:\ + :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l: +# +# Wyse 85 with visual bell. +wy85-vb|wyse85-vb|wyse 85 with visible bell:\ + :bl@:vb=\E[30h\E\054\E[30l:tc=wy85: +# +# Wyse 85 in 132-column mode. +wy85-w|wyse85-w|wyse 85 in 132-column mode:\ + :co#132:ws#132:\ + :r2=\E[35h\E[?3h:tc=wy85: +# +# Wyse 85 in 132-column mode with visual bell. +wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns:\ + :bl@:\ + :tc=wy85-w: +# +# Wyse 185 emulating a vt320 7 bit mode. +# +# This terminal always displays 25 lines. These lines may be used +# as 24 data lines and a terminal status line (top or bottom) or +# 25 data lines. The 48 and 50 line modes change the page size +# and not the number of lines on the screen. +# +# The Compose Character key can be used as a meta key if changed +# by set-up. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy185|wyse185|wyse 185:\ + :am:hs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E7\E[99;0H\E[K\E8:ec=\E[%dX:ei=\E[4l:\ + :fs=\E[1;24r\E8:ho=\E[H:i1=\E[?5W:\ + :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ + :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:kl=\E[D:kr=\E[C:\ + :ks=\E[?1l\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[ R:ti=\E[ Q:\ + :ts=\E7\E[99;%i%p1%dH:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[30h\E\054\E[30l:ve=\E[34h\E[?25h:vi=\E[?25l:\ + :vs=\E[?25h\E[34l: +# +# Wyse 185 with 24 data lines and top status (terminal status) +wy185-24|wyse185-24|wyse 185 with 24 data lines:\ + :hs@:\ + :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy185: +# +# Wyse 185 with visual bell. +wy185-vb|wyse185-vb|wyse 185+flash:\ + :bl@:tc=wy185: +# +# Wyse 185 in 132-column mode. +wy185-w|wyse185-w|wyse 185 in 132-column mode:\ + :co#132:ws#132:\ + :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy185: +# +# Wyse 185 in 132-column mode with visual bell. +wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols:\ + :bl@:tc=wy185-w: + +# wy325 terminfo entries +# Done by Joe H. Davis 3-9-92 + +# lines 25 columns 80 +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +wy325|wyse325|Wyse epc:\ + :5i:am:bw:hs:mi:\ + :Nl#8:co#80:lh#1:li#24:lw#8:pb#9601:ws#45:\ + :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\ + :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:RA=\Ed.:\ + :SA=\Ed/:\ + :ac=+/\054.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~:\ + :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\ + :ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:i2=\Ew0:im=\Eq:ip=:\ + :is=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\ + :kE=\ET:kI=\Eq:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:mp=\E):nd=^L:pf=^T:\ + :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\ + :px=\EZ1%+?%s\177:r1=\E~\041\E~4:r2=\EeF\E`\072:\ + :r3=\EwG\Ee(:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:\ + :ti=\Ew1:ts=\EF:up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: + +# +# lines 24 columns 80 vb +# +wy325-vb|wyse325-vb|wyse-325 with visual bell:\ + :bl@:tc=wy325: + +# +# lines 24 columns 132 +# +wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode:\ + :Nl#16:co#132:lw#7:ws#97:\ + :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy325: +# +# lines 25 columns 80 +# +wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325: +# +# lines 25 columns 132 +# +wy325-25w|wyse325-25w|wy325 132 columns:\ + :Nl@:lh@:li#25:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325-w: +# +# lines 25 columns 132 vb +# +wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video:\ + :bl@:\ + :tc=wy325-w: + +# +# lines 42 columns 80 +# +wy325-42|wyse325-42|wyse-325 42 lines:\ + :Nl@:lh@:li#42:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325: +# +# lines 42 columns 132 +# +wy325-42w|wyse325-42w|wyse-325 42 lines wide mode:\ + :Nl@:lh@:li#42:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325-w: +# +# lines 42 columns 132 vb +# +wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell:\ + :bl@:\ + :tc=wy325-w: +# +# lines 43 columns 80 +# +wy325-43|wyse325-43|wyse-325 43 lines:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:tc=wy325: +# +# lines 43 columns 132 +# +wy325-43w|wyse325-43w|wyse-325 43 lines wide mode:\ + :Nl@:lh@:li#43:lw@:\ + :pn@:r3=\EwG\Ee):tc=wy325-w: +# +# lines 43 columns 132 vb +# +wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell:\ + :bl@:\ + :tc=wy325-w: + +# Wyse 370 -- 24 line screen with status line. +# +# The terminal may have to be set for 8 data bits and 2 stop +# bits for the arrow keys to work. +# +# If you change keyboards the terminal will send different +# escape sequences. +# The following definition is for the basic terminal without +# function keys. +# +# <u0> -> enter Tektronix 4010/4014 mode +# <u1> -> exit Tektronix 4010/4014 mode +# <u2> -> enter ASCII mode (from any ANSI mode) +# <u3> -> exit ASCII mode (goto native ANSI mode) +# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode) +# <u5> -> exit Tek 4207 mode (goto native ANSI mode) +# +# Bug: The <op> capability resets attributes. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy370-nk|wyse 370 without function keys:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\ + :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\ + :i1=\E[90;1"p\E[?5W:i2=\E>\017\E)0\E(B\E[63;0w\E[m:\ + :im=\E[4h:ip=:\ + :is=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h:\ + :ke=\E>:ks=\E[?1l\E=:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\ + :so=\E[7m:sr=\EM:st=\EH:ta=\011:te=\E[ R:ti=\E[ Q:\ + :ts=\E[40l\E[40h\E7\E[99;%i%p1%dH:ue=\E[24m:up=\E[A:\ + :us=\E[4m:vb=\E[30h\E\054\E[30l:ve=\E[34h\E[?25h:\ + :vi=\E[?25l:vs=\E[?25h\E[34l: +# +# Function key set for the ASCII (wy-50 compatible) keyboard +# This is the default 370. +# +wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard:\ + :@8=\EOM:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\ + :F5=\E[28~:F6=\E[29~:k1=\E[?4i:k2=\E[?3i:k3=\E[2i:k4=\E[@:\ + :k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\ + :k;=\E[21~:kA=\EOP:kB=\E[Z:kD=\EOQ:kI=\EOP:kL=\EOQ:kN=\E[U:\ + :kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :tc=wy370-nk: +# +# Function key set for the VT-320 (and wy85) compatible keyboard +# +wy370-105k|Wyse 370 with 105 key keyboard:\ + :%1=\E[28~:*6=\E[4~:@0=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:\ + :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:\ + :F8=\E[32~:F9=\E[33~:FA=\E[34~:K1=\EOw:K2=\EOu:K3=\EOy:\ + :K4=\EOq:K5=\EOs:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:\ + :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[26~:\ + :kl=\E[D:kr=\E[C:ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:\ + :tc=wy370-nk: +# +# Function key set for the PC compatible keyboard +# +wy370-EPC|Wyse 370 with 102 key keyboard:\ + :@7=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:k;=\E[21~:kB=\E[Z:kI=\E[2~:kN=\E[U:kP=\E[V:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :tc=wy370-nk: +# +# Wyse 370 with visual bell. +wy370-vb|Wyse 370 with visible bell:\ + :bl@:tc=wy370: +# +# Wyse 370 in 132-column mode. +wy370-w|Wyse 370 in 132-column mode:\ + :co#132:ws#132:\ + :r2=\E[35h\E[?3h:tc=wy370: +# +# Wyse 370 in 132-column mode with visual bell. +wy370-wvb|Wyse 370 with visible bell 132-columns:\ + :vb=\E[30h\E\054\E[30l:tc=wy370-w: +wy370-rv|Wyse 370 reverse video:\ + :r3=\E[32h\E[?5h:tc=wy370: +# +# Wyse 99gt Tektronix 4010/4014 emulator, +# +wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator:\ + :am:os:\ + :co#74:li#35:\ + :bl=^G:cl=\E^L:\ + :..cm=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037:\ + :cr=^M:do=^J:ff=^L:\ + :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\ + :ho=^]7`x @\037:\ + :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\ + :is=\E8:le=^H:nd= :nw=^M^J:u0=\E~>\E8:u1=\E[42h:up=^K: +# +# Wyse 160 Tektronix 4010/4014 emulator, +# +wy160-tek|Wyse 160 Tektronix 4010/4014 emulator:\ + :..cm=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037:\ + :ho=^]8`g @\037:\ + :tc=wy99gt-tek: +# +# Wyse 370 Tektronix 4010/4014 emulator, +# +wy370-tek|Wyse 370 Tektronix 4010/4014 emulator:\ + :am:os:\ + :co#80:li#36:\ + :bl=^G:cl=\E^L:\ + :..cm=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037:\ + :cr=^M:do=^J:ff=^L:\ + :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\ + :ho=^]8g @\037:\ + :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\ + :is=\E8:kb=^H:kd=^J:kl=^H:kr=^I:ku=^K:le=^H:nd= :nw=^M^J:\ + :u0=\E[?38h\E8:u1=\E[?38l\E)0:up=^K: + +# Vendor-supplied Wyse entries end here. + +# Can't set tabs! Other bugs (ANSI mode only): +# - can't redefine function keys (anyway, key redefinition in ANSI mode +# is too much complex to be described); +# - meta key can't be described (the terminal forgets it when reset); +# The xon-xoff handshaking can't be disabled while in ansi personality, so +# emacs can't work at speed greater than 9600 baud. No padding is needed at +# this speed. +# dch1 has been commented out because it causes annoying glittering when +# vi deletes one character at the beginning of a line with tabs in it. +# dch makes sysgen(1M) have a horrible behaviour when deleting +# a screen and makes screen(1) behave badly, so it is disabled too. The nice +# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are +# not, so smir and rmir are commented out as well. +# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard):\ + :am:km:mi:ms:xn:\ + :co#80:it#8:li#25:vt#3:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dl=\E[M:do=\ED:ec=\E[%dX:ei=\E[4l:ho=\E[H:\ + :im=\E[4h:\ + :is=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h:ku=\EOA:le=\010:ll=\E[24E:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017\E["q:mh=\E[2m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\n:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[24m:up=\EM:us=\E[4m:vb=\E[?5h\E[?5l:\ + :ve=\E[34h\E[?25h:vi=\E[?25l:vs=\E[34l\E[?25h: + +# This is the american terminal. Here tabs work fine. +# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard):\ + :ct=\E[3g:i2=\E[?5l:r3=\E[?5l:st=\EH:\ + :tc=wy99-ansi: + +# This terminal (firmware version 02) has a lot of bugs: +# - can't set tabs; +# - other bugs in ANSI modes (see above). +# This description disables handshaking when using cup. This is because +# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal +# cannot be used at speeds greater than 9600 baud, because at greater +# speeds handshaking is needed even for character sending. If you use +# DTR handshaking, you can use even greater speeds. +# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard):\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:it#8:li#25:ws#46:\ + :K1=^^:K3=\EJ:K4=\ET:K5=\EK:ae=\EcD:al=\EE:as=\EcE:bl=^G:\ + :bt=\EI:cd=\EY:ce=\ET:cl=\E'\E(\032:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=\Ej:ds=\EF\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\ + :is=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\1360\E`1\E`4\Ee.\E`\072\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:\ + :le=^H:mb=\EG2:me=\E(\EG0:mh=\EGp:mr=\EG4:nd=^L:nw=^_:\ + :se=\EG0:sf=^J:so=\EG4:sr=\Ej:ta=^I:te=\Ec21\Ec31:\ + :ti=\Ec20\Ec30:ts=\EF:up=^K:vb=\E\1361\E\1360:\ + :ve=\E`4\E`1:vi=\E`0:vs=\E`2\E`1: + +# This is the american terminal. Here tabs work. +# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998 +wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard):\ + :ct=\E0:st=\E1:\ + :tc=wy99f: + +# +#TITLE: TERMINFO ENTRY WY520 +#DATE: 8/5/93 +# The WY520 terminfo is based on the WY285 entry published on the WYSE +# BBS with the addition of more function keys and special keys. +# +# rs1 -> set personality +# rs2 -> set number of columns +# rs3 -> set number of lines +# is1 -> select the proper font +# is2 -> do the initialization +# is3 -> If this string is empty then rs3 gets sent. +# +# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard +# - The BS key is programmed to generate BS in smcup since +# is2 doesn't seem to work. +# - Remove and shift/Remove: delete a character +# - Insert : enter insert mode +# - Find : delete to end of file +# - Select : clear a line +# - F11, F12, F13: send default sequences (not ESC, BS, LF) +# - F14 : Home key +# - Bottom status line (host writable line) is used. +# - smkx,rmkx are removed because this would put the numeric +# keypad in Dec application mode which doesn't seem to work +# with SCO applications. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy520|wyse520|wyse 520:\ + :am:hs:km:mi:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[0$~:\ + :ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:i1=\E[?5W:\ + :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ + :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:kh=\E[26~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\ + :rc=\E8:sc=\E7:se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E[ R:ti=\E[ Q\E[?67;8h:ts=\E[2$~\E[1$}\E[%i%p1%d`:\ + :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[34h\E[?25h:vi=\E[?25l:\ + :vs=\E[?25h\E[34l: +# +# Wyse 520 with 24 data lines and status (terminal status) +wy520-24|wyse520-24|wyse 520 with 24 data lines:\ + :hs@:\ + :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy520: +# +# Wyse 520 with visual bell. +wy520-vb|wyse520-vb|wyse 520 with visible bell:\ + :vb=\E[30h\E\054\E[30l:tc=wy520: +# +# Wyse 520 in 132-column mode. +wy520-w|wyse520-w|wyse 520 in 132-column mode:\ + :co#132:ws#132:\ + :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy520: +# +# Wyse 520 in 132-column mode with visual bell. +wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns:\ + :vb=\E[30h\E\054\E[30l:\ + :tc=wy520-w: +# +# +# Wyse 520 emulating a vt420 7 bit mode. +# The DEL key is programmed to generate BS in is2. +# With EPC keyboard. +# - 'End' key will clear till end of line on EPC keyboard +# - Shift/End : ignored. +# - Insert : enter insert mode. +# - Delete : delete a character (have to change interrupt character +# to CTRL-C: stty intr '^c') for it to work since the +# Delete key sends 7FH. +wy520-epc|wyse520-epc|wyse 520 with EPC keyboard:\ + :@7=\E[4~:k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:\ + :k4=\E[14~:k5=\E[15~:kD=\177:kE=\E[4~:kh=\E[H:\ + :tc=wy520: +# +# Wyse 520 with 24 data lines and status (terminal status) +# with EPC keyboard. +wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard:\ + :hs@:\ + :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy520-epc: +# +# Wyse 520 with visual bell. +wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard:\ + :vb=\E[30h\E\054\E[30l:\ + :tc=wy520-epc: +# +# Wyse 520 in 132-column mode. +wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard:\ + :co#132:ws#132:\ + :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy520-epc: +# +# Wyse 520 in 132-column mode with visual bell. +wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard:\ + :vb=\E[30h\E\054\E[30l:\ + :tc=wy520-epc-w: +# +# Wyse 520 in 80-column, 36 lines +wy520-36|wyse520-36|wyse 520 with 36 data lines:\ + :hs@:\ + :li#36:\ + :ds@:fs@:r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r:ts@:tc=wy520: +# +# Wyse 520 in 80-column, 48 lines +wy520-48|wyse520-48|wyse 520 with 48 data lines:\ + :hs@:\ + :li#48:\ + :ds@:fs@:r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r:ts@:tc=wy520: +# +# Wyse 520 in 132-column, 36 lines +wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines:\ + :co#132:ws#132:\ + :r2=\E[?3h:\ + :r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|:tc=wy520-36: +# +# Wyse 520 in 132-column, 48 lines +wy520-48w|wyse520-48w|wyse 520 with 48 data lines:\ + :co#132:ws#132:\ + :r2=\E[?3h:\ + :r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|:tc=wy520-48: +# +# +# Wyse 520 in 80-column, 36 lines with EPC keyboard +wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard:\ + :hs@:\ + :li#36:\ + :ds@:fs@:r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r:ts@:tc=wy520-epc: +# +# Wyse 520 in 80-column, 48 lines with EPC keyboard +wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard:\ + :hs@:\ + :li#48:\ + :ds@:fs@:r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r:ts@:tc=wy520-epc: +# +# Wyse 520 in 132-column, 36 lines with EPC keyboard +wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard:\ + :co#132:ws#132:\ + :r2=\E[?3h:\ + :r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|:tc=wy520-36pc: +# +# Wyse 520 in 132-column, 48 lines with EPC keyboard +wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard:\ + :co#132:ws#132:\ + :r2=\E[?3h:\ + :r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|:tc=wy520-48pc: + +# From: John Gilmore <hoptoad!gnu@lll-crg.arpa> +# (wyse-vp: removed :if=/usr/share/tabset/wyse-adds:, there's no such +# file and we don't know what :st: is -- esr) +wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=\EM:bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dc=\EW:\ + :dl=\El:do=^J:ei=\Er:ho=^A:im=\Eq:is=\E`\072\E`9\017\Er:\ + :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:ll=^A^Z:me=^O:\ + :nd=^F:nw=^M^J:r1=\E`\072\E`9\017\Er:se=^O:sf=^J:so=^N:\ + :ta=^I:ue=^O:up=^Z:us=^N: + +wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad:\ + :is=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=:kb=^H:\ + :kd=\EOB:ke=10\E[?1l\E>:kh=\EOH:kl=\EOD:kr=\EOC:\ + :ks=10\E[?1h\E=:ku=\EOA:tc=wy75: + +# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998 +# This copes with an apparent firmware bug in the wy85. He writes: +# "What I did was change leave the terminal cursor keys set to Normal +# (instead of application), and change \E[ to \233 for all the keys in +# terminfo. At one point, I found some reference indicating that this +# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just +# me), but I can't find that and the server under my bookmark to "Wyse +# Technical" isn't responding. So there's the question of wether the wy85 +# terminfo should reflect the manufactuer's intended behaviour of the terminal +# or the actual." +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\ + :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\ + :i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\ + :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\23317~:k7=\23318~:\ + :k8=\23319~:k9=\23320~:kD=\2333~:kI=\2332~:kN=\2336~:\ + :kP=\2335~:kb=^H:kd=\233B:ke=\E>:kh=\23326~:kl=\233D:\ + :kr=\233C:ks=\E[?1l\E=:ku=\233A:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\ + :se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\ + :ts=\E[40h\E7\E[25;%i%p1%dH:ue=\E[m:up=\E[A:us=\E[4m:\ + :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l: + +# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu> +wy100q|Wyse 100 for Quotron:\ + :bs:\ + :co#80:li#24:sg#1:\ + :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=\EW:\ + :dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:\ + :is=\E`\072\0\EC\EDF\E0\E'\E(\EA21:kd=^J:kl=^H:kr=^L:\ + :ku=^K:le=^H:mk@:nd=^L:sr=\Ej:up=^K:\ + :tc=adm+sgr: + +#### Kermit terminal emulations +# +# Obsolete Kermit versions may be listed in the section describing obsolete +# non-ANSI terminal emulators later in the file. +# + +# KERMIT standard all versions. +# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. +# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) +# From: greg small <gts@populi.berkeley.edu> 9-25-84 +kermit|standard kermit:\ + :bs:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :ho=\EH:\ + :is=K0 Standard Kermit 9-25-84\n:kd=^J:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:nd=\EC:up=\EA: +kermit-am|standard kermit plus auto-margin:\ + :am:\ + :is=K1 Standard Kermit plus Automatic Margins\n:tc=kermit: +# IBMPC Kermit 1.2. +# Bugs: :cd:, :ce:: do not work except at beginning of line! :cl: does +# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of +# line). +# From: greg small <gts@populi.berkeley.edu> 8-30-84 +pckermit|pckermit12|UCB IBMPC Kermit 1.2:\ + :am:\ + :li#25:\ + :cd@:ce@:cl=\EH\EJ:\ + :is=K2 UCB IBMPC Kermit 1.2 8-30-84\n:tc=kermit: +# IBMPC Kermit 1.20 +# Cannot use line 25, now acts funny like ansi special scrolling region. +# Initialization must escape from that region by cursor position to line 24. +# Cannot use character insert because 1.20 goes crazy if insert at col 80. +# Does not use :am: because autowrap is lost when kermit dropped and restarted. +# From: greg small <gts@populi.berkeley.edu> 12-19-84 +pckermit120|UCB IBMPC Kermit 1.20:\ + :it#8:li#24:\ + :al=\EL:dc=\EN:dl=\EM:do=\EB:ei@:im@:\ + :is=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n:\ + :se=\Eq:so=\Ep:ta=^I:vs=\EO\Eq\EEK3:\ + :tc=kermit: +# MS-DOS Kermit 2.27 for the IBMPC +# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi. +# Cannot use line 25, now acts funny like ansi special scrolling region. +# Initialization must escape from that region by cursor position to line 24. +# Does not use am: because autowrap is lost when kermit dropped and restarted. +# Reverse video for standout like H19. +# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr) +# From: greg small <gts@populi.berkeley.edu> 3-17-85 +msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC:\ + :am@:bs:\ + :co#80:it#8:li#24:\ + :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dc=\EN:dl=\EM:\ + :do=\EB:ei=\EO:ho=\EH:im=\E@:\ + :is=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n:\ + :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=\EC:rc=\Ek:sc=\Ej:\ + :se=\Eq:so=\Ep:ta=^I:up=\EA:vs=\EO\Eq\EG\EwK4: +# MS-DOS Kermit 2.27 with automatic margins +# From: greg small <gts@populi.berkeley.edu> 3-17-85 +msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins:\ + :am:\ + :is=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n:\ + :vs=\EO\Eq\EG\EvK5:\ + :tc=msk227: +# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC +# Automatic margins now default. Use ansi :sa: for highlights. +# Define function keys. +# (msk22714: removed obsolete ":kn#10:" -- esr) +# From: greg small <gts@populi.berkeley.edu> 3-17-85 +msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC:\ + :am:\ + :is=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n:\ + :k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:\ + :k8=\E8:k9=\E9:md=\E[1m:me=\E[m:mr=\E[7m:se=\E[m:so=\E[1m:\ + :ue=\E[m:us=\E[4m:vs=\EO\Eq\EG\EvK6:\ + :tc=mskermit227: +# This was designed for a VT320 emulator, but it is probably a good start +# at support for the VT320 itself. +# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu. +# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vt320-k3|MS-Kermit 3.00's vt320 emulation:\ + :am:es:hs:km:mi:ms:xn:\ + :co#80:it#8:li#49:pb#9600:vt#3:\ + :AL=\E[%dL:CC=\E:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SR=\E[%dL:UP=\E[%dA:ae=\E(B:al=\E[L:\ + :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\E[0$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:im=\E[4h:\ + :is=\E>\E F\E[?1l\E[?7h\E[r\E[2$~:k0=\E[21~:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:rc=\E8:\ + :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[1$}\r\E[K:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l:ve=\E[?25h:\ + :vi=\E[?25l: +# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991 +# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996 +# (I removed a bogus boolean :mo: and added :ms:, <smam>, <rmam> -- esr) +vt320-k311|dec vt320 series as defined by kermit 3.11:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=3\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\ + :fs=\E[$}:ho=\E[H:im=\E[4h:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ + :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\ + :r1=\E[?3l:rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: + +# +######## ---------------- TERMINFO FILE CAN BE SPLIT HERE ------------------- +# This cut mark helps make life less painful for people running ncurses tic +# on machines with relatively little RAM. The file can be broken in half here +# cleanly and compiled in sections -- no `use' references cross this cut +# going forward. +# + +######## OLDER TERMINAL TYPES +# +# This section is devoted to older commercial terminal brands that are now +# discontinued, but known to be still in use or represented by emulations. +# + +#### AT&T (att, tty) +# +# This section also includes Teletype-branded VDTs. +# +# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now +# Boundless Technologies); for details, see the header comment on the ADDS +# section. +# +# These are AT&T's official terminfo entries. All-caps aliases have been +# removed. +# +att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode:\ + :am:eo:mi:ms:xo:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[11r:\ + :F2=\E[12r:F3=\E[13r:F4=\E[14r:F5=\E[15r:F6=\E[16r:\ + :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:\ + :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :k1=\E[1r:k2=\E[2r:k3=\E[3r:k4=\E[4r:k5=\E[5r:k6=\E[6r:\ + :k7=\E[7r:k8=\E[8r:k9=\E[9r:k;=\E[10r:kA=\E[L:kB=\E[Z:\ + :kC=\E[J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:nd=\E[C:\ + :pf=\E[4i:po=\E[5i:ps=\E[0i:se=\E[m:sf=^J:so=\E[7m:ta=^I:\ + :up=\E[A: +att2350|AT&T 2350 Video Information Terminal 80 column mode:\ + :pf@:po@:ps@:\ + :tc=att2300: + +# Must setup RETURN KEY - CR, REC'VD LF - INDEX. +# Seems upward compatible with vt100, plus ins/del line/char. +# On sgr, the protection parameter is ignored. +# No check is made to make sure that only 3 parameters are output. +# standout= reverse + half-intensity = 3 | 5. +# bold= reverse + underline = 2 | 3. +# note that half-bright blinking doesn't look different from normal blinking. +# NOTE:you must program the function keys first, label second! +# (att4410: a BSD entry has been seen with the following capabilities: +# :is=\E[?6l:, :k1=\EOc:, :k2=\EOd:, :k3=\EOe:, :k4=\EOg:, +# :k6=\EOh:, :k7=\EOi:, :k8=\EOj:, -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1:\ + :am:hs:mi:ms:xo:\ + :Nl#8:co#80:it#8:lh#2:li#24:lw#8:ws#80:\ + :ac=++\054\054--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=:fs=\E8:ho=\E[H:i1=\E[?3l\E)0:\ + :i2=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW:\ + :ic=\E[@:im=:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:\ + :k6=\EOU:k7=\EOV:k8=\EOW:kC=\E[2J:kH=\E[24;1H:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:mk=\E[8m:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:r2=\Ec\E[?3l\E[2;0y:rc=\E8:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :ts=\E7\E[25;%p1%{1}%+%dH:ue=\E[m:up=\E[A:us=\E[4m: + +att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1:\ + :co#132:ws#132:\ + :i1=\E[?3h\E)0:r2=\Ec\E[?3h\E[2;0y:tc=att5410v1: + +att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2:\ + :bs:\ + :..px=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s:tc=att5410v1: + +att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode:\ + :co#132:ws#132:\ + :i1=\E[?3h\E)0:r2=\Ec\E[?3h\E[2;0y:tc=att4410: + +# 5410 in terms of a vt100 +# (v5410: added <rmam>/<smam> based on init string -- esr) +v5410|att5410 in terms of a vt100:\ + :am:mi:ms:xo:\ + :co#80:it#8:li#24:vt#3:\ + :@8=\EOM:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:RA=\E[?7l:\ + :SA=\E[?7h:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\ + :ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:\ + :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: + +# +# Teletype Model 5420 -- A souped up 5410, with multiple windows, +# even! the 5420 has three modes: scroll, window or page mode +# this terminfo should work in scroll or window mode, but doesn't +# take advantage of any of the differences between them. +# +# Has memory below (2 lines!) +# 3 pages of memory (plus some spare) +# The 5410 sequences for :cm:, :vs:, :DC:, :DL:, :ec:, :vb:, :ho:, +# <hpa>, :st: would work for these, but these work in both scroll and window +# mode... Unset insert character so insert mode works +# :i1: sets 80 column mode, +# :is: escape sequence: +# 1) turn off all fonts +# 2) function keys off, keyboard lock off, control display off, +# insert mode off, erasure mode off, +# 3) full duplex, monitor mode off, send graphics off, nl on lf off +# 4) reset origin mode +# 5) set line wraparound +# 6) exit erasure mode, positional attribute mode, and erasure extent mode +# 7) clear margins +# 8) program ENTER to transmit ^J, +# We use \212 to program the ^J because a bare ^J will get translated by +# UNIX into a CR/LF. The enter key is needed for AT&T uOMS. +# 1 2 3 4 5 6 7 8 +# :i3: set screen color to black, +# No representation in terminfo for the delete word key: kdw1=\Ed +# Key capabilities assume the power-up send sequence... +# This :te: is not strictly necessary, but it helps maximize +# memory usefulness: :te=\Ez:, +# Alternate sgr0: :me=\E[m\EW^O:, +# Alternate sgr: :sa=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;:, +# smkx programs the SYS PF keys to send a set sequence. +# It also sets up labels f1, f2, ..., f8, and sends edit keys. +# This string causes them to send the strings :k1:-:k8: +# when pressed in SYS PF mode. +# (att4415: I added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +att4415|tty5420|att5420|AT&T 4415/5420 80 cols:\ + :bs:db:mi:xo:\ + :Nl#8:lh#2:lm#78:lw#8:ws#55:\ + :@1=\Et:@7=\Ez:@8=\Eent:AL=\E[%dL:CM=\E[%i%p1%d;%p2%dt:\ + :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:LF=\E|:\ + :LO=\E~:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dE:SR=\E[%dF:\ + :UP=\E[%dA:bt=\E[Z:ch=\E[%+^AG:cl=\E[x\E[J:\ + :cm=\E[%i%d;%dx:ct=\E[3g:cv=\E[%+^Ad:ec=\E[%ds\E[%dD:\ + :ei=\E[4l:ho=\E[x:i1=\E[?3l:i2=\E[?5l:ic@:im=\E[4h:\ + :is=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212:\ + :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\ + :k8=\EOj:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\E[2K:kF=\E[T:kH=\Eu:\ + :kI=\E[4h:kL=\E[M:kN=\E[U:kP=\E[V:kR=\E[S:\ + :ke=\E[19;0j\E[21;1j\212:ks=\E[19;1j\E[21;4j\Eent:\ + :l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:ll=\Ew:\ + :me=\E[m\017:mp=\EV:pf=\E[?9i:po=\E[?4i:ps=\E[?2i:st=\EH:\ + :ts=\E7\E[25;%p1%{8}%+%dH:vb=\E[?5h\E[?5l:ve=\E[11;0j:\ + :vs=\E[11;1j:\ + :tc=att4410: + +att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols:\ + :co#132:lm#54:ws#97:\ + :i1=\E[?3h:tc=att4415: + +att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv:\ + :i2=\E[?5h:vb=\E[?5l\E[?5h:\ + :tc=att4415: + +att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv:\ + :co#132:lm#54:ws#97:\ + :i1=\E[?3h:i2=\E[?5h:vb=\E[?5l\E[?5h:tc=att4415: + +# Note that this mode permits programming USER PF KEYS and labels +# However, when you program user pf labels you have to reselect +# user pf keys to make them appear! +att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :..pn=\E[%p1%d;0;0;1q%p2%:-16.16s:\ + :..px=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s: + +att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :tc=att4415+nl:tc=att4415: + +att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :tc=att4415+nl:tc=att4415-rv: + +att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :tc=att4415+nl:tc=att4415-w: + +att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\ + :tc=att4415+nl:tc=att4415-w-rv: + +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att5420_2|AT&T 5420 model 2 80 cols:\ + :am:db:hs:mi:ms:xo:\ + :co#80:it#8:li#24:lm#78:ws#55:\ + :AL=\E[%dL:CM=\E[%i%p1%d;%p2%dt:DC=\E[%dP:DL=\E[%dM:\ + :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:\ + :UP=\E[%dA:ae=^O:al=\E[L:as=^N:bt=\E[1Z:cd=\E[0J:ce=\E[0K:\ + :cl=\EH\EJ:cm=\E[%i%d;%dH:cr=\EG:cs=\E[%i%d;%dr:ct=\E[3g:\ + :dc=\E[P:dl=\E[M:do=\E[1B:ec=\E[%ds\E[%dD:ei=:fs=\E8:\ + :ho=\E[H:\ + :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:\ + :ic=\E[@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\ + :k6=\EOh:k7=\EOi:k8=\EOj:kD=\E[P:kH=\Eu:kI=\E[4h:kN=\E[U:\ + :kP=\E[V:kb=^H:kd=\E[B:ke=\E[19;0j:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E[19;1j:ku=\E[A:le=^H:ll=\Ew:mb=\E[5m:me=\E[m\017:\ + :mh=\E[2m:mr=\E[7m:nd=\E[1C:nw=^M^J:rc=\E8:sc=\E7:se=\E[m:\ + :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E7\E[25;%p1%{8}%+%dH:ue=\E[m:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[11;0j:vs=\E[11;1j: +att5420_2-w|AT&T 5420 model 2 in 132 column mode:\ + :co#132:\ + :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:tc=att5420_2: + +att4418|att5418|AT&T 5418 80 cols:\ + :am:xo:\ + :co#80:li#24:\ + :@8=\E[:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[n:\ + :F2=\E[o:F3=\E[H:F4=\E[I:F5=\E[J:F8=\E[K:F9=\E[L:FA=\E[E:\ + :FB=\E[_:FC=\E[M:FD=\E[N:FE=\E[O:IC=\E[%d@:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[1L:as=^N:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :i1=\E[?3l:ic=\E[1@:im=:is=\E)0\E?6l\E?5l:k1=\E[h:k2=\E[i:\ + :k3=\E[j:k6=\E[k:k7=\E[l:k8=\E[f:k9=\E[w:k;=\E[m:kC=\E[%:\ + :kd=\EU:kh=\Ec:kl=\E@:kr=\EA:ku=\ES:le=\E[D:mb=\E[5m:\ + :me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\ + :se=\E[m:sf=^J:so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m: +att4418-w|att5418-w|AT&T 5418 132 cols:\ + :co#132:\ + :i1=\E[?3h:tc=att5418: + +att4420|tty4420|teletype 4420:\ + :bs:da:db:eo:ms:ul:xo:\ + :co#80:li#24:lm#72:\ + :al=\EL:bl=^G:cd=\EJ:ce=\Ez:cl=\EH\EJ:cm=\EY%+ %+ :cr=\EG:\ + :dc=\EP:dl=\EM:dm@:do=\EB:ed@:ho=\EH:k0=\EU:k3=\E@:kA=\EL:\ + :kB=\EO:kC=\EJ:kD=\EP:kF=\ES:kI=\E\136:kL=\EM:kR=\ET:kd=\EB:\ + :kh=\EH:kl=^H:kr=\EC:ku=\EA:l0=segment advance:\ + :l3=cursor tab:le=\ED:nd=\EC:se=\E~:sf=\EH\EM\EY7 :so=\E}:\ + :ue=\EZ:up=\EA:us=\E\: + +# The following is a terminfo entry for the Teletype 4424 +# asynchronous keyboard-display terminal. It supports +# the vi editor. The terminal must be set up as follows, +# +# HIGHLIGHT DEFINITION 3-TONE +# DISPLAY FUNCTION GROUP III +# +# The second entry below provides limited (a la adm3a) +# operation under GROUP II. +# +# This must be used with DISPLAY FUNCTION GROUP I or III +# and HIGHLIGHT DEFINITION 3-TONE +# The terminal has either bold or blink, depending on options +# +# (att4424: commented out :ti:=\E[1m, we don't need bright locked on -- esr) +att4424|tty4424|teletype 4424:\ + :am:bs:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\EL:as=\E(0:bl=^G:bt=\EO:cd=\EJ:ce=\Ez:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\EF:\ + :dc=\EP:dl=\EM:do=\EB:ei=:ho=\E[H:ic=\E\136:im=:\ + :is=\E[20l\E[?7h:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kC=\EJ:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E3:\ + :md=\E3:me=\EX\E~\EZ\E4\E(B:mh=\EW:mr=\E}:nd=\EC:nw=\EE:\ + :..sa=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m:\ + :se=\E~:sf=^J:so=\E}:sr=\ET:st=\EH:ta=^I:ue=\EZ:up=\EA:\ + :us=\E\: + +att4424-1|tty4424-1|teletype 4424 in display function group I:\ + :kC@:kd=\EB:kh@:kl=\ED:kr=\EC:ku=\EA:\ + :tc=att4424: + +# This entry is not one of AT&T's official ones, it was translated from the +# 4.4BSD termcap file. The highlight strings are different from att4424. +# I have no idea why this is -- older firmware version, maybe? +# The following two lines are the comment originally attached to the entry: +# This entry appears to avoid the top line - I have no idea why. +# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp +att4424m|tty4424m|teletype 4424M:\ + :am:da:db:mi:\ + :co#80:it#8:li#23:\ + :al=\EL:bl=^G:ce=\E[K:cl=\E[2;H\E[J:cm=\E[%i%2;%2H\E[B:\ + :cr=^M:dc=\EP:dl=\EM:do=^J:ei=:ic=\E\136:im=:ip=2:\ + :is=\E[m\E[2;24r:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:\ + :nd=\E[C:nw=^M^J:se=\E[m:sf=^J:so=\E[7m:sr=\ET:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: + +# The Teletype 5425 is really version 2 of the Teletype 5420. It +# is quite similar, except for some minor differences. No page +# mode, for example, so all of the :cm: sequences used above have +# to change back to what's being used for the 5410. Many of the +# option settings have changed their numbering as well. +# +# This has been tested on a preliminary model. +# +# (att5425: added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att5425|tty5425|att4425|AT&T 4425/5425:\ + :am:da:db:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:lm#78:ws#55:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\ + :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%ds\E[%dD:ei=\E[4l:fs=\E8:ho=\E[H:\ + :i1=\E<\E[?3l:i2=\E[?5l:im=\E[4h:\ + :is=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212:\ + :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\ + :k8=\EOj:kD=\E[P:kI=\E[4h:kb=^H:kd=\E[B:\ + :ke=\E[21;0j\E[25;1j\212:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E[21;1j\E[25;4j\Eent\E~:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:\ + :nd=\E[C:nw=^M^J:rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:\ + :sr=\EM:st=\EH:ta=^I:ts=\E7\E[25;%p1%{8}%+%dH:ue=\E[m:\ + :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[12;0j:\ + :vs=\E[12;1j: + +att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels:\ + :ks=\E[21;1j\E[25;4j\Eent:\ + :tc=att4425: + +att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode:\ + :co#132:lm#54:ws#97:\ + :i1=\E[?3h:tc=tty5425: + +# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:. +# I also added <rmam>/<smam> -- esr) +att4426|tty4426|teletype 4426S:\ + :am:da:db:xo:\ + :co#80:li#24:lm#48:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dS:\ + :SR=\E[%dT:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E(B:al=\EL:as=\E(0:bl=^G:cd=\E[J:ce=\E[0K:ch=\E[%dG:\ + :cl=\E[H\E[2J\E[1U\E[H\E[2J\E[1V:cm=\E[%i%d;%dH:cr=^M:\ + :ct=\E[3g:cv=\E[%dd:dc=\EP:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :i1=\Ec\E[?7h:ic=\E\136:im=:is=\E[m\E[1;24r:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:\ + :kB=\EO:kC=\E[2J:kH=\E[24;1H:kb=^H:kd=\EB:kh=\E[H:kl=\ED:\ + :kr=\EC:ku=\EA:le=\E[D:ll=\E[24H:md=\E[5m:me=\E[m\E(B:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:r2=\Ec\E[?3l\E[2;0y:rc=\E8:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[5m:sr=\ET:st=\E1:ta=^I:ue=\E[m:\ + :up=\EA:us=\E[4m: + +# Terminfo entry for the AT&T 510 A Personal Terminal +# Function keys 9 - 16 are available only after the +# screen labeled (soft keys/action blocks) are labeled. Function key +# 9 corresponds to the leftmost touch target on the screen, +# function key 16 corresponds to the rightmost. +# +# This entry is based on one done by Ernie Rice at Summit, NJ and +# changed by Anne Gallup, Skokie, IL, ttrdc!anne +# (untranslatable capabilities removed to fit entry within 1023 bytes) +att510a|bct510a|AT&T 510A Personal Terminal:\ + :am:mi:ms:xn:xo:\ + :Nl#8:co#80:lh#2:li#24:lw#7:\ + :#4=\E[u:%i=\E[v:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\ + :F1=\EOe:F2=\EOf:F3=\EOg:F4=\EOh:F5=\EOi:F6=\EOj:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:\ + :ac=+g\054h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[0J:\ + :ce=\E[0K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :dc=\E[P:dl=\E[M:do=\E[1B:eA=\E(B\E)1:ff=^L:ho=\E[H:\ + :i1=\E(B\E)1\E[2l:i2=\E[21;1|\212:k1=\EOm:k2=\EOV:\ + :k3=\EOu:k4=\ENj:k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:k9=\EOc:\ + :k;=\EOd:kB=\E[Z:kF=\E[S:kR=\E[T:kb=^H:kd=\E[B:ke=\E[19;0|:\ + :kl=\E[D:kr=\E[C:ks=\E[19;1|:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :pf=\E[?8i:po=\E[?4i:ps=\E[0i:rc=\E8:sc=\E7:se=\E[m:sf=^J:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[11;3|:vi=\E[11;0|:vs=\E[11;2|: + +# Terminfo entry for the AT&T 510 D Personal Terminal +# Function keys 9 through 16 are accessed by bringing up the +# system blocks. +# Function key 9 corresponds to the leftmost touch target on the screen, +# function key 16 corresponds to the rightmost. +# +# There are problems with soft key labeling. These are due to +# strangenesses in the native terminal that are impossible to +# describe in a terminfo. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att510d|bct510d|AT&T 510D Personal Terminal:\ + :am:da:db:mi:ms:xn:xo:\ + :co#80:li#24:lm#48:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\ + :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[1B:\ + :ei=\E[4l:ff=^L:ho=\E[H:i1=\E(B\E)1\E[5;0|:\ + :i2=\E[21;1|\212:im=\E[4h:k1=\EOm:k2=\EOV:k3=\EOu:k4=\ENj:\ + :k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:k9=\EOc:kb=^H:kd=\E[B:\ + :ke=\E[19;0|:kl=\E[D:kr=\E[C:ks=\E[19;1|:ku=\E[A:le=^H:\ + :ll=\E#2:mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=^J:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[11;3|:vs=\E[11;2|: + +# (att500: I merged this with the att513 entry, att500 just used att513 -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att500|att513|AT&T 513 using page mode:\ + :am:mi:ms:xn:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\ + :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\ + :i1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l:\ + :im=\E[4h:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:\ + :k7=\EOi:k8=\EOj:kD=\ENf:kI=\ENj:kN=\E[U:kP=\E[V:kb=^H:\ + :kd=\E[B:ke=\E[19;0|\E[21;1|\212:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E[19;1|\E[21;4|\Eent:ku=\E[A:le=^H:ll=\E#2:mb=\E[5m:\ + :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[11;0|:vs=\E[11;1|: + +# 01-07-88 +# printer must be set to EMUL ANSI to accept ESC codes +# :up: stops at top margin +# :i1: sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font +# and alt font ascii,wrap on,tabs cleared +# :is: disables newline on LF,Emphasized off +# The <u0> capability sets form length +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att5310|att5320|AT&T Model 53210 or 5320 matrix printer:\ + :co#132:it#8:li#66:\ + :DO=\E[%de:RI=\E[%da:cr=^M:do=^J:ff=^L:i1=\Ec:is=\E[20l\r:\ + :nd= :ta=^I:up=\EM: + +# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL +# The following SET-UP modes are assumed for normal operation: +# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL +# Other SET-UP modes may be set for operator convenience or communication +# requirements. This termcap description is for the Resident Terminal Mode. +# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# The BRL entry also said: UNSAFE :ll=\E[70H: +att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs:\ + :am:xo:\ + :co#88:it#8:li#70:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\ + :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:\ + :ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:nw=^M^J:r1=\Ec:\ + :rc=\E8:sc=\E7:sf=^J:sr=\E[T:ta=^I:up=\E[A: + +# 5620 terminfo (2.0 or later ROMS with char attributes) +# The following SET-UP modes are assumed for normal operation: +# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR +# Other SET-UP modes may be set for operator convenience or communication +# requirements. This termcap description is for Resident Terminal Mode. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# assumptions: :sf: (scroll forward one line) is only done at screen bottom +# Be aware that older versions of the dmd have a firmware bug that affects +# parameter defaulting; for this terminal, the 0 in \E[0m is not optional. +# :ms: is from an otherwise inferior BRL for this terminal. That entry +# also has :ll:=\E[70H commented out and marked unsafe. +# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>. +att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns:\ + :NL:NP:am:bs:ms:xo:\ + :co#88:it#8:li#70:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\ + :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[2m:me=\E[0m:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=^J:..px=\E[%p1%d;%p2%l%dq%p2%s:\ + :r1=\Ec:rc=\E8:sc=\E7:se=\E[0m:sf=\E[S:so=\E[7m:sr=\E[T:\ + :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m: +att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer:\ + :li#24:tc=att5620: +att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer:\ + :li#34:tc=att5620: +# 5620 layer running the "S" system's downloaded graphics handler: +att5620-s|tty5620-s|layer|vitty|5620 S layer:\ + :am:bs:pt:\ + :co#80:it#8:li#72:\ + :al=\EI:bl=^G:ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dl=\ED:\ + :do=^J:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:sf=^J:ta=^I:up=^K:vb=\E^G: + +# Entries for <kf15> thru <kf28> refer to the shifted system pf keys. +# +# Entries for <kf29> thru <kf46> refer to the alternate keypad mode +# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att605|AT&T 605 80 column 102key keyboard:\ + :am:eo:xo:\ + :co#80:li#24:ws#80:\ + :DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:ae=^O:al=\E[L:as=\E)0\016:\ + :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\ + :i1=\E[8;0|\E[?\E[13;20l\E[?\E[12h:ic=\E[@:im=\E[4h:\ + :is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\ + :k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kD=\E[P:kI=\E[@:kN=\E[U:\ + :kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=^J:\ + :so=\E[7m:ta=^I:ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:\ + :us=\E[4m: +att605-pc|ATT 605 in pc term mode:\ + :@7=\E[F:AL=\E[L:S4=250\E[?11l\E[50;1|:S5=400\E[50;0|:\ + :XF=g:XN=e:\ + :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\ + :al=\E[L:bt=\E[Z:dc=\E[P:dl=\E[M:do=\E[B:ei=:ic=\E[@:im=:\ + :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:\ + :k8=\E[T:k9=\E[U:k;=\E[V:kB=\E[Z:kD=\E[P:kI=\E[@:kL=\E[M:\ + :kN=\E[G:kP=\E[I:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=\E[D:nd=\E[C:up=\E[A:\ + :tc=att605: +att605-w|AT&T 605-w 132 column 102 key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0:tc=att605: +# (att610: I added <rmam>/<smam> based on the init string. I also +# added :SF: and :SR: because the BSD file says the att615s have them, +# and the 615 is like a 610 with a big keyboard, and most of their other +# smart terminals support the same sequence -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att610|AT&T 610; 80 column; 98key keyboard:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\ + :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=\E[4l:fs=\E8:ho=\E[H:\ + :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0:\ + :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\ + :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:\ + :ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ + :vs=\E[?12;25h: +att610-w|AT&T 610; 132 column; 98key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att610: + +att610-103k|AT&T 610; 80 column; 103key keyboard:\ + :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:%2=\ENi:\ + :%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:\ + :%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\ + :%h=\EOY:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:\ + :&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:\ + :*2=\END:*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\ + :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:\ + :@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:F4@:k9@:k;@:kD=\ENf:\ + :kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:\ + :tc=att610: +att610-103k-w|AT&T 610; 132 column; 103key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att610-103k: +att615|AT&T 615; 80 column; 98key keyboard:\ + :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:\ + :FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:\ + :FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\ + :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\ + :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:\ + :tc=att610: +att615-w|AT&T 615; 132 column; 98key keyboard:\ + :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:\ + :FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:\ + :FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\ + :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\ + :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:\ + :tc=att610-w: +att615-103k|AT&T 615; 80 column; 103key keyboard:\ + :#4=\E[ A:%i=\E[ @:\ + :tc=att610-103k: +att615-103k-w|AT&T 615; 132 column; 103key keyboard:\ + :#4=\E[ A:%i=\E[ @:\ + :tc=att610-103k-w: +# (att620: I added <rmam>/<smam> based on the init string and +# :SR:/:SF: from a BSD termcap -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att620|AT&T 620; 80 column; 98key keyboard:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :ae=\E(B\017:al=\E[L:as=\E)0\016:bl=^G:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:ho=\E[H:\ + :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h:\ + :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\ + :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\E(B\017:mh=\E[2m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\ + :sr=\EM:ta=^I:ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ + :vs=\E[?12;25h: +att620-w|AT&T 620; 132 column; 98key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att620: +att620-103k|AT&T 620; 80 column; 103key keyboard:\ + :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:%2=\ENi:\ + :%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:\ + :%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\ + :%h=\EOY:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:\ + :&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:\ + :*2=\END:*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\ + :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:\ + :@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:F4@:F5@:F6@:F7@:F8@:\ + :F9@:FA@:FB@:FC@:FD@:FE@:FF@:FG@:FH@:FI@:FJ@:FK@:FL@:FM@:FN@:FO@:FP@:\ + :FQ@:FR@:FS@:FT@:FU@:FV@:FW@:FX@:FY@:FZ@:Fa@:k9@:k;@:kD=\ENf:\ + :kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:\ + :tc=att620: + +att620-103k-w|AT&T 620; 132 column; 103key keyboard:\ + :co#132:ws#132:\ + :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att620-103k: + +# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal +# The following SETUP modes are assumed for normal operation: +# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF +# Font_Size=Large Non-Layers_Window_Cols=80 +# Non-Layers_Window_Rows=60 +# Other SETUP modes may be set for operator convenience or communication +# requirements. Some capabilities assume a printer attached to the Aux EIA +# port. This termcap description is for the Fixed Non-Layers Window. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# (att630: added :ic:, :mb: and :mh: from a BSD termcap file -- esr) +att630|AT&T 630 windowing terminal:\ + :NP:am:bs:da:db:mi:ms:xo:\ + :co#80:it#8:li#60:lm#0:\ + :@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\ENq:\ + :F2=\ENr:F3=\ENs:F4=\ENt:F5=\ENu:F6=\ENv:F7=\ENw:F8=\ENx:\ + :F9=\ENy:FA=\ENz:FB=\EN{:FC=\EN|:FD=\EN}:FE=\EN~:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :al=\E[L:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:is=\E[m:k9=\ENo:k;=\ENp:\ + :kA=\E[L:kB=\E[Z:kC=\E[2J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :me=\E[m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^M^J:pf=\E[?4i:\ + :po=\E[?5i:..px=\E[%p1%d;%p2%l%dq%p2%s:r2=\Ec:rc=\E8:\ + :..sa=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m:\ + :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines:\ + :li#24:tc=att630: + +# This is the att700 entry for 700 native emulation of the AT&T 700 +# terminal. Comments are relative to changes from the 605V2 entry and +# att730 on which the entry is based. Comments show the terminfo +# capability name, termcap name, and description. +# +# Here is what's going onm in the init string: +# ESC [ 50;4| set 700 native mode (really is 605) +# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line) +# ESC [ 53;0| set GenFlow to Xon/Xoff +# ESC [ 8 ;0| set CR on NL +# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h) +# ESC [ ? 4 l jump scroll +# ESC [ ? 5 l/h video: normal (l); reverse (h) +# ESC [ ?13 l Labels on +# ESC [ ?15 l parity check = no +# ESC [ 13 l monitor mode off +# ESC [ 20 l LF on NL (not CRLF on NL) +# ESC [ ? 7 h autowrap on +# ESC [ 12 h local echo off +# ESC ( B GO = ASCII +# ESC ) 0 G1 = Special Char & Line Drawing +# ESC [ ? 31 l Set 7 bit controls +# +# Note: Most terminals, especially the 600 family use Reverse Video for +# standout mode. DEC also uses reverse video. The VT100 uses bold in addition +# Assume we should stay with reverse video for 70.. However, the 605V2 exits +# standout mode with \E[m (all normal attributes). The 730 entry simply +# exits reverse video which would leave other current attributes intact. It +# was assumed the 730 entry to be more correct so rmso has changed. The +# 605V2 has no sequences to turn individual attributes off, thus its setting +# and the rmso/smso settings from the 730. +# +# Note: For the same reason as above in rmso I changed exit under-score mode +# to specifically turn off underscore, rather than return to all normal +# attributes +# +# Note: The following pkey_xmit is taken from the 605V2 which contained the +# capability as pfxl. It was changed here to pfx since pfxl +# will only compile successfully with Unix 4.0 tic. Also note that pfx only +# allows strings to be parameters and label values must be programmed as +# constant strings. Supposedly the pfxl of Version 4.0 allows both labels +# and strings to be parameters. The 605V2 pfx entry should be examined later +# in this regard. For reference the 730 pfxl entry is shown here for comparison +# 730 pfx entry: +# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s +# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s, +# +# (for 4.0 tic) +# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, +# +# (for <4.0 tic) +# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s, +# +# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9 +# +# Port1 Interface +# +# modular 10 pin Connector +# Left side Right side +# Pin 1 2 3 4 5 6 7 8 9 10 +# +# Key (notch) at bottom +# +# Pin 1 DSR +# 3 DCD +# 4 DTR +# 5 Sig Ground +# 6 RD +# 7 SD +# 8 CTS +# 9 RTS +# 10 Frame Ground +# +# The manual is 189 pages and is loaded with details about the escape codes, +# etc..... Available from AT&T CIC 800-432-6600... +# ask for Document number 999-300-660.. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att700|AT&T 700 24x80 column display w/102key keyboard:\ + :am:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ + :fs=\E8:ho=\E[H:i2=\E(B\E)0:im=\E[4h:\ + :is=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017:\ + :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\ + :k8=\EOj:k9=\ENo:kD=\E[P:kI=\E[@:kN=\E[U:kP=\E[V:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ + :st=\EH:ta=^I:ts=\E7\E[99;%i%p1%dx:ue=\E[24m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ + :vs=\E[?12;25h: + +# This entry was modified 3/13/90 by JWE. +# fixes include additions of <enacs>, correcting :rp:, and modification +# of <kHOM>. (See comments below) +# att730 has status line of 80 chars +# These were commented out: :SF=\E[%p1%dS:, :SR=\E[%p1%dT:, +# the <kf25> and up keys are used for shifted system Fkeys +# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is +# currently the same as :kh: (unshifted HOME or \E[H). On the 102, 102+1 +# and 122 key keyboards, the 730's translation is \E[2J. For consistency +# <kHOM> has been commented out. The user can uncomment <kHOM> if using the +# 102, 102+1, or 122 key keyboards +# kHOM=\E[2J, +# (att730: I added <rmam>/<smam> based on the init string -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +att730|AT&T 730 windowing terminal:\ + :am:da:db:es:hs:mi:ms:xn:xo:\ + :co#80:it#8:li#60:lm#0:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\ + :ho=\E[H:\ + :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B:\ + :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\ + :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kI=\E[@:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ + :ta=^I:ts=\E7\E[;%i%p1%dx:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\ + :vs=\E[?12;25h: +att730-41|730MTG-41|AT&T 730-41 windowing terminal Version:\ + :li#41:tc=att730: +att730-24|730MTG-24|AT&T 730-24 windowing terminal Version:\ + :li#24:tc=att730: +att730r|730MTGr|AT&T 730 rev video windowing terminal Version:\ + :i1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B:\ + :vb=\E[?5l\E[?5h:\ + :tc=att730: +att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version:\ + :li#41:tc=att730r: +att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version:\ + :li#24:tc=att730r: + +# The following represents the screen layout along with the associated +# bezel buttons for the 5430/pt505 terminal. The "kf" designations do +# not appear on the screen but are shown to reference the bezel buttons. +# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate +# position relative to the screen. +# +# +# +# +----------------------------------------------------------------+ +# | | +# XXXX | kf0 kf24 | XXXX +# | | +# | | +# XXXX | kf1 kf23 | XXXX +# | | +# | | +# XXXX | kf2 kf22 | XXXX +# | | +# | | +# XXXX | kf3 kf21 | XXXX +# | | +# | | +# XXXX | kf4 kf20 | XXXX +# | | +# | | +# XXXX | kf5 kf19 | XXXX +# | | +# | | +# XXXX | kf6 kf18 | XXXX +# | | +# | | +# XXXX | | XXXX +# | | +# | | +# +----------------------------------------------------------------+ +# +# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX +# +# Note: XXXX represents the screen buttons +# CMD REDRAW +# +# MAIL +# +# version 1 note: +# The character string sent by key 'kf26' may be user programmable +# to send either \E[16s, or \E[26s. +# The character string sent by key 'krfr' may be user programmable +# to send either \E[17s, or \E[27s. +# +# Depression of the "CMD" key sends \E! (kcmd) +# Depression of the "MAIL" key sends \E[26s (kf26) +# "REDRAW" same as "REFRESH" (krfr) +# +# "kf" functions adds carriage return to output string if terminal is in +# 'new line' mode. +# +# The following are functions not covered in the table above: +# +# Set keyboard character (SKC): \EPn1;Pn2w +# Pn1= 0 Back Space key +# Pn1= 1 Break key +# Pn2= Program char (hex) +# +# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t +# Pn1= Window number (1-39) +# Pn2-Pn5= Y;X;Y;X coordinates +# +# Screen Selection (SSL): \E[Pnu +# Pn= Window number +# +# Set Terminal Modes (SM): \E[Pnh +# Pn= 3 Graphics mode +# Pn= > Cursor blink +# Pn= < Enter new line mode +# Pn= = Enter reverse insert/replace mode +# Pn= ? Enter no scroll mode +# +# Reset Terminal Mode (RM): \E[Pnl +# Pn= 3 Exit graphics mode +# Pn= > Exit cursor blink +# Pn= < Exit new line mode +# Pn= = Exit reverse insert/replace mode +# Pn= ? Exit no scroll mode +# +# Screen Status Report (SSR): \E[Pnp +# Pn= 0 Request current window number +# Pn= 1 Request current window dimensions +# +# Device Status Report (DSR): \E[6n Request cursor position +# +# Call Status Report (CSR): \E[Pnv +# Pn= 0 Call failed +# Pn= 1 Call successful +# +# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string +# Pn1= Button number to be loaded +# Pn2= Character count of "string" +# Pn3= Key mode being loaded: +# 0= Unshifted +# 1= Shifted +# 2= Control +# String= Text string (15 chars max) +# +# Screen Number Report (SNR): \E[Pnp +# Pn= Screen number +# +# Screen Dimension Report (SDR): \E[Pn1;Pn2r +# Pn1= Number of rows available in window +# Pn2= Number of columns available in window +# +# Cursor Position Report (CPR): \E[Pn1;Pn2R +# Pn1= "Y" Position of cursor +# Pn2= "X" Position of cursor +# +# Request Answer Back (RAB): \E[c +# +# Answer Back Response (ABR): \E[?;*;30;VSV +# *= 0 No printer available +# *= 2 Printer available +# V= Software version number +# SV= Software sub version number +# (printer-available field not documented in v1) +# +# Screen Alignment Aid: \En +# +# Bell (lower pitch): \E[x +# +# Dial Phone Number: \EPdstring\ +# string= Phone number to be dialed +# +# Set Phone Labels: \EPpstring\ +# string= Label for phone buttons +# +# Set Clock: \EPchour;minute;second\ +# +# Position Clock: \EPsY;X\ +# Y= "Y" coordinate +# X= "X" coordinate +# +# Delete Clock: \Epr\ +# +# Programming The Function Buttons: \EPfPn;string\ +# Pn= Button number (00-06, 18-24) +# (kf00-kf06, kf18-kf24) +# string= Text to sent on button depression +# +# The following in version 2 only: +# +# Request For Local Directory Data: \EPp12;\ +# +# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\ +# +# Request for Local Directory Data in print format: \EPp13;\ +# +# Enable 'Prt on Line' mode: \022 (DC2) +# +# Disable 'Prt on Line' mode: \024 (DC4) +# + +# 05-Aug-86: +# The following Terminfo entry describes functions which are supported by +# the AT&T 5430/pt505 terminal software version 2 and later. +att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal:\ + :am:xo:\ + :co#80:it#8:li#24:\ + :&2=\E[27s:@4=\E\041:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :DO=\E[%dB:F8=\E[18s:F9=\E[19s:FA=\E[20s:FB=\E[21s:\ + :FC=\E[22s:FD=\E[23s:FE=\E24s:FG=\E26s:LE=\E[%dD:\ + :RA=\E[11;1j:RI=\E[%dC:SA=\E[11;0j:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cb=\E2K:cd=\E[0J:\ + :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=\E[4l:ho=\E[H:\ + :i1=\EPr\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l:\ + :im=\E[4h:k0=\E[00s:k1=\E[01s:k2=\E[02s:k3=\E[03s:\ + :k4=\E[04s:k5=\E[05s:k6=\E[06s:kb=^H:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:r1=\Ec:rc=\E8:sc=\E7:\ + :se=\E[m:sf=^J:so=\E[1m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E[>l:vs=\E[>h: + +# The following Terminfo entry describes functions which are supported by +# the AT&T 5430/pt505 terminal software version 1. +att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines:\ + :li#24:\ + :RA@:SA@:pf@:po@:rc@:sc@:tc=att505: +tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines:\ + :li#22:tc=att505: + +#### Ampex (Dialogue) +# +# Yes, these are the same people who are better-known for making audio- and +# videotape. I'm told they are located in Redwood City, CA. +# + +# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981 +# (ampex80: some capabilities merged in from SCO's entry -- esr) +ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80:\ + :am:bs:bw:ul:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :\ + :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ei=:ic=\EQ:im=:is=\EA:le=^H:\ + :nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:ue=\Em:up=^K:us=\El: +# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote: +ampex175|ampex d175:\ + :am:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:is=\EX\EA\EF:\ + :kA=\EE:kD=\EW:kI=\EQ:kL=\ER:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:\ + :le=^H:ll=^^^K:nd=^L:se=\Ek:sf=^J:so=\Ej:te=\EF:ti=\EN:\ + :ue=\Em:up=^K:us=\El: +# No backspace key in the main QWERTY cluster. Fortunately, it has a +# NEWLINE/PAGE key just above RETURN that sends a strange single-character +# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS +# mode), this key can be used as the erase key; I find I like this. Because +# some people and some systems may not, there is another termcap ("ampex175") +# that suppresses this little eccentricity by omitting the relevant capability. +ampex175-b|ampex d175 using left arrow for erase:\ + :kb=^_:\ + :tc=ampex175: +# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu> +# (ampex210: removed obsolete ":kn#10:" -- esr) +ampex210|a210|ampex a210:\ + :am:bs:hs:xn:\ + :co#80:it#8:li#24:sg#1:\ + :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :dc=\EW:\ + :dl=\ER:ei=:fs=\E.2:ho=^^:ic=\EQ:if=/usr/share/tabset/std:\ + :im=:is=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En:\ + :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\ + :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^V:kh=^^:kl=^H:\ + :kr=^L:ku=^K:le=^H:mk@:nd=^L:ta=^I:ts=\E.0\Eg\E}\Ef:up=^K:\ + :vb=\EU\EX\EU\EX\EU\EX\EU\EX:\ + :tc=adm+sgr: +# (ampex219: I added <rmam>/<smam> based on the init string, added :vs: +# from ampex219w, added :ve:=\E[?3l, irresistibly suggested by :vs:, +# and moved the padding to be *after* the caps -- esr) +ampex219|ampex-219|amp219|Ampex with Automargins:\ + :hs:xn:\ + :co#80:it#8:li#24:\ + :RA=\E[?7l:SA=\E[?7h:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%2;%2r:\ + :do=\E[B:ho=\E[H:\ + :is=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=\E[21~:\ + :k1=\E[7~:k2=\E[8~:k3=\E[9~:k4=\E[10~:k5=\E[11~:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kd=\E[B:ke=\E>:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mh=\E[1m:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?3l:vs=\E[?3h: +ampex219w|ampex-219w|amp219w|Ampex 132 cols:\ + :co#132:li#24:\ + :bl=^G:cr=^M:do=^J:is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\ + :sf=^J:\ + :tc=ampex219: +# (ampex232: removed :if=/usr/share/tabset/ampex:, no file and no :st: --esr) +ampex232|ampex-232|Ampex Model 232:\ + :am:\ + :co#80:li#24:sg#1:\ + :al=5*\EE:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:\ + :dl=5*\ER:do=^V:ei=:ic=\EQ:im=:is=\Eg\El:k0=^A@\r:k1=^AA\r:\ + :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\ + :k8=^AH\r:k9=^AI\r:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\ + :mk@:nd=^L:ta=^I:up=^K:vb=\Eb\Ed:ve=\E.4:vi=\E.0:\ + :tc=adm+sgr: +# (ampex: removed :if=/usr/share/tabset/amp-132:, no file and no :st: -- esr) +ampex232w|Ampex Model 232 / 132 columns:\ + :co#132:li#24:\ + :is=\E\034Eg\El:tc=ampex232: + +#### Ann Arbor (aa) +# +# Ann Arbor made dream terminals for hackers -- large screen sizes and huge +# numbers of function keys. At least some used monitors in portrait mode, +# allowing up to 76-character screen heights! They were reachable at: +# +# Ann Arbor Terminals +# 6175 Jackson Road +# Ann Arbor, MI 48103 +# (313)-663-8000 +# +# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor +# can't be found on the Web; I fear they're long dead. R.I.P. +# + + +# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs. +# Highly modified 6/22 by Mike O'Brien. +# split out into several for the various screen sizes by dave-yost@rand +# Modifications made 3/82 by Mark Horton +# Modified by Tom Quarles at UCB for greater efficiency and more diversity +# status line moved to top of screen, :vb: removed 5/82 +# Some unknown person at SCO then hacked the init strings to make them more +# efficient. +# +# assumes the following setup: +# A menu: 0000 1010 0001 0000 +# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 +# C menu: 56 66 0 0 9600 0110 1100 +# D menu: 0110 1001 1 0 +# +# Briefly, the settings are for the following modes: +# (values are for bit set/clear with * indicating our preference +# and the value used to test these termcaps) +# Note that many of these settings are irrelevent to the terminfo +# and are just set to the default mode of the terminal as shipped +# by the factory. +# +# A menu: 0000 1010 0001 0000 +# Block/underline cursor* +# blinking/nonblinking cursor* +# key click/no key click* +# bell/no bell at column 72* +# +# key pad is cursor control*/key pad is numeric +# return and line feed/return for :cr: key * +# repeat after .5 sec*/no repeat +# repeat at 25/15 chars per sec. * +# +# hold data until pause pressed/process data unless pause pressed* +# slow scroll/no slow scroll* +# Hold in area/don't hold in area* +# functions keys have default*/function keys disabled on powerup +# +# show/don't show position of cursor during page transmit* +# unused +# unused +# unused +# +# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19 +# Baud rate (9600*) +# +# 2 bits of parity - 00=odd,01=even*,10=space,11=mark +# 1 stop bit*/2 stop bits +# parity error detection off*/on +# +# keyboard local/on line* +# half/full duplex* +# disable/do not disable keyboard after data transmission* +# +# transmit entire page/stop transmission at cursor* +# transfer/do not transfer protected characters* +# transmit all characters/transmit only selected characters* +# transmit all selected areas/transmit only 1 selected area* +# +# transmit/do not transmit line separators to host* +# transmit/do not transmit page tab stops tabs to host* +# transmit/do not transmit column tab stop tabs to host* +# transmit/do not transmit graphics control (underline,inverse..)* +# +# enable*/disable auto XON/XOFF control +# require/do not require receipt of a DC1 from host after each LF* +# pause key acts as a meta key/pause key is pause* +# unused +# +# unused +# unused +# unused +# unused +# +# XON character (17*) +# XOFF character (19*) +# +# C menu: 56 66 0 0 9600 0110 1100 +# number of lines to print data on (printer) (56*) +# +# number of lines on a sheet of paper (printer) (66*) +# +# left margin (printer) (0*) +# +# number of pad chars on new line to printer (0*) +# +# printer baud rate (9600*) +# +# printer parity: 00=odd,01=even*,10=space,11=mark +# printer stop bits: 2*/1 +# print/do not print guarded areas* +# +# new line is: 01=LF,10=CR,11=CRLF* +# unused +# unused +# +# D menu: 0110 1001 1 0 +# LF is newline/LF is down one line, same column* +# wrap to preceding line if move left from col 1*/don't wrap +# wrap to next line if move right from col 80*/don't wrap +# backspace is/is not destructive* +# +# display*/ignore DEL character +# display will not/will scroll* +# page/column tab stops* +# erase everything*/erase unprotected only +# +# editing extent: 0=display,1=line*,2=field,3=area +# +# unused +# + +annarbor4080|aa4080|ann arbor 4080:\ + :am:bs:\ + :co#80:li#40:\ + :bl=^G:cl=\014:\ + :..cm=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c:\ + :cr=^M:ct=^^P^P:do=^J:ho=^K:kb=^^:kd=^J:kh=^K:kl=^H:kr=^_:\ + :ku=^N:le=^H:nd=^_:sf=^J:st=^]^P1:ta=^I:up=^N: + +# Strange Ann Arbor terminal from BRL +aas1901|Ann Arbor K4080 w/S1901 mod:\ + :am:\ + :co#80:li#40:\ + :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:kb=^H:kd=^J:kl=^H:le=^H:\ + :ll=^O\0c:nd=^_:nw=^M^J:sf=^J:ta=^I:up=^N: + +# If you're using the GNU termcap library, add +# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp: +# to these capabilities. This is the nonstandard GNU termcap scrolling +# capability, arguments are: +# 1. Total number of lines on the screen. +# 2. Number of lines above desired scroll region. +# 3. Number of lines below (outside of) desired scroll region. +# 4. Total number of lines on the screen, the same as the first parameter. +# The generic Ann Arbor entry is the only one that uses this. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly):\ + :am:bs:km:mi:xo:\ + :co#80:it#8:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :ct=\E[2g:dc=\E[P:dl=\E[M:do=^K:ei=:ho=\E[H:\ + :i1=\E[m\E7\E[H\E9\E8:i2=\E[1Q\E[>20;30l\EP`+x~M\E\:\ + :ic=\E[@:im=:k1=\EOA:k2=\EOB:k3=\EOC:k4=\EOD:k5=\EOE:\ + :k6=\EOF:k7=\EOG:k8=\EOH:k9=\EOI:kD=\E[P:kI=\E[@:kb=^H:\ + :kd=\E[B:\ + :ke=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\:\ + :kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\:\ + :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mm=\E[>52h:\ + :mo=\E[>52l:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=^K:\ + :so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: + +aaa+rv|ann arbor ambassador in reverse video:\ + :i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\ + :me=\E[7m\016:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\ + :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\ + :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m: +# Ambassador with the DEC option, for partial vt100 compatibility. +aaa+dec|ann arbor ambassador in dec vt100 mode:\ + :ac=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}:\ + :ae=^N:as=^O:cs=\E[%i%d;%dr:eA=\E(0:\ + :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;: +aaa-18|ann arbor ambassador/18 lines:\ + :li#18:\ + :is=\E7\E[60;0;0;18p\E8:te=\E[60;0;0;18p\E[60;1H\E[K:\ + :ti=\E[18;0;0;18p:\ + :tc=aaa+unk: +aaa-18-rv|ann arbor ambassador/18 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-18: +aaa-20|ann arbor ambassador/20 lines:\ + :li#20:\ + :is=\E7\E[60;0;0;20p\E8:te=\E[60;0;0;20p\E[60;1H\E[K:\ + :ti=\E[20;0;0;20p:\ + :tc=aaa+unk: +aaa-22|ann arbor ambassador/22 lines:\ + :li#22:\ + :is=\E7\E[60;0;0;22p\E8:te=\E[60;0;0;22p\E[60;1H\E[K:\ + :ti=\E[22;0;0;22p:\ + :tc=aaa+unk: +aaa-24|ann arbor ambassador/24 lines:\ + :li#24:\ + :is=\E7\E[60;0;0;24p\E8:te=\E[60;0;0;24p\E[60;1H\E[K:\ + :ti=\E[24;0;0;24p:\ + :tc=aaa+unk: +aaa-24-rv|ann arbor ambassador/24 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-24: +aaa-26|ann arbor ambassador/26 lines:\ + :li#26:\ + :is=\E7\E[60;0;0;26p\E8:te=\E[60;0;0;26p\E[26;1H\E[K:\ + :ti=\E[H\E[J\E[26;0;0;26p:\ + :tc=aaa+unk: +aaa-28|ann arbor ambassador/28 lines:\ + :li#28:\ + :is=\E7\E[60;0;0;28p\E8:te=\E[60;0;0;28p\E[28;1H\E[K:\ + :ti=\E[H\E[J\E[28;0;0;28p:\ + :tc=aaa+unk: +aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status:\ + :es:hs:\ + :li#29:\ + :ds=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K:\ + :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;30p\E8:\ + :te=\E[60;1;0;30p\E[29;1H\E[K:\ + :ti=\E[H\E[J\E[30;1;0;30p\E[30;1H\E[K:\ + :ts=\E[>51h\E[1;%p1%dH\E[2K:tc=aaa+unk: +aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video:\ + :tc=aaa+rv:tc=aaa-30-s: +aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context:\ + :te=\E[60;1;0;30p\E[59;1H\E[K:\ + :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s: +aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video:\ + :te=\E[60;1;0;30p\E[59;1H\E[K:\ + :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s-rv: +aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines:\ + :li#30:\ + :is=\E7\E[60;0;0;30p\E8:te=\E[60;0;0;30p\E[30;1H\E[K:\ + :ti=\E[H\E[J\E[30;0;0;30p:\ + :tc=aaa+unk: +aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video:\ + :tc=aaa+rv:tc=aaa-30: +aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context:\ + :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:\ + :tc=aaa-30: +aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context:\ + :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:\ + :tc=aaa+rv:tc=aaa-30: +aaa-36|ann arbor ambassador/36 lines:\ + :li#36:\ + :is=\E7\E[60;0;0;36p\E8:te=\E[60;0;0;36p\E[36;1H\E[K:\ + :ti=\E[H\E[J\E[36;0;0;36p:\ + :tc=aaa+unk: +aaa-36-rv|ann arbor ambassador/36 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-36: +aaa-40|ann arbor ambassador/40 lines:\ + :li#40:\ + :is=\E7\E[60;0;0;40p\E8:te=\E[60;0;0;40p\E[40;1H\E[K:\ + :ti=\E[H\E[J\E[40;0;0;40p:\ + :tc=aaa+unk: +aaa-40-rv|ann arbor ambassador/40 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-40: +aaa-48|ann arbor ambassador/48 lines:\ + :li#48:\ + :is=\E7\E[60;0;0;48p\E8:te=\E[60;0;0;48p\E[48;1H\E[K:\ + :ti=\E[H\E[J\E[48;0;0;48p:\ + :tc=aaa+unk: +aaa-48-rv|ann arbor ambassador/48 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-48: +aaa-60-s|ann arbor ambassador/59 lines+status:\ + :es:hs:\ + :li#59:\ + :ds=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K:\ + :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;60p\E8:\ + :ts=\E[>51h\E[1;%p1%dH\E[2K:tc=aaa+unk: +aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video:\ + :tc=aaa+rv:tc=aaa-60-s: +aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video:\ + :tc=aaa+dec:tc=aaa+rv:tc=aaa-60-s: +aaa-60|ann arbor ambassador/60 lines:\ + :li#60:\ + :is=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8:tc=aaa+unk: +aaa-60-rv|ann arbor ambassador/60 lines+reverse video:\ + :tc=aaa+rv:tc=aaa-60: +aaa-db|ann arbor ambassador 30/destructive backspace:\ + :bs@:\ + :i2=\E[1Q\E[m\E[>20l\E[>30h:le=\E[D:tc=aaa-30: + +guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols:\ + :li#33:\ + :i2=\E[>59l:is=\E7\E[255;0;0;33;80;80p\E8\E[J:\ + :te=\E[255p\E[255;1H\E[K:ti=\E[33p:vb=\E[>59h\E[>59l:\ + :tc=aaa+unk: +guru+rv|guru changes for reverse video:\ + :i2=\E[>59h:vb=\E[>59l\E[>59h: +guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video:\ + :tc=guru+rv:tc=guru-33: +guru+s|guru status line:\ + :es:hs:\ + :ds=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K:fs=\E[>51l:\ + :te=\E[255;1p\E[255;1H\E[K:ti=:\ + :ts=\E[>51h\E[1;%p1%dH\E[2K: +guru-nctxt|guru with no saved context:\ + :ti=\E[H\E[J\E[33p\E[255;1H\E[K:tc=guru: +guru-s|guru-33-s|ann arbor guru/33 lines+status:\ + :li#32:\ + :is=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J:\ + :ti=\E[33;1p\E[255;1H\E[K:tc=guru+s:\ + :tc=guru+unk: +guru-24|ann arbor guru 24 lines:\ + :co#80:li#24:\ + :is=\E7\E[255;0;0;24;80;80p\E8\E[J:ti=\E[24p:tc=guru+unk: +guru-44|ann arbor guru 44 lines:\ + :co#97:li#44:\ + :is=\E7\E[255;0;0;44;97;100p\E8\E[J:ti=\E[44p:tc=guru+unk: +guru-44-s|ann arbor guru/44 lines+status:\ + :li#43:\ + :is=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J:\ + :ti=\E[44;1p\E[255;1H\E[K:tc=guru+s:\ + :tc=guru+unk: +guru-76|guru with 76 lines by 89 cols:\ + :co#89:li#76:\ + :is=\E7\E[255;0;0;76;89;100p\E8\E[J:ti=\E[76p:tc=guru+unk: +guru-76-s|ann arbor guru/76 lines+status:\ + :co#89:li#75:\ + :is=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J:\ + :ti=\E[76;1p\E[255;1H\E[K:tc=guru+s:\ + :tc=guru+unk: +guru-76-lp|guru-lp|guru with page bigger than line printer:\ + :co#134:li#76:\ + :is=\E7\E[255;0;0;76;134;134p\E8\E[J:ti=\E[76p:tc=guru+unk: +guru-76-w|guru 76 lines by 178 cols:\ + :co#178:li#76:\ + :is=\E7\E[255;0;0;76;178;178p\E8\E[J:ti=\E[76p:tc=guru+unk: +guru-76-w-s|ann arbor guru/76 lines+status+wide:\ + :co#178:li#75:\ + :is=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J:\ + :ti=\E[76;1p\E[255;1H\E[K:\ + :tc=guru+s:tc=guru+unk: +guru-76-wm|guru 76 lines by 178 cols with 255 cols memory:\ + :co#178:li#76:\ + :is=\E7\E[255;0;0;76;178;255p\E8\E[J:ti=\E[76p:tc=guru+unk: +aaa-rv-unk|ann arbor unknown type:\ + :Nl#0:lh#0:lw#0:\ + :ho=\E[H:i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\ + :me=\E[7m:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\ + :..sa=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\ + :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m: + +#### Applied Digital Data Systems (adds) +# +# ADDS itself is long gone. ADDS was bought by NCR, and the same group made +# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for +# terminals was merged again. Then AT&T sold the terminal business to +# SunRiver, which later changed its name to Boundless Technologies. The +# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there +# as of early 1995) are at: +# +# Boundless Technologies +# 100 Marcus Boulevard +# Hauppauge, NY 11788-3762 +# Vox: (800)-231-5445 +# Fax: (516)-342-7378 +# Web: http://boundless.com +# +# Their voice mail used to describe the place as "SunRiver (formerly ADDS)". +# In 1995 Boundless acquired DEC's terminals business. +# + +# Regent: lowest common denominator, works on all regents. +# (regent: renamed ":bc:" to ":le:" -- esr) +regent|Adds Regent Series:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=^L:cr=^M:do=^J:ho=\EY :le=^U:ll=^A:nd=^F:sf=^J:\ + :up=^Z: +# Regent 100 has a bug where if computer sends escape when user is holding +# down shift key it gets confused, so we avoid escape. +regent100|Adds Regent 100:\ + :sg#1:\ + :bl=^G:cm=\013%+ %B\020%.:k0=^B1\r:k1=^B2\r:k2=^B3\r:\ + :k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:l1=F2:\ + :l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:me=\E0@:se=\E0@:so=\E0P:\ + :ue=\E0@:us=\E0`:\ + :tc=regent: +regent20|Adds Regent 20:\ + :bl=^G:cd=\Ek:ce=\EK:cm=\EY%+ %+ :tc=regent: +regent25|Adds Regent 25:\ + :bl=^G:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:tc=regent20: +regent40|Adds Regent 40:\ + :sg#1:\ + :al=\EM:bl=^G:dl=\El:k0=^B1\r:k1=^B2\r:k2=^B3\r:k3=^B4\r:\ + :k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:l1=F2:l2=F3:\ + :l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:me=\E0@:se=\E0@:so=\E0P:\ + :ue=\E0@:us=\E0`:\ + :tc=regent25: +regent40+|Adds Regent 40+:\ + :is=\EB:tc=regent40: +regent60|regent200|Adds Regent 60:\ + :dc=\EE:ei=\EF:im=\EF:is=\EV\EB:kD=\EE:kI=\EF:kM=\EF:\ + :se=\ER\E0@\EV:so=\ER\E0P\EV:\ + :tc=regent40+: +# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981 +# (viewpoint: added :kr:, function key, and :dl: capabilities -- esr) +viewpoint|addsviewpoint|adds viewpoint:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dl=\El:do=^J:\ + :is=\017\E0`:k0=^B1:k2=^B2:k3=^B\041:k4=^B":k5=^B#:kd=^J:\ + :kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:ll=^A:me=^O:nd=^F:se=^O:sf=^J:\ + :so=^N:ue=^O:up=^Z:us=^N:ve=\017\E0`:vs=\017\E0P: +# Some viewpoints have bad ROMs that foo up on ^O +screwpoint|adds viewpoint with ^O bug:\ + :se@:so@:ue@:us@:vs@:tc=viewpoint: + +# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92 +# The :vi:/:ve:/:sa:/:me: strings were added by ESR from specs. +# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000, +# underline=01100000, rev=01010000, blink=01000010,dim=01000001, +# invis=01000100 and %c is the logical or of desired attributes. +# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(. +vp3a+|viewpoint3a+|adds viewpoint 3a+:\ + :am:bw:\ + :co#80:it#8:li#24:\ + :cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:kb=^H:\ + :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:me=\E(:nd=^L:nw=^M^J:\ + :..sa=\E0%{64}%?%p1%tQ%|%;%?%p2%t%{96}%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E):\ + :se=\E(:sf=^J:so=\E0Q\E):ta=^I:up=^K:ve=^X:vi=^W: +vp60|viewpoint60|addsvp60|adds viewpoint60:\ + :tc=regent40: +# +# adds viewpoint 90 - from cornell +# Note: emacs sends ei occasionally to insure the terminal is out of +# insert mode. This unfortunately puts the viewpoint90 IN insert +# mode. A hack to get around this is :ic=\EF\s\EF^U:. (Also, +# - :ei=:im=: must be present in the termcap translation.) +# - :xs: indicates glitch that attributes stick to location +# - :ms: means it's safe to move in standout mode +# - :cl=\EG\Ek:: clears screen and visual attributes without affecting +# the status line +# Function key and label capabilities merged in from SCO. +vp90|viewpoint90|adds viewpoint 90:\ + :bs:bw:ms:xs:\ + :co#80:li#24:\ + :cd=\Ek:ce=\EK:cl=\EG\Ek:cm=\EY%+ %+ :dc=\EE:dl=\El:do=^J:\ + :ei=:ho=\EY :ic=\EF \EF\025:im=:k0=^B1\r:k1=^B2\r:\ + :k2=^B3\r:k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:\ + :k8=^B9\r:k9=^B\072\r:k;=^B;\r:kb=^H:kd=^J:kh=^A:kl=^U:\ + :kr=^F:ku=^Z:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:\ + :l8=F9:l9=F10:la=F11:le=^H:ll=^A:me=\ER\E0@\EV:nd=^F:\ + :se=\ER\E0@\EV:sf=^J:so=\ER\E0Q\EV:ta=^I:ue=\ER\E0@\EV:\ + :up=^Z:us=\ER\E0`\EV: +# Note: if return acts weird on a980, check internal switch #2 +# on the top chip on the CONTROL pc board. +adds980|a980|adds consul 980:\ + :am:bs:\ + :co#80:li#24:\ + :al=\E\016:bl=^G:cl=\014\013@:cm=\013%+@\E\005%2:cr=^M:\ + :dl=\E\017:do=^J:k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:\ + :k6=\E6:k7=\E7:k8=\E8:k9=\E9:le=^H:me=^O:nd=\E^E01:se=^O:\ + :sf=^J:so=^Y^^^N: + +# Beehive documentation is undated and marked Preliminary and has no figures +# so we must have early Superbee2 (Model 600, according to phone conversation +# with mfr.). It has proved reliable except for some missing padding +# (notably after \EK and <nl> at bottom of screen). +# +# The key idea is that AEP mode is poison for :cm: & that US's in +# the local memory should be avoided like the plague. That means +# that the 2048 character local buffer is used as 25 lines of 80 +# characters, period. No scrolling local memory, folks. It also +# appears that we cannot use naked INS LINE feature since it uses +# US. The sbi fakes :al: with an 80-space insert that may be too +# slow at low speeds; also spaces get converted to \040 which is +# too long for some programs (not vi). DEL LINE is ok but slow. +# +# The <nl> string is designed for last line of screen ONLY; cup to +# 25th line corrects the motion inherent in scrolling to Page 1. +# +# There is one understood bug. It is that the screen appears to +# pop to a new (blank) page after a :nw:, or leave a half-line +# ellipsis to a quad that is the extra 48 memory locations. The +# data received is dumped into memory but not displayed. Not to +# worry if :cm: is being used; the lines not displayed will be, +# whenever the cursor is moved up there. Since :cm: is addressed +# relative to MEMORY of window, nothing is lost; but beware of +# relative cursor motion (:up:,:do:,:nd:,:le:). Recommended, +# therefore, is setenv MORE -c . +# +# WARNING: Not all features tested. +# +# Timings are assembled from 3 sources. Some timings may reflect +# SB2/Model 300 that were used if more conservative. +# Tested on a Model 600 at 1200 and 9600 bd. +# +# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly +# placed on the keyboard and useless because of AEP, is made +# into a backspace key. In use ESC must be pressed twice (to send) +# and sending ^C must be prefixed by ESC to avoid that weird +# transmit mode associated with ENTER key. +# +# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across +# the screen, then it has dropped into ENTER mode; hit +# RESET--ONLINE--!tset. +# +# As delivered this machine has a FATAL feature that will throw +# it into that strange transmit state (SPOW) if the space bar is +# hit after a CR is received, but before receiving a LF (or a +# few others). +# +# The circuits MUST be modified to eliminate the SPOW latch. +# This is done by strapping on chip A46 of the I/O board; cut +# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that +# chip. This mod has been checked out on a Mod 600 of Superbee II. +# With this modification absurdly high timings on cr are +# unnecessary. +# +# NOTE WELL that the rear panel switch should be set to CR/LF, +# not AEP! +# +sb1|beehive superbee:\ + :am:bs:bw:da:db:mi:ul:xb:\ + :co#80:li#25:sg#1:\ + :al=\EN\EL\EQ \EP \EO\ER\EA:\ + :bl=^G:bt=\E`:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%03%03:cr=\r:\ + :ct=\E3:dc=\EP:dl=\EM:do=^J:ei=\ER:ho=\EH:im=\EQ\EO:\ + :is=\EE\EX\EZ\EO\Eb\Eg\ER:k0=\E2:k1=\Ep:k2=\Eq:k3=\Er:\ + :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:k9=\E1:kE=\EK:kI=\EQ\EO:\ + :kL=\EM:kM=\ER:kS=\EJ:kb=^_:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ + :ku=\EA:l0=TAB CLEAR:l9=TAB SET:le=^H:me=\E_3:nd=\EC:\ + :se=\E_3:sf=^J:so=\E_1:st=\E1:ta=^I:te=:ti=\EO:ue=\E_3:\ + :up=\EA:us=\E_0: +sbi|superbee|beehive superbee at Indiana U.:\ + :xb:\ + :al=1\EN\EL\EQ \EP \EO\ER\EA:cr=\r:tc=sb1: +# Alternate (older) description of Superbee - f1=escape, f2=^C. +# Note: there are at least 3 kinds of superbees in the world. The sb1 +# holds onto escapes and botches ^C's. The sb2 is the best of the 3. +# The sb3 puts garbage on the bottom of the screen when you scroll with +# the switch in the back set to CRLF instead of AEP. This description +# is tested on the sb2 but should work on all with either switch setting. +# The f1/f2 business is for the sb1 and the :xb: can be taken out for +# the other two if you want to try to hit that tiny escape key. +# This description is tricky: being able to use cup depends on there being +# 2048 bytes of memory and the hairy <nl> string. +superbee-xsb|beehive super bee:\ + :am:da:db:xb:\ + :co#80:it#8:li#25:\ + :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%3%3:cr=\r:ct=\E3:dc=\EP:\ + :dl=\EM:do=^J:ho=\EH:is=\EH\EJ:k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:\ + :k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ + :ku=\EA:le=^H:me=\E_3:nd=\EC:se=\E_3:\ + :sf=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET:so=\E_1:st=\E1:\ + :ta=^I:up=\EA:ve=^J: +# This loses on lines > 80 chars long, use at your own risk +superbeeic|super bee with insert char:\ + :ei=\ER:ic=:im=\EQ:tc=superbee-xsb: +sb2|sb3|fixed superbee:\ + :xb@:tc=superbee: + +#### Beehive Medical Electronics +# +# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999): +# Regarding your question though; Beehive terminals weren't made by Harris. +# They were made by Beehive Medical Electronics in Utah. They went out of +# business in the early '80s. +# +# (OK, then, I don't know why a couple of these say "harris beehive".) +# + +# Reports are that most of these Beehive entries (except superbee) have not +# been tested and do not work right. :se: is a trouble spot. Be warned. + +# (bee: :ic: was empty, which is obviously bogus -- esr) +beehive|bee|harris beehive:\ + :am:bs:mi:\ + :co#80:li#24:\ + :al=\EL:bt=\E>:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :dc=\EP:\ + :dl=\EM:do=\EB:ei=\E@:ho=\EH:im=\EQ:kA=\EL:kB=\E>:kC=\EE:\ + :kD=\EP:kE=\EK:kI=\EQ:kL=\EM:kM=\E@:kb=^H:kd=\EB:kh=\EH:\ + :kl=\ED:kr=\EC:ku=\EA:le=^H:me=\Ed@:nd=\EC:se=\Ed@:so=\EdP:\ + :ue=\Ed@:up=\EA:us=\Ed`: +# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs. +# good grief - does this entry make :sg:/:ug: when it doesn't have to? +# look at those spaces in :se:/:so:. Seems strange to me... +# (beehive: :if=/usr/share/tabset/beehive: removed, no such file. If you +# really care, cook up one using ^F -- esr) +beehive3|bh3m|beehiveIIIm|harris beehive 3m:\ + :am:bs:\ + :co#80:it#8:li#20:\ + :al=\023:bl=^G:cd=^R:ce=^P:cl=^E^R:cr=^M:dl=\021:do=^J:ho=^E:\ + :le=^H:ll=^E^K:nd=^L:se= ^_:sf=^J:so=^] :st=^F:ta=^I:up=^K: +beehive4|bh4|beehive 4:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cr=^M:do=^J:ho=\EH:le=\ED:nd=\EC:\ + :sf=^J:up=\EA: +# There was an early Australian kit-built computer called a "Microbee". +# It's not clear whether this is for one of those or for a relative +# of the Beehive. +microb|microbee|micro bee series:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :cr=^M:do=^J:k1=\Ep:\ + :k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:k9=\Ex:\ + :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:me=\Ed@:nd=\EC:\ + :se=\Ed@:sf=^J:so= \EdP:ta=^I:ue=\Ed@:up=\EA:us=\Ed`: + +#### C. Itoh Electronics +# +# As of 1995 these people no longer make terminals (they're still in the +# printer business). Their terminals were all clones of the DEC VT series. +# They're located in Orange County, CA. +# + +# CIT 80 - vt-52 emulator, the termcap has been modified to remove +# the delay times and do an auto tab set rather than the indirect +# file used in vt100. +cit80|cit-80|citoh 80:\ + :am:bs:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=\E[H\EJ:cm=\E[%i%2;%2H:cr=^M:ff=^L:\ + :is=\E>:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:nd=\E[C:sf=^J:up=\E[A: +# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985 +# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr) +cit101|citc|C.itoh fast vt100:\ + :am:bs:xn:\ + :co#80:li#24:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:\ + :im=:is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g:\ + :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:\ + :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[V\E8:vs=\E7\E[U: +# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL +# The following termcap entry was created from the Callan cd100 entry. The +# last two lines (with the capabilities in caps) are used by RM-cobol to allow +# full selection of combinations of reverse video, underline, and blink. +# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\ +# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\ +# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr) +cit101e|C. Itoh CIT-101e:\ + :am:bs:mi:ms:pt:\ + :co#80:it#8:li#24:\ + :ac=:ae=^O:al=\E[L:as=^N:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%2;%2H:cs=\E[%i%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:\ + :ei=\E[4l:if=/usr/share/tabset/vt100:im=\E[4h:k0=\EOT:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOm:k6=\EOl:k7=\EOM:\ + :k8=\EOn:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:\ + :nd=\E[C:rc=\E8:sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:\ + :up=\E[A:us=\E[4m:ve=:vs=\E[?1l\E[?4l\E[?7h: +# From: David S. Lawyer, June 1997: +# The CIT 101-e was made in Japan in 1983-4 and imported by CIE +# Terminals in Irvine, CA. It was part of CITOH Electronics. In the +# late 1980's CIT Terminals went out of business. +# There is no need to use the initialization string is=... (by invoking +# tset or setterm etc.) provided that the terminal has been manually set +# up (and the setup saved with ^S) to be compatible with this termcap. To be +# compatible it should be in ANSI mode (not VT52). A set-up that +# works is to set all the manually setable stuff to factory defaults +# by pressing ^D in set-up mode. Then increse the brighness with the +# up-arrow key since the factory default will likely be dim on an old +# terminal. Then change any options you want (provided that they are +# compatible with the termcap). For my terminal I set: Screen +# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver: +# on. I also set up mine for parity (but you may not need it). Then +# save the setup with ^S. +# (cit101e-rv: added empty :te: to suppress a tic warning. --esr) +cit101e-rv|Citoh CIT-101e (sets reverse video):\ + :am:eo:mi:ms:xn:xo:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%dG:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:ic=\E[@:\ + :im=\E[4h:\ + :is=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=\177:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nl=\EM:nw=\EE:r1=\Ec\E[?7h\E[>5g:rc=\E8:sc=\E7:\ + :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=:\ + :ti=\E[>5g\E[?7h\E[?5h:u6=\E[%i%d;%dR:u7=\E[6n:\ + :u8=\E[?6c:u9=\E[c:ue=\E[m:up=\E[A:us=\E[4m:\ + :vb=200\E[?5l\E[?5h:ve=\E[0;3;4v:vi=\E[1v:vs=\E[3;5v: +cit101e-n|CIT-101e w/o am:\ + :am@:\ + :kb=^H:kd=^J:kl=^H:vs=\E[?1l\E[?4l\E[?7l:tc=cit101e: +cit101e-132|CIT-101e with 132 cols:\ + :co#132:\ + :kb=^H:kd=^J:kl=^H:tc=cit101e: +cit101e-n132|CIT-101e with 132 cols w/o am:\ + :am@:\ + :co#132:\ + :kb=^H:kd=^J:kl=^H:vs=\E[?1l\E[?4l\E[?7l:tc=cit101e: +# CIE Terminals CIT-500 from BRL +# The following SET-UP modes are assumed for normal operation: +# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF +# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES +# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF +# Other SET-UP modes may be set for operator convenience or communication +# requirements. +# Hardware tabs are assumed to be set every 8 columns; they can be set up +# by the "reset", "tset", or "tabs" utilities. No delays are specified; use +# "stty ixon -ixany" to enable DC3/DC1 flow control! +# (cit500: I added <rmam>/<smam> based on the init string -- esr) +cit500|CIE Terminals CIT-500:\ + :bs:mi:ms:pt:xo:\ + :co#80:it#8:kn#10:li#64:vt#3:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:\ + :RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:ac=:ae=^O:al=\E[L:as=^N:\ + :bl=^G:bt=\E[Z:cd=\EJ:ce=\EK:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\ + :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E<\E)0:k0=\EOP:k1=\EOQ:\ + :k2=\EOR:k3=\EOS:k4=\EOU:k5=\EOV:k6=\EOW:k7=\EOX:k8=\EOY:\ + :k9=\EOZ:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\EK:kI=\E[4h:kL=\E[M:\ + :kM=\E[4l:kS=\EJ:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:\ + :l3=PF4:l4=F15:l5=F16:l6=F17:l7=F18:l8=F19:l9=F20:le=^H:\ + :ll=\E[64H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :nw=\EE:\ + :r1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\EM:us=\E[4m: + +# C. Itoh printers begin here +citoh|ci8510|8510|c.itoh 8510a:\ + :co#80:it#8:\ + :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073.:\ + :le@:md=\E\041:me=\E"\EY:rp=\ER%r%03%.:sr=\Er:ue=\EY:\ + :us=\EX:\ + :tc=lpr: +citoh-pica|citoh in pica:\ + :i1=\EN:tc=citoh: +citoh-elite|citoh in elite:\ + :co#96:\ + :i1=\EE:\ + :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073\054081\054089.:tc=citoh: +citoh-comp|citoh in compressed:\ + :co#136:\ + :i1=\EQ:\ + :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073\054081\054089\054097\054105\054113\054121\054129.:tc=citoh: +# citoh has infinite cols because we don't want lp ever inserting \n\t**. +citoh-prop|citoh-ps|ips|citoh in proportional spacing mode:\ + :co#32767:\ + :i1=\EP:tc=citoh: +citoh-6lpi|citoh in 6 lines per inch mode:\ + :i2=\EA:tc=citoh: +citoh-8lpi|citoh in 8 lines per inch mode:\ + :li#88:\ + :i2=\EB:tc=citoh: + +#### Control Data (cdc) +# + +cdc456|cdc 456 terminal:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%+ %+ :cr=^M:dl=\EJ:\ + :do=^J:ho=^Y:le=^H:nd=^L:sf=^J:up=^Z: + +# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick) +cdc721|CDC Viking:\ + :am:bs:\ + :co#80:li#24:\ + :ce=^K:cl=^L:cm=\002%r%+ %+ :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^I:\ + :ku=^W:nd=^X:up=^W: +cdc721ll|CDC Vikingll:\ + :am:bs:\ + :co#132:li#24:\ + :ce=^K:cl=^L:cm=\002%r%+ %+ :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^I:\ + :ku=^W:nd=^X:up=^W: +# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out +cdc752|CDC 752:\ + :am:bs:bw:xs:\ + :co#80:li#24:\ + :bl=^G:ce=^V:cl=\030\E1 :cm=\E1%r%+ %+ :cr=^M:do=^J:\ + :ho=\E1 :le=^H:ll=^Y:nd=^U:r1=\E1 \030\002\003\017:\ + :sf=^J:up=^Z: +# CDC 756 +# The following switch/key settings are assumed for normal operation: +# 96 chars SCROLL FULL duplex not BLOCK +# Other switches may be set according to communication requirements. +# Insert/delete-character cannot be used, as the whole display is affected. +# "so" & "se" are commented out until jove handles "sg" correctly. +cdc756|CDC 756:\ + :am:bs:bw:\ + :co#80:kn#10:li#24:\ + :al=6*\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%r%+ %+ :cr=^M:\ + :dl=6*\EJ:do=^J:ho=^Y:k0=\EA:k1=\EB:k2=\EC:k3=\ED:k4=\EE:\ + :k5=\EF:k6=\EG:k7=\EH:k8=\Ea:k9=\Eb:kA=\EL:kD=\EI:kE=^V:\ + :kI=\EK:kL=\EL:kS=^X:kT=^O:kb=^H:kd=^J:kh=^Y:kl=^H:kr=^U:\ + :ku=^Z:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:\ + :l9=F10:le=^H:ll=^Y^Z:nd=^U:r1=\031\030\002\003\017:sf=^J:\ + :up=^Z: +# +# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL. +# +# Part of the long initialization string defines the "DOWN" key to the left +# of the tab key to send an ESC. The real ESC key is positioned way out +# in right field. +# +# The termcap won't work in 132 column mode due to the way it it moves the +# cursor. Termcap doesn't have the capability (as far as I could tell) to +# handle the 721 in 132 column mode. +# +# (cdc721: changed :ri: to :sr: -- esr) +cdc721-esc|Control Data 721:\ + :am:bs:bw:ms:pt:xo:\ + :co#80:it#8:kn#10:li#30:\ + :al=^^R:bl=^G:bt=^^^K:cd=^^P:ce=^K:cl=^L:cm=\002%r%+ %+ :\ + :ct=^^^RY:dc=^^N:dl=^^Q:do=^Z:ei=:ho=^Y:ic=^^O:im=:\ + :is=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\136\036\022b\036\022i\036W =\036\022Z\036\011C1-` `\041k/o:\ + :k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:k6=^^w:k7=^^x:\ + :k8=^^y:k9=^^z:kb=^H:kd=^Z:ke=^^^Rl:kh=^Y:kl=^H:kr=^X:\ + :ks=^^^Rk:ku=^W:le=^H:ll=^B =:mb=^N:\ + :me=\017\025\035\036E\036\022\:mh=^\:mk=^^^R[:mr=^^D:\ + :nd=^X:se=^^E:sf=\036W =\036U:so=^^D:sr=\036W =\036V:\ + :st=^^^RW:ue=^]:up=^W:us=^\: + +#### Getronics +# +# Getronics is a Dutch electronics company that at one time was called +# `Geveke' and made async terminals; but (according to the company itself!) +# they've lost all their documentation on the command set. The hardware +# documentation suggests the terminals were actually manufactured by a +# Taiwanese electronics company named Cal-Comp. There are known +# to have been at least two models, the 33 and the 50. +# + +# The 50 seems to be a top end vt220 clone, with the addition of a higher +# screen resolution, a larger screen, at least 1 page of memory above and +# below the screen, apparently pages of memory right and left of the screen +# which can be panned, and about 75 function keys (15 function keys x normal, +# shift, control, func A, func B). It also has more setup possibilities than +# the vt220. The monitor case is dated November 1978 and the keyboard case is +# May 1982. +# +# The vt100 emulation works as is. The entry below describes the rather +# non-conformant (but more featureful) ANSI mode. +# +# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +visa50|geveke visa 50 terminal in ansi 80 character mode:\ + :bw:mi:ms:\ + :co#80:li#25:\ + :AL=\E[%dL:DC=\E[%dX:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\E[f:K2=\EOP:K3=\EOQ:K4=\EOR:K5=\EOS:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=\E[3l:al=\E[L:as=\E3h:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[X:dl=\E[M:do=\E[B:\ + :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:\ + :is=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h:k0=\E010:\ + :k1=\E001:k2=\E002:k3=\E003:k4=\E004:k5=\E005:k6=\E006:\ + :k7=\E007:k8=\E008:k9=\E009:kD=\177:kb=^H:kd=\E[A:ke=\E>:\ + :kh=\E[f:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=\E[D:mb=\E[5m:\ + :md=\E[1m:me=\E[0;2m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^M^J:\ + :se=\E[0;2m:sf=^J:so=\E[2;7m:ta=^I:ue=\E[0m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[?5l: + +#### Human Designed Systems (Concept) +# +# Human Designed Systems +# 400 Fehley Drive +# King of Prussia, PA 19406 +# Vox: (610)-277-8300 +# Fax: (610)-275-5739 +# Net: support@hds.com +# +# John Martin <john@hds.com> is their termcap expert. They're mostly out of +# the character-terminal business now (1995) and making X terminals. In +# particular, the whole `Concept' line described here was discontinued long +# ago. +# + +# From: <vax135!hpk> Sat Jun 27 07:41:20 1981 +# Extensive changes to c108 by arpavax:eric Feb 1982 +# Some unknown person at SCO then translated it to terminfo. +# +# There seem to be a number of different versions of the C108 PROMS +# (with bug fixes in its Z-80 program). +# +# The first one that we had would lock out the keyboard of you +# sent lots of short lines (like /usr/dict/words) at 9600 baud. +# Try that on your C108 and see if it sends a ^S when you type it. +# If so, you have an old version of the PROMs. +# +# You should configure the C108 to send ^S/^Q before running this. +# It is much faster (at 9600 baud) than the c100 because the delays +# are not fixed. +# new status line display entries for c108-8p: +# :i3: - init str #3 - setup term for status display - +# set programmer mode, select window 2, define window at last +# line of memory, set bkgnd stat mesg there, select window 0. +# +# :ts: - to status line - select window 2, home cursor, erase to +# end-of-window, 1/2 bright on, goto(line#0, col#?) +# +# :fs: - from status line - 1/2 bright off, select window 0 +# +# :ds: - disable status display - set bkgnd status mesg with +# illegal window # +# +# There are probably more function keys that should be added but +# I don't know what they are. +# +# No delays needed on c108 because of ^S/^Q handshaking +# +c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages:\ + :i2=\EU\E z"\Ev\001\177 \041p\E ;"\E z \Ev \001\177p\Ep\n:\ + :te=\Ev \001\177p\Ep\r\n:\ + :tc=c108-4p: +c108-4p|concept108-4p|concept 108 w/4 pages:\ + :bs:es:hs:xo:\ + :pb@:\ + :ac=jEkTl\mMqLxU:ae=\Ej :as=\Ej\041:\ + :..cm=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c:\ + :cr=^M:dc=\E 1:ds=\E ;\177:fs=\Ee\E z :i1=\EK\E\041\E F:\ + :i2=\EU\E z"\Ev\177 \041p\E ;"\E z \Ev \001 p\Ep\n:\ + :sf=^J:te=\Ev \001 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r\E\025:\ + :ts=\E z"\E?\E\005\EE\Ea %+ :ve=\Ew:vs=\EW:\ + :tc=c100: +c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video:\ + :te=\Ev \002 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r:\ + :tc=c108-rv-4p: +c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video:\ + :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:\ + :tc=c108-4p: +c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode:\ + :co#132:\ + :i1=\E F\E":te=\Ev ^A0\001D\Ep\r\n:\ + :ti=\EU\Ev 8\001D\Ep\r:tc=c108-8p: + +# Concept 100: +# These have only window relative cursor addressing, not screen +# relative. To get it to work right here, smcup/rmcup (which +# were invented for the concept) lock you into a one page +# window for screen style programs. +# +# To get out of the one page window, we use a clever trick: +# we set the window size to zero ("\Ev " in rmcup) which the +# terminal recognizes as an error and resets the window to all +# of memory. +# +# This trick works on c100 but does not on c108, sigh. +# +# Some tty drivers use cr3 for concept, others use nl3, hence +# the delays on cr and ind below. This padding is only needed at +# 9600 baud and up. One or the other is commented out depending on +# local conventions. +# +# 2 ms padding on :te: isn't always enough. 6 works fine. Maybe +# less than 6 but more than 2 will work. +# +# Note: can't use function keys f7-f10 because they are +# indistinguishable from arrow keys (!), also, del char and +# clear eol use xon/xoff so they probably won't work very well. +# +# Also note that we don't define insrt/del char/delline/eop/send +# because they don't transmit unless we reset them - I figured +# it was a bad idea to clobber their definitions. +# +# The <mc5> sequence changes the escape character to ^^ so that +# escapes will be passed through to the printer. Only trouble +# is that ^^ won't be - ^^ was chosen to be unlikely. +# Unfortunately, if you're sending raster bits through to be +# plotted, any character you choose will be likely, so we lose. +# +# \EQ"\EY(^W (send anything from printer to host, for xon/xoff) +# cannot be # in is2 because it will hang a c100 with no printer +# if sent twice. +c100|concept100|concept|c104|c100-4p|hds concept 100:\ + :am:bs:eo:mi:ul:xn:\ + :co#80:li#24:pb#9600:vt#8:\ + :al=\E\022:bl=^G:cd=\E\005:ce=\E\025:cl=\E?\E\005:\ + :cm=\Ea%+ %+ :cr=\r:dc=\E\021:dl=\E\002:do=^J:ei=\E :\ + :i1=\EK:i2=\Ev \Ep\n:im=\E^P:ip=:\ + :is=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo\041\0\E\007\041\E\010A@ \E4#\072"\E\072a\E4#;"\E\072b\E4#<"\E\072c:\ + :k1=\E5:k2=\E6:k3=\E7:k4=\E8:k5=\E9:k6=\E\072a:k7=\E\072b:\ + :k8=\E\072c:kA=\E^R:kB=\E':kD=\E^Q:kE=\E^S:kF=\E[:kI=\E^P:\ + :kL=\E^B:kM=\E\0:kN=\E-:kP=\E.:kR=\E\:kS=\E^C:kT=\E]:kb=^H:\ + :kd=\E<:ke=\Ex:kh=\E?:kl=\E>:kr=\E=:ks=\EX:kt=\E_:ku=\E;:\ + :le=^H:mb=\EC:me=\EN@:mh=\EE:mk=\EH:mp=\EI:mr=\ED:nd=\E=:\ + :pf=\036o \E\EQ\041\EYP\027:\ + :po=\EQ"\EY(\027\EYD\Eo \036:rp=\Er%.%+ :se=\Ed:sf=^J:\ + :so=\ED:ta=\011:te=\Ev \Ep\r\n:\ + :ti=\EU\Ev 8p\Ep\r\E\025:ue=\Eg:up=\E;:us=\EG:vb=\Ek\EK: +c100-rv|c100-rv-4p|concept100-rv|c100 rev video:\ + :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:ve@:vs@:tc=c100: +oc100|oconcept|c100-1p|old 1 page concept 100:\ + :in:\ + :i3@:tc=c100: + +# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996. +# Lots of notes, originally inline, but ncurses doesn't grok that. +# +# am: not available in power on mode, but turned on with \E[=107;207h in +# is2=. Also, \E=124l in is2= could have been used to prevent needing +# to specify xenl:, but that would have rendered the last space on the +# last line useless. +# bw: Not available in power on mode, but turned on with \E[=107;207h in +# is2=. +# clear: Could be done with \E[2J alone, except that vi (and probably most +# other programs) assume that this also homes the cursor. +# dsl: Go to window 2, go to the beginning of the line, use a line feed to +# scroll the window, and go back to window 1. +# is2: the string may cause a warning to be issued by tic that it +# found a very long line and that it suspects that a comma is missing +# somewhere. This warning can be ignored (unless it comes up more than +# once). The initialization string contains the following commands: +# +# [Setup mode items changed from factory defaults:] +# \E)0 set alternate character set to +# graphics +# ^O set character set to default +# [In case it wasn't] +# \E[m turn off all attributes +# [In case they weren't off] +# \E[=107; cursor wrap and +# 207h character wrap on +# \E[90;3u set Fkey definitions to "transmit" +# defaults +# \E[92;3u set cursor key definitions to +# "transmit" defaults +# \E[43;1u set shift F13 to transmit... +# \177\E$P\177 +# \E[44;1u set shift F14 to transmit... +# \177\E$Q\177 +# \E[45;1u set shift F15 to transmit... +# \177\E$R\177 +# \E[46;1u set shift F16 to transmit... +# \177\E$S\177 +# \E[200;1u set shift up to transmit... +# \177\E$A\177 +# \E[201;1u set shift down to transmit... +# \177\E$B\177 +# \E[202;1u set shift right to transmit... +# \177\E$C\177 +# \E[203;1u set shift left to transmit... +# \177\E$D\177 +# \E[204;1u set shift home to transmit... +# \177\E$H\177 +# \E[212;1u set backtab to transmit... +# \177\E$I\177 +# \E[213;1u set shift backspace to transmit... +# \177\E$^H\177 +# \E[214;1u set shift del to transmit... +# "\E$\177" +# [Necessary items not mentioned in setup mode:] +# \E[2!w move to window 2 +# \E[25;25w define window as line 25 of memory +# \E[!w move to window 1 +# \E[2*w show current line of window 2 as +# status line +# \E[2+x set meta key to use high bit +# \E[;3+} move underline to bottom of character +# +# All Fkeys are set to their default transmit definitions with \E[90;3u +# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty +# setting MUST be redefined or deactivated, because the default is +# contained in almost all of this terminal's Fkey strings! If for some +# reason "quit" cannot be altered, the Fkeys can, but it would be +# necessary to change ^| to ^] in all of these definitions, and add +# \E[2;029!t to is2. +# lines: is set to 24 because this terminal refuses to treat the 25th +# line normally. +# ll: Not available in power on mode, but turned on with \E[=107;207h in +# is2=. +# lm: Pointless, given that this definition locks a single screen of +# memory into view, but what the hey... +# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any +# other attributes alone), but some programs expect this to turn off +# everything. +# rmul: Could use \E[4!{ to turn off only underline (leaving any other +# attributes alone), but some programs expect this to turn off +# everything. +# sgr: Attributes are set on this terminal with the string \E[ followed by +# a list of attribute code numbers (in decimal, separated by +# semicolons), followed by the character m. The attribute code +# numbers are: +# 1 for bold; +# 2 for dim (which is ignored in power on mode); +# 4 for underline; +# 5 for blinking; +# 7 for inverse; +# 8 for not displayable; and +# =99 for protected (except that there are strange side +# effects to protected characters which make them inadvisable). +# The mapping of terminfo parameters to attributes is as follows: +# %p1 (standout) = bold and inverse together; +# %p2 (underline) = underline; +# %p3 (reverse) = inverse; +# %p4 (blink) = blinking; +# %p5 (dim) is ignored; +# %p6 (bold) = bold; +# %p7 (invisible) = not displayable; +# %p8 (protected) is ignored; and +# %p9 (alt char set) = alt char set. +# The code to do this is: +# \E[0 OUTPUT \E[0 +# %?%p1%p6%O IF (standout; bold) OR +# %t;1 THEN OUTPUT ;1 +# %; ENDIF +# %?%p2 IF underline +# %t;4 THEN OUTPUT ;4 +# %; ENDIF +# %?%p4 IF blink +# %t;5 THEN OUTPUT ;5 +# %; ENDIF +# %?%p1%p3%O IF (standout; reverse) OR +# %t;7 THEN OUTPUT ;7 +# %; ENDIF +# %?%p7 IF invisible +# %t;8 THEN OUTPUT ;8 +# %; ENDIF +# m OUTPUT m +# %?%p9 IF altcharset +# %t^N THEN OUTPUT ^N +# %e^O ELSE OUTPUT ^O +# %; ENDIF +# sgr0: Everything is turned off (including alternate character set), since +# there is no way of knowing what it is that the program wants turned +# off. +# smul: The "underline" attribute is reconfigurable to an overline or +# strikethru, or (as done with \E[;3+} in is2=), to a line at the true +# bottom of the character cell. This was done to allow for more readable +# underlined characters, and to be able to distinguish between an +# underlined space, an underscore, and an underlined underscore. +# xenl: Terminal can be configured to not need this, but this "glitch" +# behavior is actually preferable with autowrap terminals. +# +# Parameters kf31= thru kf53= actually contain the strings sent by the shifted +# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2 +# string modifies the 'O' in kf43 to kf46 to a '$'. +# +# kcbt was originally ^I but redefined in is2=. +# kHOM was \E[H originally but redefined in is2=, as were a number of +# other keys. +# kDC was originally \177 but redefined in is2=. +# +# kbs: Shift was also ^H originally but redefined as \E$^H in is2=. +# tsl: Go to window 2, then do an hpa=. +# +#------- flash=\E[8;3!}^G\E[3;3!} +#------- flash=\E[?5h$<100>\E[?5l +# There are two ways to flash the screen, both of which have their drawbacks. +# The first is to set the bell mode to video, transmit a bell character, and +# set the bell mode back - but to what? There is no way of knowing what the +# user's old bell setting was before we messed with it. Worse, the command to +# set the bell mode also sets the key click volume, and there is no way to say +# "leave that alone", or to know what it's set to, either. +# The second way to do a flash is to set the screen to inverse video, pad for a +# tenth of a second, and set it back - but like before, there's no way to know +# that the screen wasn't ALREADY in inverse video, or that the user may prefer +# it that way. The point is moot anyway, since vi (and probably other +# programs) assume that by defining flash=, you want the computer to use it +# INSTEAD of bel=, rather than as a secondary type of signal. +# +#------- cvvis=\E[+{ +# The is the power on setting, which is also as visible as the cursor +# gets. +#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw +# Windowing is possible, but not defined here because it is also used to +# emulate status line functions. Allowing a program to set a window could +# clobber the status line or render it unusable. There is additional memory, +# but screen scroll functions are destructive and do not make use of it. +# +#------- dim= Not available in power on mode. +# You have a choice of defining low intensity characters as "half bright" and +# high intensity as "normal", or defining low as "normal" and high as "bold". +# No matter which you choose, only one of either "half bright" or "bold" is +# available at any time, so taking the time to override the default is +# pointless. +# +#------- prot=\E[=0;99m +# Not defined, because it appears to have some strange side effects. +#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%; +#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%; +#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%; +# Available, but making them available to programs is inadvisable. +# The code to do this is: +# %?%p1%{24}%< IF ((key; 24) <; +# %p1%{30}%> ((key; 30) >; +# %p1%{54}%< (key; 54) < +# %A ) AND +# %O ) OR +# [that is, "IF key < 24 OR (key > 30 AND key < 54)",] +# %t\E[ THEN OUTPUT \E[ +# %p1%d OUTPUT (key) as decimal +# [next line applies to pfx only] +# ;1 OUTPUT ;1 +# u OUTPUT u +# \177 OUTPUT \177 +# %p2%s OUTPUT (string) as string +# \177 OUTPUT \177 +# [DEL chosen as delimiter, but could be any character] +# [implied: ELSE do nothing] +# %; ENDIF +# +#------- rs2= +# Not defined since anything it might do could be done faster and easier with +# either Meta-Shift-Reset or the main power switch. +# +#------- smkx=\E[1!z +#------- rmkx=\E[!z +# These sequences apply to the cursor and setup keys only, not to the +# numeric keypad. But it doesn't matter anyway, since making these +# available to programs is inadvisable. +# For the key definitions below, all sequences beginning with \E$ are +# custom and programmed into the terminal via is2. \E$ also has no +# meaning to any other terminal. +# +#------- cmdch=\E[;%p1%d!t +# Available, but making it available to programs is inadvisable. +#------- smxon=\E[1*q +# Available, but making it available to programs is inadvisable. +# Terminal will send XON/XOFF on buffer overflow. +#------- rmxon=\E[*q +# Available, but making it available to programs is inadvisable. +# Terminal will not notify on buffer overflow. +#------- smm=\E[2+x +#------- rmm=\E[+x +# Available, but making them available to programs is inadvisable. +# +# Printing: +# It's not made clear in the manuals, but based on other ansi/vt type +# terminals, it's a good guess that this terminal is capable of both +# "transparent print" (which doesn't copy data to the screen, and +# therefore needs mc5i: specified to say so) and "auxilliary print" +# (which does duplicate printed data on the screen, in which case mc4= +# and mc5= should use the \E[?4i and \E[?5i strings instead). +# +# (esr: I have commented out is2 in order to avoid overflowing termcap's +# 1024-byte limit.) + +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +hds200|Human Designed Systems HDS200:\ + :am:bw:es:hs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:lm#0:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\ + :ds=\E[2\041w\r\n\E[\041w:ei=\E[4l:fs=\E[\041w:ho=\E[H:\ + :im=\E[4h:k1=^\001\r:k2=^\002\r:k3=^\003\r:k4=^\004\r:\ + :k5=^\005\r:k6=^\006\r:k7=^\007\r:k8=^\008\r:k9=^\009\r:\ + :kD=\177:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:ll=\E[H\E[A:mb=\E[0;5m:\ + :md=\E[0;1m:me=\E[m\017:mr=\E[0;7m:nd=\E[C:nw=\E[E:rc=\E8:\ + :sc=\E7:se=\E[m\017:sf=\ED:so=\E[0;1;7m:sr=\EM:st=\EH:\ + :ta=^I:ts=\E[2\041w\E[%i%p1%dG:ue=\E[m\017:up=\E[A:\ + :us=\E[0;4m:ve=\E[+{:vi=\E[6+{: + +# :ta: through :ce: included to specify padding needed in raw mode. +# (avt-ns: added empty <acsc> to suppress a tic warning --esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +avt-ns|concept avt no status line:\ + :am:bs:eo:mi:ul:xn:xo:\ + :co#80:it#8:li#24:lm#192:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=\016:al=\E[L:as=\017:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[2g:dc=\E[P:dl=\E[M:do=^J:ei=\E4l:\ + :ho=\E[H:i1=\E[=103l\E[=205l:ic=\E[@:im=\E1:ip=:\ + :is=\E[1*q\E[2\041t\E[7\041t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[\041y\E[\041z\E>\E[0\0720\07232\041r\E[0*w\E[w\E2\r\n\E[2;27\041t:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kD=\E^B\r:kI=\E^A\r:kb=^H:\ + :kd=\E[B:ke=\E[\041z\E[0;2u:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E[1\041z\E[0;3u:ku=\E[A:le=^H:ll=\E[24H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mh=\E[1\041{:mr=\E[7m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[7\041{:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\ + :te=\E[w\E2\r\n:ti=\E[=4l\E[1;24w\E2\r:ue=\E[4\041{:\ + :up=\E[A:us=\E[4m:ve=\E[=119l:vs=\E[=119h: +avt-rv-ns|concept avt in reverse video mode/no status line:\ + :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:\ + :tc=avt-ns: +avt-w-ns|concept avt in 132 column mode/no status line:\ + :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:\ + :tc=avt-ns: +avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video:\ + :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\ + :vb=\E[=205l\E[=205h:tc=avt-ns: + +# Concept AVT with status line. We get the status line using the +# "Background status line" feature of the terminal. We swipe the +# first line of memory in window 2 for the status line, keeping +# 191 lines of memory and 24 screen lines for regular use. +# The first line is used instead of the last so that this works +# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this +# assumes an 8 page AVT but lm isn't currently used anywhere.) +# +avt+s|concept avt status line changes:\ + :es:hs:\ + :lm#191:\ + :ds=\E[0*w:fs=\E[1;1\041w:\ + :i2=\E[2w\E[2\041w\E[1;1;1;80w\E[H\E[2*w\E[1\041w\E2\r\n:\ + :te=\E[2w\E2\r\n:ti=\E[2;25w\E2\r:\ + :ts=\E[2;1\041w\E[;%p1%dH\E[2K: +avt|avt-s|concept-avt|avt w/80 columns:\ + :tc=avt+s:tc=avt-ns: +avt-rv|avt-rv-s|avt reverse video w/sl:\ + :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:tc=avt+s:tc=avt-ns: +avt-w|avt-w-s|concept avt 132 cols+status:\ + :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:tc=avt+s:tc=avt-ns: +avt-w-rv|avt-w-rv-s|avt wide+status+rv:\ + :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\ + :vb=\E[=205l\E[=205h:tc=avt+s:\ + :tc=avt-ns: + +#### Contel Business Systems. +# + +# Contel c300 and c320 terminals. +contel300|contel320|c300|Contel Business Systems C-300 or C-320:\ + :am:in:xo:\ + :co#80:li#24:sg#1:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:\ + :ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:im=:ip=:k0=\ERJ:\ + :k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:k7=\ERG:\ + :k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:me=\E\041\0:nd=\EC:\ + :se=\E\041\0:sf=^J:so=\E\041\r:st=\E1:up=\EA:\ + :vb=\020\002\020\003: +# Contel c301 and c321 terminals. +contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321:\ + :ei=:ic@:im=:ip@:se=\E\041\0:so=\E\041\r:vb@:\ + :tc=contel300: + +#### Data General (dg) +# +# According to James Carlson <carlson@xylogics.com> writing in January 1995, +# the terminals group at Data General was shut down in 1991; all these +# terminals have thus been discontinued. +# +# DG terminals have function keys that respond to the SHIFT and CTRL keys, +# e.g., SHIFT-F1 generates a different code from F1. To number the keys +# sequentially, first the unmodified key codes are listed as F1 through F15. +# Then their SHIFT versions are listed as F16 through F30, their CTRL versions +# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as +# F46 through F60. This is done in the private "includes" below whose names +# start with "dgkeys+". +# +# DG terminals generally support 8 bit characters. For each of these terminals +# two descriptions are supplied: +# 1) A default description for 8 bits/character communications, which +# uses the default DG international character set and keyboard codes. +# 2) A description with suffix "-7b" for 7 bits/character communications. +# This description must use the NON-DEFAULT native keyboard language. + +# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33), +# Ctrl/Shift fdkeys (kf34-kf44). + +# Most of these entries are `official' and came from DG. Others are marked. + +dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys:\ + :%9=\233i:F1=\233011z:F2=\233012z:F3=\233013z:\ + :F4=\233014z:F5=\233000z:F6=\233101z:F7=\233102z:\ + :F8=\233103z:F9=\233104z:FA=\233105z:FB=\233106z:\ + :FC=\233107z:FD=\233108z:FE=\233109z:FF=\233110z:\ + :FG=\233111z:FH=\233112z:FI=\233113z:FJ=\233114z:\ + :FK=\233100z:FL=\233201z:FM=\233202z:FN=\233203z:\ + :FO=\233204z:FP=\233205z:FQ=\233206z:FR=\233207z:\ + :FS=\233208z:FT=\233209z:FU=\233210z:FV=\233211z:\ + :FW=\233212z:FX=\233213z:FY=\233214z:FZ=\233200z:\ + :Fa=\233301z:Fb=\233302z:Fc=\233303z:Fd=\233304z:\ + :Fe=\233305z:Ff=\233306z:Fg=\233307z:Fh=\233308z:\ + :Fi=\233309z:Fj=\233310z:Fk=\233311z:Fl=\233312z:\ + :Fm=\233313z:Fn=\233314z:Fo=\233300z:K1=\233020z:\ + :K3=\233021z:K4=\233022z:K5=\233023z:k1=\233001z:\ + :k2=\233002z:k3=\233003z:k4=\233004z:k5=\233005z:\ + :k6=\233006z:k7=\233007z:k8=\233008z:k9=\233009z:\ + :k;=\233010z:kC=\2332J:kE=\233K:kd=\233B:kh=\233H:\ + :kl=\233D:kr=\233C:ku=\233A: + +dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys:\ + :%9=\E[i:F1=\E[011z:F2=\E[012z:F3=\E[013z:F4=\E[014z:\ + :F5=\E[000z:F6=\E[101z:F7=\E[102z:F8=\E[103z:F9=\E[104z:\ + :FA=\E[105z:FB=\E[106z:FC=\E[107z:FD=\E[108z:FE=\E[109z:\ + :FF=\E[110z:FG=\E[111z:FH=\E[112z:FI=\E[113z:FJ=\E[114z:\ + :FK=\E[100z:FL=\E[201z:FM=\E[202z:FN=\E[203z:FO=\E[204z:\ + :FP=\E[205z:FQ=\E[206z:FR=\E[207z:FS=\E[208z:FT=\E[209z:\ + :FU=\E[210z:FV=\E[211z:FW=\E[212z:FX=\E[213z:FY=\E[214z:\ + :FZ=\E[200z:Fa=\E[301z:Fb=\E[302z:Fc=\E[303z:Fd=\E[304z:\ + :Fe=\E[305z:Ff=\E[306z:Fg=\E[307z:Fh=\E[308z:Fi=\E[309z:\ + :Fj=\E[310z:Fk=\E[311z:Fl=\E[312z:Fm=\E[313z:Fn=\E[314z:\ + :Fo=\E[300z:K1=\E[020z:K3=\E[021z:K4=\E[022z:K5=\E[023z:\ + :k1=\E[001z:k2=\E[002z:k3=\E[003z:k4=\E[004z:k5=\E[005z:\ + :k6=\E[006z:k7=\E[007z:k8=\E[008z:k9=\E[009z:k;=\E[010z:\ + :kC=\E[2J:kE=\E[K:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A: + +dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys:\ + :F1=^^{:F2=^^a:F3=^^b:F4=^^c:F5=^^d:F6=^^e:F7=^^f:F8=^^g:\ + :F9=^^h:FA=^^i:FB=^^j:FC=^^k:FD=^^1:FE=^^2:FF=^^3:FG=^^4:\ + :FH=^^5:FI=^^6:FJ=^^7:FK=^^8:FL=^^9:FM=^^\072:FN=^^;:\ + :FO=^^\041:FP=^^":FQ=^^#:FR=^^$:FS=^^%:FT=^^&:FU=^^':FV=^^(:\ + :FW=^^):FX=^^*:FY=^^+:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:\ + :k6=^^v:k7=^^w:k8=^^x:k9=^^y:k;=^^z:kC=^L:kE=^K:kd=^Z:kh=^H:\ + :kl=^Y:kr=^X:ku=^W: + +dgkeys+15|Private entry describing 15 DG mode special keys:\ + :#2=^^^H:#4=^^^Y:%i=^^^X:F1=^^{:F2=^^|:F3=^^}:F4=^^~:F5=^^p:\ + :F6=^^a:F7=^^b:F8=^^c:F9=^^d:FA=^^e:FB=^^f:FC=^^g:FD=^^h:\ + :FE=^^i:FF=^^j:FG=^^k:FH=^^l:FI=^^m:FJ=^^n:FK=^^`:FL=^^1:\ + :FM=^^2:FN=^^3:FO=^^4:FP=^^5:FQ=^^6:FR=^^7:FS=^^8:FT=^^9:\ + :FU=^^\072:FV=^^;:FW=^^<:FX=^^=:FY=^^>:FZ=^^0:Fa=^^\041:\ + :Fb=^^":Fc=^^#:Fd=^^$:Fe=^^%:Ff=^^&:Fg=^^':Fh=^^(:Fi=^^):\ + :Fj=^^*:Fk=^^+:Fl=^^\054:Fm=^^-:Fn=^^.:Fo=^^ :K1=^^\:K3=^^]:\ + :K4=^^\136:K5=^^_:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:\ + :k7=^^w:k8=^^x:k9=^^y:k;=^^z: + +# Data General color terminals use the "Tektronix" color model. The total +# number of colors varies with the terminal model, as does support for +# attributes used in conjunction with color. + +# Removed u7, u8 definitions since they conflict with tack: +# Preserve user-defined colors in at least some cases. +# u7=^^Fh, +# Default is ACM mode. +# u8=^^F}20^^Fi^^F}21, +# +dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode:\ + :ut:\ + :Co#16:NC#53:pa#256:\ + :AB=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\ + :AF=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\ + :Sb=\036B%+0:Sf=\036A%+0:op=\036Ad\036Bd: + +dg+fixed|Fixed color info for DG D430C terminals in DG mode:\ + :tc=dgunix+fixed: + +# Video attributes are coordinated using static variables set by "sgr", then +# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings. +# (D=dim, U=underline, B=blink, R=reverse.) +dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode:\ + :ut:\ + :Co#8:NC#16:pa#64:\ + :AB=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :AF=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :..Sb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :..Sf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m: + +dg+color|Color info for Data General D470C terminals in ANSI mode:\ + :Co#16:NC#53:pa#256:\ + :AB=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :AF=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :..Sb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :..Sf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\ + :tc=dg+color8: + +dgmode+color8|Color info for Data General D220/D230C terminals in DG mode:\ + :ut:\ + :Co#8:NC#16:pa#64:\ + :AB=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c:\ + :AF=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c:\ + :Sb=\036B%+0:Sf=\036A%+0:op=\036Ad\036Bd: + +dgmode+color|Color info for Data General D470C terminals in DG mode:\ + :Co#16:pa#256:\ + :AB=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\ + :AF=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\ + :tc=dgmode+color8: + +dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode:\ + :cc:ut:\ + :Co#52:NC#53:pa#26:\ + :..Ip=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X:\ + :oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00:\ + :op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D:\ + :..sp=\036RG2%p1%02X: + +# Colors are in the order: normal, reverse, dim, dim + reverse. +dg+ccc|Configurable color info for DG D430C terminals in DG mode:\ + :cc:ut:\ + :Co#52:NC#53:pa#26:\ + :..Ip=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c:\ + :oc=\036RG01\07200??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00:\ + :op=\036RF4831\072\036RF2>31;\036RF1=31<\036RF3?31=:\ + :sp=\036RG2%+^P%+^P: + +# The generic DG terminal type (an 8-bit-clean subset of the 6053) +# Initialization string 1 sets: +# ^R - vertical scrolling enabled +# ^C - blinking enabled +dg-generic|Generic Data General terminal in DG mode:\ + :NL:am:bw:ms:xo:\ + :co#80:li#24:\ + :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:i1=^R^C:le=^Y:\ + :mb=^N:me=^O^U^]:mh=^\:nd=^X:nw=^J:ps=^Q:se=^]:sf=^J:so=^\:\ + :ue=^U:up=^W:us=^T:\ + :tc=dgkeys+11: + +# (Some performance can be gained over the generic DG terminal type) +dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053:\ + :xo@:\ + :ho=^P\0\0:ll=^P\0^W:tc=dg-generic: + +# Like 6053, but adds reverse video and more keypad and function keys. +d200|d200-dg|Data General DASHER D200:\ + :ho@:ll@:md=^^D^T:me=\017\025\035\036E:mr=^^D:\ + :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;:\ + :se=^^E^]:so=^^D^\:\ + :tc=dgkeys+15:tc=dg6053: + +# DASHER D210 series terminals in ANSI mode. +# Reverse video, no insert/delete character/line, 7 bits/character only. +# +# Initialization string 1 sets: +# <0 - scrolling enabled +# <1 - blink enabled +# <4 - print characters regardless of attributes +d210|d214|Data General DASHER D210 series:\ + :NL:am:bw:ms:xo:\ + :co#80:li#24:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:cb=\E[1K:\ + :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:do=\E[B:\ + :ho=\E[H:i1=\E[<0;<1;<4l:le=^H:ll=\E[H\E[A:mb=\E[5m:\ + :md=\E[4;7m:me=\E[m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^J:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m:\ + :se=\E[m:sf=^J:so=\E[2;7m:ue=\E[m:up=\E[A:us=\E[4m:\ + :tc=dgkeys+7b: + +# DASHER D210 series terminals in DG mode. +# Like D200, but adds clear to end-of-screen and needs XON/XOFF. +d210-dg|d214-dg|Data General DASHER D210 series in DG mode:\ + :xo:\ + :cd=^^FF:tc=d200: + +# DASHER D211 series terminals in ANSI mode. +# Like the D210, but with 8-bit characters and local printer support. +# +# Initialization string 2 sets: +# \E[2;1;1;1v +# 2;1 - 8 bit operations +# 1;1 - 8 bit (international) keyboard language +# \E(B - default primary character set (U.S. ASCII) +# \E)4 - default secondary character set (international) +# ^O - primary character set +# +d211|d215|Data General DASHER D211 series:\ + :km:\ + :is=\E[2;1;1;1v\E(B\E)4\017:ps=\E[i:tc=dgkeys+8b:tc=d210: + +# Initialization string 2 sets: +# \E[2;0;1;0v +# 2;0 - 7 bit operations +# 1;0 - 7 bit (native) keyboard language +# \E(0 - default character set (the keyboard native language) +# ^O - primary character set +d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode:\ + :km@:\ + :is=\E[2;0;1;0v\E(0\017:tc=dgkeys+7b:tc=d211: + +# Like the D210 series, but adds support for 8-bit characters. +# +# Reset string 2 sets: +# ^^N - secondary character set +# ^^FS0> - 8 bit international character set +# ^^O - primary character set +# ^^FS00 - default character set (matching the native keyboard language) +# +d211-dg|d215-dg|Data General DASHER D211 series in DG mode:\ + :km:\ + :r2=\036N\036FS0>\036O\036FS00:tc=d210-dg: + +d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode:\ + :tc=d211-dg: + +# Enhanced DG mode with changes to be more UNIX compatible. +d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode:\ + :5i:\ + :it#8:\ + :#2=^^Pf:#4=^^Pd:%9=^^P0:%f=^^P1:%i=^^Pc:\ + :ac=a\177j$k"l\041m#n)q+t'u&v(w%x*:ae=\036FS00:\ + :as=\036FS11:ce=^^PE:ch=\020%.\177:cl=^^PH:cv=\020\177%.:\ + :do=^^PB:ho=^^PF:i1=\022\003\036P@1:i2=\036Fz0:kC=^^PH:\ + :kE=^^PE:kd=^^PB:kh=^^PF:kl=^^PD:kr=^^PC:ku=^^PA:le=^^PD:\ + :mb=^^PI:me=\036PJ\025\035\036E\036FS00:nd=^^PC:pf=^^Fa:\ + :po=^^F`:ps=\036F?9:r2=\036N\036FS0E\036O\036FS00:\ + :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;:\ + :sf=^J:ta=^I:up=^^PA:\ + :tc=dgkeys+15:tc=d216-dg: +d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines:\ + :li#25:\ + :i2=\036Fz2:tc=d216+: + +d217-unix|Data General DASHER D217 in DG-UNIX mode:\ + :tc=d216-unix: +d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines:\ + :tc=d216-unix-25: + +# DASHER D220 color terminal in ANSI mode. +# Like the D470C but with fewer colors and screen editing features. +# +# Initialization string 1 sets: +# \E[<0;<1;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <4 - print characters regardless of attributes +# \E[m - all attributes off +# Reset string 1 sets: +# \Ec - initial mode defaults (RIS) +# +d220|Data General DASHER D220:\ + :5i@:\ + :AL@:DL@:al@:dl@:i1=\E[<0;<1;<4l\E[m:pf@:po@:r1=\Ec:tc=dg+color8:tc=d470c: + +d220-7b|Data General DASHER D220 in 7 bit mode:\ + :5i@:\ + :AL@:DL@:al@:dl@:i1=\E[<0;<1;<4l\E[m:pf@:po@:r1=\Ec:tc=dg+color8:tc=d470c-7b: + +# Initialization string 3 sets: +# - default cursor (solid rectangle) +# Reset string 2 sets: +# ^^N - secondary character set +# ^^FS0> - 8 bit international character set +# ^^O - primary character set +# ^^FS00 - default character set (matching the native keyboard language) +# +d220-dg|Data General DASHER D220 color terminal in DG mode:\ + :5i@:\ + :al@:dl@:ho@:i2=\036FQ2:is@:ll@:pf@:po@:r1@:\ + :r2=\036N\036FS0>\036O\036FS00:tc=dgmode+color8:\ + :tc=d470c-dg: + +# DASHER D230C color terminal in ANSI mode. +# Like the D220 but with minor ANSI compatibility improvements. +# +d230c|d230|Data General DASHER D230C:\ + :ke=\E[2;1v:ks=\E[2;0v:mb=\E[5;50m:md=\E[4;7;50m:\ + :me=\E[50m\E)4\017:mh=\E[2;50m:mr=\E[7;50m:nw=^M^J:\ + :..sa=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;:\ + :se=\E[50m:so=\E[2;7;50m:ue=\E[50m:us=\E[4;50m:\ + :tc=dgkeys+7b:tc=d220: + +d230c-dg|d230-dg|Data General DASHER D230C in DG mode:\ + :tc=d220-dg: + +# DASHER D400/D450 series terminals. +# These add intelligent features like insert/delete to the D200 series. +# +# Initialization string 2 sets: +# ^^FQ2 - default cursor (solid rectangle) +# ^^FW - character protection disabled +# ^^FJ - normal (80 column) mode +# ^^F\^ - horizontal scrolling enabled (for alignment) +# ^^FX004? - margins at columns 0 and 79 +# ^^F] - horizontal scrolling disabled +# ^^O - primary character set +# ^^FS00 - default character set (the keyboard native language) +# - (should reset scrolling regions, but that glitches the screen) +# Reset string 1 sets: +# ^^FA - all terminal defaults except scroll rate +# Reset string 2 sets: +# ^^F] - horizontal scrolling disabled +# ^^FT0 - jump scrolling +# +d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series:\ + :5i:\ + :ac=j$k"l\041m#n)q+t'u&v(w%x*:ae=^^O:al=^^FH:as=^^N:\ + :ch=\020%.\177:cv=\020\177%.:dc=^^K:dl=^^FI:\ + :eA=\036N\036FS11\036O:ei=:ho=^^FG:ic=^^J:im=:\ + :is=\036FQ2\036FW\036FJ\036F\136\036FX004?\036F]\036O\036FS00:\ + :ll=\036FG\027:me=\017\025\035\036E\036O:pf=^^Fa:\ + :po=^^F`:r1=^^FA:r2=\036F]\036FT0:\ + :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;:\ + :sr=^^I:ve=\036FQ2:vi=\036FQ0:\ + :tc=d210-dg: + +# DASHER D410/D460 series terminals in ANSI mode. +# These add a large number of intelligent terminal features. +# +# Initialization string 1 sets: +# \E[<0;<1;<2;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <2 - horizontal scrolling enabled (for alignment) +# <4 - print characters regardless of attributes +# \E[5;0v - normal (80 column) mode +# \E[1;1;80w - margins at columns 1 and 80 +# \E[1;6;<2h +# 1 - print all characters even if protected +# 6 - character protection disabled +# <2 - horizontal scrolling disabled +# - (should reset scrolling regions, but that glitches the screen) +# +# Initialization string 2 sets: +# \E[3;2;2;1;1;1v +# 3;2 - default cursor (solid rectangle) +# 2;1 - 8 bit operations +# 1;1 - international keyboard language +# \E(B - default primary character set (U.S. ASCII) +# \E)4 - default secondary character set (international) +# ^O - primary character set +# +# Reset string 1 sets: +# \Ec - initial mode defaults (RIS) +# \E[<2h - horizontal scrolling disabled +# +# Reset string 2 sets: +# \E[4;0;2;1;1;1v +# 4;0 - jump scrolling +# 2;1 - 8 bit operations +# 1;1 - 8 bit (international) keyboard language +# \E(B - default primary character set (U.S. ASCII) +# \E)4 - default secondary character set (international) +# +d410|d411|d460|d461|Data General DASHER D410/D460 series:\ + :5i:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:\ + :ac=j$k"l\041m#n)q+t'u&v(w%x*:ae=\E)4\017:al=\E[L:\ + :as=\E)6\016:dc=\E[P:dl=\E[M:ei=:\ + :i1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h:\ + :ic=\E[@:im=:is=\E[3;2;2;1;1;1v\E(B\E)4\017:\ + :me=\E[m\E)4\017:pf=\E[4i:po=\E[5i:r1=\Ec\E[<2h:\ + :r2=\E[4;0;2;1;1;1v\E(B\E)4:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;:\ + :sr=\EM:ve=\E[3;2v:vi=\E[3;0v:\ + :tc=d211: + +# Initialization string 2 sets: +# \E[3;2;2;0;1;0v +# 3;2 - default cursor (solid rectangle) +# 2;0 - 7 bit operations +# 1;0 - 7 bit (native) keyboard language +# \E(0 - default character set (the keyboard native language) +# ^O - primary character set +# +# Reset string 2 sets: +# \E[4;0;2;0;1;0v +# 4;0 - jump scrolling +# 2;0 - 7 bit operations +# 1;0 - 7 bit (native) keyboard language +# \E(0 - default character set (the keyboard native language) +# +d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode:\ + :km@:\ + :ae=^O:as=^N:eA=\E)6:is=\E[3;2;2;0;1;0v\E(0\017:\ + :me=\E[m\017:r2=\E[4;0;2;0;1;0v\E(0:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;:tc=dgkeys+7b:\ + :tc=d410: + +d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode:\ + :km:\ + :ae=\036FS00:as=\036FS11:eA@:\ + :me=\017\025\035\036E\036FS00:\ + :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;:tc=d400-dg: + +# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode. +# +# Initialization string 1 sets: +# \E[<0;<1;<2;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <2 - horizontal scrolling enabled (for alignment) +# <4 - print characters regardless of attributes +# \E[5;1v - compressed (135 column) mode +# \E[1;1;126 - margins at columns 1 and 126 +# \E[1;6;<2h +# 1 - print all characters even if protected +# 6 - character protection disabled +# <2 - horizontal scrolling disabled +# - (should reset scrolling regions, but that glitches the screen) +# +# Reset string 1 sets: +# \Ec - initial mode defaults (RIS) +# \E[5;1v - compressed (135 column) mode +# \E[1;1;126w - margins at columns 1 and 126 +# \E[<2h - horizontal scrolling disabled +# +d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode:\ + :co#126:\ + :i1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h:\ + :r1=\Ec\E[5;1v\E[1;1;126w\E[<2h:\ + :tc=d410: + +d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode:\ + :co#126:\ + :i1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h:\ + :r1=\Ec\E[5;1v\E[1;1;126w\E[<2h:\ + :tc=d410-7b: + +d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode:\ + :tc=d410-dg: + +# These add intelligent features like scrolling regions. +d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode:\ + :al=^^FH:ch=\036FP%2.2XFF:cl=^^FE:cm=\036FP%r%2.2X%2.2X:\ + :cv=\036FPFF%2.2X:dc=^^K:dl=^^FI:ei=:ho=^^FG:ic=^^J:im=:\ + :is=\036FQ5\036FW\036FJ\036F\136\036FX004F\036O\036FS00:\ + :ll=\036FG\036PA:ps=^A:r1=\036FA\036FT0:r2=\036P@1:\ + :rc=\036F}11:sc=\036F}10:sr=^^I:ve=\036FQ5:vi=\036FQ0:\ + :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X:\ + :tc=d216+: +d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode:\ + :co#132:\ + :is=\036FQ5\036FW\036FK\036F\136\036FX0083\036O\036FS00:\ + :r2=\036P@1\036FK\036FX0083:\ + :..wi=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X:tc=d412-unix: +d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines:\ + :li#25:\ + :i2=\036Fz2:\ + :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X:tc=d462+: +d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line:\ + :es:hs:\ + :cl=\036FG\036PH:fs=\036F}01\022:\ + :i2=\036Fz2\036F}00\036FB180000\036F}01:ll@:\ + :ts=\036F}00\036FP%p1%2.2X18\036PG:\ + :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X:tc=d462+: + +# Relative cursor motions are confined to the current window, +# which is not what the scrolling region specification expects. +# Thus, relative vertical cursor positioning must be deleted. +d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region:\ + :..cs=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;:\ + :do@:ll@:up@:\ + :tc=d462+: + +d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode:\ + :tc=d412-unix: +d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode:\ + :tc=d412-unix-w: +d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines:\ + :tc=d412-unix-25: +d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line:\ + :tc=d412-unix-s: +d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region:\ + :tc=d412-unix-sr: + +d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode:\ + :tc=d413-unix: +d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode:\ + :tc=d413-unix-w: +d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines:\ + :tc=d413-unix-25: +d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line:\ + :tc=d413-unix-s: +d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region:\ + :tc=d413-unix-sr: + +d430c-dg|d430-dg|Data General D430C in DG mode:\ + :tc=d413-dg:tc=dg+fixed: +d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors:\ + :tc=d413-dg:tc=dg+ccc: + +d430c-unix|d430-unix|Data General D430C in DG-UNIX mode:\ + :tc=d413-unix:tc=dgunix+fixed: +d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode:\ + :tc=d413-unix-w:tc=dgunix+fixed: +d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines:\ + :tc=d413-unix-25:tc=dgunix+fixed: +d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line:\ + :tc=d413-unix-s:tc=dgunix+fixed: +d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region:\ + :tc=d413-unix-sr:tc=dgunix+fixed: +d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors:\ + :tc=d413-unix:tc=dgunix+ccc: +d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors:\ + :tc=d413-unix-w:tc=dgunix+ccc: +d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors:\ + :tc=d413-unix-25:tc=dgunix+ccc: +d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors:\ + :tc=d413-unix-s:tc=dgunix+ccc: +d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors:\ + :tc=d413-unix-sr:tc=dgunix+ccc: + +# dg450 from Cornell (not official) +dg450|dg6134|data general 6134:\ + :le@:nd=^X:tc=dg200: + +# Not official... +# Note: lesser Dasher terminals will not work with vi because vi insists upon +# having a command to move straight down from any position on the bottom line +# and scroll the screen up, or a direct vertical scroll command. The 460 and +# above have both, the D210/211, for instance, has neither. We must use ANSI +# mode rather than DG mode because standard UNIX tty drivers assume that ^H is +# backspace on all terminals. This is not so in DG mode. +# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the +# grounds that there is no matching ":ml:" +# fixed garbled ":k9=\E[00\:z:" capability -- esr) +dg460-ansi|Data General Dasher 460 in ANSI-mode:\ + :am:bs:ms:ul:\ + :co#80:it#8:li#24:\ + :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%2;%2H:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=^^F@:k0=\E[001z:\ + :k1=\E[002z:k2=\E[003z:k3=\E[004z:k4=\E[005z:k5=\E[006z:\ + :k6=\E[007z:k7=\E[008z:k8=\E[009z:k9=\E[010z:kb=\E[D:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:l1=f2:l2=f3:\ + :l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l9=f10:le=^H:mb=\E[5m:me=\E[m:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:nl=\ED:se=\E[m:sf=\E[S:so=\E[7m:\ + :sr=\E[T:ta=^I:ue=\E[05:up=\E[A:us=\E[4m: + +# DASHER D470C color terminal in ANSI mode. +# Like the D460 but with 16 colors and without a compressed mode. +# +# Initialization string 1 sets: +# \E[<0;<1;<2;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <2 - horizontal scrolling enabled (for alignment) +# <4 - print characters regardless of attributes +# \E[1;1;80w - margins at columns 1 and 80 +# \E[1;6;<2h +# 1 - print all characters even if protected +# 6 - character protection disabled +# <2 - horizontal scrolling disabled +# - (should reset scrolling regions, but that glitches the screen) +# +d470c|d470|Data General DASHER D470C:\ + :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;:tc=dg+color:\ + :tc=d460: + +d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode:\ + :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:\ + :..sa=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;:tc=dg+color:\ + :tc=d460-7b: + +# Initialization string 2 sets: +# ^^FQ2 - default cursor (solid rectangle) +# ^^FW - character protection disabled +# ^^F\^ - horizontal scrolling enabled (for alignment) +# ^^FX004? - margins at columns 0 and 79 +# ^^F] - horizontal scrolling disabled +# ^^O - primary character set +# ^^FS00 - default character set (the keyboard native language) +# - (should reset scrolling regions, but that glitches the screen) +# +d470c-dg|d470-dg|Data General DASHER D470C in DG mode:\ + :is=\036FQ2\036FW\036F\136\036FX004?\036F]\036O\036FS00:\ + :tc=dgmode+color:tc=d460-dg: + +# DASHER D555 terminal in ANSI mode. +# Like a D411, but has an integrated phone. +d555|Data General DASHER D555:\ + :tc=d411: +d555-7b|Data General DASHER D555 in 7-bit mode:\ + :tc=d411-7b: +d555-w|Data General DASHER D555 in wide mode:\ + :tc=d411-w: +d555-7b-w|Data General DASHER D555 in wide 7-bit mode:\ + :tc=d411-7b-w: +d555-dg|Data General DASHER D555 series in DG mode:\ + :tc=d411-dg: + +# DASHER D577 terminal in ANSI mode. +# Like a D411, but acts as a keyboard for serial printers ("KSR" modes). +d577|Data General DASHER D577:\ + :tc=d411: +d577-7b|Data General DASHER D577 in 7-bit mode:\ + :tc=d411-7b: +d577-w|Data General DASHER D577 in wide mode:\ + :tc=d411-w: +d577-7b-w|Data General DASHER D577 in wide 7-bit mode:\ + :tc=d411-7b-w: + +d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode:\ + :tc=d411-dg: + +# DASHER D578 terminal. +# Like a D577, but without compressed mode; like a D470C in this respect. +# +# Initialization string 1 sets: +# \E[<0;<1;<2;<4l +# <0 - scrolling enabled +# <1 - blink enabled +# <2 - horizontal scrolling enabled (for alignment) +# <4 - print characters regardless of attributes +# \E[1;1;80w - margins at columns 1 and 80 +# \E[1;6;<2h +# 1 - print all characters even if protected +# 6 - character protection disabled +# <2 - horizontal scrolling disabled +# - (should reset scrolling regions, but that glitches the screen) +# +d578|Data General DASHER D578:\ + :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:tc=d577: +d578-7b|Data General DASHER D578 in 7-bit mode:\ + :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:tc=d577-7b: + +# Here are some older Dasher entries from the Berkeley termcap file. + +# According to the 4.4BSD termcap file, the dg200 :cm: should be the +# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap +# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious, +# maybe they were originally nuls (which would fit). +dg200|data general dasher 200:\ + :NL:am:bs:bw:\ + :co#80:li#24:\ + :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:k0=^^z:\ + :k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:k7=^^w:k8=^^x:\ + :k9=^^y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:l0=f10:le=^Y:nd=^X:\ + :nw=^J:se=^^E:sf=^J:so=^^D:ue=^U:up=^W:us=^T: +# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL +dg210|dg-ansi|Data General 210/211:\ + :am:\ + :co#80:li#24:\ + :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:do=\E[B:ho=\E[H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:nl=\E[B:\ + :nw=\r\E[H\E[A\n:se=\E[0;m:so=\E[7;m:ue=\E[0;m:up=\E[A:\ + :us=\E[4;m: +# From: Peter N. Wan <ihnp4!gatech!gacsr!wan> +# courtesy of Carlos Rucalde of Vantage Software, Inc. +# (dg211: this had :cm=\020%r%.%:., which was an ancient termcap hangover. +# I suspect the d200 function keys actually work on the dg211, check it out.) +dg211|Data General d211:\ + :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb=^Y:l0@:nw=^M^Z:\ + :se=\036E\0/>:sf@:so=5\036D:ta=^I:te=^L:ti=^L^R:ve=^L:\ + :vs=^L^R:\ + :tc=dg200: + +# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official) +# Data General 605x +# Ought to work for a Model 6242, Type D210 as well as a 605x. +# Note that the cursor-down key transmits ^Z. Job control users, beware! +# This also matches a posted description of something called a `Dasher 100' +# so there's a dg100 alias here. +# (dg6053: the 4.4BSD file had :le=^H:, :do=^J:, :nd=^S:. -- esr) +dg6053-old|dg100|data general 6053:\ + :am:bs:bw:ul:\ + :co#80:li#24:\ + :bc=^Y:bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:\ + :is=^R:k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:k6=^^w:\ + :k7=^^x:k8=^^y:k9=^^z:kb=^Y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:\ + :le=^Y:nd=^X:se=\0^^E:so=\0\0\0\0\0\036D:ta=^I:te=^L:\ + :ti=^L^R:ue=^U:up=^W:us=^T:ve=^L:vs=^L^R: + +#### Datamedia (dm) +# +# Datamedia was headquartered in Nashua, New Hampshire until it went +# out of business in 1993, but the ID plates on the terminals referred +# to the factory in Pennsauken, NJ. The factory was sold to a PCB board +# manufacturer which threw out all information about the terminals. +# + +cs10|colorscan|Datamedia Color Scan 10:\ + :ms:\ + :co#80:li#24:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%02;%02H:cr=^M:\ + :do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:\ + :so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m: +cs10-w|Datamedia Color Scan 10 with 132 columns:\ + :co#132:\ + :cm=\E[%i%02;%03H:tc=cs10: + +# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr) +dm1520|dm1521|datamedia 1520:\ + :am:bs:xn:\ + :co#80:it#8:li#24:\ + :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\ + :kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:nd=^\:sf=^J:ta=^I:up=^_: +# dm2500: this terminal has both :IC: and :im:. Applications using +# termcap/terminfo directly (rather than through ncurses) might be confused. +dm2500|datamedia2500|datamedia 2500:\ + :bs:nc:\ + :co#80:li#24:\ + :al=\020\n\030\035\030\035:bl=^G:ce=^W:cl=^^^^\177:\ + :cm=\014%r%n%.%.:dc=\020\010\030\035:\ + :dl=\020\032\030\035:dm=^P:do=^J:ed=^X^]:\ + :ei=\377\377\030\035:ho=^B:ic=\020\034\030\035:im=^P:\ + :le=^H:nd=^\:pc=\377:se=^X^]:sf=^J:so=^N:up=^Z: +# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82) +# also, has a meta-key. +# From: <goldberger@su-csli.arpa> +# (dmchat: ":MT:" changed to ":km:" -- esr) +dmchat|dmchat version of datamedia 2500:\ + :km:\ + :al=1*\020\n\030\035\030\035:dl=2\020\032\030\035:tc=dm2500: +# (dm3025: ":MT:" changed to ":km:" -- esr) +dm3025|datamedia 3025a:\ + :bs:km:\ + :co#80:it#8:li#24:\ + :al=\EP\n\EQ:bl=^G:cd=\EJ:ce=\EK:cl=\EM:cm=\EY%r%+ %+ :\ + :cr=^M:dc=\010:dl=\EP\EA\EQ:dm=\EP:do=^J:ed=\EQ:ei=\EQ:\ + :ho=\EH:im=\EP:ip=:is=\EQ\EU\EV:le=^H:nd=\EC:se=\EO0:sf=^J:\ + :so=\EO1:ta=^I:up=\EA: +dm3045|datamedia 3045a:\ + :am:bs:eo:km@:ul:xn:\ + :al@:dc=\EB:dl@:dm@:ed@:ei=\EP:is=\EU\EV:k0=\Ey\r:k1=\Ep\r:\ + :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:\ + :k8=\Ew\r:k9=\Ex\r:kh=\EH:kr=\EC:ku=\EA:pc=\177:se@:so@:\ + :tc=dm3025: +# Datamedia DT80 soft switches: +# 1 0=Jump 1=Smooth +# Autorepeat 0=off 1=on +# Screen 0=Dark 1=light +# Cursor 0=u/l 1=block +# +# 2 Margin Bell 0=off 1=on +# Keyclick 0=off 1=on +# Ansi/VT52 0=VT52 1=Ansi +# Xon/Xoff 0=Off 1=On +# +# 3 Shift3 0=Hash 1=UK Pound +# Wrap 0=Off 1=On +# Newline 0=Off 1=On +# Interlace 0=Off 1=On +# +# 4 Parity 0=Odd 1=Even +# Parity 0=Off 1=On +# Bits/Char 0=7 1=8 +# Power 0=60Hz 1=50Hz +# +# 5 Line Interface 0=EIA 1=Loop +# Aux Interface 0=EIA 1=Loop +# Local Copy 0=Off 1=On +# Spare +# +# 6 Aux Parity 0=Odd 1=Even +# Aux Parity 0=Off 1=On +# Aux Bits/Char 0=7 1=8 +# CRT Saver 0=Off 1=On +# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding. +dm80|dmdt80|dt80|datamedia dt80/1:\ + :cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=%i\E[%d;%dH:do=^J:\ + :ho=\E[H:me=\E[m:nd=\E[C:pf=\E[4i:po=\E[5i:ps=\E[0i:\ + :se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:\ + :tc=vt100: +# except in 132 column mode, where it needs a little padding. +# This is still less padding than the vt100, and you can always turn on +# the ^S/^Q handshaking, so you can use vt100 flavors for things like +# reverse video. +dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode:\ + :co#132:\ + :cd=20\E[0J:ce=20\E[0K:cl=50\E[H\E[2J:cm=5\E[%i%d;%dH:\ + :do=^J:up=5\E[A:\ + :tc=dm80: +# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995 +dt80-sas|Datamedia DT803/DTX for SAS usage:\ + :am:bw:\ + :co#80:li#24:\ + :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\ + :ae=\EG:al=\EL:as=\EF:bl=^G:cd=^K:ce=^]:cl=^L:\ + :cm=\E=%r%+ %+ :cr=^M:\ + :..cs=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2:\ + :ct=\E'0:dl=\EM:do=\EB:ff=^L:ho=^Y:is=\E)0\E<\EP\E'0\E$2:\ + :kC=^L:kE=^]:kS=^K:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:me=^X:\ + :mr=\E$2\004:nd=^\:pf=^O:po=^N:se=^X:sf=\EB:so=\E$2\004:\ + :sr=\EI:st=\E'1:ta=^I:up=^_: + +# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL +# These aren't end-all Excel termcaps; but do insert/delete char/line +# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman) +# The naming convention has been bent somewhat, with the use of E? (where +# E is for 'Excel') as # a name. This was done to distinguish the entries +# from the other Datamedias in use here, and yet to associate a model of +# the Excel terminals with the regular datamedia terminals that share +# major characteristics. +excel62|excel64|datamedia Excel 62:\ + :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\ + :k9=\EOy:kb=^H:kd=^J:kl=^H:\ + :tc=dt80: +excel62-w|excel64-w|datamedia Excel 62 in 132 char mode:\ + :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\ + :k9=\EOy:kb=^H:kd=^J:kl=^H:\ + :tc=dt80w: +excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode:\ + :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\ + :k9=\EOy:kb=^H:kd=^J:kl=^H:vb=\E[?5l\E[?5h:\ + :tc=dt80: + +#### Falco +# +# Falco Data Products +# 440 Potrero Avenue +# Sunnyvale, CA 940864-196 +# Vox: (800)-325-2648 +# Fax: (408)-745-7860 +# Net: techsup@charm.sys.falco.com +# +# Current Falco models as of 1995 are generally ANSI-compatible and support +# emulations of DEC VT-series, Wyse, and Televideo types. +# + +# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info +# This terminal was released around 1983 and was discontinued long ago. +# The standout and underline highlights are the same. +falco|ts1|ts-1|falco ts-1:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET\EG0\010:cl=\E*:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eu\E3:\ + :k0=^A0\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:me=\Eg0:nd=^L:\ + :se=\Eg0:sf=^J:so=\Eg1:ta=^I:ue=\Eg0:up=^K:us=\Eg1: +falco-p|ts1p|ts-1p|falco ts-1 with paging option:\ + :am:bs:da:db:mi:ms:ul:\ + :co#80:it#8:li#24:\ + :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET\EG0\010\Eg0:cl=\E*:\ + :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=\E[B:ei=\Er:im=\Eq:\ + :is=\EZ\E3\E_c:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:me=\Eg0:nd=\E[C:se=\Eg0:sf=^J:so=\Eg4:ta=^I:te=\E_b:\ + :ti=\E_d:ue=\Eg0:up=\E[A:us=\Eg1: +# (ts100: I added <rmam>/<smam> based on the init string -- esr) +ts100|ts100-sp|falco ts100-sp:\ + :am:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E~E:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E~W:dl=\E~R:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\ + :i1=\E~)\E~ea:ic=\E~Q:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: +ts100-ctxt|falco ts-100 saving context:\ + :te=\E~_b:ti=\E~_d\E[2J:tc=ts100: + +#### Florida Computer Graphics +# + +# Florida Computer Graphics Beacon System, using terminal emulator program +# "host.com", as provided by FCG. This description is for an early release +# of the "host" program. Known bug: :cd: clears the whole screen, so it's +# commented out. + +# From: David Bryant <cbosg!djb> 1/7/83 +beacon|FCG Beacon System:\ + :am:da:db:\ + :co#80:li#32:\ + :al=\EE:bl=\ESTART\r\E37\r\EEND\r:ce=\ET:cl=\EZ:\ + :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=\EH:ic=\EQ:\ + :im=:le=^H:mb=\ESTART\r\E61\0541\r\EEND\r:\ + :me=\ESTART\r\E78\r\E70\0540\r\EEND\r:\ + :mr=\ESTART\r\E59\0541\r\EEND\r:nd=\EV:\ + :se=\ESTART\r\E70\0540\r\EEND\r:sf=^J:\ + :so=\ESTART\r\E70\0546\r\EEND\r:te=:\ + :ti=\ESTART\r\E2\0540\r\E12\r\EEND\r:\ + :ue=\ESTART\r\E60\0540\r\EEND\r:up=\EU:\ + :us=\ESTART\r\E60\0541\r\EEND\r: + +#### Fluke +# + +# The f1720a differences from ANSI: no auto margin, destructive +# tabs, # of lines, funny highlighting and underlining +f1720|f1720a|fluke 1720A:\ + :xt:\ + :co#80:li#16:sg#1:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :do=\E[B:is=\E[H\E[2J:kd=^]:kl=^_:kr=^^:ku=^\:le=^H:me=\E[m:\ + :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:\ + :us=\E[4m: + +#### Liberty Electronics (Freedom) +# +# Liberty Electronics +# 48089 Fremont Blvd +# Fremont CA 94538 +# Vox: (510)-623-6000 +# Fax: (510)-623-7021 + +# From: <faletti@berkeley.edu> +# (f100: added empty <acsc> to suppress a tic warning; +# made this relative to adm+sgr -- note that <invis> isn't +# known to work for f100 but does on the f110. --esr) +f100|freedom|freedom100|freedom model 100:\ + :am:bs:bw:hs:mi:ms:xo:\ + :co#80:li#24:\ + :ac=:ae=\E$:al=\EE:as=\E%:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ + :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:cv=\E[%+ :\ + :dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\ + :ip=:is=\Eg\Ef\r\Ed:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\ + :kB=\EI:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:\ + :sr=\Ej:st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:\ + :tc=adm+sgr: +f100-rv|freedom-rv|freedom 100 in reverse video:\ + :is=\Eg\Ef\r\Eb:vb=\Ed\Eb:tc=f100: +# The f110 and f200 have problems with vi(1). They use the ^V +# code for the down cursor key. When kcud1 is defined in terminfo +# as ^V, the Control Character Quoting capability (^V in insert mode) +# is lost! It cannot be remapped in vi because it is necessary to enter +# a ^V to to quote the ^V that is being remapped!!! +# +# f110/f200 users will have to decide whether +# to lose the down cursor key or the quoting capability. We will opt +# initially for leaving the quoting capability out, since use of VI +# is not generally applicable to most interactive applications +# (f110: added :ta:, :kh: & <kcbt> from f100 -- esr) +f110|freedom110|Liberty Freedom 110:\ + :bw@:es:\ + :it#8:ws#80:\ + :ae=\E%%:al=\EE:as=\E$:dl=\ER:do=^V:ds=\Ef\r:ei=\Er\EO:\ + :im=\EO\Eq:ip@:is@:k0=^AI\r:k;@:kA=\EE:kC=^^:kD=\EW:kE=\ET:\ + :kI=\EQ:kL=\ER:kS=\EY:mb=\EG2:md=\EG0:mh=\EG@:pf=\Ea:po=\E`:\ + :so=\EG<:sr=\EJ:ts=\Ef:vb=\Eb\Ed:ve=\E.2:vi=\E.1:vs=\E.2:\ + :tc=f100: +f110-14|Liberty Freedom 110 14inch:\ + :dc@:tc=f110: +f110-w|Liberty Freedom 110 - 132 cols:\ + :co#132:tc=f110: +f110-14w|Liberty Freedom 110 14in/132 cols:\ + :co#132:\ + :dc@:tc=f110: +# (f200: added <acsc> to suppress tic warnings re :as:/:ae: --esr) +f200|freedom200|Liberty Freedom 200:\ + :am:bs:es:hs:mi:ms:xo:\ + :co#80:it#8:li#24:ws#80:\ + :ac=:ae=\E%%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:\ + :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:cs=\Em0%+ %+ :ct=\E3:\ + :cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=\Er:fs=^M:ho=^^:\ + :im=\Eq:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kC=^^:\ + :kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:\ + :ku=^K:le=^H:mb=\EG2:md=\EG0:mh=\EG@:nd=^L:pf=\Ea:po=\E`:\ + :sf=^J:so=\EG<:sr=\EJ:st=\E1:ts=\Ef:up=^K:vb=\Eo\En:ve=\E.1:\ + :vi=\E.0:vs=\E.1:\ + :tc=adm+sgr: +f200-w|Liberty Freedom 200 - 132 cols:\ + :co#132:tc=f200: +# The f200 has the ability to reprogram the down cursor key. The key is +# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM, +# so powering the terminal off and on will not cause the change to be lost. +f200vi|Liberty Freedom 200 for vi:\ + :kd=^J:vb=\Eb\Ed:tc=f200: +f200vi-w|Liberty Freedom 200 - 132 cols for vi:\ + :co#132:tc=f200vi: + +#### GraphOn (go) +# +# Graphon Corporation +# 544 Division Street +# Campbell, CA 95008 +# Vox: (408)-370-4080 +# Fax: (408)-370-5047 +# Net: troy@graphon.com (Troy Morrison) +# +# +# The go140 and go225 have been discontinued. GraphOn now makes X terminals, +# including one odd hybrid that starts out life on power-up as a character +# terminal, than can be switched to X graphics mode (driven over the serial +# line) by an escape sequence. No info on this beast yet. +# (go140: I added <rmam>/<smam> based on the init string -- esr) +go140|graphon go-140:\ + :bs:\ + :co#80:it#8:li#24:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=10\E[J:ce=\E[K:\ + :cl=10\E[H\E[2J:cm=\E[%i%2;%2H:dc=\E[P:dl=\E[M:ei=\E[4l:\ + :if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:\ + :kh=\E[H:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: +go140w|graphon go-140 in 132 column mode:\ + :am:\ + :co#132:\ + :is=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q:tc=go140: +# Hacked up vt200 termcap to handle GO-225/VT220 +# From: <edm@nwnexus.WA.COM> +# (go225: I added <rmam>/<smam> based on the init string -- esr) +go225|go-225|Graphon 225:\ + :am:bs:mi:xn:\ + :co#80:it#8:li#25:vt#3:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:\ + :ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:r1=\E[\041p\E[?7h\E[2;1;1#w:rc=\E8:\ + :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\ + :so=\E[7m:sr=\EM:ta=^I:te=\E[\041p\E[?7h\E[2;1;1#w:\ + :ti=\E[2;0#w\E[1;25r:ue=\E[24m:up=\E[A:us=\E[4m: + +#### Harris +# +# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine. +# Their terminal group is ancient history now (1995) though the parent +# company is still in business. +# + +# 8675, 8686, and bee from Cyrus Rahman +# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr) +ha8675|harris 8675:\ + :F1=^W:F2=\ER:F3=\EE:F4=\EI:F5=\Ei:F6=\Eg:\ + :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU:k1=^F:k2=^P:k3=^N:\ + :k4=^V:k5=^J:k6=^T:k7=^H:k8=\177:k9=\Ee:k;=\Ed:\ + :tc=bee: +# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation +# in :is: -- esr) +ha8686|harris 8686:\ + :F1=\EW:F2=\002\E{\003:F3=\002\E|\003:F4=\002\E}\003:\ + :F5=\002\E~\003:F6=\002\E\177\003:\ + :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#:\ + :k1=\002\Ep\003:k2=\002\Eq\003:k3=\002\Er\003:\ + :k4=\002\Es\003:k5=\E3:k6=\EI:k7=\ER:k8=\EJ:k9=\E(:k;=\Ej:tc=bee: + +#### Hazeltine +# +# Hazeltine appears to be out of the terminal business as of 1995. These +# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with +# Harris. They have a hazeltine.com domain (but no web page there ) and can +# be reached at: +# +# Hazeltine +# 450 East Pulaski Road +# Greenlawn, New York 11740 +# +# As late as 1993, manuals for the terminal product line could still be +# purchased from: +# +# TRW Customer Service Division +# 15 Law Drive +# P.O. Box 2076 +# Fairfield, NJ 07007-2078 +# +# They're now (1998) a subsidiary of General Electric, operating under the +# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page +# at <http://www.gec.com/cpd/1ncpd.htm#1.55>. +# + +# Since :nd: is blank, when you want to erase something you +# are out of luck. You will have to do ^L's a lot to +# redraw the screen. h1000 is untested. It doesn't work in +# vi - this terminal is too dumb for even vi. (The code is +# there but it isn't debugged for this case.) +hz1000|hazeltine 1000:\ + :bs:\ + :co#80:li#12:\ + :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:le=^H:nd= :sf=^J: +# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981 +hz1420|hazeltine 1420:\ + :am:bs:\ + :co#80:li#24:\ + :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%+ :\ + :cr=^M:dl=\E^S:do=^J:le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:ta=^N:\ + :up=\E^L: +# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents +# freakout with out-of-range args and tn3270. No hz since it needs to +# receive tildes. +hz1500|hazeltine 1500:\ + :am:bs:hz:\ + :co#80:li#24:\ + :al=~\032:bl=^G:cd=~\030:ce=~^O:cl=~^\:\ + :cm=~\021%r%>^^ %+`%+`:cr=^M:dl=~\023:do=~^K:ho=~^R:kd=^J:\ + :kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:\ + :up=~^L: +# h1510 assumed to be in sane escape mode. Else use h1500. +# (h1510: early versions of this entry apparently had ":se=\E^_:, +# :so=\E^Y:, but these caps were commented out in 8.3; also, +# removed incorrect and overridden ":do=^J:" -- esr) +hz1510|hazeltine 1510:\ + :am:bs:\ + :co#80:li#24:\ + :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%.:\ + :cr=^M:dl=\E^S:do=\E^K:le=^H:nd=^P:sf=^J:up=\E^L: +# Hazeltine 1520 +# The following switch settings are assumed for normal operation: +# FULL CR U/L_CASE ESCAPE +# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON +# Other switches may be set for operator convenience or communication +# requirements. +hz1520|Hazeltine 1520:\ + :am:bs:bw:ms:\ + :co#80:li#24:\ + :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%.:\ + :cr=^M:dl=\E^S:do=^J:ho=\E^R:kA=\E^Z:kC=\E^\:kE=\E^O:\ + :kL=\E^S:kS=\E^X:kb=^H:kd=\E^K:kh=\E^R:kl=^H:kr=^P:ku=\E^L:\ + :le=^H:md=\E^_:me=\E^Y:nd=^P:r1=\E$\E\005\E?\E\031:\ + :se=\E^Y:sf=^J:so=\E^_:up=\E^L: +# This version works with the escape switch off +# (h1520: removed incorrect and overridden ":do=^J:" -- esr) +hz1520-noesc|hazeltine 1520:\ + :am:hz:\ + :co#80:li#24:\ + :al=~^Z:bl=^G:cd=~^X:ce=~^O:cl=~^\:cm=~\021%r%.%.:cr=^M:\ + :dl=~^S:do=~^K:ho=~^R:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:up=~^L: +# Note: the h1552 appears to be the first Hazeltine terminal which +# is not braindamaged. It has tildes and backprimes and everything! +# Be sure the auto lf/cr switch is set to cr. +hz1552|hazeltine 1552:\ + :bs:\ + :al=\EE:dl=\EO:do=^J:k1=\EP:k2=\EQ:k3=\ER:l1=blue:l2=red:\ + :l3=green:\ + :tc=vt52: +hz1552-rv|hazeltine 1552 reverse video:\ + :do=^J:se=\ET:so=\ES:tc=hz1552: +# Note: h2000 won't work well because of a clash between upper case and ~'s. +hz2000|hazeltine 2000:\ + :am:bs:nc:\ + :co#74:li#27:\ + :al=~\032:bl=^G:cl=~\034:cm=~\021%r%.%.:dl=~\023:do=^J:\ + :ho=~^R:le=^H:pc=\177:sf=^J: +# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote: +# I tested this termcap entry for the Hazeltine Esprit with vi. It seems +# to work ok. There is one problem though if one types a lot of garbage +# characters very fast vi seems not able to keep up and hangs while trying +# to insert. That's in insert mode while trying to insert in the middle of +# a line. It might be because the Esprit doesn't have insert char and delete +# char as a built in function. Vi has to delete to end of line and then +# redraw the rest of the line. +esprit|Hazeltine Esprit I:\ + :am:bs:bw:\ + :co#80:li#24:\ + :al=\E^Z:bl=^G:bt=\E^T:cd=\E^W:ce=\E^O:cl=\E^\:\ + :cm=\E\021%r%.%.:cr=^M:dl=\E^S:do=\E^K:ho=\E^R:is=\E?:\ + :k0=^B0^J:k1=^B1^J:k2=^B2^J:k3=^B3^J:k4=^B4^J:k5=^B5^J:\ + :k6=^B6^J:k7=^B7^J:k8=^B8^J:k9=^B9^J:kb=^H:kd=\E^K:ke=\E>:\ + :kh=\E^R:kl=^H:kr=^P:ks=\E<:ku=\E^L:l0=0:l1=1:l2=2:l3=3:l4=4:\ + :l5=5:l6=6:l7=7:l8=8:l9=9:le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:\ + :up=\E^L: +esprit-am|hazeltine esprit auto-margin:\ + :am:tc=esprit: +# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL +# Vi it seems always wants to send a control J for "do" and it turned out +# that the terminal would work somewhat if the auto LF/CR was turned off. +# (hmod1: removed :dn=~^K: -- esr) +hmod1|Hazeltine Modular 1:\ + :am:bs:hz:\ + :co#80:li#24:\ + :al=~^Z:bl=^G:bt=~^T:cl=~^\:cm=~\021%r%.%.:cr=^M:dl=~^S:\ + :do=~^K:ho=~^R:kd=~^K:kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:me=~^Y:\ + :nd=^P:rc=~^Q:sc=~^E:se=~^Y:sf=^J:so=~^_:up=~^L: +# +# Hazeltine Executive 80 Model 30 (1554?) +# from Will Martin <control@ALMSA-1.ARPA> via BRL +# Like VT100, except for different "am" behavior. +hazel|exec80|h80|he80|Hazeltine Executive 80:\ + :am:bs:pt:\ + :co#80:it#8:li#24:vt#3:\ + :bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\ + :cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:do=^J:ho=\E[H:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\ + :nd=2\E[C:nl=^J:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:se=2\E[m:\ + :so=2\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m: + +#### Hewlett-Packard (hp) +# +# Hewlett-Packard +# 8000 Foothills Blvd +# Roseville, CA 95747 +# Vox: 1-(916)-785-4363 (Technical response line for VDTs) +# 1-(800)-633-3600 (General customer support) +# +# +# As of March 1998, HP no longer has any terminals in production. +# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being +# supported (they still have parts). So are the 2392a and 2394a. +# See the WORKSTATION CONSOLES section for the 700s. +# + +# Generic HP terminal - this should (hopefully) work on any HP terminal. +hpgeneric|hp|hewlett-packard generic terminal:\ + :am:bs:da:db:mi:pt:xs:\ + :co#80:li#24:lm#0:vt#6:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\ + :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:\ + :do=^J:ei=\ER:im=\EQ:kB=\Ei:kb=^H:le=^H:me=\E&d@:nd=\EC:\ + :se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\ + :us=\E&dD: + +hp110|hewlett-packard model 110 portable:\ + :li#16:tc=hpgeneric: + +hp+pfk+cr|hp function keys with CR:\ + :k1=\Ep\r:k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:\ + :k7=\Ev\r:k8=\Ew\r: + +hp+pfk-cr|hp function keys w/o CR:\ + :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew: + +# The hp2621s use the same keys for the arrows and function keys, +# but not separate escape sequences. These definitions allow the +# user to use those keys as arrow keys rather than as function +# keys. +hp+pfk+arrows|hp alternate arrow definitions:\ + :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:kF=\Er\r:kH=\Eq\r:kR=\Es\r:\ + :kd=\Ew\r:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:ku=\Et\r: + +hp+arrows|hp arrow definitions:\ + :kF=\ES:kH=\EF:kR=\ET:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:ku=\EA: + +# Generic stuff from the HP 262x series +# +hp262x|HP 262x terminals:\ + :xs:\ + :cd=\EJ:dc=\EP:ip=:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:\ + :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:mb=\E&dA:me=\E&d@:mk=\E&dS:\ + :mr=\E&dB:\ + :..sa=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c:\ + :se=\E&d@:sf=\ES:so=\E&dB:ta=\011:ue=\E&d@:us=\E&dD: + +# Note: no :ho: on HPs since that homes to top of memory, not screen. +# Due to severe 2621 braindamage, the only way to get the arrow keys to +# transmit anything at all is to turn on the function key labels +# with :ks:, and even then the user has to hold down shift! +# The default 2621 turns off the labels except when it has to to +# enable the function keys. If your installation prefers labels +# on all the time, or off all the time (at the "expense" of the +# function keys), use 2621-nl or 2621-wl. +# +# Note: there are newer ROMs for 2621's that allow you to set +# strap A so the regular arrow keys xmit \EA, etc, as with the +# 2645. However, even with this strap set, the terminal stops +# xmitting if you reset it, until you unset and reset the strap! +# Since there is no way to set/unset the strap with an escape +# sequence, we don't use it in the default. +# If you like, you can use 2621-ba (brain-damaged arrow keys). +hp2621-ba|2621 w/new rom and strap A set:\ + :ke@:ks@:tc=hp+arrows:\ + :tc=hp2621: + +# hp2621 with function labels. Most of the time they are off, +# but inside vi, the function key labels appear. You have to +# hold down shift to get them to xmit. +hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels:\ + :is=\E&jA\r:ke=\E&jA:\ + :tc=hp2621-fl: +hp2621-fl|hp 2621:\ + :xo:xs@:\ + :pb#19200:\ + :bt=\Ei:cm=\E&a%r%dc%dY:dc=\EP:ip=:is=\E&j@\r:ke=\E&j@:\ + :ks=\E&jB:me=\E&d@:se=\E&d@:so=\E&dD:ta=\011:ue=\E&d@:\ + :us=\E&dD:\ + :tc=hp+pfk+cr:tc=hpgeneric: + +# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p +hp2621p|hp 2621 with printer:\ + :pf=\E&p13C:po=\E&p11C:tc=hp2621: + +hp2621p-a|hp2621p with fn as arrows:\ + :tc=hp+pfk+arrows:tc=hp2621p: + +# hp2621 with k45 keyboard +hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard:\ + :kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:\ + :ku=\EA:\ + :tc=hp2621: + +# 2621 using all 48 lines of memory, only 24 visible at any time. +hp2621-48|48 line 2621:\ + :li#48:\ + :cm=\E&a%r%dc%dR:cv=\E&a%dR:ho=\EH:tc=hp2621: + +# 2621 with no labels ever. Also prevents vi delays on escape. +hp2621-nl|hp 2621 with no labels:\ + :kd@:ke@:kh@:kl@:kr@:ks@:ku@:tc=hp2621-fl: + +# Needed for UCB ARPAVAX console, since lsi-11 expands tabs +# (wrong). +# +hp2621-nt|hp 2621 w/no tabs:\ + :ta@:tc=hp2621: + +# Hp 2624 B with 4 or 10 pages of memory. +# +# Some assumptions are made with this entry. These settings are +# NOT set up by the initialization strings. +# +# Port Configuration +# RecvPace=Xon/Xoff +# XmitPace=Xon/Xoff +# StripNulDel=Yes +# +# Terminal Configuration +# InhHndShk=Yes +# InhDC2=Yes +# XmitFnctn(A)=No +# InhEolWrp=No +# +# Note: the 2624 DOES have a true :ho:, believe it or not! +# +# The 2624 has an "error line" to which messages can be sent. +# This is CLOSE to what is expected for a "status line". However, +# after a message is sent to the "error line", the next carriage +# return is EATEN and the "error line" is turned back off again! +# So I guess we can't define :hs:, :es:, :ws:, :ds:, :fs:, :ts:. +# +# This entry supports emacs (and any other program that uses raw +# mode) at 4800 baud and less. I couldn't get the padding right +# for 9600. +# +# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr) +hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B:\ + :da:db:\ + :lm#96:\ + :vb=\E&w13F\E&w12F\E&w13F\E&w12F:tc=hp+labels:tc=scrhp: + +# This hp2626 entry does not use any of the fancy windowing stuff +# of the 2626. +# +# Indeed, terminfo does not yet handle such stuff. Since changing +# any window clears memory, it is probably not possible to use +# this for screen opt. +# +# ed is incredibly slow most of the time - I am guessing at the +# exact padding. Since the terminal uses xoff/xon this is intended +# only for cost computation, so that the terminal will prefer el +# or even dl1 which is probably faster! +# +# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only +# extra slow on the last line of the window. +# +# The padding probably should be changed. +# +hp2626|hp2626a|hp2626p|hp 2626:\ + :da:db:\ + :lm#0:pb#19200:\ + :SF=\E&r%dD:SR=\E&r%dU:cd=\ED\EJ\EC:ip=:is=\E&j@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp: + +# This entry is for sysline. It allocates a 23 line window with +# a 115 line workspace for regular use, and a 1 line window for +# the status line. +# +# This assumes port 2 is being used. +# Turn off horizontal line, Create ws #1 with 115 lines, +# Create ws #2 with 1 line, Create window #1 lines 1-23, +# Create window #2 lines 24-24, Attach cursor to workspace #1. +# Note that this clears the tabs so it must be done by tset before +# it sets the tabs. +# +hp2626-s|hp 2626 using only 23 lines:\ + :es:hs:\ + :li#23:\ + :fs=\E&d@\E&w7f2p1I\E&w4f1I:\ + :i1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r:\ + :ts=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC:\ + :tc=hp2626: +# Force terminal back to 24 lines after being 23. +hp2626-ns|hp 2626 using all 24 lines:\ + :i1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r:tc=hp2626: +# Various entries useful for small windows on 2626. +hp2626-12|hewlett-packard 2626 12 lines:\ + :li#12:tc=hp2626: +hp2626-12x40|hewlett-packard 2626 12 lines 40 columns:\ + :co#40:li#12:tc=hp2626: +hp2626-x40|hewlett-packard 2626 40 columns:\ + :co#40:tc=hp2626: +hp2626-12-s|hewlett-packard 2626 11 lines plus status:\ + :li#11:tc=hp2626-s: + +# +# hp2627 color tubes from University of Wisconsin +# +hp2627a-rev|hp 2627 with reverse video colors:\ + :cr=^M:do=^J:\ + :is=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r:\ + :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:ue=\E&v0S\E&d@:\ + :us=\E&dD\E&v1S:\ + :tc=hp2621-nl: +hp2627a|hp 2627 color terminal with no labels:\ + :cr=^M:do=^J:\ + :is=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r:\ + :kb=^H:kd=^J:kl=^H:nw=^M^J:se=\E&v0S:sf=^J:so=\E&v2S:ta=^I:\ + :ue=\E&v0S\E&d@:us=\E&dD\E&v1S:\ + :tc=hp2621-nl: +hp2627c|hp 2627 color (cyan) terminal with no labels:\ + :cr=^M:do=^J:\ + :is=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r:\ + :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:\ + :tc=hp2627a: + +# hp2640a doesn't have the Y cursor addressing feature, and C is +# memory relative instead of screen relative, as we need. +# +hp2640a|hp 2640a:\ + :cm@:ke@:ks@:tc=hp2645: + +hp2640b|hp2644a|hp 264x series:\ + :ke@:ks@:tc=hp2645: + +# (hp2641a: removed unknown :gu: -- esr) +hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry:\ + :am:da:db:mi:xs:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%2C:cl=\EH\EJ:\ + :cm=\E&a%r%2c%2Y:cr=^M:cv=\E&a%2Y:dc=\EP:dl=\EM:do=^J:\ + :ei=\ER:if=/usr/share/tabset/std:im=\EQ:is=500\EE:kb=^H:\ + :kd=^J:kl=^H:le=^H:nd=\EC:nw=^M^J:se=\E&d@:sf=^J:so=\E&dB:\ + :ta=^I:up=\EA: + +# This terminal should be used at 4800 baud or less. It needs padding for +# plain characters at 9600, I guessed at an appropriate cr delay. It really +# wants ^E/^F handshaking, but that doesn't work well even if you write +# software to support it. +hp2645|hp45|HP 2645 series:\ + :pb#9600:\ + :cr=\r:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:kM=\ER:\ + :kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:mb=\E&dA:me=\E&d@:\ + :mh=\E&dH:mr=\E&dB:\ + :..sa=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c:\ + :us=\E&dD:\ + :tc=hpgeneric: +# You should use this terminal at 4800 baud or less. +hp2648|hp2648a|HP 2648a graphics terminal:\ + :cl=\EH\EJ:cm=\E&a%r%dc%dY:dc=\EP:ip=:tc=hp2645: + +# The HP 150 terminal is a fairly vanilla HP terminal, with the +# clreol standout problem. It also has graphics capabilities and +# a touch screen, which we don't describe here. +hp150|hewlett packard Model 150:\ + :bs:tc=hp2622: + +# HP 2382a terminals, "the little ones." They don't have any +# alternate character set support and sending out ^N/^O will +# leave the screen blank. +hp2382a|hp2382|hewlett packard 2382a:\ + :da:db:\ + :lh#1:lm#48:\ + :ac@:ae@:as@:me=\E&d@:\ + :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s:\ + :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c:\ + :tc=hp+labels:tc=scrhp: + +hp2621-a|hp2621a-a|hp2621 with fn as arrows:\ + :tc=hp+pfk+arrows:tc=hp2621-fl: + +# newer hewlett packard terminals + +newhpkeyboard|generic entry for HP extended keyboard:\ + :kA=\EL:kB=\Ei:kC=\EJ:kD=\EP:kE=\EK:kF=\ET:kH=\EF:kI=\EQ:\ + :kL=\EM:kM=\ER:kN=\EU:kP=\EV:kR=\ES:kS=\EJ:kb=^H:kd=\EB:\ + :ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\ + :tc=hp+pfk-cr: + +newhp|generic entry for new hewlett packard terminals:\ + :am:bw:mi:xo:xs:\ + :co#80:li#24:pb#4800:\ + :ac=2[3@4>5I9(\072'JSKWLQMAO#P$Q;R\041S"T1U2V4W3X\072Y+Z*dHjGkTlRmFn/q\054t5u6v8w7x.:\ + :ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:cr=^M:ct=\E3:\ + :dc=\EP:dl=\EM:do=^J:ei=\ER:i1=\E&jB:im=\EQ:ip=:le=^H:\ + :mb=\E&dA:md=\E&dF:me=\E&d@\017:mh=\E&dH:mk=\E&dS:\ + :mr=\E&dB:nd=\EC:nw=^M^J:\ + :..pk=\E&f0a%p1%dk0d%p2%l%dL%p2%s:\ + :..pl=\E&f1a%p1%dk0d%p2%l%dL%p2%s:\ + :..px=\E&f2a%p1%dk0d%p2%l%dL%p2%s:r1=\Eg:\ + :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;:\ + :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=\011:ue=\E&d@:\ + :up=\EA:us=\E&dD:\ + :tc=newhpkeyboard: + +memhp|memory relative addressing for new HP ttys:\ + :vt#6:\ + :CM=\E&a%p1%dr%p2%dC:DO=\E&a+%dR:LE=\E&a-%dC:\ + :RI=\E&a+%dC:UP=\E&a-%dR:ch=\E&a%dC:cl=\EH\EJ:\ + :cm=\E&a%dr%dC:cv=\E&a%dR:ho=\EH:ll=\E&a23R\r:tc=newhp: + +scrhp|screen relative addressing for new HP ttys:\ + :CM=\E&a%p1%dr%p2%dC:DO=\E&a+%dR:LE=\E&a-%dC:\ + :RI=\E&a+%dC:UP=\E&a-%dR:ch=\E&a%dC:cl=\E&a0c0Y\EJ:\ + :cm=\E&a%dy%dC:cv=\E&a%dY:ho=\E&a0y0C:ll=\E&a0y0C\EA:\ + :tc=newhp: + +# (hp+labels: added label values from a BRL termcap -- esr) +hp+labels|"standard" label info for new HP ttys:\ + :Nl#8:lh#2:lw#8:\ + :LF=\E&j@:LO=\E&jB:l0=f1:l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:\ + :l7=f8:\ + :..pn=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s: + +hp+printer|"standard" printer info for HP ttys:\ + :ff=\E&p4u0C:pf=\E&p13C:po=\E&p11C:ps=\EH\E&p4dF: + + +# The new hp2621b is kind of a cross between the old 2621 and the +# new 262x series of machines. It has dip-switched options. +# The firmware has a bug in it such that if you give it a null +# length label, the following character is eaten! +hp2621b|hp 2621b with old style keyboard:\ + :Nl#8:lh#1:lm#48:lw#8:\ + :LO=\E&jB:kF=\ET:kH=\EF:kR=\ES:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:\ + :ku=\EA:\ + :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r:tc=hp2621: + +hp2621b-p|hp 2621b with printer:\ + :tc=hp+printer:tc=hp2621b: + +# hp2621b - new 2621b with new extended keyboard +# these are closer to the new 26xx series than the other 2621b +hp2621b-kx|hp 2621b with extended keyboard:\ + :tc=newhpkeyboard:tc=hp2621b: + +hp2621b-kx-p|hp 2621b with new keyboard & printer:\ + :tc=hp+printer:tc=hp2621b-kx: + +# Some assumptions are made in the following entries. +# These settings are NOT set up by the initialization strings. +# +# Port Configuration +# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes +# +# Terminal Configuration +# InhHndShk(G)=Yes InhDC2(H)=Yes +# XmitFnctn(A)=No InhEolWrp=No +# +# +# Hp 2622a & hp2623a display and graphics terminals +# +hp2622|hp2622a|hp 2622:\ + :da:db:\ + :lm#0:pb#19200:\ + :is=\E&dj@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp: + +# The 2623 is a 2622 with extra graphics hardware. +hp2623|hp2623a|hp 2623:\ + :tc=hp2622: + +hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer:\ + :tc=hp+printer:tc=hp2624: + +# The hewlett packard B can have an optional extra 6 pages of memory. +hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory:\ + :lm#240:tc=hp2624: + +hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer:\ + :lm#240:tc=hp2624b-p: + +# Color manipulations for HP terminals +hp+color|hp with colors:\ + :cc:\ + :Co#16:NC#17:pa#7:\ + :..Ip=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI:\ + :oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I:\ + :op=\E&v0S:sp=\E&v%dS: + +# :is: sets the screen to be 80 columns wide +hp2397a|hp2397|hewlett packard 2397A color terminal:\ + :is=\E&w6f80X:\ + :tc=memhp:tc=hp+labels:tc=hp+color: + +# +# (hp2392: copied :ei: here from hpex -- esr) +hp2392|239x series:\ + :co#80:\ + :bt=\Ei:cm=\E&a%dy%dC:cv=\E&a%dY:ei=\ER:im=\EQ:k1=\Ep\r:\ + :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:\ + :k8=\Ew\r:kF=\EU:kN=\Eu:kP=\Ev:kR=\EV:kh=\Eh:ue=\E&d@:\ + :us=\E&dD:\ + :tc=hpsub: + +hpsub|hp terminals -- capability subset:\ + :am:da:db:mi:xo:xs:\ + :li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:cr=^M:\ + :dc=\EP:dl=\EM:do=\EB:if=/usr/share/tabset/stdcrt:\ + :is=\E&s1A\E<\E&k0\:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:\ + :kr=\EC:ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:se=\E&d@:\ + :sf=^J:so=\E&dB:ta=^I:up=\EA: + +# hpex: +# May be used for most 24 x 80 hp terminals, +# but has no padding added, so may allow runover in some terminals at high +# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and +# hp98x5 terminal emulators or hp98x6 consoles. +# Adds xy-cursor addressing, vertical cursor addressing, home, +# last line, and underline capabilities. +# +# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:", +# moved :ei: here from hpsub -- esr) +hpex|hp extended capabilites:\ + :cm=\E&a%dy%dC:cr=^M:cv=\E&a%dY:do=^J:ei=\ER:im=\EQ:kb=^H:\ + :kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:ue=\E&d@:us=\E&dD:\ + :tc=hpsub: + +# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996 +hp2|hpex2|hewlett-packard extended capabilities newer version:\ + :am:da:db:mi:xs:\ + :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:sg#0:\ + :LF=\E&j@:LO=\E&jB:al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:\ + :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\ + :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\ + :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\ + :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\ + :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:me=\E&d@:\ + :ml=\El:mu=\Em:nd=\EC:..pk=\E&f%p1%dk%p2%l%dL%p2%s:\ + :..pl=\E&f1a%p1%dk%p2%l%dL%p2%s:\ + :..pn=\E&f%p1%dk%p2%l%dd0L%p2%s:\ + :..px=\E&f2a%p1%dk%p2%l%dL%p2%s:\ + :..sa=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;:\ + :se=\E&d@:sf=^J:so=\E&dB:st=\E1:ta=^I:ue=\E&d@:up=\EA:\ + :us=\E&dD: + +# HP 236 console +# From: <ddavis@ic.berkeley.edu> +hp236|hp236 internal terminal emulator:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EG:ce=\EK:cl=\EF:cm=\EE%+ %+ :dc=\EJ:dl=\EH:ei=:ic=\EI:\ + :im=:le=^H:me=\ECI:se=\ECI:so=\EBI:up=^K:ve=\EDE:vs=\EDB: + +# This works on a hp300 console running Utah 4.3 BSD +# From: Craig Leres <leres@okeeffe.berkeley.edu> +hp300h|HP Catseye console:\ + :am:bs:da:db:mi:xs:\ + :co#128:li#51:lm#0:sg#0:\ + :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\ + :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\ + :dc=\EP:dl=\EM:do=\EB:ei=\ER:if=/usr/share/tabset/stdcrt:\ + :im=\EQ:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\ + :ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:se=\E&d@:sf=^J:\ + :so=\E&dB:ta=^I:ue=\E&d@:up=\EA:us=\E&dD: +# From: Greg Couch <gregc@ernie.berkeley.edu> +hp9837|hp98720|hp98721|HP 9000/300 workstations:\ + :am:bs:da:db:mi:xs:\ + :co#128:it#8:li#46:lm#0:\ + :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\ + :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:ct=\E3:cv=\E&a%dY:dc=\EP:\ + :dl=\EM:do=\EB:ei=\ER:im=\EQ:is=\E&v0m1b0i&j@:kA=\EL:\ + :kD=\EP:kE=\EK:kI=\EQ:kL=\EM:kN=\EU:kP=\EV:kS=\EJ:kb=^H:\ + :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\ + :le=^H:me=\E&d@:nd=\EC:se=\E&v0S:sf=^J:so=\E&v5S:st=\E1:\ + :ta=^I:ue=\E&d@:up=\EA:us=\E&dD: +# HP 9845 desktop computer from BRL +# (hp9845: removed unknown capability :gu: -- esr) +hp9845|HP 9845:\ + :am:bs:da:db:eo:mi:xs:\ + :co#80:li#21:\ + :al=\EL:bc=\ED:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E&a%r%2c%2Y:\ + :dc=\EP:dl=\EM:ei=\ER:if=/usr/share/tabset/std:im=\EQ:\ + :nd=\EC:se=\E&d@:so=\E&dB:up=\EA: +# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90 +# (hp98550: replaced /usr/share/tabset/9837 with std because :it#8:,:st=\E1:; +# added empty <acsc> to avoid warnings re :as:/:ae: --esr) +hp98550|hp98550a|HP 9000 Series 300 color console:\ + :am:bs:da:db:mi:xs:\ + :co#128:it#8:li#49:lm#0:\ + :ac=:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:\ + :ch=\E&a%dC:cl=\EH\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:\ + :cv=\E&a%dY:dc=\EP:dl=\EM:do=^J:ei=\ER:\ + :if=/usr/share/tabset/std:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\ + :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\ + :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\ + :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\ + :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:\ + :md=\E&dJ:me=\E&d@:mh=\E&dH:mk=\E&ds:mr=\E&dJ:nd=\EC:\ + :se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\ + :us=\E&dD:ve=\E*dQ:vi=\E*dR: + +bobcat|sbobcat|HP 9000 model 300 console:\ + :am:da:db:mi:xs:\ + :co#128:it#8:li#47:sg#0:\ + :al=10*\EL:bt=\Ei:cd=\EJ:ce=\EK:ch=6\E&a%dC:cl=\EH\EJ:\ + :cm=6\E&a%dy%dC:cr=^M:cv=6\E&a%dY:dc=\EP:dl=10*\EM:do=\EB:\ + :ei=\ER:im=\EQ:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\ + :ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:nw=^M^J:se=\E&d@:\ + :sf=^J:so=\E&dB:ta=^I:ue=\E&d@:up=\EA:us=\E&dD: +gator-t|HP 9000 model 237 emulating extra-tall AAA:\ + :li#94:tc=gator: +gator|HP 9000 model 237 emulating AAA:\ + :bw:km:mi:ul:\ + :co#128:it#8:li#47:\ + :AL=1*\E[%dL:DC=4\E[%dP:DL=1*\E[%dM:IC=4\E[%d@:al=\E[L:\ + :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:\ + :ic=\E[@:im=:kb=^H:kd=^J:kl=^H:le=^H:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nw=^M^J:rp=1*%.\E[%db:se=\E[m:so=\E[7m:ta=^I:\ + :ue=\E[m:up=\EM:us=\E[4m: +gator-52|HP 9000 model 237 emulating VT52:\ + :co#128:li#47:tc=vt52: +gator-52t|HP 9000 model 237 emulating extra-tall VT52:\ + :li#94:tc=gator-52: + +#### Honeywell-Bull +# +# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93 +# + +# Honeywell Bull terminal. Its cursor and function keys send single +# control characters and it has standout/underline glitch. Most programs +# do not like these features/bugs. Visual bell is realized by flashing the +# "keyboard locked" LED. +dku7003-dumb|Honeywell Bull DKU 7003 dumb mode:\ + :co#80:li#25:\ + :cd=^_:ce=\E[K:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:do=^K:ho=^]:\ + :kb=^H:kd=^K:kh=^]:kl=^Y:kr=^X:ku=^Z:le=^Y:nd=^X:nw=^M^J:\ + :sf=^J:ta=^I:up=^Z:vb=\E[2h\E[2l: +dku7003|Honeywell Bull DKU 7003 all features described:\ + :ms:\ + :sg#1:\ + :mb=\E[5m:md=\E[7m:me=\E[m:mh=\E[2m:mr=\E[7m:se=\E[m:\ + :so=\E[7m:ue=\E[m:us=\E[4m:\ + :tc=dku7003-dumb: + +#### IBM +# + +ibm327x|line mode IBM 3270 style:\ + :gn:\ + :ce=^M:cl=^M^J:ho=^M: + +# Beware! The 3101 entry IBM shipped with AIX 3 is *wrong*. Losers... +# From: J.B. Nicholson-Owens <jeffo@uiuc.edu> 8 Mar 94 +# (ibm3101: :if=/usr/share/tabset/ibm3101: removed, no such file -- esr) +# Some versions of this that have :ct=\EH:; they may ort may not be broken. +ibm3101|i3101|IBM 3101-10:\ + :am:bs:xo:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EY%+ %+ :cr=^M:ct=\E1:do=^J:\ + :ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ + :nw=^M^J:sf=^J:st=\E0:ta=^I:up=\EA: +ibm3151|IBM 3151 display:\ + :ae=\E>B:as=\E>A:is=\E S:me=\E4@\E>B:r2=\E S:s0=\E>B:\ + :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;:\ + :te=\E>B:ti=\E>B:\ + :tc=ibm3163: +# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992 +# I've commented out or translated some IBM extensions. +# <kend>, :kN:, :kP:, <mc4>, <mc5> merged in from AIX 3.2.5 +ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display:\ + :am:bs:mi:ms:\ + :co#80:it#8:li#24:\ + :@7=\E2:F1=\Ek\r:F2=\El\r:F3=\E\041a\r:F4=\E\041b\r:\ + :F5=\E\041c\r:F6=\E\041d\r:F7=\E\041e\r:F8=\E\041f\r:\ + :F9=\E\041g\r:FA=\E\041h\r:FB=\E\041i\r:FC=\E\041j\r:\ + :FD=\E\041k\r:FE=\E\041l\r:\ + :ac=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370:\ + :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dc=\EQ:\ + :dl=\EO:do=\EB:ho=\EH:k1=\Ea\r:k2=\Eb\r:k3=\Ec\r:k4=\Ed\r:\ + :k5=\Ee\r:k6=\Ef\r:k7=\Eg\r:k8=\Eh\r:k9=\Ei\r:k;=\Ej\r:\ + :kA=\EN:kB=\E2:kC=\EL\r:kD=\EQ:kE=\EI:kI=\EP \010:kL=\EO:\ + :kN=\EI:kP=\EL:kS=\EJ:kT=\E0:ka=\E 1:kb=^H:kd=\EB:kh=\EH:\ + :kl=\ED:kr=\EC:kt=\E1:ku=\EA:le=\ED:mb=\E4D:md=\E4H:\ + :me=\E4@\E<@:mk=\E4P:mr=\E4A:nd=\EC:pf=^P^T:po=^P^R:\ + :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;:\ + :se=\E4@:sf=^J:so=\E4A:te=\E>A:ti=\E>A:ue=\E4@:up=\EA:\ + :us=\E4B: + +ibm3161-C|IBM 3161-C NLS terminal using cartridge:\ + :s0=\E>B:s1=\E>A:te=\E>B:ti=\E>B:\ + :tc=ibm3161: +ibm3162|IBM 3162 display:\ + :al=\EN:mb=\E4$a:md=\E4(a:me=\E4@:mk=\E40a:mr=\E4\041a:\ + :se=\E4>b:so=\E4\041a:ue=\E4=b:us=\E4"a:\ + :tc=ibm3161-C: + +# How the 3164 sgr string works: +# %{32} # push space for no special video characteristics +# %?%p2%t%{1}%|%; # if p2 set, then OR the 1 bit for reverse +# %?%p3%t%{4}%|%; # if p3 set, then OR the 4 bit for blink +# %?%p4%t%{2}%|%; # if p4 set, then OR the 2 bit for underline +# %c # pop Pa1 +# %{39}%p1%- # calculate 32 + (7 - p1) for foreground +# %c # pop Pa2 +# %{64} # use only black background for now +# %c # pop Pa3 +# (ibm3164: merged :ms:,<colors>,<pairs>,<setb>,<setf> from AIX 3.2.5 -- esr) +ibm3164|i3164|IBM 3164:\ + :ms:\ + :Co#8:pa#64:\ + :Sb=\E4 %+@:..Sf=\E4%?%p1%t %p1%{32}%+%c%e\041'%;@:\ + :mb=\E4D:md=\E4H:me=\E4@:\ + :..sa=\E4%{32}%?%p2%t%{1}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%c%{39}%p1%-%c%{64}%c:tc=ibm3163: + +# From: <pryor@math.berkeley.edu> +# (ibm5081: merged acsc, s0ds, s1ds, sgr0 into ibm5081 from AIX 3.2.5. -- esr) +ibm5081|ibmmpel|IBM 5081 1024x1024 256/4096 Megapel color display:\ + :es:hs:\ + :li#33:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ds=\Ej\EYA \EI\Ek:fs=\Ek:\ + :me=\E[0m\E(B:s0=\E(B:s1=\E(0:ts=\Ej\EYA%+ \Eo:\ + :tc=ibmmono: +ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display:\ + :es:hs:\ + :li#33:\ + :ds=\Ej\EYA \EI\Ek:fs=\Ek:ts=\Ej\EYA%+ \Eo:tc=ibmega-c: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display:\ + :am:bw:ms:xo:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:is=\Ec:\ + :k0=\E[010q:k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:\ + :k5=\E[005q:k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:\ + :kD=\E[P:kI=\E[139q:kN=\E[154q:kP=\E[150q:kb=^H:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[0m:mr=\E[7m:nd=\E[C:rc=\E[u:sc=\E[s:se=\E[m:sf=\E[S:\ + :so=\E[7m:sr=\E[T:ue=\E[m:up=\E[A:us=\E[4m: +ibm5154|IBM 5154 Color display:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:md@:tc=ibm5151: +ibm6153|IBM 6153 Black & White display:\ + :mb@:md=\E[12m:me=\E[0;10m:s0=\E[10m:s1=\E[11m:s2=\E[12m:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m:\ + :tc=ibm5151: +ibm6153-90|IBM 6153 Black & White display:\ + :co#90:li#36:\ + :mb@:md@:tc=ibm5151: +ibm6153-40|IBM 6153 Black & White display:\ + :co#40:li#12:tc=ibm6153-90: +ibm6154|IBM 6154 Color displays:\ + :mb@:md=\E[12m:me=\E[0;10m:s0=\E[10m:s1=\E[11m:s2=\E[12m:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m:\ + :tc=ibm5154: +ibm6155|IBM 6155 Black & White display:\ + :mb@:md@:tc=ibm5151: +ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display:\ + :tc=hft-c: +ibm8512|ibm8513|IBM color VGA Terminal:\ + :am:mi:ms:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:dl=\E[M:dm=\E[4h:\ + :do=^J:ec=\E[%dX:ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\Eb\E[m\017\E[?7h:k0=\E[010q:k1=\E[001q:k2=\E[002q:\ + :k3=\E[003q:k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:\ + :k8=\E[008q:k9=\E[009q:kd=\E[B:kh=\E[H:ku=\E[A:le=\E[D:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r1=\Eb\E[m\017\E[?7h\E[H\E[J:rc=\E[u:sc=\E[s:se=\E[m:\ + :so=\E[7m:te=\E[20h:ti=\E[20;4l\E[?7h\Eb:ue=\E[m:up=\E[A:\ + :us=\E[4m:\ + :tc=ibm8503: +ibm8514|IBM 8514 color display:\ + :es:hs:\ + :li#41:\ + :cr=^M:do=^J:ds=\Ej\EYI \EI\Ek:fs=\Ek:kb=^H:kd=^J:kl=^H:\ + :nw=^M^J:sf=^J:ta=^I:ts=\Ej\EYI%+ \Eo:\ + :tc=ibmega: +ibm8514-c|IBM 8514 color display with standout and underline:\ + :es:hs:\ + :li#41:\ + :cr=^M:do=^J:ds=\Ej\EYI \EI\Ek:fs=\Ek:kb=^H:kd=^J:kl=^H:\ + :nw=^M^J:sf=^J:ta=^I:ts=\Ej\EYI%+ \Eo:\ + :tc=ibmega-c: + +ibmaed|IBM Experimental display:\ + :am:bs:eo:ms:\ + :co#80:it#8:li#52:\ + :al=\EN:cd=\EJ:ce=\EI:cl=\EH\EK:cm=\EY%+ %+ :dc=\EQ:dl=\EO:\ + :do=\EB:ei=:ho=\EH:ic=\EP:im=:kb=^H:kd=\EB:kl=\ED:kr=\EC:\ + :ku=\EA:le=^H:me=\E0:nd=\EC:se=\E0:so=\E0:ta=^I:up=\EA:\ + :vb=\EG: +ibm-apl|apl|IBM apl terminal simulator:\ + :li#25:tc=dm1520: +# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'. +# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr) +ibmmono|IBM workstation monochrome:\ + :es:hs:\ + :al=\EL:dl=\EM:ds=\Ej\EY8 \EI\Ek:fs=\Ek:k0=\E<:k1=\ES:\ + :k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:k9=\EY:\ + :kF=\EE:kI=\0:kN=\EE:kP=\Eg:kR=\EG:kb=^H:kh=\EH:l0=f10:\ + :md=\EZ:me=\Ew\Eq\Ez\EB:mk=\EF\Ef0;\Eb0;:mr=\Ep:se=\Ez:\ + :so=\EZ:sr=\EA:ts=\Ej\EY8%+ \Eo:ue=\Ew:us=\EW:\ + :tc=ibm3101: +ibmega|IBM Enhanced Color Display:\ + :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmmono: +ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline:\ + :se=\EB:so=\EF\Ef3;:ue=\EB:us=\EF\Ef2;:\ + :tc=ibmmono: +ibmvga-c|IBM VGA display color termcap:\ + :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmega-c: +ibmvga|IBM VGA display:\ + :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmega: +# ibmapa* and ibmmono entries come from ACIS 4.3 distribution +rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display:\ + :li#32:\ + :ds=\Ej\EY@ \EI\Ek:ts=\Ej\EY@%+ \Eo:tc=ibmmono: +# Advanced Monochrome (6153) and Color (6154) Graphics Display: +ibmapa8c|ibmapa8|IBM 6153/4 Advanced Graphics Display:\ + :li#31:\ + :ds=\Ej\EY? \EI\Ek:ts=\Ej\EY?%+ \Eo:tc=ibmmono: +ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display:\ + :li#31:\ + :ds=\Ej\EY? \EI\Ek:mh=\EF\Ef7;:ts=\Ej\EY?%+ \Eo:tc=ibmega-c: +hft-c-old|HFT with Color PC850:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:tc=ibm5151: +# From: Marc Pawliger <marc@ibminet.awdpa.ibm.com> +# also in /usr/lpp/bos/bsdsysadmin. +# (hft-c: this entry had :kb=\E[D:kf=\E[C: on the line with ku/kd/kh; this was +# pretty obviously mislabeled for :le: and :nd:; also ":ul=\E[4m:" was clearly +# a typo for ":us=\E[4m:"; also ":el=\E[K:" was a typo for ":ce=\E[K:". +# I also added <rmam>/<smam> based on the terminal reset string. +# There was an unknown boolean ":ht:" which I assume was meant to set hardware +# tabs, so I have inserted it#8. Finally, :ac=^N: paired with the :ae: looked +# like a typo for :as=^N:; finally, added empty <acsc> to quiet tic -- esr) +hft-c|IBM High Function Terminal:\ + :am:mi:ms:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:dl=\E[M:dm=\E[4h:\ + :do=^J:ec=\E[%dX:ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\Eb\E[m\017\E[?7h:k0=\E[010q:k1=\E[001q:k2=\E[002q:\ + :k3=\E[003q:k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:\ + :k8=\E[008q:k9=\E[009q:kd=\E[B:kh=\E[H:ku=\E[A:le=\E[D:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r1=\Eb\E[m\017\E[?7h\E[H\E[J:rc=\E[u:sc=\E[s:se=\E[m:\ + :so=\E[7m:te=\E[20h:ti=\E[20;4l\E[?7h\Eb:ue=\E[m:up=\E[A:\ + :us=\E[4m: +hft|AIWS High Function Terminal:\ + :am:xo:\ + :co#80:li#25:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E6:ho=\E[H:\ + :ic=\E[@:im=\E6:k1=\E[001q:k2=\E[002q:k3=\E[003q:\ + :k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:k8=\E[008q:\ + :k9=\E[009q:kN=\E[153q:kP=\E[159q:ka=\E[010q:kb=^H:\ + :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mk=\E[8m:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:\ + :so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: +ibm-system1|system1|ibm system/1 computer:\ + :am:xt:\ + :co#80:li#24:\ + :bl=^G:cl=^Z:cm=\005%+ %+ :ho=^K:le=^H:nd=^\:sf=^J:up=^^: +# lft-pc850 : IBM Low Function Terminal Device +# lft "supports" underline, bold, and blink in the sense that the lft code +# sets all the right bits. HOWEVER, depending upon the adapter, these +# attributes may or may not be supported by the device driver. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device:\ + :am:bw:ms:xo:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:bt=\E[Z:cd=\E[2J:ce=\E[0K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:is=\Ec:\ + :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\ + :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:kD=\E[P:\ + :kI=\E[139q:kN=\E[154q:kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\ + :mr=\E[7m:nd=\E[C:se=\E[0m:sf=\ED:so=\E[7m:sr=\EL:ue=\E[0m:\ + :up=\E[A:us=\E[4m: + +# +# AIX entries. IBM ships these with AIX 3.2.5. +# AIX extension caps are commented out, +# except for box1 which has been translated to an <acsc> string. +# +aixterm|IBM Aixterm Terminal Eemulator:\ + :es:hs:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ds=\E[?E:fs=\E[?F:md=\E[1m:\ + :me=\E[0;10m\E(B:s0=\E(B:s1=\E(0:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m:\ + :sr@:ts=\E[?%p1%dT:\ + :tc=ibm6154: +aixterm-m|IBM AIXterm Monochrome Terminal Emulator:\ + :es:hs:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ds=\E[?E:fs=\E[?F:md=\E[1m:\ + :me=\E[0;10m\E(B:s0=\E(B:s1=\E(0:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :sr@:ts=\E[?%p1%dT:\ + :tc=ibm6153: +aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator:\ + :es:hs:\ + :ds=\E[?E:fs=\E[?F:md=\E[1m:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :sr@:ts=\E[?%p1%dT:\ + :tc=ibm6153: +jaixterm|IBM Kanji Aixterm Terminal Eemulator:\ + :ac@:tc=aixterm: +jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator:\ + :ac@:\ + :tc=aixterm-m: + +#### Infoton/General Terminal Corp. +# + +# gt100 sounds like something DEC would come out with. Let's hope they don't. +i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100):\ + :am:bs:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\Ef%r%+ %+ :cr=^M:\ + :dl=\EM:do=^J:ho=\EH:le=^H:nd=\EC:se=\Ea:sf=^J:so=\Eb:up=\EA:\ + :vb=\Eb\Ea: +i400|infoton 400:\ + :am:bs:\ + :co#80:li#25:\ + :al=\E[L:bl=^G:ce=\E[N:cl=\E[2J:cm=%i\E[%3;%3H:cr=^M:\ + :dc=\E[4h\E[2Q\E[P\E[4l\E[0Q:dl=\E[M:do=^J:\ + :ei=\E[4l\E[0Q:im=\E[4h\E[2Q:le=^H:nd=\E[C:sf=^J:up=\E[A: +# (addrinfo: removed obsolete ":bc=^Z:" -- esr) +addrinfo:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=^K:cl=^L:..cm=\037%p1%{1}%-%c%p2%{1}%-%c:cr=^M:\ + :do=^J:ho=^H:le=^Z:ll=^H^\:nd=^Y:sf=^J:up=^\: +# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr) +infoton:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=^K:cl=^L:cr=^M:do=^J:le=^Z:ll=^H^\:nd=^Y:sf=^J:\ + :up=^\: + +# The ICL6402 was actually the Kokusai Display System 6402. +# The 6404 was the KDS7372 (color version of the 6402). +# +# ICL6404 control codes follow: +# +#code function +#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#ctrl-A set SOM position at cursor position +#ctrl-G Bell +#ctrl-H Backspace +#ctrl-I Horiz tab +#ctrl-J Linefeed +#ctrl-K Cursor up +#ctrl-L Cursor right +#ctrl-M Carriage return +#ctrl-N Disable xon/xoff to host +#ctrl-O Enable xon/xoff to host +#ctrl-R Enable bidirectional mode +#ctrl-T Disable bidirectional mode +#ctrl-V Cursor down +#ctrl-Z Clear unprotected data to insert char +#ctrl-^ Cursor home +#ctrl-_ Newline +# +#ESC lead-in char for multiple character command +# +#ESC space R execute power on sequence +#ESC ! p1 p2 define scroll region: +# p1 = scroll top line: 20h - 37h +# p1 = scroll bottom line: 20h - 37h +#ESC " unlock keyboard +#ESC # lock keyboard +#ESC $ Semi-graphics mode on +#ESC % Semi-graphics mode off +#ESC & protect mode on +#ESC ' protect mode off +#ESC ( write protect mode off (full intensity) +#ESC ) write protect mode on (half intensity) +# +#ESC * clear screen +#ESC + clear unprotected data to insert char +#ESC , clear unprotected data to half intensity spaces +#ESC - p1 p2 p3 p4 address cursor to page, row, column: +# p1 = page number 0 - 3 +# p2 = row 20h - 7fh +# p3 = column (lo) 20h - 7fh +# p4 = column (hi) 20h - 21h (only 132 col) +#ESC . p1 set cursor style: +# p1 = 0 invisible cursor +# p1 = 1 block blinking cursor +# p1 = 2 block steady cursor +# p1 = 3 underline blinking cursor +# p1 = 4 underline steady cursor +#ESC / transmit cursor location (page, row, column) +#ESC 0 p1 p2 p3 p4 program edit key: +# p1 = edit key code: '@'-'S', '`'-'s' +# p2 p3 p4 = program data (3 bytes) +# +#ESC 1 set tab +#ESC 2 clear tab at cursor +#ESC 3 clear all tabs +#ESC 4 send unprotect line to cursor +#ESC 5 send unprotect page to cursor +#ESC 6 send line to cursor +#ESC 7 send page to cursor +#ESC 8 n set scroll mode: +# n = 0 set jump scroll +# n = 1 set smooth scroll +#ESC 9 n control display: +# n = 0 display off +# n = 1 display on +#ESC : clear unprotected data to null +#ESC ; clear unprotected data to insert char +# +#ESC < keyclick on +#ESC = p1 p2 address cursor to row, column +# p1 = row 20h - 7fh +# p2 = column (lo) 20h - 7fh +# p3 = column (hi) 20h - 21h (only 132 col) +#ESC > keyclick off +#ESC ? transmit cursor location (row, column) +# +#ESC @ copy print mode on +#ESC A copy print mode off +#ESC B block mode on +#ESC C block mode off (conversation mode) +#ESC D F set full duplex +#ESC D H set half duplex +#ESC E line insert +#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd) +# 0 = black, 1 = red, 2 = green, 3 = yellow +# 4 = blue, 5 = magenta, 6 = cyan, 7 = white +#ESC G n set serial field attribute (n = 30h - 3Fh) +#ESC H n full graphics mode: +# n = 0 exit full graphics mode +# n = 1 enter full graphics mode +#ESC I back tab +#ESC J back page +#ESC K forward page +# +#ESC L unformatted page print +#ESC M L move window left (132 col mode only) +#ESC M R move window right (132 col mode only) +#ESC N set page edit (clear line edit) +#ESC O set line edit (clear page edit) +#ESC P formatted page print +#ESC Q character insert +#ESC R line delete +#ESC S send message unprotected only +#ESC T erase line to insert char +#ESC U set monitor mode (see ESC X, ESC u) +# +#ESC V n select video attribute mode: +# n = 0 serial field attribute mode +# n = 1 parallel character attribute mode +#ESC V 2 n define line attribute: +# n = 0 single width single height +# n = 1 single width double height +# n = 2 double width single height +# n = 3 double width double height +#ESC V 3 n select character font: +# n = 0 system font +# n = 1 user defined font +#ESC V 4 n select screen mode: +# n = 0 page screen mode +# n = 1 virtual screen mode +#ESC V 5 n control mouse mode: +# n = 0 disable mouse +# n = 1 enable sample mode +# n = 2 send mouse information +# n = 3 enable request mode +#ESC W character delete +#ESC X clear monitor mode (see ESC U, ESC u) +#ESC Y erase page to insert char +# +#ESC Z n send user/status line: +# n = 0 send user line +# n = 1 send status line +# n = 2 send terminal ID +#ESC [ p1 p2 p3 set character attribute (parallel char mode): +# p1: 0 = normal +# 1 = blank +# 2 = blink +# 3 = blink blank (= blank) +# 4 = reverse +# 5 = reverse blank +# 6 = reverse blink +# 7 = reverse blink blank (= reverse blank) +# 8 = underline +# 9 = underline blank +# : = underline blink +# ; = underline blink blank +# < = reverse underline +# = = reverse underline blank +# > = reverse underline blink +# ? = reverse underline blink blank +# p2, p3: f/grnd, b/grnd colour +# (see ESC F for colours) +# use ZZ for mono, eg. +# ESC [ 0 Z Z for normal +# ESC [ 4 Z Z for inverse etc. +# +#ESC \ n set page size: +# n = 1 24 lines/page +# n = 2 48 lines/page +# n = 3 72 lines/page +# n = 4 96 lines/page +#ESC ] n set Wordstar mode: +# n = 0 normal (KDS7372) mode +# n = 1 Wordstar mode +# +#ESC b set foreground colour screen +# +#ESC c n enter self-test mode: +# n = 0 exit self test mode +# n = 1 ROM test +# n = 2 RAM test +# n = 3 NVRAM test +# n = 4 screen display test +# n = 5 main/printer port test +# n = 6 mouse port test +# n = 7 graphics board test +# n = 8 graphics memory test +# n = 9 display all 'E' +# n = : display all 'H' +#ESC d set background colour screen +# +#ESC e n program insert char (n = insert char) +#ESC f text CR load user status line with 'text' +# +#ESC g display user status line on 25th line +#ESC h display system status line on 25th line +#ESC i tab +#ESC j reverse linefeed +#ESC k n duplex/local edit mode: +# n = 0 duplex edit mode +# n = 1 local edit mode +#ESC l n select virtual screen: +# n = 0 screen 1 +# n = 1 screen 2 +#ESC m save current config to NVRAM +#ESC n p1 select display screen: +# p1 = 0 screen 1 +# p1 = 1 screen 2 +# p1 = 2 screen 3 +# p1 = 3 screen 4 +#ESC o p1 p2 set characters/line and attribute: +# p1 = 0 80 chars/line +# +#ESC o p1 p2 set characters/line and attribute: +# p1 = 0 80 chars/line +# p1 = 1 132 chars/line +# p2 = 0 single width single height +# p2 = 1 single width double height +# p2 = 2 double width single height +# p2 = 3 double width double height +# +#ESC q insert mode on +#ESC r edit mode on +#ESC s send message all +#ESC t erase line to null +#ESC u clear monitor mode (see ESC U, ESC X) +#ESC v autopage mode on +#ESC w autopage mode off +#ESC x p1 p2 p3 define delimiter code... +#ESC y erase page to null +# +#ESC z 2 p1 p2 p3 p4 draw quadrangle: +# p1 = starting row +# p2 = starting column +# p3 = end row +# p4 = end column +# +#ESC { p1 p2 p3 p4 configure main port +# (baud, stop bits, parity, word length) +# +#ESC | p1 p2 text Ctrl-Y program function key with 'text': +# p1 = function key code: +# '1' - ';' normal f1- f11 +# '<' - 'F' shifted f1 - f11 +# p2 = program mode: +# 1 = FDX +# 2 = LOC +# 3 = HDX +# Ctrl-Y = terminator +# (use Ctrl-P to escape ^P, ^Y ) +# +#ESC } p1 p2 p3 p4 configure printer port +# (baud, stop bits, parity, word length) +#ESC ~ send system status +# +# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997 +# +# Entry is by esr going solely on above information and is UNTESTED. +# This actually looks a lot like a Televideo 9xx. +# This entry uses page 0 and is monochrome; I'm not brave enough to try +# to make color work without a test terminal. The :am: capability is a guess. +# The initialization string sets conversation mode, blinking underline cursor, +# full duplex, parallel attribute mode, display user status line, white +# foreground, black background, normal highlight. +# +icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372:\ + :am:bs:hs:\ + :co#80:li#24:\ + :DC=\EW:al=\EE:bl=^G:bt=\EI:cl=\E*:cm=\E=%+ %+P%+P:cr=^M:\ + :..cs=\E\041%+%p1%{32}%+%p2%{32} cud1=\026:ct=\E3:\ + :dl=\ER:ei=\Er:ho=^^:i1=\EC\E.3\EDF\EV1\Eg\E[0ZZ:im=\Eq:\ + :mb=\E[2ZZ:me=\E[0ZZ:mk=\E[1ZZ:mr=\E[4ZZ:nd=^L:nw=^_:\ + :r2=\Eo1:\ + :..sa=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ:\ + :se=\E[%gh%{4}%^%Ph%gh%dZZ:so=\E[8ZZ:st=\E1:ta=^I:\ + :ue=\E[%gh%{8}%^%Ph%gh%dZZ:up=^K:us=\E[8ZZ:ve=\E.3:\ + :vi=\E.0:vs=\E.1: +icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols:\ + :r2=\Eo1:\ + :tc=icl6404: + +#### Interactive Systems Corp +# +# ISC used to sell OEMed and customized hardware to support ISC UNIX. +# ISC UNIX still exists in 1995, but ISC itself is no more; they got +# bought out by Sun. +# + +# From: <cithep!eric> Wed Sep 16 08:06:44 1981 +# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the +# ":le=^_:" later overridden -- esr) +intext|Interactive Systems Corporation modified owl 1200:\ + :am:bs:\ + :co#80:it#8:li#24:sg#1:\ + :al=\020:bl=^G:bt=^Y:cd=\026J:ce=^Kp^R:cl=\014:\ + :cm=\017%+ %+ :cr=^M:dc=\022:dl=\021:do=^J:ei=^V<:im=^V;:\ + :ip=:k0=^VJ\r:k1=^VA\r:k2=^VB\r:k3=^VC\r:k4=^VD\r:k5=^VE\r:\ + :k6=^VF\r:k7=^VG\r:k8=^VH\r:k9=^VI\r:kb=^H:kd=^J:ke=^V9:\ + :kh=^Z:kl=^_:kr=^^:ks=\036\072\264\026%:ku=^\:le=^H:nd=^^:\ + :se=^V# :sf=^J:so=^V$\054:ta=^I:up=^\: +intext2|intextii|INTERACTIVE modified owl 1251:\ + :am:bw:ul:\ + :co#80:li#24:sg#0:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=:ic=\E[@:im=:k0=\E@\r:k1=\EP\r:k2=\EQ\r:\ + :k3=\ES\r:k4=\ET\r:k5=\EU\r:k6=\EV\r:k7=\EW\r:k8=\EX\r:\ + :k9=\EY\r:kb=^H:kd=\EB\r:kh=\ER\r:kl=\ED\r:kr=\EC\r:\ + :ku=\EA\r:l0=REFRSH:l1=DEL CH:l2=TABSET:l3=GOTO:l4=+PAGE:\ + :l5=+SRCH:l6=-PAGE:l7=-SRCH:l8=LEFT:l9=RIGHT:nd=\E[C:\ + :se=\E[2 D:sf=\E[S:so=\E[6 D:sr=\E[T:ta=^I:ue=\E[2 D:\ + :up=\E[A:us=\E[18 D:\ + :vb=\E[;;;;;;;;;2;;u\E[;;;;;;;;;1;;u: + +#### Kimtron (abm, kt) +# +# Kimtron seems to be history, but as March 1998 these people are still +# offering repair services for Kimtron equipment: +# +# Com/Pair Monitor Service +# 1105 N. Cliff Ave. +# Sioux Falls, South Dakota 57103 +# +# WATS voice: 1-800/398-4946 +# POTS fax: +1 605/338-8709 +# POTS voice: +1 605/338-9650 +# Email: <compair@sd.cybernex.net> +# Internet/Web: <http://www.com-pair.com> +# +# Kimtron entries include (undocumented) codes for: enter dim mode, +# enter bold mode, enter reverse mode, turn off all attributes. +# + +# Kimtron ABM 85 added by Dual Systems +# (abm85: removed duplicated ":kd=^J:" -- esr) +abm85|Kimtron ABM 85:\ + :am:bs:bw:ms:\ + :co#80:it#8:li#24:sg#1:\ + :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :dc=\EW:\ + :dl=\ER:do=^J:ei=\Er:if=/usr/share/tabset/stdcrt:im=\EQ:\ + :is=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq:kb=^H:kd=^J:kh=^^:\ + :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\Ek:so=\Ej:ta=^I:ue=\Em:\ + :up=^K:us=\El: +# Kimtron ABM 85H added by Dual Systems. +# Some notes about the abm85h entries: +# 1) there are several firmware revs of 85H in the world. Use abm85h-old for +# firmware revs prior to SP51 +# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the +# abm85e entry if it is in tvi920 emulation mode. They are incompatible +# in some places and NOT software settable i.e., :is: can't fix it) +# 3) In 85h mode, the arrow keys and special functions transmit when +# the terminal is in dup-edit, and work only locally in local-edit. +# Vi won't swallow `del char' for instance, but :ti: turns on +# dup-edit anyway so that the arrow keys will work right. If the +# arrow keys don't work the way you like, change :ti:, :te:, and +# :is:. Note that 920E mode does not have software commands to toggle +# between dup and local edit, so you get whatever was set last on the +# terminal. +# 4) :vb: attribute is nice, but seems too slow to work correctly +# (\Eb:pc:\Ed) +# 5) Make sure `hidden' attributes are selected. If `embedded' attributes +# are selected, the <xmc@> entry should be removed. +# 6) auto new-line should be on (selectable from setup mode only) +# +# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985 +abm85h|Kimtron ABM 85H native mode:\ + :hs:\ + :sg@:\ + :bl=^G:ds=\Ee:fs=^M:im=\EZ:\ + :is=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El:\ + :kd=^V:me=\E(\EG0:mh=\E):mk@:ts=\Eg\Ef:vb@:ve=\E.4:vs=\E.2:\ + :tc=adm+sgr:tc=abm85: +abm85e|Kimtron ABM 85H in 920E mode:\ + :sg@:\ + :bl=^G:im=\EZ:\ + :is=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em:\ + :me=\E(\Ek:mh=\E):mr=\Ej:vb@:\ + :tc=abm85: +abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.:\ + :sg@:\ + :bl=^G:im=\EZ:\ + :is=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF:\ + :me=\E(\Ek:mh=\E):mr=\Ej:\ + :tc=abm85: +# From: <malman@bbn-vax.arpa> +# (kt7: removed obsolete :ma=^V^J^L :" -- esr) +kt7|kimtron model kt-7:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=\EW:\ + :dl=\ER:do=^V:ei=:fs=\Eg:ho=^^:ic=\EQ:\ + :if=/usr/share/tabset/stdcrt:im=:is=\El\E":k0=^AI\r:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kB=\EI:kC=^Z:kD=\EW:\ + :kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:\ + :ku=^K:le=^H:mk@:nd=^L:ta=^I:ts=\Ef:up=^K:\ + :tc=adm+sgr: +# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the +# other kt7 entry and the adjacent key capabilities). Removed EE which is +# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight +# but we can't figure out what. +kt7ix|kimtron model kt-7 or 70 in IX mode:\ + :am:bw:\ + :co#80:it#8:li#25:\ + :@7=\EY:PU=\EK:ac=jYk?lZm@nEqDt4uCvAwBx3:ae=\E%:al=\EE:\ + :as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :\ + :cr=^M:dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=:fs=^M:ho=^^:ic=\EQ:\ + :im=:is=\EG0\E s\017\E~:k0=^AI\r:k1=^A@\r:k2=^AA\r:\ + :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\ + :k9=^AH\r:kA=\EE:kB=\EI:kC=\E*:kE=\ET:kI=\EQ:kL=\ER:kN=\EJ:\ + :kS=\EY:kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\EG2:me=\EG0:mh=\EG@:nd=^L:nw=^M^J:se=\EG0:sf=^J:\ + :so=\EG4:ta=^I:ts=\Ef:ue=\EG0:up=^K:us=\EG8:ve=\E.3:vi=\E.0: + +#### Microdata/MDIS +# +# This was a line of terminals made by McDonnell-Douglas Information Systems. +# These entries come direct from MDIS documentation. I have edited them only +# to move primary names of the form p[0-9] * to aliases, and to comment out +# :ae:/:as: in a couple of entries without <acsc> strings. I have +# also removed the change history; the last version indicates this is +# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989). +# + +# McDonnell Information Systems Terminal Family History +# ========================================= +# +# Prism-1, Prism-2 and P99: +# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25. +# +# Prism-4 and Prism-5: +# Slightly less ancient range of Microdata terminals. Follow-on from +# Prism-2, but with many enhancements. P5 has eight display pages. +# +# Prism-6: +# A special terminal for use with library systems, primarily in Germany. +# Limited numbers. Similar functionality to P5 (except attributes?). +# +# Prism-7, Prism-8 and Prism-9: +# More recent range of MDIS terminals, in which P7 and P8 +# replace the P4 & P5, with added functionality, and P9 is the flagship. +# The P9 has two emulation modes - P8 and ANSI - and includes a +# large number of the DEC VT220 control sequences. Both +# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats. +# +# Prism-12 and Prism-14: +# Latest range, functionally very similar to the P9. The P14 has a +# black-on-white overscanning screen. +# +# The terminfo definitions given here are: +# +# p2 - Prism-2 (or Prism-1 or P99). +# +# p4 - Prism-4 (and older P7s & P8s). +# p5 - Prism-5 (or Prism-6). +# +# p7 - Prism-7. +# p8 - Prism-8 (in national or multinational mode). +# p8-w - 132 column version of p8. +# p9 - Prism-9 in ANSI mode. +# p9-w - 132 column version of p9. +# p9-8 - Prism-9 in Prism-8 emulation mode. +# p9-8-w - As p9-8, but with 132 columns. +# +# p12 - Prism-12 in ANSI mode. +# p12-w - 132 column version of p12. +# p12-m - Prism-12 in MDC emulation mode. +# p12-m-w - As p12-m, but with 132 columns. +# p14 - Prism-14 in ANSI mode. +# p14-w - 132 column version of p14. +# p14-m - Prism-14 in MDC emulation mode. +# p14-m-w - As p14-m, but with 132 columns. +# +# p2: Prism-2 +# ----------- +# +# Includes Prism-1 and basic P99 without SP or MP loaded. +# The simplest form of Prism-type terminal. +# Basic cursor movement and clearing operations only. +# No video attributes. +# Notes: +# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next +# value up, followed by backspace. +# +prism2|MDC Prism-2:\ + :am:bw:ms:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:\ + :..ch=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\ + :cl=\014:\ + :..cm=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\ + :cr=^M:cv=\013%+ :do=^J:ho=^A:kb=^H:kh=^A:le=^H:nd=^F:sf=^J:\ + :up=^Z: + +# p4: Prism-4 +# ----------- +# +# Includes early versions of P7 & P8. +# Basic family definition for most Prisms (except P2 and P9 ANSI). +# Notes: +# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next +# value up, followed by backspace. +# Cursor key definitions removed because they interfere with vi and csh keys. +# +prism4|p4|P4|MDC Prism-4:\ + :5i:am:bw:hs:ms:\ + :co#80:li#24:sg#1:ws#72:\ + :bl=^G:cd=\EJ:ce=\EK:\ + :..ch=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\ + :cl=\014:\ + :..cm=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\ + :cr=^M:cv=\013%+ :do=^J:ds=\035\343\035\345:fs=^]\345:\ + :ho=^A:kb=^H:kh=^A:le=^H:mb=^CB:me=^C :mh=^CA:mk=^CH:mr=^CD:\ + :nd=^F:pf=\ET:po=\ER:ps=\EU:\ + :..sa=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;:\ + :se=^C :sf=^J:so=^CD:ts=^]\343:ue=^C :up=^Z:us=^CP:\ + :ve=^]\342:vi=^]\344: + +# p5: Prism-5 +# ----------- +# +# Same definition as p4. Includes Prism-6 (not tested!). +# Does not use any multi-page features. +# +prism5|p5|P5|MDC Prism-5:\ + :tc=p4: + +# p7: Prism-7 +# ----------- +# +# Similar definition to p4. Uses ANSI cursor motion to avoid network problems. +# Notes: +# Use p4 for very early models of P7. +# Rev-index removed; can't send nulls to terminal in 8-bit modes. +# +prism7|p7|P7|MDC Prism-7:\ + :ch@:cm=\E[%i%d;%dH:cv@:tc=p4: + +# p8: Prism-8 +# ----------- +# +# Similar definition to p7. Uses ANSI cursor motion to avoid network problems. +# Supports national and multinational character sets. +# Notes: +# Alternate char set operations only work in multinational mode. +# Use p4 for very early models of P8. +# Rev-index removed; can't send nulls to terminal in 8-bit modes. +# (esr: commented out :as:/:ae: because there's no <acsc>) +# +prism8|p8|P8|MDC Prism-8:\ + :ch=\E[%i%d`:cm=\E[%i%d;%dH:cv=\E[%i%dd:is=\E[<12h:tc=p4: + +# p8-w: Prism-8 in 132 column mode +# -------------------------------- +# +# 'Wide' version of p8. +# Notes: +# Rev-index removed; can't send nulls to terminal in 8-bit modes. +# +prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode:\ + :co#132:\ + :is=\E[<12h\E[<14h:tc=p8: + +# p9: Prism-9 in ANSI mode +# ------------------------- +# +# The "flagship" model of this generation of terminals. +# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones. +# Notes: +# Tabs only reset by "reset". Otherwise assumes default (8 cols). +# Fixes to deal with terminal firmware bugs: +# . 'ri' uses insert-line since rev index doesn't always +# . 'sgr0' has extra '0' since esc[m fails +# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25 +# Not covered in the current definition: +# . Labels +# . Programming Fn keys +# . Graphic characters (defaults correctly to vt100) +# . Padding values (sets xon) +# (esr: commented out :as:/:ae: because there's no <acsc>) +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +prism9|p9|P9|MDC Prism-9 in ANSII mode:\ + :5i:am:bw:hs:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:ws#72:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\ + :F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\ + :F7=\E[31~:F8=\E[32~:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=^L:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%d%v:ct=\E[2g:\ + :cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=^J:ds=\E[%}\024:ec=\E[%dX:\ + :ei=\E[4l:fs=^T:ho=\E[H:im=\E[4h:is=\E[&p\E[<12l\E F:\ + :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kC=^L:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[0m:mp=\E[32%{:mr=\E[7m:nd=\E[C:\ + :nw=^M^J:pf=\E[4i:po=\E[5i:ps=\E[i:\ + :r2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N:\ + :rc=\E[%z:rp=\E[%r%db%.:sc=\E[%y:se=\E[27m:sf=^J:so=\E[7m:\ + :sr=\E[L:st=\EH:ta=^I:ts=\E[%i%p1%d%%}:ue=\E[24m:up=\E[A:\ + :us=\E[4m:ve=\E[<4h:vi=\E[<4l: + +# p9-w: Prism-9 in 132 column mode +# -------------------------------- +# +# 'Wide' version of p9. +# +prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode:\ + :co#132:\ + :is=\E[&p\E[<12l\E F\E[<14h:\ + :r2=\E[&p\E[<12l\E F\E[<14h:tc=p9: + +# p9-8: Prism-9 in P8 mode +# ------------------------ +# +# P9 terminal in P8 emulation mode. +# Similar to p8 definition. +# Insertion and deletion operations possible. +# +prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:dc=\E[P:\ + :dl=\E[M:ei=:ic=\E[@:im=:\ + :tc=p8: + +# p9-8-w: Prism-9 in P8 and 132 column modes +# ------------------------------------------ +# +# P9 terminal in P8 emulation mode and 132 column mode. +# +prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:dc=\E[P:\ + :dl=\E[M:ei=:ic=\E[@:im=:\ + :tc=p8-w: + +# p12: Prism-12 in ANSI mode +# --------------------------- +# +# See p9 definition. +# +prism12|p12|P12|MDC Prism-12 in ANSI mode:\ + :tc=p9: + +# p12-w: Prism-12 in 132 column mode +# ---------------------------------- +# +# 'Wide' version of p12. +# +prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode:\ + :tc=p9-w: + +# p12-m: Prism-12 in MDC emulation mode +# ------------------------------------- +# +# P12 terminal in MDC emulation mode. +# Similar to p8 definition. +# Insertion and deletion operations possible. +# +prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode:\ + :tc=p9-8: + +# p12-m-w: Prism-12 in MDC emulation and 132 column modes +# ------------------------------------------------------- +# +# P12 terminal in MDC emulation mode and 132 column mode. +# +prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode:\ + :tc=p9-8-w: + +# p14: Prism-14 in ANSII mode +# --------------------------- +# +# See p9 definition. +# +prism14|p14|P14|MDC Prism-14 in ANSII mode:\ + :tc=p9: + +# p14-w: Prism-14 in 132 column mode +# ---------------------------------- +# +# 'Wide' version of p14. +# +prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode:\ + :tc=p9-w: + +# p14-m: Prism-14 in MDC emulation mode +# ------------------------------------- +# +# P14 terminal in MDC emulation mode. +# Similar to p8 definition. +# Insertion and deletion operations possible. +# +prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode:\ + :tc=p9-8: + +# p14-m-w: Prism-14 in MDC emulation and 132 column modes +# ------------------------------------------------------- +# +# P14 terminal in MDC emulation mode and 132 column mode. +# +prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode:\ + :tc=p9-8-w: + +# End of McDonnell Information Systems Prism definitions + +# These things were popular in the Pick database community at one time +# From: George Land <georgeland@aol.com> 24 Sep 1996 +p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition:\ + :am:bw:hs:mi:\ + :co#80:li#24:ma#1:sg#1:ws#78:\ + :F2=^AJ\r:F3=^AK\r:F4=^AL\r:F5=^AM\r:F6=^AN\r:F7=^AO\r:\ + :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\E[%i%d;%dH:cr=^M:dc= ^H:\ + :dl=^P:do=^J:ho=^A:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\ + :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\ + :kD= ^H:kE=\EK:kL=^P:kS=\EJ:kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:\ + :ku=^Z:l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:l9=F9:\ + :la=F10:le=^U:mb=^CB:me=^C :mh=^CA:mk=^CH:mr=^CD:nd=^F:\ + :nw=^J^M:pc=\0:se=^C :sf=^J:so=^CE:ue=^C :up=^Z:us=^C0: + +#### Microterm (act, mime) +# +# The mime1 entries refer to the Microterm Mime I or Mime II. +# The default mime is assumed to be in enhanced act iv mode. +# + +# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents +# freakout with out-of-range args on Sytek multiplexors. No :so=^N: and +# :se=^N: since it gets confused and it's too dim anyway. No :ic: +# since Sytek insists ^S means xoff. +# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr) +act4|microterm|microterm act iv:\ + :am:bs:\ + :co#80:li#24:\ + :al=2.3*\001<2.3*/>:bl=^G:cd=2.2*\037:ce=.1*\036:\ + :cl=12\014:cm=\024%+^X%>/0%+P:cr=^M:dc=.1*\004:\ + :dl=2.3*\027:do=^K:ho=^]:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:\ + :sf=^J:up=^Z: +# The padding on :sr: and :ta: for act5 and mime is a guess and not final. +# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)... +# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr) +act5|microterm5|microterm act v:\ + :kd=^K:kl=^H:kr=^X:ku=^Z:sr=\EH:uc=^H\EA:tc=act4: +# Mimes using brightness for standout. Half bright is really dim unless +# you turn up the brightness so far that lines show up on the screen. +mime-fb|full bright mime1:\ + :is=^S\E:se=^S:so=^Y:tc=mime: +mime-hb|half bright mime1:\ + :is=^Y\E:se=^Y:so=^S:tc=mime: +# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode +# the more plausible ":do=^J:" -- esr) +# uc was at one time disabled to get around a curses bug, be wary of it +mime|mime1|mime2|mimei|mimeii|microterm mime1:\ + :am:bs:\ + :co#80:it#8:li#24:vt#9:\ + :al=\001:bl=^G:cd=^_:ce=^^:cl=^]^C:cm=\024%+^X%> 0%+P:\ + :cr=^M:dl=\027:do=^J:ho=^]:is=^S\E^Q:kd=^K:kl=^H:kr=^X:ku=^Z:\ + :le=^H:nd=^X:sf=^J:sr=\022:ta=\011:uc=^U:up=^Z: +# These termcaps (for mime2a) put the terminal in low intensity mode +# since high intensity mode is so obnoxious. +mime2a-s|microterm mime2a (emulating an enhanced soroc iq120):\ + :am:bs:\ + :co#80:li#24:\ + :al=\001:bl=^G:cd=\EJ:ce=\EK:cl=\EL:cm=\E=%+ %+ :cr=^M:\ + :dc=\ED:dl=\027:do=^J:ei=^Z:ho=^^:im=\EE:ip=:is=\E):kd=^J:\ + :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\E;:sf=^J:so=\E\072:sr=\EI:\ + :ue=\E7:up=\EI:us=\E6: +# This is the preferred mode (but ^X can't be used as a kill character) +mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52):\ + :bs:\ + :co#80:it#8:li#24:\ + :al=\001:bl=^G:cd=\EQ:ce=\EP:cl=\EL:cm=\EY%+ %+ :cr=^M:\ + :dc=^N:dl=\027:do=^J:ei=^Z:ho=\EH:im=^O:ip=:is=^Y:kd=\EB:\ + :kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\E9:sf=^J:so=\E8:\ + :sr=\EA:ta=^I:ue=\E5:up=\EA:us=\E4: +# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr) +mime3a|mime1 emulating 3a:\ + :am@:\ + :kd=^K:kl=^H:kr=^X:ku=^Z:tc=adm3a: +mime3ax|mime-3ax|mime1 emulating enhanced 3a:\ + :it#8:\ + :al=\001:cd=^_:ce=^X:dl=\027:ta=\011:tc=mime3a: +# Wed Mar 9 18:53:21 1983 +# We run our terminals at 2400 baud, so there might be some timing problems at +# higher speeds. The major improvements in this model are the terminal now +# scrolls down and insert mode works without redrawing the rest of the line +# to the right of the cursor. This is done with a bit of a kludge using the +# exit graphics mode to get out of insert, but it does not appear to hurt +# anything when using vi at least. If you have some users using act4s with +# programs that use curses and graphics mode this could be a problem. +mime314|mm314|mime 314:\ + :am:\ + :co#80:li#24:\ + :al=^A:cd=^_:ce=^^:cl=^L:cm=\024%.%.:dc=^D:dl=^W:ei=^V:ho=^]:\ + :im=^S:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:ta=^I:up=^Z: +# Microterm mime 340 from University of Wisconsin +mm340|mime340|mime 340:\ + :co#80:li#24:\ + :al=46\EU:cd=2*\037:ce=2.1\EL:cl=12\032:cm=\E=%+ %+ :\ + :cr=^M:dc=2.1*\E#:dl=49.6\EV:do=^J:is=\E\054:kb=^H:kd=^J:\ + :kl=^H:ku=^K:le=^H:nd=^L:nw=^M^J:sf=^J:ta=^I:up=^K: +# This came from University of Wisconsin marked "astro termcap for jooss". +# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:"; +# also added <rmam>/<smam> based on the init string -- esr) +mt4520-rv|micro-term 4520 reverse video:\ + :am:hs:ms:xn:xo:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[g:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ + :fs=\E[?5l\E[?5h:ho=\E[H:ic=\E[@:im=:\ + :is=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;1H:me=\E[m:\ + :nd=\E[C:nw=\EE:\ + :r1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J:\ + :rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:se=\E[0m:\ + :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ts=\E[25;1H:ue=\E[24m:\ + :up=\E[A:us=\E[4m:vb=\E[?5l\E[?5h:ve=\E[0V\E8:\ + :vs=\E7\E[0U: + +# Fri Aug 5 08:11:57 1983 +# This entry works for the ergo 4000 with the following setups: +# ansi,wraparound,newline disabled, xon/xoff disabled in both +# setup a & c. +# +# WARNING!!! There are multiple versions of ERGO 4000 microcode +# Be advised that very early versions DO NOT WORK RIGHT !! +# Microterm does have a ROM exchange program- use it or lose big +# (ergo400: added <rmam>/<smam> based on the init string -- esr) +ergo4000|microterm ergo 4000:\ + :da:db:ms:\ + :co#80:li#66:\ + :AL=\E[1L:RA=\E[?7l:SA=\E[?7m:bl=^G:cd=\E[0J:ce=\E[0K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[1M:\ + :do=\E[B:ei=\E[4l:im=\E[4h:\ + :is=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:ke=\E=:kl=\E[D:kr=\E[C:\ + :ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:le=^H:me=\E[m:\ + :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A: + +#### NCR +# +# NCR's terminal group was merged with AT&T's when AT&T bought the company. +# For what happened to that group, see the ADDS section. +# +# There is an NCR4103 terminal that's just a re-badged Wyse-50. +# + +# The following vendor-supplied termcaps were captured from the Boundless +# Technologies site, 8 March 1998. I removed all-upper-case names that were +# identical, except for case, to lower-case ones. I also uncommented the acsc +# capabilities.X +# +# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +# DEC vt200/300 with color capabilities added. +ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300an: +# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +# DEC vt200/300 with color capabilities added. +ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300wan: +# The Intecolor emulation of the NCR 2900/260C color terminal is basically a +# DEC vt200/300 with color capabilities added. +ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300pp: +# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a +# DEC vt200/300 with color capabilities added. +ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode:\ + :Co#8:pa#64:\ + :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300wpp: +# This definition for ViewPoint supports several attributes. This means +# that it has magic cookies (extra spaces where the attributes begin). +# Some applications do not function well with magic cookies. The System +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# If supporting various attributes is not vital, 'xmc#1' and the extra +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be +# restored if needed. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260vppp|NCR 2900_260 viewpoint:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:sg#1:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^A:\ + :K3=\EJ:K4=\ET:K5=\EJ:ae=\EcB0\EH\003:al=\EM:\ + :as=\EcB1\EH\002:bl=^G:bt=\EI:cd=\Ek:ce=\EK:cl=\014:\ + :cm=\EY%+ %+ :cr=\r:dc=\EW:dl=\El:do=\n:ds=\E`c:ei=\Er:\ + :fs=^M:ho=\036:im=\Eq:\ + :is=\Ee6\E~%\E+\E`\072\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\ + :k1=^B1\r:k2=^B2\r:k3=^B3\r:k4=^B4\r:k5=^B5\r:k6=^B6\r:\ + :k7=^B7\r:k8=^B8\r:k9=^B9\r:kD=\EW:kI=\Eq:kN=\EJ:kP=\EJ:\ + :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=\010:ll=\001:mb=\EG2:\ + :me=\EG0\EH\003:mh=\EGp:mr=\EG4:nd=\006:nw=\037:se=\EG0:\ + :sf=\n:so=\EG4:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:up=\032:\ + :us=\EG8:ve=\E`5:vi=\E`0:vs=\E`5: +ncr260vpwpp|NCR 2900_260 viewpoint wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\E~%\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\ + :r2=\Ee6\E~%\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\ + :tc=ncr260vppp: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260vt100an|NCR 2900_260 vt100 with ansi kybd:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:cr=\r:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\ + :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\ + :im=\E[4h:\ + :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kD=\E[3~:kI=\E[2~:\ + :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\ + :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\ + :se=\E[0m:sf=\ED:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}:ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l: +ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :tc=ncr260vt100an: +ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd:\ + :@7=\E[5~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:\ + :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :kD=\E[4~:kI=\E[1~:kN=\E[6~:kP=\E[3~:kd=\E[B:ke=\E>:\ + :kh=\E[2~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:\ + :l3=pf3:l4=pf4:\ + :r2=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:tc=ncr260vt100an: +ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :tc=ncr260vt100pp: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260vt200an|NCR 2900_260 vt200 with ansi kybd:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=\017:al=\E[L:as=\016:\ + :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:\ + :cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\ + :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\ + :im=\E[4h:\ + :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ + :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\ + :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}:ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l: +ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H:\ + :tc=ncr260vt200an: +ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd:\ + :@7=\E[1~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:kD=\E[4~:\ + :kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ + :tc=ncr260vt200an: +ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :tc=ncr260vt200pp: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260vt300an|NCR 2900_260 vt300 with ansi kybd:\ + :am:hs:mi:ms:xn:xo:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=\017:al=\E[L:as=\016:\ + :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:\ + :cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\ + :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\ + :im=\E[4h:\ + :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\ + :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ + :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\ + :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\ + :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[2$~\E[1$}:ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l: +ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H:\ + :tc=ncr260vt300an: +ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd:\ + :@7=\E[1~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:kD=\E[4~:\ + :kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\ + :tc=ncr260vt300an: +NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd:\ + :co#132:\ + :cm=\E[%i%d;%dH:\ + :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\ + :tc=ncr260vt300pp: +# This terminfo file contains color capabilities for the Wyse325 emulation of +# the NCR 2900/260C color terminal. Because of the structure of the command +# (escape sequence) used to set color attributes, one of the fore/background +# colors must be preset to a given value. I have set the background color to +# black. The user can change this setup by altering the last section of the +# 'setf' definition. The escape sequence to set color attributes is +# ESC d y <foreground_color> <background_color> 1 +# In addition, the background color can be changed through the desk accessories. +# The capablitiy 'op' sets colors to green on black (default combination). +# +# NOTE: The NCR Unix System Administrator's Shell will not function properly +# if the 'pairs' capability is defined. Un-Comment the 'pairs' +# capability and recompile if you wish to have it included. +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260wy325pp|NCR 2900_260 wyse 325:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\ + :K2=\EJ:K4=\ET:K5=\EK:ae=\EH\003\EcB0:al=\EE:\ + :as=\EH\002\EcB1:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=\n:ds=\E`c:\ + :ei=\Er:fs=^M:ho=\036:im=\Eq:\ + :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\ + :me=\EG0\EcB0\EcD:mr=\EG4:nd=\014:nw=\037:se=\EG0:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:up=\013:us=\EG8:\ + :ve=\E`1:vi=\E`0:vs=\E`5: +ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :r2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :tc=ncr260wy325pp: +# This definition for Wyse 350 supports several attributes. This means +# that it has magic cookies (extra spaces where the attributes begin). +# Some applications do not function well with magic cookies. The System +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# If supporting various attributes is not vital, 'xmc#1' and the extra +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be +# restored if needed. +# In addition, color capabilities have been added to this file. The drawback, +# however, is that the background color has to be black. The foreground colors +# are numbered 0 through 15. +# +# NOTE: The NCR Unix System Administrator's Shell does not function properly +# with the 'pairs' capability defined as below. If you wish to +# have it included, Un-comment it and recompile (using 'tic'). +# +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260wy350pp|NCR 2900_260 wyse 350:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:sg#1:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\ + :K4=\ET:K5=\EK:ae=\EH\003\EcB0:al=\EE:as=\EH\002\EcB1:\ + :bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :cr=^M:\ + :ct=\E0:dc=\EW:dl=\ER:do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:\ + :im=\Eq:\ + :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\ + :me=\EG0\EH\003\EcD:mh=\EGp:mr=\EG4:nd=\014:nw=\037:\ + :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:\ + :up=\013:us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5: +ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :r2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :tc=ncr260wy350pp: +# This definition for Wyse 50+ supports several attributes. This means +# that it has magic cookies (extra spaces where the attributes begin). +# Some applications do not function well with magic cookies. The System +# Administrator's Shell in NCR Unix SVR4 1.03 is one such application. +# If supporting various attributes is not vital, 'xmc#1' and the extra +# attributes can be removed. +# Mapping to ASCII character set ('acsc' capability) can also be +# restored if needed. +# (ncr260wy50+pp: originally contained commented-out +# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260wy50+pp|NCR 2900_260 wyse 50+:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:sg#1:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\ + :K4=\ET:K5=\EK:ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:cd=\EY:\ + :ce=\ET:cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:\ + :do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:im=\Eq:\ + :is=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\ + :me=\EG0\EH\003:mh=\EGp:mr=\EG4:nd=\014:nw=\037:se=\EG0:\ + :sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=\011:ts=\EF:ue=\EG0:up=\013:\ + :us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5: +ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :r2=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :tc=ncr260wy50+pp: +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +ncr260wy60pp|NCR 2900_260 wyse 60:\ + :am:bw:hs:km:mi:ms:xo:\ + :co#80:li#24:\ + :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\ + :K2=\EJ:K4=\ET:K5=\EK:ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:\ + :cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:\ + :dl=\ER:do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:im=\Eq:\ + :is=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\ + :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\ + :me=\EG0\EcB0\EcD:mr=\EG4:nd=\014:nw=\037:se=\EG0:sf=\n:\ + :so=\EGt:sr=\Ej:st=\E1:ta=\011:ts=\EF:ue=\EG0:up=\013:\ + :us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5: +ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode:\ + :co#132:\ + :cm=\Ea%i%dR%dC:\ + :is=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :r2=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\ + :tc=ncr260wy60pp: +ncr160vppp|NCR 2900_160 viewpoint:\ + :tc=ncr260vppp: +ncr160vpwpp|NCR 2900_160 viewpoint wide mode:\ + :tc=ncr260vpwpp: +ncr160vt100an|NCR 2900_160 vt100 with ansi kybd:\ + :tc=ncr260vt100an: +ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd:\ + :tc=ncr260vt100pp: +ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd:\ + :tc=ncr260vt100wan: +ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd:\ + :tc=ncr260vt100wpp: +ncr160vt200an|NCR 2900_160 vt200 with ansi kybd:\ + :tc=ncr260vt200an: +ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd:\ + :tc=ncr260vt200pp: +ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd:\ + :tc=ncr260vt200wan: +ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd:\ + :tc=ncr260vt200wpp: +ncr160vt300an|NCR 2900_160 vt300 with ansi kybd:\ + :tc=ncr260vt300an: +ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd:\ + :tc=ncr260vt300pp: +ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd:\ + :tc=ncr260vt300wan: +ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd:\ + :tc=ncr260vt300wpp: +ncr160wy50+pp|NCR 2900_160 wyse 50+:\ + :tc=ncr260wy50+pp: +ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode:\ + :tc=ncr260wy50+wpp: +ncr160wy60pp|NCR 2900_160 wyse 60:\ + :tc=ncr260wy60pp: +ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode:\ + :tc=ncr260wy60wpp: +ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal:\ + :5i:am:hs:mi:ms:xo:\ + :Nl#32:co#80:it#8:li#24:\ + :#4=\E[D:%i=\E[C:@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :DO=\E[%dB:K1=\E[H:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\ + :ac=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~:ae=\017:\ + :al=\E[B\E[L:as=\016:bl=^G:cb=\E[1K:cd=\E[0J:ce=\E[0K:\ + :cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:ds=\E[31l:eA=\E(B\E)0:\ + :ei=\E[4l:fs=1:ho=\E[H:im=\E[4h:\ + :is=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:\ + :ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\017\E[0m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:ps=\E[i:\ + :r2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031:\ + :rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>:\ + :sc=\E7:se=\E[0m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ts=\E[>+1:ue=\E[0m:up=\E[A:us=\E[4m: +ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal:\ + :co#132:\ + :is=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0:\ + :r2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031:\ + :tc=ncrvt100an: +# +# Vendor-supplied NCR termcaps end here + +# NCR7900 DIP switches: +# +# Switch A: +# 1-4 - Baud Rate +# 5 - Parity (Odd/Even) +# 6 - Don't Send or Do Send Spaces +# 7 - Parity Enable +# 8 - Stop Bits (One/Two) +# +# Switch B: +# 1 - Upper/Lower Shift +# 2 - Typewriter Shift +# 3 - Half Duplex / Full Duplex +# 4 - Light/Dark Background +# 5-6 - Carriage Return Without / With Line Feed +# 7 - Extended Mode +# 8 - Suppress Keyboard Display +# +# Switch C: +# 1 - End of line entry disabled/enabled +# 2 - Conversational mode / (Local?) Mode +# 3 - Control characters displayed / not displayed +# 4 - (2-wire?) / 4-wire communications +# 5 - RTS on and off for each character +# 6 - (50Hz?) / 60 Hz +# 7 - Exit after level zero diagnostics +# 8 - RS-232 interface +# +# Switch D: +# 1 - Reverse Channel (yes / no) +# 2 - Manual answer (no / yes) +# 3-4 - Cursor appearance +# 5 - Communication Rate +# 6 - Enable / Disable EXT turnoff +# 7 - Enable / Disable CR turnoff +# 8 - Enable / Disable backspace +# +# Since each attribute parameter is 0 or 1, we shift each attribute (standout, +# reverse, blink, dim, and underline) the appropriate number of bits (by +# multiplying the 0 or 1 by a correct factor to shift) so the bias character, +# '@' is (effectively) "or"ed with each attribute to generate the proper third +# character in the <ESC>0 sequence. The :sa: string implements the following +# equation: +# +# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) => +# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17)) +# +# Where: P1 <==> Standout attribute parameter +# P2 <==> Underline attribute parameter +# P3 <==> Reverse attribute parameter +# P4 <==> Blink attribute parameter +# P5 <==> Dim attribute parameter +# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO. +ncr7900i|ncr7900|ncr 7900 model 1:\ + :am:bw:ul:\ + :co#80:li#24:sg#1:\ + :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\E1%r%.%.:cr=^M:do=^J:\ + :is=\E0@\010\E3\E4\E7:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:\ + :ll=^A:mb=\E0B:me=\E0@:mh=\E0A:mr=\E0P:nd=^F:pf=^T:po=^R:\ + :..sa=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c:\ + :se=\E0@:sf=^J:so=\E0Q:ue=\E0@:up=^Z:us=\E0`: +ncr7900iv|ncr 7900 model 4:\ + :am:bw:es:hs:\ + :co#80:li#24:\ + :al=\E^N:bl=^G:cl=^L:cm=\013%+@\E\005%02:cr=^M:dl=\E^O:\ + :do=^J:ds=\Ey1:fs=\Ek\Ey5:ho=\013@\E^E00:k1=\ES:k2=\ET:\ + :k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:kb=^H:kd=\EB:\ + :kh=\EH:kl=\ED:kr=\EC:ku=\EA:l6=blue:l7=red:l8=white:le=^H:\ + :nw=^M^J:sf=^J:ts=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo: +# Warning: This terminal will lock out the keyboard when it receives a CTRL-D. +# The user can enter a CTRL-B to get out of this locked state. +# In <hpa>, we want to output the character given by the formula: +# ((col / 10) * 16) + (col % 10) where "col" is "p1" +ncr7901|ncr 7901 model:\ + :am:bw:ul:\ + :co#80:li#24:\ + :bl=^G:cd=\Ek:ce=\EK:ch=\020%+^J:cl=^L:cm=\EY%+ %+ :cr=^M:\ + :cv=\013%+@:do=^J:is=\E4^O:kC=^L:kd=^J:kh=^H:kl=^U:kr=^F:\ + :ku=^Z:le=^H:ll=^A:mb=\E0B:me=^O:mh=\E0A:mr=\E0P:nd=^F:pf=^T:\ + :po=^R:\ + :..sa=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016:\ + :se=^O:sf=^J:so=\E0Q\016:ue=^O:up=^Z:us=\E0`\016:ve=^X:\ + :vi=^W: + +#### Perkin-Elmer (Owl) +# +# These are official terminfo entries from within Perkin-Elmer. +# + +bantam|pe550|pe6100|perkin elmer 550:\ + :bs:\ + :co#80:li#24:\ + :bl=^G:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:do=^J:ho=\EH:\ + :le=^H:ll=\EH\EA:nd=\EC:sf=^J:up=\EA: +fox|pe1100|perkin elmer 1100:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :cr=^M:\ + :ct=\E3:do=^J:ho=\EH:le=^H:ll=\EH\EA:nd=\EC:sf=^J:st=\E1:\ + :up=\EA:vb=\020\002\020\003: +owl|pe1200|perkin elmer 1200:\ + :am:bs:in:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :\ + :cr=^M:ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:im=:ip=:\ + :k0=\ERJ:k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:\ + :k7=\ERG:k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:me=\E\041\0:\ + :nd=\EC:se=\E\041\0:sf=^J:so=\E\041^H:st=\E1:up=\EA:\ + :vb=\020\002\020\003: +pe1251|pe6300|pe6312|perkin elmer 1251:\ + :am:\ + :co#80:it#8:li#24:pb#300:sg#1:vt#8:\ + :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:ct=\E3:\ + :do=\EB:ho=\EH:k0=\ERA:k1=\ERB:k2=\ERC:k3=\ERD:k4=\ERE:\ + :k5=\ERF:k6=\ERG:k7=\ERH:k8=\ERI:k9=\ERJ:k;=\ERK:le=\ED:\ + :nd=\EC:sf=^J:st=\E1:up=\EA: +# (pe7000m: this had +# rmul=\E!\0, smul=\E!\040, +# which is probably wrong, it collides with kf0 +pe7000m|perkin elmer 7000 series monochrome monitor:\ + :am:\ + :co#80:li#24:\ + :bl=^G:bt=\E\041Y:cd=\EJ:ce=\EI:cl=\EK:cm=\ES%+ %+ :cr=^M:\ + :do=\EB:ho=\EH:i1=\E\041\0\EW 7o\Egf\ES7 :k0=\E\041\0:\ + :k1=\E\041^A:k2=\E\041^B:k3=\E\041^C:k4=\E\041^D:\ + :k5=\E\041^E:k6=\E\041^F:k7=\E\041^G:k8=\E\041^H:\ + :k9=\E\041^I:k;=\E\041^J:kb=^H:kd=\E\041U:kh=\E\041S:\ + :kl=\E\041V:kr=\E\041W:ku=\E\041T:le=\ED:ll=\ES7 :nd=\EC:\ + :sf=^J:sr=\ER:up=\EA: +pe7000c|perkin elmer 7000 series colour monitor:\ + :i1=\E\041\0\EW 7o\Egf\Eb0\Ec7\ES7 :se=\Eb0:so=\Eb2:\ + :ue=\E\041\0:us=\E\041 :\ + :tc=pe7000m: + +#### Prime +# +# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings +# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr. +# Prime merged with ComputerVision in the late 1980s; you can reach them at: +# +# ComputerVision Services +# 500 Old Connecticut Path +# Framingham, Mass. +# + +# Standout mode is dim reverse-video. +pt100|pt200|wren|fenix|prime pt100/pt200:\ + :am:bw:mi:ms:\ + :co#80:it#8:li#24:\ + :DC=\E[%dP:DL=\E[M:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:al=\E[L\E[t:bt=\E[Z:cd=\E[J\E[r:ce=\E[K\E[t:\ + :cl=\E?:cm=\E0%+!%+!:cr=^M:dc=\E[P:do=\ED:ei=\E[4l:ho=\E$B:\ + :im=\E[4h:kb=^H:kd=\E[B:ke=\E[>13l:kh=\E$A:kl=\E[D:kr=\E[C:\ + :ks=\E[>13h:ku=\E[A:le=^H:me=\E[m:mh=\E[2m:nd=\E[C:nw=^M^J:\ + :se=\E[m:sf=^J:so=\E[2;7m:ta=^I:te=:\ + :ti=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q:\ + :ue=\E[m:up=\EM:us=\E[4m:vb=\E$\E$P: +pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode:\ + :co#132:\ + :cm=\E[%i%d;%dH:tc=pt100: +pt250|Prime PT250:\ + :se@:so@:tc=pt100: +pt250w|Prime PT250 in 132-column mode:\ + :se@:so@:tc=pt100w: + +#### Sperry Univac +# +# Sperry Univac has merged with Burroughs to form Unisys. +# + +# This entry is for the Sperry UTS30 terminal running the TTY +# utility under control of CP/M Plus 1R1. The functionality +# provided is comparable to the DEC vt100. +# (uts30: I added <rmam>/<smam> based on the init string -- esr) +uts30|sperry uts30 with cp/m@1R1:\ + :am:bw:hs:\ + :co#80:li#24:ws#40:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7m:SF=\E[%dB:\ + :SR=\E[%dA:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\Ed:al=\EN:as=\EF:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\EU%+ %+ :dc=\EM:dl=\EL:do=\EB:\ + :ei=:fs=^M:ho=\E[H:ic=\EO:im=:is=\E[U 7\E[24;1H:kb=^H:\ + :kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\EC:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\EX:\ + :rf=/usr/share/tabset/vt100:sc=\EW:se=\E[m:sf=^J:\ + :so=\E[7m:sr=\EI:ta=^I:ts=\E]:uc=\EPB:ue=\E[m:up=\E[A:\ + :us=\E[4m:ve=\ES:vi=\ER: + +#### Tandem +# +# Tandem builds these things for use with its line of fault-tolerant +# transaction-processing computers. They aren't generally available +# on the merchant market, and so are fairly uncommon. +# + +tandem6510|adm3a repackaged by Tandem:\ + :tc=adm3a: + +# A funny series of terminal that TANDEM uses. The actual model numbers +# have a fourth digit after 653 that designates minor variants. These are +# natively block-mode and rather ugly, but they have a character mode which +# this doubtless(?) exploits. There is a 6520 that is slightly dumber. +# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also, +# removed :if=/usr/share/tabset/tandem653:, no such file -- esr) +tandem653|t653x|Tandem 653x multipage terminal:\ + :am:bs:da:db:hs:\ + :co#80:li#24:sg#1:ws#64:\ + :cd=\EJ:ce=\EK:cl=\EI:cm=\023%+ %+ :do=^J:ds=\Eo\r:fs=^M:\ + :ho=\EH:le=^H:me=\E6 :nd=\EC:se=\E6 :sf=\ES:so=\E6$:sr=\ET:\ + :ts=\Eo:ue=\E6 :up=\EA:us=\E60: + +#### Tandy/Radio Shack +# +# Tandy has a line of VDTs distinct from its microcomputers. +# + +dmterm|deskmate terminal:\ + :am:bw:\ + :co#80:li#24:\ + :al=\EP:bl=^G:cd=\EJ:ce=\EK:cl=\Ej:cm=\EY%+ %+ :cr=^M:\ + :dc=\ES:dl=\ER:do=\EB:ei=:ho=\EH:ic=\EQ:im=:k0=\E1:k1=\E2:\ + :k2=\E3:k3=\E4:k4=\E5:k5=\E6:k6=\E7:k7=\E8:k8=\E9:k9=\E0:\ + :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:l0=f1:l1=f2:l2=f3:l3=f4:\ + :l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:le=^H:ll=\EE:mk@:nd=\EC:\ + :sf=\EX:ta=^I:ue@:up=\EA:us@:ve=\EG6:vi=\EG5:\ + :tc=adm+sgr: +dt100|dt-100|Tandy DT-100 terminal:\ + :xo:\ + :co#80:li#24:sg#1:\ + :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\010\E[%i%d;%dH:cr=^M:\ + :cs=\E[%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:\ + :im=:is=\E[?3l\E)0\E(B:k1=\E[?3i:k2=\E[2i:k3=\E[@:k4=\E[M:\ + :k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:k9=\E[21~:\ + :k;=\E[?5i:kN=\E[29~:kP=\E[28~:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:l1=f1:l2=f2:l3=f3:l4=f4:l5=f5:l6=f6:l7=f7:\ + :l8=f8:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\ + :ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: +dt100w|dt-100w|Tandy DT-100 terminal (wide mode):\ + :co#132:tc=dt100: +dt110|Tandy DT-110 emulating ansi:\ + :xo:\ + :co#80:li#24:\ + :@7=\E[K:ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[0L:as=^N:\ + :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:cm=\010\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dc=\E[0P:dl=\E[0M:do=\E[0B:\ + :eA=\E(B\E)0:ei=:ho=\E[H:ic=\E[0@:im=:is=\E[?3l\E)0\E(B:\ + :k1=\E[1~:k2=\E[2~:k3=\E[3~:k4=\E[4~:k5=\E[5~:k6=\E[6~:\ + :k7=\E[7~:k8=\E[8~:k9=\E[9~:k;=\E[10~:kI=\E[@:kN=\E[26~:\ + :kP=\E[25~:kd=\E[B:kh=\E[G:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:\ + :l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:le=^H:\ + :me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\ + :ue=\E[m:up=\E[0A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: +pt210|TRS-80 PT-210 printing terminal:\ + :hc:os:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:sf=^J: + +#### Tektronix (tek) +# +# Tektronix tubes are graphics terminals. Most of them use modified +# oscilloscope technology incorporating a long-persistence green phosphor, +# and support vector graphics on a main screen with an attached "dialogue +# area" for interactive text. +# + +tek|tek4012|tektronix 4012:\ + :bs:os:\ + :co#75:li#35:\ + :bl=^G:cl=\E\014:cr=^M:do=^J:ff=\014:is=\E^O:le=^H: +# (tek4013: added <acsc> to suppress tic warnings re :as:/:ae: --esr) +tek4013|tektronix 4013:\ + :ac=:ae=\E^O:as=\E^N:tc=tek4012: +tek4014|tektronix 4014:\ + :co#81:li#38:\ + :is=\E\017\E9:tc=tek4012: +# (tek4015: added <acsc> to suppress tic warnings re :as:/:ae: --esr) +tek4015|tektronix 4015:\ + :ac=:ae=\E^O:as=\E^N:tc=tek4014: +tek4014-sm|tektronix 4014 in small font:\ + :co#121:li#58:\ + :is=\E\017\E\072:tc=tek4014: +# (tek4015-sm: added <acsc> to suppress tic warnings re :as:/:ae: --esr) +tek4015-sm|tektronix 4015 in small font:\ + :ac=:ae=\E^O:as=\E^N:tc=tek4014-sm: +# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay> +# +# You need to have "stty nl2" in effect. Some versions of tset(1) know +# how to set it for you. +# +# It's got the Magic Cookie problem around stand-out mode. If you can't +# live with Magic Cookie, remove the :so: and :se: fields and do without +# reverse video. If you like reverse video stand-out mode but don't want +# it to flash, change the letter 'H' to 'P' in the :so: field. +tek4023|tektronix 4023:\ + :am:bs:\ + :co#80:dN#4:li#24:sg#1:vt#4:\ + :bl=^G:cl=4\E\014:cm=\034%r%+ %+ :cr=^M:do=^J:kb=^H:le=^H:\ + :nd=^I:nl=^J:se=^_@:so=^_P: +# It is recommended that you run the 4025 at 4800 baud or less; +# various bugs in the terminal appear at 9600. It wedges at the +# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed +# on keyboard don't work. You have to hit BREAK twice to get +# one break at any speed - this is a documented feature. +# Can't use cursor motion because it's memory relative, and +# because it only works in the workspace, not the monitor. +# Same for home. Likewise, standout only works in the workspace. +# +# :ce: was commented out since vi and rogue seem to work better +# simulating it with lots of spaces! +# +# :al: and :AL: had 145ms of padding, but that slowed down vi's ^U +# and didn't seem necessary. +# +tek4024|tek4025|tek4027|tektronix 4024/4025/4027:\ + :am:bs:da:db:\ + :co#80:it#8:li#34:lm#0:\ + :AL=\037up\r\037ili %d\r:CC=^_:DL=\037dli %d\r\006:\ + :DO=\037dow %d\r:LE=\037lef %d\r:RI=\037rig %d\r:\ + :UP=\037up %d\r:al=\037up\r\037ili\r:bl=^G:\ + :cd=\037dli 50\r:cl=\037era\r\n\n:cr=^M:dc=\037dch\r:\ + :dl=\037dli\r\006:do=^F^J:ei=:ic=\037ich\r \010:im=:\ + :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\ + :ke=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r:\ + :ks=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r:\ + :le=^H:nd=\037rig\r:sf=^F^J:ta=^I:up=^K: +tek4025-17|tek 4025 17 line window:\ + :li#17:tc=tek4025: +tek4025-17-ws|tek 4025 17 line window in workspace:\ + :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r:\ + :se=\037att s\r:so=\037att e\r:te=\037mon h\r:\ + :ti=\037wor h\r:\ + :tc=tek4025-17: +tek4025-ex|tek4027-ex|tek 4025/4027 w/!:\ + :is=\037com 33\r\n\041sto 9 17 25 33 41 49 57 65 73\r:\ + :te=\037com 33\r:ti=\041com 31\r:\ + :tc=tek4025: +# Tektronix 4025a +# From: Doug Gwyn <gwyn@brl-smoke.ARPA> +# The following status modes are assumed for normal operation (replace the +# initial "!" by whatever the current command character is): +# !COM 29 # NOTE: changes command character to GS (^]) +# ^]DUP +# ^]ECH R +# ^]EOL +# ^]RSS T +# ^]SNO N +# ^]STO 9 17 25 33 41 49 57 65 73 +# Other modes may be set according to communication requirements. +# If the command character is inadvertently changed, termcap can't restore it. +# Insert-character cannot be made to work on both top and bottom rows. +# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas. +# There also seems to be a problem with vertical motion, perhaps involving +# delete/insert-line, following a typed carriage return. This terminal sucks. +# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't +# work any more. -- esr) +tek4025a|Tektronix 4025A:\ + :am:bs:bw:da:db:pt:xo:\ + :co#80:it#8:li#34:\ + :CC=^]:DC=\035dch %d;:DL=\035dli %d;:DO=\035dow %d;:\ + :LE=\035lef %d;:RI=\035rig %d;:SF=\035dow %d;:\ + :UP=\035up %d;:al=\013\035ili;:bl=^G:bt=\035bac;:\ + :ce=\035dch 80;:ch=\r\035rig %d;:cl=\035era;\n\035rup;:\ + :cr=^M:ct=\035sto;:dc=\035dch;:dl=\035dli;:do=^J:le=^H:\ + :nd=\035rig;:\ + :rs=\041com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;:\ + :sf=^J:ta=^I:up=^K: +# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981 +# Here's the command file that I use to get rogue to work on the 4025. +# It should work with any program using the old curses (e.g. it better +# not try to scroll, or cursor addressing won't work. Also, you can't +# see the cursor.) +# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh) +tek4025-cr|tek 4025 for curses and rogue:\ + :am:bs:\ + :co#80:it#8:li#33:\ + :cl=\037era;:cm=\037jum%i%d\054%d;:do=^F^J:\ + :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\ + :le=^H:nd=\037rig;:sf=^F^J:ta=^I:te=\037wor 0:\ + :ti=\037wor 33h:up=^K: +# next two lines commented out since curses only allows 128 chars, sigh. +# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\ +# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0: +tek4025ex|4025ex|4027ex|tek 4025 w/!:\ + :is=\037com 33\r\n\041sto 9\05417\05425\05433\05441\05449\05457\05465\05473\r:\ + :te=\037com 33\r:ti=\041com 31\r:\ + :tc=tek4025: +tek4105|tektronix 4105:\ + :am:bs:mi:ms:ul:xn:xt:\ + :co#79:it#8:li#29:\ + :ac=:ae=\E[m:al=\E[1L:as=\E[1m:bl=^G:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%2;%2H:cr=^M:ct=\E[1g:\ + :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:i1=\E%!1\E[m:\ + :im=\E[4h:is=\E%!1\E[?6141\E[m:kb=^H:kd=\E[1B:kl=\E[1D:\ + :kr=\E[1C:ku=\E[1A:mb=\E[=3;<7m:md=\E[=7;<4m:\ + :me=\E[=0;<1m:mh=\E[=1;<6m:mk=\E[=6;<5:mr=\E[=1;<3m:\ + :nd=\E[1C:se=\E[=0;<1m:sf=\E[S:so=\E[=2;<3m:sr=\E[T:ta=^I:\ + :te=:ti=\E%!1\E[?6l\E[2J:ue=\E[=0;<1m:up=\E[1A:\ + :us=\E[=5;<2m: + +# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr) +tek4105-30|4015 emulating 30 line vt100:\ + :am:mi:ms:xn:xo:\ + :co#80:it#8:li#30:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\ + :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\ + :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: + +# Tektronix 4105 from BRL +# The following setup modes are assumed for normal operation: +# CODE ansi CRLF no DABUFFER 141 +# DAENABLE yes DALINES 30 DAMODE replace +# DAVISIBILITY yes ECHO no EDITMARGINS 1 30 +# FLAGGING input INSERTREPLACE replace LFCR no +# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B +# SELECTCHARSET G1 0 TABS -2 +# Other setup modes may be set for operator convenience or communication +# requirements; I recommend +# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes +# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0 +# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU> +# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1 +# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>" +# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132 +# XMTDELAY 0 +# and factory color maps. After setting these modes, save them with NVSAVE. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# "IC" cannot be used in combination with "im" & "ei". +# "tek4105a" is just a guess: +tek4105a|Tektronix 4105:\ + :bs:ms:pt:xo:\ + :co#80:it#8:kn#8:li#30:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:ae=^O:al=\E[L:\ + :as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E%!1:k0=\EOA:k1=\EOB:k2=\EOC:k3=\EOD:k4=\EOP:k5=\EOQ:\ + :k6=\EOR:k7=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:\ + :l5=F6:l6=F8:le=^H:ll=\E[30;H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:\ + :rs=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E%!0\ELBH=\E%!1:ti=\E[?6l:ue=\E[m:up=\EM:us=\E[4m:\ + :ve=\E%!0\ETD10\E%!1:vi=\E%!0\ETD00\E%!1:\ + :vs=\E%!0\ETD70\E%!1: + +# +# Tektronix 4106/4107/4109 from BRL +# The following setup modes are assumed for normal operation: +# CODE ansi COLUMNMODE 80 CRLF no +# DABUFFER 141 DAENABLE yes DALINES 32 +# DAMODE replace DAVISIBILITY yes ECHO no +# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace +# LFCR no LOCKKEYBOARD no ORIGINMODE relative +# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0 +# TABS -2 +# Other setup modes may be set for operator convenience or communication +# requirements; I recommend +# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes +# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0 +# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU> +# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3 +# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>" +# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132 +# XMTDELAY 0 +# and factory color maps. After setting these modes, save them with NVSAVE. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +# "IC" cannot be used in combination with "im" & "ei". +tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109:\ + :ms:xo:\ + :co#80:it#8:li#32:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:ae=^O:al=\E[L:\ + :as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ + :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E%!1:k0=\EOA:k1=\EOB:k2=\EOC:k3=\EOD:k4=\EOP:k5=\EOQ:\ + :k6=\EOR:k7=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:\ + :l5=F6:l6=F8:le=^H:ll=\E[32;H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:nw=\EE:\ + :r1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7;42m:sr=\EM:st=\EH:\ + :ta=^I:te=\E%!0\ELBH=\E%!1:ti=\E[?6l:ue=\E[m:up=\EM:\ + :us=\E[4m:ve=\E%!0\ETD10\E%!1:vi=\E%!0\ETD00\E%!1:\ + :vs=\E%!0\ETD70\E%!1: + +tek4107|tek4109|tektronix terminals 4107 4109:\ + :am:bs:mi:ms:ul:xn:xt:\ + :co#79:it#8:li#29:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\ELZ:cm=\EY%+ %+ :cr=^M:do=^J:kb=^H:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:mb=\E%!1\E[5m\E%!0:\ + :md=\E%!1\E[1m\E%!0:me=\E%!1\E[m\E%!0:\ + :mh=\E%!1\E[<0m\E%!0:mr=\E%!1\E[7m\E%0:nd=\EC:\ + :..sa=\E%%\0411\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m\E%%\0410:\ + :se=\E%!1\E[m\E%!0:sf=^J:so=\E%!1\E[7;5m\E%!0:sr=\EI:\ + :ta=^I:ue=\E%!1\E[m\E%!0:up=\EA:us=\E%!1\E[4m\E%!0:\ + :ve=\E%!0:vs=\E%!3: +# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s; +# see the note attached to tek4207. +tek4207-s|Tektronix 4207 with sysline but no memory:\ + :es:hs:\ + :ds=\E7\E[?6l\E[2K\E[?6h\E8:fs=\E[?6h\E8:\ + :i1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\ + :is=\E7\E[?6l\E[2K\E[?6h\E8:\ + :ts=\E7\E[?6l\E[2K\E[;%i%df:tc=tek4107: + +# The 4110 series may be a wonderful graphics series, but they make the 4025 +# look good for screen editing. In the dialog area, you can't move the cursor +# off the bottom line. Out of the dialog area, ^K moves it up, but there +# is no way to scroll. +# +# Note that there is a floppy for free from Tek that makes the +# 4112 emulate the vt52 (use the vt52 termcap). There is also +# an expected enhancement that will use ANSI standard sequences. +# +# 4112 in non-dialog area pretending to scroll. It really wraps +# but vi is said to work (more or less) in this mode. +# +# 'vi' works reasonably well with this entry. +# +otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series:\ + :am:\ + :co#80:li#34:\ + :bl=^G:cl=\E^L:cr=^M:do=^J:le=^H:sf=^J:te=\EKA1\ELV1:\ + :ti=\EKA0\ELV0\EMG0:up=^K: +# The 4112 with the ANSI compatibility enhancement +tek4112|tek4114|tektronix 4110 series:\ + :am:bs:db:\ + :co#80:li#34:\ + :al=\E[L:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[0;0H:\ + :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:im=:\ + :is=\E3\0411:le=^H:me=\E[m:nd=\E[C:se=\E[m:\ + :sf=\E7\E[0;0H\E[M\E8:so=\E[7m:sr=\E7\E[0;0H\E[L\E8:\ + :ue=\E[m:up=\EM:us=\E[4m: +tek4112-nd|4112 not in dialog area:\ + :ns:\ + :up=^K:tc=tek4112: +tek4112-5|4112 in 5 line dialog area:\ + :li#5:tc=tek4112: +# (tek4113: this used to have ":nd=\LM1\s\LM0:", someone's mistake; +# removed ":as=\E^N:, :ae=\E^O:", which had been commented out in 8.3. +# Note, the !0 and !1 sequences in :te:/:ti:/:ve:/:vi: were +# previously \0410 and \0411 sequences...I don't *think* they were supposed +# to be 4-digit octal -- esr) +tek4113|tektronix 4113 color graphics with 5 line dialog area:\ + :am:bs:da:eo:\ + :co#80:li#5:\ + :cl=\ELZ:do=^J:is=\EKA1\ELL5\ELV0\ELV1:le=^H:\ + :nd=\ELM1 \ELM0:uc=\010\ELM1_\ELM0:\ + :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0: +tek4113-34|tektronix 4113 color graphics with 34 line dialog area:\ + :li#34:\ + :is=\EKA1\ELLB2\ELV0\ELV1:tc=tek4113: +# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not +# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up . +# :vb: needs enough delay to let you see the background color being toggled. +tek4113-nd|tektronix 4113 color graphics with no dialog area:\ + :am:bs:eo:\ + :co#80:it#8:li#34:\ + :cl=\E^L:do=^J:ho=\ELF7l\177 @:is=\ELZ\EKA0\ELF7l\177 @:\ + :le=^H:ll=\ELF hl @:nd=^I:se=\EMT1:so=\EMT2:ta=^I:\ + :uc=\010\EMG1_\EMG0:up=^K:\ + :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0:\ + :vs=\ELZ\EKA0: +# This entry is from Tek. Inc. (Brian Biehl) +# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr) +otek4115|Tektronix 4115:\ + :am:bs:da:db:eo:\ + :co#80:it#8:li#34:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:\ + :ei=\E[4l:ho=\E[H:if=/usr/share/tabset/vt100:im=\E[4h:\ + :is=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m:\ + :kb=^H:ke=\E>:ks=\E=:le=\E[D:me=\E[m:nd=\E[C:se=\E[m:\ + :so=\E[7m:sr=\EM:ta=^I:te=\E%!0\ELBG8\E%!1\E[34;1H\E[J:\ + :ti=\E%!0\ELBB2\E%!1:ue=\E[m:up=\E[A:us=\E[4m:\ + :ve=\E%!0\ELBG8\E%!1\E[34;1H:vs=\E%!0\ELBB2\E%!1: +tek4115|newer tektronix 4115 entry with more ANSI capabilities:\ + :am:xo:\ + :co#80:li#34:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\ + :RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:al=\E[L:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:cv=\E[%+^Ad:dc=\E[P:\ + :dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mk=\E[8m:mr=\E[7m:nd=\E[C:..rp=%p1%c\E[%p2%{1}%-%db:\ + :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\ + :se=\E[m:sf=^J:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# The tek4125 emulates a vt100 incorrectly - the scrolling region +# command is ignored. The following entry replaces :cs: with the needed +# :AL:, :AL:, and :im:; removes some cursor pad commands that the tek4125 +# chokes on; and adds a lot of initialization for the tek dialog area. +# Note that this entry uses all 34 lines and sets the cursor color to green. +# Steve Jacobson 8/85 +# (tek4125: there were two "\!"s in the is that I replaced with "\E!"; +# commented out, :im:=\E1 because there's no :ei: -- esr) +tek4125|tektronix 4125:\ + :li#34:\ + :al=\E[1L:cs@:dl=\E[1M:\ + :is=\E%\E\0410\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E\0411\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :ks=\E=:rc@:sc@:\ + :tc=vt100: + +# From: <jcoker@ucbic> +# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO +# supplied another, less capable 4107 entry. So we'll use that for 4107 and +# note that if jcoker wasn't confused you may be able to use this one. +# I merged in :ms:,:sf:,:sr:,<invis>,:ct: from a BRL entry -- esr) +tek4207|Tektronix 4207 graphics terminal with memory:\ + :am:bw:mi:ms:ul:xn:\ + :co#80:it#8:li#32:\ + :al=3\E[L:bt=\E[Z:cd=\E[J:ce=5\E[K:cl=156\E[H\E[J:\ + :cm=\E[%i%d;%dH:ct=\E[1g:dc=4\E[P:dl=3\E[M:do=^J:ei=:\ + :ho=\E[H:ic=4\E[@:im=:\ + :is=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\ + :kd=\ED:kh=\E[H:kl=\E[D:kr=\E[C:ku=\EM:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mk=\E[=6;<5:mr=\E[7m:nd=\E[C:se=\E[m:\ + :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:\ + :te=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f:ti=\E[?6l\E[H\E[J:\ + :ue=\E[m:up=\EM:us=\E[4m: + +# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985 +# (tek4404: There was a "\!" in :ti: that I replaced with "\E!". +# Tab had been given as \E2I,that must be the tab-set capability -- esr) +tek4404|tektronix 4404:\ + :bs:\ + :co#80:it#8:li#32:\ + :al=\E[1L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\ + :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[1M:do=^J:ei=\E[4l:ho=\E[H:\ + :im=\E[4h:kd=\E[B:ke=\E[?1h:kl=\E[D:kr=\E[C:ks=\E[?1l:\ + :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:rc=\E8:\ + :sc=\E7:se=\E[27m:so=\E[7m:st=\E[2I:ta=^I:\ + :te=\E[1;1H\E[0J\E[?6h\E[?1l:\ + :ti=\E%\E\0411\E[1;32r\E[?6l\E>:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# Some unknown person wrote: +# I added the is string - straight Unix has ESC ; in the login +# string which sets a ct8500 into monitor mode (aka 4025 snoopy +# mode). The is string here cleans up a few things (but not +# everything). +ct8500|tektronix ct8500:\ + :am:bw:da:db:\ + :co#80:li#25:\ + :al=\E^L:bl=^G:bt=\E^I:cd=\E^U:ce=\E^T:cl=\E^E:\ + :cm=\E|%+ %+ :cr=^M:dc=\E^]:dl=\E^M:do=^J:ei=:ic=\E^\:im=:\ + :is=\037\EZ\Ek:le=^H:me=\E :nd=\ES:se=\E :sf=^J:so=\E$:\ + :sr=\E^A:ta=^I:ue=\E :up=\ER:us=\E\041: + +# Tektronix 4205 terminal. +# +# am is not defined because the wrap around occurs not when the char. +# is placed in the 80'th column, but when we are attempting to type +# the 81'st character on the line. (esr: hmm, this is like the vt100 +# version of xenl, perhaps am + xenl would work!) +# +# Bold, dim, and standout are simulated by colors and thus not allowed +# with colors. The tektronix color table is mapped into the RGB color +# table by setf/setb. All colors are reset to factory specifications by oc. +# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the +# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub- +# interval then maps into pre-defined value. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +tek4205|tektronix 4205:\ + :cc:mi:ms:\ + :Co#8:NC#49:co#80:it#8:li#30:pa#63:\ + :AL=\E[%dL:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[1L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\ + :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[1g:\ + :dc=\E[1P:dl=\E[1M:do=\E[B:eA=\E)0:ec=\E%dX:ei=\E[4l:\ + :ho=\E[H:i1=\E%!0\ETM1\E%!1\E[m:im=\E[4h:k0=\EOA:k1=\EOB:\ + :k2=\EOC:k3=\EOD:k4=\EP:k5=\EQ:k6=\ER:k7=\ES:kb=^H:kd=\E[B:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[=7;<4m:\ + :me=\E[=0;<1m\E[24;25;27m\017:mh=\E[=1;<6m:mk=\E[=6;<5:\ + :mr=\E[7m:nd=\E[C:\ + :oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1:\ + :op=\E[39;40m:se=\E[=0;<1m:sf=\ED:so=\E[=2;<3m:sr=\EM:\ + :ta=^I:te=:ti=\E%%\0411\E[?6l\E[2J:ue=\E[24m:up=\E[A:\ + :us=\E[4m: + +#### Teletype (tty) +# +# These are the hardcopy Teletypes from before AT&T bought the company, +# clattering electromechanical dinosaurs in Bakelite cases that printed on +# pulpy yellow roll paper. If you remember these you go back a ways. +# Teletype-branded VDTs are listed in the AT&T section. +# +# The earliest UNIXes were designed to use these clunkers; nroff and a few +# other programs still default to emitting codes for the Model 37. +# + +tty33|tty35|model 33 or 35 teletype:\ + :hc:os:xo:\ + :co#72:\ + :bl=^G:cr=^M:do=^J:sf=^J: +tty37|model 37 teletype:\ + :bs:hc:os:xo:\ + :bl=^G:cr=^M:do=^J:hd=\E9:hu=\E8:le=^H:sf=^J:up=\E7: + +# There are known to be at least three flavors of the tty40, all seem more +# like IBM half duplex forms fillers than ASCII terminals. They have lots of +# awful braindamage, such as printing a visible newline indicator after each +# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is +# braindamaged but has hope and is described here. The 40-4 is a 3270 +# lookalike and beyond hope. The terminal has visible bell but I don't know +# it - it's null here to prevent it from showing the BL character. +# There is an \EG in <nl> because of a bug in old vi (if stty says you have +# a "newline" style terminal (-crmode) vi figures all it needs is nl +# to get crlf, even if :cr: is not ^M.) +# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr) +tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2:\ + :bs:xo:\ + :co#80:li#24:\ + :al=\EL:cd=\EJ:cl=\EH\EJ:cr=\EG:ct=\EH\E2:dc=\EP:dl=\EM:\ + :do=\EB:ei=:ho=\EH:ic=\E\136:im=:kb=^]:kl=^H:le=^H:nd=\EC:\ + :pf=^T:po=\022:r2=\023\ER:se=\E4:sf=\ES:so=\E3:sr=\ET:\ + :st=\E1:ta=\E@:up=\E7: +tty43|model 43 teletype:\ + :am:bs:hc:os:xo:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J: + +#### Tymshare +# + +# You can add :is=\E<: to put this 40-column mode, though I can't +# for the life of me think why anyone would want to. +scanset|sc410|sc415|Tymshare Scan Set:\ + :am:bw:ms:\ + :co#80:li#24:\ + :ac=j%k4l<m-q\054x5:ae=^O:as=^N:bl=^G:cd=\EJ:ce=\EK:\ + :cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:do=^J:ho=\EH:kd=\EB:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:nd=^I:pf=\E;0:po=\E;0:ps=\E;3:r1=\E>:\ + :rc=^C:sc=^B:sf=^J:up=^K: + +#### Volker-Craig (vc) +# +# If you saw a Byte Magazine cover with a terminal on it during the early +# 1980s, it was probably one of these. Carl Helmers liked them because +# they could crank 19.2 and were cheap (that is, he liked them until he tried +# to program one...) +# + +# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time +# every other linefeed. +vc303|vc103|vc203|volker-craig 303:\ + :am:bs:ns:\ + :co#80:li#24:\ + :bl=^G:cl=\014:cr=^M:do=^J:ho=\013:kd=^J:kl=^H:kr=^I:ku=^N:\ + :le=^H:ll=\017W:nd=^I:up=^N: +vc303a|vc403a|volker-craig 303a:\ + :ce=\026:cl=\030:ho=\031:kr=^U:ku=^Z:ll=^P:nd=^U:up=^Z:tc=vc303: +# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr) +vc404|volker-craig 404:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cd=\027:ce=\026:cl=\030:cm=\020%+ %+ :cr=^M:do=^J:\ + :ho=\031:kd=^J:kl=^H:kr=^U:ku=^Z:le=^H:nd=^U:sf=^J:up=^Z: +vc404-s|volker-craig 404 w/standout mode:\ + :do=^J:se=^O:so=^N:tc=vc404: +# From: <wolfgang@cs.sfu.ca> +# (vc414: merged in cup/dl1/home from an old vc414h-noxon) +vc414|vc414h|Volker-Craig 414H in sane escape mode.:\ + :am:bs:\ + :co#80:li#24:\ + :al=\E\032:cd=\E^X:ce=10\E\017:cl=\E\034:cm=\E\021%r%.%.:\ + :dc=\E3:dl=\E\023:do=\E^K:ei=:ho=\E^R:ic=\E\072:im=:k0=\EA:\ + :k1=\EB:k2=\EC:k3=\ED:k4=\EE:k5=\EF:k6=\EG:k7=\EH:kd=\E^K:\ + :kh=\E^R:kl=^H:kr=^P:ku=\E^L:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\ + :l4=PF5:l5=PF6:l6=PF7:l7=PF8:nd=^P:se=\E^_:so=\E^Y:up=\E^L: +vc415|volker-craig 415:\ + :cl=^L:tc=vc404: + +######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS +# + +#### IBM PC and clones +# + +# The pcplot IBM-PC terminal emulation program is really messed up. It is +# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly, +# doesn't support scrolling regions, ignores add line commands, and ignores +# delete line commands. Consequently, the resulting behavior looks like a +# crude adm3a-type terminal. +# Steve Jacobson 8/85 +pcplot|pc-plot terminal emulation program:\ + :xn@:\ + :AL@:DL@:al@:cs@:dl@:rc@:sc@:tc=vt100: +# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA> +# I've found that my KayPro II, running MDM730, continues to emulate an +# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX +# system the following termcap entry works well: +# I have noticed a couple of minor glitches, but nothing I can't work +# around. (I added two capabilities from the BRL entry -- esr) +kaypro|kaypro2|kaypro II:\ + :am:bs:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=^W:ce=^X:cl=1\032:cm=\E=%+ %+ :cr=^M:\ + :dl=\ER:do=^J:ho=^^:kd=^J:kr=^L:ku=^K:nd=^L:sf=^J:up=^K: + +# From IBM, Thu May 5 19:35:27 1983 +# (ibmpc: commented out :im:=\200R because we don't know :ei: -- esr) +ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS):\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=^L^K:cr=^M^^:do=^J:ho=^K:kd=^_:le=^]:nd=^\:sf=\n:\ + :up=^^: + +ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX:\ + :am:bw:eo:hs:km:ms:ul:\ + :co#80:it#8:li#24:\ + :@7=\E[Y:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS\E[%dB:\ + :SR=\E[%dT\E[%dA:UP=\E[%dA:\ + :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\ + :bl=^G:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\Ec:cm=\E[%i%d;%dH:\ + :cr=^M:do=\E[B:ec=\E[%dX:ho=\E[H:k1=\240:k2=\241:k3=\242:\ + :k4=\243:k5=\244:k6=\245:k7=\246:k8=\247:k9=\250:k;=\251:\ + :kB=^]:kD=\177:kI=\E[^H:kN=\E[U:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;1H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mk=\E[30;40m:mr=\E[7m:nd=\E[C:nw=^M:\ + :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\ + :se=\E[m:sf=\E[S\E[B:so=\E[7m:sr=\E[T\E[A:ue=\E[m:up=\E[A:\ + :us=\E[4m: + +#### Apple II +# +# Apple II firmware console first, then various 80-column cards and +# terminal emulators. For two cents I'd toss all these in the UFO file +# along with the 40-column apple entries. +# + +# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL +# 'it#8' tells UNIX that you have tabs every 8 columns. This is a +# function of TIC, not the firmware. +# The clear key on a IIgs will do something like clear-screen, +# depending on what you're in. +appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface:\ + :am:bs:bw:eo:ms:\ + :co#80:it#8:li#24:\ + :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\ + :kC=^X:kD=\177:kb=^H:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:nd=^\:\ + :nw=^M^W:se=^N:sf=^W:so=^O:sr=^V:ta=^I:up=^_: +# Apple //e with 80-column card, entry from BRL +# The modem interface is permitted to discard LF (maybe DC1), otherwise +# passing characters to the 80-column firmware via COUT (PR#3 assumed). +# Auto-wrap does not work right due to newline scrolling delay, which also +# requires that you set "stty cr2". +# Note: Cursor addressing is only available via the Pascal V1.1 entry, +# not via the BASIC PR#3 hook. All this nonsense can be avoided only by +# using a terminal emulation program instead of the built-in firmware. +apple2e|Apple //e:\ + :bw:ms:\ + :co#80:li#24:\ + :bl=^G:cd=4*\013:ce=4\035:cl=100\014:do=^J:ho=^Y:is=^R^N:\ + :kb=^H:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:me=^N:mr=^O:nw=100\r:\ + :r1=^R^N:se=^N:sf=^W:so=^O:sr=^V:ta=^I:up=^_: +# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro +# 4.20, with incoming and outgoing terminals both on 0, emulation On. +apple2e-p|Apple //e via Pascal:\ + :cm=\036%r%+ %+ :kb=^H:kd=^J:kl=^H:tc=apple2e: +# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL +# Enable DC3/DC1 flow control with "stty ixon -ixany". +apple-ae|ASCII Express:\ + :am:bs:bw:ms:nx:xo:\ + :co#80:it#8:li#24:\ + :bl=500\007:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:\ + :ho=^Y:is=^R^N:kC=^X:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:me=^N:\ + :mr=^O:nd=^U:r1=^R^N:se=^N:sf=^W:so=^O:sr=^V:up=^_: +appleII|apple ii plus:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :do=^J:ho=\E^Y:\ + :is=\024T1\016:kd=^J:kr=^U:le=^H:me=^N:nd=^\:se=^N:so=^O:\ + :ta=^I:up=^_:vb=\024G1\024T1:ve=^TC2:vs=^TC6: +# Originally by Gary Ford 21NOV83 +# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985 +apple-80|apple II with smarterm 80 col:\ + :am:bs:bw:\ + :co#80:li#24:\ + :bt=^R:cd=10*\013:ce=10\035:cl=10*\014:cm=\036%r%+ %+ :\ + :cr=10*\r:do=^J:ho=^Y:le=^H:nd=^\:up=^_: +apple-soroc|apple emulating soroc 120:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\ + :kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K: +# From Peter Harrison, Computer Graphics Lab, San Francisco +# ucbvax!ucsfmis!harrison .....uucp +# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA +# "These two work. If you don't have the inverse video chip for the +# Apple with videx then remove the :so: and :se: fields." +# (apple-videx: this used to be called DaleApple -- esr) +apple-videx|Apple with videx videoterm 80 column board with inverse video:\ + :am:bs:xn:\ + :co#80:it#8:li#24:\ + :cd=^K:ce=^]:cl=300\014:cm=\036%r%+ %+ :do=^J:ho=^Y:kd=^J:\ + :kh=^Y:kl=^H:kr=^U:le=^H:me=^Z2:nd=^\:se=^Z2:so=^Z3:ta=^I:\ + :up=^_: +# My system [for reference] : Apple ][+, 64K, Ultraterm display card, +# Apple Cat ][ 212 modem, + more all +# controlled by ASCII Express: Pro. +# From Dave Shaver <isucs1!shaver> +apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell:\ + :am:bs:eo:xt:\ + :co#80:li#24:\ + :ac=:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\ + :is=^V4^W06\017\rVisible Bell Installed.\016\r\n:\ + :nd=^\:se=^N:so=^O:up=^_:vb=^W35^W06: +apple-uterm|Ultraterm for Apple micros:\ + :am:bs:eo:xt:\ + :co#80:li#24:\ + :ac=:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\ + :is=^V4^W06\016:nd=^\:se=^N:so=^O:up=^_: +# from trwrba!bwong (Bradley W. Wong): +# +# This entry assumes that you are using an apple with the UCSD Pascal +# language card. SYSTEM.MISCINFO is assumed to be the same as that +# supplied with the standard apple except that screenwidth should be set +# using SETUP to 80 columns. Note that the right arrow in not mapped in +# this termcap entry. This is because that key, on the Apple, transmits +# a ^U and would thus preempt the more useful "up" function of vi. +# +# HMH 2/23/81 +apple80p|80-column apple with Pascal card:\ + :am:bw:\ + :co#80:li#24:\ + :cd=^K:ce=^]:cl=^Y^L:cm=\036%r%+ %+ :ho=^Y:kl=^H:nd=^\\072:\ + :up=^_: +# +# Apple II+ equipped with Videx 80 column card +# +# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL; +# manually converted by D A Gwyn +# +# DO NOT use any terminal emulation with this data base, it works directly +# with the Videx card. This has been tested with vi 1200 baud and works fine. +# +# This works great for vi, except I've noticed in pre-R2, ^U will scroll back +# 1 screen, while in R2 ^U doesn't. +# For inverse alternate character set add: +# :as:=^O::ae:=^N: +# (apple-v: added it#8 -- esr) +apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520):\ + :am:xn:\ + :co#80:it#8:li#24:\ + :bl=100\007:cd=16*\013:ce=^]:cl=16*\014:cm=\036%r%+ %+ :\ + :cr=^M:do=^J:ho=^Y:kb=^H:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:\ + :nd=^\:se=^Z2:sf=^J:so=^Z3:ta=8\011:up=^_: +apple-videx3|vapple|Apple II with 80 col card:\ + :am:bs:\ + :co#80:li#24:\ + :ce=\Ex:cl=\Ev:cm=\EY%+ %+ :ho=\EH:k0=\EP:k1=\EQ:k2=\ER:\ + :k3=\E :k4=\E\041:k5=\E":k6=\E#:k7=\E$:k8=\E%:k9=\E&:kd=\EB:\ + :kh=\EH:kl=\ED:kr=\EC:ku=\EA:nd=\EC:up=\EA: +#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL +aepro|Apple II+ running ASCII Express Pro--vt52:\ + :bs:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=300\014:cm=\EY%+ %+ :ho=\EH:nd=\EC:\ + :up=\EA: +# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory +apple-vm80|ap-vm80|apple with viewmax-80:\ + :bs:\ + :co#80:li#24:\ + :cd=300\013:ce=^]:cl=300\014:cm=100\036%+ %+ :ho=200\031:\ + :nd=^\\072:up=^_: + +#### Apple Lisa & Macintosh +# + +# (lisa: changed :vs: to :ve: -- esr) +lisa|apple lisa console display (black on white):\ + :am:bs:eo:ms:\ + :co#88:it#8:li#32:\ + :ac=jdkclfmenbqattuvvuwsx`:ae=\E[10m:al=\E[L:as=\E[11m:\ + :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:\ + :do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=\E>\E[m\014:kb=^H:\ + :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:\ + :se=\E[m:so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[5l:\ + :vi=\E[5h: +liswb|apple lisa console display (white on black):\ + :is=\E>\E[0;7m\014:se=\E[0;7m:so=\E[m:ue=\E[0;7m:\ + :us=\E[4m:tc=lisa: + +# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL; +# :is: revised by Ferd Brundick <fsbrn@BRL.ARPA> +# +# These entries assume that the 'Auto Wraparound' is enabled. +# Xon-Xoff flow control should also be enabled. +# +# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab +# settings are in non-volatile memory and don't need to be reset upon login. +# Also setting the number of columns glitches the screen annoyingly. +# You can type "reset" to get them set. +# +lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation:\ + :am:bs:pt:xn:xo:\ + :co#80:it#8:kn#4:li#24:vt#3:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:do=^J:ho=\E[H:k0=\EOP:k1=\EOQ:\ + :k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :r1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: +# Lisaterm in 132 column ("wide") mode. +lisaterm-w|Apple Lisa with Lisaterm in 132 column mode:\ + :co#132:\ + :kb=^H:kd=^J:kl=^H:tc=lisaterm: +# Although MacTerminal has insert/delete line, it is commented out here +# since it is much faster and cleaner to use the "lock scrolling region" +# method of inserting and deleting lines due to the MacTerminal implementation. +# Also, the "Insert/delete ch" strings have an extra character appended to them +# due to a bug in MacTerminal V1.1. Blink is disabled since it is not +# supported by MacTerminal. +mac|macintosh|Macintosh with MacTerminal:\ + :xn:\ + :dN#30:\ + :dc=7\E[P:ei=:ic=9\E[@:im=:ip=7:mb@:tc=lisa: +# Lisaterm in 132 column ("wide") mode. +mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode:\ + :co#132:tc=mac: + +#### Radio Shack/Tandy +# + +# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7". +# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr) +# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90 +coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :al=^_0:bl=^G:cd=^K:ce=^D:cl=5*\014:cm=2\002%r%+ %+ :\ + :dl=^_1:do=^J:ho=^A:kd=^J:kl=^H:kr=^I:ku=^L:le=^H:mb=^_":\ + :md=\E\072^A:me=\037\041\E\072\0:mr=^_ :nd=^F:se=^_\041:\ + :so=^_ :ue=^_#:up=^I:us=^_":ve=^E\041:vi=^E : +# (trs2: removed obsolete ":nl=^_:" -- esr) +trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M:\ + :am:bs:ms:\ + :co#80:it#8:li#24:\ + :al=^D:bl=^G:cd=^B:ce=^A:cl=^L:cm=\EY%+ %+ :cr=^M:dl=^K:\ + :do=^_:ho=^F:kb=^H:kd=^_:kl=^\:kr=^]:ku=^^:le=^H:me=^O:nd=^]:\ + :se=^O:sf=^J:so=^N:ta=^I:up=^^: +# From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu> +# (This had extension capabilities +# :BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\ +# :CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@: +# I also deleted the unnecessary ":kn#2:", ":sg#0:" -- esr) +trs16|trs-80 model 16 console:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :ac=jak`l_mbquvewcxs:ae=\ERg:al=\EL:as=\ERG:bl=^G:cd=\EJ:\ + :ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dc=\EQ:dl=\EM:do=\EB:ei=:\ + :ho=\EH:ic=\EP:im=:k0=^A:k1=^B:k2=^D:k3=^L:k4=^U:k5=^P:k6=^N:\ + :k7=^S:kb=^H:kd=\EB:kh=^W:kl=\ED:kr=\EC:ku=\EA:l0=f1:l1=f2:\ + :l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:le=^H:me=\ER@:nd=\EC:\ + :pf=\E]+:po=\E]=:se=\ER@:sf=^J:so=\ERD:ta=^I:up=\EA:ve=\ERC:\ + :vi=\ERc: + +#### Atari ST +# + +# From: Simson L. Garfinkel <simsong@media-lab.mit.edu> +atari|atari st:\ + :am:bs:\ + :co#80:it#8:li#25:\ + :al=\EL:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :dl=\EM:do=\EB:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:me=\Eq:nd=\EC:se=\Eq:\ + :so=\Ep:sr=\EI:ta=^I:up=\EA: +# UniTerm terminal program for the Atari ST: 49-line VT220 emulation mode +# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu> +uniterm|uniterm49|UniTerm VT220 emulator with 49 lines:\ + :li#49:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H:tc=vt220: +# MiNT VT52 emulation. 80 columns, 25 rows. +# MiNT is Now TOS, the operating system which comes with all Ataris now +# (mainly Atari Falcon). This termcap is for the VT52 emulation you get +# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode +# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996 +st52|Atari ST with VT52 emulation:\ + :am:km:\ + :co#80:li#25:\ + :K1=\E#7:K2=\E#9:K3=\E#5:K4=\E#1:K5=\E#3:al=\EL:bl=^G:\ + :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dl=\EM:do=\EB:\ + :ho=\EH:k0=\E#D:k1=\E#;:k2=\E#<:k3=\E#=:k4=\E#>:k5=\E#?:\ + :k6=\E#@:k7=\E#A:k8=\E#B:k9=\E#C:kA=\E#R:kC=\E#7:kF=\E#2:\ + :kR=\E#8:kb=^H:kd=\E#P:kh=\E#G:kl=\E#K:kr=\E#M:ku=\E#H:\ + :l0=f10:le=\ED:me=\Eq:nd=\EC:nw=^M^J:r1=\Ez_\Eb@\EcA:\ + :rc=\Ek:sc=\Ej:se=\Eq:sf=^J:so=\Ep:sr=\EI:ta=^I:te=:ti=\Ee:\ + :up=\EA:ve=\Ee:vi=\Ef: + +#### Commodore Business Machines +# +# Formerly located in West Chester, PA; went spectacularly bust in 1994 +# after years of shaky engineering and egregious mismanagement. Made one +# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64, +# C-128, VIC-20). The C-64 is said to have been the most popular machine +# ever (most units sold); they can still be found gathering dust in closets +# everywhere. +# + +# From: Kent Polk <kent@swrinde.nde.swri.edu>, 30 May 90 +# Added a few more entries, converted caret-type control sequence (^x) entries +# to '\0xx' entries since a couple of people mentioned losing '^x' sequences. +# Corrections by Ty Sarna <tsarna@endicor.com>, Sat Feb 28 18:55:15 1998 +# +# :as:, :ae: Support for alternate character sets. +# :ve=\E[\040p:vi=\E[\060\040p: cursor visible/invisible. +# :xn: vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept) +# This one appears to fix a problem I always had with a line ending +# at 'width+1' (I think) followed by a blank line in vi. The blank +# line tended to disappear and reappear depending on how the screen +# was refreshed. Note that this is probably needed only if you use +# something like a Dnet Fterm with the window sized to some peculiar +# dimension larger than 80 columns. +# :k0=\E9~: map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;' +# (amiga: removed obsolete :kn#10:, +# also added empty <acsc> to suppress a warning --esr) +amiga|Amiga ANSI:\ + :am:bs:bw:xn:\ + :co#80:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:\ + :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:\ + :ho=\E[H:ic=\E[@:im=:is=\E[20l:k0=\E[9~:k1=\E[0~:k2=\E[1~:\ + :k3=\E[2~:k4=\E[3~:k5=\E[4~:k6=\E[5~:k7=\E[6~:k8=\E[7~:\ + :k9=\E[8~:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:\ + :mb=\E[7;2m:md=\E[1m:me=\E[m:mh=\E[2m:mk=\E[8m:mr=\E[7m:\ + :nd=\E[C:r1=\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ue=\E[m:\ + :up=\E[A:us=\E[4m:ve=\E[ p:vi=\E[0 p: + +# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995 +# (amiga: added empty <acsc> to suppress a warning. +# I'm told this entry screws up badly with AS225, the Amiga +# TCP/IP package once from Commodore, and now sold by InterWorks.--esr) +amiga-h|Hans Verkuil's Amiga ANSI:\ + :bs:bw:ms:\ + :co#80:li#24:\ + :DC=\233%dP:DO=\233%dB:IC=\233%d@:LE=\233%dD:RI=\233%dC:\ + :SF=\233%dS:SR=\233%dT:UP=\233%dA:ac=:ae=^O:as=^N:bl=^G:\ + :bt=\233Z:cd=\233J:ce=\233K:cl=\233H\233J:\ + :cm=\233%i%d;%dH:cr=^M:dc=\233P:do=\233B:ec=\233%dP:ei=:\ + :ho=\233H:ic=\233@:im=:is=\23320l:k0=\2339~:k1=\2330~:\ + :k2=\2331~:k3=\2332~:k4=\2333~:k5=\2334~:k6=\2335~:\ + :k7=\2336~:k8=\2337~:k9=\2338~:kD=\177:kb=^H:kd=\233B:\ + :kl=\233D:kr=\233C:ku=\233A:le=\233D:mb=\2337;2m:\ + :md=\2331m:me=\2330m:mh=\2332m:mk=\2338m:mr=\2337m:\ + :nd=\233C:nw=\233B\r:r1=\Ec:se=\2330m:sf=\233S:so=\2337m:\ + :sr=\233T:ta=^I:te=\233?7h:ti=\233?7l:ue=\2330m:up=\233A:\ + :us=\2334m:vb=^G:ve=\233 p:vi=\2330 p: + +# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999 +amiga-8bit|Amiga ANSI using 8-bit controls:\ + :AL=\233%dL:DL=\233%dM:SF@:SR@:ac=:al=\233L:dl=\233M:\ + :sf=\204:sr=\215:\ + :tc=amiga-h: + +# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA> +# I'm trying to write a termcap for a commodore b-128, and I'm +# having a little trouble. I've had to map most of my control characters +# to something that unix will accept (my delete-char is a ctrl-t, etc), +# and create some functions (like cm), but thats life. +# The problem is with the arrow keys - right, and up work fine, but +# left deletes the previous character and down I just can't figure out. +# Jove knows what I want, but I don't know what it's sending to me (it +# isn't thats bound to next-line in jove). +# Anybody got any ideas? Here's my termcap. +# DAG -- I changed his "^n" entries to "\n"; see if that works. +# +commodore|b-128|Commodore B-128 micro:\ + :am:bw:\ + :co#80:dN#20:li#24:pb#150:\ + :al=10\Ei:bc=^H:ce=10\Eq:cl=10\E\006:\ + :cm=20\E\013%2\054%2\054:cr=^M:dc=10*\177:dl=10*\Ed:\ + :do=^J:ei=:ho=\E^E:ic=5\E\n:im=:kd=^J:kh=\E^E:kl=^B:kr=^F:\ + :ku=^P:nd=^F:nl=^M:ta=5\011:up=^P: + +#### North Star +# +# North Star Advantage from Lt. Fickie <brl-ibd!fickie> via BRL +northstar|North Star Advantage:\ + :bs:\ + :co#80:li#24:\ + :cd=200\017:ce=200\016:cl=200\004:cm=1\E=%+ %+ :\ + :ho=200\034\032: + +#### Osborne +# +# Thu Jul 7 03:55:16 1983 +# +# As an aside, be careful; it may sound like an anomaly on the +# Osborne, but with the 80-column upgrade, it's too easy to +# enter lines >80 columns! +# +# I've already had several comments... +# The Osborne-1 with the 80-col option is capable of being +# 52, 80, or 104 characters wide; default to 80 for compatibility +# with most systems. +# +# The tab is destructive on the Ozzie; make sure to 'stty -tabs'. +osborne-w|osborne1-w|osborne I in 104-column mode:\ + :ms:ul:xt:\ + :co#104:li#24:\ + :al=\EE:bl=^G:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:\ + :do=^J:ei=:ic=\EQ:im=:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:\ + :se=\E(:sf=^J:so=\E):ue=\Em:up=^K:us=\El: +# Osborne I from ptsfa!rhc (Robert Cohen) via BRL +osborne|osborne1|osborne I in 80-column mode:\ + :am:bs:mi:ms:ul:xs:\ + :co#80:dB#4:li#24:\ + :al=\EE:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=4\EW:dl=\ER:do=^J:ei=:\ + :im=\EQ:is=^Z:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:le=\010:nd=^L:\ + :se=\E):so=\E(:ue=\Em:up=^K:us=\El: +# +# Osborne Executive definition from BRL +# Similar to tvi920 +# Added by David Milligan and Tom Smith (SMU) +osexec|Osborne executive:\ + :am:bs:\ + :co#80:li#24:sg#1:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:\ + :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\ + :is=\Eq\Ek\Em\EA\Ex0:k0=^A@\r:k1=^AA\r:k2=^AB\r:k3=^AC\r:\ + :k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:k8=^AH\r:k9=^AI\r:\ + :kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:nl=^J:se=\Ek:\ + :so=\Ej:st=\E1:ue=\Em:up=^K:us=\El: + +#### Console types for obsolete UNIX clones +# +# Coherent, Minix, Venix, and several lesser-known kin were OSs for 8088 +# machines that tried to emulate the UNIX look'n'feel. Coherent and Venix +# were commercial, Minix an educational tool sold in conjunction with a book. +# Memory-segmentation limits and a strong tendency to look like V7 long after +# it was obsolete made all three pretty lame. Venix croaked early. Coherent +# and Minix were ported to 32-bit Intel boxes, only to be run over by a +# steamroller named `Linux' (which, to be fair, traces some lineage to Minix). +# Coherent's vendor, the Mark Williams Company, went belly-up in 1994. There +# are also, I'm told, Minix ports that ran on Amiga and Atari machines and +# even as single processes under SunOS and the Macintosh OS. +# + +# This is the entry provided with minix 1.7.4, with bogus :ri: removed. +minix|minix console (v1.7):\ + :am:xn:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[0J:\ + :ce=\E[K:cl=\E[H\E[0J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=\E[0m:k0=\E[Y:\ + :k1=\E[V:k2=\E[U:k3=\E[T:k4=\E[S:k5=\E[G:kb=^H:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l0=End:l1=PgUp:l2=PgDn:\ + :l3=Num +:l4=Num -:l5=Num 5:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[0m:mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[0m:up=\E[A:us=\E[4m: +# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil> +minix-old|minix console (v1.5):\ + :xo:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[0J:\ + :ce=\E[K:cl=\E[H\E[0J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k0=\E[Y:k1=\E[V:\ + :k2=\E[U:k3=\E[T:k4=\E[S:k5=\E[G:kb=^H:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\ + :mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:sr=\EM:\ + :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m: +# The linewrap option can be specified by editing /usr/include/minix/config.h +# before recompiling the minix 1.5 kernel. +minix-old-am|minix console with linewrap:\ + :am:tc=minix-old: + +pc-minix|minix console on an Intel box:\ + :tc=klone+acs:tc=minix: + +# According to the Coherent 2.3 manual, the PC console is similar +# to a z19. The differences seem to be (1) 25 lines, (2) no status +# line, (3) standout is broken, (4) ins/del line is broken, (5) +# has blinking and bold. +pc-coherent|pcz19|coherent|IBM PC console running Coherent:\ + :am:mi:\ + :co#80:it#8:li#25:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:\ + :do=\EB:ei=\EO:ho=\EH:im=\E@:kb=^H:kd=\EB:kh=\EH:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:me=\Eq:nd=\EC:se=\Eq:sf=^J:so=\Ep:\ + :sr=\EI:ta=^I:up=\EA: + +# According to the Venix 1.1 manual, the PC console is similar +# to a DEC vt52. Differences seem to be (1) arrow keys send +# different strings, (2) enhanced standout, (3) added insert/delete line. +# Note in particular that it doesn't have automatic margins. +# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they +# not described here because this derives from an old termcap entry. +pc-venix|venix|IBM PC console running Venix:\ + :co#80:it#8:li#25:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\ + :dl=\EM:do=^J:kb=^H:kd=\EP:kh=\EG:kl=\EK:kr=\EM:ku=\EH:le=^H:\ + :nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA: + +#### Miscellaneous microcomputer consoles +# +# If you know anything more about any of these, please tell me. +# + +# The MAI Basic Four computer was obsolete at the end of the 1980s. +# It may be used as a terminal by putting it in "line" mode as seen on +# one of the status lines. +# Initialization is similar to CIT80. :is: will set ANSI mode for you. +# Hardware tabs set by :if: at 8-spacing. Auto line wrap causes glitches so +# wrap mode is reset by :vs:. Using :sf:=\E[S caused errors so I +# used \ED instead. +# From: bf347@lafn.org (David Lawyer), 28 Jun 1997 +mai|basic4|MAI Basic Four in ansi mode:\ + :am:da:db:mi:ms:\ + :co#82:it#8:li#25:\ + :al=\E[L:bl=^G:cd=^_:ce=^^:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:dc=\E[1P:dl=\E[M:do=^J:ei=\E[4l:ho=^]:\ + :if=/usr/lib/tabset/vt100:im=\E[4h:\ + :is=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:\ + :k8=\EOW:kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=^X:nw=^M\ED:rc=\E8:\ + :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=^Z:\ + :us=\E[4m:ve=\E[?7h:vs=\E[?7l: +# basis from Peter Harrison, Computer Graphics Lab, San Francisco +# ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA +# +# On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote: +# The Basis 108 was a Apple II clone, manufactured by the "Basis +# Mikrocomputer GmbH" in Munster, Germany (the company still exists today, +# about 1,5 km from where I live, but doesn't build own computers any +# more). A Basis 108 featured a really heavy (cast aluminium?) case, was +# equipped with one or two 5.25" disk drives, had a monochrome and colour +# video output for a TV set or a dedicated monitor and several slots for +# Apple II cards. Basis 108 were quite popular at german schools before +# the advent of the IBM PC. They run, for example, the UCSD Pascal +# development system (which I used even in 1993 to program the steering +# and data recording for our school's experimental solar panel :), Apple DOS +# or CP/M. +# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr) +basis|BASIS108 computer with terminal translation table active:\ + :cd=\EY:ce=\ET:cl=300\E*:do=5000\n:kb=^H:kd=^J:kl=^H:kr=^L:\ + :ku=^K:me=\E):se=\E):so=\E(:\ + :tc=adm3a: +# luna's BMC terminal emulator +luna|luna68k|LUNA68K Bitmap console:\ + :co#88:li#46:tc=ansi-mini: +megatek|pegasus workstation terminal emulator:\ + :am:os:\ + :co#83:li#60: +# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived +# interface (pre-Macintosh by several years) that went nowhere. +xerox820|x820|Xerox 820:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=^Q:ce=^X:cl=1^Z:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\ + :le=^H:nd=^L:sf=^J:up=^K: + +#### Videotex and teletext +# + +# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998 +# +minitel1|minitel 1:\ + :am:bw:es:hs:hz:ms:\ + :Co#8:co#40:li#24:pa#8:\ + :..Sf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=%tC%e%p1%{64}%+%c%;:\ + :ac=+.\054\054./f0g1:bl=^G:ce=^X:cl=^L:cm=\037%+A%+A:\ + :cr=^M:do=^J:eA=^Y:fs=^J:ho=^^:\ + :is=\E;`ZQ\E\072iC\E\072iE\021:le=^H:mb=\EH:me=\EI\E\:\ + :mr=\E]:nd=^I:nw=^M^J:op=\EG:rp=%.\022%+?:\ + :..sa=%?%p1%t\E]%;%?%p3%t\E]%;%?%p4%t\EH%;:se=\E\:\ + :sf=^J:so=\E]:sr=^K:ts=\037@%p1%{65}%+%c:up=^K:ve=^Q:vi=^T: +# is2=Fnct TE, Fnct MR, Fnct CM et pour finir: curseur ON. +minitel1b|minitel 1-bistandard (in 40cols mode):\ + :mi:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:al=\E[L:cb=\E[1K:cd=\E[J:dc=\E[P:\ + :dl=\E[M:ei=\E[4l:i1=\E;iYA\E;jYC:im=\E[4h:kA=\E[L:\ + :kC=\E[2J:kD=\E[P:kE=^X:kI=\E[4h:kL=\E[M:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ks=\E;iYA\E;jYC:kt=^I:ku=\E[A:\ + :tc=minitel1: +# :ke: posait des problemes (logout en sortant de vi). +minitel1b-80|minitel 1-bistandard (standard teleinformatique):\ + :am@:bw@:hz@:\ + :Co@:co#80:it#8:pa@:\ + :@8=\EOM:Sf@:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:ho=\E[H:\ + :i1@:is@:k0=\EOp:k1=\EOq:k2=\EOr:k3=\EOs:k4=\EOt:k5=\EOu:\ + :k6=\EOv:k7=\EOw:k8=\EOx:k9=\EOy:ke@:ks@:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:op@:rc=\E8:rp@:\ + :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\ + :sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[24m:\ + :up=\E[A:us=\E[4m:ve=\037@A\021\n:vi=\037@A\024\n:\ + :tc=minitel1b: +# \E\:1} switch to te'le'informatique mode (ascii terminal/ISO 6429) +# \E[?3l 80 columns +# \E[?4l scrolling on +# \E[12h local echo off +# \Ec reset: G0 U.S. charset (to get #,@,{,},...), 80 cols, clear screen +# \E)0 G1 DEC set (line graphics) +# +# From: Igor Tamitegama <igor@ppp1493-ft.teaser.fr>, 18 Jan 1997 +m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'informatique:\ + :bs:es:hs:xn:\ + :co#80:it#8:li#24:sg#0:ws#72:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:SF=^J:SR=\EM:UP=\E[%dA:\ + :ac=aaffggjjkkllmmnnooqqssttuuvvwwxx:ae=^O:al=\E[L:\ + :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ + :fs=^J:ho=\E[H:i1=\E\0721}\Ec\E[?4l\E[12h:\ + :i2=\E[?3l kbs=\010:im=\E[4h:ip=7:is=\Ec\E[12h\E)0:\ + :k0=\EOp:k1=\EOq:k2=\EOr:k3=\EOs:k4=\EOt:k5=\EOu:k6=\EOv:\ + :k7=\EOw:k8=\EOx:k9=\EOy:k;=\EOp:kA=\E[4l:kC=\E[2J:kD=\E[P:\ + :kI=\E[4h:kL=\E[M:kN=\EOn:kP=\EOR:kd=\E[B:kh=\E[H:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;80H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:ps=\E[i:\ + :r1=\Ec\E[?4l\E[12h:r2=\Ec\E)0:rc=\E8:sc=\E7:se=\E[27m:\ + :sf=^J:so=\E[7m:sr=\EM:ta=^I:ts=^_@A:u6=\E[%i%d;%dR:\ + :u7=\E[6n:ue=\E[24m:up=\E[A:us=\E[4m:vb=^G:ve=\E[<1l:\ + :vi=\E[<1h: + +######## OBSOLETE VDT TYPES +# +# These terminals are *long* dead -- these entries are retained for +# historical interest only. + +#### Amtek Business Machines +# + +# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y", +# but these caps were commented out in 8.3; also, removed overridden +# ":do=^J:" -- esr) +abm80|amtek business machines 80:\ + :am:bs:bw:\ + :co#80:li#24:\ + :al=\E^Z:bt=^T:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%+ %+ :\ + :dl=\E^S:do=\E^K:ho=\E^R:le=^H:nd=^P:up=\E^L: + +#### Bell Labs blit terminals +# +# These were AT&T's official entries. The 5620 FAQ maintained by +# David Breneman <daveb@dgtl.com> has this to say: +# +# Actually, in the beginning was the Jerq, and the Jerq was white with a +# green face, and Locanthi and Pike looked upon the Jerq and said the Jerq +# was good. But lo, upon the horizon loomed a mighty management-type person +# (known now only by the initials VP) who said, the mighty Jerq must stay +# alone, and could not go forth into the world. So Locanthi and Pike put the +# Jerq to sleep, cloned its parts, and the Blit was brought forth unto the +# world. And the Jerq lived the rest of its days in research, but never +# strayed from those paths. +# +# In all seriousness, the Blit was originally known as the Jerq, but when +# it started to be shown outside of the halls of the Bell Labs Research +# organization, the management powers that be decided that the name could +# not remain. So it was renamed to be Blit. This was in late 1981. +# +# (The AT&T 5620 was the commercialized Blit. Its successors were the 630, +# 730, and 730+.) +# + +blit|jerq|blit running teletype rom:\ + :am:eo:ul:xo:\ + :co#87:it#8:li#72:\ + :AL=\EF%+ :DC=\Ee%+ :DL=\EE%+ :IC=\Ef%+ :al=\EF\041:bl=^G:\ + :ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dc=\Ee\041:dl=\EE\041:\ + :do=^J:ei=:ic=\Ef\041:im=:k1=\Ex:k2=\Ey:k3=\Ez:kb=^H:kd=\EB:\ + :kl=\ED:kr=\EC:ku=\EA:le=\ED:nd=\EC:sf=^J:ta=^I:up=\EA: + +# (cbblit: here's a BSD termcap that says :do=\EG: -- esr) +cbblit|fixterm|blit running columbus code:\ + :co#88:\ + :cd=\EJ:ei=\ER:ic@:im=\EQ:pO=\EP%03:pf=^T:po=^R:se=\EV\041:\ + :so=\EU\041:ue=\EV":us=\EU":vb=\E^G:\ + :tc=blit: + +oblit|ojerq|first version of blit rom:\ + :am:da:db:eo:mi:ul:xo:\ + :co#88:it#8:li#72:\ + :AL=\Ef%+ :DL=\Ee%+ :al=\EF:bl=^G:cd=\EJ:ce=\EK:cl=^L:\ + :cm=\EY%r%+ %+ :cr=^M:dc=\EO:dl=\EE:do=^J:ei=\ER:im=\EQ:\ + :kb=^H:le=\ED:nd=\EC:sf=^J:ta=^I:up=\EA:vb=\E^G: + +#### Bolt, Beranek & Newman (bbn) +# +# The BitGraph was a product of the now-defunct BBN Computer Corporation. +# The parent company, best known as the architects of the Internet, is +# still around. +# +# Jeff DelPapa <dp@world.std.com> writes: +# The bitgraph was a large white box that contained a monochrome bitmap +# display, and a 68000 to run it. You could download code and run it on +# the cpu, it had 128kb (I think) of memory. I used one in the late +# 70's, sure beat a vt100. It had one strange feature tho -- it used +# the cpu to bitblt pixels to scroll, it took longer than the refresh +# rate, and looked like a rubber sheet stretching, then snapping +# upwards. It had everything the early mac had, except a floppy drive a +# small screen (it had a 17" crisp beauty) and a real OS. They (Bolt +# Beranek and Neuman) sold at most a few hundred of them to the real +# world. DOD may have bought more... +# + +# Entries for the BitGraph terminals. The problem +# with scrolling in vi can only be fixed by getting BBN to put +# smarter scroll logic in the terminal or changing vi or padding +# scrolls with about 500 ms delay. +# +# I always thought the problem was related to the terminal +# counting newlines in its input buffer before scrolling and +# then moving the screen that much. Then vi comes along and +# paints lines in on the bottom line of the screen, so you get +# this big white gap. + +bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video):\ + :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:\ + :tc=bg2.0: +bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video):\ + :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg2.0: +bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init):\ + :bs:xn:\ + :co#85:li#64:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=%i\E[%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dl=\E[M:do=\E[B:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:\ + :ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:me=\E[m:nd=\E[C:\ + :rc=\E8:sc=\E7:se=\E[m:sf=\n:so=\E[7m:ta=^I:up=\E[A: + +bg1.25rv|bbn bitgraph 1.25 (reverse video):\ + :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg1.25: +bg1.25nv|bbn bitgraph 1.25 (normal video):\ + :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:tc=bg1.25: +# (bg1.25: I added <rmam>/<smam> based on the init string -- esr) +bg1.25|bbn bitgraph 1.25:\ + :co#85:li#64:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=%i\E[%d;%dH:cr=^M:dl=\E[M:do=\E[B:k1=\EP:\ + :k2=\EQ:k3=\ER:k4=\ES:kd=\EB:ke=\E>:kl=\ED:kr=\EC:ks=\E=:\ + :ku=\EA:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:ll=\E[64;1H:\ + :me=\E[m:nd=\E[C:se=\E[m:sf=\n:so=\E[7m:ta=^I:up=\E[A: + +#### Bull (bq, dku, vip) +# +# (Adapted for terminfo; AIX extension capabilities translated -- esr) + +#============================================# +# BULL QUESTAR 210 `SDP' terminals emulation # +#============================================# +# +# Description written by R.K.Saunders (Bull Transac) +# +# Modifications written by F. Girard (Bull MTS) +# 19-05-87 V02.00.01 +# 17-12-87 V02.00.02 +# 15-09-89 V02.00.05 +# +# Typical technical selections F1 (modes SDP/ROLL): +# ------------------------------------------------------- +# | 01 02 03 04 05 06 07 08 09 10 | +# | 1010 0011 1010 0110 0110 0001 0100 0000 0000 0000 | +# | | +# | 11 12 13 14 15 16 17 18 19 20 | +# | 0000 0110 100? 0000 0000 0000 0001 0000 0000 0001 | +# | | +# | 21 22 23 24 25 26 27 28 29 30 | +# | 0011 0000 0001 1000 0000 0000 0000 0000 0000 0000 | +# | | +# | 31 32 33 34 35 36 37 38 39 40 | +# | 1010 0011 0000 0000 0000 0000 0000 0000 0000 0000 | +# ------------------------------------------------------- +# Typical firmware identification F5 "etat 6": +# P287.02.04b (AZERTY) +# P297.11.04 (24-pin: 2732) or P798.11.04 (28-pin: 2764) +# P298.03.03 (monochrome) or P374.03.02 (colour) +# +# SM SDP mode (VIP command): ^[[?=h +# RIS (erases screen): ^[c +# DMI disable keyboard: ^[` +# SM double rendition mode: ^[[?>h +# RM solicited status mode: ^[[5l +# RM character mode: ^[[>l +# RM echoplex mode: ^[[12l +# RM column tab mode: ^[[18l +# RM forbid SS2 keyboard mode: ^[[?<l +# SM scroll mode: ^[[=h +# FCF enable XON/XOFF: ^[P1s^[\ +# MTL select end msg character: ^[[^Wp +# EMI enable keyboard: ^[b +# RIS retour etat initial: ^[c +# enable FC keypad: ^[[?<h, +# MPW map status line window: ^[PY99:98^[\ +# SCP select status line: ^[[0;98v +# ED erase entire partition: ^[[2J +# SCP select main partition: ^[[v +# SM character insertion mode: ^[[4h +# RM character replacement mode: ^[[4l +# COO cursor on: ^[[r +# COO cursor off: ^[[1r +# SGR dim (turquoise) rev attr: ^[[2;7m +# SGR Data normal attr: ^[[m +# SO Line-graphic mode ON: ^N +# SI Line-graphic mode OFF: ^O +# MC start routing to printer: ^[[5i +# MC stop routing to printer: ^M^[[4i +# + +# This entry covers the following terminals: +# dku7102, tws2102, and tws models 2105 to 2112 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +tws-generic|dku7102|Bull Questar tws terminals:\ + :am:es:hs:mi:ms:xn:xo:xs@:\ + :co#80:it#8:li#24:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\ + :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%df:cr=^M:ct=\E[2g:\ + :dc=\E[P:dl=\E[M:do=^J:\ + :ds=\EPY99\07298\E\\E[0;98v\E[2J\E[v:ei=\E[4l:fs=\E[v:\ + :ho=\E[H:i1=\E[?=h\Ec\E`\E[?>h\EPY99\07298\E\:\ + :i2=\Eb\E[?<h:im=\E[4h:\ + :is=\E[5;>;12;18;?<l\E[=h\EP1s\E\\E[\027p:\ + :k1=\E[1u\027:k2=\E[2u\027:k3=\E[3u\027:k4=\E[4u\027:\ + :k5=\E[5u\027:k6=\E[6u\027:k7=\E[7u\027:k8=\E[8u\027:\ + :kD=\E[P:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:ll=\E[H\E[A:mb=\E[0;5m:me=\E[m\017:mh=\E[0;2m:\ + :mr=\E[0;7m:nd=\E[C:se=\E[m:sf=^J:so=\E[0;7m:st=\EH:\ + :ta=\E[I:te=\E[0;98v\E[2J\E[v:ti=\E[?>h\EPY99\07298\E\:\ + :ts=\EPY99\07298\E\\E[0;98v\E[2;7m:ue=\E[m:up=\E[A:\ + :us=\E[0;4m:ve=\E[r:vi=\E[1r: +tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA:\ + :ds=\E[0;98v\E[2J\E[v:fs=\E[v:i2=\Eb:ts=\E[0;98v:\ + :tc=tws-generic: +tws2103|xdku|BULL Questar tws2103:\ + :ta=^I:tc=tws-generic: +tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA:\ + :ta=^I:\ + :tc=tws2102-sna: +dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6):\ + :AL@:DL@:al@:ce=\E[K\E[m:cl=\E[2J\E[H:cm@:dl@:\ + :ds=\EPY99\07298\E\\E[0;98v\E[2J\E[H\E[v:\ + :ts=\EPY99\07298\E\\E[0;98v\E[H\E[2;7m:\ + :tc=tws-generic: +dku7202|BULL Questar 200 DKU7202 (colour/character attributes):\ + :i2=\E[?3h\Eb:mb=\E[0;2;4m:mh=\E[0;5m:so=\E[0;4;5;7m:\ + :ta=^I:us=\E[0;2m:\ + :tc=tws-generic: + +#=========================================================# +# BULL QUESTAR 303 & 310 `DEC VT 320' terminals emulation # +#=========================================================# +# +# Description written by J. Staerck (BULL SA) +# Copyright (c) 1989 BULL SA +#--------------------------------------------------------------------------- +# This entry is used for terminals with vt320 emulation mode +# and following set-up : +# 8 bit ISO Latin Character Set (ISO 8859-1), +# 7 bit Control Characters, +# 80 columns screen. +# Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300) +# They are used in string capabilities with vt220-320 emulation mode. +# In the following DEC definitions, two kinds of terminfo databases are +# provided : +# 1. the first with Command Sequence Introducer starting with escape +# sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode. +# 2. the second with Command Sequence Introducer starting with escape +# sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B. +# Soft Terminal Reset esc [ ! p +# RIS (erases screen): esc c +# DECKPNM numeric keypad mode: esc > +# DECKPAM applic. keypad mode: esc = +# DECSTBM Scrolling region: esc [ r +# SCS select G0 = US: esc ( B +# SCS select G1 = line-graphic: esc ) 0 +# Select 7-bit C1 controls: esc sp F +# Select 8-bit C1 controls: esc sp G +# Select cursor home: esc [ H +# Select erase screen: esc [ J +# SM KAM lock keyboard: esc [ 2 h +# RM KAM unlock keyboard: esc [ 2 l +# SM SRM local echo off: esc [ 1 2 h +# RM SRM local echo on: esc [ 1 2 l +# SM LNM New line : esc [ 2 0 h +# RM LNM return = CR only: esc [ 2 0 l +# SM DECCKM cursor keys mode: esc [ ? 1 h +# RM DECCKM appli. keys mode: esc [ ? 1 l +# SM DECANM ANSI mode on: esc [ ? 2 h +# RM DECANM ANSI mode off: esc [ ? 2 l +# SM DECCOLM 132-column screen: esc [ ? 3 h +# RM DECCOLM 80-column screen: esc [ ? 3 l +# SM DECSCLM Smooth scroll: esc [ ? 4 h +# RM DECSCLM Jump scroll: esc [ ? 4 l +# SM DECSCNM screen light backgr. esc [ ? 5 h +# RM DECSCNM screen dark backgr. esc [ ? 5 l +# SM DECOM move within margins: esc [ ? 6 h +# RM DECOM move outside margins: esc [ ? 6 l +# SM DECAWM auto right margin: esc [ ? 7 h +# RM DECAWM auto right margin: esc [ ? 7 l +# SM DECARM auto repeat: esc [ ? 8 h +# RM DECARM auto repeat: esc [ ? 8 l +# DECSASD Select active main: esc [ 0 $ } +# DECSASD Select active status: esc [ 1 $ } +# DECSSDT Select status none: esc [ 0 $ ~ +# DECSSDT Select status indic.: esc [ 1 $ ~ +# DECSSDT Select status host-wr: esc [ 2 $ ~ +# SM DECTCEM Visible cursor: esc [ ? 2 5 h +# RM DECTCEM Invisible cursor: esc [ ? 2 5 l +# SM DECNCRM 7 bits NCR set: esc [ ? 4 2 h +# RM DECNCRM Multi or ISO latin: esc [ ? 4 2 l +# SM DECNKM numeric keypad mode: esc [ ? 6 6 h +# RM DECNKM numeric keypad appl.: esc [ ? 6 6 l +# SM DECKBUM clavier informatique esc [ ? 6 8 h +# RM DECKBUM clavier bureautique: esc [ ? 6 8 l +# DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 " p +# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 0 " p +# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 2 " p +# DECSCL vt300 mode 7-bit ctrl: esc [ 6 3 ; 1 " p +# Char. and Line attributes: esc [ Ps ... Ps m +# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse +# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off +# + +# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +bq300|Bull vt320 ISO Latin 1 80 columns terminal:\ + :am:eo:es:hs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:ws#80:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\ + :ds=\E[1$}\E[2$~\n\E[0$}:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:\ + :ho=\E[H:i1=\E[63;1"p\E[2h:\ + :i2=\E[0$}\E[?25h\E[2l\E[H\E[J:im=\E[4h:\ + :is=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\ + :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\ + :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0m\E(B:mr=\E[7m:nd=\E[C:\ + :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\ + :st=\EH:ta=^I:te=\E[?7h:ti=\E[?7l\E[?1l\E(B:\ + :ts=\E[1$}\E[2$~:ue=\E[24m:up=\E[A:us=\E[4m:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: +bg300-rv|Bull vt320 reverse 80 columns:\ + :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :vb=\E[?5l\E[?5h:\ + :tc=bq300: +bq300-w|Bull vt320 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :r2=\E[?3h:\ + :tc=bq300: +bq300-w-rv|Bull vt320 reverse mode 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :r2=\E[?3h:vb=\E[?5l\E[?5h:\ + :tc=bq300: + +# This entry is used for terminals with vt320 emulation mode +# and following set-up : +# 8 bit ISO Latin Character Set (ISO 8859-1), +# 8 bit Control Characters, (CSI coded as x9B for ESC [) +# 80 columns screen. +# Soft Terminal Reset csi ! p +# RIS (erases screen): esc c +# DECKPNM numeric keypad mode: esc > +# DECKPAM applic. keypad mode: esc = +# DECSTBM Scrolling region: esc [ r +# SCS select G0 = US: esc ( B +# SCS select G1 = line-graphic: esc ) 0 +# Select 7-bit C1 controls: esc sp F +# Select 8-bit C1 controls: esc sp G +# Select cursor home: csi H +# Select erase screen: csi J +# SM KAM lock keyboard: csi 2 h +# RM KAM unlock keyboard: csi 2 l +# SM SRM local echo off: csi 1 2 h +# RM SRM local echo on: csi 1 2 l +# SM LNM New line : csi 2 0 h +# RM LNM return = CR only: csi 2 0 l +# SM DECCKM cursor keys mode: csi ? 1 h +# RM DECCKM appli. keys mode: csi ? 1 l +# SM DECANM ANSI mode on: csi ? 2 h +# RM DECANM ANSI mode off: csi ? 2 l +# SM DECCOLM 132-column screen: csi ? 3 h +# RM DECCOLM 80-column screen: csi ? 3 l +# SM DECSCLM Smooth scroll: csi ? 4 h +# RM DECSCLM Jump scroll: csi ? 4 l +# SM DECSCNM screen light backgr. csi ? 5 h +# RM DECSCNM screen dark backgr. csi ? 5 l +# SM DECOM move within margins: csi ? 6 h +# RM DECOM move outside margins: csi ? 6 l +# SM DECAWM auto right margin: csi ? 7 h +# RM DECAWM auto right margin: csi ? 7 l +# SM DECARM auto repeat: csi ? 8 h +# RM DECARM auto repeat: csi ? 8 l +# DECSASD Select active main: csi 0 $ } +# DECSASD Select active status: csi 1 $ } +# DECSSDT Select status none: csi 0 $ ~ +# DECSSDT Select status indic.: csi 1 $ ~ +# DECSSDT Select status host-wr: csi 2 $ ~ +# SM DECTCEM Visible cursor: csi ? 2 5 h +# RM DECTCEM Invisible cursor: csi ? 2 5 l +# SM DECNCRM 7 bits NCR set: csi ? 4 2 h +# RM DECNCRM Multi or ISO latin: csi ? 4 2 l +# DECSCL vt300 mode 8-bit ctrl: csi 6 3 " p +# or DECSCL vt300 mode 8-bit ctrl: csi 6 3 ; 0 " p +# DECSCL vt300 mode 7-bit ctrl: csi 6 3 ; 1 " p +# Char. and Line attributes: csi Ps ... Ps m +# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse +# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off +# (bq300-8: :le:,:nd:,:up:,:do:,:dl:,:al: to get under 1024 --esr) +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +bq300-8|Bull vt320 full 8 bits 80 columns:\ + :am:eo:es:hs:km:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:ws#80:\ + :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\ + :K1=\217w:K2=\217u:K3=\217y:K4=\217q:K5=\217s:LE=\233%dD:\ + :RI=\233%dC:UP=\233%dA:ae=^O:as=^N:bl=^G:cd=\233J:ce=\233K:\ + :cl=\233H\233J:cm=\233%i%d;%dH:cr=^M:cs=\233%i%d;%dr:\ + :ct=\2333g:dc=\233P:ds=\2331$}\2332$~\n\2330$}:\ + :ec=\233%dX:ei=\2334l:fs=\2330$}:ho=\233H:\ + :i1=\E[63;2"p\E[2h:i2=\2330$}\233?25h\2332l\233H\233J:\ + :im=\2334h:\ + :is=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :k1=\217P:k2=\217Q:k3=\217R:k4=\217S:k6=\23317~:\ + :k7=\23318~:k8=\23319~:k9=\23320~:kD=\2333~:kI=\2332~:\ + :kN=\2336~:kP=\2335~:kb=^H:kd=\233B:ke=\233?1l\E>:\ + :kl=\233D:kr=\233C:ku=\233A:mb=\2335m:md=\2331m:\ + :me=\2330m\E(B:mr=\2337m:nw=\EE:rc=\E8:sc=\E7:se=\23327m:\ + :sf=\ED:so=\2337m:sr=\EM:st=\EH:ta=^I:te=\233?7h:\ + :ti=\233?7l\233?1l\E(B:ts=\2331$}\2332$~:ue=\23324m:\ + :us=\2334m:vb=\233?5h\233?5l:ve=\233?25h:vi=\233?25l:\ + :vs=\233?25h: +bq300-8rv|Bull vt320 8-bit reverse mode 80 columns:\ + :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :vb=\233?5l\233?5h:\ + :tc=bq300-8: +bq300-8w|Bull vt320 8-bit 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :r2=\233?3h:\ + :tc=bq300-8: +bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :r2=\233?3h:vb=\233?5l\233?5h:\ + :tc=bq300-8: + +# This entry is used for terminals with vt320 emulation mode +# a 102 keys keyboard (PC scancode !) and following set-up : +# 8 bit ISO Latin Character Set (ISO 8859-1), +# 7 bit Control Characters, +# 80 columns screen. +bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns:\ + :%0@:%1@:*6@:@0@:@7=\E[4~:F1=\E[29~:F2=\E[31~:F3@:F4@:F5@:F6@:\ + :F7@:F8@:F9@:FA@:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\ + :k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:\ + :k;=\E[28~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\ + :kh=\E[1~:l1@:l2@:l3@:l4@:\ + :tc=bq300: +bq300-pc-rv|Questar 303 with PC keyboard reverse mode 80 columns:\ + :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :vb=\E[?5l\E[?5h:\ + :tc=bq300-pc: +bq300-pc-w|Questar 303 with PC keyboard 132 columns terminal:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :r2=\E[?3h:\ + :tc=bq300-pc: +bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\ + :r2=\E[?3h:vb=\E[?5l\E[?5h:\ + :tc=bq300-pc: +# 8 bit ISO Latin Character Set (ISO 8859-1), +# 8 bit Control Characters, +# 80 columns screen. +bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns:\ + :%0@:%1@:*6@:@0@:@7=\2334~:F1=\23329~:F2=\23331~:F3@:F4@:F5@:\ + :F6@:F7@:F8@:F9@:FA@:k1=\23317~:k2=\23318~:k3=\23319~:\ + :k4=\23320~:k5=\23321~:k6=\23323~:k7=\23324~:k8=\23325~:\ + :k9=\23326~:k;=\23328~:kD=\2333~:kI=\2332~:kN=\2336~:\ + :kP=\2335~:kb=^H:kh=\2331~:l1@:l2@:l3@:l4@:\ + :tc=bq300-8: +bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns:\ + :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :vb=\E[?5l\E[?5h:\ + :tc=bq300-8-pc: +bq300-8-pc-w|Questar 303 with PC keyboard full 8 bits 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :r2=\E[?3h:\ + :tc=bq300-8-pc: +bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns:\ + :co#132:ws#132:\ + :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\ + :r2=\E[?3h:vb=\E[?5l\E[?5h:\ + :tc=bq300-8-pc: + +#======================================================# +# BULL QUESTAR 310 `VIP 7800/8800' terminals emulation # +#======================================================# + +# normal mode, 8 bits, 80 columns terminal. +# RES reset : ^[e +# RIS reset initial state: ^[c +# BLE bell enable ^[h +# BLD bell disable ^[g +# CAMS char. attr. mode set ^[[D +# CAMR char. attr. mode reset ^[[G +# CLR clear ^[` +# KBU keyboard unlock (set) ^[[W +# KBL keyboard lock (reset) ^[[X +# CM character mode (async.) ^[k +# NEP non echoplex mode (by host) ^[l +# EP echoplex mode (by host) ^[m +# IM insert mode set ^[[I +# IM insert mode reset ^[[J +# RMS roll mode set ^[r +# RMR roll mode reset ^[q +# SM78 set mode vip7800 ^[[1q +# SD scroll up (72 lines) ^[[0s +# SD scroll down (72 lines) ^[[1s +# RBM block mode reset ^[[E +# SLS status line set ^[w +# SLR status line reset ^[v +# SLL status line lock ^[O +# LGS Line-graphic mode set ^[G +# LGR Line-graphic mode reset ^[F +# TBC tab clear (at cursor pos.) ^[[g +# TBI tab initialize ^[[N +# TBS tab set (at cursor pos.) ^[p +# PDS print data space ^[[0p +# PHD print host data ^[[3p +# PDT print data terminator ^[[<p +# PRES print adapter reset ^[[2p +# SSPR multi-part. reset ^[[<>u +# SSP0 partition 0 set ^[[00u +# SSP1 partition n format 1 ^[[PnPnSTRINGu +# SSP2 partition n format 2 ^[[PnPnSTRINGu +# SSP3 partition n format 3 ^[[PnPnu +# ATR attribute (visual) +# blink : ^[sB +# dim : ^[sL +# hide (blank) : ^[sH +# restore : ^[sR +# inverse video : ^[sI +# prot. : ^[sP +# underline : ^[s_ +# reset : ^{ +# +# This covers the vip7800 and BQ3155-vip7800 +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +vip|Bull Questar 3155-7800:\ + :am:es:hs:km:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:ws#80:\ + :ae=\EF:as=\EG:bl=^G:bt=\E[Z:cd=\EJ:ce=\EK:cl=\E`:\ + :cm=\E[%i%03%03f:cr=^M:ct=\E[N:dc=\E[P:dl=\E[M:do=^J:\ + :ds=\Ev:ei=\E[J:fs=\EO:ho=\EH:i2=\Er\E[W\E`:ic=\E[I:\ + :im=\E[I:is=\E[00u\E[<>001001024080024080u\E[01u:\ + :k1=\E0:k2=\E2:k3=\E6:k4=\E8:k5=\E\072:k6=\E<:k7=\E>:k8=\EP:\ + :k9=\ER:kD=\E[P:kH=\EH\EA:kI=\E[I:kb=^H:kd=\EB:kh=\EH:\ + :kl=\ED:kr=\EC:ku=\EA:le=^H:ll=\EH\EA:mb=\EsB:\ + :me=\EsR\EsU\EF:mh=\EsL:mr=\EsI:nd=\EC:nw=^M:se=\EsR:sf=^J:\ + :so=\EsI:sr=\EA\EJ\EH\E[L:st=\Ep:ta=^I:ts=\Ew:ue=\EsR:\ + :up=\EA:us=\Es_:vb=\007\007\007: +# normal screen, 8 bits, 132 columns terminal. +vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide:\ + :co#132:ws#132:\ + :is=\E[00u\E[<>001001024132024132u\E[01u:tc=vip: +vip-H|vip7800-H|Q310-vip-H|Q310-vip-H-am|Questar 3155-vip7800 72 lines:\ + :li#72:\ + :is=\E[00u\E[<>001001024080072080u\E[01u:tc=vip: +vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines:\ + :co#132:li#72:ws#132:\ + :is=\E[00u\E[<>001001024132072132u\E[01u:tc=vip: +#### Chromatics +# + +# I have put the long strings in :ti:/:te:. Ti sets up a window +# that is smaller than the screen, and puts up a warning message +# outside the window. Te erases the warning message, puts the +# window back to be the whole screen, and puts the cursor at just +# below the small window. I defined :ve: and :vi: to really turn +# the cursor on and off, but I have taken this out since I don't +# like the cursor being turned off when vi exits. +cg7900|chromatics|chromatics 7900:\ + :am:\ + :co#80:li#40:\ + :al=^A>2:bl=^G:cd=^Al:ce=^A`:cl=^L:cm=\001M%r%d\054%d\054:\ + :cr=^M:dc=^A<1:dl=^A<2:do=^J:ei=:ho=^\:ic=^A>1:im=:le=^H:\ + :ll=^A|:nd=^]:se=\001C1\054\001c2\054:sf=^J:\ + :so=\001C4\054\001c7\054:\ + :te=\001W0\05440\05485\05448\054\014\001W0\0540\05485\05448\054\001M0\05440\054:\ + :ti=\001P0\001O1\001R1\001C4\054\001c0\054\014\001M0\05442\054WARNING DOUBLE ENTER ESCAPE and \025\001C1\054\001c2\054\001W0\0540\05479\05439\054:\ + :uc=\001\001_\001\0:up=^K: + +#### Computer Automation +# + +ca22851|computer automation 22851:\ + :am:\ + :co#80:li#24:\ + :bl=^G:cd=^\:ce=^]:cl=\014:cm=\002%i%.%.:cr=^M:do=^J:ho=^^:\ + :kd=^W:kh=^^:kl=^U:ku=^V:le=^U:nd=^I:sf=^J:up=^V: + +#### Cybernex +# + +# This entry has correct padding and the undocumented "ri" capability +cyb83|xl83|cybernex xl-83:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cd=\020:ce=\017:cl=\014:cm=\027%+ %+ :cr=^M:do=^J:\ + :ho=^K:kd=^J:kl=^H:kr=^I:ku=^N:le=^H:nd=^I:sf=^J:sr=^N:up=^N: +# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr) +cyb110|mdl110|cybernex mdl-110:\ + :am:bs:\ + :co#80:li#24:\ + :al=\016A\016\035:bl=^G:cd=\016@\026:ce=\016@\026:\ + :cl=\030:cm=\020%+ %+ :cr=^M:dc=\016A\036:\ + :dl=\016A\016\036:do=^J:ei=:ho=^Y:ic=\016A\035:im=:le=^H:\ + :nd=^U:se=^NG:sf=^J:so=^NF:ta=\011:up=^Z: + +#### Datapoint +# +# Datapoint is gone. They used to be headquartered in Texas. +# They created ARCnet, an Ethernet competitor that flourished for a while +# in the early 1980s before 3COM got wise and cut its prices. The service +# side of Datapoint still lives (1995) in the form of Intelogic Trace. +# + +dp3360|datapoint|datapoint 3360:\ + :am:bs:\ + :co#82:li#25:\ + :bl=^G:cd=^_:ce=^^:cl=^]^_:cr=^M:do=^J:ho=^]:le=^H:nd=^X:\ + :sf=^J:up=^Z: + +# From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997 +# The Datapoint 8242 Workstation was sold at least between 1985 +# and 1989. To make the terminal work with this entry, press +# CONTROL-INT-INT to take the terminal off-line, and type (opt). +# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO +# CR/LF off. Use control-shift-[] as escape key, control-I as tab, +# shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in +# fact unusable because the strings sent by the terminal conflict +# with other keys). +# The terminal is capable of displaying "box draw" characters. +# For each graphic character you must send 2 ESC's (\E\E) followed +# by a control character as follows: +# character meaning +# ========= ======= +# ctrl-E top tee +# ctrl-F right tee +# ctrl-G bottom tee +# ctrl-H left tee +# ctrl-I cross +# ctrl-J top left corner +# ctrl-K top right corner +# ctrl-L bottom left corner +# ctrl-M bottom right corner +# ctrl-N horizontal line +# ctrl-O vertical line +# Unfortunately this cannot be fitted into the termcap/terminfo +# description scheme. +dp8242|datapoint 8242:\ + :ms:\ + :co#80:li#25:\ + :al=\E^T:bl=^G:cd=^W:ce=^V:cl=\025\E\004\027\030:\ + :cm=\011%r%+\%+\:cr=^M:dl=\E^Z:do=^J:ho=^U:\ + :i1=\E\014\E\016\0\230\0\317\025\027\030\E\004:\ + :k1=^G\Ee:k2=^I\Ed:k3=^J\Ec:k4=^J\Eb:k5=^S\Ea:k6=\EO\Ee:\ + :k7=\EN\Ed:k8=\EM\Ec:k9=\EL\Eb:k;=\EK\Ea:kb=^H:kd=^B:kl=^D:\ + :kr=^F:ku=^E:le=^H:nw=^M^J:\ + :r1=\E\014\E\016\0\230\0\317\025\027\030\E\004:\ + :rp=\E\023%.%.:se=\E^D:sf=^C:so=\E^E:sr=^K:ta=^I:ue=\E^D:\ + :us=\E^F:ve=^X:vi=^Y:\ + :..wi=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'\0'%+%c\025: + +#### DEC terminals (Obsolete types: DECwriter and vt40/42/50) +# +# These entries are DEC's official terminfos for its older terminals. +# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support +# Engineering for more information. Updated terminfos and termcaps +# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps. +# + +gt40|dec gt40:\ + :bs:os:\ + :co#72:li#30:\ + :bl=^G:cr=^M:do=^J:le=^H: +gt42|dec gt42:\ + :bs:os:\ + :co#72:li#40:\ + :bl=^G:cr=^M:do=^J:le=^H: + +vt50|dec vt50:\ + :bs:\ + :co#80:li#12:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cr=^M:do=^J:le=^H:nd=\EC:\ + :sf=^J:ta=^I:up=\EA: +vt50h|dec vt50h:\ + :bs:\ + :co#80:li#12:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:do=^J:\ + :le=^H:nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA: +# (<acsc>/:ae:/:as: capabilities aren't in DEC's official entry -- esr) +vt52|dec vt52:\ + :bs:\ + :co#80:it#8:li#24:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\ + :cr=^M:do=\EB:ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\ + :le=\ED:nd=\EC:nw=^M^J:sf=^J:sr=\EI:ta=^I:up=\EA: + +# (vt61: there's a BSD termcap that claims :dl=\EPd:, :al=\EPf.: :kb=^H:) +vt61|vt-61|vt61.5|dec vt61:\ + :co#80:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=\r:do=^J:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:sf=\n:sr=\EI:ta=^I:\ + :up=\EA: + +# The gigi does standout with red! +# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr) +gigi|vk100|dec gigi graphics terminal:\ + :am:bs:xn:\ + :co#84:li#24:\ + :DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\ + :UP=\E[%dA:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:do=^J:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h:k1=\EOP:\ + :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:me=\E[m:\ + :nd=\E[C:se=\E[m:sf=^J:so=\E[7;31m:sr=\EM:ta=^I:ue=\E[m:\ + :up=\E[A:us=\E[4m: + +# DEC PRO-350 console (VT220-style). The 350 was DEC's attempt to produce +# a PC differentiated from the IBM clones. It was a total, ludicrous, +# grossly-overpriced failure (among other things, DEC's OS didn't include +# a format program, so you had to buy pre-formatted floppies from DEC at +# a hefty premium!). +pro350|decpro|dec pro console:\ + :bs:\ + :co#80:it#8:li#24:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\EG:as=\EF:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :do=\EB:\ + :ho=\EH:k0=\EE:k1=\EF:k2=\EG:k3=\EH:k4=\EI:k5=\EJ:k6=\Ei:\ + :k7=\Ej:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\ + :se=\E^N:so=\E^H:sr=\EI:ta=^I:ue=\E^C:up=\EA:us=\E^D: + +dw1|decwriter I:\ + :bs:hc:os:\ + :co#72:\ + :bl=^G:cr=^M:do=^J:le=^H:sf=^J: +dw2|decwriter|dw|decwriter II:\ + :bs:hc:os:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J: +# \E(B Use U.S. character set (otherwise # => british pound !) +# \E[20l Disable "linefeed newline" mode (else puts \r after \n,\f,\v) +# \E[w 10 char/in pitch +# \E[1;132 full width horizontal margins +# \E[2g clear all tab stops +# \E[z 6 lines/in +# \E[66t 66 lines/page (for \f) +# \E[1;66r full vertical page can be printed +# \E[4g clear vertical tab stops +# \E> disable alternate keypad mode (so it transmits numbers!) +# \E[%i%p1%du set tab stop at column %d (origin == 1) +# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is +# a tab stop) +# +# The dw3 does standout with wide characters. +# +dw3|la120|decwriter III:\ + :bs:hc:os:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:\ + :i1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>:\ + :is=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r:\ + :kb=^H:le=^H:me=\E[w:se=\E[w:sf=^J:so=\E[6w:ta=^I: +dw4|decwriter IV:\ + :am:bs:hc:os:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:is=\Ec:k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:\ + :kb=^H:le=^H:sf=^J:ta=^I: + +# These aren't official +ln03|dec ln03 laser printer:\ + :hc:\ + :co#80:li#66:\ + :bl=^G:cr=^M:do=^J:hd=\EK:hu=\EL:me=\E[m:nw=^M^J:se=\E[22m:\ + :sf=^J:so=\E[1m:ta=^I:ue=\E[24m:us=\E[4m: +ln03-w|dec ln03 laser printer 132 cols:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ln03: + +#### Delta Data (dd) +# + +# Untested. The cup sequence is hairy enough that it probably needs work. +# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'. +# There are BSD-derived termcap entries floating around for this puppy +# that are *certainly* wrong. +delta|dd5000|delta data 5000:\ + :am:bs:\ + :co#80:li#27:\ + :bl=^G:ce=^NU:cl=^NR:cm=\017%+^P%+^P:dc=^NV:do=^J:ho=^NQ:\ + :le=^H:nd=^Y:sf=^J:up=^Z: + +#### Digital Data Research (ddr) +# + +# (ddr: I added <rmam>/<smam> based on the init string -- esr) +ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator:\ + :am:bs:xn:\ + :co#80:it#8:li#24:vt#3:\ + :RA=\E[7l:SA=\E[7l:cd=50\E[J:ce=3\E[K:cl=50\E[H\E[2J:\ + :cm=5\E[%i%d;%dH:cs=\E[%i%d;%dr:do=^J:ho=\E[H:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:\ + :ku=\E[A:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\ + :nd=2\E[C:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\ + :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[m:sf=5\ED:\ + :so=\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m: + +#### Evans & Sutherland +# + +# Jon Leech <leech@cs.unc.edu> tells us: +# The ps300 was the Evans & Sutherland Picture System 300, a high +# performance 3D vector graphics system with a bunch of specialized hardware. +# Approximate date of release was 1982 (early 80s, anyway), and it had several +# evolutions including (limited) color versions such as the PS330C. PS300s +# were effectively obsolete by the late 80s, replaced by raster graphics +# systems, although specialized applications like molecular modelling +# hung onto them for a while longer. AFAIK all E&S vector graphics systems +# are out of production, though of course E&S is very much alive (in 1996). +# (ps300: changed ":pt@:" to "it@" -- esr) +# +ps300|Picture System 300:\ + :xt:\ + :it@:\ + :se@:so@:ue@:us@:tc=vt100: + +#### General Electric (ge) +# + +terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200:\ + :bs:hc:os:\ + :co#120:\ + :bl=^G:cr=^M:do=^J:sf=^J: + +#### Heathkit/Zenith +# + +# Here is a description of the H19 DIP switches: +# +# S401 +# 0-3 = baud rate as follows: +# +# 3 2 1 0 +# --- --- --- --- +# 0 0 1 1 300 baud +# 0 1 0 1 1200 baud +# 1 0 0 0 2400 baud +# 1 0 1 0 4800 baud +# 1 1 0 0 9600 baud +# 1 1 0 1 19.2K baud +# +# 4 = parity (0 = no parity) +# 5 = even parity (0 = odd parity) +# 6 = stick parity (0 = normal parity) +# 7 = full duplex (0 = half duplex) +# +# S402 +# 0 = block cursor (0 = underscore cursor) +# 1 = no key click (0 = keyclick) +# 2 = wrap at end of line (0 = no wrap) +# 3 = auto LF on CR (0 = no LF on CR) +# 4 = auto CR on LF (0 = no CR on LF) +# 5 = ANSI mode (0 = VT52 mode) +# 6 = keypad shifted (0 = keypad unshifted) +# 7 = 50Hz refresh (1 = 60Hz refresh) +# +# Factory Default settings are as follows: +# 7 6 5 4 3 2 1 0 +# S401 1 0 0 0 1 1 0 0 +# S402 0 0 0 0 0 0 0 0 +# (h19: I added <rmam>/<smam> based on the init string; +# also added empty <acsc> to suppress a tic warning -- esr) +h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode:\ + :am:bs:mi:ms:\ + :co#80:it#8:li#24:\ + :RA=\E[?7l:SA=\E[?7h:ac=:ae=\E[11m:al=\E[1L:as=\E[10m:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:im=\E[4h:\ + :is=\E<\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m\E[?7h:k1=\EOS:\ + :k2=\EOT:k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:\ + :kb=^H:kd=\E[1B:kh=\E[H:kl=\E[1D:kr=\E[1C:ku=\E[1A:l6=blue:\ + :l7=red:l8=white:le=^H:nd=\E[1C:se=\E[m:sf=^J:so=\E[7m:\ + :sr=\EM:ta=^I:up=\E[1A:ve=\E[>4l:vs=\E[>4h: +h19-bs|heathkit w/keypad shifted:\ + :ke=\Eu:ks=\Et:tc=h19-b: +h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor:\ + :ke=\Eu:ks=\Et:\ + :tc=h19-u: +# (h19: merged in :ip: from BSDI hp19-e entry>; +# also added empty <acsc> to suppress a tic warning --esr) +# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998 +# Tim tells us that: +# I have an old Zenith-19 terminal at home that still gets a lot of use. +# This terminal suffers from the same famous insert-mode padding lossage +# that has been acknowledged for the Z29 terminal. Emacs is nearly +# unusable on this box, since even a half-scroll up or down the window +# causes flaming terminal death. +# +# On the Z19, the only way I have found around this problem is to remove +# the :al: and :dl: entries entirely. No amount of extra padding will +# help (I have tried up to 20000). Removing :al=\EL$: and :dl=\EM$: +# makes Emacs a little slower, but it remains in the land of the living. +# Big win. +h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19:\ + :am:bs:es:hs:mi:ms:\ + :co#80:it#8:li#24:\ + :ac=:ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :\ + :cr=^M:dc=\EN:do=\EB:ei=\EO:fs=\Ek\Ey5:ho=\EH:im=\E@:\ + :ip=1.5<1.5/>:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:\ + :k7=\EQ:k8=\ER:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:\ + :l6=blue:l7=red:l8=white:le=^H:nd=\EC:se=\Eq:sf=^J:so=\Ep:\ + :sr=\EI:ta=^I:ts=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo:up=\EA:\ + :ve=\Ey4:vs=\Ex4: +h19-u|heathkit with underscore cursor:\ + :ve@:vs@:tc=h19-b: +h19-g|h19g|heathkit w/block cursor:\ + :ve=\Ex4:tc=h19-b: +alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19:\ + :li#60:\ + :al=\EL:dl=\EM:tc=h19: + +# The major problem with the Z29 is that it requires more padding than the Z19. +# +# The problem with declaring an H19 to be synonymous with a Z29 is that +# it needs more padding. It especially loses if a program attempts +# to put the Z29 into insert mode and insert text at 9600 baud. It +# even loses worse if the program attempts to insert tabs at 9600 +# baud. Adding padding to text that is inserted loses because in +# order to make the Z29 not die, one must add so much padding that +# whenever the program tries to use insert mode, the effective +# rate is about 110 baud. +# +# What program would want to put the terminal into insert mode +# and shove stuff at it at 9600 baud you ask? +# +# Emacs. Emacs seems to want to do the mathematically optimal +# thing in doing a redisplay rather than the practical thing. +# When it is about to output a line on top of a line that is +# already on the screen, instead of just killing to the end of +# the line and outputting the new line, it compares the old line +# and the new line and if there are any similarities, it +# constructs the new line by deleting the text on the old line +# on the terminal that is already there and then inserting new +# text into the line to transform it into the new line that is +# to be displayed. The Z29 does not react kindly to this. +# +# But don't cry for too long.... There is a solution. You can make +# a termcap entry for the Z29 that says the Z29 has no insert mode. +# Then Emacs cannot use it. "Oh, no, but now inserting into a +# line will be really slow", you say. Well there is a sort of a +# solution to that too. There is an insert character option on +# the Z29 that will insert one character. Unfortunately, it +# involves putting the terminal into ansi mode, inserting the +# character, and changing it back to H19 mode. All this takes 12 +# characters. Pretty expensive to insert one character, but it +# works. Either Emacs doesn't try to use its inserting hack when +# it's only given an insert character ability or the Z29 doesn't +# require padding with this (the former is probably more likely, +# but I haven't checked it out). +# (z29: added empty <acsc> to suppress a tic warning, merged in +# status line capabilities from BRL entry --esr) +z29|zenith29|z29b|zenith z29b:\ + :am:bs:es:hs:mi:ms:pt:\ + :co#80:kn#10:li#24:\ + :ac=:ae=\EF:al=1\EL:as=\EG:bc=\ED:bl=^G:bt=\E-:cd=\EJ:ce=\EK:\ + :cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:dl=1\EM:do=\EB:ds=\Ey1:\ + :ei=\EO:fs=\Ek\Ey5:ho=\EH:ic=\E<\E[1@\E[?2h:im=\E@:\ + :is=\E<\E[?2h\Ev:k0=\E~:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:\ + :k6=\EP:k7=\EQ:k8=\ER:k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:\ + :kr=\EC:ku=\EA:l0=home:le=^H:nd=\EC:se=\Eq:sf=\n:so=\Ep:\ + :sr=2\EI:ta=^I:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:ue=\Es0:up=\EA:\ + :us=\Es8:ve=\Ey4:vs=\Ex4: +# z29 in ansi mode. Assumes that the cursor is in the correct state, and that +# the world is stable. <rs1> causes the terminal to be reset to the state +# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore +# cursor, bc -> block cursor. +# From: Mike Meyers +# (z29a: replaced nonexistent :if=/usr/share/tabset/zenith29: befause :st: +# looks vt100-compatible -- esr) +z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode:\ + :am:bs:es:hs:mi:ms:pt:\ + :co#80:it#8:kn#10:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:bc=\ED:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:\ + :do=^J:ds=\E[>1l:fs=\E[u\E[>5l:ho=\E[H:\ + :if=/usr/share/tabset/vt100:k0=\E[~:k1=\EOS:k2=\EOT:\ + :k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:k9=\EOX:\ + :kC=\E[J:kS=\E[J:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:\ + :ku=\EOA:l0=help:le=^H:mb=\E[5m:md=\E[2m:me=\E[m:mh=\E[2m:\ + :mr=\E[7m:nd=\E[C:nw=^M\ED:ps=\E#7:\ + :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m:\ + :rc=\E[r:sc=\E[s:se=\E[m:sf=\ED:so=\E[7;2m:sr=\EM:st=\EH:\ + :ta=^I:te=\E[?7h:ti=\E[?7l:\ + :ts=\E[s\E[>5;1h\E[25;%i%dH\E[1K:ue=\E[m:up=\E[A:\ + :us=\E[4m: +z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyckick and underscore cursor:\ + :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m:\ + :tc=z29a: +z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick:\ + :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m\E[11m:\ + :tc=z29a: +z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick:\ + :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m\E[11m:\ + :tc=z29a: +# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995 +z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode:\ + :5i:am:es:hs:mi:ms:xo:\ + :co#80:li#24:\ + :%1=\E[~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:K1=\EOw:\ + :K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:ac=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~:\ + :ae=\E(B:al=\E[1L:as=\E(0:bl=^G:bt=\E[1Z:cb=\E[1K:cd=\E[0J:\ + :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[1M:do=\E[B:\ + :ds=\E[>1l:ei=\E[4l:fs=\E[u:ho=\E[H:im=\E[4h:\ + :is=\E<\E[>1;3;5;6;7l\E[0m\E[2J:k1=\EOS:k2=\EOT:k3=\EOU:\ + :k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:k9=\EOX:kS=\E[J:\ + :kb=^H:kd=\E[B:ke=\E[>7l:kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[>7h:\ + :ku=\E[A:le=^H:ll=\E[24;1H:mb=\E[5m:md=\E[1m:me=\E[0m:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:\ + :ps=\E[?19h\E[i:r2=\E<\Ec\0:rc=\E[u:sc=\E[s:se=\E[0m:\ + :sf=^J:so=\E[7m:st=\EH:ta=^I:ts=\E[s\E[>1h\E[25;%i%p1%dH:\ + :ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[>5l:vi=\E[>5h: + +# From: Brad Brahms <Brahms@USC-ECLC> +z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor:\ + :ve=\Ey4\Em70:vs=\Ex4\Em71:\ + :tc=z100bw: +# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr) +z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc:\ + :bs:mi:ms:pt:\ + :co#80:it#8:kn#10:li#24:\ + :ac=:ae=\EG:al=5*\EL:as=\EF:cd=\EJ:ce=\EK:cl=5*\EE:\ + :cm=1*\EY%+ %+ :dc=1*\EN:dl=5*\EM:do=\EB:ei=\EO:ho=\EH:\ + :im=\E@:k0=\EJ:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:\ + :k7=\EQ:k8=\ER:k9=\EOI:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\ + :ku=\EA:le=^H:nd=\EC:se=\Eq:so=\Ep:sr=\EI:ta=^I:up=\EA:\ + :ve=\Ey4:vs=\Ex4: +p19|h19-b with il1/dl1:\ + :al=2*\EL:dl=2*\EM:tc=h19-b: +# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu> +# (ztx: removed duplicate :sr: -- esr) +ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11:\ + :am:bs:es:hs:\ + :co#80:it#8:li#24:\ + :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dl=\EM:do=^J:\ + :ds=\Ey1:fs=\Ek\Ey5:ho=\EH:\ + :is=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>:k0=\ES:\ + :k1=\EB:k2=\EU:k3=\EV:k4=\EW:k5=\EP:k6=\EQ:k7=\ER:kb=^H:\ + :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eq:so=\Es5:\ + :sr=\EI:ta=^I:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:ue=\Eq:up=\EA:\ + :us=\Es2: + +#### IMS International (ims) +# +# There was a company called IMS International located in Carson City, +# Nevada, that flourished from the mid-70s to mid-80s. They made S-100 +# bus/Z80 hardware and a line of terminals called Ultimas. +# + +# From: Erik Fair <fair@ucbarpa.berkeley.edu> Sun Oct 27 07:21:05 1985 +ims950-b|bare ims950 no init string:\ + :is@:tc=ims950: +# (ims950: removed obsolete ":ko@:" -- esr) +ims950|ims televideo 950 emulation:\ + :xn@:\ + :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:kl@:kr@:ku@:vb@:tc=tvi950: +# (ims950-rv: removed obsolete ":ko@:" -- esr) +ims950-rv|ims tvi950 rev video:\ + :xn@:\ + :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:kl@:kr@:ku@:vb@:tc=tvi950-rv: +ims-ansi|ultima2|ultimaII|IMS Ultima II:\ + :am:bs:\ + :co#80:it#8:li#24:\ + :cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:cm=\E[%i%2;%2H:do=\ED:\ + :if=/usr/share/tabset/vt100:\ + :is=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r:kd=\E[B:kh=\E[H:\ + :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:se=\E[m\E[1m:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m\E[1m:up=\EM:us=\E[4m: + +#### Intertec Data Systems +# +# I think this company is long dead as of 1995. They made an early CP/M +# micro called the "Intertec Superbrain" that was moderately popular, +# then sank out of sight. +# + +superbrain|intertec superbrain:\ + :am:bs:bw:\ + :co#80:li#24:\ + :bc=^U:bl=^G:cd=\E~k<10*>:ce=\E~K:cl=\014:cm=\EY%+ %+ :\ + :cr=^M:do=^J:kd=^J:kl=^U:kr=^F:ku=^K:le=^H:nd=^F:sf=^J:ta=^I:\ + :te=^L:ti=^L:up=^K: +# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>, +# rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM, +# and the reverse is actually true. Try it. -- esr) +intertube|intertec|Intertec InterTube:\ + :am:bs:\ + :co#80:li#25:\ + :bl=^G:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=^A:le=^H:nd=^F:\ + :se=\E0@:sf=^J:so=\E0P:up=^Z: +# The intertube 2 has the "full duplex" problem like the tek 4025: if you +# are typing and a command comes in, the keystrokes you type get interspersed +# with the command and it messes up +intertube2|intertec data systems intertube 2:\ + :bs:\ + :ce=\EK:ch=\020%+^J:cm=\016%.\020%+^J:cv=\013%.:\ + :ll=^K^X\r:\ + :tc=intertube: + +#### Ithaca Intersystems +# +# This company made S100-bus personal computers long ago in the pre-IBM-PC +# past. They used to be reachable at: +# +# Ithaca Intersystems +# 1650 Hanshaw Road +# Ithaca, New York 14850 +# +# However, the outfit went bankrupt years ago. +# + +# The Graphos III was a color graphics terminal from Ithaca Intersystems. +# These entries were written (originally in termcap syntax) by Brian Yandell +# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the +# University of Wisconsin. + +# (graphos: removed obsolete and syntactically incorrect :kn=4:, +# removed :if=/usr/share/tabset/init.graphos: and +# <rf=/usr/share/tabset/init.graphos> no such file & no :st: -- esr) +graphos|graphos III:\ + :am:mi:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\ + :UP=\E[%dA:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:dm=\E[4h:do=\E[B:\ + :ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ku=\E[A:le=^H:me=\E[m:nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:\ + :se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A:\ + :ve=\Ez56;2;0;0z\Ez73z\Ez4;1;1z:\ + :vs=\Ez4;2;1z\Ez56;2;80;24z: +graphos-30|graphos III with 30 lines:\ + :li#30:\ + :vs=\Ez4;2;1z\Ez56;2;80;30z:tc=graphos: + +#### Modgraph +# +# These people used to be reachable at: +# +# Modgraph, Inc +# 1393 Main Street, +# Waltham, MA 02154 +# Vox: (617)-890-5796. +# +# However, if you call that number today you'll get an insurance company. +# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated +# 26 Feb 1997 that says: +# +# Modgraph GX-1000, replaced by GX-2000. Both are out of production, have been +# for ~7 years. Modgraph still in business. Products are rugged laptop and +# portable PC's and specialized CRT and LCD monitors (rugged, rack-mount +# panel-mount etc). I can be emailed at sonfour@aol.com +# +# Peter D. Smith <pdsmith@nbbn.com> notes that his modgraph manual was +# dated 1984. According to the manual, it featured Tek 4010/4014 +# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard. +# + +modgraph|mod24|modgraph terminal emulating vt100:\ + :xn@:\ + :co#80:li#24:\ + :is=\E\1369;0s\E\1367;1s\E[3g\E\13611;9s\E\13611;17s\E\13611;25s\E\13611;33s\E\13611;41s\E\13611;49s\E\13611;57s\E\13611;65s\E\13611;73s\E\13611;81s\E\13611;89s:\ + :rf@:sr=5\EM\E[K:vs=\E\1369;0s\E\1367;1s:\ + :tc=vt100: +# The GX-1000 manual is dated 1984. This looks rather like a VT-52. +modgraph2|modgraph gx-1000 80x24 with keypad not enabled:\ + :am:da:db:\ + :co#80:it#8:li#24:\ + :cd=50\EJ:ce=3\EK:cl=50\EH\EJ:cm=5\EY%+ %+ :\ + :is=\E<\E\1365;2s\E\1367;1s\E[3g\E\13611;9s\E\13611;17s\E\13611;25s\E\13611;33s\E\13611;41s\E\13611;49s\E\13611;57s\E\13611;65s\E\13611;73s\E\13611;81s\E\13611;89s\E\13612;0s\E\13614;2s\E\13615;9s\E\13625;1s\E\1369;1s\E\13627;1:\ + :le=^H:nd=2\EC:sr=5\EI:ta=^I:up=2\EA: +# +# Modgraph from Nancy L. Cider <nancyc@brl-tbd> +# BUG NOTE from Barbara E. Ringers <barb@brl-tbd>: +# If we set TERM=vt100, and set the Modgraph screen to 24 lines, setting a +# mark and using delete-to-killbuffer work correctly. However, we would +# like normal mode of operation to be using a Modgraph with 48 line setting. +# If we set TERM=mod (which is a valid entry in termcap with 48 lines) +# the setting mark and delete-to-killbuffer results in the deletion of only +# the line the mark is set on. +# We've discovered that the delete-to-killbuffer works correctly +# with TERM=mod and screen set to 80x48 but it's not obvious. Only +# the first line disappears but a ctrl-l shows that it did work +# correctly. +modgraph48|mod|Modgraph w/48 lines:\ + :am:bs:pt:xn:\ + :co#80:it#8:li#48:vt#3:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:do=^J:ho=\E[H:\ + :is=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\ + :me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:r1=\E=\E[0q\E>:rc=\E8:\ + :sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m:vb=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q: + +#### Morrow Designs +# +# This was George Morrow's company. They started in the late 1970s making +# S100-bus machines. They used to be reachable at: +# +# Morrow +# 600 McCormick St. +# San Leandro, CA 94577 +# +# but they're long gone now (1995). +# + +# The mt70 terminal was shipped with the Morrow MD-3 microcomputer. +# Jeff's specimen was dated June 1984. +# From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995 +mt70|mt-70|Morrow MD-70; native Morrow mode:\ + :am:mi:ms:xo:\ + :co#80:it#8:li#24:\ + :%1=^AO\r:F1=^A`\r:F2=^Aa\r:F3=^Ab\r:F4=^Ac\r:F5=^Ad\r:\ + :F6=^Ae\r:F7=^Af\r:F8=^Ag\r:F9=^Ah\r:FA=^Ai\r:\ + :ac=+z\054{-x.yOi`|jGkFlEmDnHqJtLuKvNwMxI:ae=\E%:\ + :al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\ + :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:\ + :i1=\E"2\EG0\E]:ic=\EQ:im=:k1=^A@\r:k2=^AA\r:k3=^AB\r:\ + :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\ + :k;=^AI\r:kB=^A^Z\r:kC=^An\r:kD=\177:kb=^H:kd=^AK\r:\ + :kh=^AN\r:kl=^AL\r:kr=^AM\r:ku=^AJ\r:le=^H:mh=\EG2:mk@:\ + :nd=^L:nw=^_:sf=^J:ta=^I:te=:ti=\E"2\EG0\E]:up=^K:us=\EG1:\ + :vb=\EK1\EK0:ve=\E"2:vi=\E"0:\ + :tc=adm+sgr: + +#### Motorola +# + +# Motorola EXORterm 155 from {decvax, ihnp4}!philabs!sbcs!megad!seth via BRL +# (Seth H Zirin) +ex155|Motorola Exorterm 155:\ + :am:bs:bw:\ + :co#80:kn#5:li#24:\ + :bt=\E[:cd=\ET:ce=\EU:cl=\EX:cm=\EE%+ %+ :do=\EB:ho=\E@:\ + :kB=\E[:kC=\EX:kE=\EU:kS=\ET:kb=^H:kd=^J:kh=\E@:kl=^H:kr=^L:\ + :ku=^K:nd=\ED:se=\Ec\ED:so=\Eb\ED:ta=\EZ:ue=\Eg\ED:\ + :us=\Ef\ED: + +#### Omron +# +# This company is still around in 1995, manufacturing point-of-sale systems. + +omron|Omron 8025AG:\ + :am:bs:da:db:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\ER:ce=\EK:cl=\EJ:cr=^M:dc=\EP:dl=\EM:do=^J:\ + :ho=\EH:le=^H:nd=\EC:se=\E4:sf=\ES:so=\Ef:sr=\ET:up=\EA:\ + :vs=\EN: + +#### Ramtek +# +# Ramtek was a vendor of high-end graphics terminals around 1979-1983; they +# were competition for things like the Tektronics 4025. +# + +# Ramtek 6221 from BRL, probably by Doug Gwyn +# The following SET-UP modes are assumed for normal operation: +# UNDERLINE_CURSOR ANSI_MODE AUTO_XON/XOFF_ON +# NEWLINE_OFF 80_COLUMNS +# Other SET-UP modes may be set for operator convenience or communication +# requirements; I recommend +# SMOOTH_SCROLL AUTO_REPEAT_ON 3_#_SHIFTED WRAP_AROUND_ON +# Hardware tabs are assumed to be every 8 columns; they can be set up by the +# "reset", "tset", or "tabs" utilities (use rt6221-w, 160 columns, for this). +# Note that the Control-E key is useless on this brain-damaged terminal. No +# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control! +rt6221|Ramtek 6221 80x24:\ + :bs:ms:pt:xo:\ + :co#80:it#8:kn#4:li#24:vt#3:\ + :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ac=:ae=^O:as=^N:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[1;1H\E[J:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^K:ho=\E[1;1H:is=\E)0:\ + :k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:kb=^H:kd=\E[B:ke=\E>:\ + :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\ + :le=^H:ll=\E[24;1H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:\ + :r1=\E[1w\E[>37m\E[>39m\E[1v\E[20l\E[?3l\E[?6l\E[>5h\E[>6h\E[>7h\E[>8l\E[>9h\E[>10l\E[1;24r\E[m\E[q\E(B\017\E)0\E#5\E>:\ + :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\EM:us=\E[4m:ve=\E[>5h\E[>9h:vi=\E[>5l:\ + :vs=\E[>7h\E[>9l: +# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)]. +rt6221-w|Ramtek 6221 160x48:\ + :co#160:li#48:\ + :ll=\E[48;1H:tc=rt6221: + +#### RCA +# + +# RCA VP3301 or VP3501 +rca|rca vp3301/vp3501:\ + :bs:\ + :co#40:li#24:\ + :cl=^L:cm=\EY%+ %+ :ho=^Z:nd=^U:se=\E\ES0:so=\E\ES1:up=^K: + + +#### Selanar +# + +# Selanar HiREZ-100 from BRL, probably by Doug Gwyn +# The following SET-UP modes are assumed for normal operation: +# SET_DEFAULT_TABS 48_LINES 80_COLUMNS +# ONLINE ANSI CURSOR_VISIBLE +# VT102_AUTO_WRAP_ON VT102_NEWLINE_OFF VT102_MONITOR_MODE_OFF +# LOCAL_ECHO_OFF US_CHAR_SET WPS_TERMINAL_DISABLED +# CPU_AUTO_XON/XOFF_ENABLED PRINT_FULL_SCREEN +# For use with graphics software, all graphics modes should be set to factory +# default. Other SET-UP modes may be set for operator convenience or +# communication requirements. No delays are specified; use "stty ixon -ixany" +# to enable DC3/DC1 flow control! +# I commented out the scrolling capabilities since they are too slow. +hirez100|Selanar HiREZ-100:\ + :bs:mi:ms:pt:xo:\ + :co#80:it#8:kn#4:li#48:vt#3:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ac=:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\ + :dc=\E[P:dl=\E[M:do=^J:ho=\E[H:is=\E<\E)0:k0=\EOP:k1=\EOQ:\ + :k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\ + :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\ + :le=^H:ll=\E[48H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\ + :nd=\E[C:nw=\EE:pf=\E[4i\E[?4i:po=\E[?5i\E[5i:ps=\E[i:\ + :r1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;19l\E[r\E[m\E(B\017\E)0\E>:\ + :rc=\E8:sc=\E7:se=\E[m:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\EM:\ + :us=\E[4m: +hirez100-w|Selanar HiREZ-100 in 132-column mode:\ + :co#132:tc=hirez100: + +#### Signetics +# + +# From University of Wisconsin +vsc|Signetics Vsc Video driver by RMC:\ + :am:ms:\ + :co#80:it#8:li#26:\ + :ce=\E[K:cl=50\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:\ + :ho=\E[H:kb=^H:kd=^J:kl=^H:le=^H:me=^_\041:mr=^_ :nd=\E[C:\ + :nw=^M^J:se=^_\041:sf=^J:so=^_ :ta=^I:ue=^_#:up=\E[A:us=^_": + +#### Soroc +# +# Alan Frisbie <frisbie@flying-disk.com> writes: +# +# As you may recall, the Soroc logo consisted of their name, +# with the letter "S" superimposed over an odd design. This +# consisted of a circle with a slightly smaller 15 degree (approx.) +# wedge with rounded corners inside it. The color was sort of +# a metallic gold/yellow. +# +# If I had been more of a beer drinker it might have been obvious +# to me, but it took a clue from their service department to make +# me exclaim, "Of course!" The circular object was the top of +# a beer can (the old removable pop-top style) and "Soroc" was an +# anagram for "Coors". +# +# I can just imagine the founders of the company sitting around +# one evening, tossing back a few and trying to decide what to +# call their new company and what to use for a logo. +# + +# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr) +soroc120|iq120|soroc|soroc iq120:\ + :cd=\EY:ce=\ET:cl=\E*:do=^J:kd=^J:kl=^H:kr=^L:ku=^K:tc=adm3a: +soroc140|iq140|soroc iq140:\ + :am:bs:mi:\ + :co#80:li#24:\ + :al=\Ee:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\ + :cr=^M:dc=\Ew:dl=\Er:do=^J:ei=\E8:ho=^^:im=\E9:k0=^A0\r:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kh=^^:kr=^L:ku=^K:le=^H:\ + :ll=^^^K:nd=^L:se=\E\177:sf=^J:so=\E\177:ue=\E^A:up=^K:\ + :us=\E^A: + +#### Synertek +# +# Bob Manson <manson@pattyr.acs.ohio-state.edu> writes (28 Apr 1995): +# +# Synertek used to make ICs, various 6502-based single-board process +# control and hobbyist computers, and assorted peripherals including a +# series of small inexpensive terminals (I think they were one of the +# first to have a "terminal-on-a-keyboard", where the terminal itself +# was only slightly larger than the keyboard). +# +# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40 +# was a 40x24 terminal that could connect to a standard TV through a +# video modulator. The KTM-2/80 was the 80-column version (the 2/40 +# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM). +# I have a KTM-2/80 still in working order. The KTM-2s had fully +# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program +# ROM and 2 ROMs as character generators. They were incredibly simple, +# and I've never had any problems with mine (witness the fact that mine +# was made in 1981 and is still working great... I've blown the video +# output transistor a couple of times, but it's a 2N2222 :-) +# +# The KTM-3 (which is what is listed in the terminfo file) was their +# attempt at putting a KTM-2 in a box (and some models came with a +# CRT). It wasn't much different from the KTM-2 hardware-wise, but the +# control and escape sequences are very different. The KTM-3 was always +# real broken, at least according to the folks I've talked to about it. +# +# The padding in the entry is probably off--these terminals were very +# slow (it takes like 100ms for the KTM-2 to clear the screen...) And +# anyone with any sanity replaced the ROMs with something that provided +# a reasonable subset of VT100 functionality, since the usual ROMs were +# obviously very primitive... oh, you could get an upgraded ROM from +# Synertek for some incredible amount of money, but what hacker with an +# EPROM burner would do that? :) +# +# Sorry I don't have any contact info; I believe they were located in +# Sunnyvale, and I'm fairly sure they are still manufacturing ICs +# (they've gone to ASICs and FPGAs), but I doubt they're in the computer +# business these days. +# + +# Tested, seems to work fine with vi. +synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal:\ + :am:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=^Z:cm=\E=%+ %+ :le=^H:nd=^L:up=^K: + +#### Tab Office Products +# +# TAB Products Co. - Palo Alto, California +# Electronic Office Products, +# 1451 California Avenue 94304 +# +# I think they're out of business. +# + +# The tab 132 uses xon/xoff, so no padding needed. +# :ks:/:ke: have nothing to do with arrow keys. +# :is: sets 80 col mode, normal video, autowrap on (for :am:). +# Seems to be no way to get rid of status line. +# The manual for this puppy was dated June 1981. It claims to be VT52- +# compatible but looks more vt100-like. +tab132|tab|tab132-15|tab 132/15:\ + :da:db:\ + :co#80:dN@:li#24:lm#96:\ + :al=\E[L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\ + :im=\E[4h:is=\E[?7h\E[?3l\E[?5l:kd=\E[B:ke@:kl=\E[D:ks@:\ + :ku=\E[A:\ + :tc=vt100: +tab132-w|tab132 in wide mode:\ + :co#132:\ + :is=\E[?7h\E[?3h\E[?5l:tc=tab132: +tab132-rv|tab132 in reverse-video mode:\ + :is=\E[?7h\E[?3l\E[?5h:tc=tab132: +tab132-w-rv|tab132 in reverse-video/wide mode:\ + :is=\E[?7h\E[?3h\E[?5h:tc=tab132-w: + + +#### Teleray +# +# Research Incorporated +# 6425 Flying Cloud Drive +# Eden Prairie, MN 55344 +# Vox: (612)-941-3300 +# +# The Teleray terminals were all discontinued in 1992-93. RI still services +# and repairs these beasts, but no longer manufactures them. The Teleray +# people believe that all the types listed below are very rare now (1995). +# There was a newer line of Telerays (Model 7, Model 20, Model 30, and +# Model 100) that were ANSI-compatible. +# +# Note two things called "teleray". Reorder should move the common one +# to the front if you have either. A dumb teleray with the cursor stuck +# on the bottom and no obvious model number is probably a 3700. +# + +t3700|dumb teleray 3700:\ + :bs:\ + :co#80:li#24:\ + :bl=^G:cl=^L:cr=^M:do=^J:le=^H:sf=^J: +t3800|teleray 3800 series:\ + :bs:\ + :co#80:it#8:li#24:\ + :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=\EH:\ + :le=^H:ll=\EY7 :nd=\EC:sf=^J:ta=^I:up=^K: +t1061|teleray|teleray 1061:\ + :am:bs:km:xs:xt:\ + :co#80:it#8:li#24:sg#1:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\014:cm=\EY%+ %+ :cr=^M:\ + :ct=\EG:dc=\EQ:dl=\EM:do=^J:ei=:ho=\EH:ic=\EP:im=:ip=:\ + :is=\Ee\EU01^Z1\EV\EU02^Z2\EV\EU03^Z3\EV\EU04^Z4\EV\EU05^Z5\EV\EU06^Z6\EV\EU07^Z7\EV\EU08^Z8\EV\Ef:\ + :k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:k7=^Z7:k8=^Z8:\ + :le=^H:nd=\EC:se=\ER@:sf=^J:so= \ERD:st=\EF:ta=^I:ue=\ER@:\ + :up=\EA:us=\ERH: +t1061f|teleray 1061 with fast PROMs:\ + :al=\EL:dl=\EM:ip@:tc=t1061: +# "Teleray Arpa Special", officially designated as +# "Teleray Arpa network model 10" with "Special feature 720". +# This is the new (1981) fast microcode updating the older "arpa" proms +# (which gave meta-key and programmable-fxn keys). 720 is much much faster, +# converts the keypad to programmable function keys, and has other goodies. +# Standout mode is still broken (magic cookie, etc) so is suppressed as no +# programs handle such lossage properly. +# Note: this is NOT the old termcap's "t1061f with fast proms." +# From: J. Lepreau <lepreau@utah-cs> Tue Feb 1 06:39:37 1983, Univ of Utah +# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr) +t10|teleray 10 special:\ + :bs:km:xs:xt:\ + :co#80:it#8:li#24:sg#2:\ + :al=\EL:cd=\EJ:ce=\EK:cl=30\Ej:cm=\EY%+ %+ :dc=\EQ:dl=\EM:\ + :ei=:ho=\EH:ic=\EP:im=:le=^H:nd=\EC:pc=\0:se=\ER@:sf=\Eq:\ + :so=\ERD:sr=\Ep:ta=^I:ue=\ER@:up=\EA:us=\ERH: +# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and +# back/forth words. Put the function keys (f1-f10) where they can be +# found, and turn off the other magic keys along the top row, except +# for line/local. Do the magic appropriate to make the page shifts work. +# Also toggle ^S/^Q for those of us who use Emacs. +t16|teleray 16:\ + :am:da:db:mi:xs:xt:\ + :co#80:li#24:\ + :al=\E[L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\ + :cm=%i\E[%d;%df:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\ + :ho=\E[H:im=\E[4h:k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:\ + :k7=^Z7:k8=^Z8:k9=^Z9:k;=^Z0:le=^H:me=\E[m:nd=\E[C:se=\E[m:\ + :sf=^J:so=\E[7m:sr=\E[T:ta=^I:te=\E[V\E[24;1f\E[?38h:\ + :ti=\E[U\E[?38l:ue=\E[m:up=\E[A:us=\E[4m: + +#### Texas Instruments (ti) +# + +# The Silent 700 was so called because it was built around a quiet thermal +# printer. It was portable, equipped with an acoustic coupler, and pretty +# neat for its day. +ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800:\ + :bs:hc:os:\ + :co#80:\ + :bl=^G:cr=\r:do=^J:le=^H:sf=^J: + +# +# Texas Instruments 916 VDT 7 bit control mode +# +ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL:\ + :da:db:in:ms:\ + :%9=^X:@4=\E[29~:@8=^J:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ + :DO=\E[%dB:F1=\E[29~:F2=\E[31~:IC=\E[%d@:LE=\E[%dD:\ + :RI=\E[%dC:UP=\E[%dA:ae=\017:as=\016:bt=\E[Z:cb=\E[1K:\ + :cd=\E[J:ce=\E[0K:ch=\E[%+^AG:cl=\E[H\E[2J:\ + :cm=\E[%i%d;%dH:ct=\E[3g:cv=\E[%+^Ad:dc=\E[P:eA=\E(B\E)0:\ + :ec=\E[%dX:ei=:ff=^L:im=:ip=:is=\E[1;24r\E[24;1H:k1=\E[17~:\ + :k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E[23~:\ + :k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:\ + :kN=\E[S:kP=\E[T:kh=\E[H:mp=\E&:r2=\E[\041p:st=\E[0W:\ + :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:\ + :tc=vt220: +# +# Texas Instruments 916 VDT 8 bit control mode +# +ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL:\ + :%9=^X:@4=\23329~:@8=^J:F1=\23329~:F2=\23331~:k1=\23317~:\ + :k2=\23318~:k3=\23319~:k4=\23320~:k5=\23321~:k6=\23323~:\ + :k7=\23324~:k8=\23325~:k9=\23326~:k;=\23328~:kD=\233P:\ + :kI=\233@:kN=\233S:kP=\233T:kd=\233B:kh=\233H:kl=\233D:\ + :kr=\233C:ku=\233A:\ + :tc=ti916: +# +# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode +# +ti916-132|Texas Instruments 916 VDT vt220 132 column:\ + :co#132:tc=ti916: +# +# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode +# +ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column:\ + :co#132:tc=ti916-8: +ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL:\ + :am:bs:xo:\ + :co#80:it#8:li#24:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ + :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dl=\E[M:\ + :do=\E[B:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[16~:\ + :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[P:kI=\E[@:\ + :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:\ + :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m:ve=\E[?25h:vi=\E[?25l:vs=\E[?31h: +ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL:\ + :am:xo:\ + :co#80:it#8:li#24:\ + :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\ + :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dl=\E[M:\ + :do=\E[B:ho=\E[H:k1=P\217>:k2=Q\217>:k3=R\217>:k4=S\217>:\ + :k5=~\23316>:k6=~\23317>:k7=~\23318>:k8=~\23319>:\ + :k9=~\23320>:kD=P\233>:kI=@\233>:kb=^H:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\ + :mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\ + :sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\ + :vi=\E[?25l:vs=\E[?31h: +ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode:\ + :co#132:tc=ti924: +ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode:\ + :co#132:tc=ti924-8: +ti931|Texas Instruments 931 VDT:\ + :am:bs:xo:\ + :co#80:li#24:\ + :al=\EN:bl=^G:cd=\EJ:ce=\EI:cl=\EL:cm=\EY%+ %+ :cr=^M:\ + :dc=\EQ:dl=\EO:do=\EB:ei=:ho=\EH:ic=\ER\EP\EM:im=:\ + :is=\EGB\E(@B@@\E):k1=\Ei1:k2=\Ei2:k3=\Ei3:k4=\Ei4:\ + :k5=\Ei5:k6=\Ei6:k7=\Ei7:k8=\Ei8:k9=\Ei9:kA=\EN:kD=\EQ:\ + :kI=\EP:kL=\EO:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:mb=\E4P:\ + :me=\E4@:mk=\E4H:mr=\E4B:nd=\EC:se=\E4@:sf=\Ea:so=\E4A:\ + :sr=\Eb:ue=\E4@:up=\EA:us=\E4D:ve=\E4@: +ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL:\ + :cs@:sf=\E[1S:sr=\E[1T:tc=ti924: +# (ti926-8: I corrected this from the broken SCO entry -- esr) +ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL:\ + :cs@:sf=\2331S:sr=\2331T:\ + :tc=ti924-8: +ti_ansi|basic entry for ti928:\ + :am:eo:ut:xn:xo:\ + :Co#8:co#80:it#8:li#25:pa#64:\ + :@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:al=\E[L:bl=^G:\ + :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:\ + :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\ + :ic=\E[@:im=:k0=\E[V:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\ + :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:kN=\E[G:kP=\E[I:\ + :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:op=\E[37;40m:se=\E[m:\ + :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: +# +# 928 VDT 7 bit control mode +# +ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL:\ + :%9=\E[35~:@7=\E_1\E\:@8=\E[8~:F1=\E[29~:F2=\E[31~:\ + :F3=\E[32~:F5=\E[34~:k1=\E[17~:k2=\E[18~:k3=\E[19~:\ + :k4=\E[20~:k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:\ + :k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:kN=\E[S:kP=\E[T:\ + :tc=ti_ansi: +# +# 928 VDT 8 bit control mode +# +ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL:\ + :%9=\23335~:@7=\2371\234:@8=\2338~:F1=\23329~:F2=\23331~:\ + :F3=\23332~:F5=\23334~:k1=\23317~:k2=\23318~:k3=\23319~:\ + :k4=\23320~:k5=\23321~:k6=\23323~:k7=\23324~:k8=\23325~:\ + :k9=\23326~:k;=\23328~:kD=\233P:kI=\233@:kN=\233S:\ + :kP=\233T:kh=\233H:\ + :tc=ti_ansi: + +#### Zentec (zen) +# + +# (zen30: removed obsolete :ma=^L ^R^L^K^P:. This entry originally +# had just :so:=\EG6 which I think means standout was supposed to be +# dim-reverse using ADM12-style attributes. ADM12 :us:/:ue: and +# <invis> might work-- esr) +zen30|z30|zentec 30:\ + :am:bs:mi:ul:\ + :co#80:li#24:\ + :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:\ + :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:le=^H:mh=\EG2:nd=^L:\ + :sf=^J:so=\EG6:ue@:up=^K:us@:\ + :tc=adm+sgr: +# (zen50: this had extension capabilities +# :BS=^U:CL=^V:CR=^B: +# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh, +# which were also in the original entry -- esr) +# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr) +zen50|z50|zentec zephyr:\ + :am:bs:\ + :co#80:li#24:sg#1:\ + :al=\EE:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:ei=:\ + :ic=\EQ:im=:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:ue@:up=^K:\ + :us@:\ + :tc=adm+sgr: + +# CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL +cci|cci1|z8001|zen8001|CCI Custom Zentec 8001:\ + :am:bs:bw:\ + :co#80:li#24:\ + :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cs=\ER%+ %+ :do=^J:\ + :ho=\EH:is=\EM \EF\ET\EP\ER 7:kb=^H:kd=\EB:kh=\EH:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:mb=\EM":me=\EM :mh=\EM\041:mk=\EM(:\ + :mr=\EM$:nd=\EC:pf=^T:po=^R:se=\EM :so=\EM$:sr=\EI:ue=\EM :\ + :up=\EA:us=\EM0:ve=\EP:vs=\EF\EQ\EM \ER 7: + +######## OBSOLETE UNIX CONSOLES +# + +#### Altos +# +# Altos made a moderately successful line of UNIX boxes. In 1990 they were +# bought out by Acer, a major Taiwanese manufacturer of PC-clones. +# Acer has a web site at http://www.acer.com. +# +# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993 +# His comments suggest they were shipped with the system. +# + +# (altos2: had extension capabilities +# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ +# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\ +# :HL=^AP\r:SP=\E[i:\ +# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ +# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\ +# Comparison with the k* capabilities makes it obvious that the c* things are +# shift keys. I have renamed them to keys 32 and up accordingly. Also, +# :sr: was given as a boolean-- esr) +altos2|alt2|altos-2|altos II:\ + :co#80:it#8:li#24:sg#0:\ + :*5=^Am\r:*8=^An\r:DL=\E[M:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:\ + :FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:FU=^Ah\r:\ + :FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:RA=\E[?7l:SA=\E[?7h:al=\E[L:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :dc=\E[P:do=\E[1B:ei=:ho=\E[H:ic=\E[@:\ + :if=/usr/share/tabset/vt100:im=:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=^AI\r:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:kB=^AK\r:kC=^AL\r:\ + :kD=^AM\r:kE=^AN\r:kF=^AO\r:kb=^H:kd=\E[B:kh=\E[f:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[1C:nw=^M^J:se=\E[m:\ + :sf=^J:so=\E[7m:ta=^I:ue=\E[m:up=\E[1A:us=\E[4m: +# (altos3: had extension capabilities +# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\ +# :HL=^AP\r:SP=\E[i:\ +# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\ +altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V:\ + :mb=\E[5p:me=\E[p:sr=\EM:\ + :tc=altos2: +altos4|alt4|altos-4|altos IV:\ + :tc=wy50: +# (altos7: had extension capabilities: +# :GG#0:GI=\EH8:GF=\EH7:\ +# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\ +# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\ +# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\ +# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r: +# Comparison with the k* capabilities makes it obvious that the c* things are +# shift keys. I have renamed them to keys 32 and up accordingly. I have +# also made this entry relative to adm12 in order to give it an :sa:. The +# <invis> imported by use=adm+sgr may work, let me know. -- esr) +altos7|alt7|altos VII:\ + :am:mi:\ + :co#80:li#24:sg#0:\ + :*5=^Am\r:*8=^An\r:DL=\ER:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:\ + :FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:FU=^Ah\r:\ + :FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:\ + :ac=j5k3l2m1n8q\072t4u9v=w0x6:al=\EE:cd=\EY:ce=\ET:\ + :cl=\E+^^:cm=\E=%+ %+ :cr=^M:dc=\EW:do=^J:ei=\Er:ho=^^:\ + :im=\Eq:is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2:\ + :k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\ + :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:kB=^AK\r:\ + :kC=^AL\r:kD=^AM\r:kE=^AN\r:kF=^AO\r:kN=\EK:kP=\EJ:kb=^H:\ + :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:md=\EGt:mh=\EGp:\ + :mk=\EG1:nd=^L:nw=^M^J:pf=\EJ:po=\Ed#:sf=^J:sr=\Ej:ta=^I:\ + :up=^K:\ + :tc=adm+sgr: +altos7pc|alt7pc|altos PC VII:\ + :@7=\ET:tc=altos7: + +#### Apollo consoles +# +# Apollo got bought by Hewlett-Packard. The Apollo workstations are +# labeled HP700s now. +# + +# From: Gary Darland <goodmanc@garnet.berkeley.edu> +apollo|apollo console:\ + :am:bs:mi:\ + :co#88:li#53:\ + :al=\EI:cd=\EJ:ce=\EK:ch=\EN%d:cl=^L:cm=\EM%+ %d):cv=\EO+ :\ + :dc=\EP:dl=\EL:do=\EB:ei=\ER:im=\EQ:le=^H:nd=\EC:se=\ET:\ + :sf=\EE:so=\ES:sr=\ED:te=\EX:ti=\EW:ue=\EV:up=\EA:us=\EU: + +# We don't know whether or not the apollo guys replicated DEC's firmware bug +# in the VT132 that reversed :ei:/:im:. To be on the safe side, disable +# both these capabilities. +apollo_15P|apollo 15 inch display:\ + :ei@:im@:tc=vt132: +apollo_19L|apollo 19 inch display:\ + :ei@:im@:tc=vt132: +apollo_color|apollo color display:\ + :ei@:im@:tc=vt132: + +#### Convergent Technology +# +# Burroughs bought Convergent shortly before it merged with Univac. +# CTOS is (I believe) dead. Probably the aws is too (this entry dates +# from 1991 or earlier). +# + +# Convergent AWS workstation from Gould/SEL UTX/32 via BRL +# (aws: removed unknown :dn=^K: -- esr) +aws|Convergent Technologies AWS workstation under UTX and Xenix:\ + :am:\ + :co#80:li#28:sg#0:\ + :ac=:ae=\EAAF:al=\EIL:as=\EAAN:bc=^H:cd=\EEF:ce=\EEL:\ + :ch=\EH%.:cl=^L:cm=\EC%r%.%.:cv=\EV%.:dc=\EDC:dl=\EDL:\ + :do=^K:ei=:ic=\EIC:im=:kb=^H:kd=^K:kl=^N:kr=^R:ku=^A:\ + :ma=\016h\013j\001k\022l\002m:nd=^R:nl=^J:se=\EARF:\ + :sf=\ESU:so=\EARN:sr=\ESD:ue=\EAUF:up=^A:us=\EAUN: +awsc|Convergent Technologies AWS workstation under CTOS:\ + :am:\ + :co#80:li#24:sg#0:\ + :ac=:ae=\EAAF:as=\EAAN:bc=^N:cd=\EEF:ce=\EEL:cl=^L:\ + :cm=\EC%r%.%.:do=^K:kb=^H:kd=^K:kl=^N:kr=^R:ku=^A:\ + :ma=\016h\013j\001k\022l\002m:nd=^R:se=\EAA:so=\EAE:\ + :ue=\EAA:up=^A:us=\EAC: + +#### DEC consoles +# + +# The MicroVax console. Tim Theisen <tim@cs.wisc.edu> writes: +# The digital uVax II's had a graphic display called a qdss. It was +# supposed to be a high performance graphic accelerator, but it was +# late to market and barely appeared before faster dumb frame buffers +# appeared. I have only used this display while running X11. However, +# during bootup, it was in text mode, and probably had a terminal emulator +# within it. And that is what your termcap entry is for. In graphics +# mode the screen size is 1024x864 pixels. +qdss|qdcons|qdss glass tty:\ + :am:bs:\ + :co#128:li#57:\ + :cl=1\032:cm=\E=%.%.:do=^J:le=^H:nd=^L:up=^K: + +#### Fortune Systems consoles +# +# Fortune made a line of 68K-based UNIX boxes that were pretty nifty +# in their day; I (esr) used one myself for a year or so around 1984. +# They had no graphics, though, and couldn't compete against Suns and +# the like. R.I.P. +# + +# From: Robert Nathanson <c160-3bp@Coral> via tut Wed Oct 5, 1983 +# (This had extension capabilities +# :rv=\EH:re=\EI:rg=0:GG=0:\ +# :CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\ +# :RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\ +# :PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F: +# It had both ":bs:" and ":bs=^H:"; I removed the latter. Also, it had +# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily) +# to force both magic cookie glitches off. Once upon a time, I +# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are +# function keys; thus the "Al" value for HM was certainly an error. I renamed +# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC. +# I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent +# "reverse-video-glitch" capability; I have put :rv: and :re: in with standard +# names below. I've removed obsolete ":nl=5^J:" as there is a :do: -- esr) +fos|fortune|Fortune system:\ + :am:bs:bw:\ + :co#80:li#25:\ + :@7=^Ak\r:@8=^Aq:ac=j*k(l m"q&v%w#x-:ae=^O:al=\034E:\ + :as=\Eo:bl=^G:cd=\034Y:ce=^\Z:cl=\014:cm=\034C%+ %+ :cr=^M:\ + :dc=\034W:dl=\034R:do=\n:ei=:ho=\036:ic=\034Q:im=:is=^_..:\ + :k1=^Aa\r:k2=^Ab\r:k3=^Ac\r:k4=^Ad\r:k5=^Ae\r:k6=^Af\r:\ + :k7=^Ag\r:k8=^Ah\r:kN=^Ao\r:kP=^An\r:kb=^H:kd=^Ay\r:\ + :kh=^A?\r:kl=^Aw\r:kr=^Az\r:ku=^Ax\r:le=^H:mb=\EN:me=\EI:\ + :mr=\EH:nw=^M^J:se=^\I`:sf=^J:so=^\H`:ta=^Z:ue=^\IP:up=\013:\ + :us=^\HP:ve=\E\:vi=\E]:vs=\E\072: + +#### IBM Unix consoles +# + +# The following is a version of the ibm-pc entry distributed with PC/IX, +# (Interactive Systems' System 3 for the Big Blue), modified by Richard +# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original, +# (the former is untrue, and the latter failed under UCB/man); standout and +# underline modes have been added. Note: this entry describes the "native" +# capabilities of the PC monochrome display, without ANY emulation; most +# communications packages (but NOT PC/IX connect) do some kind of emulation. +pcix|PC/IX console:\ + :am:bw:eo:\ + :co#80:li#24:\ + :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[H:\ + :le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:up=\E[A:\ + :us=\E[4m: + +# (ibmpcx: this entry used to be known as ibmx. +# It formerly included the following extension capabilities: +# :GC=b:GL=v:GR=t:RT=^J:\ +# :GH=\E[196g:GV=\E[179g:\ +# :GU=\E[193g:GD=\E[194g:\ +# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\ +# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\ +# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\ +# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate +# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match +# what was there before. -- esr) +ibmpcx|xenix|ibmx|IBM PC xenix console display:\ + :am:bs:ms:\ + :co#80:li#25:\ + :@7=\E[d:al=\E[L:cd=\E[J:ce=\E[K:cl=^L:cm=\E[%d;%dH:\ + :dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[K:\ + :k2=\E[L:k3=\E[M:k4=\E[N:kN=\E[e:kP=\E[Z:kb=^H:kd=\E[B:\ + :kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:up=\E[A:\ + :tc=klone+acs:tc=klone+sgr: + + +#### Masscomp consoles +# +# Masscomp has gone out of business. Their product line was purchased by +# comany in Georgia (US) called "XS International", parts and service may +# still be available through them. +# + +# (masscomp: ":MT:" changed to ":km:"; -- esr) +masscomp|masscomp workstation console:\ + :bs:km:mi:\ + :co#80:it#8:li#24:\ + :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:dc=\E[P:\ + :dl=\E[M:do=\E[B:ei=\E[4l:im=\E[4h:is=\EGc\EGb\EGw:kb=^H:\ + :kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:nd=\E[C:se=\E[m:\ + :so=\E[7m:ta=^I:ue=\EGau:up=\E[A:us=\EGu: +masscomp1|masscomp large screen version 1:\ + :co#104:li#36:tc=masscomp: +masscomp2|masscomp large screen version 2:\ + :co#64:li#21:tc=masscomp: + +#### Sony NEWS workstations +# + +# (news-unk: this had :KB=news: -- esr) +news-unk|SONY NEWS vt100 emulator old common entry:\ + :am:bs:pt:xn:\ + :co#80:\ + :AL=\E[%dL:DL=\E[%dM:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\ + :dl=\E[M:do=^J:ho=\E[H:if=/usr/lib/tabset/vt100:\ + :is=\E[?7h\E[?1l\E[?3l\E7\E8:k0=\EOY:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\ + :nl=^J:rc=\E8:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r:\ + :sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\ + :us=\E[4m: +# +# (news-29: this had :TY=ascii: --esr) +news-29:\ + :li#29:tc=news-unk: +# (news-29-euc: this had :TY=euc: --esr) +news-29-euc:\ + :tc=news-29: +# (news-29-sjis: this had :TY=sjis: --esr) +news-29-sjis:\ + :tc=news-29: +# +# (news-33: this had :TY=ascii: --esr) +news-33:\ + :li#33:tc=news-unk: +# (news-33-euc: this had :TY=euc: --esr) +news-33-euc:\ + :tc=news-33: +# (news-33-sjis: this had :TY=sjis: --esr) +news-33-sjis:\ + :tc=news-33: +# +# (news-42: this had :TY=ascii: --esr) +news-42:\ + :li#42:tc=news-unk: +# (news-42-euc: this had :TY=euc: --esr) +news-42-euc:\ + :tc=news-42: +# (news-42-sjis: this had :TY=sjis: --esr) +news-42-sjis:\ + :tc=news-42: +# +# NEWS-OS old termcap entry +# +# (news-old-unk: this had :KB=news:TY=sjis: --esr) +news-old-unk|SONY NEWS vt100 emulator common entry:\ + :am:bs:pt:xn:\ + :co#80:vt#3:\ + :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:do=^J:ho=\E[H:if=/usr/lib/tabset/vt100:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\ + :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\ + :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:rc=\E8:\ + :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:sc=\E7:se=\E[m:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: +# +# (nwp512: this had :DE=^H:, which I think means :bs: --esr) +nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines:\ + :bs:\ + :li#40:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8:tc=news-old-unk: +# +# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr) +nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line:\ + :li#42:\ + :is=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8:tc=news-old-unk: +# +# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as :bs:. --esr) +nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines:\ + :bs:\ + :li#40:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8:tc=news-old-unk: +# +# (nwp513: this had :DE=^H: and the alias vt100-bm --esr) +nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines:\ + :bs:\ + :li#31:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8:tc=news-old-unk: +# +# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as :bs:; --esr) +# also the alias vt100-bm. +nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines:\ + :bs:\ + :li#33:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8:tc=news-old-unk: +# +# (nwp513-o: had :DE=^H:, I think that's :bs:; also the alias vt100-bm --esr) +nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines:\ + :bs:\ + :li#31:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8:tc=news-old-unk: +# +# (news28: this had :DE=^H:, I think that's :bs:, and :KB=nws1200: --esr) +news28|sony vt100 emulator 28 lines:\ + :bs:\ + :li#28:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8:tc=news-old-unk: +# +# (news29: this had :TY=ascii:KB=nws1200:\ --esr) +news29|news28-a|sony vt100 emulator 29 lines:\ + :li#29:\ + :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8:tc=news-old-unk: +# +# (news511: this had :TY=sjis: --esr) +nwp511|nwp-511|nwp-511 vt100:\ + :am:bs:pt:xn:\ + :co#80:li#24:\ + :al=\E[L:cd=30\E[J:ce=3\E[K:cl=20\E[;H\E[2J:\ + :cm=\E[%i%d;%dH:dl=\E[M:is=\E[?5l\E[?1l\E>\E[?7h\E[?8h:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\E#W:kd=\E[B:\ + :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:nd=\E[C:\ + :rs=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h:se=2\E[m:\ + :so=2\E[7m:sr=5\EM:ue=2\E[m:up=2\E[A:us=2\E[4m:\ + :vb=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l: +# (news517: this had :TY=sjis:. --esr) +nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows:\ + :es:hs:\ + :co#80:li#30:\ + :ds=\E[1$~:fs=\E[0$}:i2=\E[2$~\n:\ + :is=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :ts=\E[1$}\E[;%df:\ + :tc=vt200: +# (news517-w: this had :TY=sjis:. --esr) +nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows:\ + :es:hs:\ + :co#132:li#50:\ + :ds=\E[1$~:fs=\E[0$}:i2=\E[2$~\n:\ + :is=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\ + :rs=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\ + :ts=\E[1$}\E[;%df:tc=vt200: + +#### Obsolete virtual-terminal types. +# + +# Columbus UNIX virtual terminal. This terminal also appears in +# UNIX 4.0 and successors as line discipline 1 (?), but is +# undocumented and does not really work quite right. +cbunix|cb unix virtual terminal:\ + :am:bs:da:db:\ + :co#80:li#24:lm#0:\ + :al=\EP:bl=^G:cd=\EL:ce=\EK:cl=\EL:cm=\EG%r%.%.:cr=^M:\ + :dc=\EM:dl=\EN:do=^J:ei=:ic=\EO:im=:kd=\EB:kh=\EE:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eb^D:sf=^J:so=\Ea^D:\ + :ue=\Eb^A:up=\EA:us=\Ea^A: +# (vremote: removed obsolete ":nl@:" -- esr) +vremote|virtual remote terminal:\ + :am@:\ + :co#79:tc=cbunix: + +pty|4bsd pseudo teletype:\ + :cm=\EG%+ %+ :se=\Eb$:so=\Ea$:ue=\Eb\041:us=\Ea\041:tc=cbunix: + +######## OTHER OBSOLETE TYPES +# +# These terminals are *long* dead -- these entries are retained for +# historical interest only. +# + +#### Obsolete non-ANSI software emulations +# + +#### Avatar +# +# These entries attempt to describe Avatar, a terminal emulation used with +# MS-DOS bulletin-board systems. It was designed to give ANSI-like +# capabilities, but with cheaper (shorter) control sequences. Messy design, +# excessively dependent on PC idiosyncracies, but apparently rather popular +# in the BBS world. +# +# No color support. Avatar doesn't fit either of the Tektronix or HP color +# models that terminfo knows about. An Avatar color attribute is the +# low 7 bits of the IBM-PC display-memory attribute. Bletch. +# +# I wrote these entries while looking at the Avatar spec. I don't have +# the facilities to test them. Let me know if they work, or don't. +# +# Avatar escapes not used by these entries (because maybe you're smarter +# and more motivated than I am and can figure out how to wrap terminfo +# around some of them, and because they are weird enough to be funny): +# level 0: +# ^L -- clear window/reset current attribute to default +# ^V^A%p1%c -- set current color attribute, parameter decodes as follows: +# +# bit: 6 5 4 3 2 1 0 +# | | | | | +# +---+---+ | +---+---+ +# | | | +# | | foreground color +# | foreground intensity +# background color +# level 0+: +# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines +# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines +# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1 +# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1 +# (^V^L and ^V^M set the current attribute as a side-effect.) +# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes +# in the pattern, <c> the number of times the pattern +# should be repeated. If either value is 0, no-op. +# The pattern can contain Avatar console codes, +# including other ^V ^Y patterns. +# level 1: +# ^V^O -- clockwise mode on; turn print direction right each time you +# hit a window edge (yes, really). Turned off by CR +# ^V^P -- no-op +# ^V^Q%c -- query the driver +# ^V^R -- driver reset +# ^V^S -- Sound tone (PC-specific) +# ^V^T -- change highlight at current cursor poition to %c +# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b> +# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c +# -- define window +# +# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +# (The :mb:/:md:/:mr:/:as:/:us:/:so: capabilities exist only to +# tell ncurses that the corresponding highlights exist; it should use :sa:, +# which is the only method that will actually work for multiple highlights.) +avatar0|avatar terminal emulator level 0:\ + :am:ms:ut:\ + :co#80:it#8:li#25:\ + :as=:ce=^V^G:cm=\026\010%.%.:cr=^M:do=^V^D:le=^V^E:\ + :mb=^A^V\177:md=^V^A^P:me=^V^A^G:mk=^V^A\0:mr=^A^Vp:\ + :nd=^V^F:r2=^L:rp=\031%.%d:\ + :..sa=\026\001%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p4%t{128}%|%;%?%p6%t%{16}%|%;:\ + :sf=^J:so=^A^Vp:up=^V^C:us=^V^A:\ + :tc=klone+acs: +# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +avatar0+|avatar terminal emulator level 0+:\ + :dc=^V^N:ei=\026\n\0\0\0\0:im=^V^I:tc=avatar0: +# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995 +avatar|avatar1|avatar terminal emulator level 1:\ + :RA=^V":SA=^V$:al=^V+:dl=^V-:ei=^V^P:ve=^V'^A:vi=^V'^B:\ + :vs=^V^C:\ + :tc=avatar0+: + +#### RBcomm +# +# RBComm is a lean and mean terminal emulator written by the Interrupt List +# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early +# '90s), especially in the BBS world, and still has some loyal users due to +# its very small memory footprint and to a cute macro language. +rbcomm|IBM PC with RBcomm and EMACS keybindings:\ + :am:bw:mi:ms:xn:\ + :co#80:it#8:li#25:\ + :AL=\E[%dL:DL=\E[%dM:al=^K:bl=^G:bt=\E[Z:cd=^F5:ce=^P^P:\ + :cl=^L:cm=\037%r%+ %+ :cr=^M:cs=\E[%i%d;%dr:dc=^W:dl=^Z:\ + :dm=:do=^C:ec=\E[%dX:ed=:ei=^]:im=^\:\ + :is=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g:kb=^H:kd=^N:\ + :ke=\E>:kh=^A:kl=^B:kr=^F:ks=\E=:ku=^P:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m:mk=\E[8m:mr=^R:nd=^B:nw=^M\ED:\ + :r1=\017\E(B\E)0\025\E[?3l\E[>8g:rc=\E8:rp=\030%.%.:\ + :sc=\E7:se=^U:sf=\ED:so=^R:sr=\EM:ta=^I:te=:ti=:ue=^U:up=^^:\ + :us=^T:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h: +rbcomm-nam|IBM PC with RBcomm without autowrap:\ + :am@:\ + :bl=^G:cr=^M:do=^J:\ + :is=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g:kb=^H:kd=^J:\ + :kl=^H:nw=^M^J:sf=^J:ta=^I:\ + :tc=rbcomm: +rbcomm-w|IBM PC with RBcomm in 132 column mode:\ + :co#132:\ + :bl=^G:cr=^M:do=^J:\ + :is=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g:kb=^H:kd=^J:\ + :kl=^H:nw=^M^J:sf=^J:ta=^I:\ + :tc=rbcomm: + +# CTRM terminal emulator +# 1. underlining is not allowed with colors: first, is is simulated by +# black on white, second, it disables background color manipulations. +# 2. BLINKING, REVERSE and BOLD are allowed with colors, +# so we have to save their status in the static registers A, B and H +# respectively, to be able to restore them when color changes +# (because any color change turns off ALL attributes) +# 3. :md: and :mr: sequences alternate modes, +# rather then simply entering them. Thus we have to check the +# static register B and H to determine the status, before sending the +# escape sequence. +# 4. :me: now must set the status of all 3 register (A,B,H) to zero +# and then reset colors +# 5. implementation of the protect mode would badly penalize the performance. +# we would have to use \E&bn sequence to turn off colors (as well as all +# other attributes), and keep the status of protect mode in yet another +# static variable. If someone really needs this mode, they would have to +# create another terminfo entry. +# 6. original color-pair is white on black. +# store the information about colors into static registers +# 7. set foreground color. it performs the following steps. +# 1) turn off all attributes +# 2) turn on the background and video attributes that have been turned +# on before (this information is stored in static registers X,Y,Z,A,B,H,D). +# 3) turn on foreground attributes +# 4) store information about foreground into U,V,W static registers +# 8. turn on background: similar to turn on foreground above +# (untranslatable capabilities removed to fit entry within 1023 bytes) +ctrm|C terminal emulator:\ + :am:ut:xo:\ + :Co#8:NC#2:Nl#0:co#80:lh#0:li#24:lm#0:lw#0:pa#63:pb#19200:vt#6:\ + :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\ + :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:\ + :do=^J:ei=\ER:im=\EQ:ip=:is=\E&jA\r:k1=\Ep\r:k2=\Eq\r:\ + :k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:k8=\Ew\r:\ + :kb=^H:kd=\Ew\r:ke=\E&jA:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:\ + :ks=\E&jB:ku=\Et\r:le=^H:mb=\E&dA%{1}%PA:\ + :md=%?%gH%{0}%=%t\E&dH%{1}%PH%;:\ + :me=\E&d@%{0}%PA%{0}%PB%{0}%PH:\ + :mr=%?%gB%{0}%=%t\E&dB%{1}%PB%;:nd=\EC:\ + :op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV%{1}%PU:\ + :sf=^J:so=\E&dD:st=\E1:ta=\011:up=\EA:us=\E&dD: + +# gs6300 - can't use blue foreground, it clashes with underline; +# it's simulated with cyan +# Bug: The <op> capability probably resets attributes. +# (gs6300: commented out <rmln> (no <smln>) --esr) +gs6300|emots|AT&T PC6300 with EMOTS terminal emulator:\ + :am:ms:ut:xo:\ + :Co#8:co#80:it#8:li#24:pa#63:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:Sb=\E[?;%dm:\ + :..Sf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m:\ + :UP=\E[%dA:\ + :ac=++\054\054--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:\ + :ei=:ho=\E[H:ic=\E[@:im=:is=\E[m:k1=\E[0s:k2=\E[24s:\ + :k3=\E[1s:k4=\E[23s:k5=\E[2s:k6=\E[22s:k7=\E[3s:k8=\E[21s:\ + :kB=^R^I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\ + :le=^H:mb=\E[5m:md=\E[1m:me=\E[m\E[10m:mr=\E[7m:nd=\E[C:\ + :op=\E[?;m:pf=\E[4i:po=\E[5i:r1=\Ec:sf=^J:so=\E[1m:sr=\E[L:\ + :ta=^I:up=\E[A:us=\E[4m: + +# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT +# MS-Kermit with Heath-19 emulation mode enabled +# (h19k: changed ":pt@:" to ":it@" +h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin):\ + :am@:da:db:xt:\ + :it@:\ + :ta@:tc=h19-u: + +# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy +# Software (formerly Peripherals Computers & Supplies, Inc) of +# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376. They can +# also be reached at support@synergy.com. +versaterm|versaterm vt100 emulator for the macintosh:\ + :am:xn:\ + :co#80:it#8:li#24:\ + :al=9\E[1L:bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\ + :cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=7\E[1P:\ + :dl=9\E[1M:do=^J:ei=:ho=\E[H:ic=7\E[1@:im=:\ + :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\ + :kb=^H:kd=\EOB:ke=\E>\E[?1l:kl=\EOD:kr=\EOC:ks=\E=\E[?1h:\ + :ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\ + :nd=2\E[C:nw=^M^J:r1=\E>:rc=\E8:\ + :rf=/usr/share/tabset/vt100:sc=\E7:se=2\E[m:so=2\E[7m:\ + :sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m: + +# From: Rick Thomas <ihnp4!btlunix!rbt> +# (xtalk: I added <rmam>/<smam> based on the init string. +xtalk|IBM PC with xtalk communication program (versions up to 3.4):\ + :am:mi:ms:xo:\ + :co#80:it#8:li#24:sg#1:vt#3:\ + :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\ + :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\ + :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:\ + :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\ + :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\ + :ku=\EOA:le=^H:me=\E[m:nd=\E[C:\ + :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:se=\E[m :sf=^J:\ + :so=\E[7m :sr=\EM:st=\EH:ta=^I:up=\E[A: + +# The official PC terminal emulator program of the AT&T Product Centers. +# Note - insert mode commented out - doesn't seem to work on AT&T PC. +simterm|attpc running simterm:\ + :am:\ + :co#80:li#24:\ + :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E=%+ %+ :cr=^M:\ + :dc=\ER:dl=\EM:do=\EB:ho=\EH:le=^H:me=\E&d@:nd=\EC:se=\E&d@:\ + :sf=^J:so=\E&dB:te=\EVE:ti=\EVS:up=\EA: + +#### Miscellaneous obsolete terminals, manufacturers unknown +# +# If you have any information about these (like, a manufacturer's name, +# and a date on the serial-number plate) please send it! + +cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars:\ + :am:bs:\ + :co#73:li#36:\ + :cl=^Z:ho=^^:le=^H:nd=^L:up=^K: +cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars:\ + :am:bs:\ + :co#85:li#39:\ + :cl=^Z:ho=^^:k1=\E5:k2=\E6:k3=\E7:k4=\E8:kd=\E2:kl=\E3:\ + :kr=\E4:ku=\E1:le=^H:nd=^L:se=\Em^C:so=\Em^L:up=^K: +cops10|cops|cops-10|cops 10:\ + :am:bw:\ + :co#80:li#24:\ + :bl=^G:cd=^W:ce=^V:cl=30\030:cm=\020%+ %+ :cr=^M:do=^J:\ + :kb=^H:kd=^J:kh=^Y:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K: +# (d132: removed duplicate :ic=\E5:, +# merged in capabilities from a BRL entry -- esr) +d132|datagraphix|datagraphix 132a:\ + :da:db:in:\ + :co#80:li#30:\ + :al=\E3:bl=^G:cl=^L:cm=\E8%i%3%3:cr=^M:dc=\E6:do=^J:ei=:\ + :ho=\ET:ic=\E5:im=:kb=^H:kd=^J:kl=^H:le=^H:nd=\EL:nw=^M^J:\ + :sf=^J:sr=\Ew:ta=^I:up=\EK:ve=\Em\En:vs=\Ex: +# The d800 was an early portable terminal from c.1984-85 that looked a lot +# like the original Compaq `lunchbox' portable (but no handle). It had a vt220 +# mode (which is what this entry looks like) and several other lesser-known +# emulations. +d800|Direct 800/A:\ + :am:bs:da:db:ms:xs:\ + :co#80:it#8:li#24:\ + :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\ + :ae=\E[m:as=\E[1m:bl=^G:cd=\E[J:ce=\E[K:cl=\E[1;1H\E[2J:\ + :cm=\E[%i%d;%dH:cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:kd=\E[B:kl=\E[D:\ + :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=\ED:\ + :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[>12h:\ + :vs=\E[>12l: +digilog|digilog 333:\ + :bs:\ + :co#80:li#16:\ + :bl=^G:ce=^X:cr=^M:do=^J:ho=^N:le=^H:nd=^I:sf=^J:up=^O: +# The DWK was a terminal manufactured in the Soviet Union c.1986 +dwk|dwk-vt|dwk terminal:\ + :am:\ + :co#80:it#8:li#24:\ + :ac=+\136\054Q-S.M0\177`+a\072f'g#h#i#jXkClJmFnNo~qUs_tEuPv\wKxW~_:\ + :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\ + :cr=^M:dc=\EP:do=^J:ei=:ho=\EH:ic=\EQ:im=:k1=\Ef1:k2=\Ef2:\ + :k3=\Ef3:k4=\Ef4:k5=\Ef5:k6=\Ef6:k7=\Ef7:k8=\Ef8:k9=\Ef9:\ + :k;=\Ef0:kD=\Ee:kI=\Ed:kN=\Eh:kP=\Eg:kb=\177:kd=\EB:kl=\ED:\ + :kr=\EC:ku=\EA:le=^H:me=\EX:mr=\ET:nd=\EC:nw=^M^J:se=\EX:\ + :sf=^J:so=\ET:sr=\ES:ta=^I:up=\EA: +env230|envision230|envision 230 graphics terminal:\ + :xn@:\ + :pf=\E[4i:po=\E[5i:ps=\E[0i:\ + :..sa=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:tc=vt100: +# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic +# coupler attached, the whole rig fitting in a suitcase and more or less +# portable. Hot stuff for c.1977 :-) -- esr +ep48|ep4080|execuport 4080:\ + :am:bs:os:\ + :co#80:\ + :bl=^G:cr=^M:do=^J:hd=^\:hu=^^:le=^H:sf=^J: +ep40|ep4000|execuport 4000:\ + :co#136:tc=ep4080: +# Adam Thompson <athompso@pangea.ca> tells us: +# Informer series - these are all portable units, resembling older +# automatic bread-baking machines. The terminal looks like a `clamshell' +# design, but isn't. The structure is similar to the Direct terminals, +# but only half the width. The entire unit is only about 10" wide. +# It features an 8" screen (6" or 7" if you have color!), and an 9"x6" +# keyboard. All the keys are crammed together, much like some laptop +# PCs today, but perhaps less well organized...all these units have a +# bewildering array of plugs on the back, including a built-in modem. +# The 305 was a color version of the 304; the 306 and 307 were mono and +# color terminals built for IBM bisync protocols. +# From: Paul Leondis <unllab@amber.berkeley.edu> +ifmr|Informer D304:\ + :am:bs:\ + :co#80:li#24:\ + :cd=\E/:ce=\EQ:cl=\EZ:cm=\EY%r%+ %+ :dc=\E\:do=^J:ei=:\ + :ho=\EH:ic=\E[:im=:le=^H:me=\EK:nd=\EC:se=\EK:so=\EJ:sr=\En:\ + :up=\EA: +# Entry largely based on wy60 and has the features of wy60ak. +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys:\ + :am:bw:hs:km:mi:ms:ul:xo:\ + :co#80:li#24:ws#80:\ + :ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:\ + :cm=\Ea%i%dR%dC:cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\Ez(\r:\ + :ei=\Er:fs=^M:ho=\036:if=/usr/share/tabset/std:im=\Eq:ip=:\ + :is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177\Ezz`\E[F\177\EA1*\EZH12:\ + :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\ + :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\ + :kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\EG2:\ + :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=^J:sr=\Ej:\ + :st=\E1:ta=\011:te=:\ + :ti=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177:\ + :ts=\Ez(:uc=\EG8%p1%c\EG0:up=^K:ve=\E`1:vi=\E`0:\ + :tc=adm+sgr: +teletec|Teletec Datascreen:\ + :am:bs:\ + :co#80:li#24:\ + :bl=^G:cl=^L:cr=^M:do=^J:ho=^^:le=^H:nd=^_:sf=^J:up=^K: +# From: Mark Dornfeld <romwa@ucbvax.berkeley.edu> +# This description is for the LANPAR Technologies VISION 3220 +# terminal from 1984/85. The function key definitions k0-k5 represent the +# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN, +# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to PF4 keys. +# +# Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998: +# I had a couple of scopes (3221) like this once where I used to work, around +# the 1987 time frame if memory serves me correctly. These scopes were made +# by an outfit called LANPAR Technologies, and were meant to me DEC VT 220 +# compatible. The 3220 was a plain text terminal like the VT-220, the 3221 +# was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222 +# was like the VT-241 (color with Regis + Sixel Graphics). These terminals +# (3221) cost about $1500 each, and one was always broken -- had to be sent +# back to the shop for repairs. +# The only real advantage these scopes had over the VT-240's were: +# 1) They were faster in the Regis display, or at least the ones I did +# 2) They had a handy debugging feature where you could split-screen the +# scope, the graphics would appear on the top, and the REGIS commands would +# appear on the bottom. I don't remember the VT-240s being able to do that. +# I would swear that LANPAR Technologies was in MA someplace, but since I +# don't work at the same place anymore, and those terminals and manuals were +# long since junked, I cannot be any more sure than that. +# +# (v3220: removed obsolete ":kn#10:", +# I added <rmam>/<smam> based on the init string -- esr) +v3220|LANPAR Vision II model 3220/3221/3222:\ + :am:bs:mi:xn:\ + :co#80:it#8:li#24:\ + :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:\ + :is=\E>\E[?3l\E[?7h\E[?8h\E[p:k0=\E[1~:k1=\E[2~:\ + :k2=\E[3~:k3=\E[4~:k4=\E[5~:k5=\E[6~:k6=\E[OP:k7=\E[OQ:\ + :k8=\E[OR:k9=\E[OS:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:kr=\E[C:\ + :ks=\E=:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:\ + :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m: +######## ICH/ICH1 VERSUS RMIR/SMIR +# +# Some non-curses applications get confused if both ich/ich1 and rmir/smir +# are present; the symptom is doubled characters in an update using insert. +# These applications are technically correct; in both 4.3BSD termcap and +# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir +# unless the terminal needs both. To my knowledge, no terminal still in this +# file requires both other than the very obsolete dm2500. +# +# For ncurses-based applications this is not a problem, as ncurses uses +# one or the other as appropriate but never mixes the two. Therefore we +# have not corrected entries like `linux' and `xterm' that specify both. +# If you see doubled characters from these, use the linux-nic and xterm-nic +# entries that suppress ich/ich1. And upgrade to ncurses! +# + +######## VT100/ANSI/ISO 6429/ECMA-48/PC-TERM TERMINAL STANDARDS +# +# ANSI X3.64 has been withdrawn and replaced by ECMA-48. The ISO 6429 and +# ECMA-48 standards are said to be almost identical, but are not the same +# as X3.64 (though for practical purposes they are close supersets of it). +# +# You can obtain ECMA-48 for free by sending email to helpdesk@ecma.ch +# requesting the standard(s) you want (i.e. ECMA-48, "Control Functions for +# Coded Character Sets"), include your snail-mail address, and you should +# receive the document in due course. Don't expect an email acknowledgement. +# +# Related standards include "X3.4-1977: American National Standard Code for +# Information Interchange" (the ASCII standard) and "X3.41.1974: +# Code-Extension Techniques for Use with the 7-Bit Coded Character Set of +# American National Standard for Information Interchange." I believe (but +# am not certain) that these are effectively identical to ECMA-6 and ECMA-35 +# respectively. +# + +#### VT100/ANSI/ECMA-48 +# +# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals +# and ECMA-48 Control Functions for Coded Character Sets. +# +# Much of the content of this comment is adapted from a table prepared by +# Richard Shuford, based on a 1984 Byte article. Terminfo correspondences, +# discussion of some terminfo-related issues, and updates to capture ECMA-48 +# have been added. Control functions described in ECMA-48 only are tagged +# with * after their names. +# +# The table is a complete list of the defined ANSI X3.64/ECMA-48 control +# sequences. In the main table, \E stands for an escape (\033) character, +# SPC for space. Pn stands for a single numeric parameter to be inserted +# in decimal ASCII. Ps stands for a list of such parameters separated by +# semicolons. Parameter meanings for most parametrized sequences are +# decribed in the notes. +# +# Sequence Sequence Parameter or +# Mnemonic Name Sequence Value Mode terminfo +# ----------------------------------------------------------------------------- +# APC Applicatn Program Command \E _ - Delim - +# BEL Bell * ^G - - bel +# BPH Break Permitted Here * \E B - * - +# BS Backpace * ^H - EF - +# CAN Cancel * ^X - - - (A) +# CBT Cursor Backward Tab \E [ Pn Z 1 eF cbt +# CCH Cancel Previous Character \E T - - - +# CHA Cursor Horizntal Absolute \E [ Pn G 1 eF hpa (B) +# CHT Cursor Horizontal Tab \E [ Pn I 1 eF tab (C) +# CMD Coding Method Delimiter * \E +# CNL Cursor Next Line \E [ Pn E 1 eF nel (D) +# CPL Cursor Preceding Line \E [ Pn F 1 eF - +# CPR Cursor Position Report \E [ Pn ; Pn R 1, 1 - - (E) +# CSI Control Sequence Intro \E [ - Intro - +# CTC Cursor Tabulation Control \E [ Ps W 0 eF - (F) +# CUB Cursor Backward \E [ Pn D 1 eF cub +# CUD Cursor Down \E [ Pn B 1 eF cud +# CUF Cursor Forward \E [ Pn C 1 eF cuf +# CUP Cursor Position \E [ Pn ; Pn H 1, 1 eF cup (G) +# CUU Cursor Up \E [ Pn A 1 eF cuu +# CVT Cursor Vertical Tab \E [ Pn Y - eF - (H) +# DA Device Attributes \E [ Pn c 0 - - +# DAQ Define Area Qualification \E [ Ps o 0 - - +# DCH Delete Character \E [ Pn P 1 eF dch +# DCS Device Control String \E P - Delim - +# DL Delete Line \E [ Pn M 1 eF dl +# DLE Data Link Escape * ^P - - - +# DMI Disable Manual Input \E \ - Fs - +# DSR Device Status Report \E [ Ps n 0 - - (I) +# DTA Dimension Text Area * \E [ Pn ; Pn SPC T - PC - +# EA Erase in Area \E [ Ps O 0 eF - (J) +# ECH Erase Character \E [ Pn X 1 eF ech +# ED Erase in Display \E [ Ps J 0 eF ed (J) +# EF Erase in Field \E [ Ps N 0 eF - +# EL Erase in Line \E [ Ps K 0 eF el (J) +# EM End of Medium * ^Y - - - +# EMI Enable Manual Input \E b Fs - +# ENQ Enquire ^E - - - +# EOT End Of Transmission ^D - * - +# EPA End of Protected Area \E W - - - (K) +# ESA End of Selected Area \E G - - - +# ESC Escape ^[ - - - +# ETB End Transmission Block ^W - - - +# ETX End of Text ^C - - - +# FF Form Feed ^L - - - +# FNK Function Key * \E [ Pn SPC W - - - +# GCC Graphic Char Combination* \E [ Pn ; Pn SPC B - - - +# FNT Font Selection \E [ Pn ; Pn SPC D 0, 0 FE - +# GSM Graphic Size Modify \E [ Pn ; Pn SPC B 100, 100 FE - (L) +# GSS Graphic Size Selection \E [ Pn SPC C none FE - +# HPA Horz Position Absolute \E [ Pn ` 1 FE - (B) +# HPB Char Position Backward \E [ j 1 FE - +# HPR Horz Position Relative \E [ Pn a 1 FE - (M) +# HT Horizontal Tab * ^I - FE - (N) +# HTJ Horz Tab w/Justification \E I - FE - +# HTS Horizontal Tab Set \E H - FE hts +# HVP Horz & Vertical Position \E [ Pn ; Pn f 1, 1 FE - (G) +# ICH Insert Character \E [ Pn @ 1 eF ich +# IDCS ID Device Control String \E [ SPC O - * - +# IGS ID Graphic Subrepertoire \E [ SPC M - * - +# IL Insert Line \E [ Pn L 1 eF il +# IND Index \E D - FE - +# INT Interrupt \E a - Fs - +# JFY Justify \E [ Ps SPC F 0 FE - +# IS1 Info Separator #1 * ^_ - * - +# IS2 Info Separator #1 * ^^ - * - +# IS3 Info Separator #1 * ^] - * - +# IS4 Info Separator #1 * ^\ - * - +# LF Line Feed ^J - - - +# LS1R Locking Shift Right 1 * \E ~ - - - +# LS2 Locking Shift 2 * \E n - - - +# LS2R Locking Shift Right 2 * \E } - - - +# LS3 Locking Shift 3 * \E o - - - +# LS3R Locking Shift Right 3 * \E | - - - +# MC Media Copy \E [ Ps i 0 - - (S) +# MW Message Waiting \E U - - - +# NAK Negative Acknowledge * ^U - * - +# NBH No Break Here * \E C - - - +# NEL Next Line \E E - FE nel (D) +# NP Next Page \E [ Pn U 1 eF - +# NUL Null * ^@ - - - +# OSC Operating System Command \E ] - Delim - +# PEC Pres. Expand/Contract * \E Pn SPC Z 0 - - +# PFS Page Format Selection * \E Pn SPC J 0 - - +# PLD Partial Line Down \E K - FE - (T) +# PLU Partial Line Up \E L - FE - (U) +# PM Privacy Message \E ^ - Delim - +# PP Preceding Page \E [ Pn V 1 eF - +# PPA Page Position Absolute * \E [ Pn SPC P 1 FE - +# PPB Page Position Backward * \E [ Pn SPC R 1 FE - +# PPR Page Position Forward * \E [ Pn SPC Q 1 FE - +# PTX Parallel Texts * \E [ \ - - - +# PU1 Private Use 1 \E Q - - - +# PU2 Private Use 2 \E R - - - +# QUAD Typographic Quadding \E [ Ps SPC H 0 FE - +# REP Repeat Char or Control \E [ Pn b 1 - rep +# RI Reverse Index \E M - FE - (V) +# RIS Reset to Initial State \E c - Fs - +# RM Reset Mode * \E [ Ps l - - - (W) +# SACS Set Add. Char. Sep. * \E [ Pn SPC / 0 - - +# SAPV Sel. Alt. Present. Var. * \E [ Ps SPC ] 0 - - (X) +# SCI Single-Char Introducer \E Z - - - +# SCO Sel. Char. Orientation * \E [ Pn ; Pn SPC k - - - +# SCS Set Char. Spacing * \E [ Pn SPC g - - - +# SD Scroll Down \E [ Pn T 1 eF rin +# SDS Start Directed String * \E [ Pn ] 1 - - +# SEE Select Editing Extent \E [ Ps Q 0 - - (Y) +# SEF Sheet Eject & Feed * \E [ Ps ; Ps SPC Y 0,0 - - +# SGR Select Graphic Rendition \E [ Ps m 0 FE sgr (O) +# SHS Select Char. Spacing * \E [ Ps SPC K 0 - - +# SI Shift In ^O - - - (P) +# SIMD Sel. Imp. Move Direct. * \E [ Ps ^ - - - +# SL Scroll Left \E [ Pn SPC @ 1 eF - +# SLH Set Line Home * \E [ Pn SPC U - - - +# SLL Set Line Limit * \E [ Pn SPC V - - - +# SLS Set Line Spacing * \E [ Pn SPC h - - - +# SM Select Mode \E [ Ps h none - - (W) +# SO Shift Out ^N - - - (Q) +# SOH Start Of Heading * ^A - - - +# SOS Start of String * \E X - - - +# SPA Start of Protected Area \E V - - - (Z) +# SPD Select Pres. Direction * \E [ Ps ; Ps SPC S 0,0 - - +# SPH Set Page Home * \E [ Ps SPC G - - - +# SPI Spacing Increment \E [ Pn ; Pn SPC G none FE - +# SPL Set Page Limit * \E [ Ps SPC j - - - +# SPQR Set Pr. Qual. & Rapid. * \E [ Ps SPC X 0 - - +# SR Scroll Right \E [ Pn SPC A 1 eF - +# SRCS Set Reduced Char. Sep. * \E [ Pn SPC f 0 - - +# SRS Start Reversed String * \E [ Ps [ 0 - - +# SSA Start of Selected Area \E F - - - +# SSU Select Size Unit * \E [ Pn SPC I 0 - - +# SSW Set Space Width * \E [ Pn SPC [ none - - +# SS2 Single Shift 2 (G2 set) \E N - Intro - +# SS3 Single Shift 3 (G3 set) \E O - Intro - +# ST String Terminator \E \ - Delim - +# STAB Selective Tabulation * \E [ Pn SPC ^ - - - +# STS Set Transmit State \E S - - - +# STX Start pf Text * ^B - - - +# SU Scroll Up \E [ Pn S 1 eF indn +# SUB Substitute * ^Z - - - +# SVS Select Line Spacing * \E [ Pn SPC \ 1 - - +# SYN Synchronous Idle * ^F - - - +# TAC Tabul. Aligned Centered * \E [ Pn SPC b - - - +# TALE Tabul. Al. Leading Edge * \E [ Pn SPC a - - - +# TATE Tabul. Al. Trailing Edge* \E [ Pn SPC ` - - - +# TBC Tab Clear \E [ Ps g 0 FE tbc +# TCC Tabul. Centered on Char * \E [ Pn SPC c - - - +# TSR Tabulation Stop Remove * \E [ Pn SPC d - FE - +# TSS Thin Space Specification \E [ Pn SC E none FE - +# VPA Vert. Position Absolute \E [ Pn d 1 FE vpa +# VPB Line Position Backward * \E [ Pn k 1 FE - +# VPR Vert. Position Relative \E [ Pn e 1 FE - (R) +# VT Vertical Tabulation * ^K - FE - +# VTS Vertical Tabulation Set \E J - FE - +# +# --------------------------------------------------------------------------- +# +# Notes: +# +# Some control characters are listed in the ECMA-48 standard without +# being assigned functions relevant to terminal control there (they +# referred to other standards such as ISO 1745 or ECMA-35). They are listed +# here anyway for completeness. +# +# (A) ECMA-48 calls this "CancelCharacter" but retains the CCH abbreviation. +# +# (B) There seems to be some confusion abroad between CHA and HPA. Most +# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls +# the capability (hpa). ECMA-48 calls this "Cursor Character Absolute" but +# preserved the CHA abbreviation. +# +# (C) CHT corresponds to terminfo (tab). Usually it has the value ^I. +# Occasionally (as on, for example, certain HP terminals) this has the HTJ +# value. ECMA-48 calls this "Cursor Forward Tabulation" but preserved the +# CHT abbreviation. +# +# (D) terminfo (nel) is usually \r\n rather than ANSI \EE. +# +# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR +# abbreviation. +# +# (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear +# char tab, 3 = clear line tab, 4 = clear all char tabs on current line, +# 5 = clear all char tabs, 6 = clear all line tabs. +# +# (G) CUP and HVP are identical in effect. Some ANSI.SYS versions accept +# HVP, but always allow CUP as an alternate. ECMA-48 calls HVP "Character +# Position Absolute" but retains the HVP abbreviation. +# +# (H) ECMA calls this "Cursor Line Tabulation" but preserves the CVT +# abbreviation. +# +# (I) DSR parameter values: 0 = ready, 1 = busy, 2 = busy, will send DSR +# later, 3 = malfunction, 4 = malfunction, will send DSR later, 5 = request +# DSR, 6 = request CPR response. +# +# (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end, +# 1 = clear from beginning, 2 = clear. +# +# (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation. +# +# (L) The GSM parameters are vertical and horizontal parameters to scale by. +# +# (M) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals +# use CUF for this function and ignore HPR. ECMA-48 calls this "Character +# Position Relative" but retains the HPR abbreviation. +# +# (N) ECMA-48 calls this "Character Tabulation" but retains the HT +# abbreviation. +# +# (O) SGR parameter values: 0 = default mode (attributes off), 1 = bold, +# 2 = dim, 3 = italicized, 4 = underlined, 5 = slow blink, 6 = fast blink, +# 7 = reverse video, 8 = invisible, 9 = crossed-out (marked for deletion), +# 10 = primary font, 10 + n (n in 1..9) = nth alternative font, 20 = Fraktur, +# 21 = double underline, 22 = turn off 2, 23 = turn off 3, 24 = turn off 4, +# 25 = turn off 5, 26 = proportional spacing, 27 = turn off 7, 28 = turn off +# 8, 29 = turn off 9, 30 = black fg, 31 = red fg, 32 = green fg, 33 = yellow +# fg, 34 = blue fg, 35 = magenta fg, 36 = cyan fg, 37 = white fg, 38 = set +# fg color as in CCIT T.416, 39 = set default fg color, 40 = black bg +# 41 = red bg, 42 = green bg, 43 = yellow bg, 44 = blue bg, 45 = magenta bg, +# 46 = cyan bg, 47 = white bg, 48 = set bg color as in CCIT T.416, 39 = set +# default bg color, 50 = turn off 26, 51 = framed, 52 = encircled, 53 = +# overlined, 54 = turn off 51 & 52, 55 = not overlined, 56-59 = reserved, +# 61-65 = variable highlights for ideograms. +# +# (P) SI is also called LSO, Locking Shift Zero. +# +# (Q) SI is also called LS1, Locking Shift One. +# +# (R) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals +# use CUD for this function and ignore VPR. ECMA calls it `Line Position +# Absolute' but retains the VPA abbreviation. +# +# (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from +# primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer +# from secondary aux device, 4 = stop relay to primary aux device, 5 = +# start relay to primary aux device, 6 = stop relay to secondary aux device, +# 7 = start relay to secondary aux device. +# +# (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD +# abbreviation. +# +# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLD +# abbreviation. +# +# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation. +# +# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM), +# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM), +# 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM), +# 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional +# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM), +# 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM), +# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM), +# 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer +# Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer +# Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed +# New Line Mode (LF/NL), Graphic Rendition Combination Mode (GRCM), 22 = +# Zero Default Mode (ZDM). The EBM and LF/NL modes have actually been removed +# from ECMA-48's 5th edition but are listed here for reference. +# +# (X) Select Alternate Presentation Variants is used only for non-Latin +# alphabets. +# +# (Y) "Select Editing Extent" (SEE) was ANSI "Select Edit Extent Mode" (SEM). +# +# (Z) ECMA-48 calls this "Start of Guarded Area" but retains the SPA +# abbreviation. +# +# --------------------------------------------------------------------------- +# +# Abbreviations: +# +# Intro an Introducer of some kind of defined sequence; the normal 7-bit +# X3.64 Control Sequence Introducer is the two characters "Escape [" +# +# Delim a Delimiter +# +# x/y identifies a character by position in the ASCII table (column/row) +# +# eF editor function (see explanation) +# +# FE format effector (see explanation) +# +# F is a Final character in +# an Escape sequence (F from 3/0 to 7/14 in the ASCII table) +# a control sequence (F from 4/0 to 7/14) +# +# Gs is a graphic character appearing in strings (Gs ranges from +# 2/0 to 7/14) in the ASCII table +# +# Ce is a control represented as a single bit combination in the C1 set +# of controls in an 8-bit character set +# +# C0 the familiar set of 7-bit ASCII control characters +# +# C1 roughly, the set of control chars available only in 8-bit systems. +# This is too complicated to explain fully here, so read Jim Fleming's +# article in the February 1983 BYTE, especially pages 214 through 224. +# +# Fe is a Final character of a 2-character Escape sequence that has an +# equivalent representation in an 8-bit environment as a Ce-type +# (Fe ranges from 4/0 to 5/15) +# +# Fs is a Final character of a 2-character Escape sequence that is +# standardized internationally with identical representation in 7-bit +# and 8-bit environments and is independent of the currently +# designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14) +# +# I is an Intermediate character from 2/0 to 2/15 (inclusive) in the +# ASCII table +# +# P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII +# table +# +# Pn is a numeric parameter in a control sequence, a string of zero or +# more characters ranging from 3/0 to 3/9 in the ASCII table +# +# Ps is a variable number of selective parameters in a control sequence +# with each selective parameter separated from the other by the code +# 3/11 (which usually represents a semicolon); Ps ranges from +# 3/0 to 3/9 and includes 3/11 +# +# * Not relevant to terminal control, listed for completeness only. +# +# Format Effectors versus Editor Functions +# +# A format effector specifies how following output is to be displayed. +# An editor function allows you to modify the display. Informally +# format effectors may be destructive; format effectors should not be. +# +# For instance, a format effector that moves the "active position" (the +# cursor or equivalent) one space to the left would be useful when you want to +# create an overstrike, a compound character made of two standard characters +# overlaid. Control-H, the Backspace character, is actually supposed to be a +# format effector, so you can do this. But many systems use it in a +# nonstandard fashion, as an editor function, deleting the character to the +# left of the cursor and moving the cursor left. When Control-H is assumed to +# be an editor function, you cannot predict whether its use will create an +# overstrike unless you also know whether the output device is in an "insert +# mode" or an "overwrite mode". When Control-H is used as a format effector, +# its effect can always be predicted. The familiar characters carriage +# return, linefeed, formfeed, etc., are defined as format effectors. +# +# NOTES ON THE DEC VT100 IMPLEMENTATION +# +# Control sequences implemented in the VT100 are as follows: +# +# CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND, +# LNM, NEL, RI, RIS, RM, SGR, SM, TBC +# +# plus several private DEC commands. +# +# Erasing parts of the display (EL and ED) in the VT100 is performed thus: +# +# Erase from cursor to end of line Esc [ 0 K or Esc [ K +# Erase from beginning of line to cursor Esc [ 1 K +# Erase line containing cursor Esc [ 2 K +# Erase from cursor to end of screen Esc [ 0 J or Esc [ J +# Erase from beginning of screen to cursor Esc [ 1 J +# Erase entire screen Esc [ 2 J +# +# Some brain-damaged terminal/emulators respond to Esc [ J as if it were +# Esc [ 2 J, but this is wrong; the default is 0. +# +# The VT100 responds to receiving the DA (Device Attributes) control +# +# Esc [ c (or Esc [ 0 c) +# +# by transmitting the sequence +# +# Esc [ ? l ; Ps c +# +# where Ps is a character that describes installed options. +# +# The VT100's cursor location can be read with the DSR (Device Status +# Report) control +# +# Esc [ 6 n +# +# The VT100 reports by transmitting the CPR sequence +# +# Esc [ Pl ; Pc R +# +# where Pl is the line number and Pc is the column number (in decimal). +# +# The specification for the DEC VT100 is document EK-VT100-UG-003. + +#### ANSI.SYS +# +# Here is a description of the color and attribute controls supported in the +# the ANSI.SYS driver under MS-DOS. Most console drivers and ANSI +# terminal emulators for Intel boxes obey these. They are a proper subset +# of the ECMA-48 escapes. +# +# 0 all attributes off +# 1 foreground bright +# 4 underscore on +# 5 blink on/background bright (not reliable with brown) +# 7 reverse-video +# 8 set blank (non-display) +# 10 set primary font +# 11 set first alternate font (on PCs, display ROM characters 1-31) +# 12 set second alternate font (on PCs, display IBM high-half chars) +# +# Color attribute sets +# 3n set foreground color / 0=black, 1=red, 2=green, 3=brown, +# 4n set background color \ 4=blue, 5=magenta, 6=cyan, 7=white +# Bright black becomes gray. Bright brown becomes yellow, +# These coincide with the prescriptions of the ISO 6429/ECMA-48 standard. +# +# * If the 5 attribute is on and you set a background color (40-47) it is +# supposed to enable bright background. +# +# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing +# when you try to set a "bright brown" (yellow) background with attribute +# 5 (you get a blinking yellow foreground instead). A few displays +# (including the System V console) support an attribute 6 that undoes this +# braindamage (this is required by iBCS2). +# +# * Some older versions of ANSI.SYS have a bug that causes thems to require +# ESC [ Pn k as EL rather than the ANSI ESC [ Pn K. (This is not ECMA-48 +# compatible.) + +#### Intel Binary Compatibility Standard +# +# For comparison, here are the capabilities implied by the Intel Binary +# Compatibility Standard for UNIX systems (Intel order number 468366-001). +# These recommendations are optional. IBCS2 allows the leading escape to +# be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with +# the ANSI X.364/ISO 6429/ECMA-48 standard. Here are the iBCS2 capabilities +# (as described in figure 9-3 of the standard). Those expressed in the ibcs2 +# terminfo entry are followed with the corresponding capability in parens: +# +# CSI <n>k disable (n=0) or enable (n=1) keyclick +# CSI 2h lock keyboard +# CSI 2i send screen as input +# CSI 2l unlock keyboard +# CSI 6m enable background color intensity +# CSI <0-2>c reserved +# CSI <0-59>m select graphic rendition +# CSI <n>;<m>H (cup) cursor to line n and column m +# CSI <n>;<m>f cursor to line n and column m +# CSI <n>@ (ich) insert characters +# CSI <n>A (cuu) cursor up n lines +# CSI <n>B (cud) cursor down n lines +# CSI <n>C (cuu) cursor right n characters +# CSI <n>D (cud) cursor left n characters +# CSI <n>E cursor down n lines and in first column +# CSI <n>F cursor up n lines and in first column +# CSI <n>G (hpa) position cursor at column n-1 +# CSI <n>J (ed) erase in display +# CSI <n>K (el) erase in line +# CSI <n>L (il) insert line(s) +# CSI <n>P (dch) delete characters +# CSI <n>S (indn) scroll up n lines +# CSI <n>T (rin) scroll down n lines +# CSI <n>X (ech) erase characters +# CSI <n>Z (cbt) back up n tab stops +# CSI <n>` cursor to column n on line +# CSI <n>a (cuu) cursor right n characters +# CSI <n>d (vpa) cursor to line n +# CSI <n>e cursor down n lines and in first column +# CSI <n>g (cbt) clear all tabs +# CSI <n>z make virtual terminal n active +# CSI ?7h (smam) turn automargin on +# CSI ?7l (rmam) turn automargin off +# CSI s save cursor position +# CSI u restore cursor position to saved value +# CSI =<c>A set overscan color +# CSI =<c>F set normal foreground color +# CSI =<c>G set normal background color +# CSI =<c>H set reverse foreground color +# CSI =<c>I set reverse foreground color +# CSI =<c>J set graphic foreground color +# CSI =<c>K set graphic foreground color +# CSI =<n>g (dispc) display n from alternate graphics character set +# CSI =<p>;<d>B set bell parameters +# CSI =<s>;<e>C set cursor parameters +# CSI =<x>D enable/disable intensity of background color +# CSI =<x>E set/clear blink vs. bold background +# CSI 7 (sc) (sc) save cursor position +# CSI 8 (rc) (rc) restore cursor position to saved value +# CSI H (hts) (hts) set tab stop +# CSI Q<n><string> define function key string +# (string must begin and end with delimiter char) +# CSI c (clear) clear screen +# +# The lack of any specification for attributes in SGR (among other things) +# makes this a wretchedly weak standard. The table above is literally +# everything iBSC2 has to say about terminal escape sequences; there is +# no further discussion of their meaning or how to set the parameters +# in these sequences at all. +# + +######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE +# +# The historical termcap file entries were written primarily in 4.4BSD termcap. +# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set, +# with the extension names chosen for compatibility with the termcap names +# assigned in System V terminfo. There are some variant extension sets out +# there. We try to describe them here. +# +# XENIX extensions: +# +# The XENIX extensions include a set of function-key capabilities as follows: +# +# code XENIX variable name terminfo name name clashes? +# ---- ------------------- ------------- ----------------------- +# CL key_char_left +# CR key_char_right +# CW key_change_window create_window +# EN key_end kend +# HM key_home khome +# HP ?? +# LD key_delete_line kdl1 +# LF key_linefeed label_off +# NU key_next_unlocked_cell +# PD key_page_down knp +# PL ?? +# PN start_print mc5 +# PR ?? +# PS stop_print mc4 +# PU key_page_up kpp pulse +# RC key_recalc remove_clock +# RF key_toggle_ref req_for_input +# RT key_return kent +# UP key_up_arrow kcuu1 parm_up_cursor +# WL key_word_left +# WR key_word_right +# +# The XENIX extensions also include the following character-set and highlight +# capabilities: +# +# XENIX terminfo function +# ----- -------- ------------------------------ +# GS smacs start alternate character set +# GE rmacs end alternate character set +# GG :as:/:ae: glitch (analogous to :sg:/:ug:) +# bo blink begin blink (not used in /etc/termcap) +# be end blink (not used in /etc/termcap) +# bb blink glitch (not used in /etc/termcap) +# it dim begin dim (not used in /etc/termcap) +# ie end dim (not used in /etc/termcap) +# ig dim glitch (not used in /etc/termcap) +# +# Finally, XENIX also used the following forms-drawing capabilities: +# +# single double type ASCII approximation +# ------ ------ ------------- ------------------- +# GV Gv vertical line | +# GH Gv horizontal line - _ +# G1 G5 top right corner _ | +# G2 G6 top left corner | +# G3 G7 bottom left corner |_ +# G4 G8 bottom right corner _| +# GD Gd down-tick character T +# GL Gl left-tick character -| +# GR Gr right-tick character |- +# GC Gc middle intersection -|- +# GU Gu up-tick character _|_ +# +# These were invented to take advantage of the IBM PC ROM character set. One +# can compose an acsc string from the single-width characters as follows +# "j{G4}k{G1}l{G2}m{G3}q{GH}x{GV}t{GR}u{GL}v{GU}w{GD}n{GC}" +# When translating a termcap file, ncurses tic will do this automatically. +# The double forms characters don't fit the SVr4 terminfo model. +# +# AT&T Extensions: +# +# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of +# nonstandard capabilities. Its signature is the KM capability, used to name +# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this +# set. Comments in the original, and a little cross-checking with other AT&T +# documentation, seem to establish that BO=:mr: (start reverse video), DS=:mh: +# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights), +# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make +# cursor invisible), and CV=:ve: (make cursor normal). +# +# HP Extensions +# +# The HP library (as of mid-1995, their term.h file version 70.1) appears to +# have the System V capabilities up to SVr1 level. After that, it supports +# two nonstandard caps meml and memu corresponding to the old termcap :ml:, +# :mu: capabilities. After that, it supports caps plab_norm, label_on, +# label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the +# HP binary format incompatible with SVr4's. +# +# IBM Extensions +# +# There is a set of nonstandard terminfos used by IBM's AIX operating system. +# The AIX terminfo library diverged from SVr1 terminfo, and replaces all +# capabilities following prtr_non with the following special capabilties: +# box[12], batt[12], colb[0123456789], colf[0123456789], f[01234567], kbtab, +# kdo, kcmd, kcpn, kend, khlp, knl, knpn, kppn, kppn, kquit, ksel, kscl, kscr, +# ktab, kmpf[123456789], apstr, ksf1..ksf10, kf11...kf63, kact, topl, btml, +# rvert, lvert. Some of these are identical to XPG4/SVr4 equivalents: +# kcmd, kend, khlp, and kf11...kf63. Two others (kbtab and ksel) can be +# renamed (to kcbt and kslt). The places in the box[12] capabilities +# correspond to acsc chars, here is the mapping: +# +# box1[0] = ACS_ULCORNER +# box1[1] = ACS_HLINE +# box1[2] = ACS_URCORNER +# box1[3] = ACS_VLINE +# box1[4] = ACS_LRCORNER +# box1[5] = ACS_LLCORNER +# box1[6] = ACS_TTEE +# box1[7] = ACS_RTEE +# box1[8] = ACS_BTEE +# box1[9] = ACS_LTEE +# box1[10] = ACS_PLUS +# +# The box2 characters are the double-line versions of these forms graphics. +# The AIX binary terminfo format is incompatible with SVr4's. +# +# Iris console extensions: +# +# HS is half-intensity start; HE is half-intensity end +# CT is color terminal type (for Curses & rogue) +# CP is color change escape sequence +# CZ are color names (for Curses & rogue) +# +# The ncurses tic utility recognizes HS as an alias for mh <dim>. +# +# TC Extensions: +# +# There is a set of extended termcaps associated with something +# called the "Terminal Control" or TC package created by MainStream Systems, +# Winfield Kansas. This one also uses GS/GE for as/ae, and also uses +# CF for civis and CO for cvvis. Finally, they define a boolean :ct: +# that flags color terminals. +# +######## CHANGE HISTORY +# +# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94. +# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses +# project. +# +# This file contains all the capability information present in John Kunze's +# last version of the termcap master file, except as noted in the change +# comments at end of file. Some information about very ancient obsolete +# capabilities has been moved to comments. Some all-numeric names of older +# terminals have been retired. +# +# I changed :MT: to :km: (the 4.4BSD name) everywhere. I commented out some +# capabilities (EP, dF, dT, dV, kn, ma, ml, mu, xr, xx) that are no longer +# used by BSD curses. +# +# The 9.1.0 version of this file was translated from my lightly-edited copy of +# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for +# the purpose. Unless the ncurses tic implementation and the Lisp code were +# making perfectly synchronized mistakes which I then failed to catch by +# eyeball, the translation was correct and perfectly information-preserving. +# +# Major version number bumps correspond to major version changes in ncurses. +# +# Here is a log of the changes since then: +# +# 9.1.0 (Wed Feb 1 04:50:32 EST 1995): +# * First terminfo master translated from 8.3. +# 9.2.0 (Wed Feb 1 12:21:45 EST 1995): +# * Replaced Wyse entries with updated entries supplied by vendor. +# +# 9.3.0 (Mon Feb 6 19:14:40 EST 1995): +# * Added contact & status info from G. Clark Brown <clark@sssi.com>. +# 9.3.1 (Tue Feb 7 12:00:24 EST 1995): +# * Better XENIX keycap translation. Describe TC termcaps. +# * Contact and history info supplied by Qume. +# 9.3.2 (Sat Feb 11 23:40:02 EST 1995): +# * Raided the Shuford FTP site for recent termcaps/terminfos. +# * Added information on X3.64 and VT100 standard escape sequences. +# 9.3.3 (Mon Feb 13 12:26:15 EST 1995): +# * Added a correct X11R6 xterm entry. +# * Fixed terminfo translations of padding. +# 9.3.4 (Wed Feb 22 19:27:34 EST 1995): +# * Added correct acsc/smacs/rmacs strings for vt100 and xterm. +# * Added u6/u7/u8/u9 capabilities. +# * Added PCVT entry. +# 9.3.5 (Thu Feb 23 09:37:12 EST 1995): +# * Emacs uses :so:, not :mr:, for its mode line. Fix linux entry +# to use reverse-video standout so Emacs will look right. +# * Added el1 capability to ansi. +# * Added smacs/rmacs to ansi.sys. +# +# 9.4.0 (Sat Feb 25 16:43:25 EST 1995): +# * New mt70 entry. +# * Added COPYRIGHTS AND OTHER DELUSIONS. +# * Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics +# smartvid & smarterm, ampex 175 & 219 & 232, +# env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20, +# ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2, +# screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan, +# adm36, mime314, ergo4000, ca22851. Replaced att7300, esprit, dd5500. +# * Replaced the Perkin-Elmer entries with vendor's official ones. +# * Restored the old minimal-ansi entry, luna needs it. +# * Fixed some incorrect ip and proportional-padding translations. +# 9.4.1 (Mon Feb 27 14:18:33 EST 1995): +# * Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly. +# * Make the xterm entry 65 lines again; create xterm25 and xterm24 +# to force a particular height. +# * Added beehive4 and reorganized other Harris entries. +# 9.4.2 (Thu Mar 9 01:45:44 EST 1995): +# * Merged in DEC's official entries for its terminals. The only old +# entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo). +# * Replaced the translated BBN Bitgraph entries with purpose-built +# ones from AT&T's SVr3. +# * Replaced the AT&T entries with AT&T's official terminfos. +# * Added teleray 16, vc415, cops10. +# * Merged in many individual capabilities from SCO terminfo files. +# 9.4.3 (Mon Mar 13 02:37:53 EST 1995): +# * Typo fixes. +# * Change linux entry so A_PROTECT enables IBM-PC ROM characters. +# 9.4.4 (Mon Mar 27 12:32:35 EST 1995): +# * Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803, +# pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21, +# simterm, citoh and variants. +# * Replaced sol entry with sol1 and sol2. +# * Replaced Qume QVT and Freedom-series entries with purpose-built +# terminfo entries. +# * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek +# and dg200 entries using caps from from SCO. +# * Added the usual set of function-key mappings to ANSI entry. +# * Corrected xterm's function-key capabilities. +# 9.4.5 (Tue Mar 28 14:27:49 EST 1995): +# * Fix in xterm entry, cub and cud are not reliable under X11R6. +# 9.4.6 (Thu Mar 30 14:52:15 EST 1995): +# * Fix in xterm entry, get the arrow keys right. +# * Change some \0 escapes to \200. +# 9.4.7 (Tue Apr 4 11:27:11 EDT 1995) +# * Added apple (Videx card), adm1a, oadm31. +# * Fixed malformed ampex csr. +# * Fixed act4, cyb110; they had old-style prefix padding left in. +# * Changed mandatory to advisory padding in many entries. +# * Replaced HP entries up to hpsub with purpose-built ones. +# * Blank rmir/smir/rmdc/smdc capabilities removed. +# * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924. +# 9.4.8 (Fri Apr 7 09:36:34 EDT 199): +# * Replaced the Ann Arbor entries with SCO's, the init strings are +# more efficient (but the entries otherwise identical). +# * Added dg211 from Shuford archive. +# * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk, +# adm42-nl, pc52, gs6300, xerox820, uts30. +# * Pull SCO's padding into vi200 entry. +# * Improved capabilities for tvi4107 and other Televideo and Viewpoint +# entries merged in from SCO's descriptions. +# * Fixed old-style prefix padding on zen50, h1500. +# * Moved old superbee entry to superbee-xsb, pulled in new superbee +# entry from SCO's description. +# * Reorganized the special entries. +# * Added lm#0 to cbunix and virtual entries. +# +# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995): +# * Restored cdc456tst. +# * Fixed sb1 entry, SCO erroneously left out the xsb glitch. +# * Added megatek, beacon, microkit. +# * Freeze for ncurses-1.9 release. +# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995): +# * Added historical data for TAB. +# * Comment fixes from David MacKenzie. +# * Added the new BSDI pc3 entry. +# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995) +# * A change in the tic -C logic now ensures that all entries in +# the termcap translation will fit in < 1024 bytes. +# * Added `bobcat' and `gator' HP consoles and the Nu machine entries +# from GNU termcap file. This merges in all their local information. +# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995) +# * Changed tic -C logic to dump all capabilities used by GNU termcap. +# * Added warnings about entries with long translations (restoring +# all the GNU termcaps pushes a few over the edge). +# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995) +# * Yet another tic change, and a couple of entry tweaks, to reduce the +# number of long (> 1024) termcap translations back to 0. +# +# 9.6.0 (Mon May 1 10:35:54 EDT 1995) +# * Added kf13-kf20 to Linux entry. +# * Regularize Prime terminal names. +# * Historical data on Synertek. +# * Freeze for ncurses-1.9.1. +# 9.6.1 (Sat May 6 02:00:52 EDT 1995): +# * Added true xterm-color entry, renamed djm's pseudo-color entry. +# * Eliminate whitespace in short name fields, this tanks some scripts. +# * Name field changes to shorten some long entries. +# * Termcap translation now automatically generates empty rmir/smir +# when ich1/ich is present (copes with an ancient vi bug). +# * Added `screen' entries from FSF's screen-3.6.2. +# * Added linux-nic and xterm-nic entries. +# 9.6.2 (Sat May 6 17:00:55 EDT 1995): +# * Change linux entry to use smacs=\E[11m and have an explicit acsc, +# eliminating some special-case code in ncurses. +# +# 9.7.0 (Tue May 9 18:03:12 EDT 1995): +# * Added vt320-k3, rsvidtx from the Emacs termcap.dat file. I think +# that captures everything unique from it. +# * Added reorder script generator. +# * Freeze for ncurses 1.9.2 release. +# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995): +# * Added Sean Farley's kspd, flash, rs1 capabilities for linux. +# * Added Olaf Siebert's corrections for adm12. +# * ansi-pc-color now includes the colors and pairs caps, so that +# entries which use it will inherit them automatically. +# * The linux entry can now recognize the center (keypad 5) key. +# * Removed some junk that found its way into Linux acsc. +# +# 9.8.0 (Fri Jul 7 04:46:57 EDT 1995): +# * Add 50% cut mark as a desperate hack to reduce tic's core usage. +# * xterm doesn't try to use application keypad mode any more. +# * Freeze for ncurses-1.9.3 release. +# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995): +# * Added corrected sun entry from vendor. +# * Added csr capability to linux entry. +# * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG. +# * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators. +# * Some commented-out caps in long entries come back in, my code +# for computing string-table lengths had a bug in it. +# * pcansi series modified to fit comm-program reality better. +# 9.8.2 (Sat Sep 9 23:35:00 EDT 1995): +# * BSD/OS actually ships the ibmpc3 bold entry as its console. +# * Correct some bad aliases in the pcansi series +# * Added entry for QNX console. +# * Clean up duplicate long names for use with 4.4 library. +# * Change vt100 standout to be normal reverse vide, not bright reverse; +# this makes the Emacs status line look better. +# 9.8.3 (Sun Sep 10 13:07:34 EDT 1995): +# * Added Adam Thompson's VT320 entries, also his dtx-sas and z340. +# * Minor surgery, mostly on name strings, to shorten termcap version. +# +# 9.9.0 (Sat Sep 16 23:03:48 EDT 1995): +# * Added dec-vt100 for use with the EWAN emulator. +# * Added kmous to xterm for use with xterm's mouse-tracking facility. +# * Freeze for 1.9.5 alpha release. +# 9.9.1 (Wed Sep 20 13:46:09 EDT 1995): +# * Changed xterm lines to 24, the X11R6 default. +# 9.9.2 (Sat Sep 23 21:29:21 EDT 1995): +# * Added 7 newly discovered, undocumented acsc characters to linux +# entry (the pryz{|} characters). +# * ncurses no longer steals A_PROTECT. Simplify linux sgr accordingly. +# * Correct two typos in the xterm entries introduced in 9.9.1. +# * I finally figured out how to translate ko capabilities. Done. +# * Added tvi921 entries from Tim Theisen. +# * Cleanup: dgd211 -> dg211, adm42-nl -> adm42-nsl. +# * Removed mystery tec entry, it was neither interesting nor useful. +# * shortened altos3, qvt203, tvi910+, tvi92D, tvi921-g, tvi955, vi200-f, +# vi300-ss, att505-24, contel301, dm3045, f200vi, pe7000c, vc303a, +# trs200, wind26, wind40, wind50, cdc456tst, dku7003, f110, dg211, +# by making them relative to use capabilities +# * Added cuf1=^L to tvi925 from deleted variant tvi925a. +# * fixed cup in adm22 entry and parametrized strings in vt320-k3. +# * added it#8 to entries that used to have :pt: -- tvi912, vi200, +# ampex80, +# * Translate all home=\E[;H capabilities to home=\E[H, they're +# equivalent. +# * Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of +# vt100 and ANSI-like terminals. +# 9.9.3 (Tue Sep 26 20:11:15 EDT 1995): +# * Added it#8 and ht=\t to *all* entries with :pt:; the ncurses tic +# does this now, too. +# * fviewpoint is gone, it duplicated screwpoint. +# * Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c, +# ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3, +# versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW. +# The UW vi50 replaces the old one, which becomes vi50adm, +# * No more embedded commas in name fields. +# +# 9.10.0 (Wed Oct 4 15:39:37 EDT 1995): +# * XENIX forms characters in fos, trs16, scoansi become acsc strings, +# * Introduced klone+* entries for describing Intel-console behavior. +# * Linux kbs is default-mapped to delete for some brain-dead reason. +# * -nsl -> -ns. The -pp syntax is obsolete. +# * Eliminate [A-Z]* primaries in accordance with SVr4 terminfo docs. +# * Make xterm entry do application-keypad mode again. I got complaints +# that it was messing up someone's 3270 emulator. +# * Added some longname fields in order to avoid warning messages from +# older tic implementations. +# * According to ctrlseqs.ms, xterm has a full vt100 graphics set. Use +# it! (This gives us pi, greater than, less than, and a few more.) +# * Freeze for ncurses-1.9.6 release. +# 9.10.1 (Sat Oct 21 22:18:09 EDT 1995): +# * Add xon to a number of console entries, they're memory-mapped and +# don't need padding. +# * Correct the use dependencies in the ansi series. +# * Hand-translate more XENIX capabilities. +# * Added hpterm entry for HP's X terminal emulator. +# * Added aixterm entries. +# * Shortened four names so everything fits in 14 chars. +# +# 9.11.0 (Thu Nov 2 17:29:35 EST 1995): +# * Added ibcs2 entry and info on iBCS2 standard. +# * Corrected hpa/vpa in linux entry. They still fail the worm test. +# * We can handle the HP meml/memu capability now. +# * Added smacs to klone entries, just as documentation. +# * Carrected ansi.sys and cit-500 entries. +# * Added z39, vt320-k311, v220c, and avatar entries. +# * Make pcansi use the ansi.sys invis capability. +# * Added DIP switch descriptions for vt100, adm31, tvi910, tvi920c, +# tvi925, tvi950, dt80, ncr7900i, h19. +# * X3.64 has been withdrawn, change some references. +# * Removed function keys from ansi-m entry. +# * Corrected ansi.sys entry. +# * Freeze for ncurses-1.9.7 release. +# 9.11.1 (Tue Nov 6 18:18:38 EST 1995): +# * Added rmam/smam capabilities to many entries based on init strings. +# * Added correct hpa/vpa to linux. +# * Reduced several entries relative to vt52. +# 9.11.2 (Tue Nov 7 00:21:06 EST 1995): +# * Exiled some utterly unidentifiable custom and homebrew types to the +# UFO file; also, obsolete small-screen hardware; also, entries which +# look flat-out incorrect, garbled, or redundant. These include the +# following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec, +# tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile, +# apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu, +# fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55, +# yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2, +# vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200, +# trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40, +# att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w, +# tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na, +# c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na, +# regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb, +# vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam, +# vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms. +# * Corrected pcvt25h as suggested by Brian C. Grayson +# <bgrayson@pine.ece.utexas.edu>. +# 9.11.3 (Thu Nov 9 12:14:40 EST 1995): +# * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H. +# * Added kent=\EOM to xterm entry. +# +# 9.11.4 (Fri Nov 10 08:31:35 EST 1995): +# * Corrected gigi entry. +# * Restored cuf/cud1 to xterm, their apparent bugginess was due to +# bad hpa/vpa capabilities. +# * Corrected flash strings to have a uniform delay of .2 sec. No +# more speed-dependent NUL-padding! +# * terminfo capabilities in comments bracketed with <>. +# 9.11.5 (Fri Nov 10 15:35:02 EST 1995): +# * Replaced pcvt with the 3.31 pcvt entries. +# * Freeze for 1.9.7a. +# 9.11.6 (Mon Nov 13 10:20:24 EST 1995): +# * Added emu entry from the X11R6 contrib tape sources. +# +# 9.12.0 (Wed Nov 29 04:22:25 EST 1995): +# * Improved iris-ansi and sun entries. +# * More flash string improvements. +# * Corrected wy160 & wy160 as suggested by Robert Dunn +# * Added dim to at386. +# * Reconciled pc3 and ibmpc3 with the BSDI termcap file. Keith says +# he's ready to start using the termcap generated from this one. +# * Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m, +# ln03, lno3-w, h19-g, z29a*, qdss. Made vt200 an alias of vt220. +# * Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925, +# att610, att620, att630, +# * Changed hazeltine name prefix from h to hz. +# * Sent t500 to the UFI file. +# * I think we've sucked all the juice out of BSDI's termcap file now. +# * Freeze for ncurses 1.9.8 release +# 9.12.1 (Thu Nov 30 03:14:06 EST 1995) +# * Unfreeze, linux kbs needed to be fixed. +# * Tim Theisen pinned down a bug in the DMD firmware. +# 9.12.2 (Thu Nov 30 19:08:55 EST 1995): +# * Fixes to ansi and klone capabilities (thank you, Aaron Ucko). +# (The broken ones had been shadowed by sgr.) +# 9.12.3 (Thu Dec 7 17:47:22 EST 1995): +# * Added documentation on ECMA-48 standard. +# * New Amiga entry. +# 9.12.4 (Thu Dec 14 04:16:39 EST 1995): +# * More ECMA-48 stuff +# * Corrected typo in minix entry, added pc-minix. +# * Corrected khome/kend in xterm (thank you again, Aaron Ucko). +# * Added rxvt entry. +# * Added 1.3.x color-change capabilities to linux entry. +# 9.12.5 (Tue Dec 19 00:22:10 EST 1995): +# * Corrected rxvt entry khome/kend. +# * Corrected linux color change capabilities. +# * NeXT entries from Dave Wetzel. +# * Cleaned up if and rf file names (all in /usr/share now). +# * Changed linux op capability to avoid screwing up a background color +# pair set by setterm. +# 9.12.6 (Wed Feb 7 16:14:35 EST 1996): +# * Added xterm-sun. +# 9.12.7 (Fri Feb 9 13:27:35 EST 1996): +# * Added visa50. +# +# 9.13.0 (Sun Mar 10 00:13:08 EST 1996): +# * Another sweep through the Shuford archive looking for new info. +# * Added dg100 alias to dg6053 based on a comp.terminals posting. +# * Added st52 from Per Persson. +# * Added eterm from the GNU Emacs 19.30 distribution. +# * Freeze for 1.9.9. +# 9.13.1 (Fri Mar 29 14:06:46 EST 1996): +# * FreeBSD console entries from Andrew Chernov. +# * Removed duplicate Atari st52 name. +# 9.13.2 (Tue May 7 16:10:06 EDT 1996) +# * xterm doesn't actually have ACS_BLOCK. +# * Change klone+color setf/setb to simpler forms that can be +# translated into termcap. +# * Added xterm1. +# * Removed mechanically-generated junk capabilities from cons* entries. +# * Added color support to bsdos. +# 9.13.3 (Thu May 9 10:35:51 EDT 1996): +# * Added Wyse 520 entries from Wm. Randolph Franklin <wrf@ecse.rpi.edu>. +# * Created ecma+color, linux can use it. Also added ech to linux. +# * Teach xterm about more keys. Add Thomas Dickey's 3.1.2E updates. +# * Add descriptions to FreeBSD console entries. Also shorten +# some aliases to <= 14 chars for portability. +# * Added x68k console +# * Added OTbs to several VT-series entries. +# 9.13.4 (Wed May 22 10:54:09 EDT 1996): +# * screen entry update for 3.7.1 from Michael Alan Dorfman. +# 9.13.5 (Wed Jun 5 11:22:41 EDT 1996): +# * kterm correction due to Kenji Rikitake. +# * ACS correction in vt320-kll due to Phillippe De Muyter. +# 9.13.6 (Sun Jun 16 15:01:07 EDT 1996): +# * Sun console entry correction from J.T. Conklin. +# * Changed all DEC VT300 and up terminals to use VT300 tab set +# 9.13.7 (Mon Jul 8 20:14:32 EDT 1996): +# * Added smul to linux entry (we never noticed it was missing +# because of sgr!). +# * Added rmln to hp+labels (deduced from other HP entries). +# * Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas, +# pro350, att7300, 5420_2, att4418, att4424, att4426, att505, vt320-k3. +# * Corrected vt220 acsc. +# * The klone+sgr and klone+sgr-dumb entries now use klone+acs; +# this corresponds to reality and helps prevent some tic warnings. +# * Added sgr0 to c101, pcix, vt100-nav, screen2, oldsun, next, altos2, +# hpgeneric, hpansi, hpsub, hp236, hp700-wy, bobcat, dku7003, adm11, +# adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200, +# qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc, +# wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90, +# adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p, +# f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000, +# owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx, +# lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25, +# dw3, ln03, ims-ansi, graphos, t16, zen30, xtalk, simterm, d800, +# ifmr, v3220, wy100q, tandem653, ibmaed. +# * Added DWK terminal description. +# 9.13.8 (Wed Jul 10 11:45:21 EDT 1996): +# * Many entries now have highlights inherited from adm+sgr. +# * xterm entry now corresponds to XFree86 3.1.2E, with color. +# * xtitle and xtitle-twm enable access to the X status line. +# * Added linux-1.3.6 color palette caps in conventional format. +# * Added adm1178 terminal. +# * Move fos and apollo terminals to obsolete category. +# * Aha! The BRL terminals file told us what the Iris extensions mean. +# * Added, from the BRL termcap file: rt6221, rt6221-w, northstar, +# commodore, cdc721-esc, excel62, osexec. Replaced from the BRL file: +# cit500, adm11. +# 9.13.9 (Mon Jul 15 00:32:51 EDT 1996): +# * Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756, +# aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155. +# * Corrected, from BRL termcap file: vi50. +# * Better rxvt entry & corrected xterm entries from Thomas Dickey. +# 9.13.10 (Mon Jul 15 12:20:13 EDT 1996): +# * Added from BRL: cit101e & variants, hmod1, vi200, ansi77, att5620-1, +# att5620-s, att5620-s, dg210, aas1901, hz1520, hp9845, osborne +# (old osborne moved to osborne-w), tvi970-vb, tvi970-2p, tvi925-hi, +# tek4105brl, tek4106brl, tek4107brl,tek4109brl, hazel, aepro, +# apple40p, apple80p, appleIIgs, apple2e, apple2e-p, apple-ae. +# * Paired-attribute fixes to various terminals. +# * Sun entry corrections from A. Lukyanov & Gert-Jan Vons. +# * xterm entry corrections from Thomas Dickey. +# 9.13.11 (Tue Jul 30 16:42:58 EDT 1996): +# * Added t916 entry, translated from a termcap in SCO's support area. +# * New qnx entry from Michael Hunter. +# 9.13.12 (Mon Aug 5 14:31:11 EDT 1996): +# * Added hpex2 from Ville Sulko. +# * Fixed a bug that ran the qnx and pcvtXX together. +# 9.13.13 (Fri Aug 9 01:16:17 EDT 1996): +# * Added dtterm entry from Solaris CDE. +# 9.13.14 (Tue Sep 10 15:31:56 EDT 1996): +# * corrected pairs#8 typo in dtterm entry. +# * added tvi9065. +# 9.13.15 (Sun Sep 15 02:47:05 EDT 1996): +# * updated xterm entry to cover 3.1.2E's new features. +# 9.13.16 (Tue Sep 24 12:47:43 EDT 1996): +# * Added new minix entry +# * Removed aliases of the form ^[0-9]* for obsolete terminals. +# * Commented out linux-old, nobody's using pre-1.2 kernels now. +# 9.13.17 (Fri Sep 27 13:25:38 EDT 1996): +# * Added Prism entries and kt7ix. +# * Caution notes about EWAN and tabset files. +# * Changed /usr/lib/tabset -> /usr/share/tabset. +# * Added acsc/rmacs/smacs to vt52. +# 9.13.18 (Mon Oct 28 13:24:59 EST 1996): +# * Merged in Thomas Dickey's reorganization of the xterm entries; +# added technical corrections to avoid warning messages. +# 9.13.19 (Sat Nov 16 16:05:49 EST 1996): +# * Added rmso=\E[27m in Linux entry. +# * Added koi8-r support for Linux console. +# * Replace xterm entries with canonical ones from XFree86 3.2. +# 9.13.20 (Sun Nov 17 23:02:51 EST 1996): +# * Added color_xterm from Jacob Mandelson +# 9.13.21 (Mon Nov 18 12:43:42 EST 1996): +# * Back off the xterm entry to use r6 as a base. +# 9.13.22 (Sat Nov 30 11:51:31 EST 1996): +# * Added dec-vt220 at Adrian Garside's request. +# 9.13.23 (Fri Feb 21 16:36:06 EST 1997): +# * Replaced minitel-2 entry. +# * Added MGR, ansi-nt. +# * Minor corrections to xterm entries. +# * Replaced EWAN telnet entry. +# * Dropped the reorder script generator. It was a fossil. +# 9.13.24 (Sun Feb 23 20:55:23 EST 1997): +# * Thorsten Lockert added termcap `bs' to a lot of types, working from +# the 4.4BSD Lite2 file. +# 9.13.25 (Fri Jun 20 12:33:36 EDT 1997): +# * Added Datapoint 8242, pilot, ansi_psx, rbcomm, vt220js. +# * Updated iris-ansi; corrected vt102-w. +# * Switch base xterm entry to 3.3 level. +# 9.13.26 (Mon Jun 30 22:45:45 EDT 1997) +# * Added basic4. +# * Removed rmir/smir from tv92B. +# +# 10.2.0 (Sat Feb 28 12:47:36 EST 1998): +# * add hds200 description (Walter Skorski) +# * add beterm entry (Fred Fish) +# * add Thomas Dickey's xterm-xf86-v40, xterm-8bit, xterm-16color, +# iris-color entries. +# * add emx entries. +# * Replaced unixpc entry with Benjamin Sittler's corrected version. +# * Replaced xterm/rxvt/emu/syscons entries with Thomas Dickey's +# versions. +# * remove sgr string from qnx based on report by Xiaodan Tang +# * Added u8/u9, removed rmul/smul from sun-il. +# * 4.2 tic displays \0 rather than \200. +# * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc, +# apparently based on cp-866). +# * Merged in Pavel Roskin's acsc for linux-koi8 +# * Corrected some erroneous \\\s to \. +# * 4.2 ncurses has been changed to use setaf/setab, consistent w/SysV. +# * II -> ii in pcvtXX, screen, xterm. +# * Removed \n chars following ANSI escapes in sgr & friends. +# * Updated Wyse entries. +# * h19 corrections from Tim Pierce. +# * Noted that the dm2500 has both ich and smir. +# * added pccons for the Alpha under OSF/1. +# * Added Sony NEWS workstation entries and cit101e-rv. +# * Reverted `amiga'; to Kent Polk's version, as I'm told +# the Verkuil entry messes up with Amiga Telnet. +# 10.2.1 (Sun Mar 8 18:32:04 EST 1998): +# * Corrected attributions in 10.2.0 release notes. +# * Scanned the Shuford archive for new terminfos and information. +# * Removed sgr from qnx entry (Thomas Dickey). +# * Added entries for ICL and Kokusai Data Systems terminals. +# * Incorporated NCR terminfos from the Boundless Technology FTP site. +# * Incorporated att700 from the Boundless Technology FTP site. +# * Miscellaneous contact-address and Web-page updates. +# 10.2.2 (Thu May 7 12:18:04 EDT 1998): +# * Moved Altos to OBSOLETE UNIX CONSOLES +# * Moved Hewlett-Packard terminals to OLDER TERMINAL TYPES, except for +# the 700s which go to WORKSTATION CONSOLES. +# * Major reorganization of ANSI/console/VT types. Moved vt52 to the +# obsolete section. +# * Daisy-wheel printers moved to UFO file. +# 10.2.3 (Tue May 12 22:59:11 EDT 1998): +# * Commented out hds200 is2 to avoid overflowing terminfo length limit. +# * Restored OT capabilities to UFO file. +# * add nxterm and xterm-color terminfo description (request by Cristian +# Gafton <gafton@redhat.com>). +# * Modify rxvt terminfo description to clear alternate screen before +# switching back to normal screen, for compatibility with applications +# which use xterm (reported by Manoj Kasichainula <manojk@io.com>). +# * Modify linux terminfo description to reset color palette (reported +# by Telford Tendys <telford@eng.uts.edu.au>). +# 10.2.4 (Thu Jul 2 18:13:26 EDT 1998): +# * Added minitel1 entries from Alexander Montaron. +# * Added qnxt2 from Federico Bianchi. +# 10.2.5: (Mon Aug 24 07:32:34 EDT 1998): +# * Resolve NetBSD Problem Report #4583 by adding civis/cnorm to pcvtXX. +# * dtterm enacs correction from Alexander V. Lukyanov. +# * Added ncsa-telnet, resolving Debian bug report 25341. +# * Added Francesco Potorti's tuned Wyse 99 entries. +# 10.2.6: (Mon Dec 21 00:49:43 EST 1998): +# * Home site has changed. +# 10.2.7: (Wed Mar 3 15:53:04 EST 1999): +# * Documentation fixes, mainly from David J. Mackenzie. +# +# 11.0.0: (Wed Mar 1 22:02:03 EST 2000) +# * BSD/OS console fixes from Jeffrey Honig at BSDI. +# ** TD's branch changes up to his 1999/10/23 version begin here +# * Added arm100 terminfo entries from Dave Millen. +# * Added Data General entries from Hasufin. +# * NCSA telnet entry from Francesco Potorti as modified by TD. +# * Added teraterm, crt, ms-vt100, mach, mach-bold, linux-lat, +# ofcons, wsvt25, wsvt25m, rcons, rcons-color, cygwin, amiga-8bit, +# ibm3161-C, ibm3162. +# * Updated xterm entries, BSD/OS entries, AIX entries. +# * Updated linux, iris-ansi, screen, beterm entries. +# * Added full function keys for scoansi. +# * Typo fixes for icl6404, osborne, eterm. att6386 +# * Corrected hp70092 acsc. +# * Added ibmpc from AIX 3.2.5; ibm-pc is no longer a synonym. +# * Added ibm5151 from AIX 3.2.5; ibmmono is no longer a synonym. +# * Added ibm5154 from AIX 3.2.5; ibmega is no longer a synonym. +# * Merged acsc, s0ds, s1ds, sgr0 into ibm5081 from AIX 3.2.5. +# * Merged kend, knp, kpp, mc4, mc5 into ibm3161 in from AIX 3.2.5. +# * Merged acsc into hft-c from AIX 3.2.5. +# * Updated ibm3151 from AIX 3.2.5. +# * Errors in TD's branch not accepted: ibm3101, ibm3151, ibm8514 +# * Merged msgr,colors,pairs,setb,setf into ibm3164 from AIX 3.2.5. +# ** TD's branch changes end here +# * Address updates from various contributors. +# * Historical info on basis console. +# * Ty Sarna's corrections to the amiga entry. +# * Add Kevin Turner's entry for the Wyse 85 in 8-bit mode. +# * Added 22 Bull-Questar terminal variants from AIX 4.1.5 +# * Added OSF/1 console and lft from AIX 4.1.5. +# * Move vt2220 to vt220-old, vt220-8 to vt220, introduce vt220-8bit +# from AIX 4.1.5. +# * swtp moved to UFO file (only 20 lines). +# * Added pcmw. +# 11.0.1: (Thu Mar 2 10:49:21 EST 2000): +# * Disabled hpa, vpa, in rxvt. +# * Incorporated ansi components and generic-ansi. +# +# The following sets edit modes for GNU EMACS. +# Local Variables: +# fill-prefix:"\t" +# fill-column:75 +# comment-column:0 +# comment-start-skip:"^#+" +# comment-start:"# " +# compile-command:"tic -c termtypes.master" +# End: +######## SHANTIH! SHANTIH! SHANTIH! diff --git a/source/a/file/file.SlackBuild b/source/a/file/file.SlackBuild new file mode 100755 index 000000000..aaa0ca41f --- /dev/null +++ b/source/a/file/file.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/sh + +# Copyright 2005-2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=5.03 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j7} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-file +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf file-$VERSION +tar xvf $CWD/file-$VERSION.tar.?z* || exit 1 +cd file-$VERSION || exit 1 + +# Make the default data directory /etc/file like it has always been: +zcat $CWD/file.etc.file.diff.gz | patch -p1 --verbose || exit 1 +# This is needed after the patch above: +autoreconf || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Don't spew warnings about using the flat text files +zcat $CWD/file.quiet.diff.gz | patch -p1 -E --verbose || exit 1 +# I don't know what this one does +zcat $CWD/file.short.diff.gz | patch -p1 -E --verbose || exit 1 + +# Add zisofs and crda regulatory bin detection +zcat $CWD/file.zisofs.magic.gz >> magic/Magdir/compress +zcat $CWD/file.crdaregbin.magic.gz >> magic/Magdir/crdaregbin + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --datadir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/file-$VERSION \ + --enable-fsect-man5 \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Is file really this much of a processing bottleneck? Doubtful. +# +# NOTE: Benchmarked flat files vs. .mgc June 2009, found no measurable +# difference on 3000+ files. +# +# If you really need these (let's say you're doing virus scanning +# and this *would* speed things up quite a bit) you can create +# the pre-parsed file yourself using file's -C option. +rm -f $PKG/etc/file/magic.mgc +mkdir -p $PKG/etc/file/magic +cp -a magic/Magdir/* $PKG/etc/file/magic +# After building, this works fine. /etc/file/magic/ takes up 1.2M, +# while the magic.mgc file is 1.7M. Considering a difference of 500k, +# and the potential speedup, I'm not sure it's worth the effort... +# but it does make it easier for an admin to add a small chunk of +# new magic. + +# IMHO, moving this sort of thing does not make sense. +# We'll support both the traditional and new locations. +# I hate to squat on a name as generic as "/etc/misc/", +# but it wasn't my idea. +( cd $PKG/etc ; ln -sf file misc ) + +# Strip everything for good measure: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man || exit 1 + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/file-$VERSION +cp -a \ + AUTHORS COPYING INSTALL MAINT NEWS README TODO \ + $PKG/usr/doc/file-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/file-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/file/file.crdaregbin.magic b/source/a/file/file.crdaregbin.magic new file mode 100644 index 000000000..bff01854f --- /dev/null +++ b/source/a/file/file.crdaregbin.magic @@ -0,0 +1,5 @@ +# CRDA Regulatory database file +# http://git.kernel.org/?p=linux/kernel/git/mcgrof/crda.git;a=summary +# (see regdb.h) +0 belong 0x52474442 CRDA regulatory database file +>4 belong 19 (Version 1) diff --git a/source/a/file/file.etc.file.diff b/source/a/file/file.etc.file.diff new file mode 100644 index 000000000..98e075486 --- /dev/null +++ b/source/a/file/file.etc.file.diff @@ -0,0 +1,11 @@ +--- ./configure.ac.orig 2009-05-06 15:32:25.000000000 -0500 ++++ ./configure.ac 2009-06-12 17:40:25.000000000 -0500 +@@ -47,7 +47,7 @@ + fsect=4 + ]) + +-AC_SUBST([pkgdatadir], ['$(datadir)/misc']) ++AC_SUBST([pkgdatadir], ['$(datadir)/file']) + AC_SUBST(fsect) + AM_CONDITIONAL(FSECT5, test x$fsect = x5) + diff --git a/source/a/file/file.quiet.diff b/source/a/file/file.quiet.diff new file mode 100644 index 000000000..198f62df5 --- /dev/null +++ b/source/a/file/file.quiet.diff @@ -0,0 +1,14 @@ +diff -Nur file-5.00.orig/src/apprentice.c file-5.00/src/apprentice.c +--- file-5.00.orig/src/apprentice.c 2009-02-03 14:27:51.000000000 -0600 ++++ file-5.00/src/apprentice.c 2009-02-08 22:19:19.215635230 -0600 +@@ -285,8 +285,8 @@ + + #ifndef COMPILE_ONLY + if ((rv = apprentice_map(ms, &magic, &nmagic, fn)) == -1) { +- if (ms->flags & MAGIC_CHECK) +- file_magwarn(ms, "using regular magic file `%s'", fn); ++ /* if (ms->flags & MAGIC_CHECK) ++ file_magwarn(ms, "using regular magic file `%s'", fn); */ + rv = apprentice_load(ms, &magic, &nmagic, fn, action); + if (rv != 0) + return -1; diff --git a/source/a/file/file.short.diff b/source/a/file/file.short.diff new file mode 100644 index 000000000..be47218c5 --- /dev/null +++ b/source/a/file/file.short.diff @@ -0,0 +1,12 @@ +diff -Nur file-5.00.orig/src/readelf.h file-5.00/src/readelf.h +--- file-5.00.orig/src/readelf.h 2008-05-28 15:58:16.000000000 -0500 ++++ file-5.00/src/readelf.h 2009-02-08 22:17:26.681636542 -0600 +@@ -233,7 +233,7 @@ + #define NT_OPENBSD_VERSION 1 + #define NT_DRAGONFLY_VERSION 1 + /* GNU executables (name = "GNU") */ +-#define NT_GNU_VERSION 1 ++#define NT_GNU_VERSION 0 + + /* GNU OS tags */ + #define GNU_OS_LINUX 0 diff --git a/source/a/file/file.xz.magic b/source/a/file/file.xz.magic new file mode 100644 index 000000000..9aa36e45a --- /dev/null +++ b/source/a/file/file.xz.magic @@ -0,0 +1,9 @@ + +# XZ (Lempel-Ziv-Markov chain-Algorithm) file format supported by: +# - 7-Zip <http://7-zip.org/> +# - LZMA SDK <http://7-zip.org/sdk.html> +# - XZ Utils <http://tukaani.org/xz/> +# +0 ustring \xFD7zXZ\x00 xz compressed data, +>6 ubyte&0x10 0x00 single-block stream +>6 ubyte&0x10 0x10 multi-block stream diff --git a/source/a/file/file.zisofs.magic b/source/a/file/file.zisofs.magic new file mode 100644 index 000000000..9aeb61edd --- /dev/null +++ b/source/a/file/file.zisofs.magic @@ -0,0 +1,8 @@ + +#------------------------------------------------------------------------------ +# zisofs: file(1) magic for zisofs/RockRidge compressed files +# +# from H. Peter Anvin <hpa@zytor.com> May 4, 2001 +# +0 string \x37\xE4\x53\x96\xC9\xDB\xD6\x07 zisofs/Rockridge compressed file +>8 lelong x - %d bytes diff --git a/source/a/file/slack-desc b/source/a/file/slack-desc new file mode 100644 index 000000000..96be26176 --- /dev/null +++ b/source/a/file/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +file: file (a utility to determine file type) +file: +file: This is Ian F. Darwin's 'file' utility, used to identify files. +file: Christos Zoulas has been file's maintainer since 1994. +file: +file: +file: +file: +file: +file: +file: diff --git a/source/a/findutils/findutils.SlackBuild b/source/a/findutils/findutils.SlackBuild new file mode 100755 index 000000000..aca93a0cc --- /dev/null +++ b/source/a/findutils/findutils.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.4.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-findutils + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf findutils-$VERSION +tar xvf $CWD/findutils-$VERSION.tar.?z* || exit 1 +cd findutils-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# We use slocate instead of these: +zcat $CWD/findutils.nolocate.diff.gz | patch -p1 --verbose || exit 1 + +# Don't output warnings by default. Let's make the crazy assumption that the +# user actually does know what they are doing, and will use -warn if they'd +# like to be yelled at. +zcat $CWD/findutils.no.default.options.warnings.diff.gz | patch -p1 --verbose || exit 1 + +# Feel free to change the "--without-fts" if you like find to be faster and +# less reliable. With the current setting, "find" will be non-fts(), and +# ftsfind will still be there if you want to use it. +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-locate \ + --without-fts \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/findutils-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* THANKS TODO \ + $PKG/usr/doc/findutils-$VERSION + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/findutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/findutils/findutils.no.default.options.warnings.diff b/source/a/findutils/findutils.no.default.options.warnings.diff new file mode 100644 index 000000000..2b1076731 --- /dev/null +++ b/source/a/findutils/findutils.no.default.options.warnings.diff @@ -0,0 +1,11 @@ +--- ./find/util.c.orig 2008-03-10 04:37:22.000000000 -0500 ++++ ./find/util.c 2009-02-21 15:50:38.000000000 -0600 +@@ -910,7 +910,7 @@ + + if (isatty(0)) + { +- p->warnings = true; ++ p->warnings = false; + p->literal_control_chars = false; + } + else diff --git a/source/a/findutils/findutils.nolocate.diff b/source/a/findutils/findutils.nolocate.diff new file mode 100644 index 000000000..920b57baf --- /dev/null +++ b/source/a/findutils/findutils.nolocate.diff @@ -0,0 +1,22 @@ +--- ./Makefile.am.orig 2009-02-21 15:09:54.000000000 -0600 ++++ ./Makefile.am 2009-02-21 15:18:43.000000000 -0600 +@@ -4,7 +4,7 @@ + EXTRA_DIST = COPYING ChangeLog TODO config.h.in stamp-h.in \ + THANKS import-gnulib.sh import-gnulib.config + # "tests" is the gnulib unit test dir. +-SUBDIRS = gnulib tests build-aux lib find xargs locate doc po m4 ++SUBDIRS = gnulib tests build-aux lib find xargs doc po m4 + + ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4 + +--- ./Makefile.in.orig 2009-02-21 15:09:54.000000000 -0600 ++++ ./Makefile.in 2009-02-21 15:18:56.000000000 -0600 +@@ -572,7 +572,7 @@ + THANKS import-gnulib.sh import-gnulib.config + + # "tests" is the gnulib unit test dir. +-SUBDIRS = gnulib tests build-aux lib find xargs locate doc po m4 ++SUBDIRS = gnulib tests build-aux lib find xargs doc po m4 + ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4 + TESTFILE_SUFFIXES = .exp .xo .xe .xi + all: config.h diff --git a/source/a/findutils/slack-desc b/source/a/findutils/slack-desc new file mode 100644 index 000000000..f26e47217 --- /dev/null +++ b/source/a/findutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +findutils: findutils (utilities to locate files) +findutils: +findutils: This package contains the GNU find and xargs programs. The find and +findutils: xargs implementations comply with POSIX 1003.2. They also support +findutils: some additional options, some borrowed from Unix and some unique to +findutils: GNU. +findutils: +findutils: +findutils: +findutils: +findutils: diff --git a/source/a/floppy/fdutils-5.4-20020222.diff b/source/a/floppy/fdutils-5.4-20020222.diff new file mode 100644 index 000000000..28a7b0405 --- /dev/null +++ b/source/a/floppy/fdutils-5.4-20020222.diff @@ -0,0 +1,2991 @@ +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/Changelog fdutils/Changelog +--- fdutils-5.4/Changelog Sat Jun 3 16:29:33 2000 ++++ fdutils/Changelog Sun Feb 3 23:51:42 2002 +@@ -1,3 +1,9 @@ ++020203 Fix fdmount and superformat bugs ++020203 Create /dev/fd0 before testing for existence of /dev/fd0 ++011002 Fix floppycontrol.c printf conditional on FD_DISK_CHANGED, so that ++ it works with gcc3 which apparently considers printf as a macro... ++000612 Explicitly include sysmacros.h, apparently this is needed in ++ certain environments + 000603 Released 5.4 + 000527 Fixed a couple of buffer overrun exploits and other cleanup. Made + fdutils compilable with Linux 2.3/2.4 kernels. Documentation fixes +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/INSTALL fdutils/INSTALL +--- fdutils-5.4/INSTALL Thu Jul 1 19:48:19 1999 ++++ fdutils/INSTALL Mon May 21 00:24:21 2001 +@@ -8,14 +8,17 @@ + 3. Compile the utilities: + make + +- 3. Run the MAKEFLOPPIES script to create the device files: ++ 4. Install: ++ make install ++ ++ 5. Run the MAKEFLOPPIES script to create the device files: + cd /dev + MAKEFLOPPIES + +- 4. Enjoy! ++ 6. Enjoy! + I you have any questions, feel free to ask! + +- 5. You might also want to get a recent version of mtools (later than ++ 7. You might also want to get a recent version of mtools (later than + 3.0) + + A. Knaff +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.guess fdutils/config.guess +--- fdutils-5.4/config.guess Tue Jun 17 22:37:13 1997 ++++ fdutils/config.guess Mon May 21 00:24:45 2001 +@@ -1,7 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc. +-# ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. ++ ++timestamp='2001-04-20' ++ + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 2 of the License, or +@@ -22,18 +25,92 @@ + # the same distribution terms that you use for the rest of that program. + + # Written by Per Bothner <bothner@cygnus.com>. +-# The master version of this file is at the FSF in /home/gd/gnu/lib. ++# Please send patches to <config-patches@gnu.org>. + # + # This script attempts to guess a canonical system name similar to + # config.sub. If it succeeds, it prints the system name on stdout, and + # exits with 0. Otherwise, it exits with 1. + # + # The plan is that this can be called by configure scripts if you +-# don't specify an explicit system type (host/target name). +-# +-# Only a few systems have been added to this list; please add others +-# (but try to keep the structure clean). +-# ++# don't specify an explicit build system type. ++ ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] ++ ++Output the configuration name of the system \`$me' is run on. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.guess ($timestamp) ++ ++Originally written by Per Bothner. ++Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000 ++Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit 0 ;; ++ --version | -v ) ++ echo "$version" ; exit 0 ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit 0 ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" >&2 ++ exit 1 ;; ++ * ) ++ break ;; ++ esac ++done ++ ++if test $# != 0; then ++ echo "$me: too many arguments$help" >&2 ++ exit 1 ++fi ++ ++ ++dummy=dummy-$$ ++trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int dummy(){}" > $dummy.c ++ for c in cc gcc c89 ; do ++ ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ++ if test $? = 0 ; then ++ CC_FOR_BUILD="$c"; break ++ fi ++ done ++ rm -f $dummy.c $dummy.o $dummy.rel ++ if test x"$CC_FOR_BUILD" = x ; then ++ CC_FOR_BUILD=no_compiler_found ++ fi ++ ;; ++ ,,*) CC_FOR_BUILD=$CC ;; ++ ,*,*) CC_FOR_BUILD=$HOST_CC ;; ++esac + + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. + # (ghazi@noc.rutgers.edu 8/24/94.) +@@ -43,37 +120,162 @@ + + UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown + UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 +- + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++ *:NetBSD:*:*) ++ # Netbsd (nbsd) targets should (where applicable) match one or ++ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently ++ # switched to ELF, *-*-netbsd* would select the old ++ # object file format. This provides both forward ++ # compatibility and a consistent mechanism for selecting the ++ # object file format. ++ # Determine the machine/vendor (is the vendor relevant). ++ case "${UNAME_MACHINE}" in ++ amiga) machine=m68k-unknown ;; ++ arm32) machine=arm-unknown ;; ++ atari*) machine=m68k-atari ;; ++ sun3*) machine=m68k-sun ;; ++ mac68k) machine=m68k-apple ;; ++ macppc) machine=powerpc-apple ;; ++ hp3[0-9][05]) machine=m68k-hp ;; ++ ibmrt|romp-ibm) machine=romp-ibm ;; ++ *) machine=${UNAME_MACHINE}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE}" in ++ i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) ++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep __ELF__ >/dev/null ++ then ++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). ++ # Return netbsd for either. FIX? ++ os=netbsd ++ else ++ os=netbsdelf ++ fi ++ ;; ++ *) ++ os=netbsd ++ ;; ++ esac ++ # The OS release ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: ++ # contains redundant information, the shorter form: ++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. ++ echo "${machine}-${os}${release}" ++ exit 0 ;; + alpha:OSF1:*:*) ++ if test $UNAME_RELEASE = "V4.0"; then ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ++ fi + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. +- echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` ++ cat <<EOF >$dummy.s ++ .data ++\$Lformat: ++ .byte 37,100,45,37,120,10,0 # "%d-%x\n" ++ ++ .text ++ .globl main ++ .align 4 ++ .ent main ++main: ++ .frame \$30,16,\$26,0 ++ ldgp \$29,0(\$27) ++ .prologue 1 ++ .long 0x47e03d80 # implver \$0 ++ lda \$2,-1 ++ .long 0x47e20c21 # amask \$2,\$1 ++ lda \$16,\$Lformat ++ mov \$0,\$17 ++ not \$1,\$18 ++ jsr \$26,printf ++ ldgp \$29,0(\$26) ++ mov 0,\$16 ++ jsr \$26,exit ++ .end main ++EOF ++ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null ++ if test "$?" = 0 ; then ++ case `./$dummy` in ++ 0-0) ++ UNAME_MACHINE="alpha" ++ ;; ++ 1-0) ++ UNAME_MACHINE="alphaev5" ++ ;; ++ 1-1) ++ UNAME_MACHINE="alphaev56" ++ ;; ++ 1-101) ++ UNAME_MACHINE="alphapca56" ++ ;; ++ 2-303) ++ UNAME_MACHINE="alphaev6" ++ ;; ++ 2-307) ++ UNAME_MACHINE="alphaev67" ++ ;; ++ esac ++ fi ++ rm -f $dummy.s $dummy ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ exit 0 ;; ++ Alpha\ *:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # Should we change UNAME_MACHINE based on the output of uname instead ++ # of the specific Alpha model? ++ echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) +- echo m68k-cbm-sysv4 ++ echo m68k-unknown-sysv4 + exit 0;; +- amiga:NetBSD:*:*) +- echo m68k-cbm-netbsd${UNAME_RELEASE} +- exit 0 ;; + amiga:OpenBSD:*:*) +- echo m68k-cbm-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ *:[Aa]miga[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-amigaos ++ exit 0 ;; ++ arc64:OpenBSD:*:*) ++ echo mips64el-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ arc:OpenBSD:*:*) ++ echo mipsel-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ hkmips:OpenBSD:*:*) ++ echo mips-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ pmax:OpenBSD:*:*) ++ echo mipsel-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ sgi:OpenBSD:*:*) ++ echo mips-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ wgrisc:OpenBSD:*:*) ++ echo mipsel-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ *:OS/390:*:*) ++ echo i370-ibm-openedition ++ exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; +- Pyramid*:OSx*:*:*|MIS*:OSx*:*:*) ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) ++ echo hppa1.1-hitachi-hiuxmpp ++ exit 0;; ++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 +@@ -81,9 +283,12 @@ + echo pyramid-pyramid-bsd + fi + exit 0 ;; +- NILE:*:*:dcosx) ++ NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; ++ sun4H:SunOS:5.*:*) ++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; +@@ -108,26 +313,61 @@ + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; ++ sun*:*:4.2BSD:*) ++ UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 ++ case "`/bin/arch`" in ++ sun3) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ ;; ++ sun4) ++ echo sparc-sun-sunos${UNAME_RELEASE} ++ ;; ++ esac ++ exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; +- atari*:NetBSD:*:*) +- echo m68k-atari-netbsd${UNAME_RELEASE} +- exit 0 ;; + atari*:OpenBSD:*:*) +- echo m68k-atari-openbsd${UNAME_RELEASE} ++ echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; +- sun3*:NetBSD:*:*) +- echo m68k-sun-netbsd${UNAME_RELEASE} ++ # The situation for MiNT is a little confusing. The machine name ++ # can be virtually everything (everything which is not ++ # "atarist" or "atariste" at least should have a processor ++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT" ++ # to the lowercase version "mint" (or "freemint"). Finally ++ # the system name "TOS" denotes a system which is actually not ++ # MiNT. But MiNT is downward compatible to TOS, so this should ++ # be no problem. ++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; +- sun3*:OpenBSD:*:*) +- echo m68k-sun-openbsd${UNAME_RELEASE} ++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit 0 ;; ++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; +- mac68k:NetBSD:*:*) +- echo m68k-apple-netbsd${UNAME_RELEASE} ++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit 0 ;; ++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit 0 ;; ++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit 0 ;; ++ sun3*:OpenBSD:*:*) ++ echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) +- echo m68k-apple-openbsd${UNAME_RELEASE} ++ echo m68k-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ mvme68k:OpenBSD:*:*) ++ echo m68k-unknown-openbsd${UNAME_RELEASE} ++ exit 0 ;; ++ mvme88k:OpenBSD:*:*) ++ echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} +@@ -141,9 +381,17 @@ + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; ++ 2020:CLIX:*:* | 2430:CLIX:*:*) ++ echo clipper-intergraph-clix${UNAME_RELEASE} ++ exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) +- sed 's/^ //' << EOF >dummy.c +- int main (argc, argv) int argc; char **argv; { ++ sed 's/^ //' << EOF >$dummy.c ++#ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ ++ int main (int argc, char *argv[]) { ++#else ++ int main (argc, argv) int argc; char *argv[]; { ++#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); +@@ -158,12 +406,15 @@ + exit (-1); + } + EOF +- ${CC-cc} dummy.c -o dummy \ +- && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ +- && rm dummy.c dummy && exit 0 +- rm -f dummy.c dummy ++ $CC_FOR_BUILD $dummy.c -o $dummy \ ++ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ ++ && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; +@@ -179,15 +430,18 @@ + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` +- if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then +- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ +- -o ${TARGET_BINARY_INTERFACE}x = x ] ; then ++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] ++ then ++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ ++ [ ${TARGET_BINARY_INTERFACE}x = x ] ++ then + echo m88k-dg-dgux${UNAME_RELEASE} +- else ++ else + echo m88k-dg-dguxbcs${UNAME_RELEASE} ++ fi ++ else ++ echo i586-dg-dgux${UNAME_RELEASE} + fi +- else echo i586-dg-dgux${UNAME_RELEASE} +- fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 +@@ -208,12 +462,20 @@ + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' +- i?86:AIX:*:*) ++ i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; ++ ia64:AIX:*:*) ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ++ exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then +- sed 's/^ //' << EOF >dummy.c ++ sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + + main() +@@ -224,8 +486,8 @@ + exit(0); + } + EOF +- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 +- rm -f dummy.c dummy ++ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 +@@ -233,8 +495,9 @@ + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; +- *:AIX:*:4) +- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then ++ *:AIX:*:[45]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` ++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc +@@ -242,7 +505,7 @@ + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else +- IBM_REV=4.${UNAME_RELEASE} ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; +@@ -252,7 +515,7 @@ + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; +- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) +@@ -267,18 +530,75 @@ + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; +- 9000/[3478]??:HP-UX:*:*) ++ 9000/[34678]??:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; +- 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;; +- 9000/8?? ) HP_ARCH=hppa1.0 ;; ++ 9000/[678][0-9][0-9]) ++ case "${HPUX_REV}" in ++ 11.[0-9][0-9]) ++ if [ -x /usr/bin/getconf ]; then ++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; ++ esac ;; ++ esac ++ fi ;; ++ esac ++ if [ "${HP_ARCH}" = "" ]; then ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include <stdlib.h> ++ #include <unistd.h> ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } ++EOF ++ (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` ++ if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi ++ rm -f $dummy.c $dummy ++ fi ;; + esac +- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit 0 ;; + 3050*:HI-UX:*:*) +- sed 's/^ //' << EOF >dummy.c ++ sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int + main () +@@ -303,8 +623,8 @@ + exit (0); + } + EOF +- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 +- rm -f dummy.c dummy ++ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) +@@ -313,13 +633,16 @@ + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; ++ *9??*:MPE/iX:*:*) ++ echo hppa1.0-hp-mpeix ++ exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; +- i?86:OSF1:*:*) ++ i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else +@@ -329,6 +652,9 @@ + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; ++ hppa*:OpenBSD:*:*) ++ echo hppa-unknown-openbsd ++ exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; +@@ -359,104 +685,297 @@ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) +- echo t90-cray-unicos${UNAME_RELEASE} ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit 0 ;; ++ CRAY*T3D:*:*:*) ++ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit 0 ;; ++ CRAY*T3E:*:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit 0 ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; +- F300:UNIX_System_V:*:*) +- FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` ++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) ++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; +- F301:UNIX_System_V:*:*) +- echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` +- exit 0 ;; +- hp3[0-9][05]:NetBSD:*:*) +- echo m68k-hp-netbsd${UNAME_RELEASE} ++ hp300:OpenBSD:*:*) ++ echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; +- hp3[0-9][05]:OpenBSD:*:*) +- echo m68k-hp-openbsd${UNAME_RELEASE} +- exit 0 ;; +- i?86:BSD/386:*:* | *:BSD/OS:*:*) ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; ++ sparc*:BSD/OS:*:*) ++ echo sparc-unknown-bsdi${UNAME_RELEASE} ++ exit 0 ;; ++ *:BSD/OS:*:*) ++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ++ exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; +- *:NetBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` +- exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) +- echo i386-pc-cygwin32 ++ echo ${UNAME_MACHINE}-pc-cygwin ++ exit 0 ;; ++ i*:MINGW*:*) ++ echo ${UNAME_MACHINE}-pc-mingw32 ++ exit 0 ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit 0 ;; ++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we ++ # UNAME_MACHINE based on the output of uname instead of i386? ++ echo i386-pc-interix ++ exit 0 ;; ++ i*:UWIN*:*) ++ echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) +- echo powerpcle-unknown-cygwin32 ++ echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) +- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; +- *:Linux:*:*) +- # The BFD linker knows what the default object file format is, so +- # first see if it will tell us. +- ld_help_string=`ld --help 2>&1` +- if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then +- echo "${UNAME_MACHINE}-pc-linux" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then +- echo "${UNAME_MACHINE}-pc-linux-aout" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then +- echo "${UNAME_MACHINE}-pc-linux-coff" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then +- echo "${UNAME_MACHINE}-unknown-linux" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then +- echo "${UNAME_MACHINE}-unknown-linux-aout" ; exit 0 +- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then +- echo "powerpc-unknown-linux" ; exit 0 +- elif test "${UNAME_MACHINE}" = "alpha" ; then +- echo alpha-unknown-linux ; exit 0 +- elif test "${UNAME_MACHINE}" = "sparc" ; then +- echo sparc-unknown-linux ; exit 0 +- else +- # Either a pre-BFD a.out linker (linux-oldld) or one that does not give us +- # useful --help. Gcc wants to distinguish between linux-oldld and linux-aout. +- test ! -d /usr/lib/ldscripts/. \ +- && echo "${UNAME_MACHINE}-pc-linux-oldld" && exit 0 +- # Determine whether the default compiler is a.out or elf +- cat >dummy.c <<EOF ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit 0 ;; ++ arm*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux ++ exit 0 ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; ++ mips:Linux:*:*) ++ cat >$dummy.c <<EOF ++#ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ ++int main (int argc, char *argv[]) { ++#else ++int main (argc, argv) int argc; char *argv[]; { ++#endif ++#ifdef __MIPSEB__ ++ printf ("%s-unknown-linux-gnu\n", argv[1]); ++#endif ++#ifdef __MIPSEL__ ++ printf ("%sel-unknown-linux-gnu\n", argv[1]); ++#endif ++ return 0; ++} ++EOF ++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy ++ ;; ++ ppc:Linux:*:*) ++ # Determine Lib Version ++ cat >$dummy.c <<EOF ++#include <features.h> ++#if defined(__GLIBC__) ++extern char __libc_version[]; ++extern char __libc_release[]; ++#endif + main(argc, argv) +-int argc; +-char *argv[]; ++ int argc; ++ char *argv[]; + { ++#if defined(__GLIBC__) ++ printf("%s %s\n", __libc_version, __libc_release); ++#else ++ printf("unknown\n"); ++#endif ++ return 0; ++} ++EOF ++ LIBC="" ++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ++ if test "$?" = 0 ; then ++ ./$dummy | grep 1\.99 > /dev/null ++ if test "$?" = 0 ; then LIBC="libc1" ; fi ++ fi ++ rm -f $dummy.c $dummy ++ echo powerpc-unknown-linux-gnu${LIBC} ++ exit 0 ;; ++ alpha:Linux:*:*) ++ cat <<EOF >$dummy.s ++ .data ++ \$Lformat: ++ .byte 37,100,45,37,120,10,0 # "%d-%x\n" ++ .text ++ .globl main ++ .align 4 ++ .ent main ++ main: ++ .frame \$30,16,\$26,0 ++ ldgp \$29,0(\$27) ++ .prologue 1 ++ .long 0x47e03d80 # implver \$0 ++ lda \$2,-1 ++ .long 0x47e20c21 # amask \$2,\$1 ++ lda \$16,\$Lformat ++ mov \$0,\$17 ++ not \$1,\$18 ++ jsr \$26,printf ++ ldgp \$29,0(\$26) ++ mov 0,\$16 ++ jsr \$26,exit ++ .end main ++EOF ++ LIBC="" ++ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null ++ if test "$?" = 0 ; then ++ case `./$dummy` in ++ 0-0) UNAME_MACHINE="alpha" ;; ++ 1-0) UNAME_MACHINE="alphaev5" ;; ++ 1-1) UNAME_MACHINE="alphaev56" ;; ++ 1-101) UNAME_MACHINE="alphapca56" ;; ++ 2-303) UNAME_MACHINE="alphaev6" ;; ++ 2-307) UNAME_MACHINE="alphaev67" ;; ++ esac ++ objdump --private-headers $dummy | \ ++ grep ld.so.1 > /dev/null ++ if test "$?" = 0 ; then ++ LIBC="libc1" ++ fi ++ fi ++ rm -f $dummy.s $dummy ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit 0 ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++ PA7*) echo hppa1.1-unknown-linux-gnu ;; ++ PA8*) echo hppa2.0-unknown-linux-gnu ;; ++ *) echo hppa-unknown-linux-gnu ;; ++ esac ++ exit 0 ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit 0 ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux ++ exit 0 ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit 0 ;; ++ x86_64:Linux:*:*) ++ echo x86_64-unknown-linux-gnu ++ exit 0 ;; ++ i*86:Linux:*:*) ++ # The BFD linker knows what the default object file format is, so ++ # first see if it will tell us. cd to the root directory to prevent ++ # problems with other programs or directories called `ld' in the path. ++ ld_supported_emulations=`cd /; ld --help 2>&1 \ ++ | sed -ne '/supported emulations:/!d ++ s/[ ][ ]*/ /g ++ s/.*supported emulations: *// ++ s/ .*// ++ p'` ++ case "$ld_supported_emulations" in ++ i*86linux) ++ echo "${UNAME_MACHINE}-pc-linux-gnuaout" ++ exit 0 ++ ;; ++ elf_i*86) ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ++ ;; ++ i*86coff) ++ echo "${UNAME_MACHINE}-pc-linux-gnucoff" ++ exit 0 ++ ;; ++ esac ++ # Either a pre-BFD a.out linker (linux-gnuoldld) ++ # or one that does not give us useful --help. ++ # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. ++ # If ld does not provide *any* "supported emulations:" ++ # that means it is gnuoldld. ++ test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 ++ case "${UNAME_MACHINE}" in ++ i*86) ++ VENDOR=pc; ++ ;; ++ *) ++ VENDOR=unknown; ++ ;; ++ esac ++ # Determine whether the default compiler is a.out or elf ++ cat >$dummy.c <<EOF ++#include <features.h> ++#ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ ++ int main (int argc, char *argv[]) { ++#else ++ int main (argc, argv) int argc; char *argv[]; { ++#endif + #ifdef __ELF__ +- printf ("%s-pc-linux\n", argv[1]); ++# ifdef __GLIBC__ ++# if __GLIBC__ >= 2 ++ printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); ++# else ++ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); ++# endif ++# else ++ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); ++# endif + #else +- printf ("%s-pc-linux-aout\n", argv[1]); ++ printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); + #endif + return 0; + } + EOF +- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 +- rm -f dummy.c dummy +- fi ;; ++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 ++ rm -f $dummy.c $dummy ++ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ++ ;; + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions + # are messed up and put the nodename in both sysname and nodename. +- i?86:DYNIX/ptx:4*:*) ++ i*86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; +- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) ++ i*86:UNIX_SV:4.2MP:2.*) ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, ++ # I just have to hope. -- rms. ++ # Use sysv4.2uw... so that sysv4* matches it. ++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} ++ exit 0 ;; ++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) ++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then +- echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} ++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else +- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; +- i?86:*:3.2:*) ++ i*86:*:5:7*) ++ # Fixed at (any) Pentium or better ++ UNAME_MACHINE=i586 ++ if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then ++ echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} ++ else ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} ++ fi ++ exit 0 ;; ++ i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL +@@ -465,11 +984,24 @@ + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 ++ (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ ++ && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit 0 ;; ++ pc:*:*:*) ++ # Left here for compatibility: ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i386. ++ echo i386-pc-msdosdjgpp ++ exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; +@@ -489,7 +1021,7 @@ + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; +- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) ++ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` +@@ -500,24 +1032,30 @@ + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; +- m68*:LynxOS:2.*:*) ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; +- i?86:LynxOS:2.*:*) ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; +- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) ++ rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; ++ RM*:ReliantUNIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; +@@ -529,6 +1067,10 @@ + echo ns32k-sni-sysv + fi + exit 0 ;; ++ PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> ++ echo i586-unisys-sysv4 ++ exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm +@@ -541,23 +1083,101 @@ + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; +- R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) ++ news*:NEWS-OS:6*:*) ++ echo mips-sony-newsos6 ++ exit 0 ;; ++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; +- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says <Richard.M.Bartel@ccMail.Census.GOV> +- echo i586-unisys-sysv4 +- exit 0 ;; ++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. ++ echo powerpc-be-beos ++ exit 0 ;; ++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. ++ echo powerpc-apple-beos ++ exit 0 ;; ++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. ++ echo i586-pc-beos ++ exit 0 ;; ++ SX-4:SUPER-UX:*:*) ++ echo sx4-nec-superux${UNAME_RELEASE} ++ exit 0 ;; ++ SX-5:SUPER-UX:*:*) ++ echo sx5-nec-superux${UNAME_RELEASE} ++ exit 0 ;; ++ Power*:Rhapsody:*:*) ++ echo powerpc-apple-rhapsody${UNAME_RELEASE} ++ exit 0 ;; ++ *:Rhapsody:*:*) ++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ++ exit 0 ;; ++ *:Darwin:*:*) ++ echo `uname -p`-apple-darwin${UNAME_RELEASE} ++ exit 0 ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ if test "${UNAME_MACHINE}" = "x86pc"; then ++ UNAME_MACHINE=pc ++ fi ++ echo `uname -p`-${UNAME_MACHINE}-nto-qnx ++ exit 0 ;; ++ *:QNX:*:4*) ++ echo i386-pc-qnx ++ exit 0 ;; ++ NSR-[KW]:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit 0 ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit 0 ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit 0 ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit 0 ;; ++ *:Plan9:*:*) ++ # "uname -m" is not consistent, so use $cputype instead. 386 ++ # is converted to i386 for consistency with other x86 ++ # operating systems. ++ if test "$cputype" = "386"; then ++ UNAME_MACHINE=i386 ++ else ++ UNAME_MACHINE="$cputype" ++ fi ++ echo ${UNAME_MACHINE}-unknown-plan9 ++ exit 0 ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit 0 ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit 0 ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit 0 ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit 0 ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit 0 ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit 0 ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit 0 ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 + #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +-cat >dummy.c <<EOF ++cat >$dummy.c <<EOF + #ifdef _SEQUENT_ + # include <sys/types.h> + # include <sys/utsname.h> +@@ -595,7 +1215,10 @@ + #endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; +- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); ++ if (version < 4) ++ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); ++ else ++ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); + #endif + +@@ -640,11 +1263,24 @@ + #endif + + #if defined (vax) +-#if !defined (ultrix) +- printf ("vax-dec-bsd\n"); exit (0); +-#else +- printf ("vax-dec-ultrix\n"); exit (0); +-#endif ++# if !defined (ultrix) ++# include <sys/param.h> ++# if defined (BSD) ++# if BSD == 43 ++ printf ("vax-dec-bsd4.3\n"); exit (0); ++# else ++# if BSD == 199006 ++ printf ("vax-dec-bsd4.3reno\n"); exit (0); ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# endif ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# else ++ printf ("vax-dec-ultrix\n"); exit (0); ++# endif + #endif + + #if defined (alliant) && defined (i860) +@@ -655,8 +1291,8 @@ + } + EOF + +-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 +-rm -f dummy.c dummy ++$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 ++rm -f $dummy.c $dummy + + # Apollos put the system type in the environment. + +@@ -688,6 +1324,48 @@ + esac + fi + +-#echo '(Unable to guess system type)' 1>&2 ++cat >&2 <<EOF ++$0: unable to guess system type ++ ++This script, last modified $timestamp, has failed to recognize ++the operating system you are using. It is advised that you ++download the most up to date version of the config scripts from ++ ++ ftp://ftp.gnu.org/pub/gnu/config/ ++ ++If the version you run ($0) is already up to date, please ++send the following data and any information you think might be ++pertinent to <config-patches@gnu.org> in order to provide the needed ++information to handle your system. ++ ++config.guess timestamp = $timestamp ++ ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null` ++ ++hostinfo = `(hostinfo) 2>/dev/null` ++/bin/universe = `(/bin/universe) 2>/dev/null` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` ++/bin/arch = `(/bin/arch) 2>/dev/null` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` ++ ++UNAME_MACHINE = ${UNAME_MACHINE} ++UNAME_RELEASE = ${UNAME_RELEASE} ++UNAME_SYSTEM = ${UNAME_SYSTEM} ++UNAME_VERSION = ${UNAME_VERSION} ++EOF + + exit 1 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.h.in fdutils/config.h.in +--- fdutils-5.4/config.h.in Fri Jul 2 23:37:12 1999 ++++ fdutils/config.h.in Mon May 21 00:24:53 2001 +@@ -14,3 +14,6 @@ + + /* Define if you have the <linux/xia_fs.h> header file. */ + #undef HAVE_LINUX_XIA_FS_H ++ ++/* Define if you have the <sys/sysmacros.h> header file. */ ++#undef HAVE_SYS_SYSMACROS_H +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.sub fdutils/config.sub +--- fdutils-5.4/config.sub Sun Mar 2 18:43:27 1997 ++++ fdutils/config.sub Mon May 21 00:24:43 2001 +@@ -1,6 +1,10 @@ + #! /bin/sh +-# Configuration validation subroutine script, version 1.1. +-# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. ++# Configuration validation subroutine script. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. ++ ++timestamp='2001-05-11' ++ + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software + # can handle that machine. It does not imply ALL GNU software can. +@@ -25,6 +29,8 @@ + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + ++# Please send patches to <config-patches@gnu.org>. ++# + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with code 1. +@@ -45,30 +51,73 @@ + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + +-if [ x$1 = x ] +-then +- echo Configuration name missing. 1>&2 +- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 +- echo "or $0 ALIAS" 1>&2 +- echo where ALIAS is a recognized configuration type. 1>&2 +- exit 1 +-fi ++me=`echo "$0" | sed -e 's,.*/,,'` + +-# First pass through any local machine types. +-case $1 in +- *local*) +- echo $1 +- exit 0 +- ;; +- *) +- ;; ++usage="\ ++Usage: $0 [OPTION] CPU-MFR-OPSYS ++ $0 [OPTION] ALIAS ++ ++Canonicalize a configuration name. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.sub ($timestamp) ++ ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 ++Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit 0 ;; ++ --version | -v ) ++ echo "$version" ; exit 0 ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit 0 ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" ++ exit 1 ;; ++ ++ *local*) ++ # First pass through any local machine types. ++ echo $1 ++ exit 0;; ++ ++ * ) ++ break ;; ++ esac ++done ++ ++case $# in ++ 0) echo "$me: missing argument$help" >&2 ++ exit 1;; ++ 1) ;; ++ *) echo "$me: too many arguments$help" >&2 ++ exit 1;; + esac + + # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- linux-gnu*) ++ nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -94,15 +143,25 @@ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple) ++ -apple | -axis) + os= + basic_machine=$1 + ;; ++ -sim | -cisco | -oki | -wec | -winbond) ++ os= ++ basic_machine=$1 ++ ;; ++ -scout) ++ ;; ++ -wrs) ++ os=-vxworks ++ basic_machine=$1 ++ ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) +- os=sco3.2v5 ++ os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) +@@ -121,6 +180,9 @@ + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -udk*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +@@ -143,25 +205,50 @@ + -psos*) + os=-psos + ;; ++ -mint | -mint[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; + esac + + # Decode aliases for certain CPU-COMPANY combinations. + case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. +- tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \ +- | arme[lb] | pyramid \ +- | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ +- | alpha | we32k | ns16k | clipper | i370 | sh \ +- | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ +- | pdp11 | mips64el | mips64orion | mips64orionel \ +- | sparc | sparclet | sparclite | sparc64) ++ tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ ++ | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ ++ | pyramid | mn10200 | mn10300 | tron | a29k \ ++ | 580 | i960 | h8300 \ ++ | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ ++ | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ ++ | hppa64 \ ++ | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ ++ | alphaev6[78] \ ++ | we32k | ns16k | clipper | i370 | sh | sh[34] \ ++ | powerpc | powerpcle \ ++ | 1750a | dsp16xx | pdp10 | pdp11 \ ++ | mips16 | mips64 | mipsel | mips64el \ ++ | mips64orion | mips64orionel | mipstx39 | mipstx39el \ ++ | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ ++ | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \ ++ | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \ ++ | v850 | c4x \ ++ | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \ ++ | pj | pjl | h8500 | z8k) + basic_machine=$basic_machine-unknown + ;; ++ m6811 | m68hc11 | m6812 | m68hc12) ++ # Motorola 68HC11/12. ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65 | z8k) ++ ;; ++ + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. +- i[3456]86) ++ i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. +@@ -170,23 +257,52 @@ + exit 1 + ;; + # Recognize the basic CPU types with company name. +- vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ +- | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ +- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ +- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ +- | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ +- | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ +- | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ +- | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) ++ # FIXME: clean up the formatting here. ++ vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ ++ | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ ++ | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ ++ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ ++ | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ ++ | xmp-* | ymp-* \ ++ | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ ++ | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ ++ | hppa2.0n-* | hppa64-* \ ++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ ++ | alphaev6[78]-* \ ++ | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ ++ | clipper-* | orion-* \ ++ | sparclite-* | pdp10-* | pdp11-* | sh-* | sh[34]-* | sh[34]eb-* \ ++ | powerpc-* | powerpcle-* | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \ ++ | mips16-* | mips64-* | mipsel-* \ ++ | mips64el-* | mips64orion-* | mips64orionel-* \ ++ | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ ++ | mipstx39-* | mipstx39el-* | mcore-* \ ++ | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ ++ | [cjt]90-* \ ++ | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ ++ | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \ ++ | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. ++ 386bsd) ++ basic_machine=i386-unknown ++ os=-bsd ++ ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; ++ a29khif) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ os=-scout ++ ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; +@@ -202,20 +318,24 @@ + os=-sysv + ;; + amiga | amiga-*) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + ;; +- amigados) +- basic_machine=m68k-cbm +- os=-amigados ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ os=-amigaos + ;; + amigaunix | amix) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ os=-bsd ++ ;; + aux) + basic_machine=m68k-apple + os=-aux +@@ -252,13 +372,16 @@ + basic_machine=cray2-cray + os=-unicos + ;; +- [ctj]90-cray) +- basic_machine=c90-cray ++ [cjt]90) ++ basic_machine=${basic_machine}-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; ++ cris | cris-* | etrax*) ++ basic_machine=cris-axis ++ ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; +@@ -292,6 +415,10 @@ + encore | umax | mmax) + basic_machine=ns32k-encore + ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ os=-ose ++ ;; + fx2800) + basic_machine=i860-alliant + ;; +@@ -302,6 +429,10 @@ + basic_machine=tron-gmicro + os=-sysv + ;; ++ go32) ++ basic_machine=i386-pc ++ os=-go32 ++ ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 +@@ -310,6 +441,14 @@ + basic_machine=h8300-hitachi + os=-hms + ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ os=-xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ os=-hms ++ ;; + harris) + basic_machine=m88k-harris + os=-sysv3 +@@ -325,13 +464,30 @@ + basic_machine=m68k-hp + os=-hpux + ;; ++ hp3k9[0-9][0-9] | hp9[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; +- hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) ++ hp9k6[0-9][0-9] | hp6[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k7[0-79][0-9] | hp7[0-79][0-9]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k78[0-9] | hp78[0-9]) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) +@@ -340,27 +496,42 @@ + hppa-next) + os=-nextstep3 + ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ os=-osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ os=-proelf ++ ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm +- os=-mvs + ;; + # I'm not sure what "Sysv32" means. Should this be sysv3.2? +- i[3456]86v32) ++ i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; +- i[3456]86v4*) ++ i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; +- i[3456]86v) ++ i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; +- i[3456]86sol2) ++ i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; ++ i386mach) ++ basic_machine=i386-mach ++ os=-mach ++ ;; ++ i386-vsta | vsta) ++ basic_machine=i386-unknown ++ os=-vsta ++ ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in +@@ -386,19 +557,59 @@ + basic_machine=ns32k-utek + os=-sysv + ;; ++ mingw32) ++ basic_machine=i386-pc ++ os=-mingw32 ++ ;; + miniframe) + basic_machine=m68000-convergent + ;; ++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++ mipsel*-linux*) ++ basic_machine=mipsel-unknown ++ os=-linux-gnu ++ ;; ++ mips*-linux*) ++ basic_machine=mips-unknown ++ os=-linux-gnu ++ ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; ++ mmix*) ++ basic_machine=mmix-knuth ++ os=-mmixware ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ os=-msdos ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ os=-mvs ++ ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; ++ netbsd386) ++ basic_machine=i386-unknown ++ os=-netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ os=-linux ++ ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos +@@ -411,6 +622,10 @@ + basic_machine=mips-sony + os=-newsos + ;; ++ necv70) ++ basic_machine=v70-nec ++ os=-sysv ++ ;; + next | m*-next ) + basic_machine=m68k-next + case $os in +@@ -436,9 +651,32 @@ + basic_machine=i960-intel + os=-nindy + ;; ++ mon960) ++ basic_machine=i960-intel ++ os=-mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ os=-nonstopux ++ ;; + np1) + basic_machine=np1-gould + ;; ++ nsr-tandem) ++ basic_machine=nsr-tandem ++ ;; ++ op50n-* | op60c-*) ++ basic_machine=hppa1.1-oki ++ os=-proelf ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ os=-ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ os=-os68k ++ ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 +@@ -456,30 +694,28 @@ + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; +- pentium | p5) +- basic_machine=i586-intel ++ pentium | p5 | k5 | k6 | nexgen) ++ basic_machine=i586-pc ++ ;; ++ pentiumpro | p6 | 6x86 | athlon) ++ basic_machine=i686-pc + ;; +- pentiumpro | p6) +- basic_machine=i686-intel ++ pentiumii | pentium2) ++ basic_machine=i686-pc + ;; +- pentium-* | p5-*) ++ pentium-* | p5-* | k5-* | k6-* | nexgen-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; +- pentiumpro-* | p6-*) ++ pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; +- k5) +- # We don't have specific support for AMD's K5 yet, so just call it a Pentium +- basic_machine=i586-amd +- ;; +- nexen) +- # We don't have specific support for Nexgen yet, so just call it a Pentium +- basic_machine=i586-nexgen ++ pentiumii-* | pentium2-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; +- power) basic_machine=rs6000-ibm ++ power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; +@@ -494,12 +730,24 @@ + ps2) + basic_machine=i386-ibm + ;; ++ pw32) ++ basic_machine=i586-unknown ++ os=-pw32 ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; ++ sa29200) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; + sequent) + basic_machine=i386-sequent + ;; +@@ -507,6 +755,10 @@ + basic_machine=sh-hitachi + os=-hms + ;; ++ sparclite-wrs) ++ basic_machine=sparclite-wrs ++ os=-vxworks ++ ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 +@@ -514,6 +766,13 @@ + spur) + basic_machine=spur-unknown + ;; ++ st2000) ++ basic_machine=m68k-tandem ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ os=-sysv4 ++ ;; + sun2) + basic_machine=m68000-sun + ;; +@@ -554,10 +813,28 @@ + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; ++ sv1) ++ basic_machine=sv1-cray ++ os=-unicos ++ ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; ++ t3e) ++ basic_machine=t3e-cray ++ os=-unicos ++ ;; ++ tic54x | c54x*) ++ basic_machine=tic54x-unknown ++ os=-coff ++ ;; ++ tx39) ++ basic_machine=mipstx39-unknown ++ ;; ++ tx39el) ++ basic_machine=mipstx39el-unknown ++ ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; +@@ -569,6 +846,10 @@ + basic_machine=a29k-nyu + os=-sym1 + ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ os=-none ++ ;; + vaxv) + basic_machine=vax-dec + os=-sysv +@@ -577,7 +858,7 @@ + basic_machine=vax-dec + os=-vms + ;; +- vpp*|vx|vx-*) ++ vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) +@@ -592,6 +873,14 @@ + basic_machine=a29k-wrs + os=-vxworks + ;; ++ w65*) ++ basic_machine=w65-wdc ++ os=-none ++ ;; ++ w89k-*) ++ basic_machine=hppa1.1-winbond ++ os=-proelf ++ ;; + xmp) + basic_machine=xmp-cray + os=-unicos +@@ -599,6 +888,10 @@ + xps | xps100) + basic_machine=xps100-honeywell + ;; ++ z8k-*-coff) ++ basic_machine=z8k-unknown ++ os=-sim ++ ;; + none) + basic_machine=none-none + os=-none +@@ -606,8 +899,21 @@ + + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ basic_machine=hppa1.1-winbond ++ ;; ++ op50n) ++ basic_machine=hppa1.1-oki ++ ;; ++ op60c) ++ basic_machine=hppa1.1-oki ++ ;; + mips) +- basic_machine=mips-mips ++ if [ x$os = x-linux-gnu ]; then ++ basic_machine=mips-unknown ++ else ++ basic_machine=mips-mips ++ fi + ;; + romp) + basic_machine=romp-ibm +@@ -618,13 +924,20 @@ + vax) + basic_machine=vax-dec + ;; ++ pdp10) ++ # there are many clones, so DEC is not a safe bet ++ basic_machine=pdp10-unknown ++ ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; +- sparc) ++ sh3 | sh4) ++ basic_machine=sh-unknown ++ ;; ++ sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) +@@ -636,6 +949,19 @@ + orion105) + basic_machine=clipper-highlevel + ;; ++ mac | mpw | mac-mpw) ++ basic_machine=m68k-apple ++ ;; ++ pmac | pmac-mpw) ++ basic_machine=powerpc-apple ++ ;; ++ c4x*) ++ basic_machine=c4x-none ++ os=-coff ++ ;; ++ *-unknown) ++ # Make sure to match an already-canonicalized machine name. ++ ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 +@@ -668,9 +994,12 @@ + -solaris) + os=-solaris2 + ;; +- -unixware* | svr4*) ++ -svr4*) + os=-sysv4 + ;; ++ -unixware*) ++ os=-sysv4.2uw ++ ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; +@@ -681,19 +1010,42 @@ + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ +- | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ ++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ ++ | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ +- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ ++ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ +- | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -linux-gnu* | -uxpv*) ++ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ ++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ ++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; ++ -qnx*) ++ case $basic_machine in ++ x86-* | i*86-*) ++ ;; ++ *) ++ os=-nto$os ++ ;; ++ esac ++ ;; ++ -nto*) ++ os=-nto-qnx ++ ;; ++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ ++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ ;; ++ -mac*) ++ os=`echo $os | sed -e 's|mac|macos|'` ++ ;; + -linux*) +- os=`echo $os | sed -e 's|linux|linux|'` ++ os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` +@@ -701,6 +1053,12 @@ + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; ++ -opened*) ++ os=-openedition ++ ;; ++ -wince*) ++ os=-wince ++ ;; + -osfrose*) + os=-osfrose + ;; +@@ -716,12 +1074,18 @@ + -acis*) + os=-aos + ;; ++ -386bsd) ++ os=-bsd ++ ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; ++ -nsk*) ++ os=-nsk ++ ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` +@@ -747,9 +1111,18 @@ + # This must come after -sysvr4. + -sysv*) + ;; ++ -ose*) ++ os=-ose ++ ;; ++ -es1800*) ++ os=-ose ++ ;; + -xenix) + os=-xenix + ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ os=-mint ++ ;; + -none) + ;; + *) +@@ -775,9 +1148,15 @@ + *-acorn) + os=-riscix1.2 + ;; ++ arm*-rebel) ++ os=-linux ++ ;; + arm*-semi) + os=-aout + ;; ++ pdp10-*) ++ os=-tops20 ++ ;; + pdp11-*) + os=-none + ;; +@@ -796,15 +1175,36 @@ + # default. + # os=-sunos4 + ;; ++ m68*-cisco) ++ os=-aout ++ ;; ++ mips*-cisco) ++ os=-elf ++ ;; ++ mips*-*) ++ os=-elf ++ ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; ++ *-be) ++ os=-beos ++ ;; + *-ibm) + os=-aix + ;; ++ *-wec) ++ os=-proelf ++ ;; ++ *-winbond) ++ os=-proelf ++ ;; ++ *-oki) ++ os=-proelf ++ ;; + *-hp) + os=-hpux + ;; +@@ -815,7 +1215,7 @@ + os=-sysv + ;; + *-cbm) +- os=-amigados ++ os=-amigaos + ;; + *-dg) + os=-dgux +@@ -865,9 +1265,21 @@ + *-masscomp) + os=-rtu + ;; +- f301-fujitsu) ++ f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; ++ *-rom68k) ++ os=-coff ++ ;; ++ *-*bug) ++ os=-coff ++ ;; ++ *-apple) ++ os=-macos ++ ;; ++ *-atari*) ++ os=-mint ++ ;; + *) + os=-none + ;; +@@ -889,9 +1301,15 @@ + -aix*) + vendor=ibm + ;; ++ -beos*) ++ vendor=be ++ ;; + -hpux*) + vendor=hp + ;; ++ -mpeix*) ++ vendor=hp ++ ;; + -hiux*) + vendor=hitachi + ;; +@@ -907,7 +1325,7 @@ + -genix*) + vendor=ns + ;; +- -mvs*) ++ -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) +@@ -919,9 +1337,26 @@ + -aux*) + vendor=apple + ;; ++ -hms*) ++ vendor=hitachi ++ ;; ++ -mpw* | -macos*) ++ vendor=apple ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ vendor=atari ++ ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + + echo $basic_machine$os ++exit 0 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/configure fdutils/configure +--- fdutils-5.4/configure Fri Jul 2 23:37:09 1999 ++++ fdutils/configure Mon May 21 00:24:49 2001 +@@ -1250,7 +1250,7 @@ + esac + + +-for ac_hdr in linux/ext_fs.h linux/xia_fs.h ++for ac_hdr in linux/ext_fs.h linux/xia_fs.h sys/sysmacros.h + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/configure.in fdutils/configure.in +--- fdutils-5.4/configure.in Thu Jul 1 19:22:51 1999 ++++ fdutils/configure.in Mon May 21 00:24:21 2001 +@@ -18,7 +18,7 @@ + AC_C_CONST + AC_C_INLINE + +-AC_CHECK_HEADERS(linux/ext_fs.h linux/xia_fs.h) ++AC_CHECK_HEADERS(linux/ext_fs.h linux/xia_fs.h sys/sysmacros.h) + + dnl Make fdmount accessible by the floppy group only + undefine([fdmount-floppy-only])dnl +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/README fdutils/doc/README +--- fdutils-5.4/doc/README Thu Jul 1 19:43:45 1999 ++++ fdutils/doc/README Mon Jun 11 22:26:36 2001 +@@ -171,7 +171,7 @@ + disks and also Commodore 1581 disks. Please get Michael Haardt's + documentation on floppy drives for a detailed description of those + formats. This can be ftp'ed from +-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps ++http://www.moria.de/~michael/floppy/floppy.ps + + Commodore 1581 disks are not yet described in this documentation. + Use 'setfdprm /dev/fd0 1600 10 2 80 2 0x2A 0x02 0xDF 0x2E' to use +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/acronyms.texi fdutils/doc/acronyms.texi +--- fdutils-5.4/doc/acronyms.texi Sat May 27 18:37:00 2000 ++++ fdutils/doc/acronyms.texi Mon Jun 11 22:23:31 2001 +@@ -100,7 +100,7 @@ + disks, i.e. virtually all disks that are available today. The PC + hardware can only read MFM and FM disks. The doc at: + @example +-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps ++http://www.moria.de/~michael/floppy/floppy.ps + @end example + contains more detailed information about FM and MFM encoding. + +@@ -108,7 +108,7 @@ + FM is a low level encoding of disk data. It was used for SD disks, and + is now considered to be obsolete. The doc at: + @example +-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps ++http://www.moria.de/~michael/floppy/floppy.ps + @end example + contains more detailed information about FM and MFM encoding. + +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/diskd.1 fdutils/doc/diskd.1 +--- fdutils-5.4/doc/diskd.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/diskd.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH diskd 1 "02jun00" fdutils-5.4 ++.TH diskd 1 "11Jun01" fdutils-5.4 + .SH Name + diskd - disk daemon; wait for disk to be inserted + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/diskseekd.1 fdutils/doc/diskseekd.1 +--- fdutils-5.4/doc/diskseekd.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/diskseekd.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH diskseekd 1 "02jun00" fdutils-5.4 ++.TH diskseekd 1 "11Jun01" fdutils-5.4 + .SH Name + diskseek, diskseekd - disk seek daemon; simulates Messy Dos' drive cleaning effect + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fd.4 fdutils/doc/fd.4 +--- fdutils-5.4/doc/fd.4 Fri Jul 2 23:44:15 1999 ++++ fdutils/doc/fd.4 Mon Jun 11 22:23:59 2001 +@@ -1,7 +1,7 @@ + '\" t + .\"{{{}}} + .\"{{{ Notes +-.\" Copyright (c) 1993 Michael Haardt (michael@cantor.informatik.rwth-aachen.de) ++.\" Copyright (c) 1993 Michael Haardt (michael@moria.de) + .\" and 1994,1995, 1997 Alain Knaff (alain@linux.lu) + .\" + .\" This is free documentation; you can redistribute it and/or +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fdmount.1 fdutils/doc/fdmount.1 +--- fdutils-5.4/doc/fdmount.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/fdmount.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH fdmount 1 "02jun00" fdutils-5.4 ++.TH fdmount 1 "11Jun01" fdutils-5.4 + .SH Name + fdmount - Floppy disk mount utility + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fdrawcmd.1 fdutils/doc/fdrawcmd.1 +--- fdutils-5.4/doc/fdrawcmd.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/fdrawcmd.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH fdrawcmd 1 "02jun00" fdutils-5.4 ++.TH fdrawcmd 1 "11Jun01" fdutils-5.4 + .SH Name + fdrawcmd - send raw commands to the floppy disk controller + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/floppycontrol.1 fdutils/doc/floppycontrol.1 +--- fdutils-5.4/doc/floppycontrol.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/floppycontrol.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH floppycontrol 1 "02jun00" fdutils-5.4 ++.TH floppycontrol 1 "11Jun01" fdutils-5.4 + .SH Name + floppycontrol - floppy driver configuration utility + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/floppymeter.1 fdutils/doc/floppymeter.1 +--- fdutils-5.4/doc/floppymeter.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/floppymeter.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH floppymeter 1 "02jun00" fdutils-5.4 ++.TH floppymeter 1 "11Jun01" fdutils-5.4 + .SH Name + floppymeter - measure raw capacity and exact rotation speed of floppy drive + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/format2.texi fdutils/doc/format2.texi +--- fdutils-5.4/doc/format2.texi Fri Sep 19 21:01:19 1997 ++++ fdutils/doc/format2.texi Mon Jun 11 21:59:18 2001 +@@ -157,7 +157,7 @@ + on floppy drives for a detailed description of those formats. This can + be ftp'ed from the following location: + @example +-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps ++http://www.moria.de/~michael/floppy/ + @end example + + Commodore 1581 disks are not yet described in this documentation. Use +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/getfdprm.1 fdutils/doc/getfdprm.1 +--- fdutils-5.4/doc/getfdprm.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/getfdprm.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH getfdprm 1 "02jun00" fdutils-5.4 ++.TH getfdprm 1 "11Jun01" fdutils-5.4 + .SH Name + getfdprm - print the current format information + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/makefloppies.1 fdutils/doc/makefloppies.1 +--- fdutils-5.4/doc/makefloppies.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/makefloppies.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH makefloppies 1 "02jun00" fdutils-5.4 ++.TH makefloppies 1 "11Jun01" fdutils-5.4 + .SH Name + MAKEFLOPPIES - Creates the default floppy device nodes. + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/setfdprm.1 fdutils/doc/setfdprm.1 +--- fdutils-5.4/doc/setfdprm.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/setfdprm.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH setfdprm 1 "02jun00" fdutils-5.4 ++.TH setfdprm 1 "11Jun01" fdutils-5.4 + .SH Name + setfdprm - sets user-provided floppy disk parameters + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/superformat.1 fdutils/doc/superformat.1 +--- fdutils-5.4/doc/superformat.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/superformat.1 Mon Jun 11 22:22:46 2001 +@@ -1,4 +1,4 @@ +-.TH superformat 1 "02jun00" fdutils-5.4 ++.TH superformat 1 "11Jun01" fdutils-5.4 + .SH Name + superformat - format floppies + '\" t +@@ -258,14 +258,19 @@ + spins, and on how much time is needed to change the head or the track. + .TP + \&\fR\&\f(CW--absolute_skew\ \fIabsolute-skew\fR\&\f(CW\fR\ +-Set the absolute skew. (The skew value used for the first formatted +-track) ++.IP ++Set the absolute skew. This skew value is used for the first formatted ++track. It is expressed in raw bytes. + .TP + \&\fR\&\f(CW--head_skew\ \fIhead-skew\fR\&\f(CW\fR\ +-Set the head skew. (The skew added for passing from head 0 to head 1) ++.IP ++Set the head skew. This is the skew added for passing from head 0 to ++head 1. It is expressed in raw bytes. + .TP + \&\fR\&\f(CW--track_skew\ \fItrack-skew\fR\&\f(CW\fR\ +-Set the track skew. (The skew added for seeking to the next track) ++.IP ++Set the track skew. This is the skew added for seeking to the next ++track. It is expressed in raw bytes. + .PP + Example: (absolute skew=3, head skew=1, track skew=2) + .PP +@@ -287,6 +292,10 @@ + .lp + + \&\fR ++.PP ++N.B. For simplicitie's sake, this example expresses skews in units of ++sectors. In reality, superformat expects the skews to be expressed in ++raw bytes. + .PP + .SH Examples + In all the examples of this section, we assume that drive 0 is a 3 1/2 +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/superformat.texi fdutils/doc/superformat.texi +--- fdutils-5.4/doc/superformat.texi Sat May 27 18:36:51 2000 ++++ fdutils/doc/superformat.texi Mon May 21 00:24:21 2001 +@@ -187,14 +187,20 @@ + + @table @code + @item --absolute_skew @var{absolute-skew} +-Set the absolute skew. (The skew value used for the first formatted +-track) ++ ++Set the absolute skew. This skew value is used for the first formatted ++track. It is expressed in raw bytes. + + @item --head_skew @var{head-skew} +-Set the head skew. (The skew added for passing from head 0 to head 1) ++ ++Set the head skew. This is the skew added for passing from head 0 to ++head 1. It is expressed in raw bytes. + + @item --track_skew @var{track-skew} +-Set the track skew. (The skew added for seeking to the next track) ++ ++Set the track skew. This is the skew added for seeking to the next ++track. It is expressed in raw bytes. ++ + @end table + + Example: (absolute skew=3, head skew=1, track skew=2) +@@ -209,6 +215,10 @@ + track 2 head 0: 4,5,6,1,2,3 (skew=3) + track 2 head 1: 3,4,5,6,1,2 (skew=4) + @end example ++ ++N.B. For simplicitie's sake, this example expresses skews in units of ++sectors. In reality, superformat expects the skews to be expressed in ++raw bytes. + + @node Examples, Troubleshooting, Sector skewing options, superformat + @subsection Examples +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/xdfcopy.1 fdutils/doc/xdfcopy.1 +--- fdutils-5.4/doc/xdfcopy.1 Fri Jun 2 22:28:27 2000 ++++ fdutils/doc/xdfcopy.1 Mon Jun 11 22:22:47 2001 +@@ -1,4 +1,4 @@ +-.TH xdfcopy 1 "02jun00" fdutils-5.4 ++.TH xdfcopy 1 "11Jun01" fdutils-5.4 + .SH Name + xdfcopy - Program to copy and format Xdf disks in Linux + '\" t +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/MAKEFLOPPIES fdutils/src/MAKEFLOPPIES +--- fdutils-5.4/src/MAKEFLOPPIES Wed Aug 21 16:51:25 1996 ++++ fdutils/src/MAKEFLOPPIES Sun Feb 3 20:13:39 2002 +@@ -12,6 +12,9 @@ + set -u + MAJOR=2 + TMPDEVICE=/dev/tmpfloppy$$ ++if [ ! -b /dev/fd0 ] ; then ++ mknod /dev/fd0 b $MAJOR 0 ++fi + if floppycontrol 2>/dev/null; then + FLOPPYCONTROL=yes + else +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/diskseekd.c fdutils/src/diskseekd.c +--- fdutils-5.4/src/diskseekd.c Sat May 27 18:50:05 2000 ++++ fdutils/src/diskseekd.c Mon May 21 00:24:21 2001 +@@ -1,4 +1,7 @@ + #include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <sys/time.h> + #include <unistd.h> + #include <stdio.h> +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/driveprm.c fdutils/src/driveprm.c +--- fdutils-5.4/src/driveprm.c Sat May 27 18:49:58 2000 ++++ fdutils/src/driveprm.c Mon May 21 00:24:21 2001 +@@ -1,3 +1,7 @@ ++#include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <stdlib.h> + #include <string.h> + #include <stdio.h> +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/fdmount.c fdutils/src/fdmount.c +--- fdutils-5.4/src/fdmount.c Sat May 27 18:50:14 2000 ++++ fdutils/src/fdmount.c Sun Feb 3 23:50:06 2002 +@@ -826,14 +826,9 @@ + + mnt=get_mounted(devname); + if (!mnt) { +- if (!force) { +- errmsg("not mounted"); +- save_unlock_mtab(); +- return -1; +- } +- else { +- msg("not in /etc/mtab, trying to unmount anyway!"); +- } ++ errmsg("not mounted"); ++ save_unlock_mtab(); ++ return -1; + } + else { + mountpoint=mnt->ms.mnt_dir; +@@ -860,7 +855,7 @@ + } + #endif + +- e=umount(devname); ++ e=umount(mountpoint); + if (e) { + errmsg("failed to unmount: %s\n",strerror(errno)); + goto err; +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/floppycontrol.c fdutils/src/floppycontrol.c +--- fdutils-5.4/src/floppycontrol.c Sun Apr 2 10:18:15 2000 ++++ fdutils/src/floppycontrol.c Sat Oct 27 13:47:28 2001 +@@ -16,6 +16,11 @@ + #include <getopt.h> + #include "enh_options.h" + ++#ifndef FD_DISK_CHANGED ++#define FD_DISK_CHANGED 0 ++#endif ++ ++ + int eioctl(int fd, int command,void * param, char *emsg) + { + int r; +@@ -381,14 +386,17 @@ + eioctl( fd, FDPOLLDRVSTAT, &drivstat,"get drive state"); + else + eioctl( fd, FDGETDRVSTAT , &drivstat,"get drive state"); +- printf("%s %s %s %s %s\n", ++ ++#ifndef FD_DCL_SEEN ++# define FD_DCL_SEEN 0x40 ++#endif ++ printf("%s %s %s %s %s %s\n", + drivstat.flags & FD_VERIFY ? "verify" : "", + drivstat.flags & FD_DISK_NEWCHANGE ? "newchange" : "", + drivstat.flags & FD_NEED_TWADDLE ? "need_twaddle" : "", +-#ifdef FD_DISK_CHANGED + drivstat.flags & FD_DISK_CHANGED ? "disk_changed" : "", +-#endif +- drivstat.flags & FD_DISK_WRITABLE ?"disk_writable" : ""); ++ drivstat.flags & FD_DISK_WRITABLE ?"disk_writable" : "", ++ drivstat.flags & FD_DCL_SEEN ?"dcl_seen" : ""); + printf("spinup= %ld\n", drivstat.spinup_date); + printf("select= %ld\n", drivstat.select_date); + printf("first_read= %ld\n", drivstat.first_read_date); +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/floppymeter.c fdutils/src/floppymeter.c +--- fdutils-5.4/src/floppymeter.c Sat May 27 18:49:58 2000 ++++ fdutils/src/floppymeter.c Mon May 21 00:24:21 2001 +@@ -1,3 +1,7 @@ ++#include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <unistd.h> + #include <stdio.h> + #include <string.h> +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/measure.c fdutils/src/measure.c +--- fdutils-5.4/src/measure.c Sat May 27 18:49:57 2000 ++++ fdutils/src/measure.c Sun Feb 3 22:15:54 2002 +@@ -138,6 +138,23 @@ + perror("format"); + exit(1); + } ++ ++ if((raw_cmd.reply[1] & ~0x20) | ++ (raw_cmd.reply[2] & ~0x20)) { ++ int i; ++ ++ if ( raw_cmd.reply[1] & ST1_WP ){ ++ fprintf(stderr,"The disk is write protected\n"); ++ exit(1); ++ } ++ ++ fprintf(stderr, ++ "\nFatal error while measuring raw capacity\n"); ++ for(i=0; i < raw_cmd.reply_count; i++) { ++ fprintf(stderr, "%d: %02x\n", i, raw_cmd.reply[i]); ++ } ++ exit(1); ++ } + } + + +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/mediaprm.c fdutils/src/mediaprm.c +--- fdutils-5.4/src/mediaprm.c Wed Mar 22 22:16:53 2000 ++++ fdutils/src/mediaprm.c Mon May 21 00:24:21 2001 +@@ -20,6 +20,7 @@ + FE_TPI, + FE_STRETCH, + FE_SWAPSIDES, ++ FE_ZEROBASED, + + FE_GAP, + +@@ -35,7 +36,8 @@ + FE_DENSITY, + } field_t; + +-static int SIZE, SECT, VSECT, HEAD, CYL, TPI, STRETCH, SWAPSIDES, GAP, FM; ++static int SIZE, SECT, VSECT, HEAD, CYL, TPI, STRETCH, SWAPSIDES, ZEROBASED; ++static int GAP, FM; + static int PERP, SSIZE, _2M, DTR, SPEC1, FMT_GAP, DENSITY; + static int ssize; + +@@ -48,6 +50,7 @@ + #define F_TPI FE_TPI,&TPI + #define F_STRETCH FE_STRETCH,&STRETCH + #define F_SWAPSIDES FE_SWAPSIDES,&SWAPSIDES ++#define F_ZEROBASED FE_ZEROBASED,&ZEROBASED + + #define F_GAP FE_GAP,&GAP + +@@ -77,6 +80,7 @@ + { "stretch", F_STRETCH, 0 }, + + { "swapsides", F_SWAPSIDES, 1}, ++ { "zerobased", F_ZEROBASED, 1}, + + { "gap", F_GAP, 0}, + +@@ -234,7 +238,7 @@ + medprm->sect = VSECT / 512; + medprm->head = HEAD; + medprm->track = CYL; +- medprm->stretch = STRETCH | (SWAPSIDES << 1); ++ medprm->stretch = STRETCH | (SWAPSIDES << 1) | (ZEROBASED << 2); + medprm->gap = GAP; + medprm->rate = (FM<<7) | (PERP<<6) | (ssize<<3) | (_2M<<2) | DTR; + medprm->spec1 = SPEC1; +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/printfdprm.c fdutils/src/printfdprm.c +--- fdutils-5.4/src/printfdprm.c Mon Jun 9 22:58:15 1997 ++++ fdutils/src/printfdprm.c Mon May 21 00:24:21 2001 +@@ -141,6 +141,12 @@ + print("swapsides",0); + #endif + ++#ifdef FD_ZEROBASED ++ if(ft->stretch & FD_ZEROBASED) ++ print("zerobased",0); ++#endif ++ ++ + if(ft->rate & FD_2M) + print("2M",0); + +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/superformat.c fdutils/src/superformat.c +--- fdutils-5.4/src/superformat.c Sat May 27 18:49:57 2000 ++++ fdutils/src/superformat.c Fri Feb 22 11:55:23 2002 +@@ -26,7 +26,10 @@ + cylinders as happen to work (as in 2m). Currently, if too many cylinders + are attempted it won't fail until the very end + */ +- ++#include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <unistd.h> + #include <stdio.h> + #include <string.h> +@@ -68,6 +71,7 @@ + char floppy_buffer[24 * 512]; + int verbosity = 3; + static char noverify = 0; ++static char noformat = 0; + static char dosverify = 0; + static char verify_later = 0; + short stretch; +@@ -323,7 +327,8 @@ + raw_cmd.length = nssect * sizeof(format_map_t); + raw_cmd.cmd_count = 6; + raw_cmd.cmd[0] = FD_FORMAT & ~fm_mode; +- raw_cmd.cmd[1] = head << 2 | ( fd->drive & 3); ++ raw_cmd.cmd[1] = (head << 2 | ( fd->drive & 3)) ^ ++ (fd->swapSides ? 4 : 0); + raw_cmd.cmd[2] = fd->sizecode; + raw_cmd.cmd[3] = nssect; + raw_cmd.cmd[4] = fd->fmt_gap; +@@ -355,7 +360,8 @@ + raw_cmd.data = floppy_buffer; + raw_cmd.cmd_count = 9; + raw_cmd.cmd[0] = FD_WRITE & ~fm_mode & ~0x80; +- raw_cmd.cmd[1] = head << 2 | ( fd->drive & 3); ++ raw_cmd.cmd[1] = (head << 2 | ( fd->drive & 3)) ^ ++ (fd->swapSides ? 4 : 0); + raw_cmd.cmd[2] = cylinder; + raw_cmd.cmd[3] = head; + raw_cmd.cmd[4] = cur_sector; +@@ -490,6 +496,7 @@ + + short retries; + short zeroBased=0; ++ short swapSides=0; + int n,rsize; + char *verify_buffer = NULL; + char dosdrive; +@@ -510,6 +517,11 @@ + (void *) &noverify, + "skip verification" }, + ++ { '\0', "print-drive-deviation", 0, EO_TYPE_BYTE, 1, 0, ++ (void *) &noformat, ++ "print deviation, do not format " }, ++ ++ + { 'B', "dosverify", 0, EO_TYPE_BYTE, 1, 0, + (void *) &dosverify, + "verify disk using mbadblocks" }, +@@ -662,11 +674,6 @@ + exit(1); + } + +- fd[0].zeroBased = zeroBased; +- if(zeroBased) +- noverify = 1; +- +- + /* sanity checking */ + if (sizecode < 0 || sizecode >= MAX_SIZECODE) { + fprintf(stderr,"Bad sizecode %d\n", sizecode); +@@ -779,7 +786,16 @@ + break; + } + stretch = geometry.stretch & 1; +- ++#ifdef FD_ZEROBASED ++ if(geometry.stretch & FD_ZEROBASED) { ++ zeroBased = 1; ++ } ++#endif ++#ifdef FD_SWAPSIDES ++ if(geometry.stretch & FD_SWAPSIDES) { ++ swapSides = 1; ++ } ++#endif + mask |= SET_SECTORS | SET_CYLINDERS | + SET_SIZECODE | SET_2M | SET_RATE; + } else { +@@ -831,6 +847,15 @@ + stretch = 0; + } + } ++ ++ fd[0].zeroBased = zeroBased; ++#ifndef FD_ZEROBASED ++ if(zeroBased) { ++ noverify = 1; ++ } ++#endif ++ ++ fd[0].swapSides = swapSides; + + if (cylinders > fd[0].drvprm.tracks) { + fprintf(stderr,"too many cylinder for this drive\n"); +@@ -900,8 +925,9 @@ + fprintf(stderr, + "In order to avoid this time consuming " + "measurement in the future,\n" +- "add the following line to " DRIVEPRMFILE +- ":\ndrive%d: deviation=%d\n", ++ "add the following line to " DRIVEPRMFILE ":\n"); ++ fprintf(stdout, ++ "drive%d: deviation=%d\n", + fd[0].drive, + (fd[0].raw_capacity-old_capacity)*1000000/ + old_capacity); +@@ -914,6 +940,9 @@ + } + } + ++ if(noformat) ++ return 0; ++ + /* FIXME. Why is this needed? */ + fd[0].raw_capacity -= 30; + +@@ -971,7 +1000,11 @@ + parameters.head = heads; + parameters.track = cylinders; + parameters.size = cylinders * heads * sectors; +- parameters.stretch = stretch; ++ parameters.stretch = stretch ++#ifdef FD_ZEROBASED ++ | (zeroBased ? 4 : 0) ++#endif ++ | (swapSides ? 2 : 0); + parameters.gap = fd[0].gap; + if ( !use_2m) + fd0.rate = fd[0].rate; +@@ -1054,7 +1087,7 @@ + ioctl(fd[0].fd, FDFLUSH ); + close(fd[0].fd); + +- if (! (mask & SET_DOSDRIVE ) && fd[0].drive < 2) ++ if (! (mask & SET_DOSDRIVE ) && fd[0].drive < 2 && !zeroBased) + dosdrive = fd[0].drive+'a'; + + if (dosdrive) { +@@ -1085,8 +1118,9 @@ + dosverify = 0; + } + } else { +- fprintf(stderr, +- "\nwarning: mformat not called because DOS drive unknown\n"); ++ if(!zeroBased) ++ fprintf(stderr, ++ "\nwarning: mformat not called because DOS drive unknown\n"); + /*exit(1);*/ + dosverify = 0; + } +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/superformat.h fdutils/src/superformat.h +--- fdutils-5.4/src/superformat.h Sun Apr 2 10:09:28 2000 ++++ fdutils/src/superformat.h Mon May 21 00:24:21 2001 +@@ -84,6 +84,7 @@ + int rotations; /* how many time do we have to go over 0 to read + * the track */ + int zeroBased; /* 1 if sector numbering starts at zero */ ++ int swapSides; /* if logical side 0 is on physical 1 and vice-versa */ + }; + + +diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/xdfcopy.c fdutils/src/xdfcopy.c +--- fdutils-5.4/src/xdfcopy.c Sat May 27 18:49:57 2000 ++++ fdutils/src/xdfcopy.c Mon May 21 00:24:21 2001 +@@ -2,6 +2,10 @@ + * Software patents declared unconstitutional, worldwide + */ + ++#include <sys/types.h> ++#ifdef HAVE_SYS_SYSMACROS_H ++# include <sys/sysmacros.h> ++#endif + #include <unistd.h> + #include <stdio.h> + #include <string.h> diff --git a/source/a/floppy/fdutils.mediaprm.diff b/source/a/floppy/fdutils.mediaprm.diff new file mode 100644 index 000000000..cf9a0a6d7 --- /dev/null +++ b/source/a/floppy/fdutils.mediaprm.diff @@ -0,0 +1,8 @@ +--- ./src/mediaprm.orig Sat Feb 3 21:01:37 2001 ++++ ./src/mediaprm Sat Feb 3 21:01:48 2001 +@@ -1,4 +1,4 @@ +-# /etc/fdprm - floppy disk parameter table ++# /etc/mediaprm - floppy disk parameter table + + ######################################################################## + # Standard linux disk formats. Names are of the form diff --git a/source/a/floppy/floppy.SlackBuild b/source/a/floppy/floppy.SlackBuild new file mode 100755 index 000000000..38a5cc86f --- /dev/null +++ b/source/a/floppy/floppy.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=5.4 +MTOOLS=3.9.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-floppy + +rm -rf $PKG $TMP/fdutils-$VERSION $TMP/mtools-$MTOOLS +mkdir -p $TMP $PKG/{etc,usr/{bin,info,man/man{1,4,5}}} + +cd $TMP +tar xzvf $CWD/fdutils-$VERSION.tar.gz +cd fdutils-$VERSION +zcat $CWD/fdutils-5.4-20020222.diff.gz | patch -p1 --verbose --backup --suffix=.orig +zcat $CWD/fdutils.mediaprm.diff.gz | patch -p1 --verbose --backup --suffix=.orig +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + $ARCH-slackware-linux +make install prefix=$PKG/usr +mkdir -p $PKG/usr/doc/fdutils-$VERSION +cp -a COPYING CREDITS Changelog INSTALL doc/FAQ.html doc/README \ + $PKG/usr/doc/fdutils-$VERSION +chown root:root $PKG/usr/doc/fdutils-$VERSION/* +chmod 644 $PKG/usr/doc/fdutils-$VERSION/* +cd $TMP +tar xzvf $CWD/mtools-$MTOOLS.tar.gz +cd mtools-$MTOOLS +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + $ARCH-slackware-linux +#make all floppyd floppyd_installtest +make all +make install prefix=$PKG/usr sysconfdir=$PKG/etc bindir=$PKG/usr/bin \ + MAN1DIR=$PKG/usr/man/man1 MAN5DIR=$PKG/usr/man/man5 +cat $CWD/mtools.conf > $PKG/etc/mtools.conf +cat $CWD/mediaprm > $PKG/etc/mediaprm +mkdir -p $PKG/usr/doc/mtools-$MTOOLS +cp -a COPYING Changelog INSTALL README Release.notes TODO \ + $PKG/usr/doc/mtools-$MTOOLS +chown root:root $PKG/usr/doc/mtools-$MTOOLS/* +chmod 644 $PKG/usr/doc/mtools-$MTOOLS/* +( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done +) +( cd $PKG/usr/info ; rm -f dir ; gzip -9 * ) + +# These are obsolete and/or cruft: +rm -f $PKG/usr/bin/MAKEFLOPPIES $PKG/usr/bin/lz $PKG/usr/bin/mcheck \ + $PKG/usr/bin/mcomp $PKG/usr/bin/mxtar $PKG/usr/bin/tgz \ + $PKG/usr/bin/uz $PKG/usr/man/man1/makefloppies.1 +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cd $PKG +makepkg -l y -c n $TMP/floppy-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/floppy/mediaprm b/source/a/floppy/mediaprm new file mode 100644 index 000000000..03c82e3b7 --- /dev/null +++ b/source/a/floppy/mediaprm @@ -0,0 +1,786 @@ +# /etc/mediaprm - floppy disk parameter table + +######################################################################## +# Standard linux disk formats. Names are of the form +# actual media capacity/maximum drive capacity +# (Note: although 5.25" HD drives can format disks at 1.44M, they're listed +# as 1200 because that's the common maximum size.) + +# size sec/t hds trk stre gap rate spec1 fmt_gap + +"360/360": + DS DD sect=9 + +"1200/1200": + DS HD sect=15 + +"360/720": + SS DD sect=9 + +"720/720": + DS DD sect=9 + +"360/1200": + DS DD sect=9 + +"720/1200": + DS QD sect=9 + +"1440/1440": + DS HD sect=18 + +"2880/2880": + DS ED sect=36 + +"2880/2880": + DS ED sect=36 + +"2880/2880": + DS ED sect=36 + +"1440/1200": + DS HD sect=18 + +"1680/1440": + DS HD sect=21 + +"410/1200": + DS DD sect=10 cyl=41 + +"820/1440": + DS DD sect=10 cyl=82 + +"1476/1200": + DS HD sect=18 cyl=82 + +"1722/1440": + DS HD sect=21 cyl=82 + +"420/1200": + DS DD sect=10 cyl=42 + +"830/1440": + DS DD sect=10 cyl=83 + +"1494/1200": + DS HD sect=18 cyl=83 + +"1743/1440": + DS HD sect=21 cyl=83 + +"1743/1440": + DS HD sect=21 cyl=83 + +"880/1200": + DS QD tracksize=11b ssize=1KB + +"1040/720": + DS QD sect=13 + +"1120/720": + DS QD tracksize=7KB mss + +"1600/1200": + DS HD tracksize=10KB mss + +"1760/1440": + DS HD sect=11 ssize=1KB + +"1920/1440": + DS HD tracksize=12KB mss + +"3200/2880": + DS ED sect=5 ssize=4KB + +"3520/2880": + DS ED tracksize=22KB ssize=4KB + +"3840/2880": + DS ED sect=3 ssize=8KB + +"3840/2880": + DS ED sect=3 ssize=8KB + +"1840/1440": + DS HD tracksize=23b ssize=2KB + +"800/720": + DS DD sect=10 + +"1600/1440": + DS HD sect=20 + +######################################################################## +# CP/M formats +# +# the name is constructed as CODsize, where COD identifies the +# brand of the computer having formatted the disk + +# Generic CP/M - SSSD 8" + +"GEN250": + SS DD sect=24 dtr=0 fm=1 cyl=77 ssize=128 + +# ABC-80 - SSDD 48 tpi 5.25" + +"ABC160": + SS DD sect=16 ssize=256 + +# Actrix (Access Matrix) - SSDD 48 tpi 5.25" + +"ACT180": + SS DD sect=9 + +# Adler Textriter - SSDD 48 tpi 5.25" + +"ADL160": + SS DD sect=16 ssize=256 + +# Advanced Digital Super 6 - SSDD 48 tpi 5.25" + +"ADV160": + SS DD sect=4 ssize=1KB + +# Advanced Digital Super 6 - DSDD 96 tpi 5.25" + +"ADV640": + DS QD sect=4 ssize=1KB + +# Altos Series 5 - DSDD 96 tpi 5.25" + +"ALT720": + DS QD sect=9 + +# Amigo - SSDD 48 tpi 5.25" + +"AMI200": + SS DD sect=10 + +# Ampro - SSDD 48 tpi 5.25" + +"AMP200": + SS DD sect=10 + +# Ampro - SSDD 96 tpi 5.25" + +"AMP400": + SS QD sect=5 ssize=1KB + +# Amstrad PCW8256 - DSDD 96 tpi 5.25" + +"AMS720": + DS QD sect=9 + +# Archive I - SSDD 96 tpi 5.25" + +"ARC400": + SS QD sect=5 ssize=1KB + +# Archive II & III - DSDD 96 tpi 5.25" + +"ARC800": + DS QD sect=5 ssize=1KB + +# Arisia - SSDD 48 tpi 5.25" + +"ARI180": + SS DD sect=18 ssize=256 + +# ATR-8000 - SSDD 48 tpi 5.25" + +"ATR200": + SS DD sect=5 ssize=1KB + +# Beehive - DSDD 48 tpi 5.25" + +"BEE400": + DS DD sect=10 + +# Bitelex - SSDD 48 tpi 5.25" + +"BIT160": + SS DD sect=16 ssize=256 + +# BMC IF800 Model 20 - DSDD 48 tpi 5.25" + +"BMC400": + DS DD sect=10 + +# Burr-Brown - DSDD 48 tpi 5.25" + +"BUR360": + DS DD sect=18 ssize=256 + +# Cal-PC - DSDD 48 tpi 5.25" + +"CAL400": + DS DD sect=5 ssize=1KB + +# Cashcom 100 - DSDD 96 tpi 5.25" + +"CAS640": + DS QD sect=4 ssize=1KB + +# CDI-5000 - DSDD 48 tpi 5.25" + +"CDI400": + DS DD sect=5 ssize=1KB + +# CMC Supersystem 2 - DSDD 96 tpi 5.25" + +"CMC800": + DS QD sect=5 ssize=1KB + +# Coleco ADAM, 40 track - SSDD 48 tpi 5.25" + +"COL160": + SS DD sect=8 + +# Compugraphic MCS-5 - SSDD 48 tpi 5.25" + +"COM160": + SS DD sect=16 ssize=256 + +# Compupro (Viasyn) (1024 bytes/sector) - DSDD 96 tpi 5.25" + +"COM800": + DS QD sect=5 ssize=1KB + +# Cromemco CDOS - SSSD 48 tpi 5.25" + +"CRO80": + SS SD sect=16 dtr=1 fm=1 ssize=128 + +# Cromemco CDOS - SSDD 48 tpi 5.25" + +"CRO200": + SS DD sect=10 + +# Cromemco CP/M - SSDD 48 tpi 5.25" + +"CRO200": + SS DD sect=10 + +# C/WP Cortex - SSDD 48 tpi 5.25" + +"CWP200": + SS DD sect=10 + +# Cykey - DSDD 48 tpi 5.25" + +"CYK320": + DS DD sect=16 ssize=256 + +# DEC DECMate II - SSDD 96 tpi 5.25" + +"DEC400": + SS QD sect=10 + +# DEC Rainbow - SSDD 96 tpi 5.25" + +"DEC180": + SS DD sect=9 + +# DEC VT-180 - SSDD 48 tpi 5.25" + +"DEC180": + SS DD sect=9 + +# Direct 1025 - DSDD 48 tpi 5.25" + +"DIR320": + DS DD sect=16 ssize=256 + +# Discovery - DSDD 96 tpi 5.25" + +"DIS640": + DS QD sect=8 + +# Eagle II - SSDD 96 tpi 5.25" + +"EAG400": + SS QD sect=5 ssize=1KB + +# Epson QX-10 - DSDD 48 tpi 5.25" + +"EPS400": + DS DD sect=10 + +# Epson QX-10 (256 bytes/sector) - DSDD 48 tpi 5.25" + +"EPS320": + DS DD sect=16 ssize=256 + +# Epson PX-8 - DSDD 3.5" + +"EPS320": + DS DD sect=8 + +# Ericsson DTC - SSDD 96 tpi 5.25" + +"ERI320": + SS QD sect=16 ssize=256 + +# Ericsson Step One - DSDD 96 tpi 5.25" + +"ERI720": + DS QD sect=9 + +# Florida Graphics - DSDD 96 tpi 5.25" + +"FLO640": + DS QD sect=16 ssize=256 + +# Formula 1 - DSDD 48 tpi 5.25" + +"FOR360": + DS DD sect=18 ssize=256 + +# Fujitsu Micro 16 - DSDD 48 tpi 5.25" + +"FUJ320": + DS DD sect=16 ssize=256 + +# Fujitsu Micro 8 - DSDD 48 tpi 5.25" + +"FUJ320": + DS DD sect=16 ssize=256 + +# HCL System 2 - DSDD 96 tpi 5.25" + +"HCL800": + DS QD sect=5 ssize=1KB + +# Heath H89, Magnolia CP/M - SSDD 48 tpi 5.25" + +"HEA180": + SS DD sect=9 + +# Heurikon MLZ-91A - DSDD 96 tpi 5.25" + +"HEU640": + DS QD sect=16 ssize=256 + +# IBM PC, CP/M-86 - SSDD 48 tpi 5.25" + +"IBM160": + SS DD sect=8 + +# IMS 5000 - SSDD 48 tpi 5.25" + +"IMS160": + SS DD sect=16 ssize=256 + +# IMS 5000 TurboDOS - DSDD 96 tpi 5.25" + +"IMS800": + DS QD sect=5 ssize=1KB + +# Intel iPDS 100 - DSDD 96 tpi 5.25" + +"INT640": + DS QD sect=16 ssize=256 + +# Insight Enterprises - DSDD 48 tpi 5.25" + +"INS320": + DS DD sect=16 ssize=256 + +# Ithaca Intersystems - SSDD 96 tpi 5.25" + +"ITH360": + SS QD sect=18 ssize=256 + +# Jet-80 - DSDD 48 tpi 5.25" + +"JET400": + DS DD sect=5 ssize=1KB + +# Lexoriter - SSDD 48 tpi 5.25" + +"LEX160": + SS DD sect=16 ssize=256 + +# LNW 2 - SSDD 48 tpi 5.25" + +"LNW180": + SS DD sect=18 ssize=256 + +# Macsym 150 - SSDD 96 tpi 5.25" + +"MAC320": + SS QD sect=8 + +# Magic - DSDD 48 tpi 5.25" + +"MAG400": + DS DD sect=10 + +# MAI Basic Four - DSDD 96 tpi 5.25" + +"MAI640": + DS QD sect=16 ssize=256 + +# Micron Quark - DSDD 48 tpi 5.25" + +"MIC320": + DS DD sect=4 ssize=1KB + +# Monroe 8800 Series - SSDD 96 tpi 5.25" + +"MON320": + SS QD sect=16 ssize=256 + +# Morrow MD2 - SSDD 48 tpi 5.25" + +"MOR200": + SS DD sect=5 ssize=1KB + +# Morrow MD3, 5, 11, 16, 34 - DSDD 48 tpi 5.25" + +"MOR400": + DS DD sect=5 ssize=1KB + +# Morrow TurboDOS - DSDD 48 tpi 5.25" + +"MOR320": + DS DD sect=4 ssize=1KB + +# NCR FirstStep - DSDD 96 tpi 5.25" + +"NCR640": + DS QD sect=16 ssize=256 + +# NEC PC-8001A - SSDD 48 tpi 5.25" + +"NEC160": + SS DD sect=16 ssize=256 + +# NEC PC 8801A/8831A - DSDD 48 tpi 5.25" + +"NEC320": + DS DD sect=8 + +# NEC PC 8500/8431A, Starlet - DSDD 3.5" + +"NEC320": + SS QD sect=16 ssize=256 + +# Nixdorf 8810/30 - DSDD 96 tpi 5.25" + +"NIX800": + DS QD sect=10 + +# OKI IF800 Model 20 - DSDD 48 tpi 5.25" + +"OKI400": + DS DD sect=10 + +# Olivetti ETV300 - SSDD 48 tpi 5.25" + +"OLI180": + SS DD sect=18 ssize=256 + +# Olivetti M20 - DSDD 48 tpi 5.25" + +"OLI320": + DS DD sect=16 ssize=256 + +# Olivetti 250 - SSDD 3.5" + +"OLI320": + SS QD sect=16 ssize=256 + +# Olympia EX-100 - DSDD 48 tpi 5.25" + +"OLY360": + DS DD sect=9 + +# Olympia ETX II - SSDD 48 tpi 5.25" + +"OLY180": + SS DD sect=9 + +# Osborne 1 - SSSD 48 tpi 5.25" + +"OSB100": + SS SD sect=10 dtr=1 fm=1 ssize=256 + +# Osborne 1 - SSDD 48 tpi 5.25" + +"OSB200": + SS DD sect=5 ssize=1KB + +# Osborne Executive - SSDD 48 tpi 5.25" + +"OSB200": + SS DD sect=5 ssize=1KB + +# Osborne 1 + Osmosis - DSDD 96 tpi 5.25" + +"OSB400": + DS DD sect=10 + +# Osborne Vixen - DSDD 48 tpi 5.25" + +"OSB400": + DS DD sect=5 ssize=1KB + +# Osborne Executive w/Z3 - DSDD 96 tpi 5.25" + +"OSB800": + DS QD sect=5 ssize=1KB + +# OSM Zeus 4 - DSDD 96 tpi 5.25" + +"OSM640": + DS QD sect=8 + +# Panasonic KX-E828 - DSDD 48 tpi 5.25" + +"PAN320": + DS DD sect=16 ssize=256 + +# Pegasus Data Logger - DSDD 48 tpi 5.25" + +"PEG360": + DS DD sect=9 + +# Philips PC-2010 - SSDD 48 tpi 5.25" + +"PHI160": + SS DD sect=16 ssize=256 + +# Philips PC-3000 - 3004 - SSDD 96 tpi 5.25" + +"PHI320": + SS QD sect=16 ssize=256 + +# Pied Piper - DSDD 96 tpi 5.25" + +"PIE800": + DS QD sect=10 + +# PMC Micromate - DSDD 48 tpi 5.25" + +"PMC400": + DS DD sect=5 ssize=1KB + +# Proglas 770KB - DSDD 96 tpi 5.25" + +"PRO800": + DS QD sect=10 + +# Royal Alphatronic - DSDD 48 tpi 5.25" + +"ROY320": + DS DD sect=16 ssize=256 + +# Sage IV - DSDD 96 tpi 5.25" + +"SAG640": + DS QD sect=8 + +# Sanyo MBC-1000, MBC-1150 - DSDD 48 tpi 5.25" + +"SAN320": + DS DD sect=16 ssize=256 + +# Sanyo MBC-1250 - DSDD 96 tpi 5.25" + +"SAN640": + DS QD sect=16 ssize=256 + +# Seequa Chameleon - SSDD 48 tpi 5.25" + +"SEE160": + SS DD sect=8 + +# Seiko - DSDD 96 tpi 5.25" + +"SEI640": + DS QD sect=16 ssize=256 + +# Siemens PG-685 - DSDD 96 tpi 5.25" + +"SIE720": + DS QD sect=9 + +# Siemens PG-675 DSDD 48 tpi 5.25" + +"SIE360": + DS DD sect=9 + +# Siemens PG-635 DSDD 3.5" + +"SIE720": + DS QD sect=9 + +# Sorbus TurboDOS - 5.25" DSHD (or 8" DSDD) + +"SOR1232": + DS HD sect=8 cyl=77 ssize=1KB + +# Sperry UTS 30, UTS 5000 - DSDD 96 tpi 5.25" + +"SPE720": + DS QD sect=9 + +# Superbrain JR - SSDD 48 tpi 5.25" + +"SUP175": + SS DD sect=10 cyl=35 + +# Superbrain 40 track - SSDD 48 tpi 5.25" + +"SUP200": + SS DD sect=10 + +# Systel 2 - SSDD 48 tpi 5.25" + +"SYS180": + SS DD sect=9 + +# Systel 3 - DSDD 48 tpi 5.25" + +"SYS360": + DS DD sect=9 + +# Televideo 801, 806 - DSDD 48 tpi 5.25" + +"TEL360": + DS DD sect=18 ssize=256 + +# Televideo 1603 - DSDD 96 tpi 5.25" + +"TEL720": + DS QD sect=9 + +# TI Professional, CP/M-86 - SSDD 48 tpi 5.25" + +"TI1160": + SS DD sect=8 + +# Toshiba T100, T200 - DSDD 48 tpi 5.25" + +"TOS320": + DS DD sect=16 ssize=256 + +# TRS-80 Model 1, Omikron CP/M - SSSD 48 tpi 5.25" + +"TRS0": + SS SD sect=16 dtr=1 fm=1 cyl=0 ssize=128 + +# TRS-80 Model 1, Color Power II - SSDD 48 tpi 5.25" + +"TRS180": + SS DD sect=18 ssize=256 + +# TRS-80, MM CP/M - SSDD 48 tpi 5.25" + +"TRS200": + SS DD sect=10 + +# TRS-80 Model 4, MT CP/M - SSDD 48 tpi 5.25" + +"TRS180": + SS DD sect=18 ssize=256 + +# TRS-80 Model 4, MT CP/M - DSDD 48 tpi 5.25" + +"TRS360": + DS DD sect=18 ssize=256 + +# TRS-80 Model 4 - SSDD 48 tpi 5.25" + +"TRS160": + SS DD sect=8 + +# Visual 1050 - SSDD 96 tpi 5.25" + +"VIS400": + SS QD sect=10 + +# Wangwriter - DSDD 48 tpi 5.25" + +"WAN320": + DS DD sect=16 ssize=256 + +# Wave Mate Bullet - SSDD 48 tpi 5.25" + +"WAV200": + SS DD sect=5 ssize=1KB + +# Xerox 820 - SSSD 48 tpi 5.25" + +"XER80": + SS SD sect=16 dtr=1 fm=1 ssize=128 + +# Xerox 820 II - SSDD 48 tpi 5.25" + +"XER160": + SS DD sect=16 ssize=256 + +# Zenith Z-37 Disk - SSSD 48 tpi 5.25" + +"ZEN100": + SS SD sect=10 dtr=1 fm=1 ssize=256 + +# Zenith Z-37 Disk - DSDD 96 tpi 5.25" + +"ZEN640": + DS QD sect=16 ssize=256 + +# Zenith Z89, Heath H89 - DSDD 48 tpi 5.25" + +"ZEN320": + DS DD sect=16 ssize=256 + +# Zenith Z89, Heath H89 - DSDD 96 tpi 5.25" + +"ZEN640": + DS QD sect=16 ssize=256 + +# Zenith Z90 - SSDD 48 tpi 5.25" + +"ZEN160": + SS DD sect=16 ssize=256 + +# Zenith Z90 - DSDD 48 tpi 5.25" + +"ZEN320": + DS DD sect=16 ssize=256 + +# Zenith Z-100 - SSDD 48 tpi 5.25" + +"ZEN160": + SS DD sect=8 + +# Zenith Z-100 - DSDD 48 tpi 5.25" + +"ZEN320": + DS DD sect=8 + + + +######################################################################## +# Other interesting formats, please contribute ;-) +# + +# Commodore 1581 (the 3 1/2 drive of the Commodore 128) +"CBM1581": + DS DD sect=10 swapsides + +# Color computer, sides 1 and 2 +"COCO1": + SS DD sect=18 cyl=35 ssize=256 + +"COCO2": + SS DD sect=18 cyl=35 ssize=256 + +# TO7 (Thomson), sides 1 and 2 +"TO7-1" + SS DD sect=16 ssize=256 + +"TO7-2" + SS DD sect=16 ssize=256 swapsides diff --git a/source/a/floppy/mtools.conf b/source/a/floppy/mtools.conf new file mode 100644 index 000000000..b528c01d6 --- /dev/null +++ b/source/a/floppy/mtools.conf @@ -0,0 +1,64 @@ +# Example mtools.conf files. Uncomment the lines which correspond to +# your architecture and comment out the "SAMPLE FILE" line below +#SAMPLE FILE + +# # Linux floppy drives +drive a: file="/dev/fd0" exclusive +drive b: file="/dev/fd1" exclusive + +# # First SCSI hard disk partition +# drive c: file="/dev/sda1" + +# # First IDE hard disk partition +# drive c: file="/dev/hda1" + +# # dosemu floppy image +# drive m: file="/var/lib/dosemu/diskimage" + +# # dosemu hdimage +# drive n: file="/var/lib/dosemu/diskimage" offset=3840 + +# # Atari ramdisk image +# drive o: file="/tmp/atari_rd" offset=136 + +# # ZIP disk for Solaris: +# Drive X is ZIP-100 at target 5 +# drive X: file="/dev/rdsk/c0t5d0s2" partition=4 scsi=1 nodelay + +# # ZIP disk for SunOS: +# # Zip drive is at target 5, which default kernel calls tape st1 !! +# drive Y: file="/dev/rsd5c" partition=4 scsi=1 nodelay + +# # autoselect zip drive/floppy on HP-UX 9/10 +# drive a: file="/dev/rdsk/c201d5" exclusive partition=4 +# drive a: file="/dev/rdsk/c201d5s0" exclusive partition=4 +# drive a: file="/dev/rfloppy/c201d0s0" exclusive + +# A/UX target 5 on 1st scsi bus jaz or zip +# drive X: file="/dev/rdsk/c105d0s31" partition=4 + + +# Some examples for BeOS. +# floppy drive. hardcoded in devices.c, so no real need to define it here +#drive a: file="/dev/floppy_disk" exclusive +# ZIP drive on SCSI ID 6 +#drive z: file="/dev/scsi_disk_060" offset=16384 fat_bits=16 + +# SCO Unix 3.2v4 +# # Floppy disk drives +# +# drive a: file="/dev/install" exclusive +# drive b: file="/dev/install1" exclusive +# +# # SCSI hard disk partitions +# +# drive c: file="/dev/dsk/0sC" +# drive d: file="/dev/dsk/0sD" +# drive e: file="/dev/dsk/0sE" +# drive f: file="/dev/dsk/0sF" +# drive g: file="/dev/dsk/0sG" +# drive h: file="/dev/dsk/0sH" + +# # uncomment the following line to display all file names in lower +# # case by default +# mtools_lower_case=1 diff --git a/source/a/floppy/slack-desc b/source/a/floppy/slack-desc new file mode 100644 index 000000000..bb9169420 --- /dev/null +++ b/source/a/floppy/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +floppy: floppy (floppy disk utilities) +floppy: +floppy: Contains fdutils-5.4, tools to test and format floppy disks; and +floppy: mtools-3.9.8, a collection of utilities for using DOS/Windows floppy +floppy: disks with Linux. +floppy: +floppy: +floppy: +floppy: +floppy: +floppy: diff --git a/source/a/gawk/gawk.SlackBuild b/source/a/gawk/gawk.SlackBuild new file mode 100755 index 000000000..e65e5aaf7 --- /dev/null +++ b/source/a/gawk/gawk.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.1.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gawk + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gawk-$VERSION +tar xjvf $CWD/gawk-$VERSION.tar.bz2 +cd gawk-$VERSION + +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $ARCH-slackware-linux + +make -j3 || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +( cd $PKG/usr/bin + ln -sf gawk-$VERSION gawk + ln -sf pgawk-$VERSION pgawk +) +mkdir -p $PKG/bin +mv $PKG/usr/bin/gawk* $PKG/bin +mv $PKG/usr/bin/awk $PKG/bin +( cd $PKG/usr/bin + ln -sf ../../bin/awk . + ln -sf ../../bin/gawk . + ln -sf ../../bin/gawk-$VERSION . +) +( cd $PKG/usr/info + rm dir + gzip -9 * +) +( cd $PKG/usr/man/man1 + rm -f pgawk.1 + gzip -9 * + ln -sf gawk.1.gz awk.1.gz + ln -sf gawk.1.gz pgawk.1.gz +) +mkdir -p $PKG/usr/doc/gawk-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING FUTURES INSTALL LIMITATIONS NEWS POSIX.STD \ + PROBLEMS README README_d \ + $PKG/usr/doc/gawk-$VERSION +find $PKG/usr/doc/gawk-$VERSION -type d -exec chmod 755 {} \; +find $PKG/usr/doc/gawk-$VERSION -type f -exec chmod 644 {} \; +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/gawk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/gawk/slack-desc b/source/a/gawk/slack-desc new file mode 100644 index 000000000..739f2a9e6 --- /dev/null +++ b/source/a/gawk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gawk: gawk (pattern scanning and processing language) +gawk: +gawk: Gawk is the GNU Project's implementation of the AWK programming +gawk: language. It conforms to the definition of the language in the POSIX +gawk: 1003.2 Command Language And Utilities Standard. This version in turn +gawk: is based on the description in The AWK Programming Language, by Aho, +gawk: Kernighan, and Weinberger, with the additional features found in the +gawk: System V Release 4 version of UNIX awk. Gawk also provides more +gawk: recent Bell Labs awk extensions, and some GNU-specific extensions. +gawk: +gawk: diff --git a/source/a/genpower/genpower.SlackBuild b/source/a/genpower/genpower.SlackBuild new file mode 100755 index 000000000..03f15675c --- /dev/null +++ b/source/a/genpower/genpower.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-1.0.5} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-genpower + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf genpower-$VERSION +tar xvf $CWD/genpower-$VERSION.tar.gz || exit 1 +cd genpower-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +find . -type d -name CVS -depth -exec rm -rf {} \; + +zcat $CWD/genpower.var.diff.gz | patch -p1 -E --verbose || exit 1 +zcat $CWD/genpower.halt.diff.gz | patch -p1 --verbose || exit 1 + +make -j4 || make || exit 1 +mkdir -p $PKG/sbin +cat genpowerd > $PKG/sbin/genpowerd +cat gentest > $PKG/sbin/gentest +cat genpowerfail > $PKG/sbin/genpowerfail +mkdir -p $PKG/etc +cat genpowerd.conf > $PKG/etc/genpowerd.conf.new +chmod 755 $PKG/sbin/* + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/man/man8 +cat genpowerd.8 | gzip -9c > $PKG/usr/man/man8/genpowerd.8.gz +cat gentest.8 | gzip -9c > $PKG/usr/man/man8/gentest.8.gz + +mkdir -p $PKG/usr/doc/genpower-$VERSION +cp -a \ + COPYING Change.Log README TODO genpower.docs cables \ + $PKG/usr/doc/genpower-$VERSION + +mkdir -p $PKG/install +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/genpowerd.conf.new +EOF +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/genpower-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/genpower/genpower.halt.diff b/source/a/genpower/genpower.halt.diff new file mode 100644 index 000000000..05c6a23f1 --- /dev/null +++ b/source/a/genpower/genpower.halt.diff @@ -0,0 +1,32 @@ +--- ./genpowerfail.orig 2008-12-02 17:49:36.000000000 -0600 ++++ ./genpowerfail 2008-12-02 18:22:37.000000000 -0600 +@@ -36,23 +36,23 @@ + stats=`head -1 $statpath` + case "$stats" in + FAIL) # Power is down +- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & ++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & + ;; + SCRAM) # Battery is low +- shutdown -r now "THE POWER IS DOWN! BATTERY POWER IS LOW! EMERGENCY SHUTDOWN!" < /dev/console & ++ shutdown -h now "THE POWER IS DOWN! BATTERY POWER IS LOW! EMERGENCY SHUTDOWN!" < /dev/console & + ;; + CABLE) # Possible bad cable +- shutdown -r +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & ++ shutdown -h +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & + ;; + *) # Unknown message, assume power is down +- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & ++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & + ;; + + esac + else +- # genowerfail called, and upsstatus dosen't exist. ++ # genpowerfail called, and upsstatus dosen't exist. + # Assume user is using powerd, and shutdown. +- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & ++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & + + fi + ;; diff --git a/source/a/genpower/genpower.var.diff b/source/a/genpower/genpower.var.diff new file mode 100644 index 000000000..fa3c9e998 --- /dev/null +++ b/source/a/genpower/genpower.var.diff @@ -0,0 +1,34 @@ +--- ./genpowerfail.orig Wed Apr 10 18:25:07 2002 ++++ ./genpowerfail Wed Apr 10 19:14:27 2002 +@@ -6,19 +6,19 @@ + # This script is also being run when the power comes + # up again (if it does in time!) + # +-# Version: /etc/genpowerfail 1.0.1 ++# Version: /sbin/genpowerfail 1.0.1 + # + # Author: Tom Webster <webster@kaiwan.com> + # + + # Set the path. +-PATH=/sbin:/etc:/bin:/usr/bin ++PATH=/sbin:/bin:/usr/bin:/usr/sbin + + # Set location of upsstatus file + statpath="/etc/upsstatus" + + # Set location of file containing PID of running shutdowns +-spidpath="/etc/shutdownpid" ++spidpath="/var/run/shutdownpid" + + # See what happened. + case "$1" in +@@ -63,7 +63,7 @@ + shutdown -c "THE POWER IS BACK" + ;; + *) +- echo "Usage: /etc/genpowerfail {start|stop}" ++ echo "Usage: /sbin/genpowerfail {start|stop}" + exit 1 + ;; + esac diff --git a/source/a/genpower/slack-desc b/source/a/genpower/slack-desc new file mode 100644 index 000000000..e0f4590e5 --- /dev/null +++ b/source/a/genpower/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +genpower: genpower (UPS monitoring daemon) +genpower: +genpower: The genpower daemon, genpowerd, will monitor the status of a serial +genpower: line connected to a UPS (Uninterruptible Power Supply). If a power +genpower: failure is detected, genpowerd will notify the system to take the +genpower: needed steps to react to the condition of the UPS. This may include +genpower: shutting the system down, or canceling a pending shutdown if the +genpower: power is restored. +genpower: +genpower: +genpower: diff --git a/source/a/gettext/gettext-tools.SlackBuild b/source/a/gettext/gettext-tools.SlackBuild new file mode 100755 index 000000000..945032c69 --- /dev/null +++ b/source/a/gettext/gettext-tools.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2005-2008 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gettext-tools + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf gettext-$VERSION +tar xjvf $CWD/gettext-$VERSION.tar.bz2 || exit 1 +cd gettext-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/gettext-tools-$VERSION \ + --build=$ARCH-slackware-linux +make -j4 || exit 1 +cd gettext-tools +make install DESTDIR=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +gzip $PKG/usr/man/man?/* +( cd $PKG/usr/doc + mv gettext gettext-tools-$VERSION + cd gettext-tools-$VERSION + # These take up a ton of space otherwise + tar cf examples.tar examples + bzip2 -9 examples.tar + rm -rf examples + # Move the HTML docs into a subdirectory: + mkdir html + mv *.html html + # This file isn't in the package, but it's in one you have to install, + # or there will be bigger problems than this dead link: + rm -f ABOUT-NLS + ln -sf /usr/share/gettext/ABOUT-NLS . +) +cp -a \ + AUTHORS ../COPYING INSTALL NEWS README \ + $PKG/usr/doc/gettext-tools-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc.gettext-tools > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/gettext-tools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/gettext/gettext.SlackBuild b/source/a/gettext/gettext.SlackBuild new file mode 100755 index 000000000..bdc269c50 --- /dev/null +++ b/source/a/gettext/gettext.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gettext + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf gettext-$VERSION +tar xjvf $CWD/gettext-$VERSION.tar.bz2 || exit 1 +cd gettext-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cd gettext-runtime +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/gettext-$VERSION \ + --disable-static \ + --build=$ARCH-slackware-linux + +make -j4 || exit 1 +make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +gzip -9 $PKG/usr/man/man?/* +( cd $PKG/usr/doc + mkdir gettext-$VERSION + mv gettext/csharpdoc gettext/javadoc1 gettext/javadoc2 libasprintf \ + gettext-$VERSION + rm -rf gettext + cd gettext-$VERSION + if [ -r $PKG/usr/share/gettext/ABOUT-NLS ]; then + rm -f ABOUT-NLS + ln -sf /usr/share/gettext/ABOUT-NLS . + fi +) +cp -a \ + AUTHORS BUGS intl/COPYING.LIB-2.0 intl/COPYING.LIB-2.1 INSTALL NEWS README \ + $PKG/usr/doc/gettext-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/gettext-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/gettext/slack-desc b/source/a/gettext/slack-desc new file mode 100644 index 000000000..b8f30f254 --- /dev/null +++ b/source/a/gettext/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gettext: gettext (internationalization framework) +gettext: +gettext: The GNU gettext package contains "gettext" and "ngettext", programs +gettext: that are used to internationalize the messages given by shell scripts. +gettext: +gettext: +gettext: +gettext: +gettext: +gettext: +gettext: diff --git a/source/a/gettext/slack-desc.gettext-tools b/source/a/gettext/slack-desc.gettext-tools new file mode 100644 index 000000000..06c32c463 --- /dev/null +++ b/source/a/gettext/slack-desc.gettext-tools @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gettext-tools: gettext-tools (internationalization framework tools) +gettext-tools: +gettext-tools: The GNU gettext-tools package is useful for authors and maintainers of +gettext-tools: internationalized software, or for anyone compiling programs that +gettext-tools: use the gettext functions. This package provides the needed tools and +gettext-tools: library functions for the handling of messages in different languages. +gettext-tools: Some other GNU packages use the gettext program (included in this +gettext-tools: package) to internationalize the messages given by shell scripts. +gettext-tools: +gettext-tools: +gettext-tools: diff --git a/source/a/getty-ps/getty-ps.SlackBuild b/source/a/getty-ps/getty-ps.SlackBuild new file mode 100755 index 000000000..76e4012dd --- /dev/null +++ b/source/a/getty-ps/getty-ps.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.1.0b +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-getty-ps + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xzvf $CWD/getty_ps-$VERSION.tar.gz +cd getty_ps-$VERSION +zcat $CWD/getty.bugfixes.diff.gz | patch -p1 --verbose || exit +# Prevent "error: conflicting types for 'send'" +# because send is already defined in <sys/net.h> +sed -i -e "s/send/gettysend/g" funcs.c +chown -R root:root . +make clean +rm getty uugetty +make +strip getty uugetty +mkdir $PKG/sbin +cat getty > $PKG/sbin/getty +cat uugetty > $PKG/sbin/uugetty +chmod 755 $PKG/sbin/* +mkdir $PKG/etc +cat Examples/gettydefs > $PKG/etc/gettydefs +#cat Examples/ttytype > $PKG/etc/ttytype +mkdir $PKG/etc/default +cp -a Examples/default/* $PKG/etc/default +chown root:root $PKG/etc/default/* +mkdir -p $PKG/usr/man/man1 +cat man/getty.1 | gzip -9c > $PKG/usr/man/man1/getty.1.gz +( cd $PKG/usr/man/man1 ; ln -sf getty.1.gz uugetty.1.gz ) +mkdir -p $PKG/usr/man/man5 +cat man/gettydefs.5 | gzip -9c > $PKG/usr/man/man5/gettydefs.5.gz +mkdir -p $PKG/usr/doc/getty-ps-$VERSION +cp -a \ + ANNOUNCE ChangeLog README.* Examples *.lsm INSTALL \ + $PKG/usr/doc/getty-ps-$VERSION +find $PKG/usr/doc/getty-ps-$VERSION -type d -exec chmod 755 {} \; +find $PKG/usr/doc/getty-ps-$VERSION -type f -exec chmod 644 {} \; +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/getty-ps-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/getty_ps-$VERSION + rm -rf $PKG +fi diff --git a/source/a/getty-ps/getty.bugfixes.diff b/source/a/getty-ps/getty.bugfixes.diff new file mode 100644 index 000000000..6a1ed29e9 --- /dev/null +++ b/source/a/getty-ps/getty.bugfixes.diff @@ -0,0 +1,356 @@ +This patch contains the following bugfixes: + +* the TIMEOUT (and -t flag) has now different effect for getty and uugetty: + with uugetty, TIMEOUT set will now cause uugetty exit no matter whether + there has been any input from the user (the counting will start immediately + after login() has been spawned - pre- getty-2.1.0 behavior), while for + getty, it will make the counter start after single input has been detected + from the user + * getty.1 manpage updated accordingly + +* @F issue substitution now works as expected + +* @V / VERSION functionality documentation fix in getty.1 manpage + +* fixed a bunch of memleaks (if not all): + * Fputs() made strdup()-free (we now use static structs where possible) + * avoided unnecessary dual strdup() for Version in defs() + * freeing of "DEF **def" including its internals is now handled, as well as + feeing of other variables in defs() pointing to strdup()ed memory areas + +Jan Rafaj + +--- ./man/getty.1.orig 2002-09-13 09:05:03.000000000 +0200 ++++ ./man/getty.1 2005-07-21 10:24:53.000000000 +0200 +@@ -307,7 +307,18 @@ + to exit (which + .I init + should then respawn), if the login is not completed within timeout seconds +-(after the login name is entered) ++(after the login name is entered). This option behaves differently for ++.I getty ++and ++.I uugetty. ++If ++.I getty ++is used, the counting will start after single input from the user has been ++detected, whileas with ++.I uugetty, ++the counting will start immediately after ++.IR login (1m) ++has been spawned, no matter the input from the user. + + Giving + .B \-w +@@ -388,9 +399,12 @@ + If + .I string + begins with a '/' character, it is assumed to be the full pathname of a +-file, and ++text file, and + .B @V +-is set to be the contents of that file. The default is /proc/version. ++is set to be the contents of the first line in that file (line has to be ++terminated by newline character or by end of file). ++.br ++The default is /proc/version. + .TP + LOGIN=\fIname\fR + Sets the name of the login program to +@@ -503,6 +517,14 @@ + to exit if no user name is accepted before the + .I number + of seconds elapse after the login prompt is displayed. ++With ++.I getty, ++the counting will start as soon as a single character ++has been entered by the user, whileas with ++.I uugetty, ++the counting will start immediately after the login prompt ++is displayed, no matter the input from the user. ++.br + The default is to wait indefinitely for the user name. + .TP + CONNECT=\fIstring\fR +@@ -865,6 +887,11 @@ + .IR cu (1) + and others). This prevents two or more processes from having conficting + use of a tty port. ++.br ++.I Uugetty ++also differs from ++.I getty ++by handling the -t parameter and TIMEOUT option. + .PP + When + .I uugetty +--- ./main.c.orig 2004-04-11 03:34:34.000000000 +0200 ++++ ./main.c 2005-07-21 11:37:19.000000000 +0200 +@@ -78,6 +78,8 @@ + void debugstart(); + #endif /* DEBUG */ + ++DEF **def; ++ + /* trivial globals */ + + char buf[MAXLINE]; +@@ -86,7 +88,7 @@ + char tbuf[64]; + + #define Perror(s) { debug(D_INIT, "Line %d: %s: Error %d: %s\n", \ +- __LINE__, s, errno, sys_errlist[errno]); \ ++ __LINE__, s, errno, strerror(errno)); \ + exit(errno); \ + } + +@@ -149,6 +151,50 @@ + } + } + ++/* ++ * Why a lot of programmers ignore the fact that memory area returned ++ * by strdup() and *alloc() has to be freed upon exit? :(( -JR ++ */ ++void free_def(void) ++{ ++ register DEF **deflist = def; ++ ++ for (; *deflist != (DEF *)NULL; deflist++) { ++ free((*deflist)->name); ++ free((*deflist)->value); ++ free(*deflist); ++ } ++} ++ ++void free_sysname(void) ++{ ++ if (SysName) ++ free(SysName); ++ SysName = NULL; ++} ++ ++void free_version(void) ++{ ++ if (Version) ++ free(Version); ++ Version = NULL; ++} ++ ++#ifdef UUGETTY ++void free_lock(void) ++{ ++ if (lock) ++ free(lock); ++ lock = NULL; ++} ++ ++void free_altlock(void) ++{ ++ if (altlock) ++ free(altlock); ++ altlock = NULL; ++} ++#endif + + /* + ** main +@@ -320,7 +366,6 @@ + char **args; + { + register int c; +- DEF **def; + char *p; + char termcap[1024]; + +@@ -416,22 +461,27 @@ + /* now, get all that info in the defaults file */ + + def = defbuild(defname); ++ atexit(free_def); + #ifdef DEBUG + if ((p = defvalue(def, "DEBUG"))) (void) sscanf(p, "%o", &Debug); + if (Debug) debugstart(); + #endif /* DEBUG */ + SysName = strdup(getuname()); ++ atexit(free_sysname); + if (p = defvalue(def, "SYSTEM")) SysName = p; +- if (p = defvalue(def, "VERSION")) +- Version = strdup(p); +- if (*Version == '/') +- { if ((fp = fopen(Version, "r"))) +- { fgets(buf, MAXLINE, fp); +- fclose(fp); +- buf[strlen(buf)-1] = '\0'; +- Version = strdup(buf); ++ if (p = defvalue(def, "VERSION")) { ++ if (*p == '/') { ++ if ((fp = fopen(p, "r"))) { ++ fgets(buf, MAXLINE, fp); ++ fclose(fp); ++ buf[strlen(buf)-1] = '\0'; ++ Version = strdup(buf); + } +- } ++ } else { ++ Version = strdup(p); ++ } ++ atexit(free_version); ++ } + if((p = defvalue(def, "LOGIN"))) login_pgm = p; + if((p = defvalue(def, "ISSUE"))) issue = p; + if((p = defvalue(def, "CLEAR")) && (strequal(p, "NO"))) +@@ -489,12 +539,15 @@ + #ifdef UUGETTY + (void) sprintf(buf, LOCK, Device); + lock = strdup(buf); ++ atexit(free_lock); + if((p = defvalue(def, "ALTLOCK"))) { + (void) sprintf(buf, LOCK, p); + altlock = strdup(buf); ++ atexit(free_altlock); + } else if(! strequal(Device, InitDevice)) { + (void) sprintf(buf, LOCK, InitDevice); + altlock = strdup(buf); ++ atexit(free_altlock); + } + + debug(D_LOCK, "lock = (%s), altlock = (%s)", lock, altlock); +@@ -625,8 +678,8 @@ + with the uts struct filled above. + */ + +- debug(D_UTMP, "adding utmp entry: type: %d, pid: %d, line: %s, +- id: %c%c, time: %d, user: %s, host: %s, addr: %d", ++ debug(D_UTMP, "adding utmp entry: type: %d, pid: %d, line: %s, " ++ "id: %c%c, time: %d, user: %s, host: %s, addr: %d", + uts.ut_type, uts.ut_pid, uts.ut_line, + (uts.ut_id[0] ? uts.ut_id[0] : ' '), + (uts.ut_id[1] ? uts.ut_id[1] : ' '), +@@ -1077,16 +1130,20 @@ + login_prompt: + (void) ioctl(STDIN, TCFLSH, 0); + #ifdef FIDO +- if (emsi && (strcmp(emsi,"yes") == 0)) +- (void) Fputs("**EMSI_REQA77E\r", stdout); ++ if (emsi && (strcmp(emsi,"yes") == 0)) ++ (void) Fputs("**EMSI_REQA77E\r", stdout); + #endif + (void) Fputs(gtab->login, stdout); +- ++#ifndef UUGETTY + login_result=getlogname(&termio, buf, MAXLINE); ++#endif + if(TimeOut > 0) { + (void) signal(SIGALRM, timeout); + (void) alarm((unsigned) TimeOut); + } ++#ifdef UUGETTY ++ login_result=getlogname(&termio, buf, MAXLINE); ++#endif + + switch(login_result) { + #ifdef FIDO +@@ -1114,6 +1171,13 @@ + #ifdef SETTERM + setenv("TERM", term, TRUE); + #endif /* SETTERM */ ++ free_def(); ++ free_sysname(); ++ free_version(); ++#ifdef UUGETTY ++ free_lock(); ++ free_altlock(); ++#endif + debug(D_RUN, "execing login"); + (void) execl(login_pgm, + "login", buf, NULLPTR); +--- ./funcs.c.orig 2002-09-25 08:43:28.000000000 +0200 ++++ ./funcs.c 2005-07-20 19:01:55.000000000 +0200 +@@ -87,12 +87,11 @@ + register char *s; + register FILE *stream; + { +- char c, n, tbuf[20], ubuf[MAXBUF]; +- char *cbuf; ++ char c, n, tbuf[20]; + time_t clock; + struct tm *lt; +- struct utsname utsbuf; +- struct hostent *fqdname; ++ static struct utsname utsbuf; ++ static struct hostent *fqdname; + FILE *fp1; + + char *day_name[] = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" }; +@@ -119,21 +118,8 @@ + return(EOF); + break; + case 'F': /* FQDName */ +- cbuf = strdup(SysName); +-#if 0 /* The does a seg violation - no idea why.... */ + fqdname = gethostbyname(SysName); +-#endif +-#if 0 /* So, we cheat.....! */ +- /* Which also gets a seg violation! */ +- if (fp1 = fopen("/etc/HOSTNAME", "r")) +- { fgets(cbuf, MAXBUF, fp1); +- fclose(fp1); +- cbuf[strlen(cbuf)] = '\0'; +- } +- if (fqdname != NULL) +- cbuf = strdup(fqdname->h_name); +-#endif +- if (Fputs(cbuf, stream) == EOF) ++ if (fqdname && Fputs(fqdname->h_name, stream) == EOF) + return(EOF); + break; + case 'L': /* line */ +@@ -141,18 +127,15 @@ + return(EOF); + break; + case 'M': /* arch of machine */ +- cbuf = strdup(utsbuf.machine); +- if (Fputs(cbuf, stream) == EOF) ++ if (Fputs(utsbuf.machine, stream) == EOF) + return(EOF); + break; + case 'O': /* O/S name */ +- cbuf = strdup(utsbuf.sysname); +- if (Fputs(cbuf, stream) == EOF) ++ if (Fputs(utsbuf.sysname, stream) == EOF) + return(EOF); + break; + case 'R': /* O/S rev_id */ +- cbuf = strdup(utsbuf.release); +- if (Fputs(cbuf, stream) == EOF) ++ if (Fputs(utsbuf.release, stream) == EOF) + return(EOF); + break; + case 'S': /* system node name */ +@@ -166,8 +149,8 @@ + return(EOF); + break; + case 'U': /* number of active users */ +- (void) sprintf(ubuf, "%d", Nusers); +- if (Fputs(ubuf, stream) == EOF) ++ (void) sprintf(tbuf, "%d", Nusers); ++ if (Fputs(tbuf, stream) == EOF) + return(EOF); + break; + case 'V': /* version */ +@@ -175,12 +158,10 @@ + return(EOF); + break; + case 'u': /* user count str */ +- cbuf = malloc(20); + (void) sprintf(tbuf, "%d User", Nusers); + if (Nusers > 1) +- cbuf = strcat(tbuf,"s"); +- else cbuf=strdup(tbuf); +- if (Fputs(cbuf, stream) == EOF) ++ strcat(tbuf, "s"); ++ if (Fputs(tbuf, stream) == EOF) + return(EOF); + break; + case '@': /* in case '@@' was used */ diff --git a/source/a/getty-ps/getty_ps-2.1.0.lsm b/source/a/getty-ps/getty_ps-2.1.0.lsm new file mode 100644 index 000000000..b89d9f50f --- /dev/null +++ b/source/a/getty-ps/getty_ps-2.1.0.lsm @@ -0,0 +1,26 @@ +Begin4 +Title: getty-ps +Version: 2.1.0 +Entered-date: 27SEP02 +Description: A versatile getty/uugetty program designed to allow easy + use of a modem for incoming/outgoing data/fax/voice calls. + It also allows easy set-up of regular login ports. Unlike + agetty, it stores most of it's configuration and port + initialization information in up to 2 files. This usually + results in slightly more involved initial installation, but + easier maintenance than agetty. It also leaves the + inittab entries looking uncluttered. Supports 57600 and + faster speeds, and is compatible with uucp and efax-0.9[a]. + Ringback is provided as an optional feature. +Keywords: getty uugetty serial modem ringback efax uucp +Author: Paul Sutcliffe, Jr. +Maintained-by: Christine Jamison <getty-info@nwmagic.net> +Primary-site: ftp.ibiblio.org:/pub/Linux/system/serial/getty_ps-2.1.0.tar.gz +Alternate-site: ftp.nwmagic.net:/pub/sources/getty_ps-2.1.0.tar.gz +Original-site: Unknown +Platforms: Linux (tested on 1.0.x-2.4.5, Slackware 4.0 thru 8.1); should + compile and work on almost any Unix, after library + compatibility is resolved and paths are checked in tune.h; + compiles clean with gcc 2.7.2.3 & 2.95.3. +Copying-policy: FRS +End diff --git a/source/a/getty-ps/slack-desc b/source/a/getty-ps/slack-desc new file mode 100644 index 000000000..dda6cf7ad --- /dev/null +++ b/source/a/getty-ps/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +getty-ps: getty-ps (console or terminal login) +getty-ps: +getty-ps: /sbin/getty and /sbin/uugetty. +getty-ps: These control the process of logging into your system, and may be used +getty-ps: instead of 'agetty', which is the default getty included with the +getty-ps: util-linux package. getty-ps supports a number of enhancements such as +getty-ps: ringback support. +getty-ps: +getty-ps: getty-ps was originally written by Paul Sutcliffe, Jr, and is +getty-ps: currently maintained by Christine Jamison. +getty-ps: diff --git a/source/a/gpm/gpm-1.20.1-consolename.patch b/source/a/gpm/gpm-1.20.1-consolename.patch new file mode 100644 index 000000000..c5879fb41 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-consolename.patch @@ -0,0 +1,18 @@ +--- gpm-1.20.1/src/lib/liblow.c.orig 2004-10-13 16:34:15.181502369 -0400 ++++ gpm-1.20.1/src/lib/liblow.c 2004-10-13 16:34:20.491778415 -0400 +@@ -262,13 +262,14 @@ + gpm_report(GPM_PR_ERR,"consolename not set"); + goto err; + } ++#if 0 + /* do we really need this check ? */ + if(strncmp(tty,consolename,strlen(consolename)-1) + || !isdigit(tty[strlen(consolename)-1])) { + gpm_report(GPM_PR_ERR,"strncmp/isdigit/consolename failed"); + goto err; + } +- ++#endif + conn->vc=atoi(&tty[strlen(consolename)-1]); + } + diff --git a/source/a/gpm/gpm-1.20.1-gpmopen.patch b/source/a/gpm/gpm-1.20.1-gpmopen.patch new file mode 100644 index 000000000..f36ad9396 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-gpmopen.patch @@ -0,0 +1,22 @@ +--- gpm-1.20.1/src/lib/liblow.c.gpmopen 2004-05-04 17:36:09.000000000 -0400 ++++ gpm-1.20.1/src/lib/liblow.c 2004-05-04 17:42:51.000000000 -0400 +@@ -200,8 +200,6 @@ + Gpm_Stst *new = NULL; + char* sock_name = 0; + +- consolename = NULL; +- + #if 0 + gpm_report(GPM_PR_DEBUG,"VC: %d",flag); + #endif +@@ -260,6 +258,10 @@ + gpm_report(GPM_PR_ERR,"checking tty name failed"); + goto err; + } ++ if (consolename == NULL) { ++ gpm_report(GPM_PR_ERR,"consolename not set"); ++ goto err; ++ } + /* do we really need this check ? */ + if(strncmp(tty,consolename,strlen(consolename)-1) + || !isdigit(tty[strlen(consolename)-1])) { diff --git a/source/a/gpm/gpm-1.20.1-idie.patch b/source/a/gpm/gpm-1.20.1-idie.patch new file mode 100644 index 000000000..4594f0784 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-idie.patch @@ -0,0 +1,12 @@ +--- gpm-1.20.1/src/lib/liblow.c.orig 2004-05-06 14:14:03.000000000 -0400 ++++ gpm-1.20.1/src/lib/liblow.c 2004-05-06 14:18:05.000000000 -0400 +@@ -376,7 +376,9 @@ + + /*....................................... Error: free all memory */ + err: ++#if 0 + gpm_report(GPM_PR_ERR,"Oh, oh, it's an error! possibly I die! "); ++#endif + do { + new=gpm_stack->next; + free(gpm_stack); diff --git a/source/a/gpm/gpm-1.20.1-input-defines.diff b/source/a/gpm/gpm-1.20.1-input-defines.diff new file mode 100644 index 000000000..4a925a6a3 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-input-defines.diff @@ -0,0 +1,26 @@ +--- ./src/headers/input-defines.h.orig 2006-12-11 19:56:14.000000000 -0600 ++++ ./src/headers/input-defines.h 2006-12-11 19:59:30.000000000 -0600 +@@ -59,23 +59,4 @@ + #define PSMOUSE_SYNAPTICS 7 + #endif + +-#ifndef HAVE_INPUT_ID +-struct input_id { +- unsigned short bustype; +- unsigned short vendor; +- unsigned short product; +- unsigned short version; +-}; +-#endif +- +-#ifndef HAVE_INPUT_ABSINFO +-struct input_absinfo { +- int value; +- int minimum; +- int maximum; +- int fuzz; +- int flat; +-}; +-#endif +- + #endif diff --git a/source/a/gpm/gpm-1.20.1-input.patch b/source/a/gpm/gpm-1.20.1-input.patch new file mode 100644 index 000000000..152e60381 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-input.patch @@ -0,0 +1,16 @@ +diff -ur gpm-1.20.1.orig/src/headers/config.h.in gpm-1.20.1/src/headers/config.h.in +--- gpm-1.20.1.orig/src/headers/config.h.in 2004-09-04 10:24:11.000000000 -0400 ++++ gpm-1.20.1/src/headers/config.h.in 2004-09-04 10:26:02.000000000 -0400 +@@ -46,6 +46,12 @@ + /* Define if you have the <linux/input.h> header file. */ + #undef HAVE_LINUX_INPUT_H + ++/* Definedif you have the input_id structure */ ++#undef HAVE_INPUT_ID ++ ++/* Definedif you have the input_absinfo structure */ ++#undef HAVE_INPUT_ABSINFO ++ + /* Define if you have the <linux/joystick.h> header file. */ + #undef HAVE_LINUX_JOYSTICK_H + diff --git a/source/a/gpm/gpm-1.20.1-lib-silent.patch b/source/a/gpm/gpm-1.20.1-lib-silent.patch new file mode 100644 index 000000000..099075b5b --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-lib-silent.patch @@ -0,0 +1,19 @@ +--- gpm-1.20.1/src/lib/report-lib.c.lib-silent 2002-12-24 23:57:16.000000000 +0100 ++++ gpm-1.20.1/src/lib/report-lib.c 2006-01-18 17:55:38.000000000 +0100 +@@ -24,8 +24,16 @@ + + #include "headers/message.h" + ++static int gpm_silent() { ++ if ( getenv( "GPM_VERBOSE" ) == NULL ) return 1; ++ return 0; ++} ++ + void gpm_report(int line, char *file, int stat, char *text, ... ) + { ++ if ( gpm_silent() && stat != GPM_STAT_OOPS ) ++ return; ++ + char *string = NULL; + va_list ap; + va_start(ap,text); diff --git a/source/a/gpm/gpm-1.20.1-math.patch b/source/a/gpm/gpm-1.20.1-math.patch new file mode 100644 index 000000000..634a5fd84 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-math.patch @@ -0,0 +1,11 @@ +--- gpm-1.20.1/configure.in.math Tue Jun 24 10:52:44 2003 ++++ gpm-1.20.1/configure.in Tue Jun 24 10:53:54 2003 +@@ -128,7 +128,7 @@ + AC_SUBST(lispdir) + + CPPFLAGS='-I$(srcdir) $(DEFS) -include headers/config.h -Wall -DSYSCONFDIR="\"$(sysconfdir)\"" -DSBINDIR="\"$(sbindir)\""' +-LDFLAGS='-L$(srcdir)' ++LDFLAGS='-lm -L$(srcdir)' + + dnl AC_DEFINE_UNQUOTED(SYSCONFDIR,"$sysconfdir") + dnl AC_DEFINE_UNQUOTED(SBINDIR,"$sbindir") diff --git a/source/a/gpm/gpm-1.20.1-multilib.patch b/source/a/gpm/gpm-1.20.1-multilib.patch new file mode 100644 index 000000000..723ee2b59 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-multilib.patch @@ -0,0 +1,52 @@ +--- gpm-1.20.1/doc/Makefile.in.multilib 2002-12-24 17:57:16.000000000 -0500 ++++ gpm-1.20.1/doc/Makefile.in 2004-10-20 17:25:11.000000000 -0400 +@@ -97,7 +97,7 @@ + + # Main portion + +-all: $(srcdir)/gpm.info $(MANPAGES) ++all: gpm.info $(MANPAGES) + + # why gpmdoc.ps and gpm.ps?? + # there is no gpm.ps in my tree and no rule to generate gpm.ps. +@@ -131,8 +131,8 @@ + #i keep all my infopages compressed and i'm tired to do it by + #hand, so check if there are any compressed pages and do this + #one too +- -ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \ +- && gzip -f $(infodir)/gpm.info ++ #-ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \ ++ # && gzip -f $(infodir)/gpm.info + # Hmm.... shouldn't man pages be compressed too? + # maybe they should, but at least at my system they are not. + +--- gpm-1.20.1/contrib/Makefile.in.multilib 2002-12-24 17:57:16.000000000 -0500 ++++ gpm-1.20.1/contrib/Makefile.in 2004-10-20 17:11:38.000000000 -0400 +@@ -9,10 +9,10 @@ + + include $(top_builddir)/Makefile.include + +-all: $(srcdir)/$(ELISP) ++all: $(filter-out %.elc,$(srcdir)/$(ELISP)) + + install: all +- if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \ ++ if [ -n "$(filter-out %.elc,$(ELISP))" ]; then for i in `echo $(filter-out %.elc,$(ELISP))`; do \ + $(INSTALL_DATA) $(srcdir)/$$i $(lispdir)/`basename $$i` ;\ + done; fi + +@@ -20,7 +20,7 @@ + $(EMACS) -batch -l $(srcdir)/emacs/exec.el -exec '(byte-compile-file "$<")' + + uninstall: +- if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \ ++ if [ -n "$(filter-out %.elc,$(ELISP))" ]; then for i in `echo $(filter-out %.elc,$(ELISP))`; do \ + rm -f $(lispdir)/$$i ;\ + done; fi + +@@ -28,4 +28,4 @@ + $(CP) -r $(srcdir) $(top_builddir)/gpm-$(release)/ + + clean distclean: +- $(RM) -f $(srcdir)/emacs/*.elc ++ $(RM) $(srcdir)/emacs/*.elc diff --git a/source/a/gpm/gpm-1.20.1-no-console-error.patch b/source/a/gpm/gpm-1.20.1-no-console-error.patch new file mode 100644 index 000000000..20c177b4d --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-no-console-error.patch @@ -0,0 +1,15 @@ +--- gpm-1.20.1/src/console.c.no-console-error 2006-01-18 17:06:15.000000000 +0100 ++++ gpm-1.20.1/src/console.c 2006-01-18 17:08:19.000000000 +0100 +@@ -249,8 +249,10 @@ + /* Failed, try OLD console */ + else if (stat(GPM_OLD_CONSOLE, &buf) == 0) + console.device = GPM_OLD_CONSOLE; +- else +- gpm_report(GPM_PR_OOPS, "Can't determine console device"); ++ else { // XXX handle this gracefully? ++ fprintf( stderr, "no console device found" ); ++ exit( 1 ); ++ } + + return console.device; + } diff --git a/source/a/gpm/gpm-1.20.1-nodebug.patch b/source/a/gpm/gpm-1.20.1-nodebug.patch new file mode 100644 index 000000000..945b576c4 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-nodebug.patch @@ -0,0 +1,12 @@ +--- gpm-1.20.1/src/lib/liblow.c.orig 2004-03-31 15:06:45.000000000 -0500 ++++ gpm-1.20.1/src/lib/liblow.c 2004-03-31 15:09:32.000000000 -0500 +@@ -202,7 +202,9 @@ + + consolename = NULL; + ++#if 0 + gpm_report(GPM_PR_DEBUG,"VC: %d",flag); ++#endif + + /*....................................... First of all, check xterm */ + diff --git a/source/a/gpm/gpm-1.20.1-subscript.patch b/source/a/gpm/gpm-1.20.1-subscript.patch new file mode 100644 index 000000000..bf4ca75b0 --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-subscript.patch @@ -0,0 +1,11 @@ +--- gpm-1.20.1/src/mice.c.lr 2004-02-15 09:19:48.000000000 +0100 ++++ gpm-1.20.1/src/mice.c 2004-02-15 09:22:18.000000000 +0100 +@@ -2112,7 +2112,7 @@ + for (i=0; i<4; i++) + if (gunze_calib[i] & ~1023) calibok = 0; + if (gunze_calib[0] == gunze_calib[2]) calibok = 0; +- if (gunze_calib[1] == gunze_calib[4]) calibok = 0; ++ if (gunze_calib[1] == gunze_calib[3]) calibok = 0; + fclose(f); + } + if (!calibok) { diff --git a/source/a/gpm/gpm-1.20.1-weak-wgetch.patch b/source/a/gpm/gpm-1.20.1-weak-wgetch.patch new file mode 100644 index 000000000..81e6a2b5b --- /dev/null +++ b/source/a/gpm/gpm-1.20.1-weak-wgetch.patch @@ -0,0 +1,38 @@ +--- gpm-1.20.1/src/lib/libcurses.c.weak-wgetch 2002-12-24 17:57:16.000000000 -0500 ++++ gpm-1.20.1/src/lib/libcurses.c 2004-03-22 15:51:24.000000000 -0500 +@@ -41,7 +41,12 @@ + #endif /* HAVE_NCURSES_CURSES_H */ + #endif /* HAVE_NCURSES_H */ + +-#define GET(win) ((win) ? wgetch(win) : getch()) ++/* If win != NULL, it must have been created by ncurses anyway. ++ Avoid circular library dependencies. */ ++#pragma weak wgetch ++#pragma weak stdscr ++ ++#define GET(win) ((win && wgetch) ? wgetch(win) : getch()) + + int Gpm_Wgetch(WINDOW *win) + { +--- gpm-1.20.1/configure.in.weak-wgetch 2004-03-22 15:49:51.000000000 -0500 ++++ gpm-1.20.1/configure.in 2004-03-22 15:51:24.000000000 -0500 +@@ -115,7 +115,7 @@ + AC_CHECK_LIB($i, wgetch,,,$TERMLIBS) + else :; fi + done +- SHARED_LIBS="$LIBS $TERMLIBS -lc" ++ SHARED_LIBS="-lc" + LIBS=$SAVELIBS ;; + esac + +--- gpm-1.20.1/configure.weak-wgetch 2004-03-22 15:49:55.000000000 -0500 ++++ gpm-1.20.1/configure 2004-03-22 15:51:24.000000000 -0500 +@@ -4295,7 +4295,7 @@ + + else :; fi + done +- SHARED_LIBS="$LIBS $TERMLIBS -lc" ++ SHARED_LIBS="-lc" + LIBS=$SAVELIBS ;; + esac + diff --git a/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff b/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff new file mode 100644 index 000000000..111e7843b --- /dev/null +++ b/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff @@ -0,0 +1,86 @@ +diff -u -r gpm-1.20.1.orig/src/report.c gpm-1.20.1/src/report.c +--- gpm-1.20.1.orig/src/report.c 2006-08-20 14:34:30.000000000 -0500 ++++ gpm-1.20.1/src/report.c 2006-08-20 14:44:54.000000000 -0500 +@@ -48,15 +48,15 @@ + * + * Startup Mode: + * debug : - (ignore) +- * info : syslog/stdout +- * warn/err : syslog/stderr ++ * info : syslog ++ * warn/err : syslog + * oops : syslog/stderr [exit] + * + * Running Mode: (daemon) + * debug : - (ignore) + * info : syslog +- * warn : syslog+system console +- * err : syslog+system console+current console ++ * warn : syslog ++ * err : syslog + * oops : syslog/stderr [_exit] + * + * Debug Mode : +@@ -85,9 +85,6 @@ + syslog(LOG_INFO | LOG_USER, GPM_STRING_INFO); + vsyslog(LOG_INFO | LOG_USER, text, ap); + #endif +- fprintf(stderr,GPM_STRING_INFO); +- vfprintf(stderr,text,ap); +- fprintf(stderr,"\n"); + break; + + case GPM_STAT_WARN: +@@ -95,9 +92,6 @@ + syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN); + vsyslog(LOG_DAEMON | LOG_WARNING, text, ap); + #endif +- fprintf(stderr,GPM_STRING_WARN); +- vfprintf(stderr,text,ap); +- fprintf(stderr,"\n"); + break; + + case GPM_STAT_ERR: +@@ -105,9 +99,6 @@ + syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR); + vsyslog(LOG_DAEMON | LOG_ERR, text, ap); + #endif +- fprintf(stderr,GPM_STRING_ERR); +- vfprintf(stderr,text,ap); +- fprintf(stderr,"\n"); + break; + + case GPM_STAT_OOPS: +@@ -139,12 +130,6 @@ + syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN); + vsyslog(LOG_DAEMON | LOG_WARNING, text, ap); + #endif +- if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) { +- fprintf(f, GPM_STRING_WARN); +- vfprintf(f, text, ap); +- fprintf(f, "\n"); +- fclose(f); +- } + break; + + case GPM_STAT_ERR: +@@ -152,19 +137,6 @@ + syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR); + vsyslog(LOG_DAEMON | LOG_ERR, text, ap); + #endif +- if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) { +- fprintf(f, GPM_STRING_ERR); +- vfprintf(f, text, ap); +- fprintf(f, "\n"); +- fclose(f); +- } +- +- if ((f = fopen(console.device, "a")) != NULL) { +- fprintf(f, GPM_STRING_ERR); +- vfprintf(f, text, ap); +- fprintf(f, "\n"); +- fclose(f); +- } + break; + + case GPM_STAT_OOPS: diff --git a/source/a/gpm/gpm-evdev-cumulative.patch b/source/a/gpm/gpm-evdev-cumulative.patch new file mode 100644 index 000000000..2fd86d10c --- /dev/null +++ b/source/a/gpm/gpm-evdev-cumulative.patch @@ -0,0 +1,7023 @@ +diff -urN gpm-1.20.1/configure.in gpm/configure.in +--- gpm-1.20.1/configure.in 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/configure.in 2003-10-02 01:22:42.000000000 -0500 +@@ -61,6 +61,13 @@ + + AC_CHECK_HEADERS(syslog.h linux/input.h linux/joystick.h ncurses.h ncurses/curses.h curses.h) + ++EVDEV_SRCS= ++if test ${ac_cv_header_linux_input_h} = yes ; then ++ EVDEV_SRCS=evdev.c ; ++ AC_CHECK_TYPE(struct input_absinfo,AC_DEFINE_UNQUOTED(HAVE_INPUT_ABSINFO, 1, [define if struct input_absinfo defined in linux/input.h]),,[#include <linux/input.h>]) ++ AC_CHECK_TYPE(struct input_id,AC_DEFINE_UNQUOTED(HAVE_INPUT_ID, 1, [define if struct input_id defined in linux/input.h]),,[#include <linux/input.h>]) ++fi ++ + AC_ARG_WITH(curses, + [ --without-curses disable curses support even if curses found]) + +@@ -124,6 +131,7 @@ + AC_SUBST(PICFLAGS) + AC_SUBST(SOLDFLAGS) + AC_SUBST(CURSES_OBJS) ++AC_SUBST(EVDEV_SRCS) + AC_SUBST(SHARED_LIBS) + AC_SUBST(lispdir) + +diff -urN gpm-1.20.1/src/client.c gpm/src/client.c +--- gpm-1.20.1/src/client.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/client.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,319 @@ ++/* ++ * client.c - GPM client handling (server side) ++ * ++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net> ++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org> ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> /* strerror(); ?!? */ ++#include <errno.h> ++#include <unistd.h> /* select(); */ ++#include <signal.h> /* SIGPIPE */ ++#include <time.h> /* time() */ ++#include <sys/fcntl.h> /* O_RDONLY */ ++#include <sys/stat.h> /* mkdir() */ ++#include <sys/time.h> /* timeval */ ++#include <sys/types.h> /* socket() */ ++#include <sys/socket.h> /* socket() */ ++#include <sys/un.h> /* struct sockaddr_un */ ++ ++#include "headers/gpmInt.h" ++#include "headers/message.h" ++#include "headers/console.h" ++#include "headers/selection.h" ++#include "headers/client.h" ++ ++/* who the f*** runs gpm without glibc? doesn't have dietlibc __socklent_t? */ ++#if !defined(__GLIBC__) ++ typedef unsigned int __socklen_t; ++#endif /* __GLIBC__ */ ++ ++#ifndef max ++#define max(a,b) ((a)>(b) ? (a) : (b)) ++#endif ++ ++extern int errno; ++ ++struct client_info *cinfo[MAX_VC + 1]; ++ ++/*-------------------------------------------------------------------* ++ * This was inline, and incurred in a compiler bug (2.7.0) ++ *-------------------------------------------------------------------*/ ++static int get_data(int fd, Gpm_Connect *data) ++{ ++ static int len; ++ ++#ifdef GPM_USE_MAGIC ++ while ((len = read(whence, &check, sizeof(int))) == 4 && ++ check != GPM_MAGIC) ++ gpm_report(GPM_PR_INFO, GPM_MESS_NO_MAGIC); ++ ++ if (len == 0) return 0; ++ ++ if (check != GPM_MAGIC) { ++ gpm_report(GPM_PR_INFO, GPM_MESS_NOTHING_MORE); ++ return -1; ++ } ++#endif ++ ++ len = read(fd, data, sizeof(Gpm_Connect)); ++ ++ return len ? (len == sizeof(Gpm_Connect) ? 1 : -1) : 0; ++} ++ ++/*-------------------------------------------------------------------*/ ++int listen_for_clients(void) ++{ ++ struct sockaddr_un ctladdr; ++ int fd, len; ++ ++ unlink(GPM_NODE_CTL); ++ ++ if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_SOCKET_PROB); ++ ++ memset(&ctladdr, 0, sizeof(ctladdr)); ++ ctladdr.sun_family = AF_UNIX; ++ strcpy(ctladdr.sun_path, GPM_NODE_CTL); ++ len = sizeof(ctladdr.sun_family) + strlen(GPM_NODE_CTL); ++ ++ if (bind(fd, (struct sockaddr *)&ctladdr, len) == -1) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_BIND_PROB, ctladdr.sun_path); ++ ++ /* needs to be 0777, so all users can _try_ to access gpm */ ++ chmod(GPM_NODE_CTL, 0777); ++ listen(fd, 5); /* Queue up calls */ ++ ++ return fd; ++} ++ ++/*-------------------------------------------------------------------*/ ++struct client_info *accept_client_connection(int fd) ++{ ++ struct client_info *info; ++ Gpm_Connect *request; ++ int newfd; ++#if !defined(__GLIBC__) ++ int len; ++#else /* __GLIBC__ */ ++ size_t len; /* isn't that generally defined in C ??? -- nico */ ++#endif /* __GLIBC__ */ ++ struct sockaddr_un addr; /* reuse this each time */ ++#ifndef SO_PEERCRED ++ struct stat statbuf; ++ time_t staletime; ++#endif ++ uid_t uid; ++ ++ /*....................................... Accept */ ++ memset(&addr, 0, sizeof(addr)); ++ addr.sun_family = AF_UNIX; ++ ++ len = sizeof(addr); ++ if ((newfd = accept(fd, (struct sockaddr *)&addr, &len)) < 0) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_ACCEPT_FAILED, strerror(errno)); ++ return NULL; ++ } ++ ++ gpm_report(GPM_PR_INFO, GPM_MESS_CONECT_AT, newfd); ++ ++ if (!(info = malloc(sizeof(struct client_info)))) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_MEM); ++ ++ request = &info->data; ++ if (get_data(newfd, request) == -1) ++ goto err; ++ ++ if (request->vc > MAX_VC) { ++ gpm_report(GPM_PR_WARN,GPM_MESS_REQUEST_ON, request->vc, MAX_VC); ++ goto err; ++ } ++ ++#ifndef SO_PEERCRED ++ if (stat(addr.sun_path, &statbuf) == -1 || !S_ISSOCK(statbuf.st_mode)) { ++ gpm_report(GPM_PR_ERR,GPM_MESS_ADDRES_NSOCKET,addr.sun_path); ++ goto err; ++ } ++ ++ unlink(addr.sun_path); /* delete socket */ ++ ++ staletime = time(0) - 30; ++ if (statbuf.st_atime < staletime || ++ statbuf.st_ctime < staletime || ++ statbuf.st_mtime < staletime) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_SOCKET_OLD); ++ goto err; ++ } ++ ++ uid = statbuf.st_uid; /* owner of socket */ ++#else ++ { ++ struct ucred sucred; ++ socklen_t credlen = sizeof(struct ucred); ++ ++ if (getsockopt(newfd, SOL_SOCKET, SO_PEERCRED, &sucred, &credlen) == -1) { ++ gpm_report(GPM_PR_ERR,GPM_MESS_GETSOCKOPT, strerror(errno)); ++ goto err; ++ } ++ uid = sucred.uid; ++ gpm_report(GPM_PR_DEBUG,GPM_MESS_PEER_SCK_UID, uid); ++ } ++#endif ++ ++ if (uid != 0 && !is_console_owner(request->vc, uid)) { ++ gpm_report(GPM_PR_WARN, GPM_MESS_FAILED_CONNECT, uid, request->vc); ++ goto err; ++ } ++ ++ /* register the connection information in the right place */ ++ info->next = cinfo[request->vc]; ++ info->fd = newfd; ++ cinfo[request->vc] = info; ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_LONG_STATUS, ++ request->pid, request->vc, request->eventMask, request->defaultMask, ++ request->minMod, request->maxMod); ++ ++ return info; ++ ++err: ++ free(info); ++ close(newfd); ++ ++ return NULL; ++} ++ ++/*-------------------------------------------------------------------*/ ++void remove_client(struct client_info *ci, int vc) ++{ ++ struct client_info *p, *prev = NULL; ++ ++ for (p = cinfo[vc]; p; prev = p, p = p->next) { ++ if (p == ci) { ++ if (!prev) /* it is on top of the stack */ ++ cinfo[vc] = p->next; ++ else ++ prev->next = p->next; ++ break; ++ } ++ } ++ if (p) free(p); ++} ++ ++/*-------------------------------------------------------------------*/ ++void notify_clients_resize(void) ++{ ++ struct client_info *ci; ++ int i; ++ ++ for (i = 0; i < MAX_VC + 1; i++) ++ for (ci = cinfo[i]; ci; ci = ci->next) ++ kill(ci->data.pid, SIGWINCH); ++} ++ ++/*-------------------------------------------------------------------*/ ++/* returns 0 if the event has not been processed, and 1 if it has */ ++int do_client(struct client_info *cinfo, Gpm_Event *event) ++{ ++ Gpm_Connect *info = &cinfo->data; ++ /* value to return if event is not used */ ++ int res = !(info->defaultMask & event->type); ++ ++ /* instead of returning 0, scan the stack of clients */ ++ if ((info->minMod & event->modifiers) < info->minMod) ++ goto try_next; ++ if ((info->maxMod & event->modifiers) < event->modifiers) ++ goto try_next; ++ ++ /* if not managed, use default mask */ ++ if (!(info->eventMask & GPM_BARE_EVENTS(event->type))) { ++ if (res) return res; ++ else goto try_next; ++ } ++ ++ /* WARNING */ /* This can generate a SIGPIPE... I'd better catch it */ ++ MAGIC_P((write(cinfo->fd, &magic, sizeof(int)))); ++ write(cinfo->fd, event, sizeof(Gpm_Event)); ++ ++ return info->defaultMask & GPM_HARD ? res : 1; /* HARD forces pass-on */ ++ ++ try_next: ++ if (cinfo->next != 0) ++ return do_client(cinfo->next, event); /* try the next */ ++ ++ return 0; /* no next, not used */ ++} ++ ++/*-------------------------------------------------------------------*/ ++/* returns 0 if client disconnects, -1 - error, 1 -successs */ ++int process_client_request(struct client_info *ci, int vc, ++ int x, int y, int buttons, int clicks, ++ int three_button_mouse) ++{ ++ int rc; ++ Gpm_Connect conn; ++ static Gpm_Event event; ++ ++ gpm_report(GPM_PR_INFO, GPM_MESS_CON_REQUEST, ci->fd, vc); ++ if (vc > MAX_VC) return -1; ++ ++ /* itz 10-22-96 this shouldn't happen now */ ++ if (vc == -1) gpm_report(GPM_PR_OOPS, GPM_MESS_UNKNOWN_FD); ++ ++ rc = get_data(ci->fd, &conn); ++ ++ if (rc == 0) { /* no data */ ++ gpm_report(GPM_PR_INFO, GPM_MESS_CLOSE); ++ close(ci->fd); ++ return 0; ++ } ++ ++ if (rc == -1) return -1; /* too few bytes */ ++ ++ if (conn.pid != 0) { ++ ci->data = conn; ++ return 1; ++ } ++ ++ /* Aha, request for information (so-called snapshot) */ ++ switch (conn.vc) { ++ case GPM_REQ_SNAPSHOT: ++ event.vc = get_console_state(&event.modifiers); ++ event.x = x; event.y = y; ++ event.buttons = buttons; ++ event.clicks = clicks; ++ event.dx = console.max_x; event.dy = console.max_y; ++ /* fall through */ ++ ++ case GPM_REQ_BUTTONS: ++ event.type = (three_button_mouse == 1 ? 3 : 2); /* buttons */ ++ write(ci->fd, &event, sizeof(Gpm_Event)); ++ break; ++ ++ case GPM_REQ_NOPASTE: ++ selection_disable_paste(); ++ gpm_report(GPM_PR_INFO, GPM_MESS_DISABLE_PASTE, vc); ++ break; ++ } ++ ++ return 1; ++} ++ +diff -urN gpm-1.20.1/src/console.c gpm/src/console.c +--- gpm-1.20.1/src/console.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/console.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,257 @@ ++/* ++ * console.c - GPM console and selection/paste handling ++ * ++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net> ++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org> ++ * Copyright (c) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> /* strerror(); ?!? */ ++#include <errno.h> ++#include <unistd.h> /* select(); */ ++#include <time.h> /* time() */ ++#include <sys/fcntl.h> /* O_RDONLY */ ++#include <sys/stat.h> /* mkdir() */ ++#include <asm/types.h> /* __u32 */ ++ ++#include <linux/vt.h> /* VT_GETSTATE */ ++#include <sys/kd.h> /* KDGETMODE */ ++#include <termios.h> /* winsize */ ++ ++#include "headers/gpmInt.h" ++#include "headers/console.h" ++#include "headers/message.h" ++ ++#ifndef HAVE___U32 ++# ifndef _I386_TYPES_H /* /usr/include/asm/types.h */ ++typedef unsigned int __u32; ++# endif ++#endif ++ ++struct gpm_console console = { 0, DEF_LUT, 0, 0 }; ++ ++/*-------------------------------------------------------------------*/ ++static int count_digits(int num) ++{ ++ int digits = 1; ++ ++ while ((num /= 10)) ++ digits++; ++ ++ return digits; ++} ++ ++/*-------------------------------------------------------------------*/ ++char *compose_vc_name(int vc) ++{ ++ char *tty; ++ ++ tty = malloc(strlen(console.device) + count_digits(vc) + sizeof(char)); ++ if (tty) { ++ /* console is /dev/vc/0 or /dev/tty0 and we trimming the ending 0 */ ++ strncpy(tty, console.device, strlen(console.device) - 1); ++ sprintf(&tty[strlen(console.device) - 1], "%d", vc); ++ } ++ ++ return tty; ++} ++ ++/*-------------------------------------------------------------------*/ ++int open_console(int mode) ++{ ++ int fd; ++ ++ if ((fd = open(console.device, mode)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN_CON); ++ ++ return fd; ++} ++ ++/*-------------------------------------------------------------------*/ ++int is_text_console(void) ++{ ++ int fd; ++ int kd_mode; ++ ++ fd = open_console(O_RDONLY); ++ if (ioctl(fd, KDGETMODE, &kd_mode)<0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_IOCTL_KDGETMODE); ++ close(fd); ++ ++ return kd_mode == KD_TEXT; ++} ++ ++/*-------------------------------------------------------------------*/ ++void wait_text_console(void) ++{ ++ do { ++ sleep(2); ++ } while (!is_text_console()); ++} ++ ++/*-------------------------------------------------------------------*/ ++void refresh_console_size(void) ++{ ++ struct winsize win; ++ int fd = open_console(O_RDONLY); ++ ++ ioctl(fd, TIOCGWINSZ, &win); ++ close(fd); ++ ++ if (!win.ws_col || !win.ws_row) { ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_ZERO_SCREEN_DIM); ++ console.max_x = 80; console.max_y = 25; ++ } else { ++ console.max_x = win.ws_col; console.max_y = win.ws_row; ++ } ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SCREEN_SIZE, console.max_x, console.max_y); ++} ++ ++/*-------------------------------------------------------------------*/ ++int get_console_state(unsigned char *shift_state) ++{ ++ struct vt_stat stat; ++ int fd; ++ ++ fd = open_console(O_RDONLY); ++ ++ *shift_state = 6; /* code for the ioctl */ ++ if (ioctl(fd, TIOCLINUX, shift_state) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_GET_SHIFT_STATE); ++ ++ if (ioctl(fd, VT_GETSTATE, &stat) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_GET_CONSOLE_STAT); ++ ++ close(fd); ++ ++ return stat.v_active; ++} ++ ++/*-------------------------------------------------------------------*/ ++int is_console_owner(int vc, uid_t uid) ++{ ++ struct stat statbuf; ++ char *tty; ++ int rc; ++ ++ if ((tty = compose_vc_name(vc)) == NULL) ++ gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); ++ ++ if ((rc = stat(tty, &statbuf)) == -1) ++ gpm_report(GPM_PR_ERR, GPM_MESS_STAT_FAILS, tty); ++ ++ free(tty); ++ ++ return rc != -1 && uid == statbuf.st_uid; ++} ++ ++/*-------------------------------------------------------------------*/ ++/* octal digit */ ++static int isodigit(const unsigned char c) ++{ ++ return ((c & ~7) == '0'); ++} ++ ++/*-------------------------------------------------------------------*/ ++/* routine to convert digits from octal notation (Andries Brouwer) */ ++static int getsym(const unsigned char *p0, unsigned char *res) ++{ ++ const unsigned char *p = p0; ++ char c; ++ ++ c = *p++; ++ if (c == '\\' && *p) { ++ c = *p++; ++ if (isodigit(c)) { ++ c -= '0'; ++ if (isodigit(*p)) c = 8*c + (*p++ - '0'); ++ if (isodigit(*p)) c = 8*c + (*p++ - '0'); ++ } ++ } ++ *res = c; ++ return (p - p0); ++} ++ ++/*-------------------------------------------------------------------*/ ++/* description missing! FIXME */ ++void console_load_lut(void) ++{ ++ extern int errno; ++ int i, c, fd; ++ unsigned char this, next; ++ static __u32 long_array[9] = { ++ 0x05050505, /* ugly, but preserves alignment */ ++ 0x00000000, /* control chars */ ++ 0x00000000, /* digits */ ++ 0x00000000, /* uppercase and '_' */ ++ 0x00000000, /* lowercase */ ++ 0x00000000, /* Latin-1 control */ ++ 0x00000000, /* Latin-1 misc */ ++ 0x00000000, /* Latin-1 uppercase */ ++ 0x00000000 /* Latin-1 lowercase */ ++ }; ++ ++#define inwordLut (long_array+1) ++ ++ for (i = 0; console.charset[i]; ) { ++ i += getsym(console.charset + i, &this); ++ if (console.charset[i] == '-' && console.charset[i + 1] != '\0') ++ i += getsym(console.charset + i + 1, &next) + 1; ++ else ++ next = this; ++ for (c = this; c <= next; c++) ++ inwordLut[c >> 5] |= 1 << (c & 0x1F); ++ } ++ ++ fd = open_console(O_WRONLY); ++ ++ if (ioctl(fd, TIOCLINUX, &long_array) < 0) { /* fd <0 is checked */ ++ if (errno == EPERM && getuid()) ++ gpm_report(GPM_PR_WARN, GPM_MESS_ROOT); /* why do we still continue?*/ ++ else if (errno == EINVAL) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_CSELECT); ++ } ++ close(fd); ++} ++ ++/*-------------------------------------------------------------------*/ ++/* Returns the name of the console (/dev/tty0 or /dev/vc/0) */ ++/* Also fills console.device */ ++char *get_console_name() ++{ ++ struct stat buf; ++ ++ /* first try the devfs device, because in the next time this will be ++ * the preferred one. If that fails, take the old console */ ++ ++ /* Check for open new console */ ++ if (stat(GPM_DEVFS_CONSOLE, &buf) == 0) ++ console.device = GPM_DEVFS_CONSOLE; ++ ++ /* Failed, try OLD console */ ++ else if (stat(GPM_OLD_CONSOLE, &buf) == 0) ++ console.device = GPM_OLD_CONSOLE; ++ else ++ gpm_report(GPM_PR_OOPS, "Can't determine console device"); ++ ++ return console.device; ++} ++ +diff -urN gpm-1.20.1/src/evdev.c gpm/src/evdev.c +--- gpm-1.20.1/src/evdev.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/evdev.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,851 @@ ++/* ++ * evdev.c - support for event input devices in linux 2.4 & 2.6 ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * Based on XFree86 driver by Stefan Gmeiner & Peter Osterlund ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <unistd.h> ++#include <string.h> ++#include <time.h> ++#include <sys/select.h> ++#include <sys/time.h> ++ ++#include <linux/input.h> ++#include "headers/input-defines.h" /* misisng bits in case <linux/input.h> is old */ ++ ++#include "headers/gpm.h" ++#include "headers/gpmInt.h" ++#include "headers/console.h" ++#include "headers/message.h" ++#include "headers/optparser.h" ++ ++enum evdev_type { ++ EVDEV_UNKNOWN, ++ EVDEV_RELATIVE, ++ EVDEV_ABSOLUTE, ++ EVDEV_TOUCHPAD, ++ EVDEV_SYNAPTICS ++}; ++ ++enum touch_type { ++ TOUCH_NONE, ++ TOUCH_FINGERS, ++ TOUCH_PALM ++}; ++ ++enum gesture_type { ++ GESTURE_NONE, ++ GESTURE_TAP_PENDING, ++ GESTURE_TAP, ++ GESTURE_DRAG_PENDING, ++ GESTURE_DRAG, ++ GESTURE_DOUBLE_TAP ++}; ++ ++enum edge_type { ++ BOTTOM_EDGE = 1, ++ TOP_EDGE = 2, ++ LEFT_EDGE = 4, ++ RIGHT_EDGE = 8, ++ LEFT_BOTTOM_EDGE = BOTTOM_EDGE | LEFT_EDGE, ++ RIGHT_BOTTOM_EDGE = BOTTOM_EDGE | RIGHT_EDGE, ++ RIGHT_TOP_EDGE = TOP_EDGE | RIGHT_EDGE, ++ LEFT_TOP_EDGE = TOP_EDGE | LEFT_EDGE ++}; ++ ++struct event_data { ++ int dx, dy; ++ int wdx, wdy; ++ int abs_x, abs_y; ++ int buttons; ++ int touch; /* dumb touchpad report touch events, smart ones - pressure */ ++ int pressure; ++ int w; ++ int finger_count; ++ int synced; ++}; ++ ++struct touch_data { ++ int touching; ++ int x, y; ++ int finger_count; ++ int buttons; ++ int clicks; ++ struct timeval start; ++ enum gesture_type gesture; ++}; ++ ++struct event_device { ++ enum evdev_type type; ++ int dont_sync; ++ ++ struct event_data pkt; ++ int pkt_count; ++ ++ int prev_x[4], prev_y[4]; ++ int prev_pressure, avg_w; ++ struct touch_data touch; ++ ++ int left_edge, right_edge; ++ int top_edge, bottom_edge; ++ int touch_high, touch_low; ++ int tap_time, tap_move; ++ int y_inverted; ++ ++ enum touch_type (*detect_touch)(struct event_device *evdev); ++ void (*update_finger_count)(struct event_device *evdev); ++}; ++ ++struct evdev_capabilities { ++ unsigned char evbits[EV_MAX/8 + 1]; ++ unsigned char keybits[KEY_MAX/8 + 1]; ++ unsigned char absbits[ABS_MAX/8 + 1]; ++ unsigned char mscbits[MSC_MAX/8 + 1]; ++}; ++ ++#ifndef max ++#define max(a,b) ((a)>(b) ? (a) : (b)) ++#endif ++ ++#define fx(i) (evdev->prev_x[(evdev->pkt_count - (i)) & 03]) ++#define fy(i) (evdev->prev_y[(evdev->pkt_count - (i)) & 03]) ++ ++#define toggle_btn(btn, val) do { if (val) data->buttons |= (btn);\ ++ else data->buttons &= ~(btn);\ ++ } while (0) ++#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) ++#define DIF_TIME(t1,t2) ((t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec) / 1000) ++ ++#define test_bit(bit, array) (array[bit / 8] & (1 << (bit % 8))) ++ ++/* ------------- evdev protocol handling routines ---------------------*/ ++ ++static void parse_input_event(struct input_event *event, struct event_data *data) ++{ ++ switch (event->type) { ++ case EV_REL: ++ switch (event->code) { ++ case REL_X: ++ data->dx = (signed char)event->value; ++ break; ++ case REL_Y: ++ data->dy = (signed char)event->value; ++ break; ++ case REL_WHEEL: ++ data->wdy += event->value; ++ break; ++ case REL_HWHEEL: ++ data->wdx += event->value; ++ break; ++ } ++ break; ++ ++ case EV_ABS: ++ switch (event->code) { ++ case ABS_X: ++ data->abs_x = event->value; ++ break; ++ ++ case ABS_Y: ++ data->abs_y = event->value; ++ break; ++ ++ case ABS_PRESSURE: ++ data->pressure = event->value; ++ break; ++ ++ case ABS_TOOL_WIDTH: ++ data->w = event->value; ++ break; ++ } ++ break; ++ ++ case EV_MSC: ++ switch (event->code) { ++ case MSC_GESTURE: ++ data->w = event->value; ++ break; ++ } ++ break; ++ ++ ++ case EV_KEY: ++ switch(event->code) { ++ case BTN_0: ++ case BTN_LEFT: ++ toggle_btn(GPM_B_LEFT, event->value); ++ break; ++ ++ case BTN_2: ++ case BTN_STYLUS2: ++ case BTN_SIDE: ++ case BTN_MIDDLE: ++ toggle_btn(GPM_B_MIDDLE, event->value); ++ break; ++ ++ case BTN_STYLUS: ++ case BTN_1: ++ case BTN_RIGHT: ++ toggle_btn(GPM_B_RIGHT, event->value); ++ break; ++ ++ case BTN_TOUCH: ++ data->touch = event->value ? 1 : 0; ++ break; ++ ++ case BTN_TOOL_FINGER: ++ if (event->value) data->finger_count = 1; ++ break; ++ ++ case BTN_TOOL_DOUBLETAP: ++ if (event->value) data->finger_count = 2; ++ break; ++ ++ case BTN_TOOL_TRIPLETAP: ++ if (event->value) data->finger_count = 3; ++ break; ++ ++ } ++ break; ++ ++ case EV_SYNC: ++ switch(event->code) { ++ case SYN_REPORT: ++ data->synced = 1; ++ break; ++ } ++ break; ++ } ++} ++ ++static void tp_figure_deltas(struct event_device *evdev, struct Gpm_Event *state) ++{ ++ struct event_data *pkt = &evdev->pkt; ++ ++ state->dx = state->dy = 0; ++ if (evdev->touch.touching) { ++ fx(0) = pkt->abs_x; ++ fy(0) = pkt->abs_y; ++ if (evdev->pkt_count >= 2 && ++ evdev->touch.gesture != GESTURE_DRAG_PENDING) { ++ state->dx = ((fx(0) - fx(1)) / 2 + (fx(1) - fx(2)) / 2) / 8; //SYN_REL_DECEL_FACTOR; ++ state->dy = ((fy(0) - fy(1)) / 2 + (fy(1) - fy(2)) / 2) / 8; //SYN_REL_DECEL_FACTOR; ++ } ++ evdev->pkt_count++; ++ } else { ++ evdev->pkt_count = 0; ++ } ++} ++ ++static enum touch_type dumb_tp_detect_touch(struct event_device *evdev) ++{ ++ return evdev->pkt.touch ? TOUCH_FINGERS : TOUCH_NONE; ++} ++ ++static enum touch_type smart_tp_detect_touch(struct event_device *evdev) ++{ ++ if (evdev->touch.touching) ++ return evdev->pkt.pressure > evdev->touch_low ? TOUCH_FINGERS : TOUCH_NONE; ++ else ++ return evdev->pkt.pressure > evdev->touch_high ? TOUCH_FINGERS : TOUCH_NONE; ++} ++ ++static enum touch_type syn_detect_touch(struct event_device *evdev) ++{ ++ struct event_data *pkt = &evdev->pkt; ++ enum touch_type type = TOUCH_NONE; ++ ++ if (pkt->pressure > 200 || pkt->w > 10) ++ return TOUCH_PALM; ++ ++ if (pkt->abs_x == 0) ++ evdev->avg_w = 0; ++ else ++ evdev->avg_w = (pkt->w - evdev->avg_w + 1) / 2; ++ ++ if (evdev->touch.touching) { ++ type = pkt->pressure > evdev->touch_low ? TOUCH_FINGERS : TOUCH_NONE; ++ } else if (pkt->pressure > evdev->touch_high) { ++ int safe_w = max(pkt->w, evdev->avg_w); ++ ++ if (pkt->finger_count > 1) ++ type = TOUCH_FINGERS; ++ else if (pkt->w < 2) ++ type = TOUCH_FINGERS; /* more than one finger -> not a palm */ ++ else if (safe_w < 6 && evdev->prev_pressure < evdev->touch_high) ++ type = TOUCH_FINGERS; /* thin finger, distinct touch -> not a palm */ ++ else if (safe_w < 7 && evdev->prev_pressure < evdev->touch_high / 2) ++ type = TOUCH_FINGERS; /* thin finger, distinct touch -> not a palm */ ++ else if (pkt->pressure > evdev->prev_pressure + 1) ++ type = TOUCH_NONE; /* pressure not stable, may be a palm */ ++ else if (pkt->pressure < evdev->prev_pressure - 5) ++ type = TOUCH_NONE; /* pressure not stable, may be a palm */ ++ else ++ type = TOUCH_FINGERS; ++ } ++ ++ evdev->prev_pressure = pkt->pressure; ++ return type; ++} ++ ++static enum edge_type tp_detect_edges(struct event_device *evdev, int x, int y) ++{ ++ enum edge_type edge = 0; ++ ++ if (x > evdev->right_edge) ++ edge |= RIGHT_EDGE; ++ else if (x < evdev->left_edge) ++ edge |= LEFT_EDGE; ++ ++ if (y < evdev->top_edge) ++ edge |= TOP_EDGE; ++ else if (y > evdev->bottom_edge) ++ edge |= BOTTOM_EDGE; ++ ++ return edge; ++} ++ ++static int tp_touch_expired(struct event_device *evdev) ++{ ++ struct timeval now; ++ ++ GET_TIME(now); ++ return DIF_TIME(evdev->touch.start, now) > evdev->tap_time; ++} ++ ++static int tp_detect_tap(struct event_device *evdev) ++{ ++ return !tp_touch_expired(evdev) && ++ (evdev->touch.finger_count > 1 || ++ (abs(evdev->pkt.abs_x - evdev->touch.x) < evdev->tap_move && ++ abs(evdev->pkt.abs_y - evdev->touch.y) < evdev->tap_move)); ++} ++ ++static int tp_tap_to_buttons(struct event_device *evdev) ++{ ++ enum edge_type edge; ++ if (evdev->touch.finger_count < 2) { ++ edge = tp_detect_edges(evdev, evdev->pkt.abs_x, evdev->pkt.abs_y); ++ switch (edge) { ++ case RIGHT_TOP_EDGE: ++ return GPM_B_MIDDLE; ++ break; ++ case RIGHT_BOTTOM_EDGE: ++ return GPM_B_RIGHT; ++ break; ++ default: ++ return GPM_B_LEFT; ++ break; ++ } ++ } else { ++ switch (evdev->touch.finger_count) { ++ case 2: ++ return GPM_B_MIDDLE; ++ case 3: ++ return GPM_B_RIGHT; ++ default: ++ return GPM_B_LEFT; ++ } ++ } ++} ++ ++static void tp_detect_gesture(struct event_device *evdev, int timed_out, enum touch_type touch_type) ++{ ++ struct touch_data *touch = &evdev->touch; ++ int was_touching = touch->touching; ++ ++ touch->touching = touch_type == TOUCH_FINGERS; ++ ++ if (touch->touching) { ++ if (!was_touching) { ++ GET_TIME(touch->start); ++ touch->finger_count = 0; ++ if (touch->gesture == GESTURE_TAP_PENDING) { ++ touch->gesture = GESTURE_DRAG_PENDING; ++ } else { ++ touch->x = evdev->pkt.abs_x; ++ touch->y = evdev->pkt.abs_y; ++ touch->buttons = 0; ++ } ++ } else if (touch->gesture == GESTURE_DRAG_PENDING && tp_touch_expired(evdev)) { ++ touch->gesture = GESTURE_DRAG; ++ } ++ } else { ++ if (was_touching) { ++ if (tp_detect_tap(evdev)) { ++ if (touch->gesture == GESTURE_DRAG_PENDING) { ++ touch->gesture = GESTURE_DOUBLE_TAP; ++ touch->clicks = 4; ++ } else { ++ if ((touch->buttons = tp_tap_to_buttons(evdev)) == GPM_B_LEFT) { ++ touch->gesture = GESTURE_TAP_PENDING; ++ } else { ++ touch->gesture = GESTURE_TAP; ++ touch->clicks = 2; ++ } ++ } ++ } else { ++ touch->gesture = GESTURE_NONE; ++ } ++ } else { ++ if (touch->gesture == GESTURE_TAP_PENDING && tp_touch_expired(evdev)) { ++ touch->gesture = GESTURE_TAP; ++ touch->clicks = 2; ++ } ++ } ++ } ++} ++ ++static int tp_process_gesture(struct event_device *evdev, struct Gpm_Event *state) ++{ ++ int next_timeout = -1; ++ ++ switch(evdev->touch.gesture) { ++ case GESTURE_DOUBLE_TAP: ++ case GESTURE_TAP: ++ if (--evdev->touch.clicks == 0) ++ evdev->touch.gesture = GESTURE_NONE; ++ else ++ next_timeout = 0; ++ ++ if (evdev->touch.clicks % 2) ++ state->buttons |= evdev->touch.buttons; ++ else ++ state->buttons &= ~evdev->touch.buttons; ++ break; ++ ++ case GESTURE_DRAG: ++ state->buttons |= evdev->touch.buttons; ++ break; ++ ++ case GESTURE_DRAG_PENDING: ++ case GESTURE_TAP_PENDING: ++ next_timeout = evdev->tap_time; ++ break; ++ ++ default: ++ break; ++ } ++ return next_timeout; ++} ++ ++static void tp_update_finger_count(struct event_device *evdev) ++{ ++ evdev->touch.finger_count = max(evdev->pkt.finger_count, evdev->touch.finger_count); ++} ++ ++static void syn_update_finger_count(struct event_device *evdev) ++{ ++ if (evdev->pkt.w == 1) ++ evdev->touch.finger_count = 3; ++ else if (evdev->pkt.w == 0 && evdev->touch.finger_count != 3) ++ evdev->touch.finger_count = 2; ++ else ++ evdev->touch.finger_count = 1; ++} ++ ++static int compose_gpm_event(struct event_device *evdev, int timed_out, Gpm_Event *state) ++{ ++ struct event_data *pkt = &evdev->pkt; ++ enum touch_type touch_type; ++ int next_timeout = -1; ++ ++ if (!timed_out) { ++ state->buttons = pkt->buttons; ++ state->wdx = pkt->wdx; state->wdy = pkt->wdy; ++ } ++ ++ switch (evdev->type) { ++ case EVDEV_RELATIVE: ++ if (!timed_out) { ++ state->dx = pkt->dx; state->dy = pkt->dy; ++ if (evdev->pkt.touch) ++ state->buttons |= GPM_B_LEFT; ++ else ++ state->buttons &= ~GPM_B_LEFT; ++ } ++ break; ++ ++ case EVDEV_ABSOLUTE: ++ if (!timed_out) { ++ if (pkt->abs_x < evdev->left_edge) ++ pkt->abs_x = evdev->left_edge; ++ else if (pkt->abs_x > evdev->right_edge) ++ pkt->abs_x = evdev->right_edge; ++ ++ if (pkt->abs_y > evdev->bottom_edge) ++ pkt->abs_y = evdev->bottom_edge; ++ else if (pkt->abs_y < evdev->top_edge) ++ pkt->abs_y = evdev->top_edge; ++ ++ state->x = (pkt->abs_x - evdev->left_edge) * ++ console.max_x / (evdev->right_edge - evdev->left_edge); ++ state->y = (pkt->abs_y - evdev->top_edge) * ++ console.max_y / (evdev->bottom_edge - evdev->top_edge); ++ ++ if (evdev->y_inverted) state->y = console.max_y - state->y; ++ ++ if (evdev->pkt.touch) ++ state->buttons |= GPM_B_LEFT; ++ else ++ state->buttons &= ~GPM_B_LEFT; ++ } ++ break; ++ ++ case EVDEV_TOUCHPAD: ++ case EVDEV_SYNAPTICS: ++ touch_type = timed_out ? TOUCH_NONE : evdev->detect_touch(evdev); ++ ++ if (touch_type != TOUCH_PALM) { ++ tp_detect_gesture(evdev, timed_out, touch_type); ++ ++ if (evdev->touch.touching && !tp_touch_expired(evdev)) ++ evdev->update_finger_count(evdev); ++ ++ if (evdev->touch.finger_count < 2) ++ tp_figure_deltas(evdev, state); ++ ++ next_timeout = tp_process_gesture(evdev, state); ++ } ++ break; ++ ++ default: ++ /* should not happen */ ++ gpm_report(GPM_PR_OOPS, "Bad evdev type %d", evdev->type); ++ break; ++ } ++ ++ if (evdev->y_inverted) state->dy = -state->dy; ++ ++ return next_timeout; ++} ++ ++int M_evdev(struct micedev *dev, struct miceopt *opts, ++ unsigned char *data, struct Gpm_Event *state) ++{ ++ struct event_device *evdev = dev->private; ++ struct input_event *event = (struct input_event *)data; ++ int timed_out = data == NULL; ++ ++ if (!timed_out) ++ parse_input_event(event, &evdev->pkt); ++ ++ if (timed_out || evdev->pkt.synced || evdev->dont_sync) { ++ dev->timeout = compose_gpm_event(evdev, timed_out, state); ++ evdev->pkt.dx = evdev->pkt.dy = 0; ++ evdev->pkt.wdx = evdev->pkt.wdy = 0; ++ evdev->pkt.finger_count = 0; ++ evdev->pkt.synced = 0; ++ return 0; ++ } ++ ++ dev->timeout = -1; ++ return -1; ++} ++ ++/* ------------- evdev initialization routines ---------------------*/ ++ ++static int evdev_get_id(int fd, struct input_id *id) ++{ ++ if (ioctl(fd, EVIOCGID, id) < 0) { ++ gpm_report(GPM_PR_ERR, "evdev: cannot query device identification"); ++ return -1; ++ } ++ return 0; ++} ++ ++static int evdev_get_capabilities(int fd, struct evdev_capabilities *caps) ++{ ++ memset(caps, 0, sizeof(*caps)); ++ ++ if (ioctl(fd, EVIOCGBIT(0, EV_MAX), caps->evbits) < 0) { ++ gpm_report(GPM_PR_ERR, "evdev: cannot query device capabilities"); ++ return -1; ++ } ++ ++ if (test_bit(EV_ABS, caps->evbits) && ++ ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(caps->absbits)), caps->absbits) < 0) { ++ gpm_report(GPM_PR_ERR, "evdev: cannot query ABS device capabilities"); ++ return -1; ++ } ++ ++ if (test_bit(EV_KEY, caps->evbits) && ++ ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(caps->keybits)), caps->keybits) < 0) { ++ gpm_report(GPM_PR_ERR, "evdev: cannot query KEY device capabilities"); ++ return -1; ++ } ++ ++ if (test_bit(EV_MSC, caps->evbits) && ++ ioctl(fd, EVIOCGBIT(EV_MSC, sizeof(caps->mscbits)), caps->mscbits) < 0) { ++ /* don't complain as 2.4 kernels didnt have it ++ gpm_report(GPM_PR_ERR, "evdev: cannot query MSC device capabilities"); ++ return -1; ++ */ ++ } ++ return 0; ++} ++ ++static int evdev_query_axis(int fd, int axis, int *axis_min, int *axis_max) ++{ ++ struct input_absinfo axis_info; ++ ++ if (ioctl(fd, EVIOCGABS(axis), &axis_info) == -1) { ++ gpm_report(GPM_PR_ERR, "evdev: could not query axis data"); ++ return -1; ++ } ++ ++ *axis_min = axis_info.minimum; ++ *axis_max = axis_info.maximum; ++ return 0; ++} ++ ++static int evdev_get_limits(int fd, struct event_device *evdev, ++ struct evdev_capabilities *caps) ++{ ++ if (test_bit(ABS_X, caps->absbits) && ++ evdev_query_axis(fd, ABS_X, &evdev->left_edge, &evdev->right_edge) < 0) ++ return -1; ++ ++ if (test_bit(ABS_Y, caps->absbits) && ++ evdev_query_axis(fd, ABS_Y, &evdev->top_edge, &evdev->bottom_edge) < 0) ++ return -1; ++ ++ return 0; ++} ++ ++static int is_synaptics(struct input_id *id) ++{ ++ return id->bustype == BUS_I8042 && id->vendor == 0x0002 && id->product == PSMOUSE_SYNAPTICS; ++} ++ ++static enum evdev_type evdev_guess_type(struct input_id *id, struct evdev_capabilities *caps) ++{ ++ if (test_bit(EV_ABS, caps->evbits)) { ++ if (is_synaptics(id)) ++ return EVDEV_SYNAPTICS; ++ ++ if (test_bit(BTN_TOUCH, caps->keybits) && caps->keybits[BTN_MOUSE / 8]) ++ return EVDEV_TOUCHPAD; ++ ++ return EVDEV_ABSOLUTE; ++ } ++ ++ if (!test_bit(EV_REL, caps->evbits)) { ++ gpm_report(GPM_PR_ERR, ++ "evdev: device does not report neither absolute nor relative coordinates"); ++ return EVDEV_UNKNOWN; ++ } ++ ++ return EVDEV_RELATIVE; ++} ++ ++static enum evdev_type evdev_str_to_type(const char *type) ++{ ++ if (!strcmp(type, "relative")) { ++ return EVDEV_RELATIVE; ++ } else if (!strcmp(type, "absolute")) { ++ return EVDEV_ABSOLUTE; ++ } else if (!strcmp(type, "touchpad")) { ++ return EVDEV_TOUCHPAD; ++ } else if (!strcmp(type, "synaptics")) { ++ return EVDEV_SYNAPTICS; ++ } else { ++ gpm_report(GPM_PR_ERR, "evdev: unknown type '%s'", type); ++ return EVDEV_UNKNOWN; ++ } ++} ++ ++static void warn_if_present(struct option_helper *optinfo, const char *name, const char *type) ++{ ++ if (is_option_present(optinfo, name)) ++ gpm_report(GPM_PR_WARN, ++ "evdev: option '%s' is not valud for type '%s', ignored", ++ name, type); ++} ++ ++// -o type=(auto|synaptics|touchpad|relative|absolute),y_inverse, ++// left=1234,right=1234,top=1234,bottom=1234, ++// touch_high=30,touch_low=25,tap_time=30,tap_move=100 ++static int evdev_apply_options(struct event_device *evdev, char *optstring) ++{ ++ char *type = "auto"; ++ struct option_helper optinfo[] = { ++ { "type", OPT_STRING, u: { sptr: &type } }, ++ { "y_inverted", OPT_BOOL, u: { iptr: &evdev->y_inverted }, value: 1 }, ++ { "left", OPT_INT, u: { iptr: &evdev->left_edge } }, ++ { "right", OPT_INT, u: { iptr: &evdev->right_edge } }, ++ { "top", OPT_INT, u: { iptr: &evdev->top_edge } }, ++ { "bottom", OPT_INT, u: { iptr: &evdev->bottom_edge } }, ++ { "touch_high", OPT_INT, u: { iptr: &evdev->touch_high } }, ++ { "touch_low", OPT_INT, u: { iptr: &evdev->touch_low } }, ++ { "tap_time", OPT_INT, u: { iptr: &evdev->tap_time } }, ++ { "tap_move", OPT_INT, u: { iptr: &evdev->tap_move } }, ++ { "", OPT_END } ++ }; ++ ++ if (parse_options("evdev", optstring, ',', optinfo) < 0) ++ return -1; ++ ++ if (strcmp(type, "auto")) ++ evdev->type = evdev_str_to_type(type); ++ ++ switch (evdev->type) { ++ case EVDEV_RELATIVE: ++ warn_if_present(optinfo, "left", type); ++ warn_if_present(optinfo, "right", type); ++ warn_if_present(optinfo, "top", type); ++ warn_if_present(optinfo, "bottom", type); ++ warn_if_present(optinfo, "tap_move", type); ++ warn_if_present(optinfo, "tap_time", type); ++ warn_if_present(optinfo, "touch_high", type); ++ warn_if_present(optinfo, "touch_low", type); ++ break; ++ ++ case EVDEV_ABSOLUTE: ++ warn_if_present(optinfo, "tap_move", type); ++ warn_if_present(optinfo, "tap_time", type); ++ warn_if_present(optinfo, "touch_high", type); ++ warn_if_present(optinfo, "touch_low", type); ++ break; ++ ++ case EVDEV_TOUCHPAD: ++ break; ++ ++ case EVDEV_SYNAPTICS: ++ warn_if_present(optinfo, "y_inverted", type); ++ break; ++ ++ default: ++ return -1; ++ } ++ return 0; ++} ++ ++int I_evdev(struct micedev *dev, struct miceopt *opts, Gpm_Type *type) ++{ ++ struct input_id id; ++ struct evdev_capabilities caps; ++ struct event_device *evdev; ++ ++ if (!dev->private) { /* called first time, not re-init */ ++ if (!(dev->private = evdev = malloc(sizeof(*evdev)))) ++ gpm_report(GPM_PR_OOPS, "Can't allocate memory for event device"); ++ ++ memset(evdev, 0, sizeof(*evdev)); ++ ++ if (evdev_get_id(dev->fd, &id)) ++ goto init_fail; ++ ++ if (evdev_get_capabilities(dev->fd, &caps)) ++ goto init_fail; ++ ++ evdev->type = evdev_guess_type(&id, &caps); ++ ++ /* load default values - suitable for my synaptics ;P */ ++ evdev->left_edge = 1900; ++ evdev->right_edge = 5300; ++ evdev->top_edge = 2000; ++ evdev->bottom_edge = 3900; ++ evdev->tap_time = 180; ++ evdev->tap_move = 220; ++ evdev->touch_high = 30; ++ evdev->touch_low = 25; ++ ++ if (evdev->type == EVDEV_ABSOLUTE && evdev_get_limits(dev->fd, evdev, &caps) < 0) ++ goto init_fail; ++ ++ if (evdev_apply_options(evdev, opts->text) < 0) ++ goto init_fail; ++ ++ if (!test_bit(EV_SYNC, caps.evbits)) { ++ evdev->dont_sync = 1; ++ if (evdev->type == EVDEV_TOUCHPAD || evdev->type == EVDEV_SYNAPTICS) { ++ gpm_report(GPM_PR_ERR, ++ "evdev: The running kernel lacks EV_SYNC support which is required for touchpad/synaptics mode"); ++ goto init_fail; ++ } ++ } ++ ++ switch (evdev->type) { ++ case EVDEV_RELATIVE: ++ gpm_report(GPM_PR_INFO, "evdev: selected Relative mode"); ++ if (!test_bit(EV_REL, caps.evbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected relative mode but device does not report any relative events"); ++ break; ++ ++ case EVDEV_ABSOLUTE: ++ gpm_report(GPM_PR_INFO, "evdev: selected Absolute mode"); ++ if (evdev->right_edge <= evdev->left_edge) { ++ gpm_report(GPM_PR_ERR, "evdev: right edge value should be gerater than left"); ++ goto init_fail; ++ } ++ if (evdev->bottom_edge <= evdev->top_edge) { ++ gpm_report(GPM_PR_ERR, "evdev: bottom edge value should be gerater than top"); ++ goto init_fail; ++ } ++ if (!test_bit(EV_ABS, caps.evbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected absolute mode but device does not report any absolute events"); ++ opts->absolute = 1; ++ break; ++ ++ case EVDEV_TOUCHPAD: ++ gpm_report(GPM_PR_INFO, "evdev: selected Touchpad mode"); ++ if (!test_bit(EV_ABS, caps.evbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected touchpad mode but device does not report any absolute events"); ++ if (test_bit(ABS_PRESSURE, caps.absbits)) ++ evdev->detect_touch = smart_tp_detect_touch; ++ else if (test_bit(BTN_TOUCH, caps.keybits)) ++ evdev->detect_touch = dumb_tp_detect_touch; ++ else ++ gpm_report(GPM_PR_WARN, "evdev: selected touchpad mode but device does not report pressure not touch events"); ++ evdev->update_finger_count = tp_update_finger_count; ++ break; ++ ++ case EVDEV_SYNAPTICS: ++ gpm_report(GPM_PR_INFO, "evdev: selected Synaptics mode"); ++ if (!is_synaptics(&id)) ++ gpm_report(GPM_PR_WARN, "evdev: idevice isn't identified as Synaptics"); ++ if (!test_bit(EV_ABS, caps.evbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected synaptics mode but device does not report any absolute events"); ++ if (!test_bit(ABS_PRESSURE, caps.absbits)) ++ gpm_report(GPM_PR_WARN, "evdev: selected synaptics mode but device does not report pressure"); ++ if (test_bit(EV_MSC, caps.evbits) && test_bit(MSC_GESTURE, caps.mscbits)) { ++ /* this is compatibility mode with pre 2.6-test6 kernels */ ++ evdev->update_finger_count = syn_update_finger_count; ++ evdev->y_inverted = 1; ++ } else { ++ evdev->update_finger_count = tp_update_finger_count; ++ } ++ evdev->detect_touch = syn_detect_touch; ++ break; ++ ++ default: ++ break; ++ } ++ } ++ ++ return 0; ++ ++init_fail: ++ free(dev->private); ++ return -1; ++} ++ +diff -urN gpm-1.20.1/src/gpm.c gpm/src/gpm.c +--- gpm-1.20.1/src/gpm.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/gpm.c 2003-10-02 01:22:42.000000000 -0500 +@@ -24,1108 +24,607 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> /* strerror(); ?!? */ ++#include <limits.h> + #include <errno.h> + #include <unistd.h> /* select(); */ + #include <signal.h> /* SIGPIPE */ + #include <time.h> /* time() */ +-#include <sys/param.h> + #include <sys/fcntl.h> /* O_RDONLY */ + #include <sys/wait.h> /* wait() */ +-#include <sys/stat.h> /* mkdir() */ + #include <sys/time.h> /* timeval */ +-#include <sys/types.h> /* socket() */ +-#include <sys/socket.h> /* socket() */ +-#include <sys/un.h> /* struct sockaddr_un */ +- +-#include <linux/vt.h> /* VT_GETSTATE */ +-#include <sys/kd.h> /* KDGETMODE */ +-#include <termios.h> /* winsize */ + + #include "headers/gpmInt.h" + #include "headers/message.h" +- +-/* who the f*** runs gpm without glibc? doesn't have dietlibc __socklent_t? */ +-#if !defined(__GLIBC__) +- typedef unsigned int __socklen_t; +-#endif /* __GLIBC__ */ ++#include "headers/console.h" ++#include "headers/selection.h" ++#include "headers/client.h" + + #ifndef max + #define max(a,b) ((a)>(b) ? (a) : (b)) + #endif + +-extern int errno; +- +-static void gpm_killed(int); +- +-/* +- * all the values duplicated for dual-mouse operation are +- * now in this structure (see gpmInt.h) +- * mouse_table[0] is single mouse, mouse_table[1] and mouse_table[2] +- * are copied data from mouse_table[0] for dual mouse operation. +- */ +- +-struct mouse_features mouse_table[3] = { +- { +- DEF_TYPE, DEF_DEV, DEF_SEQUENCE, +- DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, 0 /* scaley */, +- DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP, +- (char *)NULL /* extra */, +- (Gpm_Type *)NULL, +- -1 +- } +-}; +-struct mouse_features *which_mouse; +- +-/* These are only the 'global' options */ +- +-char *opt_lut=DEF_LUT; +-int opt_test=DEF_TEST; +-int opt_ptrdrag=DEF_PTRDRAG; +-int opt_double=0; +-int opt_aged = 0; +-char *opt_special=NULL; /* special commands, like reboot or such */ +-int opt_rawrep=0; +-Gpm_Type *repeated_type=0; +- +-static int opt_resize=0; /* not really an option */ +-struct winsize win; +-int maxx, maxy; +-int fifofd=-1; +- +-int eventFlag=0; +-Gpm_Cinfo *cinfo[MAX_VC+1]; +-fd_set selSet, readySet, connSet; +- +-time_t last_selection_time; +-time_t opt_age_limit = 0; +- +-/* BRAINDEAD..ok not really, but got to leave anyway... FIXME */ +-/* argc and argv for mice initialization */ +-static int mouse_argc[3]; /* 0 for default (unused) and two mice */ +-static char **mouse_argv[3]; /* 0 for default (unused) and two mice */ +- +-/*===================================================================*/ +-/* +- * first, all the stuff that used to be in gpn.c (i.e., not main-loop) +- */ +-/*-------------------------------------------------------------------*/ ++#ifndef min ++#define min(a,b) ((a)<(b) ? (a) : (b)) ++#endif + +-/* build_argv is used for mouse initialization routines */ +-static char **build_argv(char *argv0, char *str, int *argcptr, char sep) +-{ +- int argc = 1; +- char **argv; +- char *s; +- +- /* argv0 is never NULL, but the extra string may well be */ +- if (str) +- for (s=str; sep && (s = strchr(s, sep)); argc++) s++; +- +- argv = calloc(argc+2, sizeof(char **)); +- if (!argv) gpm_report(GPM_PR_OOPS,GPM_MESS_ALLOC_FAILED); +- argv[0] = argv0; +- +- if (!str) { +- *argcptr = argc; /* 1 */ +- return argv; +- } +- /* else, add arguments */ +- s = argv[1] = strdup(str); +- argc = 2; /* first to fill */ +- +- /* ok, now split: the first one is in place, and s is the whole string */ +- for ( ; sep && (s = strchr(s, sep)) ; argc++) { +- *s = '\0'; +- s++; +- argv[argc] = s; +- } +- *argcptr = argc; +- return argv; +-} ++#define NULL_SET ((fd_set *)NULL) ++#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) ++#define DIF_TIME(t1,t2) ((t2.tv_sec - t1.tv_sec)*1000 + (t2.tv_usec - t1.tv_usec)/1000) + +-/*-------------------------------------------------------------------*/ +-/* The old console option is removed. We are taking stderr now +- * In the next update there should also be support for syslog +- ********************************************************************/ + +-static inline int open_console(const int mode) +-{ +- int fd; ++enum mouse_rslt { MOUSE_NO_DATA, MOUSE_DATA_OK, MOUSE_MORE_DATA }; + +- if ((fd=open(option.consolename, mode)) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); +- return fd; +-} ++extern int errno; + +-/*-------------------------------------------------------------------*/ +-static inline int wait_text(int *fdptr) +-{ +- int fd; +- int kd_mode; ++char *opt_special=NULL; /* special commands, like reboot or such */ ++struct repeater repeater; + +- close(*fdptr); +- do +- { +- sleep(2); +- fd = open_console(O_RDONLY); +- if (ioctl(fd, KDGETMODE, &kd_mode)<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_KDGETMODE); +- close(fd); +- } +- while (kd_mode != KD_TEXT) ; +- +- /* reopen, reinit (the function is only used if we have one mouse device) */ +- if ((*fdptr=open(opt_dev,O_RDWR))<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,opt_dev); +- if (m_type->init) +- m_type=(m_type->init)(*fdptr, m_type->flags, m_type, mouse_argc[1], +- mouse_argv[1]); +- return (1); +-} ++static int console_resized; /* not really an option */ + + /*-------------------------------------------------------------------*/ +-static inline void selection_copy(int x1, int y1, int x2, int y2, int mode) ++static void gpm_killed(int signo) + { +-/* +- * The approach in "selection" causes a bus error when run under SunOS 4.1 +- * due to alignment problems... +- */ +- unsigned char buf[6*sizeof(short)]; +- unsigned short *arg = (unsigned short *)buf + 1; +- int fd; +- +- buf[sizeof(short)-1] = 2; /* set selection */ +- +- arg[0]=(unsigned short)x1; +- arg[1]=(unsigned short)y1; +- arg[2]=(unsigned short)x2; +- arg[3]=(unsigned short)y2; +- arg[4]=(unsigned short)mode; +- +- if ((fd=open_console(O_WRONLY))<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); +- /* FIXME: should be replaced with string constant (headers/message.h) */ +- gpm_report(GPM_PR_DEBUG,"ctl %i, mode %i",(int)*buf, arg[4]); +- if (ioctl(fd, TIOCLINUX, buf+sizeof(short)-1) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX); +- close(fd); +- +- if (mode < 3) { +- opt_aged = 0; +- last_selection_time = time(0); ++ if (signo == SIGWINCH) { ++ gpm_report(GPM_PR_WARN, GPM_MESS_RESIZING, option.progname, getpid()); ++ console_resized = 1; ++ } else { ++ if (signo == SIGUSR1) ++ gpm_report(GPM_PR_WARN, GPM_MESS_KILLED_BY, option.progname, getpid(), option.progname); ++ exit(0); + } + } + +- +-/*-------------------------------------------------------------------*/ +-/* comment missing; FIXME */ +-/*-------------------------------------------------------------------*/ +-static inline void selection_paste(void) +-{ +- char c=3; +- int fd; +- +- if (!opt_aged && (0 != opt_age_limit) && +- (last_selection_time + opt_age_limit < time(0))) { +- opt_aged = 1; +- } +- +- if (opt_aged) { +- gpm_report(GPM_PR_DEBUG,GPM_MESS_SKIP_PASTE); +- return; +- } +- +- fd=open_console(O_WRONLY); +- if(ioctl(fd, TIOCLINUX, &c) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX); +- close(fd); +-} +- +-/*-------------------------------------------------------------------*/ +-static inline int do_selection(Gpm_Event *event) /* returns 0, always */ +-{ +- static int x1=1, y1=1, x2, y2; +-#define UNPOINTER() 0 +- +- x2=event->x; y2=event->y; +- switch(GPM_BARE_EVENTS(event->type)) { +- case GPM_MOVE: +- if (x2<1) x2++; else if (x2>maxx) x2--; +- if (y2<1) y2++; else if (y2>maxy) y2--; +- selection_copy(x2,y2,x2,y2,3); /* just highlight pointer */ +- return 0; +- +- case GPM_DRAG: +- if (event->buttons==GPM_B_LEFT) { +- if (event->margin) /* fix margins */ +- switch(event->margin) { +- case GPM_TOP: x2=1; y2++; break; +- case GPM_BOT: x2=maxx; y2--; break; +- case GPM_RGT: x2--; break; +- case GPM_LFT: y2<=y1 ? x2++ : (x2=maxx, y2--); break; +- } +- selection_copy(x1,y1,x2,y2,event->clicks); +- if (event->clicks>=opt_ptrdrag && !event->margin) /* pointer */ +- selection_copy(x2,y2,x2,y2,3); +- } /* if */ +- return 0; +- +- case GPM_DOWN: +- switch (event->buttons) { +- case GPM_B_LEFT: +- x1=x2; y1=y2; +- selection_copy(x1,y1,x2,y2,event->clicks); /* start selection */ +- return 0; +- +- case GPM_B_MIDDLE: +- selection_paste(); +- return 0; +- +- case GPM_B_RIGHT: +- if (opt_three==1) +- selection_copy(x1,y1,x2,y2,event->clicks); +- else +- selection_paste(); +- return 0; +- } +- } /* switch above */ +- return 0; +-} +- +-/*-------------------------------------------------------------------*/ +-/* returns 0 if the event has not been processed, and 1 if it has */ +-static inline int do_client(Gpm_Cinfo *cinfo, Gpm_Event *event) +-{ +- Gpm_Connect info=cinfo->data; +- int fd=cinfo->fd; +- /* value to return if event is not used */ +- int res = !(info.defaultMask & event->type); +- +- /* instead of returning 0, scan the stack of clients */ +- if ((info.minMod & event->modifiers) < info.minMod) +- goto scan; +- if ((info.maxMod & event->modifiers) < event->modifiers) +- goto scan; +- +- /* if not managed, use default mask */ +- if (!(info.eventMask & GPM_BARE_EVENTS(event->type))) { +- if (res) return res; +- else goto scan; +- } +- +- /* WARNING */ /* This can generate a SIGPIPE... I'd better catch it */ +- MAGIC_P((write(fd,&magic, sizeof(int)))); +- write(fd,event, sizeof(Gpm_Event)); +- +- return info.defaultMask & GPM_HARD ? res : 1; /* HARD forces pass-on */ +- +- scan: +- if (cinfo->next != 0) +- return do_client (cinfo->next, event); /* try the next */ +- return 0; /* no next, not used */ +-} +- + /*------------------------------------------------------------------- + * fetch the actual device data from the mouse device, dependent on + * what Gpm_Type is being passed. + *-------------------------------------------------------------------*/ +-static inline char *getMouseData(int fd, Gpm_Type *type, int kd_mode) ++static char *getMouseData(int fd, Gpm_Type *type, int text_mode) + { + static unsigned char data[32]; /* quite a big margin :) */ +- char *edata=data+type->packetlen; +- int howmany=type->howmany; +- int i,j; ++ unsigned char *pdata; ++ int len, togo; + +-/*....................................... read and identify one byte */ +- +- if (read(fd, data, howmany)!=howmany) { +- if (opt_test) exit(0); ++ /*....................................... read and identify one byte */ ++ if (read(fd, data, type->howmany) != type->howmany) { + gpm_report(GPM_PR_ERR,GPM_MESS_READ_FIRST, strerror(errno)); + return NULL; + } + +- if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep) +- write(fifofd, data, howmany); ++ if (!text_mode && repeater.fd != -1 && repeater.raw) ++ write(repeater.fd, data, type->howmany); + +- if ((data[0]&(m_type->proto)[0]) != (m_type->proto)[1]) { +- if (m_type->getextra == 1) { +- data[1]=GPM_EXTRA_MAGIC_1; data[2]=GPM_EXTRA_MAGIC_2; +- gpm_report(GPM_PR_DEBUG,GPM_EXTRA_DATA,data[0]); ++ if ((data[0] & type->proto[0]) != type->proto[1]) { ++ if (type->getextra == 1) { ++ data[1] = GPM_EXTRA_MAGIC_1; data[2] = GPM_EXTRA_MAGIC_2; ++ gpm_report(GPM_PR_DEBUG, GPM_EXTRA_DATA, data[0]); + return data; + } +- gpm_report(GPM_PR_DEBUG,GPM_MESS_PROT_ERR); ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_PROT_ERR); + return NULL; + } + +-/*....................................... read the rest */ ++ /*....................................... read the rest */ + + /* + * well, this seems to work almost right with ps2 mice. However, I've never + * tried ps2 with the original selection package, which called usleep() + */ +- +- if((i=m_type->packetlen-howmany)) /* still to get */ ++ if ((togo = type->packetlen - type->howmany)) { /* still to get */ ++ pdata = &data[type->howmany]; + do { +- j = read(fd,edata-i,i); /* edata is pointer just after data */ +- if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep && j > 0) +- write(fifofd, edata-i, j); +- i -= j; +- } while (i && j); +- +- if (i) { +- gpm_report(GPM_PR_ERR,GPM_MESS_READ_REST, strerror(errno)); ++ if ((len = read(fd, pdata, togo)) == 0) ++ break; ++ if (!text_mode && repeater.fd != -1 && repeater.raw && len > 0) ++ write(repeater.fd, pdata, len); ++ pdata += len; ++ togo -= len; ++ } while (togo); ++ } ++ ++ if (togo) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_READ_REST, strerror(errno)); + return NULL; + } + +- if ((data[1]&(m_type->proto)[2]) != (m_type->proto)[3]) { +- gpm_report(GPM_PR_INFO,GPM_MESS_SKIP_DATA); ++ if ((data[1] & type->proto[2]) != type->proto[3]) { ++ gpm_report(GPM_PR_INFO, GPM_MESS_SKIP_DATA); + return NULL; + } +- gpm_report(GPM_PR_DEBUG,GPM_MESS_DATA_4,data[0],data[1],data[2],data[3]); ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_DATA_4, data[0], data[1], data[2], data[3]); + return data; + } + +- +-static int statusX,statusY,statusB; /* to return info */ +-static int statusC=0; /* clicks */ +-void get_console_size(Gpm_Event *ePtr); +- +-/*------------------------------------------------------------------- +- * call getMouseData to get hardware device data, call mouse device's fun() +- * to retrieve the hardware independent event data, then optionally repeat +- * the data via repeat_fun() to the repeater device +- *-------------------------------------------------------------------*/ +-static inline int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, +- int kd_mode) ++/*-------------------------------------------------------------------*/ ++void handle_console_resize(Gpm_Event *event) + { +- char *data; +- static int fine_dx, fine_dy; +- static int i, j, m; +- static Gpm_Event nEvent; +- static struct vt_stat stat; +- static struct timeval tv1={0,0}, tv2; /* tv1==0: first click is single */ +- static struct timeval timeout={0,0}; +- fd_set fdSet; +- static int newB=0, oldB=0, oldT=0; /* old buttons and Type to chain events */ +- /* static int buttonlock, buttonlockflag; */ +- +-#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) +-#define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ +- (t2.tv_usec-t1.tv_usec)/1000) +- +- +- oldT=event->type; +- +- if (eventFlag) { +- eventFlag=0; +- +- if (m_type->absolute) { /* a pen or other absolute device */ +- event->x=nEvent.x; +- event->y=nEvent.y; +- } +- event->dx=nEvent.dx; +- event->dy=nEvent.dy; +- event->buttons=nEvent.buttons; +- } else { +- event->dx=event->dy=0; +- event->wdx=event->wdy=0; +- nEvent.modifiers = 0; /* some mice set them */ +- FD_ZERO(&fdSet); FD_SET(fd,&fdSet); i=0; +- +- do { /* cluster loop */ +- if(((data=getMouseData(fd,m_type,kd_mode))==NULL) +- || ((*(m_type->fun))(&nEvent,data)==-1) ) { +- if (!i) return 0; +- else break; +- } +- +- event->modifiers = nEvent.modifiers; /* propagate modifiers */ +- +- /* propagate buttons */ +- nEvent.buttons = (opt_sequence[nEvent.buttons&7]&7) | +- (nEvent.buttons & ~7); /* change the order */ +- oldB=newB; newB=nEvent.buttons; +- if (!i) event->buttons=nEvent.buttons; +- +- if (oldB!=newB) { +- eventFlag = (i!=0)*(which_mouse-mouse_table); /* 1 or 2 */ +- break; +- } +- +- /* propagate movement */ +- if (!(m_type->absolute)) { /* mouse */ +- if (abs(nEvent.dx)+abs(nEvent.dy) > opt_delta) +- nEvent.dx*=opt_accel, nEvent.dy*=opt_accel; +- +- /* increment the reported dx,dy */ +- event->dx+=nEvent.dx; +- event->dy+=nEvent.dy; +- } else { /* a pen */ +- /* get dx,dy to check if there has been movement */ +- event->dx = (nEvent.x) - (event->x); +- event->dy = (nEvent.y) - (event->y); +- } +- +- /* propagate wheel */ +- event->wdx += nEvent.wdx; +- event->wdy += nEvent.wdy; +- +- select(fd+1,&fdSet,(fd_set *)NULL,(fd_set *)NULL,&timeout/* zero */); +- +- } while (i++ <opt_cluster && nEvent.buttons==oldB && FD_ISSET(fd,&fdSet)); +- +- } /* if(eventFlag) */ +- +-/*....................................... update the button number */ ++ int old_x, old_y; ++ struct micetab *mouse; + +- if ((event->buttons&GPM_B_MIDDLE) && !opt_three) opt_three++; ++ old_x = console.max_x; old_y = console.max_y; ++ refresh_console_size(); ++ if (!old_x) { /* first invocation, place the pointer in the middle */ ++ event->x = console.max_x / 2; ++ event->y = console.max_y / 2; ++ } else { /* keep the pointer in the same position where it was */ ++ event->x = event->x * console.max_x / old_x; ++ event->y = event->y * console.max_y / old_y; ++ } + +-/*....................................... we're a repeater, aren't we? */ ++ for (mouse = micelist; mouse; mouse = mouse->next) { ++ /* ++ * the following operation is based on the observation that 80x50 ++ * has square cells. (An author-centric observation ;-) ++ */ ++ mouse->options.scaley = mouse->options.scalex * 50 * console.max_x / 80 / console.max_y; ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_X_Y_VAL, ++ mouse->options.scalex, mouse->options.scaley); ++ } ++} + +- if (kd_mode!=KD_TEXT) { +- if (fifofd != -1 && ! opt_rawrep) { +- if (m_type->absolute) { /* hof Wed Feb 3 21:43:28 MET 1999 */ +- /* prepare the values from a absolute device for repeater mode */ +- static struct timeval rept1,rept2; +- gettimeofday(&rept2, (struct timezone *)NULL); +- if (((rept2.tv_sec -rept1.tv_sec) +- *1000+(rept2.tv_usec-rept1.tv_usec)/1000)>250) { +- event->dx=0; +- event->dy=0; +- } +- rept1=rept2; +- +- event->dy=event->dy*((win.ws_col/win.ws_row)+1); +- event->x=nEvent.x; +- event->y=nEvent.y; +- } +- repeated_type->repeat_fun(event, fifofd); /* itz Jan 11 1999 */ ++static void handle_repeater(int absolute_dev, Gpm_Event *new_event, Gpm_Event *event) ++{ ++ static struct timeval last; ++ struct timeval now; ++ ++ if (absolute_dev) { ++ /* prepare the values from a absolute device for repeater mode */ ++ GET_TIME(now); ++ if (((now.tv_sec - last.tv_sec) * 1000 + ++ (now.tv_usec - last.tv_usec) / 1000) > 250) { ++ event->dx = 0; ++ event->dy = 0; + } +- return 0; /* no events nor information for clients */ +- } /* first if of these three */ +- +-/*....................................... no, we arent a repeater, go on */ ++ last = now; + +- /* use fine delta values now, if delta is the information */ +- if (!(m_type)->absolute) { +- fine_dx+=event->dx; fine_dy+=event->dy; +- event->dx=fine_dx/opt_scale; event->dy=fine_dy/opt_scaley; +- fine_dx %= opt_scale; fine_dy %= opt_scaley; ++ event->dy = event->dy * ((console.max_x / console.max_y) + 1); ++ event->x = new_event->x; ++ event->y = new_event->y; + } ++ repeater.type->repeat_fun(event, repeater.fd); ++} + +- /* up and down, up and down, ... who does a do..while(0) loop ??? +- and then makes a break into it... argh ! */ +- +- if (!event->dx && !event->dy && (event->buttons==oldB)) +- do { /* so to break */ +- static long awaketime; +- /* +- * Ret information also if never happens, but enough time has elapsed. +- * Note: return 1 will segfault due to missing event->vc; FIXME! +- */ +- if (time(NULL)<=awaketime) return 0; +- awaketime=time(NULL)+1; +- break; +- } while (0); +- +-/*....................................... fill missing fields */ +- +- event->x+=event->dx, event->y+=event->dy; +- statusB=event->buttons; +- +- i=open_console(O_RDONLY); +- /* modifiers */ +- j = event->modifiers; /* save them */ +- event->modifiers=6; /* code for the ioctl */ +- if (ioctl(i,TIOCLINUX,&(event->modifiers))<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_GET_SHIFT_STATE); +- event->modifiers |= j; /* add mouse-specific bits */ +- +- /* status */ +- j = stat.v_active; +- if (ioctl(i,VT_GETSTATE,&stat)<0) gpm_report(GPM_PR_OOPS,GPM_MESS_GET_CONSOLE_STAT); +- +- /* +- * if we changed console, request the current console size, +- * as different consoles can be of different size +- */ +- if (stat.v_active != j) +- get_console_size(event); +- close(i); +- +- event->vc = stat.v_active; +- +- if (oldB==event->buttons) +- event->type = (event->buttons ? GPM_DRAG : GPM_MOVE); +- else +- event->type = (event->buttons > oldB ? GPM_DOWN : GPM_UP); +- ++static void calculate_clicks(Gpm_Event *event, int click_tmo) ++{ ++ static struct timeval release; ++ struct timeval now; ++ + switch(event->type) { /* now provide the cooked bits */ + case GPM_DOWN: +- GET_TIME(tv2); +- if (tv1.tv_sec && (DIF_TIME(tv1,tv2)<opt_time)) /* check first click */ +- statusC++, statusC%=3; /* 0, 1 or 2 */ ++ GET_TIME(now); ++ if (release.tv_sec && (DIF_TIME(release, now) < click_tmo)) /* check first click */ ++ event->clicks++, event->clicks %= 3; /* 0, 1 or 2 */ + else +- statusC=0; +- event->type|=(GPM_SINGLE<<statusC); ++ event->clicks = 0; ++ event->type |= GPM_SINGLE << event->clicks; + break; + + case GPM_UP: +- GET_TIME(tv1); +- event->buttons^=oldB; /* for button-up, tell which one */ +- event->type|= (oldT&GPM_MFLAG); +- event->type|=(GPM_SINGLE<<statusC); ++ GET_TIME(release); ++ event->type |= GPM_SINGLE << event->clicks; + break; + + case GPM_DRAG: +- event->type |= GPM_MFLAG; +- event->type|=(GPM_SINGLE<<statusC); ++ event->type |= GPM_SINGLE << event->clicks; + break; + + case GPM_MOVE: +- statusC=0; ++ event->clicks = 0; ++ + default: + break; + } +- event->clicks=statusC; ++} ++ ++static void snap_to_screen_limits(Gpm_Event *event) ++{ ++ int extent; + +-/* UGLY - FIXME! */ +-/* The current policy is to force the following behaviour: +- * - At buttons up, must fit inside the screen, though flags are set. +- * - At button down, allow going outside by one single step +- */ ++ /* The current policy is to force the following behaviour: ++ * - At buttons up, must fit inside the screen, though flags are set. ++ * - At button down, allow going outside by one single step ++ * DTOR: Midnight Commander seems to want the opposite... ++ */ + ++ extent = (event->type & (GPM_DRAG|GPM_UP)) ? 1 : 0; + + /* selection used 1-based coordinates, so do I */ +- + /* + * 1.05: only one margin is current. Y takes priority over X. +- * The i variable is how much margin is allowed. "m" is which one is there. + */ + +- m = 0; +- i = ((event->type&(GPM_DRAG|GPM_UP))!=0); /* i is boolean */ +- +- if (event->y>win.ws_row) {event->y=win.ws_row+1-!i; i=0; m = GPM_BOT;} +- else if (event->y<=0) {event->y=1-i; i=0; m = GPM_TOP;} +- +- if (event->x>win.ws_col) {event->x=win.ws_col+1-!i; if (!m) m = GPM_RGT;} +- else if (event->x<=0) {event->x=1-i; if (!m) m = GPM_LFT;} ++ event->margin = 0; + +- event->margin=m; ++ if (event->y > console.max_y) { ++ event->y = console.max_y + extent; ++ extent = 0; ++ event->margin = GPM_BOT; ++ } else if (event->y <= 0) { ++ event->y = 1 - extent; ++ extent = 0; ++ event->margin = GPM_TOP; ++ } + +- gpm_report(GPM_PR_DEBUG,"M: %3i %3i (%3i %3i) - butt=%i vc=%i cl=%i", +- event->dx,event->dy, +- event->x,event->y, +- event->buttons, event->vc, +- event->clicks); ++ if (event->x > console.max_x) { ++ event->x = console.max_x + extent; ++ if (!event->margin) event->margin = GPM_RGT; ++ } else if (event->x <= 0) { ++ event->x = 1 - extent; ++ if (!event->margin) event->margin = GPM_LFT; ++ } ++} + +- /* update the global state */ +- statusX=event->x; statusY=event->y; ++static int more_data_waiting(int fd) ++{ ++ static struct timeval timeout = {0, 0}; ++ fd_set fdSet; + +- if (opt_special && event->type & GPM_DOWN) +- return processSpecial(event); ++ FD_ZERO(&fdSet); ++ FD_SET(fd, &fdSet); ++ select(fd + 1, &fdSet, NULL_SET, NULL_SET, &timeout/* zero */); + +- return 1; ++ return FD_ISSET(fd, &fdSet); + } + +-/*-------------------------------------------------------------------* +- * This was inline, and incurred in a compiler bug (2.7.0) +- *-------------------------------------------------------------------*/ +-static int get_data(Gpm_Connect *where, int whence) ++static int multiplex_buttons(struct micetab *mouse, int new_buttons) + { +- static int i; ++ static int left_btn_clicks, mid_btn_clicks, right_btn_clicks; ++ int mask; ++ int muxed_buttons = 0; ++ ++ new_buttons = ++ (mouse->options.sequence[new_buttons & 7] & 7) | (new_buttons & ~7); ++ mask = new_buttons ^ mouse->buttons; ++ mouse->buttons = new_buttons; + +-#ifdef GPM_USE_MAGIC +- while ((i=read(whence,&check,sizeof(int)))==4 && check!=GPM_MAGIC) +- gpm_report(GPM_PR_INFO,GPM_MESS_NO_MAGIC); +- +- if (!i) return 0; +- if (check!=GPM_MAGIC) { +- gpm_report(GPM_PR_INFO,GPM_MESS_NOTHING_MORE); +- return -1; ++ if (mask & GPM_B_LEFT) { ++ if (new_buttons & GPM_B_LEFT) left_btn_clicks++; ++ else left_btn_clicks--; + } +-#endif ++ if (left_btn_clicks) muxed_buttons |= GPM_B_LEFT; + +- if ((i=read(whence, where, sizeof(Gpm_Connect)))!=sizeof(Gpm_Connect)) { +- return i ? -1 : 0; ++ if (mask & GPM_B_MIDDLE) { ++ if (new_buttons & GPM_B_MIDDLE) mid_btn_clicks++; ++ else mid_btn_clicks--; + } ++ if (mid_btn_clicks) muxed_buttons |= GPM_B_MIDDLE; + +- return 1; +-} ++ if (mask & GPM_B_RIGHT) { ++ if (new_buttons & GPM_B_RIGHT) right_btn_clicks++; ++ else right_btn_clicks--; ++ } ++ if (right_btn_clicks) muxed_buttons |= GPM_B_RIGHT; + +-static void disable_paste(int vc) +-{ +- opt_aged++; +- gpm_report(GPM_PR_INFO,GPM_MESS_DISABLE_PASTE,vc); ++ return muxed_buttons; + } + +-/*-------------------------------------------------------------------*/ +- /* returns -1 if closing connection */ +-static inline int processRequest(Gpm_Cinfo *ci, int vc) ++/*------------------------------------------------------------------- ++ * call getMouseData to get hardware device data, call mouse device's fun() ++ * to retrieve the hardware independent event data, then optionally repeat ++ * the data via repeat_fun() to the repeater device ++ *-------------------------------------------------------------------*/ ++static enum mouse_rslt processMouse(struct micetab *mouse, int timeout, int attempt, ++ Gpm_Event *event, int text_mode) + { ++ static int last_active; ++ static int fine_dx, fine_dy; ++ static int oldB; ++ ++ static Gpm_Event nEvent; ++ struct Gpm_Type *type = mouse->type; ++ struct miceopt *opt = &mouse->options; ++ enum mouse_rslt rslt = MOUSE_DATA_OK; ++ unsigned char shift_state; ++ char *data = NULL; + int i; +- Gpm_Cinfo *cinfoPtr, *next; +- Gpm_Connect conn; +- static Gpm_Event event; +- static struct vt_stat stat; +- +- gpm_report(GPM_PR_INFO,GPM_MESS_CON_REQUEST, ci->fd, vc); +- if (vc>MAX_VC) return -1; +- +- /* itz 10-22-96 this shouldn't happen now */ +- if (vc==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_UNKNOWN_FD); +- +- i=get_data(&conn,ci->fd); +- +- if (!i) { /* no data */ +- gpm_report(GPM_PR_INFO,GPM_MESS_CLOSE); +- close(ci->fd); +- FD_CLR(ci->fd,&connSet); +- FD_CLR(ci->fd,&readySet); +- if (cinfo[vc]->fd == ci->fd) { /* it was on top of the stack */ +- cinfoPtr = cinfo[vc]; +- cinfo[vc]=cinfo[vc]->next; /* pop the stack */ +- free(cinfoPtr); +- return -1; +- } +- /* somewhere inside the stack, have to walk it */ +- cinfoPtr = cinfo[vc]; +- while (cinfoPtr && cinfoPtr->next) { +- if (cinfoPtr->next->fd == ci->fd) { +- next = cinfoPtr->next; +- cinfoPtr->next = next->next; +- free (next); ++ ++ if (attempt > 1) { /* continue interrupted cluster loop */ ++ if (opt->absolute) { ++ event->x = nEvent.x; ++ event->y = nEvent.y; ++ } ++ event->dx = nEvent.dx; ++ event->dy = nEvent.dy; ++ event->buttons = nEvent.buttons; ++ } else { ++ event->dx = event->dy = 0; ++ event->wdx = event->wdy = 0; ++ nEvent.modifiers = 0; /* some mice set them */ ++ i = 0; ++ ++ do { /* cluster loop */ ++ if (!timeout && (data = getMouseData(mouse->dev.fd, type, text_mode)) != NULL) { ++ GET_TIME(mouse->timestamp); ++ } ++ ++ /* in case of timeout data passed to typr->fun() is NULL */ ++ if ((!timeout && data == NULL) || ++ type->fun(&mouse->dev, &mouse->options, data, &nEvent) == -1) { ++ if (!i) return MOUSE_NO_DATA; ++ else break; ++ } ++ ++ event->modifiers = nEvent.modifiers; /* propagate modifiers */ ++ ++ /* propagate buttons */ ++ nEvent.buttons = multiplex_buttons(mouse, nEvent.buttons); ++ ++ if (!i) event->buttons = nEvent.buttons; ++ ++ if (oldB != nEvent.buttons) { ++ rslt = MOUSE_MORE_DATA; + break; + } +- cinfoPtr = cinfoPtr->next; +- } +- return -1; +- } /* not data */ +- +- if (i == -1) return -1; /* too few bytes */ + +- if (conn.pid!=0) { +- ci->data = conn; +- return 0; +- } +- +- /* Aha, request for information (so-called snapshot) */ +- switch(conn.vc) { +- case GPM_REQ_SNAPSHOT: +- i=open_console(O_RDONLY); +- ioctl(i,VT_GETSTATE,&stat); +- event.modifiers=6; /* code for the ioctl */ +- if (ioctl(i,TIOCLINUX,&(event.modifiers))<0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_GET_SHIFT_STATE); +- close(i); +- event.vc = stat.v_active; +- event.x=statusX; event.y=statusY; +- event.dx=maxx; event.dy=maxy; +- event.buttons= statusB; +- event.clicks=statusC; +- /* fall through */ +- /* missing break or do you want this ??? */ +- +- case GPM_REQ_BUTTONS: +- event.type= (opt_three==1 ? 3 : 2); /* buttons */ +- write(ci->fd,&event,sizeof(Gpm_Event)); +- break; ++ /* propagate movement */ ++ if (!opt->absolute) { /* mouse */ ++ if (abs(nEvent.dx) + abs(nEvent.dy) > opt->delta) ++ nEvent.dx *= opt->accel, nEvent.dy *= opt->accel; + +- case GPM_REQ_NOPASTE: +- disable_paste(vc); +- break; ++ /* increment the reported dx,dy */ ++ event->dx += nEvent.dx; ++ event->dy += nEvent.dy; ++ } else { /* a pen */ ++ /* get dx,dy to check if there has been movement */ ++ event->dx = nEvent.x - event->x; ++ event->dy = nEvent.y - event->y; ++ } ++ ++ /* propagate wheel */ ++ event->wdx += nEvent.wdx; ++ event->wdy += nEvent.wdy; ++ ++ } while (i++ < opt->cluster && more_data_waiting(mouse->dev.fd)); ++ } /* if(eventFlag) */ ++ ++ /*....................................... update the button number */ ++ ++ if ((event->buttons & GPM_B_MIDDLE) && !opt->three_button) opt->three_button++; ++ ++ /*....................................... we're a repeater, aren't we? */ ++ ++ if (!text_mode) { ++ if (repeater.fd != -1 && !repeater.raw) ++ handle_repeater(opt->absolute, &nEvent, event); ++ oldB = nEvent.buttons; ++ return MOUSE_NO_DATA; /* no events nor information for clients */ + } + +- return 0; +-} ++/*....................................... no, we arent a repeater, go on */ + +-/*-------------------------------------------------------------------*/ +-static inline int processConn(int fd) /* returns newfd or -1 */ +-{ +- Gpm_Cinfo *info; +- Gpm_Connect *request; +- Gpm_Cinfo *next; +- int vc, newfd; +-#if !defined(__GLIBC__) +- int len; +-#else /* __GLIBC__ */ +- size_t len; /* isn't that generally defined in C ??? -- nico */ +-#endif /* __GLIBC__ */ +- struct sockaddr_un addr; /* reuse this each time */ +- struct stat statbuf; +- uid_t uid; +- char *tty = NULL; +- +-/*....................................... Accept */ +- +- bzero((char *)&addr,sizeof(addr)); +- addr.sun_family=AF_UNIX; +- +- len=sizeof(addr); +- if ((newfd=accept(fd,(struct sockaddr *)&addr, &len))<0) { +- gpm_report(GPM_PR_ERR,GPM_MESS_ACCEPT_FAILED,strerror(errno)); +- return -1; +- } +- +- gpm_report(GPM_PR_INFO,GPM_MESS_CONECT_AT,newfd); +- +- info=malloc(sizeof(Gpm_Cinfo)); +- if (!info) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- request=&(info->data); +- +- if(get_data(request,newfd)==-1) { +- free(info); +- close(newfd); +- return -1; +- } +- +- if ((vc=request->vc)>MAX_VC) { +- gpm_report(GPM_PR_WARN,GPM_MESS_REQUEST_ON, vc, MAX_VC); +- free(info); +- close(newfd); +- return -1; +- } +- +-#ifndef SO_PEERCRED +- if (stat (addr.sun_path, &statbuf) == -1 || !S_ISSOCK(statbuf.st_mode)) { +- gpm_report(GPM_PR_ERR,GPM_MESS_ADDRES_NSOCKET,addr.sun_path); +- free(info); /* itz 10-12-95 verify client's right */ +- close(newfd); +- return -1; /* to read requested tty */ ++ /* use fine delta values now, if delta is the information */ ++ if (!opt->absolute) { ++ fine_dx += event->dx; ++ fine_dy += event->dy; ++ event->dx = fine_dx / opt->scalex; ++ event->dy = fine_dy / opt->scaley; ++ fine_dx %= opt->scalex; ++ fine_dy %= opt->scaley; + } +- +- unlink(addr.sun_path); /* delete socket */ + +- staletime = time(0) - 30; +- if (statbuf.st_atime < staletime +- || statbuf.st_ctime < staletime +- || statbuf.st_mtime < staletime) { +- gpm_report(GPM_PR_ERR,GPM_MESS_SOCKET_OLD); +- free (info); +- close(newfd); +- return -1; /* socket is ancient */ ++ /* up and down, up and down, ... who does a do..while(0) loop ??? ++ and then makes a break into it... argh ! */ ++ ++ if (!event->dx && !event->dy && event->buttons == oldB) { ++ static time_t awaketime; ++ /* ++ * Ret information also if never happens, but enough time has elapsed. ++ * Note: return 1 will segfault due to missing event->vc; FIXME! ++ */ ++ if (time(NULL) <= awaketime) return MOUSE_NO_DATA; ++ awaketime = time(NULL) + 1; + } + +- uid = statbuf.st_uid; /* owner of socket */ +-#else +- { +- struct ucred sucred; +- socklen_t credlen = sizeof(struct ucred); +- +- if(getsockopt(newfd, SOL_SOCKET, SO_PEERCRED, &sucred, &credlen) == -1) { +- gpm_report(GPM_PR_ERR,GPM_MESS_GETSOCKOPT, strerror(errno)); +- free(info); +- close(newfd); +- return -1; +- } +- uid = sucred.uid; +- gpm_report(GPM_PR_DEBUG,GPM_MESS_PEER_SCK_UID, uid); +- } +-#endif +- if (uid != 0) { +- if(( tty = +- malloc(strlen(option.consolename)+Gpm_cnt_digits(vc) + sizeof(char))) == NULL) +- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- +- strncpy(tty,option.consolename,strlen(option.consolename)-1); +- sprintf(&tty[strlen(option.consolename)-1],"%d",vc); ++ /*....................................... fill missing fields */ ++ event->x += event->dx; event->y += event->dy; + +- if(stat(tty, &statbuf) == -1) { +- gpm_report(GPM_PR_ERR,GPM_MESS_STAT_FAILS,tty); +- free(info); +- free(tty); +- close(newfd); +- return -1; +- } +- if (uid != statbuf.st_uid) { +- gpm_report(GPM_PR_WARN,GPM_MESS_FAILED_CONNECT, uid, tty); /*SUSPECT!*/ +- free(info); +- free(tty); +- close(newfd); +- return -1; ++ event->vc = get_console_state(&shift_state); ++ if (event->vc != last_active) { ++ handle_console_resize(event); ++ last_active = event->vc; ++ } ++ event->modifiers |= shift_state; ++ ++ if (oldB == event->buttons) ++ event->type = (event->buttons ? (GPM_DRAG | GPM_MFLAG) : GPM_MOVE); ++ else { ++ if (event->buttons > oldB) ++ event->type = GPM_DOWN; ++ else { ++ event->type &= GPM_MFLAG; ++ event->type |= GPM_UP; ++ event->buttons ^= oldB; /* for button-up, tell which one */ + } +- free(tty); /* at least here it's not needed anymore */ + } ++ calculate_clicks(event, opt->time); ++ snap_to_screen_limits(event); ++ ++ gpm_report(GPM_PR_DEBUG,"M: %3i %3i (%3i %3i) - butt=%i vc=%i cl=%i", ++ event->dx, event->dy, event->x, event->y, ++ event->buttons, event->vc, event->clicks); + +- /* register the connection information in the right place */ +- info->next=next=cinfo[vc]; +- info->fd=newfd; +- cinfo[vc]=info; +- gpm_report(GPM_PR_DEBUG,GPM_MESS_LONG_STATUS, +- request->pid, request->vc, request->eventMask, request->defaultMask, +- request->minMod, request->maxMod); +- +- /* if the client gets motions, give it the current position */ +- if(request->eventMask & GPM_MOVE) { +- Gpm_Event event={0,0,vc,0,0,statusX,statusY,GPM_MOVE,0,0}; +- do_client(info, &event); +- } ++ oldB = nEvent.buttons; + +- return newfd; ++ if (opt_special && (event->type & GPM_DOWN) && !processSpecial(event)) ++ rslt = MOUSE_NO_DATA; ++ ++ return rslt; + } + +-/*-------------------------------------------------------------------*/ +-void get_console_size(Gpm_Event *ePtr) ++static int wait_for_data(fd_set *connSet, int maxfd, fd_set *selSet) + { +- int i, prevmaxx, prevmaxy; +- struct mouse_features *which_mouse; /* local */ ++ struct micetab *mouse; ++ struct timeval now, timeout = { 0, 0 }; ++ int mouse_tmo, tmo = INT_MAX; + +- /* before asking the new console size, save the previous values */ +- prevmaxx = maxx; prevmaxy = maxy; ++ GET_TIME(now); + +- i=open_console(O_RDONLY); +- ioctl(i, TIOCGWINSZ, &win); +- close(i); +- if (!win.ws_col || !win.ws_row) { +- gpm_report(GPM_PR_DEBUG,GPM_MESS_ZERO_SCREEN_DIM); +- win.ws_col=80; win.ws_row=25; +- } +- maxx=win.ws_col; maxy=win.ws_row; +- gpm_report(GPM_PR_DEBUG,GPM_MESS_SCREEN_SIZE,maxx,maxy); +- +- if (!prevmaxx) { /* first invocation, place the pointer in the middle */ +- statusX = ePtr->x = maxx/2; +- statusY = ePtr->y = maxy/2; +- } else { /* keep the pointer in the same position where it was */ +- statusX = ePtr->x = ePtr->x * maxx / prevmaxx; +- statusY = ePtr->y = ePtr->y * maxy / prevmaxy; +- } +- +- for (i=1; i <= 1+opt_double; i++) { +- which_mouse=mouse_table+i; /* used to access options */ +- /* +- * the following operation is based on the observation that 80x50 +- * has square cells. (An author-centric observation ;-) +- */ +- opt_scaley=opt_scale*50*maxx/80/maxy; +- gpm_report(GPM_PR_DEBUG,GPM_MESS_X_Y_VAL,opt_scale,opt_scaley); ++ *selSet = *connSet; ++ for (mouse = micelist; mouse; mouse = mouse->next) { ++ FD_SET(mouse->dev.fd, selSet); ++ maxfd = max(maxfd, mouse->dev.fd); ++ if (mouse->dev.timeout >= 0) { ++ mouse_tmo = mouse->dev.timeout - DIF_TIME(mouse->timestamp, now); ++ tmo = min(tmo, mouse_tmo); ++ } + } ++ ++ if (tmo == INT_MAX) ++ timeout.tv_sec = SELECT_TIME; ++ else if (tmo > 0) { ++ timeout.tv_sec = tmo / 1000; ++ timeout.tv_usec = (tmo % 1000) * 1000; ++ } ++ ++ return select(maxfd + 1, selSet, NULL_SET, NULL_SET, &timeout); + } + +-/*-------------------------------------------------------------------*/ +-static void gpm_killed(int signo) +-{ +- if(signo==SIGWINCH) { +- gpm_report(GPM_PR_WARN,GPM_MESS_RESIZING, option.progname, getpid()); +- opt_resize++; +- return; +- } +- if (signo==SIGUSR1) +- gpm_report(GPM_PR_WARN,GPM_MESS_KILLED_BY,option.progname, getpid(),option.progname); +- exit(0); +-} ++ + + /*-------------------------------------------------------------------*/ + int old_main() + { +- int ctlfd, newfd; +- struct sockaddr_un ctladdr; +- int i, len, kd_mode, fd; +- struct timeval timeout; +- int maxfd=-1; +- int pending; ++ int ctlfd; ++ int i, text_mode; ++ struct timeval now; ++ int maxfd = -1; ++ int pending, attempt; ++ int timed_out; + Gpm_Event event; ++ struct micetab *mouse; ++ struct client_info *ci; ++ fd_set selSet, connSet; ++ enum mouse_rslt rslt; + +- for (i = 1; i <= 1+opt_double; i++) { +- which_mouse=mouse_table+i; /* used to access options */ +- +- if (!opt_dev) gpm_report(GPM_PR_OOPS,GPM_MESS_NEED_MDEV); +- +- if(!strcmp(opt_dev,"-")) fd=0; /* use stdin */ +- else if( (fd=open(opt_dev,O_RDWR | O_NDELAY)) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,opt_dev); +- +- /* and then reset the flag */ +- fcntl(fd,F_SETFL,fcntl(fd,F_GETFL) & ~O_NDELAY); +- +- /* create argc and argv for this device */ +- mouse_argv[i] = build_argv(opt_type, opt_options, &mouse_argc[i], ','); +- +- /* init the device, and use the return value as new mouse type */ +- if (m_type->init) +- m_type=(m_type->init)(fd, m_type->flags, m_type, mouse_argc[i], +- mouse_argv[i]); +- if (!m_type) gpm_report(GPM_PR_OOPS,GPM_MESS_MOUSE_INIT); +- +- which_mouse->fd=fd; +- maxfd=max(fd, maxfd); +- } +- +-/*....................................... catch interesting signals */ +- ++ /*....................................... catch interesting signals */ + signal(SIGTERM, gpm_killed); + signal(SIGINT, gpm_killed); + signal(SIGUSR1, gpm_killed); /* usr1 is used by a new gpm killing the old */ + signal(SIGWINCH,gpm_killed); /* winch can be sent if console is resized */ ++ signal(SIGPIPE, SIG_IGN); /* WARN */ + +-/*....................................... create your nodes */ +- +- /* control node */ +- +- if((ctlfd=socket(AF_UNIX,SOCK_STREAM,0))==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_SOCKET_PROB); +- bzero((char *)&ctladdr,sizeof(ctladdr)); +- ctladdr.sun_family=AF_UNIX; +- strcpy(ctladdr.sun_path,GPM_NODE_CTL); +- unlink(GPM_NODE_CTL); +- +- len=sizeof(ctladdr.sun_family)+strlen(GPM_NODE_CTL); +- if(bind(ctlfd,(struct sockaddr *)(&ctladdr),len) == -1) +- gpm_report(GPM_PR_OOPS,GPM_MESS_BIND_PROB,ctladdr.sun_path); +- maxfd=max(maxfd,ctlfd); +- +- /* needs to be 0777, so all users can _try_ to access gpm */ +- chmod(GPM_NODE_CTL,0777); +- +- get_console_size(&event); /* get screen dimensions */ +- +-/*....................................... wait for mouse and connections */ +- +- listen(ctlfd, 5); /* Queue up calls */ +- +-#define NULL_SET ((fd_set *)NULL) +-#define resetTimeout() (timeout.tv_sec=SELECT_TIME,timeout.tv_usec=0) ++ init_mice(); ++ handle_console_resize(&event); /* get screen dimensions */ ++ ctlfd = listen_for_clients(); + ++ /*....................................... wait for mouse and connections */ + FD_ZERO(&connSet); +- FD_SET(ctlfd,&connSet); +- +- if (opt_double) FD_SET(mouse_table[2].fd,&connSet); +- +- readySet=connSet; +- FD_SET(mouse_table[1].fd,&readySet); +- +- signal(SIGPIPE,SIG_IGN); /* WARN */ +- +-/*--------------------------------------- main loop begins here */ ++ FD_SET(ctlfd, &connSet); ++ maxfd = max(maxfd, ctlfd); ++ ++ /*--------------------------------------- main loop begins here */ + +- while(1) { +- selSet=readySet; +- resetTimeout(); +- if (opt_test) timeout.tv_sec=0; ++ while (1) { + +- if (eventFlag) { /* an event left over by clustering */ +- pending=1; +- FD_ZERO(&selSet); +- FD_SET(mouse_table[eventFlag].fd,&selSet); +- } +- else +- while((pending=select(maxfd+1,&selSet,NULL_SET,NULL_SET,&timeout))==0){ +- selSet=readySet; +- resetTimeout(); +- } /* go on */ +- +- if(opt_resize) { /* did the console resize? */ +- get_console_size(&event); +- opt_resize--; +- signal(SIGWINCH,gpm_killed); /* reinstall handler */ +- +- /* and notify clients */ +- for(i=0; i<MAX_VC+1; i++) { +- Gpm_Cinfo *ci; +- for (ci = cinfo[i]; ci; ci = ci->next) kill(ci->data.pid,SIGWINCH); +- } ++ pending = wait_for_data(&connSet, maxfd, &selSet); ++ ++ if (console_resized) { /* did the console resize? */ ++ handle_console_resize(&event); ++ console_resized = 0; ++ signal(SIGWINCH, gpm_killed); /* reinstall handler */ ++ notify_clients_resize(); + } + + if (pending < 0) { +- if (errno==EBADF) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB); +- gpm_report(GPM_PR_ERR,GPM_MESS_SELECT_STRING,strerror(errno)); +- selSet=readySet; +- resetTimeout(); ++ if (errno == EBADF) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB); ++ gpm_report(GPM_PR_ERR, GPM_MESS_SELECT_STRING, strerror(errno)); + continue; + } + +- gpm_report(GPM_PR_DEBUG,GPM_MESS_SELECT_TIMES,pending); ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SELECT_TIMES, pending); + +-/*....................................... manage graphic mode */ ++ /*....................................... manage graphic mode */ + +- /* +- * Be sure to be in text mode. This used to be before select, +- * but actually it only matters if you have events. +- */ +- { +- int fd = open_console(O_RDONLY); +- if (ioctl(fd, KDGETMODE, &kd_mode) < 0) +- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_KDGETMODE); +- close(fd); +- if(kd_mode != KD_TEXT && !option.repeater) { +- wait_text(&mouse_table[1].fd); +- maxfd=max(maxfd,mouse_table[1].fd); +- readySet=connSet; +- FD_SET(mouse_table[1].fd,&readySet); ++ /* ++ * Be sure to be in text mode. This used to be before select, ++ * but actually it only matters if you have events. ++ */ ++ text_mode = is_text_console(); ++ if (!text_mode && !repeater.type && !repeater.raw) { ++ /* if we don;t have repeater then there is only one mouse so ++ * we can safely use micelist ++ */ ++ close(micelist->dev.fd); ++ wait_text_console(); ++ /* reopen, reinit (the function is only used if we have one mouse device) */ ++ if ((micelist->dev.fd = open(micelist->device, O_RDWR)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, micelist->device); ++ if (micelist->type->init) ++ micelist->type->init(&micelist->dev, &micelist->options, micelist->type); + continue; /* reselect */ + } +- } + +-/*....................................... got mouse, process event */ +-/* +- * Well, actually, run a loop to maintain inlining of functions without +- * lenghtening the file. This is not too clean a code, but it works.... +- */ +- +- for (i=1; i <= 1+opt_double; i++) { +- which_mouse=mouse_table+i; /* used to access options */ +- if (FD_ISSET(which_mouse->fd,&selSet)) { +- FD_CLR(which_mouse->fd,&selSet); pending--; +- if (processMouse(which_mouse->fd, &event, m_type, kd_mode)) +- /* pass it to the client, if any +- * or to the default handler, if any +- * or to the selection handler +- */ /* FIXME -- check event.vc */ +- /* can't we please rewrite the following a bit nicer?*/ +- (cinfo[event.vc] && do_client(cinfo[event.vc], &event)) +- || (cinfo[0] && do_client(cinfo[0], &event)) +- || do_selection(&event); ++ /*....................................... got mouse, process event */ ++ /* ++ * Well, actually, run a loop to maintain inlining of functions without ++ * lenghtening the file. This is not too clean a code, but it works.... ++ */ ++ GET_TIME(now); ++ for (mouse = micelist; mouse; mouse = mouse->next) { ++ timed_out = mouse->dev.timeout >= 0 && ++ DIF_TIME(mouse->timestamp, now) >= mouse->dev.timeout; ++ if (timed_out || FD_ISSET(mouse->dev.fd, &selSet)) { ++ if (FD_ISSET(mouse->dev.fd, &selSet)) { ++ FD_CLR(mouse->dev.fd, &selSet); ++ pending--; + } ++ attempt = 0; ++ do { ++ rslt = processMouse(mouse, timed_out, ++attempt, &event, text_mode); ++ if (rslt != MOUSE_NO_DATA) { ++ /* pass it to the client or to the default handler, ++ * or to the selection handler ++ */ ++ if (event.vc > MAX_VC) event.vc = 0; ++ if (event.vc == 0 || !cinfo[event.vc] || !do_client(cinfo[event.vc], &event)) ++ if (!cinfo[0] || !do_client(cinfo[0], &event)) ++ do_selection(&event, mouse->options.three_button); ++ } ++ } while (rslt == MOUSE_MORE_DATA); ++ } + } + + /*..................... got connection, process it */ +- +- if (pending && FD_ISSET(ctlfd,&selSet)) { +- FD_CLR(ctlfd,&selSet); pending--; +- newfd=processConn(ctlfd); +- if (newfd>=0) { +- FD_SET(newfd,&connSet); +- FD_SET(newfd,&readySet); +- maxfd=max(maxfd,newfd); ++ if (pending && FD_ISSET(ctlfd, &selSet)) { ++ FD_CLR(ctlfd, &selSet); ++ pending--; ++ if ((ci = accept_client_connection(ctlfd))) { ++ if (ci->data.eventMask & GPM_MOVE) { ++ Gpm_Event e = { 0, 0, ci->data.vc, 0, 0, ++ event.x, event.y, GPM_MOVE, 0, 0 }; ++ do_client(ci, &e); ++ } ++ FD_SET(ci->fd, &connSet); ++ maxfd = max(maxfd, ci->fd); + } + } + + /*........................ got request */ +- +- /* itz 10-22-96 check _all_ clients, not just those on top! */ +- for (i=0; pending && (i<=MAX_VC); i++) { +- Gpm_Cinfo* ci; ++ /* itz 10-22-96 check _all_ clients, not just those on top! */ ++ for (i = 0; pending && i <= MAX_VC; i++) { + for (ci = cinfo[i]; pending && ci; ci = ci->next) { +- if (FD_ISSET(ci->fd,&selSet)) { +- FD_CLR(ci->fd,&selSet); pending--; +- /* itz Sat Sep 12 21:10:22 PDT 1998 */ +- /* this code is clearly incorrect; the next highest +- descriptor after the one we're closing is not necessarily +- being used. Fortunately, it doesn't hurt simply to leave this +- out. */ +- +-#ifdef NOTDEF +- if ((processRequest(ci,i)==-1) && maxfd==ci->fd) maxfd--; +-#else +- (void)processRequest(ci,i); +-#endif ++ if (FD_ISSET(ci->fd, &selSet)) { ++ FD_CLR(ci->fd, &selSet); ++ pending--; ++ if (!process_client_request(ci, i, event.x, event.y, event.clicks, ++ event.buttons, micelist->options.three_button)) { ++ FD_CLR(ci->fd, &connSet); ++ remove_client(ci, i); ++ } + } + } + } + + /*.................. look for a spare fd */ +- + /* itz 10-22-96 this shouldn't happen now! */ +- for (i=0; pending && i<=maxfd; i++) { +- if (FD_ISSET(i,&selSet)) { +- FD_CLR(i,&selSet); ++ for (i = 0; pending && i <= maxfd; i++) { ++ if (FD_ISSET(i, &selSet)) { ++ FD_CLR(i, &selSet); + pending--; +- gpm_report(GPM_PR_WARN,GPM_MESS_STRANGE_DATA,i); ++ gpm_report(GPM_PR_WARN, GPM_MESS_STRANGE_DATA,i); + } + } + + /*................... all done. */ +- +- if(pending) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB); ++ if (pending) gpm_report(GPM_PR_OOPS, GPM_MESS_SELECT_PROB); + } /* while(1) */ + } +diff -urN gpm-1.20.1/src/gpn.c gpm/src/gpn.c +--- gpm-1.20.1/src/gpn.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/gpn.c 2003-10-02 01:22:42.000000000 -0500 +@@ -28,201 +28,104 @@ + #include <stdlib.h> + #include <string.h> /* strerror(); ?!? memcpy() */ + #include <ctype.h> /* isdigit */ +-#include <signal.h> +-#include <stdarg.h> /* Log uses it */ +-#include <errno.h> + #include <unistd.h> /* getopt(),symlink() */ +-#include <sys/stat.h> /* mkdir() */ +-#include <sys/param.h> +-#include <sys/time.h> /* timeval */ +-#include <sys/wait.h> /* wait() */ +-#include <sys/types.h> /* socket() */ +-#include <sys/socket.h> /* socket() */ +-#include <sys/un.h> /* struct sockaddr_un */ +-#include <asm/types.h> /* __u32 */ +- +-#ifdef SIGTSTP /* true if BSD system */ +-#include <sys/file.h> +-#include <sys/ioctl.h> +-#endif +- +-#ifndef HAVE___U32 +-# ifndef _I386_TYPES_H /* /usr/include/asm/types.h */ +-typedef unsigned int __u32; +-# endif +-#endif + + #include "headers/message.h" + #include "headers/gpmInt.h" + #include "headers/gpm.h" ++#include "headers/console.h" ++#include "headers/selection.h" + +-extern int errno; +- +-/*===================================================================*/ +-/* octal digit */ +-static int isodigit(const unsigned char c) ++/* usage: display for usage informations */ ++int usage(char *whofailed) + { +- return ((c & ~7) == '0'); ++ if (whofailed) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_SPEC_ERR, whofailed, option.progname); ++ return 1; ++ } ++ printf(GPM_MESS_USAGE, option.progname, DEF_ACCEL, DEF_BAUD, DEF_SEQUENCE, ++ DEF_DELTA, DEF_TIME, DEF_LUT, DEF_SCALE, DEF_SAMPLE, DEF_TYPE); ++ return 1; + } + +-/* routine to convert digits from octal notation (Andries Brouwer) */ +-static int getsym(const unsigned char *p0, unsigned char *res) ++/***************************************************************************** ++ * the function returns a valid type pointer or NULL if not found ++ *****************************************************************************/ ++static struct Gpm_Type *find_mouse_by_name(char *name) + { +- const unsigned char *p = p0; +- char c; ++ Gpm_Type *type; ++ char *s; ++ int len = strlen(name); + +- c = *p++; +- if (c == '\\' && *p) { +- c = *p++; +- if (isodigit(c)) { +- c -= '0'; +- if (isodigit(*p)) c = 8*c + (*p++ - '0'); +- if (isodigit(*p)) c = 8*c + (*p++ - '0'); ++ for (type = mice; type->fun; type++) { ++ if (!strcasecmp(name, type->name)) break; ++ /* otherwise, look in the synonym list */ ++ for (s = type->synonyms; s; s = strchr(s, ' ')) { ++ while (*s && isspace(*s)) s++; /* skip spaces */ ++ if (!strncasecmp(name, s, len) && !isprint(*(s + len))) break;/*found*/ + } ++ if (s) break; /* found a synonym */ + } +- *res = c; +- return (p - p0); ++ return type->fun ? type : NULL; + } + +-/* description missing! FIXME */ +-int loadlut(char *charset) ++static void init_button_sequence(struct miceopt *opt, char *arg) + { +- int i, c, fd; +- unsigned char this, next; +- static __u32 long_array[9]={ +- 0x05050505, /* ugly, but preserves alignment */ +- 0x00000000, /* control chars */ +- 0x00000000, /* digits */ +- 0x00000000, /* uppercase and '_' */ +- 0x00000000, /* lowercase */ +- 0x00000000, /* Latin-1 control */ +- 0x00000000, /* Latin-1 misc */ +- 0x00000000, /* Latin-1 uppercase */ +- 0x00000000 /* Latin-1 lowercase */ ++ int i; ++ static struct { ++ char *in; ++ char *out; ++ } seq[] = { ++ {"123", "01234567"}, ++ {"132", "02134657"}, ++ {"213", "01452367"}, /* warning: these must be readable as integers... */ ++ {"231", "02461357"}, ++ {"312", "04152637"}, ++ {"321", "04261537"}, ++ {NULL, NULL} + }; + ++ if (strlen(arg) != 3 || atoi(arg) < 100) ++ exit(usage("sequence")); + +-#define inwordLut (long_array+1) +- +- for (i=0; charset[i]; ) { +- i += getsym(charset+i, &this); +- if (charset[i] == '-' && charset[i + 1] != '\0') +- i += getsym(charset+i+1, &next) + 1; +- else +- next = this; +- for (c = this; c <= next; c++) +- inwordLut[c>>5] |= 1 << (c&0x1F); +- } +- +- if ((fd=open(option.consolename, O_WRONLY)) < 0) { +- /* try /dev/console, if /dev/tty0 failed -- is that really senseful ??? */ +- free(option.consolename); /* allocated by main */ +- if((option.consolename=malloc(strlen(GPM_SYS_CONSOLE)+1)) == NULL) +- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- strcpy(option.consolename,GPM_SYS_CONSOLE); +- +- if ((fd=open(option.consolename, O_WRONLY)) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON); +- } +- if (ioctl(fd, TIOCLINUX, &long_array) < 0) { /* fd <0 is checked */ +- if (errno==EPERM && getuid()) +- gpm_report(GPM_PR_WARN,GPM_MESS_ROOT); /* why do we still continue?*/ +- else if (errno==EINVAL) +- gpm_report(GPM_PR_OOPS,GPM_MESS_CSELECT); +- } +- close(fd); +- +- return 0; ++ for (i = 0; seq[i].in && strcmp(seq[i].in, arg); i++); ++ if (!seq[i].in) ++ exit(usage("button sequence")); ++ opt->sequence = strdup(seq[i].out); /* I can rewrite on it */ + } + +-/* usage: display for usage informations */ +-int usage(char *whofailed) ++static void validate_mouse(struct micetab *mouse, int mouse_no) + { +- if (whofailed) { +- gpm_report(GPM_PR_ERR,GPM_MESS_SPEC_ERR,whofailed,option.progname); +- return 1; +- } +- printf(GPM_MESS_USAGE,option.progname, DEF_ACCEL, DEF_BAUD, DEF_SEQUENCE, +- DEF_DELTA, DEF_TIME, DEF_LUT,DEF_SCALE, DEF_SAMPLE, DEF_TYPE); +- return 1; +-} +- +-/* itz Sat Sep 12 10:55:51 PDT 1998 Added this as replacement for the +- unwanted functionality in check_uniqueness. */ +- +-void check_kill(void) +-{ +- int old_pid; +- FILE* fp = fopen(GPM_NODE_PID, "r"); +- +- /* if we cannot find the old pid file, leave */ +- if (fp == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN, GPM_NODE_PID); +- +- /* else read the pid */ +- if (fscanf(fp,"%d",&old_pid) != 1) +- gpm_report(GPM_PR_OOPS,GPM_MESS_READ_PROB,GPM_NODE_PID); +- fclose(fp); +- +- gpm_report(GPM_PR_DEBUG,GPM_MESS_KILLING,old_pid); +- +- /* first check if we run */ +- if (kill(old_pid,0) == -1) { +- gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID); +- unlink(GPM_NODE_PID); ++ if (!mouse->device) { ++ if (!mouse->type && mouse_no > 1) ++ gpm_report(GPM_PR_OOPS, ++ "No device/protocol specified for mouse #%d, probably extra -M option?", mouse_no); ++ else ++ gpm_report(GPM_PR_OOPS, "No device specified for mouse #%d", mouse_no); + } +- /* then kill us (not directly, but the other instance ... ) */ +- if (kill(old_pid,SIGTERM) == -1) +- gpm_report(GPM_PR_OOPS,GPM_MESS_CANT_KILL, old_pid); + +- gpm_report(GPM_PR_INFO,GPM_MESS_KILLED,old_pid); +- exit(0); +-} ++ if (!mouse->type) ++ mouse->type = find_mouse_by_name(DEF_TYPE); + +-/* itz Sat Sep 12 10:30:05 PDT 1998 this function used to mix two +- completely different things; opening a socket to a running daemon +- and checking that a running daemon existed. Ugly. */ +-/* rewritten mostly on 20th of February 2002 - nico */ +-void check_uniqueness(void) +-{ +- FILE *fp = 0; +- int old_pid = -1; ++ mouse->options.absolute = mouse->type->absolute; + +- if((fp = fopen(GPM_NODE_PID, "r")) != NULL) { +- fscanf(fp, "%d", &old_pid); +- if (kill(old_pid,0) == -1) { +- gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID); +- unlink(GPM_NODE_PID); +- } else /* we are really running, exit asap! */ +- gpm_report(GPM_PR_OOPS,GPM_MESS_ALREADY_RUN, old_pid); +- } +- /* now try to sign ourself */ +- if ((fp = fopen(GPM_NODE_PID,"w")) != NULL) { +- fprintf(fp,"%d\n",getpid()); +- fclose(fp); +- } else { +- gpm_report(GPM_PR_OOPS,GPM_MESS_NOTWRITE,GPM_NODE_PID); +- } ++ if (!mouse->options.sequence) ++ init_button_sequence(&mouse->options, DEF_SEQUENCE); + } + +-/***************************************************************************** +- * the function returns a valid type pointer or NULL if not found +- *****************************************************************************/ +-struct Gpm_Type *find_mouse_by_name(char *name) ++static void validate_repeater(char *type) + { +- Gpm_Type *type; +- char *s; +- int len = strlen(name); +- +- for (type=mice; type->fun; type++) { +- if (!strcasecmp(name, type->name)) break; +- /* otherwise, look in the synonym list */ +- for (s = type->synonyms; s; s = strchr(s, ' ')) { +- while (*s && isspace(*s)) s++; /* skip spaces */ +- if(!strncasecmp(name, s, len) && !isprint(*(s + len))) break;/*found*/ +- } +- if(s) break; /* found a synonym */ ++ if (strcmp(type, "raw") == 0) ++ repeater.raw = 1; ++ else { ++ repeater.raw = 0; ++ ++ if (!(repeater.type = find_mouse_by_name(type))) ++ exit(M_listTypes()); /* not found */ ++ ++ if (!repeater.type->repeat_fun) /* unsupported translation */ ++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_REPEAT, type); + } +- if (!type->fun) return NULL; +- return type; + } + + /***************************************************************************** +@@ -230,60 +133,86 @@ + * Can't believe it, today cmdline() really does what the name tries to say + *****************************************************************************/ + void cmdline(int argc, char **argv) +-{ +- extern struct options option; ++{ ++ struct micetab *mouse; ++ struct miceopt *opt; + char options[]="a:A::b:B:d:Dg:hi:kl:m:Mo:pr:R::s:S:t:TuvV::23"; +- int opt; ++ int opt_char, tmp; ++ int mouse_no = 1; ++ ++ mouse = add_mouse(); ++ opt = &mouse->options; + +- /* initialize for the dual mouse */ +- mouse_table[2]=mouse_table[1]=mouse_table[0]; /* copy defaults */ +- which_mouse=mouse_table+1; /* use the first */ +- +- while ((opt = getopt(argc, argv, options)) != -1) { +- switch (opt) { +- case 'a': opt_accel = atoi(optarg); break; +- case 'A': opt_aged++; +- if (optarg) +- opt_age_limit = atoi(optarg); break; +- case 'b': opt_baud = atoi(optarg); break; +- case 'B': opt_sequence = optarg; break; +- case 'd': opt_delta = atoi(optarg); break; +- case 'D': option.run_status = GPM_RUN_DEBUG; break; +- case 'g': opt_glidepoint_tap=atoi(optarg); break; +- case 'h': exit(usage(NULL)); +- case 'i': opt_time=atoi(optarg); break; +- case 'k': check_kill(); break; +- case 'l': opt_lut = optarg; break; +- case 'm': add_mouse(GPM_ADD_DEVICE,optarg); +- opt_dev = optarg; break; /* GO AWAY!*/ +- case 'M': opt_double++; option.repeater++; +- if (option.repeater_type == 0) +- option.repeater_type = "msc"; +- which_mouse=mouse_table+2; break; +- case 'o': add_mouse(GPM_ADD_OPTIONS,optarg); +- gpm_report(GPM_PR_DEBUG,"options: %s",optarg); +- opt_options = optarg; break; /* GO AWAY */ +- case 'p': opt_ptrdrag = 0; break; +- case 'r': +- /* being called responsiveness, I must take the inverse */ +- opt_scale=atoi(optarg); +- if(!opt_scale || opt_scale > 100) opt_scale=100; /* the maximum */ +- else opt_scale=100/opt_scale; break; +- case 'R': +- option.repeater++; +- if (optarg) option.repeater_type = optarg; +- else option.repeater_type = "msc"; break; +- case 's': opt_sample = atoi(optarg); break; +- case 'S': if (optarg) opt_special = optarg; +- else opt_special=""; break; +- case 't': add_mouse(GPM_ADD_TYPE,optarg); +- opt_type = optarg; break; /* GO AWAY */ +- case 'u': option.autodetect = 1; break; +- case 'T': opt_test++; break; +- case 'v': printf(GPM_MESS_VERSION "\n"); exit(0); +- case '2': opt_three = -1; break; +- case '3': opt_three = 1; break; +- default: exit(usage("commandline")); ++ while ((opt_char = getopt(argc, argv, options)) != -1) { ++ switch (opt_char) { ++ case 'a': if ((opt->accel = atoi(optarg)) < 1) ++ exit(usage("acceleration")); ++ break; ++ case 'A': sel_opts.aged = 1; ++ if (optarg) ++ sel_opts.age_limit = atoi(optarg); ++ break; ++ case 'b': opt->baud = atoi(optarg); ++ break; ++ case 'B': init_button_sequence(opt, optarg); ++ break; ++ case 'd': if ((opt->delta = atoi(optarg)) < 2) ++ exit(usage("delta")); ++ break; ++ case 'D': option.run_status = GPM_RUN_DEBUG; ++ break; ++ case 'g': if (atoi(optarg) > 3) ++ exit(usage("glidepoint tap button")); ++ opt->glidepoint_tap = GPM_B_LEFT >> (atoi(optarg) - 1); ++ break; ++ case 'h': exit(usage(NULL)); ++ case 'i': opt->time = atoi(optarg); ++ break; ++ case 'k': kill_gpm(); ++ break; ++ case 'l': console.charset = optarg; ++ break; ++ case 'm': mouse->device = optarg; ++ break; ++ case 'M': validate_mouse(mouse, mouse_no); ++ mouse = add_mouse(); ++ opt = &mouse->options; ++ mouse_no++; ++ if (!repeater.type && !repeater.raw) ++ repeater.type = find_mouse_by_name(DEF_REP_TYPE); ++ break; ++ case 'o': gpm_report(GPM_PR_DEBUG,"options: %s", optarg); ++ opt->text = optarg; ++ break; ++ case 'p': sel_opts.ptrdrag = 0; ++ break; ++ case 'r': /* being called responsiveness, I must take the inverse */ ++ tmp = atoi(optarg); ++ if (!tmp || tmp > 100) tmp = 1; ++ opt->scalex = 100 / tmp; ++ break; ++ case 'R': validate_repeater((optarg) ? optarg : DEF_REP_TYPE); ++ break; ++ case 's': opt->sample = atoi(optarg); ++ break; ++ case 'S': if (optarg) opt_special = optarg; ++ else opt_special=""; ++ break; ++ case 't': mouse->type = find_mouse_by_name(optarg); ++ if (!mouse->type) ++ exit(M_listTypes()); ++ break; ++ case 'u': option.autodetect = 1; ++ break; ++ case 'v': printf(GPM_MESS_VERSION "\n"); ++ exit(0); ++ case '2': opt->three_button = -1; ++ break; ++ case '3': opt->three_button = 1; ++ break; ++ default: exit(usage("commandline")); + } + } ++ ++ validate_mouse(micelist, mouse_no); + } +diff -urN gpm-1.20.1/src/headers/client.h gpm/src/headers/client.h +--- gpm-1.20.1/src/headers/client.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/client.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,57 @@ ++/* -*-mode:C;tab-width:3-*- ++ * client.h - GPM client handling (server side) ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#ifndef __GPM_CLIENT_H ++#define __GPM_CLIENT_H_ ++ ++#ifdef HAVE_LINUX_TTY_H ++#include <linux/tty.h> ++#endif ++ ++#include "headers/gpm.h" ++ ++/* FIXME: still needed ?? */ ++/* How many virtual consoles are managed? */ ++#ifndef MAX_NR_CONSOLES ++# define MAX_NR_CONSOLES 64 /* this is always sure */ ++#endif ++ ++#define MAX_VC MAX_NR_CONSOLES /* doesn't work before 1.3.77 */ ++ ++struct client_info { ++ Gpm_Connect data; ++ int fd; ++ struct client_info *next; ++}; ++ ++struct Gpm_Event; ++ ++extern struct client_info *cinfo[MAX_VC + 1]; ++ ++int listen_for_clients(void); ++struct client_info *accept_client_connection(int fd); ++void remove_client(struct client_info *ci, int vc); ++void notify_clients_resize(void); ++int do_client(struct client_info *cinfo, struct Gpm_Event *event); ++int process_client_request(struct client_info *ci, int vc, ++ int x, int y, int buttons, int clicks, ++ int three_button_mouse); ++ ++#endif /* __GPM_CLIENT_H_ */ +diff -urN gpm-1.20.1/src/headers/console.h gpm/src/headers/console.h +--- gpm-1.20.1/src/headers/console.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/console.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,42 @@ ++/* -*-mode:C;tab-width:3-*- ++ * console.h - GPM console and selection/paste handling ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#ifndef __GPM_CONSOLE_H_ ++#define __GPM_CONSOLE_H_ ++ ++struct gpm_console { ++ char *device; ++ char *charset; ++ int max_x, max_y; ++}; ++ ++extern struct gpm_console console; ++ ++int open_console(int mode); ++char *get_console_name(); ++char *compose_vc_name(int vc); ++int is_text_console(void); ++void wait_text_console(void); ++void refresh_console_size(void); ++int is_console_owner(int vc, uid_t uid); ++int get_console_state(unsigned char *shift_state); ++void console_load_lut(void); ++ ++#endif /* __GPM_CONSOLE_H_ */ +diff -urN gpm-1.20.1/src/headers/gpmInt.h gpm/src/headers/gpmInt.h +--- gpm-1.20.1/src/headers/gpmInt.h 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/headers/gpmInt.h 2003-10-02 01:22:42.000000000 -0500 +@@ -23,8 +23,7 @@ + #ifndef _GPMINT_INCLUDED + #define _GPMINT_INCLUDED + +-#include <sys/types.h> /* time_t */ /* for whom ???? FIXME */ +- ++#include <sys/time.h> /* timeval */ + #include "gpm.h" + + #if !defined(__GNUC__) +@@ -35,23 +34,12 @@ + /* timeout for the select() syscall */ + #define SELECT_TIME 86400 /* one day */ + +-#ifdef HAVE_LINUX_TTY_H +-#include <linux/tty.h> +-#endif +- +-/* FIXME: still needed ?? */ +-/* How many virtual consoles are managed? */ +-#ifndef MAX_NR_CONSOLES +-# define MAX_NR_CONSOLES 64 /* this is always sure */ +-#endif +- +-#define MAX_VC MAX_NR_CONSOLES /* doesn't work before 1.3.77 */ +- + /* How many buttons may the mouse have? */ + /* #define MAX_BUTTONS 3 ===> not used, it is hardwired :-( */ + + /* all the default values */ + #define DEF_TYPE "ms" ++#define DEF_REP_TYPE "msc" + #define DEF_DEV NULL /* use the type-related one */ + #define DEF_LUT "-a-zA-Z0-9_./\300-\326\330-\366\370-\377" + #define DEF_SEQUENCE "123" /* how buttons are reordered */ +@@ -62,12 +50,10 @@ + #define DEF_SCALE 10 + #define DEF_TIME 250 /* time interval (ms) for multiple clicks */ + #define DEF_THREE 0 /* have three buttons? */ +-#define DEF_KERNEL 0 /* no kernel module, by default */ + + /* 10 on old computers (<=386), 0 on current machines */ + #define DEF_CLUSTER 0 /* maximum number of clustered events */ + +-#define DEF_TEST 0 + #define DEF_PTRDRAG 1 /* double or triple click */ + #define DEF_GLIDEPOINT_TAP 0 /* tapping emulates no buttons by default */ + +@@ -84,11 +70,6 @@ + #define GPM_DEVFS_CONSOLE "/dev/vc/0" + #define GPM_OLD_CONSOLE "/dev/tty0" + +-/* for adding a mouse; add_mouse */ +-#define GPM_ADD_DEVICE 0 +-#define GPM_ADD_TYPE 1 +-#define GPM_ADD_OPTIONS 2 +- + /*** mouse commands ***/ + + #define GPM_AUX_SEND_ID 0xF2 +@@ -117,126 +98,95 @@ + + /*....................................... Structures */ + ++struct micedev { ++ int fd; ++ int timeout; /* the protocol driver wants to be called ++ after X msec even if there is no new data ++ arrived (-1 to disable/default) */ ++ void *private; /* private data maintained by protocol driver */ ++}; ++ ++struct miceopt { ++ char *sequence; ++ int baud; ++ int sample; ++ int delta; ++ int accel; ++ int scalex, scaley; ++ int time; ++ int cluster; ++ int three_button; ++ int glidepoint_tap; ++ int absolute; /* device reports absolute coordinates - initially copied ++ from Gpm_Type; allows same protocol (type) control devices ++ in absolute and relative mode */ ++ char *text; /* extra textual options supplied via '-o text' */ ++}; ++ + /* + * and this is the entry in the mouse-type table + */ + typedef struct Gpm_Type { +- char *name; +- char *desc; /* a descriptive line */ +- char *synonyms; /* extra names (the XFree name etc) as a list */ +- int (*fun)(Gpm_Event *state, unsigned char *data); +- struct Gpm_Type *(*init)(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv); +- unsigned short flags; +- unsigned char proto[4]; +- int packetlen; +- int howmany; /* how many bytes to read at a time */ +- int getextra; /* does it get an extra byte? (only mouseman) */ +- int absolute; /* flag indicating absolute pointing device */ ++ char *name; ++ char *desc; /* a descriptive line */ ++ char *synonyms; /* extra names (the XFree name etc) as a list */ ++ int (*fun)(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state); ++ int (*init)(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type); ++ unsigned short flags; ++ unsigned char proto[4]; ++ int packetlen; ++ int howmany; /* how many bytes to read at a time */ ++ int getextra; /* does it get an extra byte? (only mouseman) */ ++ int absolute; /* flag indicating absolute pointing device */ + +- int (*repeat_fun)(Gpm_Event *state, int fd); /* repeat this event into fd */ ++ int (*repeat_fun)(Gpm_Event *state, int fd); /* repeat this event into fd */ + /* itz Mon Jan 11 23:27:54 PST 1999 */ + } Gpm_Type; + + #define GPM_EXTRA_MAGIC_1 0xAA + #define GPM_EXTRA_MAGIC_2 0x55 + +-typedef struct Gpm_Cinfo { +- Gpm_Connect data; +- int fd; +- struct Gpm_Cinfo *next; +-} Gpm_Cinfo; +- +- +-/*....................................... Global variables */ +- +-/* this structure is used to hide the dual-mouse stuff */ +- +-struct mouse_features { +- char *opt_type, *opt_dev, *opt_sequence; +- int opt_baud,opt_sample,opt_delta, opt_accel, opt_scale, opt_scaley; +- int opt_time, opt_cluster, opt_three, opt_glidepoint_tap; +- char *opt_options; /* extra textual configuration */ +- Gpm_Type *m_type; +- int fd; +-}; +- +-extern struct mouse_features mouse_table[3], *which_mouse; /*the current one*/ +- +-// looks unused; delete +-//typedef struct Opt_struct_type {int a,B,d,i,p,r,V,A;} Opt_struct_type; +- +-/* this is not very clean, actually, but it works fine */ +-#define opt_type (which_mouse->opt_type) +-#define opt_dev (which_mouse->opt_dev) +-#define opt_sequence (which_mouse->opt_sequence) +-#define opt_baud (which_mouse->opt_baud) +-#define opt_sample (which_mouse->opt_sample) +-#define opt_delta (which_mouse->opt_delta) +-#define opt_accel (which_mouse->opt_accel) +-#define opt_scale (which_mouse->opt_scale) +-#define opt_scaley (which_mouse->opt_scaley) +-#define opt_time (which_mouse->opt_time) +-#define opt_cluster (which_mouse->opt_cluster) +-#define opt_three (which_mouse->opt_three) +-#define opt_glidepoint_tap (which_mouse->opt_glidepoint_tap) +-#define opt_options (which_mouse->opt_options) +- +-#define m_type (which_mouse->m_type) +- +-/* the other variables */ +- +-extern char *opt_lut; +-extern int opt_test, opt_ptrdrag; +-extern int opt_kill; +-extern int opt_kernel, opt_explicittype; +-extern int opt_aged; +-extern time_t opt_age_limit; + extern char *opt_special; +-extern int opt_rawrep; +-extern int fifofd; +-extern int opt_double; +- +-extern Gpm_Type *repeated_type; + extern Gpm_Type mice[]; /* where the hell are the descriptions...*/ +-extern struct winsize win; +-extern int maxx, maxy; +-extern Gpm_Cinfo *cinfo[MAX_VC+1]; + + /* new variables <CLEAN> */ + + /* structure prototypes */ ++struct repeater { ++ int fd; ++ int raw; ++ Gpm_Type *type; ++}; + + /* contains all mice */ + struct micetab { + struct micetab *next; +- char *device; +- char *protocol; +- char *options; ++ struct micedev dev; ++ struct miceopt options; ++ Gpm_Type *type; ++ char *device; ++ int buttons; /* mouse's button state from last read */ ++ struct timeval timestamp; /* last time mouse data arrived */ + }; + + struct options { + int autodetect; /* -u [aUtodetect..'A' is not available] */ +- int no_mice; /* number of mice */ +- int repeater; /* repeat data */ +- char *repeater_type; /* repeat data as which mouse type */ + int run_status; /* startup/daemon/debug */ + char *progname; /* hopefully gpm ;) */ +- struct micetab *micelist; /* mice and their options */ +- char *consolename; /* /dev/tty0 || /dev/vc/0 */ + }; + + /* global variables */ + struct options option; /* one should be enough for us */ ++extern struct repeater repeater; /* again, only one */ ++extern struct micetab *micelist; + + /* new variables </CLEAN> */ + +- + /*....................................... Prototypes */ + /* server_tools.c */ +-void add_mouse (int type, char *value); +-int init_mice (struct micetab *micelist); +-int reset_mice(struct micetab *micelist); ++struct micetab *add_mouse(void); ++void init_mice(void); ++void cleanup_mice(void); + + /* startup.c */ + void startup(int argc, char **argv); +@@ -246,17 +196,15 @@ + + /* gpn.c */ + void cmdline(int argc, char **argv); +-int giveInfo(int request, int fd); +-int loadlut(char *charset); +-int usage(char *whofailed); +-struct Gpm_Type *find_mouse_by_name(char *name); ++int giveInfo(int request, int fd); ++int usage(char *whofailed); + void check_uniqueness(void); +-void check_kill(void); +- ++void kill_gpm(void); + + /* mice.c */ + extern int M_listTypes(void); +- /* special.c */ ++ ++ /* special.c */ + int processSpecial(Gpm_Event *event); + int twiddler_key(unsigned long message); + int twiddler_key_init(void); +diff -urN gpm-1.20.1/src/headers/input-defines.h gpm/src/headers/input-defines.h +--- gpm-1.20.1/src/headers/input-defines.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/input-defines.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,81 @@ ++/* ++ * input-defines.h - complements <linux/input.h> adding missing bits ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++#ifndef __GPM_INPUT_DEFINES_H ++#define __GPM_INPUT_DEFINES_H ++ ++#include <linux/input.h> ++#include "headers/config.h" ++ ++#ifndef ABS_TOOL_WIDTH ++#define ABS_TOOL_WIDTH 0x1c ++#endif ++ ++#ifndef BTN_TOOL_FINGER ++#define BTN_TOOL_FINGER 0x145 ++#endif ++ ++#ifndef BTN_TOUCH ++#define BTN_TOUCH 0x14a ++#endif ++ ++#ifndef BTN_TOOL_DOUBLETAP ++#define BTN_TOOL_DOUBLETAP 0x14d ++#endif ++ ++#ifndef BTN_TOOL_TRIPLETAP ++#define BTN_TOOL_TRIPLETAP 0x14e ++#endif ++ ++#ifndef MSC_GESTURE ++#define MSC_GESTURE 2 ++#endif ++ ++#ifndef EV_SYNC ++#define EV_SYNC 0 ++#endif ++ ++#ifndef SYN_REPORT ++#define SYN_REPORT 0 ++#endif ++ ++#ifndef PSMOUSE_SYNAPTICS ++#define PSMOUSE_SYNAPTICS 7 ++#endif ++ ++#ifndef HAVE_INPUT_ID ++struct input_id { ++ unsigned short bustype; ++ unsigned short vendor; ++ unsigned short product; ++ unsigned short version; ++}; ++#endif ++ ++#ifndef HAVE_INPUT_ABSINFO ++struct input_absinfo { ++ int value; ++ int minimum; ++ int maximum; ++ int fuzz; ++ int flat; ++}; ++#endif ++ ++#endif +diff -urN gpm-1.20.1/src/headers/message.h gpm/src/headers/message.h +--- gpm-1.20.1/src/headers/message.h 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/headers/message.h 2003-10-02 01:22:42.000000000 -0500 +@@ -96,7 +96,6 @@ + " -S [commands] enable special commands (see man page)\n" \ + " -t mouse-type sets mouse type (default '%s')\n" \ + " Use a non-existent type (e.g. \"help\") to get a list\n" \ +- " -T test: read mouse, no clients\n" \ + " -v print version and exit\n" \ + " -V verbosity increase number of logged messages\n\n\n" \ + " Examples:\n\n" \ +@@ -168,7 +167,8 @@ + #define GPM_MESS_SELECT_TIMES "selected %i times" + + #define GPM_MESS_OPTION_NO_ARG "%s: Option \"%s\" takes no argument: ignoring \"%s\"" +-#define GPM_MESS_INVALID_ARG "%s: Invalid arg. \"%s\" to \"%s\"" ++#define GPM_MESS_INVALID_ARG "%s: Invalid argument \"%s\" for option \"%s\"" ++#define GPM_MESS_MISSING_ARG "%s: Option \"%s\" requires an argument" + #define GPM_MESS_CONT_WITH_ERR "%s: Continuing despite errors in option parsing" + #define GPM_MESS_TOO_MANY_OPTS "%s: Too many options for \"-t %s\"" + +@@ -196,7 +196,7 @@ + + /* warnings */ + #define GPM_MESS_REQUEST_ON "Request on vc %i > %i" +-#define GPM_MESS_FAILED_CONNECT "Failed gpm connect attempt by uid %d for vc %s" ++#define GPM_MESS_FAILED_CONNECT "Failed gpm connect attempt by uid %d for vc %d" + #define GPM_MESS_ZERO_SCREEN_DIM "zero screen dimension, assuming 80x25" + #define GPM_MESS_STRANGE_DATA "Data on strange file descriptor %d" + #define GPM_MESS_RESIZING "%s pid %i is resizing :-)" +diff -urN gpm-1.20.1/src/headers/optparser.h gpm/src/headers/optparser.h +--- gpm-1.20.1/src/headers/optparser.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/optparser.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,50 @@ ++/* ++ * optparser.h - GPM mouse options parser ++ * ++ * Copyright (C) 1993 Andrew Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-2000 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998,1999 Ian Zimmerman <itz@rahul.net> ++ * Copyright (C) 2001,2002 Nico Schottelius <nicos@pcsystems.de> ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++#ifndef __GPM_OPTPARSER_H_ ++#define __GPM_OPTPARSER_H_ ++ ++enum option_type { ++ OPT_BOOL = 1, ++ OPT_INT, /* "%i" */ ++ OPT_DEC, /* "%d" */ ++ OPT_STRING, ++ /* other types must be added */ ++ OPT_END = 0 ++}; ++ ++struct option_helper { ++ char *name; ++ enum option_type type; ++ union u { ++ int *iptr; /* used for int and bool arguments */ ++ char **sptr; /* used for string arguments, by strdup()ing the value */ ++ } u; ++ int value; /* used for boolean arguments */ ++ int present; ++}; ++ ++int parse_options(const char *who, const char *opt, char sep, struct option_helper *info); ++int check_no_options(const char *proto, const char *opts, char sep); ++int is_option_present(struct option_helper *info, const char *name); ++#endif +diff -urN gpm-1.20.1/src/headers/selection.h gpm/src/headers/selection.h +--- gpm-1.20.1/src/headers/selection.h 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/headers/selection.h 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,37 @@ ++/* ++ * console.h - GPM selection/paste handling ++ * ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#ifndef __GPM_SELECTION_H_ ++#define __GPM_SELECTION_H_ ++ ++struct sel_options { ++ int aged; ++ int age_limit; ++ int ptrdrag; ++}; ++ ++struct Gpm_Event; ++ ++extern struct sel_options sel_opts; /* only one exists */ ++ ++void do_selection(struct Gpm_Event *event, int three_button_mode); ++void selection_disable_paste(void); ++ ++#endif /* __GPM_CONSOLE_H_ */ +diff -urN gpm-1.20.1/src/headers/synaptics.h gpm/src/headers/synaptics.h +--- gpm-1.20.1/src/headers/synaptics.h 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/headers/synaptics.h 2003-10-02 01:22:42.000000000 -0500 +@@ -62,7 +62,7 @@ + ** + ** Process the touchpad 6/7/8 byte data. + */ +-void syn_process_serial_data (Gpm_Event *state, ++void syn_process_serial_data (int fd, Gpm_Event *state, + unsigned char *data); + + +@@ -72,7 +72,7 @@ + ** + ** Process the touchpad 6 byte data. + */ +-void syn_process_ps2_data (Gpm_Event *state, ++void syn_process_ps2_data (int fd, Gpm_Event *state, + unsigned char *data); + + +diff -urN gpm-1.20.1/src/lib/liblow.c gpm/src/lib/liblow.c +--- gpm-1.20.1/src/lib/liblow.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/lib/liblow.c 2003-10-02 01:22:42.000000000 -0500 +@@ -80,6 +80,8 @@ + int gpm_consolefd=-1; /* used to invoke ioctl() */ + int gpm_morekeys=0; + ++static char *consolename; ++ + int gpm_convert_event(unsigned char *mdata, Gpm_Event *ePtr); + + /*----------------------------------------------------------------------------* +@@ -192,14 +194,13 @@ + char *tty = NULL; + char *term = NULL; + int i; +- extern struct options option; + static int checked_con = 0; + struct sockaddr_un addr; + struct winsize win; + Gpm_Stst *new = NULL; + char* sock_name = 0; + +- option.consolename = NULL; ++ consolename = NULL; + + gpm_report(GPM_PR_DEBUG,"VC: %d",flag); + +@@ -216,7 +217,7 @@ + + /* check whether we know what name the console is: what's with the lib??? */ + if(checked_con == 0) { +- option.consolename = Gpm_get_console(); ++ consolename = Gpm_get_console(); + checked_con++; + } + +@@ -245,10 +246,10 @@ + conn->vc=0; /* default handler */ + if (flag > 0) { /* forced vc number */ + conn->vc=flag; +- if((tty = malloc(strlen(option.consolename)+Gpm_cnt_digits(flag))) == NULL) ++ if((tty = malloc(strlen(consolename)+Gpm_cnt_digits(flag))) == NULL) + gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- memcpy(tty,option.consolename,strlen(option.consolename)-1); +- sprintf(&tty[strlen(option.consolename)-1],"%i",flag); ++ memcpy(tty,consolename,strlen(consolename)-1); ++ sprintf(&tty[strlen(consolename)-1],"%i",flag); + } else { /* use your current vc */ + if (isatty(0)) tty = ttyname(0); /* stdin */ + if (!tty && isatty(1)) tty = ttyname(1); /* stdout */ +@@ -258,13 +259,13 @@ + goto err; + } + /* do we really need this check ? */ +- if(strncmp(tty,option.consolename,strlen(option.consolename)-1) +- || !isdigit(tty[strlen(option.consolename)-1])) { +- gpm_report(GPM_PR_ERR,"strncmp/isdigit/option.consolename failed"); ++ if(strncmp(tty,consolename,strlen(consolename)-1) ++ || !isdigit(tty[strlen(consolename)-1])) { ++ gpm_report(GPM_PR_ERR,"strncmp/isdigit/consolename failed"); + goto err; + } + +- conn->vc=atoi(&tty[strlen(option.consolename)-1]); ++ conn->vc=atoi(&tty[strlen(consolename)-1]); + } + + if (gpm_consolefd == -1) +@@ -272,6 +273,8 @@ + gpm_report(GPM_PR_ERR,GPM_MESS_DOUBLE_S,tty,strerror(errno)); + goto err; + } ++ ++ if (flag > 0) free(tty); + } + + new->info=*conn; +diff -urN gpm-1.20.1/src/lib/tools.c gpm/src/lib/tools.c +--- gpm-1.20.1/src/lib/tools.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/lib/tools.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,93 @@ ++/* ++ * tools.c - tools which are needed by client and server ++ * ++ * Copyright (c) 2001 Nico Schottelius <nico@schottelius.org> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#include <stdio.h> /* NULL */ ++#include <string.h> ++#include <stdlib.h> ++#include <sys/types.h> /* these three are */ ++#include <sys/stat.h> /* needed for */ ++#include <unistd.h> /* stat() */ ++ ++#include "headers/gpmInt.h" /* only used for some defines */ ++#include "headers/message.h" ++ ++/***************************************************************************** ++ * check, whether devfs is used or not. ++ * See /usr/src/linux/Documentation/filesystems/devfs/ for details. ++ * Returns: the name of the console (/dev/tty0 or /dev/vc/0) ++ *****************************************************************************/ ++char *Gpm_get_console( void ) ++{ ++ ++ char *back = NULL, *tmp = NULL; ++ struct stat buf; ++ ++ /* first try the devfs device, because in the next time this will be ++ * the preferred one. If that fails, take the old console */ ++ ++ /* Check for open new console */ ++ if (stat(GPM_DEVFS_CONSOLE,&buf) == 0) ++ tmp = GPM_DEVFS_CONSOLE; ++ ++ /* Failed, try OLD console */ ++ else if(stat(GPM_OLD_CONSOLE,&buf) == 0) ++ tmp = GPM_OLD_CONSOLE; ++ ++ if(tmp != NULL) ++ if((back = malloc(strlen(tmp) + sizeof(char)) ) != NULL) ++ strcpy(back,tmp); ++ ++ return(back); ++} ++ ++/* what's the english name for potenz ? */ ++int Gpm_x_high_y(int base, int pot_y) ++{ ++ int val = 1; ++ ++ if(pot_y == 0) val = 1; ++ else if(pot_y < 0) val = 0; /* ugly hack ;) */ ++ else while(pot_y > 0) { ++ val = val * base; ++ pot_y--; ++ } ++ return val; ++} ++ ++/* return characters needed to display int */ ++int Gpm_cnt_digits(int number) ++{ ++ /* 0-9 = 1 10^0 <-> (10^1)-1 ++ * 10 - 99 = 2 10^1 <-> (10^2)-1 ++ * 100 - 999 = 3 10^2 <-> (10^3)-1 ++ * 1000 - 9999 = 4 ... */ ++ ++ int ret = 0, num = 0; ++ ++ /* non negative, please */ ++ if(number < 0) number *= -1; ++ else if(number == 0) ret = 1; ++ else while(number > num) { ++ ret++; ++ num = (Gpm_x_high_y(10,ret) - 1); ++ } ++ ++ return(ret); ++} +diff -urN gpm-1.20.1/src/Makefile.in gpm/src/Makefile.in +--- gpm-1.20.1/src/Makefile.in 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/Makefile.in 2003-10-02 01:22:42.000000000 -0500 +@@ -12,15 +12,16 @@ + include $(top_builddir)/Makefile.include + + # Main portion: regular build rules ++MICESRC = mice.c twiddler.c synaptics.c @EVDEV_SRCS@ + +-GSRC = main.c gpm.c gpn.c mice.c special.c twiddler.c synaptics.c \ +- startup.c server_tools.c ++GSRC = main.c gpm.c gpn.c special.c startup.c server_tools.c console.c \ ++ selection.c client.c optparser.c $(MICESRC) + +-GOBJ = $(GSRC:.c=.o) report.o tools.o ++GOBJ = $(GSRC:.c=.o) report.o + +-LSRC = lib/liblow.c lib/libhigh.c lib/libxtra.c lib/report-lib.c ++LSRC = lib/liblow.c lib/libhigh.c lib/libxtra.c lib/report-lib.c lib/tools.c + +-LOBJ = $(LSRC:.c=.o) tools.o @CURSES_OBJS@ ++LOBJ = $(LSRC:.c=.o) @CURSES_OBJS@ + + PICS = $(LOBJ:.o=.lo) + +@@ -143,7 +144,7 @@ + $(CC) -I. @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@.o $< + $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $@.o @LIBS@ $(LIBS) lib/libgpm.a + +-prog/mouse-test: mice.o twiddler.o synaptics.o ++prog/mouse-test: $(MICESRC:.c=.o) console.o optparser.o + + $(PROG): lib/libgpm.so lib/@SHLIB@ lib/libgpm.a + +diff -urN gpm-1.20.1/src/mice.c gpm/src/mice.c +--- gpm-1.20.1/src/mice.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/mice.c 2003-10-02 01:22:42.000000000 -0500 +@@ -46,15 +46,11 @@ + #include <string.h> + #include <stdlib.h> + #include <termios.h> +-#include <fcntl.h> +-#include <termios.h> + #include <errno.h> + #include <unistd.h> + #include <ctype.h> + +-#include <sys/types.h> + #include <sys/stat.h> /* stat() */ +-#include <sys/time.h> /* select() */ + + #include <linux/kdev_t.h> /* MAJOR */ + #include <linux/keyboard.h> +@@ -72,135 +68,40 @@ + + + #include "headers/gpmInt.h" ++#include "headers/console.h" + #include "headers/twiddler.h" + #include "headers/synaptics.h" + #include "headers/message.h" +- +-/*========================================================================*/ +-/* Parsing argv: helper dats struct function (should they get elsewhere?) */ +-/*========================================================================*/ +- +-enum argv_type { +- ARGV_BOOL = 1, +- ARGV_INT, /* "%i" */ +- ARGV_DEC, /* "%d" */ +- ARGV_STRING, +- /* other types must be added */ +- ARGV_END = 0 +-}; +- +-typedef struct argv_helper { +- char *name; +- enum argv_type type; +- union u { +- int *iptr; /* used for int and bool arguments */ +- char **sptr; /* used for string arguments, by strdup()ing the value */ +- } u; +- int value; /* used for boolean arguments */ +-} argv_helper; +- +-static int parse_argv(argv_helper *info, int argc, char **argv) +-{ +- int i, j = 0, errors = 0; +- long l; +- argv_helper *p; +- char *s, *t; +- int base = 0; /* for strtol */ +- +- +- for (i=1; i<argc; i++) { +- for (p = info; p->type != ARGV_END; p++) { +- j = strlen(p->name); +- if (strncmp(p->name, argv[i], j)) +- continue; +- if (isalnum(argv[i][j])) +- continue; +- break; +- } +- if (p->type == ARGV_END) { /* not found */ +- fprintf(stderr, "%s: Uknown option \"%s\" for pointer \"%s\"\n", +- option.progname, argv[i], argv[0]); +- errors++; +- continue; +- } +- /* Found. Look for trailing stuff, if any */ +- s = argv[i]+j; +- while (*s && isspace(*s)) s++; /* skip spaces */ +- if (*s == '=') s++; /* skip equal */ +- while (*s && isspace(*s)) s++; /* skip other spaces */ +- +- /* Now parse what s is */ +- switch(p->type) { +- case ARGV_BOOL: +- if (*s) { +- gpm_report(GPM_PR_ERR,GPM_MESS_OPTION_NO_ARG,option.progname,p->name,s); +- errors++; +- } +- *(p->u.iptr) = p->value; +- break; +- +- case ARGV_DEC: +- base = 10; /* and fall through */ +- case ARGV_INT: +- l = strtol(s, &t, base); +- if (*t) { +- gpm_report(GPM_PR_ERR,GPM_MESS_INVALID_ARG, option.progname, s, p->name); +- errors++; +- break; +- } +- *(p->u.iptr) = (int)l; +- break; +- +- case ARGV_STRING: +- *(p->u.sptr) = strdup(s); +- break; +- +- case ARGV_END: /* let's please "-Wall" */ +- break; +- } +- } /* for i in argc */ +- if (errors) gpm_report(GPM_PR_ERR,GPM_MESS_CONT_WITH_ERR, option.progname); +- return errors; +-} +- +-/*========================================================================*/ +-/* Provide a common error engine by parsing with an empty option-set */ +-/*========================================================================*/ +-static volatile int check_no_argv(int argc, char **argv) +-{ +- static argv_helper optioninfo[] = { +- {"", ARGV_END} +- }; +- return parse_argv(optioninfo, argc, argv); +-} ++#include "headers/optparser.h" + + /*========================================================================*/ + /* Parse the "old" -o options */ + /*========================================================================*/ +-static int option_modem_lines(int fd, int argc, char **argv) ++static int option_modem_lines(int fd, char *proto, char *opts) + { +- static unsigned int err, lines, reallines; ++ static unsigned int lines, reallines; ++ static struct option_helper optioninfo[] = { ++ {"dtr", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_DTR}, ++ {"rts", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_RTS}, ++ {"both", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_DTR | TIOCM_RTS}, ++ {"", OPT_END} ++ }; + +- static argv_helper optioninfo[] = { +- {"dtr", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_DTR}, +- {"rts", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_RTS}, +- {"both", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_DTR | TIOCM_RTS}, +- {"", ARGV_END} +- }; ++ int rslt = parse_options(proto, opts, ',', optioninfo); + +- if (argc<2) return 0; +- if (argc > 2) { +- gpm_report(GPM_PR_ERR,GPM_MESS_TOO_MANY_OPTS,option.progname, argv[0]); ++ if (rslt < 0) { ++ errno = EINVAL; ++ return -1; ++ } else if (rslt > 1) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_TOO_MANY_OPTS, option.progname, proto); + errno = EINVAL; /* used by gpm_oops(), if the caller reports failure */ + return -1; ++ } else if (rslt == 1) { ++ /* ok, move the lines */ ++ ioctl(fd, TIOCMGET, &reallines); ++ reallines &= ~lines; ++ ioctl(fd, TIOCMSET, &reallines); + } +- err = parse_argv(optioninfo, argc, argv); +- if(err) return 0; /* a message has been printed, but go on as good */ +- +- /* ok, move the lines */ +- ioctl(fd, TIOCMGET, &reallines); +- reallines &= ~lines; +- ioctl(fd, TIOCMSET, &reallines); + return 0; + } + +@@ -233,28 +134,12 @@ + /*========================================================================*/ + + #ifdef HAVE_LINUX_INPUT_H +-static int M_evdev (Gpm_Event * state, unsigned char *data) +-{ +- struct input_event thisevent; +- (void) memcpy (&thisevent, data, sizeof (struct input_event)); +- if (thisevent.type == EV_REL) { +- if (thisevent.code == REL_X) +- state->dx = (signed char) thisevent.value; +- else if (thisevent.code == REL_Y) +- state->dy = (signed char) thisevent.value; +- } else if (thisevent.type == EV_KEY) { +- switch(thisevent.code) { +- case BTN_LEFT: state->buttons ^= GPM_B_LEFT; break; +- case BTN_MIDDLE: state->buttons ^= GPM_B_MIDDLE; break; +- case BTN_RIGHT: state->buttons ^= GPM_B_RIGHT; break; +- case BTN_SIDE: state->buttons ^= GPM_B_MIDDLE; break; +- } +- } +- return 0; +-} ++/* defined in evdev.c */ ++extern int M_evdev(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state); ++extern int I_evdev(struct micedev *dev, struct miceopt *opt, Gpm_Type *type); + #endif /* HAVE_LINUX_INPUT_H */ + +-static int M_ms(Gpm_Event *state, unsigned char *data) ++static int M_ms(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * some devices report a change of middle-button state by +@@ -273,7 +158,7 @@ + return 0; + } + +-static int M_ms_plus(Gpm_Event *state, unsigned char *data) ++static int M_ms_plus(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + static unsigned char prev=0; + +@@ -293,7 +178,7 @@ + return 0; + } + +-static int M_ms_plus_lr(Gpm_Event *state, unsigned char *data) ++static int M_ms_plus_lr(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * Same as M_ms_plus but with an addition by Edmund GRIMLEY EVANS +@@ -329,19 +214,19 @@ + int SUMMA_BORDER=100; + int summamaxx,summamaxy; + char summaid=-1; +-static int M_summa(Gpm_Event *state, unsigned char *data) ++static int M_summa(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + int x, y; + + x = ((data[2]<<7) | data[1])-SUMMA_BORDER; + if (x<0) x=0; + if (x>summamaxx) x=summamaxx; +- state->x = (x * win.ws_col / summamaxx); ++ state->x = (x * console.max_x / summamaxx); + realposx = (x * 16383 / summamaxx); + + y = ((data[4]<<7) | data[3])-SUMMA_BORDER; + if (y<0) y=0; if (y>summamaxy) y=summamaxy; +- state->y = 1 + y * (win.ws_row-1)/summamaxy; ++ state->y = 1 + y * (console.max_y-1)/summamaxy; + realposy = y * 16383 / summamaxy; + + state->buttons= +@@ -396,7 +281,7 @@ + + + /* 'Genitizer' (kw@dtek.chalmers.se 11/12/97) */ +-static int M_geni(Gpm_Event *state, unsigned char *data) ++static int M_geni(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* this is a little confusing. If we use the stylus, we + * have three buttons (tip, lower, upper), and if +@@ -419,7 +304,7 @@ + + + /* m$ 'Intellimouse' (steveb 20/7/97) */ +-static int M_ms3(Gpm_Event *state, unsigned char *data) ++static int M_ms3(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->wdx = state->wdy = 0; + state->buttons= ((data[0] & 0x20) >> 3) /* left */ +@@ -470,7 +355,7 @@ + } + + /* M_brw is a variant of m$ 'Intellimouse' the middle button is different */ +-static int M_brw(Gpm_Event *state, unsigned char *data) ++static int M_brw(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= ((data[0] & 0x20) >> 3) /* left */ + | ((data[3] & 0x20) >> 4) /* middle */ +@@ -491,7 +376,7 @@ + return 0; + } + +-static int M_bare(Gpm_Event *state, unsigned char *data) ++static int M_bare(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* a bare ms protocol */ + state->buttons= ((data[0] & 0x20) >> 3) | ((data[0] & 0x10) >> 4); +@@ -500,7 +385,7 @@ + return 0; + } + +-static int M_sun(Gpm_Event *state, unsigned char *data) ++static int M_sun(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= (~data[0]) & 0x07; + state->dx= (signed char)(data[1]); +@@ -508,7 +393,7 @@ + return 0; + } + +-static int M_msc(Gpm_Event *state, unsigned char *data) ++static int M_msc(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= (~data[0]) & 0x07; + state->dx= (signed char)(data[1]) + (signed char)(data[3]); +@@ -558,7 +443,7 @@ + + } + +-static int M_logimsc(Gpm_Event *state, unsigned char *data) /* same as msc */ ++static int M_logimsc(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= (~data[0]) & 0x07; + state->dx= (signed char)(data[1]) + (signed char)(data[3]); +@@ -566,7 +451,7 @@ + return 0; + } + +-static int M_mm(Gpm_Event *state, unsigned char *data) ++static int M_mm(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= data[0] & 0x07; + state->dx= (data[0] & 0x10) ? data[1] : - data[1]; +@@ -574,7 +459,7 @@ + return 0; + } + +-static int M_logi(Gpm_Event *state, unsigned char *data) /* equal to mm */ ++static int M_logi(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= data[0] & 0x07; + state->dx= (data[0] & 0x10) ? data[1] : - data[1]; +@@ -582,7 +467,7 @@ + return 0; + } + +-static int M_bm(Gpm_Event *state, unsigned char *data) /* equal to sun */ ++static int M_bm(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + state->buttons= (~data[0]) & 0x07; + state->dx= (signed char)data[1]; +@@ -590,7 +475,7 @@ + return 0; + } + +-static int M_ps2(Gpm_Event *state, unsigned char *data) ++static int M_ps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + static int tap_active=0; /* there exist glidepoint ps2 mice */ + +@@ -599,8 +484,8 @@ + !!(data[0]&2) * GPM_B_RIGHT + + !!(data[0]&4) * GPM_B_MIDDLE; + +- if (data[0]==0 && opt_glidepoint_tap) /* by default this is false */ +- state->buttons = tap_active = opt_glidepoint_tap; ++ if (data[0]==0 && opt->glidepoint_tap) /* by default this is false */ ++ state->buttons = tap_active = opt->glidepoint_tap; + else if (tap_active) { + if (data[0]==8) + state->buttons = tap_active = 0; +@@ -623,10 +508,11 @@ + state->dy= -((data[0] & 0x20) ? data[2]-256 : data[2]); + else + state->dy = 0; ++ + return 0; + } + +-static int M_imps2(Gpm_Event *state, unsigned char *data) ++static int M_imps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + + static int tap_active=0; /* there exist glidepoint ps2 mice */ +@@ -636,8 +522,8 @@ + state->buttons= ((data[0] & 1) << 2) /* left */ + | ((data[0] & 6) >> 1); /* middle and right */ + +- if (data[0]==0 && opt_glidepoint_tap) // by default this is false +- state->buttons = tap_active = opt_glidepoint_tap; ++ if (data[0]==0 && opt->glidepoint_tap) // by default this is false ++ state->buttons = tap_active = opt->glidepoint_tap; + else if (tap_active) { + if (data[0]==8) + state->buttons = tap_active = 0; +@@ -667,7 +553,7 @@ + + } + +-static int M_netmouse(Gpm_Event *state, unsigned char *data) ++static int M_netmouse(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* Avoid these beasts if you can. They connect to normal PS/2 port, + * but their protocol is one byte longer... So if you have notebook +@@ -706,47 +592,45 @@ + } + + /* standard ps2 */ +-static Gpm_Type *I_ps2(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++int I_ps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + static unsigned char s[] = { 246, 230, 244, 243, 100, 232, 3, }; +- write (fd, s, sizeof (s)); ++ write(dev->fd, s, sizeof (s)); + usleep (30000); +- tcflush (fd, TCIFLUSH); +- return type; ++ tcflush (dev->fd, TCIFLUSH); ++ return 0; + } + +-static Gpm_Type *I_netmouse(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_netmouse(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + unsigned char magic[6] = { 0xe8, 0x03, 0xe6, 0xe6, 0xe6, 0xe9 }; + int i; + +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + for (i=0; i<6; i++) { + unsigned char c = 0; +- write( fd, magic+i, 1 ); +- read( fd, &c, 1 ); ++ write(dev->fd, magic+i, 1 ); ++ read(dev->fd, &c, 1 ); + if (c != 0xfa) { + gpm_report(GPM_PR_ERR,GPM_MESS_NETM_NO_ACK,c); +- return NULL; ++ return -1; + } + } + { + unsigned char rep[3] = { 0, 0, 0 }; +- read( fd, rep, 1 ); +- read( fd, rep+1, 1 ); +- read( fd, rep+2, 1 ); ++ read( dev->fd, rep, 1 ); ++ read( dev->fd, rep+1, 1 ); ++ read( dev->fd, rep+2, 1 ); + if (rep[0] || (rep[1] != 0x33) || (rep[2] != 0x55)) { + gpm_report(GPM_PR_ERR,GPM_MESS_NETM_INV_MAGIC, rep[0], rep[1], rep[2]); +- return NULL; ++ return -1; + } + } +- return type; ++ return 0; + } + + #define GPM_B_BOTH (GPM_B_LEFT|GPM_B_RIGHT) +-static int M_mman(Gpm_Event *state, unsigned char *data) ++static int M_mman(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * the damned MouseMan has 3/4 bytes packets. The extra byte +@@ -784,7 +668,7 @@ + mytype->getextra=1; + } else { + if (b & 0x2) prev |= GPM_B_MIDDLE; +- if (b & 0x1) prev |= opt_glidepoint_tap; ++ if (b & 0x1) prev |= opt->glidepoint_tap; + } + } + state->buttons=prev; +@@ -828,7 +712,7 @@ + + #define IsA(m) ((WacomModell==(-1))? 0:!strcmp(#m,wcmodell[WacomModell].name)) + +-static int M_wacom(Gpm_Event *state, unsigned char *data) ++static int M_wacom(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + static int ox=-1, oy; + int x, y; +@@ -878,8 +762,8 @@ + if (WacomAbsoluteWanted) { /* Absolute Mode */ + if (x>wmaxx) x=wmaxx; if (x<0) x=0; + if (y>wmaxy) y=wmaxy; if (y<0) y=0; +- state->x = (x * win.ws_col / wmaxx); +- state->y = (y * win.ws_row / wmaxy); ++ state->x = (x * console.max_x / wmaxx); ++ state->y = (y * console.max_y / wmaxy); + + realposx = (x / wmaxx); /* this two lines come from the summa driver. */ + realposy = (y / wmaxy); /* they seem to be buggy (always give zero). */ +@@ -889,8 +773,8 @@ + if( abs(x-ox)>(wmaxx/wcmodell[WacomModell].treshold) + || abs(y-oy)>(wmaxy/wcmodell[WacomModell].treshold) ) ox=x; oy=y; + +- state->dx= (x-ox) / (wmaxx / win.ws_col / wcmodell[WacomModell].treshold); +- state->dy= (y-oy) / (wmaxy / win.ws_row / wcmodell[WacomModell].treshold); ++ state->dx= (x-ox) / (wmaxx / console.max_x / wcmodell[WacomModell].treshold); ++ state->dy= (y-oy) / (wmaxy / console.max_y / wcmodell[WacomModell].treshold); + } + + ox=x; oy=y; +@@ -918,7 +802,7 @@ + #define CAL_Y_MAX 0xF40 + #define CAL_Y_SIZE (CAL_Y_MAX - CAL_Y_MIN) + +-static int M_calus(Gpm_Event *state, unsigned char *data) ++static int M_calus(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + int x, y; + +@@ -932,12 +816,12 @@ + state->dx = 0; state->dy = 0; + + state->x = x < CAL_X_MIN ? 0 +- : x > CAL_X_MAX ? win.ws_col+1 +- : (long)(x-CAL_X_MIN) * (long)(win.ws_col-1) / CAL_X_SIZE+2; ++ : x > CAL_X_MAX ? console.max_x+1 ++ : (long)(x-CAL_X_MIN) * (long)(console.max_x-1) / CAL_X_SIZE+2; + +- state->y = y < CAL_Y_MIN ? win.ws_row + 1 ++ state->y = y < CAL_Y_MIN ? console.max_y + 1 + : y > CAL_Y_MAX ? 0 +- : (long)(CAL_Y_MAX-y) * (long)win.ws_row / CAL_Y_SIZE + 1; ++ : (long)(CAL_Y_MAX-y) * (long)console.max_y / CAL_Y_SIZE + 1; + + realposx = x < CAL_X_MIN ? 0 + : x > CAL_X_MAX ? 16384 +@@ -950,7 +834,7 @@ + return 0; + } + +-static int M_calus_rel(Gpm_Event *state, unsigned char *data) ++static int M_calus_rel(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + static int ox=-1, oy; + int x, y; +@@ -984,7 +868,7 @@ + #define NCR_DELTA_X (NCR_RIGHT_X - NCR_LEFT_X) + #define NCR_DELTA_Y (NCR_TOP_Y - NCR_BOTTOM_Y) + +-static int M_ncr(Gpm_Event *state, unsigned char *data) ++static int M_ncr(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + int x,y; + +@@ -1002,14 +886,14 @@ + state->x = x < NCR_LEFT_X + ? 0 + : x > NCR_RIGHT_X +- ? win.ws_col+1 +- : (long)(x-NCR_LEFT_X) * (long)(win.ws_col-1) / NCR_DELTA_X+2; ++ ? console.max_x+1 ++ : (long)(x-NCR_LEFT_X) * (long)(console.max_x-1) / NCR_DELTA_X+2; + + state->y = y < NCR_BOTTOM_Y +- ? win.ws_row + 1 ++ ? console.max_y + 1 + : y > NCR_TOP_Y + ? 0 +- : (long)(NCR_TOP_Y-y) * (long)win.ws_row / NCR_DELTA_Y + 1; ++ : (long)(NCR_TOP_Y-y) * (long)console.max_y / NCR_DELTA_Y + 1; + + realposx = x < NCR_LEFT_X + ? 0 +@@ -1026,7 +910,7 @@ + return 0; + } + +-static int M_twid(Gpm_Event *state, unsigned char *data) ++static int M_twid(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + unsigned long message=0UL; int i,h,v; + static int lasth, lastv, lastkey, key, lock=0, autorepeat=0; +@@ -1144,7 +1028,7 @@ + #ifdef HAVE_LINUX_JOYSTICK_H + /* Joystick mouse emulation (David Given) */ + +-static int M_js(Gpm_Event *state, unsigned char *data) ++static int M_js(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + struct JS_DATA_TYPE *jdata = (void*)data; + static int centerx = 0; +@@ -1193,21 +1077,21 @@ + #endif /* have joystick.h */ + + /* Synaptics TouchPad mouse emulation (Henry Davies) */ +-static int M_synaptics_serial(Gpm_Event *state, unsigned char *data) ++static int M_synaptics_serial(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { +- syn_process_serial_data (state, data); ++ syn_process_serial_data(dev->fd, state, data); + return 0; + } + + + /* Synaptics TouchPad mouse emulation (Henry Davies) */ +-static int M_synaptics_ps2(Gpm_Event *state, unsigned char *data) ++static int M_synaptics_ps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { +- syn_process_ps2_data(state, data); ++ syn_process_ps2_data(dev->fd, state, data); + return 0; + } + +-static int M_mtouch(Gpm_Event *state, unsigned char *data) ++static int M_mtouch(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * This is a simple decoder for the MicroTouch touch screen +@@ -1219,8 +1103,8 @@ + static int upx, upy; /* keep track of last finger-up place */ + static struct timeval uptv, tv; /* time of last up, and down events */ + +- #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF) +- #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF) ++ #define REAL_TO_XCELL(x) (x * console.max_x / 0x3FFF) ++ #define REAL_TO_YCELL(y) (y * console.max_y / 0x3FFF) + + #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) + #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ +@@ -1245,7 +1129,7 @@ + + if (avgx < 0) { /* press event */ + GET_TIME(tv); +- if (DIF_TIME(uptv, tv) < opt_time) { ++ if (DIF_TIME(uptv, tv) < opt->time) { + /* count as button press placed at finger-up pixel */ + state->buttons = GPM_B_LEFT; + realposx = avgx = upx; state->x = REAL_TO_XCELL(realposx); +@@ -1287,7 +1171,7 @@ + static int gunze_calib[4]; /* x0,y0 x1,y1 (measured at 1/8 and 7/8) */ + static int gunze_debounce = 100; /* milliseconds: ignore shorter taps */ + +-static int M_gunze(Gpm_Event *state, unsigned char *data) ++static int M_gunze(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + /* + * This generates button-1 events, by now. +@@ -1300,8 +1184,8 @@ + static struct timeval uptv, tv; /* time of last up, and down events */ + int timediff; + +- #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF) +- #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF) ++ #define REAL_TO_XCELL(x) (x * console.max_x / 0x3FFF) ++ #define REAL_TO_YCELL(y) (y * console.max_y / 0x3FFF) + + #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL)) + #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \ +@@ -1350,7 +1234,7 @@ + GET_TIME(tv); + timediff = DIF_TIME(uptv, tv); + released = 0; +- if (timediff > gunze_debounce && timediff < opt_time) { ++ if (timediff > gunze_debounce && timediff < opt->time) { + /* count as button press placed at finger-up pixel */ + dragging = 1; + state->buttons = GPM_B_LEFT; +@@ -1399,7 +1283,7 @@ + /* corresponding correction of the protocol identification */ + /* mask) 2001/07/12 by Maciej W. Rozycki (macro@ds2.pg.gda.pl) */ + +-static int M_vsxxx_aa(Gpm_Event *state, unsigned char *data) ++static int M_vsxxx_aa(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + + /* The mouse protocol is as follows: +@@ -1449,16 +1333,16 @@ + /* Genius Wizardpad tablet -- Matt Kimball (mkimball@xmission.com) */ + static int wizardpad_width = -1; + static int wizardpad_height = -1; +-static int M_wp(Gpm_Event *state, unsigned char *data) ++static int M_wp(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state) + { + int x, y, pressure; + + x = ((data[4] & 0x1f) << 12) | ((data[3] & 0x3f) << 6) | (data[2] & 0x3f); +- state->x = x * win.ws_col / (wizardpad_width * 40); ++ state->x = x * console.max_x / (wizardpad_width * 40); + realposx = x * 16383 / (wizardpad_width * 40); + + y = ((data[7] & 0x1f) << 12) | ((data[6] & 0x3f) << 6) | (data[5] & 0x3f); +- state->y = win.ws_row - y * win.ws_row / (wizardpad_height * 40) - 1; ++ state->y = console.max_y - y * console.max_y / (wizardpad_height * 40) - 1; + realposy = 16383 - y * 16383 / (wizardpad_height * 40) - 1; + + pressure = ((data[9] & 0x0f) << 4) | (data[8] & 0x0f); +@@ -1475,11 +1359,9 @@ + /*========================================================================*/ + /* Then, mice should be initialized */ + +-static Gpm_Type* I_empty(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_empty(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { +- if (check_no_argv(argc, argv)) return NULL; +- return type; ++ return check_no_options(type->name, opt->text, ',') ? 0 : -1; + } + + static int setspeed(int fd,int old,int new,int needtowrite,unsigned short flags) +@@ -1536,28 +1418,27 @@ + {125,"Q"}, + {1E9,"N"}, }; + +-static Gpm_Type* I_serial(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_serial(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + int i; unsigned char c; + fd_set set; struct timeval timeout={0,0}; /* used when not debugging */ + + /* accept "-o dtr", "-o rts" and "-o both" */ +- if (option_modem_lines(fd, argc, argv)) return NULL; ++ if (option_modem_lines(dev->fd, type->name, opt->text)) return -1; + + #ifndef DEBUG + /* flush any pending input (thanks, Miguel) */ + FD_ZERO(&set); + for(i=0; /* always */ ; i++) { +- FD_SET(fd,&set); +- switch(select(fd+1,&set,(fd_set *)NULL,(fd_set *)NULL,&timeout/*zero*/)){ +- case 1: if (read(fd,&c,1)==0) break; ++ FD_SET(dev->fd,&set); ++ switch(select(dev->fd+1,&set,(fd_set *)NULL,(fd_set *)NULL,&timeout/*zero*/)){ ++ case 1: if (read(dev->fd,&c,1)==0) break; + case -1: continue; + } + break; + } + +- if (type->fun==M_logimsc) write(fd, "QU", 2 ); ++ if (type->fun==M_logimsc) write(dev->fd, "QU", 2 ); + + #if 0 /* Did this ever work? -- I don't know, but should we not remove it, + * if it doesn't work ??? -- Nico */ +@@ -1570,7 +1451,7 @@ + + /* Non mman: change from any available speed to the chosen one */ + for (i=9600; i>=1200; i/=2) +- setspeed(fd, i, opt_baud, (type->fun != M_mman) /* write */, flags); ++ setspeed(dev->fd, i, opt->baud, (type->fun != M_mman) /* write */, type->flags); + + /* + * reset the MouseMan/TrackMan to use the 3/4 byte protocol +@@ -1578,51 +1459,50 @@ + * Changed after 1.14; why not having "I_mman" now? + */ + if (type->fun==M_mman) { +- setspeed(fd, 1200, 1200, 0, flags); /* no write */ +- write(fd, "*X", 2); +- setspeed(fd, 1200, opt_baud, 0, flags); /* no write */ +- return type; ++ setspeed(dev->fd, 1200, 1200, 0, type->flags); /* no write */ ++ write(dev->fd, "*X", 2); ++ setspeed(dev->fd, 1200, opt->baud, 0, type->flags); /* no write */ ++ return 0; + } + + if(type->fun==M_geni) { + gpm_report(GPM_PR_INFO,GPM_MESS_INIT_GENI); +- setspeed(fd, 1200, 9600, 1, flags); /* write */ +- write(fd, ":" ,1); +- write(fd, "E" ,1); /* setup tablet. relative mode, resolution... */ +- write(fd, "@" ,1); /* setup tablet. relative mode, resolution... */ ++ setspeed(dev->fd, 1200, 9600, 1, type->flags); /* write */ ++ write(dev->fd, ":" ,1); ++ write(dev->fd, "E" ,1); /* setup tablet. relative mode, resolution... */ ++ write(dev->fd, "@" ,1); /* setup tablet. relative mode, resolution... */ + } + + if (type->fun==M_synaptics_serial) { + int packet_length; + +- setspeed (fd, 1200, 1200, 1, flags); +- packet_length = syn_serial_init (fd); +- setspeed (fd, 1200, 9600, 1, flags); ++ setspeed (dev->fd, 1200, 1200, 1, type->flags); ++ packet_length = syn_serial_init (dev->fd); ++ setspeed (dev->fd, 1200, 9600, 1, type->flags); + + type->packetlen = packet_length; + type->howmany = packet_length; + } + + if (type->fun==M_vsxxx_aa) { +- setspeed (fd, 4800, 4800, 0, flags); /* no write */ +- write(fd, "R", 1); /* initialize a mouse; without getting an "R" */ ++ setspeed (dev->fd, 4800, 4800, 0, type->flags); /* no write */ ++ write(dev->fd, "R", 1); /* initialize a mouse; without getting an "R" */ + /* a mouse does not send a bytestream */ + } + +- return type; ++ return 0; + } + +-static Gpm_Type* I_logi(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_logi(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + int i; + struct stat buf; + int busmouse; + +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + + /* is this a serial- or a bus- mouse? */ +- if(fstat(fd,&buf)==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_FSTAT); ++ if(fstat(dev->fd,&buf)==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_FSTAT); + i=MAJOR(buf.st_rdev); + + /* I don't know why this is herein, but I remove it. I don't think a +@@ -1635,21 +1515,20 @@ + type->howmany = busmouse ? 3 : 1; + + /* change from any available speed to the chosen one */ +- for (i=9600; i>=1200; i/=2) setspeed(fd, i, opt_baud, 1 /* write */, flags); ++ for (i=9600; i>=1200; i/=2) setspeed(dev->fd, i, opt->baud, 1 /* write */, type->flags); + + /* this stuff is peculiar of logitech mice, also for the serial ones */ +- write(fd, "S", 1); +- setspeed(fd, opt_baud, opt_baud, 1 /* write */, ++ write(dev->fd, "S", 1); ++ setspeed(dev->fd, opt->baud, opt->baud, 1 /* write */, + CS8 |PARENB |PARODD |CREAD |CLOCAL |HUPCL); + + /* configure the sample rate */ +- for (i=0;opt_sample<=sampletab[i].sample;i++) ; +- write(fd,sampletab[i].code,1); +- return type; ++ for (i=0;opt->sample<=sampletab[i].sample;i++) ; ++ write(dev->fd,sampletab[i].code,1); ++ return 0; + } + +-static Gpm_Type *I_wacom(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_wacom(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + /* wacom graphire tablet */ + #define UD_RESETBAUD "\r$" /* reset baud rate to default (wacom V) */ +@@ -1664,19 +1543,19 @@ + { + /* Init Wacom communication; this is modified from xf86Wacom.so module */ + /* Set speed to 19200 */ +- setspeed (fd, 1200, 19200, 0, B19200|CS8|CREAD|CLOCAL|HUPCL); ++ setspeed (dev->fd, 1200, 19200, 0, B19200|CS8|CREAD|CLOCAL|HUPCL); + /* Send Reset Baudrate Command */ +- write(fd, UD_RESETBAUD, strlen(UD_RESETBAUD)); ++ write(dev->fd, UD_RESETBAUD, strlen(UD_RESETBAUD)); + usleep(250000); + /* Send Reset Command */ +- write(fd, UD_RESET, strlen(UD_RESET)); ++ write(dev->fd, UD_RESET, strlen(UD_RESET)); + usleep(75000); + /* Set speed to 9600bps */ +- setspeed (fd, 1200, 9600, 0, B9600|CS8|CREAD|CLOCAL|HUPCL); ++ setspeed (dev->fd, 1200, 9600, 0, B9600|CS8|CREAD|CLOCAL|HUPCL); + /* Send Reset Command */ +- write(fd, UD_RESET, strlen(UD_RESET)); ++ write(dev->fd, UD_RESET, strlen(UD_RESET)); + usleep(250000); +- write(fd, UD_STOP, strlen(UD_STOP)); ++ write(dev->fd, UD_STOP, strlen(UD_STOP)); + usleep(100000); + } + +@@ -1690,7 +1569,7 @@ + struct timeval timeout; + fd_set readfds; + int err; +- FD_ZERO(&readfds); FD_SET(fd, &readfds); ++ FD_ZERO(&readfds); FD_SET(dev->fd, &readfds); + timeout.tv_sec = 0; timeout.tv_usec = 200000; + err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout); + return((err>0)?1:err); +@@ -1706,11 +1585,11 @@ + * Get Data to buffer until full or timeout. + * Give back 0 for timeout and !0 for buffer full + */ +- if (cmd) write(fd,cmd,strlen(cmd)); ++ if (cmd) write(dev->fd,cmd,strlen(cmd)); + memset(buffer,0,sizeof(buffer)); p=buffer; + err=wait_wacom(); + while (err != -1 && err && (p-buffer)<(sizeof(buffer)-1)) { +- p+= read(fd,p,(sizeof(buffer)-1)-(p-buffer)); ++ p+= read(dev->fd,p,(sizeof(buffer)-1)-(p-buffer)); + err=wait_wacom(); + } + /* return 1 for buffer full */ +@@ -1728,13 +1607,14 @@ + */ + + /* accept boolean options absolute and relative */ +- static argv_helper optioninfo[] = { +- {"absolute", ARGV_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: !0}, +- {"relative", ARGV_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: 0}, +- {"", ARGV_END} ++ static struct option_helper optioninfo[] = { ++ {"absolute", OPT_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: !0}, ++ {"relative", OPT_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: 0}, ++ {"", OPT_END} + }; +- parse_argv(optioninfo, argc, argv); +- type->absolute = WacomAbsoluteWanted; ++ ++ parse_options(type->name, opt->text, ',', optioninfo); ++ opt->absolute = WacomAbsoluteWanted; + reset_wacom(); + + /* "Flush" input queque */ +@@ -1756,7 +1636,7 @@ + } + if(WacomModell >= (sizeof(wcmodell) / sizeof(struct WC_MODELL))) + WacomModell=-1; +- gpm_report(GPM_PR_INFO,GPM_MESS_WACOM_MOD, type->absolute? 'A':'R', ++ gpm_report(GPM_PR_INFO,GPM_MESS_WACOM_MOD, opt->absolute? 'A':'R', + (WacomModell==(-1))? "Unknown" : wcmodell[WacomModell].name, + buffer+2); + +@@ -1767,24 +1647,23 @@ + wmaxx = (wmaxx-wcmodell[WacomModell].border); + wmaxy = (wmaxy-wcmodell[WacomModell].border); + } +- write(fd,UD_SENDCOORDS,4); ++ write(dev->fd,UD_SENDCOORDS,4); + +- return type; ++ return 0; + } + +-static Gpm_Type *I_pnp(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_pnp(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + struct termios tty; + + /* accept "-o dtr", "-o rts" and "-o both" */ +- if (option_modem_lines(fd, argc, argv)) return NULL; ++ if (option_modem_lines(dev->fd, type->name, opt->text)) return -1; + + /* + * Just put the device to 1200 baud. Thanks to Francois Chastrette + * for his great help and debugging with his own pnp device. + */ +- tcgetattr(fd, &tty); ++ tcgetattr(dev->fd, &tty); + + tty.c_iflag = IGNBRK | IGNPAR; + tty.c_oflag = 0; +@@ -1792,15 +1671,15 @@ + tty.c_line = 0; + tty.c_cc[VTIME] = 0; + tty.c_cc[VMIN] = 1; +- tty.c_cflag = flags | B1200; +- tcsetattr(fd, TCSAFLUSH, &tty); /* set parameters */ ++ tty.c_cflag = type->flags | B1200; ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); /* set parameters */ + + /* + * Don't read the silly initialization string. I don't want to see + * the vendor name: it is only propaganda, with no information. + */ + +- return type; ++ return 0; + } + + /* +@@ -1848,8 +1727,7 @@ + + /* intellimouse, ps2 version: Ben Pfaff and Colin Plumb */ + /* Autodetect: Steve Bennett */ +-static Gpm_Type *I_imps2(int fd, unsigned short flags, struct Gpm_Type *type, +- int argc, char **argv) ++static int I_imps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + int id; + static unsigned char basic_init[] = { GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100 }; +@@ -1857,36 +1735,36 @@ + static unsigned char ps2_init[] = { GPM_AUX_SET_SCALE11, GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100, GPM_AUX_SET_RES, 3, }; + + /* Do a basic init in case the mouse is confused */ +- write_to_mouse(fd, basic_init, sizeof (basic_init)); ++ write_to_mouse(dev->fd, basic_init, sizeof (basic_init)); + + /* Now try again and make sure we have a PS/2 mouse */ +- if (write_to_mouse(fd, basic_init, sizeof (basic_init)) != 0) { ++ if (write_to_mouse(dev->fd, basic_init, sizeof (basic_init)) != 0) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_INIT); +- return(NULL); ++ return -1; + } + + /* Try to switch to 3 button mode */ +- if (write_to_mouse(fd, imps2_init, sizeof (imps2_init)) != 0) { ++ if (write_to_mouse(dev->fd, imps2_init, sizeof (imps2_init)) != 0) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_FAILED); +- return(NULL); ++ return -1; + } + + /* Read the mouse id */ +- id = read_mouse_id(fd); ++ id = read_mouse_id(dev->fd); + if (id == GPM_AUX_ID_ERROR) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_MID_FAIL); + id = GPM_AUX_ID_PS2; + } + + /* And do the real initialisation */ +- if (write_to_mouse(fd, ps2_init, sizeof (ps2_init)) != 0) { ++ if (write_to_mouse(dev->fd, ps2_init, sizeof (ps2_init)) != 0) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_SETUP_FAIL); + } + + if (id == GPM_AUX_ID_IMPS2) { + /* Really an intellipoint, so initialise 3 button mode (4 byte packets) */ + gpm_report(GPM_PR_INFO,GPM_MESS_IMPS2_AUTO); +- return type; ++ return 0; + } + if (id != GPM_AUX_ID_PS2) { + gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_BAD_ID, id); +@@ -1894,69 +1772,64 @@ + else gpm_report(GPM_PR_INFO,GPM_MESS_IMPS2_PS2); + + for (type=mice; type->fun; type++) +- if (strcmp(type->name, "ps2") == 0) return(type); ++ if (strcmp(type->name, "ps2") == 0) return 0; + + /* ps2 was not found!!! */ +- return(NULL); ++ return -1; + } + + /* + * This works with Dexxa Optical Mouse, but because in X same initstring + * is named ExplorerPS/2 so I named it in the same way. + */ +-static Gpm_Type *I_exps2(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_exps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + static unsigned char s1[] = { 243, 200, 243, 200, 243, 80, }; + +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + +- write (fd, s1, sizeof (s1)); ++ write (dev->fd, s1, sizeof (s1)); + usleep (30000); +- tcflush (fd, TCIFLUSH); +- return type; ++ tcflush (dev->fd, TCIFLUSH); ++ return 0; + } + +-static Gpm_Type *I_twid(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_twid(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + +- if (twiddler_key_init() != 0) return NULL; ++ if (twiddler_key_init() != 0) return -1; + /* + * the twiddler is a serial mouse: just drop dtr + * and run at 2400 (unless specified differently) + */ +- if(opt_baud==DEF_BAUD) opt_baud = 2400; +- argv[1] = "dtr"; /* argv[1] is guaranteed to be NULL (this is dirty) */ +- return I_serial(fd, flags, type, argc, argv); ++ if (opt->baud == DEF_BAUD) opt->baud = 2400; ++ opt->text = "dtr"; ++ return I_serial(dev, opt, type); + } + +-static Gpm_Type *I_calus(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_calus(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { +- if (check_no_argv(argc, argv)) return NULL; ++ if (!check_no_options(type->name, opt->text, ',')) return -1; + +- if (opt_baud == 1200) opt_baud=9600; /* default to 9600 */ +- return I_serial(fd, flags, type, argc, argv); ++ if (opt->baud == 1200) opt->baud = 9600; /* default to 9600 */ ++ return I_serial(dev, opt, type); + } + + /* synaptics touchpad, ps2 version: Henry Davies */ +-static Gpm_Type *I_synps2(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_synps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { +- syn_ps2_init (fd); +- return type; ++ syn_ps2_init (dev->fd); ++ return 0; + } + + +-static Gpm_Type *I_summa(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_summa(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + void resetsumma() + { +- write(fd,0,1); /* Reset */ ++ write(dev->fd,0,1); /* Reset */ + usleep(400000); /* wait */ + } + int waitsumma() +@@ -1964,7 +1837,7 @@ + struct timeval timeout; + fd_set readfds; + int err; +- FD_ZERO(&readfds); FD_SET(fd, &readfds); ++ FD_ZERO(&readfds); FD_SET(dev->fd, &readfds); + timeout.tv_sec = 0; timeout.tv_usec = 200000; + err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout); + return(err); +@@ -1987,34 +1860,34 @@ + char GEN_MODELL=0x7f; + + /* Set speed to 9600bps */ +- setspeed (fd, 1200, 9600, 1, B9600|CS8|CREAD|CLOCAL|HUPCL|PARENB|PARODD); ++ setspeed (dev->fd, 1200, 9600, 1, B9600|CS8|CREAD|CLOCAL|HUPCL|PARENB|PARODD); + resetsumma(); + +- write(fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE)); ++ write(dev->fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE)); + + if (strstr(type->name,"acecad")!=NULL) summaid=11; + + if (summaid<0) { /* Summagraphics test */ + /* read the Summa Firm-ID */ +- write(fd, SS_FIRMID, strlen(SS_FIRMID)); ++ write(dev->fd, SS_FIRMID, strlen(SS_FIRMID)); + err=waitsumma(); + if (!((err == -1) || (!err))) { + summaid=10; /* Original Summagraphics */ +- read(fd, buffer, 255); /* Read Firm-ID */ ++ read(dev->fd, buffer, 255); /* Read Firm-ID */ + } + } + + if (summaid<0) { /* Genius-test */ + resetsumma(); +- write(fd,GEN_MMSERIES,1); +- write(fd,&GEN_MODELL,1); /* Read modell */ ++ write(dev->fd,GEN_MMSERIES,1); ++ write(dev->fd,&GEN_MODELL,1); /* Read modell */ + err=waitsumma(); + if (!((err == -1) || (!err))) { /* read Genius-ID */ + err=waitsumma(); + if (!((err == -1) || (!err))) { + err=waitsumma(); + if (!((err == -1) || (!err))) { +- read(fd,&config,1); ++ read(dev->fd,&config,1); + summaid=(config[0] & 224) >> 5; /* genius tablet-id (0-7)*/ + } + } +@@ -2024,30 +1897,29 @@ + /* unknown tablet ?*/ + if ((summaid<0) || (summaid==11)) { + resetsumma(); +- write(fd, SS_BINARY_FMT SS_PROMPT_MODE, 3); ++ write(dev->fd, SS_BINARY_FMT SS_PROMPT_MODE, 3); + } + + /* read tablet size */ + err=waitsumma(); +- if (!((err == -1) || (!err))) read(fd,buffer,sizeof(buffer)); +- write(fd,SS_READCONFIG,1); +- read(fd,&config,5); ++ if (!((err == -1) || (!err))) read(dev->fd,buffer,sizeof(buffer)); ++ write(dev->fd,SS_READCONFIG,1); ++ read(dev->fd,&config,5); + summamaxx=(config[2]<<7 | config[1])-(SUMMA_BORDER*2); + summamaxy=(config[4]<<7 | config[3])-(SUMMA_BORDER*2); + +- write(fd,SS_ABSOLUTE SS_STREAM_MODE SS_UPPER_ORIGIN,3); +- if (summaid<0) write(fd,SS_500LPI SS_TABID0 SS_BINARY_FMT,4); ++ write(dev->fd,SS_ABSOLUTE SS_STREAM_MODE SS_UPPER_ORIGIN,3); ++ if (summaid<0) write(dev->fd,SS_500LPI SS_TABID0 SS_BINARY_FMT,4); + +- return type; ++ return 0; + } + +-static Gpm_Type *I_mtouch(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_mtouch(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + struct termios tty; + + /* Set speed to 9600bps (copied from I_summa, above :) */ +- tcgetattr(fd, &tty); ++ tcgetattr(dev->fd, &tty); + tty.c_iflag = IGNBRK | IGNPAR; + tty.c_oflag = 0; + tty.c_lflag = 0; +@@ -2055,18 +1927,17 @@ + tty.c_cc[VTIME] = 0; + tty.c_cc[VMIN] = 1; + tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL; +- tcsetattr(fd, TCSAFLUSH, &tty); ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); + + + /* Turn it to "format tablet" and "mode stream" */ +- write(fd,"\001MS\r\n\001FT\r\n",10); ++ write(dev->fd,"\001MS\r\n\001FT\r\n",10); + +- return type; ++ return 0; + } + + /* simple initialization for the gunze touchscreen */ +-static Gpm_Type *I_gunze(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_gunze(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + struct termios tty; + FILE *f; +@@ -2075,29 +1946,29 @@ + + #define GUNZE_CALIBRATION_FILE SYSCONFDIR "/gpm-calibration" + /* accept a few options */ +- static argv_helper optioninfo[] = { +- {"smooth", ARGV_INT, u: {iptr: &gunze_avg}}, +- {"debounce", ARGV_INT, u: {iptr: &gunze_debounce}}, ++ static struct option_helper optioninfo[] = { ++ {"smooth", OPT_INT, u: {iptr: &gunze_avg}}, ++ {"debounce", OPT_INT, u: {iptr: &gunze_debounce}}, + /* FIXME: add corner tapping */ +- {"", ARGV_END} ++ {"", OPT_END} + }; +- parse_argv(optioninfo, argc, argv); ++ parse_options(type->name, opt->text, ',', optioninfo); + + /* check that the baud rate is valid */ +- if (opt_baud == DEF_BAUD) opt_baud = 19200; /* force 19200 as default */ +- if (opt_baud != 9600 && opt_baud != 19200) { +- gpm_report(GPM_PR_ERR,GPM_MESS_GUNZE_WRONG_BAUD,option.progname, argv[0]); +- opt_baud = 19200; ++ if (opt->baud == DEF_BAUD) opt->baud = 19200; /* force 19200 as default */ ++ if (opt->baud != 9600 && opt->baud != 19200) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_GUNZE_WRONG_BAUD, option.progname, type->name); ++ opt->baud = 19200; + } +- tcgetattr(fd, &tty); ++ tcgetattr(dev->fd, &tty); + tty.c_iflag = IGNBRK | IGNPAR; + tty.c_oflag = 0; + tty.c_lflag = 0; + tty.c_line = 0; + tty.c_cc[VTIME] = 0; + tty.c_cc[VMIN] = 1; +- tty.c_cflag = (opt_baud == 9600 ? B9600 : B19200) |CS8|CREAD|CLOCAL|HUPCL; +- tcsetattr(fd, TCSAFLUSH, &tty); ++ tty.c_cflag = (opt->baud == 9600 ? B9600 : B19200) |CS8|CREAD|CLOCAL|HUPCL; ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); + + /* FIXME: try to find some information about the device */ + +@@ -2120,19 +1991,18 @@ + gunze_calib[0] = gunze_calib[1] = 128; /* 1/8 */ + gunze_calib[2] = gunze_calib[3] = 896; /* 7/8 */ + } +- return type; ++ return 0; + } + + /* Genius Wizardpad tablet -- Matt Kimball (mkimball@xmission.com) */ +-static Gpm_Type *I_wp(int fd, unsigned short flags, +- struct Gpm_Type *type, int argc, char **argv) ++static int I_wp(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type) + { + struct termios tty; + char tablet_info[256]; + int count, pos, size; + + /* Set speed to 9600bps (copied from I_summa, above :) */ +- tcgetattr(fd, &tty); ++ tcgetattr(dev->fd, &tty); + tty.c_iflag = IGNBRK | IGNPAR; + tty.c_oflag = 0; + tty.c_lflag = 0; +@@ -2140,22 +2010,22 @@ + tty.c_cc[VTIME] = 0; + tty.c_cc[VMIN] = 1; + tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL; +- tcsetattr(fd, TCSAFLUSH, &tty); ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); + + /* Reset the tablet (':') and put it in remote mode ('S') so that + it isn't sending anything to us. */ +- write(fd, ":S", 2); +- tcsetattr(fd, TCSAFLUSH, &tty); ++ write(dev->fd, ":S", 2); ++ tcsetattr(dev->fd, TCSAFLUSH, &tty); + + /* Query the model of the tablet */ +- write(fd, "T", 1); ++ write(dev->fd, "T", 1); + sleep(1); +- count = read(fd, tablet_info, 255); ++ count = read(dev->fd, tablet_info, 255); + + /* The tablet information should start with "KW" followed by the rest of + the model number. If it isn't there, it probably isn't a WizardPad. */ +- if(count < 2) return NULL; +- if(tablet_info[0] != 'K' || tablet_info[1] != 'W') return NULL; ++ if(count < 2) return -1; ++ if(tablet_info[0] != 'K' || tablet_info[1] != 'W') return -1; + + /* Now, we want the width and height of the tablet. They should be + of the form "X###" and "Y###" where ### is the number of units of +@@ -2177,9 +2047,9 @@ + } + + /* Set the tablet to stream mode with 180 updates per sec. ('O') */ +- write(fd, "O", 1); ++ write(dev->fd, "O", 1); + +- return type; ++ return 0; + } + + /*========================================================================*/ +@@ -2241,7 +2111,7 @@ + {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 0, 0}, + #ifdef HAVE_LINUX_INPUT_H + {"evdev", "Linux Event Device", +- "", M_evdev, I_empty, STD_FLG, ++ "", M_evdev, I_evdev, STD_FLG, + {0x00, 0x00, 0x00, 0x00} , 16, 16, 0, 0, NULL}, + #endif /* HAVE_LINUX_INPUT_H */ + {"exps2", "IntelliMouse Explorer (ps2) - 3 buttons, wheel unused", +diff -urN gpm-1.20.1/src/optparser.c gpm/src/optparser.c +--- gpm-1.20.1/src/optparser.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/optparser.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,155 @@ ++/* ++ * optparser.c - GPM mouse options parser ++ * ++ * Copyright (C) 1993 Andrew Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-2000 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998,1999 Ian Zimmerman <itz@rahul.net> ++ * Copyright (C) 2001,2002 Nico Schottelius <nicos@pcsystems.de> ++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++#include <ctype.h> ++ ++#include "headers/gpmInt.h" ++#include "headers/message.h" ++#include "headers/optparser.h" ++ ++int parse_options(const char *proto, const char *opts, char sep, struct option_helper *info) ++{ ++ int len, n, n_opts = 0, errors = 0; ++ long l; ++ struct option_helper *p; ++ char *s, *t, *str; ++ int base; /* for strtol */ ++ ++ for (p = info; p->type != OPT_END; p++) ++ p->present = 0; ++ ++ if (!opts) ++ return 0; ++ ++ if (!(str = strdup(opts))) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_ALLOC_FAILED); ++ ++ /* split input string */ ++ for (s = str, n = 1; sep && (s = strchr(s, sep)); s++, n++) ++ *s = '\0'; ++ ++ for (s = str; n; s += strlen(s) + 1, n--) { ++ if (strlen(s) == 0) ++ continue; ++ ++ for (p = info; p->type != OPT_END; p++) { ++ len = strlen(p->name); ++ if (!strncmp(p->name, s, len) && !isalnum(s[len])) ++ break; ++ } ++ if (p->type == OPT_END) { /* not found */ ++ gpm_report(GPM_PR_ERR, "%s: Uknown option \"%s\" for protocol \"%s\"\n", ++ option.progname, s, proto); ++ errors++; ++ continue; ++ } ++ if (p->present) { ++ gpm_report(GPM_PR_ERR, "%s: option \"%s\" has already been seen, ignored (\"%s\")\n", ++ option.progname, s, proto); ++ continue; ++ } ++ p->present = 1; ++ n_opts++; ++ /* Found. Look for trailing stuff, if any */ ++ s += len; ++ while (*s && isspace(*s)) s++; /* skip spaces */ ++ if (*s == '=') s++; /* skip equal */ ++ while (*s && isspace(*s)) s++; /* skip other spaces */ ++ ++ /* Now parse what s is */ ++ base = 0; ++ switch(p->type) { ++ case OPT_BOOL: ++ if (*s) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_OPTION_NO_ARG, option.progname, p->name, s); ++ errors++; ++ } ++ *(p->u.iptr) = p->value; ++ break; ++ ++ case OPT_DEC: ++ base = 10; /* and fall through */ ++ ++ case OPT_INT: ++ if (*s == '\0') { ++ gpm_report(GPM_PR_ERR, GPM_MESS_MISSING_ARG, option.progname, p->name); ++ } else { ++ l = strtol(s, &t, base); ++ if (*t) { ++ gpm_report(GPM_PR_ERR, GPM_MESS_INVALID_ARG, option.progname, s, p->name); ++ errors++; ++ break; ++ } ++ *(p->u.iptr) = (int)l; ++ } ++ break; ++ ++ case OPT_STRING: ++ if (*s == '\0') ++ gpm_report(GPM_PR_ERR, GPM_MESS_MISSING_ARG, option.progname, p->name); ++ else ++ *(p->u.sptr) = strdup(s); ++ break; ++ ++ case OPT_END: /* let's please "-Wall" */ ++ break; ++ } ++ } /* for i in argc */ ++ ++ free(str); ++ ++ if (errors) { ++ gpm_report(GPM_PR_ERR,GPM_MESS_CONT_WITH_ERR, option.progname); ++ return -errors; ++ } ++ return n_opts; ++} ++ ++int check_no_options(const char *proto, const char *opts, char sep) ++{ ++ static struct option_helper info[] = { ++ { "", OPT_END } ++ }; ++ ++ return parse_options(proto, opts, sep, info) == 0; ++} ++ ++int is_option_present(struct option_helper *info, const char *name) ++{ ++ struct option_helper *p; ++ int len; ++ ++ for (p = info; p->type != OPT_END; p++) { ++ len = strlen(p->name); ++ if (!strncmp(p->name, name, len) && !isalnum(name[len])) ++ return p->present; ++ } ++ ++ gpm_report(GPM_PR_ERR, "%s: Uknown option \"%s\"\n", option.progname, name); ++ return 0; ++} ++ +diff -urN gpm-1.20.1/src/prog/mouse-test.c gpm/src/prog/mouse-test.c +--- gpm-1.20.1/src/prog/mouse-test.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/prog/mouse-test.c 2003-10-02 01:22:42.000000000 -0500 +@@ -50,22 +50,9 @@ + #define max(a,b) ((a)>(b)?(a):(b)) + #endif + +- +-/* this material is needed to pass options to mice.c */ +-struct mouse_features mymouse = { +- DEF_TYPE, DEF_DEV, DEF_SEQUENCE, +- DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, DEF_SCALE /*scaley*/, +- DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP, +- (char *)NULL /* extra */, +- (Gpm_Type *)NULL, +- -1 /* fd */ +-}; +- + /* and this is a workaroud */ + struct winsize win; + +-struct mouse_features *which_mouse=&mymouse; +- + char *progname; + char *consolename; + int devcount=0; +@@ -78,9 +65,9 @@ + + struct device { + char *name; +- int fd; ++ struct micedev mdev; + struct device *next; +-}; ++} *devlist; + + static int message(void) + { +@@ -148,47 +135,48 @@ + /*----------------------------------------------------------------------------- + Place the description here. + -----------------------------------------------------------------------------*/ +-struct device **gpm_makedev(struct device **current, char *name) ++void gpm_makedev(char *name) + { +- int fd; int modes; ++ struct device *dev; ++ int fd; ++ int modes; ++ + if ((fd=open(name,O_RDWR|O_NONBLOCK))==-1) { + perror(name); +- return current; +- } +- modes = fcntl(fd, F_GETFL); +- if (0 > fcntl(fd, F_SETFL, modes & ~O_NONBLOCK)) { +- close(fd); +- perror(name); +- return current; ++ } else { ++ modes = fcntl(fd, F_GETFL); ++ if (0 > fcntl(fd, F_SETFL, modes & ~O_NONBLOCK)) { ++ close(fd); ++ perror(name); ++ } else { ++ dev = malloc(sizeof(struct device)); ++ if (!dev) gpm_report(GPM_PR_OOPS,"malloc()"); ++ dev->name=strdup(name); ++ if (!dev->name) gpm_report(GPM_PR_OOPS,"malloc()"); ++ dev->mdev.fd=fd; ++ dev->mdev.private = NULL; ++ dev->next=devlist; ++ devlist = dev; ++ devcount++; ++ } + } +- +- *current=malloc(sizeof(struct device)); +- if (!*current) gpm_report(GPM_PR_OOPS,"malloc()"); +- (*current)->name=strdup(name); +- if (!(*current)->name) gpm_report(GPM_PR_OOPS,"malloc()"); +- (*current)->fd=fd; +- (*current)->next=NULL; +- devcount++; +- return &((*current)->next); + } + +-Gpm_Type *(*I_serial)(int fd, unsigned short flags, struct Gpm_Type *type, +- int argc, char **argv); ++int (*I_serial)(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type); + + + /*----------------------------------------------------------------------------- + Place the description here. + -----------------------------------------------------------------------------*/ +-int mousereopen(int oldfd, char *name, Gpm_Type *type) ++int mousereopen(struct micedev *dev, char *name, Gpm_Type *type, struct miceopt *opts) + { +- int fd; + if (!type) type=mice+1; /* ms */ +- close(oldfd); ++ close(dev->fd); + usleep(100000); +- fd=open(name,O_RDWR); +- if (fd < 0) gpm_report(GPM_PR_OOPS,name); +- (*I_serial)(fd,type->flags,type,1,&type->name); /* ms initialization */ +- return fd; ++ dev->fd=open(name,O_RDWR); ++ if (dev->fd < 0) gpm_report(GPM_PR_OOPS,name); ++ I_serial(dev, opts, type); /* ms initialization */ ++ return dev->fd; + } + + int noneofthem(void) +@@ -281,10 +269,9 @@ + { + struct item *list=NULL; + struct item **nextitem; +- struct device *devlist=NULL; +- struct device **nextdev; ++ struct device *nextdev; + Gpm_Type *cursor; +- int i, mousefd; ++ int i; + char *mousename; + #define BUFLEN 512 + char buf[BUFLEN]; +@@ -294,6 +281,9 @@ + int trial, readamount,packetsize,got; + int baudtab[4]={1200,9600,4800,2400}; + #define BAUD(i) (baudtab[(i)%4]) ++ struct miceopt opt = {0}; ++ struct micedev mdev = {0}; ++ + consolename = Gpm_get_console(); + + if (!isatty(fileno(stdin))) { +@@ -306,8 +296,8 @@ + + /* init the list of possible devices */ + +- for (nextdev=&devlist, i=1; i<argc; i++) +- nextdev=gpm_makedev(nextdev,argv[i]); ++ for (i=1; i<argc; i++) ++ gpm_makedev(argv[i]); + + if (argc==1) { /* no cmdline, get all devices */ + FILE *f; +@@ -320,7 +310,7 @@ + if (!f) gpm_report(GPM_PR_OOPS,"popen()"); + while (fgets(s,64,f)) { + s[strlen(s)-1]='\0'; /* trim '\n' */ +- nextdev=gpm_makedev(nextdev,s); ++ gpm_makedev(s); + } + pclose(f); + } +@@ -345,19 +335,18 @@ + + /* BUG */ /* Logitech initialization is not performed */ + +- opt_baud=BAUD(trial); +- printf("\r\nTrying with %i baud\r\n",opt_baud); ++ opt.baud=BAUD(trial); ++ printf("\r\nTrying with %i baud\r\n",opt.baud); + trial++; + + FD_ZERO(&devSet); FD_ZERO(&gotSet); + FD_SET(fileno(stdin),&devSet); maxfd=fileno(stdin); + printf("\r\n The possible device nodes are:\r\n"); +- for (nextdev=&devlist; *nextdev; nextdev=&((*nextdev)->next)) { +- printf("\t%s\r\n", (*nextdev)->name); +- FD_SET((*nextdev)->fd,&devSet); +- maxfd=max((*nextdev)->fd,maxfd); +- (*I_serial)((*nextdev)->fd,(mice+1)->flags,mice+1, +- 1, &(mice+1)->name); /* try ms mode */ ++ for (nextdev=devlist; nextdev; nextdev=nextdev->next) { ++ printf("\t%s\r\n", nextdev->name); ++ FD_SET(nextdev->mdev.fd, &devSet); ++ maxfd=max(nextdev->mdev.fd,maxfd); ++ I_serial(&nextdev->mdev, &opt, mice+1); /* try ms mode */ + } + + savSet=devSet; +@@ -379,43 +368,43 @@ + getchar(); + break; + } +- for (nextdev=&devlist; *nextdev; nextdev=&((*nextdev)->next)) +- if (FD_ISSET((*nextdev)->fd,&devSet)) { ++ for (nextdev=devlist; nextdev; nextdev=nextdev->next) ++ if (FD_ISSET(nextdev->mdev.fd,&devSet)) { + gotthem++; +- FD_CLR((*nextdev)->fd,&savSet); +- FD_SET((*nextdev)->fd,&gotSet); ++ FD_CLR(nextdev->mdev.fd,&savSet); ++ FD_SET(nextdev->mdev.fd,&gotSet); + } + } +- if (gotthem) for (nextdev=&devlist; *nextdev; /* nothing */ ) { +- cur=*nextdev; +- if (!FD_ISSET(cur->fd,&gotSet)) { ++ if (gotthem) for (nextdev=devlist; nextdev; /* nothing */ ) { ++ cur=nextdev; ++ if (!FD_ISSET(cur->mdev.fd,&gotSet)) { + printf("removing \"%s\" from the list\r\n",cur->name); +- *nextdev=cur->next; +- close(cur->fd); ++ nextdev=cur->next; ++ close(cur->mdev.fd); + free(cur->name); + free(cur); + devcount--; + } else { +- read(cur->fd,buf,80); /* flush */ +- nextdev=&(cur->next); /* follow list */ ++ read(cur->mdev.fd,buf,80); /* flush */ ++ nextdev=cur->next; /* follow list */ + } + } + + } /* devcount>1 */ + +- mousefd=devlist->fd; ++ mdev=devlist->mdev; + mousename=devlist->name; + free(devlist); + printf("\r\nOk, so your mouse device is \"%s\"\r\n",mousename); + + /* now close and reopen it, complete with initialization */ +- opt_baud=BAUD(0); +- mousefd=mousereopen(mousefd,mousename,NULL); +- ++ opt.baud=BAUD(0); ++ mousereopen(&mdev, mousename, NULL,&opt); ++ + FD_ZERO(&checkSet); +- FD_SET(mousefd,&checkSet); ++ FD_SET(mdev.fd,&checkSet); + FD_SET(fileno(stdin),&checkSet); +- maxfd=max(mousefd,fileno(stdin)); ++ maxfd=max(mdev.fd, fileno(stdin)); + + /*====================================== Identify mouse type */ + +@@ -440,7 +429,7 @@ + printf("\r\nNow please press and release your left mouse button,\r\n" + "one time only\r\n\r\n"); + +- i=read(mousefd,buf,1); ++ i=read(mdev.fd, buf, 1); + if (i==-1 && errno==EINVAL) + readamount=3; + else +@@ -466,7 +455,7 @@ + else + nextitem=&(cur->next); + } +- read(mousefd,buf,BUFLEN); /* flush */ ++ read(mdev.fd, buf, BUFLEN); /* flush */ + + /*====================================== Packet size - second step */ + +@@ -484,12 +473,12 @@ + while (packetsize==1) { + int success3=0,success5=0; + +- opt_baud=BAUD(trial); +- printf("\tBaud rate is %i\r\n",opt_baud); +- mousefd=mousereopen(mousefd,mousename,NULL); ++ opt.baud=BAUD(trial); ++ printf("\tBaud rate is %i\r\n",opt.baud); ++ mousereopen(&mdev, mousename,NULL, &opt); + + printf("\r\n==> Detecting the packet size\r\n"); +- got=eventlist(mousefd,buf,BUFLEN,GPM_B_LEFT,readamount); ++ got=eventlist(mdev.fd,buf,BUFLEN,GPM_B_LEFT,readamount); + + /* try three -- look at repeating arrays of 6 bytes */ + for (i=0;i<got-12;i++) +@@ -512,8 +501,7 @@ + trial++; + } + +-/*====================================== Use that info to discard protocols */ +- ++/*====================================== Use that info to discard protocols */ + for (nextitem=&list; *nextitem; /* nothing */) { + struct item *cur=*nextitem; + int packetheads=0; +@@ -530,7 +518,7 @@ + if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1]) + && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { + packetheads++; +- if ((*(cur->this->fun))(&event,buf+i)==-1) { ++ if ((*(cur->this->fun))(&mdev, &opt, buf+i, &event)==-1) { + packetheads--; + continue; + } +@@ -594,7 +582,7 @@ + * First trial: remove the "-t ms" extension if spurious buttons come in + */ + +- got=eventlist(mousefd,buf,BUFLEN,0,readamount); ++ got=eventlist(mdev.fd,buf,BUFLEN,0,readamount); + pending=0; + for (nextitem=&list; *nextitem; /* nothing */) { + struct item *cur=*nextitem; +@@ -604,7 +592,7 @@ + for (i=0;i<got;i++) { + if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1]) + && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { +- if ((*(cur->this->fun))(&event,buf+i)==-1) continue; ++ if ((*(cur->this->fun))(&mdev, &opt, buf+i, &event)==-1) continue; + i+=packetsize-1; + if (event.buttons) pending--; + } +@@ -624,8 +612,8 @@ + */ + + printf("\r\n==> Looking for '-t mman'and enhanced ms\r\n"); +- mousefd=mousereopen(mousefd,mousename, mice /* mman */); +- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); ++ mousereopen(&mdev, mousename, mice /* mman */, &opt); ++ got=eventlist(mdev.fd, buf, BUFLEN, GPM_B_MIDDLE, readamount); + + /* if it uses the 4-byte protocol, find it in a rude way */ + for (pending=0,i=0;i<got-16;i++) +@@ -646,7 +634,7 @@ + for (i=0;i<got;i++) { + if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1]) + && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) { +- if ((*(cur->this->fun))(&event,buf+i)==-1) continue; ++ if ((*(cur->this->fun))(&mdev,&opt,buf+i,&event)==-1) continue; + i+=packetsize-1; + if (event.buttons && event.buttons!=GPM_B_MIDDLE) pending--; + if (event.buttons==GPM_B_MIDDLE) pending++; +@@ -677,16 +665,16 @@ + char *Xtognames[3]={"'ClearDTR' and 'ClearRTS'","'ClearDTR'","'ClearRTS'"}; + int alllines,lines, index; + +- ioctl(mousefd, TIOCMGET, &alllines); ++ ioctl(mdev.fd, TIOCMGET, &alllines); + + printf("\r\nSome mice change protocol to three-buttons-aware if some\r\n" + "\r\ncontrol lines are toggled after opening\r\n"); + for (index=0;index<3;index++) { +- mousereopen(mousefd,mousename,NULL); ++ mousereopen(&mdev, mousename, NULL, &opt); + lines = alllines & ~toggle[index]; +- ioctl(mousefd, TIOCMSET, &lines); ++ ioctl(mdev.fd, TIOCMSET, &lines); + printf("\r\n==> Trying with '-o %s'\r\n",tognames[index]); +- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); ++ got=eventlist(mdev.fd, buf, BUFLEN, GPM_B_MIDDLE, readamount); + + /* if it uses the 5-byte protocol, find it in a rude way */ + for (pending=0,i=0;i<got-20;i++) +@@ -717,7 +705,7 @@ + + getchar(); + +- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount); ++ got=eventlist(mdev.fd,buf,BUFLEN,GPM_B_MIDDLE,readamount); + + /* if it uses the 5-byte protocol, find it in a rude way */ + for (pending=0,i=0;i<got-20;i++) +diff -urN gpm-1.20.1/src/report.c gpm/src/report.c +--- gpm-1.20.1/src/report.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/report.c 2003-10-02 01:22:42.000000000 -0500 +@@ -31,6 +31,7 @@ + + #include "headers/gpmInt.h" + #include "headers/message.h" ++#include "headers/console.h" + + /* + * gpm_report +@@ -70,7 +71,7 @@ + + void gpm_report(int line, char *file, int stat, char *text, ... ) + { +- FILE *console = NULL; ++ FILE *f = NULL; + va_list ap; + + va_start(ap,text); +@@ -138,11 +139,11 @@ + syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN); + vsyslog(LOG_DAEMON | LOG_WARNING, text, ap); + #endif +- if((console = fopen(GPM_SYS_CONSOLE,"a")) != NULL) { +- fprintf(console,GPM_STRING_WARN); +- vfprintf(console,text,ap); +- fprintf(console,"\n"); +- fclose(console); ++ if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) { ++ fprintf(f, GPM_STRING_WARN); ++ vfprintf(f, text, ap); ++ fprintf(f, "\n"); ++ fclose(f); + } + break; + +@@ -151,18 +152,18 @@ + syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR); + vsyslog(LOG_DAEMON | LOG_ERR, text, ap); + #endif +- if((console = fopen(GPM_SYS_CONSOLE,"a")) != NULL) { +- fprintf(console,GPM_STRING_ERR); +- vfprintf(console,text,ap); +- fprintf(console,"\n"); +- fclose(console); ++ if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) { ++ fprintf(f, GPM_STRING_ERR); ++ vfprintf(f, text, ap); ++ fprintf(f, "\n"); ++ fclose(f); + } + +- if((console = fopen(option.consolename,"a")) != NULL) { +- fprintf(console,GPM_STRING_ERR); +- vfprintf(console,text,ap); +- fprintf(console,"\n"); +- fclose(console); ++ if ((f = fopen(console.device, "a")) != NULL) { ++ fprintf(f, GPM_STRING_ERR); ++ vfprintf(f, text, ap); ++ fprintf(f, "\n"); ++ fclose(f); + } + break; + +@@ -184,24 +185,24 @@ + case GPM_RUN_DEBUG: + switch(stat) { + case GPM_STAT_INFO: +- console = stdout; +- fprintf(console,GPM_STRING_INFO); break; ++ f = stdout; ++ fprintf(f, GPM_STRING_INFO); break; + case GPM_STAT_WARN: +- console = stderr; +- fprintf(console,GPM_STRING_WARN); break; ++ f = stderr; ++ fprintf(f, GPM_STRING_WARN); break; + case GPM_STAT_ERR: +- console = stderr; +- fprintf(console,GPM_STRING_ERR); break; ++ f = stderr; ++ fprintf(f, GPM_STRING_ERR); break; + case GPM_STAT_DEBUG: +- console = stderr; +- fprintf(console,GPM_STRING_DEBUG); break; ++ f = stderr; ++ fprintf(f, GPM_STRING_DEBUG); break; + case GPM_STAT_OOPS: +- console = stderr; +- fprintf(console,GPM_STRING_OOPS); break; ++ f = stderr; ++ fprintf(f, GPM_STRING_OOPS); break; + } + +- vfprintf(console,text,ap); +- fprintf(console,"\n"); ++ vfprintf(f, text, ap); ++ fprintf(f, "\n"); + + if(stat == GPM_STAT_OOPS) exit(1); + +diff -urN gpm-1.20.1/src/selection.c gpm/src/selection.c +--- gpm-1.20.1/src/selection.c 1969-12-31 19:00:00.000000000 -0500 ++++ gpm/src/selection.c 2003-10-02 01:22:42.000000000 -0500 +@@ -0,0 +1,156 @@ ++/* ++ * console.c - GPM console and selection/paste handling ++ * ++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk> ++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it> ++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net> ++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org> ++ * Copyright (c) 2003 Dmitry Torokhov <dtor@mail.ru> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ ********/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> /* strerror(); ?!? */ ++#include <errno.h> ++#include <unistd.h> /* select(); */ ++#include <time.h> /* time() */ ++#include <sys/fcntl.h> /* O_RDONLY */ ++#include <sys/stat.h> /* mkdir() */ ++#include <asm/types.h> /* __u32 */ ++ ++#include <linux/vt.h> /* VT_GETSTATE */ ++#include <sys/kd.h> /* KDGETMODE */ ++#include <termios.h> /* winsize */ ++ ++#include "headers/gpmInt.h" ++#include "headers/message.h" ++#include "headers/console.h" ++#include "headers/selection.h" ++ ++struct sel_options sel_opts = { 0, 0, DEF_PTRDRAG }; ++static time_t last_selection_time; ++ ++/*-------------------------------------------------------------------*/ ++static void selection_copy(int x1, int y1, int x2, int y2, int mode) ++{ ++/* ++ * The approach in "selection" causes a bus error when run under SunOS 4.1 ++ * due to alignment problems... ++ */ ++ unsigned char buf[6 * sizeof(short)]; ++ unsigned short *arg = (unsigned short *)buf + 1; ++ int fd; ++ ++ buf[sizeof(short) - 1] = 2; /* set selection */ ++ ++ arg[0] = (unsigned short)x1; ++ arg[1] = (unsigned short)y1; ++ arg[2] = (unsigned short)x2; ++ arg[3] = (unsigned short)y2; ++ arg[4] = (unsigned short)mode; ++ ++ if ((fd = open_console(O_WRONLY)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN_CON); ++ ++ gpm_report(GPM_PR_DEBUG, "ctl %i, mode %i", (int)*buf, arg[4]); ++ if (ioctl(fd, TIOCLINUX, buf + sizeof(short) - 1) < 0) ++ gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX); ++ close(fd); ++ ++ if (mode < 3) { ++ sel_opts.aged = 0; ++ last_selection_time = time(0); ++ } ++} ++ ++/*-------------------------------------------------------------------*/ ++static void selection_paste(void) ++{ ++ char c = 3; ++ int fd; ++ ++ if (!sel_opts.aged && ++ sel_opts.age_limit != 0 && ++ last_selection_time + sel_opts.age_limit < time(0)) { ++ sel_opts.aged = 1; ++ } ++ ++ if (sel_opts.aged) { ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SKIP_PASTE); ++ } else { ++ fd = open_console(O_WRONLY); ++ if (ioctl(fd, TIOCLINUX, &c) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_IOCTL_TIOCLINUX); ++ close(fd); ++ } ++} ++ ++/*-------------------------------------------------------------------*/ ++void do_selection(Gpm_Event *event, int three_button_mode) ++{ ++ static int x1 = 1, y1 = 1; ++ int x2, y2; ++ ++ x2 = event->x; y2 = event->y; ++ switch(GPM_BARE_EVENTS(event->type)) { ++ case GPM_MOVE: ++ if (x2 < 1) x2++; else if (x2 > console.max_x) x2--; ++ if (y2 < 1) y2++; else if (y2 > console.max_y) y2--; ++ selection_copy(x2, y2, x2, y2, 3); /* just highlight pointer */ ++ break; ++ ++ case GPM_DRAG: ++ if (event->buttons == GPM_B_LEFT) { ++ switch(event->margin) { /* fix margins */ ++ case GPM_TOP: x2 = 1; y2++; break; ++ case GPM_BOT: x2 = console.max_x; y2--; break; ++ case GPM_RGT: x2--; break; ++ case GPM_LFT: y2 <= y1 ? x2++ : (x2 = console.max_x, y2--); break; ++ default: break; ++ } ++ selection_copy(x1, y1, x2, y2, event->clicks); ++ if (event->clicks >= sel_opts.ptrdrag && !event->margin) /* pointer */ ++ selection_copy(x2, y2, x2, y2, 3); ++ } /* if */ ++ break; ++ ++ case GPM_DOWN: ++ switch (event->buttons) { ++ case GPM_B_LEFT: ++ x1 = x2; y1 = y2; ++ selection_copy(x1, y1, x2, y2, event->clicks); /* start selection */ ++ break; ++ ++ case GPM_B_MIDDLE: ++ selection_paste(); ++ break; ++ ++ case GPM_B_RIGHT: ++ if (three_button_mode == 1) ++ selection_copy(x1, y1, x2, y2, event->clicks); ++ else ++ selection_paste(); ++ break; ++ } ++ } /* switch above */ ++} ++ ++/*-------------------------------------------------------------------*/ ++void selection_disable_paste(void) ++{ ++ sel_opts.aged = 1; ++} +diff -urN gpm-1.20.1/src/server_tools.c gpm/src/server_tools.c +--- gpm-1.20.1/src/server_tools.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/server_tools.c 2003-10-02 01:22:42.000000000 -0500 +@@ -21,151 +21,80 @@ + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + ********/ + ++#include <string.h> ++#include <stdlib.h> /* malloc() */ ++#include <sys/fcntl.h> ++ + #include "headers/gpmInt.h" + #include "headers/message.h" + +-#include <stdlib.h> /* malloc() */ ++struct micetab *micelist; + +-/* DESCR: add this to the list of mice. initialization follows later */ +-/* RETURN: - */ ++/* DESCR: allocate a new mouse and to the list of mice. initialization follows later */ ++/* RETURN: new mouse structure */ + /* COMMENT: does error handling and exiting itself */ +-void add_mouse(int type, char *value) ++struct micetab *add_mouse(void) + { +- struct micetab *tmp = option.micelist; ++ struct micetab *mouse; + +- /* PREAMBLE for all work: */ +- /* -m /dev/misc/psaux -t ps2 [ -o options ] */ ++ gpm_report(GPM_PR_DEBUG, "adding mouse device"); ++ if (!(mouse = malloc(sizeof(struct micetab)))) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_MEM); ++ ++ memset(mouse, 0, sizeof(struct micetab)); ++ ++ mouse->dev.timeout = -1; ++ ++ mouse->options.sequence = NULL; ++ mouse->options.sample = DEF_SAMPLE; ++ mouse->options.delta = DEF_DELTA; ++ mouse->options.accel = DEF_ACCEL; ++ mouse->options.scalex = DEF_SCALE; ++ mouse->options.scaley = DEF_SCALE; ++ mouse->options.time = DEF_TIME; ++ mouse->options.cluster = DEF_CLUSTER; ++ mouse->options.three_button = DEF_THREE; ++ mouse->options.glidepoint_tap = DEF_GLIDEPOINT_TAP; ++ mouse->options.text = NULL; + +- switch(type) { ++ mouse->next = micelist; ++ micelist = mouse; + +- /*---------------------------------------------------------------------*/ +- /********************** -m mousedevice *********************************/ +- /*---------------------------------------------------------------------*/ +- +- case GPM_ADD_DEVICE: +- +- /* first invocation */ +- if(option.micelist == NULL) { +- gpm_report(GPM_PR_DEBUG,"adding mouse device: %s",value); +- option.micelist = (struct micetab *) malloc(sizeof(struct micetab)); +- if(!option.micelist) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- option.micelist->next = NULL; +- option.micelist->device = value; +- option.micelist->protocol = NULL; +- option.micelist->options = NULL; +- return; +- } +- +- /* find actual mouse */ +- while(tmp->device != NULL && tmp->protocol != NULL && tmp->next !=NULL) +- tmp = tmp->next; +- +- gpm_report(GPM_PR_DEBUG,"finished searching"); +- +- /* found end of micelist, add new mouse */ +- if(tmp->next == NULL && tmp->protocol != NULL) { +- gpm_report(GPM_PR_DEBUG,"next mouse making"); +- tmp->next = (struct micetab *) malloc(sizeof(struct micetab)); +- if(!tmp) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM); +- tmp->next = NULL; +- tmp->device = value; +- tmp->protocol = NULL; +- tmp->options = NULL; +- return; +- } else gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- +- //} else if(tmp->device != NULL && tmp->protocol == NULL) +- // gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); /* -m -m */ +- +- +- break; +- +- /*---------------------------------------------------------------------*/ +- /************************* -t type / protocol **************************/ +- /*---------------------------------------------------------------------*/ +- +- case GPM_ADD_TYPE: +- if(option.micelist == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- +- /* skip to next mouse, where either device or protocol is missing */ +- while(tmp->device != NULL && tmp->protocol != NULL && tmp->next !=NULL) +- tmp = tmp->next; +- +- /* check whether device (-m) is there, if so, write protocol */ +- if(tmp->device == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- else { +- gpm_report(GPM_PR_DEBUG,"adding mouse type: %s",value); +- tmp->protocol = value; +- option.no_mice++; /* finally we got our mouse */ +- } +- +- break; +- +- /*---------------------------------------------------------------------*/ +- /*************************** -o options ********************************/ +- /*---------------------------------------------------------------------*/ +- +- case GPM_ADD_OPTIONS: +- if(option.micelist == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- +- /* look for the last mouse */ +- tmp = option.micelist; +- while(tmp->next != NULL) tmp = tmp->next; +- +- /* if -m or -t are missing exit */ +- if(tmp->device == NULL || tmp->protocol == NULL) +- gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); +- else { +- gpm_report(GPM_PR_DEBUG,"adding mouse options: %s",value); +- tmp->options = value; +- } +- break; +- } ++ return mouse; + } + +-/* DESCR: mice initialization. currently print mice. */ +-/* RETURN: 0 - failed to init one or more devices +- 1 - init was fine */ ++/* DESCR: mice initialization. calls appropriate init functions. */ + /* COMMENT: does error handling and exiting itself */ +-int init_mice(struct micetab *micelist) ++void init_mice(void) + { +- struct micetab *tmp = micelist; ++ struct micetab *mouse; ++ ++ for (mouse = micelist; mouse; mouse = mouse->next) { ++ if (!strcmp(mouse->device, "-")) ++ mouse->dev.fd = 0; /* use stdin */ ++ else if ((mouse->dev.fd = open(mouse->device, O_RDWR | O_NDELAY)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, mouse->device); + +- while(tmp != NULL) { /* there are still mice to init */ +- gpm_report(GPM_PR_DEBUG,"initialize %s with proto %s",tmp->device,tmp->protocol); +- if(tmp->options != NULL) { +- gpm_report(GPM_PR_DEBUG,"and options %s",tmp->options); +- } +- tmp = tmp->next; ++ /* and then reset the flag */ ++ fcntl(mouse->dev.fd, F_SETFL, fcntl(mouse->dev.fd, F_GETFL) & ~O_NDELAY); ++ ++ /* init the device, and use the return value as new mouse type */ ++ if (mouse->type->init) ++ if (mouse->type->init(&mouse->dev, &mouse->options, mouse->type)) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_MOUSE_INIT); + } +- +- gpm_report(GPM_PR_DEBUG,"finished initialization"); +- return 1; + } + + /* DESCR: when leaving, we should reset mice to their normal state */ +-/* RETURN: 0 - failed to reset one or more devices +- 1 - reset was fine */ + /* COMMENT: does error handling and exiting itself */ +-int reset_mice(struct micetab *micelist) ++void cleanup_mice(void) + { +- struct micetab *tmp = micelist; +- struct micetab *end = tmp; +- +- while(tmp != NULL) { /* FIXME! I never get NULL, as free()d before */ +- end = tmp; +- while(tmp->next != NULL) { /* set end to the last mouse */ +- end = tmp; +- tmp = tmp->next; +- } +- +- gpm_report(GPM_PR_DEBUG,"reset: %s with proto %s",end->device,end->protocol); +- if(tmp->options != NULL) { +- gpm_report(GPM_PR_DEBUG,"and options %s",end->options); +- } +- free(end); /* be clean() */ +- tmp = micelist; /* reset to the first mice again */ ++ struct micetab *tmp; ++ ++ while ((tmp = micelist)) { ++ if (micelist->dev.private) ++ free(micelist->dev.private); ++ micelist = micelist->next; ++ free(tmp); + } +- +- return 1; + } +diff -urN gpm-1.20.1/src/special.c gpm/src/special.c +--- gpm-1.20.1/src/special.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/special.c 2003-10-02 01:22:42.000000000 -0500 +@@ -37,6 +37,7 @@ + #include <sys/param.h> + + #include "headers/gpmInt.h" ++#include "headers/console.h" + + /* + * This function is only called at button press, to avoid unnecessary +@@ -78,7 +79,7 @@ + return 1; + + /* devfs change */ +- consolef=fopen(option.consolename,"w"); ++ consolef = fopen(console.device, "w"); + if (!consolef) consolef=stderr; + if (event->type & GPM_TRIPLE) /* just triggered: make noise and return */ + { +@@ -153,7 +154,7 @@ + case 0: /* child */ + close(0); close(1); close(2); + open(GPM_NULL_DEV,O_RDONLY); /* stdin */ +- open(option.consolename,O_WRONLY); /* stdout */ ++ open(console.device, O_WRONLY); /* stdout */ + dup(1); /* stderr */ + for (i=3;i<OPEN_MAX; i++) close(i); + execl("/bin/sh","sh","-c",command,(char *)NULL); +diff -urN gpm-1.20.1/src/startup.c gpm/src/startup.c +--- gpm-1.20.1/src/startup.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/startup.c 2003-10-02 01:22:42.000000000 -0500 +@@ -26,6 +26,7 @@ + #include <string.h> /* strlen() */ + #include <errno.h> /* errno */ + #include <unistd.h> /* unlink,geteuid */ ++#include <signal.h> + #include <sys/types.h> /* geteuid, mknod */ + #include <sys/stat.h> /* mknod */ + #include <fcntl.h> /* mknod */ +@@ -34,11 +35,13 @@ + + #include "headers/gpmInt.h" + #include "headers/message.h" ++#include "headers/console.h" ++#include "headers/selection.h" + + /* what todo atexit */ + static void gpm_exited(void) + { +- gpm_report(GPM_PR_DEBUG,GPM_MESS_REMOVE_FILES, GPM_NODE_PID, GPM_NODE_CTL); ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_REMOVE_FILES, GPM_NODE_PID, GPM_NODE_CTL); + unlink(GPM_NODE_PID); + unlink(GPM_NODE_CTL); + } +@@ -48,34 +51,12 @@ + extern struct options option; + extern int errno; + +- int i,opt; +- +- static struct { +- char *in; +- char *out; +- } seq[] = { +- {"123","01234567"}, +- {"132","02134657"}, +- {"213","01452367"}, /* warning: these must be readable as integers... */ +- {"231","02461357"}, +- {"312","04152637"}, +- {"321","04261537"}, +- {NULL,NULL} +- }; +- + /* basic settings */ + option.run_status = GPM_RUN_STARTUP; /* 10,9,8,... let's go */ + option.autodetect = 0; /* no mouse autodection */ + option.progname = argv[0]; /* who we are */ +- option.consolename = Gpm_get_console(); /* get consolename */ +- +- /* basic2: are not necessary for oops()ing, if not root */ +- option.no_mice = 0; /* counts -m + -t */ +- option.micelist = NULL; /* no mice found yet */ +- option.repeater = 0; /* repeat data */ +- option.repeater_type = NULL; /* type of */ +- + ++ get_console_name(); + cmdline(argc, argv); /* parse command line */ + + if (geteuid() != 0) gpm_report(GPM_PR_OOPS,GPM_MESS_ROOT); /* root or exit */ +@@ -87,54 +68,18 @@ + /****************** OLD CODE from gpn.c ***********************/ + + openlog(option.progname, LOG_PID, +- option.run_status != GPM_RUN_DEBUG ? LOG_DAEMON : LOG_USER); +- loadlut(opt_lut); +- +- if (option.repeater) { +- if(mkfifo(GPM_NODE_FIFO,0666) && errno!=EEXIST) +- gpm_report(GPM_PR_OOPS,GPM_MESS_CREATE_FIFO,GPM_NODE_FIFO); +- if((fifofd=open(GPM_NODE_FIFO, O_RDWR|O_NONBLOCK)) < 0) +- gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, GPM_NODE_FIFO); +- } +- +- /* duplicate initialization */ +- for (i=1; i <= 1+opt_double; i++) { +- which_mouse=mouse_table+i; /* used to access options */ +- if (opt_accel < 1) exit(usage("acceleration")); +- if (opt_delta < 2) exit(usage("delta")); +- if (strlen(opt_sequence) != 3 || atoi(opt_sequence)<100) +- exit(usage("sequence")); +- if (opt_glidepoint_tap > 3) exit(usage("glidepoint tap button")); +- if (opt_glidepoint_tap) +- opt_glidepoint_tap=GPM_B_LEFT >> (opt_glidepoint_tap-1); +- +- /* choose the sequence */ +- for (opt=0; seq[opt].in && strcmp(seq[opt].in,opt_sequence); opt++) ; +- if(!seq[opt].in) exit(usage("button sequence")); +- opt_sequence=strdup(seq[opt].out); /* I can rewrite on it */ +- +- /* look for the mouse type */ +- m_type = find_mouse_by_name(opt_type); +- if (!m_type) /* not found */ +- exit(M_listTypes()); +- } ++ option.run_status != GPM_RUN_DEBUG ? LOG_DAEMON : LOG_USER); + +- /* Check repeater status */ +- if (option.repeater) { +- if (strcmp(option.repeater_type,"raw") == 0) +- opt_rawrep = 1; +- else { +- /* look for the type */ +- repeated_type = find_mouse_by_name(option.repeater_type); ++ console_load_lut(); + +- if(!repeated_type) exit(M_listTypes()); /* not found */ +- +- if (!(repeated_type->repeat_fun)) /* unsupported translation */ +- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_REPEAT,option.repeater_type); +- } ++ if (repeater.raw || repeater.type) { ++ if (mkfifo(GPM_NODE_FIFO, 0666) && errno != EEXIST) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_CREATE_FIFO, GPM_NODE_FIFO); ++ if ((repeater.fd = open(GPM_NODE_FIFO, O_RDWR|O_NONBLOCK)) < 0) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, GPM_NODE_FIFO); + } + +- if(option.run_status == GPM_RUN_STARTUP ) { /* else is debugging */ ++ if(option.run_status == GPM_RUN_STARTUP) { /* else is debugging */ + /* goto background and become a session leader (Stefan Giessler) */ + switch(fork()) { + case -1: gpm_report(GPM_PR_OOPS,GPM_MESS_FORK_FAILED); /* error */ +@@ -152,13 +97,63 @@ + /* is changing to root needed, because of relative paths ? or can we just + * remove and ignore it ?? FIXME */ + if (chdir("/") < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_CHDIR_FAILED); +- + +- //return mouse_table[1].fd; /* the second is handled in the main() */ ++ atexit(gpm_exited); /* call gpm_exited at the end */ ++} + +- /****************** OLD CODE from gpn.c END ***********************/ ++/* itz Sat Sep 12 10:30:05 PDT 1998 this function used to mix two ++ completely different things; opening a socket to a running daemon ++ and checking that a running daemon existed. Ugly. */ ++/* rewritten mostly on 20th of February 2002 - nico */ ++void check_uniqueness(void) ++{ ++ FILE *fp = 0; ++ int old_pid = -1; + +- init_mice(option.micelist); /* reads option.micelist */ +- atexit(gpm_exited); /* call gpm_exited at the end */ ++ if ((fp = fopen(GPM_NODE_PID, "r")) != NULL) { ++ fscanf(fp, "%d", &old_pid); ++ if (kill(old_pid, 0) == -1) { ++ gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID); ++ unlink(GPM_NODE_PID); ++ } else /* we are really running, exit asap! */ ++ gpm_report(GPM_PR_OOPS, GPM_MESS_ALREADY_RUN, old_pid); ++ } ++ /* now try to sign ourself */ ++ if ((fp = fopen(GPM_NODE_PID,"w")) != NULL) { ++ fprintf(fp,"%d\n",getpid()); ++ fclose(fp); ++ } else { ++ gpm_report(GPM_PR_OOPS,GPM_MESS_NOTWRITE,GPM_NODE_PID); ++ } ++} + ++/* itz Sat Sep 12 10:55:51 PDT 1998 Added this as replacement for the ++ unwanted functionality in check_uniqueness. */ ++void kill_gpm(void) ++{ ++ int old_pid; ++ FILE* fp = fopen(GPM_NODE_PID, "r"); ++ ++ /* if we cannot find the old pid file, leave */ ++ if (fp == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN, GPM_NODE_PID); ++ ++ /* else read the pid */ ++ if (fscanf(fp, "%d", &old_pid) != 1) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_READ_PROB, GPM_NODE_PID); ++ fclose(fp); ++ ++ gpm_report(GPM_PR_DEBUG, GPM_MESS_KILLING, old_pid); ++ ++ /* first check if we run */ ++ if (kill(old_pid,0) == -1) { ++ gpm_report(GPM_PR_INFO, GPM_MESS_STALE_PID, GPM_NODE_PID); ++ unlink(GPM_NODE_PID); ++ } ++ /* then kill us (not directly, but the other instance ... ) */ ++ if (kill(old_pid, SIGTERM) == -1) ++ gpm_report(GPM_PR_OOPS, GPM_MESS_CANT_KILL, old_pid); ++ ++ gpm_report(GPM_PR_INFO, GPM_MESS_KILLED, old_pid); ++ exit(0); + } ++ +diff -urN gpm-1.20.1/src/synaptics.c gpm/src/synaptics.c +--- gpm-1.20.1/src/synaptics.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/synaptics.c 2003-10-02 01:22:42.000000000 -0500 +@@ -865,7 +865,7 @@ + static int scrolling_speed_timer = 0; + static int scrolling_amount_left = 0; /* Tells how much to scroll up or down */ + +- ++static int mouse_fd; + + + +@@ -882,6 +882,7 @@ + ** which makes reading the debug data harder, only dump the report if it is different + ** than the previously dumped. + */ ++#if DEBUG_REPORTS + static void tp_dump_report_data (report_type report, + int edges, + Gpm_Event* state) +@@ -934,7 +935,7 @@ + (multi_finger_pressure>4500 && multi_finger_xy>50000? 'f':' ')); + + } +- ++#endif + + /* syn_dump_info + ** +@@ -1158,8 +1159,8 @@ + status = GPM_B_NOT_SET; + break; + case Reset_Touchpad_Action: +- syn_ps2_reset(which_mouse->fd); +- syn_ps2_absolute_mode(which_mouse->fd); ++ syn_ps2_reset(mouse_fd); ++ syn_ps2_absolute_mode(mouse_fd); + status = GPM_B_NOT_SET; + break; + case Toggle_Four_Way_Button_Action: +@@ -2950,10 +2951,8 @@ + data [0],data [1],data [2],data [3],data [4],data [5]); + + if (reset_on_error_enabled) { +- /* Hack to get the fd: which_mouse is the current mouse, +- and as the synaptic code is called, it is the current mouse. */ +- syn_ps2_reset(which_mouse->fd); +- syn_ps2_absolute_mode(which_mouse->fd); ++ syn_ps2_reset(mouse_fd); ++ syn_ps2_absolute_mode(mouse_fd); + } + + report->left = 0; +@@ -3108,7 +3107,7 @@ + ** + ** Process the touchpad 6 byte report. + */ +-void syn_process_serial_data (Gpm_Event *state, ++void syn_process_serial_data (int fd, Gpm_Event *state, + unsigned char *data) + { + /* initialize the state */ +@@ -3116,6 +3115,8 @@ + state->dx = 0; + state->dy = 0; + ++ mouse_fd = fd; /* cheat */ ++ + syn_serial_translate_data (data, &cur_report); + if (wmode_enabled){ + syn_process_wmode_report(&cur_report); +@@ -3196,7 +3197,7 @@ + ** + ** Process the touchpad 6 byte report. + */ +-void syn_process_ps2_data (Gpm_Event *state, ++void syn_process_ps2_data (int fd, Gpm_Event *state, + unsigned char *data) + { + /* gpm_report(GPM_PR_DEBUG,"Data %02x %02x %02x %02x %02x %02x",data[0],data[1],data[2],data[3],data[4],data[5]); */ +@@ -3206,6 +3207,7 @@ + state->dx = 0; + state->dy = 0; + ++ mouse_fd = fd; /* cheat */ + + if (wmode_enabled) { + syn_ps2_translate_wmode_data (data, &cur_report); +diff -urN gpm-1.20.1/src/tools.c gpm/src/tools.c +--- gpm-1.20.1/src/tools.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/tools.c 1969-12-31 19:00:00.000000000 -0500 +@@ -1,93 +0,0 @@ +-/* +- * tools.c - tools which are needed by client and server +- * +- * Copyright (c) 2001 Nico Schottelius <nico@schottelius.org> +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +- ********/ +- +-#include <stdio.h> /* NULL */ +-#include <string.h> +-#include <stdlib.h> +-#include <sys/types.h> /* these three are */ +-#include <sys/stat.h> /* needed for */ +-#include <unistd.h> /* stat() */ +- +-#include "headers/gpmInt.h" /* only used for some defines */ +-#include "headers/message.h" +- +-/***************************************************************************** +- * check, whether devfs is used or not. +- * See /usr/src/linux/Documentation/filesystems/devfs/ for details. +- * Returns: the name of the console (/dev/tty0 or /dev/vc/0) +- *****************************************************************************/ +-char *Gpm_get_console( void ) +-{ +- +- char *back = NULL, *tmp = NULL; +- struct stat buf; +- +- /* first try the devfs device, because in the next time this will be +- * the preferred one. If that fails, take the old console */ +- +- /* Check for open new console */ +- if (stat(GPM_DEVFS_CONSOLE,&buf) == 0) +- tmp = GPM_DEVFS_CONSOLE; +- +- /* Failed, try OLD console */ +- else if(stat(GPM_OLD_CONSOLE,&buf) == 0) +- tmp = GPM_OLD_CONSOLE; +- +- if(tmp != NULL) +- if((back = malloc(strlen(tmp) + sizeof(char)) ) != NULL) +- strcpy(back,tmp); +- +- return(back); +-} +- +-/* what's the english name for potenz ? */ +-int Gpm_x_high_y(int base, int pot_y) +-{ +- int val = 1; +- +- if(pot_y == 0) val = 1; +- else if(pot_y < 0) val = 0; /* ugly hack ;) */ +- else while(pot_y > 0) { +- val = val * base; +- pot_y--; +- } +- return val; +-} +- +-/* return characters needed to display int */ +-int Gpm_cnt_digits(int number) +-{ +- /* 0-9 = 1 10^0 <-> (10^1)-1 +- * 10 - 99 = 2 10^1 <-> (10^2)-1 +- * 100 - 999 = 3 10^2 <-> (10^3)-1 +- * 1000 - 9999 = 4 ... */ +- +- int ret = 0, num = 0; +- +- /* non negative, please */ +- if(number < 0) number *= -1; +- else if(number == 0) ret = 1; +- else while(number > num) { +- ret++; +- num = (Gpm_x_high_y(10,ret) - 1); +- } +- +- return(ret); +-} +diff -urN gpm-1.20.1/src/twiddler.c gpm/src/twiddler.c +--- gpm-1.20.1/src/twiddler.c 2002-12-24 17:57:16.000000000 -0500 ++++ gpm/src/twiddler.c 2003-10-02 01:22:42.000000000 -0500 +@@ -54,6 +54,7 @@ + #include "headers/gpm.h" + #include "headers/gpmInt.h" + #include "headers/message.h" ++#include "headers/console.h" + #include "headers/twiddler.h" + + +@@ -134,17 +135,6 @@ + int (*fun)(char *string); + }; + +- +-/* The same silly function as in gpm.c */ +-static inline int open_console(const int mode) +-{ +- int fd; +- extern struct options option; +- if ((fd=open(option.consolename, mode)) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,option.consolename); +- return fd; +-} +- +- + /*===================================================================*/ + /* This part deals with pushing keys */ + +@@ -175,7 +165,7 @@ + int twiddler_exec(char *s) + { + int pid; +- extern struct options option; ++ + switch(pid=fork()) { + case -1: return -1; + case 0: +@@ -184,7 +174,7 @@ + close(2); /* very rude! */ + + open(GPM_NULL_DEV,O_RDONLY); +- open(option.consolename,O_WRONLY); ++ open(console.device, O_WRONLY); + dup(1); + execl("/bin/sh", "sh", "-c", s, NULL); + exit(1); /* shouldn't happen */ diff --git a/source/a/gpm/gpm.SlackBuild b/source/a/gpm/gpm.SlackBuild new file mode 100755 index 000000000..b0352fe89 --- /dev/null +++ b/source/a/gpm/gpm.SlackBuild @@ -0,0 +1,149 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# by: volkerdi@slackware.com + +VERSION=1.20.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-5} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gpm + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gpm-$VERSION +tar xjvf $CWD/gpm-$VERSION.tar.bz2 +cd gpm-$VERSION +sed -i -e "s/OPEN_MAX/NR_OPEN/" $(grep -lr OPEN_MAX *) +chown -R root:root . +find . \ + \( -perm 700 -o -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/gpm-evdev-cumulative.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm.evdevmakefile.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-math.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-weak-wgetch.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-nodebug.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-gpmopen.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-idie.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-subscript.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-input.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-consolename.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-multilib.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-no-console-error.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-lib-silent.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1.send-noise-to-syslogs.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/gpm-1.20.1-input-defines.diff.gz | patch -p1 --verbose || exit 1 + +autoconf + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + $ARCH-slackware-linux + +make || exit 1 +zcat $CWD/inputattach.c.gz > inputattach.c +gcc $SLKCFLAGS -o inputattach inputattach.c || exit + +mkdir -p $PKG/usr/bin $PKG/etc/rc.d +cat inputattach > $PKG/usr/bin/inputattach +( cd src + mkdir -p $PKG/usr/sbin + cat gpm > $PKG/usr/sbin/gpm + cat prog/disable-paste > $PKG/usr/bin/disable-paste + cat prog/gpm-root > $PKG/usr/bin/gpm-root + cat prog/hltest > $PKG/usr/bin/hltest + cat prog/mev > $PKG/usr/bin/mev + cat prog/mouse-test > $PKG/usr/bin/mouse-test + mkdir -p $PKG/usr/include + cp headers/gpm.h $PKG/usr/include/gpm.h + chmod 644 $PKG/usr/include/gpm.h + mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} $PKG/lib${LIBDIRSUFFIX} + cat lib/libgpm.a > $PKG/usr/lib${LIBDIRSUFFIX}/libgpm.a + cat lib/libgpm.so.1.19.0 > $PKG/lib${LIBDIRSUFFIX}/libgpm.so.1.19.0 + chmod 755 $PKG/lib${LIBDIRSUFFIX}/libgpm.so.1.19.0 +) +( cd conf + mkdir -p $PKG/etc + cat gpm-root.conf > $PKG/etc/gpm-root.conf + cat gpm-syn.conf > $PKG/etc/gpm-syn.conf + cat gpm-twiddler.conf > $PKG/etc/gpm-twiddler.conf +) +( cd contrib/emacs + mkdir -p $PKG/usr/share/emacs/site-lisp + cat t-mouse.el > $PKG/usr/share/emacs/site-lisp/t-mouse.el +) +mkdir -p $PKG/usr/doc/gpm-$VERSION +cp -a \ + BUGS COPYING Changelog Changes MANIFEST README TODO \ + $PKG/usr/doc/gpm-$VERSION +( cd doc + for page in *.1 *.7 *.8 ; do + CHAPTER=`echo $page | cut -f 2 -d .` + mkdir -p $PKG/usr/man/man$CHAPTER + cat $page | gzip -9c > $PKG/usr/man/man${CHAPTER}/$page.gz + done + mkdir -p $PKG/usr/info + cat gpm.info | gzip -9c > $PKG/usr/info/gpm.info.gz + cp -a \ + Announce FAQ HACK_GPM README* \ + $PKG/usr/doc/gpm-$VERSION +) +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/libgpm.so.1 libgpm.so ) +( cd $PKG/lib${LIBDIRSUFFIX} ; ln -sf libgpm.so.1.19.0 libgpm.so.1 ) +zcat $CWD/mouseconfig.gz > $PKG/usr/sbin/mouseconfig +chmod 755 $PKG/usr/bin/* $PKG/usr/sbin/* +mkdir -p $PKG/var/log/setup +zcat $CWD/setup.mouse.gz > $PKG/var/log/setup/setup.mouse +chmod 755 $PKG/var/log/setup/setup.mouse +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/gpm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/gpm/gpm.evdevmakefile.patch b/source/a/gpm/gpm.evdevmakefile.patch new file mode 100644 index 000000000..bd56c3aab --- /dev/null +++ b/source/a/gpm/gpm.evdevmakefile.patch @@ -0,0 +1,11 @@ +--- ./src/Makefile.in.orig 2006-02-07 15:24:17.000000000 -0600 ++++ ./src/Makefile.in 2006-02-07 15:26:03.000000000 -0600 +@@ -12,7 +12,7 @@ + include $(top_builddir)/Makefile.include + + # Main portion: regular build rules +-MICESRC = mice.c twiddler.c synaptics.c @EVDEV_SRCS@ ++MICESRC = mice.c twiddler.c synaptics.c evdev.c + + GSRC = main.c gpm.c gpn.c special.c startup.c server_tools.c console.c \ + selection.c client.c optparser.c $(MICESRC) diff --git a/source/a/gpm/inputattach.c b/source/a/gpm/inputattach.c new file mode 100644 index 000000000..c47fad137 --- /dev/null +++ b/source/a/gpm/inputattach.c @@ -0,0 +1,472 @@ +/* + * $Id: inputattach.c,v 1.21 2002/07/10 22:34:01 vojtech Exp $ + * + * Copyright (c) 1999-2000 Vojtech Pavlik + * + * Sponsored by SuSE + * + * Twiddler support Copyright (c) 2001 Arndt Schoenewald + * Sponsored by Quelltext AG (http://www.quelltext-ag.de), Dortmund, Germany + */ + +/* + * Input line discipline attach program + */ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Should you need to contact me, the author, you can do so either by + * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail: + * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic + */ + +#include <linux/serio.h> + +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/ioctl.h> +#include <sys/time.h> + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <fcntl.h> +#include <termios.h> +#include <string.h> +#include <assert.h> +#include <ctype.h> + +int readchar(int fd, unsigned char *c, int timeout) +{ + struct timeval tv; + fd_set set; + + tv.tv_sec = 0; + tv.tv_usec = timeout * 1000; + + FD_ZERO(&set); + FD_SET(fd, &set); + + if (!select(fd+1, &set, NULL, NULL, &tv)) return -1; + if (read(fd, c, 1) != 1) return -1; + + return 0; +} + + + +void setline(int fd, int flags, int speed) +{ + struct termios t; + + tcgetattr(fd, &t); + + t.c_cflag = flags | CREAD | HUPCL | CLOCAL; + t.c_iflag = IGNBRK | IGNPAR; + t.c_oflag = 0; + t.c_lflag = 0; + t.c_cc[VMIN ] = 1; + t.c_cc[VTIME] = 0; + + cfsetispeed(&t, speed); + cfsetospeed(&t, speed); + + tcsetattr(fd, TCSANOW, &t); +} + +int logitech_command(int fd, char *c) +{ + int i; + unsigned char d; + for (i = 0; c[i]; i++) { + write(fd, c + i, 1); + if (readchar(fd, &d, 1000)) + return -1; + if (c[i] != d) + return -1; + } + return 0; +} + +int magellan_init(int fd, long *id, long *extra) +{ + write(fd, "m3\rpBB\rz\r", 9); + return 0; +} + +int warrior_init(int fd, long *id, long *extra) +{ + if (logitech_command(fd, "*S")) return -1; + setline(fd, CS8, B4800); + return 0; +} + +int spaceball_waitchar(int fd, unsigned char c, unsigned char *d, int timeout) +{ + unsigned char b = 0; + + while (!readchar(fd, &b, timeout)) { + if (b == 0x0a) continue; + *d++ = b; + if (b == c) break; + } + + *d = 0; + + return -(b != c); +} + +int spaceball_waitcmd(int fd, char c, char *d) +{ + int i; + + for (i = 0; i < 8; i++) { + if (spaceball_waitchar(fd, 0x0d, d, 1000)) + return -1; + if (d[0] == c) + return 0; + } + + return -1; +} + +int spaceball_cmd(int fd, char *c, char *d) +{ + int i; + + for (i = 0; c[i]; i++) + write(fd, c + i, 1); + write(fd, "\r", 1); + + i = spaceball_waitcmd(fd, toupper(c[0]), d); + + return i; +} + +#define SPACEBALL_1003 1 +#define SPACEBALL_2003B 3 +#define SPACEBALL_2003C 4 +#define SPACEBALL_3003C 7 +#define SPACEBALL_4000FLX 8 +#define SPACEBALL_4000FLX_L 9 + +int spaceball_init(int fd, long *id, long *extra) +{ + char r[64]; + + if (spaceball_waitchar(fd, 0x11, r, 4000) || + spaceball_waitchar(fd, 0x0d, r, 1000)) + return -1; + + if (spaceball_waitcmd(fd, '@', r)) + return -1; + + if (strncmp("@1 Spaceball alive", r, 18)) + return -1; + + if (spaceball_waitcmd(fd, '@', r)) + return -1; + + if (spaceball_cmd(fd, "hm", r)) + return -1; + + if (!strncmp("Hm2003B", r, 7)) + *id = SPACEBALL_2003B; + if (!strncmp("Hm2003C", r, 7)) + *id = SPACEBALL_2003C; + if (!strncmp("Hm3003C", r, 7)) + *id = SPACEBALL_3003C; + + if (!strncmp("HvFirmware", r, 10)) { + + if (spaceball_cmd(fd, "\"", r)) + return -1; + + if (strncmp("\"1 Spaceball 4000 FLX", r, 21)) + return -1; + + if (spaceball_waitcmd(fd, '"', r)) + return -1; + + if (strstr(r, " L ")) + *id = SPACEBALL_4000FLX_L; + else + *id = SPACEBALL_4000FLX; + + if (spaceball_waitcmd(fd, '"', r)) + return -1; + + if (spaceball_cmd(fd, "YS", r)) + return -1; + + if (spaceball_cmd(fd, "M", r)) + return -1; + + return 0; + } + + if (spaceball_cmd(fd, "P@A@A", r) || + spaceball_cmd(fd, "FT@", r) || + spaceball_cmd(fd, "MSS", r)) + return -1; + + return 0; +} + +int stinger_init(int fd, long *id, long *extra) +{ + int i; + unsigned char c; + unsigned char *response = "\r\n0600520058C272"; + + if (write(fd, " E5E5", 5) != 5) /* Enable command */ + return -1; + + for (i = 0; i < 16; i++) /* Check for Stinger */ + if (readchar(fd, &c, 200) || (c != response[i])) + return -1; + + return 0; +} + +int mzp_init(int fd, long *id, long *extra) +{ + if (logitech_command(fd, "*X*q")) return -1; + setline(fd, CS8, B9600); + return 0; +} + +int newton_init(int fd, long *id, long *extra) +{ + int i; + unsigned char c; + unsigned char response[35] = + { 0x16, 0x10, 0x02, 0x64, 0x5f, 0x69, 0x64, 0x00, + 0x00, 0x00, 0x0c, 0x6b, 0x79, 0x62, 0x64, 0x61, + 0x70, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x6e, + 0x6f, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x03, 0xdd, 0xe7 }; + + for (i = 0; i < 35; i++) + if (readchar(fd, &c, 400) || (c != response[i])) + return -1; + + return 0; +} + +int twiddler_init(int fd, long *id, long *extra) +{ + unsigned char c[10]; + int count, line; + + /* Turn DTR off, otherwise the Twiddler won't send any data. */ + if (ioctl(fd, TIOCMGET, &line)) return -1; + line &= ~TIOCM_DTR; + if (ioctl(fd, TIOCMSET, &line)) return -1; + + /* Check whether the device on the serial line is the Twiddler. + * + * The Twiddler sends data packets of 5 bytes which have the following + * properties: the MSB is 0 on the first and 1 on all other bytes, and + * the high order nibble of the last byte is always 0x8. + * + * We read and check two of those 5 byte packets to be sure that we + * are indeed talking to a Twiddler. */ + + /* Read at most 5 bytes until we find one with the MSB set to 0 */ + for (count = 0; count < 5; count++) { + if (readchar(fd, c+0, 500)) return -1; + if ((c[0] & 0x80) == 0) break; + } + + if (count == 5) { + /* Could not find header byte in data stream */ + return -1; + } + + /* Read remaining 4 bytes plus the full next data packet */ + for (count = 1; count < 10; count++) { + if (readchar(fd, c+count, 500)) return -1; + } + + /* Check whether the bytes of both data packets obey the rules */ + for (count = 1; count < 10; count++) { + if ((count % 5 == 0 && (c[count] & 0x80) != 0) + || (count % 5 == 4 && (c[count] & 0xF0) != 0x80) + || (count % 5 != 0 && (c[count] & 0x80) != 0x80)) { + /* Invalid byte in data packet */ + return -1; + } + } + + return 0; +} + +int dump_init(int fd, long *id, long *extra) +{ + unsigned char c, o = 0; + + c = 0x80; + + if (write(fd, &c, 1) != 1) /* Enable command */ + return -1; + + while (1) + if (!readchar(fd, &c, 1)) { + printf("%02x (%c) ", c, ((c > 32) && (c < 127)) ? c : 'x'); + o = 1; + } else { + if (o) { + printf("\n"); + o = 0; + } + } +} + +struct input_types { + char name[16]; + char name2[16]; + int speed; + int flags; + unsigned long type; + unsigned long extra; + int flush; + int (*init)(int fd, long *id, long *extra); +}; + +struct input_types input_types[] = { + +{ "--sunkbd", "-skb", B1200, CS8, SERIO_SUNKBD, 0x00, 1, NULL }, +{ "--spaceorb", "-orb", B9600, CS8, SERIO_SPACEORB, 0x00, 1, NULL }, +{ "--spaceball", "-sbl", B9600, CS8, SERIO_SPACEBALL,0x00, 0, spaceball_init }, +{ "--magellan", "-mag", B9600, CS8 | CSTOPB | CRTSCTS, SERIO_MAGELLAN, 0x00, 1, magellan_init }, +{ "--warrior", "-war", B1200, CS7 | CSTOPB, SERIO_WARRIOR, 0x00, 1, warrior_init }, +{ "--stinger", "-sting", B1200, CS8, SERIO_STINGER, 0x00, 1, stinger_init }, +{ "--mousesystems", "-msc", B1200, CS8, SERIO_MSC, 0x01, 1, NULL }, +{ "--sunmouse", "-sun", B1200, CS8, SERIO_SUN, 0x01, 1, NULL }, +{ "--microsoft", "-bare", B1200, CS7, SERIO_MS, 0x00, 1, NULL }, +{ "--mshack", "-ms", B1200, CS7, SERIO_MS, 0x01, 1, NULL }, +{ "--mouseman", "-mman", B1200, CS7, SERIO_MP, 0x01, 1, NULL }, +{ "--intellimouse", "-ms3", B1200, CS7, SERIO_MZ, 0x11, 1, NULL }, +{ "--mmwheel", "-mmw", B1200, CS7 | CSTOPB, SERIO_MZP, 0x13, 1, mzp_init }, +{ "--iforce", "-ifor", B38400, CS8, SERIO_IFORCE, 0x00, 0, NULL }, +{ "--newtonkbd", "-newt", B9600, CS8, SERIO_NEWTON, 0x00, 0, newton_init }, +{ "--h3600ts", "-ipaq", B115200, CS8, SERIO_H3600, 0x00, 0, NULL }, +{ "--stowawaykbd", "-ipaqkbd", B115200, CS8, SERIO_STOWAWAY, 0x00, 0, NULL }, +{ "--ps2serkbd", "-ps2ser", B1200, CS8, SERIO_PS2SER, 0x00, 1, NULL }, +#if 0 +{ "--twiddler", "-twid", B2400, CS8, SERIO_TWIDKBD, 0x00, 0, twiddler_init }, +{ "--twiddler-joy", "-twidjoy", B2400, CS8, SERIO_TWIDJOY, 0x00, 0, twiddler_init }, +{ "--ipod-remote", "-ipod", B9600, CS8, SERIO_IPOD_REM, 0x00, 0, NULL }, +#endif +{ "--dump", "-dump", B2400, CS8, 0, 0x00, 0, dump_init }, +{ "", "", 0, 0 } + +}; + +int main(int argc, char **argv) +{ + unsigned long devt; + int ldisc; + int type; + long id, extra; + int fd; + char c; + + if (argc < 2 || argc > 4 || (argc == 4 && strcmp(argv[3], "--daemon")) || !strcmp("--help", argv[1])) { + puts(""); + puts("Usage: inputttach <mode> <device>"); + puts(""); + puts("Modes:"); + puts(" --sunkbd -skb Sun Type 4 and Type 5 keyboards"); + puts(" --spaceorb -orb SpaceOrb 360 / SpaceBall Avenger"); + puts(" --spaceball -sbl SpaceBall 2003 / 3003 / 4000 FLX"); + puts(" --magellan -mag Magellan / SpaceMouse"); + puts(" --warrior -war WingMan Warrior"); + puts(" --stinger -stng Gravis Stinger"); + puts(" --mousesystems -msc 3-button Mouse Systems mice"); + puts(" --sunmouse -sun 3-button Sun mice"); + puts(" --microsoft -bare 2-button Microsoft mice"); + puts(" --mshack -ms 3-button mice in Microsoft mode"); + puts(" --mouseman -mman 3-button Logitech and Genius mice"); + puts(" --intellimouse -ms3 Microsoft IntelliMouse"); + puts(" --mmwheel -mmw Logitech mice with 4-5 buttons or wheel"); + puts(" --iforce -ifor I-Force joysticks and wheels"); + puts(" --h3600ts -ipaq Ipaq h3600 touchscreen"); + puts(" --stowawaykbd -ipaqkbd Stowaway keyboard"); + puts(" --ps2serkbd -ps2ser PS/2 via serial keyboard"); +#if 0 + puts(" --twiddler -twid Handykey Twiddler chording keyboard"); + puts(" --twiddler-joy -twidjoy Handykey Twiddler used as a joystick"); + puts(" --ipod-remote -ipod iPod remote control"); +#endif + puts(""); + return 1; + } + + for (type = 0; input_types[type].speed; type++) { + if (!strncasecmp(argv[1], input_types[type].name, 16) || + !strncasecmp(argv[1], input_types[type].name2, 16)) + break; + } + + if (!input_types[type].speed) { + fprintf(stderr, "inputattach: invalid mode\n"); + return 1; + } + + if ((fd = open(argv[2], O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) { + perror("inputattach"); + return 1; + } + + setline(fd, input_types[type].flags, input_types[type].speed); + + if (input_types[type].flush) + while (!readchar(fd, &c, 100)); + + id = 0; + extra = input_types[type].extra; + + if (input_types[type].init && input_types[type].init(fd, &id, &extra)) { + fprintf(stderr, "inputattach: device initialization failed\n"); + return 1; + } + + ldisc = N_MOUSE; + if(ioctl(fd, TIOCSETD, &ldisc)) { + fprintf(stderr, "inputattach: can't set line discipline\n"); + return 1; + } + + devt = SERIO_RS232 | input_types[type].type | (id << 8) | (extra << 16); + + if(ioctl(fd, SPIOCSTYPE, &devt)) { + fprintf(stderr, "inputattach: can't set device type\n"); + return 1; + } + + if (argc == 4 && !strcmp(argv[3],"--daemon")) + daemon(0,0); + + read(fd, NULL, 0); + + ldisc = 0; + ioctl(fd, TIOCSETD, &ldisc); + close(fd); + + return 0; +} diff --git a/source/a/gpm/mouseconfig b/source/a/gpm/mouseconfig new file mode 100644 index 000000000..4e9575f51 --- /dev/null +++ b/source/a/gpm/mouseconfig @@ -0,0 +1,7 @@ +#!/bin/sh +# Starts the Slackware mouse configuration menu, where you can set your +# /dev/mouse link and configure gpm. +COLOR=on +export COLOR +cd / +/bin/sh /var/log/setup/setup.mouse / diff --git a/source/a/gpm/setup.mouse b/source/a/gpm/setup.mouse new file mode 100644 index 000000000..dcdc6a8f9 --- /dev/null +++ b/source/a/gpm/setup.mouse @@ -0,0 +1,154 @@ +#!/bin/sh +#BLURB="Configure the console mouse support (GPM)." +T_PX=$1 +TMP=/var/log/setup/tmp +GPM=/usr/sbin/gpm +# If the mouse is USB, we can autodetect it: +if [ -r /proc/bus/usb/devices ]; then + if cat /proc/bus/usb/devices | grep usb_mouse 1> /dev/null 2> /dev/null ; then + MOUSE_TYPE=usb + MTYPE="imps2" + ( cd $T_PX/dev ; rm -f mouse ; ln -sf input/mice mouse ) + fi +fi + +if [ "$MOUSE_TYPE" = "" ]; then + dialog --title "MOUSE CONFIGURATION" --default-item "imps2" --menu \ +"This part of the configuration \ +process will create a /dev/mouse link pointing to your default mouse device. \ +You can change the /dev/mouse link later if the mouse doesn't work, or if \ +you switch to a different type of pointing device. We will also use the \ +information about the mouse to set the correct protocol for gpm, the Linux \ +mouse server. Please select a mouse type \ +from the list below:" 20 76 8 \ + "ps2" "PS/2 port mouse (most desktops and laptops)" \ + "usb" "USB connected mouse" \ + "imps2" "Microsoft PS/2 Intellimouse" \ + "exps2" "Intellimouse Explorer PS/2" \ + "bare" "2 button Microsoft compatible serial mouse" \ + "ms" "3 button Microsoft compatible serial mouse" \ + "mman" "Logitech serial MouseMan and similar devices" \ + "msc" "MouseSystems serial (most 3 button serial mice)" \ + "pnp" "Plug and Play (serial mice that do not work with ms)" \ + "ms3" "Microsoft serial Intellimouse" \ + "netmouse" "Genius Netmouse on PS/2 port" \ + "logi" "Some serial Logitech devices" \ + "logim" "Make serial Logitech behave like msc" \ + "atibm" "ATI XL busmouse (mouse card)" \ + "inportbm" "Microsoft busmouse (mouse card)" \ + "logibm" "Logitech busmouse (mouse card)" \ + "ncr" "A pointing pen (NCR3125) on some laptops" \ + "twid" "Twiddler keyboard, by HandyKey Corp" \ + "genitizer" "Genitizer tablet (relative mode)" \ + "js" "Use a joystick as a mouse" \ + "wacom" "Wacom serial graphics tablet" \ + 2> $TMP/mtype + if [ ! $? = 0 ]; then + rm -f $TMP/mtype + exit + fi + if [ -f $TMP/mtype ]; then + MOUSE_TYPE="`cat $TMP/mtype`" + else + unset MOUSE_TYPE + fi + rm -f $TMP/mtype + if [ "$MOUSE_TYPE" = "bare" -o "$MOUSE_TYPE" = "ms" \ + -o "$MOUSE_TYPE" = "mman" -o "$MOUSE_TYPE" = "msc" \ + -o "$MOUSE_TYPE" = "genitizer" \ + -o "$MOUSE_TYPE" = "pnp" -o "$MOUSE_TYPE" = "ms3" \ + -o "$MOUSE_TYPE" = "logi" -o "$MOUSE_TYPE" = "logim" \ + -o "$MOUSE_TYPE" = "wacom" -o "$MOUSE_TYPE" = "twid" ]; then + dialog --title "SELECT SERIAL PORT" --menu "Your mouse requires a \ +serial port. Which one would you like to use?" 12 50 4 \ + "/dev/ttyS0" "(COM1: under DOS)" \ + "/dev/ttyS1" "(COM2: under DOS)" \ + "/dev/ttyS2" "(COM3: under DOS)" \ + "/dev/ttyS3" "(COM4: under DOS)" 2> $TMP/mport + if [ ! $? = 0 ]; then + rm -f $TMP/mport + exit + fi + MDEVICE="`cat $TMP/mport`" + SHORT_MDEVICE=`basename $MDEVICE` + ( cd $T_PX/dev ; rm -f mouse ; ln -sf $SHORT_MDEVICE mouse ) + # For the serial mice, the protocol is the same as the mouse type: + MTYPE=$MOUSE_TYPE + rm -f $TMP/mport + elif [ "$MOUSE_TYPE" = "ps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "ncr" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="ncr" + elif [ "$MOUSE_TYPE" = "exps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="exps2" + elif [ "$MOUSE_TYPE" = "imps2" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse ) + MTYPE="imps2" + elif [ "$MOUSE_TYPE" = "logibm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf logibm mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "atibm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf atibm mouse ) + MTYPE="ps2" + elif [ "$MOUSE_TYPE" = "inportbm" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf inportbm mouse ) + MTYPE="bm" + elif [ "$MOUSE_TYPE" = "js" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf js0 mouse ) + MTYPE="js" + elif [ "$MOUSE_TYPE" = "usb" ]; then + ( cd $T_PX/dev ; rm -f mouse ; ln -sf input/mice mouse ) + MTYPE="imps2" + fi +fi + +# OK, we know enough now to create a sample rc.gpm: +cat << EOF > $T_PX/etc/rc.d/rc.gpm-sample +#!/bin/sh +# Start/stop/restart the GPM mouse server: + +if [ "\$1" = "stop" ]; then + echo "Stopping gpm..." + $GPM -k +elif [ "\$1" = "restart" ]; then + echo "Restarting gpm..." + $GPM -k + sleep 1 + $GPM -m /dev/mouse -t $MTYPE +else # assume \$1 = start: + echo "Starting gpm: $GPM -m /dev/mouse -t $MTYPE" + $GPM -m /dev/mouse -t $MTYPE +fi + +# There is another way to run GPM, where it acts as a repeater outputting a +# virtual MouseSystems mouse on /dev/gpmdata. This is useful for feeding +# gpm's data to X, especially if you've got a busmouse (in that situation X +# and gpm may not coexist without using a repeater). To try running a GPM +# repeater for X, change the gpm command line to look like this: +# $GPM -R msc -m /dev/mouse -t $MTYPE +# Then, make sure that the mouse configuration in your XF86Config file refers +# to the repeater device (/dev/gpmdata) and a MouseSystems mouse type. If you +# edit the file directly, you'll want the lines to look like this (minus the +# comment marks '#' shown here, of course): +#Section "Pointer" +# Protocol "MouseSystems" +# Device "/dev/gpmdata" + +EOF +chmod 755 $T_PX/etc/rc.d/rc.gpm-sample +# Now ask if this should be the new rc.gpm: + dialog --title "GPM CONFIGURATION" --yesno \ +"The gpm program allows you to cut and paste text on\n\ +the virtual consoles using a mouse. If you choose to\n\ +run it at boot time, this line will be added to your\n\ +/etc/rc.d/rc.gpm:\n\ +\n\ + $GPM -m /dev/mouse -t $MTYPE \n\ +\n\ +Shall we load the gpm program at boot time?" 12 58 + if [ $? = 0 ]; then + mv $T_PX/etc/rc.d/rc.gpm-sample $T_PX/etc/rc.d/rc.gpm + fi diff --git a/source/a/gpm/slack-desc b/source/a/gpm/slack-desc new file mode 100644 index 000000000..17774f10e --- /dev/null +++ b/source/a/gpm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gpm: gpm (general purpose mouse server) +gpm: +gpm: The general purpose mouse server, or gpm, allows you to use the mouse +gpm: to cut and paste text from the screen. It also acts as a mouse +gpm: server for applications running on the Linux console, such as the +gpm: Midnight Commander file manager. +gpm: +gpm: NOTE: This program may cause problems when you start X on systems +gpm: that do not use a serial mouse. If you get an 'unable to open mouse +gpm: device' error from X, disable /etc/rc.d/rc.gpm. +gpm: diff --git a/source/a/grep/grep.SlackBuild b/source/a/grep/grep.SlackBuild new file mode 100755 index 000000000..1b2ac8e7e --- /dev/null +++ b/source/a/grep/grep.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2005-2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-2.5.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-grep + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf grep-$VERSION +tar xvf $CWD/grep-$VERSION.tar.bz2 || exit 1 +cd grep-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-perl-regexp \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# **************************************************************************** +# Makefile installs different binaries for each of grep, egrep, and fgrep +# This is how we used to do it... +#( cd $PKG/bin +# rm -f egrep ; ln -sf grep egrep +# rm -f fgrep ; ln -sf grep fgrep +#) +# **************************************************************************** + +# Make symlinks in /usr/bin: +mkdir -p $PKG/usr/bin +( cd $PKG/usr/bin + ln -sf ../../bin/grep . + ln -sf ../../bin/egrep . + ln -sf ../../bin/fgrep . +) + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +# Compress info pages +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/grep-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/grep-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/grep-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/grep/slack-desc b/source/a/grep/slack-desc new file mode 100644 index 000000000..fe831013e --- /dev/null +++ b/source/a/grep/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +grep: grep (print lines matching a pattern) +grep: +grep: This is GNU grep, the "fastest grep in the west" (we hope). Grep +grep: searches through textual input for lines which contain a match to a +grep: specified pattern and then prints the matching lines. +grep: +grep: +grep: +grep: +grep: +grep: diff --git a/source/a/gzip/gzip.SlackBuild b/source/a/gzip/gzip.SlackBuild new file mode 100755 index 000000000..c2719ebd3 --- /dev/null +++ b/source/a/gzip/gzip.SlackBuild @@ -0,0 +1,146 @@ +#!/bin/sh +# Copyright 2006-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=gzip +VERSION=${VERSION:-1.3.12} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# The following command renames the internal implementation of futimens +# to gl_futimens as newer versions of Glibc provide an incompatible version: +sed -i -e "s/futimens/gl_&/" $(grep -lr futimens *) + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# The ncompress package already has this: +rm -f $PKG/bin/uncompress + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Fix locations: +#( cd $PKG + #mkdir bin + #mv usr/bin/gzip bin + #( cd bin ; rm -rf gunzip ) + #( cd bin ; ln -sf gzip gunzip ) + #( cd bin ; rm -rf zcat ) + #( cd bin ; ln -sf gzip zcat ) + #( cd usr/bin ; rm -rf gzip ) + #( cd usr/bin ; ln -sf ../../bin/gzip gzip ) + #( cd usr/bin ; rm -rf gunzip ) + #( cd usr/bin ; ln -sf ../../bin/gunzip gunzip ) + #( cd usr/bin ; rm -rf zcat ) + #( cd usr/bin ; ln -sf ../../bin/zcat zcat ) + #( cd usr/bin ; rm -rf zcmp ) + #( cd usr/bin ; ln -sf zdiff zcmp ) + #( cd usr/bin ; rm -rf zegrep ) + #( cd usr/bin ; ln -sf zgrep zegrep ) + #( cd usr/bin ; rm -rf zfgrep ) + #( cd usr/bin ; ln -sf zgrep zfgrep ) +#) + +mkdir -p $PKG/usr/bin +( cd $PKG/bin + for file in * ; do + ( cd $PKG/usr/bin ; ln -sf ../../bin/$file . ) + done +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README README-alpha THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.tgz + diff --git a/source/a/gzip/slack-desc b/source/a/gzip/slack-desc new file mode 100644 index 000000000..ef26d586e --- /dev/null +++ b/source/a/gzip/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gzip: gzip (file compression utility) +gzip: +gzip: Gzip reduces the size of the named files using Lempel-Ziv coding +gzip: (LZ77). Whenever possible, each file is replaced by one with the +gzip: extension .gz, while keeping the same ownership modes, access and +gzip: modification times. +gzip: +gzip: +gzip: +gzip: +gzip: diff --git a/source/a/hdparm/hdparm.SlackBuild b/source/a/hdparm/hdparm.SlackBuild new file mode 100755 index 000000000..293b1cf87 --- /dev/null +++ b/source/a/hdparm/hdparm.SlackBuild @@ -0,0 +1,66 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-9.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-hdparm + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf hdparm-$VERSION +tar xvf $CWD/hdparm-$VERSION.tar.bz2 || exit 1 +cd hdparm-$VERSION || exit 1 +chown -R root:root . +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/sbin +cat hdparm > $PKG/sbin/hdparm +chmod 755 $PKG/sbin/hdparm +mkdir -p $PKG/usr/sbin +( cd $PKG/usr/sbin + ln -sf ../../sbin/hdparm . +) +mkdir -p $PKG/usr/man/man8 +cat hdparm.8 | gzip -9c > $PKG/usr/man/man8/hdparm.8.gz +mkdir -p $PKG/usr/doc/hdparm-$VERSION +cp -a \ + LICENSE.TXT README.acoustic hdparm.lsm contrib \ + $PKG/usr/doc/hdparm-$VERSION +# I'm also not sure why I'm putting a binary in the docs, but... +rm -f $PKG/usr/doc/hdparm-$VERSION/contrib/fix_standby.c + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/hdparm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/hdparm/slack-desc b/source/a/hdparm/slack-desc new file mode 100644 index 000000000..dc846e073 --- /dev/null +++ b/source/a/hdparm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +hdparm: hdparm (read/set hard drive parameters) +hdparm: +hdparm: hdparm provides a command line interface to various hard disk ioctls +hdparm: supported by the Linux ATA/IDE device driver subsystem. This may be +hdparm: required to enable higher-performing disk modes. +hdparm: +hdparm: hdparm was written by Mark Lord. +hdparm: +hdparm: +hdparm: +hdparm: diff --git a/source/a/infozip/infozip.SlackBuild b/source/a/infozip/infozip.SlackBuild new file mode 100755 index 000000000..900c4f95d --- /dev/null +++ b/source/a/infozip/infozip.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=6.0 +ZIP=3.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-infozip + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf zip$(echo $ZIP | tr -d .) +tar xvf $CWD/zip$(echo $ZIP | tr -d .).tar.?z* || exit 1 +cd zip$(echo $ZIP | tr -d .) +chown -R root:root . +mkdir -p $PKG/usr/doc/zip-$ZIP +cp -a BUGS CHANGES INSTALL LICENSE README* TODO US* WHATSNEW WHERE \ + $PKG/usr/doc/zip-$ZIP +chmod 644 $PKG/usr/doc/zip-$ZIP/* +make -f unix/Makefile generic_gcc || exit 1 +mkdir -p $PKG/usr/bin +cat zip > $PKG/usr/bin/zip +cat zipnote > $PKG/usr/bin/zipnote +cat zipsplit > $PKG/usr/bin/zipsplit +cat zipcloak > $PKG/usr/bin/zipcloak +mkdir -p $PKG/usr/man/man1 +for page in man/zip.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$(basename $page).gz +done + +cd $TMP +rm -rf unzip$(echo $VERSION | tr -d .) +tar xvf $CWD/unzip$(echo $VERSION | tr -d .).tar.?z* || exit 1 +cd unzip$(echo $VERSION | tr -d .) +chown -R root:root . +mkdir -p $PKG/usr/doc/unzip-$VERSION +cp -a BUGS COPYING* Contents History.* INSTALL LICENSE README ToDo WHERE \ + $PKG/usr/doc/unzip-$VERSION +chmod 644 $PKG/usr/doc/unzip-$VERSION/* +make -f unix/Makefile generic || exit 1 +cat unzip > $PKG/usr/bin/unzip +cat unzipsfx > $PKG/usr/bin/unzipsfx +cat funzip > $PKG/usr/bin/funzip +cat unix/zipgrep > $PKG/usr/bin/zipgrep +( cd $PKG/usr/bin ; ln -sf unzip zipinfo ) +chmod 755 $PKG/usr/bin/* +cd man +for page in funzip.1 unzip.1 unzipsfx.1 zipgrep.1 zipinfo.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +cd .. +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/infozip-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/zip-$ZIP + rm -rf $TMP/unzip-$VERSION + rm -rf $PKG +fi diff --git a/source/a/infozip/slack-desc b/source/a/infozip/slack-desc new file mode 100644 index 000000000..92e643160 --- /dev/null +++ b/source/a/infozip/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +infozip: infozip (Info-ZIP's zip and unzip utilities) +infozip: +infozip: zip is a compression and file packaging utility for Unix, VMS, MSDOS, +infozip: OS/2, Windows NT, Minix, Atari and Macintosh, Amiga and Acorn RISC OS. +infozip: It is analogous to a combination of the UNIX commands tar(1) and +infozip: compress(1) and is compatible with PKZIP (Phil Katz's ZIP). A +infozip: companion program (unzip(1L)), unpacks zip archives. +infozip: +infozip: +infozip: +infozip: diff --git a/source/a/inotify-tools/inotify-tools.SlackBuild b/source/a/inotify-tools/inotify-tools.SlackBuild new file mode 100755 index 000000000..82e807fce --- /dev/null +++ b/source/a/inotify-tools/inotify-tools.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=inotify-tools +VERSION=${VERSION:-3.13} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAM}-${VERSION}/html \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-${VERSION} +# Get rid of html api documentation: +rm -rf $PKG/usr/doc/${PKGNAM}-${VERSION}/html + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/inotify-tools/slack-desc b/source/a/inotify-tools/slack-desc new file mode 100644 index 000000000..f5cb8c6e8 --- /dev/null +++ b/source/a/inotify-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +inotify-tools: inotify-tools (command line utilities for inotify) +inotify-tools: +inotify-tools: inotify-tools is a set of command-line programs for Linux providing a +inotify-tools: simple interface to inotify. These programs can be used to monitor +inotify-tools: and act upon filesystem events. +inotify-tools: +inotify-tools: For more information see the inotifywait and inotifywatch man pages. +inotify-tools: +inotify-tools: inotify-tools home: http://inotify-tools.sourceforge.net/ +inotify-tools: +inotify-tools: diff --git a/source/a/jfsutils/jfsutils.SlackBuild b/source/a/jfsutils/jfsutils.SlackBuild new file mode 100755 index 000000000..d97ebcb62 --- /dev/null +++ b/source/a/jfsutils/jfsutils.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-1.1.14} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-jfsutils + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf jfsutils-$VERSION +tar xvf $CWD/jfsutils-$VERSION.tar.?z* || exit 1 +cd jfsutils-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --disable-dependency-tracking \ + --build=$ARCH-slackware-linux + +make + +mkdir -p $PKG/sbin +cat fsck/jfs_fsck > $PKG/sbin/jfs_fsck +( cd $PKG/sbin ; ln -sf jfs_fsck fsck.jfs ) +cat mkfs/jfs_mkfs > $PKG/sbin/jfs_mkfs +( cd $PKG/sbin ; ln -sf jfs_mkfs mkfs.jfs ) +cat logdump/jfs_logdump > $PKG/sbin/jfs_logdump +cat fscklog/jfs_fscklog > $PKG/sbin/jfs_fscklog +cat xpeek/jfs_debugfs > $PKG/sbin/jfs_debugfs +cat tune/jfs_tune > $PKG/sbin/jfs_tune +chmod 755 $PKG/sbin/* + +mkdir -p $PKG/usr/man/man8 +for file in `find . -name "*.8"` ; do + cat $file | gzip -9c > $PKG/usr/man/man8/`basename $file`.gz +done +( cd $PKG/usr/man/man8 + ln -sf jfs_fsck.8.gz fsck.jfs.8.gz + ln -sf jfs_mkfs.8.gz mkfs.jfs.8.gz +) + +mkdir -p $PKG/usr/doc/jfsutils-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README \ + $PKG/usr/doc/jfsutils-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/jfsutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/jfsutils/slack-desc b/source/a/jfsutils/slack-desc new file mode 100644 index 000000000..d9c52dd2b --- /dev/null +++ b/source/a/jfsutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +jfsutils: jfsutils (IBM JFS utilities) +jfsutils: +jfsutils: Utilities for managing IBM's Journaled File System (JFS) under Linux: +jfsutils: jfs_debugfs - shell-type JFS file system editor. +jfsutils: jfs_fsck - check and repair a JFS formatted device. +jfsutils: jfs_fscklog - extract a JFS fsck service log into a file. +jfsutils: jfs_logdump - dump a JFS formatted device's journal log. +jfsutils: jfs_mkfs - create a JFS formatted partition. +jfsutils: jfs_tune - adjust tunable file system parameters on JFS. +jfsutils: +jfsutils: diff --git a/source/a/kbd/kbd.SlackBuild b/source/a/kbd/kbd.SlackBuild new file mode 100755 index 000000000..7ac0b142f --- /dev/null +++ b/source/a/kbd/kbd.SlackBuild @@ -0,0 +1,177 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=kbd +VERSION=1.15 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:--j4} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kbd + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP + +# Add some extra fonts: +( cd $PKG ; explodepkg $CWD/sources/extraf.tgz ) + +# Extract source: +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/sources/$PKGNAM-$VERSION.tar.bz2 +cd $PKGNAM-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +# Apply patches: +# These are taken from Fedora's SRPM: +zcat $CWD/sources/kbd-1.15-po.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-keycodes-man.patch | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-sparc.patch | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-unicode_start.patch | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-resizecon-x86_64.patch | patch -p1 --verbose || exit 1 +zcat $CWD/sources/kbd-1.15-quiet_doc.patch | patch -p1 --verbose || exit 1 + +# This is from Fedora's spec file: +# 7-bit maps are obsolete; so are non-euro maps +( cd data/keymaps/i386 + mv qwerty/fi.map qwerty/fi-old.map + cp -fav qwerty/fi-latin9.map qwerty/fi.map + cp -fav qwerty/pt-latin9.map qwerty/pt.map + cp -fav qwerty/sv-latin1.map qwerty/se-latin1.map + mv -fv azerty/fr.map azerty/fr-old.map + cp -fav azerty/fr-latin9.map azerty/fr.map + cp -fav azerty/fr-latin9.map azerty/fr-latin0.map # legacy alias + + # Rename conflicting keymaps + mv -fv dvorak/no.map dvorak/no-dvorak.map + mv -fv fgGIod/trf.map fgGIod/trf-fgGIod.map + mv -fv olpc/es.map olpc/es-olpc.map + mv -fv olpc/pt.map olpc/pt-olpc.map + mv -fv qwerty/cz.map qwerty/cz-qwerty.map ) + +# Apply a euro fix for the nl.map from alienBOB: +zcat $CWD/sources/nl.euro.diff.gz | patch -p1 || exit 1 + +# Configure: +./configure \ + --prefix=/usr \ + --localedir=/usr/share/locale/ \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ + --datadir=/usr/share/kbd \ + --enable-nls || exit 1 + +# Build: +make $NUMJOBS || exit 1 + +# Install into package: +make install DESTDIR=$PKG || exit 1 +# This is where it's always been in Slackware, so let's move it back: +( cd $PKG + mkdir -vpm755 bin + mv -fv usr/bin/loadkeys bin/ + cd usr/bin ; ln -vsf ../../bin/loadkeys . ) + +# ro_win.map.gz is useless +rm -fv $PKG/usr/share/kbd/keymaps/i386/qwerty/ro_win.map.gz + +# The rhpl keyboard layout table is indexed by kbd layout names, so we need a +# Korean keyboard +ln -vfs us.map.gz $PKG/usr/share/kbd/keymaps/i386/qwerty/ko.map.gz + +# Install the setup script that will be run from the Slackware installer: +mkdir -pm755 $PKG/var/log/setup +install -vpm755 $CWD/setup.setconsolefont $PKG/var/log/setup/ +install -vpm755 $CWD/setconsolefont $PKG/usr/bin/ + +# Copy docs: +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + ChangeLog COPYING README doc/* \ + $PKG/usr/doc/$PKGNAM-$VERSION +rm -f $PKG/usr/doc/$PKGNAM-$VERSION/kbd.FAQ.sgml + +# Additional keymaps: +# This is the keymap for Speakup (http://linux-speakup.org) users: +cat $CWD/sources/speakupmap.map.gz > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakupmap.map.gz +# Another keymap for Speakup from Thomas Ward, for JFW users. +tar xvf $CWD/sources/speakup-jfw.tar.gz +( cd speakup-jfw + cat speakup-jfw.map | gzip -9c > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakup-jfw.map.gz + cat readme > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakup-jfw.readme ) + +# Create the default run control script which will set the +# console font to the default: +mkdir -pm755 $PKG/etc/rc.d +cat << EOF > $PKG/etc/rc.d/rc.font.new +#!/bin/sh +# +# This selects your default screen font from among the ones in +# /usr/share/kbd/consolefonts. +# +setfont -v +EOF +chmod 755 $PKG/etc/rc.d/rc.font.new + +# Create package post-install script: +mkdir -p $PKG/install +cat << EOF > $PKG/install/doinst.sh +#if [ -r etc/rc.d/rc.font ]; then +# rm -f etc/rc.d/rc.font.new +#else +# mv etc/rc.d/rc.font.new etc/rc.d/rc.font +#fi +EOF + +# Compress man pages: +( cd $PKG/usr/man + find . -name "*.?" -type f | xargs gzip -9 +) + +# Install package description: +install -vpm644 $CWD/slack-desc $PKG/install/ + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +cd $PKG +makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz +#EOF diff --git a/source/a/kbd/setconsolefont b/source/a/kbd/setconsolefont new file mode 100644 index 000000000..d4cfb875a --- /dev/null +++ b/source/a/kbd/setconsolefont @@ -0,0 +1,384 @@ +#!/bin/sh + +# 06-May-2009 +# Updated by Stuart Winter <mozes@slackware.com> +# Run 'setfont' in a chroot. This makes setfont work +# correctly in the installer. + +if [ "$TMP" = "" ]; then + TMP=/var/log/setup/tmp +fi + +load_font() { + if [ ! -z "$T_PX" ]; then + CHROOT="chroot $T_PX" + fi + + $CHROOT setfont $* + if [ ! $? = 0 ]; then + if [ -r $T_PX/usr/share/kbd/consolefonts/$1 ]; then + $CHROOT setfont $T_PX/usr/share/kbd/consolefonts/$* 1> /dev/null 2> /dev/null + elif [ -r $T_PX/usr/lib/kbd/consolefonts/$1 ]; then + $CHROOT setfont $T_PX/usr/lib/kbd/consolefonts/$* 1> /dev/null 2> /dev/null + elif [ -r /var/adm/mount/live/usr/lib/kbd/consolefonts/$1 ]; then + $CHROOT setfont /var/adm/mount/live/usr/lib/kbd/consolefonts/$* 1> /dev/null 2> /dev/null + else # load default font + $CHROOT setfont + fi + fi +} + +# Determine effective root path: +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$1" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi + +if [ ! "$COLOR" = "off" -o -r $TMP/SeTcolor -o -r /tmp/SeTcolor ]; then # use color menus + if [ ! "$1" = "" ]; then + dialog --title "CONSOLE FONT CONFIGURATION" --defaultno --yesno "Would you like to try \ +out some custom screen fonts?" 5 60 + if [ $? = 1 ]; then + exit + fi + fi + REPLY=`mktemp -q $TMP/temp.XXXXXX` + FONT="161.cp.gz -16" + while [ 0 ]; do + dialog --default-item "$FONT" --title "SELECT A SCREEN FONT" --menu "Select one of the following \ +custom fonts. If you decide you like it, you can make it your new default \ +screen font. You'll be able to try as many of these as you like." 21 65 12 \ +"161.cp.gz -16" "" \ +"162.cp.gz -16" "" \ +"163.cp.gz -16" "" \ +"164.cp.gz -16" "" \ +"165.cp.gz -16" "" \ +"737.cp.gz -16" "" \ +"880.cp.gz -16" "" \ +"928.cp.gz -16" "" \ +"972.cp.gz -16" "" \ +"Agafari-12.psfu.gz" "" \ +"Agafari-14.psfu.gz" "" \ +"Agafari-16.psfu.gz" "" \ +"Cyr_a8x14.psfu.gz" "" \ +"Cyr_a8x16.psfu.gz" "" \ +"Cyr_a8x8.psfu.gz" "" \ +"Goha-12.psfu.gz" "" \ +"Goha-14.psfu.gz" "" \ +"Goha-16.psfu.gz" "" \ +"GohaClassic-12.psfu.gz" "" \ +"GohaClassic-14.psfu.gz" "" \ +"GohaClassic-16.psfu.gz" "" \ +"Lat2-Terminus16.psfu.gz" "" \ +"LatArCyrHeb-08.psfu.gz" "" \ +"LatArCyrHeb-14.psfu.gz" "" \ +"LatArCyrHeb-16+.psfu.gz" "" \ +"LatArCyrHeb-16.psfu.gz" "" \ +"LatArCyrHeb-19.psfu.gz" "" \ +"Mik_8x16.gz" "" \ +"UniCyrExt_8x16.psf.gz" "" \ +"UniCyr_8x14.psf.gz" "" \ +"UniCyr_8x16.psf.gz" "" \ +"UniCyr_8x8.psf.gz" "" \ +"alt-8x14.gz" "" \ +"alt-8x16.gz" "" \ +"alt-8x8.gz" "" \ +"altc-8x16.gz" "" \ +"aply16.psf.gz" "" \ +"arm8.fnt.gz" "" \ +"b.fnt.gz" "" \ +"c.fnt.gz" "" \ +"cp1250.psfu.gz" "" \ +"cp850-8x14.psfu.gz" "" \ +"cp850-8x16.psfu.gz" "" \ +"cp850-8x8.psfu.gz" "" \ +"cp857.08.gz" "" \ +"cp857.14.gz" "" \ +"cp857.16.gz" "" \ +"cp865-8x14.psfu.gz" "" \ +"cp865-8x16.psfu.gz" "" \ +"cp865-8x8.psfu.gz" "" \ +"cp866-8x14.psf.gz" "" \ +"cp866-8x16.psf.gz" "" \ +"cp866-8x8.psf.gz" "" \ +"cybercafe.fnt.gz" "" \ +"cyr-sun16.psfu.gz" "" \ +"default8x16.psfu.gz" "" \ +"default8x9.psfu.gz" "" \ +"drdos8x14.psfu.gz" "" \ +"drdos8x16.psfu.gz" "" \ +"drdos8x6.psfu.gz" "" \ +"drdos8x8.psfu.gz" "" \ +"gr737a-8x8.psfu.gz" "" \ +"gr737a-9x14.psfu.gz" "" \ +"gr737a-9x16.psfu.gz" "" \ +"gr737b-8x11.psfu.gz" "" \ +"gr737b-9x16-medieval.psfu.gz" "" \ +"gr737c-8x14.psfu.gz" "" \ +"gr737c-8x16.psfu.gz" "" \ +"gr737c-8x6.psfu.gz" "" \ +"gr737c-8x7.psfu.gz" "" \ +"gr737c-8x8.psfu.gz" "" \ +"gr737d-8x16.psfu.gz" "" \ +"gr928-8x16-thin.psfu.gz" "" \ +"gr928-9x14.psfu.gz" "" \ +"gr928-9x16.psfu.gz" "" \ +"gr928a-8x14.psfu.gz" "" \ +"gr928a-8x16.psfu.gz" "" \ +"gr928b-8x14.psfu.gz" "" \ +"gr928b-8x16.psfu.gz" "" \ +"greek-polytonic.psfu.gz" "" \ +"iso01-12x22.psfu.gz" "" \ +"iso01.08.gz" "" \ +"iso01.14.gz" "" \ +"iso01.16.gz" "" \ +"iso02-12x22.psfu.gz" "" \ +"iso02.08.gz" "" \ +"iso02.14.gz" "" \ +"iso02.16.gz" "" \ +"iso03.08.gz" "" \ +"iso03.14.gz" "" \ +"iso03.16.gz" "" \ +"iso04.08.gz" "" \ +"iso04.14.gz" "" \ +"iso04.16.gz" "" \ +"iso05.08.gz" "" \ +"iso05.14.gz" "" \ +"iso05.16.gz" "" \ +"iso06.08.gz" "" \ +"iso06.14.gz" "" \ +"iso06.16.gz" "" \ +"iso07.14.gz" "" \ +"iso07.16.gz" "" \ +"iso07u-16.psfu.gz" "" \ +"iso08.08.gz" "" \ +"iso08.14.gz" "" \ +"iso08.16.gz" "" \ +"iso09.08.gz" "" \ +"iso09.14.gz" "" \ +"iso09.16.gz" "" \ +"iso10.08.gz" "" \ +"iso10.14.gz" "" \ +"iso10.16.gz" "" \ +"koi8-14.psf.gz" "" \ +"koi8c-8x16.gz" "" \ +"koi8r-8x14.gz" "" \ +"koi8r-8x16.gz" "" \ +"koi8r-8x8.gz" "" \ +"koi8r.8x8.psfu.gz" "" \ +"koi8u_8x14.psfu.gz" "" \ +"koi8u_8x16.psfu.gz" "" \ +"koi8u_8x8.psfu.gz" "" \ +"lat0-08.psfu.gz" "" \ +"lat0-10.psfu.gz" "" \ +"lat0-12.psfu.gz" "" \ +"lat0-14.psfu.gz" "" \ +"lat0-16.psfu.gz" "" \ +"lat1-08.psfu.gz" "" \ +"lat1-10.psfu.gz" "" \ +"lat1-12.psfu.gz" "" \ +"lat1-14.psfu.gz" "" \ +"lat1-16.psfu.gz" "" \ +"lat2-08.psfu.gz" "" \ +"lat2-10.psfu.gz" "" \ +"lat2-12.psfu.gz" "" \ +"lat2-14.psfu.gz" "" \ +"lat2-16.psfu.gz" "" \ +"lat2a-16.psfu.gz" "" \ +"lat4-08.psfu.gz" "" \ +"lat4-10.psfu.gz" "" \ +"lat4-12.psfu.gz" "" \ +"lat4-14.psfu.gz" "" \ +"lat4-16+.psfu.gz" "" \ +"lat4-16.psfu.gz" "" \ +"lat4-19.psfu.gz" "" \ +"lat4a-08.psfu.gz" "" \ +"lat4a-10.psfu.gz" "" \ +"lat4a-12.psfu.gz" "" \ +"lat4a-14.psfu.gz" "" \ +"lat4a-16+.psfu.gz" "" \ +"lat4a-16.psfu.gz" "" \ +"lat4a-19.psfu.gz" "" \ +"lat5-12.psfu.gz" "" \ +"lat5-14.psfu.gz" "" \ +"lat5-16.psfu.gz" "" \ +"lat7-14.psfu.gz" "" \ +"lat7a-14.psfu.gz" "" \ +"lat7a-16.psf.gz" "" \ +"lat9-08.psf.gz" "" \ +"lat9-10.psf.gz" "" \ +"lat9-12.psf.gz" "" \ +"lat9-14.psf.gz" "" \ +"lat9-16.psf.gz" "" \ +"lat9u-08.psfu.gz" "" \ +"lat9u-10.psfu.gz" "" \ +"lat9u-12.psfu.gz" "" \ +"lat9u-14.psfu.gz" "" \ +"lat9u-16.psfu.gz" "" \ +"lat9v-08.psfu.gz" "" \ +"lat9v-10.psfu.gz" "" \ +"lat9v-12.psfu.gz" "" \ +"lat9v-14.psfu.gz" "" \ +"lat9v-16.psfu.gz" "" \ +"lat9w-08.psfu.gz" "" \ +"lat9w-10.psfu.gz" "" \ +"lat9w-12.psfu.gz" "" \ +"lat9w-14.psfu.gz" "" \ +"lat9w-16.psfu.gz" "" \ +"m.fnt.gz" "" \ +"ml.fnt.gz" "" \ +"mod_d.fnt.gz" "" \ +"mod_s.fnt.gz" "" \ +"mr.fnt.gz" "" \ +"mu.fnt.gz" "" \ +"r.fnt.gz" "" \ +"rl.fnt.gz" "" \ +"ro.fnt.gz" "" \ +"ruscii_8x16.psfu.gz" "" \ +"ruscii_8x8.psfu.gz" "" \ +"s.fnt.gz" "" \ +"sc.fnt.gz" "" \ +"scrawl_s.fnt.gz" "" \ +"scrawl_w.fnt.gz" "" \ +"sd.fnt.gz" "" \ +"sun12x22.psfu.gz" "" \ +"t.fnt.gz" "" \ +"t850b.fnt.gz" "" \ +"tcvn8x16.psf.gz" "" \ +"viscii10-8x16.psfu.gz" "" \ +2> $REPLY + if [ ! $? = 0 ]; then + load_font + exit + fi + FONT=`cat $REPLY` + rm -f $REPLY + load_font $FONT + dialog --title "SET AS DEFAULT FONT" --yesno "Well, what do you think? \ +If you'd like to make this your default font, select YES. You can change \ +the default font any time by typing 'setconsolefont' or by editing \ +/etc/rc.d/rc.font. If you don't \ +like this font, select NO, and you'll be returned to the font selection \ +menu. If you decide you want to stick with the default font, hit ESC or \ +CANCEL once you get to that menu." 11 60 + if [ $? = 0 ]; then + cat << EOF > $T_PX/etc/rc.d/rc.font +#!/bin/sh +# +# This selects your default screen font from among the ones in +# /usr/share/kbd/consolefonts. +# +setfont -v $FONT +EOF + chmod 755 $T_PX/etc/rc.d/rc.font + exit + else + load_font + fi + done +else # no color! + echo + echo -n "Would you like to try out some custom screen fonts ([y]es, [n]o)? " + read YESNO; + if [ "$YESNO" = "n" ]; then + exit + fi + while [ 0 ]; do + cat << EOF + +SELECT A SCREEN FONT. Your choices are: +161.cp.gz 162.cp.gz 163.cp.gz 164.cp.gz 165.cp.gz 737.cp.gz 880.cp.gz 928.cp.gz +972.cp.gz Agafari-12.psfu.gz Agafari-14.psfu.gz Agafari-16.psfu.gz +Cyr_a8x14.psfu.gz Cyr_a8x16.psfu.gz Cyr_a8x8.psfu.gz Goha-12.psfu.gz +Goha-14.psfu.gz Goha-16.psfu.gz GohaClassic-12.psfu.gz GohaClassic-14.psfu.gz +GohaClassic-16.psfu.gz Lat2-Terminus16.psfu.gz LatArCyrHeb-08.psfu.gz +LatArCyrHeb-14.psfu.gz LatArCyrHeb-16+.psfu.gz LatArCyrHeb-16.psfu.gz +LatArCyrHeb-19.psfu.gz Mik_8x16.gz UniCyrExt_8x16.psf.gz UniCyr_8x14.psf.gz +UniCyr_8x16.psf.gz UniCyr_8x8.psf.gz alt-8x14.gz alt-8x16.gz alt-8x8.gz +altc-8x16.gz aply16.psf.gz arm8.fnt.gz b.fnt.gz c.fnt.gz cp1250.psfu.gz +cp850-8x14.psfu.gz cp850-8x16.psfu.gz cp850-8x8.psfu.gz cp857.08.gz cp857.14.gz +cp857.16.gz cp865-8x14.psfu.gz cp865-8x16.psfu.gz cp865-8x8.psfu.gz +cp866-8x14.psf.gz cp866-8x16.psf.gz cp866-8x8.psf.gz cybercafe.fnt.gz +cyr-sun16.psfu.gz default8x16.psfu.gz default8x9.psfu.gz drdos8x14.psfu.gz +drdos8x16.psfu.gz drdos8x6.psfu.gz drdos8x8.psfu.gz gr737a-8x8.psfu.gz +gr737a-9x14.psfu.gz gr737a-9x16.psfu.gz gr737b-8x11.psfu.gz +gr737b-9x16-medieval.psfu.gz gr737c-8x14.psfu.gz gr737c-8x16.psfu.gz +gr737c-8x6.psfu.gz gr737c-8x7.psfu.gz gr737c-8x8.psfu.gz gr737d-8x16.psfu.gz +gr928-8x16-thin.psfu.gz gr928-9x14.psfu.gz gr928-9x16.psfu.gz +gr928a-8x14.psfu.gz gr928a-8x16.psfu.gz gr928b-8x14.psfu.gz gr928b-8x16.psfu.gz +greek-polytonic.psfu.gz iso01-12x22.psfu.gz iso01.08.gz iso01.14.gz iso01.16.gz +iso02-12x22.psfu.gz iso02.08.gz iso02.14.gz iso02.16.gz iso03.08.gz iso03.14.gz +iso03.16.gz iso04.08.gz iso04.14.gz iso04.16.gz iso05.08.gz iso05.14.gz +iso05.16.gz iso06.08.gz iso06.14.gz iso06.16.gz iso07.14.gz iso07.16.gz +iso07u-16.psfu.gz iso08.08.gz iso08.14.gz iso08.16.gz iso09.08.gz iso09.14.gz +iso09.16.gz iso10.08.gz iso10.14.gz iso10.16.gz koi8-14.psf.gz koi8c-8x16.gz +koi8r-8x14.gz koi8r-8x16.gz koi8r-8x8.gz koi8r.8x8.psfu.gz koi8u_8x14.psfu.gz +koi8u_8x16.psfu.gz koi8u_8x8.psfu.gz lat0-08.psfu.gz lat0-10.psfu.gz +lat0-12.psfu.gz lat0-14.psfu.gz lat0-16.psfu.gz lat1-08.psfu.gz lat1-10.psfu.gz +lat1-12.psfu.gz lat1-14.psfu.gz lat1-16.psfu.gz lat2-08.psfu.gz lat2-10.psfu.gz +lat2-12.psfu.gz lat2-14.psfu.gz lat2-16.psfu.gz lat2a-16.psfu.gz lat4-08.psfu.gz +lat4-10.psfu.gz lat4-12.psfu.gz lat4-14.psfu.gz lat4-16+.psfu.gz lat4-16.psfu.gz +lat4-19.psfu.gz lat4a-08.psfu.gz lat4a-10.psfu.gz lat4a-12.psfu.gz +lat4a-14.psfu.gz lat4a-16+.psfu.gz lat4a-16.psfu.gz lat4a-19.psfu.gz +lat5-12.psfu.gz lat5-14.psfu.gz lat5-16.psfu.gz lat7-14.psfu.gz lat7a-14.psfu.gz +lat7a-16.psf.gz lat9-08.psf.gz lat9-10.psf.gz lat9-12.psf.gz lat9-14.psf.gz +lat9-16.psf.gz lat9u-08.psfu.gz lat9u-10.psfu.gz lat9u-12.psfu.gz +lat9u-14.psfu.gz lat9u-16.psfu.gz lat9v-08.psfu.gz lat9v-10.psfu.gz +lat9v-12.psfu.gz lat9v-14.psfu.gz lat9v-16.psfu.gz lat9w-08.psfu.gz +lat9w-10.psfu.gz lat9w-12.psfu.gz lat9w-14.psfu.gz lat9w-16.psfu.gz m.fnt.gz +ml.fnt.gz mod_d.fnt.gz mod_s.fnt.gz mr.fnt.gz mu.fnt.gz r.fnt.gz rl.fnt.gz +ro.fnt.gz ruscii_8x16.psfu.gz ruscii_8x8.psfu.gz s.fnt.gz sc.fnt.gz +scrawl_s.fnt.gz scrawl_w.fnt.gz sd.fnt.gz sun12x22.psfu.gz t.fnt.gz t850b.fnt.gz +tcvn8x16.psf.gz viscii10-8x16.psfu.gz + +EOF + echo -n "Which font would you like (or ENTER to quit)? " + read FONT; + if [ "$FONT" = "" ]; then + load_font + echo + exit + fi + if [ ! -r $T_PX/usr/share/kbd/consolefonts/$FONT -a ! -r \ + /var/adm/mount/usr/share/kbd/consolefonts/$FONT ]; then + cat << EOF + +Sorry, I couldn't find that font. Try again. + +EOF + fi + load_font $FONT + cat << EOF + +SET AS DEFAULT FONT + +Well, what do you think? If you'd like to make this your default font, select +YES. You can change the default font any time by typing 'setconsolefont' or by +editing /etc/rc.d/rc.font. If you don't like this font, select NO, and you'll +be able to select a different one. If you decide you want to stick with the +default font, hit RETURN once you return to the font selection menu. + +EOF + echo -n "Would you like to have this font loaded by default ([y]es, [n]o)? " + read DEF + if [ "$DEF" = "YES" -o "$DEF" = "y" ]; then + cat << EOF > $T_PX/etc/rc.d/rc.font +#!/bin/sh +# +# This selects your default screen font from among the ones in +# /usr/share/kbd/consolefonts. +# +setfont -v $FONT +EOF + chmod 755 $T_PX/etc/rc.d/rc.font + echo + exit + else + load_font + fi + echo + done +fi diff --git a/source/a/kbd/setup.setconsolefont b/source/a/kbd/setup.setconsolefont new file mode 100644 index 000000000..615cbaab0 --- /dev/null +++ b/source/a/kbd/setup.setconsolefont @@ -0,0 +1,10 @@ +#!/bin/sh +#BLURB="Select a font for the console" + +# These platforms are headless so we don't need to configure +# this package. +# +# Silently exit if we find ourselves on one of these platforms +egrep -q "SheevaPlug" /proc/cpuinfo > /dev/null 2>&1 && exit + +sh usr/bin/setconsolefont $* diff --git a/source/a/kbd/slack-desc b/source/a/kbd/slack-desc new file mode 100644 index 000000000..d912c1126 --- /dev/null +++ b/source/a/kbd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kbd: kbd (keyboard maps and console fonts) +kbd: +kbd: Load and save keyboard mappings. Needed if you are not using the US +kbd: keyboard map. This package also contains utilities to change your +kbd: console fonts - if you install it you'll get a menu later on that lets +kbd: you select from many different fonts. If you like one, you can make +kbd: it your default font. A new default font can be chosen at any time by +kbd: typing 'setconsolefont'. +kbd: +kbd: +kbd: diff --git a/source/a/kbd/sources/kbd-1.15-keycodes-man.patch b/source/a/kbd/sources/kbd-1.15-keycodes-man.patch new file mode 100644 index 000000000..d18a8c8b5 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-keycodes-man.patch @@ -0,0 +1,52 @@ +diff -up kbd-1.15/man/man1/showkey.1_old kbd-1.15/man/man1/showkey.1 +--- kbd-1.15/man/man1/showkey.1_old 2008-03-13 17:46:23.000000000 +0100 ++++ kbd-1.15/man/man1/showkey.1 2008-12-10 12:31:38.000000000 +0100 +@@ -80,6 +80,19 @@ corresponds to what the keyboard hardwar + to know the scan codes sent by various keys it is better to boot a + 2.4 kernel. Since 2.6.9 there also is the boot option atkbd.softraw=0 + that tells the 2.6 kernel to return the actual scan codes. ++ ++.SH NOTES ++The raw scan codes are available only on AT and PS/2 keyboards, ++and even then they are disabled unless the ++.B atkbd.softraw=0 ++kernel parameter is used. ++When the raw scan codes are not available, the kernel uses a fixed built-in ++table to produce scan codes from keycodes. Thus, ++.BR setkeycodes (8) ++can affect the output of ++.B showkey ++in scan code dump mode. ++ + .SH "SEE ALSO" + .BR loadkeys (1), + .BR dumpkeys (1), +diff -up kbd-1.15/man/man8/setkeycodes.8_old kbd-1.15/man/man8/setkeycodes.8 +--- kbd-1.15/man/man8/setkeycodes.8_old 2008-12-10 12:31:56.000000000 +0100 ++++ kbd-1.15/man/man8/setkeycodes.8 2008-12-10 12:37:36.000000000 +0100 +@@ -41,6 +41,10 @@ to showkey(1), the command + will assign the keycode 112 to it, and then loadkeys(1) can be used + to define the function of this key. + ++USB keyboards have standardized keycodes and ++.B setkeycodes ++doesn't affect them at all. ++ + .SH "2.6 KERNELS" + In 2.6 kernels key codes lie in the range 1-255, instead of 1-127. + (It might be best to confine oneself to the range 1-239.) +@@ -54,6 +58,14 @@ None. + .SH BUGS + The keycodes of X have nothing to do with those of Linux. + Unusual keys can be made visible under Linux, but not under X. ++ ++.B setkeycodes ++affects only the "first" input device ++that has modifiable scancode-to-keycode mapping. ++If there is more than one such device, ++.B setkeycodes ++cannot change the mapping of other devices than the "first" one. ++ + .SH "SEE ALSO" + .I "dumpkeys (1), loadkeys (1), showkey (1), getkeycodes (8)" + diff --git a/source/a/kbd/sources/kbd-1.15-po.patch b/source/a/kbd/sources/kbd-1.15-po.patch new file mode 100644 index 000000000..0221f60c9 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-po.patch @@ -0,0 +1,31 @@ +diff -up kbd-1.15/po/Makefile.in_old kbd-1.15/po/Makefile.in +--- kbd-1.15/po/Makefile.in_old 2008-10-23 21:03:59.000000000 +0200 ++++ kbd-1.15/po/Makefile.in 2008-12-09 15:35:58.000000000 +0100 +@@ -4,10 +4,10 @@ srcdir = @srcdir@ + + prefix = @prefix@ + datarootdir = @datarootdir@ +-datadir = @datadir@ +-localedir = $(DESTDIR)$(datadir)/locale +-gnulocaledir = $(DESTDIR)$(datadir)/locale +-gettextsrcdir = $(DESTDIR)$(datadir)/gettext/po ++datadir = $(DESTDIR)@datadir@ ++localedir = $(DESTDIR)@localedir@ ++gnulocaledir = $(DESTDIR)@localedir@ ++gettextsrcdir = $(datadir)/gettext/po + + FOREIGN = @FOREIGN@ + HAVE_XGETTEXT = @HAVE_XGETTEXT@ +@@ -36,10 +36,10 @@ INCLUDES = -I.. -I$(INTL) + COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) + + # Enter here all .po files +-POFILES = cs.po da.po de.po el.po es.po fr.po gr.po nl.po pl.po \ ++POFILES = cs.po da.po de.po el.po es.po fr.po nl.po pl.po \ + ro.po ru.po sv.po tr.po + # the same but with .gmo +-GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo gr.gmo nl.gmo \ ++GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo nl.gmo \ + pl.gmo ro.gmo ru.gmo sv.gmo tr.gmo + + CATALOGS = $(GMOFILES) diff --git a/source/a/kbd/sources/kbd-1.15-quiet_doc.patch b/source/a/kbd/sources/kbd-1.15-quiet_doc.patch new file mode 100644 index 000000000..eca867b85 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-quiet_doc.patch @@ -0,0 +1,34 @@ +diff -up kbd-1.15/man/man1/loadkeys.1.in_old kbd-1.15/man/man1/loadkeys.1.in +--- kbd-1.15/man/man1/loadkeys.1.in_old 2008-10-23 21:03:59.000000000 +0200 ++++ kbd-1.15/man/man1/loadkeys.1.in 2009-03-05 13:11:08.000000000 +0100 +@@ -19,6 +19,8 @@ loadkeys \- load keyboard translation ta + ] [ + .I -m --mktable + ] [ ++.I -q --quiet ++] [ + .I -s --clearstrings + ] [ + .I -v --verbose +@@ -148,6 +150,10 @@ command (and does not modify the current + .B loadkeys + prints its version number and a short usage message to the programs + standard error output and exits. ++.TP ++.B \-q \-\-quiet ++.B loadkeys ++suppresses all normal output. + .SH WARNING + Note that anyone having read access to + .B /dev/console +diff -up kbd-1.15/src/loadkeys.c_old kbd-1.15/src/loadkeys.c +--- kbd-1.15/src/loadkeys.c_old 2008-10-23 21:03:59.000000000 +0200 ++++ kbd-1.15/src/loadkeys.c 2009-03-05 13:09:00.000000000 +0100 +@@ -1966,6 +1966,7 @@ usage(void) { + " -d --default load \"%s\"\n" + " -h --help display this help text\n" + " -m --mktable output a \"defkeymap.c\" to stdout\n" ++" -q --quiet suppress all normal output\n" + " -s --clearstrings clear kernel string table\n" + " -u --unicode implicit conversion to Unicode\n" + " -v --verbose report the changes\n"), PACKAGE_VERSION, DEFMAP); diff --git a/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch b/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch new file mode 100644 index 000000000..5e8350a86 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch @@ -0,0 +1,15 @@ +diff -up kbd-1.15/configure_old kbd-1.15/configure +--- kbd-1.15/configure_old 2009-01-08 15:11:04.000000000 +0100 ++++ kbd-1.15/configure 2009-01-08 15:11:45.000000000 +0100 +@@ -7637,8 +7637,9 @@ fi + + + case $host_cpu in +- i?86*) RESIZECONS_PROGS=yes ;; +- *) RESIZECONS_PROGS=no ;; ++ i?86*) RESIZECONS_PROGS=yes ;; ++ x86_64*) RESIZECONS_PROGS=yes ;; ++ *) RESIZECONS_PROGS=no ;; + esac + if test "$RESIZECONS_PROGS" = "yes"; then + RESIZECONS_PROGS_TRUE= diff --git a/source/a/kbd/sources/kbd-1.15-sparc.patch b/source/a/kbd/sources/kbd-1.15-sparc.patch new file mode 100644 index 000000000..a858a253a --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-sparc.patch @@ -0,0 +1,97 @@ +diff -up kbd-1.15/man/man8/kbdrate.8_old kbd-1.15/man/man8/kbdrate.8 +--- kbd-1.15/man/man8/kbdrate.8_old 2008-12-10 14:20:33.000000000 +0100 ++++ kbd-1.15/man/man8/kbdrate.8 2008-12-10 14:41:10.000000000 +0100 +@@ -22,7 +22,7 @@ Using + without any options will reset the repeat rate to 10.9 characters per second (cps) + and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems. + These are the IBM defaults. On SPARC-based systems it will reset the repeat rate +-to 5 cps and the delay to 200 ms. ++to 20 cps and the delay to 200 ms. + + .SH OPTIONS + .TP +@@ -69,3 +69,5 @@ When these ioctls fail an ioport interfa + .I /etc/rc.local + .br + .I /dev/port ++.br ++.I /dev/kbd +diff -up kbd-1.15/src/kbdrate.c_old kbd-1.15/src/kbdrate.c +--- kbd-1.15/src/kbdrate.c_old 2008-12-10 14:00:25.000000000 +0100 ++++ kbd-1.15/src/kbdrate.c 2008-12-10 14:20:11.000000000 +0100 +@@ -77,7 +77,6 @@ beats rebuilding the kernel! + + #ifdef __sparc__ + #include <asm/param.h> +-#include <asm/kbio.h> + #endif + + #ifndef KDKBDREP +@@ -109,11 +108,15 @@ static int valid_delays[] = { 250, 500, + + static int + KDKBDREP_ioctl_ok(double rate, int delay, int silent) { ++#if defined(KDKBDREP) && !defined(__sparc__) + /* + * This ioctl is defined in <linux/kd.h> but is not + * implemented anywhere - must be in some m68k patches. ++ * We cannot blindly try unimplemented ioctls on sparc64 - ++ * the 32<->64bit transition layer does not like it. + * Since 2.4.9 also on i386. +- */ ++ */ ++ + struct my_kbd_repeat kbdrep_s; + + /* don't change, just test */ +@@ -177,6 +180,9 @@ KDKBDREP_ioctl_ok(double rate, int delay + rate, kbdrep_s.delay ); + + return 1; /* success! */ ++#else /* no KDKBDREP or __sparc__ */ ++ return 0; ++#endif /* KDKBDREP */ + } + + static int +@@ -221,7 +227,7 @@ sigalrmhandler( int sig ) { + int + main( int argc, char **argv ) { + #ifdef __sparc__ +- double rate = 5.0; /* Default rate */ ++ double rate = 20.0; /* Default rate */ + int delay = 200; /* Default delay */ + #else + double rate = 10.9; /* Default rate */ +@@ -272,7 +278,9 @@ main( int argc, char **argv ) { + + + /* The ioport way */ ++ /* The ioport way - will crash on sparc */ + ++#ifndef __sparc__ + for (i = 0; i < RATE_COUNT; i++) + if (rate * 10 >= valid_rates[i]) { + value &= 0x60; +@@ -335,5 +343,7 @@ main( int argc, char **argv ) { + valid_rates[value & 0x1f] / 10.0, + valid_delays[ (value & 0x60) >> 5 ] ); + ++#endif ++ + return 0; + } +diff -up kbd-1.15/src/setleds.c_old kbd-1.15/src/setleds.c +--- kbd-1.15/src/setleds.c_old 2008-12-10 14:00:02.000000000 +0100 ++++ kbd-1.15/src/setleds.c 2008-12-10 14:00:16.000000000 +0100 +@@ -14,10 +14,6 @@ + #include "nls.h" + #include "version.h" + +-#ifdef __sparc__ +-#include <asm/kbio.h> +-#endif +- + static void + usage(void) + { diff --git a/source/a/kbd/sources/kbd-1.15-unicode_start.patch b/source/a/kbd/sources/kbd-1.15-unicode_start.patch new file mode 100644 index 000000000..d3dab3fe3 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15-unicode_start.patch @@ -0,0 +1,21 @@ +diff -up kbd-1.15/src/unicode_start_old kbd-1.15/src/unicode_start +--- kbd-1.15/src/unicode_start_old 2009-01-08 13:34:10.000000000 +0100 ++++ kbd-1.15/src/unicode_start 2009-01-08 14:02:12.000000000 +0100 +@@ -72,6 +72,9 @@ stty iutf8 + # have a Unicode map attached, or explicitly specified, e.g., + # by giving `def.uni' as a second argument. + ++DEFAULT_UNICODE_FONT=LatArCyrHeb-16 ++# Also drdos8x16 is a good candidate. ++ + case "$#" in + 2) + setfont "$1" -u "$2" +@@ -80,6 +83,7 @@ case "$#" in + setfont "$1" + ;; + 0) ++ setfont $DEFAULT_UNICODE_FONT + ;; + *) + echo "usage: unicode_start [font [unicode map]]" diff --git a/source/a/kbd/sources/kbd-1.15.tar.bz2.sign b/source/a/kbd/sources/kbd-1.15.tar.bz2.sign new file mode 100644 index 000000000..39388b383 --- /dev/null +++ b/source/a/kbd/sources/kbd-1.15.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBJj684yGugalF9Dw4RAqQuAJ9fBsk3RWp6BT4UWHjceFn5YuEBygCff3dW +qo/ACrIhyBx/eiZEpao8N4o= +=0zxS +-----END PGP SIGNATURE----- diff --git a/source/a/kbd/sources/nl.euro.diff b/source/a/kbd/sources/nl.euro.diff new file mode 100644 index 000000000..655a7e228 --- /dev/null +++ b/source/a/kbd/sources/nl.euro.diff @@ -0,0 +1,10 @@ +--- ./data/keymaps/i386/qwerty/nl.map.orig 2004-01-03 09:01:22.000000000 -0800 ++++ ./data/keymaps/i386/qwerty/nl.map 2004-05-29 21:16:31.000000000 -0700 +@@ -12,6 +12,7 @@ + keymaps 0-6,8-9,12 + alt_is_meta + include "qwerty-layout" ++ altgr keycode 18 = euro + altgr keycode 19 = paragraph + altgr keycode 31 = ssharp + altgr keycode 44 = guillemotleft diff --git a/source/a/kbd/sources/speakupmap.map b/source/a/kbd/sources/speakupmap.map new file mode 100644 index 000000000..9c73e35df --- /dev/null +++ b/source/a/kbd/sources/speakupmap.map @@ -0,0 +1,308 @@ +# us.map +# with some additions from quinlan@spectrum.cs.bucknell.edu (Daniel Quinlan) +# 14 Mar 1994 +keymaps 0-2,4-6,8,9,12,13 +keycode 1 = Escape Escape + alt keycode 1 = Meta_Escape +keycode 2 = one exclam + alt keycode 2 = Meta_one + alt shift keycode 2 = Meta_exclam +keycode 3 = two at at + control keycode 3 = nul + control shift keycode 3 = nul + alt keycode 3 = Meta_two + alt shift keycode 3 = Meta_at +keycode 4 = three numbersign + control keycode 4 = Escape + alt keycode 4 = Meta_three + alt shift keycode 4 = Meta_numbersign +keycode 5 = four dollar dollar + control keycode 5 = Control_backslash + alt keycode 5 = Meta_four + alt shift keycode 5 = Meta_dollar +keycode 6 = five percent + control keycode 6 = Control_bracketright + alt keycode 6 = Meta_five + alt shift keycode 6 = Meta_percent +keycode 7 = six asciicircum + control keycode 7 = Control_asciicircum + alt keycode 7 = Meta_six + alt shift keycode 7 = Meta_asciicircum +keycode 8 = seven ampersand braceleft + control keycode 8 = Control_underscore + alt keycode 8 = Meta_seven +keycode 9 = eight asterisk bracketleft + control keycode 9 = Delete + alt keycode 9 = Meta_eight +keycode 10 = nine parenleft bracketright + alt keycode 10 = Meta_nine +keycode 11 = zero parenright braceright + alt keycode 11 = Meta_zero +keycode 12 = minus underscore backslash + control keycode 12 = Control_underscore + control shift keycode 12 = Control_underscore + alt keycode 12 = Meta_minus +keycode 13 = equal plus + alt keycode 13 = Meta_equal +keycode 14 = Delete Delete + alt keycode 14 = Meta_Delete +keycode 15 = Tab Tab + alt keycode 15 = Meta_Tab +keycode 16 = q +keycode 17 = w +keycode 18 = e +keycode 19 = r +keycode 20 = t +keycode 21 = y +keycode 22 = u +keycode 23 = i +keycode 24 = o +keycode 25 = p +keycode 26 = bracketleft braceleft + control keycode 26 = Escape + alt keycode 26 = Meta_bracketleft + alt shift keycode 26 = Meta_braceleft +keycode 27 = bracketright braceright asciitilde + control keycode 27 = Control_bracketright + alt keycode 27 = Meta_bracketright + alt shift keycode 27 = Meta_braceright +keycode 28 = Return + alt keycode 28 = 0x080d +keycode 29 = Control +keycode 30 = a +keycode 31 = s +keycode 32 = d +keycode 33 = f +keycode 34 = g +keycode 35 = h +keycode 36 = j +keycode 37 = k +keycode 38 = l +keycode 39 = semicolon colon + alt keycode 39 = Meta_semicolon +keycode 40 = apostrophe quotedbl + control keycode 40 = Control_g + alt keycode 40 = Meta_apostrophe +keycode 41 = grave asciitilde + control keycode 41 = nul + alt keycode 41 = Meta_grave +keycode 42 = Shift +keycode 43 = backslash bar + control keycode 43 = Control_backslash + alt keycode 43 = Meta_backslash + alt shift keycode 43 = Meta_bar +keycode 44 = z +keycode 45 = x +keycode 46 = c +keycode 47 = v +keycode 48 = b +keycode 49 = n +keycode 50 = m +keycode 51 = comma less + alt keycode 51 = Meta_comma + alt shift keycode 51 = Meta_less +keycode 52 = period greater + alt keycode 52 = Meta_period + alt shift keycode 52 = Meta_greater +keycode 53 = slash question + control keycode 53 = Delete + alt keycode 53 = Meta_slash +keycode 54 = Shift +keycode 55 = 0x0d26 +#keycode 55 = KP_Multiply + altgr keycode 55 = 0x0406 +keycode 56 = Alt +keycode 57 = space space + control keycode 57 = nul + alt keycode 57 = Meta_space +keycode 58 = Caps_Lock +keycode 59 = F1 F11 Console_13 + control keycode 59 = F1 + alt keycode 59 = Console_1 + control alt keycode 59 = Console_1 +keycode 60 = F2 F12 Console_14 + control keycode 60 = F2 + alt keycode 60 = Console_2 + control alt keycode 60 = Console_2 +keycode 61 = F3 F13 Console_15 + control keycode 61 = F3 + alt keycode 61 = Console_3 + control alt keycode 61 = Console_3 +keycode 62 = F4 F14 Console_16 + control keycode 62 = F4 + alt keycode 62 = Console_4 + control alt keycode 62 = Console_4 +keycode 63 = F5 F15 Console_17 + control keycode 63 = F5 + alt keycode 63 = Console_5 + control alt keycode 63 = Console_5 +keycode 64 = F6 F16 Console_18 + control keycode 64 = F6 + alt keycode 64 = Console_6 + control alt keycode 64 = Console_6 +keycode 65 = F7 F17 Console_19 + control keycode 65 = F7 + alt keycode 65 = Console_7 + control alt keycode 65 = Console_7 +keycode 66 = F8 F18 Console_20 + control keycode 66 = F8 + alt keycode 66 = Console_8 + control alt keycode 66 = Console_8 +keycode 67 = F9 F19 Console_21 + control keycode 67 = F9 + alt keycode 67 = Console_9 + control alt keycode 67 = Console_9 +keycode 68 = F10 F20 Console_22 + control keycode 68 = F10 + alt keycode 68 = Console_10 + control alt keycode 68 = Console_10 +keycode 69 = Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers + control keycode 70 = Show_State + alt keycode 70 = Scroll_Lock +keycode 71 = 0x0d0b + altgr keycode 71 = 0x0d0f +#keycode 71 = KP_7 + alt keycode 71 = Ascii_7 +keycode 72 = 0x0d0a + altgr keycode 72 = 0x0d20 +#keycode 72 = KP_8 + alt keycode 72 = Ascii_8 +keycode 73 = 0x0d0c + altgr keycode 73 = 0x0d0d +#keycode 73 = KP_9 + alt keycode 73 = Ascii_9 +keycode 74 = 0x0d1e + altgr keycode 74 = 0x0d24 +keycode 75 = 0x0d08 + altgr keycode 75 = 0x0d22 +#keycode 75 = KP_4 + alt keycode 75 = Ascii_4 +keycode 76 = 0x0d07 +#keycode 76 = KP_5 + altgr keycode 76 = 0x0d12 + alt keycode 76 = Ascii_5 +keycode 77 = 0x0d09 + altgr keycode 77 = 0x0d23 +#keycode 77 = KP_6 + alt keycode 77 = Ascii_6 +#keycode 78 = KP_Add +keycode 78 = 0x0d14 + altgr keycode 78 = 0x0d21 +keycode 79 = 0x0d05 +#keycode 79 = KP_1 + altgr keycode 79 = 0x0d10 + alt keycode 79 = Ascii_1 +keycode 80 = 0x0d04 +#keycode 80 = KP_2 + altgr keycode 80 = 0x0d11 + alt keycode 80 = Ascii_2 +keycode 81 = 0x0d06 + altgr keycode 81 = 0x0d0e +#keycode 81 = KP_3 + alt keycode 81 = Ascii_3 +#keycode 82 = 0x0d14 +keycode 82 = AltGr +#keycode 82 = KP_0 + alt keycode 82 = Ascii_0 +#keycode 83 = KP_Period +keycode 83 = 0x0d1b + altgr keycode 83 = 0x0d1d + altgr control keycode 83 = Boot + control alt keycode 83 = Boot +keycode 84 = Last_Console +keycode 85 = +keycode 86 = less greater bar + alt keycode 86 = Meta_less +keycode 87 = F11 F11 Console_23 + control keycode 87 = F11 + alt keycode 87 = Console_11 + control alt keycode 87 = Console_11 +keycode 88 = F12 F12 Console_24 + control keycode 88 = F12 + alt keycode 88 = Console_12 + control alt keycode 88 = Console_12 +keycode 89 = +keycode 90 = +keycode 91 = +keycode 92 = +keycode 93 = +keycode 94 = +keycode 95 = +keycode 96 = 0x0d03 + altgr keycode 96 = 0x0d1c +#keycode 96 = KP_Enter +keycode 97 = Control +keycode 98 = 0x0d27 +#keycode 98 = KP_Divide + altgr keycode 98 = 0x0d28 +#keycode 99 = Control_backslash +keycode 99 = 0x0d25 + control keycode 99 = Control_backslash + alt keycode 99 = Control_backslash +keycode 100 = Alt +keycode 101 = Break +keycode 102 = Find +keycode 103 = Up +keycode 104 = Prior + shift keycode 104 = Scroll_Backward +keycode 105 = Left + alt keycode 105 = Decr_Console +keycode 106 = Right + alt keycode 106 = Incr_Console +keycode 107 = Select +keycode 108 = Down +keycode 109 = Next + shift keycode 109 = Scroll_Forward +keycode 110 = Insert +keycode 111 = Remove + altgr control keycode 111 = Boot + control alt keycode 111 = Boot +keycode 112 = +keycode 113 = +keycode 114 = +keycode 115 = +keycode 116 = +keycode 117 = +keycode 118 = +keycode 119 = +keycode 120 = +keycode 121 = +keycode 122 = +keycode 123 = +keycode 124 = +keycode 125 = +keycode 126 = +keycode 127 = +string F1 = "\033[[A" +string F2 = "\033[[B" +string F3 = "\033[[C" +string F4 = "\033[[D" +string F5 = "\033[[E" +string F6 = "\033[17~" +string F7 = "\033[18~" +string F8 = "\033[19~" +string F9 = "\033[20~" +string F10 = "\033[21~" +string F11 = "\033[23~" +string F12 = "\033[24~" +string F13 = "\033[25~" +string F14 = "\033[26~" +string F15 = "\033[28~" +string F16 = "\033[29~" +string F17 = "\033[31~" +string F18 = "\033[32~" +string F19 = "\033[33~" +string F20 = "\033[34~" +string Find = "\033[1~" +string Insert = "\033[2~" +string Remove = "\033[3~" +string Select = "\033[4~" +string Prior = "\033[5~" +string Next = "\033[6~" +string F21 = "" +string F22 = "" +string F23 = "" +string F24 = "" +string F25 = "" +string F26 = "" diff --git a/source/a/less/less.SlackBuild b/source/a/less/less.SlackBuild new file mode 100755 index 000000000..643359571 --- /dev/null +++ b/source/a/less/less.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-less + +VERSION=${VERSION:-418} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf less-$VERSION +tar xvf $CWD/less-$VERSION.tar.bz2 || exit 1 +cd less-$VERSION +zcat $CWD/less.sysconfdir.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +cat less > $PKG/usr/bin/less +cat lesskey > $PKG/usr/bin/lesskey +cat lessecho > $PKG/usr/bin/lessecho +zcat $CWD/lesspipe.sh.gz > $PKG/usr/bin/lesspipe.sh +chmod 755 $PKG/usr/bin/* + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/less-$VERSION +cp -a \ + COPYING* LICENSE README NEWS \ + $PKG/usr/doc/less-$VERSION + +mkdir -p $PKG/usr/man/man1 +for page in less.nro lesskey.nro ; do + cat $page | gzip -9c > $PKG/usr/man/man1/`basename $page .nro`.1.gz +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/less-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/less/less.sysconfdir.diff b/source/a/less/less.sysconfdir.diff new file mode 100644 index 000000000..25c5bb584 --- /dev/null +++ b/source/a/less/less.sysconfdir.diff @@ -0,0 +1,15 @@ +--- ./less.nro.orig Mon May 27 17:14:24 2002 ++++ ./less.nro Mon May 27 17:14:46 2002 +@@ -947,10 +947,10 @@ + Otherwise, + .I less + looks in a standard place for the system-wide lesskey file: +-On Unix systems, the system-wide lesskey file is /usr/local/etc/sysless. ++On Unix systems, the system-wide lesskey file is /etc/sysless. + (However, if + .I less +-was built with a different sysconf directory than /usr/local/etc, ++was built with a different sysconf directory than /etc, + that directory is where the sysless file is found.) + On MS-DOS and Windows systems, the system-wide lesskey file is c:\\_sysless. + On OS/2 systems, the system-wide lesskey file is c:\\sysless.ini. diff --git a/source/a/less/lesspipe.sh b/source/a/less/lesspipe.sh new file mode 100644 index 000000000..2d660522d --- /dev/null +++ b/source/a/less/lesspipe.sh @@ -0,0 +1,67 @@ +#!/bin/sh +# +# Copyright 1997, 1998, 1999, 2000 Patrick Volkerding, Moorhead, MN, USA +# Copyright 2001, 2002 Slackware Linux, Inc, Concord, CA, USA +# Copyright 2006, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# This is a preprocessor for 'less'. It is used when this environment +# variable is set: LESSOPEN="|lesspipe.sh %s" + +lesspipe() { + case "$1" in + *.tar) tar tvvf "$1" 2>/dev/null ;; + *.tgz | *.tar.gz | *.tar.Z | *.tar.z | *.tar.bz2 | *.tbz ) tar tvvf "$1" 2>/dev/null ;; + *.tlz | *.tar.lzma ) lzma -dc "$1" 2> /dev/null | tar tvvf - 2> /dev/null ;; + *.txz | *.tar.xz ) xz -dc "$1" 2> /dev/null | tar tvvf - 2> /dev/null ;; + *.zip) unzip -l "$1" 2>/dev/null ;; + *.rpm) rpm -qpvl "$1" 2>/dev/null ;; + *.rar) # check if rar is installed first + if which rar 1> /dev/null ; then + `which rar` t "$1" + fi ;; + *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) # *roff src? + if file -L "$1" | grep roff 1> /dev/null ; then + nroff -S -mandoc "$1" + fi ;; + *.1.gz|*.2.gz|*.3.gz|*.4.gz|*.5.gz|*.6.gz|*.7.gz|*.8.gz|*.9.gz|*.n.gz|*.man.gz) # compressed *roff src? + if gzip -dc "$1" | file - | grep roff 1> /dev/null ; then + gzip -dc "$1" | nroff -S -mandoc - + fi ;; + *.1.bz2|*.2.bz2|*.3.bz2|*.4.bz2|*.5.bz2|*.6.bz2|*.7.bz2|*.8.bz2|*.9.bz2|*.n.bz2|*.man.bz2) # compressed *roff src? + if bzip2 -dc "$1" | file - | grep roff 1> /dev/null ; then + bzip2 -dc "$1" | nroff -S -mandoc - + fi ;; + *.gz) gzip -dc "$1" 2>/dev/null ;; + *.bz2) bzip2 -dc "$1" 2>/dev/null ;; + *.lzma) lzma -dc "$1" 2>/dev/null ;; + *.xz) xz -dc "$1" 2>/dev/null ;; +# *) FILE=`file -L "$1"` ; # Check to see if binary, if so -- view with 'strings' +# FILE1=`echo $FILE | cut -d ' ' -f 2` +# FILE2=`echo $FILE | cut -d ' ' -f 3` +# if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \ +# -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then +# strings "$1" +# fi ;; + esac +} + +lesspipe "$1" diff --git a/source/a/less/slack-desc b/source/a/less/slack-desc new file mode 100644 index 000000000..bbf440f9a --- /dev/null +++ b/source/a/less/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +less: less (file pager) +less: +less: Less is a paginator similar to more (1), but which allows backward +less: movement in the file as well as forward movement. Also, less does not +less: have to read the entire input file before starting, so with large +less: input files it starts up faster than text editors like vi (1). +less: +less: Less was written by Mark Nudelman. +less: +less: +less: diff --git a/source/a/lha/lha.SlackBuild b/source/a/lha/lha.SlackBuild new file mode 100755 index 000000000..fb333362f --- /dev/null +++ b/source/a/lha/lha.SlackBuild @@ -0,0 +1,75 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=114i +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lha + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf lha-114i +tar xzvf $CWD/lha-114i.tar.gz +cd lha-114i +zcat $CWD/lha_1.14i-10.1.diff.gz | patch -p1 --verbose || exit 1 +patch -p0 < debian/patch.paul +patch -p0 < debian/patch.multibyte +patch -p0 < debian/patch.CAN-2004-0234_0235 +patch -p0 < debian/patch.header-overflow +patch -p1 < debian/patch.redhat-sec2 +patch -p1 < debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338 +chown -R root:root . +make || exit 1 +mkdir -p $PKG/usr/bin +cat src/lha > $PKG/usr/bin/lha +chmod 755 $PKG/usr/bin/lha +mkdir -p $PKG/usr/man/man1 +cat debian/lha.1 | gzip -9 > $PKG/usr/man/man1/lha.1.gz +mkdir -p $PKG/usr/man/jp/man1 +cat man/lha.man | gzip -9 > $PKG/usr/man/jp/man1/lha.1.gz +mkdir -p $PKG/usr/doc/lha-114i +cp -a \ + change-${VERSION}.txt \ + $PKG/usr/doc/lha-${VERSION} +mkdir -p $PKG/usr/doc/lha-${VERSION}/jp +cp -a *.euc \ + $PKG/usr/doc/lha-${VERSION}/jp +chmod 644 $PKG/usr/man/jp/man1/* + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/lha-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/lha/lha_1.14i-10.1.diff b/source/a/lha/lha_1.14i-10.1.diff new file mode 100644 index 000000000..cc32c4a67 --- /dev/null +++ b/source/a/lha/lha_1.14i-10.1.diff @@ -0,0 +1,5901 @@ +--- lha-1.14i.orig/src/lha_macro.h ++++ lha-1.14i/src/lha_macro.h +@@ -7,7 +7,7 @@ + /* Ver. 1.14g modified 2000.05.06 T.OKAMOTO */ + /* ------------------------------------------------------------------------ */ + +-#define LHA_VERSION "lha for unix version 1.14g" ++#define LHA_VERSION "lha for unix version 1.14i" + + /* Most of System V, define SYSTIME_HAS_NO_TM */ + #ifdef SYSTIME_HAS_NO_TM +--- lha-1.14i.orig/man/lha.n ++++ lha-1.14i/man/lha.n +@@ -9,7 +9,7 @@ + ] + .I archive_file + [ +-.I flie ++.I file + \&.\|.\|. ] + .br + .B lha +--- lha-1.14i.orig/man/lha.man ++++ lha-1.14i/man/lha.man +@@ -1,324 +1,224 @@ ++LHA(N) LHa for UNIX Users Manual LHA(N) + + +-LHA(N) Unix Programmer's Manual LHA(N) + ++NNAAMMEE ̾̾¾Î¾Î ++ LHa - ¹â°µ½Ì¥¢¡¼¥«¥¤¥Ð + +-NNNAAAMMMEEE ̾̾̾¾Î¾Î¾Î +- LHa - ¹â°µ½Ì¥¢¡¼¥«¥¤¥Ð ++SSYYNNOOPPSSIISS ·Á·Á¼°¼° ++ llhhaa kkeeyy [ mmooddiiffiieerrss ] _a_r_c_h_i_v_e___f_i_l_e [ _f_i_l_e ... ] ++ llhhaa _a_r_c_h_i_v_e___f_i_l_e + +-SSSYYYNNNOOOPPPSSSIIISSS ·Á·Á·Á¼°¼°¼° +- lllhhhaaa kkkeeeyyy [ mmmooodddiiifffiiieeerrrsss ] _a_r_c_h_i_v_e__f_i_l_e [ _f_l_i_e ... ] +- lllhhhaaa _a_r_c_h_i_v_e__f_i_l_e ++DDEESSCCRRIIPPTTIIOONN ²ò²òÀâÀâ ++ LLHHaa ¤Ï¸úΨ¤Î¹â¤¤°µ½Ìµ¡Ç½¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¥¢¡¼¥«¥¤¥Ð¤Ç¤¹¡£ ++ kkeeyy ¤Ëµ¡Ç½Ê¸»ú¤ò»ØÄꤷ¡¢file ¤ÎÄɲᢹ¹¿·¡¢Ãê½Ð¡¢ºï½ü¡¢°ìÍ÷ɽ¼¨¤Ê¤É¤ò¹Ô ++ ¤Ê¤¤¤Þ¤¹¡£°ú¿ô¤Ë archive_file ¤Î¤ß¤ò»ØÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢µ¡Ç½Ê¸»ú¤Ë l ¤ò»Ø ++ Äꤷ¤¿¤Î¤ÈƱÅù¤ÎÆ°ºî¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ ++ µ¡Ç½Ê¸»ú¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ + +-DDDEEESSSCCCRRRIIIPPPTTTIIIOOONNN ²ò²ò²òÀâÀâÀâ +- LLLHHHaaa ¤Ï¸úΨ¤Î¹â¤¤°µ½Ìµ¡Ç½¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¥¢¡¼¥«¥¤¥Ð¤Ç¤¹¡£ +- kkkeeeyyy ¤Ëµ¡Ç½Ê¸»ú¤ò»ØÄꤷ¡¢file ¤ÎÄɲᢹ¹¿·¡¢Ãê½Ð¡¢ºï½ü¡¢°ì +- Í÷ɽ¼¨¤Ê¤É¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£°ú¿ô¤Ë archive_file ¤Î¤ß¤ò»ØÄꤷ¤¿ +- ¾ì¹ç¤Ë¤Ï¡¢µ¡Ç½Ê¸»ú¤Ë l ¤ò»ØÄꤷ¤¿¤Î¤ÈƱÅù¤ÎÆ°ºî¤ò¹Ô¤Ê¤¤¤Þ +- ¤¹¡£ +- µ¡Ç½Ê¸»ú¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£ ++ aa Äɲá£file ¤ò archive_file ¤ËÄɲä·¤Þ¤¹¡£ file ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç ++ ¤¢¤ì¤Ð¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤ò¤¹¤Ù¤ÆÄɲä·¤Þ¤¹¡£ + +- aaa Äɲá£file ¤ò archive_file ¤ËÄɲä·¤Þ¤¹¡£file ¤¬¥Ç +- ¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ì¤Ð¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡ +- ¥¤¥ë¤ò¤¹¤Ù¤ÆÄɲä·¤Þ¤¹¡£ ++ uu ¹¹¿·¡£file ¤¬ archive_file ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢¤â¤·¤¯¤Ï³ÊǼ¤µ ++ ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¸Å¤±¤ì¤Ð¡¢file ¤ò archive_file ¤ËÄɲä·¤Þ¤¹¡£ + +- uuu ¹¹¿·¡£file ¤¬ archive_file ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢ +- ¤â¤·¤¯¤Ï³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤¬¸Å¤±¤ì¤Ð¡¢file ¤ò +- archive_file ¤ËÄɲä·¤Þ¤¹¡£ ++ ll ¤Þ¤Þ¤¿¤¿¤Ï¤Ï vv ++ °ìÍ÷ɽ¼¨¡£archive_file ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë file ¤Î¾ðÊó¤ò°ìÍ÷ɽ¼¨¤· ++ ¤Þ¤¹¡£file ¤Î»ØÄ꤬¤Ê¤±¤ì¤Ð archive_file Æâ¤ÎÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Î¾ð ++ Êó ¤ò ɽ ¼¨¤·¤Þ¤¹¡£ v ¤ò»ØÄꤹ¤ë¤È l ¤è¤ê¤â¾Ü¤·¤¤¾ðÊó¤òɽ¼¨¤·¤Þ ++ ¤¹¡£ + +- lll ¤Þ¤Þ¤Þ¤¿¤¿¤¿¤Ï¤Ï¤Ï vvv +- °ìÍ÷ɽ¼¨¡£archive_file ¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë file ¤Î¾ð +- Êó¤ò°ìÍ÷ɽ¼¨¤·¤Þ¤¹¡£file ¤Î»ØÄ꤬¤Ê¤±¤ì¤Ð +- archive_file Æâ¤ÎÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤òɽ¼¨¤·¤Þ¤¹ +- ¡£v ¤ò»ØÄꤹ¤ë¤È l ¤è¤ê¤â¾Ü¤·¤¤¾ðÊó¤òɽ¼¨¤·¤Þ¤¹¡£ ++ xx ¤Þ¤Þ¤¿¤¿¤Ï¤Ï ee ++ Ãê½Ð¡£archive_file ¤«¤é file ¤òÃê½Ð¤·¤Þ¤¹¡£file ¤Î»ØÄ꤬¤Ê¤± ¤ì ++ ¤Ð archive_file Æâ¤ÎÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤òÃê½Ð¤·¤Þ¤¹¡£Ãê½Ð¤¹¤Ù¤­¥Õ¥¡ ++ ¥¤¥ë¤¬¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢½Å¤Í½ñ¤­¤·¤Æ¤¤¤¤¤«¤ÎÌ䤤¹ç ¤ï ++ ¤»¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ + +- xxx ¤Þ¤Þ¤Þ¤¿¤¿¤¿¤Ï¤Ï¤Ï eee +- Ãê½Ð¡£archive_file ¤«¤é file ¤òÃê½Ð¤·¤Þ¤¹¡£file ¤Î +- »ØÄ꤬¤Ê¤±¤ì¤Ð archive_file Æâ¤ÎÁ´¤Æ¤Î¥Õ¥¡¥¤¥ë¤òÃê +- ½Ð¤·¤Þ¤¹¡£Ãê½Ð¤¹¤Ù¤­¥Õ¥¡¥¤¥ë¤¬¤¹¤Ç¤Ë¸ºß¤·¤Æ¤¤¤ë¾ì +- ¹ç¤Ë¤Ï¡¢½Å¤Í½ñ¤­¤·¤Æ¤¤¤¤¤«¤ÎÌ䤤¹ç¤ï¤»¤ò¹Ô¤Ê¤¤¤Þ¤¹ +- ¡£ ++ pp ÆâÍÆɽ¼¨¡£archive_file ¤«¤é file ¤ÎÆâÍƤò¼è¤ê½Ð¤·¡¢É¸½à½ÐÎÏ¤Ø¤È ++ ½ÐÎϤ·¤Þ¤¹¡£file ¤Î»ØÄ꤬¤Ê¤±¤ì¤Ð¡¢Á´¤Æ¤ÎÆâÍƤò½ÐÎϤ·¤Þ¤¹¡£ + +- ppp ÆâÍÆɽ¼¨¡£archive_file ¤«¤é file ¤ÎÆâÍƤò¼è¤ê½Ð¤· +- ¡¢É¸½à½ÐÎϤؤȽÐÎϤ·¤Þ¤¹¡£file ¤Î»ØÄ꤬¤Ê¤±¤ì¤Ð¡¢ +- Á´¤Æ¤ÎÆâÍƤò½ÐÎϤ·¤Þ¤¹¡£ ++ dd ºï½ü¡£archive_file ¤«¤é file ¤òºï½ü¤·¤Þ¤¹¡£ + +- ddd ºï½ü¡£archive_file ¤«¤é file ¤òºï½ü¤·¤Þ¤¹¡£ ++ mm °ÜÆ°¡£file ¤ò archive_file ¤ËÄɲä·¤¿¸å¡¢file ¤òºï½ü¤·¤Þ¤¹¡£ ¤³ ++ ¤ì ¤Ï¡¢key ¤Ë a ¤ò¡¢modifiers ¤Ë d ¤ò»ØÄꤷ¤¿»þ¤ÈƱ¤¸Æ°ºî¤ò¹Ô¤Ê ++ ¤¤¤Þ¤¹¡£ + +- mmm °ÜÆ°¡£file ¤ò archive_file ¤ËÄɲä·¤¿¸å¡¢file ¤òºï +- ½ü¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢key ¤Ë a ¤ò¡¢modifiers ¤Ë d ¤ò»Ø +- Äꤷ¤¿»þ¤ÈƱ¤¸Æ°ºî¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ ++ cc ¿·µ¬ºîÀ®¡£archive_file ¤ò¿·¤¿¤ËºîÀ®¤·¡¢file ¤òÄɲä·¤Þ¤¹¡£ + ++ µ¡Ç½Êѹ¹Ê¸»ú modifiers ¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ key ¤ÎÆ°ºî¤Î¾ÜºÙ¤òÊѹ¹ ¤¹ ++ ¤ë ¤³ ¤È ¤¬¤Ç¤­¤Þ¤¹¡£modifiers ¤Ï¡¢°Ê²¼¤ÎÃ椫¤éÊ£¿ô»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ ++ ¤¹¡£ + +- January 14,1997 1 + + ++ qq<<nnuumm>> ɽ¼¨¤ÎÍÞÀ©¡£ÂÐÏÃŪ¤Ê¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨¤òÍÞÀ©¤·¤Þ¤¹¡£ <num> ¤ÎÃÍ¤Ë ++ ¤è¤Ã¤Æ¡¢INDICATOR ¤Îɽ¼¨ÊýË¡¤òÊѹ¹¤Ç¤­¤Þ¤¹¡£ + +-LHA(N) Unix Programmer's Manual LHA(N) ++ qq00 oooo........ ¤Î¤Îɽɽ¼¨¼¨¤ò¤ò¹Ô¹Ô¤Ê¤Ê¤¦¤¦¡£¡£ + ++ qq11 ¥Õ¥Õ¥¡¥¡¥¤¥¤¥ë¥ë̾̾ɽɽ¼¨¼¨¤Î¤Î¤ß¤ß¹Ô¹Ô¤Ê¤Ê¤¦¤¦¡£¡£ + +- ccc ¿·µ¬ºîÀ®¡£archive_file ¤ò¿·¤¿¤ËºîÀ®¤·¡¢file ¤òÄɲà +- ¤·¤Þ¤¹¡£ ++ qq22 ²¿²¿¤â¤âɽɽ¼¨¼¨¤·¤·¤Ê¤Ê¤¤¤¤¡£¡£ + +- µ¡Ç½Êѹ¹Ê¸»ú modifiers ¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ key ¤ÎÆ°ºî¤Î +- ¾ÜºÙ¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£modifiers ¤Ï¡¢°Ê²¼¤ÎÃ椫¤éÊ£ +- ¿ô»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ++ ¤Ê¤ª¡¢ÃͤòÆþÎϤ·¤Ê¤«¤Ã¤¿ºÝ¤Ë¤Ï¡¢q2 ¤ÈƱÅù¤Ë¤Ê¤ê¤Þ¤¹¡£ + ++ vv ɽ¼¨¤Î¾éĹ²½¡£É½¼¨¤¹¤ë¥á¥Ã¥»¡¼¥¸¤ò¾éŤˤ·¤Þ¤¹¡£ + ++ nn ¼Â¹Ô¤·¤Ê¤¤¡£¼ÂºÝ¤Î¹¹¿·¤äÃê½Ð¤ÎÆ°ºî¤ò¹Ô¤Ê¤¤¤Þ¤»¤ó¡£¼Â¹ÔÆâÍƤγΠ++ ǧ¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + +- qqq<<<nnnuuummm>>> ɽ¼¨¤ÎÍÞÀ©¡£ÂÐÏÃŪ¤Ê¥á¥Ã¥»¡¼¥¸¤Îɽ¼¨¤òÍÞÀ©¤·¤Þ¤¹¡£ +- <num> ¤ÎÃͤˤè¤Ã¤Æ¡¢INDICATOR ¤Îɽ¼¨ÊýË¡¤òÊѹ¹¤Ç¤­ +- ¤Þ¤¹¡£ ++ ff ¶¯À©Åª¤Ê¼Â¹Ô¡£¥Õ¥¡¥¤¥ë¤ÎÃê½Ð»þ¤Ë¡¢Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤Îºï½ü³Îǧ ¤ò ++ ¹Ô¤Ê¤ï¤º¶¯À©Åª¤Ëºï½ü¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ + +- qqq000 oooooo............ ¤Î¤Î¤Îɽɽɽ¼¨¼¨¼¨¤ò¤ò¤ò¹Ô¹Ô¹Ô¤Ê¤Ê¤Ê¤¦¤¦¤¦¡£¡£¡£ ++ tt ¥Æ¥­¥¹¥È¥â¡¼¥É¤Ë¤è¤ë³ÊǼ,Ãê½Ð¡£¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Ø¤Î¥Õ¥¡¥¤¥ë¤Î ++ ³ÊǼ»þ¤Ë¤Ï¡¢ UNIX ¤«¤é MS-DOS ¤Ø¤Î²þ¹Ô¥³¡¼¥ÉÊÑ´¹¤ò¹Ô¤Ê¤¤¤Þ ¤¹¡£ ++ ¥Õ¥¡¥¤¥ë¤ÎÃê½Ð»þ¤Ë¤ÏµÕ¤Ë¡¢MS-DOS ¤«¤é UNIX ¤Ø¤Î²þ¹Ô¥³¡¼¥ÉÊÑ´¹¤ò ++ ¹Ô¤Ê¤¤¤Þ¤¹¡£ + +- qqq111 ¥Õ¥Õ¥Õ¥¡¥¡¥¡¥¤¥¤¥¤¥ë¥ë¥ë̾̾̾ɽɽɽ¼¨¼¨¼¨¤Î¤Î¤Î¤ß¤ß¤ß¹Ô¹Ô¹Ô¤Ê¤Ê¤Ê¤¦¤¦¤¦¡£¡£¡£ ++ oo{{nnuumm}} LHarc ¸ß´¹¥¢¡¼¥«¥¤¥Ö¤ÎÀ¸À®¡¢¤Þ¤¿¤Ï°µ½Ì¥¢¥ë¥´¥ê¥º¥à¤ò»ØÄꤹ ¤ë¡£ ++ µ¡Ç½Ê¸»ú a, u, m ¤È¶¦¤Ë»ØÄꤷ¡¢Ãê½Ð»þ¤Ë¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ + +- qqq222 ²¿²¿²¿¤â¤â¤âɽɽɽ¼¨¼¨¼¨¤·¤·¤·¤Ê¤Ê¤Ê¤¤¤¤¤¤¡£¡£¡£ ++ oo LLHHaarrcc ¸ß¸ß´¹´¹¥¢¥¢¡¼¡¼¥«¥«¥¤¥¤¥Ö¥Ö¤Î¤ÎÀ¸À¸À®À®¤ò¤ò¹Ô¹Ô¤¦¤¦¡£¡£ + +- ¤Ê¤ª¡¢ÃͤòÆþÎϤ·¤Ê¤«¤Ã¤¿ºÝ¤Ë¤Ï¡¢q2 ¤ÈƱÅù¤Ë¤Ê¤ê¤Þ +- ¤¹¡£ ++ ¸Å ¤¤ ·Á ¼° ¤Î ¥¢¡¼ ¥«¥¤¥Ö¤òÀ¸À®¤·¤Þ¤¹¡£°µ½Ì¥¢¥ë¥´¥ê¥º¥à ++ ¤Ï-lh1-¤ò»ÈÍѤ·¤Þ¤¹¡£ + +- vvv ɽ¼¨¤Î¾éĹ²½¡£É½¼¨¤¹¤ë¥á¥Ã¥»¡¼¥¸¤ò¾éŤˤ·¤Þ¤¹¡£ ++ oo55 °µ°µ½Ì½Ì¥¢¥¢¥ë¥ë¥´¥´¥ê¥ê¥º¥º¥à¥à¤Ë¤Ë --llhh55-- ¤ò¤ò»È»ÈÍÑÍѤ¹¤¹¤ë¤ë¡£¡£ + +- nnn ¼Â¹Ô¤·¤Ê¤¤¡£¼ÂºÝ¤Î¹¹¿·¤äÃê½Ð¤ÎÆ°ºî¤ò¹Ô¤Ê¤¤¤Þ¤»¤ó¡£ +- ¼Â¹ÔÆâÍƤγÎǧ¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ++ oo66 °µ°µ½Ì½Ì¥¢¥¢¥ë¥ë¥´¥´¥ê¥ê¥º¥º¥à¥à¤Ë¤Ë --llhh66-- ¤ò¤ò»È»ÈÍÑÍѤ¹¤¹¤ë¤ë¡£¡£ + +- fff ¶¯À©Åª¤Ê¼Â¹Ô¡£¥Õ¥¡¥¤¥ë¤ÎÃê½Ð»þ¤Ë¡¢Â¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë +- ¤Îºï½ü³Îǧ¤ò¹Ô¤Ê¤ï¤º¶¯À©Åª¤Ëºï½ü¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ ++ LHA¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¡¢-lh6-¤ÇÀ¸À®¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤ÏÃê½Ð¤Ç¤­¤Ê ¤¤ ++ ¶² ¤ì ¤¬ ¤¢¤ë¤Î¤Ç¡¢¥¢¡¼¥«¥¤¥Ö¤òÇÛÉÛ¤¹¤ëºÝ¤Ë¤ÏÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ++ MSDOSÈǤÎÀµµ¬ÇÛÉÛÈÇ¤Ç¤Ï -lh6- ¤ÎÀ¸À®¤Ï¹Ô¤¤¤Þ¤»¤ó¡£¤Þ¤¿¡¢MSDOSÈÇ ++ LHA version 2.5x °Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï -lh6- ¤ÎÃê½Ð¤Î¤ß¤Ç¤­¤Þ ++ ¤¹¡£ + +- ttt ¥Æ¥­¥¹¥È¥â¡¼¥É¤Ë¤è¤ë³ÊǼ,Ãê½Ð¡£¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë +- ¤Ø¤Î¥Õ¥¡¥¤¥ë¤Î³ÊǼ»þ¤Ë¤Ï¡¢UNIX ¤«¤é MS-DOS ¤Ø¤Î²þ +- ¹Ô¥³¡¼¥ÉÊÑ´¹¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£¥Õ¥¡¥¤¥ë¤ÎÃê½Ð»þ¤Ë¤ÏµÕ¤Ë +- ¡¢MS-DOS ¤«¤é UNIX ¤Ø¤Î²þ¹Ô¥³¡¼¥ÉÊÑ´¹¤ò¹Ô¤Ê¤¤¤Þ¤¹ +- ¡£ ++ ww==<<//ddiirr>> ++ ³ÊǼ¤ª¤è¤ÓÃê½Ð»þ¤Î¥ï¡¼¥¯Íѥǥ£¥ì¥¯¥È¥ê »Ø Äê¡£ ¥Ç ¥Õ¥© ¥ë ¥È ¤Ç ++ ¤Ï¡¢/tmp ¤Ç¤¹¤¬¡¢/tmp ¤ÎÂ礭¤µ°Ê¾å¤Î¥Õ¥¡¥¤¥ë¤ò³ÊǼ¤¹¤ëºÝ¤Ë¤Ïɬ ++ ÍפǤ¹¡£ + +- ooo{{{nnnuuummm}}} LHarc ¸ß´¹¥¢¡¼¥«¥¤¥Ö¤ÎÀ¸À®¡¢¤Þ¤¿¤Ï°µ½Ì¥¢¥ë¥´¥ê¥º¥à +- ¤ò»ØÄꤹ¤ë¡£µ¡Ç½Ê¸»ú a, u, m ¤È¶¦¤Ë»ØÄꤷ¡¢Ãê½Ð»þ +- ¤Ë¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ ++ dd ¥Õ¥¡¥¤¥ë³ÊǼ¸å¤Î¥Õ¥¡¥¤¥ë¤Îºï½ü¡£µ¡Ç½Ê¸»ú a, ¤â¤·¤¯¤Ï u ¤È¶¦¤ËÍÑ ++ ¤¤¡¢ ¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Ø¤Î¥Õ¥¡¥¤¥ë¤Î³ÊǼ¤Î¸å¤Ë¥Õ¥¡¥¤¥ë¤òºï½ü¤· ++ ¤Þ¤¹¡£ u ¤ËÉղä·¤¿¾ì¹ç¡¢¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ÎÆâÍƤÎÊý¤¬¿·¤·¤¤»þ ++ ¤Ë ¥Õ¥¡ ¥¤ ¥ë¤¬³ÊǼ¤µ¤ì¤º¤Ëºï½ü¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤ÇÃí°Õ¤·¤Æ²¼¤µ ++ ¤¤¡£ + +- ooo LLLHHHaaarrrccc ¸ß¸ß¸ß´¹´¹´¹¥¢¥¢¥¢¡¼¡¼¡¼¥«¥«¥«¥¤¥¤¥¤¥Ö¥Ö¥Ö¤Î¤Î¤ÎÀ¸À¸À¸À®À®À®¤ò¤ò¤ò¹Ô¹Ô¹Ô¤¦¤¦¤¦¡£¡£¡£ ++ ii Ãê½Ð»þ¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤Î̵¸ú²½¡£Ãê½Ð»þ¤Ë¥Ç¥£¥ì¥¯¥È¥ê̾¤ò̵¸ú ¤Ë ++ ¤·¤Þ¤¹¡£ + +- ¸Å¤¤·Á¼°¤Î¥¢¡¼¥«¥¤¥Ö¤òÀ¸À®¤·¤Þ¤¹¡£°µ½Ì¥¢¥ë¥´ +- ¥ê¥º¥à¤Ï-lh1-¤ò»ÈÍѤ·¤Þ¤¹¡£ ++ zz Èó °µ ½Ì³ÊǼ¡£¥¢¡¼¥«¥¤¥Ö¤Ø¤Î¥Õ¥¡¥¤¥ë¤Î³ÊǼ»þ¤Ë°µ½Ì¤ò¹Ô¤Ê¤¤¤Þ¤» ++ ¤ó¡£¤¹¤Ç¤Ë°µ½Ì¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Æ°µ½Ì¸úΨ¤ò˾¤á¤Ê¤¤¾ì¹ç¤Ê¤É¤Ë»ÈÍÑ ¤· ++ ¤Þ¤¹¡£Ãê½Ð»þ¤Ë¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ + ++ gg [generic]¥¢¡¼¥«¥¤¥Ö¤ÎºîÀ®¡£ UNIX ÍѤÎÉղþðÊó¤ò»ý¤¿¤Ê¤¤¥¢¡¼¥«¥¤ ++ ¥Ö¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£Ãê½Ð»þ¤Ë¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ + ++ 00//11//22 ¥Ø¥Ã¥À¥ì¥Ù¥ë»ØÄê¡£¥¢¡¼¥«¥¤¥Ö¤ÎÆâÉôɽ¸½¤Î·Á¼°¤ò»ØÄꤷ ¤Þ ¤¹¡£ ¥Ç ++ ¥Õ¥© ¥ë¥È¤Ç¤Ï 1 ¤Ç¤¹¡£0 ¤Ï LHarc ¤ÇÍÑ°Õ¤µ¤ì¤Æ¤¤¤¿¸Å¤¤·Á¼°¤Ç¤¹¡£ ++ ¾­Íè¤Ï 2 ¤Î·Á¼°¤ËÅý°ì¤µ¤ì¤ë¤è¤¦¤Ç¤¹¡£¤³¤ì¤Ï¥Õ¥¡¥¤¥ë¤Î³ÊǼ»þ¤Î¤ß ++ Í­¸ú¤Ç¤¹¡£¥Õ¥¡¥¤¥ë¤ÎÃê½Ð»þ¤Ë¤Ï¼«Æ°Åª¤Ë·Á¼°¤òȽÃǤ·½èÍý¤·¤Þ¤¹¡£ + +- January 14,1997 2 ++ _a_r_c_h_i_v_e___f_i_l_e ¤Ë¤Ï¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ + ++ _a_r_c_h_i_v_e___f_i_l_e ¤Ë _- ¤È½ñ¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤òɸ½àÆþ½ÐÎÏ¤Ë ++ ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ ttaarr(1) ¤Î¤è¤¦¤Ë¡¢¥¢¡¼¥«¥¤¥Ö¤ÎºîÀ®¡¢¹¹¿·»þ¤Ë¤Ïɸ ½à ++ ½ÐÎϤˡ¢¥¢¡¼¥«¥¤¥Ö¤«¤é¤Î¥Õ¥¡¥¤¥ë¤ÎÃê½Ð»þ¤Ë¤Ïɸ½àÆþÎϤˤʤê¤Þ¤¹¡£ + ++ Ãê ½Ð»þ¤Ë _a_r_c_h_i_v_e___f_i_l_e ¤¬Â¸ºß¤·¤Ê¤¤»þ¤Ë¤Ï¥µ¥Õ¥£¥Ã¥¯¥¹ ..llzzhh ¤ò¥Õ¥¡¥¤¥ë̾ ++ ¤Î¸å¤í¤ËÉղä·¤ÆÃê½Ð¤ò»î¤ß¤Þ¤¹¡£ ++ Æä˵¬Äê¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢±¿ÍѾ奵¥Õ¥£¥Ã¥¯¥¹¤È¤·¤Æ ..llzzhh ¤òÍѤ¤¤ë¤Î¤¬Ë¾ ¤Þ ++ ¤· ¤¤¤È»×¤¤¤Þ¤¹¡£ÆüËܰʳ°¤Ç¤Ï ..llhhaa ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥±¡¼¥¹¤¬¤¢¤ë¤½¤¦¤Ç¤¹¤Î ++ ¤Ç¡¢Å¬µ¹Ä´À°¤·¤Æ²¼¤µ¤¤¡£:-) ++ ¥µ¥Õ¥£¥Ã¥¯¥¹¤¬ ccoomm ¤â¤·¤¯¤Ï ..eexxee ¤Î¾ì¹ç¤Ë¤Ï¡¢MS-DOS ÈǤǺîÀ®¤µ¤ì¤¿ _S_F_X( ++ ¼«¸ÊŸ³«µ¡Ç½ÉÕ¤­¤Î°µ½Ì¥Õ¥¡¥¤¥ë) ·Á¼°¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·¡¢Âбþ¤·¤Þ¤¹¡£ ++ ¥µ ¥Õ¥£¥Ã¥¯¥¹¤¬ ..xx ¤Î¾ì¹ç¤Ë¤Ï¡¢ÆüËÜÀ½ SHARP X68000 ¤Î OS, Human68k ÈÇ¤Ç ++ ºîÀ®¤µ¤ì¤¿ SFX ·Á¼°¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·Âбþ¤·¤Þ¤¹¡£ ++ SFX ·Á¼°¤Î¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÄɲääºï½ü¤ò¹Ô¤Ã¤¿ ¾ì ¹ç ¤Ë ¤Ï¡¢ ¥µ ++ ¥Õ¥£¥Ã¥¯¥¹¤ò ..llzzhh ¤ËÊѹ¹¤·¡¢SFX ¤Î¾ðÊó¤òºï½ü¤·¤Þ¤¹¡£ + +-LHA(N) Unix Programmer's Manual LHA(N) + ++FFIILLEESS ¥Õ¥Õ¥¡¥¡¥¤¥¤¥ë¥ë ++ *.lzh - LHa/LHarc ¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë ++ *.bak - ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë ++ /tmp/lh* - ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë ++ *.com *.exe - MS-DOS SFX ¥Õ¥¡¥¤¥ë ++ *.x - Human68k SFX ¥Õ¥¡¥¤¥ë + +- ooo555 °µ°µ°µ½Ì½Ì½Ì¥¢¥¢¥¢¥ë¥ë¥ë¥´¥´¥´¥ê¥ê¥ê¥º¥º¥º¥à¥à¥à¤Ë¤Ë¤Ë ---lllhhh555- ¤ò¤ò¤ò»È»È»ÈÍÑÍÑÍѤ¹¤¹¤¹¤ë¤ë¤ë¡£¡£¡£ + +- ooo666 °µ°µ°µ½Ì½Ì½Ì¥¢¥¢¥¢¥ë¥ë¥ë¥´¥´¥´¥ê¥ê¥ê¥º¥º¥º¥à¥à¥à¤Ë¤Ë¤Ë ---lllhhh666- ¤ò¤ò¤ò»È»È»ÈÍÑÍÑÍѤ¹¤¹¤¹¤ë¤ë¤ë¡£¡£¡£ ++SSEEEE AALLSSOO ´Ø´ØϢϢ¹à¹àÌÜÌÜ ++ ttaarr(1), aarr(1), ccoommpprreessss(1) + +- LHA¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¡¢-lh6-¤ÇÀ¸À®¤µ¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤Ï +- Ãê½Ð¤Ç¤­¤Ê¤¤¶²¤ì¤¬¤¢¤ë¤Î¤Ç¡¢¥¢¡¼¥«¥¤¥Ö¤òÇÛÉÛ¤¹¤ëºÝ +- ¤Ë¤ÏÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£MSDOSÈǤÎÀµµ¬ÇÛÉÛÈÇ¤Ç¤Ï -lh6- +- ¤ÎÀ¸À®¤Ï¹Ô¤¤¤Þ¤»¤ó¡£¤Þ¤¿¡¢MSDOSÈÇ LHA version 2.5x +- °Ê¹ß¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï -lh6- ¤ÎÃê½Ð¤Î¤ß¤Ç¤­¤Þ¤¹¡£ ++DDIISSTTRRIIBBUUTTIIOONN ºÆºÆÇÛÇÛÉÛÉۤˤˤĤĤ¤¤¤¤Æ¤Æ ++ °Ê²¼¤Î¾ò·ï¤Ç¡¢ºÆÇÛÉÛ¡¢Å¾ºÜ¡¢²þÊѤòµö²Ä¤·¤Þ¤¹¡£ + +- www===<<<///dddiiirrr>>> +- ³ÊǼ¤ª¤è¤ÓÃê½Ð»þ¤Î¥ï¡¼¥¯Íѥǥ£¥ì¥¯¥È¥ê»ØÄê¡£¥Ç¥Õ¥© +- ¥ë¥È¤Ç¤Ï¡¢/tmp ¤Ç¤¹¤¬¡¢/tmp ¤ÎÂ礭¤µ°Ê¾å¤Î¥Õ¥¡¥¤¥ë +- ¤ò³ÊǼ¤¹¤ëºÝ¤Ë¤ÏɬÍפǤ¹¡£ ++ 1. Ãøºî¸¢É½¼¨¤òºï½ü¤·¤Ê¤¤¤³¤È¡£ + +- ddd ¥Õ¥¡¥¤¥ë³ÊǼ¸å¤Î¥Õ¥¡¥¤¥ë¤Îºï½ü¡£µ¡Ç½Ê¸»ú a, ¤â¤·¤¯ +- ¤Ï u ¤È¶¦¤ËÍѤ¤¡¢¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Ø¤Î¥Õ¥¡¥¤¥ë¤Î +- ³ÊǼ¤Î¸å¤Ë¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹¡£u ¤ËÉղä·¤¿¾ì¹ç¡¢ +- ¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ÎÆâÍƤÎÊý¤¬¿·¤·¤¤»þ¤Ë¥Õ¥¡¥¤¥ë¤¬ +- ³ÊǼ¤µ¤ì¤º¤Ëºï½ü¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤Î¤ÇÃí°Õ¤·¤Æ²¼¤µ¤¤ +- ¡£ ++ 2. ÇÛÉÛÆâÍƤˤĤ¤¤Æ¤Ï¡¢ + +- iii Ãê½Ð»þ¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤Î̵¸ú²½¡£Ãê½Ð»þ¤Ë¥Ç¥£¥ì¥¯¥È +- ¥ê̾¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£ ++ a. ÇÛ Éۤκݤ˸ºß¤¹¤ëÆâÍÆ(¤¹¤Ê¤ï¤Á¥½¡¼¥¹¥³¡¼¥É¡¢¥É¥­¥å¥á¥ó ++ ¥È¡¢¥×¥í¥°¥é¥Þ¡¼¤Ø¤Î¼ê°ú¤­¤Ê¤É)¤¬ºÆÇÛÉÛ¤µ¤ì¤¿¤â¤Î¤ÎÃæ¤Ëɬ ++ ¤º ¸ ºß ¤¹¤ë¤³¤È¡£²þÊѤµ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢¤½¤ì¤òÌÀ¼¨¤·¤¿¥É ++ ¥­¥å¥á¥ó¥È¤òÍÑ°Õ¤¹¤ë¤³¤È¡£ + +- zzz È󰵽̳ÊǼ¡£¥¢¡¼¥«¥¤¥Ö¤Ø¤Î¥Õ¥¡¥¤¥ë¤Î³ÊǼ»þ¤Ë°µ½Ì¤ò +- ¹Ô¤Ê¤¤¤Þ¤»¤ó¡£¤¹¤Ç¤Ë°µ½Ì¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Æ°µ½Ì¸úΨ¤ò˾ +- ¤á¤Ê¤¤¾ì¹ç¤Ê¤É¤Ë»ÈÍѤ·¤Þ¤¹¡£Ãê½Ð»þ¤Ë¤Ï̵»ë¤µ¤ì¤Þ¤¹ +- ¡£ ++ b. LHa ¤ËÂФ¹¤ëÉղòÁÃͤ¬ÉÕ¤±¤é¤ì¤ÆºÆÇÛÉÛ¤µ¤ì¤ë¾ì¹ç¤Ë¤Ï¤½ ¤ì ++ ¤é ¤â¤Ç¤­¤ë¤À¤±´Þ¤á¤ë¤è¤¦ÅØÎϤ¹¤ë¤³¤È¡£¤Þ¤¿¡¢¤½¤ÎºÝ¤Ë¤ÏÉÕ ++ ²Ã²ÁÃͤ¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤³¤È¤òÌÀ¼¨¤·¤¿¥É¥­¥å¥á¥ó¥È¤òÍÑ°Õ ¤¹ ++ ¤ë¤³¤È¡£ + +- ggg [generic]¥¢¡¼¥«¥¤¥Ö¤ÎºîÀ®¡£UNIX ÍѤÎÉղþðÊó¤ò»ý¤¿ +- ¤Ê¤¤¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹¡£Ãê½Ð»þ¤Ë¤Ï̵»ë +- ¤µ¤ì¤Þ¤¹¡£ ++ c. ¥Ð¥¤¥Ê¥ê¤Î¤ß¤ÎÇÛÉۤϵö¤µ¤ì¤Ê¤¤¡£(ÉղòÁÃͤΤâ¤Î¤â´Þ¤à) + +- 000///111///222 ¥Ø¥Ã¥À¥ì¥Ù¥ë»ØÄê¡£¥¢¡¼¥«¥¤¥Ö¤ÎÆâÉôɽ¸½¤Î·Á¼°¤ò»ØÄê +- ¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï 1 ¤Ç¤¹¡£0 ¤Ï LHarc ¤ÇÍÑ°Õ¤µ +- ¤ì¤Æ¤¤¤¿¸Å¤¤·Á¼°¤Ç¤¹¡£¾­Íè¤Ï 2 ¤Î·Á¼°¤ËÅý°ì¤µ¤ì¤ë +- ¤è¤¦¤Ç¤¹¡£¤³¤ì¤Ï¥Õ¥¡¥¤¥ë¤Î³ÊǼ»þ¤Î¤ßÍ­¸ú¤Ç¤¹¡£¥Õ¥¡ +- ¥¤¥ë¤ÎÃê½Ð»þ¤Ë¤Ï¼«Æ°Åª¤Ë·Á¼°¤òȽÃǤ·½èÍý¤·¤Þ¤¹¡£ ++ 3. ºÇ¿·ÈǤÎÇÛÉÛ¤Ë̳¤á¤ë¤³¤È¡£(µÁ̳¤Ï¤Ê¤¤) + +- _a_r_c_h_i_v_e__f_i_l_e ¤Ë¤Ï¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£ ++ Ãí. ¤Ê¤ª¡¢¥Í¥Ã¥È¤Ç¤ÎÇÛÉդϼ«Í³¤Ç¤¢¤ë¤¬¡¢¥Í¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤Ç¤­ ++ ¤Ê¤¤Êý¡Ê»¨»ï¤ª¤è¤Ó¡¢ CD-ROM ¤Ê¤É¤Ë¤è¤ë¡ËÇÛÉդϡ¢ÇÛÉÕÁ° ¤Ë ++ ¤³ ¤Á¤é¤Ë E-Mail ¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£ÇÛÉÕÁ°¤Ë½ÐÍè¤Ê¤¤ºÝ¤Ë¤Ï¡¢ ++ ¸åÆüɬ¤º E-Mail ¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£ + +- _a_r_c_h_i_v_e__f_i_l_e ¤Ë- ¤È½ñ¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ò +- ɸ½àÆþ½ÐÎϤˤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£tttaaarrr(1) ¤Î¤è¤¦¤Ë¡¢¥¢¡¼¥«¥¤ +- ¥Ö¤ÎºîÀ®¡¢¹¹¿·»þ¤Ë¤Ïɸ½à½ÐÎϤˡ¢¥¢¡¼¥«¥¤¥Ö¤«¤é¤Î¥Õ¥¡¥¤¥ë¤Î ++ 4. ¤³¤Î¥×¥í¥°¥é¥à¤Î¸ºß¤ä»ÈÍѤ·¤¿¤³¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤¿Â»³²¤ÏÁ´¤¯Êݾڤ· ++ ¤Ê¤¤¡£ + ++ 5. ºî¼Ô¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤ËÉÔÈ÷¤¬¤¢¤Ã¤Æ¤â¡¢¤½¤ì¤òÄûÀµ¤¹¤ëµÁ̳¤òÉé¤ï ++ ¤Ê¤¤¡£ + +- January 14,1997 3 ++ 6. ¤³¤Î¥×¥í¥°¥é¥à¤Î°ìÉô¡¢¤Þ¤¿¤ÏÁ´Éô¤ò¾¤Î¥×¥í¥°¥é¥à¤ËÁȤ߹þ¤ó¤ÇÍøÍÑ ++ ¤· ¤Æ¤â¤«¤Þ¤ï¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢¤½¤Î¥×¥í¥°¥é¥à¤Ï LHa ¤Ç¤Ï¤Ê¤¯¡¢ LHa ++ ¤È̾¾è¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ + ++ 7. ¾¦ÍøÍѤ˴ؤ·¤Æ¤Ï¡¢¾åµ­¤Î¾ò·ï¤Ë²Ã¤¨¡¢²¼µ­¤Î¾ò·ï¤Î¤â¤È¤Ë¤³¤ì¤òǧ¤á ++ ¤ë¡£ + ++ a. ¤³¤Î¥×¥í¥°¥é¥à¤ò¥á¥¤¥ó¤È¤¹¤ë¾¦ÍøÍѤ϶ػߤ¹¤ë¡£ + +-LHA(N) Unix Programmer's Manual LHA(N) ++ b. ¾¦ÍøÍѤÎÁê¼ê¤¬¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍѼԤȤ·¤ÆÉÔŬÀÚ¤ÈȽÃǤ· ++ ¤¿¾ì¹ç¤Ë¤ÏÇÛÉÛ¤·¤Ê¤¤¡£ + ++ c. ¥¤¥ó¥¹¥È¡¼¥ë¤Î¼êÃʤȤ·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¡¢¤³¤Î¥×¥í¥°¥é¥à¤ò »È ++ ¤¦ ¤³ ¤È ¤òÁê¼ê¤Ë¶¯À©¤·¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢¾¦ÍøÍѼԤ¬ºî¶È¤ò¹Ô ++ ¤¦¡£¤Þ¤¿¡¢¤½¤Î¤È¤­¤Î»³²¤Ï¡¢¾¦ÍøÍѼԤ¬Á´ÀÕǤ¤òÉ餦¡£ + +- Ãê½Ð»þ¤Ë¤Ïɸ½àÆþÎϤˤʤê¤Þ¤¹¡£ ++ d. ¾¦ÍøÍѤòÉղòÁÃͤȤ·¤Æ¹Ô¤¤¤³¤Î¥×¥í¥°¥é¥à¤ò»ÈÍѤ¹¤ë¾ì ¹ç¡¢ ++ ¾¦ÍøÍѼԤϡ¢¤½¤Î¥µ¥Ý¡¼¥È¤ò¹Ô¤¦¡£ + +- Ãê½Ð»þ¤Ë_a_r_c_h_i_v_e__f_i_l_e ¤¬Â¸ºß¤·¤Ê¤¤»þ¤Ë¤Ï¥µ¥Õ¥£¥Ã¥¯¥¹...lllzzzhhh ¤ò +- ¥Õ¥¡¥¤¥ë̾¤Î¸å¤í¤ËÉղä·¤ÆÃê½Ð¤ò»î¤ß¤Þ¤¹¡£ +- Æä˵¬Äê¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢±¿ÍѾ奵¥Õ¥£¥Ã¥¯¥¹¤È¤·¤Æ...lllzzzhhh ¤òÍÑ +- ¤¤¤ë¤Î¤¬Ë¾¤Þ¤·¤¤¤È»×¤¤¤Þ¤¹¡£ÆüËܰʳ°¤Ç¤Ï ...lllhhhaaa ¤ò»ÈÍѤ·¤Æ¤¤ +- ¤ë¥±¡¼¥¹¤¬¤¢¤ë¤½¤¦¤Ç¤¹¤Î¤Ç¡¢Å¬µ¹Ä´À°¤·¤Æ²¼¤µ¤¤¡£:-) +- ¥µ¥Õ¥£¥Ã¥¯¥¹¤¬cccooommm ¤â¤·¤¯¤Ï...eeexxxeee ¤Î¾ì¹ç¤Ë¤Ï¡¢MS-DOS ÈǤǺîÀ® +- ¤µ¤ì¤¿_S_F_X(¼«¸ÊŸ³«µ¡Ç½ÉÕ¤­¤Î°µ½Ì¥Õ¥¡¥¤¥ë) ·Á¼°¤«¤É¤¦¤«¤ò¥Á +- ¥§¥Ã¥¯¤·¡¢Âбþ¤·¤Þ¤¹¡£ +- ¥µ¥Õ¥£¥Ã¥¯¥¹¤¬...xxx ¤Î¾ì¹ç¤Ë¤Ï¡¢ÆüËÜÀ½ SHARP X68000 ¤Î OS, +- Human68k ÈǤǺîÀ®¤µ¤ì¤¿ SFX ·Á¼°¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤·Âбþ¤· +- ¤Þ¤¹¡£ +- SFX ·Á¼°¤Î¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ËÂФ·¤ÆÄɲääºï½ü¤ò¹Ô¤Ã¤¿¾ì¹ç +- ¤Ë¤Ï¡¢¥µ¥Õ¥£¥Ã¥¯¥¹¤ò...lllzzzhhh ¤ËÊѹ¹¤·¡¢SFX ¤Î¾ðÊó¤òºï½ü¤·¤Þ¤¹ +- ¡£ + +-FFFIIILLLEEESSS ¥Õ¥Õ¥Õ¥¡¥¡¥¡¥¤¥¤¥¤¥ë¥ë¥ë +- *.lzh - LHa/LHarc ¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë +- *.bak - ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë +- /tmp/lh* - ¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë +- *.com *.exe - MS-DOS SFX ¥Õ¥¡¥¤¥ë +- *.x - Human68k SFX ¥Õ¥¡¥¤¥ë ++ºÇºÇ¸å¸å¤Ë¤Ë((FFrroomm YY..TTaaggaawwaa)) ++ LZHUF Ë¡¤Î´ðÁäȤʤä¿ LZARI Ë¡¤òȯɽ¤·¤Æ¤¯¤À¤µ¤Ã¤¿±ü¼À²É§»á¡¢¤½¤ì¤ò ++ NIFTY-Serve ¤Ë¾Ò²ð¤·¡¢¤Þ¤¿¡¢LArc ¤Îºî¼Ô¤Ç¤â¤¢¤ë»°ÌÚÏÂɧ»á¡¢¤Þ¤¿¡¢¤³¤ì¤é ++ ¤Î Í× °ø ¤«¤é LZHUF Ë¡µÚ¤Ó¡¢MS-DOS ÈÇ LHarc ¤òºîÀ®¤·¤¿µÈºê±ÉÂٻᡢLHarc ++ UNIX ¤Î³«È¯¤Ë¶¨ÎϤ·¤¿¿Íã¡¢¤³¤³¤í¤è¤¯¥á¥Ã¥»¡¼¥¸¤Î¶¶ÅϤ·¤ò¤·¤Æ¤¯¤ì¤¿Àкê ++ °ìÌÀ»á(MIX ID:k.ishi)¡¢¤Þ¤¿¡¢¤¤¤í¤¤¤í¤Ê¥ì¥Ý¡¼¥È¤ò¤¯¤ì¤¿¤ß¤Ê¤µ¤ó¡¢¤½¤ì¤ò ++ Ãæ·Ñ¤·¤Æ¤¯¤À¤µ¤Ã¤¿¿¹¸ø°ìϺ»á (MIX ID:kmori)¤Ë´¶¼Õ¤·¤Þ¤¹¡£ + +-SSSEEEEEE AAALLLSSSOOO ´Ø´Ø´ØϢϢϢ¹à¹à¹àÌÜÌÜÌÜ +- tttaaarrr(1), aaarrr(1), cccooommmppprrreeessssss(1) + +-DDDIIISSSTTTRRRIIIBBBUUUTTTIIIOOONNN ºÆºÆºÆÇÛÇÛÇÛÉÛÉÛÉۤˤˤˤĤĤĤ¤¤¤¤¤¤Æ¤Æ¤Æ ++ºÇºÇ¸å¸å¤Ë¤Ë((FFrroomm MMaassaarruu OOkkii)) ++ ¾åµ­¤ÎÊý¡¹¤Ï¤â¤Á¤í¤ó¡¢²Ã¤¨¤Æ LHarc UNIX ¤òºîÀ®¤·¤¿ Y.Tagawa »á¡¢¤½¤ì ¤ò ++ OSK ¤Ë°Ü¿¢¤·µÈºê»á¤Î LHx ¤Î¥¢¥ë¥´¥ê¥º¥à¤òÁȤ߹þ¤ó¤À H.S »á¡¢ JUNET ¤Î ++ LHa for UNIX MailingList ¤Ë¤Æ¶¨ÎϤ·¤Æ¤¯¤À¤µ¤Ã¤¿¤ß¤Ê¤µ¤ó¤Ë´¶¼ÕÃפ·¤Þ¤¹¡£ + +- °Ê²¼¤Î¾ò·ï¤Ç¡¢ºÆÇÛÉÛ¡¢Å¾ºÜ¡¢²þÊѤòµö²Ä¤·¤Þ¤¹¡£ ++ºÇºÇ¸å¸å¤Ë¤Ë((FFrroomm NNoobbuuttaakkaa WWaattaazzaakkii)) ++ ¤³¤Î¥×¥í¥°¥é¥à¤ÎºîÀ®¤Ë¤«¤«¤ï¤Ã¤¿Êý¡¹¡¢¤µ¤é¤Ë¤³¤³¤Þ¤Ç LHa ¤ò»Å¾å¤²¤Æ¤¯¤À ++ ¤µ¤Ã¤¿ ²­¾¡»á¤Ë´¶¼ÕÃפ·¤Þ¤¹¡£ + +- 1. Ãøºî¸¢É½¼¨¤òºï½ü¤·¤Ê¤¤¤³¤È¡£ + +- 2. ÇÛÉÛÆâÍƤˤĤ¤¤Æ¤Ï¡¢ +- +- a. ÇÛÉۤκݤ˸ºß¤¹¤ëÆâÍÆ(¤¹¤Ê¤ï¤Á¥½¡¼¥¹¥³¡¼¥É¡¢¥É¥­ +- ¥å¥á¥ó¥È¡¢¥×¥í¥°¥é¥Þ¡¼¤Ø¤Î¼ê°ú¤­¤Ê¤É)¤¬ºÆÇÛÉÛ¤µ¤ì +- ¤¿¤â¤Î¤ÎÃæ¤Ëɬ¤ºÂ¸ºß¤¹¤ë¤³¤È¡£²þÊѤµ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð +- ¡¢¤½¤ì¤òÌÀ¼¨¤·¤¿¥É¥­¥å¥á¥ó¥È¤òÍÑ°Õ¤¹¤ë¤³¤È¡£ +- +- b. LHa ¤ËÂФ¹¤ëÉղòÁÃͤ¬ÉÕ¤±¤é¤ì¤ÆºÆÇÛÉÛ¤µ¤ì¤ë¾ì¹ç¤Ë +- ¤Ï¤½¤ì¤é¤â¤Ç¤­¤ë¤À¤±´Þ¤á¤ë¤è¤¦ÅØÎϤ¹¤ë¤³¤È¡£¤Þ¤¿¡¢ +- ¤½¤ÎºÝ¤Ë¤ÏÉղòÁÃͤ¬ÉÕ¤±¤é¤ì¤Æ¤¤¤ë¤³¤È¤òÌÀ¼¨¤·¤¿¥É +- ¥­¥å¥á¥ó¥È¤òÍÑ°Õ¤¹¤ë¤³¤È¡£ +- +- +- +- January 14,1997 4 +- +- +- +-LHA(N) Unix Programmer's Manual LHA(N) +- +- +- c. ¥Ð¥¤¥Ê¥ê¤Î¤ß¤ÎÇÛÉۤϵö¤µ¤ì¤Ê¤¤¡£(ÉղòÁÃͤΤâ¤Î¤â +- ´Þ¤à) +- +- 3. ºÇ¿·ÈǤÎÇÛÉÛ¤Ë̳¤á¤ë¤³¤È¡£(µÁ̳¤Ï¤Ê¤¤) +- +- Ãí. ¤Ê¤ª¡¢¥Í¥Ã¥È¤Ç¤ÎÇÛÉդϼ«Í³¤Ç¤¢¤ë¤¬¡¢¥Í¥Ã¥È¤Ë¥¢¥¯¥» +- ¥¹¤Ç¤­¤Ê¤¤Êý¡Ê»¨»ï¤ª¤è¤Ó¡¢CD-ROM ¤Ê¤É¤Ë¤è¤ë¡ËÇÛÉÕ +- ¤Ï¡¢ÇÛÉÕÁ°¤Ë¤³¤Á¤é¤Ë E-Mail ¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£ÇÛÉÕÁ° +- ¤Ë½ÐÍè¤Ê¤¤ºÝ¤Ë¤Ï¡¢¸åÆüɬ¤º E-Mail ¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£ +- +- 4. ¤³¤Î¥×¥í¥°¥é¥à¤Î¸ºß¤ä»ÈÍѤ·¤¿¤³¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤¿Â» +- ³²¤ÏÁ´¤¯Êݾڤ·¤Ê¤¤¡£ +- +- 5. ºî¼Ô¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤ËÉÔÈ÷¤¬¤¢¤Ã¤Æ¤â¡¢¤½¤ì¤òÄûÀµ +- ¤¹¤ëµÁ̳¤òÉé¤ï¤Ê¤¤¡£ +- +- 6. ¤³¤Î¥×¥í¥°¥é¥à¤Î°ìÉô¡¢¤Þ¤¿¤ÏÁ´Éô¤ò¾¤Î¥×¥í¥°¥é¥à¤Ë +- ÁȤ߹þ¤ó¤ÇÍøÍѤ·¤Æ¤â¤«¤Þ¤ï¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢¤½¤Î¥×¥í +- ¥°¥é¥à¤Ï LHa ¤Ç¤Ï¤Ê¤¯¡¢LHa ¤È̾¾è¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ +- +- 7. ¾¦ÍøÍѤ˴ؤ·¤Æ¤Ï¡¢¾åµ­¤Î¾ò·ï¤Ë²Ã¤¨¡¢²¼µ­¤Î¾ò·ï¤Î¤â +- ¤È¤Ë¤³¤ì¤òǧ¤á¤ë¡£ +- +- a. ¤³¤Î¥×¥í¥°¥é¥à¤ò¥á¥¤¥ó¤È¤¹¤ë¾¦ÍøÍѤ϶ػߤ¹¤ë¡£ +- +- b. ¾¦ÍøÍѤÎÁê¼ê¤¬¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍѼԤȤ·¤ÆÉÔŬÀÚ¤È +- ȽÃǤ·¤¿¾ì¹ç¤Ë¤ÏÇÛÉÛ¤·¤Ê¤¤¡£ +- +- c. ¥¤¥ó¥¹¥È¡¼¥ë¤Î¼êÃʤȤ·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¡¢¤³¤Î¥×¥í¥°¥é +- ¥à¤ò»È¤¦¤³¤È¤òÁê¼ê¤Ë¶¯À©¤·¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢¾¦ÍøÍÑ¼Ô +- ¤¬ºî¶È¤ò¹Ô¤¦¡£¤Þ¤¿¡¢¤½¤Î¤È¤­¤Î»³²¤Ï¡¢¾¦ÍøÍѼԤ¬Á´ +- ÀÕǤ¤òÉ餦¡£ +- +- d. ¾¦ÍøÍѤòÉղòÁÃͤȤ·¤Æ¹Ô¤¤¤³¤Î¥×¥í¥°¥é¥à¤ò»ÈÍѤ¹¤ë +- ¾ì¹ç¡¢¾¦ÍøÍѼԤϡ¢¤½¤Î¥µ¥Ý¡¼¥È¤ò¹Ô¤¦¡£ +- +-ºÇºÇºÇ¸å¸å¸å¤Ë¤Ë¤Ë(((FFFrrrooommm YYY...TTTaaagggaaawwwaaa))) +- LZHUF Ë¡¤Î´ðÁäȤʤä¿ LZARI Ë¡¤òȯɽ¤·¤Æ¤¯¤À¤µ¤Ã¤¿±ü¼À² +- ɧ»á¡¢¤½¤ì¤ò NIFTY-Serve ¤Ë¾Ò²ð¤·¡¢¤Þ¤¿¡¢LArc ¤Îºî¼Ô¤Ç¤â¤¢ +- ¤ë»°ÌÚÏÂɧ»á¡¢¤Þ¤¿¡¢¤³¤ì¤é¤ÎÍ×°ø¤«¤é LZHUF Ë¡µÚ¤Ó¡¢MS-DOS +- ÈÇ LHarc ¤òºîÀ®¤·¤¿µÈºê±ÉÂٻᡢLHarc UNIX ¤Î³«È¯¤Ë¶¨ÎϤ·¤¿ +- ¿Íã¡¢¤³¤³¤í¤è¤¯¥á¥Ã¥»¡¼¥¸¤Î¶¶ÅϤ·¤ò¤·¤Æ¤¯¤ì¤¿Àкê°ìÌÀ»á(MIX +- ID:k.ishi)¡¢¤Þ¤¿¡¢¤¤¤í¤¤¤í¤Ê¥ì¥Ý¡¼¥È¤ò¤¯¤ì¤¿¤ß¤Ê¤µ¤ó¡¢¤½¤ì +- ¤òÃæ·Ñ¤·¤Æ¤¯¤À¤µ¤Ã¤¿¿¹¸ø°ìϺ»á (MIX ID:kmori)¤Ë´¶¼Õ¤·¤Þ¤¹ +- ¡£ +- +- +- January 14,1997 5 +- +- +- +-LHA(N) Unix Programmer's Manual LHA(N) +- +- +-ºÇºÇºÇ¸å¸å¸å¤Ë¤Ë¤Ë(((FFFrrrooommm MMMaaasssaaarrruuu OOOkkkiii))) +- ¾åµ­¤ÎÊý¡¹¤Ï¤â¤Á¤í¤ó¡¢²Ã¤¨¤Æ LHarc UNIX ¤òºîÀ®¤·¤¿ Y.Tagawa +- »á¡¢¤½¤ì¤ò OSK ¤Ë°Ü¿¢¤·µÈºê»á¤Î LHx ¤Î¥¢¥ë¥´¥ê¥º¥à¤òÁȤ߹þ +- ¤ó¤À H.S »á¡¢JUNET ¤Î LHa for UNIX MailingList ¤Ë¤Æ¶¨ÎϤ· +- ¤Æ¤¯¤À¤µ¤Ã¤¿¤ß¤Ê¤µ¤ó¤Ë´¶¼ÕÃפ·¤Þ¤¹¡£ +- +-ºÇºÇºÇ¸å¸å¸å¤Ë¤Ë¤Ë(((FFFrrrooommm NNNooobbbuuutttaaakkkaaa WWWaaatttaaazzzaaakkkiii))) +- ¤³¤Î¥×¥í¥°¥é¥à¤ÎºîÀ®¤Ë¤«¤«¤ï¤Ã¤¿Êý¡¹¡¢¤µ¤é¤Ë¤³¤³¤Þ¤Ç LHa +- ¤ò»Å¾å¤²¤Æ¤¯¤À¤µ¤Ã¤¿ ²­¾¡»á¤Ë´¶¼ÕÃפ·¤Þ¤¹¡£ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- January 14,1997 6 + ++ January 14,1997 LHA(N) +--- lha-1.14i.orig/Makefile ++++ lha-1.14i/Makefile +@@ -20,7 +20,7 @@ + + #MACHINE = -DSYSTIME_HAS_NO_TM -DFTIME -DEUC + #MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DHAVE_TM_ZONE -DSYSV_SYSTEM_DIR +-MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DSYSV_SYSTEM_DIR -DMKTIME ++MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DSYSV_SYSTEM_DIR -DMKTIME -DMULTIBYTE_CHAR + + #OPTIMIZE = -O2 -fstrength-reduce -fomit-frame-pointer + OPTIMIZE = -O2 -DSUPPORT_LH7 -DMKSTEMP +--- lha-1.14i.orig/debian/patch.multibyte ++++ lha-1.14i/debian/patch.multibyte +@@ -0,0 +1,145 @@ ++diff -Nuar src.old/header.c src/header.c ++--- src.old/header.c Fri Oct 6 02:36:03 2000 +++++ src/header.c Fri Jul 19 16:46:41 2002 ++@@ -82,6 +82,7 @@ ++ register int i; ++ ++ #ifdef MULTIBYTE_CHAR +++ if (multibyte_mode == TRUE) { ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++@@ -91,6 +92,14 @@ ++ else if (!noconvertcase && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } +++ } else { +++ for (i = 0; i < len; i++) { +++ if (name[i] == '\\') +++ name[i] = '/'; +++ else if (!noconvertcase && isupper(name[i])) +++ name[i] = tolower(name[i]); +++ } +++ } ++ #else ++ for (i = 0; i < len; i++) { ++ if (name[i] == '\\') ++@@ -111,6 +120,7 @@ ++ boolean lower_case_used = FALSE; ++ ++ #ifdef MULTIBYTE_CHAR +++ if (multibyte_mode == TRUE) { ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++@@ -128,6 +138,19 @@ ++ name[i] = '/'; ++ else if (!noconvertcase && !lower_case_used && isupper(name[i])) ++ name[i] = tolower(name[i]); +++ } +++ } else { +++ for (i = 0; i < len; i++) +++ if (islower(name[i])) { +++ lower_case_used = TRUE; +++ break; +++ } +++ for (i = 0; i < len; i++) { +++ if (name[i] == '\\') +++ name[i] = '/'; +++ else if (!noconvertcase && !lower_case_used && isupper(name[i])) +++ name[i] = tolower(name[i]); +++ } ++ } ++ #else ++ for (i = 0; i < len; i++) ++diff -Nuar src.old/lha.h src/lha.h ++--- src.old/lha.h Fri Jul 19 17:22:13 2002 +++++ src/lha.h Fri Jul 19 17:18:05 2002 ++@@ -101,6 +101,9 @@ ++ #ifdef EUC ++ EXTERN boolean euc_mode; ++ #endif +++#ifdef MULTIBYTE_CHAR +++EXTERN boolean multibyte_mode; +++#endif ++ ++ /* list command flags */ ++ EXTERN boolean verbose_listing; ++diff -Nuar src.old/lharc.c src/lharc.c ++--- src.old/lharc.c Fri Oct 6 02:33:34 2000 +++++ src/lharc.c Fri Jul 19 16:56:03 2002 ++@@ -101,6 +101,10 @@ ++ euc_mode = FALSE; ++ #endif ++ +++#ifdef MULTIBYTE_CHAR +++ multibyte_mode = FALSE; +++#endif +++ ++ /* view command flags */ ++ verbose_listing = FALSE; ++ ++@@ -177,6 +181,11 @@ ++ e TEXT code convert from/to EUC\n\ ++ "); ++ #endif +++#ifdef MULTIBYTE_CHAR +++ fprintf(stderr, "\ +++ y filename multibyte convert\n\ +++"); +++#endif ++ exit(1); ++ } ++ ++@@ -308,6 +317,11 @@ ++ case 'e': ++ text_mode = TRUE; ++ euc_mode = TRUE; +++ break; +++#endif +++#ifdef MULTIBYTE_CHAR +++ case 'y': +++ multibyte_mode = TRUE; ++ break; ++ #endif ++ case 'n': ++diff -Nuar src.old/util.c src/util.c ++--- src.old/util.c Wed Oct 4 23:57:38 2000 +++++ src/util.c Fri Jul 19 16:49:23 2002 ++@@ -113,18 +113,29 @@ ++ #endif ++ for (p = path; (c = *p) != 0; p++) { ++ #ifdef MULTIBYTE_CHAR ++- if (kflg) { ++- kflg = 0; +++ if (multibyte_mode == TRUE) { +++ if (kflg) { +++ kflg = 0; +++ } else if (MULTIBYTE_FIRST_P(c)) { +++ kflg = 1; +++ } else { +++ if (c == '\\' || c == DELIM || c == DELIM2) { +++ *p = delim; +++ path = p + 1; +++ } +++ } +++ } else { +++ if (c == '\\' || c == DELIM || c == DELIM2) { +++ *p = delim; +++ path = p + 1; +++ } ++ } ++- else if (MULTIBYTE_FIRST_P(c)) { ++- kflg = 1; ++- } ++- else ++-#endif +++#else ++ if (c == '\\' || c == DELIM || c == DELIM2) { ++ *p = delim; ++ path = p + 1; ++ } +++#endif ++ } ++ return path; ++ } +--- lha-1.14i.orig/debian/README.Debian ++++ lha-1.14i/debian/README.Debian +@@ -0,0 +1,6 @@ ++lha for DEBIAN ++---------------------- ++ ++LHa for UNIX ++ ++Atsushi KAMOSHIDA <kamop@post1.com>, Sun, 13 Apr 1997 17:52:59 +0900 +--- lha-1.14i.orig/debian/org/lha.h ++++ lha-1.14i/debian/org/lha.h +@@ -0,0 +1,322 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX Archiver Driver */ ++/* */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 1.14 Soruce All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14i Modified and bug fixed 2000.10.06 t.okamoto */ ++/* ------------------------------------------------------------------------ */ ++/* ++ Included... ++ lharc.h interface.h slidehuf.h ++*/ ++#include <stdio.h> ++#include <errno.h> ++#include <ctype.h> ++#include <sys/types.h> ++#include <sys/file.h> ++#include <sys/stat.h> ++ ++#include <signal.h> ++ ++#include "lha_macro.h" ++ ++struct encode_option { ++#if defined(__STDC__) || defined(AIX) ++ void (*output) (); ++ void (*encode_start) (); ++ void (*encode_end) (); ++#else ++ int (*output) (); ++ int (*encode_start) (); ++ int (*encode_end) (); ++#endif ++}; ++ ++struct decode_option { ++ unsigned short (*decode_c) (); ++ unsigned short (*decode_p) (); ++#if defined(__STDC__) || defined(AIX) ++ void (*decode_start) (); ++#else ++ int (*decode_start) (); ++#endif ++}; ++ ++/* ------------------------------------------------------------------------ */ ++/* LHa File Type Definition */ ++/* ------------------------------------------------------------------------ */ ++struct string_pool { ++ int used; ++ int size; ++ int n; ++ char *buffer; ++}; ++ ++typedef struct LzHeader { ++ unsigned char header_size; ++ char method[METHOD_TYPE_STRAGE]; ++ long packed_size; ++ long original_size; ++ long last_modified_stamp; ++ unsigned char attribute; ++ unsigned char header_level; ++ char name[256]; ++ unsigned short crc; ++ boolean has_crc; ++ unsigned char extend_type; ++ unsigned char minor_version; ++ ++ /* extend_type == EXTEND_UNIX and convert from other type. */ ++ time_t unix_last_modified_stamp; ++ unsigned short unix_mode; ++ unsigned short unix_uid; ++ unsigned short unix_gid; ++} LzHeader; ++ ++struct interfacing { ++ FILE *infile; ++ FILE *outfile; ++ unsigned long original; ++ unsigned long packed; ++ int dicbit; ++ int method; ++}; ++ ++ ++/* ------------------------------------------------------------------------ */ ++/* Option switch variable */ ++/* ------------------------------------------------------------------------ */ ++/* command line options (common options) */ ++EXTERN boolean quiet; ++EXTERN boolean text_mode; ++EXTERN boolean verbose; ++EXTERN boolean noexec; /* debugging option */ ++EXTERN boolean force; ++EXTERN boolean prof; ++EXTERN boolean delete_after_append; ++EXTERN int compress_method; ++EXTERN int header_level; ++/* EXTERN int quiet_mode; */ /* 1996.8.13 t.okamoto */ ++#ifdef EUC ++EXTERN boolean euc_mode; ++#endif ++ ++/* list command flags */ ++EXTERN boolean verbose_listing; ++ ++/* extract/print command flags */ ++EXTERN boolean output_to_stdout; ++ ++/* add/update/delete command flags */ ++EXTERN boolean new_archive; ++EXTERN boolean update_if_newer; ++EXTERN boolean generic_format; ++ ++EXTERN boolean remove_temporary_at_error; ++EXTERN boolean recover_archive_when_interrupt; ++EXTERN boolean remove_extracting_file_when_interrupt; ++EXTERN boolean get_filename_from_stdin; ++EXTERN boolean ignore_directory; ++EXTERN boolean verify_mode; ++ ++/* Indicator flag */ ++EXTERN int quiet_mode; ++ ++/* ------------------------------------------------------------------------ */ ++/* Globale Variable */ ++/* ------------------------------------------------------------------------ */ ++EXTERN char **cmd_filev; ++EXTERN int cmd_filec; ++ ++EXTERN char *archive_name; ++EXTERN char expanded_archive_name[FILENAME_LENGTH]; ++EXTERN char temporary_name[FILENAME_LENGTH]; ++EXTERN char backup_archive_name[FILENAME_LENGTH]; ++ ++EXTERN char *reading_filename, *writting_filename; ++ ++/* 1996.8.13 t.okamoto */ ++#if 0 ++EXTERN boolean remove_temporary_at_error; ++EXTERN boolean recover_archive_when_interrupt; ++EXTERN boolean remove_extracting_file_when_interrupt; ++#endif ++ ++EXTERN int archive_file_mode; ++EXTERN int archive_file_gid; ++ ++EXTERN struct interfacing interface; ++EXTERN node *next; ++/* EXTERN unsigned short crc; */ /* 1996.8.13 t.okamoto */ ++ ++EXTERN int noconvertcase; /* 2000.10.6 */ ++ ++/* slide.c */ ++EXTERN int unpackable; ++EXTERN unsigned long origsize, compsize; ++EXTERN unsigned short dicbit; ++EXTERN unsigned short maxmatch; ++EXTERN unsigned long count; ++EXTERN unsigned long loc; /* short -> long .. Changed N.Watazaki */ ++EXTERN unsigned char *text; ++EXTERN int prev_char; ++ ++/* huf.c */ ++#ifndef LHA_MAIN_SRC /* t.okamoto 96/2/20 */ ++EXTERN unsigned short left[], right[]; ++EXTERN unsigned char c_len[], pt_len[]; ++EXTERN unsigned short c_freq[], c_table[], c_code[]; ++EXTERN unsigned short p_freq[], pt_table[], pt_code[], t_freq[]; ++#endif ++ ++/* append.c */ ++#ifdef NEED_INCREMENTAL_INDICATOR ++EXTERN long indicator_count; ++EXTERN long indicator_threshold; ++#endif ++ ++/* crcio.c */ ++EXTERN FILE *infile, *outfile; ++EXTERN unsigned short crc, bitbuf; ++EXTERN int dispflg; ++EXTERN long reading_size; ++ ++/* from dhuf.c */ ++EXTERN unsigned int n_max; ++ ++/* lhadd.c */ ++EXTERN FILE *temporary_fp; ++ ++/* ------------------------------------------------------------------------ */ ++/* Functions */ ++/* ------------------------------------------------------------------------ */ ++/* from lharc.c */ ++extern int patmatch(); ++ ++extern void interrupt(); ++ ++extern void message(); ++extern void warning(); ++extern void error(); ++extern void fatal_error(); ++ ++extern boolean need_file(); ++extern int inquire(); ++extern FILE *xfopen(); ++ ++extern boolean find_files(); ++extern void free_files(); ++ ++extern void init_sp(); ++extern void add_sp(); ++extern void finish_sp(); ++extern void free_sp(); ++extern void cleaning_files(); ++ ++extern void build_temporary_name(); ++extern void build_backup_file_name(); ++extern void build_standard_archive_name(); ++ ++extern FILE *open_old_archive(); ++extern void init_header(); ++extern boolean get_header(); ++extern boolean archive_is_msdos_sfx1(); ++extern boolean skip_msdos_sfx1_code(); ++extern void write_header(); ++extern void write_archive_tail(); ++extern void copy_old_one(); ++extern unsigned char *convdelim(); ++extern long copyfile(); ++ ++extern void cmd_list(), cmd_extract(), cmd_add(), cmd_delete(); ++ ++extern boolean ignore_directory; ++extern boolean compress_method; ++extern boolean verify_mode; ++ ++extern char *extract_directory; ++ ++/* from slide.c */ ++ ++extern int encode_alloc(); ++extern void encode(); ++extern void decode(); ++ ++/* from append.c */ ++extern void start_indicator(); ++extern void finish_indicator(); ++extern void finish_indicator2(); ++ ++/* slide.c */ ++extern void output_st1(); ++extern unsigned char *alloc_buf(); ++extern void encode_start_st1(); ++extern void encode_end_st1(); ++extern unsigned short decode_c_st1(); ++extern unsigned short decode_p_st1(); ++extern void decode_start_st1(); ++ ++/* from shuf.c */ ++extern void decode_start_st0(); ++extern void encode_p_st0( /* unsigned short j */ ); ++extern void encode_start_fix(); ++extern void decode_start_fix(); ++extern unsigned short decode_c_st0(); ++extern unsigned short decode_p_st0(); ++ ++/* from dhuf.c */ ++extern void start_c_dyn(); ++extern void decode_start_dyn(); ++extern unsigned short decode_c_dyn(); ++extern unsigned short decode_p_dyn(); ++extern void output_dyn( /* int code, unsigned int pos */ ); ++extern void encode_end_dyn(); ++ ++extern int decode_lzhuf(); ++ ++/* from larc.c */ ++ ++extern unsigned short decode_c_lzs(); ++extern unsigned short decode_p_lzs(); ++extern unsigned short decode_c_lz5(); ++extern unsigned short decode_p_lz5(); ++extern void decode_start_lzs(); ++extern void decode_start_lz5(); ++ ++extern void make_table( /* int nchar, uchar bitlen[], int tablebits, ++ ushort table[] */ ); ++ ++/* from maketree.c */ ++/* ++ * void make_code(short n, uchar len[], ushort code[]); short make_tree(short ++ * nparm, ushort freqparm[], uchar lenparm[], ushort codeparam[]); ++ */ ++extern void make_code( /* int n, uchar len[], ushort code[] */ ); ++extern short make_tree( /* int nparm, ushort freqparm[], uchar lenparm[], ++ ushort codeparam[] */ ); ++ ++/* from crcio.c */ ++extern void make_crctable(); ++extern unsigned short calccrc( /* uchar *p, uint n */ ); ++extern void fillbuf( /* uchar n */ ); ++extern unsigned short getbits( /* uchar n */ ); ++extern void putcode( /* uchar n, ushort x */ ); ++extern void putbits( /* uchar n, ushort x */ ); ++extern int fread_crc( /* uchar *p, int n, FILE *f */ ); ++extern void fwrite_crc( /* uchar *p, int n, FILE *f */ ); ++extern void init_getbits(); ++extern void init_putbits(); ++extern void make_crctable(); ++extern unsigned short calccrc(); ++ ++/* from lhadd.c */ ++extern int encode_lzhuf(); ++extern int encode_stored_crc(); ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* End: */ ++ ++ +--- lha-1.14i.orig/debian/org/header.c ++++ lha-1.14i/debian/org/header.c +@@ -0,0 +1,875 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* header.c -- header manipulate functions */ ++/* */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Original Y.Tagawa */ ++/* modified 1991.12.16 M.Oki */ ++/* Ver. 1.10 Symbolic Link added 1993.10.01 N.Watazaki */ ++/* Ver. 1.13b Symbolic Link Bug Fix 1994.08.22 N.Watazaki */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14i bug fixed 2000.10.06 t.okamoto */ ++/* ------------------------------------------------------------------------ */ ++#include "lha.h" ++ ++/* ------------------------------------------------------------------------ */ ++static char *get_ptr; ++/* ------------------------------------------------------------------------ */ ++int ++calc_sum(p, len) ++ register char *p; ++ register int len; ++{ ++ register int sum; ++ ++ for (sum = 0; len; len--) ++ sum += *p++; ++ ++ return sum & 0xff; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static unsigned short ++get_word() ++{ ++ int b0, b1; ++ ++ b0 = get_byte(); ++ b1 = get_byte(); ++ return (b1 << 8) + b0; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++put_word(v) ++ unsigned int v; ++{ ++ put_byte(v); ++ put_byte(v >> 8); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static long ++get_longword() ++{ ++ long b0, b1, b2, b3; ++ ++ b0 = get_byte(); ++ b1 = get_byte(); ++ b2 = get_byte(); ++ b3 = get_byte(); ++ return (b3 << 24) + (b2 << 16) + (b1 << 8) + b0; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++put_longword(v) ++ long v; ++{ ++ put_byte(v); ++ put_byte(v >> 8); ++ put_byte(v >> 16); ++ put_byte(v >> 24); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++msdos_to_unix_filename(name, len) ++ register char *name; ++ register int len; ++{ ++ register int i; ++ ++#ifdef MULTIBYTE_CHAR ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++ i++; ++ else if (name[i] == '\\') ++ name[i] = '/'; ++ else if (!noconvertcase && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } ++#else ++ for (i = 0; i < len; i++) { ++ if (name[i] == '\\') ++ name[i] = '/'; ++ else if (!noconvertcase && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } ++#endif ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++generic_to_unix_filename(name, len) ++ register char *name; ++ register int len; ++{ ++ register int i; ++ boolean lower_case_used = FALSE; ++ ++#ifdef MULTIBYTE_CHAR ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++ i++; ++ else if (islower(name[i])) { ++ lower_case_used = TRUE; ++ break; ++ } ++ } ++ for (i = 0; i < len; i++) { ++ if (MULTIBYTE_FIRST_P(name[i]) && ++ MULTIBYTE_SECOND_P(name[i + 1])) ++ i++; ++ else if (name[i] == '\\') ++ name[i] = '/'; ++ else if (!noconvertcase && !lower_case_used && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } ++#else ++ for (i = 0; i < len; i++) ++ if (islower(name[i])) { ++ lower_case_used = TRUE; ++ break; ++ } ++ for (i = 0; i < len; i++) { ++ if (name[i] == '\\') ++ name[i] = '/'; ++ else if (!noconvertcase && !lower_case_used && isupper(name[i])) ++ name[i] = tolower(name[i]); ++ } ++#endif ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++macos_to_unix_filename(name, len) ++ register char *name; ++ register int len; ++{ ++ register int i; ++ ++ for (i = 0; i < len; i++) { ++ if (name[i] == ':') ++ name[i] = '/'; ++ else if (name[i] == '/') ++ name[i] = ':'; ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++unix_to_generic_filename(name, len) ++ register char *name; ++ register int len; ++{ ++ register int i; ++ ++ for (i = 0; i < len; i++) { ++ if (name[i] == '/') ++ name[i] = '\\'; ++ else if (islower(name[i])) ++ name[i] = toupper(name[i]); ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* Generic stamp format: */ ++/* */ ++/* 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 */ ++/* |<-------- year ------->|<- month ->|<-- day -->| */ ++/* */ ++/* 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 */ ++/* |<--- hour --->|<---- minute --->|<- second*2 ->| */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++ ++/* ++ * NOTE : If you don't have `gettimeofday(2)', or your gettimeofday(2) ++ * returns bogus timezone information, try FTIME, MKTIME, TIMELOCAL or TZSET. ++ */ ++ ++/* choose one */ ++#if defined(MKTIME) ++#ifdef TIMELOCAL ++#undef TIMELOCAL ++#endif ++#endif /* defined(MKTIME) */ ++ ++#if defined(MKTIME) || defined(TIMELOCAL) ++#ifdef TZSET ++#undef TZSET ++#endif ++#endif /* defined(MKTIME) || defined(TIMELOCAL) */ ++ ++#if defined(MKTIME) || defined(TIMELOCAL) || defined(TZSET) ++#ifdef FTIME ++#undef FTIME ++#endif ++#endif ++ ++#if defined(MKTIME) || defined(TIMELOCAL) || defined(TZSET) || defined(FTIME) ++#ifdef GETTIMEOFDAY ++#undef GETTIMEOFDAY ++#endif ++#else ++#ifndef GETTIMEOFDAY ++#define GETTIMEOFDAY /* use gettimeofday() */ ++#endif ++#endif ++ ++#ifdef FTIME ++#include <sys/timeb.h> ++#endif ++ ++/* ++ * You may define as : #define TIMEZONE_HOOK \ extern long ++ * timezone ; \ extern void tzset(); ++ */ ++#ifdef TIMEZONE_HOOK ++TIMEZONE_HOOK ++/* Which do you like better, `TIMEZONE_HOOK' or `TIMEZONE_HOOK;' ? */ ++#endif ++ ++#if defined(TZSET) && defined(_MINIX) ++extern long timezone; /* not defined in time.h */ ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++#if defined(FTIME) || defined(GETTIMEOFDAY) || defined(TZSET) ++static long ++gettz() ++#ifdef TZSET ++{ ++ tzset(); ++ return timezone; ++} ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++#if !defined(TZSET) && defined(FTIME) ++{ ++ struct timeb buf; ++ ++ ftime(&buf); ++ return buf.timezone * 60L; ++} ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++#if !defined(TZSET) && !defined(FTIME) /* maybe defined(GETTIMEOFDAY) */ ++{ ++#ifdef HAVE_TM_ZONE ++ time_t tt; ++ ++ time(&tt); ++ return -localtime(&tt)->tm_gmtoff; ++#else /* HAVE_TM_ZONE */ ++ struct timeval tp; ++ struct timezone tzp; ++ gettimeofday(&tp, &tzp);/* specific to 4.3BSD */ ++ /* ++ * return (tzp.tz_minuteswest * 60L + (tzp.tz_dsttime != 0 ? 60L * ++ * 60L : 0)); ++ */ ++ return (tzp.tz_minuteswest * 60L); ++#endif /* HAVE_TM_ZONE */ ++} ++#endif ++#endif /* defined(FTIME) || defined(GETTIMEOFDAY) || ++ * defined(TZSET) */ ++ ++/* ------------------------------------------------------------------------ */ ++#ifdef NOT_USED ++static struct tm * ++msdos_to_unix_stamp_tm(a) ++ long a; ++{ ++ static struct tm t; ++ ++ t.tm_sec = (a & 0x1f) * 2; ++ t.tm_min = (a >> 5) & 0x3f; ++ t.tm_hour = (a >> 11) & 0x1f; ++ t.tm_mday = (a >> 16) & 0x1f; ++ t.tm_mon = ((a >> 16 + 5) & 0x0f) - 1; ++ t.tm_year = ((a >> 16 + 9) & 0x7f) + 80; ++ return &t; ++} ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++static time_t ++generic_to_unix_stamp(t) ++ long t; ++#if defined(MKTIME) || defined(TIMELOCAL) ++{ ++ struct tm dostm; ++ ++ /* ++ * special case: if MSDOS format date and time were zero, then we ++ * set time to be zero here too. ++ */ ++ if (t == 0) ++ return (time_t) 0; ++ ++ dostm.tm_sec = (t & 0x1f) * 2; ++ dostm.tm_min = t >> 5 & 0x3f; ++ dostm.tm_hour = t >> 11 & 0x1f; ++ dostm.tm_mday = t >> 16 & 0x1f; ++ dostm.tm_mon = (t >> 16 + 5 & 0x0f) - 1; /* 0..11 */ ++ dostm.tm_year = (t >> 16 + 9 & 0x7f) + 80; ++#if 0 ++ dostm.tm_isdst = 0; /* correct? */ ++#endif ++ dostm.tm_isdst = -1; /* correct? */ ++#ifdef MKTIME ++ return (time_t) mktime(&dostm); ++#else /* maybe defined(TIMELOCAL) */ ++ return (time_t) timelocal(&dostm); ++#endif ++} ++ ++#else /* defined(MKTIME) || defined(TIMELOCAL) */ ++{ ++ int year, month, day, hour, min, sec; ++ long longtime; ++ static unsigned int dsboy[12] = {0, 31, 59, 90, 120, 151, ++ 181, 212, 243, 273, 304, 334}; ++ unsigned int days; ++ ++ /* ++ * special case: if MSDOS format date and time were zero, then we ++ * set time to be zero here too. ++ */ ++ if (t == 0) ++ return (time_t) 0; ++ ++ year = ((int) (t >> 16 + 9) & 0x7f) + 1980; ++ month = (int) (t >> 16 + 5) & 0x0f; /* 1..12 means Jan..Dec */ ++ day = (int) (t >> 16) & 0x1f; /* 1..31 means 1st,...31st */ ++ ++ hour = ((int) t >> 11) & 0x1f; ++ min = ((int) t >> 5) & 0x3f; ++ sec = ((int) t & 0x1f) * 2; ++ ++ /* Calculate days since 1970.01.01 */ ++ days = (365 * (year - 1970) + /* days due to whole years */ ++ (year - 1970 + 1) / 4 + /* days due to leap years */ ++ dsboy[month - 1] + /* days since beginning of this year */ ++ day - 1); /* days since beginning of month */ ++ ++ if ((year % 4 == 0) && ++ (year % 100 != 0 || year % 400 == 0) && /* 1999.5.24 t.oka */ ++ (month >= 3)) /* if this is a leap year and month */ ++ days++; /* is March or later, add a day */ ++ ++ /* Knowing the days, we can find seconds */ ++ longtime = (((days * 24) + hour) * 60 + min) * 60 + sec; ++ longtime += gettz(); /* adjust for timezone */ ++ ++ /* LONGTIME is now the time in seconds, since 1970/01/01 00:00:00. */ ++ return (time_t) longtime; ++} ++#endif /* defined(MKTIME) || defined(TIMELOCAL) */ ++ ++/* ------------------------------------------------------------------------ */ ++static long ++unix_to_generic_stamp(t) ++ time_t t; ++{ ++ struct tm *tm = localtime(&t); ++ ++ return ((((long) (tm->tm_year - 80)) << 25) + ++ (((long) (tm->tm_mon + 1)) << 21) + ++ (((long) tm->tm_mday) << 16) + ++ (long) ((tm->tm_hour << 11) + ++ (tm->tm_min << 5) + ++ (tm->tm_sec / 2))); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* build header functions */ ++/* ------------------------------------------------------------------------ */ ++boolean ++get_header(fp, hdr) ++ FILE *fp; ++ register LzHeader *hdr; ++{ ++ int header_size; ++ int name_length; ++ char data[LZHEADER_STRAGE]; ++ char dirname[FILENAME_LENGTH]; ++ int dir_length = 0; ++ int checksum; ++ int i; ++ char *ptr; ++ int extend_size; ++ int dmy; ++ ++ bzero(hdr, sizeof(LzHeader)); ++ ++ if (((header_size = getc(fp)) == EOF) || (header_size == 0)) { ++ return FALSE; /* finish */ ++ } ++ ++ if (fread(data + I_HEADER_CHECKSUM, ++ sizeof(char), header_size - 1, fp) < header_size - 1) { ++ fatal_error("Invalid header (LHarc file ?)"); ++ return FALSE; /* finish */ ++ } ++ setup_get(data + I_HEADER_LEVEL); ++ hdr->header_level = get_byte(); ++ if (hdr->header_level != 2 && ++ fread(data + header_size, sizeof(char), 2, fp) < 2) { ++ fatal_error("Invalid header (LHarc file ?)"); ++ return FALSE; /* finish */ ++ } ++ ++ if (hdr->header_level >= 3) { ++ fatal_error("Unknown level header"); ++ return FALSE; ++ } ++ ++ setup_get(data + I_HEADER_CHECKSUM); ++ checksum = get_byte(); ++ ++ if (hdr->header_level == 2) { ++ hdr->header_size = header_size + checksum*256; ++ } else { ++ hdr->header_size = header_size; ++ } ++ bcopy(data + I_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ setup_get(data + I_PACKED_SIZE); ++ hdr->packed_size = get_longword(); ++ hdr->original_size = get_longword(); ++ hdr->last_modified_stamp = get_longword(); ++ hdr->attribute = get_byte(); ++ ++ if ((hdr->header_level = get_byte()) != 2) { ++ if (calc_sum(data + I_METHOD, header_size) != checksum) ++ warning("Checksum error (LHarc file?)", ""); ++ name_length = get_byte(); ++ for (i = 0; i < name_length; i++) ++ hdr->name[i] = (char) get_byte(); ++ hdr->name[name_length] = '\0'; ++ } ++ else { ++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp; ++ name_length = 0; ++ } ++ ++ /* defaults for other type */ ++ hdr->unix_mode = UNIX_FILE_REGULAR | UNIX_RW_RW_RW; ++ hdr->unix_gid = 0; ++ hdr->unix_uid = 0; ++ ++ if (hdr->header_level == 0) { ++ extend_size = header_size - name_length -22; ++ if (extend_size < 0) { ++ if (extend_size == -2) { ++ hdr->extend_type = EXTEND_GENERIC; ++ hdr->has_crc = FALSE; ++ } else { ++ fatal_error("Unkonwn header (lha file?)"); ++ return FALSE; ++ } ++ } else { ++ hdr->has_crc = TRUE; ++ hdr->crc = get_word(); ++ } ++ ++ if (extend_size >= 1) { ++ hdr->extend_type = get_byte(); ++ extend_size--; ++ } ++ if (hdr->extend_type == EXTEND_UNIX) { ++ if (extend_size >= 11) { ++ hdr->minor_version = get_byte(); ++ hdr->unix_last_modified_stamp = (time_t) get_longword(); ++ hdr->unix_mode = get_word(); ++ hdr->unix_uid = get_word(); ++ hdr->unix_gid = get_word(); ++ extend_size -= 11; ++ } else { ++ hdr->extend_type = EXTEND_GENERIC; ++ } ++ } ++ while (extend_size-- > 0) ++ dmy = get_byte(); ++ if (hdr->extend_type == EXTEND_UNIX) ++ return TRUE; ++ } else if (hdr->header_level == 1) { ++ hdr->has_crc = TRUE; ++ extend_size = header_size - name_length-25; ++ hdr->crc = get_word(); ++ hdr->extend_type = get_byte(); ++ while (extend_size-- > 0) ++ dmy = get_byte(); ++ } else { /* level 2 */ ++ hdr->has_crc = TRUE; ++ hdr->crc = get_word(); ++ hdr->extend_type = get_byte(); ++ } ++ ++ if (hdr->header_level > 0) { ++ /* Extend Header */ ++ if (hdr->header_level != 2) ++ setup_get(data + hdr->header_size); ++ ptr = get_ptr; ++ while ((header_size = get_word()) != 0) { ++ if (hdr->header_level != 2 && ++ ((data + LZHEADER_STRAGE - get_ptr < header_size) || ++ fread(get_ptr, sizeof(char), header_size, fp) < header_size)) { ++ fatal_error("Invalid header (LHa file ?)"); ++ return FALSE; ++ } ++ switch (get_byte()) { ++ case 0: ++ /* ++ * header crc ++ */ ++ setup_get(get_ptr + header_size - 3); ++ break; ++ case 1: ++ /* ++ * filename ++ */ ++ for (i = 0; i < header_size - 3; i++) ++ hdr->name[i] = (char) get_byte(); ++ hdr->name[header_size - 3] = '\0'; ++ name_length = header_size - 3; ++ break; ++ case 2: ++ /* ++ * directory ++ */ ++ for (i = 0; i < header_size - 3; i++) ++ dirname[i] = (char) get_byte(); ++ dirname[header_size - 3] = '\0'; ++ convdelim(dirname, DELIM); ++ dir_length = header_size - 3; ++ break; ++ case 0x40: ++ /* ++ * MS-DOS attribute ++ */ ++ if (hdr->extend_type == EXTEND_MSDOS || ++ hdr->extend_type == EXTEND_HUMAN || ++ hdr->extend_type == EXTEND_GENERIC) ++ hdr->attribute = get_word(); ++ break; ++ case 0x50: ++ /* ++ * UNIX permission ++ */ ++ if (hdr->extend_type == EXTEND_UNIX) ++ hdr->unix_mode = get_word(); ++ break; ++ case 0x51: ++ /* ++ * UNIX gid and uid ++ */ ++ if (hdr->extend_type == EXTEND_UNIX) { ++ hdr->unix_gid = get_word(); ++ hdr->unix_uid = get_word(); ++ } ++ break; ++ case 0x52: ++ /* ++ * UNIX group name ++ */ ++ setup_get(get_ptr + header_size - 3); ++ break; ++ case 0x53: ++ /* ++ * UNIX user name ++ */ ++ setup_get(get_ptr + header_size - 3); ++ break; ++ case 0x54: ++ /* ++ * UNIX last modified time ++ */ ++ if (hdr->extend_type == EXTEND_UNIX) ++ hdr->unix_last_modified_stamp = (time_t) get_longword(); ++ break; ++ default: ++ /* ++ * other headers ++ */ ++ setup_get(get_ptr + header_size - 3); ++ break; ++ } ++ } ++ if (hdr->header_level != 2 && get_ptr - ptr != 2) { ++ hdr->packed_size -= get_ptr - ptr - 2; ++ hdr->header_size += get_ptr - ptr - 2; ++ } ++ } ++ ++ switch (hdr->extend_type) { ++ case EXTEND_MSDOS: ++ msdos_to_unix_filename(hdr->name, name_length); ++ msdos_to_unix_filename(dirname, dir_length); ++ case EXTEND_HUMAN: ++ if (hdr->header_level == 2) ++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp; ++ else ++ hdr->unix_last_modified_stamp = ++ generic_to_unix_stamp(hdr->last_modified_stamp); ++ break; ++ ++#ifdef OSK ++ case EXTEND_OS68K: ++ case EXTEND_XOSK: ++#endif ++ case EXTEND_UNIX: ++ break; ++ ++ case EXTEND_MACOS: ++ macos_to_unix_filename(hdr->name, name_length); ++ /* macos_to_unix_filename(dirname, dir_length); */ ++ hdr->unix_last_modified_stamp = ++ generic_to_unix_stamp(hdr->last_modified_stamp); ++ break; ++ ++ default: ++ generic_to_unix_filename(hdr->name, name_length); ++ generic_to_unix_filename(dirname, dir_length); ++ if (hdr->header_level == 2) ++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp; ++ else ++ hdr->unix_last_modified_stamp = ++ generic_to_unix_stamp(hdr->last_modified_stamp); ++ } ++ ++ if (dir_length) { ++ strcat(dirname, hdr->name); ++ strcpy(hdr->name, dirname); ++ name_length += dir_length; ++ } ++ ++ return TRUE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++init_header(name, v_stat, hdr) ++ char *name; ++ struct stat *v_stat; ++ LzHeader *hdr; ++{ ++ int len; ++ ++ if (compress_method == LZHUFF5_METHOD_NUM) /* Changed N.Watazaki */ ++ bcopy(LZHUFF5_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ else if (compress_method) ++ bcopy(LZHUFF1_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ else ++ bcopy(LZHUFF0_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ ++ hdr->packed_size = 0; ++ hdr->original_size = v_stat->st_size; ++ hdr->last_modified_stamp = unix_to_generic_stamp(v_stat->st_mtime); ++ hdr->attribute = GENERIC_ATTRIBUTE; ++ hdr->header_level = header_level; ++ strcpy(hdr->name, name); ++ len = strlen(name); ++ hdr->crc = 0x0000; ++ hdr->extend_type = EXTEND_UNIX; ++ hdr->unix_last_modified_stamp = v_stat->st_mtime; ++ /* since 00:00:00 JAN.1.1970 */ ++#ifdef NOT_COMPATIBLE_MODE ++ /* Please need your modification in this space. */ ++#else ++ hdr->unix_mode = v_stat->st_mode; ++#endif ++ ++ hdr->unix_uid = v_stat->st_uid; ++ hdr->unix_gid = v_stat->st_gid; ++ ++ if (is_directory(v_stat)) { ++ bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE; ++ hdr->original_size = 0; ++ if (len > 0 && hdr->name[len - 1] != '/') ++ strcpy(&hdr->name[len++], "/"); ++ } ++ ++#ifdef S_IFLNK ++ if (is_symlink(v_stat)) { ++ char lkname[257]; ++ int len; ++ bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE); ++ hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE; ++ hdr->original_size = 0; ++ len = readlink(name, lkname, 256); ++ lkname[len] = (char)'\0'; ++ sprintf(hdr->name, "%s|%s", hdr->name, lkname); ++ } ++#endif ++ if (generic_format) ++ unix_to_generic_filename(hdr->name, len); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* Write unix extended header or generic header. */ ++void ++write_header(nafp, hdr) ++ FILE *nafp; ++ LzHeader *hdr; ++{ ++ int header_size; ++ int name_length; ++ char data[LZHEADER_STRAGE]; ++ char *p; ++ char *headercrc_ptr; ++ ++ bzero(data, LZHEADER_STRAGE); ++ bcopy(hdr->method, data + I_METHOD, METHOD_TYPE_STRAGE); ++ setup_put(data + I_PACKED_SIZE); ++ put_longword(hdr->packed_size); ++ put_longword(hdr->original_size); ++ ++ if (hdr->header_level == HEADER_LEVEL2) ++ put_longword((long) hdr->unix_last_modified_stamp); ++ else ++ put_longword(hdr->last_modified_stamp); ++ ++ switch (hdr->header_level) { ++ case HEADER_LEVEL0: ++ put_byte(hdr->attribute); ++ break; ++ case HEADER_LEVEL1: ++ case HEADER_LEVEL2: ++ put_byte(0x20); ++ break; ++ } ++ ++ put_byte(hdr->header_level); ++ ++ convdelim(hdr->name, DELIM2); ++ if (hdr->header_level != HEADER_LEVEL2) { ++ if (p = (char *) rindex(hdr->name, DELIM2)) ++ name_length = strlen(++p); ++ else ++ name_length = strlen(hdr->name); ++ put_byte(name_length); ++ bcopy(p ? p : hdr->name, data + I_NAME, name_length); ++ setup_put(data + I_NAME + name_length); ++ } ++ ++ put_word(hdr->crc); ++ if (header_level == HEADER_LEVEL0) { ++ if (generic_format) { ++ header_size = I_GENERIC_HEADER_BOTTOM - 2 + name_length; ++ data[I_HEADER_SIZE] = header_size; ++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size); ++ } else { ++ /* write old-style extend header */ ++ put_byte(EXTEND_UNIX); ++ put_byte(CURRENT_UNIX_MINOR_VERSION); ++ put_longword((long) hdr->unix_last_modified_stamp); ++ put_word(hdr->unix_mode); ++ put_word(hdr->unix_uid); ++ put_word(hdr->unix_gid); ++ header_size = I_UNIX_EXTEND_BOTTOM - 2 + name_length; ++ data[I_HEADER_SIZE] = header_size; ++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size); ++ } ++ } else { ++ /* write extend header. */ ++ char *ptr; ++ ++ if (generic_format) ++ put_byte(0x00); ++ else ++ put_byte(EXTEND_UNIX); ++ ++ ptr = put_ptr; ++ if (hdr->header_level == HEADER_LEVEL2) { ++ /* write common header */ ++ put_word(5); ++ put_byte(0x00); ++ headercrc_ptr = put_ptr; ++ put_word(0x0000); ++ } ++ ++ if (generic_format) { ++ header_size = put_ptr - data; /* +2 for last 0x0000 */ ++ } else { ++ put_word(5); ++ if (hdr->header_level == HEADER_LEVEL1) ++ header_size = put_ptr - data - 2; ++ put_byte(0x50); /* permission */ ++ put_word(hdr->unix_mode); ++ put_word(7); ++ put_byte(0x51); /* gid and uid */ ++ put_word(hdr->unix_gid); ++ put_word(hdr->unix_uid); ++ ++ if (p = (char *) rindex(hdr->name, DELIM2)) { ++ int i; ++ ++ name_length = p - hdr->name + 1; ++ put_word(name_length + 3); ++ put_byte(2); /* dirname */ ++ for (i = 0; i < name_length; i++) ++ put_byte(hdr->name[i]); ++ } ++ } /* if generic .. */ ++ ++ if (header_level != HEADER_LEVEL2) { ++ if (!generic_format) { ++ put_word(7); ++ put_byte(0x54); /* time stamp */ ++ put_longword(hdr->unix_last_modified_stamp); ++ } ++ hdr->packed_size += put_ptr - ptr; ++ ptr = put_ptr; ++ setup_put(data + I_PACKED_SIZE); ++ put_longword(hdr->packed_size); ++ put_ptr = ptr; ++ data[I_HEADER_SIZE] = header_size; ++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size); ++ } else { /* header level 2 */ ++ int i; ++ if (p = (char *) rindex(hdr->name, DELIM2)) ++ name_length = strlen(++p); ++ else { ++ p = hdr->name; ++ name_length = strlen(hdr->name); ++ } ++ put_word(name_length + 3); ++ put_byte(1); /* filename */ ++ for (i = 0; i < name_length; i++) ++ put_byte(*p++); ++ } /* if he.. != HEAD_LV2 */ ++ header_size = put_ptr - data; ++ } ++ ++ if (header_level == HEADER_LEVEL2) { ++ unsigned short hcrc; ++ setup_put(data + I_HEADER_SIZE); ++ put_word(header_size + 2); ++ /* common header */ ++ hcrc = calc_header_crc(data, (unsigned int) header_size + 2); ++ setup_put(headercrc_ptr); ++ put_word(hcrc); ++ } ++ ++ if (fwrite(data, sizeof(char), header_size + 2, nafp) == 0) ++ fatal_error("Cannot write to temporary file"); ++ ++ convdelim(hdr->name, DELIM); ++} ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* compile-command:"gcc -c header.c" */ ++/* End: */ +--- lha-1.14i.orig/debian/org/lharc.c ++++ lha-1.14i/debian/org/lharc.c +@@ -0,0 +1,1135 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* lharc.c -- append to archive */ ++/* */ ++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */ ++/* Modified Nobutaka Watazaki */ ++/* Thanks to H.Yoshizaki. (MS-DOS LHarc) */ ++/* */ ++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */ ++/* Ver. 0.01 Alpha Version (for 4.2BSD) 1989.05.28 Y.Tagawa */ ++/* Ver. 0.02 Alpha Version Rel.2 1989.05.29 Y.Tagawa */ ++/* Ver. 0.03 Release #3 Beta Version 1989.07.02 Y.Tagawa */ ++/* Ver. 0.03a Debug 1989.07.03 Y.Tagawa */ ++/* Ver. 0.03b Modified 1989.07.13 Y.Tagawa */ ++/* Ver. 0.03c Debug (Thanks to void@rena.dit.junet) */ ++/* 1989.08.09 Y.Tagawa */ ++/* Ver. 0.03d Modified (quiet and verbose) 1989.09.14 Y.Tagawa */ ++/* V1.00 Fixed 1989.09.22 Y.Tagawa */ ++/* V1.01 Bug Fixed 1989.12.25 Y.Tagawa */ ++/* */ ++/* DOS-Version Original LHx V C2.01 (C) H.Yohizaki */ ++/* */ ++/* V2.00 UNIX Lharc + DOS LHx -> OSK LHx 1990.11.01 Momozou */ ++/* V2.01 Minor Modified 1990.11.24 Momozou */ ++/* */ ++/* Ver. 0.02 LHx for UNIX 1991.11.18 M.Oki */ ++/* Ver. 0.03 LHa for UNIX 1991.12.17 M.Oki */ ++/* Ver. 0.04 LHa for UNIX beta version 1992.01.20 M.Oki */ ++/* Ver. 1.00 LHa for UNIX Fixed 1992.03.19 M.Oki */ ++/* */ ++/* Ver. 1.10 for Symblic Link 1993.06.25 N.Watazaki */ ++/* Ver. 1.11 for Symblic Link Bug Fixed 1993.08.18 N.Watazaki */ ++/* Ver. 1.12 for File Date Check 1993.10.28 N.Watazaki */ ++/* Ver. 1.13 Bug Fixed (Idicator calcurate) 1994.02.21 N.Watazaki */ ++/* Ver. 1.13a Bug Fixed (Sym. Link delete) 1994.03.11 N.Watazaki */ ++/* Ver. 1.13b Bug Fixed (Sym. Link delete) 1994.07.29 N.Watazaki */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14b,c Bug Fixed 1996.03.07 t.okamoto */ ++/* Ver. 1.14d Version up 1997.01.12 t.okamoto */ ++/* Ver. 1.14g Bug Fixed 2000.05.06 t.okamoto */ ++/* Ver. 1.14i Modified 2000.10.06 t.okamoto */ ++/* ------------------------------------------------------------------------ */ ++#define LHA_MAIN_SRC ++ ++#include "lha.h" ++ ++/* ------------------------------------------------------------------------ */ ++/* PROGRAM */ ++/* ------------------------------------------------------------------------ */ ++static int cmd = CMD_UNKNOWN; ++ ++/* 1996.8.13 t.okamoto */ ++#if 0 ++char **cmd_filev; ++int cmd_filec; ++ ++char *archive_name; ++char expanded_archive_name[FILENAME_LENGTH]; ++char temporary_name[FILENAME_LENGTH]; ++char backup_archive_name[FILENAME_LENGTH]; ++#endif ++ ++/* static functions */ ++static void sort_files(); ++static void print_version(); ++ ++char *extract_directory = NULL; ++char **xfilev; ++int xfilec = 257; ++ ++/* 1996.8.13 t.okamoto */ ++#if 0 ++char *writting_filename; ++char *reading_filename; ++ ++int archive_file_mode; ++int archive_file_gid; ++#endif ++/* ------------------------------------------------------------------------ */ ++static void ++init_variable() /* Added N.Watazaki */ ++{ ++/* options */ ++ quiet = FALSE; ++ text_mode = FALSE; ++ verbose = FALSE; ++ noexec = FALSE; /* debugging option */ ++ force = FALSE; ++ prof = FALSE; ++#ifndef SUPPORT_LH7 ++ compress_method = LZHUFF5_METHOD_NUM; ++#endif ++#ifdef SUPPORT_LH7 ++ compress_method = LZHUFF7_METHOD_NUM; ++#endif ++ ++ header_level = HEADER_LEVEL1; ++ quiet_mode = 0; ++ ++#ifdef EUC ++ euc_mode = FALSE; ++#endif ++ ++/* view command flags */ ++ verbose_listing = FALSE; ++ ++/* extract command flags */ ++ output_to_stdout = FALSE; ++ ++/* append command flags */ ++ new_archive = FALSE; ++ update_if_newer = FALSE; ++ delete_after_append = FALSE; ++ generic_format = FALSE; ++ ++ remove_temporary_at_error = FALSE; ++ recover_archive_when_interrupt = FALSE; ++ remove_extracting_file_when_interrupt = FALSE; ++ get_filename_from_stdin = FALSE; ++ ignore_directory = FALSE; ++ verify_mode = FALSE; ++ ++ noconvertcase = FALSE; ++ ++ extract_directory = NULL; ++ xfilec = 257; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* NOTES : Text File Format */ ++/* GENERATOR NewLine */ ++/* [generic] 0D 0A */ ++/* [MS-DOS] 0D 0A */ ++/* [OS9][MacOS] 0D */ ++/* [UNIX] 0A */ ++/* ------------------------------------------------------------------------ */ ++static void ++print_tiny_usage_and_exit() ++{ ++ fprintf(stderr, "\ ++LHarc for UNIX V 1.02 Copyright(C) 1989 Y.Tagawa\n\ ++LHx for MSDOS V C2.01 Copyright(C) 1990 H.Yoshizaki\n\ ++LHx(arc) for OSK V 2.01 Modified 1990 Momozou\n\ ++LHa for UNIX V 1.00 Copyright(C) 1992 Masaru Oki\n\ ++LHa for UNIX V 1.14 Modified 1995 Nobutaka Watazaki\n\ ++LHa for UNIX V 1.14i Modified 2000 Tsugio Okamoto\n\ ++"); ++ fprintf(stderr, "\ ++usage: lha [-]{axelvudmcp[q[num]][vnfodizg012]}[w=<dir>] archive_file [file...]\n\ ++commands: options:\n\ ++ a Add(or replace) to archive q{num} quiet (num:quiet mode)\n\ ++ x,e EXtract from archive v verbose\n\ ++ l,v List / Verbose List n not execute\n\ ++ u Update newer files to archive f force (over write at extract)\n\ ++ d Delete from archive t FILES are TEXT file\n"); ++#ifdef SUPPORT_LH7 ++ fprintf(stderr, "\ ++ m Move to archive (means 'ad') o[567] compression method (a/u)\n\ ++"); ++#endif ++#ifndef SUPPORT_LH7 ++ fprintf(stderr, "\ ++ m Move to archive (means 'ad') o use LHarc compatible method (a/u)\n\ ++"); ++#endif ++ fprintf(stderr, "\ ++ c re-Construct new archive w=<dir> specify extract directory (a/u/m/x/e)\n\ ++ p Print to STDOUT from archive d delete FILES after (a/u/c)\n\ ++ t Test file CRC in archive i ignore directory path (x/e)\n\ ++ z files not compress (a/u)\n\ ++ g Generic format (for compatibility)\n\ ++ or not convert case when extracting\n\ ++ 0/1/2 header level (a/u)\n\ ++"); ++#ifdef EUC ++ fprintf(stderr, "\ ++ e TEXT code convert from/to EUC\n\ ++"); ++#endif ++ exit(1); ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++main(argc, argv) ++ int argc; ++ char *argv[]; ++{ ++ char *p, inpbuf[256]; ++ ++ int i; ++ int ac; ++ char **av, *m; ++ ++ init_variable(); /* Added N.Watazaki */ ++ ++ ac = argc; ++ av = (char **)malloc( sizeof(char*)*argc ); ++ if (av == NULL) fatal_error("not enough memory\n"); ++ for (i=0; i<argc; i++) { ++ if ((av[i] = strdup( argv[i] )) == NULL) ++ fatal_error("not enough memory\n"); ++ } ++ ++ if (ac < 2) ++ print_tiny_usage_and_exit(); ++ ++ if (strcmp(av[1], "--version") == 0) { ++ print_version(); ++ exit(1); ++ } ++ ++ if (ac < 3) { ++ cmd = CMD_LIST; ++ av--; /* argv--; */ /* 1999.7.18 */ ++ ac++; /* argc++; */ ++ goto work; ++ } ++ ++ m = av[1]; ++ ++ if (m[0] == '-') ++ m++; ++ /* commands */ ++ switch (*m) { ++ case 'x': ++ case 'e': ++ cmd = CMD_EXTRACT; ++ break; ++ ++ case 'p': ++ output_to_stdout = TRUE; ++ cmd = CMD_EXTRACT; ++ break; ++ ++ case 'c': ++ new_archive = TRUE; ++ cmd = CMD_ADD; ++ break; ++ ++ case 'a': ++ cmd = CMD_ADD; ++ break; ++ ++ case 'd': ++ cmd = CMD_DELETE; ++ break; ++ ++ case 'u': ++ update_if_newer = TRUE; ++ cmd = CMD_ADD; ++ break; ++ ++ case 'm': ++ delete_after_append = TRUE; ++ cmd = CMD_ADD; ++ break; ++ ++ case 'v': ++ verbose_listing = TRUE; ++ cmd = CMD_LIST; ++ break; ++ ++ case 'l': ++ cmd = CMD_LIST; ++ break; ++ ++ case 't': ++ cmd = CMD_EXTRACT; ++ verify_mode = TRUE; ++ break; ++ ++ default: ++ print_tiny_usage_and_exit(); ++ ++ } ++ ++ /* options */ ++ /* p = &argv[1][1]; */ ++ p = m+1; ++ while ( *p != 0 ) { ++ switch ((*p++)) { ++ case 'q': ++ switch (*p) { ++ case '0': ++ case '1': ++ quiet_mode = *p - '0'; ++ ++p; ++ break; ++ case '2': ++ default: ++ quiet = TRUE; ++ break; ++ } ++ case 'f': ++ force = TRUE; ++ break; ++ case 'p': ++ prof = TRUE; ++ break; ++ case 'v': ++ verbose = TRUE; ++ break; ++ case 't': ++ text_mode = TRUE; ++ break; ++#ifdef EUC ++ case 'e': ++ text_mode = TRUE; ++ euc_mode = TRUE; ++ break; ++#endif ++ case 'n': ++ noexec = TRUE; ++ break; ++ case 'g': ++ generic_format = TRUE; ++ noconvertcase = TRUE; ++ header_level = 0; ++ break; ++ case 'd': ++ delete_after_append = TRUE; ++ break; ++ case 'o': ++ switch (*p) { ++ case 0: ++ compress_method = LZHUFF1_METHOD_NUM; ++ header_level = 0; ++ break; ++ case '5': ++ compress_method = LZHUFF5_METHOD_NUM; ++ p++; ++ break; ++#ifdef SUPPORT_LH7 ++ case '6': ++ compress_method = LZHUFF6_METHOD_NUM; ++ p++; ++ break; ++ case '7': ++ compress_method = LZHUFF7_METHOD_NUM; ++ p++; ++ break; ++#endif ++ default: ++ fprintf(stderr, "LHa: error option o%c\n", p[-1]); ++ exit(1); ++ } ++ break; ++ case 'z': ++ compress_method = LZHUFF0_METHOD_NUM; /* Changed N.Watazaki */ ++ break; ++ case 'i': ++ ignore_directory = TRUE; ++ break; ++ case 'w': ++ if (*p == '=') ++ p++; ++ extract_directory = p; ++ while (*p) ++ p++; ++ break; ++ case '0': ++ header_level = HEADER_LEVEL0; ++ break; ++ case '1': ++ header_level = HEADER_LEVEL1; ++ break; ++ case '2': ++ header_level = HEADER_LEVEL2; ++ break; ++ default: ++ fprintf(stderr, "LHa: Unknown option '%c'.\n", p[-1]); ++ exit(1); ++ } ++ } ++ ++work: ++ /* archive file name */ ++ archive_name = av[2]; ++ ++ if (!strcmp(archive_name, "-")) { ++ if (!isatty(1) && cmd == CMD_ADD) ++ quiet = TRUE; ++ } ++ else { ++ if (ac == 3 && !isatty(0)) { /* 1999.7.18 */ ++ get_filename_from_stdin = TRUE; ++ } ++ } ++ ++ /* target file name */ ++ if (get_filename_from_stdin) { ++ cmd_filec = 0; ++ if ((xfilev = (char **) malloc(sizeof(char *) * xfilec)) == NULL) ++ fatal_error("Virtual memory exhausted\n"); ++ while (fgets(inpbuf, sizeof(inpbuf), stdin)) { ++ /* delete \n if it exist */ ++ i=0; p=inpbuf; ++ while (i < sizeof(inpbuf) && p != 0) { ++ if (*p == '\n') { ++ *p = 0; ++ break; ++ } ++ p++; i++; ++ } ++ ++ if (cmd_filec >= xfilec) { ++ xfilec += 256; ++ cmd_filev = (char **) realloc(xfilev, ++ sizeof(char *) * xfilec); ++ if (cmd_filev == NULL) ++ fatal_error("Virtual memory exhausted\n"); ++ xfilev = cmd_filev; ++ } ++ if (strlen(inpbuf) < 1) ++ continue; ++ if ((xfilev[cmd_filec++] = (char *) strdup(inpbuf)) == NULL) ++ fatal_error("Virtual memory exhausted\n"); ++ } ++ xfilev[cmd_filec] = NULL; ++ cmd_filev = xfilev; ++ } else { ++ cmd_filec = ac - 3; ++ cmd_filev = av + 3; ++ } ++ sort_files(); ++ ++ /* make crc table */ ++ make_crctable(); ++ ++ switch (cmd) { ++ case CMD_EXTRACT: ++ cmd_extract(); ++ break; ++ case CMD_ADD: ++ cmd_add(); ++ break; ++ case CMD_LIST: ++ cmd_list(); ++ break; ++ case CMD_DELETE: ++ cmd_delete(); ++ break; ++ } ++ ++#ifdef USE_PROF ++ if (!prof) ++ exit(0); ++#endif ++ ++ return 0; ++} ++ ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++ ++/* ------------------------------------------------------------------------ */ ++static void ++print_version() ++{ ++ fprintf(stderr, "%s\n", LHA_VERSION); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++message_1(title, subject, name) ++ char *title, *subject, *name; ++{ ++ fprintf(stderr, "LHa: %s%s ", title, subject); ++ fflush(stderr); ++ ++ if (errno == 0) ++ fprintf(stderr, "%s\n", name); ++ else ++ perror(name); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++message(subject, name) ++ char *subject, *name; ++{ ++ message_1("", subject, name); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++warning(subject, name) ++ char *subject, *name; ++{ ++ message_1("Warning: ", subject, name); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++error(subject, msg) ++ char *subject, *msg; ++{ ++ message_1("Error: ", subject, msg); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++fatal_error(msg) ++ char *msg; ++{ ++ message_1("Fatal error:", "", msg); ++ ++ if (remove_temporary_at_error) ++ unlink(temporary_name); ++ ++ exit(1); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++write_error() ++{ ++ fatal_error(writting_filename); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++read_error() ++{ ++ fatal_error(reading_filename); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++interrupt(signo) ++ int signo; ++{ ++ errno = 0; ++ message("Interrupted\n", ""); ++ ++ if (temporary_fp) ++ fclose(temporary_fp); ++ unlink(temporary_name); ++ if (recover_archive_when_interrupt) ++ rename(backup_archive_name, archive_name); ++ if (remove_extracting_file_when_interrupt) { ++ errno = 0; ++ message("Removing", writting_filename); ++ unlink(writting_filename); ++ } ++ signal(SIGINT, SIG_DFL); ++ signal(SIGHUP, SIG_DFL); ++ kill(getpid(), signo); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++static int ++sort_by_ascii(a, b) ++ char **a, **b; ++{ ++ register char *p, *q; ++ register int c1, c2; ++ ++ p = *a, q = *b; ++ if (generic_format) { ++ do { ++ c1 = *(unsigned char *) p++; ++ c2 = *(unsigned char *) q++; ++ if (!c1 || !c2) ++ break; ++ if (islower(c1)) ++ c1 = toupper(c1); ++ if (islower(c2)) ++ c2 = toupper(c2); ++ } ++ while (c1 == c2); ++ return c1 - c2; ++ } ++ else { ++ while (*p == *q && *p != '\0') ++ p++, q++; ++ return *(unsigned char *) p - *(unsigned char *) q; ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++sort_files() ++{ ++ if (cmd_filec > 1) ++ qsort(cmd_filev, cmd_filec, sizeof(char *), sort_by_ascii); ++} ++ ++/* ------------------------------------------------------------------------ */ ++char * ++xmalloc(size) ++ int size; ++{ ++ char *p = (char *) malloc(size); ++ if (!p) ++ fatal_error("Not enough memory"); ++ return p; ++} ++ ++/* ------------------------------------------------------------------------ */ ++char * ++xrealloc(old, size) ++ char *old; ++ int size; ++{ ++ char *p = (char *) realloc(old, size); ++ if (!p) ++ fatal_error("Not enough memory"); ++ return p; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* STRING POOL */ ++/* ------------------------------------------------------------------------ */ ++/* ++ string pool : ++ +-------------+-------------+------+-------------+----------+ ++ | N A M E 1 \0| N A M E 2 \0| .... | N A M E n \0| | ++ +-------------+-------------+------+-------------+----------+ ++ ^ ^ ^ buffer+0 buffer+used buffer+size ++ ++ vector : ++ +---------------+---------------+------------- -----------------+ ++ | pointer to | pointer to | pointer to ... pointer to | ++ | stringpool | N A M E 1 | N A M E 2 ... N A M E n | ++ +---------------+---------------+------------- -------------+ ++ ^ malloc base returned ++*/ ++ ++/* ------------------------------------------------------------------------ */ ++void ++init_sp(sp) ++ struct string_pool *sp; ++{ ++ sp->size = 1024 - 8; /* any ( >=0 ) */ ++ sp->used = 0; ++ sp->n = 0; ++ sp->buffer = (char *) xmalloc(sp->size * sizeof(char)); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++add_sp(sp, name, len) ++ struct string_pool *sp; ++ char *name; /* stored '\0' at tail */ ++ int len; /* include '\0' */ ++{ ++ while (sp->used + len > sp->size) { ++ sp->size *= 2; ++ sp->buffer = (char *) xrealloc(sp->buffer, sp->size * sizeof(char)); ++ } ++ bcopy(name, sp->buffer + sp->used, len); ++ sp->used += len; ++ sp->n++; ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++finish_sp(sp, v_count, v_vector) ++ register struct string_pool *sp; ++ int *v_count; ++ char ***v_vector; ++{ ++ int i; ++ register char *p; ++ char **v; ++ ++ v = (char **) xmalloc((sp->n + 1) * sizeof(char *)); ++ *v++ = sp->buffer; ++ *v_vector = v; ++ *v_count = sp->n; ++ p = sp->buffer; ++ for (i = sp->n; i; i--) { ++ *v++ = p; ++ if (i - 1) ++ p += strlen(p) + 1; ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++free_sp(vector) ++ char **vector; ++{ ++ vector--; ++ free(*vector); /* free string pool */ ++ free(vector); ++} ++ ++ ++/* ------------------------------------------------------------------------ */ ++/* READ DIRECTORY FILES */ ++/* ------------------------------------------------------------------------ */ ++static boolean ++include_path_p(path, name) ++ char *path, *name; ++{ ++ char *n = name; ++ while (*path) ++ if (*path++ != *n++) ++ return (path[-1] == '/' && *n == '\0'); ++ return (*n == '/' || (n != name && path[-1] == '/' && n[-1] == '/')); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++cleaning_files(v_filec, v_filev) ++ int *v_filec; ++ char ***v_filev; ++{ ++ char *flags; ++ struct stat stbuf; ++ ++ register char **filev = *v_filev; ++ register int filec = *v_filec; ++ register char *p; ++ register int i, j; ++ ++ if (filec == 0) ++ return; ++ ++ flags = xmalloc(filec * sizeof(char)); ++ ++ /* flags & 0x01 : 1: ignore */ ++ /* flags & 0x02 : 1: directory, 0 : regular file */ ++ /* flags & 0x04 : 1: need delete */ ++ ++ ++ for (i = 0; i < filec; i++) ++ if (GETSTAT(filev[i], &stbuf) < 0) { ++ flags[i] = 0x04; ++ fprintf(stderr, ++ "LHa: Cannot access \"%s\", ignored.\n", filev[i]); ++ } ++ else { ++ if (is_regularfile(&stbuf)) ++ flags[i] = 0x00; ++ else if (is_directory(&stbuf)) ++ flags[i] = 0x02; ++#ifdef S_IFLNK ++ else if (is_symlink(&stbuf)) /* t.okamoto */ ++ flags[i] = 0x00; ++#endif ++ else { ++ flags[i] = 0x04; ++ fprintf(stderr, ++ "LHa: Cannot archive \"%s\", ignored.\n", filev[i]); ++ } ++ } ++ errno = 0; ++ ++ for (i = 0; i < filec; i++) { ++ p = filev[i]; ++ if ((flags[i] & 0x07) == 0x00) { /* regular file, not ++ * deleted/ignored */ ++ for (j = i + 1; j < filec; j++) { ++ if ((flags[j] & 0x07) == 0x00) { /* regular file, not ++ * deleted/ignored */ ++ if (STREQU(p, filev[j])) ++ flags[j] = 0x04; /* delete */ ++ } ++ } ++ } ++ else if ((flags[i] & 0x07) == 0x02) { /* directory, not ++ * deleted/ignored */ ++ for (j = i + 1; j < filec; j++) { ++ if ((flags[j] & 0x07) == 0x00) { /* regular file, not ++ * deleted/ignored */ ++ if (include_path_p(p, filev[j])) ++ flags[j] = 0x04; /* delete */ ++ } ++ else if ((flags[j] & 0x07) == 0x02) { /* directory, not ++ * deleted/ignored */ ++ if (include_path_p(p, filev[j])) ++ flags[j] = 0x04; /* delete */ ++ } ++ } ++ } ++ } ++ ++ for (i = j = 0; i < filec; i++) { ++ if ((flags[i] & 0x04) == 0) { ++ if (i != j) ++ filev[j] = filev[i]; ++ j++; ++ } ++ } ++ *v_filec = j; ++ ++ free(flags); ++} ++ ++/* ------------------------------------------------------------------------ */ ++#ifdef NODIRECTORY ++/* please need your imprementation */ ++boolean ++find_files(name, v_filec, v_filev) ++ char *name; ++ int *v_filec; ++ char ***v_filev; ++{ ++ return FALSE; /* DUMMY */ ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++free_files(filec, filev) ++ int filec; ++ char **filev; ++{ ++ /* do nothing */ ++} ++/* ------------------------------------------------------------------------ */ ++#else ++boolean ++find_files(name, v_filec, v_filev) ++ char *name; ++ int *v_filec; ++ char ***v_filev; ++{ ++ struct string_pool sp; ++ char newname[FILENAME_LENGTH]; ++ int len, n; ++ DIR *dirp; ++ DIRENTRY *dp; ++ struct stat tmp_stbuf, arc_stbuf, fil_stbuf; ++ ++ strcpy(newname, name); ++ len = strlen(name); ++ if (len > 0 && newname[len - 1] != '/') ++ newname[len++] = '/'; ++ ++ dirp = opendir(name); ++ if (!dirp) ++ return FALSE; ++ ++ init_sp(&sp); ++ ++ GETSTAT(temporary_name, &tmp_stbuf); ++ GETSTAT(archive_name, &arc_stbuf); ++ ++ for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) { ++ n = NAMLEN(dp); ++ strncpy(newname + len, dp->d_name, n); ++ newname[len + n] = '\0'; ++ if (GETSTAT(newname, &fil_stbuf) < 0) ++ continue; ++#ifdef NO_INODE ++ if ( dp->d_name[0] != '.' || ++ (n != 1 && ++ (dp->d_name[1] != '.' || ++ n != 2)) ) { ++ add_sp(&sp, newname, len+n+1); ++ } ++#else ++ if ((dp->d_ino != 0) && ++ /* exclude '.' and '..' */ ++ ((dp->d_name[0] != '.') || ++ ((n != 1) && ++ ((dp->d_name[1] != '.') || ++ (n != 2)))) && ++ ((tmp_stbuf.st_dev != fil_stbuf.st_dev || ++ tmp_stbuf.st_ino != fil_stbuf.st_ino) && ++ (arc_stbuf.st_dev != fil_stbuf.st_dev || ++ arc_stbuf.st_ino != fil_stbuf.st_ino))) { ++ add_sp(&sp, newname, len + n + 1); ++ } ++#endif ++ } ++ closedir(dirp); ++ finish_sp(&sp, v_filec, v_filev); ++ if (*v_filec > 1) ++ qsort(*v_filev, *v_filec, sizeof(char *), sort_by_ascii); ++ cleaning_files(v_filec, v_filev); ++ ++ return TRUE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++free_files(filec, filev) ++ int filec; ++ char **filev; ++{ ++ free_sp(filev); ++} ++#endif ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++/* Build temporary file name and store to TEMPORARY_NAME */ ++void ++build_temporary_name() ++{ ++#ifdef TMP_FILENAME_TEMPLATE ++ /* "/tmp/lhXXXXXX" etc. */ ++ if (extract_directory == NULL) { ++ strcpy(temporary_name, TMP_FILENAME_TEMPLATE); ++ } ++ else { ++ sprintf(temporary_name, "%s/lhXXXXXX", extract_directory); ++ } ++#ifdef MKSTEMP ++ mkstemp(temporary_name); ++#else ++ mktemp(temporary_name); ++#endif ++#else ++ char *p, *s; ++ ++ strcpy(temporary_name, archive_name); ++ for (p = temporary_name, s = (char *) 0; *p; p++) ++ if (*p == '/') ++ s = p; ++ strcpy((s ? s + 1 : temporary_name), "lhXXXXXX"); ++#ifdef MKSTEMP ++ mkstemp(temporary_name); ++#else ++ mktemp(temporary_name); ++#endif ++#endif ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++modify_filename_extention(buffer, ext) ++ char *buffer; ++ char *ext; ++{ ++ register char *p, *dot; ++ ++ for (p = buffer, dot = (char *) 0; *p; p++) { ++ if (*p == '.') ++ dot = p; ++ else if (*p == '/') ++ dot = (char *) 0; ++ } ++ ++ if (dot) ++ p = dot; ++ ++ strcpy(p, ext); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* build backup file name */ ++void ++build_backup_name(buffer, original) ++ char *buffer; ++ char *original; ++{ ++ strcpy(buffer, original); ++ modify_filename_extention(buffer, BACKUPNAME_EXTENTION); /* ".bak" */ ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++build_standard_archive_name(buffer, orginal) ++ char *buffer; ++ char *orginal; ++{ ++ strcpy(buffer, orginal); ++ modify_filename_extention(buffer, ARCHIVENAME_EXTENTION); /* ".lzh" */ ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++boolean ++need_file(name) ++ char *name; ++{ ++ int i; ++ ++ if (cmd_filec == 0) ++ return TRUE; ++ ++ for (i = 0; i < cmd_filec; i++) { ++ if (patmatch(cmd_filev[i], name, 0)) ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++FILE * ++xfopen(name, mode) ++ char *name, *mode; ++{ ++ FILE *fp; ++ ++ if ((fp = fopen(name, mode)) == NULL) ++ fatal_error(name); ++ ++ return fp; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++static boolean ++open_old_archive_1(name, v_fp) ++ char *name; ++ FILE **v_fp; ++{ ++ FILE *fp; ++ struct stat stbuf; ++ ++ if (stat(name, &stbuf) >= 0 && ++ is_regularfile(&stbuf) && ++ (fp = fopen(name, READ_BINARY)) != NULL) { ++ *v_fp = fp; ++ archive_file_gid = stbuf.st_gid; ++ archive_file_mode = stbuf.st_mode; ++ return TRUE; ++ } ++ ++ *v_fp = NULL; ++ archive_file_gid = -1; ++ return FALSE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++FILE * ++open_old_archive() ++{ ++ FILE *fp; ++ char *p; ++ ++ if (!strcmp(archive_name, "-")) { ++ if (cmd == CMD_EXTRACT || cmd == CMD_LIST) ++ return stdin; ++ else ++ return NULL; ++ } ++ if (p = (char *) rindex(archive_name, '.')) { ++ if (strucmp(".LZH", p) == 0 ++ || strucmp(".LZS", p) == 0 ++ || strucmp(".COM", p) == 0 /* DOS SFX */ ++ || strucmp(".EXE", p) == 0 ++ || strucmp(".X", p) == 0 /* HUMAN SFX */ ++ || strucmp(".BAK", p) == 0) { /* for BackUp */ ++ open_old_archive_1(archive_name, &fp); ++ return fp; ++ } ++ } ++ ++ if (open_old_archive_1(archive_name, &fp)) ++ return fp; ++ sprintf(expanded_archive_name, "%s.lzh", archive_name); ++ if (open_old_archive_1(expanded_archive_name, &fp)) { ++ archive_name = expanded_archive_name; ++ return fp; ++ } ++ /* ++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name = ++ * expanded_archive_name; return NULL; } ++ */ ++ sprintf(expanded_archive_name, "%s.lzs", archive_name); ++ if (open_old_archive_1(expanded_archive_name, &fp)) { ++ archive_name = expanded_archive_name; ++ return fp; ++ } ++ /* ++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name = ++ * expanded_archive_name; return NULL; } ++ */ ++ /* ++ * sprintf( expanded_archive_name , "%s.lzh",archive_name); ++ * archive_name = expanded_archive_name; ++ */ ++ return NULL; ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++inquire(msg, name, selective) ++ char *msg, *name, *selective; ++{ ++ char buffer[1024]; ++ char *p; ++ ++ for (;;) { ++ fprintf(stderr, "%s %s ", name, msg); ++ fflush(stderr); ++ ++ fgets(buffer, 1024, stdin); ++ ++ for (p = selective; *p; p++) ++ if (buffer[0] == *p) ++ return p - selective; ++ } ++ /* NOTREACHED */ ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++write_archive_tail(nafp) ++ FILE *nafp; ++{ ++ putc(0x00, nafp); ++} ++ ++/* ------------------------------------------------------------------------ */ ++void ++copy_old_one(oafp, nafp, hdr) ++ FILE *oafp, *nafp; ++ LzHeader *hdr; ++{ ++ if (noexec) { ++ fseek(oafp, (long) (hdr->header_size + 2) + hdr->packed_size, SEEK_CUR); ++ } ++ else { ++ reading_filename = archive_name; ++ writting_filename = temporary_name; ++ if (hdr->header_level != 2) { ++ copyfile(oafp, nafp, ++ (long) (hdr->header_size + 2) + hdr->packed_size, 0); ++ } else { ++ copyfile(oafp, nafp, ++ (long) (hdr->header_size) + hdr->packed_size, 0); ++ } ++ } ++} ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* compile-command:"gcc -c lharc.c" */ ++/* End: */ +--- lha-1.14i.orig/debian/org/util.c ++++ lha-1.14i/debian/org/util.c +@@ -0,0 +1,375 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* util.c -- LHarc Util */ ++/* */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14e Support for sfx archives 1999.05.28 T.Okamoto */ ++/* ------------------------------------------------------------------------ */ ++#include "lha.h" ++/* ++ * util.c - part of LHa for UNIX Feb 26 1992 modified by Masaru Oki Mar 4 ++ * 1992 modified by Masaru Oki #ifndef USESTRCASECMP added. Mar 31 1992 ++ * modified by Masaru Oki #ifdef NOMEMSET added. ++ */ ++#include <errno.h> ++ ++/* ------------------------------------------------------------------------ */ ++extern unsigned short crc; ++extern int quiet; ++/* ------------------------------------------------------------------------ */ ++long ++copyfile(f1, f2, size, crc_flg) /* return: size of source file */ ++ FILE *f1; ++ FILE *f2; ++ long size; ++ int crc_flg;/* 0: no crc, 1: crc check, 2: extract, 3: ++ * append */ ++{ ++ unsigned short xsize; ++ char *buf; ++ long rsize = 0; ++ ++ if ((buf = (char *) malloc(BUFFERSIZE)) == NULL) ++ fatal_error("virtual memory exhausted.\n"); ++ crc = 0; ++ if ((crc_flg == 2 || crc_flg) && text_mode) ++ init_code_cache(); ++ while (size > 0) { ++ /* read */ ++ if (crc_flg == 3 && text_mode) { ++ xsize = fread_txt(buf, BUFFERSIZE, f1); ++ if (xsize == 0) ++ break; ++ if (ferror(f1)) { ++ fatal_error("file read error\n"); ++ } ++ } ++ else { ++ xsize = (size > BUFFERSIZE) ? BUFFERSIZE : size; ++ if (fread(buf, 1, xsize, f1) != xsize) { ++ fatal_error("file read error\n"); ++ } ++ } ++ /* write */ ++ if (f2) { ++ if (crc_flg == 2 && text_mode) { ++ if (fwrite_txt(buf, xsize, f2)) { ++ fatal_error("file write error\n"); ++ } ++ } ++ else { ++ if (fwrite(buf, 1, xsize, f2) != xsize) { ++ fatal_error("file write error\n"); ++ } ++ } ++ } ++ /* calculate crc */ ++ if (crc_flg) { ++ calccrc(buf, xsize); ++ } ++ rsize += xsize; ++ if (crc_flg != 3 || !text_mode) ++ size -= xsize; ++ } ++ free(buf); ++ return rsize; ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++encode_stored_crc(ifp, ofp, size, original_size_var, write_size_var) ++ FILE *ifp, *ofp; ++ long size; ++ long *original_size_var; ++ long *write_size_var; ++{ ++ int save_quiet; ++ ++ save_quiet = quiet; ++ quiet = 1; ++ size = copyfile(ifp, ofp, size, 3); ++ *original_size_var = *write_size_var = size; ++ quiet = save_quiet; ++ return crc; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* convert path delimit ++ erreturns *filename */ ++/* ------------------------------------------------------------------------ */ ++unsigned char * ++convdelim(path, delim) ++ unsigned char *path; ++ unsigned char delim; ++{ ++ unsigned char c; ++ unsigned char *p; ++#ifdef MULTIBYTE_CHAR ++ int kflg; ++ ++ kflg = 0; ++#endif ++ for (p = path; (c = *p) != 0; p++) { ++#ifdef MULTIBYTE_CHAR ++ if (kflg) { ++ kflg = 0; ++ } ++ else if (MULTIBYTE_FIRST_P(c)) { ++ kflg = 1; ++ } ++ else ++#endif ++ if (c == '\\' || c == DELIM || c == DELIM2) { ++ *p = delim; ++ path = p + 1; ++ } ++ } ++ return path; ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* If TRUE, archive file name is msdos SFX file name. */ ++boolean ++archive_is_msdos_sfx1(name) ++ char *name; ++{ ++ int len = strlen(name); ++ ++ return ((len >= 4) && ++ (strucmp(".COM", name + len - 4) == 0 || ++ strucmp(".EXE", name + len - 4) == 0)) || ++ ((len >= 2) && ++ (strucmp(".x", name + len - 2) == 0)); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* skip SFX header */ ++boolean ++skip_msdos_sfx1_code(fp) ++ FILE *fp; ++{ ++ unsigned char buffer[MAXSFXCODE]; ++ unsigned char *p, *q; ++ int n; ++ ++ n = fread(buffer, sizeof(char), MAXSFXCODE, fp); ++ ++ for (p = buffer + 2, q = buffer + n - /* 5 */ (I_HEADER_LEVEL+1)-2; p < q; p++) { ++ /* found "-l??-" keyword (as METHOD type string) */ ++ if (p[0] == '-' && p[1] == 'l' && p[4] == '-') { ++ /* size and checksum validate check */ ++ if ( (p[I_HEADER_LEVEL-2] == 0 || p[I_HEADER_LEVEL-2] == 0) ++ && p[I_HEADER_SIZE-2] > 20 ++ && p[I_HEADER_CHECKSUM-2] == calc_sum(p, p[-2])) { ++ fseek(fp, ((p - 2) - buffer) - n, SEEK_CUR); ++ return TRUE; ++ } else if (p[I_HEADER_LEVEL-2] == 2 && p[I_HEADER_SIZE-2] >= 24 ++ && p[I_ATTRIBUTE-2] == 0x20) { ++ fseek(fp, ((p - 2) - buffer) - n, SEEK_CUR); ++ return TRUE; ++ } ++ } ++ } ++ ++ fseek(fp, -n, SEEK_CUR); ++ return FALSE; ++} ++ ++/* ++ * strdup(3) ++ */ ++ ++/* ------------------------------------------------------------------------ */ ++#ifdef NOSTRDUP ++char * ++strdup(buf) ++ char *buf; ++{ ++ char *p; ++ ++ if ((p = (char *) malloc(strlen(buf) + 1)) == NULL) ++ return NULL; ++ strcpy(p, buf); ++ return p; ++} ++#endif ++ ++/* ++ * memmove( char *dst , char *src , size_t cnt ) ++ */ ++ ++/* ------------------------------------------------------------------------ */ ++#if defined(NOBSTRING) && !defined(__STDC__) ++void * ++memmove(dst, src, cnt) ++ register char *dst, *src; ++ register int cnt; ++{ ++ if (dst == src) ++ return dst; ++ if (src > dst) { ++ while (--cnt >= 0) ++ *dst++ = *src++; ++ } ++ else { ++ dst += cnt; ++ src += cnt; ++ while (--cnt >= 0) ++ *--dst = *--src; ++ } ++ return dst; ++} ++#endif ++ ++/* ++ * rename - change the name of file 91.11.02 by Tomohiro Ishikawa ++ * (ishikawa@gaia.cow.melco.CO.JP) 92.01.20 little modified (added #ifdef) by ++ * Masaru Oki 92.01.28 added mkdir() and rmdir() by Tomohiro Ishikawa ++ */ ++ ++#if defined(NOFTRUNCATE) && !defined(_MINIX) ++ ++/* ------------------------------------------------------------------------ */ ++int ++rename(from, to) ++ char *from, *to; ++{ ++ struct stat s1, s2; ++ extern int errno; ++ ++ if (stat(from, &s1) < 0) ++ return (-1); ++ /* is 'FROM' file a directory? */ ++ if ((s1.st_mode & S_IFMT) == S_IFDIR) { ++ errno = ENOTDIR; ++ return (-1); ++ } ++ if (stat(to, &s2) >= 0) { /* 'TO' exists! */ ++ /* is 'TO' file a directory? */ ++ if ((s2.st_mode & S_IFMT) == S_IFDIR) { ++ errno = EISDIR; ++ return (-1); ++ } ++ if (unlink(to) < 0) ++ return (-1); ++ } ++ if (link(from, to) < 0) ++ return (-1); ++ if (unlink(from) < 0) ++ return (-1); ++ return (0); ++} ++#endif /* NOFTRUNCATE */ ++/* ------------------------------------------------------------------------ */ ++ ++#ifdef NOMKDIR ++#ifndef MKDIRPATH ++#define MKDIRPATH "/bin/mkdir" ++#endif ++#ifndef RMDIRPATH ++#define RMDIRPATH "/bin/rmdir" ++#endif ++int ++rmdir(path) ++ char *path; ++{ ++ int stat, rtn = 0; ++ char *cmdname; ++ if ((cmdname = (char *) malloc(strlen(RMDIRPATH) + 1 + strlen(path) + 1)) ++ == 0) ++ return (-1); ++ strcpy(cmdname, RMDIRPATH); ++ *(cmdname + strlen(RMDIRPATH)) = ' '; ++ strcpy(cmdname + strlen(RMDIRPATH) + 1, path); ++ if ((stat = system(cmdname)) < 0) ++ rtn = -1; /* fork or exec error */ ++ else if (stat) { /* RMDIR command error */ ++ errno = EIO; ++ rtn = -1; ++ } ++ free(cmdname); ++ return (rtn); ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++mkdir(path, mode) ++ char *path; ++ int mode; ++{ ++ int child, stat; ++ char *cmdname, *cmdpath = MKDIRPATH; ++ if ((cmdname = (char *) strrchr(cmdpath, '/')) == (char *) 0) ++ cmdname = cmdpath; ++ if ((child = fork()) < 0) ++ return (-1); /* fork error */ ++ else if (child) { /* parent process */ ++ while (child != wait(&stat)) /* ignore signals */ ++ continue; ++ } ++ else { /* child process */ ++ int maskvalue; ++ maskvalue = umask(0); /* get current umask() value */ ++ umask(maskvalue | (0777 & ~mode)); /* set it! */ ++ execl(cmdpath, cmdname, path, (char *) 0); ++ /* never come here except execl is error */ ++ return (-1); ++ } ++ if (stat != 0) { ++ errno = EIO; /* cannot get error num. */ ++ return (-1); ++ } ++ return (0); ++} ++#endif ++ ++/* ++ * strucmp modified: Oct 29 1991 by Masaru Oki ++ */ ++ ++#ifndef USESTRCASECMP ++static int ++my_toupper(n) ++ register int n; ++{ ++ if (n >= 'a' && n <= 'z') ++ return n & (~('a' - 'A')); ++ return n; ++} ++ ++/* ------------------------------------------------------------------------ */ ++int ++strucmp(s, t) ++ register char *s, *t; ++{ ++ while (my_toupper(*s++) == my_toupper(*t++)) ++ if (!*s || !*t) ++ break; ++ if (!*s && !*t) ++ return 0; ++ return 1; ++} ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++#ifdef NOMEMSET ++/* Public Domain memset(3) */ ++char * ++memset(s, c, n) ++ char *s; ++ int c, n; ++{ ++ char *p = s; ++ while (n--) ++ *p++ = (char) c; ++ return s; ++} ++#endif ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* compile-command:"gcc -c util.c" */ ++/* End: */ +--- lha-1.14i.orig/debian/org/lhext.c ++++ lha-1.14i/debian/org/lhext.c +@@ -0,0 +1,425 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* lhext.c -- LHarc extract */ ++/* */ ++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */ ++/* Ver. 1.00 Fixed 1989.09.22 Y.Tagawa */ ++/* Ver. 0.03 LHa for UNIX 1991.12.17 M.Oki */ ++/* Ver. 1.12 LHa for UNIX 1993.10.01 N.Watazaki */ ++/* Ver. 1.13b Symbolic Link Update Bug Fix 1994.06.21 N.Watazaki */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14e bugfix 1999.04.30 T.Okamoto */ ++/* ------------------------------------------------------------------------ */ ++#include "lha.h" ++/* ------------------------------------------------------------------------ */ ++static int skip_flg = FALSE; /* FALSE..No Skip , TRUE..Skip */ ++static char *methods[] = ++{ ++ LZHUFF0_METHOD, LZHUFF1_METHOD, LZHUFF2_METHOD, LZHUFF3_METHOD, ++ LZHUFF4_METHOD, LZHUFF5_METHOD, LZHUFF6_METHOD, LZHUFF7_METHOD, ++ LARC_METHOD, LARC5_METHOD, LARC4_METHOD, ++ LZHDIRS_METHOD, ++ NULL ++}; ++ ++/* ------------------------------------------------------------------------ */ ++static boolean ++inquire_extract(name) ++ char *name; ++{ ++ struct stat stbuf; ++ ++ skip_flg = FALSE; ++ if (stat(name, &stbuf) >= 0) { ++ if (!is_regularfile(&stbuf)) { ++ error("Already exist (not a file)", name); ++ return FALSE; ++ } ++ ++ if (noexec) { ++ printf("EXTRACT %s but file is exist.\n", name); ++ return FALSE; ++ } ++ else if (!force) { ++ if (!isatty(0)) ++ return FALSE; ++ ++ switch (inquire("OverWrite ?(Yes/[No]/All/Skip)", name, "YyNnAaSs\n")) { ++ case 0: ++ case 1:/* Y/y */ ++ break; ++ case 2: ++ case 3:/* N/n */ ++ case 8:/* Return */ ++ return FALSE; ++ case 4: ++ case 5:/* A/a */ ++ force = TRUE; ++ break; ++ case 6: ++ case 7:/* S/s */ ++ skip_flg = TRUE; ++ break; ++ } ++ } ++ } ++ if (noexec) ++ printf("EXTRACT %s\n", name); ++ ++ return TRUE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static boolean ++make_parent_path(name) ++ char *name; ++{ ++ char path[FILENAME_LENGTH]; ++ struct stat stbuf; ++ register char *p; ++ ++ /* make parent directory name into PATH for recursive call */ ++ strcpy(path, name); ++ for (p = path + strlen(path); p > path; p--) ++ if (p[-1] == '/') { ++ *--p = '\0'; ++ break; ++ } ++ ++ if (p == path) { ++ message("Why?", "ROOT"); ++ return FALSE; /* no more parent. */ ++ } ++ ++ if (GETSTAT(path, &stbuf) >= 0) { ++ if (is_directory(&stbuf)) ++ return TRUE; ++ error("Not a directory", path); ++ return FALSE; ++ } ++ errno = 0; ++ ++ if (verbose) ++ printf("Making directory \"%s\".\n", path); ++ ++ if (mkdir(path, 0777) >= 0) /* try */ ++ return TRUE; /* successful done. */ ++ errno = 0; ++ ++ if (!make_parent_path(path)) ++ return FALSE; ++ ++ if (mkdir(path, 0777) < 0) { /* try again */ ++ message("Cannot make directory", path); ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static FILE * ++open_with_make_path(name) ++ char *name; ++{ ++ FILE *fp; ++ ++ if ((fp = fopen(name, WRITE_BINARY)) == NULL) { ++ errno = 0; ++ if (!make_parent_path(name) || ++ (fp = fopen(name, WRITE_BINARY)) == NULL) ++ error("Cannot extract", name); ++ errno = 0; ++ } ++ return fp; ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++adjust_info(name, hdr) ++ char *name; ++ LzHeader *hdr; ++{ ++ time_t utimebuf[2]; ++ ++ /* adjust file stamp */ ++ utimebuf[0] = utimebuf[1] = hdr->unix_last_modified_stamp; ++ ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) != UNIX_FILE_SYMLINK) ++ utime(name, utimebuf); ++ ++ if (hdr->extend_type == EXTEND_UNIX ++ || hdr->extend_type == EXTEND_OS68K ++ || hdr->extend_type == EXTEND_XOSK) { ++#ifdef NOT_COMPATIBLE_MODE ++ Please need your modification in this space. ++#else ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) != UNIX_FILE_SYMLINK) ++ chmod(name, hdr->unix_mode); ++#endif ++ if (!getuid()) { ++#ifndef HAVE_NO_LCHOWN ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK) ++ lchown(name, hdr->unix_uid, hdr->unix_gid); ++ else ++#endif /* HAVE_NO_LCHWON */ ++ chown(name, hdr->unix_uid, hdr->unix_gid); ++ } ++ errno = 0; ++ } ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++extract_one(afp, hdr) ++ FILE *afp; /* archive file */ ++ LzHeader *hdr; ++{ ++ FILE *fp; /* output file */ ++ struct stat stbuf; ++ char name[257]; ++ int crc; ++ int method; ++ boolean save_quiet, save_verbose, up_flag; ++ char *q = hdr->name, c; ++ ++ if (ignore_directory && rindex(hdr->name, '/')) { ++ q = (char *) rindex(hdr->name, '/') + 1; ++ } ++ else { ++ if (*q == '/') { ++ q++; ++ /* ++ * if OSK then strip device name ++ */ ++ if (hdr->extend_type == EXTEND_OS68K ++ || hdr->extend_type == EXTEND_XOSK) { ++ do ++ c = (*q++); ++ while (c && c != '/'); ++ if (!c || !*q) ++ q = "."; /* if device name only */ ++ } ++ } ++ } ++ ++ if (extract_directory) ++ sprintf(name, "%s/%s", extract_directory, q); ++ else ++ strcpy(name, q); ++ ++ ++ /* LZHDIRS_METHOD¤ò»ý¤Ä¥Ø¥Ã¥À¤ò¥Á¥§¥Ã¥¯¤¹¤ë */ ++ /* 1999.4.30 t.okamoto */ ++ for (method = 0;; method++) { ++ if (methods[method] == NULL) { ++ error("Unknown method skiped ...", name); ++ return; ++ } ++ if (bcmp(hdr->method, methods[method], 5) == 0) ++ break; ++ } ++ ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_REGULAR ++ && method != LZHDIRS_METHOD_NUM) { ++#if 0 ++ for (method = 0;; method++) { ++ if (methods[method] == NULL) { ++ error("Unknown method skiped ...", name); ++ return; ++ } ++ if (bcmp(hdr->method, methods[method], 5) == 0) ++ break; ++ } ++#endif ++ ++ reading_filename = archive_name; ++ writting_filename = name; ++ if (output_to_stdout || verify_mode) { ++ if (noexec) { ++ printf("%s %s\n", verify_mode ? "VERIFY" : "EXTRACT", name); ++ if (afp == stdin) { ++ int i = hdr->packed_size; ++ while (i--) ++ fgetc(afp); ++ } ++ return; ++ } ++ ++ save_quiet = quiet; ++ save_verbose = verbose; ++ if (!quiet && output_to_stdout) { ++ printf("::::::::\n%s\n::::::::\n", name); ++ quiet = TRUE; ++ verbose = FALSE; ++ } ++ else if (verify_mode) { ++ quiet = FALSE; ++ verbose = TRUE; ++ } ++ ++ crc = decode_lzhuf ++ (afp, stdout, hdr->original_size, hdr->packed_size, name, method); ++ quiet = save_quiet; ++ verbose = save_verbose; ++ } ++ else { ++ if (skip_flg == FALSE) { ++ up_flag = inquire_extract(name); ++ if (up_flag == FALSE && force == FALSE) { ++ return; ++ } ++ } ++ ++ if (skip_flg == TRUE) { /* if skip_flg */ ++ if (stat(name, &stbuf) == 0 && force != TRUE) { ++ if (stbuf.st_mtime >= hdr->unix_last_modified_stamp) { ++ if (quiet != TRUE) ++ printf("%s : Skipped...\n", name); ++ return; ++ } ++ } ++ } ++ if (noexec) { ++ if (afp == stdin) { ++ int i = hdr->packed_size; ++ while (i--) ++ fgetc(afp); ++ } ++ return; ++ } ++ ++ signal(SIGINT, interrupt); ++ signal(SIGHUP, interrupt); ++ ++ unlink(name); ++ errno = 0; ++ remove_extracting_file_when_interrupt = TRUE; ++ ++ if ((fp = open_with_make_path(name)) != NULL) { ++ crc = decode_lzhuf ++ (afp, fp, hdr->original_size, hdr->packed_size, name, method); ++ fclose(fp); ++ } ++ remove_extracting_file_when_interrupt = FALSE; ++ signal(SIGINT, SIG_DFL); ++ signal(SIGHUP, SIG_DFL); ++ ++ if (!fp) ++ return; ++ } ++ ++ errno = 0; ++ if (hdr->has_crc && crc != hdr->crc) ++ error("CRC error", name); ++ } ++ else if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_DIRECTORY ++ || (hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK ++ || method == LZHDIRS_METHOD_NUM) { ++ /* ¢¬¤³¤ì¤Ç¡¢Symblic Link ¤Ï¡¢Âç¾æÉפ«¡© */ ++ if (!ignore_directory && !verify_mode) { ++ if (noexec) { ++ if (quiet != TRUE) ++ printf("EXTRACT %s (directory)\n", name); ++ return; ++ } ++ /* NAME has trailing SLASH '/', (^_^) */ ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK) { ++ char buf[256], *bb1, *bb2; ++ int l_code; ++ strcpy(buf, name); ++ bb1 = strtok(buf, "|"); ++ bb2 = strtok(NULL, "|"); ++ ++#ifdef S_IFLNK ++ if (skip_flg == FALSE) { ++ up_flag = inquire_extract(name); ++ if (up_flag == FALSE && force == FALSE) { ++ return; ++ } ++ } else { ++ if (GETSTAT(bb1, &stbuf) == 0 && force != TRUE) { ++ if (stbuf.st_mtime >= hdr->unix_last_modified_stamp) { ++ if (quiet != TRUE) ++ printf("%s : Skipped...\n", bb1); ++ return; ++ } ++ } ++ } ++ ++ unlink(bb1); ++ l_code = symlink(bb2, bb1); ++ if (l_code < 0) { ++ if (quiet != TRUE) ++ warning("Can't make Symbolic Link : "); ++ } ++ if (quiet != TRUE) { ++ printf("Symbolic Link %s -> %s\n", bb1, bb2); ++ } ++ strcpy(name, bb1); /* Symbolic's name set */ ++#else ++ sprintf(buf, "%s -> %s", bb1, bb2); ++ warning("Can't make Symbolic Link", buf); ++ return; ++#endif ++ } else { /* make directory */ ++ if (!output_to_stdout && !make_parent_path(name)) ++ return; ++ } ++ } ++ } ++ else { ++ error("Unknown information", name); ++ } ++ ++ if (!output_to_stdout) ++ adjust_info(name, hdr); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* EXTRACT COMMAND MAIN */ ++/* ------------------------------------------------------------------------ */ ++void ++cmd_extract() ++{ ++ LzHeader hdr; ++ long pos; ++ FILE *afp; ++ ++ /* open archive file */ ++ if ((afp = open_old_archive()) == NULL) ++ fatal_error(archive_name); ++ ++ if (archive_is_msdos_sfx1(archive_name)) ++ skip_msdos_sfx1_code(afp); ++ ++ /* extract each files */ ++ while (get_header(afp, &hdr)) { ++ if (need_file(hdr.name)) { ++ pos = ftell(afp); ++ extract_one(afp, &hdr); ++ fseek(afp, pos + hdr.packed_size, SEEK_SET); ++ } else { ++ if (afp != stdin) ++ fseek(afp, hdr.packed_size, SEEK_CUR); ++ else { ++ int i = hdr.packed_size; ++ while (i--) ++ fgetc(afp); ++ } ++ } ++ } ++ ++ /* close archive file */ ++ fclose(afp); ++ ++ return; ++} ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* End: */ +--- lha-1.14i.orig/debian/org/lha_macro.h ++++ lha-1.14i/debian/org/lha_macro.h +@@ -0,0 +1,420 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX Archiver Driver macro define */ ++/* */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 1.14 Soruce All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14g modified 2000.05.06 T.OKAMOTO */ ++/* ------------------------------------------------------------------------ */ ++ ++#define LHA_VERSION "lha for unix version 1.14i" ++ ++/* Most of System V, define SYSTIME_HAS_NO_TM */ ++#ifdef SYSTIME_HAS_NO_TM ++#include <time.h> ++#else ++#include <sys/time.h> ++#endif /* SYSTIME_HAS_NO_TM */ ++ ++/* ------------------------------------------------------------------------ */ ++/* Directory Access Stuff */ ++/* ------------------------------------------------------------------------ */ ++#ifndef NODIRECTORY ++#ifdef SYSV_SYSTEM_DIR ++ ++#include <dirent.h> ++ ++#define DIRENTRY struct dirent ++#define NAMLEN(p) strlen (p->d_name) ++ ++#else /* not SYSV_SYSTEM_DIR */ ++ ++#ifdef NONSYSTEM_DIR_LIBRARY ++#include "lhdir.h" ++#else ++#include <sys/dir.h> ++#endif /* not NONSYSTEM_DIR_LIBRARY */ ++ ++#define DIRENTRY struct direct ++#define NAMLEN(p) p->d_namlen ++ ++#endif /* not SYSV_SYSTEM_DIR */ ++#endif /* NODIRECTORY */ ++ ++/* ------------------------------------------------------------------------ */ ++/* Other Define */ ++/* ------------------------------------------------------------------------ */ ++/* Not support 'void' */ ++#ifdef NOVOID ++#define void ++#endif ++ ++#ifndef SEEK_SET ++#define SEEK_SET 0 ++#define SEEK_CUR 1 ++#define SEEK_END 2 ++#endif /* SEEK_SET ++ ++ ++/* non-integral functions */ ++extern struct tm *localtime(); ++extern char *getenv(); ++ ++#ifndef _MINIX ++#ifndef __STDC__ ++extern char *malloc(); ++extern char *realloc(); ++#endif ++#endif ++ ++/* external variables */ ++extern int errno; ++ ++#define FALSE 0 ++#define TRUE 1 ++typedef int boolean; ++ ++/* used by qsort() for alphabetic-sort */ ++#define STRING_COMPARE(a,b) strcmp((a),(b)) ++ ++#define FILENAME_LENGTH 1024 ++ ++/* ------------------------------------------------------------------------ */ ++/* YOUR CUSTOMIZIES */ ++/* ------------------------------------------------------------------------ */ ++ ++#ifndef ARCHIVENAME_EXTENTION ++#define ARCHIVENAME_EXTENTION ".lzh" ++#endif ++#ifndef BACKUPNAME_EXTENTION ++#define BACKUPNAME_EXTENTION ".bak" ++#endif ++#ifndef TMP_FILENAME_TEMPLATE ++#define TMP_FILENAME_TEMPLATE "/tmp/lhXXXXXX" ++#endif ++ ++#define SJC_FIRST_P(c) \ ++ (((unsigned char)(c) >= 0x80) && \ ++ (((unsigned char)(c) < 0xa0) || \ ++ ((unsigned char)(c) >= 0xe0) && \ ++ ((unsigned char)(c) < 0xfd))) ++#define SJC_SECOND_P(c) \ ++ (((unsigned char)(c) >= 0x40) && \ ++ ((unsigned char)(c) < 0xfd) && \ ++ ((unsigned char)(c) != 0x7f)) ++ ++#ifdef MULTIBYTE_CHAR ++#define MULTIBYTE_FIRST_P SJC_FIRST_P ++#define MULTIBYTE_SECOND_P SJC_SECOND_P ++#endif /* MULTIBYTE_CHAR */ ++ ++/* ------------------------------------------------------------------------ */ ++/* LHa File Definitions */ ++/* ------------------------------------------------------------------------ */ ++#ifdef S_IFLNK ++#define GETSTAT lstat ++#else ++#define GETSTAT stat ++#endif ++ ++#ifdef LHA_MAIN_SRC ++#define EXTERN ++#else ++#define EXTERN extern ++#endif /* LHA_MAIN_SRC */ ++ ++#define LZHUFF0_METHOD "-lh0-" ++#define LZHUFF1_METHOD "-lh1-" ++#define LZHUFF2_METHOD "-lh2-" ++#define LZHUFF3_METHOD "-lh3-" ++#define LZHUFF4_METHOD "-lh4-" ++#define LZHUFF5_METHOD "-lh5-" ++#define LZHUFF6_METHOD "-lh6-" ++#define LZHUFF7_METHOD "-lh7-" ++#define LARC_METHOD "-lzs-" ++#define LARC5_METHOD "-lz5-" ++#define LARC4_METHOD "-lz4-" ++#define LZHDIRS_METHOD "-lhd-" ++ ++#define METHOD_TYPE_STRAGE 5 ++ ++/* Added N.Watazaki ..V */ ++#define LZHUFF0_METHOD_NUM 0 ++#define LZHUFF1_METHOD_NUM 1 ++#define LZHUFF2_METHOD_NUM 2 ++#define LZHUFF3_METHOD_NUM 3 ++#define LZHUFF4_METHOD_NUM 4 ++#define LZHUFF5_METHOD_NUM 5 ++#define LZHUFF6_METHOD_NUM 6 ++#define LZHUFF7_METHOD_NUM 7 ++#define LARC_METHOD_NUM 8 ++#define LARC5_METHOD_NUM 9 ++#define LARC4_METHOD_NUM 10 ++#define LZHDIRS_METHOD_NUM 11 ++/* Added N.Watazaki ..^ */ ++ ++#define I_HEADER_SIZE 0 ++#define I_HEADER_CHECKSUM 1 ++#define I_METHOD 2 ++#define I_PACKED_SIZE 7 ++#define I_ORIGINAL_SIZE 11 ++#define I_LAST_MODIFIED_STAMP 15 ++#define I_ATTRIBUTE 19 ++#define I_HEADER_LEVEL 20 ++#define I_NAME_LENGTH 21 ++#define I_NAME 22 ++ ++#define I_CRC 22 /* + name_length */ ++#define I_EXTEND_TYPE 24 /* + name_length */ ++#define I_MINOR_VERSION 25 /* + name_length */ ++#define I_UNIX_LAST_MODIFIED_STAMP 26 /* + name_length */ ++#define I_UNIX_MODE 30 /* + name_length */ ++#define I_UNIX_UID 32 /* + name_length */ ++#define I_UNIX_GID 34 /* + name_length */ ++#define I_UNIX_EXTEND_BOTTOM 36 /* + name_length */ ++ ++#define I_GENERIC_HEADER_BOTTOM I_EXTEND_TYPE ++ ++#define EXTEND_GENERIC 0 ++#define EXTEND_UNIX 'U' ++#define EXTEND_MSDOS 'M' ++#define EXTEND_MACOS 'm' ++#define EXTEND_OS9 '9' ++#define EXTEND_OS2 '2' ++#define EXTEND_OS68K 'K' ++#define EXTEND_OS386 '3' /* OS-9000??? */ ++#define EXTEND_HUMAN 'H' ++#define EXTEND_CPM 'C' ++#define EXTEND_FLEX 'F' ++#define EXTEND_RUNSER 'R' ++ ++/* this OS type is not official */ ++ ++#define EXTEND_TOWNSOS 'T' ++#define EXTEND_XOSK 'X' ++ ++/*---------------------------------------------------------------------------*/ ++ ++#define GENERIC_ATTRIBUTE 0x20 ++#define GENERIC_DIRECTORY_ATTRIBUTE 0x10 ++#define HEADER_LEVEL0 0x00 ++#define HEADER_LEVEL1 0x01 ++#define HEADER_LEVEL2 0x02 ++ ++#define CURRENT_UNIX_MINOR_VERSION 0x00 ++ ++#define DELIM ('/') ++#define DELIM2 (0xff) ++#define DELIMSTR "/" ++ ++#define OSK_RW_RW_RW 0000033 ++#define OSK_FILE_REGULAR 0000000 ++#define OSK_DIRECTORY_PERM 0000200 ++#define OSK_SHARED_PERM 0000100 ++#define OSK_OTHER_EXEC_PERM 0000040 ++#define OSK_OTHER_WRITE_PERM 0000020 ++#define OSK_OTHER_READ_PERM 0000010 ++#define OSK_OWNER_EXEC_PERM 0000004 ++#define OSK_OWNER_WRITE_PERM 0000002 ++#define OSK_OWNER_READ_PERM 0000001 ++ ++#define UNIX_FILE_TYPEMASK 0170000 ++#define UNIX_FILE_REGULAR 0100000 ++#define UNIX_FILE_DIRECTORY 0040000 ++#define UNIX_FILE_SYMLINK 0120000 ++#define UNIX_SETUID 0004000 ++#define UNIX_SETGID 0002000 ++#define UNIX_STYCKYBIT 0001000 ++#define UNIX_OWNER_READ_PERM 0000400 ++#define UNIX_OWNER_WRITE_PERM 0000200 ++#define UNIX_OWNER_EXEC_PERM 0000100 ++#define UNIX_GROUP_READ_PERM 0000040 ++#define UNIX_GROUP_WRITE_PERM 0000020 ++#define UNIX_GROUP_EXEC_PERM 0000010 ++#define UNIX_OTHER_READ_PERM 0000004 ++#define UNIX_OTHER_WRITE_PERM 0000002 ++#define UNIX_OTHER_EXEC_PERM 0000001 ++#define UNIX_RW_RW_RW 0000666 ++ ++#define LZHEADER_STRAGE 4096 ++ ++#define MAX_INDICATOR_COUNT 64 ++ ++typedef short node; ++ ++/* ------------------------------------------------------------------------ */ ++/* Slide relation */ ++/* ------------------------------------------------------------------------ */ ++#if defined(__STDC__) || defined(AIX) ++ ++#include <limits.h> ++ ++#else ++ ++#ifndef CHAR_BIT ++#define CHAR_BIT 8 ++#endif ++ ++#ifndef UCHAR_MAX ++#define UCHAR_MAX ((1<<(sizeof(unsigned char)*8))-1) ++#endif ++ ++#ifndef USHRT_MAX ++#define USHRT_MAX ((1<<(sizeof(unsigned short)*8))-1) ++#endif ++ ++#ifndef SHRT_MAX ++#define SHRT_MAX ((1<<(sizeof(short)*8-1))-1) ++#endif ++ ++#ifndef SHRT_MIN ++#define SHRT_MIN (SHRT_MAX-USHRT_MAX) ++#endif ++ ++#ifndef ULONG_MAX ++#define ULONG_MAX ((1<<(sizeof(unsigned long)*8))-1) ++#endif ++ ++#ifndef LONG_MAX ++#define LONG_MAX ((1<<(sizeof(long)*8-1))-1) ++#endif ++ ++#ifndef LONG_MIN ++#define LONG_MIN (LONG_MAX-ULONG_MAX) ++#endif ++ ++#endif /* not __STDC__ */ ++ ++/* ------------------------------------------------------------------------ */ ++/* FILE Attribute */ ++/* ------------------------------------------------------------------------ */ ++#define is_directory(statp) (((statp)->st_mode & S_IFMT) == S_IFDIR) ++#define is_symlink(statp) (((statp)->st_mode & S_IFMT) == S_IFLNK) ++#define is_regularfile(statp) (((statp)->st_mode & S_IFMT) == S_IFREG) ++ ++#ifdef MSDOS ++#define WRITE_BINARY "wb" ++#define READ_BINARY "rb" ++#else ++#define WRITE_BINARY "w" ++#define READ_BINARY "r" ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++/* Memory and String function */ ++/* ------------------------------------------------------------------------ */ ++#include <string.h> ++ ++#ifdef NOINDEX ++#define index strchr ++#define rindex strrchr ++#endif /* NOINDEX */ ++ ++#ifdef NOBSTRING ++#define bcmp(a,b,n) memcmp ((a),(b),(n)) ++#define bzero(d,n) memset((d),0,(n)) ++#define bcopy(s,d,n) memmove((d),(s),(n)) ++#endif /* NOBSTRING */ ++ ++#ifdef USESTRCASECMP ++#define strucmp(p,q) strcasecmp((p),(q)) ++#endif ++ ++/* ------------------------------------------------------------------------ */ ++/* Individual macro define */ ++/* ------------------------------------------------------------------------ */ ++ ++/* from crcio.c */ ++#define CRCPOLY 0xA001 /* CRC-16 */ ++#define UPDATE_CRC(c) crc = crctable[(crc ^ (c)) & 0xFF] ^ (crc >> CHAR_BIT) ++ ++/* dhuf.c */ ++#define N_CHAR (256 + 60 - THRESHOLD + 1) ++#define TREESIZE_C (N_CHAR * 2) ++#define TREESIZE_P (128 * 2) ++#define TREESIZE (TREESIZE_C + TREESIZE_P) ++#define ROOT_C 0 ++#define ROOT_P TREESIZE_C ++ ++/* header.c */ ++#define setup_get(PTR) (get_ptr = (PTR)) ++#define get_byte() (*get_ptr++ & 0xff) ++#define put_ptr get_ptr ++#define setup_put(PTR) (put_ptr = (PTR)) ++#define put_byte(c) (*put_ptr++ = (char)(c)) ++ ++/* huf.c */ ++#define NP (MAX_DICBIT + 1) ++#define NT (USHRT_BIT + 3) ++#if 0 ++#define PBIT 4 /* smallest integer such that (1 << PBIT) > * NP */ ++#define TBIT 5 /* smallest integer such that (1 << TBIT) > * NT */ ++#endif ++ ++#define PBIT 5 /* smallest integer such that (1 << PBIT) > * NP */ ++#define TBIT 5 /* smallest integer such that (1 << TBIT) > * NT */ ++ ++#define NC (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD) ++ ++/* #if NT > NP #define NPT NT #else #define NPT NP #endif */ ++#define NPT 0x80 ++ ++/* larc.c */ ++#define MAGIC0 18 ++#define MAGIC5 19 ++ ++/* lharc.c */ ++#define CMD_UNKNOWN 0 ++#define CMD_EXTRACT 1 ++#define CMD_ADD 2 ++#define CMD_LIST 3 ++#define CMD_DELETE 4 ++ ++#define STREQU(a,b) (((a)[0] == (b)[0]) ? (strcmp ((a),(b)) == 0) : FALSE) ++ ++/* shuf.c */ ++#define N1 286 /* alphabet size */ ++#define N2 (2 * N1 - 1) /* # of nodes in Huffman tree */ ++#define EXTRABITS 8 /* >= log2(F-THRESHOLD+258-N1) */ ++#define BUFBITS 16 /* >= log2(MAXBUF) */ ++#define LENFIELD 4 /* bit size of length field for tree output */ ++ ++/* util.c */ ++#define BUFFERSIZE 2048 ++#define MAXSFXCODE 1024*64 ++ ++#ifndef NULL ++#define NULL (char *)0 ++#endif ++ ++/* slide.c */ ++/* ++#define PERCOLATE 1 ++#define NIL 0 ++#define HASH(p, c) ((p) + ((c) << hash1) + hash2) ++*/ ++ ++/* slide.c */ ++#ifdef SUPPORT_LH7 ++#define MAX_DICBIT 16 /* lh7 use 16bits */ ++#endif ++ ++#ifndef SUPPORT_LH7 ++#define MAX_DICBIT 15 /* lh6 use 15bits */ ++#endif ++ ++#define MAX_DICSIZ (1 << MAX_DICBIT) ++#define MATCHBIT 8 /* bits for MAXMATCH - THRESHOLD */ ++#define MAXMATCH 256 /* formerly F (not more than UCHAR_MAX + 1) */ ++#define THRESHOLD 3 /* choose optimal value */ ++ ++/* from huf.c */ ++ ++/* alphabet = {0, 1, 2, ..., NC - 1} */ ++#define CBIT 9 /* $\lfloor \log_2 NC \rfloor + 1$ */ ++#define USHRT_BIT 16 /* (CHAR_BIT * sizeof(ushort)) */ ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* End: */ +--- lha-1.14i.orig/debian/org/lhlist.c ++++ lha-1.14i/debian/org/lhlist.c +@@ -0,0 +1,348 @@ ++/* ------------------------------------------------------------------------ */ ++/* LHa for UNIX */ ++/* lhlist.c -- LHarc list */ ++/* */ ++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */ ++/* Modified Nobutaka Watazaki */ ++/* */ ++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */ ++/* Ver. 1.00 Fixed 1989.09.22 Y.Tagawa */ ++/* Ver. 1.01 Bug Fix for month name 1989.12.25 Y.Tagawa */ ++/* Ver. 1.10 Changed list format 1993.10.01 N.Watazaki */ ++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */ ++/* Ver. 1.14e Bug Fix for many problems 1999.05.25 T.Okamoto */ ++/* ------------------------------------------------------------------------ */ ++#include "lha.h" ++ ++/* ------------------------------------------------------------------------ */ ++static long packed_size_total; ++static long original_size_total; ++static int list_files; ++ ++/* ------------------------------------------------------------------------ */ ++/* Print Stuff */ ++/* ------------------------------------------------------------------------ */ ++/* need 14 or 22 (when verbose_listing is TRUE) column spaces */ ++static void ++print_size(packed_size, original_size) ++ long packed_size, original_size; ++{ ++ if (verbose_listing) ++ printf("%7d ", packed_size); ++ ++ printf("%7d ", original_size); ++ ++ if (original_size == 0L) ++ printf("******"); ++ else /* Changed N.Watazaki */ ++ printf("%5.1f%%", packed_size * 100.0 / original_size); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* need 12 or 17 (when verbose_listing is TRUE) column spaces */ ++static void ++print_stamp(t) ++ time_t t; ++{ ++ static boolean got_now = FALSE; ++ static time_t now; ++ static unsigned int threshold; ++ static char t_month[12 * 3 + 1] = "JanFebMarAprMayJunJulAugSepOctNovDec"; ++ struct tm *p; ++ ++ if (t == 0) { ++ printf(" "); /* 12 spaces */ ++ return; ++ } ++ ++ if (!got_now) { ++ now = time((time_t *) 0); ++ p = localtime(&now); ++ threshold = p->tm_year * 12 + p->tm_mon - 6; ++ got_now = TRUE; ++ } ++ ++ p = localtime(&t); ++ ++ if (p->tm_year * 12 + p->tm_mon > threshold) ++ printf("%.3s %2d %02d:%02d", ++ &t_month[p->tm_mon * 3], p->tm_mday, p->tm_hour, p->tm_min); ++ else ++ printf("%.3s %2d %04d", ++ &t_month[p->tm_mon * 3], p->tm_mday, p->tm_year + 1900); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++print_bar() ++{ ++ char *p, *q; ++ /* 17+1+(0 or 7+1)+7+1+6+1+(0 or 1+4)+(12 or 17)+1+20 */ ++ /* 12345678901234567_ 1234567_123456 _123456789012 1234 */ ++ ++ if (verbose_listing) { ++ p = "- ------ ---------- "; ++ q = " -------------"; ++ } ++ else { ++ p = " "; ++ q = " --------------------"; ++ } ++ ++ if (verbose) ++ q = ""; ++ ++ printf("---------- ----------- ------- ------%s------------%s\n", p, q); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* */ ++/* ------------------------------------------------------------------------ */ ++static void ++list_header() ++{ ++ char *p, *q; ++ ++ if (verbose_listing) { ++ p = "PACKED SIZE RATIO METHOD CRC"; ++ q = " NAME"; ++ } ++ else { ++ p = " SIZE RATIO"; ++ q = " NAME"; ++ } ++ ++ if (verbose) ++ q = ""; ++ ++ printf(" PERMSSN UID GID %s STAMP%s\n", p, q); ++#if 0 ++ printf(" PERMSSN UID GID %s SIZE RATIO%s %s STAMP%s%s\n", ++ verbose_listing ? " PACKED " : "", /* 8,0 */ ++ verbose_listing ? " CRC" : "", /* 5,0 */ ++ verbose_listing ? " " : "", /* 2,0 */ ++ verbose_listing ? " " : " ", /* 6,3 */ ++ verbose ? "" : " NAME"); ++#endif ++ print_bar(); ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++list_one(hdr) ++ register LzHeader *hdr; ++{ ++ register int mode; ++ register char *p; ++ char method[6]; ++ char modebits[11]; ++ ++ if (verbose) ++ printf("%s\n", hdr->name); ++ ++ strncpy(method, hdr->method, 5); ++ method[5] = '\0'; ++ ++ switch (mode = hdr->extend_type) { ++ case EXTEND_UNIX: ++ mode = hdr->unix_mode; ++ ++ if (mode & UNIX_FILE_DIRECTORY) ++ modebits[0] = 'd'; ++ else if ((mode & UNIX_FILE_SYMLINK) == UNIX_FILE_SYMLINK) ++ modebits[0] = 'l'; ++ else ++ modebits[0] = '-'; ++ modebits[1] = ((mode & UNIX_OWNER_READ_PERM) ? 'r' : '-'); ++ modebits[2] = ((mode & UNIX_OWNER_WRITE_PERM) ? 'w' : '-'); ++ modebits[3] = (mode & UNIX_SETUID) ? 's' : ++ ((mode & UNIX_OWNER_EXEC_PERM) ? 'x' : '-'); ++ modebits[4] = ((mode & UNIX_GROUP_READ_PERM) ? 'r' : '-'); ++ modebits[5] = ((mode & UNIX_GROUP_WRITE_PERM) ? 'w' : '-'); ++ modebits[6] = (mode & UNIX_SETGID) ? 's' : ++ ((mode & UNIX_GROUP_EXEC_PERM) ? 'x' : '-'); ++ modebits[7] = ((mode & UNIX_OTHER_READ_PERM) ? 'r' : '-'); ++ modebits[8] = ((mode & UNIX_OTHER_WRITE_PERM) ? 'w' : '-'); ++ modebits[9] = (mode & UNIX_STYCKYBIT) ? 't' : ++ ((mode & UNIX_OTHER_EXEC_PERM) ? 'x' : '-'); ++ modebits[10] = 0; ++ ++ printf("%s %5d/%-5d ", modebits, ++ hdr->unix_uid, hdr->unix_gid); ++ break; ++ case EXTEND_OS68K: ++ /**/ case EXTEND_XOSK:/**/ ++ mode = hdr->unix_mode; ++ printf("%c%c%c%c%c%c%c%c %5d/%-5d", ++ ((mode & OSK_DIRECTORY_PERM) ? 'd' : '-'), ++ ((mode & OSK_SHARED_PERM) ? 's' : '-'), ++ ((mode & OSK_OTHER_EXEC_PERM) ? 'e' : '-'), ++ ((mode & OSK_OTHER_WRITE_PERM) ? 'w' : '-'), ++ ((mode & OSK_OTHER_READ_PERM) ? 'r' : '-'), ++ ((mode & OSK_OWNER_EXEC_PERM) ? 'e' : '-'), ++ ((mode & OSK_OWNER_WRITE_PERM) ? 'w' : '-'), ++ ((mode & OSK_OWNER_READ_PERM) ? 'r' : '-'), ++ hdr->unix_uid, hdr->unix_gid); ++ break; ++ default: ++ switch (hdr->extend_type) { /* max 18 characters */ ++ case EXTEND_GENERIC: ++ p = "[generic]"; ++ break; ++ case EXTEND_CPM: ++ p = "[CP/M]"; ++ break; ++ case EXTEND_FLEX: ++ p = "[FLEX]"; ++ break; ++ case EXTEND_OS9: ++ p = "[OS-9]"; ++ break; ++ case EXTEND_OS68K: ++ p = "[OS-9/68K]"; ++ break; ++ case EXTEND_MSDOS: ++ p = "[MS-DOS]"; ++ break; ++ case EXTEND_MACOS: ++ p = "[Mac OS]"; ++ break; ++ case EXTEND_OS2: ++ p = "[OS/2]"; ++ break; ++ case EXTEND_HUMAN: ++ p = "[Human68K]"; ++ break; ++ case EXTEND_OS386: ++ p = "[OS-386]"; ++ break; ++ case EXTEND_RUNSER: ++ p = "[Runser]"; ++ break; ++#ifdef EXTEND_TOWNSOS ++ /* This ID isn't fixed */ ++ case EXTEND_TOWNSOS: ++ p = "[TownsOS]"; ++ break; ++#endif ++ /* Ouch! Please customize it's ID. */ ++ default: ++ p = "[unknown]"; ++ break; ++ } ++ printf("%-23.23s", p); ++ break; ++ } ++ ++ print_size(hdr->packed_size, hdr->original_size); ++ ++ if (verbose_listing) ++ if (hdr->has_crc) ++ printf(" %s %04x", method, hdr->crc); ++ else ++ printf(" %s ****", method); ++ ++ printf(" "); ++ print_stamp(hdr->unix_last_modified_stamp); ++ ++ if (!verbose) ++ if ((mode & UNIX_FILE_SYMLINK) != UNIX_FILE_SYMLINK) ++ printf(" %s", hdr->name); ++ else { ++ char buf[256], *b1, *b2; ++ strcpy(buf, hdr->name); ++ b1 = strtok(buf, "|"); ++ b2 = strtok(NULL, "|"); ++ printf(" %s -> %s", b1, b2); ++ } ++ ++ if (verbose) ++ printf(" [%d]", hdr->header_level); ++ printf("\n"); ++ ++} ++ ++/* ------------------------------------------------------------------------ */ ++static void ++list_tailer() ++{ ++ struct stat stbuf; ++ ++ print_bar(); ++ ++ printf(" Total %9d file%c ", ++ list_files, (list_files == 1) ? ' ' : 's'); ++ print_size(packed_size_total, original_size_total); ++ printf(" "); ++ ++ if (verbose_listing) ++ printf(" "); ++ ++ if (stat(archive_name, &stbuf) < 0) ++ print_stamp((time_t) 0); ++ else ++ print_stamp(stbuf.st_mtime); ++ ++ printf("\n"); ++} ++ ++/* ------------------------------------------------------------------------ */ ++/* LIST COMMAND MAIN */ ++/* ------------------------------------------------------------------------ */ ++void ++cmd_list() ++{ ++ FILE *afp; ++ LzHeader hdr; ++ int i; ++ ++ /* initialize total count */ ++ packed_size_total = 0L; ++ original_size_total = 0L; ++ list_files = 0; ++ ++ /* open archive file */ ++ if ((afp = open_old_archive()) == NULL) { ++ error(archive_name, ""); ++ exit(1); ++ } ++ if (archive_is_msdos_sfx1(archive_name)) ++ skip_msdos_sfx1_code(afp); ++ ++ /* print header message */ ++ if (!quiet) ++ list_header(); ++ ++ /* print each file information */ ++ while (get_header(afp, &hdr)) { ++ if (need_file(hdr.name)) { ++ list_one(&hdr); ++ list_files++; ++ packed_size_total += hdr.packed_size; ++ original_size_total += hdr.original_size; ++ } ++ ++ if (afp != stdin) ++ fseek(afp, hdr.packed_size, SEEK_CUR); ++ else { ++ i = hdr.packed_size; ++ while (i--) ++ fgetc(afp); ++ } ++ } ++ ++ /* close archive file */ ++ fclose(afp); ++ ++ /* print tailer message */ ++ if (!quiet) ++ list_tailer(); ++ ++ return; ++} ++ ++/* Local Variables: */ ++/* mode:c */ ++/* tab-width:4 */ ++/* compile-command:"gcc -c lhlist.c" */ ++/* End: */ +--- lha-1.14i.orig/debian/changelog ++++ lha-1.14i/debian/changelog +@@ -0,0 +1,178 @@ ++lha (1.14i-10.1) unstable; urgency=high ++ ++ * Security NMU for vulnerabilities inherited from GNU Gzip: ++ [CVE-2006-4335 CVE-2006-4337 CVE-2006-4338] ++ ++ -- Moritz Muehlenhoff <jmm@debian.org> Wed, 13 Dec 2006 20:21:32 +0100 ++ ++lha (1.14i-10) unstable; urgency=high ++ ++ * debian/patch.redhat-sec2: Add one more security patch to fix: ++ - CAN-2004-0771 (-w working directory option buffer overflow) ++ http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0771 ++ - CAN-2004-0769 (buffer overflow can be executed arbitrary code ++ via long pathnames in headers, another issue of bug fixed in -9) ++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0769 ++ - CAN-2004-0745 (execute arbitrary commands via a directory with ++ shell metacharacters in its name.) ++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0745 ++ - CAN-2004-0694 (reserved number) ++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0694 ++ taken from RedHat patch. (Closes: #279870) ++ * man/lha.n: Fix typo "flie" instead of "file". (Closes: #277545) ++ ++ -- GOTO Masanori <gotom@debian.org> Sat, 13 Nov 2004 15:31:22 +0900 ++ ++lha (1.14i-9) unstable; urgency=high ++ ++ * debian/patch.header-overflow: Add fix another lha buffer overflow ++ problem. It warns when hitting an archive which includes ++ long directory name with option l, v, x. See: ++ http://lw.ftw.zamosc.pl/lha-exploit.txt ++ http://www.securityfocus.com/archive/1/363418 ++ http://bugs.gentoo.org/show_bug.cgi?id=51285 ++ Thanks to Lukasz Wojtow <lw@wszia.edu.pl> for pointing this problem. ++ ++ -- GOTO Masanori <gotom@debian.org> Wed, 16 Jun 2004 09:51:06 +0900 ++ ++lha (1.14i-8) unstable; urgency=high ++ ++ * debian/patch.CAN-2004-0234_0235: Add fix CAN-2004-0235 symlink part ++ patches. (Closes: #247355, #247357) ++ ++ -- GOTO Masanori <gotom@debian.org> Sat, 8 May 2004 02:24:57 +0900 ++ ++lha (1.14i-7) unstable; urgency=high ++ ++ * debian/patch.CAN-2004-ulf: Add to fix CAN-2004-0234 (buffer overflows), ++ CAN-2004-0235 (directory traversal). See: ++ http://marc.theaimsgroup.com/?l=full-disclosure&m=108345064008698&w=2 ++ * debian/control: Change my mail address. ++ ++ -- GOTO Masanori <gotom@debian.org> Thu, 6 May 2004 15:13:14 +0900 ++ ++lha (1.14i-6) unstable; urgency=low ++ ++ * debian/copyright: Added more copyright license statement, translated ++ by Osamu Aoki <debian@aokiconsulting.com>. ++ * debian/copyright: Added good summary of upstream author, investigated by ++ Osamu Aoki <debian@aokiconsulting.com> and ++ Tatsuya Kinoshita <tats@iris.ne.jp>. ++ * debian/header-e.doc: Added English version of header.doc (LHa header ++ structure format document) translated by Osamu Aoki ++ <debian@aokiconsulting.com>. ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Tue, 27 Aug 2002 13:08:22 +0900 ++ ++lha (1.14i-5) unstable; urgency=low ++ ++ * debian/patch.multibyte: Add multibyte character mode option 'y'. ++ You can use multibyte filename especially SHIFTJIS code ++ with this option. ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Fri, 19 Jul 2002 16:57:11 +0900 ++ ++lha (1.14i-4) unstable; urgency=low ++ ++ * debian/copyright: add original/translated license statement ++ (closes: Bug#144582). ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Wed, 1 May 2002 09:53:24 +0900 ++ ++lha (1.14i-3) unstable; urgency=low ++ ++ * fix lha reports a wrong version number (closes: Bug#135199). ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Sun, 3 Mar 2002 21:38:46 +0900 ++ ++lha (1.14i-2) unstable; urgency=low ++ ++ * Applied the patch not to get compiling warning message. ++ Patched by Paul Slootman <paul@wurtel.net>. (Closes: #109634). ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Thu, 23 Aug 2001 00:26:53 +0900 ++ ++lha (1.14i-1) unstable; urgency=low ++ ++ * New upstream release (Closes: #62256). ++ * New maintainer. ++ * Updated Standards-version 3.5.2. ++ * Use build this package with dh_*. ++ * New upstream version is ready for -lh7- format (Closes: #67592). ++ * Japanese manual is now included (Closes: #49245). ++ * Unclosed Bugs (No copyright file is included) ++ has just re-closed (Closes: #48748). ++ ++ -- GOTO Masanori <gotom@debian.or.jp> Sun, 22 Jul 2001 13:11:50 +0900 ++ ++lha (1.14e-2) unstable; urgency=low ++ ++ * Moved /usr/man/* and /usr/doc/* under /usr/share. Closes: #80759. ++ * Updated Standards-version, fixed lintian warnings. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 21 Jan 2001 17:35:52 +0000 ++ ++lha (1.14e-0) unstable; urgency=low ++ ++ * New upstream release. Thanks to Jiro Iwamoto <iwamot@maroon.plala.or.jp> for pointing this out. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 25 Jul 1999 23:05:24 +0100 ++ ++lha (1.14d-1) unstable; urgency=low ++ ++ * Fixed manpage - no need to specify "-b" for command line help. Closes bug #33328. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 14 Feb 1999 16:24:44 +0000 ++ ++lha (1.14d-0) unstable; urgency=low ++ ++ * New upstream release. Thanks to Tomohiro KUBOTA <kubota@kubota.rcpom.osaka-u.ac.jp> for pointing this out. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 16 Jan 1999 21:54:37 +0000 ++ ++lha (1.14c-1) frozen unstable; urgency=low ++ ++ * New man page, supplied by Martin Schulze <joey@finlandia.Infodrom.North.DE>. Fixes Bug#27195. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 18 Oct 1998 13:53:12 +0100 ++ ++lha (1.14c-0) unstable; urgency=low ++ ++ * New upstream release. Thanks to Atsushi KAMOSHIDA <kamop@debian.or.jp> for pointing this out. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 15 Aug 1998 14:16:19 +0100 ++ ++lha (1.00-6) unstable; urgency=low ++ ++ * New maintainer. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Mon, 12 Jan 1998 00:09:12 +0000 ++ ++lha (1.00-5) unstable; urgency=low, closes=16756 ++ ++ * Corrected Standards-Version to 2.3.0.1 (Bug#16756) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 9 Jan 1998 02:08:03 +0100 ++ ++lha (1.00-4) unstable; urgency=low ++ ++ * Compiled against libc6 (Bug#11696) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 31 Dec 1997 20:51:38 +0100 ++ ++lha (1.00-3) unstable; urgency=low ++ ++ * Corrected manpage (Bug#7980) ++ ++ * New maintainer address ++ ++ -- Martin Schulze <joey@namib.north.de> Mon, 28 Apr 1997 13:10:10 +0200 ++ ++lha (1.00-2) unstable; urgency=low ++ ++ * Installed ChangeLog files ++ ++ * Converted into new packaging scheme ++ ++ -- Martin Schulze <joey@namib.north.de> Sun, 23 Feb 1997 12:22:13 +0100 ++ +--- lha-1.14i.orig/debian/lha.1 ++++ lha-1.14i/debian/lha.1 +@@ -0,0 +1,139 @@ ++ .\" lha - LZH un-archiver ++.\" Copyright (c) 1996 Martin Schulze <joey@namib.north.de> ++.\" ++.\" This manual page is free software; you can redistribute it and/or modify ++.\" it under the terms of the GNU General Public License as published by ++.\" the Free Software Foundation; either version 2 of the License, or ++.\" (at your option) any later version. ++.\" ++.\" This program is distributed in the hope that it will be useful, ++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of ++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++.\" GNU General Public License for more details. ++.\" ++.\" You should have received a copy of the GNU General Public License ++.\" along with this program; if not, write to the Free Software ++.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++.\" ++.\" This manpage is written especially for Debian GNU/Linux. ++.\" ++.\" LHarc for UNIX V 1.02 Copyright(C) 1989 Y.Tagawa ++.\" LHx for MSDOS V C2.01 Copyright(C) 1990 H.Yoshizaki ++.\" LHx(arc) for OSK V 2.01 Modified 1990 Momozou ++.\" LHa for UNIX V 1.00 Copyright(C) 1992 Masaru Oki ++.\" ++.\" Additions by Joerg Boehnke <joerg@oggi.oche.de> ++.\" ++.TH LHA 1 "22 Sept, 1998" "Debian GNU/Linux" "Archiver" ++.SH NAME ++LHa \- LZH un-archiver ++.SH SYNOPSIS ++.B lha ++.B key ++[ ++.B - ++] ++.B {axelvudmcp} ++[ ++.B qvnfodizg012 ++] ++[ ++.B w=<dir> ++] ++.I archive_file ++[ ++.I flie ++\&.\|.\|. ] ++.br ++.B lha ++.I archive_file ++.SH DESCRIPTION ++The ++.B lha ++program displays or extracts the contents of a LZH archive. ++ ++For a list of commands, please refer to the executable. It will ++display a list of valid commands and modifiers if you omit any ++parameter. ++ ++.TP ++commands: ++ ++.B a ++Add(or replace) to archive ++ ++.B x,e ++EXtract from archive ++ ++.B l,v ++List / Verbose List ++ ++.B u ++Update newer files to archive ++ ++.B d ++Delete from archive ++ ++.B m ++Move to archive (means 'ad') ++ ++.B c ++re-Construct new archive ++ ++.B p ++Print to STDOUT from archive ++ ++.B t ++Test file CRC in archive ++ ++.TP ++options: ++ ++.B q ++quiet ++ ++.B v ++verbose ++ ++.B n ++not execute ++ ++.B f ++force (over write at extract) ++ ++.B t ++FILES are TEXT file ++ ++.B o ++use LHarc compatible method (a/u) ++ ++.B w=<dir> ++specify extract directory (x/e) ++ ++.B d ++delete FILES after (a/u/c) ++ ++.B i ++ignore directory path (x/e) ++ ++.B z ++files not compress (a/u) ++ ++.B g ++[Generic] format (for compatibility) ++ ++.B 0/1/2 ++header level (a/u) ++ ++.B e ++TEXT code convert from/to EUC ++ ++.B y ++filename multibyte convert ++ ++.SH BUGS ++ ++This manpage is poor, it really should be improved, but the original ++is in Japanese. ++ ++Try lha without any command line arguments to get help +--- lha-1.14i.orig/debian/rules ++++ lha-1.14i/debian/rules +@@ -0,0 +1,115 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. ++# GNU copyright 1997 to 1999 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This is the debhelper compatability version to use. ++export DH_COMPAT=3 ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ # Add here commands to configure the package. ++ ++ patch -p0 < debian/patch.paul ++ patch -p0 < debian/patch.multibyte ++ patch -p0 < debian/patch.CAN-2004-0234_0235 ++ patch -p0 < debian/patch.header-overflow ++ patch -p1 < debian/patch.redhat-sec2 ++ patch -p1 < debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338 ++ ++ touch configure-stamp ++ ++build: configure-stamp build-stamp ++build-stamp: ++ dh_testdir ++ ++ # Add here commands to compile the package. ++ $(MAKE) ++ #/usr/bin/docbook-to-man debian/lha.sgml > lha.1 ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp configure-stamp ++ ++ # Add here commands to clean up after the build process. ++ -$(MAKE) clean ++ ++ # delete copied docs. ++ rm -f MACHINES MACHINES2 PROBLEMS README ++ rm -f header.doc debian/lha.euc.1.gz debian/lha.1.gz ++ cp debian/org/lha.h src/lha.h ++ cp debian/org/header.c src/header.c ++ cp debian/org/lharc.c src/lharc.c ++ cp debian/org/util.c src/util.c ++ cp debian/org/lhext.c src/lhext.c ++ cp debian/org/lhlist.c src/lhlist.c ++ cp debian/org/lha_macro.h src/lha_macro.h ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/lha. ++ # $(MAKE) install BINDIR=$(CURDIR)/debian/lha/usr/bin \ ++ # MANDIR=$(CURDIR)/debian/lha/usr/share/man \ ++ # MANSECT=1 ++ install -m 755 src/lha $(CURDIR)/debian/lha/usr/bin ++ ++ # Copy the filenames without the .euc extension ++ cp MACHINES.euc MACHINES ++ cp MACHINES2.euc MACHINES2 ++ cp PROBLEMS.euc PROBLEMS ++ cp README.euc README ++ cp header.doc.euc header.doc ++ ++ gzip -9 -c man/lha.n > debian/lha.euc.1.gz ++ gzip -9 -c debian/lha.1 > debian/lha.1.gz ++ install -m 644 debian/lha.euc.1.gz $(CURDIR)/debian/lha/usr/share/man/ja/man1/lha.1.gz ++ install -m 644 debian/lha.1.gz $(CURDIR)/debian/lha/usr/share/man/man1/lha.1.gz ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++# dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++# dh_installlogrotate ++# dh_installemacsen ++# dh_installpam ++# dh_installmime ++# dh_installinit ++# dh_installcron ++# dh_installman ++# dh_installinfo ++# dh_undocumented ++ dh_installchangelogs CHANGES.euc ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++# dh_makeshlibs ++ dh_installdeb ++# dh_perl ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install configure +--- lha-1.14i.orig/debian/dirs ++++ lha-1.14i/debian/dirs +@@ -0,0 +1,3 @@ ++usr/bin ++usr/share/man/man1 ++usr/share/man/ja/man1/ +--- lha-1.14i.orig/debian/copyright ++++ lha-1.14i/debian/copyright +@@ -0,0 +1,172 @@ ++This package was debianized by Atsushi KAMOSHIDA kamop@post1.com on ++Sun, 13 Apr 1997 17:52:59 +0900. ++ ++It was downloaded from http://www2m.biglobe.ne.jp/~dolphin/lha/lha.htm ++ ++Upstream Authors: ++ ++ LHarc 0.01-1.00: Yooichi Tagawa (LHa code taken from here, 1988-1989) ++ Nikkei-mix ID: y.tagawa (Now this is defunct BBS, Licensing term ++ in manual page come from his licence for lharc) ++ His new web page seems to be www2s.biglibe.ne.jp/~yex/ ++ yooedit2001@yahoo.co.jp is the contact e-mail address for another ++ software. Page updated at least July/2001 ++ ++ LHa 0.01-1.00: Masaru Oki (LHa original author, 1991-1992) ++ E-Mail address: oki@netbsd.org ++ ++ LHa 1.10-1.14: Nobutaka Watazaki (Last official release? 1993-1995) ++ ALICE-NET ALS00595 Nasty ++ E-Mail JBD02514@niftyserve.or.jp ++ E-Mail femcs@mbox.kyoto-inet.or.jp ++ NIFTY-Serve JBD02514 ++ E-Mail address: watazaki@shimadzu.co.jp ++ E-Mail address: watazaki@shimadzusd.co.jp ++ ++ Lha 1.14a-1.14e: Tsugio Okamoto <tsugio@muc.biglobe.ne.jp> (1996-2000) ++ ++ ++Copyright: ++ ++Original Source Code License Statement: ++ ++ /* Copyright (C) MCMLXXXIX Yooichi.Tagawa */ ++ /* Modified Nobutaka Watazaki */ ++ /* Thanks to H.Yoshizaki. (MS-DOS LHarc) */ ++ ++ ++Original Authors License Statement (from man/lha.man, in Japanese ++EUC-JP): ++ ++ ºÆÇÛÉۤˤĤ¤¤Æ ++ °Ê²¼¤Î¾ò·ï¤Ç¡¢ºÆÇÛÉÛ¡¢Å¾ºÜ¡¢²þÊѤòµö²Ä¤·¤Þ¤¹¡£ ++ ++ 1. Ãøºî¸¢É½¼¨¤òºï½ü¤·¤Ê¤¤¤³¤È¡£ ++ ++ 2. ÇÛÉÛÆâÍƤˤĤ¤¤Æ¤Ï¡¢ ++ ++ a. ÇÛÉۤκݤ˸ºß¤¹¤ëÆâÍÆ(¤¹¤Ê¤ï¤Á ¥½¡¼ ¥¹ ¥³¡¼ ++ ¥É¡¢ ¥É ¥­¥å¥á¥ó¥È¡¢¥×¥í¥°¥é¥Þ¡¼¤Ø¤Î¼ê°ú¤­¤Ê ++ ¤É)¤¬ºÆÇÛÉÛ¤µ¤ì¤¿¤â¤Î¤ÎÃæ¤Ëɬ¤ºÂ¸ºß ¤¹ ¤ë ¤³ ++ ¤È¡£ ²þ ÊѤµ¤ì¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢¤½¤ì¤òÌÀ¼¨¤·¤¿¥É ++ ¥­¥å¥á¥ó¥È¤òÍÑ°Õ¤¹¤ë¤³¤È¡£ ++ ++ b. LHa ¤ËÂФ¹¤ëÉղòÁÃͤ¬ÉÕ¤±¤é¤ì¤ÆºÆÇÛÉÛ¤µ¤ì¤ë ++ ¾ì¹ç¤Ë¤Ï¤½¤ì¤é¤â¤Ç¤­¤ë¤À¤±´Þ¤á¤ë¤è¤¦ÅØÎϤ¹¤ë ++ ¤³¤È¡£¤Þ¤¿¡¢¤½¤ÎºÝ¤Ë¤ÏÉղòÁÃͤ¬ÉÕ¤±¤é¤ì¤Æ¤¤ ++ ¤ë¤³¤È¤òÌÀ¼¨¤·¤¿¥É¥­¥å¥á¥ó¥È¤òÍÑ°Õ¤¹¤ë¤³¤È¡£ ++ ++ c. ¥Ð¥¤¥Ê¥ê¤Î¤ß¤ÎÇÛÉۤϵö¤µ¤ì¤Ê¤¤¡£(ÉղòÁÃÍ ¤Î ++ ¤â¤Î¤â´Þ¤à) ++ ++ 3. ºÇ¿·ÈǤÎÇÛÉÛ¤Ë̳¤á¤ë¤³¤È¡£(µÁ̳¤Ï¤Ê¤¤) ++ ++ Ãí. ¤Ê¤ª¡¢¥Í¥Ã¥È¤Ç¤ÎÇÛÉդϼ«Í³¤Ç¤¢¤ë¤¬¡¢¥Í¥Ã¥È¤Ë ++ ¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤Êý¡Ê»¨»ï¤ª¤è¤Ó¡¢ CDROM ¤Ê ¤É ++ ¤Ë ¤è¤ë¡ËÇÛÉդϡ¢ÇÛÉÕÁ°¤Ë¤³¤Á¤é¤Ë EMail ¤ò¤ª ++ ´ê¤¤¤·¤Þ¤¹¡£ÇÛÉÕÁ°¤Ë½ÐÍè¤Ê¤¤ºÝ¤Ë¤Ï¡¢¸åÆüɬ¤º ++ EMail ¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£ ++ ++ 4. ¤³¤Î¥×¥í¥°¥é¥à¤Î¸ºß¤ä»ÈÍѤ·¤¿¤³¤È¤Ë¤è¤Ã¤ÆÀ¸¤¸¤¿Â» ++ ³²¤ÏÁ´¤¯Êݾڤ·¤Ê¤¤¡£ ++ ++ 5. ºî¼Ô¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à¤ËÉÔÈ÷¤¬¤¢¤Ã¤Æ¤â¡¢¤½¤ì¤òÄû Àµ ++ ¤¹¤ëµÁ̳¤òÉé¤ï¤Ê¤¤¡£ ++ ++ 6. ¤³¤Î¥×¥í¥°¥é¥à¤Î°ìÉô¡¢¤Þ¤¿¤ÏÁ´Éô¤ò¾¤Î¥×¥í¥°¥é¥à¤Ë ++ ÁȤ߹þ¤ó¤ÇÍøÍѤ·¤Æ¤â¤«¤Þ¤ï¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢¤½¤Î¥× ¥í ++ ¥°¥é¥à¤Ï LHa ¤Ç¤Ï¤Ê¤¯¡¢ LHa ¤È̾¾è¤Ã¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ ++ ++ 7. ¾¦ÍøÍѤ˴ؤ·¤Æ¤Ï¡¢¾åµ­¤Î¾ò·ï¤Ë²Ã¤¨¡¢²¼µ­¤Î¾ò·ï¤Î¤â ++ ¤È¤Ë¤³¤ì¤òǧ¤á¤ë¡£ ++ ++ a. ¤³¤Î¥×¥í¥°¥é¥à¤ò¥á¥¤¥ó¤È¤¹¤ë¾¦ÍøÍÑ¤Ï¶Ø »ß ¤¹ ++ ¤ë¡£ ++ ++ b. ¾¦ÍøÍѤÎÁê¼ê¤¬¤³¤Î¥×¥í¥°¥é¥à¤Î»ÈÍѼԤȤ·¤ÆÉÔ ++ ŬÀÚ¤ÈȽÃǤ·¤¿¾ì¹ç¤Ë¤ÏÇÛÉÛ¤·¤Ê¤¤¡£ ++ ++ c. ¥¤¥ó¥¹¥È¡¼¥ë¤Î¼êÃʤȤ·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¡¢¤³¤Î¥× ++ ¥í¥°¥é¥à¤ò»È¤¦¤³¤È¤òÁê¼ê¤Ë¶¯À©¤·¤Ê¤¤¡£¤³¤Î¾ì ++ ¹ç¡¢¾¦ÍøÍѼԤ¬ºî¶È¤ò¹Ô¤¦¡£¤Þ¤¿¡¢¤½¤Î¤È¤­¤Î» ++ ³²¤Ï¡¢¾¦ÍøÍѼԤ¬Á´ÀÕǤ¤òÉ餦¡£ ++ ++ d. ¾¦ÍøÍѤòÉղòÁÃͤȤ·¤Æ¹Ô¤¤¤³¤Î¥×¥í¥°¥é¥à¤ò»È ++ ÍѤ¹¤ë¾ì¹ç¡¢¾¦ÍøÍѼԤϡ¢¤½¤Î¥µ¥Ý¡¼¥È¤ò¹Ô¤¦¡£ ++ ++ ++Original Authors License Statement (from man/lha.man, translated by ++Osamu Aoki <debian@aokiconsulting.com>): ++ ++ Permission is given for redistribution, copy, and modification provided ++ following conditions are met. ++ ++ 1. Do not remove copyright clause. ++ 2. Distribution shall conform: ++ a. The content of redistribution (i.e., source code, documentation, ++ and reference guide for programmers) shall include original contents. ++ If contents are modified, the document clearly indicating ++ the fact of modification must be included. ++ b. If LHa is redistributed with added values, you must put your best ++ effort to include them (Translator comment: If read literally, ++ original Japanese was unclear what "them" means here. But ++ undoubtedly this "them" means source code for the added value ++ portion and this is a typical Japanese sloppy writing style to ++ abbreviate as such) Also the document clearly indicating that ++ added value was added must be included. ++ c. Binary only distribution is not allowed (including added value ++ ones.) ++ 3. You need to put effort to distribute the latest version (This is not ++ your duty). ++ ++ NB: Distribution on Internet is free. Please notify me by e-mail or ++ other means prior to the distribution if distribution is done through ++ non-Internet media (Magazine, CDROM etc.) If not, make sure to Email ++ me later. ++ ++ 4. Any damage caused by the existence and use of this program will not ++ be compensated. ++ ++ 5. Author will not be responsible to correct errors even if program is ++ defective. ++ ++ 6. This program, either as a part of this or as a whole of this, may be ++ included into other programs. In this case, that program is not LHa ++ and can not call itself LHa. ++ ++ 7. For commercial use, in addition to above conditions, following ++ condition needs to be met. ++ ++ a. The program whose content is mainly this program can not be used ++ commercially. ++ b. If the recipient of commercial use deems inappropriate as a ++ program user, you must not distribute. ++ c. If used as a method for the installation, you must not force ++ others to use this program. In this case, commercial user will ++ perform its work while taking full responsibility of its outcome. ++ d. If added value is done under the commercial use by using this ++ program, commercial user shall provide its support. ++ ++ ++(Osamu Aoki also comments: ++ Here "commercial" may be interpreted as "for-fee". "Added value" seems ++ to mean "feature enhancement". ) ++ ++ ++License Statement by Tsugio Okamoto (in Japanese EUC-JP): ++ ++ ¤Ê¤ª¡¢¥Í¥Ã¥È¤Ç¤ÎÇÛÉդϼ«Í³¤Ç¤¹¤¬¡¢¥Í¥Ã¥È¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤Êý¡Ê»¨»ï¤ª¤è¤Ó¡¢ ++ CD-ROM ¤Ê¤É¤Ë¤è¤ë¡Ë¤Ø¤ÎÇÛÉդϡ¢ÇÛÉÕÁ°¤Ë¤³¤Á¤é¤Ë Inter-Net ¤ÎÊý¤ËE-Mail ++ ¤ò ¤ª´ê¤¤¤·¤Þ¤¹¡£ ¤É¤³¤½¤³¤Ë¡¢·ÇºÜ¤¹¤ë¤È¤¤¤¦»Ý¤¬¤¢¤ì¤Ð·ë¹½¤Ç¤¹¤Î¤Ç¡£ ++ ¤Þ¤¿¡¢¤½¤ì¤â½ÐÍè¤Ê¤¤ºÝ¤Ë¤Ï¡¢¸åÆü E-Mail ¤òɬ¤º¤ª´ê¤¤¤·¤Þ¤¹¡£ ++ ++ ++Translated License Statement by Tsugio Okamoto (translated by ++GOTO Masanori <gotom@debian.org>): ++ ++ It's free to distribute on the network, but if you distribute for ++ the people who cannot access the network (by magazine or CD-ROM), ++ please send E-Mail (Inter-Net address) to the author before the ++ distribution. That's well where this software is appeard. ++ If you cannot do, you must send me the E-Mail later. ++ +--- lha-1.14i.orig/debian/control ++++ lha-1.14i/debian/control +@@ -0,0 +1,13 @@ ++Source: lha ++Section: non-free/utils ++Priority: optional ++Maintainer: GOTO Masanori <gotom@debian.org> ++Build-Depends: debhelper (>> 4.0.0) ++Standards-Version: 3.6.0 ++ ++Package: lha ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: lzh archiver ++ The famous lzh archiver, known from DOS. When mixing DOS and Unix ++ you might need it. (Especially for fido <--> rfc conversions.) +--- lha-1.14i.orig/debian/docs ++++ lha-1.14i/debian/docs +@@ -0,0 +1,10 @@ ++README.euc ++change-114e.txt ++change-114g.txt ++change-114h.txt ++change-114i.txt ++MACHINES ++MACHINES2 ++PROBLEMS ++header.doc ++debian/header-e.doc +--- lha-1.14i.orig/debian/patch.paul ++++ lha-1.14i/debian/patch.paul +@@ -0,0 +1,10 @@ ++--- src/lha.h Thu Oct 5 19:35:38 2000 +++++ src/lha.h Wed Aug 22 15:49:55 2001 ++@@ -16,6 +16,7 @@ ++ #include <sys/types.h> ++ #include <sys/file.h> ++ #include <sys/stat.h> +++#include <stdlib.h> ++ ++ #include <signal.h> ++ +--- lha-1.14i.orig/debian/header-e.doc ++++ lha-1.14i/debian/header-e.doc +@@ -0,0 +1,189 @@ ++/* header.doc (In English) */ ++Header structure used in LHa for UNIX Mar. 2, 1992, Masaru Oki. ++(Translated by Osamu Aoki) ++ ++---------------------------------------------------------------- ++This version, as a transitional mreasure, uses level-1 as default value while ++offering 3 types of header types. In the future, I plan to use level-2 which ++has no limit on number of characters for the path mname. ++ ++ A. Spec for header ++ ++Basic part ++----------------------------------------------------------------------------- ++ level-0 level-1 level-2 ++----------------------------------------------------------------------------- ++ 1 header size 1 header size 2 total header size ++ 1 header sum 1 header sum ++ 5 method ID 5 method ID 5 method ID ++ 4 packed size 4 skip size 4 packed size ++ 4 original size 4 original size 4 original size ++ 2 time 2 time 4 time(UNIX type) ++ 2 date 2 date ++ 1 attribute 1 0x20 1 RESERVED ++ 1 level 0x00 1 level 0x01 1 level 0x02 ++ 1 name length 1 name length ++ ? pathname ? filename ++ 2 file crc 2 file crc 2 file crc ++ . ........ 1 OS ID 'U' 1 OS ID 'U' ++ . ........ ++ 2 next-header size 2 next-header size ++ ************************************************************************* ++ 24 + ? 27 + ? 26 ++ ++Extension part ++----------------------------------------------------------------------------- ++ 1 ext-type 1 ext-type ++ . ........ . ........ ++ 2 next-header size 2 next-header size ++ ++----------------------------------------------------------------------------- ++ ++ a. Types of header ++ ++ level-0 header ++ Same format as conventional LHarc, LArc. Separator for directory ++ name is '\' as default. ++ ++ level-1 header ++ This header is used as default. Archive type -lh0 made with -x0 can ++ be unfrozen by LHarc but there will be no checking on CRC. ++ ++ level-2 header ++ Header for supporting long file names. I would like to standarize ++ on this format in the future. Please follow this if you wish to ++ make utilities related ti LH. ++ ++ b. method ID for freeze/unfreeze ++ ++ * these methods are freeze/unfreeze, others are unfreeze only ++ ++ -lh0- * no compression ++ ++ -lh1- * 4k sliding dictionary(max 60 bytes) + dynamic Huffman ++ + fixed encoding of position ++ ++ -lh2- 8k sliding dictionary(max 256 bytes) + dynamic Huffman ++ ++ -lh3- 8k sliding dictionary(max 256 bytes) + static Huffman ++ ++ -lh4- * 4k sliding dictionary(max 256 bytes) + static Huffman ++ + improved encoding of position and trees ++ ++ -lh5- * 8k sliding dictionary(max 256 bytes) + static Huffman ++ + improved encoding of position and trees ++ ++ -lh6- 32k sliding dictionary(max 256 bytes) + static Huffman ++ + improved encoding of position and trees ++ ++ -lh7- 64k sliding dictionary(max 256 bytes) + static Huffman ++ + improved encoding of position and trees ++ ++ -lzs- 2k sliding dictionary(max 17 bytes) ++ ++ -lz4- no compression ++ ++ -lz5- 4k sliding dictionary(max 17 bytes) ++ ++ c. About OS ID ++ ++ Following OS ID are reserved. ++ ++ MS-DOS 'M' ++ OS/2 '2' ++ OS9 '9' ++ OS/68K 'K' ++ OS/386 '3' ++ HUMAN 'H' ++ UNIX 'U' ++ CP/M 'C' ++ FLEX 'F' ++ Mac 'm' ++ Runser 'R' ++ ++ B. Extension ++ ++ a. OS independent (0x00 - 0x3f) ++ ++ common header ++ 1 0x00 ++ 2 header crc ++ ( 1 information ) ++ 2 next-header size ++ ++ filename header ++ 1 0x01 ++ ? filename ++ 2 next-header size ++ ++ dirname header ++ 1 0x02 ++ ? dirname ++ 2 next-header size ++ ++ comment header ++ 1 0x3f ++ ? comments ++ 2 next-header size ++ ++(Above portion, from lhx.doc by Mr. Yoshizaki) ++---------------------------------------------------------------- ++LHa for UNIX : specification for extension header ++ ++* Category of machine specific information (Information to be recorded) ++ Followings are UNIX specific information which requires to be recorded ++ (1) Permission ++ (2) GID,UID ++ (3) Group name, User name ++ (4) Last change time (UNIX time) ++ ++* Type of machine specific information (ext-type) ++ First 1 byte of extension header contain value to distinguish types of ++ the infoemation. Foe UNIX specific information, 0x50 - 0x54 will be ++ used. ++ ++* Method to store ++ Above categories (1) - (4) will be different type. ++ ++ ++ (1) Pemission ++ size value ++ 1 0x50 ++ 2 Valur of permission ++ 2 next-header size ++ ++ (2)GID,UID ++ size value ++ 1 0x51 ++ 2 GID ++ 2 UID ++ 2 next-header size ++ ++ (3)-1 Group name ++ 1 0x52 ++ ? Group name string ++ 2 next-header size ++ ++ (3)-2 user name ++ 1 0x53 ++ ? User name string ++ 2 next-header size ++ ++ (4) Last change time (for header_level1) ++ 1 0x54 ++ 4 UNIX time ++ 2 next-header size ++ ++* Implimentation of LHa for UNIX ver 1.14 (Watazaki) ++ Above (3) is not supported ++ Group name and user name specified by (3) is not used to make an ++ archive thus ignored during expansion. ++ Also (4) is contained only in level-1 archive. ++---------------------------------------------------------------- ++That's all folks :) ++ ++Partially modified by ++Nobutaka Watazaki ++watazaki@shimadzu.co.jp ++ ++ +--- lha-1.14i.orig/debian/patch.CAN-2004-0234_0235 ++++ lha-1.14i/debian/patch.CAN-2004-0234_0235 +@@ -0,0 +1,85 @@ ++--- src/header.c.old 2000-10-05 19:36:03.000000000 +0200 +++++ src/header.c 2004-04-17 23:55:54.000000000 +0200 ++@@ -538,6 +538,10 @@ ++ /* ++ * filename ++ */ +++ if (header_size >= 256) { +++ fprintf(stderr, "Possible buffer overflow hack attack, type #1\n"); +++ exit(109); +++ } ++ for (i = 0; i < header_size - 3; i++) ++ hdr->name[i] = (char) get_byte(); ++ hdr->name[header_size - 3] = '\0'; ++@@ -547,6 +551,10 @@ ++ /* ++ * directory ++ */ +++ if (header_size >= FILENAME_LENGTH) { +++ fprintf(stderr, "Possible buffer overflow hack attack, type #2\n"); +++ exit(110); +++ } ++ for (i = 0; i < header_size - 3; i++) ++ dirname[i] = (char) get_byte(); ++ dirname[header_size - 3] = '\0'; ++--- src/lhext.c.old 2000-10-04 16:57:38.000000000 +0200 +++++ src/lhext.c 2004-04-18 01:27:44.000000000 +0200 ++@@ -190,8 +190,13 @@ ++ q = (char *) rindex(hdr->name, '/') + 1; ++ } ++ else { +++ if (is_directory_traversal(q)) { +++ fprintf(stderr, "Possible directory traversal hack attempt in %s\n", q); +++ exit(111); +++ } +++ ++ if (*q == '/') { ++- q++; +++ while (*q == '/') { q++; } ++ /* ++ * if OSK then strip device name ++ */ ++@@ -419,6 +424,33 @@ ++ return; ++ } ++ +++int +++is_directory_traversal(char *string) +++{ +++ unsigned int type = 0; /* 0 = new, 1 = only dots, 2 = other chars than dots */ +++ char *temp; +++ +++ temp = string; +++ +++ while (*temp != 0) { +++ if (temp[0] == '/') { +++ if (type == 1) { return 1; } +++ type = 0; +++ temp++; +++ continue; +++ } +++ +++ if ((temp[0] == '.') && (type < 2)) +++ type = 1; +++ if (temp[0] != '.') +++ type = 2; +++ +++ temp++; +++ } /* while */ +++ +++ return (type == 1); +++} +++ ++ /* Local Variables: */ ++ /* mode:c */ ++ /* tab-width:4 */ ++--- src/lhext.c.symlink 2000-10-04 10:57:38.000000000 -0400 +++++ src/lhext.c 2003-05-19 22:55:57.000000000 -0400 ++@@ -351,6 +351,7 @@ extract_one(afp, hdr) ++ } ++ ++ unlink(bb1); +++ make_parent_path(bb1); ++ l_code = symlink(bb2, bb1); ++ if (l_code < 0) { ++ if (quiet != TRUE) +--- lha-1.14i.orig/debian/patch.header-overflow ++++ lha-1.14i/debian/patch.header-overflow +@@ -0,0 +1,21 @@ ++--- src/header.c 2002-07-19 17:23:58.000000000 +0900 +++++ src/header.c 2004-06-16 09:49:23.000000000 +0900 ++@@ -648,8 +648,17 @@ ++ } ++ ++ if (dir_length) { +++ if ((dir_length + name_length) > sizeof(dirname)) { +++ fprintf(stderr, "Insufficient buffer size\n"); +++ exit(112); +++ } ++ strcat(dirname, hdr->name); ++- strcpy(hdr->name, dirname); +++ +++ if ((dir_length + name_length) > sizeof(hdr->name)) { +++ fprintf(stderr, "Insufficient buffer size\n"); +++ exit(112); +++ } +++ strncpy(hdr->name, dirname, sizeof(hdr->name)); ++ name_length += dir_length; ++ } ++ +--- lha-1.14i.orig/debian/patch.redhat-sec2 ++++ lha-1.14i/debian/patch.redhat-sec2 +@@ -0,0 +1,196 @@ ++diff -urNp lha-114i.orig/src/lha_macro.h lha-114i/src/lha_macro.h ++--- lha-114i.orig/src/lha_macro.h 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/lha_macro.h 2004-08-03 15:54:05.000000000 -0500 ++@@ -53,7 +53,7 @@ ++ #define SEEK_SET 0 ++ #define SEEK_CUR 1 ++ #define SEEK_END 2 ++-#endif /* SEEK_SET +++#endif /* SEEK_SET */ ++ ++ ++ /* non-integral functions */ ++diff -urNp lha-114i.orig/src/lharc.c lha-114i/src/lharc.c ++--- lha-114i.orig/src/lharc.c 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/lharc.c 2004-08-03 15:54:05.000000000 -0500 ++@@ -830,9 +830,10 @@ find_files(name, v_filec, v_filev) ++ DIRENTRY *dp; ++ struct stat tmp_stbuf, arc_stbuf, fil_stbuf; ++ ++- strcpy(newname, name); +++ strncpy(newname, name, sizeof(newname)); +++ newname[sizeof(newname)-1] = 0; ++ len = strlen(name); ++- if (len > 0 && newname[len - 1] != '/') +++ if (len > 0 && newname[len - 1] != '/' && len < (sizeof(newname)-1)) ++ newname[len++] = '/'; ++ ++ dirp = opendir(name); ++@@ -846,6 +847,11 @@ find_files(name, v_filec, v_filev) ++ ++ for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) { ++ n = NAMLEN(dp); +++ if (len >= (sizeof(newname)-1) || +++ (len+n) >= (sizeof(newname)-1) || +++ n <= 0 || +++ (len+n) <= 0) +++ break; ++ strncpy(newname + len, dp->d_name, n); ++ newname[len + n] = '\0'; ++ if (GETSTAT(newname, &fil_stbuf) < 0) ++@@ -903,7 +909,8 @@ build_temporary_name() ++ strcpy(temporary_name, TMP_FILENAME_TEMPLATE); ++ } ++ else { ++- sprintf(temporary_name, "%s/lhXXXXXX", extract_directory); +++ snprintf(temporary_name, sizeof(temporary_name), +++ "%s/lhXXXXXX", extract_directory); ++ } ++ #ifdef MKSTEMP ++ mkstemp(temporary_name); ++@@ -913,10 +920,16 @@ build_temporary_name() ++ #else ++ char *p, *s; ++ ++- strcpy(temporary_name, archive_name); +++ strncpy(temporary_name, archive_name, sizeof(temporary_name)); +++ temporary_name[sizeof(temporary_name)-1] = 0; ++ for (p = temporary_name, s = (char *) 0; *p; p++) ++ if (*p == '/') ++ s = p; +++ +++ if( sizeof(temporary_name) - ((size_t) (s-temporary_name)) - 1 +++ <= strlen("lhXXXXXX")) +++ exit(-1); +++ ++ strcpy((s ? s + 1 : temporary_name), "lhXXXXXX"); ++ #ifdef MKSTEMP ++ mkstemp(temporary_name); ++@@ -1052,7 +1065,8 @@ open_old_archive() ++ ++ if (open_old_archive_1(archive_name, &fp)) ++ return fp; ++- sprintf(expanded_archive_name, "%s.lzh", archive_name); +++ snprintf(expanded_archive_name, sizeof(expanded_archive_name), +++ "%s.lzh", archive_name); ++ if (open_old_archive_1(expanded_archive_name, &fp)) { ++ archive_name = expanded_archive_name; ++ return fp; ++@@ -1061,7 +1075,8 @@ open_old_archive() ++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name = ++ * expanded_archive_name; return NULL; } ++ */ ++- sprintf(expanded_archive_name, "%s.lzs", archive_name); +++ snprintf(expanded_archive_name, sizeof(expanded_archive_name), +++ "%s.lzs", archive_name); ++ if (open_old_archive_1(expanded_archive_name, &fp)) { ++ archive_name = expanded_archive_name; ++ return fp; ++diff -urNp lha-114i.orig/src/lhext.c lha-114i/src/lhext.c ++--- lha-114i.orig/src/lhext.c 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/lhext.c 2004-08-03 15:55:40.000000000 -0500 ++@@ -82,7 +82,8 @@ make_parent_path(name) ++ register char *p; ++ ++ /* make parent directory name into PATH for recursive call */ ++- strcpy(path, name); +++ memset(path, 0, sizeof(path)); +++ strncpy(path, name, sizeof(path)-1); ++ for (p = path + strlen(path); p > path; p--) ++ if (p[-1] == '/') { ++ *--p = '\0'; ++@@ -212,9 +213,11 @@ extract_one(afp, hdr) ++ } ++ ++ if (extract_directory) ++- sprintf(name, "%s/%s", extract_directory, q); ++- else ++- strcpy(name, q); +++ snprintf(name, sizeof(name), "%s/%s", extract_directory, q); +++ else { +++ strncpy(name, q, sizeof(name)); +++ name[sizeof(name) - 1] = '\0'; +++ } ++ ++ ++ /* LZHDIRS_METHOD�����ĥإå��������å����� */ ++@@ -335,7 +338,8 @@ extract_one(afp, hdr) ++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK) { ++ char buf[256], *bb1, *bb2; ++ int l_code; ++- strcpy(buf, name); +++ strncpy(buf, name, sizeof(buf)); +++ buf[sizeof(buf)-1] = 0; ++ bb1 = strtok(buf, "|"); ++ bb2 = strtok(NULL, "|"); ++ ++@@ -365,9 +369,10 @@ extract_one(afp, hdr) ++ if (quiet != TRUE) { ++ printf("Symbolic Link %s -> %s\n", bb1, bb2); ++ } ++- strcpy(name, bb1); /* Symbolic's name set */ +++ strncpy(name, bb1, 255); /* Symbolic's name set */ +++ name[255] = 0; ++ #else ++- sprintf(buf, "%s -> %s", bb1, bb2); +++ sprintf(buf, sizeof(buf), "%s -> %s", bb1, bb2); ++ warning("Can't make Symbolic Link", buf); ++ return; ++ #endif ++diff -urNp lha-114i.orig/src/lhlist.c lha-114i/src/lhlist.c ++--- lha-114i.orig/src/lhlist.c 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/lhlist.c 2004-08-03 15:54:05.000000000 -0500 ++@@ -250,7 +250,8 @@ list_one(hdr) ++ printf(" %s", hdr->name); ++ else { ++ char buf[256], *b1, *b2; ++- strcpy(buf, hdr->name); +++ strncpy(buf, hdr->name, sizeof(buf)); +++ buf[sizeof(buf)-1] = 0; ++ b1 = strtok(buf, "|"); ++ b2 = strtok(NULL, "|"); ++ printf(" %s -> %s", b1, b2); ++diff -urNp lha-114i.orig/src/util.c lha-114i/src/util.c ++--- lha-114i.orig/src/util.c 2004-08-03 15:53:56.000000000 -0500 +++++ lha-114i/src/util.c 2004-08-03 15:54:05.000000000 -0500 ++@@ -276,21 +276,27 @@ rmdir(path) ++ char *path; ++ { ++ int stat, rtn = 0; ++- char *cmdname; ++- if ((cmdname = (char *) malloc(strlen(RMDIRPATH) + 1 + strlen(path) + 1)) ++- == 0) +++ pid_t child; +++ +++ +++ /* XXX thomas: shell meta chars in path could exec commands */ +++ /* therefore we should avoid using system() */ +++ if ((child = fork()) < 0) +++ return (-1); /* fork error */ +++ else if (child) { /* parent process */ +++ while (child != wait(&stat)) /* ignore signals */ +++ continue; +++ } +++ else { /* child process */ +++ execl(RMDIRPATH, "rmdir", path, (char *) 0); +++ /* never come here except execl is error */ ++ return (-1); ++- strcpy(cmdname, RMDIRPATH); ++- *(cmdname + strlen(RMDIRPATH)) = ' '; ++- strcpy(cmdname + strlen(RMDIRPATH) + 1, path); ++- if ((stat = system(cmdname)) < 0) ++- rtn = -1; /* fork or exec error */ ++- else if (stat) { /* RMDIR command error */ ++- errno = EIO; ++- rtn = -1; ++ } ++- free(cmdname); ++- return (rtn); +++ if (stat != 0) { +++ errno = EIO; /* cannot get error num. */ +++ return (-1); +++ } +++ return (0); ++ } ++ ++ /* ------------------------------------------------------------------------ */ +--- lha-1.14i.orig/debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338 ++++ lha-1.14i/debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338 +@@ -0,0 +1,137 @@ ++diff -aur lha-1.14i.orig/src/huf.c lha-1.14i/src/huf.c ++--- lha-1.14i.orig/src/huf.c 2000-10-05 19:35:49.000000000 +0200 +++++ lha-1.14i/src/huf.c 2006-12-11 10:07:31.000000000 +0100 ++@@ -332,7 +332,7 @@ ++ } ++ else { ++ i = 0; ++- while (i < n) { +++ while (i < MIN(n, NPT)) { ++ c = bitbuf >> (16 - 3); ++ if (c == 7) { ++ unsigned short mask = 1 << (16 - 4); ++@@ -345,7 +345,7 @@ ++ pt_len[i++] = c; ++ if (i == i_special) { ++ c = getbits(2); ++- while (--c >= 0) +++ while (--c >= 0 && i < NPT) ++ pt_len[i++] = 0; ++ } ++ } ++@@ -370,7 +370,7 @@ ++ c_table[i] = c; ++ } else { ++ i = 0; ++- while (i < n) { +++ while (i < MIN(n,NC)) { ++ c = pt_table[bitbuf >> (16 - 8)]; ++ if (c >= NT) { ++ unsigned short mask = 1 << (16 - 9); ++@@ -380,7 +380,7 @@ ++ else ++ c = left[c]; ++ mask >>= 1; ++- } while (c >= NT); +++ } while (c >= NT && (mask || c != left[c])); /* CVE-2006-4338 */ ++ } ++ fillbuf(pt_len[c]); ++ if (c <= 2) { ++@@ -427,7 +427,7 @@ ++ else ++ j = left[j]; ++ mask >>= 1; ++- } while (j >= NC); +++ } while (j >= NC && (mask || j != left[j])); /* CVE-2006-4338 */ ++ fillbuf(c_len[j] - 12); ++ } ++ return j; ++@@ -451,7 +451,7 @@ ++ else ++ j = left[j]; ++ mask >>= 1; ++- } while (j >= np); +++ } while (j >= np && (mask || j != left[j])); /* CVE-2006-4338 */ ++ fillbuf(pt_len[j] - 8); ++ } ++ if (j != 0) ++Only in lha-1.14i/src: huf.c~ ++diff -aur lha-1.14i.orig/src/lha_macro.h lha-1.14i/src/lha_macro.h ++--- lha-1.14i.orig/src/lha_macro.h 2006-12-11 09:43:54.000000000 +0100 +++++ lha-1.14i/src/lha_macro.h 2006-12-11 09:55:42.000000000 +0100 ++@@ -408,6 +408,8 @@ ++ #define MAXMATCH 256 /* formerly F (not more than UCHAR_MAX + 1) */ ++ #define THRESHOLD 3 /* choose optimal value */ ++ +++#define MIN(a,b) ((a) <= (b) ? (a) : (b)) +++ ++ /* from huf.c */ ++ ++ /* alphabet = {0, 1, 2, ..., NC - 1} */ ++Only in lha-1.14i/src: lha_macro.h~ ++diff -aur lha-1.14i.orig/src/maketbl.c lha-1.14i/src/maketbl.c ++--- lha-1.14i.orig/src/maketbl.c 2000-10-04 16:57:38.000000000 +0200 +++++ lha-1.14i/src/maketbl.c 2006-12-11 09:59:51.000000000 +0100 ++@@ -32,8 +32,15 @@ ++ } ++ ++ /* count */ ++- for (i = 0; i < nchar; i++) ++- count[bitlen[i]]++; +++ for (i = 0; i < nchar; i++) { +++ if (bitlen[i] > 16) { +++ /* CVE-2006-4335 */ +++ error("Bad table (case a)"); +++ exit(1); +++ } +++ else +++ count[bitlen[i]]++; +++ } ++ ++ /* calculate first code */ ++ total = 0; ++@@ -41,8 +48,11 @@ ++ start[i] = total; ++ total += weight[i] * count[i]; ++ } ++- if ((total & 0xffff) != 0) ++- error("make_table()", "Bad table (5)\n"); +++ +++ if ((total & 0xffff) != 0 || tablebits > 16) { /* 16 for weight below */ +++ error("make_table(): Bad table (case b)"); +++ exit(1); +++ } ++ ++ /* shift data for make table. */ ++ m = 16 - tablebits; ++@@ -53,7 +63,7 @@ ++ ++ /* initialize */ ++ j = start[tablebits + 1] >> m; ++- k = 1 << tablebits; +++ k = MIN(1 << tablebits, 4096); ++ if (j != 0) ++ for (i = j; i < k; i++) ++ table[i] = 0; ++@@ -66,12 +76,19 @@ ++ l = start[k] + weight[k]; ++ if (k <= tablebits) { ++ /* code in table */ +++ l = MIN(l, 4096); ++ for (i = start[k]; i < l; i++) ++ table[i] = j; ++ } ++ else { ++ /* code not in table */ ++- p = &table[(i = start[k]) >> m]; +++ i = start[k]; +++ if ((i >> m) > 4096) { +++ /* CVE-2006-4337 */ +++ error("Bad table (case c)"); +++ exit(1); +++ } +++ p = &table[i >> m]; ++ i <<= tablebits; ++ n = k - tablebits; ++ /* make tree (n length) */ ++Only in lha-1.14i/src: maketbl.c~ diff --git a/source/a/lha/slack-desc b/source/a/lha/slack-desc new file mode 100644 index 000000000..75c1dd43a --- /dev/null +++ b/source/a/lha/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lha: lha (LHa archive utility) +lha: +lha: LHa is an archiving and compressing utility written by Tsugio Okamoto. +lha: +lha: +lha: +lha: +lha: +lha: +lha: +lha: diff --git a/source/a/lilo/lilo.SlackBuild b/source/a/lilo/lilo.SlackBuild new file mode 100755 index 000000000..197f33843 --- /dev/null +++ b/source/a/lilo/lilo.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-22.8} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-14} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lilo + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf lilo-$VERSION +tar xvf $CWD/lilo-$VERSION.src.tar.gz || exit 1 +cd lilo-$VERSION +chown -R root:root . + +make || exit 1 +make install ROOT=$PKG + +# Add a Slackware logo boot menu (sorry, couldn't resist): +if [ "$ARCH" = "x86_64" -a -f $CWD/slack64.bmp ]; then + cp -a $CWD/slack64.bmp $PKG/boot/slack.bmp +else + cp -a $CWD/slack.bmp $PKG/boot +fi +chmod 644 $PKG/boot/slack.bmp + +# We don't need to add this empty directory: +rmdir $PKG/etc + +# Add Slackware's 'liloconfig' utility: +mkdir -p $PKG/sbin +cp -a $CWD/liloconfig $PKG/sbin/liloconfig +chmod 755 $PKG/sbin/liloconfig +mkdir -p $PKG/var/log/setup +cp -a $CWD/setup.liloconfig $PKG/var/log/setup/setup.liloconfig +cp -a $CWD/text.lilohelp $PKG/var/log/setup/text.lilohelp +chmod 755 $PKG/var/log/setup/setup.liloconfig +chmod 644 $PKG/var/log/setup/text.lilohelp +chown root:root \ + $PKG/var/log/setup/setup.liloconfig $PKG/var/log/setup/text.lilohelp + +rm -rf $PKG/usr/doc/lilo-$VERSION +mkdir -p $PKG/usr/doc/lilo-$VERSION +cp -a CHANGES COPYING COPYRIGHT INCOMPAT QuickInst READM* doc sample \ + $PKG/usr/doc/lilo-$VERSION +if [ -r $CWD/lilo-$VERSION.lsm ]; then + cp -a $CWD/lilo-$VERSION.lsm $PKG/usr/doc/lilo-$VERSION +fi +if [ -r $CWD/lilo-$VERSION.announce.txt ]; then + cp -a $CWD/lilo-$VERSION.announce.txt $PKG/usr/doc/lilo-$VERSION +fi + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/lilo-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/lilo/liloconfig b/source/a/lilo/liloconfig new file mode 100644 index 000000000..e786e7522 --- /dev/null +++ b/source/a/lilo/liloconfig @@ -0,0 +1,1165 @@ +#!/bin/sh +# +# Copyright 1994, 1998, 1999 Patrick Volkerding, Moorhead, Minnesota USA +# Copyright 2002, 2003 Slackware Linux, Inc, Concord, CA +# Copyright 2007, 2008 Patrick Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# +TMP=/var/log/setup/tmp +CONSOLETYPE=standard +unset UTFVT + +# Set the OS root directory (called T_PX for some unknown reason). +# If an argument is given to this script and it is a directory, it +# is taken to be the root directory. First though, we check for a +# directory named $T_PX, and that gets the first priority. +if [ ! -d "$T_PX" ]; then + if [ ! "$1" = "" ]; then + if [ -d "$1" ]; then + T_PX="$1" + fi + else + # Are we on the installer image? + if [ -r /usr/lib/setup/SeTpartitions ]; then + T_PX=/mnt + # Or, are we on a running system? + elif [ -r /etc/slackware-version ]; then + T_PX=/ + # One more installer-likely thing: + elif [ -r /usr/lib/setup/setup ]; then + T_PX=/mnt + else + # We will have to assume we've on an installed and running system. + T_PX=/ + fi + fi +fi + +# If there's no boot_message.txt, start the header for one now: +if [ ! -r $T_PX/boot/boot_message.txt ]; then + cat << EOF > $T_PX/boot/boot_message.txt + +Welcome to the LILO Boot Loader! + +Please enter the name of the partition you would like to boot +at the prompt below. The choices are: + +EOF +fi + +# The default install location may be set here: +DEFAULT=" --default-item MBR " + +# This is a different 'probe' than the function below. +PROBE() { + if [ -x /sbin/probe ]; then + /sbin/probe -l + elif fdisk -l | grep "Disk /dev/ide" 1> /dev/null 2> /dev/null ; then # no devfs yet + for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \ + /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \ + /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \ + /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do + fdisk -l $devs 2> /dev/null + done + elif fdisk -l | grep "Disk /dev/scsi" 1> /dev/null 2> /dev/null ; then # no devfs yet + for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \ + /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \ + /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \ + /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do + fdisk -l $devs 2> /dev/null + done + elif [ -z "`fdisk -l`" ]; then + for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \ + /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \ + /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \ + /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do + fdisk -l $devs 2> /dev/null + done + else # We got output without /dev/ide or /dev/scsi, so it can probably be trusted: + fdisk -l 2> /dev/null + fi +} + +# Function to ask if the Slackware logo boot screen should be used. +ask_boot_splash() { + dialog --title "OPTIONAL SLACKWARE LOGO BOOT SCREEN" \ + --yesno \ +"Would you like to use a boot screen with the Slackware logo \ +against a black background? If you answer no here, the standard \ +LILO menu will be used.\n\ +" 7 65 2> $TMP/reply + RETVAL=$? + return $RETVAL +} + +boot_bmp() { + cat << EO_BMP +# Boot BMP Image. +# Bitmap in BMP format: 640x480x8 + bitmap = /boot/slack.bmp +# Menu colors (foreground, background, shadow, highlighted +# foreground, highlighted background, highlighted shadow): + bmp-colors = 255,0,255,0,255,0 +# Location of the option table: location x, location y, number of +# columns, lines per column (max 15), "spill" (this is how many +# entries must be in the first column before the next begins to +# be used. We don't specify it here, as there's just one column. + bmp-table = 60,6,1,16 +# Timer location x, timer location y, foreground color, +# background color, shadow color. + bmp-timer = 65,27,0,255 +EO_BMP +} + +# Menu to check if we want to use VESA framebuffer support: +use_framebuffer() { +if cat /proc/devices | grep "29 fb" 1> /dev/null ; then + dialog --title "CONFIGURE LILO TO USE FRAME BUFFER CONSOLE?" \ + --default-item 1024x768x256 \ + --menu "Looking at /proc/devices, it seems your kernel has support for \ +the Linux frame buffer console. If we enable this in /etc/lilo.conf, it \ +will allow more rows and columns of text on the screen and give you a cool \ +penguin logo at boot time. However, the frame buffer text console is \ +slower than a standard text console. In addition, not every video card \ +or monitor supports all of these video modes. Would you like to use the \ +frame buffer console, or the standard Linux console?" 0 0 0 \ + "standard" "Use the standard Linux console (the safe choice)" \ + "640x480x256" "Frame buffer console, 640x480x256" \ + "800x600x256" "Frame buffer console, 800x600x256" \ + "1024x768x256" "Frame buffer console, 1024x768x256" \ + "640x480x32k" "Frame buffer console, 640x480x32k" \ + "800x600x32k" "Frame buffer console, 800x600x32k" \ + "1024x768x32k" "Frame buffer console, 1024x768x32k" \ + "640x480x64k" "Frame buffer console, 640x480x64k" \ + "800x600x64k" "Frame buffer console, 800x600x64k" \ + "1024x768x64k" "Frame buffer console, 1024x768x64k" \ + 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + exit + fi +# Frame buffer modes above 1024x768 look terrible except +# on LCD panels, and 32 bit color is slow. Since we don't +# even need to run a framebuffer console to run framebuffer +# X anymore, these modes aren't of much real use. +# "1280x1024x256" "Frame buffer console, 1280x1024x256" \ +# "1600x1200x256" "Frame buffer console, 1600x1200x256" \ +# "1280x1024x32k" "Frame buffer console, 1280x1024x32k" \ +# "1600x1200x32k" "Frame buffer console, 1600x1200x32k" \ +# "1280x1024x64k" "Frame buffer console, 1280x1024x64k" \ +# "1600x1200x64k" "Frame buffer console, 1600x1200x64k" \ +# "640x480x16m" "Frame buffer console, 640x480x16.8m" \ +# "800x600x16m" "Frame buffer console, 800x600x16.8m" \ +# "1024x768x16m" "Frame buffer console, 1024x768x16.8m" \ +# "1280x1024x16m" "Frame buffer console, 1280x1024x16.8m" \ +# "1600x1200x16m" "Frame buffer console, 1600x1200x16.8m" + CONSOLETYPE="`cat $TMP/reply`" + if [ "$CONSOLETYPE" = "1600x1200x16m" ]; then + CONSOLENUM=799 + elif [ "$CONSOLETYPE" = "1600x1200x64k" ]; then + CONSOLENUM=798 + elif [ "$CONSOLETYPE" = "1600x1200x32k" ]; then + CONSOLENUM=797 + elif [ "$CONSOLETYPE" = "1600x1200x256" ]; then + CONSOLENUM=796 + elif [ "$CONSOLETYPE" = "1280x1024x16m" ]; then + CONSOLENUM=795 + elif [ "$CONSOLETYPE" = "1280x1024x64k" ]; then + CONSOLENUM=794 + elif [ "$CONSOLETYPE" = "1280x1024x32k" ]; then + CONSOLENUM=793 + elif [ "$CONSOLETYPE" = "1280x1024x256" ]; then + CONSOLENUM=775 + elif [ "$CONSOLETYPE" = "1024x768x16m" ]; then + CONSOLENUM=792 + elif [ "$CONSOLETYPE" = "1024x768x64k" ]; then + CONSOLENUM=791 + elif [ "$CONSOLETYPE" = "1024x768x32k" ]; then + CONSOLENUM=790 + elif [ "$CONSOLETYPE" = "1024x768x256" ]; then + CONSOLENUM=773 + elif [ "$CONSOLETYPE" = "800x600x16m" ]; then + CONSOLENUM=789 + elif [ "$CONSOLETYPE" = "800x600x64k" ]; then + CONSOLENUM=788 + elif [ "$CONSOLETYPE" = "800x600x32k" ]; then + CONSOLENUM=787 + elif [ "$CONSOLETYPE" = "800x600x256" ]; then + CONSOLENUM=771 + elif [ "$CONSOLETYPE" = "640x480x16m" ]; then + CONSOLENUM=786 + elif [ "$CONSOLETYPE" = "640x480x64k" ]; then + CONSOLENUM=785 + elif [ "$CONSOLETYPE" = "640x480x32k" ]; then + CONSOLENUM=784 + elif [ "$CONSOLETYPE" = "640x480x256" ]; then + CONSOLENUM=769 + fi +fi +} + +# A function to ask for append= parameters. +ask_append() { + dialog --title "OPTIONAL LILO append=\"<kernel parameters>\" LINE" --inputbox \ +"Some systems might require extra parameters to be passed to the kernel. \ +If you needed to pass parameters to the kernel when you booted the Slackware \ +bootdisk, you'll probably want to enter the same ones here. Most \ +systems won't require any extra parameters. If you don't need any, just \ +hit ENTER to continue.\n\ +" 12 72 2> $TMP/reply + RETVAL=$? + return $RETVAL +} + +ask_utf() { + if [ "$(uname -r | cut -f 3 -d .)" -gt "23" ]; then + dialog --defaultno --title "USE UTF-8 TEXT CONSOLE?" --yesno \ +"Beginning with the 2.6.24 kernel, the text consoles default to UTF-8 mode. \ +Unless you are using a UTF-8 locale (\$LANG setting), using the old default \ +of a non-UTF text console is safer until some issues with various console \ +programs are addressed. This option has no effect on the use of UTF-8 with X. \ +\"No\" is the safe choice here." 10 70 + fi +} + +# This function scans for bootable partitions (making some assumptions along +# the way which may or may not be correct, but usually work), and sets up +# LILO in either the superblock, or the MBR. +simplelilo() +{ + use_framebuffer; + + ask_append; + if [ $? = 1 -o $? = 255 ]; then + APPEND="" + fi + APPEND="`cat $TMP/reply`" + + ask_utf; + if [ $? = 1 -o $? = 255 ]; then + UTFVT="vt.default_utf8=0" + else + UTFVT="vt.default_utf8=1" + fi + + if PROBE -l | grep 'OS/2 Boot Manager' 1> /dev/null 2> /dev/null ; then + dialog --title "OS/2 BOOT MANAGER FOUND" --yesno \ + "Your system appears to have Boot Manager, a boot menu system provided \ +with OS/2 and Partition Magic. If you like, we can install a very simple \ +LILO boot block at the start of your Linux partition. Then, you can \ +add the partition to the Boot Manager menu, and you'll be able to use \ +Boot Manager to boot Linux. Would you like to install LILO in a Boot \ +Manager compatible way?" 11 65 + FLAG=$? + if [ ! $FLAG = 0 -a ! $FLAG = 1 ]; then + exit 1 + fi + if [ $FLAG = 0 ]; then # yes, use BM + if [ -r $T_PX/etc/lilo.conf ]; then + mv $T_PX/etc/lilo.conf $T_PX/etc/lilo.conf.orig + fi + cat << EOF > $T_PX/etc/lilo.conf +# LILO configuration file +# generated by 'liloconfig' +# +# Start LILO global section +# +EOF + if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then + echo "# Append any additional kernel parameters:" >> $T_PX/etc/lilo.conf + echo "append=\"$APPEND $UTFVT\"" >> $T_PX/etc/lilo.conf + fi + cat << EOF >> $T_PX/etc/lilo.conf +boot = $ROOT_DEVICE +#delay = 5 +EOF + if [ "$CONSOLETYPE" = "standard" ]; then + cat << EOF >> $T_PX/etc/lilo.conf +vga = normal +EOF + else + cat << EOF >> $T_PX/etc/lilo.conf +# VESA framebuffer at $CONSOLETYPE +vga = $CONSOLENUM +EOF + fi + cat << EOF >> $T_PX/etc/lilo.conf +# End LILO global section +# Linux root partition section +image = $KERNEL + root = $ROOT_DEVICE + label = Linux + read-only +# End root Linux partition section +EOF + installcolor; + return + fi # Use Boot Manager + fi # Boot Manager detected + # If we got here, we either don't have boot manager or don't want to use it + dialog --title "SELECT LILO DESTINATION" $DEFAULT --menu \ +"LILO can be installed to a variety of places:\n\ +\n\ + 1. The superblock of your root Linux partition. (which could\n\ + be made the bootable partition with Windows or Linux fdisk, or\n\ + booted with a program like OS/2 Boot Manager)\n\ + 2. A formatted floppy disk.\n\ + 3. The Master Boot Record of your first hard drive.\n\ +\n\ +Options 1 and 2 are the safest, but option 1 does require a little\n\ +extra work later (setting the partition bootable with fdisk).\n\ +Which option would you like?" \ + 20 72 3 \ + "Root" "Install to superblock (not for use with XFS)" \ + "Floppy" "Install to a formatted floppy in /dev/fd0 (A:)" \ + "MBR" "Install to Master Boot Record" \ + 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + exit + fi + TG="`cat $TMP/reply`" + rm -r $TMP/reply + if [ "$TG" = "MBR" ]; then + MBR_TARGET=/dev/sda + echo $MBR_TARGET > $TMP/LILOMBR + cat /proc/partitions | while read LINE ; do + MAJOR="`echo $LINE | cut -f 1 -d ' '`" + MINOR="`echo $LINE | cut -f 2 -d ' '`" + if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives + if [ "$MAJOR" = "3" ]; then + MBR_TARGET=/dev/hda + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then + MBR_TARGET=/dev/hdc + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then + MBR_TARGET=/dev/hde + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "34" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" -a ! "$MBR_TARGET" = "/dev/hde" ]; then + MBR_TARGET=/dev/hdg + echo $MBR_TARGET > $TMP/LILOMBR + fi + fi + done + LILO_TARGET=`cat $TMP/LILOMBR` + elif [ "$TG" = "Root" ]; then + LILO_TARGET=`echo $ROOT_DEVICE` + elif [ "$TG" = "Floppy" ]; then + LILO_TARGET="/dev/fd0" + fi + cat << EOF > $T_PX/etc/lilo.conf +# LILO configuration file +# generated by 'liloconfig' +# +# Start LILO global section +EOF + if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then + echo "# Append any additional kernel parameters:" >> $T_PX/etc/lilo.conf + echo "append=\"$APPEND $UTFVT\"" >> $T_PX/etc/lilo.conf + fi + cat << EOF >> $T_PX/etc/lilo.conf +boot = $LILO_TARGET + +# Boot BMP Image. +# Bitmap in BMP format: 640x480x8 + bitmap = /boot/slack.bmp +# Menu colors (foreground, background, shadow, highlighted +# foreground, highlighted background, highlighted shadow): + bmp-colors = 255,0,255,0,255,0 +# Location of the option table: location x, location y, number of +# columns, lines per column (max 15), "spill" (this is how many +# entries must be in the first column before the next begins to +# be used. We don't specify it here, as there's just one column. + bmp-table = 60,6,1,16 +# Timer location x, timer location y, foreground color, +# background color, shadow color. + bmp-timer = 65,27,0,255 + +# Standard menu. +# Or, you can comment out the bitmap menu above and +# use a boot message with the standard menu: +#message = /boot/boot_message.txt + +# Wait until the timeout to boot (if commented out, boot the +# first entry immediately): +prompt +# Timeout before the first entry boots. +# This is given in tenths of a second, so 600 for every minute: +timeout = 1200 +# Override dangerous defaults that rewrite the partition table: +change-rules + reset +EOF + if [ "$CONSOLETYPE" = "standard" ]; then + cat << EOF >> $T_PX/etc/lilo.conf +# Normal VGA console +vga = normal +# VESA framebuffer console @ 1024x768x64k +# vga=791 +# VESA framebuffer console @ 1024x768x32k +# vga=790 +# VESA framebuffer console @ 1024x768x256 +# vga=773 +# VESA framebuffer console @ 800x600x64k +# vga=788 +# VESA framebuffer console @ 800x600x32k +# vga=787 +# VESA framebuffer console @ 800x600x256 +# vga=771 +# VESA framebuffer console @ 640x480x64k +# vga=785 +# VESA framebuffer console @ 640x480x32k +# vga=784 +# VESA framebuffer console @ 640x480x256 +# vga=769 +EOF + else + cat << EOF >> $T_PX/etc/lilo.conf +# VESA framebuffer console @ $CONSOLETYPE +vga = $CONSOLENUM +# Normal VGA console +# vga = normal +# VESA framebuffer console @ 1024x768x64k +# vga=791 +# VESA framebuffer console @ 1024x768x32k +# vga=790 +# VESA framebuffer console @ 1024x768x256 +# vga=773 +# VESA framebuffer console @ 800x600x64k +# vga=788 +# VESA framebuffer console @ 800x600x32k +# vga=787 +# VESA framebuffer console @ 800x600x256 +# vga=771 +# VESA framebuffer console @ 640x480x64k +# vga=785 +# VESA framebuffer console @ 640x480x32k +# vga=784 +# VESA framebuffer console @ 640x480x256 +# vga=769 +EOF + fi +cat << EOF >> $T_PX/etc/lilo.conf +# End LILO global section +EOF + # OK, now let's look for Windows partitions: + DOSP="`PROBE -l | grep "DOS +Win +W95 +FAT12 +FAT16 +HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort`" + DOSP="`echo $DOSP | cut -f 1 -d ' '`" + if [ ! "$DOSP" = "" ]; then + TABLE="`echo $DOSP | cut -b1-8`" + cat << EOF >> $T_PX/etc/lilo.conf +# Windows bootable partition config begins +other = $DOSP + label = Windows + table = $TABLE +# Windows bootable partition config ends +EOF + echo "Windows - (Windows FAT/NTFS partition)" >> $T_PX/boot/boot_message.txt + fi + # Next, we search for Linux partitions: + LNXP="`PROBE -l | grep "Linux$"`" + LNXP="`echo $LNXP | cut -f 1 -d ' ' | sort`" + if [ ! "$LNXP" = "" ]; then + cat << EOF >> $T_PX/etc/lilo.conf +# Linux bootable partition config begins +image = $KERNEL + root = $ROOT_DEVICE + label = Linux + read-only +# Linux bootable partition config ends +EOF + echo "Linux - (Linux partition)" >> $T_PX/boot/boot_message.txt + fi +# DEAD CODE, BUT IN CASE OS/2 MAKES A COMEBACK! +# # OK, hopefully we can remember how to deal with OS/2 :^) +# OS2P="`PROBE -l | grep "HPFS"`" +# OS2P="`echo $OS2P | cut -f 1 -d ' ' | sort`" +# if [ ! "$OS2P" = "" ]; then +# TABLE="`echo $OS2P | cut -b1-8`" +# if [ "$TABLE" = "/dev/hda" ]; then +# cat << EOF >> $T_PX/etc/lilo.conf +## OS/2 bootable partition config begins +#other = $OS2P +# label = OS2 +# table = $TABLE +## OS/2 bootable partition config ends +#EOF +# else +# cat << EOF >> $T_PX/etc/lilo.conf +## OS/2 bootable partition config begins +#other = $OS2P +# label = OS2 +# table = $TABLE +# loader = /boot/os2_d.b +## map-drive = 0x80 +## to = 0x81 +## map-drive = 0x81 +## to = 0x80 +## OS/2 bootable partition config ends +#EOF +# echo "OS2 - OS/2 Warp (HPFS partition)" >> $T_PX/boot/boot_message.txt +# fi +# fi + echo >> $T_PX/boot/boot_message.txt + # Done, now we must install lilo: + installcolor; +} + +checkp_text() +{ + if [ ! -r $1 ]; then + echo + echo "I can't find a device named '$1'!" + echo + echo -n "Are you sure you want to use this device name [y]es, [n]o? " + read use_device; + if [ ! "$use_device" = "y" ]; then + return 1; + fi + return 0; + fi +} + +checkp_dialog() +{ + if [ ! -r $1 ]; then + dialog --title "DEVICE FILE NOT FOUND" --yesno "I can't find a \ +device named '$1'. Are you sure you want to use this device \ +name?" 7 60 + return $?; + fi +} + +installcolor() +{ + dialog --infobox "\nInstalling the Linux Loader..." 5 40 + if [ "$T_PX" = "/" ]; then + lilo 1> /dev/null 2> /etc/lilo-error.$$ + SUCCESS=$? + else + lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /etc/lilo-error.$$ + SUCCESS=$? + fi + if [ ! "$SUCCESS" = "0" ]; then # edit file to try lba32 mode: + cat $T_PX/etc/lilo.conf | while read line ; do + echo $line + if [ "$line" = "# Start LILO global section" ] ; then + echo "lba32 # Allow booting past 1024th cylinder with a recent BIOS" + fi + done > $T_PX/etc/lilo.conf.lba32 + mv $T_PX/etc/lilo.conf.lba32 $T_PX/etc/lilo.conf + if [ "$T_PX" = "/" ]; then + lilo 1> /dev/null 2> /etc/lilo-error.$$ + SUCCESS=$? + else + lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /etc/lilo-error.$$ + SUCCESS=$? + fi + fi + sleep 1 + if [ ! "$SUCCESS" = "0" ]; then # some LILO error occured + echo >> /etc/lilo-error.$$ +cat << EOF >> /etc/lilo-error.$$ +Sorry, but the attempt to install LILO has returned an error, so LILO \ +has not been correctly installed. You'll have to use a bootdisk \ +to start your \ +machine instead. It should still be possible to get LILO working by \ +editing the /etc/lilo.conf and reinstalling LILO manually. See the \ +LILO man page and documentation in /usr/doc/lilo/ for more help. \ +The error message may be seen above. +EOF + dialog --msgbox "$(cat /etc/lilo-error.$$)" 0 0 + fi +} + +installtext() +{ + echo "Installing the Linux Loader..." + if [ "$T_PX" = "/" ]; then + lilo + SUCCESS=$? + else + lilo -r $T_PX -m /boot/map -C /etc/lilo.conf + SUCCESS=$? + fi + if [ ! "$SUCCESS" = "0" ]; then # try lba32 mode: + cat $T_PX/etc/lilo.conf | while read line ; do + echo $line + if [ "$line" = "# Start LILO global section" ] ; then + echo "lba32 # Allow booting past 1024th cylinder with a recent BIOS" + fi + done > $T_PX/etc/lilo.conf.lba32 + mv $T_PX/etc/lilo.conf.lba32 $T_PX/etc/lilo.conf + if [ "$T_PX" = "/" ]; then + lilo 1> /dev/null 2> /dev/null + SUCCESS=$? + else + lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /dev/null + SUCCESS=$? + fi + fi + sleep 1 + if [ ! "$SUCCESS" = "0" ]; then # some LILO error occured + cat << EOF + +LILO INSTALL ERROR # $SUCCESS + +Sorry, but the attempt to install LILO has returned an error, so LILO +has not been correctly installed. You'll have to use a bootdisk to +start your machine instead. It should still be possible to get LILO +working by editing the /etc/lilo.conf and reinstalling LILO manually. +See the LILO man page and documentation in /usr/doc/lilo/ for more +help. + +EOF + fi +} + +# 'probe()' borrowed from LILO QuickInst. +probe() +{ + [ ! -z "`dd if=$1 bs=1 count=1 2>/dev/null | tr '\0' x`" ] + return +} + +# Figure out if we're installing from the hard drive +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +else + if [ "$T_PX" = "" -a ! "$1" = "" ]; then + T_PX=$1 + else + T_PX=/ + fi +fi +HDR="no" # this means the header section of /etc/lilo.conf has not yet + # been configured +LNX="no" # this means no Linux partition has been defined as bootable + # through LILO. Both of these must change to "yes" before LILO will + # install from this script. +# Determine the root partition (such as /dev/hda2) +ROOT_DEVICE=$2 +if [ "$ROOT_DEVICE" = "" ]; then + if [ -r $TMP/SeTrootdev ]; then + ROOT_DEVICE="`cat $TMP/SeTrootdev`" + else + ROOT_DEVICE="`mount | cut -f 1 -d " " | sed -n "1 p"`" + fi +fi +# Figure out where the kernel is: +ARCHTYPE=i386 +if [ -r $T_PX/vmlinuz ]; then + KERNEL=/vmlinuz +elif [ -r $T_PX/boot/vmlinuz ]; then + KERNEL=/boot/vmlinuz +elif [ -r $T_PX/usr/src/linux/arch/$ARCHTYPE/boot/bzImage ]; then + KERNEL=/usr/src/linux/arch/$ARCHTYPE/boot/bzImage +elif [ -r $T_PX/usr/src/linux/arch/$ARCHTYPE/boot/zImage ]; then + KERNEL=/usr/src/linux/arch/$ARCHTYPE/boot/zImage +else + exit 99 # no kernel? guess you couldn't read. bye bye. +fi + + # If we're installing from the umsdos.gz rootdisk, suggest skipping LILO: + if [ ! "$T_PX" = "/" ]; then + if mount | grep " on /mnt " | grep umsdos 1> /dev/null 2> /dev/null ; then + dialog --title "SKIP LILO CONFIGURATION? (RECOMMENDED)" --yesno "Since \ +you are installing to a FAT partition, it's suggested that you do not \ +configure LILO at this time. (Instead, use your bootdisk. For booting \ +off the hard drive from MS-DOS, you can use Loadlin. You'll find \ +Loadlin on your hard drive in \LINUX\ROOT) Skip LILO configuration \ +(highly recommended)?" 10 70 + if [ $? = 0 ]; then + exit + fi + fi + fi + # OK, now let's see if we should automate things: + dialog --title "INSTALL LILO" --menu "LILO (Linux Loader) is a generic \ +boot loader. There's a simple installation which tries to automatically \ +set up LILO to boot Linux (also Windows if found). For \ +more advanced users, the expert option offers more control over the \ +installation process. Since LILO does not work in all cases (and can \ +damage partitions if incorrectly installed), there's the third (safe) \ +option, which is to skip installing LILO for now. You can always install \ +it later with the 'liloconfig' command. Which option would you like?" \ + 18 67 3 \ + "simple" "Try to install LILO automatically" \ + "expert" "Use expert lilo.conf setup menu" \ + "skip" "Do not install LILO" 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + exit + fi + REPLY="`cat $TMP/reply`" + rm -f $TMP/reply + if [ "$REPLY" = "skip" ]; then + exit + elif [ "$REPLY" = "simple" ]; then + # Do simple LILO setup + simplelilo + exit + fi + # drop through to last option: (use the expert menus) + while [ 0 ]; do + dialog --title "EXPERT LILO INSTALLATION" --menu \ +"This menu directs the creation of the LILO config file, lilo.conf. \ +To install, you make a new LILO configuration file by creating a new header \ +and then adding one or more bootable partitions to the file. Once you've done \ +this, you can select the install option. Alternately, if you already have an \ +/etc/lilo.conf, you may reinstall using that. If you make a mistake, you can \ +always start over by choosing 'Begin'. \ +Which option would you like?" 21 73 8 \ +"Begin" "Start LILO configuration with a new LILO header" \ +"Linux" "Add a Linux partition to the LILO config" \ +"Windows" "Add a Windows FAT or NTFS partition to the LILO config" \ +"Install" "Install LILO" \ +"Recycle" "Reinstall LILO using the existing lilo.conf" \ +"Skip" "Skip LILO installation and exit this menu" \ +"View" "View your current /etc/lilo.conf" \ +"Help" "Read the Linux Loader HELP file" 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + REPLY="Skip" + else + REPLY="`cat $TMP/reply`" + fi + rm -r $TMP/reply + if [ "$REPLY" = "Begin" ]; then + ask_append; + if [ $? = 1 -o $? = 255 ]; then + APPEND="" + HDR="no" + continue; + else + APPEND="`cat $TMP/reply`" + fi + ask_utf; + if [ $? = 1 -o $? = 255 ]; then + UTFVT="vt.default_utf8=0" + else + UTFVT="vt.default_utf8=1" + fi + use_framebuffer; + dialog --title "SELECT LILO TARGET LOCATION" $DEFAULT --menu "LILO can be installed \ +to a variety of places: \ +the superblock of your root Linux partition (which could then be made the \ +bootable partition with fdisk), a formatted floppy disk, \ +or the master boot record of your first hard drive. If you're using \ +a boot system such as Boot Manager, you should use the "Root" \ +selection. Please pick a target location:" 15 65 3 \ +"Root" "Install to superblock (not for use with XFS)" \ +"Floppy" "Use a formatted floppy disk in the boot drive" \ +"MBR" "Use the Master Boot Record (possibly unsafe)" \ +2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + HDR="no" + continue; + else + LNX="no" + TG="`cat $TMP/reply`" + fi + rm -r $TMP/reply + if [ "$TG" = "MBR" ]; then + MBR_TARGET=/dev/sda + echo $MBR_TARGET > $TMP/LILOMBR + cat /proc/partitions | while read LINE ; do + MAJOR="`echo $LINE | cut -f 1 -d ' '`" + MINOR="`echo $LINE | cut -f 2 -d ' '`" + if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives + if [ "$MAJOR" = "3" ]; then + MBR_TARGET=/dev/hda + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then + MBR_TARGET=/dev/hdc + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then + MBR_TARGET=/dev/hde + echo $MBR_TARGET > $TMP/LILOMBR + elif [ "$MAJOR" = "34" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" -a ! "$MBR_TARGET" = "/dev/hde" ]; then + MBR_TARGET=/dev/hdg + echo $MBR_TARGET > $TMP/LILOMBR + fi + fi + done + LILO_TARGET=`cat $TMP/LILOMBR` + dialog --title "CONFIRM LOCATION TO INSTALL LILO" --inputbox \ +"The auto-detected location to install the LILO boot block is shown below. \ +If you need to make any changes, you can make them below. Otherwise, hit \ +ENTER to accept the target location shown." 11 60 $LILO_TARGET 2> $TMP/reply + if [ $? = 0 ]; then + LILO_TARGET="`cat $TMP/reply`" + fi + rm -f $TMP/reply + elif [ "$TG" = "Root" ]; then + LILO_TARGET=`echo $ROOT_DEVICE` + elif [ "$TG" = "Floppy" ]; then + LILO_TARGET="/dev/fd0" + else + HDR="no" + continue; + fi + dialog --title "CHOOSE LILO TIMEOUT" --menu "At boot time, how long would \ +you like LILO to wait for you to select an operating system? If you \ +let LILO time out, it will boot the first OS in the configuration file by \ +default." 13 74 4 \ +"None" "Don't wait at all - boot straight into the first OS" \ +"5" "5 seconds" \ +"30" "30 seconds" \ +"Forever" "Present a prompt and wait until a choice is made" 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + HDR="no" + continue; + else + TIMEOUT="`cat $TMP/reply`" + fi + rm -r $TMP/reply + if [ "$TIMEOUT" = "None" ]; then + PROMPT="#prompt" + TIMEOUT="#timeout = 5" + elif [ "$TIMEOUT" = "5" ]; then + PROMPT="prompt" + TIMEOUT="timeout = 50" + elif [ "$TIMEOUT" = "30" ]; then + PROMPT="prompt" + TIMEOUT="timeout = 300" + elif [ "$TIMEOUT" = "Forever" ]; then + PROMPT="prompt" + TIMEOUT="#timeout = 300" + else + HDR="no" + continue; + fi + cat << EOF > $TMP/lilo.conf +# LILO configuration file +# generated by 'liloconfig' +# +# Start LILO global section +boot = $LILO_TARGET +#compact # faster, but won't work on all systems. +EOF + # Boot splash + if [ "$PROMPT" = "prompt" ]; then + if ask_boot_splash ; then + boot_bmp >> $TMP/lilo.conf + cat << EOF >> $TMP/lilo.conf +# Standard menu. +# Or, you can comment out the bitmap menu above and +# use a boot message with the standard menu: +#message = /boot/boot_message.txt + +EOF + fi + else + cat << EOF >> $TMP/lilo.conf +# Standard menu. +message = /boot/boot_message.txt + +EOF + fi + if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then + echo "# Append any additional kernel parameters:" >> $TMP/lilo.conf + echo "append=\"$APPEND $UTFVT\"" >> $TMP/lilo.conf + fi + cat << EOF >> $TMP/lilo.conf +$PROMPT +$TIMEOUT +EOF + if [ "$CONSOLETYPE" = "standard" ]; then + cat << EOF >> $TMP/lilo.conf +# Normal VGA console +vga = normal +# VESA framebuffer console @ 1024x768x64k +# vga=791 +# VESA framebuffer console @ 1024x768x32k +# vga=790 +# VESA framebuffer console @ 1024x768x256 +# vga=773 +# VESA framebuffer console @ 800x600x64k +# vga=788 +# VESA framebuffer console @ 800x600x32k +# vga=787 +# VESA framebuffer console @ 800x600x256 +# vga=771 +# VESA framebuffer console @ 640x480x64k +# vga=785 +# VESA framebuffer console @ 640x480x32k +# vga=784 +# VESA framebuffer console @ 640x480x256 +# vga=769 +EOF + else + cat << EOF >> $TMP/lilo.conf +# VESA framebuffer console @ $CONSOLETYPE +vga = $CONSOLENUM +# Normal VGA console +# vga = normal +# VESA framebuffer console @ 1024x768x64k +# vga=791 +# VESA framebuffer console @ 1024x768x32k +# vga=790 +# VESA framebuffer console @ 1024x768x256 +# vga=773 +# VESA framebuffer console @ 800x600x64k +# vga=788 +# VESA framebuffer console @ 800x600x32k +# vga=787 +# VESA framebuffer console @ 800x600x256 +# vga=771 +# VESA framebuffer console @ 640x480x64k +# vga=785 +# VESA framebuffer console @ 640x480x32k +# vga=784 +# VESA framebuffer console @ 640x480x256 +# vga=769 +EOF + fi + cat << EOF >> $TMP/lilo.conf +# ramdisk = 0 # paranoia setting +# End LILO global section +EOF + HDR="yes" + elif [ "$REPLY" = "Linux" ]; then + if [ "$HDR" = "yes" ]; then + echo "These are your Linux partitions:" > $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg + PROBE -l | grep "Linux$" | sort >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg + dialog --title "SELECT LINUX PARTITION" --no-collapse --inputbox \ +"`cat $TMP/tmpmsg`" 21 74 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm $TMP/tmpmsg + continue + fi + rm $TMP/tmpmsg + LINUX_PART="`cat $TMP/reply`" + checkp_dialog $LINUX_PART + if [ ! $? = 0 ]; then + continue; + fi + dialog --title "SELECT PARTITION NAME" --inputbox \ +"Now you must select a short, unique name for this partition. \ +You'll use this name if you specify a partition to boot at the \ +LILO prompt. 'Linux' might not be a bad choice. THIS MUST BE A \ +SINGLE WORD." 11 60 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + continue + fi + LABEL="`cat $TMP/reply`" + cat << EOF >> $TMP/lilo.conf +# Linux bootable partition config begins +image = $KERNEL + root = $LINUX_PART + label = $LABEL + read-only # Partitions should be mounted read-only for checking +# Linux bootable partition config ends +EOF + else + dialog --title "CAN'T ADD LINUX PARTITION" --msgbox "You can't add \ +partitions unless you start over with a new LILO header." 6 60 + continue + fi + LNX="yes" + # MORE OS/2 DEAD CODE... DOESN'T HURT. + # THIS ITEM HAS LONG BEEN REMOVED FROM THE MENU... + elif [ "$REPLY" = "OS/2" ]; then + if [ "$HDR" = "yes" ]; then + echo "These are possibly OS/2 partitions. They will be treated" > $TMP/tmpmsg + echo "as such if you install them using this menu." >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg + PROBE -l | grep DOS | sort >> $TMP/tmpmsg + PROBE -l | grep HPFS | sort >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg + dialog --title "SELECT OS/2 PARTITION" --no-collapse --inputbox \ +"`cat $TMP/tmpmsg`" 20 74 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm $TMP/tmpmsg + continue + fi + rm $TMP/tmpmsg + OS_2_PART="`cat $TMP/reply`" + checkp_dialog $OS_2_PART + if [ ! $? = 0 ]; then + continue; + fi + dialog --title "SELECT PARTITION NAME" --inputbox \ +"Now you must select a short, unique name for this partition. \ +You'll use this name if you specify a partition to boot at the \ +LILO prompt. 'OS/2' might not be a bad choice. THIS MUST BE A \ +SINGLE WORD." 11 60 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + continue + fi + LABEL="`cat $TMP/reply`" + TABLE="`echo $OS_2_PART | cut -b1-8`" + if [ "`echo $TABLE | cut -b6-8`" = "hda" ]; then + cat << EOF >> $TMP/lilo.conf +# OS/2 bootable partition config begins +other = $OS_2_PART + label = $LABEL + table = $TABLE +# OS/2 bootable partition config ends +EOF + else + cat << EOF >> $TMP/lilo.conf +# OS/2 bootable partition config begins +other = $OS_2_PART + label = $LABEL + table = $TABLE + loader = /boot/os2_d.b +# map-drive = 0x80 +# to = 0x81 +# map-drive = 0x81 +# to = 0x80 +# OS/2 bootable partition config ends +EOF + fi + else + dialog --title "CAN'T ADD OS/2 PARTITION" --msgbox "You can't add \ +partitions unless you start over with a new LILO header." 6 60 + continue + fi + LNX="yes" + elif [ "$REPLY" = "Windows" ]; then + if [ "$HDR" = "yes" ]; then + echo "These are possibly Windows or DOS partitions. They will be treated" > $TMP/tmpmsg + echo "as such if you install them using this menu." >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg + PROBE -l | grep "DOS +Win +W95 +FAT12 +FAT16 +HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort >> $TMP/tmpmsg + echo >> $TMP/tmpmsg + echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg + dialog --title "SELECT WINDOWS PARTITION" --no-collapse --inputbox \ +"`cat $TMP/tmpmsg`" 20 74 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm $TMP/tmpmsg + continue + fi + rm $TMP/tmpmsg + DOSPART="`cat $TMP/reply`" + checkp_dialog $DOSPART + if [ ! $? = 0 ]; then + continue; + fi + dialog --title "SELECT PARTITION NAME" --inputbox \ +"Now you must select a short, unique name for this partition. \ +You'll use this name if you specify a partition to boot at the \ +LILO prompt. 'Windows' might not be a bad choice. THIS MUST BE A \ +SINGLE WORD." 11 60 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + continue + fi + LABEL="`cat $TMP/reply`" + unset USE_LOADER + TABLE="`echo $DOSPART | cut -b1-8`" + if [ "`echo $TABLE | cut -b6-8`" = "hda" ]; then + USE_LOADER="no" + fi + if [ "`echo $TABLE | cut -b6-8`" = "sda" ]; then + if probe /dev/hda; then + USE_LOADER="yes" + else + USE_LOADER="no" + fi + fi + if [ "$USE_LOADER" = "no" ]; then + cat << EOF >> $TMP/lilo.conf +# Windows bootable partition config begins +other = $DOSPART + label = $LABEL + table = $TABLE +# Windows bootable partition config ends +EOF + else + cat << EOF >> $TMP/lilo.conf +# Windows bootable partition config begins +other = $DOSPART + label = $LABEL +# map-drive = 0x80 +# to = 0x81 +# map-drive = 0x81 +# to = 0x80 + table = $TABLE +# Windows bootable partition config ends +EOF + fi + else + dialog --title "CAN'T ADD WINDOWS PARTITION" --msgbox "You can't add \ +partitions unless you start over with a new LILO header." 6 60 + continue + fi + LNX="yes" + elif [ "$REPLY" = "Install" -o "$REPLY" = "Recycle" ]; then + if [ "$REPLY" = "Recycle" -a -r $T_PX/etc/lilo.conf ]; then + LNX="yes" + fi + if [ "$LNX" = "no" ]; then + dialog --title "CAN'T INSTALL LILO" --msgbox "LILO could not be \ +installed. If you have not created a LILO configuration file by defining \ +a new header and adding at least one bootable partition to it, you must do \ +so before installing LILO. If you were attempting to use an existing LILO \ +configuration file, it could not be found. Try making a new one." 9 70 + continue + else + if [ "$REPLY" = "Install" ]; then + if [ -r $TMP/lilo.conf ]; then + if [ -r $T_PX/etc/lilo.conf ]; then + mv $T_PX/etc/lilo.conf $T_PX/etc/lilo.conf.bak + fi + cp $TMP/lilo.conf $T_PX/etc/lilo.conf + chmod 644 $T_PX/etc/lilo.conf + fi + fi + installcolor; + fi + rm -f $TMP/tmpmsg $TMP/reply + break + elif [ "$REPLY" = "Skip" ]; then + rm -f $TMP/tmpmsg $TMP/reply + break + elif [ "$REPLY" = "View" ]; then + if [ -r $TMP/lilo.conf ]; then + dialog --title "YOUR NEW /etc/lilo.conf" --textbox "$TMP/lilo.conf" 22 70 + else + if [ -r /mnt/etc/lilo.conf ]; then + dialog --title "YOUR OLD /etc/lilo.conf" --textbox "/mnt/etc/lilo.conf" 22 70 + elif [ "$T_PX" = "/" -a -r /etc/lilo.conf ]; then + dialog --title "YOUR OLD /etc/lilo.conf" --textbox "/etc/lilo.conf" 22 70 + else + dialog --title "NO CONFIG FILE FOUND" --msgbox "Sorry, but you don't \ +have a LILO configuration file that can be viewed." 6 60 + fi + fi + elif [ "$REPLY" = "Help" ]; then + dialog --title "LILO INSTALLATION HELP" --textbox "$T_PX/var/log/setup/text.lilohelp" 22 68 + fi + done + diff --git a/source/a/lilo/setup.liloconfig b/source/a/lilo/setup.liloconfig new file mode 100644 index 000000000..0b9798542 --- /dev/null +++ b/source/a/lilo/setup.liloconfig @@ -0,0 +1,3 @@ +#!/bin/sh +#BLURB="Set up LILO to boot Linux (and other OSes) from your hard drive" +sh sbin/liloconfig $* diff --git a/source/a/lilo/slack-desc b/source/a/lilo/slack-desc new file mode 100644 index 000000000..db5daf651 --- /dev/null +++ b/source/a/lilo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lilo: lilo (Linux Loader) +lilo: +lilo: Generic Boot Loader for Linux ('LInux LOader') by Werner Almesberger. +lilo: LILO boots Linux from your hard drive. It can also boot other +lilo: operating systems such as MS-DOS and OS/2, and can even boot DOS from +lilo: the second hard drive. LILO comes with utilities and documentation +lilo: that make it easier to install, such as 'liloconfig' and 'QuickStart'. +lilo: NOTE: Installing boot loaders is inherently dangerous. Be sure to have +lilo: some means to boot your system from a different media if you install +lilo: LILO on your hard disk. +lilo: diff --git a/source/a/lilo/slack.bmp b/source/a/lilo/slack.bmp new file mode 100644 index 000000000..3dd5652a8 Binary files /dev/null and b/source/a/lilo/slack.bmp differ diff --git a/source/a/lilo/slack.dat b/source/a/lilo/slack.dat new file mode 100644 index 000000000..73c557e61 --- /dev/null +++ b/source/a/lilo/slack.dat @@ -0,0 +1,7 @@ +# +# generated companion file to: +# +bitmap = slack.bmp +bmp-table = 60,6;1,16,16,4 +bmp-colors = 255,0,;0,255, +bmp-timer = 65,28;255,0, diff --git a/source/a/lilo/slack64.bmp b/source/a/lilo/slack64.bmp new file mode 100644 index 000000000..464e4683e Binary files /dev/null and b/source/a/lilo/slack64.bmp differ diff --git a/source/a/lilo/text.lilohelp b/source/a/lilo/text.lilohelp new file mode 100644 index 000000000..9f06bf785 --- /dev/null +++ b/source/a/lilo/text.lilohelp @@ -0,0 +1,100 @@ + +Slackware LILO Installation HELP file + +WARNING: As they say in the LILO docs, installing boot +loaders is inherently dangerous. Be careful out there! + +These are the options you can use at the Slackware LILO +install menu: + +1. Start LILO configuration with a new LILO header. + + This choice allows you to start a new configuration + file, /etc/lilo.conf, with no OS's entered into it + (yet). + + You'll first be asked if you want to use an optional + append="...." line. If you didn't need to use extra + parameters at the bootkernel prompt, then you can + probably just hit ENTER here. + + You will be asked where you want to install LILO. This + can be your Master Boot Record, your root partition's + superblock (for OS/2's Boot Manager), or to a + formatted floppy disk. + + Next, you'll be asked if you want a delay before + booting the first OS in your lilo.conf file. This delay + allows you to hit left-shift and boot any OS in the + lilo.conf file by typing in the label you've given it. + + Once you've started a new lilo.conf, you must add at + least one OS to it before you can install LILO. + +2. Menu choices to add Linux, OS/2, and DOS to the lilo.conf. + + These all pretty much work the same way. You'll be asked + which partition you want to make bootable (answer + /dev/hda1 or whatever partition you wish to use), and + you'll also be asked to assign a label to the partition. + The label can be any short word such as "Linux" or "OS/2" + that you'll type in later to boot that partition. The boot + prompt is not case-sensitive, so the user can type LINUX or + os/2 later on and it will match the labels Linux and OS/2. + +3. Install LILO + + Once you've looked at your new config file and are + satisfied with the way it looks, pick this choice to + install LILO and leave the LILO installation menu. + + +Other options: + + -- Recycle (Reinstall) using your original /etc/lilo.conf. + + If you already have an /etc/lilo.conf, and you just need to + refresh lilo then you don't need to reconstruct your + lilo.conf. Just use this menu choice to reinstall LILO + using the existing /etc/lilo.conf. + + + -- View your current /etc/lilo.conf + + If you haven't begun building a new lilo.conf, this choice + will let you take a look at the existing one in /etc on your + root Linux partition. + + If you have begun constructing a new lilo.conf, this option + will let you view the progress on that. + + + -- Skip LILO installation and exit this menu + + This option skips LILO installation. Use this if you don't + want to install LILO, or if you've already installed it and + don't need to reinstall. You have to reinstall LILO whenever + you change your Linux kernel. + + -- Help - Read the Linux Loader HELP file + + I hope you found it helpful! :^) + + +----------- + +Other LILO information: + + LILO on the Master Boot Record can be removed easily. + MS-DOS's fdisk has a /MBR option that restores the master + boot record. You can actually restore your original boot + sector from the copy LILO makes in /boot, as well. This is + the best way to go about it. See the LILO docs for more + information. There is also a '-u' flag to LILO that restores + the boot sector from the backup copy. Again, see the LILO + docs for detailed info. + +Good luck! + +--- end of LILO help + diff --git a/source/a/logrotate/logrotate.SlackBuild b/source/a/logrotate/logrotate.SlackBuild new file mode 100755 index 000000000..6b6284b7c --- /dev/null +++ b/source/a/logrotate/logrotate.SlackBuild @@ -0,0 +1,71 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-3.7.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-logrotate + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_logrotate.tar.gz + +cd $TMP +rm -rf logrotate-$VERSION +tar xzvf $CWD/logrotate-$VERSION.tar.gz +cd logrotate-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/logrotate.slackware.diff.gz | patch -p1 +make clean +make || exit 1 +strip logrotate +cat logrotate > $PKG/usr/sbin/logrotate +cat logrotate.8 | gzip -9c > $PKG/usr/man/man8/logrotate.8.gz +mkdir -p $PKG/usr/doc/logrotate-$VERSION +cp -a \ + CHANGES COPYING READM* \ + $PKG/usr/doc/logrotate-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/logrotate-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/logrotate-$VERSION + rm -rf $PKG +fi diff --git a/source/a/logrotate/logrotate.slackware.diff b/source/a/logrotate/logrotate.slackware.diff new file mode 100644 index 000000000..77b8aad6b --- /dev/null +++ b/source/a/logrotate/logrotate.slackware.diff @@ -0,0 +1,49 @@ +diff -u -r --new-file logrotate-3.7.4.orig/config.c logrotate-3.7.4/config.c +--- logrotate-3.7.4.orig/config.c 2006-07-24 07:08:04.000000000 -0500 ++++ logrotate-3.7.4/config.c 2006-09-21 01:07:50.000000000 -0500 +@@ -29,7 +29,7 @@ + #define isblank(c) ( (c) == ' ' || (c) == '\t' ) ? 1 : 0 + #endif + +-static char *defTabooExts[] = { ".rpmsave", ".rpmorig", "~", ",v", ++static char *defTabooExts[] = { ".new", ".rpmsave", ".rpmorig", "~", ",v", + ".rpmnew", ".swp" + }; + static int defTabooCount = sizeof(defTabooExts) / sizeof(char *); +diff -u -r --new-file logrotate-3.7.4.orig/config.h logrotate-3.7.4/config.h +--- logrotate-3.7.4.orig/config.h 2005-11-12 13:07:56.000000000 -0600 ++++ logrotate-3.7.4/config.h 2006-09-21 01:08:02.000000000 -0500 +@@ -36,5 +36,5 @@ + #endif + + #ifndef STATEFILE +-#define STATEFILE "/var/lib/logrotate.status" ++#define STATEFILE "/var/lib/logrotate/status" + #endif +diff -u -r --new-file logrotate-3.7.4.orig/logrotate.8 logrotate-3.7.4/logrotate.8 +--- logrotate-3.7.4.orig/logrotate.8 2006-05-17 09:46:51.000000000 -0500 ++++ logrotate-3.7.4/logrotate.8 2006-09-21 01:07:14.000000000 -0500 +@@ -1,4 +1,4 @@ +-.TH LOGROTATE 8 "Wed Nov 5 2002" "Red Hat Linux" "System Administrator's Manual" ++.TH LOGROTATE 8 "Wed Nov 5 2002" "Linux" "System Administrator's Manual" + .SH NAME + logrotate \- rotates, compresses, and mails system logs + .SH SYNOPSIS +@@ -410,7 +410,7 @@ + for information on the taboo extensions). If a + precedes the list of + extensions, the current taboo extension list is augmented, otherwise it + is replaced. At startup, the taboo extension list +-contains .rpmorig, .rpmsave, ,v, .swp, .rpmnew, and ~. ++contains .new, .rpmorig, .rpmsave, ,v, .swp, .rpmnew, and ~. + + .TP + \fBweekly\fR +@@ -427,7 +427,7 @@ + .SH FILES + .PD 0 + .TP 27 +-\fI/var/lib/logrotate.status\fR ++\fI/var/lib/logrotate/status\fR + Default state file. + .TP 27 + \fI/etc/logrotate.conf\fR diff --git a/source/a/logrotate/slack-desc b/source/a/logrotate/slack-desc new file mode 100644 index 000000000..2a1c76a5d --- /dev/null +++ b/source/a/logrotate/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +logrotate: logrotate (system log rotation tool) +logrotate: +logrotate: The logrotate utility is designed to simplify the administration +logrotate: of log files on a system which generates a lot of log files. +logrotate: Logrotate allows for the automatic rotation compression, removal +logrotate: and mailing of log files. Logrotate can be set to handle a log +logrotate: file daily, weekly, monthly or when the log file gets to a certain +logrotate: size. Normally, logrotate runs as a daily cron job. +logrotate: +logrotate: +logrotate: diff --git a/source/a/lvm2/doinst.sh b/source/a/lvm2/doinst.sh new file mode 100644 index 000000000..261294a91 --- /dev/null +++ b/source/a/lvm2/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/lvm/lvm.conf.new diff --git a/source/a/lvm2/lvm2.SlackBuild b/source/a/lvm2/lvm2.SlackBuild new file mode 100755 index 000000000..f0f630d89 --- /dev/null +++ b/source/a/lvm2/lvm2.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.02.40 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lvm2 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf LVM2.$VERSION +tar xvf $CWD/LVM2.$VERSION.tar.bz2 +cd LVM2.$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --disable-readline \ + --enable-cmdlib \ + --enable-dmeventd \ + --libdir=/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-static_link \ + --with-lvm1=internal + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +mv $PKG/etc/lvm/lvm.conf $PKG/etc/lvm/lvm.conf.new + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/LVM2.$VERSION +cp -a \ + COPYING* INSTALL README* VERSION WHATS_NEW \ + $PKG/usr/doc/LVM2.$VERSION + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/lvm2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/lvm2/slack-desc b/source/a/lvm2/slack-desc new file mode 100644 index 000000000..72dc87aee --- /dev/null +++ b/source/a/lvm2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lvm2: lvm2 (Logical Volume Manager version 2) +lvm2: +lvm2: Heinz Mauelshagen's LVM (Logical Volume Manager) for Linux. +lvm2: LVM adds an additional layer between the physical peripherals and the +lvm2: low-level I/O interface to get a logical view of disks. This allows +lvm2: the concatenation of several disks (so-called physical volumes or PVs) +lvm2: to form a storage pool (so-called Volume Group or VG) with allocation +lvm2: units called physical extents (called PE). With LVM, you can extend, +lvm2: resize, or relocate storage dynamically. +lvm2: +lvm2: diff --git a/source/a/mdadm/doinst.sh b/source/a/mdadm/doinst.sh new file mode 100644 index 000000000..a6a71c731 --- /dev/null +++ b/source/a/mdadm/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/mdadm.conf.new diff --git a/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign b/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign new file mode 100644 index 000000000..36b614805 --- /dev/null +++ b/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.7 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBHGC8JyGugalF9Dw4RArGIAJ9W38h+Mb/c62Ia6kn+TiDfd8ZxJQCfXEY8 +FdGihwdJnxz8cK3+VC4rmZs= +=+YBi +-----END PGP SIGNATURE----- diff --git a/source/a/mdadm/mdadm.SlackBuild b/source/a/mdadm/mdadm.SlackBuild new file mode 100755 index 000000000..45cc83b31 --- /dev/null +++ b/source/a/mdadm/mdadm.SlackBuild @@ -0,0 +1,73 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.6.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mdadm + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf mdadm-$VERSION +tar xjvf $CWD/mdadm-$VERSION.tar.bz2 +cd mdadm-$VERSION + +# Build this static... it's small enough. +zcat $CWD/mdadm.static.small.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make clean || exit 1 +make || exit 1 +#make mdadm.static +make install DESTDIR=$PKG || exit 1 +#cat mdadm.static > $PKG/sbin/mdadm +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share +mkdir -p $PKG/etc +cat mdadm.conf-example > $PKG/etc/mdadm.conf.new +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/usr/doc/mdadm-$VERSION +cp -a \ + ANNOUNCE-$VERSION COPYING* ChangeLog INSTALL TODO \ + $PKG/usr/doc/mdadm-$VERSION +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +makepkg -l y -c n $TMP/mdadm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/mdadm/mdadm.static.small.diff b/source/a/mdadm/mdadm.static.small.diff new file mode 100644 index 000000000..6be02fda5 --- /dev/null +++ b/source/a/mdadm/mdadm.static.small.diff @@ -0,0 +1,20 @@ +--- ./Makefile.orig 2006-06-15 19:21:52.000000000 -0500 ++++ ./Makefile 2006-06-25 00:28:24.000000000 -0500 +@@ -39,7 +39,7 @@ + + CC = $(CROSS_COMPILE)gcc + CXFLAGS = -ggdb +-CWFLAGS = -Wall -Werror -Wstrict-prototypes ++CWFLAGS = -Wall -Werror -Wstrict-prototypes -Os + + ifdef DEBIAN + CPPFLAGS= -DDEBIAN +@@ -55,7 +55,7 @@ + CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) + + # If you want a static binary, you might uncomment these +-# LDFLAGS = -static ++LDFLAGS = -static + # STRIP = -s + + INSTALL = /usr/bin/install diff --git a/source/a/mdadm/slack-desc b/source/a/mdadm/slack-desc new file mode 100644 index 000000000..984da7f3d --- /dev/null +++ b/source/a/mdadm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mdadm: mdadm (manage RAID arrays) +mdadm: +mdadm: mdadm is a utility program for creating, managing, and monitoring +mdadm: Linux MD (Software RAID) devices. Unlike the older raidtools +mdadm: package, mdadm is a single program (which should make it easier to +mdadm: use). +mdadm: +mdadm: mdadm was written by Neil Brown. Development of mdadm is sponsored +mdadm: by CSE@UNSW (The School of Computer Science and Engineering at +mdadm: The University of New South Wales). +mdadm: diff --git a/source/a/minicom/config.sub-x86_64.diff b/source/a/minicom/config.sub-x86_64.diff new file mode 100644 index 000000000..fa89bb3c1 --- /dev/null +++ b/source/a/minicom/config.sub-x86_64.diff @@ -0,0 +1,20 @@ +--- ./config.sub.orig 1998-04-26 17:20:59.000000000 +0400 ++++ ./config.sub 2007-08-30 09:48:46.000000000 +0400 +@@ -129,7 +129,7 @@ + case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. +- tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm \ ++ tahoe | i[345]86 | x86_64 | i860 | m68k | m68000 | m88k | ns32k | arm \ + | arme[lb] | pyramid \ + | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ + | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \ +@@ -144,7 +144,7 @@ + exit 1 + ;; + # Recognize the basic CPU types with company name. +- vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \ ++ vax-* | tahoe-* | i[345]86-* | x86_64-* | i860-* | m68k-* | m68000-* | m88k-* \ + | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ + | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ diff --git a/source/a/minicom/doinst.sh b/source/a/minicom/doinst.sh new file mode 100644 index 000000000..f667412ed --- /dev/null +++ b/source/a/minicom/doinst.sh @@ -0,0 +1,15 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/minicom.users.new +config etc/minirc.dfl.new +rm -f etc/minicom.users.new etc/minirc.dfl.new diff --git a/source/a/minicom/lrzsz_0.12.21-4.diff b/source/a/minicom/lrzsz_0.12.21-4.diff new file mode 100644 index 000000000..01c721571 --- /dev/null +++ b/source/a/minicom/lrzsz_0.12.21-4.diff @@ -0,0 +1,3019 @@ +--- lrzsz-0.12.21.orig/Makefile.in ++++ lrzsz-0.12.21/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -46,10 +46,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -106,13 +105,13 @@ + + DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \ + INSTALL Makefile.am Makefile.in NEWS Specfile.in THANKS TODO acconfig.h \ +-acinclude.m4 aclocal.m4 config.guess config.h.in configure configure.in \ +-install-sh missing mkinstalldirs systype.in ++acinclude.m4 aclocal.m4 config.guess config.h.in config.sub configure \ ++configure.in install-sh missing mkinstalldirs systype.in + + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + all: all-redirect + .SUFFIXES: +@@ -298,7 +297,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -340,7 +339,7 @@ + all-am: Makefile $(SCRIPTS) config.h + all-redirect: all-recursive-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: installdirs-recursive + installdirs-am: + +--- lrzsz-0.12.21.orig/aclocal.m4 ++++ lrzsz-0.12.21/aclocal.m4 +@@ -1,4 +1,4 @@ +-dnl aclocal.m4 generated automatically by aclocal 1.4a ++dnl aclocal.m4 generated automatically by aclocal 1.4 + + dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation +@@ -117,8 +117,6 @@ + + AC_DEFUN(AM_INIT_AUTOMAKE, + [AC_REQUIRE([AC_PROG_INSTALL]) +-dnl We require 2.13 because we rely on SHELL being computed by configure. +-AC_PREREQ([2.13]) + PACKAGE=[$1] + AC_SUBST(PACKAGE) + VERSION=[$2] +--- lrzsz-0.12.21.orig/configure ++++ lrzsz-0.12.21/configure +@@ -703,7 +703,6 @@ + fi + + +- + PACKAGE=lrzsz + + VERSION=0.12.21rc +@@ -723,7 +722,7 @@ + + missing_dir=`cd $ac_aux_dir && pwd` + echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +-echo "configure:727: checking for working aclocal" >&5 ++echo "configure:726: checking for working aclocal" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -736,7 +735,7 @@ + fi + + echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +-echo "configure:740: checking for working autoconf" >&5 ++echo "configure:739: checking for working autoconf" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -749,7 +748,7 @@ + fi + + echo $ac_n "checking for working automake""... $ac_c" 1>&6 +-echo "configure:753: checking for working automake" >&5 ++echo "configure:752: checking for working automake" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -762,7 +761,7 @@ + fi + + echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +-echo "configure:766: checking for working autoheader" >&5 ++echo "configure:765: checking for working autoheader" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -775,7 +774,7 @@ + fi + + echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +-echo "configure:779: checking for working makeinfo" >&5 ++echo "configure:778: checking for working makeinfo" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -926,7 +925,7 @@ + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:930: checking for $ac_word" >&5 ++echo "configure:929: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -956,7 +955,7 @@ + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:960: checking for $ac_word" >&5 ++echo "configure:959: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1007,7 +1006,7 @@ + # Extract the first word of "cl", so it can be a program name with args. + set dummy cl; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1011: checking for $ac_word" >&5 ++echo "configure:1010: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1039,7 +1038,7 @@ + fi + + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1043: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++echo "configure:1042: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +@@ -1050,12 +1049,12 @@ + + cat > conftest.$ac_ext << EOF + +-#line 1054 "configure" ++#line 1053 "configure" + #include "confdefs.h" + + main(){return(0);} + EOF +-if { (eval echo configure:1059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then +@@ -1081,12 +1080,12 @@ + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } + fi + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:1085: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "configure:1084: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 + echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 + cross_compiling=$ac_cv_prog_cc_cross + + echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +-echo "configure:1090: checking whether we are using GNU C" >&5 ++echo "configure:1089: checking whether we are using GNU C" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1095,7 +1094,7 @@ + yes; + #endif + EOF +-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes + else + ac_cv_prog_gcc=no +@@ -1114,7 +1113,7 @@ + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:1118: checking whether ${CC-cc} accepts -g" >&5 ++echo "configure:1117: checking whether ${CC-cc} accepts -g" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1146,7 +1145,7 @@ + fi + + echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +-echo "configure:1150: checking how to run the C preprocessor" >&5 ++echo "configure:1149: checking how to run the C preprocessor" >&5 + # On Suns, sometimes $CPP names a directory. + if test -n "$CPP" && test -d "$CPP"; then + CPP= +@@ -1161,13 +1160,13 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext <<EOF +-#line 1165 "configure" ++#line 1164 "configure" + #include "confdefs.h" + #include <assert.h> + Syntax Error + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1171: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + : +@@ -1178,13 +1177,13 @@ + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext <<EOF +-#line 1182 "configure" ++#line 1181 "configure" + #include "confdefs.h" + #include <assert.h> + Syntax Error + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1187: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + : +@@ -1195,13 +1194,13 @@ + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext <<EOF +-#line 1199 "configure" ++#line 1198 "configure" + #include "confdefs.h" + #include <assert.h> + Syntax Error + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1205: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1204: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + : +@@ -1235,13 +1234,13 @@ + fi + if test $ac_cv_prog_gcc = yes; then + echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6 +-echo "configure:1239: checking whether ${CC-cc} needs -traditional" >&5 ++echo "configure:1238: checking whether ${CC-cc} needs -traditional" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_pattern="Autoconf.*'x'" + cat > conftest.$ac_ext <<EOF +-#line 1245 "configure" ++#line 1244 "configure" + #include "confdefs.h" + #include <sgtty.h> + Autoconf TIOCGETP +@@ -1259,7 +1258,7 @@ + + if test $ac_cv_prog_gcc_traditional = no; then + cat > conftest.$ac_ext <<EOF +-#line 1263 "configure" ++#line 1262 "configure" + #include "confdefs.h" + #include <termio.h> + Autoconf TCGETA +@@ -1283,7 +1282,7 @@ + # Extract the first word of "ranlib", so it can be a program name with args. + set dummy ranlib; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1287: checking for $ac_word" >&5 ++echo "configure:1286: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1311,7 +1310,7 @@ + fi + + echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 +-echo "configure:1315: checking for POSIXized ISC" >&5 ++echo "configure:1314: checking for POSIXized ISC" >&5 + if test -d /etc/conf/kconfig.d && + grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 + then +@@ -1332,9 +1331,9 @@ + fi + + echo $ac_n "checking for AIX""... $ac_c" 1>&6 +-echo "configure:1336: checking for AIX" >&5 ++echo "configure:1335: checking for AIX" >&5 + cat > conftest.$ac_ext <<EOF +-#line 1338 "configure" ++#line 1337 "configure" + #include "confdefs.h" + #ifdef _AIX + yes +@@ -1357,17 +1356,17 @@ + + ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6 +-echo "configure:1361: checking for minix/config.h" >&5 ++echo "configure:1360: checking for minix/config.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1366 "configure" ++#line 1365 "configure" + #include "confdefs.h" + #include <minix/config.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1370: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -1408,7 +1407,7 @@ + + + echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 +-echo "configure:1412: checking for ${CC-cc} option to accept ANSI C" >&5 ++echo "configure:1411: checking for ${CC-cc} option to accept ANSI C" >&5 + if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1424,7 +1423,7 @@ + do + CC="$ac_save_CC $ac_arg" + cat > conftest.$ac_ext <<EOF +-#line 1428 "configure" ++#line 1427 "configure" + #include "confdefs.h" + #include <stdarg.h> + #include <stdio.h> +@@ -1461,7 +1460,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:1465: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1464: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + am_cv_prog_cc_stdc="$ac_arg"; break + else +@@ -1487,7 +1486,7 @@ + + + echo $ac_n "checking for function prototypes""... $ac_c" 1>&6 +-echo "configure:1491: checking for function prototypes" >&5 ++echo "configure:1490: checking for function prototypes" >&5 + if test "$am_cv_prog_cc_stdc" != no; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +@@ -1500,12 +1499,12 @@ + U=_ ANSI2KNR=./ansi2knr + # Ensure some checks needed by ansi2knr itself. + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +-echo "configure:1504: checking for ANSI C header files" >&5 ++echo "configure:1503: checking for ANSI C header files" >&5 + if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1509 "configure" ++#line 1508 "configure" + #include "confdefs.h" + #include <stdlib.h> + #include <stdarg.h> +@@ -1513,7 +1512,7 @@ + #include <float.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1516: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -1530,7 +1529,7 @@ + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 1534 "configure" ++#line 1533 "configure" + #include "confdefs.h" + #include <string.h> + EOF +@@ -1548,7 +1547,7 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 1552 "configure" ++#line 1551 "configure" + #include "confdefs.h" + #include <stdlib.h> + EOF +@@ -1569,7 +1568,7 @@ + : + else + cat > conftest.$ac_ext <<EOF +-#line 1573 "configure" ++#line 1572 "configure" + #include "confdefs.h" + #include <ctype.h> + #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +@@ -1580,7 +1579,7 @@ + exit (0); } + + EOF +-if { (eval echo configure:1584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:1583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -1607,17 +1606,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:1611: checking for $ac_hdr" >&5 ++echo "configure:1610: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1616 "configure" ++#line 1615 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1620: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -1646,12 +1645,12 @@ + fi + + echo $ac_n "checking for working const""... $ac_c" 1>&6 +-echo "configure:1650: checking for working const" >&5 ++echo "configure:1649: checking for working const" >&5 + if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1655 "configure" ++#line 1654 "configure" + #include "confdefs.h" + + int main() { +@@ -1700,7 +1699,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:1704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes + else +@@ -1721,21 +1720,21 @@ + fi + + echo $ac_n "checking for inline""... $ac_c" 1>&6 +-echo "configure:1725: checking for inline" >&5 ++echo "configure:1724: checking for inline" >&5 + if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_cv_c_inline=no + for ac_kw in inline __inline__ __inline; do + cat > conftest.$ac_ext <<EOF +-#line 1732 "configure" ++#line 1731 "configure" + #include "confdefs.h" + + int main() { + } $ac_kw foo() { + ; return 0; } + EOF +-if { (eval echo configure:1739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:1738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_inline=$ac_kw; break + else +@@ -1786,7 +1785,7 @@ + esac + + echo $ac_n "checking for syslog in -lsocket""... $ac_c" 1>&6 +-echo "configure:1790: checking for syslog in -lsocket" >&5 ++echo "configure:1789: checking for syslog in -lsocket" >&5 + ac_lib_var=`echo socket'_'syslog | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1794,7 +1793,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lsocket $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 1798 "configure" ++#line 1797 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -1805,7 +1804,7 @@ + syslog() + ; return 0; } + EOF +-if { (eval echo configure:1809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -1833,7 +1832,7 @@ + fi + + echo $ac_n "checking for syslog in -lbe""... $ac_c" 1>&6 +-echo "configure:1837: checking for syslog in -lbe" >&5 ++echo "configure:1836: checking for syslog in -lbe" >&5 + ac_lib_var=`echo be'_'syslog | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1841,7 +1840,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lbe $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 1845 "configure" ++#line 1844 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -1852,7 +1851,7 @@ + syslog() + ; return 0; } + EOF +-if { (eval echo configure:1856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -1880,7 +1879,7 @@ + fi + + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +-echo "configure:1884: checking for gethostbyname in -lnsl" >&5 ++echo "configure:1883: checking for gethostbyname in -lnsl" >&5 + ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -1888,7 +1887,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lnsl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 1892 "configure" ++#line 1891 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -1899,7 +1898,7 @@ + gethostbyname() + ; return 0; } + EOF +-if { (eval echo configure:1903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -1928,12 +1927,12 @@ + + + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +-echo "configure:1932: checking for ANSI C header files" >&5 ++echo "configure:1931: checking for ANSI C header files" >&5 + if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 1937 "configure" ++#line 1936 "configure" + #include "confdefs.h" + #include <stdlib.h> + #include <stdarg.h> +@@ -1941,7 +1940,7 @@ + #include <float.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:1944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -1958,7 +1957,7 @@ + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 1962 "configure" ++#line 1961 "configure" + #include "confdefs.h" + #include <string.h> + EOF +@@ -1976,7 +1975,7 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 1980 "configure" ++#line 1979 "configure" + #include "confdefs.h" + #include <stdlib.h> + EOF +@@ -1997,7 +1996,7 @@ + : + else + cat > conftest.$ac_ext <<EOF +-#line 2001 "configure" ++#line 2000 "configure" + #include "confdefs.h" + #include <ctype.h> + #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +@@ -2008,7 +2007,7 @@ + exit (0); } + + EOF +-if { (eval echo configure:2012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:2011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -2035,17 +2034,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2039: checking for $ac_hdr" >&5 ++echo "configure:2038: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2044 "configure" ++#line 2043 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2076,17 +2075,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2080: checking for $ac_hdr" >&5 ++echo "configure:2079: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2085 "configure" ++#line 2084 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2116,17 +2115,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2120: checking for $ac_hdr" >&5 ++echo "configure:2119: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2125 "configure" ++#line 2124 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2156,17 +2155,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2160: checking for $ac_hdr" >&5 ++echo "configure:2159: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2165 "configure" ++#line 2164 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2196,17 +2195,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2200: checking for $ac_hdr" >&5 ++echo "configure:2199: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2205 "configure" ++#line 2204 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2234,12 +2233,12 @@ + + + echo $ac_n "checking for size_t""... $ac_c" 1>&6 +-echo "configure:2238: checking for size_t" >&5 ++echo "configure:2237: checking for size_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2243 "configure" ++#line 2242 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2267,12 +2266,12 @@ + fi + + echo $ac_n "checking for mode_t""... $ac_c" 1>&6 +-echo "configure:2271: checking for mode_t" >&5 ++echo "configure:2270: checking for mode_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2276 "configure" ++#line 2275 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2300,12 +2299,12 @@ + fi + + echo $ac_n "checking for off_t""... $ac_c" 1>&6 +-echo "configure:2304: checking for off_t" >&5 ++echo "configure:2303: checking for off_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2309 "configure" ++#line 2308 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2334,12 +2333,12 @@ + + + echo $ac_n "checking for speed_t""... $ac_c" 1>&6 +-echo "configure:2338: checking for speed_t" >&5 ++echo "configure:2337: checking for speed_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_speed_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2343 "configure" ++#line 2342 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2389,12 +2388,12 @@ + fi + + echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6 +-echo "configure:2393: checking for st_rdev in struct stat" >&5 ++echo "configure:2392: checking for st_rdev in struct stat" >&5 + if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2398 "configure" ++#line 2397 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/stat.h> +@@ -2402,7 +2401,7 @@ + struct stat s; s.st_rdev; + ; return 0; } + EOF +-if { (eval echo configure:2406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_struct_st_rdev=yes + else +@@ -2423,12 +2422,12 @@ + fi + + echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +-echo "configure:2427: checking whether time.h and sys/time.h may both be included" >&5 ++echo "configure:2426: checking whether time.h and sys/time.h may both be included" >&5 + if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2432 "configure" ++#line 2431 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/time.h> +@@ -2437,7 +2436,7 @@ + struct tm *tp; + ; return 0; } + EOF +-if { (eval echo configure:2441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_time=yes + else +@@ -2459,12 +2458,12 @@ + + + echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 +-echo "configure:2463: checking for socklen_t" >&5 ++echo "configure:2462: checking for socklen_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2468 "configure" ++#line 2467 "configure" + #include "confdefs.h" + + #include "confdefs.h" +@@ -2480,7 +2479,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_socklen_t=yes + else +@@ -2505,12 +2504,12 @@ + fi + + echo $ac_n "checking whether sys/time.h and sys/select.h may both be included""... $ac_c" 1>&6 +-echo "configure:2509: checking whether sys/time.h and sys/select.h may both be included" >&5 ++echo "configure:2508: checking whether sys/time.h and sys/select.h may both be included" >&5 + if eval "test \"`echo '$''{'lrzsz_cv_header_sys_select'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2514 "configure" ++#line 2513 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/time.h> +@@ -2519,7 +2518,7 @@ + struct tm *tp; + ; return 0; } + EOF +-if { (eval echo configure:2523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + lrzsz_cv_header_sys_select=yes + else +@@ -2540,12 +2539,12 @@ + fi + + echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 +-echo "configure:2544: checking whether struct tm is in sys/time.h or time.h" >&5 ++echo "configure:2543: checking whether struct tm is in sys/time.h or time.h" >&5 + if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2549 "configure" ++#line 2548 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <time.h> +@@ -2553,7 +2552,7 @@ + struct tm *tp; tp->tm_sec; + ; return 0; } + EOF +-if { (eval echo configure:2557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_struct_tm=time.h + else +@@ -2575,19 +2574,19 @@ + + + echo $ac_n "checking for errno declaration""... $ac_c" 1>&6 +-echo "configure:2579: checking for errno declaration" >&5 ++echo "configure:2578: checking for errno declaration" >&5 + if eval "test \"`echo '$''{'lrzsz_cv_decl_errno'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2584 "configure" ++#line 2583 "configure" + #include "confdefs.h" + #include <errno.h> + int main() { + int i = errno; errno = 1; + ; return 0; } + EOF +-if { (eval echo configure:2591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + lrzsz_cv_decl_errno=yes + else +@@ -2610,7 +2609,7 @@ + + if test $cross_compiling = no ; then + echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6 +-echo "configure:2614: checking whether setvbuf arguments are reversed" >&5 ++echo "configure:2613: checking whether setvbuf arguments are reversed" >&5 + if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2618,7 +2617,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2622 "configure" ++#line 2621 "configure" + #include "confdefs.h" + #include <stdio.h> + /* If setvbuf has the reversed format, exit 0. */ +@@ -2632,7 +2631,7 @@ + exit(0); /* Non-reversed systems segv here. */ + } + EOF +-if { (eval echo configure:2636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:2635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_setvbuf_reversed=yes + else +@@ -2657,12 +2656,12 @@ + + fi + echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +-echo "configure:2661: checking return type of signal handlers" >&5 ++echo "configure:2660: checking return type of signal handlers" >&5 + if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2666 "configure" ++#line 2665 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <signal.h> +@@ -2679,7 +2678,7 @@ + int i; + ; return 0; } + EOF +-if { (eval echo configure:2683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void + else +@@ -2701,17 +2700,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2705: checking for $ac_hdr" >&5 ++echo "configure:2704: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2710 "configure" ++#line 2709 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2715: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:2714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2740,12 +2739,12 @@ + for ac_func in getpagesize + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:2744: checking for $ac_func" >&5 ++echo "configure:2743: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2749 "configure" ++#line 2748 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -2768,7 +2767,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -2793,7 +2792,7 @@ + done + + echo $ac_n "checking for working mmap""... $ac_c" 1>&6 +-echo "configure:2797: checking for working mmap" >&5 ++echo "configure:2796: checking for working mmap" >&5 + if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2801,7 +2800,7 @@ + ac_cv_func_mmap_fixed_mapped=no + else + cat > conftest.$ac_ext <<EOF +-#line 2805 "configure" ++#line 2804 "configure" + #include "confdefs.h" + + /* Thanks to Mike Haertel and Jim Avera for this test. +@@ -2941,7 +2940,7 @@ + } + + EOF +-if { (eval echo configure:2945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:2944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_mmap_fixed_mapped=yes + else +@@ -2966,19 +2965,19 @@ + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works + # for constant arguments. Useless! + echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 +-echo "configure:2970: checking for working alloca.h" >&5 ++echo "configure:2969: checking for working alloca.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2975 "configure" ++#line 2974 "configure" + #include "confdefs.h" + #include <alloca.h> + int main() { + char *p = alloca(2 * sizeof(int)); + ; return 0; } + EOF +-if { (eval echo configure:2982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_header_alloca_h=yes + else +@@ -2999,12 +2998,12 @@ + fi + + echo $ac_n "checking for alloca""... $ac_c" 1>&6 +-echo "configure:3003: checking for alloca" >&5 ++echo "configure:3002: checking for alloca" >&5 + if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3008 "configure" ++#line 3007 "configure" + #include "confdefs.h" + + #ifdef __GNUC__ +@@ -3032,7 +3031,7 @@ + char *p = (char *) alloca(1); + ; return 0; } + EOF +-if { (eval echo configure:3036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_func_alloca_works=yes + else +@@ -3064,12 +3063,12 @@ + + + echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 +-echo "configure:3068: checking whether alloca needs Cray hooks" >&5 ++echo "configure:3067: checking whether alloca needs Cray hooks" >&5 + if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3073 "configure" ++#line 3072 "configure" + #include "confdefs.h" + #if defined(CRAY) && ! defined(CRAY2) + webecray +@@ -3094,12 +3093,12 @@ + if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3098: checking for $ac_func" >&5 ++echo "configure:3097: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3103 "configure" ++#line 3102 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3122,7 +3121,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3149,7 +3148,7 @@ + fi + + echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 +-echo "configure:3153: checking stack direction for C alloca" >&5 ++echo "configure:3152: checking stack direction for C alloca" >&5 + if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3157,7 +3156,7 @@ + ac_cv_c_stack_direction=0 + else + cat > conftest.$ac_ext <<EOF +-#line 3161 "configure" ++#line 3160 "configure" + #include "confdefs.h" + find_stack_direction () + { +@@ -3176,7 +3175,7 @@ + exit (find_stack_direction() < 0); + } + EOF +-if { (eval echo configure:3180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:3179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_c_stack_direction=1 + else +@@ -3198,7 +3197,7 @@ + fi + + cat > conftest.$ac_ext <<EOF +-#line 3202 "configure" ++#line 3201 "configure" + #include "confdefs.h" + #include <utime.h> + EOF +@@ -3216,12 +3215,12 @@ + for ac_func in gettimeofday settimeofday + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3220: checking for $ac_func" >&5 ++echo "configure:3219: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3225 "configure" ++#line 3224 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3244,7 +3243,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3271,12 +3270,12 @@ + for ac_func in strchr memcpy select vprintf + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3275: checking for $ac_func" >&5 ++echo "configure:3274: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3280 "configure" ++#line 3279 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3299,7 +3298,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3326,12 +3325,12 @@ + for ac_func in times rdchk utime syslog siginterrupt + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3330: checking for $ac_func" >&5 ++echo "configure:3329: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3335 "configure" ++#line 3334 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3354,7 +3353,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3381,12 +3380,12 @@ + for ac_func in mkdir mktime strerror strstr strdup strtoul strtol strpbrk + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3385: checking for $ac_func" >&5 ++echo "configure:3384: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3390 "configure" ++#line 3389 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3409,7 +3408,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3438,12 +3437,12 @@ + for ac_func in stpcpy strftime vasprintf + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3442: checking for $ac_func" >&5 ++echo "configure:3441: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3447 "configure" ++#line 3446 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3466,7 +3465,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3494,12 +3493,12 @@ + + + echo $ac_n "checking for getopt_long""... $ac_c" 1>&6 +-echo "configure:3498: checking for getopt_long" >&5 ++echo "configure:3497: checking for getopt_long" >&5 + if eval "test \"`echo '$''{'ac_cv_func_getopt_long'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3503 "configure" ++#line 3502 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getopt_long(); below. */ +@@ -3522,7 +3521,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_getopt_long=yes" + else +@@ -3552,12 +3551,12 @@ + + + echo $ac_n "checking for ftime""... $ac_c" 1>&6 +-echo "configure:3556: checking for ftime" >&5 ++echo "configure:3555: checking for ftime" >&5 + if eval "test \"`echo '$''{'ac_cv_func_ftime'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3561 "configure" ++#line 3560 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char ftime(); below. */ +@@ -3580,7 +3579,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_ftime=yes" + else +@@ -3595,7 +3594,7 @@ + if eval "test \"`echo '$ac_cv_func_'ftime`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking that ftime works correctly""... $ac_c" 1>&6 +-echo "configure:3599: checking that ftime works correctly" >&5 ++echo "configure:3598: checking that ftime works correctly" >&5 + if eval "test \"`echo '$''{'lrzsz_cv_sys_ftime_ok'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3603,7 +3602,7 @@ + lrzsz_cv_sys_ftime_ok=runtime + else + cat > conftest.$ac_ext <<EOF +-#line 3607 "configure" ++#line 3606 "configure" + #include "confdefs.h" + + #include <sys/types.h> +@@ -3632,7 +3631,7 @@ + } + + EOF +-if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:3635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + lrzsz_cv_sys_ftime_ok=yes + else +@@ -3666,20 +3665,20 @@ + + + echo $ac_n "checking for timezone variable""... $ac_c" 1>&6 +-echo "configure:3670: checking for timezone variable" >&5 ++echo "configure:3669: checking for timezone variable" >&5 + if eval "test \"`echo '$''{'libquark_cv_var_timezone'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + + cat > conftest.$ac_ext <<EOF +-#line 3676 "configure" ++#line 3675 "configure" + #include "confdefs.h" + #include <time.h> + int main() { + return(int)(timezone/2); + ; return 0; } + EOF +-if { (eval echo configure:3683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + libquark_cv_var_timezone=yes + else +@@ -3705,13 +3704,13 @@ + : + else + echo $ac_n "checking for $lookup_facility""... $ac_c" 1>&6 +-echo "configure:3709: checking for $lookup_facility" >&5 ++echo "configure:3708: checking for $lookup_facility" >&5 + if eval "test \"`echo '$''{'lrzsz_cv_lookup_facility'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + + cat > conftest.$ac_ext <<EOF +-#line 3715 "configure" ++#line 3714 "configure" + #include "confdefs.h" + + #ifdef HAVE_SYSLOG_H +@@ -3763,17 +3762,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3767: checking for $ac_hdr" >&5 ++echo "configure:3766: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3772 "configure" ++#line 3771 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3777: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:3776: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3803,12 +3802,12 @@ + strdup __argz_count __argz_stringify __argz_next + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3807: checking for $ac_func" >&5 ++echo "configure:3806: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3812 "configure" ++#line 3811 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3831,7 +3830,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3860,12 +3859,12 @@ + for ac_func in stpcpy + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3864: checking for $ac_func" >&5 ++echo "configure:3863: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3869 "configure" ++#line 3868 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3888,7 +3887,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3922,19 +3921,19 @@ + + if test $ac_cv_header_locale_h = yes; then + echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 +-echo "configure:3926: checking for LC_MESSAGES" >&5 ++echo "configure:3925: checking for LC_MESSAGES" >&5 + if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3931 "configure" ++#line 3930 "configure" + #include "confdefs.h" + #include <locale.h> + int main() { + return LC_MESSAGES + ; return 0; } + EOF +-if { (eval echo configure:3938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:3937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + am_cv_val_LC_MESSAGES=yes + else +@@ -3955,7 +3954,7 @@ + fi + fi + echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 +-echo "configure:3959: checking whether NLS is requested" >&5 ++echo "configure:3958: checking whether NLS is requested" >&5 + # Check whether --enable-nls or --disable-nls was given. + if test "${enable_nls+set}" = set; then + enableval="$enable_nls" +@@ -3975,7 +3974,7 @@ + EOF + + echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 +-echo "configure:3979: checking whether included gettext is requested" >&5 ++echo "configure:3978: checking whether included gettext is requested" >&5 + # Check whether --with-included-gettext or --without-included-gettext was given. + if test "${with_included_gettext+set}" = set; then + withval="$with_included_gettext" +@@ -3994,17 +3993,17 @@ + + ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 +-echo "configure:3998: checking for libintl.h" >&5 ++echo "configure:3997: checking for libintl.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4003 "configure" ++#line 4002 "configure" + #include "confdefs.h" + #include <libintl.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:4008: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:4007: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -4021,19 +4020,19 @@ + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 +-echo "configure:4025: checking for gettext in libc" >&5 ++echo "configure:4024: checking for gettext in libc" >&5 + if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4030 "configure" ++#line 4029 "configure" + #include "confdefs.h" + #include <libintl.h> + int main() { + return (int) gettext ("") + ; return 0; } + EOF +-if { (eval echo configure:4037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + gt_cv_func_gettext_libc=yes + else +@@ -4049,7 +4048,7 @@ + + if test "$gt_cv_func_gettext_libc" != "yes"; then + echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 +-echo "configure:4053: checking for bindtextdomain in -lintl" >&5 ++echo "configure:4052: checking for bindtextdomain in -lintl" >&5 + ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4057,7 +4056,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4061 "configure" ++#line 4060 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4068,7 +4067,7 @@ + bindtextdomain() + ; return 0; } + EOF +-if { (eval echo configure:4072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4084,12 +4083,12 @@ + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 +-echo "configure:4088: checking for gettext in libintl" >&5 ++echo "configure:4087: checking for gettext in libintl" >&5 + if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 +-echo "configure:4093: checking for gettext in -lintl" >&5 ++echo "configure:4092: checking for gettext in -lintl" >&5 + ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4097,7 +4096,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4101 "configure" ++#line 4100 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4108,7 +4107,7 @@ + gettext() + ; return 0; } + EOF +-if { (eval echo configure:4112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4147,7 +4146,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4151: checking for $ac_word" >&5 ++echo "configure:4150: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4181,12 +4180,12 @@ + for ac_func in dcgettext + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:4185: checking for $ac_func" >&5 ++echo "configure:4184: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4190 "configure" ++#line 4189 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -4209,7 +4208,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -4236,7 +4235,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4240: checking for $ac_word" >&5 ++echo "configure:4239: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4272,7 +4271,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4276: checking for $ac_word" >&5 ++echo "configure:4275: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4304,7 +4303,7 @@ + fi + + cat > conftest.$ac_ext <<EOF +-#line 4308 "configure" ++#line 4307 "configure" + #include "confdefs.h" + + int main() { +@@ -4312,7 +4311,7 @@ + return _nl_msg_cat_cntr + ; return 0; } + EOF +-if { (eval echo configure:4316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + CATOBJEXT=.gmo + DATADIRNAME=share +@@ -4335,7 +4334,7 @@ + + if test "$CATOBJEXT" = "NONE"; then + echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 +-echo "configure:4339: checking whether catgets can be used" >&5 ++echo "configure:4338: checking whether catgets can be used" >&5 + # Check whether --with-catgets or --without-catgets was given. + if test "${with_catgets+set}" = set; then + withval="$with_catgets" +@@ -4348,7 +4347,7 @@ + + if test "$nls_cv_use_catgets" = "yes"; then + echo $ac_n "checking for main in -li""... $ac_c" 1>&6 +-echo "configure:4352: checking for main in -li" >&5 ++echo "configure:4351: checking for main in -li" >&5 + ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4356,14 +4355,14 @@ + ac_save_LIBS="$LIBS" + LIBS="-li $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4360 "configure" ++#line 4359 "configure" + #include "confdefs.h" + + int main() { + main() + ; return 0; } + EOF +-if { (eval echo configure:4367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4391,12 +4390,12 @@ + fi + + echo $ac_n "checking for catgets""... $ac_c" 1>&6 +-echo "configure:4395: checking for catgets" >&5 ++echo "configure:4394: checking for catgets" >&5 + if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4400 "configure" ++#line 4399 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char catgets(); below. */ +@@ -4419,7 +4418,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_catgets=yes" + else +@@ -4441,7 +4440,7 @@ + # Extract the first word of "gencat", so it can be a program name with args. + set dummy gencat; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4445: checking for $ac_word" >&5 ++echo "configure:4444: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4477,7 +4476,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4481: checking for $ac_word" >&5 ++echo "configure:4480: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4514,7 +4513,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4518: checking for $ac_word" >&5 ++echo "configure:4517: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4549,7 +4548,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4553: checking for $ac_word" >&5 ++echo "configure:4552: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4607,7 +4606,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4611: checking for $ac_word" >&5 ++echo "configure:4610: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4641,7 +4640,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4645: checking for $ac_word" >&5 ++echo "configure:4644: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4677,7 +4676,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4681: checking for $ac_word" >&5 ++echo "configure:4680: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4770,7 +4769,7 @@ + LINGUAS= + else + echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 +-echo "configure:4774: checking for catalogs to be installed" >&5 ++echo "configure:4773: checking for catalogs to be installed" >&5 + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in +@@ -4798,17 +4797,17 @@ + if test "$CATOBJEXT" = ".cat"; then + ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 +-echo "configure:4802: checking for linux/version.h" >&5 ++echo "configure:4801: checking for linux/version.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4807 "configure" ++#line 4806 "configure" + #include "confdefs.h" + #include <linux/version.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:4812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:4811: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +--- lrzsz-0.12.21.orig/debian/changelog ++++ lrzsz-0.12.21/debian/changelog +@@ -0,0 +1,80 @@ ++lrzsz (0.12.21-4) unstable; urgency=low ++ ++ * Updated for Standards-Version: 3.5.2. ++ * Added touch stamp-h.in before make invocation in order to stop ++ autoheader from running. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 25 Mar 2001 19:48:18 +0200 ++ ++lrzsz (0.12.21-3) unstable; urgency=low ++ ++ * Newish upstream version, (990823 in CVS). ++ * Updated for Policy 3.x. ++ * Misc. fixes for debian/*. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 19 Sep 1999 17:55:38 +0200 ++ ++lrzsz (0.12.21-2) unstable; urgency=low ++ ++ * Removed definition of strstr, advised by upstream maintainer, to ++ get it to compile on glibc2.1, as John Goerzen and Bart Warmerdam ++ noticed (fixes: #39429 #39812). ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 20 Jun 1999 21:38:07 +0200 ++ ++lrzsz (0.12.21-1) unstable; urgency=low ++ ++ * New upstream version (990604 in CVS). ++ * Cleaned up the diff by removing unneeded .deps/ files and not changing ++ aclocal et al. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 6 Jun 1999 21:01:50 +0200 ++ ++lrzsz (0.12.20-2) unstable; urgency=low ++ ++ * Don't install ansi2knr.1 manpage, closing bug #33121 ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 7 Feb 1999 01:32:31 +0100 ++ ++lrzsz (0.12.20-1) unstable; urgency=low ++ ++ * New maintainer. ++ * Althought version number doesn't indicate that, this version is ++ today's CVS snapshot from ftp://tirka.ohse.de/uwe/cvs-trees ++ * This release fixes following bugs: #8373 #11208 #16170 #16744 #17210. ++ * Package is lintian clean. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 7 Feb 1999 01:32:31 +0100 ++ ++lrzsz (0.12.17) unstable; urgency=low ++ ++ * sorry, see ../ChangeLog. automagically generated debian/changelog ++ ++ -- Uwe Ohse <uwe@ohse.de> Mon, 02 Jun 1997 10:06:05 +0200 ++ ++lrzsz (0.12.16) unstable; urgency=low ++ ++ * sorry, see ../ChangeLog. changelog is here just to make ++ dpkg happy. ++ * initial release ++ ++ -- Uwe Ohse <uwe@ohse.de> Sun, 2 Jun 1997 21:00:00 +0200 ++ ++lrzsz (0.12b-1.1) unstable; urgency=low ++ ++ * Non-maintainer release. ++ * Libc6 compile. ++ ++ -- Martin Mitchell <martin@debian.org> Sat, 18 Oct 1997 01:58:54 +1000 ++ ++lrzsz (0.12b-1) unstable; urgency=low ++ ++ * Converted to new source packaging format. ++ * New upstream version. ++ ++ -- Michael Alan Dorman <mdorman@calder.med.miami.edu> Tue, 17 Sep 1996 13:39:23 -0400 ++ ++Local variables: ++mode: debian-changelog ++add-log-mailing-address: "jrodin@jagor.srce.hr" ++End: +--- lrzsz-0.12.21.orig/debian/control ++++ lrzsz-0.12.21/debian/control +@@ -0,0 +1,18 @@ ++Source: lrzsz ++Section: comm ++Priority: optional ++Maintainer: Josip Rodin <jrodin@jagor.srce.hr> ++Standards-Version: 3.5.2 ++Build-Depends: debhelper ++ ++Package: lrzsz ++Architecture: any ++Depends: ${shlibs:Depends} ++Suggests: minicom ++Description: Tools for zmodem/xmodem/ymodem file transfer ++ Lrzsz is a cosmetically modified zmodem/ymodem/xmodem package built ++ from the public-domain version of Chuck Forsberg's rzsz package. ++ . ++ These programs use error correcting protocols ({z,x,y}modem) to send ++ (sz, sx, sb) and receive (rz, rx, rb) files over a dial-in serial port ++ from a variety of programs running under various operating systems. +--- lrzsz-0.12.21.orig/debian/copyright ++++ lrzsz-0.12.21/debian/copyright +@@ -0,0 +1,31 @@ ++This is the lrzsz Debian GNU/Linux package. It was first maintained by ++Michael Alan Dorman <mdorman@debian.org>, with help of Martin Mitchell ++and current upstream maintainer, Uwe Ohse <uwe@ohse.de>. ++ ++Current maintainer is Josip Rodin <jrodin@jagor.srce.hr> ++ ++Original source was downloaded from: ftp://tirka.ohse.de/uwe/ ++ ++Copyright (C) until 1988 Chuck Forsberg (Omen Technology INC) ++Copyright (C) 1994 Matt Porter, Michael D. Black ++Copyright (C) 1996, 1997 Uwe Ohse ++ ++Please note that credit should be given to Chuck Forsberg (rzsz) and ++Stephen Satchell/Satchell Evaluations (crc routines) for this package. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; version 2 dated June, 1991. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++ 02111-1307, USA. ++ ++On Debian systems, the complete text of the GNU General Public License ++can be found in /usr/share/common-licenses/GPL file. +--- lrzsz-0.12.21.orig/debian/rules ++++ lrzsz-0.12.21/debian/rules +@@ -0,0 +1,60 @@ ++#!/usr/bin/make -f ++# Derived from debhelper/dh_make example. ++ ++#export DH_VERBOSE=1 ++tmp := $(CURDIR)/debian/tmp ++ ++CFLAGS := -O2 ++ifneq "$(findstring debug,$(DEB_BUILD_OPTIONS))" "" ++CFLAGS += -g ++endif ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ CFLAGS="$(CFLAGS)" ./configure --prefix=/usr \ ++ --mandir='$${prefix}/share/man' --program-transform-name=s/l// ++ touch stamp-h.in # to stop autoheader from running ++ $(MAKE) ++ touch $@ ++ ++clean: ++ dh_testdir ++ dh_testroot ++ [ ! -f Makefile ] || $(MAKE) distclean ++ dh_clean build-stamp ++ ++install: build-stamp ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ $(MAKE) install prefix=$(tmp)/usr ++ ++binary-indep: ++# We have nothing to do, no architecture independent packages here. ++ ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs NEWS README README.cvs README.isdn4linux TODO ++# dh_installmanpages ansi2knr.1 ++ dh_installchangelogs ChangeLog ++ifeq "$(findstring nostrip,$(DEB_BUILD_OPTIONS))" "" ++ dh_strip ++endif ++ dh_compress ++ cd $(tmp)/usr/share/man/man1 ; \ ++ ln -s rz.1.gz rb.1.gz ; \ ++ ln -s rz.1.gz rx.1.gz ; \ ++ ln -s sz.1.gz sb.1.gz ; \ ++ ln -s sz.1.gz sx.1.gz ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- lrzsz-0.12.21.orig/lib/Makefile.in ++++ lrzsz-0.12.21/lib/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -46,10 +46,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -127,7 +126,7 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + DEP_FILES = .deps/alloca.P .deps/error.P .deps/getopt.P .deps/getopt1.P \ + .deps/long-options.P .deps/mkdir.P .deps/mktime.P .deps/stpcpy.P \ +@@ -282,7 +281,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -343,7 +342,7 @@ + all-am: Makefile $(ANSI2KNR) $(LIBRARIES) $(HEADERS) + all-redirect: all-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: + + +--- lrzsz-0.12.21.orig/man/Makefile.in ++++ lrzsz-0.12.21/man/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -46,10 +46,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -106,7 +105,7 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + all: all-redirect + .SUFFIXES: +@@ -173,7 +172,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -202,7 +201,7 @@ + all-am: Makefile $(MANS) + all-redirect: all-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: + $(mkinstalldirs) $(DESTDIR)$(mandir)/man1 + +--- lrzsz-0.12.21.orig/po/lrzsz.pot ++++ lrzsz-0.12.21/po/lrzsz.pot +@@ -6,7 +6,7 @@ + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" +-"POT-Creation-Date: 1999-08-22 21:00+0200\n" ++"POT-Creation-Date: 1999-09-19 19:34+0200\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" + "Language-Team: LANGUAGE <LL@li.org>\n" +@@ -14,311 +14,311 @@ + "Content-Type: text/plain; charset=CHARSET\n" + "Content-Transfer-Encoding: ENCODING\n" + +-#: src/lsz.c:228 ++#: src/lsz.c:227 + msgid "io_mode(,2) in rbsb.c not implemented\n" + msgstr "" + +-#: src/lrz.c:196 src/lsz.c:230 ++#: src/lrz.c:195 src/lsz.c:229 + #, c-format + msgid "caught signal %d; exiting" + msgstr "" + +-#: src/lsz.c:400 ++#: src/lsz.c:399 + msgid "command tries" + msgstr "" + +-#: src/lsz.c:422 ++#: src/lsz.c:421 + msgid "packetlength" + msgstr "" + +-#: src/lsz.c:427 ++#: src/lsz.c:426 + #, c-format + msgid "packetlength out of range 24..%ld" + msgstr "" + +-#: src/lsz.c:436 ++#: src/lsz.c:435 + msgid "framelength" + msgstr "" + +-#: src/lsz.c:441 ++#: src/lsz.c:440 + #, c-format + msgid "framelength out of range 32..%ld" + msgstr "" + +-#: src/lrz.c:318 src/lsz.c:450 ++#: src/lrz.c:317 src/lsz.c:449 + msgid "min_bps" + msgstr "" + +-#: src/lsz.c:452 ++#: src/lsz.c:451 + msgid "min_bps must be >= 0" + msgstr "" + +-#: src/lrz.c:324 src/lsz.c:458 ++#: src/lrz.c:323 src/lsz.c:457 + msgid "min_bps_time" + msgstr "" + +-#: src/lrz.c:326 src/lsz.c:460 ++#: src/lrz.c:325 src/lsz.c:459 + msgid "min_bps_time must be > 1" + msgstr "" + +-#: src/lrz.c:342 src/lsz.c:484 ++#: src/lrz.c:341 src/lsz.c:483 + msgid "hour to large (0..23)" + msgstr "" + +-#: src/lrz.c:344 src/lsz.c:486 ++#: src/lrz.c:343 src/lsz.c:485 + msgid "unparsable stop time\n" + msgstr "" + +-#: src/lrz.c:348 src/lsz.c:490 ++#: src/lrz.c:347 src/lsz.c:489 + msgid "minute to large (0..59)" + msgstr "" + +-#: src/lrz.c:358 src/lrz.c:365 src/lsz.c:500 src/lsz.c:507 ++#: src/lrz.c:357 src/lrz.c:364 src/lsz.c:499 src/lsz.c:506 + msgid "stop time to small" + msgstr "" + +-#: src/lrz.c:363 src/lsz.c:505 ++#: src/lrz.c:362 src/lsz.c:504 + msgid "stop-at" + msgstr "" + +-#: src/lrz.c:394 src/lsz.c:516 ++#: src/lrz.c:393 src/lsz.c:515 + msgid "timeout" + msgstr "" + +-#: src/lrz.c:396 src/lsz.c:518 ++#: src/lrz.c:395 src/lsz.c:517 + msgid "timeout out of range 10..1000" + msgstr "" + +-#: src/lrz.c:412 src/lsz.c:526 ++#: src/lrz.c:411 src/lsz.c:525 + msgid "security violation: can't do that under restricted shell\n" + msgstr "" + +-#: src/lrz.c:402 src/lsz.c:533 ++#: src/lrz.c:401 src/lsz.c:532 + msgid "window size" + msgstr "" + +-#: src/lrz.c:427 src/lrz.c:434 src/lsz.c:556 src/lsz.c:563 ++#: src/lrz.c:426 src/lrz.c:433 src/lsz.c:555 src/lsz.c:562 + msgid "cannot turnoff syslog" + msgstr "" + +-#: src/lrz.c:449 src/lsz.c:571 ++#: src/lrz.c:448 src/lsz.c:570 + msgid "startup delay" + msgstr "" + +-#: src/lrz.c:465 src/lrz.c:483 src/lrz.c:760 src/lrz.c:1122 src/lrz.c:1244 +-#: src/lrz.c:1292 src/lrz.c:1309 src/lrz.c:1324 src/lrz.c:1423 src/lsz.c:580 +-#: src/lsz.c:596 src/lsz.c:693 src/lsz.c:828 src/lsz.c:1061 ++#: src/lrz.c:464 src/lrz.c:482 src/lrz.c:759 src/lrz.c:1121 src/lrz.c:1243 ++#: src/lrz.c:1291 src/lrz.c:1308 src/lrz.c:1323 src/lrz.c:1422 src/lsz.c:579 ++#: src/lsz.c:595 src/lsz.c:692 src/lsz.c:827 src/lsz.c:1060 + #: src/zreadline.c:127 + msgid "out of memory" + msgstr "" + +-#: src/lrz.c:475 src/lsz.c:592 ++#: src/lrz.c:474 src/lsz.c:591 + msgid "this program was never intended to be used setuid\n" + msgstr "" + +-#: src/lsz.c:612 src/lsz.c:627 ++#: src/lsz.c:611 src/lsz.c:626 + msgid "need at least one file to send" + msgstr "" + +-#: src/lsz.c:629 ++#: src/lsz.c:628 + msgid "Can't send command in restricted mode\n" + msgstr "" + +-#: src/lrz.c:527 src/lsz.c:656 ++#: src/lrz.c:526 src/lsz.c:655 + msgid "hostname too long\n" + msgstr "" + +-#: src/lrz.c:542 src/lsz.c:671 ++#: src/lrz.c:541 src/lsz.c:670 + msgid "illegal server address\n" + msgstr "" + +-#: src/lsz.c:710 ++#: src/lsz.c:709 + msgid "can read only one file from stdin" + msgstr "" + +-#: src/lrz.c:574 src/lsz.c:803 ++#: src/lrz.c:573 src/lsz.c:802 + msgid "Transfer incomplete\n" + msgstr "" + +-#: src/lrz.c:576 src/lsz.c:805 ++#: src/lrz.c:575 src/lsz.c:804 + msgid "Transfer complete\n" + msgstr "" + +-#: src/lsz.c:838 ++#: src/lsz.c:837 + #, c-format + msgid "send_pseudo %s: cannot open tmpfile %s: %s" + msgstr "" + +-#: src/lsz.c:851 ++#: src/lsz.c:850 + #, c-format + msgid "send_pseudo %s: cannot lstat tmpfile %s: %s" + msgstr "" + +-#: src/lsz.c:859 ++#: src/lsz.c:858 + #, c-format + msgid "send_pseudo %s: avoiding symlink trap" + msgstr "" + +-#: src/lsz.c:870 ++#: src/lsz.c:869 + #, c-format + msgid "send_pseudo %s: cannot write to tmpfile %s: %s" + msgstr "" + +-#: src/lsz.c:879 ++#: src/lsz.c:878 + #, c-format + msgid "send_pseudo %s: failed" + msgstr "" + +-#: src/lsz.c:882 ++#: src/lsz.c:881 + #, c-format + msgid "send_pseudo %s: ok" + msgstr "" + +-#: src/lsz.c:916 ++#: src/lsz.c:915 + #, c-format + msgid "Answering TIMESYNC at %s" + msgstr "" + +-#: src/lsz.c:921 ++#: src/lsz.c:920 + msgid "timezone" + msgstr "" + +-#: src/lsz.c:924 ++#: src/lsz.c:923 + msgid "timezone unknown" + msgstr "" + +-#: src/lsz.c:953 ++#: src/lsz.c:952 + msgid "Can't open any requested files." + msgstr "" + +-#: src/lsz.c:1009 ++#: src/lsz.c:1008 + #, c-format + msgid "security violation: not allowed to upload from %s" + msgstr "" + +-#: src/lrz.c:1384 src/lsz.c:1027 ++#: src/lrz.c:1383 src/lsz.c:1026 + #, c-format + msgid "cannot open %s" + msgstr "" + +-#: src/lsz.c:1082 ++#: src/lsz.c:1081 + #, c-format + msgid "is not a file: %s" + msgstr "" + +-#: src/lsz.c:1115 src/lsz.c:1130 ++#: src/lsz.c:1114 src/lsz.c:1129 + #, c-format + msgid "%s/%s: error occured" + msgstr "" + +-#: src/lsz.c:1119 ++#: src/lsz.c:1118 + #, c-format + msgid "skipped: %s" + msgstr "" + +-#: src/lsz.c:1122 ++#: src/lsz.c:1121 + #, c-format + msgid "%s/%s: skipped" + msgstr "" + +-#: src/lsz.c:1149 ++#: src/lsz.c:1148 + #, c-format + msgid "Bytes Sent:%7ld BPS:%-8ld \n" + msgstr "" + +-#: src/lsz.c:1178 ++#: src/lsz.c:1177 + #, c-format + msgid "Sending %s, %ld blocks: " + msgstr "" + +-#: src/lsz.c:1181 ++#: src/lsz.c:1180 + msgid "Give your local XMODEM receive command now." + msgstr "" + +-#: src/lsz.c:1224 ++#: src/lsz.c:1223 + #, c-format + msgid "Sending: %s\n" + msgstr "" + +-#: src/lsz.c:1267 ++#: src/lsz.c:1266 + msgid "Timeout on pathname" + msgstr "" + +-#: src/lsz.c:1314 ++#: src/lsz.c:1313 + msgid "Receiver Cancelled" + msgstr "" + +-#: src/lsz.c:1340 ++#: src/lsz.c:1339 + msgid "No ACK on EOT" + msgstr "" + +-#: src/lsz.c:1361 ++#: src/lsz.c:1360 + #, c-format + msgid "Xmodem sectors/kbytes sent: %3d/%2dk" + msgstr "" + +-#: src/lsz.c:1363 ++#: src/lsz.c:1362 + #, c-format + msgid "Ymodem sectors/kbytes sent: %3d/%2dk" + msgstr "" + +-#: src/lsz.c:1395 ++#: src/lsz.c:1394 + msgid "Cancelled" + msgstr "" + +-#: src/lsz.c:1399 ++#: src/lsz.c:1398 + msgid "Timeout on sector ACK" + msgstr "" + +-#: src/lsz.c:1404 ++#: src/lsz.c:1403 + msgid "NAK on sector" + msgstr "" + +-#: src/lsz.c:1410 ++#: src/lsz.c:1409 + msgid "Got burst for sector ACK" + msgstr "" + +-#: src/lsz.c:1412 ++#: src/lsz.c:1411 + #, c-format + msgid "Got %02x for sector ACK" + msgstr "" + +-#: src/lsz.c:1424 ++#: src/lsz.c:1423 + msgid "Retry Count Exceeded" + msgstr "" + +-#: src/lrz.c:596 src/lsz.c:1502 ++#: src/lrz.c:595 src/lsz.c:1501 + #, c-format + msgid "Try `%s --help' for more information.\n" + msgstr "" + +-#: src/lrz.c:601 src/lsz.c:1507 ++#: src/lrz.c:600 src/lsz.c:1506 + #, c-format + msgid "%s version %s\n" + msgstr "" + +-#: src/lsz.c:1510 ++#: src/lsz.c:1509 + #, c-format + msgid "Usage: %s [options] file ...\n" + msgstr "" + +-#: src/lsz.c:1512 ++#: src/lsz.c:1511 + #, c-format + msgid " or: %s [options] -{c|i} COMMAND\n" + msgstr "" + +-#: src/lsz.c:1513 ++#: src/lsz.c:1512 + msgid "Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n" + msgstr "" + +-#: src/lrz.c:607 src/lsz.c:1515 ++#: src/lrz.c:606 src/lsz.c:1514 + msgid "" + " (X) = option applies to XMODEM only\n" + " (Y) = option applies to YMODEM only\n" + " (Z) = option applies to ZMODEM only\n" + msgstr "" + +-#: src/lsz.c:1521 ++#: src/lsz.c:1520 + msgid "" + " -+, --append append to existing destination file (Z)\n" + " -2, --twostop use 2 stop bits\n" +@@ -345,7 +345,7 @@ + " -M, --min-bps-time N for at least N seconds (default: 120)\n" + msgstr "" + +-#: src/lsz.c:1546 ++#: src/lsz.c:1545 + msgid "" + " -n, --newer send file if source newer (Z)\n" + " -N, --newer-or-longer send file if source newer or longer (Z)\n" +@@ -371,64 +371,64 @@ + "short options use the same arguments as the long ones\n" + msgstr "" + +-#: src/lsz.c:1768 ++#: src/lsz.c:1767 + msgid "got ZRQINIT" + msgstr "" + +-#: src/lrz.c:1079 src/lrz.c:1772 src/lsz.c:1774 ++#: src/lrz.c:1078 src/lrz.c:1771 src/lsz.c:1773 + msgid "got ZCAN" + msgstr "" + +-#: src/lsz.c:1991 ++#: src/lsz.c:1990 + #, c-format + msgid "blklen now %d\n" + msgstr "" + +-#: src/lsz.c:2053 ++#: src/lsz.c:2052 + #, c-format + msgid "zsendfdata: bps rate %ld below min %ld" + msgstr "" + +-#: src/lsz.c:2070 ++#: src/lsz.c:2069 + msgid "zsendfdata: reached stop time" + msgstr "" + +-#: src/lsz.c:2080 ++#: src/lsz.c:2079 + #, c-format + msgid "Bytes Sent:%7ld/%7ld BPS:%-8ld ETA %02d:%02d " + msgstr "" + +-#: src/lsz.c:2223 ++#: src/lsz.c:2222 + #, c-format + msgid "calc_blklen: reduced to %d due to error\n" + msgstr "" + +-#: src/lsz.c:2256 ++#: src/lsz.c:2255 + #, c-format + msgid "calc_blklen: returned old value %d due to low bpe diff\n" + msgstr "" + +-#: src/lsz.c:2258 ++#: src/lsz.c:2257 + #, c-format + msgid "calc_blklen: old %ld, new %ld, d %ld\n" + msgstr "" + +-#: src/lsz.c:2267 ++#: src/lsz.c:2266 + #, c-format + msgid "calc_blklen: calc total_bytes=%ld, bpe=%ld, ec=%ld\n" + msgstr "" + +-#: src/lsz.c:2278 ++#: src/lsz.c:2277 + #, c-format + msgid "calc_blklen: blklen %d, ok %ld, failed %ld -> %lu\n" + msgstr "" + +-#: src/lsz.c:2290 ++#: src/lsz.c:2289 + #, c-format + msgid "calc_blklen: returned %d as best\n" + msgstr "" + +-#: src/lsz.c:2486 ++#: src/lsz.c:2485 + #, c-format + msgid "" + "\n" +@@ -444,7 +444,7 @@ + msgid "Sender Canceled" + msgstr "" + +-#: src/lrz.c:1002 src/zm.c:586 src/zm.c:645 ++#: src/lrz.c:1001 src/zm.c:586 src/zm.c:645 + msgid "TIMEOUT" + msgstr "" + +@@ -470,40 +470,40 @@ + msgid "Retry %d: " + msgstr "" + +-#: src/lrz.c:382 ++#: src/lrz.c:381 + msgid "don't have settimeofday, will not set time\n" + msgstr "" + +-#: src/lrz.c:386 ++#: src/lrz.c:385 + msgid "not running as root (this is good!), can not set time\n" + msgstr "" + +-#: src/lrz.c:441 ++#: src/lrz.c:440 + msgid "bytes_per_error" + msgstr "" + +-#: src/lrz.c:443 ++#: src/lrz.c:442 + msgid "bytes-per-error should be >100" + msgstr "" + +-#: src/lrz.c:455 ++#: src/lrz.c:454 + msgid "O_SYNC not supported by the kernel" + msgstr "" + +-#: src/lrz.c:497 src/lrz.c:499 ++#: src/lrz.c:496 src/lrz.c:498 + msgid "garbage on commandline" + msgstr "" + +-#: src/lrz.c:604 ++#: src/lrz.c:603 + #, c-format + msgid "Usage: %s [options] [filename.if.xmodem]\n" + msgstr "" + +-#: src/lrz.c:605 ++#: src/lrz.c:604 + msgid "Receive files with ZMODEM/YMODEM/XMODEM protocol\n" + msgstr "" + +-#: src/lrz.c:612 ++#: src/lrz.c:611 + msgid "" + " -+, --append append to existing files\n" + " -a, --ascii ASCII transfer (change CR/LF to LF)\n" +@@ -543,152 +543,152 @@ + "short options use the same arguments as the long ones\n" + msgstr "" + +-#: src/lrz.c:676 ++#: src/lrz.c:675 + #, c-format + msgid "%s waiting to receive." + msgstr "" + +-#: src/lrz.c:730 src/lrz.c:1806 ++#: src/lrz.c:729 src/lrz.c:1805 + #, c-format + msgid "\rBytes received: %7ld/%7ld BPS:%-6ld \r\n" + msgstr "" + +-#: src/lrz.c:772 ++#: src/lrz.c:771 + #, c-format + msgid "%s: ready to receive %s" + msgstr "" + +-#: src/lrz.c:799 ++#: src/lrz.c:798 + #, c-format + msgid "\rBytes received: %7ld BPS:%-6ld \r\n" + msgstr "" + +-#: src/lrz.c:825 ++#: src/lrz.c:824 + #, c-format + msgid "" + "\r\n" + "%s: %s removed.\r\n" + msgstr "" + +-#: src/lrz.c:856 ++#: src/lrz.c:855 + msgid "Pathname fetch returned EOT" + msgstr "" + +-#: src/lrz.c:903 ++#: src/lrz.c:902 + msgid "Received dup Sector" + msgstr "" + +-#: src/lrz.c:917 ++#: src/lrz.c:916 + msgid "Sync Error" + msgstr "" + +-#: src/lrz.c:965 ++#: src/lrz.c:964 + msgid "CRC" + msgstr "" + +-#: src/lrz.c:976 ++#: src/lrz.c:975 + msgid "Checksum" + msgstr "" + +-#: src/lrz.c:979 ++#: src/lrz.c:978 + msgid "Sector number garbled" + msgstr "" + +-#: src/lrz.c:991 ++#: src/lrz.c:990 + msgid "Sender Cancelled" + msgstr "" + +-#: src/lrz.c:1005 ++#: src/lrz.c:1004 + #, c-format + msgid "Got 0%o sector header" + msgstr "" + +-#: src/lrz.c:1113 ++#: src/lrz.c:1112 + #, c-format + msgid "file name ends with a /, skipped: %s\n" + msgstr "" + +-#: src/lrz.c:1127 ++#: src/lrz.c:1126 + #, c-format + msgid "zmanag=%d, Lzmanag=%d\n" + msgstr "" + +-#: src/lrz.c:1128 ++#: src/lrz.c:1127 + #, c-format + msgid "zconv=%d\n" + msgstr "" + +-#: src/lrz.c:1192 src/lrz.c:1226 ++#: src/lrz.c:1191 src/lrz.c:1225 + #, c-format + msgid "file exists, skipped: %s\n" + msgstr "" + +-#: src/lrz.c:1267 ++#: src/lrz.c:1266 + #, c-format + msgid "TIMESYNC: here %ld, remote %ld, diff %ld seconds\n" + msgstr "" + +-#: src/lrz.c:1276 ++#: src/lrz.c:1275 + #, c-format + msgid "TIMESYNC: cannot set time: %s\n" + msgstr "" + +-#: src/lrz.c:1296 ++#: src/lrz.c:1295 + msgid "Topipe" + msgstr "" + +-#: src/lrz.c:1314 ++#: src/lrz.c:1313 + #, c-format + msgid "Receiving: %s\n" + msgstr "" + +-#: src/lrz.c:1545 ++#: src/lrz.c:1544 + #, c-format + msgid "Blocks received: %d" + msgstr "" + +-#: src/lrz.c:1599 ++#: src/lrz.c:1598 + #, c-format + msgid "%s: %s exists\n" + msgstr "" + +-#: src/lrz.c:1612 src/lrz.c:1620 ++#: src/lrz.c:1611 src/lrz.c:1619 + #, c-format + msgid "%s:\tSecurity Violation" + msgstr "" + +-#: src/lrz.c:1730 ++#: src/lrz.c:1729 + msgid "remote command execution requested" + msgstr "" + +-#: src/lrz.c:1737 ++#: src/lrz.c:1736 + msgid "not executed" + msgstr "" + +-#: src/lrz.c:1768 ++#: src/lrz.c:1767 + msgid "got ZRINIT" + msgstr "" + +-#: src/lrz.c:1817 ++#: src/lrz.c:1816 + msgid "Skipped" + msgstr "" + + #. too bad +-#: src/lrz.c:2049 ++#: src/lrz.c:2048 + #, c-format + msgid "rzfile: bps rate %ld below min %ld" + msgstr "" + + #. too bad +-#: src/lrz.c:2064 ++#: src/lrz.c:2063 + msgid "rzfile: reached stop time" + msgstr "" + +-#: src/lrz.c:2071 ++#: src/lrz.c:2070 + #, c-format + msgid "\rBytes received: %7ld/%7ld BPS:%-6ld ETA %02d:%02d " + msgstr "" + +-#: src/lrz.c:2215 ++#: src/lrz.c:2214 + msgid "file close error" + msgstr "" +--- lrzsz-0.12.21.orig/src/Makefile.in ++++ lrzsz-0.12.21/src/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -45,10 +45,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -132,7 +131,7 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + DEP_FILES = .deps/canit.P .deps/crctab.P .deps/lrz.P .deps/lsyslog.P \ + .deps/lsz.P .deps/protname.P .deps/rbsb.P .deps/tcp.P .deps/timing.P \ +@@ -167,8 +166,8 @@ + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ +- echo " $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ +- $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ ++ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +@@ -292,7 +291,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -353,7 +352,7 @@ + all-am: Makefile $(ANSI2KNR) $(PROGRAMS) $(HEADERS) + all-redirect: all-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + +--- lrzsz-0.12.21.orig/src/lrz.c ++++ lrzsz-0.12.21/src/lrz.c +@@ -44,7 +44,6 @@ + #ifndef STRICT_PROTOTYPES + extern time_t time(); + extern char *strerror(); +-extern char *strstr(); + #endif + + #ifndef HAVE_ERRNO_DECLARATION +--- lrzsz-0.12.21.orig/src/lsz.c ++++ lrzsz-0.12.21/src/lsz.c +@@ -53,7 +53,6 @@ + #ifndef STRICT_PROTOTYPES + extern time_t time(); + extern char *strerror(); +-extern char *strstr(); + #endif + + #ifndef HAVE_ERRNO_DECLARATION +--- lrzsz-0.12.21.orig/testsuite/Makefile.in ++++ lrzsz-0.12.21/testsuite/Makefile.in +@@ -1,4 +1,4 @@ +-# Makefile.in generated automatically by automake 1.4a from Makefile.am ++# Makefile.in generated automatically by automake 1.4 from Makefile.am + + # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation +@@ -46,10 +46,9 @@ + AUTOHEADER = @AUTOHEADER@ + + INSTALL = @INSTALL@ +-INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ +-INSTALL_STRIP_FLAG = + transform = @program_transform_name@ + + NORMAL_INSTALL = : +@@ -103,7 +102,7 @@ + DIST_COMMON = Makefile.am Makefile.in + + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + EXPECT = expect + RUNTEST = runtest +@@ -133,7 +132,7 @@ + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +- cp -pr $$d/$$file $(distdir)/$$file; \ ++ cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ +@@ -192,7 +191,7 @@ + all-am: Makefile + all-redirect: all-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install + installdirs: + + diff --git a/source/a/minicom/minicom.SlackBuild b/source/a/minicom/minicom.SlackBuild new file mode 100755 index 000000000..c9249f64b --- /dev/null +++ b/source/a/minicom/minicom.SlackBuild @@ -0,0 +1,134 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-minicom + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# minicom +cd $TMP +rm -rf minicom-$VERSION +tar xzvf $CWD/minicom-$VERSION.tar.gz +cd minicom-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +# Fix re-declaration of BC in termcap.h +zcat $CWD/wintcap.diff.gz | patch -p1 --verbose || exit 1 +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc +make -j3 +make install DESTDIR=$PKG +mkdir -p $PKG/etc +zcat $CWD/minicom.users.gz > $PKG/etc/minicom.users.new +zcat $CWD/minirc.dfl.gz > $PKG/etc/minirc.dfl.new +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/usr/doc/minicom-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog FILE_ID.DIZ INSTALL NEWS README TODO \ + doc \ + $PKG/usr/doc/minicom-$VERSION + +# lzrz +# If autoconf causes failure here (which it probably will), +# remove it temporarily and the build should work fine... +cd $TMP +tar xzvf $CWD/lrzsz_0.12.21.orig.tar.gz +cd lrzsz-990823 +# Make x86_64 a valid machine type (thanks to Fred Emmott) +zcat $CWD/config.sub-x86_64.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/lrzsz_0.12.21-4.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make -j3 +cd src +cat lrz > $PKG/usr/bin/lrz +cat lsz > $PKG/usr/bin/lsz +chmod 755 $PKG/usr/bin/l*z +cd ../man +for page in lrz.1 lsz.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +echo '.so man1/lrz.1' | gzip -9c > $PKG/usr/man/man1/rz.1.gz +echo '.so man1/lsz.1' | gzip -9c > $PKG/usr/man/man1/sz.1.gz +cd ../po +mkdir -p $PKG/usr/share/locale/de/LC_MESSAGES +cat de.gmo > $PKG/usr/share/locale/de/LC_MESSAGES/lrzsz.mo +cd .. +mkdir -p $PKG/usr/doc/lrzsz-0.12.21 +cp -a ABOUT-NLS AUTHORS COMPATABILITY COPYING INSTALL NEWS README-alpha \ + README.cvs README.gettext README.isdn4linux README.systems \ + README.tests THANKS TODO $PKG/usr/doc/lrzsz-0.12.21 + + +( cd $PKG + ( cd usr/bin ; rm -rf rx ) + ( cd usr/bin ; ln -sf rz rx ) + ( cd usr/bin ; rm -rf rb ) + ( cd usr/bin ; ln -sf rz rb ) + ( cd usr/bin ; rm -rf sb ) + ( cd usr/bin ; ln -sf sz sb ) + ( cd usr/bin ; rm -rf sx ) + ( cd usr/bin ; ln -sf sz sx ) + ( cd usr/bin ; rm -rf rz ) + ( cd usr/bin ; ln -sf lrz rz ) + ( cd usr/bin ; rm -rf lrb ) + ( cd usr/bin ; ln -sf lrz lrb ) + ( cd usr/bin ; rm -rf lrx ) + ( cd usr/bin ; ln -sf lrz lrx ) + ( cd usr/bin ; rm -rf sz ) + ( cd usr/bin ; ln -sf lsz sz ) + ( cd usr/bin ; rm -rf lsb ) + ( cd usr/bin ; ln -sf lsz lsb ) + ( cd usr/bin ; rm -rf lrx ) + ( cd usr/bin ; ln -sf lsz lrx ) + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + + +cd $PKG +makepkg -l y -c n $TMP/minicom-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/minicom/minicom.users b/source/a/minicom/minicom.users new file mode 100644 index 000000000..509d86f41 --- /dev/null +++ b/source/a/minicom/minicom.users @@ -0,0 +1,36 @@ +# $Id: minicom.users,v 1.1.1.1 1999/12/18 11:18:51 misiek Exp $ +# Minicom.users Access file for the minicom program. +# +# Format: Either just one username per line, or +# a username followed by one or more +# configuration-names. The name of the +# default configuration is "dfl". The maximum +# significant line length is 70 characters. +# +# Location: The minicom library directory, probably +# /etc or /var/lib/minicom or whatever. +# +# Notes: If you don't install this file in the +# specified location, everybody will have +# access to minicom. +# +# This doesn't matter if minicom isn't installed +# setuid root since access will then be based +# on the permissions set on the serial port. +# + +# +# Who may use minicom? +# +# User [line] [..line] +# + +# Everyone has access to all configurations. +ALL + +## The rest are examples. +## # Erik only has access to the default configuration +## erik dfl +## +## # minicom has access to the default configuration, and configuration 'tty5'. +## minicom dfl tty5 diff --git a/source/a/minicom/minirc.dfl b/source/a/minicom/minirc.dfl new file mode 100644 index 000000000..42e9d8fe4 --- /dev/null +++ b/source/a/minicom/minirc.dfl @@ -0,0 +1 @@ +# Machine-generated file - use "minicom -s" to change parameters. diff --git a/source/a/minicom/slack-desc b/source/a/minicom/slack-desc new file mode 100644 index 000000000..67d1878c9 --- /dev/null +++ b/source/a/minicom/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +minicom: minicom (communications package) +minicom: +minicom: Minicom - a full featured menu-driven communications package similar +minicom: to the DOS program 'Telix'. Also includes sz/rz - utilities used to +minicom: upload and download files using the Zmodem protocol. +minicom: +minicom: +minicom: +minicom: +minicom: +minicom: diff --git a/source/a/minicom/wintcap.diff b/source/a/minicom/wintcap.diff new file mode 100644 index 000000000..40d005b3f --- /dev/null +++ b/source/a/minicom/wintcap.diff @@ -0,0 +1,44 @@ +--- minicom-2.1/src/window.c.orig 2003-05-17 00:06:26.000000000 +0400 ++++ minicom-2.1/src/window.c 2007-08-26 11:21:04.000000000 +0400 +@@ -62,7 +62,7 @@ + static char *CS, *SF, *SR, *VB, *BL; + static char *VE, *VI, *KS, *KE; + static char *CD, *CL, *IC, *DC; +-static char *BC, *CR, *NL; ++static char *BCs, *CR, *NL; + #if ST_LINE + static char *TS, *FS, *DS; + #endif +@@ -322,8 +322,8 @@ + else if (NL != CNULL && x == 0 && x == curx && y == cury + 1) + outstr(NL); + #endif +- else if (BC != CNULL && y == cury && x == curx - 1) +- outstr(BC); ++ else if (BCs != CNULL && y == cury && x == curx - 1) ++ outstr(BCs); + else + outstr(tgoto(CM, x, y)); + curx = x; +@@ -1918,7 +1918,7 @@ + CL = tgetstr("cl", &_tptr); + IC = tgetstr("ic", &_tptr); + DC = tgetstr("dc", &_tptr); +- BC = tgetstr("bc", &_tptr); ++ BCs = tgetstr("bc", &_tptr); + CR = tgetstr("cr", &_tptr); + NL = tgetstr("nl", &_tptr); + AC = tgetstr("ac", &_tptr); +@@ -1967,10 +1967,10 @@ + _has_am = tgetflag("am"); + _mv_standout = tgetflag("ms"); + if (tgetflag("bs")) { +- if (BC == CNULL) BC = "\b"; ++ if (BCs == CNULL) BCs = "\b"; + } + else +- BC = CNULL; ++ BCs = CNULL; + + /* Special IBM box-drawing characters */ + D_UL = 201; diff --git a/source/a/mkinitrd/README.initrd b/source/a/mkinitrd/README.initrd new file mode 100644 index 000000000..f027fa276 --- /dev/null +++ b/source/a/mkinitrd/README.initrd @@ -0,0 +1,100 @@ + +Slackware initrd mini HOWTO +by Patrick Volkerding, volkerdi@slackware.com +Wed Jun 17 01:49:18 CDT 2009 + +This document describes how to create and install an initrd, which may be +required to use the 2.6 kernel. Also see "man mkinitrd". + +1. What is an initrd? +2. Why to I need an initrd? +3. How do I build the initrd? +4. Now that I've built an initrd, how do I use it? + + +1. What is an initrd? + +Initrd stands for "initial ramdisk". An initial ramdisk is a very small +Linux filesystem that is loaded into RAM and mounted as the kernel boots, +and before the main root filesystem is mounted. + +2. Why do I need an initrd? + +The usual reason to use an initrd is because you need to load kernel +modules before mounting the root partition. Usually these modules are +required to support the filesystem used by the root partition (ext3, +reiserfs, xfs), or perhaps the controller that the hard drive is attached +to (SCSI, RAID, etc). Essentially, there are so many different options +available in modern Linux kernels that it isn't practical to try to ship +many different kernels to try to cover everyone's needs. It's a lot more +flexible to ship a generic kernel and a set of kernel modules for it. + +3. How do I build the initrd? + +The easiest way to make the initrd is to use the mkinitrd script included +in Slackware's mkinitrd package. We'll walk through the process of +upgrading to the generic 2.6.29.5 Linux kernel using the packages +found in Slackware's slackware/a/ directory. + +First, make sure the kernel, kernel modules, and mkinitrd package are +installed (the current version numbers might be a little different, so +this is just an example): + + installpkg kernel-generic-2.6.29.5-i686-1.tgz + installpkg kernel-modules-2.6.29.5-i686-1.tgz + installpkg mkinitrd-1.1.0-i486-1.tgz + +Change into the /boot directory: + + cd /boot + +Now you'll want to run "mkinitrd". I'm using reiserfs for my root +filesystem, and since it's an IDE system the reiserfs module will be +the only one I need to load: + + mkinitrd -c -k 2.6.29.5 -m reiserfs + +This should do two things. First, it will create a directory +/boot/initrd-tree containing the initrd's filesystem. Then it will +create an initrd (/boot/initrd.gz) from this tree. If you wanted to, +you could make some additional changes in /boot/initrd-tree/ and +then run mkinitrd again without options to rebuild the image. That's +optional, though, and only advanced users will need to think about that. + +Here's another example: Build an initrd image using Linux 2.6.29.5 +kernel modules for a system with an ext3 root partition on /dev/hdb3. +Note that you need the mbcache, jbd, and ext3 modules to use ext3: + + mkinitrd -c -k 2.6.29.5 -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3 + + +4. Now that I've built an initrd, how do I use it? + +Now that you've got an initrd (/boot/initrd.gz), you'll want to load +it along with the kernel at boot time. If you use LILO for your boot +loader you'll need to edit /etc/lilo.conf and add a line to load the +initrd. Here's an example section of lilo.conf showing how this is +done: + +# Linux bootable partition config begins +image = /boot/vmlinuz-generic-2.6.29.5 + initrd = /boot/initrd.gz + root = /dev/hda6 + label = Lnx26295 + read-only +# Linux bootable partition config ends + +The initrd is loaded by the "initrd = /boot/initrd.gz" line. +Just add the line right below the line for the kernel image you use. +Save the file, and then run LILO again ('lilo' at the command line). +You'll need to run lilo every time you edit lilo.conf or rebuild the +initrd. + +Other bootloaders such as syslinux also support the use of an initrd. +See the documentation for those programs for details on using an +initrd with them. + + +--------- + +Have fun! diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff b/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff new file mode 100644 index 000000000..e4f64367c --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff @@ -0,0 +1,11 @@ +--- ./Makefile.orig 2007-09-29 18:54:25.000000000 -0500 ++++ ./Makefile 2007-11-27 15:35:42.000000000 -0600 +@@ -570,7 +570,7 @@ + quiet_cmd_busybox__ ?= LINK $@ + cmd_busybox__ ?= $(srctree)/scripts/trylink $(CC) $(LDFLAGS) \ + -o $@ -Wl,-Map -Wl,$@.map \ +- -Wl,--warn-common -Wl,--sort-common -Wl,--gc-sections \ ++ -Wl,--warn-common -Wl,--sort-common \ + -Wl,--start-group $(busybox-all) -Wl,--end-group \ + $(LDLIBS) + diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff b/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff new file mode 100644 index 000000000..99257fc76 --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff @@ -0,0 +1,20 @@ +--- ./applets/applets.c.orig 2007-09-16 13:48:10.000000000 -0500 ++++ ./applets/applets.c 2007-10-04 22:07:47.000000000 -0500 +@@ -16,7 +16,7 @@ + #include "busybox.h" + + /* Apparently uclibc defines __GLIBC__ (compat trick?). Oh well. */ +-#if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__) ++/* #if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__) + #warning Static linking against glibc produces buggy executables + #warning (glibc does not cope well with ld --gc-sections). + #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400 +@@ -24,7 +24,7 @@ + #warning If you still want to do it, remove -Wl,--gc-sections + #warning from top-level Makefile and remove this warning. + #error Aborting compilation. +-#endif ++#endif */ + + + /* Declare <applet>_main() */ diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign b/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign new file mode 100644 index 000000000..19ac2fabe --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign @@ -0,0 +1,18 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +busybox-1.7.2.tar.bz2 released Sun, 30 Sep 2007 01:02:10 +0100 + +MD5: c91ec9756e2000073a9dd8fa9fc3f89e busybox-1.7.2.tar.bz2 +SHA1: d9c618a7b104af4e70d623b1b6f3bc454405e12b busybox-1.7.2.tar.bz2 + +To verify this signature, you can obtain my public key +from http://busybox.net/~vda/vda_pubkey.gpg + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.2.2 (GNU/Linux) + +iD8DBQFG/ueHR7cMVazJllsRAuBAAJ9r7SuXFQJCm/k0KZp39oDMsqBy7ACffZ9t +r/kwDWTYEr7doIKcNINt+p0= +=GHTs +-----END PGP SIGNATURE----- diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.11.2 b/source/a/mkinitrd/archive/busybox-dot-config.1.11.2 new file mode 100644 index 000000000..012350efa --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-dot-config.1.11.2 @@ -0,0 +1,855 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.11.2 +# Tue Sep 23 23:25:46 2008 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +# CONFIG_FEATURE_RPM_BZ2 is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_GZIP=y +CONFIG_FEATURE_TAR_BZIP2=y +CONFIG_FEATURE_TAR_LZMA=y +CONFIG_FEATURE_TAR_COMPRESS=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Common options for cpio and tar +# +# CONFIG_FEATURE_DEB_TAR_GZ is not set +# CONFIG_FEATURE_DEB_TAR_BZ2 is not set +# CONFIG_FEATURE_DEB_TAR_LZMA is not set + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +CONFIG_DEPMOD=y +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +CONFIG_FEATURE_DEPMOD_ALIAS=y +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +# CONFIG_FINDFS is not set +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_READPROFILE=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +CONFIG_INOTIFYD=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_SMALL=y +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +CONFIG_LPR=y +# CONFIG_LPQ is not set diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.12.0 b/source/a/mkinitrd/archive/busybox-dot-config.1.12.0 new file mode 100644 index 000000000..b462fe9a1 --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-dot-config.1.12.0 @@ -0,0 +1,857 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.12.0 +# Thu Sep 25 12:38:54 2008 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y +# CONFIG_PARSE is not set + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +# CONFIG_FEATURE_FLOAT_SLEEP is not set +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETFONT=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_DEPMOD=y +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +CONFIG_FEATURE_DEPMOD_ALIAS=y +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +# CONFIG_FINDFS is not set +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +CONFIG_INOTIFYD=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_SMALL=y +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +CONFIG_LPR=y +# CONFIG_LPQ is not set diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.12.1 b/source/a/mkinitrd/archive/busybox-dot-config.1.12.1 new file mode 100644 index 000000000..5987e0503 --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-dot-config.1.12.1 @@ -0,0 +1,857 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.12.1 +# Fri Nov 7 10:20:30 2008 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y +# CONFIG_PARSE is not set + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +# CONFIG_FEATURE_FLOAT_SLEEP is not set +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETFONT=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_DEPMOD=y +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +CONFIG_FEATURE_DEPMOD_ALIAS=y +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +CONFIG_INOTIFYD=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_SMALL=y +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +CONFIG_LPR=y +# CONFIG_LPQ is not set diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.7.2 b/source/a/mkinitrd/archive/busybox-dot-config.1.7.2 new file mode 100644 index 000000000..5b9c00b45 --- /dev/null +++ b/source/a/mkinitrd/archive/busybox-dot-config.1.7.2 @@ -0,0 +1,753 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.7.2 +# Thu Oct 4 22:03:29 2007 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_NITPICK=y +CONFIG_DESKTOP=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_BUILD_AT_ONCE=y + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_FANCY_KEYS=y +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_CPIO=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +# CONFIG_FEATURE_RPM_BZ2 is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_BZIP2=y +CONFIG_FEATURE_TAR_LZMA=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_GZIP=y +CONFIG_FEATURE_TAR_COMPRESS=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Common options for cpio and tar +# +CONFIG_FEATURE_UNARCHIVE_TAPE=y +# CONFIG_FEATURE_DEB_TAR_GZ is not set +# CONFIG_FEATURE_DEB_TAR_BZ2 is not set +# CONFIG_FEATURE_DEB_TAR_LZMA is not set + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_SHADOW is not set +# CONFIG_USE_BB_PWD_GRP is not set +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_ADDUSER=y +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_READPROFILE=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_LAST=y +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_STRINGS=y +CONFIG_SETSID=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_PSCAN=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_ROUTE=y +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_LASH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set + +# +# ipsvd utilities +# +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y diff --git a/source/a/mkinitrd/busybox-1.12.1_inotify.diff b/source/a/mkinitrd/busybox-1.12.1_inotify.diff new file mode 100644 index 000000000..151d16ce9 --- /dev/null +++ b/source/a/mkinitrd/busybox-1.12.1_inotify.diff @@ -0,0 +1,11 @@ +--- busybox-1.12.1.orig/miscutils/inotifyd.c 2008-11-07 01:39:21.000000000 +0000 ++++ busybox-1.12.1/miscutils/inotifyd.c 2008-11-07 01:37:05.000000000 +0000 +@@ -28,7 +28,7 @@ + */ + + #include "libbb.h" +-#include <linux/inotify.h> ++#include <sys/inotify.h> + + static volatile smallint signalled; + diff --git a/source/a/mkinitrd/busybox-dot-config b/source/a/mkinitrd/busybox-dot-config new file mode 100644 index 000000000..5987e0503 --- /dev/null +++ b/source/a/mkinitrd/busybox-dot-config @@ -0,0 +1,857 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.12.1 +# Fri Nov 7 10:20:30 2008 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +CONFIG_STATIC=y +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y +# CONFIG_PARSE is not set + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +CONFIG_GUNZIP=y +CONFIG_GZIP=y +CONFIG_RPM2CPIO=y +# CONFIG_RPM is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_UNCOMPRESS=y +CONFIG_UNLZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +CONFIG_EXPAND=y +CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHA1SUM=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +# CONFIG_FEATURE_FLOAT_SLEEP is not set +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNEXPAND=y +CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNIQ=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_UUENCODE=y +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +CONFIG_SETFONT=y +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +CONFIG_FEATURE_RUN_PARTS_FANCY=y +CONFIG_START_STOP_DAEMON=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y +CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_GREP=y +CONFIG_FEATURE_GREP_EGREP_ALIAS=y +CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +CONFIG_GETTY=y +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +CONFIG_LOGIN=y +# CONFIG_PAM is not set +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_CRYPTPW=y +CONFIG_CHPASSWD=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_SULOGIN=y +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +CONFIG_CHATTR=y +CONFIG_FSCK=y +CONFIG_LSATTR=y + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_DEPMOD=y +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +CONFIG_FEATURE_DEPMOD_ALIAS=y +CONFIG_INSMOD=y +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_RMMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y +CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y + +# +# Options common to multiple modutils +# +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_2_4_MODULES=y +CONFIG_FEATURE_2_6_MODULES=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FREERAMDISK=y +CONFIG_FSCK_MINIX=y +CONFIG_MKFS_MINIX=y + +# +# Minix filesystem support +# +CONFIG_FEATURE_MINIX2=y +CONFIG_GETOPT=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_V0=y +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +CONFIG_FEATURE_VOLUMEID_HFS=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_XFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_ROMFS=y +CONFIG_FEATURE_VOLUMEID_SYSV=y +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_RTCWAKE=y +CONFIG_SCRIPT=y +CONFIG_SETARCH=y +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MTAB_SUPPORT=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_CHAT=y +CONFIG_FEATURE_CHAT_NOFAIL=y +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +CONFIG_FEATURE_CHAT_IMPLICIT_CR=y +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +CONFIG_CHRT=y +CONFIG_CROND=y +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +CONFIG_CRONTAB=y +CONFIG_DC=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +CONFIG_INOTIFYD=y +CONFIG_LAST=y +CONFIG_FEATURE_LAST_SMALL=y +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_HDPARM=y +CONFIG_FEATURE_HDPARM_GET_IDENTITY=y +CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y +CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y +CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y +CONFIG_MAKEDEVS=y +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +CONFIG_FEATURE_MAKEDEVS_TABLE=y +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +CONFIG_MOUNTPOINT=y +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RUNLEVEL=y +CONFIG_RX=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_TIME=y +CONFIG_TTYSIZE=y +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FAKEIDENTD=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y +# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +CONFIG_LOGGER=y + +# +# Runit Utilities +# +CONFIG_RUNSV=y +CONFIG_RUNSVDIR=y +CONFIG_SV=y +CONFIG_SVLOGD=y +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +CONFIG_LPR=y +# CONFIG_LPQ is not set diff --git a/source/a/mkinitrd/init b/source/a/mkinitrd/init new file mode 100755 index 000000000..0559932e9 --- /dev/null +++ b/source/a/mkinitrd/init @@ -0,0 +1,230 @@ +#!/bin/ash +# +# /init: init script to load kernel modules from an initramfs +# This requires that your kernel supports initramfs!!! +# +# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2007, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# With a generic kernel, you need to load the modules needed to mount the +# root partition. This might mean a SCSI, RAID, or other drive controller +# module, as well as the module to support the root filesystem. Once the +# root partition is mounted all the other modules will be available so you +# don't need to load them here. +# +# Config files used by this script: +# +# /rootdev Contains the name of the root device, such as: /dev/hda1 +# +# /rootfs Contains the root filesystem type, such as: xfs +# +# /initrd-name Contains the name of the initrd file. +# +# Optional: +# /load_kernel_modules A script that uses insmod to load the desired +# modules. If this file is not present, all the modules +# in /lib/modules/`uname -r`/ will be loaded in the usual +# sorted order. If you need to load the modules in a +# certain order, or if the modules need extra options, +# then use a load_kernel_modules script. +# +# There's an example in here. To actually use it, you'll +# need to make it executable: +# +# chmod 755 load_kernel_modules + +INITRD=`cat /initrd-name` +ROOTDEV=`cat /rootdev` +ROOTFS=`cat /rootfs` +LUKSDEV=`cat /luksdev` +RESUMEDEV=`cat /resumedev` +WAIT=`cat /wait-for-root` +KEYMAP=`cat /keymap` + +# Mount /proc and /sys: +mount -n proc /proc -t proc +mount -n sysfs /sys -t sysfs + +# Parse command line +for ARG in `cat /proc/cmdline`; do + case $ARG in + rescue) + RESCUE=1 + ;; + root=/dev/*) + ROOTDEV=`echo $ARG | cut -f2 -d=` + ;; + rootfs=*) + ROOTFS=`echo $ARG | cut -f2 -d=` + ;; + luksdev=/dev/*) + LUKSDEV=`echo $ARG | cut -f2 -d=` + ;; + waitforroot=*) + WAIT=`echo $ARG | cut -f2 -d=` + ;; + root=LABEL=*) + ROOTDEV=`echo $ARG | cut -f2- -d=` + ;; + resume=*) + RESUMEDEV=`echo $ARG | cut -f2 -d=` + ;; + 0|1|2|3|4|5|6) + RUNLEVEL=$ARG + ;; + esac +done + +# Load kernel modules: +if [ ! -d /lib/modules/`uname -r` ]; then + echo "No kernel modules found for Linux `uname -r`." +elif [ -x ./load_kernel_modules ]; then # use load_kernel_modules script: + echo "${INITRD}: Loading kernel modules from initrd image:" + . ./load_kernel_modules +else # load modules (if any) in order: + if ls /lib/modules/`uname -r`/*.*o 1> /dev/null 2> /dev/null ; then + echo "${INITRD}: Loading kernel modules from initrd image:" + for module in /lib/modules/`uname -r`/*.*o ; do + insmod $module + done + unset module + fi +fi + +# Sometimes the devices needs extra time to be available. +# root on USB are good example of that. +sleep $WAIT + +# If udevd is available, use it to generate block devices +# else use mdev to read sysfs and generate the needed devices +if [ -x /sbin/udevd -a -x /sbin/udevadm ]; then + /sbin/udevd --daemon + /sbin/udevadm trigger --subsystem-match=block + /sbin/udevadm settle --timeout=10 +else + mdev -s +fi + +# Load a custom keyboard mapping: +if [ -n "$KEYMAP" ]; then + echo "${INITRD}: Loading '$KEYMAP' keyboard mapping:" + tar xzOf /etc/keymaps.tar.gz ${KEYMAP}.bmap | loadkmap +fi + +if [ "$RESCUE" = "" ]; then + # Initialize RAID: + if [ -x /sbin/mdadm ]; then + /sbin/mdadm -E -s >/etc/mdadm.conf + /sbin/mdadm -A -s + fi + + # Find root device if a label was given: + if echo $ROOTDEV | grep -q "LABEL=" ; then + ROOTDEV=`findfs $ROOTDEV` + fi + + # Make encrypted root partition available: + # The useable device will be under /dev/mapper/ + # Three scenarios for the commandline exist: + # 1- ROOTDEV is on a LUKS volume, and LUKSDEV is a real block device + # 2- ROOTDEV is on a LVM volume, and LUKSDEV is a real block device + # 3- ROOTDEV is on a LUKS volume, and LUKSDEV is on a LVM volume + # Case (3) will have to wait until we initialize the LVM. + # Test if ROOTDEV is "/dev/someting" or just "something" - the first means + # ROOTDEV is on a LVM volume (scenario 2); we don't need to rewrite ROOTDEV. + # The second means that ROOTDEV is on a LUKS volume (scenario 1). + CRYPTDEV="" + if [ -x /sbin/cryptsetup ]; then + # If we find a LUKS device now, it is on a real block device: + if /sbin/cryptsetup isLuks ${LUKSDEV} 1>/dev/null 2>/dev/null ; then + CRYPTDEV=$(basename $ROOTDEV) + echo "Unlocking LUKS crypt volume '${CRYPTDEV}' on device '$LUKSDEV':" + /sbin/cryptsetup luksOpen ${LUKSDEV} $CRYPTDEV </dev/systty >/dev/systty 2>&1 + if [ "$CRYPTDEV" == "$ROOTDEV" ]; then # scenario 1 + ROOTDEV="/dev/mapper/${CRYPTDEV}" + fi + fi + fi + + # Initialize LVM: + if [ -x /sbin/vgscan ]; then + /sbin/vgscan --mknodes --ignorelockingfailure + sleep 10 + /sbin/vgchange -ay --ignorelockingfailure + fi + + # Make encrypted root partition available (scenario 3): + # We have to handle cases here where the LUKS volume is created on a LV + if [ -x /sbin/cryptsetup ]; then + if /sbin/cryptsetup isLuks ${LUKSDEV} 1>/dev/null 2>/dev/null ; then + # Only act if we could not open the LUKS device before (i.e. is on a LV): + if [ "x$CRYPTDEV" == "x" ]; then + echo "Unlocking LUKS crypt volume '${ROOTDEV}' on device '$LUKSDEV':" + /sbin/cryptsetup luksOpen ${LUKSDEV} $ROOTDEV </dev/systty >/dev/systty 2>&1 + ROOTDEV="/dev/mapper/${ROOTDEV}" + fi + fi + fi + + # Resume state from swap + if [ "$RESUMEDEV" != "" ]; then + if ls -l $RESUMEDEV | grep -q "^l" ; then + RESUMEDEV=`ls -l $RESUMEDEV | awk '{ print $NF }'` + fi + echo "Trying to resume from $RESUMEDEV" + RESMAJMIN=`ls -l $RESUMEDEV | tr , : | awk '{ print $5$6 }'` + echo $RESMAJMIN > /sys/power/resume + fi + + # Switch to real root partition: + echo 0x0100 > /proc/sys/kernel/real-root-dev + mount -o ro -t $ROOTFS $ROOTDEV /mnt + + if [ ! -r /mnt/sbin/init ]; then + echo "ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead." + echo " You can try to fix it. Type 'exit' when things are done." + echo + /bin/sh + fi +else + echo "RESCUE mode" + echo + echo " You can try to fix or rescue your system now. If you want" + echo " to boot into your fixed system, mount your root filesystem" + echo " read-only under /mnt:" + echo + echo " # mount -o ro -t filesystem root_device /mnt" + echo + echo " Type 'exit' when things are done." + echo + /bin/sh +fi + +if ps axc | grep -q udevd ; then + killall udevd +fi + +unset ERR +umount /proc +umount /sys +echo "${INITRD}: exiting" +exec switch_root /mnt /sbin/init $RUNLEVEL diff --git a/source/a/mkinitrd/mkinitrd b/source/a/mkinitrd/mkinitrd new file mode 100644 index 000000000..8f77725fe --- /dev/null +++ b/source/a/mkinitrd/mkinitrd @@ -0,0 +1,494 @@ +#!/bin/sh +# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2004 Patrick J. Volkerding, Concord, CA, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman <rworkman@slackware.com> 26 November 2007 +# to add support for mkinitrd.conf - No additional license terms added +# Modified by Alan Hicks <alan@slackware.com> 27 November 2007 to enable +# passing arguments to kernel modules - No additional license terms added +# volkerdi - feel free to remove these :) +# Modified by Eric Hameleers <alien@slackware.com> 3 April 2008 +# to add support custom keymaps - No additional license terms added +# Modified by Patrick Volkerding <volkerdi@slackware.com> 17 Dec 2008 +# Added support to bail out if kernel modules are requested for a kernel +# version that is not installed (thanks to Eric Hameleers), be more +# verbose about showing modules added to the initrd (thanks to +# Ellington Santos), and if "mount" returns /dev/root as the root device, +# use readlink to resolve the device pointed to by the /dev/root +# symlink, changed modprobe to use --ignore-install to avoid catching +# custom "install" lines and causing /sbin/modprobe to be copied to the +# initrd (thanks to Ken Milmore). +# Of course, license terms remain unchanged. + +MKINITRD_VERSION=1.3.4 + +print_usage() { + cat << EOF +Usage: mkinitrd [OPTION] + +mkinitrd creates an initial ramdisk (actually an initramfs cpio+gzip +archive) used to load kernel modules that are needed to mount the +root filesystem, or other modules that might be needed before the +root filesystem is available. Other binaries may be added to the +initrd, and the script is easy to modify. Be creative. :-) + + -F Use the contents of /etc/mkinitrd.conf (optional) + If this is used in conjunction with any other options passed + on the command line, the command-line options will override + the config file options. See mkinitrd.conf(5) for details. + -c Clear the existing initrd tree first + -f Filesystem to use for root partition (must be used with -r) + --help Display this message + -h Device to resume from hibernation. Needs to be the name of + the swap partition holding the hibernation image. + -k Kernel version to use + -l Custom keymap to load. Like, 'nl' or 'de-latin1-nodeadkeys' + -m A colon (:) delimited list of kernel modules to load. + Additional options may be added to use when loading the + kernel modules (but in this case the entire list must be + wrapped with double quotes). Any dependencies of requested + modules will also be added to the initrd. + -o Output image (default /boot/initrd.gz) + -r Root partition device (must be used with -f) + -s Initrd source tree (default /boot/initrd-tree/) + -w Time to wait until all disks are detected + -C Use cryptsetup to unlock the underlying device of an + encrypted root filesystem (must be used with '-r' parameter). + Two scenarios are possible. (1) root filesystem was created on the + encrypted disk/LVM partition, example: + -C /dev/sda2 -r cryptroot + where /dev/sda2 is the encrypted partition and + the actual root device name in /etc/fstab is: + /dev/mapper/cryptroot + (2) the encrypted partition contains a LVM volume which holds the + root filesystem, example: + -C /dev/sda2 -r /dev/vg/root + where /dev/sda2 is the encrypted partition and + the actual root device name in /etc/fstab is: + /dev/vg/root + -L Add support for LVM partitions + -R Add support for RAID partitions + -V Display version number + +A simple example: Build an initrd for a reiserfs root partition: + + mkinitrd -c -m reiserfs + +Another example: Build an initrd image using Linux 2.6.29.3-smp kernel +modules for a system with an ext3 root partition on /dev/hdb3: + + mkinitrd -c -k 2.6.29.3-smp -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3 + +Note that if you are already logged in with /dev/hdb3 as your / +partition, and it is running ext3, this command works just the same: + + mkinitrd -c -m ext3 + +If run without options, mkinitrd will rebuild an initrd image using +the contents of the $SOURCE_TREE directory, or, if that directory +does not exist it will be created and populated, and then mkinitrd +will exit. + +EOF +} + +create_new_source_tree() { + mkdir -p $SOURCE_TREE + # Make sure a kernel module directory exists: + mkdir -p $SOURCE_TREE/lib/modules/${KERNEL_VERSION} + # Add the initrd-tree skeleton: + ( cd $SOURCE_TREE ; tar xzf /usr/share/mkinitrd/initrd-tree.tar.gz ) + # Make sure we have any block devices that might be needed: + + SLOPPY_DEV_LIST=$(cat /proc/partitions) + for device in $SLOPPY_DEV_LIST ; do + if [ ! -r $SOURCE_TREE/dev/$device ]; then + if [ -b /dev/$device ]; then + if [ -L /dev/$device ]; then + cp -a --parents $(readlink -e /dev/$device) $SOURCE_TREE + fi + cp -a --parents /dev/$device $SOURCE_TREE + fi + fi + done +} + +clear_source_tree() { + if [ -d "$SOURCE_TREE" ]; then + rm -rf $SOURCE_TREE + fi +} + +build_initrd_image() { + # Make sure we have any block devices that might be needed: + SLOPPY_DEV_LIST=$(cat /proc/partitions) + for device in $SLOPPY_DEV_LIST ; do + if [ ! -r $SOURCE_TREE/dev/$device ]; then + if [ -b /dev/$device ]; then + if [ -L /dev/$device ]; then + cp -a --parents $(readlink -e /dev/$device) $SOURCE_TREE + fi + cp -a --parents /dev/$device $SOURCE_TREE + fi + fi + done + # Wrap the initrd as an initramfs image and move it into place: + ( cd $SOURCE_TREE + rm -f $OUTPUT_IMAGE + find . | cpio -o -H newc | gzip -9c > $OUTPUT_IMAGE + ) +} + +badconf_file() { + # This won't really help with what's *wrong* with the file, + # but it will at least give them a clue that there's a problem + echo "/etc/mkinitrd.conf is bad or does not exist." + echo "If the file does not exist, do not pass -F to mkinitrd." + exit 1 +} + +# If --help is given, print_usage and exit: +if echo $* | grep -wq '\--help' ; then + print_usage + exit 0 +fi + +# If -V given, print version and exit: +if echo $* | grep -wq '\-V' ; then + echo "mkinitrd version $MKINITRD_VERSION" + exit 0 +fi + +# Default values if these aren't previously set. +# Might be set from config file or by -s and -o options too. +SOURCE_TREE=${SOURCE_TREE:-/boot/initrd-tree} +OUTPUT_IMAGE=${OUTPUT_IMAGE:-/boot/initrd.gz} +KERNEL_VERSION=${KERNEL_VERSION:-"$(uname -r)"} + +# Default actions without options: +if [ -z "$1" ]; then + # If the output tree doesn't exist, create it and then exit: + if [ ! -d $SOURCE_TREE ]; then + echo "Nothing found at location $SOURCE_TREE, so we will create an" + echo -n "initrd directory structure there... " + create_new_source_tree + echo "done." + echo + echo "Now cd to $SOURCE_TREE and install some modules in your" + echo "module directory (lib/modules/${KERNEL_VERSION}). Then see init" + echo "for more information (there are a few other files to edit)." + echo "Finally, run mkinitrd again once the initrd-tree is ready," + echo "and $OUTPUT_IMAGE will be created from it." + echo + exit 0 + else + # If the source tree does exist, the default is to build the initrd + # image from it and then exit: + build_initrd_image + echo "$OUTPUT_IMAGE created." + echo "Be sure to run lilo again if you use it." + exit 0 + fi +fi # default no-option actions + +# Parse for the use config file option first or else the other command +# line options can not override /etc/mkinitrd.conf. +for opt in "$@"; do + if [ $opt = "-F" ]; then + if [ -e /etc/mkinitrd.conf ]; then + . /etc/mkinitrd.conf || badconf_file + else + badconf_file + fi + fi +done + +# Parse options: +while [ ! -z "$1" ]; do + case $1 in + -c) + CLEAR_TREE=1 + shift + ;; + -f) + ROOTFS="$2" + shift 2 + ;; + -h) + RESUMEDEV="$2" + shift 2 + ;; + -k) + KERNEL_VERSION="$2" + shift 2 + ;; + -l) + KEYMAP="$2" + shift 2 + ;; + -m) + MODULE_LIST="$2" + shift 2 + ;; + -o) + OUTPUT_IMAGE="$2" + if [ ! "$(echo $OUTPUT_IMAGE | cut -b1)" = "/" ]; then + OUTPUT_IMAGE=$(pwd)/$OUTPUT_IMAGE + fi + shift 2 + ;; + -r) + ROOTDEV="$2" + shift 2 + ;; + -s) + SOURCE_TREE="$2" + shift 2 + ;; + -w) + WAIT="$2" + shift 2 + ;; + -C) + CRYPT=1 + LUKSDEV="$2" + shift 2 + ;; + -L) + LVM=1 + shift + ;; + -R) + RAID=1 + shift + ;; + *) # unknown, prevent infinite loop + shift + ;; + esac +done + +# If kernel modules are needed but the kernel version is absent, exit now: +if [ ! -d /lib/modules/$KERNEL_VERSION ]; then + echo "ERROR: No /lib/modules/$KERNEL_VERSION kernel modules tree found for kernel \"$KERNEL_VERSION\"" + exit 1 +fi + +# If clearing source tree was requested, do that first +if [ "$CLEAR_TREE" = "1" ]; then + clear_source_tree +fi + +# If there's no $SOURCE_TREE, make one now: +if [ ! -d "$SOURCE_TREE" ]; then + create_new_source_tree +fi + +# If $ROOTDEV and $ROOTFS are not set, assume we want the +# values for the currently mounted / +# (unless we find that values are already set in the initrd-tree): +if [ -z "$ROOTDEV" -a -z "$(cat $SOURCE_TREE/rootdev 2> /dev/null)" ]; then + ROOTDEV=$(mount | grep ' on / ' | cut -f 1 -d ' ') + if [ "$ROOTDEV" = "/dev/root" ]; then # find real root device + ROOTDEV="/dev/$(readlink /dev/root)" + fi +fi +if [ -z "$ROOTFS" -a -z "$(cat $SOURCE_TREE/rootfs 2> /dev/null)" ]; then + ROOTFS=$(mount | grep ' on / ' | cut -f 5 -d ' ') +fi +# If needed, write them in the initrd-tree: +if [ ! -z "$ROOTDEV" ]; then + echo $ROOTDEV > $SOURCE_TREE/rootdev +fi +if [ ! -z "$ROOTFS" ]; then + echo $ROOTFS > $SOURCE_TREE/rootfs +fi + +# If $WAIT is not set, assume we need only one second +# to have all devices done +# (unless we find that value is already set in the initrd-tree): +if [ -z "$WAIT" -a -z "$(cat $SOURCE_TREE/wait-for-root)" ]; then + WAIT=1 +fi +if [ ! -z "$WAIT" ]; then + echo $WAIT > $SOURCE_TREE/wait-for-root +fi + +# Useful to know which initrd is running: +INITRD_NAME=$(basename $OUTPUT_IMAGE) +echo $INITRD_NAME > $SOURCE_TREE/initrd-name + +# Fill /resumedev with the swap partition holding the hibernation image +if [ ! -z "$RESUMEDEV" ]; then + echo $RESUMEDEV > $SOURCE_TREE/resumedev +fi + +# Add custom keymap support if one was given +if [ ! -z "$KEYMAP" ]; then + echo $KEYMAP > $SOURCE_TREE/keymap + cp /usr/share/mkinitrd/keymaps.tar.gz $SOURCE_TREE/etc/ +fi + +# If LUKSDEV was set in the config file, then we need to set CRYPT=1 +if [ ! -z "$LUKSDEV" ]; then + CRYPT=1 +fi + +# Include RAID support in initrd +if [ ! -z "$RAID" ]; then + if [ -r /sbin/mdadm ]; then + mkdir -p $SOURCE_TREE/sbin + cp /sbin/mdadm $SOURCE_TREE/sbin/mdadm + chmod 755 $SOURCE_TREE/sbin/mdadm + else + echo "ERROR: mdadm binary is missing, RAID support not installed" + fi +fi + +# Include LVM support in initrd +if [ ! -z "$LVM" ]; then + if [ -f /sbin/lvm.static ]; then + mkdir -p $SOURCE_TREE/sbin + cp /sbin/lvm.static $SOURCE_TREE/sbin/lvm.static + cp /sbin/dmsetup.static $SOURCE_TREE/sbin/dmsetup.static + ( cd $SOURCE_TREE/sbin + ln -s lvm.static vgchange 2>/dev/null + ln -s lvm.static vgscan 2>/dev/null ) + if [ -z "${MODULE_LIST}" ] ; then + MODULE_LIST="dm-mod" + elif ! echo ${MODULE_LIST} | grep -q dm-mod ; then + MODULE_LIST="$MODULE_LIST:dm-mod" + fi + else + echo "LVM static binary is missing, LVM support isn't installed" + fi +fi + +# Include cryptsetup (LUKS) support in initrd +if [ ! -z "$CRYPT" ]; then + if [ -e /sbin/cryptsetup.static ]; then + mkdir -p $SOURCE_TREE/sbin + cp /sbin/cryptsetup.static $SOURCE_TREE/sbin/cryptsetup.static + ( cd $SOURCE_TREE/sbin + ln -s cryptsetup.static cryptsetup 2>/dev/null + ) + cat << EOF > $SOURCE_TREE/sbin/udevadm +#!/bin/sh +sleep 3 +EOF + chmod 0755 $SOURCE_TREE/sbin/udevadm + + if [ -z "${MODULE_LIST}" ] ; then + MODULE_LIST="dm-mod" + elif ! echo ${MODULE_LIST} | grep -q dm-mod ; then + MODULE_LIST="$MODULE_LIST:dm-mod" + fi + # Write the underlying luks device to the initrd-tree: + echo $LUKSDEV > $SOURCE_TREE/luksdev + else + echo "Cryptsetup static binary is missing, CRYPT support isn't installed" + fi +fi + +# Make module directory: +if [ ! -d $SOURCE_TREE/lib/modules/$KERNEL_VERSION ]; then + mkdir -p $SOURCE_TREE/lib/modules/$KERNEL_VERSION +fi + +# If a module list was given, copy the modules into place: +if [ ! -z "$MODULE_LIST" ]; then + if grep -q "#insmod /lib/modules/2.6.18.8-smp/reiserfs.ko" $SOURCE_TREE/load_kernel_modules ; then + rm -f $SOURCE_TREE/load_kernel_modules + touch $SOURCE_TREE/load_kernel_modules + chmod 755 $SOURCE_TREE/load_kernel_modules + echo "# This is a script used to load the kernel modules." >> $SOURCE_TREE/load_kernel_modules + echo "# To use it, chmod it 755, and then add the insmod" >> $SOURCE_TREE/load_kernel_modules + echo "# lines needed to load your modules, like this:" >> $SOURCE_TREE/load_kernel_modules + echo >> $SOURCE_TREE/load_kernel_modules + fi + + # Count number of modules + # This INDEX number gives us an easy way to find individual + # modules and their arguments, as well as tells us how many + # times to run through the list + if ! echo $MODULE_LIST | grep ':' > /dev/null ; then # only 1 module specified + INDEX=1 + else + INDEX=1 + while [ ! "$(echo "$MODULE_LIST" | cut -f $INDEX -d ':' )" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # Don't include the null value + fi + +# Wrap everything in a while loop +i=0 +while [ $i -ne $INDEX ]; do + i=$(( $i + 1 )) + + # FULL_MOD is the module plus any arguments (if any) + # MODULE is the module name + # ARGS is any optional arguments to be passed to the kernel + FULL_MOD="$(echo "$MODULE_LIST" | cut -d ':' -f $i)" + MODULE="$(echo "$FULL_MOD" | cut -d ' ' -f 1 )" + # Test for arguments + if echo "$FULL_MOD" | grep ' ' > /dev/null; then + ARGS=" $(echo "$FULL_MOD" | cut -d ' ' -f 2- )" + else + unset ARGS + fi + + # Get MODULE deps and prepare insmod lines + /sbin/modprobe --set-version $KERNEL_VERSION --show-depends --ignore-install $MODULE 2> /dev/null \ + | grep "^insmod " | cut -f 2 -d ' ' | while read SRCMOD; do + + if ! grep -q "$SRCMOD" $SOURCE_TREE/load_kernel_modules 2>/dev/null ; then + LINE="$(echo "insmod -v $SRCMOD" | sed -e "s/$KERNEL_VERSION/\$(uname -r)/")" + + # Test to see if arguments should be passed + # Over-ride the previously defined LINE variable if so + if [ "$(basename $SRCMOD .ko)" = "$MODULE" ]; then + # SRCMOD and MODULE are same, ARGS can be passed + LINE="$LINE$ARGS" + fi + + fi + + if ! grep -qx "$LINE" $SOURCE_TREE/load_kernel_modules ; then + echo "$LINE" >> $SOURCE_TREE/load_kernel_modules + fi + + if cp -a --parents $SRCMOD $SOURCE_TREE 2> /dev/null; then + echo "OK: $SRCMOD added." + else + echo "WARNING: Could not find module \"$SRCMOD\"" + fi + + done + +done + +fi + +# And finally, build the initrd: +build_initrd_image + diff --git a/source/a/mkinitrd/mkinitrd.8 b/source/a/mkinitrd/mkinitrd.8 new file mode 100644 index 000000000..5fa957218 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd.8 @@ -0,0 +1,194 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH MKINITRD 8 "04 March 2008" "Slackware Version 12.1" +.SH NAME +mkinitrd \- create or rebuilt an initrd (initial ramdisk) using initramfs (simple cpio+gzip). +.SH SYNOPSIS +.B mkinitrd +[ +.B \-F +] +[ +.B \-c +] +[ +.B \-f filesystem +] +[ +.B \-h hibernate_partition +] +[ +.B \-k kernel_version +] +[ +.B \-m module1:module2:module3... +] +[ +.B \-o output_file +] +[ +.B \-r root_device +] +[ +.B \-s source_tree +] +[ +.B \-C crypt_device +] +[ +.B \-L +] +[ +.B \-R +] +[ +.B \-V +] +.SH DESCRIPTION +.B mkinitrd +is used to build an initial ramdisk. An initial ramdisk is a very small +set of files that are loaded into RAM and "mounted" (as initramfs doesn't +actually use a filesystem) as the kernel boots (before the main root +filesystem is mounted). The usual reason to use an initrd is because +you need to load kernel modules before mounting the root partition. +Usually these modules are required to support the filesystem used by the +root partition (ext3, reiserfs, xfs), or perhaps the controller that the +hard drive is attached to (SCSI, RAID, etc). Essentially, there are so many +different options available in modern Linux kernels that it isn't practical +to try to ship many different kernels to try to cover everyone's needs. +It's a lot more flexible to ship a generic kernel and a set of kernel +modules for it. +.SH OPTIONS +.TP +.B \-F +Use the contents of /etc/mkinitrd.conf as options to mkinitrd (optional). +If this is used in conjunction with any other options passed on the command +line, the command-line options will override the config file options. +.br +See mkinitrd.conf(5) for details. +.TP +.B \-c +Clear the existing initrd tree (by default in /boot/initrd-tree/) first. +If this is not done, running mkinitrd will add additional modules to the +existing initrd. +.TP +.B \-f filesystem +Specify the filesystem to use for the root partition. If this isn't given, +mount will usually figure it out. This option must be used together with the +\-r option in order to be beneficial. +.TP +.B \--help +Display a help summary. +.TP +.B \-h hibernate_partition +Specify the swap partition holding the hibernation image. +.TP +.B \-k kernel version +Use kernel modules from the specified kernel version. mkinitrd will look +for them in /lib/modules/(kernel version). +.TP +.B \-l keymap +Load an alternative keyboard mapping. All supported keyboard mappings +can be found in /usr/share/mkinitrd/keymaps.tar.gz +Leave the '.bmap' out when you supply this parameter. E.g. '-l nl' will +add support for dutch keyboard mapping to the initrd. +.TP +.B \-m module list +This is a list of colon-delimited modules to build into the initrd. +Any dependencies of requested modules will also be added to the initrd. +Additional options may be added to use when loading the kernel modules +(but in this case the entire list must be wrapped with double quotes). +.TP +.B \-o output image +The file to write the initrd to. (default: /boot/initrd.gz) +.TP +.B \-r root partition +Specify the device to be used as the root partition. If this isn't given, the +kernel default will be used (which is usually fine). This option must be used +together with the \-f option in order to be beneficial. +.TP +.B \-s source tree +The directory to use as the source for the initrd. (default: /boot/initrd-tree/) +.TP +.B \-w +The -w option specifies how long to wait in seconds before assuming that all the +drives are spun up and ready to go. +.TP +.B \-C +Use cryptsetup to enable the underlying device of an encrypted root partition. +Requires '-r' parameter. Two scenarios are possible. +.br +(1) root filesystem was created on the encrypted disk/LVM partition, example: + + -C /dev/sda2 -r cryptroot + +where /dev/sda2 is the encrypted partition and the actual root device name in /etc/fstab is: + + /dev/mapper/cryptroot + +(2) the encrypted partition contains a LVM volume which holds the root filesystem, example: + + -C /dev/sda2 -r /dev/vg/root + +where /dev/sda2 is the encrypted partition and the actual root device name in /etc/fstab is: + + /dev/vg/root +.TP +.B \-L +This option adds LVM support to the initrd, if the tools are +available on the system. +.TP +.B \-R +This option adds RAID support to the initrd, if a static mdadm binary is +available on the system. +.TP +.B \-V +Display version information and exit. +.SH EXAMPLES +A simple example: Build an initrd for a reiserfs root partition: + + mkinitrd -c -m reiserfs + +Another example: Build an initrd image using Linux 2.6.24.5 kernel +modules for a system with an ext3 root partition on /dev/hdb3: + + mkinitrd -c -k 2.6.24.5 -m ext3 -f ext3 -r /dev/hdb3 + +If run without options, mkinitrd will rebuild an initrd image using +the contents of the $SOURCE_TREE directory, or, if that directory +does not exist it will be created and populated, and then mkinitrd +will exit. These options are handy for building an initrd mostly +by hand. After creating /boot/initrd-tree/, you can add modules and +edit files by hand, and then rerun mkinitrd to create the initrd. + +Once the initrd is created, you'll need to tell your boot loader +to load it. If you boot with LILO, you will need to add an initrd +line to /etc/lilo.conf. Here's a section of lilo.conf that shows +how to set this up: + + # Linux bootable partition config begins + image = /boot/vmlinuz-generic-2.6.24.5 + initrd = /boot/initrd.gz + root = /dev/hda6 + label = Linux26245 + read-only + # Linux bootable partition config ends + +Once you've created the initrd and editing /etc/lilo.conf, you will +need to run 'lilo' to write out the changed boot block. The next +time you reboot the initrd should be loaded along with the kernel. + +Have fun! + +.SH SEE ALSO +mkinitrd.conf (5) + +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> diff --git a/source/a/mkinitrd/mkinitrd.SlackBuild b/source/a/mkinitrd/mkinitrd.SlackBuild new file mode 100755 index 000000000..10e70b997 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.3.4 +BB=1.12.1 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:--j7} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mkinitrd + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf busybox-$BB +tar xvf $CWD/busybox-$BB.tar.bz2 || exit 1 +cd busybox-$BB + +#zcat $CWD/busybox-${BB}.remove_warning.diff.gz | patch -p1 --verbose || exit 1 +#zcat $CWD/busybox-${BB}.no-gc-sections.diff.gz | patch -p1 --verbose || exit 1 +# Needed with 2.6.27 kernel: +zcat $CWD/busybox-1.12.1_inotify.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +sed -e \ + 's#^CONFIG_PREFIX=.*#CONFIG_PREFIX="'$PKG'/usr/share/mkinitrd/initrd-tree"#' \ + $CWD/busybox-dot-config > .config +make oldconfig +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/share/mkinitrd/initrd-tree/{bin,sbin} +make install || exit 1 +rm -f $PKG/usr/share/mkinitrd/initrd-tree/linuxrc + +# Copying additional files: +cp $CWD/mkinitrd_command_generator.sh $PKG/usr/share/mkinitrd +chmod 755 $PKG/usr/share/mkinitrd/mkinitrd_command_generator.sh +cp $CWD/keymaps.tar.gz $PKG/usr/share/mkinitrd + +# Zip up the initrd-tree: +( cd $PKG/usr/share/mkinitrd/initrd-tree + tar xf $CWD/_initrd-tree.tar.gz + cat $CWD/init > init + tar czf ../initrd-tree.tar.gz . +) +rm -rf $PKG/usr/share/mkinitrd/initrd-tree + +# Add busybox docs: +mkdir -p $PKG/usr/doc/busybox-$BB +cp -a AUTHORS INSTALL LICENSE README \ + $PKG/usr/doc/busybox-$BB + +mkdir -p $PKG/sbin +cat $CWD/mkinitrd > $PKG/sbin/mkinitrd +chmod 755 $PKG/sbin/mkinitrd + +mkdir -p $PKG/usr/man/man{5,8} +cat $CWD/mkinitrd.8 | gzip -9c > $PKG/usr/man/man8/mkinitrd.8.gz +cat $CWD/mkinitrd.conf.5 | gzip -9c > $PKG/usr/man/man5/mkinitrd.conf.5.gz + +mkdir -p $PKG/etc +cat $CWD/mkinitrd.conf.sample > $PKG/etc/mkinitrd.conf.sample + +mkdir -p $PKG/usr/doc/mkinitrd-$VERSION +cp -a $CWD/README.initrd $PKG/usr/doc/mkinitrd-$VERSION + +( cd $PKG/usr/doc/mkinitrd-$VERSION + DATE="$(date)" + KERNEL_VERSION="$(uname -r)" + PACKAGE_VERSION="$(uname -r | tr - _)" + LILO_KERNEL_NAME="$(echo $(uname -r) | tr -d . | tr -d - )" + cat README.initrd | sed -e s/@DATE@/"$DATE"/ > README.initrd1 + cat README.initrd1 | sed -e s/@KERNEL_VERSION@/"$KERNEL_VERSION"/ > README.initrd2 + cat README.initrd2 | sed -e s/@PACKAGE_VERSION@/"$PACKAGE_VERSION"/ > README.initrd3 + cat README.initrd3 | sed -e s/@LILO_KERNEL_NAME@/"$LILO_KERNEL_NAME"/ > README.initrd4 + cat README.initrd4 | sed -e s/@MKINITRD_VERSION@/"$VERSION"/ > README.initrd5 + cat README.initrd5 | sed -e s/@ARCH@/"$ARCH"/ > README.initrd6 + cat README.initrd6 | sed -e s/@BUILD@/"$BUILD"/ > README.initrd + rm -f README.initrd{1,2,3,4,5,6} +) +chmod 644 $PKG/usr/doc/mkinitrd-$VERSION/* +chown root:root $PKG/usr/doc/mkinitrd-$VERSION/* + +mkdir $PKG/boot +( cd $PKG/boot + ln -sf /usr/doc/mkinitrd-$VERSION/README.initrd . +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mkinitrd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/mkinitrd/mkinitrd.conf.5 b/source/a/mkinitrd/mkinitrd.conf.5 new file mode 100644 index 000000000..5890e2462 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd.conf.5 @@ -0,0 +1,174 @@ +.\" mkinitrd.5 Robby Workman <rworkman@slackware.com> +.\" 25 November 2007 " + +.TH MKINITRD.CONF 5 "05 Februrary 2008" "Slackware 12.1" +.SH NAME +.B mkinitrd.conf(5) +.SH SYNOPSIS +.B mkinitrd.conf - optional configuration file for +.I mkinitrd(8) + +.SH DESCRIPTION +The +.I mkinitrd.conf +file contains options to be passed to +.I mkinitrd(8) +on every run if mkinitrd is executed with the -F flag. +.br +It is intended as a fast and easy way for the system administrator to +pass options to mkinitrd without having to type them on each execution. + +Options passed to +.I mkinitrd(8) +on the command line will override any +values set in the config file. + +.SH OPTIONS AND SYNTAX + +All options are in the format of OPTION="value" +.br +Unset variables have no effect. + +.TP 5 +.I SOURCE_TREE +This is the location for the initrd's source tree. +.br +Defaults to "/boot/initrd-tree" + +.TP 5 +.I CLEAR_TREE +This option specifies whether to clear the initrd source tree prior to +creating the initrd. +.br +This requires a value of either "0" or "1" where 0=no and 1=yes +.br +Examples: +.br +CLEAR_TREE="0" # Do not clear initrd tree first +.br +CLEAR_TREE="1" # Clear initrd tree first + +It is recommended to leave this unset and pass "-c" on the command line +when clearing the tree is desired. Clearing the tree is not desirable +if you wish to build support for more than one kernel into the initrd +image. + +.TP 5 +.I OUTPUT_IMAGE +This is the location for the initrd image that is created. +.br +Defaults to "/boot/initrd.gz" + +.TP 5 +.I KERNEL_VERSION +This is the kernel version for which the initrd should be created. +.br +Defaults to "$(uname -r)" + +.TP 5 +.I KEYMAP +This is the custom keyboard map that should be loaded instead of the +default 'us' keymap. +.br +The file /usr/share/mkinitrd/keymaps.tar.gz contains all possible keymaps +to choose from (omit the '.bmap' extension in the mkinitrd command) +.br +Example: KEYMAP="nl" + +.TP 5 +.I MODULE_LIST +This should be a colon-separated list of modules you wish to be included +in the initrd image. +.br +Example: MODULE_LIST="ext3:mbcache:jbd" + +If you have loadtime options that you need to specify when loading kernel +modules, those can be added here as well. +.br +Example: MODULE_LIST="module1:module2 option=1:module3" + +.TP 5 +.I LUKSDEV +When using cryptsetup with an encrypted root partition, use this variable to +define the *actual* device name of the encrypted root partition and define the +*mapped* device name as ROOTDEV. +.br +For example, if your actual root device name in /etc/fstab is: +.br +.I /dev/mapper/cryptroot +on +.I /dev/sda2 + +Then you'll need to set: +.br +LUKSDEV="/dev/sda2" +.br +ROOTDEV="cryptroot" + +.TP 5 +.I ROOTDEV +The device on which your root filesystem is located. +.br +Example: ROOTDEV="/dev/sda2" + +If you are using cryptsetup and an encrypted root filesystem, be sure to +read the option above for LUKSDEV or Bad Things will happen. + +.TP 5 +.I ROOTFS +The filesystem type of your root filesystem +.br +Example: ROOTFS="ext3" + +.TP 5 +.I RAID +This option adds the mdadm binary to the initrd to support RAID. +Additional modules may be required, depending on your kernel +configuration. If you wish to add LVM support to the initrd, then +set this to 1; otherwise, leave it unset or set it to 0. +.br +Examples: +.br +RAID="0" # Do not add RAID support to initrd +.br +RAID="1" # Add RAID support to initrd + +.TP 5 +.I LVM +This option adds support for LVM partitions into the initrd. +If you wish to add LVM support to the initrd, then set this to 1; +otherwise, leave it unset or set it to 0. +.br +Examples: +.br +LVM="0" # Do not add LVM support to initrd +.br +LVM="1" # Add LVM support to initrd + +.TP 5 +.I WAIT +This defines the time to wait, in seconds, until all disks are detected. +.br +This is useful for allowing extra time that might be needed for slow usb disks or systems with large amounts of storage to become ready. +.br +If not defined, the default is 1 second. + +.TP 5 +.I RESUMEDEV +The swap partition holding your hibernation image. +.br +Example: RESUMEDEV="/dev/sda2" + +.SH FILES +.I /etc/mkinitrd.conf +.br +See /etc/mkinitrd.conf.sample + +.SH "SEE ALSO" +.BR mkinitrd "(8)" + +.SH BUGS +None known :-) + +.SH MISCELLANEOUS +Support for mkinitrd.conf was added in mkinitrd-1.3.0 diff --git a/source/a/mkinitrd/mkinitrd.conf.sample b/source/a/mkinitrd/mkinitrd.conf.sample new file mode 100644 index 000000000..29e56f5f0 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd.conf.sample @@ -0,0 +1,16 @@ +# mkinitrd.conf.sample +# See "man mkinitrd.conf" for details on the syntax of this file +# +#SOURCE_TREE="/boot/initrd-tree" +#CLEAR_TREE="0" +#OUTPUT_IMAGE="/boot/initrd.gz" +#KERNEL_VERSION="$(uname -r)" +#KEYMAP="us" +#MODULE_LIST="ext3" +#LUKSDEV="/dev/hda1" +#ROOTDEV="/dev/hda1" +#ROOTFS="ext3" +#RESUMEDEV="/dev/hda2" +#RAID="0" +#LVM="0" +#WAIT="1" diff --git a/source/a/mkinitrd/mkinitrd_command_generator.sh b/source/a/mkinitrd/mkinitrd_command_generator.sh new file mode 100644 index 000000000..d3cdfb731 --- /dev/null +++ b/source/a/mkinitrd/mkinitrd_command_generator.sh @@ -0,0 +1,842 @@ +#!/bin/sh +# $Id: mkinitrd_command_generator.sh,v 1.40 2008/12/18 23:32:56 eha Exp eha $ +# Copyright 2008, 2009 by Eric Hameleers <alien@slackware.com>, Eindhoven, Netherlands +# Copyright 2008, 2009 by PiterPUNK <piterpunk@slackware.com>, Sao Paulo, SP, Brazil +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Create an initrd which fits the system. +# Take into account the use of LVM/LUKS/RAID. +# Find out about any hardware drivers the system may need in an initrd when +# booting from a generic lightweight kernel. +# +# ----------------------------------------------------------------------------- + +# The script's revision number will be displayed in the help text: +REV=$( echo "$Revision: 1.40 $" | cut -d' ' -f2 ) + +# Define some essential parameter values: +USING_LVM="" +USING_LUKS="" +USING_RAID="" +MLIST="" +REALDEV="" # The device that contains the LUKS volume +BASEDEV="" # Lowest level device (raw block device or RAID volume) + +FSTAB=${FSTAB:-"/etc/fstab"} # so we can test with alternate fstab files + +# These are needed by -c and -i options: +SOURCE_TREE=${SOURCE_TREE:-"/boot/initrd-tree"} +CLEAR_TREE=${CLEAR_TREE:-1} +KEYMAP=${KEYMAP:-"us"} +WAIT=${WAIT:-1} + +# A basic explanation of the commandline parameters: +basic_usage() { + cat <<-EOT + + *** $(basename $0) revision $REV *** + Usage: + $(basename $0) [ options ] [ kernel_filename ] + Options: + -a <"additional params"> Additional parameters to pass to mkinitrd. + -c | --conf Show a suitable mkinitrd configuration file. + -h | --help Show this help. + -i | --interactive Navigate through menus instead of using + commandline arguments. + --longhelp Show more detailed information/examples. + -k <kernelversion> Use specific kernel version. + -m <"additional mods"> Additional modules to pass to mkinitrd, + separated by colons (:). + -l | --lilo Only show lilo.conf section + (requires a kernel_filename). + -r | --run Only show 'mkinitrd' command. + EOT +} + +# More of a tutorial here: +extended_usage() { + cat <<-EOT + + This script is useful in situations where you require an initrd image + to boot your computer. + For instance, when booting a kernel that does not have support for your + storage or root filesystem built in (such as the Slackware 'generic' + kernels'). + + * When you run the script without parameters, it will examine your + running system, your current kernel version and will output an example + of a 'mkinitrd' commandline that you can use to generate an initrd + image containing enough driver support to boot the computer. + + * You can make it more specific: when you add the filename of a kernel + as parameter to the script, it will determine the kernel version from + that kernel, and also give an example of the lines that you should add + to your '/etc/lilo.conf' file. + + * If you want your initrd image to have a custom name instead of the + default '/boot/initrd.gz' you can add it as another parameter to the + script, as follows: + + $(basename $0) -a "-o /boot/custom.gz" + + The arguments to the '-a' parameter will be used as additional arguments + to the 'mkinitrd' command. + + * If you need additional modules in the initrd image, apart from what + the script determines, you can pass then to the script using the '-m' + parameter as follows: + + $(basename $0) -m "uhci-hcd:usbhid" + + The above example adds support for USB keyboards to the initrd - you + may need that if you have encrypted your root partition and need to + enter a passphrase using a USB keyboard. + + * Instead of copying and pasting the script's output, you can create + an initrd by directly executing the output, like in this example: + + EOT + + echo " \$($(basename $0) --run /boot/vmlinuz-generic-smp-2.6.24.5-smp)" + + cat <<-EOT + + That used the '-r' or '--run' switch to make the script only write + the 'mkinitrd' commandline to the terminal. + + * When you want to add a section for a specific kernel to + '/etc/lilo.conf' directly, use the '-l' or '--lilo' switch and use a + command like in this example: + + EOT + + echo " $(basename $0) --lilo /boot/vmlinuz-generic-smp-2.6.24.5-smp >>/etc/lilo.conf" + + cat <<-EOT + + That command will result in the following lines being added to your + '/etc/lilo.conf' file (example for my hardware): + + # Linux bootable partition config begins + # initrd created with 'mkinitrd -c -k 2.6.24.5-smp -m ata_generic:pata_amd:mbcache:jbd:ext3 -f ext3 -r /dev/hda7' + image = /boot/vmlinuz-generic-smp-2.6.24.5-smp + initrd = /boot/initrd.gz + root = /dev/hda7 + label = 2.6.24.5-smp + read-only + # Linux bootable partition config ends + + The last two examples show how easy it is to configure your computer + for the use of an initrd if you need one. The only thing left to do + afterwards is running 'lilo'. + + EOT +} + +# Find the device that holds the root partition: +get_root_device() { + if [ -e $FSTAB ]; then + RD=$(cat $FSTAB | tr '\t' ' ' | tr -s ' ' | grep ' / ' | cut -f1 -d' ') + if [ "$(echo $RD | cut -f1 -d=)" = "LABEL" -o "$(echo $RD | cut -f1 -d=)" = "UUID" ]; then + DKEY=$(echo $RD | cut -f1 -d=) + # The value can be LABEL=foo or LABEL='foo' or LABEL="foo" + DVAL=$(echo $RD | cut -f2 -d= | tr -d "'\042") + RD=$(/sbin/blkid | grep -w $DKEY | grep -w $DVAL | cut -f1 -d:) + fi + else + RD=$(grep -m1 "^/dev/.*[[:blank:]]/[[:blank:]]" /proc/mounts | cut -f1 -d' ') + fi + echo $RD +} + +# Get the root fs information: +get_rootfs_type() { + if $(type vol_id 1>/dev/null 2>&1) ; then + vol_id $ROOTDEV | grep ID_FS_TYPE | cut -f2 -d= + else + # Alternatively, use: + cat $FSTAB | tr '\t' ' ' | tr -s ' ' | grep ' / ' | cut -f3 -d' ' + fi +} + +# Add the module(s) needed for the root filesystem: +add_rootfs_module() { + local FSMOD + FSMOD=$(/sbin/modprobe --set-version $KVER --show-depends ${ROOTFS} 2>/dev/null | while read LINE; do + echo $(basename $(echo $LINE | cut -d' ' -f2) .ko ) + done) + if [ -n "$FSMOD" ]; then + [ -n "$MLIST" ] && echo "$MLIST:$(echo $FSMOD | tr ' ' ':')" \ + || echo $FSMOD | tr ' ' ':' + fi +} + +# Determine the list of kernel modules needed to support the root device: +determine_blockdev_drivers() { + # Walk the /sys tree to find kernel modules that are + # required for our storage devices. + # Thanks to PiterPUNK for this piece of code. + local MLIST + MLIST=$(for i in $(find /sys/block -name "device" -exec ls -l {} \; | sed -ne 's:.*/\(devices.*\)/[a-zA-Z]\+[.0-9]\+/.*:/sys/\1:p' | sort -u); do + for j in $(find $i -name "modalias"); do + /sbin/modprobe --set-version $KVER --show-depends $(cat $j) 2>/dev/null | while read LINE ; do + echo $(basename $(echo $LINE | cut -d' ' -f2) .ko ) + done + done + done) + MLIST=$( echo $MLIST | tr ' ' ':' ) + echo $MLIST +} + +# Search for USB keyboards: +function add_usb_keyboard() { + local USBMOD + if cat /proc/bus/input/devices | sed -e 's/^$/\$/g' | \ + tr "\n$" " \n" | grep -q " Phys=.*usb.* .*Handlers=.*kbd.*B:"; then + USBMOD="usbhid" + [ -n "$MLIST" ] && MLIST="$MLIST:$USBMOD" \ + || MLIST="$USBMOD" + fi + echo $MLIST +} + +# Determine what USB Host Controller is in use +function add_usb_hcd() { + local USBMOD + for i in `ls -Ld /sys/module/*_hcd/drivers/*`; do + if ls -L $i | grep -q "[0-9a-f]*:" ; then + USBMOD=$( echo $i | cut -f4 -d/ | tr "_" "-") + [ -n "$MLIST" ] && MLIST="$MLIST:$USBMOD" \ + || MLIST="$USBMOD" + fi + done + echo $MLIST +} + +# Is the root partition on a (combination of) LVM/LUKS volume? +check_luks_lvm_raid() { + if $( lvdisplay -c $ROOTDEV 1>/dev/null 2>/dev/null ); then + # Our root partition is on a LV: + USING_LVM=1 + # Search the Physical Volume of our Logical Volume: + MYVG=$( echo $(lvdisplay -c $ROOTDEV) | cut -d: -f2 ) + for LINE in $(pvdisplay -c) ; do + VG=$(echo $LINE | cut -d: -f2) + [ "$VG" = "$MYVG" ] && break + done + PV=$(echo $LINE | cut -d: -f1) + # Check if there is a LUKS device underneath: + if $( cryptsetup status $PV 1>/dev/null 2>/dev/null ) ; then + # Our root partition's LV is on a LUKS volume: + USING_LUKS=1 + REALDEV=$( cryptsetup status $PV | grep 'device: ' | tr -d ' ' | cut -d: -f2 ) + BASEDEV=$REALDEV + else + BASEDEV=$PV + fi + elif $( cryptsetup status $ROOTDEV 1>/dev/null 2>/dev/null ) ; then + # Our root device is on a LUKS volume: + USING_LUKS=1 + REALDEV=$( cryptsetup status $ROOTDEV | grep 'device: ' | tr -d ' ' | cut -d: -f2 ) + ROOTDEV=$(basename $ROOTDEV) + # Check for LVM: + for LV in $(lvdisplay -c | tr -d ' ' | cut -f1 -d:) ; do + # Note: cryptsetup shows the real device, whereas + # lvdisplay requires the /dev/<myvg>/... symlink to the real device. + if [ "$(readlink $LV)" = "$REALDEV" ]; then + REALDEV=$LV + break + fi + done + if $( lvdisplay -c $REALDEV 1>/dev/null 2>/dev/null ); then + # Our root partition's LUKS device is on a LV: + USING_LVM=1 + # Search the Physical Volume of our Logical Volume: + MYVG=$( echo $(lvdisplay -c $REALDEV) | cut -d: -f2 ) + for LINE in $(pvdisplay -c) ; do + VG=$(echo $LINE | cut -d: -f2) + [ "$VG" = "$MYVG" ] && break + done + PV=$(echo $LINE | cut -d: -f1) + BASEDEV=$PV + else + BASEDEV=$REALDEV + fi + else + BASEDEV=$ROOTDEV + fi + + # Finally, we should check if base device is + # a real block device or a RAID volume: + for MD in $(cat /proc/mdstat | grep -w active | cut -d' ' -f1) ; do + if [ "$BASEDEV" = "/dev/$MD" ]; then + USING_RAID=1 + break + fi + done +} + +# Before we start +[ -x /bin/id ] && CMD_ID="/bin/id" || CMD_ID="/usr/bin/id" +if [ "$($CMD_ID -u)" != "0" ]; then + echo "You need to be root to run $(basename $0)." + exit 1 +fi + +# Parse the commandline parameters: +while [ ! -z "$1" ]; do + case $1 in + --longhelp) + basic_usage + extended_usage + exit 0 + ;; + -a) + MKINIT_PARAMS=$2 + shift 2 + ;; + -c|--conf) + [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; } + EMIT="conf" + shift + ;; + -h|--help) + basic_usage + exit 0 + ;; + -i|--interactive) + INTERACTIVE=1 + shift + ;; + -k) + KVER=$2 + shift 2 + ;; + -m) + MKINIT_MODS=$2 + shift 2 + ;; + -l|--lilo) + [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; } + EMIT="lilo" + shift + ;; + -L|--fromlilo) + FROMLILO=1 + shift + ;; + -r|--run) + [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; } + EMIT="run" + shift + ;; + -R|--rootdev) + ROOTDEV=$2 + shift 2 + ;; + -*) + echo "Unsupported parameter '$1'!" + exit 1 + ;; + *) # Everything else but switches (which start with '-') follows: + if [ -f $1 ]; then + KFILE=$1 + # Construction of KFILE's full filename: + KFILEPATH=$(cd $(dirname $KFILE) && pwd) + if [ -L $KFILE ]; then + KFILE=$(readlink $KFILE) + else + KFILE=$(basename $KFILE) + fi + KFILE=${KFILEPATH}/$KFILE + if [ -z "$(file $KFILE | grep 'Linux kernel x86 boot')" ]; then + echo "File '$KFILE' does not look like it is a kernel file!" + exit 1 + fi + else + echo "File $1 not found!" + exit 1 + fi + shift + ;; + esac +done + +# Determine what to show as output (other options may have set EMIT already) +EMIT=${EMIT:-"all"} + +# An EMIT value of 'lilo' requires a kernel filename as script parameter: +if [ "$EMIT" = "lilo" ]; then + if [ -z "$KFILE" ]; then + echo "A kernel_filename is required with the '-l|--lilo' option!" + exit 1 + fi +fi + +# Determine kernel version to use, +# and check if modules for this kernel are actually present: +if [ -z "$KVER" ]; then + if [ -n "$KFILE" ]; then + KVER="$(strings $KFILE | grep '(.*@.*) #' | cut -f1 -d' ')" + else + KVER="$(uname -r)" + fi +fi +if [ ! -d /lib/modules/$KVER ]; then + echo "Modules for kernel $KVER aren't installed." + exit 1 +fi + +# Determine whether the user passed an alternate filename for the initrd: +if [ -n "$MKINIT_PARAMS" ]; then + SRCHLIST="$MKINIT_PARAMS" + for ELEM in $MKINIT_PARAMS ; do + SRCHLIST=$(echo $SRCHLIST | cut -d' ' -f2-) # cut ELEM from the list + if [ "$ELEM" = "-o" ]; then + IMGFILE=$(echo $SRCHLIST | cut -d' ' -f1) + break + fi + done +fi +IMGFILE=${IMGFILE:-"/boot/initrd.gz"} + +# Get information about the root device / root filesystem: +ROOTDEV=${ROOTDEV:-$(get_root_device)} +ROOTFS=$(get_rootfs_type) + +# Determine the list of kernel modules needed to support the root device: +MLIST=$(determine_blockdev_drivers) + +# Determine if a USB keyboard is in use and include usbhid to module list +MLIST=$(add_usb_keyboard) + +# If we use any USB module, try to determine the Host Controller +if echo $MLIST | grep -q "usb"; then + MLIST=$(add_usb_hcd) +fi + +# Check what combination of LUKS/LVM/RAID we have to support: +# This sets values for USING_LUKS, USING_LVM, USING_RAID, REALDEV and BASEDEV. +check_luks_lvm_raid + +# This is the interactive part: +if [ "$INTERACTIVE" = "1" ]; then + if [ "$FROMLILO" != "1" ]; then + dialog --stdout --title "WELCOME TO MKINITRD COMMAND GENERATOR" --msgbox "\ +The main goal of this utility is to create a good initrd to \ +fit your needs. It can detect what kernel you are running, \ +what is your root device, root filesystem, if you use encryption, \ +LVM, RAID, etc. \ +\n\n\ +Usually the probed values are OK and they will be the \ +defaults in all subsequent dialogs, but maybe you want \ +to change something. \n\ +If in doubt, leave the defaults." 0 0 + + KVER=$( ls -d1 --indicator-style=none /lib/modules/* | \ + awk -F/ -vVER=$KVER '{ + if ( VER == $NF ) { + ONOFF="on" + } else { + ONOFF="off" + } ; printf("%s \"\" %s\n",$NF,ONOFF) }' | \ + xargs dialog --stdout --title "CHOOSE KERNEL VERSION" \ + --default-item $KVER --radiolist "\ +Please, select the kernel version you want to create this initrd for." 0 0 4 ) + [ -z "$KVER" ] && exit 1 + + OLDROOTDEV=$ROOTDEV + ROOTDEV=$( dialog --stdout --title "SELECT ROOT DEVICE" --inputbox "\ +Enter your root device. Root device is the one where your '/' filesystem \ +is mounted." 0 0 "$ROOTDEV" ) + [ -z "$ROOTDEV" ] && exit 1 + + # We need to re-check our defaults in case the user changed the default + # value for ROOTDEV: + [ "$OLDROOTDEV" != "$ROOTDEV" ] && check_luks_lvm_raid + ROOTFS=$(get_rootfs_type) + + ROOTFS=$( dialog --stdout --title "SELECT ROOT FILESYSTEM" --inputbox "\ +Enter the type of your root filesystem." 0 0 "$ROOTFS" ) + [ -z "$ROOTFS" ] && exit 1 + fi + + MLIST=$(add_rootfs_module) + + LLR=$( dialog --stdout --title "LVM/LUKS/RAID" --checklist "\ +Do you use some of those in your root filesystem? \ +If this is the case, please select one or more options." 12 45 3 \ +"LVM" "Logical Volume Manager" $([ "$USING_LVM" = "1" ] && echo on || echo off) \ +"LUKS" "Linux Unified Key Setup" $([ "$USING_LUKS" = "1" ] && echo on || echo off) \ +"RAID" "Linux Software RAID" $([ "$USING_RAID" = "1" ] && echo on || echo off)) + + if [ "$?" != "0" ]; then + exit 1 + fi + + echo $LLR | grep -q LUKS && USING_LUKS="1" + echo $LLR | grep -q LVM && USING_LVM="1" + echo $LLR | grep -q RAID && USING_RAID="1" + + if [ "$USING_LUKS" = "1" ]; then + REALDEV=$( dialog --stdout --title "LUKS ROOT DEVICE" --inputbox "\ +Please, enter your LUKS root device:" 0 0 "$REALDEV" ) + [ -z "$REALDEV" ] && exit 1 + fi +fi + +# Step out of the interactive loop for a moment. The next block needs to be +# executed in all cases. + +# We need to 'undouble' the MLIST array. Some people report that walking the +# /sys tree produces duplicate modules in the list. +# The awk command elimitates doubles without changing the order: +MLIST=$( echo $MLIST | tr ':' '\n' | awk '!x[$0]++' | tr '\n' ' ' ) +MLIST=$( echo $MLIST | tr ' ' ':' ) +MLIST=$(echo ${MLIST%:}) # To weed out a trailing ':' which was reported once. + +# Back to the interactive part: + +if [ "$INTERACTIVE" = "1" ]; then + MLIST=$( dialog --stdout --title "INITRD'S MODULE LIST" --inputbox "\ +The list here shows all modules needed to support your root filesystem \ +and boot from it. But you can change the list to use some alternative \ +or additional modules. If you don't know what to do, the default is safe." \ +0 0 "$MLIST" ) + if [ "$?" != "0" ]; then + exit 1 + fi + + EXTRA=$( dialog --stdout --title "EXTRA CONFIGURATION" --checklist "\ +Now is your chance for some additional configuration. All of these \ +configurations are optional and you can stick to the defaults." 11 72 3 \ +"KEYMAP" "Select keyboard layout (default: US)" \ + $([ $USING_LUKS = 1 ] && echo on || echo off) \ +"RESUMEDEV" "Select device for 'suspend-to-disk' feature" off \ +"WAIT" "Add delay to allow detection of slow disks at boot" off) + if [ "$?" != "0" ]; then + exit 1 + fi + + if echo $EXTRA | grep -q KEYMAP ; then + KEYMAP=$( dialog --stdout --title "KEYBOARD LAYOUT SELECTION" \ + --cancel-label "Skip" \ + --menu "You may select one of the following keyboard layouts. \ +If you do not select a keyboard map, 'us.map' \ +(the US keyboard layout) is the default. Use the UP/DOWN \ +arrow keys and PageUp/PageDown to scroll \ +through the whole list of choices." \ +22 55 11 \ +"qwerty/us.map" "" \ +"azerty/azerty.map" "" \ +"azerty/be-latin1.map" "" \ +"azerty/fr-latin0.map" "" \ +"azerty/fr-latin1.map" "" \ +"azerty/fr-latin9.map" "" \ +"azerty/fr-old.map" "" \ +"azerty/fr-pc.map" "" \ +"azerty/fr.map" "" \ +"azerty/wangbe.map" "" \ +"azerty/wangbe2.map" "" \ +"dvorak/ANSI-dvorak.map" "" \ +"dvorak/dvorak-l.map" "" \ +"dvorak/dvorak-r.map" "" \ +"dvorak/dvorak.map" "" \ +"dvorak/no-dvorak.map" "" \ +"fgGIod/tr_f-latin5.map" "" \ +"fgGIod/trf-fgGIod.map" "" \ +"olpc/es-olpc.map" "" \ +"olpc/pt-olpc.map" "" \ +"qwerty/bg-cp1251.map" "" \ +"qwerty/bg-cp855.map" "" \ +"qwerty/bg_bds-cp1251.map" "" \ +"qwerty/bg_bds-utf8.map" "" \ +"qwerty/bg_pho-cp1251.map" "" \ +"qwerty/bg_pho-utf8.map" "" \ +"qwerty/br-abnt.map" "" \ +"qwerty/br-abnt2.map" "" \ +"qwerty/br-latin1-abnt2.map" "" \ +"qwerty/br-latin1-us.map" "" \ +"qwerty/by-cp1251.map" "" \ +"qwerty/by.map" "" \ +"qwerty/bywin-cp1251.map" "" \ +"qwerty/cf.map" "" \ +"qwerty/cz-cp1250.map" "" \ +"qwerty/cz-lat2-prog.map" "" \ +"qwerty/cz-lat2.map" "" \ +"qwerty/cz-qwerty.map" "" \ +"qwerty/defkeymap.map" "" \ +"qwerty/defkeymap_V1.0.map" "" \ +"qwerty/dk-latin1.map" "" \ +"qwerty/dk.map" "" \ +"qwerty/emacs.map" "" \ +"qwerty/emacs2.map" "" \ +"qwerty/es-cp850.map" "" \ +"qwerty/es.map" "" \ +"qwerty/et-nodeadkeys.map" "" \ +"qwerty/et.map" "" \ +"qwerty/fi-latin1.map" "" \ +"qwerty/fi-latin9.map" "" \ +"qwerty/fi-old.map" "" \ +"qwerty/fi.map" "" \ +"qwerty/gr-pc.map" "" \ +"qwerty/gr.map" "" \ +"qwerty/hu101.map" "" \ +"qwerty/il-heb.map" "" \ +"qwerty/il-phonetic.map" "" \ +"qwerty/il.map" "" \ +"qwerty/is-latin1-us.map" "" \ +"qwerty/is-latin1.map" "" \ +"qwerty/it-ibm.map" "" \ +"qwerty/it.map" "" \ +"qwerty/it2.map" "" \ +"qwerty/jp106.map" "" \ +"qwerty/kazakh.map" "" \ +"qwerty/kyrgyz.map" "" \ +"qwerty/la-latin1.map" "" \ +"qwerty/lt.baltic.map" "" \ +"qwerty/lt.l4.map" "" \ +"qwerty/lt.map" "" \ +"qwerty/mk-cp1251.map" "" \ +"qwerty/mk-utf.map" "" \ +"qwerty/mk.map" "" \ +"qwerty/mk0.map" "" \ +"qwerty/nl.map" "" \ +"qwerty/nl2.map" "" \ +"qwerty/no-latin1.map" "" \ +"qwerty/no.map" "" \ +"qwerty/pc110.map" "" \ +"qwerty/pl.map" "" \ +"qwerty/pl1.map" "" \ +"qwerty/pl2.map" "" \ +"qwerty/pl3.map" "" \ +"qwerty/pl4.map" "" \ +"qwerty/pt-latin1.map" "" \ +"qwerty/pt-latin9.map" "" \ +"qwerty/pt.map" "" \ +"qwerty/ro.map" "" \ +"qwerty/ro_std.map" "" \ +"qwerty/ru-cp1251.map" "" \ +"qwerty/ru-ms.map" "" \ +"qwerty/ru-yawerty.map" "" \ +"qwerty/ru.map" "" \ +"qwerty/ru1.map" "" \ +"qwerty/ru2.map" "" \ +"qwerty/ru3.map" "" \ +"qwerty/ru4.map" "" \ +"qwerty/ru_win.map" "" \ +"qwerty/ruwin_alt-CP1251.map" "" \ +"qwerty/ruwin_alt-KOI8-R.map" "" \ +"qwerty/ruwin_alt-UTF-8.map" "" \ +"qwerty/ruwin_cplk-CP1251.map" "" \ +"qwerty/ruwin_cplk-KOI8-R.map" "" \ +"qwerty/ruwin_cplk-UTF-8.map" "" \ +"qwerty/ruwin_ct_sh-CP1251.map" "" \ +"qwerty/ruwin_ct_sh-KOI8-R.map" "" \ +"qwerty/ruwin_ct_sh-UTF-8.map" "" \ +"qwerty/ruwin_ctrl-CP1251.map" "" \ +"qwerty/ruwin_ctrl-KOI8-R.map" "" \ +"qwerty/ruwin_ctrl-UTF-8.map" "" \ +"qwerty/se-fi-ir209.map" "" \ +"qwerty/se-fi-lat6.map" "" \ +"qwerty/se-ir209.map" "" \ +"qwerty/se-lat6.map" "" \ +"qwerty/se-latin1.map" "" \ +"qwerty/sk-prog-qwerty.map" "" \ +"qwerty/sk-qwerty.map" "" \ +"qwerty/speakup-jfw.map" "" \ +"qwerty/speakupmap.map" "" \ +"qwerty/sr-cy.map" "" \ +"qwerty/sv-latin1.map" "" \ +"qwerty/tr_q-latin5.map" "" \ +"qwerty/tralt.map" "" \ +"qwerty/trf.map" "" \ +"qwerty/trq.map" "" \ +"qwerty/ttwin_alt-UTF-8.map.gz" "" \ +"qwerty/ttwin_cplk-UTF-8.map.gz" "" \ +"qwerty/ttwin_ct_sh-UTF-8.map.gz" "" \ +"qwerty/ttwin_ctrl-UTF-8.map.gz" "" \ +"qwerty/ua-cp1251.map.gz" "" \ +"qwerty/ua-utf-ws.map" "" \ +"qwerty/ua-utf.map" "" \ +"qwerty/ua-ws.map" "" \ +"qwerty/ua.map" "" \ +"qwerty/uk.map" "" \ +"qwerty/us-acentos.map" "" \ +"qwerty/us.map" "" \ +"qwertz/croat.map" "" \ +"qwertz/cz-us-qwertz.map" "" \ +"qwertz/cz.map" "" \ +"qwertz/de-latin1-nodeadkeys.map" "" \ +"qwertz/de-latin1.map" "" \ +"qwertz/de.map" "" \ +"qwertz/de_CH-latin1.map" "" \ +"qwertz/fr_CH-latin1.map" "" \ +"qwertz/fr_CH.map" "" \ +"qwertz/hu.map" "" \ +"qwertz/sg-latin1-lk450.map" "" \ +"qwertz/sg-latin1.map" "" \ +"qwertz/sg.map" "" \ +"qwertz/sk-prog-qwertz.map" "" \ +"qwertz/sk-qwertz.map" "" \ +"qwertz/slovene.map" "" ) + [ -n "$KEYMAP" ] && KEYMAP=$(basename $KEYMAP .map) + fi + + if echo $EXTRA | grep -q RESUMEDEV ; then + # Print information about swap partitions: + FREERAM=$(free -k | grep "^Mem:" | tr -s ' ' | cut -d' ' -f2) + SWPINFO="" + for SWPDEV in $(grep -w swap $FSTAB | cut -d' ' -f1) ; do + SWPINFO="$SWPINFO $SWPDEV Linux swap partition $(fdisk -s $SWPDEV) KB \\n" + [ $(fdisk -s $SWPDEV) -gt $FREERAM ] && RESUMEDEV=$SWPDEV + done + FREERAM=$(free -m | grep "^Mem:" | tr -s ' ' | cut -d' ' -f2) + RESUMEDEV=$( dialog --stdout --no-collapse --title "HIBERNATE RESUME DEVICE" --inputbox "\ +When using suspend-to-disk feature (hibernate), your computer's RAM is copied \ +to a swap device when it shuts down. The kernel will resume from that RAM \ +image at boot. This means that the swap partition must not be smaller than \ +the amount of RAM you have ($FREERAM MB). \n\ +$SWPINFO \n\ +Please specify a swap partition to be used for hibernation:" \ +0 0 "$RESUMEDEV") + [ -z "$RESUMEDEV" ] && exit 1 + fi + + if echo $EXTRA | grep -q WAIT ; then + WAIT=$( dialog --stdout --title "WAIT FOR ROOT DEVICE" --inputbox "\ +Some block devices are too slow to be detected properly at boot. USB storage \ +devices and some disk arrays have this 'feature'. To make your machine \ +boot properly, you can add some delay here, to wait until all your disks are \ +probed and detected. The time is in seconds:" 0 0 "$WAIT") + [ -z "$WAIT" ] && exit 1 + fi + + IMGFILE=$( dialog --stdout --title "INITRD IMAGE NAME" --inputbox "\ +Enter your initrd image filename." 0 0 "$IMGFILE" ) + [ -z "$IMGFILE" ] && exit 1 + +else + MLIST=$(add_rootfs_module) +fi + +# Add any modules passed along on the commandline: +if [ -n "$MKINIT_MODS" ]; then + [ -n "$MLIST" ] && MLIST="$MLIST:$(echo $MKINIT_MODS | tr ' ' ':')" \ + || MLIST="$(echo $MKINIT_MODS | tr ' ' ':')" +fi + +# Constructing the mkinitrd command: +MKINIT="mkinitrd -c -k $KVER -f $ROOTFS -r $ROOTDEV" + +# If we have a module list, add them: +if ! [ -z "$MLIST" -o "$MLIST" = ":" ]; then + MKINIT="$MKINIT -m $MLIST" +fi + +# Deal with LUKS/LVM/RAID: +if [ "$USING_LUKS" = "1" ]; then + MKINIT="$MKINIT -C $REALDEV" +fi +if [ "$USING_LVM" = "1" ]; then + MKINIT="$MKINIT -L" +fi +if [ "$USING_RAID" = "1" ]; then + MKINIT="$MKINIT -R" +fi + +if [ -n "$RESUMEDEV" ]; then + # Add hibernation partition: + MKINIT="$MKINIT -h $RESUMEDEV" +fi +if [ -n "$KEYMAP" -a "$KEYMAP" != "us" ]; then + # Add non-us keyboard mapping: + MKINIT="$MKINIT -l $KEYMAP" +fi +if [ -n "$WAIT" -a $WAIT -ne 1 ]; then + # Add non-default wait time: + MKINIT="$MKINIT -w $WAIT" +fi +if ! echo "$MKINIT_PARAMS" | grep -q ' -o ' ; then + # Add non-default output filename: + MKINIT="$MKINIT -o $IMGFILE" +fi +if [ -n "$MKINIT_PARAMS" ]; then + # Add user-supplied additional parameters: + MKINIT="$MKINIT $MKINIT_PARAMS" +fi + +# Notify the user: +if [ "$EMIT" = "all" ]; then + cat <<-EOT + # + # $(basename $0) revision $REV + # + # This script will now make a recommendation about the command to use + # in case you require an initrd image to boot a kernel that does not + # have support for your storage or root filesystem built in + # (such as the Slackware 'generic' kernels'). + # A suitable 'mkinitrd' command will be: + + $MKINIT + EOT +elif [ "$EMIT" = "run" ]; then + echo "$MKINIT" +elif [ "$EMIT" = "conf" ]; then + cat <<-EOT + SOURCE_TREE="$SOURCE_TREE" + CLEAR_TREE="$CLEAR_TREE" + OUTPUT_IMAGE="$IMGFILE" + KERNEL_VERSION="$KVER" + KEYMAP="$KEYMAP" + MODULE_LIST="$(echo $MLIST | cut -f2 -d\ )" + LUKSDEV="$REALDEV" + ROOTDEV="$ROOTDEV" + ROOTFS="$ROOTFS" + RESUMEDEV="$RESUMEDEV" + RAID="$USING_RAID" + LVM="$USING_LVM" + WAIT="$WAIT" + EOT +fi + +if [ -n "$KFILE" ]; then + if [ "$EMIT" = "all" ]; then + cat <<-EOT + # An entry in 'etc/lilo.conf' for kernel '$KFILE' would look like this: + EOT + fi + if [ "$EMIT" = "all" -o "$EMIT" = "lilo" ]; then + # Compensate for the syntax used for the LUKS-on-LVM case: + [ "$(basename $ROOTDEV)" = "$ROOTDEV" ] && BASE="/dev/mapper/" || BASE="" + cat <<-EOT + # Linux bootable partition config begins + # initrd created with '$MKINIT' + image = $KFILE + initrd = $IMGFILE + root = $BASE$ROOTDEV + label = $KVER + read-only + # Linux bootable partition config ends + EOT + fi +fi diff --git a/source/a/mkinitrd/mkinitrd_kernelcheck.diff b/source/a/mkinitrd/mkinitrd_kernelcheck.diff new file mode 100644 index 000000000..e1302f54e --- /dev/null +++ b/source/a/mkinitrd/mkinitrd_kernelcheck.diff @@ -0,0 +1,15 @@ +--- mkinitrd.orig 2008-11-30 15:35:58.000000000 +0100 ++++ mkinitrd 2008-12-11 11:16:37.000000000 +0100 +@@ -277,6 +277,12 @@ + esac + done + ++# If kernel modules are needed but the kernel version is absent, exit now: ++if [ ! -d /lib/modules/$KERNEL_VERSION ]; then ++ echo "No modules tree found for kernel \"$KERNEL_VERSION\"" ++ exit 1 ++fi ++ + # If clearing source tree was requested, do that first + if [ "$CLEAR_TREE" = "1" ]; then + clear_source_tree diff --git a/source/a/mkinitrd/slack-desc b/source/a/mkinitrd/slack-desc new file mode 100644 index 000000000..49d1a764f --- /dev/null +++ b/source/a/mkinitrd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mkinitrd: mkinitrd (make an initial ramdisk) +mkinitrd: +mkinitrd: mkinitrd is a script to create an initial ramdisk that is loaded at +mkinitrd: the same time as the kernel. The initial ramdisk may be responsible +mkinitrd: for loading kernel modules (such a filesystem or SCSI controller +mkinitrd: module) that are needed to mount the root filesystem. +mkinitrd: +mkinitrd: The "initrd" is implemented as an initramfs. See the kernel +mkinitrd: documentation for more information on this, if you are interested. +mkinitrd: +mkinitrd: diff --git a/source/a/module-init-tools/doinst.sh b/source/a/module-init-tools/doinst.sh new file mode 100644 index 000000000..41ff1d753 --- /dev/null +++ b/source/a/module-init-tools/doinst.sh @@ -0,0 +1,22 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/modprobe.conf.new + +# Retain legacy behavior by tossing a symlink in /etc/modprobe.d/: +# Note that the plan is to eliminate /etc/modprobe.conf and +# /etc/modules.conf in the long run, so you may wish to remove the +# link and move your actual file into /etc/modprobe.d/ if you want +# to keep it instead of going with smaller chunks in there... +if [ -r etc/modprobe.conf ]; then + ( cd etc/modprobe.d ; ln -s ../modprobe.conf . 2> /dev/null ) +fi + diff --git a/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff b/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff new file mode 100644 index 000000000..1565d93a6 --- /dev/null +++ b/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff @@ -0,0 +1,27 @@ +diff -Nur module-init-tools-3.6.old/doc/modprobe.conf.sgml module-init-tools-3.6.new/doc/modprobe.conf.sgml +--- module-init-tools-3.6.old/doc/modprobe.conf.sgml 2009-02-04 01:45:24.000000000 -0600 ++++ module-init-tools-3.6.new/doc/modprobe.conf.sgml 2009-02-08 01:42:05.097637263 -0600 +@@ -35,7 +35,9 @@ + <para>Because the <command>modprobe</command> command can add or + remove extra more than one module, due to module dependencies, + we need a method of specifying what options are to be used with +- those modules. <filename>/etc/modprobe.conf</filename> (or, if that does not exist, all files under the <filename>/etc/modprobe.d</filename> directory) specifies ++ those modules. All of the files under the <filename>/etc/modprobe.d/</filename> ++ directory are used, or if that directory does not exist, the ++ <filename>/etc/modprobe.conf</filename> file specifies + those options, as required. It can also be used to create + convenient aliases: alternate names for a module. Finally, it + can override the normal <command>modprobe</command> behavior +diff -Nur module-init-tools-3.6.old/modprobe.c module-init-tools-3.6.new/modprobe.c +--- module-init-tools-3.6.old/modprobe.c 2009-02-04 01:45:24.000000000 -0600 ++++ module-init-tools-3.6.new/modprobe.c 2009-02-08 01:42:05.099636402 -0600 +@@ -1366,8 +1366,8 @@ + + static const char *default_configs[] = + { +- "/etc/modprobe.conf", + "/etc/modprobe.d", ++ "/etc/modprobe.conf", + }; + + static void read_toplevel_config(const char *filename, diff --git a/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff b/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff new file mode 100644 index 000000000..24967f0b2 --- /dev/null +++ b/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff @@ -0,0 +1,43 @@ +diff -Nur module-init-tools-3.6.old/modprobe.c module-init-tools-3.6.new/modprobe.c +--- module-init-tools-3.6.old/modprobe.c 2009-02-04 01:45:24.000000000 -0600 ++++ module-init-tools-3.6.new/modprobe.c 2009-02-08 01:40:24.143637295 -0600 +@@ -38,6 +38,7 @@ + #include <asm/unistd.h> + #include <sys/wait.h> + #include <syslog.h> ++#include <regex.h> + + #define streq(a,b) (strcmp((a),(b)) == 0) + #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +@@ -1275,6 +1276,20 @@ + return 1; + } + ++/* Let's exclude a few file extensions */ ++static int valid_file_name(const char *filename) ++{ ++ static regex_t *re = NULL; ++ ++ if (!re) { ++ re = NOFAIL(malloc(sizeof(regex_t))); ++ if (regcomp(re, "(^(\\.|\\.\\.)|\\.(new|orig|bak)$)", ++ REG_EXTENDED|REG_NOSUB) != 0) ++ fatal("regcomp failed: %s\n", strerror(errno)); ++ } ++ return regexec(re, filename, 0, NULL, 0); ++} ++ + /* Simple format, ignore lines starting with #, one command per line. + Returns true or false. */ + static int read_config(const char *filename, +@@ -1294,7 +1309,10 @@ + if (dir) { + struct dirent *i; + while ((i = readdir(dir)) != NULL) { ++ /* Removed this line: + if (!streq(i->d_name,".") && !streq(i->d_name,"..") ++ and replaced with this one: */ ++ if (valid_file_name(i->d_name) + && config_filter(i->d_name)) { + char sub[strlen(filename) + 1 + + strlen(i->d_name) + 1]; diff --git a/source/a/module-init-tools/modprobe.no_sys_check.diff b/source/a/module-init-tools/modprobe.no_sys_check.diff new file mode 100644 index 000000000..90e9a7d19 --- /dev/null +++ b/source/a/module-init-tools/modprobe.no_sys_check.diff @@ -0,0 +1,51 @@ +http://bugs.gentoo.org/258442 + +From 1a55ee5297b883ea4b43cdf74ad890873ebe966c Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Fri, 13 Feb 2009 02:21:10 -0500 +Subject: [PATCH] modprobe: remove pointless /sys requirement + +When modprobe was converted from parsing /proc to parsing /sys, it was not +a straight conversion. Instead, a "sanity" check was added early on where +modprobe would simply abort doing anything useful if /sys isn't mounted. +Unfortunately, this makes modprobe fairly unusable. Considering the +kernel itself can invoke modprobe before userspace gets a chance to start +the init process (and actually mount /sys), we end up with a chicken and +egg issue. Which gets even worse when the kernel keeps running modprobe +over and over and the boot output fills up with: +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. +modprobe: FATAL: /sys is not mounted. + +Since modprobe itself is already written to handle the case where it +cannot figure out whether a given module is loaded (and so was able to run +perfectly fine without /proc being mounted), the check is wholly useless. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + modprobe.c | 5 ----- + 1 files changed, 0 insertions(+), 5 deletions(-) + +diff --git a/modprobe.c b/modprobe.c +index 022004c..110204b 100644 +--- a/modprobe.c ++++ b/modprobe.c +@@ -1522,11 +1522,6 @@ static void handle_module(const char *modname, + const char *cmdline_opts, + int flags) + { +- struct stat finfo; +- +- if (stat("/sys/module", &finfo) < 0) +- fatal("/sys is not mounted.\n"); +- + if (list_empty(todo_list)) { + const char *command; + +-- +1.6.1.3 + + diff --git a/source/a/module-init-tools/module-init-tools.SlackBuild b/source/a/module-init-tools/module-init-tools.SlackBuild new file mode 100755 index 000000000..d69b43bc2 --- /dev/null +++ b/source/a/module-init-tools/module-init-tools.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-module-init-tools + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf module-init-tools-$VERSION +tar xvf $CWD/module-init-tools-$VERSION.tar.bz2 || exit 1 +cd module-init-tools-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Look for /etc/modprobe.d/ first rather than bailing on the idea if +# /etc/modprobe.conf exists. IMHO, this is a better default behavior +# because it allows /etc/modprobe.conf to remain behind if something +# still looks there, and allows a smoother transition towards using +# /etc/modprobe.d/ instead. +zcat $CWD/modprobe.favor.etc.modprobe.d.diff.gz | patch -p1 --verbose || exit 1 + +# Exclude *.{old,new,bak} files (and a few others that obviously aren't +# valid for this... Thanks to Marco d'Itri for the patch that it's based on +zcat $CWD/modprobe.ignore_some_suffixes.diff.gz | patch -p1 --verbose || exit 1 + +# We get (pointless) errors in early stages of the boot if modprobe checks for +# a mounted /sys before it actually gets mounted: +zcat $CWD/modprobe.no_sys_check.diff.gz | patch -p1 --verbose || exit 1 + +# Using --bindir=/sbin to make lsmod go there too +CFLAGS= \ +./configure \ + --prefix=/ \ + --bindir=/sbin \ + --docdir=/usr/doc/module-init-tools-$VERSION \ + --mandir=/usr/man \ + --enable-zlib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We don't need this +rm -f $PKG/sbin/generate-modprobe.conf + +# Links lsmod into /bin +mkdir -p $PKG/bin +( cd $PKG/bin ; ln -sf /sbin/lsmod . ) + +# Add manpage symlink for modprobe.d +( cd $PKG/usr/man/man5 + if [ -f modprobe.conf.5 -a ! -e modprobe.d.5 ]; then + ln -sf modprobe.conf.5 modprobe.d.5 + fi +) + +# Compress manpages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/etc/modprobe.d/ +cat << EOF > $PKG/etc/modprobe.conf.new +# /etc/modprobe.conf (old location for Linux 2.6+ config) +# +# The use of this config file is deprecated. +# Instead, create files in the /etc/modprobe.d/ directory +# containing modprobe options. +# +# For more information, see "man modprobe.conf". +EOF + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/module-init-tools-$VERSION +# Most of these are out of date +cp -a \ + AUTHORS CODING COPYING FAQ HACKING INSTALL NEWS README TODO \ + $PKG/usr/doc/module-init-tools-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/module-init-tools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/module-init-tools/slack-desc b/source/a/module-init-tools/slack-desc new file mode 100644 index 000000000..2f0ca3316 --- /dev/null +++ b/source/a/module-init-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +module-init-tools: module-init-tools (kernel module utilities) +module-init-tools: +module-init-tools: Utilities to load and unload kernel modules. These are used on Linux +module-init-tools: to load extra drivers or other features into the running kernel. +module-init-tools: +module-init-tools: +module-init-tools: +module-init-tools: +module-init-tools: +module-init-tools: +module-init-tools: diff --git a/source/a/mt-st/mt-st.SlackBuild b/source/a/mt-st/mt-st.SlackBuild new file mode 100755 index 000000000..cbf44ec2f --- /dev/null +++ b/source/a/mt-st/mt-st.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-0.9b} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mt-st + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf mt-st-$VERSION +tar xzvf $CWD/mt-st-$VERSION.tar.gz +cd mt-st-$VERSION + +zcat $CWD/mt-st.config.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/mt-st.man.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/mt-st.sdlt.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +sed -i -e 's#<linux/qic117.h>#"qic117.h"#' mtio.h || exit 1 +make || exit 1 + +strip mt stinit +mkdir -p $PKG/bin +cat mt > $PKG/bin/mt-st +chmod 755 $PKG/bin/mt-st +( cd $PKG/bin ; ln -sf mt-st mt ) +mkdir -p $PKG/sbin +cat stinit > $PKG/sbin/stinit +chmod 755 $PKG/sbin/stinit +mkdir -p $PKG/usr/man/man{1,8} +cat mt.1 | gzip -9c > $PKG/usr/man/man1/mt-st.1.gz +cat stinit.8 | gzip -9c > $PKG/usr/man/man8/stinit.8.gz + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/mt-st-$VERSION +cp -a \ + COPYING README* *.lsm stinit.def.examples \ + $PKG/usr/doc/mt-st-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/mt-st-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/mt-st/mt-st.config.diff b/source/a/mt-st/mt-st.config.diff new file mode 100644 index 000000000..756261b15 --- /dev/null +++ b/source/a/mt-st/mt-st.config.diff @@ -0,0 +1,172 @@ +--- mt-st-0.8/stinit.def.examples.configfiles 2002-09-23 19:02:21.000000000 +0200 ++++ mt-st-0.8/stinit.def.examples 2005-04-07 08:21:01.732633520 +0200 +@@ -56,3 +56,169 @@ + mode3 blocksize=0 density=1 # 800 bpi + } + ++# DLT2000 / 2000XT ++manufacturer="QUANTUM" model = "DLT2000" { ++scsi2logical=1 ++can-bsr ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++mode1 blocksize=0 density=0x81 # 10GB + compression on DLTtape III, 15+ with DLTtape IIIXT in 2000XT ++mode2 blocksize=0 density=0x80 # 10GB, no compression on DLTtape III, 15 with DLTtape IIIXT in 2000XT ++mode3 blocksize=0 density=0x18 # 6GB, compression not available, on DLTtape III ++mode4 blocksize=0 density=0x17 #2.6GB, compression not available, on DLTtape III ++} ++ ++# DLT4000 ++manufacturer="QUANTUM" model = "DLT4000" { ++scsi2logical=1 ++can-bsr ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards compatible, use older modes (e.g. from above) as required ++mode1 blocksize=0 density=0x83 # 20GB + compression ++mode2 blocksize=0 density=0x82 # 20GB, no compression ++mode3 blocksize=0 density=0x81 # 10GB + compression (DLT2000 mode) with DLTtape III, 15+ with DLTtape IIIXT in 2000XT ++mode4 blocksize=0 density=0x80 # 10GB, no compression (DLT2000 mode) with DLTtape III, 15 with DLTtape IIIXT in 2000XT ++} ++ ++# DLT7000 ++manufacturer="QUANTUM" model = "DLT7000" { ++scsi2logical=1 ++can-bsr ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards compatible, use older modes (e.g. from above) as required. ++mode1 blocksize=0 density=0x85 # 35GB + compression ++mode2 blocksize=0 density=0x84 # 35GB, no compression ++mode3 blocksize=0 density=0x83 # 20GB + compression (DLT4000 mode) ++mode4 blocksize=0 density=0x82 # 20GB, no compression (DLT4000 mode) ++} ++ ++# DLT8000 ++manufacturer="QUANTUM" model = "DLT8000" { ++scsi2logical=1 ++can-bsr=1 ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards compatible to DLT7000, use older modes (e.g. from above) as required. Modes <10GB (<0x19) not supported! ++mode1 blocksize=0 density=0x89 # 40GB + compression ++mode2 blocksize=0 density=0x88 # 40GB, no compression ++mode3 blocksize=0 density=0x85 # 35GB + compression (DLT7000 mode) ++mode4 blocksize=0 density=0x84 # 35GB, no compression (DLT7000 mode) ++} ++ ++ ++# SDLT220 ++manufacturer="QUANTUM" model = "SuperDLT1" { ++scsi2logical=1 ++can-bsr=1 ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards read compatible to DLT4000/7000/8000. Mode settings are only required for writing, so no need to define any other modes here. ++mode1 blocksize=0 density=0x48 compression=1 # 110 GB + compression ++mode2 blocksize=0 density=0x48 compression=0 # 110 GB, no ompression ++} ++ ++# SDLT320 ++manufacturer="QUANTUM" model = "SDLT320" { ++scsi2logical=1 ++can-bsr=1 ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards write compatible to SDLT220 and read compatible to DLT4000/7000/8000. Mode settings are only required for writing, so we need only the SDL220/320 modes here ++mode1 blocksize=0 density=0x49 compression=1 # 160 GB + compression ++mode2 blocksize=0 density=0x49 compression=0 # 160 GB, no ompression ++mode3 blocksize=0 density=0x48 compression=1 # 110 GB + compression ++mode4 blocksize=0 density=0x48 compression=0 # 110 GB, no ompression ++} ++ ++# SDLT600 ++manufacturer="QUANTUM" model = "SDLT600" { ++scsi2logical=1 ++can-bsr=1 ++auto-lock=0 ++two-fms=0 ++drive-buffering=1 ++buffer-writes ++read-ahead=1 ++async-writes=1 ++can-partitions=0 ++fast-mteom=1 ++# ++# If your stinit supports the timeouts: ++timeout=3600 # 1 hour ++long-timeout=14400 # 4 hours ++# ++# Drive is backwards read compatible to SDLT220/320 and VS160. Mode settings are only required for writing, so we need only the native SDLT600 mode here. ++mode1 blocksize=0 density=0x4a compression=1 # 300 GB + compression ++mode2 blocksize=0 density=0x4a compression=0 # 300 GB, no ompression ++mode3 blocksize=0 density=0x4a compression=1 # 300 GB + compression ++mode4 blocksize=0 density=0x4a compression=0 # 300 GB, no ompression ++} ++ diff --git a/source/a/mt-st/mt-st.man.diff b/source/a/mt-st/mt-st.man.diff new file mode 100644 index 000000000..d22acefcc --- /dev/null +++ b/source/a/mt-st/mt-st.man.diff @@ -0,0 +1,31 @@ +--- mt-st-0.9b/mt.1.manfix 2005-08-21 20:53:50.000000000 +0200 ++++ mt-st-0.9b/mt.1 2005-10-25 12:13:43.000000000 +0200 +@@ -48,20 +48,22 @@ + files. + The tape is positioned on the first block of the next file. + .IP fsfm +-Forward space ++Forward space past + .I count +-files. +-The tape is positioned on the last block of the previous file. ++file marks, then backward space one file record. ++This leaves the tape positioned on the last block of the file that is count-1 ++files past the current file. + .IP bsf + Backward space + .I count + files. + The tape is positioned on the last block of the previous file. + .IP bsfm +-Backward space ++Backward space past + .I count +-files. +-The tape is positioned on the first block of the next file. ++file marks, then forward space one file record. ++This leaves the tape positioned on the first block of the file that is count-1 ++files before the current file. + .IP asf + The tape is positioned at the beginning of the + .I count diff --git a/source/a/mt-st/mt-st.sdlt.diff b/source/a/mt-st/mt-st.sdlt.diff new file mode 100644 index 000000000..8dd9fa9ff --- /dev/null +++ b/source/a/mt-st/mt-st.sdlt.diff @@ -0,0 +1,11 @@ +--- mt-st-0.7/mt.c.orig Sat Feb 22 14:48:09 2003 ++++ mt-st-0.7/mt.c Sat Feb 22 14:50:21 2003 +@@ -220,6 +220,8 @@ + {0x41, "DLT 40GB"}, + {0x45, "QIC-3095-MC (TR-4)"}, + {0x47, "TR-5"}, ++ {0x48, "Quantum SDLT220"}, ++ {0x49, "Quantum SDLT320"}, + {0x80, "DLT 15GB uncomp. or Ecrix"}, + {0x81, "DLT 15GB compressed"}, + {0x82, "DLT 20GB uncompressed"}, diff --git a/source/a/mt-st/slack-desc b/source/a/mt-st/slack-desc new file mode 100644 index 000000000..dda830939 --- /dev/null +++ b/source/a/mt-st/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mt-st: mt-st (controls magnetic tape drive operation) +mt-st: +mt-st: This mt originates from BSD NET-2. Some Linux SCSI tape-specific +mt-st: ioctls have been added to the original source and the man page has +mt-st: been updated. Although this mt program is tailored for SCSI tape, it +mt-st: can also be used with the QIC-02 driver and hopefully with other Linux +mt-st: tape drivers using the same ioctls (some of the commands may not work +mt-st: with all drivers). +mt-st: +mt-st: +mt-st: diff --git a/source/a/mtx/mtx.SlackBuild b/source/a/mtx/mtx.SlackBuild new file mode 100755 index 000000000..c17d11769 --- /dev/null +++ b/source/a/mtx/mtx.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/bash + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# mtx.SlackBuild +# Package mtx for Slackware +# mozes@slackware.com +# ftp://ftp.badtux.net/pub/storage/mtx + +PACKAGE=mtx +VERSION=1.3.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PACKAGE + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Extract source: +cd $TMP +rm -rf $PACKAGE-* +tar zxvvf $CWD/$PACKAGE-$VERSION.tar.gz +cd $PACKAGE-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux \ + --target=$ARCH-slackware-linux || exit 1 + +# Avoid looking in the Kernel source: +sed -i 's?-I/usr/src/linux/include? ?g' Makefile + +# Build: +make || exit 1 + +# Install into package: +mkdir -pm755 $PKG/{install,usr/{sbin,doc/$PACKAGE-$VERSION,man/man1}} +install -m755 scsitape tapeinfo mtx loaderinfo $PKG/usr/sbin +install -m644 *.1 $PKG/usr/man/man1 +gzip -9 $PKG/usr/man/man1/* + +# Strip: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Copy docs: +cp -fa mtx.doc CHANGES COMPATABILITY FAQ LICENSE README TODO \ + $PKG/usr/doc/$PACKAGE-$VERSION + +# Install package description: +install -m644 $CWD/slack-desc $PKG/install + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/$PACKAGE-$VERSION-$ARCH-$BUILD.txz diff --git a/source/a/mtx/slack-desc b/source/a/mtx/slack-desc new file mode 100644 index 000000000..901abb3d4 --- /dev/null +++ b/source/a/mtx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mtx: mtx (Controls tape autochangers) +mtx: +mtx: The MTX program controls the robotic mechanism in autoloaders and +mtx: tape libraries such as the HP SureStore DAT 40x6, Exabyte EZ-17, and +mtx: Exabyte 220. +mtx: +mtx: This program is also reported to work with a variety of other tape +mtx: libraries and autochangers from Tandberg/Overland, Breece Hill, HP, +mtx: Seagate, Dell and Quantum. +mtx: +mtx: diff --git a/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch b/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch new file mode 100644 index 000000000..0ae7ec59f --- /dev/null +++ b/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch @@ -0,0 +1,13 @@ +--- ncompress-4.2.4/compress42.c.bssUnderflow 2006-08-10 11:40:03.000000000 +0200 ++++ ncompress-4.2.4/compress42.c 2006-08-10 11:40:31.000000000 +0200 +@@ -1689,6 +1689,10 @@ + + if (oldcode == -1) + { ++ if (code >= 256) { ++ fprintf(stderr, "uncompress: corrupt input\n"); ++ abort_compress(); ++ } + outbuf[outpos++] = (char_type)(finchar = (int)(oldcode = code)); + continue; + } diff --git a/source/a/ncompress/ncompress-4.2.4-endians.patch b/source/a/ncompress/ncompress-4.2.4-endians.patch new file mode 100644 index 000000000..fdc966220 --- /dev/null +++ b/source/a/ncompress/ncompress-4.2.4-endians.patch @@ -0,0 +1,11 @@ +--- ncompress-4.2.4/compress42.c.endians 2006-09-19 13:53:58.000000000 +0200 ++++ ncompress-4.2.4/compress42.c 2006-09-19 13:57:54.000000000 +0200 +@@ -432,7 +432,7 @@ + + union bytes + { +- long word; ++ int word; + struct + { + #if BYTEORDER == 4321 diff --git a/source/a/ncompress/ncompress.2GB.diff b/source/a/ncompress/ncompress.2GB.diff new file mode 100644 index 000000000..8c545caf4 --- /dev/null +++ b/source/a/ncompress/ncompress.2GB.diff @@ -0,0 +1,11 @@ +--- ncompress-4.2.4/compress42.c.2GB 2004-07-14 12:16:19.000000000 -0400 ++++ ncompress-4.2.4/compress42.c 2004-07-14 12:16:59.000000000 -0400 +@@ -1329,7 +1329,7 @@ + REG11 int boff; + REG12 int n_bits; + REG13 int ratio; +- REG14 long checkpoint; ++ REG14 unsigned long long checkpoint; + REG15 code_int extcode; + union + { diff --git a/source/a/ncompress/ncompress.SlackBuild b/source/a/ncompress/ncompress.SlackBuild new file mode 100755 index 000000000..e8b1c68fa --- /dev/null +++ b/source/a/ncompress/ncompress.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.2.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ncompress + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ncompress-${VERSION} +tar xzf $CWD/ncompress-${VERSION}.tar.gz +cd ncompress-${VERSION} +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/ncompress.make.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress.lfs2.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress.filenamelen.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress.2GB.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress.zerobyteforce.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress-${VERSION}-bssUnderflow.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/ncompress-${VERSION}-endians.patch.gz | patch -p1 --verbose || exit 1 + +make ENDIAN=4321 || exit 1 +mkdir -p $PKG/usr/bin +cat compress > $PKG/usr/bin/compress +chmod 755 $PKG/usr/bin/compress +( cd $PKG/usr/bin ; ln -sf compress uncompress ) +mkdir $PKG/bin +( cd $PKG/bin ; ln -sf /usr/bin/compress compress ) +( cd $PKG/bin ; ln -sf compress uncompress ) +mkdir -p $PKG/usr/man/man1 +cat compress.1 | gzip -9c > $PKG/usr/man/man1/compress.1.gz +echo '.so man1/compress.1' | gzip -9c > $PKG/usr/man/man1/uncompress.1.gz +mkdir -p $PKG/usr/doc/ncompress-${VERSION} +cp -a \ + Acknowleds LZW.INFO README \ + $PKG/usr/doc/ncompress-${VERSION} + +# Strip everything for good measure: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/ncompress-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/ncompress/ncompress.filenamelen.diff b/source/a/ncompress/ncompress.filenamelen.diff new file mode 100644 index 000000000..67676c7a8 --- /dev/null +++ b/source/a/ncompress/ncompress.filenamelen.diff @@ -0,0 +1,98 @@ +--- ncompress-4.2.4/compress42.c.filenamelen Wed Nov 21 12:19:38 2001 ++++ ncompress-4.2.4/compress42.c Wed Nov 21 12:20:03 2001 +@@ -140,6 +140,7 @@ + #include <sys/types.h> + #include <sys/stat.h> + #include <errno.h> ++#include <string.h> + + #ifdef DIRENT + # include <dirent.h> +@@ -213,7 +214,7 @@ + # define OBUFSIZ BUFSIZ /* Default output buffer size */ + #endif + +-#define MAXPATHLEN 1024 /* MAXPATHLEN - maximum length of a pathname we allow */ ++#define MAXPATHLEN PATH_MAX /* MAXPATHLEN - maximum length of a pathname we allow */ + #define SIZE_INNER_LOOP 256 /* Size of the inter (fast) compress loop */ + + /* Defines for third byte of header */ +@@ -641,13 +642,11 @@ + } ; + #endif + +-void main ARGS((int,char **)); + void Usage ARGS((void)); + void comprexx ARGS((char **)); + void compdir ARGS((char *)); + void compress ARGS((int,int)); + void decompress ARGS((int,int)); +-char *rindex ARGS((char *,int)); + void read_error ARGS((void)); + void write_error ARGS((void)); + void abort_compress ARGS((void)); +@@ -694,13 +693,15 @@ + * deterministic, and can be done on the fly. Thus, the decompression + * procedure needs no input table, but tracks the way the table was built. + */ +-void ++int + main(argc, argv) + REG1 int argc; + REG2 char *argv[]; + { + REG3 char **filelist; + REG4 char **fileptr; ++ int i; ++ + + if (fgnd_flag = (signal(SIGINT, SIG_IGN) != SIG_IGN)) + signal(SIGINT, (SIG_TYPE)abort_compress); +@@ -714,7 +715,14 @@ + nomagic = 1; /* Original didn't have a magic number */ + #endif + +- filelist = fileptr = (char **)malloc(argc*sizeof(char *)); ++ for(i=0;i<argc;i++){ ++ if(strlen(argv[i])>(MAXPATHLEN-1)){ ++ fprintf(stderr,"Filename too long\n"); ++ exit(1); ++ } ++ } ++ ++ filelist = fileptr = (char **)malloc(argc*sizeof(char *)); + *filelist = NULL; + + if((progname = rindex(argv[0], '/')) != 0) +@@ -853,8 +861,9 @@ + else + decompress(0, 1); + } +- ++ + exit((exit_code== -1) ? 1:exit_code); ++ return 0; + } + + void +@@ -1801,20 +1810,6 @@ + write_error(); + } + +-char * +-rindex(s, c) /* For those who don't have it in libc.a */ +- REG1 char *s; +- REG2 int c; +- { +- char *p; +- +- for (p = NULL; *s; s++) +- if (*s == (char)c) +- p = s; +- +- return(p); +- } +- + void + read_error() + { diff --git a/source/a/ncompress/ncompress.lfs2.diff b/source/a/ncompress/ncompress.lfs2.diff new file mode 100644 index 000000000..9da42eb56 --- /dev/null +++ b/source/a/ncompress/ncompress.lfs2.diff @@ -0,0 +1,52 @@ +--- ncompress-4.2.4/compress42.c.lfs 2002-06-19 19:19:33.000000000 -0400 ++++ ncompress-4.2.4/compress42.c 2002-06-19 19:20:48.000000000 -0400 +@@ -130,6 +130,7 @@ + * Add variable bit length output. + * + */ ++#include <unistd.h> + #include <stdio.h> + #include <fcntl.h> + #include <ctype.h> +@@ -168,30 +169,6 @@ + # define SIG_TYPE void (*)() + #endif + +-#ifndef NOFUNCDEF +- extern void *malloc LARGS((int)); +- extern void free LARGS((void *)); +-#ifndef _IBMR2 +- extern int open LARGS((char const *,int,...)); +-#endif +- extern int close LARGS((int)); +- extern int read LARGS((int,void *,int)); +- extern int write LARGS((int,void const *,int)); +- extern int chmod LARGS((char const *,int)); +- extern int unlink LARGS((char const *)); +- extern int chown LARGS((char const *,int,int)); +- extern int utime LARGS((char const *,struct utimbuf const *)); +- extern char *strcpy LARGS((char *,char const *)); +- extern char *strcat LARGS((char *,char const *)); +- extern int strcmp LARGS((char const *,char const *)); +- extern unsigned strlen LARGS((char const *)); +- extern void *memset LARGS((void *,char,unsigned int)); +- extern void *memcpy LARGS((void *,void const *,unsigned int)); +- extern int atoi LARGS((char const *)); +- extern void exit LARGS((int)); +- extern int isatty LARGS((int)); +-#endif +- + #define MARK(a) { asm(" .globl M.a"); asm("M.a:"); } + + #ifdef DEF_ERRNO +@@ -535,8 +512,8 @@ + char ofname[MAXPATHLEN]; /* Output filename */ + int fgnd_flag = 0; /* Running in background (SIGINT=SIGIGN) */ + +-long bytes_in; /* Total number of byte from input */ +-long bytes_out; /* Total number of byte to output */ ++long long bytes_in; /* Total number of byte from input */ ++long long bytes_out; /* Total number of byte to output */ + + /* + * 8086 & 80286 Has a problem with array bigger than 64K so fake the array diff --git a/source/a/ncompress/ncompress.make.diff b/source/a/ncompress/ncompress.make.diff new file mode 100644 index 000000000..2a0acc1cc --- /dev/null +++ b/source/a/ncompress/ncompress.make.diff @@ -0,0 +1,60 @@ +--- ncompress-4.2.4/Makefile.orig Thu Oct 31 10:38:46 1996 ++++ ncompress-4.2.4/Makefile Thu Oct 31 10:39:12 1996 +@@ -0,0 +1,57 @@ ++# Makefile generated by build. ++ ++# C complier ++CC=cc $(RPM_OPT_FLAGS) ++ ++# Install directory for binarys ++BINDIR=/usr/bin ++ ++# Install directory for manual ++MANDIR=/usr/man/man1 ++ ++# compiler options: ++# options is a collection of: ++# ++# -DAMIGA=1 Amiga support. ++# -DNOFUNCDEF=1 Disable libary function definitions in ++# compress42.c ++# -DDIRENT=1 Use dirent.h ++# -DSYSDIR=1 Use sys/dir.h ++# -DLSTAT=1 Use lstat for finding symlinks. ++# -DUTIME_H=1 Use utime.h ++# -DUSERMEM=<size> Availble memory for compress (default 800k). ++# -DREGISTERS=<nbr> Number of registers (default 2). ++# -DIBUFSIZ=<size> Input buffer size (default BUFSIZ). ++# -DOBUFSIZ=<size> Output buffer size (default BUFSIZ) ++# -DBYTEORDER=<order> Byte order (default: unknown). ++# -DNOALLIGN=1 Data word allignment (default: yes). ++# -DDEF_ERRNO=1 Define error (not defined in errno.h). ++# -DMAXSEG_64K=1 -BITS=16 Support segment processsor like 80286. ++# ++options= -DDIRENT=1 -DSYSDIR=1 -DUTIME_H=1 -DUSERMEM=800000 -DREGISTERS=20 -DIBUFSIZ=1024 -DOBUFSIZ=1024 -DBYTEORDER=$(ENDIAN) ++ ++# libary options ++LBOPT= ++ ++ ++compress: Makefile compress42.c patchlevel.h ++ $(CC) -o compress $(options) "-DCOMPILE_DATE=\"`date`\"" compress42.c ++ ++install: compress ++ [ -f $(BINDIR)/compress ] && \ ++ { rm -f $(BINDIR)/compress.old ; \ ++ mv $(BINDIR)/compress $(BINDIR)/compress.old ; } ++ rm -f $(BINDIR)/uncompress $(BINDIR)/zcat ++ cp compress $(BINDIR)/compress ++ strip $(BINDIR)/compress ++ rm -f $(BINDIR)/uncompress ++ ln $(BINDIR)/compress $(BINDIR)/uncompress ++ rm -f $(BINDIR)/zcat ++ ln -f $(BINDIR)/compress $(BINDIR)/zcat ++ cp zcmp zdiff zmore $(BINDIR)/. ++ chmod 0755 $(BINDIR)/compress $(BINDIR)/zcmp $(BINDIR)/zdiff $(BINDIR)/zmore ++ cp compress.1 zcmp.1 zmore.1 $(MANDIR)/. ++ chmod 0644 $(MANDIR)/compress.1 $(MANDIR)/zcmp.1 $(MANDIR)/zmore.1 ++ ++cleanup: ++ rm -f compress compress.def comp.log diff --git a/source/a/ncompress/ncompress.zerobyteforce.diff b/source/a/ncompress/ncompress.zerobyteforce.diff new file mode 100644 index 000000000..465d67e3e --- /dev/null +++ b/source/a/ncompress/ncompress.zerobyteforce.diff @@ -0,0 +1,24 @@ +--- ncompress-4.2.4/compress42.c.zerobyteforce 2006-04-14 14:18:28.000000000 +0200 ++++ ncompress-4.2.4/compress42.c 2006-04-14 14:20:15.000000000 +0200 +@@ -1145,10 +1145,12 @@ + if (fdout != 1 && close(fdout)) + write_error(); + +- if (bytes_in == 0) ++ if ( (bytes_in == 0) && (force == 0 ) ) + { + if (remove_ofname) + { ++ if(!quiet) ++ fprintf(stderr, "No compression -- %s unchanged\n", ifname); + if (unlink(ofname)) /* Remove input file */ + { + fprintf(stderr, "\nunlink error (ignored) "); +@@ -1157,6 +1159,7 @@ + } + + remove_ofname = 0; ++ exit_code = 2; + } + } + else diff --git a/source/a/ncompress/slack-desc b/source/a/ncompress/slack-desc new file mode 100644 index 000000000..24bfa0222 --- /dev/null +++ b/source/a/ncompress/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ncompress: ncompress (the classic *nix compression utility) +ncompress: +ncompress: Compress reduces the size of the named files using adaptive Lempel-Ziv +ncompress: coding. Whenever possible, each file is replaced by one with the +ncompress: extension .Z, while keeping the same ownership modes, access and +ncompress: modification times. If no files are specified, the standard input is +ncompress: compressed to the standard output. Compressed files can be restored +ncompress: to their original form using uncompress or zcat. +ncompress: +ncompress: +ncompress: diff --git a/source/a/ntfs-3g/10-ntfs-3g-policy.fdi b/source/a/ntfs-3g/10-ntfs-3g-policy.fdi new file mode 100644 index 000000000..baaf81591 --- /dev/null +++ b/source/a/ntfs-3g/10-ntfs-3g-policy.fdi @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<deviceinfo version="0.2"> + <device> + <match key="volume.fstype" string="ntfs"> + <match key="@block.storage_device:storage.hotpluggable" bool="true"> + <merge key="volume.fstype" type="string">ntfs-3g</merge> + <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge> + <append key="volume.mount.valid_options" type="strlist">locale=</append> + </match> + </match> + </device> +</deviceinfo> diff --git a/source/a/ntfs-3g/ntfs-3g.SlackBuild b/source/a/ntfs-3g/ntfs-3g.SlackBuild new file mode 100755 index 000000000..2883d4fbf --- /dev/null +++ b/source/a/ntfs-3g/ntfs-3g.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Slackware build script for ntfs-3g + +# Copyright (c) 2008, Antonio Hernandez Blas <hba.nihilismus@gmail.com> +# 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. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman <rworkman@slackware.com> +# Modified by Patrick Volkerding <volkerdi@slackware.com> +# Modified by Eric Hameleers <alien@slackware.com> + +PRGNAM=ntfs-3g +VERSION=${VERSION:-2009.4.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --bindir=/bin \ + --sbindir=/sbin \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --with-fuse=internal \ + --disable-ldconfig \ + --enable-static=no \ + --build=${ARCH}-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Add the HAL fdi file so that automount uses "ntfs-3g" as filesystem type +mkdir -p $PKG/usr/share/hal/fdi/policy/10osvendor +cat $CWD/10-ntfs-3g-policy.fdi \ + > $PKG/usr/share/hal/fdi/policy/10osvendor/10-ntfs-3g-policy.fdi + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +rm -rf $PKG/usr/share/doc +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* CREDITS INSTALL NEWS README* \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/ntfs-3g/slack-desc b/source/a/ntfs-3g/slack-desc new file mode 100644 index 000000000..353695bbf --- /dev/null +++ b/source/a/ntfs-3g/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +ntfs-3g: ntfs-3g (NTFS read-write filesystem driver) +ntfs-3g: +ntfs-3g: The NTFS-3G driver is an open source, freely available NTFS driver +ntfs-3g: for Linux with read and write support. It provides safe and fast +ntfs-3g: handling of the Windows XP, Windows Server 2003, Windows 2000 and +ntfs-3g: Windows Vista file systems. Most POSIX file system operations are +ntfs-3g: supported, with the exception of full file ownership and access +ntfs-3g: rights support. +ntfs-3g: +ntfs-3g: Homepage for the ntfs-3g project: http://www.ntfs-3g.org +ntfs-3g: diff --git a/source/a/patch/patch.SlackBuild b/source/a/patch/patch.SlackBuild new file mode 100755 index 000000000..fb0c06d98 --- /dev/null +++ b/source/a/patch/patch.SlackBuild @@ -0,0 +1,64 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.5.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-patch + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf patch-${VERSION} +tar xzvf $CWD/patch-${VERSION}.tar.gz +cd patch-${VERSION} +chown -R root:root . +mkdir -p $PKG/usr/doc/patch-${VERSION} +cp -a AUTHORS COPYING NEWS README $PKG/usr/doc/patch-${VERSION} +chmod 644 $PKG/usr/doc/patch-${VERSION}/* +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make CFLAGS=-O2 || exit 1 +mkdir -p $PKG/usr/bin +cat patch > $PKG/usr/bin/patch +chmod 755 $PKG/usr/bin/patch +mkdir -p $PKG/usr/man/man1 +cat patch.man | gzip -9c > $PKG/usr/man/man1/patch.1.gz + +# Strip everything for good measure: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/patch-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/patch/slack-desc b/source/a/patch/slack-desc new file mode 100644 index 000000000..5ddba89b5 --- /dev/null +++ b/source/a/patch/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +patch: patch (apply a diff file to an original file or files) +patch: +patch: Patch is a utility used to apply diffs (or patches) to files, which +patch: are usually source code. +patch: +patch: Larry Wall wrote the original version of patch. Paul Eggert removed +patch: patch's arbitrary limits; added support for binary files, setting +patch: file times, and deleting files; and made it conform better to POSIX. +patch: Other contributors include Wayne Davison, who added unidiff support, +patch: and David MacKenzie, who added configuration and backup support. +patch: diff --git a/source/a/pciutils/pciutils.SlackBuild b/source/a/pciutils/pciutils.SlackBuild new file mode 100755 index 000000000..183c7adde --- /dev/null +++ b/source/a/pciutils/pciutils.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-3.1.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pciutils + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf pciutils-$VERSION +tar xvf $CWD/pciutils-$VERSION.tar.bz2 || exit 1 +cd pciutils-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fetch the latest pci.ids: +rm -f pci.ids +sh update-pciids.sh +# Now fix the update-pciids script and preinstall it before 'make install' +# decides that it knows best +zcat $CWD/pciutils.ids.dest.diff.gz | patch -p1 --verbose || exit 1 +mkdir -p $PKG/usr/sbin +cat update-pciids.sh > $PKG/usr/sbin/update-pciids +chmod 755 $PKG/usr/sbin/update-pciids + +make \ + PREFIX=/usr \ + SBINDIR=/sbin \ + LIBDIR=/usr/lib${LIBDIRSUFFIX} \ + MANDIR=/usr/man \ + OPT="$SLKCFLAGS" \ + $NUMJOBS || exit 1 + +make install install-lib \ + PREFIX=/usr \ + SBINDIR=/sbin \ + LIBDIR=/usr/lib${LIBDIRSUFFIX} \ + MANDIR=/usr/man \ + DESTDIR=$PKG + +# Do not compress pci.ids - hal-0.5.11 needs it uncompressed +( cd $PKG/usr/share ; gzip -d pci.ids.gz ) +# Remove the update-pciids script that 'make install' placed +rm -f $PKG/sbin/update-pciids + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/pciutils-$VERSION +cp -a \ + ChangeLog README TODO \ + $PKG/usr/doc/pciutils-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/pciutils-$VERSION-$ARCH-$BUILD.txz diff --git a/source/a/pciutils/pciutils.ids.dest.diff b/source/a/pciutils/pciutils.ids.dest.diff new file mode 100644 index 000000000..98d152c2b --- /dev/null +++ b/source/a/pciutils/pciutils.ids.dest.diff @@ -0,0 +1,14 @@ +diff -Nur pciutils-3.1.3.orig/update-pciids.sh pciutils-3.1.3/update-pciids.sh +--- pciutils-3.1.3.orig/update-pciids.sh 2008-11-10 17:11:51.000000000 -0600 ++++ pciutils-3.1.3/update-pciids.sh 2009-07-29 02:23:53.102308103 -0500 +@@ -3,8 +3,8 @@ + [ "$1" = "-q" ] && quiet=true || quiet=false + + set -e +-SRC="http://pciids.sourceforge.net/v2.2/pci.ids" +-DEST=pci.ids ++SRC="http://pciids.sourceforge.net/pci.ids" ++DEST=/usr/share/pci.ids + PCI_COMPRESSED_IDS= + GREP=grep + diff --git a/source/a/pciutils/pciutils.url b/source/a/pciutils/pciutils.url new file mode 100644 index 000000000..e77494b5e --- /dev/null +++ b/source/a/pciutils/pciutils.url @@ -0,0 +1,2 @@ +#ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/ +ftp.kernel.org:/pub/software/utils/pciutils/ diff --git a/source/a/pciutils/slack-desc b/source/a/pciutils/slack-desc new file mode 100644 index 000000000..913f9646a --- /dev/null +++ b/source/a/pciutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pciutils: pciutils (PCI utilities) +pciutils: +pciutils: lspci displays detailed information about all PCI buses and devices +pciutils: in the system, replacing the original /proc/pci interface. +pciutils: +pciutils: setpci allows reading from and writing to PCI device configuration +pciutils: registers. For example, you can adjust the latency timers with it. +pciutils: +pciutils: See the manual pages for more details. +pciutils: +pciutils: diff --git a/source/a/pcmciautils/config/60-pcmcia.rules b/source/a/pcmciautils/config/60-pcmcia.rules new file mode 100644 index 000000000..677da01bf --- /dev/null +++ b/source/a/pcmciautils/config/60-pcmcia.rules @@ -0,0 +1,22 @@ +# PCMCIA devices: +# +# Very few CIS firmware entries (which we use for matching) +# are so broken that we need to read out random bytes of it +# instead of the manufactor, card or product ID. Then the +# matching is done in userspace. +ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \ + RUN+="/sbin/pcmcia-check-broken-cis" + +# However, the "weak" matching by func_id is only allowed _after_ modprobe +# returns, so that "strong" matches have a higher priority. +ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \ + RUN+="/bin/sh -c 'echo 1 > /sys/$DEVPATH/allow_func_id_match'" + +# PCMCIA sockets: +# +# modprobe the pcmcia bus module so that 16-bit PCMCIA devices work +ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/modprobe pcmcia" + +# if this is a PCMCIA socket which needs a resource database, +# pcmcia-socket-startup sets it up +ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/pcmcia-socket-startup" diff --git a/source/a/pcmciautils/config/config.opts b/source/a/pcmciautils/config/config.opts new file mode 100644 index 000000000..5b8d5faf3 --- /dev/null +++ b/source/a/pcmciautils/config/config.opts @@ -0,0 +1,71 @@ +# +# Local PCMCIA Configuration File +# +#---------------------------------------------------------------------- +# +# System resources available for PCMCIA cards +# +# NOTE: these settings have no effect on resources assigned to a +# CardBus bridge device itself; this file only affects resources +# assigned to cards. Also, interrupt settings here will only affect +# ISA bus interrupts assigned to 16-bit cards. PCI interrupts +# generally can't be reconfigured. +# +# With the kernel PCMCIA subsystem, these settings also have no effect +# at all on resources used for 32-bit CardBus cards. Those are set by +# the PCI hotplug subsystem. +# + +# These are the official ports to use from pcmcia-cs: +#include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff +# However, ports 0x810-0x81f hurt on some DELL machines and +# ports 0x3b0-0x3df hurt on some FSC machines, so we use this port +# list instead: +include port 0x100-0x3af, port 0x3e0-0x4ff, port 0xc00-0xcff + +include memory 0xc0000-0xfffff +include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff + +# High port numbers do not always work... +# include port 0x1000-0x17ff + +# Extra port range for IBM Token Ring +include port 0xa00-0xaff + +# Resources we should not use, even if they appear to be available + +# First built-in serial port +exclude irq 4 +# Second built-in serial port +#exclude irq 3 +# First built-in parallel port +exclude irq 7 + +#---------------------------------------------------------------------- + +# Examples of options for loadable modules + +# To fix sluggish network with IBM ethernet adapter... +#module "pcnet_cs" opts "mem_speed=600" + +# Options for IBM Token Ring adapters +#module "ibmtr_cs" opts "mmiobase=0xd0000 srambase=0xd4000" + +# Options for Raylink/WebGear driver: uncomment only one line... +# These are the default settings for use with the WebGear Windows driver: +#module "ray_cs" opts "essid=NETWORK_NAME hop_dwell=128 beacon_period=256 translate=0" +# Generic ad-hoc network +#module "ray_cs" opts "essid=ADHOC_ESSID hop_dwell=128 beacon_period=256 translate=1" +# Infrastructure network for older cards +#module "ray_cs" opts "net_type=1 essid=ESSID1" +# Infrastructure network for WebGear +#module "ray_cs" opts "net_type=1 essid=ESSID1 translate=1 hop_dwell=128 beacon_period=256" + +# Options for WaveLAN/IEEE driver (AccessPoint mode)... +#module "wvlan_cs" opts "station_name=MY_PC" +# Options for WaveLAN/IEEE driver (ad-hoc mode)... +#module "wvlan_cs" opts "port_type=3 channel=1 station_name=MY_PC" + +# Options for Xircom Netwave driver... +#module "netwave_cs" opts "domain=0x100 scramble_key=0x0" + diff --git a/source/a/pcmciautils/config/rc.pcmcia b/source/a/pcmciautils/config/rc.pcmcia new file mode 100755 index 000000000..1f21be84e --- /dev/null +++ b/source/a/pcmciautils/config/rc.pcmcia @@ -0,0 +1,65 @@ +#!/bin/sh +# +# rc.pcmcia: Script to initialize PCMCIA subsystem. +# Based in an example found in cardmgr-to-pcmciautils.txt +# and in Slackware rc.pcmcia found in pcmcia-cs package. +# + +# Set this to the driver to use, one of: +# probe, yenta_socket, i82365, i82092, pd6729, tcic, etc. +# +DRIVER=probe +DRIVER_OPTS= + +case "$1" in + start) + echo "Starting PCMCIA services:" + fgrep -q pcmcia /proc/devices + if [ $? -ne 0 ] ; then + if [ "$DRIVER" = "probe" ]; then + echo " <Probing for PCIC: edit /etc/rc.d/rc.pcmcia>" + for DRV in yenta_socket i82365 tcic ; do + /sbin/modprobe $DRV > /dev/null 2>&1 + /sbin/pccardctl status | grep -q Socket && break + /sbin/modprobe -r $DRV > /dev/null 2>&1 + done + else + echo " <Loading PCIC: $DRIVER>" + /sbin/modprobe $DRIVER $DRIVER_OPTS > /dev/null 2>&1 + fi + /sbin/modprobe pcmcia > /dev/null 2>&1 # just in case it's not auto-loaded + else + echo " <PCIC already loaded>" + fi + ;; + + stop) + echo -n "Shutting down PCMCIA services: " + echo -n "cards " + /sbin/pccardctl eject + MODULES=`/sbin/lsmod | grep "pcmcia " | awk '{print $4}' | tr , ' '` + for i in $MODULES ; do + echo -n "$i " + /sbin/modprobe -r $i > /dev/null 2>&1 + done + echo -n "pcmcia " + /sbin/modprobe -r pcmcia > /dev/null 2>&1 + if [ "$DRIVER" = "probe" ]; then + for DRV in yenta_socket i82365 tcic ; do + grep -qw $DRV /proc/modules && modprobe -r $DRV && \ + echo -n "$DRV " && break + done + else + /sbin/modprobe -r $DRIVER > /dev/null 2>&1 + fi + echo -n "rsrc_nonstatic " + /sbin/modprobe -r rsrc_nonstatic > /dev/null 2>&1 + echo "pcmcia_core" + /sbin/modprobe -r pcmcia_core > /dev/null 2>&1 + ;; + + restart) + $0 stop + $0 start + ;; +esac diff --git a/source/a/pcmciautils/doinst.sh b/source/a/pcmciautils/doinst.sh new file mode 100644 index 000000000..d01ddb5c4 --- /dev/null +++ b/source/a/pcmciautils/doinst.sh @@ -0,0 +1,13 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.pcmcia.new +config etc/pcmcia/config.opts.new diff --git a/source/a/pcmciautils/pcmciautils.SlackBuild b/source/a/pcmciautils/pcmciautils.SlackBuild new file mode 100755 index 000000000..dcf70895a --- /dev/null +++ b/source/a/pcmciautils/pcmciautils.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Slackware build script for pcmciautils + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-015} +ARCH=${ARCH:-x86_64} +# parallel build will cause an error building ccdv: +NUMJOBS=${NUMJOBS:-" -j1 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pcmciautils + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf pcmciautils-$VERSION +tar xvf $CWD/pcmciautils-$VERSION.tar.bz2 +cd pcmciautils-$VERSION +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Add some firmware: +( cd $PKG + tar xvf $CWD/cis-cs-3.2.8.tar.gz + chown -R root:root lib +) + +rm -rf $PKG/etc/* +mkdir -p $PKG/etc/pcmcia $PKG/etc/rc.d $PKG/lib/udev/rules.d + +cp -a $CWD/config/rc.pcmcia $PKG/etc/rc.d/rc.pcmcia.new +chown root:root $PKG/etc/rc.d/rc.pcmcia.new +chmod 0755 $PKG/etc/rc.d/rc.pcmcia.new + +cp -a $CWD/config/config.opts $PKG/etc/pcmcia/config.opts.new +chown root:root $PKG/etc/pcmcia/config.opts.new +chmod 0644 $PKG/etc/pcmcia/config.opts.new + +cp -a udev/60-pcmcia.rules $PKG/lib/udev/rules.d/60-pcmcia.rules +chown root:root $PKG/lib/udev/rules.d/60-pcmcia.rules +chmod 0644 $PKG/lib/udev/rules.d/60-pcmcia.rules + +# Create some symlinks that the udev rules file wants +( cd $PKG/lib/udev + ln -s ../../sbin/pcmcia-check-broken-cis . + ln -s ../../sbin/pcmcia-socket-startup . +) + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/pcmciautils-$VERSION +cp COPYING* $PKG/usr/doc/pcmciautils-$VERSION + +mkdir $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/pcmciautils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/pcmciautils/slack-desc b/source/a/pcmciautils/slack-desc new file mode 100644 index 000000000..c9958af84 --- /dev/null +++ b/source/a/pcmciautils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +pcmciautils: pcmciautils (Utilities for using PCMCIA cards with 2.6+ kernels) +pcmciautils: +pcmciautils: This package provides PCMCIA tools that replace the pcmcia-cs tools +pcmciautils: used with the 2.4.x Linux kernel. PCMCIA cards are commonly used +pcmciautils: in laptops to provide expanded capabilities such as network +pcmciautils: connections, modems, increased memory, and more. +pcmciautils: +pcmciautils: +pcmciautils: +pcmciautils: +pcmciautils: diff --git a/source/a/pkgtools/manpages/explodepkg.8 b/source/a/pkgtools/manpages/explodepkg.8 new file mode 100644 index 000000000..3e11fddc8 --- /dev/null +++ b/source/a/pkgtools/manpages/explodepkg.8 @@ -0,0 +1,41 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH EXPLODEPKG 8 "21 May 1994" "Slackware Version 2.0.0" +.SH NAME +explodepkg \- Extract the contents of a tar+compression package (such as a Slackware +software package) in the current directory. +.SH SYNOPSIS +.B explodepkg +.BI package +.BI [ +.BI package2, +.BI package3, +.BI ... +.BI ] +.SH DESCRIPTION +.B explodepkg +uncompresses and untars Slackware *.tgz (or .tbz, .tlz, .txz) packages (or any archive +that was created by +compressing a tarfile with one of the supported compression utilities) in the current directory. It is not usually +used to install packages, since it doesn't execute the installation scripts +in ./install or ./var/log/setup. The primary use for +.B explodepkg +is in package maintenance - exploding a package in a subdirectory, making fixes +to it or upgrading the software, and then building the updated package with +.B makepkg. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR tar(1), +.BR gzip(1), +.BR installpkg(8), +.BR makepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/installpkg.8 b/source/a/pkgtools/manpages/installpkg.8 new file mode 100644 index 000000000..2d77f10e7 --- /dev/null +++ b/source/a/pkgtools/manpages/installpkg.8 @@ -0,0 +1,91 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH INSTALLPKG 8 "22 Nov 2001" "Slackware Version 8.1.0" +.SH NAME +installpkg \- install Slackware packages. +.SH SYNOPSIS +.B installpkg +[ +.B \--warn +] +[ +.B \--md5sum +] +[ +.B \--root /otherroot +] +[ +.B \--infobox +] +[ +.B \--menu +] +[ +.B \--ask +] +[ +.B \--priority ADD|REC|OPT|SKP +] +[ +.B \--tagfile /somedir/tagfile +] +.BI packagename +[ +.B packagename2 ... +] +.SH DESCRIPTION +.B installpkg +installs single or multiple *.tgz (or .tbz, .tlz, .txz) binary packages designed +for use with the Slackware Linux distribution onto your system. +.SH OPTIONS +.TP +.B \--warn packagename +Generate a report to the standard output about which files and directories +would be removed or overwritten if you install the package, but do not +actually install it. +.TP +.B \--md5sum packagename +Record the package md5sum in the metadata written in /var/log/packages. +.TP +.B \--root /otherroot +Install using a location other than / (the default) as the root of the +filesystem to install on. In the example given, use /otherroot instead. Setting +the ROOT environment variable does the same thing. +.TP +.B \--infobox +Use /bin/dialog to display an informational dialog as the package is installed. +Primarily used when installpkg is called from other scripts. +.TP +.B \--menu +Use /bin/dialog to display a menu asking the user if they would like to install the +package(s) or not. Generally used when installpkg is called from other scripts. +.TP +.B \--ask +Used with -menu mode. When selected, always ask if a package should be +installed regardless of what the package's priority is. +.TP +.B \--priority ADD|REC|OPT|SKP +When installing with the \-menu option, package priority levels (found in the file +"tagfile" in the package directory) are used to automatically install (ADD) or +skip (SKP) a package, or to suggest recommended (REC) or optional (OPT) to the user +if a menu is displayed. If a priority is set on the command line, it will override +the values set in the tagfile for the entire package list. +.TP +.B \--tagfile /somedir/tagfile +Specify a different file to use for package priorities (in this example, /somedir/tagfile +will be used). The default is "tagfile" in the package's directory. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR makepkg(8), +.BR removepkg(8), +.BR explodepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/makepkg.8 b/source/a/pkgtools/manpages/makepkg.8 new file mode 100644 index 000000000..b280ce51f --- /dev/null +++ b/source/a/pkgtools/manpages/makepkg.8 @@ -0,0 +1,135 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH MAKEPKG 8 "21 May 1994" "Slackware Version 2.0.0" +.SH NAME +makepkg \- make Slackware packages. +.SH SYNOPSIS +.B makepkg +[ +.B -l, --linkadd y|n +] +[ +.B -c, --chown y|n +] +.BI packagename +.SH DESCRIPTION +.B makepkg +creates a new Slackware compatible package. +The package is constructed using the contents of the current directory and +all subdirectories. If symbolic links exist, they will be converted to script +code to recreate them when the package is installed. This code will be +appended to the primary installation script +.B ( install/doinst.sh ) +, or, if that script does not exist it will be created with those contents. +The package will be written out to the file +.BI packagename +which should be the full name, including the extension. This is usually .tgz, +but .tbz, .tlz, and .txz are also accepted. The proper compression utility +(gzip, bzip2, lzma, or xz) needs to be installed on the machine. +.SH OPTIONS +.TP +.B \-l, --linkadd y|n +If y, add any symbolic links found to the install script (doinst.sh) and +delete them. This is the recommended action. If this option is not used, +makepkg will prompt if symbolic links are found. +.TP +.B \-p, --prepend +If this option is given, then any symbolic links added to doinst.sh will be +prepended to the existing script. This is useful for packages that contain +shared libraries that need to be linked first because programs will use them +later in the doinst.sh script. +.TP +.B \-c, --chown y|n +If y, makepkg will reset all directory permissions to 755 and ownership to root:root. +In general, you should have the permissions and ownerships worked out yourself, so +relying on setting this option to y is somewhat sloppy. It is not the default. If an +option is not provided, makepkg will prompt. +.SH INSTALLATION SCRIPTS +There are 3 types of installation scripts supported in the Slackware package +system. +.TP +The first is the +.B primary +installation script. This is found in the subdirectory +.B ./install +and must have the name +.B doinst.sh +in order to be recognized. This ( and other install scripts ) should be written +using the basic Bourne shell syntax recognized by the +.B ash +shell, since this is the shell that will be used to execute the script when +installing from a Slackware install floppy. This is a common trap - beware of +using +.B bash +syntax extensions, because the script will work fine when installed from the +hard drive, but will bomb out when installed from floppy. If the package is +for personal use, this isn't a problem. Be careful, though, if you plan to +share your package with other users. The +.B primary installation script +is executed immediately after the package is installed with +.B installpkg, pkgtool, +or +.B setup. +.TP +The second type of script is the +.B configuration +script. This is found in the subdirectory +.B ./var/log/setup +and must have a name that starts with +.B setup. +in order to be recongnized. An example is the timezone script: +.B /var/log/setup/setup.timeconfig. +These scripts are executed during the +.B CONFIGURE +phase of +.B setup, +and are re-executed each time the user runs the +.B CONFIGURE +option from +.B setup +from then on. +Typically, the user will go through this phase of setup following the +installation of all the packages. Anything that needs to be interactive +should go in one of these scripts to avoid halting the package installation +process during +.B setup. +.TP +The third type of script is the +.B onlyonce +script. Like the name suggests, these are executed only once after the package +is installed, in contrast to the standard +.B configuration +script. These scripts are also found in the +.B ./var/log/setup +directory and must have a name that starts with +.B setup., +but in addition the name must contain the string +.B onlyonce. +An example might be a script with the name +.B /var/log/setup/setup.onlyonce.testscript +.SH PACKAGE FORMAT +.B makepkg +uses GNU tar plus GNU gzip to create its packages. A simple way to +extract the contents of a package (without executing the installation +scripts, of course) is to use a command like this: +.TP +explodepkg package.tgz +.TP +Or, something like this: +.TP +gzip -dc package.tgz | tar xvvf - +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR installpkg(8), +.BR explodepkg(8), +.BR removepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/pkgtool.8 b/source/a/pkgtools/manpages/pkgtool.8 new file mode 100644 index 000000000..56e392176 --- /dev/null +++ b/source/a/pkgtools/manpages/pkgtool.8 @@ -0,0 +1,95 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH PKGTOOL 8 "24 Nov 1995" "Slackware Version 3.1.0" +.SH NAME +pkgtool \- software package maintenance tool. +.SH SYNOPSIS +.B pkgtool +.LP +.B pkgtool +[ +.B --sets #a#b#c# +] +[ +.B --source_mounted +] +[ +.B --ignore_tagfiles +] +[ +.B --tagfile tagfile +] +[ +.B --source_dir directory +] +[ +.B --target_dir directory +] +[ +.B --source_device device +] +.SH DESCRIPTION +.B pkgtool +is a menu-driven package maintenance tool provided with the Slackware Linux +distribution. It allows the user to install, remove, or view +software packages through an interactive +system. Pkgtool can also be used to re-run the menu-driven scripts normally +executed at the end of a Slackware installation. This is useful for doing +basic reconfiguration (like changing the mouse type). +.SH OPTIONS +Most users will not want to use any options when running +.B pkgtool. +These are generally used only when +.B pkgtool +is run during the initial system installation. +Feel free to try them, but be careful. +.TP +.B \--sets #A#B#C# +Install the disk sets A, B, C. Seperate the disk set names by '#' symbols. +.TP +.B \--source_mounted +When this flag is present, +.B pkgtool +will not attempt to unmount and remount the source device with each disk. +.TP +.B \--ignore_tagfiles +When this flag is present, +.B pkgtool +will install every package encountered no matter what the tagfiles say. +.TP +.B \--tagfile tagfile +This flag is used to specify from the command line which tagfile should be +used for the installation. +.TP +.B \--source_dir directory +Used when installing multiple packages from disk sets. This is the directory +in which the subdirectories for each disk are found. This isn't used when +installing from floppy. +.TP +.B \--target_dir directory +The directory where the target root directory is located. This is '/' when +installing on the hard drive, or typically '/mnt' when installing from an +install disk. +.TP +.B \--source_device device +The source device to install from. This is not used if you've provided the +.B \--source_mounted +flag. It's usually used when installing from floppy, as in: + \--source_device /dev/fd0u1440 +or + \--source_device /dev/fd1h1200. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR makepkg(8), +.BR explodepkg(8), +.BR installpkg(8), +.BR removepkg(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/removepkg.8 b/source/a/pkgtools/manpages/removepkg.8 new file mode 100644 index 000000000..3bd8bf7a7 --- /dev/null +++ b/source/a/pkgtools/manpages/removepkg.8 @@ -0,0 +1,108 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH REMOVEPKG 8 "23 Nov 2001" "Slackware Version 8.1.0" +.SH NAME +removepkg \- remove Slackware packages. +.SH SYNOPSIS +.B removepkg +.BI packagename +.LP +[ +.B ROOT=/mnt +] +.B removepkg +[ +.B \-copy +] +[ +.B \-keep +] +[ +.B \-preserve +] +[ +.B \-warn +] +.BI packagename +.SH DESCRIPTION +.B removepkg +removes a previously installed Slackware package, while writing a progress +report to the standard output. A package may be specified either by the +full package name (as you'd see listed in /var/log/packages/), or by the +base package name. For example, the package foo-1.0-i486-1.tgz may be removed +with any of the following commands: + +removepkg foo-1.0-i486-1.tgz (also recognized: .tbz, .tlz, .txz) + +removepkg foo-1.0-i486-1 + +removepkg foo.tgz + +removepkg foo + +When deleting files, +.B removepkg +will analyze the contents of the other packages installed on your system, and +will only delete the files that are unique to the package being removed. +Similarly, the installation scripts for all the other packages will be +considered when deciding whether or not to delete symbolic links from the +package. +.LP +Removing a package (as well as installing one) can be a dangerous undertaking. +For this reason, there is the +.B \-warn +option available. When you use this, +.B removepkg +will not actually remove any files or links, but will output a detailed report +of what it would do if you actually did remove the package. It's suggested that +you do this (and maybe pipe the output to +.B less +) before removing packages to make sure you've backed up anything that might +be important. +.LP +When removing a package, it's original file index will be moved from +/var/log/packages to /var/log/removed_packages. Likewise, it's installation +script will be moved from /var/log/scripts to /var/log/removed_scripts. +.SH OPTIONS +.TP +.B \-warn packagename +Generate a report to the standard output about which files and directories +would be removed, but does not actually remove the package. +.TP +.B \-preserve packagename +If specified, the complete package subtree is reconstructed in +/var/log/setup/tmp/preserved_packages/packagename. +.TP +.B \-copy packagename +Construct a copy of the package under /var/log/setup/tmp/preserved_packages/packagename, +but don't remove it. (same effect as \-warn \-preserve) +.TP +.B \-keep +Save the intermediate files created by removepkg (delete_list, +required_files, uniq_list, del_link_list, required_links, +required_list). Mostly useful for debugging purposes. +.SH " " +It's possible to remove a package from a filesystem +other than / by supplying +.B removepkg +with a +.B ROOT +environment variable: +.TP +.B ROOT=/mnt removepkg package + +.SH AUTHORS +Patrick J. Volkerding <volkerdi@slackware.com>, +with enhancements by Christian Franke <c.franke@acm.org> +.SH "SEE ALSO" +.BR installpkg(8), +.BR makepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/setup.8-deprecated b/source/a/pkgtools/manpages/setup.8-deprecated new file mode 100644 index 000000000..533974222 --- /dev/null +++ b/source/a/pkgtools/manpages/setup.8-deprecated @@ -0,0 +1,120 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH SETUP 8 "21 May 1994" "Slackware Version 2.0.0" +.SH NAME +setup \- Slackware system setup tool. +.SH SYNOPSIS +.B setup +.LP +.SH DESCRIPTION +.B setup +is the system installation and setup tool provided with the Slackware Linux +distribution. +.LP +.B setup +is usually used to install software packages from your hard drive, a CD, +NFS, or floppy disks. It is also a frontend for +.B pkgtool +and many configuration scripts that come with various packages, such as the +scripts which allow you to install LILO, configure your timezone, set your +keyboard fonts, make bootdisks, and many other tasks. +.SH OPTIONS +.TP +.B HELP +Read the +.B setup +help file. +.TP +.B KEYMAP +Change your keyboard map to one of many international and specialized keymaps +available. +.B NOTE: +This change will not become permanent unless you go through the +.B CONFIGURE option. +.TP +.B MAKE TAGS +This allows you to write out custom tagfiles. A +.B tagfile +is a list of package names followed by one of these tags: +.B ADD +(required), +.B SKP +(skip), +.B REC +(recommended) or, +.B OPT +(optional). These allow you to completely automate your software installation. +You can either put these files on the first disk of each disk series +(optionally using a custom 3 character extension), or in a custom location +altogether, such as on a floppy disk in ./a1, ./ap1, ./d1, ..., directories. +The format of a line in a +.B tagfile +is like this: +.LP +package: +.B TAG +.TP +.B SOURCE +Select your source media, such as hard disk, NFS, CD, or floppy. You should +select installation from a directory if your CD or NFS directory has already +been mounted, as it probably is if you're using +.B setup +on your hard drive. +.TP +.B TARGET +Select your target directory. For testing purposes, you may install the +packages to a directory other than '/'. Don't expect them to run from there, +though. +.TP +.B DISK SETS +Select the disk sets you want to install. You can also install custom disk +sets by tagging the +.B CUS +selection. The disk sets must be Slackware-like: they require the diskxxx? +index on each disk, such as diskxyz1 for the first disk of the XYZ series. +On the last disk there must be a file called +.B install.end +to signal the end of the disk series. +.TP +.B INSTALL +Once you've gone through +.B SOURCE +and +.B DISK SETS +( and possibly +.B TARGET +), then you select this choice to go on with the software installation. You'll +be asked what type of tagfiles you want to use and then +.B pkgtool +will be called to install the software. +.TP +.B CONFIGURE +This option runs through several scripts that configure various aspects of your +Linux system. These might include LILO installation, timezone configuration, +and other things. +.TP +.B PKGTOOL +This option calls the +.B pkgtool(8) +utility for you. +.TP +.B EXIT +Exit the +.B setup +program. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR makepkg(8), +.BR installpkg(8), +.BR explodepkg(8), +.BR removepkg(8), +.BR pkgtool(8), +.BR upgradepkg(8) diff --git a/source/a/pkgtools/manpages/upgradepkg.8 b/source/a/pkgtools/manpages/upgradepkg.8 new file mode 100644 index 000000000..8ca7811ba --- /dev/null +++ b/source/a/pkgtools/manpages/upgradepkg.8 @@ -0,0 +1,98 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH UPGRADEPKG 8 "31 May 2002" "Slackware Version 8.1.0" +.SH NAME +upgradepkg \- upgrade Slackware packages. +.SH SYNOPSIS +.B upgradepkg +[ +.B --dry-run +] +[ +.B --install-new +] +[ +.B --reinstall +] +[ +.B --verbose +] +.BI newpackagename +.BI [ newpackagename2 ] +.LP +.B upgradepkg +[ +.B --dry-run +] +[ +.B --install-new +] +[ +.B --reinstall +] +[ +.B --verbose +] +.BI oldpackagename%newpackagename +.BI [ old2%new2 ] +.SH DESCRIPTION +.B upgradepkg +upgrades a Slackware package from an older version to a +newer one. It does this by +.B INSTALLING +the new package onto the system, and then +.B REMOVING +any files from the old package that aren't in the new package. +If the old and new packages have the same name, a single argument is all that +is required. If the packages have different names, supply the name of the +old package followed by a percent symbol (%), then the name of the new package. +Do not add any extra whitespace between pairs of old/new package names. + +If upgradepkg finds more than one installed package matching the old package's +name, it will remove them all. +.TP +To upgrade in a directory other than / (such as /mnt): +.TP +ROOT=/mnt upgradepkg package.tgz (or .tbz, .tlz, .txz) +.SH OPTIONS +.TP +.B \--dry-run +Output a report about which packages would be installed or upgraded +but don't actually perform the upgrades. +.TP +.B \--install-new +Normally upgradepkg only upgrades packages that are already installed on the system, and +will skip any packages that do not already have a version installed. +If +.B --install-new +is specified, the behavior is modified to install new packages in addition to upgrading +existing ones. +.TP +.B \--reinstall +Upgradepkg usually skips packages if the exact same package +(matching name, version, arch, and build number) is already installed on the system. +Use the --reinstall option if you want to upgrade all packages even if the same +version is already installed. +.TP +.B \--verbose +Show all the gory details of the upgrade. +.SH BUGS +Before upgrading a package, save any configuration files (such as in /etc) +that you wish to keep. Sometimes these will be preserved, but it depends on +the package structure. If you want to force new versions of the config files +to be installed, remove the old ones manually prior to running upgradepkg. +.SH AUTHOR +Patrick J. Volkerding <volkerdi@slackware.com> +.SH "SEE ALSO" +.BR makepkg(8), +.BR installpkg(8), +.BR removepkg(8), +.BR explodepkg(8), +.BR pkgtool(8) diff --git a/source/a/pkgtools/obsolete-scripts/README b/source/a/pkgtools/obsolete-scripts/README new file mode 100644 index 000000000..3e0060de1 --- /dev/null +++ b/source/a/pkgtools/obsolete-scripts/README @@ -0,0 +1,5 @@ +This directory contains retired installation scripts. + +setup.90.modem-device is obsolete since udev will overwrite any +existing devices or links in /dev. + diff --git a/source/a/pkgtools/obsolete-scripts/setup.90.modem-device b/source/a/pkgtools/obsolete-scripts/setup.90.modem-device new file mode 100644 index 000000000..a1c5993af --- /dev/null +++ b/source/a/pkgtools/obsolete-scripts/setup.90.modem-device @@ -0,0 +1,44 @@ +#!/bin/sh +#BLURB="Select modem device" +TMP=/var/log/setup/tmp +T_PX="$1" +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi + +dialog --title "MODEM CONFIGURATION" --menu "This part of the configuration \ +process will create a /dev/modem link pointing to the callout device (ttyS0, \ +ttyS1, ttyS2, ttyS3) representing your default modem. You \ +can change this link \ +later if you move your modem to a different port. If your modem is a PCI card, \ +it will probably use /dev/ttyS4 or higher. \ +Please select the callout \ +device which you would like to use for your modem:" 22 68 9 \ +"no modem" "do not set a /dev/modem link" \ +"/dev/ttyS0" "(COM1: under DOS)" \ +"/dev/ttyS1" "(COM2: under DOS)" \ +"/dev/ttyS2" "(COM3: under DOS)" \ +"/dev/ttyS3" "(COM4: under DOS)" \ +"/dev/ttyS4" "PCI modem" \ +"/dev/ttyS5" "PCI modem" \ +"/dev/ttyS6" "PCI modem" \ +"/dev/ttyS7" "PCI modem" \ +"/dev/ttyS8" "PCI modem" \ +"/dev/ttyS9" "PCI modem" \ +"/dev/ttyS10" "PCI modem" \ +"/dev/ttyS11" "PCI modem" \ +"/dev/ttyS12" "PCI modem" \ +"/dev/ttyS13" "PCI modem" \ +"/dev/ttyS14" "PCI modem" \ +"/dev/ttyS15" "PCI modem" \ +2> $TMP/callout + +if [ $? = 0 ]; then + MODEM_DEVICE="`cat $TMP/callout`" + if [ ! "$MODEM_DEVICE" = "no modem" ]; then + MODEM_DEVICE=`basename $MODEM_DEVICE` + ( cd $T_PX/dev ; ln -sf $MODEM_DEVICE modem ) + fi +fi +rm -f $TMP/callout + diff --git a/source/a/pkgtools/pkgtools.SlackBuild b/source/a/pkgtools/pkgtools.SlackBuild new file mode 100755 index 000000000..da70e19f0 --- /dev/null +++ b/source/a/pkgtools/pkgtools.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh +# Copyright 2005, 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Set initial variables: +CWD=`pwd` +if [ "$TMP" = "" ]; then + TMP=/tmp +fi +PKG=$TMP/package-pkgtools + +# *** UPDATE THESE WITH EACH BUILD: +VERSION=13.0 +ARCH=${ARCH:-noarch} +BUILD=3 + +if [ ! -d $TMP ]; then + mkdir -p $TMP # location to build the source +fi +rm -rf $PKG +mkdir -p $PKG + +# Install Slackware script manpages: +( cd $CWD/manpages + mkdir -p $PKG/usr/man/man8 + for page in explodepkg.8 installpkg.8 makepkg.8 upgradepkg.8 pkgtool.8 \ + removepkg.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz + done +) + +# Install Slackware scripts: +( cd $CWD/scripts + # Install the core Slackware package tools: + mkdir -p $PKG/sbin + for file in explodepkg installpkg makebootdisk makepkg pkgtool removepkg upgradepkg ; do + cp -a $CWD/scripts/$file $PKG/sbin + done + chown root:root $PKG/sbin/* + chmod 755 $PKG/sbin/* + # These scripts are used during the installation: + mkdir -p $PKG/var/log/setup/tmp + chmod 700 $PKG/var/log/setup/tmp + for file in setup.* ; do + cp -a $file $PKG/var/log/setup + done + chown root:root $PKG/var/log/setup/setup.* + chmod 755 $PKG/var/log/setup/setup.* +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/pkgtools-$VERSION-$ARCH-$BUILD.tgz + +echo +echo "HEY -- did you remember to update the version numbers in the setup scripts?" +echo + diff --git a/source/a/pkgtools/scripts/explodepkg b/source/a/pkgtools/scripts/explodepkg new file mode 100644 index 000000000..a113b085d --- /dev/null +++ b/source/a/pkgtools/scripts/explodepkg @@ -0,0 +1,97 @@ +#!/bin/sh +# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA +# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +TAR=tar-1.13 +$TAR --help 1> /dev/null 2> /dev/null +if [ ! $? = 0 ]; then + TAR=tar +fi +if [ ! "`LC_MESSAGES=C $TAR --version`" = "tar (GNU tar) 1.13 + +Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +Written by John Gilmore and Jay Fenlason." ]; then + echo "WARNING: pkgtools are unstable with tar > 1.13." + echo " You should provide a \"tar-1.13\" in your \$PATH." + sleep 5 +fi + +if [ $# = 0 ]; then + cat << EOF +Usage: explodepkg package_name [package_name2, ...] + +Explodes a Slackware compatible software package +(or any tar+{gzip,bzip2,lzma,xz archive) in the current directory. +Equivalent to (for each package listed): + + ( umask 000 ; cat package_name | COMPRESSOR -dc | tar xzvf package_name ) + +Note: This should only be used for debugging or examining packages, not for +installing them. It doesn't execute installation scripts or update the package +indexes in /var/log/packages and /var/log/scripts. + +EOF +fi + +# Main loop: +for PKG in $* ; do + echo "Exploding package $PKG in current directory:" + # Determine extension: + packageext="$( echo $PKG | rev | cut -f 1 -d . | rev)" + # Determine compression utility: + case $packageext in + 'tgz' ) + packagecompression=gzip + ;; + 'gz' ) + packagecompression=gzip + ;; + 'tbz' ) + packagecompression=bzip2 + ;; + 'bz2' ) + packagecompression=bzip2 + ;; + 'tlz' ) + packagecompression=lzma + ;; + 'lzma' ) + packagecompression=lzma + ;; + 'txz' ) + packagecompression=xz + ;; + 'xz' ) + packagecompression=xz + ;; + esac + ( umask 000 ; cat $PKG | $packagecompression -dc | $TAR xvf - 2> /dev/null ) + if [ -r install/doinst.sh ]; then + echo + echo "An installation script was detected in ./install/doinst.sh, but" + echo "was not executed." + fi +done + diff --git a/source/a/pkgtools/scripts/installpkg b/source/a/pkgtools/scripts/installpkg new file mode 100644 index 000000000..31bb0b717 --- /dev/null +++ b/source/a/pkgtools/scripts/installpkg @@ -0,0 +1,568 @@ +#!/bin/sh +# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA +# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# +# Sat Apr 25 21:18:53 UTC 2009 +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. +# +# Sat Apr 4 22:58:06 CDT 2009 +# Support additional compression formats if the supporting utilities exist: +# .tbz - bzip2 +# .tlz - lzma +# .txz - xz (also LZMA) +# And of course, .tgz (gzip) is not going anywhere. :-) <volkerdi> +# Add command switches to determine the uncompressed package size even if +# that will slow things down, and to add the package's md5sum to the +# metadata stored in /var/log/packages/. +# +# Fri Dec 21 17:21:35 CST 2007 +# Added a patch from Johnny Morano to work around package removal issues +# caused by packages that do not comply with FHS combined with a grep +# regex error in installpkg. Any package with a single-letter top- +# level directory could not be removed. +# +# Shortened some of the top-line dialog output to avoid overflowing the +# textbox (needed as some of the packages, especially in X, have very +# long base package names now). <pjv> +# +# Sun Nov 26 12:38:25 CST 1995 +# Added patch from Glenn Moloney <glenn@physics.unimelb.edu.au> to allow +# packages to be installed to directories other than /. +# +# Wed Mar 18 15:15:51 CST 1998 +# Changed $TMP directory to /var/log/setup/tmp, and chmod'ed it 700 to close +# some security holes. + +# Return a package name that has been stripped of the dirname portion +# and any of the valid extensions (only): +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'tgz' ) + PKGRETURN=$(basename $1 .tgz) + ;; + 'tbz' ) + PKGRETURN=$(basename $1 .tbz) + ;; + 'tlz' ) + PKGRETURN=$(basename $1 .tlz) + ;; + 'txz' ) + PKGRETURN=$(basename $1 .txz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# If installpkg encounters a problem, it will return a non-zero error code. +# If it finds more than one problem (i.e. with a list of packages) you'll only +# hear about the most recent one. :) +# 1 = tar returned error code +# 2 = corrupt compression envelope +# 3 = does not end in .tgz +# 4 = no such file +# 5 = external compression utility missing +# 99 = user abort from menu mode +EXITSTATUS=0 + +# Do not store md5sums by default: +MD5SUM=0 + +# So that we know what to expect... +umask 022 +TAR=tar-1.13 +$TAR --help 1> /dev/null 2> /dev/null +if [ ! $? = 0 ]; then + TAR=tar +fi +if [ ! "$(LC_MESSAGES=C $TAR --version)" = "tar (GNU tar) 1.13 + +Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +Written by John Gilmore and Jay Fenlason." ]; then + echo "WARNING: pkgtools are unstable with tar > 1.13." + echo " You should provide a \"tar-1.13\" in your \$PATH." + sleep 5 +fi + +usage() { + cat << EOF +Usage: installpkg [options] <package_filename> + +Installpkg is used to install a .t{gz,bz,lz,xz} package like this: + installpkg slackware-package-1.0.0-i486-1.tgz (or .tbz, .tlz, .txz) + +options: --warn (warn if files will be overwritten, but do not install) + --root /mnt (install someplace else, like /mnt) + --infobox (use dialog to draw an info box) + --menu (confirm package installation with a menu, unless + the priority is [required] or ADD) + --ask (used with menu mode: always ask if a package should be + installed regardless of what the package's priority is) + --priority ADD|REC|OPT|SKP (provide a priority for the entire + package list to use instead of the priority in the + tagfile) + --tagfile /somedir/tagfile (specify a different file to use + for package priorities. The default is "tagfile" in + the package's directory) + --md5sum (record the package's md5sum in the metadata file) + +EOF +} + +# Eliminate whitespace function: +crunch() { + while read FOO ; do + echo $FOO + done +} + +package_name() { + STRING=$(pkgbase $1) + # Check for old style package name with one segment: + if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then + echo $STRING + else # has more than one dash delimited segment + # Count number of segments: + INDEX=1 + while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # don't include the null value + # If we don't have four segments, return the old-style (or out of spec) package name: + if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then + echo $STRING + else # we have four or more segments, so we'll consider this a new-style name: + NAME=$(expr $INDEX - 3) + NAME="$(echo $STRING | cut -f 1-$NAME -d -)" + echo $NAME + # cruft for later ;) + #VER=$(expr $INDEX - 2) + #VER="$(echo $STRING | cut -f $VER -d -)" + #ARCH=$(expr $INDEX - 1) + #ARCH="$(echo $STRING | cut -f $ARCH -d -)" + #BUILD="$(echo $STRING | cut -f $INDEX -d -)" + fi + fi +} + +# Parse options: +MODE=install # standard text-mode +while [ 0 ]; do + if [ "$1" = "-warn" -o "$1" = "--warn" ]; then + MODE=warn + shift 1 + elif [ "$1" = "-md5sum" -o "$1" = "--md5sum" ]; then + MD5SUM=1 + shift 1 + elif [ "$1" = "-infobox" -o "$1" = "--infobox" ]; then + MODE=infobox + shift 1 + elif [ "$1" = "-menu" -o "$1" = "--menu" ]; then + MODE=menu + shift 1 + elif [ "$1" = "-ask" -o "$1" = "--ask" ]; then + ALWAYSASK="yes" + shift 1 + elif [ "$1" = "-tagfile" -o "$1" = "--tagfile" ]; then + if [ -r "$2" ]; then + USERTAGFILE="$2" + elif [ -r "$(pwd)/$2" ]; then + USERTAGFILE="$(pwd)/$2" + else + usage + exit + fi + shift 2 + elif [ "$1" = "-priority" -o "$1" = "--priority" ]; then + if [ "$2" = "" ]; then + usage + exit + fi + USERPRIORITY="$2" + shift 2 + elif [ "$1" = "-root" -o "$1" = "--root" ]; then + if [ "$2" = "" ]; then + usage + exit + fi + ROOT="$2" + shift 2 + else + break + fi +done + +# Set the prefix for the package database directories (packages, scripts). +ADM_DIR="$ROOT/var/log" +# If the directories don't exist, "initialize" the package database: +for PKGDBDIR in packages removed_packages removed_scripts scripts setup ; do + if [ ! -d $ADM_DIR/$PKGDBDIR ]; then + rm -rf $ADM_DIR/$PKGDBDIR # make sure it's not a symlink or something stupid + mkdir -p $ADM_DIR/$PKGDBDIR + chmod 755 $ADM_DIR/$PKGDBDIR + fi +done + +# Make sure there's a proper temp directory: +TMP=$ADM_DIR/setup/tmp +# If the $TMP directory doesn't exist, create it: +if [ ! -d $TMP ]; then + rm -rf $TMP # make sure it's not a symlink or something stupid + mkdir -p $TMP + chmod 700 $TMP # no need to leave it open +fi + +# usage(), exit if called with no arguments: +if [ $# = 0 ]; then + usage; + exit +fi + +# If -warn mode was requested, produce the output and then exit: +if [ "$MODE" = "warn" ]; then + while [ -f "$1" ]; do + echo "#### Scanning the contents of $1..." + mkdir -p $TMP/scan$$ + # Determine extension: + packageext="$( echo $1 | rev | cut -f 1 -d . | rev)" + # Determine compressor utility: + case $packageext in + 'tgz' ) + packagecompression=gzip + ;; + 'tbz' ) + packagecompression=bzip2 + ;; + 'tlz' ) + packagecompression=lzma + ;; + 'txz' ) + packagecompression=xz + ;; + esac + ( cd $TMP/scan$$ ; $packagecompression -dc | $TAR xf - install ) < $1 2> /dev/null + if [ -r $TMP/scan$$/install/doinst.sh ]; then + if cat $TMP/scan$$/install/doinst.sh | grep ' rm -rf ' 1>/dev/null 2>/dev/null ; then + cat $TMP/scan$$/install/doinst.sh | grep ' rm -rf ' > $TMP/scan$$/install/delete + echo "The following locations will be completely WIPED OUT to allow symbolic" + echo "links to be made. (We're talking 'rm -rf') These locations may be files," + echo "or entire directories. Be sure you've backed up anything at these" + echo "locations that you want to save before you install this package:" + cat $TMP/scan$$/install/delete | cut -f 3,7 -d ' ' | tr ' ' '/' + fi + if [ -d $TMP/scan$$ ]; then + ( cd $TMP/scan$$ ; rm -rf install ) 2> /dev/null + ( cd $TMP ; rmdir scan$$ ) 2> /dev/null + fi + fi + echo "The following files will be overwritten when installing this package." + echo "Be sure they aren't important before you install this package:" + ( $packagecompression -dc | $TAR tvvf - ) < $1 | grep -v 'drwx' + echo + shift 1 + done + exit +fi + +# Main loop: +for package in $* ; do + + # Simple package integrity check: + if [ ! -f $package ]; then + EXITSTATUS=4 + if [ "$MODE" = "install" ]; then + echo "Cannot install $package: file not found" + fi + continue; + fi + + # "shortname" isn't really THAT short... + # it's just the full name without ".t{gz,bz,lz,xz}" + shortname="$(pkgbase $package)" + packagedir="$(dirname $package)" + # This is the base package name, used for grepping tagfiles and descriptions: + packagebase="$(package_name $shortname)" + + # Reject package if it does not end in '.t{gz,bz,lz,xz}': + if [ "$shortname" = "$(basename $package)" ]; then + EXITSTATUS=3 + if [ "$MODE" = "install" ]; then + echo "Cannot install $package: file does not end in .tgz, .tbz, .tlz, or .txz" + fi + continue; + fi + + # Determine extension: + packageext="$(echo $package | rev | cut -f 1 -d . | rev)" + + # Determine compressor utility: + case $packageext in + 'tgz' ) + packagecompression=gzip + ;; + 'tbz' ) + packagecompression=bzip2 + ;; + 'tlz' ) + packagecompression=lzma + ;; + 'txz' ) + packagecompression=xz + ;; + esac + + # Test presence of external compression utility: + if ! $packagecompression --help 1> /dev/null 2> /dev/null ; then + EXITSTATUS=5 + if [ "$MODE" = "install" ]; then + echo "Cannot install $package: external compression utility $packagecompression missing" + fi + continue; + fi + + # Determine package's priority: + unset PRIORITY + if [ "$USERTAGFILE" = "" ]; then + TAGFILE="$packagedir/tagfile" + else + TAGFILE="$USERTAGFILE" + fi + if [ ! -r "$TAGFILE" ]; then + TAGFILE=/dev/null + fi + if grep "^$packagebase:" "$TAGFILE" | grep ADD > /dev/null 2> /dev/null ; then + PRIORITY="ADD" + elif grep "^$packagebase:" "$TAGFILE" | grep REC > /dev/null 2> /dev/null ; then + PRIORITY="REC" + elif grep "^$packagebase:" "$TAGFILE" | grep OPT > /dev/null 2> /dev/null ; then + PRIORITY="OPT" + elif grep "^$packagebase:" "$TAGFILE" | grep SKP > /dev/null 2> /dev/null ; then + PRIORITY="SKP" + fi + if [ "$PRIORITY" = "ADD" ]; then + PMSG="[ADD]" + elif [ "$PRIORITY" = "REC" ]; then + PMSG="[REC]" + elif [ "$PRIORITY" = "OPT" ]; then + PMSG="[OPT]" + elif [ "$PRIORITY" = "SKP" ]; then + PMSG="[SKP]" + else + PMSG="" + fi + + # If a tagfile wants this package to be skipped, do that now before + # wasting any more CPU on it: + if [ "$PRIORITY" = "SKP" -a ! "$ALWAYSASK" = "yes" ]; then + continue # next package + fi + + # Figure out some package information, like the compressed and uncompressed + # sizes, and where to find the package description: + COMPRESSED="$(du -s $package | cut -f 1)K" + DESCRIPTION="" + # First check for .txt file next to the package, since this is faster: + if grep "^$packagebase:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then + DESCRIPTION="$packagedir/$shortname.txt" + elif grep "^$shortname:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then + DESCRIPTION="$packagedir/$shortname.txt" + fi + + # Test tarball integrity and get uncompressed package size: + if [ "$MODE" = "install" ]; then + echo "Verifying package $(basename $package)." + fi + cat $package | $packagecompression -dc | dd 2> $TMP/tmpsize$$ | $TAR tf - 1> $TMP/tmplist$$ 2> /dev/null + TARERROR=$? + if [ ! "$TARERROR" = "0" ]; then + EXITSTATUS=1 # tar file corrupt + if [ "$MODE" = "install" ]; then + echo "Unable to install $package: tar archive is corrupt (tar returned error code $TARERROR)" + fi + rm -f $TMP/tmplist$$ $TMP/tmpsize$$ + continue + fi + UNCOMPRESSED="$(expr $(cat $TMP/tmpsize$$ | head -n 1 | cut -f 1 -d +) / 2)K" + rm -f $TMP/tmpsize$$ + + # If we still don't have a package description, look inside the package. + # This requires a costly untar. + if [ "$DESCRIPTION" = "" ]; then + mkdir -p $TMP/scan$$ + ( cd $TMP/scan$$ ; $packagecompression -dc | $TAR xf - install ) < $package 2> /dev/null + if grep "^$packagebase:" "$TMP/scan$$/install/slack-desc" 1> /dev/null 2> /dev/null ; then + DESCRIPTION="$TMP/scan$$/install/slack-desc" + elif grep "^$shortname:" "$TMP/scan$$/install/slack-desc" 1> /dev/null 2> /dev/null ; then + DESCRIPTION="$TMP/scan$$/install/slack-desc" + fi + fi + + if [ "$DESCRIPTION" = "" ]; then + #echo "WARNING NO SLACK-DESC" + DESCRIPTION="/dev/null" + fi + + # Gather package infomation into a temporary file: + cat $DESCRIPTION | grep "^$packagebase:" | cut -f 2- -d : | cut -b2- 1> $TMP/tmpmsg$$ 2> /dev/null + if [ "$shortname" != "$packagebase" ]; then + cat $DESCRIPTION | grep "^$shortname:" | cut -f 2- -d : | cut -b2- 1>> $TMP/tmpmsg$$ 2> /dev/null + fi + # Adjust the length here. This allows a slack-desc to be any size up to 13 lines instead of fixed at 11. + LENGTH=$(cat $TMP/tmpmsg$$ | wc -l) + while [ $LENGTH -lt 12 ]; do + echo >> $TMP/tmpmsg$$ + LENGTH=$(expr $LENGTH + 1) + done + echo "Size: Compressed: ${COMPRESSED}, uncompressed: ${UNCOMPRESSED}." >> $TMP/tmpmsg$$ + # For recent versions of dialog it is necessary to add \n to the end of each line + # or it will remove repeating spaces and mess up our careful formatting: + cat << EOF > $TMP/controlns$$ +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +\n +EOF + paste -d "" $TMP/tmpmsg$$ $TMP/controlns$$ > $TMP/pasted$$ + rm -f $TMP/controlns$$ + mv $TMP/pasted$$ $TMP/tmpmsg$$ + # Emit information to the console: + if [ "$MODE" = "install" ]; then + if [ "$PMSG" = "" ]; then + echo "Installing package $(basename $package):" + else + echo "Installing package $(basename $package) $PMSG:" + fi + echo "PACKAGE DESCRIPTION:" + cat $DESCRIPTION | grep "^$packagebase:" | uniq | sed "s/^$packagebase:/#/g" + if [ "$shortname" != "$packagebase" ]; then + cat $DESCRIPTION | grep "^$shortname:" | uniq | sed "s/^$shortname:/#/g" + fi + elif [ "$MODE" = "infobox" ]; then # install infobox package + dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0 + elif [ "$MODE" = "menu" -a "$PRIORITY" = "ADD" -a ! "$ALWAYSASK" = "yes" ]; then # ADD overrides menu mode unless -ask was used + dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0 + elif [ "$MODE" = "menu" -a "$USERPRIORITY" = "ADD" ]; then # install no matter what $PRIORITY + dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0 + else # we must need a full menu: + dialog --title "Package Name: $shortname $PMSG" --menu "$(cat $TMP/tmpmsg$$)" 0 0 3 \ + "Yes" "Install package $shortname" \ + "No" "Do not install package $shortname" \ + "Quit" "Abort software installation completely" 2> $TMP/reply$$ + if [ ! $? = 0 ]; then + echo "No" > $TMP/reply$$ + fi + REPLY="$(cat $TMP/reply$$)" + rm -f $TMP/reply$$ $TMP/tmpmsg$$ + if [ "$REPLY" = "Quit" ]; then + exit 99 # EXIT STATUS 99 = ABORT! + elif [ "$REPLY" = "No" ]; then + continue # skip the package + fi + fi + + # Make sure there are no symbolic links sitting in the way of + # incoming package files: + cat $TMP/tmplist$$ | grep -v "/$" | while read file ; do + if [ -L "$ROOT/$file" ]; then + rm -f "$ROOT/$file" + fi + done + rm -f $TMP/tmplist$$ + + # Write the package file database entry and install the package: + echo "PACKAGE NAME: $shortname" > $ADM_DIR/packages/$shortname + echo "COMPRESSED PACKAGE SIZE: $COMPRESSED" >> $ADM_DIR/packages/$shortname + echo "UNCOMPRESSED PACKAGE SIZE: $UNCOMPRESSED" >> $ADM_DIR/packages/$shortname + echo "PACKAGE LOCATION: $package" >> $ADM_DIR/packages/$shortname + # Record the md5sum if that's a selected option: + if [ $MD5SUM = 1 ]; then + echo "PACKAGE MD5SUM: $(md5sum $package | cut -f 1 -d ' ')" >> $ADM_DIR/packages/$shortname + fi + echo "PACKAGE DESCRIPTION:" >> $ADM_DIR/packages/$shortname + cat $DESCRIPTION | grep "^$packagebase:" >> $ADM_DIR/packages/$shortname 2> /dev/null + if [ "$shortname" != "$packagebase" ]; then + cat $DESCRIPTION | grep "^$shortname:" >> $ADM_DIR/packages/$shortname 2> /dev/null + fi + echo "FILE LIST:" >> $ADM_DIR/packages/$shortname + ( cd $ROOT/ ; $packagecompression -dc | $TAR -xlUpvf - ) < $package >> $TMP/$shortname 2> /dev/null + if [ "$(cat $TMP/$shortname | grep '^\./' | wc -l | tr -d ' ')" = "1" ]; then + # Good. We have a package that meets the Slackware spec. + cat $TMP/$shortname >> $ADM_DIR/packages/$shortname + else + # Some dumb bunny built a package with something other than makepkg. Bad! + # Oh well. Bound to happen. Par for the course. Fix it and move on... + echo "WARNING: Package has not been created with 'makepkg'" + echo './' >> $ADM_DIR/packages/$shortname + cat $TMP/$shortname >> $ADM_DIR/packages/$shortname + fi + rm -f $TMP/$shortname + + # It's a good idea to make sure those newly installed libraries + # are properly activated for use: + if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig + fi + + if [ -f $ROOT/install/doinst.sh ]; then + if [ "$MODE" = "install" ]; then + echo "Executing install script for $(basename $package)." + fi + ( cd $ROOT/ ; sh install/doinst.sh -install; ) + fi + # Clean up the mess... + if [ -d $ROOT/install ]; then + if [ -r $ROOT/install/doinst.sh ]; then + cp $ROOT/install/doinst.sh $ADM_DIR/scripts/$shortname + chmod 755 $ADM_DIR/scripts/$shortname + fi + # /install/doinst.sh and /install/slack-* are reserved locations for the package system. + ( cd $ROOT/install ; rm -f doinst.sh slack-* 1> /dev/null 2>&1 ) + rmdir $ROOT/install 1> /dev/null 2>&1 + fi + # If we used a scan directory, get rid of it: + if [ -d "$TMP/scan$$" ]; then + rm -rf "$TMP/scan$$" + fi + rm -f $TMP/tmpmsg$$ $TMP/reply$$ + if [ "$MODE" = "install" ]; then + echo "Package $(basename $package) installed." + echo + fi +done + +exit $EXITSTATUS diff --git a/source/a/pkgtools/scripts/makebootdisk b/source/a/pkgtools/scripts/makebootdisk new file mode 100644 index 000000000..86b843a8b --- /dev/null +++ b/source/a/pkgtools/scripts/makebootdisk @@ -0,0 +1,444 @@ +#!/bin/sh +# Copyright 1995, 1998, 2002, 2005 Patrick Volkerding, Moorhead, Minnesota USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +if [ ! "$UID" = "0" ]; then + echo "You need to be root to run this script." + exit 1 +fi + +# Was a kernel specified on the command line? +if [ -r "$1" ]; then + KERNEL=$1 + KMSG="Using kernel $KERNEL" +else + KMSG="No kernel selected yet" +fi + +# Make sure there's a proper temp directory: +TMP=/var/log/setup/tmp +# If the $TMP directory doesn't exist, create it: +if [ ! -d $TMP ]; then + rm -rf $TMP # make sure it's not a symlink or something stupid + mkdir -p $TMP + chmod 700 $TMP # no need to leave it open +fi + +ROOT_DEVICE="`mount | grep ' on / ' | cut -f 1 -d ' '`" + +if mount | grep ' on / ' | grep umsdos 1> /dev/null 2> /dev/null ; then + MOUNT="read-write" +else + MOUNT="read-only" +fi + +make_root_device() { +# Make a device: +makedev() { + if [ ! -b $1 ]; then + mknod $1 b $2 $3 + chown root.disk $1 + chmod 640 $1 + fi +} + +# Make ide device +# make ide major minor hd1 hd2 (2 base devs for major) +make_ide() { + # Handle base devices: + if [ "$2" = "0" ]; then + makedev $TMP/lilo/dev/$3 $1 $2 + return 0 + elif [ "$2" = "64" ]; then + makedev $TMP/lilo/dev/$4 $1 $2 + return 0 + fi + # Must be a partition: + if [ "`expr $2 / 64`" = "0" ]; then + DEV=$3 + NUM=$2 + else + DEV=$4 + NUM=`expr $2 - 64` + fi + makedev $TMP/lilo/dev/$DEV$NUM $1 $2 +} + +# Make SCSI device +make_scsi() { + # find drive # 0 - 15 + DRV=`expr $1 / 16` + NUM=`expr $1 % 16` + if [ "$NUM" = "0" ]; then + NUM="" + fi + if [ "$DRV" = "0" ]; then + makedev $TMP/lilo/dev/sda$NUM 8 $1 + elif [ "$DRV" = "1" ]; then + makedev $TMP/lilo/dev/sdb$NUM 8 $1 + elif [ "$DRV" = "2" ]; then + makedev $TMP/lilo/dev/sdc$NUM 8 $1 + elif [ "$DRV" = "3" ]; then + makedev $TMP/lilo/dev/sdd$NUM 8 $1 + elif [ "$DRV" = "4" ]; then + makedev $TMP/lilo/dev/sde$NUM 8 $1 + elif [ "$DRV" = "5" ]; then + makedev $TMP/lilo/dev/sdf$NUM 8 $1 + elif [ "$DRV" = "6" ]; then + makedev $TMP/lilo/dev/sdg$NUM 8 $1 + elif [ "$DRV" = "7" ]; then + makedev $TMP/lilo/dev/sdh$NUM 8 $1 + elif [ "$DRV" = "8" ]; then + makedev $TMP/lilo/dev/sdi$NUM 8 $1 + elif [ "$DRV" = "9" ]; then + makedev $TMP/lilo/dev/sdj$NUM 8 $1 + elif [ "$DRV" = "10" ]; then + makedev $TMP/lilo/dev/sdk$NUM 8 $1 + elif [ "$DRV" = "11" ]; then + makedev $TMP/lilo/dev/sdl$NUM 8 $1 + elif [ "$DRV" = "12" ]; then + makedev $TMP/lilo/dev/sdm$NUM 8 $1 + elif [ "$DRV" = "13" ]; then + makedev $TMP/lilo/dev/sdn$NUM 8 $1 + elif [ "$DRV" = "14" ]; then + makedev $TMP/lilo/dev/sdo$NUM 8 $1 + elif [ "$DRV" = "15" ]; then + makedev $TMP/lilo/dev/sdp$NUM 8 $1 + fi +} + +if cat /proc/partitions | grep / 1> /dev/null 2> /dev/null ; then # new + cat /proc/partitions | grep / | while read line ; do + SMASHED_LINE=$line + MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '` + MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '` + if [ "$MAJOR" = "3" ]; then + make_ide $MAJOR $MINOR hda hdb + elif [ "$MAJOR" = "8" ]; then + make_scsi $MINOR + elif [ "$MAJOR" = "22" ]; then + make_ide $MAJOR $MINOR hdc hdd + elif [ "$MAJOR" = "33" ]; then + make_ide $MAJOR $MINOR hde hdf + elif [ "$MAJOR" = "34" ]; then + make_ide $MAJOR $MINOR hdg hdh + elif [ "$MAJOR" = "56" ]; then + make_ide $MAJOR $MINOR hdi hdj + fi + done +else # old format + cat /proc/partitions | grep d | while read line ; do + SMASHED_LINE=$line + MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '` + MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '` + DEVNAME=`echo $SMASHED_LINE | cut -f 4 -d ' '` + makedev $TMP/lilo/dev/$DEVNAME $MAJOR $MINOR + done +fi +} + +choose_kernel() { +while [ 0 ]; do # input loop +cat << EOF > $TMP/tmpmsg + +Some possible paths to kernels are these: + +/boot/vmlinuz +/usr/src/linux/arch/i386/boot/bzImage +/usr/src/linux/arch/i386/boot/zImage +/vmlinuz + +Put the path to the kernel you want to use in the box below. + +EOF + + dialog --title "CHOOSE KERNEL" --inputbox "`cat $TMP/tmpmsg`" \ + 16 72 "/boot/vmlinuz" 2> $TMP/return + if [ ! $? = 0 ]; then + exit + fi + + KERNEL="`cat $TMP/return`" + + if [ ! -r "$KERNEL" ]; then + dialog --title "NOT FOUND!" --msgbox "$KERNEL" 5 60 + continue + fi + KMSG="Using kernel $KERNEL" +break +done +} + +format_disk() { + # If anyone still uses 1.2 MB, you'll have to uncomment this. + # It's no longer a default option. + #FDEV=/dev/fd0h1200 + #FDEV=/dev/fd0u1400 + FDEV=/dev/fd0u1680 + if [ "$FDEV" = "/dev/fd0u1680" ]; then + dialog --title "Formatting /dev/fd0u1680" --infobox \ + "Formatting /dev/fd0, 1.68 megabytes." 3 42 + elif [ "$FDEV" = "/dev/fd0u1400" ]; then + dialog --title "Formatting /dev/fd0u1440" --infobox \ + "Formatting /dev/fd0, 1.44 megabytes." 3 42 + elif [ "$FDEV" = "/dev/fd0h1200" ]; then + dialog --title "Formatting /dev/fd0h1200" --infobox \ + "Formatting /dev/fd0, 1.2 megabytes." 3 42 + fi + fdformat $FDEV 1> /dev/null 2> /dev/null + if [ ! $? = 0 ]; then + dialog --title "ERROR: FLOPPY FORMAT FAILED" --msgbox "The attempt to format the floppy \ +disk in /dev/fd0 has failed, probably due to bad media. Please try again with a \ +different disk. If that doesn't work, perhaps the drive needs cleaning." 0 0 + return 1 + fi +} + +DEFAULT_ITEM="syslinux" + +while [ 0 ]; do # menu loop + dialog --title "MAKE BOOT FLOPPY FROM KERNEL" \ +--default-item $DEFAULT_ITEM \ +--backtitle "$KMSG" --menu "This menu allows you to make a SYSLINUX bootdisk \ +from a compiled kernel. The SYSLINUX bootloader has the advantage of \ +using a FAT filesystem making it easy to replace the kernel later. \ +Which option would you like?" 12 67 2 \ +"syslinux" "Make a SYSLINUX bootdisk" \ +"exit" "Exit this program" 2> $TMP/return + if [ ! $? = 0 ]; then + break; + fi + REPLY=`cat $TMP/return` + rm -f $TMP/return + if [ "$REPLY" = "simple" ]; then # make simple bootdisk + if [ "$KERNEL" = "" ]; then + choose_kernel + fi + kernel_size=`du -Lk $KERNEL | cut -f1` + if [ "$kernel_size" -gt "1023" ]; then +cat << EOF > $TMP/tmpmsg + +The kernel $KERNEL is $kernel_size K (which is +more than 1023 Kb in size), so it probably won't +boot standalone on the floppy. Use the 'syslinux' +method instead. + +EOF + dialog --title "KERNEL TOO BIG!" --msgbox "`cat $TMP/tmpmsg`" 10 60 + continue + fi + dialog --title "BOOT DISK CREATION" --backtitle "$KMSG" --yesno \ +"\n\ +Now put a formatted floppy in your boot drive. \n\ +This will be made into your Linux boot disk. Use this to\n\ +boot Linux until LILO has been configured to boot from\n\ +the hard drive.\n\n\ +Any data on the target disk will be destroyed.\n\n\ +YES creates the disk, NO aborts.\n" 14 62 + if [ $? = 0 ]; then + format_disk + dialog --title "CREATING DISK" --infobox "Creating boot disk from $KERNEL..." 5 72 + dd if=$KERNEL of=/dev/fd0 2> /dev/null + rdev /dev/fd0 $ROOT_DEVICE + rdev -v /dev/fd0 -1 + if [ "$MOUNT" = "read-only" ]; then + rdev -R /dev/fd0 1 + else + rdev -R /dev/fd0 0 + fi + fi + elif [ "$REPLY" = "syslinux" ]; then # make syslinux bootdisk + DEFAULT_ITEM="exit" + if [ "$KERNEL" = "" ]; then + choose_kernel + fi + dialog --title "CREATING SYSLINUX BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \ +floppy in your boot drive. This will be made into a SYSLINUX \ +bootdisk that you can use to start your Linux system. Any data on the \ +target disk will be destroyed. YES creates the disk, NO aborts." 8 62 + if [ $? = 0 ]; then # make the disk + format_disk + if [ ! $? = 0 ]; then + continue + fi + dialog --title "CREATING BOOT FLOPPY" --infobox "Creating SYSLINUX bootdisk for \ +$ROOT_DEVICE in /dev/fd0." 3 64 + mkdosfs -F 12 /dev/fd0u1680 1680 1> /dev/null 2> /dev/null + if [ ! -d $TMP/bootdisk ]; then + mkdir $TMP/bootdisk + fi + mount -t vfat /dev/fd0 $TMP/bootdisk 1> /dev/null 2> /dev/null + cp $KERNEL $TMP/bootdisk/vmlinuz + ## This avoids a syslinux-1.72 bug, and doesn't seem to hurt anything: + #dd if=/dev/zero bs=1k count=1 >> $TMP/bootdisk/vmlinuz 2> /dev/null + if [ ! "$?" = "0" ]; then + dialog --title "ERROR COPYING KERNEL TO FLOPPY" \ + --msgbox "Sorry, but there was an error copying the kernel to the \ +floppy disk. Possibly the kernel is too large to fit the disk. \ +This program will now exit." 0 0 + umount /dev/fd0 + rm -rf $TMP/bootdisk + exit 1 + fi + cat << EOF > $TMP/bootdisk/message.txt + +Welcome to the 09Slackware07 Linux custom bootdisk! + +By default, this disk boots a root Linux partition on $ROOT_DEVICE when you +hit ENTER. If you'd like to boot some other partition, use a command like +this on the prompt below: + + mount root=/dev/sda1 ro + +Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that +the partition should be initially mounted as read-only. If you wish to mount +the partition read-write, use "rw" instead. To set the video console mode, +use the vga= parameter (press F1 to see a table). You may also add any other +kernel parameters you might need depending on your hardware, and which +drivers are included in your kernel. + +EOF + cat << EOF > $TMP/bootdisk/syslinux.cfg +default vmlinuz ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro +prompt 1 +timeout 6000 +display message.txt +F1 f1.txt +F2 message.txt +#F3 f3.txt +#F4 f4.txt +#F5 f5.txt +#F6 f6.txt +#F7 f7.txt +label mount + kernel vmlinuz + append ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro +label ramdisk + kernel vmlinuz + append vmlinuz ramdisk_size=7000 root=/dev/fd0u1440 vga=normal rw +EOF + cat << EOF > $TMP/bootdisk/f1.txt + STANDARD MODES: + To make the kernel prompt for standard video modes use: vga=ask + + FRAMEBUFFER MODES: + To get the kernel to start in VESA framebuffer mode, you need to pass it + a vga= init string on the "boot:" prompt. Here's a table: + + Colors 640x480 800x600 1024x768 1280x1024 1600x1200 + --------+--------------------------------------------- + 256 | 769 771 773 775 796 + 32,768 | 784 787 790 793 797 + 65,536 | 785 788 791 794 798 + 16.8M | 786 789 792 795 799 + + ...such as this for 1024x768x64k: + vga=791 + + F2 returns to the previous page. + +EOF + umount /dev/fd0 + syslinux-nomtools -s /dev/fd0 + rm -r $TMP/bootdisk + fi + elif [ "$REPLY" = "lilo" ]; then # make lilo bootdisk + DEFAULT_ITEM="exit" + if [ ! -x "`type -path lilo`" ]; then +cat << EOF > $TMP/tmpmsg + +You don't have 'lilo' installed on the system. +I guess you didn't install the lilo package. + +EOF + dialog --title "LILO NOT FOUND" --msgbox "`cat $TMP/tmpmsg`" 8 60 + continue + fi + if [ "$KERNEL" = "" ]; then + choose_kernel + fi + dialog --title "CREATING LILO BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \ +floppy in your boot drive. This will be made into a LILO \ +bootdisk that you can use to start your Linux system. Any data on the \ +target disk will be destroyed. YES creates the disk, NO aborts." 8 62 + if [ $? = 0 ]; then # make the disk + format_disk + DEV=/dev/fd0u1680 + mknod_fd="-m 0640 $TMP/lilo$DEV b 2 44" + dialog --infobox "Creating LILO bootdisk from $KERNEL for $ROOT_DEVICE..." 4 60 + mke2fs -q -m 0 -i 4096 $DEV 1> /dev/null 2> /dev/null || exit 1 + if [ ! -d $TMP/lilo ]; then + mkdir -p $TMP/lilo + fi + mount -t ext2 $DEV $TMP/lilo 1> /dev/null || exit 1 + rmdir $TMP/lilo/lost+found + cp $KERNEL $TMP/lilo/vmlinuz || exit 1 + mkdir $TMP/lilo/dev + make_root_device + mknod -m 0640 $TMP/lilo/dev/fd0 b 2 0 + mknod -m 0640 $TMP/lilo/dev/fd1 b 2 1 + mknod $mknod_fd + mknod -m 0666 $TMP/lilo/dev/null c 1 3 + mkdir $TMP/lilo/etc + cat << EOF > $TMP/lilo/etc/lilo.conf +boot = $DEV +message=/boot/message +backup=/dev/null +prompt +image = /vmlinuz + label = mount + ramdisk = 0 + root = $ROOT_DEVICE + vga = normal + $MOUNT +EOF + mkdir $TMP/lilo/boot + cp -a /boot/chain.b $TMP/lilo/boot + if [ -f /boot/boot-text.b ]; then + cp -a /boot/boot-text.b $TMP/lilo/boot/boot.b + else + cp -a /boot/boot.b $TMP/lilo/boot + fi + cat << EOF > $TMP/lilo/boot/message + +Welcome to the Slackware Linux custom LILO bootdisk! + +By default, this disk boots a root Linux partition on $ROOT_DEVICE when +you hit ENTER. If you'd like to boot some other partition, use a command +like this on the LILO prompt below: + + mount root=/dev/sda1 ro + +Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that +the partition should be initially mounted as read-only. If you which to mount +the partition read-write, use "rw" instead. You may also add any other kernel +parameters you might need depending on your hardware, and which drivers are +included in your kernel. + +EOF + lilo -r $TMP/lilo > /dev/null + umount $TMP/lilo + rm -rf $TMP/lilo + fi + elif [ "$REPLY" = "exit" ]; then + break; + fi +done diff --git a/source/a/pkgtools/scripts/makepkg b/source/a/pkgtools/scripts/makepkg new file mode 100644 index 000000000..e6805476a --- /dev/null +++ b/source/a/pkgtools/scripts/makepkg @@ -0,0 +1,347 @@ +#!/bin/sh +# Copyright 1994, 1998, 2008 Patrick Volkerding, Moorhead, Minnesota USA +# Copyright 2003 Slackware Linux, Inc. Concord, CA USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# +# Sun Apr 5 21:23:26 CDT 2009 +# Support .tgz, .tbz, .tlz, and .txz packages. <volkerdi> +# +# Wed Mar 18 15:32:33 CST 1998 +# Patched to avoid possible symlink attacks in /tmp. + +CWD=$(pwd) + +TAR=tar-1.13 +umask 022 +$TAR --help 1> /dev/null 2> /dev/null +if [ ! $? = 0 ]; then + TAR=tar +fi +if [ ! "$(LC_MESSAGES=C $TAR --version)" = "tar (GNU tar) 1.13 + +Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +Written by John Gilmore and Jay Fenlason." ]; then + echo "WARNING: pkgtools are unstable with tar > 1.13." + echo " You should provide a \"tar-1.13\" in your \$PATH." + sleep 5 +fi + +make_install_script() { + COUNT=1 + LINE="$(sed -n "$COUNT p" $1)" + while [ ! "$LINE" = "" ]; do + LINKGOESIN="$(echo "$LINE" | cut -f 1 -d " ")" + LINKGOESIN="$(dirname $LINKGOESIN)" + LINKNAMEIS="$(echo "$LINE" | cut -f 1 -d ' ')" + LINKNAMEIS="$(basename "$LINKNAMEIS")" + LINKPOINTSTO="$(echo "$LINE" | cut -f 3 -d ' ')" + echo "( cd $LINKGOESIN ; rm -rf $LINKNAMEIS )" + echo "( cd $LINKGOESIN ; ln -sf $LINKPOINTSTO $LINKNAMEIS )" + COUNT=$(expr $COUNT + 1) + LINE="$(sed -n "$COUNT p" $1)" + done +} + +usage() { + cat << EOF + +Usage: makepkg package_name.tgz + (or: package_name.tbz, package_name.tlz, package_name.txz) + +Makes a Slackware compatible package containing the contents of the current +and all subdirectories. If symbolic links exist, they will be removed and +an installation script will be made to recreate them later. This script will +be called "install/doinst.sh". You may add any of your own ash-compatible +shell scripts to this file and rebuild the package if you wish. + +options: -l, --linkadd y|n (moves symlinks into doinst.sh: recommended) + -p, --prepend (prepend rather than append symlinks to an existing + doinst.sh. Useful to link libraries needed by + programs in the doinst.sh script) + -c, --chown y|n (resets all permissions to root:root 755 + - not generally recommended) + +If these options are not set, makepkg will prompt as appropriate. +EOF +} + +TMP=/tmp # This can be a hole, but I'm going to be careful about file + # creation in there, so don't panic. :^) + +# Parse options +while [ 0 ]; do + if [ "$1" = "--linkadd" -o "$1" = "-l" ]; then + if [ "$2" = "y" ]; then + LINKADD=y + elif [ "$2" = "n" ]; then + LINKADD=n + else + usage + exit 2 + fi + shift 2 + elif [ "$1" = "--chown" -o "$1" = "-c" ]; then + if [ "$2" = "y" ]; then + CHOWN=y + elif [ "$2" = "n" ]; then + CHOWN=n + else + usage + exit 2 + fi + shift 2 + elif [ "$1" = "-p" -o "$1" = "--prepend" ]; then + PREPEND=y + shift 1 + elif [ "$1" = "-h" -o "$1" = "-H" -o "$1" = "--help" -o $# = 0 ]; then + usage + exit 0 + else + break + fi +done + +PACKAGE_NAME="$1" +TARGET_NAME="$(dirname $PACKAGE_NAME)" +PACKAGE_NAME="$(basename $PACKAGE_NAME)" + +# Identify package extension: +if [ ! "$(basename $PACKAGE_NAME .tgz)" = "$PACKAGE_NAME" ]; then + EXTENSION="tgz" +elif [ ! "$(basename $PACKAGE_NAME .tar.gz)" = "$PACKAGE_NAME" ]; then + # .tar.compression is also supported, although the resulting "packages" will + # not be installable by installpkg without the correct 3 letter extension + # instead. + EXTENSION="tar.gz" +elif [ ! "$(basename $PACKAGE_NAME .tbz)" = "$PACKAGE_NAME" ]; then + EXTENSION="tbz" +elif [ ! "$(basename $PACKAGE_NAME .tar.bz2)" = "$PACKAGE_NAME" ]; then + EXTENSION="tar.bz2" +elif [ ! "$(basename $PACKAGE_NAME .tlz)" = "$PACKAGE_NAME" ]; then + EXTENSION="tlz" +elif [ ! "$(basename $PACKAGE_NAME .tar.lzma)" = "$PACKAGE_NAME" ]; then + EXTENSION="tar.lzma" +elif [ ! "$(basename $PACKAGE_NAME .txz)" = "$PACKAGE_NAME" ]; then + EXTENSION="txz" +elif [ ! "$(basename $PACKAGE_NAME .tar.xz)" = "$PACKAGE_NAME" ]; then + EXTENSION="tar.xz" +else + EXTENSION="$(echo $PACKAGE_NAME | rev | cut -f 1 -d . | rev)" + echo "ERROR: Package extension .$EXTENSION is not supported." + exit 1 +fi + +TAR_NAME="$(basename $PACKAGE_NAME .$EXTENSION)" + +# Sanity check -- we can't make the package in the current directory: +if [ "$CWD" = "$TARGET_NAME" -o "." = "$TARGET_NAME" ]; then + echo "ERROR: Can't make output package in current directory." + exit 2 +fi + +# Make sure external compression utility is available: +case $EXTENSION in +'tgz' | 'tar.gz' ) + if ! which gzip 1> /dev/null 2> /dev/null ; then + echo "ERROR: gzip compression utility not found in \$PATH." + exit 3 + fi + ;; +'tbz' | 'tar.bz2' ) + if ! which bzip2 1> /dev/null 2> /dev/null ; then + echo "ERROR: bzip2 compression utility not found in \$PATH." + exit 3 + fi + ;; +'tlz' | 'tar.lzma' ) + if ! which lzma 1> /dev/null 2> /dev/null ; then + echo "ERROR: lzma compression utility not found in \$PATH." + exit 3 + fi + ;; +'txz' | 'tar.xz' ) + if ! which xz 1> /dev/null 2> /dev/null ; then + echo "ERROR: xz compression utility not found in \$PATH." + exit 3 + fi + ;; +esac + +echo +echo "Slackware package maker, version 3.14159." +echo +echo "Searching for symbolic links:" +# Get rid of possible pre-existing trouble: +INST=$(mktemp $TMP/makepkg.XXXXXX) +# This requires the ls from coreutils-5.0 (or newer): +find . -type l -exec ls -l --time-style=long-iso {} \; | while read foo ; do echo $foo ; done | cut -f 8- -d ' ' | cut -b3- | tee $INST +if [ ! "$(cat $INST)" = "" ]; then + echo + echo "Making symbolic link creation script:" + make_install_script $INST | tee doinst.sh +fi +echo +if [ ! "$(cat $INST)" = "" ]; then + if [ -r install/doinst.sh ]; then + echo "Unless your existing installation script already contains the code" + echo "to create these links, you should append these lines to your existing" + echo "install script. Now's your chance. :^)" + echo + echo "Would you like to add this stuff to the existing install script and" + echo -n "remove the symbolic links ([y]es, [n]o)? " + else + echo "It is recommended that you make these lines your new installation script." + echo + echo "Would you like to make this stuff the install script for this package" + echo -n "and remove the symbolic links ([y]es, [n]o)? " + fi + if [ ! "$LINKADD" ]; then + read LINKADD; + echo + else + echo $LINKADD + echo + fi + if [ "$LINKADD" = "y" ]; then + if [ -r install/doinst.sh ]; then + UPDATE="t" + if [ "$PREPEND" = "y" ]; then + touch install/doinst.sh + mv install/doinst.sh install/doinst.sh.shipped + cat doinst.sh > install/doinst.sh + echo "" >> install/doinst.sh + cat install/doinst.sh.shipped >> install/doinst.sh + rm -f install/doinst.sh.shipped + else + cat doinst.sh >> install/doinst.sh + fi + else + mkdir -p install + cat doinst.sh > install/doinst.sh + fi + echo + echo "Removing symbolic links:" + find . -type l -exec rm -v {} \; + echo + if [ "$UPDATE" = "t" ]; then + if [ "$PREPEND" = "y" ]; then + echo "Updating your ./install/doinst.sh (prepending symlinks)..." + else + echo "Updating your ./install/doinst.sh..." + fi + else + echo "Creating your new ./install/doinst.sh..." + fi + fi +else + echo "No symbolic links were found, so we won't make an installation script." + echo "You can make your own later in ./install/doinst.sh and rebuild the" + echo "package if you like." +fi +rm -f doinst.sh $INST +echo +echo "This next step is optional - you can set the directories in your package" +echo "to some sane permissions. If any of the directories in your package have" +echo "special permissions, then DO NOT reset them here!" +echo +echo "Would you like to reset all directory permissions to 755 (drwxr-xr-x) and" +echo -n "directory ownerships to root.root ([y]es, [n]o)? " +if [ ! "$CHOWN" ]; then + read CHOWN; + echo +else + echo $CHOWN + echo +fi +if [ "$CHOWN" = "y" ]; then + find . -type d -exec chmod -v 755 {} \; + find . -type d -exec chown -v root.root {} \; +fi + +echo "Creating Slackware package: ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}" +echo +rm -f ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} +case $EXTENSION in +'tgz' | 'tar.gz' ) + $TAR cvf - . | gzip -9c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} + ERRCODE=$? + if [ ! $? = 0 ]; then + echo "ERROR: gzip returned error code $? -- makepkg failed." + fi + ;; +'tbz' | 'tar.bz2' ) + $TAR cvf - . | bzip2 -9c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} + ERRCODE=$? + if [ ! $ERRCODE = 0 ]; then + echo "ERROR: bzip2 returned error code $ERRCODE -- makepkg failed." + fi + ;; +'tlz' | 'tar.lzma' ) + $TAR cvf - . | lzma -c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} + ERRCODE=$? + if [ ! $ERRCODE = 0 ]; then + echo "ERROR: lzma returned error code $ERRCODE -- makepkg failed." + fi + ;; +'txz' | 'tar.xz' ) + $TAR cvf - . | xz -c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} + ERRCODE=$? + if [ ! $ERRCODE = 0 ]; then + echo "ERROR: xz returned error code $ERRCODE -- makepkg failed." + fi + ;; +esac + +# Warn of zero-length files: +find . -type f -size 0c | while read file ; do + echo "WARNING: zero length file $(echo $file | cut -b3-)" +done + +# Warn of corrupt or empty gzip files: +find . -type f -name '*.gz' | while read file ; do + if ! gzip -t $file 1> /dev/null 2> /dev/null ; then + echo "WARNING: gzip test failed on $(echo $file | cut -b3-)" + else + if [ "$(gzip -l $file | tail -n 1 | tr -s ' ' | cut -f 3 -d ' ')" -eq 0 ]; then + echo "WARNING: $(echo $file | cut -b3-) is an empty gzipped file" + fi + fi +done + +# Some more handy warnings: +if [ -d usr/share/man ]; then + echo "WARNING: /usr/share/man (with possibly not gzipped man pages) detected" +fi + +if [ -d usr/share/info ]; then + echo "WARNING: /usr/share/info (with possibly not gzipped info pages) detected" +fi + +if find . | grep site_perl 1> /dev/null ; then + echo "WARNING: site_perl directory detected (this is fine for a local package build)" +fi + +echo +echo "Slackware package ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} created." +echo diff --git a/source/a/pkgtools/scripts/pkgtool b/source/a/pkgtools/scripts/pkgtool new file mode 100644 index 000000000..6191e36e7 --- /dev/null +++ b/source/a/pkgtools/scripts/pkgtool @@ -0,0 +1,754 @@ +#!/bin/sh +# +# Copyright 1993, 1994, 1995, 1996, 1997, +# 1998, 1999 Patrick Volkerding, Moorhead, MN USA +# Copyright 2001, 2004 Slackware Linux, Inc., Concord, CA USA +# All rights reserved. +# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# Sat Apr 25 21:18:53 UTC 2009 +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. +# +# Wed Oct 31 16:28:46 CDT 2007 +# * Thanks to Gabriele Inghirami for a patch allowing this script to work +# with much larger numbers of installed packages. +# Wed, 27 Apr 1994 00:06:50 -0700 (PDT) +# * Optimization by David Hinds. +# Sun Oct 24 23:11:40 BST 2004 +# * Further optimisations by Jim Hawkins <jawkins@armedslack.org> +# - dramatically improved the speed of the "View" option +# Thu Nov 04 12:19:56 BST 2004 +# * More optimisations by Jim Hawkins +# - improved "Remove" speed in a similar manner to "View" +# Wed Jan 12 16:53:48 GMT 2005 +# * Fixed quoting bug thanks to Lasse Collin +# Wed Jan 26 23:06:22 GMT 2005 +# * Fix for non-standard package descriptions by Jim Hawkins + +# Return a package name that has been stripped of the dirname portion +# and any of the valid extensions (only): +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'tgz' ) + PKGRETURN=$(basename $1 .tgz) + ;; + 'tbz' ) + PKGRETURN=$(basename $1 .tbz) + ;; + 'tlz' ) + PKGRETURN=$(basename $1 .tlz) + ;; + 'txz' ) + PKGRETURN=$(basename $1 .txz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +SOURCE_DIR=/var/log/mount +ASK="tagfiles" +if [ -L /bin/chmod -a -L /bin/chown ]; then # probably on the bootdisk using busybox + TARGET_DIR=/mnt + TMP=/mnt/var/log/setup/tmp + if mount | grep "on /mnt" 1> /dev/null 2>&1 ; then # good + true + else # bad + echo + echo + echo "You can't run pkgtool from the rootdisk until you've mounted your Linux" + echo "partitions beneath /mnt. Here are some examples of this:" + echo + echo "If your root partition is /dev/hda1, and is using ext2fs, you would type:" + echo "mount /dev/hda1 /mnt -t ext2" + echo + echo "Then, supposing your /usr partition is /dev/hda2, you must do this:" + echo "mount /dev/hda2 /mnt/usr -t ext2" + echo + echo "Please mount your Linux partitions and then run pkgtool again." + echo + exit + fi +else + TARGET_DIR=/ + TMP=/var/log/setup/tmp +fi +if [ ! -d $TMP ]; then + mkdir -p $TMP + chmod 700 $TMP + fi +ADM_DIR=$TARGET_DIR/var/log +LOG=$TMP/PKGTOOL.REMOVED + +# remove whitespace +crunch() { + while read FOO ; do + echo $FOO + done +} + +package_name() { + STRING=$(pkgbase $1) + # Check for old style package name with one segment: + if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then + echo $STRING + else # has more than one dash delimited segment + # Count number of segments: + INDEX=1 + while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # don't include the null value + # If we don't have four segments, return the old-style (or out of spec) package name: + if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then + echo $STRING + else # we have four or more segments, so we'll consider this a new-style name: + NAME=$(expr $INDEX - 3) + NAME="$(echo $STRING | cut -f 1-$NAME -d -)" + echo $NAME + # cruft for later ;) + #VER=$(expr $INDEX - 2) + #VER="$(echo $STRING | cut -f $VER -d -)" + #ARCH=$(expr $INDEX - 1) + #ARCH="$(echo $STRING | cut -f $ARCH -d -)" + #BUILD="$(echo $STRING | cut -f $INDEX -d -)" + fi + fi +} + +remove_packages() { + for pkg_name in $(cat $TMP/return | tr -d "\042") + do + if [ -r $ADM_DIR/packages/$pkg_name ]; then + dialog --title "PACKAGE REMOVAL IN PROGRESS" --cr-wrap --infobox \ +"\nRemoving package $pkg_name.\n\ +\n\ +Since each file must be checked \ +against the contents of every other installed package to avoid wiping out \ +areas of overlap, this process can take quite some time. If you'd like to \ +watch the progress, flip over to another virtual console and type:\n\ +\n\ +tail -f $TMP/PKGTOOL.REMOVED\n" 13 60 + export ROOT=$TARGET_DIR + removepkg $pkg_name >> $LOG 2> /dev/null + else + echo "No such package: $pkg_name. Can't remove." >> $LOG + fi + done +} + +create_list_of_installed_packages() +{ + FILES=$(ls $ADM_DIR/packages) + if [ -n "$FILES" ]; then + cd $ADM_DIR/packages + { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \ + | sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g + s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" "View information about package \1" \\/;p' > $TMP/list_of_installed_packages \ + + fi +} + + create_list_of_files_to_remove () +{ +FILES=$(ls $ADM_DIR/packages) + if [ -n "$FILES" ]; then + cd $ADM_DIR/packages + { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \ + | sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g + s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" off "Select\/Unselect removing package \1" \\/;p' > $TMP/temporary_list \ + + fi +} + +# Here, we read the list of arguments passed to the pkgtool script. +if [ $# -gt 0 ]; then # there are arguments to the command + while [ $# -gt 0 ]; do + case "$1" in + -sets | --sets) + DISK_SETS=$(echo $2 | tr "[A-Z]" "[a-z]") ; shift 2 ;; + -source_mounted | --source-mounted) + SOURCE_MOUNTED="always" ; shift 1 ;; + -ignore_tagfiles | --ignore-tagfiles) + ASK="never" ; shift 1 ;; + -tagfile | --tagfile) + USETAG=$2 ; shift 2 ;; + -source_dir | --source_dir) + SOURCE_DIR=$2 ; shift 2 ;; + -target_dir | --target_dir) + TARGET_DIR=$2 + ADM_DIR=$TARGET_DIR/var/log + shift 2 ;; + -source_device | --source_device) + SOURCE_DEVICE=$2 ; shift 2 ;; + esac + done +else # there were no arguments, so we'll get the needed information from the + # user and then go on. + CMD_START="true" + rm -f $TMP/SeT* + while [ 0 ]; do + dialog --title "Slackware Package Tool (pkgtool version 13.0)" \ +--menu "\nWelcome to the Slackware package tool.\n\ +\nWhich option would you like?\n" 17 75 7 \ +"Current" "Install packages from the current directory" \ +"Other" "Install packages from some other directory" \ +"Floppy" "Install packages from floppy disks" \ +"Remove" "Remove packages that are currently installed" \ +"View" "View the list of files contained in a package" \ +"Setup" "Choose Slackware installation scripts to run again" \ +"Exit" "Exit Pkgtool" 2> $TMP/reply + if [ ! $? = 0 ]; then + rm -f $TMP/reply + dialog --clear + exit + fi + REPLY="$(cat $TMP/reply)" + rm -f $TMP/reply + if [ "$REPLY" = "Exit" ]; then + dialog --clear + exit + fi + if [ "$REPLY" = "Setup" ]; then + echo 'dialog --title "SELECT SYSTEM SETUP SCRIPTS" --item-help --checklist \ + "Please use the spacebar to select the setup scripts to run. Hit enter when you \ +are done selecting to run the scripts." 17 70 9 \' > $TMP/setupscr + for script in $ADM_DIR/setup/setup.* ; do + BLURB=$(grep '#BLURB' $script | cut -b8-) + if [ "$BLURB" = "" ]; then + BLURB="\"\"" + fi + echo " \"$(basename $script | cut -f2- -d .)\" $BLURB \"no\" $BLURB \\" >> $TMP/setupscr + done + echo "2> $TMP/return" >> $TMP/setupscr + . $TMP/setupscr + if [ ! "$(cat $TMP/return)" = "" ]; then + # Run each script: + for script in $(cat $TMP/return) ; do + scrpath=$ADM_DIR/setup/setup.$(echo $script | tr -d \") + rootdevice="$(mount | head -n 1 | cut -f 1 -d ' ')" + ( COLOR=on ; cd $TARGET_DIR ; . $scrpath / $rootdevice ) + done + fi + rm -f $TMP/return $TMP/setupscr + continue + fi # end Setup + + if [ "$REPLY" = "View" ]; then +create_list_of_installed_packages + DEFITEM="" + export DEFITEM + #dialog --title "SCANNING" --infobox "Please wait while \ +#Pkgtool scans your system to determine which packages you have \ +#installed and prepares a list for you." 0 0 + ( + echo 'dialog $DEFITEM --item-help --menu "Please select the package you wish to view." 17 68 10 \ + --file $TMP/list_of_installed_packages \' + echo "2> $TMP/return" + ) > $TMP/viewscr + while [ 0 ]; do + . $TMP/viewscr + if [ ! "$(cat $TMP/return)" = "" ]; then + DEFITEM="--default-item $(cat $TMP/return)" + dialog --title "CONTENTS OF PACKAGE: $(cat $TMP/return)" --no-shadow --textbox "$ADM_DIR/packages/$(cat $TMP/return)" \ + 0 0 2> /dev/null + else + break + fi + done + rm -f $TMP/return $TMP/viewscr $TMP/tmpmsg $TMP/list_of_installed_packages + # This will clean up after most defective packages: + chmod 755 / + chmod 1777 /tmp + continue + fi + + if [ "$REPLY" = "Remove" ]; then + #dialog --title "SCANNING" --infobox "Please wait while Pkgtool scans \ +#your system to determine which packages you have installed and prepares \ +#a list for you." 0 0 + # end section + ( +create_list_of_files_to_remove #call the function to create a list of installed packages + cat << EOF +dialog --title "SELECT PACKAGES TO REMOVE" --item-help --checklist \ +"Please select the \ +packages you wish to Remove. Use the \ +spacebar to select packages to delete, and the UP/DOWN arrow keys to \ +scroll up and down through the entire list." 20 75 11 \ +--file $TMP/temporary_list \\ +EOF + echo "2> $TMP/return" + ) > $TMP/rmscript + if [ -L $LOG -o -r $LOG ]; then + rm -f $LOG + fi + cat /dev/null > $LOG + chmod 600 $LOG + chmod 700 $TMP/rmscript + export ADM_DIR; + $TMP/rmscript + remove_packages + if [ "$(cat $TMP/PKGTOOL.REMOVED)" = "" ]; then + rm -f $TMP/PKGTOOL.REMOVED + dialog --title "NO PACKAGES REMOVED" --msgbox "Hit OK to return \ +to the main menu." 5 40 + else + dialog --title "PACKAGE REMOVAL COMPLETE" --msgbox "The packages have \ +been removed. A complete log of the files that were removed has been created \ +in $TMP: PKGTOOL.REMOVED." 0 0 + fi + rm -f $TMP/rmscript $TMP/return $TMP/tmpmsg $TMP/SeT* $TMP/temporary_list + chmod 755 / + chmod 1777 /tmp +# No, return to the main menu: +# exit + elif [ "$REPLY" = "Floppy" ]; then + dialog --title "SELECT FLOPPY DRIVE" --menu "Which floppy drive would \ +you like to install from?" \ +11 70 4 \ +"/dev/fd0u1440" "1.44 MB first floppy drive" \ +"/dev/fd1u1440" "1.44 MB second floppy drive" \ +"/dev/fd0h1200" "1.2 MB first floppy drive" \ +"/dev/fd1h1200" "1.2 MB second floppy drive" 2> $TMP/wdrive + if [ $? = 1 ]; then + dialog --clear + exit + fi + SOURCE_DEVICE="$(cat $TMP/wdrive)" + rm -f $TMP/wdrive + cat << EOF > $TMP/tmpmsg + +Enter the names of any disk sets you would like to install. +Separate the sets with a space, like this: a b oi x + +To install packages from one disk, hit [enter] without typing +anything. + +EOF + dialog --title "SOFTWARE SELECTION" --inputbox "$(cat $TMP/tmpmsg)" 13 70 2> $TMP/sets + DISK_SETS="$(cat $TMP/sets)" + rm -f $TMP/sets + if [ "$DISK_SETS" = "" ]; then + DISK_SETS="disk" + else + DISK_SETS=$(echo $DISK_SETS | sed 's/ /#/g') + DISK_SETS="#$DISK_SETS" + fi + break; + elif [ "$REPLY" = "Other" ]; then + dialog --title "SELECT SOURCE DIRECTORY" --inputbox "Please enter the name of the directory that you wish to \ +install packages from:" 10 50 2> $TMP/pkgdir + if [ $? = 1 ]; then + rm -f $TMP/pkgdir $TMP/SeT* + dialog --clear + exit + fi + SOURCE_DIR="$(cat $TMP/pkgdir)" + SOURCE_MOUNTED="always" + DISK_SETS="disk" + chmod 755 $TARGET_DIR + chmod 1777 $TARGET_DIR/tmp + rm -f $TMP/pkgdir + if [ ! -d $SOURCE_DIR ]; then + dialog --title "DIRECTORY NOT FOUND" --msgbox "The directory you want to \ +install from ($SOURCE_DIR) \ +does not seem to exist. Please check the directory and then try again." \ +10 50 + dialog --clear + exit + fi + break; + else # installing from current directory + SOURCE_MOUNTED="always" + SOURCE_DIR="$PWD" + DISK_SETS="disk" + chmod 755 $TARGET_DIR + chmod 1777 $TARGET_DIR/tmp + break; + fi + done +fi +if [ "$DISK_SETS" = "disk" ]; then + ASK="always" +fi + +mount_the_source() { + # is the source supposed to be mounted already? + if [ "$SOURCE_MOUNTED" = "always" ]; then + # The source should already be mounted, so we test it + if [ ! -d $SOURCE_DIR ]; then # the directory is missing + cat << EOF > $TMP/tmpmsg + +Your source device cannot be accessed properly. + +Please be sure that it is mounted on $SOURCE_DIR, +and that the Slackware disks are found in subdirectories +of $SOURCE_DIR like specified. + +EOF + dialog --title "MOUNT ERROR" --msgbox "$(cat $TMP/tmpmsg)" 11 67 + rm -f $TMP/tmpmsg + exit 1; + fi + return 0; + fi + dialog --title "INSERT DISK" --menu "Please insert disk $1 and \ +press ENTER to continue." \ +11 50 3 \ +"Continue" "Continue with the installation" \ +"Skip" "Skip the current disk series" \ +"Quit" "Abort the installation process" 2> $TMP/reply + if [ ! $? = 0 ]; then + REPLY="Quit" + else + REPLY="$(cat $TMP/reply)" + fi + rm -f $TMP/reply + if [ "$REPLY" = "Skip" ]; then + return 1; + fi + if [ "$REPLY" = "Quit" ]; then + dialog --title "ABORTING" --msgbox "Aborting software installation." 5 50 + chmod 755 $TARGET_DIR + chmod 1777 $TARGET_DIR/tmp + exit 1; + fi; + # Old line: + # mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR + # New ones: (thanks to Andy Schwierskott!) + go_on=y + not_successfull_mounted=1 + while [ "$go_on" = y -a "$not_successfull_mounted" = 1 ]; do + mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR + not_successfull_mounted=$? + if [ "$not_successfull_mounted" = 1 ]; then + mount_answer=x + while [ "$mount_answer" != "y" -a "$mount_answer" != "q" ] ; do + dialog --title "MOUNT PROBLEM" --menu "Media was not successfully \ +mounted! Do you want to \ +retry, or quit?" 10 60 2 \ +"Yes" "Try to mount the disk again" \ +"No" "No, abort." 2> $TMP/mntans + mount_answer="$(cat $TMP/mntans)" + rm -f $TMP/mntans + if [ "$mount_answer" = "Yes" ]; then + mount_answer="y" + else + mount_answer="q" + fi + done + go_on=$mount_answer + fi + done + test $not_successfull_mounted = 0 +} + +umount_the_source() { + if [ ! "$SOURCE_MOUNTED" = "always" ]; then + umount $SOURCE_DEVICE 1> /dev/null 2>&1 + fi; +} + +install_disk() { + mount_the_source $1 + if [ $? = 1 ]; then + umount_the_source; + return 1; + fi + CURRENT_DISK_NAME="$1" + PACKAGE_DIR=$SOURCE_DIR + if [ "$SOURCE_MOUNTED" = "always" -a ! "$DISK_SETS" = "disk" ]; then + PACKAGE_DIR=$PACKAGE_DIR/$1 + fi + + # If this directory is missing or contains no *.t?z files, bail. + if [ ! -d $PACKAGE_DIR ]; then + return 1 + fi + if ! ls $PACKAGE_DIR/*.t?z 1> /dev/null 2> /dev/null ; then + return 1 + fi + + # + # look for tagfile for this series and copy into $TMP/tagfile + # + touch $TMP/tagfile + if [ ! "$DISK_SETS" = "disk" ]; then + if [ -r $TMP/SeTtagext ]; then + if [ -r $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) ]; then + cat $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) >> $TMP/tagfile + else + if [ -r $PACKAGE_DIR/tagfile ]; then + cat $PACKAGE_DIR/tagfile >> $TMP/tagfile + fi + fi + + # + # Do we need to follow a custom path to the tagfiles? + # + elif [ -r $TMP/SeTtagpath ]; then + custom_path=$(cat $TMP/SeTtagpath) + short_path=$(basename $PACKAGE_DIR) + + # If tagfile exists at the specified custom path, copy it over. + if [ -r $custom_path/$short_path/tagfile ]; then + cat $custom_path/$short_path/tagfile >> $TMP/tagfile + + else # well, I guess we'll use the default one then. + if [ -r $PACKAGE_DIR/tagfile ]; then + cat $PACKAGE_DIR/tagfile >> $TMP/tagfile + fi + fi + # + # We seem to be testing for this too often... maybe this code should + # be optimized a little... + # + elif [ -r $PACKAGE_DIR/tagfile ]; then + cat $PACKAGE_DIR/tagfile >> $TMP/tagfile + fi + + # + # Execute menus if in QUICK mode: + # + if [ -r $TMP/SeTQUICK -a -r $PACKAGE_DIR/maketag ]; then + if [ ! "$MAKETAG" = "" -a -r $PACKAGE_DIR/$MAKETAG ]; then # use alternate maketag + sh $PACKAGE_DIR/$MAKETAG + else + sh $PACKAGE_DIR/maketag + fi + if [ -r $TMP/SeTnewtag ]; then + mv $TMP/SeTnewtag $TMP/tagfile + fi + fi + + # + # Protect tagfile from hacker attack: + # + if [ -r $TMP/tagfile ]; then + chmod 600 $TMP/tagfile + fi + + fi # ! "$DISK_SETS" = "disk" + + # It's possible that the tagfile was specified on the command line. If that's + # the case, then we'll just override whatever we figured out up above. + if [ ! "$USETAG" = "" ]; then + cat $USETAG > $TMP/tagfile + fi + + # If there's a catalog file present, use it to check for missing files. + # If not, forget about that and install whatever's there. + if [ "$1" = "single_disk" -o -r $PACKAGE_DIR/disk$1 -o -r $PACKAGE_DIR/package-list.txt ]; then + if [ -r $PACKAGE_DIR/package-list.txt ]; then + CATALOG_FILE=$PACKAGE_DIR/package-list.txt + else + CATALOG_FILE=$(basename $PACKAGE_DIR/disk*); + fi + if [ -r $PACKAGE_DIR/$CATALOG_FILE -a ! -d $PACKAGE_DIR/$CATALOG_FILE ]; then + if grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE 1> /dev/null 2>&1 ; then + # First we check for missing packages... + for PKGTEST in $(grep "^CONTENTS:" $PACKAGE_DIR/$CATALOG_FILE | cut -f2- -d : 2> /dev/null) ; do + # This is not a perfect test. (say emacs is missing but emacs-nox is not) + if ls $PACKAGE_DIR/$PKGTEST*.t?z 1> /dev/null 2> /dev/null ; then # found something like it + true + else + cat << EOF > $TMP/tmpmsg + +WARNING!!! + +While looking through your index file ($CATALOG_FILE), +I noticed that you might be missing a package: + +$PKGTEST-\*-\*-\*.t?z + +that is supposed to be on this disk (disk $1). You may go +on with the installation if you wish, but if this is a +crucial file I'm making no promises that your machine will +boot. + +EOF + dialog --title "FILE MISSING FROM YOUR DISK" --msgbox \ +"$(cat $TMP/tmpmsg)" 17 67 + fi + done # checking for missing packages + # Now we test for extra packages: + ALLOWED="$(grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE | cut -b10- 2> /dev/null)" + for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do + BASE=$(pkgbase $PACKAGE_FILENAME) + BASE="$(package_name $BASE)" + if echo $ALLOWED | grep $BASE 1> /dev/null 2>&1 ; then + true + else + cat << EOF > $TMP/tmpmsg + +WARNING!!! + +While looking through your index file ($CATALOG_FILE), +I noticed that you have this extra package: + +($BASE.t?z) + +that I don't recognize. Please be sure this package is +really supposed to be here, and is not left over from an +old version of Slackware. Sometimes this can happen at the +archive sites. + +EOF + dialog --title "EXTRA FILE FOUND ON YOUR DISK" \ +--msgbox "$(cat $TMP/tmpmsg)" 17 67 + rm -f $TMP/tmpmsg + fi + done + fi + fi + fi # check for missing/extra packages + + # Install the packages: + for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do + if [ "$PACKAGE_FILENAME" = "$PACKAGE_DIR/*.t?z" ]; then + continue; + fi + if [ "$ASK" = "never" ]; then # install the package + installpkg -root $TARGET_DIR -infobox -tagfile $TMP/tagfile $PACKAGE_FILENAME + ERROR=$? + elif [ "$ASK" = "tagfiles" ]; then + installpkg -root $TARGET_DIR -menu -tagfile $TMP/tagfile $PACKAGE_FILENAME + ERROR=$? + else # ASK should be = always here, and that's how we'll treat it + installpkg -root $TARGET_DIR -menu -ask -tagfile $TMP/tagfile $PACKAGE_FILENAME + ERROR=$? + fi + # Check for abort: + if [ "$ERROR" = "99" ]; then + umount_the_source; + chmod 755 $TARGET_DIR + chmod 1777 $TARGET_DIR/tmp + exit 1; + fi + done + OUTTAHERE="false" + if [ -r $PACKAGE_DIR/install.end ]; then + OUTTAHERE="true" + fi + umount_the_source; + if [ "$OUTTAHERE" = "true" ]; then + return 1; + fi +} + +install_disk_set() { # accepts one argument: the series name in lowercase. + SERIES_NAME=$1 + CURRENT_DISK_NUMBER="1"; + while [ 0 ]; do + # Don't start numbering the directories until 2: + if [ $CURRENT_DISK_NUMBER = 1 ]; then + DISKTOINSTALL=$SERIES_NAME + else + DISKTOINSTALL=$SERIES_NAME$CURRENT_DISK_NUMBER + fi + install_disk $DISKTOINSTALL + if [ ! $? = 0 ]; then # install.end was found, or the user chose + # to quit installing packages. + return 0; + fi + CURRENT_DISK_NUMBER=$(expr $CURRENT_DISK_NUMBER + 1) + done; +} + +# /* main() */ ;) +if [ "$DISK_SETS" = "disk" ]; then + install_disk single_disk; + ASK="always" +else + touch $TMP/tagfile + chmod 600 $TMP/tagfile + if echo $DISK_SETS | grep "#a#" 1> /dev/null 2>&1; then + A_IS_NEEDED="true" + else + A_IS_NEEDED="false" + fi + while [ 0 ]; + do + while [ 0 ]; # strip leading '#'s + do + if [ "$(echo $DISK_SETS | cut -b1)" = "#" ]; then + DISK_SETS="$(echo $DISK_SETS | cut -b2-)" + else + break; + fi + done + if [ "$A_IS_NEEDED" = "true" ]; then + cat << EOF > $TMP/tmpmsg + +--- Installing package series ==>a<== + +EOF + dialog --infobox "$(cat $TMP/tmpmsg)" 5 45 + sleep 1 + rm -f $TMP/tmpmsg + install_disk_set a; + A_IS_NEEDED="false" + fi + count="1" + if [ "$(echo $DISK_SETS | cut -b$count)" = "" ]; then + break; # we be done here :^) + else + count="2" + while [ 0 ]; do + if [ "$(echo $DISK_SETS | cut -b$count)" = "" -o "$(echo $DISK_SETS | cut -b$count)" = "#" ]; then + count="$(expr $count - 1)" + break; + else + count="$(expr $count + 1)" + fi + done + fi + diskset="$(echo $DISK_SETS | cut -b1-$count)" + count="$(expr $count + 1)" + DISK_SETS="$(echo $DISK_SETS | cut -b$count-)" + if [ "$diskset" = "a" ]; then + continue; # we expect this to be done elsewhere + fi + cat << EOF > $TMP/tmpmsg + +Installing package series ==>$diskset<== + +EOF + dialog --infobox "$(cat $TMP/tmpmsg)" 5 45 + sleep 1 + rm -f $TMP/tmpmsg + install_disk_set $diskset; + done +fi + +if [ "$DISK_SETS" = "disk" -o "$CMD_START" = "true" ]; then + if [ -r $TMP/tagfile ]; then + rm $TMP/tagfile + fi + dialog --clear +fi +chmod 755 $TARGET_DIR $TARGET_DIR/var $TARGET_DIR/usr +chmod 1777 $TARGET_DIR/tmp diff --git a/source/a/pkgtools/scripts/removepkg b/source/a/pkgtools/scripts/removepkg new file mode 100644 index 000000000..8b5a911dd --- /dev/null +++ b/source/a/pkgtools/scripts/removepkg @@ -0,0 +1,430 @@ +#!/bin/sh +# Slackware remove package script +# +# Sat Apr 25 21:18:53 UTC 2009 (12.34567890b) +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. +# +# Revision 12.34567890 Sun Apr 5 20:59:32 CDT 2009 <volkerdi> +# - Support packages with the extensions: .tgz, .tbz, .tlz, .txz +# +# Revision 1.9 Wed Oct 31 14:04:28 CDT 2007 volkerding +# - Fix problem removing packages with a large number of fields. +# Thanks to Niki Kovacs for noticing this, and to Piter Punk +# for the patch. +# - Use LC_ALL=C locale, which is much faster with "sort". +# Thanks to Tsomi. +# - Don't try to remove any package that starts with '-'. This +# is not a proper package name (usually a typo), and results +# in the package database being broken. Thanks to Jef Oliver. +# - Patched cat_except() to allow the last Slackware package on +# a partition to be removed (using ROOT=, of course) +# Thanks to Selkfoster for the patch, and to everyone else who +# proposed solutions before. This issue really wasn't given +# the highest priority before, but I figured while I'm in here... +# +# Revision 1.8 Thu Nov 22 14:00:13 PST 2001 volkerding Rel $ +# - Move $TMP underneath $ROOT +# - Understand the idea of a base package name, so that packages +# can be removed with any of these notations: +# removepkg foo-1.0-i386-1.tgz +# removepkg foo-1.0-i386-1 +# removepkg foo.tgz +# removepkg foo +# +# Revision 1.7 2001/03/30 12:36:28 volkerding +# - Strip extra ".tgz" from input names. +# +# Revision 1.6 1999/03/25 18:26:41 volkerding +# - Use external $ROOT variable, like installpkg. +# +# Revision 1.5.1 1998/03/18 15:37:28 volkerding +# - Since removepkg is always run by root, the temp directory has been +# moved from /tmp to a private directory to avoid symlink attacks from +# malicious users. +# +# Revision 1.5 1997/06/26 12:09:53 franke +# - Fixed old bug in TRIGGER regex setting +# - -preserve/-copy options now preserve non-unique files +# and empty directories also +# +# Revision 1.4 1997/06/09 13:21:36 franke +# - Package file preserve (-preserve, -copy) added. +# - Don't execute "rm -rf" lines from doinst.sh, removing links explicit. +# - Warning on no longer existing files added. +# - Warning on files changed after package installation added. +# - Intermediate file preserve (-keep) added. +# - Check for required files/links now done on a combined list. +# - Write access to /var/log/{packages,scripts} no longer necessary for -warn. +# +# Revision 1.3 1997/06/08 13:03:05 franke +# Merged with revision 1.1.1.1 +# +# Revision 1.2 1996/06/01 20:04:26 franke +# Delete empty directories & formated manual pages added +# +# Revision 1.1.1.1 1995/12/18 21:20:42 volkerding +# Original Version from Slackware 3.1 +# +# Revision 1.1 1995/06/05 22:49:11 volkerding +# Original Version from Slackware 3.0 +# + +# Copyright 1994, 1995, 1998 Patrick Volkerding, Moorhead, Minnesota USA +# Copyright 2001, Slackware Linux, Inc., Concord, CA USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# Return a package name that has been stripped of the dirname portion +# and any of the valid extensions (only): +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'tgz' ) + PKGRETURN=$(basename $1 .tgz) + ;; + 'tbz' ) + PKGRETURN=$(basename $1 .tbz) + ;; + 'tlz' ) + PKGRETURN=$(basename $1 .tlz) + ;; + 'txz' ) + PKGRETURN=$(basename $1 .txz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# This makes "sort" run much faster: +export LC_ALL=C + +# Make sure there's a proper temp directory: +TMP=$ROOT/var/log/setup/tmp +# If the $TMP directory doesn't exist, create it: +if [ ! -d $TMP ]; then + rm -rf $TMP # make sure it's not a symlink or something stupid + mkdir -p $TMP + chmod 700 $TMP # no need to leave it open +fi +ADM_DIR=$ROOT/var/log +PRES_DIR=$TMP/preserved_packages + +# This simple cat_except() should be used on the installer, +# since the busybox "find" can't handle the complex find +# syntax: +#cat_except() { +# ( cd "$1" && cat $(ls * | sed "/^$2\$/d")) +#} + +# This version of cat_except() allows the last package to be +# removed when ROOT= is used: +cat_except() { + ( cd "$1" && \ + if [ $(find . -type f -maxdepth 1 | wc -l) -ne 1 ]; then + cat $(find . -type f -maxdepth 1 | grep -v "$2") + fi + ) +} + +extract_links() { + sed -n 's,^( *cd \([^ ;][^ ;]*\) *; *rm -rf \([^ )][^ )]*\) *) *$,\1/\2,p' +} + +preserve_file() { + if [ "$PRESERVE" = "true" ]; then + F="$(basename "$1")" + D="$(dirname "$1")" + if [ ! -d "$PRES_DIR/$PKGNAME/$D" ]; then + mkdir -p "$PRES_DIR/$PKGNAME/$D" || return 1 + fi + cp -p "$ROOT/$D/$F" "$PRES_DIR/$PKGNAME/$D" || return 1 + fi + return 0 +} + +preserve_dir() { + if [ "$PRESERVE" = "true" ]; then + if [ ! -d "$PRES_DIR/$PKGNAME/$1" ]; then + mkdir -p "$PRES_DIR/$PKGNAME/$1" || return 1 + fi + fi + return 0 +} + +keep_files() { + while read FILE ; do + if [ ! -d "$ROOT/$FILE" ]; then + if [ -r "$ROOT/$FILE" ]; then + echo " --> $ROOT/$FILE was found in another package. Skipping." + preserve_file "$FILE" + else + if [ "$(echo $FILE | cut -b1-8)" != "install/" ]; then + echo "WARNING: Nonexistent $ROOT/$FILE was found in another package. Skipping." + fi + fi + else + preserve_dir "$FILE" + fi + done +} + +keep_links() { + while read LINK ; do + if [ -L "$ROOT/$LINK" ]; then + echo " --> $ROOT/$LINK (symlink) was found in another package. Skipping." + else + echo "WARNING: Nonexistent $ROOT/$LINK (symlink) was found in another package. Skipping." + fi + done +} + +delete_files() { + while read FILE ; do + if [ ! -d "$ROOT/$FILE" ]; then + if [ -r "$ROOT/$FILE" ]; then + if [ "$ROOT/$FILE" -nt "$ADM_DIR/packages/$PKGNAME" ]; then + echo "WARNING: $ROOT/$FILE changed after package installation." + fi + if [ ! "$WARN" = "true" ]; then + echo " --> Deleting $ROOT/$FILE" + preserve_file "$FILE" && rm -f "$ROOT/$FILE" + else + echo " --> $ROOT/$FILE would be deleted" + preserve_file "$FILE" + fi + else + echo " --> $ROOT/$FILE no longer exists. Skipping." + fi + else + preserve_dir "$FILE" + fi + done +} + +delete_links() { + while read LINK ; do + if [ -L "$ROOT/$LINK" ]; then + if [ ! "$WARN" = "true" ]; then + echo " --> Deleting symlink $ROOT/$LINK" + rm -f $ROOT/$LINK + else + echo " --> $ROOT/$LINK (symlink) would be deleted" + fi + else + echo " --> $ROOT/$LINK (symlink) no longer exists. Skipping." + fi + done +} + +delete_dirs() { + sort -r | \ + while read DIR ; do + if [ -d "$ROOT/$DIR" ]; then + if [ ! "$WARN" = "true" ]; then + if [ $(ls -a "$ROOT/$DIR" | wc -l) -eq 2 ]; then + echo " --> Deleting empty directory $ROOT/$DIR" + rmdir "$ROOT/$DIR" + else + echo "WARNING: Unique directory $ROOT/$DIR contains new files" + fi + else + echo " --> $ROOT/$DIR (dir) would be deleted if empty" + fi + fi + done +} + +delete_cats() { + sed -n 's,/man\(./[^/]*$\),/cat\1,p' | \ + while read FILE ; do + if [ -f "$ROOT/$FILE" ]; then + if [ ! "$WARN" = "true" ]; then + echo " --> Deleting $ROOT/$FILE (fmt man page)" + rm -f $ROOT/$FILE + else + echo " --> $ROOT/$FILE (fmt man page) would be deleted" + fi + fi + done +} + +package_name() { + STRING=$(pkgbase $1) + # If we don't do this, commands run later will take the '-' to be an option + # and will destroy the package database. Packages should not contain spaces + # in them. Normally this type of problem results from a command line typo. + if [ "$(echo $STRING | cut -b 1)" = "-" ]; then + STRING="malformed-package-name-detected" + fi + # Check for old style package name with one segment: + if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then + echo $STRING + else # has more than one dash delimited segment + # Count number of segments: + INDEX=1 + while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # don't include the null value + # If we don't have four segments, return the old-style (or out of spec) package name: + if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then + echo $STRING + else # we have four or more segments, so we'll consider this a new-style name: + NAME=$(expr $INDEX - 3) + NAME="$(echo $STRING | cut -f 1-$NAME -d -)" + echo $NAME + # cruft for later ;) + #VER=$(expr $INDEX - 2) + #VER="$(echo $STRING | cut -f $VER -d -)" + #ARCH=$(expr $INDEX - 1) + #ARCH="$(echo $STRING | cut -f $ARCH -d -)" + #BUILD="$(echo $STRING | cut -f $INDEX -d -)" + fi + fi +} + +# Conversion to 'comm' utility by Mark Wisdom. +# is pretty nifty! :^) +remove_packages() { + for PKGLIST in $* + do + PKGNAME=$(pkgbase $PKGLIST) + echo + # If we don't have a package match here, then we will attempt to find + # a package using the long name format (name-version-arch-build) for + # which the base package name was given. On a properly-managed machine, + # there should only be one package installed with a given basename, but + # we don't enforce this policy. If there's more than one, only one will + # be removed. If you want to remove them all, you'll need to run + # removepkg again until it removes all the same-named packages. + if [ ! -e $ADM_DIR/packages/$PKGNAME ]; then + SHORT="$(package_name $PKGNAME)" + for long_package in $ADM_DIR/packages/${PKGNAME}* ; do + if [ "$SHORT" = "$(package_name $long_package)" ]; then + PKGNAME="$(basename $long_package)" + fi + done + fi + + if [ ! -e $ADM_DIR/packages/$PKGNAME ]; then + long_package=$(ls -1 $ADM_DIR/packages/${PKGNAME}* | grep -m 1 "${PKGNAME}-[^-]*-[^-]*-[^-]*$") + if [ -e "$long_package" ]; then + PKGNAME=$(basename $long_package) + fi + fi + + if [ -r $ADM_DIR/packages/$PKGNAME ]; then + if [ ! "$WARN" = true ]; then + echo "Removing package $ADM_DIR/packages/$PKGNAME..." + fi + if fgrep "./" $ADM_DIR/packages/$PKGNAME 1> /dev/null 2>&1; then + TRIGGER="^\.\/" + else + TRIGGER="FILE LIST:" + fi + if [ ! "$WARN" = true ]; then + echo "Removing files:" + fi + sed -n "/$TRIGGER/,/^$/p" < $ADM_DIR/packages/$PKGNAME | \ + fgrep -v "FILE LIST:" | sort -u > $TMP/delete_list$$ + # Pat's new-new && improved pre-removal routine. + cat_except $ADM_DIR/packages $PKGNAME | sort -u > $TMP/required_list$$ + if [ -r $ADM_DIR/scripts/$PKGNAME ]; then + extract_links < $ADM_DIR/scripts/$PKGNAME | sort -u > $TMP/del_link_list$$ + cat_except $ADM_DIR/scripts $PKGNAME | extract_links | \ + sort -u > $TMP/required_links$$ + mv $TMP/required_list$$ $TMP/required_files$$ + sort -u $TMP/required_links$$ $TMP/required_files$$ > $TMP/required_list$$ + comm -12 $TMP/del_link_list$$ $TMP/required_list$$ | keep_links + comm -23 $TMP/del_link_list$$ $TMP/required_list$$ | delete_links + else + cat $ADM_DIR/scripts/* | extract_links | \ + sort -u > $TMP/required_links$$ + mv $TMP/required_list$$ $TMP/required_files$$ + sort -u $TMP/required_links$$ $TMP/required_files$$ >$TMP/required_list$$ + fi + comm -12 $TMP/delete_list$$ $TMP/required_list$$ | keep_files + comm -23 $TMP/delete_list$$ $TMP/required_list$$ > $TMP/uniq_list$$ + delete_files < $TMP/uniq_list$$ + delete_dirs < $TMP/uniq_list$$ + delete_cats < $TMP/uniq_list$$ + if [ ! "$KEEP" = "true" ]; then + rm -f $TMP/delete_list$$ $TMP/required_files$$ $TMP/uniq_list$$ + rm -f $TMP/del_link_list$$ $TMP/required_links$$ $TMP/required_list$$ + fi + if [ "$PRESERVE" = "true" ]; then + if [ -r $ADM_DIR/scripts/$PKGNAME ]; then + if [ ! -d "$PRES_DIR/$PKGNAME/install" ]; then + mkdir -p "$PRES_DIR/$PKGNAME/install" + fi + cp -p $ADM_DIR/scripts/$PKGNAME $PRES_DIR/$PKGNAME/install/doinst.sh + fi + fi + if [ ! "$WARN" = "true" ]; then + for DIR in $ADM_DIR/removed_packages $ADM_DIR/removed_scripts ; do + if [ ! -d $DIR ] ; then mkdir -p $DIR ; chmod 755 $DIR ; fi + done + mv $ADM_DIR/packages/$PKGNAME $ADM_DIR/removed_packages + if [ -r $ADM_DIR/scripts/$PKGNAME ]; then + mv $ADM_DIR/scripts/$PKGNAME $ADM_DIR/removed_scripts + fi + fi + else + echo "No such package: $ADM_DIR/packages/$PKGNAME. Can't remove." + fi + done +} + +if [ "$#" = "0" ]; then + echo "Usage: $(basename $0) [-copy] [-keep] [-preserve] [-warn] packagename ..."; exit 1 +fi + +while : ; do + case "$1" in + -copy | --copy) WARN=true; PRESERVE=true; shift;; + -keep | --keep) KEEP=true; shift;; + -preserve | --preserve) PRESERVE=true; shift;; + -warn | --warn) WARN=true; shift;; + -* | --*) echo "Usage: $(basename $0) [-copy] [-keep] [-preserve] [-warn] packagename ..."; exit 1;; + *) break + esac +done + +if [ "$WARN" = "true" ]; then + echo "Only warning... not actually removing any files." + if [ "$PRESERVE" = "true" ]; then + echo "Package contents is copied to $PRES_DIR." + fi + echo "Here's what would be removed (and left behind) if you" + echo "removed the package(s):" + echo +else + if [ "$PRESERVE" = "true" ]; then + echo "Package contents is copied to $PRES_DIR." + fi +fi + +remove_packages $* + diff --git a/source/a/pkgtools/scripts/setup.70.install-kernel b/source/a/pkgtools/scripts/setup.70.install-kernel new file mode 100644 index 000000000..8edf64779 --- /dev/null +++ b/source/a/pkgtools/scripts/setup.70.install-kernel @@ -0,0 +1,5 @@ +# Install the bootdisk or CD-ROM's Linux kernel: +#BLURB="Install a Linux kernel from a bootdisk" +if [ -x /usr/lib/setup/SeTkernel ]; then + . /usr/lib/setup/SeTkernel +fi diff --git a/source/a/pkgtools/scripts/setup.80.make-bootdisk b/source/a/pkgtools/scripts/setup.80.make-bootdisk new file mode 100644 index 000000000..d9b4012f2 --- /dev/null +++ b/source/a/pkgtools/scripts/setup.80.make-bootdisk @@ -0,0 +1,175 @@ +#!/bin/sh +#BLURB="Create a USB Linux boot stick" +RDIR=/dev/tty4 +NDIR=/dev/null +TMP=/var/log/setup/tmp + +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +T_PX="$1" +ROOT_DEVICE="$2" + +while [ 0 ]; do # the bootdisk menu loop + # Run "rescan-scsi-bus -l" to get an up to date overview of devices: + /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR + # Get a list of removable block devices before the USB stick is inserted: + echo "" > $TMP/remov_prior + for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do + [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \ + && echo $BDEV >> $TMP/remov_prior + done + dialog --title "MAKE USB FLASH BOOT" --default-item "Skip" --menu \ +"If your computer supports booting from a USB device, it is recommended that you make \ +a USB boot stick for your system at this time. It will boot your computer straight \ +into the root filesystem on $ROOT_DEVICE. \n\ +\n\ +Please insert a USB flash memory stick and then press ENTER to create a boot stick. \n\ +\n\ +WARNING! The existing contents of the USB stick will be erased. \n\ + " 18 70 2 \ + "Create" "Make a USB Linux boot stick" \ + "Skip" "Skip making a USB boot stick" \ + 2> $TMP/return + REPLY=`cat $TMP/return` + rm -f $TMP/return + if [ "$REPLY" = "Create" ]; then + # Run "rescan-scsi-bus -l" to discover our USB stick if needed: + /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR + # Get a list of removable block devices after the USB stick is inserted: + echo "" > $TMP/remov_after + for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do + [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \ + && echo $BDEV >> $TMP/remov_after + done + ADDED=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+') + REMVD=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+') + if [ -n "$ADDED" ] ; then STICK=$ADDED ; else STICK="" ; fi + rm $TMP/remov_prior $TMP/remov_after + if [ ! -n "$STICK" ]; then + dialog --title "NO NEW DEVICE DETECTED" --ok-label Restart --msgbox \ +"No new USB device was detected. +If you had already inserted your USB stick, please remove it now. \ +Then select 'Restart'." 7 70 + continue + else + VENDOR="Vendor : $(cat /sys/block/$STICK/device/vendor)" + MODEL="Model : $(cat /sys/block/$STICK/device/model)" + SIZE="Size : $(( $(cat /sys/block/$STICK/size) / 2048)) MB" + dialog --title "NEW DEVICE DETECTED" --yesno \ +"A new USB device '/dev/$STICK' was detected with specifications: + +-- $VENDOR +-- $MODEL +-- $SIZE + +If this is the USB stick to use, select 'Yes', +otherwise select 'No'." 12 70 + if [ $? -eq 1 ]; then + continue + fi + fi + + dialog --title "CREATING USB BOOT STICK" --infobox "Creating SYSLINUX bootdisk for \ +$ROOT_DEVICE on /dev/$STICK." 3 64 + # Determine max size of the filesystem (in KB) we want to create: + USBSIZE=$(( $(cat /sys/block/$STICK/size) / 2048)) + if [ $USBSIZE -lt 512 ]; then DOSSIZE=$(($USBSIZE*1024)) + else DOSSIZE=$((512*1024)) + fi + # Hack from Pat. If we're wasting a whole stick, who cares if the partition is + # extra-small, as long as the kernel fits? Also, FAT12 is the least problematic. + DOSSIZE=15861 + if [ -x /sbin/mkdosfs ]; then + /sbin/mkdosfs -I -n USBSLACK -F 12 /dev/$STICK $DOSSIZE 1> /dev/null 2> /dev/null + else + chroot $T_PX /sbin/mkdosfs -I -n USBSLACK -F 12 /dev/$STICK $DOSSIZE 1> /dev/null 2> /dev/null + fi + if [ ! -d $TMP/bootdisk ]; then + mkdir $TMP/bootdisk + fi + mount -t vfat /dev/$STICK $TMP/bootdisk 1> /dev/null 2> /dev/null + if [ -r $T_PX/vmlinuz ]; then + cp $T_PX/vmlinuz $TMP/bootdisk/vmlinuz + elif [ -r $T_PX/boot/vmlinuz ]; then + cp $T_PX/boot/vmlinuz $TMP/bootdisk/vmlinuz + fi + # We don't need the isolinux bootloader with syslinux do we? + #cp $T_PX/usr/share/syslinux/isolinux.bin $TMP/bootdisk/ + cat << EOF > $TMP/bootdisk/message.txt + +Welcome to the 09Slackware07 Linux custom USB boot stick! + +By default, this stick boots a root Linux partition on $ROOT_DEVICE when you +hit ENTER. If you'd like to boot some other partition, use a command like +this on the prompt below: + + mount root=/dev/sda1 ro + +Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that +the partition should be initially mounted as read-only. If you wish to mount +the partition read-write, use "rw" instead. To set the video console mode, +use the vga= parameter (press F1 to see a table). You may also add any other +kernel parameters you might need depending on your hardware, and which +drivers are included in your kernel. + +EOF + cat << EOF > $TMP/bootdisk/syslinux.cfg +default vmlinuz root=$ROOT_DEVICE vga=normal ro +prompt 1 +timeout 6000 +display message.txt +F1 f1.txt +F2 message.txt +#F3 f3.txt +#F4 f4.txt +#F5 f5.txt +#F6 f6.txt +#F7 f7.txt +label mount + kernel vmlinuz + append root=$ROOT_DEVICE vga=normal ro +EOF + cat << EOF > $TMP/bootdisk/f1.txt + STANDARD MODES: + To make the kernel prompt for standard video modes use: vga=ask + + FRAMEBUFFER MODES: + To get the kernel to start in VESA framebuffer mode, you need to pass it + a vga= init string on the "boot:" prompt. Here's a table: + + Colors 640x480 800x600 1024x768 1280x1024 1600x1200 + --------+--------------------------------------------- + 256 | 769 771 773 775 796 + 32,768 | 784 787 790 793 797 + 65,536 | 785 788 791 794 798 + 16.8M | 786 789 792 795 799 + + ...such as this for 1024x768x64k: + vga=791 + + F2 returns to the previous page. + +EOF + umount /dev/$STICK + rm -r $TMP/bootdisk + # Make the device bootable: + syslinux -s /dev/$STICK 1> /dev/null 2> /dev/null + dialog --title "USB BOOT STICK CREATED" --ok-label Continue --cancel-label Create --menu \ +"The USB boot stick has been successfully created in /dev/$STICK. If you would like to \ +create an additional boot stick, please select 'Create' and we'll go back and make another \ +one, otherwise select 'Continue' to continue configuring your system." 12 70 2 \ + "Continue" "Continue the configuration (done making boot sticks)" \ + "Create" "Make a spare Linux boot stick in /dev/$STICK" \ + 2> $TMP/return + REPLY=`cat $TMP/return` + rm -f $TMP/return + if [ "$REPLY" = "Create" ]; then + continue + else + break + fi + else # ! Create + break + fi +done diff --git a/source/a/pkgtools/scripts/setup.htmlview b/source/a/pkgtools/scripts/setup.htmlview new file mode 100644 index 000000000..2fd9930a7 --- /dev/null +++ b/source/a/pkgtools/scripts/setup.htmlview @@ -0,0 +1,33 @@ +#!/bin/sh +#BLURB="Set a default browser link." +# Sorry, this is not a full menu, and may not ever be. +# It is trivial to find the htmllink symbolic link and +# point it at the browser that you like. Besides, +# this is not a Linux standard that could be locating +# in any official document. It seems to have been +# started without any consultation with other +# distributions by <take a wild guess>, and now things +# expect it to be there. +# +# +# Note 1. Listing a browser doesn't mean we ship it. +# Note 2. Complaints about our preferences or missing +# browsers in the list will be considered. +# Yell at Pat about it. ;-) + +# There must be no link, or we assume the admin set it and +# do nothing. Can you tell this Q+D script was written for +# the initial installation? + +for browser in firefox seamonkey konqueror galeon epiphany links lynx ; do + if [ ! -e usr/bin/htmlview -a -x usr/bin/$browser ]; then + cat << EOF > usr/bin/htmlview +#!/bin/sh +exec $browser "\$@" +EOF + fi +done +if [ -e usr/bin/htmlview ]; then + chmod 755 usr/bin/htmlview +fi + diff --git a/source/a/pkgtools/scripts/setup.services b/source/a/pkgtools/scripts/setup.services new file mode 100644 index 000000000..aee2599fd --- /dev/null +++ b/source/a/pkgtools/scripts/setup.services @@ -0,0 +1,287 @@ +#!/bin/sh +#BLURB="Select/deselect system daemons (services)" +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP +fi +T_PX="$1" +cd $T_PX +rm -f $TMP/tmpscript + +cat << EOF > $TMP/tmpscript +dialog --title "CONFIRM STARTUP SERVICES TO RUN" --item-help --checklist \\ +"The selected services will be started at boot time. If you \\ +don't need them, you may unselect them to turn them off (which may improve \\ +overall system security). You may also choose to start services that are \\ +not run by default, but be aware that more services means less security. \\ +Use the spacebar to select or unselect the services you wish to run. \\ +Recommended choices have been preselected. \\ +Press the ENTER key when you are finished." \\ +20 75 7 \\ +EOF + +if [ -r etc/rc.d/rc.atalk ]; then + if [ -x etc/rc.d/rc.atalk ]; then + RC_ATALK=on + else + RC_ATALK=off + fi + cat << EOF >> $TMP/tmpscript + "rc.atalk" "Netatalk Appletalk file/print server" $RC_ATALK "The Netatalk server is a file and print server for Macintosh networks." \\ +EOF +fi + +if [ -r etc/rc.d/rc.bind ]; then + if [ -x etc/rc.d/rc.bind ]; then + RC_BIND=on + else + RC_BIND=off + fi + cat << EOF >> $TMP/tmpscript + "rc.bind" "BIND (Domain Name System) server" $RC_BIND "BIND (Berkeley Internet Name Domain) is a Domain Name System (DNS) server." \\ +EOF +fi + +if [ -r etc/rc.d/rc.cups ]; then + if [ -x etc/rc.d/rc.cups ]; then + RC_CUPS=on + else + RC_CUPS=off + fi + cat << EOF >> $TMP/tmpscript + "rc.cups" "CUPS print server" $RC_CUPS "The Common UNIX Printing system (print spooler choice #1)." \\ +EOF +fi + +if [ -r etc/rc.d/rc.dnsmasq ]; then + if [ -x etc/rc.d/rc.dnsmasq ]; then + RC_DNSMASQ=on + else + RC_DNSMASQ=off + fi + cat << EOF >> $TMP/tmpscript + "rc.dnsmasq" "dnsmasq DHCP/DNS server" $RC_DNSMASQ "dnsmasq provides DNS and DHCP service to a LAN." \\ +EOF +fi + +if [ -r etc/rc.d/rc.fuse ]; then + if [ -x etc/rc.d/rc.fuse ]; then + RC_FUSE=on + else + RC_FUSE=off + fi + cat << EOF >> $TMP/tmpscript + "rc.fuse" "Filesystem in Userspace library" $RC_FUSE "FUSE is an interface to allow userspace programs to use filesystems." \\ +EOF +fi + +if [ -r etc/rc.d/rc.hald ]; then + if [ -x etc/rc.d/rc.hald ]; then + RC_HALD=on + else + RC_HALD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.hald" "Hardware Abstraction Layer" $RC_HALD "HAL makes access to CD/DVD drives and USB devices easier." \\ +EOF +fi + +if [ -r etc/rc.d/rc.hplip ]; then + if [ -x etc/rc.d/rc.hplip ]; then + RC_HPLIP=on + else + RC_HPLIP=off + fi + cat << EOF >> $TMP/tmpscript + "rc.hplip" "HP printer/scanner daemons" $RC_HPLIP "Programs used to run printers and scanners from Hewlett Packard." \\ +EOF +fi + +if [ -r etc/rc.d/rc.httpd ]; then + if [ -x etc/rc.d/rc.httpd ]; then + RC_HTTPD=on + else + RC_HTTPD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.httpd" "The Apache web server" $RC_HTTPD "Apache, the most widely used web server on the net." \\ +EOF +fi + +if [ -r etc/rc.d/rc.inetd ]; then + if [ -x etc/rc.d/rc.inetd ]; then + RC_INETD=on + else + RC_INETD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.inetd" "The BSD Inetd daemon" $RC_INETD "Inetd daemon (this allows: time, ftp, comsat, talk, finger, and auth)." \\ +EOF +fi + +if [ -r etc/rc.d/rc.ip_forward ]; then + if [ -x etc/rc.d/rc.ip_forward ]; then + RC_IP_FORWARD=on + else + RC_IP_FORWARD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.ip_forward" "Activate IP packet forwarding" $RC_IP_FORWARD "Packet forwarding allows your Linux machine to act as a router." \\ +EOF +fi + +if [ -r etc/rc.d/rc.lprng ]; then + if [ -x etc/rc.d/rc.lprng ]; then + RC_LPRNG=on + else + RC_LPRNG=off + fi + cat << EOF >> $TMP/tmpscript + "rc.lprng" "LPRng print server" $RC_LPRNG "The LPRng printing system (print spooler choice #2)." \\ +EOF +fi + +if [ -r etc/rc.d/rc.messagebus ]; then + if [ -x etc/rc.d/rc.messagebus ]; then + RC_MESSAGEBUS=on + else + RC_MESSAGEBUS=off + fi + cat << EOF >> $TMP/tmpscript + "rc.messagebus" "D-Bus system message bus" $RC_MESSAGEBUS "Used for communication by HAL and other programs." \\ +EOF +fi + +if [ -r etc/rc.d/rc.mysqld ]; then + if [ -x etc/rc.d/rc.mysqld ]; then + RC_MYSQLD=on + else + RC_MYSQLD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.mysqld" "The MySQL database server" $RC_MYSQLD "MySQL, an SQL-based relational database daemon." \\ +EOF +fi + +if [ -r etc/rc.d/rc.ntpd ]; then + if [ -x etc/rc.d/rc.ntpd ]; then + RC_NTPD=on + else + RC_NTPD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.ntpd" "The network time server" $RC_NTPD "NTP synchronizes your time to/from other NTP servers." \\ +EOF +fi + +if [ -r etc/rc.d/rc.pcmcia ]; then + if [ -x etc/rc.d/rc.pcmcia ]; then + RC_PCMCIA=on + else + RC_PCMCIA=off + fi + cat << EOF >> $TMP/tmpscript + "rc.pcmcia" "PCMCIA/Cardbus card services" $RC_PCMCIA "This supports PCMCIA or Cardbus cards used with laptops." \\ +EOF +fi + +if [ -r etc/rc.d/rc.rpc ]; then + if [ -x etc/rc.d/rc.rpc ]; then + RC_RPC=on + else + RC_RPC=off + fi + cat << EOF >> $TMP/tmpscript + "rc.rpc" "RPC (NFS) daemons" $RC_RPC "Needed to serve or mount NFS (Network File System) partitions." \\ +EOF +fi + +if [ -r etc/rc.d/rc.samba ]; then + if [ -x etc/rc.d/rc.samba ]; then + RC_SAMBA=on + else + RC_SAMBA=off + fi + cat << EOF >> $TMP/tmpscript + "rc.samba" "The Samba file/print server" $RC_SAMBA "Samba is a file and print server for Windows networks." \\ +EOF +fi + +if [ -r etc/rc.d/rc.saslauthd ]; then + if [ -x etc/rc.d/rc.saslauthd ]; then + RC_SASLAUTHD=on + else + RC_SASLAUTHD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.saslauthd" "The SASL authentication server" $RC_SASLAUTHD "SASL is an authentication method often used by mail servers." \\ +EOF +fi + +if [ -r etc/rc.d/rc.sendmail ]; then + if [ -x etc/rc.d/rc.sendmail ]; then + RC_SENDMAIL=on + else + RC_SENDMAIL=off + fi + cat << EOF >> $TMP/tmpscript + "rc.sendmail" "The Sendmail mail server" $RC_SENDMAIL "The Sendmail server allows your machine to send and receive mail." \\ +EOF +fi + +if [ -r etc/rc.d/rc.snmpd ]; then + if [ -x etc/rc.d/rc.snmpd ]; then + RC_SNMPD=on + else + RC_SNMPD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.snmpd" "Net-SNMP daemon" $RC_SNMPD "SNMP daemon that receives and logs SNMP TRAP and INFORM messages." \\ +EOF +fi + +if [ -r etc/rc.d/rc.syslog ]; then + if [ -x etc/rc.d/rc.syslog ]; then + RC_SYSLOGD=on + else + RC_SYSLOGD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.syslog" "The Linux system logging utilities" $RC_SYSLOGD "The syslogd and klogd daemons log important messages under /var/log." \\ +EOF +fi + +if [ -r etc/rc.d/rc.sshd ]; then + if [ -x etc/rc.d/rc.sshd ]; then + RC_SSHD=on + else + RC_SSHD=off + fi + cat << EOF >> $TMP/tmpscript + "rc.sshd" "The SSHD (secure shell) daemon" $RC_SSHD "SSHD allows secure encrypted logins to your machine." \\ +EOF +fi + +cat << EOF >> $TMP/tmpscript + 2> $TMP/reply +EOF + +. $TMP/tmpscript + +if [ ! $? = 0 ]; then + rm -f $TMP/reply $TMP/tmpscript + exit +fi + +for service in rc.atalk rc.bind rc.cups rc.dnsmasq rc.fuse rc.hald rc.hplip rc.httpd rc.inetd rc.ip_forward rc.lprng rc.messagebus rc.mysqld rc.ntpd rc.pcmcia rc.rpc rc.samba rc.saslauthd rc.snmpd rc.sendmail rc.syslog rc.sshd ; do + if [ -f etc/rc.d/$service ]; then + if grep -w $service $TMP/reply 1> /dev/null ; then + chmod 755 etc/rc.d/$service + else + chmod 644 etc/rc.d/$service + fi + fi +done + +rm -f $TMP/reply $TMP/tmpscript + diff --git a/source/a/pkgtools/scripts/upgradepkg b/source/a/pkgtools/scripts/upgradepkg new file mode 100644 index 000000000..cc3250dae --- /dev/null +++ b/source/a/pkgtools/scripts/upgradepkg @@ -0,0 +1,387 @@ +#!/bin/sh +# Copyright 1999 Patrick Volkerding, Moorhead, Minnesota, USA +# Copyright 2001, 2002, 2003 Slackware Linux, Inc., Concord, California, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# +# Modified to handle either old 8.3 or new package-version-arch-build.tgz +# packages, Sat Nov 17 14:25:58 PST 2001 volkerdi +# +# Rewritten to clean out _all_ old packages of a given basename, not just +# the first one found, Thu Apr 4 01:01:05 PST 2002 volkerdi +# +# Added --install-new and --reinstall, Fri May 31 14:11:14 PDT 2002 volkerdi +# Added --dry-run, Sat Apr 26 18:13:29 PDT 2003 +# +# Sat Apr 25 21:18:53 UTC 2009 +# Support new compression types and package extensions. +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. + +# Return a package name that has been stripped of the dirname portion +# and any of the valid extensions (only): +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'tgz' ) + PKGRETURN=$(basename $1 .tgz) + ;; + 'tbz' ) + PKGRETURN=$(basename $1 .tbz) + ;; + 'tlz' ) + PKGRETURN=$(basename $1 .tlz) + ;; + 'txz' ) + PKGRETURN=$(basename $1 .txz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +usage() { + cat << EOF + +Usage: upgradepkg newpackage [newpackage2 ... ] + upgradepkg oldpackage%newpackage [oldpackage2%newpackage2 ... ] + +Upgradepkg upgrades a Slackware package (.tgz, .tbz, .tlz, .txz) from an +older version to a newer one. It does this by INSTALLING the new package +onto the system, and then REMOVING any files from the old package that +aren't in the new package. If the old and new packages have the same +name, a single argument is all that is required. If the packages have +different names, supply the name of the old package followed by a percent +symbol (%), then the name of the new package. Do not add any extra +whitespace between pairs of old/new package names. + +Before upgrading a package, save any configuration files (such as in /etc) +that you wish to keep. Sometimes these will be preserved, but it depends +on the package. If you want to force new versions of the config files +to be installed, remove the old ones manually prior to running upgradepkg. + +To upgrade in a directory other than / (such as /mnt): + + ROOT=/mnt upgradepkg package.tgz (or .tbz, .tlz, .txz) + +EOF +} + +# Make sure there's a proper temp directory: +TMP=$ROOT/var/log/setup/tmp +# If the $TMP directory doesn't exist, create it: +if [ ! -d $TMP ]; then + rm -rf $TMP # make sure it's not a symlink or something stupid + mkdir $TMP + chmod 700 $TMP # no need to leave it open +fi + +# This script expects an 022 umask: +umask 022 + +# $ROOT defined? +if [ -d "$ROOT" ]; then + export ROOT +fi + +# --help or no args? +if [ "$1" = "" -o "$1" = "--help" -o "$1" = "-?" ]; then + usage; + exit 1; +fi + +# Arg processing loop. These must come before any packages are listed. +while [ 0 ]; do + if [ "$1" = "--no-paranoia" ]; then + # Enable --no-paranoia mode. This is so not-recommended that we're + # not even going to document it. ;) If a file used to be directly + # managed and now is moved into place, using --no-paranoia will cause + # it to improperly disappear. It does slightly speed things up, though. + # Don't use it. + NOT_PARANOID="true" + shift 1 + elif [ "$1" = "--install-new" ]; then + # Install packages that do not already have an installed version. + # The usual default is to skip them. + INSTALL_NEW="yes" + shift 1 + elif [ "$1" = "--reinstall" ]; then + # Reinstall packages even if the installed one is the same version. + REINSTALL="true" + shift 1 + elif [ "$1" = "--verbose" -o "$1" = "-v" ]; then + # We're adding a --verbose mode that doesn't filter removepkg as much + VERBOSE="verbose" + shift 1 + elif [ "$1" = "--dry-run" ]; then + # Output a report about which packages would be installed or upgraded + # but don't actually perform the upgrades. + DRY_RUN="true" + shift 1 + else # no more args + break; + fi +done # processing args + +# Here's a function to figure out the package name from one of those +# new long filenames. We'll need this to double check the name of the +# old package. + +package_name() { + STRING=$(pkgbase $1) + # Check for old style package name with one segment: + if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then + echo $STRING + else # has more than one dash delimited segment + # Count number of segments: + INDEX=1 + while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do + INDEX=$(expr $INDEX + 1) + done + INDEX=$(expr $INDEX - 1) # don't include the null value + # If we don't have four segments, return the old-style (or out of spec) package name: + if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then + echo $STRING + else # we have four or more segments, so we'll consider this a new-style name: + NAME=$(expr $INDEX - 3) + NAME="$(echo $STRING | cut -f 1-$NAME -d -)" + echo $NAME + # cruft for later ;) + #VER=$(expr $INDEX - 2) + #VER="$(echo $STRING | cut -f $VER -d -)" + #ARCH=$(expr $INDEX - 1) + #ARCH="$(echo $STRING | cut -f $ARCH -d -)" + #BUILD="$(echo $STRING | cut -f $INDEX -d -)" + fi + fi +} + +ERRCODE=0 + +# Main processing loop: +while [ ! "$1" = "" ]; do + +# Simple package integrity check: +if [ ! -f $(echo $1 | cut -f 2 -d '%') ]; then + ERRCODE=4 + echo "Cannot install $1: file not found" + shift 1 + continue; +fi + +# Figure out the names of the old and new packages: +OLD=$(echo $1 | cut -f 1 -d '%') +NEW=$(echo $1 | cut -f 2 -d '%') +INCOMINGDIR=$(dirname $NEW) +# These are the package names with the extension: +NNAME=$(basename $NEW) +ONAME=$(basename $OLD) +# These are the package names without the extension: +OLD=$(pkgbase $OLD) +NEW=$(pkgbase $NEW) + +# Make sure the extension is valid: +if [ "$NNAME" = "$NEW" ]; then + # We won't throw an ERRCODE for this, but the package is skipped: + echo "Cannot install $1: invalid package extension" + shift 1 + continue; +fi + +# Check and fix the old package name: +SHORT="$(package_name $OLD)" +if [ ! -r $ROOT/var/log/packages/$OLD ]; then + if ls $ROOT/var/log/packages/$SHORT* 1> /dev/null 2> /dev/null ; then + for installed_package in $ROOT/var/log/packages/$SHORT* ; do + if [ "$(package_name $installed_package)" = "$SHORT" ]; then # found one + OLD="$(basename $installed_package)" + break + fi + done + fi +fi + +# Test to see if both the old and new packages are where we expect them +# to be -- skip to the next package (or package pair) if anything's wrong: + +if [ ! -r $ROOT/var/log/packages/$OLD ]; then + if [ ! "$INSTALL_NEW" = "yes" ]; then + if [ "$DRY_RUN" = "true" ]; then + echo "$OLD would not be upgraded (no installed package named $SHORT)." + else + echo + echo "Error: there is no installed package named $OLD." + echo " (looking for $ROOT/var/log/packages/$OLD)" + echo + fi + ERRCODE=1 + else # --install-new was given, so install the new package: + if [ "$DRY_RUN" = "true" ]; then + echo "$NEW would be installed (new package)." + else + cat << EOF + ++============================================================================== +| Installing new package $INCOMINGDIR/$NNAME ++============================================================================== + +EOF + installpkg $INCOMINGDIR/$NNAME + fi + fi + shift 1 + continue; +elif [ ! -r "$INCOMINGDIR/$NNAME" ]; then + if [ "$DRY_RUN" = "true" ]; then + echo "$NEW incoming package not found (command line)." + else + echo + echo "Error: incoming package $INCOMINGDIR/$NNAME not found." + echo + fi + shift 1 + ERRCODE=1 + continue; +fi + +# Unless --reinstall was given, compare the package names +# and skip any exact matches: +if [ ! "$REINSTALL" = "true" ]; then + if [ "$OLD" = "$NEW" ]; then + if [ "$DRY_RUN" = "true" ]; then + echo "$NEW would be skipped (already installed)." + else + cat << EOF + ++============================================================================== +| Skipping package $NEW (already installed) ++============================================================================== + +EOF + fi + shift 1 + continue; + fi +fi + +# Showtime. Let's do the upgrade. First, we will rename all the +# installed packages with this basename to make them easy to remove later: + +TIMESTAMP=$(date +%Y-%m-%d,%T) +SHORT="$(package_name $OLD)" +if [ "$DRY_RUN" = "true" ]; then + echo -n "$NEW would upgrade: " + for installed_package in $ROOT/var/log/packages/$SHORT* ; do + if [ "$(package_name $installed_package)" = "$SHORT" ]; then + echo -n "$(pkgbase $installed_package)" + fi + done + echo + shift 1 + continue +fi +for installed_package in $ROOT/var/log/packages/$SHORT* ; do + if [ "$(package_name $installed_package)" = "$SHORT" ]; then + mv $installed_package ${installed_package}-upgraded-$TIMESTAMP + fi +done +for installed_script in $ROOT/var/log/scripts/$SHORT* ; do + if [ "$(package_name $installed_script)" = "$SHORT" ]; then + if [ -r $installed_script ]; then + mv $installed_script ${installed_script}-upgraded-$TIMESTAMP + fi + fi +done + +# Print a banner for the current upgrade: +cat << EOF + ++============================================================================== +| Upgrading $OLD package using $INCOMINGDIR/$NNAME ++============================================================================== + +EOF + +# Next, the new package is pre-installed: +if [ "$VERBOSE" = "verbose" ]; then + installpkg $INCOMINGDIR/$NNAME + RETCODE=$? +else + echo "Pre-installing package $NEW..." + installpkg $INCOMINGDIR/$NNAME 1> /dev/null + RETCODE=$? +fi +# Make sure that worked: +if [ ! $RETCODE = 0 ]; then + echo "ERROR: Package $INCOMINGDIR/$NNAME did not install" + echo "correctly. You may need to reinstall your old package" + echo "to avoid problems. Make sure the new package is not" + echo "corrupted." + sleep 30 + # Skip this package, but still try to proceed. Good luck... + shift 1 + continue; +fi + +# Now, the leftovers from the old package(s) can go. Pretty simple, huh? :) +if [ -d "$ROOT" ]; then + ( cd $ROOT/var/log/packages + for rempkg in *-$TIMESTAMP ; do + if [ "$VERBOSE" = "verbose" ]; then + ROOT=$ROOT removepkg $rempkg + else + ROOT=$ROOT removepkg $rempkg | grep -v "Skipping\." | grep -v "Removing files:" + fi + done + ) +else + ( cd /var/log/packages + for rempkg in *-$TIMESTAMP ; do + if [ "$VERBOSE" = "verbose" ]; then + removepkg $rempkg + else + removepkg $rempkg | grep -v "Skipping\." | grep -v "Removing files:" + fi + done + ) +fi +echo + +# Again! Again! +# Seriously, the reinstalling of a package can be crucial if any files +# shift location, so we should always reinstall as the final step: +if [ ! "$NOT_PARANOID" = "true" ]; then + installpkg $INCOMINGDIR/$NNAME +fi + +echo "Package $OLD upgraded with new package $INCOMINGDIR/$NNAME." +ERRCODE=0 + +# Process next parameter: +shift 1 + +done + +if [ ! "$DRY_RUN" = "true" ]; then + echo +fi +exit $ERRCODE diff --git a/source/a/pkgtools/slack-desc b/source/a/pkgtools/slack-desc new file mode 100644 index 000000000..ab3fc1198 --- /dev/null +++ b/source/a/pkgtools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pkgtools: pkgtools (The Slackware package maintenance system) +pkgtools: +pkgtools: This package contains utilities for handling Slackware packages. +pkgtools: Included are the command line utilities 'installpkg', 'removepkg', +pkgtools: 'makepkg', 'explodepkg', and 'upgradepkg' that install, remove, +pkgtools: build, examine, and upgrade software packages. Also included are +pkgtools: 'pkgtool', a menu based program for installing packages, removing +pkgtools: packages, or viewing the packages that are installed on the system, +pkgtools: documentation (man pages), and a few other system admin scripts. +pkgtools: +pkgtools: diff --git a/source/a/procps/procinfo.gcc3.diff b/source/a/procps/procinfo.gcc3.diff new file mode 100644 index 000000000..96a3dbb19 --- /dev/null +++ b/source/a/procps/procinfo.gcc3.diff @@ -0,0 +1,11 @@ +--- ./routines.c.orig 2001-02-24 15:30:45.000000000 -0800 ++++ ./routines.c 2003-02-07 13:38:09.000000000 -0800 +@@ -390,7 +390,7 @@ + unsigned int d, h, m, s; + static char buf[22]; + +- t = t * 100 / HZ; ++ t = t * 100. / HZ; + d = (int) (t / 8640000); + t = t - (long) (d * 8640000); + h = (int) (t / 360000); diff --git a/source/a/procps/procinfo.lsm b/source/a/procps/procinfo.lsm new file mode 100644 index 000000000..70ff559f6 --- /dev/null +++ b/source/a/procps/procinfo.lsm @@ -0,0 +1,15 @@ +Begin3 +Title: procinfo +Version: 18 +Entered-date: 02MAR01 +Description: A utility to prettyprint /proc/* +Keywords: procinfo, system info +Author: svm@kozmix.cistron.nl (Sander van Malssen) +Maintained-by: svm@kozmix.cistron.nl (Sander van Malssen) +Primary-site: ftp.cistron.nl /pub/people/svm + 23k procinfo-18.tar.gz +Alternate-site: metalab.unc.edu /pub/Linux/system/status/ps +Alternate-site: tsx-11.mit.edu /pub/linux/sources/usr.bin +Platforms: Linux 1.0.x - 2.4.x +Copying-policy: GNU Public License +End diff --git a/source/a/procps/procps-3.2.7-ps-eip64.diff b/source/a/procps/procps-3.2.7-ps-eip64.diff new file mode 100644 index 000000000..9eb851f44 --- /dev/null +++ b/source/a/procps/procps-3.2.7-ps-eip64.diff @@ -0,0 +1,48 @@ +--- procps-3.2.7/ps/ps.1.eip64 2007-06-14 11:08:35.000000000 +0200 ++++ procps-3.2.7/ps/ps.1 2007-06-14 11:03:28.000000000 +0200 +@@ -1156,6 +1156,14 @@ + or\ a\ decimal representation otherwise. + T} + ++rip RIP T{ ++64-bit instruction pointer. ++T} ++ ++rsp RSP T{ ++64-bit stack pointer. ++T} ++ + rss RSS T{ + resident set size, the non\-swapped physical memory that + a task has used (in\ kiloBytes). +--- procps-3.2.7/ps/output.c.eip64 2007-06-14 11:08:24.000000000 +0200 ++++ procps-3.2.7/ps/output.c 2007-06-14 10:58:21.000000000 +0200 +@@ -764,10 +764,18 @@ + return snprintf(outbuf, COLWID, "%08x", (unsigned)(pp->kstk_esp)); + } + ++static int pr_rsp(char *restrict const outbuf, const proc_t *restrict const pp){ ++ return snprintf(outbuf, COLWID, "%016lx", (unsigned long)(pp->kstk_esp)); ++} ++ + static int pr_eip(char *restrict const outbuf, const proc_t *restrict const pp){ + return snprintf(outbuf, COLWID, "%08x", (unsigned)(pp->kstk_eip)); + } + ++static int pr_rip(char *restrict const outbuf, const proc_t *restrict const pp){ ++ return snprintf(outbuf, COLWID, "%016lx", (unsigned long)(pp->kstk_eip)); ++} ++ + /* This function helps print old-style time formats */ + static int old_time_helper(char *dst, unsigned long long t, unsigned long long rel) { + if(!t) return snprintf(dst, COLWID, " -"); +@@ -1403,7 +1411,9 @@ + {"resident", "RES", pr_nop, sr_resident, 5,MEM, LNX, PO|RIGHT}, + {"rgid", "RGID", pr_rgid, sr_rgid, 5, 0, XXX, ET|RIGHT}, + {"rgroup", "RGROUP", pr_rgroup, sr_rgroup, 8, GRP, U98, ET|USER}, /* was 8 wide */ ++{"rip", "RIP", pr_rip, sr_kstk_eip, 16, 0, LNX, TO|RIGHT}, + {"rlink", "RLINK", pr_nop, sr_nop, 8, 0, BSD, AN|RIGHT}, ++{"rsp", "RSP", pr_rsp, sr_kstk_eip, 16, 0, LNX, TO|RIGHT}, + {"rss", "RSS", pr_rss, sr_rss, 5, 0, XXX, PO|RIGHT}, /* was 5 wide */ + {"rssize", "RSS", pr_rss, sr_vm_rss, 5, 0, DEC, PO|RIGHT}, /*rsz*/ + {"rsz", "RSZ", pr_rss, sr_vm_rss, 5, 0, BSD, PO|RIGHT}, /*rssize*/ diff --git a/source/a/procps/procps.SlackBuild b/source/a/procps/procps.SlackBuild new file mode 100755 index 000000000..a5163bbc2 --- /dev/null +++ b/source/a/procps/procps.SlackBuild @@ -0,0 +1,191 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.2.7 +# Sometimes this number lags behind... +SOVER=3.2.7 +PSMISCVER=22.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-procps + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +# Prepare build locations: +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf procps-$VERSION +tar xzvf $CWD/procps-$VERSION.tar.gz +cd procps-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/doc/procps-$VERSION +cp -a BUGS COPYING COPYING.LIB NEWS TODO $PKG/usr/doc/procps-$VERSION +chown root:root $PKG/usr/doc/procps-$VERSION/* +chmod 644 $PKG/usr/doc/procps-$VERSION/* +# While I don't agree this is a harmful patch, I will defer to the +# maintainer's judgement on this one. Besides, I quit using the '-' +# with ps years ago. It wasn't that hard to change. +#echo zcat $CWD/procps.nowarning.diff.gz +#zcat $CWD/procps.nowarning.diff.gz | patch -p1 --verbose || exit 1 + +# Display the location from which the user is logged in by default. +# This is how previous versions of 'w' in Slackware have always +# defaulted. +echo zcat $CWD/procps.w.showfrom.diff.gz +zcat $CWD/procps.w.showfrom.diff.gz | patch -p1 --verbose || exit 1 + +if [ "$ARCH" = "x86_64" ]; then +# Taken from RedHat: ps truncates eip and esp to 32bit values on 64bit systems. +# The patch adds 64bit rip and rsp to the 'ps' output options on x86_64 + zcat $CWD/procps-3.2.7-ps-eip64.diff.gz | patch -p1 --verbose || exit 1 +fi + +make OPT="$SLKCFLAGS" +mkdir -p $PKG/lib${LIBDIRSUFFIX} $PKG/bin $PKG/sbin $PKG/usr/bin +cat free > $PKG/bin/free +cat ps/ps> $PKG/bin/ps +cat proc/libproc-${SOVER}.so > $PKG/lib${LIBDIRSUFFIX}/libproc-${SOVER}.so +cat pkill > $PKG/usr/bin/pkill +cat skill > $PKG/usr/bin/skill +cat pmap > $PKG/usr/bin/pmap +cat slabtop > $PKG/usr/bin/slabtop +cat sysctl > $PKG/sbin/sysctl +cat tload > $PKG/usr/bin/tload +cat top > $PKG/usr/bin/top +cat uptime > $PKG/usr/bin/uptime +cat vmstat > $PKG/usr/bin/vmstat +cat w > $PKG/usr/bin/w +cat watch > $PKG/usr/bin/watch +( cd $PKG/usr/bin + ln -sf pkill pgrep + ln -sf skill snice + # Just in case + ln -sf /bin/free . + ln -sf /bin/ps . +) +cp -a ps/ps.1 . +mkdir -p $PKG/usr/man/man1 +for page in free.1 pgrep.1 pkill.1 ps.1 slabtop.1 skill.1 snice.1 tload.1 top.1 uptime.1 w.1 watch.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +mkdir -p $PKG/usr/man/man5 +cat sysctl.conf.5 | gzip -9c > $PKG/usr/man/man5/sysctl.conf.5.gz +mkdir -p $PKG/usr/man/man8 +for page in vmstat.8 sysctl.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done + +echo "+=============+" +echo "| psmisc-$PSMISCVER |" +echo "+=============+" +cd $TMP +rm -rf psmisc-$PSMISCVER +tar xzvf $CWD/psmisc-$PSMISCVER.tar.gz +cd psmisc-$PSMISCVER +# Maybe we'll turn on NLS when it supports more than +# just US English. :) +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-nls +mkdir -p $PKG/usr/doc/psmisc-$PSMISCVER +cp -a AUTHORS COPYING ChangeLog INSTALL NEWS README $PKG/usr/doc/psmisc-$PSMISCVER +chmod 644 $PKG/usr/doc/psmisc-$PSMISCVER/* +chown root:root $PKG/usr/doc/psmisc-$PSMISCVER/* +make +cd src +strip fuser pstree killall +cat fuser > $PKG/usr/bin/fuser +cat pstree > $PKG/usr/bin/pstree +cat killall > $PKG/bin/killall +cd ../doc +for page in fuser.1 killall.1 pstree.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +cd .. + +echo "+=============+" +echo "| procinfo-18 |" +echo "+=============+" +cd $TMP +rm -rf procinfo-18 +tar xzvf $CWD/procinfo-18.tar.gz +cd procinfo-18 +zcat $CWD/procinfo.gcc3.diff.gz | patch -p1 --backup --suffix=.orig --verbose || exit 1 +mkdir -p $PKG/usr/doc/procinfo-18 +cp -a CHANGES README $PKG/usr/doc/procinfo-18 +chmod 644 $PKG/usr/doc/procinfo-18/* +chown root:root $PKG/usr/doc/procinfo-18/* +make CFLAGS="$SLKCFLAGS" +strip procinfo +cat procinfo > $PKG/usr/bin/procinfo +cat lsdev.pl > $PKG/usr/bin/lsdev +cat socklist.pl > $PKG/usr/bin/socklist +for page in procinfo.8 lsdev.8 socklist.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done + +# Fix permissions: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* $PKG/bin/* $PKG/sbin/* $PKG/usr/bin/* +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/procps-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/procps-$VERSION + rm -rf $TMP/procinfo-18 + rm -rf $TMP/psmisc-$PSMISCVER + rm -rf $PKG +fi diff --git a/source/a/procps/procps.nowarning.diff b/source/a/procps/procps.nowarning.diff new file mode 100644 index 000000000..bd4b1466a --- /dev/null +++ b/source/a/procps/procps.nowarning.diff @@ -0,0 +1,25 @@ +--- ./ps/parser.c.orig 2004-08-09 17:41:10.000000000 -0700 ++++ ./ps/parser.c 2004-08-16 18:30:09.000000000 -0700 +@@ -1213,12 +1213,20 @@ + // about "ps -aux" suddenly changing behavior if a user "x" were + // added to the system. + // ++ // Yes, this is still getting patched out here. IMO, people can change ++ // old habits if and when user 'x' comes along. I still find this warning ++ // to be a POLA violation. No offense... that's the beauty of open source. ++ // You've got your ideas about this, and I have mine, and we're allowed ++ // to disagree. Nothing in the UNIX or POSIX standards requires this (annoying) ++ // warning to be displayed, and we're not changing the actual behavior ++ // of ps in any way. I know of no other 'ps' that produces this message. ++ // + // Also, a "-x" option is coming. It's already there in fact, + // for some non-default personalities. So "ps -ax" will parse + // as SysV options... and you're screwed if you've been patching + // out the friendly warning. Cut-over is likely to be in 2005. +- if(!(personality & PER_FORCE_BSD)) +- fprintf(stderr, "Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html\n"); ++ // if(!(personality & PER_FORCE_BSD)) ++ // fprintf(stderr, "Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html\n"); + // Remember: contact albert@users.sf.net or procps-feedback@lists.sf.net + // if you should feel tempted. Be damn sure you understand all + // the issues. The same goes for other stuff too, BTW. Please ask. diff --git a/source/a/procps/procps.w.showfrom.diff b/source/a/procps/procps.w.showfrom.diff new file mode 100644 index 000000000..0b1c71a3e --- /dev/null +++ b/source/a/procps/procps.w.showfrom.diff @@ -0,0 +1,11 @@ +--- ./w.c.orig 2002-12-21 05:30:33.000000000 -0800 ++++ ./w.c 2003-02-02 11:46:58.000000000 -0800 +@@ -33,6 +33,8 @@ + + typedef struct utmp utmp_t; + ++#define W_SHOWFROM 1 ++ + #ifdef W_SHOWFROM + # define FROM_STRING "on" + #else diff --git a/source/a/procps/slack-desc b/source/a/procps/slack-desc new file mode 100644 index 000000000..22cf9e0d2 --- /dev/null +++ b/source/a/procps/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +procps: procps (utilities for displaying process information) +procps: +procps: The procps package provides the classic set of utilities used to +procps: display information about the processes currently running on the +procps: machine. +procps: +procps: +procps: +procps: +procps: +procps: diff --git a/source/a/quota/quota.SlackBuild b/source/a/quota/quota.SlackBuild new file mode 100755 index 000000000..0ae450b90 --- /dev/null +++ b/source/a/quota/quota.SlackBuild @@ -0,0 +1,108 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-quota + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf quota-tools +tar xvf $CWD/quota-$VERSION.tar.?z* +cd quota-tools +chown -R root:root . +find . -perm 2755 -exec chmod 755 {} \; +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make +make mo +mkdir -p $PKG/sbin +cat convertquota > $PKG/sbin/convertquota +cat quotacheck > $PKG/sbin/quotacheck +cat quotaon > $PKG/sbin/quotaon +( cd $PKG/sbin ; ln -sf quotaon quotaoff ) +chmod 755 $PKG/sbin/* +mkdir -p $PKG/usr/sbin +for file in edquota repquota warnquota quotastats setquota quot xqmstats rpc.rquotad ; do + cat $file > $PKG/usr/sbin/$file +done +chmod 755 $PKG/usr/sbin/* +mkdir -p $PKG/usr/bin +cat quota > $PKG/usr/bin/quota +chmod 755 $PKG/usr/bin/quota +mkdir -p $PKG/usr/include/rpcsvc +cat rquota.h > $PKG/usr/include/rpcsvc/rquota.h +cat rquota.x > $PKG/usr/include/rpcsvc/rquota.x +mkdir -p $PKG/etc +cat warnquota.conf > $PKG/etc/warnquota.conf-sample +cat quotatab > $PKG/etc/quotatab-sample +cat quotagrpadmins > $PKG/etc/quotagrpadmins-sample +mkdir -p $PKG/usr/man/man{1,2,3,8} +for page in *.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +for page in *.2 ; do + cat $page | gzip -9c > $PKG/usr/man/man2/$page.gz +done +for page in *.3 ; do + cat $page | gzip -9c > $PKG/usr/man/man3/$page.gz +done +for page in *.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +mkdir -p $PKG/usr/share/locale/pl/LC_MESSAGES +cat po/pl.mo > $PKG/usr/share/locale/pl/LC_MESSAGES/quota.mo +mkdir -p $PKG/usr/doc/quota-$VERSION +cp -a Changelog README* $PKG/usr/doc/quota-$VERSION +( cd doc + sgml2txt quotadoc.sgml + sgml2html -s 0 quotadoc.sgml + if [ ! -r quotadoc.html ]; then + echo "WARNING: no quotadoc.html generated" + sleep 100 + fi + cp quotadoc*txt quotadoc*html $PKG/usr/doc/quota-$VERSION/ ) +find $PKG/usr/doc/quota-$VERSION -name CVS -type d | xargs rm -rf +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/quota-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/quota + rm -rf $PKG +fi diff --git a/source/a/quota/slack-desc b/source/a/quota/slack-desc new file mode 100644 index 000000000..dd07ea43b --- /dev/null +++ b/source/a/quota/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +quota: quota (Linux disk quota utilities) +quota: +quota: An implementation of the diskquota system for the Linux operating +quota: system to keep those greedy users from gobbling up 100% of the hard +quota: drive space. Works with ext2, ext3, reiserfs, and xfs filesystems. +quota: This system is based on the Melbourne quota system by Robert Elz. +quota: Edvard Tuinder and Marco van Wieringen ported this code to Linux. +quota: Jan Kara added support for the new Linux quota format and the XFS +quota: filesystem. +quota: +quota: diff --git a/source/a/reiserfsprogs/reiserfsprogs.SlackBuild b/source/a/reiserfsprogs/reiserfsprogs.SlackBuild new file mode 100755 index 000000000..c56d8f13f --- /dev/null +++ b/source/a/reiserfsprogs/reiserfsprogs.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.6.21 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-reiserfs + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf reiserfsprogs-$VERSION +tar xvf $CWD/reiserfsprogs-$VERSION.tar.?z* || exit 1 +cd reiserfsprogs-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sbindir=/sbin \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +if [ "$ARCH" = "x86_64" ]; then + # To prevent compilation errors due to broken header: + sed -i -e 's?#define HAVE_ASM_UNALIGNED_H 1?/* & */?' config.h +fi + +make $NUMJOBS || make || exit1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a couple of useful symlinks +( cd $PKG/sbin + ln -sf mkreiserfs mkfs.reiserfs + ln -sf reiserfsck fsck.reiserfs +) + +# These were renamed, it seems +# --> Deleting /usr/man/man8/debugreiserfs.8.gz +# --> Deleting /usr/man/man8/mkreiserfs.8.gz +# --> Deleting /usr/man/man8/reiserfsck.8.gz +# --> Deleting /usr/man/man8/reiserfstune.8.gz +# --> Deleting /usr/man/man8/resize_reiserfs.8.gz +# Do we want symlinks for backwards compatibility? If so... +( cd $PKG/usr/man/man8 + ln -s mkfs.reiserfs.8 mkreiserfs.8 + ln -s debugfs.reiserfs.8 debugreiserfs.8 + ln -s fsck.reiserfs.8 reiserfsck.8 + ln -s tunefs.reiserfs.8 reiserfstune.8 + ln -s resizefs.reiserfs.8 resize_reiserfs.8 +) + +# Compress the man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/reiserfsprogs-$VERSION +cp -a \ + AUTHORS COPYING* CREDITS INSTALL NEWS README* \ + $PKG/usr/doc/reiserfsprogs-$VERSION +chmod 644 $PKG/usr/doc/reiserfsprogs-$VERSION/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/reiserfsprogs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/reiserfsprogs/slack-desc b/source/a/reiserfsprogs/slack-desc new file mode 100644 index 000000000..3358fdf77 --- /dev/null +++ b/source/a/reiserfsprogs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +reiserfsprogs: reiserfsprogs (Reiserfs filesystem utilities) +reiserfsprogs: +reiserfsprogs: These utilities are used for Reiserfs. Reiserfs is a file system +reiserfsprogs: based on balanced tree algorithms. Learn more at the home site: +reiserfsprogs: http://www.namesys.com +reiserfsprogs: +reiserfsprogs: Reiserfs is the work of Hans Reiser and many others. See the file +reiserfsprogs: /usr/doc/reiserfs*/README for full credits. +reiserfsprogs: +reiserfsprogs: +reiserfsprogs: diff --git a/source/a/rpm2tgz/rpm2targz b/source/a/rpm2tgz/rpm2targz new file mode 100644 index 000000000..484e5ad05 --- /dev/null +++ b/source/a/rpm2tgz/rpm2targz @@ -0,0 +1,129 @@ +#!/bin/sh +# Copyright 1997, 1998 Patrick Volkerding, Moorhead, MN USA +# Copyright 2002, 2004 Slackware Linux, Inc., Concord, CA USA +# Copyright 2006, 2009 Patrick Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +if [ "$1" = "" ]; then + echo "$0: Converts RPM format to standard GNU tar + GNU zip format." + echo " (view converted packages with \"less\", install and remove" + echo " with \"installpkg\", \"removepkg\", \"pkgtool\", or manually" + echo " with \"tar\")" + echo + echo "Usage: $0 <file.rpm>" + if [ "$(basename $0)" = "rpm2tgz" ]; then + echo " (Outputs \"file.tgz\")" + else + echo " (Outputs \"file.tar.gz\")" + fi + exit 1; +fi + +CWD=$(pwd) + +# Create a new temporary directory with a secure filename: +make_temp_dir() { + if [ -x "$(which mcookie)" ]; then + tempd=/tmp/tmp.$(mcookie) + mkdir -p -m 0755 $tempd + elif [ -x "$(which openssl)" ]; then + tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | openssl dgst -md5) + mkdir -p -m 0755 $tempd + elif [ -x "$(which md5)" ]; then + tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | md5) + mkdir -p -m 0755 $tempd + elif [ -x "$(which mktemp)" ]; then + tempd=$(mktemp -d) + chmod 755 $tempd + ## Uncomment for insecure use, but don't blame me: + #else + # tempd=/tmp/tmp.$$ + # mkdir -p -m 0755 $tempd + fi + if [ -d $tempd ]; then # success, return the name of the directory: + echo $tempd + else + echo "ERROR: Could not find mcookie, openssl, or md5." + echo " Exiting since a secure temporary directory could not be made." + exit 1 + fi +} + +for i in $* ; do + + # Determine if this is a source or binary RPM. + # If we have getrpmtype, use that. Otherwise, try "file". + if which getrpmtype 1> /dev/null 2> /dev/null; then + if getrpmtype -n $i | grep source 1> /dev/null 2> /dev/null ; then + isSource=1 + else + isSource=0 + fi + else # use file. This works fine on Slackware, and is the default. + if file $i | grep RPM | grep " src " 1> /dev/null 2> /dev/null ; then + isSource=1 + else + isSource=0 + fi + fi + + # Create a temporary directory: + TMPDIR=$(make_temp_dir) + + # Extract the RPM: + ofn=$TMPDIR/$(basename $i .rpm).cpio + if which rpm2cpio 1> /dev/null 2> /dev/null ; then + rpm2cpio $i > $ofn 2> /dev/null + if [ ! $? = 0 ]; then + echo "ERROR: rpm2cpio failed. (maybe $i is not an RPM?)" + rm -rf $TMPDIR + continue + fi + else # less reliable than rpm2cpio... + ( dd ibs=$(rpmoffset < $i) skip=1 if=$i 2> /dev/null | gzip -dc > $ofn 2>/dev/null ) || \ + ( dd ibs=$(rpmoffset < $i) skip=1 if=$i 2> /dev/null | bzip2 -dc > $ofn 2>/dev/null ) + fi + DEST=$TMPDIR + if [ "$isSource" = "1" ]; then + DEST=$DEST/$(basename $(basename $i .rpm) .src) + fi + mkdir -p $DEST + ( cd $DEST + cpio -i -m -d < $ofn 1> /dev/null 2> /dev/null + rm -f $ofn + find . -type d -perm 700 -exec chmod 755 {} \; + ) + + # If this program was called as "rpm2targz", then repack as a plain + # tar+gz archive. If it was called as "rpm2tgz", use Slackware's + # makepkg to produce the .tgz: + if [ "$(basename $0)" = "rpm2tgz" ]; then + ( cd $TMPDIR ; makepkg -l y -c n $CWD/$(basename $i .rpm).tgz ) + else + ( cd $TMPDIR ; tar cf - . ) > $(basename $i .rpm).tar + gzip -9 $(basename $i .rpm).tar + fi + + # Remove temporary directory: + rm -rf $TMPDIR + +done + diff --git a/source/a/rpm2tgz/rpm2targz.README b/source/a/rpm2tgz/rpm2targz.README new file mode 100644 index 000000000..2ce141c06 --- /dev/null +++ b/source/a/rpm2tgz/rpm2targz.README @@ -0,0 +1,18 @@ + +This package contains 'rpm2targz', a simple utility to convert Red Hat-style +RPM packages into standard tar.gz archives. Converted binary packages can then +be installed/removed using the 'installpkg/removepkg' commands, or 'pkgtool'. + +It's advisable to at least examine the converted package with 'less' to make +sure it won't do anything too crazy to your system. If it does, Patrick +Volkerding and David Cantrell are not responsible, so use this at your own +risk. :-) + +By default, rpm2targz will attempt to use "file" to detect source RPMS, and will +put the contents into a subdirectory in the resulting package. This may not be +portable to other operating systems -- if you're trying to run rpm2targz on an +OS that doesn't have a file that knows RPM types, and you care about this source +RPM feature, you can compile and install David Cantrell's standalone getrpmtype +utility. The getrpmtype.tar.gz source archive can be found in Slackware's +source tree in source/a/rpm2tgz/. + diff --git a/source/a/rpm2tgz/rpm2tgz.SlackBuild b/source/a/rpm2tgz/rpm2tgz.SlackBuild new file mode 100755 index 000000000..abfe3298a --- /dev/null +++ b/source/a/rpm2tgz/rpm2tgz.SlackBuild @@ -0,0 +1,58 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bin + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+===========+" +echo "| rpm2targz |" +echo "+===========+" +cd $TMP +mkdir -p $PKG/usr/bin +cc -o $PKG/usr/bin/rpmoffset $CWD/rpmoffset.c +cat $CWD/rpm2targz > $PKG/usr/bin/rpm2targz +chmod 755 $PKG/usr/bin/{rpmoffset,rpm2targz} +( cd $PKG/usr/bin ; ln -sf rpm2targz rpm2tgz ) +mkdir -p $PKG/usr/doc/rpm2targz +cp -a $CWD/rpm2targz.README $PKG/usr/doc/rpm2targz/rpm2targz.README +chown root:root $PKG/usr/doc/rpm2targz/rpm2targz.README +chmod 644 $PKG/usr/doc/rpm2targz/rpm2targz.README +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/rpm2tgz-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/rpm2tgz/rpmoffset.c b/source/a/rpm2tgz/rpmoffset.c new file mode 100644 index 000000000..57af397c6 --- /dev/null +++ b/source/a/rpm2tgz/rpmoffset.c @@ -0,0 +1,24 @@ + +/* Find how deeply inside an .RPM the real data is */ +/* kept, and report the offset in bytes */ + +/* Wouldn't it be a lot more sane if we could just untar these things? */ + +#include <stdlib.h> + +/* These offsets keep getting bigger, so we're going to just bite a 2MB */ +/* chunk of RAM right away so that we have enough. Yeah, horrible */ +/* quick and dirty implementation, but hey -- it gets the job done. */ + +#define RPMBUFSIZ 2097152 + +main() +{ + char *buff = malloc(RPMBUFSIZ),*eb,*p; + for (p = buff, eb = buff + read(0,buff,RPMBUFSIZ); p < eb; p++) + if ((*p == '\037' && p[1] == '\213' && p[2] == '\010') || + (*p == 'B' && p[1] == 'Z' && p[2] == 'h' && '1' <= p[3] && p[3] <= '9' )) + printf("%d\n",p - buff), + exit(0); + exit(1); +} diff --git a/source/a/rpm2tgz/slack-desc b/source/a/rpm2tgz/slack-desc new file mode 100644 index 000000000..8f8861b5f --- /dev/null +++ b/source/a/rpm2tgz/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rpm2tgz: rpm2tgz (a tool for converting an RPM archive into a tar+gz one) +rpm2tgz: +rpm2tgz: Converts RPM format to Slackware's GNU tar + GNU zip format. (view +rpm2tgz: converted packages with "less", install and remove with "installpkg", +rpm2tgz: "removepkg", "pkgtool", or manually with "tar"). +rpm2tgz: +rpm2tgz: Converted packages come with no warranty. ;-) +rpm2tgz: +rpm2tgz: +rpm2tgz: +rpm2tgz: diff --git a/source/a/sdparm/sdparm.SlackBuild b/source/a/sdparm/sdparm.SlackBuild new file mode 100755 index 000000000..e00a93568 --- /dev/null +++ b/source/a/sdparm/sdparm.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=sdparm +VERSION=${VERSION:-1.01} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Use --bindir=/usr/sbin, as that's where hdparm has always been... + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/usr/sbin \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING CREDITS INSTALL NEWS README notes.txt \ + doc/sdparm.html \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sdparm/slack-desc b/source/a/sdparm/slack-desc new file mode 100644 index 000000000..497c4d9ec --- /dev/null +++ b/source/a/sdparm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sdparm: sdparm (fetch and change SCSI attributes) +sdparm: +sdparm: sdparm is a utility for listing and potentially changing SCSI disk +sdparm: parameters. More generally it can be used on any device that uses +sdparm: a SCSI command set. Apart from SCSI disks, examples of devices that +sdparm: use SCSI command sets are ATAPI CD/DVD drives, SCSI and ATAPI tape +sdparm: drives and SCSI enclosures. +sdparm: +sdparm: sdparm was written by Douglas Gilbert. +sdparm: +sdparm: diff --git a/source/a/sed/sed.SlackBuild b/source/a/sed/sed.SlackBuild new file mode 100755 index 000000000..8dedfc4b4 --- /dev/null +++ b/source/a/sed/sed.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.1.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sed + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $PKG $PKG + +cd $TMP +rm -rf sed-$VERSION +tar xzvf $CWD/sed-$VERSION.tar.gz +cd sed-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make -j5 +make install DESTDIR=$PKG +mkdir -p $PKG/bin +mv $PKG/usr/bin/sed $PKG/bin +( cd $PKG/usr/bin ; ln -sf /bin/sed . ) +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/usr/doc/sed-$VERSION +cp -a \ + ANNOUNCE AUTHORS BUGS COPYING* INSTALL NEWS README README.boot THANKS TODO \ + $PKG/usr/doc/sed-$VERSION +gzip -9 $PKG/usr/man/man?/*.? +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/sed-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sed/slack-desc b/source/a/sed/slack-desc new file mode 100644 index 000000000..46e3ef350 --- /dev/null +++ b/source/a/sed/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sed: sed (stream editor) +sed: +sed: This is the GNU version of sed, a stream editor. A stream editor is +sed: used to perform basic text transformations on an input stream (a file +sed: or input from a pipeline). It is sed's ability to filter text in a +sed: pipeline which distinguishes it from other types of editors. +sed: +sed: sed is a required package (it is needed by many system scripts). +sed: +sed: +sed: diff --git a/source/a/shadow/adduser b/source/a/shadow/adduser new file mode 100644 index 000000000..02385e33c --- /dev/null +++ b/source/a/shadow/adduser @@ -0,0 +1,437 @@ +#!/bin/bash +# +# Copyright 1995 Hrvoje Dogan, Croatia. +# Copyright 2002, 2003, 2004, 2008, 2009 Stuart Winter, Surrey, England, UK. +# Copyright 2004, 2008, 2009 Slackware Linux, Inc., Concord, CA, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# +# +########################################################################## +# Program: /usr/sbin/adduser +# Purpose: Interactive front end to /usr/sbin/useradd for Slackware Linux +# Author : Stuart Winter <mozes@slackware.com> +# Based on the original Slackware adduser by Hrvoje Dogan +# with modifications by Patrick Volkerding +# Version: 1.12 +########################################################################## +# Usage..: adduser [<new_user_name>] +########################################################################## +# History # +########### +# v1.12 - 21/07/09 +# * Adjusted the search of /etc/passwd to exclude the NIS inclusion +# string. Thanks to Dominik L. Borkowski. +# v1.11 - 04/06/09 +# * Add power and netdev to the suggested group list +# v1.10 - 24/03/08 +# * To facilitate use of the automatic mounting features of HAL, +# allow the admin to easily add users to the default groups: +# audio,cdrom,video,plugdev,floppy. +# The default is not to add new users to these groups. +# And by the way, this script is "useradd from Slackware" not +# "superadduser from Gentoo" ;-) +# v1.09 - 07/06/04 +# * Added standard Slackware script licence to the head of this file. +# v1.08 - 25/04/04 +# * Disallow user names that begin with a numeric because useradd +# (from shadow v4.03) does not allow them. <sw> +# v1.07 - 07/03/03 +# * When supplying a null string for the uid (meaning 'Choose next available'), +# if there were file names in the range 'a-z' in the pwd then the +# egrep command considered these files rather than the null string. +# The egrep expression is now in quotes. +# Reported & fixed by Vadim O. Ustiansky <sw> +# v1.06 - 31/03/03 +# * Ask to chown user.group the home directory if it already exists. +# This helps reduce later confusion when adding users whose home dir +# already exists (mounted partition for example) and is owned +# by a user other than the user to which the directory is being +# assigned as home. Default is not to chown. +# Brought to my attention by mRgOBLIN. <sw> +# v1.05 - 04/01/03 +# * Advise & prevent users from creating logins with '.' characters +# in the user name. <sw> +# * Made pending account creation info look neater <sw> +# v1.04 - 09/06/02 +# * Catered for shadow-4.0.3's 'useradd' binary that no longer +# will let you create a user that has any uppercase chars in it +# This was reported on the userlocal.org forums +# by 'xcp' - thanks. <sw,pjv> +# v1.03 - 20/05/02 +# * Support 'broken' (null lines in) /etc/passwd and +# /etc/group files <sw> +# * For recycling UIDs (default still 'off'), we now look in +# /etc/login.defs for the UID_MIN value and use it +# If not found then default to 1000 <sw> +# v1.02 - 10/04/02 +# * Fix user-specified UID bug. <pjv> +# v1.01 - 23/03/02 +# * Match Slackware indenting style, simplify. <pjv> +# v1.00 - 22/03/02 +# * Created +####################################################################### + +# Path to files +pfile=/etc/passwd +gfile=/etc/group +sfile=/etc/shells + +# Paths to binaries +useradd=/usr/sbin/useradd +chfn=/usr/bin/chfn +passwd=/usr/bin/passwd +chmod=/bin/chmod + +# Defaults +defhome=/home +defshell=/bin/bash +defchmod=711 # home dir permissions - may be preferable to use 701, however. +defgroup=users +AGID="audio cdrom floppy plugdev video power netdev" # additional groups for desktop users + +# Determine what the minimum UID is (for UID recycling) +# (we ignore it if it's not at the beginning of the line (i.e. commented out with #)) +export recycleUIDMIN="$(grep ^UID_MIN /etc/login.defs | awk '{print $2}' 2>/dev/null)" +# If we couldn't find it, set it to the default of 1000 +if [ -z "$recycleUIDMIN" ]; then + export recycleUIDMIN=1000 # this is the default from Slackware's /etc/login.defs +fi + + +# This setting enables the 'recycling' of older unused UIDs. +# When you userdel a user, it removes it from passwd and shadow but it will +# never get used again unless you specify it expliticly -- useradd (appears to) just +# look at the last line in passwd and increment the uid. I like the idea of +# recycling uids but you may have very good reasons not to (old forgotten +# confidential files still on the system could then be owned by this new user). +# We'll set this to no because this is what the original adduser shell script +# did and it's what users expect. +recycleuids=no + +# Function to read keyboard input. +# bash1 is broken (even ash will take read -ep!), so we work around +# it (even though bash1 is no longer supported on Slackware). +function get_input() { + local output + if [ "`echo $BASH_VERSION | cut -b1`" = "1" ]; then + echo -n "${1} " >&2 # fudge for use with bash v1 + read output + else # this should work with any other /bin/sh + read -ep "${1} " output + fi + echo $output +} + +# Function to display the account info +function display () { + local goose + goose="$(echo $2 | cut -d ' ' -f 2-)" # lop off the prefixed argument useradd needs + echo -n "$1 " + # If it's null then display the 'other' information + if [ -z "$goose" -a ! -z "$3" ]; then + echo "$3" + else + echo "$goose" + fi +} + +# Function to check whether groups exist in the /etc/group file +function check_group () { + local got_error group + if [ ! -z "$@" ]; then + for group in $@ ; do + local uid_not_named="" uid_not_num="" + grep -v "$^" $gfile | awk -F: '{print $1}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_named=yes + grep -v "$^" $gfile | awk -F: '{print $3}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_num=yes + if [ ! -z "$uid_not_named" -a ! -z "$uid_not_num" ]; then + echo "- Group '$group' does not exist" + got_error=yes + fi + done + fi + # Return exit code of 1 if at least one of the groups didn't exist + if [ ! -z "$got_error" ]; then + return 1 + fi +} + +#: Read the login name for the new user :# +# +# Remember that most Mail Transfer Agents are case independant, so having +# 'uSer' and 'user' may cause confusion/things to break. Because of this, +# useradd from shadow-4.0.3 no longer accepts usernames containing uppercase, +# and we must reject them, too. + +# Set the login variable to the command line param +echo +LOGIN="$1" +needinput=yes +while [ ! -z $needinput ]; do + if [ -z "$LOGIN" ]; then + while [ -z "$LOGIN" ]; do LOGIN="$(get_input "Login name for new user []:")" ; done + fi + grep "^${LOGIN}:" $pfile >/dev/null 2>&1 # ensure it's not already used + if [ $? -eq 0 ]; then + echo "- User '$LOGIN' already exists; please choose another" + unset LOGIN + elif [ ! -z "$( echo $LOGIN | grep "^[0-9]" )" ]; then + echo "- User names cannot begin with a number; please choose another" + unset LOGIN + elif [ ! "$LOGIN" = "`echo $LOGIN | tr A-Z a-z`" ]; then # useradd does not allow uppercase + echo "- User '$LOGIN' contains illegal characters (uppercase); please choose another" + unset LOGIN + elif [ ! -z "$( echo $LOGIN | grep '\.' )" ]; then + echo "- User '$LOGIN' contains illegal characters (period/dot); please choose another" + unset LOGIN + else + unset needinput + fi +done + +# Display the user name passed from the shell if it hasn't changed +if [ "$1" = "$LOGIN" ]; then + echo "Login name for new user: $LOGIN" +fi + +#: Get the UID for the user & ensure it's not already in use :# +# +# Whilst we _can_ allow users with identical UIDs, it's not a 'good thing' because +# when you change password for the uid, it finds the first match in /etc/passwd +# which isn't necessarily the correct user +# +echo +needinput=yes +while [ ! -z "$needinput" ]; do + _UID="$(get_input "User ID ('UID') [ defaults to next available ]:")" + egrep -v "^$|^\+" $pfile | awk -F: '{print $3}' | grep "^${_UID}$" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "- That UID is already in use; please choose another" + elif [ ! -z "$(echo $_UID | egrep '[A-Za-z]')" ]; then + echo "- UIDs are numerics only" + else + unset needinput + fi +done +# If we were given a UID, then syntax up the variable to pass to useradd +if [ ! -z "$_UID" ]; then + U_ID="-u ${_UID}" +else + # Will we be recycling UIDs? + if [ "$recycleuids" = "yes" ]; then + U_ID="-u $(awk -F: '{uid[$3]=1} END { for (i=ENVIRON["recycleUIDMIN"];i in uid;i++);print i}' $pfile)" + fi +fi + +#: Get the initial group for the user & ensure it exists :# +# +# We check /etc/group for both the text version and the group ID number +echo +needinput=yes +while [ ! -z "$needinput" ]; do + GID="$(get_input "Initial group [ ${defgroup} ]:")" + check_group "$GID" + if [ $? -gt 0 ]; then + echo "- Please choose another" + else + unset needinput + fi +done +# Syntax the variable ready for useradd +if [ -z "$GID" ]; then + GID="-g ${defgroup}" +else + GID="-g ${GID}" +fi + +#: Get additional groups for the user :# +# +echo "Additional UNIX groups:" +echo +echo "Users can belong to additional UNIX groups on the system." +echo "For local users using graphical desktop login managers such" +echo "as XDM/KDM, users may need to be members of additional groups" +echo "to access the full functionality of removable media devices." +echo +echo "* Security implications *" +echo "Please be aware that by adding users to additional groups may" +echo "potentially give access to the removable media of other users." +echo +echo "If you are creating a new user for remote shell access only," +echo "users do not need to belong to any additional groups as standard," +echo "so you may press ENTER at the next prompt." +echo +needinput=yes +while [ ! -z "$needinput" ]; do + history -c + history -s "$AGID" + echo "Press ENTER to continue without adding any additional groups" + echo "Or press the UP arrow to add/select/edit additional groups" + AGID="$(get_input ": " | tr -d '[:punct:]' | tr -s ' ' | sed 's?^ $??g' )" + if [ ! -z "$AGID" ]; then + check_group "$AGID" # check all groups at once (treated as N # of params) + if [ $? -gt 0 ]; then + echo "- Please re-enter the group(s)" + echo + else + unset needinput # we found all groups specified + AGID="-G $(echo $AGID | tr ' ' ,)" # useradd takes comma delimited groups + fi + else + unset needinput # we don't *have* to have additional groups + fi +done + +#: Get the new user's home dir :# +# +echo +needinput=yes +while [ ! -z "$needinput" ]; do + HME="$(get_input "Home directory [ ${defhome}/${LOGIN} ]")" + if [ -z "$HME" ]; then + HME="${defhome}/${LOGIN}" + fi + # Warn the user if the home dir already exists + if [ -d "$HME" ]; then + echo "- Warning: '$HME' already exists !" + getyn="$(get_input " Do you wish to change the home directory path ? (Y/n) ")" + if [ "$(echo $getyn | grep -i "n")" ]; then + unset needinput + # You're most likely going to only do this if you have the dir *mounted* for this user's $HOME + getyn="$(get_input " Do you want to chown $LOGIN.$( echo $GID | awk '{print $2}') $HME ? (y/N) ")" + if [ "$(echo $getyn | grep -i "y")" ]; then + CHOWNHOMEDIR=$HME # set this to the home directory + fi + fi + else + unset needinput + fi +done +HME="-d ${HME}" + +#: Get the new user's shell :# +echo +needinput=yes +while [ ! -z "$needinput" ]; do + unset got_error + SHL="$(get_input "Shell [ ${defshell} ]")" + if [ -z "$SHL" ]; then + SHL="${defshell}" + fi + # Warn the user if the shell doesn't exist in /etc/shells or as a file + if [ -z "$(grep "^${SHL}$" $sfile)" ]; then + echo "- Warning: ${SHL} is not in ${sfile} (potential problem using FTP)" + got_error=yes + fi + if [ ! -f "$SHL" ]; then + echo "- Warning: ${SHL} does not exist as a file" + got_error=yes + fi + if [ ! -z "$got_error" ]; then + getyn="$(get_input " Do you wish to change the shell ? (Y/n) ")" + if [ "$(echo $getyn | grep -i "n")" ]; then + unset needinput + fi + else + unset needinput + fi +done +SHL="-s ${SHL}" + +#: Get the expiry date :# +echo +needinput=yes +while [ ! -z "$needinput" ]; do + EXP="$(get_input "Expiry date (YYYY-MM-DD) []:")" + if [ ! -z "$EXP" ]; then + # Check to see whether the expiry date is in the valid format + if [ -z "$(echo "$EXP" | grep "^[[:digit:]]\{4\}[-]\?[[:digit:]]\{2\}[-]\?[[:digit:]]\{2\}$")" ]; then + echo "- That is not a valid expiration date" + else + unset needinput + EXP="-e ${EXP}" + fi + else + unset needinput + fi +done + +# Display the info about the new impending account +echo +echo "New account will be created as follows:" +echo +echo "---------------------------------------" +display "Login name.......: " "$LOGIN" +display "UID..............: " "$_UID" "[ Next available ]" +display "Initial group....: " "$GID" +display "Additional groups: " "$AGID" "[ None ]" +display "Home directory...: " "$HME" +display "Shell............: " "$SHL" +display "Expiry date......: " "$EXP" "[ Never ]" +echo + +echo "This is it... if you want to bail out, hit Control-C. Otherwise, press" +echo "ENTER to go ahead and make the account." +read junk + +echo +echo "Creating new account..." +echo +echo + +# Add the account to the system +CMD="$useradd "$HME" -m "$EXP" "$U_ID" "$GID" "$AGID" "$SHL" "$LOGIN"" +$CMD + +if [ $? -gt 0 ]; then + echo "- Error running useradd command -- account not created!" + echo "(cmd: $CMD)" + exit 1 +fi + +# chown the home dir ? We can only do this once the useradd has +# completed otherwise the user name doesn't exist. +if [ ! -z "${CHOWNHOMEDIR}" ]; then + chown "$LOGIN"."$( echo $GID | awk '{print $2}')" "${CHOWNHOMEDIR}" +fi + +# Set the finger information +$chfn "$LOGIN" +if [ $? -gt 0 ]; then + echo "- Warning: an error occurred while setting finger information" +fi + +# Set a password +$passwd "$LOGIN" +if [ $? -gt 0 ]; then + echo "* WARNING: An error occured while setting the password for" + echo " this account. Please manually investigate this *" + exit 1 +fi + +# If it was created (it should have been!), set the permissions for that user's dir +HME="$(echo "$HME" | awk '{print $2}')" # We have to remove the -g prefix +if [ -d "$HME" ]; then + $chmod $defchmod "$HME" +fi + +echo +echo +echo "Account setup complete." +exit 0 diff --git a/source/a/shadow/shadow-4.0.3.x86_64.diff b/source/a/shadow/shadow-4.0.3.x86_64.diff new file mode 100644 index 000000000..15d16c7c8 --- /dev/null +++ b/source/a/shadow/shadow-4.0.3.x86_64.diff @@ -0,0 +1,166 @@ +--- shadow-4.0.3/libmisc/failure.h.orig 2004-01-02 18:47:01.000000000 -0800 ++++ shadow-4.0.3/libmisc/failure.h 2004-01-02 18:52:38.000000000 -0800 +@@ -4,7 +4,12 @@ + + #include "defines.h" + #include "faillog.h" ++ ++#if HAVE_UTMPX_H ++#include <utmpx.h> ++#else + #include <utmp.h> ++#endif + + /* + * failure - make failure entry +@@ -38,7 +43,11 @@ + * failtmp updates the (struct utmp) formatted failure log which + * maintains a record of all login failures. + */ ++#if HAVE_UTMPX_H ++extern void failtmp(const struct utmpx *); ++#else + extern void failtmp(const struct utmp *); ++#endif + + #endif + +--- shadow-4.0.3/libmisc/failure.c.orig 2004-01-02 18:47:06.000000000 -0800 ++++ shadow-4.0.3/libmisc/failure.c 2004-01-02 18:53:37.000000000 -0800 +@@ -39,7 +39,11 @@ + #include "getdef.h" + #include "failure.h" + ++#if HAVE_UTMPX_H ++#include <utmpx.h> ++#else + #include <utmp.h> ++#endif + + #define YEAR (365L*DAY) + +@@ -248,7 +252,11 @@ + */ + + void ++#if HAVE_UTMPX_H ++failtmp(const struct utmpx *failent) ++#else + failtmp(const struct utmp *failent) ++#endif + { + char *ftmp; + int fd; +--- shadow-4.0.3/libmisc/log.c.orig 2004-01-02 18:58:04.000000000 -0800 ++++ shadow-4.0.3/libmisc/log.c 2004-01-02 18:58:51.000000000 -0800 +@@ -57,6 +57,7 @@ + int fd; + off_t offset; + struct lastlog newlog; ++ time_t ll_time; + + /* + * If the file does not exist, don't create it. +@@ -88,7 +89,8 @@ + if (ll) + *ll = newlog; + +- time(&newlog.ll_time); ++ ll_time = newlog.ll_time; ++ time(&ll_time); + strncpy(newlog.ll_line, line, sizeof newlog.ll_line); + #if HAVE_LL_HOST + strncpy(newlog.ll_host, host, sizeof newlog.ll_host); +--- shadow-4.0.3/libmisc/utmp.c.orig 2004-01-02 18:59:04.000000000 -0800 ++++ shadow-4.0.3/libmisc/utmp.c 2004-01-02 19:05:34.000000000 -0800 +@@ -79,6 +79,8 @@ + { + char *line; + struct utmp *ut; ++ time_t uttime; ++ + pid_t pid = getpid(); + + setutent(); +@@ -111,7 +113,8 @@ + /* XXX - assumes /dev/tty?? */ + strncpy(utent.ut_id, utent.ut_line + 3, sizeof utent.ut_id); + strcpy(utent.ut_user, "LOGIN"); +- time(&utent.ut_time); ++ time(&uttime); ++ utent.ut_time = uttime; + } + } + +@@ -284,9 +287,14 @@ + void + setutmp(const char *name, const char *line, const char *host) + { ++ time_t uttime; ++ + utent.ut_type = USER_PROCESS; + strncpy(utent.ut_user, name, sizeof utent.ut_user); +- time(&utent.ut_time); ++ ++ time(&uttime); ++ utent.ut_time = uttime; ++ + /* other fields already filled in by checkutmp above */ + setutent(); + pututline(&utent); +--- shadow-4.0.3/src/lastlog.c.orig 2004-01-02 18:06:09.000000000 -0800 ++++ shadow-4.0.3/src/lastlog.c 2004-01-02 18:29:57.000000000 -0800 +@@ -167,6 +167,7 @@ + static int once; + char *cp; + struct tm *tm; ++ time_t ll_time; + + #ifdef HAVE_STRFTIME + char ptime[80]; +@@ -184,7 +185,9 @@ + #endif + once++; + } +- tm = localtime (&lastlog.ll_time); ++ ll_time = lastlog.ll_time; ++ tm = localtime (&ll_time); ++ + #ifdef HAVE_STRFTIME + strftime (ptime, sizeof (ptime), "%a %b %e %H:%M:%S %z %Y", tm); + cp = ptime; +--- shadow-4.0.3/src/login.c.orig 2004-01-02 18:33:13.000000000 -0800 ++++ shadow-4.0.3/src/login.c 2004-01-02 18:40:17.000000000 -0800 +@@ -1019,8 +1019,12 @@ + const char *failent_user; + + #if HAVE_UTMPX_H ++ struct timeval ut_tv; ++ ut_tv.tv_sec = failent.ut_tv.tv_sec; ++ ut_tv.tv_usec = failent.ut_tv.tv_usec; ++ + failent = utxent; +- gettimeofday (&(failent.ut_tv), NULL); ++ gettimeofday (&ut_tv, NULL); + #else + failent = utent; + time (&failent.ut_time); +@@ -1271,15 +1275,16 @@ + } + if (getdef_bool ("LASTLOG_ENAB") + && lastlog.ll_time != 0) { ++ time_t ll_time= lastlog.ll_time; + #ifdef HAVE_STRFTIME + strftime (ptime, sizeof (ptime), + "%a %b %e %H:%M:%S %z %Y", +- localtime (&lastlog.ll_time)); ++ localtime (&ll_time)); + printf (_("Last login: %s on %s"), + ptime, lastlog.ll_line); + #else + printf (_("Last login: %.19s on %s"), +- ctime (&lastlog.ll_time), ++ ctime (&ll_time), + lastlog.ll_line); + #endif + #ifdef HAVE_LL_HOST /* SVR4 || __linux__ || SUN4 */ diff --git a/source/a/shadow/shadow.SlackBuild b/source/a/shadow/shadow.SlackBuild new file mode 100755 index 000000000..2f0e11786 --- /dev/null +++ b/source/a/shadow/shadow.SlackBuild @@ -0,0 +1,156 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.0.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-18} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-shadow + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_shadow.tar.gz + +cd $TMP +rm -rf shadow-$VERSION +tar xjvf $CWD/shadow-$VERSION.tar.bz2 +cd shadow-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/shadow.shadowconfig.diff.gz | patch -p1 --verbose --backup || exit 1 +zcat $CWD/shadow.newgrp.nopam.gz | patch -p0 --verbose --backup || exit 1 +zcat $CWD/shadow.login.defs.diff.gz | patch -p0 --verbose --backup || exit 1 +zcat $CWD/shadow.newgrp.getlogin.gz | patch -p1 --verbose --backup || exit 1 +zcat $CWD/shadow.gcc34.diff.gz | patch -p1 --verbose --backup || exit 1 +zcat $CWD/shadow.remove.obsolete.options.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/shadow-4.0.3.x86_64.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +fi + +./configure \ + --prefix=/usr \ + --disable-shared \ + --disable-desrpc \ + --build=$ARCH-slackware-linux + +make -j6 || exit 1 +cat etc/login.defs.linux > $PKG/etc/login.defs.new +cat etc/login.access > $PKG/etc/login.access.new +cat $CWD/adduser > $PKG/usr/sbin/adduser + +# These things aren't needed when using glibc, as it +# supplies its own shadow functions: +#cat lib/libshadow.a > $PKG/usr/lib/libshadow.a +#cp -a lib/pwauth.h $PKG/usr/include/shadow/pwauth.h +#cp -a lib/shadow_.h $PKG/usr/include/shadow/shadow.h +#chmod 644 $PKG/usr/include/shadow/* +#chown root.root $PKG/usr/include/shadow/* + +cd po +for file in *.gmo ; do + mkdir -p $PKG/usr/share/locale/$(basename $file .gmo)/LC_MESSAGES + cat $file > $PKG/usr/share/locale/$(basename $file .gmo)/LC_MESSAGES/shadow.mo +done +cd ../src +cat login > $PKG/bin/login +cat su > $PKG/bin/su +cat sulogin > $PKG/sbin/sulogin +cat ../debian/shadowconfig.sh > $PKG/usr/sbin/shadowconfig +for file in chpasswd dpasswd faillog groupadd groupdel groupmod grpck \ +lastlog logoutd mkpasswd newusers pwck useradd userdel usermod \ +pwconv pwunconv grpconv grpunconv vipw ; do + cat $file > $PKG/usr/sbin/$file +done +for file in chage chfn chsh expiry gpasswd newgrp passwd ; do + cat $file > $PKG/usr/bin/$file +done +cd .. +cp contrib/adduser.sh /sbin/adduser +mkdir -p $PKG/usr/doc/shadow-$VERSION +cp -a \ + ABOUT-NLS ChangeLog NEWS README TODO doc/* \ + $PKG/usr/doc/shadow-$VERSION +chmod 644 $PKG/usr/doc/shadow-$VERSION/* + +install_man_pages() { +for file in chage.1 chfn.1 chsh.1 gpasswd.1 groups.1 login.1 newgrp.1 \ +passwd.1 su.1 ; do + if [ -r $file ]; then + mkdir -p $1/man1 + gzip -9c $file > $1/man1/$file.gz + fi +done +for file in pw_auth.3 shadow.3 ; do + if [ -r $file ]; then + mkdir -p $1/man3 + gzip -9c $file > $1/man3/$file.gz + fi +done +for file in faillog.5 limits.5 login.access.5 login.defs.5 passwd.5 \ +porttime.5 shadow.5 suauth.5 ; do + if [ -r $file ]; then + mkdir -p $1/man5 + gzip -9c $file > $1/man5/$file.gz + fi +done +for file in chpasswd.8 dpasswd.8 faillog.8 groupadd.8 groupdel.8 groupmod.8 \ +grpck.8 lastlog.8 logoutd.8 mkpasswd.8 newusers.8 pwauth.8 pwck.8 pwconv.8 \ +shadowconfig.8 sulogin.8 useradd.8 userdel.8 usermod.8 vipw.8 ; do + if [ -r $file ]; then + mkdir -p $1/man8 + gzip -9c $file > $1/man8/$file.gz + fi +done +} + +cd man + install_man_pages $PKG/usr/man + for dir in * ; do + if [ -d $dir ] ; then + ( cd $dir ; install_man_pages $PKG/usr/man/$dir ) + fi + done +cd .. + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/shadow-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/shadow-$VERSION + rm -rf $PKG +fi diff --git a/source/a/shadow/shadow.gcc34.diff b/source/a/shadow/shadow.gcc34.diff new file mode 100644 index 000000000..71dff4c85 --- /dev/null +++ b/source/a/shadow/shadow.gcc34.diff @@ -0,0 +1,11 @@ +--- ./libmisc/xmalloc.c.orig 1998-12-28 14:34:56.000000000 -0600 ++++ ./libmisc/xmalloc.c 2006-08-12 19:02:51.000000000 -0500 +@@ -16,8 +16,6 @@ + + #include "defines.h" + +-extern char *malloc(); +- + char * + xmalloc(size_t size) + { diff --git a/source/a/shadow/shadow.login.defs.diff b/source/a/shadow/shadow.login.defs.diff new file mode 100644 index 000000000..bfed463ae --- /dev/null +++ b/source/a/shadow/shadow.login.defs.diff @@ -0,0 +1,67 @@ +--- ./etc/login.defs.linux.orig 2000-08-26 13:27:10.000000000 -0500 ++++ ./etc/login.defs.linux 2008-03-24 15:10:09.000000000 -0500 +@@ -170,8 +170,8 @@ + # *REQUIRED* The default PATH settings, for superuser and normal users. + # + # (they are minimal, add the rest in the shell startup files) +-ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin +-ENV_PATH PATH=/bin:/usr/bin ++ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin ++ENV_PATH PATH=/usr/local/bin:/bin:/usr/bin + + # + # Terminal permissions +@@ -185,7 +185,7 @@ + # TTYPERM to either 622 or 600. + # + TTYGROUP tty +-TTYPERM 0600 ++TTYPERM 0620 + + # + # Login configuration initializations: +@@ -230,7 +230,7 @@ + # + # If compiled with cracklib support, where are the dictionaries + # +-CRACKLIB_DICTPATH /var/cache/cracklib/cracklib_dict ++#CRACKLIB_DICTPATH /var/cache/cracklib/cracklib_dict + + # + # Min/max values for automatic uid selection in useradd +@@ -282,7 +282,7 @@ + # phone, home phone). If not defined, no changes are allowed. + # For backward compatibility, "yes" = "rwh" and "no" = "frwh". + # +-CHFN_RESTRICT rwh ++CHFN_RESTRICT frwh + + # + # Password prompt (%s will be replaced by user name). +@@ -299,7 +299,7 @@ + # Set to "no" if you need to copy encrypted passwords to other systems + # which don't understand the new algorithm. Default is "no". + # +-#MD5_CRYPT_ENAB no ++MD5_CRYPT_ENAB yes + + # + # List of groups to add to the user's supplementary group set +@@ -310,7 +310,16 @@ + # access to these groups, even when not logged in on the console. + # How to do it is left as an exercise for the reader... + # +-#CONSOLE_GROUPS floppy:audio:cdrom ++# Most of these groups are self-explanatory. ++# ++# Note that users are added to these default groups only when ++# logging into a shell with /bin/login, not when using a login ++# manager such as kdm. In that case, users who should have ++# hardware access must be added to the appropriate groups ++# when the user is added with adduser or useradd, or by editing ++# /etc/group directly. ++# ++CONSOLE_GROUPS floppy:audio:cdrom:video + + # + # Should login be allowed if we can't cd to the home directory? diff --git a/source/a/shadow/shadow.newgrp.getlogin b/source/a/shadow/shadow.newgrp.getlogin new file mode 100644 index 000000000..5d032f15c --- /dev/null +++ b/source/a/shadow/shadow.newgrp.getlogin @@ -0,0 +1,21 @@ +--- ./src/newgrp.c.orig 2003-05-31 21:19:39.000000000 -0700 ++++ ./src/newgrp.c 2003-05-31 21:21:32.000000000 -0700 +@@ -76,6 +76,7 @@ + gid_t gid; + char *cp; + const char *cpasswd, *name, *prog; ++ char *loginname = NULL; + char *group = NULL; + char *command = NULL; + char **envp = environ; +@@ -386,7 +387,9 @@ + SYSLOG ((LOG_INFO, "user `%s' switched to group `%s'", + name, group)); + if (getdef_bool ("SYSLOG_SG_ENAB")) { +- char *loginname = xstrdup (getlogin ()); ++ char *user = getlogin (); ++ if (user != NULL) ++ loginname = xstrdup (user); + char *tty = xstrdup (ttyname (0)); + + if (loginname == NULL) diff --git a/source/a/shadow/shadow.newgrp.nopam b/source/a/shadow/shadow.newgrp.nopam new file mode 100644 index 000000000..7920dde00 --- /dev/null +++ b/source/a/shadow/shadow.newgrp.nopam @@ -0,0 +1,18 @@ +--- src/newgrp.c.orig 2002-10-12 14:15:34.000000000 +0100 ++++ src/newgrp.c 2002-10-12 14:15:42.000000000 +0100 +@@ -398,6 +398,7 @@ + SYSLOG ((LOG_INFO, + "user `%s' (login `%s' on %s) switched to group `%s'", + name, loginname, tty, group)); ++#ifdef USE_PAM + if (getdef_bool ("CLOSE_SESSIONS")) { + /* + * We want to fork and exec the new shell in the child, leaving the +@@ -450,6 +451,7 @@ + signal (SIGTTIN, SIG_DFL); + signal (SIGTTOU, SIG_DFL); + } ++#endif // USE_PAM + } + #endif /* USE_SYSLOG */ + diff --git a/source/a/shadow/shadow.remove.obsolete.options.diff b/source/a/shadow/shadow.remove.obsolete.options.diff new file mode 100644 index 000000000..100fe2a88 --- /dev/null +++ b/source/a/shadow/shadow.remove.obsolete.options.diff @@ -0,0 +1,78 @@ +--- ./man/passwd.1.orig 2002-03-13 11:52:15.000000000 -0600 ++++ ./man/passwd.1 2006-08-20 18:29:58.000000000 -0500 +@@ -29,26 +29,17 @@ + .SH NAME + passwd \- change user password + .SH SYNOPSIS +-\fBpasswd\fR [\fB-f\fR|\fB-s\fR] [\fIname\fR] +-.br +-\fBpasswd\fR [\fB-g\fR] [\fB-r\fR|\fB-R\fR] \fIgroup\fR ++\fBpasswd\fR [\fIname\fR] + .br + \fBpasswd\fR [\fB-x \fImax\fR] [\fB-n \fImin\fR] + [\fB-w \fIwarn\fR] [\fB-i \fIinact\fR] \fIlogin\fR + .br + \fBpasswd\fR {\fB-l\fR|\fB-u\fR|\fB-d\fR|\fB-S\fR|\fB-e\fR} \fIlogin\fR + .SH DESCRIPTION +-\fBpasswd\fR changes passwords for user and group accounts. ++\fBpasswd\fR changes passwords for user accounts. + A normal user may only change the password for his/her own account, + the super user may change the password for any account. +-The administrator of a group may change the password for the group. +-\fBpasswd\fR also changes account information, such as the full name +-of the user, user's login shell, or password expiry date and interval. +-.PP +-The \fB-s\fR option makes passwd call chsh to change the user's shell. The +-\fB-f\fR option makes passwd call chfn to change the user's gecos +-information. These two options are only meant for compatiblity, since the +-other programs can be called directly. ++.PP + .SS Password Changes + The user is first prompted for his/her old password, if one is present. + This password is then encrypted and compared against the +@@ -86,17 +77,6 @@ + against the first. + Both entries are required to match in order for the password + to be changed. +-.SS Group passwords +-When the \fB-g\fR option is used, the password for the named +-group is changed. +-The user must either be the super user, or a group administrator +-for the named group. +-The current group password is not prompted for. +-The \fB-r\fR option is used with the \fB-g\fR option to remove +-the current password from the named group. +-This allows group access to all members. +-The \fB-R\fR option is used with the \fB-g\fR option to restrict +-the named group for all users. + .SS Password expiry information + The password aging information may be changed by the super + user with the \fB-x\fR, \fB-n\fR, \fB-w\fR, and \fB-i\fR options. +@@ -191,6 +171,9 @@ + .br + /etc/shadow \- encrypted user passwords + .SH "SEE ALSO" ++.BR chfn (1), ++.BR chsh (1), ++.BR gpasswd (1), + .BR group (5), + .BR passwd (5) + .SH AUTHOR +--- ./src/passwd.c.orig 2002-01-05 09:41:43.000000000 -0600 ++++ ./src/passwd.c 2006-08-20 18:31:50.000000000 -0500 +@@ -955,6 +955,7 @@ + * Please run these programs directly. --marekm + */ + ++#ifdef I_LIKE_OBSOLETE_OPTIONS + if (argc > 1 && argv[1][0] == '-' && strchr ("gfs", argv[1][1])) { + char buf[200]; + +@@ -980,6 +981,7 @@ + closelog (); + exit (E_FAILURE); + } ++#endif + + /* + * The remaining arguments will be processed one by one and executed diff --git a/source/a/shadow/shadow.shadowconfig.diff b/source/a/shadow/shadow.shadowconfig.diff new file mode 100644 index 000000000..7dc9286e7 --- /dev/null +++ b/source/a/shadow/shadow.shadowconfig.diff @@ -0,0 +1,49 @@ +--- ./debian/shadowconfig.sh.orig 2001-05-29 23:20:22.000000000 -0700 ++++ ./debian/shadowconfig.sh 2003-06-23 16:35:38.000000000 -0700 +@@ -1,23 +1,28 @@ + #!/bin/bash +-# turn shadow passwords on or off on a Debian system ++# ++# 'shadowconfig on' will turn shadow passwords on; ++# 'shadowconfig off' will turn shadow passwords off. ++# ++# shadowconfig will print an error message and exit with ++# a nonzero code if it finds anything awry. If that happens, ++# you should correct the error and run it again. ++# ++# Turning shadow passwords on when they are already on, or ++# off when they are already off, is harmless. ++# ++# Be aware that account expiration dates are only supported ++# by shadow passwords -- these dates will be lost when converting ++# from shadow to non-shadow passwords. If you need to save this ++# information, back up your /etc/shadow before turning off ++# shadow passwords. ++# + +-set -e + +-permfix () { +- [ -f $1 ] || return 0 +- chown root:shadow $1 +- chmod 2755 $1 +-} +-export -f permfix ++set -e + + shadowon () { + bash<<- EOF + set -e +- +- permfix /usr/X11R6/bin/xlock +- permfix /usr/X11R6/bin/xtrlock +- permfix /bin/vlock +- + pwck -q + grpck + pwconv +@@ -65,3 +70,4 @@ + echo Usage: $0 on \| off + ;; + esac ++ diff --git a/source/a/shadow/slack-desc b/source/a/shadow/slack-desc new file mode 100644 index 000000000..57749146e --- /dev/null +++ b/source/a/shadow/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +shadow: shadow (shadow password suite) +shadow: +shadow: This set of login related programs utilizes an alternate, non-readable +shadow: file to contain the actual encrypted passwords. This is presumed to +shadow: increase system security by increasing the difficulty with which +shadow: system crackers obtain encrypted passwords. It was written by +shadow: Julianne Frances Haugh and the Linux port is maintained by Tomasz +shadow: Kloczko. +shadow: +shadow: This package provides 'login', which is needed to log into the system. +shadow: diff --git a/source/a/sharutils/sharutils.SlackBuild b/source/a/sharutils/sharutils.SlackBuild new file mode 100755 index 000000000..0d8bd6f07 --- /dev/null +++ b/source/a/sharutils/sharutils.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sharutils + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf sharutils-$VERSION +tar xjvf $CWD/sharutils-$VERSION.tar.bz2 +cd sharutils-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $ARCH-slackware-linux +make -j3 +make install DESTDIR=$PKG +make install-man DESTDIR=$PKG + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* $PKG/usr/man/man?/*.? + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/sharutils-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README README-alpha THANKS TODO \ + $PKG/usr/doc/sharutils-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/sharutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sharutils/slack-desc b/source/a/sharutils/slack-desc new file mode 100644 index 000000000..fbc490fad --- /dev/null +++ b/source/a/sharutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sharutils: sharutils (GNU shell archive packing utilities) +sharutils: +sharutils: `shar' makes so-called shell archives out of many files, preparing +sharutils: them for transmission by electronic mail services. `unshar' helps +sharutils: unpacking shell archives after reception. `uuencode' prepares a file +sharutils: for transmission over an electronic channel which ignores or otherwise +sharutils: mangles the eight bit (high order bit) of bytes. `uudecode' does the +sharutils: converse transformation. `remsync' allows for remote synchronization +sharutils: of directory trees using electronic mail. +sharutils: +sharutils: diff --git a/source/a/slocate/slack-desc b/source/a/slocate/slack-desc new file mode 100644 index 000000000..22ec56cc8 --- /dev/null +++ b/source/a/slocate/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +slocate: slocate (Secure Locate) +slocate: +slocate: Slocate is an enhanced version of locate, a command to help you locate +slocate: files on the system. Like the original version of locate, Slocate +slocate: maintains a database of files on the system, updating it nightly. +slocate: Unlike the original, Slocate indexes every file on the machine rather +slocate: than only the ones that can be seen by everyone. The "secure" part of +slocate: slocate is that it will only return matches if the user is allowed to +slocate: see the files. +slocate: +slocate: diff --git a/source/a/slocate/slocate-3.1.tar.gz.sign b/source/a/slocate/slocate-3.1.tar.gz.sign new file mode 100644 index 000000000..91b982425 --- /dev/null +++ b/source/a/slocate/slocate-3.1.tar.gz.sign @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.2 (GNU/Linux) + +iD8DBQBEDmWkUZpV8HRsUfQRAnLeAJ0cBuIYvy+3GSTdm+sfQ7XYbNWuwgCgj+pZ +RKdGZfMmcuFGoBO39sCX/64= +=K/rW +-----END PGP SIGNATURE----- diff --git a/source/a/slocate/slocate.SlackBuild b/source/a/slocate/slocate.SlackBuild new file mode 100755 index 000000000..3fec40f26 --- /dev/null +++ b/source/a/slocate/slocate.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-slocate + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_slocate.tar.gz + +cd $TMP +rm -rf slocate-$VERSION +tar xzvf $CWD/slocate-$VERSION.tar.gz +cd slocate-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 2750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cd src +make CFLAGS="$SLKCFLAGS" +cd .. +strip --strip-unneeded src/slocate +mkdir -p $PKG/usr/bin +cat src/slocate > $PKG/usr/bin/slocate +mkdir -p $PKG/usr/man/man1 +cat doc/slocate.1 | gzip -9c > $PKG/usr/man/man1/slocate.1.gz +cat doc/updatedb.1 | gzip -9c > $PKG/usr/man/man1/updatedb.1.gz +mkdir -p $PKG/usr/doc/slocate-$VERSION +cp -a \ + Changelog LICENSE README WISHLIST \ + $PKG/usr/doc/slocate-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/slocate-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/smartmontools/doinst.sh b/source/a/smartmontools/doinst.sh new file mode 100644 index 000000000..82f0ac136 --- /dev/null +++ b/source/a/smartmontools/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/smartd.conf.new diff --git a/source/a/smartmontools/slack-desc b/source/a/smartmontools/slack-desc new file mode 100644 index 000000000..ce462947f --- /dev/null +++ b/source/a/smartmontools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +smartmontools: smartmontools (hard drive monitoring utilities) +smartmontools: +smartmontools: SMARTMONTOOLS contains utilities that control and monitor storage +smartmontools: devices using the Self-Monitoring, Analysis and Reporting Technology +smartmontools: (S.M.A.R.T.) system build into ATA and SCSI Hard Drives. This is used +smartmontools: to check the reliability of the hard drive and to predict drive +smartmontools: failures. SMARTMONTOOLS Version 5.x is designed to comply to the +smartmontools: ATA/ATAPI-5 specification (Revision 1). Future releases of +smartmontools: SMARTMONTOOLS (Versions 6.x and 7.x) will comply with the ATA/ATAPI-6 +smartmontools: and ATA/ATAPI-7 specifications. +smartmontools: diff --git a/source/a/smartmontools/smartmontools.SlackBuild b/source/a/smartmontools/smartmontools.SlackBuild new file mode 100755 index 000000000..fd4fcf35b --- /dev/null +++ b/source/a/smartmontools/smartmontools.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=5.38 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/tmp/package-smartmontools + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf smartmontools-$VERSION +tar xvf $CWD/smartmontools-$VERSION.tar.* +cd smartmontools-$VERSION +chown -R root:root . +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + $ARCH-slackware-linux +make +make install DESTDIR=$PKG +# Not used on Slackware: +rm -rf $PKG/etc/rc.d +mv $PKG/etc/smartd.conf $PKG/etc/smartd.conf.new +gzip -9 $PKG/usr/man/man?/*.? +mv $PKG/usr/share/doc $PKG/usr +rmdir $PKG/usr/share +rm -f $PKG/usr/doc/smartmontools-$VERSION/CHANGELOG \ + $PKG/usr/doc/smartmontools-$VERSION/smartd.conf +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/smartmontools-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/smartmontools-$VERSION + rm -rf $PKG +fi diff --git a/source/a/splitvt/slack-desc b/source/a/splitvt/slack-desc new file mode 100644 index 000000000..0aa6ab24d --- /dev/null +++ b/source/a/splitvt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +splitvt: splitvt (run multiple shells in a single window) +splitvt: +splitvt: This program splits the screen into two windows, one above the other, +splitvt: and runs a shell in each one. +splitvt: +splitvt: Splitvt was written by Sam Lantinga. +splitvt: +splitvt: +splitvt: +splitvt: +splitvt: diff --git a/source/a/splitvt/splitvt.SlackBuild b/source/a/splitvt/splitvt.SlackBuild new file mode 100755 index 000000000..f643a825c --- /dev/null +++ b/source/a/splitvt/splitvt.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.6.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-splitvt + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf splitvt-1.6.5 +tar xzvf $CWD/splitvt-1.6.5.tar.gz +cd splitvt-1.6.5 +zcat $CWD/splitvt_1.6.5-9.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +./configure +make || exit 1 +mkdir -p $PKG/usr/bin +cat splitvt > $PKG/usr/bin/splitvt +chmod 755 $PKG/usr/bin/splitvt +mkdir -p $PKG/usr/man/man1 +cat splitvt.1 | gzip -9c > $PKG/usr/man/man1/splitvt.1.gz +mkdir -p $PKG/usr/doc/splitvt-1.6.5 +cp -a examples ANNOUNCE CHANGES NOTES README TODO \ + $PKG/usr/doc/splitvt-1.6.5 +( cd $PKG/usr/doc/splitvt-1.6.5 + find . -type d | xargs chmod 755 + find . -type f | xargs chmod 644 ) + +# Strip everything for good measure: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/splitvt-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/splitvt/splitvt_1.6.5-9.diff b/source/a/splitvt/splitvt_1.6.5-9.diff new file mode 100644 index 000000000..47d560377 --- /dev/null +++ b/source/a/splitvt/splitvt_1.6.5-9.diff @@ -0,0 +1,1073 @@ +--- splitvt-1.6.5.orig/debian/changelog ++++ splitvt-1.6.5/debian/changelog +@@ -0,0 +1,147 @@ ++splitvt (1.6.5-9) unstable; urgency=low ++ ++ * Ensure that -upper and -lower have arguemnts. Closes: #319091 ++ ++ -- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2005 17:50:32 -0400 ++ ++splitvt (1.6.5-8) unstable; urgency=low ++ ++ * Patch from Andreas Jochens to fix building with gcc 4.0. Closes: #294620 ++ ++ -- Joey Hess <joeyh@debian.org> Fri, 15 Jul 2005 17:38:09 +0300 ++ ++splitvt (1.6.5-7) unstable; urgency=low ++ ++ * Many changes to make it build cleanly with -Wall. This included some ++ missing headers that probably caused it to crash on amd64. ++ * Disabled vttest, since its read from the console to try to detect a vt100 ++ terminal was responsible for startup hang on sparc. Closes: #273330 ++ ++ -- Joey Hess <joeyh@debian.org> Wed, 26 Jan 2005 20:32:34 -0500 ++ ++splitvt (1.6.5-6) unstable; urgency=low ++ ++ * Rebuilt to update to current policy on /usr/doc links &etc. ++ ++ -- Joey Hess <joeyh@debian.org> Sat, 8 Feb 2003 12:32:25 -0500 ++ ++splitvt (1.6.5-5) unstable; urgency=low ++ ++ * Updated to debhelper v4. ++ ++ -- Joey Hess <joeyh@debian.org> Thu, 13 Jun 2002 16:30:04 -0400 ++ ++splitvt (1.6.5-4) unstable; urgency=low ++ ++ * Updated patch to not break resizing. ++ ++ -- Joey Hess <joeyh@debian.org> Fri, 5 Oct 2001 20:09:25 -0400 ++ ++splitvt (1.6.5-3) unstable; urgency=low ++ ++ * Patch from Robert de Bath <robert$@mayday.cix.co.uk> that has a doc fix ++ and also fixes a splitvt segfault when one uses the CSI ? 3 h to got o ++ 132 column mode. Closes: #113868 (also sent upstream) ++ ++ -- Joey Hess <joeyh@debian.org> Sat, 29 Sep 2001 16:44:25 -0400 ++ ++splitvt (1.6.5-2) unstable; urgency=HIGH ++ ++ * New upstream version, with a format string hole fixed, and several ++ possible buffer overfllows fixed. ++ - Of those, only (I think) the format string attack and two of the ++ buffer overflows can affect the debian package. ++ - Luckily, my last release of the package back in June 2000 made ++ it only need to be sgid tty. ++ - Total possible impact: attacker could possibly crack the tty group. ++ * Goofed up version number because this source is already in the ++ archives. ++ ++ -- Joey Hess <joeyh@debian.org> Wed, 17 Jan 2001 23:39:09 -0800 ++ ++splitvt (1.6.4-4) unstable; urgency=low ++ ++ * Drop setgid first. Very doubtful this effects anything, but it's the ++ right way to do things. ++ ++ -- Joey Hess <joeyh@debian.org> Thu, 15 Jun 2000 11:37:48 -0700 ++ ++splitvt (1.6.4-3) unstable; urgency=low ++ ++ * Modified to use glibc's sys4-ish pty routines; devpts, grantpt, etc. ++ * Modified to drop sgid bit properly. ++ * Now I can make it just sgid utmp, rather than suid root, and it ++ continues to work just as before. Beaujolais! Closes: #65227 ++ * Removed no-longer-needed glibc stdion/stdout fix patch. ++ ++ -- Joey Hess <joeyh@debian.org> Wed, 14 Jun 2000 14:13:30 -0700 ++ ++splitvt (1.6.4-2) unstable; urgency=low ++ ++ * Corrected build-depends, Closes: #65584 ++ ++ -- Joey Hess <joeyh@debian.org> Tue, 13 Jun 2000 11:42:02 -0700 ++ ++splitvt (1.6.4-1) unstable; urgency=high ++ ++ * New upstream release with security fix (already applied in the previous ++ version, I'm just syncing up with upstream). ++ * Added homepage to copyright file. ++ * Added some more files to docs. ++ * Now under the GPL explicitly, some updates to the copyright file. ++ ++ -- Joey Hess <joeyh@debian.org> Sun, 11 Jun 2000 21:42:41 -0700 ++ ++splitvt (1.6.3-7.0slink1) stable; urgency=high ++ ++ * Security fix. ++ ++ -- Daniel Jacobowitz <dan@debian.org> Sat, 3 Jun 2000 17:56:33 -0400 ++ ++splitvt (1.6.3-7) unstable; urgency=low ++ ++ * Build dep. ++ ++ -- Joey Hess <joeyh@debian.org> Sat, 4 Dec 1999 16:21:35 -0800 ++ ++splitvt (1.6.3-6) unstable; urgency=low ++ ++ * FHS ++ ++ -- Joey Hess <joeyh@debian.org> Sat, 11 Sep 1999 01:27:49 -0700 ++ ++splitvt (1.6.3-5) unstable; urgency=low ++ ++ * vtmouse.c: Don't use stdin/stdout as initializers. Instead, in ++ event_getc(), set xt_input and xt_output to stdin and stdout if ++ they are not yet set. This is for the ports to other architectures. ++ (#29597) ++ ++ -- Joey Hess <joeyh@debian.org> Tue, 17 Nov 1998 15:50:53 -0800 ++ ++splitvt (1.6.3-4) unstable; urgency=low ++ ++ * Built with newest debhelper to change how the suid binary is registered. ++ ++ -- Joey Hess <joeyh@debian.org> Tue, 27 Oct 1998 21:59:05 -0800 ++ ++splitvt (1.6.3-3) unstable; urgency=low ++ ++ * Hacked in a -f flag, that allows you to resize one of the splitvt ++ windows down to 1 line tall. This is particularly useful for ticker. ++ ++ -- Joey Hess <joeyh@debian.org> Mon, 7 Sep 1998 19:56:53 -0700 ++ ++splitvt (1.6.3-2) unstable; urgency=low ++ ++ * Fixed package description spelling (#18990). ++ ++ -- Joey Hess <joeyh@debian.org> Thu, 5 Mar 1998 17:00:19 -0800 ++ ++splitvt (1.6.3-1) unstable; urgency=low ++ ++ * First release. ++ * Write to author and clarified copyright. ++ * Change /etc/utmp to /var/run/utmp ++ ++ -- Joey Hess <joeyh@debian.org> Wed, 1 Oct 1997 16:19:01 -0400 +--- splitvt-1.6.5.orig/debian/control ++++ splitvt-1.6.5/debian/control +@@ -0,0 +1,14 @@ ++Source: splitvt ++Section: utils ++Priority: optional ++Build-Depends: debhelper (>= 4), libncurses5-dev, dpkg-dev (>= 1.9.0) ++Maintainer: Joey Hess <joeyh@debian.org> ++Standards-Version: 3.5.8.0 ++ ++Package: splitvt ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Description: run two programs in a split screen ++ A utility to split a vt100 compatible screen into two halves, ++ upper and lower, and run a different program simultaneously ++ in each half. +--- splitvt-1.6.5.orig/debian/compat ++++ splitvt-1.6.5/debian/compat +@@ -0,0 +1 @@ ++4 +--- splitvt-1.6.5.orig/debian/watch ++++ splitvt-1.6.5/debian/watch +@@ -0,0 +1,2 @@ ++version=2 ++http://www.devolution.com/~slouken/projects/splitvt/ splitvt-(.*).tar.gz +--- splitvt-1.6.5.orig/debian/copyright ++++ splitvt-1.6.5/debian/copyright +@@ -0,0 +1,45 @@ ++This is a Debian prepackaged version of the splitvt utility. ++ ++This package was put together by Joey Hess <joeyh@debian.org>, using ++sources from: ++ http://www.devolution.com/~slouken/projects/splitvt/ ++ ++The following copyright notices can still be found in the source code: ++ ++ /* utmp.c Shareware Copyright by Sam Lantinga 10/6/93 */ ++ ++That is a historical relic, though. The current copyright of splitvt is the ++GPL; the text to which can be found in /usr/share/common-licenses/GPL on a ++Debian system. ++ ++Before the copyright was expressly changed to the GPL, I wrote and asked the ++author about copyright. He replied: ++ ++ Date: Wed, 1 Oct 1997 13:39:18 -0700 ++ From: Sam Lantinga <slouken@domo.ccnet.com> ++ To: Joey Hess <joey@kite.ml.org> ++ Cc: slouken@mongoloid.devolution.com ++ Subject: Re: splitvt copyright ++ X-Mailer: My Mailer 1.5 <slouken@devolution.com> ++ ++ > I've never heard of no fee shareware before. What restrictions does that ++ > place on the software? Can it be put on a cd with other software (such as a ++ > linux distribution) and sold for profit? Can it be used by anyone, for any ++ > purpose? If so, why don't you just place it under the GPL? ++ ++ Consider it GPL'd. I wrote it before I was aware of the GPL, and haven't ++ done much work on it in quite a while. ++ ++ > At this point, I'm not sure if splitvt's copyright will let it go in our ++ > main distribution, that is sold on cd, or not. Awaiting your clarification.. ++ ++ You are more than welcome to put splitvt in the Debian distribution. ++ It is already in Slackware and S.u.S.E. ++ ++ See ya! ++ -Sam Lantinga (slouken@devolution.com) ++ ++ -- ++ Author of Linux Maelstrom - ++ http://www.devolution.com/~slouken/Maelstrom/ ++ -- +--- splitvt-1.6.5.orig/debian/rules ++++ splitvt-1.6.5/debian/rules +@@ -0,0 +1,43 @@ ++#!/usr/bin/make -f ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ rm -f Makefile ++ ./configure ++ $(MAKE) ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ dh_clean ++ if [ ! -f Makefile ]; then ./configure ; fi ++ -$(MAKE) distclean ++ ++binary-indep: build ++ ++binary-arch: build ++ dh_testdir ++ dh_testroot ++ dh_clean ++ dh_install splitvt usr/bin ++ dh_installdocs README TODO ANNOUNCE BLURB ++ dh_installexamples examples/* ++ dh_installmenu ++ dh_installcron ++ dh_installman splitvt.1 ++ dh_installchangelogs CHANGES ++ dh_strip ++ dh_compress ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_fixperms ++ chgrp utmp debian/splitvt/usr/bin/splitvt ++ chmod g+s debian/splitvt/usr/bin/splitvt ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary +--- splitvt-1.6.5.orig/splitvt.man ++++ splitvt-1.6.5/splitvt.man +@@ -176,7 +176,7 @@ + replace it with entries for the two windows. This allows + you to use programs such as 'talk' within the splitvt win- + dows. If you do not have write permission to the +- /etc/utmp file, you will not be able to modify the utmp ++ /etc/utmp file, you will not be able to modify the utmp + entries. + + splitvt can be made set-uid root. splitvt will reset its +--- splitvt-1.6.5.orig/parserc.c ++++ splitvt-1.6.5/parserc.c +@@ -1,6 +1,8 @@ + + /* Routines to parse the ~/.splitvtrc file and set default options */ + ++#include <unistd.h> ++#include <stdlib.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <string.h> +@@ -213,7 +215,7 @@ + char line[BUFSIZ], newline[BUFSIZ*2], *parsed[256]; + char *head, *tail, *ptr, *subptr; + char *envptr, envbuf[128]; +- int i, n, quoted=0; ++ int i, n; + int ignoring=0, ifs=0; + + /* Get our home directory */ +--- splitvt-1.6.5.orig/splitvt.c ++++ splitvt-1.6.5/splitvt.c +@@ -13,6 +13,9 @@ + static char *version= + "@(#)Splitvt 1.6.5 1/12/2001 -Sam Lantinga (slouken@devolution.com)\n"; + ++#include <string.h> ++#include <unistd.h> ++#include <stdlib.h> + #include <sys/types.h> + #include <sys/time.h> + #include <sys/wait.h> +@@ -79,6 +82,8 @@ + char *upper_args[MAX_ARGS+1]={NULL}, *lower_args[MAX_ARGS+1]={NULL}; + int upper_empty=1, lower_empty=1; + ++int force_height=0; ++ + void print_usage(argv) + char *argv; + { +@@ -95,13 +100,14 @@ + fprintf(stderr, "\t-nologin\t\tOverrides \"set login on\" in startup file\n"); + fprintf(stderr, "\t-rcfile file\t\tLoads 'file' at startup instead of ~/.splitvtrc\n"); + fprintf(stderr, "\t-norc\t\t\tSuppresses loading your startup file\n"); ++ fprintf(stderr, "\t-f\t\t\tAllow setting screen size of less than 3 lines\n"); + fprintf(stderr, "\t-v\t\t\tPrint out the version number\n"); + fprintf(stderr, "\n"); + exit(1); + } + + +-main(argc, argv) ++int main(argc, argv) + int argc; + char *argv[]; + { +@@ -111,7 +117,10 @@ + int i, len, maxfds, numready; + char buffer[BUFSIZ], *ptr; + char *xterm_title=NULL; +- struct timeval tv, *tvptr; ++#ifdef NEED_INET_H ++ struct timeval tv; ++#endif ++ struct timeval *tvptr; + fd_set read_mask; + static struct passwd pwdata; /* Our passwd entry */ + +@@ -151,7 +160,7 @@ + splitvtrc(); + + /* Parse command line options */ +- while ( (i=getopt(argc, argv, "n:u:l:r:s:t:vh")) != EOF ) ++ while ( (i=getopt(argc, argv, "fn:u:l:r:s:t:vh")) != EOF ) + { + switch (i) + { +@@ -163,11 +172,19 @@ + break; + case 'u': if ( strcmp(optarg, "pper") != 0 ) + print_usage(argv[0]); ++ if (optind >= argc) { ++ fprintf(stderr, "-upper requires an argument\n"); ++ print_usage(argv[0]); ++ } + tokenize(upper_args, MAX_ARGS+1, + argv[optind++], " "); + upper_empty=0; + break; + case 'l': if ( strcmp(optarg, "ower") == 0 ) { ++ if (optind >= argc) { ++ fprintf(stderr, "-lower requires an argument\n"); ++ print_usage(argv[0]); ++ } + tokenize(lower_args, MAX_ARGS+1, + argv[optind++], " "); + lower_empty=0; +@@ -188,7 +205,9 @@ + case 'v': printf("%s", version+4); + exit(0); + break; +- case 'h': ++ case 'f': force_height=1; ++ break; ++ case 'h': + default: print_usage(argv[0]); + break; + } +@@ -212,7 +231,7 @@ + } + (void) tty_raw(0); /* Set the tty raw here to prevent lost input */ + +- if ( (ptr=init_vt100()) != NULL ) ++ if ( (ptr=init_vt100(1)) != NULL ) + { + if ( tty_reset(0) < 0 ) + (void) tty_sane(0); +@@ -473,6 +492,7 @@ + } + } + finish(0); ++ exit(0); + } + + void reset_bar(sleeptime) +@@ -496,6 +516,7 @@ + " 'x' Lock the screen", + " 'h' Show this help screen", + " 'q' Quickly quit splitvt", ++" '0-9' Line count for + or -", + NULL + }; + vt_showscreen("Splitvt HELP screen:", help); +@@ -700,7 +721,7 @@ + tmp_uulines=UU_lines; + UU_lines=WU_lines; + UU_lines += howfar; /* Positive to go down, negative to go up */ +- init_vt100(); /* Reset the windows to the new size */ ++ init_vt100(0); /* Reset the windows to the new size */ + + /* Tell the running processes about the size change */ + if ( topok ) +@@ -722,7 +743,7 @@ + + signal(sig, winch); + +- if ( (ptr=init_vt100()) != NULL ) { ++ if ( (ptr=init_vt100(1)) != NULL ) { + fprintf(stderr, "Can't resize window: %s. (exiting)\n", ptr); + finish(0); + } else +--- splitvt-1.6.5.orig/config.c ++++ splitvt-1.6.5/config.c +@@ -169,7 +169,7 @@ + strcat(ldflags, " -lsun"); + + /* Tell the user what kind of configuration to do */ +- if ( (access("/etc/utmp", (R_OK|W_OK)) == 0) && getuid() ) ++ if ( (access("/var/run/utmp", (R_OK|W_OK)) == 0) && getuid() ) + write_utmp=1; + else + write_utmp=0; +@@ -180,14 +180,14 @@ + VERBOSE_PRINT( + "This program doesn't need to be installed set-uid root.\n"); + VERBOSE_PRINT( +- "\nThis program will put entries for its windows in /etc/utmp.\n"); ++ "\nThis program will put entries for its windows in /var/run/utmp.\n"); + } else { + VERBOSE_PRINT( +- "If installed set-uid root, this program will put entries for its windows\nin /etc/utmp.\n"); ++ "If installed set-uid root, this program will put entries for its windows\nin /var/run/utmp.\n"); + } + } else if ( write_utmp ) { + VERBOSE_PRINT( +- "This program will put entries for its windows in /etc/utmp.\n"); ++ "This program will put entries for its windows in /var/run/utmp.\n"); + VERBOSE_PRINT( + "\nIf installed set-uid root, this program will change ownership of the\n"); + VERBOSE_PRINT( +@@ -196,7 +196,7 @@ + VERBOSE_PRINT( + "If installed set-uid root, this program will put entries for its windows\n"); + VERBOSE_PRINT( +- "in /etc/utmp, and will also change ownership of the ttys it acquires to the\n"); ++ "in /var/run/utmp, and will also change ownership of the ttys it acquires to the\n"); + VERBOSE_PRINT( + "user running this program.\n"); + } +@@ -225,7 +225,7 @@ + } + fprintf(makefile, + "PTYOPTS = -DPTYCHAR=$(PTYCHAR) -DHEXDIGIT=$(HEXDIGIT)\n"); +- sprintf(line, "\nCFLAGS = %s $(PTYOPTS)\nLIBS = %s\n", cflags, ldflags); ++ sprintf(line, "\nCFLAGS = -Wall %s $(PTYOPTS)\nLIBS = %s\n", cflags, ldflags); + fprintf(makefile, "%s", line); + fprintf(makefile, "OBJS = splitvt.o misc.o utmp.o vt100.o videomem.o terminal.o vttest.o vtmouse.o \\\n"); + fprintf(makefile, " parserc.o lock.o cut-paste.o\n\n"); +--- splitvt-1.6.5.orig/cut-paste.c ++++ splitvt-1.6.5/cut-paste.c +@@ -2,8 +2,12 @@ + /* The cut-paste module for splitvt */ + + #include <stdio.h> ++#include <string.h> ++#include <unistd.h> + #include "vt100.h" + #include "video.h" ++#include "splitvt.h" ++#include "terminal.h" + + #define RIGHT 0x01 + #define LEFT 0x02 +@@ -41,7 +45,7 @@ + } else + c ^= (SELECTED<<8); + +- (*oldattr)=check_attr(c, *oldattr, on); ++ (*oldattr)=check_attr(c, *oldattr, (int)on); + put_video(c, win, x, y); + + if ( c&0xFF ) +@@ -86,7 +90,6 @@ + int len; + position *mark1, *mark2; + { +- int selection=0; + position startsel, endsel; + + if ( mark1->x == mark2->x ) +@@ -200,9 +203,9 @@ + void vt_initsel() + { + extern char *pathsearch(); /* From misc.c */ +- char *display; + + #ifdef USE_XCB ++ char *display; + /* Use xcb if we have both an X display and the command. */ + /* xcb needs to support my hacked '-R' option. */ + if ( (display=(char *)getenv("DISPLAY")) && pathsearch("xcb", 1) ) +@@ -254,7 +257,7 @@ + char *buf; + int len; + { +- int c, state=NORMAL; ++ int c; + position here, cursor, mark1, mark2; + window *thiswin; + +@@ -311,7 +314,7 @@ + default: break; + } + } +- return; /* Hopefully, we never reach here */ ++ return NULL; /* Hopefully, we never reach here */ + } + + +--- splitvt-1.6.5.orig/vt100.c ++++ splitvt-1.6.5/vt100.c +@@ -8,6 +8,9 @@ + Many thanks to Matt Ostanik who wrote the ANSI Handbook. + */ + ++#include <unistd.h> ++#include <string.h> ++#include <stdlib.h> + #include <sys/types.h> + #ifdef HAVE_TERMIO_H + #include <termio.h> /* Used only for TIOCGWINSZ */ +@@ -20,6 +23,7 @@ + #include "vt100.h" + #include "video.h" + #include "terminal.h" ++#include "splitvt.h" + + #define SEP_CHAR ' ' /* Separator bar character */ + +@@ -135,7 +139,7 @@ + unsigned char on=NORMAL; + + vt_resetattr(); +- (void) check_attr(0, win->textattr, &on); ++ (void) check_attr(0, win->textattr, (int)&on); + } + + /* Process the ^[[X;Xm escape. Made into a separate routine to support +@@ -683,10 +687,9 @@ + break; + case 3: /* 132 char/row */ + if ( physical.cols != 132 ) { +- upper.cols=132; +- lower.cols=132; + physical.cols=132; + vt_widemode(1); ++ init_vt100(0); + } + break; + case 4: /* Set jump scroll */ +@@ -726,11 +729,9 @@ + break; + case 3: /* 80 char/row */ + if ( physical.cols == 132 ) { +- vt_rows_cols(terminal_type, +- NULL, &physical.cols); +- upper.cols=physical.cols; +- lower.cols=physical.cols; ++ physical.cols = 80; + vt_widemode(0); ++ init_vt100(0); + } + break; + case 4: /* Set smooth scroll */ +@@ -843,7 +844,8 @@ + + static int setup_vt100 = 0; /* Have we initialized the vt100 system? */ + +-char *init_vt100() ++char *init_vt100(reread_tsize) ++int reread_tsize; + { + #ifdef TIOCGWINSZ + struct /* winsize */ { +@@ -853,7 +855,7 @@ + unsigned short ws_ypixel; /* vertical size - not used */ + } mywinz; + #endif +- int i, **videomem, oldrows, newrows, newcols; ++ int i, **videomem, oldrows = 0, newrows, newcols; + position newpos; + char *ptr, *errmesg; + +@@ -869,18 +871,22 @@ + vt_initsel(); + } + ++ if (reread_tsize) ++ { + #ifdef TIOCGWINSZ +- if ( ioctl(0, TIOCGWINSZ, &mywinz) == 0 ) { +- if ( mywinz.ws_row ) +- physical.rows=mywinz.ws_row; +- if ( mywinz.ws_col ) +- physical.cols=mywinz.ws_col; +- } ++ if ( ioctl(0, TIOCGWINSZ, &mywinz) == 0 ) { ++ if ( mywinz.ws_row ) ++ physical.rows=mywinz.ws_row; ++ if ( mywinz.ws_col ) ++ physical.cols=mywinz.ws_col; ++ } + #endif +- if ( (ptr=(char *)getenv("LINES")) != NULL ) +- physical.rows=atoi(ptr); +- if ( (ptr=(char *)getenv("COLUMNS")) != NULL ) +- physical.cols=atoi(ptr); ++ ++ if ( (ptr=(char *)getenv("LINES")) != NULL ) ++ physical.rows=atoi(ptr); ++ if ( (ptr=(char *)getenv("COLUMNS")) != NULL ) ++ physical.cols=atoi(ptr); ++ } + + /* Now set defaults if we can't find the window size */ + if ( ! physical.rows ) physical.rows=24; +@@ -892,19 +898,21 @@ + if ( physical.rows < 7 ) + return("Screen is not tall enough to split."); + +- /* If physical.cols has been set to 132, assume we are on a +- vt100 wide terminal, and set 132 column mode. Note that +- setting COLUMNS in the environment will override termcap */ +- if ( physical.cols == 132 ) +- vt_widemode(1); ++ if ( ! setup_vt100 ) { ++ /* If physical.cols has been set to 132, assume we are on a ++ vt100 wide terminal, and set 132 column mode. Note that ++ setting COLUMNS in the environment will override termcap */ ++ if ( physical.cols == 132 ) ++ vt_widemode(1); ++ } + + /* Set the exportable variables */ + if ( UU_lines ) { + /* Check the user set # of lines */ +- if ( UU_lines > (physical.rows-1-3) ) +- LU_lines=(physical.rows-1-3); +- else if ( UU_lines < 3 ) +- LU_lines=3; ++ if ( UU_lines > (physical.rows-1-3+(2*force_height)) ) ++ LU_lines=(physical.rows-1-3+(2*force_height)); ++ else if ( UU_lines < 3 - (2*force_height)) ++ LU_lines=3 - (2*force_height); + else + LU_lines=UU_lines; + +--- splitvt-1.6.5.orig/splitvt.h ++++ splitvt-1.6.5/splitvt.h +@@ -34,3 +34,25 @@ + + /* Functions exported from splitvt.c */ + extern void reset_bar(); ++ ++/* If set, allow resizing to less than 3 lines */ ++extern int force_height; ++ ++void tokenize(char *array[], int size, char *line, char *tokens); ++void d_copy(register char *src, register char *dst, register int len); ++int tty_getmode(int fd); ++int tty_raw(int fd); ++int tty_reset(int fd); ++int tty_sane(int fd); ++int remove_me(void); ++int pty_open(char *argv[], int *childpid, int win); ++int addutmp(char *user, int uid, char *tty); ++char *vt_setsel(char *buf, int len, int startx, int endx, int starty, int endy); ++int delutmp(char *user, char *tty); ++int replace_me(void); ++void pty_setwin(int fd, int win); ++int check_attr(int pixel, int lastattr, int currattr); ++void d_zero(register char *dst, register int len); ++void vt_initsel(void); ++int vttest(void); ++int safe_pclose(FILE *pipefp); +--- splitvt-1.6.5.orig/splitvt.1 ++++ splitvt-1.6.5/splitvt.1 +@@ -47,6 +47,11 @@ + Suppresses loading your ~/.splitvtrc + .TP + .TB ++.I -f ++Allow setting the height of either the top or the bottom window to less than ++3 lines. ++.TP ++.TB + .I -v + Print out the version number of splitvt + .LP +@@ -173,7 +178,7 @@ + splitvt will attempt to erase the current utmp entry, and replace it + with entries for the two windows. This allows you to use programs + such as 'talk' within the splitvt windows. If you do not have write +-permission to the /etc/utmp file, you will not be able to modify the ++permission to the /var/run/utmp file, you will not be able to modify the + utmp entries. + + splitvt can be made set-uid root. splitvt will reset its user id to +--- splitvt-1.6.5.orig/splitvt-1.6.4.lsm ++++ splitvt-1.6.5/splitvt-1.6.4.lsm +@@ -0,0 +1,15 @@ ++Begin3 ++Title: Splitvt - a split windows utility ++Version: 1.6.4 ++Entered-date: 03JUN2000 ++Description: A utility to split a vt100 compatible screen into two halfs, ++ upper and lower, and run a different program simultaneously ++ in each half. ++Keywords: screen vt100 emulator ++Author: slouken@devolution.com (Sam Lantinga) ++Maintained-by: slouken@devolution.com (Sam Lantinga) ++Primary-site: http://www.devolution.com/~slouken/projects/splitvt/ ++Alternate-site: sunsite.unc.edu /pub/Linux/utils/terminal ++Platform: UNIX ++Copying-policy: GPL ++End +--- splitvt-1.6.5.orig/utmp.c ++++ splitvt-1.6.5/utmp.c +@@ -1,21 +1,27 @@ + + /* utmp.c Shareware Copyright by Sam Lantinga 10/6/93 */ + ++#include <unistd.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <fcntl.h> + #include <utmp.h> + #include <stdio.h> ++#include <string.h> ++#include <time.h> ++#include "splitvt.h" + + #ifdef DEBUG_UTMP + #undef UTMP_FILE + #define UTMP_FILE "/tmp/utmp" + #else + #ifndef UTMP_FILE +-#define UTMP_FILE "/etc/utmp" ++#define UTMP_FILE "/var/run/utmp" + #endif /* UTMP_FILE */ + #endif /* DEBUG_UTMP */ + ++int get_utmp(char *tty, struct utmp *save); ++int set_utmp(char *tty, struct utmp *save); + + /* Remove us from the utmp file, saving our entry to replace later */ + +@@ -94,7 +100,7 @@ + if (strncmp(ttyptr, ut.ut_line, sizeof(ut.ut_line)) == 0) { + /* Break out; we've found our entry! */ + if ( save ) +- d_copy((char *)&ut, save, sizeof(ut)); ++ d_copy((char *)&ut, (char *)&save, sizeof(ut)); + close(fd); + return(0); + } +@@ -158,7 +164,9 @@ + int uid; /* The uid corresponding to user */ + char *tty; /* /dev/ttyxx */ + { ++#if !defined(SOLARIS) && !defined(IRIX) && !defined(__GLIBC__) + struct stat sb; ++#endif + struct utmp ut; + char *ttyptr; + +@@ -195,12 +203,13 @@ + #endif + (void) time(&ut.ut_time); + +-#if !defined(SOLARIS) && !defined(IRIX) +- /* Solaris and Irix machines do this automatically */ ++#if !defined(SOLARIS) && !defined(IRIX) && !defined(__GLIBC__) ++ /* Solaris and Irix and GLIBC machines do this automatically */ + /* Change the ownership and mode of the tty */ + if ( stat(tty, &sb) == 0 ) { + (void) chmod(tty, 0620); /* crw--w---- */ + (void) chown(tty, uid, sb.st_gid); ++ + } + #endif + return(set_utmp(tty, &ut)); +--- splitvt-1.6.5.orig/lock.c ++++ splitvt-1.6.5/lock.c +@@ -1,9 +1,13 @@ + + /* The screen locking module for splitvt */ + ++#include <unistd.h> ++#include <sys/types.h> ++#include <string.h> + #include <stdio.h> + #include <pwd.h> + #include "vt100.h" ++#include "splitvt.h" + + #define UNLOCKED 0 + #define ENTERED1 1 +--- splitvt-1.6.5.orig/vttest.c ++++ splitvt-1.6.5/vttest.c +@@ -12,6 +12,7 @@ + -Sam Lantinga (slouken@toadflax.cs.ucdavis.edu) + */ + ++#include <unistd.h> + #include <sys/types.h> + #include <stdio.h> + #include <fcntl.h> +@@ -48,9 +49,12 @@ + int vttest() + { + char buff[512]; +- int x=0, w, rc=0, fd; ++ int x=0, rc=0, fd; + struct termio ttold, ttraw; + ++ /* Disabled since at least on sparc it causes a hang. */ ++ return 1; ++ + /* Set the terminal in a raw mode */ + if ( (fd=open("/dev/tty", O_RDWR, 0666)) < 0 ) + return(0); +--- splitvt-1.6.5.orig/vtmouse.c ++++ splitvt-1.6.5/vtmouse.c +@@ -7,8 +7,11 @@ + + #define SPLITVT_SOURCE + ++#include <string.h> ++#include <stdlib.h> + #include <stdio.h> + #include "vtmouse.h" ++#include "splitvt.h" + + extern FILE *safe_popen(); /* From misc.c */ + +--- splitvt-1.6.5.orig/videomem.c ++++ splitvt-1.6.5/videomem.c +@@ -1,6 +1,7 @@ + + /* This file holds the functions for manipulating video memory */ + ++#include <stdlib.h> + #include <stdio.h> + #include "video.h" + #include "terminal.h" +@@ -113,7 +114,7 @@ + int x1, x2; + int y1, y2; + { +- int l=0, i, j, eol, eos; ++ int l=0, i, j, eol, eos=0; + + --maxlen; /* Account for trailing null */ + for ( i=(x1-1); (i<x2 && l<maxlen); ++i ) { +@@ -319,7 +320,7 @@ + void paint_video(win) + window *win; + { +- unsigned char change, on=NORMAL; ++ unsigned char on=NORMAL; + int i, j, oldattr=0; + + vt_setscroll(0,0); +--- splitvt-1.6.5.orig/vtmouse.h ++++ splitvt-1.6.5/vtmouse.h +@@ -39,5 +39,7 @@ + extern int event_getc(); + extern void event_quit(); + ++#if 0 ++/* this is broken for gcc 4.0, so comment it out */ + extern FILE *xt_input, *xt_output; /* Usually untouched */ +- ++#endif +--- splitvt-1.6.5.orig/terminal.c ++++ splitvt-1.6.5/terminal.c +@@ -4,8 +4,11 @@ + actually write to the terminal. + */ + +- ++#include <curses.h> ++#include <term.h> + #include <stdio.h> ++#include <string.h> ++#include "splitvt.h" + #include "video.h" + #include "terminal.h" + +@@ -125,7 +128,7 @@ + } + return(NULL); + } +-void outc(c) int c; { putchar(c); } ++int outc(c) int c; { return putchar(c); } + + void vt_rows_cols(termtype, rows, cols) + char *termtype; +--- splitvt-1.6.5.orig/misc.c ++++ splitvt-1.6.5/misc.c +@@ -1,10 +1,17 @@ + /* Miscellaneous system dependent routines for splitsh */ + ++#define _GNU_SOURCE /* for getpt and other gnu extensions to libc */ ++ + #include <sys/types.h> ++#include <sys/wait.h> ++#include <unistd.h> ++#include <stdlib.h> + #include <sys/stat.h> + #include <fcntl.h> + #include <stdio.h> + #include <signal.h> ++#include <utime.h> ++#include <string.h> + + + #ifdef HAVE_TERMIO_H +@@ -24,6 +31,8 @@ + /*#define STTY_HACK*/ + #endif + ++int tty_reset(int fd); ++ + /* + * Initialize a pty, fork a command running under it, and then + * return the master file descriptor +@@ -44,7 +53,10 @@ + int get_master_pty(), get_slave_pty(); + char *get_ttyname(), *myputenv(); + +- char LINES[12], COLUMNS[12], SPLITVT[24]; ++#ifndef TIOCGWINSZ ++ char LINES[12], COLUMNS[12]; ++#endif ++ char SPLITVT[24]; + int returnfd, slave_fd; + + /* Get the master pty file descriptor */ +@@ -106,6 +118,8 @@ + /* "touch" the tty so 'w' reports proper idle times */ + (void) utime(get_ttyname(), NULL); + ++ /* Set our gid to our real gid if necessary */ ++ (void) setgid(getgid()); + /* Set our uid to our real uid if necessary */ + (void) setuid(getuid()); + +@@ -182,12 +196,18 @@ + #else /* ! IRIX */ + + +-#ifdef SOLARIS /* System V.4 pty routines from W. Richard Stevens */ ++#if defined(SOLARIS) || defined(__GLIBC__) ++/* System V.4 pty routines from W. Richard Stevens */ ++/* GLIBC is very similar, so this will handle it too. */ ++ ++#ifdef SOLARIS + + #include <stropts.h> + + #define DEV_CLONE "/dev/ptmx" + ++#endif ++ + extern char *ptsname(); + + int get_master_pty() +@@ -195,9 +215,14 @@ + + char *ttyptr; + ++#ifdef SOLARIS + if ( (master_fd=open(DEV_CLONE, O_RDWR)) < 0 ) + return(-1); +- ++#else /* GLIBC */ ++ if ( (master_fd=getpt()) == -1 ) ++ return (-1); ++#endif ++ + if ( grantpt(master_fd) < 0 ) /* grant access to slave */ + { + close(master_fd); +@@ -242,6 +267,7 @@ + return(-1); + } + ++#ifdef SOLARIS + if ( ioctl(slave_fd, I_PUSH, "ptem") < 0 ) + { + close(master_fd); +@@ -262,7 +288,8 @@ + close(slave_fd); + return(-1); + } +- ++#endif ++ + return(slave_fd); + } + +@@ -393,8 +420,10 @@ + + void dropctty() + { ++#ifndef CIBAUD + int fd; +- ++#endif ++ + #if defined(_POSIX_SOURCE) || defined(SOLARIS) || \ + defined(__386BSD__) || defined(__FreeBSD__) + setsid(); /* The POSIX solution is simple. :) */ +@@ -708,7 +737,6 @@ + extern char **environ; /* The process environment strings */ + + char *newptr, **envptr; +- char *tmptr, temp[BUFSIZ]; + int distance, n=0; + + for ( distance=0; ((*(string+distance)) && +@@ -759,7 +787,7 @@ + char *line; + char *tokens; + { +- char *head, *ptr; ++ char *head; + int i=0; + + for ( head=line; *line && i < size-2; ) { +@@ -847,7 +875,7 @@ + { + char *argv[4]; + int pipe_fds[2]; +- int rw, child; ++ int rw; + + if ( strcmp(type, "r") == 0 ) + rw=0; /* READ access for parent */ diff --git a/source/a/sysfsutils/slack-desc b/source/a/sysfsutils/slack-desc new file mode 100644 index 000000000..b7b470925 --- /dev/null +++ b/source/a/sysfsutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sysfsutils: sysfsutils (Utilities for the sysfs filesystem) +sysfsutils: +sysfsutils: The purpose of this package is to provide a set of utilities for +sysfsutils: interfacing with sysfs, a virtual filesystem in Linux kernel versions +sysfsutils: 2.6+ that provides a tree of system devices. While a filesystem is a +sysfsutils: very useful interface, a library (libsysfs) is also included that +sysfsutils: will hopefully make it easier for applications to query system +sysfsutils: devices and their attributes. +sysfsutils: +sysfsutils: +sysfsutils: diff --git a/source/a/sysfsutils/sysfsutils.SlackBuild b/source/a/sysfsutils/sysfsutils.SlackBuild new file mode 100755 index 000000000..0534b3e29 --- /dev/null +++ b/source/a/sysfsutils/sysfsutils.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.1.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysfsutils + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf sysfsutils-$VERSION +tar xjvf $CWD/sysfsutils-$VERSION.tar.bz2 +cd sysfsutils-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/lib${LIBDIRSUFFIX} \ + --enable-static=no \ + $ARCH-slackware-linux +make +make install DESTDIR=$PKG + +# Unless things start whining later that this libtool junk is +# required for some reason, out it goes. Especially in /lib, +# where probably nothing would find it anyway. +rm -f $PKG/lib${LIBDIRSUFFIX}/*.la + +# .so links should really go in /usr/lib: +rm $PKG/lib${LIBDIRSUFFIX}/*.so +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +# sanity check +if [ ! -L $PKG/lib${LIBDIRSUFFIX}/libsysfs.so.2 ]; then + exit 1 +fi +( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf /lib${LIBDIRSUFFIX}/libsysfs.so.2 libsysfs.so ) + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/sysfsutils-$VERSION +cp -a \ + AUTHORS COPYING CREDITS NEWS README TODO \ + docs/* \ + $PKG/usr/doc/sysfsutils-$VERSION + +# Compress and/or relink manpages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/sysfsutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysklogd/slack-desc b/source/a/sysklogd/slack-desc new file mode 100644 index 000000000..883782ccf --- /dev/null +++ b/source/a/sysklogd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sysklogd: sysklogd (Linux system logging utilities) +sysklogd: +sysklogd: Dr. Greg Wettstein and Stephen Tweedie's syslogd/klogd. +sysklogd: +sysklogd: This package contains a modified version of syslogd for the Linux +sysklogd: environment. An additional utility, klogd, is included which allows +sysklogd: kernel logging to be directed through the syslogd facility. +sysklogd: Syslogd and klogd are started when your system boots. +sysklogd: +sysklogd: +sysklogd: diff --git a/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff b/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff new file mode 100644 index 000000000..268309297 --- /dev/null +++ b/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff @@ -0,0 +1,90 @@ +--- ./syslogd.c.orig 2007-04-09 18:17:05.000000000 -0500 ++++ ./syslogd.c 2007-04-09 18:25:22.000000000 -0500 +@@ -1273,61 +1273,55 @@ + crunch_list(list) + char *list; + { +- int count, i; ++ int i, m, n; + char *p, *q; + char **result = NULL; + + p = list; + + /* strip off trailing delimiters */ +- while (p[strlen(p)-1] == LIST_DELIMITER) { +- count--; ++ while (*p && p[strlen(p)-1] == LIST_DELIMITER) + p[strlen(p)-1] = '\0'; +- } + /* cut off leading delimiters */ +- while (p[0] == LIST_DELIMITER) { +- count--; +- p++; +- } +- +- /* count delimiters to calculate elements */ +- for (count=i=0; p[i]; i++) +- if (p[i] == LIST_DELIMITER) count++; +- +- if ((result = (char **)malloc(sizeof(char *) * (count+2))) == NULL) { ++ while (p[0] == LIST_DELIMITER) ++ p++; ++ ++ /* count delimiters to calculate the number of elements */ ++ for (n = i = 0; p[i]; i++) ++ if (p[i] == LIST_DELIMITER) n++; ++ ++ if ((result = (char **)malloc(sizeof(char *) * (n + 2))) == NULL) { + printf ("Sorry, can't get enough memory, exiting.\n"); +- exit(0); ++ exit(1); + } +- ++ + /* + * We now can assume that the first and last + * characters are different from any delimiters, + * so we don't have to care about this. + */ +- count = 0; +- while ((q=strchr(p, LIST_DELIMITER))) { +- result[count] = (char *) malloc((q - p + 1) * sizeof(char)); +- if (result[count] == NULL) { ++ m = 0; ++ while ((q = strchr(p, LIST_DELIMITER)) && m < n) { ++ result[m] = (char *) malloc((q - p + 1) * sizeof(char)); ++ if (result[m] == NULL) { + printf ("Sorry, can't get enough memory, exiting.\n"); +- exit(0); ++ exit(1); + } +- strncpy(result[count], p, q - p); +- result[count][q - p] = '\0'; ++ memcpy(result[m], p, q - p); ++ result[m][q - p] = '\0'; + p = q; p++; +- count++; ++ m++; + } +- if ((result[count] = \ +- (char *)malloc(sizeof(char) * strlen(p) + 1)) == NULL) { ++ if ((result[m] = strdup(p)) == NULL) { + printf ("Sorry, can't get enough memory, exiting.\n"); +- exit(0); ++ exit(1); + } +- strcpy(result[count],p); +- result[++count] = NULL; ++ result[++m] = NULL; + + #if 0 +- count=0; +- while (result[count]) +- dprintf ("#%d: %s\n", count, StripDomains[count++]); ++ m = 0; ++ while (result[m]) ++ dprintf ("#%d: %s\n", m, result[m++]); + #endif + return result; + } diff --git a/source/a/sysklogd/sysklogd-1.4.1.lsm b/source/a/sysklogd/sysklogd-1.4.1.lsm new file mode 100644 index 000000000..0c3b75f8f --- /dev/null +++ b/source/a/sysklogd/sysklogd-1.4.1.lsm @@ -0,0 +1,23 @@ +Begin3 +Title: sysklogd +Version: 1.4.1 +Entered-date: 2001-03-11 +Description: The sysklogd package implements two system log daemons. The + syslogd daemon is the general system logging daemon which + is responsible for handling requests for syslog services. + This version of syslogd is similar to the standard Berkeley + product but with a number of compatible extensions. The + klogd daemon runs either standalone or as a client of syslogd. + Klogd 'listens' to kernel log messages, prioritizes them and + routes them to either output files or to syslogd. This + version of klogd will optionally translate kernel addresses + to their symbolic equivalents if provided with a system map. +Keywords: logging, remote, kernel, syslogd, proc, daemon, klogd +Author: greg@wind.enjellic.com (Dr. G.W. Wettstein) +Maintained-by: joey@infodrom.ffis.de (Martin Schulze) +Primary-site: www.infodrom.ffis.de /projects/sysklogd + 82kB sysklogd-1.4.1.tar.gz + 1kB sysklogd-1.4.1.lsm +Alternate-site: metalab.unc.edu /pub/Linux/system/daemons +Copying-policy: syslogd is under Berkeley copyright, klogd is under GPL. +End diff --git a/source/a/sysklogd/sysklogd.SlackBuild b/source/a/sysklogd/sysklogd.SlackBuild new file mode 100755 index 000000000..110659e4c --- /dev/null +++ b/source/a/sysklogd/sysklogd.SlackBuild @@ -0,0 +1,80 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.4.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-10} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysklogd + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_sysklogd.tar.gz + +cd $TMP +rm -rf sysklogd-$VERSION +tar xzvf $CWD/sysklogd-$VERSION.tar.gz || exit 1 +cd sysklogd-$VERSION +zcat $CWD/sysklogd_1.4.1-20.diff.gz | patch -p1 --verbose || exit 1 +#zcat $CWD/sysklogd-1.4.1-owl-syslogd-crunch_list.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make -j4 || exit 1 +make syslog_tst || exit 1 +cat klogd > $PKG/usr/sbin/klogd +cat syslog_tst > $PKG/usr/sbin/syslog_tst +cat syslogd > $PKG/usr/sbin/syslogd +for page in klogd.8 sysklogd.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +cat syslog.conf.5 | gzip -9c > $PKG/usr/man/man5/syslog.conf.5.gz +mkdir -p $PKG/usr/doc/sysklogd-$VERSION +cp -a ANNOUNCE CHANGES COPYING INSTALL MANIFEST NEWS README.1st \ + README.linux $PKG/usr/doc/sysklogd-$VERSION +chmod 644 $PKG/usr/doc/sysklogd-$VERSION/* +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/sysklogd-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/sysklogd-$VERSION + rm -rf $PKG +fi diff --git a/source/a/sysklogd/sysklogd_1.4.1-20.diff b/source/a/sysklogd/sysklogd_1.4.1-20.diff new file mode 100644 index 000000000..9bb27bbb6 --- /dev/null +++ b/source/a/sysklogd/sysklogd_1.4.1-20.diff @@ -0,0 +1,2555 @@ +--- sysklogd-1.4.1.orig/CHANGES ++++ sysklogd-1.4.1/CHANGES +@@ -30,3 +30,4 @@ + . Olaf Kirch <okir@caldera.de> + - Remove Unix Domain Sockets and switch to Datagram Unix Sockets + . Several bugfixes and improvements, please refer to the .c files ++ +--- sysklogd-1.4.1.orig/README.linux ++++ sysklogd-1.4.1/README.linux +@@ -44,8 +44,8 @@ + mail to Majordomo@Infodrom.North.DE with a line "subscribe sysklogd" + in the message body. + +-New versions of this package will be available at Joey's ftp server. +-ftp://ftp.infodrom.north.de/pub/people/joey/sysklogd/ ++New versions of this package will be available at Joey's server. ++ http://www.infodrom.org/projects/sysklogd/ + + Best regards, + +@@ -67,6 +67,6 @@ + + Martin Schulze + Infodrom Oldenburg +-joey@linux.de ++joey@infodrom.org + + And a host of bug reporters whose contributions cannot be underestimated. +--- sysklogd-1.4.1.orig/klogd.8 ++++ sysklogd-1.4.1/klogd.8 +@@ -321,7 +321,7 @@ + .B klogd + to reload the module symbol information whenever a protection fault + is detected. Caution should be used before invoking the program in +-\'paranoid\' mode. The stability of the kernel and the operating ++\&'paranoid\&' mode. The stability of the kernel and the operating + environment is always under question when a protection fault occurs. + Since the klogd daemon must execute system calls in order to read the + module symbol information there is the possibility that the system may +--- sysklogd-1.4.1.orig/ksym_mod.c ++++ sysklogd-1.4.1/ksym_mod.c +@@ -78,6 +78,11 @@ + * + * Tue Sep 12 23:11:13 CEST 2000: Martin Schulze <joey@infodrom.ffis.de> + * Changed llseek() to lseek64() in order to skip a libc warning. ++ * ++ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze <joey@infodrom.org> ++ * Removed references to <linux/module.h> since it doesn't work ++ * anymore with its recent content from Linux 2.4/2.6, created ++ * module.h locally instead. + */ + + +@@ -89,11 +94,12 @@ + #include <errno.h> + #include <sys/fcntl.h> + #include <sys/stat.h> ++#include "module.h" + #if !defined(__GLIBC__) + #include <linux/time.h> +-#include <linux/module.h> ++#include <linux/linkage.h> + #else /* __GLIBC__ */ +-#include <linux/module.h> ++#include <linux/linkage.h> + extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); + extern int get_kernel_syms __P ((struct kernel_sym *__table)); + #endif /* __GLIBC__ */ +--- sysklogd-1.4.1.orig/module.h ++++ sysklogd-1.4.1/module.h +@@ -0,0 +1,90 @@ ++/* ++ module.h - Miscellaneous module definitions ++ Copyright (c) 1996 Richard Henderson <rth@tamu.edu> ++ Copyright (c) 2004 Martin Schulze <joey@infodrom.org> ++ ++ This file is part of the sysklogd package. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++/* ChangeLog: ++ * ++ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze <joey@infodrom.org> ++ * Created local copy of module.h based on the content of Linux ++ * 2.2 since <linux/module.h> doesn't work anymore with its ++ * recent content from Linux 2.4/2.6. ++ * Thu May 25 09:14:33 CEST 2006: Martin Schulze <joey@infodrom.org> ++ * Removed asm/atomic.h since it is not needed anymore. ++ */ ++ ++#define MODULE_NAME_LEN 60 ++ ++struct kernel_sym ++{ ++ unsigned long value; ++ char name[MODULE_NAME_LEN]; ++}; ++ ++ ++struct list_head { ++ struct list_head *next, *prev; ++}; ++ ++ ++struct module_info ++{ ++ unsigned long addr; ++ unsigned long size; ++ unsigned long flags; ++ long usecount; ++}; ++ ++ ++struct module ++{ ++ unsigned long size_of_struct; /* == sizeof(module) */ ++ struct module *next; ++ const char *name; ++ unsigned long size; ++ ++ union ++ { ++ int usecount; ++ long pad; ++ } uc; /* Needs to keep its size - so says rth */ ++ ++ unsigned long flags; /* AUTOCLEAN et al */ ++ ++ unsigned nsyms; ++ unsigned ndeps; ++ ++ struct module_symbol *syms; ++ struct module_ref *deps; ++ struct module_ref *refs; ++ int (*init)(void); ++ void (*cleanup)(void); ++ const struct exception_table_entry *ex_table_start; ++ const struct exception_table_entry *ex_table_end; ++#ifdef __alpha__ ++ unsigned long gp; ++#endif ++ /* Members past this point are extensions to the basic ++ module support and are optional. Use mod_opt_member() ++ to examine them. */ ++ const struct module_persist *persist_start; ++ const struct module_persist *persist_end; ++ int (*can_unload)(void); ++}; +--- sysklogd-1.4.1.orig/pidfile.c ++++ sysklogd-1.4.1/pidfile.c +@@ -87,7 +87,7 @@ + int fd; + int pid; + +- if ( ((fd = open(pidfile, O_RDWR|O_CREAT, 0644)) == -1) ++ if ( ((fd = open(pidfile, O_RDWR|O_CREAT|O_TRUNC, 0644)) == -1) + || ((f = fdopen(fd, "r+")) == NULL) ) { + fprintf(stderr, "Can't open or create %s.\n", pidfile); + return 0; +--- sysklogd-1.4.1.orig/syslog.conf.5 ++++ sysklogd-1.4.1/syslog.conf.5 +@@ -64,7 +64,7 @@ + The + .I facility + is one of the following keywords: +-.BR auth ", " authpriv ", " cron ", " daemon ", " kern ", " lpr ", " ++.BR auth ", " authpriv ", " cron ", " daemon ", " ftp ", " kern ", " lpr ", " + .BR mail ", " mark ", " news ", " security " (same as " auth "), " + .BR syslog ", " user ", " uucp " and " local0 " through " local7 . + The keyword +@@ -122,7 +122,7 @@ + This + .BR syslogd (8) + has a syntax extension to the original BSD source, that makes its use +-more intuitively. You may precede every priority with an equation sign ++more intuitive. You may precede every priority with an equation sign + (``='') to specify only this single priority and not any of the + above. You may also (both is valid, too) precede the priority with an + exclamation mark (``!'') to ignore all that priorities, either exact +@@ -300,7 +300,7 @@ + .B syslogd + log all messages that come with either the + .BR info " or the " notice +-facility into the file ++priority into the file + .IR /var/log/messages , + except for all messages that use the + .B mail +--- sysklogd-1.4.1.orig/syslogd.c ++++ sysklogd-1.4.1/syslogd.c +@@ -890,11 +890,11 @@ + dprintf("Checking pidfile.\n"); + if (!check_pid(PidFile)) + { ++ signal (SIGTERM, doexit); + if (fork()) { + /* + * Parent process + */ +- signal (SIGTERM, doexit); + sleep(300); + /* + * Not reached unless something major went wrong. 5 +@@ -1074,9 +1074,9 @@ + (fd_set *) NULL, (struct timeval *) NULL); + if ( restart ) + { ++ restart = 0; + dprintf("\nReceived SIGHUP, reloading syslogd.\n"); + init(); +- restart = 0; + continue; + } + if (nfds == 0) { +@@ -1141,13 +1141,13 @@ + */ + printchopped(from, line, \ + i + 2, finet); +- } else if (i < 0 && errno != EINTR) { ++ } else if (i < 0 && errno != EINTR && errno != EAGAIN) { + dprintf("INET socket error: %d = %s.\n", \ + errno, strerror(errno)); + logerror("recvfrom inet"); + /* should be harmless now that we set + * BSDCOMPAT on the socket */ +- sleep(10); ++ sleep(1); + } + } + #endif +@@ -1216,6 +1216,7 @@ + { + int fd, on = 1; + struct sockaddr_in sin; ++ int sockflags; + + fd = socket(AF_INET, SOCK_DGRAM, 0); + if (fd < 0) { +@@ -1241,6 +1242,24 @@ + close(fd); + return -1; + } ++ /* We must not block on the network socket, in case a packet ++ * gets lost between select and recv, otherise the process ++ * will stall until the timeout, and other processes trying to ++ * log will also stall. ++ */ ++ if ((sockflags = fcntl(fd, F_GETFL)) != -1) { ++ sockflags |= O_NONBLOCK; ++ /* ++ * SETFL could fail too, so get it caught by the subsequent ++ * error check. ++ */ ++ sockflags = fcntl(fd, F_SETFL, sockflags); ++ } ++ if (sockflags == -1) { ++ logerror("fcntl(O_NONBLOCK), suspending inet"); ++ close(fd); ++ return -1; ++ } + if (bind(fd, (struct sockaddr *) &sin, sizeof(sin)) < 0) { + logerror("bind, suspending inet"); + close(fd); +@@ -1275,7 +1294,7 @@ + for (count=i=0; p[i]; i++) + if (p[i] == LIST_DELIMITER) count++; + +- if ((result = (char **)malloc(sizeof(char *) * count+2)) == NULL) { ++ if ((result = (char **)malloc(sizeof(char *) * (count+2))) == NULL) { + printf ("Sorry, can't get enough memory, exiting.\n"); + exit(0); + } +@@ -1539,20 +1558,37 @@ + int fac, prilev, lognum; + int msglen; + char *timestamp; ++#ifdef __gnu_linux__ ++ sigset_t mask; ++#else ++#ifndef SYSV ++ sigset_t omask; ++#endif ++#endif + + dprintf("logmsg: %s, flags %x, from %s, msg %s\n", textpri(pri), flags, from, msg); + ++#ifdef __gnu_linux__ ++ sigemptyset(&mask); ++ sigaddset(&mask, SIGHUP); ++ sigaddset(&mask, SIGALRM); ++ sigprocmask(SIG_BLOCK, &mask, NULL); ++#else + #ifndef SYSV + omask = sigblock(sigmask(SIGHUP)|sigmask(SIGALRM)); + #endif ++#endif + + /* + * Check to see if msg looks non-standard. + */ + msglen = strlen(msg); +- if (msglen < 16 || msg[3] != ' ' || msg[6] != ' ' || +- msg[9] != ':' || msg[12] != ':' || msg[15] != ' ') +- flags |= ADDDATE; ++ flags |= ADDDATE; ++ if ( !(msglen < 16 || msg[3] != ' ' || msg[6] != ' ' || ++ msg[9] != ':' || msg[12] != ':' || msg[15] != ' ')) { ++ msg += 16; ++ msglen -= 16; ++ } + + (void) time(&now); + if (flags & ADDDATE) +@@ -1581,9 +1617,13 @@ + (void) close(f->f_file); + f->f_file = -1; + } ++#ifdef __gnu_linux__ ++ sigprocmask(SIG_UNBLOCK, &mask, NULL); ++#else + #ifndef SYSV + (void) sigsetmask(omask); + #endif ++#endif + return; + } + #ifdef SYSV +@@ -1646,9 +1686,13 @@ + } + } + } ++#ifdef __gnu_linux__ ++ sigprocmask(SIG_UNBLOCK, &mask, NULL); ++#else + #ifndef SYSV + (void) sigsetmask(omask); + #endif ++#endif + } + #if FALSE + } /* balance parentheses for emacs */ +@@ -1839,7 +1883,7 @@ + #else + && e == EBADF) { + #endif +- f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY); ++ f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY|O_NONBLOCK); + if (f->f_file < 0) { + f->f_type = F_UNUSED; + logerror(f->f_un.f_fname); +@@ -2640,7 +2684,7 @@ + f->f_file = open(++p, O_RDWR|O_NONBLOCK); + f->f_type = F_PIPE; + } else { +- f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY, ++ f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY|O_NONBLOCK, + 0644); + f->f_type = F_FILE; + } +--- sysklogd-1.4.1.orig/debian/NMU-Disclaimer ++++ sysklogd-1.4.1/debian/NMU-Disclaimer +@@ -0,0 +1,45 @@ ++Non Maintainer Upload of this Package ++------------------------------------- ++ ++If you plan to work on an NMU for this package, read the following ++closely. It can save you and me some grief. ++ ++ 1. At first, contact the maintainer (i.e. send a mail to ++ joey@debian.org, do not cc or bounce a mail, send a plain mail, ++ not copied to any mailing list or the BTS) and ask about the ++ status of the bug you are considering to work on. ++ ++ 2. In this mail include all information relevant for this problem, ++ i.e. include a description of the bug and not only its bug ++ number. ++ ++ 3. If the maintainer is not able or willing to fix the problem or ++ does not respond within four days, continue with step 4. ++ ++ 4. Work on the bug and prepare a patch. Do not upload into the ++ Debian archive. ++ ++ 5. Send the entire patch, together with enough explanations, to the ++ maintainer for reviewing and ask him for permission of an NMU ++ using this patch. ++ ++ 6. IF AND ONLY IF the maintainer approves the patch (or doesn't ++ respond within four days), upload the NMU to the incoming ++ directory and send the patch to the BTS. If the NMU is not ++ approved, go back to 4. or add the NMU to your homepage, but do ++ not upload it to the Debian archive. ++ ++ 7. Properly sized and well-written patches sent to the BTS are always ++ appreciated, even if they are rejected later. They demonstrate a ++ potential solution which could probably improved into a real ++ solution. ++ ++ 8. NEVER change the way a package is maintained in an NMU, i.e. don't ++ remove dh_* stuff or switch to dh_* respectively. This rule ++ applies to all NMU's, not only to an NMU for this package. ++ ++These rules always apply. They even apply if somebody declares NMUs ++as ok and reduces regular NMU rules to a delay of zero days. Unless ++I'm on vacation or on a show I am reachable via mail, so there is ++hardly a reason not to contact me. ++ +--- sysklogd-1.4.1.orig/debian/changelog ++++ sysklogd-1.4.1/debian/changelog +@@ -0,0 +1,694 @@ ++sysklogd (1.4.1-20) unstable; urgency=low ++ ++ * Added a missing whitespace to the rc file (Closes: Bug#388787, ++ Bug#388378, Bug#388260) ++ * Corrected typo in syslog.conf(5) (Closes: Bug#327200) ++ ++ -- Martin Schulze <joey@infodrom.org> Thu, 28 Sep 2006 20:46:41 +0200 ++ ++sysklogd (1.4.1-19) unstable; urgency=high ++ ++ * Converted init.d scripts to LSB style ++ - accidently closes: Bug#211858 ++ * Removed code that's not required anymore in cron.daily/sysklogd ++ * Fix initial permission (closes: Bug#285500) ++ * Added a special exception for when /var/log/news is a file (closes: ++ Bug#266555) ++ * Tidy up the postinst script ++ * Added devfs awarenes for /dev/xconsole creation (closes: Bug#206066) ++ * Move daemon stop logic into klogd's postinst ++ * Removed both preinst scripts from the distribution ++ ++ -- Martin Schulze <joey@infodrom.org> Mon, 18 Sep 2006 13:15:59 +0200 ++ ++sysklogd (1.4.1-18) unstable; urgency=medium ++ ++ * Removed asm/atomic.h since it is not needed anymore. (closes: ++ Bug#350764) ++ * Fixed typo in NMU-Disclaimer (closes: Bug#225895) ++ * Corrected getconf call in debian/rules to fix lagefile support ++ (closes: Bug#320119) ++ * Applied patch by Joey Hess to prevent klogd to be stopped/started too ++ fast (closes: Bug#284914) ++ * Finish /usr/share/doc transition with patch by Julien Cristau (closes: ++ Bug#337712, Bug#322769, Bug#255590) ++ * Reset the 'restart' flag immediately after entering the restart code. ++ Thanks to Dean Gaudet (closes: Bug#154805) ++ * Added support for /etc/default/{syslogd,klogd} files to contain ++ commandline arguments for syslogd and klogd (closes: Bug#98631, ++ Bug#127579, Bug#241350, Bug#266985) ++ * Added a description of system log level and link to sysctl(8) (closes: ++ Bug#164153) ++ * Acknowledging Joey's NMUs (closes: Bug#347333) ++ ++ -- Martin Schulze <joey@infodrom.org> Thu, 25 May 2006 11:07:52 +0200 ++ ++sysklogd (1.4.1-17) unstable; urgency=high ++ ++ * Use $(getconf LFS_CFLAGS) for large file support ++ * Applied adjusted patch by Miquel van Smoorenburg to fix spurious ++ hanging syslogd in connection with futex and NPTL introduced in recent ++ glibc versions and Linux 2.6 (closes: Bug#301511) ++ ++ -- Martin Schulze <joey@infodrom.org> Wed, 25 May 2005 20:10:31 +0200 ++ ++sysklogd (1.4.1-16) unstable; urgency=medium ++ ++ * applied patch by cph ++ * Applied patch by Colin Phipps so that syslogd doesn't block on the ++ network socket, in case a packet gets lost between select and ++ recv. (closes: Bug#275578) ++ * Applied patch by Anders Henke so that syslog calculates the time for ++ each message (closes: Bug#207619) ++ * Don't create /var/log/news if it's not needed (closes: Bug#266555) ++ ++ -- Martin Schulze <joey@infodrom.org> Sun, 7 Nov 2004 13:10:03 +0100 ++ ++sysklogd (1.4.1-15) unstable; urgency=low ++ ++ * Applied patch by Steve Grubb <linux_4ever@yahoo.com> to adjust memory ++ calculation in crunch_list(). ++ * Removed atomic_t in the usecount field of the module struct for ++ compatibility reasons (closes: Bug#245513) ++ ++ -- Martin Schulze <joey@infodrom.org> Tue, 27 Jul 2004 17:28:49 +0200 ++ ++sysklogd (1.4.1-14) unstable; urgency=medium ++ ++ * Added more trailing newlines to init.d programs (closes: Bug#216110) ++ * Adjusted the use of head to the new behaviour for GNU coreutils ++ (closes: Bug#205535, Bug#172655) ++ * Install /usr/share/sysklogd/dummy to replace /usr/share/doc/sysklogd, ++ since /usr/share/doc should be removable by an admin (Policy 12.3). ++ (closes: Bug#237724) ++ * Added a private module.h with extracted data from Linux 2.2 to replace ++ <linux/module.h> which creates a number parse errors. (closes: Bug#223210) ++ * Added support for invoke-rc.d as written in policy 9.3.3 (closes: ++ Bug#213211, Bug#213585, Bug#216858, Bug#214912) ++ ++ -- Martin Schulze <joey@debian.org> Wed, 31 Mar 2004 18:18:54 +0200 ++ ++sysklogd (1.4.1-13) unstable; urgency=medium ++ ++ * Updated some text in the cronjobs ++ * Direct output of reloading to /dev/null so that no cron log mails will ++ be created defaultly (closes: Bug#213717, Bug#213646) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 2 Oct 2003 19:51:34 +0200 ++ ++sysklogd (1.4.1-12) unstable; urgency=low ++ ++ * On heavily loaded system syslog will not spit out error messages ++ anymore when recvfrom() results in EAGAIN (closes: Bug#188194) ++ * Applied patch by Ryan Murray to make this package build on mipsel ++ again (closes: Bug#191969) ++ * Added O_NONBLOCK to two more locations, since Andreas Barth ++ <aba@not.so.argh.org> believes that it fixes this bug. However, ++ according to the note in open(2) this does not have to have any effect ++ on files other than pipes... (closes: Bug#45245) ++ * Permissions on empty files should also be corrected (closes: Bug#135485) ++ * Corrected the number of bytes denoting 1GB for large logfiles (closes: Bug#138234) ++ * Corrected the handling of the skip pattern (closes: Bug#152247) ++ * Don't cut non-newline trailing characters from the last line anymore ++ (closes: Bug#152248) ++ * Improved init.d scripts so non-existing pid directories are not ++ touched anymore (see Bug#165472) ++ * Whoops, looks like O_TRUNC was missing when opening the pidfile for writing, ++ increasing the chance of left-overs from older pid contents in the ++ file. (closes: Bug#165472) ++ * Don't send SIGHUP to klogd anymore. Only restart it in case the old ++ process got lost somehow. (closes: Bug#168851) ++ * Improved init.d script output (closes: Bug#190328) ++ * Adjusted the use of chown to the new behaviour for GNU coreutils ++ (closes: Bug#205364) ++ * Adjusted the use of head to the new behaviour for GNU coreutils ++ (closes: Bug#205535) ++ * Moved the installation of the signal handler up a little bit so it ++ guaranteed to be available when the child is forked, hence, fixing a ++ race condition. This used to create problems with UML and fast ++ machines. Thanks to Jon Burgess <Jon_Burgess@eur.3com.com> (closes: ++ Bug#211993) ++ ++ -- Martin Schulze <joey@kyllikki.infodrom.north.de> Sun, 28 Sep 2003 12:34:31 +0200 ++ ++sysklogd (1.4.1-11) unstable; urgency=low ++ ++ * Added a disclaimer for those people who plan to NMU this package ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 17 Oct 2002 08:26:04 +0200 ++ ++sysklogd (1.4.1-10) unstable; urgency=low ++ ++ * Removed bashism from rc files (closes: Bug#127406, Bug#127407, ++ Bug#127578, Bug#127372) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 3 Jan 2002 18:22:13 +0100 ++ ++sysklogd (1.4.1-9) unstable; urgency=low ++ ++ * Use a newer Standards-Version ++ * Corrected dependency of sysklogd (closes: Bug#123908) ++ * Transfer section/priority into .deb (closes: Bug#123908) ++ * Fix typo in syslog.conf(5) (closes: Bug#126899) ++ * Added ``-e'' to weekly and daily cron scripts. Beware, from now on ++ they will fail if an error occurs and leave /var/log in an undefined ++ state, not signalling syslogd to reopen files as well. (closes: Bug#123281) ++ * Added some intelligence into /etc/init.d/sysklogd and klogd so the ++ daemons will be restarted when they should only be reloaded but are ++ not running. This could be helpful if after an OOM situation syslogd ++ or klogd were killed by init but cron wasn't. (closes: Bug#126749, Bug#126750) ++ * Create /dev/xconsole in init.d script if it doesn't exist. Hence ++ removing this out of the postinst script. This should help situations ++ when devfs is installed and /dev/ get's removed on system boot, thus ++ /dev/xconsole gets removed as well. (closes: Bug#106535) ++ * Added ftp facility (closes: Bug#100437) ++ * Added missing documentation to syslogd-listfiles(8) (fixes: Bug#48326) ++ * Added a PATH= statement to all init.d files (closes: Bug#47901) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 1 Jan 2002 13:44:42 +0100 ++ ++sysklogd (1.4.1-8) unstable; urgency=low ++ ++ * Added special code to find out if a logfile was rotated within the ++ last 5 hours already, hence should not be rotated again. Hope this ++ satisfies Craig Sanders' request properly. (closes: Bug#39198) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 6 Dec 2001 11:06:53 +0100 ++ ++sysklogd (1.4.1-7) unstable; urgency=low ++ ++ * Fixed override disparity ++ * Added more defines so files larger than 2GB can be created, approved ++ by the glibc maintainer (closes: Bug#120574) ++ * Closing old bug reports (closes: Bug#95230, Bug#34391, Bug#72892) ++ * Added `--large nnn' as argument to syslogd-listfiles so people can ++ decide on their own what a large file is (closes: Bug#39198) ++ * Increased the default definition for large files ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 5 Dec 2001 22:01:23 +0100 ++ ++sysklogd (1.4.1-6) unstable; urgency=low ++ ++ * Corrected path for syslogd in cron scripts (closes: Bug#122261, ++ Bug#121680, Bug#120809) ++ * Already fixed bugs (closes: Bug#121784) ++ * Improved package description (closes: Bug#120755) ++ * Added an improved pattern for news.*, thanks Takuo (closes: Bug#103999) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 4 Dec 2001 09:46:46 +0100 ++ ++sysklogd (1.4.1-5) unstable; urgency=low ++ ++ * Fix the override disparity ++ * Removed superflous Priority ++ * Removed =VER= string from syslogd-listfiles (closes: Bug#102998) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 21 Nov 2001 23:00:29 +0100 ++ ++sysklogd (1.4.1-4) unstable; urgency=low ++ ++ * Added convenience code to support $DEB_BUILD_OPTIONS ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 21 Nov 2001 18:41:23 +0100 ++ ++sysklogd (1.4.1-3) unstable; urgency=medium ++ ++ * Be more anal about whether sysklogd is installed or not in our cron ++ scripts (closes: Bug#100319) ++ * Added missing newline in init.d script upon restart (closes: Bug#95554) ++ * Moved stop code to prerm (closes: Bug#120249, Bug#96355, Bug#105441, ++ Bug#105442, Bug#109470) ++ * Corrected broken character in klogd.8 (closes: Bug#75932) [repeat, due ++ to typo] ++ * Added dependency to klogd so people who upgrade their sysklogd package ++ won't lose it anymore (closes: Bug#93729) [repeat, another bug#] ++ * auth.* files are only rotated daily (closes: Bug#102138) ++ * Changed -p to -s in documentation (closes: Bug#108473) ++ * Updated documentation to reflect the current location of the mailing ++ list ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 20 Nov 2001 20:48:32 +0100 ++ ++sysklogd (1.4.1-2) unstable; urgency=low ++ ++ * Corrected location of GPL (closes: Bug#90582) ++ * Added section and priority for binary packages ++ * Added dependency to klogd so people who upgrade their sysklogd package ++ won't lose it anymore (closes: Bug#93922) ++ * Added code snipped to stop klogd/syslogd upon removal (closes: ++ Bug#90534, Bug#90970) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sat, 21 Apr 2001 15:06:02 +0200 ++ ++sysklogd (1.4.1-1) unstable; urgency=low ++ ++ * New upstream source (closes: Bug#87819, Bug#70790, Bug#32580, ++ Bug#62358, Bug#71631) ++ * Upstream: Doesn't re-set log-level if not requested (closes: ++ Bug#76170, Bug#76170, Bug#85289) ++ * Upstream: Ignore zero bytes (closes: Bug#85478, Bug#85478, Bug#41068) ++ * Upstream: Corrected documentation for `-s' (closes: Bug#87020) ++ * Upstream: test for existence of syslogd-listfiles before calling ++ them. This got lost due to 1.4.0 brokennes which was packaged and ++ removed some hours later (closes: Bug#84872, Bug#66712) ++ * Applied patch by Tommi Virtanen <tv@debian.org> splitting the package ++ into `sysklogd' and `klogd' (closes:Bug#35586, Bug#72043, Bug#74864, ++ Bug#72122) ++ * Provide / depend on virtual packages system-log-daemon ++ and linux-kernel-log-daemon (closes: Bug#67604) ++ * Applied patch from Tim Janik <timj@gtk.org> to support `-s pattern' in ++ syslogd-listfiles ++ * Transition to FHS, i.e. /usr/share/doc instead of /usr/doc and ++ /usr/share/man instead of /usr/man (closes: Bug#79250, Bug#80771) ++ * Use --exec for stopping services (closes: Bug#76757) ++ * Corrected broken character in klogd.8 (cloes: Bug#75932) ++ * Only rotate logfiles with size greater than zero. This got lost due ++ to 1.4.0 brokennes which was packaged and removed some hours later ++ (closes: Bug#74993, Bug#49824) ++ * Added another note about modificability of cronjobs (closes: ++ Bug#88741) ++ * Since klogd replaces parts of sysklogd a proper Replaces line is there ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 11 Mar 2001 22:30:53 +0100 ++ ++sysklogd (1.4-1) stable unstable; urgency=medium, closes=70790 32580 49824 62358 66712 71631 ++ ++ * Added paragraph to binary target ++ * New upstream version (closes: Bug#70790, Bug#32580, Bug#62358, ++ Bug#71631) ++ * Only rotate logfiles that have a size greater than zero (closes: ++ Bug#49824) ++ * Test for existence of syslogd-listfiles before calling it (closes: ++ Bug#66712) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 18 Sep 2000 16:02:05 +0200 ++ ++sysklogd (1.3-33) unstable; urgency=medium, closes=38977 ++ ++ * chmod 0640 /dev/xconsole regardless of its existence (closes: Bug#38977) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 12 Sep 1999 20:47:53 +0200 ++ ++sysklogd (1.3-32) unstable; urgency=low, closes=35408 34733 36198 ++ ++ * Fixed typo in syslogd-listfiles (closes: Bug#35408) ++ * Removed superflous call to utmpname() (closes: Bug#34733) ++ * Added --ignore-size and limit for rotating log files at 2MB to ++ syslogd-listfiles (closes: Bug#36198) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 23 May 1999 10:40:33 +0200 ++ ++sysklogd (1.3-31) frozen unstable; urgency=low, closes=28629 30093 31494 30462 ++ ++ * ``-m 0'' turns off -- MARK -- now. (closes: Bug#28629, Bug#31494) ++ * Changed Greg's e-mail address to represent his current one. ++ * Shortened line length for kernel logging slightly. ++ * Corrected return value of AddModule (closes: Bug#30093) ++ * Finally fixed an error with `-a' processing, thanks to Topi Miettinen ++ <tom@medialab.sonera.net> (closes: Bug#30462) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 19 Jan 1999 23:56:07 +0100 ++ ++sysklogd (1.3-30) unstable; urgency=low, closes=28128 28122 24893 ++ ++ * Contains more patches from Topi Miettinen. ++ * Fixed two mistakes from the most recent version ++ * Fixed fd leak problem. Thanks to Topi for detecting it ++ * Ouch! Looks like the released package again is broken. It worked ++ locally. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 18 Oct 1998 20:38:22 +0200 ++ ++sysklogd (1.3-29) unstable; urgency=low, closes=24893 ++ ++ * Re-Applied patch provided vom Topi Miettinen with regard to the people ++ from OpenBSD. This provides the additional '-a' argument used for ++ specifying additional UNIX domain sockets to listen to. This is been ++ used with chroot()'ed named's for example. An example is described at ++ http://www.psionic.com/papers/dns.html. This time the patch doesn't ++ stall syslogd. Thanks to Topi Miettinen <tom@medialab.sonera.net> ++ (closes: Bug#24893) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sat, 17 Oct 1998 20:23:00 +0200 ++ ++sysklogd (1.3-28) unstable; urgency=low ++ ++ * Added manpage for syslog-facility, also written by Raphaël Hertzog ++ * Reverted support for multiple Unix domain sockets since it caused ++ syslogd to not accept more sockets after a certain (undefinitve) ++ time. (opens: Bug#24893) ++ * The complete code is still present, search for `Bug#24893' ++ * Commented out `-a' in the syslogd.8 manpage ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 15 Oct 1998 19:35:26 +0200 ++ ++sysklogd (1.3-27) frozen unstable; urgency=low, closes=21212 11917 21606 24609 25835 26015 24648 20135 23502 24893 24894 ++ ++ * Postinst will create files with correct file modes (closes: Bug#21212) ++ * Made /dev/xconsole mode 0640 and root.adm (closes: Bug#11917) ++ * Changed priority of exit message from LOG_ERR to LOG_INFO (closes ++ Bug#21606) ++ * The code now is compilable without SYSLOG_INET again. Thanks to ++ Enrik Berkhan <enrik@rzstud1.akk.org>. ++ * Added support for TESTING define which will turn syslogd into ++ stdio-mode used for debugging. ++ * Reworked the initialization/fork code. Now the parent ++ process activates a signal handler which the daughter process will ++ raise if it is initialized. Only after that one the parent process ++ may exit. Otherwise klogd might try to flush its log cache while ++ syslogd can't receive the messages yet. (closes: Bug#24609) ++ * Fixed typo in /etc/syslog.conf (closes: Bug#25835) ++ * Modified pre- and postinst scripts to set +e before executing external ++ scripts. This is a workaround against a bug in bash (Bug#23857). ++ Bash exports the errexit (-e) flag if allexport (-a) has been set. The ++ bug occurs even if allexport is being _re_set. (closes: Bug#26015) ++ * Modified ksym::CheckVersion() ++ . Use shift to decode the kernel version ++ . Compare integers of kernel version ++ . extract major.minor.patch from utsname.release via sscanf() ++ The reason lays in possible use of kernel flavours which modify ++ utsname.release but no the Version_ symbol. (closes: Bug#20135) ++ * Corrected klogd.c in order to support the new address space for late ++ 2.1 kernels. Some support for unsigned long in contrary to int was ++ missing. (closes: Bug#23502) ++ * Applied patch provided vom Topi Miettinen with regard to the people ++ from OpenBSD. This provides the additional '-a' argument used for ++ specifying additional UNIX domain sockets to listen to. This is been ++ used with chroot()'ed named's for example. An example is described at ++ http://www.psionic.com/papers/dns.html. Thanks to Topi Miettinen ++ <tom@medialab.sonera.net> (closes: Bug#24893) ++ * Added support for `ftp' log facility which was introduced by glibc ++ version 2. Thanks to netgod and Flood from #Debian. ++ * Code cleanups with regard to bsd -> posix transition and stronger ++ security (buffer length checking). Thanks to Topi Miettinen ++ <tom@medialab.sonera.net> (closes: Bug#24894) ++ . index() --> strchr() ++ . sprintf() --> snprintf() ++ . bcopy() --> memcpy() ++ . bzero() --> memset() ++ . UNAMESZ --> UT_NAMESIZE ++ . sys_errlist --> strerror() ++ * Added support for setutent()/getutent()/endutend() instead of binary ++ reading the UTMP file. This is the the most portable way. Thanks to ++ Topi Miettinen <tom@medialab.sonera.net>. ++ * Avoid logging of SIGCHLD when syslogd is in the process of exiting and ++ closing its files. Again thanks to Topi. ++ * Added /usr/sbin/syslog-facility, written by Raphaël Hertzog ++ <hertzog@debian.org>. It opens a way for other packages to add and ++ remove logfiles/facilities. ++ * Modified printline() to support 8bit characters - such as russion ++ letters. Thanks to Vladas Lapinskas <lapinskas@mail.iae.lt>. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 12 Oct 1998 22:24:04 +0200 ++ ++sysklogd (1.3-26) frozen unstable; urgency=low, closes=20903 20765 20556 20507 20647 20220 ++ ++ * Fixed typos in syslogd-listfiles(1), thanks to Francesco Potorti` ++ <F.Potorti@cnuce.cnr.it> (closes: Bug#20903) ++ * Corrected email address for Shane Alderton (closes: Bug#20765) ++ * Fixed manpage to not reflect reverse implementated SIGALRM signal ++ handler (closes: Bug#20647) ++ * Modified behaviour with including <sys/module.h> (closes: Bug#20556) ++ * Added correct prototype for llseek() (closes: Bug#20507, Bug#20220) ++ * Added more log information if problems occurr while reading a system ++ map file. ++ * Modified System.map read function to try all possible map files until ++ a file with matching version is found. ++ * Added Debian release to klogd ++ * Switched to fgets() as gets() is not buffer overrun secure. ++ * Modified loop for detecting the correct system map. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 16 Apr 1998 19:28:05 +0200 ++ ++sysklogd (1.3-25) unstable; urgency=low, closes=19454 19145 1914 ++ ++ * Corrected permissions on packaging control files (closes: Bug#19414) ++ * Removed kill statements from rc file (closes: Bug#19454, Bug#19145) ++ * Applied patch from Pedro Manuel Rodrigues <pmanuel@cindy.fe.up.pt> to ++ let klogd work togther with >2GB address space. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 19 Mar 1998 23:56:09 +0100 ++ ++sysklogd (1.3-24) unstable; urgency=low, closes=18124 ++ ++ * Fixed tiny mistake which refused the MARK facility to work properly ++ (closes: Bug#18124) ++ * Corrected Topi's patch as it prevented forwarding during startup due ++ to an unknown LogPort. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 25 Feb 1998 13:19:27 +0100 ++ ++sysklogd (1.3-23) unstable; urgency=low ++ ++ * Corrected FSF's address (lintian) ++ * Implemented force-reload (lintian) ++ * Standards-Version: 2.4.0.0 ++ * Applied patch from Topi Miettinen <Topi.Miettinen@ml.tele.fi> to open ++ the UDP socket only if it is really needed. ++ * Updated sysklogd(8) manpage ++ * Added notes to mailing list ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 24 Feb 1998 00:39:10 +0100 ++ ++sysklogd (1.3-22) unstable; urgency=low, closes=17192 17385 17601 ++ ++ * Included a real fix to the %'s problem (fixes: Bug#17192) ++ * Another patch for Linux/alpha by Christopher C Chimelis ++ <chris@classnet.med.miami.edu> (fixes: Bug#17385) ++ * Removed killall-statement from postinst. Thanks to James Troup for ++ reporting it. ++ * Added chdir("/") to both daemons (fixes: Bug#17601) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 29 Jan 1998 21:56:40 +0100 ++ ++sysklogd (1.3-21) unstable; urgency=low, closes=17159 ++ ++ * Fixed small typo in syslogd-listfiles (Bug#17159) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 15 Jan 1998 23:22:57 +0100 ++ ++sysklogd (1.3-20) unstable; urgency=low, closes=17000 ++ ++ * Corrected some code that caused klogd to dump core when receiving some ++ special messages from 2.1.78. Thanks to Chu-yeon Park ++ <kokids@doit.ajou.ac.kr> for informing me. ++ * Fixed bug that caused klogd to die if there is no System.map ++ available. ++ * Added -x switch to omit EIP translation and System.map evaluation. ++ Thanks to Florian La Roche <florian@knorke.saar.de> ++ * Fixed small bugs in F_FORW_UNKN meachanism. Thanks to Torsten Neumann ++ <torsten@londo.rhein-main.de> for pointing me to it. ++ * Fixed problem with klogd not being able to be built on a kernel newer ++ than 2.1.18. Worked in a patch from Alessandro Suardi <asuardi@uninetcom.it> ++ * Fixed small typo in syslogd-listfiles ++ * Corrected debug output concerning remote receiption ++ * Removed race condition in syslogd-listfiles ++ * Modified logfile detection routine to take care of double listed ++ logfiles. Thanks to Roman Hodek <roman@debian.org> for providing an ++ appropriate patch. (Bug#17000) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 13 Jan 1998 01:59:56 +0100 ++ ++sysklogd (1.3-19) unstable; urgency=low, closes=16643 16769 16796 16828 16148 14776 ++ ++ * Used better regexp for detecting sensitive data. Thanks a lot to ++ Susanne Schmidt <banshee@linux.de> for providing it. ++ * Fixed ownership of /usr/doc/sysklogd/copyright and readme (Bug#16643) ++ * Corrected Standards-Version to 2.3.0.1 (Bug#16769) ++ * Reworked one line of an older patch because it prevented syslogd from ++ binding the socket with the result that no messages were forwarded to ++ other hosts. ++ * Changed the behaviour of klogd when receiving a terminate signal. Now ++ the program terminates immediately instead of completing the receipt of ++ a kernel message. (Bug#16796, Bug#16828, Bug#16148) ++ * Noticed a bug which was closed by 1.3-18 (Bug#14776) ++ * Changed Maintainer address to joey@debian.org ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 9 Jan 1998 00:58:36 +0100 ++ ++sysklogd (1.3-18) unstable; urgency=low, closes=11731 12009 13506 14329 14521 14610 15840 15336 ++ ++ * Added test in postinst if user and group exist. Christoph Lameter run ++ into trouble upgrading a RedHat system. ++ * Fixed little mistake which prevented klogd from accepting a console ++ log level of 8 to get <7> alias KERN_DEBUG displayed. ++ * Linked against libc6 (Bug#11731) ++ * Added SHELL=/bin/bash to rules as Herbert Xu suggested ++ * Corrected syslog.conf(5) manpage ++ * syslogd resets the ignore priority flag now. Thanks to Herbert ++ Thielen. (Bug#12009) ++ * Fixed bug that caused syslogd to write into wrong files under some ++ race conditions. Thanks to Herbet Xu. (Bug#13506) ++ * /var/log/auth.log will only be touch if needed (Bug#14329) ++ * debian/conffiles is treated like a document (Bug#14521) ++ * Added script for generic logfile detection and rotation and included ++ that in cron scripts, included also its manpage (Bug#14610) ++ * Modified restart messages in /etc/init.d/sysklogd (Bug#15840) ++ * klogd will first try to load /boot/System.map-$ver, then ++ /boot/System.map, then /System.map-$ver and after that /System.map ++ * Modified ExpandKadds() because there were some problems accessing ++ memory r/w. (Bug#15336) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 2 Jan 1998 03:31:09 +0100 ++ ++sysklogd (1.3-17) unstable; urgency=low ++ ++ * Fixed stupid bug which caused klogd to eat up 90% cpu time. ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 25 Jun 1997 15:22:29 +0200 ++ ++sysklogd (1.3-16) unstable; urgency=low ++ ++ * Included Miquel's patches which allows continuation line support ++ for syslogd. Corrected syslog.conf(5) manpage. Improved ++ syslog.conf file. Thanks to Miquel van Smoorenburg ++ <miquels@cistron.nl> for dropping in these patches. ++ * Added /var/log/syslog as a daily rotated logfile which contains ++ everything except auth.* ++ * ksym.c: Added #1 and #2 to some error messages in order to being able ++ to divide them (ulmo@Q.Net) ++ * Improved postinst script (Thanks to Miquel van Smorrenborg for ideas) ++ * klogd now also reads /System.map-<version> and ++ /boot/System.map-<version> (Bug#7210) ++ * syslogd,klogd: made DEBRELEASE optional to support a non-Debian ++ release as well. ++ * Corrected freeing of logfiles. ++ * Removed delay of 10 seconds. (Bug#8104, Bug#8400) ++ * Modified permissions of logfiles from 644 to 640 and 640 to 600 for ++ security aspects. ++ * Corrected syslog.conf(5) manpage (Bug#9779) ++ * Found upstream patches for 1.3.1 to 1.3.3 which are now included. ++ These also include some patches for glibc and Alpha. ++ * Included patch to modules package to support better debugging ++ * Added patch from Leland Olds which fixes a buffer overrun and improved ++ symbol lookup. (Bug#4875) ++ * Some more glibc patches made by Michael Alan Dorman ++ <mdorman@debian.org>. (Bug#8362, Bug#8763) ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 15 Jun 1997 19:37:13 +0200 ++ ++sysklogd (1.3-15) unstable; urgency=low ++ ++ * Added /var/log/mail.log as a logfile ++ * Corrected Description field (Bug#7624) ++ * Added read statement in postinst script (Bug#8243) ++ ++ -- Martin Schulze <joey@infodrom.north.de> Wed, 26 Mar 1997 13:32:24 +0100 ++ ++sysklogd (1.3-14) unstable; urgency=low ++ ++ * Debugging syslogd now shows facility.priority ++ * Minor fixes ++ * Modified syslogd.c to not kill itself which confuses bash 2.0 ++ ++ -- Martin Schulze <joey@infodrom.north.de> Sun, 23 Feb 1997 12:23:55 +0100 ++ ++sysklogd (1.3-13) stable; urgency=low ++ ++ * Made /etc/init.d/sysklogd more verbose ++ * Minor fixes ++ * Uncompressed copyright, but compressed /usr/doc/sysklogd-1.3.16/readme ++ ++ -- Martin Schulze <joey@debian.org> Sat, 8 Feb 1997 14:12:29 +0100 ++ ++sysklogd (1.3-12) stable; urgency=HIGH ++ ++ * Converted to Standards-Version 2.1.1.2 ++ * init.d/sysklogd: added "sleep 1" ++ * syslogd won't hassle anymore if it can't access logfils. Patched by ++ me. This adresses Bug#5865. ++ * /etc/init.d/sysklogd: Modified so that one can use commandline ++ arguments for both syslogd and klogd. ++ * debian.rules: Installed ChangeLog ++ ++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 30 Jan 1997 22:48:59 +0100 ++ ++Mon Now 25 10:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * modified preinst to work if /etc/init.d/sysklogd doesn't exist ++ because of a failure ++ ++Mon Sep 10 10:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * ksyms.c: klogd will first look at /System.map (Bug#4403, #4459) ++ ++Fri Aug 16 21:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * debian.rules: Changed permissions for syslogd and klogd to 755 ++ (Bug#4049) ++ ++Mon Aug 12 10:40:05 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * Corrected permissions of documentation. Thanks to Dan ++ Quinlan. (Bug#4090) ++ ++Mon Aug 5 22:47:40 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * syslogd.c: If you haven't set your domainname, syslogd will dump ++ core upon startup. Fixed. Thanks to Leeland Lucius ++ <llucius@millcomm.com> for reporting and patching it. (Bug#3526) ++ ++ * /etc/init.d/sysklogd, /etc/cron.weekly/sysklogd: slight ++ improvements. Thanks to Bernd Eckenfels <ecki@tapac.inka.de>. ++ ++Fri Aug 2 11:03:30 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * modified weekly cron script, thanks to Todd Tyrone Fries <todd@miango.com> ++ ++Fri Jun 14 10:42:26 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * ksyms.c: increased the size of vstring, because since Linux ++ major versions are decoded with n * 65536 and we now have 2.0, the ++ field was too short. ++ ++Tue May 28 01:02:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * syslogd.c: Corrected behaviour of blocking pipes - i.e. the ++ whole system hung. Michael Nonweiler <mrn20@hermes.cam.ac.uk> has ++ sent us a patch to correct this. A new logfile type F_PIPE has ++ been introduced. ++ ++Thu May 23 08:39:54 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * postinst: Corrected killall-statement, Thanks to Miquel van ++ Smoorenborg for the hint ++ ++Mon May 20 00:14:35 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * postinst: added a killall to remove an existing syslogd. It ++ could exist because of Bug#2836. ++ ++Sun May 12 13:36:55 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * removed auth.* from /dev/xconsole ++ ++ * klogd won't log old messages anymore (Bug#2337) ++ I have applied the patch from Chris Hanson. ++ ++ * I have put another start-stop-daemon call in the startup script ++ so the configs are reloaded on startup. This should ++ help. (Bug#2552) ++ ++ * Sysklogd takes care of this and createst /dev/xconsole if it ++ doesn't exist during installation. (Bug#2683) ++ ++ * I have corrected permissions of /dev/xconsole. (Bug#2837) ++ ++ * defined /etc/cron.weekly/sysklogd as a conffile (Bug#2950, Bug#2960) ++ ++ * introduced two binary packages: syslogd and sysklogd which ++ exclude each other ++ ++Sun Apr 21 17:56:03 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * Corrected preinst (Bug#2722, Bug#2725, Bug#2726) ++ ++ * Linked against libc 5.2.18 (Bug#2723, Bug#2725) ++ ++ * Corrected control file to fit with newer dpkgs ++ ++Wed Apr 17 21:40:56 1996 Martin Schulze <joey@finlandia.infodrom.north.de> ++ ++ * Added Debian packaging information ++ ++ +--- sysklogd-1.4.1.orig/debian/conffiles ++++ sysklogd-1.4.1/debian/conffiles +@@ -0,0 +1,5 @@ ++/etc/default/syslogd ++/etc/syslog.conf ++/etc/init.d/sysklogd ++/etc/cron.daily/sysklogd ++/etc/cron.weekly/sysklogd +--- sysklogd-1.4.1.orig/debian/conffiles.klogd ++++ sysklogd-1.4.1/debian/conffiles.klogd +@@ -0,0 +1,2 @@ ++/etc/default/klogd ++/etc/init.d/klogd +--- sysklogd-1.4.1.orig/debian/control ++++ sysklogd-1.4.1/debian/control +@@ -0,0 +1,32 @@ ++Source: sysklogd ++Section: admin ++Priority: important ++Maintainer: Martin Schulze <joey@debian.org> ++Standards-Version: 3.5.6.0 ++ ++Package: sysklogd ++Architecture: any ++Section: admin ++Depends: ${shlibs:Depends}, klogd | linux-kernel-log-daemon ++Conflicts: syslogd ++Provides: syslogd, system-log-daemon ++Replaces: syslogd ++Description: System Logging Daemon ++ This package implements the system log daemon, which is an enhanced ++ version of the standard Berkeley utility program. It is responsible ++ for providing logging of messages received from programs and facilities ++ on the local host as well as from remote hosts. ++ ++Package: klogd ++Architecture: any ++Section: admin ++Depends: ${shlibs:Depends}, sysklogd | system-log-daemon ++Conflicts: sysklogd (<= 1.3-33) ++Provides: linux-kernel-log-daemon ++Replaces: sysklogd ++Description: Kernel Logging Daemon ++ The klogd daemon listens to kernel message sources and is responsible ++ for prioritizing and processing operating system messages. The klogd ++ daemon can run as a client of syslogd or optionally as a standalone ++ program. Klogd can now be used to decode EIP addresses if it can ++ determine a System.map file. +--- sysklogd-1.4.1.orig/debian/copyright ++++ sysklogd-1.4.1/debian/copyright +@@ -0,0 +1,50 @@ ++This is the Debian GNU/Linux prepackaged version of Linux' system and ++kernel logging daemons. ++ ++This package was put together by Martin Schulze <joey@debian.org>, ++from sources obtained from: ++ ++ http://www.infodrom.org/projects/sysklogd/download/sysklogd-1.4.1.tar.gz ++ ++Recent versions are Debian versions that may be also be found at ++ ++ http://www.infodrom.org/projects/sysklogd/ ++ ++syslogd is under Berkeley copyright, klogd is under GPL. ++ ++ Copyright (C) 1994-96 Greg Wettstein <greg@wind.enjellic.com> ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; version 2 dated June, 1991. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ ++On Debian GNU/Linux systems, the complete text of the GNU General ++Public License can be found in `/usr/share/common-licenses/GPL'. ++ ++There is a mailing list covering this package and syslog in general. ++The lists address is infodrom-sysklogd@lists.infodrom.org . ++ ++To subscribe to this list, ++ ++ . send a mail to infodrom-sysklogd-request@lists.infodrom.org with ++ the word "subscribe" as subject, or ++ ++ . send a mail to majordomo@lists.infodrom.org with the body of ++ "subscribe infodrom-sysklogd". ++ ++The list will be archived publically at ++<http://www.infodrom.org/Mail-Archive/infodrom-sysklogd>. ++ ++The source of the Debian package is managed through CVS. It is publically ++available at <http://cvs.infodrom.org/sysklogd/?cvsroot=debian> or as ++<:pserver:anonymous@cvs.infodrom.org/var/cvs/debian/sysklogd/>. ++ +--- sysklogd-1.4.1.orig/debian/cron.daily ++++ sysklogd-1.4.1/debian/cron.daily +@@ -0,0 +1,39 @@ ++#! /bin/sh ++ ++# sysklogd Cron script to rotate system log files daily. ++# ++# If you want to rotate other logfiles daily, edit ++# this script. An easy way is to add files manually, ++# to add -a (for all log files) to syslogd-listfiles and ++# add some grep stuff, or use the -s pattern argument to ++# specify files that must not be listed. ++# ++# This is a configration file. You are invited to edit ++# it and maintain it on your own. You'll have to do ++# that if you don't like the default policy ++# wrt. rotating logfiles (i.e. with large logfiles ++# weekly and daily rotation may interfere). If you edit ++# this file and don't let dpkg upgrade it, you have full ++# control over it. Please read the manpage to ++# syslogd-listfiles. ++# ++# Written by Martin Schulze <joey@debian.org>. ++# $Id: cron.daily,v 1.13 2006-09-18 09:42:30 joey Exp $ ++ ++test -x /usr/sbin/syslogd-listfiles || exit 0 ++test -x /sbin/syslogd || exit 0 ++test -f /usr/share/sysklogd/dummy || exit 0 ++ ++set -e ++ ++cd /var/log ++for LOG in `syslogd-listfiles` ++do ++ if [ -s $LOG ]; then ++ savelog -g adm -m 640 -u root -c 7 $LOG >/dev/null ++ fi ++done ++ ++# Restart syslogd ++# ++/etc/init.d/sysklogd reload-or-restart > /dev/null +--- sysklogd-1.4.1.orig/debian/cron.daily.klogd ++++ sysklogd-1.4.1/debian/cron.daily.klogd +@@ -0,0 +1,47 @@ ++#! /bin/sh ++ ++binpath=/sbin/klogd ++pidfile=/var/run/klogd.pid ++ ++test -x $binpath || exit 0 ++ ++ ++running() ++{ ++ # No pidfile, probably no daemon present ++ # ++ if [ ! -f $pidfile ] ++ then ++ return 1 ++ fi ++ ++ pid=`cat $pidfile` ++ ++ # No pid, probably no daemon present ++ # ++ if [ -z "$pid" ] ++ then ++ return 1 ++ fi ++ ++ if [ ! -d /proc/$pid ] ++ then ++ return 1 ++ fi ++ ++ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1` ++ ++ # No syslogd? ++ # ++ if [ "$cmd" != "$binpath" ] ++ then ++ return 1 ++ fi ++ ++ return 0 ++} ++ ++if ! running ++then ++ sh /etc/init.d/klogd start > /dev/null ++fi +--- sysklogd-1.4.1.orig/debian/cron.weekly ++++ sysklogd-1.4.1/debian/cron.weekly +@@ -0,0 +1,38 @@ ++#! /bin/sh ++ ++# sysklogd Cron script to rotate system log files weekly. ++# ++# If you want to rotate logfiles daily, edit ++# this script and /etc/cron.daily/sysklogd to get ++# the logfiles in sync (they must not occur in both ++# files). ++# ++# This is a configration file. You are invited to edit ++# it and maintain it on your own. You'll have to do ++# that if you don't like the default policy ++# wrt. rotating logfiles (i.e. with large logfiles ++# weekly and daily rotation may interfere). If you edit ++# this file and don't let dpkg upgrade it, you have full ++# control over it. Please read the manpage to ++# syslogd-listfiles. ++# ++# Written by Ian A. Murdock <imurdock@debian.org>. ++# $Id: cron.weekly,v 1.10 2004-03-31 16:18:15 joey Exp $ ++ ++test -x /usr/sbin/syslogd-listfiles || exit 0 ++test -x /sbin/syslogd || exit 0 ++test -f /usr/share/sysklogd/dummy || exit 0 ++ ++set -e ++ ++cd /var/log ++for LOG in `syslogd-listfiles --weekly` ++do ++ if [ -s $LOG ]; then ++ savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null ++ fi ++done ++ ++# Restart syslogd ++# ++/etc/init.d/sysklogd reload-or-restart > /dev/null +--- sysklogd-1.4.1.orig/debian/default ++++ sysklogd-1.4.1/debian/default +@@ -0,0 +1,13 @@ ++# ++# Top configuration file for syslogd ++# ++ ++# ++# Full documentation of possible arguments are found in the manpage ++# syslogd(8). ++# ++ ++# ++# For remote UDP logging use SYSLOGD="-r" ++# ++SYSLOGD="" +--- sysklogd-1.4.1.orig/debian/default.klogd ++++ sysklogd-1.4.1/debian/default.klogd +@@ -0,0 +1,15 @@ ++# ++# top configuration file for klogd ++# ++ ++# ++# Full documentation of possible arguments are found in the manpage ++# klogd(8). ++# ++ ++# ++# Use KLOGD="-k /boot/System.map-$(uname -r)" to specify System.map ++# -c 4 to alter the kernel console log level (deprecated) ++# use sysctl instead ++# ++KLOGD="-x" +--- sysklogd-1.4.1.orig/debian/dummy ++++ sysklogd-1.4.1/debian/dummy +@@ -0,0 +1,4 @@ ++Do not remove this file or your log files won't be rotated anymore. ++This is a control file to ensure that the sysklogd package is ++installed so that the cronjobs don't have to parse the dpkg database ++for each run. +--- sysklogd-1.4.1.orig/debian/postinst ++++ sysklogd-1.4.1/debian/postinst +@@ -0,0 +1,83 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "configure" ] ++then ++ case $2 in ++ 1.2-*) ++cat<<EOT ++The default behaviour of syslogd has altered from 1.2 to 1.3. By default ++*no* messages from the UDP port are accepted. ++ ++Read the documentation in /usr/doc/sysklogd carefully. Some important ++things have been changed! ++ ++Press [Enter] to continue ++EOT ++ read xyz ++ ;; ++ esac ++fi ++ ++if [ "$1" = "configure" ] ++then ++ ++ # Prepare for takeover of the host ++ if [ -z "$2" ] ++ then ++ if [ ! -e /var/log/news ] \ ++ && grep -q '^[^#].*/var/log/news/' /etc/syslog.conf \ ++ && grep -q ^news: /etc/passwd \ ++ && grep -q ^news: /etc/group ++ then ++ mkdir /var/log/news ++ chmod 2755 /var/log/news ++ chown news:news /var/log/news ++ fi ++ ++ # Create logfiles with correct file modes ++ if [ -z "$2" ] ++ then ++ for LOG in `syslogd-listfiles --all` ++ do ++ if [ ! -f $LOG ] ++ then ++ touch $LOG ++ fi ++ chown root:adm $LOG ++ chmod 640 $LOG ++ done ++ fi ++ fi ++ ++ if [ -f /etc/init.d/sysklogd -a -n "$2" ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d sysklogd stop ++ else ++ sh /etc/init.d/sysklogd stop ++ fi ++ set -e ++ fi ++ ++ update-rc.d sysklogd defaults 10 90 >/dev/null ++ ++ # restarting daemon ++ # ++ if [ -f /etc/init.d/sysklogd ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d sysklogd start ++ else ++ sh /etc/init.d/sysklogd start ++ fi ++ set -e ++ fi ++fi ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/postinst.klogd ++++ sysklogd-1.4.1/debian/postinst.klogd +@@ -0,0 +1,36 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "configure" ] ++then ++ if [ -f /etc/init.d/klogd -a -n "$2" ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d klogd stop ++ else ++ sh /etc/init.d/klogd stop ++ fi ++ set -e ++ fi ++ ++ update-rc.d klogd defaults 11 89 >/dev/null ++ ++ # restarting daemon ++ # ++ if [ -f /etc/init.d/klogd ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d klogd start ++ else ++ sh /etc/init.d/klogd start ++ fi ++ set -e ++ fi ++fi ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/postrm ++++ sysklogd-1.4.1/debian/postrm +@@ -0,0 +1,8 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "purge" ] ++then ++ update-rc.d sysklogd remove >/dev/null ++fi +--- sysklogd-1.4.1.orig/debian/postrm.klogd ++++ sysklogd-1.4.1/debian/postrm.klogd +@@ -0,0 +1,8 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "purge" ] ++then ++ update-rc.d klogd remove >/dev/null ++fi +--- sysklogd-1.4.1.orig/debian/preinst ++++ sysklogd-1.4.1/debian/preinst +@@ -0,0 +1,21 @@ ++#! /bin/sh ++ ++set -e ++ ++dpkg --assert-support-predepends ++ ++if [ "$1" = "upgrade" -a -f /etc/init.d/sysklogd ]; then ++ if [ -f /etc/init.d/sysklogd ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d sysklogd stop ++ else ++ sh /etc/init.d/sysklogd stop ++ fi ++ set -e ++ fi ++fi ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/preinst.klogd ++++ sysklogd-1.4.1/debian/preinst.klogd +@@ -0,0 +1,21 @@ ++#! /bin/sh ++ ++set -e ++ ++dpkg --assert-support-predepends ++ ++if [ "$1" = "upgrade" -a -f /etc/init.d/klogd ]; then ++ if [ -f /etc/init.d/klogd ] ++ then ++ set +e ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d klogd stop ++ else ++ sh /etc/init.d/klogd stop ++ fi ++ set -e ++ fi ++fi ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/prerm ++++ sysklogd-1.4.1/debian/prerm +@@ -0,0 +1,19 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/sysklogd ] ++then ++ rm -f /usr/doc/sysklogd ++fi ++ ++if [ "$1" = "purge" -o "$1" = "remove" ] ++then ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d sysklogd stop ++ else ++ sh /etc/init.d/sysklogd stop ++ fi ++fi ++ +--- sysklogd-1.4.1.orig/debian/prerm.klogd ++++ sysklogd-1.4.1/debian/prerm.klogd +@@ -0,0 +1,19 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/klogd ] ++then ++ rm -f /usr/doc/klogd ++fi ++ ++if [ "$1" = "purge" -o "$1" = "remove" ] ++then ++ if [ -x /usr/sbin/invoke-rc.d ] ++ then ++ invoke-rc.d klogd stop ++ else ++ sh /etc/init.d/klogd stop ++ fi ++fi ++ +--- sysklogd-1.4.1.orig/debian/rc ++++ sysklogd-1.4.1/debian/rc +@@ -0,0 +1,112 @@ ++#! /bin/sh ++# /etc/init.d/sysklogd: start the system log daemon. ++ ++### BEGIN INIT INFO ++# Provides: syslog ++# Required-Start: $local_fs $network $time ++# Required-Stop: $local_fs $network $time ++# Default-Start: 2 3 4 5 ++# Default-Stop: S 0 1 6 ++# Short-Description: System logger ++### END INIT INFO ++ ++PATH=/bin:/usr/bin:/sbin:/usr/sbin ++ ++pidfile=/var/run/syslogd.pid ++binpath=/sbin/syslogd ++ ++test -x $binpath || exit 0 ++ ++test ! -r /etc/default/syslogd || . /etc/default/syslogd ++ ++. /lib/lsb/init-functions ++ ++create_xconsole() ++{ ++ # Only proceed if not using devfsd ++ if [ -e /dev/.devfsd ] \ ++ || ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf ++ then ++ return ++ fi ++ ++ if [ ! -e /dev/xconsole ]; then ++ mknod -m 640 /dev/xconsole p ++ else ++ chmod 0640 /dev/xconsole ++ fi ++ chown root:adm /dev/xconsole ++} ++ ++running() ++{ ++ # No pidfile, probably no daemon present ++ # ++ if [ ! -f $pidfile ] ++ then ++ return 1 ++ fi ++ ++ pid=`cat $pidfile` ++ ++ # No pid, probably no daemon present ++ # ++ if [ -z "$pid" ] ++ then ++ return 1 ++ fi ++ ++ if [ ! -d /proc/$pid ] ++ then ++ return 1 ++ fi ++ ++ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1` ++ ++ # No syslogd? ++ # ++ if [ "$cmd" != "$binpath" ] ++ then ++ return 1 ++ fi ++ ++ return 0 ++} ++ ++case "$1" in ++ start) ++ log_begin_msg "Starting system log daemon..." ++ create_xconsole ++ start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD ++ log_end_msg $? ++ ;; ++ stop) ++ log_begin_msg "Stopping system log daemon..." ++ start-stop-daemon --stop --quiet --pidfile $pidfile --name syslogd ++ log_end_msg $? ++ ;; ++ reload|force-reload) ++ log_begin_msg "Reloading system log daemon..." ++ start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile --name syslogd ++ log_end_msg $? ++ ;; ++ restart) ++ log_begin_msg "Restarting system log daemon..." ++ start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile --name syslogd ++ start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD ++ log_end_msg $? ++ ;; ++ reload-or-restart) ++ if running ++ then ++ $0 reload ++ else ++ $0 start ++ fi ++ ;; ++ *) ++ echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}" ++ exit 1 ++esac ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/rc.klogd ++++ sysklogd-1.4.1/debian/rc.klogd +@@ -0,0 +1,46 @@ ++#! /bin/sh ++# /etc/init.d/klogd: start the kernel log daemon. ++ ++### BEGIN INIT INFO ++# Provides: klogd ++# Required-Start: $time syslog ++# Required-Stop: $time syslog ++# Default-Start: 2 3 4 5 ++# Default-Stop: S 0 1 6 ++# Short-Description: kernel logger ++### END INIT INFO ++ ++PATH=/bin:/usr/bin:/sbin:/usr/sbin ++ ++pidfile=/var/run/klogd.pid ++binpath=/sbin/klogd ++ ++test -f $binpath || exit 0 ++ ++test ! -r /etc/default/klogd || . /etc/default/klogd ++ ++. /lib/lsb/init-functions ++ ++case "$1" in ++ start) ++ log_begin_msg "Starting kernel log daemon..." ++ start-stop-daemon --start --quiet --pidfile $pidfile --name klogd --startas $binpath -- $KLOGD ++ log_end_msg $? ++ ;; ++ stop) ++ log_begin_msg "Stopping kernel log daemon..." ++ start-stop-daemon --stop --retry TERM/1/TERM/1/TERM/4/KILL --quiet --pidfile $pidfile --name klogd ++ log_end_msg $? ++ ;; ++ restart|force-reload) ++ log_begin_msg "Reloading kernel log daemon..." ++ start-stop-daemon --stop --retry TERM/1/TERM/1/TERM/4/KILL --quiet --pidfile $pidfile --name klogd ++ start-stop-daemon --start --quiet --pidfile $pidfile --name klogd --startas $binpath -- $KLOGD ++ log_end_msg $? ++ ;; ++ *) ++ echo "Usage: /etc/init.d/klogd {start|stop|restart|force-reload}" ++ exit 1 ++esac ++ ++exit 0 +--- sysklogd-1.4.1.orig/debian/readme ++++ sysklogd-1.4.1/debian/readme +@@ -0,0 +1,44 @@ ++ ++Additional information about system logging ++------------------------------------------- ++ ++ . When logging into a fifo syslogd will stop loggin into this ++ logfile if no process is reading it and thus the buffer is filled ++ up. Buffer size can be adjusted through the kernel. ++ ++ . When using the Perl5 Sys::Syslog module (use Sys::Syslog;) to ++ provide logging to your Perl programs, please notice that since it ++ will open a UDP connection to the local syslogd you'll need to have ++ remote receiption enabled. ++ ++ Joey Hess teaches us how to change this behaviour and switch to ++ using the Unix domain socket. After the opening with "use" you ++ have to add "Sys::Syslog::setlogsock('unix');". ++ ++ The default behaviour might change in future releases of Perl. ++ ++Modifying the kernel console log level ++-------------------------------------- ++ ++ There are two ways to alter the kernel console log level. This ++ setting controls whether log messages from the kernel should appear ++ on the system console or not. ++ ++ In the past, klogd had to do this with the -c parameter. Using '-c ++ 4' will set the log level of console messages to 4 and only display ++ warnings and errors but not regular debug or information messages. ++ ++ This behaviour is deprecated and hencely not enforced anymore via ++ the RC script of klogd. Instead sysctl(8) should be used as ++ interface to various kernel variables. These can be stored ++ non-volatile in /etc/sysctl.conf. ++ ++ The prevent the kernel to flood the system console and to achieve ++ the same behaviour of '-c 4' simply add the following to the ++ configuration file and let sysctl set this kernel parameter upon ++ system boot. ++ ++ kernel/printk = 4 4 1 7 ++ ++ More information can be found in Documentation/sysctl/kernel.txt in ++ the kernel source and proc(5). +--- sysklogd-1.4.1.orig/debian/rules ++++ sysklogd-1.4.1/debian/rules +@@ -0,0 +1,172 @@ ++#! /usr/bin/make -f ++ ++# Copyright 1994-98,2001 joey@infodrom.org (Martin Schulze) ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; version 2 dated June, 1991. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ++# ++SHELL=/bin/bash ++ ++# The name and version of the source ++# ++source = $(shell grep "^Source: " debian/control|head -n 1|sed 's/Source: \(.*\)/\1/g') ++package = $(shell grep "^Package: " debian/control|head -n 1|sed 's/Package: \(.*\)/\1/g') ++version = $(shell grep "^$(source) " debian/changelog|head -n 1 |sed 's/.*(\(.*\)\-[^\-]*).*/\1/g') ++revision = $(shell grep "^$(source) " debian/changelog|head -n 1 |sed 's/.*([^\-]*\-\(.*\)).*/\1/g') ++ ++installbin = install -g root -o root -m 755 ++installdoc = install -g root -o root -m 644 ++ ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++CFLAGS = -g -O2 -Wall $(shell getconf LFS_CFLAGS) ++else ++CFLAGS = -O2 -Wall $(shell getconf LFS_CFLAGS) ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++STRIP = -s ++endif ++ ++build: ++ $(MAKE) DEB="-DDEBRELEASE=\\\"$(revision)\\\"" \ ++ CFLAGS="$(CFLAGS) -DSYSV -fomit-frame-pointer -fno-strength-reduce" \ ++ LDFLAGS="" ++ pod2man --section=8 --lax --center="Debian GNU/Linux" \ ++ --release="Debian Project" debian/syslog-facility.pod \ ++ > syslog-facility.8 ++ (cat README.linux; printf "\n\n"; cat README.1st; \ ++ printf "\n\nThe following important changes have been reported by the developers:\n\n"; \ ++ cat NEWS debian/readme) \ ++ > readme.txt ++ (cat debian/copyright; \ ++ printf "Syslogd stays under the following copyright:\n\n"; \ ++ sed -e '/^$$/,$$d' < syslogd.c; \ ++ printf "\nKlogd has the following copyright notice:\n\n"; \ ++ sed -e '/^$$/,$$d' < klogd.c ) \ ++ > copyright ++ touch stamp-build ++ ++clean: debclean ++ rm -f stamp-build ++ $(MAKE) clobber ++ rm -rf *~ debian/*~ syslog-facility.8 readme.txt copyright ++ ++debclean: ++# Cleans debian binary directories to allow binary creation ++ rm -rf debian/tmp.sysklogd debian/tmp.klogd ++ rm -f debian/{files,substvars} ++ ++binary-indep: ++# Nothing to be done here ++ ++binary-arch-sysklogd: debclean ++ test -f stamp-build || $(MAKE) -f debian/rules build ++ $(installbin) -d debian/tmp.sysklogd/DEBIAN ++ chown -R root:root debian/tmp.sysklogd ++ chmod -R g-ws debian/tmp.sysklogd ++ $(installbin) -d debian/tmp.sysklogd/usr/share/doc/$(package) ++ $(installbin) debian/{postinst,postrm,prerm} debian/tmp.sysklogd/DEBIAN/ ++ $(installdoc) debian/conffiles debian/tmp.sysklogd/DEBIAN/ ++ $(installdoc) debian/changelog debian/tmp.sysklogd/usr/share/doc/$(package)/changelog.Debian ++ # ++ $(installbin) -d debian/tmp.sysklogd/usr/share/$(package) ++ $(installdoc) debian/dummy debian/tmp.sysklogd/usr/share/$(package) ++ # ++ $(installdoc) copyright debian/tmp.sysklogd/usr/share/doc/$(package)/ ++ $(installdoc) readme.txt debian/tmp.sysklogd/usr/share/doc/$(package)/ ++ $(installdoc) CHANGES debian/tmp.sysklogd/usr/share/doc/$(package)/changelog ++ gzip -9f debian/tmp.sysklogd/usr/share/doc/$(package)/{changelog.Debian,changelog,readme.txt} ++ # ++ $(installbin) -d debian/tmp.sysklogd/{usr/,}sbin ++ $(installbin) $(STRIP) syslogd debian/tmp.sysklogd/sbin ++ $(installbin) debian/syslogd-listfiles debian/tmp.sysklogd/usr/sbin ++ $(installbin) debian/syslog-facility debian/tmp.sysklogd/usr/sbin ++ # ++ $(installbin) -d debian/tmp.sysklogd/etc/{init.d,cron.{daily,weekly},default} ++ $(installbin) debian/default debian/tmp.sysklogd/etc/default/syslogd ++ $(installbin) debian/rc debian/tmp.sysklogd/etc/init.d/sysklogd ++ $(installbin) debian/cron.weekly debian/tmp.sysklogd/etc/cron.weekly/sysklogd ++ $(installbin) debian/cron.daily debian/tmp.sysklogd/etc/cron.daily/sysklogd ++ $(installdoc) debian/syslog.conf debian/tmp.sysklogd/etc/syslog.conf ++ $(installbin) -d debian/tmp.sysklogd/var/log ++ # ++ $(installbin) -d debian/tmp.sysklogd/usr/share/man/man{5,8} ++ $(installdoc) syslog.conf.5 debian/tmp.sysklogd/usr/share/man/man5 ++ $(installdoc) {sysklogd,syslogd,debian/syslogd-listfiles}.8 debian/tmp.sysklogd/usr/share/man/man8 ++ $(installdoc) syslog-facility.8 debian/tmp.sysklogd/usr/share/man/man8 ++ gzip -9 debian/tmp.sysklogd/usr/share/man/man?/* ++ # ++ dpkg-shlibdeps debian/tmp.sysklogd/sbin/syslogd ++ dpkg-gencontrol -psysklogd -Pdebian/tmp.sysklogd -isp ++ dpkg --build debian/tmp.sysklogd .. ++ ++binary-arch-klogd: debclean ++ test -f stamp-build || $(MAKE) -f debian/rules build ++ $(installbin) -d debian/tmp.klogd/DEBIAN ++ chown -R root:root debian/tmp.klogd ++ chmod -R g-ws debian/tmp.klogd ++ $(installbin) -d debian/tmp.klogd/usr/share/doc/klogd ++ $(installbin) debian/postinst.klogd debian/tmp.klogd/DEBIAN/postinst ++ $(installbin) debian/postrm.klogd debian/tmp.klogd/DEBIAN/postrm ++ $(installbin) debian/prerm.klogd debian/tmp.klogd/DEBIAN/prerm ++ $(installdoc) debian/conffiles.klogd debian/tmp.klogd/DEBIAN/conffiles ++ $(installdoc) debian/changelog debian/tmp.klogd/usr/share/doc/klogd/changelog.Debian ++ # ++ $(installdoc) copyright debian/tmp.klogd/usr/share/doc/klogd/ ++ $(installdoc) readme.txt debian/tmp.klogd/usr/share/doc/klogd/ ++ $(installdoc) CHANGES debian/tmp.klogd/usr/share/doc/klogd/changelog ++ gzip -9f debian/tmp.klogd/usr/share/doc/klogd/{changelog.Debian,changelog,readme.txt} ++ $(installdoc) modutils.patch debian/tmp.klogd/usr/share/doc/klogd ++ # ++ $(installbin) -d debian/tmp.klogd/sbin ++ $(installbin) $(STRIP) klogd debian/tmp.klogd/sbin ++ # ++ $(installbin) -d debian/tmp.klogd/etc/{init.d,default} ++ $(installbin) debian/default.klogd debian/tmp.klogd/etc/default/klogd ++ $(installbin) debian/rc.klogd debian/tmp.klogd/etc/init.d/klogd ++ # ++ $(installbin) -d debian/tmp.klogd/usr/share/man/man8 ++ $(installdoc) klogd.8 debian/tmp.klogd/usr/share/man/man8 ++ gzip -9 debian/tmp.klogd/usr/share/man/man?/* ++ # ++ dpkg-shlibdeps debian/tmp.klogd/sbin/klogd ++ dpkg-gencontrol -pklogd -Pdebian/tmp.klogd -isp ++ dpkg --build debian/tmp.klogd .. ++ ++binary-arch: binary-arch-sysklogd binary-arch-klogd ++ ++binary: binary-indep binary-arch ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b' or dsc; false ++ ++dsc: ++ -test -d debian/tmp.sysklogd -o -d debian/tmp.klogd \ ++ && $(MAKE) -f debian/rules clean ++ if [ ! -f ../$(source)_$(version).orig.tar.gz -a -f ../orig/$(source)_$(version).orig.tar.gz ]; \ ++ then \ ++ ln -s orig/$(source)_$(version).orig.tar.gz ../$(source)_$(version).orig.tar.gz; \ ++ touch /tmp/stamp-$(source)-link; \ ++ fi; \ ++ cd .. && dpkg-source -b $(source)-$(version) ++ if [ -f /tmp/stamp-$(source)-link ]; then \ ++ rm ../$(source)_$(version).orig.tar.gz /tmp/stamp-$(source)-link; \ ++ fi ++ ++checkroot: ++ $(checkdir) ++ test root = "`whoami`" ++ ++dist: binary dsc ++ ++.PHONY: binary binary-arch binary-indep clean checkroot ++ +--- sysklogd-1.4.1.orig/debian/syslog-facility ++++ sysklogd-1.4.1/debian/syslog-facility +@@ -0,0 +1,140 @@ ++#! /usr/bin/perl -w ++ ++# Copyright 1998 Hertzog Raphaël ++# You can use this script under the term of the GPL v2 or later. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ ++my $conf_file = '/etc/syslog.conf'; ++ ++## BUGS : ++# . This script doesn't know about multi-lines configuration (ie with '\') ++# . With a line like that "mail,local0.* /anything" ++# "syslog-facility remove local0" would remove the entire line ++# => should not be a problem since lines installed by this script ++# cannot use such syntax ++## ++ ++## Nothing to modify after this line ## ++ ++my $command = lc(shift); ++ ++usage() if ($command !~ /^(?:set|remove)$/); ++usage() if (not scalar(@ARGV)); ++ ++if ($command eq "set") ++{ ++ usage() if (int(scalar(@ARGV) / 2) != scalar(@ARGV) / 2); ++ # find a free localx facility ++ my $facility = get_first_free_facility(); ++ # if none stop immediately ++ if ($facility eq "none") { ++ print "none\n"; ++ exit 1; ++ } ++ # ok append the lines asked ++ open (CONF, ">>$conf_file") || ++ die "Can't open $conf_file in write mode: $!\n"; ++ my ($pri,$file,$line); ++ while (defined($pri = shift)) { ++ $file = shift; ++ $line = ""; ++ foreach (split(/;/,$pri)) { ++ $_ =~ s/all/*/g; ++ $line .= ";" if ($line); ++ $line .= "$facility.$_"; ++ } ++ $line .= "\t\t$file\n"; ++ print CONF $line; ++ } ++ close CONF; ++ print "$facility\n"; ++ exit 0; ++ ++} elsif ($command eq "remove") { ++ ++ my $facility = lc(shift); ++ my ($left,$file,$line); ++ open (CONF, $conf_file) || die "Can't open $conf_file: $!\n"; ++ open (CONFNEW, ">$conf_file.new") || ++ die "Can't open $conf_file.new in write mode: $!\n"; ++ while (defined($_=<CONF>)) { ++ # Write all "simple" lines like empty lines and comments ++ if (/^\s*$/ or /^\s*#/ or /\\$/) { ++ print CONFNEW $_; ++ next; ++ } ++ # Otherwise look if the facility to remove appears in the line ++ if (/^\s*(\S+)\s+(\S+)\s*/) { ++ $left = $1; $file = $2; chomp $file; ++ # It doesn't appers => write ++ if ($left !~ /$facility/i) { ++ print CONFNEW $_; ++ next; ++ } ++ # It appears => write a new line without the localx facility ++ $line = ""; ++ foreach (split(/;/,$left)) { ++ if (not /$facility/i) { ++ $line .= ";" if ($line); ++ $line .= $_; ++ } ++ } ++ next if ($line eq ""); ++ $line .= "\t\t$file\n"; ++ print CONFNEW $line; ++ } ++ } ++ close CONFNEW; ++ close CONF; ++ rename ("$conf_file.new", "$conf_file"); ++} ++ ++sub get_first_free_facility { ++ ++ my @facility = (0) x 8; ++ my ($left,$fac); ++ open(CONF, $conf_file) || die "Can't open $conf_file: $!\n"; ++ while(defined($_=<CONF>)) ++ { ++ next if (/^\s*$/); ++ next if (/^\s*#/); ++ next if (/\\$/); ++ next if (not /^\s*(\S+)\s+(\S+)\s*$/); ++ $left = $1; ++ foreach $fac (split(/;/,$left)) { ++ $facility[$1]++ if ($fac =~ /local(\d)/i); ++ } ++ } ++ foreach $fac (0..7) { ++ return "local$fac" if ($facility[$fac] == 0); ++ } ++ return "none"; ++} ++ ++sub usage { ++ ++ die "syslog-facility - Copyright (c) 1998 Hertzog Raphaël\n" ++ ."Usage : $0 set <set_of_priority> <logfile> ... \n" ++ ." it returns the 'LOCALx' string you have the right to use.\n" ++ ." $0 remove <facility>\n" ++ ."Example: $0 set all /var/log/all\n" ++ ." $0 set all\\;\\!=info /var/log/all-without-info\n" ++ ." $0 set =err /var/log/errors =warning /var/log/warn\n" ++ ." $0 remove LOCAL1\n"; ++} ++ ++ ++ +--- sysklogd-1.4.1.orig/debian/syslog-facility.pod ++++ sysklogd-1.4.1/debian/syslog-facility.pod +@@ -0,0 +1,58 @@ ++=head1 NAME ++ ++syslog-facility - Setup and remove LOCALx facility for sysklogd ++ ++=head1 SYNOPSIS ++ ++B<syslog-facility> B<set> I<set_of_priority> I<log_file> ... ++ ++B<syslog-facility> B<remove> I<facility> ++ ++=head1 DESCRIPTION ++ ++B<syslog-facility> can be used to setup a syslog facility and to remove ++it. The primary use of this perl script is to allow packages to ++automatically setup (and remove) a LOCALx facility. With the ++first argument beeing I<set>, it will output a string containing ++the first free LOCALx facility that has been assigned to your request : ++ ++ # syslog-facility set all /var/log/sympa ++ local0 ++ ++This does mean that a line "local0.* /var/log/sympa" has been ++added to the syslog.conf file. If no free LOCALx facility has been ++found, then it outputs "none" (with a end of line). ++ ++You can use different set of priorities (most of what syslogd supports) : ++ ++ # syslog-facility set 'all;!=debug;' /var/log/sympa '=debug' /var/log/sympa-d ++ local1 ++ ++Pay particular attention to shell escapes since ';','!' have special ++meanings for them. The syntax is similar to syslog.conf except that ++'*' must be replaced by 'all'. ++ ++In that case you will have two lines added two the syslog.conf file : ++ ++ local1.*;local1.!=debug /var/log/sympa ++ local1.=debug /var/log/sympa-d ++ ++If the first argument is I<remove>, then it will remove all references ++to a precise LOCALx facility. Example : ++ ++ # syslog-facility remove local1 ++ ++It will remove all references to the local1 facility. ++ ++=head1 BUGS ++ ++The script doesn't know about multi-lines configuration (ie with '\'). ++ ++With a line like that "mail,local0.* /anything", "syslog-facility remove ++local0" would remove the entire line. It should not be a problem since ++lines installed by this script cannot use this syntax. ++ ++=head1 SEE ALSO ++ ++B<syslog.conf>(5), B<sysklogd>(8). ++ +--- sysklogd-1.4.1.orig/debian/syslog.conf ++++ sysklogd-1.4.1/debian/syslog.conf +@@ -0,0 +1,71 @@ ++# /etc/syslog.conf Configuration file for syslogd. ++# ++# For more information see syslog.conf(5) ++# manpage. ++ ++# ++# First some standard logfiles. Log by facility. ++# ++ ++auth,authpriv.* /var/log/auth.log ++*.*;auth,authpriv.none -/var/log/syslog ++#cron.* /var/log/cron.log ++daemon.* -/var/log/daemon.log ++kern.* -/var/log/kern.log ++lpr.* -/var/log/lpr.log ++mail.* -/var/log/mail.log ++user.* -/var/log/user.log ++uucp.* /var/log/uucp.log ++ ++# ++# Logging for the mail system. Split it up so that ++# it is easy to write scripts to parse these files. ++# ++mail.info -/var/log/mail.info ++mail.warn -/var/log/mail.warn ++mail.err /var/log/mail.err ++ ++# Logging for INN news system ++# ++news.crit /var/log/news/news.crit ++news.err /var/log/news/news.err ++news.notice -/var/log/news/news.notice ++ ++# ++# Some `catch-all' logfiles. ++# ++*.=debug;\ ++ auth,authpriv.none;\ ++ news.none;mail.none -/var/log/debug ++*.=info;*.=notice;*.=warn;\ ++ auth,authpriv.none;\ ++ cron,daemon.none;\ ++ mail,news.none -/var/log/messages ++ ++# ++# Emergencies are sent to everybody logged in. ++# ++*.emerg * ++ ++# ++# I like to have messages displayed on the console, but only on a virtual ++# console I usually leave idle. ++# ++#daemon,mail.*;\ ++# news.=crit;news.=err;news.=notice;\ ++# *.=debug;*.=info;\ ++# *.=notice;*.=warn /dev/tty8 ++ ++# The named pipe /dev/xconsole is for the `xconsole' utility. To use it, ++# you must invoke `xconsole' with the `-file' option: ++# ++# $ xconsole -file /dev/xconsole [...] ++# ++# NOTE: adjust the list below, or you'll go crazy if you have a reasonably ++# busy site.. ++# ++daemon.*;mail.*;\ ++ news.crit;news.err;news.notice;\ ++ *.=debug;*.=info;\ ++ *.=notice;*.=warn |/dev/xconsole ++ +--- sysklogd-1.4.1.orig/debian/syslogd-listfiles ++++ sysklogd-1.4.1/debian/syslogd-listfiles +@@ -0,0 +1,146 @@ ++#! /usr/bin/perl ++ ++# Copyright (c) 1998,9,2001,3 by Martin Schulze <joey@infodrom.org> ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. ++ ++$conf = "/etc/syslog.conf"; ++$opt_daily = 1; ++$opt_all = 0; ++$opt_auth = 0; ++$opt_ign_size = 0; ++$opt_news = 0; ++$opt_skip = ''; ++$opt_large = 1024*1024; ++ ++sub usage ++{ ++ print STDERR ++" ++Debian GNU/Linux syslogd-listfiles. Copyright (c) 1997,2001 ++Martin Schulze. This is free software; see the GNU General Public Licence ++version 2 or later for copying conditions. There is NO warranty. ++ ++Usage: syslogd-listfiles <options> ++Options: -f file specifies another syslog.conf file ++ -a | --all list all files (including news) ++ --auth list all files containing auth.<some prio> ++ --ignore-size don't rotate files which got too large ++ --large nnn define what is large in bytes (default: 10MB) ++ --news include news logfiles, too ++ -w | --weekly use weekly pattern instead of daily ++ -s pattern skip files matching pattern ++"; ++} ++ ++# Test if the file was already rotated within the last n hours ++# with n=5 ++# ++sub rotated ++{ ++ my $file = shift; ++ my $nfile; ++ my $delta = 5 * 60 * 60; ++ my $now = time(); ++ ++ # /var/log/file -> /var/log/file.0 ++ $nfile = $file . ".0"; ++ if (-r $nfile) { ++ if (($now - (stat $nfile)[9]) > $delta) { ++ return 0; ++ } else { ++ return 1; ++ } ++ } ++ ++ # /var/log/file -> /var/log/OLD/file.0 ++ $nfile =~ s,(.*)/([^/]+),$1/OLD/$2,; ++ if (-r $nfile) { ++ if (($now - (stat $nfile)[9]) > $delta) { ++ return 0; ++ } else { ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++while (@ARGV) { ++ $_=shift(@ARGV); ++ if (m/^-f$/) { ++ $conf = shift(@ARGV); ++ } elsif (m/^-s$/) { ++ $opt_skip = shift(@ARGV); ++ } elsif (m/^--large$/) { ++ $opt_large = shift(@ARGV); ++ } elsif (m/^(--weekly|-w)$/) { ++ $opt_daily = 0; ++ } elsif (m/^(-a|--all)$/) { ++ $opt_all = 1; ++ } elsif (m/^--auth$/) { ++ $opt_auth = 1; ++ } elsif (m/^--ignore-size/) { ++ $opt_ign_size = 1; ++ } elsif (m/^--news$/) { ++ $opt_news = 1; ++ } else { ++ &usage();exit (0); ++ } ++} ++ ++open (C, $conf) || die "Can't open $conf, $!"; ++while (<C>) { ++ next if (/^(\#|$)/); ++ chomp; ++ ++ s/\s*(\S.*)$/$1/ if ($line); ++ ++ $line .= $_; ++ chop ($line) if (/\\$/); ++ if (!/\\$/) { ++ $line =~ s/\s+/\t/; ++ $line =~ s/\t-/\t/; ++ push (@lines, $line) if ($line =~ /\t\/(?!dev\/)/); ++ $line = ""; ++ } ++} ++close (C); ++ ++foreach $line (@lines) { ++ ($pat,$file) = split (/\t/,$line); ++ ++ # These files are handled by news.daily from INN, so we ignore them ++ next if (!$opt_news && ($pat =~ /news\.(\*|crit|err|info|notice)/)); ++ ++ if ($opt_all) { ++ $output{$file} = 1; ++ } elsif ($opt_auth) { ++ $output{$file} = 1 if ($pat =~ /auth[^\.]*\.(?!none).*/); ++ } else { ++ $everything = ($pat =~ /\*\.\*/); ++ $output{$file} = 1 if (($everything && $opt_daily) ++ || (!$everything && !$opt_daily && !rotated ($file)) ++ || (!$opt_ign_size && ((stat $file)[7] >= $opt_large) && $opt_daily) ++ ); ++ } ++} ++ ++foreach $file (keys (%output)) { ++ $skip = $file; ++ if (!length($opt_skip) || $skip !~ /$opt_skip/) { ++ printf "%s\n", $file; ++ } ++} +--- sysklogd-1.4.1.orig/debian/syslogd-listfiles.8 ++++ sysklogd-1.4.1/debian/syslogd-listfiles.8 +@@ -0,0 +1,95 @@ ++.\" syslogd-listfiles.8 - generic routine for /etc/syslog.conf ++.\" Copyright (c) 1997,8,2001 Martin Schulze <joey@debian.org> ++.\" ++.\" This program is free software; you can redistribute it and/or modify ++.\" it under the terms of the GNU General Public License as published by ++.\" the Free Software Foundation; either version 2 of the License, or ++.\" (at your option) any later version. ++.\" ++.\" This program is distributed in the hope that it will be useful, ++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of ++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++.\" GNU General Public License for more details. ++.\" ++.\" You should have received a copy of the GNU General Public License ++.\" along with this program; if not, write to the Free Software ++.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++.\" ++.TH SYSLOGD-LISTFILES 8 "December 5th, 2001" "Debian Project" "Debian GNU/Linux" ++.SH NAME ++syslogd-listfiles \- list system logfiles ++.SH SYNOPSIS ++.B syslogd-listfiles ++.RB [ " \-a " | " \-\-all " ] ++.RB [ " \-\-auth " ] ++.RB [ " \-f " ++.I config file ++] ++.RB [ " \-s " ++.I pattern ++] ++.RB [ " \-\-large " ++.I nnn ++] ++.RB [ " \-\-news " ] ++.RB [ " \-w " | " \-\-weekly " ] ++.SH DESCRIPTION ++.B Sysklogd ++provides a modern mechanism to log system messages. This mechanism is ++controlled by the file ++.IR /etc/syslog.conf . ++Messages are divided into logfiles which can grow quite big. ++Therefore the logfiles need to be rotated once per day, per week or ++per month. On a Debian GNU/Linux system most of the files are rotated ++once per week. ++ ++This program helps the rotation script to determine which logfiles ++need to be rotated and when. It takes care of news logfiles that are ++handled by the ++.B news.daily ++script from INN. In conjunction with the scripts in ++.IR /etc/cron.daily " and " /etc/cron.weekly ++it takes care of files with sensitive information. ++ ++By default a list of files for daily rotation is generated. At the ++moment this option only reflects entries that contain "*.*" as ++facility.priority. ++ ++.SH OPTIONS ++.TP ++.BR "\-a" ", " "\-\-all" ++List all logfiles and ignore all other rules. ++.TP ++.BI "\-f " "config file" ++Specify an alternative configuration file instead of ++.IR /etc/syslog.conf "," ++which is the default. ++.TP ++.BI "\-s " "pattern" ++Specify a regular expression for files that must not be listed. ++.TP ++.B "\-\-auth" ++Only list files containing sensitive information such as the one ++containing auth.*. ++.TP ++.BI "\-\-large " "nnn" ++Define the filesize for a large file. The size is provided in bytes. ++This value defaults to 1 megabyte. ++.TP ++.B \-\-ignore\-size ++Don't rotate files whose file size is larger than the regular limit ++(see above). This option is useful if you are postprocessing logfiles ++which would break if log files are rotated at a different date/time. ++.TP ++.B "\-\-news" ++Don't exclude news logfiles which are normally handled by the ++.B news.daily ++script from INN. ++.TP ++.BR "\-w" ", " "\-\-weekly" ++Generate the list for weekly rotation. ++.LP ++.SH SEE ALSO ++.BR syslog.conf (5), ++.BR syslogd (8), ++.BR savelog (8). +--- sysklogd-1.4.1.orig/debian/technical ++++ sysklogd-1.4.1/debian/technical +@@ -0,0 +1,10 @@ ++ Some technical information - unsorted ++ ------------------------------------- ++ ++ 1. Logfiles in syslogd ++ ++ As of version 1.3 syslogd doesn't come with a static array of ++ logfiles. Although the logfiles are still organized in an array. ++ This array is initialized when the configuration file (default is ++ /etc/syslog.conf) is read. Whenever a new line is read the ++ length of the array it prolongued. diff --git a/source/a/syslinux/slack-desc b/source/a/syslinux/slack-desc new file mode 100644 index 000000000..b71399209 --- /dev/null +++ b/source/a/syslinux/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +syslinux: syslinux (SYSLINUX/PXELINUX/ISOLINUX boot loaders) +syslinux: +syslinux: SYSLINUX is a boot loader for the Linux operating system which +syslinux: operates off an MS-DOS/Windows FAT filesystem. This is used by the +syslinux: Slackware makebootdisk script to create system boot floppies. +syslinux: +syslinux: Also included are PXELINUX and ISOLINUX, boot loaders for booting from +syslinux: a network server or CD-ROM. +syslinux: +syslinux: SYSLINUX, PXELINUX, and ISOLINUX were written by H. Peter Anvin. +syslinux: diff --git a/source/a/syslinux/syslinux-3.52.tar.bz2.sign b/source/a/syslinux/syslinux-3.52.tar.bz2.sign new file mode 100644 index 000000000..1d319cd30 --- /dev/null +++ b/source/a/syslinux/syslinux-3.52.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.7 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBG+aOayGugalF9Dw4RAtvoAJ93vpkYgJsPYBI95vXW1/qLIQC2lwCcCOPf +NhphOdhGCaUwMdqZH9tahC0= +=OS5y +-----END PGP SIGNATURE----- diff --git a/source/a/syslinux/syslinux.SlackBuild b/source/a/syslinux/syslinux.SlackBuild new file mode 100755 index 000000000..e084f96f5 --- /dev/null +++ b/source/a/syslinux/syslinux.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=syslinux +VERSION=${VERSION:-3.52} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 2777 -o -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Build: +make -j4 || exit 1 + +make install-all INSTALLROOT=/tmp/package-syslinux +make mkdiskimage +make libsyslinux.a +cp -a unix/syslinux-nomtools mkdiskimage $PKG/usr/bin +chmod 755 $PKG/usr/bin/* + +mkdir -p $PKG/usr/lib +cp -a libsyslinux.a $PKG/usr/lib +mkdir -p $PKG/usr/include +cp -a syslinux.h $PKG/usr/include + +rm -rf $PKG/usr/lib/syslinux/com32 + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + BUGS COPYING NEWS README* TODO \ + distrib.doc isolinux.doc pxelinux.doc syslinux.doc \ + com32/LICENSE \ + memdisk/memdisk.doc \ + menu \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit-functions/README.functions b/source/a/sysvinit-functions/README.functions new file mode 100644 index 000000000..005012f3c --- /dev/null +++ b/source/a/sysvinit-functions/README.functions @@ -0,0 +1,17 @@ + +If you're reading this in /etc/init.d/, Slackware's real init directory is +/etc/rc.d/. Maybe you already knew this, but it never hurts to say. :-) + +This script was taken from Fedora (and is presumably licensed under the GPL). +While I don't see Slackware init scripts making much use of it (but use it +if you wish), some third party init scripts (such as for commercial software +designed to run on Red Hat based systems) expect this script and use it in +their own init scripts, so it's a good idea to make it available here. + +These functions are provided solely for commercial (or other) software that +expects to find "Red Hat-isms". I wouldn't use them to write new init +scripts (personally), but if you've had experience with them in the past +and like them, by all means feel free. + +It's planned to continue support for them. + diff --git a/source/a/sysvinit-functions/doinst.sh b/source/a/sysvinit-functions/doinst.sh new file mode 100644 index 000000000..bbeb4a57d --- /dev/null +++ b/source/a/sysvinit-functions/doinst.sh @@ -0,0 +1,23 @@ +( cd etc + for dir in init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d ; do + if [ ! -L $dir -a -d $dir ]; then + mv ${dir} ${dir}.bak + fi + done +) +( cd etc ; rm -rf init.d ) +( cd etc ; ln -sf rc.d/init.d init.d ) +( cd etc ; rm -rf rc0.d ) +( cd etc ; ln -sf rc.d/rc0.d rc0.d ) +( cd etc ; rm -rf rc1.d ) +( cd etc ; ln -sf rc.d/rc1.d rc1.d ) +( cd etc ; rm -rf rc2.d ) +( cd etc ; ln -sf rc.d/rc2.d rc2.d ) +( cd etc ; rm -rf rc3.d ) +( cd etc ; ln -sf rc.d/rc3.d rc3.d ) +( cd etc ; rm -rf rc4.d ) +( cd etc ; ln -sf rc.d/rc4.d rc4.d ) +( cd etc ; rm -rf rc5.d ) +( cd etc ; ln -sf rc.d/rc5.d rc5.d ) +( cd etc ; rm -rf rc6.d ) +( cd etc ; ln -sf rc.d/rc6.d rc6.d ) diff --git a/source/a/sysvinit-functions/functions b/source/a/sysvinit-functions/functions new file mode 100644 index 000000000..580216d1b --- /dev/null +++ b/source/a/sysvinit-functions/functions @@ -0,0 +1,577 @@ +# -*-Shell-script-*- +# +# functions This file contains functions to be used by most or all +# shell scripts in the /etc/init.d directory. +# + +TEXTDOMAIN=initscripts + +# Make sure umask is sane +umask 022 + +# Set up a default search path. +PATH="/sbin:/usr/sbin:/bin:/usr/bin" +export PATH + +# Get a sane screen width +[ -z "${COLUMNS:-}" ] && COLUMNS=80 + +[ -z "${CONSOLETYPE:-}" ] && CONSOLETYPE="`/sbin/consoletype`" + +if [ -f /etc/sysconfig/i18n -a -z "${NOLOCALE:-}" ] ; then + . /etc/profile.d/lang.sh +fi + +# Read in our configuration +if [ -z "${BOOTUP:-}" ]; then + if [ -f /etc/sysconfig/init ]; then + . /etc/sysconfig/init + else + # This all seem confusing? Look in /etc/sysconfig/init, + # or in /usr/doc/initscripts-*/sysconfig.txt + BOOTUP=color + RES_COL=60 + MOVE_TO_COL="echo -en \\033[${RES_COL}G" + SETCOLOR_SUCCESS="echo -en \\033[1;32m" + SETCOLOR_FAILURE="echo -en \\033[1;31m" + SETCOLOR_WARNING="echo -en \\033[1;33m" + SETCOLOR_NORMAL="echo -en \\033[0;39m" + LOGLEVEL=1 + fi + if [ "$CONSOLETYPE" = "serial" ]; then + BOOTUP=serial + MOVE_TO_COL= + SETCOLOR_SUCCESS= + SETCOLOR_FAILURE= + SETCOLOR_WARNING= + SETCOLOR_NORMAL= + fi +fi + +if [ "${BOOTUP:-}" != "verbose" ]; then + INITLOG_ARGS="-q" +else + INITLOG_ARGS= +fi + +# Interpret escape sequences in an fstab entry +fstab_decode_str() { + fstab-decode echo "$1" +} + +# Check if $pid (could be plural) are running +checkpid() { + local i + + for i in $* ; do + [ -d "/proc/$i" ] && return 0 + done + return 1 +} + +# __umount_loop awk_program fstab_file first_msg retry_msg umount_args +# awk_program should process fstab_file and return a list of fstab-encoded +# paths; it doesn't have to handle comments in fstab_file. +__umount_loop() { + local remaining sig= + local retry=3 + + remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r) + while [ -n "$remaining" -a "$retry" -gt 0 ]; do + if [ "$retry" -eq 3 ]; then + action "$3" fstab-decode umount $5 $remaining + else + action "$4" fstab-decode umount $5 $remaining + fi + sleep 2 + remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r) + [ -z "$remaining" ] && break + fstab-decode /sbin/fuser -k -m $sig $remaining >/dev/null + sleep 5 + retry=$(($retry -1)) + sig=-9 + done +} + +# Similar to __umount loop above, specialized for loopback devices +__umount_loopback_loop() { + local remaining devremaining sig= + local retry=3 + + remaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts) + devremaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts) + while [ -n "$remaining" -a "$retry" -gt 0 ]; do + if [ "$retry" -eq 3 ]; then + action $"Unmounting loopback filesystems: " \ + fstab-decode umount $remaining + else + action $"Unmounting loopback filesystems (retry):" \ + fstab-decode umount $remaining + fi + for dev in $devremaining ; do + losetup $dev > /dev/null 2>&1 && \ + action $"Detaching loopback device $dev: " \ + losetup -d $dev + done + remaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts) + devremaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts) + [ -z "$remaining" ] && break + fstab-decode /sbin/fuser -k -m $sig $remaining >/dev/null + sleep 5 + retry=$(($retry -1)) + sig=-9 + done +} + +# __proc_pids {program} [pidfile] +# Set $pid to pids from /var/run* for {program}. $pid should be declared +# local in the caller. +# Returns LSB exit code for the 'status' action. +__pids_var_run() { + local base=${1##*/} + local pid_file=${2:-/var/run/$base.pid} + + pid= + if [ -f "$pid_file" ] ; then + local line p + read line < "$pid_file" + for p in $line ; do + [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p" + done + if [ -n "$pid" ]; then + return 0 + fi + return 1 # "Program is dead and /var/run pid file exists" + fi + return 3 # "Program is not running" +} + +# Output PIDs of matching processes, found using pidof +__pids_pidof() { + pidof -c -o $$ -o $PPID -o %PPID -x "$1" || \ + pidof -c -o $$ -o $PPID -o %PPID -x "${1##*/}" +} + + +# A function to start a program. +daemon() { + # Test syntax. + local gotbase= force= nicelevel corelimit + local pid base= user= nice= bg= pid_file= + nicelevel=0 + while [ "$1" != "${1##[-+]}" ]; do + case $1 in + '') echo $"$0: Usage: daemon [+/-nicelevel] {program}" + return 1;; + --check) + base=$2 + gotbase="yes" + shift 2 + ;; + --check=?*) + base=${1#--check=} + gotbase="yes" + shift + ;; + --user) + user=$2 + shift 2 + ;; + --user=?*) + user=${1#--user=} + shift + ;; + --pidfile) + pid_file=$2 + shift 2 + ;; + --pidfile=?*) + pid_file=${1#--pidfile=} + shift + ;; + --force) + force="force" + shift + ;; + [-+][0-9]*) + nice="nice -n $1" + shift + ;; + *) echo $"$0: Usage: daemon [+/-nicelevel] {program}" + return 1;; + esac + done + + # Save basename. + [ -z "$gotbase" ] && base=${1##*/} + + # See if it's already running. Look *only* at the pid file. + __pids_var_run "$base" "$pid_file" + + [ -n "$pid" -a -z "$force" ] && return + + # make sure it doesn't core dump anywhere unless requested + corelimit="ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0}" + + # if they set NICELEVEL in /etc/sysconfig/foo, honor it + [ -n "${NICELEVEL:-}" ] && nice="nice -n $NICELEVEL" + + # Echo daemon + [ "${BOOTUP:-}" = "verbose" -a -z "${LSB:-}" ] && echo -n " $base" + + # And start it up. + if [ -z "$user" ]; then + $nice /bin/bash -c "$corelimit >/dev/null 2>&1 ; $*" + else + $nice runuser -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $*" + fi + [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup" +} + +# A function to stop a program. +killproc() { + local RC killlevel= base pid pid_file= delay + + RC=0; delay=3 + # Test syntax. + if [ "$#" -eq 0 ]; then + echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]" + return 1 + fi + if [ "$1" = "-p" ]; then + pid_file=$2 + shift 2 + fi + if [ "$1" = "-d" ]; then + delay=$2 + shift 2 + fi + + + # check for second arg to be kill level + [ -n "${2:-}" ] && killlevel=$2 + + # Save basename. + base=${1##*/} + + # Find pid. + __pids_var_run "$1" "$pid_file" + if [ -z "$pid_file" -a -z "$pid" ]; then + pid="$(__pids_pidof "$1")" + fi + + # Kill it. + if [ -n "$pid" ] ; then + [ "$BOOTUP" = "verbose" -a -z "${LSB:-}" ] && echo -n "$base " + if [ -z "$killlevel" ] ; then + if checkpid $pid 2>&1; then + # TERM first, then KILL if not dead + kill -TERM $pid >/dev/null 2>&1 + usleep 100000 + if checkpid $pid && sleep 1 && + checkpid $pid && sleep $delay && + checkpid $pid ; then + kill -KILL $pid >/dev/null 2>&1 + usleep 100000 + fi + fi + checkpid $pid + RC=$? + [ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown" + RC=$((! $RC)) + # use specified level only + else + if checkpid $pid; then + kill $killlevel $pid >/dev/null 2>&1 + RC=$? + [ "$RC" -eq 0 ] && success $"$base $killlevel" || failure $"$base $killlevel" + elif [ -n "${LSB:-}" ]; then + RC=7 # Program is not running + fi + fi + else + if [ -n "${LSB:-}" -a -n "$killlevel" ]; then + RC=7 # Program is not running + else + failure $"$base shutdown" + RC=0 + fi + fi + + # Remove pid file if any. + if [ -z "$killlevel" ]; then + rm -f "${pid_file:-/var/run/$base.pid}" + fi + return $RC +} + +# A function to find the pid of a program. Looks *only* at the pidfile +pidfileofproc() { + local pid + + # Test syntax. + if [ "$#" = 0 ] ; then + echo $"Usage: pidfileofproc {program}" + return 1 + fi + + __pids_var_run "$1" + [ -n "$pid" ] && echo $pid + return 0 +} + +# A function to find the pid of a program. +pidofproc() { + local RC pid pid_file= + + # Test syntax. + if [ "$#" = 0 ]; then + echo $"Usage: pidofproc [-p pidfile] {program}" + return 1 + fi + if [ "$1" = "-p" ]; then + pid_file=$2 + shift 2 + fi + fail_code=3 # "Program is not running" + + # First try "/var/run/*.pid" files + __pids_var_run "$1" "$pid_file" + RC=$? + if [ -n "$pid" ]; then + echo $pid + return 0 + fi + + [ -n "$pid_file" ] && return $RC + __pids_pidof "$1" || return $RC +} + +status() { + local base pid pid_file= + + # Test syntax. + if [ "$#" = 0 ] ; then + echo $"Usage: status [-p pidfile] {program}" + return 1 + fi + if [ "$1" = "-p" ]; then + pid_file=$2 + shift 2 + fi + base=${1##*/} + + # First try "pidof" + pid="$(__pids_pidof "$1")" + if [ -n "$pid" ]; then + echo $"${base} (pid $pid) is running..." + return 0 + fi + + # Next try "/var/run/*.pid" files + __pids_var_run "$1" "$pid_file" + case "$?" in + 0) + echo $"${base} (pid $pid) is running..." + return 0 + ;; + 1) + echo $"${base} dead but pid file exists" + return 1 + ;; + esac + # See if /var/lock/subsys/${base} exists + if [ -f /var/lock/subsys/${base} ]; then + echo $"${base} dead but subsys locked" + return 2 + fi + echo $"${base} is stopped" + return 3 +} + +echo_success() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS + echo -n $" OK " + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 0 +} + +echo_failure() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE + echo -n $"FAILED" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 1 +} + +echo_passed() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo -n $"PASSED" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 1 +} + +echo_warning() { + [ "$BOOTUP" = "color" ] && $MOVE_TO_COL + echo -n "[" + [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING + echo -n $"WARNING" + [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL + echo -n "]" + echo -ne "\r" + return 1 +} + +# Inform the graphical boot of our current state +update_boot_stage() { + if [ "$GRAPHICAL" = "yes" -a -x /usr/bin/rhgb-client ]; then + /usr/bin/rhgb-client --update="$1" + fi + return 0 +} + +# Log that something succeeded +success() { + #if [ -z "${IN_INITLOG:-}" ]; then + # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1 + #fi + [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_success + return 0 +} + +# Log that something failed +failure() { + local rc=$? + #if [ -z "${IN_INITLOG:-}" ]; then + # initlog $INITLOG_ARGS -n $0 -s "$1" -e 2 + #fi + [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_failure + [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes + return $rc +} + +# Log that something passed, but may have had errors. Useful for fsck +passed() { + local rc=$? + #if [ -z "${IN_INITLOG:-}" ]; then + # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1 + #fi + [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_passed + return $rc +} + +# Log a warning +warning() { + local rc=$? + #if [ -z "${IN_INITLOG:-}" ]; then + # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1 + #fi + [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_warning + return $rc +} + +# Run some action. Log its output. +action() { + local STRING rc + + STRING=$1 + echo -n "$STRING " + if [ "${RHGB_STARTED:-}" != "" -a -w /etc/rhgb/temp/rhgb-console ]; then + echo -n "$STRING " > /etc/rhgb/temp/rhgb-console + fi + shift + "$@" && success $"$STRING" || failure $"$STRING" + rc=$? + echo + if [ "${RHGB_STARTED:-}" != "" -a -w /etc/rhgb/temp/rhgb-console ]; then + if [ "$rc" = "0" ]; then + echo_success > /etc/rhgb/temp/rhgb-console + else + echo_failure > /etc/rhgb/temp/rhgb-console + [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes + fi + echo > /etc/rhgb/temp/rhgb-console + fi + return $rc +} + +# returns OK if $1 contains $2 +strstr() { + [ "${1#*$2*}" = "$1" ] && return 1 + return 0 +} + +# Confirm whether we really want to run this service +confirm() { + [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes + while : ; do + echo -n $"Start service $1 (Y)es/(N)o/(C)ontinue? [Y] " + read answer + if strstr $"yY" "$answer" || [ "$answer" = "" ] ; then + return 0 + elif strstr $"cC" "$answer" ; then + rm -f /var/run/confirm + [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=no + return 2 + elif strstr $"nN" "$answer" ; then + return 1 + fi + done +} + +# resolve a device node to its major:minor numbers in decimal or hex +get_numeric_dev() { +( + fmt="%d:%d" + if [ "$1" == "hex" ]; then + fmt="%x:%x" + fi + ls -lH "$2" | awk '{ sub(/,/, "", $5); printf("'"$fmt"'", $5, $6); }' +) 2>/dev/null +} + +# find the working name for a running dm device with the same table as one +# that dmraid would create +resolve_dm_name() { +( + name="$1" + + line=$(/sbin/dmraid -ay -t --ignorelocking | \ + egrep -iv "no block devices found|No RAID disks" | \ + awk -F ':' "{ if (\$1 ~ /^$name$/) { print \$2; }}") + for x in $line ; do + if [[ "$x" =~ "^/dev/" ]] ; then + majmin=$(get_numeric_dev dec $x) + line=$(echo "$line" | sed -e "s,$x\( \|$\),$majmin\1,g") + fi + done + line=$(echo "$line" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' \ + -e 's/ core [12] [[:digit:]]\+ / core [12] [[:digit:]]\\+ /') + /sbin/dmsetup table | \ + sed -n -e "s/.*\(no block devices found\|No devices found\).*//" \ + -e "s/\(^[^:]\+\): $line\( \+$\|$\)/\1/p" +) 2>/dev/null +} + +# Check whether file $1 is a backup or rpm-generated file and should be ignored +is_ignored_file() { + case "$1" in + *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave) + return 0 + ;; + esac + return 1 +} +# A sed expression to filter out the files that is_ignored_file recognizes +__sed_discard_ignored_files='/\(~\|\.bak\|\.orig\|\.rpmnew\|\.rpmorig\|\.rpmsave\)$/d' diff --git a/source/a/sysvinit-functions/slack-desc b/source/a/sysvinit-functions/slack-desc new file mode 100644 index 000000000..7d8e6182f --- /dev/null +++ b/source/a/sysvinit-functions/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sysvinit-functions: sysvinit-functions (/etc/init.d/functions) +sysvinit-functions: +sysvinit-functions: This is the /etc/init.d/functions file, the typical sysvinit-style +sysvinit-functions: directories, and a few supporting binaries. Using this system, +sysvinit-functions: subdirectories of /etc/rc.d/ are searched for scripts (which are +sysvinit-functions: usually symlinks to the script in /etc/init.d/ or /etc/rc.d/init.d/). +sysvinit-functions: The links must start with S to start a script or K to stop (kill) it. +sysvinit-functions: +sysvinit-functions: For the most part, these are useful for running software developed +sysvinit-functions: for other versions of Linux. +sysvinit-functions: diff --git a/source/a/sysvinit-functions/sysvinit-functions.SlackBuild b/source/a/sysvinit-functions/sysvinit-functions.SlackBuild new file mode 100755 index 000000000..9af7f9ec3 --- /dev/null +++ b/source/a/sysvinit-functions/sysvinit-functions.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-8.53} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit-functions + +rm -rf $PKG +mkdir -p $TMP $PKG + +# The functions that ship in /etc/rc.d/init.d are used mainly +# by Red Hat (and derived) systems. Most users will not need +# them, but since some commerical software makes the assuption +# that /etc/rc.d/init.d/functions will exist (and uses it), +# shipping at least it and the sysvinit runlevel directories +# will probably make life easier for everybody. We'll maybe +# ever consider splitting a few of the functions of the old +# venerable BSD-style init scripts into runlevel scripts (if +# it looks like it will make system maintainance easier). + +# Build supporting binaries: +cd $TMP +rm -rf function-src-$VERSION +# A small patch was applied to initlog to shut it the %^@& up. +tar xjf $CWD/function-src-$VERSION.tar.bz2 || exit 1 +cd function-src-$VERSION +make +find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +mkdir -p $PKG/bin $PKG/sbin $PKG/usr/man/man{1,8} +make install DESTDIR=$PKG +gzip -9 $PKG/usr/man/man?/*.? + +# The FHS/LSB is a little bit unclear as to what to do here -- +# /etc/rc.d/init.d has been declared "deprecated" for no good +# reason at all (commercial vendors couldn't find /etc/rc.d?), +# so we'll make both /etc/init.d and /etc/rc.d/init.d with the +# same contents. Hopefully this will make all the programs +# happy. +mkdir -p $PKG/etc/rc.d/init.d +for file in $CWD/README.functions $CWD/functions ; do + cat $file > $PKG/etc/rc.d/init.d/$(basename $file) +done +chmod 755 $PKG/etc/rc.d/init.d/functions + +# Make empty runlevel directories: +mkdir -p $PKG/etc/rc.d/rc{0,1,2,3,4,5,6}.d + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/sysvinit-functions-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit-scripts/doinst.sh b/source/a/sysvinit-scripts/doinst.sh new file mode 100644 index 000000000..ff0ffc285 --- /dev/null +++ b/source/a/sysvinit-scripts/doinst.sh @@ -0,0 +1,25 @@ + +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +# Slackware scripts +config etc/inittab.new +config etc/rc.d/rc.4.new +config etc/rc.d/rc.6.new +config etc/rc.d/rc.K.new +config etc/rc.d/rc.M.new +config etc/rc.d/rc.S.new +config etc/rc.d/rc.local.new +config etc/rc.d/rc.sysvinit.new + +( cd etc/rc.d ; rm -rf rc.0 ) +( cd etc/rc.d ; ln -sf rc.6 rc.0 ) + diff --git a/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh b/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh new file mode 100644 index 000000000..29dccf78a --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh @@ -0,0 +1 @@ +lftpget http://www.garloff.de/kurt/linux/rescan-scsi-bus.sh diff --git a/source/a/sysvinit-scripts/scripts/inittab b/source/a/sysvinit-scripts/scripts/inittab new file mode 100644 index 000000000..862f704c1 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/inittab @@ -0,0 +1,74 @@ +# +# inittab This file describes how the INIT process should set up +# the system in a certain run-level. +# +# Version: @(#)inittab 2.04 17/05/93 MvS +# 2.10 02/10/95 PV +# 3.00 02/06/1999 PV +# 4.00 04/10/2002 PV +# +# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org> +# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com> +# + +# These are the default runlevels in Slackware: +# 0 = halt +# 1 = single user mode +# 2 = unused (but configured the same as runlevel 3) +# 3 = multiuser mode (default Slackware runlevel) +# 4 = X11 with KDM/GDM/XDM (session managers) +# 5 = unused (but configured the same as runlevel 3) +# 6 = reboot + +# Default runlevel. (Do not set to 0 or 6) +id:3:initdefault: + +# System initialization (runs when system boots). +si:S:sysinit:/etc/rc.d/rc.S + +# Script to run when going single user (runlevel 1). +su:1S:wait:/etc/rc.d/rc.K + +# Script to run when going multi user. +rc:2345:wait:/etc/rc.d/rc.M + +# What to do at the "Three Finger Salute". +ca::ctrlaltdel:/sbin/shutdown -t5 -r now + +# Runlevel 0 halts the system. +l0:0:wait:/etc/rc.d/rc.0 + +# Runlevel 6 reboots the system. +l6:6:wait:/etc/rc.d/rc.6 + +# What to do when power fails. +pf::powerfail:/sbin/genpowerfail start + +# If power is back, cancel the running shutdown. +pg::powerokwait:/sbin/genpowerfail stop + +# These are the standard console login getties in multiuser mode: +c1:1235:respawn:/sbin/agetty 38400 tty1 linux +c2:1235:respawn:/sbin/agetty 38400 tty2 linux +c3:1235:respawn:/sbin/agetty 38400 tty3 linux +c4:1235:respawn:/sbin/agetty 38400 tty4 linux +c5:1235:respawn:/sbin/agetty 38400 tty5 linux +c6:12345:respawn:/sbin/agetty 38400 tty6 linux + +# Local serial lines: +#s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100 +#s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100 + +# Dialup lines: +#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100 +#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100 + +# Runlevel 4 used to be for an X window only system, until we discovered +# that it throws init into a loop that keeps your load avg at least 1 all +# the time. Thus, there is now one getty opened on tty6. Hopefully no one +# will notice. ;^) +# It might not be bad to have one text console anyway, in case something +# happens to X. +x1:4:respawn:/etc/rc.d/rc.4 + +# End of /etc/inittab diff --git a/source/a/sysvinit-scripts/scripts/rc.4 b/source/a/sysvinit-scripts/scripts/rc.4 new file mode 100644 index 000000000..be8a9c746 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.4 @@ -0,0 +1,48 @@ +#! /bin/sh +# +# rc.4 This file is executed by init(8) when the system is being +# initialized for run level 4 (XDM) +# +# Version: @(#)/etc/rc.d/rc.4 2.00 02/17/93 +# +# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +# At least 47% rewritten by: Patrick J. Volkerding <volkerdi@slackware.com> +# + +# Tell the viewers what's going to happen... +echo "Starting up X11 session manager..." + +# Try to use GNOME's gdm session manager. This comes first because if +# gdm is on the machine then the user probably installed it and wants +# to use it by default: +if [ -x /usr/bin/gdm ]; then + exec /usr/bin/gdm -nodaemon +fi + +# Someone thought that gdm looked prettier in /usr/sbin, +# so look there, too: +if [ -x /usr/sbin/gdm ]; then + exec /usr/sbin/gdm -nodaemon +fi + +# Not there? OK, try to use KDE's kdm session manager: +if [ -x /opt/kde/bin/kdm ]; then + exec /opt/kde/bin/kdm -nodaemon +elif [ -x /usr/bin/kdm ]; then + exec /usr/bin/kdm -nodaemon +fi + +# If all you have is XDM, I guess it will have to do: +if [ -x /usr/bin/xdm ]; then + exec /usr/bin/xdm -nodaemon +elif [ -x /usr/X11R6/bin/xdm ]; then + exec /usr/X11R6/bin/xdm -nodaemon +fi + +# error +echo +echo "Hey, you don't have KDM, GDM, or XDM. Can't use runlevel 4 without" +echo "one of those installed." +sleep 30 + +# All done. diff --git a/source/a/sysvinit-scripts/scripts/rc.6 b/source/a/sysvinit-scripts/scripts/rc.6 new file mode 100644 index 000000000..2d5028e35 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.6 @@ -0,0 +1,266 @@ +#! /bin/sh +# +# rc.6 This file is executed by init when it goes into runlevel +# 0 (halt) or runlevel 6 (reboot). It kills all processes, +# unmounts file systems and then either halts or reboots. +# +# Version: @(#)/etc/rc.d/rc.6 2.47 Sat Jan 13 13:37:26 PST 2001 +# +# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org> +# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com> +# + +# Set the path. +PATH=/sbin:/etc:/bin:/usr/bin + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Set linefeed mode to avoid staircase effect. +/bin/stty onlcr + +echo "Running shutdown script $0:" + +# Find out how we were called. +case "$0" in + *0) + command="halt" + ;; + *6) + command=reboot + ;; + *) + echo "$0: call me as \"rc.0\" or \"rc.6\" please!" + exit 1 + ;; +esac + +# Save the system time to the hardware clock using hwclock --systohc. +if [ -x /sbin/hwclock ]; then + # Check for a broken motherboard RTC clock (where ioports for rtc are + # unknown) to prevent hwclock causing a hang: + if ! grep -q -w rtc /proc/ioports ; then + CLOCK_OPT="--directisa" + fi + if grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then + echo "Saving system time to the hardware clock (UTC)." + /sbin/hwclock $CLOCK_OPT --utc --systohc + else + echo "Saving system time to the hardware clock (localtime)." + /sbin/hwclock $CLOCK_OPT --localtime --systohc + fi +fi + +# Run any local shutdown scripts: +if [ -x /etc/rc.d/rc.local_shutdown ]; then + /etc/rc.d/rc.local_shutdown stop +fi + +# Stop the Apache web server: +if [ -x /etc/rc.d/rc.httpd ]; then + /etc/rc.d/rc.httpd stop +fi + +# Stop the MySQL database: +if [ -r /var/run/mysql/mysql.pid ]; then + . /etc/rc.d/rc.mysqld stop +fi + +# Stop the Samba server: +if [ -x /etc/rc.d/rc.samba ]; then + . /etc/rc.d/rc.samba stop +fi + +# Shut down the NFS server: +if [ -x /etc/rc.d/rc.nfsd ]; then + /etc/rc.d/rc.nfsd stop +fi + +# Shut down the SSH server: +if [ -x /etc/rc.d/rc.sshd ]; then + /etc/rc.d/rc.sshd stop +fi + +# Shut down the SASL authentication daemon: +if [ -x /etc/rc.d/rc.saslauthd ]; then + /etc/rc.d/rc.saslauthd stop +fi + +# Shut down OpenLDAP: +if [ -x /etc/rc.d/rc.openldap ]; then + /etc/rc.d/rc.openldap stop +fi + +# Stop D-Bus: +if [ -x /etc/rc.d/rc.messagebus ]; then + sh /etc/rc.d/rc.messagebus stop +fi + +# Unmount any NFS, SMB, or CIFS filesystems: +echo "Unmounting remote filesystems." +/bin/umount -v -a -r -t nfs,smbfs,cifs + +# Try to shut down pppd: +PS="$(ps ax)" +if echo "$PS" | /bin/grep -q -w pppd ; then + if [ -x /usr/sbin/ppp-off ]; then + /usr/sbin/ppp-off + fi +fi + +# Bring down the networking system, but first make sure that this +# isn't a diskless client with the / partition mounted via NFS: +if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then + if [ -x /etc/rc.d/rc.inet1 ]; then + . /etc/rc.d/rc.inet1 stop + fi +fi + +# In case dhcpcd might have been manually started on the command line, +# look for the .pid file, and shut dhcpcd down if it's found: +if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then + /sbin/dhcpcd -k 1> /dev/null 2> /dev/null + # A little time for /etc/resolv.conf and/or other files to + # restore themselves. + sleep 2 +fi + +# Shut down PCMCIA devices: +if [ -x /etc/rc.d/rc.pcmcia ]; then + . /etc/rc.d/rc.pcmcia stop + # The cards might need a little extra time here to deactivate: + /bin/sleep 5 +fi + +# Turn off process accounting: +if [ -x /sbin/accton -a -r /var/log/pacct ]; then + /sbin/accton off +fi + +# Terminate acpid before syslog: +if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit + . /etc/rc.d/rc.acpid stop +fi + +# Kill all processes. +# INIT is supposed to handle this entirely now, but this didn't always +# work correctly without this second pass at killing off the processes. +# Since INIT already notified the user that processes were being killed, +# we'll avoid echoing this info this time around. +if [ ! "$1" = "fast" ]; then # shutdown did not already kill all processes + /sbin/killall5 -15 + /bin/sleep 5 + /sbin/killall5 -9 +fi + +# Try to turn off quota. +if /bin/grep -q quota /etc/fstab ; then + if [ -x /sbin/quotaoff ]; then + echo "Turning off filesystem quotas." + /sbin/quotaoff -a + fi +fi + +# Carry a random seed between reboots. +echo "Saving random seed from /dev/urandom in /etc/random-seed." +# Use the pool size from /proc, or 512 bytes: +if [ -r /proc/sys/kernel/random/poolsize ]; then + /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(cat /proc/sys/kernel/random/poolsize) 2> /dev/null +else + /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null +fi +/bin/chmod 600 /etc/random-seed + +# Before unmounting file systems write a reboot or halt record to wtmp. +$command -w + +# Clear /var/lock/subsys. +if [ -d /var/lock/subsys ]; then + rm -f /var/lock/subsys/* +fi + +# Turn off swap: +echo "Turning off swap." +/sbin/swapoff -a +/bin/sync + +# Umount any LVM volumes: +if /bin/mount | /bin/grep -q '^/dev/mapper/' ; then + echo "Unmounting LVM volumes." + /bin/umount -v $(/bin/mount | /bin/grep '^/dev/mapper/' | /bin/cut -d ' ' -f 3 | /bin/tac) +fi + +echo "Unmounting local file systems." +/bin/umount -v -a -t no,proc,sysfs + +echo "Remounting root filesystem read-only." +/bin/mount -v -n -o remount,ro / + +# This never hurts: +/bin/sync + +# Close any volumes opened by cryptsetup: +if [ -f /etc/crypttab -a -x /sbin/cryptsetup.static ]; then + cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do + # NOTE: we only support LUKS formatted volumes (except for swap)! + LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ') + DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ') + OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ') + if /sbin/cryptsetup.static isLuks $DEV 2>/dev/null ; then + echo "Locking LUKS crypt volume '${LUKS}':" + /sbin/cryptsetup.static luksClose ${LUKS} + elif echo $OPTS | grep -wq swap ; then + # If any of the volumes was used as encrypted swap, + # then run mkswap on the underlying device - + # in case other Linux installations on this computer should use it: + echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:" + /sbin/cryptsetup.static remove ${LUKS} + mkswap $DEV + fi + done +fi + +# Deactivate LVM volume groups: +if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then + echo "Deactivating LVM volume groups:" + /sbin/vgchange -an --ignorelockingfailure +fi + +# This never hurts again (especially since root-on-LVM always fails +# to deactivate the / logical volume... but at least it was +# remounted as read-only first) +/bin/sync + +# sleep 3 fixes problems with some hard drives that don't +# otherwise finish syncing before reboot or poweroff +/bin/sleep 3 + +# This is to ensure all processes have completed on SMP machines: +wait + +if [ -x /sbin/genpowerd ]; then + # See if this is a powerfail situation: + if /bin/egrep -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then + # Signal UPS to shut off the inverter: + /sbin/genpowerd -k + if [ ! $? = 0 ]; then + echo + echo "There was an error signaling the UPS." + echo "Perhaps you need to edit /etc/genpowerd.conf to configure" + echo "the serial line and UPS type." + # Wasting 15 seconds of precious power: + /bin/sleep 15 + fi + fi +fi + +# Now halt (poweroff with APM or ACPI enabled kernels) or reboot. +if [ "$command" = "reboot" ]; then + echo "Rebooting." + /sbin/reboot +else + /sbin/poweroff +fi + diff --git a/source/a/sysvinit-scripts/scripts/rc.K b/source/a/sysvinit-scripts/scripts/rc.K new file mode 100644 index 000000000..68609753a --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.K @@ -0,0 +1,106 @@ +#! /bin/sh +# +# rc.K This file is executed by init when it goes into runlevel +# 1, which is the administrative state. It kills all +# daemons and then puts the system into single user mode. +# Note that the file systems are kept mounted. +# +# Version: @(#)/etc/rc.d/rc.K 3.1415 Sat Jan 13 13:37:26 PST 2001 +# +# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org> +# Modified by: Patrick J. Volkerding <volkerdi@slackware.com> +# + +# Set the path. +PATH=/sbin:/bin:/usr/bin:/usr/sbin + +# Load any needed keyboard mappings: +if [ -x /etc/rc.d/rc.keymap ]; then + . /etc/rc.d/rc.keymap +fi + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Try to turn off quota: +if grep -q quota /etc/fstab ; then + if [ -x /sbin/quotaoff ]; then + echo "Turning off filesystem quotas." + /sbin/quotaoff -a + fi +fi + +# Try to turn off accounting: +if [ -x /sbin/accton -a -r /var/log/pacct ]; then + /sbin/accton off +fi + +# Run any local shutdown scripts: +if [ -x /etc/rc.d/rc.local_shutdown ]; then + /etc/rc.d/rc.local_shutdown stop +fi + +# Stop the Apache web server: +if [ -x /etc/rc.d/rc.httpd ]; then + /etc/rc.d/rc.httpd stop +fi + +# Stop the Samba server: +if [ -x /etc/rc.d/rc.samba ]; then + . /etc/rc.d/rc.samba stop +fi + +# Shut down the NFS server: +if [ -x /etc/rc.d/rc.nfsd ]; then + /etc/rc.d/rc.nfsd stop +fi + +# Unmount any NFS, SMB, or CIFS filesystems: +echo "Unmounting remote filesystems." +umount -a -r -t nfs,smbfs,cifs + +# Shut down PCMCIA devices: +if [ -x /etc/rc.d/rc.pcmcia ] ; then + . /etc/rc.d/rc.pcmcia stop + # The cards might need a little extra time here to deactivate: + sleep 5 +fi + +# Terminate acpid before syslog: +if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit + . /etc/rc.d/rc.acpid stop +fi + +# Kill all processes. +echo +echo "Sending all processes the SIGHUP signal." +killall5 -1 +echo -n "Waiting for processes to hang up" +for loop in 0 1 2 3 4 5 ; do + sleep 1 + echo -n "." +done +echo +echo "Sending all processes the SIGTERM signal." +killall5 -15 +echo -n "Waiting for processes to terminate" +for loop in 0 1 2 3 4 5 ; do + sleep 1 + echo -n "." +done +echo +echo "Sending all processes the SIGKILL signal." +killall5 -9 +echo -n "Waiting for processes to exit" +for loop in 0 1 2 3 4 5 ; do + sleep 1 + echo -n "." +done +echo + +# Now go to the single user level +echo "Going to single user mode..." +telinit -t 1 1 + diff --git a/source/a/sysvinit-scripts/scripts/rc.M b/source/a/sysvinit-scripts/scripts/rc.M new file mode 100644 index 000000000..fe2c9b6f0 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.M @@ -0,0 +1,355 @@ +#!/bin/sh +# +# rc.M This file is executed by init(8) when the system is being +# initialized for one of the "multi user" run levels (i.e. +# levels 1 through 6). It usually does mounting of file +# systems et al. +# +# Version: @(#)/etc/rc.d/rc.M 2.23 Wed Feb 26 19:20:58 PST 2003 +# +# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +# Heavily modified by Patrick Volkerding <volkerdi@slackware.com> +# + +# Tell the viewers what's going to happen. +echo "Going multiuser..." + +# Update all the shared library links: +if [ -x /sbin/ldconfig ]; then + echo "Updating shared library links: /sbin/ldconfig &" + /sbin/ldconfig & +fi + +# Screen blanks after 15 minutes idle time, and powers down in one hour +# if the kernel supports APM or ACPI power management: +/bin/setterm -blank 15 -powersave powerdown -powerdown 60 + +# Set the hostname. +if [ -r /etc/HOSTNAME ]; then + /bin/hostname $(cat /etc/HOSTNAME | cut -f1 -d .) +else + # fall back on this old default: + echo "darkstar.example.net" > /etc/HOSTNAME + /bin/hostname darkstar +fi + +# Save the contents of 'dmesg': +/bin/dmesg -s 65536 > /var/log/dmesg + +# Initialize PCMCIA devices: +# +# NOTE: This used to be started near the top of rc.S so that PCMCIA devices +# could be fsck'ed along with the other drives. This had some unfortunate +# side effects, however, since root isn't yet read-write, and /var might not +# even be mounted the .pid files can't be correctly written in /var/run and +# the pcmcia system can't be correctly shut down. If you want some PCMCIA +# partition to be mounted at boot (or when the card is inserted) then add +# the appropriate lines to /etc/pcmcia/scsi.opts. +# +# Note that the stuff in /etc/pcmcia/ is only for 2.4.x kernels using +# 16-bit PCMCIA cards (not 32-bit Cardbus cards!). For example, with a +# wireless card you might need to set options in /etc/pcmcia OR in +# /etc/rc.d/rc.wireless.conf, or even in /etc/rc.d/rc.inet1.conf (with +# extra options if needed for the encryption key, ESSID, etc.) +# +# Hopefully this situation will be unified in the future, but for now +# that's how it is... +# +if [ -x /etc/rc.d/rc.pcmcia ]; then + . /etc/rc.d/rc.pcmcia start + # The cards might need a little extra time here to initialize. + sleep 5 +fi + +# Start the system logger. +if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then + . /etc/rc.d/rc.syslog start +fi + +# Update the X font indexes: +if [ -x /usr/bin/fc-cache ]; then + echo "Updating X font indexes: /usr/bin/fc-cache -f &" + /usr/bin/fc-cache -f & +fi + +# If we are returning from single-user mode we will need to restart +# udevd on systems that use udev: +if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems ; then + if ! grep -wq nohotplug /proc/cmdline ; then + if [ -x /etc/rc.d/rc.udev ]; then + /bin/sh /etc/rc.d/rc.udev start + fi + fi +fi + +# Initialize the networking hardware. +if [ -x /etc/rc.d/rc.inet1 ]; then + . /etc/rc.d/rc.inet1 +fi + +# Look for additional USB/SCSI/IEEE1394/etc devices on multiple LUNs: +if [ -x /etc/rc.d/rc.scanluns ]; then + . /etc/rc.d/rc.scanluns +fi + +# Start networking daemons: +if [ -x /etc/rc.d/rc.inet2 ]; then + . /etc/rc.d/rc.inet2 +fi + +# Mount any additional filesystem types that haven't already been mounted: +mount -a -v 2> /dev/null | grep -v "already mounted" + +# Start the Network Time Protocol daemon: +if [ -x /etc/rc.d/rc.ntpd ]; then + sh /etc/rc.d/rc.ntpd start +fi + +# Remove stale locks and junk files (must be done after mount -a!) +/bin/rm -f /var/lock/* /var/spool/uucp/LCK..* /tmp/.X*lock /tmp/core /core 2> /dev/null + +# Remove stale hunt sockets so the game can start. +if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then + echo "Removing your stale hunt sockets from /tmp." + /bin/rm -f /tmp/hunt* +fi + +# Ensure basic filesystem permissions sanity. +chmod 755 / 2> /dev/null +chmod 1777 /tmp /var/tmp + +# Start APM or ACPI daemon. +# If APM is enabled in the kernel, start apmd: +if [ -e /proc/apm ]; then + if [ -x /usr/sbin/apmd ]; then + echo "Starting APM daemon: /usr/sbin/apmd" + /usr/sbin/apmd + fi +elif [ -x /etc/rc.d/rc.acpid ]; then # otherwise, start acpid: + . /etc/rc.d/rc.acpid start +fi + +# Update any existing icon cache files: +if find /usr/share/icons 2> /dev/null | grep -q icon-theme.cache ; then + for theme_dir in /usr/share/icons/* ; do + if [ -r ${theme_dir}/icon-theme.cache ]; then + echo "Updating icon-theme.cache in ${theme_dir}..." + /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null & + fi + done + # This would be a large file and probably shouldn't be there. + if [ -r /usr/share/icons/icon-theme.cache ]; then + echo "Deleting icon-theme.cache in /usr/share/icons..." + #/usr/bin/gtk-update-icon-cache -t -f /usr/share/icons 1> /dev/null 2> /dev/null & + rm -f /usr/share/icons/icon-theme.cache + fi +fi + +# Update mime database: +if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then + echo "Updating MIME database: /usr/bin/update-mime-database /usr/share/mime &" + /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null & +fi + +# Start D-Bus: +if [ -x /etc/rc.d/rc.messagebus ]; then + sh /etc/rc.d/rc.messagebus start +fi + +# Start HAL: +if [ -x /etc/rc.d/rc.hald ]; then + sh /etc/rc.d/rc.hald start +fi + +# Start Bluetooth: +if [ -x /etc/rc.d/rc.bluetooth ]; then + sh /etc/rc.d/rc.bluetooth start +fi + +# Start wicd: +if [ -x /etc/rc.d/rc.wicd ]; then + sh /etc/rc.d/rc.wicd start +fi + +# These GTK+/pango files need to be kept up to date for +# proper input method, pixbuf loaders, and font support. +if [ -x /usr/bin/update-gtk-immodules ]; then + /usr/bin/update-gtk-immodules --verbose +fi +if [ -x /usr/bin/update-gdk-pixbuf-loaders ]; then + /usr/bin/update-gdk-pixbuf-loaders --verbose +fi +if [ -x /usr/bin/update-pango-querymodules ]; then + /usr/bin/update-pango-querymodules --verbose +fi + +# Start dnsmasq, a simple DHCP/DNS server: +if [ -x /etc/rc.d/rc.dnsmasq ]; then + /etc/rc.d/rc.dnsmasq start +fi + +# Start snmpd: +if [ -x /etc/rc.d/rc.snmpd ]; then + /etc/rc.d/rc.snmpd start +fi + +# Start the print spooling system. This will usually be LPRng (lpd) or CUPS. +if [ -x /etc/rc.d/rc.cups ]; then + # Start CUPS: + /etc/rc.d/rc.cups start +elif [ -x /etc/rc.d/rc.lprng ]; then + # Start LPRng (lpd): + . /etc/rc.d/rc.lprng start +fi + +# Start netatalk. (a file/print server for Macs using Appletalk) +if [ -x /etc/rc.d/rc.atalk ]; then + /etc/rc.d/rc.atalk +fi + +# Start smartd, which monitors the status of S.M.A.R.T. compatible +# hard drives and reports any problems. Note some devices (which aren't +# smart, I guess ;) will hang if probed by smartd, so it's commented out +# by default. +#if [ -x /usr/sbin/smartd ]; then +# /usr/sbin/smartd +#fi + +# If we're using udev, make /dev/cdrom and any other optical drive symlinks +# if some udev rule hasn't made them already: +if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems; then + if ! grep -wq nohotplug /proc/cmdline ; then + if [ -x /lib/udev/rc.optical-symlinks -a -x /etc/rc.d/rc.udev ]; then + /bin/sh /lib/udev/rc.optical-symlinks + fi + fi +fi + +# Monitor the UPS with genpowerd. +# To use this, uncomment this section and edit your settings in +# /etc/genpowerd.conf (serial device, UPS type, etc). For more information, +# see "man genpowerd" or the extensive documentation in the +# /usr/doc/genpower-*/ directory. +# You'll also need to configure a similar block in /etc/rc.d/rc.6 if you want +# support for stopping the UPS's inverter after the machine halts. +#if [ -x /sbin/genpowerd ]; then +# echo "Starting genpowerd daemon..." +# /sbin/genpowerd +#fi + +# Turn on process accounting. To enable process accounting, make sure the +# option for BSD process accounting is enabled in your kernel, and then +# create the file /var/log/pacct (touch /var/log/pacct). By default, process +# accounting is not enabled (since /var/log/pacct does not exist). This is +# because the log file can get VERY large. +if [ -x /sbin/accton -a -r /var/log/pacct ]; then + chmod 640 /var/log/pacct + /sbin/accton /var/log/pacct +fi + +# Start crond (Dillon's crond): +# If you want cron to actually log activity to /var/log/cron, then change +# -l10 to -l8 to increase the logging level. +if [ -x /usr/sbin/crond ]; then + /usr/sbin/crond -l10 >>/var/log/cron 2>&1 +fi + +# Start atd (manages jobs scheduled with 'at'): +if [ -x /usr/sbin/atd ]; then + /usr/sbin/atd -b 15 -l 1 +fi + +# Slackware-Mini-Quota-HOWTO: +# To really activate quotas, you'll need to add 'usrquota' and/or 'grpquota' to +# the appropriate partitions as listed in /etc/fstab. Here's an example: +# +# /dev/hda2 /home ext3 defaults,usrquota 1 1 +# +# You'll then need to setup initial quota files at the top of the partitions +# to support quota, like this: +# touch /home/aquota.user /home/aquota.group +# chmod 600 /home/aquota.user /home/aquota.group +# +# Then, reboot to activate the system. +# To edit user quotas, use 'edquota'. See 'man edquota'. Also, the +# official Quota Mini-HOWTO has lots of useful information. That can be found +# here: /usr/doc/Linux-HOWTOs/Quota + +# Check quotas and then turn quota system on: +if grep -q quota /etc/fstab ; then + for quotafs in $(awk '/quota/ {print $2}' /etc/fstab) ; do + /bin/rm -f $quotafs/{a,}quota.{group,user}.new + done + if [ -x /sbin/quotacheck ]; then + echo "Checking filesystem quotas: /sbin/quotacheck -avugm" + /sbin/quotacheck -avugm + fi + if [ -x /sbin/quotaon ]; then + echo "Activating filesystem quotas: /sbin/quotaon -avug" + /sbin/quotaon -avug + fi +fi + +# Start the SASL authentication server. This provides SASL +# authentication services for sendmail: +if [ -x /etc/rc.d/rc.saslauthd ]; then + . /etc/rc.d/rc.saslauthd start +fi + +# Start the sendmail daemon: +if [ -x /etc/rc.d/rc.sendmail ]; then + . /etc/rc.d/rc.sendmail start +fi + +# Load ALSA (sound) defaults: +if [ -x /etc/rc.d/rc.alsa ]; then + . /etc/rc.d/rc.alsa +fi + +# Load a custom screen font if the user has an rc.font script. +if [ -x /etc/rc.d/rc.font ]; then + . /etc/rc.d/rc.font +fi + +# Load a custom keymap if the user has an rc.keymap script. +if [ -x /etc/rc.d/rc.keymap ]; then + . /etc/rc.d/rc.keymap +fi + +# Start the MySQL database: +if [ -x /etc/rc.d/rc.mysqld ]; then + . /etc/rc.d/rc.mysqld start +fi + +# Start Apache web server: +if [ -x /etc/rc.d/rc.httpd ]; then + . /etc/rc.d/rc.httpd start +fi + +# Start OpenLDAP: +if [ -x /etc/rc.d/rc.openldap ]; then + . /etc/rc.d/rc.openldap start +fi + +# Start Samba (a file/print server for Win95/NT machines). +# Samba can be started in /etc/inetd.conf instead. +if [ -x /etc/rc.d/rc.samba ]; then + . /etc/rc.d/rc.samba start +fi + +# Start the GPM mouse server: +if [ -x /etc/rc.d/rc.gpm ]; then + . /etc/rc.d/rc.gpm start +fi + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Start the local setup procedure. +if [ -x /etc/rc.d/rc.local ]; then + . /etc/rc.d/rc.local +fi + +# All done. diff --git a/source/a/sysvinit-scripts/scripts/rc.S b/source/a/sysvinit-scripts/scripts/rc.S new file mode 100644 index 000000000..a0072d286 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.S @@ -0,0 +1,382 @@ +#!/bin/sh +# +# /etc/rc.d/rc.S: System initialization script. +# +# Mostly written by: Patrick J. Volkerding, <volkerdi@slackware.com> +# + +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +# Mount /proc right away: +/sbin/mount -v proc /proc -n -t proc + +# Mount sysfs next, if the kernel supports it: +if [ -d /sys ]; then + if grep -wq sysfs /proc/filesystems ; then + if ! grep -wq sysfs /proc/mounts ; then + /sbin/mount -v sysfs /sys -n -t sysfs + fi + fi +fi + +# Initialize udev to manage /dev entries and hotplugging for 2.6.x kernels. +# You may turn off udev by making the /etc/rc.d/rc.udev file non-executable +# or giving the "nohotplug" option at boot, but in the 2.6.x+ kernels udev +# has taken over the job of hotplug (finding hardware and loading the kernel +# modules for it, as well as creating device nodes in /dev). Realize that +# if you turn off udev that you will have to load all the kernel modules +# that you need yourself (possibly in /etc/rc.d/rc.modules, which does not +# promise to list all of them), and make any additional device nodes that you +# need in the /dev directory. Even USB and IEEE1394 devices will need to have +# the modules loaded by hand if udev is not used with a 2.6 kernel. So use it. :-) +if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems ; then + if ! grep -wq nohotplug /proc/cmdline ; then + if [ -x /etc/rc.d/rc.udev ]; then + /bin/sh /etc/rc.d/rc.udev start + fi + fi +fi + +# Initialize the Logical Volume Manager. +# This won't start unless we find /etc/lvmtab (LVM1) or +# /etc/lvm/backup/ (LVM2). This is created by /sbin/vgscan, so to +# use LVM you must run /sbin/vgscan yourself the first time (and +# create some VGs and LVs). +if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then + echo "Initializing LVM (Logical Volume Manager):" + # Check for device-mapper support. + if ! grep -wq device-mapper /proc/devices ; then + # Try to load a device-mapper kernel module: + /sbin/modprobe -q dm-mod + fi + # Scan for new volume groups: + /sbin/vgscan --mknodes --ignorelockingfailure 2> /dev/null + if [ $? = 0 ]; then + # Make volume groups available to the kernel. + # This should also make logical volumes available. + /sbin/vgchange -ay --ignorelockingfailure + fi +fi + +# Open any volumes created by cryptsetup: +if [ -f /etc/crypttab -a -x /sbin/cryptsetup.static ]; then + # First, check for device-mapper support. + if ! grep -wq device-mapper /proc/devices ; then + # If device-mapper exists as a module, try to load it. + # Try to load a device-mapper kernel module: + /sbin/modprobe -q dm-mod + fi + # NOTE: we only support LUKS formatted volumes (except for swap)! + cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do + eval LUKSARRAY=( $line ) + LUKS="${LUKSARRAY[0]}" + DEV="${LUKSARRAY[1]}" + PASS="${LUKSARRAY[2]}" + OPTS="${LUKSARRAY[3]}" + LUKSOPTS="" + if echo $OPTS | grep -wq ro ; then LUKSOPTS="${LUKSOPTS} --readonly" ; fi + + # Skip LUKS volumes that were already unlocked (in the initrd): + /sbin/cryptsetup.static status $LUKS 1>/dev/null 2>/dev/null && continue + if /sbin/cryptsetup.static isLuks $DEV 2>/dev/null ; then + echo "Unlocking LUKS crypt volume '${LUKS}' on device '$DEV':" + if [ -n "${PASS}" ]; then + if [ -f ${PASS} ]; then + /sbin/cryptsetup.static ${LUKSOPTS} --key-file=${PASS} luksOpen $DEV $LUKS + elif [ "${PASS}" != "none" ]; then + # A password field of 'none' indicates a line for swap: + echo "${PASS}" | /sbin/cryptsetup.static ${LUKSOPTS} luksOpen $DEV $LUKS + fi + else + for i in seq 1 3 ; do + /sbin/cryptsetup.static ${LUKSOPTS} luksOpen $DEV $LUKS </dev/tty0 >/dev/tty0 2>&1 + [ $? -eq 0 ] && break + done + fi + elif echo $OPTS | grep -wq swap ; then + # If any of the volumes is to be used as encrypted swap, + # then encrypt it using a random key and run mkswap: + echo "Creating encrypted swap on device '$DEV' mapped to '${LUKS}':" + /sbin/cryptsetup.static --cipher=aes --key-file=/dev/urandom --key-size=256 create $LUKS $DEV + mkswap /dev/mapper/$LUKS + fi + done +fi + +# Enable swapping: +/sbin/swapon -a + +# Start FUSE, if requested: +if [ -x /etc/rc.d/rc.fuse ]; then + sh /etc/rc.d/rc.fuse start +fi + +# Set the system time from the hardware clock using hwclock --hctosys. +if [ -x /sbin/hwclock ]; then + # Check for a broken motherboard RTC clock (where ioports for rtc are + # unknown) to prevent hwclock causing a hang: + if ! grep -q -w rtc /proc/ioports ; then + CLOCK_OPT="--directisa" + fi + if grep -wq "^UTC" /etc/hardwareclock ; then + echo "Setting system time from the hardware clock (UTC)." + /sbin/hwclock $CLOCK_OPT --utc --hctosys + else + echo "Setting system time from the hardware clock (localtime)." + /sbin/hwclock $CLOCK_OPT --localtime --hctosys + fi +fi + +# Test to see if the root partition is read-only, like it ought to be. +READWRITE=no +if touch /fsrwtestfile 2>/dev/null; then + rm -f /fsrwtestfile + READWRITE=yes +else + echo "Testing root filesystem status: read-only filesystem" +fi + +# See if a forced filesystem check was requested at shutdown: +if [ -r /etc/forcefsck ]; then + FORCEFSCK="-f" +fi + +# Check the root filesystem: +if [ ! $READWRITE = yes ]; then + RETVAL=0 + if [ ! -r /etc/fastboot ]; then + echo "Checking root filesystem:" + /sbin/fsck $FORCEFSCK -C -a / + RETVAL=$? + fi + # An error code of 2 or higher will require a reboot. + if [ $RETVAL -ge 2 ]; then + # An error code equal to or greater than 4 means that some errors + # could not be corrected. This requires manual attention, so we + # offer a chance to try to fix the problem in single-user mode: + if [ $RETVAL -ge 4 ]; then + echo + echo "***********************************************************" + echo "*** An error occurred during the root filesystem check. ***" + echo "*** You will now be given a chance to log into the ***" + echo "*** system in single-user mode to fix the problem. ***" + echo "*** ***" + echo "*** If you are using the ext2 filesystem, running ***" + echo "*** 'e2fsck -v -y <partition>' might help. ***" + echo "***********************************************************" + echo + echo "Once you exit the single-user shell, the system will reboot." + echo + PS1="(Repair filesystem) \#"; export PS1 + sulogin + else # With an error code of 2 or 3, reboot the machine automatically: + echo + echo "***********************************" + echo "*** The filesystem was changed. ***" + echo "*** The system will now reboot. ***" + echo "***********************************" + echo + fi + echo "Unmounting file systems." + /sbin/umount -a -r + /sbin/mount -n -o remount,ro / + echo "Rebooting system." + sleep 2 + reboot -f + fi + # Remount the root filesystem in read-write mode + echo "Remounting root device with read-write enabled." + /sbin/mount -w -v -n -o remount / + if [ $? -gt 0 ] ; then + echo + echo "Attempt to remount root device as read-write failed! This is going to" + echo "cause serious problems." + echo + echo "If you're using the UMSDOS filesystem, you **MUST** mount the root partition" + echo "read-write! You can make sure the root filesystem is getting mounted " + echo "read-write with the 'rw' flag to Loadlin:" + echo + echo "loadlin vmlinuz root=/dev/hda1 rw (replace /dev/hda1 with your root device)" + echo + echo "Normal bootdisks can be made to mount a system read-write with the rdev command:" + echo + echo "rdev -R /dev/fd0 0" + echo + echo "You can also get into your system by using a boot disk with a command like this" + echo "on the LILO prompt line: (change the root partition name as needed)" + echo + echo "LILO: mount root=/dev/hda1 rw" + echo + echo "Please press ENTER to continue, then reboot and use one of the above methods to" + echo -n "get into your machine and start looking for the problem. " + read junk; + fi +else + echo "Testing root filesystem status: read-write filesystem" + echo + echo "*** ERROR: Root partition has already been mounted read-write. Cannot check!" + echo + echo "For filesystem checking to work properly, your system must initially mount" + echo "the root partition as read only. Please modify your kernel with 'rdev' so that" + echo "it does this. If you're booting with LILO, add a line:" + echo + echo " read-only" + echo + echo "to the Linux section in your /etc/lilo.conf and type 'lilo' to reinstall it." + echo + echo "If you boot from a kernel on a floppy disk, put it in the drive and type:" + echo " rdev -R /dev/fd0 1" + echo + echo "If you boot from a bootdisk, or with Loadlin, you can add the 'ro' flag." + echo + echo "This will fix the problem *AND* eliminate this annoying message. :^)" + echo + echo -n "Press ENTER to continue. " + read junk; +fi # Done checking root filesystem + +# Any /etc/mtab that exists here is old, so we delete it to start over: +/bin/rm -f /etc/mtab* +# Remounting the / partition will initialize the new /etc/mtab: +/sbin/mount -w -o remount / + +# Read in the correct / filesystem complete with arguments so mount will +# show them correctly. This does not stop those arguments from functioning +# but does prevent a small bug with /etc/mtab. +/bin/grep ' / ' /proc/mounts | grep -v "^rootfs" > /etc/mtab + +# Fix /etc/mtab to list sys and proc if they were not yet entered in +# /etc/mtab because / was still mounted read-only: +if [ -d /proc/sys ]; then + /sbin/mount -f proc /proc -t proc +fi +if [ -d /sys/bus ]; then + /sbin/mount -f sysfs /sys -t sysfs +fi + +# Configure ISA Plug-and-Play devices: +if [ -r /etc/isapnp.conf ]; then + if [ -x /sbin/isapnp ]; then + /sbin/isapnp /etc/isapnp.conf + fi +fi + +# This loads any kernel modules that are needed. These might be required to +# use your ethernet card, sound card, or other optional hardware. +# Priority is given first to a script named "rc.modules.local", then +# to "rc.modules-$FULL_KERNEL_VERSION", and finally to the plain "rc.modules". +# Note that if /etc/rc.d/rc.modules.local is found, then that will be the ONLY +# rc.modules script the machine will run, so make sure it has everything in +# it that you need. +if [ -x /etc/rc.d/rc.modules.local -a -r /proc/modules ]; then + echo "Running /etc/rc.d/rc.modules.local:" + /bin/sh /etc/rc.d/rc.modules.local +elif [ -x /etc/rc.d/rc.modules-$(uname -r) -a -r /proc/modules ]; then + echo "Running /etc/rc.d/rc.modules-$(uname -r):" + . /etc/rc.d/rc.modules-$(uname -r) +elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules -a -L /etc/rc.d/rc.modules ]; then + echo "Running /etc/rc.d/rc.modules -> $(readlink /etc/rc.d/rc.modules):" + . /etc/rc.d/rc.modules +elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules ]; then + echo "Running /etc/rc.d/rc.modules:" + . /etc/rc.d/rc.modules +fi + +# Configure runtime kernel parameters: +if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then + /sbin/sysctl -e -p /etc/sysctl.conf +fi + +# Check all the non-root filesystems: +if [ ! -r /etc/fastboot ]; then + echo "Checking non-root filesystems:" + /sbin/fsck $FORCEFSCK -C -R -A -a +fi + +# Mount usbfs: +if grep -wq usbfs /proc/filesystems; then + if ! grep -wq usbfs /proc/mounts ; then + if ! grep -wq usbfs /etc/fstab; then + /sbin/mount -v usbfs /proc/bus/usb -t usbfs + else + /sbin/mount -v /proc/bus/usb + fi + fi +fi + +# Mount non-root file systems in fstab, but not NFS or SMB +# because TCP/IP is not yet configured, and not proc or sysfs +# because those have already been mounted. Also check that +# devpts is not already mounted before attempting to mount +# it. With a 2.6.x or newer kernel udev mounts devpts. +# We also need to wait a little bit to let USB and other +# hotplugged devices settle (sorry to slow down the boot): +echo "Mounting non-root local filesystems:" +sleep 3 +if /bin/grep -wq devpts /proc/mounts ; then + /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs,nodevpts +else + /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs +fi + +# Enable swapping again. This is needed in case a swapfile is used, +# as it can't be enabled until the filesystem it resides on has been +# mounted read-write. +/sbin/swapon -a + +# Clean up some temporary files: +rm -f /var/run/* /var/run/*/* /var/run/*/*/* /etc/nologin \ + /etc/dhcpc/*.pid /etc/forcefsck /etc/fastboot \ + /var/state/saslauthd/saslauthd.pid \ + /tmp/.Xauth* 1> /dev/null 2> /dev/null + ( cd /var/log/setup/tmp && rm -rf * ) + ( cd /tmp && rm -rf kde-[a-zA-Z]* ksocket-[a-zA-Z]* hsperfdata_[a-zA-Z]* plugtmp* ) + +# Create /tmp/{.ICE-unix,.X11-unix} if they are not present: +if [ ! -e /tmp/.ICE-unix ]; then + mkdir -p /tmp/.ICE-unix + chmod 1777 /tmp/.ICE-unix +fi +if [ ! -e /tmp/.X11-unix ]; then + mkdir -p /tmp/.X11-unix + chmod 1777 /tmp/.X11-unix +fi + +# Create a fresh utmp file: +touch /var/run/utmp +chown root:utmp /var/run/utmp +chmod 664 /var/run/utmp + +# Update the current kernel level in the /etc/motd (Message Of The Day) file, +# if the first line of that file begins with the word 'Linux'. +# You are free to modify the rest of the file as you see fit. +if [ -x /bin/sed ]; then + /bin/sed -i "{1s/^Linux.*/$(/bin/uname -sr)\./}" /etc/motd +fi + +# If there are SystemV init scripts for this runlevel, run them. +if [ -x /etc/rc.d/rc.sysvinit ]; then + . /etc/rc.d/rc.sysvinit +fi + +# Run serial port setup script: +# CAREFUL! This can make some systems hang if the rc.serial script isn't +# set up correctly. If this happens, you may have to edit the file from a +# boot disk, and/or set it as non-executable: +if [ -x /etc/rc.d/rc.serial ]; then + sh /etc/rc.d/rc.serial start +fi + +# Carry an entropy pool between reboots to improve randomness. +if [ -f /etc/random-seed ]; then + echo "Using /etc/random-seed to initialize /dev/urandom." + cat /etc/random-seed > /dev/urandom +fi +# Use the pool size from /proc, or 512 bytes: +if [ -r /proc/sys/kernel/random/poolsize ]; then + dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(cat /proc/sys/kernel/random/poolsize) 2> /dev/null +else + dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null +fi +chmod 600 /etc/random-seed + diff --git a/source/a/sysvinit-scripts/scripts/rc.local b/source/a/sysvinit-scripts/scripts/rc.local new file mode 100644 index 000000000..65b358bbf --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.local @@ -0,0 +1,9 @@ +#!/bin/sh +# +# /etc/rc.d/rc.local: Local system initialization script. +# +# Put any local startup commands in here. Also, if you have +# anything that needs to be run at shutdown time you can +# make an /etc/rc.d/rc.local_shutdown script and put those +# commands in there. + diff --git a/source/a/sysvinit-scripts/scripts/rc.sysvinit b/source/a/sysvinit-scripts/scripts/rc.sysvinit new file mode 100644 index 000000000..916e59ee4 --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rc.sysvinit @@ -0,0 +1,58 @@ +#!/bin/sh +# +# rc.sysvinit This file provides basic compatibility with SystemV style +# startup scripts. The SystemV style init system places +# start/stop scripts for each runlevel into directories such as +# /etc/rc.d/rc3.d/ (for runlevel 3) instead of starting them +# from /etc/rc.d/rc.M. This makes for a lot more init scripts, +# and a more complicated execution path to follow through if +# something goes wrong. For this reason, Slackware has always +# used the traditional BSD style init script layout. +# +# However, many binary packages exist that install SystemV +# init scripts. With rc.sysvinit in place, most well-written +# startup scripts will work. This is primarily intended to +# support commercial software, though, and probably shouldn't +# be considered bug free. +# +# Written by Patrick Volkerding <volkerdi@slackware.com>, 1999 +# from an example by Miquel van Smoorenburg <miquels@cistron.nl>. + +# Run an init script: +startup() { + case "$1" in + *.sh) + sh "$@" + ;; + *) + "$@" + ;; + esac +} + +# Set onlcr to avoid staircase effect. +stty onlcr 0>&1 + +if [ "$runlevel" = "" ]; then + runlevel=$RUNLEVEL + export runlevel + prevlevel=$PREVLEVEL + export prevlevel +fi + +# Run kill scripts in the previous runlevel if not "none" +if [ ! "$prevlevel" = "N" ]; then + for script in /etc/rc.d/rc$prevlevel.d/K* ; do + if [ -x $script ]; then + startup $script stop + fi + done +fi + +# Now do the startup scripts: +for script in /etc/rc.d/rc$runlevel.d/S* ; do + if [ -x $script ]; then + startup $script start + fi +done + diff --git a/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh new file mode 100644 index 000000000..4378e208a --- /dev/null +++ b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh @@ -0,0 +1,558 @@ +#!/bin/bash +# Skript to rescan SCSI bus, using the +# scsi add-single-device mechanism +# (c) 1998--2008 Kurt Garloff <kurt@garloff.de>, GNU GPL v2 or later +# (c) 2006--2008 Hannes Reinecke, GNU GPL v2 or later +# $Id: rescan-scsi-bus.sh,v 1.29 2008/10/29 10:03:04 garloff Exp $ + +setcolor () +{ + red="\e[0;31m" + green="\e[0;32m" + yellow="\e[0;33m" + bold="\e[0;1m" + norm="\e[0;0m" +} + +unsetcolor () +{ + red=""; green="" + yellow=""; norm="" +} + +# Return hosts. sysfs must be mounted +findhosts_26 () +{ + hosts= + if ! ls /sys/class/scsi_host/host* >/dev/null 2>&1; then + echo "No SCSI host adapters found in sysfs" + exit 1; + fi + for hostdir in /sys/class/scsi_host/host*; do + hostno=${hostdir#/sys/class/scsi_host/host} + if [ -f $hostdir/isp_name ] ; then + hostname="qla2xxx" + elif [ -f $hostdir/lpfc_drvr_version ] ; then + hostname="lpfc" + else + hostname=`cat $hostdir/proc_name` + fi + hosts="$hosts $hostno" + echo "Host adapter $hostno ($hostname) found." + done + hosts=`echo $hosts | sed 's/ /\n/g' | sort -n` +} + +# Return hosts. /proc/scsi/HOSTADAPTER/? must exist +findhosts () +{ + hosts= + for driverdir in /proc/scsi/*; do + driver=${driverdir#/proc/scsi/} + if test $driver = scsi -o $driver = sg -o $driver = dummy -o $driver = device_info; then continue; fi + for hostdir in $driverdir/*; do + name=${hostdir#/proc/scsi/*/} + if test $name = add_map -o $name = map -o $name = mod_parm; then continue; fi + num=$name + driverinfo=$driver + if test -r $hostdir/status; then + num=$(printf '%d\n' `sed -n 's/SCSI host number://p' $hostdir/status`) + driverinfo="$driver:$name" + fi + hosts="$hosts $num" + echo "Host adapter $num ($driverinfo) found." + done + done +} + +# Get /proc/scsi/scsi info for device $host:$channel:$id:$lun +# Optional parameter: Number of lines after first (default = 2), +# result in SCSISTR, return code 1 means empty. +procscsiscsi () +{ + if test -z "$1"; then LN=2; else LN=$1; fi + CHANNEL=`printf "%02i" $channel` + ID=`printf "%02i" $id` + LUN=`printf "%02i" $lun` + if [ -d /sys/class/scsi_device ]; then + SCSIPATH="/sys/class/scsi_device/${host}:${channel}:${id}:${lun}" + if [ -d "$SCSIPATH" ] ; then + SCSISTR="Host: scsi${host} Channel: $CHANNEL Id: $ID Lun: $LUN" + if [ "$LN" -gt 0 ] ; then + IVEND=$(cat ${SCSIPATH}/device/vendor) + IPROD=$(cat ${SCSIPATH}/device/model) + IPREV=$(cat ${SCSIPATH}/device/rev) + SCSIDEV=$(printf ' Vendor: %-08s Model: %-16s Rev: %-4s' "$IVEND" "$IPROD" "$IPREV") + SCSISTR="$SCSISTR +$SCSIDEV" + fi + if [ "$LN" -gt 1 ] ; then + ILVL=$(cat ${SCSIPATH}/device/scsi_level) + type=$(cat ${SCSIPATH}/device/type) + case "$type" in + 0) ITYPE="Direct-Access " ;; + 1) ITYPE="Sequential-Access" ;; + 2) ITYPE="Printer " ;; + 3) ITYPE="Processor " ;; + 4) ITYPE="WORM " ;; + 5) ITYPE="CD-ROM " ;; + 6) ITYPE="Scanner " ;; + 7) ITYPE="Optical Device " ;; + 8) ITYPE="Medium Changer " ;; + 9) ITYPE="Communications " ;; + 10) ITYPE="Unknown " ;; + 11) ITYPE="Unknown " ;; + 12) ITYPE="RAID " ;; + 13) ITYPE="Enclosure " ;; + 14) ITYPE="Direct-Access-RBC" ;; + *) ITYPE="Unknown " ;; + esac + SCSITMP=$(printf ' Type: %-16s ANSI SCSI revision: %02d' "$ITYPE" "$((ILVL - 1))") + SCSISTR="$SCSISTR +$SCSITMP" + fi + + else + return 1 + fi + else + grepstr="scsi$host Channel: $CHANNEL Id: $ID Lun: $LUN" + SCSISTR=`cat /proc/scsi/scsi | grep -A$LN -e"$grepstr"` + fi + if test -z "$SCSISTR"; then return 1; else return 0; fi +} + +# Find sg device with 2.6 sysfs support +sgdevice26 () +{ + if test -e /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic; then + SGDEV=`readlink /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic` + SGDEV=`basename $SGDEV` + else + for SGDEV in /sys/class/scsi_generic/sg*; do + DEV=`readlink $SGDEV/device` + if test "${DEV##*/}" = "$host:$channel:$id:$lun"; then + SGDEV=`basename $SGDEV`; return + fi + done + SGDEV="" + fi +} + +# Find sg device with 2.4 report-devs extensions +sgdevice24 () +{ + if procscsiscsi 3; then + SGDEV=`echo "$SCSISTR" | grep 'Attached drivers:' | sed 's/^ *Attached drivers: \(sg[0-9]*\).*/\1/'` + fi +} + +# Find sg device that belongs to SCSI device $host $channel $id $lun +sgdevice () +{ + SGDEV= + if test -d /sys/class/scsi_device; then + sgdevice26 + else + DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null` + repdevstat=$((1-$?)) + if [ $repdevstat = 0 ]; then + echo "scsi report-devs 1" >/proc/scsi/scsi + DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null` + if [ $? = 1 ]; then return; fi + fi + if ! `echo $DRV | grep 'drivers: sg' >/dev/null`; then + modprobe sg + fi + sgdevice24 + if [ $repdevstat = 0 ]; then + echo "scsi report-devs 0" >/proc/scsi/scsi + fi + fi +} + +# Test if SCSI device is still responding to commands +testonline () +{ + : testonline + if test ! -x /usr/bin/sg_turs; then return 0; fi + sgdevice + if test -z "$SGDEV"; then return 0; fi + sg_turs /dev/$SGDEV >/dev/null 2>&1 + RC=$? + # echo -e "\e[A\e[A\e[A${yellow}Test existence of $SGDEV = $RC ${norm} \n\n\n" + if test $RC = 1; then return $RC; fi + # OK, device online, compare INQUIRY string + INQ=`sg_inq $sg_len_arg /dev/$SGDEV` + IVEND=`echo "$INQ" | grep 'Vendor identification:' | sed 's/^[^:]*: \(.*\)$/\1/'` + IPROD=`echo "$INQ" | grep 'Product identification:' | sed 's/^[^:]*: \(.*\)$/\1/'` + IPREV=`echo "$INQ" | grep 'Product revision level:' | sed 's/^[^:]*: \(.*\)$/\1/'` + STR=`printf " Vendor: %-08s Model: %-16s Rev: %-4s" "$IVEND" "$IPROD" "$IPREV"` + IPTYPE=`echo "$INQ" | sed -n 's/.* Device_type=\([0-9]*\) .*/\1/p'` + IPQUAL=`echo "$INQ" | sed -n 's/ *PQual=\([0-9]*\) Device.*/\1/p'` + if [ "$IPQUAL" != 0 ] ; then + echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nLU not available (PQual $IPQUAL)${norm}\n\n\n" + return 1 + fi + + procscsiscsi + TMPSTR=`echo "$SCSISTR" | grep 'Vendor:'` + if [ "$TMPSTR" != "$STR" ]; then + echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${TMPSTR#* } \nto: $STR ${norm}\n\n\n" + return 1 + fi + TMPSTR=`echo "$SCSISTR" | sed -n 's/.*Type: *\(.*\) *ANSI.*/\1/p'` + if [ $TMPSTR != $TYPE ] ; then + echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${TMPSTR} \nto: $TYPE ${norm}\n\n\n" + return 1 + fi + return $RC +} + +# Test if SCSI device $host $channen $id $lun exists +# Outputs description from /proc/scsi/scsi, returns SCSISTR +testexist () +{ + : testexist + SCSISTR= + if procscsiscsi; then + echo "$SCSISTR" | head -n1 + echo "$SCSISTR" | tail -n2 | pr -o4 -l1 + fi +} + +# Returns the list of existing channels per host +chanlist () +{ + local hcil + local cil + local chan + local tmpchan + + for dev in /sys/class/scsi_device/${host}:* ; do + hcil=${dev##*/} + cil=${hcil#*:} + chan=${cil%%:*} + for tmpchan in $channelsearch ; do + if test "$chan" -eq $tmpchan ; then + chan= + fi + done + if test -n "$chan" ; then + channelsearch="$channelsearch $chan" + fi + done +} + +# Returns the list of existing targets per host +idlist () +{ + local hcil + local cil + local il + local target + local tmpid + + for dev in /sys/class/scsi_device/${host}:${channel}:* ; do + hcil=${dev##*/} + cil=${hcil#*:} + il=${cil#*:} + target=${il%%:*} + for tmpid in $idsearch ; do + if test "$target" -eq $tmpid ; then + target= + fi + done + if test -n "$target" ; then + idsearch="$idsearch $target" + fi + done +} + +# Returns the list of existing LUNs +getluns () +{ + if test ! -x /usr/bin/sg_luns; then return; fi + sgdevice + if test -z "$SGDEV"; then return; fi + sg_luns -d /dev/$SGDEV | sed -n 's/.*lun=\(.*\)/\1/p' +} + +# Perform scan on a single lun +dolunscan() +{ + SCSISTR= + devnr="$host $channel $id $lun" + echo "Scanning for device $devnr ..." + printf "${yellow}OLD: $norm" + testexist + : f $remove s $SCSISTR + if test "$remove" -a "$SCSISTR"; then + # Device exists: Test whether it's still online + # (testonline returns 1 if it's gone or has changed) + testonline + if test $? = 1 -o ! -z "$forceremove"; then + echo -en "\r\e[A\e[A\e[A${red}REM: " + echo "$SCSISTR" | head -n1 + echo -e "${norm}\e[B\e[B" + if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then + echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/delete + # Try reading, should fail if device is gone + echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan + else + echo "scsi remove-single-device $devnr" > /proc/scsi/scsi + # Try reading, should fail if device is gone + echo "scsi add-single-device $devnr" > /proc/scsi/scsi + fi + fi + if test $RC = 0 ; then + if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then + echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/rescan + fi + fi + + printf "\r\x1b[A\x1b[A\x1b[A${yellow}OLD: $norm" + testexist + if test -z "$SCSISTR"; then + printf "\r${red}DEL: $norm\r\n\n" + let rmvd+=1; + fi + fi + if test -z "$SCSISTR"; then + # Device does not exist, try to add + printf "\r${green}NEW: $norm" + if test -e /sys/class/scsi_host/host${host}/scan; then + echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null + else + echo "scsi add-single-device $devnr" > /proc/scsi/scsi + fi + testexist + if test -z "$SCSISTR"; then + # Device not present + printf "\r\x1b[A"; + # Optimization: if lun==0, stop here (only if in non-remove mode) + if test $lun = 0 -a -z "$remove" -a $optscan = 1; then + break; + fi + else + let found+=1; + fi + fi +} + +# Perform report lun scan +doreportlun() +{ + lun=0 + SCSISTR= + devnr="$host $channel $id $lun" + echo "Scanning for device $devnr ..." + printf "${yellow}OLD: $norm" + testexist + if test -z "$SCSISTR"; then + # Device does not exist, try to add + printf "\r${green}NEW: $norm" + if test -e /sys/class/scsi_host/host${host}/scan; then + echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null + else + echo "scsi add-single-device $devnr" > /proc/scsi/scsi + fi + testexist + if test -z "$SCSISTR"; then + # Device not present + printf "\r\x1b[A"; + lunsearch= + return + fi + fi + lunsearch=`getluns` + lunremove= + # Check existing luns + for dev in /sys/class/scsi_device/$host\:$channel\:$id\:*; do + lun=${dev##*:} + newsearch= + oldsearch="$lunsearch" + for tmplun in $lunsearch; do + if test $tmplun -eq $lun ; then + # Optimization: don't scan lun 0 again + if [ $lun -ne 0 ]; then + dolunscan + fi + else + newsearch="$newsearch $tmplun" + fi + done + if [ "${#oldsearch}" = "${#newsearch}" ] ; then + # Stale lun + lunremove="$lunremove $lun" + fi + lunsearch="$newsearch" + done + # Add new ones and check stale ones + for lun in $lunsearch $lunremove; do + dolunscan + done +} + +# Perform search (scan $host) +dosearch () +{ + if test -z "$channelsearch" ; then + chanlist + fi + for channel in $channelsearch; do + if test -z "$idsearch" ; then + idlist + fi + for id in $idsearch; do + if test -z "$lunsearch"; then + doreportlun + else + for lun in $lunsearch; do + dolunscan + done + fi + done + done +} + +# main +if test @$1 = @--help -o @$1 = @-h -o @$1 = @-?; then + echo "Usage: rescan-scsi-bus.sh [options] [host [host ...]]" + echo "Options:" + echo " -l activates scanning for LUNs 0-7 [default: 0]" + echo " -L NUM activates scanning for LUNs 0--NUM [default: 0]" + echo " -w scan for target device IDs 0 .. 15 [default: 0-7]" + echo " -c enables scanning of channels 0 1 [default: 0]" + echo " -r enables removing of devices [default: disabled]" + echo " -i issue a FibreChannel LIP reset [default: disabled]" + echo "--remove: same as -r" + echo "--issue-lip: same as -i" + echo "--forceremove: Remove and readd every device (DANGEROUS)" + echo "--nooptscan: don't stop looking for LUNs is 0 is not found" + echo "--color: use coloured prefixes OLD/NEW/DEL" + echo "--hosts=LIST: Scan only host(s) in LIST" + echo "--channels=LIST: Scan only channel(s) in LIST" + echo "--ids=LIST: Scan only target ID(s) in LIST" + echo "--luns=LIST: Scan only lun(s) in LIST" + echo " Host numbers may thus be specified either directly on cmd line (deprecated) or" + echo " or with the --hosts=LIST parameter (recommended)." + echo "LIST: A[-B][,C[-D]]... is a comma separated list of single values and ranges" + echo " (No spaces allowed.)" + exit 0 +fi + +expandlist () +{ + list=$1 + result="" + first=${list%%,*} + rest=${list#*,} + while test ! -z "$first"; do + beg=${first%%-*}; + if test "$beg" = "$first"; then + result="$result $beg"; + else + end=${first#*-} + result="$result `seq $beg $end`" + fi + test "$rest" = "$first" && rest="" + first=${rest%%,*} + rest=${rest#*,} + done + echo $result +} + +if test ! -d /sys/class/scsi_host/ -a ! -d /proc/scsi/; then + echo "Error: SCSI subsystem not active" + exit 1 +fi + +# Make sure sg is there +modprobe sg >/dev/null 2>&1 + +sg_version=$(sg_inq -V 2>&1 | cut -d " " -f 3) +sg_version=${sg_version##0.} +if [ "$sg_version" -lt 70 ] ; then + sg_len_arg="-36" +else + sg_len_arg="--len=36" +fi + +# defaults +unsetcolor +lunsearch="" +idsearch=`seq 0 7` +channelsearch="0" +remove= +forceremove= +optscan=1 +if test -d /sys/class/scsi_host; then + findhosts_26 +else + findhosts +fi + +# Scan options +opt="$1" +while test ! -z "$opt" -a -z "${opt##-*}"; do + opt=${opt#-} + case "$opt" in + l) lunsearch=`seq 0 7` ;; + L) lunsearch=`seq 0 $2`; shift ;; + w) idsearch=`seq 0 15` ;; + c) channelsearch="0 1" ;; + r) remove=1 ;; + i) lipreset=1 ;; + -remove) remove=1 ;; + -forceremove) remove=1; forceremove=1 ;; + -hosts=*) arg=${opt#-hosts=}; hosts=`expandlist $arg` ;; + -channels=*) arg=${opt#-channels=};channelsearch=`expandlist $arg` ;; + -ids=*) arg=${opt#-ids=}; idsearch=`expandlist $arg` ;; + -luns=*) arg=${opt#-luns=}; lunsearch=`expandlist $arg` ;; + -color) setcolor ;; + -nooptscan) optscan=0 ;; + -issue-lip) lipreset=1 ;; + *) echo "Unknown option -$opt !" ;; + esac + shift + opt="$1" +done + +# Hosts given ? +if test "@$1" != "@"; then + hosts=$*; +fi + +echo "Scanning SCSI subsystem for new devices" +test -z "$remove" || echo " and remove devices that have disappeared" +declare -i found=0 +declare -i rmvd=0 +for host in $hosts; do + echo -n "Scanning host $host " + if test -e /sys/class/fc_host/host$host ; then + # It's pointless to do a target scan on FC + if test -n "$lipreset" ; then + echo 1 > /sys/class/fc_host/host$host/issue_lip 2> /dev/null; + echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null; + fi + channelsearch="" + idsearch="" + fi + [ -n "$channelsearch" ] && echo -n "channels $channelsearch " + echo -n "for " + if [ -n "$idsearch" ] ; then + echo -n " SCSI target IDs " $idsearch + else + echo -n " all SCSI target IDs" + fi + if [ -n "$lunsearch" ] ; then + echo ", LUNs " $lunsearch + else + echo ", all LUNs" + fi + dosearch; +done +echo "$found new device(s) found. " +echo "$rmvd device(s) removed. " + diff --git a/source/a/sysvinit-scripts/slack-desc b/source/a/sysvinit-scripts/slack-desc new file mode 100644 index 000000000..95fff611e --- /dev/null +++ b/source/a/sysvinit-scripts/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sysvinit-scripts: sysvinit-scripts (the basic scripts used to boot your machine) +sysvinit-scripts: +sysvinit-scripts: These are the Slackware boot scripts, which are needed to start the +sysvinit-scripts: machine. Sysvinit looks for these in /etc/rc.d/. +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: +sysvinit-scripts: diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild new file mode 100755 index 000000000..4b9eba043 --- /dev/null +++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild @@ -0,0 +1,60 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-1.2} +ARCH=noarch +BUILD=${BUILD:-30} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit-scripts + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Install Slackware scripts and config files from $CWD/scripts/: +mkdir -p $PKG/etc/rc.d +for file in rc.{4,6,K,M,S} rc.local rc.sysvinit ; do + cp -a $CWD/scripts/$file $PKG/etc/rc.d/${file}.new + chmod 755 $PKG/etc/rc.d/${file}.new + chown root:root $PKG/etc/rc.d/${file}.new +done +cat $CWD/scripts/inittab > $PKG/etc/inittab.new +chmod 644 $PKG/etc/inittab.new +chown root:root $PKG/etc/inittab.new + +# Add a very handy tool for scanning new SCSI devices. Most useful for +# finding new USB and Firewire storage devices which show up as SCSI. +mkdir -p $PKG/sbin +cat $CWD/scripts/rescan-scsi-bus.sh > $PKG/sbin/rescan-scsi-bus +chmod 755 $PKG/sbin/rescan-scsi-bus +chown root:root $PKG/sbin/rescan-scsi-bus + +mkdir -p $PKG/install +zcat $CWD/doinst.sh > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sysvinit-scripts-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit/doinst.sh b/source/a/sysvinit/doinst.sh new file mode 100644 index 000000000..0e476e119 --- /dev/null +++ b/source/a/sysvinit/doinst.sh @@ -0,0 +1,48 @@ + +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +# RH functions: +#config etc/rc.d/init.d/halt.new +#config etc/rc.d/init.d/killall.new +#config etc/rc.d/init.d/netfs.new +#config etc/rc.d/init.d/network.new +#config etc/rc.d/init.d/single.new + +if [ -r sbin/init ]; then + mv sbin/init sbin/init.old +fi + +mv sbin/init.new sbin/init + +# Add a btmp file to store login failure if one doesn't exist: +if [ ! -r var/log/btmp ]; then + ( cd var/log ; umask 077 ; touch btmp ) +fi + +# Notice we use an absolute path below, rather than usr/bin/last. This is because +# we're testing to see if we are on the bootdisk, which will not have /usr/bin/last. +# If we aren't, we will signal init to restart using the new binary. +# The presence of "/etc/slack-installer" is under consideration as a better test. +if [ -x /usr/bin/last -a ! -r /etc/slack-installer ]; then + /sbin/init u +fi + +( cd sbin ; rm -rf telinit ) +( cd sbin ; ln -sf init telinit ) +( cd sbin ; rm -rf reboot ) +( cd sbin ; ln -sf halt reboot ) +( cd sbin ; rm -rf pidof ) +( cd sbin ; ln -sf killall5 pidof ) +( cd sbin ; rm -rf poweroff ) +( cd sbin ; ln -sf halt poweroff ) + +rm -f sbin/init.old diff --git a/source/a/sysvinit/slack-desc b/source/a/sysvinit/slack-desc new file mode 100644 index 000000000..5fc2652c1 --- /dev/null +++ b/source/a/sysvinit/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sysvinit: sysvinit (init, the parent of all processes) +sysvinit: +sysvinit: System V style init programs by Miquel van Smoorenburg that control +sysvinit: the booting and shutdown of your system. These support a number of +sysvinit: system runlevels, each with a specific set of utilities spawned. +sysvinit: For example, the normal system runlevel is 3, which starts agetty +sysvinit: on virtual consoles tty1 - tty6. Runlevel 4 starts xdm. +sysvinit: Runlevel 0 shuts the system down. +sysvinit: +sysvinit: +sysvinit: diff --git a/source/a/sysvinit/sysvinit-2.86-timeval.patch b/source/a/sysvinit/sysvinit-2.86-timeval.patch new file mode 100644 index 000000000..acb0d5b68 --- /dev/null +++ b/source/a/sysvinit/sysvinit-2.86-timeval.patch @@ -0,0 +1,42 @@ +--- sysvinit-2.86/src/utmp.c.timeval 1999-06-09 07:11:33.000000000 -0400 ++++ sysvinit-2.86/src/utmp.c 2006-08-09 19:46:26.000000000 -0400 +@@ -47,7 +47,8 @@ + int fd; + struct utmp utmp; + struct utsname uname_buf; +- ++ struct timeval tv; ++ + /* + * Try to open the wtmp file. Note that we even try + * this if we have updwtmp() so we can see if the +@@ -76,7 +77,9 @@ + */ + memset(&utmp, 0, sizeof(utmp)); + #if defined(__GLIBC__) +- gettimeofday(&utmp.ut_tv, NULL); ++ gettimeofday(&tv, NULL); ++ utmp.ut_tv.tv_sec = tv.tv_sec; ++ utmp.ut_tv.tv_usec = tv.tv_usec; + #else + time(&utmp.ut_time); + #endif +@@ -113,6 +116,7 @@ + struct utmp utmp; + struct utmp tmp; + struct utmp *utmptr; ++ struct timeval tv; + + /* + * Can't do much if UTMP_FILE is not present. +@@ -144,7 +148,9 @@ + utmp.ut_pid = pid; + strncpy(utmp.ut_id, id, sizeof(utmp.ut_id)); + #if defined(__GLIBC__) +- gettimeofday(&utmp.ut_tv, NULL); ++ gettimeofday(&tv, NULL); ++ utmp.ut_tv.tv_sec = tv.tv_sec; ++ utmp.ut_tv.tv_usec = tv.tv_usec; + #else + time(&utmp.ut_time); + #endif diff --git a/source/a/sysvinit/sysvinit.SlackBuild b/source/a/sysvinit/sysvinit.SlackBuild new file mode 100755 index 000000000..4916e695e --- /dev/null +++ b/source/a/sysvinit/sysvinit.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.86} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf sysvinit-$VERSION +tar xzvf $CWD/sysvinit-$VERSION.tar.gz || exit 1 +cd sysvinit-$VERSION +chown -R root:root . +zcat $CWD/sysvinit.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/sysvinit.pidof.rhforkseverything.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 +if [ "$ARCH" = "x86_64" ]; then + # Don't overwrite ut_addr_v6 in utmp records on 64-bit platforms + zcat $CWD/sysvinit-2.86-timeval.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 +fi + +cd doc +mkdir -p $PKG/usr/doc/sysvinit-$VERSION +cp -a Install Propaganda sysvinit-$VERSION.lsm \ + $PKG/usr/doc/sysvinit-$VERSION +chmod -R 644 $PKG/usr/doc/sysvinit-$VERSION/* +chmod 755 $PKG/usr/doc/sysvinit-$VERSION + +cd ../src +if [ "$ARCH" = "x86_64" ]; then + # static 'init' segfaults, so your computer never reaches command prompt: + sed -i -e "s/-static//" Makefile +fi +make clobber +make || exit 1 + +mkdir -p $PKG/sbin +for program in bootlogd halt init killall5 shutdown runlevel ; do + strip --strip-unneeded $program + cat $program > $PKG/sbin/$program + chmod 755 $PKG/sbin/$program + chown root:root $PKG/sbin/$program +done +mkdir -p $PKG/usr/bin +for program in last mountpoint ; do + strip --strip-unneeded $program + cat $program > $PKG/usr/bin/$program + chmod 755 $PKG/usr/bin/$program + chown root:root $PKG/usr/bin/$program +done +( cd $PKG/usr/bin ; ln -sf last lastb ) +mv $PKG/sbin/init $PKG/sbin/init.new +chmod 755 $PKG/sbin/init.new +chown root:root $PKG/sbin/init.new + +# This version is old. We use genpower now. +#cat wall > $PKG/usr/bin/wall +#strip --strip-unneeded powerd +#cat powerd > $PKG/sbin/powerd +#chmod 755 $PKG/usr/bin/wall $PKG/sbin/powerd +#chown root:root $PKG/usr/bin/wall $PKG/sbin/powerd +cp initscript.sample $PKG/sbin/initscript.sample + +cd ../man +mkdir -p $PKG/usr/man/man{1,5,8} +for page in last.1 mountpoint.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +for page in inittab.5 initscript.5 ; do + cat $page | gzip -9c > $PKG/usr/man/man5/$page.gz +done +for page in halt.8 init.8 killall5.8 pidof.8 poweroff.8 reboot.8 runlevel.8 \ + shutdown.8 telinit.8 bootlogd.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +( cd $PKG/usr/man/man1 ; ln -sf last.1.gz lastb.1.gz ) + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/sysvinit-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/sysvinit-$VERSION + rm -rf $PKG +fi diff --git a/source/a/sysvinit/sysvinit.diff b/source/a/sysvinit/sysvinit.diff new file mode 100644 index 000000000..11477be72 --- /dev/null +++ b/source/a/sysvinit/sysvinit.diff @@ -0,0 +1,125 @@ +diff -Naur sysvinit-2.86.orig/man/init.8 sysvinit-2.86/man/init.8 +--- sysvinit-2.86.orig/man/init.8 2004-07-29 13:21:31.000000000 +0200 ++++ sysvinit-2.86/man/init.8 2007-12-23 12:22:51.000000000 +0100 +@@ -76,7 +76,7 @@ + are processed. + .PP + When starting a new process, \fBinit\fP first checks whether the file +-\fI/etc/initscript\fP exists. If it does, it uses this script to ++\fI/sbin/initscript\fP exists. If it does, it uses this script to + start the process. + .PP + Each time a child terminates, \fBinit\fP records the fact and the reason +@@ -240,7 +240,7 @@ + .SH FILES + .nf + /etc/inittab +-/etc/initscript ++/sbin/initscript + /dev/console + /var/run/utmp + /var/log/wtmp +diff -Naur sysvinit-2.86.orig/man/initscript.5 sysvinit-2.86/man/initscript.5 +--- sysvinit-2.86.orig/man/initscript.5 2004-06-09 14:47:45.000000000 +0200 ++++ sysvinit-2.86/man/initscript.5 2007-12-23 12:22:51.000000000 +0100 +@@ -2,15 +2,15 @@ + .SH NAME + initscript \- script that executes inittab commands. + .SH SYNOPSIS +-/bin/sh /etc/initscript id runlevels action process ++/bin/sh /sbin/initscript id runlevels action process + .SH DESCRIPTION +-When the shell script \fI/etc/initscript\fP is present, \fBinit\fP ++When the shell script \fI/sbin/initscript\fP is present, \fBinit\fP + will use it to execute the commands from \fIinittab\fP. + This script can be used to set things like \fBulimit\fP and + \fBumask\fP default values for every process. + .SH EXAMPLES + This is a sample initscript, which might be installed on your +-system as \fI/etc/initscript.sample\fP. ++system as \fI/sbin/initscript.sample\fP. + .RS + .sp + .nf +@@ -20,7 +20,7 @@ + # initscript Executed by init(8) for every program it + # wants to spawn like this: + # +-# /bin/sh /etc/initscript <id> <level> <action> <process> ++# /bin/sh /sbin/initscript <id> <level> <action> <process> + # + + # Set umask to safe level, and enable core dumps. +@@ -48,7 +48,7 @@ + .RE + .SH FILES + /etc/inittab, +-/etc/initscript. ++/sbin/initscript. + .SH AUTHOR + Miquel van Smoorenburg ,<miquels@cistron.nl> + .SH "SEE ALSO" +diff -Naur sysvinit-2.86.orig/src/Makefile sysvinit-2.86/src/Makefile +--- sysvinit-2.86.orig/src/Makefile 2004-06-09 14:47:45.000000000 +0200 ++++ sysvinit-2.86/src/Makefile 2007-12-23 12:22:51.000000000 +0100 +@@ -11,7 +11,7 @@ + CC = gcc + CFLAGS = -Wall -O2 -fomit-frame-pointer -D_GNU_SOURCE + LDFLAGS = -s +-STATIC = ++STATIC = -static + + # For some known distributions we do not build all programs, otherwise we do. + BIN = +diff -Naur sysvinit-2.86.orig/src/initscript.sample sysvinit-2.86/src/initscript.sample +--- sysvinit-2.86.orig/src/initscript.sample 1997-11-26 14:06:33.000000000 +0100 ++++ sysvinit-2.86/src/initscript.sample 2007-12-23 12:22:51.000000000 +0100 +@@ -1,14 +1,14 @@ + # +-# initscript If this script is intalled as /etc/initscript, ++# initscript If this script is intalled as /sbin/initscript, + # it is executed by init(8) for every program it + # wants to spawn like this: + # +-# /bin/sh /etc/initscript <id> <level> <action> <process> ++# /bin/sh /sbin/initscript <id> <level> <action> <process> + # + # It can be used to set the default umask and ulimit + # of all processes. By default this script is installed +-# as /etc/initscript.sample, so to enable it you must +-# rename this script first to /etc/initscript. ++# as /sbin/initscript.sample, so to enable it you must ++# rename this script first to /sbin/initscript. + # + # Version: @(#)initscript 1.10 10-Dec-1995 MvS. + # +diff -Naur sysvinit-2.86.orig/src/paths.h sysvinit-2.86/src/paths.h +--- sysvinit-2.86.orig/src/paths.h 2004-06-09 14:47:45.000000000 +0200 ++++ sysvinit-2.86/src/paths.h 2007-12-23 12:23:50.000000000 +0100 +@@ -20,21 +20,21 @@ + #define INITTAB "/etc/inittab" /* Location of inittab */ + #define INIT "/sbin/init" /* Location of init itself. */ + #define NOLOGIN "/etc/nologin" /* Stop user logging in. */ +-#define FASTBOOT "/fastboot" /* Enable fast boot. */ +-#define FORCEFSCK "/forcefsck" /* Force fsck on boot */ ++#define FASTBOOT "/etc/fastboot" /* Enable fast boot. */ ++#define FORCEFSCK "/etc/forcefsck" /* Force fsck on boot */ + #define SDPID "/var/run/shutdown.pid" /* PID of shutdown program */ + #define SHELL "/bin/sh" /* Default shell */ + #define SULOGIN "/sbin/sulogin" /* Sulogin */ +-#define INITSCRIPT "/etc/initscript" /* Initscript. */ ++#define INITSCRIPT "/sbin/initscript" /* Initscript. */ + #define PWRSTAT "/etc/powerstatus" /* COMPAT: SIGPWR reason (OK/BAD) */ + + #if 0 + #define INITLVL "/etc/initrunlvl" /* COMPAT: New runlevel */ + #define INITLVL2 "/var/log/initrunlvl" /* COMPAT: New runlevel */ + /* Note: INITLVL2 definition needs INITLVL */ +-#define HALTSCRIPT1 "/etc/init.d/halt" /* Called by "fast" shutdown */ ++#define HALTSCRIPT1 "/etc/init.d/rc.halt" /* Called by "fast" shutdown */ + #define HALTSCRIPT2 "/etc/rc.d/rc.0" /* Called by "fast" shutdown */ +-#define REBOOTSCRIPT1 "/etc/init.d/reboot" /* Ditto. */ ++#define REBOOTSCRIPT1 "/etc/init.d/rc.reboot" /* Ditto. */ + #define REBOOTSCRIPT2 "/etc/rc.d/rc.6" /* Ditto. */ + #endif + diff --git a/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff b/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff new file mode 100644 index 000000000..db94dcf19 --- /dev/null +++ b/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff @@ -0,0 +1,81 @@ +--- sysvinit-2.86/man/pidof.8.chroot 1998-09-02 08:49:33.000000000 -0400 ++++ sysvinit-2.86/man/pidof.8 2005-12-19 15:37:40.000000000 -0500 +@@ -4,6 +4,7 @@ + .SH SYNOPSIS + .B pidof + .RB [ \-s ] ++.RB [ \-c ] + .RB [ \-x ] + .RB [ \-o + .IR omitpid ] +@@ -24,6 +25,10 @@ + .SH OPTIONS + .IP -s + Single shot - this instructs the program to only return one \fIpid\fP. ++.IP -c ++Only return process ids that are running with the same root directory. ++This option does not make sense for non-root users, as they will be ++unable to check the current root directory of processes they do not own. + .IP -x + Scripts too - this causes the program to also return process id's of + shells running the named scripts. +--- sysvinit-2.86/src/killall5.c.chroot 2004-07-30 08:16:23.000000000 -0400 ++++ sysvinit-2.86/src/killall5.c 2005-12-19 15:38:47.000000000 -0500 +@@ -476,16 +476,22 @@ + int f; + int first = 1; + int i, oind, opt, flags = 0; ++ int chroot_check = 0; ++ struct stat st; ++ char tmp[512]; + + for (oind = PIDOF_OMITSZ-1; oind > 0; oind--) + opid[oind] = 0; + opterr = 0; + +- while ((opt = getopt(argc,argv,"ho:sx")) != EOF) switch (opt) { ++ while ((opt = getopt(argc,argv,"hco:sx")) != EOF) switch (opt) { + case '?': + nsyslog(LOG_ERR,"invalid options on command line!\n"); + closelog(); + exit(1); ++ case 'c': ++ chroot_check = 1; ++ break; + case 'o': + if (oind >= PIDOF_OMITSZ -1) { + nsyslog(LOG_ERR,"omit pid buffer size %d " +@@ -518,6 +524,16 @@ + argc -= optind; + argv += optind; + ++ /* Check if we are in a chroot */ ++ if (chroot_check) { ++ snprintf(tmp, 512, "/proc/%d/root", getpid()); ++ if (stat(tmp, &st) < 0) { ++ nsyslog(LOG_ERR, "stat failed for %s!\n", tmp); ++ closelog(); ++ exit(1); ++ } ++ } ++ + /* Print out process-ID's one by one. */ + readproc(); + for(f = 0; f < argc; f++) { +@@ -541,6 +557,16 @@ + else + spid = 1; + } ++ if (chroot_check) { ++ struct stat st2; ++ snprintf(tmp, 512, "/proc/%d/root", ++ p->pid); ++ if (stat(tmp, &st2) < 0 || ++ st.st_dev != st2.st_dev || ++ st.st_ino != st2.st_ino) { ++ continue; ++ } ++ } + if (!first) + printf(" "); + printf("%d", p->pid); diff --git a/source/a/tar/rmt.8 b/source/a/tar/rmt.8 new file mode 100644 index 000000000..86d2cf92f --- /dev/null +++ b/source/a/tar/rmt.8 @@ -0,0 +1,217 @@ +.\" Copyright (c) 1983, 1991 The Regents of the University of California. +.\" 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. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. +.\" +.\" @(#)rmt.8 6.5 (Berkeley) 3/16/91 +.\" +.Dd March 16, 1991 +.Dt RMT 8 +.Os BSD 4.2 +.Sh NAME +.Nm rmt +.Nd remote magtape protocol module +.Sh SYNOPSIS +.Nm rmt +.Sh DESCRIPTION +.Nm Rmt +is a program used by the remote dump and restore programs +in manipulating a magnetic tape drive through an interprocess +communication connection. +.Nm Rmt +is normally started up with an +.Xr rexec 3 +or +.Xr rcmd 3 +call. +.Pp +The +.Nm rmt +program accepts requests specific to the manipulation of +magnetic tapes, performs the commands, then responds with +a status indication. All responses are in +.Tn ASCII +and in +one of two forms. +Successful commands have responses of: +.Bd -filled -offset indent +.Sm off +.Sy A Ar number No \en +.Sm on +.Ed +.Pp +.Ar Number +is an +.Tn ASCII +representation of a decimal number. +Unsuccessful commands are responded to with: +.Bd -filled -offset indent +.Sm off +.Xo Sy E Ar error-number +.No \en Ar error-message +.No \en +.Xc +.Sm on +.Ed +.Pp +.Ar Error-number +is one of the possible error +numbers described in +.Xr intro 2 +and +.Ar error-message +is the corresponding error string as printed +from a call to +.Xr perror 3 . +The protocol is comprised of the +following commands, which are sent as indicated - no spaces are supplied +between the command and its arguments, or between its arguments, and +.Ql \en +indicates that a newline should be supplied: +.Bl -tag -width Ds +.Sm off +.It Xo Sy \&O Ar device +.No \en Ar mode No \en +.Xc +Open the specified +.Ar device +using the indicated +.Ar mode . +.Ar Device +is a full pathname and +.Ar mode +is an +.Tn ASCII +representation of a decimal +number suitable for passing to +.Xr open 2 . +If a device had already been opened, it is +closed before a new open is performed. +.It Xo Sy C Ar device No \en +.Xc +Close the currently open device. The +.Ar device +specified is ignored. +.It Xo Sy L +.Ar whence No \en +.Ar offset No \en +.Xc +.Sm on +Perform an +.Xr lseek 2 +operation using the specified parameters. +The response value is that returned from the +.Xr lseek +call. +.Sm off +.It Sy W Ar count No \en +.Sm on +Write data onto the open device. +.Nm Rmt +reads +.Ar count +bytes from the connection, aborting if +a premature end-of-file is encountered. +The response value is that returned from +the +.Xr write 2 +call. +.Sm off +.It Sy R Ar count No \en +.Sm on +Read +.Ar count +bytes of data from the open device. +If +.Ar count +exceeds the size of the data buffer (10 kilobytes), it is +truncated to the data buffer size. +.Nm rmt +then performs the requested +.Xr read 2 +and responds with +.Sm off +.Sy A Ar count-read No \en +.Sm on +if the read was +successful; otherwise an error in the +standard format is returned. If the read +was successful, the data read is then sent. +.Sm off +.It Xo Sy I Ar operation +.No \en Ar count No \en +.Xc +.Sm on +Perform a +.Dv MTIOCOP +.Xr ioctl 2 +command using the specified parameters. +The parameters are interpreted as the +.Tn ASCII +representations of the decimal values +to place in the +.Ar mt_op +and +.Ar mt_count +fields of the structure used in the +.Xr ioctl +call. The return value is the +.Ar count +parameter when the operation is successful. +.It Sy S +Return the status of the open device, as +obtained with a +.Dv MTIOCGET +.Xr ioctl +call. If the operation was successful, +an ``ack'' is sent with the size of the +status buffer, then the status buffer is +sent (in binary). +.El +.Sm on +.Pp +Any other command causes +.Nm rmt +to exit. +.Sh DIAGNOSTICS +All responses are of the form described above. +.Sh SEE ALSO +.Xr rcmd 3 , +.Xr rexec 3 , +.Xr mtio 4 , +.Xr rdump 8 , +.Xr rrestore 8 +.Sh BUGS +People tempted to use this for a remote file access protocol +are discouraged. +.Sh HISTORY +The +.Nm +command appeared in +.Bx 4.2 . diff --git a/source/a/tar/slack-desc b/source/a/tar/slack-desc new file mode 100644 index 000000000..573b89013 --- /dev/null +++ b/source/a/tar/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tar: tar (archiving utility) +tar: +tar: This is the GNU version of tar, an archiving program designed to store +tar: and extract files from an archive file known as a tarfile. A tarfile +tar: may be made on a tape drive, however, it is also common to write a +tar: tarfile to a normal file. +tar: +tar: Slackware's package system uses tarfiles compressed with GNU gzip. +tar: +tar: +tar: diff --git a/source/a/tar/tar-1.13.bzip2.diff b/source/a/tar/tar-1.13.bzip2.diff new file mode 100644 index 000000000..85c03368c --- /dev/null +++ b/source/a/tar/tar-1.13.bzip2.diff @@ -0,0 +1,48 @@ +--- ./src/tar.c.orig Wed Jul 7 00:49:50 1999 ++++ ./src/tar.c Fri Jul 30 23:00:13 1999 +@@ -16,6 +16,8 @@ + with this program; if not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + ++/* Patched to integrate bzip2 as compression filter (option -j) */ ++ + #include "system.h" + + #include <getopt.h> +@@ -164,6 +166,8 @@ + {"block-number", no_argument, NULL, 'R'}, + {"block-size", required_argument, NULL, OBSOLETE_BLOCKING_FACTOR}, + {"blocking-factor", required_argument, NULL, 'b'}, ++ {"bzip2", required_argument, NULL, 'j'}, ++ {"bunzip2", required_argument, NULL, 'j'}, + {"catenate", no_argument, NULL, 'A'}, + {"checkpoint", no_argument, &checkpoint_option, 1}, + {"compare", no_argument, NULL, 'd'}, +@@ -340,6 +344,7 @@ + PATTERN at list/extract time, a globbing PATTERN\n\ + -o, --old-archive, --portability write a V7 format archive\n\ + --posix write a POSIX conformant archive\n\ ++ -j, --bzip2, --bunzip2 filter the archive through bzip2\n\ + -z, --gzip, --ungzip filter the archive through gzip\n\ + -Z, --compress, --uncompress filter the archive through compress\n\ + --use-compress-program=PROG filter through PROG (must accept -d)\n"), +@@ -416,7 +421,7 @@ + Y per-block gzip compression */ + + #define OPTION_STRING \ +- "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz" ++ "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hijklmoprstuvwxz" + + static void + set_subcommand_option (enum subcommand subcommand) +@@ -787,6 +792,10 @@ + if (add_exclude_file (excluded, optarg, '\n') != 0) + FATAL_ERROR ((0, errno, "%s", optarg)); + break; ++ ++ case 'j': ++ set_use_compress_program_option ("bzip2"); ++ break; + + case 'z': + set_use_compress_program_option ("gzip"); diff --git a/source/a/tar/tar-1.22-support_txz.diff b/source/a/tar/tar-1.22-support_txz.diff new file mode 100644 index 000000000..5104f5639 --- /dev/null +++ b/source/a/tar/tar-1.22-support_txz.diff @@ -0,0 +1,11 @@ +diff -Nur tar-1.22.orig/src/suffix.c tar-1.22/src/suffix.c +--- tar-1.22.orig/src/suffix.c 2009-03-05 01:04:13.000000000 -0600 ++++ tar-1.22/src/suffix.c 2009-05-06 15:59:10.695985191 -0500 +@@ -41,6 +41,7 @@ + { S(tlz, lzma) }, + { S(lzo, lzop) }, + { S(xz, xz) }, ++ { S(txz, xz) }, + #undef S + }; + diff --git a/source/a/tar/tar.1 b/source/a/tar/tar.1 new file mode 100644 index 000000000..1d7e02faf --- /dev/null +++ b/source/a/tar/tar.1 @@ -0,0 +1,368 @@ +.\" @(#)tar.1 1.11.1 93/19/22 PJV; +.TH TAR 1 "22 September 1993" +.SH NAME +tar \- The GNU version of the tar archiving utility +.SH SYNOPSIS +.B tar +[ +.B \- +] +.B A --catenate --concatenate \||\| c --create \||\| d --diff --compare \||\| r --append \||\| t --list \||\| u --update \||\| x -extract --get +[ +.B --atime-preserve +] +[ +.B -b, --block-size N +] +[ +.B -B, --read-full-blocks +] +[ +.B -C, --directory DIR +] +[ +.B --checkpoint +] +[ +.B -f, --file [HOSTNAME:]F +] +[ +.B --force-local +] +[ +.B -F, --info-script F --new-volume-script F +] +[ +.B -G, --incremental +] +[ +.B -g, --listed-incremental F +] +[ +.B -h, --dereference +] +[ +.B -i, --ignore-zeros +] +[ +.B -j, --bzip2 +] +[ +.B --ignore-failed-read +] +[ +.B -k, --keep-old-files +] +[ +.B -K, --starting-file F +] +[ +.B -l, --one-file-system +] +[ +.B -L, --tape-length N +] +[ +.B -m, --modification-time +] +[ +.B -M, --multi-volume +] +[ +.B -N, --after-date DATE, --newer DATE +] +[ +.B -o, --old-archive, --portability +] +[ +.B -O, --to-stdout +] +[ +.B -p, --same-permissions, --preserve-permissions +] +[ +.B -P, --absolute-names +] +[ +.B --preserve +] +[ +.B -R, --record-number +] +[ +.B --remove-files +] +[ +.B -s, --same-order, --preserve-order +] +[ +.B --same-owner +] +[ +.B --numeric-owner +] +[ +.B -S, --sparse +] +[ +.B -T, --files-from F +] +[ +.B --null +] +[ +.B --totals +] +[ +.B -v, --verbose +] +[ +.B -V, --label NAME +] +[ +.B --version +] +[ +.B -w, --interactive, --confirmation +] +[ +.B -W, --verify +] +[ +.B --exclude FILE +] +[ +.B -X, --exclude-from FILE +] +[ +.B -Z, --compress, --uncompress +] +[ +.B -z, --gzip, --ungzip +] +[ +.B --use-compress-program PROG +] +[ +.B --block-compress +] +[ +.B -[0-7][lmh] +] +.TP +.I filename1 [ filename2, ... filenameN ] +.TP +.I directory1 [ directory2, ...directoryN ] +.SH DESCRIPTION +.LP +This manual page documents the GNU version of +.B tar +, an archiving program designed to store and extract files from +an archive file known as a +.IR tarfile. +A +.IR tarfile +may be made on a tape drive, however, it is also common +to write a +.IR tarfile +to a normal file. +The first argument to +.B tar +must be one of the options: +.BR Acdrtux , +followed by any optional functions. +The final arguments to +.B tar +are the names of the files or directories which should be archived. The use +of a directory name always implies that the subdirectories below should be +included in the archive. +.SH EXAMPLES +.TP +.B tar -xvvf foo.tar +extract foo.tar +.TP +.B tar -xvvzf foo.tar.gz +extract gzipped foo.tar.gz +.TP +.B tar -cvvf foo.tar foo/ +tar contents of folder foo in foo.tar +.SH "FUNCTION LETTERS" +.TP +.B One of the following options must be used: +.TP +.B -A, --catenate, --concatenate +append tar files to an archive +.TP +.B -c, --create +create a new archive +.TP +.B -d, --diff, --compare +find differences between archive and file system +.TP +.B --delete +delete from the archive (not for use on mag tapes!) +.TP +.B -r, --append +append files to the end of an archive +.TP +.B -t, --list +list the contents of an archive +.TP +.B -u, --update +only append files that are newer than copy in archive +.TP +.B -x, --extract, --get +extract files from an archive +.SH "OTHER OPTIONS" +.TP +.B --atime-preserve +don't change access times on dumped files +.TP +.B -b, --block-size N +block size of Nx512 bytes (default N=20) +.TP +.B -B, --read-full-blocks +reblock as we read (for reading 4.2BSD pipes) +.TP +.B -C, --directory DIR +change to directory DIR +.TP +.B --checkpoint +print directory names while reading the archive +.TP +.B -f, --file [HOSTNAME:]F +use archive file or device F (default "-", meaning stdin/stdout) +.TP +.B --force-local +archive file is local even if has a colon +.TP +.B -F, --info-script F --new-volume-script F +run script at end of each tape (implies -M) +.TP +.B -G, --incremental +create/list/extract old GNU-format incremental backup +.TP +.B -g, --listed-incremental F +create/list/extract new GNU-format incremental backup +.TP +.B -h, --dereference +don't dump symlinks; dump the files they point to +.TP +.B -i, --ignore-zeros +ignore blocks of zeros in archive (normally mean EOF) +.TP +.B -j, --bzip2 +filter archive through bzip2, use to decompress .bz2 files +.TP +.B --ignore-failed-read +don't exit with non-zero status on unreadable files +.TP +.B -k, --keep-old-files +keep existing files; don't overwrite them from archive +.TP +.B -K, --starting-file F +begin at file F in the archive +.TP +.B -l, --one-file-system +stay in local file system when creating an archive +.TP +.B -L, --tape-length N +change tapes after writing N*1024 bytes +.TP +.B -m, --modification-time +don't extract file modified time +.TP +.B -M, --multi-volume +create/list/extract multi-volume archive +.TP +.B -N, --after-date DATE, --newer DATE +only store files newer than DATE +.TP +.B -o, --old-archive, --portability +write a V7 format archive, rather than ANSI format +.TP +.B -O, --to-stdout +extract files to standard output +.TP +.B -p, --same-permissions, --preserve-permissions +extract all protection information +.TP +.B -P, --absolute-paths +don't strip leading `/'s from file names +.TP +.B --preserve +like -p -s +.TP +.B -R, --record-number +show record number within archive with each message +.TP +.B --remove-files +remove files after adding them to the archive +.TP +.B -s, --same-order, --preserve-order +list of names to extract is sorted to match archive +.TP +.B --same-owner +create extracted files with the same ownership +.TP +.B --numeric-owner +always use numbers for user/group names +.TP +.B -S, --sparse +handle sparse files efficiently +.TP +.B -T, --files-from F +get names to extract or create from file F +.TP +.B --null +-T reads null-terminated names, disable -C +.TP +.B --totals +print total bytes written with --create +.TP +.B -v, --verbose +verbosely list files processed +.TP +.B -V, --label NAME +create archive with volume name NAME +.TP +.B --version +print tar program version number +.TP +.B -w, --interactive, --confirmation +ask for confirmation for every action +.TP +.B -W, --verify +attempt to verify the archive after writing it +.TP +.B --exclude FILE +exclude file FILE +.TP +.B -X, --exclude-from FILE +exclude files listed in FILE +.TP +.B -Z, --compress, --uncompress +filter the archive through compress +.TP +.B -z, --gzip, --ungzip +filter the archive through gzip +.TP +.B --use-compress-program PROG +filter the archive through PROG (which must accept -d) +.TP +.B --block-compress +block the output of compression program for tapes +.TP +.B -[0-7][lmh] +specify drive and density +.SH BUGS +.LP +The GNU folks, in general, abhor man pages, and create info documents instead. +The maintainer of tar falls into this category. This man page is neither +complete, nor current, and was included in the Debian Linux packaging of tar +entirely to reduce the frequency with which the lack of a man page gets +reported as a bug in our defect tracking system. + +If you really want to understand tar, then you should run info and read the +tar info pages, or use the info mode in emacs. + diff --git a/source/a/tar/tar.SlackBuild b/source/a/tar/tar.SlackBuild new file mode 100755 index 000000000..43181ccbe --- /dev/null +++ b/source/a/tar/tar.SlackBuild @@ -0,0 +1,145 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Slackware build script for tar + +VERSION=1.22 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tar + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +# This old version is the only one that won't clobber symlinks, e.g.: +# someone moves /opt to /usr/opt and makes a symlink. With newer +# versions of tar, installing any new package will remove the /opt +# symlink and plop down a new directory there. +# Well, there's a lot of other bugs (the remote stuff particularly I'm +# told is flaky) in tar-1.13, so it'll only be here now for use by the +# Slackware package utils. And, we'll even let people remove it and +# the pkgutils will still try to work (but eventually they'll pay the +# price :) +cd $TMP +rm -rf tar-1.13 +tar xvf $CWD/tar-1.13.tar.gz || exit 1 +cd tar-1.13 || exit 1 +zcat $CWD/tar-1.13.bzip2.diff.gz | patch -p1 --verbose || exit 1 +# The original config.{guess,sub} do not work on x86_64 +cp -p /usr/share/libtool/config.{guess,sub} . +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --disable-nls \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/bin +cat src/tar > $PKG/bin/tar-1.13 +chmod 0755 $PKG/bin/tar-1.13 +# End building of tar-1.13 + +cd $TMP +rm -rf tar-$VERSION +tar xvf $CWD/tar-$VERSION.tar.bz2 || exit 1 +cd tar-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Don't spew "Record size = foo blocks" messages: +zcat $CWD/tar.norecordsizespam.diff.gz | patch -p1 --verbose || exit 1 + +# The "A lone zero block at %s" messages also cause problems: +zcat $CWD/tar.nolonezero.diff.gz | patch -p1 --verbose || exit 1 + +# Add support for *.txz files (our packages) +zcat $CWD/tar-1.22-support_txz.diff.gz | patch -p1 --verbose || exit1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --docdir=/usr/doc/tar-$VERSION \ + --enable-backup-scripts \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mv $PKG/usr/bin/tar $PKG/bin +( cd $PKG/usr/bin ; ln -sf /bin/tar . ) +( cd $PKG/bin ; ln -sf tar tar-$VERSION ) + +# Support "historic" rmt locations: +mkdir -p $PKG/{etc,sbin} +( cd $PKG/etc + ln -sf /usr/libexec/rmt . + cd $PKG/sbin + ln -sf /usr/libexec/rmt . +) + +mkdir -p $PKG/usr/man/man{1,8} +cat $CWD/tar.1.gz > $PKG/usr/man/man1/tar.1.gz +cat $CWD/rmt.8.gz > $PKG/usr/man/man8/rmt.8.gz + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/tar-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING NEWS PORTS README THANKS TODO \ + $PKG/usr/doc/tar-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/tar-$VERSION-$ARCH-$BUILD.tgz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/tar-$VERSION + rm -rf $PKG +fi + diff --git a/source/a/tar/tar.nolonezero.diff b/source/a/tar/tar.nolonezero.diff new file mode 100644 index 000000000..3c6f6f97b --- /dev/null +++ b/source/a/tar/tar.nolonezero.diff @@ -0,0 +1,25 @@ +--- ./src/list.c.orig 2004-05-10 04:49:09.000000000 -0700 ++++ ./src/list.c 2004-06-06 13:13:23.000000000 -0700 +@@ -138,6 +138,14 @@ + + if (!ignore_zeros_option) + { ++ ++ /* ++ * According to POSIX tar specs, this is wrong, but on the web ++ * there are some tar specs that can trigger this, and some tar ++ * implementations create tars according to that spec. For now, ++ * let's not be pedantic about issuing the warning. ++ */ ++#if 0 + char buf[UINTMAX_STRSIZE_BOUND]; + + status = read_header (false); +@@ -145,6 +153,7 @@ + break; + WARN ((0, 0, _("A lone zero block at %s"), + STRINGIFY_BIGINT (current_block_ordinal (), buf))); ++#endif + break; + } + status = prev_status; diff --git a/source/a/tar/tar.norecordsizespam.diff b/source/a/tar/tar.norecordsizespam.diff new file mode 100644 index 000000000..b7d1b7a9f --- /dev/null +++ b/source/a/tar/tar.norecordsizespam.diff @@ -0,0 +1,20 @@ +--- ./src/buffer.c.orig 2009-03-05 01:04:13.000000000 -0600 ++++ ./src/buffer.c 2009-03-09 20:17:50.000000000 -0500 +@@ -688,7 +688,7 @@ + more = record_start->buffer + status; + left = record_size - status; + +- if (left && left % BLOCKSIZE == 0 ++ /* if (left && left % BLOCKSIZE == 0 + && verbose_option + && record_start_block == 0 && status != 0) + { +@@ -698,7 +698,7 @@ + "Record size = %lu blocks", + rsize), + rsize)); +- } ++ } */ + + while (left % BLOCKSIZE != 0 + || (left && status && read_full_records)) diff --git a/source/a/tcsh/doinst.sh b/source/a/tcsh/doinst.sh new file mode 100644 index 000000000..d351e5057 --- /dev/null +++ b/source/a/tcsh/doinst.sh @@ -0,0 +1,8 @@ +if fgrep tcsh etc/shells 1> /dev/null 2> /dev/null ; then + GOOD=y +else + echo "/bin/tcsh" >> etc/shells + echo "/bin/csh" >> etc/shells +fi +( cd bin ; rm -rf csh ) +( cd bin ; ln -sf tcsh csh ) diff --git a/source/a/tcsh/slack-desc b/source/a/tcsh/slack-desc new file mode 100644 index 000000000..623ad4580 --- /dev/null +++ b/source/a/tcsh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tcsh: tcsh (C shell) +tcsh: +tcsh: tcsh is an enhanced but completely compatible version of the Berkeley +tcsh: UNIX C shell, csh(1). It is a command language interpreter usable both +tcsh: as an interactive login shell and a shell script command processor. It +tcsh: includes a command-line editor, programmable word completion, spelling +tcsh: correction, a history mechanism, job control, and a C-like syntax. +tcsh: +tcsh: +tcsh: +tcsh: diff --git a/source/a/tcsh/tcsh.SlackBuild b/source/a/tcsh/tcsh.SlackBuild new file mode 100755 index 000000000..653964787 --- /dev/null +++ b/source/a/tcsh/tcsh.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=6.15.00 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tcsh + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf tcsh-$VERSION +tar xjvf $CWD/tcsh-$VERSION.tar.bz2 || exit 1 +cd tcsh-$VERSION + +# The LS_COLORS variable shared by tcsh has new options in recent +# versions of coreutils that cause tcsh to exit, so disable the +# built-in color ls: +zcat $CWD/tcsh.nobuiltincolorls.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix= \ + $ARCH-slackware-linux +make -j4 || exit 1 +mkdir -p $PKG/etc +mkdir -p $PKG/bin +cat tcsh > $PKG/bin/tcsh +chmod 755 $PKG/bin/tcsh +mkdir -p $PKG/usr/man/man1 +cat tcsh.man | gzip -9c > $PKG/usr/man/man1/tcsh.1.gz +echo '.so man1/tcsh.1' | gzip -9c > $PKG/usr/man/man1/csh.1.gz +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/usr/doc/tcsh-$VERSION +cp -a \ + BUGS FAQ Fixes NewThings Ported README README.imake WishList Y2K \ + $PKG/usr/doc/tcsh-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/tcsh-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/tcsh-${VERSION} + rm -rf $PKG +fi diff --git a/source/a/tcsh/tcsh.nobuiltincolorls.diff b/source/a/tcsh/tcsh.nobuiltincolorls.diff new file mode 100644 index 000000000..2fd1c2896 --- /dev/null +++ b/source/a/tcsh/tcsh.nobuiltincolorls.diff @@ -0,0 +1,11 @@ +--- ./config_f.h.orig 2005-03-04 07:46:04.000000000 -0600 ++++ ./config_f.h 2006-02-09 14:30:59.000000000 -0600 +@@ -174,7 +174,7 @@ + * COLOR_LS_F Do you want to use builtin color ls-F ? + * + */ +-#define COLOR_LS_F ++#undef COLOR_LS_F + + /* + * COLORCAT Do you want to colorful message ? diff --git a/source/a/time/slack-desc b/source/a/time/slack-desc new file mode 100644 index 000000000..633c58161 --- /dev/null +++ b/source/a/time/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +time: time (the GNU time command for measuring program resource use) +time: +time: The `time' command runs another program, then displays information +time: about the resources used by that program, collected by the system +time: while the program was running. +time: +time: GNU time was originally written by David Keppel, with later versions +time: worked on by David MacKenzie, Arne Henrik Juul, and Francois Pinard. +time: +time: +time: diff --git a/source/a/time/time.SlackBuild b/source/a/time/time.SlackBuild new file mode 100755 index 000000000..108e7a8b6 --- /dev/null +++ b/source/a/time/time.SlackBuild @@ -0,0 +1,69 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-time + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf time-${VERSION} +tar xvzf $CWD/time-${VERSION}.tar.gz +cd time-${VERSION} +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make || exit 1 +mkdir -p $PKG/usr/bin +cat time > $PKG/usr/bin/time +chmod 755 $PKG/usr/bin/time +mkdir -p $PKG/usr/info +cat time.info | gzip -9c > $PKG/usr/info/time.info.gz +mkdir -p $PKG/usr/doc/time-${VERSION} +cp -a \ + AUTHORS COPYING NEWS README \ + $PKG/usr/doc/time-${VERSION} +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/time-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/tree/slack-desc b/source/a/tree/slack-desc new file mode 100644 index 000000000..4140d110e --- /dev/null +++ b/source/a/tree/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tree: tree (a program to display a directory tree) +tree: +tree: Tree is a recursive directory listing program that produces a depth +tree: indented listing of files, which is colorized ala dircolors if the +tree: LS_COLORS environment variable is set and output is to tty. With no +tree: arguments, tree lists the files in the current directory. +tree: +tree: The tree utility was written by Steve Baker. +tree: +tree: +tree: diff --git a/source/a/tree/tree.SlackBuild b/source/a/tree/tree.SlackBuild new file mode 100755 index 000000000..d20c3c1eb --- /dev/null +++ b/source/a/tree/tree.SlackBuild @@ -0,0 +1,65 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.5.2.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tree + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tree-$VERSION +tar xvf $CWD/tree-$VERSION.tar.?z* || exit 1 +cd tree-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make -j2 || exit 1 +mkdir -p $PKG/usr/bin +cat tree > $PKG/usr/bin/tree +chmod 755 $PKG/usr/bin/tree +mkdir -p $PKG/usr/man/man1 +cat man/tree.1 | gzip -9c > $PKG/usr/man/man1/tree.1.gz +mkdir -p $PKG/usr/doc/tree-$VERSION +cp -a \ + CHANGES LICENSE README \ + $PKG/usr/doc/tree-$VERSION +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/tree-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/udev/config/modprobe.d/blacklist.conf.new b/source/a/udev/config/modprobe.d/blacklist.conf.new new file mode 100644 index 000000000..25811703d --- /dev/null +++ b/source/a/udev/config/modprobe.d/blacklist.conf.new @@ -0,0 +1,270 @@ +# +# Listing a module here prevents the hotplug scripts from loading it. +# Usually that'd be so that some other driver will bind it instead, +# no matter which driver happens to get probed first. Sometimes user +# mode tools can also control driver binding. + +# PC Speaker support: +# This one is loaded by /etc/rc.d/rc.modules. If you don't like +# the beeps and buzz from speaker, edit /etc/rc.d/rc.modules. +blacklist pcspkr + +# tulip ... de4x5, xircom_tulip_cb, dmfe (...) handle same devices +blacklist de4x5 + +# At least 2.4.3 and later xircom_tulip doesn't have that conflict +# xircom_tulip_cb +blacklist dmfe + +#evbug is a debug tool and should be loaded explicitly +blacklist evbug + +# Alternate Intel EtherExpress Pro/100 support driver. List it +# here so it won't conflict with an already-loaded e100 module. +blacklist eepro100 + +# Alternate 8139 driver. Some 8139 cards need this specific driver, +# though... +blacklist 8139cp + +# Deprecated BCM4318 driver. +blacklist bcm43xx + +# Modules used to run a wireless adaptor as an access point. These +# conflict with the normal driver for the device, and so should be +# loaded manually. +blacklist hostap_cs +blacklist hostap_pci +blacklist hostap_plx +blacklist hostap + +# Ethernet over IEEE1394 module. In too many cases this will load +# when there's no eth1394 device present (just an IEEE1394 port) +blacklist eth1394 + +# This module has also been known to cause crashes with some hardware. +blacklist hw_random + +# The kernel lists this as "experimental", but for now it's "broken" +blacklist via-ircc + +# ALSA modules to support sound modems. These should be loaded manually +# if needed. For most people they just break sound support... +blacklist snd-atiixp-modem +blacklist snd-intel8x0m +blacklist snd-via82xx-modem + +# OSS (Open Sound System) modules. This is the old and deprecated Linux +# sound system. If you want to use OSS, remove the alsa-driver package +# and cut out (or comment out) this list. With these modules +# blacklisted ALSA will load by default. +blacklist ac97 +blacklist ac97_codec +blacklist aci +blacklist ad1816 +blacklist ad1848 +blacklist ad1889 +blacklist adlib_card +blacklist aedsp16 +blacklist ali5455 +blacklist awe_wave +blacklist btaudio +blacklist cmpci +blacklist cs4232 +blacklist cs4281 +blacklist cs46xx +blacklist emu10k1 +blacklist es1370 +blacklist es1371 +blacklist esssolo1 +blacklist forte +blacklist gus +blacklist i810_audio +blacklist kahlua +blacklist mad16 +blacklist maestro +blacklist maestro3 +blacklist maui +blacklist mpu401 +blacklist msnd +blacklist msnd_classic +blacklist msnd_pinnacle +blacklist nm256_audio +blacklist opl3 +blacklist opl3sa +blacklist opl3sa2 +blacklist pas2 +blacklist pss +blacklist rme96xx +blacklist sb +blacklist sb_lib +blacklist sgalaxy +blacklist sonicvibes +blacklist sound +blacklist sscape +blacklist trident +blacklist trix +blacklist uart401 +blacklist uart6850 +blacklist v_midi +blacklist via82cxxx_audio +blacklist wavefront +blacklist ymfpci + +# Hardware specific video framebuffer modules. If the user wants +# these, they can load them manually or de-blacklist them. Having +# them load automatically may lead to funny side effects with +# certain revisions of video hardware. +blacklist arcfb +blacklist aty128fb +blacklist atyfb +blacklist cirrusfb +blacklist clgenfb +blacklist cyber2000fb +blacklist fbcon-cfb2 +blacklist fbcon-cfb4 +blacklist fbcon-hga +blacklist fbcon-mfb +blacklist fbcon-vga-planes +blacklist fbgen +blacklist hgafb +blacklist i2c-matroxfb +blacklist i810fb +blacklist intelfb +blacklist kyrofb +blacklist matroxfb_DAC1064 +blacklist matroxfb_Ti3026 +blacklist matroxfb_accel +blacklist matroxfb_base +blacklist matroxfb_crtc2 +blacklist matroxfb_g450 +blacklist matroxfb_maven +blacklist matroxfb_misc +blacklist neofb +blacklist nvidiafb +blacklist pm2fb +blacklist pm3fb +blacklist radeonfb +blacklist rivafb +blacklist savagefb +blacklist sisfb +blacklist sstfb +blacklist tdfxfb +blacklist tridentfb +blacklist vga16fb + +# SCSI and SATA controller modules. Typically these are either +# built into the kernel or loaded with an initrd already. +blacklist 3w-xxxx +blacklist 53c7,8xx +blacklist AM53C974 +blacklist BusLogic +blacklist NCR53c406a +blacklist a100u2w +blacklist advansys +blacklist aha152x +blacklist aha1542 +blacklist aha1740 +blacklist aic79xx +blacklist aic7xxx +blacklist aic7xxx_old +blacklist aic94xx +blacklist ata_piix +blacklist atp870u +blacklist cpqfc +blacklist dc395x +blacklist dmx3191d +blacklist dpt_i2o +blacklist dtc +blacklist eata +blacklist eata_dma +blacklist eata_pio +blacklist fdomain +blacklist g_NCR5380 +blacklist g_NCR5380_mmio +blacklist gdth +blacklist ide-scsi +blacklist imm +blacklist in2000 +blacklist initio +blacklist ipr +blacklist ips +blacklist libata +blacklist megaraid +blacklist ncr53c8xx +blacklist nsp32 +blacklist osst +blacklist pas16 +blacklist pci2000 +blacklist pci2220i +blacklist ppa +blacklist psi240i +blacklist qla1280 +blacklist qla2100 +blacklist qla2200 +blacklist qla2300 +blacklist qla2322 +blacklist qla2xxx +blacklist qla6312 +blacklist qla6322 +blacklist qlogicfas +blacklist qlogicfas408 +blacklist qlogicfc +blacklist qlogicisp +blacklist seagate +blacklist sim710 +blacklist sata_promise +blacklist sata_sil +blacklist sata_sis +blacklist sata_svw +blacklist sata_sx4 +blacklist sata_via +blacklist sata_vsc +blacklist scsi_debug +blacklist scsi_transport_fc +blacklist scsi_transport_spi +blacklist sym53c416 +blacklist sym53c8xx +blacklist sym53c8xx +blacklist t128 +blacklist tmscsim +blacklist u14-34f + +# Blacklist all watchdog modules. Many motherboards hangs with them and, +# if you really need an watchdog you probably know how to load the module +blacklist acquirewdt +blacklist advantechwdt +blacklist alim1535_wdt +blacklist alim7101_wdt +blacklist cpu5wdt +blacklist eurotechwdt +blacklist hpwdt +blacklist i6300esb +blacklist iTCO_vendor_support +blacklist iTCO_wdt +blacklist ib700wdt +blacklist ibmasr +blacklist it8712f_wdt +blacklist machzwd +blacklist mixcomwd +blacklist pc87413_wdt +blacklist pcwd +blacklist pcwd_pci +blacklist pcwd_usb +blacklist sbc60xxwdt +blacklist sbc7240_wdt +blacklist sbc8360 +blacklist sbc_epx_c3 +blacklist sc1200wdt +blacklist sc520_wdt +blacklist scx200_wdt +blacklist smsc37b787_wdt +blacklist softdog +blacklist w83627hf_wdt +blacklist w83697hf_wdt +blacklist w83877f_wdt +blacklist w83977f_wdt +blacklist wafer5823wdt +blacklist wdt +blacklist wdt_pci + diff --git a/source/a/udev/config/modprobe.d/isapnp.conf.new b/source/a/udev/config/modprobe.d/isapnp.conf.new new file mode 100644 index 000000000..2ed9305ee --- /dev/null +++ b/source/a/udev/config/modprobe.d/isapnp.conf.new @@ -0,0 +1,15 @@ +# These aliases are here because many PnP modules do not +# provide aliases for them. +alias pnp:dPNP0400 parport_pc +alias pnp:dPNP0401 parport_pc +alias pnp:dPNP0510 irtty-sir +alias pnp:dPNP0511 irtty-sir +alias pnp:dPNP0700 floppy +alias pnp:dPNP0B00 rtc +alias acpi:PNP0B00: rtc-cmos +alias acpi:PNP0B01: rtc-cmos +alias acpi:PNP0B02: rtc-cmos +alias pnp:dPNPB02F analog +alias pnp:dPNP0F13 psmouse +alias pnp:dPNP0800 pcspkr +alias pnp:dPNP0303 atkbd diff --git a/source/a/udev/config/modprobe.d/psmouse.conf.new b/source/a/udev/config/modprobe.d/psmouse.conf.new new file mode 100644 index 000000000..70c0d8195 --- /dev/null +++ b/source/a/udev/config/modprobe.d/psmouse.conf.new @@ -0,0 +1,6 @@ +# PS/2 mouse support: +# The default options when the psmouse module can cause problems with KVM +# switches. If you experience this, you may want to uncomment the line +# below to use a more basic mouse protocol with the psmouse module: +#options psmouse proto=imps + diff --git a/source/a/udev/config/modprobe.d/usb-controller.conf.new b/source/a/udev/config/modprobe.d/usb-controller.conf.new new file mode 100644 index 000000000..4b77fd825 --- /dev/null +++ b/source/a/udev/config/modprobe.d/usb-controller.conf.new @@ -0,0 +1,4 @@ +# Make sure that ehci-hcd is always loaded before uhci-hci +# # or ohci-hcd to prevent a kernel warning: +install uhci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i uhci-hcd +install ohci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i ohci-hcd diff --git a/source/a/udev/config/rc.d/rc.udev.new b/source/a/udev/config/rc.d/rc.udev.new new file mode 100644 index 000000000..8c238b0dd --- /dev/null +++ b/source/a/udev/config/rc.d/rc.udev.new @@ -0,0 +1,133 @@ +#!/bin/sh +# This is a script to initialize udev, which populates the /dev +# directory with device nodes, scans for devices, loads the +# appropriate kernel modules, and configures the devices. + +PATH="/sbin:/bin" +OPT="" + +. /etc/udev/udev.conf + +# remove trailing slash from udev_root +UDEV_ROOT=$(echo "${udev_root}" |sed 's/\/*$//') + +case "$1" in + start) + # Sanity check #1, udev requires that the kernel support tmpfs: + if ! grep -wq tmpfs /proc/filesystems ; then + echo "Sorry, but you need tmpfs support in the kernel to use udev." + echo + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + + # Sanity check #2, make sure that a 2.6.x kernel is new enough: + if [ "$(uname -r | cut -f 1,2 -d .)" = "2.6" ]; then + if [ "$(uname -r | cut -f 3 -d . | sed 's/[^[:digit:]].*//')" -lt "15" ]; then + echo "Sorry, but you need a 2.6.15+ kernel to use udev." + echo "Your kernel version is only $(uname -r)." + echo + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + fi + + # Sanity check #3, make sure the udev package was not removed. If udevd + # is not there, this will also shut off this script to prevent further + # problems: + if [ ! -x /sbin/udevd ]; then + chmod 644 /etc/rc.d/rc.udev + echo "No udevd daemon found." + echo "Turning off udev: chmod 644 /etc/rc.d/rc.udev" + echo "FATAL: Refusing to run /etc/rc.d/rc.udev." + exit 1 + fi + + # Disable hotplug helper since udevd listens to netlink: + if [ -e /proc/sys/kernel/hotplug ]; then + echo "" > /proc/sys/kernel/hotplug + fi + + # if udevd is already running, rc.udev start will try to re-run + # failed events. Else, it will start udevd. + if ps axc | grep -q udevd ; then + OPT="--type=failed $OPT" + ( cd ${UDEV_ROOT}/.udev + for TMPFILE in tmp-rules-*.rules ; do + mv $TMPFILE /etc/udev/rules.d/${TMPFILE/tmp-rules--/} 2>/dev/null + done + ) + else + # Mount tmpfs on $UDEV_ROOT: + if ! grep -E -q "^[^[:space:]]+ $UDEV_ROOT tmpfs" /proc/mounts; then + # umount shm if needed + if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/shm tmpfs" /proc/mounts; then + umount -l $UDEV_ROOT/shm + fi + + # Umount pts if needed, we will remount it later: + if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/pts devpts" /proc/mounts; then + umount -l $UDEV_ROOT/pts + fi + + # Mount tmpfs on $UDEV_ROOT: + # the -n is because we don't want $UDEV_ROOT umounted when + # someone (rc.[06]) calls umount -a + mount -n -o mode=0755 -t tmpfs tmpfs $UDEV_ROOT + + # Remount pts: + mkdir $UDEV_ROOT/pts 2> /dev/null + mount -n -o mode=0620,gid=5 -t devpts devpts $UDEV_ROOT/pts + fi + + # Add the static nodes to $UDEV_ROOT: + cp --preserve=all --recursive --remove-destination /lib/udev/devices/* $UDEV_ROOT + + # Start udevd: + echo "Starting udevd: /sbin/udevd --daemon" + /sbin/udevd --daemon + + # Create rootdev rules + DEVICENUMBER=$( /bin/stat -c %d / ) + MAJORNUMBER=$(($DEVICENUMBER / 256)) + MINORNUMBER=$(($DEVICENUMBER % 256)) + + echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$MAJORNUMBER'", ENV{MINOR}=="'$MINORNUMBER'", SYMLINK+="root"' > /dev/.udev/rules.d/61-dev-root-link.rules + + fi + + echo "Triggering udev events: /sbin/udevadm trigger $OPT" + # Call udevtrigger and udevsettle to do the device configuration: + /sbin/udevadm trigger $OPT && /sbin/udevadm settle --timeout=120 + + ;; + stop) + echo "Stopping udevd" + if [ -e /proc/sys/kernel/hotplug ]; then + echo /sbin/hotplug > /proc/sys/kernel/hotplug + fi + killall udevd + ;; + restart) + echo "Restarting udevd" + killall udevd + sleep 5 + udevd --daemon + ;; + reload) + echo "Reloading udev rules" + udevadm control --reload-rules + cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT + ;; + force-reload) + echo "Updating all available device nodes in $UDEV_ROOT" + udevadm control --reload-rules + rm -rf $UDEV_ROOT/.udev $UDEV_ROOT/disk + cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT + ;; + + *) + echo "Usage: $0 {start|stop|restart|reload|force-reload}" + exit 1 + ;; +esac diff --git a/source/a/udev/config/rules.d/40-slackware.rules b/source/a/udev/config/rules.d/40-slackware.rules new file mode 100644 index 000000000..29b6071e0 --- /dev/null +++ b/source/a/udev/config/rules.d/40-slackware.rules @@ -0,0 +1,16 @@ +# /lib/udev/rules.d/40-slackware.rules +# +# Slackware custom udev rules +# Also see the following Slackware-provided custom rules files: +# 65-permissions.rules and 90-network.rules +# +# Any change in this file will be overwritten in upgrades. Put your +# custom rules somewhere else (90-local.rules is a good idea). +# +# See the udev man page to know the parameters you can use in udev +# rules. +# + +# input devices +KERNEL=="mice", SYMLINK+="mouse" + diff --git a/source/a/udev/config/rules.d/65-permissions.rules b/source/a/udev/config/rules.d/65-permissions.rules new file mode 100644 index 000000000..b0cfb2590 --- /dev/null +++ b/source/a/udev/config/rules.d/65-permissions.rules @@ -0,0 +1,52 @@ +# Slackware permission rules +# +# These rules are here instead of 40-slackware.rules because +# many of them need to run after the block section in +# 50-udev.default.rules +# +# Remember, in any upgrade, this file will be overwritten. +# Put your custom rules somewhere else (90-local.rules is +# a good idea). +# + +# all disks with group disk +KERNEL!="fd*", SUBSYSTEM=="block", GROUP="disk" + +# permissions for IDE floppy devices +KERNEL=="hd*[!0-9]", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", \ + SYMLINK+="floppy floppy-%k", OPTIONS+="ignore_remove" +KERNEL=="hd*[0-9]", ATTRS{media}=="floppy", ATTRS{removable}=="1", \ + SYMLINK+="floppy-%k", OPTIONS+="ignore_remove" + +# put all removable devices in group "plugdev" +KERNEL=="hd*[!0-9]", ATTR{removable}=="1", GROUP="plugdev" +KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GROUP="plugdev" +KERNEL=="sd*[!0-9]", ATTR{removable}=="1", GROUP="plugdev" +KERNEL=="sd*[0-9]", ATTRS{removable}=="1", GROUP="plugdev" + +# Many hot-pluggable devices (ZIP, Jazz, LS-120, etc...) +# need to be in plugdev, too. +KERNEL=="diskonkey*", GROUP="plugdev" +KERNEL=="jaz*", GROUP="plugdev" +KERNEL=="pocketzip*", GROUP="plugdev" +KERNEL=="zip*", GROUP="plugdev" +KERNEL=="ls120", GROUP="plugdev" +KERNEL=="microdrive*", GROUP="plugdev" + +# CD group and permissions +ENV{ID_CDROM}=="?*", GROUP="cdrom", MODE="0660" +KERNEL=="pktcdvd", GROUP="cdrom", MODE="0660" +KERNEL=="pktcdvd[0-9]*", GROUP="cdrom", MODE="0660" +# permissions for SCSI sg devices +SUBSYSTEMS=="scsi", KERNEL=="s[gt][0-9]*", ATTRS{type}=="5", \ + GROUP="cdrom", MODE="0660" + +# Make DRI video devices usable by anyone in group "video": +KERNEL=="card[0-9]*",GROUP:="video" + +# alsa devices +SUBSYSTEM=="sound", GROUP="audio" + +# Make the real time clock readable by all, and writable by root: +KERNEL=="rtc|rtc0", MODE="0644" + diff --git a/source/a/udev/config/rules.d/90-network.rules b/source/a/udev/config/rules.d/90-network.rules new file mode 100644 index 000000000..03f2ddc76 --- /dev/null +++ b/source/a/udev/config/rules.d/90-network.rules @@ -0,0 +1,5 @@ +# This file will be overwritten in next upgrade. Please put your +# custom rules somewhere else (90-local.rules is a good idea) + +SUBSYSTEM=="net", NAME=="?*", ACTION=="add", RUN+="nethelper.sh $env{INTERFACE} start" +SUBSYSTEM=="net", NAME=="?*", ACTION=="remove", RUN+="nethelper.sh $env{INTERFACE} stop" diff --git a/source/a/udev/config/scripts/nethelper.sh b/source/a/udev/config/scripts/nethelper.sh new file mode 100755 index 000000000..9e1720271 --- /dev/null +++ b/source/a/udev/config/scripts/nethelper.sh @@ -0,0 +1,62 @@ +#!/bin/sh +DEVNAME="$1" +COMMAND="$2" + +testwrite() { + if touch /var/run/checkrw 2>/dev/null ; then + rm -rf /var/run/checkrw + RW=1 + fi +} + +case $DEVNAME in + eth*|ath*|wlan*|ra*|sta*|ctc*|lcs*|hsi*) + case $COMMAND in + 'start') + testwrite + + if [ $RW ]; then + if [ -x /etc/rc.d/rc.inet1 ]; then + if ! /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then + /etc/rc.d/rc.inet1 ${DEVNAME}_start + fi + fi + exit 0 + else + exit 1 + fi + ;; + 'stop') + if [ -x /etc/rc.d/rc.inet1 ]; then + if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then + /etc/rc.d/rc.inet1 ${DEVNAME}_stop + fi + fi + # Does dhcpcd appear to still be running on the + # interface? If so, try to stop it. + if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid -o -r /var/run/dhcpcd-$DEVNAME.pid ]; then + /sbin/dhcpcd -k -d $DEVNAME + # Force garbage removal, if needed: + if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid ]; then + /bin/rm -f /etc/dhcpc/dhcpcd-$DEVNAME.pid + elif [ -r /var/run/dhcpcd-$DEVNAME.pid ]; then + /bin/rm -f /var/run/dhcpcd-$DEVNAME.pid + fi + fi + # If the interface is now down, exit with a status of 0: + if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} " ; then + exit 0 + fi + ;; + *) + echo "usage $0 interface start|stop" + exit 1 + ;; + esac + ;; + *) + echo "Interface $DEVNAME not supported." + exit 1 + ;; +esac +exit 0 diff --git a/source/a/udev/config/udev.conf b/source/a/udev/config/udev.conf new file mode 100644 index 000000000..b0421a08b --- /dev/null +++ b/source/a/udev/config/udev.conf @@ -0,0 +1,14 @@ +# udev.conf +# The main config file for udev +# +# This file can be used to override some of udev's default values for where it +# looks for files, and where it places device nodes. + +# udev_root - where in the filesystem to place the device nodes +udev_root="/dev/" + +# udev_log - The initial syslog(3) priority: "err", "info", "debug" or +# its numerical equivalent. For runtime debugging, the daemons +# internal state can be changed with: udevcontrol log_priority=<value> +udev_log="err" + diff --git a/source/a/udev/doinst.sh b/source/a/udev/doinst.sh new file mode 100644 index 000000000..5e737ca0c --- /dev/null +++ b/source/a/udev/doinst.sh @@ -0,0 +1,39 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.udev.new: +if [ -e etc/rc.d/rc.udev ]; then + cp -a etc/rc.d/rc.udev etc/rc.d/rc.udev.new.incoming + cat etc/rc.d/rc.udev.new > etc/rc.d/rc.udev.new.incoming + mv etc/rc.d/rc.udev.new.incoming etc/rc.d/rc.udev.new +fi + +# There's no reason for a user to edit rc.udev, so overwrite it: +if [ -r etc/rc.d/rc.udev.new ]; then + mv etc/rc.d/rc.udev.new etc/rc.d/rc.udev +fi + +# This should catch *all* files in /etc/modprobe.d/ and move them over to +# have .conf extensions +for modfile in $(ls etc/modprobe.d/ | grep -v "\.\(conf\|bak\|orig\|new\)"); do + if [ -e etc/modprobe.d/$modfile -a ! -e etc/modprobe.d/$modfile.conf ]; then + mv etc/modprobe.d/$modfile etc/modprobe.d/$modfile.conf + elif [ -e etc/modprobe.d/$modfile -a -e etc/modprobe.d/$modfile.conf ]; then + mv etc/modprobe.d/$modfile etc/modprobe.d/$modfile.bak + fi +done + +config etc/modprobe.d/blacklist.conf.new +config etc/modprobe.d/isapnp.conf.new +config etc/modprobe.d/psmouse.conf.new +config etc/modprobe.d/usb-controller.conf.new + diff --git a/source/a/udev/rule_generator.diff b/source/a/udev/rule_generator.diff new file mode 100644 index 000000000..0ff218a6c --- /dev/null +++ b/source/a/udev/rule_generator.diff @@ -0,0 +1,80 @@ +diff -Naur udev-114/extras/rule_generator/write_cd_rules udev-114slk/extras/rule_generator/write_cd_rules +--- udev-114/extras/rule_generator/write_cd_rules 2007-08-05 09:08:47.000000000 -0300 ++++ udev-114slk/extras/rule_generator/write_cd_rules 2007-08-22 20:17:24.000000000 -0300 +@@ -3,7 +3,8 @@ + # This script is run if an optical drive lacks a rule for persistent naming. + # + # It adds symlinks for optical drives based on the device class determined +-# by cdrom_id and used ID_PATH to identify the device. ++# by cdrom_id and used ID_PATH or ID_SERIAL or ID_MODEL and ID_REVISION ++# to identify the device. + # + # (C) 2006 Marco d'Itri <md@Linux.IT> + # +@@ -97,18 +98,59 @@ + choose_rules_file + + link_num=$(find_next_available 'cdrom[0-9]*') ++[ "$link_num" = "" ] && link_num=0 + + match="ENV{ID_CDROM}==\"?*\", $RULE" + + comment="$ID_MODEL ($ID_PATH)" +- + write_rule "$match" "cdrom$link_num" "$comment" +-[ "$ID_CDROM_CD_R" -o "$ID_CDROM_CD_RW" ] && \ +- write_rule "$match" "cdrw$link_num" +-[ "$ID_CDROM_DVD" ] && \ +- write_rule "$match" "dvd$link_num" +-[ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ] && \ +- write_rule "$match" "dvdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdrom)" = "" ]; then ++ write_rule "$match" "cdrom" ++ fi ++ ++ if [ "$ID_CDROM_CD_R" ]; then ++ write_rule "$match" "cdr$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdr)" = "" ]; then ++ write_rule "$match" "cdr" ++ fi ++ ++ write_rule "$match" "cdwriter$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdwriter)" = "" ]; then ++ write_rule "$match" "cdwriter" ++ fi ++ ++ if [ "$ID_CDROM_CD_RW" ]; then ++ write_rule "$match" "cdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' cdrw)" = "" ]; then ++ write_rule "$match" "cdrw" ++ fi ++ fi ++ ++ if [ "$(find_all_rules 'SYMLINK+=' writer)" = "" ]; then ++ write_rule "$match" "writer" ++ fi ++ fi ++ ++ if [ "$ID_CDROM_DVD" ]; then ++ write_rule "$match" "dvd$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvd)" = "" ]; then ++ write_rule "$match" "dvd" ++ fi ++ ++ if [ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ]; then ++ write_rule "$match" "dvdrw$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvdrw)" = "" ]; then ++ write_rule "$match" "dvdrw" ++ fi ++ ++ write_rule "$match" "dvdwriter$link_num" ++ if [ "$(find_all_rules 'SYMLINK+=' dvdwriter)" = "" ]; then ++ write_rule "$match" "dvdwriter" ++ fi ++ fi ++ fi ++ ++ + + unlock_rules_file + diff --git a/source/a/udev/slack-desc b/source/a/udev/slack-desc new file mode 100644 index 000000000..c411756c8 --- /dev/null +++ b/source/a/udev/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +udev: udev (dynamic device directory system) +udev: +udev: udev provides a dynamic device directory containing only the files +udev: for the devices which are actually present. It creates or removes +udev: device node files usually located in the /dev directory. +udev: +udev: udev requires a 2.6 or newer kernel. +udev: +udev: Kay Sievers is the udev maintainer. +udev: +udev: diff --git a/source/a/udev/udev-141.tar.bz2.sign b/source/a/udev/udev-141.tar.bz2.sign new file mode 100644 index 000000000..a30826919 --- /dev/null +++ b/source/a/udev/udev-141.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBJ3TgkyGugalF9Dw4RAtJCAJ4+ns9bz4ZIu+3ecfra/BWrn3euqwCeOFQZ +6A7UqbHlTlD48sOk249ZATA= +=AY1A +-----END PGP SIGNATURE----- diff --git a/source/a/udev/udev.SlackBuild b/source/a/udev/udev.SlackBuild new file mode 100755 index 000000000..0c6327486 --- /dev/null +++ b/source/a/udev/udev.SlackBuild @@ -0,0 +1,140 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-141} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-udev + +rm -rf $PKG +mkdir -p $TMP $PKG/lib/udev +cd $TMP +rm -rf udev-$VERSION +tar xvf $CWD/udev-$VERSION.tar.bz2 || exit 1 +cd udev-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/rule_generator.diff.gz | patch -p1 --verbose || exit 1 + +./configure \ + --prefix=/usr \ + --exec-prefix=/ \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --with-libdir-name=lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# scsi_id and vol_id are needed by multipath +( cd $PKG/sbin + ln -s ../lib/udev/scsi_id scsi_id + ln -s ../lib/udev/vol_id vol_id +) + +mkdir -p \ + $PKG/etc/modprobe.d \ + $PKG/etc/rc.d \ + $PKG/etc/udev/rules.d \ + $PKG/lib/firmware + +# Yes, these will clobber existing config files. +cp -a $CWD/config/udev.conf $PKG/etc/udev/udev.conf +# Copy Slackware custom rules +cp -a $CWD/config/rules.d/* $PKG/lib/udev/rules.d/ +# Copy some files from upstream +cp -a rules/packages/40-alsa.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-isdn.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-zaptel.rules $PKG/lib/udev/rules.d/ +cp -a rules/packages/40-infiniband.rules $PKG/lib/udev/rules.d/ +#cp -a rules/packages/40-pilot-links.rules $PKG/etc/udev/rules.d/ +#cp -a rules/packages/64-md-raid.rules $PKG/etc/udev/rules.d/ +# Now the init script and module-init-tools stuff +cp -a $CWD/config/rc.d/rc.udev.new $PKG/etc/rc.d/rc.udev.new +cp -a $CWD/config/modprobe.d/* $PKG/etc/modprobe.d + +chown -R root:root $PKG/etc +find $PKG/etc -type f -exec chmod 644 {} \; +find $PKG/etc -type d -exec chmod 755 {} \; +chmod 755 $PKG/etc/rc.d/rc.udev.new + +# Add extra device nodes to the package that udev doesn't make: +tar xvf $CWD/udev-fixed-devices.tar.gz -C $PKG + +# Add various helper scripts: +for file in $CWD/config/scripts/* ; do + cp -a $file $PKG/lib/udev/ +done +chown -R root:root $PKG/lib/udev +chmod 755 $PKG/lib/udev/* + +mkdir -p $PKG/usr/doc/udev-$VERSION +cp -a \ + COPYING* FAQ README* TODO RELEASE-NOTES docs \ + $PKG/usr/doc/udev-$VERSION + +# Compress and fix manpage symlinks: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c y $TMP/udev-$VERSION-$ARCH-$BUILD.txz diff --git a/source/a/unarj/Makefile b/source/a/unarj/Makefile new file mode 100644 index 000000000..95483e751 --- /dev/null +++ b/source/a/unarj/Makefile @@ -0,0 +1,21 @@ +# +# Makefile for unarj under Linux +# by Arrigo Triulzi ({a.triulzi,agbt}@{imperial,ic}.ac.uk) +# + +CC = gcc +CFLAGS = -O2 -DUNIX +INSTALLDIR=/usr/bin + +unarj: unarj.o decode.o environ.o + gcc $(CFLAGS) -o unarj unarj.o decode.o environ.o + +clean: + rm -f core unarj *.o *.out + +install: + cp unarj $(INSTALLDIR) + +unarj.o: unarj.c unarj.h Makefile +environ.o: environ.c unarj.h Makefile +decode.o: decode.c unarj.h Makefile diff --git a/source/a/unarj/slack-desc b/source/a/unarj/slack-desc new file mode 100644 index 000000000..14b080098 --- /dev/null +++ b/source/a/unarj/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +unarj: unarj (a command-line utility for decompressing .arj archives) +unarj: +unarj: This is a simple command-line tool for decompressing .arj files. +unarj: Thanks to Haruhiko Okumura and ARJ Software, Inc. for providing this +unarj: source code free of charge. +unarj: +unarj: UNARJ software and manual copyright (c) 1990-2002 ARJ Software, Inc. +unarj: All rights reserved. +unarj: +unarj: +unarj: diff --git a/source/a/unarj/unarj.SlackBuild b/source/a/unarj/unarj.SlackBuild new file mode 100755 index 000000000..56097eb2c --- /dev/null +++ b/source/a/unarj/unarj.SlackBuild @@ -0,0 +1,61 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=265 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-unarj + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf unarj${VERSION} +tar xzvf $CWD/unarj${VERSION}.tar.gz +cd unarj${VERSION} +chown -R root:root . +cp -a $CWD/Makefile.gz . +gzip --force -d Makefile.gz +make || exit 1 +mkdir -p $PKG/usr/bin +cat unarj > $PKG/usr/bin/unarj +chmod 755 $PKG/usr/bin/unarj +mkdir -p $PKG/usr/doc/unarj${VERSION} +cp -a \ + *.txt \ + $PKG/usr/doc/unarj${VERSION} +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/unarj-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/usbutils/slack-desc b/source/a/usbutils/slack-desc new file mode 100644 index 000000000..ffca25c28 --- /dev/null +++ b/source/a/usbutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +usbutils: usbutils (USB utilities) +usbutils: +usbutils: lsusb displays detailed information about all USB buses and devices +usbutils: in the system. +usbutils: +usbutils: usbmodules lists the kernel modules for a plugged in USB device. +usbutils: +usbutils: See the manual pages for more details. +usbutils: +usbutils: +usbutils: diff --git a/source/a/usbutils/usbutils.SlackBuild b/source/a/usbutils/usbutils.SlackBuild new file mode 100755 index 000000000..dcb14b466 --- /dev/null +++ b/source/a/usbutils/usbutils.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-0.82} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-usbutils + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf usbutils-$VERSION +tar xvf $CWD/usbutils-$VERSION.tar.?z* || exit 1 +cd usbutils-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fetch the latest usb.ids: +rm -f usb.ids* +wget $(grep 'SRC=' update-usbids.sh.in | cut -d= -f2- | tr -d \") + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sbindir=/sbin \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Get rid of this redundant file: +rm -f $PKG/usr/share/usb.ids.gz + +# The usbids are kept under /usr, so it makes no sense at all to have +# this util in /sbin rather than /usr/sbin: +mkdir -p $PKG/usr/sbin +mv $PKG/sbin/update-usbids.sh $PKG/usr/sbin/update-usbids.sh + +# Now that they install the util as "update-usbids.sh" instead of +# "update-usbids", we have to make a compatibility symlink in case +# anyone is updating this with a cron job or some such: +( cd $PKG/usr/sbin ; ln -sf update-usbids.sh update-usbids ) + +# And, since they put the util in /sbin, we'd better at least make the +# upstream name available there too... +( cd $PKG/sbin ; ln -sf /usr/sbin/update-usbids.sh . ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/usbutils-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README \ + $PKG/usr/doc/usbutils-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/usbutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/usbutils/usbutils.ids.dest b/source/a/usbutils/usbutils.ids.dest new file mode 100644 index 000000000..67111881e --- /dev/null +++ b/source/a/usbutils/usbutils.ids.dest @@ -0,0 +1,11 @@ +--- ./update-usbids.sh.orig 2005-01-22 17:03:47.000000000 -0600 ++++ ./update-usbids.sh 2007-01-04 17:14:28.000000000 -0600 +@@ -4,7 +4,7 @@ + + set -e + SRC="http://www.linux-usb.org/usb.ids" +-DEST=usb.ids ++DEST=/usr/share/usb.ids + + if which wget >/dev/null ; then + DL="wget -O $DEST.new $SRC" diff --git a/source/a/utempter/doinst.sh b/source/a/utempter/doinst.sh new file mode 100644 index 000000000..94c6231df --- /dev/null +++ b/source/a/utempter/doinst.sh @@ -0,0 +1,10 @@ +if ! grep "^utmp:" etc/group 1> /dev/null 2> /dev/null ; then + if ! grep ":22:" etc/group 1> /dev/null 2> /dev/null ; then + # we'll be adding this in the etc package anyway. + echo "utmp::22:" >> etc/group + # This should be able to handle itself... + #chown root:utmp usr/sbin/utempter + fi +fi +chown root:utmp var/run/utmp var/log/wtmp +chmod 664 var/run/utmp var/log/wtmp diff --git a/source/a/utempter/slack-desc b/source/a/utempter/slack-desc new file mode 100644 index 000000000..ff00f66e6 --- /dev/null +++ b/source/a/utempter/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +utempter: utempter (utmp updating library and utility) +utempter: +utempter: The utempter package provides a utility and shared library that +utempter: allows terminal applications such as xterm and screen to update +utempter: /var/run/utmp and /var/log/wtmp without requiring root privileges. +utempter: +utempter: +utempter: +utempter: +utempter: +utempter: diff --git a/source/a/utempter/utempter.SlackBuild b/source/a/utempter/utempter.SlackBuild new file mode 100755 index 000000000..7d0d24b75 --- /dev/null +++ b/source/a/utempter/utempter.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.1.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-utempter +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +# The original package name was "utempter", but this new version +# calls itself "libutempter". We'll keep the same old package name +# to avoid confusing upgrades. +rm -rf libutempter-$VERSION +tar xjvf $CWD/libutempter-$VERSION.tar.bz2 +cd libutempter-$VERSION +chown -R root:root . +## I see no reason to use different paths than in utempter-0.5.2: +#zcat $CWD/libutempter.slack.diff.gz | patch -p1 --verbose || exit 1 +find . -perm 664 -exec chmod 644 {} \; +find . -perm 775 -exec chmod 755 {} \; +sed -i -e "s#/usr/lib#/usr/lib${LIBDIRSUFFIX}#g" Makefile +make +make install DESTDIR=$PKG +# A static libutempter seems like a bad idea, since it wouldn't work +# without the making utempter binary. That and the shared lib are a +# closely matched set. +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libutempter.a +# Set proper permissions: +chown root:utmp $PKG/usr/lib${LIBDIRSUFFIX}/utempter/utempter +chmod 2755 $PKG/usr/lib${LIBDIRSUFFIX}/utempter/utempter +chmod 644 $PKG/usr/include/utempter.h +mkdir -p $PKG/usr/doc/utempter-$VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/utempter-$VERSION +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +makepkg -l y -c n $TMP/utempter-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/util-linux-ng/adjtimex_1.23-1.diff b/source/a/util-linux-ng/adjtimex_1.23-1.diff new file mode 100644 index 000000000..8c250157e --- /dev/null +++ b/source/a/util-linux-ng/adjtimex_1.23-1.diff @@ -0,0 +1,5456 @@ +--- adjtimex-1.23.orig/config.sub ++++ adjtimex-1.23/config.sub +@@ -0,0 +1,1622 @@ ++#! /bin/sh ++# Configuration validation subroutine script. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, ++# Inc. ++ ++timestamp='2007-01-18' ++ ++# This file is (in principle) common to ALL GNU software. ++# The presence of a machine in this file suggests that SOME GNU software ++# can handle that machine. It does not imply ALL GNU software can. ++# ++# This file is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++ ++# Please send patches to <config-patches@gnu.org>. Submit a context ++# diff and a properly formatted ChangeLog entry. ++# ++# Configuration subroutine to validate and canonicalize a configuration type. ++# Supply the specified configuration type as an argument. ++# If it is invalid, we print an error message on stderr and exit with code 1. ++# Otherwise, we print the canonical config type on stdout and succeed. ++ ++# This file is supposed to be the same for all GNU packages ++# and recognize all the CPU types, system types and aliases ++# that are meaningful with *any* GNU software. ++# Each package is responsible for reporting which valid configurations ++# it does not support. The user should be able to distinguish ++# a failure to support a valid configuration from a meaningless ++# configuration. ++ ++# The goal of this file is to map all the various variations of a given ++# machine specification into a single specification in the form: ++# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM ++# or in some cases, the newer four-part form: ++# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM ++# It is wrong to echo any other type of specification. ++ ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] CPU-MFR-OPSYS ++ $0 [OPTION] ALIAS ++ ++Canonicalize a configuration name. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.sub ($timestamp) ++ ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" ++ exit 1 ;; ++ ++ *local*) ++ # First pass through any local machine types. ++ echo $1 ++ exit ;; ++ ++ * ) ++ break ;; ++ esac ++done ++ ++case $# in ++ 0) echo "$me: missing argument$help" >&2 ++ exit 1;; ++ 1) ;; ++ *) echo "$me: too many arguments$help" >&2 ++ exit 1;; ++esac ++ ++# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). ++# Here we must recognize all the valid KERNEL-OS combinations. ++maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` ++case $maybe_os in ++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ ++ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ storm-chaos* | os2-emx* | rtmk-nova*) ++ os=-$maybe_os ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ++ ;; ++ *) ++ basic_machine=`echo $1 | sed 's/-[^-]*$//'` ++ if [ $basic_machine != $1 ] ++ then os=`echo $1 | sed 's/.*-/-/'` ++ else os=; fi ++ ;; ++esac ++ ++### Let's recognize common machines as not being operating systems so ++### that things like config.sub decstation-3100 work. We also ++### recognize some manufacturers as not being operating systems, so we ++### can provide default operating systems below. ++case $os in ++ -sun*os*) ++ # Prevent following clause from handling this invalid input. ++ ;; ++ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ ++ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ ++ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ ++ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ ++ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ ++ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ ++ -apple | -axis | -knuth | -cray) ++ os= ++ basic_machine=$1 ++ ;; ++ -sim | -cisco | -oki | -wec | -winbond) ++ os= ++ basic_machine=$1 ++ ;; ++ -scout) ++ ;; ++ -wrs) ++ os=-vxworks ++ basic_machine=$1 ++ ;; ++ -chorusos*) ++ os=-chorusos ++ basic_machine=$1 ++ ;; ++ -chorusrdb) ++ os=-chorusrdb ++ basic_machine=$1 ++ ;; ++ -hiux*) ++ os=-hiuxwe2 ++ ;; ++ -sco6) ++ os=-sco5v6 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco5) ++ os=-sco3.2v5 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco4) ++ os=-sco3.2v4 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco3.2.[4-9]*) ++ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco3.2v[4-9]*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco*) ++ os=-sco3.2v2 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -udk*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -isc) ++ os=-isc2.2 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -clix*) ++ basic_machine=clipper-intergraph ++ ;; ++ -isc*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -lynx*) ++ os=-lynxos ++ ;; ++ -ptx*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ++ ;; ++ -windowsnt*) ++ os=`echo $os | sed -e 's/windowsnt/winnt/'` ++ ;; ++ -psos*) ++ os=-psos ++ ;; ++ -mint | -mint[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++esac ++ ++# Decode aliases for certain CPU-COMPANY combinations. ++case $basic_machine in ++ # Recognize the basic CPU types without company name. ++ # Some are omitted here because they have special meanings below. ++ 1750a | 580 \ ++ | a29k \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | bfin \ ++ | c4x | clipper \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | fido | fr30 | frv \ ++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | i370 | i860 | i960 | ia64 \ ++ | ip2k | iq2000 \ ++ | m32c | m32r | m32rle | m68000 | m68k | m88k \ ++ | maxq | mb | microblaze | mcore | mep \ ++ | mips | mipsbe | mipseb | mipsel | mipsle \ ++ | mips16 \ ++ | mips64 | mips64el \ ++ | mips64vr | mips64vrel \ ++ | mips64orion | mips64orionel \ ++ | mips64vr4100 | mips64vr4100el \ ++ | mips64vr4300 | mips64vr4300el \ ++ | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ ++ | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64sb1 | mipsisa64sb1el \ ++ | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipstx39 | mipstx39el \ ++ | mn10200 | mn10300 \ ++ | mt \ ++ | msp430 \ ++ | nios | nios2 \ ++ | ns16k | ns32k \ ++ | or32 \ ++ | pdp10 | pdp11 | pj | pjl \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | pyramid \ ++ | score \ ++ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ ++ | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | spu | strongarm \ ++ | tahoe | thumb | tic4x | tic80 | tron \ ++ | v850 | v850e \ ++ | we32k \ ++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | z8k) ++ basic_machine=$basic_machine-unknown ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12) ++ # Motorola 68HC11/12. ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ++ ;; ++ ms1) ++ basic_machine=mt-unknown ++ ;; ++ ++ # We use `pc' rather than `unknown' ++ # because (1) that's what they normally are, and ++ # (2) the word "unknown" tends to confuse beginning users. ++ i*86 | x86_64) ++ basic_machine=$basic_machine-pc ++ ;; ++ # Object if more than one company name word. ++ *-*-*) ++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ exit 1 ++ ;; ++ # Recognize the basic CPU types with company name. ++ 580-* \ ++ | a29k-* \ ++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ ++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ ++ | avr-* | avr32-* \ ++ | bfin-* | bs2000-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ++ | clipper-* | craynv-* | cydra-* \ ++ | d10v-* | d30v-* | dlx-* \ ++ | elxsi-* \ ++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ ++ | h8300-* | h8500-* \ ++ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | i*86-* | i860-* | i960-* | ia64-* \ ++ | ip2k-* | iq2000-* \ ++ | m32c-* | m32r-* | m32rle-* \ ++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* \ ++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ ++ | mips16-* \ ++ | mips64-* | mips64el-* \ ++ | mips64vr-* | mips64vrel-* \ ++ | mips64orion-* | mips64orionel-* \ ++ | mips64vr4100-* | mips64vr4100el-* \ ++ | mips64vr4300-* | mips64vr4300el-* \ ++ | mips64vr5000-* | mips64vr5000el-* \ ++ | mips64vr5900-* | mips64vr5900el-* \ ++ | mipsisa32-* | mipsisa32el-* \ ++ | mipsisa32r2-* | mipsisa32r2el-* \ ++ | mipsisa64-* | mipsisa64el-* \ ++ | mipsisa64r2-* | mipsisa64r2el-* \ ++ | mipsisa64sb1-* | mipsisa64sb1el-* \ ++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipstx39-* | mipstx39el-* \ ++ | mmix-* \ ++ | mt-* \ ++ | msp430-* \ ++ | nios-* | nios2-* \ ++ | none-* | np1-* | ns16k-* | ns32k-* \ ++ | orion-* \ ++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | pyramid-* \ ++ | romp-* | rs6000-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ ++ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ ++ | sparclite-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ ++ | tahoe-* | thumb-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tron-* \ ++ | v850-* | v850e-* | vax-* \ ++ | we32k-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | xstormy16-* | xtensa-* \ ++ | ymp-* \ ++ | z8k-*) ++ ;; ++ # Recognize the various machine names and aliases which stand ++ # for a CPU type and a company and sometimes even an OS. ++ 386bsd) ++ basic_machine=i386-unknown ++ os=-bsd ++ ;; ++ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) ++ basic_machine=m68000-att ++ ;; ++ 3b*) ++ basic_machine=we32k-att ++ ;; ++ a29khif) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ abacus) ++ basic_machine=abacus-unknown ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ os=-scout ++ ;; ++ alliant | fx80) ++ basic_machine=fx80-alliant ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos ++ ;; ++ am29k) ++ basic_machine=a29k-none ++ os=-bsd ++ ;; ++ amd64) ++ basic_machine=x86_64-pc ++ ;; ++ amd64-*) ++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ amdahl) ++ basic_machine=580-amdahl ++ os=-sysv ++ ;; ++ amiga | amiga-*) ++ basic_machine=m68k-unknown ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ os=-amigaos ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown ++ os=-sysv4 ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo ++ os=-sysv ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ os=-bsd ++ ;; ++ aux) ++ basic_machine=m68k-apple ++ os=-aux ++ ;; ++ balance) ++ basic_machine=ns32k-sequent ++ os=-dynix ++ ;; ++ c90) ++ basic_machine=c90-cray ++ os=-unicos ++ ;; ++ convex-c1) ++ basic_machine=c1-convex ++ os=-bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex ++ os=-bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex ++ os=-bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex ++ os=-bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex ++ os=-bsd ++ ;; ++ cray | j90) ++ basic_machine=j90-cray ++ os=-unicos ++ ;; ++ craynv) ++ basic_machine=craynv-cray ++ os=-unicosmp ++ ;; ++ cr16c) ++ basic_machine=cr16c-unknown ++ os=-elf ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds ++ ;; ++ crisv32 | crisv32-* | etraxfs*) ++ basic_machine=crisv32-axis ++ ;; ++ cris | cris-* | etrax*) ++ basic_machine=cris-axis ++ ;; ++ crx) ++ basic_machine=crx-unknown ++ os=-elf ++ ;; ++ da30 | da30-*) ++ basic_machine=m68k-da30 ++ ;; ++ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec ++ ;; ++ decsystem10* | dec10*) ++ basic_machine=pdp10-dec ++ os=-tops10 ++ ;; ++ decsystem20* | dec20*) ++ basic_machine=pdp10-dec ++ os=-tops20 ++ ;; ++ delta | 3300 | motorola-3300 | motorola-delta \ ++ | 3300-motorola | delta-motorola) ++ basic_machine=m68k-motorola ++ ;; ++ delta88) ++ basic_machine=m88k-motorola ++ os=-sysv3 ++ ;; ++ djgpp) ++ basic_machine=i586-pc ++ os=-msdosdjgpp ++ ;; ++ dpx20 | dpx20-*) ++ basic_machine=rs6000-bull ++ os=-bosx ++ ;; ++ dpx2* | dpx2*-bull) ++ basic_machine=m68k-bull ++ os=-sysv3 ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd ++ os=-ebmon ++ ;; ++ elxsi) ++ basic_machine=elxsi-elxsi ++ os=-bsd ++ ;; ++ encore | umax | mmax) ++ basic_machine=ns32k-encore ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ os=-ose ++ ;; ++ fx2800) ++ basic_machine=i860-alliant ++ ;; ++ genix) ++ basic_machine=ns32k-ns ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro ++ os=-sysv ++ ;; ++ go32) ++ basic_machine=i386-pc ++ os=-go32 ++ ;; ++ h3050r* | hiux*) ++ basic_machine=hppa1.1-hitachi ++ os=-hiuxwe2 ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi ++ os=-hms ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ os=-xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ os=-hms ++ ;; ++ harris) ++ basic_machine=m88k-harris ++ os=-sysv3 ++ ;; ++ hp300-*) ++ basic_machine=m68k-hp ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp ++ os=-bsd ++ ;; ++ hp300hpux) ++ basic_machine=m68k-hp ++ os=-hpux ++ ;; ++ hp3k9[0-9][0-9] | hp9[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k2[0-9][0-9] | hp9k31[0-9]) ++ basic_machine=m68000-hp ++ ;; ++ hp9k3[2-9][0-9]) ++ basic_machine=m68k-hp ++ ;; ++ hp9k6[0-9][0-9] | hp6[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k7[0-79][0-9] | hp7[0-79][0-9]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k78[0-9] | hp78[0-9]) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][13679] | hp8[0-9][13679]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][0-9] | hp8[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hppa-next) ++ os=-nextstep3 ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ os=-osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ os=-proelf ++ ;; ++ i370-ibm* | ibm*) ++ basic_machine=i370-ibm ++ ;; ++# I'm not sure what "Sysv32" means. Should this be sysv3.2? ++ i*86v32) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv32 ++ ;; ++ i*86v4*) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv4 ++ ;; ++ i*86v) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv ++ ;; ++ i*86sol2) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-solaris2 ++ ;; ++ i386mach) ++ basic_machine=i386-mach ++ os=-mach ++ ;; ++ i386-vsta | vsta) ++ basic_machine=i386-unknown ++ os=-vsta ++ ;; ++ iris | iris4d) ++ basic_machine=mips-sgi ++ case $os in ++ -irix*) ++ ;; ++ *) ++ os=-irix4 ++ ;; ++ esac ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi ++ os=-sysv ++ ;; ++ m88k-omron*) ++ basic_machine=m88k-omron ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips ++ os=-sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek ++ os=-sysv ++ ;; ++ mingw32) ++ basic_machine=i386-pc ++ os=-mingw32 ++ ;; ++ miniframe) ++ basic_machine=m68000-convergent ++ ;; ++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++ mips3*-*) ++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ++ ;; ++ mips3*) ++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ os=-morphos ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ os=-msdos ++ ;; ++ ms1-*) ++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ os=-mvs ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr ++ os=-sysv4 ++ ;; ++ netbsd386) ++ basic_machine=i386-unknown ++ os=-netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ os=-linux ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony ++ os=-newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony ++ os=-newsos ++ ;; ++ news-3600 | risc-news) ++ basic_machine=mips-sony ++ os=-newsos ++ ;; ++ necv70) ++ basic_machine=v70-nec ++ os=-sysv ++ ;; ++ next | m*-next ) ++ basic_machine=m68k-next ++ case $os in ++ -nextstep* ) ++ ;; ++ -ns2*) ++ os=-nextstep2 ++ ;; ++ *) ++ os=-nextstep3 ++ ;; ++ esac ++ ;; ++ nh3000) ++ basic_machine=m68k-harris ++ os=-cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris ++ os=-cxux ++ ;; ++ nindy960) ++ basic_machine=i960-intel ++ os=-nindy ++ ;; ++ mon960) ++ basic_machine=i960-intel ++ os=-mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ os=-nonstopux ++ ;; ++ np1) ++ basic_machine=np1-gould ++ ;; ++ nsr-tandem) ++ basic_machine=nsr-tandem ++ ;; ++ op50n-* | op60c-*) ++ basic_machine=hppa1.1-oki ++ os=-proelf ++ ;; ++ openrisc | openrisc-*) ++ basic_machine=or32-unknown ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ os=-os400 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ os=-ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ os=-os68k ++ ;; ++ pa-hitachi) ++ basic_machine=hppa1.1-hitachi ++ os=-hiuxwe2 ++ ;; ++ paragon) ++ basic_machine=i860-intel ++ os=-osf ++ ;; ++ pbd) ++ basic_machine=sparc-tti ++ ;; ++ pbb) ++ basic_machine=m68k-tti ++ ;; ++ pc532 | pc532-*) ++ basic_machine=ns32k-pc532 ++ ;; ++ pc98) ++ basic_machine=i386-pc ++ ;; ++ pc98-*) ++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium | p5 | k5 | k6 | nexgen | viac3) ++ basic_machine=i586-pc ++ ;; ++ pentiumpro | p6 | 6x86 | athlon | athlon_*) ++ basic_machine=i686-pc ++ ;; ++ pentiumii | pentium2 | pentiumiii | pentium3) ++ basic_machine=i686-pc ++ ;; ++ pentium4) ++ basic_machine=i786-pc ++ ;; ++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) ++ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumpro-* | p6-* | 6x86-* | athlon-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium4-*) ++ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pn) ++ basic_machine=pn-gould ++ ;; ++ power) basic_machine=power-ibm ++ ;; ++ ppc) basic_machine=powerpc-unknown ++ ;; ++ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppcle | powerpclittle | ppc-le | powerpc-little) ++ basic_machine=powerpcle-unknown ++ ;; ++ ppcle-* | powerpclittle-*) ++ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64) basic_machine=powerpc64-unknown ++ ;; ++ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64le | powerpc64little | ppc64-le | powerpc64-little) ++ basic_machine=powerpc64le-unknown ++ ;; ++ ppc64le-* | powerpc64little-*) ++ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ps2) ++ basic_machine=i386-ibm ++ ;; ++ pw32) ++ basic_machine=i586-unknown ++ os=-pw32 ++ ;; ++ rdos) ++ basic_machine=i386-pc ++ os=-rdos ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ rm[46]00) ++ basic_machine=mips-siemens ++ ;; ++ rtpc | rtpc-*) ++ basic_machine=romp-ibm ++ ;; ++ s390 | s390-*) ++ basic_machine=s390-ibm ++ ;; ++ s390x | s390x-*) ++ basic_machine=s390x-ibm ++ ;; ++ sa29200) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ sb1) ++ basic_machine=mipsisa64sb1-unknown ++ ;; ++ sb1el) ++ basic_machine=mipsisa64sb1el-unknown ++ ;; ++ sde) ++ basic_machine=mipsisa32-sde ++ os=-elf ++ ;; ++ sei) ++ basic_machine=mips-sei ++ os=-seiux ++ ;; ++ sequent) ++ basic_machine=i386-sequent ++ ;; ++ sh) ++ basic_machine=sh-hitachi ++ os=-hms ++ ;; ++ sh5el) ++ basic_machine=sh5le-unknown ++ ;; ++ sh64) ++ basic_machine=sh64-unknown ++ ;; ++ sparclite-wrs | simso-wrs) ++ basic_machine=sparclite-wrs ++ os=-vxworks ++ ;; ++ sps7) ++ basic_machine=m68k-bull ++ os=-sysv2 ++ ;; ++ spur) ++ basic_machine=spur-unknown ++ ;; ++ st2000) ++ basic_machine=m68k-tandem ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ os=-sysv4 ++ ;; ++ sun2) ++ basic_machine=m68000-sun ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun ++ os=-sunos3 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun ++ os=-sunos4 ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun ++ os=-sunos3 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun ++ os=-sunos4 ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun ++ os=-sunos3 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun ++ os=-sunos4 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun ++ os=-solaris2 ++ ;; ++ sun3 | sun3-*) ++ basic_machine=m68k-sun ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun ++ ;; ++ sv1) ++ basic_machine=sv1-cray ++ os=-unicos ++ ;; ++ symmetry) ++ basic_machine=i386-sequent ++ os=-dynix ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray ++ os=-unicos ++ ;; ++ t90) ++ basic_machine=t90-cray ++ os=-unicos ++ ;; ++ tic54x | c54x*) ++ basic_machine=tic54x-unknown ++ os=-coff ++ ;; ++ tic55x | c55x*) ++ basic_machine=tic55x-unknown ++ os=-coff ++ ;; ++ tic6x | c6x*) ++ basic_machine=tic6x-unknown ++ os=-coff ++ ;; ++ tx39) ++ basic_machine=mipstx39-unknown ++ ;; ++ tx39el) ++ basic_machine=mipstx39el-unknown ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ os=-tops20 ++ ;; ++ tower | tower-32) ++ basic_machine=m68k-ncr ++ ;; ++ tpf) ++ basic_machine=s390x-ibm ++ os=-tpf ++ ;; ++ udi29k) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu ++ os=-sym1 ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ os=-none ++ ;; ++ vaxv) ++ basic_machine=vax-dec ++ os=-sysv ++ ;; ++ vms) ++ basic_machine=vax-dec ++ os=-vms ++ ;; ++ vpp*|vx|vx-*) ++ basic_machine=f301-fujitsu ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs ++ os=-vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs ++ os=-vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs ++ os=-vxworks ++ ;; ++ w65*) ++ basic_machine=w65-wdc ++ os=-none ++ ;; ++ w89k-*) ++ basic_machine=hppa1.1-winbond ++ os=-proelf ++ ;; ++ xbox) ++ basic_machine=i686-pc ++ os=-mingw32 ++ ;; ++ xps | xps100) ++ basic_machine=xps100-honeywell ++ ;; ++ ymp) ++ basic_machine=ymp-cray ++ os=-unicos ++ ;; ++ z8k-*-coff) ++ basic_machine=z8k-unknown ++ os=-sim ++ ;; ++ none) ++ basic_machine=none-none ++ os=-none ++ ;; ++ ++# Here we handle the default manufacturer of certain CPU types. It is in ++# some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ basic_machine=hppa1.1-winbond ++ ;; ++ op50n) ++ basic_machine=hppa1.1-oki ++ ;; ++ op60c) ++ basic_machine=hppa1.1-oki ++ ;; ++ romp) ++ basic_machine=romp-ibm ++ ;; ++ mmix) ++ basic_machine=mmix-knuth ++ ;; ++ rs6000) ++ basic_machine=rs6000-ibm ++ ;; ++ vax) ++ basic_machine=vax-dec ++ ;; ++ pdp10) ++ # there are many clones, so DEC is not a safe bet ++ basic_machine=pdp10-unknown ++ ;; ++ pdp11) ++ basic_machine=pdp11-dec ++ ;; ++ we32k) ++ basic_machine=we32k-att ++ ;; ++ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) ++ basic_machine=sh-unknown ++ ;; ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) ++ basic_machine=sparc-sun ++ ;; ++ cydra) ++ basic_machine=cydra-cydrome ++ ;; ++ orion) ++ basic_machine=orion-highlevel ++ ;; ++ orion105) ++ basic_machine=clipper-highlevel ++ ;; ++ mac | mpw | mac-mpw) ++ basic_machine=m68k-apple ++ ;; ++ pmac | pmac-mpw) ++ basic_machine=powerpc-apple ++ ;; ++ *-unknown) ++ # Make sure to match an already-canonicalized machine name. ++ ;; ++ *) ++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# Here we canonicalize certain aliases for manufacturers. ++case $basic_machine in ++ *-digital*) ++ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ++ ;; ++ *-commodore*) ++ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ++ ;; ++ *) ++ ;; ++esac ++ ++# Decode manufacturer-specific aliases for certain operating systems. ++ ++if [ x"$os" != x"" ] ++then ++case $os in ++ # First match some system type aliases ++ # that might get confused with valid system types. ++ # -solaris* is a basic system type, with this one exception. ++ -solaris1 | -solaris1.*) ++ os=`echo $os | sed -e 's|solaris1|sunos4|'` ++ ;; ++ -solaris) ++ os=-solaris2 ++ ;; ++ -svr4*) ++ os=-sysv4 ++ ;; ++ -unixware*) ++ os=-sysv4.2uw ++ ;; ++ -gnu/linux*) ++ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ++ ;; ++ # First accept the basic system types. ++ # The portable systems comes first. ++ # Each alternative MUST END IN A *, to match a version number. ++ # -sysv* is not here because it comes later, after sysvr4. ++ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ ++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ ++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ ++ | -aos* \ ++ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ ++ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ ++ | -openbsd* | -solidbsd* \ ++ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ ++ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ ++ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ ++ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ ++ | -chorusos* | -chorusrdb* \ ++ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ ++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ ++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ ++ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ ++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ ++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) ++ # Remember, each alternative MUST END IN *, to match a version number. ++ ;; ++ -qnx*) ++ case $basic_machine in ++ x86-* | i*86-*) ++ ;; ++ *) ++ os=-nto$os ++ ;; ++ esac ++ ;; ++ -nto-qnx*) ++ ;; ++ -nto*) ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` ++ ;; ++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ ++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ ;; ++ -mac*) ++ os=`echo $os | sed -e 's|mac|macos|'` ++ ;; ++ -linux-dietlibc) ++ os=-linux-dietlibc ++ ;; ++ -linux*) ++ os=`echo $os | sed -e 's|linux|linux-gnu|'` ++ ;; ++ -sunos5*) ++ os=`echo $os | sed -e 's|sunos5|solaris2|'` ++ ;; ++ -sunos6*) ++ os=`echo $os | sed -e 's|sunos6|solaris3|'` ++ ;; ++ -opened*) ++ os=-openedition ++ ;; ++ -os400*) ++ os=-os400 ++ ;; ++ -wince*) ++ os=-wince ++ ;; ++ -osfrose*) ++ os=-osfrose ++ ;; ++ -osf*) ++ os=-osf ++ ;; ++ -utek*) ++ os=-bsd ++ ;; ++ -dynix*) ++ os=-bsd ++ ;; ++ -acis*) ++ os=-aos ++ ;; ++ -atheos*) ++ os=-atheos ++ ;; ++ -syllable*) ++ os=-syllable ++ ;; ++ -386bsd) ++ os=-bsd ++ ;; ++ -ctix* | -uts*) ++ os=-sysv ++ ;; ++ -nova*) ++ os=-rtmk-nova ++ ;; ++ -ns2 ) ++ os=-nextstep2 ++ ;; ++ -nsk*) ++ os=-nsk ++ ;; ++ # Preserve the version number of sinix5. ++ -sinix5.*) ++ os=`echo $os | sed -e 's|sinix|sysv|'` ++ ;; ++ -sinix*) ++ os=-sysv4 ++ ;; ++ -tpf*) ++ os=-tpf ++ ;; ++ -triton*) ++ os=-sysv3 ++ ;; ++ -oss*) ++ os=-sysv3 ++ ;; ++ -svr4) ++ os=-sysv4 ++ ;; ++ -svr3) ++ os=-sysv3 ++ ;; ++ -sysvr4) ++ os=-sysv4 ++ ;; ++ # This must come after -sysvr4. ++ -sysv*) ++ ;; ++ -ose*) ++ os=-ose ++ ;; ++ -es1800*) ++ os=-ose ++ ;; ++ -xenix) ++ os=-xenix ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ os=-mint ++ ;; ++ -aros*) ++ os=-aros ++ ;; ++ -kaos*) ++ os=-kaos ++ ;; ++ -zvmoe) ++ os=-zvmoe ++ ;; ++ -none) ++ ;; ++ *) ++ # Get rid of the `-' at the beginning of $os. ++ os=`echo $os | sed 's/[^-]*-//'` ++ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 ++ exit 1 ++ ;; ++esac ++else ++ ++# Here we handle the default operating systems that come with various machines. ++# The value should be what the vendor currently ships out the door with their ++# machine or put another way, the most popular os provided with the machine. ++ ++# Note that if you're going to try to match "-MANUFACTURER" here (say, ++# "-sun"), then you have to tell the case statement up towards the top ++# that MANUFACTURER isn't an operating system. Otherwise, code above ++# will signal an error saying that MANUFACTURER isn't an operating ++# system, and we'll never get to this point. ++ ++case $basic_machine in ++ score-*) ++ os=-elf ++ ;; ++ spu-*) ++ os=-elf ++ ;; ++ *-acorn) ++ os=-riscix1.2 ++ ;; ++ arm*-rebel) ++ os=-linux ++ ;; ++ arm*-semi) ++ os=-aout ++ ;; ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ # This must come before the *-dec entry. ++ pdp10-*) ++ os=-tops20 ++ ;; ++ pdp11-*) ++ os=-none ++ ;; ++ *-dec | vax-*) ++ os=-ultrix4.2 ++ ;; ++ m68*-apollo) ++ os=-domain ++ ;; ++ i386-sun) ++ os=-sunos4.0.2 ++ ;; ++ m68000-sun) ++ os=-sunos3 ++ # This also exists in the configure program, but was not the ++ # default. ++ # os=-sunos4 ++ ;; ++ m68*-cisco) ++ os=-aout ++ ;; ++ mep-*) ++ os=-elf ++ ;; ++ mips*-cisco) ++ os=-elf ++ ;; ++ mips*-*) ++ os=-elf ++ ;; ++ or32-*) ++ os=-coff ++ ;; ++ *-tti) # must be before sparc entry or we get the wrong os. ++ os=-sysv3 ++ ;; ++ sparc-* | *-sun) ++ os=-sunos4.1.1 ++ ;; ++ *-be) ++ os=-beos ++ ;; ++ *-haiku) ++ os=-haiku ++ ;; ++ *-ibm) ++ os=-aix ++ ;; ++ *-knuth) ++ os=-mmixware ++ ;; ++ *-wec) ++ os=-proelf ++ ;; ++ *-winbond) ++ os=-proelf ++ ;; ++ *-oki) ++ os=-proelf ++ ;; ++ *-hp) ++ os=-hpux ++ ;; ++ *-hitachi) ++ os=-hiux ++ ;; ++ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) ++ os=-sysv ++ ;; ++ *-cbm) ++ os=-amigaos ++ ;; ++ *-dg) ++ os=-dgux ++ ;; ++ *-dolphin) ++ os=-sysv3 ++ ;; ++ m68k-ccur) ++ os=-rtu ++ ;; ++ m88k-omron*) ++ os=-luna ++ ;; ++ *-next ) ++ os=-nextstep ++ ;; ++ *-sequent) ++ os=-ptx ++ ;; ++ *-crds) ++ os=-unos ++ ;; ++ *-ns) ++ os=-genix ++ ;; ++ i370-*) ++ os=-mvs ++ ;; ++ *-next) ++ os=-nextstep3 ++ ;; ++ *-gould) ++ os=-sysv ++ ;; ++ *-highlevel) ++ os=-bsd ++ ;; ++ *-encore) ++ os=-bsd ++ ;; ++ *-sgi) ++ os=-irix ++ ;; ++ *-siemens) ++ os=-sysv4 ++ ;; ++ *-masscomp) ++ os=-rtu ++ ;; ++ f30[01]-fujitsu | f700-fujitsu) ++ os=-uxpv ++ ;; ++ *-rom68k) ++ os=-coff ++ ;; ++ *-*bug) ++ os=-coff ++ ;; ++ *-apple) ++ os=-macos ++ ;; ++ *-atari*) ++ os=-mint ++ ;; ++ *) ++ os=-none ++ ;; ++esac ++fi ++ ++# Here we handle the case where we know the os, and the CPU type, but not the ++# manufacturer. We pick the logical manufacturer. ++vendor=unknown ++case $basic_machine in ++ *-unknown) ++ case $os in ++ -riscix*) ++ vendor=acorn ++ ;; ++ -sunos*) ++ vendor=sun ++ ;; ++ -aix*) ++ vendor=ibm ++ ;; ++ -beos*) ++ vendor=be ++ ;; ++ -hpux*) ++ vendor=hp ++ ;; ++ -mpeix*) ++ vendor=hp ++ ;; ++ -hiux*) ++ vendor=hitachi ++ ;; ++ -unos*) ++ vendor=crds ++ ;; ++ -dgux*) ++ vendor=dg ++ ;; ++ -luna*) ++ vendor=omron ++ ;; ++ -genix*) ++ vendor=ns ++ ;; ++ -mvs* | -opened*) ++ vendor=ibm ++ ;; ++ -os400*) ++ vendor=ibm ++ ;; ++ -ptx*) ++ vendor=sequent ++ ;; ++ -tpf*) ++ vendor=ibm ++ ;; ++ -vxsim* | -vxworks* | -windiss*) ++ vendor=wrs ++ ;; ++ -aux*) ++ vendor=apple ++ ;; ++ -hms*) ++ vendor=hitachi ++ ;; ++ -mpw* | -macos*) ++ vendor=apple ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ vendor=atari ++ ;; ++ -vos*) ++ vendor=stratus ++ ;; ++ esac ++ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ++ ;; ++esac ++ ++echo $basic_machine$os ++exit ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +--- adjtimex-1.23.orig/config.guess ++++ adjtimex-1.23/config.guess +@@ -0,0 +1,1516 @@ ++#! /bin/sh ++# Attempt to guess a canonical system name. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, ++# Inc. ++ ++timestamp='2007-03-06' ++ ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++ ++# Originally written by Per Bothner <per@bothner.com>. ++# Please send patches to <config-patches@gnu.org>. Submit a context ++# diff and a properly formatted ChangeLog entry. ++# ++# This script attempts to guess a canonical system name similar to ++# config.sub. If it succeeds, it prints the system name on stdout, and ++# exits with 0. Otherwise, it exits with 1. ++# ++# The plan is that this can be called by configure scripts if you ++# don't specify an explicit build system type. ++ ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] ++ ++Output the configuration name of the system \`$me' is run on. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.guess ($timestamp) ++ ++Originally written by Per Bothner. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" >&2 ++ exit 1 ;; ++ * ) ++ break ;; ++ esac ++done ++ ++if test $# != 0; then ++ echo "$me: too many arguments$help" >&2 ++ exit 1 ++fi ++ ++trap 'exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a ++# compiler to aid in system detection is discouraged as it requires ++# temporary files to be created and, as you can see below, it is a ++# headache to deal with in a portable fashion. ++ ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++# Portable tmp directory creation inspired by the Autoconf team. ++ ++set_cc_for_build=' ++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ++: ${TMPDIR=/tmp} ; ++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || ++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ++dummy=$tmp/dummy ; ++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int x;" > $dummy.c ; ++ for c in cc gcc c89 c99 ; do ++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then ++ CC_FOR_BUILD="$c"; break ; ++ fi ; ++ done ; ++ if test x"$CC_FOR_BUILD" = x ; then ++ CC_FOR_BUILD=no_compiler_found ; ++ fi ++ ;; ++ ,,*) CC_FOR_BUILD=$CC ;; ++ ,*,*) CC_FOR_BUILD=$HOST_CC ;; ++esac ; set_cc_for_build= ;' ++ ++# This is needed to find uname on a Pyramid OSx when run in the BSD universe. ++# (ghazi@noc.rutgers.edu 1994-08-24) ++if (test -f /.attbin/uname) >/dev/null 2>&1 ; then ++ PATH=$PATH:/.attbin ; export PATH ++fi ++ ++UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown ++UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown ++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown ++ ++# Note: order is significant - the case branches are not exclusive. ++ ++case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++ *:NetBSD:*:*) ++ # NetBSD (nbsd) targets should (where applicable) match one or ++ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently ++ # switched to ELF, *-*-netbsd* would select the old ++ # object file format. This provides both forward ++ # compatibility and a consistent mechanism for selecting the ++ # object file format. ++ # ++ # Note: NetBSD doesn't particularly care about the vendor ++ # portion of the name. We always set it to "unknown". ++ sysctl="sysctl -n hw.machine_arch" ++ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ case "${UNAME_MACHINE_ARCH}" in ++ armeb) machine=armeb-unknown ;; ++ arm*) machine=arm-unknown ;; ++ sh3el) machine=shl-unknown ;; ++ sh3eb) machine=sh-unknown ;; ++ sh5el) machine=sh5le-unknown ;; ++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE_ARCH}" in ++ arm*|i386|m68k|ns32k|sh3*|sparc|vax) ++ eval $set_cc_for_build ++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep __ELF__ >/dev/null ++ then ++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). ++ # Return netbsd for either. FIX? ++ os=netbsd ++ else ++ os=netbsdelf ++ fi ++ ;; ++ *) ++ os=netbsd ++ ;; ++ esac ++ # The OS release ++ # Debian GNU/NetBSD machines have a different userland, and ++ # thus, need a distinct triplet. However, they do not need ++ # kernel version information, so it can be replaced with a ++ # suitable tag, in the style of linux-gnu. ++ case "${UNAME_VERSION}" in ++ Debian*) ++ release='-gnu' ++ ;; ++ *) ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ ;; ++ esac ++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: ++ # contains redundant information, the shorter form: ++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. ++ echo "${machine}-${os}${release}" ++ exit ;; ++ *:OpenBSD:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; ++ *:ekkoBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ++ exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; ++ macppc:MirBSD:*:*) ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ *:MirBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ alpha:OSF1:*:*) ++ case $UNAME_RELEASE in ++ *4.0) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ++ ;; ++ *5.*) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ ;; ++ esac ++ # According to Compaq, /usr/sbin/psrinfo has been available on ++ # OSF/1 and Tru64 systems produced since 1995. I hope that ++ # covers most systems running today. This code pipes the CPU ++ # types through head -n 1, so we only detect the type of CPU 0. ++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ++ case "$ALPHA_CPU_TYPE" in ++ "EV4 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "EV4.5 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "LCA4 (21066/21068)") ++ UNAME_MACHINE="alpha" ;; ++ "EV5 (21164)") ++ UNAME_MACHINE="alphaev5" ;; ++ "EV5.6 (21164A)") ++ UNAME_MACHINE="alphaev56" ;; ++ "EV5.6 (21164PC)") ++ UNAME_MACHINE="alphapca56" ;; ++ "EV5.7 (21164PC)") ++ UNAME_MACHINE="alphapca57" ;; ++ "EV6 (21264)") ++ UNAME_MACHINE="alphaev6" ;; ++ "EV6.7 (21264A)") ++ UNAME_MACHINE="alphaev67" ;; ++ "EV6.8CB (21264C)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8AL (21264B)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8CX (21264D)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.9A (21264/EV69A)") ++ UNAME_MACHINE="alphaev69" ;; ++ "EV7 (21364)") ++ UNAME_MACHINE="alphaev7" ;; ++ "EV7.9 (21364A)") ++ UNAME_MACHINE="alphaev79" ;; ++ esac ++ # A Pn.n version is a patched version. ++ # A Vn.n version is a released version. ++ # A Tn.n version is a released field test version. ++ # A Xn.n version is an unreleased experimental baselevel. ++ # 1.2 uses "1.2" for uname -r. ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ exit ;; ++ Alpha\ *:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # Should we change UNAME_MACHINE based on the output of uname instead ++ # of the specific Alpha model? ++ echo alpha-pc-interix ++ exit ;; ++ 21064:Windows_NT:50:3) ++ echo alpha-dec-winnt3.5 ++ exit ;; ++ Amiga*:UNIX_System_V:4.0:*) ++ echo m68k-unknown-sysv4 ++ exit ;; ++ *:[Aa]miga[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-amigaos ++ exit ;; ++ *:[Mm]orph[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-morphos ++ exit ;; ++ *:OS/390:*:*) ++ echo i370-ibm-openedition ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; ++ *:OS400:*:*) ++ echo powerpc-ibm-os400 ++ exit ;; ++ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) ++ echo arm-acorn-riscix${UNAME_RELEASE} ++ exit ;; ++ arm:riscos:*:*|arm:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) ++ echo hppa1.1-hitachi-hiuxmpp ++ exit ;; ++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) ++ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. ++ if test "`(/bin/universe) 2>/dev/null`" = att ; then ++ echo pyramid-pyramid-sysv3 ++ else ++ echo pyramid-pyramid-bsd ++ fi ++ exit ;; ++ NILE*:*:*:dcosx) ++ echo pyramid-pyramid-svr4 ++ exit ;; ++ DRS?6000:unix:4.0:6*) ++ echo sparc-icl-nx6 ++ exit ;; ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) ++ case `/usr/bin/uname -p` in ++ sparc) echo sparc-icl-nx7; exit ;; ++ esac ;; ++ sun4H:SunOS:5.*:*) ++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) ++ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ i86pc:SunOS:5.*:*) ++ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:6*:*) ++ # According to config.sub, this is the proper way to canonicalize ++ # SunOS6. Hard to guess exactly what SunOS6 will be like, but ++ # it's likely to be more like Solaris than SunOS4. ++ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:*:*) ++ case "`/usr/bin/arch -k`" in ++ Series*|S4*) ++ UNAME_RELEASE=`uname -v` ++ ;; ++ esac ++ # Japanese Language versions have a version number like `4.1.3-JL'. ++ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` ++ exit ;; ++ sun3*:SunOS:*:*) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ exit ;; ++ sun*:*:4.2BSD:*) ++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 ++ case "`/bin/arch`" in ++ sun3) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ ;; ++ sun4) ++ echo sparc-sun-sunos${UNAME_RELEASE} ++ ;; ++ esac ++ exit ;; ++ aushp:SunOS:*:*) ++ echo sparc-auspex-sunos${UNAME_RELEASE} ++ exit ;; ++ # The situation for MiNT is a little confusing. The machine name ++ # can be virtually everything (everything which is not ++ # "atarist" or "atariste" at least should have a processor ++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT" ++ # to the lowercase version "mint" (or "freemint"). Finally ++ # the system name "TOS" denotes a system which is actually not ++ # MiNT. But MiNT is downward compatible to TOS, so this should ++ # be no problem. ++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; ++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; ++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; ++ m68k:machten:*:*) ++ echo m68k-apple-machten${UNAME_RELEASE} ++ exit ;; ++ powerpc:machten:*:*) ++ echo powerpc-apple-machten${UNAME_RELEASE} ++ exit ;; ++ RISC*:Mach:*:*) ++ echo mips-dec-mach_bsd4.3 ++ exit ;; ++ RISC*:ULTRIX:*:*) ++ echo mips-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ VAX*:ULTRIX*:*:*) ++ echo vax-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ 2020:CLIX:*:* | 2430:CLIX:*:*) ++ echo clipper-intergraph-clix${UNAME_RELEASE} ++ exit ;; ++ mips:*:*:UMIPS | mips:*:*:RISCos) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++#ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ ++ int main (int argc, char *argv[]) { ++#else ++ int main (argc, argv) int argc; char *argv[]; { ++#endif ++ #if defined (host_mips) && defined (MIPSEB) ++ #if defined (SYSTYPE_SYSV) ++ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_SVR4) ++ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) ++ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); ++ #endif ++ #endif ++ exit (-1); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo mips-mips-riscos${UNAME_RELEASE} ++ exit ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit ;; ++ Motorola:*:4.3:PL8-*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:Power_UNIX:*:*) ++ echo powerpc-harris-powerunix ++ exit ;; ++ m88k:CX/UX:7*:*) ++ echo m88k-harris-cxux7 ++ exit ;; ++ m88k:*:4*:R4*) ++ echo m88k-motorola-sysv4 ++ exit ;; ++ m88k:*:3*:R3*) ++ echo m88k-motorola-sysv3 ++ exit ;; ++ AViiON:dgux:*:*) ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] ++ then ++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ ++ [ ${TARGET_BINARY_INTERFACE}x = x ] ++ then ++ echo m88k-dg-dgux${UNAME_RELEASE} ++ else ++ echo m88k-dg-dguxbcs${UNAME_RELEASE} ++ fi ++ else ++ echo i586-dg-dgux${UNAME_RELEASE} ++ fi ++ exit ;; ++ M88*:DolphinOS:*:*) # DolphinOS (SVR3) ++ echo m88k-dolphin-sysv3 ++ exit ;; ++ M88*:*:R3*:*) ++ # Delta 88k system running SVR3 ++ echo m88k-motorola-sysv3 ++ exit ;; ++ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) ++ echo m88k-tektronix-sysv3 ++ exit ;; ++ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) ++ echo m68k-tektronix-bsd ++ exit ;; ++ *:IRIX*:*:*) ++ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` ++ exit ;; ++ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ i*86:AIX:*:*) ++ echo i386-ibm-aix ++ exit ;; ++ ia64:AIX:*:*) ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:2:3) ++ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <sys/systemcfg.h> ++ ++ main() ++ { ++ if (!__power_pc()) ++ exit(1); ++ puts("powerpc-ibm-aix3.2.5"); ++ exit(0); ++ } ++EOF ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi ++ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then ++ echo rs6000-ibm-aix3.2.4 ++ else ++ echo rs6000-ibm-aix3.2 ++ fi ++ exit ;; ++ *:AIX:*:[45]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` ++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then ++ IBM_ARCH=rs6000 ++ else ++ IBM_ARCH=powerpc ++ fi ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${IBM_ARCH}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:*:*) ++ echo rs6000-ibm-aix ++ exit ;; ++ ibmrt:4.4BSD:*|romp-ibm:BSD:*) ++ echo romp-ibm-bsd4.4 ++ exit ;; ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and ++ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to ++ exit ;; # report: romp-ibm BSD 4.3 ++ *:BOSX:*:*) ++ echo rs6000-bull-bosx ++ exit ;; ++ DPX/2?00:B.O.S.:*:*) ++ echo m68k-bull-sysv3 ++ exit ;; ++ 9000/[34]??:4.3bsd:1.*:*) ++ echo m68k-hp-bsd ++ exit ;; ++ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) ++ echo m68k-hp-bsd4.4 ++ exit ;; ++ 9000/[34678]??:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ case "${UNAME_MACHINE}" in ++ 9000/31? ) HP_ARCH=m68000 ;; ++ 9000/[34]?? ) HP_ARCH=m68k ;; ++ 9000/[678][0-9][0-9]) ++ if [ -x /usr/bin/getconf ]; then ++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; ++ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 ++ esac ;; ++ esac ++ fi ++ if [ "${HP_ARCH}" = "" ]; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include <stdlib.h> ++ #include <unistd.h> ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } ++EOF ++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ++ test -z "$HP_ARCH" && HP_ARCH=hppa ++ fi ;; ++ esac ++ if [ ${HP_ARCH} = "hppa2.0w" ] ++ then ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=cc ./config.guess ++ # => hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess ++ # => hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep __LP64__ >/dev/null ++ then ++ HP_ARCH="hppa2.0w" ++ else ++ HP_ARCH="hppa64" ++ fi ++ fi ++ echo ${HP_ARCH}-hp-hpux${HPUX_REV} ++ exit ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit ;; ++ 3050*:HI-UX:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <unistd.h> ++ int ++ main () ++ { ++ long cpu = sysconf (_SC_CPU_VERSION); ++ /* The order matters, because CPU_IS_HP_MC68K erroneously returns ++ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct ++ results, however. */ ++ if (CPU_IS_PA_RISC (cpu)) ++ { ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; ++ default: puts ("hppa-hitachi-hiuxwe2"); break; ++ } ++ } ++ else if (CPU_IS_HP_MC68K (cpu)) ++ puts ("m68k-hitachi-hiuxwe2"); ++ else puts ("unknown-hitachi-hiuxwe2"); ++ exit (0); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo unknown-hitachi-hiuxwe2 ++ exit ;; ++ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) ++ echo hppa1.1-hp-bsd ++ exit ;; ++ 9000/8??:4.3bsd:*:*) ++ echo hppa1.0-hp-bsd ++ exit ;; ++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) ++ echo hppa1.0-hp-mpeix ++ exit ;; ++ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) ++ echo hppa1.1-hp-osf ++ exit ;; ++ hp8??:OSF1:*:*) ++ echo hppa1.0-hp-osf ++ exit ;; ++ i*86:OSF1:*:*) ++ if [ -x /usr/sbin/sysversion ] ; then ++ echo ${UNAME_MACHINE}-unknown-osf1mk ++ else ++ echo ${UNAME_MACHINE}-unknown-osf1 ++ fi ++ exit ;; ++ parisc*:Lites*:*:*) ++ echo hppa1.1-hp-lites ++ exit ;; ++ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) ++ echo c1-convex-bsd ++ exit ;; ++ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) ++ if getsysinfo -f scalar_acc ++ then echo c32-convex-bsd ++ else echo c2-convex-bsd ++ fi ++ exit ;; ++ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) ++ echo c34-convex-bsd ++ exit ;; ++ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) ++ echo c38-convex-bsd ++ exit ;; ++ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) ++ echo c4-convex-bsd ++ exit ;; ++ CRAY*Y-MP:*:*:*) ++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*[A-Z]90:*:*:*) ++ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ ++ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ ++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ ++ -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*TS:*:*:*) ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*T3E:*:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ *:UNICOS/mp:*:*) ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) ++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ 5000:UNIX_System_V:4.*:*) ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) ++ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} ++ exit ;; ++ sparc*:BSD/OS:*:*) ++ echo sparc-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:BSD/OS:*:*) ++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:FreeBSD:*:*) ++ case ${UNAME_MACHINE} in ++ pc98) ++ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ *) ++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ esac ++ exit ;; ++ i*:CYGWIN*:*) ++ echo ${UNAME_MACHINE}-pc-cygwin ++ exit ;; ++ *:MINGW*:*) ++ echo ${UNAME_MACHINE}-pc-mingw32 ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit ;; ++ *:Interix*:[3456]*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ EM64T | authenticamd) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; ++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ++ echo i${UNAME_MACHINE}-pc-mks ++ exit ;; ++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we ++ # UNAME_MACHINE based on the output of uname instead of i386? ++ echo i586-pc-interix ++ exit ;; ++ i*:UWIN*:*) ++ echo ${UNAME_MACHINE}-pc-uwin ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; ++ p*:CYGWIN*:*) ++ echo powerpcle-unknown-cygwin ++ exit ;; ++ prep*:SunOS:5.*:*) ++ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ *:GNU:*:*) ++ # the GNU system ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ exit ;; ++ *:GNU/*:*:*) ++ # other systems with GNU libc and userland ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ exit ;; ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit ;; ++ arm*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ avr32*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ cris:Linux:*:*) ++ echo cris-axis-linux-gnu ++ exit ;; ++ crisv32:Linux:*:*) ++ echo crisv32-axis-linux-gnu ++ exit ;; ++ frv:Linux:*:*) ++ echo frv-unknown-linux-gnu ++ exit ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ mips:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips ++ #undef mipsel ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mipsel ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ mips64:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips64 ++ #undef mips64el ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mips64el ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips64 ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ or32:Linux:*:*) ++ echo or32-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++ PA7*) echo hppa1.1-unknown-linux-gnu ;; ++ PA8*) echo hppa2.0-unknown-linux-gnu ;; ++ *) echo hppa-unknown-linux-gnu ;; ++ esac ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux ++ exit ;; ++ sh64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-gnu ++ exit ;; ++ x86_64:Linux:*:*) ++ echo x86_64-unknown-linux-gnu ++ exit ;; ++ xtensa:Linux:*:*) ++ echo xtensa-unknown-linux-gnu ++ exit ;; ++ i*86:Linux:*:*) ++ # The BFD linker knows what the default object file format is, so ++ # first see if it will tell us. cd to the root directory to prevent ++ # problems with other programs or directories called `ld' in the path. ++ # Set LC_ALL=C to ensure ld outputs messages in English. ++ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ ++ | sed -ne '/supported targets:/!d ++ s/[ ][ ]*/ /g ++ s/.*supported targets: *// ++ s/ .*// ++ p'` ++ case "$ld_supported_targets" in ++ elf32-i386) ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ++ ;; ++ a.out-i386-linux) ++ echo "${UNAME_MACHINE}-pc-linux-gnuaout" ++ exit ;; ++ coff-i386) ++ echo "${UNAME_MACHINE}-pc-linux-gnucoff" ++ exit ;; ++ "") ++ # Either a pre-BFD a.out linker (linux-gnuoldld) or ++ # one that does not give us useful --help. ++ echo "${UNAME_MACHINE}-pc-linux-gnuoldld" ++ exit ;; ++ esac ++ # Determine whether the default compiler is a.out or elf ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <features.h> ++ #ifdef __ELF__ ++ # ifdef __GLIBC__ ++ # if __GLIBC__ >= 2 ++ LIBC=gnu ++ # else ++ LIBC=gnulibc1 ++ # endif ++ # else ++ LIBC=gnulibc1 ++ # endif ++ #else ++ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) ++ LIBC=gnu ++ #else ++ LIBC=gnuaout ++ #endif ++ #endif ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^LIBC/{ ++ s: ::g ++ p ++ }'`" ++ test x"${LIBC}" != x && { ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ exit ++ } ++ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ++ ;; ++ i*86:DYNIX/ptx:4*:*) ++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. ++ # earlier versions are messed up and put the nodename in both ++ # sysname and nodename. ++ echo i386-sequent-sysv4 ++ exit ;; ++ i*86:UNIX_SV:4.2MP:2.*) ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, ++ # I just have to hope. -- rms. ++ # Use sysv4.2uw... so that sysv4* matches it. ++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} ++ exit ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit ;; ++ i*86:XTS-300:*:STOP) ++ echo ${UNAME_MACHINE}-unknown-stop ++ exit ;; ++ i*86:atheos:*:*) ++ echo ${UNAME_MACHINE}-unknown-atheos ++ exit ;; ++ i*86:syllable:*:*) ++ echo ${UNAME_MACHINE}-pc-syllable ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ echo i386-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit ;; ++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) ++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` ++ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then ++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} ++ else ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} ++ fi ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ case `/bin/uname -X | grep "^Machine"` in ++ *486*) UNAME_MACHINE=i486 ;; ++ *Pentium) UNAME_MACHINE=i586 ;; ++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;; ++ esac ++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ++ exit ;; ++ i*86:*:3.2:*) ++ if test -f /usr/options/cb.name; then ++ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` ++ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL ++ elif /bin/uname -X 2>/dev/null >/dev/null ; then ++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` ++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 ++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ ++ && UNAME_MACHINE=i586 ++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL ++ else ++ echo ${UNAME_MACHINE}-pc-sysv32 ++ fi ++ exit ;; ++ pc:*:*:*) ++ # Left here for compatibility: ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i386. ++ echo i386-pc-msdosdjgpp ++ exit ;; ++ Intel:Mach:3*:*) ++ echo i386-pc-mach3 ++ exit ;; ++ paragon:*:*:*) ++ echo i860-intel-osf1 ++ exit ;; ++ i860:*:4.*:*) # i860-SVR4 ++ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then ++ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 ++ else # Add other i860-SVR4 vendors below as they are discovered. ++ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 ++ fi ++ exit ;; ++ mini*:CTIX:SYS*5:*) ++ # "miniframe" ++ echo m68010-convergent-sysv ++ exit ;; ++ mc68k:UNIX:SYSTEM5:3.51m) ++ echo m68k-convergent-sysv ++ exit ;; ++ M680?0:D-NIX:5.3:*) ++ echo m68k-diab-dnix ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) ++ OS_REL='' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; ++ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) ++ echo m68k-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ mc68030:UNIX_System_V:4.*:*) ++ echo m68k-atari-sysv4 ++ exit ;; ++ TSUNAMI:LynxOS:2.*:*) ++ echo sparc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ rs6000:LynxOS:2.*:*) ++ echo rs6000-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ SM[BE]S:UNIX_SV:*:*) ++ echo mips-dde-sysv${UNAME_RELEASE} ++ exit ;; ++ RM*:ReliantUNIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ RM*:SINIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ *:SINIX-*:*:*) ++ if uname -p 2>/dev/null >/dev/null ; then ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ echo ${UNAME_MACHINE}-sni-sysv4 ++ else ++ echo ns32k-sni-sysv ++ fi ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> ++ echo i586-unisys-sysv4 ++ exit ;; ++ *:UNIX_System_V:4*:FTX*) ++ # From Gerald Hewes <hewes@openmarket.com>. ++ # How about differentiating between stratus architectures? -djm ++ echo hppa1.1-stratus-sysv4 ++ exit ;; ++ *:*:*:FTX*) ++ # From seanf@swdc.stratus.com. ++ echo i860-stratus-sysv4 ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; ++ *:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo hppa1.1-stratus-vos ++ exit ;; ++ mc68*:A/UX:*:*) ++ echo m68k-apple-aux${UNAME_RELEASE} ++ exit ;; ++ news*:NEWS-OS:6*:*) ++ echo mips-sony-newsos6 ++ exit ;; ++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) ++ if [ -d /usr/nec ]; then ++ echo mips-nec-sysv${UNAME_RELEASE} ++ else ++ echo mips-unknown-sysv${UNAME_RELEASE} ++ fi ++ exit ;; ++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. ++ echo powerpc-be-beos ++ exit ;; ++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. ++ echo powerpc-apple-beos ++ exit ;; ++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. ++ echo i586-pc-beos ++ exit ;; ++ SX-4:SUPER-UX:*:*) ++ echo sx4-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-5:SUPER-UX:*:*) ++ echo sx5-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-6:SUPER-UX:*:*) ++ echo sx6-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; ++ Power*:Rhapsody:*:*) ++ echo powerpc-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Rhapsody:*:*) ++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Darwin:*:*) ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ case $UNAME_PROCESSOR in ++ unknown) UNAME_PROCESSOR=powerpc ;; ++ esac ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ++ exit ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ UNAME_PROCESSOR=`uname -p` ++ if test "$UNAME_PROCESSOR" = "x86"; then ++ UNAME_PROCESSOR=i386 ++ UNAME_MACHINE=pc ++ fi ++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ++ exit ;; ++ *:QNX:*:4*) ++ echo i386-pc-qnx ++ exit ;; ++ NSE-?:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSR-?:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit ;; ++ *:Plan9:*:*) ++ # "uname -m" is not consistent, so use $cputype instead. 386 ++ # is converted to i386 for consistency with other x86 ++ # operating systems. ++ if test "$cputype" = "386"; then ++ UNAME_MACHINE=i386 ++ else ++ UNAME_MACHINE="$cputype" ++ fi ++ echo ${UNAME_MACHINE}-unknown-plan9 ++ exit ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit ;; ++ SEI:*:*:SEIUX) ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; ++ *:DragonFly:*:*) ++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; ++esac ++ ++#echo '(No uname command or uname output not recognized.)' 1>&2 ++#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 ++ ++eval $set_cc_for_build ++cat >$dummy.c <<EOF ++#ifdef _SEQUENT_ ++# include <sys/types.h> ++# include <sys/utsname.h> ++#endif ++main () ++{ ++#if defined (sony) ++#if defined (MIPSEB) ++ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, ++ I don't know.... */ ++ printf ("mips-sony-bsd\n"); exit (0); ++#else ++#include <sys/param.h> ++ printf ("m68k-sony-newsos%s\n", ++#ifdef NEWSOS4 ++ "4" ++#else ++ "" ++#endif ++ ); exit (0); ++#endif ++#endif ++ ++#if defined (__arm) && defined (__acorn) && defined (__unix) ++ printf ("arm-acorn-riscix\n"); exit (0); ++#endif ++ ++#if defined (hp300) && !defined (hpux) ++ printf ("m68k-hp-bsd\n"); exit (0); ++#endif ++ ++#if defined (NeXT) ++#if !defined (__ARCHITECTURE__) ++#define __ARCHITECTURE__ "m68k" ++#endif ++ int version; ++ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; ++ if (version < 4) ++ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); ++ else ++ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); ++ exit (0); ++#endif ++ ++#if defined (MULTIMAX) || defined (n16) ++#if defined (UMAXV) ++ printf ("ns32k-encore-sysv\n"); exit (0); ++#else ++#if defined (CMU) ++ printf ("ns32k-encore-mach\n"); exit (0); ++#else ++ printf ("ns32k-encore-bsd\n"); exit (0); ++#endif ++#endif ++#endif ++ ++#if defined (__386BSD__) ++ printf ("i386-pc-bsd\n"); exit (0); ++#endif ++ ++#if defined (sequent) ++#if defined (i386) ++ printf ("i386-sequent-dynix\n"); exit (0); ++#endif ++#if defined (ns32000) ++ printf ("ns32k-sequent-dynix\n"); exit (0); ++#endif ++#endif ++ ++#if defined (_SEQUENT_) ++ struct utsname un; ++ ++ uname(&un); ++ ++ if (strncmp(un.version, "V2", 2) == 0) { ++ printf ("i386-sequent-ptx2\n"); exit (0); ++ } ++ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ ++ printf ("i386-sequent-ptx1\n"); exit (0); ++ } ++ printf ("i386-sequent-ptx\n"); exit (0); ++ ++#endif ++ ++#if defined (vax) ++# if !defined (ultrix) ++# include <sys/param.h> ++# if defined (BSD) ++# if BSD == 43 ++ printf ("vax-dec-bsd4.3\n"); exit (0); ++# else ++# if BSD == 199006 ++ printf ("vax-dec-bsd4.3reno\n"); exit (0); ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# endif ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# else ++ printf ("vax-dec-ultrix\n"); exit (0); ++# endif ++#endif ++ ++#if defined (alliant) && defined (i860) ++ printf ("i860-alliant-bsd\n"); exit (0); ++#endif ++ ++ exit (1); ++} ++EOF ++ ++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } ++ ++# Apollos put the system type in the environment. ++ ++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } ++ ++# Convex versions that predate uname can use getsysinfo(1) ++ ++if [ -x /usr/convex/getsysinfo ] ++then ++ case `getsysinfo -f cpu_type` in ++ c1*) ++ echo c1-convex-bsd ++ exit ;; ++ c2*) ++ if getsysinfo -f scalar_acc ++ then echo c32-convex-bsd ++ else echo c2-convex-bsd ++ fi ++ exit ;; ++ c34*) ++ echo c34-convex-bsd ++ exit ;; ++ c38*) ++ echo c38-convex-bsd ++ exit ;; ++ c4*) ++ echo c4-convex-bsd ++ exit ;; ++ esac ++fi ++ ++cat >&2 <<EOF ++$0: unable to guess system type ++ ++This script, last modified $timestamp, has failed to recognize ++the operating system you are using. It is advised that you ++download the most up to date version of the config scripts from ++ ++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess ++and ++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub ++ ++If the version you run ($0) is already up to date, please ++send the following data and any information you think might be ++pertinent to <config-patches@gnu.org> in order to provide the needed ++information to handle your system. ++ ++config.guess timestamp = $timestamp ++ ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null` ++ ++hostinfo = `(hostinfo) 2>/dev/null` ++/bin/universe = `(/bin/universe) 2>/dev/null` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` ++/bin/arch = `(/bin/arch) 2>/dev/null` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` ++ ++UNAME_MACHINE = ${UNAME_MACHINE} ++UNAME_RELEASE = ${UNAME_RELEASE} ++UNAME_SYSTEM = ${UNAME_SYSTEM} ++UNAME_VERSION = ${UNAME_VERSION} ++EOF ++ ++exit 1 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +--- adjtimex-1.23.orig/debian/control ++++ adjtimex-1.23/debian/control +@@ -0,0 +1,20 @@ ++Source: adjtimex ++Section: admin ++Priority: optional ++Maintainer: James R. Van Zandt <jrv@debian.org> ++Build-Depends: debhelper (>= 5), po-debconf ++Standards-Version: 3.7.2 ++ ++Package: adjtimex ++Architecture: any ++Depends: ${shlibs:Depends}, debconf | debconf-2.0 ++Suggests: ntpdate ++Description: Utility to display or set the kernel time variables ++ This program gives you raw access to the kernel time variables. For ++ a machine connected to the Internet, or equipped with a precision ++ oscillator or radio clock, the best way to keep the system clock ++ correct is with ntpd. However, for a standalone or intermittently ++ connected machine, you may use adjtimex instead to at least correct ++ for systematic drift. adjtimex can optionally adjust the system ++ clock using the CMOS clock as a reference, and can log times for ++ long-term estimation of drift rates. +--- adjtimex-1.23.orig/debian/po/POTFILES.in ++++ adjtimex-1.23/debian/po/POTFILES.in +@@ -0,0 +1 @@ ++[type: gettext/rfc822deb] templates +--- adjtimex-1.23.orig/debian/po/templates.pot ++++ adjtimex-1.23/debian/po/templates.pot +@@ -0,0 +1,59 @@ ++# SOME DESCRIPTIVE TITLE. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the PACKAGE package. ++# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" ++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" ++"Language-Team: LANGUAGE <LL@li.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=CHARSET\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" +--- adjtimex-1.23.orig/debian/po/fr.po ++++ adjtimex-1.23/debian/po/fr.po +@@ -0,0 +1,87 @@ ++# translation of fr.po to French ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++# Christian Perrier <bubulle@debian.org>, 2006. ++msgid "" ++msgstr "" ++"Project-Id-Version: fr\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2006-12-17 14:01+0100\n" ++"Last-Translator: Christian Perrier <bubulle@debian.org>\n" ++"Language-Team: French <debian-l10n-french@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.11.4\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Faut-il lancer adjtimex lors de l'installation et à chaque démarrage du " ++"système ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"Adjtimex peut être lancé au démarrage du système afin de régler les " ++"paramètres d'horloge du noyau en fonction des valeurs contenues dans /etc/" ++"default/adjtimex. Ne choisissez pas cette option si vous souhaitez " ++"simplement vous servir d'adjtimex pour consulter les paramètres actuels." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Faut-il lancer adjtimexconfig lors de l'installation ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Le script adjtimexconfig utilise adjtimex afin de trouver les valeurs " ++"appropriées pour les variables du noyau concernant le battement (« tick ») " ++"et la fréquence d'horloge. Cela permettra à l'horloge du système d'être à " ++"peu près en accord avec l'horloge matérielle (parfois appelée « horloge " ++"CMOS »). Ces valeurs seront alors conservées dans le fichier de " ++"configuration /etc/default/adjtimex ce qui permettra de les restaurer à " ++"chaque démarrage quand /etc/init.d/adjtimex s'exécutera. " ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"La durée d'exécution du script est de 70 secondes. Vous pouvez également " ++"utiliser adjtimexconfig vous-même plus tard ou déterminer les valeurs des " ++"variables du noyau d'une autre manière (il en existe plusieurs : voir la " ++"page de manuel d'adjtimex). Ces valeurs devront ensuite être placées dans /" ++"etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/es.po ++++ adjtimex-1.23/debian/po/es.po +@@ -0,0 +1,81 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" ++"Last-Translator: Vicente H. <vherrerv@supercable.es>\n" ++"Language-Team: LANGUAGE <LL@li.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=ISO-8859-15\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "¿Debe ejecutarse adjtimex ahora y en cada arranque?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++#, fuzzy ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"Adjtimex puede ser ejecutado en el arranque del sistema para poner los " ++"parámetros de tiempo del núcleo en /etc/default/adjtimex. Si usted solamente " ++"quiere usar adjtimex para inspeccionar los parámetros actuales, conteste \"No" ++"\"." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "¿Debe ejecutarse adjtimexconfig ahora?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"El guión adjtimexconfig usará adjtimex para encontrar los valores para el " ++"núcleo de la señal y frecuencia que será tomada por el reloj del sistema " ++"para estar de acuerdo con el reloj del hardware (también conocido como el " ++"reloj CMOS). Este guión guardará los valores en el archivo de configuración /" ++"etc/default/adjtimex para que los ajustes sean restaurados en cada arranque " ++"del sistema, cuando /etc/init.d/adjtimex sea ejecutado." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"El guión toma 70 seg. para ser ejecutado. O bien, usted mismo puede ejecutar " ++"adjtimexconfig más tarde, o determinar las variables del núcleo de varias " ++"formas (mire la página man de adjtimex) y anótelos en /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/pl.po ++++ adjtimex-1.23/debian/po/pl.po +@@ -0,0 +1,83 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" ++"Last-Translator: Bartosz Zapa³owski <zapal@debian.linux.org.pl>\n" ++"Language-Team: Polish Debian Documentation Project <pddp@debian.linux.org." ++"pl>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=iso-8859-2\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Czy adjtimex ma byæ uruchomiany podczas instalacji i ka¿dego startu systemu?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex mo¿e byæ uruchamiany podczas ka¿dego uruchomienia systemu,by " ++"ustawiæ parametry czasu w j±drze na warto¶ci znajduj±ce siê w pliku/etc/" ++"default/adjtimex. Nie wyra¿aj zgody, je¶li chcesz u¿ywaæ adjtimextylko do " ++"sprawdzania aktualnych warto¶ci." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Czy adjtimexconfig ma byæ uruchomiony podczas instalacji?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Skrypt adjtimexconfig skorzysta z programu adjtimex do znalezienia " ++"takichwarto¶ci parametrów j±dra tick i frequency, ¿eby zegar systemowy by³ " ++"zbli¿onydo zegara sprzêtowego (zegara CMOS). Nastêpnie zapisze ustawienia w " ++"plikukonfiguracyjnym /etc/default/adjtimex, dziêki czemu warto¶ci te " ++"bêd±przywrócane przy ka¿dym starcie systemu w momencie wykonywania skryptu/" ++"etc/init.d/adjtimex." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Skrypt bêdzie dzia³a³ przez 70 sekund. Mo¿esz te¿ uruchomiæ " ++"w³asnorêcznieadjtimexconfig w dowolnym czasie lub dobraæ paramterty j±dra w " ++"innysposób (zapoznaj siê ze stron± manuala adjtimex) i zapisaæ je w pliku/" ++"etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/nl.po ++++ adjtimex-1.23/debian/po/nl.po +@@ -0,0 +1,82 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2003-10-04 16:05+0100\n" ++"Last-Translator: Michiel Sikkes <michiel@sikkes.xs4all.nl>\n" ++"Language-Team: Dutch <debian-l10n-dutch@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Wilt u dat adjtimex bij elke installatie en bij elke opstartprocedure " ++"gedraaid wordt?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex kan gedraaid worden bij het opstarten van het systeem om de " ++"kerneltijd parameters in te stellen zoals gedefinieerd in /etc/default/" ++"adjtimex. Accepteer deze optie niet als u adjtimex wilt gebruiken om de " ++"huidige parameters te bekijken." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Wilt u dat adjtimexconfig bij het installeren wordt gedraaid?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Het adjtimexconfig script zal adjtimex gebruiken om de eigenschappen voor de " ++"kernelvariablen tick en frequency te vinden. Dit zal zorgen dat de " ++"systeemklok gelijk loopt met de hardware klok (ook bekend onder de naam CMOS " ++"klok). Het slaat deze eigenschappen op in het configuratiebestand /etc/" ++"default/adjtimex, dus de instellingen worden bij elke " ++"systeemopstartprocedure hersteld als /etc/init.d/adjtimex draait." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Het script doet er 70 seconden over om te draaien. Als alternatief kunt u " ++"adjtimexconfig later handmatig draaien, of de kerneleigenschappen op een " ++"andere manier bepalen (zie de adjtimex man-pagina) en deze zelf in /etc/" ++"default/adjtimex zetten." +--- adjtimex-1.23.orig/debian/po/da.po ++++ adjtimex-1.23/debian/po/da.po +@@ -0,0 +1,79 @@ ++# translation of adjtimex_1.16-1-da.po to Danish ++# translation of adjtimex_1.16-1_templates.po to Danish ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans# ++# Developers do not need to manually edit POT or PO files. ++# Claus Hindsgaul <claus_h@image.dk>, 2004. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex_1.16-1-da\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2004-03-24 17:57+0100\n" ++"Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n" ++"Language-Team: Danish <dansk@klid.dk>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.3.1\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Skal adjtimex køres under installation og ved hver opstart?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex kan køres under opstart af systemet for at sætte kernens " ++"tidsparametre til værdierne i /etC/default/adjtimex. Acceptér ikke dette, " ++"hvis du kun vil bruge adjtimex til at gennemse de aktuelle parametre." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Skal adjtimexconfig køres under installationen?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Skriftet adjtimexconfig vil bruge adjtimex til at finde de værdier til " ++"kernevariablene tick og frequency, der vil fÃ¥ systemuret til at passe med " ++"computerens indbyggede ur (CMOS-uret). Den gemmer derefter værdierne i " ++"opsætningsfilen /etc/default/edjtimex, sÃ¥ indstillingerne bliver sat under " ++"hver opstart, nÃ¥r skriptet /etC/init.d/adjtimex køres." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Det tager 70 sekunder at køre skriptet. Alternativt kan du selv køre " ++"adjtimexconfig senere, eller finde kernevariablene pÃ¥ en anden mÃ¥de (se " ++"manualsiden adjtimex) og installere dem i /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/ja.po ++++ adjtimex-1.23/debian/po/ja.po +@@ -0,0 +1,78 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2003-11-21 00:02+0900\n" ++"Last-Translator: Hideki Yamane <henrich@samba.gr.jp>\n" ++"Language-Team: Japanese <debian-japanese@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=EUC-JP\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "adjtimex ¤ò¥¤¥ó¥¹¥È¡¼¥ë»þ¤ª¤è¤ÓËè²ó¤Îµ¯Æ°»þ¤ËÆ°ºî¤µ¤»¤Þ¤¹¤«?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex ¤ò¥·¥¹¥Æ¥à¤Îµ¯Æ°»þ¤ËÆ°ºî¤µ¤»¤Æ¥«¡¼¥Í¥ë¤Î»þ´Ö¥Ñ¥é¥á¡¼¥¿¤ò /etc/" ++"default/adjtimex ¤ÎÃͤËÀßÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ adjtimex ¤ò¸½ºß¤Î¥Ñ¥é¥á¡¼¥¿¤Î" ++"Ä´ºº¤Ë¤À¤±¤Ë»È¤¤¤¿¤¤¤È¤¤¤¦¾ì¹ç¤ÏÆ°ºî¤ò¤µ¤»¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "adjtimexconfig ¤ò¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËÆ°ºî¤µ¤»¤Þ¤¹¤«?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"adjtimexconfig ¥¹¥¯¥ê¥×¥È¤Ï adjtimex ¤ò»ÈÍѤ·¤Æ¡¢¥·¥¹¥Æ¥à¥¯¥í¥Ã¥¯¤ò¥Ï¡¼¥É¥¦¥§" ++"¥¢¥¯¥í¥Ã¥¯ (CMOS ¥¯¥í¥Ã¥¯¤È¤·¤Æ¤âÃΤé¤ì¤Æ¤¤¤Þ¤¹) ¤È¤ª¤ª¤è¤½Æ±´ü¤¹¤ë¤è¤¦¤Ë¥«¡¼" ++"¥Í¥ëÊÑ¿ô tick ¤È frequency ¤ËÍ¿¤¨¤ëÃͤò¸«¤Ä¤±¤Þ¤¹¡£¤½¤·¤Æ¡¢¤³¤ÎÃͤòÀßÄê¥Õ¥¡¥¤" ++"¥ë /etc/default/adjtimex ¤ËÊݸ¤¹¤ë¤³¤È¤ÇËè²óµ¯Æ°»þ¤Ë /etc/init.d/adjtimex ¤¬" ++"Æ°ºî¤¹¤ëºÝ¤ËÀßÄ꤬Éü¸µ¤µ¤ì¤Þ¤¹¡£" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"¥¹¥¯¥ê¥×¥È¤ÏÆ°ºî¤Ë 70 É䫤«¤ê¤Þ¤¹¡£Ê̲ò¤È¤·¤Æ¤Ï adjtimexconfig ¤ò¸å¤Û¤É¼Â¹Ô" ++"¤¹¤ë¡¢¤Þ¤¿¤Ï¾¤ÎÊýË¡¤Ç¥«¡¼¥Í¥ëÊÑ¿ô¤ò·è¤á¤Æ (adjtimex ¤Î man ¥Ú¡¼¥¸¤ò»²¾È) /" ++"etc/default/adjtimex ¤Ø¤ÎÀßÄê¤ò¹Ô¤¦¤Ê¤É¤¬²Äǽ¤Ç¤¹¡£" +--- adjtimex-1.23.orig/debian/po/pt_BR.po ++++ adjtimex-1.23/debian/po/pt_BR.po +@@ -0,0 +1,82 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex_1.16-1\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2004-01-17 20:55-0300\n" ++"Last-Translator: André Luís Lopes <andrelop@debian.org>\n" ++"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=ISO-8859-1\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Executar o adjtimex durante a instalação e a cada reinicialização ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"O adjtimex pode ser executado na inicialização do sistema para definir " ++"parâmetros de tempo de kernel para os valores em /etc/default/adjtimex. Não " ++"aceite caso você somente queira usar o adjtimex para inspecionar os " ++"parâmetros atuais." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Executar o adjtimexconfig durante a instalação ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"O script adjtimex irá utilizar o adjtimex para encontrar valores para " ++"variáveis de kernel tick e frequency que farão com que o relógio do sistema " ++"concorde aproimadamente com o relógio de hardware (também conhecido como " ++"relógio CMOS). Ele irá então gravar esses valores no arquivo de " ++"configuração /etc/default/adjtimex de modo que as configurações sejam " ++"restauradas a cada renicialização, quando o /etc/init.d/adjtimex é executado." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"O script leva cerca de 70 segundos para ser executado. Alternativamente, " ++"você pode executar o adjtimexconfig você mesmo posteriormente, ou ainda " ++"determinar as variáveis de kernel usando uma das diversas maneiras possíveis " ++"(consulte a página de manul adjtimex) e instalar as mesmas em /etc/default/" ++"adjtimex." +--- adjtimex-1.23.orig/debian/po/de.po ++++ adjtimex-1.23/debian/po/de.po +@@ -0,0 +1,83 @@ ++# translation of adjtimex_1.21.1-2_de.po to German ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans# ++# Developers do not need to manually edit POT or PO files. ++# ++# Erik Schanze <eriks@debian.org>, 2004-2007. ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex_1.21.1-2_de\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2007-08-06 20:50+0200\n" ++"Last-Translator: Erik Schanze <eriks@debian.org>\n" ++"Language-Team: German <debian-l10n-german@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.11.4\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Soll Adjtimex nach der Installation und bei jedem Hochfahren gestartet " ++"werden?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"Adjtimex kann beim Hochfahren des Systems ablaufen, um die Zeitparameter im " ++"Kernel auf die Werte in /etc/defaults/adjtimex zu setzen. Stimmen Sie dem " ++"nicht zu, wenn Sie mit Adjtimex nur die aktuellen Parameter ermitteln wollen." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Soll »adjtimexconfig« zur Installation aufgerufen werden?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Das Skript »adjtimexconfig« nutzt Adjtimex, um die Werte der Kernelvariablen " ++"»tick« und »frequency« zu finden, damit die Systemuhr ungefähr mit der " ++"Rechneruhr (auch bekannt als CMOS-Uhr) übereinstimmt. Das Skript speichert " ++"diese Werte in der Konfigurationsdatei /etc/default/adjtimex, sodass die " ++"Einstellung bei jedem Systemstart wiederhergestellt wird, wenn /etc/init.d/" ++"adjtimex startet." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Das Skript benötigt 70 Sekunden, um durchzulaufen. Andererseits können Sie " ++"»adjtimexconfig« später selbst starten oder finden die Kernelvariablen auf " ++"einem anderen Weg (siehe Handbuchseite von Adjtimex) und speichern die Werte " ++"in der Datei /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/vi.po ++++ adjtimex-1.23/debian/po/vi.po +@@ -0,0 +1,75 @@ ++# Vietnamese Translation for adjtimex. ++# Copyright © 2005 Free Software Foundation, Inc. ++# Clytie Siddall <clytie@riverland.net.au>, 2005. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex 1.20-4\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-05-04 15:44+0930\n" ++"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" ++"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=utf-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Plural-Forms: nplurals=1; plural=0\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Bạn có muốn chạy trình adjtimex khi cài đặt và má»i khi khởi Ä‘á»™ng không?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"Trình adjtimex (adjust time: Ä‘iá»u chỉnh thá»i gian) thì có thể chạy khi khởi " ++"Ä‘á»™ng hệ thống, để lập những tham số thá»i gian của hạt nhân thành những giá " ++"trị trong /etc/default/adjtimex. Äừng hiệu lá»±c tùy chá»n này nếu bạn chỉ muốn " ++"sá»­ dụng trình adjtimex để kiểm tra những tham số hiện thá»i." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Bạn có muốn chạy tập lệnh adjtimexconfig khi cài đặt không?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Tập lệnh adjtimexconfig (adjust time configuration: Ä‘iá»u chỉnh cấu hình thá»i " ++"gian) thì sẽ dùng trinh adjtimex để tìm giá trị cho biến hạt nhân «tick» và " ++"«frequency» để khá»›p đồng hồ hệ thống xấp xi vá»›i đồng hồ phần cứng (cÅ©ng được " ++"biết nhÆ° là đồng hồ CMOS). NhÆ° thế thì nó lÆ°u nhÆ°ng giá trị này trong tập " ++"tin cấu hình /etc/default/adjtimex vì vậy sẽ phục hồi cách thiết lập ấy má»i " ++"khi khởi Ä‘á»™ng, khi chạy /etc/init.d/adjtimex." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Tập lệnh này chạy được 70 giây. Hoặc bạn có thể tá»± chạy tập lệnh " ++"adjtimexconfig vào lúc sau, hoặc quyết định những biến hạt nhân má»™t của vài " ++"cách khác (hãy xem trang hÆ°á»›ng dẫn: lệnh\n" ++"man adjtimex\n" ++"mà «man» là trình hiển thị trang hÆ°á»›ng dẫn), và cài đặt chúng vào /etc/" ++"default/adjtimex." +--- adjtimex-1.23.orig/debian/po/cs.po ++++ adjtimex-1.23/debian/po/cs.po +@@ -0,0 +1,67 @@ ++# Czech translation of adjtimex templates ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex 1.20-3\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-4-10 22:13+0200\n" ++"Last-Translator: Martin Sin <martin.sin@seznam.cz>\n" ++"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=ISO-8859-2\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Má být adjtimex spu¹tìn pøi instalaci a pøi ka¾dém spu¹tìní?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex mù¾e bì¾et pøi ka¾dém startu systému a nastavit parametry jádra na " ++"hodnoty z /etc/default/adjtimex. Pøi nesouhlasu bude adjtimex nastaven na " ++"zji¹tìní aktuálních parametrù." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Má být adjtimexconfig spu¹tìn pøi instalaci?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Skript adjtimexconfig pou¾ije adjtimex k nalezení hodnot pro promìnné " ++"èasovaèe a frekvence jádra tak, ¾e nastaví systémové hodiny pøibli¾nì na " ++"hodnotu hardwarových hodin (také známých jako CMOS hodiny). Pak ulo¾í tyto " ++"hodnoty do konfiguraèního souboru /etc/default/adjtimex aby mohlo být " ++"nastavení obnoveno pøi ka¾dém startu, v¾dy pøi spu¹tìní /etc/init.d/adjtimex." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Spu¹tìní skriptu zabere 70 sekund. Nebo mù¾ete spustit adjtimexconfig " ++"samostatnì pozdìji, pøípadnì urèit promìnné jádra jedním z nìkolika rùzných " ++"zpùsobù (podívejte se na manuálovou stránku adjtimex) a umístìte je do /etc/" ++"default/adjtimex." +--- adjtimex-1.23.orig/debian/po/pt.po ++++ adjtimex-1.23/debian/po/pt.po +@@ -0,0 +1,71 @@ ++# 2005-10-27 - Marco Ferra <mferra@sdf.lonestar.org> (initial translation) ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex 1.20-5\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-10-27 01:11+0100\n" ++"Last-Translator: Marco Ferra <mferra@sdf.lonestar.org>\n" ++"Language-Team: Portuguese <traduz@debianpt.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "" ++"Deve o adjtimex correr enquanto o instala e depois sempre que o sistema " ++"inicia?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"O adjtimex pode correr quando o sistema inicia para ajustar os paramêtros " ++"temporais do kernel para os valores especificados em /etc/default/adjtimex. " ++"Por favor recuse se apenas deseja usar o adjtimex para inspecionar os " ++"paramêtros actuais." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Deve o adjtimexconfig correr enquanto o instala?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"O script adjtimexconfig irá usar o comando adjtimex para encontrar os " ++"valores para variáveis do kernel que o farão aproximar e estar de acordo com " ++"o relógio por hardware (tambem conhecido pelo CMOS clock). Este então " ++"guarda esses valores no ficheiro /etc/default/adjtimex para que estes " ++"paramêtros sejam reavidos sempre que o sistema inicia, nomeadamente quando " ++"o /etc/init.d/adjtimex corre." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Este script demora 70 segundos a correr. De forma alternativa pode correr o " ++"adjtimexconfig por si próprio numa altura mais tarde ou determinar as " ++"variáveis do kernel de outras formas (leia a página do manual do adjtimex) e " ++"instale-os em /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/po/sv.po ++++ adjtimex-1.23/debian/po/sv.po +@@ -0,0 +1,77 @@ ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# Developers do not need to manually edit POT or PO files. ++# , fuzzy ++# ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: adjtimex 1.20-5\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-10-11 16:31+0200\n" ++"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" ++"Language-Team: Swedish <sv@li.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=iso-8859-1\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Ska adjtimex köras vid installation och vid varje uppstart?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex kan köra vid systemets uppstart för att sätta kärntidsparametrar " ++"till värdena i /etc/default/adjtimex. Acceptera inte om du bara vill använda " ++"adjtimex för att inspektera de nuvarande parametrarna." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Ska adjtimexconfig köras vid installationstid?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Skriptet adjtimexconfig kommer att använda adjtimex för att hitta värden för " ++"kärnvariablerna tick och frequency som gör att systemklockan kommer överens " ++"med hårdvaruklockan (också kallad CMOS-klockan). Den sparar sedan dessa " ++"värden i konfigurationsfilen /etc/default/adjtimex så att inställningarna " ++"kommer att användas vid varje uppstart, när /etc/init.d/adjtimex körs." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"Skriptet tar 70 sekunder att köras. Alternativt kan du köra adjtimexconfig " ++"själv vid en senare tid eller bestämma variabler för kärnan på ett eller " ++"flera sätt (se adjtimes manualsida) och installera dom i /etc/default/" ++"adjtimex)." +--- adjtimex-1.23.orig/debian/po/ru.po ++++ adjtimex-1.23/debian/po/ru.po +@@ -0,0 +1,80 @@ ++# translation of adjtimex_1.20-5_templates_ru.po to Russian ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans# ++# Developers do not need to manually edit POT or PO files. ++# Yuri Kozlov <kozlov.y@gmail.com>, 2005. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: template_adjtimex_1.20-5\n" ++"Report-Msgid-Bugs-To: jrv@debian.org\n" ++"POT-Creation-Date: 2007-08-06 21:41-0400\n" ++"PO-Revision-Date: 2005-11-07 19:24+0300\n" ++"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n" ++"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.9.1\n" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "Should adjtimex be run at installation and at every startup?" ++msgstr "Должен adjtimex быть запущен ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ каждый раз при Ñтарте ÑиÑтемы?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:1001 ++msgid "" ++"adjtimex can run at system startup to set the kernel time parameters to the " ++"values in /etc/default/adjtimex. Don't accept if you just want to use " ++"adjtimex to inspect the current parameters." ++msgstr "" ++"adjtimex можно запуÑкать при Ñтарте ÑиÑтемы Ð´Ð»Ñ ÑƒÑтановки значений " ++"параметров времени Ñдра из файла /etc/default/adjtimex. Ðе ÑоглашайтеÑÑŒ, " ++"еÑли проÑто хотите иÑпользовать adjtimex Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ текущих параметров." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "Should adjtimexconfig be run at installation time?" ++msgstr "Должен adjtimexconfig быть запущен ÑейчаÑ?" ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The adjtimexconfig script will use adjtimex to find values for the kernel " ++"variables tick and frequency that will make the system clock approximately " ++"agree with the hardware clock (also known as the CMOS clock). It then saves " ++"these values in the configuration file /etc/default/adjtimex so the settings " ++"will be restored on every boot, when /etc/init.d/adjtimex runs." ++msgstr "" ++"Сценарий adjtimexconfig иÑпользует adjtimex Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка значений переменных " ++"Ñдра импульÑа Ñигнала и чаÑтоты, которые помогают ÑоглаÑовывать ÑиÑтемные " ++"чаÑÑ‹ Ñ Ð°Ð¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼Ð¸ чаÑами (так называемые чаÑÑ‹ CMOS). Затем он ÑохранÑет Ñти " ++"Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² конфигурационный файл /etc/default/adjtimex, Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы " ++"воÑÑтанавливать их при каждой загрузке Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ /etc/init.d/" ++"adjtimex." ++ ++#. Type: boolean ++#. Description ++#: ../templates:2001 ++msgid "" ++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig " ++"yourself at a later time, or determine the kernel variables one of several " ++"other ways (see the adjtimex man page) and install them in /etc/default/" ++"adjtimex." ++msgstr "" ++"ДлительноÑÑ‚ÑŒ работы ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ -- 70 Ñекунд. Ð’ качеÑтве альтернативы вы можете " ++"запуÑтить adjtimexconfig вручную позже, или определить переменные Ñдра одним " ++"из неÑкольких других ÑпоÑобов (Ñмотрите Ñтраницу руководÑтва по adjtimex) и " ++"Ñохранить их в файл /etc/default/adjtimex." +--- adjtimex-1.23.orig/debian/README.Debian ++++ adjtimex-1.23/debian/README.Debian +@@ -0,0 +1,21 @@ ++adjtimex for DEBIAN ++---------------------- ++ ++This is the Debian Linux prepackaged version of adjtimex. ++ ++This package was put together by Jim Van Zandt <jrv@debian.org>, ++who also maintains the program and therefore used the master sources. ++ ++further Information: ++ ++* adjtimex manpage ++* copying policy ++ /usr/share/doc/adjtimex/copyright ++ (or debian/copyright in the source package) ++* changelog for debian package ++ /usr/share/doc/adjtimex/changelog.Debian ++* adjtimex's README: ++ /usr/share/doc/adjtimex/README ++ ++ ++James R. Van Zandt <jrv@debian.org>, Sun, 7 Mar 1999 21:58:51 -0500 +--- adjtimex-1.23.orig/debian/templates ++++ adjtimex-1.23/debian/templates +@@ -0,0 +1,22 @@ ++Template: adjtimex/run_daemon ++Type: boolean ++Default: true ++_Description: Should adjtimex be run at installation and at every startup? ++ adjtimex can run at system startup to set the kernel time parameters to ++ the values in /etc/default/adjtimex. Don't accept if you just want to ++ use adjtimex to inspect the current parameters. ++ ++Template: adjtimex/compare_rtc ++Type: boolean ++Default: true ++_Description: Should adjtimexconfig be run at installation time? ++ The adjtimexconfig script will use adjtimex to find values for the kernel ++ variables tick and frequency that will make the system clock approximately ++ agree with the hardware clock (also known as the CMOS clock). It then ++ saves these values in the configuration file /etc/default/adjtimex so the ++ settings will be restored on every boot, when /etc/init.d/adjtimex runs. ++ . ++ The script takes 70 sec to run. Alternatively, you can run adjtimexconfig ++ yourself at a later time, or determine the kernel variables one of several ++ other ways (see the adjtimex man page) and install them in ++ /etc/default/adjtimex. +--- adjtimex-1.23.orig/debian/changelog ++++ adjtimex-1.23/debian/changelog +@@ -0,0 +1,530 @@ ++adjtimex (1.23-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ * adjtimex.c (compare): In case of absence of /etc/adjtime, do not fail, ++ and do not force users to manually create it with 0.0 ++ content. Instead, proceed assuming zero values (meaning RTC does not ++ drift). Also replace redundant code by a call to ++ get_cmos_adjustment(). README: Rewrite USAGE paragraph. Remove point ++ about creating zero adjfile. Document new behaviour without ++ adjfile. Remove reference to the long outdated clock(8). Update URL ++ for hwclock(8). (Thanks to Alain Guibert <alguibert@free.fr>, ++ closes:bug#445448) ++ ++ * adjtimex.c (busy_wait): timestamp more closely the RTC clock beat ++ (thanks to Alain Guibert <alguibert at free.fr>, see Debian ++ bug#443814). (usage): --directisa switch forces adjtimex to poll the ++ update-in-process (UIP) flag of the CMOS clock (thanks to Alain ++ Guibert <alguibert at free.fr>, closes:bug#443773). ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 06 Oct 2007 21:57:04 -0400 ++ ++adjtimex (1.22-1) unstable; urgency=low ++ ++ * New upstream release: fix these bugs in ntpdate output ++ interpretation (closes:bug#438718): ++ adjtimex has a bug in evaluating the output of ntpdate, because ++ 1. it assumes ntpdate outputs "adjust time server", but ntpdate ++ may output "step time server" also ++ 2. it doesnt stop at last line but as soon as it has found "filter ++ offset:" lines, and because of this it will not find the "offset ..." ++ information in the last line. ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 23 Sep 2007 12:51:52 -0400 ++ ++adjtimex (1.21.1-3) unstable; urgency=low ++ ++ * update German translation of debconf templates, thanks to Erik Schanze ++ <eriks@debian.org> and Helge Kreutzmann ++ <debian@helgefjell.de>(closes:#436080) ++ ++ * debian/rules don't ignore failure of "make distclean" ++ ++ * debian/adjtimex.init: make LSB compliant ++ ++ -- James R. Van Zandt <jrv@debian.org> Mon, 06 Aug 2007 21:39:47 -0400 ++ ++adjtimex (1.21.1-2) unstable; urgency=low ++ ++ * Update French translation of debconf templates, thanks to Christian ++ Perrier <bubulle@debian.org> (closes:Bug#403472) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 7 Jan 2007 18:10:32 -0500 ++ ++adjtimex (1.21.1-1) unstable; urgency=low ++ ++ * New upstream release. ++ ++ * adjtimex.c: don't declare adjtimex syscall (should already be getting ++ the declaration from sys/timex.h) Thanks to Andreas Jochens ++ <aj@andaco.de> (closes:#390989) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 7 Oct 2006 08:04:52 -0400 ++ ++adjtimex (1.21-2) unstable; urgency=low ++ ++ * Makefile: correct version number to 1.21 (error in importing upstream ++ sources) ++ ++ * debian/control: depend on po-debconf ++ ++ -- James R. Van Zandt <jrv@debian.org> Fri, 6 Oct 2006 20:41:00 -0400 ++ ++adjtimex (1.21-1) unstable; urgency=low ++ ++ * New upstream release. use /dev/rtc if available (closes:#196692). Use ++ heuristic to correct for DST changes or lacking --utc flag ++ (closes:#308396). check return code in probe_time() so if root ++ privileges are needed (e.g. "adjtimex -r") and lacking, command will ++ fail rather than printing bogus results. (closes:#364060) ++ ++ * debian/postinst: start with invoke-rc.d if available (closes:#367746) ++ ++ * debian/control: update to policy 3.7.2 ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 20 May 2006 08:33:05 -0400 ++ ++adjtimex (1.20-7) unstable; urgency=low ++ ++ * debian/README.Debian: correct references to files, which are no longer ++ in /usr/doc/adjtimex (closes:#365761) ++ * debian/rules: declare debhelper compat level 5 ++ * debian/control: build-depends on debhelper ver 5 ++ ++ -- James R. Van Zandt <jrv@debian.org> Thu, 4 May 2006 21:54:33 -0400 ++ ++adjtimex (1.20-6) unstable; urgency=low ++ ++ * control: depend on debconf | debconf-2.0 (closes: #331733), update to ++ policy 3.6.2 ++ * debian/po/de.po: fix spelling error in German translation, thanks to ++ Philipp Meier <meier@meisterbohne.de> (closes: #279254) ++ * debian/po/sv.po: Swedish translation for debconf template, courtesy ++ of Daniel Nylander <yeager@lidkoping.net> (closes: #333124) ++ * debian/po: Add Portugese translation for debconf template, courtesy of ++ Miguel Figueiredo <elmig@debianpt.org> (closes: #336333) ++ * debian/po: Add Russian translation for debconf template, courtesy of ++ Yuri Kozlov <kozlov.y@gmail.com> (closes: #337967) ++ * debian/copyright: update FSF address. ++ ++ -- James R. Van Zandt <jrv@debian.org> Fri, 25 Nov 2005 21:04:08 -0500 ++ ++adjtimex (1.20-5) unstable; urgency=low ++ ++ * debian/po/vi.po: Vietnamese translation for debconf template, courtesy ++ of Clytie Siddall <clytie@riverland.net.au> (closes:Bug#307600) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 7 May 2005 11:58:47 -0400 ++ ++adjtimex (1.20-4) unstable; urgency=low ++ ++ * debian/po/cs.po: Czech translation for debconf template, courtesy of ++ Martin Šín <martin.sin@seznam.cz> (closes:Bug#304377) ++ ++ -- James R. Van Zandt <jrv@debian.org> Mon, 25 Apr 2005 20:14:42 -0400 ++ ++adjtimex (1.20-3) unstable; urgency=low ++ ++ * debian/adjtimex.init: adjust printout to conform to Debian standard, ++ output error to stderr (Thanks to Thomas Hood, closes:bug#294824) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 13 Mar 2005 17:20:28 -0500 ++ ++adjtimex (1.20-2) unstable; urgency=low ++ ++ * debian/po/de.po: replace corrupted file (closes: #250250) ++ ++ -- James R. Van Zandt <jrv@debian.org> Mon, 20 Sep 2004 20:08:47 -0400 ++ ++adjtimex (1.20-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ * adjtimex.c (compare): in "compare" or "adjust", return immediately ++ after printing last result, instead of sleeping an extra $interval ++ seconds. (Thanks to Alain Guibert <derogaton at oreka.com>, ++ closes:Bug#243652) ++ ++ * postinst: remove /etc/rcS.d/S20adjtimex link if configured not to run ++ at startup (thanks to Mario 'BitKoenig' Holbe, closes:Bug#267229) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 19 Sep 2004 12:41:37 -0400 ++ ++adjtimex (1.19-1) unstable; urgency=high ++ ++ * copyright: report upstream source address (closes:Bug#269691) ++ ++ * control: don't depend on either mawk or awk, since either works and ++ awk is required (closes:Bug#267228) ++ ++ * New upstream release ++ ++ * adjtimex.c (compare): Account for the current frequency value ++ when calculating the recommended frequency value. Simplify ++ calculation of recommended tick. (compare): print estimated system ++ error in ppm instead of obscure "second diff". ++ ++ * adjtimex.8: use 2^16 instead of the more obscure 1<<16. ++ ++ * adjtimex.c: revert to poll-wait instead of using /dev/rtc, because the ++ latter only provides time with one second precision and so gives ++ wildly inaccurate adjustments. (closes:Bug#269498,Bug#265839) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 11 Sep 2004 16:01:52 -0400 ++ ++adjtimex (1.18-1.1) unstable; urgency=medium ++ ++ * Non-maintainer upload prepared by Joshua Kwan and Ken Bloom. ++ * Applied patch from Jurij Smakov <jurij@wooyd.org> to #263401: ++ - Fixes the regular expression used to extract the baseline value ++ from the adjtimex output. Closes: #263401 ++ - Replaces non-POSIX compliant calls to ('tail -1') by the ++ POSIX-compliant ones ('tail -n 1') ++ - Cosmetic changes to the adjtimexconfig output, making it ++ consistent with the general Debian style. ++ * Add German debconf template translations (closes: #250250) ++ ++ -- Ken Bloom <kabloom@ucdavis.edu> Thu, 12 Aug 2004 23:34:33 -0700 ++ ++adjtimex (1.18-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ * call reset_time_status() only when explicitly told to (thanks to Alain ++ Guibert <derogaton at oreka.com>, closes:bug#243031) ++ ++ * Add debconf translations for Japanese (closes:bug#223462), Danish ++ (closes:bug#239865), and Brazilian Portuguese (closes:bug#228281). ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 11 Apr 2004 18:32:33 -0400 ++ ++adjtimex (1.17-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ * control: compliant with Debian policy version 3.6.1 ++ ++ * es.po: decode "quoted-printable" encoding. ++ ++ * adjtimex.c: update email ++ (main): If adjtimex() returns an error, print HZ and legal ranges ++ for tick and freq. (thanks to Sami Farin <safari at iki.fi>) ++ (review): calculate reasonable tick and frequency when HZ != 100. ++ (cmos_init): use /dev/rtc when available (thanks to Richard ++ Henderson <rth at twiddle.net>). ++ ++ * adjtimex.c: --status switch sets clock status (courtesy of Alain ++ Guibert <derogaton at oreka.com>) (closes:bug#242732) ++ ++ * adjtimexconfig: set reasonable tick and frequency when HZ != ++ 100. (closes:Bug#241726) ++ ++ * adjtimex.c (longopt): fix spelling to match documentation: --esterror ++ and --maxerror (thanks to Alain Guibert) (fixes:Bug#241863) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sat, 3 Apr 2004 21:13:09 -0500 ++ ++adjtimex (1.16-3) unstable; urgency=low ++ ++ * Dutch translation of gettext debconf templates (courtesy of Michiel Sikkes, closes:bug#215162) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 12 Oct 2003 17:33:55 -0400 ++ ++adjtimex (1.16-2) unstable; urgency=low ++ ++ * Polish translation of gettext debconf templates (courtesy of Bartosz ++ Zapalowski, closes:bug#208955) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 7 Sep 2003 16:26:30 -0400 ++ ++adjtimex (1.16-1) unstable; urgency=low ++ ++ * New upstream release (closes:Bug#204382)(closes:Bug#204377) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 24 Aug 2003 20:52:32 -0400 ++ ++adjtimex (1.15.1-2) unstable; urgency=low ++ ++ * gettext-based debconf templates (closes:bug#205788) ++ * French translation of gettext debconf templates (closes:Bug#206430) ++ * Spanish translation of gettext debconf templates (closes:Bug#197485) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 24 Aug 2003 18:01:56 -0400 ++ ++adjtimex (1.15.1-1) unstable; urgency=low ++ ++ * New upstream release. Add explicit newlines in multi-line help text ++ (closes:bug#194858) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 31 May 2003 20:53:14 -0400 ++ ++adjtimex (1.15-1) unstable; urgency=low ++ ++ * New upstream release. Now compiles on ia64 (closes:bug#141655). ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Wed, 30 Apr 2003 19:38:11 -0400 ++ ++adjtimex (1.14-1) unstable; urgency=low ++ ++ * New Upstream Release. Expanded documentation (closes:bug#142967) ++ * convert to debhelper ++ * debian/control: depend on debconf ++ * debian/postinst: configure adjtimex to run on startup, and run ++ adjtimexconfig on installation, only if asked by sysadmin (via ++ debconf) (closes:bug#158047) ++ * debian/postrm: purge debconf db entry ++ * debian/adjtimexconfig: config file is now /etc/default/adjtimex ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 27 Apr 2003 21:28:40 -0400 ++ ++adjtimex (1.13-1) unstable; urgency=low ++ ++ * New upstream release (closes:Bug#127483) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 6 Jan 2002 21:06:23 -0500 ++ ++adjtimex (1.12-3) unstable; urgency=low ++ ++ * New maintainer email (fix remaining references) ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 9 Dec 2001 15:25:06 -0500 ++ ++adjtimex (1.12-2) unstable; urgency=low ++ ++ * New maintainer email ++ ++ -- James R. Van Zandt <jrv@debian.org> Sun, 9 Dec 2001 13:24:59 -0500 ++ ++adjtimex (1.12-1) unstable; urgency=low ++ ++ * New upstream release ++ * debian/control: move Build-Depends entry to source section ++ (closes:bug#91928). Policy version 3.5.2 ++ * debian/rules: by default, compile without -g option. Honor ++ DEB_BUILD_OPTIONS. ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Wed, 22 Nov 2000 01:37:58 -0500 ++ ++adjtimex (1.11-3) unstable; urgency=low ++ ++ * adjtimexconfig: install new values in /etc/adjtimex.conf rather than ++ the startup script /etc/init.d/adjtimex (thanks to Zsolt Szabo ++ <szazs@mm.bme.hu>). ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 30 Sep 2000 09:34:58 -0400 ++ ++adjtimex (1.11-2) unstable; urgency=low ++ ++ * build-depends on debmake ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 3 Sep 2000 13:50:02 -0400 ++ ++adjtimex (1.11-1) unstable; urgency=low ++ ++ * /etc/init.d/adjtimex: restart|force-reload also run adjtimex ++ (closes:bug#69514), add comment explaining precedence of ++ /etc/adjtimex.conf ++ ++ * New upstream release ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 28 Aug 2000 21:19:48 -0400 ++ ++adjtimex (1.10-1) frozen unstable; urgency=high ++ ++ * New upstream release - security fix: use popen() to recover output from ++ ntpdate, instead of an unsafe temporary file (thanks to Colin Phipps ++ <crp22@cam.ac.uk>) (closes:bug#56752) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Tue, 1 Feb 2000 21:29:03 -0500 ++ ++adjtimex (1.9-2) unstable; urgency=low ++ ++ * Suggest ntpdate (closes:bug#56751) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 31 Jan 2000 19:26:16 -0500 ++ ++adjtimex (1.9-1) unstable; urgency=low ++ ++ * New upstream release ++ * Removed pointer to /usr/doc/copyright/GPL ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 3 Jan 2000 21:34:59 -0500 ++ ++adjtimex (1.8.1-1) unstable; urgency=low ++ ++ * New upstream release (closes:bug#52637) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Thu, 16 Dec 1999 20:13:43 -0500 ++ ++adjtimex (1.8-4) unstable; urgency=low ++ ++ * Change references from /usr/sbin/adjtimex to /sbin/adjtimex in ++ adjtimexconfig ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Tue, 2 Nov 1999 20:21:48 -0500 ++ ++adjtimex (1.8-3) unstable; urgency=low ++ ++ * *Really* install binary into /sbin, so it is available ++ even if /usr is not mounted (closes:Bug#44399) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 30 Oct 1999 17:57:57 -0400 ++ ++adjtimex (1.8-2) unstable; urgency=low ++ ++ * Install compatibility symlink /usr/doc/adjtimex. ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 24 Oct 1999 10:54:01 -0400 ++ ++adjtimex (1.8-1) unstable; urgency=low ++ ++ * New upstream release: Install binary into /sbin, so it is available ++ even if /usr is not mounted (closes:Bug#44399) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 6 Sep 1999 13:08:15 -0400 ++ ++adjtimex (1.7-2) unstable; urgency=low ++ ++ * Link against glibc2.1 ++ * Upgrade to FHS ++ * Include full license statement in copyright file ++ * Revise GPL reference in copyright file ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 4 Sep 1999 12:04:34 -0400 ++ ++adjtimex (1.7-1) unstable; urgency=low ++ ++ * install configuration file in /etc/init.d rather than /etc/rc.boot ++ closes: #30120, #32436. ++ * New upstream release (incorporates Paul Slootman's alpha patch) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 28 Nov 1998 20:33:38 -0500 ++ ++adjtimex (1.6-2) unstable; urgency=low ++ ++ * corrected reference in man page: clock -> hwclock (Bug#27854) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 24 Oct 1998 14:40:45 -0400 ++ ++adjtimex (1.6-1.1) unstable; urgency=low ++ ++ * non-maintainer (binary-only) upload for Alpha ++ * changed architecture back to 'any'. Why should it be i386 only? ++ * don't use syscall1() to declare adjtimex() for Alpha ++ ++ -- Paul Slootman <paul@debian.org> Tue, 8 Sep 1998 20:42:52 +0200 ++ ++adjtimex (1.6-1) unstable; urgency=low ++ ++ * New upstream release: Default log file is "/var/log/clocks.log". ++ Create log file if it does not exist. (Bug#25834) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 22 Aug 1998 20:33:22 -0400 ++ ++adjtimex (1.5-3) unstable; urgency=low ++ ++ * architecture is i386 only ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 29 Jun 1998 19:35:22 -0400 ++ ++adjtimex (1.5-2) unstable; urgency=low ++ ++ * eliminate question in postinst, by eliminating postinst entirely ++ (Bug#22288) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 7 Jun 1998 20:51:42 -0400 ++ ++adjtimex (1.5-1) frozen unstable; urgency=low ++ ++ * New upstream release. No functional changes, but adjtimex is now ++ covered by the GNU GPL. (Bug#21358) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 20 Apr 1998 21:38:53 -0400 ++ ++adjtimex (1.4-2) unstable; urgency=low ++ ++ * Ensure that changelog is compressed *before* calculating md5sum ++ (Bug#19266) ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 14 Mar 1998 20:47:52 -0500 ++ ++adjtimex (1.4-1) unstable; urgency=low ++ ++ * New upstream release. Log times for long-term estimation of drifts. ++ ++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Thu, 11 Dec 1997 21:48:01 -0500 ++ ++adjtimex (1.3-3) stable; urgency=medium ++ ++ * Moved temporary files from /tmp to /etc, to eliminate security ++ hole (bug #11610). ++ ++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Sun, 3 Aug 1997 11:34:48 -0400 ++ ++adjtimex (1.3-2) stable; urgency=medium ++ ++ * Removed conflict with xntp, since ntpdate from the xntp package ++ is still compatible with adjtimex. ++ ++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Wed, 12 Mar 1997 21:01:05 -0500 ++ ++adjtimex (1.3-1) unstable; urgency=HIGH ++ ++ * New upstream version: Previous version allows 2.0 kernel to reset ++ the CMOS clock periodically. Now using different method of ++ preventing this. ++ * New --compare switch to compare system and CMOS clocks (replacing ++ the separate program clockdiff) and suggest better values of time ++ parameters. New --adjust switch to actually install the suggested ++ values. GNU format long switches, including --help and --version. ++ * Revised conftimex to use --adjust switch instead of clockdiff. ++ * Renamed conftimex to adjtimexconfig per Debian recommendation. ++ * Added conftimex man page. ++ * Revised messages in postinst to better explain what is going on. ++ * Conflicts with xntp ++ * New maintainer ++ ++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Sat, 1 Mar 1997 18:03:35 -0500 ++ ++adjtimex (1.2-5) unstable; urgency=LOW ++ ++ * New packaging format ++ * Corrected comment in /etc/rc.boot/adjtimex ++ * Corrected the installation of doc files ++ ++ -- Michael Meskes <meskes@debian.org> Wed, 18 Sep 1996 09:22:51 +0200 ++ ++Fri May 17 12:48:07 MET DST 1996 Michael Meskes (meskes@debian.org) ++ ++ adjtimex (1.2-1): ++ ++ * Added Debian Linux package maintenance system files. ++ ++Fri May 17 20:39:30 MET DST 1996 Michael Meskes (meskes@debian.org) ++ ++ adjtimex (1.2-2): ++ ++ * Corrected mode for /etc/rc.boot/adjtimex ++ ++ * Added conftimex script ++ ++ * Automatically configure system ++ ++Sun Jun 30 13:17:53 MET DST 1996 Michael Meskes (meskes@debian.org) ++ ++ adjtimex (1.2-3): ++ ++ * Corrected rules file for new naming scheme ++ ++ * Gzip manpage ++ ++ * Strip binaries ++ ++Tue Jul 2 10:01:35 MET DST 1996 Michael Meskes (meskes@debian.org) ++ ++ adjtimex (1.2-4): ++ ++ * Really say what we're doing in postinst (Bug#3474) ++ ++ +--- adjtimex-1.23.orig/debian/dirs ++++ adjtimex-1.23/debian/dirs +@@ -0,0 +1,4 @@ ++usr/bin ++usr/sbin ++sbin ++usr/share/man/man8 +--- adjtimex-1.23.orig/debian/postrm ++++ adjtimex-1.23/debian/postrm +@@ -0,0 +1,25 @@ ++#! /bin/sh -e ++ ++case "$1" in ++ purge) ++ rm -f /etc/adjtimex.conf /etc/default/adjtimex ++ update-rc.d adjtimex remove >/dev/null ++ if [ -e /usr/share/debconf/confmodule ]; then ++ # Source debconf library. ++ . /usr/share/debconf/confmodule ++ # Remove my changes to the db. ++echo "removing debconf db entries" ++ db_purge ++echo "removed debconf db entries" ++ fi ++ ;; ++ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ++ exit 0 ++ ;; ++ *) ++ echo "postrm called with unknown argument \`$1'" >&2 ++ exit 0 ++ ;; ++esac ++ ++#DEBHELPER# +--- adjtimex-1.23.orig/debian/copyright ++++ adjtimex-1.23/debian/copyright +@@ -0,0 +1,28 @@ ++This package was debianized by James R. Van Zandt jrv@debian.org on ++Thu, 11 Dec 1997 21:48:01 -0500. ++ ++This package was put together by Jim Van Zandt <jrv@debian.org>, ++who also maintains the program and therefore used the master sources. ++ ++Copyright: ++ ++adjtimex is Copyright (C) 1997 Steven S. Dick and James R. Van Zandt ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License as ++ published by the Free Software Foundation; version 2 dated June, ++ 1991, or any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ++ 02110-1301, USA. ++ ++On Debian GNU/Linux systems, the complete text of the GNU Public ++License can be found in `/usr/share/common-licenses/' ++ +--- adjtimex-1.23.orig/debian/rules ++++ adjtimex-1.23/debian/rules +@@ -0,0 +1,113 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. ++# GNU copyright 1997 to 1999 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++ ++ ++package=adjtimex ++ ++CFLAGS = -Wall -g ++INSTALL = install ++INSTALL_FILE = $(INSTALL) -p -o root -g root -m 644 ++INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 ++INSTALL_SCRIPT = $(INSTALL) -p -o root -g root -m 755 ++INSTALL_DIR = $(INSTALL) -p -d -o root -g root -m 755 ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++CFLAGS += -O0 ++else ++CFLAGS += -O2 ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++INSTALL_PROGRAM += -s ++endif ++ ++ ++config.status: configure ++ dh_testdir ++ # configure the package. ++ ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info ++ ++ ++build: build-stamp ++ ++build-stamp: config.status ++ dh_testdir ++ ++ # compile the package. ++ $(MAKE) CFLAGS="$(CFLAGS)" ++ #/usr/bin/docbook-to-man debian/adjtimex.sgml > adjtimex.1 ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ ++ # clean up after the build process. ++ debconf-updatepo ++ [ ! -f Makefile ] || $(MAKE) veryclean ++ rm -rf adjtimex *.o config.* ++ -test -r /usr/share/misc/config.sub && \ ++ cp -f /usr/share/misc/config.sub config.sub ++ -test -r /usr/share/misc/config.guess && \ ++ cp -f /usr/share/misc/config.guess config.guess ++ ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # install the package into debian/$(package). ++ $(INSTALL_PROGRAM) adjtimex $(CURDIR)/debian/$(package)/sbin ++ $(INSTALL_SCRIPT) debian/adjtimexconfig \ ++ $(CURDIR)/debian/$(package)/usr/sbin/adjtimexconfig ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++# dh_installlogrotate ++# dh_installemacsen ++# dh_installpam ++# dh_installmime ++ dh_installinit -n ++ dh_installcron ++ dh_installman adjtimex.8 debian/adjtimexconfig.8 ++ dh_installinfo ++# dh_undocumented ++ dh_installchangelogs ChangeLog ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++# dh_makeshlibs ++ dh_installdeb ++# dh_perl ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- adjtimex-1.23.orig/debian/docs ++++ adjtimex-1.23/debian/docs +@@ -0,0 +1,2 @@ ++README ++README.ru +--- adjtimex-1.23.orig/debian/adjtimexconfig ++++ adjtimex-1.23/debian/adjtimexconfig +@@ -0,0 +1,67 @@ ++#!/bin/sh ++ ++conffile=/etc/default/adjtimex ++startfile=/etc/init.d/adjtimex ++ ++echo -n "Comparing clocks (this will take 70 sec)..." ++ ++# Get the parameters ++ ++/sbin/adjtimex --print --tick 0 >/etc/adj.adjust 2>/dev/null ++baseline=`awk '/<= tick/{print ($1+$NF)/2}' /etc/adj.adjust` ++hz=`awk '/USER_HZ/{print $3}' /etc/adj.adjust` ++/sbin/adjtimex --tick $baseline --frequency 0 ++/sbin/adjtimex --adjust >/etc/adj.adjust ++echo "done." ++ticks=`tail -n 1 /etc/adj.adjust|awk '{print $6}'` ++freq=`tail -n 1 /etc/adj.adjust|awk '{print $7}'` ++# cat /etc/adj.adjust ++# echo hz=$hz baseline=$baseline ticks=$ticks freq=$freq ++rm /etc/adj.adjust ++adjt=`awk "BEGIN{print (($ticks-$baseline)*$hz + $freq/65536.)*.0864}"` ++echo -n "Adjusting system time by ${adjt} sec/day to agree with CMOS clock..." ++ ++# Recreate /etc/adjtimex.conf if necessary ++ ++if [ -f $conffile ]; then ++# echo "using existing $conffile"; ++ true; ++else ++cat >$conffile <<EOF ++# $conffile - configuration file for adjtimex(8) ++# ++# you may adjust these values manually or by calling /usr/sbin/adjtimexconfig ++# ++# This file is sourced by $startfile ++# ++TICK=$TICK ++FREQ=$FREQ ++ ++EOF ++fi ++ ++# Reset values in $conffile ++ ++sed -e "s/^TICK=.*/TICK=$ticks/" \ ++ -e "s/^FREQ=.*/FREQ=$freq/" \ ++ $conffile >$conffile.TMP && \ ++ mv $conffile.TMP $conffile ++ ++# grep "TICK=" /etc/init.d/adjtimex | cut -d'#' -f1 > /etc/adj.tick ++# grep "FREQ=" /etc/init.d/adjtimex | cut -d'#' -f1 > /etc/adj.freq ++# ++# TICKLINE="`echo -n "TICK="$ticks" # old: "; cat /etc/adj.tick`" ++# FREQLINE="`echo -n "FREQ="$freq" # old: "; cat /etc/adj.freq`" ++# ++# cp /etc/init.d/adjtimex /etc/init.d/adjtimex.TMP ++# sed -e "s/^TICK=.*/$TICKLINE/" -e "s/^FREQ=.*/$FREQLINE/" \ ++# < /etc/init.d/adjtimex.TMP > /etc/init.d/adjtimex ++# ++# if [ -s /etc/init.d/adjtimex ] ++# then ++# rm -f /etc/init.d/adjtimex.TMP ++# fi ++# rm -f /etc/adj.tick /etc/adj.freq /etc/adj.adjust ++rm -f /etc/adj.adjust ++echo "done." ++ +--- adjtimex-1.23.orig/debian/adjtimexconfig.8 ++++ adjtimex-1.23/debian/adjtimexconfig.8 +@@ -0,0 +1,41 @@ ++.\"{{{ Title Emacs major mode should be: -*- nroff -*- ++.TH ADJTIMEXCONFIG 8 "April 27, 2003" ++.\"}}} ++.\"{{{ Name ++.SH NAME ++adjtimexconfig \- find kernel clock variables and save for reboots ++.\"}}} ++.\"{{{ Synopsis ++.SH SYNOPSIS ++.ad l ++.\" commands only ++.B /sbin/adjtimexconfig ++.\"}}} ++.\"{{{ Config ++.SH DESCRIPTION ++This script uses \fBadjtimex\fP(8) to find values for the kernel ++variables \fBtick\fP and \fBfrequency\fP that will make the system ++clock approximately agree with the CMOS clock. It then saves these ++values in the configuration file \fI/etc/default/adjtimex\fP so the ++settings will be restored on every boot, when ++\fI/etc/init.d/adjtimex\fP runs. ++.P ++\fPadjtimexconfig\fP uses the drift rate recorded in ++\fI/etc/adjtime\fP to adjust the times it reads from the CMOS clock. ++If you find the CMOS clock has a systematic drift, read the ++\fBclock\fP(8) or \fBhwclock\fP(8) manual page, modify ++\fI/etc/adjtime\fP as required, and run \fBadjtimexconfig\fP again. ++.SH AUTHOR ++Michael Meskes <meskes@debian.org>. ++.\"}}} ++.\"{{{ ++.SH FILES ++.nf ++\fI/etc/default/adjtimex\fP ++\fI/etc/init.d/adjtimex\fP ++.fi ++.\"}}} ++.\"{{{ See also ++.SH "SEE ALSO" ++.BR adjtimex "(8), "clock "(8), "hwclock "(8), "ntpd (8) ++.\"}}} +--- adjtimex-1.23.orig/debian/config ++++ adjtimex-1.23/debian/config +@@ -0,0 +1,8 @@ ++#! /bin/sh -e ++ ++# Source debconf library. ++. /usr/share/debconf/confmodule ++ ++db_input medium adjtimex/run_daemon || true ++db_input medium adjtimex/compare_rtc || true ++db_go +--- adjtimex-1.23.orig/debian/postinst ++++ adjtimex-1.23/debian/postinst +@@ -0,0 +1,119 @@ ++#! /bin/sh ++ ++set -e ++ ++# Source debconf library. ++. /usr/share/debconf/confmodule ++ ++# old scripts ++oldfile=/etc/adjtimex.conf ++olderfile=/etc/rc.boot/adjtimex ++# new starting script ++startfile=/etc/init.d/adjtimex ++# new configuration file ++conffile=/etc/default/adjtimex ++ ++create_adjtimex_conf() ++{ ++ ++ TICK=10000 ++ FREQ=0 ++ ++ if [ -f $oldfile ]; then ++ TICK=`awk ' ++ BEGIN{tick=10000;} ++ /[ \t]*TICK[ \t]*=[ \t]*"?[0-9]+"?/ { ++ sub(/[ \t]*TICK[ \t]*=[ \t]*"?/,""); ++ tick=$0+0; ++ } ++ END {print tick;} ++ ' $oldfile` ++ ++ FREQ=`awk ' ++ BEGIN{freq=0;} ++ /[ \t]*FREQ[ \t]*=[ \t]*"?[0-9]+"?/ { ++ sub(/[ \t]*FREQ[ \t]*=[ \t]*"?/,""); ++ freq=$0+0; ++ } ++ END {print freq;} ++ ' $oldfile` ++ ++# echo "parameters from $oldfile: TICK=$TICK FREQ=$FREQ"; ++ else ++ if [ -f $olderfile ]; then ++ TICK=`awk ' ++ BEGIN{tick=10000;} ++ /[ \t]*TICK[ \t]*=[ \t]*"?[0-9]+"?/ { ++ sub(/[ \t]*TICK[ \t]*=[ \t]*"?/,""); ++ tick=$0+0; ++ } ++ END {print tick;} ++ ' $olderfile` ++ ++ FREQ=`awk ' ++ BEGIN{freq=0;} ++ /[ \t]*FREQ[ \t]*=[ \t]*"?[0-9]+"?/ { ++ sub(/[ \t]*FREQ[ \t]*=[ \t]*"?/,""); ++ freq=$0+0; ++ } ++ END {print freq;} ++ ' $olderfile` ++ ++# echo "parameters from $olderfile: TICK=$TICK FREQ=$FREQ"; ++ fi ++ fi ++ ++ if [ -f $conffile ]; then ++# echo "using existing $conffile"; ++ true; ++ else ++ if [ -d /etc/default ]; then true; else mkdir /etc/default; fi ++ cat >$conffile <<EOF ++# $conffile - configuration file for adjtimex(8) ++# ++# you may adjust these values manually or by calling /usr/sbin/adjtimexconfig ++# ++# This file is sourced by $startfile ++# ++TICK=$TICK ++FREQ=$FREQ ++ ++EOF ++ fi ++ ++ rm -f $oldfile $olderfile ++} ++ ++ ++case "$1" in ++ configure) ++ ++ create_adjtimex_conf ++ ++ db_get adjtimex/run_daemon ++ if [ "$RET" = "true" ]; then ++ update-rc.d adjtimex start 20 S . >/dev/null ++ ++ if which invoke-rc.d >/dev/null 2>&1; then ++ invoke-rc.d adjtimex start ++ else ++ /etc/init.d/adjtimex start ++ fi ++ fi ++ ++ db_get adjtimex/compare_rtc ++ if [ "$RET" = "true" ]; then ++ /usr/sbin/adjtimexconfig ++ fi ++ ++ ;; ++ abort-upgrade|abort-remove|abort-deconfigure) ++ exit 0 ++ ;; ++ *) ++ echo "postinst called with unknown argument \`$1'" >&2 ++ exit 0 ++ ;; ++esac ++ ++#DEBHELPER# +--- adjtimex-1.23.orig/debian/adjtimex.init ++++ adjtimex-1.23/debian/adjtimex.init +@@ -0,0 +1,45 @@ ++#!/bin/sh ++# ++# Run ADJTIMEX at startup. ++ ++### BEGIN INIT INFO ++# Provides: adjtimex ++# Required-Start: ++# Required-Stop: ++# Should-Start: ++# Should-Stop: ++# Default-Start: 2 3 4 5 ++# Default-Stop: 0 1 6 ++# Short-Description: set the kernel time variables ++# Description: set the kernel time variables ++### END INIT INFO ++ ++test -x /sbin/adjtimex || exit 0 ++ ++# default values ++TICK=10000 ++FREQ=0 ++ ++# values in $cfg take precedence over the values here ++cfg=/etc/default/adjtimex ++ ++if [ -f $cfg ]; then ++ . $cfg ++fi ++ ++case "$1" in ++ start|restart|force-reload) ++ echo -n "Regulating system clock..." ++ /sbin/adjtimex -tick "$TICK" -frequency "$FREQ" ++ echo "done." ++ ;; ++ stop|status) ++ ;; ++ *) ++ echo "/etc/init.d/adjtimex: unknown command $1" >&2 ++ echo "Usage: /etc/init.d/adjtimex {start|stop|restart|force-reload}" >&2 ++ exit 3 ++ ;; ++esac ++ ++exit 0 +--- adjtimex-1.23.orig/debian/adjust ++++ adjtimex-1.23/debian/adjust +@@ -0,0 +1,15 @@ ++ mode: 16384 ++ offset: 0 ++ frequency: 0 ++ maxerror: 0 ++ esterror: 0 ++ status: 0 ++time_constant: 0 ++ precision: 0 ++ tolerance: 0 ++ tick: 0 ++ raw time: 0s 0us = 0.000000 ++for this kernel: ++ USER_HZ = 100 (nominally 100 ticks per second) ++ 9000 <= tick <= 11000 ++ -33554432 <= frequency <= 33554432 +--- adjtimex-1.23.orig/debian/compat ++++ adjtimex-1.23/debian/compat +@@ -0,0 +1 @@ ++5 +--- adjtimex-1.23.orig/Makefile ++++ adjtimex-1.23/Makefile +@@ -0,0 +1,70 @@ ++# Generated automatically from Makefile.in by configure. ++#### Start of system configuration section. -*-makefile-*- #### ++ srcdir = . ++ ++VERSION=1.22 ++ ++CFLAGS = -g -O2 -Wall ++prefix = /usr ++man1dir=${prefix}/share/man/man1 ++exec_prefix = ${prefix} ++bindir=/sbin ++ ++INSTALL=/usr/bin/install -c ++ ++# Extension (not including `.') for the manual page filenames. ++manext = 8 ++# Where to put the manual pages. ++mandir = $(prefix)/share/man/man$(manext) ++ ++#### End of system configuration section. #### ++ ++SHELL = /bin/sh ++ ++SRC = adjtimex.c adjtimex.8 mat.c mat.h install-sh configure.in \ ++ configure Makefile.in README README.ru adjtimex.lsm adjtimex.lsm.in \ ++ COPYING COPYRIGHT ChangeLog ++ ++all: adjtimex adjtimex.lsm ++ ++adjtimex: adjtimex.c mat.o ++ $(CC) $(CFLAGS) -I. -DVERSION=\"$(VERSION)\" -o adjtimex adjtimex.c \ ++ mat.o -lm ++ ++adjtimex.lsm: adjtimex.lsm.in Makefile.in ++ sed -e 's/@VERSION@/$(VERSION)/' \ ++ -e "s/@DATE@/`date +%d%b%y|tr [a-z] [A-Z]`/" \ ++ adjtimex.lsm.in >adjtimex.lsm ++ ++mat.o: mat.c ++ $(CC) $(CFLAGS) -c mat.c ++ ++install: all ++ $(INSTALL) -g bin -m 755 -o root adjtimex $(bindir)/adjtimex ++ $(INSTALL) -d -g root -m 755 -o root $(mandir) ++ -$(INSTALL) -g root -m 644 -o root $(srcdir)/adjtimex.8 \ ++ $(mandir)/adjtimex.$(manext) ++ ++uninstall: ++ rm -f $(bindir)/adjtimex $(mandir)/adjtimex.$(manext) ++ ++clean: ++ rm -f core *.o ++veryclean: clean ++ rm -f adjtimex ++ ++shar: $(SRC) ++ distname=adjtimex-$(VERSION); \ ++ shar $(SRC) >$$distname.shar ++ ++dist: $(SRC) ++ distname=adjtimex-$(VERSION); \ ++ rm -fr $$distname; \ ++ mkdir $$distname; \ ++ for file in $(SRC); do \ ++ ln $$file $$distname/$$file \ ++ || { echo copying $$file instead; cp -p $$file $$distname/$$file;}; \ ++ done; \ ++ chmod -R a+rX $$distname; \ ++ tar -chz -f $$distname.tar.gz $$distname; \ ++ rm -fr $$distname diff --git a/source/a/util-linux-ng/doinst.sh b/source/a/util-linux-ng/doinst.sh new file mode 100644 index 000000000..678c228f1 --- /dev/null +++ b/source/a/util-linux-ng/doinst.sh @@ -0,0 +1,23 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.serial.new: +if [ -e etc/rc.d/rc.serial ]; then + cp -a etc/rc.d/rc.serial etc/rc.d/rc.serial.new.incoming + cat etc/rc.d/rc.serial.new > etc/rc.d/rc.serial.new.incoming + mv etc/rc.d/rc.serial.new.incoming etc/rc.d/rc.serial.new +fi + +config etc/rc.d/rc.serial.new +config etc/serial.conf.new + diff --git a/source/a/util-linux-ng/net-tools.diff b/source/a/util-linux-ng/net-tools.diff new file mode 100644 index 000000000..a19af2026 --- /dev/null +++ b/source/a/util-linux-ng/net-tools.diff @@ -0,0 +1,77 @@ +--- ./config.h.orig Wed Mar 21 21:23:31 2001 ++++ ./config.h Wed Mar 21 21:23:12 2001 +@@ -0,0 +1,74 @@ ++/* ++* config.h Automatically generated configuration includefile ++* ++* NET-TOOLS A collection of programs that form the base set of the ++* NET-3 Networking Distribution for the LINUX operating ++* system. ++* ++* DO NOT EDIT DIRECTLY ++* ++*/ ++ ++/* ++ * ++ * Internationalization ++ * ++ * The net-tools package has currently been translated to French, ++ * German and Brazilian Portugese. Other translations are, of ++ * course, welcome. Answer `n' here if you have no support for ++ * internationalization on your system. ++ * ++ */ ++#define I18N 1 ++ ++/* ++ * ++ * Protocol Families. ++ * ++ */ ++#define HAVE_AFUNIX 1 ++#define HAVE_AFINET 1 ++#define HAVE_AFINET6 1 ++#define HAVE_AFIPX 1 ++#define HAVE_AFATALK 1 ++#define HAVE_AFAX25 1 ++#define HAVE_AFNETROM 1 ++#define HAVE_AFROSE 0 ++#define HAVE_AFX25 1 ++#define HAVE_AFECONET 0 ++#define HAVE_AFDECnet 0 ++#define HAVE_AFASH 0 ++ ++/* ++ * ++ * Device Hardware types. ++ * ++ */ ++#define HAVE_HWETHER 1 ++#define HAVE_HWARC 1 ++#define HAVE_HWSLIP 1 ++#define HAVE_HWPPP 1 ++#define HAVE_HWTUNNEL 1 ++#define HAVE_HWSTRIP 1 ++#define HAVE_HWTR 1 ++#define HAVE_HWAX25 1 ++#define HAVE_HWROSE 0 ++#define HAVE_HWNETROM 1 ++#define HAVE_HWX25 1 ++#define HAVE_HWFR 1 ++#define HAVE_HWSIT 0 ++#define HAVE_HWFDDI 0 ++#define HAVE_HWHIPPI 0 ++#define HAVE_HWASH 0 ++#define HAVE_HWHDLCLAPB 0 ++#define HAVE_HWIRDA 1 ++#define HAVE_HWEC 0 ++ ++/* ++ * ++ * Other Features. ++ * ++ */ ++#define HAVE_FW_MASQUERADE 1 ++#define HAVE_IP_TOOLS 1 ++#define HAVE_MII 1 diff --git a/source/a/util-linux-ng/net-tools_1.60-19.diff b/source/a/util-linux-ng/net-tools_1.60-19.diff new file mode 100644 index 000000000..f754f02d5 --- /dev/null +++ b/source/a/util-linux-ng/net-tools_1.60-19.diff @@ -0,0 +1,29401 @@ +--- net-tools-1.60.orig/lib/ether.c ++++ net-tools-1.60/lib/ether.c +@@ -2,7 +2,7 @@ + * lib/ether.c This file contains an implementation of the "Ethernet" + * support functions. + * +- * Version: $Id: ether.c,v 1.7 1999/09/27 11:00:47 philip Exp $ ++ * Version: $Id: ether.c,v 1.8 2002/07/30 05:17:29 ecki Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * Copyright 1993 MicroWalt Corporation +@@ -39,7 +39,7 @@ + { + static char buff[64]; + +- snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X", ++ snprintf(buff, sizeof(buff), "%02x:%02x:%02x:%02x:%02x:%02x", + (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), + (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) + ); +--- net-tools-1.60.orig/lib/inet6.c ++++ net-tools-1.60/lib/inet6.c +@@ -3,7 +3,7 @@ + * support functions for the net-tools. + * (most of it copied from lib/inet.c 1.26). + * +- * Version: $Id: inet6.c,v 1.10 2000/10/28 11:04:00 pb Exp $ ++ * Version: $Id: inet6.c,v 1.12 2002/12/10 01:03:09 ecki Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * Copyright 1993 MicroWalt Corporation +@@ -44,6 +44,21 @@ + + extern int h_errno; /* some netdb.h versions don't export this */ + ++char * fix_v4_address(char *buf, struct in6_addr *in6) ++{ ++ if (IN6_IS_ADDR_V4MAPPED(in6->s6_addr)) { ++ char *s =strchr(buf, '.'); ++ if (s) { ++ while (s > buf && *s != ':') ++ --s; ++ if (*s == ':') ++s; ++ else s = NULL; ++ } ++ if (s) return s; ++ } ++ return buf; ++} ++ + static int INET6_resolve(char *name, struct sockaddr_in6 *sin6) + { + struct addrinfo req, *ai; +@@ -83,14 +98,14 @@ + return (-1); + } + if (numeric & 0x7FFF) { +- inet_ntop(AF_INET6, &sin6->sin6_addr, name, 80); ++ inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80); + return (0); + } + if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) { + if (numeric & 0x8000) + strcpy(name, "default"); + else +- strcpy(name, "*"); ++ strcpy(name, "[::]"); + return (0); + } + +@@ -109,13 +124,14 @@ + } + + ++ + /* Display an Internet socket address. */ + static char *INET6_print(unsigned char *ptr) + { + static char name[80]; + + inet_ntop(AF_INET6, (struct in6_addr *) ptr, name, 80); +- return name; ++ return fix_v4_address(name, (struct in6_addr *)ptr); + } + + +@@ -129,13 +145,14 @@ + return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff)); + if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0) + return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff)); +- return (buff); ++ return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr)); + } + + + static int INET6_getsock(char *bufp, struct sockaddr *sap) + { + struct sockaddr_in6 *sin6; ++ char *p; + + sin6 = (struct sockaddr_in6 *) sap; + sin6->sin6_family = AF_INET6; +@@ -143,7 +160,9 @@ + + if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0) + return (-1); +- ++ p = fix_v4_address(bufp, &sin6->sin6_addr); ++ if (p != bufp) ++ memcpy(bufp, p, strlen(p)+1); + return 16; /* ?;) */ + } + +--- net-tools-1.60.orig/lib/inet6_gr.c ++++ net-tools-1.60/lib/inet6_gr.c +@@ -1,4 +1,4 @@ +-/* ++ /* + Modifications: + 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets, + snprintf instead of sprintf +@@ -71,11 +71,15 @@ + printf(_("INET6 (IPv6) not configured in this system.\n")); + return 1; + } +- printf(_("Kernel IPv6 routing table\n")); + +- printf(_("Destination " +- "Next Hop " +- "Flags Metric Ref Use Iface\n")); ++ if (numeric & RTF_CACHE) ++ printf(_("Kernel IPv6 routing cache\n")); ++ else ++ printf(_("Kernel IPv6 routing table\n")); ++ ++ printf(_("Destination " ++ "Next Hop " ++ "Flag Met Ref Use If\n")); + + while (fgets(buff, 1023, fp)) { + num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %s\n", +@@ -87,13 +91,19 @@ + &slen, + naddr6p[0], naddr6p[1], naddr6p[2], naddr6p[3], + naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7], +- &metric, &use, &refcnt, &iflags, iface); ++ &metric, &refcnt, &use, &iflags, iface); + #if 0 + if (num < 23) + continue; + #endif +- if (!(iflags & RTF_UP)) +- continue; ++ if (iflags & RTF_CACHE) { ++ if (!(numeric & RTF_CACHE)) ++ continue; ++ } else { ++ if (numeric & RTF_CACHE) ++ continue; ++ } ++ + /* Fetch and resolve the target address. */ + snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s", + addr6p[0], addr6p[1], addr6p[2], addr6p[3], +@@ -112,7 +122,12 @@ + inet6_aftype.sprint((struct sockaddr *) &snaddr6, 1)); + + /* Decode the flags. */ +- strcpy(flags, "U"); ++ ++ flags[0]=0; ++ if (iflags & RTF_UP) ++ strcat(flags, "U"); ++ if (iflags & RTF_REJECT) ++ strcat(flags, "!"); + if (iflags & RTF_GATEWAY) + strcat(flags, "G"); + if (iflags & RTF_HOST) +@@ -123,9 +138,19 @@ + strcat(flags, "A"); + if (iflags & RTF_CACHE) + strcat(flags, "C"); ++ if (iflags & RTF_ALLONLINK) ++ strcat(flags, "a"); ++ if (iflags & RTF_EXPIRES) ++ strcat(flags, "e"); ++ if (iflags & RTF_MODIFIED) ++ strcat(flags, "m"); ++ if (iflags & RTF_NONEXTHOP) ++ strcat(flags, "n"); ++ if (iflags & RTF_FLOW) ++ strcat(flags, "f"); + + /* Print the info. */ +- printf("%-43s %-39s %-5s %-6d %-2d %7d %-8s\n", ++ printf("%-30s %-26s %-4s %-3d %-1d%6d %s\n", + addr6, naddr6, flags, metric, refcnt, use, iface); + } + +@@ -144,8 +169,7 @@ + char addr6p[8][5], haddrp[6][3]; + + if (!fp) { +- ESYSNOT("nd_print", "ND Table"); +- return 1; ++ return rprint_fib6(ext, numeric | RTF_CACHE); + } + printf(_("Kernel IPv6 Neighbour Cache\n")); + +--- net-tools-1.60.orig/lib/ipx_gr.c ++++ net-tools-1.60/lib/ipx_gr.c +@@ -38,21 +38,27 @@ + char net[128], router_net[128]; + char router_node[128]; + int num; +- FILE *fp = fopen(_PATH_PROCNET_IPX_ROUTE, "r"); ++ FILE *fp; + struct aftype *ap; + struct sockaddr sa; + +- if ((ap = get_afntype(AF_IPX)) == NULL) { +- EINTERN("lib/ipx_rt.c", "AF_IPX missing"); +- return (-1); +- } ++ fp = fopen(_PATH_PROCNET_IPX_ROUTE1, "r"); + + if (!fp) { +- perror(_PATH_PROCNET_IPX_ROUTE); +- printf(_("IPX not configured in this system.\n")); ++ fp = fopen(_PATH_PROCNET_IPX_ROUTE2, "r"); ++ } ++ ++ if (!fp) { ++ perror(NULL); ++ printf(_("IPX routing not in file %s or %s found.\n"), _PATH_PROCNET_IPX_ROUTE1, _PATH_PROCNET_IPX_ROUTE2); + return 1; + } + ++ if ((ap = get_afntype(AF_IPX)) == NULL) { ++ EINTERN("lib/ipx_rt.c", "AF_IPX missing"); ++ return (-1); ++ } ++ + printf(_("Kernel IPX routing table\n")); /* xxx */ + printf(_("Destination Router Net Router Node\n")); + +--- net-tools-1.60.orig/lib/proc.c ++++ net-tools-1.60/lib/proc.c +@@ -1,11 +1,12 @@ + /* Tolerant /proc file parser. Copyright 1998 Andi Kleen */ +-/* $Id: proc.c,v 1.4 1999/01/05 20:54:00 philip Exp $ */ ++/* $Id: proc.c,v 1.5 2007/12/01 18:44:57 ecki Exp $ */ + /* Fixme: cannot currently cope with removed fields */ + + #include <string.h> + #include <stdarg.h> + #include <stdio.h> + #include <ctype.h> ++#include <unistd.h> + + /* Caller must free return string. */ + +@@ -72,3 +73,22 @@ + va_end(ap); + return flag; + } ++ ++ ++FILE *proc_fopen(const char *name) ++{ ++ static char *buffer; ++ static size_t pagesz; ++ FILE *fd = fopen(name, "r"); ++ ++ if (fd == NULL) ++ return NULL; ++ ++ if (!buffer) { ++ pagesz = getpagesize(); ++ buffer = malloc(pagesz); ++ } ++ ++ setvbuf(fd, buffer, _IOFBF, pagesz); ++ return fd; ++} +--- net-tools-1.60.orig/lib/proc.h ++++ net-tools-1.60/lib/proc.h +@@ -1,5 +1,7 @@ +- +- +-/* Generate a suitable scanf format for a column title line */ ++/* ++ * prototypes for proc.c ++ */ + char *proc_gen_fmt(char *name, int more, FILE * fh,...); + int proc_guess_fmt(char *name, FILE* fh,...); ++FILE *proc_fopen(const char *name); ++ +--- net-tools-1.60.orig/lib/util-ank.c ++++ net-tools-1.60/lib/util-ank.c +@@ -293,7 +293,7 @@ + return 0; + } + +-const char *format_host(int af, void *addr, __u8 *abuf, int alen) ++const char *format_host(int af, void *addr, char *abuf, int alen) + { + #ifdef RESOLVE_HOSTNAMES + if (resolve_hosts) { +--- net-tools-1.60.orig/lib/Makefile ++++ net-tools-1.60/lib/Makefile +@@ -16,7 +16,7 @@ + # + + +-HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o ++HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o eui64.o + AFOBJS = unix.o inet.o inet6.o ax25.o ipx.o ddp.o ipx.o netrom.o af.o rose.o econet.o x25.o + AFGROBJS = inet_gr.o inet6_gr.o ipx_gr.o ddp_gr.o netrom_gr.o ax25_gr.o rose_gr.o getroute.o x25_gr.o + AFSROBJS = inet_sr.o inet6_sr.o netrom_sr.o ipx_sr.o setroute.o x25_sr.o +--- net-tools-1.60.orig/lib/ddp_gr.c ++++ net-tools-1.60/lib/ddp_gr.c +@@ -1,3 +1,20 @@ ++/* ++ * lib/ddp_gr.c Prinbting of DDP (AppleTalk) routing table ++ * used by the NET-LIB. ++ * ++ * NET-LIB ++ * ++ * Version: $Id: ddp_gr.c,v 1.4 2002/06/02 05:25:15 ecki Exp $ ++ * ++ * Author: Ajax <ajax@firest0rm.org> ++ * ++ * Modification: ++ * 2002-06-02 integrated into main source by Bernd Eckenfels ++ * ++ */ ++ ++/* TODO: name lookups (/etc/atalk.names? NBP?) */ ++ + #include "config.h" + + #if HAVE_AFATALK +@@ -16,9 +33,61 @@ + #include "pathnames.h" + #include "intl.h" + ++/* stolen from inet_gr.c */ ++#define flags_decode(i,o) do { \ ++ o[0] = '\0'; \ ++ if (i & RTF_UP) strcat(o, "U"); \ ++ if (i & RTF_GATEWAY) strcat(o, "G"); \ ++ if (i & RTF_REJECT) strcat(o, "!"); \ ++ if (i & RTF_HOST) strcat(o, "H"); \ ++ if (i & RTF_REINSTATE) strcat(o, "R"); \ ++ if (i & RTF_DYNAMIC) strcat(o, "D"); \ ++ if (i & RTF_MODIFIED) strcat(o, "M"); \ ++ if (i & RTF_DEFAULT) strcat(o, "d"); \ ++ if (i & RTF_ALLONLINK) strcat(o, "a"); \ ++ if (i & RTF_ADDRCONF) strcat(o, "c"); \ ++ if (i & RTF_NONEXTHOP) strcat(o, "o"); \ ++ if (i & RTF_EXPIRES) strcat(o, "e"); \ ++ if (i & RTF_CACHE) strcat(o, "c"); \ ++ if (i & RTF_FLOW) strcat(o, "f"); \ ++ if (i & RTF_POLICY) strcat(o, "p"); \ ++ if (i & RTF_LOCAL) strcat(o, "l"); \ ++ if (i & RTF_MTU) strcat(o, "u"); \ ++ if (i & RTF_WINDOW) strcat(o, "w"); \ ++ if (i & RTF_IRTT) strcat(o, "i"); \ ++ if (i & RTF_NOTCACHED) strcat(o, "n"); \ ++ } while (0) ++ + int DDP_rprint(int options) + { +- fprintf(stderr, _("Routing table for `ddp' not yet supported.\n")); +- return (1); ++ FILE *fp; ++ char *dest, *gw, *dev, *flags; ++ char oflags[32]; ++ char *hdr = "Destination Gateway Device Flags"; ++ ++ fp = fopen(_PATH_PROCNET_ATALK_ROUTE, "r"); ++ ++ if (!fp) { ++ perror("Error opening " _PATH_PROCNET_ATALK_ROUTE); ++ fprintf(stderr, "DDP (AppleTalk) not configured on this system.\n"); ++ return 1; ++ } ++ ++ fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev); ++ free(dest); free(gw); free(dev); free(flags); ++ ++ printf("%s\n", hdr); ++ ++ while (fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev) == 4) { ++ int iflags = atoi(flags); ++ flags_decode(iflags, oflags); ++ printf("%-16s%-16s%-16s%-s\n", dest, gw, dev, oflags); ++ free(dest); free(gw); free(dev); free(flags); ++ } ++ ++ fclose(fp); ++ ++ return 0; ++ + } + #endif +--- net-tools-1.60.orig/lib/hw.c ++++ net-tools-1.60/lib/hw.c +@@ -2,7 +2,7 @@ + * lib/hw.c This file contains the top-level part of the hardware + * support functions module. + * +- * Version: $Id: hw.c,v 1.17 2000/05/20 13:38:10 pb Exp $ ++ * Version: $Id: hw.c,v 1.18 2001/11/12 02:12:05 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de> + * +@@ -73,6 +73,8 @@ + + extern struct hwtype ec_hwtype; + ++extern struct hwtype eui64_hwtype; ++ + static struct hwtype *hwtypes[] = + { + +@@ -144,6 +146,9 @@ + #if HAVE_HWX25 + &x25_hwtype, + #endif ++#if HAVE_HWEUI64 ++ &eui64_hwtype, ++#endif + &unspec_hwtype, + NULL + }; +@@ -217,6 +222,9 @@ + #if HAVE_HWEC + ec_hwtype.title = _("Econet"); + #endif ++#if HAVE_HWEUI64 ++ eui64_hwtype.title = _("Generic EUI-64"); ++#endif + sVhwinit = 1; + } + +--- net-tools-1.60.orig/lib/inet.c ++++ net-tools-1.60/lib/inet.c +@@ -3,7 +3,7 @@ + * support functions for the net-tools. + * (NET-3 base distribution). + * +- * Version: $Id: inet.c,v 1.13 1999/12/11 13:35:56 freitag Exp $ ++ * Version: $Id: inet.c,v 1.14 2003/10/19 11:57:37 pb Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * Copyright 1993 MicroWalt Corporation +@@ -144,7 +144,7 @@ + struct hostent *ent; + struct netent *np; + struct addr *pn; +- unsigned long ad, host_ad; ++ u_int32_t ad, host_ad; + int host = 0; + + /* Grmpf. -FvK */ +@@ -155,7 +155,7 @@ + errno = EAFNOSUPPORT; + return (-1); + } +- ad = (unsigned long) sin->sin_addr.s_addr; ++ ad = sin->sin_addr.s_addr; + #ifdef DEBUG + fprintf (stderr, "rresolve: %08lx, mask %08x, num %08x \n", ad, netmask, numeric); + #endif +--- net-tools-1.60.orig/lib/inet_sr.c ++++ net-tools-1.60/lib/inet_sr.c +@@ -3,6 +3,7 @@ + 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets + 1999-10-07 - Kurt Garloff - for -host and gws: prefer host names + over networks (or even reject) ++ 2003-10-11 - Maik Broemme - gcc 3.x warnign fixes (default: break;) + */ + + #include "config.h" +@@ -104,7 +105,6 @@ + isnet = 1; break; + case 2: + isnet = 0; break; +- default: + } + + /* Fill in the other fields. */ +--- net-tools-1.60.orig/lib/ipx.c ++++ net-tools-1.60/lib/ipx.c +@@ -133,6 +133,9 @@ + char *ep; + int nbo; + ++ if (!sai) ++ return (-1); ++ + sai->sipx_family = AF_IPX; + sai->sipx_network = htonl(0); + sai->sipx_node[0] = sai->sipx_node[1] = sai->sipx_node[2] = +--- net-tools-1.60.orig/lib/interface.c ++++ net-tools-1.60/lib/interface.c +@@ -7,7 +7,7 @@ + 8/2000 Andi Kleen make the list operations a bit more efficient. + People are crazy enough to use thousands of aliases now. + +- $Id: interface.c,v 1.14 2001/02/10 19:31:15 pb Exp $ ++ $Id: interface.c,v 1.28 2003/05/29 02:09:14 ecki Exp $ + */ + + #include "config.h" +@@ -23,6 +23,7 @@ + #include <string.h> + #include <unistd.h> + #include <ctype.h> ++#include <string.h> + + #if HAVE_AFIPX + #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) +@@ -87,14 +88,20 @@ + + int ife_short; + ++int if_list_all = 0; /* do we have requested the complete proc list, yet? */ ++ + static struct interface *int_list, *int_last; + + static int if_readlist_proc(char *); + +-static struct interface *add_interface(char *name) ++static struct interface *if_cache_add(char *name) + { + struct interface *ife, **nextp, *new; + ++ if (!int_list) ++ int_last = NULL; ++ ++ /* the cache is sorted, so if we hit a smaller if, exit */ + for (ife = int_last; ife; ife = ife->prev) { + int n = nstrcmp(ife->name, name); + if (n == 0) +@@ -104,7 +111,7 @@ + } + new(new); + safe_strncpy(new->name, name, IFNAMSIZ); +- nextp = ife ? &ife->next : &int_list; ++ nextp = ife ? &ife->next : &int_list; // keep sorting + new->prev = ife; + new->next = *nextp; + if (new->next) +@@ -117,19 +124,22 @@ + + struct interface *lookup_interface(char *name) + { +- struct interface *ife = NULL; +- +- if (if_readlist_proc(name) < 0) +- return NULL; +- ife = add_interface(name); +- return ife; ++ /* if we have read all, use it */ ++ if (if_list_all) ++ return if_cache_add(name); ++ ++ /* otherwise we read a limited list */ ++ if (if_readlist_proc(name) < 0) ++ return NULL; ++ ++ return if_cache_add(name); + } + + int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie) + { + struct interface *ife; + +- if (!int_list && (if_readlist() < 0)) ++ if (!if_list_all && (if_readlist() < 0)) + return -1; + for (ife = int_list; ife; ife = ife->next) { + int err = doit(ife, cookie); +@@ -139,13 +149,15 @@ + return 0; + } + +-int free_interface_list(void) ++int if_cache_free(void) + { + struct interface *ife; + while ((ife = int_list) != NULL) { + int_list = ife->next; + free(ife); + } ++ int_last = NULL; ++ if_list_all = 0; + return 0; + } + +@@ -180,7 +192,7 @@ + } + if (ifc.ifc_len == sizeof(struct ifreq) * numreqs) { + /* assume it overflowed and try again */ +- numreqs += 10; ++ numreqs *= 2; + continue; + } + break; +@@ -188,7 +200,7 @@ + + ifr = ifc.ifc_req; + for (n = 0; n < ifc.ifc_len; n += sizeof(struct ifreq)) { +- add_interface(ifr->ifr_name); ++ if_cache_add(ifr->ifr_name); + ifr++; + } + err = 0; +@@ -198,7 +210,7 @@ + return err; + } + +-static char *get_name(char *name, char *p) ++char *get_name(char *name, char *p) + { + while (isspace(*p)) + p++; +@@ -206,16 +218,19 @@ + if (isspace(*p)) + break; + if (*p == ':') { /* could be an alias */ +- char *dot = p, *dotname = name; +- *name++ = *p++; +- while (isdigit(*p)) +- *name++ = *p++; +- if (*p != ':') { /* it wasn't, backup */ +- p = dot; +- name = dotname; ++ char *dot = p++; ++ while (*p && isdigit(*p)) p++; ++ if (*p == ':') { ++ /* Yes it is, backup and copy it. */ ++ p = dot; ++ *name++ = *p++; ++ while (*p && isdigit(*p)) { ++ *name++ = *p++; ++ } ++ } else { ++ /* No, it isn't */ ++ p = dot; + } +- if (*p == '\0') +- return NULL; + p++; + break; + } +@@ -225,7 +240,7 @@ + return p; + } + +-static int procnetdev_version(char *buf) ++int procnetdev_version(char *buf) + { + if (strstr(buf, "compressed")) + return 3; +@@ -234,12 +249,12 @@ + return 1; + } + +-static int get_dev_fields(char *bp, struct interface *ife) ++int get_dev_fields(char *bp, struct interface *ife) + { + switch (procnetdev_vsn) { + case 3: + sscanf(bp, +- "%llu %llu %lu %lu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu %lu", ++ "%Lu %Lu %lu %lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu %lu", + &ife->stats.rx_bytes, + &ife->stats.rx_packets, + &ife->stats.rx_errors, +@@ -259,7 +274,7 @@ + &ife->stats.tx_compressed); + break; + case 2: +- sscanf(bp, "%llu %llu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu", ++ sscanf(bp, "%Lu %Lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu", + &ife->stats.rx_bytes, + &ife->stats.rx_packets, + &ife->stats.rx_errors, +@@ -277,7 +292,7 @@ + ife->stats.rx_multicast = 0; + break; + case 1: +- sscanf(bp, "%llu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu", ++ sscanf(bp, "%Lu %lu %lu %lu %lu %Lu %lu %lu %lu %lu %lu", + &ife->stats.rx_packets, + &ife->stats.rx_errors, + &ife->stats.rx_dropped, +@@ -300,22 +315,16 @@ + + static int if_readlist_proc(char *target) + { +- static int proc_read; + FILE *fh; + char buf[512]; + struct interface *ife; + int err; + +- if (proc_read) +- return 0; +- if (!target) +- proc_read = 1; +- + fh = fopen(_PATH_PROCNET_DEV, "r"); + if (!fh) { + fprintf(stderr, _("Warning: cannot open %s (%s). Limited output.\n"), + _PATH_PROCNET_DEV, strerror(errno)); +- return if_readconf(); ++ return -2; + } + fgets(buf, sizeof buf, fh); /* eat line */ + fgets(buf, sizeof buf, fh); +@@ -350,7 +359,7 @@ + while (fgets(buf, sizeof buf, fh)) { + char *s, name[IFNAMSIZ]; + s = get_name(name, buf); +- ife = add_interface(name); ++ ife = if_cache_add(name); + get_dev_fields(s, ife); + ife->statistics_valid = 1; + if (target && !strcmp(target,name)) +@@ -359,7 +368,6 @@ + if (ferror(fh)) { + perror(_PATH_PROCNET_DEV); + err = -1; +- proc_read = 0; + } + + #if 0 +@@ -371,9 +379,16 @@ + + int if_readlist(void) + { +- int err = if_readlist_proc(NULL); +- if (!err) +- err = if_readconf(); ++ /* caller will/should check not to call this too often ++ * (i.e. only if if_list_all == 0 ++ */ ++ int err = 0; ++ ++ err |= if_readlist_proc(NULL); ++ err |= if_readconf(); ++ ++ if_list_all = 1; ++ + return err; + } + +@@ -579,11 +594,11 @@ + + void ife_print_short(struct interface *ptr) + { +- printf("%-5.5s ", ptr->name); +- printf("%5d %3d", ptr->mtu, ptr->metric); ++ printf("%-9s ", ptr->name); ++ printf("%5d %-2d ", ptr->mtu, ptr->metric); + /* If needed, display the interface statistics. */ + if (ptr->statistics_valid) { +- printf("%8llu %6lu %6lu %6lu", ++ printf("%8llu %6lu %6lu %-6lu ", + ptr->stats.rx_packets, ptr->stats.rx_errors, + ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors); + printf("%8llu %6lu %6lu %6lu ", +@@ -636,8 +651,8 @@ + int hf; + int can_compress = 0; + unsigned long long rx, tx, short_rx, short_tx; +- char Rext[5]="b"; +- char Text[5]="b"; ++ const char *Rext = "B"; ++ const char *Text = "B"; + + #if HAVE_AFIPX + static struct aftype *ipxtype = NULL; +@@ -670,7 +685,7 @@ + if (hw == NULL) + hw = get_hwntype(-1); + +- printf(_("%-9.9s Link encap:%s "), ptr->name, hw->title); ++ printf(_("%-9s Link encap:%s "), ptr->name, hw->title); + /* For some hardware types (eg Ash, ATM) we don't print the + hardware address if it's null. */ + if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) && +@@ -843,10 +858,38 @@ + tx = ptr->stats.tx_bytes; + short_rx = rx * 10; + short_tx = tx * 10; +- if (rx > 1048576) { short_rx /= 1048576; strcpy(Rext, "Mb"); } +- else if (rx > 1024) { short_rx /= 1024; strcpy(Rext, "Kb"); } +- if (tx > 1048576) { short_tx /= 1048576; strcpy(Text, "Mb"); } +- else if (tx > 1024) { short_tx /= 1024; strcpy(Text, "Kb"); } ++ if (rx > 1125899906842624ull) { ++ short_rx /= 1125899906842624ull; ++ Rext = "PiB"; ++ } else if (rx > 1099511627776ull) { ++ short_rx /= 1099511627776ull; ++ Rext = "TiB"; ++ } else if (rx > 1073741824ull) { ++ short_rx /= 1073741824ull; ++ Rext = "GiB"; ++ } else if (rx > 1048576) { ++ short_rx /= 1048576; ++ Rext = "MiB"; ++ } else if (rx > 1024) { ++ short_rx /= 1024; ++ Rext = "KiB"; ++ } ++ if (tx > 1125899906842624ull) { ++ short_tx /= 1125899906842624ull; ++ Text = "PiB"; ++ } else if (tx > 1099511627776ull) { ++ short_tx /= 1099511627776ull; ++ Text = "TiB"; ++ } else if (tx > 1073741824ull) { ++ short_tx /= 1073741824ull; ++ Text = "GiB"; ++ } else if (tx > 1048576) { ++ short_tx /= 1048576; ++ Text = "MiB"; ++ } else if (tx > 1024) { ++ short_tx /= 1024; ++ Text = "KiB"; ++ } + + printf(" "); + printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"), +@@ -867,7 +910,7 @@ + } + + if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma || +- ptr->map.base_addr)) { ++ ptr->map.base_addr >= 0x100)) { + printf(" "); + if (ptr->map.irq) + printf(_("Interrupt:%d "), ptr->map.irq); +--- net-tools-1.60.orig/lib/net-features.h ++++ net-tools-1.60/lib/net-features.h +@@ -295,6 +295,13 @@ + "-" + #endif + "HDLC/LAPB " ++ ++#if HAVE_HWEUI64 ++"+" ++#else ++"-" ++#endif ++"EUI64 " + ; + + +--- net-tools-1.60.orig/lib/nstrcmp.c ++++ net-tools-1.60/lib/nstrcmp.c +@@ -1,34 +1,157 @@ + /* Copyright 1998 by Andi Kleen. Subject to the GPL. */ +-/* $Id: nstrcmp.c,v 1.2 1998/11/15 20:11:38 freitag Exp $ */ ++/* rewritten by bernd eckenfels because of complicated alias semantic */ ++/* $Id: nstrcmp.c,v 1.4 2004/06/03 22:49:17 ecki Exp $ */ + #include <ctype.h> + #include <stdlib.h> ++#include <string.h> + #include "util.h" + +-/* like strcmp(), but knows about numbers */ +-int nstrcmp(const char *astr, const char *b) ++ ++/* return numerical :999 suffix or null. sideeffect: replace ':' with \0 */ ++char* cutalias(char* name) + { +- const char *a = astr; ++ int digit = 0; ++ int pos; ++ ++ for(pos=strlen(name); pos>0; pos--) ++ { ++ if (name[pos-1]==':' && digit) ++ { ++ name[pos-1]='\0'; ++ return name+pos; ++ } ++ if (!isdigit(name[pos-1])) ++ break; ++ digit = 1; ++ } ++ return NULL; ++} + +- while (*a == *b) { +- if (*a == '\0') +- return 0; +- a++; +- b++; +- } +- if (isdigit(*a)) { +- if (!isdigit(*b)) +- return -1; +- while (a > astr) { +- a--; +- if (!isdigit(*a)) { +- a++; +- break; +- } +- if (!isdigit(*b)) +- return -1; +- b--; ++ ++/* return index of last non digit or -1 if it does not end with digits */ ++int rindex_nondigit(char *name) ++{ ++ int pos = strlen(name); ++ ++ for(pos=strlen(name); pos>0; pos--) ++ { ++ if (!isdigit(name[pos-1])) ++ return pos; + } +- return atoi(a) > atoi(b) ? 1 : -1; +- } +- return *a - *b; ++ return 0; ++} ++ ++ ++/* like strcmp(), but knows about numbers and ':' alias suffix */ ++int nstrcmp(const char *ap, const char *bp) ++{ ++ char *a = (char*)strdup(ap); ++ char *b = (char*)strdup(bp); ++ char *an, *bn; ++ int av = 0, bv = 0; ++ char *aalias=cutalias(a); ++ char *balias=cutalias(b); ++ int aindex=rindex_nondigit(a); ++ int bindex=rindex_nondigit(b); ++ int complen=(aindex<bindex)?aindex:bindex; ++ int res = strncmp(a, b, complen); ++ ++ if (res != 0) ++ { free(a); free(b); return res; } ++ ++ if (aindex > bindex) ++ { free(a); free(b); return 1; } ++ ++ if (aindex < bindex) ++ { free(a); free(b); return -1; } ++ ++ an = a+aindex; ++ bn = b+bindex; ++ ++ av = atoi(an); ++ bv = atoi(bn); ++ ++ if (av < bv) ++ { free(a); free(b); return -1; } ++ ++ if (av > bv) ++ { free(a); free(b); return 1; } ++ ++ av = -1; ++ if (aalias != NULL) ++ av = atoi(aalias); ++ ++ bv = -1; ++ if (balias != NULL) ++ bv = atoi(balias); ++ ++ free(a); free(b); ++ ++ if (av < bv) ++ return -1; ++ ++ if (av > bv) ++ return 1; ++ ++ return 0; ++} ++ ++ ++#ifdef NSTRCMP_TEST ++ ++int cs(int s) ++{ ++ if (s < 0) return -1; ++ if (s > 0) return 1; ++ return 0; ++} ++ ++ ++int dotest(char* a, char* b, int exp) ++{ ++ int res = nstrcmp(a, b); ++ int err = (cs(res) != cs(exp)); ++ printf("nstrcmp(\"%s\", \"%s\")=%d %d %s\n", a, b, res, exp, err?"WRONG":"OK"); ++ return err; + } ++ ++int main() ++{ ++ int err = 0; ++ ++ err |= dotest("eth1", "eth1", 0); ++ err |= dotest("eth0:1", "eth0:1", 0); ++ err |= dotest("lan", "lan", 0); ++ err |= dotest("100", "100", 0); ++ err |= dotest("", "", 0); ++ err |= dotest(":", ":", 0); ++ err |= dotest("a:b:c", "a:b:c", 0); ++ err |= dotest("a:", "a:", 0); ++ err |= dotest(":a", ":a", 0); ++ ++ err |= dotest("a", "aa", -1); ++ err |= dotest("eth0", "eth1", -1); ++ err |= dotest("eth1", "eth20", -1); ++ err |= dotest("eth20", "eth100", -1); ++ err |= dotest("eth1", "eth13", -1); ++ err |= dotest("eth", "eth2", -1); ++ err |= dotest("eth0:1", "eth0:2", -1); ++ err |= dotest("eth1:10", "eth13:10", -1); ++ err |= dotest("eth1:1", "eth1:13", -1); ++ err |= dotest("a", "a:", -1); ++ ++ err |= dotest("aa", "a", 1); ++ err |= dotest("eth2", "eth1", 1); ++ err |= dotest("eth13", "eth1", 1); ++ err |= dotest("eth2", "eth", 1); ++ err |= dotest("eth2:10", "eth2:1", 1); ++ err |= dotest("eth2:5", "eth2:4", 1); ++ err |= dotest("eth3:2", "eth2:3", 1); ++ err |= dotest("eth13:1", "eth1:0", 1); ++ err |= dotest("a:", "a", 1); ++ err |= dotest("a1b12", "a1b2", 1); ++ ++ return err; ++} ++ ++#endif +--- net-tools-1.60.orig/lib/pathnames.h ++++ net-tools-1.60/lib/pathnames.h +@@ -1,4 +1,3 @@ +- + /* + * lib/pathnames.h This file contains the definitions of the path + * names used by the NET-LIB. +@@ -29,8 +28,10 @@ + #define _PATH_PROCNET_NR_NODES "/proc/net/nr_nodes" + #define _PATH_PROCNET_ARP "/proc/net/arp" + #define _PATH_PROCNET_AX25 "/proc/net/ax25" +-#define _PATH_PROCNET_IPX "/proc/net/ipx" +-#define _PATH_PROCNET_IPX_ROUTE "/proc/net/ipx_route" ++#define _PATH_PROCNET_IPX_SOCKET1 "/proc/net/ipx/socket" ++#define _PATH_PROCNET_IPX_SOCKET2 "/proc/net/ipx" ++#define _PATH_PROCNET_IPX_ROUTE1 "/proc/net/ipx/route" ++#define _PATH_PROCNET_IPX_ROUTE2 "/proc/net/ipx_route" + #define _PATH_PROCNET_ATALK "/proc/net/appletalk" + #define _PATH_PROCNET_IP_BLK "/proc/net/ip_block" + #define _PATH_PROCNET_IP_FWD "/proc/net/ip_forward" +@@ -45,6 +46,7 @@ + #define _PATH_PROCNET_X25 "/proc/net/x25" + #define _PATH_PROCNET_X25_ROUTE "/proc/net/x25_routes" + #define _PATH_PROCNET_DEV_MCAST "/proc/net/dev_mcast" ++#define _PATH_PROCNET_ATALK_ROUTE "/proc/net/atalk_route" + + /* pathname for the netlink device */ + #define _PATH_DEV_ROUTE "/dev/route" +--- net-tools-1.60.orig/lib/tr.c ++++ net-tools-1.60/lib/tr.c +@@ -2,7 +2,7 @@ + * lib/tr.c This file contains an implementation of the "Tokenring" + * support functions. + * +- * Version: $Id: tr.c,v 1.8 2000/02/02 08:56:30 freitag Exp $ ++ * Version: $Id: tr.c,v 1.9 2005/05/16 03:15:12 ecki Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * Copyright 1993 MicroWalt Corporation +@@ -30,8 +30,14 @@ + #include "net-support.h" + #include "pathnames.h" + #include "intl.h" ++#include "util.h" + ++ ++/* actual definition at the end of file */ + extern struct hwtype tr_hwtype; ++#ifdef ARPHRD_IEEE802_TR ++extern struct hwtype tr_hwtype1; ++#endif + + static char *pr_tr(unsigned char *ptr) + { +@@ -42,7 +48,7 @@ + (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) + ); + return (buff); +-} ++ } + + + static int in_tr(char *bufp, struct sockaddr *sap) +@@ -51,7 +57,17 @@ + char c, *orig; + int i, val; + ++#ifdef ARPHRD_IEEE802_TR ++ if (kernel_version() < KRELEASE(2,3,30)) { ++ sap->sa_family = tr_hwtype.type; ++ } else { ++ sap->sa_family = tr_hwtype1.type; ++ } ++#else + sap->sa_family = tr_hwtype.type; ++ #warning "Limited functionality, no support for ARPHRD_IEEE802_TR (old kernel headers?)" ++#endif ++ + ptr = sap->sa_data; + + i = 0; +--- net-tools-1.60.orig/lib/util.h ++++ net-tools-1.60/lib/util.h +@@ -14,3 +14,6 @@ + + char *safe_strncpy(char *dst, const char *src, size_t size); + ++ ++#define netmin(a,b) ((a)<(b) ? (a) : (b)) ++#define netmax(a,b) ((a)>(b) ? (a) : (b)) +--- net-tools-1.60.orig/lib/irda.c ++++ net-tools-1.60/lib/irda.c +@@ -1,13 +1,15 @@ + /********************************************************************* + * + * Filename: irda.c +- * Version: 0.1 +- * Description: A first attempt to make ifconfig understand IrDA ++ * Version: 0.2 ++ * Description: A second attempt to make ifconfig understand IrDA + * Status: Experimental. + * Author: Dag Brattli <dagb@cs.uit.no> + * Created at: Wed Apr 21 09:03:09 1999 + * Modified at: Wed Apr 21 09:17:05 1999 + * Modified by: Dag Brattli <dagb@cs.uit.no> ++ * Modified at: Wed May 1 11:51:44 CEST 2002 ++ * Modified by: Christoph Bartelmus <christoph@bartelmus.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as +@@ -59,9 +61,9 @@ + */ + static char *irda_print(unsigned char *ptr) + { +- static char buff[8]; ++ static char buff[12]; + +- sprintf(&buff[strlen(buff)], "%02x:%02x:%02x:%02x", ptr[3], ptr[2], ++ snprintf(buff, 12, "%02x:%02x:%02x:%02x", ptr[3], ptr[2], + ptr[1], ptr[0]); + + return (buff); +--- net-tools-1.60.orig/lib/x25_sr.c ++++ net-tools-1.60/lib/x25_sr.c +@@ -67,7 +67,7 @@ + strcpy(target, *args++); + + /* Clean out the x25_route_struct structure. */ +- memset((char *) &rt, 0, sizeof(struct x25_route_struct)); ++ memset((char *) &rt, 0, sizeof(rt)); + + + if ((sigdigits = x25_aftype.input(0, target, (struct sockaddr *)&sx25)) < 0) { +@@ -76,8 +76,8 @@ + } + rt.sigdigits=sigdigits; + +- /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */ +- memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address)); ++ /* this works with 2.4 and 2.6 headers struct x25_address vs. typedef */ ++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(sx25.sx25_addr)); + + while (*args) { + if (!strcmp(*args,"device") || !strcmp(*args,"dev")) { +--- net-tools-1.60.orig/lib/eui64.c ++++ net-tools-1.60/lib/eui64.c +@@ -0,0 +1,155 @@ ++/* ++ * lib/eui64.c This file contains support for generic EUI-64 hw addressing ++ * ++ * Version: $Id: eui64.c,v 1.1 2001/11/12 02:12:05 ecki Exp $ ++ * ++ * Author: Daniel Stodden <stodden@in.tum.de> ++ * Copyright 2001 Daniel Stodden ++ * ++ * blueprinted from ether.c ++ * Copyright 1993 MicroWalt Corporation ++ * ++ * This program is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU General ++ * Public License as published by the Free Software ++ * Foundation; either version 2 of the License, or (at ++ * your option) any later version. ++ */ ++#include "config.h" ++ ++#if HAVE_HWEUI64 ++ ++#include <sys/types.h> ++#include <sys/ioctl.h> ++#include <sys/socket.h> ++#include <net/if_arp.h> ++#include <stdlib.h> ++#include <stdio.h> ++#include <ctype.h> ++#include <errno.h> ++#include <fcntl.h> ++#include <string.h> ++#include <termios.h> ++#include <unistd.h> ++#include "net-support.h" ++#include "pathnames.h" ++#include "intl.h" ++ ++/* ++ * EUI-64 constants ++ */ ++ ++#define EUI64_ALEN 8 ++ ++#ifndef ARPHRD_EUI64 ++#define ARPHRD_EUI64 27 ++#warning "ARPHRD_EUI64 not defined in <net/if_arp.h>. Using private value 27" ++#endif ++ ++struct hwtype eui64_hwtype; ++ ++/* Display an EUI-64 address in readable format. */ ++static char *pr_eui64( unsigned char *ptr ) ++{ ++ static char buff[64]; ++ ++ snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", ++ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), (ptr[3] & 0377), ++ (ptr[4] & 0377), (ptr[5] & 0377), (ptr[6] & 0377), (ptr[7] & 0377) ++ ); ++ return (buff); ++} ++ ++/* Start the PPP encapsulation on the file descriptor. */ ++static int in_eui64( char *bufp, struct sockaddr *sap ) ++{ ++ unsigned char *ptr; ++ char c, *orig; ++ int i; ++ unsigned val; ++ ++ sap->sa_family = eui64_hwtype.type; ++ ptr = sap->sa_data; ++ ++ i = 0; ++ orig = bufp; ++ ++ while ((*bufp != '\0') && (i < EUI64_ALEN)) { ++ val = 0; ++ c = *bufp++; ++ if (isdigit(c)) ++ val = c - '0'; ++ else if (c >= 'a' && c <= 'f') ++ val = c - 'a' + 10; ++ else if (c >= 'A' && c <= 'F') ++ val = c - 'A' + 10; ++ else { ++#ifdef DEBUG ++ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"), ++ orig ); ++#endif ++ errno = EINVAL; ++ return (-1); ++ } ++ ++ val <<= 4; ++ c = *bufp; ++ if (isdigit(c)) ++ val |= c - '0'; ++ else if (c >= 'a' && c <= 'f') ++ val |= c - 'a' + 10; ++ else if (c >= 'A' && c <= 'F') ++ val |= c - 'A' + 10; ++ else if (c == ':' || c == 0) ++ val >>= 4; ++ else { ++#ifdef DEBUG ++ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"), ++ orig ); ++#endif ++ errno = EINVAL; ++ return (-1); ++ } ++ ++ if (c != 0) ++ bufp++; ++ ++ *ptr++ = (unsigned char) (val & 0377); ++ i++; ++ ++ /* We might get a semicolon here - not required. */ ++ if (*bufp == ':') { ++ if (i == EUI64_ALEN) { ++#ifdef DEBUG ++ fprintf(stderr, _("in_eui64(%s): trailing : ignored!\n"), ++ orig) ++#endif ++ ; /* nothing */ ++ } ++ bufp++; ++ } ++ } ++ ++ /* That's it. Any trailing junk? */ ++ if ((i == EUI64_ALEN) && (*bufp != '\0')) { ++#ifdef DEBUG ++ fprintf(stderr, _("in_eui64(%s): trailing junk!\n"), orig); ++ errno = EINVAL; ++ return (-1); ++#endif ++ } ++#ifdef DEBUG ++ fprintf(stderr, "in_eui64(%s): %s\n", orig, pr_eui64(sap->sa_data)); ++#endif ++ ++ return (0); ++} ++ ++struct hwtype eui64_hwtype = ++{ ++ "eui64", NULL, /*"EUI-64 addressing", */ ARPHRD_EUI64, EUI64_ALEN, ++ pr_eui64, in_eui64, NULL, 0 ++}; ++ ++ ++#endif /* HAVE_EUI64 */ +--- net-tools-1.60.orig/rarp.c ++++ net-tools-1.60/rarp.c +@@ -3,7 +3,7 @@ + * that maintains the kernel's RARP cache. It is derived + * from Fred N. van Kempen's arp command. + * +- * Version: $Id: rarp.c,v 1.6 2001/04/08 17:05:05 pb Exp $ ++ * Version: $Id: rarp.c,v 1.9 2007/12/02 02:19:52 ecki Exp $ + * + * Usage: rarp -d hostname Delete entry + * rarp -s hostname ethernet_address Add entry +@@ -40,6 +40,7 @@ + #include "net-support.h" + #include "version.h" + #include "pathnames.h" ++#include "proc.h" + + static char no_rarp_message[] = N_("This kernel does not support RARP.\n"); + +@@ -154,7 +155,7 @@ + + static int display_cache(void) + { +- FILE *fd = fopen(_PATH_PROCNET_RARP, "r"); ++ FILE *fd = proc_fopen(_PATH_PROCNET_RARP); + char buffer[256]; + if (fd == NULL) { + if (errno == ENOENT) +--- net-tools-1.60.orig/slattach.c ++++ net-tools-1.60/slattach.c +@@ -73,7 +73,7 @@ + + + const char *Release = RELEASE, +- *Version = "@(#) slattach 1.21 (1999-11-21)", ++ *Version = "$Id: slattach.c,v 1.11 2005/12/04 05:15:36 ecki Exp $", + *Signature = "net-tools, Fred N. van Kempen et al."; + + +@@ -115,7 +115,7 @@ + int opt_k = 0; /* "keepalive" value */ + #endif + int opt_l = 0; /* "lock it" flag */ +-int opt_L = 0; /* clocal flag */ ++int opt_L = 0; /* 3-wire mode flag */ + int opt_m = 0; /* "set RAW mode" flag */ + int opt_n = 0; /* "set No Mesg" flag */ + #ifdef SIOCSOUTFILL +@@ -342,9 +342,11 @@ + tty->c_oflag = (0); /* output flags */ + tty->c_lflag = (0); /* local flags */ + speed = (tty->c_cflag & CBAUD); /* save current speed */ +- tty->c_cflag = (CRTSCTS | HUPCL | CREAD); /* UART flags */ ++ tty->c_cflag = (HUPCL | CREAD); /* UART flags */ + if (opt_L) + tty->c_cflag |= CLOCAL; ++ else ++ tty->c_cflag |= CRTSCTS; + tty->c_cflag |= speed; /* restore speed */ + return(0); + } +--- net-tools-1.60.orig/include/util-ank.h ++++ net-tools-1.60/include/util-ank.h +@@ -75,6 +75,6 @@ + extern int do_class(int argc, char **argv); + extern int do_filter(int argc, char **argv); + +-extern const char *format_host(int af, void *addr, __u8 *abuf, int alen); ++extern const char *format_host(int af, void *addr, char *abuf, int alen); + + #endif /* __UTILS_H__ */ +--- net-tools-1.60.orig/include/interface.h ++++ net-tools-1.60/include/interface.h +@@ -64,13 +64,17 @@ + extern int if_fetch(struct interface *ife); + + extern int for_all_interfaces(int (*)(struct interface *, void *), void *); +-extern int free_interface_list(void); ++extern int if_cache_free(void); + extern struct interface *lookup_interface(char *name); + extern int if_readlist(void); + + extern int do_if_fetch(struct interface *ife); + extern int do_if_print(struct interface *ife, void *cookie); + ++extern int procnetdev_version(char *buf); ++extern int get_dev_fields(char *bp, struct interface *ife); ++extern char * get_name(char *name, char *p); ++ + extern void ife_print(struct interface *ptr); + + extern int ife_short; +--- net-tools-1.60.orig/include/mii.h ++++ net-tools-1.60/include/mii.h +@@ -6,11 +6,14 @@ + * Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org + */ + +-#ifndef _LINUX_MII_H +-#define _LINUX_MII_H ++#ifndef _NETTOOL_MII_H ++#define _NETTOOLS_MII_H ++ ++#include <linux/sockios.h> + + /* network interface ioctl's for MII commands */ + #ifndef SIOCGMIIPHY ++#warning "SIOCGMIIPHY is not defined by your kernel source" + #define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */ + #define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */ + #define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */ +@@ -38,6 +41,7 @@ + #define MII_BMCR_RESTART 0x0200 + #define MII_BMCR_DUPLEX 0x0100 + #define MII_BMCR_COLTEST 0x0080 ++#define MII_BMCR_SPEED1000 0x0040 + + /* Basic Mode Status Register */ + #define MII_BMSR 0x01 +@@ -83,4 +87,17 @@ + #define MII_ANER_PAGE_RX 0x0002 + #define MII_ANER_LP_AN_ABLE 0x0001 + +-#endif /* _LINUX_MII_H */ ++#define MII_CTRL1000 0x09 ++#define MII_BMCR2_1000FULL 0x0200 ++#define MII_BMCR2_1000HALF 0x0100 ++ ++#define MII_STAT1000 0x0a ++#define MII_LPA2_1000LOCALOK 0x2000 ++#define MII_LPA2_1000REMRXOK 0x1000 ++#define MII_LPA2_1000FULL 0x0800 ++#define MII_LPA2_1000HALF 0x0400 ++ ++/* Last register we need for show_basic_mii() */ ++#define MII_BASIC_MAX (MII_STAT1000+1) ++ ++#endif /* _NETTOOLS_MII_H */ +--- net-tools-1.60.orig/man/en_US/rarp.8 ++++ net-tools-1.60/man/en_US/rarp.8 +@@ -61,8 +61,8 @@ + Create a RARP address mapping entry for host + .B hostname + with hardware address set to +-.B hw_addr +-. The format of the hardware address is dependent on the hardware ++.BR hw_addr . ++The format of the hardware address is dependent on the hardware + class, but for most classes one can assume that the usual presentation + can be used. For the Ethernet class, this is 6 bytes in hexadecimal, + separated by colons. +--- net-tools-1.60.orig/man/en_US/arp.8 ++++ net-tools-1.60/man/en_US/arp.8 +@@ -1,56 +1,111 @@ +-.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Programmer's Manual" ++.TH ARP 8 "2007-12-01" "net-tools" "Linux Programmer's Manual" + .SH NAME + arp \- manipulate the system ARP cache + .SH SYNOPSIS + .B arp + .RB [ \-vn ] +-.RB [ "\-H type" ] +-.RB [ "-i if" ] +-.B -a +-.RB [ hostname ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.RB [ \-a ] ++.RI [ hostname ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-i if" ] +-.B "\-d hostname" ++.RB [ \-i ++.IR if ] ++.B \-d ++.I hostname + .RB [ pub ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -s hostname hw_addr ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-s ++.I hostname hw_addr + .RB [ temp ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -s hostname hw_addr +-.RB [ "netmask nm" ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-s ++.I hostname hw_addr ++.RB [ netmask ++.IR nm ] + .B pub + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -Ds hostname ifa +-.RB [ "netmask nm" ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-Ds ++.I hostname ++.I ifname ++.RB [ netmask ++.IR nm ] + .B pub + .PP + .B arp + .RB [ \-vnD ] +-.RB [ "\-H type" ] +-.RB [ "-i if" ] +-.B -f [filename] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-f ++.RI [ filename ] + + .SH DESCRIPTION + .B Arp +-manipulates the kernel's ARP cache in various ways. The primary options +-are clearing an address mapping entry and manually setting up one. For +-debugging purposes, the ++manipulates or displays the kernel's IPv4 network neighbour cache. It can add ++entries to the table, delete one or display the current content. ++ ++.B ARP ++stands for Address Resolution Protocol, which is used to find the media ++access control address of a network neighbour for a given IPv4 Address. ++.SH MODES + .B arp +-program also allows a complete dump of the ARP cache. ++with no mode specifier will print the current content of the table. It is ++possible to limit the number of entries printed, by specifying an hardware ++address type, interface name or host address. ++ ++.B arp -d ++.I address ++will delete a ARP table entry. Root or netadmin priveledge is required to do ++this. The entry is found by IP address. If a hostname is given, it will be ++resolved before looking up the entry in the ARP table. ++ ++.B arp -s ++.I address hw_addr ++is used to set up a new table entry. The format of the ++.I hw_addr ++parameter is dependent on the hardware class, but for most classes one can ++assume that the usual presentation can be used. For the Ethernet class, ++this is 6 bytes in hexadecimal, separated by colons. When adding proxy arp ++entries (that is those with the ++.BR pub lish ++flag set a ++.B netmask ++may be specified to proxy arp for entire subnets. This is not good ++practice, but is supported by older kernels because it can be ++useful. If the ++.B temp ++flag is not supplied entries will be permanent stored into the ARP ++cache. To simplyfy setting up entries for one of your own network interfaces, you can use the ++.B "arp \-Ds" ++.I address ifname ++form. In that case the hardware address is taken from the interface with the ++specified name. ++ ++.br + .SH OPTIONS + .TP + .B "\-v, \-\-verbose" +@@ -76,21 +131,13 @@ + and + .RB "NET/ROM (" netrom ")." + .TP +-.B "\-a [hostname], \-\-display [hostname]" +-Shows the entries of the specified hosts. If the +-.B hostname +-parameter is not used, +-.B all +-entries will be displayed. +-.TP +-.B "\-d hostname, \-\-delete hostname" +-Remove any entry for the specified host. This can be used if the +-indicated host is brought down, for example. ++.B \-a ++Use alternate BSD style output format (with no fixed columns). + .TP + .B "\-D, \-\-use-device" +-Use the interface +-.BR ifa "'s" +-hardware address. ++Instead of a hw_addr, the given argument is the name of an interface. ++.B arp ++will use the MAC address of that interface for the table entry. This is usually the best option to set up a proxy ARP entry to yourself. + .TP + .B "\-i If, \-\-device If" + Select an interface. When dumping the ARP cache only entries matching +@@ -106,33 +153,15 @@ + .B NOTE: + This has to be different from the interface to which the IP + datagrams will be routed. +-.TP +-.B "\-s hostname hw_addr, \-\-set hostname" +-Manually create an ARP address mapping entry for host +-.B hostname +-with hardware address set to +-.B hw_addr +-. The format of the hardware address is dependent on the hardware +-class, but for most classes one can assume that the usual presentation +-can be used. For the Ethernet class, this is 6 bytes in hexadecimal, +-separated by colons. When adding proxy arp entries (that is those with +-the +-.BR pub lish +-flag set a +-.B netmask +-may be specified to proxy arp for entire subnets. This is not good +-practice, but is supported by older kernels because it can be +-useful. If the +-.B temp +-flag is not supplied entries will be permanent stored into the ARP +-cache. +-.br + .B NOTE: + As of kernel 2.2.0 it is no longer possible to set an ARP entry for an + entire subnet. Linux instead does automagic proxy arp when a route + exists and it is forwarding. See + .BR arp (7) +-for details. ++for details. Also the ++.B dontpub ++option which is available for delete and set operations cannot be ++used with 2.4 and newer kernels. + .TP + .B "\-f filename, \-\-file filename" + Similar to the +@@ -167,8 +196,18 @@ + and published entries have the + .B P + flag. ++.SH EXSAMPLES ++.B /usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub ++ ++This will answer ARP requests for 10.0.0.2 on eth0 with the MAC address for ++eth1. ++ ++.B /usr/sbin/arp -i eth1 -d 10.0.0.1 ++ ++Delete the ARP table entry for 10.0.0.1 on interface eth1. This will match ++published proxy ARP entries and permanent entries. + .SH FILES +-.I /proc/net/arp, ++.I /proc/net/arp + .br + .I /etc/networks + .br +@@ -178,5 +217,4 @@ + .SH SEE ALSO + rarp(8), route(8), ifconfig(8), netstat(8) + .SH AUTHORS +-Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> with a lot of improvements +-from net-tools Maintainer Bernd Eckenfels <net-tools@lina.inka.de>. ++Fred N. van Kempen <waltje@uwalt.nl.mugnet.org>, Bernd Eckenfels <net-tools@lina.inka.de>. +--- net-tools-1.60.orig/man/en_US/ethers.5 ++++ net-tools-1.60/man/en_US/ethers.5 +@@ -1,4 +1,4 @@ +-.TH ETHERS 5 "April 26th, 1996" "" "File formats" ++.TH ETHERS 5 "May 15th, 2005" "" "File formats" + .SH NAME \"{{{roff}}}\"{{{ + ethers \- Ethernet address to IP number database + .\"}}} +@@ -10,8 +10,8 @@ + \fIEthernet-address\fP \fIIP-number\fP + .RE + .sp +-The two items are separated by any number of SPACE and/or TAB char +-acters. A \fB#\fP at the beginning of a line starts a comment ++The two items are separated by any number of SPACE and/or TAB characters. ++A \fB#\fP at the beginning of a line starts a comment + which extends to the end of the line. The \fIEthernet-address\fP is + written as + .IR x : x : x : x : x : x , +--- net-tools-1.60.orig/man/en_US/ifconfig.8 ++++ net-tools-1.60/man/en_US/ifconfig.8 +@@ -1,10 +1,10 @@ +-.TH IFCONFIG 8 "14 August 2000" "net-tools" "Linux Programmer's Manual" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + ifconfig \- configure a network interface + .SH SYNOPSIS +-.B "ifconfig [interface]" ++.B "ifconfig [-v] [-a] [-s] [interface]" + .br +-.B "ifconfig interface [aftype] options | address ..." ++.B "ifconfig [-v] interface [aftype] options | address ..." + .SH DESCRIPTION + .B Ifconfig + is used to configure the kernel-resident network interfaces. It is +@@ -41,11 +41,27 @@ + (AMPR Packet radio). + .SH OPTIONS + .TP ++.B -a ++display all interfaces which are currently available, even if down ++.TP ++.B -s ++display a short list (like netstat -i) ++.TP ++.B -v ++be more verbose for some error conditions ++.TP + .B interface + The name of the interface. This is usually a driver name followed by + a unit number, for example + .B eth0 +-for the first Ethernet interface. ++for the first Ethernet interface. If your kernel supports alias interfaces, ++you can specify them with ++.B eth0:0 ++for the first alias of eth0. You can use them to assign a second address. To ++delete an alias interface use ++.BR "ifconfig eth0:0 down" . ++Note: for every scope (i.e. same net with address/netmask combination) all ++aliases are deleted, if you delete the first (primary). + .TP + .B up + This flag causes the interface to be activated. It is implicitly +@@ -173,11 +189,20 @@ + are shared with all alias addresses on the same device. If you want per-address + statistics you should add explicit accounting + rules for the address using the +-.BR ipchains(8) ++.BR ipchains (8) ++or ++.BR iptables (8) + command. + .LP +-Interrupt problems with Ethernet device drivers fail with EAGAIN. See +-.I http://cesdis.gsfc.nasa.gov/linux/misc/irq-conflict.html ++Since net-tools 1.60-4 ifconfig is printing byte counters and human readable ++counters with IEC 60027-2 units. So 1 KiB are 2^10 byte. Note, the numbers ++are truncated to one decimal (which can by quite a large error if you ++consider 0.1 PiB is 112.589.990.684.262 bytes :) ++.LP ++Interrupt problems with Ethernet device drivers fail with EAGAIN ++.I (SIOCSIIFLAGS: Resource temporarily unavailable) ++it is most likely a interrupt conflict. See ++.I http://www.scyld.com/expert/irq-conflict.html + for more information. + .SH FILES + .I /proc/net/socket +@@ -189,7 +214,9 @@ + While appletalk DDP and IPX addresses will be displayed they cannot be + altered by this command. + .SH SEE ALSO +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). ++.br ++http://physics.nist.gov/cuu/Units/binary.html - Prefixes for binary multiples + .SH AUTHORS + Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + .br +@@ -198,3 +225,5 @@ + Phil Blundell, <Philip.Blundell@pobox.com> + .br + Andi Kleen ++.br ++Bernd Eckenfels, <net-tools@lina.inka.de> +--- net-tools-1.60.orig/man/en_US/netstat.8 ++++ net-tools-1.60/man/en_US/netstat.8 +@@ -8,7 +8,7 @@ + .\" Modified: Tuan Hoang tqhoang@bigfoot.com + .\" + .\" +-.TH NETSTAT 8 "19 December 2000" "net-tools" "Linux Programmer's Manual" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + + .SH NAME + netstat \- Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships +@@ -23,7 +23,7 @@ + .RB [ \-\-listening | \-l ] + .RB [ \-\-all | \-a ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-symbolic | \-N ] + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-timers | \-o ] +@@ -37,31 +37,30 @@ + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-verbose | \-v ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-interfaces | \-i } +-.RI [ iface ] + .RB [ \-\-all | \-a ] + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-verbose | \-v ] + .RB [ \-\-program | \-p ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-groups | \-g } + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-masquerade | \-M } + .RB [ \-\-extend | \-e ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat +@@ -78,6 +77,8 @@ + .P + .IR address_family_options : + .PP ++.RB [ -4 ] ++.RB [ -6 ] + .RB [ \-\-protocol= { inet , unix , ipx , ax25 , netrom , ddp }[, ...] ] + .RB [ \-\-unix | \-x ] + .RB [ \-\-inet | \-\-ip ] +@@ -98,12 +99,17 @@ + address families, then the active sockets of all configured address + families will be printed. + .SS "\-\-route , \-r" +-Display the kernel routing tables. ++Display the kernel routing tables. See the description in ++.BR route (8) ++for details. ++.B netstat -r ++and ++.B route -e ++produce the same output. + .SS "\-\-groups , \-g" + Display multicast group membership information for IPv4 and IPv6. +-.SS "\-\-interface=\fIiface \fR, \fB\-i" +-Display a table of all network interfaces, or the specified +-.IR iface ) . ++.SS "\-\-interfaces, \-i" ++Display a table of all network interfaces. + .SS "\-\-masquerade , \-M" + Display a list of masqueraded connections. + .SS "\-\-statistics , \-s" +@@ -165,12 +171,11 @@ + .SS "\-a, \-\-all" + Show both listening and non-listening sockets. With the + .B --interfaces +-option, show interfaces that are not marked ++option, show interfaces that are not up + .SS "\-F" + Print routing information from the FIB. (This is the default.) + .SS "\-C" + Print routing information from the route cache. +-.IR UP . + .P + .SH OUTPUT + .P +@@ -221,7 +226,7 @@ + The socket is waiting after close to handle packets still in the network. + .TP + .I +-CLOSED ++CLOSE + The socket is not being used. + .TP + .I +@@ -438,7 +443,7 @@ + .P + .SH AUTHORS + The netstat user interface was written by Fred Baumgarten +-<dc6iq@insu1.etec.uni-karlsruhe.de> the man page basically ++<dc6iq@insu1.etec.uni-karlsruhe.de>, the man page basically + by Matt Welsh <mdw@tc.cornell.edu>. It was updated by + Alan Cox <Alan.Cox@linux.org> but could do with a bit more + work. It was updated again by Tuan Hoang +--- net-tools-1.60.orig/man/en_US/route.8 ++++ net-tools-1.60/man/en_US/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "2 January 2000" "net-tools" "Linux Programmer's Manual" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + route \- show / manipulate the IP routing table + .SH SYNOPSIS +@@ -141,7 +141,7 @@ + set the TCP Maximum Segment Size (MSS) for connections over this route + to M bytes. + The default is the device MTU minus headers, or a lower MTU when path mtu +-discovery occured. This setting can be used to force smaller TCP packets on the ++discovery occurred. This setting can be used to force smaller TCP packets on the + other end when path mtu discovery does not work (usually because of + misconfigured firewalls that block ICMP Fragmentation Needed) + .TP +@@ -179,17 +179,20 @@ + + .SH EXAMPLES + .TP +-.B route add -net 127.0.0.0 +-adds the normal loopback entry, using netmask 255.0.0.0 (class A net, +-determined from the destination address) and associated with the +-"lo" device (assuming this device was prviously set up correctly with ++.B route add -net 127.0.0.0 netmask 255.0.0.0 dev lo ++adds the normal loopback entry, using netmask 255.0.0.0 and associated with the ++"lo" device (assuming this device was previously set up correctly with + .BR ifconfig (8)). + + .TP + .B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 +-adds a route to the network 192.56.76.x via +-"eth0". The Class C netmask modifier is not really necessary here because +-192.* is a Class C IP address. The word "dev" can be omitted here. ++adds a route to the local network 192.56.76.x via ++"eth0". The word "dev" can be omitted here. ++ ++.TP ++.B route del default ++deletes the current default route, which is labeled "default" or 0.0.0.0 ++in the destination field of the current routing table. + + .TP + .B route add default gw mango-gw +@@ -289,7 +292,7 @@ + Interface to which packets for this route will be sent. + .TP + .B MSS +-Default maximum segement size for TCP connections over this route. ++Default maximum segment size for TCP connections over this route. + .TP + .B Window + Default window size for TCP connections over this route. +@@ -323,4 +326,4 @@ + Linus Torvalds for pl15. Alan Cox added the mss and window options for + Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels. + .SH AUTHOR +-Currently maintained by Phil Blundell <Philip.Blundell@pobox.com>. ++Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>. +--- net-tools-1.60.orig/man/en_US/slattach.8 ++++ net-tools-1.60/man/en_US/slattach.8 +@@ -1,4 +1,4 @@ +-.TH SLATTACH 8 "12 Feb 1994" "" "" ++.TH SLATTACH 8 "10 Oct 2006" "" "" + .SH NAME + slattach \- attach a network interface to a serial line + .SH SYNOPSIS +@@ -24,6 +24,7 @@ + .B "[-h]" + Exit when the carrier is lost. This works on both /dev/tty and /dev/cua + devices by directly monitoring the carrier status every 15 seconds. ++.TP + .B "[-v]" + Enable verbose output. Useful in shell scripts. + .TP +@@ -41,7 +42,7 @@ + .TP + .B "[-e]" + Exit right after initializing device, instead of waiting for the +-line to hangup. ++line to hang up. + .TP + .B "[-L]" + Enable 3 wire operation. The terminal is moved into CLOCAL mode, +@@ -50,8 +51,8 @@ + .B "[-p proto]" + Set a specific kind of protocol to use on the line. The default + is set to +-.B "cslip" +-, i.e. compressed SLIP. Other possible values are ++.BR "cslip" , ++i.e. compressed SLIP. Other possible values are + .B "slip" + (normal SLIP), + .B "adaptive" +--- net-tools-1.60.orig/man/en_US/mii-tool.8 ++++ net-tools-1.60/man/en_US/mii-tool.8 +@@ -1,7 +1,7 @@ + .\" Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org + .\" mii-tool.8 1.5 2000/04/25 22:58:19 + .\" +-.TH MII-TOOL 8 "2000/04/25 22:58:19" "net-tools" ++.TH MII-TOOL 8 "2004/03/28 23:30:00" "net-tools" + + .SH NAME + mii-tool \- view, manipulate media-independent interface status +@@ -72,7 +72,24 @@ + commas. Valid media are \fB100baseT4\fR, \fB100baseTx-FD\fR, + \fB100baseTx-HD\fR, \fB10baseT-FD\fR, and \fB10baseT-HD\fR. + ++.SH DIAGNOSTICS ++.TP ++SIOCGMIIPHY on 'eth?' failed: Invalid argument ++If the interface is not running (up), kernel will refuse to report its link state. ++.TP ++SIOCGMIIPHY on 'eth?' failed: Operation not permitted ++Most kernels restrict access to root. ++.TP ++SIOCGMIIPHY on 'eth?' failed: No such device ++This error is shown, if the kernel does not know about the named device. ++.TP ++SIOCGMIIPHY on 'eth?' failed: Operation not supported ++The interface in question does not support MII queries. Most likely, it does not have ++MII transceivers, at all. ++ + .SH AUTHORS + David Hinds \- dhinds@pcmcia.sourceforge.org + .br + Donald Becker \- becker@scyld.com ++.br ++Bernd Eckenfels \- ecki@debian.org +--- net-tools-1.60.orig/man/fr_FR/arp.8 ++++ net-tools-1.60/man/fr_FR/arp.8 +@@ -140,8 +140,8 @@ + Similaire à l'option + .B \-s + , mais cette fois les informations d'adresses sont prises dans le fichier +-.B nom_de_fichier +-. Ceci peut être utilisé si les entrées ARP à configurer sont ++.BR nom_de_fichier . ++Ceci peut être utilisé si les entrées ARP à configurer sont + nombreuses. Le nom du fichier de données est très souvent nommé + .B /etc/ethers + , mais ce n'est pas officiel. +@@ -160,8 +160,8 @@ + .LP + Chaque entrée complète se trouvant dans le cache ARP est marquée de + l'indicateur +-.B C +-. Les entrées permanentes sont marquées de l'indicateur ++.BR C . ++Les entrées permanentes sont marquées de l'indicateur + .B M + et les entrées 'pub' ont l'indicateur + .B P +--- net-tools-1.60.orig/man/fr_FR/hostname.1 ++++ net-tools-1.60/man/fr_FR/hostname.1 +@@ -84,8 +84,8 @@ + .LP + .B hostname + fournit le nom du système tel qu'il est retourné par la fonction +-.BR getdomainname (2) +-. Ceci est connu comme nom de domaine YP/NIS du système. ++.BR getdomainname (2). ++Ceci est connu comme nom de domaine YP/NIS du système. + + + .LP +@@ -145,8 +145,8 @@ + .LP + La façon dont vous pouvez le changer dépend de la configuration + (habituellement dans +-.IR /etc/host.conf ) +-. Si le fichier 'hosts' est analysé avant d'interroger le DNS ou ++.IR /etc/host.conf ). ++Si le fichier 'hosts' est analysé avant d'interroger le DNS ou + NIS) vous pouvez le changer dans le fichier + .IR /etc/hosts . + +--- net-tools-1.60.orig/man/fr_FR/ifconfig.8 ++++ net-tools-1.60/man/fr_FR/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "4 August 1997" "net-tools" "Linux Programmer's Manual" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NOM + ifconfig \- configure une interface réseau + .SH SYNOPSIS +@@ -60,14 +60,14 @@ + .TP + .B "[\-]promisc" + Valide ou invalide le mode +-.B promiscuous +-. S'il est validé, tous les paquets circulant sur le réseau ++.BR promiscuous . ++S'il est validé, tous les paquets circulant sur le réseau + seront reçus sur cette interface. + .TP + .B "[\-]allmulti" + Valide ou invalide le fonctionnement de l'interface en mode +-.B all-multicast +-. S'il est validé, tous les paquets multicast circulant sur le réseau ++.BR all-multicast . ++S'il est validé, tous les paquets multicast circulant sur le réseau + seront reçus sur cette interface. + .TP + .B "metric N" +@@ -196,7 +196,7 @@ + Même si les adresses appletalk DDP et IPX peuvent être affichées, + elles ne peuvent être modifiées avec cette commande. + .SH VOIR AUSSI +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTHORS + Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + .br +--- net-tools-1.60.orig/man/fr_FR/netstat.8 ++++ net-tools-1.60/man/fr_FR/netstat.8 +@@ -8,7 +8,7 @@ + .\" Modified: Tuan Hoang tuan@optimus.mitre.org + .\" + .\" +-.TH NETSTAT 8 "25 Fév 1999" "net-tools" "Linux Programmer's Manual" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + + .SH NAME + netstat \- Affiche les connexions réseau, les tables de routage, les +@@ -106,7 +106,7 @@ + .BR route (8) + pour plus de détails. + +-.SS "\-i, \-\-interface \fIiface\fI" ++.SS "\-i, \-\-interfaces \fIiface\fI" + Si vous utilisez l'option + .BR -i ", " --interfaces + , une table de toutes (ou de l'interface +@@ -118,8 +118,8 @@ + .BR ifconfig (8). + .B "netstat -ei" + affiche une table ou une seule entrée d'interface comme la commande +-.B ifconfig +-. Avec le paramètre ++.BR ifconfig . ++Avec le paramètre + .B -a + , vous pouvez inclure les interfaces qui ne sont pas configurées (c.a.d qui + n'ont pas l'indicateur +@@ -249,7 +249,7 @@ + avant d'entreprendre la fermeture. + .TP + .I +-CLOSED ++CLOSE + La socket n'est pas utilisée. + .TP + .I +@@ -409,8 +409,7 @@ + Depuis la version 2.2 du noyau, netstat -i n'affiche plus les statistiques + des interfaces alias. Pour obtenir les compteurs par interface alias, vous + devez définir des règles spécifiques à l'aide de la commande +-.BR ipchains(8) +-. ++.BR ipchains (8). + + .SH FICHIERS + .ta +--- net-tools-1.60.orig/man/fr_FR/rarp.8 ++++ net-tools-1.60/man/fr_FR/rarp.8 +@@ -55,8 +55,8 @@ + Crée manuellement une correspondance d'adresses RARP pour l'hôte + .B nom_d_hôte + avec l'adresse matérielle +-.B adr_materielle +-. Le format de l'adresse matérielle est dépendant du matériel, ++.BR adr_materielle . ++Le format de l'adresse matérielle est dépendant du matériel, + mais pour la plupart on peut considérer que la présentation classique + peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal, + séparés par des double-points. +--- net-tools-1.60.orig/man/fr_FR/route.8 ++++ net-tools-1.60/man/fr_FR/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "8 Août 1997" "net-tools" "Linux Programmer's Manual" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + route \- affiche / manipule la table de routage IP + .SH SYNOPSIS +@@ -330,6 +330,6 @@ + la gestion des fenêtres et MSS pour Linux 1.1.22. Le support de irtt + et la fusion avec netstat ont été réalisés par Bernd Eckenfels. + .SH AUTEUR +-Maintenu par Phil Blundell <Philip.Blundell@pobox.com>. ++Maintenu par Phil Blundell <Philip.Blundell@pobox.com> et Bernd Eckenfels <net-tools@lina.inka.de>. + .SH TRADUCTION +-Jean-Michel VANSTEENE (vanstee@worldnet.fr) ++Jean-Michel VANSTEENE <vanstee@worldnet.fr> +--- net-tools-1.60.orig/man/pt_BR/ifconfig.8 ++++ net-tools-1.60/man/pt_BR/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "10 de fevereiro de 1996" "net-tools" "Manual do Programador Linux" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + .SH NOME + ifconfig \- configura uma interface de rede + .SH SINOPSE +@@ -169,7 +169,7 @@ + Os endereços appletalk DDP e IPX serão mostrados, mas não podem ser alterados + com este comando. + .SH VEJA TAMBÉM +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTORES + Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + Alan Cox, <Alan.Cox@linux.org> +--- net-tools-1.60.orig/man/pt_BR/netstat.8 ++++ net-tools-1.60/man/pt_BR/netstat.8 +@@ -8,7 +8,7 @@ + .\" Traduzido para português por Arnaldo Carvalho de Melo <acme@conectiva.com.br> + .\" Revisado por Jorge Luiz Godoy Filho <jorge@bestway.com.br> + .\" +-.TH NETSTAT 8 "19 de maio de 1997" "net-tools" "Manual do Programador Linux" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + + .SH NOME + netstat \- Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões +@@ -97,7 +97,7 @@ + .BR route (8) + para maiores detalhes. + +-.SS "\-i, \-\-interface \fIiface\fI" ++.SS "\-i, \-\-interfaces \fIiface\fI" + Se você usar a opção + .BR -i ", " --interfaces + , uma tabela de todas (ou da +--- net-tools-1.60.orig/man/pt_BR/rarp.8 ++++ net-tools-1.60/man/pt_BR/rarp.8 +@@ -50,8 +50,8 @@ + Cria um mapeamento de endereços RARP para a máquina + .B máquina + com endereço de hardware configurado para +-.B endereço_hardware +-. O formato do endereço de hardware depende da classe do hardware, mas ++.B endereço_hardware. ++O formato do endereço de hardware depende da classe do hardware, mas + para a maioria das classes você pode assumir que a apresentação usual pode + ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados + por dois pontos (:). +--- net-tools-1.60.orig/man/pt_BR/route.8 ++++ net-tools-1.60/man/pt_BR/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "27 Jan 1996" "net-tools" "Manual do Programador Linux" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + .SH NOME + route \- mostra / manipula a tabela de roteamento IP + .SH SINOPSE +@@ -321,7 +321,7 @@ + Linus Torvalds para a versão pl15. Alan Cox adicionou as opções para + mss e window no kernel 1.1.22. O suporte a irtt (compartilhado com o + netstat) foi feito por Bernd Eckenfels. ++.SH AUTHOR ++Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>. + .SH TRADUÇÃO + Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 13/04/1998 +-.SH BUGS +-nenhum :) +--- net-tools-1.60.orig/man/de_DE/ifconfig.8 ++++ net-tools-1.60/man/de_DE/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + .SH NAME + ifconfig \- Konfiguration einer Netzwerkskarte + .SH SYNOPSIS +@@ -193,7 +193,7 @@ + W\(:ahrend AppleTalk DDP und IPX Adressen angezeigt werden, k\(:onnen sie mit + diesem Kommando nicht ge\(:andert werden. + .SH SIEHE AUCH +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTOREN + Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + .br +--- net-tools-1.60.orig/man/de_DE/route.8 ++++ net-tools-1.60/man/de_DE/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + .SH NAME + route \- Anzeigen der IP-Routen-Tabelle + .SH SYNOPSIS +@@ -345,6 +345,6 @@ + irtt beigesteuert und den Code mit dem von Netstat vereinigt. + .SH AUTOREN + .B Route +-wird zur Zeit von Phil Blundel (Philip.Blundell@pobox.com) gewartet. ++wird zur Zeit von Phil Blundel <Philip.Blundell@pobox.com> und Bernd Eckenfels <net-tools@lina.inka.de> gewartet. + .SH \(:Ubersetzung + Ralf B\(:achle <ralf@gnu.org> +--- net-tools-1.60.orig/man/de_DE/netstat.8 ++++ net-tools-1.60/man/de_DE/netstat.8 +@@ -9,7 +9,7 @@ + .\" Modified: Tuan Hoang tuan@optimus.mitre.org + .\" + .\" +-.TH NETSTAT 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + + .SH NAME + netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstatistiken, maskierten Verbindungen, Netlink-Nachrichten und Mitgliedschaft in Multicastgruppen +@@ -44,7 +44,6 @@ + .B netstat + .RB [ \-veenpac ] + .RB { \-\-interfaces | \-i } +-.RI [ Schnittstelle ] + + .PP + +@@ -68,6 +67,8 @@ + .SH BESCHREIBUNG + .B Netstat + zeigt Informationen des Linux Netzwerkssystems an. ++.PP ++.B Bitte beachten Sie, dass der Inhalt der deutschen man-page nicht vollst\(:andig ist, im Moment. + + .SS "(no option)" + Ohne Optionen zeigt +@@ -103,18 +104,17 @@ + Wegen Details siehe + .BR route (8). + +-.SS "\-i, \-\-interface \fISchnittstelle\fI" ++.SS "\-i, \-\-interfaces" + Wird die + .BR -i ", " --interfaces +-Option verwendet, so wird eine Tabelle aller (oder der angegebenen +-.IR Schnittstellen ) ++Option verwendet, so wird eine Tabelle aller Schnittstellen + ausgedruckt. Die Ausgabe ist im Format von + .B "ifconfig -e" + und wird in + .BR ifconfig (8) + beschrieben. + .B "netstat -ei" +-druckt eine Tabelle oder einen Eintrag f\(:ur einen einzelnes Interface wie ++druckt eine Tabelle f\(:ur Interfaces wie + .BR ifconfig . + Die + .B -a +@@ -182,7 +182,7 @@ + und + .BR \-\-ddp. + +-.SS "\-c, \-\-continous" ++.SS "\-c, \-\-continuous" + Mit dieser Option wiederholt + .B netstat + im Sekundenabstand die Ausgabe, bis es abgebrochen wird. +--- net-tools-1.60.orig/po/pt_BR.po ++++ net-tools-1.60/po/pt_BR.po +@@ -10,275 +10,287 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.54\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1999-03-01 02:38+0100\n" + "Last-Translator: Arnaldo Carvalho de Melo <acme@conectiva.com.br>\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=ISO8859-9\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: preciso do nome da máquina\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Nenhuma entrada ARP para %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: não foi possível obter o endereço de hardware para `%s': %s.\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: erro no tipo do protocolo.\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: o dispositivo `%s' tem endereço de hardware %s `%s'.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: preciso do endereço de hardware\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: endereço inválido de hardware\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: não foi possível abrir o arquivo etherfile %s!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: erro de formato na linha %u do arquivo etherfile %s!\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: não foi possível configurar a linha %u do arquivo etherfile %s!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Endereço\t\tTipoHW\tEndereçoHW\t Flags Mascara\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr "%s: interface desconhecida.\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(incompleto)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) em " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "<incompleto> " + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "mascara %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "em %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Entradas: %d\tIgnorada: %d\tEncontrada: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- nenhuma entrada\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: em %d entradas não foi encontrado.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " + "cache\n" + msgstr "" + "Uso:\n" +-" arp [-vn] [<HW>] [-i <if>] [-a] [<máquina>] <-Mostra cache " +-"ARP\n" ++" arp [-vn] [<HW>] [-i <if>] [-a] [<máquina>] <-Mostra cache ARP\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" +-msgstr "" +-" arp [-v] [-i <if>] -d <máquina> [pub][nopub] <-Remove entrada " +-"ARP\n" ++msgstr " arp [-v] [-i <if>] -d <máquina> [pub][nopub] <-Remove entrada ARP\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr "" + " arp [-vnD] [<HW>] [-i <if>] -f [<arquivo>] <-Inclui entrada de " + "arquivo\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <máquina> <end_hw> [temp][nopub] <-Inc. " +-"Entrada\n" +- +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <máquina> <end_hw> [netmask <nm>] pub " +-"<-''-\n" ++msgstr " arp [-v] [<HW>] [-i <if>] -s <máquina> <end_hw> [temp][nopub] <-Inc. Entrada\n" + +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -Ds <máquina> <if> [netmask <nm>] pub " +-"<-''-\n" ++msgstr " arp [-v] [<HW>] [-i <if>] -Ds <máquina> <if> [netmask <nm>] pub <-''-\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +-msgstr "" +-" -a mostra (todas as) máquinas no estilo alternativo " +-"(BSD)\n" ++msgstr " -a mostra (todas as) máquinas no estilo alternativo (BSD)\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set define uma nova entrada ARP\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete remove a entrada especificada\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose listagem detalhada\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric não resolve nomes\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + " -i, --device especifica a interface de rede (ex: eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr " -D, --use-device leia <hwaddr> de um dispositivo\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol especifica a família de protocolos\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" +-" -f, --file leia novas entradas de arquivo ou de " +-"/etc/ethers\n" ++" -f, --file leia novas entradas de arquivo ou de /etc/" ++"ethers\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" +-msgstr "" +-" <HW>=Use '-H <hw>' para especificar o tipo de endereço de hw. Default: %s\n" ++msgstr " <HW>=Use '-H <hw>' para especificar o tipo de endereço de hw. Default: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Lista dos tipos de hardware possíveis (que suportam ARP):\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: tipo de hardware não suportado!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: família de endereços não suportada!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N ainda não suportada.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: família de endereços desconhecida.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: tipo de hardware desconhecido.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: kernel somente suporta ínet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: tipo de hardware sem suporte a ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Configurando nome do nó como `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: você deve ser root para mudar o nome do nó\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nome muito longo\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Configurando nome da máquina para `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: você deve ser root para mudar o nome da máquina\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Configurando nome do domínio para `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: você deve ser root para mudar o nome do domínio\n" +@@ -303,37 +315,38 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Resultado: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: não foi possível abrir `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" +-msgstr "" +-"Uso: hostname [-v] {máquina|-F arquivo} configura nome da máquina (de " +-"arquivo)\n" ++msgstr "Uso: hostname [-v] {máquina|-F arquivo} configura nome da máquina (de arquivo)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {domínio_nis|-F file} configura nome do domínio NIS\n" + " (a partir de arquivo)\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +-msgstr "" +-"Uso: hostname [-v] {máquina|-F arquivo} configura o nome do nó DECnet (de " +-"arquivo)\n" ++msgstr "Uso: hostname [-v] {máquina|-F arquivo} configura o nome do nó DECnet (de arquivo)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] mostra nome formatado\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -341,7 +354,8 @@ + " hostname [-v] mostra nome da máquina\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -349,7 +363,8 @@ + " hostname -V|--version|-h|--help mostra informações e termina\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -357,35 +372,43 @@ + " dnsdomainname=máquina -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short nome curto da máquina\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias aliases para a máquina\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address endereços da máquina\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long nome longo da máquina (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain nome do domínio DNS\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis nome do domínio NIS/YP\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node nome do nó DECnet\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -393,7 +416,8 @@ + " -F, --file leia o nome da máquina ou domínio NIS do arquivo\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -413,15 +437,16 @@ + msgstr "%s: Você não pode mudar o nome do domínio DNS com este comando\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"A menos que esteja usando bind ou NIS para resolução de nomes você pode " +-"mudar\n" ++"A menos que esteja usando bind ou NIS para resolução de nomes você pode mudar\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "o nome do domínio DNS (que é parte do FQDN) no arquivo /etc/hosts.\n" + +@@ -440,552 +465,453 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Encapsulamento do Link: %s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opções\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "Endereço de HW %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "" ++"%s: erro obtendo informações da interface: %s\n" ++"\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Mídia:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Este sistema não tem suporte a INET.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "" ++"%s: erro obtendo informações da interface: %s\n" ++"\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s end.: %s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"Uso:\n" ++" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <endereço>]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-a-P:%s " ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <endereço>[/<tam_prefixo>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <endereço>[/<tam_prefixo>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Masc:%s\n" ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<endereço>]] [[-]pointopoint [<endereço>]]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " endereço inet6: %s/%d" +- +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Escopo:" +- +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <endereço>] [dstaddr <endereço>] [tunnel <endereço>]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Link" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <NN>] [keepalive <NN>]\n" + + #: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Site" +- +-#: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Compat" +- +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Máquina" +- +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Desconhecido" +- +-#: ../ifconfig.c:236 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " Endereço IPX/Ethernet II:%s\n" ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <endereço>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:213 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " Endereço IPX/Ethernet SNAP:%s\n" ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:214 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " Endereço IPX/Ethernet 802.2:%s\n" ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:245 ++#: ../ifconfig.c:215 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " Endereço IPX/Ethernet 802.3:%s\n" ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tipo>]\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:217 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " Endereço EtherTalk fase 2:%s\n" ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen <NN>]\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:220 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " Endereço econet:%s\n" +- +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[NENHUMA FLAG] " +- +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " +- +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST" +- +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " +- +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK" +- +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " +- +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " +- +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:224 ++#, c-format ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=Tipo de Hardware.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " Lista dos tipos possíveis de hardware:\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=Família de endereços. Default: %s\n" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " Lista de famílias de endereços possíveis:\n" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:302 ++#: ../ifconfig.c:380 + #, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Métrica:%d" ++msgid "Unknown media type.\n" ++msgstr "Tipo desconhecido de mídia.\n" + +-#: ../ifconfig.c:306 ++#: ../ifconfig.c:417 + #, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:320 ++#: ../ifconfig.c:429 + #, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "Pacotes RX:%lu erros:%lu descartados:%lu sobreposições:%lu frame:%lu\n" ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:325 ++#: ../ifconfig.c:441 + #, c-format +-msgid " compressed:%lu\n" +-msgstr " compactados:%lu\n" ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:329 ++#: ../ifconfig.c:465 + #, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" + msgstr "" +-"Pacotes TX:%lu erros:%lu descartados:%lu sobreposições:%lu portadora:%lu\n" + +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:523 + #, c-format +-msgid " collisions:%lu " +-msgstr " colisões:%lu " ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:335 ++#: ../ifconfig.c:652 + #, c-format +-msgid "compressed:%lu " +-msgstr "compactados:%lu " ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:337 ++#: ../ifconfig.c:684 + #, c-format +-msgid "txqueuelen:%d " +-msgstr "txqueuelen:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "IRQ:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Endereço de E/S:0x%x " ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:350 ++#: ../ifconfig.c:693 + #, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Memória:%lx-%lx " ++msgid "%s: invalid %s address.\n" ++msgstr "%s: endereço %s inválido.\n" + +-#: ../ifconfig.c:353 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid "DMA chan:%x " +-msgstr "Canal DMA:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "Este sistema não tem suporte a INET6.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: interface desconhecida: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Uso:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <endereço>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <endereço>[/<tam_prefixo>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <endereço>[/<tam_prefixo>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<endereço>]] [[-]pointopoint [<endereço>]]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <endereço>] [dstaddr <endereço>] [tunnel <endereço>]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill <NN>] [keepalive <NN>]\n" +-msgstr " [outfill <NN>] [keepalive <NN>]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" +-msgstr " [hw <HW> <endereço>] [metric <NN>] [mtu <NN>]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tipo>]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen <NN>]\n" +-msgstr " [txqueuelen <NN>]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " <HW>=Hardware Type.\n" +-msgstr " <HW>=Tipo de Hardware.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Lista dos tipos possíveis de hardware:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=Família de endereços. Default: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Lista de famílias de endereços possíveis:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Tipo desconhecido de mídia.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: endereço %s inválido.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Este sistema não tem suporte a INET6.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Remoção de endereço não suportada neste sistema.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Este sistema não tem suporte a INET.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Não sei como configurar endereços para a família %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Este sistema não tem suporte a ECONET.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Não sei como configurar endereços para a família %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Não foi possível ler informações para \"-p\": geteuid()=%d mas você deve " +-"ser root.)\n" ++msgstr "(Não foi possível ler informações para \"-p\": geteuid()=%d mas você deve ser root.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" +-"(Nem todos os processos puderam ser identificados, informações sobre " +-"processos\n" ++"(Nem todos os processos puderam ser identificados, informações sobre processos\n" + " de outrem não serão mostrados, você deve ser root para vê-los todos.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "OUVINDO" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN ENVIADO" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC ENVIADO" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABELECIDA" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Ative sockets NET/ROM\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" +-msgstr "" +-"Usuário Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Usuário Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Problemas lendo dados de %s\n" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_ENVIADO" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECEBIDO" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "ESPERA_FIN1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "ESPERA_FIN2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "FECHAR" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "ESPERANDO_FECHAR" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "ÚLTIMO_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "OUÇA" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "FECHANDO" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "atenção, recebi linha igmp6 inválida %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: família de protocolos %d não suportada!\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "atenção, recebi linha igmp inválida %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Ativar sockets AX.25\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "atenção, recebi linha tcp inválida.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "desligado (0.00/%ld/%ld)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "em (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "keepalive (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "timewait (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "desconh.-%d (%2.2f/%ld)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "atenção, recebi linha udp inválida.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "DESCONHECIDA" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "ligado %d (%2.2f/%ld)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "atenção, recebi linha raw inválida.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "atenção, recebi linha unix inválida.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "LIVRE" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "CONECTANDO" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "CONECTADO" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "DESCONECTANDO" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Domain sockets UNIX ativos " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(servidores e estabelecidas)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(sem os servidores)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(sem os servidores)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -993,114 +919,118 @@ + "\n" + "Proto CntRef Flags Tipo Estado I-Node Rota" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Caminho\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM ENVIADO" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECUPERAÇÃO" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Ativar sockets AX.25\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "problemas lendo dados de %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Sockets IPX ativos\n" +-"Proto Recv-Q Send-Q Endereço Local Endereço Remoto " +-"Estado" ++"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Usuário" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "DESC." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - estatísticas não disponíveis -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[SEM FLAGS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tabela de Interfaces do Kernel\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" +-msgstr "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV " +-"Opções\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opções\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "falta informação da interface" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "uso: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeo] [<Socket>]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + msgstr " netstat [-vnNcaeo] [<Socket>]\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route mostra tabela de roteamento\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces mostra tabela de interfaces\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -o, --timers mostra temporizadores\n" + "\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr " -i, --interfaces mostra tabela de interfaces\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1108,19 +1038,38 @@ + " -M, --masquerade mostra conexões mascaradas\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -n, --numeric não resolve nomes\n" + +-#: ../netstat.c:1439 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend mostra outras/mais informações\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr " -r, --route mostra tabela de roteamento\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1128,30 +1077,33 @@ + " -c, --continuous listagem contínua\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr " -L, --netlink mostra mensagens netlink do kernel\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr " -a, --all, --listening mostra tudo\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr "" + " -o, --timers mostra temporizadores\n" + "\n" + +-#: ../netstat.c:1445 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +-msgstr "" +-" -F, --fib mostra a Base de Informações de Repasse " +-"(default)\n" ++msgstr " -F, --fib mostra a Base de Informações de Repasse (default)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1159,136 +1111,145 @@ + " -C, --cache mostra cache de roteamento no lugar da FIB\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=Use '-A <af>' ou [--<af>' Default: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" +-msgstr "" +-" Lista das famílias de endereços possíveis (que suportam roteamento):\n" ++msgstr " Lista das famílias de endereços possíveis (que suportam roteamento):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Conexões Internet Ativas " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado " +-" " ++"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Usuário " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Temporizador" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "IPv4 Group Memberships\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Interface CntRef Grupo\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Este kernel não tem suporte a RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "Sem entrada RARP para %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: endereço de hardware inválido\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: não foi possível abrir o arquivo %s:%s.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: erro de formato em %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: máquina desconhecida\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: não é possível incluir uma entrada para %s:%u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + "Uso: rarp -a lista entradas no cache\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" +-msgstr "" +-" rarp -d máquina remove entrada do cache\n" ++msgstr " rarp -d máquina remove entrada do cache\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" +-msgstr "" +-" rarp [-t tipo-hw] -s máquina endereço-hw adiciona entrada ao cache\n" ++msgstr " rarp [-t tipo-hw] -s máquina endereço-hw adiciona entrada ao cache\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f adiciona entradas a partir do\n" + " arquivo ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +-msgstr "" +-" rarp -V mostra versão do programa\n" ++msgstr " rarp -V mostra versão do programa\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: mistura ilegal de opções.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: %s: tipo desconhecido de hardware.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" +-"Uso: route [-nNvee] [-FC] [famílias_de_endereços] Lista as tabelas de " +-"rotea-\n" ++"Uso: route [-nNvee] [-FC] [famílias_de_endereços] Lista as tabelas de rotea-\n" + " mento do kernel\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1298,35 +1259,42 @@ + " mento da família.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" + msgstr "" +-" route {-h|--help} [família_de_endereços] Sintaxe para a AF " +-"(Família\n" +-" de endereços) " +-"espeficicada.\n" ++" route {-h|--help} [família_de_endereços] Sintaxe para a AF (Família\n" ++" de endereços) espeficicada.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" + "\n" + msgstr "" +-" route {-V|--version} Mostra a versão do " +-"comando\n" ++" route {-V|--version} Mostra a versão do comando\n" + " e sai.\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=Use '-A <af>' ou [--<af>' Default: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Uso: ifconfig [-a] [-i] [-v] interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [[família] endereço]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1335,25 +1303,29 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Uso: iptunnel { add | change | del | show } [ NOME ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" +-msgstr "" +-" [ mode { ipip | gre | sit } ] [ remote END ] [ local END ]\n" ++msgstr " [ mode { ipip | gre | sit } ] [ remote END ] [ local END ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev DISP_FÍSICO ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1361,451 +1333,734 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Onde: NAME := STRING\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " END := { ENDEREÇO_IP | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { NÚMERO | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KEY := { QUATRO_NÚMEROS_SEPARADOS_POR_PONTOS | NÚMERO }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "Chaves não são permitidas com ipip e sit.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Um túnel de broadcast precisa de um endereço de origem.\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 e noptmudisc são incompatíveis\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "não foi possível determinar o modo do túnel (ip, gre ou sit)\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip remoto %s local %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Desconhecido" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Descarte pacotes fora de seqüência.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " É necessário checksum nos pacotes recebidos.\n" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Seqüencie pacotes na saída.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Calcule o checksum para pacotes de saída.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "Formato errado de /proc/net/dev. Desculpe.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Não foi possível obter o tipo de [%s]\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pacotes Bytes Erros CsunErrs ForaSeq Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pacotes Bytes Erros DeadLoop SemRota SemBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "Histograma de entrada ICMP:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "Histograma de saída ICMP" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Repassagem está %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Default TTL é %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "%d total de pacotes recebidos" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "%d com cabeçalhos inválidos" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d com endereços inválidos" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d repassados" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d com protocolo desconhecido" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d pacotes entrantes descartados" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d pacotes entrantes despachados" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d requisições enviadas" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d pacotes saintes descartados" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d descartados devido a falta de rota" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d fragmentos descartados após estouro de tempo" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d remontagens requeridas" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d pacotes remontados sem problemas" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d remontagens de pacotes falharam" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d fragmentos recebidos sem problemas" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "%d fragmentos falharam" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d fragmentos criados" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "%d mensagens ICMP recebidas" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "%d mensagens ICMP entrantes falharam." + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "destino não alcançável: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "estouro de tempo em trânsito: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "parâmetros errados: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "source quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "redireções: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "requisições de eco: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "respostas de eco: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "requisições de timestamp: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "respostas a timestamps: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "requisições de mascara de endereço: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "resposta a mascara de endereço" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "respostas a máscara de endereço: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d mensagens ICMP enviadas" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "%d mensagens ICMP falharam" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "tempo excedido: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "source quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "redireções: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "requisições de eco: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "requisições de timestamp: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "respostas a timestamp: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "requisições de máscara de endereço: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "respostas a máscara de endereço: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "Algorítmo RTO é %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "%d tentativas de conexão falharam" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "%d opens passivos" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "%d tentativas de conexão falharam" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "%d resets de conexão recebidas" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "%d conexões estabelecidas" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "%d segmentos recebidos" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "%d segmentos enviados" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "%d segmentos retransmitidos" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "%d segmentos ruins recebidos." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "%d resets enviados" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "%d pacotes recebidos" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "%d pacotes para portas desconhecidas recebidos." + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "%d erros de recepção de pacotes" + +-#: ../statistics.c:137 +-#, c-format +-msgid "%d packets sent" ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" + msgstr "%d pacotes enviados" + +-#: ../statistics.c:142 ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d pacotes enviados" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d resets recebidos para sockets embriônicos SYN_RECV" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d pacotes retirados da fila de recepção devido a sobreposição de buffers de sockets" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d pacotes retirados da fila de fora de ordem (out-of-order)" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d pacotes descartados da fila de fora de ordem devido a sobreposição de buffers de sockets" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d pacotes ICMP descartados porque estavam fora da janela" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d pacotes ICMP descartadas porque o socket estava bloqueado" ++ ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 + #, c-format +-msgid "%d SYN cookies sent" ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" + msgstr "%d pacotes enviados" + +-#: ../statistics.c:143 ++#: ../statistics.c:170 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d pacotes recebidos" ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:172 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d pacotes recebidos" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:173 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d resets recebidos para sockets embriônicos SYN_RECV" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:175 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "%u SYNs to LISTEN sockets ignored" + msgstr "" +-"%d pacotes retirados da fila de recepção devido a sobreposição de buffers de " +-"sockets" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" ++ ++#: ../statistics.c:178 + #, c-format +-msgid "%d packets pruned from out-of-order queue" ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" + msgstr "%d pacotes retirados da fila de fora de ordem (out-of-order)" + +-#: ../statistics.c:152 ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:184 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u packets header predicted and directly queued to user" + msgstr "" +-"%d pacotes descartados da fila de fora de ordem devido a sobreposição de " +-"buffers de sockets" + +-#: ../statistics.c:154 ++#: ../statistics.c:186 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d pacotes ICMP descartados porque estavam fora da janela" ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%d pacotes para portas desconhecidas recebidos." ++ ++#: ../statistics.c:189 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d pacotes ICMP descartadas porque o socket estava bloqueado" ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d segmentos ruins recebidos." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d resets enviados" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d segmentos retransmitidos" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d segmentos retransmitidos" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d remontagens de pacotes falharam" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d pacotes retirados da fila de recepção devido a sobreposição de buffers de sockets" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d total de pacotes recebidos" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d resets de conexão recebidas" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "habilitado" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "desabilitado" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "título %s desconhecido\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "erro lendo /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "não foi possível abrir /proc/net/snmp" + +@@ -1819,89 +2074,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Não foi possível mudar a disciplina da linha para `%s'.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "Não Especificado" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "UNIX Domain" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AX.25 AMPR" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "NET/ROM AMPR" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "Novell IPX" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Por favor não especifique mais que uma família de endereços.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Excesso no número de famílias de endereços.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Família de endereços `%s' desconhecida.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[Nenhum configurado]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): endereço arcnet inválido!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): trailing : ignorado!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): lixo no trailing!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Endereço Ash mal formado" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[Nenhum configurado]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Callsign inválido" +@@ -1911,22 +2172,21 @@ + msgstr "Callsign muito longo" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "O AX.25 não foi configurado neste sistema.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Tabela de roteamento AX.25 do kernel\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Destino Iface Uso\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Tabela de roteamento para `ddp' ainda não suportada.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1942,253 +2202,268 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): lixo no trailing!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%S): endereço fddi inválido!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): trailing : ignorado!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): lixo no trailing!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Família de endereços `%s' não suportada.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Nenhum roteamento para a família `%s'\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_fddi(%S): endereço fddi inválido!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): trailing : ignorado!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_fddi(%s): lixo no trailing!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Loopback Local" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "SLIP" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "SLIP VJ" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "SLIP 6 bits" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "SLIP VJ 6 bits" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "SLIP Adaptativo" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "FDDI - Fibra Ótica" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "Túnel IPIP" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Protocolo Ponto-a-Ponto" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "FRAD - Dispositivo de Acesso a Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6 sobre IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "16/4 Mbps Token Ring" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "16/4 Mbps Token Ring (Novo)" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: família de endereços %d não suportada!\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "DESCONHECIDA" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Tabela de Roteamento IPv6 do Kernel\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" +-msgstr "" +-"Destino Próximo \"Hop\" " +-" Opções Métrica Ref Uso Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "Destino Próximo \"Hop\" Opções Métrica Ref Uso Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache de Vizinhos IPv6 do Kernel\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +-msgstr "" +-"Vizinho Endereço HW Iface Opções " +-"Estado Ref\n" ++msgstr "Vizinho Endereço HW Iface Opções Estado Ref\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" + msgstr "" +-"Vizinho Endereço HW Iface Opções " +-"Estado Ref\n" ++"Vizinho Endereço HW Iface Opções Estado Ref\n" + " Parado(seg) Remover(seg)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Uso: inet6_route [-vF] del Destino\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Destino [gw Gw] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NÃO suportado\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Limpeza da tabela de roteamento `inet6' não é suportada\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Tabela de Roteamento IP do Kernel\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções Métrica Ref Uso " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções MSS Janela irtt " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções MSS Janela irtt Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +-msgstr "" +-"Destino Roteador MáscaraGen Opções Métrica Ref Uso " +-"Iface MSS Janela irtt\n" ++msgstr "Destino Roteador MáscaraGen Opções Métrica Ref Uso Iface MSS Janela irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Tabela de Roteamento IP do Kernel\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções Métrica Ref Uso " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções MSS Janela irtt " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções MSS Janela irtt Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +-msgstr "" +-"Destino Roteador Origem Opções Métrica Ref Uso " +-"Iface MSS Janela irtt HH Arp\n" ++msgstr "Destino Roteador Origem Opções Métrica Ref Uso Iface MSS Janela irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +-msgstr "" +-"Destino Roteador Origem Opções Métrica Ref Uso " +-"Iface MSS Janela irtt HH Arp\n" ++msgstr "Destino Roteador Origem Opções Métrica Ref Uso Iface MSS Janela irtt HH Arp\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2196,31 +2471,36 @@ + "Uso: inet_route [-vF] del {-host|-net} Destino[/prefixo] [gw Gw] [metric M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Destino[/prefixo] [gw Gw] [metric " + "M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Destino[/prefixo] [metric M] " + "reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NÃO suportado\n" + +@@ -2230,14 +2510,17 @@ + msgstr "route: %s: não é possível usar uma REDE como roteador!\n" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: MSS inválido.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: janela inválida.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: rtt inicial inválido.\n" + +@@ -2252,75 +2535,92 @@ + msgstr "route: netmask %s inválida\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: a netmask não casa com o endereço de rede\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Não é suportado limpar a tabela de roteamento `inet'\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Não é suportado modificar o cache de roteamento `inet'\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "O AX.25 não foi configurado neste sistema.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Tabela de roteamento IPX do kernel\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Destino Rede Roteadora Nó Roteador\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "NET/ROM: isto precisa ser escrito\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "Entradas de IP mascarado\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot expira origem destino portas\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot expira initseq delta prevd origem destino " +-" portas\n" ++"prot expira initseq delta prevd origem " ++"destino portas\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Tabela de roteamento NET/ROM do kernel\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Destino Mnemônico Qualidade Vizinho Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "uso de netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: isto precisa ser escrito\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Você não pode iniciar o PPP com este programa.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Desculpe, use o pppd!\n" + +@@ -2329,51 +2629,314 @@ + msgstr "Endereço do nó deve ter dez dígitos" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE não configurada neste sistema.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Tabela de roteamento ROSE do kernel\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): endereço token ring inválido!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): trailing : ignorado!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): lixo no trailing!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "atenção: nenhum socket inet disponível: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "Atenção: não foi possível abrir %s (%s). Saída limitada.\n" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "%s: dispositivo não encontrado" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" ++msgstr "%s: erro obtendo informações da interface: %s\n" ++ ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - estatísticas não disponíveis -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[SEM FLAGS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Encapsulamento do Link: %s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "Endereço de HW %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Mídia:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s end.: %s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-a-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Masc:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " endereço inet6: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Escopo:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Link" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Site" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Máquina" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Desconhecido" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " Endereço IPX/Ethernet II:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " Endereço IPX/Ethernet SNAP:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " Endereço IPX/Ethernet 802.2:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " Endereço IPX/Ethernet 802.3:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " Endereço EtherTalk fase 2:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " Endereço econet:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[NENHUMA FLAG] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST" ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK" ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Métrica:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Pacotes RX:%lu erros:%lu descartados:%lu sobreposições:%lu frame:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " compactados:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Pacotes TX:%lu erros:%lu descartados:%lu sobreposições:%lu portadora:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " colisões:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "compactados:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "txqueuelen:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "" +-"%s: erro obtendo informações da interface: %s\n" +-"\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "IRQ:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Endereço de E/S:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Memória:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Canal DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Nenhuma família de endereços que possa ser usada foi encontrada.\n" + +@@ -2397,29 +2960,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argumento errado: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Uso: ipmaddr [ add | del ] ENDMULTI dev STRING\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "família %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " usuários %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Não foi possível criar o socket" + +@@ -2434,6 +3000,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: não foi possível escrever o arquivo PID\n" + +@@ -2452,39 +3019,69 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: nome muito longo\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: não foi possível obter o estado corrente!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" +-msgstr "" +-"slattach: tty_open: não foi possível obter a disciplina de linha corrente!\n" ++msgstr "slattach: tty_open: não foi possível obter a disciplina de linha corrente!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: não foi possível configurar o modo RAW!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: não foi possível configurar %s bps!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: não foi possível configurar modo 8N1!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "%s inicializado" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " em %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr "%s: interface desconhecida.\n" ++ ++#~ msgid "" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++#~ "<-''-\n" ++#~ msgstr " arp [-v] [<HW>] [-i <if>] -s <máquina> <end_hw> [netmask <nm>] pub <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: interface desconhecida: %s\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "resposta a mascara de endereço" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "título %s desconhecido\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Tabela de roteamento para `ddp' ainda não suportada.\n" +--- net-tools-1.60.orig/po/Makefile ++++ net-tools-1.60/po/Makefile +@@ -3,13 +3,13 @@ + INSTALL_DATA= ${INSTALL} -m 644 + INSTALLNLSDIR=${BASEDIR}/usr/share/locale + +-TUPDATE = tupdate ++TUPDATE = msgmerge + + NLSPACKAGE = net-tools + + -include ../config.make + ifeq ($(I18N),1) +-CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo ++CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo ja.mo + else + CATALOGS = + endif +@@ -49,7 +49,7 @@ + lang=`echo $$cat | sed 's/.mo//'`; \ + mv $$lang.po $$lang.old.po; \ + echo "$$lang:"; \ +- if $(TUPDATE) $(NLSPACKAGE).pot $$lang.old.po > $$lang.po; then \ ++ if $(TUPDATE) $$lang.old.po $(NLSPACKAGE).pot > $$lang.po; then \ + rm -f $$lang.old.po; \ + else \ + echo "tupdate for $$cat failed!"; \ +--- net-tools-1.60.orig/po/et_EE.po ++++ net-tools-1.60/po/et_EE.po +@@ -6,7 +6,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.58\n" +-"POT-Creation-Date: 2001-02-15 21:28+0200\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 2001-02-15 18:00+0300\n" + "Last-Translator: Meelis Roos <mroos@linux.ee>\n" + "Language-Team: Estonian <linux-ee@eenet.ee>\n" +@@ -14,53 +15,58 @@ + "Content-Type: text/plain; charset=iso-8859-15\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: puudub hosti nimi\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "%s jaoks pole ARP kirjet\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: ei saa riistvaralist aadressi `%s' jaoks: %s\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: vale protokolli tüüp\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: seadmel `%s' on riistvaraline aadress %s `%s'\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: puudub riistvaraline aadress\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: vigane riistvaraline aadress\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: ei saa avada faili %s\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: formaadiviga real %u failis %s\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: ei saa kehtestada ARP kirjet real %u failis %s\n" + +-#: ../arp.c:437 ++#: ../arp.c:448 ++#, c-format + msgid "" + "Address HWtype HWaddress Flags Mask " + "Iface\n" +@@ -68,45 +74,52 @@ + "Aadress HWtüüp HWaadress Lipud Mask " + "Liides\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr " liides %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(mittetäielik)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) aadressil " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "<mittetäielik>" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "võrgumask %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "liides %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "ARP kirjeid kokku: %s\tignoreerisin: %d\tleidsin: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- pole kirjet\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: ei leidnud %d kirje hulgast sobivat\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " +@@ -116,47 +129,45 @@ + "ARP cache vaatamine:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hosti nimi>]\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" + msgstr "" + "ARP kirje kustutamine:\n" + " arp [-v] [-i <if>] -d <hosti nimi> [pub] [nopub]\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr "" + "ARP kirjete lisamine failist:\n" + " arp [-vnD] [<HW>] [-i <if>] -f [<failinimi>]\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" + msgstr "" + "ARP kirje lisamine:\n" + " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [temp] [nopub]\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [netmask <nm>] pub\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr "" + " arp [-v] [<HW>] [-i <if>] -Ds <hosti nimi> <if> [netmask <nm>] pub\n" + "\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +@@ -164,122 +175,132 @@ + " -a näita kõiki hoste alternatiivsel (BSD) " + "kujul\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set uue ARP kirje seadmine\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete määratud kirje kustutamine\n" + +-#: ../arp.c:623 ../netstat.c:1485 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose jutukas väljund\n" + +-#: ../arp.c:624 ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format + msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric mitte lahendada nimesid\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + " -i, --device võrguliidese täpsustamine (näiteks eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr " -D, --use-device lugeda <hwaddr> vastavalt liideselt\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol protokollipere määramine\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" +-" -f, --file lugeda kirjed antud failist või " +-"/etc/ethers'st\n" ++" -f, --file lugeda kirjed antud failist või /etc/" ++"ethers'st\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" + msgstr "" + " <HW>=kasutage '-H <hw>' riistvaralise aadressi määramiseks.\n" + " Vaikimisi: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Võimalike ARP-i toetavate riistvara tüüpide nimekiri:\n" + +-#: ../arp.c:664 ../arp.c:749 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "arp: riistvara tüüpi %s ei toetata\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "arp: aadressiperekonda %s ei toetata\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N toetust pole veel\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: tundmatu aadressiperekond %s\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: tundmatu riistvara tüüp %s\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: tuumas on ainult 'inet' aadressiperekonna toetus\n" + +-#: ../arp.c:754 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: riistvara tüübil %s pole ARP toetust\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Sean sõlme nimeks `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: ainult root saab sõlme nime muuta\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nimi on liiga pikk\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Sean hosti nimeks `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: ainult root saab hosti nime muuta\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Sean domeeni nimeks `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: ainult root saab domeeni nime muuta\n" +@@ -304,25 +325,28 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Tulemus: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: ei saa avada faili `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Kasutamine:\n" + " hostname [-v] {hosti nimi|-F fail} hosti nime seadmine (ka " + "failist)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {nisdomeen|-F fail} NIS domeeni nime seadmine\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +@@ -330,18 +354,21 @@ + " nodename [-v] {nodename|-F fail} DECneti võrgusõlme nime " + "seadmine\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr "" + " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] nime näitamine antud formaadis\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" + msgstr " hostname [-v] hosti nime näitamine\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -350,7 +377,8 @@ + " hostname -h|--help seesama abiinfo\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -358,36 +386,44 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short lühike hosti nimi\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias alias-nimed\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address hosti IP aadressid\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr "" + " -f, --fqdn, --long pikk hosti nimi (FQDN - täielik süsteeminimi)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain DNS domeeni nimi\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis NIS/YP domeeni nimi\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node DECneti võrgusõlme nimi\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -395,7 +431,8 @@ + " -F, --file lugeda hosti või NIS domeeni nimi failist\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -415,6 +452,7 @@ + msgstr "%s: selle käsuga ei saa muuta DNS domeeni nime\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" +@@ -423,6 +461,7 @@ + "Kui Te EI kasuta bind'i ega NIS'i nimede lahendamiseks, saate DNS domeeni\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "(mis on täieliku nime osa) nime muuta failist /etc/hosts.\n" + +@@ -441,76 +480,97 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:110 ++#: ../ifconfig.c:107 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" +-"Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Lip\n" + +-#: ../ifconfig.c:132 ../ifconfig.c:164 +-#, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "ifconfig: tundmatu liides %s: %s\n" ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: viga liidese info küsimisel: %s\n" + +-#: ../ifconfig.c:156 ../ifconfig.c:740 ../ifconfig.c:831 ../ifconfig.c:937 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format + msgid "No support for INET on this system.\n" + msgstr "Antud süsteem ei toeta INET aadressiperekonda\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: viga liidese info küsimisel: %s\n" ++ ++#: ../ifconfig.c:202 ++#, fuzzy, c-format + msgid "" + "Usage:\n" +-" ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" + msgstr "" + "Kasutamine:\n" + " ifconfig [-a] [-i] [-v] [-s] <liides> [[<AF>] <aadress>]\n" + +-#: ../ifconfig.c:181 ++#: ../ifconfig.c:204 ++#, c-format + msgid " [add <address>[/<prefixlen>]]\n" + msgstr " [add <aadress>[/<prefiksi pikkus>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 ++#, c-format + msgid " [del <address>[/<prefixlen>]]\n" + msgstr " [del <aadress>[/<prefiksi pikkus>]]\n" + +-#: ../ifconfig.c:183 ++#: ../ifconfig.c:206 ++#, c-format + msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" + msgstr " [[-]broadcast [<aadress>]] [[-]pointopoint [<aadress>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:207 ++#, c-format + msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" + msgstr " [netmask <aadress>] [dstaddr <aadress>] [tunnel <aadress>]\n" + +-#: ../ifconfig.c:187 ++#: ../ifconfig.c:210 ++#, c-format + msgid " [outfill <NN>] [keepalive <NN>]\n" + msgstr " [outfill <NN>] [keepalive <NN>]\n" + +-#: ../ifconfig.c:189 ++#: ../ifconfig.c:212 ++#, c-format + msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" + msgstr " [hw <HW> <aadress>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:190 ++#: ../ifconfig.c:213 ++#, c-format + msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" + msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:191 ++#: ../ifconfig.c:214 ++#, c-format + msgid " [multicast] [[-]promisc]\n" + msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:192 ++#: ../ifconfig.c:215 ++#, c-format + msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" + msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tüüp>]\n" + +-#: ../ifconfig.c:194 ++#: ../ifconfig.c:217 ++#, c-format + msgid " [txqueuelen <NN>]\n" + msgstr " [txqueuelen <NN>]\n" + +-#: ../ifconfig.c:197 ++#: ../ifconfig.c:220 ++#, c-format + msgid " [[-]dynamic]\n" + msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:199 ++#: ../ifconfig.c:222 ++#, c-format + msgid "" + " [up|down] ...\n" + "\n" +@@ -518,73 +578,134 @@ + " [up|down] ...\n" + "\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:224 ++#, c-format + msgid " <HW>=Hardware Type.\n" + msgstr " <HW>=riistvara tüüp\n" + +-#: ../ifconfig.c:202 ++#: ../ifconfig.c:225 ++#, c-format + msgid " List of possible hardware types:\n" + msgstr " Võimalike riistvara tüüpide nimekiri:\n" + + #. 1 = ARPable +-#: ../ifconfig.c:204 ++#: ../ifconfig.c:227 + #, c-format + msgid " <AF>=Address family. Default: %s\n" + msgstr " <AF>=aadressiperekond, vaikimisi %s\n" + +-#: ../ifconfig.c:205 ++#: ../ifconfig.c:228 ++#, c-format + msgid " List of possible address families:\n" + msgstr " Võimalike aadressiperekondade nimekiri:\n" + +-#: ../ifconfig.c:361 ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" ++ ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" ++ ++#: ../ifconfig.c:380 ++#, c-format + msgid "Unknown media type.\n" + msgstr "Tundmatu meedia tüüp\n" + +-#: ../ifconfig.c:653 ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:684 + #, c-format + msgid "hw address type `%s' has no handler to set address. failed.\n" + msgstr "" + "riistvara aadressi tüübil `%s' pole käsitlejat aadressi seadmiseks - ebaõnn\n" + +-#: ../ifconfig.c:662 ++#: ../ifconfig.c:693 + #, c-format + msgid "%s: invalid %s address.\n" + msgstr "%s: vigane %s aadress\n" + +-#: ../ifconfig.c:706 ../ifconfig.c:796 ../ifconfig.c:882 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format + msgid "No support for INET6 on this system.\n" + msgstr "Antud süsteem ei toeta INET6 aadressiperekonda\n" + +-#: ../ifconfig.c:749 ../ifconfig.c:840 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format + msgid "Interface %s not initialized\n" + msgstr "Liides %s pole initsialiseeritud\n" + +-#: ../ifconfig.c:761 ../ifconfig.c:851 ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format + msgid "Bad address.\n" + msgstr "Vigane aadress\n" + +-#: ../ifconfig.c:854 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Antud süsteem ei toeta aadresside kustutamist\n" + +-#: ../ifconfig.c:947 ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n" ++ ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Antud süsteem ei toeta ECONET aadressiperekonda\n" + +-#: ../ifconfig.c:955 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n" + +-#: ../netstat.c:429 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" + msgstr "" + "(\"-p\" jaoks ei saanud infot lugeda: geteuid()=%d, aga vaja oleks root'u)\n" + +-#: ../netstat.c:433 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -592,210 +713,223 @@ + "(Mõnesid protsesse ei saanud identifitseerida, teiste kasutajate\n" + "info lugemiseks peab olema root)\n" + +-#: ../netstat.c:440 ../netstat.c:1171 ../netstat.c:1248 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "LISTENING" + +-#: ../netstat.c:441 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN SENT" + +-#: ../netstat.c:442 ../netstat.c:1250 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC SENT" + +-#: ../netstat.c:443 ../netstat.c:510 ../netstat.c:889 ../netstat.c:1251 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABLISHED" + +-#: ../netstat.c:465 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktiivsed NET/ROM soklid\n" + +-#: ../netstat.c:466 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + "Kasutaja Sihtpunkt Lähtepunkt Liides Olek Vr/Vs SaatJrk " + "VvJrk\n" + +-#: ../netstat.c:476 ../netstat.c:1290 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Probleem andmete lugemisel failist %s\n" + +-#: ../netstat.c:511 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:512 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:513 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:514 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:515 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:516 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:517 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:518 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:519 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:520 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:587 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "Hoiatus - sain imeliku igmp6 rea (nr. %d)\n" + +-#: ../netstat.c:592 ../netstat.c:630 ../netstat.c:751 ../netstat.c:883 +-#: ../netstat.c:1014 ../netstat.c:1019 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: aadressiperekonda %d ei toetata\n" + +-#: ../netstat.c:605 ../netstat.c:610 ../netstat.c:618 ../netstat.c:625 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "Hoiatus - sain imeliku igmp rea (nr. %d)\n" + +-#: ../netstat.c:668 ++#: ../netstat.c:677 ++#, c-format + msgid "Active X.25 sockets\n" + msgstr "Aktiivsed X.25 soklid\n" + + #. IMHO, Vr/Vs is not very usefull --SF +-#: ../netstat.c:670 ++#: ../netstat.c:679 ++#, c-format + msgid "" +-"Dest Source Device LCI State Vr/Vs Send-Q " +-"Recv-Q\n" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + "Sihtpunkt Lähtepunkt Liides LCI Olek Vr/Vs SaatJrk VvJrk\n" + +-#: ../netstat.c:747 ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "Hoiatus - sain imeliku tcp rea\n" + +-#: ../netstat.c:788 ../netstat.c:938 ../netstat.c:1057 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "eikäi ((0.00/%ld/%d)" + +-#: ../netstat.c:792 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "käib (%2.2f/%ld/%d)" + +-#: ../netstat.c:797 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "keepalive (%2.2f/%ld/%d)" + +-#: ../netstat.c:802 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "timewait (%2.2f/%ld/%d)" + +-#: ../netstat.c:807 ../netstat.c:947 ../netstat.c:1067 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "eitea-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:879 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "Hoiatus - sain imeliku udp rea\n" + +-#: ../netstat.c:897 ../netstat.c:1157 ../netstat.c:1190 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "TUNDMATU" + +-#: ../netstat.c:943 ../netstat.c:1062 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "käib-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "Hoiatus - sain imeliku raw rea\n" + +-#: ../netstat.c:1110 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "Hoiatus - sain imeliku unix rea\n" + +-#: ../netstat.c:1137 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1141 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1149 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1153 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1162 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "VABA" + +-#: ../netstat.c:1178 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "ÜHENDUMAS" + +-#: ../netstat.c:1182 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "ÜHENDATUD" + +-#: ../netstat.c:1186 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "LAHTIÜHENDUMAS" + +-#: ../netstat.c:1217 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Aktiivsed UNIX domeeni soklid " + +-#: ../netstat.c:1219 ../netstat.c:1729 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(serverid ja ühendatud)" + +-#: ../netstat.c:1222 ../netstat.c:1732 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(ainult serverid)" + +-#: ../netstat.c:1224 ../netstat.c:1734 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(ilma serveriteta)" + +-#: ../netstat.c:1227 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -803,32 +937,36 @@ + "\n" + "Proto Mitu Lipud Tüüp Olek I-kirje " + +-#: ../netstat.c:1229 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr "Tee\n" + +-#: ../netstat.c:1249 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM SENT" + +-#: ../netstat.c:1252 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECOVERY" + +-#: ../netstat.c:1266 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktiivsed AX.25 soklid\n" + +-#: ../netstat.c:1267 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Sihtpunkt Lähtepunkt Liides Olek Vr/Vs SaatJrk VvJrk\n" + +-#: ../netstat.c:1310 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "Probleem andmete lugemisel failist %s\n" + +-#: ../netstat.c:1361 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " +@@ -838,47 +976,53 @@ + "Proto VvJrk SaatJrk Kohalik aadress Väline aadress " + "Olek " + +-#: ../netstat.c:1363 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Kasutaja" + +-#: ../netstat.c:1397 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1405 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNK." + +-#: ../netstat.c:1443 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tuuma liideste tabel\n" + +-#: ../netstat.c:1447 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" +-"Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Lip\n" + +-#: ../netstat.c:1451 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "Puudulik informatsioon liideste kohta" + +-#: ../netstat.c:1474 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "Kasutamine: netstat [-veenNcCF] [<Af>] -r\n" + " netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1475 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeol] [<Sokkel> ...]\n" + +-#: ../netstat.c:1476 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -886,25 +1030,30 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1478 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route ruutingutabeli näitamine\n" + +-#: ../netstat.c:1479 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces liideste tabeli näitamine\n" + +-#: ../netstat.c:1480 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr " -g, --groups multiedastuse gruppide näitamine\n" + +-#: ../netstat.c:1481 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics võrgu statistika näitamine (SNMP stiilis)\n" + +-#: ../netstat.c:1483 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -912,36 +1061,39 @@ + " -M, --masquerade maskeeritavate ühenduste näitamine\n" + "\n" + +-#: ../netstat.c:1486 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" +-msgstr " -n, --numeric mitte lahendada numbreid nimedeks\n" +- +-#: ../netstat.c:1487 +-msgid " --numeric-hosts dont resolve host names\n" ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" + msgstr " --numeric-hosts mitte lahendada hostinimesid\n" + +-#: ../netstat.c:1488 +-msgid " --numeric-ports dont resolve port names\n" ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" + msgstr " --numeric-ports mitte lahendada pordinimesid\n" + +-#: ../netstat.c:1489 +-msgid " --numeric-users dont resolve user names\n" ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" + msgstr " --numeric-users mitte lahendada kasutajanimesid\n" + +-#: ../netstat.c:1490 ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic lahendada riistvara aadressid\n" + +-#: ../netstat.c:1491 ../route.c:87 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend muu info/lisainfo näitamine\n" + +-#: ../netstat.c:1492 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs soklite kohta PID/protsessi nime näitamine\n" + +-#: ../netstat.c:1493 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -949,22 +1101,26 @@ + " -c, --continuous pidevalt uuenev nimekiri\n" + "\n" + +-#: ../netstat.c:1494 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr " -l, --listening kuulavate serversoklite näitamine\n" + +-#: ../netstat.c:1495 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening kõigi soklite näitamine (vaikimisi " + "ühendatud)\n" + +-#: ../netstat.c:1496 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers taimerite näitamine\n" + +-#: ../netstat.c:1497 ../route.c:88 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -972,7 +1128,8 @@ + " -F, --fib üldiste ruutingutabelite näitamine " + "(vaikimisi)\n" + +-#: ../netstat.c:1498 ../route.c:89 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -981,108 +1138,121 @@ + "näitamine\n" + "\n" + +-#: ../netstat.c:1500 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Sokkel>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Sokkel>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1501 ../route.c:91 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=kasutage '-A <af>' või '--<af>' vaikimisi: %s\n" + +-#: ../netstat.c:1502 ../route.c:92 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Võimalike ruutingu toetavate aadressiperekondade nimekiri:\n" + +-#: ../netstat.c:1726 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktiivsed internetiühendused " + +-#: ../netstat.c:1736 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto VvJrk SaatJrk Kohalik aadress Väline aadress Olek " +-" " ++"Proto VvJrk SaatJrk Kohalik aadress Väline aadress " ++"Olek " + +-#: ../netstat.c:1738 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Kasutaja I-kirje " + +-#: ../netstat.c:1741 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Taimer" + +-#: ../netstat.c:1771 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "IPv4 grupikuuluvused\n" + +-#: ../netstat.c:1772 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Liides Mitu Grupp\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "rarp: tuum ei toeta RARP'i\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "rarp: %s jaoks pole RARP kirjet\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "rarp: vigane riistvaraline aadress %s\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: ei saa avada faili %s:%s\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: vorminguviga failis %s real %u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: tundmatu host %s\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: ei saa kehtestada kirjet failist %s realt %u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + "Kasutamine:\n" + " rarp -a puhvris olevate kirjete vaatamine\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" + msgstr " rarp -d <hosti nimi> kirje kustutamine puhvrist\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" + msgstr " rarp [<HW>] -s <hosti nimi> <hwaddr> kirje lisamine puhvrisse\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f kirjete lisamine failist /etc/ethers\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1090,24 +1260,26 @@ + " rarp -V programmi versiooni näitamine\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: lubamatu võtmete kombinatsioon\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: tundmatu riistvara tüüp %s\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Kasutamine:\n" + " route [-nNvee] [-FC] [<AF>] Tuuma ruutingutabeli näitamine\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1115,7 +1287,8 @@ + " route [-v] [-FC] {add|del|flush} ... Tuuma ruutingutabeli muutmine\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" +@@ -1123,7 +1296,8 @@ + " route {-h|--help} [<AF>] Detailne süntaks perekonna AF " + "jaoks\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1132,15 +1306,23 @@ + " route {-V|--version} Versiooni ja oskuste näitamine\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=kasutage '-A <af>' või '--<af>' vaikimisi: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Kasutamine: plipconfig [-a] [-i] [-v] liides\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1149,25 +1331,30 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Kasutamine: iptunnel { add | change | del | show } [ NIMI ]\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + " [ mode { ipip | gre | sit } ] [ remote AADR ] [ local AADR ]\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev LIIDES ]\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1175,83 +1362,99 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:89 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Kus: NIMI := STRING\n" + +-#: ../iptunnel.c:90 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " AADR := { IP_AADRESS | any }\n" + +-#: ../iptunnel.c:91 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { ARV | inherit }\n" + +-#: ../iptunnel.c:92 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:93 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + " KEY := { PUNKTIDEGA_ARVUNELIK | ARV }\n" + " LIIDES := FÜÜSILISE_LIIDESE_NIMI\n" + +-#: ../iptunnel.c:331 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "ipip ja sit juures ei ole võtmed lubatud\n" + +-#: ../iptunnel.c:351 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Leviedastusega tunnel vajab lähteaadressi\n" + +-#: ../iptunnel.c:366 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 ning noptmudisc ei sobi kokku\n" + +-#: ../iptunnel.c:378 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "Ei suuda määrata tunneli moodi (ipip, gre või sit)\n" + +-#: ../iptunnel.c:416 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip teises otsas %s siin %s " + +-#: ../iptunnel.c:420 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "tundmatu" + +-#: ../iptunnel.c:452 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Järjekorravälised paketid visatakse minema\n" + +-#: ../iptunnel.c:454 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Vastuvõetavates pakettides on kontrollsumma kohustuslik\n" + +-#: ../iptunnel.c:456 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Väljuvad paketid varustatakse järjekorranumbritega\n" + +-#: ../iptunnel.c:458 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Väljuvad paketid varustatakse kontrollsummaga\n" + +-#: ../iptunnel.c:486 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "/proc/net/dev on vales formaadis. Vale tuuma versioon?\n" + +-#: ../iptunnel.c:499 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Ei suutnud kindlaks teha liidese %s tüüpi\n" + +-#: ../iptunnel.c:515 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakette Baite Vigu KSumVigu JrkVigu Levipakette\n" + +-#: ../iptunnel.c:518 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakette Baite Vigu DeadLoop EiRuudi MäluOtsas\n" + +@@ -1658,13 +1861,13 @@ + msgstr "%u paketti pandi otse recvmsg eeljärjekorda" + + #: ../statistics.c:178 +-#, c-format +-msgid "%u packets directly received from backlog" ++#, fuzzy, c-format ++msgid "%u of bytes directly received from backlog" + msgstr "%u paketti võeti vastu otse backlog-ist" + + #: ../statistics.c:180 +-#, c-format +-msgid "%u packets directly received from prequeue" ++#, fuzzy, c-format ++msgid "%u of bytes directly received from prequeue" + msgstr "%u paketti võeti vastu otse eeljärjekorrast" + + #: ../statistics.c:182 +@@ -1673,8 +1876,8 @@ + msgstr "%u paketti kustutati eeljärjekorrast" + + #: ../statistics.c:183 +-#, c-format +-msgid "%u packets header predicted" ++#, fuzzy, c-format ++msgid "%u packet headers predicted" + msgstr "%u paketti päise õige ennustusega" + + #: ../statistics.c:184 +@@ -1687,19 +1890,210 @@ + msgid "Ran %u times out of system memory during packet sending" + msgstr "Pakettide saatmisel sai %u korda süsteemne mälu otsa" + +-#: ../statistics.c:253 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%u sisenevat paketti tundmatule pordile" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%u vigast segmenti võeti vastu" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, fuzzy, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%u katkestust saadeti" ++ ++#: ../statistics.c:202 ++#, fuzzy, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:206 ++#, fuzzy, c-format ++msgid "%u forward retransmits" ++msgstr "%u edastati" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%u pakettide kokkupanekut ebaõnnestus" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "" ++"%u paketti kustutati vastuvõtu järjekorrast sokli puhvri ületäitumise tõttu" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%u paketti võeti vastu" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "kokku võeti vastu %u paketti" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%u aktiivsest ühendusest keelduti ajatempli tõttu" ++ ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "lubatud" + +-#: ../statistics.c:253 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "keelatud" + +-#: ../statistics.c:336 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "Viga /proc/net/snmp analüüsimisel" + +-#: ../statistics.c:349 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "Ei saa avada faili /proc/net/snmp" + +@@ -1713,7 +2107,7 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Ei suuda seada `%s' liiniprotokolliks\n" + +-#: ../lib/af.c:153 ../lib/hw.c:156 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +@@ -1729,11 +2123,11 @@ + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:164 ../lib/hw.c:177 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:167 ../lib/hw.c:183 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +@@ -1745,7 +2139,7 @@ + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:176 ../lib/hw.c:218 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +@@ -1753,19 +2147,21 @@ + msgid "CCITT X.25" + msgstr "CCITT X.25" + +-#: ../lib/af.c:182 ../lib/hw.c:180 ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:185 ../lib/hw.c:168 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + + #: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Meil on kombeks üks aadressiperekond korraga\n" + + #: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Liiga palju aadressiperekonna argumente\n" + +@@ -1790,6 +2186,7 @@ + msgstr "in_arcnet(%s): sodi lõpus\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Vigane Ash aadress" + +@@ -1808,22 +2205,21 @@ + msgstr "Liiga pikk kutsung" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 pole antud süsteemis konfigureeritud\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Tuuma AX.25 ruutingutabel\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Sihtpunkt Liides Kasutus\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "`ddp' jaoks ruutingutabelit veel ei oska\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1879,90 +2275,94 @@ + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): sodi lõpus\n" + +-#: ../lib/hw.c:155 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Kohalik loopback" + +-#: ../lib/hw.c:158 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "Serial Line IP" + +-#: ../lib/hw.c:159 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "VJ Serial Line IP" + +-#: ../lib/hw.c:160 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6-bitine Serial Line IP" + +-#: ../lib/hw.c:161 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "VJ 6-bitine Serial Line IP" + +-#: ../lib/hw.c:162 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptiivne Serial Line IP" + +-#: ../lib/hw.c:165 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:171 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:174 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:186 ++#: ../lib/hw.c:191 + msgid "generic X.25" + msgstr "üldine X.25" + +-#: ../lib/hw.c:189 ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP tunnel" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Kakspunktprotokoll" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco-)HDLC" + +-#: ../lib/hw.c:196 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:199 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:202 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Frame Relay Access Device" + +-#: ../lib/hw.c:206 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-in-IPv4" + +-#: ../lib/hw.c:209 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:212 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "16/4 Mbps Token Ring" + +-#: ../lib/hw.c:214 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "16/4 Mbps Token Ring (New)" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" +@@ -1972,27 +2372,32 @@ + msgid "[UNKNOWN]" + msgstr "[TUNDMATU]" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) pole antud süsteemis konfigureeritud\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Tuuma IPv6 ruutingutabel\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Sihtpunkt Järgmine samm " +-" Lipud Meetr Mitu Kasut Liides\n" ++"Sihtpunkt Järgmine " ++"samm Lipud Meetr Mitu Kasut Liides\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Tuuma IPv6 naabrite puhver\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2000,7 +2405,8 @@ + "Naaber HW Aadress Liides Lipud " + "Mitu Olek\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +@@ -2009,31 +2415,38 @@ + "Mitu Olek Stale(sec) Delete(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Kasutamine: route [-vF] del AADRESS\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr "" + " route [-vF] add AADRESS [gw GW] [metric M] [[dev] LIIDES]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " route [-FC] flush Seda EI toetata\n" + + #: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "`inet6' ruutingutabeli tühjendamist ei toetata\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) pole antud süsteemis konfigureeritud\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Tuuma IP ruutingutabel\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2042,6 +2455,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2050,6 +2464,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2058,10 +2473,12 @@ + "Liides MSS Aken irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Tuuma IP ruutingu puhver\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2070,6 +2487,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2078,6 +2496,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2086,6 +2505,7 @@ + "Liides MSS Aken irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2093,7 +2513,8 @@ + "Lähtepunkt Sihtpunkt Ruuter Lipud Meetr Mitu Kasut " + "Liides MSS Aken irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2101,31 +2522,36 @@ + "Kasutamine: route [-vF] del {-host|-net} AADRESS[/PREFIKS] [gw GW] [metric " + "M] [[dev] LIIDES]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " route [-vF] add {-host|-net} AADRESS[/PREFIKS] [gw GW] [metric " + "M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss MSS] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] LIIDES]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " route [-vF] add {-host|-net} AADRESS[/PREFIKS] [metric M] " + "reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " route [-FC] flush Seda EI toetata\n" + +@@ -2135,14 +2561,17 @@ + msgstr "route: %s: võrku ei saa kasutada ruuterina\n" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: vigane MSS/MTU\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Vigane akna suurus\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: vigane algne rtt\n" + +@@ -2157,75 +2586,92 @@ + msgstr "route: vale võrgumask %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: võrgumask ei sobi ruutingu aadressiga\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "`inet' ruutingutabeli tühjendamist ei toetata\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "`inet' ruutingu puhvri muutmist ei toetata\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX pole antud süsteemis konfigureeritud\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Tuuma IPX ruutingutabel\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Sihtpunkt Ruuteri võrk Ruuter ise\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX osa vajab ümbertegemist\n" + + #: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP maskeerimise kirjed\n" + + #: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "Proto Aegub Lähtepunkt Sihtpunkt Pordid\n" + + #: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"Proto Aegub Initseq Delta Prevd Lähtepunkt Sihtpunkt " +-" Pordid\n" ++"Proto Aegub Initseq Delta Prevd Lähtepunkt " ++"Sihtpunkt Pordid\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM pole antud süsteemis konfigureeritud\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Tuuma NET/ROM ruutingutabel\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Sihtpunkt Mnemoonika Kvaliteet Naaber Liides\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "netrom kasutus\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM osa vajab ümbertegemist\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Sellest programmist ei saa PPP-d käivitada\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Palun kasutage pppd'd\n" + +@@ -2234,287 +2680,314 @@ + msgstr "Sõlme aadress peab olema kümnekohaline" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE pole antud süsteemis konfigureeritud\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Tuuma ROSE ruutingutabel\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): vigane token ring-aadress\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): ignoreerin lõpetavat koolonit\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): sodi lõpus\n" + +-#: ../lib/interface.c:164 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "Hoiatus: `inet' sokleid ei ole: %s\n" + +-#: ../lib/interface.c:316 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "Hoiatus: ei saa avada faili %s (%s). Väljund on piiratud.\n" + + #. Give better error message for this case. +-#: ../lib/interface.c:556 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Liidest ei leitud" + +-#: ../lib/interface.c:560 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: viga liidese info küsimisel: %s\n" + +-#: ../lib/interface.c:593 ++#: ../lib/interface.c:608 + msgid " - no statistics available -" + msgstr " - statistikat ei ole -" + +-#: ../lib/interface.c:597 ++#: ../lib/interface.c:612 ++#, c-format + msgid "[NO FLAGS]" + msgstr "[LIPPE POLE]" + +-#: ../lib/interface.c:673 ++#: ../lib/interface.c:688 + #, c-format + msgid "%-9.9s Link encap:%s " + msgstr "%-9.9s kapseldus:%s " + +-#: ../lib/interface.c:678 ++#: ../lib/interface.c:693 + #, c-format + msgid "HWaddr %s " + msgstr "HWaddr %s " + +-#: ../lib/interface.c:681 ++#: ../lib/interface.c:696 + #, c-format + msgid "Media:%s" + msgstr "meedia:%s" + +-#: ../lib/interface.c:683 ++#: ../lib/interface.c:698 ++#, c-format + msgid "(auto)" + msgstr "(auto)" + +-#: ../lib/interface.c:690 ++#: ../lib/interface.c:705 + #, c-format + msgid " %s addr:%s " + msgstr " %s aadress:%s " + +-#: ../lib/interface.c:693 ++#: ../lib/interface.c:708 + #, c-format + msgid " P-t-P:%s " + msgstr " P-t-P:%s " + +-#: ../lib/interface.c:696 ++#: ../lib/interface.c:711 + #, c-format + msgid " Bcast:%s " + msgstr " bcast:%s " + +-#: ../lib/interface.c:698 ++#: ../lib/interface.c:713 + #, c-format + msgid " Mask:%s\n" + msgstr " mask:%s\n" + +-#: ../lib/interface.c:715 ++#: ../lib/interface.c:730 + #, c-format + msgid " inet6 addr: %s/%d" + msgstr " inet6 aadr: %s/%d" + +-#: ../lib/interface.c:717 ++#: ../lib/interface.c:732 ++#, c-format + msgid " Scope:" + msgstr " skoop:" + +-#: ../lib/interface.c:720 ++#: ../lib/interface.c:735 ++#, c-format + msgid "Global" + msgstr "globaalne" + +-#: ../lib/interface.c:723 ++#: ../lib/interface.c:738 ++#, c-format + msgid "Link" + msgstr "ühendus" + +-#: ../lib/interface.c:726 ++#: ../lib/interface.c:741 ++#, c-format + msgid "Site" + msgstr "site" + +-#: ../lib/interface.c:729 ++#: ../lib/interface.c:744 ++#, c-format + msgid "Compat" + msgstr "ühilduvus" + +-#: ../lib/interface.c:732 ++#: ../lib/interface.c:747 ++#, c-format + msgid "Host" + msgstr "host" + +-#: ../lib/interface.c:735 ++#: ../lib/interface.c:750 ++#, c-format + msgid "Unknown" + msgstr "tundmatu" + +-#: ../lib/interface.c:750 ++#: ../lib/interface.c:765 + #, c-format + msgid " IPX/Ethernet II addr:%s\n" + msgstr " IPX/Ethernet II aadr:%s\n" + +-#: ../lib/interface.c:753 ++#: ../lib/interface.c:768 + #, c-format + msgid " IPX/Ethernet SNAP addr:%s\n" + msgstr " IPX/Ethernet SNAP aadr:%s\n" + +-#: ../lib/interface.c:756 ++#: ../lib/interface.c:771 + #, c-format + msgid " IPX/Ethernet 802.2 addr:%s\n" + msgstr " IPX/Ethernet 802.2 aadr:%s\n" + +-#: ../lib/interface.c:759 ++#: ../lib/interface.c:774 + #, c-format + msgid " IPX/Ethernet 802.3 addr:%s\n" + msgstr " IPX/Ethernet 802.3 aadr:%s\n" + +-#: ../lib/interface.c:769 ++#: ../lib/interface.c:784 + #, c-format + msgid " EtherTalk Phase 2 addr:%s\n" + msgstr " EtherTalk Phase 2 aadr:%s\n" + +-#: ../lib/interface.c:778 ++#: ../lib/interface.c:793 + #, c-format + msgid " econet addr:%s\n" + msgstr " econeti aadr:%s\n" + +-#: ../lib/interface.c:785 ++#: ../lib/interface.c:800 ++#, c-format + msgid "[NO FLAGS] " + msgstr "[LIPPE POLE]" + +-#: ../lib/interface.c:787 ++#: ../lib/interface.c:802 ++#, c-format + msgid "UP " + msgstr "UP " + +-#: ../lib/interface.c:789 ++#: ../lib/interface.c:804 ++#, c-format + msgid "BROADCAST " + msgstr "BROADCAST " + +-#: ../lib/interface.c:791 ++#: ../lib/interface.c:806 ++#, c-format + msgid "DEBUG " + msgstr "DEBUG " + +-#: ../lib/interface.c:793 ++#: ../lib/interface.c:808 ++#, c-format + msgid "LOOPBACK " + msgstr "LOOPBACK " + +-#: ../lib/interface.c:795 ++#: ../lib/interface.c:810 ++#, c-format + msgid "POINTOPOINT " + msgstr "POINTOPOINT " + +-#: ../lib/interface.c:797 ++#: ../lib/interface.c:812 ++#, c-format + msgid "NOTRAILERS " + msgstr "NOTRAILERS " + +-#: ../lib/interface.c:799 ++#: ../lib/interface.c:814 ++#, c-format + msgid "RUNNING " + msgstr "RUNNING " + +-#: ../lib/interface.c:801 ++#: ../lib/interface.c:816 ++#, c-format + msgid "NOARP " + msgstr "NOARP " + +-#: ../lib/interface.c:803 ++#: ../lib/interface.c:818 ++#, c-format + msgid "PROMISC " + msgstr "PROMISC " + +-#: ../lib/interface.c:805 ++#: ../lib/interface.c:820 ++#, c-format + msgid "ALLMULTI " + msgstr "ALLMULTI " + +-#: ../lib/interface.c:807 ++#: ../lib/interface.c:822 ++#, c-format + msgid "SLAVE " + msgstr "SLAVE " + +-#: ../lib/interface.c:809 ++#: ../lib/interface.c:824 ++#, c-format + msgid "MASTER " + msgstr "MASTER " + +-#: ../lib/interface.c:811 ++#: ../lib/interface.c:826 ++#, c-format + msgid "MULTICAST " + msgstr "MULTICAST " + +-#: ../lib/interface.c:814 ++#: ../lib/interface.c:829 ++#, c-format + msgid "DYNAMIC " + msgstr "DYNAMIC " + + #. DONT FORGET TO ADD THE FLAGS IN ife_print_short +-#: ../lib/interface.c:817 ++#: ../lib/interface.c:832 + #, c-format + msgid " MTU:%d Metric:%d" + msgstr " MTU:%d meetrika:%d" + +-#: ../lib/interface.c:821 ++#: ../lib/interface.c:836 + #, c-format + msgid " Outfill:%d Keepalive:%d" + msgstr " ülalhoidepakettide intervall:%d ülalhoidetaimaut:%d" + +-#: ../lib/interface.c:835 ++#: ../lib/interface.c:850 + #, c-format + msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" + msgstr "RX pakette:%llu vigu:%lu ära visatud:%lu ületäit:%lu kaadri vigu:%lu\n" + +-#: ../lib/interface.c:840 ++#: ../lib/interface.c:855 + #, c-format + msgid " compressed:%lu\n" + msgstr " pakitud:%lu\n" + +-#: ../lib/interface.c:852 ++#: ../lib/interface.c:895 + #, c-format + msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" + msgstr "TX pakette:%llu vigu:%lu ära visatud:%lu ületäit:%lu carrier:%lu\n" + +-#: ../lib/interface.c:856 ++#: ../lib/interface.c:899 + #, c-format + msgid " collisions:%lu " + msgstr " kollisioone:%lu " + +-#: ../lib/interface.c:858 ++#: ../lib/interface.c:901 + #, c-format + msgid "compressed:%lu " + msgstr "pakitud:%lu " + +-#: ../lib/interface.c:860 ++#: ../lib/interface.c:903 + #, c-format + msgid "txqueuelen:%d " + msgstr "txqueuelen:%d " + +-#: ../lib/interface.c:862 ++#: ../lib/interface.c:905 + #, c-format + msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "RX baite:%llu (%lu.%lu %s) TX baite:%llu (%lu.%lu %s)\n" + +-#: ../lib/interface.c:873 ++#: ../lib/interface.c:916 + #, c-format + msgid "Interrupt:%d " + msgstr "katkestus:%d " + + #. Only print devices using it for + #. I/O maps +-#: ../lib/interface.c:876 ++#: ../lib/interface.c:919 + #, c-format + msgid "Base address:0x%x " + msgstr "baasaadress:0x%x " + +-#: ../lib/interface.c:878 ++#: ../lib/interface.c:921 + #, c-format + msgid "Memory:%lx-%lx " + msgstr "mälu:%lx-%lx " + +-#: ../lib/interface.c:881 ++#: ../lib/interface.c:924 + #, c-format + msgid "DMA chan:%x " + msgstr "DMA kanal:%x " + + #: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Ei leidnud ühtegi kasutatavat aadressiperekonda\n" + +@@ -2538,29 +3011,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "iptunnel: vale argument %s\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Kasutamine: ipmaddr [ add | del ] MULTIAADR dev STRING\n" + +-#: ../ipmaddr.c:59 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:60 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:260 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "perekond %d " + +-#: ../ipmaddr.c:269 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " kasutajaid %d" + +-#: ../ipmaddr.c:355 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Ei saa avada soklit" + +@@ -2575,6 +3051,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: ei saa PID faili kirjutada\n" + +@@ -2594,18 +3071,22 @@ + msgstr "slattach: tty_hangup(RAISE): %s\n" + + #: ../slattach.c:468 ++#, c-format + msgid "slattach: tty name too long\n" + msgstr "slattach: terminali nimi on liiga pikk\n" + + #: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: ei saa lugeda jooksvat olekut\n" + + #: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "slattach: tty_open: liiniprotokolli küsimine ebaõnnestus\n" + + #: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: ei saa seada RAW moodi\n" + +@@ -2615,6 +3096,7 @@ + msgstr "slattach: tty_open: ei saa seada kiiruseks %s bps\n" + + #: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: ei saa seada 8N1 moodi\n" + +@@ -2637,3 +3119,20 @@ + #, c-format + msgid " interface %s\n" + msgstr " liides %s\n" ++ ++#~ msgid "" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++#~ "<-''-\n" ++#~ msgstr "" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [netmask <nm>] " ++#~ "pub\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "ifconfig: tundmatu liides %s: %s\n" ++ ++#~ msgid " -n, --numeric dont resolve names\n" ++#~ msgstr "" ++#~ " -n, --numeric mitte lahendada numbreid nimedeks\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "`ddp' jaoks ruutingutabelit veel ei oska\n" +--- net-tools-1.60.orig/po/de.po ++++ net-tools-1.60/po/de.po +@@ -1,106 +1,121 @@ +-# $Id: de.po,v 1.10 2000/08/01 03:19:48 ecki Exp $ ++# $Id: de.po,v 1.11 2003/10/25 21:15:09 ecki Exp $ + # German translation for net-tools 1.51 + # Copyright (C) 1999 Ralf Bächle <ralf@gnu.org> + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" +-"PO-Revision-Date: 1998-03-01 00:02+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" ++"PO-Revision-Date: 2005-06-13 00:02+0100\n" + "Last-Translator: Ralf Bächle <ralf@gnu.org>\n" + "Language-Team:\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=iso8859-1\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" +-msgstr "arp: Hostname muß angegeben werden\n" ++msgstr "arp: Hostname muss angegeben werden\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" +-msgstr "Kein ARP Eintrag für %s\n" ++msgstr "Kein ARP-Eintrag für %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "rarp: Kann Eintrag aus %s : %u nicht setzen.\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: unpassende Protokolltypen.\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" +-msgstr "arp: Gerät ,,%s'' hat HW-Adresse %s ,,%s''.\n" ++msgstr "arp: Gerät »%s« hat HW-Adresse %s »%s«.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" +-msgstr "arp: Hardwareadresse muß angegeben werden\n" ++msgstr "arp: Hardwareadresse muss angegeben werden\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: ungültige Hardwareadresse\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: Kann %s nicht öffnen!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: Formatfehler in Zeile %u von Etherfile %s.\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: Kann Eintrag auf Zeile %u von Etherdatei %s nicht setzen!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresse\t\t\tHWTyp\tHWAdresse\t Flags Maske\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr " Schnittstelle: %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" +-msgstr "(unvollsändig)" ++msgstr "(unvollständig)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) auf " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "<unvollständig> " + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "netzmaske %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "auf %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Einträge: %d Ignoriert: %d Gefunden: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- kein Eintrag\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" +-msgstr "arp: In %d Einträgen wurde kein Zutreffender gefunden.\n" ++msgstr "arp: In %d Einträgen wurde kein zutreffender gefunden.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " +@@ -109,157 +124,165 @@ + "Benutzung:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<Hostname>]\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" + msgstr " arp [-v] [-i <if>] -d <Hostname> [pub][nopub]\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr " arp [-vnD] [<HW>] [-i <if>] -f <Dateiname> <- Eintrag aus Datei hinzufügen\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" + msgstr "" + " arp [-v] [<HW>] [-i <if>] -s <Rechnername> <hwaddr> [temp][nopub]\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <Hostname> <hwaddr> [netmask <nm>] pub\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr " arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" + msgstr " -a Alle Hosts im BSD-Format anzeigen\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set Neuen ARP-Eintrag setzen\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete Einen bestimmten Eintrag löschen\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose Ausführliche Ausgaben\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" +-msgstr " -i, --device Netzwerksgerät (z.B. eth0) angeben\n" ++msgstr " -i, --device Netzwerkgerät (z.B. eth0) angeben\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr " -D, --use-device <hwaddr> von gegebenem Gerät lesen\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol Routentabelle anzeigen\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file Neue Einträge aus Datei lesen\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" + msgstr " <HW>='-H <hw>' um Hardwareadresstyp anzugeben. Standard: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Liste möglicher Hardwaretypen, die ARP unterstützen:\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: Hardwaretyp nicht unterstützt!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: Adressfamilie nicht unterstützt!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N noch nicht unterstützt.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: unbekannte Adressfamilie.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: unbekannter Hardwaretyp.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" +-msgstr "arp: %s: Kernel unterstützt nur ,,inet''.\n" ++msgstr "arp: %s: Kernel unterstützt nur »inet«.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: Hardware unterstützt kein ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" +-msgstr "Rechnernamen auf ,,%s'' setzen\n" ++msgstr "Rechnernamen auf »%s« setzen\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: Nur Root darf den Rechnernamen ändern\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: name zu lang\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" +-msgstr "Setze Hostname auf ,,%s''\n" ++msgstr "Setze Hostname auf »%s«\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" +-msgstr "%s: Nur Root darf then Rechnernamen ändern\n" ++msgstr "%s: Nur Root darf den Rechnernamen ändern\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" +-msgstr "Setze domainname auf ,,%s''\n" ++msgstr "Setze domainname auf »%s«\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: Nur Root darf den Domainnamen ändern\n" +@@ -267,51 +290,56 @@ + #: ../hostname.c:131 + #, c-format + msgid "Resolving `%s' ...\n" +-msgstr "Löse ,,%s'' auf ...\n" ++msgstr "Löse »%s« auf ...\n" + + #: ../hostname.c:137 + #, c-format + msgid "Result: h_name=`%s'\n" +-msgstr "Ergebnis: h_name=,,%s''\n" ++msgstr "Ergebnis: h_name=»%s«\n" + + #: ../hostname.c:142 + #, c-format + msgid "Result: h_aliases=`%s'\n" +-msgstr "Ergebnis: h_aliases=,,%s''\n" ++msgstr "Ergebnis: h_aliases=»%s«\n" + + #: ../hostname.c:147 + #, c-format + msgid "Result: h_addr_list=`%s'\n" +-msgstr "Ergebnis: h_addr_list=,,%s''\n" ++msgstr "Ergebnis: h_addr_list=»%s«\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" +-msgstr "%s: Kann ,,%s'' nicht öffnen\n" ++msgstr "%s: Kann »%s« nicht öffnen\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Benutzung: hostname [-v] {Hostname|-F Datei} Hostname (aus Datei) setzen\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" +-" domainname [-v] {nisdomain|-F file} NIS Domainname (aus Datei) " ++" domainname [-v] {nisdomain|-F file} NIS-Domainname (aus Datei) " + "setzen.\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" + msgstr " nodename [-v] {Rechnername|-F Datei}\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n]\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -319,7 +347,8 @@ + " hostname [-v] Hostnamen anzeigen\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -328,7 +357,8 @@ + "beenden.\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -336,43 +366,52 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short Kurzer Hostname\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias Namensalias\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address Adressen für den Hostnamen\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long Langer Hostname (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" +-msgstr " -d, --domain DNS Domainname\n" ++msgstr " -d, --domain DNS-Domainname\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" +-msgstr " -y, --yp, --nis NIS/YP Domainname\n" ++msgstr " -y, --yp, --nis NIS/YP-Domainname\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" +-msgstr " -n, --node DECnet Knotennamen\n" ++msgstr " -n, --node DECnet-Knotennamen\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" +-" -F, --file Hostnamen oder NIS Domainnamen aus Datei lesen\n" ++" -F, --file Hostnamen oder NIS-Domainnamen aus Datei lesen\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -380,395 +419,268 @@ + " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" + " part of the FQDN) in the /etc/hosts file.\n" + msgstr "" +-" Dies Kommando setzt oder gibt den Hostnamen oder NIS Domainnamen aus.\n" +-" Es ist ebenfalls möglich die DNS Domain oder den FQDN (langen Hostnamen)\n" ++" Dies Kommando setzt oder gibt den Hostnamen oder NIS-Domainnamen aus.\n" ++" Es ist ebenfalls möglich die DNS-Domain oder den FQDN (langen Hostnamen)\n" + " ausgeben zu lassen. Außer wenn DNS oder NIS als Namensdienst verwendet\n" +-" wird, können FQDN (Fully Qualified Domain Name) und DNS Domainname (welcher\n" ++" wird, können FQDN (Fully Qualified Domain Name) und DNS-Domainname (welcher\n" + " Teil des FQDNs ist) in /etc/hosts geändert werden.\n" + + #: ../hostname.c:338 + #, c-format + msgid "%s: You can't change the DNS domain name with this command\n" +-msgstr "%s: Mit diesem Program kann der DNS Domainname nicht geändert werden\n" ++msgstr "%s: Mit diesem Programm kann der DNS-Domainname nicht geändert werden\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"Wenn Bind oder NIS nicht zur Hostnamensauflösung benutzt werden, kann der " +-"DNS\n" ++"Wenn Bind oder NIS nicht zur Hostnamensauflösung benutzt werden, kann der DNS\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" +-msgstr "" +-"Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts geändert " +-"werden.\n" ++msgstr "Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts geändert werden.\n" + + #: ../hostname.c:357 + #, c-format + msgid "gethostname()=`%s'\n" +-msgstr "gethostname()=,,%s''\n" ++msgstr "gethostname()=»%s«\n" + + #: ../hostname.c:374 + #, c-format + msgid "getdomainname()=`%s'\n" +-msgstr "getdomainname()=,,%s''\n" ++msgstr "getdomainname()=»%s«\n" + + #: ../hostname.c:389 + #, c-format + msgid "getnodename()=`%s'\n" +-msgstr "getnodename()=,,%s''\n" ++msgstr "getnodename()=»%s«\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Protokoll:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb Flg\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "Hardware Adresse %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Medium:%s" ++msgid "No support for INET on this system.\n" ++msgstr "INET ist auf diesem System nicht verfügbar.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s Adresse:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"Syntax:\n" ++" ifconfig [-a] [-i] [-v] <Schnittstelle> [[<AF>] <Adresse>]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-z-P:%s " ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <Adresse>[/<Präfixlänge>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <Adresse>[/<Präfixlänge>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Maske:%s\n" ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<Adresse>]] [[-]pointopoint [<Adresse>]]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " inet6 Adresse: %s/%d" +- +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Gültigkeitsbereich:" +- +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <Adresse>] [dstaddr <Adresse>] [tunnel <Adresse>]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Verbindung" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <NN>] [keepalive <NN>]\n" + + #: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Standort" +- +-#: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Kompatibilität" +- +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Maschine" +- +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Unbekannt" +- +-#: ../ifconfig.c:236 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " IPX/Ethernet II Adresse:%s\n" ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <Adresse>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:213 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " IPX/Ethernet SNAP Adresse:%s\n" ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:214 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " IPX/Ethernet 802.2 Adresse:%s\n" ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:245 ++#: ../ifconfig.c:215 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " IPX/Ethernet 802.3 Adresse:%s\n" ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <Typ>]\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:217 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " EtherTalk Phase 2 Adresse:%s\n" ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen <Länge>]\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:220 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " econet Adresse:%s\n" +- +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[KEINE FLAGS] " +- +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " +- +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST " +- +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " +- +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK " +- +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "PUNKTZUPUNKT " +- +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:224 ++#, c-format ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=Hardwaretyp.\n" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " Liste möglicher Hardwaretypen:\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=Adressfamilie. Standardwert: %s\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " List der möglichen Adressfamilien:\n" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Typ des Mediums unbekannt.\n" + +-#: ../ifconfig.c:302 ++#: ../ifconfig.c:417 + #, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metric:%d" ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:306 ++#: ../ifconfig.c:429 + #, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:320 ++#: ../ifconfig.c:441 + #, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" + msgstr "" +-"Empfangene Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Rahmen:%lu\n" + +-#: ../ifconfig.c:325 ++#: ../ifconfig.c:465 + #, c-format +-msgid " compressed:%lu\n" +-msgstr " komprimiert:%lu\n" ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-#: ../ifconfig.c:329 ++#: ../ifconfig.c:523 + #, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgid "Warning: Interface %s still in BROADCAST mode.\n" + msgstr "" +-"Verschickte Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Träger:%lu\n" + +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:652 + #, c-format +-msgid " collisions:%lu " +-msgstr " Kollisionen:%lu " ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:335 ++#: ../ifconfig.c:684 + #, c-format +-msgid "compressed:%lu " +-msgstr "Komprimiert:%lu " ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:337 ++#: ../ifconfig.c:693 + #, c-format +-msgid "txqueuelen:%d " +-msgstr "Sendewarteschlangenlänge:%d " ++msgid "%s: invalid %s address.\n" ++msgstr "%s: ungültige %s Adresse.\n" + +-#: ../ifconfig.c:345 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid "Interrupt:%d " +-msgstr "Interrupt:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Basisadresse:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Speicher:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "DMA Kanal:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "INET6 ist auf diesem System nicht verfügbar.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: unbekannte Schnittstelle: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Syntax:\n" +-" ifconfig [-a] [-i] [-v] <Schnittstelle> [[<AF>] <Adresse>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <Adresse>[/<Prefixlänge>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <Adresse>[/<Prefixlänge>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<Adresse>]] [[-]pointopoint [<Adresse>]]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <Addresse>] [dstaddr <Adresse>] [tunnel <Adresse>]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill <NN>] [keepalive <NN>]\n" +-msgstr " [outfill <NN>] [keepalive <NN>]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" +-msgstr " [hw <HW> <Adresse>] [metric <NN>] [mtu <NN>]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <Typ>]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen <NN>]\n" +-msgstr " [txqueuelen <Länge>]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " <HW>=Hardware Type.\n" +-msgstr " <HW>=Hardwaretyp.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Liste möglicher Hardwaretypen:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=Adressfamilie. Standardwert: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " List der möglichen Adressfamilien:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Typ des Mediums unbekannt.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: ungültige %s Adresse.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "INET6 ist auf diesem System nicht verfügbar.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" +-msgstr "Das Löschen von Adressen ist auf diesem System nicht unterstützt.\n" ++msgstr "Das Löschen von Adressen wird auf diesem System nicht unterstützt.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "INET ist auf diesem System nicht verfügbar.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Kann die Adressen der Familie %d nicht setzen.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "ECONET wird auf diesem System nicht unterstützt.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Kann die Adressen der Familie %d nicht setzen.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Für \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie " +-"sollten Root sein.)\n" ++msgstr "(Für \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie sollten Root sein.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -776,198 +688,220 @@ + "(Es konnten nicht alle Prozesse identifiziert werden; Informationen über\n" + "nicht-eigene Processe werden nicht angezeigt; Root kann sie anzeigen.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "HÖRT" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "VERBINGSAUFBAU GESCHICKT" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "VERBINDUNGSABBAU GESCHICKT" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "VERBUNDEN" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktive NET/ROM Sockets\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" +-msgstr "" +-"Benutzer Ziel Quelle Gerät Zustand Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Benutzer Ziel Quelle Gerät Zustand Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Probleme beim Lesen von %s\n" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "Warnung, fehlerhafte igmp6 line %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: Nicht unterstützte Adressfamilie %d!\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "Warnung, fehlerhafte igmp-Zeile %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Aktive AX.25 Sockets\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Ziel Quelle Gerät Zustand Vr/Vs Send-Q Empf-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "Warnung, fehlerhafte TCP Zeile.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "aus (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "ein (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "unkn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "Warnung, fehlerhafe UDP-Zeile.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "UNBEKANNT" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "Warnung, fehlerhafte raw-Zeile.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "Warnung, fehlerhafte UNIX-Zeile.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" +-msgstr "SEQPACKET" ++msgstr "SEQPAKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "FREI" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "VERBINDUNGSAUFBAU" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "VERBUNDEN" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "VERBINDUNGSABBAU" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " +-msgstr "Aktive Sockets in der UNIX Domäne " ++msgstr "Aktive Sockets in der UNIX-Domäne " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(Server und stehende Verbindungen)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(Nur Server)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(ohne Server)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -975,90 +909,90 @@ + "\n" + "Proto RefZäh Flaggen Typ Zustand I-Node" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Pfad\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM GESCHICKT" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "WIEDERHERSTELLUNG" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktive AX.25 Sockets\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Ziel Quelle Gerät Zustand Vr/Vs Send-Q Empf-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "Problem beim Lesen von Daten von %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Aktive IPX Sockets\n" +-"Proto Recv-Q Send-Q Lokale Adresse Gegenaddress " ++"Proto Recv-Q Send-Q Lokale Adresse Gegenadresse " + "Zustand" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Benutzer" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "VERBUNDEN" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNB." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - keine Statistiken verfügbar -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[KEINE FLAGS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" +-msgstr "Kernel Schnittstellentabelle\n" ++msgstr "Kernel-Schnittstellentabelle\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " +-"Flg\n" +-msgstr "" +-"SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" ++msgstr "SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb Flg\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" +-msgstr "Fehlende Interfaceinformation" ++msgstr "Fehlende Interfaceinformationen" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "Benutzung: netstat [-veenNcCF] [<Af>] -r\n" + " netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeol] [<Socket> ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1066,27 +1000,32 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route Routentabelle anzeigen\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces Schnittstellentabelle auflisten\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups Mitgliedschaft in Multicastgruppen " + "anzeigen\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics Netzwerksstatistiken anzeigen (wie SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1094,23 +1033,38 @@ + " -M, --masquerade Maskierte Verbindungen auflisten\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic Hardwarenamen auflösen\n" + +-#: ../netstat.c:1439 ../route.c:88 +-#, fuzzy ++#: ../netstat.c:1509 ../route.c:88 ++#, fuzzy, c-format + msgid " -e, --extend display other/more information\n" +-msgstr "" +-" -e, --extend Weitere / zusätzliche Informationen " +-"anzeigen\n" ++msgstr " -e, --extend Weitere / zusätzliche Informationen anzeigen\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" +-msgstr "" +-" -p, --programs PID/Programmnamen für Sockets anzeigen\n" ++msgstr " -p, --programs PID/Programmnamen für Sockets anzeigen\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1118,24 +1072,27 @@ + " -c, --continuous Anzeige laufend aktualisieren\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + " -l, --listening Empfangsbereite Serversockets auflisten\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening Alle Sockets anzeigen (normal: nur " + "verbundene)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers Timer auflisten\n" + +-#: ../netstat.c:1445 ../route.c:89 +-#, fuzzy ++#: ../netstat.c:1515 ../route.c:89 ++#, fuzzy, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -1143,7 +1100,8 @@ + " -F, --fib Forwarding Infomation Base anzeigen " + "(Standard)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1151,110 +1109,118 @@ + " -C, --cache Routencache statt FIB anzeigen\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=,,-A <af>'' or ,,--<af>'' benutzen. Standard: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Liste möglicher Adressfamilien, die Routen unterstützen:\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktive Internetverbindungen " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Benutzer Inode " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Timer" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" +-msgstr "IPv4 Gruppenmitgliedschaften\n" ++msgstr "IPv4-Gruppenmitgliedschaften\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Schnittstelle RefZäh Grupp\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Dieser Kernel unterstützt kein RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" +-msgstr "Kein RARP Eintrag für %s.\n" ++msgstr "Kein RARP-Eintrag für %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: fehlerhafte Hardwareadresse\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: kann Datei %s:%s nicht öffnen.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: Formatfehler bei %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: Unbekannter Host\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: Kann Eintrag aus %s:%u nicht setzen.\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" +-msgstr "" +-"Benutzung: rarp -a Einträge im Cache listen.\n" ++msgstr "Benutzung: rarp -a Einträge im Cache listen.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" +-msgstr "" +-" rarp -d <hostname> Eintrag aus dem Cache löschen.\n" ++msgstr " rarp -d <hostname> Eintrag aus dem Cache löschen.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" +-msgstr "" +-" rarp [<HW>] -s <hostname> <hwaddr> Eintrag zum Cache zufügen.\n" ++msgstr " rarp [<HW>] -s <hostname> <hwaddr> Eintrag zum Cache zufügen.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" +-msgstr "" +-" rarp -f Einträge aus /etc/ethers " +-"zufügen.\n" ++msgstr " rarp -f Einträge aus /etc/ethers zufügen.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1262,24 +1228,26 @@ + " rarp -V Programmversion anzeigen.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: Unerlaubte Mischung von Optionen.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" +-msgstr "rarp: %s: unknown hardware type.\n" ++msgstr "rarp: %s: unbekannter Hardwaretyp.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Benutzung: route [-nNvee] [-FC] [<AF>] Kernelroutentabelle " + "anzeigen\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1287,14 +1255,15 @@ + " route [-v] [-FC] {add|del|flush} ... Routentabelle für AF ändern.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" +-msgstr "" +-" route {-h|--help} [<AF>] Genaue Syntax für AF anzeigen.\n" ++msgstr " route {-h|--help} [<AF>] Genaue Syntax für AF anzeigen.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1304,590 +1273,891 @@ + "Ende.\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=,,-A <af>'' or ,,--<af>'' benutzen. Standard: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Benutzung: plipconfig [-a] [-i] [-v] Interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 +-#, fuzzy ++#, c-format + msgid " plipconfig -V | --version\n" +-msgstr " plipconfig -V\n" ++msgstr " plipconfig -V | --version\n" + + #: ../plipconfig.c:74 + #, c-format + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Benutzung: iptunnel { add | change | del | show } [ NAME ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr " [ mode { ipip | gre | sit } ] [ remote ADR ] [ local ADR ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key SCHLÜSSEL ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 +-#, fuzzy ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" +-msgstr "" +-" [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERÄt ]\n" +-"\n" ++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERÄt ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" ++" iptunnel -V | --version\n" ++"\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Wobei: NAME := ZEICHENKETTE\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " ADR := { IP_ADRESSE | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { NUMBER | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KEY := { DOTTED_QUAD | ZAHL }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "Schlüssel sind mit ipip und sit nicht erlaubt.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Ein Broadcasttunnel ist nur mit einer Quelladresse möglich\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 und noptmudisc sind inkompatibel\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + "Die Tunnelbetriebsart (ipip, fre oder sit) kann nicht festgestellt werden\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip Gegenseite %s lokal %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Unbekannt" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Pakete außer der Reihenfolge fallenlassen.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Prüfsumme im empfangenen Paket wird benötigt.\n" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Pakete in Reihenfolge ausgeben.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Prüfsumme für ausgegebene Pakete berechnen.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" +-msgstr "Falsches Format von /proc/net/dev. Tut mir leid\n" ++msgstr "Falsches Format von /proc/net/dev. Tut mir leid.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Kann den Typ von [%s] nicht holen\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakete Bytes Fehler CsumErrs OutOfSeq Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakete Bytes Fehler DeadLoop NoRoute NoBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" +-msgstr "ICMP Eingabehistogramm:" ++msgstr "ICMP-Eingabehistogramm:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" +-msgstr "ICMP Ausgabehistogramm:" ++msgstr "ICMP-Ausgabehistogramm:" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Weiterleitung ist %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Standard-TTL ist %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" +-msgstr "%d Pakete insgesamt empfangen" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" ++msgstr "%d Pakete insgesamt empfangen" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" +-msgstr "%d with ungültigen Headern" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" ++msgstr "%d mit ungültigen Headern" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d mit ungültigen Adressen" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d weitergeleitet" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d mit unbekanntem Protokoll" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d eingehende Pakete weggeworfen" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d eingehende Pakete zugestellt" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d Anfragen ausgesandt" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d ausgehende Pakete weggeworfen" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d weggeworfen wegen fehlender Route" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d Fragmente nach Timeout weggeworfen" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d Wiederzusammenstellungen nötig" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d Fragmente korrekt empfangen" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d fehlgeschlagene Paketdefragmentierungen" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d Fragmente korrekt empfangen" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" +-msgstr "%d Fragmente Fehlgeschlagen" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" ++msgstr "%d Fragmente fehlgeschlagen" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d Fragmente erzeugt" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" +-msgstr "%d ICMP Nachrichten empfangen" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" ++msgstr "%d ICMP-Nachrichten empfangen" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." +-msgstr "%d eingegangene ICMP Nachrichten fehlgeschlagen" ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." ++msgstr "%d eingegangene ICMP-Nachrichten fehlgeschlagen" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "Ziel unerreichbar: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "Timeout beim Transit: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "Fehlerhafte Parameter: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "Source Quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "Umleitungen: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" +-msgstr "Echo Requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" ++msgstr "Echo Anfragen: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "Echo Antworten: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "Zeitstempelanfragen: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "Zeitstempelantworten: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "Adressmaskenanfragen: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "Adressmaskenantworten" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "Adressmaskenantworten: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d ICMP-Nachrichten geschickt" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" +-msgstr "%d ICMP Nachrichten fehlgeschlagen" +- + #: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" ++msgstr "%d ICMP-Nachrichten fehlgeschlagen" ++ ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "Zeitüberschreitung: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "Source Quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "Umleitungen: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "Echo Anfragen: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "Zeitstempel Anfragen: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "Zeitstempel Antworten: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "Adressmaskenanfragen: %d" + +-#: ../statistics.c:111 ++#: ../statistics.c:118 + #, c-format +-msgid "address mask replies: %d" +-msgstr "Adressmaskenantworten: %d" ++msgid "RTO algorithm is %s" ++msgstr "RTO-Algorithmus ist %s" ++ ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" ++msgstr "%d Verbindungen aktiv geöffnet" ++ ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" ++msgstr "%d Verbindungen passiv geöffnet" ++ ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" ++msgstr "%d fehlerhafte Verbindungsversuche" ++ ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" ++msgstr "%d Verbindungen aufgebaut" ++ ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" ++msgstr "%d Segmente empfangen" ++ ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" ++msgstr "%d Segmente abgeschickt" ++ ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." ++msgstr "%d fehlerhafte Segmente empfangen." ++ ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" ++msgstr "%d Rücksetzungen geschickt" ++ ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" ++msgstr "%d Pakete empfangen" ++ ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." ++msgstr "%d Pakete für unbekannte Ports empfangen." ++ ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" ++msgstr "%d Paketempfangsfehler" ++ ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" ++msgstr "%d Pakete geschickt" ++ ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d SYN-Cookies verschickt" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d SYN-Cookies empfangen" + +-#: ../statistics.c:116 ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d ungültige SYN-Cookies empfangen" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d Rücksetzungen für embrionische SYN_RECV-Sockets" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange weggeworfen" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d Pakete aus der ungeordneten Warteschlange wegen Pufferüberlauf weggeworfen" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d ICMP-Pakete weggeworfen die außerhalb des Fensters waren" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d ICMP-Pakete verworfen weil Socket gesperrt war" ++ ++#: ../statistics.c:160 + #, c-format +-msgid "RTO algorithm is %s" +-msgstr "RTO Algorithmus is %s" ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" + +-#: ../statistics.c:120 ++#: ../statistics.c:161 + #, c-format +-msgid "%d active connections openings" +-msgstr "%d Verbindungen aktiv geöffnet" ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" + +-#: ../statistics.c:121 ++#: ../statistics.c:162 + #, c-format +-msgid "%d passive connection openings" +-msgstr "%d Verbindungen passiv geöffnet" ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" + +-#: ../statistics.c:122 ++#: ../statistics.c:163 + #, c-format +-msgid "%d failed connection attempts" +-msgstr "%d fehlerhafte Verbindungsversuche" ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" + +-#: ../statistics.c:123 ++#: ../statistics.c:165 + #, c-format +-msgid "%d connection resets received" +-msgstr "%d Verbindungsrücksetzungen empfangen" ++msgid "%u active connections rejected because of time stamp" ++msgstr "" + +-#: ../statistics.c:124 ++#: ../statistics.c:167 + #, c-format +-msgid "%d connections established" +-msgstr "%d Verbindungen aufgebaut" ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" + +-#: ../statistics.c:125 ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" ++msgstr "%d Pakete geschickt" ++ ++#: ../statistics.c:170 + #, c-format +-msgid "%d segments received" +-msgstr "%d Segmente empfangen" ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" + +-#: ../statistics.c:126 ++#: ../statistics.c:172 + #, c-format +-msgid "%d segments send out" +-msgstr "%d Segmente abgeschickt" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:127 ++#: ../statistics.c:173 + #, c-format +-msgid "%d segments retransmited" +-msgstr "%d Segmente erneut geschickt" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:128 ++#: ../statistics.c:175 + #, c-format +-msgid "%d bad segments received." +-msgstr "%d fehlerhafte Segmente empfangen." ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" + +-#: ../statistics.c:129 ++#: ../statistics.c:176 + #, c-format +-msgid "%d resets sent" +-msgstr "%d Rücksetzungen geschickt" ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" + +-#: ../statistics.c:134 ++#: ../statistics.c:178 + #, c-format +-msgid "%d packets received" ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++ ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" + msgstr "%d Pakete empfangen" + +-#: ../statistics.c:135 ++#: ../statistics.c:184 + #, c-format +-msgid "%d packets to unknown port received." ++msgid "%u packets header predicted and directly queued to user" ++msgstr "" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" ++ ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" + msgstr "%d Pakete für unbekannte Ports empfangen." + +-#: ../statistics.c:136 ++#: ../statistics.c:189 + #, c-format +-msgid "%d packet receive errors" +-msgstr "%d Paketempfangsfehler" ++msgid "%u predicted acknowledgments" ++msgstr "" + +-#: ../statistics.c:137 ++#: ../statistics.c:190 + #, c-format +-msgid "%d packets sent" +-msgstr "%d Pakete geschickt" ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" + +-#: ../statistics.c:142 ++#: ../statistics.c:191 + #, c-format +-msgid "%d SYN cookies sent" +-msgstr "%d SYN-Cookies verschickt" ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" + +-#: ../statistics.c:143 ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d fehlerhafte Segmente empfangen." ++ ++#: ../statistics.c:193 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d SYN-Cookies empfangen" ++msgid "Detected reordering %u times using FACK" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:194 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d ungültige SYN-Cookies empfangen" ++msgid "Detected reordering %u times using SACK" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:195 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d Rücksetzungen fuer embrionische SYN_RECV Sockets" ++msgid "Detected reordering %u times using time stamp" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:196 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "Detected reordering %u times using reno fast retransmit" + msgstr "" +-"%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange " +-"weggeworfen" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:197 + #, c-format +-msgid "%d packets pruned from out-of-order queue" +-msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++msgid "%u congestion windows fully recovered" ++msgstr "" + +-#: ../statistics.c:152 ++#: ../statistics.c:198 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u congestion windows partially recovered using Hoe heuristic" + msgstr "" +-"%d Pakete aus der ungeordneten Warteschlange wegen Pufferüberlauf weggeworfen" + +-#: ../statistics.c:154 ++#: ../statistics.c:199 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d ICMP Pakete weggeworfen die auserhalb des Fensters waren" ++msgid "%u congestion window recovered using DSACK" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d Rücksetzungen geschickt" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d fehlgeschlagene Paketdefragmentierungen" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange weggeworfen" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d Pakete empfangen" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d Pakete insgesamt empfangen" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:220 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d ICMP Pakete verworfen weil Socket gesperrt war" ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d Verbindungsrücksetzungen empfangen" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "aktiviert" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "deaktiviert" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "Unbekannter Titel %s\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "Fehler beim Parsen von /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "Kann /proc/net/snmp nicht öffnen" + + #: ../lib/activate.c:69 + #, c-format + msgid "Hardware type `%s' not supported.\n" +-msgstr "Hardwaretyp ,,%s'' nicht unterstützt.\n" ++msgstr "Hardwaretyp »%s« nicht unterstützt.\n" + + #: ../lib/activate.c:73 + #, c-format + msgid "Cannot change line discipline to `%s'.\n" +-msgstr "Kann line discipline nicht auf ``%s'' setzen.\n" ++msgstr "Kann line discipline nicht auf »%s« setzen.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" +-msgstr "UNIX Domain" ++msgstr "UNIX-Domain" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" +-msgstr "DARPA Internet" ++msgstr "DARPA-Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Bitte nur eine Adressfamilie angeben.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Zu viele Adressfamilien angegeben.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" +-msgstr "Unbekannte Adressfamilie `%s'.\n" +- +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[NICHT GESETZT]" ++msgstr "Unbekannte Adressfamilie »%s«.\n" + +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): Ungültige ARCnet-Adresse!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): angehängt : ignoriert!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): Nachfolgender Müll!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" +-msgstr "Fehlerhafte Ash Adresse" ++msgstr "Fehlerhafte Ash-Adresse" ++ ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[NICHT GESETZT]" + + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" +@@ -1898,22 +2168,21 @@ + msgstr "Rufzeichen zu lang" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Kernel AX.25 Routentabelle\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Ziel SStelle Benutzer\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "DDP-Routentabelle wird noch nicht unterstützt.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1929,153 +2198,168 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): Nachfolgender Müll!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): Ungültige FDDI-Adresse!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): Nachfolgender Müll!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Adressfamilie `%s' wird nicht unterstützt.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Kein Routen für Adressfamilie `%s'.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): Ungültige HIPPI-Adresse!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): Nachfolgender Müll!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Lokale Schleife" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "Serielle IP" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "Serielle VJ-IP" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6-bit Serielle IP" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "VJ 6-bit Serielle IP" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptive Serielle IP" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" +-msgstr "Punkt-zu-Punkt Verbindung" ++msgstr "Punkt-zu-Punkt-Verbindung" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Frame Relay Access Device" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-nach-IPv4" + +-#: ../lib/hw.c:198 +-#, fuzzy ++#: ../lib/hw.c:214 + msgid "IrLAP" +-msgstr "LAPB" ++msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: nicht unterstützte Adressfamilie %d !\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "UNBEKANNT" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) ist auf diesem System nicht konfiguriert.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" +-msgstr "Kernel IPv6 Routentabelle\n" ++msgstr "Kernel-IPv6-Routentabelle\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" +-msgstr "" +-"Ziel Nächster Hop " +-" Flags Metric Ref Benutzer Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "Ziel Nächster Hop Flags Metric Ref Benutzer Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Kernel IPv6 Nachbarcache\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2083,39 +2367,45 @@ + "Nachbar HW-Adresse Iface Flags " + "Ref Zustand\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +-msgstr "" +-"Nachbar HW-Adresse Iface Flags " +-"Ref Zustand Stale(sec) Löschen(sec)\n" ++msgstr "Nachbar HW-Adresse Iface Flags Ref Zustand Stale(sec) Löschen(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Benutzung: inet6_route [-vF] del Ziel\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Ziel [gw Gateway] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NICHT unterstützt\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" +-msgstr ",,Flush'' für IPv6 Routentabelle nicht unterstützt\n" ++msgstr "»Flush« für IPv6-Routentabelle nicht unterstützt\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" +-msgstr "Kernel IP Routentabelle\n" ++msgstr "Kernel-IP-Routentabelle\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2124,6 +2414,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2132,6 +2423,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2140,10 +2432,12 @@ + "Iface MSS Fenster irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" +-msgstr "Kernel IP Routencache\n" ++msgstr "Kernel-IP-Routencache\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2152,6 +2446,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2160,6 +2455,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2168,6 +2464,7 @@ + "Iface MSS Fenster irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2175,37 +2472,39 @@ + "Quelle Ziel Gateway Flags Metrik Ref Ben " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +-msgstr "" +-"Benutzung: inet_route [-vF] del {-host|-net} Ziel[/prefix] [gw Gw] [metric " +-"M] [[dev] If]\n" ++msgstr "Benutzung: inet_route [-vF] del {-host|-net} Ziel[/Präfix] [gw Gw] [metric M] [[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" +-msgstr "" +-" inet_route [-vF] add {-host|-net} Ziel[/Prefix] [gw Gw] [metric M]\n" ++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Präfix] [gw Gw] [metric M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" +-msgstr "" +-" inet_route [-vF] add {-host|-net} Ziel[/Präfix] [metric M] reject\n" ++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Präfix] [metric M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NICHT unterstützt\n" + +@@ -2215,15 +2514,17 @@ + msgstr "route: %s: Netzadresse als Gateway ungültig!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: Ungültige MSS.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Ungültige Fenstergröße.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: Ungültige Start-RTT.\n" + +@@ -2238,126 +2539,408 @@ + msgstr "Route: Fehlerhafte Netzmaske %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: Netzmaske passt nicht zur Routenadresse\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" +-msgstr ",,Flush'' der Inet-Routentabelle nicht unterstützt\n" ++msgstr "»Flush« der Inet-Routentabelle nicht unterstützt\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" +-msgstr "Änderung des ,,Inet'' Routencaches nicht unterstützt\n" ++msgstr "Änderung des »Inet« Routencaches nicht unterstützt\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" +-msgstr "Kernel IPX Routentabelle\n" ++msgstr "Kernel-IPX-Routentabelle\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" +-msgstr "Ziel Router Netz Router Knoten\n" ++msgstr "Ziel Router-Netz Router-Knoten\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" +-msgstr "IPX: dies muß noch geschrieben werden\n" ++msgstr "IPX: dies muss noch geschrieben werden\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP-Maskierungseinträge\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "Prot expire Quelle Ziel Ports\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"Prot Ablauf Anf-Seq Delta Prevd Quelle Ziel " +-" Ports\n" ++"Prot Ablauf Anf-Seq Delta Prevd Quelle " ++"Ziel Ports\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM ist auf diesem System nicht verfügbar.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" +-msgstr "Kernel NET/ROM Routentabelle\n" ++msgstr "Kernel-NET/ROM-Routentabelle\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Ziel Mnemonic Qualität Nachbar Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" +-msgstr "NET/ROM Benutzung\n" ++msgstr "NET/ROM-Benutzung\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" +-msgstr "NET/ROM: Dies muß noch geschrieben werden\n" ++msgstr "NET/ROM: Dies muss noch geschrieben werden\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Mit diesem Programm kann PPP nicht gestartet werden.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" +-msgstr "Bitte benutzen sie pppd.\n" ++msgstr "Bitte benutzen Sie pppd.\n" + + #: ../lib/rose.c:87 + msgid "Node address must be ten digits" +-msgstr "Knotenadresse muß zehn Ziffern haben" ++msgstr "Knotenadresse muss zehn Ziffern haben" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE ist auf diesem System nicht verfügbar.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" +-msgstr "ROSE Kernel Routentabelle\n" ++msgstr "ROSE-Kernel-Routentabelle\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): ungültige Tokenringadresse!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): nachfolgender Müll!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" +-msgstr "Warnung: Keine INET Sockets verfügbar: %s\n" ++msgstr "Warnung: Keine INET-Sockets verfügbar: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Gerät nicht gefunden" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - keine Statistiken verfügbar -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[KEINE FLAGS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Protokoll:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "Hardware Adresse %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Medium:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s Adresse:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-z-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Maske:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6-Adresse: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Gültigkeitsbereich:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Verbindung" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Standort" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Kompatibilität" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Maschine" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Unbekannt" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/Ethernet II Adresse:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/Ethernet SNAP Adresse:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/Ethernet 802.2 Adresse:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/Ethernet 802.3 Adresse:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " EtherTalk Phase 2 Adresse:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " econet Adresse:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[KEINE FLAGS] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "PUNKTZUPUNKT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metrik:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Empfangene Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Rahmen:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " komprimiert:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Verschickte Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Träger:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " Kollisionen:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "Komprimiert:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "Sendewarteschlangenlänge:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Interrupt:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Basisadresse:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Speicher:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "DMA Kanal:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Keine benutzbaren Adressfamilien gefunden.\n" + +@@ -2369,41 +2952,44 @@ + #: ../lib/util-ank.c:238 + #, c-format + msgid "ip: %s is invalid inet prefix\n" +-msgstr "ip: %s ist ein ungültiges INET-Prefix\n" ++msgstr "ip: %s ist ein ungültiges INET-Präfix\n" + + #: ../lib/util-ank.c:248 + #, c-format + msgid "ip: %s is invalid IPv4 address\n" +-msgstr "ip: %s ist eine ungültige IPv4 Adresse\n" ++msgstr "ip: %s ist eine ungültige IPv4-Adresse\n" + + #: ../lib/util-ank.c:256 + #, c-format + msgid "ip: argument is wrong: %s\n" + msgstr "ip: Fehlerhaftes Argument: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Benutzung: ipmaddr [ add | del ] MULTIADR dev NAME\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev NAME ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "familie %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " Benutzer %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Kann Socket nicht öffnen" + +@@ -2418,13 +3004,14 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: Kann PID-Datei nicht schreiben\n" + + #: ../slattach.c:202 + #, c-format + msgid "slattach: tty_lock: UUCP user %s unknown!\n" +-msgstr "slattach: tty_lock: UUCP Benutzer %s unbekannt!\n" ++msgstr "slattach: tty_lock: UUCP-Benutzer %s unbekannt!\n" + + #: ../slattach.c:430 + #, c-format +@@ -2436,39 +3023,71 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: name zu lang\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: kann aktuellen Zustand nicht auslesen!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + "slattach: tty_open: Kann augenblicklichen Leitungszustand nicht auslesen!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: Kann RAW-Modus nicht setzen!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: Kann %s bps nicht setzen!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: Kann 8N1-Modus nicht setzen!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "%s gestartet" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " auf %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr " Schnittstelle: %s\n" ++ ++msgid "" ++" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++"<-''-\n" ++msgstr "" ++" arp [-v] [<HW>] [-i <if>] -s <Hostname> <hwaddr> [netmask <nm>] pub\n" ++ ++msgid "%s: unknown interface: %s\n" ++msgstr "%s: unbekannte Schnittstelle: %s\n" ++ ++msgid "address mask replies" ++msgstr "Adressmaskenantworten" ++ ++msgid "unknown title %s\n" ++msgstr "Unbekannter Titel %s\n" ++ ++msgid "Routing table for `ddp' not yet supported.\n" ++msgstr "DDP-Routentabelle wird noch nicht unterstützt.\n" +--- net-tools-1.60.orig/po/fr.po ++++ net-tools-1.60/po/fr.po +@@ -4,7 +4,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1998-03-01 00:02+0100\n" + "Last-Translator: J.M.Vansteene <vanstee@worldnet.fr>\n" + "Language-Team:\n" +@@ -12,273 +13,277 @@ + "Content-Type: text/plain; charset=iso8859-1\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: nécessite un nom d'hôte\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Pas d'entrée ARP pour %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, fuzzy, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "rarp: ne peut définir l'entrée depuis %s:%u\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: nécessite une adresse matériel\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: adresse matériel invalide\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: ne peut ouvrir le fichier ether %s !\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: erreur de format ligne %u du fichier ether %s !\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: ne peut définir l'entrée en ligne %u du fichier ether %s !\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresse\t\t\tTypeMap\tAdresseMat\t Indicateurs\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr "%s: interface inconnue: %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "" + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "" + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Entrées: %d\tIgnorées: %d\tTrouvées: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: aucune correspondance trouvée dans %d entrées\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " + "cache\n" + msgstr "" + "Syntaxe:\n" +-" arp [-vn] [<MAT>] [-i <if>] [-a] [<hôte>] <-Affiche cache " +-"ARP\n" ++" arp [-vn] [<MAT>] [-i <if>] [-a] [<hôte>] <-Affiche cache ARP\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" +-msgstr "" +-" arp [-v] [-i <if>] -d <hôte> [pub][nopub] <-Supprime entrée " +-"ARP\n" ++msgstr " arp [-v] [-i <if>] -d <hôte> [pub][nopub] <-Supprime entrée ARP\n" + +-#: ../arp.c:615 +-#, fuzzy ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" +-msgstr "" +-" arp [-vnD] [<MAT>] [-i <if>] -f <fichier> <-Ajout entrée " +-"depuis fichier\n" ++msgstr " arp [-vnD] [<MAT>] [-i <if>] -f <fichier> <-Ajout entrée depuis fichier\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" +-msgstr "" +-" arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [temp][nopub] <-Ajout " +-"entrée\n" ++msgstr " arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [temp][nopub] <-Ajout entrée\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [netmask <nm>] pub " +-"<-''-\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr "" +-" arp [-v] [<MAT>] [-i <if>] -Ds <hôte> <if> [netmask <nm>] pub " +-"<-''-\n" ++" arp [-v] [<MAT>] [-i <if>] -Ds <hôte> <if> [netmask <nm>] pub <-''-\n" + "\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +-msgstr "" +-" -a affiche (tous) les hôtes en style BSD\n" ++msgstr " -a affiche (tous) les hôtes en style BSD\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set définit une nouvelle entrée ARP\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete supprime une entrée\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose mode verbeux\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric ne résout pas les noms\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" +-msgstr "" +-" -i, --device spécifie l'interface réseau (p.ex. eth0)\n" ++msgstr " -i, --device spécifie l'interface réseau (p.ex. eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" +-msgstr "" +-" -D, --use-device lit l'<adrmat> depuis le périphérique\n" ++msgstr " -D, --use-device lit l'<adrmat> depuis le périphérique\n" + +-#: ../arp.c:627 +-#, fuzzy ++#: ../arp.c:639 ++#, fuzzy, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -r, --route affiche la table de routage\n" + +-#: ../arp.c:628 +-#, fuzzy ++#: ../arp.c:640 ++#, fuzzy, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file lit les nouvelles entrées dans le fichier\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" +-msgstr "" +-" <HW>=Utilisez '-H <hw>' pour spécifier le type d'adresse matériel. Défaut: " +-"%s\n" ++msgstr " <HW>=Utilisez '-H <hw>' pour spécifier le type d'adresse matériel. Défaut: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Liste les types de matériels supportant ARP:\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: type de matétiel non supporté !\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: famille d'adresses non supportée !\n" + +-#: ../arp.c:703 +-#, fuzzy ++#: ../arp.c:716 ++#, fuzzy, c-format + msgid "arp: -N not yet supported.\n" + msgstr "Table de routage pour `ddp' pas encore supporté.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: famille d'adresses inconnue.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: type de matériel inconnu.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: le noyau ne supporte que 'inet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: type de matériel sans support ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Définit le nom de noeud à `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: vous devez être root pour changer le nom de noeud\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nom trop long\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Définit le nom d'hôte à `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: vous devez être root pour changer le nom d'hôte\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Définit le nom de domaine à `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: vous devez être root pour changer le nom de domaine\n" +@@ -303,38 +308,36 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Résultat : h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: ne peut ouvrir `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" +-msgstr "" +-"Syntaxe : hostname [-v] {hôte|-F fichier} définit le nom d'hôte (depuis " +-"le fichier)\n" ++msgstr "Syntaxe : hostname [-v] {hôte|-F fichier} définit le nom d'hôte (depuis le fichier)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" +-msgstr "" +-" domainname [-v] {domaine_nis|-F fichier} définit le domaine NIS " +-"(depuis le fichier)\n" ++msgstr " domainname [-v] {domaine_nis|-F fichier} définit le domaine NIS (depuis le fichier)\n" + +-#: ../hostname.c:226 +-#, fuzzy ++#: ../hostname.c:225 ++#, fuzzy, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +-msgstr "" +-" nodename [-v] {nom_noeud|-F fichier} Définit le nom de noeud " +-"DECnet (depuis le fichier)\n" ++msgstr " nodename [-v] {nom_noeud|-F fichier} Définit le nom de noeud DECnet (depuis le fichier)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] affiche le nom formatté\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -342,7 +345,8 @@ + " hostname [-v] affiche le nom d'hôte\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -350,7 +354,8 @@ + " hostname -V|--version|-h|--help affiche des infos et termine\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -358,45 +363,52 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short nom d'hôte court\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias noms d'alias\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address adresses de l'hôte\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long nom d'hôte long (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain nom de domaine DNS\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis nom de domaine NIS/YP\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node nom de noeud DECnet\n" + +-#: ../hostname.c:241 +-#, fuzzy ++#: ../hostname.c:240 ++#, fuzzy, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" +-" -F, --file lit le nom d'hôte ou le nom de domaine NIS depuis " +-"le fichier\n" ++" -F, --file lit le nom d'hôte ou le nom de domaine NIS depuis le fichier\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -411,15 +423,16 @@ + msgstr "%s: Vous ne pouvez changer le nom de domaine DNS avec cette commande\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez " +-"changer le\n" ++"Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez changer le\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + "nom de domaine DNS (qui fait partie du FQDN) dans le fichier /etc/hosts.\n" +@@ -439,554 +452,453 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Lien encap:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Indic\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "HWaddr %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Media:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Pas de support de INET sur ce système.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s adr:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"Syntaxe:\n" ++" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <adresse>]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-t-P:%s " ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <adresse>[/<lg_prefixe>]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <adresse>[/<lg_prefixe>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Masque:%s\n" ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<adresse>]] [[-]pointopoint [<adresse>]]\n" + +-#: ../ifconfig.c:201 +-#, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " adr inet6: %s/%d" ++#: ../ifconfig.c:207 ++#, fuzzy, c-format ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <adresse>] [dstaddr <adresse>] [tunnel <adresse>]\n" + +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Scope:" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <NN>] [keepalive <NN>]\n" + +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <adresse>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Lien" ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Site" ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + + #: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Compat" ++#, c-format ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" + +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Hôte" ++#: ../ifconfig.c:217 ++#, fuzzy, c-format ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen longueur]\n" + +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Inconnu" ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:236 ++#: ../ifconfig.c:222 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " adr IPX/Ethernet II:%s\n" ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:224 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " adr IPX/Ethernet SNAP:%s\n" ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=Type de matériel.\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:225 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " adr IPX/Ethernet 802.2:%s\n" ++msgid " List of possible hardware types:\n" ++msgstr " Liste des types de matériels possibles:\n" + +-#: ../ifconfig.c:245 ++#. 1 = ARPable ++#: ../ifconfig.c:227 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " adr IPX/Ethernet 802.3:%s\n" ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=famille d'Adresses. Défaut: %s\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:228 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " adr EtherTalk Phase 2:%s\n" ++msgid " List of possible address families:\n" ++msgstr " Liste des familles d'adresses possibles:\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:303 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " adr econet:%s\n" ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[PAS INDICATEURS] " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Type de média inconnu.\n" + +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST " ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK " ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: adresse %s invalide.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " +- +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " +- +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " +- +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " +- +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " +- +-#: ../ifconfig.c:302 +-#, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metric:%d" +- +-#: ../ifconfig.c:306 +-#, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" +- +-#: ../ifconfig.c:320 +-#, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "Paquets Reçus:%lu erreurs:%lu jetés:%lu débordements:%lu trames:%lu\n" +- +-#: ../ifconfig.c:325 +-#, c-format +-msgid " compressed:%lu\n" +-msgstr " compressés:%lu\n" +- +-#: ../ifconfig.c:329 +-#, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" +-msgstr "" +-"Paquets transmis:%lu erreurs:%lu jetés:%lu débordements:%lu carrier:%lu\n" +- +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid " collisions:%lu " +-msgstr " collisions:%lu " +- +-#: ../ifconfig.c:335 +-#, c-format +-msgid "compressed:%lu " +-msgstr "compressés:%lu " +- +-#: ../ifconfig.c:337 +-#, c-format +-msgid "txqueuelen:%d " +-msgstr "lg file transmission:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "Interruption:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Adresse de base:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Mémoire:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "Canal DMA:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "Pas de support de INET6 sur ce système.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: interface inconnue: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Syntaxe:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <adresse>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <adresse>[/<lg_prefixe>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <adresse>[/<lg_prefixe>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<adresse>]] [[-]pointopoint [<adresse>]]\n" +- +-#: ../ifconfig.c:433 +-#, fuzzy +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <adresse>] [dstaddr <adresse>] [tunnel <adresse>]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill <NN>] [keepalive <NN>]\n" +-msgstr " [outfill <NN>] [keepalive <NN>]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" +-msgstr " [hw <HW> <adresse>] [metric <NN>] [mtu <NN>]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +- +-#: ../ifconfig.c:443 +-#, fuzzy +-msgid " [txqueuelen <NN>]\n" +-msgstr " [txqueuelen longueur]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " <HW>=Hardware Type.\n" +-msgstr " <HW>=Type de matériel.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Liste des types de matériels possibles:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=famille d'Adresses. Défaut: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Liste des familles d'adresses possibles:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Type de média inconnu.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: adresse %s invalide.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Pas de support de INET6 sur ce système.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Suppression d'adresses pas supporté par ce système.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Pas de support de INET sur ce système.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Ne sait pas comment définir les adresses pour la famille %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Pas de support de ECONET sur ce système.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Ne sait pas comment définir les adresses pour la famille %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Pas d'infos lues pour \"-p\": geteuid()=%d mais vous devez être root.)\n" ++msgstr "(Pas d'infos lues pour \"-p\": geteuid()=%d mais vous devez être root.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" + "(Tous les processus ne peuvent être identifiés, les infos sur les processus\n" +-"non possédés ne seront pas affichées, vous devez être root pour les voir " +-"toutes.)\n" ++"non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "LISTENING" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN SENT" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC SENT" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABLISHED" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "sockets NET/ROM actives\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" +-"Utilisatr Dest Source Periph Etat Vr/Vs Send-Q " +-"Recv-Q\n" ++"Utilisatr Dest Source Periph Etat Vr/Vs Send-Q Recv-" ++"Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "attention, ligne igmp6 en erreur %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: famille d'adresses pas supportée %d !\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "attention, ligne igmp6 en erreur %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Sockets AX.25 actives\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Dest Source Periph Etat Vr/Vs Send-Q Recv-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "attention, ligne tcp en erreur.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "off (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, fuzzy, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "unkn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "attention, ligne udp en erreur.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "INCONNU" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "attention, ligne raw en erreur.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "attention, ligne unix en erreur.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "LIBRE" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "ENCONNEXION" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "CONNECTE" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "ENDECONNEXION" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Sockets du domaine UNIX actives" + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(serveurs et établies)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(seulement serveurs)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(sans serveurs)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -994,32 +906,36 @@ + "\n" + "Proto RefCpt Indicatrs Type Etat I-Node" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Chemin\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM SENT" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECOVERY" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Sockets AX.25 actives\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Dest Source Periph Etat Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " +@@ -1029,55 +945,53 @@ + "Proto Recv-Q Send-Q Adresse locale Adresse distante " + "Etat" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr "Utilisatr" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNK." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr "" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[PAS INDICATEURS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Table d'interfaces noyau\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Indic\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "informations d'interface manquantes" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" +-"syntaxe: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"syntaxe: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeol] [<Socket> ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1085,27 +999,30 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route affiche la table de routage\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces affiche la table d'interfaces\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups affiche les membres d'un groupe multicast\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" +-msgstr "" +-" -s, --statistics affiche les statistiques réseau (comme " +-"SNMP)\n" ++msgstr " -s, --statistics affiche les statistiques réseau (comme SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1113,23 +1030,41 @@ + " -M, --masquerade affiche les connexions masquées\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic résoud les noms matériels\n" + +-#: ../netstat.c:1439 ../route.c:88 +-#, fuzzy ++#: ../netstat.c:1509 ../route.c:88 ++#, fuzzy, c-format + msgid " -e, --extend display other/more information\n" + msgstr "" + " -e, --extend affiche d'autres/plus d'informations\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs affiche le nom du programme/PID des " + "sockets\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1137,32 +1072,31 @@ + " -c, --continuous listing continu\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" +-msgstr "" +-" -l, --listening affiche les sockets du serveur à l'écoute\n" ++msgstr " -l, --listening affiche les sockets du serveur à l'écoute\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" +-msgstr "" +-" -a, --all, --listening affiche toutes les prises (défaut: " +-"connectés)\n" ++msgstr " -a, --all, --listening affiche toutes les prises (défaut: connectés)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers affiche les timers\n" + +-#: ../netstat.c:1445 ../route.c:89 +-#, fuzzy ++#: ../netstat.c:1515 ../route.c:89 ++#, fuzzy, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +-msgstr "" +-" -F, --fib affiche la Forwarding Infomation Base " +-"(défaut)\n" ++msgstr " -F, --fib affiche la Forwarding Infomation Base (défaut)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1170,110 +1104,118 @@ + " -C, --cache affiche le cache de routage au lieu de FIB\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=Utiliser '-A <af>' ou '--<af>' Défaut: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Liste les familles d'adresses possibles (supportant le routage):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Connexions Internet actives " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Adresse locale Adresse distante Etat " +-" " ++"Proto Recv-Q Send-Q Adresse locale Adresse distante " ++"Etat " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Utilisatr Inode " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Timer" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Ce noyau ne supporte pas RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "pas d'entrée RARP pour %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: mauvaise adresse matériel\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: ne peut ouvrir le fichier %s:%s.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: erreur de format à %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: hôte inconnu\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: ne peut définir l'entrée depuis %s:%u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" +-msgstr "" +-"Usage: rarp -a liste les entrées en cache.\n" ++msgstr "Usage: rarp -a liste les entrées en cache.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" +-msgstr "" +-" rarp -d <hostname> supprime l'entrée du cache.\n" ++msgstr " rarp -d <hostname> supprime l'entrée du cache.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" +-msgstr "" +-" rarp [<HW>] -s <hostname> <adrmat> ajoute l'entrée au cache.\n" ++msgstr " rarp [<HW>] -s <hostname> <adrmat> ajoute l'entrée au cache.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" +-msgstr "" +-" rarp -f ajoute les entrées depuis " +-"/etc/ethers.\n" ++msgstr " rarp -f ajoute les entrées depuis /etc/ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1281,24 +1223,26 @@ + " rarp -V affiche la version.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: combinaison d'options illégales.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: %s: type de matériel inconnu.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Syntaxe: route [-nNvee] [-FC] [<AF>] Liste les tables de routage " + "noyau\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1307,15 +1251,15 @@ + "pour AF.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" +-msgstr "" +-" route {-h|--help} [<AF>] Utilisation détaillée pour l'AF " +-"spécifié.\n" ++msgstr " route {-h|--help} [<AF>] Utilisation détaillée pour l'AF spécifié.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1325,16 +1269,23 @@ + "termine.\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=Utiliser '-A <af>' ou '--<af>' Défaut: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Syntaxe: plipconfig [-a] [-i] [-v] interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 +-#, fuzzy ++#, fuzzy, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V\n" + +@@ -1343,474 +1294,763 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr "" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr "" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr "" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr "" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr "" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "" + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + #, fuzzy + msgid "unknown" + msgstr "Inconnu" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr "" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr "" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr "" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr "" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "Histogramme d'entrée ICMP" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "Histogramme de sortie ICMP" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Réacheminement est %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "TTL par défaut est %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "%d paquets totaux reçus" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "%d avec en-tête invalides" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d avec adresses invalides" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d réacheminées" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d avec protocole inconnu" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d paquets entrant jetés" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d paquets entrant délivrés" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d requêtes envoyées" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d paquets sortant jetés" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d jetés pour cause de route manquante" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d fragments jetés après timeout" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d nécessitant un réassemblage" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d paquets réassemblés correctement" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d paquets mal réassemblés" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d fragments reçus correctement" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "%d fragments en échec" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d fragments créés" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "%d messages ICMP reçus" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "%d messages d'entrée ICMP en échec" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "destination injoignable: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "timeout en transmission: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "mauvais paramètre: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "Source Quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "Redirections: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "requêtes echo: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "réponses echo: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "requêtes datées: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "réponses datées: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "requêtes de masque d'adresse: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "réponses de masque d'adresses" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "réponses de masque d'adresse: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d messages ICMP envoyés" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "%d messages ICMP en échec" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "temps dépassé: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "Source Quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "redirection: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "requête echo: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "requêtes datées: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "réponses datées: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "requêtes de masque d'adresse: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "réponses de masque d'adresse: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "algorithme RTO est %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "%d ouvertures de connexions actives" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "%d ouvertures de connexions passives" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "%d tentatives de connexion échouées" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "%d réinitialisations de connexions reçues" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "%d connexions établies" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "%d segments reçus" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "%d segments envoyés" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "%d segments retransmis" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "%d mauvais segments reçus." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "%d réinitialisations envoyées" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "%d paquets reçus" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "%d paquets reçus pour un port inconnu" + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "%d erreurs en réception de paquets" + +-#: ../statistics.c:137 ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" ++msgstr "%d paquets envoyés" ++ ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d SYN-Cookies reçus" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d SYN-Cookies reçus" ++ ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d SYN-Cookies reçus incorrects" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d réinitialisations reçues pour sockets SYN_RECV embryonnaires" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d paquets supprimés de la file de réception en raison de tampon de sockets plein" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d paquets supprimés de la file hors service" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d paquets jetés de la file hors service en raison de tampon de sockets plein" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d ICMP paquets jetés car hors de la fenêtre" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d paquets ICMP jetés car la socket a été vérouillée" ++ ++#: ../statistics.c:160 + #, c-format +-msgid "%d packets sent" ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" + msgstr "%d paquets envoyés" + +-#: ../statistics.c:142 ++#: ../statistics.c:170 + #, c-format +-msgid "%d SYN cookies sent" ++msgid "%u delayed acks further delayed because of locked socket" + msgstr "" + +-#: ../statistics.c:143 ++#: ../statistics.c:172 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d SYN-Cookies reçus" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:173 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d SYN-Cookies reçus incorrects" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:175 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d réinitialisations reçues pour sockets SYN_RECV embryonnaires" ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:176 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "%u packets directly queued to recvmsg prequeue." + msgstr "" +-"%d paquets supprimés de la file de réception en raison de tampon de sockets " +-"plein" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 + #, c-format +-msgid "%d packets pruned from out-of-order queue" ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" + msgstr "%d paquets supprimés de la file hors service" + +-#: ../statistics.c:152 ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "%d paquets reçus" ++ ++#: ../statistics.c:184 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u packets header predicted and directly queued to user" + msgstr "" +-"%d paquets jetés de la file hors service en raison de tampon de sockets plein" + +-#: ../statistics.c:154 ++#: ../statistics.c:186 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d ICMP paquets jetés car hors de la fenêtre" ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%d paquets reçus pour un port inconnu" ++ ++#: ../statistics.c:189 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d paquets ICMP jetés car la socket a été vérouillée" ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d mauvais segments reçus." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d réinitialisations envoyées" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d segments retransmis" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d segments retransmis" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d paquets mal réassemblés" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d paquets supprimés de la file de réception en raison de tampon de sockets plein" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d paquets reçus" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d paquets totaux reçus" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d réinitialisations de connexions reçues" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "activée" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "désactivée" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "titre inconnu %s\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "erreur d'analyse de /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "ne peut ouvrir /proc/net/snmp" + +@@ -1824,89 +2064,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Ne peut changer la discipline de ligne à `%s'.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "Domaine UNIX" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Ne fournissez pas plus d'une famille d'adresses SVP.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Trop d'arguments de familles d'adresses.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Famille d'adresses inconnue `%s'.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[INDEFINI]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): adresse arcnet invalide !\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): restant : ignoré !\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): le restant à la poubelle !\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Adresse Ash malformée" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[INDEFINI]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Signal d'appel invalide" +@@ -1916,22 +2162,21 @@ + msgstr "Signal d'appel trop long" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 pas configuré sur ce système.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Table de routage AX.25 du noyau\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Destination Iface Utilisation\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Table de routage pour `ddp' pas encore supporté.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1947,153 +2192,171 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): le restant à la poubelle !\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): adresse fddi invalide!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): restant ignoré !\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): le restant à la poubelle !\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Famille d'adresses `%s' non supportée.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Pas de routage pour la famille d'adresses `%s'.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): adresse hippi invalide!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): restant ignoré !\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): le restant à la poubelle !\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Boucle locale" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "IP ligne série" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "IP ligne série - VJ " + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "IP ligne série - 6 bits" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "IP ligne série - 6 bits VJ" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "IP ligne série adaptative" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Protocole Point-à-Point" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Périphériue d'accès Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-dans-IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + #, fuzzy + msgid "IrLAP" + msgstr "LAPB" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: famille d'adresses non suportée %d !\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "INCONNU" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) pas configuré sur ce système.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Table de routage IPv6 du noyau\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Destination Prochain Hop " +-" Indic Metric Ref Utilis. Iface\n" ++"Destination Prochain " ++"Hop Indic Metric Ref Utilis. Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache voisin IPv6 du noyau\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2101,39 +2364,45 @@ + "Voisin Adresse MAT Iface Indic " + "Ref Etat\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +-msgstr "" +-"Voisin Adresse MAT Iface Indic " +-"Ref Etat Bloqué(sec) Détuit(sec)\n" ++msgstr "Voisin Adresse MAT Iface Indic Ref Etat Bloqué(sec) Détuit(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Syntaxe: inet6_route [-vF] del Cible\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Cible [gw Gw] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush PAS supporté\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Flush de table de routage `inet6' pas supporté\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) pas configuré sur ce système.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Table de routage IP du noyau\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2142,26 +2411,26 @@ + "Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destination Passerelle Genmask Indic MSS Fenêtre irtt " +-"Iface\n" ++msgstr "Destination Passerelle Genmask Indic MSS Fenêtre irtt Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +-msgstr "" +-"Destination Passerelle Genmask Indic Metric Ref Use " +-"Iface MSS Fenêtre irtt\n" ++msgstr "Destination Passerelle Genmask Indic Metric Ref Use Iface MSS Fenêtre irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "cache de routage IP du noyau\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2170,30 +2439,28 @@ + "Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Source Destination Passerelle Indic MSS Fenêtre irtt " +-"Iface\n" ++msgstr "Source Destination Passerelle Indic MSS Fenêtre irtt Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +-msgstr "" +-"Source Destination Passerelle Indic Metric Ref Use " +-"Iface MSS Fenêtre irtt HH Arp\n" ++msgstr "Source Destination Passerelle Indic Metric Ref Use Iface MSS Fenêtre irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +-msgstr "" +-"Source Destination Passerelle Flags Metric Ref Use " +-"Iface MSS Fenêtre irtt TOS HHRef HHUptod SpecDst\n" ++msgstr "Source Destination Passerelle Flags Metric Ref Use Iface MSS Fenêtre irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2201,29 +2468,34 @@ + "Syntaxe: inet_route [-vF] del {-host|-net} Cible[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cible[/prefix] [gw Gw] [metric M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cible[/prefix] [metric M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush PAS supporté\n" + +@@ -2233,15 +2505,17 @@ + msgstr "route: %s: ne peut utiliser un RESEAU comme passerelle!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: MSS invalide.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: fenêtre invalide.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: rtt initial invalide.\n" + +@@ -2256,75 +2530,92 @@ + msgstr "route: netmask bogué %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: netmask ne correspond pas à l'adresse de route\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Flush de table de routage `inet' pas supporté\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Modification de cache de routage `inet' pas supporté\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX pas configuré sur ce système.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Table de routage IPX du noyau\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Destination Réseau Routeur Noeud Routeur\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX: ceci doit être écrit\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "Entrées IP Masquerade\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot expire source destination ports\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot expire initseq delta precd source destination " +-" ports\n" ++"prot expire initseq delta precd source " ++"destination ports\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM pas configuré sur ce système.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Table de routage NET/ROM du noyau\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Destination Mnemoniq Qualité Voisin Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "utilisation netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: ceci doit être écrit\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Vous ne pouvez démarrer PPP avec ce programme.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Désolé, utilisez pppd !\n" + +@@ -2333,49 +2624,314 @@ + msgstr "L'adresse de noeud doit avoir 10 chiffres" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE pas configuré sur ce système.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Table de routage ROSE du noyau\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): adresse token-ring invalide !\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): restant : ignoré !\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): restant à la poubelle !\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "attention: pas de socket inet disponible: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Périphérique non trouvé" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr "" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[PAS INDICATEURS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Lien encap:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "HWaddr %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Media:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s adr:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Masque:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " adr inet6: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Scope:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Lien" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Site" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Hôte" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Inconnu" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " adr IPX/Ethernet II:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " adr IPX/Ethernet SNAP:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " adr IPX/Ethernet 802.2:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " adr IPX/Ethernet 802.3:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " adr EtherTalk Phase 2:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " adr econet:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[PAS INDICATEURS] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metric:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Paquets Reçus:%lu erreurs:%lu jetés:%lu débordements:%lu trames:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " compressés:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Paquets transmis:%lu erreurs:%lu jetés:%lu débordements:%lu carrier:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " collisions:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "compressés:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "lg file transmission:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Interruption:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Adresse de base:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Mémoire:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Canal DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Pas de famille d'adresses utilisable trouvée.\n" + +@@ -2399,29 +2955,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argument incorrect: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Syntaxe: ipmaddr [ add | del ] MULTIADR dev CHAINE\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev CHAINE ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "" + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr "" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Ne peut créer une socket" + +@@ -2436,6 +2995,7 @@ + msgstr "" + + #: ../slattach.c:192 ++#, fuzzy, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: tty_lock: (%s): %s\n" + +@@ -2454,59 +3014,88 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: nom trop long\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: ne peut obtenir l'état courant !\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + "slattach: tty_open: ne peut obtenir la discipline de ligne actuelle !\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: ne peut activer le mode RAW !\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: ne peut passer à %s bps!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: ne peut activer le mode 8N1 !\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr "" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, fuzzy, c-format + msgid " interface %s\n" + msgstr "%s: interface inconnue: %s\n" + + #~ msgid "" +-#~ " This comand can get or set the hostname or the NIS domainname. You can\n" +-#~ msgstr "" +-#~ " Cette commande ne peut obtenir ou définir le nom d'hôte ou le domaine " +-#~ "NIS. Vous pouvez\n" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++#~ "<-''-\n" ++#~ msgstr " arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [netmask <nm>] pub <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: interface inconnue: %s\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "réponses de masque d'adresses" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "titre inconnu %s\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Table de routage pour `ddp' pas encore supporté.\n" ++ ++#~ msgid "" ++#~ " This comand can get or set the hostname or the NIS domainname. You " ++#~ "can\n" ++#~ msgstr " Cette commande ne peut obtenir ou définir le nom d'hôte ou le domaine NIS. Vous pouvez\n" + + #~ msgid "" + #~ " also get the DNS domain or the FQDN (fully qualified domain name).\n" + #~ msgstr "" +-#~ " aussi obtenir le domaine DNS ou le FQDN (fully qualified domain name).\n" ++#~ " aussi obtenir le domaine DNS ou le FQDN (fully qualified domain " ++#~ "name).\n" + + #~ msgid "" + #~ " Unless you are using bind or NIS for host lookups you can change the\n" +-#~ msgstr "" +-#~ " Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous " +-#~ "pouvez changer le\n" ++#~ msgstr " Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez changer le\n" + + #~ msgid "" + #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" +--- net-tools-1.60.orig/po/net-tools.pot ++++ net-tools-1.60/po/net-tools.pot +@@ -1,253 +1,275 @@ + # SOME DESCRIPTIVE TITLE. +-# Copyright (C) YEAR Free Software Foundation, Inc. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the PACKAGE package. + # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. + # + #, fuzzy + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" +-"POT-Creation-Date: 2001-04-15 15:40+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" + "Language-Team: LANGUAGE <LL@li.org>\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=CHARSET\n" +-"Content-Transfer-Encoding: ENCODING\n" ++"Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:111 ../arp.c:270 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "" + +-#: ../arp.c:208 ../arp.c:222 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "" + +-#: ../arp.c:240 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "" + +-#: ../arp.c:244 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "" + +-#: ../arp.c:253 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "" + +-#: ../arp.c:283 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "" + +-#: ../arp.c:291 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "" + +-#: ../arp.c:388 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "" + +-#: ../arp.c:404 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "" + +-#: ../arp.c:417 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "" + +-#: ../arp.c:438 ++#: ../arp.c:448 ++#, c-format + msgid "" + "Address HWtype HWaddress Flags Mask " + "Iface\n" + msgstr "" + +-#: ../arp.c:468 ++#: ../arp.c:476 ++msgid "<from_interface>" ++msgstr "" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "" + +-#: ../arp.c:485 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "" + +-#: ../arp.c:491 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "" + +-#: ../arp.c:497 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "" + +-#: ../arp.c:514 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "" + +-#: ../arp.c:593 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "" + +-#: ../arp.c:597 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "" + +-#: ../arp.c:599 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "" + +-#: ../arp.c:614 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " + "cache\n" + msgstr "" + +-#: ../arp.c:615 ++#: ../arp.c:627 ++#, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" + msgstr "" + +-#: ../arp.c:616 ++#: ../arp.c:628 ++#, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr "" + +-#: ../arp.c:617 ++#: ../arp.c:629 ++#, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" + msgstr "" + +-#: ../arp.c:618 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +- +-#: ../arp.c:619 ++#: ../arp.c:630 ++#, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr "" + +-#: ../arp.c:621 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" + msgstr "" + +-#: ../arp.c:622 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr "" + +-#: ../arp.c:623 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr "" + +-#: ../arp.c:624 ../netstat.c:1490 ../route.c:86 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr "" + +-#: ../arp.c:625 ../netstat.c:1491 ../route.c:87 ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format + msgid " -n, --numeric don't resolve names\n" + msgstr "" + +-#: ../arp.c:626 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + +-#: ../arp.c:627 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr "" + +-#: ../arp.c:628 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr "" + +-#: ../arp.c:629 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" + msgstr "" + +-#: ../arp.c:632 ../rarp.c:183 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr "" + +-#: ../arp.c:666 ../arp.c:751 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "" + +-#: ../arp.c:670 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "" + +-#: ../arp.c:705 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "" + +-#: ../arp.c:715 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "" + +-#: ../arp.c:724 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "" + +-#: ../arp.c:743 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "" + +-#: ../arp.c:756 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "" + +-#: ../hostname.c:70 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "" + +-#: ../hostname.c:75 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "" + +-#: ../hostname.c:78 ../hostname.c:98 ../hostname.c:117 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "" + +-#: ../hostname.c:90 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "" + +-#: ../hostname.c:95 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "" +@@ -262,103 +284,119 @@ + msgid "%s: you must be root to change the domain name\n" + msgstr "" + +-#: ../hostname.c:132 ++#: ../hostname.c:131 + #, c-format + msgid "Resolving `%s' ...\n" + msgstr "" + +-#: ../hostname.c:138 ++#: ../hostname.c:137 + #, c-format + msgid "Result: h_name=`%s'\n" + msgstr "" + +-#: ../hostname.c:143 ++#: ../hostname.c:142 + #, c-format + msgid "Result: h_aliases=`%s'\n" + msgstr "" + +-#: ../hostname.c:148 ++#: ../hostname.c:147 + #, c-format + msgid "Result: h_addr_list=`%s'\n" + msgstr "" + +-#: ../hostname.c:210 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "" + +-#: ../hostname.c:224 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + +-#: ../hostname.c:225 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + +-#: ../hostname.c:227 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" + msgstr "" + +-#: ../hostname.c:229 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr "" + +-#: ../hostname.c:230 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" + msgstr "" + +-#: ../hostname.c:231 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" + msgstr "" + +-#: ../hostname.c:232 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + msgstr "" + +-#: ../hostname.c:233 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr "" + +-#: ../hostname.c:234 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr "" + +-#: ../hostname.c:235 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr "" + +-#: ../hostname.c:236 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr "" + +-#: ../hostname.c:237 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr "" + +-#: ../hostname.c:238 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr "" + +-#: ../hostname.c:240 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr "" + +-#: ../hostname.c:242 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" + +-#: ../hostname.c:244 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -367,587 +405,706 @@ + " part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + +-#: ../hostname.c:340 ++#: ../hostname.c:338 + #, c-format + msgid "%s: You can't change the DNS domain name with this command\n" + msgstr "" + +-#: ../hostname.c:341 ++#: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + +-#: ../hostname.c:342 ++#: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + +-#: ../hostname.c:359 ++#: ../hostname.c:357 + #, c-format + msgid "gethostname()=`%s'\n" + msgstr "" + +-#: ../hostname.c:376 ++#: ../hostname.c:374 + #, c-format + msgid "getdomainname()=`%s'\n" + msgstr "" + +-#: ../hostname.c:391 ++#: ../hostname.c:389 + #, c-format + msgid "getnodename()=`%s'\n" + msgstr "" + +-#: ../ifconfig.c:108 ++#: ../ifconfig.c:107 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + +-#: ../ifconfig.c:130 ../ifconfig.c:162 ++#: ../ifconfig.c:129 ../ifconfig.c:161 + #, c-format +-msgid "%s: unknown interface: %s\n" ++msgid "%s: ERROR while getting interface flags: %s\n" + msgstr "" + +-#: ../ifconfig.c:154 ../ifconfig.c:734 ../ifconfig.c:825 ../ifconfig.c:936 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format + msgid "No support for INET on this system.\n" + msgstr "" + +-#: ../ifconfig.c:177 ++#: ../ifconfig.c:193 ++#, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "" ++ ++#: ../ifconfig.c:202 ++#, c-format + msgid "" + "Usage:\n" +-" ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" + msgstr "" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 ++#, c-format + msgid " [add <address>[/<prefixlen>]]\n" + msgstr "" + +-#: ../ifconfig.c:180 ++#: ../ifconfig.c:205 ++#, c-format + msgid " [del <address>[/<prefixlen>]]\n" + msgstr "" + +-#: ../ifconfig.c:181 ++#: ../ifconfig.c:206 ++#, c-format + msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" + msgstr "" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:207 ++#, c-format + msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" + msgstr "" + +-#: ../ifconfig.c:185 ++#: ../ifconfig.c:210 ++#, c-format + msgid " [outfill <NN>] [keepalive <NN>]\n" + msgstr "" + +-#: ../ifconfig.c:187 ++#: ../ifconfig.c:212 ++#, c-format + msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" + msgstr "" + +-#: ../ifconfig.c:188 ++#: ../ifconfig.c:213 ++#, c-format + msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" + msgstr "" + +-#: ../ifconfig.c:189 ++#: ../ifconfig.c:214 ++#, c-format + msgid " [multicast] [[-]promisc]\n" + msgstr "" + +-#: ../ifconfig.c:190 ++#: ../ifconfig.c:215 ++#, c-format + msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" + msgstr "" + +-#: ../ifconfig.c:192 ++#: ../ifconfig.c:217 ++#, c-format + msgid " [txqueuelen <NN>]\n" + msgstr "" + +-#: ../ifconfig.c:195 ++#: ../ifconfig.c:220 ++#, c-format + msgid " [[-]dynamic]\n" + msgstr "" + +-#: ../ifconfig.c:197 ++#: ../ifconfig.c:222 ++#, c-format + msgid "" + " [up|down] ...\n" + "\n" + msgstr "" + +-#: ../ifconfig.c:199 ++#: ../ifconfig.c:224 ++#, c-format + msgid " <HW>=Hardware Type.\n" + msgstr "" + +-#: ../ifconfig.c:200 ++#: ../ifconfig.c:225 ++#, c-format + msgid " List of possible hardware types:\n" + msgstr "" + + #. 1 = ARPable +-#: ../ifconfig.c:202 ++#: ../ifconfig.c:227 + #, c-format + msgid " <AF>=Address family. Default: %s\n" + msgstr "" + +-#: ../ifconfig.c:203 ++#: ../ifconfig.c:228 ++#, c-format + msgid " List of possible address families:\n" + msgstr "" + +-#: ../ifconfig.c:278 ++#: ../ifconfig.c:303 + #, c-format + msgid "ifconfig: option `%s' not recognised.\n" + msgstr "" + +-#: ../ifconfig.c:280 ../ifconfig.c:925 ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format + msgid "ifconfig: `--help' gives usage information.\n" + msgstr "" + +-#: ../ifconfig.c:355 ++#: ../ifconfig.c:380 ++#, c-format + msgid "Unknown media type.\n" + msgstr "" + +-#: ../ifconfig.c:647 ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:684 + #, c-format + msgid "hw address type `%s' has no handler to set address. failed.\n" + msgstr "" + +-#: ../ifconfig.c:656 ++#: ../ifconfig.c:693 + #, c-format + msgid "%s: invalid %s address.\n" + msgstr "" + +-#: ../ifconfig.c:700 ../ifconfig.c:790 ../ifconfig.c:876 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format + msgid "No support for INET6 on this system.\n" + msgstr "" + +-#: ../ifconfig.c:743 ../ifconfig.c:834 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format + msgid "Interface %s not initialized\n" + msgstr "" + +-#: ../ifconfig.c:755 ../ifconfig.c:845 ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format + msgid "Bad address.\n" + msgstr "" + +-#: ../ifconfig.c:848 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "" + +-#: ../ifconfig.c:920 ++#: ../ifconfig.c:957 ++#, c-format + msgid "ifconfig: Cannot set address for this protocol family.\n" + msgstr "" + +-#: ../ifconfig.c:946 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "" + +-#: ../ifconfig.c:954 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "" + +-#: ../netstat.c:430 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" + msgstr "" + +-#: ../netstat.c:434 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" + +-#: ../netstat.c:441 ../netstat.c:1176 ../netstat.c:1253 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "" + +-#: ../netstat.c:442 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "" + +-#: ../netstat.c:443 ../netstat.c:1255 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "" + +-#: ../netstat.c:444 ../netstat.c:511 ../netstat.c:894 ../netstat.c:1256 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "" + +-#: ../netstat.c:466 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "" + +-#: ../netstat.c:467 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + +-#: ../netstat.c:477 ../netstat.c:1295 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:512 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "" + +-#: ../netstat.c:513 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "" + +-#: ../netstat.c:514 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "" + +-#: ../netstat.c:515 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "" + +-#: ../netstat.c:516 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "" + +-#: ../netstat.c:517 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "" + +-#: ../netstat.c:518 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "" + +-#: ../netstat.c:519 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "" + +-#: ../netstat.c:520 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "" + +-#: ../netstat.c:521 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "" + +-#: ../netstat.c:592 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "" + +-#: ../netstat.c:597 ../netstat.c:635 ../netstat.c:756 ../netstat.c:888 +-#: ../netstat.c:1019 ../netstat.c:1024 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "" + +-#: ../netstat.c:610 ../netstat.c:615 ../netstat.c:623 ../netstat.c:630 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "" + +-#: ../netstat.c:673 ++#: ../netstat.c:677 ++#, c-format + msgid "Active X.25 sockets\n" + msgstr "" + + #. IMHO, Vr/Vs is not very usefull --SF +-#: ../netstat.c:675 ++#: ../netstat.c:679 ++#, c-format + msgid "" +-"Dest Source Device LCI State Vr/Vs Send-Q " +-"Recv-Q\n" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + +-#: ../netstat.c:752 ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "" + +-#: ../netstat.c:793 ../netstat.c:943 ../netstat.c:1062 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "" + +-#: ../netstat.c:797 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:802 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:807 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:812 ../netstat.c:952 ../netstat.c:1072 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:884 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "" + +-#: ../netstat.c:902 ../netstat.c:1162 ../netstat.c:1195 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "" + +-#: ../netstat.c:948 ../netstat.c:1067 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:1033 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "" + +-#: ../netstat.c:1115 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "" + +-#: ../netstat.c:1142 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "" + +-#: ../netstat.c:1146 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "" + +-#: ../netstat.c:1150 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "" + +-#: ../netstat.c:1154 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "" + +-#: ../netstat.c:1158 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "" + +-#: ../netstat.c:1183 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "" + +-#: ../netstat.c:1187 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "" + +-#: ../netstat.c:1191 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "" + +-#: ../netstat.c:1222 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "" + +-#: ../netstat.c:1224 ../netstat.c:1735 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "" + +-#: ../netstat.c:1227 ../netstat.c:1738 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "" + +-#: ../netstat.c:1229 ../netstat.c:1740 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "" + +-#: ../netstat.c:1232 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" + msgstr "" + +-#: ../netstat.c:1234 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr "" + +-#: ../netstat.c:1254 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "" + +-#: ../netstat.c:1257 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "" + +-#: ../netstat.c:1271 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "" + +-#: ../netstat.c:1272 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:1366 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + +-#: ../netstat.c:1368 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr "" + +-#: ../netstat.c:1402 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "" + +-#: ../netstat.c:1410 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "" + +-#: ../netstat.c:1452 ++#: ../netstat.c:1465 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + +-#: ../netstat.c:1456 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "" + +-#: ../netstat.c:1479 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + +-#: ../netstat.c:1480 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr "" + +-#: ../netstat.c:1481 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + msgstr "" + +-#: ../netstat.c:1483 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr "" + +-#: ../netstat.c:1484 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr "" + +-#: ../netstat.c:1485 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + +-#: ../netstat.c:1486 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + +-#: ../netstat.c:1488 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" + msgstr "" + +-#: ../netstat.c:1492 ++#: ../netstat.c:1505 ++#, c-format + msgid " --numeric-hosts don't resolve host names\n" + msgstr "" + +-#: ../netstat.c:1493 ++#: ../netstat.c:1506 ++#, c-format + msgid " --numeric-ports don't resolve port names\n" + msgstr "" + +-#: ../netstat.c:1494 ++#: ../netstat.c:1507 ++#, c-format + msgid " --numeric-users don't resolve user names\n" + msgstr "" + +-#: ../netstat.c:1495 ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr "" + +-#: ../netstat.c:1496 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr "" + +-#: ../netstat.c:1497 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + +-#: ../netstat.c:1498 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" + msgstr "" + +-#: ../netstat.c:1499 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + +-#: ../netstat.c:1500 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + +-#: ../netstat.c:1501 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr "" + +-#: ../netstat.c:1502 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" + msgstr "" + +-#: ../netstat.c:1503 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" + msgstr "" + +-#: ../netstat.c:1505 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" + +-#: ../netstat.c:1506 ../route.c:92 ++#: ../netstat.c:1519 + #, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr "" + +-#: ../netstat.c:1507 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr "" + +-#: ../netstat.c:1732 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "" + +-#: ../netstat.c:1742 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + +-#: ../netstat.c:1744 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr "" + +-#: ../netstat.c:1747 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr "" + +-#: ../netstat.c:1777 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "" + +-#: ../netstat.c:1778 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "" + +@@ -986,23 +1143,28 @@ + msgstr "" + + #: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + + #: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" + msgstr "" + + #: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" + msgstr "" + + #: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + + #: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1019,38 +1181,50 @@ + msgstr "" + + #: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + + #: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" + msgstr "" + + #: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" + msgstr "" + + #: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" + "\n" + msgstr "" + ++#: ../route.c:92 ++#, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr "" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr "" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr "" + +@@ -1060,61 +1234,75 @@ + msgstr "" + + #: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "" + + #: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + + #: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr "" + + #: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr "" + + #: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" + + #: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "" + + #: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr "" + + #: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr "" + + #: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr "" + + #: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + + #: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "" + + #: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "" + + #: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "" + + #: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + +@@ -1128,22 +1316,27 @@ + msgstr "" + + #: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr "" + + #: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr "" + + #: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr "" + + #: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr "" + + #: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "" + +@@ -1153,10 +1346,12 @@ + msgstr "" + + #: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "" + + #: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "" + +@@ -1563,12 +1758,12 @@ + + #: ../statistics.c:178 + #, c-format +-msgid "%u packets directly received from backlog" ++msgid "%u of bytes directly received from backlog" + msgstr "" + + #: ../statistics.c:180 + #, c-format +-msgid "%u packets directly received from prequeue" ++msgid "%u of bytes directly received from prequeue" + msgstr "" + + #: ../statistics.c:182 +@@ -1578,7 +1773,7 @@ + + #: ../statistics.c:183 + #, c-format +-msgid "%u packets header predicted" ++msgid "%u packet headers predicted" + msgstr "" + + #: ../statistics.c:184 +@@ -1591,19 +1786,209 @@ + msgid "Ran %u times out of system memory during packet sending" + msgstr "" + +-#: ../statistics.c:253 ++#: ../statistics.c:188 ++#, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, c-format ++msgid "%u bad SACKs received" ++msgstr "" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, c-format ++msgid "%u retransmits lost" ++msgstr "" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, c-format ++msgid "%u fast retransmits" ++msgstr "" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "" ++ ++#: ../statistics.c:210 ++#, c-format ++msgid "%u sack retransmits failed" ++msgstr "" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, c-format ++msgid "%u DSACKs received" ++msgstr "" ++ ++#: ../statistics.c:216 ++#, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "" ++ ++#: ../statistics.c:217 ++#, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "" ++ ++#: ../statistics.c:218 ++#, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "" ++ ++#: ../statistics.c:219 ++#, c-format ++msgid "%u connections reset due to early user close" ++msgstr "" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "" ++ ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "" + +-#: ../statistics.c:253 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "" + +-#: ../statistics.c:336 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "" + +-#: ../statistics.c:349 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "" + +@@ -1617,7 +2002,7 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "" + +-#: ../lib/af.c:153 ../lib/hw.c:156 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "" + +@@ -1633,11 +2018,11 @@ + msgid "IPv6" + msgstr "" + +-#: ../lib/af.c:164 ../lib/hw.c:177 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "" + +-#: ../lib/af.c:167 ../lib/hw.c:183 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "" + +@@ -1649,7 +2034,7 @@ + msgid "Appletalk DDP" + msgstr "" + +-#: ../lib/af.c:176 ../lib/hw.c:218 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "" + +@@ -1657,19 +2042,21 @@ + msgid "CCITT X.25" + msgstr "" + +-#: ../lib/af.c:182 ../lib/hw.c:180 ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "" + +-#: ../lib/af.c:185 ../lib/hw.c:168 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "" + + #: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "" + + #: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "" + +@@ -1694,6 +2081,7 @@ + msgstr "" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "" + +@@ -1712,22 +2100,21 @@ + msgstr "" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1783,90 +2170,94 @@ + msgid "in_hippi(%s): trailing junk!\n" + msgstr "" + +-#: ../lib/hw.c:155 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "" + +-#: ../lib/hw.c:158 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:159 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:160 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:161 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:162 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:165 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "" + +-#: ../lib/hw.c:171 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "" + +-#: ../lib/hw.c:174 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "" + +-#: ../lib/hw.c:186 ++#: ../lib/hw.c:191 + msgid "generic X.25" + msgstr "" + +-#: ../lib/hw.c:189 ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "" + +-#: ../lib/hw.c:196 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "" + +-#: ../lib/hw.c:199 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "" + +-#: ../lib/hw.c:202 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "" + +-#: ../lib/hw.c:206 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "" + +-#: ../lib/hw.c:209 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "" + +-#: ../lib/hw.c:212 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:214 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" +@@ -1877,131 +2268,157 @@ + msgstr "" + + #: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "" + + #: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "" + + #: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" + + #: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "" + + #: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" + msgstr "" + + #: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" + msgstr "" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr "" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr "" + + #: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" + msgstr "" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" + msgstr "" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" + msgstr "" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" + msgstr "" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr "" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr "" + +@@ -2011,14 +2428,17 @@ + msgstr "" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "" + +@@ -2033,73 +2453,90 @@ + msgstr "" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "" + + #: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "" + + #: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "" + + #: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "" + +@@ -2108,287 +2545,314 @@ + msgstr "" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "" + +-#: ../lib/interface.c:164 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "" + +-#: ../lib/interface.c:316 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:556 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "" + +-#: ../lib/interface.c:560 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "" + +-#: ../lib/interface.c:593 ++#: ../lib/interface.c:608 + msgid " - no statistics available -" + msgstr "" + +-#: ../lib/interface.c:597 ++#: ../lib/interface.c:612 ++#, c-format + msgid "[NO FLAGS]" + msgstr "" + +-#: ../lib/interface.c:673 ++#: ../lib/interface.c:688 + #, c-format + msgid "%-9.9s Link encap:%s " + msgstr "" + +-#: ../lib/interface.c:678 ++#: ../lib/interface.c:693 + #, c-format + msgid "HWaddr %s " + msgstr "" + +-#: ../lib/interface.c:681 ++#: ../lib/interface.c:696 + #, c-format + msgid "Media:%s" + msgstr "" + +-#: ../lib/interface.c:683 ++#: ../lib/interface.c:698 ++#, c-format + msgid "(auto)" + msgstr "" + +-#: ../lib/interface.c:690 ++#: ../lib/interface.c:705 + #, c-format + msgid " %s addr:%s " + msgstr "" + +-#: ../lib/interface.c:693 ++#: ../lib/interface.c:708 + #, c-format + msgid " P-t-P:%s " + msgstr "" + +-#: ../lib/interface.c:696 ++#: ../lib/interface.c:711 + #, c-format + msgid " Bcast:%s " + msgstr "" + +-#: ../lib/interface.c:698 ++#: ../lib/interface.c:713 + #, c-format + msgid " Mask:%s\n" + msgstr "" + +-#: ../lib/interface.c:715 ++#: ../lib/interface.c:730 + #, c-format + msgid " inet6 addr: %s/%d" + msgstr "" + +-#: ../lib/interface.c:717 ++#: ../lib/interface.c:732 ++#, c-format + msgid " Scope:" + msgstr "" + +-#: ../lib/interface.c:720 ++#: ../lib/interface.c:735 ++#, c-format + msgid "Global" + msgstr "" + +-#: ../lib/interface.c:723 ++#: ../lib/interface.c:738 ++#, c-format + msgid "Link" + msgstr "" + +-#: ../lib/interface.c:726 ++#: ../lib/interface.c:741 ++#, c-format + msgid "Site" + msgstr "" + +-#: ../lib/interface.c:729 ++#: ../lib/interface.c:744 ++#, c-format + msgid "Compat" + msgstr "" + +-#: ../lib/interface.c:732 ++#: ../lib/interface.c:747 ++#, c-format + msgid "Host" + msgstr "" + +-#: ../lib/interface.c:735 ++#: ../lib/interface.c:750 ++#, c-format + msgid "Unknown" + msgstr "" + +-#: ../lib/interface.c:750 ++#: ../lib/interface.c:765 + #, c-format + msgid " IPX/Ethernet II addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:753 ++#: ../lib/interface.c:768 + #, c-format + msgid " IPX/Ethernet SNAP addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:756 ++#: ../lib/interface.c:771 + #, c-format + msgid " IPX/Ethernet 802.2 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:759 ++#: ../lib/interface.c:774 + #, c-format + msgid " IPX/Ethernet 802.3 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:769 ++#: ../lib/interface.c:784 + #, c-format + msgid " EtherTalk Phase 2 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:778 ++#: ../lib/interface.c:793 + #, c-format + msgid " econet addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:785 ++#: ../lib/interface.c:800 ++#, c-format + msgid "[NO FLAGS] " + msgstr "" + +-#: ../lib/interface.c:787 ++#: ../lib/interface.c:802 ++#, c-format + msgid "UP " + msgstr "" + +-#: ../lib/interface.c:789 ++#: ../lib/interface.c:804 ++#, c-format + msgid "BROADCAST " + msgstr "" + +-#: ../lib/interface.c:791 ++#: ../lib/interface.c:806 ++#, c-format + msgid "DEBUG " + msgstr "" + +-#: ../lib/interface.c:793 ++#: ../lib/interface.c:808 ++#, c-format + msgid "LOOPBACK " + msgstr "" + +-#: ../lib/interface.c:795 ++#: ../lib/interface.c:810 ++#, c-format + msgid "POINTOPOINT " + msgstr "" + +-#: ../lib/interface.c:797 ++#: ../lib/interface.c:812 ++#, c-format + msgid "NOTRAILERS " + msgstr "" + +-#: ../lib/interface.c:799 ++#: ../lib/interface.c:814 ++#, c-format + msgid "RUNNING " + msgstr "" + +-#: ../lib/interface.c:801 ++#: ../lib/interface.c:816 ++#, c-format + msgid "NOARP " + msgstr "" + +-#: ../lib/interface.c:803 ++#: ../lib/interface.c:818 ++#, c-format + msgid "PROMISC " + msgstr "" + +-#: ../lib/interface.c:805 ++#: ../lib/interface.c:820 ++#, c-format + msgid "ALLMULTI " + msgstr "" + +-#: ../lib/interface.c:807 ++#: ../lib/interface.c:822 ++#, c-format + msgid "SLAVE " + msgstr "" + +-#: ../lib/interface.c:809 ++#: ../lib/interface.c:824 ++#, c-format + msgid "MASTER " + msgstr "" + +-#: ../lib/interface.c:811 ++#: ../lib/interface.c:826 ++#, c-format + msgid "MULTICAST " + msgstr "" + +-#: ../lib/interface.c:814 ++#: ../lib/interface.c:829 ++#, c-format + msgid "DYNAMIC " + msgstr "" + + #. DONT FORGET TO ADD THE FLAGS IN ife_print_short +-#: ../lib/interface.c:817 ++#: ../lib/interface.c:832 + #, c-format + msgid " MTU:%d Metric:%d" + msgstr "" + +-#: ../lib/interface.c:821 ++#: ../lib/interface.c:836 + #, c-format + msgid " Outfill:%d Keepalive:%d" + msgstr "" + +-#: ../lib/interface.c:835 ++#: ../lib/interface.c:850 + #, c-format + msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" + msgstr "" + +-#: ../lib/interface.c:840 ++#: ../lib/interface.c:855 + #, c-format + msgid " compressed:%lu\n" + msgstr "" + +-#: ../lib/interface.c:852 ++#: ../lib/interface.c:895 + #, c-format + msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" + msgstr "" + +-#: ../lib/interface.c:856 ++#: ../lib/interface.c:899 + #, c-format + msgid " collisions:%lu " + msgstr "" + +-#: ../lib/interface.c:858 ++#: ../lib/interface.c:901 + #, c-format + msgid "compressed:%lu " + msgstr "" + +-#: ../lib/interface.c:860 ++#: ../lib/interface.c:903 + #, c-format + msgid "txqueuelen:%d " + msgstr "" + +-#: ../lib/interface.c:862 ++#: ../lib/interface.c:905 + #, c-format + msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "" + +-#: ../lib/interface.c:873 ++#: ../lib/interface.c:916 + #, c-format + msgid "Interrupt:%d " + msgstr "" + + #. Only print devices using it for + #. I/O maps +-#: ../lib/interface.c:876 ++#: ../lib/interface.c:919 + #, c-format + msgid "Base address:0x%x " + msgstr "" + +-#: ../lib/interface.c:878 ++#: ../lib/interface.c:921 + #, c-format + msgid "Memory:%lx-%lx " + msgstr "" + +-#: ../lib/interface.c:881 ++#: ../lib/interface.c:924 + #, c-format + msgid "DMA chan:%x " + msgstr "" + + #: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "" + +@@ -2413,14 +2877,17 @@ + msgstr "" + + #: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "" + + #: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr "" + + #: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +@@ -2449,6 +2916,7 @@ + msgstr "" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "" + +@@ -2468,18 +2936,22 @@ + msgstr "" + + #: ../slattach.c:468 ++#, c-format + msgid "slattach: tty name too long\n" + msgstr "" + + #: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "" + + #: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + + #: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "" + +@@ -2489,6 +2961,7 @@ + msgstr "" + + #: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "" + +--- net-tools-1.60.orig/po/cs.po ++++ net-tools-1.60/po/cs.po +@@ -5,7 +5,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools-1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1999-08-29 23:20+0200\n" + "Last-Translator: Jiøí Pavlovský <pavlovsk@ff.cuni.cz>\n" + "Language-Team: Czech <cs@li.org>\n" +@@ -13,96 +14,110 @@ + "Content-Type: text/plain; charset=iso-8859-2\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: je tøeba jméno poèítaèe\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Pro %s neexistuje ARP polo¾ka\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: HW adresu `%s' nelze zjistit: %s\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: chybnì zadaný typ protokolu\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: zaøízení `%s' má Hw adresu %s `%s'.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: je tøeba hardwarová adresa\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: nesprávná hardwarová adresa\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: databázi ethernetových adres %s nelze otevøít!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: syntaktická chyba na øádku %u databáze ethernetových adres %s!\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "" + "arp: polo¾ku na øádku %u databáze ethernetových adres %s nelze nastavit!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresa\t\t\t HWtyp\t HWadresa\t Pøíz Maska\t\t Rozhraní\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "<from_interface>" ++msgstr " rozhraní %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(nekompletní)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) na " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid "<incomplete> " + msgstr "<nekompletní>" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "sí»ová maska %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "na %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Polo¾ky: %d\tVynecháno: %d\tNalezeno: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- ¾ádná polo¾ka\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: ¾ádná z polo¾ek (%d) nevyhovuje.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " +@@ -112,49 +127,46 @@ + " arp [-vn] [<HW>] [-i <if> [-a] [<poèítaè>] <-Zobrazí ARP " + "cache\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP " ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " + "entry\n" + msgstr "" + " arp [-v] [-i <if>] -d <poèítaè> [pub][nopub] <-Sma¾e polo¾ku " + "ARP\n" + +-#: ../arp.c:615 +-#, fuzzy ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " + "file\n" + msgstr "" + " arp [-vnD] [<HW>] [-i <if>] -f <soubor> <-Pøidá polo¾ku " + "ze\n" + " souboru\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add " ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " + "entry\n" + msgstr "" + " arp [-v] [<HW> [-i <if> -s <poèítaè> <hwadr> [temp][nopub] <-Pøidá " + "polo¾ku\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [sí»mask <èís>] <-''-\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub " ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " + "<-''-\n" + "\n" + msgstr "" + " arp [-v] [<HW> [-i <if> -Ds <poèítaè> <if> [sí»mask <èís>] pub " + "<-''-\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +@@ -162,126 +174,134 @@ + " -a zobrazí jmna v¹ech poèítaèù alternativním\n" + " (BSD) zpùsobem\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set nastaví novou ARP polo¾ku\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete sma¾e zadanou ARP polo¾ku\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr "" + " -v, --verbose bude vypisovat podrobné zprávy\n" + " o èinnosti\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr "" + " -n, --numeric nebude pøevádìt èíselné adresy\n" + " na kanonická jména\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr " -i, --device zadává sí»ové rozhraní (napø. eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read <hwaddr> from given device\n" + msgstr " -D, --use-device ète <hwadr> ze zadaného zaøízení\n" + +-#: ../arp.c:627 +-#, fuzzy ++#: ../arp.c:639 ++#, fuzzy, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -r, --route vypí¹e smìrovací tabulku\n" + +-#: ../arp.c:628 +-#, fuzzy ++#: ../arp.c:640 ++#, fuzzy, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file ète nové polo¾ky ze souboru\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" + msgstr "" + " <HW>=Pou¾ijte '-H <hw> pro zadání hardwarového typu adresy.\n" + " Implicitnì: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Seznam mo¾ných hardwarových typù (podporujících ARP):\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "hardwarový typ %s není podporován!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "tøída adres %s není podporována!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: pøepínaè -N není zatím podporován\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: neznámá tøída adres %s.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: neznámý hardwarový typ %s.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: jádro podporuje pouze 'inet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: hardwarový typ %s nepodporuje ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Nastavuji jméno uzlu na `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: jméno uzlu mù¾e zmìnit pouze superu¾ivatel\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "jméno %s je pøíli¹ dlouhé\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Nastavuji jméno poèítaèe na `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: jméno poèítaèe mù¾e zmìnit pouze superu¾ivatel\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Nastavuji jméno domény na `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: jméno domény mù¾e zmìnit pouze superu¾ivatel\n" +@@ -306,26 +326,29 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Výsledek: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: `%s' nelze otevøít\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Pou¾ití:\n" + " hostname [-v] {jméno|-F soubor} nastaví jméno poèítaèe (ze " + "souboru)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {jméno|-F soubor} nastaví jméno NIS domény (ze\n" + " souboru)\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +@@ -333,11 +356,13 @@ + " nodename [-v] {jméno|-F soubor} nastaví jméno DECnet uzlu (ze\n" + " souboru)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] vypí¹e formátované jméno\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -345,7 +370,8 @@ + " hostname [-v] vypí¹e jméno poèítaèe\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -353,7 +379,8 @@ + " hostname -V|--version|-h|--help vypí¹e informace a skonèí\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -361,35 +388,43 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short krátké jméno poèítaèe\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias pøezdívky\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address adresy odpovídající jménu poèítaèe\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long dlouhé jméno poèítaèe (kanonické)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain jméno DNS domény\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis jméno NIS/YP domény\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node jméno DECnet uzlu\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -397,7 +432,8 @@ + " -F, --file ète jméno poèítaèe èi nis domény ze souboru\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -412,6 +448,7 @@ + msgstr "%s: Tímto pøíkazem nelze DNS jméno domény zmìnit\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" +@@ -421,6 +458,7 @@ + "zmìnit\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + "DNS jméno domény (je souèástí kanonického jména poèítaèe) v souboru\n" +@@ -441,349 +479,223 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Zapouzdøení:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "" ++"Rozhr MTU Met PØ-OK PØ-CHYB PØ-ZAH PØ-PØT OD-OK OD-CHYB OD-ZAH OD-PØT " ++"PØZ\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "HWadr %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Médium:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Tento systém nepodporuje INET.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s adr:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"Pou¾ití:\n" ++" ifconfig [-a] [-i] [-v] <rozhraní> [[<AF>] <adresa>]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-t-P:%s " ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <adresa>[/<délka prefixu>]]\n" + +-# V ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání. +-# Tudi¾ bcast -> V¹esmìr :) +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " V¹esmìr:%s " ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <adresa>[/<délka prefixu>]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr "Maska:%s\n" ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " inet6-adr: %s/%d" ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n" + +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Rozsah:" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <NN>] [keepalive <NN>]\n" + +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Globál" ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Linka" ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Stanovi¹tì" ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + + #: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Kompatibilita" ++#, c-format ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n" + +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Poèítaè" ++#: ../ifconfig.c:217 ++#, c-format ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen délka]\n" + +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Neznám." ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:236 ++#: ../ifconfig.c:222 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " IPX/Ethernet II adr: %s\n" ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:224 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " IPX/Ethernet SNAP adr:%s\n" ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=Hardwarový Typ.\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:225 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " IPX/Ethernet 802.2 adr:%s\n" ++msgid " List of possible hardware types:\n" ++msgstr " Seznam mo¾ných hardwarových typù:\n" + +-#: ../ifconfig.c:245 ++#. 1 = ARPable ++#: ../ifconfig.c:227 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " IPX/Ethernet 802.3 adr:%s\n" ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=tøída adres. Implicitní: %s\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:228 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " EtherTalk Phase 2 adr:%s\n" ++msgid " List of possible address families:\n" ++msgstr " Seznam mo¾ných tøíd adres:\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:303 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " econet adr:%s\n" ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-# Hic sunt leones ... +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[®ÁDNÉ PØÍZNAKY]" ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "AKTIVOVÁNO " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Neznámý typ média.\n" + +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ " ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "SMYÈKA " ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-# ?? +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "BÌ®Í " ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NEARP " ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISK " ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: adresa %s je nesprávná.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format ++msgid "No support for INET6 on this system.\n" ++msgstr "Tento systém nepodporuje INET6.\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#: ../ifconfig.c:780 ../ifconfig.c:871 ++#, c-format ++msgid "Interface %s not initialized\n" ++msgstr "" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" ++msgstr "%s: adresa %s je nesprávná.\n" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " +- +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " +- +-#: ../ifconfig.c:302 +-#, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metrika:%d" +- +-#: ../ifconfig.c:306 +-#, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" +- +-#: ../ifconfig.c:320 +-#, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n" +- +-#: ../ifconfig.c:325 +-#, c-format +-msgid " compressed:%lu\n" +-msgstr " komprimováno:%lu\n" +- +-# carrier? +-#: ../ifconfig.c:329 +-#, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" +-msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n" +- +-#: ../ifconfig.c:333 +-#, c-format +-msgid " collisions:%lu " +-msgstr " kolizí:%lu " +- +-#: ../ifconfig.c:335 +-#, c-format +-msgid "compressed:%lu " +-msgstr "komprimováno:%lu " +- +-#: ../ifconfig.c:337 +-#, c-format +-msgid "txqueuelen:%d " +-msgstr "délka odchozí fronty:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "Pøeru¹ení:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Vstupnì/Výstupní port:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Pamì»:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "Kanál DMA:%x " +- +-#: ../ifconfig.c:384 ../ifconfig.c:405 +-#, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: rozhraní %s není známo\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n" +-msgstr "" +-"Pou¾ití:\n" +-" ifconfig [-a] [-i] [-v] <rozhraní> [[<AF>] <adresa>]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add <address>[/<prefixlen>]]\n" +-msgstr " [add <adresa>[/<délka prefixu>]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del <address>[/<prefixlen>]]\n" +-msgstr " [del <adresa>[/<délka prefixu>]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" +-msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" +-msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill <NN>] [keepalive <NN>]\n" +-msgstr " [outfill <NN>] [keepalive <NN>]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" +-msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" +-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen <NN>]\n" +-msgstr " [txqueuelen délka]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" +-msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " <HW>=Hardware Type.\n" +-msgstr " <HW>=Hardwarový Typ.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Seznam mo¾ných hardwarových typù:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " <AF>=Address family. Default: %s\n" +-msgstr " <AF>=tøída adres. Implicitní: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Seznam mo¾ných tøíd adres:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Neznámý typ média.\n" +- +-#: ../ifconfig.c:881 ++#: ../ifconfig.c:885 + #, c-format +-msgid "%s: invalid %s address.\n" +-msgstr "%s: adresa %s je nesprávná.\n" +- +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Tento systém nepodporuje INET6.\n" +- +-#: ../ifconfig.c:983 + msgid "Address deletion not supported on this system.\n" + msgstr "Tento systém nepodporuje mazání adres.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Tento systém nepodporuje INET.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Nevím, jak nastavit adresu tøídy %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Tento systém nepodporuje ECONET.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Nevím, jak nastavit adresu tøídy %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +@@ -792,7 +704,8 @@ + "jste\n" + "byl superu¾ivatelem)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -801,199 +714,223 @@ + "pouze o procesech, jich¾ jste vlastníkem. Aby jste mohl vidìt v¹e, musel\n" + "byste být superu¾ivatelem.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "NASLOUCHÁ" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN ODESLÁN" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC ODESLÁN" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "SPOJENO" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktivní NET/ROM sokety\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" +-"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F " +-"Pøích-F\n" ++"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F Pøích-" ++"F\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Chyba pøi ètení dat z %s\n" + + # následující radìji ponechat v originále ?! +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "ZAVØEN" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "POSLEDNÍ ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "ZAVíRÁ" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "varování, nesmyslný igmp6 øádek %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: tøída adres %d není podporována !\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "varování, nesmyslný igmp øádek %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Aktivní AX.25 sokety\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "varování, nesmyslný tcp øádek.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "vyp (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, fuzzy, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "nezn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "varování, nesmyslný udp øádek.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "NEZNÁM" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "varování, nesmyslný 'raw' øádek.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "varování, netstat 'unix' øádek.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "NEALOKOVÁN" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "SPOJUJE" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "SPOJEN" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "ODPOJUJE" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Aktivní sokety domény UNIX " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(servery a navázaná spojení)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(pouze servery)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(w/o servery)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -1001,90 +938,92 @@ + "\n" + "Proto Èítaè Pøíznaky Typ Stav I-Uzel" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Cesta\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM ODESLÁN" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "OBNOVA" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktivní AX.25 sokety\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "chyba pøi ètení dat z %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Aktivní IPX sokety\n" +-"Proto Pøích-F Odch-F Lokál adresa Vzdálená adresa " +-" Stav" ++"Proto Pøích-F Odch-F Lokál adresa Vzdálená " ++"adresa Stav" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " U¾ivatel" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "SPOJEN" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "NEZ." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - statistická data nejsou dostupná -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[®ÁDNÉ PØÍZNAKY]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tabulka rozhraní v jádru\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + "Rozhr MTU Met PØ-OK PØ-CHYB PØ-ZAH PØ-PØT OD-OK OD-CHYB OD-ZAH OD-PØT " + "PØZ\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "chybí informace o rozhraní" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [<Af>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" +-"Pou¾ití: netstat [--veenNcCF] [<TA>] -r netstat " +-"{-V|--version|-h|--help}\n" ++"Pou¾ití: netstat [--veenNcCF] [<TA>] -r netstat {-V|--version|-h|--" ++"help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [<Socket> ...]\n" + msgstr " netstat [-vnNcaeol] [<Soket> ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1092,27 +1031,32 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route vypí¹e smìrovací tabulku\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces vypí¹e tabulku rozhraní\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups vypí¹e èlenství v multicast skupinách\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics vypí¹e statistiku sí»ové aktivity (jako " + "SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1120,20 +1064,45 @@ + " -M, --masquerade vypí¹e maskovaná spojení\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic pøevede hw jména\n" + +-#: ../netstat.c:1439 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend vypí¹e podrobnìj¹í informace\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs vypí¹e PID/jméno programu pro sokety\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1141,23 +1110,27 @@ + " -c, --continuous nepøeru¹ovaný výpis\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + " -l, --listening vypí¹e sokety, na nich¾ je nasloucháno\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening vypí¹e v¹echny sokety (implicitnì: " + "spojené)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers zobrazí èasovaèe\n" + +-#: ../netstat.c:1445 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -1165,112 +1138,126 @@ + " -F, --fib zobrazí Forwarding Infomation Base\n" + " (implicitní)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" + msgstr " -C, --cache místo FIB zobrazí smìrovací cache\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" <Soket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" <Soket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" + msgstr " <AF>=Pou¾ijte '-A <af>' or '--<af>' Implicitní: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Seznam mo¾ných tøíd adres (podporujících smìrování):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktivní Internetová spojení " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" + "Proto Pøích-F Odch-F Místní Adresa Vzdálená Adresa Stav " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " U¾ivatel I-uzel " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Èasovaè" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "Èlenství v IPv4 skupinách\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Rozhraní Èítaè Skupina\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Toto jádro nepodporuje RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "pro %s neexistuje RARP polo¾ka.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "hardwarová adresa %s je nesprávná\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: soubor %s:%s nelze otevøít.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: syntaktická chyba na øádku %2$u souboru %1$s\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: poèítaè %s není znám\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: nelze nastavit polo¾ku z øádku %2$u souboru %1$s\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "Pou¾ití: rarp -a vypí¹e polo¾ky z cache.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d <hostname> delete entry from cache.\n" + msgstr " rarp -d <jméno> sma¾e polo¾ku z cache.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" + msgstr "" + " rarp [<HW>] -s <jméno> <hwadr> pøidá polo¾ku do cache.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f pøidá polo¾ky z /etc/ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1279,24 +1266,26 @@ + "programu.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "Kombinace pøepínaèù %s je nesprávná.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: hardwarový typ %s není znám.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" + msgstr "" + "Pou¾ití: route [-nNvee] [-FC] [<AF>] Zobrazí smìrovací tabulky v " + "jádru\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1305,14 +1294,16 @@ + "AF.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [<AF>] Detailed usage syntax for " + "specified AF.\n" + msgstr "" + " route {-h|--help [<AF>] Nápovìda pro pou¾ití s AF.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1321,15 +1312,23 @@ + " route {-V|--version} Vypí¹e oznaèení verze a autora\n" + " programu.\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>=Pou¾ijte '-A <af>' or '--<af>' Implicitní: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Pou¾ití: plipconfig [-a] [-i] [-v] rozhraní\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1338,25 +1337,30 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Pou¾ití: iptunnel { add | change | del | show } [ JMÉNO ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + " [ mode { ipip | gre | sit } ] [ vzdálená ADR ] [ místní ADR ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KLÍÈ ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev ZAØÍZENÍ ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1364,450 +1368,737 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Kde: JMÉNO := ØETÌZEC\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " ADR := { IP-ADRESA | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { ÈÍSLO | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KLÍÈ := { DOTTED_QUAD | ÈÍSLO }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "S ipip a sit nejsou klíèe povoleny.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Tunel se v¹esmìrovým vysíláním vy¾aduje zdrojovou adresu.\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 a noptmudisc se navzájem vyluèují\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "re¾im tunelu (ipip, gre èi sit) nelze zjistit\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip vzdálený %s místní %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Neznám." + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Zahazuje pakety mimo poøadí.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Pøijímané pakety musí mít kontrolní souèet.\n" + + # ??? +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Øadí odchozí pakety.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Odchozí pakety budou mít kontrolní souèet.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "Lituji, formát /proc/net/dev je chybný.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Typ [%s] se nepodaøilo zjistit.\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakety Bajty Chyby CsumChyb MimoPoø Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakety Bajty Chyby DeadLoop NoRoute NoBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "histogram ICMP vstupu:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "histogram ICMP výstupu:" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Pøedávání je %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Implicitní TTL je %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "celkem pøijmutých paketù: %d" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "s nesprávnými hlavièkami: %d" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "s nesprávnými adresami: %d" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "pøedáno: %d" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "s neznámým protokolem: %d" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "poèet zahozených pøíchozích paketù: %d" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "poèet doruèených pøíchozích paketù: %d" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "poèet odeslaných po¾adavkù: %d" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "poèet zahozených odchozích paketù: %d" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "zahozeno kvùli chybìjící cestì: %d" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "poèet fragmentù zahozených po vypr¹ení èasu: %d" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "poèet nutných znovusestavení: %d" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "poèet v poøádku znovu sestavených paketù: %d" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "poèet paketù, je¾ se nepodaøilo znovu sestavit: %d" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "poèet v poøádku pøijmutých fragmentù: %d" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "poèet chybných fragmentù: %d" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "poèet vytvoøených fragmentù: %d" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "poèet pøijmutých ICMP zpráv: %d" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "poèet chybných pøíchozích ICMP zpráv: %d" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "adresát nedostupný: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "vypr¹el èas pøi pøenosu: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "chybné parametry: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "øízení toku dat: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "zmìna cesty: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "¾ádost o echo: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "odpovìï na ¾ádost o echo: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "¾ádost o èas: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "odpovìï na ¾ádost o èas: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "¾ádost o masku podsítì: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "odpovìdi na ¾ádost o masku podsítì" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "odpovìï na ¾ádost o masku podsítì: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "poèet odeslaných ICMP zpráv: %d" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "poèet chybných ICMP zpráv: %d" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "vypr¹ení ¾ivotnosti: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "øízení toku dat: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "zmìna cesty: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "¾ádost o echo: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "¾ádost o èas: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "odpovìï na ¾ádost o èas: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "¾ádost o masku podsítì: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "odpovìï na ¾ádost o masku podsítì: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "RTO algoritmus je %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "poèet aktivnì navázaných spojení: %d" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "poèet pasivnì navázaných spojení: %d" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "poèet neúspì¹ných pokusù o spojení: %d" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "poèet pøijmutých resetù: %d" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "poèet navázaných spojení: %d" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "poèet pøijmutých segmentù: %d" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "poèet odeslaných segmentù: %d" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "poèet pøenesených segmentù: %d" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "poèet chybných pøíchozích segmentù: %d." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "poèet odeslaných resetù: %d" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "poèet pøijmutých paketù: %d" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "poèet paketù pøijmutých pro neznámý port: %d." + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "poèet chyb pøi pøíjmu paketù: %d" + +-#: ../statistics.c:137 +-#, c-format +-msgid "%d packets sent" ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" + msgstr "poèet odeslaných paketù: %d" + +-#: ../statistics.c:142 +-#, c-format +-msgid "%d SYN cookies sent" ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" + msgstr "poèet odeslaných SYN cookies: %d" + +-#: ../statistics.c:143 +-#, c-format +-msgid "%d SYN cookies received" ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" + msgstr "poèet pøijmutých SYN cookies: %d" + +-#: ../statistics.c:144 +-#, c-format +-msgid "%d invalid SYN cookies received" ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" + msgstr "poèet chybných pøíchozích SYN cookies: %d" + +-#: ../statistics.c:146 +-#, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" + msgstr "poèet resetù pøijmutých pro sokety ve stavu SYN_PØÍCH: %d" + +-#: ../statistics.c:148 +-#, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" + msgstr "poèet paketù odstranìných z fronty kvùli pøeteèení bufferu soketu: %d" + + #. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 +-#, c-format +-msgid "%d packets pruned from out-of-order queue" ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" + msgstr "poèet paketù odstranìných z fronty mimo-poøadí: %d" + +-#: ../statistics.c:152 +-#, c-format ++#: ../statistics.c:154 ++#, fuzzy, c-format + msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" + msgstr "" + "poèet paketù zahozených z fronty mimo-poøadí kvùli pøeteèení bufferu soketu: " + "%d" + +-#: ../statistics.c:154 +-#, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" + msgstr "poèet ICMP paketù zahozených, proto¾e byly mimo-okno: %d" + +-#: ../statistics.c:156 +-#, c-format +-msgid "%d ICMP packets dropped because socket was locked" ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" + msgstr "poèet ICMP paketù zahozených kvùli zamèenému soketu: %d" + ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" ++msgstr "poèet odeslaných paketù: %d" ++ ++#: ../statistics.c:170 ++#, c-format ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" ++ ++#: ../statistics.c:172 ++#, c-format ++msgid "Quick ack mode was activated %u times" ++msgstr "" ++ ++#: ../statistics.c:173 ++#, c-format ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" ++ ++#: ../statistics.c:175 ++#, c-format ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" ++ ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" ++ ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "poèet paketù odstranìných z fronty mimo-poøadí: %d" ++ ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "poèet pøijmutých paketù: %d" ++ ++#: ../statistics.c:184 ++#, c-format ++msgid "%u packets header predicted and directly queued to user" ++msgstr "" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" ++ ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "poèet paketù pøijmutých pro neznámý port: %d." ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "poèet chybných pøíchozích segmentù: %d." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "poèet odeslaných resetù: %d" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "poèet pøenesených segmentù: %d" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "poèet pøenesených segmentù: %d" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "poèet paketù, je¾ se nepodaøilo znovu sestavit: %d" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "poèet paketù odstranìných z fronty kvùli pøeteèení bufferu soketu: %d" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "poèet pøijmutých paketù: %d" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "celkem pøijmutých paketù: %d" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "poèet pøijmutých resetù: %d" ++ + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "zapnuto" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "vypnuto" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "titulek %s je neznámý\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "chyba pøi zpracování /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "/proc/net/snmp nelze otevøít" + +@@ -1821,89 +2112,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Linkovou disciplínu nelze na `%s' zmìnit.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "NEZNÁM" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "Doména UNIX" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "Novell IPX" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Nezadávejte více ne¾ jednu tøídu adres.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Bylo zadáno pøíli¹ mnoho tøíd adres.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Tøída adres `%s' není známa.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[NENASTAVENO]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): chybná arcnet adresa!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): nadbyteèné znaky!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Chybná Ash adresa" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[NENASTAVENO]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Nesprávný volací znak" +@@ -1913,22 +2210,21 @@ + msgstr "Volací znak je pøíli¹ dlouhý." + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 není na tomto systému nakonfigurováno.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Smìrovací tabulka v jádru pro AX.25\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Adresát Rozhraní U¾ití\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1944,153 +2240,171 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): nadbyteèné znaky!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): chybná fddi adresa!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): nadbyteèné znaky!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Tøída adres `%s' není podporována.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Pro tøídu adres `%s' není ¾ádné smìrování.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): chybná hippi adresa!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): nadbyteèné znaky!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Místní smyèka" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "IP po sériové lince" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "Vj IP po sériové lince" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6bitový IP po sériové lince" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "6bitový VJ IP po sériové lince" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptivní IP po sériové lince" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Point-to-Point Protokol" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Pøístupové zaøízení Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-in-IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "Token Ring 16/4 Mb/s" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + #, fuzzy + msgid "16/4 Mbps Token Ring (New)" + msgstr "Token Ring 16/4 Mb/s" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: tøída adres %d není podporována!\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "NEZNÁM" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) není na tomto systému nakonfigurováno.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Smìrovací tabulka v jádru pro IPv6\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Adresát Dal¹í Smìrovaè " +-" Pøízn Metrika Odkaz U¾it Rozhraní\n" ++"Adresát Dal¹í " ++"Smìrovaè Pøízn Metrika Odkaz U¾it Rozhraní\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache sousedù v jádru pro IPv6\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2098,7 +2412,8 @@ + "Soused HW Adresa Rozhraní Pøízn " + "Odkazy Stav\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +@@ -2107,30 +2422,37 @@ + "Pøíznaky Odkazy Stav Pro¹lý(sec) Smazat(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Pou¾ití: inet6_route [-vF] del Cíl\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Cíl [gw Gw] [metrika M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NENÍ podporováno\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Smìrovací tabulku `inet6' nelze vyprazdòovat\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) není na tomto systému nakonfigurováno.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Smìrovací tabulka v jádru pro IP\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2139,6 +2461,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2147,6 +2470,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2155,10 +2479,12 @@ + "Rozhraní MSS Okno irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Smìrovací cache v jádru pro IP\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2167,6 +2493,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2175,6 +2502,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2183,6 +2511,7 @@ + "Rozhraní MSS Okno irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2190,7 +2519,8 @@ + "Odesílatel Adresát Maska Pøízn Metrik Odkazy U¾t " + "Rozhraní MSS Okno irtt TOS HHOdk HHAktuál Zvlá¹tCíl\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2198,29 +2528,34 @@ + "Pou¾ití: inet_route [-vF] del {-host|-net} Cíl[/prefix] [gw Gw] [metrika M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cíl[/prefix] [gw Gw] [metrika M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cíl/[prefix] [metrika M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NENÍ podporováno\n" + +@@ -2230,15 +2565,17 @@ + msgstr "route: %s: sí» nelze pou¾ít jako bránu!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: Nesprávné NSS.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Nesprávné okno.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: Nesprávné zahajovací rtt.\n" + +@@ -2253,75 +2590,92 @@ + msgstr "route: sí»ová maska %s je nesprávná\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: sí»ová maska nevyhovuje adrese cesty\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Smìrovací cache `inet' nelze vyprazdòovat\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Smìrovací cache `inet' nelze mìnit\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX není na tomto systému nakonfigurováno.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Smìrovací tabulka v jádru pro IPX\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Cíl Smìrovaè Sí» Smìrovaè Uzel\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX: toto je tøeba ulo¾it\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP maskovací polo¾ky\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot ¾ivot zdroj cíl porty\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot ¾ivot zahajsek delta pøedchd zdroj cíl " +-" porty\n" ++"prot ¾ivot zahajsek delta pøedchd zdroj " ++"cíl porty\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM není na tomto systému nakonfigurováno.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Smìrovací tabulka v jádru pro NET/ROM\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Cíl Mnemonika Kvalita Soused Rozhraní\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "pou¾ití netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: toto je potøeba ulo¾it\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Tímto programem nelze PPP spustit.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Lituji, pou¾ijte pppd!\n" + +@@ -2330,49 +2684,319 @@ + msgstr "Adresa uzlu musí mít 10 èíslic" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE není na tomto systému nakonfigurováno.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Smìrovací tabulka v jádru pro ROSE\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): nesprávná token ring adresa!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): nadbyteèné: ignorováno!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): nadbyteèné znaky!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "varování: není dostupný ¾ádný inet soket: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Zaøízení nebylo nalezeno" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - statistická data nejsou dostupná -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[®ÁDNÉ PØÍZNAKY]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Zapouzdøení:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "HWadr %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Médium:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s adr:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++# V ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání. ++# Tudi¾ bcast -> V¹esmìr :) ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " V¹esmìr:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr "Maska:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6-adr: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Rozsah:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Globál" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Linka" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Stanovi¹tì" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Kompatibilita" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Poèítaè" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Neznám." ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/Ethernet II adr: %s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/Ethernet SNAP adr:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/Ethernet 802.2 adr:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/Ethernet 802.3 adr:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " EtherTalk Phase 2 adr:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " econet adr:%s\n" ++ ++# Hic sunt leones ... ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[®ÁDNÉ PØÍZNAKY]" ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "AKTIVOVÁNO " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "SMYÈKA " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++# ?? ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "BÌ®Í " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NEARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISK " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metrika:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " komprimováno:%lu\n" ++ ++# carrier? ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " kolizí:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "komprimováno:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "délka odchozí fronty:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Pøeru¹ení:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Vstupnì/Výstupní port:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Pamì»:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Kanál DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Nebyla nalezena ¾ádná pou¾itelná tøída adres.\n" + +@@ -2396,29 +3020,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argument %s je nesprávný\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr " Usage: ipmaddr [ add | del ] MULTIADR dev ØETÌZEC\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev ØETÌZEC ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "tøída %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " u¾ivatelé %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Soket nelze vytvoøit" + +@@ -2433,6 +3060,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: do PID souboru nelze zapisovat\n" + +@@ -2451,44 +3079,77 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "jméno %s je pøíli¹ dlouhé\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: aktuální stav nelze zjistit!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "slattach: tty_open: aktuální linkovou disciplínu nelze zjistit!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: re¾im RAW nelze nastavit!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: %s bps nelze nastavit!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: re¾im 8N1 nelze nastavit!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "protokol %s spu¹tìn" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " na %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr " rozhraní %s\n" + + #~ msgid "" +-#~ " This comand can read or set the hostname or the NIS domainname. You can\n" ++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub " ++#~ "<-''-\n" ++#~ msgstr "" ++#~ " arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [sí»mask <èís>] <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: rozhraní %s není známo\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "odpovìdi na ¾ádost o masku podsítì" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "titulek %s je neznámý\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\n" ++ ++#~ msgid "" ++#~ " This comand can read or set the hostname or the NIS domainname. You " ++#~ "can\n" + #~ msgstr "" + #~ " Tento program zji¹»uje a nastavuje jméno poèítaèe èi NIS domény. Mù¾e " + #~ "také\n" +@@ -2500,7 +3161,8 @@ + #~ msgid "" + #~ " Unless you are using bind or NIS for host lookups you can change the\n" + #~ msgstr "" +-#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak mù¾ete\n" ++#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak " ++#~ "mù¾ete\n" + + #~ msgid "" + #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" +--- net-tools-1.60.orig/po/ja.po ++++ net-tools-1.60/po/ja.po +@@ -0,0 +1,3133 @@ ++# Net-tool Japanese locale data ++# Kenshi Muto <kmuto@debian.org>, 2007. ++# Yasuyuki Furukawa <yasu@on.cs.keio.ac.jp>, 1999. ++# ++msgid "" ++msgstr "" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" ++"PO-Revision-Date: 2007-07-04 20:47+0900\n" ++"Last-Translator: Kenshi Muto <kmuto@debian.org>\n" ++"Language-Team: Japanese\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8-bit\n" ++ ++#: ../arp.c:112 ../arp.c:279 ++#, c-format ++msgid "arp: need host name\n" ++msgstr "arp: ホストåãŒå¿…è¦ã§ã™\n" ++ ++#: ../arp.c:215 ../arp.c:230 ++#, c-format ++msgid "No ARP entry for %s\n" ++msgstr "%sã®ARPエントリãŒã‚ã‚Šã¾ã›ã‚“\n" ++ ++#: ../arp.c:248 ++#, c-format ++msgid "arp: cant get HW-Address for `%s': %s.\n" ++msgstr "arp: '%s'ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s.\n" ++ ++#: ../arp.c:252 ++#, c-format ++msgid "arp: protocol type mismatch.\n" ++msgstr "arp: プロトコルタイプãŒé©åˆã—ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:261 ++#, c-format ++msgid "arp: device `%s' has HW address %s `%s'.\n" ++msgstr "arp: デãƒã‚¤ã‚¹`%s'ã¯ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹%s `%s'ã§ã™.\n" ++ ++#: ../arp.c:293 ++#, c-format ++msgid "arp: need hardware address\n" ++msgstr "arp: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå¿…è¦ã§ã™\n" ++ ++#: ../arp.c:301 ++#, c-format ++msgid "arp: invalid hardware address\n" ++msgstr "arp: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒä¸é©å½“ã§ã™\n" ++ ++#: ../arp.c:398 ++#, c-format ++msgid "arp: cannot open etherfile %s !\n" ++msgstr "arp: etherファイル%sãŒé–‹ã‘ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:414 ++#, c-format ++msgid "arp: format error on line %u of etherfile %s !\n" ++msgstr "arp: %uè¡Œ(ファイル%s)ã«ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™!\n" ++ ++#: ../arp.c:427 ++#, c-format ++msgid "arp: cannot set entry on line %u of etherfile %s !\n" ++msgstr "arp: etherファイル%uè¡Œ(%s)ã®ã‚¨ãƒ³ãƒˆãƒªã‚’設定ã§ãã¾ã›ã‚“!\n" ++ ++#: ../arp.c:448 ++#, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" ++msgstr "アドレス HWタイプ HWアドレス フラグ マスク インタフェース\n" ++ ++#: ../arp.c:476 ++msgid "<from_interface>" ++msgstr "<起点インタフェース>" ++ ++#: ../arp.c:478 ++msgid "(incomplete)" ++msgstr "(ä¸å®Œå…¨)" ++ ++# translatable? ++#: ../arp.c:495 ++#, c-format ++msgid "%s (%s) at " ++msgstr "%s (%s) at " ++ ++#: ../arp.c:501 ++#, c-format ++msgid "<incomplete> " ++msgstr "<ä¸å®Œå…¨> " ++ ++#: ../arp.c:507 ++#, c-format ++msgid "netmask %s " ++msgstr "ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ %s " ++ ++# translatable? ++#: ../arp.c:524 ++#, c-format ++msgid "on %s\n" ++msgstr "on %s\n" ++ ++#: ../arp.c:605 ++#, c-format ++msgid "Entries: %d\tSkipped: %d\tFound: %d\n" ++msgstr "エントリ: %d\tスキップ: %d\t発見: %d\n" ++ ++#: ../arp.c:609 ++#, c-format ++msgid "%s (%s) -- no entry\n" ++msgstr "%s (%s) -- エントリãªã—\n" ++ ++#: ../arp.c:611 ++#, c-format ++msgid "arp: in %d entries no match found.\n" ++msgstr "arp: %dã®ã‚¨ãƒ³ãƒˆãƒªä¸­, 一致ã™ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../arp.c:626 ++#, c-format ++msgid "" ++"Usage:\n" ++" arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP " ++"cache\n" ++msgstr "" ++"使用法:\n" ++" arp [-vn] [<HW>] [-i <インタフェース>]\n" ++" [-a] [<ホストå>] ‥‥ ARPキャッシュã®è¡¨" ++"示\n" ++ ++#: ../arp.c:627 ++#, c-format ++msgid "" ++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP " ++"entry\n" ++msgstr " arp [-v] [-i <インタフェース>] -d <ホストå> [pub] ‥‥ARPエントリを削除\n" ++ ++#: ../arp.c:628 ++#, c-format ++msgid "" ++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from " ++"file\n" ++msgstr "" ++" arp [-vnD] [<HW>] [-i <インタフェース>] \n" ++" -f <ファイルå> ‥‥ファイルã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’追加\n" ++ ++#: ../arp.c:629 ++#, c-format ++msgid "" ++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add " ++"entry\n" ++msgstr "" ++" arp [-v] [<HW>] [-i <インタフェース>]\n" ++" -s <ホストå> <ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹> [temp] ‥‥エントリを追加\n" ++ ++# FIXME:What does '' mean? ++#: ../arp.c:630 ++#, c-format ++msgid "" ++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub " ++"<-''-\n" ++"\n" ++msgstr "" ++" arp [-v] [<HW>] [-i <インタフェース>] -Ds <ホストå>\n" ++" <インタフェース> [netmask <ãƒãƒƒãƒˆãƒžã‚¹ã‚¯>] pub ‥‥ 〃\n" ++ ++#: ../arp.c:632 ++#, c-format ++msgid "" ++" -a display (all) hosts in alternative (BSD) " ++"style\n" ++msgstr "" ++" -a æ–°ã—ã„(BSD)スタイルã§ã‚¨ãƒ³ãƒˆãƒªã•ã‚ŒãŸå…¨ãƒ›ã‚¹ãƒˆã‚’表示" ++"ã™ã‚‹\n" ++ ++#: ../arp.c:633 ++#, c-format ++msgid " -s, --set set a new ARP entry\n" ++msgstr " -s, --set æ–°è¦ARPエントリを設定ã™ã‚‹\n" ++ ++#: ../arp.c:634 ++#, c-format ++msgid " -d, --delete delete a specified entry\n" ++msgstr " -d, --delete 指定エントリを削除ã™ã‚‹\n" ++ ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format ++msgid " -v, --verbose be verbose\n" ++msgstr " -v, --verbose 詳細表示を行ãªã†\n" ++ ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format ++msgid " -n, --numeric don't resolve names\n" ++msgstr " -n, --numeric åå‰ã®ãƒ¬ã‚¾ãƒ«ãƒ–ã‚’ã—ãªã„\n" ++ ++#: ../arp.c:637 ++#, c-format ++msgid "" ++" -i, --device specify network interface (e.g. eth0)\n" ++msgstr " -i, --device ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã®æŒ‡å®š(例 eth0)\n" ++ ++#: ../arp.c:638 ++#, c-format ++msgid " -D, --use-device read <hwaddr> from given device\n" ++msgstr "" ++" -D, --use-device 与ãˆã‚‰ã‚ŒãŸãƒ‡ãƒã‚¤ã‚¹ã‹ã‚‰\n" ++" <HWアドレス>を読ã¿è¾¼ã‚€\n" ++ ++#: ../arp.c:639 ++#, c-format ++msgid " -A, -p, --protocol specify protocol family\n" ++msgstr " -A, -p, --protocol プロトコルファミリを指定ã™ã‚‹\n" ++ ++#: ../arp.c:640 ++#, c-format ++msgid "" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" ++"\n" ++msgstr " -f, --file /etc/ethersファイルã‹ã‚‰æ–°è¦ã‚¨ãƒ³ãƒˆãƒªã‚’読ã¿è¾¼ã‚€\n\n" ++ ++#: ../arp.c:642 ../rarp.c:182 ++#, c-format ++msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n" ++msgstr " <HW>=ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¿ã‚¤ãƒ—を指定ã™ã‚‹ã«ã¯'-H <hw>'を使ã£ã¦ä¸‹ã•ã„。標準: %s\n" ++ ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format ++msgid " List of possible hardware types (which support ARP):\n" ++msgstr " (ARPをサãƒãƒ¼ãƒˆã—ãŸ)指定å¯èƒ½ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../arp.c:677 ../arp.c:762 ++#, c-format ++msgid "%s: hardware type not supported!\n" ++msgstr "%s: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:681 ++#, c-format ++msgid "%s: address family not supported!\n" ++msgstr "%s: アドレスファミリãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:716 ++#, c-format ++msgid "arp: -N not yet supported.\n" ++msgstr "arp: -Nã¯ã¾ã ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:726 ++#, c-format ++msgid "arp: %s: unknown address family.\n" ++msgstr "arp: %s: ä¸æ˜Žãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã§ã™.\n" ++ ++#: ../arp.c:735 ++#, c-format ++msgid "arp: %s: unknown hardware type.\n" ++msgstr "arp: %s: ä¸æ˜Žãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../arp.c:754 ++#, c-format ++msgid "arp: %s: kernel only supports 'inet'.\n" ++msgstr "arp: %s: カーãƒãƒ«ã¯'inet'以外ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:767 ++#, c-format ++msgid "arp: %s: hardware type without ARP support.\n" ++msgstr "arp: %s: ARPサãƒãƒ¼ãƒˆã®ãªã„ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../hostname.c:71 ++#, c-format ++msgid "Setting nodename to `%s'\n" ++msgstr "ノードåã‚’`%s'ã¸è¨­å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:76 ++#, c-format ++msgid "%s: you must be root to change the node name\n" ++msgstr "%s: ノードåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 ++#, c-format ++msgid "%s: name too long\n" ++msgstr "%s: åå‰ãŒé•·ã™ãŽã¾ã™\n" ++ ++#: ../hostname.c:91 ++#, c-format ++msgid "Setting hostname to `%s'\n" ++msgstr "ホストåã‚’`%s'ã¸è¨­å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:96 ++#, c-format ++msgid "%s: you must be root to change the host name\n" ++msgstr "%s: ホストåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:109 ++#, c-format ++msgid "Setting domainname to `%s'\n" ++msgstr "ドメインを`%s'ã¸è¨­å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:114 ++#, c-format ++msgid "%s: you must be root to change the domain name\n" ++msgstr "%s: ドメインåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:131 ++#, c-format ++msgid "Resolving `%s' ...\n" ++msgstr "`%s'をレゾルブ中 ...\n" ++ ++#: ../hostname.c:137 ++#, c-format ++msgid "Result: h_name=`%s'\n" ++msgstr "çµæžœ: h_name=`%s'\n" ++ ++#: ../hostname.c:142 ++#, c-format ++msgid "Result: h_aliases=`%s'\n" ++msgstr "çµæžœ: h_aliases=`%s'\n" ++ ++#: ../hostname.c:147 ++#, c-format ++msgid "Result: h_addr_list=`%s'\n" ++msgstr "çµæžœ: h_addr_list=`%s'\n" ++ ++#: ../hostname.c:208 ++#, c-format ++msgid "%s: can't open `%s'\n" ++msgstr "%s: `%s'ã‚’é–‹ã‘ã¾ã›ã‚“\n" ++ ++#: ../hostname.c:222 ++#, c-format ++msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" ++msgstr "使用法: hostname [-v] {ホストå|-F ファイル} (ファイルã«ã‚ˆã‚‹)ホストåã®è¨­å®š\n" ++ ++#: ../hostname.c:223 ++#, c-format ++msgid "" ++" domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" ++msgstr " domainname [-v] {NISドメイン|-F ファイル} (ファイルã«ã‚ˆã‚‹)NISドメインåã®è¨­å®š\n" ++ ++#: ../hostname.c:225 ++#, c-format ++msgid "" ++" nodename [-v] {nodename|-F file} set DECnet node name (from " ++"file)\n" ++msgstr "" ++"nodename [-v] {ノードå|-F ファイル} (ファイルã«ã‚ˆã‚‹)DECnetノードåã®è¨­å®š\n" ++ ++#: ../hostname.c:227 ++#, c-format ++msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" ++msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y] å½¢å¼ã‚’指定ã—ã¦è¡¨ç¤º\n" ++ ++#: ../hostname.c:228 ++#, c-format ++msgid "" ++" hostname [-v] display hostname\n" ++"\n" ++msgstr "" ++" hostname [-v] ホストåã®å‡ºåŠ›\n" ++"\n" ++ ++#: ../hostname.c:229 ++#, c-format ++msgid "" ++" hostname -V|--version|-h|--help print info and exit\n" ++"\n" ++msgstr "" ++" hostname -V|--version|-h|--help 諸情報を出力ã—ã¦çµ‚了\n" ++"\n" ++"\n" ++ ++#: ../hostname.c:230 ++#, c-format ++msgid "" ++" dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" ++"\n" ++msgstr " dnsdomainname=ホストå -d, {yp,nis,}domainname=ホストå -y\n\n" ++ ++#: ../hostname.c:231 ++#, c-format ++msgid " -s, --short short host name\n" ++msgstr " -s, --short 短縮ホストå\n" ++ ++#: ../hostname.c:232 ++#, c-format ++msgid " -a, --alias alias names\n" ++msgstr " -a, --alias エイリアスå\n" ++ ++#: ../hostname.c:233 ++#, c-format ++msgid " -i, --ip-address addresses for the hostname\n" ++msgstr " -i, --ip-address ホストåã«å¯¾ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹\n" ++ ++#: ../hostname.c:234 ++#, c-format ++msgid " -f, --fqdn, --long long host name (FQDN)\n" ++msgstr " -f, --fqdn, --long ロングホストå(FQDN)\n" ++ ++#: ../hostname.c:235 ++#, c-format ++msgid " -d, --domain DNS domain name\n" ++msgstr " -d, --domain DNSドメインå\n" ++ ++#: ../hostname.c:236 ++#, c-format ++msgid " -y, --yp, --nis NIS/YP domainname\n" ++msgstr " -y, --yp, --nis NIS/YPドメインå\n" ++ ++#: ../hostname.c:238 ++#, c-format ++msgid " -n, --node DECnet node name\n" ++msgstr " -n, --node DECnetノードå\n" ++ ++#: ../hostname.c:240 ++#, c-format ++msgid "" ++" -F, --file read hostname or NIS domainname from given file\n" ++"\n" ++msgstr " -F, --file 指定ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ãƒ›ã‚¹ãƒˆåã‹NISドメインåを読ã¿è¾¼ã‚€\n\n" ++ ++#: ../hostname.c:242 ++#, c-format ++msgid "" ++" This command can read or set the hostname or the NIS domainname. You can\n" ++" also read the DNS domain or the FQDN (fully qualified domain name).\n" ++" Unless you are using bind or NIS for host lookups you can change the\n" ++" FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" ++" part of the FQDN) in the /etc/hosts file.\n" ++msgstr "" ++" ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã¯ã€ãƒ›ã‚¹ãƒˆåã¾ãŸã¯NISドメインåを読ã¿è¾¼ã¿ã¾ãŸã¯è¨­å®šã§ãã¾ã™ã€‚\n" ++" DNSドメインã¾ãŸã¯FDN(完全修飾ドメインå)を読ã¿è¾¼ã‚€ã“ã¨ã‚‚ã§ãã¾ã™ã€‚\n" ++" ホストåã®å‚ç…§ã«BindãŠã‚ˆã³, NISも使ã‚ãªã„å ´åˆ, /etc/hostsファイルã«ã‚ã‚‹\n" ++" FQDNã‚„, (FQDNã®ä¸€éƒ¨åˆ†ã®)ドメインåを変更ã§ãã¾ã™.\n" ++ ++#: ../hostname.c:338 ++#, c-format ++msgid "%s: You can't change the DNS domain name with this command\n" ++msgstr "%s: ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã¯DNSドメインåã¯å¤‰æ›´ã§ãã¾ã›ã‚“.\n" ++ ++#: ../hostname.c:339 ++#, c-format ++msgid "" ++"\n" ++"Unless you are using bind or NIS for host lookups you can change the DNS\n" ++msgstr "" ++"\n" ++"ホストåã®å‚ç…§ã«BindãŠã‚ˆã³, NISも使ã‚ãªã„å ´åˆã€/etc/hostsファイル\n" ++ ++#: ../hostname.c:340 ++#, c-format ++msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" ++msgstr "ã«ã‚ã‚‹FQDNã‚„, (FQDNã®ä¸€éƒ¨åˆ†ã®)ドメインåを変更ã§ãã¾ã™.\n" ++ ++#: ../hostname.c:357 ++#, c-format ++msgid "gethostname()=`%s'\n" ++msgstr "gethostname()=`%s'\n" ++ ++#: ../hostname.c:374 ++#, c-format ++msgid "getdomainname()=`%s'\n" ++msgstr "getdomainname()=`%s'\n" ++ ++#: ../hostname.c:389 ++#, c-format ++msgid "getnodename()=`%s'\n" ++msgstr "getnodename()=`%s'\n" ++ ++#: ../ifconfig.c:107 ++#, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR フラグ\n" ++ ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: インタフェースフラグã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ:%s\n" ++ ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format ++msgid "No support for INET on this system.\n" ++msgstr "INETã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:193 ++#, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: インタフェースフラグã®ãƒ†ã‚¹ãƒˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s\n" ++ ++#: ../ifconfig.c:202 ++#, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n" ++msgstr "" ++"使用法:\n" ++" ifconfig [-a] [-v] [-s] <インタフェース> [[<AF>] <アドレス>]\n" ++ ++#: ../ifconfig.c:204 ++#, c-format ++msgid " [add <address>[/<prefixlen>]]\n" ++msgstr " [add <アドレス>[/<プレフィックス長>]]\n" ++ ++#: ../ifconfig.c:205 ++#, c-format ++msgid " [del <address>[/<prefixlen>]]\n" ++msgstr " [del <アドレス>[/<プレフィックス長>]]\n" ++ ++#: ../ifconfig.c:206 ++#, c-format ++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" ++msgstr " [[-]broadcast [<アドレス>]] [[-]pointopoint [<アドレス>]]\n" ++ ++#: ../ifconfig.c:207 ++#, c-format ++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n" ++msgstr " [netmask <アドレス>] [dstaddr <アドレス>] [tunnel <アドレス>]\n" ++ ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill <NN>] [keepalive <NN>]\n" ++msgstr " [outfill <数値>] [keepalive <数値>]\n" ++ ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n" ++msgstr " [hw <HW> <アドレス>] [metric <数値>] [mtu <数値>]\n" ++ ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++ ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" ++ ++#: ../ifconfig.c:215 ++#, c-format ++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n" ++msgstr " [mem_start <開始アドレス>] [io_addr <IOアドレス>] [irq <番å·>] [media <タイプ>]\n" ++ ++#: ../ifconfig.c:217 ++#, c-format ++msgid " [txqueuelen <NN>]\n" ++msgstr " [txqueuelen <TXキュー長>]\n" ++ ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" ++ ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr " [up|down] ...\n\n" ++ ++#: ../ifconfig.c:224 ++#, c-format ++msgid " <HW>=Hardware Type.\n" ++msgstr " <HW>=ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—.\n" ++ ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " 利用å¯èƒ½ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã®ãƒªã‚¹ãƒˆ:\n" ++ ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " <AF>=Address family. Default: %s\n" ++msgstr " <AF>=アドレスファミリ. 標準: %s\n" ++ ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " 利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "ifconfig: オプション`%s'を解釈ã§ãã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "ifconfig: `--help'ã§ä½¿ç”¨æ³•ã‚’見られã¾ã™.\n" ++ ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "ä¸æ˜Žãªãƒ¡ãƒ‡ã‚£ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "警告: インタフェース%sã¯ã¾ã promiscモードã§ã™...æらãä»–ã®ã‚¢ãƒ—リケーションãŒå®Ÿè¡Œä¸­ã§ã¯ã‚ã‚Šã¾ã›ã‚“ã‹?\n" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã MULTICASTモードã§ã™.\n" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã ALLMULTIモードã§ã™.\n" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã DYNAMICモードã§ã™.\n" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã BROADCASTモードã§ã™.\n" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã POINTOPOINTモードã§ã™.\n" ++ ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¿ã‚¤ãƒ—`%s'ã¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定ã™ã‚‹ãƒãƒ³ãƒ‰ãƒ©ã‚’æŒã£ã¦ã„ã¾ã›ã‚“. 失敗ã—ã¾ã—ãŸ.\n" ++ ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: ä¸é©åˆ‡ãªã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™(%s).\n" ++ ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format ++msgid "No support for INET6 on this system.\n" ++msgstr "INET6ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:780 ../ifconfig.c:871 ++#, c-format ++msgid "Interface %s not initialized\n" ++msgstr "インタフェース%sã¯åˆæœŸåŒ–ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format ++msgid "Bad address.\n" ++msgstr "ä¸é©åˆ‡ãªã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™.\n" ++ ++#: ../ifconfig.c:885 ++#, c-format ++msgid "Address deletion not supported on this system.\n" ++msgstr "アドレス削除ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:957 ++#, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "ifconfig:ã“ã®ãƒ—ロトコルファミリã«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定ã§ãã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:983 ++#, c-format ++msgid "No support for ECONET on this system.\n" ++msgstr "ECONETã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:991 ++#, c-format ++msgid "Don't know how to set addresses for family %d.\n" ++msgstr "ファミリ%dã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®è¨­å®šæ–¹æ³•ãŒä¸æ˜Žã§ã™.\n" ++ ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "警告: å°‘ãªãã¨ã‚‚1ã¤ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ. (%d)\n" ++ ++#: ../netstat.c:434 ++#, c-format ++msgid "" ++"(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" ++msgstr "(\"-p\"ã®æƒ…報を読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ: geteuid()=%d ã—ã‹ã—ルートã§ã‚ã‚‹ã¹ãã§ã™.)\n" ++ ++#: ../netstat.c:438 ++#, c-format ++msgid "" ++"(Not all processes could be identified, non-owned process info\n" ++" will not be shown, you would have to be root to see it all.)\n" ++msgstr "" ++"(一部ã®ãƒ—ロセスãŒè­˜åˆ¥ã•ã‚Œã¾ã™ãŒ, 所有ã—ã¦ã„ãªã„プロセスã®æƒ…å ±ã¯\n" ++"表示ã•ã‚Œã¾ã›ã‚“。ãれら全ã¦ã‚’見るã«ã¯ãƒ«ãƒ¼ãƒˆã«ãªã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™.)\n" ++ ++# translatable? ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 ++msgid "LISTENING" ++msgstr "LISTENING" ++ ++# translatable? ++#: ../netstat.c:446 ++msgid "CONN SENT" ++msgstr "CONN SENT" ++ ++# translatable? ++#: ../netstat.c:447 ../netstat.c:1268 ++msgid "DISC SENT" ++msgstr "DISC SENT" ++ ++# translatable? ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 ++msgid "ESTABLISHED" ++msgstr "ESTABLISHED" ++ ++#: ../netstat.c:470 ++#, c-format ++msgid "Active NET/ROM sockets\n" ++msgstr "稼åƒä¸­ã®NET/ROMソケット\n" ++ ++#: ../netstat.c:471 ++#, c-format ++msgid "" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "ユーザ å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:481 ../netstat.c:1308 ++#, c-format ++msgid "Problem reading data from %s\n" ++msgstr "%sã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã®èª­ã¿è¾¼ã¿ã«å•é¡Œ\n" ++ ++# translatable? ++#: ../netstat.c:516 ++msgid "SYN_SENT" ++msgstr "SYN_SENT" ++ ++# translatable? ++#: ../netstat.c:517 ++msgid "SYN_RECV" ++msgstr "SYN_RECV" ++ ++# translatable? ++#: ../netstat.c:518 ++msgid "FIN_WAIT1" ++msgstr "FIN_WAIT1" ++ ++# translatable? ++#: ../netstat.c:519 ++msgid "FIN_WAIT2" ++msgstr "FIN_WAIT2" ++ ++# translatable? ++#: ../netstat.c:520 ++msgid "TIME_WAIT" ++msgstr "TIME_WAIT" ++ ++# translatable? ++#: ../netstat.c:521 ++msgid "CLOSE" ++msgstr "CLOSE" ++ ++# translatable? ++#: ../netstat.c:522 ++msgid "CLOSE_WAIT" ++msgstr "CLOSE_WAIT" ++ ++# translatable? ++#: ../netstat.c:523 ++msgid "LAST_ACK" ++msgstr "LAST_ACK" ++ ++# translatable? ++#: ../netstat.c:524 ++msgid "LISTEN" ++msgstr "LISTEN" ++ ++# translatable? ++#: ../netstat.c:525 ++msgid "CLOSING" ++msgstr "CLOSING" ++ ++#: ../netstat.c:596 ++#, c-format ++msgid "warning, got bogus igmp6 line %d.\n" ++msgstr "警告, å½ã®igmp6ライン%dã‚’å¾—ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 ++#, c-format ++msgid "netstat: unsupported address family %d !\n" ++msgstr "netstat: サãƒãƒ¼ãƒˆã—ã¦ãªã„アドレスファミリ%dã§ã™!\n" ++ ++# c-format ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 ++#, c-format ++msgid "warning, got bogus igmp line %d.\n" ++msgstr "警告, å½ã®igmpライン%dã‚’å¾—ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:677 ++#, c-format ++msgid "Active X.25 sockets\n" ++msgstr "稼åƒä¸­ã®X.25ソケット\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ LCI 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format ++msgid "warning, got bogus tcp line.\n" ++msgstr "警告, å½ã®TCPラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 ++#, c-format ++msgid "off (0.00/%ld/%d)" ++msgstr "オフ (0.00/%ld/%d)" ++ ++#: ../netstat.c:804 ++#, c-format ++msgid "on (%2.2f/%ld/%d)" ++msgstr "オン (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:809 ++#, c-format ++msgid "keepalive (%2.2f/%ld/%d)" ++msgstr "キープアライブ (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:814 ++#, c-format ++msgid "timewait (%2.2f/%ld/%d)" ++msgstr "時間待㡠(%2.2f/%ld/%d)" ++ ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 ++#, c-format ++msgid "unkn-%d (%2.2f/%ld/%d)" ++msgstr "ä¸æ˜Ž-%d (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:894 ++#, c-format ++msgid "warning, got bogus udp line.\n" ++msgstr "警告, å½ã®UDPラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 ++msgid "UNKNOWN" ++msgstr "ä¸æ˜Ž" ++ ++#: ../netstat.c:958 ../netstat.c:1080 ++#, c-format ++msgid "on%d (%2.2f/%ld/%d)" ++msgstr "オン%d (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:1046 ++#, c-format ++msgid "warning, got bogus raw line.\n" ++msgstr "警告, å½ã®Rawラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:1128 ++#, c-format ++msgid "warning, got bogus unix line.\n" ++msgstr "警告, å½ã®unixラインを得ã¾ã—ãŸ.\n" ++ ++# translatable? ++#: ../netstat.c:1155 ++msgid "STREAM" ++msgstr "STREAM" ++ ++# translatable? ++#: ../netstat.c:1159 ++msgid "DGRAM" ++msgstr "DGRAM" ++ ++# translatable? ++#: ../netstat.c:1163 ++msgid "RAW" ++msgstr "RAW" ++ ++# translatable? ++#: ../netstat.c:1167 ++msgid "RDM" ++msgstr "RDM" ++ ++# translatable? ++#: ../netstat.c:1171 ++msgid "SEQPACKET" ++msgstr "SEQPACKET" ++ ++# translatable? ++#: ../netstat.c:1180 ++msgid "FREE" ++msgstr "FREE" ++ ++# translatable? ++#: ../netstat.c:1196 ++msgid "CONNECTING" ++msgstr "CONNECTING" ++ ++# translatable? ++#: ../netstat.c:1200 ++msgid "CONNECTED" ++msgstr "CONNECTED" ++ ++# translatable? ++#: ../netstat.c:1204 ++msgid "DISCONNECTING" ++msgstr "DISCONNECTING" ++ ++#: ../netstat.c:1235 ++#, c-format ++msgid "Active UNIX domain sockets " ++msgstr "稼åƒä¸­ã®UNIXドメインソケット " ++ ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format ++msgid "(servers and established)" ++msgstr "(サーãƒã¨ç¢ºç«‹)" ++ ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format ++msgid "(only servers)" ++msgstr "(サーãƒã®ã¿)" ++ ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format ++msgid "(w/o servers)" ++msgstr "(w/oサーãƒ)" ++ ++#: ../netstat.c:1245 ++#, c-format ++msgid "" ++"\n" ++"Proto RefCnt Flags Type State I-Node" ++msgstr "" ++"\n" ++"Proto RefCnt フラグ タイプ 状態 Iノード" ++ ++#: ../netstat.c:1247 ++#, c-format ++msgid " Path\n" ++msgstr " パス\n" ++ ++# translatable? ++#: ../netstat.c:1267 ++msgid "SABM SENT" ++msgstr "SABM SENT" ++ ++# translatable? ++#: ../netstat.c:1270 ++msgid "RECOVERY" ++msgstr "RECOVERY" ++ ++#: ../netstat.c:1284 ++#, c-format ++msgid "Active AX.25 sockets\n" ++msgstr "稼åƒä¸­ã®AX.25ソケット\n" ++ ++#: ../netstat.c:1285 ++#, c-format ++msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" ++msgstr "å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:1328 ++#, c-format ++msgid "problem reading data from %s\n" ++msgstr "%sã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿èª­ã¿è¾¼ã¿ä¸­ã«å•é¡Œ\n" ++ ++#: ../netstat.c:1379 ++#, c-format ++msgid "" ++"Active IPX sockets\n" ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State" ++msgstr "" ++"稼åƒä¸­ã®IPXソケット\n" ++"Proto å—ä¿¡-Q é€ä¿¡-Q 内部アドレス 外部アドレス 状" ++"æ…‹" ++ ++#: ../netstat.c:1381 ++#, c-format ++msgid " User" ++msgstr " ユーザ" ++ ++# translatable? ++#: ../netstat.c:1415 ++msgid "ESTAB" ++msgstr "ESTAB" ++ ++# translatable? ++#: ../netstat.c:1423 ++msgid "UNK." ++msgstr "UNK." ++ ++#: ../netstat.c:1461 ++#, c-format ++msgid "Kernel Interface table\n" ++msgstr "カーãƒãƒ«ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ãƒ†ãƒ¼ãƒ–ル\n" ++ ++#: ../netstat.c:1465 ++#, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR フラグ\n" ++ ++#: ../netstat.c:1469 ++msgid "missing interface information" ++msgstr "インタフェース情報ãŒè¶³ã‚Šã¾ã›ã‚“" ++ ++#: ../netstat.c:1492 ++#, c-format ++msgid "" ++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--" ++"help}\n" ++msgstr "" ++"使用法: netstat [-veenNcCF] [<アドレスファミリ>] -r\n" ++" netstat {-V|--version|-h|--help}\n" ++ ++#: ../netstat.c:1493 ++#, c-format ++msgid " netstat [-vnNcaeol] [<Socket> ...]\n" ++msgstr " netstat [-vnNcaeol] [<ソケット> ...]\n" ++ ++#: ../netstat.c:1494 ++#, c-format ++msgid "" ++" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" ++"\n" ++msgstr " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n\n" ++ ++#: ../netstat.c:1496 ++#, c-format ++msgid " -r, --route display routing table\n" ++msgstr " -r, --routing 経路テーブルã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1497 ++#, c-format ++msgid " -i, --interfaces display interface table\n" ++msgstr " -i, --interfaces インタフェーステーブルã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1498 ++#, c-format ++msgid " -g, --groups display multicast group memberships\n" ++msgstr " -g, --groups マルãƒã‚­ãƒ£ã‚¹ãƒˆãƒ»ã‚°ãƒ«ãƒ¼ãƒ—メンãƒã‚·ãƒƒãƒ—ã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1499 ++#, c-format ++msgid "" ++" -s, --statistics display networking statistics (like SNMP)\n" ++msgstr "" ++" -s, --statistics (SNMPã®ã‚ˆã†ã«)ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯çµ±è¨ˆã‚’表示\n" ++ ++#: ../netstat.c:1501 ++#, c-format ++msgid "" ++" -M, --masquerade display masqueraded connections\n" ++"\n" ++msgstr "" ++" -M, --masquerade マスカレード接続ã®è¡¨ç¤º\n" ++"\n" ++ ++#: ../netstat.c:1505 ++#, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " --numeric-hosts ホストåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1506 ++#, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " --numeric-ports ãƒãƒ¼ãƒˆåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1507 ++#, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " --numeric-users ユーザåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1508 ++#, c-format ++msgid " -N, --symbolic resolve hardware names\n" ++msgstr " -N, --symbolic ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢åをレゾルブã™ã‚‹\n" ++ ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format ++msgid " -e, --extend display other/more information\n" ++msgstr " -e, --extend ä»–ã®æƒ…報や多ãã®æƒ…報を表示ã™ã‚‹\n" ++ ++#: ../netstat.c:1510 ++#, c-format ++msgid " -p, --programs display PID/Program name for sockets\n" ++msgstr " -p, --programs ソケットã®PID/プログラムåを表示ã™ã‚‹\n" ++ ++#: ../netstat.c:1511 ++#, c-format ++msgid "" ++" -c, --continuous continuous listing\n" ++"\n" ++msgstr "" ++" -c, --continous 継続的ãªè¡¨ç¤º\n" ++"\n" ++ ++#: ../netstat.c:1512 ++#, c-format ++msgid " -l, --listening display listening server sockets\n" ++msgstr " -l, --listening サーãƒã®listenソケットã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1513 ++#, c-format ++msgid "" ++" -a, --all, --listening display all sockets (default: connected)\n" ++msgstr " -a, --all, --listening å…¨ã¦ã®æƒ…報を表示 (標準: connected)\n" ++ ++#: ../netstat.c:1514 ++#, c-format ++msgid " -o, --timers display timers\n" ++msgstr " -o, --timers タイマã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format ++msgid "" ++" -F, --fib display Forwarding Information Base " ++"(default)\n" ++msgstr " -F, --fib フォワード情報ベースを表示ã™ã‚‹(標準)\n" ++ ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format ++msgid "" ++" -C, --cache display routing cache instead of FIB\n" ++"\n" ++msgstr " -C, --cache FIBã®ã‹ã‚ã‚Šã«çµŒè·¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’表示ã™ã‚‹\n\n" ++ ++#: ../netstat.c:1518 ++#, c-format ++msgid "" ++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" ++msgstr "" ++" <ソケット>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" ++ ++#: ../netstat.c:1519 ++#, c-format ++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>='-6|-4'ã¾ãŸã¯'-A <af>'ã¾ãŸã¯'--<af>'を利用; 標準: %s\n" ++ ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format ++msgid " List of possible address families (which support routing):\n" ++msgstr " (ルーティングをサãƒãƒ¼ãƒˆã—ãŸ)利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../netstat.c:1753 ++#, c-format ++msgid "Active Internet connections " ++msgstr "稼åƒä¸­ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶š " ++ ++#: ../netstat.c:1763 ++#, c-format ++msgid "" ++"\n" ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " ++msgstr "" ++"\n" ++"Proto å—ä¿¡-Q é€ä¿¡-Q 内部アドレス 外部アドレス 状" ++"æ…‹ " ++ ++#: ../netstat.c:1765 ++#, c-format ++msgid " User Inode " ++msgstr " ユーザ Iノード " ++ ++#: ../netstat.c:1768 ++#, c-format ++msgid " Timer" ++msgstr "タイマ" ++ ++#: ../netstat.c:1798 ++#, c-format ++msgid "IPv4 Group Memberships\n" ++msgstr "IPv4グループメンãƒã‚·ãƒƒãƒ—\n" ++ ++#: ../netstat.c:1799 ++#, c-format ++msgid "Interface RefCnt Group\n" ++msgstr "インタフェース å‚ç…§Cnt グループ\n" ++ ++#: ../rarp.c:44 ++msgid "This kernel does not support RARP.\n" ++msgstr "ã“ã®ã‚«ãƒ¼ãƒãƒ«ã¯RARPをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../rarp.c:83 ++#, c-format ++msgid "no RARP entry for %s.\n" ++msgstr "%sã®RARPエントリãŒã‚ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../rarp.c:96 ++#, c-format ++msgid "%s: bad hardware address\n" ++msgstr "%s: ä¸æ­£ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™\n" ++ ++#: ../rarp.c:128 ++#, c-format ++msgid "rarp: cannot open file %s:%s.\n" ++msgstr "rarp: ファイル%sã‚’é–‹ã‘ã¾ã›ã‚“:%s.\n" ++ ++#: ../rarp.c:140 ++#, c-format ++msgid "rarp: format error at %s:%u\n" ++msgstr "rarp: %s:%uè¡Œã«ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™\n" ++ ++#: ../rarp.c:144 ../rarp.c:289 ++#, c-format ++msgid "rarp: %s: unknown host\n" ++msgstr "rarp: %s: ä¸æ˜Žãªãƒ›ã‚¹ãƒˆã§ã™\n" ++ ++#: ../rarp.c:147 ++#, c-format ++msgid "rarp: cannot set entry from %s:%u\n" ++msgstr "rarp: %s:%uè¡Œã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’設定ã§ãã¾ã›ã‚“\n" ++ ++#: ../rarp.c:176 ++#, c-format ++msgid "Usage: rarp -a list entries in cache.\n" ++msgstr "" ++"使用法: rarp -a キャッシュエントリã®è¡¨ç¤º.\n" ++ ++#: ../rarp.c:177 ++#, c-format ++msgid " rarp -d <hostname> delete entry from cache.\n" ++msgstr "" ++" rarp -d <ホストå> キャッシュã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’削除ã™" ++"ã‚‹.\n" ++ ++#: ../rarp.c:178 ++#, c-format ++msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n" ++msgstr "" ++" rarp [<HW>] -s <ホストå> <ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹>\n" ++" キャッシュã¸ã‚¨ãƒ³ãƒˆãƒªã‚’追加.\n" ++ ++#: ../rarp.c:179 ++#, c-format ++msgid "" ++" rarp -f add entries from /etc/ethers.\n" ++msgstr "" ++" rarp -f /etc/ethersã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªè¿½åŠ .\n" ++ ++#: ../rarp.c:180 ++#, c-format ++msgid "" ++" rarp -V display program version.\n" ++"\n" ++msgstr " rarp -V ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã®å‡ºåŠ›.\n" ++ ++#: ../rarp.c:238 ++#, c-format ++msgid "%s: illegal option mix.\n" ++msgstr "%s: オプションã®çµ„åˆã›ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" ++ ++#: ../rarp.c:269 ++#, c-format ++msgid "rarp: %s: unknown hardware type.\n" ++msgstr "rarp: %s: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ãŒä¸æ˜Žã§ã™.\n" ++ ++#: ../route.c:80 ++#, c-format ++msgid "" ++"Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n" ++msgstr "使用法:route [-nNvee] [-FC] [アドレスファミリ] カーãƒãƒ«çµŒè·¯ãƒ†ãƒ¼ãƒ–ルã®è¡¨ç¤º.\n" ++ ++#: ../route.c:81 ++#, c-format ++msgid "" ++" route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" ++"\n" ++msgstr "" ++" route [-v] [-FC] {add|del|flush}‥‥\n" ++"\t\t\t\t アドレスファミリã®çµŒè·¯ãƒ†ãƒ¼ãƒ–ルã®è¨­å®š.\n" ++"\n" ++ ++#: ../route.c:83 ++#, c-format ++msgid "" ++" route {-h|--help} [<AF>] Detailed usage syntax for " ++"specified AF.\n" ++msgstr "" ++" route {-h|--help} [アドレスファミリ]\n" ++" アドレスファミリ特定ã®æ–‡æ³•ã®èª¬æ˜Ž.\n" ++ ++#: ../route.c:84 ++#, c-format ++msgid "" ++" route {-V|--version} Display version/author and " ++"exit.\n" ++"\n" ++msgstr " route {-V|--version} ãƒãƒ¼ã‚¸ãƒ§ãƒ³/作者情報ã®å‡ºåŠ›ã¨çµ‚了.\n\n" ++ ++#: ../route.c:92 ++#, c-format ++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n" ++msgstr " <AF>='-A <af>'ã¾ãŸã¯'--<af>'を利用; 標準: %s\n" ++ ++#: ../plipconfig.c:66 ++#, c-format ++msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" ++msgstr "使用法: plipconfig [-a] [-i] [-v] インタフェース\n" ++ ++#: ../plipconfig.c:67 ++#, c-format ++msgid " [nibble NN] [trigger NN]\n" ++msgstr " [nibble 数値] [trigger 数値]\n" ++ ++#: ../plipconfig.c:68 ++#, c-format ++msgid " plipconfig -V | --version\n" ++msgstr " plipconfig -V | --version\n" ++ ++# translatable? ++#: ../plipconfig.c:74 ++#, c-format ++msgid "%s\tnibble %lu trigger %lu\n" ++msgstr "%s\tnibble %lu trigger %lu\n" ++ ++#: ../iptunnel.c:85 ++#, c-format ++msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" ++msgstr "Usage: iptunnel { add | change | del | show } [ NAME ]\n" ++ ++#: ../iptunnel.c:86 ++#, c-format ++msgid "" ++" [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" ++msgstr " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" ++ ++#: ../iptunnel.c:87 ++#, c-format ++msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" ++msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" ++ ++#: ../iptunnel.c:88 ++#, c-format ++msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" ++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" ++ ++#: ../iptunnel.c:89 ++#, c-format ++msgid "" ++" iptunnel -V | --version\n" ++"\n" ++msgstr " iptunnel -V | --version\n\n" ++ ++#: ../iptunnel.c:90 ++#, c-format ++msgid "Where: NAME := STRING\n" ++msgstr "æ„味: NAME := STRING\n" ++ ++#: ../iptunnel.c:91 ++#, c-format ++msgid " ADDR := { IP_ADDRESS | any }\n" ++msgstr " ADDR := { IP_ADDRESS | any }\n" ++ ++#: ../iptunnel.c:92 ++#, c-format ++msgid " TOS := { NUMBER | inherit }\n" ++msgstr " TOS := { NUMBER | inherit }\n" ++ ++#: ../iptunnel.c:93 ++#, c-format ++msgid " TTL := { 1..255 | inherit }\n" ++msgstr " TTL := { 1..255 | inherit }\n" ++ ++#: ../iptunnel.c:94 ++#, c-format ++msgid " KEY := { DOTTED_QUAD | NUMBER }\n" ++msgstr " KEY := { DOTTED_QUAD | NUMBER }\n" ++ ++#: ../iptunnel.c:332 ++#, c-format ++msgid "Keys are not allowed with ipip and sit.\n" ++msgstr "キーã¯ipipãŠã‚ˆã³sitã§ã¯è¨±å¯ã•ã‚Œã¾ã›ã‚“.\n" ++ ++#: ../iptunnel.c:352 ++#, c-format ++msgid "Broadcast tunnel requires a source address.\n" ++msgstr "ブロードキャストトンãƒãƒ«ã¯ç™ºä¿¡å…ƒã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå¿…è¦ã§ã™.\n" ++ ++#: ../iptunnel.c:367 ++#, c-format ++msgid "ttl != 0 and noptmudisc are incompatible\n" ++msgstr "ttl != 0ãŠã‚ˆã³noptmudiscã¯çŸ›ç›¾ã—ã¾ã™\n" ++ ++#: ../iptunnel.c:379 ++#, c-format ++msgid "cannot determine tunnel mode (ipip, gre or sit)\n" ++msgstr "トンãƒãƒ«ãƒ¢ãƒ¼ãƒ‰ã‚’決定ã§ãã¾ã›ã‚“(ipip, greã¾ãŸã¯sit)\n" ++ ++#: ../iptunnel.c:417 ++#, c-format ++msgid "%s: %s/ip remote %s local %s " ++msgstr "%s: %s/ip リモート%s ローカル%s " ++ ++#: ../iptunnel.c:421 ++msgid "unknown" ++msgstr "ä¸æ˜Ž" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:453 ++#, c-format ++msgid " Drop packets out of sequence.\n" ++msgstr " シーケンスã‹ã‚‰å¤–ã‚ŒãŸãƒ‘ケットをドロップ.\n" ++ ++#: ../iptunnel.c:455 ++#, c-format ++msgid " Checksum in received packet is required.\n" ++msgstr " å—信パケットã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã¯å¿…é ˆã§ã™.\n" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:457 ++#, c-format ++msgid " Sequence packets on output.\n" ++msgstr " é€ä¿¡ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ãƒ‘ケット.\n" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:459 ++#, c-format ++msgid " Checksum output packets.\n" ++msgstr " é€ä¿¡ãƒ‘ケットã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ .\n" ++ ++#: ../iptunnel.c:487 ++#, c-format ++msgid "Wrong format of /proc/net/dev. Sorry.\n" ++msgstr "/proc/net/devãŒä¸æ­£ãªãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§ã™. ã™ã¿ã¾ã›ã‚“.\n" ++ ++#: ../iptunnel.c:500 ++#, c-format ++msgid "Failed to get type of [%s]\n" ++msgstr "[%s]ã®ã‚¿ã‚¤ãƒ—ã®å–å¾—ã«å¤±æ•—\n" ++ ++#: ../iptunnel.c:516 ++#, c-format ++msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" ++msgstr "RX: パケット ãƒã‚¤ãƒˆ エラー CsumErrs outOfSeq マルãƒã‚­ãƒ£ã‚¹ãƒˆ\n" ++ ++#: ../iptunnel.c:519 ++#, c-format ++msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" ++msgstr "TX: パケット ãƒã‚¤ãƒˆ エラー DeadLoop NoRoute ãƒãƒƒãƒ•ã‚¡ãªã—\n" ++ ++#: ../statistics.c:47 ++msgid "ICMP input histogram:" ++msgstr "ICMP入力ヒストグラム:" ++ ++#: ../statistics.c:48 ++msgid "ICMP output histogram:" ++msgstr "ICMP出力ヒストグラム:" ++ ++#: ../statistics.c:65 ++#, c-format ++msgid "Forwarding is %s" ++msgstr "フォワードã¯%sã§ã™" ++ ++#: ../statistics.c:66 ++#, c-format ++msgid "Default TTL is %u" ++msgstr "標準TTLã¯%uã§ã™" ++ ++#: ../statistics.c:67 ++#, c-format ++msgid "%u total packets received" ++msgstr "åˆè¨ˆ%uパケットをå—ä¿¡" ++ ++#: ../statistics.c:68 ++#, c-format ++msgid "%u with invalid headers" ++msgstr "ä¸é©å½“ãªãƒ˜ãƒƒãƒ€ãŒ%u" ++ ++#: ../statistics.c:69 ++#, c-format ++msgid "%u with invalid addresses" ++msgstr "ä¸é©å½“ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãŒ%u" ++ ++#: ../statistics.c:70 ++#, c-format ++msgid "%u forwarded" ++msgstr "%uã®è»¢é€" ++ ++#: ../statistics.c:71 ++#, c-format ++msgid "%u with unknown protocol" ++msgstr "%uã®ä¸æ˜Žãªãƒ—ロトコル" ++ ++#: ../statistics.c:72 ++#, c-format ++msgid "%u incoming packets discarded" ++msgstr "%uã®å—信パケットを破棄" ++ ++#: ../statistics.c:73 ++#, c-format ++msgid "%u incoming packets delivered" ++msgstr "%uã®å—信パケットをé…é€" ++ ++#: ../statistics.c:74 ++#, c-format ++msgid "%u requests sent out" ++msgstr "%uã®è¦æ±‚ã‚’é€ä¿¡" ++ ++#. ? ++#: ../statistics.c:75 ++#, c-format ++msgid "%u outgoing packets dropped" ++msgstr "%uã®é€ä¿¡ãƒ‘ケットをドロップ" ++ ++#: ../statistics.c:76 ++#, c-format ++msgid "%u dropped because of missing route" ++msgstr "ä¸æ˜ŽãªçµŒè·¯ã§%uをドロップ" ++ ++#: ../statistics.c:77 ++#, c-format ++msgid "%u fragments dropped after timeout" ++msgstr "タイムアウト後ã«%uã®ãƒ•ãƒ©ã‚°ãƒ¡ãƒ³ãƒˆã‚’ドロップ" ++ ++#: ../statistics.c:78 ++#, c-format ++msgid "%u reassemblies required" ++msgstr "%uã®å†æ§‹ç¯‰ãŒå¿…è¦" ++ ++#. ? ++#: ../statistics.c:79 ++#, c-format ++msgid "%u packets reassembled ok" ++msgstr "%uパケットã®å†æ§‹ç¯‰ã«æˆåŠŸ" ++ ++#: ../statistics.c:80 ++#, c-format ++msgid "%u packet reassembles failed" ++msgstr "%uパケットã®å†æ§‹ç¯‰ã«å¤±æ•—" ++ ++#: ../statistics.c:81 ++#, c-format ++msgid "%u fragments received ok" ++msgstr "%uフラグメントã®å—ä¿¡ã«æˆåŠŸ" ++ ++#: ../statistics.c:82 ++#, c-format ++msgid "%u fragments failed" ++msgstr "%uフラグメントã§å¤±æ•—" ++ ++#: ../statistics.c:83 ++#, c-format ++msgid "%u fragments created" ++msgstr "%uフラグメントを生æˆ" ++ ++#: ../statistics.c:88 ++#, c-format ++msgid "%u ICMP messages received" ++msgstr "%uã®ICMPメッセージå—ä¿¡" ++ ++#: ../statistics.c:89 ++#, c-format ++msgid "%u input ICMP message failed." ++msgstr "%uã®ICMPメッセージ入力失敗." ++ ++#: ../statistics.c:90 ../statistics.c:103 ++#, c-format ++msgid "destination unreachable: %u" ++msgstr "é€ä¿¡å…ˆåˆ°é”ä¸å¯: %u" ++ ++#: ../statistics.c:91 ++#, c-format ++msgid "timeout in transit: %u" ++msgstr "é€ä¿¡æ™‚間オーãƒ: %u" ++ ++#: ../statistics.c:92 ../statistics.c:105 ++#, c-format ++msgid "wrong parameters: %u" ++msgstr "è¬ã£ãŸãƒ‘ラメータ: %u" ++ ++#. ? ++#: ../statistics.c:93 ++#, c-format ++msgid "source quenches: %u" ++msgstr "発信元消滅: %u" ++ ++#: ../statistics.c:94 ++#, c-format ++msgid "redirects: %u" ++msgstr "リダイレクト: %u" ++ ++#: ../statistics.c:95 ++#, c-format ++msgid "echo requests: %u" ++msgstr "エコーè¦æ±‚: %u" ++ ++#: ../statistics.c:96 ../statistics.c:109 ++#, c-format ++msgid "echo replies: %u" ++msgstr "エコー応答: %u" ++ ++#: ../statistics.c:97 ++#, c-format ++msgid "timestamp request: %u" ++msgstr "タイムスタンプè¦æ±‚: %u" ++ ++#: ../statistics.c:98 ++#, c-format ++msgid "timestamp reply: %u" ++msgstr "タイムスタンプ応答: %u" ++ ++#: ../statistics.c:99 ++#, c-format ++msgid "address mask request: %u" ++msgstr "アドレスマスクè¦æ±‚: %u" ++ ++#. ? ++#: ../statistics.c:100 ../statistics.c:113 ++#, c-format ++msgid "address mask replies: %u" ++msgstr "アドレスマスク応答: %u" ++ ++#. ? ++#: ../statistics.c:101 ++#, c-format ++msgid "%u ICMP messages sent" ++msgstr "%uã®ICMPメッセージé€ä¿¡" ++ ++#: ../statistics.c:102 ++#, c-format ++msgid "%u ICMP messages failed" ++msgstr "%uã®ICMPメッセージ失敗" ++ ++#: ../statistics.c:104 ++#, c-format ++msgid "time exceeded: %u" ++msgstr "時間切れ: %u" ++ ++#. ? ++#: ../statistics.c:106 ++#, c-format ++msgid "source quench: %u" ++msgstr "発信元消滅: %u" ++ ++#: ../statistics.c:107 ++#, c-format ++msgid "redirect: %u" ++msgstr "リダイレクト: %u" ++ ++#: ../statistics.c:108 ++#, c-format ++msgid "echo request: %u" ++msgstr "エコーè¦æ±‚: %u" ++ ++#: ../statistics.c:110 ++#, c-format ++msgid "timestamp requests: %u" ++msgstr "タイムスタンプè¦æ±‚: %u" ++ ++#: ../statistics.c:111 ++#, c-format ++msgid "timestamp replies: %u" ++msgstr "タイムスタンプ応答: %u" ++ ++#: ../statistics.c:112 ++#, c-format ++msgid "address mask requests: %u" ++msgstr "アドレスマスクè¦æ±‚: %u" ++ ++#: ../statistics.c:118 ++#, c-format ++msgid "RTO algorithm is %s" ++msgstr "RTOアルゴリズムã¯%sã§ã™" ++ ++#: ../statistics.c:122 ++#, c-format ++msgid "%u active connections openings" ++msgstr "%uã®èƒ½å‹•æŽ¥ç¶šé–‹å§‹" ++ ++#: ../statistics.c:123 ++#, c-format ++msgid "%u passive connection openings" ++msgstr "%uã®å—動接続開始" ++ ++#: ../statistics.c:124 ++#, c-format ++msgid "%u failed connection attempts" ++msgstr "%uã®æŽ¥ç¶šè©¦è¡Œå¤±æ•—" ++ ++#: ../statistics.c:125 ++#, c-format ++msgid "%u connection resets received" ++msgstr "%uã®æŽ¥ç¶šãƒªã‚»ãƒƒãƒˆå—ä¿¡" ++ ++#: ../statistics.c:126 ++#, c-format ++msgid "%u connections established" ++msgstr "%uã®æŽ¥ç¶šç¢ºç«‹" ++ ++#: ../statistics.c:127 ++#, c-format ++msgid "%u segments received" ++msgstr "%uセグメントã®å—ä¿¡" ++ ++#: ../statistics.c:128 ++#, c-format ++msgid "%u segments send out" ++msgstr "%uセグメントã®é€ä¿¡" ++ ++#: ../statistics.c:129 ++#, c-format ++msgid "%u segments retransmited" ++msgstr "%uセグメントã®å†è»¢é€" ++ ++#: ../statistics.c:130 ++#, c-format ++msgid "%u bad segments received." ++msgstr "%uã®ä¸æ­£ã‚»ã‚°ãƒ¡ãƒ³ãƒˆå—ä¿¡." ++ ++#: ../statistics.c:131 ++#, c-format ++msgid "%u resets sent" ++msgstr "%uã®ãƒªã‚»ãƒƒãƒˆé€ä¿¡" ++ ++#: ../statistics.c:136 ++#, c-format ++msgid "%u packets received" ++msgstr "%uパケットå—ä¿¡" ++ ++#: ../statistics.c:137 ++#, c-format ++msgid "%u packets to unknown port received." ++msgstr "ä¸æ˜Žãªãƒãƒ¼ãƒˆã‹ã‚‰ã®%uパケットã®å—ä¿¡." ++ ++#: ../statistics.c:138 ++#, c-format ++msgid "%u packet receive errors" ++msgstr "%uã®ãƒ‘ケットå—信エラー" ++ ++#: ../statistics.c:139 ++#, c-format ++msgid "%u packets sent" ++msgstr "%uã®ãƒ‘ケットをé€ä¿¡" ++ ++#: ../statistics.c:144 ++#, c-format ++msgid "%u SYN cookies sent" ++msgstr "%uã®SYNクッキーをé€ä¿¡" ++ ++#: ../statistics.c:145 ++#, c-format ++msgid "%u SYN cookies received" ++msgstr "%uã®SYNクッキーをå—ä¿¡" ++ ++#: ../statistics.c:146 ++#, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%uã®ä¸é©å½“ãªSYNクッキーをå—ä¿¡" ++ ++#: ../statistics.c:148 ++#, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%uã®æœªå®Œæˆã®SYN_RECVソケットã«å¯¾ã™ã‚‹ãƒªã‚»ãƒƒãƒˆã‚’å—ä¿¡" ++ ++#: ../statistics.c:150 ++#, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%uã®ãƒ‘ケットをソケットãƒãƒƒãƒ•ã‚¡ã‚ªãƒ¼ãƒãƒ©ãƒ³ã®ãŸã‚å—信キューã‹ã‚‰é™¤å¤–" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%uã®ãƒ‘ケットをå—信キューã‹ã‚‰é™¤å¤–" ++ ++#: ../statistics.c:154 ++#, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%uã®ãƒ‘ケットãŒã‚½ã‚±ãƒƒãƒˆãƒãƒƒãƒ•ã‚¡ã‚ªãƒ¼ãƒãƒ¼ãƒ©ãƒ³ã®ãŸã‚out-of-orderキューã‹ã‚‰ãƒ‰ãƒ­ãƒƒãƒ—" ++ ++#: ../statistics.c:156 ++#, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%uã®ICMPパケットãŒout-of-windowã®ãŸã‚ドロップ" ++ ++#: ../statistics.c:158 ++#, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%uã®ICMPパケットをソケットã®ãƒ­ãƒƒã‚¯ã«ã‚ˆã£ã¦ãƒ‰ãƒ­ãƒƒãƒ—" ++ ++# FIXME: what does it mean? ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "%uã®TCPソケットãŒãƒ•ã‚¡ãƒ¼ã‚¹ãƒˆã‚¿ã‚¤ãƒžã§ã®æ™‚é–“å¾…ã¡ã‚’完了" ++ ++# FIXME ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "%uã®æ™‚é–“å¾…ã¡ã‚½ã‚±ãƒƒãƒˆãŒã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã§å†åˆ©ç”¨" ++ ++# FIXME ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "%uã®TCPソケットãŒã‚¹ãƒ­ãƒ¼ã‚¿ã‚¤ãƒžã§ã®æ™‚é–“å¾…ã¡ã‚’完了" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "%uã®å—動的接続ãŒã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã®ãŸã‚ã«æ‹’å¦" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "%uã®èƒ½å‹•çš„接続ãŒã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã®ãŸã‚ã«æ‹’å¦" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "%uã®ãƒ‘ケットãŒã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã®ãŸã‚ã«æŽ¥ç¶šç¢ºç«‹ã‚’æ‹’å¦" ++ ++#: ../statistics.c:169 ++#, c-format ++msgid "%u delayed acks sent" ++msgstr "%uã®é…延ackã‚’é€ä¿¡" ++ ++# FIXME ++#: ../statistics.c:170 ++#, c-format ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "%uã®é…延ackãŒãƒ­ãƒƒã‚¯ã•ã‚ŒãŸã‚½ã‚±ãƒƒãƒˆã®ãŸã‚ã«ã•ã‚‰ã«é…延" ++ ++#: ../statistics.c:172 ++#, c-format ++msgid "Quick ack mode was activated %u times" ++msgstr "クイックackモードãŒ%u回稼åƒ" ++ ++# FIXME ++#: ../statistics.c:173 ++#, c-format ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "ソケットã®ãƒªã‚¹ãƒ³ã‚­ãƒ¥ãƒ¼ãŒ%u回オーãƒãƒ•ãƒ­ãƒ¼" ++ ++# FIXME ++#: ../statistics.c:175 ++#, c-format ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "%uã®ã‚½ã‚±ãƒƒãƒˆãƒªã‚¹ãƒ³SYNãŒç„¡è¦–" ++ ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "%uパケットをrecvmsgプレキューã«ç›´æŽ¥ã‚­ãƒ¥ãƒ¼." ++ ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "%uãƒã‚¤ãƒˆã‚’ãƒãƒƒã‚¯ãƒ­ã‚°ã‹ã‚‰ç›´æŽ¥å—ä¿¡" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "%uãƒã‚¤ãƒˆã‚’プレキューã‹ã‚‰ç›´æŽ¥å—ä¿¡" ++ ++#: ../statistics.c:182 ++#, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "%uã®ãƒ‘ケットをプレキューã‹ã‚‰ãƒ‰ãƒ­ãƒƒãƒ—" ++ ++#: ../statistics.c:183 ++#, c-format ++msgid "%u packet headers predicted" ++msgstr "%uã®ãƒ‘ケットヘッダを予測" ++ ++#: ../statistics.c:184 ++#, c-format ++msgid "%u packets header predicted and directly queued to user" ++msgstr "%uã®ãƒ‘ケットヘッダを予測ã—ã¦ãƒ¦ãƒ¼ã‚¶ã«ç›´æŽ¥ã‚­ãƒ¥ãƒ¼" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "%u回ã®ãƒ‘ケットé€ä¿¡ä¸­ã®ã‚·ã‚¹ãƒ†ãƒ ãƒ¡ãƒ¢ãƒªã‚ãµã‚Œ" ++ ++#: ../statistics.c:188 ++#, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "データをå«ã¾ãªã„%uã®æ‰¿èªã®å—ä¿¡" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "%uã®äºˆæ¸¬æ‰¿èª" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "高速ãªå†é€ã«ã‚ˆã‚‹ãƒ‘ケットロスã®%u回ã®å›žå¾©" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "SACKデータã«ã‚ˆã‚‹ãƒ‘ケットロスã®%u回ã®å›žå¾©" ++ ++#: ../statistics.c:192 ++#, c-format ++msgid "%u bad SACKs received" ++msgstr "%uã®ä¸æ­£ãªSACKã‚’å—ä¿¡" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "FACKを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "SACKを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "タイムスタンプを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++# FIXME:what does it mean? ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "高速å†é€ã‚’使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’完全ã«å›žå¾©" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "Hoeヒューリスティックを使ã£ã¦%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’部分的ã«å›žå¾©" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "DSACKを使ã£ã¦%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’回復" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "部分ack後ã«%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’回復" ++ ++#: ../statistics.c:201 ++#, c-format ++msgid "%u retransmits lost" ++msgstr "%uã®å†é€ãƒ­ã‚¹ãƒˆ" ++ ++# FIXME ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "高速å†é€å¾Œã®%uã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "SACK復元後ã®%uã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "状態ロスã§ã®%uã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ" ++ ++#: ../statistics.c:205 ++#, c-format ++msgid "%u fast retransmits" ++msgstr "%uã®é«˜é€Ÿå†é€" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "%uã®è»¢é€å†é€" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "スロースタートã§ã®%uã®å†é€" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "%uã®ãã®ä»–ã®TCPタイムアウト" ++ ++# FIXME ++#: ../statistics.c:209 ++#, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%dã®é«˜é€Ÿå†é€å¤±æ•—" ++ ++#: ../statistics.c:210 ++#, c-format ++msgid "%u sack retransmits failed" ++msgstr "%uã®sackå†é€å¤±æ•—" ++ ++# FIXME ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "直接処ç†ã«ã¯é…ã™ãŽã‚‹ã¨ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã•ã‚ŒãŸ%u回ã®ãƒ¬ã‚·ãƒ¼ãƒ" ++ ++# FIXME ++#: ../statistics.c:212 ++#, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%uã®ãƒ‘ケットを低ソケットãƒãƒƒãƒ•ã‚¡ã®ãŸã‚ã«å—信キューã‹ã‚‰é™¤å¤–" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "%uã®DSACKã‚’å¤ã„パケットã¨ã—ã¦é€ä¿¡" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "%uã®DSACKã‚’é †åºå¤–パケットã¨ã—ã¦é€ä¿¡" ++ ++#: ../statistics.c:215 ++#, c-format ++msgid "%u DSACKs received" ++msgstr "%uã®DSACKã‚’å—ä¿¡" ++ ++#: ../statistics.c:216 ++#, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%uã®DSACKã‚’é †åºå¤–パケットã¨ã—ã¦å—ä¿¡" ++ ++#: ../statistics.c:217 ++#, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "予期ã›ã¬SYNã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:218 ++#, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "予期ã›ã¬ãƒ‡ãƒ¼ã‚¿ã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:219 ++#, c-format ++msgid "%u connections reset due to early user close" ++msgstr "早期ã®ãƒ¦ãƒ¼ã‚¶ã®ã‚¯ãƒ­ãƒ¼ã‚ºã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "メモリã®åˆ¶ç´„ã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’中止" ++ ++#: ../statistics.c:221 ++#, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "タイムアウトã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’中止" ++ ++# FIXME ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "ユーザã®é•·æœŸã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã§ã®ã‚¯ãƒ­ãƒ¼ã‚ºå¾Œã«%uã®æŽ¥ç¶šãŒä¸­æ­¢" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "メモリä¸è¶³ã®ãŸã‚ã«RSTã®é€ä¿¡ãŒ%u回ä¸èƒ½" ++ ++# FIXME ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "TCPãŒå°‘ãªã„メモリã§%u回実行" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "%uã®TCPデータãŒã‚¤ãƒ™ãƒ³ãƒˆã‚’ロス" ++ ++#: ../statistics.c:292 ++msgid "enabled" ++msgstr "有効" ++ ++#: ../statistics.c:292 ++msgid "disabled" ++msgstr "無効" ++ ++#: ../statistics.c:375 ++msgid "error parsing /proc/net/snmp" ++msgstr "/proc/net/snmpã®å‡¦ç†ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" ++ ++#: ../statistics.c:388 ++msgid "cannot open /proc/net/snmp" ++msgstr "/proc/net/snmpã‚’é–‹ã‘ã¾ã›ã‚“" ++ ++#: ../lib/activate.c:69 ++#, c-format ++msgid "Hardware type `%s' not supported.\n" ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—`%s'ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/activate.c:73 ++#, c-format ++msgid "Cannot change line discipline to `%s'.\n" ++msgstr "`%s'ã®line disciplineを変更ã§ãã¾ã›ã‚“.\n" ++ ++#: ../lib/af.c:153 ../lib/hw.c:161 ++msgid "UNSPEC" ++msgstr "ä¸æ˜Žãªãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:155 ++msgid "UNIX Domain" ++msgstr "UNIXドメイン" ++ ++#: ../lib/af.c:158 ++msgid "DARPA Internet" ++msgstr "DARPAインターãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:161 ++msgid "IPv6" ++msgstr "IPv6" ++ ++#: ../lib/af.c:164 ../lib/hw.c:182 ++msgid "AMPR AX.25" ++msgstr "AMPR AX.25" ++ ++#: ../lib/af.c:167 ../lib/hw.c:188 ++msgid "AMPR NET/ROM" ++msgstr "AMPR NET/ROM" ++ ++#: ../lib/af.c:170 ++msgid "Novell IPX" ++msgstr "Novell IPX" ++ ++#: ../lib/af.c:173 ++msgid "Appletalk DDP" ++msgstr "アップルトークDDP" ++ ++#: ../lib/af.c:176 ../lib/hw.c:223 ++msgid "Econet" ++msgstr "エコãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "CCITT X.25" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 ++msgid "AMPR ROSE" ++msgstr "AMPR ROSE" ++ ++#: ../lib/af.c:185 ../lib/hw.c:173 ++msgid "Ash" ++msgstr "Ash" ++ ++#: ../lib/af.c:243 ++#, c-format ++msgid "Please don't supply more than one address family.\n" ++msgstr "複数ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã‚’ã—ãªã„ã§ä¸‹ã•ã„.\n" ++ ++#: ../lib/af.c:304 ++#, c-format ++msgid "Too much address family arguments.\n" ++msgstr "アドレスファミリã®å¼•æ•°ãŒå¤šã™ãŽã¾ã™.\n" ++ ++#: ../lib/af.c:315 ++#, c-format ++msgid "Unknown address family `%s'.\n" ++msgstr "ä¸æ˜Žãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã§ã™ `%s'.\n" ++ ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 ++#, c-format ++msgid "in_arcnet(%s): invalid arcnet address!\n" ++msgstr "in_arcnet(%s): ä¸é©å½“ãªARCNETアドレスã§ã™!\n" ++ ++#: ../lib/arcnet.c:97 ++#, c-format ++msgid "in_arcnet(%s): trailing : ignored!\n" ++msgstr "in_arcnet(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/arcnet.c:109 ++#, c-format ++msgid "in_arcnet(%s): trailing junk!\n" ++msgstr "in_arcnet(%s): trailing junk!\n" ++ ++#: ../lib/ash.c:81 ++#, c-format ++msgid "Malformed Ash address" ++msgstr "異常ãªAshアドレスã§ã™" ++ ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[設定ãªã—]" ++ ++#: ../lib/ax25.c:97 ../lib/netrom.c:100 ++msgid "Invalid callsign" ++msgstr "ä¸é©å½“ãªã‚³ãƒ¼ãƒ«ã‚µã‚¤ãƒ³ã§ã™" ++ ++#: ../lib/ax25.c:110 ../lib/netrom.c:113 ++msgid "Callsign too long" ++msgstr "コールサインãŒé•·ã™ãŽã¾ã™" ++ ++#: ../lib/ax25_gr.c:47 ++#, c-format ++msgid "AX.25 not configured in this system.\n" ++msgstr "AX.25ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/ax25_gr.c:50 ++#, c-format ++msgid "Kernel AX.25 routing table\n" ++msgstr "カーãƒãƒ« AX.25経路テーブル\n" ++ ++#. xxx ++#: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format ++msgid "Destination Iface Use\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ Iface 使用数\n" ++ ++#: ../lib/ether.c:74 ../lib/ether.c:91 ++#, c-format ++msgid "in_ether(%s): invalid ether address!\n" ++msgstr "in_ether(%s): ä¸é©å½“ãªã‚¤ãƒ¼ã‚µã‚¢ãƒ‰ãƒ¬ã‚¹!\n" ++ ++#: ../lib/ether.c:105 ++#, c-format ++msgid "in_ether(%s): trailing : ignored!\n" ++msgstr "in_ether(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/ether.c:117 ++#, c-format ++msgid "in_ether(%s): trailing junk!\n" ++msgstr "in_ether(%s): trailing junk!\n" ++ ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 ++#, c-format ++msgid "in_fddi(%s): invalid fddi address!\n" ++msgstr "in_fddi(%s): ä¸é©å½“ãªfddiアドレス!\n" ++ ++#: ../lib/fddi.c:111 ++#, c-format ++msgid "in_fddi(%s): trailing : ignored!\n" ++msgstr "in_fddi(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/fddi.c:123 ++#, c-format ++msgid "in_fddi(%s): trailing junk!\n" ++msgstr "in_fddi(%s): trailing junk!\n" ++ ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 ++#, c-format ++msgid "Address family `%s' not supported.\n" ++msgstr "アドレスファミリ`%s'ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 ++#, c-format ++msgid "No routing for address family `%s'.\n" ++msgstr "アドレスファミリ`%s'ã¸ã®çµŒè·¯ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 ++#, c-format ++msgid "in_hippi(%s): invalid hippi address!\n" ++msgstr "in_hippi(%s): ä¸é©å½“ãªhippiアドレスã§ã™!\n" ++ ++#: ../lib/hippi.c:111 ++#, c-format ++msgid "in_hippi(%s): trailing : ignored!\n" ++msgstr "in_hippi(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/hippi.c:122 ++#, c-format ++msgid "in_hippi(%s): trailing junk!\n" ++msgstr "in_hippi(%s): trailing junk!\n" ++ ++#: ../lib/hw.c:160 ++msgid "Local Loopback" ++msgstr "ローカルループãƒãƒƒã‚¯" ++ ++#: ../lib/hw.c:163 ++msgid "Serial Line IP" ++msgstr "シリアルラインIP" ++ ++#: ../lib/hw.c:164 ++msgid "VJ Serial Line IP" ++msgstr "VJシリアルラインIP" ++ ++#: ../lib/hw.c:165 ++msgid "6-bit Serial Line IP" ++msgstr "6ビットシリアルラインIP" ++ ++#: ../lib/hw.c:166 ++msgid "VJ 6-bit Serial Line IP" ++msgstr "VJ 6ビットシリアルラインIP" ++ ++#: ../lib/hw.c:167 ++msgid "Adaptive Serial Line IP" ++msgstr "AdaptiveシリアルラインIP" ++ ++#: ../lib/hw.c:170 ++msgid "Ethernet" ++msgstr "イーサãƒãƒƒãƒˆ" ++ ++# translatable? ++#: ../lib/hw.c:176 ++msgid "Fiber Distributed Data Interface" ++msgstr "Fiber Distributed Data Interface" ++ ++#: ../lib/hw.c:179 ++msgid "HIPPI" ++msgstr "HIPPI" ++ ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "ジェãƒãƒªãƒƒã‚¯X.25" ++ ++#: ../lib/hw.c:194 ++msgid "IPIP Tunnel" ++msgstr "IPIPトンãƒãƒ«" ++ ++#: ../lib/hw.c:197 ++msgid "Point-to-Point Protocol" ++msgstr "Point-to-Pointプロトコル" ++ ++#: ../lib/hw.c:200 ++msgid "(Cisco)-HDLC" ++msgstr "(Cisco)-HDLC" ++ ++#: ../lib/hw.c:201 ++msgid "LAPB" ++msgstr "LAPB" ++ ++#: ../lib/hw.c:204 ++msgid "ARCnet" ++msgstr "ARCãƒãƒƒãƒˆ" ++ ++#: ../lib/hw.c:207 ++msgid "Frame Relay DLCI" ++msgstr "フレームリレーDLCI" ++ ++#: ../lib/hw.c:208 ++msgid "Frame Relay Access Device" ++msgstr "フレームリレーアクセスデãƒã‚¤ã‚¹" ++ ++#: ../lib/hw.c:211 ++msgid "IPv6-in-IPv4" ++msgstr "IPv6-in-IPv4" ++ ++#: ../lib/hw.c:214 ++msgid "IrLAP" ++msgstr "IrLAP" ++ ++#: ../lib/hw.c:217 ++msgid "16/4 Mbps Token Ring" ++msgstr "16/4 Mbpsトークンリング" ++ ++#: ../lib/hw.c:219 ++msgid "16/4 Mbps Token Ring (New)" ++msgstr "16/4 Mbpsトークンリング(æ–°)" ++ ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "ジェãƒãƒªãƒƒã‚¯EUI-64" ++ ++#: ../lib/inet.c:153 ../lib/inet6.c:79 ++#, c-format ++msgid "rresolve: unsupport address family %d !\n" ++msgstr "rresolve: アドレスファミリ%dをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../lib/inet6.c:131 ++msgid "[UNKNOWN]" ++msgstr "[ä¸æ˜Ž]" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format ++msgid "INET6 (IPv6) not configured in this system.\n" ++msgstr "INET6(IPv6)ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨ã§ãるよã†è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/inet6_gr.c:74 ++#, c-format ++msgid "Kernel IPv6 routing table\n" ++msgstr "カーãƒãƒ«IPv6 経路テーブル\n" ++ ++#: ../lib/inet6_gr.c:76 ++#, c-format ++msgid "" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ 次回ホップ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet6_gr.c:150 ++#, c-format ++msgid "Kernel IPv6 Neighbour Cache\n" ++msgstr "カーãƒãƒ«IPv6 近隣ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥\n" ++ ++#: ../lib/inet6_gr.c:153 ++#, c-format ++msgid "" ++"Neighbour HW Address Iface Flags " ++"Ref State\n" ++msgstr "" ++"近隣サイト ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ Iface フラグ " ++"Ref 状態\n" ++ ++#: ../lib/inet6_gr.c:157 ++#, c-format ++msgid "" ++"Neighbour HW Address Iface Flags " ++"Ref State Stale(sec) Delete(sec)\n" ++msgstr "" ++"近隣サイト ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ Iface フラグ " ++"Ref 状態 Stale[秒] Delete[秒]\n" ++ ++#: ../lib/inet6_sr.c:46 ++#, c-format ++msgid "Usage: inet6_route [-vF] del Target\n" ++msgstr "使用法: inet6_route [-vF] del ターゲット\n" ++ ++#: ../lib/inet6_sr.c:47 ++#, c-format ++msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" ++msgstr "" ++" inet6_route [-vF] add ターゲット \n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++" [[dev] インタフェース]\n" ++ ++#: ../lib/inet6_sr.c:48 ++#, c-format ++msgid " inet6_route [-FC] flush NOT supported\n" ++msgstr " inet6_route [-FC] flush サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet6_sr.c:188 ++#, c-format ++msgid "Flushing `inet6' routing table not supported\n" ++msgstr "`inet6'経路テーブルã®ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format ++msgid "INET (IPv4) not configured in this system.\n" ++msgstr "INET(IPv4)ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨ã§ãるよã†ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/inet_gr.c:53 ++#, c-format ++msgid "Kernel IP routing table\n" ++msgstr "カーãƒãƒ«IP経路テーブル\n" ++ ++#: ../lib/inet_gr.c:56 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags Metric Ref Use " ++"Iface\n" ++msgstr "å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet_gr.c:59 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags MSS Window irtt " ++"Iface\n" ++msgstr "å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ MSS Window irtt インタフェース\n" ++ ++#: ../lib/inet_gr.c:62 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags Metric Ref Use " ++"Iface MSS Window irtt\n" ++msgstr "" ++"å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt\n" ++ ++#: ../lib/inet_gr.c:237 ++#, c-format ++msgid "Kernel IP routing cache\n" ++msgstr "カーãƒãƒ«IP経路キャッシュ\n" ++ ++#: ../lib/inet_gr.c:258 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface\n" ++msgstr "発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet_gr.c:261 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags MSS Window irtt " ++"Iface\n" ++msgstr "発信元サイト å—信先サイト ゲートウェイ フラグ MSS Window irtt インタフェース\n" ++ ++#: ../lib/inet_gr.c:266 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface MSS Window irtt HH Arp\n" ++msgstr "" ++"発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt HH Arp\n" ++ ++#: ../lib/inet_gr.c:290 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" ++msgstr "" ++"発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" ++ ++#: ../lib/inet_sr.c:51 ++#, c-format ++msgid "" ++"Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " ++"[[dev] If]\n" ++msgstr "" ++"使用法:inet_route [-vF] del {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++" [[dev] インタフェース]\n" ++ ++#: ../lib/inet_sr.c:52 ++#, c-format ++msgid "" ++" inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" ++msgstr "" ++" inet_route [-vF] add {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++ ++#: ../lib/inet_sr.c:53 ++#, c-format ++msgid "" ++" [netmask N] [mss Mss] [window W] [irtt I]\n" ++msgstr " [netmask ãƒãƒƒãƒˆãƒžã‚¹ã‚¯] [mss Mss] [window W] [irtt I]\n" ++ ++#: ../lib/inet_sr.c:54 ++#, c-format ++msgid " [mod] [dyn] [reinstate] [[dev] If]\n" ++msgstr " [mod] [dyn] [reinstate] [[dev] インタフェース]\n" ++ ++#: ../lib/inet_sr.c:55 ++#, c-format ++msgid "" ++" inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" ++msgstr "" ++" inet_route [-vF] add {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [metric メトリック] reject\n" ++ ++#: ../lib/inet_sr.c:56 ++#, c-format ++msgid " inet_route [-FC] flush NOT supported\n" ++msgstr " inet_route [-FC] flush サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:158 ++#, c-format ++msgid "route: %s: cannot use a NETWORK as gateway!\n" ++msgstr "route: %s: NETWORKをゲートウェイã¨ã—ã¦ä½¿ãˆã¾ã›ã‚“!\n" ++ ++#: ../lib/inet_sr.c:174 ++#, c-format ++msgid "route: Invalid MSS/MTU.\n" ++msgstr "route: MSS/MTUãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:187 ++#, c-format ++msgid "route: Invalid window.\n" ++msgstr "route: windowãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:203 ++#, c-format ++msgid "route: Invalid initial rtt.\n" ++msgstr "route: åˆæœŸrttãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:261 ++#, c-format ++msgid "route: netmask %.8x doesn't make sense with host route\n" ++msgstr "route: ãƒãƒƒãƒˆãƒžã‚¹ã‚¯%.8xãŒãƒ›ã‚¹ãƒˆçµŒè·¯ã‚’検出ã—ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:265 ++#, c-format ++msgid "route: bogus netmask %s\n" ++msgstr "route: å½ã®ãƒãƒƒãƒˆãƒžã‚¹ã‚¯`%s'ã§ã™\n" ++ ++#: ../lib/inet_sr.c:270 ++#, c-format ++msgid "route: netmask doesn't match route address\n" ++msgstr "route: ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ãŒçµŒè·¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:306 ++#, c-format ++msgid "Flushing `inet' routing table not supported\n" ++msgstr "`inet'経路テーブルã®ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:310 ++#, c-format ++msgid "Modifying `inet' routing cache not supported\n" ++msgstr "`inet'経路テーブルã®å¤‰æ›´ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/ipx_gr.c:52 ++#, c-format ++msgid "IPX not configured in this system.\n" ++msgstr "IPXã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/ipx_gr.c:56 ++#, c-format ++msgid "Kernel IPX routing table\n" ++msgstr "カーãƒãƒ«IPX経路テーブル\n" ++ ++#. xxx ++#: ../lib/ipx_gr.c:57 ++#, c-format ++msgid "Destination Router Net Router Node\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ ルータ ãƒãƒƒãƒˆ ルータノード\n" ++ ++#: ../lib/ipx_sr.c:33 ++#, c-format ++msgid "IPX: this needs to be written\n" ++msgstr "IPX: ã“ã‚Œã¯æ›¸ãè¾¼ã¿ãŒå¿…è¦ã§ã™\n" ++ ++#: ../lib/masq_info.c:198 ++#, c-format ++msgid "IP masquerading entries\n" ++msgstr "IPマスカレード エントリ\n" ++ ++#: ../lib/masq_info.c:201 ++#, c-format ++msgid "prot expire source destination ports\n" ++msgstr "プロト expire 発信元サイト é€ä¿¡å…ˆã‚µã‚¤ãƒˆ ãƒãƒ¼ãƒˆ\n" ++ ++#: ../lib/masq_info.c:204 ++#, c-format ++msgid "" ++"prot expire initseq delta prevd source " ++"destination ports\n" ++msgstr "" ++"プロト expire åˆæœŸseq delta prevd 発信元サイト å—信先サイ" ++"ト ãƒãƒ¼ãƒˆ\n" ++ ++#: ../lib/netrom_gr.c:48 ++#, c-format ++msgid "NET/ROM not configured in this system.\n" ++msgstr "NET/ROMã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨å¯èƒ½ãªã‚ˆã†ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/netrom_gr.c:51 ++#, c-format ++msgid "Kernel NET/ROM routing table\n" ++msgstr "カーãƒãƒ«NET/ROM経路テーブル\n" ++ ++#: ../lib/netrom_gr.c:52 ++#, c-format ++msgid "Destination Mnemonic Quality Neighbour Iface\n" ++msgstr "å—信先サイト ニーモニック å“質 近隣サイト インタフェース\n" ++ ++#: ../lib/netrom_sr.c:34 ++#, c-format ++msgid "netrom usage\n" ++msgstr "netrom使用法\n" ++ ++#: ../lib/netrom_sr.c:44 ++#, c-format ++msgid "NET/ROM: this needs to be written\n" ++msgstr "NET/ROM: ã“ã‚Œã¯æ›¸ãè¾¼ã¿ãŒå¿…è¦ã§ã™\n" ++ ++#: ../lib/ppp.c:44 ++#, c-format ++msgid "You cannot start PPP with this program.\n" ++msgstr "ã“ã®ãƒ—ログラムã§ã¯PPPを開始ã§ãã¾ã›ã‚“. \n" ++ ++#: ../lib/ppp_ac.c:38 ++#, c-format ++msgid "Sorry, use pppd!\n" ++msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“ãŒ, pppdを使ã£ã¦ä¸‹ã•ã„!\n" ++ ++#: ../lib/rose.c:87 ++msgid "Node address must be ten digits" ++msgstr "ノードアドレスã¯10進数ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" ++ ++#: ../lib/rose_gr.c:51 ++#, c-format ++msgid "ROSE not configured in this system.\n" ++msgstr "ROSEã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨å¯èƒ½ãªã‚ˆã†ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/rose_gr.c:54 ++#, c-format ++msgid "Kernel ROSE routing table\n" ++msgstr "カーãƒãƒ«ROSE経路テーブル\n" ++ ++#: ../lib/tr.c:86 ../lib/tr.c:101 ++#, c-format ++msgid "in_tr(%s): invalid token ring address!\n" ++msgstr "in_tr(%s): ä¸é©å½“ãªãƒˆãƒ¼ã‚¯ãƒ³ãƒªãƒ³ã‚°ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™!\n" ++ ++#: ../lib/tr.c:113 ++#, c-format ++msgid "in_tr(%s): trailing : ignored!\n" ++msgstr "in_tr(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/tr.c:125 ++#, c-format ++msgid "in_tr(%s): trailing junk!\n" ++msgstr "in_tr(%s): trailing junk!\n" ++ ++#: ../lib/interface.c:176 ++#, c-format ++msgid "warning: no inet socket available: %s\n" ++msgstr "警告: Inetソケットã¯åˆ©ç”¨ã§ãã¾ã›ã‚“: %s\n" ++ ++#: ../lib/interface.c:325 ++#, c-format ++msgid "Warning: cannot open %s (%s). Limited output.\n" ++msgstr "警告: %sã‚’é–‹ã‘ã¾ã›ã‚“(%s). é™å®šã•ã‚ŒãŸå‡ºåŠ›ã§ã™.\n" ++ ++#. Give better error message for this case. ++#: ../lib/interface.c:571 ++msgid "Device not found" ++msgstr "デãƒã‚¤ã‚¹ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" ++ ++#: ../lib/interface.c:575 ++#, c-format ++msgid "%s: error fetching interface information: %s\n" ++msgstr "%s: インタフェース情報をå–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s\n" ++ ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - 統計情報を利用ã§ãã¾ã›ã‚“ -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[フラグãªã—]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s リンク方法:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "メディア:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(自動)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %sアドレス:%s" ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " ブロードキャスト:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " マスク:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6アドレス: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " 範囲:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "グローãƒãƒ«" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "リンク" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "サイト" ++ ++# translatable? ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "ホスト" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "ä¸æ˜Ž" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆIIアドレス:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆSNAPアドレス:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆ802.2アドレス:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆ802.3アドレス:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " イーサトーク フェーズ2アドレス:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " エコãƒãƒƒãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[フラグãªã—]" ++ ++# translatable? ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++# translatable? ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++# translatable? ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++# translatable? ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++# translatable? ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++# translatable? ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++# translatable? ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++# translatable? ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++# translatable? ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++# translatable? ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++# translatable? ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++# translatable? ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++# translatable? ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++# translatable? ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d メトリック:%d" ++ ++# translatable? ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d キープアライブ:%d" ++ ++#: ../lib/interface.c:850 ++#, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "RXパケット:%llu エラー:%lu æ失:%lu オーãƒãƒ©ãƒ³:%lu フレーム:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " 圧縮:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "TXパケット:%llu エラー:%lu æ失:%lu オーãƒãƒ©ãƒ³:%lu キャリア:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " è¡çª(Collisions):%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "圧縮:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "TXキュー長:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "RXãƒã‚¤ãƒˆ:%llu (%lu.%lu %s) TXãƒã‚¤ãƒˆ:%llu (%lu.%lu %s)\n" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "割り込ã¿:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "ベースアドレス:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "メモリ:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "DMAãƒã‚§ã‚¤ãƒ³:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format ++msgid "No usable address families found.\n" ++msgstr "利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../lib/util-ank.c:229 ++#, c-format ++msgid "ip: %s is invalid inet address\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªInetアドレスã§ã™.\n" ++ ++#: ../lib/util-ank.c:238 ++#, c-format ++msgid "ip: %s is invalid inet prefix\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªInetプレフィックスã§ã™\n" ++ ++#: ../lib/util-ank.c:248 ++#, c-format ++msgid "ip: %s is invalid IPv4 address\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªIPv4アドレスã§ã™.\n" ++ ++#: ../lib/util-ank.c:256 ++#, c-format ++msgid "ip: argument is wrong: %s\n" ++msgstr "ip: 引数ãŒé–“é•ã£ã¦ã„ã¾ã™: %s\n" ++ ++#: ../ipmaddr.c:61 ++#, c-format ++msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" ++msgstr "使用法: ipmaddr [ add | del ] マルãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ dev 文字列\n" ++ ++#: ../ipmaddr.c:62 ++#, c-format ++msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" ++msgstr " ipmaddr show [ dev 文字列 ] [ ipv4 | ipv6 | link | all ]\n" ++ ++#: ../ipmaddr.c:63 ++#, c-format ++msgid " ipmaddr -V | -version\n" ++msgstr " ipmaddr -V | -version\n" ++ ++#: ../ipmaddr.c:263 ++#, c-format ++msgid "family %d " ++msgstr "ファミリ %d " ++ ++#: ../ipmaddr.c:272 ++#, c-format ++msgid " users %d" ++msgstr " ユーザ %d" ++ ++#: ../ipmaddr.c:358 ++msgid "Cannot create socket" ++msgstr "ソケットを作æˆã§ãã¾ã›ã‚“" ++ ++#: ../slattach.c:180 ++#, c-format ++msgid "slattach: /dev/%s already locked!\n" ++msgstr "slattach: /dev/%s ã¯ã™ã§ã«ãƒ­ãƒƒã‚¯ã•ã‚Œã¦ã„ã¾ã™!\n" ++ ++#: ../slattach.c:186 ++#, c-format ++msgid "slattach: tty_lock: (%s): %s\n" ++msgstr "slattach: tty_lock: (%s): %s\n" ++ ++#: ../slattach.c:192 ++#, c-format ++msgid "slattach: cannot write PID file\n" ++msgstr "slattach: PIDファイルを書ãè¾¼ã‚ã¾ã›ã‚“\n" ++ ++#: ../slattach.c:202 ++#, c-format ++msgid "slattach: tty_lock: UUCP user %s unknown!\n" ++msgstr "slattach: tty_lock: UUCPユーザ%sã¯ä¸æ˜Žã§ã™!\n" ++ ++#: ../slattach.c:430 ++#, c-format ++msgid "slattach: tty_hangup(DROP): %s\n" ++msgstr "slattach: tty_hangup(DROP): %s\n" ++ ++#: ../slattach.c:437 ++#, c-format ++msgid "slattach: tty_hangup(RAISE): %s\n" ++msgstr "slattach: tty_hangup(RAISE): %s\n" ++ ++#: ../slattach.c:468 ++#, c-format ++msgid "slattach: tty name too long\n" ++msgstr "slattach: ttyåãŒé•·ã™ãŽã¾ã™\n" ++ ++#: ../slattach.c:498 ++#, c-format ++msgid "slattach: tty_open: cannot get current state!\n" ++msgstr "slattach: tty_open: ç¾åœ¨ã®çŠ¶æ…‹ã‚’得られã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:505 ++#, c-format ++msgid "slattach: tty_open: cannot get current line disc!\n" ++msgstr "slattach: tty_open: ç¾åœ¨ã®ãƒ©ã‚¤ãƒ³ãƒ»ãƒ‡ã‚£ã‚¹ã‚¯ã‚’得られã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:513 ++#, c-format ++msgid "slattach: tty_open: cannot set RAW mode!\n" ++msgstr "slattach: tty_open: RAWモードを設定ã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:520 ++#, c-format ++msgid "slattach: tty_open: cannot set %s bps!\n" ++msgstr "slattach: tty_open: %s bpsを設定ã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:530 ++#, c-format ++msgid "slattach: tty_open: cannot set 8N1 mode!\n" ++msgstr "slattach: tty_open: 8N1モードã¸è¨­å®šã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++ ++#: ../slattach.c:704 ++#, c-format ++msgid "%s started" ++msgstr "%sを開始ã—ã¾ã—ãŸ" ++ ++#: ../slattach.c:705 ++#, c-format ++msgid " on %s" ++msgstr "(%s上)" ++ ++#: ../slattach.c:706 ++#, c-format ++msgid " interface %s\n" ++msgstr " インタフェース %s\n" +--- net-tools-1.60.orig/ipmaddr.c ++++ net-tools-1.60/ipmaddr.c +@@ -291,13 +291,15 @@ + static int multiaddr_list(int argc, char **argv) + { + struct ma_info *list = NULL; ++ size_t l; + + while (argc > 0) { + if (strcmp(*argv, "dev") == 0) { + NEXT_ARG(); +- if (filter_dev[0]) ++ l = strlen(*argv); ++ if (l <= 0 || l >= sizeof(filter_dev)) + usage(); +- strcpy(filter_dev, *argv); ++ strncpy(filter_dev, *argv, sizeof (filter_dev)); + } else if (strcmp(*argv, "all") == 0) { + filter_family = AF_UNSPEC; + } else if (strcmp(*argv, "ipv4") == 0) { +@@ -307,9 +309,10 @@ + } else if (strcmp(*argv, "link") == 0) { + filter_family = AF_PACKET; + } else { +- if (filter_dev[0]) ++ l = strlen(*argv); ++ if (l <= 0 || l >= sizeof(filter_dev)) + usage(); +- strcpy(filter_dev, *argv); ++ strncpy(filter_dev, *argv, sizeof (filter_dev)); + } + argv++; argc--; + } +--- net-tools-1.60.orig/Makefile ++++ net-tools-1.60/Makefile +@@ -76,7 +76,7 @@ + NET_LIB_PATH = lib + NET_LIB_NAME = net-tools + +-PROGS := ifconfig hostname arp netstat route rarp slattach plipconfig nameif ++PROGS := ifconfig arp netstat route rarp slattach plipconfig nameif # hostname + + -include config.make + ifeq ($(HAVE_IP_TOOLS),1) +@@ -88,7 +88,7 @@ + + # Compiler and Linker Options + # You may need to uncomment and edit these if you are using libc5 and IPv6. +-COPTS = -D_GNU_SOURCE -O2 -Wall -g # -I/usr/inet6/include ++COPTS = -D_GNU_SOURCE -O2 -Wall # -g -I/usr/inet6/include + ifeq ($(origin LOPTS), undefined) + LOPTS = + endif +@@ -116,6 +116,18 @@ + CFLAGS = $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH) + LDFLAGS = $(LOPTS) -L$(NET_LIB_PATH) + ++INSTALL = install ++INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 ++ ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++CFLAGS += -g ++endif ++ ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++INSTALL_PROGRAM += -s ++endif ++ ++ + SUBDIRS = man/ $(NET_LIB_PATH)/ + + ifeq ($(origin CC), undefined) +@@ -223,29 +235,29 @@ + installbin: + install -m 0755 -d ${BASEDIR}/sbin + install -m 0755 -d ${BASEDIR}/bin +- install -m 0755 arp ${BASEDIR}/sbin +- install -m 0755 hostname ${BASEDIR}/bin +- install -m 0755 ifconfig ${BASEDIR}/sbin +- install -m 0755 nameif ${BASEDIR}/sbin +- install -m 0755 netstat ${BASEDIR}/bin +- install -m 0755 plipconfig $(BASEDIR)/sbin +- install -m 0755 rarp ${BASEDIR}/sbin +- install -m 0755 route ${BASEDIR}/sbin +- install -m 0755 slattach $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) arp ${BASEDIR}/sbin ++# $(INSTALL_PROGRAM) hostname ${BASEDIR}/bin ++ $(INSTALL_PROGRAM) ifconfig ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) nameif ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) netstat ${BASEDIR}/bin ++ $(INSTALL_PROGRAM) plipconfig $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) rarp ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) route ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) slattach $(BASEDIR)/sbin + ifeq ($(HAVE_IP_TOOLS),1) +- install -m 0755 ipmaddr $(BASEDIR)/sbin +- install -m 0755 iptunnel $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) ipmaddr $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) iptunnel $(BASEDIR)/sbin + endif + ifeq ($(HAVE_MII),1) +- install -m 0755 mii-tool $(BASEDIR)/sbin +-endif +- ln -fs hostname $(BASEDIR)/bin/dnsdomainname +- ln -fs hostname $(BASEDIR)/bin/ypdomainname +- ln -fs hostname $(BASEDIR)/bin/nisdomainname +- ln -fs hostname $(BASEDIR)/bin/domainname +-ifeq ($(HAVE_AFDECnet),1) +- ln -fs hostname $(BASEDIR)/bin/nodename ++ $(INSTALL_PROGRAM) mii-tool $(BASEDIR)/sbin + endif ++# ln -fs hostname $(BASEDIR)/bin/dnsdomainname ++# ln -fs hostname $(BASEDIR)/bin/ypdomainname ++# ln -fs hostname $(BASEDIR)/bin/nisdomainname ++# ln -fs hostname $(BASEDIR)/bin/domainname ++#ifeq ($(HAVE_AFDECnet),1) ++# ln -fs hostname $(BASEDIR)/bin/nodename ++#endif + + savebin: + @for i in ${BASEDIR}/sbin/arp ${BASEDIR}/sbin/ifconfig \ +--- net-tools-1.60.orig/README ++++ net-tools-1.60/README +@@ -10,7 +10,7 @@ + subsystem of the Linux kernel. This includes arp, hostname, ifconfig, + netstat, rarp and route. Additionally, this package contains + utilities relating to particular network hardware types (plipconfig, +-slattach) and advanced aspects of IP configuration (iptunnel, ++slattach, mii-tool) and advanced aspects of IP configuration (iptunnel, + ipmaddr). + + Please include the output of "program --version" when reporting bugs. +@@ -24,10 +24,14 @@ + + INSTALLING Installation instructions. + +- COPYING Your free copy of the GNU Public License. +- + TODO Some things that need to be done. + ++The Homepage (including CVS repository, release downloads and a form to ++request enhancements) is hosted by BerliOS Developer. Please consider to ++join the project if you want to contribute: ++ ++ http://net-tools.berlios.de/ ++ + + Notes + ----- +--- net-tools-1.60.orig/arp.c ++++ net-tools-1.60/arp.c +@@ -8,7 +8,7 @@ + * NET-3 Networking Distribution for the LINUX operating + * system. + * +- * Version: $Id: arp.c,v 1.20 2001/04/08 17:05:05 pb Exp $ ++ * Version: $Id: arp.c,v 1.25 2005/12/04 02:57:15 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de> + * +@@ -100,9 +100,10 @@ + { + char host[128]; + struct arpreq req; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + int flags = 0; +- int err; ++ int deleted = 0; + + memset((char *) &req, 0, sizeof(req)); + +@@ -112,12 +113,13 @@ + return (-1); + } + safe_strncpy(host, *args, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ sa = (struct sockaddr *)&ss; ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } + /* If a host has more than one address, use the correct one! */ +- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr)); ++ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr)); + + if (hw_set) + req.arp_ha.sa_family = hw->type; +@@ -148,7 +150,7 @@ + continue; + } + if (!strcmp(*args, "dontpub")) { +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + req.arp_flags |= ATF_DONTPUB; + #else + ENOSUPP("arp", "ATF_DONTPUB"); +@@ -157,7 +159,7 @@ + continue; + } + if (!strcmp(*args, "auto")) { +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + req.arp_flags |= ATF_MAGIC; + #else + ENOSUPP("arp", "ATF_MAGIC"); +@@ -177,11 +179,11 @@ + usage(); + if (strcmp(*args, "255.255.255.255") != 0) { + strcpy(host, *args); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- memcpy((char *) &req.arp_netmask, (char *) &sa, ++ memcpy((char *) &req.arp_netmask, (char *) sa, + sizeof(struct sockaddr)); + req.arp_flags |= ATF_NETMASK; + } +@@ -190,35 +192,41 @@ + } + usage(); + } ++ ++ // if neighter priv nor pub is given, work on both + if (flags == 0) + flags = 3; + + strcpy(req.arp_dev, device); + +- err = -1; ++ /* unfortuatelly the kernel interface does not allow us to ++ delete private entries anlone, so we need this hack ++ to avoid "not found" errors if we try both. */ ++ deleted = 0; + + /* Call the kernel. */ + if (flags & 2) { + if (opt_v) +- fprintf(stderr, "arp: SIOCDARP(nopub)\n"); +- if ((err = ioctl(sockfd, SIOCDARP, &req) < 0)) { +- if (errno == ENXIO) { ++ fprintf(stderr, "arp: SIOCDARP(dontpub)\n"); ++ if (ioctl(sockfd, SIOCDARP, &req) < 0) { ++ if ((errno == ENXIO) || (errno == ENOENT)) { + if (flags & 1) +- goto nopub; ++ goto dontpub; + printf(_("No ARP entry for %s\n"), host); + return (-1); + } +- perror("SIOCDARP(priv)"); ++ perror("SIOCDARP(dontpub)"); + return (-1); +- } ++ } else ++ deleted = 1; + } +- if ((flags & 1) && (err)) { +- nopub: ++ if (!deleted && (flags & 1)) { ++ dontpub: + req.arp_flags |= ATF_PUBL; + if (opt_v) + fprintf(stderr, "arp: SIOCDARP(pub)\n"); + if (ioctl(sockfd, SIOCDARP, &req) < 0) { +- if (errno == ENXIO) { ++ if ((errno == ENXIO) || (errno == ENOENT)) { + printf(_("No ARP entry for %s\n"), host); + return (-1); + } +@@ -260,7 +268,8 @@ + { + char host[128]; + struct arpreq req; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + int flags; + + memset((char *) &req, 0, sizeof(req)); +@@ -271,12 +280,13 @@ + return (-1); + } + safe_strncpy(host, *args++, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ sa = (struct sockaddr *)&ss; ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } + /* If a host has more than one address, use the correct one! */ +- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr)); ++ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr)); + + /* Fetch the hardware address. */ + if (*args == NULL) { +@@ -317,7 +327,7 @@ + continue; + } + if (!strcmp(*args, "dontpub")) { +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + flags |= ATF_DONTPUB; + #else + ENOSUPP("arp", "ATF_DONTPUB"); +@@ -326,7 +336,7 @@ + continue; + } + if (!strcmp(*args, "auto")) { +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + flags |= ATF_MAGIC; + #else + ENOSUPP("arp", "ATF_MAGIC"); +@@ -346,11 +356,11 @@ + usage(); + if (strcmp(*args, "255.255.255.255") != 0) { + strcpy(host, *args); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- memcpy((char *) &req.arp_netmask, (char *) &sa, ++ memcpy((char *) &req.arp_netmask, (char *) sa, + sizeof(struct sockaddr)); + flags |= ATF_NETMASK; + } +@@ -445,11 +455,11 @@ + strcat(flags, "M"); + if (arp_flags & ATF_PUBL) + strcat(flags, "P"); +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + if (arp_flags & ATF_MAGIC) + strcat(flags, "A"); + #endif +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + if (arp_flags & ATF_DONTPUB) + strcat(flags, "!"); + #endif +@@ -463,7 +473,7 @@ + + if (!(arp_flags & ATF_COM)) { + if (arp_flags & ATF_PUBL) +- printf("%-8.8s%-20.20s", "*", "*"); ++ printf("%-8.8s%-20.20s", "*", _("<from_interface>")); + else + printf("%-8.8s%-20.20s", "", _("(incomplete)")); + } else { +@@ -486,7 +496,7 @@ + + if (!(arp_flags & ATF_COM)) { + if (arp_flags & ATF_PUBL) +- printf("* "); ++ printf("<from_interface> "); + else + printf(_("<incomplete> ")); + } else { +@@ -499,12 +509,12 @@ + if (arp_flags & ATF_PERM) + printf("PERM "); + if (arp_flags & ATF_PUBL) +- printf("PUP "); +-#ifdef HAVE_ATF_MAGIC ++ printf("PUB "); ++#ifdef ATF_MAGIC + if (arp_flags & ATF_MAGIC) + printf("AUTO "); + #endif +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + if (arp_flags & ATF_DONTPUB) + printf("DONTPUB "); + #endif +@@ -519,7 +529,8 @@ + static int arp_show(char *name) + { + char host[100]; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + char ip[100]; + char hwa[100]; + char mask[100]; +@@ -532,14 +543,15 @@ + + host[0] = '\0'; + ++ sa = (struct sockaddr *)&ss; + if (name != NULL) { + /* Resolve the host name. */ + safe_strncpy(host, name, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- safe_strncpy(host, ap->sprint(&sa, 1), sizeof(host)); ++ safe_strncpy(host, ap->sprint(sa, 1), sizeof(host)); + } + /* Open the PROCps kernel table. */ + if ((fp = fopen(_PATH_PROCNET_ARP, "r")) == NULL) { +@@ -575,10 +587,10 @@ + if (opt_n) + hostname = "?"; + else { +- if (ap->input(0, ip, &sa) < 0) ++ if (ap->input(0, ip, sa) < 0) + hostname = ip; + else +- hostname = ap->sprint(&sa, opt_n | 0x8000); ++ hostname = ap->sprint(sa, opt_n | 0x8000); + if (strcmp(hostname, ip) == 0) + hostname = "?"; + } +@@ -612,11 +624,10 @@ + static void usage(void) + { + fprintf(stderr, _("Usage:\n arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP cache\n")); +- fprintf(stderr, _(" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP entry\n")); +- fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n")); +- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add entry\n")); +- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub <-''-\n")); +- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub <-''-\n\n")); ++ fprintf(stderr, _(" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP entry\n")); ++ fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n")); ++ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add entry\n")); ++ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub <-''-\n\n")); + + fprintf(stderr, _(" -a display (all) hosts in alternative (BSD) style\n")); + fprintf(stderr, _(" -s, --set set a new ARP entry\n")); +--- net-tools-1.60.orig/config.in ++++ net-tools-1.60/config.in +@@ -49,16 +49,16 @@ + * + bool 'UNIX protocol family' HAVE_AFUNIX y + bool 'INET (TCP/IP) protocol family' HAVE_AFINET y +-bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n ++bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y + bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y + bool 'Appletalk DDP protocol family' HAVE_AFATALK y + bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y + bool 'NET/ROM (packet radio) protocol family' HAVE_AFNETROM y +-bool 'Rose (packet radio) protocol family' HAVE_AFROSE n ++bool 'Rose (packet radio) protocol family' HAVE_AFROSE y + bool 'X.25 (CCITT) protocol family' HAVE_AFX25 y +-bool 'Econet protocol family' HAVE_AFECONET n ++bool 'Econet protocol family' HAVE_AFECONET y + bool 'DECnet protocol family' HAVE_AFDECnet n +-bool 'Ash protocol family' HAVE_AFASH n ++bool 'Ash protocol family' HAVE_AFASH y + * + * + * Device Hardware types. +@@ -71,21 +71,23 @@ + bool 'STRIP (Metricom radio) support' HAVE_HWSTRIP y + bool 'Token ring (generic) support' HAVE_HWTR y + bool 'AX25 (packet radio) support' HAVE_HWAX25 y +-bool 'Rose (packet radio) support' HAVE_HWROSE n ++bool 'Rose (packet radio) support' HAVE_HWROSE y + bool 'NET/ROM (packet radio) support' HAVE_HWNETROM y + bool 'X.25 (generic) support' HAVE_HWX25 y + bool 'DLCI/FRAD (frame relay) support' HAVE_HWFR y +-bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT n +-bool 'FDDI (generic) support' HAVE_HWFDDI n +-bool 'HIPPI (generic) support' HAVE_HWHIPPI n +-bool 'Ash hardware support' HAVE_HWASH n +-bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB n ++bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT y ++bool 'FDDI (generic) support' HAVE_HWFDDI y ++bool 'HIPPI (generic) support' HAVE_HWHIPPI y ++bool 'Ash hardware support' HAVE_HWASH y ++bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB y + bool 'IrDA support' HAVE_HWIRDA y +-bool 'Econet hardware support' HAVE_HWEC n ++bool 'Econet hardware support' HAVE_HWEC y ++bool 'Generic EUI-64 hardware support' HAVE_HWEUI64 y ++ + * + * + * Other Features. + * +-bool 'IP Masquerading support' HAVE_FW_MASQUERADE n +-bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n +-bool 'Build mii-tool' HAVE_MII n ++bool 'IP Masquerading support' HAVE_FW_MASQUERADE y ++bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y ++bool 'Build mii-tool' HAVE_MII y +--- net-tools-1.60.orig/hostname.c ++++ net-tools-1.60/hostname.c +@@ -9,20 +9,19 @@ + * dnsdmoainname + * nisdomainname {name|-F file} + * +- * Version: hostname 1.96 (1996-02-18) ++ * Version: hostname 1.101 (2003-10-11) + * + * Author: Peter Tobias <tobias@et-inf.fho-emden.de> + * + * Changes: +- * {1.90} Peter Tobias : Added -a and -i options. +- * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts +- * (major rewrite), usage. +- *960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/ +- * setdomainname added +- *960218 {1.96} Bernd Eckenfels : netinet/in.h added +- *980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n +- *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings ++ * {1.90} Peter Tobias : Added -a and -i options. ++ * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts (major rewrite), usage. ++ *19960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/setdomainname added ++ *19960218 {1.96} Bernd Eckenfels : netinet/in.h added ++ *19980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n ++ *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings + *20010404 {1.100} Arnaldo Carvalho de Melo: use setlocale ++ *20031011 {1.101} Maik Broemme: gcc 3.x fixes (default: break) + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General +@@ -31,7 +30,9 @@ + * your option) any later version. + */ + #include <stdio.h> ++#include <stdlib.h> + #include <unistd.h> ++#include <stdlib.h> + #include <getopt.h> + #include <string.h> + #include <netdb.h> +@@ -78,6 +79,7 @@ + fprintf(stderr, _("%s: name too long\n"), program_name); + break; + default: ++ break; + } + exit(1); + } +@@ -97,7 +99,6 @@ + case EINVAL: + fprintf(stderr, _("%s: name too long\n"), program_name); + break; +- default: + } + exit(1); + }; +@@ -116,7 +117,6 @@ + case EINVAL: + fprintf(stderr, _("%s: name too long\n"), program_name); + break; +- default: + } + exit(1); + }; +@@ -173,7 +173,6 @@ + *p = '\0'; + printf("%s\n", hp->h_name); + break; +- default: + } + } + +@@ -326,11 +325,12 @@ + break; + case 'V': + version(); ++ break; // not reached + case '?': + case 'h': + default: + usage(); +- ++ break; // not reached + }; + + +--- net-tools-1.60.orig/ifconfig.c ++++ net-tools-1.60/ifconfig.c +@@ -3,7 +3,7 @@ + * that either displays or sets the characteristics of + * one or more of the system's networking interfaces. + * +- * Version: $Id: ifconfig.c,v 1.50 2001/04/13 18:25:18 pb Exp $ ++ * Version: $Id: ifconfig.c,v 1.57 2002/12/10 00:56:41 ecki Exp $ + * + * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> + * and others. Copyright 1993 MicroWalt Corporation +@@ -88,7 +88,6 @@ + char *Release = RELEASE, *Version = "ifconfig 1.42 (2001-04-13)"; + + int opt_a = 0; /* show all interfaces */ +-int opt_i = 0; /* show the statistics */ + int opt_v = 0; /* debugging output flag */ + + int addr_family = 0; /* currently selected AF */ +@@ -105,7 +104,7 @@ + int res; + + if (ife_short) +- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); ++ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); + + if (!ifname) { + res = for_all_interfaces(do_if_print, &opt_a); +@@ -127,7 +126,7 @@ + + safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) { +- fprintf(stderr, _("%s: unknown interface: %s\n"), ++ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"), + ifname, strerror(errno)); + return (-1); + } +@@ -159,7 +158,7 @@ + + safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) { +- fprintf(stderr, _("%s: unknown interface: %s\n"), ++ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"), + ifname, strerror(errno)); + return -1; + } +@@ -172,9 +171,35 @@ + return (0); + } + ++/** test is a specified flag is set */ ++static int test_flag(char *ifname, short flags) ++{ ++ struct ifreq ifr; ++ int fd; ++ ++ if (strchr(ifname, ':')) { ++ /* This is a v4 alias interface. Downing it via a socket for ++ another AF may have bad consequences. */ ++ fd = get_socket_for_af(AF_INET); ++ if (fd < 0) { ++ fprintf(stderr, _("No support for INET on this system.\n")); ++ return -1; ++ } ++ } else ++ fd = skfd; ++ ++ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); ++ if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) { ++ fprintf(stderr, _("%s: ERROR while testing interface flags: %s\n"), ++ ifname, strerror(errno)); ++ return -1; ++ } ++ return (ifr.ifr_flags & flags); ++} ++ + static void usage(void) + { +- fprintf(stderr, _("Usage:\n ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n")); ++ fprintf(stderr, _("Usage:\n ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n")); + #if HAVE_AFINET + fprintf(stderr, _(" [add <address>[/<prefixlen>]]\n")); + fprintf(stderr, _(" [del <address>[/<prefixlen>]]\n")); +@@ -208,7 +233,7 @@ + static void version(void) + { + fprintf(stderr, "%s\n%s\n", Release, Version); +- exit(0); ++ exit(E_USAGE); + } + + static int set_netmask(int skfd, struct ifreq *ifr, struct sockaddr *sa) +@@ -222,18 +247,19 @@ + strerror(errno)); + err = 1; + } +- return 0; ++ return err; + } + + int main(int argc, char **argv) + { + struct sockaddr sa; ++ struct sockaddr samask; + struct sockaddr_in sin; + char host[128]; + struct aftype *ap; + struct hwtype *hw; + struct ifreq ifr; +- int goterr = 0, didnetmask = 0; ++ int goterr = 0, didnetmask = 0, neednetmask=0; + char **spp; + int fd; + #if HAVE_AFINET6 +@@ -388,6 +414,8 @@ + } + if (!strcmp(*spp, "-promisc")) { + goterr |= clr_flag(ifr.ifr_name, IFF_PROMISC); ++ if (test_flag(ifr.ifr_name, IFF_PROMISC) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in promisc mode... maybe other application is running?\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -398,6 +426,8 @@ + } + if (!strcmp(*spp, "-multicast")) { + goterr |= clr_flag(ifr.ifr_name, IFF_MULTICAST); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in MULTICAST mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -408,6 +438,8 @@ + } + if (!strcmp(*spp, "-allmulti")) { + goterr |= clr_flag(ifr.ifr_name, IFF_ALLMULTI); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in ALLMULTI mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -430,6 +462,8 @@ + if (!strcmp(*spp, "-dynamic")) { + goterr |= clr_flag(ifr.ifr_name, IFF_DYNAMIC); + spp++; ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in DYNAMIC mode.\n"), ifr.ifr_name); + continue; + } + #endif +@@ -486,6 +520,8 @@ + + if (!strcmp(*spp, "-broadcast")) { + goterr |= clr_flag(ifr.ifr_name, IFF_BROADCAST); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in BROADCAST mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -493,7 +529,10 @@ + if (*++spp != NULL) { + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for broadcast\n"), host); + goterr = 1; + spp++; + continue; +@@ -515,7 +554,10 @@ + usage(); + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for dstaddr\n"), host); + goterr = 1; + spp++; + continue; +@@ -535,13 +577,16 @@ + usage(); + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for netmask\n"), host); + goterr = 1; + spp++; + continue; + } + didnetmask++; +- goterr = set_netmask(ap->fd, &ifr, &sa); ++ goterr |= set_netmask(ap->fd, &ifr, &sa); + spp++; + continue; + } +@@ -613,6 +658,8 @@ + if (!strcmp(*spp, "-pointopoint")) { + goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT); + spp++; ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name); + continue; + } + if (!strcmp(*spp, "pointopoint")) { +@@ -620,7 +667,10 @@ + spp++; + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa)) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for pointopoint\n"), host); + goterr = 1; + spp++; + continue; +@@ -661,8 +711,12 @@ + memcpy((char *) &ifr.ifr_hwaddr, (char *) &sa, + sizeof(struct sockaddr)); + if (ioctl(skfd, SIOCSIFHWADDR, &ifr) < 0) { +- fprintf(stderr, "SIOCSIFHWADDR: %s\n", +- strerror(errno)); ++ if (errno == EBUSY) ++ fprintf(stderr, "SIOCSIFHWADDR: %s - you may need to down the interface\n", ++ strerror(errno)); ++ else ++ fprintf(stderr, "SIOCSIFHWADDR: %s\n", ++ strerror(errno)); + goterr = 1; + } + spp++; +@@ -681,12 +735,15 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, + (struct sockaddr *) &sa6) < 0) { +- inet6_aftype.herror(host); ++ if (inet6_aftype.herror) ++ inet6_aftype.herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for add\n"), host); + goterr = 1; + spp++; + continue; +@@ -771,7 +828,7 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, +@@ -800,6 +857,8 @@ + } + ifr6.ifr6_ifindex = ifr.ifr_ifindex; + ifr6.ifr6_prefixlen = prefix_len; ++ if (opt_v) ++ fprintf(stderr, "now deleting: ioctl(SIOCDIFADDR,{ifindex=%d,prefixlen=%ld})\n",ifr.ifr_ifindex,prefix_len); + if (ioctl(fd, SIOCDIFADDR, &ifr6) < 0) { + fprintf(stderr, "SIOCDIFADDR: %s\n", + strerror(errno)); +@@ -859,7 +918,7 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, (struct sockaddr *) &sa6) < 0) { +@@ -903,7 +962,7 @@ + /* FIXME: sa is too small for INET6 addresses, inet6 should use that too, + broadcast is unexpected */ + if (ap->getmask) { +- switch (ap->getmask(host, &sa, NULL)) { ++ switch (ap->getmask(host, &samask, NULL)) { + case -1: + usage(); + break; +@@ -911,8 +970,8 @@ + if (didnetmask) + usage(); + +- goterr = set_netmask(skfd, &ifr, &sa); +- didnetmask++; ++ // remeber to set the netmask from samask later ++ neednetmask = 1; + break; + } + } +@@ -921,9 +980,11 @@ + exit(1); + } + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); +- fprintf(stderr, _("ifconfig: `--help' gives usage information.\n")); +- exit(1); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr,_("ifconfig: error resolving '%s' to set address for af=%s\n"), host, ap->name); fprintf(stderr, ++ _("ifconfig: `--help' gives usage information.\n")); exit(1); + } + memcpy((char *) &ifr.ifr_addr, (char *) &sa, sizeof(struct sockaddr)); + { +@@ -980,6 +1041,14 @@ + spp++; + } + ++ if (neednetmask) { ++ goterr |= set_netmask(skfd, &ifr, &samask); ++ didnetmask++; ++ } ++ ++ if (opt_v && goterr) ++ fprintf(stderr, _("WARNING: at least one error occured. (%d)\n"), goterr); ++ + return (goterr); + } + +--- net-tools-1.60.orig/netstat.c ++++ net-tools-1.60/netstat.c +@@ -6,7 +6,7 @@ + * NET-3 Networking Distribution for the LINUX operating + * system. + * +- * Version: $Id: netstat.c,v 1.43 2001/04/15 14:41:17 pb Exp $ ++ * Version: $Id: netstat.c,v 1.55 2007/12/01 19:00:40 ecki Exp $ + * + * Authors: Fred Baumgarten, <dc6iq@insu1.etec.uni-karlsruhe.de> + * Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> +@@ -94,6 +94,7 @@ + #include "sockets.h" + #include "interface.h" + #include "util.h" ++#include "proc.h" + + #define PROGNAME_WIDTH 20 + +@@ -153,7 +154,7 @@ + FILE *procinfo; + + #define INFO_GUTS1(file,name,proc) \ +- procinfo = fopen((file), "r"); \ ++ procinfo = proc_fopen((file)); \ + if (procinfo == NULL) { \ + if (errno != ENOENT) { \ + perror((file)); \ +@@ -174,7 +175,7 @@ + #if HAVE_AFINET6 + #define INFO_GUTS2(file,proc) \ + lnr = 0; \ +- procinfo = fopen((file), "r"); \ ++ procinfo = proc_fopen((file)); \ + if (procinfo != NULL) { \ + do { \ + if (fgets(buffer, sizeof(buffer), procinfo)) \ +@@ -216,7 +217,7 @@ + + static struct prg_node { + struct prg_node *next; +- int inode; ++ unsigned long inode; + char name[PROGNAME_WIDTH]; + } *prg_hash[PRG_HASH_SIZE]; + +@@ -249,7 +250,7 @@ + /* NOT working as of glibc-2.0.7: */ + #undef DIRENT_HAVE_D_TYPE_WORKS + +-static void prg_cache_add(int inode, char *name) ++static void prg_cache_add(unsigned long inode, char *name) + { + unsigned hi = PRG_HASHIT(inode); + struct prg_node **pnp,*pn; +@@ -272,7 +273,7 @@ + strcpy(pn->name,name); + } + +-static const char *prg_cache_get(int inode) ++static const char *prg_cache_get(unsigned long inode) + { + unsigned hi=PRG_HASHIT(inode); + struct prg_node *pn; +@@ -295,16 +296,18 @@ + prg_cache_loaded=0; + } + +-static void extract_type_1_socket_inode(const char lname[], long * inode_p) { ++static int extract_type_1_socket_inode(const char lname[], unsigned long * inode_p) { + + /* If lname is of the form "socket:[12345]", extract the "12345" + as *inode_p. Otherwise, return -1 as *inode_p. + */ + +- if (strlen(lname) < PRG_SOCKET_PFXl+3) *inode_p = -1; +- else if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) *inode_p = -1; +- else if (lname[strlen(lname)-1] != ']') *inode_p = -1; +- else { ++ if (strlen(lname) < PRG_SOCKET_PFXl+3) return(-1); ++ ++ if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) return(-1); ++ if (lname[strlen(lname)-1] != ']') return(-1); ++ ++ { + char inode_str[strlen(lname + 1)]; /* e.g. "12345" */ + const int inode_str_len = strlen(lname) - PRG_SOCKET_PFXl - 1; + char *serr; +@@ -313,37 +316,41 @@ + inode_str[inode_str_len] = '\0'; + *inode_p = strtol(inode_str,&serr,0); + if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX) +- *inode_p = -1; ++ return(-1); + } ++ return(0); + } + + + +-static void extract_type_2_socket_inode(const char lname[], long * inode_p) { ++static int extract_type_2_socket_inode(const char lname[], unsigned long * inode_p) { + + /* If lname is of the form "[0000]:12345", extract the "12345" + as *inode_p. Otherwise, return -1 as *inode_p. + */ + +- if (strlen(lname) < PRG_SOCKET_PFX2l+1) *inode_p = -1; +- else if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) *inode_p = -1; +- else { ++ if (strlen(lname) < PRG_SOCKET_PFX2l+1) return(-1); ++ if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) return(-1); ++ ++ { + char *serr; + + *inode_p=strtol(lname + PRG_SOCKET_PFX2l,&serr,0); + if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX) +- *inode_p = -1; ++ return(-1); + } ++ return(0); + } + + + ++ + static void prg_cache_load(void) + { + char line[LINE_MAX],eacces=0; + int procfdlen,fd,cmdllen,lnamelen; + char lname[30],cmdlbuf[512],finbuf[PROGNAME_WIDTH]; +- long inode; ++ unsigned long inode; + const char *cs,*cmdlp; + DIR *dirproc=NULL,*dirfd=NULL; + struct dirent *direproc,*direfd; +@@ -386,11 +393,9 @@ + lnamelen=readlink(line,lname,sizeof(lname)-1); + lname[lnamelen] = '\0'; /*make it a null-terminated string*/ + +- extract_type_1_socket_inode(lname, &inode); +- +- if (inode < 0) extract_type_2_socket_inode(lname, &inode); +- +- if (inode < 0) continue; ++ if (extract_type_1_socket_inode(lname, &inode) < 0) ++ if (extract_type_2_socket_inode(lname, &inode) < 0) ++ continue; + + if (!cmdlp) { + if (procfdlen - PATH_FD_SUFFl + PATH_CMDLINEl >= +@@ -450,7 +455,7 @@ + char buffer[256], dev[16]; + int st, vs, vr, sendq, recvq, ret; + +- f = fopen(_PATH_PROCNET_NR, "r"); ++ f = proc_fopen(_PATH_PROCNET_NR); + if (f == NULL) { + if (errno != ENOENT) { + perror(_PATH_PROCNET_NR); +@@ -527,15 +532,15 @@ + + if (flag_exp > 1) { + if (!(flag_not & FLAG_NUM_USER) && ((pw = getpwuid(uid)) != NULL)) +- printf("%-10s ", pw->pw_name); ++ printf(" %-10s ", pw->pw_name); + else +- printf("%-10d ", uid); +- printf("%-10ld ",inode); ++ printf(" %-10d ", uid); ++ printf("%-10lu ",inode); + } + if (flag_prg) +- printf("%-" PROGNAME_WIDTHs "s",prg_cache_get(inode)); ++ printf(" %-16s",prg_cache_get(inode)); + if (flag_opt) +- printf("%s", timers); ++ printf(" %s", timers); + putchar('\n'); + } + +@@ -646,7 +651,7 @@ + #if HAVE_AFX25 + static int x25_info(void) + { +- FILE *f=fopen(_PATH_PROCNET_X25, "r"); ++ FILE *f=proc_fopen(_PATH_PROCNET_X25); + char buffer[256],dev[16]; + int st,vs,vr,sendq,recvq,lci; + static char *x25_state[5]= +@@ -657,7 +662,7 @@ + "ESTABLISHED", + "RECOVERY" + }; +- if(!(f=fopen(_PATH_PROCNET_X25, "r"))) ++ if(!(f=proc_fopen(_PATH_PROCNET_X25))) + { + if (errno != ENOENT) { + perror(_PATH_PROCNET_X25); +@@ -705,6 +710,7 @@ + unsigned long rxq, txq, time_len, retr, inode; + int num, local_port, rem_port, d, state, uid, timer_run, timeout; + char rem_addr[128], local_addr[128], timers[64], buffer[1024], more[512]; ++ char *protname; + struct aftype *ap; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; +@@ -719,12 +725,13 @@ + return; + + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname = "tcp6"; + /* Demangle what the kernel gives us */ + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], +@@ -740,6 +747,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname = "tcp"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -813,8 +821,8 @@ + timer_run, (double) time_len / HZ, retr, timeout); + break; + } +- printf("tcp %6ld %6ld %-23s %-23s %-12s", +- rxq, txq, local_addr, rem_addr, _(tcp_state[state])); ++ printf("%-4s %6ld %6ld %-*s %-*s %-11s", ++ protname, rxq, txq, netmax(23,strlen(local_addr)), local_addr, netmax(23,strlen(rem_addr)), rem_addr, _(tcp_state[state])); + + finish_this_one(uid,inode,timers); + } +@@ -831,6 +839,7 @@ + char buffer[8192], local_addr[64], rem_addr[64]; + char *udp_state, timers[64], more[512]; + int num, local_port, rem_port, d, state, timer_run, uid, timeout; ++ char *protname; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; + char addr6[INET6_ADDRSTRLEN]; +@@ -847,13 +856,14 @@ + + more[0] = '\0'; + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, + rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname="udp6"; + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], + &in6.s6_addr32[2], &in6.s6_addr32[3]); +@@ -868,6 +878,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname="udp"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -953,8 +964,8 @@ + retr, timeout); + break; + } +- printf("udp %6ld %6ld %-23s %-23s %-12s", +- rxq, txq, local_addr, rem_addr, udp_state); ++ printf("%-4s %6ld %6ld %-23s %-23s %-11s", ++ protname, rxq, txq, local_addr, rem_addr, udp_state); + + finish_this_one(uid,inode,timers); + } +@@ -971,6 +982,7 @@ + char buffer[8192], local_addr[64], rem_addr[64]; + char timers[64], more[512]; + int num, local_port, rem_port, d, state, timer_run, uid, timeout; ++ char *protname; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; + char addr6[INET6_ADDRSTRLEN]; +@@ -987,12 +999,13 @@ + + more[0] = '\0'; + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname = "raw6"; + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], + &in6.s6_addr32[2], &in6.s6_addr32[3]); +@@ -1007,6 +1020,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname = "raw"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -1074,8 +1088,8 @@ + retr, timeout); + break; + } +- printf("raw %6ld %6ld %-23s %-23s %-12d", +- rxq, txq, local_addr, rem_addr, state); ++ printf("%-4s %6ld %6ld %-23s %-23s %-11d", ++ protname, rxq, txq, local_addr, rem_addr, state); + + finish_this_one(uid,inode,timers); + } +@@ -1099,9 +1113,9 @@ + static int has = 0; + char path[MAXPATHLEN], ss_flags[32]; + char *ss_proto, *ss_state, *ss_type; +- int num, state, type, inode; ++ int num, state, type; + void *d; +- unsigned long refcnt, proto, flags; ++ unsigned long refcnt, proto, flags, inode; + + if (nr == 0) { + if (strstr(line, "Inode")) +@@ -1109,14 +1123,14 @@ + return; + } + path[0] = '\0'; +- num = sscanf(line, "%p: %lX %lX %lX %X %X %d %s", ++ num = sscanf(line, "%p: %lX %lX %lX %X %X %lu %s", + &d, &refcnt, &proto, &flags, &type, &state, &inode, path); + if (num < 6) { + fprintf(stderr, _("warning, got bogus unix line.\n")); + return; + } + if (!(has & HAS_INODE)) +- snprintf(path,sizeof(path),"%d",inode); ++ snprintf(path,sizeof(path),"%lu",inode); + + if (!flag_all) { + if ((state == SS_UNCONNECTED) && (flags & SO_ACCEPTCON)) { +@@ -1208,9 +1222,9 @@ + printf("%-5s %-6ld %-11s %-10s %-13s ", + ss_proto, refcnt, ss_flags, ss_type, ss_state); + if (has & HAS_INODE) +- printf("%-6d ",inode); ++ printf("%-8lu ",inode); + else +- printf("- "); ++ printf("- "); + if (flag_prg) + printf("%-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-")); + puts(path); +@@ -1229,7 +1243,7 @@ + printf(_("(w/o servers)")); + } + +- printf(_("\nProto RefCnt Flags Type State I-Node")); ++ printf(_("\nProto RefCnt Flags Type State I-Node ")); + print_progname_banner(); + printf(_(" Path\n")); /* xxx */ + +@@ -1256,7 +1270,7 @@ + N_("ESTABLISHED"), + N_("RECOVERY") + }; +- if (!(f = fopen(_PATH_PROCNET_AX25, "r"))) { ++ if (!(f = proc_fopen(_PATH_PROCNET_AX25))) { + if (errno != ENOENT) { + perror(_PATH_PROCNET_AX25); + return (-1); +@@ -1350,18 +1364,37 @@ + char sad[50], dad[50]; + struct sockaddr sa; + unsigned sport = 0, dport = 0; +- +- if (!(f = fopen(_PATH_PROCNET_IPX, "r"))) { +- if (errno != ENOENT) { +- perror(_PATH_PROCNET_IPX); +- return (-1); +- } +- if (flag_arg || flag_ver) +- ESYSNOT("netstat", "AF IPX"); +- if (flag_arg) +- return (1); +- else +- return (0); ++ struct stat s; ++ ++ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET1); ++ if (!f) { ++ if (errno != ENOENT) { ++ perror(_PATH_PROCNET_IPX_SOCKET1); ++ return (-1); ++ } ++ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET2); ++ ++ /* We need to check for directory */ ++ if (f) { ++ fstat(fileno(f), &s); ++ if (!S_ISREG(s.st_mode)) { ++ fclose(f); ++ f=NULL; ++ } ++ } ++ ++ if (!f) { ++ if (errno != ENOENT) { ++ perror(_PATH_PROCNET_IPX_SOCKET2); ++ return (-1); ++ } ++ if (flag_arg || flag_ver) ++ ESYSNOT("netstat", "AF IPX"); ++ if (flag_arg) ++ return (1); ++ else ++ return (0); ++ } + } + printf(_("Active IPX sockets\nProto Recv-Q Send-Q Local Address Foreign Address State")); /* xxx */ + if (flag_exp > 1) +@@ -1381,7 +1414,7 @@ + sscanf(st, "%X", &sport); /* net byt order */ + sport = ntohs(sport); + } else { +- EINTERN("netstat.c", _PATH_PROCNET_IPX " sport format error"); ++ EINTERN("netstat.c", "ipx socket format error in source port"); + return (-1); + } + nc = 0; +@@ -1391,7 +1424,7 @@ + sscanf(st, "%X", &dport); /* net byt order */ + dport = ntohs(dport); + } else { +- EINTERN("netstat.c", _PATH_PROCNET_IPX " dport format error"); ++ EINTERN("netstat.c", "ipx soket format error in destination port"); + return (-1); + } + } else +@@ -1449,7 +1482,7 @@ + } + if (flag_exp < 2) { + ife_short = 1; +- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); ++ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); + } + + if (for_all_interfaces(do_if_print, &flag_all) < 0) { +@@ -1457,7 +1490,7 @@ + exit(1); + } + if (flag_cnt) +- free_interface_list(); ++ if_cache_free(); + else { + close(skfd); + skfd = -1; +@@ -1503,7 +1536,7 @@ + fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); + + fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); +- fprintf(stderr, _(" <AF>=Use '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF); ++ fprintf(stderr, _(" <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF); + fprintf(stderr, _(" List of possible address families (which support routing):\n")); + print_aflist(1); /* 1 = routeable */ + exit(E_USAGE); +@@ -1514,7 +1547,7 @@ + (int argc, char *argv[]) { + int i; + int lop; +- struct option longopts[] = ++ static struct option longopts[] = + { + AFTRANS_OPTS, + {"version", 0, 0, 'V'}, +@@ -1556,7 +1589,7 @@ + getroute_init(); /* Set up AF routing support */ + + afname[0] = '\0'; +- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl64", longopts, &lop)) != EOF) + switch (i) { + case -1: + break; +@@ -1624,6 +1657,14 @@ + case 'o': + flag_opt++; + break; ++ case '6': ++ if (aftrans_opt("inet6")) ++ exit(1); ++ break; ++ case '4': ++ if (aftrans_opt("inet")) ++ exit(1); ++ break; + case 'V': + version(); + /*NOTREACHED */ +@@ -1741,10 +1782,11 @@ + } + printf(_("\nProto Recv-Q Send-Q Local Address Foreign Address State ")); /* xxx */ + if (flag_exp > 1) +- printf(_(" User Inode ")); +- print_progname_banner(); ++ printf(_(" User Inode ")); ++ if (flag_prg) ++ printf(_(" PID/Program name")); + if (flag_opt) +- printf(_(" Timer")); /* xxx */ ++ printf(_(" Timer")); + printf("\n"); + #else + if (flag_arg) { +@@ -1845,6 +1887,7 @@ + } + #endif + } ++ + if (!flag_cnt || i) + break; + sleep(1); +--- net-tools-1.60.orig/route.c ++++ net-tools-1.60/route.c +@@ -2,7 +2,7 @@ + * route This file contains an implementation of the command + * that manages the IP routing table in the kernel. + * +- * Version: $Id: route.c,v 1.9 2001/04/15 14:41:17 pb Exp $ ++ * Version: $Id: route.c,v 1.10 2002/07/30 05:24:20 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de> + * +@@ -142,7 +142,7 @@ + } + + /* Fetch the command-line arguments. */ +- while ((i = getopt_long(argc, argv, "A:eCFhnNVv?", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "A:eCFhnN64Vv?", longopts, &lop)) != EOF) + switch (i) { + case -1: + break; +@@ -176,6 +176,14 @@ + if ((i = aftrans_opt(optarg))) + exit(i); + break; ++ case '6': ++ if ((i = aftrans_opt("inet6"))) ++ exit(i); ++ break; ++ case '4': ++ if ((i = aftrans_opt("inet"))) ++ exit(i); ++ break; + case 'V': + version(); + case 'h': +--- net-tools-1.60.orig/statistics.c ++++ net-tools-1.60/statistics.c +@@ -1,6 +1,6 @@ + /* + * Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL. +- * $Id: statistics.c,v 1.14 2001/02/02 18:01:23 pb Exp $ ++ * $Id: statistics.c,v 1.20 2007/12/01 18:44:56 ecki Exp $ + * 19980630 - i18n - Arnaldo Carvalho de Melo <acme@conectiva.com.br> + * 19981113 - i18n fixes - Arnaldo Carvalho de Melo <acme@conectiva.com.br> + * 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels +@@ -11,6 +11,7 @@ + #include <string.h> + #include "config.h" + #include "intl.h" ++#include "proc.h" + + /* #define WARN 1 */ + +@@ -172,19 +173,59 @@ + { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number }, + { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"), + opt_number }, +- { "ListenDrops", N_("%u SYNs to LISTEN sockets ignored"), opt_number }, ++ { "ListenDrops", N_("%u SYNs to LISTEN sockets dropped"), opt_number }, + { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."), + opt_number }, +- { "TCPDirectCopyFromBacklog", N_("%u packets directly received" +- " from backlog"), opt_number }, +- { "TCPDirectCopyFromPrequeue", N_("%u packets directly received" +- " from prequeue"), opt_number }, ++ { "TCPDirectCopyFromBacklog", N_("%u bytes directly in process context from backlog"), opt_number }, ++ { "TCPDirectCopyFromPrequeue", N_("%u bytes directly received in process context from prequeue"), ++ opt_number }, + { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number }, +- { "TCPHPHits", N_("%u packets header predicted"), number }, ++ { "TCPHPHits", N_("%u packet headers predicted"), number }, + { "TCPHPHitsToUser", N_("%u packets header predicted and " + "directly queued to user"), opt_number }, + { "SockMallocOOM", N_("Ran %u times out of system memory during " + "packet sending"), opt_number }, ++ { "TCPPureAcks", N_("%u acknowledgments not containing data payload received"), opt_number }, ++ { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number }, ++ { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number }, ++ { "TCPSackRecovery", N_("%u times recovered from packet loss by selective acknowledgements"), opt_number }, ++ { "TCPSACKReneging", N_("%u bad SACK blocks received"), opt_number }, ++ { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number }, ++ { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number }, ++ { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number }, ++ { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number }, ++ { "TCPFullUndo", N_("%u congestion windows fully recovered without slow start"), opt_number }, ++ { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number }, ++ { "TCPDSackUndo", N_("%u congestion window recovered without slow start using DSACK"), opt_number }, ++ { "TCPLossUndo", N_("%u congestion windows recovered without slow start after partial ack"), opt_number }, ++ { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number }, ++ { "TCPRenoFailures", N_("%u timeouts after reno fast retransmit"), opt_number }, ++ { "TCPSackFailures", N_("%u timeouts after SACK recovery"), opt_number }, ++ { "TCPLossFailures", N_("%u timeouts in loss state"), opt_number }, ++ { "TCPFastRetrans", N_("%u fast retransmits"), opt_number }, ++ { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number }, ++ { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number }, ++ { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number }, ++ { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number }, ++ { "TCPSackRecoveryFail", N_("%u SACK retransmits failed"), opt_number }, ++ { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number }, ++ { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number }, ++ { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number }, ++ { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number }, ++ { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number }, ++ { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number }, ++ { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number }, ++ { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number }, ++ { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number }, ++ { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number }, ++ { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number }, ++ { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number }, ++ { "TCPAbortFailed", N_("%u times unabled to send RST due to no memory"), opt_number }, ++ { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number }, ++ { "TCPLoss", N_("%u TCP data loss events"), opt_number }, ++ { "TCPDSACKUndo", N_("%u congestion windows recovered without slow start by DSACK"), ++ opt_number }, ++ { "TCPRenoRecoveryFail", N_("%u classic Reno fast retransmits failed"), opt_number }, + }; + + struct tabtab { +@@ -222,7 +263,8 @@ + ent = bsearch(&key, tab->tab, tab->size / sizeof(struct entry), + sizeof(struct entry), cmpentries); + if (!ent) { /* try our best */ +- printf("%*s%s: %d\n", states[state].indent, "", title, val); ++ if (val) ++ printf("%*s%s: %d\n", states[state].indent, "", title, val); + return; + } + type = ent->type; +@@ -289,14 +331,17 @@ + return &dummytab; + } + +-void process_fd(FILE *f) ++int process_fd(FILE *f) + { +- char buf1[1024], buf2[1024]; ++ char buf1[2048], buf2[2048]; + char *sp, *np, *p; + while (fgets(buf1, sizeof buf1, f)) { + int endflag; + struct tabtab *tab; + ++ if (buf1[0] == '\n') // skip empty first line in 2.6 kernels ++ continue; ++ + if (!fgets(buf2, sizeof buf2, f)) + break; + sp = strchr(buf1, ':'); +@@ -330,11 +375,10 @@ + sp = p + 1; + } + } +- return; ++ return 0; + + formaterr: +- perror(_("error parsing /proc/net/snmp")); +- return; ++ return -1; + } + + +@@ -344,22 +388,25 @@ + + f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; + +- f = fopen("/proc/net/snmp", "r"); ++ f = proc_fopen("/proc/net/snmp"); + if (!f) { + perror(_("cannot open /proc/net/snmp")); + return; + } +- process_fd(f); ++ ++ if (process_fd(f) < 0) ++ fprintf(stderr, _("Problem while parsing /proc/net/snmp\n")); + + if (ferror(f)) + perror("/proc/net/snmp"); + + fclose(f); + +- f = fopen("/proc/net/netstat", "r"); ++ f = proc_fopen("/proc/net/netstat"); + + if (f) { +- process_fd(f); ++ if (process_fd(f) <0) ++ fprintf(stderr, _("Problem while parsing /proc/net/netstat\n")); + + if (ferror(f)) + perror("/proc/net/netstat"); +--- net-tools-1.60.orig/nameif.c ++++ net-tools-1.60/nameif.c +@@ -3,7 +3,7 @@ + * Writen 2000 by Andi Kleen. + * Subject to the Gnu Public License, version 2. + * TODO: make it support token ring etc. +- * $Id: nameif.c,v 1.1 2000/10/18 17:26:29 ak Exp $ ++ * $Id: nameif.c,v 1.4 2003/09/11 03:46:49 ak Exp $ + */ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE +@@ -117,7 +117,8 @@ + } + + struct change { +- struct change *next,**pprev; ++ struct change *next; ++ int found; + char ifname[IFNAMSIZ+1]; + unsigned char mac[6]; + }; +@@ -139,10 +140,7 @@ + ch->ifname, pos); + if (parsemac(p,ch->mac) < 0) + complain(_("cannot parse MAC `%s' at %s"), p, pos); +- if (clist) +- clist->pprev = &ch->next; + ch->next = clist; +- ch->pprev = &clist; + clist = ch; + return 0; + } +@@ -177,7 +175,7 @@ + if (*p == '\0') + continue; + n = strcspn(p, " \t"); +- if (n > IFNAMSIZ) ++ if (n > IFNAMSIZ-1) + complain(_("interface name too long at line %d"), line); + memcpy(ch->ifname, p, n); + ch->ifname[n] = 0; +@@ -200,7 +198,7 @@ + + void usage(void) + { +- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}")); ++ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n")); + exit(1); + } + +@@ -277,21 +275,21 @@ + ch = lookupmac(mac); + if (!ch) + continue; +- +- *ch->pprev = ch->next; ++ ++ ch->found = 1; + if (strcmp(p, ch->ifname)) { + if (setname(p, ch->ifname) < 0) + complain(_("cannot change name of %s to %s: %s"), + p, ch->ifname, strerror(errno)); + } +- free(ch); + } + fclose(ifh); + + while (clist) { + struct change *ch = clist; + clist = clist->next; +- warning(_("interface '%s' not found"), ch->ifname); ++ if (!ch->found) ++ warning(_("interface '%s' not found"), ch->ifname); + free(ch); + } + +--- net-tools-1.60.orig/mii-tool.c ++++ net-tools-1.60/mii-tool.c +@@ -29,8 +29,7 @@ + http://www.national.com/pf/DP/DP83840.html + */ + +-static char version[] = +-"mii-tool.c 1.9 2000/04/28 00:56:08 (David Hinds)\n"; ++static char Version[] = "$Id: mii-tool.c,v 1.9 2006/09/27 20:59:18 ecki Exp $\n(Author: David Hinds based on Donald Becker's mii-diag)"; + + #include <unistd.h> + #include <stdlib.h> +@@ -46,16 +45,19 @@ + #include <sys/socket.h> + #include <sys/ioctl.h> + #include <net/if.h> ++#include <linux/sockios.h> ++ + #ifndef __GLIBC__ + #include <linux/if_arp.h> + #include <linux/if_ether.h> + #endif + #include "mii.h" ++#include "version.h" + + #define MAX_ETH 8 /* Maximum # of interfaces */ + + /* Table of known MII's */ +-static struct { ++static const struct { + u_short id1, id2; + char *name; + } mii_id[] = { +@@ -74,6 +76,9 @@ + { 0x0181, 0x4410, "Quality QS6612" }, + { 0x0282, 0x1c50, "SMSC 83C180" }, + { 0x0300, 0xe540, "TDK 78Q2120" }, ++ { 0x0141, 0x0c20, "Yukon 88E1011" }, ++ { 0x0141, 0x0cc0, "Yukon-EC 88E1111" }, ++ { 0x0141, 0x0c90, "Yukon-2 88E1112" }, + }; + #define NMII (sizeof(mii_id)/sizeof(mii_id[0])) + +@@ -137,40 +142,48 @@ + + const struct { + char *name; +- u_short value; ++ u_short value[2]; + } media[] = { + /* The order through 100baseT4 matches bits in the BMSR */ +- { "10baseT-HD", MII_AN_10BASET_HD }, +- { "10baseT-FD", MII_AN_10BASET_FD }, +- { "100baseTx-HD", MII_AN_100BASETX_HD }, +- { "100baseTx-FD", MII_AN_100BASETX_FD }, +- { "100baseT4", MII_AN_100BASET4 }, +- { "100baseTx", MII_AN_100BASETX_FD | MII_AN_100BASETX_HD }, +- { "10baseT", MII_AN_10BASET_FD | MII_AN_10BASET_HD }, ++ { "10baseT-HD", {MII_AN_10BASET_HD} }, ++ { "10baseT-FD", {MII_AN_10BASET_FD} }, ++ { "100baseTx-HD", {MII_AN_100BASETX_HD} }, ++ { "100baseTx-FD", {MII_AN_100BASETX_FD} }, ++ { "100baseT4", {MII_AN_100BASET4} }, ++ { "100baseTx", {MII_AN_100BASETX_FD | MII_AN_100BASETX_HD} }, ++ { "10baseT", {MII_AN_10BASET_FD | MII_AN_10BASET_HD} }, ++ ++ { "1000baseT-HD", {0, MII_BMCR2_1000HALF} }, ++ { "1000baseT-FD", {0, MII_BMCR2_1000FULL} }, ++ { "1000baseT", {0, MII_BMCR2_1000HALF|MII_BMCR2_1000FULL} }, + }; + #define NMEDIA (sizeof(media)/sizeof(media[0])) + + /* Parse an argument list of media types */ +-static int parse_media(char *arg) ++static int parse_media(char *arg, unsigned *bmcr2) + { + int mask, i; + char *s; + mask = strtoul(arg, &s, 16); + if ((*arg != '\0') && (*s == '\0')) { + if ((mask & MII_AN_ABILITY_MASK) && +- !(mask & ~MII_AN_ABILITY_MASK)) +- return mask; ++ !(mask & ~MII_AN_ABILITY_MASK)) { ++ *bmcr2 = 0; ++ return mask; ++ } + goto failed; +- } else { +- mask = 0; +- s = strtok(arg, ", "); +- do { ++ } ++ mask = 0; ++ *bmcr2 = 0; ++ s = strtok(arg, ", "); ++ do { + for (i = 0; i < NMEDIA; i++) +- if (strcasecmp(media[i].name, s) == 0) break; ++ if (s && strcasecmp(media[i].name, s) == 0) break; + if (i == NMEDIA) goto failed; +- mask |= media[i].value; +- } while ((s = strtok(NULL, ", ")) != NULL); +- } ++ mask |= media[i].value[0]; ++ *bmcr2 |= media[i].value[1]; ++ } while ((s = strtok(NULL, ", ")) != NULL); ++ + return mask; + failed: + fprintf(stderr, "Invalid media specification '%s'.\n", arg); +@@ -179,11 +192,24 @@ + + /*--------------------------------------------------------------------*/ + +-static char *media_list(int mask, int best) ++static const char *media_list(unsigned mask, unsigned mask2, int best) + { + static char buf[100]; + int i; + *buf = '\0'; ++ ++ if (mask & MII_BMCR_SPEED1000) { ++ if (mask2 & MII_BMCR2_1000HALF) { ++ strcat(buf, " "); ++ strcat(buf, "1000baseT-HD"); ++ if (best) goto out; ++ } ++ if (mask2 & MII_BMCR2_1000FULL) { ++ strcat(buf, " "); ++ strcat(buf, "1000baseT-FD"); ++ if (best) goto out; ++ } ++ } + mask >>= 5; + for (i = 4; i >= 0; i--) { + if (mask & (1<<i)) { +@@ -192,6 +218,7 @@ + if (best) break; + } + } ++ out: + if (mask & (1<<5)) + strcat(buf, " flow-control"); + return buf; +@@ -201,15 +228,15 @@ + { + char buf[100]; + int i, mii_val[32]; +- int bmcr, bmsr, advert, lkpar; ++ unsigned bmcr, bmsr, advert, lkpar, bmcr2, lpa2; + + /* Some bits in the BMSR are latched, but we can't rely on being + the only reader, so only the current values are meaningful */ + mdio_read(sock, MII_BMSR); +- for (i = 0; i < ((verbose > 1) ? 32 : 8); i++) ++ for (i = 0; i < ((verbose > 1) ? 32 : MII_BASIC_MAX); i++) + mii_val[i] = mdio_read(sock, i); + +- if (mii_val[MII_BMCR] == 0xffff) { ++ if (mii_val[MII_BMCR] == 0xffff || mii_val[MII_BMSR] == 0x0000) { + fprintf(stderr, " No MII transceiver present!.\n"); + return -1; + } +@@ -217,6 +244,7 @@ + /* Descriptive rename. */ + bmcr = mii_val[MII_BMCR]; bmsr = mii_val[MII_BMSR]; + advert = mii_val[MII_ANAR]; lkpar = mii_val[MII_ANLPAR]; ++ bmcr2 = mii_val[MII_CTRL1000]; lpa2 = mii_val[MII_STAT1000]; + + sprintf(buf, "%s: ", ifr.ifr_name); + if (bmcr & MII_BMCR_AN_ENA) { +@@ -224,7 +252,7 @@ + if (advert & lkpar) { + strcat(buf, (lkpar & MII_AN_ACK) ? + "negotiated" : "no autonegotiation,"); +- strcat(buf, media_list(advert & lkpar, 1)); ++ strcat(buf, media_list(advert & lkpar, bmcr2 & lpa2>>2, 1)); + strcat(buf, ", "); + } else { + strcat(buf, "autonegotiation failed, "); +@@ -234,8 +262,10 @@ + } + } else { + sprintf(buf+strlen(buf), "%s Mbit, %s duplex, ", +- (bmcr & MII_BMCR_100MBIT) ? "100" : "10", +- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half"); ++ ((bmcr2 & (MII_BMCR2_1000HALF | MII_BMCR2_1000FULL)) & lpa2 >> 2) ++ ? "1000" ++ : (bmcr & MII_BMCR_100MBIT) ? "100" : "10", ++ (bmcr & MII_BMCR_DUPLEX) ? "full" : "half"); + } + strcat(buf, (bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link"); + +@@ -296,12 +326,13 @@ + if (bmsr & MII_BMSR_REMOTE_FAULT) + printf("remote fault, "); + printf((bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link"); +- printf("\n capabilities:%s", media_list(bmsr >> 6, 0)); +- printf("\n advertising: %s", media_list(advert, 0)); ++ printf("\n capabilities:%s", media_list(bmsr >> 6, bmcr2, 0)); ++ printf("\n advertising: %s", media_list(advert, lpa2 >> 2, 0)); + if (lkpar & MII_AN_ABILITY_MASK) +- printf("\n link partner:%s", media_list(lkpar, 0)); ++ printf("\n link partner:%s", media_list(lkpar, bmcr2, 0)); + printf("\n"); + } ++ fflush(stdout); + return 0; + } + +@@ -329,7 +360,7 @@ + printf("resetting the transceiver...\n"); + mdio_write(skfd, MII_BMCR, MII_BMCR_RESET); + } +- if (nway_advertise) { ++ if (nway_advertise > 0) { + mdio_write(skfd, MII_ANAR, nway_advertise | 1); + opt_restart = 1; + } +@@ -379,27 +410,38 @@ + /*--------------------------------------------------------------------*/ + + const char *usage = +-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...] +- -V, --version display version information +- -v, --verbose more verbose output +- -R, --reset reset MII to poweron state +- -r, --restart restart autonegotiation +- -w, --watch monitor for link status changes +- -l, --log with -w, write events to syslog +- -A, --advertise=media,... advertise only specified media +- -F, --force=media force specified media technology +-media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD, +- (to advertise both HD and FD) 100baseTx, 10baseT\n"; ++"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n" ++" -V, --version display version information\n" ++" -v, --verbose more verbose output\n" ++" -R, --reset reset MII to poweron state\n" ++" -r, --restart restart autonegotiation\n" ++" -w, --watch monitor for link status changes\n" ++" -l, --log with -w, write events to syslog\n" ++" -A, --advertise=media,... advertise only specified media\n" ++" -F, --force=media force specified media technology\n" ++"media: 1000baseTx-HD, 1000baseTx-FD,\n" ++" 100baseT4, 100baseTx-FD, 100baseTx-HD,\n" ++" 10baseT-FD, 10baseT-HD,\n" ++" (to advertise both HD and FD) 1000baseTx, 100baseTx, 10baseT\n"; ++ ++ ++static void version(void) ++{ ++ fprintf(stderr, "%s\n%s\n", Version, RELEASE); ++ exit(5); /* E_VERSION */ ++} ++ + + int main(int argc, char **argv) + { + int i, c, ret, errflag = 0; + char s[6]; ++ unsigned ctrl1000 = 0; + + while ((c = getopt_long(argc, argv, "A:F:p:lrRvVw?", longopts, 0)) != EOF) + switch (c) { +- case 'A': nway_advertise = parse_media(optarg); break; +- case 'F': fixed_speed = parse_media(optarg); break; ++ case 'A': nway_advertise = parse_media(optarg, &ctrl1000); break; ++ case 'F': fixed_speed = parse_media(optarg, &ctrl1000); break; + case 'p': override_phy = atoi(optarg); break; + case 'r': opt_restart++; break; + case 'R': opt_reset++; break; +@@ -411,6 +453,10 @@ + } + /* Check for a few inappropriate option combinations */ + if (opt_watch) verbose = 0; ++ ++ if ((nway_advertise < 0) || (fixed_speed < 0)) ++ return 2; ++ + if (errflag || (fixed_speed & (fixed_speed-1)) || + (fixed_speed && (opt_restart || nway_advertise))) { + fprintf(stderr, usage, argv[0]); +@@ -418,7 +464,7 @@ + } + + if (opt_version) +- printf(version); ++ version(); + + /* Open a basic socket. */ + if ((skfd = socket(AF_INET, SOCK_DGRAM,0)) < 0) { +@@ -426,6 +472,9 @@ + exit(-1); + } + ++ if (verbose > 1) ++ printf("Using SIOCGMIIPHY=0x%x\n", SIOCGMIIPHY); ++ + /* No remaining args means show all interfaces. */ + if (optind == argc) { + ret = 1; +--- net-tools-1.60.orig/debian/changelog ++++ net-tools-1.60/debian/changelog +@@ -0,0 +1,277 @@ ++net-tools (1.60-19) unstable; urgency=low ++ ++ * fixed netstat(8) (interfaceS) reported by Liu Xing. (Closes Bug #435690) ++ * fixed interface name truncation (Closes Bug #405521) ++ Thank you Csaba Szep. ++ * fixed pt error string (Closes: Bug#403033) ++ * fixed route samples (Closes: Bug#400844, #368697) Thanks Danny Rathjens. ++ * fixed ifconfig(8) see also section (Closes: Bug#365916) Dan Jacobs. ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sun, 02 Dec 2007 06:27:41 +0100 ++ ++net-tools (1.60-18) unstable; urgency=low ++ ++ * Thanks for the l10n NMU to Kenshi Muto ++ * fixed hostname compile problems ++ * better error handling and speedup for proc file reading ++ * improved mii-tool (more media types) ++ * fixed string length contraint in ipmaddr ++ * fixed ipx /proc/net (alternate naming) ++ * smaller fixed to netstat(8) (de) 2002-02-20 - still incomplete ++ * expanded arp(8) (en) 2007-12-01 ++ * added -4 and -6 to netstat(8) 02 October 2003 ++ * formatting fixed rarp(8)+slattach(8) [en] ++ * formatting fixed arp(8), rarp(8), ifconfig(8), hostname(1) [fr] ++ * fixed slattach -L to not require HW handshake anymore ++ * netstat -n: show v4inv6 mapped addressses as v4 ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sun, 02 Dec 2007 03:28:17 +0100 ++ ++net-tools (1.60-17.2) unstable; urgency=low ++ ++ * l10n NMU ++ * Set conflict against ja-trans which has obsolete Japanese ++ translations only for net-tools. (closes: #447327) ++ ++ -- Kenshi Muto <kmuto@debian.org> Sat, 20 Oct 2007 18:00:34 +0900 ++ ++net-tools (1.60-17.1) unstable; urgency=low ++ ++ * l10n NMU ++ * Updated net-tools.pot. ++ * Updated Japanese translation (closes: Bug#432338) ++ * Updated German translation (closes: #313808) ++ ++ -- Kenshi Muto <kmuto@debian.org> Thu, 11 Oct 2007 19:44:26 +0900 ++ ++net-tools (1.60-17) unstable; urgency=medium ++ ++ * arp.c: bus error on sparc64 with latest gcc fixed. (Closes: Bug#340384) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sun, 04 Dec 2005 05:47:05 +0100 ++ ++net-tools (1.60-16) unstable; urgency=low ++ ++ * spelling fix to slattach(8) (Closes: Bug#326124 (patch by A.Costa) ++ * inet.c: portability fix for 64bit. ++ * comment cleanups to aliagn with 1.65 cvs ++ * net-support.h, inet_sr.c, nstrcmp.c, arp.c, ether.h ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 24 Oct 2005 22:05:38 +0200 ++ ++net-tools (1.60-15) unstable; urgency=low ++ ++ * minor formating fix to ifconfig(8) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Thu, 30 Jun 2005 21:49:52 +0200 ++ ++net-tools (1.60-14) unstable; urgency=low ++ ++ * added iptables(8) in ifconfig(8) (thanks Toralf Förster) ++ * more usage updates in ifconfig.8 (used upstream HEAD=1.11) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Thu, 30 Jun 2005 20:51:18 +0200 ++ ++net-tools (1.60-13) unstable; urgency=low Thu, 30 Jun 2005 20:49:57 +0200 ++ ++ * X25 code compiles with 2.4 and 2.6 kernel headers (Closes: Bug#271678) ++ * IMPORTANT: make ifconfig show alias interfaces in 2.6 again. ++ * resort media type array to match kernel (Closes: Bug#199920) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Tue, 17 May 2005 01:28:51 +0200 ++ ++net-tools (1.60-12) unstable; urgency=low ++ ++ * make TR hw address type work for new kernel (Closes: Bug #79462, #203400) ++ * update-po uses msgmerge, new net-tools.pot (Closes: Bug: 271426) ++ * de-support dontpub option in arp -? und arp.8 (Closes: Bug #203396) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 16 May 2005 06:33:48 +0200 ++ ++net-tools (1.60-11) unstable; urgency=low ++ ++ * spelling fixes (Closes: Bug #305640, #305638, 305637) ++ * nameif.c avoid overflow by malicious kernel ++ * avoid overflow of the TX-OK Column (Closes: Bug #308922) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 14 May 2005 01:48:45 +0200 ++ ++net-tools (1.60-10) unstable; urgency=low ++ ++ * typo fix in po/de.po for german arp command output (Closes: Bug #176151) ++ * added diagnostics messages to mii-tool.8 (Closes: Bug #239229) ++ * new version of nstrcmp (Closes: Bug #226503) ++ * enable EUI64 support ++ * stadanrds version 3.6.1 (no changes) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Fri, 23 Apr 2004 00:57:20 +0200 ++ ++net-tools (1.60-9) unstable; urgency=medium ++ ++ * debian/changelog: fixed in last entry fixed bug from 197925 to 197924 ++ * include linux/sockios.h for SIOCGMIIPHY definition (new style) ++ which will fix MII reporting on 2.4 kernels. (Closes: Bug #133648) ++ NOTE: this will now require root to work, it will also not work on ++ older kernels. ++ * Rene Engelhard's patch to make AF X25 compile with 2.6 headers (Closes: Bug #223091) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 29 Dec 2003 13:42:20 +0100 ++ ++net-tools (1.60-8) unstable; urgency=medium ++ ++ * lib/interface.c: backed off change which skipped reading ioctl ++ interfacelist, if _proc interfacelist was ok, which does not work, ++ because alias interfaces are only in ioctl list available. It is ++ also falling back to the original lib/nstrcml.c because the ++ comparision if : is present does not work. ++ (Closes: bug #197924, #197582, #197269) ++ * bumped standards version (no changes) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 28 Jun 2003 02:56:38 +0200 ++ ++net-tools (1.60-7) unstable; urgency=low ++ ++ * interfaces.c: cvs version fixes Connectiva Bug #5711 (Closes: #149576) ++ from Eduardo Pereira Habkost ++ * netstat.c: cvs version adds support for tcp6,udp6,icmp6 protocols ++ * netstat.c: cvs version adds support for -4 or -6 cmd line shortcut ++ * netstat.c: cvs version adds fix for inode ++ signedness (Closes: #134600, #78932) ++ * ifconfig: removed -i from usage (Closes: #181528) ++ * make gcc 3.3 happy: added ull unsigned long long prefix to constant ++ * lib/ddp_gr.c+pathnames.h: first support for appletalk routing from cvs ++ * lib/eui64.c+hw.c+Makefile: forst support for new hw type from cvs ++ * lib/interface.c: cvs fix for column run-into (Closes: #161080) ++ * lib/irda.c,lib/ipx.c: cvs update ++ * lib/nstrcmp.c: new, faster version, fixes b-lookups for ifconfig ++ * hostanme.c: gcc 3.3 fix from cvs (not compiled in net-tools.deb) ++ * lib/interface: fixed memory globbering ++ (Closes: #135744, #149579, #185187) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Thu, 12 Jun 2003 05:44:38 +0200 ++ ++net-tools (1.60-6) unstable; urgency=low ++ ++ * took route.c from upstream cvs: allow -6 and -4 option ++ * took statistics.c from upstream cvs: more complete netstat -S ++ * took README from upstream cvs: fix COPYING file title and removed ++ the line (Closes: #102139) ++ * took arp.c from upstream: fixed name "PUB", better not found handling, ++ implicite proxy arp mac changed from '*' to '<from_interface>', ++ usage line made shorter ++ * added mii-tool in control file (Closes: #172473) ++ * fixed description of binary multiple in man page (Closes: #182487) ++ * fixed interpunctation in netstat(8) (Closes: #191660) ++ * fixed compile warning in inet_sr.c by removing empty default: label in ++ switch ++ ++ -- Bernd Eckenfels <ecki@debian.org> Wed, 28 May 2003 22:35:12 +0200 ++ ++net-tools (1.60-5) unstable; urgency=low ++ ++ * thanks Andrew for the 4.1 NMU ++ * NMU: Apply nameif patch from Matt Domsch. (Closes: #178209) ++ * Fix FTB bug (string concatenation in gcc 3.3) (Closes: #194995) ++ * Fix segfault in mii-tool by using cvs version (Closes: #139027) ++ * fixed plural of authors to make lintian happy (I JOIN YOU :) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Wed, 28 May 2003 22:04:14 +0200 ++ ++net-tools (1.60-4.1) unstable; urgency=low ++ ++ * NMU ++ * Apply nameif patch from Matt Domsch. (Closes: #178209) ++ ++ -- Andrew Suffield <asuffield@debian.org> Wed, 9 Apr 2003 21:44:09 +0100 ++ ++net-tools (1.60-4) unstable; urgency=medium ++ ++ * fixed (upstream) spurious newline in ifconfig ++ Thanks Jonathen, Closes: Bug #109379 ++ * fixed SI-Units printout in ifconfig (Closes: Bug #110629, #97029, #100167) ++ * this is done by including lib/interfaces.c from upstream cvs ++ * also added ifconfig man page from upstream cvs ++ * fixed (upstream) man page about netstat's --interface opt. (Closes: Bug#120475) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 24 Nov 2001 06:26:37 +0100 ++ ++net-tools (1.60-3) unstable; urgency=medium ++ ++ * fixed upstream error where counters in ifconfig/netstat -i are 0 ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 10 Nov 2001 18:12:13 +0100 ++ ++net-tools (1.60-2) unstable; urgency=low ++ ++ * Fixed the following bug: (Closes: #117837) ++ * inserted ifconfig.c from upstream cvs to do this ++ * bumped debian Standard 3.1.1 -> 3.5.6 and removed -g from linking ++ ++ -- Bernd Eckenfels <ecki@debian.org> Thu, 1 Nov 2001 02:51:33 +0100 ++ ++net-tools (1.60-1) unstable; urgency=low ++ ++ * New upstream ++ * Phil fixed the following Bugs upstream: (Closes: #91919, #93048, #90282) ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 16 Apr 2001 02:28:12 +0200 ++ ++net-tools (1.59-1) unstable; urgency=low ++ ++ * added Build Dependencies (closes bug: #89083) ++ * new upstream version ++ * removed dh_suidregister and a few comments from rules file ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sun, 18 Mar 2001 03:00:33 +0100 ++ ++net-tools (1.58-2) unstable; urgency=low ++ ++ * backported ifconfig change from 1.59 to avoid closing socket too early ++ on some systems (depending on the protocols installed). ++ Closes Bug: #85688, #85743 ++ ++ -- Bernd Eckenfels <ecki@debian.org> Tue, 13 Feb 2001 01:39:59 +0100 ++ ++net-tools (1.58-1) unstable; urgency=low ++ ++ * new upstream version ++ * removed local man pages for now (Closes: bug #83894) ++ * install nameif in /sbin ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 10 Feb 2001 21:50:30 +0100 ++ ++net-tools (1.57-2) unstable; urgency=high ++ ++ * rebuild, this is believed to closes: #75825 ++ ++ -- Bernd Eckenfels <ecki@debian.org> Sat, 30 Dec 2000 22:43:01 +0100 ++ ++net-tools (1.57-1) unstable; urgency=low ++ ++ * new debian maintainer (thanks Anthony for the Work!) ++ * new upstream version ++ ++ -- Bernd Eckenfels <ecki@debian.org> Mon, 14 Aug 2000 02:40:13 +0200 ++ ++net-tools (1.54-3) unstable; urgency=low ++ ++ * Argggh. Don't use that horrible dh_installmanpages hack. (Closes: ++ Bug#68925, Bug#68879) ++ ++ -- Anthony Towns <ajt@debian.org> Sun, 13 Aug 2000 00:12:05 +1000 ++ ++net-tools (1.54-2) unstable; urgency=low ++ ++ * Reapply slattach patch from netbase 3.16-3. ++ ++ -- Anthony Towns <ajt@debian.org> Thu, 10 Aug 2000 11:32:58 +1000 ++ ++net-tools (1.54-1) unstable; urgency=low ++ ++ * Split from netbase. ++ ++ -- Anthony Towns <ajt@debian.org> Mon, 17 Jul 2000 07:34:12 +1000 ++ ++Local variables: ++mode: debian-changelog ++End: +--- net-tools-1.60.orig/debian/copyright ++++ net-tools-1.60/debian/copyright +@@ -0,0 +1,18 @@ ++This debian package is maintained by Bernd Eckenfels <ecki@debian.org> since ++Mon, 14 Aug 2000 02:42:13 +0200. Debian Informations will be uploaded ++upstream, too. ++ ++This package was debianized by Anthony Towns <ajt@debian.org> on ++Mon, 17 Jul 2000 07:34:12 +1000. It was originally part of the netbase ++package. ++ ++It was downloaded from http://www.tazenda.demon.co.uk/phil/net-tools/ ++ ++Upstream Authors: Phil Blundell <philb@gnu.org>, ++ Bernd Eckenfels <net-tools@lina.inka.de> ++ ++Copyright: ++ ++Distributed under the terms of the GNU General Public License version 2, ++as published by the Free Software Foundation. On Debian systems you can ++find a copy of this license in /usr/share/common-licenses/GPL. +--- net-tools-1.60.orig/debian/dirs ++++ net-tools-1.60/debian/dirs +@@ -0,0 +1 @@ ++usr/sbin +--- net-tools-1.60.orig/debian/config.make ++++ net-tools-1.60/debian/config.make +@@ -0,0 +1,36 @@ ++I18N=1 ++HAVE_AFUNIX=1 ++HAVE_AFINET=1 ++HAVE_AFINET6=1 ++HAVE_AFIPX=1 ++HAVE_AFATALK=1 ++HAVE_AFAX25=1 ++HAVE_AFNETROM=1 ++HAVE_AFROSE=1 ++HAVE_AFX25=1 ++HAVE_AFECONET=1 ++HAVE_AFDECnet=1 ++HAVE_AFASH=1 ++HAVE_HWETHER=1 ++HAVE_HWARC=1 ++HAVE_HWSLIP=1 ++HAVE_HWPPP=1 ++HAVE_HWTUNNEL=1 ++HAVE_HWSTRIP=1 ++HAVE_HWTR=1 ++HAVE_HWAX25=1 ++HAVE_HWROSE=1 ++HAVE_HWNETROM=1 ++HAVE_HWX25=1 ++HAVE_HWFR=1 ++HAVE_HWSIT=1 ++HAVE_HWFDDI=1 ++HAVE_HWHIPPI=1 ++HAVE_HWASH=1 ++HAVE_HWHDLCLAPB=1 ++HAVE_HWIRDA=1 ++HAVE_HWEC=1 ++HAVE_EUI64=1 ++HAVE_FW_MASQUERADE=1 ++HAVE_IP_TOOLS=1 ++HAVE_MII=1 +--- net-tools-1.60.orig/debian/control ++++ net-tools-1.60/debian/control +@@ -0,0 +1,21 @@ ++Source: net-tools ++Section: net ++Priority: important ++Build-Depends: debhelper, gettext ++Maintainer: Bernd Eckenfels <ecki@debian.org> ++Standards-Version: 3.6.1 ++ ++Package: net-tools ++Architecture: any ++Depends: ${shlibs:Depends} ++Replaces: netbase (<< 4.00), ja-trans (<= 0.8-2) ++Conflicts: ja-trans (<= 0.8-2) ++Description: The NET-3 networking toolkit ++ This package includes the important tools for controlling the network ++ subsystem of the Linux kernel. This includes arp, ifconfig, netstat, ++ rarp, nameif and route. Additionally, this package contains utilities ++ relating to particular network hardware types (plipconfig, slattach, ++ mii-tool) and advanced aspects of IP configuration (iptunnel, ipmaddr). ++ . ++ In the upstream package 'hostname' and friends are included. Those are ++ not installed by this package, since there is a special "hostname*.deb". +--- net-tools-1.60.orig/debian/rules ++++ net-tools-1.60/debian/rules +@@ -0,0 +1,74 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. ++# GNU copyright 1997 to 1999 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This is the debhelper compatability version to use. ++export DH_COMPAT=1 ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ touch configure-stamp ++ ++build: configure-stamp build-stamp ++build-stamp: ++ dh_testdir ++ cp debian/config.h config.h ++ cp debian/config.make config.make ++ $(MAKE) ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp configure-stamp ++ -$(MAKE) clobber ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ $(MAKE) update BASEDIR=`pwd`/debian/tmp ++ mv debian/tmp/sbin/arp debian/tmp/usr/sbin/arp ++ # we don't want man pages for domainname and friends... (yet) ++ rm -rf debian/tmp/usr/share/man/*/man1/ debian/tmp/usr/share/man/man1/ ++ # we don't install local manpages until policy is clear ++ rm -rf debian/tmp/usr/share/man/*_*/ ++ ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++# dh_testversion ++ dh_testdir ++ dh_testroot ++# dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++ dh_installcron ++# dh_installmanpages ++ dh_installinfo ++# dh_undocumented ++ dh_installchangelogs ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++# dh_makeshlibs ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol -- -isp ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- net-tools-1.60.orig/debian/config.h ++++ net-tools-1.60/debian/config.h +@@ -0,0 +1,75 @@ ++/* ++* config.h Automatically generated configuration includefile ++* ++* NET-TOOLS A collection of programs that form the base set of the ++* NET-3 Networking Distribution for the LINUX operating ++* system. ++* ++* DO NOT EDIT DIRECTLY ++* ++*/ ++ ++/* ++ * ++ * Internationalization ++ * ++ * The net-tools package has currently been translated to French, ++ * German and Brazilian Portugese. Other translations are, of ++ * course, welcome. Answer `n' here if you have no support for ++ * internationalization on your system. ++ * ++ */ ++#define I18N 1 ++ ++/* ++ * ++ * Protocol Families. ++ * ++ */ ++#define HAVE_AFUNIX 1 ++#define HAVE_AFINET 1 ++#define HAVE_AFINET6 1 ++#define HAVE_AFIPX 1 ++#define HAVE_AFATALK 1 ++#define HAVE_AFAX25 1 ++#define HAVE_AFNETROM 1 ++#define HAVE_AFROSE 1 ++#define HAVE_AFX25 1 ++#define HAVE_AFECONET 1 ++#define HAVE_AFDECnet 1 ++#define HAVE_AFASH 1 ++ ++/* ++ * ++ * Device Hardware types. ++ * ++ */ ++#define HAVE_HWETHER 1 ++#define HAVE_HWARC 1 ++#define HAVE_HWSLIP 1 ++#define HAVE_HWPPP 1 ++#define HAVE_HWTUNNEL 1 ++#define HAVE_HWSTRIP 1 ++#define HAVE_HWTR 1 ++#define HAVE_HWAX25 1 ++#define HAVE_HWROSE 1 ++#define HAVE_HWNETROM 1 ++#define HAVE_HWX25 1 ++#define HAVE_HWFR 1 ++#define HAVE_HWSIT 1 ++#define HAVE_HWFDDI 1 ++#define HAVE_HWHIPPI 1 ++#define HAVE_HWASH 1 ++#define HAVE_HWHDLCLAPB 1 ++#define HAVE_HWIRDA 1 ++#define HAVE_HWEC 1 ++#define HAVE_HWEUI64 1 ++ ++/* ++ * ++ * Other Features. ++ * ++ */ ++#define HAVE_FW_MASQUERADE 1 ++#define HAVE_IP_TOOLS 1 ++#define HAVE_MII 1 +--- net-tools-1.60.orig/debian/docs ++++ net-tools-1.60/debian/docs +@@ -0,0 +1,3 @@ ++README ++README.ipv6 ++TODO diff --git a/source/a/util-linux-ng/scsi_ioctl.h b/source/a/util-linux-ng/scsi_ioctl.h new file mode 100644 index 000000000..edb952538 --- /dev/null +++ b/source/a/util-linux-ng/scsi_ioctl.h @@ -0,0 +1,48 @@ +#ifndef _SCSI_IOCTL_H +#define _SCSI_IOCTL_H + +#define SCSI_IOCTL_SEND_COMMAND 1 +#define SCSI_IOCTL_TEST_UNIT_READY 2 +#define SCSI_IOCTL_BENCHMARK_COMMAND 3 +#define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */ +#define SCSI_IOCTL_START_UNIT 5 +#define SCSI_IOCTL_STOP_UNIT 6 +/* The door lock/unlock constants are compatible with Sun constants for + the cdrom */ +#define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */ +#define SCSI_IOCTL_DOORUNLOCK 0x5381 /* unlock the mechanism */ + +#define SCSI_REMOVAL_PREVENT 1 +#define SCSI_REMOVAL_ALLOW 0 + +#ifdef __KERNEL__ + +struct scsi_device; + +/* + * Structures used for scsi_ioctl et al. + */ + +typedef struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; +} Scsi_Ioctl_Command; + +typedef struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; +} Scsi_Idlun; + +/* Fibre Channel WWN, port_id struct */ +typedef struct scsi_fctargaddress { + __u32 host_port_id; + unsigned char host_wwn[8]; // include NULL term. +} Scsi_FCTargAddress; + +extern int scsi_ioctl(struct scsi_device *, int, void __user *); +extern int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd, + void __user *arg, struct file *filp); + +#endif /* __KERNEL__ */ +#endif /* _SCSI_IOCTL_H */ diff --git a/source/a/util-linux-ng/setserial-rc.serial.diff b/source/a/util-linux-ng/setserial-rc.serial.diff new file mode 100644 index 000000000..248d253bd --- /dev/null +++ b/source/a/util-linux-ng/setserial-rc.serial.diff @@ -0,0 +1,49 @@ +--- ./rc.serial.orig Thu Jan 27 07:47:30 2000 ++++ ./rc.serial Sun May 13 13:27:57 2001 +@@ -14,8 +14,6 @@ + # XXXX For now, the autosave feature doesn't work if you are + # using the multiport feature; it doesn't save the multiport configuration + # (for now). Autosave also doesn't work for the hayes devices. +-# Will fix later... +-# + # + + RCLOCKFILE=/var/lock/subsys/serial +@@ -87,7 +85,7 @@ + mv /etc/.serial.conf.new /etc/serial.conf + echo "done." + fi +- if test -n $MODULE ; then ++ if test -n "$MODULE" ; then + module=`grep $MODULE_REGEXP /proc/modules | awk '{print $1}'` + if test -z "$module" ; then + echo "The $DRIVER_NAME driver is not loaded." +@@ -108,22 +106,22 @@ + # If not stop, it must be a start.... + # + +-if test -n $MODULE -a "$LOADED" != "yes" ; then +- if insmod -fm $MODULE $DRIVER_ARG \ +- > /tmp/$DRIVER.map 2> /tmp/$DRIVER.$$; then :; ++if test -n "$MODULE" -a "$LOADED" != "yes" ; then ++ if insmod -f $MODULE $DRIVER_ARG ; then ++ true + else + echo "Couldn't load $DRIVER_NAME driver." +- echo "See error logs in /tmp/$DRIVER.$$" + exit 1 + fi +- /bin/rm -f /tmp/$DRIVER.$$ + fi + + if test -f /etc/serial.conf ; then + if test -n ${SETSERIAL} ; then + grep -v ^# < /etc/serial.conf | while read device args + do +- ${SETSERIAL} -z $device $args ++ if [ ! "$device" = "" -a ! "$args" = "" ]; then ++ ${SETSERIAL} -z $device $args ++ fi + done + fi + else diff --git a/source/a/util-linux-ng/slack-desc b/source/a/util-linux-ng/slack-desc new file mode 100644 index 000000000..e149d7b84 --- /dev/null +++ b/source/a/util-linux-ng/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------| +util-linux-ng: util-linux-ng (a huge collection of essential utilities) +util-linux-ng: +util-linux-ng: The util-linux package is a huge collection of random utilities +util-linux-ng: that are essential to run a Linux system. This is a fork of +util-linux-ng: the original util-linux, based on version 2.13-pre7. +util-linux-ng: +util-linux-ng: http://kernel.org/~kzak/util-linux-ng/ +util-linux-ng: +util-linux-ng: +util-linux-ng: +util-linux-ng: diff --git a/source/a/util-linux-ng/util-linux-ng.SlackBuild b/source/a/util-linux-ng/util-linux-ng.SlackBuild new file mode 100755 index 000000000..2c2ea55e5 --- /dev/null +++ b/source/a/util-linux-ng/util-linux-ng.SlackBuild @@ -0,0 +1,284 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Slackware build script for util-linux-ng + +VERSION=${VERSION:-2.14.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +ADJTIMEXVERS=1.23 +SETSERIALVERS=2.17 +ZIPTOOLVERS=1.4.0 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-util-linux-ng +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf util-linux-ng-$VERSION +tar xvf $CWD/util-linux-ng-$VERSION.tar.bz2 || exit 1 +cd util-linux-ng-$VERSION || exit 1 +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Disabled login and init stuff from being built, as this is provided by +# shadow and sysvinit +# +# /sbin/elvtune is not built, as configure says it only works with 2.2 and +# 2.4 kernels + +# This block is handled near the bottom of the script in symlink creation +# /bin/setterm -- now located in /usr/bin/setterm +# /bin/getopt -- same as setterm +# /usr/bin/readprofile -- now in /usr/sbin +# /usr/bin/tunelp -- same as readprofile + +# Changing the fdisk -l output (this was done prior to util-linux-ng) broke +# our installation scripts, so we have changed the name of partition type +# 83 back to "Linux swap": +zcat $CWD/util-linux-ng.fdisk-no-solaris.diff.gz | patch -p1 || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/util-linux-ng-$VERSION \ + --enable-arch \ + --enable-agetty \ + --disable-init \ + --enable-kill \ + --enable-rdev \ + --disable-last \ + --enable-mesg \ + --enable-raw \ + --enable-rename \ + --enable-reset \ + --disable-login-utils \ + --enable-schedutils \ + --enable-wall \ + --enable-write \ + --enable-use-tty-group \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux \ + || exit 1 + +make || exit 1 +make install DESTDIR=$PKG + +# Moving things around that have been in the same place +# for 15 years is, IMHO, not a wise idea AT ALL. +# If this had to be moved, some place out of /usr might +# have shown a grain of insight... +if [ -r $PKG/usr/sbin/fdformat ]; then + mkdir -p $PKG/usr/bin + mv $PKG/usr/sbin/fdformat $PKG/usr/bin/fdformat + # Now since stuff will start looking in this new place, + # we have no choice but to link these: + ( cd $PKG/usr/sbin + ln -sf ../bin/fdformat . + ) +fi + +# Install (probably obsolete) rdev manually: +cat ./sys-utils/rdev > $PKG/sbin/rdev +chown root:root $PKG/sbin/rdev +chmod 755 $PKG/sbin/rdev +#cat ./sys-utils/rdev.8 | gzip -9c > $PKG/usr/man/man8/rdev.8.gz + +# Build ziptool +cd $TMP || exit 1 +rm -rf ziptool-$ZIPTOOLVERS +tar xvf $CWD/ziptool-$ZIPTOOLVERS.tar.bz2 || exit 1 +cd ziptool-$ZIPTOOLVERS || exit 1 +zcat $CWD/ziptool-fix_build.patch.gz | patch -p1 || exit 1 +mkdir scsi +cat $CWD/scsi_ioctl.h > scsi/scsi_ioctl.h +chown -R root:root . +make || exit 1 +strip ziptool +cat ziptool > $PKG/sbin/ziptool +chmod 0755 $PKG/sbin/ziptool +mkdir -p $PKG/usr/doc/ziptool-$ZIPTOOLVERS +cp -a README $PKG/usr/doc/ziptool-$ZIPTOOLVERS +chmod 644 $PKG/usr/doc/ziptool-$ZIPTOOLVERS/* +cat ziptool.1.gz > $PKG/usr/man/man1/ziptool.1.gz + +# Build bsdstrings +cd $TMP || exit 1 +rm -rf bsdstrings +tar xvf $CWD/bsdstrings.tar.gz || exit 1 +cd bsdstrings || exit 1 +make || exit 1 +strip strings +cat strings > $PKG/usr/bin/strings +chmod 0755 $PKG/usr/bin/strings +cat strings.1 | gzip -9c > $PKG/usr/man/man1/strings.1.gz + +# Add just the hostname utilities from net-tools, so that anyone +# installing just the A series will not have a hostname (null): +cd $TMP || exit 1 +rm -rf net-tools-1.60 +tar xvf $CWD/net-tools-1.60.tar.bz2 +cd net-tools-1.60 +zcat $CWD/net-tools_1.60-19.diff.gz | patch -p1 || exit +zcat $CWD/net-tools.diff.gz | patch -p1 || exit +make +make hostname +strip hostname +cat hostname > $PKG/bin/hostname +chmod 755 $PKG/bin/hostname +chown root:root $PKG/bin/hostname +( cd $PKG/bin + ln -sf hostname dnsdomainname + ln -sf hostname nisdomainname + ln -sf hostname ypdomainname + ln -sf hostname domainname +) +cd man/en_US +for page in hostname.1 dnsdomainname.1 nisdomainname.1 ypdomainname.1 \ +domainname.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done + +# Build adjtimex +cd $TMP || exit 1 +rm -rf adjtimex-$ADJTIMEXVERS +tar xvf $CWD/adjtimex_${ADJTIMEXVERS}.orig.tar.gz || exit 1 +cd adjtimex-$ADJTIMEXVERS || exit 1 +chown -R root:root . +zcat $CWD/adjtimex_1.23-1.diff.gz | patch -p1 || exit 1 +CFLAGS=-O2 ./configure --prefix=/usr || exit 1 +make || exit 1 +strip adjtimex +cat adjtimex > $PKG/sbin/adjtimex +chmod 0755 $PKG/sbin/adjtimex +cat adjtimex.8 | gzip -9c > $PKG/usr/man/man8/adjtimex.8.gz +mkdir -p $PKG/usr/doc/adjtimex-$ADJTIMEXVERS +cp -a COPYING COPYRIGHT README README.ru adjtimex.lsm \ + $PKG/usr/doc/adjtimex-$ADJTIMEXVERS + +# Build setserial +cd $TMP || exit 1 +rm -rf setserial-$SETSERIALVERS +tar xvf $CWD/setserial-$SETSERIALVERS.tar.gz || exit 1 +cd setserial-$SETSERIALVERS || exit 1 +chown -R root:root . +zcat $CWD/setserial-rc.serial.diff.gz | patch -E -p1 --verbose || exit 1 +# The original config.{guess,sub} do not work on x86_64 +cp -p /usr/share/libtool/config.{guess,sub} . +./configure --prefix=/usr || exit 1 +make || exit 1 +strip setserial +cat setserial > $PKG/sbin/setserial +chmod 0755 $PKG/sbin/setserial +mkdir -p $PKG/etc/rc.d +cat rc.serial > $PKG/etc/rc.d/rc.serial.new +cat serial.conf > $PKG/etc/serial.conf.new +cat setserial.8 | gzip -9c > $PKG/usr/man/man8/setserial.8.gz + +# These have always traditionally been available before /usr +# might be mounted: +( cd $PKG/usr/bin + mv getopt setterm $PKG/bin + cd $PKG/usr/bin + ln -s ../../bin/getopt . + ln -s ../../bin/setterm . +) + +cd $TMP/util-linux-ng-$VERSION # Go back home :) + +# Now let's add some important symlinks :) +( cd $PKG/sbin + ln -s ../bin/mount . + ln -s ../bin/umount . + ln -s ziptool jaztool + ln -s hwclock clock + cd $PKG/usr/sbin + ln -s ../../sbin/cfdisk . + ln -s ../../sbin/ctrlaltdel . + ln -s ../../sbin/sfdisk . + cd $PKG/usr/bin + ln -s ../sbin/readprofile . + ln -s ../sbin/tunelp . + ln -s ../../bin/more . + ln -s ../../sbin/raw . + cd $PKG/usr/man/man1 + ln -s ziptool.1 jaztool.1 + cd $PKG/usr/man/man8 + ln -s hwclock.8 clock.8 +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info page and remove dir file +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/util-linux-ng-$VERSION +cp ABOUT-NLS AUTHORS COPYING DEPRECATED NEWS README* TODO docs/* \ + $PKG/usr/doc/util-linux-ng-$VERSION + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/util-linux-ng-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff b/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff new file mode 100644 index 000000000..a3aa100e9 --- /dev/null +++ b/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff @@ -0,0 +1,11 @@ +--- ./fdisk/i386_sys_types.c.orig 2007-04-25 07:43:38.000000000 -0500 ++++ ./fdisk/i386_sys_types.c 2008-03-31 14:53:52.000000000 -0500 +@@ -53,7 +53,7 @@ + {0x75, N_("PC/IX")}, + {0x80, N_("Old Minix")}, /* Minix 1.4a and earlier */ + {0x81, N_("Minix / old Linux")},/* Minix 1.4b and later */ +- {0x82, N_("Linux swap / Solaris")}, ++ {0x82, N_("Linux swap")}, + {0x83, N_("Linux")}, + {0x84, N_("OS/2 hidden C: drive")}, + {0x85, N_("Linux extended")}, diff --git a/source/a/util-linux-ng/ziptool-fix_build.patch b/source/a/util-linux-ng/ziptool-fix_build.patch new file mode 100644 index 000000000..a2d3d5157 --- /dev/null +++ b/source/a/util-linux-ng/ziptool-fix_build.patch @@ -0,0 +1,24 @@ +diff -Nur ziptool-1.4.0.orig/Makefile ziptool-1.4.0/Makefile +--- ziptool-1.4.0.orig/Makefile 2002-08-23 17:13:48.000000000 -0500 ++++ ziptool-1.4.0/Makefile 2009-02-09 16:33:12.913637302 -0600 +@@ -5,10 +5,6 @@ + # + CFLAGS = -O2 -g -Wall + +-# Path to linux kernel sources. +-# +-LINUX_SRC_DIR = /usr/src/linux +- + # Installation directories + # + INSTALL_BIN_DIR = /usr/bin +@@ -30,7 +26,7 @@ + cd $(INSTALL_MAN_DIR)/man1; ln -sf ziptool.1.gz jaztool.1.gz + + ziptool: ziptool.c +- cc $(CFLAGS) -I$(LINUX_SRC_DIR)/include -o ziptool ziptool.c ++ cc $(CFLAGS) -I. -o ziptool ziptool.c + + jaztool: ziptool.c +- cc $(CFLAGS) -I$(LINUX_SRC_DIR)/include -o jaztool ziptool.c ++ cc $(CFLAGS) -I. -o jaztool ziptool.c diff --git a/source/a/which/slack-desc b/source/a/which/slack-desc new file mode 100644 index 000000000..75085fe10 --- /dev/null +++ b/source/a/which/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +which: which (shows the full path to shell commands) +which: +which: GNU 'which' takes one or more arguments. For each of its arguments it +which: prints to stdout the full path of the executables that would have been +which: executed when this argument had been entered at the shell prompt. It +which: does this by searching for an executable or script in the directories +which: listed in the environment variable PATH using the same algorithm as +which: bash(1). 'Which' is a built-in function in many shells. +which: +which: The GNU version of which was written by Carlo Wood. +which: diff --git a/source/a/which/which.SlackBuild b/source/a/which/which.SlackBuild new file mode 100755 index 000000000..f86fd1da8 --- /dev/null +++ b/source/a/which/which.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.20 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-which + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf which-$VERSION +tar xvf $CWD/which-$VERSION.tar.gz || exit 1 +cd which-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS=-O2 \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir $PKG/bin +mv $PKG/usr/bin/which $PKG/bin +( cd $PKG/usr/bin ; ln -sf ../../bin/which which ) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/which-$VERSION +cp -a \ + AUTHORS COPYING EXAMPLES NEWS README README.alias \ + $PKG/usr/doc/which-$VERSION + +# Strip everything for good measure: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/which-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/xfsprogs/slack-desc b/source/a/xfsprogs/slack-desc new file mode 100644 index 000000000..25f37656e --- /dev/null +++ b/source/a/xfsprogs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfsprogs: xfsprogs (tools to use the XFS filesystem) +xfsprogs: +xfsprogs: XFS is a high performance journaling filesystem which originated +xfsprogs: on the SGI IRIX platform. It is completely multi-threaded, can +xfsprogs: support large files and large filesystems, extended attributes, +xfsprogs: variable block sizes, is extent based, and makes extensive use of +xfsprogs: Btrees (directories, extents, free space) to aid both performance +xfsprogs: and scalability. +xfsprogs: +xfsprogs: +xfsprogs: diff --git a/source/a/xfsprogs/xfsprogs.SlackBuild b/source/a/xfsprogs/xfsprogs.SlackBuild new file mode 100755 index 000000000..7ef1c07c6 --- /dev/null +++ b/source/a/xfsprogs/xfsprogs.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.0.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xfsprogs + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf xfsprogs-$VERSION +tar xvf $CWD/xfsprogs-$VERSION.tar.?z* || exit 1 +cd xfsprogs-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Make sure you have the same version of autoconf as the +# developers did... ;-) +autoconf + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX} \ + --sbindir=/sbin \ + --bindir=/usr/sbin \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --docdir=/usr/doc/xfsprogs-$VERSION \ + --enable-shared=yes \ + --enable-gettext=yes \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DIST_ROOT=$PKG +make install-dev DIST_ROOT=$PKG + +mv $PKG/usr/share/doc $PKG/usr +mv $PKG/usr/doc/xfsprogs $PKG/usr/doc/xfsprogs-$VERSION +#It would be nice to keep the same timestamps that the files have in the source: +cp -a README doc/COPYING doc/CREDITS doc/PORTING \ + $PKG/usr/doc/xfsprogs-$VERSION + +# Remove bogus files: +rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/*.so \ + $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# Make /usr/lib/libhandle.so a symlink to /lib/libhandle.so.1: +if [ -f $PKG/lib${LIBDIRSUFFIX}/libhandle.so.1 ]; then + ( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libhandle.so + ln -sf /lib${LIBDIRSUFFIX}/libhandle.so.1 libhandle.so + ) +else + exit 1 + # and fix your script! ;-) +fi +# Fix shared library perms: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* + +# Strip libraries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xfsprogs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/xz/slack-desc b/source/a/xz/slack-desc new file mode 100644 index 000000000..af549b358 --- /dev/null +++ b/source/a/xz/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xz: xz (compression utility based on the LZMA algorithm) +xz: +xz: LZMA is a general purporse compression algorithm designed by Igor +xz: Pavlov as part of 7-Zip. It provides high compression ratio while +xz: keeping the decompression speed fast. XZ Utils are an attempt to make +xz: LZMA compression easy to use on free (as in freedom) operating +xz: systems. +xz: +xz: The people most responsible for xz are Igor Pavlov, Ville Koskinen, +xz: and Lasse Collin. For more info: http://tukaani.org/xz/ +xz: diff --git a/source/a/xz/xz.SlackBuild b/source/a/xz/xz.SlackBuild new file mode 100755 index 000000000..240334178 --- /dev/null +++ b/source/a/xz/xz.SlackBuild @@ -0,0 +1,137 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. + +PRGNAM=xz +VERSION=${VERSION:-4.999.8beta} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + LIBDIRSUFFIX="" + ;; + arm) SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" + ;; + armel) SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" + ;; + +esac + +CWD=$(pwd) +# Temporary build location. This should *NOT* be a directory +# path a non-root user could create later... +TMP=${TMP:-/xz-tmp-$(mcookie)} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-shared \ + --disable-static \ + --disable-rpath \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make || exit 1 +make DESTDIR=$PKG install + +# It might be advisable to have the libraries in /lib${LIBDIRSUFFIX}: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +mv $PKG/usr/lib${LIBDIRSUFFIX}/liblzma.so.* $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f liblzma.so + ln -sf ../../lib${LIBDIRSUFFIX}/liblzma.so.? liblzma.so +) + +# At least the xz binary should also be in /bin: +mkdir -p $PKG/bin +mv $PKG/usr/bin/xz $PKG/bin +( cd $PKG/usr/bin + ln -sf ../../bin/xz . +) + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* ChangeLog INSTALL NEWS README* THANKS doc/* \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz + diff --git a/source/a/zoo/slack-desc b/source/a/zoo/slack-desc new file mode 100644 index 000000000..f517e17a2 --- /dev/null +++ b/source/a/zoo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +zoo: zoo (archiving and compressing utility) +zoo: +zoo: Zoo is used to create and maintain collections of files in compressed +zoo: form. It uses a Lempel-Ziv compression algorithm that gives space +zoo: savings in the range of 20% to 80% depending on the type of file data. +zoo: Zoo can store and selectively extract multiple generations of the same +zoo: file. Data can be recovered from damaged archives by skipping the +zoo: damaged portion and locating undamaged data with the help of fiz(1). +zoo: +zoo: Zoo was written by Rahul Dhesi. +zoo: diff --git a/source/a/zoo/zoo.SlackBuild b/source/a/zoo/zoo.SlackBuild new file mode 100755 index 000000000..c667b076e --- /dev/null +++ b/source/a/zoo/zoo.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.10 +DEBPATCH=18 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-zoo + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf zoo-$VERSION +tar xzvf $CWD/zoo-$VERSION.tar.gz +cd zoo-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/zoo_${VERSION}-${DEBPATCH}.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 +for diff in debian/patches/*.dpatch ; do + cat $diff | patch -p1 --verbose --backup --suffix=.orig || exit 1 +done +make linux || exit 1 +mkdir -p $PKG/usr/bin +cat fiz > $PKG/usr/bin/fiz +cat zoo > $PKG/usr/bin/zoo +chmod 755 $PKG/usr/bin/* +mkdir -p $PKG/usr/man/man1 +for page in fiz.1 zoo.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +mkdir -p $PKG/usr/doc/zoo-${VERSION} +cp -a \ + Copyright Install \ + $PKG/usr/doc/zoo-${VERSION} + +# Strip everything for good measure: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/zoo-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/zoo/zoo_2.10-18.diff b/source/a/zoo/zoo_2.10-18.diff new file mode 100644 index 000000000..b0c741347 --- /dev/null +++ b/source/a/zoo/zoo_2.10-18.diff @@ -0,0 +1,1285 @@ +--- zoo-2.10.orig/debian/patches/01_old_fixes.dpatch ++++ zoo-2.10/debian/patches/01_old_fixes.dpatch +@@ -0,0 +1,597 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 01_old_fixes.dpatch by Jose Carlos Medeiros <debian@psabs.com.br> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Old fixes, that were made before this package has changed to use dpatch. ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10~/ar.h zoo-2.10/ar.h ++--- zoo-2.10~/ar.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/ar.h 2005-11-16 17:28:23.308950960 -0200 ++@@ -7,6 +7,7 @@ ++ ***********************************************************/ ++ ++ #include <stdio.h> +++#include <sys/types.h> ++ ++ #ifdef ANSI_HDRS ++ # include <limits.h> ++@@ -15,9 +16,11 @@ ++ /* uchar should be 8 bits or more */ ++ /* typedef unsigned char uchar; -- already in zoo.h */ ++ +++#ifndef _SYS_TYPES_H ++ typedef unsigned int uint; /* 16 bits or more */ ++ typedef unsigned short ushort; /* 16 bits or more */ ++ typedef unsigned long ulong; /* 32 bits or more */ +++#endif ++ ++ /* T_UINT16 must be #defined in options.h to be ++ a 16-bit unsigned integer type */ ++diff -urNad zoo-2.10~/basename.c zoo-2.10/basename.c ++--- zoo-2.10~/basename.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/basename.c 2005-11-16 17:28:23.308950960 -0200 ++@@ -18,7 +18,7 @@ ++ ++ /* This function strips device/directory information from ++ a pathname and returns just the plain filename */ ++-void basename (pathname, fname) +++void zoo_basename (pathname, fname) ++ char *pathname; ++ char fname[]; ++ { ++diff -urNad zoo-2.10~/fiz.1 zoo-2.10/fiz.1 ++--- zoo-2.10~/fiz.1 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/fiz.1 2005-11-16 17:28:23.309950808 -0200 ++@@ -5,7 +5,7 @@ ++ .\" ++ .TH FIZ 1 "Jan 31, 1988" ++ .SH NAME ++-fiz \- analyze damaged zoo archive for data revovery +++fiz \- analyze damaged zoo archive for data recovery ++ .SH SYNOPSIS ++ .I fiz ++ .RB archive[ .zoo ] ++diff -urNad zoo-2.10~/linux.c zoo-2.10/linux.c ++--- zoo-2.10~/linux.c 1969-12-31 21:00:00.000000000 -0300 +++++ zoo-2.10/linux.c 2005-11-16 17:28:23.310950656 -0200 ++@@ -0,0 +1,73 @@ +++/* machine.c for Linux. */ +++ +++/* Basically code stolen from bsd.c, and adjusted for Linux. */ +++ +++#include <sys/stat.h> +++#include <sys/time.h> +++#include <unistd.h> +++ +++/* Function isadir() returns 1 if the supplied handle is a directory, +++ * else it returns 0. */ +++ +++int isadir (ZOOFILE f) +++{ +++ struct stat buffer; /* buffer to hold file information */ +++ +++ if (fstat (fileno (f), &buffer) == -1) +++ return (0); /* inaccessible -- assume not dir */ +++ else +++ { +++ if (buffer.st_mode & S_IFDIR) +++ return (1); +++ else +++ return (0); +++ } +++} +++ +++ +++/* Standard UNIX-compatible time routines */ +++#include "nixtime.i" +++ +++/* Standard UNIX-specific file attribute routines */ +++#include "nixmode.i" +++ +++/* Function gettz() returns the offset from GMT in seconds */ +++long gettz() +++{ +++#define SEC_IN_DAY (24L * 60L * 60L) +++#define INV_VALUE (SEC_IN_DAY + 1L) +++ +++ static long retval = INV_VALUE; /* cache, init to impossible value */ +++ struct timeval tp; +++ struct timezone tzp; +++ +++ if (retval != INV_VALUE) /* if have cached value, return it */ +++ return retval; +++ +++ gettimeofday (&tp, &tzp); +++ +++ retval = tzp.tz_minuteswest * 60 - tzp.tz_dsttime * 3600L; +++ return retval; +++} +++ +++/* Function fixfname() converts the supplied filename to a syntax +++ * legal for the host system. It is used during extraction. +++ * Undocumented */ +++ +++char *fixfname(char *fname) +++{ +++ return fname; /* default is no-op */ +++} +++ +++/* Function zootrunc() truncates the file passed to it. +++ * Undocumented. */ +++ +++int zootrunc(FILE *f) +++{ +++ long seekpos; +++ int fd = fileno(f); +++ +++ seekpos = lseek(fd, 0L, SEEK_CUR); +++ if (seekpos >= 0) +++ return ftruncate(fd, seekpos); +++} ++diff -urNad zoo-2.10~/machine.c zoo-2.10/machine.c ++--- zoo-2.10~/machine.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/machine.c 2005-11-16 17:28:23.310950656 -0200 ++@@ -48,6 +48,10 @@ ++ /* PART 2. FOR EACH SPECIFIC SYSTEM, INCLUDE A C FILE HERE. */ ++ /***********************************************************************/ ++ +++#ifdef LINUX +++#include "linux.c" +++#endif +++ ++ #ifdef SYS_V ++ #include "sysv.c" ++ #endif ++diff -urNad zoo-2.10~/makefile zoo-2.10/makefile ++--- zoo-2.10~/makefile 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/makefile 2005-11-16 17:28:23.311950504 -0200 ++@@ -23,7 +23,7 @@ ++ MODEL = ++ EXTRA = -DBIG_MEM -DNDEBUG ++ LINTFLAGS = -DLINT ++-OPTIM = -O +++OPTIM = -O -Wall ++ DESTDIR = /usr/local/bin ++ ++ #List of all object files created for Zoo ++@@ -53,6 +53,7 @@ ++ @echo "ultrix: ULTRIX 4.1" ++ @echo "convex: Convex C200 series" ++ @echo "sysv: System V Release 2 or 3; or SCO Xenix" +++ @echo "linux: Linux" ++ @echo "scodos: Cross-compiler under SCO Xenix/UNIX for MS-DOS" ++ @echo "xenix286: Older Xenix/286 (not tested)" ++ @echo "xenix68k: Xenix/68000 (not tested)" ++@@ -94,6 +95,10 @@ ++ bsd: ++ $(MAKE) CFLAGS="-c $(OPTIM) -DBSD4_3" $(TARGETS) ++ +++# Linux +++linux: +++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DANSI_HDRS" $(TARGETS) +++ ++ # ULTRIX 4.1 ++ ultrix: ++ $(MAKE) CFLAGS="-c $(OPTIM) -DULTRIX" $(TARGETS) ++@@ -235,7 +240,11 @@ ++ parse.o: zoofns.h zooio.h ++ portable.o: /usr/include/stdio.h assert.h debug.h machine.h options.h ++ portable.o: portable.h various.h zoo.h zoofns.h zooio.h ++-prterror.o: /usr/include/stdio.h /usr/include/varargs.h options.h various.h +++ +++# I deleted varags.h dependancy from prterror.o since that is a +++# dependancy covered by a #ifdef, and in Debian's case #undef'ed +++ +++prterror.o: /usr/include/stdio.h options.h various.h ++ prterror.o: zoofns.h zooio.h ++ sysv.o: /usr/include/sys/stat.h /usr/include/sys/types.h /usr/include/time.h ++ sysv.o: nixmode.i nixtime.i ++diff -urNad zoo-2.10~/makelist.c zoo-2.10/makelist.c ++--- zoo-2.10~/makelist.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/makelist.c 2005-11-16 17:28:23.311950504 -0200 ++@@ -21,6 +21,8 @@ ++ ++ char *nameptr PARMS((char *)); ++ void modpath PARMS((char *)); +++int isadir PARMS((ZOOFILE)); +++int isfdir PARMS((char *)); ++ ++ /*******************/ ++ /* ++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c ++--- zoo-2.10~/misc.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/misc.c 2005-11-16 17:28:23.313950200 -0200 ++@@ -8,6 +8,7 @@ ++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ */ +++#include <signal.h> ++ #include "options.h" ++ /* Miscellaneous functions needed by Zoo but not by Ooz */ ++ ++@@ -201,7 +202,7 @@ ++ ZOOFILE zoo_file; ++ { ++ #ifndef NOSIGNAL ++- T_SIGNAL (*oldsignal)(); +++ T_SIGNAL (*oldsignal)(int); ++ oldsignal = signal (SIGINT, SIG_IGN); ++ #endif ++ if (fwr_dir (direntry, zoo_file) == -1) ++diff -urNad zoo-2.10~/misc2.c zoo-2.10/misc2.c ++--- zoo-2.10~/misc2.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/misc2.c 2005-11-16 17:28:23.312950352 -0200 ++@@ -7,6 +7,10 @@ ++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ */ +++#include <sys/stat.h> +++#include <sys/types.h> +++#include <fcntl.h> +++#include <unistd.h> ++ #include "options.h" ++ /* Miscellaneous routines */ ++ #include "portable.h" ++diff -urNad zoo-2.10~/nixtime.i zoo-2.10/nixtime.i ++--- zoo-2.10~/nixtime.i 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/nixtime.i 2005-11-16 17:28:23.313950200 -0200 ++@@ -10,6 +10,9 @@ ++ ++ -- Rahul Dhesi 1986/12/31 ++ */ +++#include <sys/types.h> +++#include <time.h> +++#include <utime.h> ++ ++ struct tm *localtime(); ++ ++@@ -51,9 +54,10 @@ ++ { ++ long mstonix(); ++ long gettz(); ++- long utimbuf[2]; ++- utimbuf[0] = utimbuf[1] = gettz() + mstonix (date, time); ++- return (utime (path, utimbuf)); +++ struct utimbuf utbf; +++ +++ utbf.actime = utbf.modtime = gettz() + mstonix (date, time); +++ return (utime (path, &utbf)); ++ } ++ ++ /**************** ++diff -urNad zoo-2.10~/options.h zoo-2.10/options.h ++--- zoo-2.10~/options.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/options.h 2005-11-16 17:28:23.314950048 -0200 ++@@ -13,6 +13,32 @@ ++ ++ ++ /***********************************************************************/ +++/* Linux */ +++/***********************************************************************/ +++ +++#ifdef LINUX +++#define FILTER +++#define IO_MACROS +++#define EXISTS(f) (access(f, 00) == 0) +++#define FNLIMIT 1023 +++#define CHEKDIR +++#define NIXTIME +++#define NIXFNAME +++#define NEEDCTYP +++#define NOENUM +++#define REN_STDC +++#define SETBUF +++#define GETTZ +++#define FATTR +++#define T_SIGNAL void +++#define STDARG +++#define HAVE_ISATTY /* undocumented #define option */ +++#define ANSI_PROTO +++#define VOIDPTR void * +++#define NO_STDIO_FN /* Do we need this? RUARI QUINN */ +++#endif /* Linux */ +++ +++/***********************************************************************/ ++ /* SYSTEM V (should be compatible with most releases) */ ++ /***********************************************************************/ ++ ++diff -urNad zoo-2.10~/portable.h zoo-2.10/portable.h ++--- zoo-2.10~/portable.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/portable.h 2005-11-16 17:28:23.314950048 -0200 ++@@ -90,6 +90,12 @@ ++ #define MKDIR(x) mkdir(x, 0777) ++ #endif ++ +++/* Linux */ +++#ifdef LINUX +++#define NIX_IO /* standard **IX I/O */ +++#define MKDIR(x) mkdir(x, 0777) +++#endif +++ ++ /* Amiga */ ++ #ifdef MCH_AMIGA ++ # include "MCH_AMIGA NEEDS REVISION" ++diff -urNad zoo-2.10~/zoo.1 zoo-2.10/zoo.1 ++--- zoo-2.10~/zoo.1 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoo.1 2005-11-16 17:33:56.112357152 -0200 ++@@ -955,7 +955,7 @@ ++ 2526: DIR [changes] ==> 95 ++ 2587: DATA ++ **************** ++- 3909: DIR [copyrite] ==> 1478 +++ 3909: DIR [copyright] ==> 1478 ++ 3970: DATA ++ 4769: DATA ++ **************** ++@@ -1041,7 +1041,7 @@ ++ Matches any sequence of zero or more characters. ++ .PP ++ .TP ++-.B \? +++.B ? ++ Matches any single character. ++ .sp 1 ++ Arbitrary combinations of ++@@ -1466,23 +1466,12 @@ ++ .I zoo ++ on all systems. So far as I can tell, this ++ upward compatibility (all manipulations) and downward ++-compatiblity (ability to extract and list) +++compatibility (ability to extract and list) ++ is maintained by ++ .I zoo ++ versions up to 2.01. Version 2.1 adds the incompatibility ++ that if high-performance compression is used, earlier ++ versions cannot extract files compressed with version 2.1. ++-This is the only incompatibility that is permissible. ++-You are forbidden, with the force of ++-copyright law, to create from the ++-.I zoo ++-source code any derivative work ++-that violates this compatibility goal, ++-whether knowingly or through negligence. ++-If any violation of this ++-compatibility goal is observed, ++-this should be ++-considered a serious problem and reported to me. ++ .SH CHANGES ++ Here is a list of changes occurring from version 1.50 to ++ version 2.01. In parentheses is given the version in which each ++@@ -1581,7 +1570,7 @@ ++ .TP ++ \- ++ (2.01) Blanks around equal signs in commands given to "make" ++-were removed from the mk* scripts for better compatiblity +++were removed from the mk* scripts for better compatibility ++ with more **IX implementations including Sun's. ++ .TP ++ \- ++diff -urNad zoo-2.10~/zoo.c zoo-2.10/zoo.c ++--- zoo-2.10~/zoo.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoo.c 2005-11-16 17:28:23.319949288 -0200 ++@@ -15,6 +15,7 @@ ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1991 Rahul Dhesi -- All rights reserved ++ */ +++#include <unistd.h> ++ #include "options.h" ++ #include "zooio.h" ++ #include "various.h" ++diff -urNad zoo-2.10~/zoo.h zoo-2.10/zoo.h ++--- zoo-2.10~/zoo.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoo.h 2005-11-16 17:28:23.321948984 -0200 ++@@ -1,5 +1,6 @@ ++ /* derived from: zoo.h 2.16 88/01/27 23:21:36 */ ++- +++#ifndef ZOO_H +++#define ZOO_H ++ /* ++ The contents of this file are hereby released to the public domain. ++ ++@@ -240,3 +241,4 @@ ++ #define MAXGEN 0x0f ++ /* version mask to prune down to correct size on large-word machines */ ++ #define VER_MASK 0xffff +++#endif ++diff -urNad zoo-2.10~/zooadd.c zoo-2.10/zooadd.c ++--- zoo-2.10~/zooadd.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zooadd.c 2005-11-16 17:28:23.318949440 -0200 ++@@ -9,11 +9,13 @@ ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1991 Rahul Dhesi -- All rights reserved ++ */ +++#include <unistd.h> ++ #include "options.h" ++ /* Adds files specified in parameter-list to archive zoo_path. */ ++ ++ #define LONGEST 20 /* assumed length of longest filename */ ++ #include "zoomem.h" /* to define MAXADD */ +++#undef PORTABLE ++ #include "zoo.h" ++ #include "zooio.h" ++ #include "various.h" ++@@ -37,6 +39,7 @@ ++ void copyfields PARMS ((struct direntry *, struct tiny_header *)); ++ void storefname PARMS ((struct direntry *, char *, int)); ++ char *choosefname PARMS ((struct direntry *)); +++int isadir PARMS((ZOOFILE)); ++ ++ extern struct zoo_header zoo_header; ++ ++@@ -132,7 +135,7 @@ ++ ++ if (zoo_file == NOFILE) ++ prterror ('f', could_not_open, zoo_path); ++-basename(zoo_path, zoo_fname); /* get basename of archive */ +++zoo_basename(zoo_path, zoo_fname); /* get basename of archive */ ++ rootname (zoo_path, zoo_bak); /* name without extension */ ++ strcat (zoo_bak, BACKUP_EXT); /* name of backup of this archive */ ++ ++@@ -222,7 +225,7 @@ ++ break; ++ } ++ ++- basename (this_path, this_fname); /* get just filename for later */ +++ zoo_basename (this_path, this_fname); /* get just filename for later */ ++ ++ this_file = zooopen(this_path, Z_READ); ++ if (this_file == NOFILE) { ++diff -urNad zoo-2.10~/zooadd2.c zoo-2.10/zooadd2.c ++--- zoo-2.10~/zooadd2.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zooadd2.c 2005-11-16 17:28:23.317949592 -0200 ++@@ -7,7 +7,9 @@ ++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ */ +++#include <unistd.h> ++ #include "options.h" +++#undef PORTABLE ++ #include "zoo.h" ++ #ifndef OK_STDIO ++ #include <stdio.h> ++@@ -20,7 +22,7 @@ ++ #include "assert.h" ++ #include "debug.h" ++ #include "parse.h" ++- +++int isfdir PARMS((char *)); ++ /* ++ Miscellaneous routines to support zooadd(). ++ */ ++diff -urNad zoo-2.10~/zooext.c zoo-2.10/zooext.c ++--- zoo-2.10~/zooext.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zooext.c 2005-11-16 17:28:23.320949136 -0200 ++@@ -14,7 +14,8 @@ ++ /* Extract file from archive. Extracts files specified in parameter-list ++ from archive zoo_path. If none specified, extracts all files from ++ archive. */ ++- +++#include <unistd.h> +++#include <signal.h> ++ #include "options.h" ++ #include "zoo.h" ++ #include "parse.h" /* defines struct for parse() */ ++@@ -62,7 +63,7 @@ ++ char *whichname; /* which name to extract */ ++ char matchname[PATHSIZE]; /* for pattern matching only */ ++ #ifndef NOSIGNAL ++-T_SIGNAL (*oldsignal)(); /* to save previous SIGINT handler */ +++T_SIGNAL (*oldsignal)(int); /* to save previous SIGINT handler */ ++ #endif ++ ZOOFILE zoo_file; /* open archive */ ++ long next_ptr; /* pointer to within archive */ ++@@ -626,7 +627,7 @@ ++ ++ /* Ctrl_c() is called if ^C is hit while a file is being extracted. ++ It closes the files, deletes it, and exits. */ ++-T_SIGNAL ctrl_c() +++T_SIGNAL ctrl_c(int dummy) ++ { ++ #ifndef NOSIGNAL ++ signal (SIGINT, SIG_IGN); /* ignore any more */ ++diff -urNad zoo-2.10~/zoofns.h zoo-2.10/zoofns.h ++--- zoo-2.10~/zoofns.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoofns.h 2005-11-16 17:28:23.320949136 -0200 ++@@ -42,12 +42,12 @@ ++ int cfactor PARMS ((long, long)); ++ int chname PARMS ((char *, char *)); ++ int cmpnum PARMS ((unsigned int, unsigned int, unsigned int, unsigned int)); ++-T_SIGNAL ctrl_c PARMS ((void)); +++T_SIGNAL ctrl_c PARMS ((int)); ++ int exists PARMS ((char *)); ++ int getfile PARMS ((ZOOFILE, ZOOFILE, long, int)); ++ int getutime PARMS ((char *, unsigned *, unsigned *)); ++ int gettime PARMS ((ZOOFILE, unsigned *, unsigned *)); ++-T_SIGNAL handle_break PARMS ((void)); +++T_SIGNAL handle_break PARMS ((int)); ++ ++ #ifdef USE_ASCII ++ int isupper PARMS ((int)); ++@@ -85,7 +85,7 @@ ++ void addfname PARMS ((char *, long, unsigned int, unsigned int, ++ unsigned, unsigned)); ++ void add_version PARMS ((char *, struct direntry *)); ++-void basename PARMS ((char *, char [])); +++void zoo_basename PARMS ((char *, char [])); ++ void break_off PARMS ((void)); ++ void close_file PARMS ((ZOOFILE)); ++ void comment PARMS ((char *, char *)); ++diff -urNad zoo-2.10~/zooio.h zoo-2.10/zooio.h ++--- zoo-2.10~/zooio.h 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zooio.h 2005-11-16 17:28:23.321948984 -0200 ++@@ -7,6 +7,7 @@ ++ ++ -- Rahul Dhesi 1988/01/24 ++ */ +++#include "zoo.h" ++ #ifndef OK_STDIO ++ #include <stdio.h> ++ #define OK_STDIO ++diff -urNad zoo-2.10~/zoolist.c zoo-2.10/zoolist.c ++--- zoo-2.10~/zoolist.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoolist.c 2005-11-16 17:28:23.322948832 -0200 ++@@ -47,6 +47,7 @@ ++ int ver_too_high PARMS((struct zoo_header *)); ++ int needed PARMS((char *, struct direntry *, struct zoo_header *)); ++ void printtz PARMS((int)); +++int fputchar PARMS ((int)); ++ ++ void zoolist (argv, option, argc) ++ char **argv, *option; ++@@ -414,7 +415,7 @@ ++ if (direntry.fattr == 0) ++ printf ("--- "); ++ else if ((direntry.fattr >> 22) == 1) ++- printf ("%03o ", direntry.fattr & 0x1ff); +++ printf ("%03lo ", direntry.fattr & 0x1ff); ++ else ++ printf ("??? "); ++ } ++diff -urNad zoo-2.10~/zoopack.c zoo-2.10/zoopack.c ++--- zoo-2.10~/zoopack.c 2005-11-16 17:11:21.000000000 -0200 +++++ zoo-2.10/zoopack.c 2005-11-16 17:28:23.323948680 -0200 ++@@ -10,6 +10,7 @@ ++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved ++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved ++ */ +++#include <unistd.h> ++ #include "options.h" ++ /* Packs an archive. The sequence is: ++ 1. Copy all files from current archive to new one. ++@@ -171,7 +172,7 @@ ++ } else { ++ strcpy (temp_file, xes); ++ } ++-mktemp (temp_file); /* ... and make unique */ +++mkstemp (temp_file); /* ... and make unique */ ++ new_file = zoocreate (temp_file); ++ if (new_file == NOFILE) ++ prterror ('f', "Could not create temporary file %s.\n", temp_file); ++@@ -388,7 +389,7 @@ ++ ++ /* handle_break() */ ++ /* Sets break_hit to 1 when called */ ++-T_SIGNAL handle_break() +++T_SIGNAL handle_break(int dummy) ++ { ++ #ifndef NOSIGNAL ++ signal (SIGINT, SIG_IGN); /* ignore future control ^Cs for now */ +--- zoo-2.10.orig/debian/patches/00options ++++ zoo-2.10/debian/patches/00options +@@ -0,0 +1 @@ ++DPEP_OPTION_EXEC_TEMPLATE=1 +--- zoo-2.10.orig/debian/patches/00list ++++ zoo-2.10/debian/patches/00list +@@ -0,0 +1,5 @@ ++01_old_fixes ++02_traversal_directory ++03_fix_manage_archive_under_AMD64 ++04_fix_fullpath_buffer_overflow ++05_CVE-2006-1269.dpatch +--- zoo-2.10.orig/debian/patches/00template ++++ zoo-2.10/debian/patches/00template +@@ -0,0 +1,43 @@ ++#!/bin/sh ++# Sample debian/patches/00template script ++# era Thu May 15 23:24:07 2003 ++ ++# This simply creates the equivalent of the hard-coded template. ++# Adapt and hack to suit your needs. ++ ++file="$1" ++shift ++description="$@" ++ ++fullnameguess="$(getent passwd $(id -un) | cut -f5 -d: | cut -f1 -d,)" ++domainguess=$([ -f /etc/mailname ] && cat /etc/mailname || hostname -f) ++emailguess="${DEBEMAIL:-${EMAIL:-$(logname)@${domainguess}}}" ++ ++cat <<EOF ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## ${file} by ${DEBFULLNAME:-$fullnameguess} <$emailguess> ++## ++## All lines beginning with \`## DP:' are a description of the patch. ++## DP: ${description:-No description} ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="\${patch_opts:--f --no-backup-if-mismatch \${2:+-d \$2}}" ++ ++if [ \$# -lt 1 ]; then ++ echo >&2 "\`basename \$0\`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "\$1" in ++ -patch) patch \$patch_opts -p1 < \$0;; ++ -unpatch) patch \$patch_opts -p1 -R < \$0;; ++ *) ++ echo >&2 "\`basename \$0\`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++EOF ++ +--- zoo-2.10.orig/debian/patches/02_traversal_directory.dpatch ++++ zoo-2.10/debian/patches/02_traversal_directory.dpatch +@@ -0,0 +1,70 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 02_traversal_directory.dpatch by Jose Carlos Medeiros <debian@psabs.com.br> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: patch to solve problem with "directory traversal bug" CVE id CAN-2005-2349 ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10/portable.c /tmp/dpep.W7Aoaj/zoo-2.10/portable.c ++--- zoo-2.10/portable.c 2005-07-22 15:34:22.000000000 -0300 +++++ /tmp/dpep.W7Aoaj/zoo-2.10/portable.c 2005-07-25 14:43:57.757855384 -0300 ++@@ -364,6 +364,41 @@ ++ show_dir(direntry); ++ } ++ #endif +++ /* ######################################################################### +++ * +++ * THIS CODE WAS WRITTEN TO SOLVE PROBLEM WITH DIRECTORY TRAVERSAL SECURITY +++ * BUG (CVE id CAN-2005-2349). +++ * +++ * ######################################################################## +++ */ +++ char *p; +++ /* take off '../' */ +++ while ((p = strstr( direntry->dirname, "../" )) != NULL) { +++ while (*(p+3) != '\0') { +++ *p = *(p + 3); +++ p++; +++ } +++ *p = *(p+3); /* move last null */ +++ //printf("zoo: skipped \"../\" path component in '%s'\n", direntry->dirname); +++ } +++ /* take off '/' */ +++ if ( direntry->dirname[0] == '/' ) { +++ p = direntry->dirname; +++ while (*p != '\0') { +++ *p = *(p + 1); +++ p++; +++ } +++ *p = *(p+1); /* move last null */ +++ //printf("zoo: skipped \"/\" path component in '%s'\n", direntry->dirname); +++ } +++ /* direntry->dirlen = strlen(direntry->dirname); */ +++ +++ /* ################################################################## +++ * +++ * END +++ * +++ * ################################################################### +++ */ ++ return (0); ++ } ++ +--- zoo-2.10.orig/debian/patches/03_fix_manage_archive_under_AMD64.dpatch ++++ zoo-2.10/debian/patches/03_fix_manage_archive_under_AMD64.dpatch +@@ -0,0 +1,107 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 03_fix_manage_archive_under_AMD64.dpatch by Jose Carlos Medeiros <debian@psabs.com.br> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: patch to solve problems managing files under AMD64 and maybe under others 64 archs. ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10~/makefile zoo-2.10/makefile ++--- zoo-2.10~/makefile 2005-11-16 12:10:06.773065688 -0200 +++++ zoo-2.10/makefile 2005-11-16 12:12:50.816127352 -0200 ++@@ -54,6 +54,7 @@ ++ @echo "convex: Convex C200 series" ++ @echo "sysv: System V Release 2 or 3; or SCO Xenix" ++ @echo "linux: Linux" +++ @echo "linux64: Linux with 64 bit long" ++ @echo "scodos: Cross-compiler under SCO Xenix/UNIX for MS-DOS" ++ @echo "xenix286: Older Xenix/286 (not tested)" ++ @echo "xenix68k: Xenix/68000 (not tested)" ++@@ -99,6 +100,10 @@ ++ linux: ++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DANSI_HDRS" $(TARGETS) ++ +++# Linux64 +++linux64: +++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DLONG64 -DANSI_HDRS" $(TARGETS) +++ ++ # ULTRIX 4.1 ++ ultrix: ++ $(MAKE) CFLAGS="-c $(OPTIM) -DULTRIX" $(TARGETS) ++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c ++--- zoo-2.10~/misc.c 2005-11-16 12:10:06.775065384 -0200 +++++ zoo-2.10/misc.c 2005-11-16 12:20:48.366528656 -0200 ++@@ -173,7 +173,11 @@ ++ ++ frd_zooh (header, zoo_file); ++ +++#ifdef LONG64 +++ if ((int)(header->zoo_start = header->zoo_minus) != 0) +++#else ++ if ((header->zoo_start + header->zoo_minus) != 0L) +++#endif ++ prterror ('f', failed_consistency); ++ if (ver_too_high (header)) ++ prterror ('f', wrong_version, header->major_ver, header->minor_ver); ++diff -urNad zoo-2.10~/zoodel.c zoo-2.10/zoodel.c ++--- zoo-2.10~/zoodel.c 1991-07-05 13:00:00.000000000 -0300 +++++ zoo-2.10/zoodel.c 2005-11-16 12:20:19.776874944 -0200 ++@@ -138,7 +138,11 @@ ++ ++ /* read archive header */ ++ frd_zooh (&zoo_header, zoo_file); +++#ifdef LONG64 +++ if ((int)(zoo_header.zoo_start + zoo_header.zoo_minus) != 0) +++#else ++ if ((zoo_header.zoo_start + zoo_header.zoo_minus) != 0L) +++#endif ++ prterror ('f', failed_consistency); ++ if (ver_too_high (&zoo_header)) ++ prterror ('f', wrong_version, zoo_header.major_ver, zoo_header.minor_ver); ++diff -urNad zoo-2.10~/zooext.c zoo-2.10/zooext.c ++--- zoo-2.10~/zooext.c 2005-11-16 12:10:06.783064168 -0200 +++++ zoo-2.10/zooext.c 2005-11-16 12:22:08.373365768 -0200 ++@@ -164,7 +164,11 @@ ++ } else { ++ /* read header */ ++ frd_zooh (&zoo_header, zoo_file); +++#ifdef LONG64 +++ if ((int)(zoo_header.zoo_start + zoo_header.zoo_minus) != 0) { +++#else ++ if ((zoo_header.zoo_start + zoo_header.zoo_minus) != 0L) { +++#endif ++ prterror ('w', failed_consistency); ++ bad_header++; ++ exit_status = 1; ++diff -urNad zoo-2.10~/zoopack.c zoo-2.10/zoopack.c ++--- zoo-2.10~/zoopack.c 2005-11-16 12:10:06.786063712 -0200 +++++ zoo-2.10/zoopack.c 2005-11-16 12:23:01.145343208 -0200 ++@@ -140,7 +140,11 @@ ++ /* Read the header of the old archive. */ ++ frd_zooh(&old_zoo_header, zoo_file); ++ +++#ifdef LONG64 +++if ((int)(old_zoo_header.zoo_start + old_zoo_header.zoo_minus) != 0) { +++#else ++ if ((old_zoo_header.zoo_start + old_zoo_header.zoo_minus) != 0L) { +++#endif ++ prterror ('w', failed_consistency); ++ ++bad_header; /* remember for future error message */ ++ } +--- zoo-2.10.orig/debian/patches/04_fix_fullpath_buffer_overflow.dpatch ++++ zoo-2.10/debian/patches/04_fix_fullpath_buffer_overflow.dpatch +@@ -0,0 +1,44 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 04_fix_fullpath_buffer_overflow.dpatch by Jose Carlos Medeiros <debian@psabs.com.br> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Fix "fullpath()" File Name Handling Buffer Overflow, CAN-2006-0855 ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c ++--- zoo-2.10~/misc.c 2006-03-03 18:51:31.000000000 -0300 +++++ zoo-2.10/misc.c 2006-03-03 18:54:29.000000000 -0300 ++@@ -136,11 +136,14 @@ ++ char *fullpath (direntry) ++ struct direntry *direntry; ++ { ++- static char result[PATHSIZE]; +++ static char result[PATHSIZE+PATHSIZE+12]; // Room for enough space ++ combine (result, ++ direntry->dirlen != 0 ? direntry->dirname : "", ++ (direntry->namlen != 0) ? direntry->lfname : direntry->fname ++ ); +++ if (strlen (result) >= PATHSIZE) { +++ prterror ('f', "Combined dirname and filename too long\n"); +++ } ++ return (result); ++ } ++ +--- zoo-2.10.orig/debian/patches/05_CVE-2006-1269.dpatch ++++ zoo-2.10/debian/patches/05_CVE-2006-1269.dpatch +@@ -0,0 +1,37 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 05_CVE-2006-1269.dpatch by Alec Berryman <alec@thened.net> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=183426 ++ ++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts ++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}" ++ ++if [ $# -lt 1 ]; then ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1 ++fi ++ ++case "$1" in ++ -patch) patch $patch_opts -p1 < $0;; ++ -unpatch) patch $patch_opts -p1 -R < $0;; ++ *) ++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" ++ exit 1;; ++esac ++ ++exit 0 ++ ++@DPATCH@ ++diff -urNad zoo-2.10~/parse.c zoo-2.10/parse.c ++--- zoo-2.10~/parse.c 1991-07-05 17:00:00.000000000 +0100 +++++ zoo-2.10/parse.c 2006-05-18 14:16:32.000000000 +0100 ++@@ -39,7 +39,7 @@ ++ char *namep; /* points to relevant part of tempname */ ++ ++ char *p; ++- strcpy (tempname, fname); +++ strncpy (tempname, fname, LFNAMESIZE); ++ ++ #ifdef DEBUG ++ printf ("parse: supplied name is [%s].\n", tempname); +--- zoo-2.10.orig/debian/compat ++++ zoo-2.10/debian/compat +@@ -0,0 +1 @@ ++5 +--- zoo-2.10.orig/debian/changelog ++++ zoo-2.10/debian/changelog +@@ -0,0 +1,139 @@ ++zoo (2.10-18) unstable; urgency=low ++ ++ * Added patch to solve "CVE-2006-1269: local arbitrary code execution", ++ thanks to Alec Berryman <alec@thened.net> (closes: #367858) ++ * Updated to DH_COMPAT 5 ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 19 May 2006 19:23:24 -0300 ++ ++zoo (2.10-17) unstable; urgency=low ++ ++ * Added 04_fix_fullpath_buffer_overflow patch to fix a Buffer Overflow, ++ CAN-2006-0855. Thanks to Jean-SébastienGuay-Leroux ++ <jean-sebastien_at_guay-leroux.com>, (closes: #354461) ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 3 Mar 2006 18:56:02 -0300 ++ ++zoo (2.10-16) unstable; urgency=low ++ ++ * Added 03_fix_manage_archive_under_AMD64 patch, thanks to carlj ++ <Carl.Johnson.carlj@peak.org>. (closes: #335114) ++ * Updated debian/rules to test and compile to AMD64. ++ * Updated to Standards-Version 3.6.2. ++ * Changed 01_old_fixes dpatch to solve problem "missing \?" in zoo.1. ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Wed, 16 Nov 2005 16:48:24 -0200 ++ ++zoo (2.10-15) unstable; urgency=low ++ ++ * Added dpatch as Build-Depends in debian/control. ++ * Added debian/watch file. (closes: #322246) ++ * Updated linux.c in 01_old_fixes. (closes: #322194) ++ Thanks to Robert Millan <rmh@aybabtu.com> ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Tue, 9 Aug 2005 15:07:48 -0300 ++ ++zoo (2.10-14) unstable; urgency=low ++ ++ * Changed call from "mktemp" to "mkstemp" in zoopack.c file. ++ * Added debian/patches/00options, debian/patches/00list and ++ debian/patches/00template files. ++ * Updated rules and control to use dpatch. ++ * Added 01_old_fixes.dpatch file with old changes. ++ * Added 02_traversal_directory.dpatch to solve problem with "directory ++ traversal security bug - CVE id CAN-2005-2349". Thanks to ++ Jorge Ventura <jorge.ventura@fusemail.com> (closes: #309594) ++ * Changed upstream source link in copyright file. ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 22 Jul 2005 12:59:07 -0300 ++ ++zoo (2.10-13) unstable; urgency=low ++ ++ * Updated zoo.1 file (thanks to A Costa <agcosta@gis.net>). (closes: #302817) ++ * Changed email of Mantainer in control file. ++ * Updated fiz.1 file (thanks to A Costa <agcosta@gis.net>). (closes: #309874) ++ ++ -- Jose Carlos Medeiros <debian@psabs.com.br> Tue, 7 Jun 2005 20:47:51 -0300 ++ ++zoo (2.10-12) unstable; urgency=low ++ ++ * New maintainer (closes: #302895) ++ * Created compat file. ++ * Deleted debian/docs unused file. ++ * Changed rules to complain debhelper > 4.0. ++ * Changed README.compilers to README.debian. ++ ++ -- Jose Carlos Medeiros <jose@psabs.com.br> Wed, 13 Apr 2005 18:39:14 -0300 ++ ++zoo (2.10-11) unstable; urgency=low ++ ++ * New maintainer (closes: #258470) ++ * Move to main from non-free (zoo is now in public domain). ++ * Updated copyright file ++ * Updated zoo.1 file ++ * Removed unnecessary, compile related files from the binary package. ++ * Standards-Version: 3.6.1.0 ++ ++ -- Niklas Vainio <nvainio+deb@iki.fi> Sat, 10 Jul 2004 21:29:26 +0300 ++ ++zoo (2.10-10) unstable; urgency=low ++ ++ * Recompile to allow prelinking (closes: #231547). ++ ++ -- Petr Cech <cech@debian.org> Mon, 9 Feb 2004 12:02:32 +0100 ++ ++zoo (2.10-9) unstable; urgency=low ++ ++ * Fix build with new glibc-2.2 (closes: #94865) ++ ++ -- Petr Cech <cech@debian.org> Sun, 22 Apr 2001 22:17:14 +0200 ++ ++zoo (2.10-8) unstable; urgency=low ++ ++ * Added README.compilers. ++ * Standards-version: 3.2.1. ++ * Glibc-2.2 build. ++ * Fix long utibuf[2] to struct utimbuf. ++ ++ -- Petr Cech <cech@debian.org> Tue, 17 Oct 2000 15:07:50 +0200 ++ ++zoo (2.10-7) unstable; urgency=low ++ ++ * Don't know how, but the copyright was gone ++ * Added documentation from source package ++ ++ -- Petr Cech <cech@debian.org> Sat, 16 May 1998 11:32:30 +0200 ++ ++zoo (2.10-6) frozen unstable; urgency=low ++ ++ * Use debhelper. ++ * Added some includes and prototypes to have less warnings ++ * New maintainer. ++ * updated to 2.4.1 ++ ++ -- Petr CECH <Petr.Cech@st.mff.cuni.cz> Fri, 8 May 1998 01:06:39 +0200 ++ ++zoo (2.10-5) unstable; urgency=low ++ ++ * Orphaned the package. ++ * debian/control (Standards-Version): updated to 2.4.0.0 [#16772]. ++ * debian/control (Section): changed to non-free/utils [fails #3 of DFSG]. ++ * debian/control (Maintainer): set to debian-qa list. ++ * debian/rules: rewritten. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 4 Mar 1998 02:17:57 +0000 ++ ++zoo (2.10-4) unstable; urgency=low ++ ++ * Rebuilt for libc6. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 25 Jun 1997 17:04:23 +0000 ++ ++zoo (2.10-3) unstable; urgency=low ++ ++ * New maintainer. ++ * Updated package to standards version 2.1.1.2. ++ * Removed executables from source package. ++ * Added better linux support, fixes bug #3961 and #4904. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 22 Jan 1997 02:18:51 +0000 +--- zoo-2.10.orig/debian/watch ++++ zoo-2.10/debian/watch +@@ -0,0 +1,3 @@ ++version=3 ++opts=dversionmangle=s/\.// \ ++ http://www.ibiblio.org/pub/packages/ccic/software/unix/utils/zoo(.*)\.tar\.gz +--- zoo-2.10.orig/debian/control ++++ zoo-2.10/debian/control +@@ -0,0 +1,20 @@ ++Source: zoo ++Section: utils ++Priority: optional ++Build-Depends: debhelper (>= 5.0.0), dpatch (>= 2.0.10) ++Maintainer: Jose Carlos Medeiros <debian@psabs.com.br> ++Uploaders: Ola Lundqvist <opal@debian.org> ++Standards-Version: 3.6.2 ++ ++Package: zoo ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: manipulate zoo archives ++ Zoo is used to create and maintain collections of files in compressed ++ form. It uses a Lempel-Ziv compression algorithm that gives space ++ savings in the range of 20% to 80% depending on the type of file data. ++ Zoo can store and selectively extract multiple generations of the same ++ file. ++ . ++ This package exists for its historical value. If you are looking for ++ a compression tool for serious use, check tar and gzip. +--- zoo-2.10.orig/debian/rules ++++ zoo-2.10/debian/rules +@@ -0,0 +1,94 @@ ++#!/usr/bin/make -f ++# debian/rules file - for zoo (2.1). ++# Based on sample debian.rules file - for GNU Hello (1.3). ++# Copyright 1994,1995 by Ian Jackson. ++# Copyright 1997,1998 by James Troup. ++# Copyright 1998,1999,2000 by Petr Èech. ++# Copyright 2005 by Jose Carlos N. Medeiros. ++# I hereby give you perpetual unlimited permission to copy, ++# modify and relicense this file, provided that you do not remove ++# my name from the file itself. (I assert my moral right of ++# paternity under the Copyright, Designs and Patents Act 1988.) ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This has to be exported to make some magic below work. ++#export DH_OPTIONS ++ ++CFLAGS = -Wall ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -g ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ INSTALL += -s ++endif ++ ++DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) ++PACKAGE = zoo ++ ++# Include dpatch stuff. ++include /usr/share/dpatch/dpatch.make ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ touch configure-stamp ++ ++build: build-stamp ++ ++build-stamp: configure-stamp patch ++ dh_testdir ++ ++ echo $(DEB_HOST_ARCH) ++ifeq ($(DEB_HOST_ARCH),amd64) ++ $(MAKE) OPTIM="$(CFLAGS)" linux64 ++else ++ $(MAKE) OPTIM="$(CFLAGS)" linux ++endif ++ touch build-stamp ++ ++clean: unpatch ++ dh_testdir ++ dh_testroot ++ -$(MAKE) -i clean ++ dh_clean build-stamp configure-stamp zoo fiz ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/zoo. ++ install -m 755 -s zoo fiz debian/zoo/usr/bin ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs ++ dh_installdocs ++ dh_installman fiz.1 zoo.1 ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install configure ++ +--- zoo-2.10.orig/debian/copyright ++++ zoo-2.10/debian/copyright +@@ -0,0 +1,64 @@ ++This is Debian GNU/Linux's prepackaged version of the zoo archiver. ++ ++This package was put together by James Troup from the original ++source obtained from: ++ http://www.ibiblio.org/pub/packages/ccic/software/unix/utils/zoo210.tar.gz ++ ++From May 1998 to July 2004 it was maintained by Petr Èech and ++currently it is maintained by Niklas Vainio <nvainio+deb@iki.fi> ++ ++Copyright and license: ++ ++Zoo was written by Rahul Dhesi. He has now released it into the public ++domain: ++ ++ ++Return-Path: <dhesi@rahul.net> ++Date: Sat, 19 Jun 2004 13:50:26 -0700 (PDT) ++From: dhesi@rahul.net ++To: Niklas Vainio <nvainio@iki.fi> ++Subject: Re: License of Zoo ++ ++Hi, the last release of the zoo archive program was marked entirely ++public domain, with no restrictions. I'm sure this statement will be ++found somewhere in the files in the sources. If not, I hope this email ++will suffice: everything in the zoo package is entirely public domain, ++with no restrictions whatsoever. ++ ++Rahul ++ ++ ++On Sat, 19 Jun 2004, Niklas Vainio wrote: ++ ++> Dear Rahul Dhesi, ++> ++> The Zoo archiving program you wrote, is part of the Debian GNU/Linux system, ++> in its unofficial section called "non-free". I'm asking you to relax licence ++> conditions of Zoo a bit to make it free software and allow it to move into ++> the official Debian distribution. ++> ++> Zoo licensing conditions have two clauses that make it non-free software. ++> Those clauses are the following: ++> ++> "(b) do not create, whether deliberately or through negligence, any ++> derivative work that violates the compatibility goals describe in the ++> reference manual for zoo 2.1," ++> ++> "(d) make the fully commented source code of the derivative work available ++> to me at no cost if I so request, and make no attempt to restrict the ++> distribution or use of this source code." ++> ++> Of course this is more of historical interest than any actual need, but ++> would you please consider licensing Zoo under a free license? ++> ++> Best regards, ++> - Nikke, a Debian volunteer ++> ++> -- ++> Niklas Vainio <niklas.vainio@iki.fi> ++> ++ ++ ++ ++ ++ +--- zoo-2.10.orig/debian/dirs ++++ zoo-2.10/debian/dirs +@@ -0,0 +1 @@ ++usr/bin +--- zoo-2.10.orig/debian/README.debian ++++ zoo-2.10/debian/README.debian +@@ -0,0 +1,11 @@ ++The linux target I created was based on the bsd 4.3 target, with the ++following differences :- ++ ++ Linux has strchr(). ++ Linux signal handler returns void data type. ++ (Debian GNU/)Linux uses stdarg.h in preference to varags.h. ++ Linux has memmove(). ++ (Debian GNU/)Linux uses ansi C compilers (required for stdarg.h). ++ Linux malloc() returns a void pointer. ++ Linux has vprintf(). ++ diff --git a/source/ap/a2ps/a2ps.SlackBuild b/source/ap/a2ps/a2ps.SlackBuild new file mode 100755 index 000000000..b8e5ed18e --- /dev/null +++ b/source/ap/a2ps/a2ps.SlackBuild @@ -0,0 +1,158 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=a2ps +PKGNAM2=psutils +VERSION=${VERSION:-4.14} +A2PS=${A2PS:-4.14} +PSUTILS=${PSUTILS:-1.17} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +# First, build and install psutils: +cd $TMP +tar xvf $CWD/$PKGNAM2-${PSUTILS}.tar.gz || exit 1 +cd $PKGNAM2 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/psutils.diff.gz | patch -p1 --verbose -E --backup --suffix=.orig || exit 1 +zcat $CWD/psutils.destdir.diff.gz | patch -p1 --verbose -E --backup --suffix=.orig || exit 1 + +# Build and install: +make -f Makefile.unix || exit 1 +make -f Makefile.unix install DESTDIR=$PKG || exit 1 + +# Add a documentation directory for psutils: +mkdir -p $PKG/usr/doc/$PKGNAM2-$PSUTILS +cp -a \ + LICENSE README \ + $PKG/usr/doc/$PKGNAM2-$PSUTILS + +# Build, install and delete temporary psutils package for a2ps +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM2-${PSUTILS}-$ARCH-$BUILD.txz || exit 1 +echo "Installing temporary $PKGNAM2 package (this will be removed when the SlackBuild finishes)" +/sbin/installpkg $TMP/$PKGNAM2-${PSUTILS}-$ARCH-$BUILD.txz || exit 1 +rm $TMP/$PKGNAM2-${PSUTILS}-$ARCH-$BUILD.txz || exit 1 + +# Then, build a2ps: +cd $TMP +tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +cd $PKGNAM-$A2PS + +zcat $CWD/a2ps.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/a2ps.a2ps_cfg.in.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure needs lispdir in case emacs is not installed at this moment: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +lispdir="/usr/share/emacs/site-lisp" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --with-medium=letter \ + $ARCH-slackware-linux + +# Build and install: +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Remove temporary psutils package: +echo "Removing temporary psutils package" +/sbin/removepkg $PKGNAM2-${PSUTILS}-$ARCH-$BUILD || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/a2ps-$VERSION +cp -a ABOUT-NLS ANNOUNCE AUTHORS COPYING ChangeLog \ + FAQ INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/a2ps-$VERSION + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/a2ps/a2ps.a2ps_cfg.in.diff b/source/ap/a2ps/a2ps.a2ps_cfg.in.diff new file mode 100644 index 000000000..38b9550a0 --- /dev/null +++ b/source/ap/a2ps/a2ps.a2ps_cfg.in.diff @@ -0,0 +1,11 @@ +--- ./etc/a2ps_cfg.in.orig 2007-12-28 19:38:58.000000000 -0600 ++++ ./etc/a2ps_cfg.in 2009-03-30 20:11:06.000000000 -0500 +@@ -68,7 +68,7 @@ + # 2) Path to the a2ps resource # + ################################################################# + # Default path where a2ps dropped its library files. +-LibraryPath: @libpath@ ++LibraryPath: @libpath@:/usr/share/fonts/Type1 + + # It may be useful to extend it so that a2ps can see some + # TeX or X11 resources: it likes AFM files and PF[AB] files. diff --git a/source/ap/a2ps/a2ps.diff b/source/ap/a2ps/a2ps.diff new file mode 100644 index 000000000..b3140ad37 --- /dev/null +++ b/source/ap/a2ps/a2ps.diff @@ -0,0 +1,12 @@ +--- ./configure.orig Thu Jan 18 21:14:51 2001 ++++ ./configure Thu Jan 18 21:15:16 2001 +@@ -8449,7 +8449,8 @@ + # Find out if ghostscript is installed + ac_psfont_path= + for ac_dir in /usr/local/ghostscript/fonts \ +- /usr/local/share/ghostscript/fonts; ++ /usr/local/share/ghostscript/fonts \ ++ /usr/share/ghostscript/fonts ; + do + if test "cd $ac_dir 2>/dev/null && echo *.afm"; then + ac_psfont_path="$ac_psfont_path:$ac_dir"; diff --git a/source/ap/a2ps/psutils.destdir.diff b/source/ap/a2ps/psutils.destdir.diff new file mode 100644 index 000000000..f547b791e --- /dev/null +++ b/source/ap/a2ps/psutils.destdir.diff @@ -0,0 +1,56 @@ +--- psutils/Makefile.unix.old 1997-11-03 23:52:00.000000000 +0000 ++++ psutils/Makefile.unix 2008-09-10 08:31:00.000000000 +0000 +@@ -25,9 +25,9 @@ + + OS = UNIX + +-BINDIR = /usr/bin ++BINDIR = ${DESTDIR}/usr/bin + SCRIPTDIR = $(BINDIR) +-INCLUDEDIR = /usr/share/psutils ++INCLUDEDIR = ${DESTDIR}/usr/share/psutils + PERL = /usr/bin/perl + + BINMODE = 0755 +@@ -36,7 +36,7 @@ + INSTALL = install -c -m $(BINMODE) + INSTALLMAN = install -c -m $(MANMODE) + MANEXT = 1 +-MANDIR = /usr/man/man$(MANEXT) ++MANDIR = ${DESTDIR}/usr/man/man$(MANEXT) + + CC = gcc + CFLAGS = -DPAPER=\"$(PAPER)\" -DUNIX -O -Wall +@@ -219,28 +219,28 @@ + install: install.bin install.script install.man install.include + + install.bin: $(BIN) +- -mkdir $(BINDIR) ++ -mkdir -p $(BINDIR) + @for i in $(BIN); do \ + echo Installing $$i; \ + $(INSTALL) $$i $(BINDIR); \ + done + + install.script: $(PERLSCRIPTS) $(SHELLSCRIPTS) +- -mkdir $(SCRIPTDIR) ++ -mkdir -p $(SCRIPTDIR) + @for i in $(PERLSCRIPTS) $(SHELLSCRIPTS); do \ + echo Installing $$i; \ + $(INSTALL) $$i $(SCRIPTDIR); \ + done + + install.include: $(INCLUDES) +- -mkdir $(INCLUDEDIR) ++ -mkdir -p $(INCLUDEDIR) + @for i in $(INCLUDES); do \ + echo Installing $$i; \ + $(INSTALLMAN) $$i $(INCLUDEDIR); \ + done + + install.man: $(MANPAGES) +- -mkdir $(MANDIR) ++ -mkdir -p $(MANDIR) + @for i in $(MANPAGES); do \ + echo Installing manual page for $$i; \ + $(INSTALLMAN) $$i $(MANDIR)/$$i; \ diff --git a/source/ap/a2ps/psutils.diff b/source/ap/a2ps/psutils.diff new file mode 100644 index 000000000..4af32bd7f --- /dev/null +++ b/source/ap/a2ps/psutils.diff @@ -0,0 +1,33 @@ +diff -u -r --new-file psutils.orig/Makefile.unix psutils/Makefile.unix +--- psutils.orig/Makefile.unix Tue Mar 11 14:52:59 1997 ++++ psutils/Makefile.unix Thu Jan 18 20:53:36 2001 +@@ -19,16 +19,16 @@ + # psnup puts multiple logical pages on one physical page + # psresize scales and moves pages to fit on different paper sizes + +-PAPER=a4 ++PAPER=letter + + # Makefile for PSUtils under Unix + + OS = UNIX + +-BINDIR = /usr/local/bin ++BINDIR = /usr/bin + SCRIPTDIR = $(BINDIR) +-INCLUDEDIR = /usr/local/share/psutils +-PERL = /usr/local/bin/perl ++INCLUDEDIR = /usr/share/psutils ++PERL = /usr/bin/perl + + BINMODE = 0755 + MANMODE = 0644 +@@ -36,7 +36,7 @@ + INSTALL = install -c -m $(BINMODE) + INSTALLMAN = install -c -m $(MANMODE) + MANEXT = 1 +-MANDIR = /usr/local/share/man/man$(MANEXT) ++MANDIR = /usr/man/man$(MANEXT) + + CC = gcc + CFLAGS = -DPAPER=\"$(PAPER)\" -DUNIX -O -Wall diff --git a/source/ap/a2ps/slack-desc b/source/ap/a2ps/slack-desc new file mode 100644 index 000000000..6cdc18957 --- /dev/null +++ b/source/ap/a2ps/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +a2ps: a2ps (any to PostScript filter) +a2ps: +a2ps: GNU a2ps is an Any to PostScript filter. Of course it processes +a2ps: plain text files, but also pretty prints quite a few popular +a2ps: programming languages. Also contained in this package is psutils, a +a2ps: collection of programs for manipulating PostScript files. +a2ps: +a2ps: a2ps is used by Apsfilter, so be sure to install this package if you +a2ps: plan to do any printing. +a2ps: +a2ps: diff --git a/source/ap/acct/acct-6.4pre1-6.diff b/source/ap/acct/acct-6.4pre1-6.diff new file mode 100644 index 000000000..8db3d7be7 --- /dev/null +++ b/source/ap/acct/acct-6.4pre1-6.diff @@ -0,0 +1,2636 @@ +--- acct-6.4~pre1.orig/debian/rules ++++ acct-6.4~pre1/debian/rules +@@ -0,0 +1,90 @@ ++#!/usr/bin/make -f ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++include /usr/share/dpatch/dpatch.make ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++ ++CFLAGS = -Wall -g ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ ++config.status: configure patch ++ dh_testdir ++ ++ # Configuring package ++ CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info ++ ++build: build-stamp ++build-stamp: config.status ++ dh_testdir ++ ++ # Building package ++ $(MAKE) ++ texi2html -verbose -monolithic accounting.texi ++ ++ touch build-stamp ++ ++clean: unpatch ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ ++ # Cleaning package ++ [ ! -f Makefile ] || $(MAKE) distclean ++ rm -f accounting.html ++ifneq "$(wildcard /usr/share/misc/config.sub)" "" ++ cp -f /usr/share/misc/config.sub config.sub ++endif ++ifneq "$(wildcard /usr/share/misc/config.guess)" "" ++ cp -f /usr/share/misc/config.guess config.guess ++endif ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Installing package ++ $(MAKE) install DESTDIR=$(CURDIR)/debian/acct ++ ++ # Removing last, it's in the sysvinit package instead. ++ rm -f debian/acct/usr/bin/last ++ rm -f debian/acct/usr/share/man/man1/last.1 ++ ++binary-indep: build install ++ ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs ChangeLog ++ dh_installdocs ++ dh_install ++ dh_installinit ++ dh_installcron ++ dh_installinfo ++ dh_installman ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- acct-6.4~pre1.orig/debian/manpages ++++ acct-6.4~pre1/debian/manpages +@@ -0,0 +1 @@ ++debian/manpage/* +--- acct-6.4~pre1.orig/debian/watch ++++ acct-6.4~pre1/debian/watch +@@ -0,0 +1,2 @@ ++version=3 ++http://ftp.gnu.org/gnu/acct/acct-(.*)\.tar\.gz +--- acct-6.4~pre1.orig/debian/postrm ++++ acct-6.4~pre1/debian/postrm +@@ -0,0 +1,21 @@ ++#!/bin/sh ++ ++set -e ++ ++case "$1" in ++ purge) ++ rm -rv /var/log/account ++ ;; ++ ++ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ++ ++ ;; ++ ++ *) ++ echo "postrm called with unknown argument \`$1'" >&2 ++ ;; ++esac ++ ++#DEBHELPER# ++ ++exit 0 +--- acct-6.4~pre1.orig/debian/default ++++ acct-6.4~pre1/debian/default +@@ -0,0 +1,9 @@ ++# Defaults for acct ++ ++# If you want to keep acct installed, but not started automatically, set this ++# variable to 0. Because /etc/cron.daily/acct calls the initscript daily, it is ++# not sufficient to stop acct once after booting if your machine remains up. ++ACCT_ENABLE="1" ++ ++# Amount of days that the logs are kept. ++ACCT_LOGGING="30" +--- acct-6.4~pre1.orig/debian/postinst ++++ acct-6.4~pre1/debian/postinst +@@ -0,0 +1,24 @@ ++#!/bin/sh ++ ++set -e ++ ++case "$1" in ++ configure) ++ mkdir -p /var/log/account ++ touch /var/log/account/pacct ++ chmod 0640 /var/log/account/pacct* ++ chown root:adm /var/log/account/pacct* ++ ;; ++ ++ abort-upgrade|abort-remove|abort-deconfigure) ++ ++ ;; ++ ++ *) ++ echo "postinst called with unknown argument \`$1'" >&2 ++ ;; ++esac ++ ++#DEBHELPER# ++ ++exit 0 +--- acct-6.4~pre1.orig/debian/cron.monthly ++++ acct-6.4~pre1/debian/cron.monthly +@@ -0,0 +1,45 @@ ++#!/bin/sh ++ ++LOGROTATE="/etc/cron.daily/logrotate" ++ ++test -x /usr/sbin/accton || exit 0 ++ ++echo "Login accounting for the month ended `date`:" > /var/log/wtmp.report ++echo >> /var/log/wtmp.report ++ ++# The logrotate script happens to run before this one, effectively swallowing ++# all information out of wtmp before we can use it. Hence, we need to use the ++# previous file. Bad hack. Too bad we never heard from the logrotate maintainer ++# about this ... ++ ++if [ -f "${LOGROTATE}" ] && [ -x /usr/sbin/logrotate ] ++then ++ # make sure wtmp.1 exists ++ if [ -f /var/log/wtmp.1 ] ++ then ++ LOGFILE="/var/log/wtmp.1" ++ fi ++ if [ -f /var/log/wtmp.1.gz ] ++ then ++ LOGFILE2="`tempfile`" ++ fi ++ if [ -n "${LOGFILE}" ] && [ -n "${LOGFILE2}" ] ++ then ++ ac -f "${LOGFILE2}" -f "${LOGFILE}" -p | sort -nr -k2 >> /var/log/wtmp.report ++ echo >> /var/log/wtmp.report ++ last -f "${LOGFILE2}" >> /var/log/wtmp.report ++ elif [ -n "${LOGFILE}" ] && [ -z "${LOGFILE2}" ] ++ then ++ ac -f "${LOGFILE}" -p | sort -nr -k2 >> /var/log/wtmp.report ++ echo >> /var/log/wtmp.report ++ last -f "${LOGFILE}" >> /var/log/wtmp.report ++ fi ++ rm -f "${LOGFILE2}" ++else ++ ac -p | sort -nr -k2 >> /var/log/wtmp.report ++ echo >> /var/log/wtmp.report ++ last >> /var/log/wtmp.report ++fi ++ ++chown root:adm /var/log/wtmp.report ++chmod 640 /var/log/wtmp.report +--- acct-6.4~pre1.orig/debian/doc-base ++++ acct-6.4~pre1/debian/doc-base +@@ -0,0 +1,15 @@ ++Document: acct ++Title: The GNU Accounting utilities ++Author: Noel Cragg ++Abstract: The GNU Accounting utilities for process and login accounting ++ GNU Accounting Utilities is a set of utilities which reports and summarizes ++ data about user connect times and process execution statistics. ++ . ++ "Login accounting" provides summaries of system resource usage based on connect ++ time, and "process accounting" provides summaries based on the commands ++ executed on the system. ++Section: Apps/System ++ ++Format: HTML ++Index: /usr/share/doc/acct/accounting.html ++Files: /usr/share/doc/acct/accounting.html +--- acct-6.4~pre1.orig/debian/copyright ++++ acct-6.4~pre1/debian/copyright +@@ -0,0 +1,34 @@ ++This package was debianized by Daniel Baumann <daniel@debian.org> on ++Sat, 18 Mar 2006 18:38:00 +0100. ++ ++It was downloaded from: ++ ++ <http://ftp.gnu.org/gnu/acct/> ++ ++Upstream Author: ++ ++ Tim Schmielau <tim@physik3.uni-rostock.de> ++ ++License: ++ ++ Copyright (C) 1993-2006 Free Software Foundation, Inc. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ ++On Debian systems, the complete text of the GNU General Public License ++can be found in /usr/share/common-licenses/GPL file. ++ ++The Debian packaging is (C) 2006-2007, Daniel Baumann <daniel@debian.org> and ++is licensed under the GPL, see `/usr/share/common-licenses/GPL-2'. +--- acct-6.4~pre1.orig/debian/init.d ++++ acct-6.4~pre1/debian/init.d +@@ -0,0 +1,97 @@ ++#!/bin/sh ++ ++### BEGIN INIT INFO ++# Provides: acct ++# Required-Start: $remote_fs $syslog ++# Required-Stop: $remote_fs $syslog ++# Default-Start: 2 3 4 5 ++# Default-Stop: 0 1 6 ++# Short-Description: process and login accounting ++# Description: GNU Accounting Utilities is a set of utilities which ++# reports and summarizes data about user connect times and ++# process execution statistics. ++### END INIT INFO ++ ++PATH=/sbin:/bin:/usr/sbin:/usr/bin ++DAEMON=/usr/sbin/accton ++NAME=acct ++DESC="process accounting" ++ ++test -x $DAEMON || exit 0 ++ ++# Include acct defaults if available ++if [ -f /etc/default/acct ] ++then ++ . /etc/default/acct ++else ++ ACCT_ENABLE="1" ++ ACCT_LOGGING="30" ++fi ++ ++set -e ++ ++case "$1" in ++ start) ++ if [ "${ACCT_ENABLE}" = "1" ] ++ then ++ ++ # Have to turn this on to be able to test the return code ++ set +e ++ ++ echo -n "Starting $DESC: " ++ /usr/sbin/accton /var/log/account/pacct 2>/dev/null ++ ++ rv=$? ++ if [ $rv -eq 0 ] ++ then ++ echo "$NAME." ++ elif [ $rv -eq 38 ] ++ then ++ echo "failed." ++ echo "Process accounting not available on this system." ++ elif [ $rv -eq 16 ] ++ then ++ echo "failed." ++ echo "Process accounting already running on this system." ++ else ++ logger -p daemon.err "Unexpected error code $rv received in /etc/init.d/acct" ++ fi ++ ++ fi ++ ++ set -e ++ ;; ++ ++ stop) ++ echo -n "Stopping $DESC: " ++ ++ # Have to turn this on to be able to test the return code ++ set +e ++ ++ /usr/sbin/accton off 2>/dev/null ++ ++ if [ $? -eq 0 ] ++ then ++ echo "$NAME." ++ else ++ echo "failed." ++ echo "Process accounting not available on this system." ++ fi ++ ++ set -e ++ ;; ++ ++ restart|force-reload) ++ $0 stop ++ sleep 1 ++ $0 start ++ ;; ++ ++ *) ++ N=/etc/init.d/$NAME ++ echo "Usage: $N {start|stop|restart|force-reload}" >&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 +--- acct-6.4~pre1.orig/debian/changelog ++++ acct-6.4~pre1/debian/changelog +@@ -0,0 +1,602 @@ ++acct (6.4~pre1-6) unstable; urgency=medium ++ ++ * Adjusted lsb header of init script, thanks Petter Reinholdtsen ++ <pere@hungry.com> (Closes: #466279). ++ ++ -- Daniel Baumann <daniel@debian.org> Sat, 8 Mar 2008 09:04:00 +0100 ++ ++acct (6.4~pre1-5) unstable; urgency=low ++ ++ * Bumped to new policy. ++ * Using new homepage field in control. ++ * Don't hide make errors in clean target. ++ * Removing historic changes entries in the first lines of changelog ++ entries, they are present in the actual entries anyway but are ++ causing lintian noise. ++ ++ -- Daniel Baumann <daniel@debian.org> Thu, 27 Dec 2007 08:45:00 +0100 ++ ++acct (6.4~pre1-4) unstable; urgency=low ++ ++ * Minor cleanups. ++ * Bumped to debhelper 5. ++ * Added lsb header to init.d. ++ * Added the remaining things to cron.monthly, other things were solved ++ different already (Closes: #378359). ++ ++ -- Daniel Baumann <daniel@debian.org> Sun, 29 Apr 2007 12:27:00 +0200 ++ ++acct (6.4~pre1-3) unstable; urgency=medium ++ ++ * Adapted the patch from Dean Gaudet <dean-debian@arctic.org> to add ++ lastcomm -f - stdin and --forwards support to current acct ++ (Closes: #262583). ++ * Fixed cron.monthly to not process the non-rotated logfile twice if the ++ rotated one isn't existing (Closes: #51796). ++ ++ -- Daniel Baumann <daniel@debian.org> Sun, 5 Nov 2006 13:55:00 +0100 ++ ++acct (6.4~pre1-2) unstable; urgency=medium ++ ++ * Forgot to remove unused var in init.d (Closes: #397134). ++ ++ -- Daniel Baumann <daniel@debian.org> Sun, 5 Nov 2006 13:55:00 +0100 ++ ++acct (6.4~pre1-1) unstable; urgency=medium ++ ++ * New email address. ++ * Hardcoding location of the log files, using environment variables does not ++ work for all binaries (Closes: #377835, #380744, #385626, #392045, #396444). ++ * Adjusted init.d script to log to syslog directly as suggested by ++ Gian Piero Carrubba <gpcarrubba@libero.it> (Closes: #208939). ++ * Updated sort call in cron.monthly to new syntax as found out by ++ Gilles Mocellin <gilles.mocellin@free.fr> and others ++ (Closes: #375712, #381492). ++ * Updated ac call in cron.monthly to process both $WTMP and /var/log/wtmp.1 ++ (Closes: #324910). ++ * Fixed spelling mistake in default (Closes: #392023). ++ * Fixed spelling mistake and incompleteness in dump-acct.8 (Closes: #392134). ++ ++ -- Daniel Baumann <daniel@debian.org> Sat, 4 Nov 2006 10:10:00 +0100 ++ ++acct (6.3.99+6.4pre1-4) unstable; urgency=low ++ ++ * Fixed typo in init.d (Closes: #361109, #361109). ++ ++ -- Daniel Baumann <daniel.baumann@panthera-systems.net> Sun, 25 Jun 2006 08:37:00 +0200 ++ ++acct (6.3.99+6.4pre1-3) unstable; urgency=low ++ ++ * Storing logging information for a month instead of a week (Closes: #271466). ++ * Rewritten init.d and fixed accton call in init.d (Closes: #361109, #361109). ++ * Using /etc/default/acct now to store settings ++ (Closes: #219194, #353034, #361111). ++ * Fixed manpage error (Closes: #360098, #364589) ++ ++ -- Daniel Baumann <daniel.baumann@panthera-systems.net> Fri, 23 Jun 2006 06:53:00 +0200 ++ ++acct (6.3.99+6.4pre1-2) unstable; urgency=low ++ ++ * Removed useless debconf message (Closes: #358698). ++ * Removed last documentation (Closes: #360302). ++ ++ -- Daniel Baumann <daniel.baumann@panthera-systems.net> Sun, 28 May 2006 05:36:00 +0200 ++ ++acct (6.3.99+6.4pre1-1) unstable; urgency=low ++ ++ * New maintainer (Closes: #357362). ++ * New upstream release: ++ - supporting v3 file format (Closes: #289648, #291154, #327134) ++ * Redone debian directory: ++ - added watch file. ++ - corrected copyright file (Closes: #290052). ++ - fixed debconf depends (Closes: #331731). ++ - removed references to non-existing pacct in dump-acct.8 (Closes: #293837). ++ - removed dpatches: one was merged upstream, manpages are broken-out, and ++ /usr/bin/last ist removed after compilation (less intrusive). ++ - added Czech debconf translation (Closes: #282320, #287291). ++ - added Finnish debconf translation (Closes: #303851). ++ - added Vietnamese debconf translation (Closes: #307597). ++ - updated Dansk debconf translation (Closes: #241243). ++ - updated German debconf translation (Closes: #314136). ++ * Acknowledge NMU: ++ - fixed gzipped logfile handling in cron.monthly ++ (Closes: #187538, #208220, #212961). ++ - adjusted logfile path for logger call in init.d (Closes: #208939). ++ ++ -- Daniel Baumann <daniel.baumann@panthera-systems.net> Sat, 18 Mar 2006 18:38:00 +0100 ++ ++acct (6.3.5-39) unstable; urgency=low ++ ++ * Acknowledging NMU's. Thanks. (closes: #187539, #198581, #198581) ++ * Added Co-Maintainer (me) to Uploaders field. ++ * Added/updated polish, greek, portuguese, japanese translations. ++ (closes: #208954, #229531, #216200, #222063, #229499, #229523) ++ * Bumped Standars-Version to 3.6.1. ++ ++ -- Andrés Roldán <aroldan@debian.org> Sun, 1 Feb 2004 23:02:22 +0000 ++ ++acct (6.3.5-38.2) unstable; urgency=low ++ ++ * Fix gzip support in cron.monthly to not delete/recreate the wtmp file ++ (gunzip: /var/log/wtmp.1 already exists; not overwritten) ++ ++ -- Matt Zimmerman <mdz@debian.org> Sun, 1 Feb 2004 12:00:00 -0800 ++ ++acct (6.3.5-38.1) unstable; urgency=low ++ ++ * NMU with maintainer consent ++ * Handled gzipped wtmp file. Closes: #187539. Thanks Tero Tilus ++ * Switch to po-debconf templates. Closes: #198581 ++ * Added danish templates translation (converted to gettext). Closes: #174728 ++ ++ -- Christian Perrier <bubulle@debian.org> Mon, 28 Jul 2003 16:32:05 +0200 ++ ++acct (6.3.5-38) unstable; urgency=low ++ ++ * New maintainer (closes: #177233). ++ * Package builded from the scratch. ++ * Fixed danish debconf template. ++ * Fixed broken output on ia64 and alpha (closes: #169099). ++ ++ -- Luis Bustamante <luferbu@fluidsignal.com> Sun, 19 Jan 2003 01:26:12 -0500 ++ ++acct (6.3.5-37) unstable; urgency=low ++ ++ * debian/dump-acct.8: Clarified meaning of time field (Closes: #177020) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Fri, 17 Jan 2003 19:22:55 -0600 ++ ++acct (6.3.5-36) unstable; urgency=low ++ ++ * debian/template: Added new debconf text in Danish (Closes: #174727) ++ * debian/control: Upped debconf versioned Depends to ">= 1.2.9" (lintian) ++ * debian/control: Small editing in Description (lintian) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Wed, 1 Jan 2003 08:56:23 -0600 ++ ++acct (6.3.5-35) unstable; urgency=low ++ ++ * etc/init.d/acct: Applied patch by ralf.hildebrandt@charite.de to rely ++ only on 'uname -r' as 'uname -a' fails on hppa (Closes: 165535) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 20 Oct 2002 19:17:43 -0500 ++ ++acct (6.3.5-34) unstable; urgency=low ++ ++ * debian/control: s|Debian Linux|Debian GNU/Linux| (Closes: #150886) ++ * debian/rules: Move #DEBHELPER# to end so that /etc/init.d/acct is ++ called after modes/owner chg on /var/account/pacct (Closes: #153905) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Mon, 22 Jul 2002 19:44:05 -0500 ++ ++acct (6.3.5-33) unstable; urgency=low ++ ++ * debian/cron.monthly: Test for /var/log/wtmp.1 (Closes: #146918) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sat, 18 May 2002 12:20:57 -0500 ++ ++acct (6.3.5-32) unstable; urgency=low ++ ++ * debian/templates: Updated Russian debconf template (Closes: #136918) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sat, 18 May 2002 12:20:10 -0500 ++ ++acct (6.3.5-31) unstable; urgency=low ++ ++ * debian/templates: Updated French debconf template (Closes: #134624) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 26 Feb 2002 20:49:57 -0600 ++ ++acct (6.3.5-30) unstable; urgency=low ++ ++ * debian/templates: New debconf text in russian (Closes: #112535) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Fri, 14 Dec 2001 18:55:33 -0600 ++ ++acct (6.3.5-29) unstable; urgency=low ++ ++ * debian/templates: Changed Type from text to note (Closes: #106327) ++ * debian/templates: New debconf text in spanish (Closes: #106935) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 31 Jul 2001 22:17:49 -0500 ++ ++acct (6.3.5-28) unstable; urgency=low ++ ++ * sa.c: Applied patch by LaMont Jones which enables compilation by ++ gcc-3.0, the default compiler on the parisc architecure (Closes: #103147) ++ * debian/prerm: Don't call "/etc/init.d/acct stop" explicitly as ++ debhelper's dh_installinit also adds a call. ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Mon, 2 Jul 2001 21:40:05 -0500 ++ ++acct (6.3.5-27) unstable; urgency=low ++ ++ * debian/{cron.daily,postinst}: change pacct to mode 0640,root.adm. ++ Thanks to Manuel López Moreno <mlm@luname.net> (Closes: #86045) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 1 May 2001 22:21:27 -0500 ++ ++acct (6.3.5-26) unstable; urgency=low ++ ++ * debian/templates: Added text for pt translation (Closes: #89439) ++ * debian/{pre,post}{inst,rm}: lintian cleanups ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Thu, 19 Apr 2001 21:54:36 -0500 ++ ++acct (6.3.5-25) unstable; urgency=low ++ ++ * debian/control: Added Standards-Version: back in (Closes: #86925) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Wed, 21 Feb 2001 21:01:50 -0600 ++ ++acct (6.3.5-24) unstable; urgency=low ++ ++ * debian/control: Added Build-Depends on texinfo (Closes: #85073) ++ * For good measure, added a few more suggested by dpkg-genbuilddeps ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Wed, 7 Feb 2001 22:29:02 -0600 ++ ++acct (6.3.5-23) unstable; urgency=low ++ ++ * debian/templates: Added non-English debconf text text for sv, nl, es ++ and a new one for fr. (Closes: #83478, #83583, #84017, #84411) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 4 Feb 2001 19:56:09 -0600 ++ ++acct (6.3.5-22) unstable; urgency=low ++ ++ * debian/control: Build-Depends on texi2html and no longer on tetex-bin ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Thu, 4 Jan 2001 20:42:54 -0600 ++ ++acct (6.3.5-21) unstable; urgency=low ++ ++ * debian/cron.monthly: Special case for logrotate (Closes: #68043) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 6 Aug 2000 16:15:23 -0400 ++ ++acct (6.3.5-20) unstable; urgency=low ++ ++ * debian/control: Add texi2html to Build-Depends (Closes: #67531) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Fri, 21 Jul 2000 17:22:55 -0400 ++ ++acct (6.3.5-19) unstable; urgency=low ++ ++ * debian/rules: Install dump-acct.8 and dump-utmp.8 which were ++ contributed by Ognyan Kulev <ogi@fmi.uni-sofia.bg> ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Wed, 19 Jul 2000 19:08:13 -0400 ++ ++acct (6.3.5-18) unstable; urgency=low ++ ++ * debian/templates: Apply Italian debconf text (Closes: #64160) ++ * debian/templates: Also added German and French text ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sat, 27 May 2000 16:28:13 -0400 ++ ++acct (6.3.5-17) unstable; urgency=low ++ ++ * debian/control: Added Build-Depends: information (Closes: #51840) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Wed, 15 Dec 1999 18:42:48 -0500 ++ ++acct (6.3.5-16) unstable; urgency=low ++ ++ * postinst: Added db_stop upon Joey Hess' advice (Closes: #50043) ++ * control: Upgraded to Policy 3.1.0 ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 14 Nov 1999 19:39:17 -0500 ++ ++acct (6.3.5-15) unstable; urgency=low ++ ++ * Ah, the joys of new technology. Helping out with the whirlwind upgrade ++ to the new debconf, we were bitten by a simple mistake in the config ++ file. Thanks again to Joey Hess for a quick fix (Closes: #48861) ++ * control: Require debconf >= 0.2 ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Mon, 1 Nov 1999 20:45:05 -0500 ++ ++acct (6.3.5-14) unstable; urgency=low ++ ++ * preinst: Test for install-docs (fixes Lintian error) ++ * postinst, config: Small debconf changes, kindly supplied by Joey Hess ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 31 Oct 1999 10:14:32 -0500 ++ ++acct (6.3.5-13) unstable; urgency=low ++ ++ * Integrated Joey Hess' changes for debconf. ++ ++ * debian/rules: Adapted to use /usr/share/ following the recommendation ++ on FHS transition from the Technical Committee ++ * debian/control: Upgraded to Debian Policy 3.0.1 ++ ++ * debian/control: Removed obsolete note about required kernel patch ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sat, 2 Oct 1999 11:35:22 -0400 ++ ++acct (6.3.5-12) unstable; urgency=low ++ ++ * Upgraded to new Debian Perl Policy ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 4 Jul 1999 14:19:41 -0400 ++ ++acct (6.3.5-11) unstable; urgency=low ++ ++ * Recompiled on a 2.2.* system ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 30 May 1999 11:59:22 -0400 ++ ++acct (6.3.5-10) unstable; urgency=low ++ ++ * debian/rules: Define -DHAVE_LINUX_ACCT_H=1 in order to use acct.h from ++ the 2.2.9 kernel and not sys.h from glibc-2.0 ++ * debian/acctdump: No longer installed as it works neither with ++ linux/acct.h, nor with sys/acct.h (and there still is dump-acct) ++ * compare_kernel_version: ++ -- changed to use POSIX::uname, not `uname` ++ -- added run-time flag -d for debug mode ++ -- corrected return value logic (fixes #37421) ++ * compare_kernel_version.8: added a simple manual page ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 16 May 1999 21:52:52 -0400 ++ ++acct (6.3.5-9) unstable; urgency=low ++ ++ * Recompiled under 2.2.* kernel (#18314, #24085) ++ ++ * Added a simple script /usr/sbin/compare_kernel_version to test the ++ running kernel against a command-line argument specifying a minimum ++ kernel version ++ * postinst: test for kernel >= 2.2 and, if needed, display a message ++ suggesting the slink version of the package ++ * /etc/init.d/acct: test for kernel >= 2.2 and exit early with short ++ mesage if installed kernel does not match (ie < 2.2) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 4 May 1999 20:44:34 -0400 ++ ++acct (6.3.5-8) unstable; urgency=low ++ ++ * debian/prerm: Call /etc/init.d/acct to stop accounting as this more ++ robust against missing Accounting support in the kernel. (fixes #32711) ++ * debian/control: Added note that Accounting support has to be compiled ++ into the kernel for this to work. ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 2 Feb 1999 18:30:56 -0500 ++ ++acct (6.3.5-7) unstable; urgency=low ++ ++ * debian/control: Deleted stale text errenously left over (fixes #32616) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Fri, 29 Jan 1999 18:38:28 -0500 ++ ++acct (6.3.5-6) unstable; urgency=low ++ ++ * debian/{rules,postinst,postrm}: Removed support for html documentation ++ through menu as it is now provided by doc-base ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Thu, 14 Jan 1999 20:50:25 -0500 ++ ++acct (6.3.5-5) unstable; urgency=low ++ ++ * Added support for doc-base ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 5 Jan 1999 21:43:16 -0500 ++ ++acct (6.3.5-4) frozen unstable; urgency=low ++ ++ * [cron.daily, cron.monthly] Added tests for the existence of ++ /usr/sbin/accton. This helps for cases where acct is removed, but not ++ purged, and these conffiles are still around. (fixes #29340) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Thu, 12 Nov 1998 21:32:37 -0500 ++ ++acct (6.3.5-3) unstable; urgency=low ++ ++ * Corrected typos in console messages in /etc/init.d/acct (fixes #23480) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sat, 13 Jun 1998 11:57:14 -0400 ++ ++acct (6.3.5-2) unstable; urgency=low ++ ++ * Changed /etc/init.d/acct by adding two 'set +e; ... set -e' blocks ++ so that missing accounting support is properly recognised in all ++ branches of the script (fixes #23282) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 9 Jun 1998 21:36:16 -0400 ++ ++acct (6.3.5-1) unstable; urgency=low ++ ++ * Upgraded to new upstream version 6.3.5 (fixes #3249) ++ * This version does not work under 2.1.* kernels which the upstream ++ author is trying to rectify. ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Wed, 27 May 1998 18:43:08 -0400 ++ ++acct (6.3.2-4) frozen unstable; urgency=low ++ ++ * Changed debian/rules to not install last.1 as we don't install the ++ last(1) command from acct (but rather sysvinit's) (fixes #22215) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Thu, 7 May 1998 20:19:05 -0400 ++ ++acct (6.3.2-3) unstable; urgency=low ++ ++ * Removed the note regarding accounting patch for kernels younger than ++ 1.3.72 from debian/copyright and debian/control. Thanks to Richard ++ Braakman <dark@xs4all.nl> for pointing this out (fixes #21334) ++ * Added the 'acctdump' program which was provided by Ian Jackson ++ <ian@davenant.greenend.org.uk> (fixes #20839) ++ * Upgraded debian/rules to debhelper ++ * Upgraded to Debian Policy 2.4.1 ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sat, 18 Apr 1998 16:12:41 -0400 ++ ++acct (6.3.2-2) frozen unstable; urgency=low ++ ++ * Really changed /etc/init.d/acct so that logger reports to ++ /var/log/daemon.log and not to /var/adm/daemon.log (fixes #18763) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 24 Mar 1998 19:34:07 -0500 ++ ++acct (6.3.2-1) unstable; urgency=low ++ ++ * Upgraded to new upstream version 6.3.2 ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 10 Mar 1998 19:46:34 -0500 ++ ++acct (6.3-2) unstable; urgency=low ++ ++ * Changed /etc/init.d/acct so that logger reports to /var/log/daemon.log ++ and not to /var/adm/daemon.log (fixes #18763) ++ * Fixed FSF address in copyright (lintian) ++ * Redirect update-rc.d call to /dev/null in postrm (lintian) ++ * Added force-reload and restart targets to /etc/init.d/acct (lintian) ++ * Created links to ../man7/undocumented.7.gz in lieu of manual pages ++ for the two utility programs dump-acct and dump-utmp (lintian) ++ * Upgraded to Debian Policy 2.4.0.0 ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Mon, 9 Mar 1998 20:24:05 -0500 ++ ++acct (6.3-1) unstable; urgency=low ++ ++ * Upgraded to new upstream version 6.3 (which has been promoted from ++ alpha.gnu.mit.edu to the brave GNU world of prep.ai.mit.edu) ++ * Compiled with GNU libc2 aka libc6 ++ * Now ships the unmodified upstream source as acct_6.3.orig.tar.gz ++ * Changed debian/rules to also create accounting.html via texi2html ++ * Added menu entry for html documentation ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Tue, 19 Aug 1997 22:11:21 -0400 ++ ++acct (6.2-5) unstable; urgency=low ++ ++ * Added a variable to /etc/init.d/acct so that acct is installed but ++ not started automatically if this variable is unset (fixes bug #11126) ++ * Changed /etc/cron.daily/acct to call acct via /etc/init.d/acct and not ++ directly so that the new variable is tested (fixes bug #11126) ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Wed, 9 Jul 1997 22:18:30 -0400 ++ ++acct (6.2-4) unstable; urgency=low ++ ++ * The preinst no longer stops accounting during an upgrade as this is ++ already done by the the postrm of the replaced packaged (fixes bug#7320) ++ ++ * No longer installs acct.5 which is provided by the manpages package ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Mon, 3 Mar 1997 20:57:37 -0500 ++ ++acct (6.2-3) unstable; urgency=low ++ ++ * Use logger(1) to report unexpected return calls from accton(8) as ++ suggested by Russell John Coker <rjc@snoopy.virtual.net.au> ++ ++ * Converted to Debian Standard 2.1.2.2 (fixes #7121) ++ * Changed maintainer email address to <edd@debian.org> ++ ++ -- Dirk Eddelbuettel <edd@debian.org> Sun, 9 Feb 1997 22:00:42 -0500 ++ ++Tue Jul 9 22:33:18 1996 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * acct-6.2-2 release ++ ++ * debian.rules: fixed copyright installation (fixes bug#3738) ++ ++Mon Jul 8 11:07:01 1996 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * acct-6.2-1 release ++ ++ * acct.rc: /etc/init.d/acct tests for accton (fixes bug#3513) ++ ++ * debian.rules: compress man pages with gzip -9 ++ ++ * debian.postrm: "purge" now deletes /var/account directory ++ ++ * debian.control: changed description ++ ++Sat Apr 20 22:30:46 1996 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * acct-6.2-0 release: updated to new upstream version acct-6.2 ++ ++Wed Apr 10 19:38:37 1996 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * acct-6.1-0 release ++ ++ * converted to new upstream version acct-6.1 (fixes bug#2069) ++ ++ * added man pages for the acct commands that were provided by ++ Susan G. Kleinmann <sgk@sgk.tiac.net> and a simple acct.5 man ++ page (fixes bug#1737) ++ ++ * ac.c: added a space to printf format (should fix bug#2283) ++ ++ * debian.rules: provide only acct, last is now provided by sysvinit ++ ++ * debian.control: added Architecture: field ++ ++ * acct.daily: exit(0) so that cron doesn't get the errno from accton.c ++ ++Sat Dec 2 14:00:19 1995 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * acct-5-13 and last-5-13 release ++ ++ * debian.control: ELF release, depends on libc5 ++ ++Fri Oct 13 09:41:36 1995 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * acct-5-12 and last-5-12 release ++ ++ * uid_hash.h (NAME_LEN): fixed bug#1651 reported and patched by ++ Austin Donnelly <and1000@cam.ac.uk> ++ ++Wed Oct 11 08:53:29 1995 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * acct-5-11 and last-5-11 release ++ ++ * debian.postinst: call update-rc.d (fixes bug #1622) ++ ++Mon Oct 2 16:39:00 1995 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * dropped `alpha' from package names, now acct-5-10 and last-5-10 ++ ++ * accton.c: exit() now returns value of `errno' and /etc/init.d/acct ++ examines that value; this gives better messages ++ ++ * accounting.texi: added a missing formatter for @item ++ ++ * last.1 man page addded ++ ++Wed Sep 27 10:59:55 1995 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * debian.control, debian.README: fixed bug #1486 by adding a note ++ that 'sa' is unavailable due to missing support in the current ++ kernel patch ++ ++Thu Sep 21 15:52:14 1995 Dirk Eddelbuettel <edd@miles.econ.queensu.ca> ++ ++ * acct-alpha-5-8 and last-alpha-5-8 ++ ++ * first separate release of 'last' package ++ ++ * changed control file for acct (fixes bugs #1415, #1131 and #969) ++ ++ * silent when accton fails during installation (fixes bug #1415) ++ ++ * new maintainer ++ ++ ++[edd: Changes made by Ian Murdock follow] ++ ++Changes: ++ * added Debian GNU/Linux package maintenance system files ++ * added scripts to rotate process accounting file (daily), to perform ++ monthly login accounting, and to start process accounting at system ++ start time ++ * added __linux__ definitions to files.h (we use /var/account/pacct ++ as ACCT_FILE, /var/account/wtmp as WTMP_FILE, /var/account/savacct ++ as SAVACCT_FILE, and /var/account/usracct as USRACCT_FILE) ++ * changed last to truncate ftp entries by default (as Unix does it) ++ * fixed a typo in accounting.texi +--- acct-6.4~pre1.orig/debian/patches/04-lastcomm-forwards.dpatch ++++ acct-6.4~pre1/debian/patches/04-lastcomm-forwards.dpatch +@@ -0,0 +1,126 @@ ++#!/bin/sh /usr/share/dpatch/dpatch-run ++## 04-lastcomm-forwards.dpatch by Dean Gaudet <dean@arctic.org> ++## ++## DP: Adds lastcomm -f - stdin and --forwards support (Closes: #262583). ++ ++@DPATCH@ ++ ++diff -Naur acct-6.4-pre1.orig/lastcomm.1 acct-6.4-pre1/lastcomm.1 ++--- acct-6.4-pre1.orig/lastcomm.1 2006-01-07 21:55:07.000000000 +0000 +++++ acct-6.4-pre1/lastcomm.1 2006-12-04 11:52:49.000000000 +0000 ++@@ -23,6 +23,10 @@ ++ ] ++ .br ++ [ +++.B \-\-forwards +++] +++.br +++[ ++ .BI \-f " filename" ++ | ++ .BI \-\-file " filename" ++@@ -131,11 +135,25 @@ ++ List records for tty ++ .I name. ++ .TP +++.BI \-\-forwards +++Read file forwards instead of backwards. This avoids trying to seek on the file +++and can be used to read from a pipe. This must be specified prior to any +++.BI \-f +++arguments. +++.TP ++ .BI \-f " filename, " \-\-file " filename" ++ Read from the file ++ .I filename ++ instead of ++-.I acct +++.I acct. +++A filename of "-" will result in reading from stdin. This must either be the +++first +++.BI \-f +++option, or +++.BI \-\-forwards +++must precede all +++.BI \-f +++options. ++ .TP ++ .BI \-\-ahz " hz" ++ Use this flag to tell the program what ++diff -Naur acct-6.4-pre1.orig/lastcomm.c acct-6.4-pre1/lastcomm.c ++--- acct-6.4-pre1.orig/lastcomm.c 2006-01-07 21:56:46.000000000 +0000 +++++ acct-6.4-pre1/lastcomm.c 2006-12-04 11:59:16.000000000 +0000 ++@@ -96,12 +96,9 @@ ++ int c; ++ int other_pacct_file_specified = 0; /* nonzero if the user used the ++ `-f' or `--file' flag */ +++ int backwards = 1; /* default to reading backwards */ ++ ++ program_name = argv[0]; ++- ++- /* Tell the pacct reader that we want to do things backwards! */ ++- ++- pacct_init (1); ++ ++ while (1) ++ { ++@@ -118,6 +115,7 @@ ++ { "tty", required_argument, NULL, 8 }, ++ { "command", required_argument, NULL, 9 }, ++ { "ahz", required_argument, NULL, 10 }, +++ { "forwards", no_argument, NULL, 11 }, ++ #ifdef HAVE_PAGING ++ { "show-paging", no_argument, NULL, 11 }, ++ #endif ++@@ -146,6 +144,18 @@ ++ break; ++ case 'f': ++ case 4: +++ if (strcmp(optarg, "-") == 0) +++ { +++ if (backwards && other_pacct_file_specified) +++ { +++ printf ("%s: -f - must be specified first, or --forwards must precede the first -f\n", program_name); +++ exit (1); +++ } +++ backwards = 0; +++ optarg = "/proc/self/fd/0"; +++ } +++ if (other_pacct_file_specified == 0) +++ pacct_init(backwards); ++ add_pacct_file (optarg); ++ other_pacct_file_specified = 1; ++ break; ++@@ -186,6 +196,14 @@ ++ show_paging = 1; ++ break; ++ #endif +++ case 12: +++ if (other_pacct_file_specified) +++ { +++ printf ("%s: --forwards must come before -f\n", program_name); +++ exit (1); +++ } +++ backwards = 0; +++ break; ++ case 'h': ++ case 3: ++ /* This should fall through to default! */ ++@@ -196,6 +214,9 @@ ++ } ++ } ++ +++ if (other_pacct_file_specified == 0) +++ pacct_init(backwards); +++ ++ /* if we get here, we expect everything else to be a username, ++ terminal name, or command name */ ++ ++@@ -275,7 +296,7 @@ ++ "p" ++ #endif ++ "V] [-f file] [command] ... [user] ... [terminal] ...\n" ++-" [--file <file>] [--strict-match] [--print-controls]\n" +++" [--forwards] [--file <file>] [--strict-match] [--print-controls]\n" ++ " [--user <name>] [--tty <name>] [--command <name>] [--debug]\n" ++ " " ++ #ifdef HAVE_PAGING +--- acct-6.4~pre1.orig/debian/patches/03-acct-file.dpatch ++++ acct-6.4~pre1/debian/patches/03-acct-file.dpatch +@@ -0,0 +1,67 @@ ++#!/bin/sh /usr/share/dpatch/dpatch-run ++## 03-acct-file.dpatch by Daniel Baumann <daniel@debian.org> ++## ++## DP: Adjusts location of the log files (Closes: #377835). ++ ++@DPATCH@ ++ ++diff -Naur acct-6.4-pre1.orig/configure acct-6.4-pre1/configure ++--- acct-6.4-pre1.orig/configure 2006-01-07 22:24:37.000000000 +0000 +++++ acct-6.4-pre1/configure 2006-11-04 11:42:39.000000000 +0000 ++@@ -6147,7 +6147,7 @@ ++ ++ #ifndef ACCT_FILE ++ # if defined(__FreeBSD__) || defined(__linux__) ++-# define ACCT_FILE "/var/account/pacct" +++# define ACCT_FILE "/var/log/account/pacct" ++ # else ++ # if defined(__NetBSD__) ++ # define ACCT_FILE "/var/account/acct" ++@@ -6167,7 +6167,7 @@ ++ ++ #ifndef SAVACCT_FILE ++ # if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) ++-# define SAVACCT_FILE "/var/account/savacct" +++# define SAVACCT_FILE "/var/log/account/savacct" ++ # else ++ # if defined(sun) || defined(AMIX) ++ # define SAVACCT_FILE "/var/adm/savacct" ++@@ -6183,7 +6183,7 @@ ++ ++ #ifndef USRACCT_FILE ++ # if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) ++-# define USRACCT_FILE "/var/account/usracct" +++# define USRACCT_FILE "/var/log/account/usracct" ++ # else ++ # if defined(sun) || defined(AMIX) ++ # define USRACCT_FILE "/var/adm/usracct" ++diff -Naur acct-6.4-pre1.orig/configure.in acct-6.4-pre1/configure.in ++--- acct-6.4-pre1.orig/configure.in 2006-01-07 21:56:46.000000000 +0000 +++++ acct-6.4-pre1/configure.in 2006-11-04 11:43:54.000000000 +0000 ++@@ -214,7 +214,7 @@ ++ ++ #ifndef ACCT_FILE ++ # if defined(__FreeBSD__) || defined(__linux__) ++-# define ACCT_FILE "/var/account/pacct" +++# define ACCT_FILE "/var/log/account/pacct" ++ # else ++ # if defined(__NetBSD__) ++ # define ACCT_FILE "/var/account/acct" ++@@ -234,7 +234,7 @@ ++ ++ #ifndef SAVACCT_FILE ++ # if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) ++-# define SAVACCT_FILE "/var/account/savacct" +++# define SAVACCT_FILE "/var/log/account/savacct" ++ # else ++ # if defined(sun) || defined(AMIX) ++ # define SAVACCT_FILE "/var/adm/savacct" ++@@ -250,7 +250,7 @@ ++ ++ #ifndef USRACCT_FILE ++ # if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) ++-# define USRACCT_FILE "/var/account/usracct" +++# define USRACCT_FILE "/var/log/account/usracct" ++ # else ++ # if defined(sun) || defined(AMIX) ++ # define USRACCT_FILE "/var/adm/usracct" +--- acct-6.4~pre1.orig/debian/patches/02-manpage.dpatch ++++ acct-6.4~pre1/debian/patches/02-manpage.dpatch +@@ -0,0 +1,31 @@ ++#!/bin/sh /usr/share/dpatch/dpatch-run ++## 02-manpage.dpatch by Daniel Baumann <daniel@debian.org> ++## ++## DP: Fixes manpage error ++ ++@DPATCH@ ++ ++diff -Naur acct-6.3.99+6.4pre1.orig/accton.8 acct-6.3.99+6.4pre1/accton.8 ++--- acct-6.3.99+6.4pre1.orig/accton.8 2003-06-05 16:46:12.000000000 +0000 +++++ acct-6.3.99+6.4pre1/accton.8 2006-06-23 06:06:38.000000000 +0000 ++@@ -6,6 +6,10 @@ ++ .na ++ .TP ++ .B accton +++.RI [\| OPTION \|] +++.RB on \||\| off \||\| filename +++.TP +++.B accton ++ [ ++ .B \-V ++ | ++@@ -16,9 +20,6 @@ ++ | ++ .B \-\-help ++ ] ++-[ ++-.I filename ++-] ++ .SH DESCRIPTION ++ .LP ++ .B accton +--- acct-6.4~pre1.orig/debian/patches/01-last.dpatch ++++ acct-6.4~pre1/debian/patches/01-last.dpatch +@@ -0,0 +1,441 @@ ++#!/bin/sh /usr/share/dpatch/dpatch-run ++## 01-last.dpatch by Daniel Baumann <daniel@debian.org> ++## ++## DP: Removing last, it's in the sysvinit package instead. ++ ++@DPATCH@ ++ ++diff -Naur acct-6.3.99+6.4pre1.orig/accounting.info acct-6.3.99+6.4pre1/accounting.info ++--- acct-6.3.99+6.4pre1.orig/accounting.info 2006-01-07 22:46:25.000000000 +0000 +++++ acct-6.3.99+6.4pre1/accounting.info 2006-05-28 03:46:26.000000000 +0000 ++@@ -35,7 +35,6 @@ ++ ++ * ac:: print statistics about connect time ++ * accton:: turns accounting on or off ++-* last:: list last logins of users and terms ++ * lastcomm:: list last commands executed ++ * sa:: print accounting statistics ++ * dump-acct:: print accounting file in human-readable form ++@@ -88,13 +87,6 @@ ++ `accton' ++ turns accounting on or off. ++ ++-`last' ++- lists the logins on the system, most recent first. With `last', ++- you can search the `wtmp' file for a particular user or terminal ++- name (to which the user was connected). Of special interest are ++- two fake users, `reboot' and `shutdown', which are recorded when ++- the system is shut down or reboots. ++- ++ `lastcomm' ++ lists the commands executed on the system, most recent first, ++ showing the run state of each command. With `last', you can ++@@ -458,7 +450,7 @@ ++ processes. ++ ++  ++-File: accounting.info, Node: accton, Next: last, Prev: ac, Up: Top +++File: accounting.info, Node: accton, Next: lastcom, Prev: ac, Up: Top ++ ++ 2 `accton' ++ ********** ++@@ -485,144 +477,9 @@ ++ ++ ++  ++-File: accounting.info, Node: last, Next: lastcomm, Prev: accton, Up: Top ++- ++-3 `last' ++-******** ++- ++-`last' looks through the `wtmp' file (which records all logins/logouts) ++-and prints information about connect times of users. Records are ++-printed from most recent to least recent. Records can be specified by ++-tty and username. tty names can be abbreviated: `last 0' is equivalent ++-to `last tty0'. ++- ++- Multiple arguments can be specified: `last root console' will print ++-all of the entries for the user `root' and all entries logged in on the ++-`console' tty. ++- ++- The special users `reboot' and `shutdown' log in when the system ++-reboots or (surprise) shuts down. `last reboot' will produce a record ++-of reboot times. ++- ++- If `last' is interrupted by a quit signal, it prints out how far its ++-search in the `wtmp' file had reached and then quits: ++- weerapan ttyq6 132.162.32.37 Mon Feb 15 19:07 - 19:21 (00:13) ++- weerapan ttyq6 132.162.32.37 Mon Feb 15 19:07 - 19:21 (00:13) ++- ++- interrupted at Mon Feb 15 19:07:52 1993 ++- ++-3.1 Flags ++-========= ++- ++-This program implements the features of regular u*x `last' with a few ++-extra flags. When `last' is invoked with no arguments, the output ++-looks like this: ++- gr151 ttyp2 ray.cs.oberlin.e Tue Feb 16 17:40 still logged in ++- jhoggard ttyp2 csts.cs.oberlin. Tue Feb 16 17:39 - 17:39 (00:00) ++- jstarr ttyp1 UNIX5.ANDREW.CMU Tue Feb 16 17:38 still logged in ++- jberman ttypb 132.162.32.25 Tue Feb 16 17:34 still logged in ++- alee ttyp7 csts.cs.oberlin. Tue Feb 16 17:34 still logged in ++- jbrick ttyp2 ocvaxa.cc.oberli Tue Feb 16 17:33 - 17:36 (00:03) ++- mbastedo ttypc ocvaxa.cc.oberli Tue Feb 16 17:25 - 17:26 (00:01) ++- rgoodste ttypb ocvaxa.cc.oberli Tue Feb 16 17:22 - 17:26 (00:03) ++- huttar ttyp9 lobby.ti.com Tue Feb 16 17:19 still logged in ++- klutz ttyp3 132.162.32.25 Tue Feb 16 17:14 still logged in ++- ++-`--no-truncate-ftp-entries' ++- When printing out the information, don't chop the number part off ++- of `ftp'XXXX entries. ++- ++-`-NUMBER' ++-`-n NUMBER' ++-`--lines NUMBER' ++- Limit the number of lines that `last' prints. ++- ++-`-f FILENAME' ++-`--file FILENAME' ++- Read from the file FILENAME instead of the system's `wtmp' file. ++- ++-`-y' ++-`--print-year' ++- Print out the year when displaying dates. ++- ++-`-s' ++-`--print-seconds' ++- Print out seconds when displaying dates and durations. ++- ++-`--complain' ++- When the `wtmp' file has a problem (a time-warp, missing record, ++- or whatever), print out an appropriate error. ++- ++-`-x' ++-`--more-records' ++- Print out run level changes, shutdowns, and time changes in ++- addition to the normal records. ++- ++-`-a' ++-`--all-records' ++- Print out all records in the `wtmp' file. ++- ++-`-i' ++-`--ip-address' ++- Some machines store the IP address of a connection in a utmp ++- record. Enabling this option makes `last' print the IP address ++- instead of the hostname. ++- ++-`--tw-leniency VALUE' ++- Set the time warp leniency value (in seconds). See the `ac' ++- chapter for information. +++File: accounting.info, Node: lastcomm, Next: sa, Prev: accton, Up: Top ++ ++-`--tw-suspicious VALUE' ++- Set the time warp suspicious value (in seconds). See the `ac' ++- chapter for information. ++- ++-`-w' ++-`--wide' ++- By default, `last' tries to print each entry within in 80 columns. ++- Use this option to instruct `last' to print out the fields in the ++- `wtmp' file with full field widths. ++- ++-`--debug' ++- Print verbose internal information. ++- ++-`-V' ++-`--version' ++- Print `last''s version number. ++- ++-`-h' ++-`--help' ++- Print `last''s usage string and default locations of system files ++- to standard output. ++- ++-3.2 Problems ++-============ ++- ++-The Clock Change Problem ++-........................ ++- ++-Of the `last's I've tried, all of them have had problems parsing a ++-system clock change. Instead of modifying the entries that have been ++-read, they just ignore the change and give you incorrect values. GNU ++-`last' knows about clock changes and prints the correct times. ++- ++-*TANGIBLE RESULT:* if you `diff' the output of your `last' and GNU ++-`last', entries after (before, rather) a clock change will be off by ++-the amount of the clock change. ++- ++-The Ftp Problem ++-............... ++- ++-Most `last's that I've examined have the same problem here as `ac' ++-does--they log everyone out as soon as they see an ftp entry. ++- ++-*TANGIBLE RESULT:* GNU `last' will reflect the correct time spent in an ++-ftp session, so the totals that it gives will most likely be greater ++-than those given by the system `last'. ++- ++- ++-File: accounting.info, Node: lastcomm, Next: sa, Prev: last, Up: Top ++- ++-4 `lastcomm' +++3 `lastcomm' ++ ************ ++ ++ `lastcomm' prints out information about previously executed commands. ++@@ -663,7 +520,7 @@ ++ ++ * time the process exited ++ ++-4.1 Flags +++3.1 Flags ++ ========= ++ ++ This program implements the features of regular u*x `lastcomm' with a ++@@ -719,7 +576,7 @@ ++  ++ File: accounting.info, Node: sa, Next: dump-acct, Prev: lastcomm, Up: Top ++ ++-5 `sa' +++4 `sa' ++ ****** ++ ++ `sa' summarizes information about previously executed commands as ++@@ -777,7 +634,7 @@ ++ An asterisk will appear after the name of commands that forked but ++ didn't call `exec'. ++ ++-5.1 Flags +++4.1 Flags ++ ========= ++ ++ The availability of these program options depends on your operating ++@@ -918,7 +775,7 @@ ++ *Note*: if more than one sorting option is specified, the list will ++ be sorted by the one specified last on the command line. ++ ++-5.2 Problems +++4.2 Problems ++ ============ ++ ++ I haven't been able to test this on many different machines because the ++@@ -930,7 +787,7 @@ ++ commands when combined with the `--user-summary' or `--print-users' ++ flags. GNU `sa' pays attention to these flags if they are applicable. ++ ++-5.2.1 mips sa +++4.2.1 mips sa ++ ------------- ++ ++ The average memory use is stored as a short rather than a double, so we ++@@ -940,7 +797,7 @@ ++  ++ File: accounting.info, Node: dump-acct, Prev: sa, Up: Top ++ ++-6 `dump-acct' +++5 `dump-acct' ++ ************* ++ ++ `dump-acct' dumps some of the contents of one or more `acct' files in ++@@ -989,7 +846,7 @@ ++ all of the above columns will actually appear, depending on what ++ information your operating system provides in it's `struct acct'. ++ ++-6.1 Flags +++5.1 Flags ++ ========= ++ ++ `--ahz HZ' ++@@ -1041,7 +898,6 @@ ++ Node: Preface1764 ++ Node: ac10432 ++ Node: accton18745 ++-Node: last19250 ++ Node: lastcomm23726 ++ Node: sa26898 ++ Node: dump-acct33192 ++diff -Naur acct-6.3.99+6.4pre1.orig/accounting.texi acct-6.3.99+6.4pre1/accounting.texi ++--- acct-6.3.99+6.4pre1.orig/accounting.texi 2006-01-07 22:46:25.000000000 +0000 +++++ acct-6.3.99+6.4pre1/accounting.texi 2006-05-28 03:59:51.000000000 +0000 ++@@ -75,7 +75,6 @@ ++ ++ * ac:: print statistics about connect time ++ * accton:: turns accounting on or off ++-* last:: list last logins of users and terms ++ * lastcomm:: list last commands executed ++ * sa:: print accounting statistics ++ * dump-acct:: print accounting file in human-readable form ++@@ -130,13 +129,6 @@ ++ @item accton ++ turns accounting on or off. ++ ++-@item last ++-lists the logins on the system, most recent first. With @code{last}, ++-you can search the @code{wtmp} file for a particular user or ++-terminal name (to which the user was connected). Of special interest ++-are two fake users, @samp{reboot} and @samp{shutdown}, which are ++-recorded when the system is shut down or reboots. ++- ++ @item lastcomm ++ lists the commands executed on the system, most recent first, showing ++ the run state of each command. With @code{last}, you can search the ++@@ -515,7 +507,7 @@ ++ anything but user processes. ++ ++ @c ---------------------------------------------------------------------- ++-@node accton, last, ac, Top +++@node accton, lastcomm, ac, Top ++ @chapter @code{accton} ++ ++ @code{accton} turns process accounting on or off. To save process ++@@ -542,146 +534,7 @@ ++ @end table ++ ++ @c ---------------------------------------------------------------------- ++-@node last, lastcomm, accton, Top ++-@chapter @code{last} ++- ++-@code{last} looks through the @code{wtmp} file (which records ++-all logins/logouts) and prints information about connect times of users. ++-Records are printed from most recent to least recent. Records can be ++-specified by tty and username. tty names can be abbreviated: @samp{last ++-0} is equivalent to @samp{last tty0}. ++- ++-Multiple arguments can be specified: @samp{last root console} will print ++-all of the entries for the user @code{root} and all entries logged in on ++-the @code{console} tty. ++- ++-The special users @code{reboot} and @code{shutdown} log in when the ++-system reboots or (surprise) shuts down. @samp{last reboot} will ++-produce a record of reboot times. ++- ++-If @code{last} is interrupted by a quit signal, it prints out how far ++-its search in the @code{wtmp} file had reached and then ++-quits: ++-@example ++-weerapan ttyq6 132.162.32.37 Mon Feb 15 19:07 - 19:21 (00:13) ++-weerapan ttyq6 132.162.32.37 Mon Feb 15 19:07 - 19:21 (00:13) ++- ++-interrupted at Mon Feb 15 19:07:52 1993 ++-@end example ++- ++-@section Flags ++- ++-This program implements the features of regular u*x @code{last} with a few ++-extra flags. When @code{last} is invoked with no arguments, the output ++-looks like this: ++-@example ++-gr151 ttyp2 ray.cs.oberlin.e Tue Feb 16 17:40 still logged in ++-jhoggard ttyp2 csts.cs.oberlin. Tue Feb 16 17:39 - 17:39 (00:00) ++-jstarr ttyp1 UNIX5.ANDREW.CMU Tue Feb 16 17:38 still logged in ++-jberman ttypb 132.162.32.25 Tue Feb 16 17:34 still logged in ++-alee ttyp7 csts.cs.oberlin. Tue Feb 16 17:34 still logged in ++-jbrick ttyp2 ocvaxa.cc.oberli Tue Feb 16 17:33 - 17:36 (00:03) ++-mbastedo ttypc ocvaxa.cc.oberli Tue Feb 16 17:25 - 17:26 (00:01) ++-rgoodste ttypb ocvaxa.cc.oberli Tue Feb 16 17:22 - 17:26 (00:03) ++-huttar ttyp9 lobby.ti.com Tue Feb 16 17:19 still logged in ++-klutz ttyp3 132.162.32.25 Tue Feb 16 17:14 still logged in ++-@end example ++- ++-@table @code ++-@item --no-truncate-ftp-entries ++-When printing out the information, don't chop the number part off of ++-@code{ftp}@var{xxxx} entries. ++- ++-@item -@var{number} ++-@itemx -n @var{number} ++-@itemx --lines @var{number} ++-Limit the number of lines that @code{last} prints. ++- ++-@item -f @var{filename} ++-@itemx --file @var{filename} ++-Read from the file @var{filename} instead of the system's ++-@code{wtmp} file. ++- ++-@item -y ++-@itemx --print-year ++-Print out the year when displaying dates. ++- ++-@item -s ++-@itemx --print-seconds ++-Print out seconds when displaying dates and durations. ++- ++-@item --complain ++-When the @code{wtmp} file has a problem (a time-warp, missing ++-record, or whatever), print out an appropriate error. ++- ++-@item -x ++-@itemx --more-records ++-Print out run level changes, shutdowns, and time changes in addition to ++-the normal records. ++- ++-@item -a ++-@itemx --all-records ++-Print out all records in the @code{wtmp} file. ++- ++-@item -i ++-@itemx --ip-address ++-Some machines store the IP address of a connection in a utmp record. ++-Enabling this option makes @code{last} print the IP address instead of ++-the hostname. ++- ++-@item --tw-leniency @var{value} ++-Set the time warp leniency value (in seconds). See the @code{ac} ++-chapter for information. ++- ++-@item --tw-suspicious @var{value} ++-Set the time warp suspicious value (in seconds). See the @code{ac} ++-chapter for information. ++- ++-@item -w ++-@itemx --wide ++-By default, @code{last} tries to print each entry within in 80 columns. ++-Use this option to instruct @code{last} to print out the fields in the ++-@code{wtmp} file with full field widths. ++- ++-@item --debug ++-Print verbose internal information. ++- ++-@item -V ++-@itemx --version ++-Print @code{last}'s version number. ++- ++-@item -h ++-@itemx --help ++-Print @code{last}'s usage string and default locations of system files ++-to standard output. ++-@end table ++- ++-@section Problems ++- ++-@unnumberedsubsubsec The Clock Change Problem ++- ++-Of the @code{last}s I've tried, all of them have had problems parsing a ++-system clock change. Instead of modifying the entries that have been ++-read, they just ignore the change and give you incorrect values. GNU ++-@code{last} knows about clock changes and prints the correct times. ++- ++-@noindent ++-@strong{TANGIBLE RESULT:} if you @code{diff} the output of your ++-@code{last} and GNU @code{last}, entries after (before, rather) a clock ++-change will be off by the amount of the clock change. ++- ++-@unnumberedsubsubsec The Ftp Problem ++- ++-Most @code{last}s that I've examined have the same problem here as ++-@code{ac} does---they log everyone out as soon as they see an ftp entry. ++- ++-@noindent ++-@strong{TANGIBLE RESULT:} GNU @code{last} will reflect the correct time ++-spent in an ftp session, so the totals that it gives will most likely be ++-greater than those given by the system @code{last}. ++- ++-@c ---------------------------------------------------------------------- ++-@node lastcomm, sa, last, Top +++@node lastcomm, sa, accton, Top ++ @chapter @code{lastcomm} ++ ++ @code{lastcomm} prints out information about previously executed +--- acct-6.4~pre1.orig/debian/patches/00list ++++ acct-6.4~pre1/debian/patches/00list +@@ -0,0 +1,4 @@ ++01-last.dpatch ++02-manpage.dpatch ++03-acct-file.dpatch ++04-lastcomm-forwards.dpatch +--- acct-6.4~pre1.orig/debian/compat ++++ acct-6.4~pre1/debian/compat +@@ -0,0 +1 @@ ++5 +--- acct-6.4~pre1.orig/debian/manpage/dump-acct.8 ++++ acct-6.4~pre1/debian/manpage/dump-acct.8 +@@ -0,0 +1,73 @@ ++.TH DUMP-ACCT 8 "2006-04-22" "6.4pre1" "GNU Accounting Utilities" ++ ++.SH NAME ++dump-acct \- print an acct file in human-readable format. ++ ++.SH SYNOPSIS ++.B dump-acct ++.RB [\| \-r \||\| \-\-reverse \|] ++.RB [\| \-R \||\| \-\-raw \|] ++.RB [\| \-n \||\| \-\-num ++.IR recs \|] ++.RB [\| \-h \||\| \-\-help \|] ++.RB [\| ++.IR files \|] ++ ++.SH DESCRIPTION ++.B dump-acct ++.I filename ++prints a list of all executed processes. This list is written by the kernel ++which must be compiled with BSD process accounting enabled (Debian kernel image ++have it already enabled). It must be started with ++.BR accton (5). ++Note that on Debian systems, this is ensured via the init script ++.IR /etc/init.d/acct . ++.LP ++All fields are separated by vertical line. Fields are: ++.IR command , ++.IR version , ++.IR "user time" , ++.IR "system time" , ++.IR "effective time" , ++.IR uid , ++.IR gid , ++.IR memory , ++.IR io , ++.IR time . ++User, system and effective times are ticks per second. One tick is usually 1/50 ++of a second. The ++.I time ++field shows the start time of the process. ++ ++.SH OPTIONS ++.TP ++.B \-h, \-\-help ++Prints the usage string and default locations of system files to standard output ++and exits. ++.TP ++.B \-n, \-\-num recs ++Number of lines to print. ++.TP ++.B \-r, \-\-reverse ++Start printing from last records. ++.TP ++.B \-R, \-\-raw ++Print raw records, not human-readable. ++ ++.SH FILES ++.TP ++.I acct ++The system wide process accounting file. See ++.BR acct (5) ++for further details. ++ ++.SH SEE ALSO ++.BR acct (5), ++.BR ac (8). ++ ++.SH AUTHOR ++The GNU accounting utilities were written by Noel Cragg <noel@gnu.ai.mit.edu>. ++.PP ++This manual page was written by Ognyan Kulev <ogi@fmi.uni-sofia.bg> and updated ++by Daniel Baumann <daniel@debian.org> for the Debian project (but may be used by ++others). +--- acct-6.4~pre1.orig/debian/manpage/dump-utmp.8 ++++ acct-6.4~pre1/debian/manpage/dump-utmp.8 +@@ -0,0 +1,65 @@ ++.TH DUMP-UTMP 8 "2006-04-22" "6.4pre1" "GNU Accounting Utilities" ++ ++.SH NAME ++dump-utmp \- print an utmp file in human-readable format. ++ ++.SH SYNOPSIS ++.B dump-acct ++.RB [\| \-r \||\| \-\-reverse \|] ++.RB [\| \-R \||\| \-\-raw \|] ++.RB [\| \-n \||\| \-\-num ++.IR recs \|] ++.RB [\| \-h \||\| \-\-help \|] ++.RB [\| ++.IR files \|] ++ ++.SH DESCRIPTION ++.B dump-acct ++.I filename ++prints a list of all logins. This list is usually written in ++.IR /var/log/wtmp . ++.LP ++All fields are separated by vertical line. Fields are: ++.IR "user name" , ++.IR tty , ++.IR type , ++.IR id , ++.IR pid , ++.IR hostaddr , ++.IR host , ++.IR time . ++ ++.SH OPTIONS ++.TP ++.B \-h, \-\-help ++Prints the usage string and default locations of system files to standard output ++and exits. ++.TP ++.B \-n, \-\-num recs ++Number of lines to print. ++.TP ++.B \-r, \-\-reverse ++Start printing from last records. ++.TP ++.B \-R, \-\-raw ++Print raw records, not human-readable. ++ ++.SH FILES ++.TP ++.I wtmp ++The system wide login record file. See ++.BR wtmp (5) ++for further details. ++ ++.SH SEE ALSO ++.BR login (1), ++.BR wtmp (5), ++.BR init (8), ++.BR sa (8). ++ ++.SH AUTHOR ++The GNU accounting utilities were written by Noel Cragg <noel@gnu.ai.mit.edu>. ++.PP ++This manual page was written by Ognyan Kulev <ogi@fmi.uni-sofia.bg> and updated ++by Daniel Baumann <daniel@debian.org> for the Debian project (but may be used by ++others). +--- acct-6.4~pre1.orig/debian/docs ++++ acct-6.4~pre1/debian/docs +@@ -0,0 +1,4 @@ ++NEWS ++README ++TODO ++accounting.html +--- acct-6.4~pre1.orig/debian/control ++++ acct-6.4~pre1/debian/control +@@ -0,0 +1,20 @@ ++Source: acct ++Section: admin ++Priority: optional ++Maintainer: Daniel Baumann <daniel@debian.org> ++Build-Depends: debhelper (>= 5), dpatch, autotools-dev, texi2html ++Standards-Version: 3.7.3 ++Homepage: http://www.gnu.org/software/acct/ ++ ++Package: acct ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Description: The GNU Accounting utilities for process and login accounting ++ GNU Accounting Utilities is a set of utilities which reports and summarizes ++ data about user connect times and process execution statistics. ++ . ++ "Login accounting" provides summaries of system resource usage based on connect ++ time, and "process accounting" provides summaries based on the commands ++ executed on the system. ++ . ++ The 'last' command is provided by the sysvinit package and not included here. +--- acct-6.4~pre1.orig/debian/cron.daily ++++ acct-6.4~pre1/debian/cron.daily +@@ -0,0 +1,21 @@ ++#!/bin/sh ++ ++test -x /usr/sbin/accton || exit 0 ++ ++# Source defaults ++if [ -f /etc/default/acct ] ++then ++ . /etc/default/acct ++else ++ ACCT_LOGGING="30" ++fi ++ ++# Save log file ++cd /var/log/account ++savelog -g adm -m 0640 -u root -c "${ACCT_LOGGING}" /var/log/account/pacct > /dev/null ++ ++# Restart acct ++/etc/init.d/acct restart > /dev/null ++ ++# This is needed because accton.c returns errno ++exit 0 +--- acct-6.4~pre1.orig/config.sub ++++ acct-6.4~pre1/config.sub +@@ -1,9 +1,10 @@ + #! /bin/sh + # Configuration validation subroutine script. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ++# Free Software Foundation, Inc. + +-timestamp='2005-07-08' ++timestamp='2008-01-16' + + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software +@@ -71,8 +72,8 @@ + version="\ + GNU config.sub ($timestamp) + +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +-Free Software Foundation, Inc. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -119,8 +120,9 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ +- kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) ++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ ++ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -171,6 +173,10 @@ + -hiux*) + os=-hiuxwe2 + ;; ++ -sco6) ++ os=-sco5v6 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +@@ -187,6 +193,10 @@ + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +@@ -231,15 +241,16 @@ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ ++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ +- | fr30 | frv \ ++ | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ +- | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ ++ | m32c | m32r | m32rle | m68000 | m68k | m88k \ ++ | maxq | mb | microblaze | mcore | mep \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +@@ -257,28 +268,27 @@ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ +- | ms1 \ ++ | mt \ + | msp430 \ ++ | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ +- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ ++ | score \ ++ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b \ +- | strongarm \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ +- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; +- m32c) +- basic_machine=$basic_machine-unknown +- ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown +@@ -286,6 +296,9 @@ + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; ++ ms1) ++ basic_machine=mt-unknown ++ ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and +@@ -305,18 +318,18 @@ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* \ ++ | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ +- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ ++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ +- | m32r-* | m32rle-* \ ++ | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +@@ -336,30 +349,33 @@ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ +- | ms1-* \ ++ | mt-* \ + | msp430-* \ ++ | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ +- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ +- | xstormy16-* | xtensa-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-*) + ;; +- m32c-*) ++ # Recognize the basic CPU types without company name, with glob match. ++ xtensa*) ++ basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +@@ -431,6 +447,14 @@ + basic_machine=ns32k-sequent + os=-dynix + ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ os=-linux ++ ;; ++ blackfin-*) ++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; + c90) + basic_machine=c90-cray + os=-unicos +@@ -463,8 +487,8 @@ + basic_machine=craynv-cray + os=-unicosmp + ;; +- cr16c) +- basic_machine=cr16c-unknown ++ cr16) ++ basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) +@@ -656,6 +680,14 @@ + basic_machine=m68k-isi + os=-sysv + ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ os=-linux ++ ;; ++ m68knommu-*) ++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; + m88k-omron*) + basic_machine=m88k-omron + ;; +@@ -671,6 +703,10 @@ + basic_machine=i386-pc + os=-mingw32 + ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ os=-mingw32ce ++ ;; + miniframe) + basic_machine=m68000-convergent + ;; +@@ -696,6 +732,9 @@ + basic_machine=i386-pc + os=-msdos + ;; ++ ms1-*) ++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ++ ;; + mvs) + basic_machine=i370-ibm + os=-mvs +@@ -794,6 +833,14 @@ + basic_machine=i860-intel + os=-osf + ;; ++ parisc) ++ basic_machine=hppa-unknown ++ os=-linux ++ ;; ++ parisc-*) ++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; + pbd) + basic_machine=sparc-tti + ;; +@@ -803,6 +850,12 @@ + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; ++ pc98) ++ basic_machine=i386-pc ++ ;; ++ pc98-*) ++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; +@@ -859,6 +912,10 @@ + basic_machine=i586-unknown + os=-pw32 + ;; ++ rdos) ++ basic_machine=i386-pc ++ os=-rdos ++ ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff +@@ -885,6 +942,10 @@ + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; ++ sde) ++ basic_machine=mipsisa32-sde ++ os=-elf ++ ;; + sei) + basic_machine=mips-sei + os=-seiux +@@ -896,6 +957,9 @@ + basic_machine=sh-hitachi + os=-hms + ;; ++ sh5el) ++ basic_machine=sh5le-unknown ++ ;; + sh64) + basic_machine=sh64-unknown + ;; +@@ -985,6 +1049,10 @@ + basic_machine=tic6x-unknown + os=-coff + ;; ++ tile*) ++ basic_machine=tile-unknown ++ os=-linux-gnu ++ ;; + tx39) + basic_machine=mipstx39-unknown + ;; +@@ -1101,7 +1169,7 @@ + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; +- sparc | sparcv8 | sparcv9 | sparcv9b) ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) +@@ -1174,21 +1242,23 @@ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ +- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ ++ | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku*) ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +@@ -1215,6 +1285,9 @@ + -linux-dietlibc) + os=-linux-dietlibc + ;; ++ -linux*) ++ os=`echo $os | sed -e 's|linux|linux-gnu|'` ++ ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; +@@ -1337,6 +1410,12 @@ + # system, and we'll never get to this point. + + case $basic_machine in ++ score-*) ++ os=-elf ++ ;; ++ spu-*) ++ os=-elf ++ ;; + *-acorn) + os=-riscix1.2 + ;; +@@ -1346,9 +1425,9 @@ + arm*-semi) + os=-aout + ;; +- c4x-* | tic4x-*) +- os=-coff +- ;; ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 +@@ -1374,6 +1453,9 @@ + m68*-cisco) + os=-aout + ;; ++ mep-*) ++ os=-elf ++ ;; + mips*-cisco) + os=-elf + ;; +--- acct-6.4~pre1.orig/config.guess ++++ acct-6.4~pre1/config.guess +@@ -1,9 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ++# Free Software Foundation, Inc. + +-timestamp='2005-07-08' ++timestamp='2008-01-23' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +@@ -55,8 +56,8 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +-Free Software Foundation, Inc. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -106,7 +107,7 @@ + trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; + trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; + : ${TMPDIR=/tmp} ; +- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +@@ -138,16 +139,6 @@ + UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +-case "${UNAME_MACHINE}" in +- i?86) +- test -z "$VENDOR" && VENDOR=pc +- ;; +- *) +- test -z "$VENDOR" && VENDOR=unknown +- ;; +-esac +-test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse +- + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +@@ -170,6 +161,7 @@ + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; ++ sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched +@@ -216,8 +208,11 @@ + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; + macppc:MirBSD:*:*) +- echo powerppc-unknown-mirbsd${UNAME_RELEASE} ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} +@@ -335,7 +330,7 @@ + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; +- i86pc:SunOS:5.*:*) ++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) +@@ -537,7 +532,7 @@ + echo rs6000-ibm-aix3.2 + fi + exit ;; +- *:AIX:*:[45]) ++ *:AIX:*:[456]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 +@@ -774,12 +769,19 @@ + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ case ${UNAME_MACHINE} in ++ pc98) ++ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ *) ++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; +- i*:MINGW*:*) ++ *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) +@@ -789,9 +791,18 @@ + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; +- x86:Interix*:[34]*) +- echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' +- exit ;; ++ *:Interix*:[3456]*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ EM64T | authenticamd) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; +@@ -804,7 +815,7 @@ + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; +- amd64:CYGWIN*:*:*) ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) +@@ -825,25 +836,35 @@ + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) +- echo ${UNAME_MACHINE}-${VENDOR}-linux ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux ++ echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux ++ echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) +- echo frv-${VENDOR}-linux ++ echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) +- echo ${UNAME_MACHINE}-${VENDOR}-linux ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) +- echo ${UNAME_MACHINE}-${VENDOR}-linux ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) +- echo ${UNAME_MACHINE}-${VENDOR}-linux ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:*) + eval $set_cc_for_build +@@ -861,8 +882,12 @@ + #endif + #endif + EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` +- test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux"; exit; } ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build +@@ -880,14 +905,21 @@ + #endif + #endif + EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` +- test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux"; exit; } ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; ++ or32:Linux:*:*) ++ echo or32-unknown-linux-gnu ++ exit ;; + ppc:Linux:*:*) +- echo powerpc-${VENDOR}-linux ++ echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) +- echo powerpc64-${VENDOR}-linux ++ echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +@@ -901,33 +933,39 @@ + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-${VENDOR}-linux${LIBC} ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +- PA7*) echo hppa1.1-${VENDOR}-linux ;; +- PA8*) echo hppa2.0-${VENDOR}-linux ;; +- *) echo hppa-${VENDOR}-linux ;; ++ PA7*) echo hppa1.1-unknown-linux-gnu ;; ++ PA8*) echo hppa2.0-unknown-linux-gnu ;; ++ *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-${VENDOR}-linux ++ echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-${VENDOR}-linux ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) +- echo ${UNAME_MACHINE}-${VENDOR}-linux ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) +- echo ${UNAME_MACHINE}-${VENDOR}-linux ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) +- echo x86_64-${VENDOR}-linux ++ echo x86_64-unknown-linux-gnu ++ exit ;; ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so +@@ -942,18 +980,18 @@ + p'` + case "$ld_supported_targets" in + elf32-i386) +- TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux" ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) +- echo "${UNAME_MACHINE}-${VENDOR}-linuxaout" ++ echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; + coff-i386) +- echo "${UNAME_MACHINE}-${VENDOR}-linuxcoff" ++ echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit ;; + "") +- # Either a pre-BFD a.out linker (linuxoldld) or ++ # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. +- echo "${UNAME_MACHINE}-${VENDOR}-linuxoldld" ++ echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit ;; + esac + # Determine whether the default compiler is a.out or elf +@@ -971,7 +1009,7 @@ + LIBC=gnulibc1 + # endif + #else +- #ifdef __INTEL_COMPILER ++ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout +@@ -981,9 +1019,13 @@ + LIBC=dietlibc + #endif + EOF +- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^LIBC/{ ++ s: ::g ++ p ++ }'`" + test x"${LIBC}" != x && { +- echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}" | sed 's/linux-gnu/linux/' ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } +@@ -1183,6 +1225,15 @@ + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; +@@ -1192,7 +1243,6 @@ + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in +- *86) UNAME_PROCESSOR=i686 ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} +@@ -1271,6 +1321,9 @@ + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 +@@ -1431,9 +1484,9 @@ + the operating system you are using. It is advised that you + download the most up to date version of the config scripts from + +- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + and +- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub ++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + + If the version you run ($0) is already up to date, please + send the following data and any information you think might be diff --git a/source/ap/acct/acct.SlackBuild b/source/ap/acct/acct.SlackBuild new file mode 100755 index 000000000..510b22a2d --- /dev/null +++ b/source/ap/acct/acct.SlackBuild @@ -0,0 +1,137 @@ +#!/bin/sh +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=acct +PKGVER=6.4-pre1 +VERSION=6.4pre1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-acct + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-$PKGVER +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$PKGVER || exit 1 +zcat $CWD/acct-6.4pre1-6.diff.gz | patch -p1 || exit 1 +cat debian/patches/* | patch -p1 +zcat $CWD/acct.logdir.fhs.diff.gz | patch -p1 || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix= \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-linux-multiformat \ + --build=$ARCH-slackware-linux + +# Build and install: +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# The sysvinit package already installs a "last" program, so +# rename this one: +mv $PKG/bin/last $PKG/bin/last-acct + +# I know this man page still says "last" in it, but presumably +# anyone who uses "man last-acct" knows enough that this will +# not spook them: +mv $PKG/usr/man/man1/last.1 $PKG//usr/man/man1/last-acct.1 + +# Put some binaries in the location where they have traditionally +# been installed: +mkdir -p $PKG/usr/bin +mv $PKG/bin/{ac,last-acct,lastcomm} $PKG/usr/bin +mv $PKG/sbin/sa $PKG/usr/bin +mkdir -p $PKG/usr/sbin +mv $PKG/sbin/dump* $PKG/usr/sbin + +# A couple of manpages are not automatically installed: +cp -a debian/manpage/*.8 $PKG/usr/man/man8 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/acct-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/acct/acct.logdir.fhs.diff b/source/ap/acct/acct.logdir.fhs.diff new file mode 100644 index 000000000..9fff1bac1 --- /dev/null +++ b/source/ap/acct/acct.logdir.fhs.diff @@ -0,0 +1,29 @@ +--- ./configure.in.orig 2008-11-12 12:09:44.000000000 -0600 ++++ ./configure.in 2008-11-12 12:51:44.000000000 -0600 +@@ -214,7 +214,7 @@ + + #ifndef ACCT_FILE + # if defined(__FreeBSD__) || defined(__linux__) +-# define ACCT_FILE "/var/log/account/pacct" ++# define ACCT_FILE "/var/log/pacct" + # else + # if defined(__NetBSD__) + # define ACCT_FILE "/var/account/acct" +@@ -234,7 +234,7 @@ + + #ifndef SAVACCT_FILE + # if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) +-# define SAVACCT_FILE "/var/log/account/savacct" ++# define SAVACCT_FILE "/var/log/savacct" + # else + # if defined(sun) || defined(AMIX) + # define SAVACCT_FILE "/var/adm/savacct" +@@ -250,7 +250,7 @@ + + #ifndef USRACCT_FILE + # if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) +-# define USRACCT_FILE "/var/log/account/usracct" ++# define USRACCT_FILE "/var/log/usracct" + # else + # if defined(sun) || defined(AMIX) + # define USRACCT_FILE "/var/adm/usracct" diff --git a/source/ap/acct/slack-desc b/source/ap/acct/slack-desc new file mode 100644 index 000000000..6cffcfcb4 --- /dev/null +++ b/source/ap/acct/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +acct: acct (process accounting utilities) +acct: +acct: This is a set of utilities which reports and summarizes data about +acct: user connect times and process execution statistics. To activate +acct: process accounting, create the log file (touch /var/log/pacct), and +acct: then use the accton command to start it (accton /var/log/pacct). +acct: Be aware that the log file can grow to be quite large. +acct: +acct: The GNU process accounting utilities were written by Noel Cragg and +acct: the software is currently maintained by Ciaran O'Riordan, +acct: Manuel A. Fernandez Montecelo, and Tim Schmielau. diff --git a/source/ap/alsa-utils/alsa-utils.SlackBuild b/source/ap/alsa-utils/alsa-utils.SlackBuild new file mode 100755 index 000000000..c918ba526 --- /dev/null +++ b/source/ap/alsa-utils/alsa-utils.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.0.18 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-alsa-utils + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf alsa-utils-$VERSION +tar xvf $CWD/alsa-utils-$VERSION.tar.bz2 || exit 1 +cd alsa-utils-$VERSION || exit 1 +zcat $CWD/alsa-utils.alsaconf.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.alsa.gz > $PKG/etc/rc.d/rc.alsa +chmod 755 $PKG/etc/rc.d/rc.alsa + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/alsa-utils-$VERSION +cp -a \ + COPYING ChangeLog INSTALL TODO \ + seq/aconnect/README.aconnect \ + seq/aseqnet/README.aseqnet \ + $PKG/usr/doc/alsa-utils-$VERSION +cp -a alsamixer/README $PKG/usr/doc/alsa-utils-$VERSION/README.alsamixer + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/alsa-utils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/alsa-utils/alsa-utils.alsaconf.diff b/source/ap/alsa-utils/alsa-utils.alsaconf.diff new file mode 100644 index 000000000..c20bf72e7 --- /dev/null +++ b/source/ap/alsa-utils/alsa-utils.alsaconf.diff @@ -0,0 +1,54 @@ +--- ./alsaconf/alsaconf.in.orig 2007-05-31 03:07:21.000000000 -0500 ++++ ./alsaconf/alsaconf.in 2007-06-05 19:01:03.000000000 -0500 +@@ -50,7 +50,9 @@ + } + + # Check for GNU/Linux distributions +-if [ -f /etc/SuSE-release ]; then ++if [ -f /etc/slackware-version ]; then ++ distribution="slackware" ++elif [ -f /etc/SuSE-release ]; then + distribution="suse" + suse_version=$(grep 'VERSION = ' /etc/SuSE-release | sed -e s/'VERSION = '//) + elif [ -f /etc/UnitedLinux-release ]; then +@@ -490,6 +492,8 @@ + + if [ "$distribution" = "debian" ]; then + rcalsasound=/etc/init.d/alsa ++elif [ -x /etc/rc.d/rc.alsa ]; then ++ rcalsasound=/etc/rc.d/rc.alsa + elif [ -x /etc/init.d/alsasound ]; then + rcalsasound=/etc/init.d/alsasound + elif [ -x /usr/sbin/rcalsasound ]; then +--- ./alsaconf/alsaconf.8.orig 2007-05-31 03:07:21.000000000 -0500 ++++ ./alsaconf/alsaconf.8 2007-06-05 19:01:03.000000000 -0500 +@@ -16,8 +16,6 @@ + This manual page documents briefly the + .B alsaconf + command. +-This manual page was written for the Debian distribution because the +-original program does not have a manual page. + .PP + \fBAlsaconf\fP is a simple shell script which tries to detect the sound cards + on your system and writes a suitable configuration file for ALSA. It will try +@@ -74,13 +72,6 @@ + Set the uid for the ALSA devices (default = 0). + This option is obsolete in the recent ALSA version. + +-.SH DEBIAN SPECIFIC +-In Debian, the default gid of the device files is 29 (corresponding to the +-audio group) and the default device mode is 0660. +- +-For the ALSA base package, see also +-.I /usr/share/doc/alsa\-base/ +- + .SH SEE ALSO + \fB + alsamixer(1), +@@ -98,5 +89,4 @@ + Bernd Kaindl <bk@suse.de> and + Jan Ondrej (SAL) <ondrejj@salstar.sk> + +-This manual page was written by Jordi Mallach <jordi@debian.org>, +-for the Debian system (but may be used by others). ++This manual page was written by Jordi Mallach <jordi@debian.org>. diff --git a/source/ap/alsa-utils/rc.alsa b/source/ap/alsa-utils/rc.alsa new file mode 100644 index 000000000..9e3cae304 --- /dev/null +++ b/source/ap/alsa-utils/rc.alsa @@ -0,0 +1,93 @@ +#!/bin/sh +# Load the mixer settings and OSS compatibility for ALSA. +# (the Advanced Linux Sound Architecture) + +# A function to load the ALSA mixer settings: +load_alsa_mixer() { + if [ -r /etc/asound.state ]; then + echo "Loading ALSA mixer settings: /usr/sbin/alsactl restore" + /usr/sbin/alsactl restore + else + # It's possible a user might not want to set a default sound state. + # In that case, do this: touch /etc/no.asound.state + if [ ! -r /etc/no.asound.state ]; then + echo "Setting default ALSA mixer settings." + # set default mixer volumes for ALSA + # Taken from the alsaconfig script. + amixer -s -q <<EOF +set Master 75% unmute +set Master -12dB +set 'Master Mono' 75% unmute +set 'Master Mono' -12dB +set Front 75% unmute +set Front -12dB +set PCM 90% unmute +set PCM 0dB +mixer Synth 90% unmute +mixer Synth 0dB +mixer CD 90% unmute +mixer CD 0dB +# mute mic +set Mic 0% mute +# ESS 1969 chipset has 2 PCM channels +set PCM,1 90% unmute +set PCM,1 0dB +# Trident/YMFPCI/emu10k1 +set Wave 100% unmute +set Music 100% unmute +set AC97 100% unmute +# CS4237B chipset: +set 'Master Digital' 75% unmute +# Envy24 chips with analog outs +set DAC 90% unmute +set DAC -12dB +set DAC,0 90% unmute +set DAC,0 -12dB +set DAC,1 90% unmute +set DAC,1 -12dB +# some notebooks use headphone instead of master +set Headphone 75% unmute +set Headphone -12dB +set Playback 100% unmute +# turn off digital switches +set "SB Live Analog/Digital Output Jack" off +set "Audigy Analog/Digital Output Jack" off +EOF + echo "Storing default ALSA mixer settings: /usr/sbin/alsactl store" + /usr/sbin/alsactl store + fi + fi +} + +# A function to load the ALSA OSS compat modules: +load_alsa_oss_modules() { + if ! cat /proc/modules | tr _ - | grep -wq snd-pcm-oss ; then + echo "Loading OSS compatibility modules for ALSA." + modprobe snd-pcm-oss + modprobe snd-seq-oss + modprobe snd-mixer-oss + fi +} + +# If hotplug or something else has loaded the ALSA modules, then +# simply load the mixer settings and make sure the OSS compat +# modules are loaded: +if [ -d /proc/asound ]; then + load_alsa_oss_modules + load_alsa_mixer +else + # If there are ALSA modules defined in /etc/modprobe.conf, but + # ALSA is not yet loaded, then load the modules now: + DRIVERS=$(modprobe -c | grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | tr -s "[[:blank:]]" " " | cut -d " " -f 3) + if [ ! "$DRIVERS" = "" ]; then + echo "Loading ALSA kernel modules." + for module in $DRIVERS; do + modprobe $module + done + fi + # If ALSA is now up, then load the mixer settings and OSS modules: + if [ -d /proc/asound ]; then + load_alsa_oss_modules + load_alsa_mixer + fi +fi diff --git a/source/ap/alsa-utils/slack-desc b/source/ap/alsa-utils/slack-desc new file mode 100644 index 000000000..06ca73c09 --- /dev/null +++ b/source/ap/alsa-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +alsa-utils: alsa-utils (Advanced Linux Sound Architecture utilities) +alsa-utils: +alsa-utils: The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI +alsa-utils: functionality to the Linux operating system. This package contains +alsa-utils: command line audio utilities for use with ALSA: +alsa-utils: alsactl (manage soundcard settings) +alsa-utils: arecord/aplay (capture and play audio) +alsa-utils: amixer (adjust mixer settings from the command line) +alsa-utils: alsamixer (an ncurses-based console mixer) +alsa-utils: +alsa-utils: For more information, see http://alsa-project.org diff --git a/source/ap/amp/amp-gcc34.diff b/source/ap/amp/amp-gcc34.diff new file mode 100644 index 000000000..6e04bebe7 --- /dev/null +++ b/source/ap/amp/amp-gcc34.diff @@ -0,0 +1,11 @@ +diff -Naur amp-0.7.6.orig/guicontrol.c amp-0.7.6/guicontrol.c +--- amp-0.7.6.orig/guicontrol.c 1997-08-23 04:30:51.000000000 -0700 ++++ amp-0.7.6/guicontrol.c 2004-07-07 15:27:54.694249000 -0700 +@@ -376,6 +376,7 @@ + case GETHDR_SYN: warn("oops, we're out of sync.\n"); + break; + default: ++ break; + } + break; + } diff --git a/source/ap/amp/amp.SlackBuild b/source/ap/amp/amp.SlackBuild new file mode 100755 index 000000000..db7f49fe1 --- /dev/null +++ b/source/ap/amp/amp.SlackBuild @@ -0,0 +1,61 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.7.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-amp + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_amp.tar.gz + +cd $TMP +rm -rf amp-$VERSION +tar xzvf $CWD/amp-$VERSION.tar.gz +cd amp-$VERSION +zcat $CWD/amp-gcc34.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +chown -R root:root . +./configure --prefix=/usr $ARCH-slackware-linux +make +strip amp +cat amp > $PKG/usr/bin/amp +cat amp.1 | gzip -9c > $PKG/usr/man/man1/amp.1.gz +mkdir -p $PKG/usr/doc/amp-$VERSION +cp -a \ + BUGS CHANGES README TODO doc/jukebox.txt doc/layer2.txt \ + doc/linuxrealtime.txt doc/BeOS.txt \ + $PKG/usr/doc/amp-$VERSION +chmod 644 $PKG/usr/doc/amp-$VERSION/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/amp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/amp/license_excerpts b/source/ap/amp/license_excerpts new file mode 100644 index 000000000..11cf9ef87 --- /dev/null +++ b/source/ap/amp/license_excerpts @@ -0,0 +1,42 @@ +amp MPEG audio decoder readme file (version 0.7.5) +(C) Tomislav Uzelac 1996,1997 + +amp is free software and can be _used_ freely by anyone. If you want to +do anything else with it, be sure to check the Legal section of this +document for legal issues. + +THERE IS NO WARRANTY FOR THIS PROGRAM. Please check out the Legal section +of this document. + + +[snip] + + +6. Legal + +This software can be used freely for any purpose. It can be distributed +freely, as long as it is not sold commercially without permission from +Tomislav Uzelac <tuzelac@rasip.fer.hr>. However, including this software +on CD_ROMs containing other free software is explicitly permitted even +when a modest distribution fee is charged for the CD, as long as this +software is not a primary selling argument for the CD. + +Building derived versions of this software is permitted, as long as they +are not sold commercially without permission from Tomislav Uzelac +<tuzelac@rasip.fer.hr>. Any derived versions must be clearly marked as +such, and must be called by a name other than amp. Any derived versions +must retain this copyright notice. + +/* This license is itself copied from Tatu Ylonen's ssh package. It does + * not mention being copyrighted itself :) + */ + +THERE IS NO WARRANTY FOR THIS PROGRAM - whatsoever. You use it entirely +at your risk, and neither Tomislav Uzelac, nor FER will be liable for +any damages that might occur to your computer, software, etc. in +consequence of you using this freeware program. + + +Tomislav Uzelac +<tuzelac@rasip.fer.hr> + diff --git a/source/ap/amp/slack-desc b/source/ap/amp/slack-desc new file mode 100644 index 000000000..9ecfb939b --- /dev/null +++ b/source/ap/amp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +amp: amp (An MP3 player) +amp: +amp: amp (Audio Mpeg Player) is a command-line MPEG audio decoder (MP3 +amp: player). It works with both MPEG1 and MPEG2 audio streams (except for +amp: the multichannel extensions defined in MPEG2), layers 2 and 3. +amp: +amp: +amp: +amp: +amp: +amp: diff --git a/source/ap/ash/ash.SlackBuild b/source/ap/ash/ash.SlackBuild new file mode 100755 index 000000000..deaad12d1 --- /dev/null +++ b/source/ap/ash/ash.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.4.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ash + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xzvf $CWD/ash-$VERSION.tar.gz +cd ash-$VERSION +chown -R root:root . +( cd $CWD/patches + for file in ash-builtin.patch.gz ash-echo.patch.gz ash-getcwd.patch.gz ash-getopt.patch.gz ash-glob.patch.gz ash-jobs.patch.gz ash-kill.patch.gz ash-makefile.patch.gz ash-manpage.patch.gz ash-hetio.patch.gz ash-memout.patch.gz ash-misc.patch.gz ash-redir.patch.gz ash-setmode.patch.gz ash-syntax.patch.gz ash-test.patch.gz ash-times.patch.gz ash-debian.patch.gz ash-ppid.patch.gz ash-freebsd.patch.gz ash-sighup.patch.gz ; do + zcat $file + done ) | patch -p1 --verbose +sed -i -e 's#= {#{#' arith.y || exit 1 # prevent "syntax error, unexpected =" +sed -i -e '/yyerrok;/d' arith.y || exit 1 # "error: 'yyerrstatus' undeclared" +# Fred Emmott found this on the LFS mailing list: +sed -i -e 's#extern int hetio_inter#static int hetio_inter#' hetio.h || exit 1 +make || exit 1 +strip sh +mkdir -p $PKG/bin +cat sh > $PKG/bin/ash +chmod 755 $PKG/bin/ash +mkdir -p $PKG/usr/man/man1 +cat sh.1 | gzip -9c > $PKG/usr/man/man1/ash.1.gz +mkdir -p $PKG/usr/doc/ash-$VERSION +chmod 644 TOUR +cp -a TOUR $PKG/usr/doc/ash-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +if grep "bin/ash" etc/shells 1> /dev/null 2> /dev/null; then + true +else + echo "/bin/ash" >> etc/shells +fi +EOF + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/ash-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/ash-$VERSION + rm -rf $PKG +fi diff --git a/source/ap/ash/patches/ash-builtin.patch b/source/ap/ash/patches/ash-builtin.patch new file mode 100644 index 000000000..b812e6375 --- /dev/null +++ b/source/ap/ash/patches/ash-builtin.patch @@ -0,0 +1,843 @@ +diff -urN netbsd-sh/builtins.def ash-0.3.7.orig/builtins.def +--- netbsd-sh/builtins.def Mon Apr 10 13:02:58 2000 ++++ ash-0.3.7.orig/builtins.def Mon Apr 23 22:16:46 2001 +@@ -49,12 +49,13 @@ + # + # NOTE: bltincmd must come first! + +-bltincmd command ++bltincmd builtin + #alloccmd alloc + bgcmd -j bg + breakcmd break continue + #catfcmd catf + cdcmd cd chdir ++commandcmd command + dotcmd . + echocmd echo + evalcmd eval +diff -urN netbsd-sh/eval.c ash-0.3.7.orig/eval.c +--- netbsd-sh/eval.c Tue May 23 12:03:18 2000 ++++ ash-0.3.7.orig/eval.c Mon Apr 23 22:16:46 2001 +@@ -45,7 +45,9 @@ + #endif + #endif /* not lint */ + ++#include <sys/types.h> + #include <signal.h> ++#include <malloc.h> + #include <unistd.h> + + /* +@@ -101,6 +103,8 @@ + STATIC void evalpipe __P((union node *)); + STATIC void evalcommand __P((union node *, int, struct backcmd *)); + STATIC void prehash __P((union node *)); ++STATIC int is_assignment_builtin __P((const char *)); ++STATIC const char *get_standard_path __P((void)); + + + /* +@@ -257,6 +261,11 @@ + evalcase(n, flags); + break; + case NDEFUN: ++ if (is_special_builtin(n->narg.text)) { ++ outfmt(out2, "%s is a special built-in\n", n->narg.text); ++ exitstatus = 1; ++ break; ++ } + defun(n->narg.text, n->narg.next); + exitstatus = 0; + break; +@@ -497,9 +507,14 @@ + close(0); + copyfd(prevfd, 0); + close(prevfd); ++ if (pip[0] == 0) { ++ pip[0] = -1; ++ } + } + if (pip[1] >= 0) { +- close(pip[0]); ++ if (pip[0] >= 0) { ++ close(pip[0]); ++ } + if (pip[1] != 1) { + close(1); + copyfd(pip[1], 1); +@@ -607,6 +622,7 @@ + int argc; + char **envp; + int varflag; ++ int pseudovarflag; + struct strlist *sp; + int mode; + int pip[2]; +@@ -619,12 +635,17 @@ + struct localvar *volatile savelocalvars; + volatile int e; + char *lastarg; ++ int not_special; ++ const char *path; ++ const char *standard_path; + #if __GNUC__ + /* Avoid longjmp clobbering */ + (void) &argv; + (void) &argc; + (void) &lastarg; + (void) &flags; ++ (void) ¬_special; ++ (void) &standard_path; + #endif + + /* First expand the arguments. */ +@@ -632,21 +653,31 @@ + setstackmark(&smark); + arglist.lastp = &arglist.list; + varlist.lastp = &varlist.list; ++ arglist.list = 0; + varflag = 1; ++ pseudovarflag = 0; + oexitstatus = exitstatus; + exitstatus = 0; ++ not_special = 0; ++ path = pathval(); ++ standard_path = NULL; + for (argp = cmd->ncmd.args ; argp ; argp = argp->narg.next) { + char *p = argp->narg.text; +- if (varflag && is_name(*p)) { ++ if ((varflag || pseudovarflag) && is_name(*p)) { + do { + p++; + } while (is_in_name(*p)); + if (*p == '=') { +- expandarg(argp, &varlist, EXP_VARTILDE); ++ if (varflag) ++ expandarg(argp, &varlist, EXP_VARTILDE); ++ else ++ expandarg(argp, &arglist, EXP_VARTILDE); + continue; + } + } + expandarg(argp, &arglist, EXP_FULL | EXP_TILDE); ++ if (varflag && arglist.list && is_assignment_builtin(arglist.list->text)) ++ pseudovarflag = 1; + varflag = 0; + } + *arglist.lastp = NULL; +@@ -688,37 +719,75 @@ + cmdentry.u.index = BLTINCMD; + } else { + static const char PATH[] = "PATH="; +- const char *path = pathval(); ++ const char *oldpath = NULL; ++ int findflag = DO_ERR; + + /* + * Modify the command lookup path, if a PATH= assignment + * is present + */ + for (sp = varlist.list ; sp ; sp = sp->next) +- if (strncmp(sp->text, PATH, sizeof(PATH) - 1) == 0) ++ if (strncmp(sp->text, PATH, sizeof(PATH) - 1) == 0) { + path = sp->text + sizeof(PATH) - 1; +- +- find_command(argv[0], &cmdentry, DO_ERR, path); +- if (cmdentry.cmdtype == CMDUNKNOWN) { /* command not found */ +- exitstatus = 127; +- flushout(&errout); +- return; +- } +- /* implement the bltin builtin here */ +- if (cmdentry.cmdtype == CMDBUILTIN && cmdentry.u.index == BLTINCMD) { +- for (;;) { ++ findflag |= DO_BRUTE; ++ } ++ for(;;) { ++ find_command(argv[0], &cmdentry, findflag, path); ++ if (oldpath) { ++ path = oldpath; ++ oldpath = NULL; ++ } ++ if (cmdentry.cmdtype == CMDUNKNOWN) { /* command not found */ ++ exitstatus = 127; ++ flushout(&errout); ++ goto out; ++ } ++ /* implement the bltin builtin here */ ++ if (cmdentry.cmdtype == CMDBUILTIN && cmdentry.u.index == BLTINCMD) { ++ not_special = 1; ++ for(;;) { ++ argv++; ++ if (--argc == 0) ++ break; ++ if ((cmdentry.u.index = find_builtin(*argv)) < 0) { ++ outfmt(&errout, "%s: not found\n", *argv); ++ exitstatus = 127; ++ flushout(&errout); ++ goto out; ++ } ++ if (cmdentry.u.index != BLTINCMD) ++ break; ++ } ++ } ++ if (cmdentry.cmdtype == CMDBUILTIN && cmdentry.u.index == COMMANDCMD) { ++ not_special = 1; + argv++; +- if (--argc == 0) +- break; +- if ((cmdentry.u.index = find_builtin(*argv)) < 0) { +- outfmt(&errout, "%s: not found\n", *argv); +- exitstatus = 127; +- flushout(&errout); +- return; ++ if (--argc == 0) { ++ exitstatus = 0; ++ goto out; + } +- if (cmdentry.u.index != BLTINCMD) +- break; ++ if (*argv[0] == '-') { ++ if (!equal(argv[0], "-p")) { ++ argv--; ++ argc++; ++ break; ++ } ++ argv++; ++ if (--argc == 0) { ++ exitstatus = 0; ++ goto out; ++ } ++ if (!standard_path) { ++ standard_path = get_standard_path(); ++ } ++ oldpath = path; ++ path = standard_path; ++ findflag |= DO_BRUTE; ++ } ++ findflag |= DO_NOFUN; ++ continue; + } ++ break; + } + } + +@@ -756,13 +825,12 @@ + #ifdef DEBUG + trputs("Shell function: "); trargs(argv); + #endif ++ exitstatus = oexitstatus; + redirect(cmd->ncmd.redirect, REDIR_PUSH); + saveparam = shellparam; + shellparam.malloc = 0; +- shellparam.reset = 1; + shellparam.nparam = argc - 1; + shellparam.p = argv + 1; +- shellparam.optnext = NULL; + INTOFF; + savelocalvars = localvars; + localvars = NULL; +@@ -772,6 +840,8 @@ + freeparam((volatile struct shparam *) + &saveparam); + } else { ++ saveparam.optind = shellparam.optind; ++ saveparam.optoff = shellparam.optoff; + freeparam(&shellparam); + shellparam = saveparam; + } +@@ -790,6 +860,8 @@ + INTOFF; + poplocalvars(); + localvars = savelocalvars; ++ saveparam.optind = shellparam.optind; ++ saveparam.optoff = shellparam.optoff; + freeparam(&shellparam); + shellparam = saveparam; + handler = savehandler; +@@ -832,6 +908,8 @@ + out1 = &output; + out2 = &errout; + freestdout(); ++ if (!not_special && is_special_builtin(commandname)) ++ listsetvar(cmdenviron); + cmdenviron = NULL; + if (e != EXSHELLPROC) { + commandname = savecmdname; +@@ -867,7 +953,7 @@ + for (sp = varlist.list ; sp ; sp = sp->next) + setvareq(sp->text, VEXPORT|VSTACK); + envp = environment(); +- shellexec(argv, envp, pathval(), cmdentry.u.index); ++ shellexec(argv, envp, path, cmdentry.u.index); + } + goto out; + +@@ -1025,4 +1111,49 @@ + shellexec(argv + 1, environment(), pathval(), 0); + } + return 0; ++} ++ ++STATIC int ++is_assignment_builtin (command) ++ const char *command; ++{ ++ static const char *assignment_builtins[] = { ++ "alias", "declare", "export", "local", "readonly", "typeset", ++ (char *)NULL ++ }; ++ int i; ++ ++ for (i = 0; assignment_builtins[i]; i++) ++ if (strcmp(command, assignment_builtins[i]) == 0) return 1; ++ return 0; ++} ++ ++int ++is_special_builtin(name) ++ const char *name; ++{ ++ static const char *special_builtins[] = { ++ "break", ":", ".", "continue", "eval", "exec", "exit", ++ "export", "readonly", "return", "set", "shift", "times", ++ "trap", "unset", (char *)NULL ++ }; ++ int i; ++ ++ if (!name) return 0; ++ for (i = 0; special_builtins[i]; i++) ++ if (equal(name, special_builtins[i])) return 1; ++ return 0; ++} ++ ++STATIC const char * ++get_standard_path() ++{ ++ char *p; ++ size_t len; ++ ++ len = confstr(_CS_PATH, NULL, 0); ++ p = stalloc(len + 2); ++ *p = '\0'; ++ confstr(_CS_PATH, p, len); ++ return p; + } +diff -urN netbsd-sh/eval.h ash-0.3.7.orig/eval.h +--- netbsd-sh/eval.h Fri Jan 28 13:03:00 2000 ++++ ash-0.3.7.orig/eval.h Mon Apr 23 22:16:46 2001 +@@ -61,6 +61,7 @@ + int falsecmd __P((int, char **)); + int truecmd __P((int, char **)); + int execcmd __P((int, char **)); ++int is_special_builtin __P((const char *)); + + /* in_function returns nonzero if we are currently evaluating a function */ + #define in_function() funcnest +diff -urN netbsd-sh/exec.c ash-0.3.7.orig/exec.c +--- netbsd-sh/exec.c Fri Jan 12 17:50:35 2001 ++++ ash-0.3.7.orig/exec.c Mon Apr 23 22:16:46 2001 +@@ -51,6 +51,7 @@ + #include <fcntl.h> + #include <errno.h> + #include <stdlib.h> ++#include <sysexits.h> + + /* + * When commands are first encountered, they are entered in a hash table. +@@ -108,6 +109,9 @@ + STATIC void clearcmdentry __P((int)); + STATIC struct tblentry *cmdlookup __P((char *, int)); + STATIC void delete_cmd_entry __P((void)); ++STATIC int describe_command __P((char *, int)); ++STATIC int path_change __P((const char *, int *)); ++STATIC int is_regular_builtin __P((const char *)); + + + +@@ -164,7 +172,7 @@ + char **envp; + { + int e; +-#ifndef BSD ++#if !defined(BSD) && !defined(linux) + char *p; + #endif + +@@ -180,7 +188,7 @@ + initshellproc(); + setinputfile(cmd, 0); + commandname = arg0 = savestr(argv[0]); +-#ifndef BSD ++#if !defined(BSD) && !defined(linux) + pgetc(); pungetc(); /* fill up input buffer */ + p = parsenextc; + if (parsenleft > 2 && p[0] == '#' && p[1] == '!') { +@@ -195,7 +203,7 @@ + } + + +-#ifndef BSD ++#if !defined(BSD) && !defined(linux) + /* + * Execute an interpreter introduced by "#!", for systems where this + * feature has not been built into the kernel. If the interpreter is +@@ -351,27 +359,29 @@ + if (*argptr == NULL) { + for (pp = cmdtable ; pp < &cmdtable[CMDTABLESIZE] ; pp++) { + for (cmdp = *pp ; cmdp ; cmdp = cmdp->next) { +- printentry(cmdp, verbose); ++ if (cmdp->cmdtype != CMDBUILTIN) { ++ printentry(cmdp, verbose); ++ } + } + } + return 0; + } ++ c = 0; + while ((name = *argptr) != NULL) { + if ((cmdp = cmdlookup(name, 0)) != NULL + && (cmdp->cmdtype == CMDNORMAL + || (cmdp->cmdtype == CMDBUILTIN && builtinloc >= 0))) + delete_cmd_entry(); + find_command(name, &entry, DO_ERR, pathval()); +- if (verbose) { +- if (entry.cmdtype != CMDUNKNOWN) { /* if no error msg */ +- cmdp = cmdlookup(name, 0); +- printentry(cmdp, verbose); +- } ++ if (entry.cmdtype == CMDUNKNOWN) c = 1; ++ else if (verbose) { ++ cmdp = cmdlookup(name, 0); ++ if (cmdp) printentry(cmdp, verbose); + flushall(); + } + argptr++; + } +- return 0; ++ return c; + } + + +@@ -435,6 +445,10 @@ + struct stat statb; + int e; + int i; ++ int bltin; ++ int firstchange; ++ int updatetbl; ++ int regular; + + /* If name contains a slash, don't use the hash table */ + if (strchr(name, '/') != NULL) { +@@ -459,12 +473,54 @@ + return; + } + ++ updatetbl = 1; ++ if (act & DO_BRUTE) { ++ firstchange = path_change(path, &bltin); ++ } else { ++ bltin = builtinloc; ++ firstchange = 9999; ++ } ++ + /* If name is in the table, and not invalidated by cd, we're done */ +- if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->rehash == 0) +- goto success; ++ if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->rehash == 0) { ++ if (cmdp->cmdtype == CMDFUNCTION) { ++ if (act & DO_NOFUN) { ++ updatetbl = 0; ++ } else { ++ goto success; ++ } ++ } else if (act & DO_BRUTE) { ++ if ((cmdp->cmdtype == CMDNORMAL && ++ cmdp->param.index >= firstchange) || ++ (cmdp->cmdtype == CMDBUILTIN && ++ ((builtinloc < 0 && bltin >= 0) ? ++ bltin : builtinloc) >= firstchange)) { ++ /* need to recompute the entry */ ++ } else { ++ goto success; ++ } ++ } else { ++ goto success; ++ } ++ } ++ ++ if ((regular = is_regular_builtin(name))) { ++ if (cmdp && (cmdp->cmdtype == CMDBUILTIN)) { ++ goto success; ++ } ++ } else if (act & DO_BRUTE) { ++ if (firstchange == 0) { ++ updatetbl = 0; ++ } ++ } + + /* If %builtin not in path, check for builtin next */ +- if (builtinloc < 0 && (i = find_builtin(name)) >= 0) { ++ if ((bltin < 0 || regular) && (i = find_builtin(name)) >= 0) { ++ if (!updatetbl) { ++ entry->cmdtype = CMDBUILTIN; ++ entry->u.index = i; ++ return; ++ } + INTOFF; + cmdp = cmdlookup(name, 1); + cmdp->cmdtype = CMDBUILTIN; +@@ -475,7 +531,7 @@ + + /* We have to search path. */ + prev = -1; /* where to start */ +- if (cmdp) { /* doing a rehash */ ++ if (cmdp && cmdp->rehash) { /* doing a rehash */ + if (cmdp->cmdtype == CMDBUILTIN) + prev = builtinloc; + else +@@ -488,26 +544,38 @@ + while ((fullname = padvance(&path, name)) != NULL) { + stunalloc(fullname); + idx++; ++ if (idx >= firstchange) { ++ updatetbl = 0; ++ } + if (pathopt) { + if (prefix("builtin", pathopt)) { +- if ((i = find_builtin(name)) < 0) +- goto loop; +- INTOFF; +- cmdp = cmdlookup(name, 1); +- cmdp->cmdtype = CMDBUILTIN; +- cmdp->param.index = i; +- INTON; +- goto success; +- } else if (prefix("func", pathopt)) { ++ if ((i = find_builtin(name)) >= 0) { ++ if (!updatetbl) { ++ entry->cmdtype = CMDBUILTIN; ++ entry->u.index = i; ++ return; ++ } ++ INTOFF; ++ cmdp = cmdlookup(name, 1); ++ cmdp->cmdtype = CMDBUILTIN; ++ cmdp->param.index = i; ++ INTON; ++ goto success; ++ } else { ++ continue; ++ } ++ } else if (!(act & DO_NOFUN) && ++ prefix("func", pathopt)) { + /* handled below */ + } else { +- goto loop; /* ignore unimplemented options */ ++ continue; /* ignore unimplemented options */ + } + } + /* if rehash, don't redo absolute path names */ +- if (fullname[0] == '/' && idx <= prev) { ++ if (fullname[0] == '/' && idx <= prev && ++ idx < firstchange) { + if (idx < prev) +- goto loop; ++ continue; + TRACE(("searchexec \"%s\": no change\n", name)); + goto success; + } +@@ -522,7 +590,7 @@ + } + e = EACCES; /* if we fail, this will be the error */ + if (!S_ISREG(statb.st_mode)) +- goto loop; ++ continue; + if (pathopt) { /* this is a %func directory */ + stalloc(strlen(fullname) + 1); + readcmdfile(fullname); +@@ -544,6 +612,13 @@ + } + #endif + TRACE(("searchexec \"%s\" returns \"%s\"\n", name, fullname)); ++ /* If we aren't called with DO_BRUTE and cmdp is set, it must ++ be a function and we're being called with DO_NOFUN */ ++ if (!updatetbl) { ++ entry->cmdtype = CMDNORMAL; ++ entry->u.index = idx; ++ return; ++ } + INTOFF; + cmdp = cmdlookup(name, 1); + cmdp->cmdtype = CMDNORMAL; +@@ -553,7 +628,7 @@ + } + + /* We failed. If there was an entry for this command, delete it */ +- if (cmdp) ++ if (cmdp && updatetbl) + delete_cmd_entry(); + if (act & DO_ERR) + outfmt(out2, "%s: %s\n", name, errmsg(e, E_EXEC)); +@@ -618,37 +693,12 @@ + changepath(newval) + const char *newval; + { +- const char *old, *new; +- int idx; + int firstchange; + int bltin; + +- old = pathval(); +- new = newval; +- firstchange = 9999; /* assume no change */ +- idx = 0; +- bltin = -1; +- for (;;) { +- if (*old != *new) { +- firstchange = idx; +- if ((*old == '\0' && *new == ':') +- || (*old == ':' && *new == '\0')) +- firstchange++; +- old = new; /* ignore subsequent differences */ +- } +- if (*new == '\0') +- break; +- if (*new == '%' && bltin < 0 && prefix("builtin", new + 1)) +- bltin = idx; +- if (*new == ':') { +- idx++; +- } +- new++, old++; +- } ++ firstchange = path_change(newval, &bltin); + if (builtinloc < 0 && bltin >= 0) + builtinloc = bltin; /* zap builtins */ +- if (builtinloc >= 0 && bltin < 0) +- firstchange = 0; + clearcmdentry(firstchange); + builtinloc = bltin; + } +@@ -838,11 +888,9 @@ + { + struct cmdentry entry; + +- INTOFF; + entry.cmdtype = CMDFUNCTION; + entry.u.func = copyfunc(func); + addcmdentry(name, &entry); +- INTON; + } + + +@@ -944,4 +992,190 @@ + } + } + return err; ++} ++ ++STATIC int ++describe_command(command, verbose) ++ char *command; ++ int verbose; ++{ ++ struct cmdentry entry; ++ struct tblentry *cmdp; ++ char **pp; ++ struct alias *ap; ++ extern char *const parsekwd[]; ++ ++ for (pp = (char **)parsekwd; *pp; pp++) ++ if (**pp == *command && equal(*pp, command)) ++ break; ++ ++ if (*pp) { ++ if (verbose) { ++ out1fmt("%s is a reserved word\n", command); ++ } else { ++ out1fmt("%s\n", command); ++ } ++ return 0; ++ } ++ ++ /* Then look at the aliases */ ++ if ((ap = lookupalias(command, 1)) != NULL) { ++ if (verbose) { ++ out1fmt("%s is aliased to `%s'\n", command, ap->val); ++ } else { ++ out1fmt("alias %s='%s'\n", command, ap->val); ++ } ++ return 0; ++ } ++ ++ /* Then check if it is a tracked alias */ ++ if ((cmdp = cmdlookup(command, 0)) != NULL) { ++ entry.cmdtype = cmdp->cmdtype; ++ entry.u = cmdp->param; ++ } ++ else { ++ /* Finally use brute force */ ++ find_command(command, &entry, DO_ABS, pathval()); ++ } ++ ++ switch (entry.cmdtype) { ++ case CMDNORMAL: { ++ int j = entry.u.index; ++ const char *path = pathval(); ++ char *name; ++ if (j == -1) ++ name = command; ++ else { ++ do { ++ name = padvance(&path, command); ++ stunalloc(name); ++ } while (--j >= 0); ++ } ++ if (verbose) { ++ out1fmt("%s is %s\n", command, name); ++ } else { ++ out1fmt("%s\n", name); ++ } ++ break; ++ } ++ case CMDFUNCTION: ++ if (verbose) { ++ out1fmt("%s is a function\n", command); ++ } else { ++ out1fmt("%s\n", command); ++ } ++ break; ++ case CMDBUILTIN: ++ if (verbose) { ++ if (is_special_builtin(command)) { ++ out1fmt("%s is a special built-in utility\n", command); ++ } else { ++ out1fmt("%s is a built-in utility\n", command); ++ } ++ } else { ++ out1fmt("%s\n", command); ++ } ++ break; ++ default: ++ outfmt(out2, "%s not found\n", command); ++ return 127; ++ } ++ ++ return 0; ++} ++ ++int ++commandcmd(argc, argv) ++ int argc; ++ char **argv; ++{ ++ int c; ++ int default_path = 0; ++ int verify_only = 0; ++ int verbose_verify_only = 0; ++ ++ while ((c = nextopt("pvV")) != '\0') ++ switch (c) { ++ case 'p': ++ default_path = 1; ++ break; ++ case 'v': ++ verify_only = 1; ++ break; ++ case 'V': ++ verbose_verify_only = 1; ++ break; ++ default: ++ outfmt(out2, ++"command: nextopt returned character code 0%o\n", c); ++ return EX_SOFTWARE; ++ } ++ ++ if (default_path + verify_only + verbose_verify_only > 1 || ++ !*argptr) { ++ outfmt(out2, ++"command [-p] command [arg ...]\n"); ++ outfmt(out2, ++"command {-v|-V} command\n"); ++ return EX_USAGE; ++ } ++ ++ if (verify_only || verbose_verify_only) { ++ return describe_command(*argptr, verbose_verify_only); ++ } ++ ++ return 0; ++} ++ ++STATIC int ++path_change(newval, bltin) ++ const char *newval; ++ int *bltin; ++{ ++ const char *old, *new; ++ int idx; ++ int firstchange; ++ ++ old = pathval(); ++ new = newval; ++ firstchange = 9999; /* assume no change */ ++ idx = 0; ++ *bltin = -1; ++ for (;;) { ++ if (*old != *new) { ++ firstchange = idx; ++ if ((*old == '\0' && *new == ':') ++ || (*old == ':' && *new == '\0')) ++ firstchange++; ++ old = new; /* ignore subsequent differences */ ++ } ++ if (*new == '\0') ++ break; ++ if (*new == '%' && *bltin < 0 && prefix("builtin", new + 1)) ++ *bltin = idx; ++ if (*new == ':') { ++ idx++; ++ } ++ new++, old++; ++ } ++ if (builtinloc >= 0 && *bltin < 0) ++ firstchange = 0; ++ return firstchange; ++} ++ ++STATIC int ++is_regular_builtin(name) ++ const char *name; ++{ ++ static const char *regular_builtins[] = { ++ "alias", "bg", "cd", "command", "false", "fc", "fg", ++ "getopts", "jobs", "kill", "newgrp", "read", "true", ++ "umask", "unalias", "wait", (char *)NULL ++ }; ++ int i; ++ ++ if (!name) return 0; ++ for (i = 0; regular_builtins[i]; i++) ++ if (equal(name, regular_builtins[i])) return 1; ++ return 0; + } +diff -urN netbsd-sh/exec.h ash-0.3.7.orig/exec.h +--- netbsd-sh/exec.h Tue May 23 12:03:19 2000 ++++ ash-0.3.7.orig/exec.h Mon Apr 23 22:16:46 2001 +@@ -56,6 +56,8 @@ + + #define DO_ERR 1 /* find_command prints errors */ + #define DO_ABS 2 /* find_command checks absolute paths */ ++#define DO_NOFUN 4 /* find_command ignores functions */ ++#define DO_BRUTE 8 /* find_command ignores hash table */ + + extern const char *pathopt; /* set by padvance */ + extern int exerrno; /* last exec error */ +@@ -74,3 +76,4 @@ + void defun __P((char *, union node *)); + int unsetfunc __P((char *)); + int typecmd __P((int, char **)); ++int commandcmd __P((int, char **)); + diff --git a/source/ap/ash/patches/ash-debian.patch b/source/ap/ash/patches/ash-debian.patch new file mode 100644 index 000000000..d3e79bfcd --- /dev/null +++ b/source/ap/ash/patches/ash-debian.patch @@ -0,0 +1,702 @@ +diff -urN netbsd-sh/debian/README.debian ash-0.3.7.orig/debian/README.debian +--- netbsd-sh/debian/README.debian Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/README.debian Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,14 @@ ++ash for DEBIAN ++---------------------- ++ ++This is a very simple port of ash taken from NetBSD-current on 1997/06/18. The ++file setmode.c was taken from src/libc/gen and is needed since the Linux libc ++does provide getmode(3) or setmode(3). History editing is disabled to avoid ++code bloat. This also means that building the package is possible without the ++BSD libedit. ++ ++This port is preriodically revised to keep up to date with NetBSD's current ++release. ++ ++Herbert Xu <herbert@debian.org> ++$Id: README.debian,v 1.6 2000/08/04 11:33:48 herbert Exp $ +diff -urN netbsd-sh/debian/ash-medium.README.Debian ash-0.3.7.orig/debian/ash-medium.README.Debian +--- netbsd-sh/debian/ash-medium.README.Debian Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/ash-medium.README.Debian Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,14 @@ ++ash for DEBIAN ++---------------------- ++ ++This is a very simple port of ash taken from NetBSD-current on 1997/06/18. The ++file setmode.c was taken from src/libc/gen and is needed since the Linux libc ++does provide getmode(3) or setmode(3). History editing is disabled to avoid ++code bloat. This also means that building the package is possible without the ++BSD libedit. ++ ++This port is preriodically revised to keep up to date with NetBSD's current ++release. ++ ++Herbert Xu <herbert@debian.org> ++$Id: ash-medium.README.Debian,v 1.1 2000/08/04 11:49:01 herbert Exp $ +diff -urN netbsd-sh/debian/ash-medium.dirs ash-0.3.7.orig/debian/ash-medium.dirs +--- netbsd-sh/debian/ash-medium.dirs Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/ash-medium.dirs Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,2 @@ ++usr/bin ++usr/share/man/man1 +diff -urN netbsd-sh/debian/ash-udeb.dirs ash-0.3.7.orig/debian/ash-udeb.dirs +--- netbsd-sh/debian/ash-udeb.dirs Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/ash-udeb.dirs Mon Apr 23 22:16:46 2001 +@@ -0,0 +1 @@ ++bin +diff -urN netbsd-sh/debian/bsdyacc ash-0.3.7.orig/debian/bsdyacc +--- netbsd-sh/debian/bsdyacc Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/bsdyacc Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,20 @@ ++#!/bin/sh -e ++ ++if echo "$@" | grep -q -- -o; then ++ OUTPUT=$(echo "$@" | ++ sed 's/.*-o[[:blank:]]\+\([^[:blank:]]\+\)\.c.*/\1/') ++ OPTIONS=$(echo "$@" | ++ sed 's/\(.*\)-o[[:blank:]]\+[^[:blank:]]\+\(.*\)/\1\2/') ++ NEW=1 ++else ++ OUTPUT=$(echo "$@" | ++ sed -e 's/.*[[:blank:]]\+\([^[:blank:]]\+\)\.y.*/\1/') ++ OPTIONS="$@" ++ NEW=0 ++fi ++ ++byacc $OPTIONS ++if [ $NEW = 1 ]; then ++ mv y.tab.c $OUTPUT.c ++fi ++mv y.tab.h $OUTPUT.h +diff -urN netbsd-sh/debian/changelog ash-0.3.7.orig/debian/changelog +--- netbsd-sh/debian/changelog Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/changelog Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,429 @@ ++ash (0.3.7-14) unstable; urgency=low ++ ++ * Removed predependency from udeb (closes: #81995). ++ * Added /bin/sh symlink to udeb (closes: #81967). ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 13 Jan 2001 15:23:21 +1100 ++ ++ash (0.3.7-13) unstable; urgency=low ++ ++ * Renamed the udeb to ash-udeb. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 20 Dec 2000 19:32:34 +1100 ++ ++ash (0.3.7-12) unstable; urgency=low ++ ++ * Added support for udebs (Randolph Chung, closes: #79237). ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 16 Dec 2000 13:53:28 +1100 ++ ++ash (0.3.7-11) unstable; urgency=low ++ ++ * Preserve the previous exit status upon entering a function ++ (closes: #78374). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 3 Dec 2000 13:34:27 +1100 ++ ++ash (0.3.7-10) unstable; urgency=low ++ ++ * Merged changes for GNU from Igor Khavkine. ++ * Minimise the number of sigactions. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 3 Nov 2000 20:31:52 +1100 ++ ++ash (0.3.7-9) unstable; urgency=low ++ ++ * Predepend on the libraries. ++ * Always save fd 2 when it is redirected (closes: #75302). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 22 Oct 2000 08:40:40 +1100 ++ ++ash (0.3.7-8) unstable; urgency=high ++ ++ * More redirection fixes (closes: #73613). ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 5 Oct 2000 18:22:17 +1100 ++ ++ash (0.3.7-7) unstable; urgency=high ++ ++ * Added missing break in redirection code (closes: #72956). ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 3 Oct 2000 07:58:04 +1100 ++ ++ash (0.3.7-6) unstable; urgency=low ++ ++ * command -[vV] no longer displays an error message on stdout. ++ * Redirecting to /proc/self/fd/* now works (closes: #72852). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 1 Oct 2000 12:56:39 +1100 ++ ++ash (0.3.7-5) unstable; urgency=low ++ ++ * Implemented set -a. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 30 Sep 2000 16:00:33 +1100 ++ ++ash (0.3.7-4) unstable; urgency=low ++ ++ * Added build-time dependency on debhelper (closes: #69920). ++ * Extended maximum length of arithmetic expansions to match 32-bit integers. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 20 Sep 2000 14:28:16 +1100 ++ ++ash (0.3.7-3) unstable; urgency=low ++ ++ * Switch to the old globbing code since glob(3) is hopelessly broken ++ (closes: #69455). ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 21 Aug 2000 20:37:15 +1000 ++ ++ash (0.3.7-2) unstable; urgency=low ++ ++ * Call glob(3) with GLOB_NOMAGIC (ouch). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 6 Aug 2000 17:47:08 +1000 ++ ++ash (0.3.7-1) unstable; urgency=low ++ ++ * NetBSD-current version as of 20000729. ++ * Use fnmatch(3) and glob(3). ++ * Fixed the use of backslashes in the pattern in parameter substitutions, ++ hopefully for the last time. ++ * Applied HETIO patch and built ash.medium (closes: #50788). Will do ash.big ++ when readline is fixed so that it doesn't leak anymore. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 4 Aug 2000 21:36:44 +1000 ++ ++ash (0.3.6-5) unstable; urgency=low ++ ++ * Fixed manpage entry for read with patch from Kevin Ryde (closes: #62500). ++ * Fixed a file descriptor leak for pipelines. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 19 Apr 2000 18:56:20 +1000 ++ ++ash (0.3.6-4) unstable; urgency=low ++ ++ * Fixed the case of an empty command with redirections. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 7 Apr 2000 12:07:18 +1000 ++ ++ash (0.3.6-3) unstable; urgency=low ++ ++ * ! is now recognised correctly. ++ * Ash is now more strict on the syntax, e.g., a lone ! is no longer accepted ++ as an alternative to ! true. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 7 Apr 2000 10:46:06 +1000 ++ ++ash (0.3.6-2) unstable; urgency=low ++ ++ * Fixed a problem with fmtstr() which broke getopts. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 2 Apr 2000 10:49:26 +1000 ++ ++ash (0.3.6-1) unstable; urgency=low ++ ++ * NetBSD-current version as of 20000326. ++ * Added a Build-Depends on groff (closes: #61041). ++ * Implemented noclobber (closes: #59028). ++ * Rewrote output.c to use stream IO. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 1 Apr 2000 19:24:31 +1000 ++ ++ash (0.3.5-10) frozen unstable; urgency=low ++ ++ * Don't stat mail boxes in non-interactive mode (closes: #59213). ++ * Added an fflush(stdout) to the times builtin (closes: #59027). ++ * Documented the times builtin. ++ * Added source depends. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 18 Mar 2000 18:58:44 +1100 ++ ++ash (0.3.5-9) unstable; urgency=low ++ ++ * Double quotes inside paramater substitutions inside double quotes are now ++ ignored as in bash (the originial behaviour was POSIX compliant too but ++ IMHO this one makes a little bit more sense). ++ This one broke mwm (but it was actually mwm's fault). ++ * Corrected backslash/CTLESC treatment for patterns in parameter ++ substitutions. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 6 Nov 1999 18:13:19 +1100 ++ ++ash (0.3.5-8) unstable; urgency=low ++ ++ * Replaced use of echo -n in manual page with escape codes. ++ * Made FHS compliant (closes: #47978). ++ * Restored echo's option processing ability. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 22 Oct 1999 10:20:58 +1000 ++ ++ash (0.3.5-7) unstable; urgency=low ++ ++ * echo no longer supports options. ++ * Don't quote patterns inside parameter substitutions enclosed by double ++ quotes (closes: #47842). ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 20 Oct 1999 20:28:14 +1000 ++ ++ash (0.3.5-6) unstable; urgency=low ++ ++ * Use getcwd() instead of /bin/pwd -- Zack Weinberg (closes: #46981). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 10 Oct 1999 16:31:49 +1000 ++ ++ash (0.3.5-5) unstable; urgency=low ++ ++ * Only test for -e on simple commands (fixes #44559). ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 8 Sep 1999 22:18:27 +1000 ++ ++ash (0.3.5-4) unstable; urgency=low ++ ++ * Don't wait for stopped children if job control is disabled (fixes #42814). ++ * Allow an option '(' in a case statement (fixes #42364). ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 12 Aug 1999 23:30:30 +1000 ++ ++ash (0.3.5-3) unstable; urgency=low ++ ++ * OK, the fix to the esoteric problem in 0.3.5-1 actually breaks VSASSIGN ++ and VSQUESTION, they should work properly now (fixes #41327). ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 15 Jul 1999 22:47:13 +1000 ++ ++ash (0.3.5-2) unstable; urgency=low ++ ++ * PATH search and execution is now correct. ++ * hash no longer shows builtins. ++ * Added kill builtin. ++ * New description from James R. van Zandt reformatted by Josip Rodin. ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 12 Jul 1999 18:51:42 +1000 ++ ++ash (0.3.5-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Adapted to new pmake (fixes #38737). ++ * Fixed behvaiour of backslashes preceding a closing brace for a parameter ++ substituion inside double quotes (even bash messes this one up :). ++ * Fixed command (fixes #34639). ++ * Fixed a pipe bug where stdin may be wrongly closed (fixes #35452). ++ * Revamped getopts (fixes #39694). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 4 Jul 1999 12:19:01 +1000 ++ ++ash (0.3.4-7) unstable; urgency=low ++ ++ * Fixed a glibc 2.1 compatitibility problem. ++ * Fixed a PWD inconsistency that stuffed up the kernel compilation. ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 17 May 1999 23:14:57 +1000 ++ ++ash (0.3.4-6) unstable; urgency=low ++ ++ * Fixed incorrect -e test due to the last bug fix (fixes #26509). ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 8 Sep 1998 10:02:46 +1000 ++ ++ash (0.3.4-5) unstable; urgency=low ++ ++ * Use test_eaccess from bash instead of access(2) (fixes #26110). ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 26 Aug 1998 21:22:49 +1000 ++ ++ash (0.3.4-4) unstable; urgency=low ++ ++ * Only upload to unstable. ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 5 May 1998 18:01:02 +1000 ++ ++ash (0.3.4-3) frozen unstable; urgency=low ++ ++ * Applied sparc patch (fixes #21562). ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 1 May 1998 19:48:13 +1000 ++ ++ash (0.3.4-2) frozen unstable; urgency=low ++ ++ * Fixed the incorrect trap fixes (fixes #20363). ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 16 Apr 1998 21:07:10 +1000 ++ ++ash (0.3.4-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Reverted word splitting change in 0.3.2-1 since the fix was broken and ++ major work (the quote removal is done too quickly at the moment) is needed ++ to fix it properly. ++ * Fixed more trap noncompliance. ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 19 Mar 1998 22:59:12 +1100 ++ ++ash (0.3.2-5) unstable; urgency=low ++ ++ * Fixed a bug when doing pattern matching in parameter expansions. ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 10 Mar 1998 21:25:40 +1100 ++ ++ash (0.3.2-4) unstable; urgency=low ++ ++ * Allow ] to be quoted in bracket expressions (fixes #17533). ++ * Move dh_fixperms to second last spot (fixes #18267). ++ * Don't do field splitting in evalfor. ++ ++ -- Herbert Xu <herbert@debian.org> Tue, 17 Feb 1998 13:32:09 +1100 ++ ++ash (0.3.2-3) unstable; urgency=low ++ ++ * Fixed stupid core dump. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 11 Feb 1998 21:33:55 +1100 ++ ++ash (0.3.2-2) unstable; urgency=low ++ ++ * Hack for special builtins (fixes #18055). ++ * Hack for command. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 11 Feb 1998 21:19:46 +1100 ++ ++ash (0.3.2-1) unstable; urgency=low ++ ++ * NetBSD-current version as of 19980209. ++ * Fixed a word splitting problem after parameter expansion thanks to Alexey ++ Marinichev. ++ * Converted to debhelper (fixes #14612, #15005). ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 9 Feb 1998 16:53:48 +1100 ++ ++ash (0.3.1-20) unstable; urgency=low ++ ++ * Fixed -e problem with eval. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 7 Dec 1997 20:19:00 +1100 ++ ++ash (0.3.1-19) unstable; urgency=low ++ ++ * Fixed -e problem with command substitution. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 7 Dec 1997 19:44:49 +1100 ++ ++ash (0.3.1-18) unstable; urgency=low ++ ++ * Do not link with ncurses (#15485). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 30 Nov 1997 12:00:11 +1100 ++ ++ash (0.3.1-17) unstable; urgency=low ++ ++ * Set PATH like bash (#15238). ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 26 Nov 1997 16:17:27 +1100 ++ ++ash (0.3.1-16) unstable; urgency=low ++ ++ * Fixed incorrect assignment builtin code. ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 24 Nov 1997 16:19:10 +1100 ++ ++ash (0.3.1-15) unstable; urgency=low ++ ++ * hash now returns error codes (needed by the Linux kernel). ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 23 Nov 1997 21:37:08 +1100 ++ ++ash (0.3.1-14) unstable; urgency=low ++ ++ * Disabled word-splitting for assignment builtins. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 23 Nov 1997 12:45:15 +1100 ++ ++ash (0.3.1-13) unstable; urgency=low ++ ++ * ! is now recognised even after &&/||. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 21 Nov 1997 22:09:05 +1100 ++ ++ash (0.3.1-12) unstable; urgency=low ++ ++ * More fixes to the handling of SIGINT when forking. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 14 Nov 1997 15:14:32 +1100 ++ ++ash (0.3.1-11) unstable; urgency=low ++ ++ * Ignore SIGINT when forking non-interactively. ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 3 Nov 1997 12:00:02 +1100 ++ ++ash (0.3.1-10) unstable; urgency=low ++ ++ * echo now handles options correctly. ++ * echo nolonger returns 0 if erorrs occured while writing to stdout. ++ * New code from GNU echo merged. ++ * Error messages from test now work. ++ ++ -- Herbert Xu <herbert@debian.org> Wed, 8 Oct 1997 21:47:13 +1000 ++ ++ash (0.3.1-9) unstable; urgency=low ++ ++ * ! is recognised at pipeline level like bash. ++ ++ -- Herbert Xu <herbert@debian.org> Mon, 15 Sep 1997 23:13:45 +1000 ++ ++ash (0.3.1-8) unstable; urgency=medium ++ ++ * Old patch regarding SIGCHLD in again. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 31 Aug 1997 11:20:27 +1000 ++ ++ash (0.3.1-7) unstable; urgency=low ++ ++ * /bin/sh -e is behaving even better now (for loops within conditionals). ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 23 Aug 1997 22:08:19 +1000 ++ ++ash (0.3.1-6) unstable; urgency=low ++ ++ * /bin/sh -e is behaving better now. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 23 Aug 1997 13:16:26 +1000 ++ ++ash (0.3.1-5) unstable; urgency=low ++ ++ * hash -v /dir/command doesn't coredump anymore. ++ * type /dir/command now works correctly. ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 1 Aug 1997 20:48:19 +1000 ++ ++ash (0.3.1-4) unstable; urgency=low ++ ++ * trap now understands symbolic signal names. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 26 Jul 1997 14:04:46 +1000 ++ ++ash (0.3.1-3) unstable; urgency=low ++ ++ * Added the builtin test command. ++ ++ -- Herbert Xu <herbert@debian.org> Sun, 20 Jul 1997 15:00:14 +1000 ++ ++ash (0.3.1-2) unstable; urgency=medium ++ ++ * Fixed a coredump involving $*. ++ ++ -- Herbert Xu <herbert@debian.org> Sat, 19 Jul 1997 12:03:02 +1000 ++ ++ash (0.3.1-1) unstable; urgency=medium ++ ++ * NetBSD-current version as of 19970715. ++ * Fixed a "use after free" bug (#11294). ++ ++ -- Herbert Xu <herbert@debian.org> Fri, 18 Jul 1997 13:48:09 +1000 ++ ++ash (0.3-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Herbert Xu <herbert@debian.org> Thu, 19 Jun 1997 19:29:16 +1000 ++ +diff -urN netbsd-sh/debian/control ash-0.3.7.orig/debian/control +--- netbsd-sh/debian/control Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/control Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,69 @@ ++Source: ash ++Section: shells ++Priority: optional ++Maintainer: Herbert Xu <herbert@debian.org> ++Build-Depends: byacc, debhelper, flex, pmake, groff ++Standards-Version: 3.2.1 ++ ++Package: ash ++Architecture: any ++Pre-Depends: ${shlibs:Depends} ++Description: NetBSD /bin/sh ++ "ash" is a POSIX compliant shell that is much smaller than "bash". ++ We take advantage of that by making it the shell on the installation ++ root floppy, where space is at a premium. ++ . ++ It can be usefully installed as /bin/sh (because it executes scripts ++ somewhat faster than "bash"), or as the default shell either of root ++ or of a second user with a userid of 0 (because it depends on fewer ++ libraries, and is therefore less likely to be affected by an upgrade ++ problem or a disk failure). It is also useful for checking that a ++ script uses only POSIX syntax. ++ . ++ "bash" is a better shell for most users, since it has some nice ++ features absent from "ash", and is a required part of the system. ++ ++Package: ash-medium ++Architecture: any ++Pre-Depends: ${shlibs:Depends} ++Priority: extra ++Description: NetBSD /bin/sh with HETIO ++ This is a slightly bigger version of the standard ash package with a ++ hack that provides primitive history support. It may be useful on ++ boot floppies where space is at a premium, yet users still need the ++ ability to access previous commands in the same session. If you're ++ not a boot floppies maintainer, you should probably go for ash, ++ ash.big (not yet available), or bash. ++ . ++ "ash" is a POSIX compliant shell that is much smaller than "bash". ++ We take advantage of that by making it the shell on the installation ++ root floppy, where space is at a premium. ++ . ++ It can be usefully installed as /bin/sh (because it executes scripts ++ somewhat faster than "bash"), or as the default shell either of root ++ or of a second user with a userid of 0 (because it depends on fewer ++ libraries, and is therefore less likely to be affected by an upgrade ++ problem or a disk failure). It is also useful for checking that a ++ script uses only POSIX syntax. ++ . ++ "bash" is a better shell for most users, since it has some nice ++ features absent from "ash", and is a required part of the system. ++ ++Package: ash-udeb ++Architecture: any ++Section: debian-installer ++Description: NetBSD /bin/sh for boot floppies ++ "ash" is a POSIX compliant shell that is much smaller than "bash". ++ We take advantage of that by making it the shell on the installation ++ root floppy, where space is at a premium. ++ . ++ It can be usefully installed as /bin/sh (because it executes scripts ++ somewhat faster than "bash"), or as the default shell either of root ++ or of a second user with a userid of 0 (because it depends on fewer ++ libraries, and is therefore less likely to be affected by an upgrade ++ problem or a disk failure). It is also useful for checking that a ++ script uses only POSIX syntax. ++ . ++ "bash" is a better shell for most users, since it has some nice ++ features absent from "ash", and is a required part of the system. ++ +diff -urN netbsd-sh/debian/copyright ash-0.3.7.orig/debian/copyright +--- netbsd-sh/debian/copyright Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/copyright Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,18 @@ ++This package was debianized by Mark W. Eichin eichin@kitten.gen.ma.us on ++Mon, 24 Feb 1997 16:00:16 -0500. ++ ++This package was re-ported from NetBSD and debianized by ++Herbert Xu herbert@debian.org on Thu, 19 Jun 1997 19:29:16 +1000. ++ ++It was downloaded from ftp.netbsd.org. ++ ++Copyright: ++ ++Copyright (c) 1991, 1993 ++ The Regents of the University of California. All rights reserved. ++ ++This code is derived from software contributed to Berkeley by Kenneth Almquist. ++ ++Please refer to /usr/share/common-licenses/BSD for details. ++ ++$Id: copyright,v 1.3 2000/08/04 11:48:49 herbert Exp $ +diff -urN netbsd-sh/debian/dirs ash-0.3.7.orig/debian/dirs +--- netbsd-sh/debian/dirs Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/dirs Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,2 @@ ++bin ++usr/share/man/man1 +diff -urN netbsd-sh/debian/rules ash-0.3.7.orig/debian/rules +--- netbsd-sh/debian/rules Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/debian/rules Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,92 @@ ++#!/usr/bin/make -f ++# $Id: rules,v 1.22 2001/01/13 04:23:49 herbert Exp $ ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++CDEF = -g -O2 -Wall -DBSD=1 -DSMALL -D_GNU_SOURCE \ ++ -DGLOB_BROKEN \ ++ -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -D_DIAGASSERT\(x\)= ++CDEFSM = -Os -fomit-frame-pointer -Wall -DBSD=1 -DSMALL -D_GNU_SOURCE \ ++ -DGLOB_BROKEN \ ++ -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -D_DIAGASSERT\(x\)= ++ ++sh.hetio: ++ chmod u+x debian/bsdyacc ++ rm -f *.o ++ pmake CFLAGS='$(CDEF)' HETIO= YACC=`pwd`/debian/bsdyacc ++ mv sh sh.hetio ++ ++sh: ++ chmod u+x debian/bsdyacc ++ rm -f *.o ++ pmake CFLAGS='$(CDEF)' YACC=`pwd`/debian/bsdyacc ++ ++sh.udeb: ++ chmod u+x debian/bsdyacc ++ rm -f *.o ++ pmake CFLAGS='$(CDEFSM)' YACC=`pwd`/debian/bsdyacc ++ mv sh sh.udeb ++ ++build: build-stamp ++build-stamp: sh.hetio sh.udeb sh ++ dh_testdir ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ ++ pmake clean HETIO= ++ rm -f sh.cat1 mksignames signames.h sh.hetio sh.udeb ++ ++ dh_clean ++ ++# Build architecture-independent files here. ++binary-indep: build ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build ++# dh_testversion ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ install sh debian/tmp/bin/ash ++ install -m 644 sh.1 debian/tmp/usr/share/man/man1/ash.1 ++ install sh.hetio debian/ash-medium/usr/bin/ash.medium ++ install -m 644 sh.1 debian/ash-medium/usr/share/man/man1/ash.medium.1 ++ install sh.udeb debian/ash-udeb/bin/ash ++ ln -s ash debian/ash-udeb/bin/sh ++ ++ dh_installdocs -Nash-udeb ++ dh_installexamples ++ dh_installmenu ++# dh_installinit ++ dh_installcron ++# dh_installmanpages ++# dh_undocumented ++ dh_installchangelogs -Nash-udeb ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_suidregister ++ dh_installdeb -Nash-udeb ++ dh_shlibdeps ++ dh_gencontrol ++# dh_makeshlibs ++ dh_md5sums ++ dh_builddeb ++ for i in ../ash-udeb_*.deb; do mv $$i $${i%deb}udeb; done ++ sed '/^[^ ]*\.udeb/d; s/^\(ash-udeb_[^ ]*\.\)deb/\1udeb/' \ ++ debian/files > debian/files.new ++ mv debian/files.new debian/files ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary + diff --git a/source/ap/ash/patches/ash-echo.patch b/source/ap/ash/patches/ash-echo.patch new file mode 100644 index 000000000..89d93472f --- /dev/null +++ b/source/ap/ash/patches/ash-echo.patch @@ -0,0 +1,91 @@ +diff -urN netbsd-sh/bltin/echo.c ash-0.3.7.orig/bltin/echo.c +--- netbsd-sh/bltin/echo.c Sun Nov 3 13:06:22 1996 ++++ ash-0.3.7.orig/bltin/echo.c Mon Apr 23 22:16:46 2001 +@@ -44,7 +44,13 @@ + + #define main echocmd + ++#ifdef _GNU_SOURCE ++#include <stdio.h> ++ ++#include "../mystring.h" ++#else + #include "bltin.h" ++#endif + + /* #define eflag 1 */ + +@@ -53,7 +59,6 @@ + register char **ap; + register char *p; + register char c; +- int count; + int nflag = 0; + #ifndef eflag + int eflag = 0; +@@ -62,21 +67,26 @@ + ap = argv; + if (argc) + ap++; +- if ((p = *ap) != NULL) { ++ while ((p = *ap) != NULL && *p == '-') { + if (equal(p, "-n")) { +- nflag++; +- ap++; ++ nflag = 1; + } else if (equal(p, "-e")) { + #ifndef eflag +- eflag++; ++ eflag = 1; ++#endif ++ } else if (equal(p, "-E")) { ++#ifndef eflag ++ eflag = 0; + #endif +- ap++; + } ++ else break; ++ ap++; + } + while ((p = *ap++) != NULL) { + while ((c = *p++) != '\0') { + if (c == '\\' && eflag) { +- switch (*p++) { ++ switch (c = *p++) { ++ case 'a': c = '\007'; break; + case 'b': c = '\b'; break; + case 'c': return 0; /* exit */ + case 'f': c = '\f'; break; +@@ -85,11 +95,13 @@ + case 't': c = '\t'; break; + case 'v': c = '\v'; break; + case '\\': break; /* c = '\\' */ +- case '0': +- c = 0; +- count = 3; +- while (--count >= 0 && (unsigned)(*p - '0') < 8) +- c = (c << 3) + (*p++ - '0'); ++ case '0': case '1': case '2': case '3': ++ case '4': case '5': case '6': case '7': ++ c -= '0'; ++ if (*p >= '0' && *p <= '7') ++ c = c * 8 + (*p++ - '0'); ++ if (*p >= '0' && *p <= '7') ++ c = c * 8 + (*p++ - '0'); + break; + default: + p--; +@@ -103,5 +115,12 @@ + } + if (! nflag) + putchar('\n'); ++#ifdef _GNU_SOURCE ++ fflush(stdout); ++ if (ferror(stdout)) { ++ clearerr(stdout); ++ return 1; ++ } ++#endif + return 0; + } + diff --git a/source/ap/ash/patches/ash-freebsd.patch b/source/ap/ash/patches/ash-freebsd.patch new file mode 100644 index 000000000..b0b114470 --- /dev/null +++ b/source/ap/ash/patches/ash-freebsd.patch @@ -0,0 +1,60 @@ +diff -ur ash-0.4.0/bltin/echo.c ash-0.4.0+free/bltin/echo.c +--- ash-0.4.0/bltin/echo.c Tue Apr 24 02:03:56 2001 ++++ ash-0.4.0+free/bltin/echo.c Tue Apr 24 01:43:15 2001 +@@ -89,6 +89,7 @@ + case 'a': c = '\007'; break; + case 'b': c = '\b'; break; + case 'c': return 0; /* exit */ ++ case 'e': c = '\033'; break; + case 'f': c = '\f'; break; + case 'n': c = '\n'; break; + case 'r': c = '\r'; break; +diff -ur ash-0.4.0/cd.c ash-0.4.0+free/cd.c +--- ash-0.4.0/cd.c Tue Apr 24 02:03:56 2001 ++++ ash-0.4.0+free/cd.c Tue Apr 24 01:43:57 2001 +@@ -244,6 +244,7 @@ + curdir = NULL; + getpwd(); + setvar("PWD", curdir, VEXPORT|VTEXTFIXED); ++ setvar("OLDPWD", prevdir, VEXPORT|VTEXTFIXED); + INTON; + return; + } +@@ -275,6 +276,7 @@ + prevdir = curdir; + curdir = savestr(stackblock()); + setvar("PWD", curdir, VEXPORT|VTEXTFIXED); ++ setvar("OLDPWD", prevdir, VEXPORT|VTEXTFIXED); + INTON; + } + +diff -ur ash-0.4.0/main.c ash-0.4.0+free/main.c +--- ash-0.4.0/main.c Tue Apr 24 02:03:57 2001 ++++ ash-0.4.0+free/main.c Tue Apr 24 02:03:26 2001 +@@ -115,6 +115,9 @@ + struct stackmark smark; + volatile int state; + char *shinit; ++ int priviliged; ++ ++ priviliged = getuid() != geteuid() || getgid() != getegid(); + + #if PROFILE + monitor(4, etext, profile_buf, sizeof profile_buf, 50); +@@ -188,11 +191,14 @@ + read_profile("/etc/profile"); + state1: + state = 2; +- read_profile(".profile"); ++ if (priviliged == 0) ++ read_profile(".profile"); ++ else ++ read_profile("/etc/suid_profile"); + } + state2: + state = 3; +- if (getuid() == geteuid() && getgid() == getegid()) { ++ if (iflag && !priviliged) { + if ((shinit = lookupvar("ENV")) != NULL && *shinit != '\0') { + state = 3; + read_profile(shinit); diff --git a/source/ap/ash/patches/ash-getcwd.patch b/source/ap/ash/patches/ash-getcwd.patch new file mode 100644 index 000000000..f98f487e3 --- /dev/null +++ b/source/ap/ash/patches/ash-getcwd.patch @@ -0,0 +1,13 @@ +diff -urN netbsd-sh/cd.c ash-0.3.7.orig/cd.c +--- netbsd-sh/cd.c Fri Jul 9 13:02:05 1999 ++++ ash-0.3.7.orig/cd.c Mon Apr 23 22:16:46 2001 +@@ -319,7 +319,7 @@ + * c implementation of getcwd, that does not open a pipe to + * /bin/pwd. + */ +-#if defined(__NetBSD__) || defined(__SVR4) ++#if defined(__NetBSD__) || defined(__SVR4) || defined(__GLIBC__) + + if (getcwd(buf, sizeof(buf)) == NULL) { + char *pwd = getenv("PWD"); + diff --git a/source/ap/ash/patches/ash-getopt.patch b/source/ap/ash/patches/ash-getopt.patch new file mode 100644 index 000000000..df88ba0df --- /dev/null +++ b/source/ap/ash/patches/ash-getopt.patch @@ -0,0 +1,198 @@ +diff -urN netbsd-sh/options.c ash-0.3.7.orig/options.c +--- netbsd-sh/options.c Fri Jul 9 13:02:07 1999 ++++ ash-0.3.7.orig/options.c Mon Apr 23 22:16:46 2001 +@@ -79,7 +79,7 @@ + STATIC void options __P((int)); + STATIC void minus_o __P((char *, int)); + STATIC void setoption __P((int, int)); +-STATIC int getopts __P((char *, char *, char **, char ***, char **)); ++STATIC int getopts __P((char *, char *, char **, int *, int *)); + + + /* +@@ -118,7 +118,8 @@ + arg0 = *argptr++; + + shellparam.p = argptr; +- shellparam.reset = 1; ++ shellparam.optind = 1; ++ shellparam.optoff = -1; + /* assert(shellparam.malloc == 0 && shellparam.nparam == 0); */ + while (*argptr) { + shellparam.nparam++; +@@ -282,7 +283,8 @@ + shellparam.malloc = 1; + shellparam.nparam = nparam; + shellparam.p = newparam; +- shellparam.optnext = NULL; ++ shellparam.optind = 1; ++ shellparam.optoff = -1; + } + + +@@ -330,7 +332,8 @@ + } + ap2 = shellparam.p; + while ((*ap2++ = *ap1++) != NULL); +- shellparam.optnext = NULL; ++ shellparam.optind = 1; ++ shellparam.optoff = -1; + INTON; + return 0; + } +@@ -363,10 +366,8 @@ + getoptsreset(value) + const char *value; + { +- if (number(value) == 1) { +- shellparam.optnext = NULL; +- shellparam.reset = 1; +- } ++ shellparam.optind = number(value); ++ shellparam.optoff = -1; + } + + /* +@@ -385,50 +386,58 @@ + + if (argc < 3) + error("Usage: getopts optstring var [arg]"); +- else if (argc == 3) ++ else if (argc == 3) { + optbase = shellparam.p; +- else ++ if (shellparam.optind > shellparam.nparam + 1) { ++ shellparam.optind = 1; ++ shellparam.optoff = -1; ++ } ++ } ++ else { + optbase = &argv[3]; +- +- if (shellparam.reset == 1) { +- shellparam.optnext = optbase; +- shellparam.optptr = NULL; +- shellparam.reset = 0; ++ if (shellparam.optind > argc - 2) { ++ shellparam.optind = 1; ++ shellparam.optoff = -1; ++ } + } + +- return getopts(argv[1], argv[2], optbase, &shellparam.optnext, +- &shellparam.optptr); ++ return getopts(argv[1], argv[2], optbase, &shellparam.optind, ++ &shellparam.optoff); + } + + STATIC int +-getopts(optstr, optvar, optfirst, optnext, optpptr) ++getopts(optstr, optvar, optfirst, optind, optoff) + char *optstr; + char *optvar; + char **optfirst; +- char ***optnext; +- char **optpptr; ++ int *optind; ++ int *optoff; + { + char *p, *q; + char c = '?'; + int done = 0; +- int ind = 0; + int err = 0; + char s[10]; ++ char **optnext = optfirst + *optind - 1; + +- if ((p = *optpptr) == NULL || *p == '\0') { ++ if (*optind <= 1 || *optoff < 0 || !(*(optnext - 1)) || ++ strlen(*(optnext - 1)) < *optoff) ++ p = NULL; ++ else ++ p = *(optnext - 1) + *optoff; ++ if (p == NULL || *p == '\0') { + /* Current word is done, advance */ +- if (*optnext == NULL) ++ if (optnext == NULL) + return 1; +- p = **optnext; ++ p = *optnext; + if (p == NULL || *p != '-' || *++p == '\0') { + atend: +- ind = *optnext - optfirst + 1; +- *optnext = NULL; ++ *optind = optnext - optfirst + 1; + p = NULL; + done = 1; + goto out; + } +- (*optnext)++; ++ optnext++; + if (p[0] == '-' && p[1] == '\0') /* check for "--" */ + goto atend; + } +@@ -453,7 +462,7 @@ + } + + if (*++q == ':') { +- if (*p == '\0' && (p = **optnext) == NULL) { ++ if (*p == '\0' && (p = *optnext) == NULL) { + if (optstr[0] == ':') { + s[0] = c; + s[1] = '\0'; +@@ -468,30 +477,29 @@ + goto bad; + } + +- if (p == **optnext) +- (*optnext)++; ++ if (p == *optnext) ++ optnext++; + setvarsafe("OPTARG", p, 0); + p = NULL; + } + else + setvarsafe("OPTARG", "", 0); +- ind = *optnext - optfirst + 1; ++ *optind = optnext - optfirst + 1; + goto out; + + bad: +- ind = 1; +- *optnext = NULL; ++ *optind = 1; + p = NULL; + out: +- *optpptr = p; +- fmtstr(s, sizeof(s), "%d", ind); ++ *optoff = p ? p - *(optnext - 1) : -1; ++ fmtstr(s, sizeof(s), "%d", *optind); + err |= setvarsafe("OPTIND", s, VNOFUNC); + s[0] = c; + s[1] = '\0'; + err |= setvarsafe(optvar, s, 0); + if (err) { +- *optnext = NULL; +- *optpptr = NULL; ++ *optind = 1; ++ *optoff = -1; + flushall(); + exraise(EXERROR); + } +diff -urN netbsd-sh/options.h ash-0.3.7.orig/options.h +--- netbsd-sh/options.h Fri Jul 9 13:02:07 1999 ++++ ash-0.3.7.orig/options.h Mon Apr 23 22:16:46 2001 +@@ -41,10 +41,9 @@ + struct shparam { + int nparam; /* # of positional parameters (without $0) */ + unsigned char malloc; /* if parameter list dynamically allocated */ +- unsigned char reset; /* if getopts has been reset */ + char **p; /* parameter list */ +- char **optnext; /* next parameter to be processed by getopts */ +- char *optptr; /* used by getopts */ ++ int optind; /* next parameter to be processed by getopts */ ++ int optoff; /* used by getopts */ + }; + + + diff --git a/source/ap/ash/patches/ash-glob.patch b/source/ap/ash/patches/ash-glob.patch new file mode 100644 index 000000000..70013536e --- /dev/null +++ b/source/ap/ash/patches/ash-glob.patch @@ -0,0 +1,445 @@ +diff -urN netbsd-sh/expand.c ash-0.3.7.orig/expand.c +--- netbsd-sh/expand.c Tue Mar 14 13:03:45 2000 ++++ ash-0.3.7.orig/expand.c Mon Apr 23 22:16:46 2001 +@@ -54,6 +54,10 @@ + #include <pwd.h> + #include <stdlib.h> + #include <stdio.h> ++#if defined(__GLIBC__) && !defined(GLOB_BROKEN) ++#include <fnmatch.h> ++#include <glob.h> ++#endif + + /* + * Routines to expand arguments to commands. We have to deal with +@@ -102,17 +106,30 @@ + STATIC int subevalvar __P((char *, char *, int, int, int, int)); + STATIC char *evalvar __P((char *, int)); + STATIC int varisset __P((char *, int)); ++STATIC char *strtodest __P((char *, int, int)); + STATIC void varvalue __P((char *, int, int)); + STATIC void recordregion __P((int, int, int)); + STATIC void removerecordregions __P((int)); + STATIC void ifsbreakup __P((char *, struct arglist *)); + STATIC void ifsfree __P((void)); + STATIC void expandmeta __P((struct strlist *, int)); ++#if defined(__GLIBC__) && !defined(GLOB_BROKEN) ++STATIC const char *preglob __P((const char *)); ++STATIC void addglob __P((const glob_t *)); ++#else + STATIC void expmeta __P((char *, char *)); ++#endif + STATIC void addfname __P((char *)); ++#if defined(__GLIBC__) && !defined(GLOB_BROKEN) ++STATIC int patmatch __P((char *, char *, int)); ++STATIC int patmatch2 __P((char *, char *, int)); ++STATIC char * _rmescapes __P((char *, int)); ++#else + STATIC struct strlist *expsort __P((struct strlist *)); + STATIC struct strlist *msort __P((struct strlist *, int)); + STATIC int pmatch __P((char *, char *, int)); ++#define patmatch2 patmatch ++#endif + STATIC char *cvtnum __P((int, char *)); + + /* +@@ -371,7 +388,7 @@ + * have to rescan starting from the beginning since CTLESC + * characters have to be processed left to right. + */ +- CHECKSTRSPACE(8, expdest); ++ CHECKSTRSPACE(10, expdest); + USTPUTC('\0', expdest); + start = stackblock(); + p = expdest - 1; +@@ -393,7 +410,7 @@ + if (quotes) + rmescapes(p+2); + result = arith(p+2); +- fmtstr(p, 10, "%d", result); ++ fmtstr(p, 12, "%d", result); + + while (*p++) + ; +@@ -503,7 +520,7 @@ + int amount; + + herefd = -1; +- argstr(p, 0); ++ argstr(p, subtype != VSASSIGN && subtype != VSQUESTION ? EXP_CASE : 0); + STACKSTRNUL(expdest); + herefd = saveherefd; + argbackq = saveargbackq; +@@ -535,7 +552,7 @@ + for (loc = startp; loc < str; loc++) { + c = *loc; + *loc = '\0'; +- if (patmatch(str, startp, varflags & VSQUOTE)) ++ if (patmatch2(str, startp, varflags & VSQUOTE)) + goto recordleft; + *loc = c; + if ((varflags & VSQUOTE) && *loc == CTLESC) +@@ -547,7 +564,7 @@ + for (loc = str - 1; loc >= startp;) { + c = *loc; + *loc = '\0'; +- if (patmatch(str, startp, varflags & VSQUOTE)) ++ if (patmatch2(str, startp, varflags & VSQUOTE)) + goto recordleft; + *loc = c; + loc--; +@@ -564,7 +581,7 @@ + + case VSTRIMRIGHT: + for (loc = str - 1; loc >= startp;) { +- if (patmatch(str, loc, varflags & VSQUOTE)) ++ if (patmatch2(str, loc, varflags & VSQUOTE)) + goto recordright; + loc--; + if ((varflags & VSQUOTE) && loc > startp && +@@ -580,7 +597,7 @@ + + case VSTRIMRIGHTMAX: + for (loc = startp; loc < str - 1; loc++) { +- if (patmatch(str, loc, varflags & VSQUOTE)) ++ if (patmatch2(str, loc, varflags & VSQUOTE)) + goto recordright; + if ((varflags & VSQUOTE) && *loc == CTLESC) + loc++; +@@ -819,6 +836,34 @@ + + + /* ++ * Put a string on the stack. ++ */ ++ ++STATIC char * ++strtodest(p, quoted, allow_split) ++ char *p; ++ int quoted; ++ int allow_split; ++{ ++ char const *syntax; ++ ++ if (allow_split) { ++ syntax = quoted ? DQSYNTAX : BASESYNTAX; ++ while (*p) { ++ if (syntax[(int) *p] == CCTL) ++ STPUTC(CTLESC, expdest); ++ STPUTC(*p++, expdest); ++ } ++ } else ++ while (*p) ++ STPUTC(*p++, expdest); ++ ++ return p; ++} ++ ++ ++ ++/* + * Add the value of a specialized variable to the stack string. + */ + +@@ -834,22 +879,6 @@ + extern int oexitstatus; + char sep; + char **ap; +- char const *syntax; +- +-#define STRTODEST(p) \ +- do {\ +- if (allow_split) { \ +- syntax = quoted? DQSYNTAX : BASESYNTAX; \ +- while (*p) { \ +- if (syntax[(int)*p] == CCTL) \ +- STPUTC(CTLESC, expdest); \ +- STPUTC(*p++, expdest); \ +- } \ +- } else \ +- while (*p) \ +- STPUTC(*p++, expdest); \ +- } while (0) +- + + switch (*name) { + case '$': +@@ -875,7 +904,7 @@ + case '@': + if (allow_split && quoted) { + for (ap = shellparam.p ; (p = *ap++) != NULL ; ) { +- STRTODEST(p); ++ p = strtodest(p, quoted, allow_split); + if (*ap) + STPUTC('\0', expdest); + } +@@ -888,21 +917,20 @@ + else + sep = ' '; + for (ap = shellparam.p ; (p = *ap++) != NULL ; ) { +- STRTODEST(p); ++ p = strtodest(p, quoted, allow_split); + if (*ap && sep) + STPUTC(sep, expdest); + } + break; + case '0': +- p = arg0; +- STRTODEST(p); ++ p = strtodest(arg0, quoted, allow_split); + break; + default: + if (is_digit(*name)) { + num = atoi(name); + if (num > 0 && num <= shellparam.nparam) { +- p = shellparam.p[num - 1]; +- STRTODEST(p); ++ p = strtodest(shellparam.p[num - 1], quoted, ++ allow_split); + } + } + break; +@@ -1054,6 +1082,98 @@ + * should be escapes. The results are stored in the list exparg. + */ + ++#if defined(__GLIBC__) && !defined(GLOB_BROKEN) ++STATIC void ++expandmeta(str, flag) ++ struct strlist *str; ++ int flag; ++{ ++ const char *p; ++ glob_t pglob; ++ /* TODO - EXP_REDIR */ ++ ++ while (str) { ++ if (fflag) ++ goto nometa; ++ p = preglob(str->text); ++ INTOFF; ++ switch (glob(p, GLOB_NOMAGIC, 0, &pglob)) { ++ case 0: ++ if (!(pglob.gl_flags & GLOB_MAGCHAR)) ++ goto nometa2; ++ addglob(&pglob); ++ globfree(&pglob); ++ INTON; ++ break; ++ case GLOB_NOMATCH: ++nometa2: ++ globfree(&pglob); ++ INTON; ++nometa: ++ *exparg.lastp = str; ++ rmescapes(str->text); ++ exparg.lastp = &str->next; ++ break; ++ default: /* GLOB_NOSPACE */ ++ error("Out of space"); ++ } ++ str = str->next; ++ } ++} ++ ++ ++/* ++ * Prepare the string for glob(3). ++ */ ++ ++STATIC const char * ++preglob(str) ++ const char *str; ++{ ++ const char *p; ++ char *q, *r; ++ size_t len; ++ ++ p = str; ++ while (*p != CTLQUOTEMARK && *p != CTLESC) { ++ if (*p++ == '\0') ++ return str; ++ } ++ len = p - str; ++ q = r = stalloc(strlen(str) + 1); ++ if (len > 0) { ++ memcpy(q, str, len); ++ q += len; ++ } ++ do { ++ if (*p == CTLQUOTEMARK) ++ continue; ++ if (*p == CTLESC) { ++ if (*++p != '/') ++ *q++ = '\\'; ++ } ++ *q++ = *p; ++ } while (*++p); ++ *q = '\0'; ++ return r; ++} ++ ++ ++/* ++ * Add the result of glob(3) to the list. ++ */ ++ ++STATIC void ++addglob(pglob) ++ const glob_t *pglob; ++{ ++ char **p = pglob->gl_pathv; ++ ++ do { ++ addfname(*p); ++ } while (*++p); ++} ++#else + char *expdir; + + +@@ -1238,6 +1358,7 @@ + if (! atend) + endname[-1] = '/'; + } ++#endif + + + /* +@@ -1260,6 +1381,7 @@ + } + + ++#if !(defined(__GLIBC__) && !defined(GLOB_BROKEN)) + /* + * Sort the results of file name expansion. It calculates the number of + * strings to sort and then calls msort (short for merge sort) to do the +@@ -1321,6 +1443,7 @@ + } + return list; + } ++#endif + + + +@@ -1328,6 +1451,39 @@ + * Returns true if the pattern matches the string. + */ + ++#if defined(__GLIBC__) && !defined(GLOB_BROKEN) ++STATIC int ++patmatch(pattern, string, squoted) ++ char *pattern; ++ char *string; ++ int squoted; /* string might have quote chars */ ++ { ++ const char *p; ++ char *q; ++ ++ p = preglob(pattern); ++ q = squoted ? _rmescapes(string, 1) : string; ++ ++ return !fnmatch(p, q, 0); ++} ++ ++ ++STATIC int ++patmatch2(pattern, string, squoted) ++ char *pattern; ++ char *string; ++ int squoted; /* string might have quote chars */ ++ { ++ char *p; ++ int res; ++ ++ sstrnleft--; ++ p = grabstackstr(expdest); ++ res = patmatch(pattern, string, squoted); ++ ungrabstackstr(p, expdest); ++ return res; ++} ++#else + int + patmatch(pattern, string, squoted) + char *pattern; +@@ -1462,6 +1618,7 @@ + return 0; + return 1; + } ++#endif + + + +@@ -1469,6 +1626,50 @@ + * Remove any CTLESC characters from a string. + */ + ++#if defined(__GLIBC__) && !defined(GLOB_BROKEN) ++void ++rmescapes(str) ++ char *str; ++{ ++ _rmescapes(str, 0); ++} ++ ++ ++STATIC char * ++_rmescapes(str, flag) ++ char *str; ++ int flag; ++{ ++ char *p, *q, *r; ++ ++ p = str; ++ while (*p != CTLESC && *p != CTLQUOTEMARK) { ++ if (*p++ == '\0') ++ return str; ++ } ++ q = p; ++ r = str; ++ if (flag) { ++ size_t len = p - str; ++ q = r = stalloc(strlen(p) + len + 1); ++ if (len > 0) { ++ memcpy(q, str, len); ++ q += len; ++ } ++ } ++ while (*p) { ++ if (*p == CTLQUOTEMARK) { ++ p++; ++ continue; ++ } ++ if (*p == CTLESC) ++ p++; ++ *q++ = *p++; ++ } ++ *q = '\0'; ++ return r; ++} ++#else + void + rmescapes(str) + char *str; +@@ -1492,6 +1693,7 @@ + } + *q = '\0'; + } ++#endif + + + + +diff -urN netbsd-sh/expand.h ash-0.3.7.orig/expand.h +--- netbsd-sh/expand.h Fri Jul 9 13:02:06 1999 ++++ ash-0.3.7.orig/expand.h Mon Apr 23 22:16:46 2001 +@@ -64,7 +64,9 @@ + void expandhere __P((union node *, int)); + void expandarg __P((union node *, struct arglist *, int)); + void expari __P((int)); ++#if !(defined(__GLIBC__) && !defined(GLOB_BROKEN)) + int patmatch __P((char *, char *, int)); ++#endif + void rmescapes __P((char *)); + int casematch __P((union node *, char *)); + diff --git a/source/ap/ash/patches/ash-hetio.patch b/source/ap/ash/patches/ash-hetio.patch new file mode 100644 index 000000000..c416cde53 --- /dev/null +++ b/source/ap/ash/patches/ash-hetio.patch @@ -0,0 +1,559 @@ +diff -urN ash-0.4.0/Makefile ash-0.4.0-/Makefile +--- ash-0.4.0/Makefile Tue Apr 24 00:57:33 2001 ++++ ash-0.4.0-/Makefile Tue Apr 24 00:59:53 2001 +@@ -7,7 +7,7 @@ + SHSRCS= alias.c cd.c echo.c error.c eval.c exec.c expand.c \ + histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \ + mystring.c options.c parser.c redir.c show.c trap.c output.c var.c \ +- test.c setmode.c test.c ++ test.c setmode.c test.c hetio.c + GENSRCS=builtins.c builtins.h init.c nodes.c arith.c arith.h lex.yy.c \ + nodes.h syntax.c syntax.h token.h signames.c + SRCS= ${SHSRCS} ${GENSRCS} +@@ -17,12 +17,13 @@ + mystring.o options.o output.o parser.o redir.o show.o \ + trap.o var.o bltin/test.o signames.o \ + builtins.o init.o nodes.o syntax.o arith.o lex.yy.o \ +- setmode.o bltin/times.o ++ setmode.o bltin/times.o hetio.o + + OPT_FLAGS=-O2 -g + LDFLAGS=-g + CFLAGS=$(OPT_FLAGS) -DSHELL -I. -DNO_HISTORY -DBSD=1 -DSMALL -D_GNU_SOURCE \ +- -DGLOB_BROKEN -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -D_DIAGASSERT\(x\)= ++ -DGLOB_BROKEN -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -D_DIAGASSERT\(x\)= \ ++ -DHETIO + + all: $(PROG) + +diff -urN ash-0.4.0/hetio.c ash-0.4.0-/hetio.c +--- ash-0.4.0/hetio.c Thu Jan 1 01:00:00 1970 ++++ ash-0.4.0-/hetio.c Tue Apr 24 01:06:59 2001 +@@ -0,0 +1,377 @@ ++/* ++ * Termios command line History and Editting for NetBSD sh (ash) ++ * Copyright (c) 1999 ++ * Main code: Adam Rogoyski <rogoyski@cs.utexas.edu> ++ * Etc: Dave Cinege <dcinege@psychosis.com> ++ * ++ * You may use this code as you wish, so long as the original author(s) ++ * are attributed in any redistributions of the source code. ++ * This code is 'as is' with no warranty. ++ * This code may safely be consumed by a BSD or GPL license. ++ * ++ * v 0.5 19990328 Initial release ++ * ++ * Future plans: Simple file and path name completion. (like BASH) ++ * ++ */ ++ ++/* ++Usage and Known bugs: ++ Terminal key codes are not extensive, and more will probably ++ need to be added. This version was created on Debian GNU/Linux 2.x. ++ Delete, Backspace, Home, End, and the arrow keys were tested ++ to work in an Xterm and console. Ctrl-A also works as Home. ++ Ctrl-E also works as End. The binary size increase is <3K. ++ ++ Editting will not display correctly for lines greater then the ++ terminal width. (more then one line.) However, history will. ++*/ ++ ++#include <stdio.h> ++#include <unistd.h> ++#include <stdlib.h> ++#include <string.h> ++#include <termios.h> ++#include <ctype.h> ++#include <sys/ioctl.h> ++ ++#include "input.h" ++#include "output.h" ++ ++#ifdef HETIO ++ ++#include "hetio.h" ++ ++ ++#define MAX_HISTORY 15 /* Maximum length of the linked list for the command line history */ ++ ++#define ESC 27 ++#define DEL 127 ++ ++static struct history *his_front = NULL; /* First element in command line list */ ++static struct history *his_end = NULL; /* Last element in command line list */ ++static struct termios old_term, new_term; /* Current termio and the previous termio before starting ash */ ++ ++static int history_counter = 0; /* Number of commands in history list */ ++static int reset_term = 0; /* Set to true if the terminal needs to be reset upon exit */ ++static int hetio_inter = 0; ++ ++struct history ++{ ++ char *s; ++ struct history *p; ++ struct history *n; ++}; ++ ++ ++void input_delete (int); ++void input_home (int *); ++void input_end (int *, int); ++void input_backspace (int *, int *); ++ ++ ++ ++void hetio_init(void) ++{ ++ hetio_inter = 1; ++} ++ ++ ++void hetio_reset_term(void) ++{ ++ if (reset_term) ++ tcsetattr(1, TCSANOW, &old_term); ++} ++ ++ ++void setIO(struct termios *new, struct termios *old) /* Set terminal IO to canonical mode, and save old term settings. */ ++{ ++ tcgetattr(0, old); ++ memcpy(new, old, sizeof(*new)); ++ new->c_cc[VMIN] = 1; ++ new->c_cc[VTIME] = 0; ++ new->c_lflag &= ~ICANON; /* unbuffered input */ ++ new->c_lflag &= ~ECHO; ++ tcsetattr(0, TCSANOW, new); ++} ++ ++void input_home(int *cursor) /* Command line input routines */ ++{ ++ while (*cursor > 0) { ++ out1c('\b'); ++ --*cursor; ++ } ++ flushout(&output); ++} ++ ++ ++void input_delete(int cursor) ++{ ++ int j = 0; ++ ++ memmove(parsenextc + cursor, parsenextc + cursor + 1, ++ BUFSIZ - cursor - 1); ++ for (j = cursor; j < (BUFSIZ - 1); j++) { ++ if (!*(parsenextc + j)) ++ break; ++ else ++ out1c(*(parsenextc + j)); ++ } ++ ++ out1str(" \b"); ++ ++ while (j-- > cursor) ++ out1c('\b'); ++ flushout(&output); ++} ++ ++ ++void input_end(int *cursor, int len) ++{ ++ while (*cursor < len) { ++ out1str("\033[C"); ++ ++*cursor; ++ } ++ flushout(&output); ++} ++ ++ ++void ++input_backspace(int *cursor, int *len) ++{ ++ int j = 0; ++ ++ if (*cursor > 0) { ++ out1str("\b \b"); ++ --*cursor; ++ memmove(parsenextc + *cursor, parsenextc + *cursor + 1, ++ BUFSIZ - *cursor + 1); ++ ++ for (j = *cursor; j < (BUFSIZ - 1); j++) { ++ if (!*(parsenextc + j)) ++ break; ++ else ++ out1c(*(parsenextc + j)); ++ } ++ ++ out1str(" \b"); ++ ++ while (j-- > *cursor) ++ out1c('\b'); ++ ++ --*len; ++ flushout(&output); ++ } ++} ++ ++int hetio_read_input(int fd) ++{ ++ int nr = 0; ++ ++ if (!hetio_inter) { /* Are we an interactive shell? */ ++ return -255; ++ } else { ++ int len = 0; ++ int j = 0; ++ int cursor = 0; ++ int break_out = 0; ++ int ret = 0; ++ char c = 0; ++ struct history *hp = his_end; ++ ++ if (!reset_term) { ++ setIO(&new_term, &old_term); ++ reset_term = 1; ++ } else { ++ tcsetattr(0, TCSANOW, &new_term); ++ } ++ ++ memset(parsenextc, 0, BUFSIZ); ++ ++ while (1) { ++ if ((ret = read(fd, &c, 1)) < 1) ++ return ret; ++ ++ switch (c) { ++ case 1: /* Control-A Beginning of line */ ++ input_home(&cursor); ++ break; ++ case 5: /* Control-E EOL */ ++ input_end(&cursor, len); ++ break; ++ case 4: /* Control-D */ ++#ifndef CTRL_D_DELETE ++ return 0; ++#else ++ if (cursor != len) { ++ input_delete(cursor); ++ len--; ++ } ++ break; ++#endif ++ case '\b': /* Backspace */ ++ case DEL: ++ input_backspace(&cursor, &len); ++ break; ++ case '\n': /* Enter */ ++ *(parsenextc + len++ + 1) = c; ++ out1c(c); ++ flushout(&output); ++ break_out = 1; ++ break; ++ case ESC: /* escape sequence follows */ ++ if ((ret = read(fd, &c, 1)) < 1) ++ return ret; ++ ++ if (c == '[' || c == 'O' ) { /* 91 */ ++ if ((ret = read(fd, &c, 1)) < 1) ++ return ret; ++ ++ switch (c) { ++ case 'A': ++ if (hp && hp->p) { /* Up */ ++ hp = hp->p; ++ goto hop; ++ } ++ break; ++ case 'B': ++ if (hp && hp->n && hp->n->s) { /* Down */ ++ hp = hp->n; ++ goto hop; ++ } ++ break; ++ ++hop: /* hop */ ++ len = strlen(parsenextc); ++ ++ for (; cursor > 0; cursor--) /* return to begining of line */ ++ out1c('\b'); ++ ++ for (j = 0; j < len; j++) /* erase old command */ ++ out1c(' '); ++ ++ for (j = len; j > 0; j--) /* return to begining of line */ ++ out1c('\b'); ++ ++ strcpy (parsenextc, hp->s); /* write new command */ ++ len = strlen (hp->s); ++ out1str(parsenextc); ++ flushout(&output); ++ cursor = len; ++ break; ++ case 'C': /* Right */ ++ if (cursor < len) { ++ out1str("\033[C"); ++ cursor++; ++ flushout(&output); ++ } ++ break; ++ case 'D': /* Left */ ++ if (cursor > 0) { ++ out1str("\033[D"); ++ cursor--; ++ flushout(&output); ++ } ++ break; ++ case '3': /* Delete */ ++ if (cursor != len) { ++ input_delete(cursor); ++ len--; ++ } ++ break; ++ case 'H': /* Home (xterm) */ ++ case '1': /* Home (Ctrl-A) */ ++ input_home(&cursor); ++ break; ++ case 'F': /* End (xterm_ */ ++ case '4': /* End (Ctrl-E) */ ++ input_end(&cursor, len); ++ break; ++ } ++ if (c == '1' || c == '3' || c == '4') ++ if ((ret = read(fd, &c, 1)) < 1) ++ return ret; /* read 126 (~) */ ++ } ++ ++ c = 0; ++ break; ++ ++ default: /* If it's regular input, do the normal thing */ ++ ++ if (!isprint(c)) /* Skip non-printable characters */ ++ break; ++ ++ if (len >= (BUFSIZ - 2)) /* Need to leave space for enter */ ++ break; ++ ++ len++; ++ ++ if (cursor == (len - 1)) { /* Append if at the end of the line */ ++ *(parsenextc + cursor) = c; ++ } else { /* Insert otherwise */ ++ memmove(parsenextc + cursor + 1, parsenextc + cursor, ++ len - cursor - 1); ++ ++ *(parsenextc + cursor) = c; ++ ++ for (j = cursor; j < len; j++) ++ out1c(*(parsenextc + j)); ++ for (; j > cursor; j--) ++ out1str("\033[D"); ++ } ++ ++ cursor++; ++ out1c(c); ++ flushout(&output); ++ break; ++ } ++ ++ if (break_out) /* Enter is the command terminator, no more input. */ ++ break; ++ } ++ ++ nr = len + 1; ++ tcsetattr(0, TCSANOW, &old_term); ++ ++ ++ if (*(parsenextc)) { /* Handle command history log */ ++ struct history *h = his_end; ++ ++ if (!h) { /* No previous history */ ++ h = his_front = malloc(sizeof (struct history)); ++ h->n = malloc(sizeof (struct history)); ++ h->p = NULL; ++ h->s = strdup(parsenextc); ++ ++ h->n->p = h; ++ h->n->n = NULL; ++ h->n->s = NULL; ++ his_end = h->n; ++ history_counter++; ++ } else { /* Add a new history command */ ++ ++ h->n = malloc(sizeof (struct history)); ++ ++ h->n->p = h; ++ h->n->n = NULL; ++ h->n->s = NULL; ++ h->s = strdup(parsenextc); ++ his_end = h->n; ++ ++ if (history_counter >= MAX_HISTORY) { /* After max history, remove the last known command */ ++ struct history *p = his_front->n; ++ ++ p->p = NULL; ++ free(his_front->s); ++ free(his_front); ++ his_front = p; ++ } else { ++ history_counter++; ++ } ++ } ++ } ++ } ++ ++ return nr; ++} ++#endif +diff -urN ash-0.4.0/hetio.h ash-0.4.0-/hetio.h +--- ash-0.4.0/hetio.h Thu Jan 1 01:00:00 1970 ++++ ash-0.4.0-/hetio.h Tue Apr 24 00:13:57 2001 +@@ -0,0 +1,22 @@ ++/* ++ * Termios command line History and Editting for NetBSD sh (ash) ++ * Copyright (c) 1999 ++ * Main code: Adam Rogoyski <rogoyski@cs.utexas.edu> ++ * Etc: Dave Cinege <dcinege@psychosis.com> ++ * ++ * You may use this code as you wish, so long as the original author(s) ++ * are attributed in any redistributions of the source code. ++ * This code is 'as is' with no warranty. ++ * This code may safely be consumed by a BSD or GPL license. ++ * ++ * v 0.5 19990328 Initial release ++ * ++ * Future plans: Simple file and path name completion. (like BASH) ++ * ++ */ ++ ++void hetio_init(void); ++int hetio_read_input(int fd); ++void hetio_reset_term(void); ++ ++extern int hetio_inter; +diff -urN ash-0.4.0/histedit.c ash-0.4.0-/histedit.c +--- ash-0.4.0/histedit.c Fri Jan 12 17:50:35 2001 ++++ ash-0.4.0-/histedit.c Tue Apr 24 00:13:57 2001 +@@ -60,9 +60,9 @@ + #include "main.h" + #include "output.h" + #include "mystring.h" +-#include "myhistedit.h" + #include "error.h" + #ifndef SMALL ++#include "myhistedit.h" + #include "eval.h" + #include "memalloc.h" + +@@ -219,7 +219,11 @@ + if (argc == 1) + error("missing history argument"); + ++#ifdef __GLIBC__ ++ optind = 1; ++#else + optreset = 1; optind = 1; /* initialize getopt */ ++#endif + while (not_fcnumber(argv[optind]) && + (ch = getopt(argc, argv, ":e:lnrs")) != -1) + switch ((char)ch) { +diff -urN ash-0.4.0/input.c ash-0.4.0-/input.c +--- ash-0.4.0/input.c Tue May 23 12:03:19 2000 ++++ ash-0.4.0-/input.c Tue Apr 24 00:13:57 2001 +@@ -66,7 +66,13 @@ + #include "error.h" + #include "alias.h" + #include "parser.h" ++#ifndef SMALL + #include "myhistedit.h" ++#endif ++ ++#ifdef HETIO ++#include "hetio.h" ++#endif + + #define EOF_NLEFT -99 /* value of parsenleft when EOF pushed back */ + +@@ -108,7 +114,9 @@ + int init_editline = 0; /* editline library initialized? */ + int whichprompt; /* 1 == PS1, 2 == PS2 */ + ++#ifndef SMALL + EditLine *el; /* cookie for editline package */ ++#endif + + STATIC void pushfile __P((void)); + static int preadfd __P((void)); +@@ -197,6 +205,11 @@ + (void) strcpy(buf, rl_cp); + } + } else ++#endif ++ ++#ifdef HETIO ++ nr = hetio_read_input(parsefile->fd); ++ if (nr == -255) + #endif + nr = read(parsefile->fd, buf, BUFSIZ - 1); + +diff -urN ash-0.4.0/main.c ash-0.4.0-/main.c +--- ash-0.4.0/main.c Tue Apr 24 00:57:33 2001 ++++ ash-0.4.0-/main.c Tue Apr 24 00:13:57 2001 +@@ -79,6 +79,10 @@ + #include "exec.h" + #include "cd.h" + ++#ifdef HETIO ++#include "hetio.h" ++#endif ++ + #define PROFILE 0 + + int rootpid; +@@ -242,6 +246,10 @@ + + TRACE(("cmdloop(%d) called\n", top)); + setstackmark(&smark); ++#ifdef HETIO ++ if(iflag && top) ++ hetio_init(); ++#endif + for (;;) { + if (pendingsigs) + dotrap(); +Binary files ash-0.4.0/mksignames and ash-0.4.0-/mksignames differ +diff -urN ash-0.4.0/trap.c ash-0.4.0-/trap.c +--- ash-0.4.0/trap.c Tue Apr 24 00:57:33 2001 ++++ ash-0.4.0-/trap.c Tue Apr 24 00:13:57 2001 +@@ -62,7 +62,11 @@ + #include "error.h" + #include "trap.h" + #include "mystring.h" ++#include "mail.h" + ++#ifdef HETIO ++#include "hetio.h" ++#endif + + /* + * Sigmode records the current value of the signal handlers for the various +@@ -341,6 +345,7 @@ + setsignal(SIGINT); + setsignal(SIGQUIT); + setsignal(SIGTERM); ++ chkmail(1); + is_interactive = on; + } + +@@ -358,6 +363,9 @@ + char *p; + + TRACE(("exitshell(%d) pid=%d\n", status, getpid())); ++#ifdef HETIO ++ hetio_reset_term(); ++#endif + if (setjmp(loc1.loc)) { + goto l1; + } diff --git a/source/ap/ash/patches/ash-jobs.patch b/source/ap/ash/patches/ash-jobs.patch new file mode 100644 index 000000000..9e89118f5 --- /dev/null +++ b/source/ap/ash/patches/ash-jobs.patch @@ -0,0 +1,108 @@ +diff -ur netbsd-sh/jobs.c netbsd-sh-/jobs.c +--- netbsd-sh/jobs.c Tue May 23 12:03:19 2000 ++++ netbsd-sh-/jobs.c Mon Apr 23 23:31:47 2001 +@@ -92,6 +92,7 @@ + int initialpgrp; /* pgrp of shell on invocation */ + short curjob; /* current job */ + #endif ++STATIC int intreceived; + + STATIC void restartjob __P((struct job *)); + STATIC void freejob __P((struct job *)); +@@ -101,8 +102,10 @@ + STATIC int waitproc __P((int, int *)); + STATIC void cmdtxt __P((union node *)); + STATIC void cmdputs __P((const char *)); ++STATIC void waitonint(int); + + ++#if JOBS + /* + * Turn job control on and off. + * +@@ -171,6 +174,7 @@ + } + jobctl = on; + } ++#endif + + + #ifdef mkinit +@@ -594,9 +598,6 @@ + TRACE(("Child shell %d\n", getpid())); + wasroot = rootshell; + rootshell = 0; +- for (i = njobs, p = jobtab ; --i >= 0 ; p++) +- if (p->used) +- freejob(p); + closescript(); + INTON; + clear_traps(); +@@ -642,6 +643,9 @@ + } + } + #endif ++ for (i = njobs, p = jobtab ; --i >= 0 ; p++) ++ if (p->used) ++ freejob(p); + if (wasroot && iflag) { + setsignal(SIGINT); + setsignal(SIGQUIT); +@@ -701,13 +705,33 @@ + #endif + int status; + int st; ++ struct sigaction act, oact; + + INTOFF; ++ intreceived = 0; ++#if JOBS ++ if (!jobctl) { ++#else ++ if (!iflag) { ++#endif ++ sigaction(SIGINT, 0, &act); ++ act.sa_handler = waitonint; ++ sigaction(SIGINT, &act, &oact); ++ } + TRACE(("waitforjob(%%%d) called\n", jp - jobtab + 1)); + while (jp->state == 0) { + dowait(1, jp); + } + #if JOBS ++ if (!jobctl) { ++#else ++ if (!iflag) { ++#endif ++ extern char *trap[]; ++ sigaction(SIGINT, &oact, 0); ++ if (intreceived && trap[SIGINT]) kill(getpid(), SIGINT); ++ } ++#if JOBS + if (jp->jobctl) { + #ifdef OLD_TTY_DRIVER + if (ioctl(2, TIOCSPGRP, (char *)&mypgrp) < 0) +@@ -896,10 +920,10 @@ + #ifdef BSD + int flags; + +-#if JOBS +- flags = WUNTRACED; +-#else + flags = 0; ++#if JOBS ++ if (jobctl) ++ flags |= WUNTRACED; + #endif + if (block == 0) + flags |= WNOHANG; +@@ -1139,4 +1163,9 @@ + } + } + cmdnextc = q; ++} ++ ++STATIC void waitonint(int sig) { ++ intreceived = 1; ++ return; + } diff --git a/source/ap/ash/patches/ash-kill.patch b/source/ap/ash/patches/ash-kill.patch new file mode 100644 index 000000000..f2972d94c --- /dev/null +++ b/source/ap/ash/patches/ash-kill.patch @@ -0,0 +1,675 @@ +diff -urN netbsd-sh/jobs.c ash-0.3.7.orig/jobs.c +--- netbsd-sh/jobs.c Tue May 23 12:03:19 2000 ++++ ash-0.3.7.orig/jobs.c Mon Apr 23 22:16:46 2001 +@@ -189,6 +193,94 @@ + + #if JOBS + int ++killcmd(argc, argv) ++ int argc; ++ char **argv; ++{ ++ extern char *signal_names[]; ++ int signo = -1; ++ int list = 0; ++ int i; ++ pid_t pid; ++ struct job *jp; ++ ++ if (argc <= 1) { ++ error( ++"Usage: kill [-s sigspec | -signum | -sigspec] [pid | job]... or\n" ++"kill -l [exitstatus]" ++ ); ++ } ++ ++ if (*argv[1] == '-') { ++ signo = decode_signal(argv[1]+1); ++ if (signo < 0) { ++ int c; ++ ++ while ((c = nextopt("ls:")) != '\0') ++ switch (c) { ++ case 'l': ++ list = 1; ++ break; ++ case 's': ++ signo = decode_signal(optarg); ++ break; ++ default: ++ error( ++ "nextopt returned character code 0%o", c); ++ } ++ } else ++ argptr++; ++ } ++ ++ if (!list && signo < 0) ++ signo = SIGTERM; ++ ++ if ((signo < 0 || !*argptr) ^ list) { ++ error( ++"Usage: kill [-s sigspec | -signum | -sigspec] [pid | job]... or\n" ++"kill -l [exitstatus]" ++ ); ++ } ++ ++ if (list) { ++ if (!*argptr) { ++ out1fmt("0\n"); ++ for (i = 1; i < NSIG; i++) { ++ if (strncmp(signal_names[i], "SIGJUNK(", 8) ++ == 0) ++ continue; ++ out1fmt("%s\n", signal_names[i] + 3); ++ } ++ return 0; ++ } ++ signo = atoi(*argptr); ++ if (signo > 128) ++ signo -= 128; ++ if (0 < signo && signo < NSIG) ++ out1fmt("%s\n", signal_names[signo] + 3); ++ else ++ error("invalid signal number or exit status: %s", ++ *argptr); ++ return 0; ++ } ++ ++ do { ++ if (**argptr == '%') { ++ jp = getjob(*argptr); ++ if (jp->jobctl == 0) ++ error("job %s not created under job control", ++ *argptr); ++ pid = -jp->ps[0].pid; ++ } else ++ pid = atoi(*argptr); ++ if (kill(pid, signo) != 0) ++ error("%s: %s", *argptr, strerror(errno)); ++ } while (*++argptr); ++ ++ return 0; ++} ++ ++int + fgcmd(argc, argv) + int argc; + char **argv; + +diff -urN netbsd-sh/jobs.h ash-0.3.7.orig/jobs.h +--- netbsd-sh/jobs.h Tue May 23 12:03:19 2000 ++++ ash-0.3.7.orig/jobs.h Mon Apr 23 22:16:46 2001 +@@ -80,6 +80,7 @@ + extern int job_warning; /* user was warned about stopped jobs */ + + void setjobctl __P((int)); ++int killcmd __P((int, char **)); + int fgcmd __P((int, char **)); + int bgcmd __P((int, char **)); + int jobscmd __P((int, char **)); +diff -urN netbsd-sh/builtins.def ash-0.3.7.orig/builtins.def +--- netbsd-sh/builtins.def Mon Apr 10 13:02:58 2000 ++++ ash-0.3.7.orig/builtins.def Mon Apr 23 22:16:46 2001 +@@ -70,6 +71,7 @@ + hashcmd hash + jobidcmd jobid + jobscmd jobs ++killcmd -j kill + #linecmd line + localcmd local + #nlechocmd nlecho +diff -urN netbsd-sh/mksignames.c ash-0.3.7.orig/mksignames.c +--- netbsd-sh/mksignames.c Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/mksignames.c Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,400 @@ ++/* signames.c -- Create and write `signames.c', which contains an array of ++ signal names. */ ++ ++/* Copyright (C) 1992 Free Software Foundation, Inc. ++ ++ This file is part of GNU Bash, the Bourne Again SHell. ++ ++ Bash is free software; you can redistribute it and/or modify it under ++ the terms of the GNU General Public License as published by the Free ++ Software Foundation; either version 2, or (at your option) any later ++ version. ++ ++ Bash is distributed in the hope that it will be useful, but WITHOUT ANY ++ WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ for more details. ++ ++ You should have received a copy of the GNU General Public License along ++ with Bash; see the file COPYING. If not, write to the Free Software ++ Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ ++ ++#include <stdio.h> ++#include <sys/types.h> ++#include <signal.h> ++#include <stdlib.h> ++ ++#if !defined (NSIG) ++# define NSIG 64 ++#endif ++ ++char *signal_names[2 * NSIG]; ++ ++char *progname; ++ ++#if defined (SIGRTMAX) || defined (SIGRTMIN) ++# define RTLEN 14 ++# define RTLIM 256 ++#endif ++ ++void ++initialize_signames () ++{ ++ register int i; ++#if defined (SIGRTMAX) || defined (SIGRTMIN) ++ int rtmin, rtmax, rtcnt; ++#endif ++ ++ for (i = 1; i < sizeof(signal_names)/sizeof(signal_names[0]); i++) ++ signal_names[i] = (char *)NULL; ++ ++ /* `signal' 0 is what we do on exit. */ ++ signal_names[0] = "EXIT"; ++ ++ /* Place signal names which can be aliases for more common signal ++ names first. This allows (for example) SIGABRT to overwrite SIGLOST. */ ++ ++ /* POSIX 1003.1b-1993 real time signals, but take care of incomplete ++ implementations. Acoording to the standard, both, SIGRTMIN and ++ SIGRTMAX must be defined, SIGRTMIN must be stricly less than ++ SIGRTMAX, and the difference must be at least 7, that is, there ++ must be at least eight distinct real time signals. */ ++ ++ /* The generated signal names are SIGRTMIN, SIGRTMIN+1, ..., ++ SIGRTMIN+x, SIGRTMAX-x, ..., SIGRTMAX-1, SIGRTMAX. If the number ++ of RT signals is odd, there is an extra SIGRTMIN+(x+1). ++ These names are the ones used by ksh and /usr/xpg4/bin/sh on SunOS5. */ ++ ++#if defined (SIGRTMIN) ++ rtmin = SIGRTMIN; ++ signal_names[rtmin] = "SIGRTMIN"; ++#endif ++ ++#if defined (SIGRTMAX) ++ rtmax = SIGRTMAX; ++ signal_names[rtmax] = "SIGRTMAX"; ++#endif ++ ++#if defined (SIGRTMAX) && defined (SIGRTMIN) ++ if (rtmax > rtmin) ++ { ++ rtcnt = (rtmax - rtmin - 1) / 2; ++ /* croak if there are too many RT signals */ ++ if (rtcnt >= RTLIM/2) ++ { ++ rtcnt = RTLIM/2-1; ++ fprintf(stderr, "%s: error: more than %i real time signals, fix `%s'\n", ++ progname, RTLIM, progname); ++ } ++ ++ for (i = 1; i <= rtcnt; i++) ++ { ++ signal_names[rtmin+i] = (char *)malloc(RTLEN); ++ sprintf (signal_names[rtmin+i], "SIGRTMIN+%d", i); ++ signal_names[rtmax-i] = (char *)malloc(RTLEN); ++ sprintf (signal_names[rtmax-i], "SIGRTMAX-%d", i); ++ } ++ ++ if (rtcnt < RTLIM/2-1 && rtcnt != (rtmax-rtmin)/2) ++ { ++ /* Need an extra RTMIN signal */ ++ signal_names[rtmin+rtcnt+1] = (char *)malloc(RTLEN); ++ sprintf (signal_names[rtmin+rtcnt+1], "SIGRTMIN+%d", rtcnt+1); ++ } ++ } ++#endif /* SIGRTMIN && SIGRTMAX */ ++ ++/* AIX */ ++#if defined (SIGLOST) /* resource lost (eg, record-lock lost) */ ++ signal_names[SIGLOST] = "SIGLOST"; ++#endif ++ ++#if defined (SIGMSG) /* HFT input data pending */ ++ signal_names[SIGMSG] = "SIGMSG"; ++#endif ++ ++#if defined (SIGDANGER) /* system crash imminent */ ++ signal_names[SIGDANGER] = "SIGDANGER"; ++#endif ++ ++#if defined (SIGMIGRATE) /* migrate process to another CPU */ ++ signal_names[SIGMIGRATE] = "SIGMIGRATE"; ++#endif ++ ++#if defined (SIGPRE) /* programming error */ ++ signal_names[SIGPRE] = "SIGPRE"; ++#endif ++ ++#if defined (SIGVIRT) /* AIX virtual time alarm */ ++ signal_names[SIGVIRT] = "SIGVIRT"; ++#endif ++ ++#if defined (SIGALRM1) /* m:n condition variables */ ++ signal_names[SIGALRM1] = "SIGALRM1"; ++#endif ++ ++#if defined (SIGWAITING) /* m:n scheduling */ ++ signal_names[SIGWAITING] = "SIGWAITING"; ++#endif ++ ++#if defined (SIGGRANT) /* HFT monitor mode granted */ ++ signal_names[SIGGRANT] = "SIGGRANT"; ++#endif ++ ++#if defined (SIGKAP) /* keep alive poll from native keyboard */ ++ signal_names[SIGKAP] = "SIGKAP"; ++#endif ++ ++#if defined (SIGRETRACT) /* HFT monitor mode retracted */ ++ signal_names[SIGRETRACT] = "SIGRETRACT"; ++#endif ++ ++#if defined (SIGSOUND) /* HFT sound sequence has completed */ ++ signal_names[SIGSOUND] = "SIGSOUND"; ++#endif ++ ++#if defined (SIGSAK) /* Secure Attention Key */ ++ signal_names[SIGSAK] = "SIGSAK"; ++#endif ++ ++/* SunOS5 */ ++#if defined (SIGLWP) /* special signal used by thread library */ ++ signal_names[SIGLWP] = "SIGLWP"; ++#endif ++ ++#if defined (SIGFREEZE) /* special signal used by CPR */ ++ signal_names[SIGFREEZE] = "SIGFREEZE"; ++#endif ++ ++#if defined (SIGTHAW) /* special signal used by CPR */ ++ signal_names[SIGTHAW] = "SIGTHAW"; ++#endif ++ ++#if defined (SIGCANCEL) /* thread cancellation signal used by libthread */ ++ signal_names[SIGCANCEL] = "SIGCANCEL"; ++#endif ++ ++/* HP-UX */ ++#if defined (SIGDIL) /* DIL signal (?) */ ++ signal_names[SIGDIL] = "SIGDIL"; ++#endif ++ ++/* System V */ ++#if defined (SIGCLD) /* Like SIGCHLD. */ ++ signal_names[SIGCLD] = "SIGCLD"; ++#endif ++ ++#if defined (SIGPWR) /* power state indication */ ++ signal_names[SIGPWR] = "SIGPWR"; ++#endif ++ ++#if defined (SIGPOLL) /* Pollable event (for streams) */ ++ signal_names[SIGPOLL] = "SIGPOLL"; ++#endif ++ ++/* Unknown */ ++#if defined (SIGWINDOW) ++ signal_names[SIGWINDOW] = "SIGWINDOW"; ++#endif ++ ++/* Common */ ++#if defined (SIGHUP) /* hangup */ ++ signal_names[SIGHUP] = "SIGHUP"; ++#endif ++ ++#if defined (SIGINT) /* interrupt */ ++ signal_names[SIGINT] = "SIGINT"; ++#endif ++ ++#if defined (SIGQUIT) /* quit */ ++ signal_names[SIGQUIT] = "SIGQUIT"; ++#endif ++ ++#if defined (SIGILL) /* illegal instruction (not reset when caught) */ ++ signal_names[SIGILL] = "SIGILL"; ++#endif ++ ++#if defined (SIGTRAP) /* trace trap (not reset when caught) */ ++ signal_names[SIGTRAP] = "SIGTRAP"; ++#endif ++ ++#if defined (SIGIOT) /* IOT instruction */ ++ signal_names[SIGIOT] = "SIGIOT"; ++#endif ++ ++#if defined (SIGABRT) /* Cause current process to dump core. */ ++ signal_names[SIGABRT] = "SIGABRT"; ++#endif ++ ++#if defined (SIGEMT) /* EMT instruction */ ++ signal_names[SIGEMT] = "SIGEMT"; ++#endif ++ ++#if defined (SIGFPE) /* floating point exception */ ++ signal_names[SIGFPE] = "SIGFPE"; ++#endif ++ ++#if defined (SIGKILL) /* kill (cannot be caught or ignored) */ ++ signal_names[SIGKILL] = "SIGKILL"; ++#endif ++ ++#if defined (SIGBUS) /* bus error */ ++ signal_names[SIGBUS] = "SIGBUS"; ++#endif ++ ++#if defined (SIGSEGV) /* segmentation violation */ ++ signal_names[SIGSEGV] = "SIGSEGV"; ++#endif ++ ++#if defined (SIGSYS) /* bad argument to system call */ ++ signal_names[SIGSYS] = "SIGSYS"; ++#endif ++ ++#if defined (SIGPIPE) /* write on a pipe with no one to read it */ ++ signal_names[SIGPIPE] = "SIGPIPE"; ++#endif ++ ++#if defined (SIGALRM) /* alarm clock */ ++ signal_names[SIGALRM] = "SIGALRM"; ++#endif ++ ++#if defined (SIGTERM) /* software termination signal from kill */ ++ signal_names[SIGTERM] = "SIGTERM"; ++#endif ++ ++#if defined (SIGURG) /* urgent condition on IO channel */ ++ signal_names[SIGURG] = "SIGURG"; ++#endif ++ ++#if defined (SIGSTOP) /* sendable stop signal not from tty */ ++ signal_names[SIGSTOP] = "SIGSTOP"; ++#endif ++ ++#if defined (SIGTSTP) /* stop signal from tty */ ++ signal_names[SIGTSTP] = "SIGTSTP"; ++#endif ++ ++#if defined (SIGCONT) /* continue a stopped process */ ++ signal_names[SIGCONT] = "SIGCONT"; ++#endif ++ ++#if defined (SIGCHLD) /* to parent on child stop or exit */ ++ signal_names[SIGCHLD] = "SIGCHLD"; ++#endif ++ ++#if defined (SIGTTIN) /* to readers pgrp upon background tty read */ ++ signal_names[SIGTTIN] = "SIGTTIN"; ++#endif ++ ++#if defined (SIGTTOU) /* like TTIN for output if (tp->t_local<OSTOP) */ ++ signal_names[SIGTTOU] = "SIGTTOU"; ++#endif ++ ++#if defined (SIGIO) /* input/output possible signal */ ++ signal_names[SIGIO] = "SIGIO"; ++#endif ++ ++#if defined (SIGXCPU) /* exceeded CPU time limit */ ++ signal_names[SIGXCPU] = "SIGXCPU"; ++#endif ++ ++#if defined (SIGXFSZ) /* exceeded file size limit */ ++ signal_names[SIGXFSZ] = "SIGXFSZ"; ++#endif ++ ++#if defined (SIGVTALRM) /* virtual time alarm */ ++ signal_names[SIGVTALRM] = "SIGVTALRM"; ++#endif ++ ++#if defined (SIGPROF) /* profiling time alarm */ ++ signal_names[SIGPROF] = "SIGPROF"; ++#endif ++ ++#if defined (SIGWINCH) /* window changed */ ++ signal_names[SIGWINCH] = "SIGWINCH"; ++#endif ++ ++/* 4.4 BSD */ ++#if defined (SIGINFO) && !defined (_SEQUENT_) /* information request */ ++ signal_names[SIGINFO] = "SIGINFO"; ++#endif ++ ++#if defined (SIGUSR1) /* user defined signal 1 */ ++ signal_names[SIGUSR1] = "SIGUSR1"; ++#endif ++ ++#if defined (SIGUSR2) /* user defined signal 2 */ ++ signal_names[SIGUSR2] = "SIGUSR2"; ++#endif ++ ++#if defined (SIGKILLTHR) /* BeOS: Kill Thread */ ++ signal_names[SIGKILLTHR] = "SIGKILLTHR"; ++#endif ++ ++ for (i = 0; i < NSIG; i++) ++ if (signal_names[i] == (char *)NULL) ++ { ++ signal_names[i] = (char *)malloc (18); ++ sprintf (signal_names[i], "SIGJUNK(%d)", i); ++ } ++ ++ signal_names[NSIG] = "DEBUG"; ++} ++ ++void ++write_signames (stream) ++ FILE *stream; ++{ ++ register int i; ++ ++ fprintf (stream, "/* This file was automatically created by %s.\n", ++ progname); ++ fprintf (stream, " Do not edit. Edit support/mksignames.c instead. */\n\n"); ++ fprintf (stream, "#include <signal.h>\n\n"); ++ fprintf (stream, ++ "/* A translation list so we can be polite to our users. */\n"); ++ fprintf (stream, "char *signal_names[NSIG + 2] = {\n"); ++ ++ for (i = 0; i <= NSIG; i++) ++ fprintf (stream, " \"%s\",\n", signal_names[i]); ++ ++ fprintf (stream, " (char *)0x0,\n"); ++ fprintf (stream, "};\n"); ++} ++ ++int ++main (argc, argv) ++ int argc; ++ char **argv; ++{ ++ char *stream_name; ++ FILE *stream; ++ ++ progname = argv[0]; ++ ++ if (argc == 1) ++ { ++ stream_name = "signames.c"; ++ } ++ else if (argc == 2) ++ { ++ stream_name = argv[1]; ++ } ++ else ++ { ++ fprintf (stderr, "Usage: %s [output-file]\n", progname); ++ exit (1); ++ } ++ ++ stream = fopen (stream_name, "w"); ++ if (!stream) ++ { ++ fprintf (stderr, "%s: %s: cannot open for writing\n", ++ progname, stream_name); ++ exit (2); ++ } ++ ++ initialize_signames (); ++ write_signames (stream); ++ exit (0); ++} +diff -urN netbsd-sh/trap.c ash-0.3.7.orig/trap.c +--- netbsd-sh/trap.c Tue May 23 12:03:19 2000 ++++ ash-0.3.7.orig/trap.c Mon Apr 23 22:16:46 2001 +@@ -84,7 +88,7 @@ + char gotsig[NSIG]; /* indicates specified signal received */ + int pendingsigs; /* indicates some signal received */ + +-static int getsigaction __P((int, sig_t *)); ++extern char *signal_names[]; + + /* + * The trap builtin. +@@ -107,16 +111,20 @@ + return 0; + } + ap = argv + 1; +- if (is_number(*ap)) ++ if (argc == 2) + action = NULL; + else + action = *ap++; + while (*ap) { +- if ((signo = number(*ap)) < 0 || signo > NSIG) ++ if ((signo = decode_signal(*ap)) < 0) + error("%s: bad trap", *ap); + INTOFF; +- if (action) +- action = savestr(action); ++ if (action) { ++ if (action[0] == '-' && action[1] == '\0') ++ action = NULL; ++ else ++ action = savestr(action); ++ } + if (trap[signo]) + ckfree(trap[signo]); + trap[signo] = action; +@@ -157,13 +165,13 @@ + * out what it should be set to. + */ + +-long ++void + setsignal(signo) + int signo; + { + int action; +- sig_t sigact = SIG_DFL; + char *t; ++ struct sigaction act; + + if ((t = trap[signo]) == NULL) + action = S_DFL; +@@ -206,15 +214,15 @@ + /* + * current setting unknown + */ +- if (!getsigaction(signo, &sigact)) { ++ if (sigaction(signo, 0, &act) == -1) { + /* + * Pretend it worked; maybe we should give a warning + * here, but other shells don't. We don't alter + * sigmode, so that we retry every time. + */ +- return 0; ++ return; + } +- if (sigact == SIG_IGN) { ++ if (act.sa_handler == SIG_IGN) { + if (mflag && (signo == SIGTSTP || + signo == SIGTTIN || signo == SIGTTOU)) { + *t = S_IGN; /* don't hard ignore these */ +@@ -225,31 +233,21 @@ + } + } + if (*t == S_HARD_IGN || *t == action) +- return 0; ++ return; + switch (action) { +- case S_DFL: sigact = SIG_DFL; break; +- case S_CATCH: sigact = onsig; break; +- case S_IGN: sigact = SIG_IGN; break; ++ case S_CATCH: ++ act.sa_handler = onsig; ++ break; ++ case S_IGN: ++ act.sa_handler = SIG_IGN; ++ break; ++ default: ++ act.sa_handler = SIG_DFL; + } + *t = action; +- siginterrupt(signo, 1); +- return (long)signal(signo, sigact); +-} +- +-/* +- * Return the current setting for sig w/o changing it. +- */ +-static int +-getsigaction(signo, sigact) +- int signo; +- sig_t *sigact; +-{ +- struct sigaction sa; +- +- if (sigaction(signo, (struct sigaction *)0, &sa) == -1) +- return 0; +- *sigact = (sig_t) sa.sa_handler; +- return 1; ++ act.sa_flags = 0; ++ sigemptyset(&act.sa_mask); ++ sigaction(signo, &act, 0); + } + + /* +@@ -382,4 +384,18 @@ + #endif + l2: _exit(status); + /* NOTREACHED */ ++} ++ ++int decode_signal(const char *string) ++{ ++ int signo; ++ ++ if (is_number(string)) return atoi(string); ++ ++ for (signo=0; signo < NSIG; signo++) ++ if (strcasecmp(string, signal_names[signo]) == 0 || ++ strcasecmp(string, &(signal_names[signo])[3]) == 0) ++ return signo; ++ ++ return -1; + } +diff -urN netbsd-sh/trap.h ash-0.3.7.orig/trap.h +--- netbsd-sh/trap.h Tue May 23 12:03:19 2000 ++++ ash-0.3.7.orig/trap.h Mon Apr 23 22:16:46 2001 +@@ -42,9 +42,10 @@ + + int trapcmd __P((int, char **)); + void clear_traps __P((void)); +-long setsignal __P((int)); ++void setsignal __P((int)); + void ignoresig __P((int)); + void onsig __P((int)); + void dotrap __P((void)); + void setinteractive __P((int)); + void exitshell __P((int)) __attribute__((noreturn)); ++int decode_signal __P((const char *)); diff --git a/source/ap/ash/patches/ash-makefile.patch b/source/ap/ash/patches/ash-makefile.patch new file mode 100644 index 000000000..c3b16a1f5 --- /dev/null +++ b/source/ap/ash/patches/ash-makefile.patch @@ -0,0 +1,115 @@ +diff -u ash-0.4.0/Makefile ash-0.4.0-/Makefile +--- ash-0.4.0/Makefile Fri Jan 12 17:50:34 2001 ++++ ash-0.4.0-/Makefile Tue Apr 24 00:49:56 2001 +@@ -7,56 +7,68 @@ + SHSRCS= alias.c cd.c echo.c error.c eval.c exec.c expand.c \ + histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \ + mystring.c options.c parser.c redir.c show.c trap.c output.c var.c \ +- test.c +-GENSRCS=arith.c arith.h arith_lex.c builtins.c builtins.h init.c nodes.c \ +- nodes.h syntax.c syntax.h token.h ++ test.c setmode.c test.c ++GENSRCS=builtins.c builtins.h init.c nodes.c arith.c arith.h lex.yy.c \ ++ nodes.h syntax.c syntax.h token.h signames.c + SRCS= ${SHSRCS} ${GENSRCS} + +-LDADD+= -ll -ledit -ltermcap +-DPADD+= ${LIBL} ${LIBEDIT} ${LIBTERMCAP} ++OBJS=alias.o cd.o bltin/echo.o error.o eval.o exec.o expand.o \ ++ histedit.o input.o jobs.o mail.o main.o memalloc.o miscbltin.o \ ++ mystring.o options.o output.o parser.o redir.o show.o \ ++ trap.o var.o bltin/test.o signames.o \ ++ builtins.o init.o nodes.o syntax.o arith.o lex.yy.o \ ++ setmode.o bltin/times.o ++ ++OPT_FLAGS=-O2 -g ++LDFLAGS=-g ++CFLAGS=$(OPT_FLAGS) -DSHELL -I. -DNO_HISTORY -DBSD=1 -DSMALL -D_GNU_SOURCE \ ++ -DGLOB_BROKEN -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -D_DIAGASSERT\(x\)= ++ ++all: $(PROG) ++ ++$(PROG): build-tools $(GENSRCS) $(GENHDRS) $(OBJS) ++ $(CC) $(LDFLAGS) -o $(PROG) $(OBJS) $(LDLIBS) -lfl ++ ++lex.yy.c: arith_lex.l ++ flex -8 $< ++ ++CLEANFILES+= mkinit mkinit.o mknodes mknodes.o \ ++ mksyntax mksyntax.o ++ ++CLEANFILES+= ${GENSRCS} ${GENHDRS} ++ ++build-tools: mkinit mknodes mksyntax ++ ++.ORDER: builtins.c builtins.h ++builtins.c builtins.h: mkbuiltins builtins.def ++ sh mkbuiltins shell.h builtins.def `pwd` ++ ++INIT_DEPS = alias.c eval.c exec.c input.c jobs.c options.c parser.c \ ++ redir.c trap.c var.c output.c ++ ++init.c: mkinit $(INIT_DEPS) ++ ./mkinit $(INIT_DEPS) ++ ++mkinit: mkinit.o ++mknodes: mknodes.o ++mksyntax: mksyntax.o + +-LFLAGS= -8 # 8-bit lex scanner for arithmetic +-YFLAGS= -d +- +-CPPFLAGS+=-DSHELL -I. -I${.CURDIR} +- +-.PATH: ${.CURDIR}/bltin ${.CURDIR}/../../usr.bin/printf ${.CURDIR}/../test +- +-CLEANFILES+= mkinit mknodes mksyntax +-CLEANFILES+= ${GENSRCS} y.tab.h +- +-token.h: mktokens +- sh ${.ALLSRC} +- +-builtins.c builtins.h: mkbuiltins shell.h builtins.def +- sh ${.ALLSRC} ${.OBJDIR} +- +-init.c: mkinit ${SHSRCS} +- ./${.ALLSRC} ++signames.c: mksignames ++ ./mksignames + + nodes.c nodes.h: mknodes nodetypes nodes.c.pat +- ./${.ALLSRC} ++ ./mknodes ./nodetypes ./nodes.c.pat + + syntax.c syntax.h: mksyntax +- ./${.ALLSRC} +- +-mkinit: mkinit.c +- ${HOST_LINK.c} -o mkinit ${.IMPSRC} +- +-mknodes: mknodes.c +- ${HOST_LINK.c} -o mknodes ${.IMPSRC} ++ ./mksyntax + +-.if (${MACHINE_ARCH} == "powerpc") || \ +- (${MACHINE_ARCH} == "arm32") || \ +- (${MACHINE_ARCH} == "arm26") +-TARGET_CHARFLAG= -DTARGET_CHAR="u_int8_t" +-.else +-TARGET_CHARFLAG= -DTARGET_CHAR="int8_t" +-.endif ++arith.c arith.h: arith.y ++ yacc -d arith.y ++ mv y.tab.h arith.h ++ mv y.tab.c arith.c + +-mksyntax: mksyntax.c +- ${HOST_LINK.c} ${TARGET_CHARFLAG} -o mksyntax ${.IMPSRC} +- +-.include <bsd.prog.mk> ++token.h: mktokens ++ sh ./mktokens + +-${OBJS}: builtins.h nodes.h syntax.h token.h ++clean: ++ rm -f $(PROG) $(OBJS) $(CLEANFILES) core diff --git a/source/ap/ash/patches/ash-manpage.patch b/source/ap/ash/patches/ash-manpage.patch new file mode 100644 index 000000000..458367e79 --- /dev/null +++ b/source/ap/ash/patches/ash-manpage.patch @@ -0,0 +1,42 @@ +diff -urN netbsd-sh/sh.1 ash-0.3.7.orig/sh.1 +--- netbsd-sh/sh.1 Fri Jan 12 17:50:40 2001 ++++ ash-0.3.7.orig/sh.1 Mon Apr 23 22:16:46 2001 +@@ -649,7 +649,7 @@ + they were one program: + .Pp + .Bd -literal -offset indent +-{ echo -n \*q hello \*q ; echo \*q world" } > greeting ++{ echo \*q hello \\c\*q ; echo \*q world" } > greeting + .Ed + .Pp + .Ss Functions +@@ -1306,14 +1306,16 @@ + will continue to print the old name for the directory. + .It Xo read Op Fl p Ar prompt + .Op Fl r +-.Op Ar variable... ++.Ar variable... + .Xc + The prompt is printed if the + .Fl p + option is specified and the standard input is a terminal. Then a line is + read from the standard input. The trailing newline is deleted from the + line and the line is split as described in the section on word splitting +-above, and the pieces are assigned to the variables in order. If there are ++above, and the pieces are assigned to the variables in order. ++At least one variable must be specified. ++If there are + more pieces than variables, the remaining pieces (along with the + characters in + .Ev IFS +@@ -1394,6 +1396,9 @@ + by one. If there are zero positional parameters, + .Ic shift + does nothing. ++.It times ++Print the accumulated user and system times for the shell and for processes ++run from the shell. The return status is 0. + .It Xo trap + .Op Ar action + .Ar signal... + diff --git a/source/ap/ash/patches/ash-memout.patch b/source/ap/ash/patches/ash-memout.patch new file mode 100644 index 000000000..1bfedadaa --- /dev/null +++ b/source/ap/ash/patches/ash-memout.patch @@ -0,0 +1,333 @@ +diff -u ash-0.4.0/eval.c ash-0.4.0-/eval.c +--- ash-0.4.0/eval.c Tue Apr 24 00:53:12 2001 ++++ ash-0.4.0-/eval.c Tue Apr 24 00:13:57 2001 +@@ -879,9 +879,13 @@ + #endif + mode = (cmdentry.u.index == EXECCMD)? 0 : REDIR_PUSH; + if (flags == EV_BACKCMD) { ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++ openmemout(); ++#else + memout.nleft = 0; + memout.nextc = memout.buf; + memout.bufsize = 64; ++#endif + mode |= REDIR_BACKQ; + } + redirect(cmd->ncmd.redirect, mode); +@@ -928,10 +932,18 @@ + if (cmdentry.u.index != EXECCMD) + popredir(); + if (flags == EV_BACKCMD) { ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++ closememout(); ++#endif + backcmd->buf = memout.buf; ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++ backcmd->nleft = memout.bufsize; ++#else + backcmd->nleft = memout.nextc - memout.buf; ++#endif + memout.buf = NULL; + } ++ cmdenviron = NULL; + } else { + #ifdef DEBUG + trputs("normal command: "); trargs(argv); +Common subdirectories: ash-0.4.0/funcs and ash-0.4.0-/funcs +diff -u ash-0.4.0/output.c ash-0.4.0-/output.c +--- ash-0.4.0/output.c Fri Jan 12 17:50:39 2001 ++++ ash-0.4.0-/output.c Tue Apr 24 00:43:44 2001 +@@ -65,6 +65,10 @@ + #include <errno.h> + #include <unistd.h> + #include <stdlib.h> ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++#undef CEOF /* get rid of the redefine warning */ ++#include <fcntl.h> ++#endif + + #include "shell.h" + #include "syntax.h" +@@ -79,9 +83,15 @@ + #define OUTPUT_ERR 01 /* error occurred on output */ + + ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++struct output output = {NULL, NULL, 0, NULL, 0, 1, 0}; ++struct output errout = {NULL, NULL, 0, NULL, 0, 2, 0}; ++struct output memout = {NULL, NULL, 0, NULL, 0, MEM_OUT, 0}; ++#else + struct output output = {NULL, 0, NULL, OUTBUFSIZ, 1, 0}; + struct output errout = {NULL, 0, NULL, 100, 2, 0}; + struct output memout = {NULL, 0, NULL, 0, MEM_OUT, 0}; ++#endif + struct output *out1 = &output; + struct output *out2 = &errout; + +@@ -92,9 +102,19 @@ + INCLUDE "output.h" + INCLUDE "memalloc.h" + ++INIT { ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++ initstreams(); ++#endif ++} ++ + RESET { + out1 = &output; + out2 = &errout; ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++ if (memout.stream != NULL) ++ closememout(); ++#endif + if (memout.buf != NULL) { + ckfree(memout.buf); + memout.buf = NULL; +@@ -124,33 +144,22 @@ + + + void +-out1str(p) +- const char *p; +- { +- outstr(p, out1); +-} +- +- +-void +-out2str(p) +- const char *p; +- { +- outstr(p, out2); +-} +- +- +-void + outstr(p, file) + const char *p; + struct output *file; + { ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++ fputs(p, file->stream); ++#else + while (*p) + outc(*p++, file); ++#endif + if (file == out2) + flushout(file); + } + + ++#if !defined(_GNU_SOURCE) || defined(__UCLIBC__) + char out_junk[16]; + + +@@ -183,6 +192,7 @@ + } + dest->nleft--; + } ++#endif + + + void +@@ -192,11 +202,11 @@ + } + + ++#if !defined(_GNU_SOURCE) || defined(__UCLIBC__) + void + flushout(dest) + struct output *dest; + { +- + if (dest->buf == NULL || dest->nextc == dest->buf || dest->fd < 0) + return; + if (xwrite(dest->fd, dest->buf, dest->nextc - dest->buf) < 0) +@@ -204,6 +214,7 @@ + dest->nextc = dest->buf; + dest->nleft = dest->bufsize; + } ++#endif + + + void +@@ -264,6 +275,7 @@ + va_end(ap); + } + ++#if !defined(__GLIBC__) && !defined(__UCLIBC__) + void + #ifdef __STDC__ + dprintf(const char *fmt, ...) +@@ -285,6 +297,7 @@ + va_end(ap); + flushout(out2); + } ++#endif + + void + #ifdef __STDC__ +@@ -295,7 +308,9 @@ + #endif + { + va_list ap; ++#if !defined(_GNU_SOURCE) || defined(__UCLIBC__) + struct output strout; ++#endif + #ifndef __STDC__ + char *outbuf; + size_t length; +@@ -308,6 +323,9 @@ + #else + va_start(ap, fmt); + #endif ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++ vsnprintf(outbuf, length, fmt, ap); ++#else + strout.nextc = outbuf; + strout.nleft = length; + strout.fd = BLOCK_OUT; +@@ -316,8 +334,10 @@ + outc('\0', &strout); + if (strout.flags & OUTPUT_ERR) + outbuf[length - 1] = '\0'; ++#endif + } + ++#if !defined(_GNU_SOURCE) || defined(__UCLIBC__) + /* + * Formatted output. This routine handles a subset of the printf formats: + * - Formats supported: d, u, o, p, X, s, and c. +@@ -534,7 +554,7 @@ + } + #endif /* !HAVE_VASPRINTF */ + } +- ++#endif + + + /* +@@ -544,7 +564,7 @@ + int + xwrite(fd, buf, nbytes) + int fd; +- char *buf; ++ const char *buf; + int nbytes; + { + int ntry; +@@ -570,6 +590,8 @@ + } + + ++ ++#ifdef notdef + /* + * Version of ioctl that retries after a signal is caught. + * XXX unused function +@@ -586,3 +608,27 @@ + while ((i = ioctl(fd, request, arg)) == -1 && errno == EINTR); + return i; + } ++#endif ++ ++ ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++void initstreams() { ++ output.stream = stdout; ++ errout.stream = stderr; ++} ++ ++ ++void ++openmemout() { ++ memout.stream = open_memstream(&memout.buf, &memout.bufsize); ++} ++ ++ ++void ++closememout() { ++ INTOFF; ++ fclose(memout.stream); ++ memout.stream = NULL; ++ INTON; ++} ++#endif +diff -u ash-0.4.0/output.h ash-0.4.0-/output.h +--- ash-0.4.0/output.h Sat Jan 31 19:28:11 1998 ++++ ash-0.4.0-/output.h Tue Apr 24 00:13:57 2001 +@@ -45,13 +45,19 @@ + #else + #include <varargs.h> + #endif ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++#include <stdio.h> ++#endif + + struct output { ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++ FILE *stream; ++#endif + char *nextc; + int nleft; + char *buf; + int bufsize; +- short fd; ++ int fd; + short flags; + }; + +@@ -61,29 +67,44 @@ + extern struct output *out1; + extern struct output *out2; + +-void open_mem __P((char *, int, struct output *)); +-void out1str __P((const char *)); +-void out2str __P((const char *)); + void outstr __P((const char *, struct output *)); ++#ifndef _GNU_SOURCE + void emptyoutbuf __P((struct output *)); ++#endif + void flushall __P((void)); ++#ifndef _GNU_SOURCE + void flushout __P((struct output *)); ++#endif + void freestdout __P((void)); + void outfmt __P((struct output *, const char *, ...)) + __attribute__((__format__(__printf__,2,3))); + void out1fmt __P((const char *, ...)) + __attribute__((__format__(__printf__,1,2))); ++#if !defined(__GLIBC__) && !defined(__UCLIBC__) + void dprintf __P((const char *, ...)) + __attribute__((__format__(__printf__,1,2))); ++#endif + void fmtstr __P((char *, size_t, const char *, ...)) + __attribute__((__format__(__printf__,3,4))); ++#ifndef _GNU_SOURCE + void doformat __P((struct output *, const char *, va_list)); +-int xwrite __P((int, char *, int)); +-int xioctl __P((int, unsigned long, char *)); ++#endif ++int xwrite __P((int, const char *, int)); ++#if defined(_GNU_SOURCE) && !defined(__UCLIBC__) ++void initstreams __P((void)); ++void openmemout __P((void)); ++void closememout __P((void)); + ++#define outc(c, o) putc(c, (o)->stream) ++#define flushout(o) fflush((o)->stream) ++#define doformat(d, f, a) vfprintf((d)->stream, f, a) ++#else + #define outc(c, file) (--(file)->nleft < 0? (emptyoutbuf(file), *(file)->nextc++ = (c)) : (*(file)->nextc++ = (c))) +-#define out1c(c) outc(c, out1); +-#define out2c(c) outc(c, out2); ++#endif ++#define out1c(c) outc(c, out1) ++#define out2c(c) outc(c, out2) ++#define out1str(s) outstr(s, out1) ++#define out2str(s) outstr(s, out2) + + #define OUTPUT_INCL + #endif diff --git a/source/ap/ash/patches/ash-misc.patch b/source/ap/ash/patches/ash-misc.patch new file mode 100644 index 000000000..9845a2325 --- /dev/null +++ b/source/ap/ash/patches/ash-misc.patch @@ -0,0 +1,122 @@ +diff -urN netbsd-sh/error.c ash-0.3.7.orig/error.c +--- netbsd-sh/error.c Fri Jan 12 17:50:35 2001 ++++ ash-0.3.7.orig/error.c Mon Apr 23 22:16:46 2001 +@@ -233,6 +233,7 @@ + { ENOTDIR, E_CREAT,"directory nonexistent" }, + { ENOTDIR, E_EXEC, "not found" }, + { EISDIR, ALL, "is a directory" }, ++ { EEXIST, E_CREAT,"file exists" }, + #ifdef notdef + { EMFILE, ALL, "too many open files" }, + #endif +diff -urN netbsd-sh/error.h ash-0.3.7.orig/error.h +--- netbsd-sh/error.h Fri Jul 9 13:02:05 1999 ++++ ash-0.3.7.orig/error.h Mon Apr 23 22:16:46 2001 +@@ -102,7 +102,7 @@ + * so we use _setjmp instead. + */ + +-#if defined(BSD) && !defined(__SVR4) ++#if defined(BSD) && !defined(__SVR4) && !defined(__GLIBC__) + #define setjmp(jmploc) _setjmp(jmploc) + #define longjmp(jmploc, val) _longjmp(jmploc, val) + #endif +diff -urN netbsd-sh/bltin/bltin.h ash-0.3.7.orig/bltin/bltin.h +--- netbsd-sh/bltin/bltin.h Sat Jul 5 13:12:37 1997 ++++ ash-0.3.7.orig/bltin/bltin.h Mon Apr 23 22:16:46 2001 +@@ -46,8 +46,10 @@ + + #include "../shell.h" + #include "../mystring.h" ++#include "../memalloc.h" + #ifdef SHELL + #include "../output.h" ++#ifndef _GNU_SOURCE + #define stdout out1 + #define stderr out2 + #define printf out1fmt +@@ -56,12 +58,13 @@ + #define fprintf outfmt + #define fputs outstr + #define fflush flushout +-#define INITARGS(argv) + #define warnx(a, b, c) { \ + char buf[64]; \ + (void)snprintf(buf, sizeof(buf), a, b, c); \ + error("%s", buf); \ + } ++#endif ++#define INITARGS(argv) + + #else + #undef NULL +diff -urN netbsd-sh/main.c ash-0.3.7.orig/main.c +--- netbsd-sh/main.c Fri Jan 12 17:50:36 2001 ++++ ash-0.3.7.orig/main.c Mon Apr 23 22:16:46 2001 +@@ -115,6 +119,9 @@ + #if PROFILE + monitor(4, etext, profile_buf, sizeof profile_buf, 50); + #endif ++#if defined(linux) || defined(__GNU__) ++ signal(SIGCHLD, SIG_DFL); ++#endif + state = 0; + if (setjmp(jmploc.loc)) { + /* +diff -urN netbsd-sh/var.c ash-0.3.7.orig/var.c +--- netbsd-sh/var.c Fri Jan 12 17:50:40 2001 ++++ ash-0.3.7.orig/var.c Mon Apr 23 22:19:54 2001 +@@ -114,7 +114,7 @@ + NULL }, + { &vmpath, VSTRFIXED|VTEXTFIXED|VUNSET, "MAILPATH=", + NULL }, +- { &vpath, VSTRFIXED|VTEXTFIXED, "PATH=" _PATH_DEFPATH, ++ { &vpath, VSTRFIXED|VTEXTFIXED, "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + changepath }, + /* + * vps1 depends on uid +@@ -138,13 +138,16 @@ + + /* + * Initialize the varable symbol tables and import the environment ++ * Setting PWD added by herbert + */ + + #ifdef mkinit ++INCLUDE "cd.h" + INCLUDE "var.h" + INIT { + char **envp; + extern char **environ; ++ extern char *curdir; + + initvar(); + for (envp = environ ; *envp ; envp++) { +@@ -152,6 +155,9 @@ + setvareq(*envp, VEXPORT|VTEXTFIXED); + } + } ++ ++ getpwd(); ++ setvar("PWD", curdir, VEXPORT|VTEXTFIXED); + } + #endif + +@@ -283,6 +289,7 @@ + struct var *vp, **vpp; + + vpp = hashvar(s); ++ flags |= (VEXPORT & (((unsigned) (1 - aflag)) - 1)); + for (vp = *vpp ; vp ; vp = vp->next) { + if (varequal(s, vp->text)) { + if (vp->flags & VREADONLY) { +@@ -305,7 +312,8 @@ + * We could roll this to a function, to handle it as + * a regular variable function callback, but why bother? + */ +- if (vp == &vmpath || (vp == &vmail && ! mpathset())) ++ if (iflag && ++ (vp == &vmpath || (vp == &vmail && ! mpathset()))) + chkmail(1); + INTON; + return; diff --git a/source/ap/ash/patches/ash-ppid.patch b/source/ap/ash/patches/ash-ppid.patch new file mode 100644 index 000000000..954b509d4 --- /dev/null +++ b/source/ap/ash/patches/ash-ppid.patch @@ -0,0 +1,21 @@ +diff -ur ash-0.4.0/var.c ash-0.4.0-ppid/var.c +--- ash-0.4.0/var.c Tue Apr 24 01:23:17 2001 ++++ ash-0.4.0-ppid/var.c Tue Apr 24 01:22:07 2001 +@@ -172,6 +172,7 @@ + const struct varinit *ip; + struct var *vp; + struct var **vpp; ++ char ppid[30]; + + for (ip = varinit ; (vp = ip->var) != NULL ; ip++) { + if ((vp->flags & VEXPORT) == 0) { +@@ -193,6 +194,9 @@ + vps1.text = strdup(geteuid() ? "PS1=$ " : "PS1=# "); + vps1.flags = VSTRFIXED|VTEXTFIXED; + } ++ ++ snprintf(ppid, 29, "%ld", (long)getppid()); ++ setvar("PPID", ppid, VREADONLY|VNOFUNC); + } + + /* diff --git a/source/ap/ash/patches/ash-redir.patch b/source/ap/ash/patches/ash-redir.patch new file mode 100644 index 000000000..40cdbe9ac --- /dev/null +++ b/source/ap/ash/patches/ash-redir.patch @@ -0,0 +1,463 @@ +diff -ur netbsd-sh/eval.c netbsd-sh-/eval.c +--- netbsd-sh/eval.c Tue May 23 12:03:18 2000 ++++ netbsd-sh-/eval.c Mon Apr 23 23:33:34 2001 +@@ -442,6 +442,7 @@ + case NFROM: + case NTO: + case NAPPEND: ++ case NTOOV: + expandarg(redir->nfile.fname, &fn, EXP_TILDE | EXP_REDIR); + redir->nfile.expfname = fn.list->text; + break; +diff -ur netbsd-sh/exec.c netbsd-sh-/exec.c +--- netbsd-sh/exec.c Fri Jan 12 17:50:35 2001 ++++ netbsd-sh-/exec.c Mon Apr 23 23:33:34 2001 +@@ -125,6 +125,10 @@ + char *cmdname; + int e; + ++ if (fd2 >= 0 && fd2 != 2) { ++ close(fd2); ++ } ++ + if (strchr(argv[0], '/') != NULL) { + tryexec(argv[0], argv, envp); + e = errno; +diff -ur netbsd-sh/jobs.c netbsd-sh-/jobs.c +--- netbsd-sh/jobs.c Mon Apr 23 23:34:53 2001 ++++ netbsd-sh-/jobs.c Mon Apr 23 23:34:30 2001 +@@ -129,9 +129,9 @@ + if (on) { + do { /* while we are in the background */ + #ifdef OLD_TTY_DRIVER +- if (ioctl(2, TIOCGPGRP, (char *)&initialpgrp) < 0) { ++ if (ioctl(fd2, TIOCGPGRP, (char *)&initialpgrp) < 0) { + #else +- initialpgrp = tcgetpgrp(2); ++ initialpgrp = tcgetpgrp(fd2); + if (initialpgrp < 0) { + #endif + out2str("sh: can't access tty; job control turned off\n"); +@@ -146,7 +146,7 @@ + } + } while (0); + #ifdef OLD_TTY_DRIVER +- if (ioctl(2, TIOCGETD, (char *)&ldisc) < 0 || ldisc != NTTYDISC) { ++ if (ioctl(fd2, TIOCGETD, (char *)&ldisc) < 0 || ldisc != NTTYDISC) { + out2str("sh: need new tty driver to run job control; job control turned off\n"); + mflag = 0; + return; +@@ -157,16 +157,16 @@ + setsignal(SIGTTIN); + setpgid(0, rootpid); + #ifdef OLD_TTY_DRIVER +- ioctl(2, TIOCSPGRP, (char *)&rootpid); ++ ioctl(fd2, TIOCSPGRP, (char *)&rootpid); + #else +- tcsetpgrp(2, rootpid); ++ tcsetpgrp(fd2, rootpid); + #endif + } else { /* turning job control off */ + setpgid(0, initialpgrp); + #ifdef OLD_TTY_DRIVER +- ioctl(2, TIOCSPGRP, (char *)&initialpgrp); ++ ioctl(fd2, TIOCSPGRP, (char *)&initialpgrp); + #else +- tcsetpgrp(2, initialpgrp); ++ tcsetpgrp(fd2, initialpgrp); + #endif + setsignal(SIGTSTP); + setsignal(SIGTTOU); +@@ -206,9 +206,9 @@ + error("job not created under job control"); + pgrp = jp->ps[0].pid; + #ifdef OLD_TTY_DRIVER +- ioctl(2, TIOCSPGRP, (char *)&pgrp); ++ ioctl(fd2, TIOCSPGRP, (char *)&pgrp); + #else +- tcsetpgrp(2, pgrp); ++ tcsetpgrp(fd2, pgrp); + #endif + restartjob(jp); + INTOFF; +@@ -612,10 +612,10 @@ + if (mode == FORK_FG) { + /*** this causes superfluous TIOCSPGRPS ***/ + #ifdef OLD_TTY_DRIVER +- if (ioctl(2, TIOCSPGRP, (char *)&pgrp) < 0) ++ if (ioctl(fd2, TIOCSPGRP, (char *)&pgrp) < 0) + error("TIOCSPGRP failed, errno=%d", errno); + #else +- if (tcsetpgrp(2, pgrp) < 0) ++ if (tcsetpgrp(fd2, pgrp) < 0) + error("tcsetpgrp failed, errno=%d", errno); + #endif + } +@@ -734,10 +734,10 @@ + #if JOBS + if (jp->jobctl) { + #ifdef OLD_TTY_DRIVER +- if (ioctl(2, TIOCSPGRP, (char *)&mypgrp) < 0) ++ if (ioctl(fd2, TIOCSPGRP, (char *)&mypgrp) < 0) + error("TIOCSPGRP failed, errno=%d\n", errno); + #else +- if (tcsetpgrp(2, mypgrp) < 0) ++ if (tcsetpgrp(fd2, mypgrp) < 0) + error("tcsetpgrp failed, errno=%d\n", errno); + #endif + } +@@ -1092,6 +1092,8 @@ + p = ">>"; i = 1; goto redir; + case NTOFD: + p = ">&"; i = 1; goto redir; ++ case NTOOV: ++ p = ">|"; i = 1; goto redir; + case NFROM: + p = "<"; i = 0; goto redir; + case NFROMFD: +Only in netbsd-sh-: jobs.c.orig +diff -ur netbsd-sh/nodetypes netbsd-sh-/nodetypes +--- netbsd-sh/nodetypes Fri Feb 5 13:04:52 1999 ++++ netbsd-sh-/nodetypes Mon Apr 23 23:33:34 2001 +@@ -119,6 +119,7 @@ + NFROM nfile # fd< fname + NFROMTO nfile # fd<> fname + NAPPEND nfile # fd>> fname ++NTOOV nfile # fd>| fname + type int + next nodeptr # next redirection in list + fd int # file descriptor being redirected +diff -ur netbsd-sh/parser.c netbsd-sh-/parser.c +--- netbsd-sh/parser.c Fri Jan 12 17:50:39 2001 ++++ netbsd-sh-/parser.c Mon Apr 23 23:33:34 2001 +@@ -1125,6 +1125,8 @@ + np->type = NAPPEND; + else if (c == '&') + np->type = NTOFD; ++ else if (c == '|') ++ np->type = NTOOV; + else { + np->type = NTO; + pungetc(); +diff -ur netbsd-sh/redir.c netbsd-sh-/redir.c +--- netbsd-sh/redir.c Tue May 23 12:03:19 2000 ++++ netbsd-sh-/redir.c Mon Apr 23 23:33:34 2001 +@@ -45,6 +45,7 @@ + #endif + #endif /* not lint */ + ++#include <sys/stat.h> + #include <sys/types.h> + #include <sys/param.h> /* PIPE_BUF */ + #include <signal.h> +@@ -66,6 +67,7 @@ + #include "output.h" + #include "memalloc.h" + #include "error.h" ++#include "options.h" + + + #define EMPTY -2 /* marks an unused slot in redirtab */ +@@ -92,8 +94,15 @@ + */ + int fd0_redirected = 0; + +-STATIC void openredirect __P((union node *, char[10 ])); ++/* ++ * We also keep track of where fd2 goes. ++ */ ++int fd2 = 2; ++ ++STATIC int openredirect __P((union node *)); ++STATIC void dupredirect __P((union node *, int, char[10 ])); + STATIC int openhere __P((union node *)); ++STATIC int noclobberopen __P((const char *)); + + + /* +@@ -113,6 +122,7 @@ + struct redirtab *sv = NULL; + int i; + int fd; ++ int newfd; + int try; + char memory[10]; /* file descriptors to write to memory */ + +@@ -133,36 +143,47 @@ + n->ndup.dupfd == fd) + continue; /* redirect from/to same file descriptor */ + +- if ((flags & REDIR_PUSH) && sv->renamed[fd] == EMPTY) { +- INTOFF; +-again: +- if ((i = fcntl(fd, F_DUPFD, 10)) == -1) { ++ INTOFF; ++ newfd = openredirect(n); ++ if (((flags & REDIR_PUSH) && sv->renamed[fd] == EMPTY) || ++ (fd == fd2)) { ++ if (newfd == fd) { ++ try++; ++ } else if ((i = fcntl(fd, F_DUPFD, 10)) == -1) { + switch (errno) { + case EBADF: + if (!try) { +- openredirect(n, memory); ++ dupredirect(n, newfd, memory); + try++; +- goto again; ++ break; + } + /* FALLTHROUGH*/ + default: ++ if (newfd >= 0) { ++ close(newfd); ++ } + INTON; + error("%d: %s", fd, strerror(errno)); + /* NOTREACHED */ + } + } + if (!try) { +- sv->renamed[fd] = i; + close(fd); ++ if (flags & REDIR_PUSH) { ++ sv->renamed[fd] = i; ++ } ++ if (fd == fd2) { ++ fd2 = i; ++ } + } +- INTON; +- } else { ++ } else if (fd != newfd) { + close(fd); + } + if (fd == 0) + fd0_redirected++; + if (!try) +- openredirect(n, memory); ++ dupredirect(n, newfd, memory); ++ INTON; + } + if (memory[1]) + out1 = &memout; +@@ -171,22 +192,13 @@ + } + + +-STATIC void +-openredirect(redir, memory) ++STATIC int ++openredirect(redir) + union node *redir; +- char memory[10]; + { +- int fd = redir->nfile.fd; + char *fname; + int f; + +- /* +- * We suppress interrupts so that we won't leave open file +- * descriptors around. This may not be such a good idea because +- * an open of a device or a fifo can block indefinitely. +- */ +- INTOFF; +- memory[fd] = 0; + switch (redir->nfile.type) { + case NFROM: + fname = redir->nfile.expfname; +@@ -199,6 +211,14 @@ + goto ecreate; + break; + case NTO: ++ /* Take care of noclobber mode. */ ++ if (Cflag) { ++ fname = redir->nfile.expfname; ++ if ((f = noclobberopen(fname)) < 0) ++ goto ecreate; ++ break; ++ } ++ case NTOOV: + fname = redir->nfile.expfname; + #ifdef O_CREAT + if ((f = open(fname, O_WRONLY|O_CREAT|O_TRUNC, 0666)) < 0) +@@ -222,32 +242,48 @@ + break; + case NTOFD: + case NFROMFD: ++ f = -1; ++ break; ++ case NHERE: ++ case NXHERE: ++ f = openhere(redir); ++ break; ++ default: ++ abort(); ++ } ++ ++ return f; ++ecreate: ++ error("cannot create %s: %s", fname, errmsg(errno, E_CREAT)); ++eopen: ++ error("cannot open %s: %s", fname, errmsg(errno, E_OPEN)); ++} ++ ++ ++STATIC void ++dupredirect(redir, f, memory) ++ union node *redir; ++ int f; ++ char memory[10]; ++ { ++ int fd = redir->nfile.fd; ++ ++ memory[fd] = 0; ++ if (redir->nfile.type == NTOFD || redir->nfile.type == NFROMFD) { + if (redir->ndup.dupfd >= 0) { /* if not ">&-" */ + if (memory[redir->ndup.dupfd]) + memory[fd] = 1; + else + copyfd(redir->ndup.dupfd, fd); + } +- INTON; + return; +- case NHERE: +- case NXHERE: +- f = openhere(redir); +- break; +- default: +- abort(); + } + + if (f != fd) { + copyfd(f, fd); + close(f); + } +- INTON; + return; +-ecreate: +- error("cannot create %s: %s", fname, errmsg(errno, E_CREAT)); +-eopen: +- error("cannot open %s: %s", fname, errmsg(errno, E_OPEN)); + } + + +@@ -304,6 +340,7 @@ + struct redirtab *rp = redirlist; + int i; + ++ INTOFF; + for (i = 0 ; i < 10 ; i++) { + if (rp->renamed[i] != EMPTY) { + if (i == 0) +@@ -313,9 +350,11 @@ + copyfd(rp->renamed[i], i); + close(rp->renamed[i]); + } ++ if (rp->renamed[i] == fd2) { ++ fd2 = i; ++ } + } + } +- INTOFF; + redirlist = rp->next; + ckfree(rp); + INTON; +@@ -359,6 +398,9 @@ + for (i = 0 ; i < 10 ; i++) { + if (rp->renamed[i] >= 0) { + close(rp->renamed[i]); ++ if (rp->renamed[i] == fd2) { ++ fd2 = -1; ++ } + } + rp->renamed[i] = EMPTY; + } +@@ -388,4 +430,63 @@ + error("%d: %s", from, strerror(errno)); + } + return newfd; ++} ++ ++/* ++ * Open a file in noclobber mode. ++ * The code was copied from bash. ++ */ ++int ++noclobberopen(fname) ++ const char *fname; ++{ ++ int r, fd; ++ struct stat finfo, finfo2; ++ ++ /* ++ * If the file exists and is a regular file, return an error ++ * immediately. ++ */ ++ r = stat(fname, &finfo); ++ if (r == 0 && S_ISREG(finfo.st_mode)) { ++ errno = EEXIST; ++ return -1; ++ } ++ ++ /* ++ * If the file was not present (r != 0), make sure we open it ++ * exclusively so that if it is created before we open it, our open ++ * will fail. Make sure that we do not truncate an existing file. ++ * Note that we don't turn on O_EXCL unless the stat failed -- if the ++ * file was not a regular file, we leave O_EXCL off. ++ */ ++ if (r != 0) ++ return open(fname, O_WRONLY|O_CREAT|O_EXCL, 0666); ++ fd = open(fname, O_WRONLY|O_CREAT, 0666); ++ ++ /* If the open failed, return the file descriptor right away. */ ++ if (fd < 0) ++ return fd; ++ ++ /* ++ * OK, the open succeeded, but the file may have been changed from a ++ * non-regular file to a regular file between the stat and the open. ++ * We are assuming that the O_EXCL open handles the case where FILENAME ++ * did not exist and is symlinked to an existing file between the stat ++ * and open. ++ */ ++ ++ /* ++ * If we can open it and fstat the file descriptor, and neither check ++ * revealed that it was a regular file, and the file has not been ++ * replaced, return the file descriptor. ++ */ ++ if (fstat(fd, &finfo2) == 0 && !S_ISREG(finfo2.st_mode) && ++ finfo.st_dev == finfo2.st_dev && finfo.st_ino == finfo2.st_ino) ++ return fd; ++ ++ /* The file has been replaced. badness. */ ++ close(fd); ++ errno = EEXIST; ++ return -1; + } +Only in netbsd-sh-: redir.c.orig +diff -ur netbsd-sh/redir.h netbsd-sh-/redir.h +--- netbsd-sh/redir.h Tue May 23 12:03:19 2000 ++++ netbsd-sh-/redir.h Mon Apr 23 23:33:34 2001 +@@ -42,6 +42,8 @@ + #define REDIR_PUSH 01 /* save previous values of file descriptors */ + #define REDIR_BACKQ 02 /* save the command output in memory */ + ++extern int fd2; ++ + union node; + void redirect __P((union node *, int)); + void popredir __P((void)); +diff -ur netbsd-sh/show.c netbsd-sh-/show.c +--- netbsd-sh/show.c Sat Oct 9 13:02:09 1999 ++++ netbsd-sh-/show.c Mon Apr 23 23:33:34 2001 +@@ -155,6 +155,7 @@ + case NTO: s = ">"; dftfd = 1; break; + case NAPPEND: s = ">>"; dftfd = 1; break; + case NTOFD: s = ">&"; dftfd = 1; break; ++ case NTOOV: s = ">|"; dftfd = 1; break; + case NFROM: s = "<"; dftfd = 0; break; + case NFROMFD: s = "<&"; dftfd = 0; break; + case NFROMTO: s = "<>"; dftfd = 0; break; diff --git a/source/ap/ash/patches/ash-setmode.patch b/source/ap/ash/patches/ash-setmode.patch new file mode 100644 index 000000000..b9a26d9ca --- /dev/null +++ b/source/ap/ash/patches/ash-setmode.patch @@ -0,0 +1,510 @@ +diff -urN netbsd-sh/miscbltin.c ash-0.3.7.orig/miscbltin.c +--- netbsd-sh/miscbltin.c Fri Jan 12 17:50:37 2001 ++++ ash-0.3.7.orig/miscbltin.c Mon Apr 23 22:16:46 2001 +@@ -70,6 +70,15 @@ + + #undef rflag + ++#ifdef __GLIBC__ ++mode_t getmode(const void *, mode_t); ++void *setmode(const char *); ++ ++#if !defined(__GLIBC__) || __GLIBC__ == 2 && __GLIBC_MINOR__ < 1 ++typedef enum __rlimit_resource rlim_t; ++#endif ++#endif ++ + extern char **argptr; /* argument list for builtin command */ + + +diff -urN netbsd-sh/setmode.c ash-0.3.7.orig/setmode.c +--- netbsd-sh/setmode.c Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/setmode.c Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,486 @@ ++/* $NetBSD: setmode.c,v 1.28 2000/01/25 15:43:43 enami Exp $ */ ++ ++/* ++ * Copyright (c) 1989, 1993, 1994 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * This code is derived from software contributed to Berkeley by ++ * Dave Borman at Cray Research, Inc. ++ * ++ * 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. ++ * 3. All advertising materials mentioning features or use of this software ++ * must display the following acknowledgement: ++ * This product includes software developed by the University of ++ * California, Berkeley and its contributors. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. ++ */ ++ ++#include <sys/cdefs.h> ++#if defined(LIBC_SCCS) && !defined(lint) ++#if 0 ++static char sccsid[] = "@(#)setmode.c 8.2 (Berkeley) 3/25/94"; ++#else ++__RCSID("$NetBSD: setmode.c,v 1.28 2000/01/25 15:43:43 enami Exp $"); ++#endif ++#endif /* LIBC_SCCS and not lint */ ++ ++#include <sys/types.h> ++#include <sys/stat.h> ++ ++#include <assert.h> ++#include <ctype.h> ++#include <errno.h> ++#include <signal.h> ++#include <stdlib.h> ++#include <unistd.h> ++ ++#ifdef SETMODE_DEBUG ++#include <stdio.h> ++#endif ++ ++#ifdef __weak_alias ++__weak_alias(getmode,_getmode) ++__weak_alias(setmode,_setmode) ++#endif ++ ++#ifdef __GLIBC__ ++#define S_ISTXT __S_ISVTX ++#endif ++ ++#define SET_LEN 6 /* initial # of bitcmd struct to malloc */ ++#define SET_LEN_INCR 4 /* # of bitcmd structs to add as needed */ ++ ++typedef struct bitcmd { ++ char cmd; ++ char cmd2; ++ mode_t bits; ++} BITCMD; ++ ++#define CMD2_CLR 0x01 ++#define CMD2_SET 0x02 ++#define CMD2_GBITS 0x04 ++#define CMD2_OBITS 0x08 ++#define CMD2_UBITS 0x10 ++ ++static BITCMD *addcmd __P((BITCMD *, int, int, int, u_int)); ++static void compress_mode __P((BITCMD *)); ++#ifdef SETMODE_DEBUG ++static void dumpmode __P((BITCMD *)); ++#endif ++ ++/* ++ * Given the old mode and an array of bitcmd structures, apply the operations ++ * described in the bitcmd structures to the old mode, and return the new mode. ++ * Note that there is no '=' command; a strict assignment is just a '-' (clear ++ * bits) followed by a '+' (set bits). ++ */ ++mode_t ++getmode(bbox, omode) ++ const void *bbox; ++ mode_t omode; ++{ ++ const BITCMD *set; ++ mode_t clrval, newmode, value; ++ ++ _DIAGASSERT(bbox != NULL); ++ ++ set = (const BITCMD *)bbox; ++ newmode = omode; ++ for (value = 0;; set++) ++ switch(set->cmd) { ++ /* ++ * When copying the user, group or other bits around, we "know" ++ * where the bits are in the mode so that we can do shifts to ++ * copy them around. If we don't use shifts, it gets real ++ * grundgy with lots of single bit checks and bit sets. ++ */ ++ case 'u': ++ value = (newmode & S_IRWXU) >> 6; ++ goto common; ++ ++ case 'g': ++ value = (newmode & S_IRWXG) >> 3; ++ goto common; ++ ++ case 'o': ++ value = newmode & S_IRWXO; ++common: if (set->cmd2 & CMD2_CLR) { ++ clrval = ++ (set->cmd2 & CMD2_SET) ? S_IRWXO : value; ++ if (set->cmd2 & CMD2_UBITS) ++ newmode &= ~((clrval<<6) & set->bits); ++ if (set->cmd2 & CMD2_GBITS) ++ newmode &= ~((clrval<<3) & set->bits); ++ if (set->cmd2 & CMD2_OBITS) ++ newmode &= ~(clrval & set->bits); ++ } ++ if (set->cmd2 & CMD2_SET) { ++ if (set->cmd2 & CMD2_UBITS) ++ newmode |= (value<<6) & set->bits; ++ if (set->cmd2 & CMD2_GBITS) ++ newmode |= (value<<3) & set->bits; ++ if (set->cmd2 & CMD2_OBITS) ++ newmode |= value & set->bits; ++ } ++ break; ++ ++ case '+': ++ newmode |= set->bits; ++ break; ++ ++ case '-': ++ newmode &= ~set->bits; ++ break; ++ ++ case 'X': ++ if (omode & (S_IFDIR|S_IXUSR|S_IXGRP|S_IXOTH)) ++ newmode |= set->bits; ++ break; ++ ++ case '\0': ++ default: ++#ifdef SETMODE_DEBUG ++ (void)printf("getmode:%04o -> %04o\n", omode, newmode); ++#endif ++ return (newmode); ++ } ++} ++ ++#define ADDCMD(a, b, c, d) do { \ ++ if (set >= endset) { \ ++ BITCMD *newset; \ ++ setlen += SET_LEN_INCR; \ ++ newset = realloc(saveset, sizeof(BITCMD) * setlen); \ ++ if (newset == NULL) { \ ++ free(saveset); \ ++ return (NULL); \ ++ } \ ++ set = newset + (set - saveset); \ ++ saveset = newset; \ ++ endset = newset + (setlen - 2); \ ++ } \ ++ set = addcmd(set, (a), (b), (c), (d)); \ ++} while (/*CONSTCOND*/0) ++ ++#define STANDARD_BITS (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO) ++ ++void * ++setmode(p) ++ const char *p; ++{ ++ int perm, who; ++ char op, *ep; ++ BITCMD *set, *saveset, *endset; ++ sigset_t sigset, sigoset; ++ mode_t mask; ++ int equalopdone = 0; /* pacify gcc */ ++ int permXbits, setlen; ++ ++ if (!*p) ++ return (NULL); ++ ++ /* ++ * Get a copy of the mask for the permissions that are mask relative. ++ * Flip the bits, we want what's not set. Since it's possible that ++ * the caller is opening files inside a signal handler, protect them ++ * as best we can. ++ */ ++ sigfillset(&sigset); ++ (void)sigprocmask(SIG_BLOCK, &sigset, &sigoset); ++ (void)umask(mask = umask(0)); ++ mask = ~mask; ++ (void)sigprocmask(SIG_SETMASK, &sigoset, NULL); ++ ++ setlen = SET_LEN + 2; ++ ++ if ((set = malloc((u_int)(sizeof(BITCMD) * setlen))) == NULL) ++ return (NULL); ++ saveset = set; ++ endset = set + (setlen - 2); ++ ++ /* ++ * If an absolute number, get it and return; disallow non-octal digits ++ * or illegal bits. ++ */ ++ if (isdigit((unsigned char)*p)) { ++ perm = (mode_t)strtol(p, &ep, 8); ++ if (*ep || perm & ~(STANDARD_BITS|S_ISTXT)) { ++ free(saveset); ++ return (NULL); ++ } ++ ADDCMD('=', (STANDARD_BITS|S_ISTXT), perm, mask); ++ set->cmd = 0; ++ return (saveset); ++ } ++ ++ /* ++ * Build list of structures to set/clear/copy bits as described by ++ * each clause of the symbolic mode. ++ */ ++ for (;;) { ++ /* First, find out which bits might be modified. */ ++ for (who = 0;; ++p) { ++ switch (*p) { ++ case 'a': ++ who |= STANDARD_BITS; ++ break; ++ case 'u': ++ who |= S_ISUID|S_IRWXU; ++ break; ++ case 'g': ++ who |= S_ISGID|S_IRWXG; ++ break; ++ case 'o': ++ who |= S_IRWXO; ++ break; ++ default: ++ goto getop; ++ } ++ } ++ ++getop: if ((op = *p++) != '+' && op != '-' && op != '=') { ++ free(saveset); ++ return (NULL); ++ } ++ if (op == '=') ++ equalopdone = 0; ++ ++ who &= ~S_ISTXT; ++ for (perm = 0, permXbits = 0;; ++p) { ++ switch (*p) { ++ case 'r': ++ perm |= S_IRUSR|S_IRGRP|S_IROTH; ++ break; ++ case 's': ++ /* ++ * If specific bits where requested and ++ * only "other" bits ignore set-id. ++ */ ++ if (who == 0 || (who & ~S_IRWXO)) ++ perm |= S_ISUID|S_ISGID; ++ break; ++ case 't': ++ /* ++ * If specific bits where requested and ++ * only "other" bits ignore set-id. ++ */ ++ if (who == 0 || (who & ~S_IRWXO)) { ++ who |= S_ISTXT; ++ perm |= S_ISTXT; ++ } ++ break; ++ case 'w': ++ perm |= S_IWUSR|S_IWGRP|S_IWOTH; ++ break; ++ case 'X': ++ permXbits = S_IXUSR|S_IXGRP|S_IXOTH; ++ break; ++ case 'x': ++ perm |= S_IXUSR|S_IXGRP|S_IXOTH; ++ break; ++ case 'u': ++ case 'g': ++ case 'o': ++ /* ++ * When ever we hit 'u', 'g', or 'o', we have ++ * to flush out any partial mode that we have, ++ * and then do the copying of the mode bits. ++ */ ++ if (perm) { ++ ADDCMD(op, who, perm, mask); ++ perm = 0; ++ } ++ if (op == '=') ++ equalopdone = 1; ++ if (op == '+' && permXbits) { ++ ADDCMD('X', who, permXbits, mask); ++ permXbits = 0; ++ } ++ ADDCMD(*p, who, op, mask); ++ break; ++ ++ default: ++ /* ++ * Add any permissions that we haven't already ++ * done. ++ */ ++ if (perm || (op == '=' && !equalopdone)) { ++ if (op == '=') ++ equalopdone = 1; ++ ADDCMD(op, who, perm, mask); ++ perm = 0; ++ } ++ if (permXbits) { ++ ADDCMD('X', who, permXbits, mask); ++ permXbits = 0; ++ } ++ goto apply; ++ } ++ } ++ ++apply: if (!*p) ++ break; ++ if (*p != ',') ++ goto getop; ++ ++p; ++ } ++ set->cmd = 0; ++#ifdef SETMODE_DEBUG ++ (void)printf("Before compress_mode()\n"); ++ dumpmode(saveset); ++#endif ++ compress_mode(saveset); ++#ifdef SETMODE_DEBUG ++ (void)printf("After compress_mode()\n"); ++ dumpmode(saveset); ++#endif ++ return (saveset); ++} ++ ++static BITCMD * ++addcmd(set, op, who, oparg, mask) ++ BITCMD *set; ++ int oparg, who; ++ int op; ++ u_int mask; ++{ ++ ++ _DIAGASSERT(set != NULL); ++ ++ switch (op) { ++ case '=': ++ set->cmd = '-'; ++ set->bits = who ? who : STANDARD_BITS; ++ set++; ++ ++ op = '+'; ++ /* FALLTHROUGH */ ++ case '+': ++ case '-': ++ case 'X': ++ set->cmd = op; ++ set->bits = (who ? who : mask) & oparg; ++ break; ++ ++ case 'u': ++ case 'g': ++ case 'o': ++ set->cmd = op; ++ if (who) { ++ set->cmd2 = ((who & S_IRUSR) ? CMD2_UBITS : 0) | ++ ((who & S_IRGRP) ? CMD2_GBITS : 0) | ++ ((who & S_IROTH) ? CMD2_OBITS : 0); ++ set->bits = (mode_t)~0; ++ } else { ++ set->cmd2 = CMD2_UBITS | CMD2_GBITS | CMD2_OBITS; ++ set->bits = mask; ++ } ++ ++ if (oparg == '+') ++ set->cmd2 |= CMD2_SET; ++ else if (oparg == '-') ++ set->cmd2 |= CMD2_CLR; ++ else if (oparg == '=') ++ set->cmd2 |= CMD2_SET|CMD2_CLR; ++ break; ++ } ++ return (set + 1); ++} ++ ++#ifdef SETMODE_DEBUG ++static void ++dumpmode(set) ++ BITCMD *set; ++{ ++ ++ _DIAGASSERT(set != NULL); ++ ++ for (; set->cmd; ++set) ++ (void)printf("cmd: '%c' bits %04o%s%s%s%s%s%s\n", ++ set->cmd, set->bits, set->cmd2 ? " cmd2:" : "", ++ set->cmd2 & CMD2_CLR ? " CLR" : "", ++ set->cmd2 & CMD2_SET ? " SET" : "", ++ set->cmd2 & CMD2_UBITS ? " UBITS" : "", ++ set->cmd2 & CMD2_GBITS ? " GBITS" : "", ++ set->cmd2 & CMD2_OBITS ? " OBITS" : ""); ++} ++#endif ++ ++/* ++ * Given an array of bitcmd structures, compress by compacting consecutive ++ * '+', '-' and 'X' commands into at most 3 commands, one of each. The 'u', ++ * 'g' and 'o' commands continue to be separate. They could probably be ++ * compacted, but it's not worth the effort. ++ */ ++static void ++compress_mode(set) ++ BITCMD *set; ++{ ++ BITCMD *nset; ++ int setbits, clrbits, Xbits, op; ++ ++ _DIAGASSERT(set != NULL); ++ ++ for (nset = set;;) { ++ /* Copy over any 'u', 'g' and 'o' commands. */ ++ while ((op = nset->cmd) != '+' && op != '-' && op != 'X') { ++ *set++ = *nset++; ++ if (!op) ++ return; ++ } ++ ++ for (setbits = clrbits = Xbits = 0;; nset++) { ++ if ((op = nset->cmd) == '-') { ++ clrbits |= nset->bits; ++ setbits &= ~nset->bits; ++ Xbits &= ~nset->bits; ++ } else if (op == '+') { ++ setbits |= nset->bits; ++ clrbits &= ~nset->bits; ++ Xbits &= ~nset->bits; ++ } else if (op == 'X') ++ Xbits |= nset->bits & ~setbits; ++ else ++ break; ++ } ++ if (clrbits) { ++ set->cmd = '-'; ++ set->cmd2 = 0; ++ set->bits = clrbits; ++ set++; ++ } ++ if (setbits) { ++ set->cmd = '+'; ++ set->cmd2 = 0; ++ set->bits = setbits; ++ set++; ++ } ++ if (Xbits) { ++ set->cmd = 'X'; ++ set->cmd2 = 0; ++ set->bits = Xbits; ++ set++; ++ } ++ } ++} + diff --git a/source/ap/ash/patches/ash-sighup.patch b/source/ap/ash/patches/ash-sighup.patch new file mode 100644 index 000000000..b4d1bc041 --- /dev/null +++ b/source/ap/ash/patches/ash-sighup.patch @@ -0,0 +1,18 @@ +--- ash-0.4.0/jobs.c.orig Tue Jul 3 19:10:28 2001 ++++ ash-0.4.0/jobs.c Tue Jul 3 19:12:11 2001 +@@ -712,6 +712,7 @@ + } else if (mode == FORK_BG) { + ignoresig(SIGINT); + ignoresig(SIGQUIT); ++ ignoresig(SIGHUP); + if ((jp == NULL || jp->nprocs == 0) && + ! fd0_redirected_p ()) { + close(0); +@@ -723,6 +724,7 @@ + if (mode == FORK_BG) { + ignoresig(SIGINT); + ignoresig(SIGQUIT); ++ ignoresig(SIGHUP); + if ((jp == NULL || jp->nprocs == 0) && + ! fd0_redirected_p ()) { + close(0); diff --git a/source/ap/ash/patches/ash-syntax.patch b/source/ap/ash/patches/ash-syntax.patch new file mode 100644 index 000000000..43ce78660 --- /dev/null +++ b/source/ap/ash/patches/ash-syntax.patch @@ -0,0 +1,270 @@ +diff -urN netbsd-sh/mksyntax.c ash-0.3.7.orig/mksyntax.c +--- netbsd-sh/mksyntax.c Fri Jan 12 17:50:38 2001 ++++ ash-0.3.7.orig/mksyntax.c Mon Apr 23 22:16:46 2001 +@@ -238,14 +238,14 @@ + add("$", "CVAR"); + add("}", "CENDVAR"); + /* ':/' for tilde expansion, '-' for [a\-x] pattern ranges */ +- add("!*?[=~:/-", "CCTL"); ++ add("!*?[=~:/-]", "CCTL"); + print("dqsyntax"); + init(); + fputs("\n/* syntax table used when in single quotes */\n", cfile); + add("\n", "CNL"); + add("'", "CENDQUOTE"); + /* ':/' for tilde expansion, '-' for [a\-x] pattern ranges */ +- add("!*?[=~:/-", "CCTL"); ++ add("!*?[=~:/-]\\", "CCTL"); + print("sqsyntax"); + init(); + fputs("\n/* syntax table used when in arithmetic */\n", cfile); +diff -urN netbsd-sh/parser.c ash-0.3.7.orig/parser.c +--- netbsd-sh/parser.c Fri Jan 12 17:50:39 2001 ++++ ash-0.3.7.orig/parser.c Mon Apr 23 22:16:46 2001 +@@ -221,6 +221,7 @@ + union node *n1, *n2, *n3; + int t; + ++ checkkwd = 1; + n1 = pipeline(); + for (;;) { + if ((t = readtoken()) == TAND) { +@@ -231,6 +232,7 @@ + tokpushback++; + return n1; + } ++ checkkwd = 2; + n2 = pipeline(); + n3 = (union node *)stalloc(sizeof (struct nbinary)); + n3->type = t; +@@ -250,9 +252,11 @@ + + negate = 0; + TRACE(("pipeline: entered\n")); +- while (readtoken() == TNOT) ++ if (readtoken() == TNOT) { + negate = !negate; +- tokpushback++; ++ checkkwd = 1; ++ } else ++ tokpushback++; + n1 = command(); + if (readtoken() == TPIPE) { + pipenode = (union node *)stalloc(sizeof (struct npipe)); +@@ -264,6 +268,7 @@ + do { + prev = lp; + lp = (struct nodelist *)stalloc(sizeof (struct nodelist)); ++ checkkwd = 2; + lp->n = command(); + prev->next = lp; + } while (readtoken() == TPIPE); +@@ -288,9 +293,8 @@ + union node *ap, **app; + union node *cp, **cpp; + union node *redir, **rpp; +- int t, negate = 0; ++ int t; + +- checkkwd = 2; + redir = NULL; + n1 = NULL; + rpp = &redir; +@@ -303,12 +307,6 @@ + } + tokpushback++; + +- while (readtoken() == TNOT) { +- TRACE(("command: TNOT recognized\n")); +- negate = !negate; +- } +- tokpushback++; +- + switch (readtoken()) { + case TIF: + n1 = (union node *)stalloc(sizeof (struct nif)); +@@ -417,6 +415,8 @@ + cpp = &n1->ncase.cases; + checkkwd = 2, readtoken(); + do { ++ if (lasttoken == TLP) ++ readtoken(); + *cpp = cp = (union node *)stalloc(sizeof (struct nclist)); + cp->type = NCLIST; + app = &cp->nclist.pattern; +@@ -464,21 +464,22 @@ + break; + /* Handle an empty command like other simple commands. */ + case TSEMI: ++ case TAND: ++ case TOR: ++ case TNL: ++ case TEOF: ++ case TRP: ++ case TBACKGND: + /* + * An empty command before a ; doesn't make much sense, and + * should certainly be disallowed in the case of `if ;'. + */ + if (!redir) + synexpect(-1); +- case TAND: +- case TOR: +- case TNL: +- case TEOF: + case TWORD: +- case TRP: + tokpushback++; + n1 = simplecmd(rpp, redir); +- goto checkneg; ++ return n1; + default: + synexpect(-1); + /* NOTREACHED */ +@@ -502,15 +503,7 @@ + n1->nredir.redirect = redir; + } + +-checkneg: +- if (negate) { +- n2 = (union node *)stalloc(sizeof (struct nnot)); +- n2->type = NNOT; +- n2->nnot.com = n1; +- return n2; +- } +- else +- return n1; ++ return n1; + } + + +@@ -520,8 +513,7 @@ + { + union node *args, **app; + union node **orig_rpp = rpp; +- union node *n = NULL, *n2; +- int negate = 0; ++ union node *n = NULL; + + /* If we don't have any redirections already, then we must reset */ + /* rpp to be the address of the local redir variable. */ +@@ -537,12 +529,6 @@ + */ + orig_rpp = rpp; + +- while (readtoken() == TNOT) { +- TRACE(("command: TNOT recognized\n")); +- negate = !negate; +- } +- tokpushback++; +- + for (;;) { + if (readtoken() == TWORD) { + n = (union node *)stalloc(sizeof (struct narg)); +@@ -565,8 +551,9 @@ + synerror("Bad function name"); + #endif + n->type = NDEFUN; ++ checkkwd = 2; + n->narg.next = command(); +- goto checkneg; ++ return n; + } else { + tokpushback++; + break; +@@ -579,16 +566,7 @@ + n->ncmd.backgnd = 0; + n->ncmd.args = args; + n->ncmd.redirect = redir; +- +-checkneg: +- if (negate) { +- n2 = (union node *)stalloc(sizeof (struct nnot)); +- n2->type = NNOT; +- n2->nnot.com = n; +- return n2; +- } +- else +- return n; ++ return n; + } + + STATIC union node * +@@ -743,7 +721,7 @@ + } + } + out: +- checkkwd = (t == TNOT) ? savecheckkwd : 0; ++ checkkwd = 0; + } + #ifdef DEBUG + if (!alreadyseen) +@@ -882,6 +860,7 @@ + int varnest; /* levels of variables expansion */ + int arinest; /* levels of arithmetic expansion */ + int parenlevel; /* levels of parens in arithmetic */ ++ int dqvarnest; /* levels of variables expansion within double quotes */ + int oldstyle; + char const *prevsyntax; /* syntax before arithmetic */ + #if __GNUC__ +@@ -892,6 +871,7 @@ + (void) &varnest; + (void) &arinest; + (void) &parenlevel; ++ (void) &dqvarnest; + (void) &oldstyle; + (void) &prevsyntax; + (void) &syntax; +@@ -906,6 +886,7 @@ + varnest = 0; + arinest = 0; + parenlevel = 0; ++ dqvarnest = 0; + + STARTSTACKSTR(out); + loop: { /* for each line, until end of word */ +@@ -938,7 +919,8 @@ + USTPUTC(c, out); + break; + case CCTL: +- if (eofmark == NULL || dblquote) ++ if ((eofmark == NULL || dblquote) && ++ dqvarnest == 0) + USTPUTC(CTLESC, out); + USTPUTC(c, out); + break; +@@ -983,7 +965,8 @@ + if (arinest) { + syntax = ARISYNTAX; + dblquote = 0; +- } else if (eofmark == NULL) { ++ } else if (eofmark == NULL && ++ dqvarnest == 0) { + syntax = BASESYNTAX; + dblquote = 0; + } +@@ -996,6 +979,9 @@ + case CENDVAR: /* '}' */ + if (varnest > 0) { + varnest--; ++ if (dqvarnest > 0) { ++ dqvarnest--; ++ } + USTPUTC(CTLENDVAR, out); + } else { + USTPUTC(c, out); +@@ -1260,8 +1248,12 @@ + if (dblquote || arinest) + flags |= VSQUOTE; + *(stackblock() + typeloc) = subtype | flags; +- if (subtype != VSNORMAL) ++ if (subtype != VSNORMAL) { + varnest++; ++ if (dblquote) { ++ dqvarnest++; ++ } ++ } + } + goto parsesub_return; + } + diff --git a/source/ap/ash/patches/ash-test.patch b/source/ap/ash/patches/ash-test.patch new file mode 100644 index 000000000..14c9f6802 --- /dev/null +++ b/source/ap/ash/patches/ash-test.patch @@ -0,0 +1,588 @@ +diff -urN netbsd-sh/bltin/test.c ash-0.3.7.orig/bltin/test.c +--- netbsd-sh/bltin/test.c Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/bltin/test.c Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,583 @@ ++/* $NetBSD: test.c,v 1.22 2000/04/09 23:24:59 christos Exp $ */ ++ ++/* ++ * test(1); version 7-like -- author Erik Baalbergen ++ * modified by Eric Gisin to be used as built-in. ++ * modified by Arnold Robbins to add SVR3 compatibility ++ * (-x -c -b -p -u -g -k) plus Korn's -L -nt -ot -ef and new -S (socket). ++ * modified by J.T. Conklin for NetBSD. ++ * ++ * This program is in the Public Domain. ++ */ ++ ++#include <sys/cdefs.h> ++#ifndef lint ++__RCSID("$NetBSD: test.c,v 1.22 2000/04/09 23:24:59 christos Exp $"); ++#endif ++ ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <unistd.h> ++#include <ctype.h> ++#include <errno.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#include <err.h> ++#ifdef __STDC__ ++#include <stdarg.h> ++#else ++#include <varargs.h> ++#endif ++ ++/* test(1) accepts the following grammar: ++ oexpr ::= aexpr | aexpr "-o" oexpr ; ++ aexpr ::= nexpr | nexpr "-a" aexpr ; ++ nexpr ::= primary | "!" primary ++ primary ::= unary-operator operand ++ | operand binary-operator operand ++ | operand ++ | "(" oexpr ")" ++ ; ++ unary-operator ::= "-r"|"-w"|"-x"|"-f"|"-d"|"-c"|"-b"|"-p"| ++ "-u"|"-g"|"-k"|"-s"|"-t"|"-z"|"-n"|"-o"|"-O"|"-G"|"-L"|"-S"; ++ ++ binary-operator ::= "="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"| ++ "-nt"|"-ot"|"-ef"; ++ operand ::= <any legal UNIX file name> ++*/ ++ ++enum token { ++ EOI, ++ FILRD, ++ FILWR, ++ FILEX, ++ FILEXIST, ++ FILREG, ++ FILDIR, ++ FILCDEV, ++ FILBDEV, ++ FILFIFO, ++ FILSOCK, ++ FILSYM, ++ FILGZ, ++ FILTT, ++ FILSUID, ++ FILSGID, ++ FILSTCK, ++ FILNT, ++ FILOT, ++ FILEQ, ++ FILUID, ++ FILGID, ++ STREZ, ++ STRNZ, ++ STREQ, ++ STRNE, ++ STRLT, ++ STRGT, ++ INTEQ, ++ INTNE, ++ INTGE, ++ INTGT, ++ INTLE, ++ INTLT, ++ UNOT, ++ BAND, ++ BOR, ++ LPAREN, ++ RPAREN, ++ OPERAND ++}; ++ ++enum token_types { ++ UNOP, ++ BINOP, ++ BUNOP, ++ BBINOP, ++ PAREN ++}; ++ ++static struct t_op { ++ const char *op_text; ++ short op_num, op_type; ++} const ops [] = { ++ {"-r", FILRD, UNOP}, ++ {"-w", FILWR, UNOP}, ++ {"-x", FILEX, UNOP}, ++ {"-e", FILEXIST,UNOP}, ++ {"-f", FILREG, UNOP}, ++ {"-d", FILDIR, UNOP}, ++ {"-c", FILCDEV,UNOP}, ++ {"-b", FILBDEV,UNOP}, ++ {"-p", FILFIFO,UNOP}, ++ {"-u", FILSUID,UNOP}, ++ {"-g", FILSGID,UNOP}, ++ {"-k", FILSTCK,UNOP}, ++ {"-s", FILGZ, UNOP}, ++ {"-t", FILTT, UNOP}, ++ {"-z", STREZ, UNOP}, ++ {"-n", STRNZ, UNOP}, ++ {"-h", FILSYM, UNOP}, /* for backwards compat */ ++ {"-O", FILUID, UNOP}, ++ {"-G", FILGID, UNOP}, ++ {"-L", FILSYM, UNOP}, ++ {"-S", FILSOCK,UNOP}, ++ {"=", STREQ, BINOP}, ++ {"!=", STRNE, BINOP}, ++ {"<", STRLT, BINOP}, ++ {">", STRGT, BINOP}, ++ {"-eq", INTEQ, BINOP}, ++ {"-ne", INTNE, BINOP}, ++ {"-ge", INTGE, BINOP}, ++ {"-gt", INTGT, BINOP}, ++ {"-le", INTLE, BINOP}, ++ {"-lt", INTLT, BINOP}, ++ {"-nt", FILNT, BINOP}, ++ {"-ot", FILOT, BINOP}, ++ {"-ef", FILEQ, BINOP}, ++ {"!", UNOT, BUNOP}, ++ {"-a", BAND, BBINOP}, ++ {"-o", BOR, BBINOP}, ++ {"(", LPAREN, PAREN}, ++ {")", RPAREN, PAREN}, ++ {0, 0, 0} ++}; ++ ++static char **t_wp; ++static struct t_op const *t_wp_op; ++static gid_t *group_array = NULL; ++static int ngroups; ++ ++static void syntax __P((const char *, const char *)); ++static int oexpr __P((enum token)); ++static int aexpr __P((enum token)); ++static int nexpr __P((enum token)); ++static int primary __P((enum token)); ++static int binop __P((void)); ++static int filstat __P((char *, enum token)); ++static enum token t_lex __P((char *)); ++static int isoperand __P((void)); ++static int getn __P((const char *)); ++static int newerf __P((const char *, const char *)); ++static int olderf __P((const char *, const char *)); ++static int equalf __P((const char *, const char *)); ++static int test_eaccess(); ++static int bash_group_member(); ++static void initialize_group_array(); ++ ++#if defined(SHELL) ++extern void error __P((const char *, ...)) __attribute__((__noreturn__)); ++#else ++static void error __P((const char *, ...)) __attribute__((__noreturn__)); ++ ++static void ++#ifdef __STDC__ ++error(const char *msg, ...) ++#else ++error(va_alist) ++ va_dcl ++#endif ++{ ++ va_list ap; ++#ifndef __STDC__ ++ const char *msg; ++ ++ va_start(ap); ++ msg = va_arg(ap, const char *); ++#else ++ va_start(ap, msg); ++#endif ++ verrx(2, msg, ap); ++ /*NOTREACHED*/ ++ va_end(ap); ++} ++#endif ++ ++#ifdef SHELL ++int testcmd __P((int, char **)); ++ ++int ++testcmd(argc, argv) ++ int argc; ++ char **argv; ++#else ++int main __P((int, char **)); ++ ++int ++main(argc, argv) ++ int argc; ++ char **argv; ++#endif ++{ ++ int res; ++ ++ ++ if (strcmp(argv[0], "[") == 0) { ++ if (strcmp(argv[--argc], "]")) ++ error("missing ]"); ++ argv[argc] = NULL; ++ } ++ ++ if (argc < 2) ++ return 1; ++ ++ t_wp = &argv[1]; ++ res = !oexpr(t_lex(*t_wp)); ++ ++ if (*t_wp != NULL && *++t_wp != NULL) ++ syntax(*t_wp, "unexpected operator"); ++ ++ return res; ++} ++ ++static void ++syntax(op, msg) ++ const char *op; ++ const char *msg; ++{ ++ if (op && *op) ++ error("%s: %s", op, msg); ++ else ++ error("%s", msg); ++} ++ ++static int ++oexpr(n) ++ enum token n; ++{ ++ int res; ++ ++ res = aexpr(n); ++ if (t_lex(*++t_wp) == BOR) ++ return oexpr(t_lex(*++t_wp)) || res; ++ t_wp--; ++ return res; ++} ++ ++static int ++aexpr(n) ++ enum token n; ++{ ++ int res; ++ ++ res = nexpr(n); ++ if (t_lex(*++t_wp) == BAND) ++ return aexpr(t_lex(*++t_wp)) && res; ++ t_wp--; ++ return res; ++} ++ ++static int ++nexpr(n) ++ enum token n; /* token */ ++{ ++ if (n == UNOT) ++ return !nexpr(t_lex(*++t_wp)); ++ return primary(n); ++} ++ ++static int ++primary(n) ++ enum token n; ++{ ++ enum token nn; ++ int res; ++ ++ if (n == EOI) ++ return 0; /* missing expression */ ++ if (n == LPAREN) { ++ if ((nn = t_lex(*++t_wp)) == RPAREN) ++ return 0; /* missing expression */ ++ res = oexpr(nn); ++ if (t_lex(*++t_wp) != RPAREN) ++ syntax(NULL, "closing paren expected"); ++ return res; ++ } ++ if (t_wp_op && t_wp_op->op_type == UNOP) { ++ /* unary expression */ ++ if (*++t_wp == NULL) ++ syntax(t_wp_op->op_text, "argument expected"); ++ switch (n) { ++ case STREZ: ++ return strlen(*t_wp) == 0; ++ case STRNZ: ++ return strlen(*t_wp) != 0; ++ case FILTT: ++ return isatty(getn(*t_wp)); ++ default: ++ return filstat(*t_wp, n); ++ } ++ } ++ ++ if (t_lex(t_wp[1]), t_wp_op && t_wp_op->op_type == BINOP) { ++ return binop(); ++ } ++ ++ return strlen(*t_wp) > 0; ++} ++ ++static int ++binop() ++{ ++ const char *opnd1, *opnd2; ++ struct t_op const *op; ++ ++ opnd1 = *t_wp; ++ (void) t_lex(*++t_wp); ++ op = t_wp_op; ++ ++ if ((opnd2 = *++t_wp) == (char *)0) ++ syntax(op->op_text, "argument expected"); ++ ++ switch (op->op_num) { ++ case STREQ: ++ return strcmp(opnd1, opnd2) == 0; ++ case STRNE: ++ return strcmp(opnd1, opnd2) != 0; ++ case STRLT: ++ return strcmp(opnd1, opnd2) < 0; ++ case STRGT: ++ return strcmp(opnd1, opnd2) > 0; ++ case INTEQ: ++ return getn(opnd1) == getn(opnd2); ++ case INTNE: ++ return getn(opnd1) != getn(opnd2); ++ case INTGE: ++ return getn(opnd1) >= getn(opnd2); ++ case INTGT: ++ return getn(opnd1) > getn(opnd2); ++ case INTLE: ++ return getn(opnd1) <= getn(opnd2); ++ case INTLT: ++ return getn(opnd1) < getn(opnd2); ++ case FILNT: ++ return newerf (opnd1, opnd2); ++ case FILOT: ++ return olderf (opnd1, opnd2); ++ case FILEQ: ++ return equalf (opnd1, opnd2); ++ default: ++ abort(); ++ /* NOTREACHED */ ++ } ++} ++ ++static int ++filstat(nm, mode) ++ char *nm; ++ enum token mode; ++{ ++ struct stat s; ++ ++ if (mode == FILSYM ? lstat(nm, &s) : stat(nm, &s)) ++ return 0; ++ ++ switch (mode) { ++ case FILRD: ++ return test_eaccess(nm, R_OK) == 0; ++ case FILWR: ++ return test_eaccess(nm, W_OK) == 0; ++ case FILEX: ++ return test_eaccess(nm, X_OK) == 0; ++ case FILEXIST: ++ return 1; ++ case FILREG: ++ return S_ISREG(s.st_mode); ++ case FILDIR: ++ return S_ISDIR(s.st_mode); ++ case FILCDEV: ++ return S_ISCHR(s.st_mode); ++ case FILBDEV: ++ return S_ISBLK(s.st_mode); ++ case FILFIFO: ++ return S_ISFIFO(s.st_mode); ++ case FILSOCK: ++ return S_ISSOCK(s.st_mode); ++ case FILSYM: ++ return S_ISLNK(s.st_mode); ++ case FILSUID: ++ return (s.st_mode & S_ISUID) != 0; ++ case FILSGID: ++ return (s.st_mode & S_ISGID) != 0; ++ case FILSTCK: ++ return (s.st_mode & S_ISVTX) != 0; ++ case FILGZ: ++ return s.st_size > (off_t)0; ++ case FILUID: ++ return s.st_uid == geteuid(); ++ case FILGID: ++ return s.st_gid == getegid(); ++ default: ++ return 1; ++ } ++} ++ ++static enum token ++t_lex(s) ++ char *s; ++{ ++ struct t_op const *op = ops; ++ ++ if (s == 0) { ++ t_wp_op = (struct t_op *)0; ++ return EOI; ++ } ++ while (op->op_text) { ++ if (strcmp(s, op->op_text) == 0) { ++ if ((op->op_type == UNOP && isoperand()) || ++ (op->op_num == LPAREN && *(t_wp+1) == 0)) ++ break; ++ t_wp_op = op; ++ return op->op_num; ++ } ++ op++; ++ } ++ t_wp_op = (struct t_op *)0; ++ return OPERAND; ++} ++ ++static int ++isoperand() ++{ ++ struct t_op const *op = ops; ++ char *s; ++ char *t; ++ ++ if ((s = *(t_wp+1)) == 0) ++ return 1; ++ if ((t = *(t_wp+2)) == 0) ++ return 0; ++ while (op->op_text) { ++ if (strcmp(s, op->op_text) == 0) ++ return op->op_type == BINOP && ++ (t[0] != ')' || t[1] != '\0'); ++ op++; ++ } ++ return 0; ++} ++ ++/* atoi with error detection */ ++static int ++getn(s) ++ const char *s; ++{ ++ char *p; ++ long r; ++ ++ errno = 0; ++ r = strtol(s, &p, 10); ++ ++ if (errno != 0) ++ error("%s: out of range", s); ++ ++ while (isspace((unsigned char)*p)) ++ p++; ++ ++ if (*p) ++ error("%s: bad number", s); ++ ++ return (int) r; ++} ++ ++static int ++newerf (f1, f2) ++const char *f1, *f2; ++{ ++ struct stat b1, b2; ++ ++ return (stat (f1, &b1) == 0 && ++ stat (f2, &b2) == 0 && ++ b1.st_mtime > b2.st_mtime); ++} ++ ++static int ++olderf (f1, f2) ++const char *f1, *f2; ++{ ++ struct stat b1, b2; ++ ++ return (stat (f1, &b1) == 0 && ++ stat (f2, &b2) == 0 && ++ b1.st_mtime < b2.st_mtime); ++} ++ ++static int ++equalf (f1, f2) ++const char *f1, *f2; ++{ ++ struct stat b1, b2; ++ ++ return (stat (f1, &b1) == 0 && ++ stat (f2, &b2) == 0 && ++ b1.st_dev == b2.st_dev && ++ b1.st_ino == b2.st_ino); ++} ++ ++/* Do the same thing access(2) does, but use the effective uid and gid, ++ and don't make the mistake of telling root that any file is ++ executable. */ ++static int ++test_eaccess (path, mode) ++char *path; ++int mode; ++{ ++ struct stat st; ++ int euid = geteuid(); ++ ++ if (stat (path, &st) < 0) ++ return (-1); ++ ++ if (euid == 0) { ++ /* Root can read or write any file. */ ++ if (mode != X_OK) ++ return (0); ++ ++ /* Root can execute any file that has any one of the execute ++ bits set. */ ++ if (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) ++ return (0); ++ } ++ ++ if (st.st_uid == euid) /* owner */ ++ mode <<= 6; ++ else if (bash_group_member (st.st_gid)) ++ mode <<= 3; ++ ++ if (st.st_mode & mode) ++ return (0); ++ ++ return (-1); ++} ++ ++static void ++initialize_group_array () ++{ ++ ngroups = getgroups(0, NULL); ++ group_array = malloc(ngroups * sizeof(gid_t)); ++ if (!group_array) ++ error(strerror(ENOMEM)); ++ getgroups(ngroups, group_array); ++} ++ ++/* Return non-zero if GID is one that we have in our groups list. */ ++static int ++bash_group_member (gid) ++gid_t gid; ++{ ++ register int i; ++ ++ /* Short-circuit if possible, maybe saving a call to getgroups(). */ ++ if (gid == getgid() || gid == getegid()) ++ return (1); ++ ++ if (ngroups == 0) ++ initialize_group_array (); ++ ++ /* Search through the list looking for GID. */ ++ for (i = 0; i < ngroups; i++) ++ if (gid == group_array[i]) ++ return (1); ++ ++ return (0); ++} + diff --git a/source/ap/ash/patches/ash-times.patch b/source/ap/ash/patches/ash-times.patch new file mode 100644 index 000000000..4c24f9a66 --- /dev/null +++ b/source/ap/ash/patches/ash-times.patch @@ -0,0 +1,42 @@ +diff -urN netbsd-sh/bltin/times.c ash-0.3.7.orig/bltin/times.c +--- netbsd-sh/bltin/times.c Thu Jan 1 01:00:00 1970 ++++ ash-0.3.7.orig/bltin/times.c Mon Apr 23 22:16:46 2001 +@@ -0,0 +1,30 @@ ++#ifdef _GNU_SOURCE ++/* ++ * Copyright (c) 1999 Herbert Xu <herbert@debian.org> ++ * This file contains code for the times builtin. ++ * $Id: times.c,v 1.4 2000/04/01 09:23:02 herbert Exp $ ++ */ ++ ++#include <stdio.h> ++#include <sys/times.h> ++#include <unistd.h> ++ ++#define main timescmd ++ ++int main() { ++ struct tms buf; ++ long int clk_tck = sysconf(_SC_CLK_TCK); ++ ++ times(&buf); ++ printf("%dm%fs %dm%fs\n%dm%fs %dm%fs\n", ++ (int) (buf.tms_utime / clk_tck / 60), ++ ((double) buf.tms_utime) / clk_tck, ++ (int) (buf.tms_stime / clk_tck / 60), ++ ((double) buf.tms_stime) / clk_tck, ++ (int) (buf.tms_cutime / clk_tck / 60), ++ ((double) buf.tms_cutime) / clk_tck, ++ (int) (buf.tms_cstime / clk_tck / 60), ++ ((double) buf.tms_cstime) / clk_tck); ++ return 0; ++} ++#endif /* _GNU_SOURCE */ +diff -urN netbsd-sh/builtins.def ash-0.3.7.orig/builtins.def +--- netbsd-sh/builtins.def Mon Apr 10 13:02:58 2000 ++++ ash-0.3.7.orig/builtins.def Mon Apr 23 22:16:46 2001 +@@ -91,3 +93,4 @@ + aliascmd alias + ulimitcmd ulimit + testcmd test [ ++timescmd times diff --git a/source/ap/ash/slack-desc b/source/ap/ash/slack-desc new file mode 100644 index 000000000..e8d2c9c29 --- /dev/null +++ b/source/ap/ash/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ash: ash (Kenneth Almquist's ash shell) +ash: +ash: A lightweight (92K) Bourne compatible shell. Great for machines with +ash: low memory, but does not provide all the extras of shells like bash, +ash: tcsh, and zsh. Runs most shell scripts compatible with the Bourne +ash: shell. Note that under Linux, most scripts seem to use at least some +ash: bash-specific syntax. The Slackware setup scripts are a notable +ash: exception, since ash is the shell used on the install disks. NetBSD +ash: uses ash as its /bin/sh. +ash: +ash: diff --git a/source/ap/at/at.SlackBuild b/source/ap/at/at.SlackBuild new file mode 100755 index 000000000..2751bfc9e --- /dev/null +++ b/source/ap/at/at.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-3.1.10} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-at + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf at-$VERSION +tar xvf $CWD/at-${VERSION}.tar.bz2 || exit 1 +cd at-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Or else /var/spool/cron will be used: +mkdir -p /var/spool/at{jobs,spool} +chmod 770 /var/spool/at{jobs,spool} +chown daemon:daemon /var/spool/at{jobs,spool} + +CFLAGS="$SLKCFLAGS" \ +./configure \ + $ARCH-slackware-linux + +# Does not like parallel builds: +make || exit 1 +make install IROOT=$PKG || exit + +mv $PKG/etc/at.deny $PKG/etc/at.deny.new +chown root:root $PKG/var $PKG/var/spool + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +rm -rf $PKG/usr/doc/at +mkdir -p $PKG/usr/doc/at-$VERSION +cp -a \ + COPYING ChangeLog debian/copyright Problems README timespec \ + $PKG/usr/doc/at-$VERSION +mv $PKG/usr/doc/at-$VERSION/copyright $PKG/usr/doc/at-$VERSION/Copyright +chmod 644 $PKG/usr/doc/at-$VERSION/Copyright + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/at-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/at/doinst.sh b/source/ap/at/doinst.sh new file mode 100644 index 000000000..555d8319b --- /dev/null +++ b/source/ap/at/doinst.sh @@ -0,0 +1,30 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/at.deny.new +if [ ! -r var/spool/atjobs/.SEQ ]; then + touch var/spool/atjobs/.SEQ + chmod 660 var/spool/atjobs/.SEQ + chown daemon.daemon var/spool/atjobs/.SEQ +fi +( cd usr/bin ; rm -rf atq ) +( cd usr/bin ; ln -sf at atq ) +( cd usr/bin ; rm -rf atrm ) +( cd usr/bin ; ln -sf at atrm ) +( cd usr/man/man1 ; rm -rf atq.1.gz ) +( cd usr/man/man1 ; ln -sf at.1.gz atq.1.gz ) +( cd usr/man/man1 ; rm -rf atrm.1.gz ) +( cd usr/man/man1 ; ln -sf at.1.gz atrm.1.gz ) +( cd usr/man/man1 ; rm -rf batch.1.gz ) +( cd usr/man/man1 ; ln -sf at.1.gz batch.1.gz ) +( cd usr/man/man5 ; rm -rf at_deny.5.gz ) +( cd usr/man/man5 ; ln -sf at_allow.5.gz at_deny.5.gz ) diff --git a/source/ap/at/slack-desc b/source/ap/at/slack-desc new file mode 100644 index 000000000..ba276df62 --- /dev/null +++ b/source/ap/at/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +at: at (delayed command execution) +at: +at: at and batch read shell commands from standard input (or a specified +at: file) storing them as a job to be scheduled for execution at a later +at: time. +at: +at: The 'at' command was written by David Parsons and Thomas Koenig. +at: +at: +at: +at: diff --git a/source/ap/aumix/aumix.SlackBuild b/source/ap/aumix/aumix.SlackBuild new file mode 100755 index 000000000..7261ba64e --- /dev/null +++ b/source/ap/aumix/aumix.SlackBuild @@ -0,0 +1,66 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-aumix + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf aumix-$VERSION +tar xjvf $CWD/aumix-$VERSION.tar.bz2 +cd aumix-$VERSION +zcat $CWD/aumix.alsa.diff.gz | patch -p1 --verbose --backup --suffix=.orig +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --without-gtk1 +make || exit 1 +make install DESTDIR=$PKG +strip $PKG/usr/bin/* +mkdir -p $PKG/usr/doc/aumix-$VERSION +cp -a \ + ABOUT-NLS AUTHORS BUGS COPYING INSTALL NEWS README TODO \ + $PKG/usr/doc/aumix-$VERSION +# This is obsolete (besides being broken) +rm -f $PKG/usr/bin/xaumix $PKG/usr/man/man1/xaumix.1 +# More fluff, doesn't deserve mainsteam placement +mv $PKG/usr/bin/mute $PKG/usr/doc/aumix-$VERSION/mute.sh +gzip -9 $PKG/usr/man/man1/* +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/aumix-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/aumix/aumix.alsa.diff b/source/ap/aumix/aumix.alsa.diff new file mode 100644 index 000000000..6d632cf5f --- /dev/null +++ b/source/ap/aumix/aumix.alsa.diff @@ -0,0 +1,34 @@ +--- ./src/common.h.orig 2002-10-29 13:27:51.000000000 -0800 ++++ ./src/common.h 2003-08-28 23:16:53.000000000 -0700 +@@ -55,7 +55,7 @@ + #endif /* HAVE_SYS_SOUNDCARD_H */ + + #ifdef HAVE_ALSA +-#include <sys/asoundlib.h> ++#include <alsa/asoundlib.h> + #endif /* HAVE_ALSA */ + #define MAXLEVEL 100 /* highest level permitted by OSS drivers */ + enum { +--- ./configure.orig 2002-11-24 17:35:48.000000000 -0800 ++++ ./configure 2003-08-28 23:14:46.000000000 -0700 +@@ -1890,16 +1890,16 @@ + fi + + if test $alsa_must = on; then +- ac_safe=`echo "sys/asoundlib.h" | sed 'y%./+-%__p_%'` +-echo $ac_n "checking for sys/asoundlib.h""... $ac_c" 1>&6 +-echo "configure:1896: checking for sys/asoundlib.h" >&5 ++ ac_safe=`echo "alsa/asoundlib.h" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for alsa/asoundlib.h""... $ac_c" 1>&6 ++echo "configure:1896: checking for alsa/asoundlib.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF + #line 1901 "configure" + #include "confdefs.h" +-#include <sys/asoundlib.h> ++#include <alsa/asoundlib.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" + { (eval echo configure:1906: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } diff --git a/source/ap/aumix/slack-desc b/source/ap/aumix/slack-desc new file mode 100644 index 000000000..70e780877 --- /dev/null +++ b/source/ap/aumix/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +aumix: aumix (GTK+/ncurses audio mixer) +aumix: +aumix: This is a program for adjusting audio mixers from the command line or +aumix: scripts, or interactively at the console or a terminal with a +aumix: full-screen, ncurses-based interface or a GTK-based X interface. +aumix: +aumix: +aumix: +aumix: +aumix: +aumix: diff --git a/source/ap/bc/bc.SlackBuild b/source/ap/bc/bc.SlackBuild new file mode 100755 index 000000000..a8ebb8ebc --- /dev/null +++ b/source/ap/bc/bc.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=bc +VERSION=${VERSION:-1.06.95} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --with-readline \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING COPYING.LIB Examples FAQ INSTALL NEWS README Test \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/bc/slack-desc b/source/ap/bc/slack-desc new file mode 100644 index 000000000..765f6d824 --- /dev/null +++ b/source/ap/bc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bc: bc (An arbitrary precision calculator language) +bc: +bc: bc is an arbitrary precision numeric processing language. Syntax is +bc: similar to C, but differs in many substantial areas. It supports +bc: interactive execution of statements. bc is a utility included in the +bc: POSIX P1003.2/D11 draft standard. +bc: +bc: The GNU version of bc was written by Philip A. Nelson. +bc: +bc: +bc: diff --git a/source/ap/bpe/bpe.SlackBuild b/source/ap/bpe/bpe.SlackBuild new file mode 100755 index 000000000..44fde4c8f --- /dev/null +++ b/source/ap/bpe/bpe.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.01.00 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bpe + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf bpe-$VERSION +tar xzvf $CWD/bpe-$VERSION.tar.gz +cd bpe-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr +make +make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/usr/doc/bpe-$VERSION +cp -a \ + HISTORY LICENSE README-bpe \ + $PKG/usr/doc/bpe-$VERSION +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/bpe-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/bpe/slack-desc b/source/ap/bpe/slack-desc new file mode 100644 index 000000000..7c2de23c7 --- /dev/null +++ b/source/ap/bpe/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bpe: bpe (Binary Patch Editor) +bpe: +bpe: bpe is a simple, screen-oriented editor for searching and editing +bpe: ordinary files in either ASCII or hexadecimal modes. +bpe: +bpe: bpe was written by Andreas Pleschutznig. Bill Davidsen contributed +bpe: additional features, as did Ralphe Neill (the current maintainer). +bpe: +bpe: +bpe: +bpe: diff --git a/source/ap/cdparanoia/cdparanoia-III-10.2_cdda_private.patch b/source/ap/cdparanoia/cdparanoia-III-10.2_cdda_private.patch new file mode 100644 index 000000000..9181218f4 --- /dev/null +++ b/source/ap/cdparanoia/cdparanoia-III-10.2_cdda_private.patch @@ -0,0 +1,481 @@ +Index: /trunk/cdparanoia/interface/test_interface.c +=================================================================== +--- /trunk/cdparanoia/interface/test_interface.c (revision 15299) ++++ /trunk/cdparanoia/interface/test_interface.c (revision 15338) +@@ -67,7 +67,7 @@ + + if(begin<lastread) +- d->private->last_milliseconds=20; ++ d->private_data->last_milliseconds=20; + else +- d->private->last_milliseconds=sectors; ++ d->private_data->last_milliseconds=sectors; + + #ifdef CDDA_TEST_UNDERRUN +Index: /trunk/cdparanoia/interface/cdda_interface.h +=================================================================== +--- /trunk/cdparanoia/interface/cdda_interface.h (revision 15290) ++++ /trunk/cdparanoia/interface/cdda_interface.h (revision 15338) +@@ -85,5 +85,5 @@ + int is_mmc; + +- cdda_private_data_t *private; ++ cdda_private_data_t *private_data; + void *reserved; + unsigned char inqbytes[4]; +Index: /trunk/cdparanoia/interface/interface.c +=================================================================== +--- /trunk/cdparanoia/interface/interface.c (revision 15314) ++++ /trunk/cdparanoia/interface/interface.c (revision 15338) +@@ -40,7 +40,7 @@ + if(d->cdda_fd!=-1)close(d->cdda_fd); + if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd); +- if(d->private){ +- if(d->private->sg_hd)free(d->private->sg_hd); +- free(d->private); ++ if(d->private_data){ ++ if(d->private_data->sg_hd)free(d->private_data->sg_hd); ++ free(d->private_data); + } + +@@ -128,5 +128,5 @@ + } + } +- if(ms)*ms=d->private->last_milliseconds; ++ if(ms)*ms=d->private_data->last_milliseconds; + return(sectors); + } +Index: /trunk/cdparanoia/interface/scsi_interface.c +=================================================================== +--- /trunk/cdparanoia/interface/scsi_interface.c (revision 15314) ++++ /trunk/cdparanoia/interface/scsi_interface.c (revision 15338) +@@ -16,11 +16,11 @@ + struct timespec tv1; + struct timespec tv2; +- int ret1=clock_gettime(d->private->clock,&tv1); ++ int ret1=clock_gettime(d->private_data->clock,&tv1); + int ret2=ioctl(fd, command,arg); +- int ret3=clock_gettime(d->private->clock,&tv2); ++ int ret3=clock_gettime(d->private_data->clock,&tv2); + if(ret1<0 || ret3<0){ +- d->private->last_milliseconds=-1; ++ d->private_data->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; ++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; + } + return ret2; +@@ -97,5 +97,5 @@ + fd_set fdset; + struct timeval tv; +- struct sg_header *sg_hd=d->private->sg_hd; ++ struct sg_header *sg_hd=d->private_data->sg_hd; + int flag=0; + +@@ -186,5 +186,5 @@ + int tret1,tret2; + int status = 0; +- struct sg_header *sg_hd=d->private->sg_hd; ++ struct sg_header *sg_hd=d->private_data->sg_hd; + long writebytes=SG_OFF+cmd_len+in_size; + +@@ -196,5 +196,5 @@ + memset(sg_hd,0,sizeof(sg_hd)); + memset(sense_buffer,0,SG_MAX_SENSE); +- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size); ++ memcpy(d->private_data->sg_buffer,cmd,cmd_len+in_size); + sg_hd->twelve_byte = cmd_len == 12; + sg_hd->result = 0; +@@ -210,5 +210,5 @@ + + if(bytecheck && out_size>in_size){ +- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); ++ memset(d->private_data->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); + /* the size does not remove cmd_len due to the way the kernel + driver copies buffers */ +@@ -244,5 +244,5 @@ + + sigprocmask (SIG_BLOCK, &(d->sigset), NULL ); +- tret1=clock_gettime(d->private->clock,&tv1); ++ tret1=clock_gettime(d->private_data->clock,&tv1); + errno=0; + status = write(d->cdda_fd, sg_hd, writebytes ); +@@ -290,5 +290,5 @@ + } + +- tret2=clock_gettime(d->private->clock,&tv2); ++ tret2=clock_gettime(d->private_data->clock,&tv2); + errno=0; + status = read(d->cdda_fd, sg_hd, SG_OFF + out_size); +@@ -314,5 +314,5 @@ + long i,flag=0; + for(i=in_size;i<out_size;i++) +- if(d->private->sg_buffer[i]!=bytefill){ ++ if(d->private_data->sg_buffer[i]!=bytefill){ + flag=1; + break; +@@ -327,7 +327,7 @@ + errno=0; + if(tret1<0 || tret2<0){ +- d->private->last_milliseconds=-1; ++ d->private_data->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; ++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; + } + return(0); +@@ -348,5 +348,5 @@ + memset(&hdr,0,sizeof(hdr)); + memset(sense,0,sizeof(sense)); +- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size); ++ memcpy(d->private_data->sg_buffer,cmd+cmd_len,in_size); + + hdr.cmdp = cmd; +@@ -356,5 +356,5 @@ + hdr.timeout = 50000; + hdr.interface_id = 'S'; +- hdr.dxferp = d->private->sg_buffer; ++ hdr.dxferp = d->private_data->sg_buffer; + hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */ + +@@ -401,5 +401,5 @@ + long i,flag=0; + for(i=in_size;i<out_size;i++) +- if(d->private->sg_buffer[i]!=bytefill){ ++ if(d->private_data->sg_buffer[i]!=bytefill){ + flag=1; + break; +@@ -413,5 +413,5 @@ + + /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */ +- /* d->private->last_milliseconds = hdr.duration; */ ++ /* d->private_data->last_milliseconds = hdr.duration; */ + + errno = 0; +@@ -446,7 +446,7 @@ + handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense); + +- key = d->private->sg_buffer[2] & 0xf; +- ASC = d->private->sg_buffer[12]; +- ASCQ = d->private->sg_buffer[13]; ++ key = d->private_data->sg_buffer[2] & 0xf; ++ ASC = d->private_data->sg_buffer[12]; ++ ASCQ = d->private_data->sg_buffer[13]; + + if(key == 2 && ASC == 4 && ASCQ == 1) return 0; +@@ -493,5 +493,5 @@ + + { +- unsigned char *b=d->private->sg_buffer; ++ unsigned char *b=d->private_data->sg_buffer; + if(b[0])return(1); /* Handles only up to 256 bytes */ + if(b[6])return(1); /* Handles only up to 256 bytes */ +@@ -605,6 +605,6 @@ + if(mode_sense(d,12,0x01))return(-1); + +- d->orgdens = d->private->sg_buffer[4]; +- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]); ++ d->orgdens = d->private_data->sg_buffer[4]; ++ return(d->orgsize = ((int)(d->private_data->sg_buffer[10])<<8)+d->private_data->sg_buffer[11]); + } + +@@ -665,6 +665,6 @@ + } + +- first=d->private->sg_buffer[2]; +- last=d->private->sg_buffer[3]; ++ first=d->private_data->sg_buffer[2]; ++ last=d->private_data->sg_buffer[3]; + tracks=last-first+1; + +@@ -684,5 +684,5 @@ + } + { +- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); ++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4); + + d->disc_toc[i-first].bFlags=toc->bFlags; +@@ -705,5 +705,5 @@ + } + { +- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); ++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4); + + d->disc_toc[i-first].bFlags=toc->bFlags; +@@ -739,5 +739,5 @@ + + /* copy to our structure and convert start sector */ +- tracks = d->private->sg_buffer[1]; ++ tracks = d->private_data->sg_buffer[1]; + if (tracks > MAXTRK) { + cderror(d,"003: CDROM reporting illegal number of tracks\n"); +@@ -755,31 +755,31 @@ + } + +- d->disc_toc[i].bFlags = d->private->sg_buffer[10]; ++ d->disc_toc[i].bFlags = d->private_data->sg_buffer[10]; + d->disc_toc[i].bTrack = i + 1; + + d->disc_toc[i].dwStartSector= d->adjust_ssize * +- (((signed char)(d->private->sg_buffer[2])<<24) | +- (d->private->sg_buffer[3]<<16)| +- (d->private->sg_buffer[4]<<8)| +- (d->private->sg_buffer[5])); ++ (((signed char)(d->private_data->sg_buffer[2])<<24) | ++ (d->private_data->sg_buffer[3]<<16)| ++ (d->private_data->sg_buffer[4]<<8)| ++ (d->private_data->sg_buffer[5])); + } + + d->disc_toc[i].bFlags = 0; + d->disc_toc[i].bTrack = i + 1; +- memcpy (&foo, d->private->sg_buffer+2, 4); +- memcpy (&bar, d->private->sg_buffer+6, 4); ++ memcpy (&foo, d->private_data->sg_buffer+2, 4); ++ memcpy (&bar, d->private_data->sg_buffer+6, 4); + d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) + + be32_to_cpu(bar)); + + d->disc_toc[i].dwStartSector= d->adjust_ssize * +- ((((signed char)(d->private->sg_buffer[2])<<24) | +- (d->private->sg_buffer[3]<<16)| +- (d->private->sg_buffer[4]<<8)| +- (d->private->sg_buffer[5]))+ ++ ((((signed char)(d->private_data->sg_buffer[2])<<24) | ++ (d->private_data->sg_buffer[3]<<16)| ++ (d->private_data->sg_buffer[4]<<8)| ++ (d->private_data->sg_buffer[5]))+ + +- ((((signed char)(d->private->sg_buffer[6])<<24) | +- (d->private->sg_buffer[7]<<16)| +- (d->private->sg_buffer[8]<<8)| +- (d->private->sg_buffer[9])))); ++ ((((signed char)(d->private_data->sg_buffer[6])<<24) | ++ (d->private_data->sg_buffer[7]<<16)| ++ (d->private_data->sg_buffer[8]<<8)| ++ (d->private_data->sg_buffer[9])))); + + +@@ -818,5 +818,5 @@ + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -837,5 +837,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -855,5 +855,5 @@ + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -873,5 +873,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -891,5 +891,5 @@ + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -909,5 +909,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -923,5 +923,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -937,5 +937,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -951,5 +951,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -965,5 +965,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -979,5 +979,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -993,5 +993,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -1027,5 +1027,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -1040,5 +1040,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -1053,5 +1053,5 @@ + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } +@@ -1276,5 +1276,5 @@ + long i; + for(i=2351;i>=0;i--) +- if(d->private->sg_buffer[i]!=(unsigned char)'\177') ++ if(d->private_data->sg_buffer[i]!=(unsigned char)'\177') + return(((i+3)>>2)<<2); + +@@ -1285,5 +1285,5 @@ + long i,flag=0; + for(i=0;i<2352;i++) +- if(d->private->sg_buffer[i]!=0){ ++ if(d->private_data->sg_buffer[i]!=0){ + flag=1; + break; +@@ -1622,5 +1622,5 @@ + if(mode_sense(d,22,0x2A)==0){ + +- b=d->private->sg_buffer; ++ b=d->private_data->sg_buffer; + b+=b[3]+4; + +@@ -1670,5 +1670,5 @@ + return(NULL); + } +- return (d->private->sg_buffer); ++ return (d->private_data->sg_buffer); + } + +@@ -1726,6 +1726,6 @@ + + d->error_retry=1; +- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); +- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; ++ d->private_data->sg_hd=realloc(d->private_data->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); ++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF; + d->report_all=1; + return(0); +Index: /trunk/cdparanoia/interface/cooked_interface.c +=================================================================== +--- /trunk/cdparanoia/interface/cooked_interface.c (revision 15202) ++++ /trunk/cdparanoia/interface/cooked_interface.c (revision 15338) +@@ -14,11 +14,11 @@ + struct timespec tv1; + struct timespec tv2; +- int ret1=clock_gettime(d->private->clock,&tv1); ++ int ret1=clock_gettime(d->private_data->clock,&tv1); + int ret2=ioctl(fd, command,arg); +- int ret3=clock_gettime(d->private->clock,&tv2); ++ int ret3=clock_gettime(d->private_data->clock,&tv2); + if(ret1<0 || ret3<0){ +- d->private->last_milliseconds=-1; ++ d->private_data->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; ++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; + } + return ret2; +Index: /trunk/cdparanoia/interface/scan_devices.c +=================================================================== +--- /trunk/cdparanoia/interface/scan_devices.c (revision 15202) ++++ /trunk/cdparanoia/interface/scan_devices.c (revision 15338) +@@ -265,9 +265,9 @@ + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; +- d->private=calloc(1,sizeof(*d->private)); ++ d->private_data=calloc(1,sizeof(*d->private_data)); + { + /* goddamnit */ + struct timespec tv; +- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); ++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); + } + idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description); +@@ -675,13 +675,13 @@ + d->nsectors=-1; + d->messagedest = messagedest; +- d->private=calloc(1,sizeof(*d->private)); ++ d->private_data=calloc(1,sizeof(*d->private_data)); + { + /* goddamnit */ + struct timespec tv; +- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); ++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); + } + if(use_sgio){ + d->interface=SGIO_SCSI; +- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); ++ d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); + g_fd=d->cdda_fd=dup(d->ioctl_fd); + }else{ +@@ -697,6 +697,6 @@ + + /* malloc our big buffer for scsi commands */ +- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE); +- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; ++ d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE); ++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF; + } + +@@ -773,7 +773,7 @@ + if(g_fd!=-1)close(g_fd); + if(d){ +- if(d->private){ +- if(d->private->sg_hd)free(d->private->sg_hd); +- free(d->private); ++ if(d->private_data){ ++ if(d->private_data->sg_hd)free(d->private_data->sg_hd); ++ free(d->private_data); + } + free(d); +@@ -822,5 +822,5 @@ + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; +- d->private=calloc(1,sizeof(*d->private)); ++ d->private_data=calloc(1,sizeof(*d->private_data)); + d->drive_model=copystring("File based test interface"); + idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model); + diff --git a/source/ap/cdparanoia/cdparanoia.SlackBuild b/source/ap/cdparanoia/cdparanoia.SlackBuild new file mode 100755 index 000000000..200fc6bbe --- /dev/null +++ b/source/ap/cdparanoia/cdparanoia.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=III-10.2 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cdparanoia + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf cdparanoia-${VERSION} +tar xvf $CWD/cdparanoia-$VERSION.src.tar.gz || exit 1 +cd cdparanoia-$VERSION || exit 1 +# Patch for changes in cdda headers: +zcat $CWD/cdparanoia-III-10.2_cdda_private.patch.gz | patch -p3 --verbose --backup --suffix=.orig || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +OPT="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --includedir=/usr/include/cdda \ + --build=$ARCH-slackware-linux + +make $NUMJOBS OPT="$SLKCFLAGS" || make OPT="$SLKCFLAGS" || exit 1 + +# Manual install: +install -d $PKG/usr/bin +install -d $PKG/usr/include/cdda +install -d $PKG/usr/lib${LIBDIRSUFFIX} +install -d $PKG/usr/man/man1 +install -m 0755 cdparanoia $PKG/usr/bin/ +install -m 0644 cdparanoia.1 $PKG/usr/man/man1/ +install -m 0644 utils.h paranoia/cdda_paranoia.h interface/cdda_interface.h \ + $PKG/usr/include/cdda/ +install -m 0755 paranoia/libcdda_paranoia.so.0.10.? \ + interface/libcdda_interface.so.0.10.? \ + $PKG/usr/lib${LIBDIRSUFFIX}/ +install -m 0644 paranoia/libcdda_paranoia.a interface/libcdda_interface.a \ + $PKG/usr/lib${LIBDIRSUFFIX}/ + +ldconfig -n $PKG/usr/lib${LIBDIRSUFFIX} + +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf libcdda_paranoia.so.0.10.? libcdda_paranoia.so + ln -sf libcdda_interface.so.0.10.? libcdda_interface.so +) + +mkdir -p $PKG/usr/man/jp/man1 +cp -a cdparanoia.1.jp $PKG/usr/man/jp/man1/cdparanoia.1 + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/cdparanoia-$VERSION +cp -a \ + FAQ.txt GPL* COPYING* README* \ + $PKG/usr/doc/cdparanoia-$VERSION +chown -R root:root $PKG/usr/doc/cdparanoia-$VERSION +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libcdda*.so + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/cdparanoia-$(echo $VERSION | tr '-' '_')-$ARCH-$BUILD.txz + diff --git a/source/ap/cdparanoia/slack-desc b/source/ap/cdparanoia/slack-desc new file mode 100644 index 000000000..0c3057ed7 --- /dev/null +++ b/source/ap/cdparanoia/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cdparanoia: cdparanoia (digital audio extraction tool) +cdparanoia: +cdparanoia: cdparanoia is a Compact Disc Digital Audio (CDDA) extraction tool, +cdparanoia: commonly known on the net as a 'ripper'. It reads digital audio data +cdparanoia: from a Compact Disc and saves it to sound files. cdparanoia has been +cdparanoia: designed to read correct audio data even using cheap CD-ROM drives +cdparanoia: prone to misalignment, frame jitter and loss of streaming. +cdparanoia: cdparanoia will also read and repair data from CDs that have been +cdparanoia: damaged in some way. +cdparanoia: +cdparanoia: diff --git a/source/ap/cdrdao/cdrdao.SlackBuild b/source/ap/cdrdao/cdrdao.SlackBuild new file mode 100755 index 000000000..fccf3ab83 --- /dev/null +++ b/source/ap/cdrdao/cdrdao.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.1 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cdrdao + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf cdrdao-$VERSION +tar xvf $CWD/cdrdao-$VERSION.tar.bz2 || exit 1 +cd cdrdao-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +gzip -9 $PKG/usr/man/man1/*.? + +mkdir -p $PKG/usr/doc/cdrdao-$VERSION +cp -a \ + AUTHORS COPYING CREDITS INSTALL NEWS README* \ + cdrdao.lsm \ + contrib \ + $PKG/usr/doc/cdrdao-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/cdrdao-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/cdrdao/slack-desc b/source/ap/cdrdao/slack-desc new file mode 100644 index 000000000..e3c037fed --- /dev/null +++ b/source/ap/cdrdao/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cdrdao: cdrdao (CD burning utility) +cdrdao: +cdrdao: cdrdao burns proper disc-at-once (DAO) audio discs. In DAO mode the +cdrdao: disc is written in one shot, so you don't have to have irritating 2 +cdrdao: second gaps interrupting a live recording. +cdrdao: +cdrdao: +cdrdao: +cdrdao: +cdrdao: +cdrdao: diff --git a/source/ap/cdrtools/cdrtools.SlackBuild b/source/ap/cdrtools/cdrtools.SlackBuild new file mode 100755 index 000000000..49aa08c08 --- /dev/null +++ b/source/ap/cdrtools/cdrtools.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.01.01a57 +ZISOFSTOOLS=1.0.8 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cdrtools + +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf cdrtools-$(echo $VERSION | cut -f 1 -d a) +tar xvf $CWD/cdrtools-$VERSION.tar.bz2 || exit 1 +cd cdrtools-$(echo $VERSION | cut -f 1 -d a) || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +INS_BASE=/usr make -e $NUMJOBS || exit 1 +# Without this second run, cdda2wav is skipped... +INS_BASE=/usr make -e || exit 1 +INS_BASE=$PKG/usr make -e install || exit 1 + +# Remove dupes: +rm -rf $PKG/usr/share/doc +rmdir $PKG/usr/share + +# I don't know why this couldn't be "/etc/cdrtools" or something, but since +# getty uses it already I'm not going to argue the point. +mkdir -p $PKG/etc/default +cat cdrecord/cdrecord.dfl > $PKG/etc/default/cdrecord.new +cat rscsi/rscsi.dfl > $PKG/etc/default/rscsi.new + +mkdir -p $PKG/usr/doc/cdrtools-$VERSION +cp -a \ + ABOUT AN-* BUILD CDDL* COMPILE CONTRIBUTING COPYING* Changelog \ + *GPL* INSTALL README* START \ + $PKG/usr/doc/cdrtools-$VERSION +chown -R root:root $PKG/usr/doc/cdrtools-$VERSION/* +find $PKG/usr/doc/cdrtools-$VERSION -type f -exec chmod 644 {} \; + +( + cd mkisofs + mkdir -p $PKG/usr/doc/cdrtools-$VERSION/mkisofs + cp -a \ + COPYING* ChangeLog* README* RELEASE TODO \ + $PKG/usr/doc/cdrtools-$VERSION/mkisofs + chown root:root $PKG/usr/doc/cdrtools-$VERSION/mkisofs/* + chmod 644 $PKG/usr/doc/cdrtools-$VERSION/mkisofs/* +) +( + cd cdda2wav + mkdir -p $PKG/usr/doc/cdrtools-$VERSION/cdda2wav + cp -a \ + Changelog FAQ Frontends HOWTOUSE NEEDED OtherProgs README THANKS TODO \ + $PKG/usr/doc/cdrtools-$VERSION/cdda2wav + chown root:root $PKG/usr/doc/cdrtools-$VERSION/cdda2wav/* + chmod 644 $PKG/usr/doc/cdrtools-$VERSION/cdda2wav/* +) + +# These don't need to be in the package, IMHO. +rm -rf $PKG/usr/include $PKG/usr/man/man5 $PKG/usr/man/man1/cdda2ogg.1 $PKG/usr/lib/profiled $PKG/usr/lib/*.a + +# Fix permissions: +cd $PKG +find . -type d -exec chmod 755 {} \; +chown root:root -R $PKG +find $PKG/usr/man -type f -exec chmod 644 {} \; +find $PKG/usr/man -type f -exec gzip -9 {} \; +chmod 755 $PKG/usr/bin/* + +( cd $PKG/usr/bin ; ln -sf mkisofs mkhybrid ) + +# Next big hole? ;) +rm -r $PKG/usr/sbin +rm -f $PKG/usr/doc/cdrtools-$VERSION/README.rscsi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Add the mkzftree tool for zisofs: +cd $TMP +rm -rf zisofs-tools-$ZISOFSTOOLS +tar xf $CWD/zisofs-tools-$ZISOFSTOOLS.tar.bz2 || exit 1 +cd zisofs-tools-$ZISOFSTOOLS +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +./configure --prefix=/usr +make $NUMJOBS || make || exit 1 +cat mkzftree > $PKG/usr/bin/mkzftree +chmod 755 $PKG/usr/bin/mkzftree +cat mkzftree.1 | gzip -9c > $PKG/usr/man/man1/mkzftree.1.gz +mkdir -p $PKG/usr/doc/zisofs-tools-$ZISOFSTOOLS +cp -a \ + CHANGES COPYING INSTALL README zisofs.magic \ + $PKG/usr/doc/zisofs-tools-$ZISOFSTOOLS + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cd $PKG +/sbin/makepkg -l y -c n $TMP/cdrtools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/cdrtools/doinst.sh b/source/ap/cdrtools/doinst.sh new file mode 100644 index 000000000..78d62faa9 --- /dev/null +++ b/source/ap/cdrtools/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/default/cdrecord.new +config etc/default/rscsi.new diff --git a/source/ap/cdrtools/slack-desc b/source/ap/cdrtools/slack-desc new file mode 100644 index 000000000..b858d4f63 --- /dev/null +++ b/source/ap/cdrtools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cdrtools: cdrtools (CD-R, ISO and related tools) +cdrtools: +cdrtools: Tools for mastering and writing compact discs. +cdrtools: +cdrtools: cdda2wav -- CD audio sampling utility. +cdrtools: cdrecord -- burn discs in most ATAPI and SCSI CD-R drives. +cdrtools: mkisofs -- create ISO9660/HFS/Joliet CD-ROM images. +cdrtools: mkzftree -- compress a file tree to make a compressed CD-ROM. +cdrtools: +cdrtools: +cdrtools: diff --git a/source/ap/cdrtools/zisofs-tools-1.0.8.tar.bz2.sign b/source/ap/cdrtools/zisofs-tools-1.0.8.tar.bz2.sign new file mode 100644 index 000000000..b88c45f71 --- /dev/null +++ b/source/ap/cdrtools/zisofs-tools-1.0.8.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.7 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBGS/EFyGugalF9Dw4RAmlCAJ9LvLxlqLTQBMTiExL8bLDxP78CwACeMYVb +Dp91koXYTyTrYDA5zfj6khE= +=l8pk +-----END PGP SIGNATURE----- diff --git a/source/ap/cupsddk/cupsddk.SlackBuild b/source/ap/cupsddk/cupsddk.SlackBuild new file mode 100755 index 000000000..48157ffc9 --- /dev/null +++ b/source/ap/cupsddk/cupsddk.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2009 Robby Workman, Northport, AL, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Slackware build script for cupsddk + + +VERSION=${VERSION:-1.2.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cupsddk + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf cupsddk-$VERSION +tar xvf $CWD/cupsddk-${VERSION}-source.tar.bz2 || exit 1 +cd cupsddk-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --with-docdir=/usr/doc/cupsddk-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install BUILDROOT=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cp -a \ + *.txt doc/*.html doc/images \ + $PKG/usr/doc/cupsddk-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/cupsddk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/cupsddk/slack-desc b/source/ap/cupsddk/slack-desc new file mode 100644 index 000000000..e4afd3522 --- /dev/null +++ b/source/ap/cupsddk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cupsddk: cupsddk (CUPS Driver Development Kit) +cupsddk: +cupsddk: The CUPS Driver Development Kit (DDK) provides a suite of standard +cupsddk: drivers, a PPD file compiler, and other utilities that can be used +cupsddk: to develop printer drivers for CUPS and other printing environments. +cupsddk: CUPS provides a portable printing layer for UNIX®-based operatin +cupsddk: systems. The CUPS DDK provides the means for mass-producing PPD +cupsddk: files and drivers/filters for CUPS-based printer drivers. +cupsddk: +cupsddk: +cupsddk: diff --git a/source/ap/dc3dd/dc3dd.SlackBuild b/source/ap/dc3dd/dc3dd.SlackBuild new file mode 100755 index 000000000..87324faca --- /dev/null +++ b/source/ap/dc3dd/dc3dd.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Slackware build script for dc3dd + +# Copyright 2008 Barry J. Grundy <http://www.linuxleo.com> +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +PRGNAM=dc3dd +VERSION=${VERSION:-6.12.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +rm -rf $TMP/$PRGNAM-$VERSION +cd $TMP +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make -j3 || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +( cd $PKG/usr/man || exit 1 + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS Options_Reference.txt \ + README* Sample_Commands.txt THANKS THANKS-to-translators TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/dc3dd/slack-desc b/source/ap/dc3dd/slack-desc new file mode 100644 index 000000000..1dfd5e024 --- /dev/null +++ b/source/ap/dc3dd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +dc3dd: dc3dd (version of dd designed for computer forensics) +dc3dd: +dc3dd: dc3dd is a patched version of GNU dd to include a number of features +dc3dd: useful for computer forensics. Many of these features were inspired by +dc3dd: dcfldd, but were rewritten for dc3dd. Added features include robust +dc3dd: error handling, logging, progress meter, image verification, split +dc3dd: output and more. +dc3dd: +dc3dd: http://dc3dd.sourceforge.net/ +dc3dd: +dc3dd: diff --git a/source/ap/diffstat/diffstat.SlackBuild b/source/ap/diffstat/diffstat.SlackBuild new file mode 100755 index 000000000..5066f215c --- /dev/null +++ b/source/ap/diffstat/diffstat.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=diffstat +VERSION=${VERSION:-1.43} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/diffstat/slack-desc b/source/ap/diffstat/slack-desc new file mode 100644 index 000000000..1ca1fded9 --- /dev/null +++ b/source/ap/diffstat/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +diffstat: diffstat (produces statistics from diff output) +diffstat: +diffstat: DiffStat is a simple filter that reads the output of the 'diff' +diffstat: program and displays a histogram of insertions, deletions, and +diffstat: modifications per-file. It is useful for reviewing large, complex +diffstat: patch files. +diffstat: +diffstat: Thomas E. Dickey is the author of DiffStat. +diffstat: +diffstat: +diffstat: diff --git a/source/ap/diffutils/diffutils-sdiff-no-waitpid.patch b/source/ap/diffutils/diffutils-sdiff-no-waitpid.patch new file mode 100644 index 000000000..a41b11648 --- /dev/null +++ b/source/ap/diffutils/diffutils-sdiff-no-waitpid.patch @@ -0,0 +1,23 @@ +--- diffutils-2.8.4/src/sdiff.c.orig 2002-06-17 00:55:42.000000000 -0500 ++++ diffutils-2.8.4/src/sdiff.c 2003-01-08 03:04:02.000000000 -0600 +@@ -692,7 +692,7 @@ + ck_fclose (out); + + { +- int wstatus; ++ int wstatus = 0; + int werrno = 0; + + #if ! (HAVE_WORKING_FORK || HAVE_WORKING_VFORK) +@@ -701,11 +701,6 @@ + werrno = errno; + #else + ck_fclose (diffout); +- while (waitpid (diffpid, &wstatus, 0) < 0) +- if (errno == EINTR) +- checksigs (); +- else +- perror_fatal ("waitpid"); + diffpid = 0; + #endif + diff --git a/source/ap/diffutils/diffutils.SlackBuild b/source/ap/diffutils/diffutils.SlackBuild new file mode 100755 index 000000000..50ac985d3 --- /dev/null +++ b/source/ap/diffutils/diffutils.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.8.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-diffutils + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf diffutils-$VERSION +tar xzvf $CWD/diffutils-$VERSION.tar.gz +cd diffutils-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/diffutils-sdiff-no-waitpid.patch.gz | patch -p1 || exit 1 +# Prevent ruining sdiff.1 by touching it so it won't "regenerate": +touch man/sdiff.1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --program-prefix="" \ + --program-suffix="" \ + $ARCH-slackware-linux + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/diffutils-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING INSTALLME NEWS README THANKS \ + $PKG/usr/doc/diffutils-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +makepkg -l y -c n $TMP/diffutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/diffutils/doinst.sh b/source/ap/diffutils/doinst.sh new file mode 100644 index 000000000..cf23d0928 --- /dev/null +++ b/source/ap/diffutils/doinst.sh @@ -0,0 +1,16 @@ +if [ -x /usr/bin/install-info ] ; then + install-info --info-dir=/usr/info /usr/info/diff.info.gz 2>/dev/null +elif ! grep "diff3" usr/info/dir 1> /dev/null 2> /dev/null ; then +cat << EOF >> usr/info/dir + +GNU packages +* Diff: (diff). Comparing and merging files. + +Individual utilities +* cmp: (diff)Invoking cmp. Compare 2 files byte by byte. +* diff3: (diff)Invoking diff3. Compare 3 files line by line. +* diff: (diff)Invoking diff. Compare 2 files line by line. +* patch: (diff)Invoking patch. Apply a patch to a file. +* sdiff: (diff)Invoking sdiff. Merge 2 files side-by-side. +EOF +fi diff --git a/source/ap/diffutils/slack-desc b/source/ap/diffutils/slack-desc new file mode 100644 index 000000000..79873c066 --- /dev/null +++ b/source/ap/diffutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +diffutils: diffutils (finds differences between files) +diffutils: +diffutils: The GNU diff utilities finds differences between files. A major use +diffutils: for this package is to make source code patches. +diffutils: +diffutils: +diffutils: +diffutils: +diffutils: +diffutils: +diffutils: diff --git a/source/ap/dmapi/dmapi.SlackBuild b/source/ap/dmapi/dmapi.SlackBuild new file mode 100755 index 000000000..9b57b2fdd --- /dev/null +++ b/source/ap/dmapi/dmapi.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.2.10 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dmapi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf dmapi-$(echo $VERSION | cut -f 1 -d '-') +tar xvf $CWD/dmapi-$VERSION.tar.?z* || exit 1 +cd dmapi-$(echo $VERSION | cut -f 1 -d '-') + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add DESTDIR support and improve docs install location: +zcat $CWD/dmapi.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Make sure you have the same version of autoconf as the +# developers did... ;-) +autoconf + +./configure \ + --prefix=/ \ + --exec-prefix=/ \ + --sbindir=/bin \ + --bindir=/usr/bin \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include \ + --mandir=/usr/man \ + --datadir=/usr/share + +make || exit 1 +make install DESTDIR=$PKG +make install-dev DESTDIR=$PKG +make install-lib DESTDIR=$PKG + +mv $PKG/usr/share/doc $PKG/usr +( cd $PKG/usr/doc ; mv dmapi dmapi-$VERSION ) +#It would be nice to keep the same timestamps that the files have in the source: +rm -rf $PKG/usr/doc/dmapi-$VERSION/ea-conv +cp -a \ + README doc/COPYING doc/PORTING doc/ea-conv \ + $PKG/usr/doc/dmapi-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +# Remove bogus files: +rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/libdm.so $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la +# Make /usr/lib/libdm.so a symlink to /lib: +if [ -f $PKG/lib${LIBDIRSUFFIX}/libdm.so.0 ]; then + ( cd $PKG/usr/lib${LIBDIRSUFFIX} ; rm -f libdm.so ; ln -sf /lib${LIBDIRSUFFIX}/libdm.so.0 libdm.so ) +else + exit 1 + # and fix yer script!!! +fi +# Fix shared library perms: +chmod 755 $PKG/lib${LIBDIRSUFFIX}/* + +# Gzip the man pages: +( cd $PKG/usr/man + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done + gzip -9 */*.? +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dmapi-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz + diff --git a/source/ap/dmapi/dmapi.destdir.diff b/source/ap/dmapi/dmapi.destdir.diff new file mode 100644 index 000000000..829d14e7f --- /dev/null +++ b/source/ap/dmapi/dmapi.destdir.diff @@ -0,0 +1,36 @@ +--- ./include/buildmacros.orig 2007-01-22 23:56:41.000000000 -0600 ++++ ./include/buildmacros 2008-04-01 00:04:57.000000000 -0500 +@@ -26,7 +26,7 @@ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + SHELL = /bin/sh + IMAGES_DIR = $(TOPDIR)/all-images +--- ./include/builddefs.in.orig 2007-05-28 02:00:24.000000000 -0500 ++++ ./include/builddefs.in 2008-04-01 00:04:57.000000000 -0500 +@@ -23,14 +23,14 @@ + PKG_VERSION = @pkg_version@ + PKG_PLATFORM = @pkg_platform@ + PKG_DISTRIBUTION= @pkg_distribution@ +-PKG_BIN_DIR = @bindir@ +-PKG_SBIN_DIR = @sbindir@ +-PKG_LIB_DIR = @libdir@@libdirsuffix@ +-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@ +-PKG_INC_DIR = @includedir@/xfs +-PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ +-PKG_LOCALE_DIR = @datadir@/locale ++PKG_BIN_DIR = $(DESTDIR)@bindir@ ++PKG_SBIN_DIR = $(DESTDIR)@sbindir@ ++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@ ++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@ ++PKG_INC_DIR = $(DESTDIR)@includedir@/xfs ++PKG_MAN_DIR = $(DESTDIR)@mandir@ ++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@ ++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale + + CC = @cc@ + AWK = @awk@ diff --git a/source/ap/dmapi/slack-desc b/source/ap/dmapi/slack-desc new file mode 100644 index 000000000..c5acf4919 --- /dev/null +++ b/source/ap/dmapi/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dmapi: dmapi (Data Management API library) +dmapi: +dmapi: A library required to use the Data Management API (DMAPI). +dmapi: This interface is defined in the X/Open document 'Systems Management: +dmapi: Data Storage Managment (XDSM) API' dated February 1997. +dmapi: +dmapi: The DMAPI library is used by the xfsdump utility. +dmapi: +dmapi: +dmapi: +dmapi: diff --git a/source/ap/dmidecode/dmidecode.SlackBuild b/source/ap/dmidecode/dmidecode.SlackBuild new file mode 100755 index 000000000..2a897acee --- /dev/null +++ b/source/ap/dmidecode/dmidecode.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=dmidecode +VERSION=${VERSION:-2.10} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:-" -j7 "} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/dmidecode.makefile.diff.gz | patch -p1 --verbose || exit 1 + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc +mv $PKG/usr/share/doc/${PKGNAM} $PKG/usr/doc/${PKGNAM}-$VERSION +rmdir $PKG/usr/share/doc +rmdir $PKG/usr/share + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/dmidecode/dmidecode.makefile.diff b/source/ap/dmidecode/dmidecode.makefile.diff new file mode 100644 index 000000000..08326774b --- /dev/null +++ b/source/ap/dmidecode/dmidecode.makefile.diff @@ -0,0 +1,14 @@ +--- ./Makefile.orig 2007-02-16 05:00:12.000000000 -0600 ++++ ./Makefile 2007-05-02 14:54:09.000000000 -0500 +@@ -22,9 +22,9 @@ + LDFLAGS = + + DESTDIR = +-prefix = /usr/local ++prefix = /usr + sbindir = $(prefix)/sbin +-mandir = $(prefix)/share/man ++mandir = $(prefix)/man + man8dir = $(mandir)/man8 + docdir = $(prefix)/share/doc/dmidecode + diff --git a/source/ap/dmidecode/slack-desc b/source/ap/dmidecode/slack-desc new file mode 100644 index 000000000..d7fd45cd9 --- /dev/null +++ b/source/ap/dmidecode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dmidecode: dmidecode (DMI table decoder) +dmidecode: +dmidecode: dmidecode is a tool for dumping a computer's DMI table (some say +dmidecode: SMBIOS) contents in a human-readable format. This table contains a +dmidecode: description of the system's hardware components, as well as other +dmidecode: useful pieces of information such as serial numbers and BIOS +dmidecode: revision. +dmidecode: +dmidecode: dmidecode was written by Alan Cox and Jean Delvare. +dmidecode: +dmidecode: diff --git a/source/ap/dvd+rw-tools/dvd+rw-tools.SlackBuild b/source/ap/dvd+rw-tools/dvd+rw-tools.SlackBuild new file mode 100755 index 000000000..ac149131d --- /dev/null +++ b/source/ap/dvd+rw-tools/dvd+rw-tools.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# Why do people do things like this? +VERSION=7.1 +PKGVER=7.1 +DIRVER=7.1 + +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dvd+rw-tools + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf dvd+rw-tools-$VERSION +tar xvf $CWD/dvd+rw-tools-$VERSION.tar.gz || exit 1 +cd dvd+rw-tools-$DIRVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/dvd+rw-tools.limits.h.diff.gz | patch -p1 --verbose || exit 1 + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +cat dvd+rw-booktype > $PKG/usr/bin/dvd+rw-booktype +cat dvd+rw-format > $PKG/usr/bin/dvd+rw-format +cat dvd+rw-mediainfo > $PKG/usr/bin/dvd+rw-mediainfo +cat dvd-ram-control > $PKG/usr/bin/dvd-ram-control +cat growisofs > $PKG/usr/bin/growisofs +strip $PKG/usr/bin/* +chmod 755 $PKG/usr/bin/* + +mkdir -p $PKG/usr/man/man1 +cat growisofs.1 | gzip -9c > $PKG/usr/man/man1/growisofs.1.gz + +mkdir -p $PKG/usr/doc/dvd+rw-tools-$VERSION +cp -a \ + index.html \ + LICENSE \ + $PKG/usr/doc/dvd+rw-tools-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dvd+rw-tools-$PKGVER-$ARCH-$BUILD.txz + diff --git a/source/ap/dvd+rw-tools/dvd+rw-tools.limits.h.diff b/source/ap/dvd+rw-tools/dvd+rw-tools.limits.h.diff new file mode 100644 index 000000000..e8b8d986c --- /dev/null +++ b/source/ap/dvd+rw-tools/dvd+rw-tools.limits.h.diff @@ -0,0 +1,10 @@ +--- ./transport.hxx.orig 2008-03-01 04:34:43.000000000 -0600 ++++ ./transport.hxx 2008-04-06 23:05:58.000000000 -0500 +@@ -9,6 +9,7 @@ + #if defined(__unix) || defined(__unix__) + #include <stdio.h> + #include <stdlib.h> ++#include <limits.h> + #include <unistd.h> + #include <string.h> + #include <sys/types.h> diff --git a/source/ap/dvd+rw-tools/dvd+rw-tools.url b/source/ap/dvd+rw-tools/dvd+rw-tools.url new file mode 100644 index 000000000..0a8eb6bf3 --- /dev/null +++ b/source/ap/dvd+rw-tools/dvd+rw-tools.url @@ -0,0 +1 @@ +http://fy.chalmers.se/~appro/linux/DVD+RW/tools/ diff --git a/source/ap/dvd+rw-tools/slack-desc b/source/ap/dvd+rw-tools/slack-desc new file mode 100644 index 000000000..ba1be820b --- /dev/null +++ b/source/ap/dvd+rw-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dvd+rw-tools: dvd+rw-tools (DVD+-RW tools) +dvd+rw-tools: +dvd+rw-tools: A collection of tools to master DVD+RW/+R/-R/-RW media. For further +dvd+rw-tools: information see http://fy.chalmers.se/~appro/linux/DVD+RW/. +dvd+rw-tools: +dvd+rw-tools: The DVD+RW tools were written by Andy Polyakov. +dvd+rw-tools: +dvd+rw-tools: +dvd+rw-tools: +dvd+rw-tools: +dvd+rw-tools: diff --git a/source/ap/enscript/enscript.SlackBuild b/source/ap/enscript/enscript.SlackBuild new file mode 100755 index 000000000..e7bc7ff97 --- /dev/null +++ b/source/ap/enscript/enscript.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.6.3 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-enscript + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf enscript-$VERSION +tar xvf $CWD/enscript-$VERSION.tar.gz || exit 1 +cd enscript-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --with-media=Letter \ + --sysconfdir=/etc \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install prefix=$PKG/usr sysconfdir=$PKG/etc || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done +) + +( cd $PKG/usr/info + rm -f dir + gzip -9 * +) + +mkdir -p $PKG/usr/doc/enscript-$VERSION +cp -a \ + *.txt ABOUT-NLS AUTHORS COPYING ChangeLog docs/FAQ.html INSTALL NEWS \ + README* THANKS TODO \ + $PKG/usr/doc/enscript-$VERSION +chmod 644 $PKG/usr/doc/enscript-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/enscript-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/enscript/slack-desc b/source/ap/enscript/slack-desc new file mode 100644 index 000000000..877b8a480 --- /dev/null +++ b/source/ap/enscript/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +enscript: enscript (converts text files to PostScript and other formats) +enscript: +enscript: Enscript converts text files to PostScript and spools the generated +enscript: output to a printer or saves it to a file. If no input files are +enscript: given, enscript processes standard input. Enscript can be extended to +enscript: handle different output media and it has many options for customizing +enscript: printouts. +enscript: +enscript: +enscript: +enscript: diff --git a/source/ap/flac/flac.SlackBuild b/source/ap/flac/flac.SlackBuild new file mode 100755 index 000000000..7f2d02d31 --- /dev/null +++ b/source/ap/flac/flac.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.1 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-flac + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf flac-$VERSION +tar xvf $CWD/flac-$VERSION.tar.bz2 || exit 1 +cd flac-$VERSION +zcat $CWD/flac.man.diff.gz | patch -p1 --verbose --backup --suffix=.orig + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +if [ "$ARCH" != "x86_64" ]; then + # We disable assembly optimizations to ensure compatibility with older + # hardware, but you're welcome to comment this out and give it a try. + # I've heard it gives a noticable speedup. + DISABLE_ASM_OPTIMIZATIONS=${DISABLE_ASM_OPTIMIZATIONS:-"--disable-asm-optimizations"} +else + DISABLE_ASM_OPTIMIZATIONS=${DISABLE_ASM_OPTIMIZATIONS:-""} +fi + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + $DISABLE_ASM_OPTIMIZATIONS \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Adjust docs to traditional Slackware location: +mv $PKG/usr/share/doc $PKG/usr +rm $PKG/usr/doc/flac-$VERSION/FLAC.tag +mv $PKG/usr/doc/flac-$VERSION/html/* $PKG/usr/doc/flac-$VERSION +rmdir $PKG/usr/doc/flac-$VERSION/html +# we're not putting 3MB of API docs in the binary package... +( cd $PKG/usr/doc/flac-$VERSION/api && rm -r * ) +cat << EOF > $PKG/usr/doc/flac-$VERSION/api/README +Full HTML based API documentation may be found in the FLAC +source package. It is not included in the binary package due +to size. +EOF +# Add a few more docs: +cp -a \ + AUTHORS COPYING* README \ + $PKG/usr/doc/flac-$VERSION + +# Strip files +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/flac-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/flac/flac.man.diff b/source/ap/flac/flac.man.diff new file mode 100644 index 000000000..f96eebc60 --- /dev/null +++ b/source/ap/flac/flac.man.diff @@ -0,0 +1,12 @@ +--- ./man/flac.1.orig 2007-09-14 10:08:05.000000000 -0500 ++++ ./man/flac.1 2008-03-08 15:48:37.000000000 -0600 +@@ -325,7 +325,8 @@ + .PP + metaflac(1). + .PP +-The programs are documented fully by HTML format documentation, available in \fI/usr/share/doc/flac/html\fR on Debian GNU/Linux systems. ++The programs are documented fully by HTML format documentation, available in \fI/usr/doc/flac-*.*.*/html\fR on Slackware GNU/Linux systems. + .SH "AUTHOR" + .PP ++The flac program was developed by Josh Coalson. + This manual page was written by Matt Zimmerman <mdz@debian.org> for the Debian GNU/Linux system (but may be used by others). diff --git a/source/ap/flac/slack-desc b/source/ap/flac/slack-desc new file mode 100644 index 000000000..9fde39d4e --- /dev/null +++ b/source/ap/flac/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +flac: flac (Free Lossless Audio Codec) +flac: +flac: FLAC stands for Free Lossless Audio Codec. Grossly oversimplified, +flac: FLAC is similar to MP3, but lossless. "Free" means that the +flac: specification of the stream format is in the public domain, and that +flac: neither the FLAC format nor any of the implemented encoding/decoding +flac: methods are covered by any patent. It also means that the sources for +flac: libFLAC and libFLAC++ are available under the LGPL and the sources for +flac: flac, metaflac, and the plugins are available under the GPL. +flac: +flac: FLAC was developed by Josh Coalson. diff --git a/source/ap/foomatic-filters/doinst.sh b/source/ap/foomatic-filters/doinst.sh new file mode 100644 index 000000000..d7bcdf8bd --- /dev/null +++ b/source/ap/foomatic-filters/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/foomatic/filter.conf.new diff --git a/source/ap/foomatic-filters/foomatic-filters.SlackBuild b/source/ap/foomatic-filters/foomatic-filters.SlackBuild new file mode 100755 index 000000000..fbf949039 --- /dev/null +++ b/source/ap/foomatic-filters/foomatic-filters.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=foomatic-filters +VERSION=${VERSION:-4.0.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +sed -i -e "s#/usr/lib/cups#/usr/lib${LIBDIRSUFFIX}/cups#" \ + -e "s#/usr/lib/pdq#/usr/lib${LIBDIRSUFFIX}/pdq#" \ + -e "s#/usr/lib/ppr#/usr/lib${LIBDIRSUFFIX}/ppr#" \ + -e "s#^LIBSEARCHPATH=#LIBSEARCHPATH=\${prefix}/lib${LIBDIRSUFFIX}:\${prefix}/usr/lib${LIBDIRSUFFIX}:#" \ + configure + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/etc/foomatic/filter.conf $PKG/etc/foomatic/filter.conf.new +rm -f $PKG/etc/foomatic/filter.conf.sample + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING ChangeLog README STANDARD_installation TODO USAGE \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/ap/foomatic-filters/slack-desc b/source/ap/foomatic-filters/slack-desc new file mode 100644 index 000000000..fcb34ffd6 --- /dev/null +++ b/source/ap/foomatic-filters/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +foomatic-filters: foomatic-filters (Universal print filter/RIP wrapper) +foomatic-filters: +foomatic-filters: foomatic-rip is a universal print filter, which is used by CUPS with +foomatic-filters: the gutenprint and hplip printer drivers. It translates PostScript +foomatic-filters: (and also other file formats) to the printer's native language, +foomatic-filters: usually using Ghostscript (gs) as the external renderer. The way +foomatic-filters: this translation is done is described in a PPD file. +foomatic-filters: +foomatic-filters: For more information on foomatic, see: http://linuxprinting.org +foomatic-filters: +foomatic-filters: diff --git a/source/ap/ghostscript-fonts-std/doinst.sh b/source/ap/ghostscript-fonts-std/doinst.sh new file mode 100644 index 000000000..3d8d40100 --- /dev/null +++ b/source/ap/ghostscript-fonts-std/doinst.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/Type1 + mkfontdir . + mkfontscale . + ) +fi diff --git a/source/ap/ghostscript-fonts-std/ghostscript-fonts-std.SlackBuild b/source/ap/ghostscript-fonts-std/ghostscript-fonts-std.SlackBuild new file mode 100755 index 000000000..635789495 --- /dev/null +++ b/source/ap/ghostscript-fonts-std/ghostscript-fonts-std.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=ghostscript-fonts-std +VERSION=${VERSION:-8.11} +ARCH=${ARCH:-noarch} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf fonts +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd fonts || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 -o -perm 500 \) \ + -exec chmod 644 {} \; + +# Move everything: +mkdir -p $PKG/usr/share/fonts/Type1 +mv * $PKG/usr/share/fonts/Type1 +mkdir -p $PKG/usr/share/ghostscript +( cd $PKG/usr/share/ghostscript ; ln -sf /usr/share/fonts/Type1 fonts ) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +( cd $PKG/usr/share/fonts/Type1 + mv \ + COPYING ChangeLog README* TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION +) + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/ghostscript-fonts-std/slack-desc b/source/ap/ghostscript-fonts-std/slack-desc new file mode 100644 index 000000000..a2b9459ed --- /dev/null +++ b/source/ap/ghostscript-fonts-std/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ghostscript-fonts-std: ghostscript-fonts-std (fonts for the Ghostscript interpreter) +ghostscript-fonts-std: +ghostscript-fonts-std: These fonts are used by the GhostScript interpreter. +ghostscript-fonts-std: +ghostscript-fonts-std: +ghostscript-fonts-std: +ghostscript-fonts-std: +ghostscript-fonts-std: +ghostscript-fonts-std: +ghostscript-fonts-std: +ghostscript-fonts-std: diff --git a/source/ap/ghostscript/cidfmap b/source/ap/ghostscript/cidfmap new file mode 100644 index 000000000..0303f66f5 --- /dev/null +++ b/source/ap/ghostscript/cidfmap @@ -0,0 +1,118 @@ +%! +% $Id: cidfmap 6300 2005-12-28 19:56:24Z giles $ +% This is a sample map file for CIDFont category. + +% +% The map is a set of records, which must use one of the two formats : +% +% 1. A substutution of a CIF font with another CID font : +% +% /substituted /original ; +% +% Where 'substituted' is a name being used in a document, +% 'original' is a name of an available resource. +% +% 2. A substutution of a CIF font with a True Type font : +% +% /substituted << /FileType /TrueType /Path (path) /SunfontID 1 /CSI [(ordering) supplement] >> ; +% +% Where 'substituted' is a name being used in a document, +% 'path' is a path to a True Type font file, +% 'ordering' is a value of Ordering required for CIDSystemInfo dictionary, +% 'supplement' is a value of Supplement required for CIDSystemInfo dictionary. +% +% Examples : +% +% /ShinGo-Bold /HeiseiKakuGo-W5 ; +% /Ryumin-Medium << /FileType /TrueType /Path (H:/AuxFiles/Fonts/BATANG.TTC) /SubfontID 3 /CSI [(Japan1) 2] >> ; +% + + +%% cidfmap.zh_CN (simplified Chinese ; zh_CN) +%% This font will produce better results than the wqy-zenhei.ttf that we use +%% to get out-of-the-box output. +%% If you install it, uncomment the line below and comment the one below that. +%/BousungEG-Light-GB << /FileType /TrueType /Path (uming.ttf) /CSI [(GB1) 4] >> ; +/BousungEG-Light-GB << /FileType /TrueType /Path (wqy-zenhei.ttf) /CSI [(GB1) 4] >> ; +%% This font will produce better results than the wqy-zenhei.ttf that we use +%% to get out-of-the-box output. +%% If you install it, uncomment the line below and comment the one below that. +%/GBZenKai-Medium << /FileType /TrueType /Path (ukai.ttf) /CSI [(GB1) 4] >> ; +/GBZenKai-Medium << /FileType /TrueType /Path (wqy-zenhei.ttf) /CSI [(GB1) 4] >> ; +/MSungGBK-Light << /FileType /TrueType /Path (wqy-zenhei.ttf) /CSI [(GB1) 4] >> ; +/MSung-Light /MSungGBK-Light ; +/MSung-Medium /GBZenKai-Medium ; +/MHei-Medium /BousungEG-Light-GB ; +/MKai-Medium /GBZenKai-Medium ; +/STSong-Light /BousungEG-Light-GB ; +/STFangsong-Light /BousungEG-Light-GB ; +/STHeiti-Regular /MSungGBK-Light ; +/STKaiti-Regular /GBZenKai-Medium ; +/Adobe-GB1 /BousungEG-Light-GB ; + +%% cidfmap.zh_TW (traditional Chinese ; zh_TW) +%% To use this example, install the missing uming.ttf and ukai.ttf fonts, and +%% uncomment everything in the block below. Also, fix the simplified Chinese +%% block as described above for "better output" so that there is no +%% interference (or comment the whole block out). +%/BousungEG-Light-GB << /FileType /TrueType /Path (uming.ttf) /CSI [(CNS1) 4] >> ; +%/ZenKai-Medium << /FileType /TrueType /Path (ukai.ttf) /CSI [(CNS1) 4] >> ; +%/ShanHeiSun-Light << /FileType /TrueType /Path (wqy-zenhei.ttf) /CSI [(CNS1) 4] >> ; +%/STSong-Light /BousungEG-Light-GB ; +%/STKaiti-Regular /ZenKai-Medium-GB ; +%/STFangsong-Light /BousungEG-Light ; +%/STHeiti-Regular /MHei-Medium ; +%/MSung-Light /BousungEG-Light-GB ; +%/MSung-Medium /ZenKai-Medium ; +%/MHei-Medium /ShanHeiSun-Light ; +%/MKai-Medium /ZenKai-Medium ; +%/Adobe-CNS1 /BousungEG-Light-GB ; + +%% cidfmap.ja +/Sazanami-Gothic << /FileType /TrueType /Path (sazanami-gothic.ttf) /CSI [(Japan1) 6] >> ; +/Sazanami-Gothic-Regular /Sazanami-Gothic ; +/Sazanami-Gothic-JaH << /FileType /TrueType /Path (sazanami-gothic.ttf) /CSI [(Japan2) 0] >> ; +/Sazanami-Gothic-Regular-JaH /Sazanami-Gothic-JaH ; +/Sazanami-Mincho << /FileType /TrueType /Path (sazanami-mincho.ttf) /CSI [(Japan1) 6] >> ; +/Sazanami-Mincho-Regular /Sazanami-Mincho ; +/Sazanami-Mincho-JaH << /FileType /TrueType /Path (sazanami-mincho.ttf) /CSI [(Japan2) 0] >> ; +/Sazanami-Mincho-Regular-JaH /Sazanami-Mincho-JaH ; +/Ryumin-Light /Sazanami-Mincho ; +/Ryumin-Light-H /Sazanami-Mincho ; +/GothicBBB-Medium /Sazanami-Gothic ; +/GothicBBB-Medium-V /Sazanami-Gothic ; +/HeiseiMin-W3 /Ryumin-Light ; +/HeiseiKakuGo-W5 /GothicBBB-Medium ; +/HeiseiMin-W3-Acro /Ryumin-Light ; +/HeiseiKaKuGo-W5-Acro /GothicBBB-Medium ; +/Kochi-Gothic /Sazanami-Gothic ; +/Kochi-Mincho /Sazanami-Mincho ; +/WadaMin-Regular /Sazanami-Mincho ; +/WadaMin-Bold /Sazanami-Mincho ; +/WadaGo-Regular /Sazanami-Gothic ; +/WadaGo-Bold /Sazanami-Gothic ; +/Adobe-Japan1 /Sazanami-Gothic ; +/Adobe-Japan2 /Sazanami-Gothic-JaH ; + +%% cidfmap.ko +%% To enable Korean printing support, install the fonts shown in the example +%% here and uncomment the block below: +%/Baekmuk-Batang << /FileType /TrueType /Path (batang.ttf) /CSI [(Korea1) 2] >> ; +%/Baekmuk-Batang-Regular /Baekmuk-Batang ; +%/Baekmuk-Dotum << /FileType /TrueType /Path (dotum.ttf) /CSI [(Korea1) 2] >> ; +%/Baekmuk-Dotum-Regular /Baekmuk-Dotum ; +%/Baekmuk-Gulim << /FileType /TrueType /Path (gulim.ttf) /CSI [(Korea1) 2] >> ; +%/Baekmuk-Gulim-Regular /Baekmuk-Gulim ; +%/Baekmuk-Headline << /FileType /TrueType /Path (hline.ttf) /CSI [(Korea1) 2] >> ; +%/Baekmuk-Headline-Regular /Baekmuk-Headline ; +%/Adobe-Korea1 /Baekmuk-Batang ; + +%/BousungEG-Light-GB << /FileType /TrueType /Path (uming.ttf) /CSI [(GB1) 4] >> ; +%/GBZenKai-Medium << /FileType /TrueType /Path (ukai.ttf) /CSI [(GB1) 4] >> ; +%/MSungGBK-Light /BousungEG-Light-GB ; +%/Adobe-GB1 /BousungEG-Light-GB ; + +%/ZenKai-Medium << /FileType /TrueType /Path (ukai.ttf) /CSI [(CNS1) 4] >> ; +%/ShanHeiSun-Light << /FileType /TrueType /Path (uming.ttf) /CSI [(CNS1) 4] >> ; +%/Adobe-CNS1 /ShanHeiSun-Light ; + diff --git a/source/ap/ghostscript/ghostscript.SlackBuild b/source/ap/ghostscript/ghostscript.SlackBuild new file mode 100755 index 000000000..b0bb34ba3 --- /dev/null +++ b/source/ap/ghostscript/ghostscript.SlackBuild @@ -0,0 +1,176 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=ghostscript +VERSION=${VERSION:-8.70} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION + +## Regenerate ./configure: +#sh autogen.sh + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Build/install IJS: +( cd ijs + if [ ! -r configure ]; then + sh autogen.sh + fi + CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + make + make install + make install DESTDIR=$PKG +) || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --with-fontpath=/usr/share/fonts/TTF \ + --with-ijs \ + --disable-compile-inits \ + --enable-dynamic \ + --enable-cairo=no \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make || exit 1 +make install DESTDIR=$PKG || exit 1 +make clean || exit 1 +make so || exit 1 +make soinstall DESTDIR=$PKG || exit 1 + +# Replace the default cidfmap with one containing additional +# support for CJK printing: + +if [ -r $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap ]; then + mv $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap.default.ghostscript-${VERSION} + zcat $CWD/cidfmap.gz > $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap.new +fi + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +( cd doc + cp -a \ + COPYING ../LICENSE README \ + $PKG/usr/doc/${PKGNAM}-$VERSION +) +( cd $PKG/usr/doc/${PKGNAM}-$VERSION + ln -sf /usr/share/ghostscript/$VERSION/doc doc +) + +cd $TMP +cp -a ${PKGNAM}-${VERSION}/examples/cjk $PKG/usr/share/ghostscript/${VERSION}/examples/ + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap.new +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/ghostscript/slack-desc b/source/ap/ghostscript/slack-desc new file mode 100644 index 000000000..1ac40827a --- /dev/null +++ b/source/ap/ghostscript/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ghostscript: ghostscript (GPL Ghostscript) +ghostscript: +ghostscript: GPL Ghostscript is an interpreter of Adobe Systems' PostScript(tm) +ghostscript: and Portable Document Format (PDF) languages. Ghostscript is an +ghostscript: essential part of the printing subsystem, taking PostScript output +ghostscript: from applications and converting it into an appropriate printer or +ghostscript: display format. Ghostscript supports many printers directly, and +ghostscript: more are supported through add-on packages. +ghostscript: +ghostscript: +ghostscript: diff --git a/source/ap/gphoto2/gphoto2.SlackBuild b/source/ap/gphoto2/gphoto2.SlackBuild new file mode 100755 index 000000000..9670b082f --- /dev/null +++ b/source/ap/gphoto2/gphoto2.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=gphoto2 +VERSION=2.4.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/gphoto2-${VERSION} \ + --without-cdk \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/gphoto2/slack-desc b/source/ap/gphoto2/slack-desc new file mode 100644 index 000000000..681c45dfa --- /dev/null +++ b/source/ap/gphoto2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +gphoto2: gphoto2 (A command-line frontend to libgphoto2) +gphoto2: +gphoto2: libgphoto2 is a cross-platform digital camera library, and gphoto2 is +gphoto2: a command-line client for it. +gphoto2: +gphoto2: Visit the gphoto project online: http://www.gphoto.org +gphoto2: +gphoto2: +gphoto2: +gphoto2: +gphoto2: diff --git a/source/ap/groff/groff.SlackBuild b/source/ap/groff/groff.SlackBuild new file mode 100755 index 000000000..e9b35d3ee --- /dev/null +++ b/source/ap/groff/groff.SlackBuild @@ -0,0 +1,129 @@ +#!/bin/sh + +# Copyright 2005-2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-1.20.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-groff + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf groff-$VERSION +tar xvf $CWD/groff-$VERSION.tar.bz2 || exit 1 +cd groff-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Make this thing respect our declared docdir setting +zcat $CWD/groff.docdir.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/groff-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd src/devices/xditview + mkdir -p $PKG/etc/X11/app-defaults + cp -a GXditview.ad $PKG/etc/X11/app-defaults/GXditview +) + +mkdir -p $PKG/usr/doc/groff-$VERSION/xditview +cp -a \ + BUG-REPORT COPYING FDL INSTALL INSTALL.gen MORE.STUFF \ + NEWS PROBLEMS PROJECTS README TODO VERSION \ + $PKG/usr/doc/groff-$VERSION +cp -a src/devices/xditview/{README,TODO} $PKG/usr/doc/groff-$VERSION/xditview + +# If you want all this stuff, it's in the source tarball: +rm -rf $PKG/usr/doc/groff-$VERSION/*.ps \ + $PKG/usr/doc/groff-$VERSION/examples \ + $PKG/usr/doc/groff-$VERSION/html \ + $PKG/usr/doc/groff-$VERSION/pdf + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +# Do not use color ANSI output by default for man pages. +# A silly "innovation" if ever there was one, sure to break +# a ton of existing scripts otherwise... +zcat $CWD/groff.man.mdoc.local.gz >> $PKG/usr/share/groff/site-tmac/man.local +zcat $CWD/groff.man.mdoc.local.gz >> $PKG/usr/share/groff/site-tmac/mdoc.local + +( cd $PKG/usr/bin + rm -rf geqn ; ln -sf eqn geqn + rm -rf gindxbib ; ln -sf indxbib gindxbib + rm -rf gpic ; ln -sf pic gpic + rm -rf grefer ; ln -sf refer grefer + rm -rf gsoelim ; ln -sf soelim gsoelim + rm -rf zsoelim ; ln -sf soelim zsoelim + rm -rf gtbl ; ln -sf tbl gtbl + rm -rf gtroff ; ln -sf troff gtroff + rm -rf glookbib ; ln -sf lookbib glookbib + rm -rf gnroff ; ln -sf nroff gnroff + rm -rf gneqn ; ln -sf neqn gneqn +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/groff-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/groff/groff.docdir.diff b/source/ap/groff/groff.docdir.diff new file mode 100644 index 000000000..a73a3bf59 --- /dev/null +++ b/source/ap/groff/groff.docdir.diff @@ -0,0 +1,12 @@ +diff -Nur groff-1.20.orig/Makefile.in groff-1.20/Makefile.in +--- groff-1.20.orig/Makefile.in 2009-01-05 14:45:13.000000000 -0600 ++++ groff-1.20/Makefile.in 2009-01-13 22:14:58.237116441 -0600 +@@ -146,7 +146,7 @@ + infodir=@infodir@ + + # `docdir' says where to install documentation files. +-docdir=$(datadir)/doc/groff/$(version)$(revision) ++docdir=@docdir@ + + # `exampledir' says where to install example files. + exampledir=$(docdir)/examples diff --git a/source/ap/groff/groff.man.mdoc.local b/source/ap/groff/groff.man.mdoc.local new file mode 100644 index 000000000..4de5a0f1a --- /dev/null +++ b/source/ap/groff/groff.man.mdoc.local @@ -0,0 +1,24 @@ +. +.if n \{\ +. \" Map \(oq to ' rather than ` in nroff mode for devices other +. \" than utf8. +. if !'\*[.T]'utf8' \ +. tr \[oq]' +. +. \" Disable the use of SGR (ANSI colour) escape sequences by +. \" grotty. +. if '\V[GROFF_SGR]'' \ +. output x X tty: sgr 0 +. +. \" Map \- to the Unicode HYPHEN-MINUS character, to make +. \" searching in man pages easier. +. if '\*[.T]'utf8' \ +. char \- \N'45' +. +. \" Many UTF-8 man pages use "-" instead of "\-" for dashes such as those +. \" in command-line options. This is a bug in those pages, but if you want +. \" all hyphens to be rendered as the ASCII-compatible HYPHEN-MINUS +. \" anyway, then uncomment this. +. \" if '\*[.T]'utf8' \ +. \" char - \N'45' +.\} diff --git a/source/ap/groff/slack-desc b/source/ap/groff/slack-desc new file mode 100644 index 000000000..b9e5af829 --- /dev/null +++ b/source/ap/groff/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +groff: groff (document formatting system) +groff: +groff: The GNU groff package provides versions of troff, nroff, eqn, tbl, and +groff: other Unix text-formatting utilities. Groff is used to 'compile' man +groff: pages stored in groff/nroff format into a form which can be printed or +groff: displayed on the screen. These man pages are stored in compressed +groff: form in the /usr/man/man? directories. +groff: +groff: +groff: +groff: diff --git a/source/ap/gutenprint/gutenprint.SlackBuild b/source/ap/gutenprint/gutenprint.SlackBuild new file mode 100755 index 000000000..94fb1cbc0 --- /dev/null +++ b/source/ap/gutenprint/gutenprint.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=5.2.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gutenprint +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gutenprint-${VERSION} +tar xvf $CWD/gutenprint-${VERSION}.tar.?z* || exit 1 +cd gutenprint-${VERSION} +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --with-cups \ + --with-gimp2 \ + --with-gimp2-as-gutenprint \ + --disable-libgutenprintui \ + --enable-libgutenprintui2 \ + --enable-escputil \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/gutenprint-${VERSION} +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* \ + $PKG/usr/doc/gutenprint-${VERSION} + ( cd $PKG/usr/doc/gutenprint-${VERSION} + ln -sf /usr/share/gutenprint/samples . + ) +mv $PKG/usr/share/gutenprint/doc/* $PKG/usr/doc/gutenprint-${VERSION} +rmdir $PKG/usr/share/gutenprint/doc + +# If you want 1MB of ChangeLog, it's in the source... +rm -f $PKG/usr/doc/gutenprint-${VERSION}/ChangeLog + +# Big... again, it's in the source if you want it. +rm -f $PKG/usr/share/gutenprint/samples/profile.jpg +rm -f $PKG/usr/doc/gutenprint-${VERSION}/*.pdf + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg --prepend -l y -c n $TMP/gutenprint-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/gutenprint/slack-desc b/source/ap/gutenprint/slack-desc new file mode 100644 index 000000000..ac2bdb93e --- /dev/null +++ b/source/ap/gutenprint/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gutenprint: gutenprint (IJS printer driver for Ghostscript and CUPS) +gutenprint: +gutenprint: Gutenprint (formerly named Gimp-Print) is a suite of printer drivers +gutenprint: that may be used with most common print spooling systems, including +gutenprint: CUPS, LPRng, or others. These drivers provide high quality printing +gutenprint: in many cases equal to or better than proprietary vendor-supplied +gutenprint: drivers. Gutenprint also includes an enhanced print plug-in for the +gutenprint: GIMP image editor. +gutenprint: +gutenprint: +gutenprint: diff --git a/source/ap/hplip/doinst.sh b/source/ap/hplip/doinst.sh new file mode 100644 index 000000000..8f9648e07 --- /dev/null +++ b/source/ap/hplip/doinst.sh @@ -0,0 +1,4 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/ap/hplip/hplip.SlackBuild b/source/ap/hplip/hplip.SlackBuild new file mode 100755 index 000000000..64462a78e --- /dev/null +++ b/source/ap/hplip/hplip.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Slackware build script for hplip + +# Copyright 2006-2009 Robby Workman, Northport, Alabama, USA +# Copyright 2006-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +PRGNAM=hplip +VERSION=${VERSION:-3.9.4b} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fix a segfault bug +zcat $CWD/hplip.prevent_segfault.diff.gz | patch -p1 || exit 1 + +# Fix udev rules for current versions of udev +sed -i 's/SYSFS/ATTR/g' data/rules/*.rules +# Fix ownership in udev rules file +sed -i 's%OWNER="lp"%OWNER="root"%g' data/rules/*.rules + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-cupsbackenddir=/usr/lib${LIBDIRSUFFIX}/cups/backend \ + --with-cupsfilterdir=/usr/lib${LIBDIRSUFFIX}/cups/filter \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --docdir=/usr/doc/hplip-$VERSION \ + --with-docdir=/usr/doc/hplip-$VERSION \ + --with-hpppddir=/usr/share/cups/model/HP \ + --with-drvdir=/usr/share/cups/drv/hp \ + --enable-shadow-build \ + --enable-scan-build \ + --enable-gui-build \ + --enable-fax-build \ + --enable-foomatic-rip-hplip-install \ + --disable-foomatic-ppd-install \ + --enable-foomatic-drv-install \ + --enable-network-build=yes \ + --enable-qt4 \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG rulesdir=/lib/udev/rules.d || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# No thanks, we don't replace/add files which are part of other packages +rm -rf $PKG/etc/sane.d + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/hplip/hplip.prevent_segfault.diff b/source/ap/hplip/hplip.prevent_segfault.diff new file mode 100644 index 000000000..1021a2e65 --- /dev/null +++ b/source/ap/hplip/hplip.prevent_segfault.diff @@ -0,0 +1,23 @@ +Thanks to Tim Waugh <twaugh redhat com> for the patch +Prevent crash when DEVICE_URI/PRINTER environment variables are not + set (https://bugzilla.redhat.com/show_bug.cgi?id=479808 comment 6) + +diff -Nur hplip-3.9.4b.old/prnt/hpijs/hpijs.cpp hplip-3.9.4b.new/prnt/hpijs/hpijs.cpp +--- hplip-3.9.4b.old/prnt/hpijs/hpijs.cpp 2009-04-29 15:36:54.000000000 -0500 ++++ hplip-3.9.4b.new/prnt/hpijs/hpijs.cpp 2009-06-09 00:41:44.684172840 -0500 +@@ -218,8 +218,14 @@ + // call dbus here + const char *user_name = " "; + const char *title = " "; ++ char *device_uri = getenv ("DEVICE_URI"); ++ char *printer = getenv("PRINTER"); + int job_id = 0; +- SendDbusMessage (getenv ("DEVICE_URI"), getenv("PRINTER"), ++ if (!device_uri) ++ device_uri = ""; ++ if (!printer) ++ printer = ""; ++ SendDbusMessage (device_uri, printer, + EVENT_PRINT_FAILED_MISSING_PLUGIN, + user_name, job_id, title); + BUG("unable to set device=%s, err=%d\n", svalue, r); diff --git a/source/ap/hplip/slack-desc b/source/ap/hplip/slack-desc new file mode 100644 index 000000000..874e6ed69 --- /dev/null +++ b/source/ap/hplip/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------------| +hplip: hplip (HP print/scan/fax support) +hplip: +hplip: HPLIP is an HP developed solution for printing, scanning, and faxing +hplip: with HP inkjet and laser based printers in Linux. The HPLIP project +hplip: provides printing support for more than 1400 HP printer models, +hplip: including Deskjet, Officejet, Photosmart, PSC (Print Scan Copy), +hplip: Business Inkjet, LaserJet, and LaserJet MFP. +hplip: +hplip: For more information, see: http://hplipopensource.com +hplip: +hplip: diff --git a/source/ap/ispell/ispell.SlackBuild b/source/ap/ispell/ispell.SlackBuild new file mode 100755 index 000000000..cf6b4c6b2 --- /dev/null +++ b/source/ap/ispell/ispell.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2002-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.2.06 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ispell + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $PKG $PKG + +cd $TMP +rm -rf ispell-$VERSION +tar xvf $CWD/ispell-$VERSION.tar.gz || exit 1 +cd ispell-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/ispell.diff.gz | patch -p1 --verbose +sed -i -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" local.h + +make || exit 1 + +sleep 2 # to make absolutely sure that config will have a later timestamp + # than local.h and will not get rebuilt by `make install` +sed -i -e "s#/usr#$PKG&#g" config.sh + +mkdir -p $PKG/usr/{bin,lib${LIBDIRSUFFIX},man} +make install + +( cd $PKG/usr/lib${LIBDIRSUFFIX}/ispell + ln -sf americanmed.hash american.hash + ln -sf americanmed.hash english.hash +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add documentation to the package: +mkdir -p $PKG/usr/doc/ispell-$VERSION +cp -a \ + Contributors Magiclines README WISHES \ + $PKG/usr/doc/ispell-$VERSION +chown -R root:root $PKG/usr/doc/ispell-$VERSION + +# Add the package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Make the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ispell-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/ispell/ispell.diff b/source/ap/ispell/ispell.diff new file mode 100644 index 000000000..23f9aa9de --- /dev/null +++ b/source/ap/ispell/ispell.diff @@ -0,0 +1,484 @@ +--- ./local.h.orig Fri Jun 8 13:44:56 2001 ++++ ./local.h Fri Jun 8 13:51:33 2001 +@@ -0,0 +1,112 @@ ++/* ++ * $Id: local.h.samp,v 1.18 2001/05/30 21:14:47 geoff Exp $ ++ */ ++ ++/* ++ * Copyright 1992, 1993, 1999, Geoff Kuenning, Claremont, CA ++ * 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. ++ * 3. All modifications to the source code must be clearly marked as ++ * such. Binary redistributions based on modified source code ++ * must be clearly marked as modified versions in the documentation ++ * and/or other materials provided with the distribution. ++ * 4. All advertising materials mentioning features or use of this software ++ * must display the following acknowledgment: ++ * This product includes software developed by Geoff Kuenning and ++ * other unpaid contributors. ++ * 5. The name of Geoff Kuenning may not be used to endorse or promote ++ * products derived from this software without specific prior ++ * written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY GEOFF KUENNING 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 GEOFF KUENNING 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. ++ */ ++ ++/* ++ * This file is a sample local.h file. It shows what I believe nearly every ++ * site will want to include in their local.h. You will probably want to ++ * expand this file; see "config.X" to learn of #defines that you might ++ * like to add to. ++ */ ++ ++/* ++ * $Log: local.h.samp,v $ ++ * Revision 1.18 2001/05/30 21:14:47 geoff ++ * Invert the fcntl/mkstemp options so they will default to being used. ++ * ++ * Revision 1.17 2001/05/30 21:04:25 geoff ++ * Add HAS_FCNTL_H and HAS_MKSTEMP. Also give better comments on the USG ++ * option. ++ * ++ * Revision 1.16 1999/01/08 04:34:43 geoff ++ * Get rid of ELISPDIR and TEXINFODIR ++ * ++ * Revision 1.15 1999/01/07 01:57:57 geoff ++ * Update the copyright. ++ * ++ * Revision 1.14 1995/01/08 23:23:56 geoff ++ * Do some minor clarification of the instructional comments. ++ * ++ * Revision 1.13 1994/05/17 06:37:25 geoff ++ * Add one more item of warning advice to the comments. ++ * ++ * Revision 1.12 1994/02/07 06:00:00 geoff ++ * Add a warning about shell processing restrictions ++ * ++ * Revision 1.11 1994/01/25 07:11:50 geoff ++ * Get rid of all old RCS log lines in preparation for the 3.1 release. ++ * ++ */ ++ ++/* ++ * WARNING WARNING WARNING ++ * ++ * This file is *NOT* a normal C header file! Although it uses C ++ * syntax and is included in C programs, it is also processed by shell ++ * scripts that are very stupid about format. ++ * ++ * Do not try to use #if constructs to configure this file for more ++ * than one configuration. Do not place whitespace after the "#" in ++ * "#define". Do not attempt to disable lines by commenting them out. ++ * Do not use backslashes to reduce the length of long lines. ++ * None of these things will work the way you expect them to. ++ * ++ * WARNING WARNING WARNING ++ */ ++ ++#define MINIMENU /* Display a mini-menu at the bottom of the screen */ ++#undef NO8BIT /* Remove this if you use ISO character sets */ ++#define USG /* Define on System V or if term.c won't compile */ ++#undef NO_FCNTL_H /* Define if you get compile errors on fcntl.h */ ++#undef NO_MKSTEMP /* Define if you get compile or link errors */ ++#define CFLAGS "-O2 -Wall -I ." ++ ++/* ++ * Important directory paths ++ */ ++#define BINDIR "/usr/bin" ++#define LIBDIR "/usr/lib/ispell" ++#define MAN1DIR "/usr/man/man1" ++#define MAN4DIR "/usr/man/man4" ++ ++/* ++ * Place any locally-required #include statements here ++ */ +--- ./string.h.orig Fri Jun 8 13:49:03 2001 ++++ ./string.h Fri Jun 8 13:50:38 2001 +@@ -0,0 +1,366 @@ ++/* Copyright (C) 1991,92,93,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* ++ * ISO C99 Standard: 7.21 String handling <string.h> ++ */ ++ ++#ifndef _STRING_H ++#define _STRING_H 1 ++ ++#include <features.h> ++ ++__BEGIN_DECLS ++ ++/* Get size_t and NULL from <stddef.h>. */ ++#define __need_size_t ++#define __need_NULL ++#include <stddef.h> ++ ++ ++/* Copy N bytes of SRC to DEST. */ ++extern void *memcpy (void *__restrict __dest, ++ __const void *__restrict __src, size_t __n) __THROW; ++/* Copy N bytes of SRC to DEST, guaranteeing ++ correct behavior for overlapping strings. */ ++extern void *memmove (void *__dest, __const void *__src, size_t __n) ++ __THROW; ++ ++/* Copy no more than N bytes of SRC to DEST, stopping when C is found. ++ Return the position in DEST one byte past where C was copied, ++ or NULL if C was not found in the first N bytes of SRC. */ ++#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN ++extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, ++ int __c, size_t __n) ++ __THROW; ++#endif /* SVID. */ ++ ++ ++/* Set N bytes of S to C. */ ++extern void *memset (void *__s, int __c, size_t __n) __THROW; ++ ++/* Compare N bytes of S1 and S2. */ ++extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) ++ __THROW __attribute_pure__; ++ ++/* Search N bytes of S for C. */ ++extern void *memchr (__const void *__s, int __c, size_t __n) ++ __THROW __attribute_pure__; ++ ++#ifdef __USE_GNU ++/* Search in S for C. This is similar to `memchr' but there is no ++ length limit. */ ++extern void *rawmemchr (__const void *__s, int __c) __THROW __attribute_pure__; ++ ++/* Search N bytes of S for the final occurrence of C. */ ++extern void *memrchr (__const void *__s, int __c, size_t __n) ++ __THROW __attribute_pure__; ++#endif ++ ++ ++/* Copy SRC to DEST. */ ++extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) ++ __THROW; ++/* Copy no more than N characters of SRC to DEST. */ ++extern char *strncpy (char *__restrict __dest, ++ __const char *__restrict __src, size_t __n) __THROW; ++ ++/* Append SRC onto DEST. */ ++extern char *strcat (char *__restrict __dest, __const char *__restrict __src) ++ __THROW; ++/* Append no more than N characters from SRC onto DEST. */ ++extern char *strncat (char *__restrict __dest, __const char *__restrict __src, ++ size_t __n) __THROW; ++ ++/* Compare S1 and S2. */ ++extern int strcmp (__const char *__s1, __const char *__s2) ++ __THROW __attribute_pure__; ++/* Compare N characters of S1 and S2. */ ++extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) ++ __THROW __attribute_pure__; ++ ++/* Compare the collated forms of S1 and S2. */ ++extern int strcoll (__const char *__s1, __const char *__s2) ++ __THROW __attribute_pure__; ++/* Put a transformation of SRC into no more than N bytes of DEST. */ ++extern size_t strxfrm (char *__restrict __dest, ++ __const char *__restrict __src, size_t __n) __THROW; ++ ++#ifdef __USE_GNU ++/* The following functions are equivalent to the both above but they ++ take the locale they use for the collation as an extra argument. ++ This is not standardsized but something like will come. */ ++# include <xlocale.h> ++ ++/* Compare the collated forms of S1 and S2 using rules from L. */ ++extern int __strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) ++ __THROW __attribute_pure__; ++/* Put a transformation of SRC into no more than N bytes of DEST. */ ++extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n, ++ __locale_t __l) __THROW; ++#endif ++ ++#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED ++/* Duplicate S, returning an identical malloc'd string. */ ++extern char *strdup (__const char *__s) __THROW __attribute_malloc__; ++#endif ++ ++/* Return a malloc'd copy of at most N bytes of STRING. The ++ resultant string is terminated even if no null terminator ++ appears before STRING[N]. */ ++#if defined __USE_GNU ++extern char *strndup (__const char *__string, size_t __n) ++ __THROW __attribute_malloc__; ++#endif ++ ++#if defined __USE_GNU && defined __GNUC__ ++/* Duplicate S, returning an identical alloca'd string. */ ++# define strdupa(s) \ ++ (__extension__ \ ++ ({ \ ++ __const char *__old = (s); \ ++ size_t __len = strlen (__old) + 1; \ ++ char *__new = (char *) __builtin_alloca (__len); \ ++ (char *) memcpy (__new, __old, __len); \ ++ })) ++ ++/* Return an alloca'd copy of at most N bytes of string. */ ++# define strndupa(s, n) \ ++ (__extension__ \ ++ ({ \ ++ __const char *__old = (s); \ ++ size_t __len = strnlen (__old, (n)); \ ++ char *__new = (char *) __builtin_alloca (__len + 1); \ ++ __new[__len] = '\0'; \ ++ (char *) memcpy (__new, __old, __len); \ ++ })) ++#endif ++ ++/* Find the first occurrence of C in S. */ ++extern char *strchr (__const char *__s, int __c) __THROW __attribute_pure__; ++/* Find the last occurrence of C in S. */ ++extern char *strrchr (__const char *__s, int __c) __THROW __attribute_pure__; ++ ++#ifdef __USE_GNU ++/* This funciton is similar to `strchr'. But it returns a pointer to ++ the closing NUL byte in case C is not found in S. */ ++extern char *strchrnul (__const char *__s, int __c) __THROW __attribute_pure__; ++#endif ++ ++/* Return the length of the initial segment of S which ++ consists entirely of characters not in REJECT. */ ++extern size_t strcspn (__const char *__s, __const char *__reject) ++ __THROW __attribute_pure__; ++/* Return the length of the initial segment of S which ++ consists entirely of characters in ACCEPT. */ ++extern size_t strspn (__const char *__s, __const char *__accept) ++ __THROW __attribute_pure__; ++/* Find the first occurrence in S of any character in ACCEPT. */ ++extern char *strpbrk (__const char *__s, __const char *__accept) ++ __THROW __attribute_pure__; ++/* Find the first occurrence of NEEDLE in HAYSTACK. */ ++extern char *strstr (__const char *__haystack, __const char *__needle) ++ __THROW __attribute_pure__; ++ ++#ifdef __USE_GNU ++/* Similar to `strstr' but this function ignores the case of both strings. */ ++extern char *strcasestr (__const char *__haystack, __const char *__needle) ++ __THROW __attribute_pure__; ++#endif ++ ++/* Divide S into tokens separated by characters in DELIM. */ ++extern char *strtok (char *__restrict __s, __const char *__restrict __delim) ++ __THROW; ++ ++/* Divide S into tokens separated by characters in DELIM. Information ++ passed between calls are stored in SAVE_PTR. */ ++extern char *__strtok_r (char *__restrict __s, ++ __const char *__restrict __delim, ++ char **__restrict __save_ptr) __THROW; ++#if defined __USE_POSIX || defined __USE_MISC ++extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, ++ char **__restrict __save_ptr) __THROW; ++#endif ++ ++#ifdef __USE_GNU ++/* Find the first occurrence of NEEDLE in HAYSTACK. ++ NEEDLE is NEEDLELEN bytes long; ++ HAYSTACK is HAYSTACKLEN bytes long. */ ++extern void *memmem (__const void *__haystack, size_t __haystacklen, ++ __const void *__needle, size_t __needlelen) ++ __THROW __attribute_pure__; ++ ++/* Copy N bytes of SRC to DEST, return pointer to bytes after the ++ last written byte. */ ++extern void *__mempcpy (void *__restrict __dest, ++ __const void *__restrict __src, size_t __n) __THROW; ++extern void *mempcpy (void *__restrict __dest, ++ __const void *__restrict __src, size_t __n) __THROW; ++#endif ++ ++ ++/* Return the length of S. */ ++extern size_t strlen (__const char *__s) __THROW __attribute_pure__; ++ ++#ifdef __USE_GNU ++/* Find the length of STRING, but scan at most MAXLEN characters. ++ If no '\0' terminator is found in that many characters, return MAXLEN. */ ++extern size_t strnlen (__const char *__string, size_t __maxlen) ++ __THROW __attribute_pure__; ++#endif ++ ++ ++/* Return a string describing the meaning of the `errno' code in ERRNUM. */ ++extern char *strerror (int __errnum) __THROW; ++#ifdef __USE_MISC ++/* Reentrant version of `strerror'. If a temporary buffer is required, at ++ most BUFLEN bytes of BUF will be used. */ ++extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) __THROW; ++#endif ++ ++/* We define this function always since `bzero' is sometimes needed when ++ the namespace rules does not allow this. */ ++extern void __bzero (void *__s, size_t __n) __THROW; ++ ++#undef __USE_BSD ++#if defined __USE_BSD ++/* Copy N bytes of SRC to DEST (like memmove, but args reversed). */ ++extern void bcopy (__const void *__src, void *__dest, size_t __n) __THROW; ++ ++/* Set N bytes of S to 0. */ ++extern void bzero (void *__s, size_t __n) __THROW; ++ ++/* Compare N bytes of S1 and S2 (same as memcmp). */ ++extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) ++ __THROW __attribute_pure__; ++ ++/* Find the first occurrence of C in S (same as strchr). */ ++extern char *index (__const char *__s, int __c) __THROW __attribute_pure__; ++ ++/* Find the last occurrence of C in S (same as strrchr). */ ++extern char *rindex (__const char *__s, int __c) __THROW __attribute_pure__; ++ ++/* Return the position of the first bit set in I, or 0 if none are set. ++ The least-significant bit is position 1, the most-significant 32. */ ++extern int ffs (int __i) __THROW __attribute__ ((__const__)); ++ ++/* The following two functions are non-standard but necessary for non-32 bit ++ platforms. */ ++# ifdef __USE_GNU ++extern int ffsl (long int __l) __THROW __attribute__ ((__const__)); ++# ifdef __GNUC__ ++__extension__ extern int ffsll (long long int __ll) ++ __THROW __attribute__ ((__const__)); ++# endif ++# endif ++ ++/* Compare S1 and S2, ignoring case. */ ++extern int strcasecmp (__const char *__s1, __const char *__s2) ++ __THROW __attribute_pure__; ++ ++/* Compare no more than N chars of S1 and S2, ignoring case. */ ++extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) ++ __THROW __attribute_pure__; ++#endif /* Use BSD. */ ++ ++#ifdef __USE_GNU ++/* Again versions of a few functions which use the given locale instead ++ of the global one. */ ++extern int __strcasecmp_l (__const char *__s1, __const char *__s2, ++ __locale_t __loc) __THROW __attribute_pure__; ++ ++extern int __strncasecmp_l (__const char *__s1, __const char *__s2, ++ size_t __n, __locale_t __loc) ++ __THROW __attribute_pure__; ++#endif ++ ++#ifdef __USE_BSD ++/* Return the next DELIM-delimited token from *STRINGP, ++ terminating it with a '\0', and update *STRINGP to point past it. */ ++extern char *strsep (char **__restrict __stringp, ++ __const char *__restrict __delim) __THROW; ++#endif ++ ++#ifdef __USE_GNU ++/* Compare S1 and S2 as strings holding name & indices/version numbers. */ ++extern int strverscmp (__const char *__s1, __const char *__s2) ++ __THROW __attribute_pure__; ++ ++/* Return a string describing the meaning of the signal number in SIG. */ ++extern char *strsignal (int __sig) __THROW; ++ ++/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */ ++extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) ++ __THROW; ++extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) ++ __THROW; ++ ++/* Copy no more than N characters of SRC to DEST, returning the address of ++ the last character written into DEST. */ ++extern char *__stpncpy (char *__restrict __dest, ++ __const char *__restrict __src, size_t __n) __THROW; ++extern char *stpncpy (char *__restrict __dest, ++ __const char *__restrict __src, size_t __n) __THROW; ++ ++/* Sautee STRING briskly. */ ++extern char *strfry (char *__string) __THROW; ++ ++/* Frobnicate N bytes of S. */ ++extern void *memfrob (void *__s, size_t __n) __THROW; ++ ++# ifndef basename ++/* Return the file name within directory of FILENAME. We don't ++ declare the function if the `basename' macro is available (defined ++ in <libgen.h>) which makes the XPG version of this function ++ available. */ ++extern char *basename (__const char *__filename) __THROW; ++# endif ++#endif ++ ++ ++#if defined __GNUC__ && __GNUC__ >= 2 ++# if defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined __cplusplus ++/* When using GNU CC we provide some optimized versions of selected ++ functions from this header. There are two kinds of optimizations: ++ ++ - machine-dependent optimizations, most probably using inline ++ assembler code; these might be quite expensive since the code ++ size can increase significantly. ++ These optimizations are not used unless the symbol ++ __USE_STRING_INLINES ++ is defined before including this header. ++ ++ - machine-independent optimizations which do not increase the ++ code size significantly and which optimize mainly situations ++ where one or more arguments are compile-time constants. ++ These optimizations are used always when the compiler is ++ taught to optimize. ++ ++ One can inhibit all optimizations by defining __NO_STRING_INLINES. */ ++ ++/* Get the machine-dependent optimizations (if any). */ ++# include <bits/string.h> ++ ++/* These are generic optimizations which do not add too much inline code. */ ++# include <bits/string2.h> ++# endif ++#endif ++ ++__END_DECLS ++ ++#endif /* string.h */ diff --git a/source/ap/ispell/slack-desc b/source/ap/ispell/slack-desc new file mode 100644 index 000000000..46c648623 --- /dev/null +++ b/source/ap/ispell/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ispell: ispell (spelling checker) +ispell: +ispell: Ispell is a fast screen-oriented spelling checker that shows you your +ispell: errors in the context of the original file, and suggests possible +ispell: corrections when it can figure them out. Compared to UNIX spell, it +ispell: is faster and much easier to use. Ispell can also handle languages +ispell: other than English. Ispell has a long history, and many people have +ispell: contributed to the current version -- some of the major contributors +ispell: include R. E. Gorin, Pace Willisson, Walt Buehring, and Geoff +ispell: Kuenning. +ispell: diff --git a/source/ap/jed/jed.SlackBuild b/source/ap/jed/jed.SlackBuild new file mode 100755 index 000000000..68c851ff8 --- /dev/null +++ b/source/ap/jed/jed.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.99-18 +PKGVER=0.99_18 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-jed +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf jed-$VERSION +tar xvf $CWD/jed-$VERSION.tar.bz2 || exit 1 +cd jed-$VERSION +zcat $CWD/jed.mouse.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/jed.multibyte.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +JED_ROOT=/usr/share/jed \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --with-slang=/usr \ + --build=$ARCH-slackware-linux + +make clean +make all rgrep $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +cp src/objs/rgrep $PKG/usr/bin + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc +( cd $PKG/usr/doc ; rm -f jed-$VERSION ) +( cd $PKG/usr/doc ; ln -sf /usr/share/jed jed-$VERSION ) +( cd $PKG/usr/share/jed + rm -rf info + ln -sf /usr/info info +) + +gzip -9 $PKG/usr/man/man1/* + +cp -a COPYING COPYRIGHT INSTALL INSTALL.unx README changes.txt \ + $PKG/usr/share/jed + +mkdir -p $PKG/usr/info +for file in info/jed* ; do + cat $file | gzip -9c > $PKG/usr/$file.gz +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/jed-$PKGVER-$ARCH-$BUILD.txz + diff --git a/source/ap/jed/jed.mouse.diff b/source/ap/jed/jed.mouse.diff new file mode 100644 index 000000000..4ff607169 --- /dev/null +++ b/source/ap/jed/jed.mouse.diff @@ -0,0 +1,17 @@ +--- ./src/Makefile.in.orig 2006-02-15 21:09:50.000000000 -0600 ++++ ./src/Makefile.in 2006-06-25 23:10:19.000000000 -0500 +@@ -52,10 +52,10 @@ + #--------------------------------------------------------------------------- + # 1. Linux GPM Mouse support + # Uncomment next FOUR lines for GPM mouse support +-#MOUSEFLAGS = -DUSE_GPM_MOUSE +-#MOUSELIB = -lgpm +-#GPMMOUSEO = gpmmouse.o +-#OBJGPMMOUSEO = $(OBJDIR)/$(GPMMOUSEO) ++MOUSEFLAGS = -DUSE_GPM_MOUSE ++MOUSELIB = -lgpm ++GPMMOUSEO = gpmmouse.o ++OBJGPMMOUSEO = $(OBJDIR)/$(GPMMOUSEO) + + + # 2. XFree86 XRENDERFONT (Anti-aliased font) support for XJED diff --git a/source/ap/jed/jed.multibyte.diff b/source/ap/jed/jed.multibyte.diff new file mode 100644 index 000000000..266fece72 --- /dev/null +++ b/source/ap/jed/jed.multibyte.diff @@ -0,0 +1,11 @@ +--- ./src/misc.c.orig 2006-03-04 01:55:05.000000000 -0600 ++++ ./src/misc.c 2006-06-25 23:14:32.000000000 -0500 +@@ -741,7 +741,7 @@ + + void jed_ungetkey_wchar (SLwchar_Type wc) + { +- SLuchar_Type *b, buf[SLUTF8_MAX_MBLEN]; ++ SLuchar_Type *b, buf[JED_MAX_MULTIBYTE_SIZE]; + + if (NULL == (b = jed_wchar_to_multibyte (wc, buf))) + return; diff --git a/source/ap/jed/slack-desc b/source/ap/jed/slack-desc new file mode 100644 index 000000000..8c7b15192 --- /dev/null +++ b/source/ap/jed/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +jed: jed (programmer's editor) +jed: +jed: JED (by John E. Davis) is an extremely powerful but small emacs-like +jed: programmer's editor that is extensible in a C-like macro language and +jed: can do color syntax highlighting. Among the many features: +jed: Emacs, wordstar, EDT emulation; +jed: C, Fortran, TeX, text editing modes; Full undo; +jed: GNU Emacs compatible info reader, and lots more. +jed: +jed: JED is also 8 bit clean, so you can even edit binary files! +jed: diff --git a/source/ap/joe/joe.SlackBuild b/source/ap/joe/joe.SlackBuild new file mode 100755 index 000000000..f3672e24e --- /dev/null +++ b/source/ap/joe/joe.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.5 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-joe + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf joe-$VERSION +tar xvf $CWD/joe-$VERSION.tar.bz2 || exit 1 +cd joe-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --program-prefix="" \ + --program-suffix="" \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Wrong place for this... +rm -rf $PKG/etc/joe/doc + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -name "*.?" -exec gzip -9 {} \; +) + +mkdir -p $PKG/usr/doc/joe-$VERSION +cp -a \ + COPYING HACKING HINTS LIST NEWS README TODO docs/help-system.html \ + $PKG/usr/doc/joe-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/joe-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/joe/slack-desc b/source/ap/joe/slack-desc new file mode 100644 index 000000000..2827441f1 --- /dev/null +++ b/source/ap/joe/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +joe: joe (Joe text editor) +joe: +joe: Joseph H. Allen's easy to use text editor, similar to WordStar[tm]. +joe: +joe: +joe: +joe: +joe: +joe: +joe: +joe: diff --git a/source/ap/jove/jove.SlackBuild b/source/ap/jove/jove.SlackBuild new file mode 100755 index 000000000..0fa524d05 --- /dev/null +++ b/source/ap/jove/jove.SlackBuild @@ -0,0 +1,95 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.16.0.70 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-jove + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf jove$VERSION +tar xvf $CWD/jove$VERSION.tar.?z* || exit 1 +cd jove$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/jove.makefile.diff.gz | patch -p1 --verbose --backup +# More patching needed now: +sed -i -e "s#/lib/jove#/lib${LIBDIRSUFFIX}/jove#" \ + -e "s#^OPTFLAGS = .*#OPTFLAGS = $SLKCFLAGS#" Makefile + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Create jove-recover symlink +( cd $PKG/usr/bin + ln -s ../lib${LIBDIRSUFFIX}/jove/recover jove-recover +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress man pages +( cd $PKG/usr/man + rm man1/jovetool.1 man1/xjove.1 + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do + ln -s $( readlink $i ).gz $i.gz ; rm $i + done +) + +# Copy program documentation into the package +mkdir -p $PKG/usr/doc/jove$VERSION +cp -a \ + README* $PKG/usr/doc/jove$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/jove-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/jove/jove.makefile.diff b/source/ap/jove/jove.makefile.diff new file mode 100644 index 000000000..8bf2be4bc --- /dev/null +++ b/source/ap/jove/jove.makefile.diff @@ -0,0 +1,132 @@ +--- jove4.16.0.70/Makefile 2005-09-30 19:14:41.000000000 -0300 ++++ jove4.16.0.70.new/Makefile 2009-03-04 02:01:26.000000000 -0300 +@@ -21,13 +21,14 @@ + # If they don't exist, this makefile will try to create the directories + # LIBDIR and SHAREDIR. All others must already exist. + +-JOVEHOME = /usr/local ++JOVEHOME = /usr + SHAREDIR = $(JOVEHOME)/lib/jove + LIBDIR = $(JOVEHOME)/lib/jove + BINDIR = $(JOVEHOME)/bin + XEXT= + MANDIR = $(JOVEHOME)/man/man$(MANEXT) + MANEXT = 1 ++DESTDIR := ${DESTDIR} + + # TMPDIR is where the tmp files get stored, usually /tmp, /var/tmp, or + # /usr/tmp. If you wish to be able to recover buffers after a system +@@ -56,12 +57,12 @@ + INSTALLFLAGS = # -g bin -o root + + # to install executable files +-XINSTALL=cp ++XINSTALL=/usr/bin/install -c -m 755 -D + #XINSTALL=/usr/ucb/install $(INSTALLFLAGS) -c -m 755 # -s + #CYGWIN32: XINSTALL=install $(INSTALLFLAGS) -c -m 755 + + # to install text files +-TINSTALL=cp ++TINSTALL=/usr/bin/install -c -m 644 -D + #TINSTALL=/usr/ucb/install $(INSTALLFLAGS) -c -m 644 + #CYGWIN32: TINSTALL=install $(INSTALLFLAGS) -c -m 644 + +@@ -137,7 +138,7 @@ + # Add -DUSE_EXIT if you're profiling or using purify (this causes Jove + # to exit using exit(), instead of _exit()). + +-SYSDEFS = -DBSDPOSIX_STDC ++SYSDEFS = -DSYSVR4 -D_XOPEN_SOURCE=500 + + # Select optimization level (flags passed to compiling and linking steps). + # On most systems: -g for debugging, -O for optimization. +@@ -146,7 +147,7 @@ + # On DEC OSF/1 and Digital UNIX VV4.0, add -std1 to enable ANSI C features + # and perhaps -g3 for more debugging info with optimization. + +-OPTFLAGS = -O ++OPTFLAGS := ${OPTFLAGS} + + # For making dependencies under BSD systems + DEPENDFLAG = -M +@@ -360,7 +361,7 @@ + install: $(LIBDIR) $(SHAREDIR) \ + $(TEACH-JOVE) $(CMDS.DOC) $(TERMSDIR)docs \ + $(PORTSRVINST) $(RECOVER) $(JOVE) $(TEACHJOVE) $(MANUALS) +- $(TINSTALL) doc/jove.rc $(JOVERC) ++ $(TINSTALL) doc/jove.rc $(DESTDIR)$(JOVERC) + @echo See the README about changes to /etc/rc or /etc/rc.local + @echo so that the system recovers jove files on reboot after a crash + +@@ -371,7 +372,7 @@ + test -d $(SHAREDIR) || mkdir $(SHAREDIR) + + $(TEACH-JOVE): doc/teach-jove +- $(TINSTALL) doc/teach-jove $(TEACH-JOVE) ++ $(TINSTALL) doc/teach-jove $(DESTDIR)$(TEACH-JOVE) + + doc/cmds.doc: doc/cmds.macros.nr doc/cmds.nr + $(NROFF) doc/cmds.macros.nr doc/cmds.nr > doc/cmds.doc +@@ -383,25 +384,25 @@ + ( cd doc; tbl intro.nr | $(TROFF) -ms - cmds.nr contents.nr $(TROFFPOST) >jove.man.ps ) + + $(CMDS.DOC): doc/cmds.doc +- $(TINSTALL) doc/cmds.doc $(CMDS.DOC) ++ $(TINSTALL) doc/cmds.doc $(DESTDIR)$(CMDS.DOC) + + $(JOVERC): doc/jove.rc +- $(TINSTALL) doc/jove.rc $(JOVERC) ++ $(TINSTALL) doc/jove.rc $(DESTDIR)$(JOVERC) + + $(TERMSDIR)docs: $(DOCTERMS) +- $(TINSTALL) $(DOCTERMS) $(TERMSDIR) ++ $(TINSTALL) $(DOCTERMS) $(DESTDIR)$(TERMSDIR) + + $(PORTSRV): portsrv$(XEXT) +- $(XINSTALL) portsrv$(XEXT) $(PORTSRV) ++ $(XINSTALL) portsrv$(XEXT) $(DESTDIR)$(PORTSRV) + + $(RECOVER): recover$(XEXT) +- $(XINSTALL) recover$(XEXT) $(RECOVER) ++ $(XINSTALL) recover$(XEXT) $(DESTDIR)$(RECOVER) + + $(JOVE): jjove$(XEXT) +- $(XINSTALL) jjove$(XEXT) $(JOVE) ++ $(XINSTALL) jjove$(XEXT) $(DESTDIR)$(JOVE) + + $(TEACHJOVE): teachjove$(XEXT) +- $(XINSTALL) teachjove$(XEXT) $(TEACHJOVE) ++ $(XINSTALL) teachjove$(XEXT) $(DESTDIR)$(TEACHJOVE) + + doc/jove.$(MANEXT): doc/jove.nr + sed -e 's;<TMPDIR>;$(TMPDIR);' \ +@@ -410,7 +411,7 @@ + -e 's;<SHELL>;$(DFLTSHELL);' doc/jove.nr > doc/jove.$(MANEXT) + + $(JOVEM): doc/jove.$(MANEXT) +- $(TINSTALL) doc/jove.$(MANEXT) $(JOVEM) ++ $(TINSTALL) doc/jove.$(MANEXT) $(DESTDIR)$(JOVEM) + + # doc/jove.doc is the formatted manpage (only needed by DOS) + # Building it should be like building $(JOVEM) except that we +@@ -427,17 +428,17 @@ + -e 's;<SHELL>;$(DFLTSHELL);' doc/teachjove.nr > doc/teachjove.$(MANEXT) + + $(TEACHJOVEM): doc/teachjove.$(MANEXT) +- $(TINSTALL) doc/teachjove.$(MANEXT) $(TEACHJOVEM) ++ $(TINSTALL) doc/teachjove.$(MANEXT) $(DESTDIR)$(TEACHJOVEM) + + $(XJOVEM): doc/xjove.nr +- $(TINSTALL) doc/xjove.nr $(XJOVEM) ++ $(TINSTALL) doc/xjove.nr $(DESTDIR)$(XJOVEM) + + doc/jovetool.$(MANEXT): doc/jovetool.nr + sed -e 's;<MANDIR>;$(MANDIR);' \ + -e 's;<MANEXT>;$(MANEXT);' doc/jovetool.nr > doc/jovetool.$(MANEXT) + + $(JOVETOOLM): doc/jovetool.$(MANEXT) +- $(TINSTALL) doc/jovetool.$(MANEXT) $(JOVETOOLM) ++ $(TINSTALL) doc/jovetool.$(MANEXT) $(DESTDIR)$(JOVETOOLM) + + echo: + @echo $(C-FILES) $(HEADERS) diff --git a/source/ap/jove/slack-desc b/source/ap/jove/slack-desc new file mode 100644 index 000000000..ea95435ff --- /dev/null +++ b/source/ap/jove/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +jove: jove (Jonathan's Own Version of Emacs) +jove: +jove: A mostly Emacs compatible text editor, with man pages and the +jove: 'teachjove' tutorial program. If you'd rather have the real thing, +jove: the actual Emacs editor/environment is available in series 'E'. +jove: +jove: JOVE was written by Jonathan Payne. +jove: +jove: +jove: +jove: diff --git a/source/ap/ksh93/CPL b/source/ap/ksh93/CPL new file mode 100644 index 000000000..50c6364c0 --- /dev/null +++ b/source/ap/ksh93/CPL @@ -0,0 +1,245 @@ ++------------------------------------------------------------------------------+ +| This license covers all software that refers to the URL | +| http://www.opensource.org/licenses/cpl1.0.txt | ++------------------------------------------------------------------------------+ + +Common Public License Version 1.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF + THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + + 1. DEFINITIONS + + "Contribution" means: + + a) in the case of the initial Contributor, the initial code and + documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from + and are distributed by that particular Contributor. A Contribution + 'originates' from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's + behalf. Contributions do not include additions to the Program + which: (i) are separate modules of software distributed in + conjunction with the Program under their own license agreement, and + (ii) are not derivative works of the Program. + + "Contributor" means any person or entity that distributes the Program. + + "Licensed Patents " mean patent claims licensable by a Contributor + which are necessarily infringed by the use or sale of its Contribution + alone or when combined with the Program. + + "Program" means the Contributions distributed in accordance with this + Agreement. + + "Recipient" means anyone who receives the Program under this + Agreement, including all Contributors. + + 2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare derivative works of, publicly + display, publicly perform, distribute and sublicense the + Contribution of such Contributor, if any, and such derivative + works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in source code and object code form. This patent license + shall apply to the combination of the Contribution and the Program + if, at the time the Contribution is added by the Contributor, such + addition of the Contribution causes such combination to be covered + by the Licensed Patents. The patent license shall not apply to any + other combinations which include the Contribution. No hardware per + se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + 3. REQUIREMENTS + + A Contributor may choose to distribute the Program in object code form + under its own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and implied + warranties or conditions of merchantability and fitness for a + particular purpose; + + ii) effectively excludes on behalf of all Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement + are offered by that Contributor alone and not by any other party; + and + + iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a reasonable + manner on or through a medium customarily used for software + exchange. + + When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the + Program. + + Contributors may not remove or alter any copyright notices contained + within the Program. + + Each Contributor must identify itself as the originator of its + Contribution, if any, in a manner that reasonably allows subsequent + Recipients to identify the originator of the Contribution. + + 4. COMMERCIAL DISTRIBUTION + + Commercial distributors of software may accept certain + responsibilities with respect to end users, business partners and the + like. While this license is intended to facilitate the commercial use + of the Program, the Contributor who includes the Program in a + commercial product offering should do so in a manner which does not + create potential liability for other Contributors. Therefore, if a + Contributor includes the Program in a commercial product offering, + such Contributor ("Commercial Contributor") hereby agrees to defend + and indemnify every other Contributor ("Indemnified Contributor") + against any losses, damages and costs (collectively "Losses") arising + from claims, lawsuits and other legal actions brought by a third party + against the Indemnified Contributor to the extent caused by the acts + or omissions of such Commercial Contributor in connection with its + distribution of the Program in a commercial product offering. The + obligations in this section do not apply to any claims or Losses + relating to any actual or alleged intellectual property infringement. + In order to qualify, an Indemnified Contributor must: a) promptly + notify the Commercial Contributor in writing of such claim, and b) + allow the Commercial Contributor to control, and cooperate with the + Commercial Contributor in, the defense and any related settlement + negotiations. The Indemnified Contributor may participate in any such + claim at its own expense. + + For example, a Contributor might include the Program in a commercial + product offering, Product X. That Contributor is then a Commercial + Contributor. If that Commercial Contributor then makes performance + claims, or offers warranties related to Product X, those performance + claims and warranties are such Commercial Contributor's responsibility + alone. Under this section, the Commercial Contributor would have to + defend claims against the other Contributors related to those + performance claims and warranties, and if a court requires any other + Contributor to pay any damages as a result, the Commercial Contributor + must pay those damages. + + 5. NO WARRANTY + + EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS + PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY + WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY + OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely + responsible for determining the appropriateness of using and + distributing the Program and assumes all risks associated with its + exercise of rights under this Agreement, including but not limited to + the risks and costs of program errors, compliance with applicable + laws, damage to or loss of data, programs or equipment, and + unavailability or interruption of operations. + + 6. DISCLAIMER OF LIABILITY + + EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR + ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING + WITHOUT LIMITATION LOST PROFITS), 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 OR + DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED + HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 7. GENERAL + + If any provision of this Agreement is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this Agreement, and without further + action by the parties hereto, such provision shall be reformed to the + minimum extent necessary to make such provision valid and enforceable. + + If Recipient institutes patent litigation against a Contributor with + respect to a patent applicable to software (including a cross-claim or + counterclaim in a lawsuit), then any patent licenses granted by that + Contributor to such Recipient under this Agreement shall terminate as + of the date such litigation is filed. In addition, if Recipient + institutes patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Program + itself (excluding combinations of the Program with other software or + hardware) infringes such Recipient's patent(s), then such Recipient's + rights granted under Section 2(b) shall terminate as of the date such + litigation is filed. + + All Recipient's rights under this Agreement shall terminate if it + fails to comply with any of the material terms or conditions of this + Agreement and does not cure such failure in a reasonable period of + time after becoming aware of such noncompliance. If all Recipient's + rights under this Agreement terminate, Recipient agrees to cease use + and distribution of the Program as soon as reasonably practicable. + However, Recipient's obligations under this Agreement and any licenses + granted by Recipient relating to the Program shall continue and + survive. + + Everyone is permitted to copy and distribute copies of this Agreement, + but in order to avoid inconsistency the Agreement is copyrighted and + may only be modified in the following manner. The Agreement Steward + reserves the right to publish new versions (including revisions) of + this Agreement from time to time. No one other than the Agreement + Steward has the right to modify this Agreement. IBM is the initial + Agreement Steward. IBM may assign the responsibility to serve as the + Agreement Steward to a suitable separate entity. Each new version of + the Agreement will be given a distinguishing version number. The + Program (including Contributions) may always be distributed subject to + the version of the Agreement under which it was received. In addition, + after a new version of the Agreement is published, Contributor may + elect to distribute the Program (including its Contributions) under + the new version. Except as expressly stated in Sections 2(a) and 2(b) + above, Recipient receives no rights or licenses to the intellectual + property of any Contributor under this Agreement, whether expressly, + by implication, estoppel or otherwise. All rights in the Program not + expressly granted under this Agreement are reserved. + + This Agreement is governed by the laws of the State of New York and + the intellectual property laws of the United States of America. No + party to this Agreement will bring a legal action under this Agreement + more than one year after the cause of action arose. Each party waives + its rights to a jury trial in any resulting litigation. + +Copyright (c) 2004 by the Open Source Initiative +This is a copy of the license posted on 2004-10-06 at: + http://www.opensource.org/licenses/cpl diff --git a/source/ap/ksh93/ksh93.SlackBuild b/source/ap/ksh93/ksh93.SlackBuild new file mode 100755 index 000000000..8653c89de --- /dev/null +++ b/source/ap/ksh93/ksh93.SlackBuild @@ -0,0 +1,151 @@ +#!/bin/sh +# Copyright 2001 BSDi, Inc. Concord, CA, USA +# Copyright 2004 Slackware Linux, Inc. Concord, CA, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2007-03-28 +PKGVER=2007_03_28 +# ast still considers this an i386 arch, so we'll humor it +# but package with our real arch label... +ARCH=${ARCH:-x86_64} +if [ "$ARCH" = "x86_64" ]; then + SARCH=i386-64 +else + SARCH=i386 +fi +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=/tmp/build-ksh93 +PKG=/tmp/package-ksh93 + +rm -rf $TMP $PKG +mkdir -p $TMP $PKG +cd $TMP + +mkdir -p ast-base/lib/package/tgz +cp $CWD/*.tgz ast-base/lib/package/tgz +cd ast-base/ + +tar -xzf lib/package/tgz/INIT.$VERSION.tgz || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +bin/package read || exit 1 +bin/package make SHELL=/bin/ash || exit 1 + +mkdir -p $PKG/bin +cp arch/linux.$SARCH/bin/ksh $PKG/bin/ksh.new +strip --strip-unneeded $PKG/bin/ksh.new + +#cp arch/linux.$SARCH/lib/libshell.so.1.1 /usr/lib +#cp arch/linux.$SARCH/lib/libshell.a /usr/lib +#cp arch/linux.$SARCH/lib/libast.so.5.4 /usr/lib +#cp arch/linux.$SARCH/lib/libast.a /usr/lib +#cp arch/linux.$SARCH/src/cmd/ksh93/cc-g,-fpic/libshell.so.1.1 /usr/lib +#cp arch/linux.$SARCH/src/cmd/ksh93/cc-g,-fpic/libshell.a /usr/lib +#cp arch/linux.$SARCH/src/lib/libast/libast.so.5.4 /usr/lib +#cp arch/linux.$SARCH/src/cmd/ksh93/cc-g,-fpic/libast.a /usr/lib +#strip /usr/lib/libast.so.5.4 /usr/lib/libshell.so.1.1 + +mkdir -p $PKG/usr/man/man1 +sed -e "s#\.nr Z 0#\.nr Z 1#g" src/cmd/ksh93/sh.1 > \ + $PKG/usr/man/man1/ksh.1 +#mkdir -p $PKG/usr/man/man1 +#cp src/cmd/ksh93/shell.3 $PKG/usr/man/man3 +#cp src/cmd/ksh93/nval.3 $PKG/usr/man/man3 +gzip -9 $PKG/usr/man/man?/* + +# Install locale files: +mkdir -p $PKG/usr/share +cp -a share/lib/locale $PKG/usr/share +chown -R root:root $PKG/usr/share +( cd $PKG/usr/share + find . -type d -exec chmod 755 {} \; + find . -type f -exec chmod 644 {} \; +) + +#cp src/cmd/ksh93/include/shell.h /usr/include + +# If anyone is actually using the ksh libraries, drop me some mail +# and explain which libs you use and what they're for. As it is, I +# don't see a compeling reason to include them, as ksh itself doesn't +# use them. +#( cd /usr/lib ; ln -sf libshell.so.1.1 libshell.so ) +#( cd /usr/lib rm -rf libast.so ; ln -sf libast.so.5.4 libast.so ) + +( cd $PKG/bin ; ln -sf ksh rksh ) +( cd $PKG/usr/man/man1 ; ln -sf ksh.1.gz rksh.1.gz ) + +mkdir -p $PKG/usr/doc/ksh93-$VERSION +( cd src/cmd/ksh93 + cp -a COMPATIBILITY DESIGN OBSOLETE PROMO.mm README RELEASE* \ + $PKG/usr/doc/ksh93-$VERSION +) +( cd /tmp/build-ksh93/ast-base + mkdir -p $PKG/usr/doc/ksh93-$VERSION/LICENSE + cp -a README $PKG/usr/doc/ksh93-$VERSION/LICENSE + cp -a $CWD/CPL $PKG/usr/doc/ksh93-$VERSION + chmod 644 $PKG/usr/doc/ksh93-$VERSION/CPL + chown root:root $PKG/usr/doc/ksh93-$VERSION/CPL + cp -a lib/package/LICENSES/ast $PKG/usr/doc/ksh93-$VERSION/LICENSE/LICENSE.ast ) + +chown -R root:root $PKG/usr/doc/ksh93-$VERSION +find $PKG/usr/doc/ksh93-$VERSION -type f -exec chmod 644 "{}" \; +find $PKG/usr/doc/ksh93-$VERSION -type d -exec chmod 755 "{}" \; + +#chmod 755 $PKG/usr/lib/libshell.so.1.1 +#chmod 755 $PKG/usr/lib/libast.so.5.4 + +mkdir -p $PKG/install +cat <<EOF >> $PKG/install/doinst.sh +# Backup the old copy if we find one, move the new one in place +if [ -f bin/ksh ]; then + mv bin/ksh bin/ksh.old +fi +mv bin/ksh.new bin/ksh +if [ -f bin/ksh.old ]; then + rm -f bin/ksh.old +fi + +# Add entries to /etc/shells if we need them +if [ ! -r etc/shells ] ; then + touch etc/shells + chmod 644 etc/shells +fi + +if ! grep -q "/bin/ksh" etc/shells ; then + echo "/bin/ksh" >> etc/shells +fi +EOF + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n /tmp/ksh93-$PKGVER-$ARCH-$BUILD.txz + diff --git a/source/ap/ksh93/slack-desc b/source/ap/ksh93/slack-desc new file mode 100644 index 000000000..b2e7d5624 --- /dev/null +++ b/source/ap/ksh93/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ksh93: ksh (AT&T Korn Shell 93) +ksh93: +ksh93: The KornShell language and interactive shell were designed by +ksh93: David G. Korn at AT&T Bell Laboratories. Besides offering a powerful +ksh93: interactive shell, it also offers a robust programming language with +ksh93: such features as associative arrays and built in integer math +ksh93: operations. ksh is an excellent choice for system administration +ksh93: scripts and for everyday interactive use. +ksh93: +ksh93: The official site for the Korn Shell is http://www.kornshell.com/ +ksh93: diff --git a/source/ap/libx86/libx86.SlackBuild b/source/ap/libx86/libx86.SlackBuild new file mode 100755 index 000000000..02c54a098 --- /dev/null +++ b/source/ap/libx86/libx86.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Slackware build script for libx86 + +# Copyright 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +VERSION=${VERSION:-1.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libx86 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libx86-$VERSION +tar xvf $CWD/libx86-$VERSION.tar.gz +cd libx86-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add a patch from Gentoo to make this build on 2.6.26+ +zcat $CWD/lrmi.c.diff.gz | patch -p1 || exit 1 + +make BACKEND=x86emu LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1 +make install DESTDIR=$PKG LIBDIR=/usr/lib${LIBDIRSUFFIX} + +# Kill the static library; we shouldn't need it +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libx86.a + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libx86-$VERSION +cp -a COPYRIGHT $PKG/usr/doc/libx86-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libx86-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/libx86/libx86.info b/source/ap/libx86/libx86.info new file mode 100644 index 000000000..1b9bef5c2 --- /dev/null +++ b/source/ap/libx86/libx86.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://www.codon.org.uk/~mjg59/libx86/" +DOWNLOAD="http://www.codon.org.uk/~mjg59/libx86/downloads/libx86-1.1.tar.gz" diff --git a/source/ap/libx86/lrmi.c.diff b/source/ap/libx86/lrmi.c.diff new file mode 100644 index 000000000..24f4510ff --- /dev/null +++ b/source/ap/libx86/lrmi.c.diff @@ -0,0 +1,18 @@ +# Patch from Gentoo: http://bugs.gentoo.org/235599 + +--- old/lrmi.c 2006-10-30 21:10:16.000000000 +0100 ++++ new/lrmi.c 2008-08-27 11:32:40.000000000 +0200 +@@ -64,6 +64,13 @@ + #define DEFAULT_STACK_SIZE 0x1000 + #define RETURN_TO_32_INT 255 + ++#ifndef IF_MASK ++#define IF_MASK X86_EFLAGS_VIF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define TF_MASK X86_EFLAGS_TF ++#endif ++ + #if defined(__linux__) + #define CONTEXT_REGS context.vm.regs + #define REG(x) diff --git a/source/ap/libx86/slack-desc b/source/ap/libx86/slack-desc new file mode 100644 index 000000000..b1e743932 --- /dev/null +++ b/source/ap/libx86/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------| +libx86: libx86 (hardware-independent library for x86 code execution) +libx86: +libx86: libx86 is a hardware-independent library for executing +libx86: real-mode x86 code, such as bios calls, from userspace. +libx86: +libx86: Homepage: http://www.codon.org.uk/~mjg59/libx86/ +libx86: +libx86: +libx86: +libx86: +libx86: diff --git a/source/ap/linuxdoc-tools/ChangeLog.txt b/source/ap/linuxdoc-tools/ChangeLog.txt new file mode 100644 index 000000000..86f1eb7f8 --- /dev/null +++ b/source/ap/linuxdoc-tools/ChangeLog.txt @@ -0,0 +1,113 @@ +Sun Aug 2 19:07:43 BST 2009 + Stuart Winter <mozes@slackware.com> + linuxdoc-tools-0.9.56, build 5. + * Replace /usr/share/xml/docbook/xml-dtd-4.5/ent/isogrk4.ent with + the Unicode-4 entity map from sgml-common, to fix errors such as + ""1D6C2" is not a character number in the document character set" + Thanks to Niels Horn for the fix and Ron Parker for the report. + +Thu Jul 30 15:56:10 BST 2009 + Stuart Winter <mozes@slackware.com> + linuxdoc-tools-0.9.56, build 4. +* Upgraded to: + docbook-xsl-1.75.1 + docbook-xsl-doc-1.75.1 + gnome-doc-utils-0.17.2 + asciidoc-8.4.5 + OpenJade-1.3.3-pre1 + +This package has a problem producing simple docbook documents +though, as reported by Ron Parker. + + For example: + # cat << EOF > /tmp/test.txt +Hello +this will not work yet +EOF + # asciidoc -b docbook /tmp/test.txt + # db2rtf /tmp/test.xml +You'll see this error: +jade:/usr/share/xml/docbook/xml-dtd-4.5/ent/isogrk4.ent:42:30:E: "1D6C2" is not a character number in the document character set + +I've been reading a few URLs: +http://lists.oasis-open.org/archives/docbook-apps/200511/msg00119.html +http://bugs.gentoo.org/238785 + +The majority of the build process for Docbook and supporting tools +is taken verbatim from Linux From Scratch: +http://www.linuxfromscratch.org/blfs/view/svn/index.html +I have in the past looked at Fedora and Debian spec & rules files +but LFS has great documentation and makes maintaining this package +a lot easier, so I'm very keen to keep to their build process +(including file/directory paths) as much as possible. + +If anybody knows how to resolve this, please let me know! + +Fri May 29 18:48:41 BST 2009 + Stuart Winter <mozes@slackware.com> + linuxdoc-tools-0.9.56, build 3. + * Remove orphaned *.pyc (Python compiled) files. + The addition of GNOME doc-tools causes some Python *.py + files to be recompiled, resulting in them appearing in this + package. These files belonged to the Python package and + therefore caused an overlap. + +Mon May 25 14:29:26 BST 2009 + Stuart Winter <mozes@slackware.com> + linuxdoc-tools-0.9.56, build 2. + * Added missing asciidoc filters. + Thanks to 'one forall' for the report. + Now use asciidoc's 'make install' target to install + rather than hand crafted script. + +Tue May 12 18:34:38 BST 2009 + Stuart Winter <mozes@slackware.com> + linuxdoc-tools-0.9.56, build 1. + * Upgraded to linuxdoc-tools 0.9.56 + * Patched OpenSP to prevent segfaulting on the ARM platform: + https://bugzilla.redhat.com/show_bug.cgi?id=245104 + * Added gnome-doc-utils-0.16.0, for gtkdoc. + * Upgraded to gtkdoc-1.11 + * Upgraded to xmlto-0.0.22 + * Upgraded to asciidoc-8.4.4 + +Thu Feb 28 17:47:21 CST 2008 <pjv> + Upgraded these source files: + asciidoc-8.2.5.tar.gz + docbook-utils-0.6.14-13.fc9.src.rpm + docbook-xsl-1.73.2.tar.bz2 + docbook-xsl-doc-1.73.2.tar.bz2 + gtk-doc-1.9.tar.bz2 + libsgmls-perl_1.03ii-32.diff.gz + linuxdoc-tools_0.9.21-0.11.tar.gz + sgml-common-0.6.3-23.fc9.src.rpm + xmlto-0.0.20.tar.bz2 + +Sat May 5 13:38:46 BST 2007 + Stuart Winter <mozes@slackware.com> + linuxdoc-tools-0.9.21, build 4 + * Converted from docbook RPM source builds to direct source build, with + the build script code by: Jerome Pinot + based on the Linux From Scratch documentation. + Merged some of Jerome's code back into the original linuxdoc-tools.build + script. + This fixes many bugs with the previous package, with broken catalogs + and so on. + * Upgraded to gtk-doc v1.8 + * Upgraded to DocBook SGML DTD v4.5 + * Upgraded to DocBook DSSSL Stylesheets v1.79 + * Upgraded to DocBook XML DTD v4.5 + * Upgraded to DocBook XSL Stylesheets v1.72.0 & docs + * Added AsciiDoc v8.2.1 + * Added xmlto v0.0.18 + * Removed unused build script code cruft from linuxdoc-tools.build + * Re-ordered the build script since OpenSP v1.5.2 requires xmlto, + and xmlto requires the docbook stuff to be installed. + * Removed buildDocBookCatalog script. If you delete your system's SGML or XML + catalog scripts, thinking that this script can repopulate them, it won't. + If you're adding docbook data to your system, you need to read the docs that + come with the new data you're installing. + * Thanks to Red Hat for the loan of a laptop on which to test this build ;-) + +Sat Oct 01 2005 + * Previous releases diff --git a/source/ap/linuxdoc-tools/arm/build b/source/ap/linuxdoc-tools/arm/build new file mode 100755 index 000000000..d59da3271 --- /dev/null +++ b/source/ap/linuxdoc-tools/arm/build @@ -0,0 +1,48 @@ +#!/bin/bash + +# armel/build +# Check package dependencies, set metadata and launch +# package build script. +# by Stuart Winter <stuart@armedslack.org> +# +source /usr/share/slackdev/buildkit.sh + +# Package metadata: +export PKGNAM=linuxdoc-tools +export VERSION=${VERSION:-0.9.56} +export PKGARCH=${PKGARCH:-arm} +export BUILD=${BUILD:-1} +export PKGSERIES=${PKGSERIES:-ap} +export SLACKPACKAGE=$PKGNAM-$VERSION-$PKGARCH-$BUILD.tgz +export PKGEXT=${PKGEXT:-tgz} + +# Ensure base ARM packages are installed first: +slackbasedeps + +# Ensure $PKGNAM isn't already installed: +slackfailpkgdeps $PKGNAM || removepkg $PKGNAM + +# Ensure specific build dependencies - libraries and development tools. +# There are many more dependencies but these are the core ones I picked out +# as I was building the software included within this package. +# +#slackcheckpkgdeps libxml2 || installpkg $PKGSTORE/l/libxml2-*.tgz +# to unpack some SRPMs: +#slackcheckpkgdeps rpm || installpkg $PKGSTORE/ap/rpm-*.tgz +# for OpenJade: +#slackcheckpkgdeps tetex || installpkg $PKGSTORE/t/tetex-[0-9]*.tgz +# for AsciiDoc: +#slackcheckpkgdeps python || installpkg $PKGSTORE/d/python-[0-9]*.tgz +# Ensure the packages are installed; exit if not. +#slackcheckpkgdeps python,libxml2,rpm,tetex || exit 99 + +# Stop daemons/processes which tend to modify the contents of the filesystem: +altertrackprep + +# Launch the package build script: +BUILDLOG=$( basename $SLACKPACKAGE .tgz ).build.log +# ( ./$PKGNAM.SlackBuild ) >& /dev/stdout | tee $BUILDLOG +( ./trackbuild.$PKGNAM ) >& /dev/stdout | tee $BUILDLOG + +# Compress the build log: +bzip2 -9f $BUILDLOG diff --git a/source/ap/linuxdoc-tools/linuxdoc-tools.SlackBuild b/source/ap/linuxdoc-tools/linuxdoc-tools.SlackBuild new file mode 100755 index 000000000..7c2f20540 --- /dev/null +++ b/source/ap/linuxdoc-tools/linuxdoc-tools.SlackBuild @@ -0,0 +1 @@ +./trackbuild.linuxdoc-tools diff --git a/source/ap/linuxdoc-tools/linuxdoc-tools.build b/source/ap/linuxdoc-tools/linuxdoc-tools.build new file mode 100755 index 000000000..8d28ea332 --- /dev/null +++ b/source/ap/linuxdoc-tools/linuxdoc-tools.build @@ -0,0 +1,946 @@ +#!/bin/bash + +############################################################################### +# Script: linuxdoc-tools.build +# Purpose: Build & install all components that form the linuxdoc-tools +# Slackware Package. +# Credit: written by Stuart Winter <mozes@slackware.com> +# with the docbook build code by Jerome Pinot <ngc891@gmail.com> +# and some script code taken from Debian, Red Hat/Fedora & +# Linux From Scratch documentation +# http://www.linuxfromscratch.org/blfs/view/svn/index.html +# http://cblfs.cross-lfs.org/index.php/Category:DocBook_SGML +# Thanks guys! :-) +############################################################################### + +# Version of LDT (which is also the .t?z package version) +LINUXDOCTOOLSVER=0.9.56 + +# Bundled package versions: +SGMLDTD3VER=3.1 +SGMLDTD4VER=4.5 +XMLDTDVER=4.5 +XSLSTYLESHEETSVER=1.75.1 +DSSSLSTYLESHEETSVER=1.79 +SGMLCOMMONVER=0.6.3 +OPENJADEVER=1.3.3-pre1 +OPENSPVER=1.5.2 +GNOMEDOCUTILSVER=0.17.2 +GTKDOCVER=1.11 +SGMLSPLVER=1.03ii +XMLTOVER=0.0.22 +ASCIIDOCVER=8.4.5 +DOCBOOKUTILSVER=0.6.14 + +# Determine the general CFLAGS for the known architectures: +case $ARCH in + arm) export SLKCFLAGS="-O2 -march=armv4t" + export LIBDIRSUFFIX="" + export HOSTTARGET="-gnueabi" + ;; + i486) export SLKCFLAGS="-O2 -march=i486 -mtune=i686" + export LIBDIRSUFFIX="" + export HOSTTARGET="" + ;; + s390) export SLKCFLAGS="-O2" + export LIBDIRSUFFIX="" + export HOSTTARGET="" + ;; + x86_64) export SLKCFLAGS="-O2 -fPIC" + export LIBDIRSUFFIX="64" + export HOSTTARGET="" + ;; +esac + +# The build order is purposive. +# The build order for the XML style sheets & docbook stuff comes from +# the Linux from Scratch documentation; the other rest is because of +# dependency build order. + +####################### Build AsciiDoc ############################## + +# Extract source: +cd $TMP +tar xvf $CWD/sources/asciidoc-$ASCIIDOCVER.tar.gz || exit 1 +cd asciidoc-$ASCIIDOCVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --docdir=/usr/doc/asciidoc-$ASCIIDOCVER \ + --mandir=/usr/man || exit 1 + +# Install: +make install && make docs || exit 1 +find /etc/asciidoc -type f -print0 | xargs -0 chmod 644 + +# Copy docs: +mkdir -vpm755 /usr/doc/asciidoc-$ASCIIDOCVER +cp -fav \ + BUGS CHANGELOG COPY* README \ + /usr/doc/asciidoc-$ASCIIDOCVER/ + +####################### Build sgml-common ############################ + +# Extract source. We're using a source RPM since it contains a number of +# patches that we need: +cd $TMP +rpm2tgz $CWD/sources/sgml-common-${SGMLCOMMONVER}*.src.rpm +tar xvf sgml-common-*src.tgz +cd sgml-common-$SGMLCOMMONVER-* || exit 1 +# The real source archive is stored inside the source RPM, you see: +tar xvf sgml-common-$SGMLCOMMONVER.tgz || exit 1 +cd sgml-common-$SGMLCOMMONVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Apply patches (these are included in the source rpm): +for i in \ + sgml-common-0.6.3-docdir.patch \ + sgml-common-automake.patch \ + sgml-common-quotes.patch \ + sgml-common-umask.patch ; do + patch --verbose -p1 < ../$i +done || exit 1 + +# Configure: +#aclocal +#automake --add-missing --copy +autoreconf -vif +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --with-docdir=/usr/doc \ + --sysconfdir=/etc \ + || exit 1 + +# Build & install: +make -e 'mkdir_p=mkdir -p' install || exit 1 + +# Create catalog: +install-catalog --add /etc/sgml/sgml-ent.cat \ + /usr/share/sgml/sgml-iso-entities-8879.1986/catalog +install-catalog --add /etc/sgml/sgml-docbook.cat \ + /etc/sgml/sgml-ent.cat + +# Copy docs: +mkdir -vpm755 /usr/doc/sgml-common-$SGMLCOMMONVER +cp -fav \ + COPYING AUTHORS INSTALL NEWS README ChangeLog ../sgml-common-CHANGES \ + /usr/doc/sgml-common-$SGMLCOMMONVER + +####################### Install docbooks ############################ + +# Extract source: +cd $TMP +mkdir sgml-dtd +cd sgml-dtd +# Debian handily package all docbooks past and present in one archive +# but they version number the archive with the latest version. +tar xvf $CWD/sources/docbook_*orig*.tar.gz +cd docbook* || exit 1 +zcat $CWD/sources/docbook_*.diff.gz | patch -p1 || exit 1 +# Don't apply the patches because whilst I know that the problem we have +# on Slackware does not exist on Debian, I want to keep the Slackware +# build in line with Linux From Scratch, since their documentation is +# excellent. +#for i in debian/patches/*.dpatch ; do patch --verbose -p1 < $i ; done +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + + +############### +## sgml-dtd3 ## +############### + +( cd docbook-$SGMLDTD3VER + + # Remove the ENT definitions from the catalog file: + sed -i -e '/ISO 8879/d' docbook.cat + # Replace the DTDDECL catalog entry, which is not supported by Linux SGML tools, + # with the SGMLDECL catalog entry + sed -i -e 's|DTDDECL "-//OASIS//DTD Docbook V3.1//EN"|SGMLDECL|g' docbook.cat + + # Install: + mkdir -vpm755 /etc/sgml + mkdir -vpm755 /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER + install -vpm644 docbook.cat /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER/catalog + install -vpm644 *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER/ + + # Update SGML catalog: + install-catalog --add /etc/sgml/sgml-docbook-dtd-$SGMLDTD3VER.cat \ + /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER/catalog + install-catalog --add /etc/sgml/sgml-docbook-dtd-$SGMLDTD3VER.cat \ + /etc/sgml/sgml-docbook.cat + +# Use only the most current 3.x version of DocBook SGML DTD: +cat >> /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER/catalog << "EOF" + -- Begin Single Major Version catalog changes -- + +PUBLIC "-//Davenport//DTD DocBook V3.0//EN" "docbook.dtd" + + -- End Single Major Version catalog changes -- +EOF + + # Copy docs: + mkdir -vpm755 /usr/doc/sgml-dtd-$SGMLDTD3VER + cp -fav \ + ChangeLog *.txt \ + /usr/doc/sgml-dtd-$SGMLDTD3VER/ +) + +############### +## sgml-dtd4 ## +############### +# For reference: +# http://cblfs.cross-lfs.org/index.php/DocBook_SGML_DTD-4.x +# http://www.linuxfromscratch.org/blfs/view/svn/pst/sgml-dtd.html + + +( cd docbook-$SGMLDTD4VER + + # Remove the ENT definitions from the catalog file: + sed -i -e '/ISO 8879/d' -e '/gml/d' docbook.cat + + # Install: + mkdir -vpm755 /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER + install -vpm644 docbook.cat /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog + cp -fav *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER + # Update SGML catalog: + install-catalog --add /etc/sgml/sgml-docbook-dtd-$SGMLDTD4VER.cat \ + /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog + install-catalog --add /etc/sgml/sgml-docbook-dtd-$SGMLDTD4VER.cat \ + /etc/sgml/sgml-docbook.cat + + # Use only the most current 4.x version of DocBook SGML DTD : + # When you upgrade sgml-dtd4, put the PREVIOUS version number in + # with the lines below. +cat << EOF >> /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog + -- Begin Single Major Version catalog changes -- +EOF +for i in 4.4 4.3 4.2 4.1 4.0; do +cat << EOF >> /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog +PUBLIC "-//OASIS//DTD DocBook V${i}//EN" "docbook.dtd" +EOF +done +cat << EOF >> /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog + + -- End Single Major Version catalog changes -- +EOF + + # Copy docs: + mkdir -vpm755 /usr/doc/sgml-dtd4-$SGMLDTD4VER + cp -fav \ + ChangeLog README \ + /usr/doc/sgml-dtd4-$SGMLDTD4VER/ + +) + +####################### Build OpenSP ############################ + +# Extract source: +cd $TMP +rpm2tgz $CWD/sources/opensp-${OPENSPVER}*.src.rpm +tar xvf opensp*src.tgz +cd opensp-${OPENSPVER}* || exit 1 +tar xvf OpenSP-$OPENSPVER.tar.gz || exit 1 +cd OpenSP-$OPENSPVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +sed -i 's:32,:253,:' lib/Syntax.cxx +sed -i 's:LITLEN 240 :LITLEN 8092:' unicode/{gensyntax.pl,unicode.syn} + +# Stop OpenJade from segfaulting: +patch --verbose -p1 < ../opensp-sigsegv.patch || exit 1 + +# Configure without optimisation. OpenSP & OpenJade +# are sensitive to optimisations, resulting in segfaults, +# particularly on the ARM platform. +# +# This is configured not to build the documentation. If anybody really needs +# it, let me know and I'll adjust the build script - it's just a PITA to +# get working. +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --datadir=/usr/share \ + --infodir=/usr/info \ + --disable-dependency-tracking \ + --disable-static \ + --disable-doc-build \ + --enable-http \ + --enable-default-catalog=/etc/sgml/catalog \ + --enable-default-search-path=/usr/share/sgml \ + || exit 1 + +# Build: +make pkgdatadir=/usr/share/sgml/OpenSP-$OPENSPVER || exit 1 + +# Install: +make install DESTDIR=/ || exit 1 + +# This allows OpenJade to link with OpenSP. +( cd /usr/lib${LIBDIRSUFFIX} && ln -vsf libosp.so libsp.so ) + +# Rename sx to sgml2xml & create symlinks: +mv -f /usr/bin/osx /usr/bin/osgml2xml +( cd /usr/bin ; ln -vfs osgml2xml osx ) +mv -f /usr/man/man1/osx.1 /usr/man/man1/osgml2xml.1 +( cd /usr/man/man1 ; ln -vfs osgml2xml.1 osx.1 ) + +# Create symlinks to binaries: +( cd /usr/bin + for file in nsgmls sgmlnorm spam spent sgml2xml ; do + rm -f $file + ln -vfs o$file $file + done +) + +# Fix man pages: +( cd /usr/man/man1 + for file in nsgmls sgmlnorm spam spent sgml2xml ; do + rm -f ${file}.1* + ln -vfs o${file}.1 ${file}.1 + done +) + +# Rename docs directory: +mv -fv /usr/doc/OpenSP /usr/doc/OpenSP-$OPENSPVER + +####################### Build OpenJade ############################ +# Reference: +# http://cblfs.cross-lfs.org/index.php/OpenJade + +# Extract source: +cd $TMP +tar xvf $CWD/sources/openjade-${OPENJADEVER}.tar.gz +cd openjade-${OPENJADEVER} || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Apply patches: +sed -i "s/iostream.h/iostream/g" style/MultiLineInlineNote.cxx + +# Configure without optimisation. +# OpenSP & OpenJade are sensitive to optimisations and can result +# in segfaults with anything other than O2 - particularly on the ARM +# platform. +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-splibdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-static \ + --enable-http \ + --enable-default-catalog=/etc/sgml/catalog \ + --enable-default-search-path=/usr/share/sgml \ + --datadir=/usr/share/sgml/openjade-$OPENJADEVER \ + || exit 1 + +# Build: +make || exit 1 + +# Install: +mkdir -p /etc/sgml +make install || exit 1 +make install-man || exit 1 +( cd /usr/bin && ln -vfs openjade jade ) +( cd /usr/man/man1 && ln -vfs openjade.1 jade.1 ) +ln -vsf libogrove.so /usr/lib${LIBDIRSUFFIX}/libgrove.so +ln -vsf libospgrove.so /usr/lib${LIBDIRSUFFIX}/libspgrove.so +ln -vsf libostyle.so /usr/lib${LIBDIRSUFFIX}/libstyle.so +install -vpm644 dsssl/catalog /usr/share/sgml/openjade-$OPENJADEVER +install -vpm644 dsssl/*.{dtd,dsl,sgm} /usr/share/sgml/openjade-$OPENJADEVER + +# Update SGML catalog: +install-catalog --add /etc/sgml/openjade-$OPENJADEVER.cat \ + /usr/share/sgml/openjade-$OPENJADEVER/catalog +install-catalog --add /etc/sgml/sgml-docbook.cat \ + /etc/sgml/openjade-$OPENJADEVER.cat + +# Update system configuration: +echo "SYSTEM \"http://www.oasis-open.org/docbook/xml/${XMLDTDVER}/docbookx.dtd\" \ + \"/usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/docbookx.dtd\"" >> \ + /usr/share/sgml/openjade-${OPENJADEVER}/catalog + +# Copy docs: +mkdir -vpm755 /usr/doc/openjade-$OPENJADEVER +cp -fav \ + COPYING NEWS README VERSION \ + doc/* dsssl/README.jadetex pubtext jadedoc unicode \ + /usr/doc/openjade-$OPENJADEVER + +# The original package has this file, but it has most of the world's +# documentation too; we'll leave it in for the time being but I don't like it. +#rm -f /usr/doc/openjade-$OPENJADEVER/doc/Makefile + +####################### Build dsssl-stylesheets #################### + +# Extract source: +cd $TMP +mkdir docbook-dsssl-$DSSSLSTYLESHEETSVER +cd docbook-dsssl-$DSSSLSTYLESHEETSVER +tar xvf $CWD/sources/docbook-dsssl-$DSSSLSTYLESHEETSVER.tar.bz2 || exit 1 +tar xvf $CWD/sources/docbook-dsssl-doc-$DSSSLSTYLESHEETSVER.tar.bz2 || exit 1 +cd docbook-dsssl-$DSSSLSTYLESHEETSVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install: +install -pm755 bin/collateindex.pl /usr/bin +install -pm644 bin/collateindex.pl.1 /usr/man/man1 +# Eeek! Debian trim this down but we'll leave it for the moment: +mkdir -vpm755 /usr/share/sgml/docbook/dsssl-stylesheets-$DSSSLSTYLESHEETSVER/common +cp -fav * /usr/share/sgml/docbook/dsssl-stylesheets-$DSSSLSTYLESHEETSVER + +# Update catalog: +install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \ + /usr/share/sgml/docbook/dsssl-stylesheets-$DSSSLSTYLESHEETSVER/catalog +install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \ + /usr/share/sgml/docbook/dsssl-stylesheets-$DSSSLSTYLESHEETSVER/common/catalog +install-catalog --add /etc/sgml/sgml-docbook.cat \ + /etc/sgml/dsssl-docbook-stylesheets.cat + +# Copy docs: +mkdir -vpm755 /usr/doc/dsssl-stylesheets-$DSSSLSTYLESHEETSVER +cp -fav \ + WhatsNew VERSION RELEASE-NOTES.txt README ChangeLog BUGS \ + /usr/doc/dsssl-stylesheets-$DSSSLSTYLESHEETSVER +cp -fav \ + frames/README \ + /usr/doc/dsssl-stylesheets-$DSSSLSTYLESHEETSVER/README.frames + +####################### Build docbook-utils ######################## + +# docbook-utils requires some of the docbook docs to be installed +# prior to being built. + +# Extract source: +cd $TMP +rpm2tgz $CWD/sources/docbook-utils-${DOCBOOKUTILSVER}*.src.rpm +tar xvf docbook-utils-*src.tgz +cd docbook-utils-${DOCBOOKUTILSVER}* || exit 1 +tar xvf docbook-utils-$DOCBOOKUTILSVER.tar.gz || exit 1 +cd docbook-utils-$DOCBOOKUTILSVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Apply patches: +for i in \ + docbook-utils-2ndspaces.patch \ + docbook-utils-grepnocolors.patch \ + docbook-utils-spaces.patch \ + docbook-utils-w3mtxtconvert.patch ; do + patch --verbose -p1 < ../$i +done || exit 1 + +# Configure: +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + || exit 1 + +# Build: +make || exit 1 + +# Install: +make install htmldir=/usr/doc/docbook-utils-$DOCBOOKUTILSVER/html || exit 1 + +# db2html is not just a symlink, as it has to create the output directory: +rm -f /usr/bin/db2html +install -vpm755 ../db2html /usr/bin +install -vpm644 ../gdp-both.dsl /usr/share/sgml/docbook/utils-$DOCBOOKUTILSVER/docbook-utils.dsl + +# Make binary symlinks: +( cd /usr/bin + for util in dvi html pdf ps rtf ; do + rm -f db2$util + ln -vfs docbook2$util db2$util + done +) + +# Make man page symlinks: +( cd /usr/man/man1 + for util in dvi html pdf ps rtf ; do + rm -f db2$util.1* + ln -vfs jw.1 db2$util.1 + done +) + +# Copy docs: +mkdir -vpm755 /usr/doc/docbook-utils-$DOCBOOKUTILSVER +cp -fav \ + AUTHORS NEWS README TODO \ + /usr/doc/docbook-utils-$DOCBOOKUTILSVER + +############################ +## xml-dtd / docbook-xml ## +############################ + +# Extract source: +cd $TMP +mkdir xml-dtd-$XMLDTDVER +cd xml-dtd-$XMLDTDVER +unzip $CWD/sources/docbook-xml-$XMLDTDVER.zip || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install 4.x catalog: +mkdir -vpm755 /usr/share/xml/docbook/xml-dtd-$XMLDTDVER +cp -fav docbook.cat *.dtd *.mod ent/ \ + /usr/share/xml/docbook/xml-dtd-$XMLDTDVER + +# Use the Unicode-4 entities from sgml-common to fix errors such as +# "1D6C2" is not a character number in the document character set +( cd /usr/share/xml/docbook/xml-dtd-$XMLDTDVER/ent + rm -fv isogrk4.ent + ln -vfs ../../../../sgml/xml-iso-entities-*.*/ISOgrk4.ent isogrk4.ent ) + +# Create config files: +mkdir -vpm755 /etc/xml + +# This code is taken directly from: +# http://www.linuxfromscratch.org/blfs/view/svn/pst/xml.html#DocBook +# +# Populate /etc/xml/docbook: +# +if [ ! -e /etc/xml/docbook ]; then + xmlcatalog --noout --create /etc/xml/docbook +fi && +xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML V${XMLDTDVER}//EN" \ + "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}/docbookx.dtd" \ + /etc/xml/docbook && +xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML CALS Table Model V${XMLDTDVER}//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/calstblx.dtd" \ + /etc/xml/docbook && +xmlcatalog --noout --add "public" \ + "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/soextblx.dtd" \ + /etc/xml/docbook && +xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Information Pool V${XMLDTDVER}//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbpoolx.mod" \ + /etc/xml/docbook && +xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V${XMLDTDVER}//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbhierx.mod" \ + /etc/xml/docbook && +xmlcatalog --noout --add "public" \ + "-//OASIS//ELEMENTS DocBook XML HTML Tables V${XMLDTDVER}//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/htmltblx.mod" \ + /etc/xml/docbook && +xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Notations V${XMLDTDVER}//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbnotnx.mod" \ + /etc/xml/docbook && +xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Character Entities V${XMLDTDVER}//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbcentx.mod" \ + /etc/xml/docbook && +xmlcatalog --noout --add "public" \ + "-//OASIS//ENTITIES DocBook XML Additional General Entities V${XMLDTDVER}//EN" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbgenent.mod" \ + /etc/xml/docbook && +xmlcatalog --noout --add "rewriteSystem" \ + "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}" \ + /etc/xml/docbook && +xmlcatalog --noout --add "rewriteURI" \ + "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}" \ + "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}" \ + /etc/xml/docbook + +# +# Populate /etc/xml/catalog: +# +if [ ! -e /etc/xml/catalog ]; then + xmlcatalog --noout --create /etc/xml/catalog +fi && +xmlcatalog --noout --add "delegatePublic" \ + "-//OASIS//ENTITIES DocBook XML" \ + "file:///etc/xml/docbook" \ + /etc/xml/catalog && +xmlcatalog --noout --add "delegatePublic" \ + "-//OASIS//DTD DocBook XML" \ + "file:///etc/xml/docbook" \ + /etc/xml/catalog && +xmlcatalog --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/" \ + "file:///etc/xml/docbook" \ + /etc/xml/catalog && +xmlcatalog --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/" \ + "file:///etc/xml/docbook" \ + /etc/xml/catalog + +# Rewrites for older docbooks. This allows older docbooks to be referenced. +# It means, however, that you __*shouldn't* have these older docbooks__ +# installed on your system; +# so if you just keep the Slackware linuxdoc-tools package you'll be fine: +# +for DTDVERSION in 4.1.2 4.2 4.3 4.4 +do + xmlcatalog --noout --add "public" \ + "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \ + /etc/xml/docbook + xmlcatalog --noout --add "rewriteSystem" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \ + "file:///usr/share/xml/docbook/xml-dtd-$XMLDTDVER" \ + /etc/xml/docbook + xmlcatalog --noout --add "rewriteURI" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \ + "file:///usr/share/xml/docbook/xml-dtd-$XMLDTDVER" \ + /etc/xml/docbook + xmlcatalog --noout --add "delegateSystem" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \ + "file:///etc/xml/docbook" \ + /etc/xml/catalog + xmlcatalog --noout --add "delegateURI" \ + "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \ + "file:///etc/xml/docbook" \ + /etc/xml/catalog +done + +# Copy docs: +mkdir -pm755 /usr/doc/xml-dtd-$XMLDTDVER +cp -favv \ + ChangeLog README \ + /usr/doc/xml-dtd-$XMLDTDVER + +############################### +## docbook-xsl (stylesheets) ## +############################### + +# Extract source: +cd $TMP +mkdir docbook-xsl-$XSLSTYLESHEETSVER +cd docbook-xsl-$XSLSTYLESHEETSVER +rpm2tgz $CWD/sources/docbook-style-xsl-${XSLSTYLESHEETSVER}*.src.rpm +tar xvf docbook-style-xsl*.tgz +cd docbook-style-xsl-$XSLSTYLESHEETSVER* || exit 1 +tar xvf docbook-xsl-$XSLSTYLESHEETSVER.tar.bz2 +# This unpacks atop of the main tree: +tar xvf docbook-xsl-doc-$XSLSTYLESHEETSVER.tar.bz2 + +# Enter unpacked sources: +cd docbook-xsl-$XSLSTYLESHEETSVER + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Apply patches: +for i in \ + docbook-xsl-list-item-body.patch \ + docbook-xsl-marginleft.patch \ + docbook-xsl-newmethods.patch \ + docbook-xsl-non-constant-expressions.patch \ + docbook-xsl-pagesetup.patch ; do + patch --verbose -p1 < ../$i +done || exit 1 + +# Install: +mkdir -vpm755 /usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER +cp -fav \ + VERSION common eclipse extensions fo highlighting html \ + htmlhelp images javahelp lib manpages params profiling \ + slides template tools website wordml xhtml \ + /usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER + +# Create config files: +if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi +if [ ! -f /etc/xml/catalog ]; then + xmlcatalog --noout --create /etc/xml/catalog +fi + +# Configure system: +xmlcatalog --noout --add "rewriteSystem" \ + "http://docbook.sourceforge.net/release/xsl/$XSLSTYLESHEETSVER" \ + "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ + /etc/xml/catalog + +xmlcatalog --noout --add "rewriteURI" \ + "http://docbook.sourceforge.net/release/xsl/$XSLSTYLESHEETSVER" \ + "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ + /etc/xml/catalog + +xmlcatalog --noout --add "rewriteSystem" \ + "http://docbook.sourceforge.net/release/xsl/current" \ + "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ + /etc/xml/catalog + +xmlcatalog --noout --add "rewriteURI" \ + "http://docbook.sourceforge.net/release/xsl/current" \ + "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ + /etc/xml/catalog + +# Copy docs: +mkdir -vpm755 /usr/doc/docbook-xsl-$XSLSTYLESHEETSVER +cp -fav doc/* README* RELEASE-NOTES* NEWS* \ + /usr/doc/docbook-xsl-$XSLSTYLESHEETSVER + +####################### Build xmlto ################################ + +# Extract source: +cd $TMP +tar xvf $CWD/sources/xmlto-$XMLTOVER.tar.bz2 || exit 1 +cd xmlto-$XMLTOVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + || exit 1 + +# Build: +make || exit 1 + +# Install: +make install || exit 1 + +# Copy docs: +mkdir -vpm755 /usr/doc/xmlto-$XMLTOVER +cp -fav \ + AUTHORS COPYING ChangeLog FAQ INSTALL NEWS README \ + /usr/doc/xmlto-$XMLTOVER + +####################### Build SGMLSPL ############################## + +# Extract source: +cd $TMP +tar xvf $CWD/sources/libsgmls-perl_$SGMLSPLVER.orig.tar.gz || exit 1 +cd libsgmls-perl-$SGMLSPLVER.orig +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +zcat $CWD/sources/libsgmls-perl_$SGMLSPLVER-*.diff.gz | patch -p1 || exit 1 + +# Configure: +perl Makefile.PL INSTALLDIRS=vendor || exit 1 +sed -i 's?/share/man?/man/?g' Makefile + +# Build: +make OPTIMIZE="$SLKCFLAGS" || exit 1 + +# Install: +make install PREFIX=/usr +sed 's?usr/share/doc/sgmls-doc/?usr/doc/sgmlspl-'"$SGMLSPLVER"'/?g' sgmlspl.1 > /usr/man/man1/sgmlspl.1 + +# Copy docs: +mkdir -vpm755 /usr/doc/sgmlspl-$SGMLSPLVER +cp -fav \ + BUGS COPYING README TODO \ + /usr/doc/sgmlspl-$SGMLSPLVER +cp -fav \ + DOC/HTML/{SGMLSpm,sgmlspl} \ + /usr/doc/sgmlspl-$SGMLSPLVER + +####################### Build linuxdoc-tools ######################## + +# Extract source: +cd $TMP +#rpm2tgz $CWD/sources/linuxdoc-tools-${LINUXDOCTOOLSVER}*.src.rpm +#tar xvf linuxdoc-tools-$LINUXDOCTOOLSVER*.tgz +#cd linuxdoc-tools-$LINUXDOCTOOLSVER* || exit 1 +#tar xvf linuxdoc-tools_$LINUXDOCTOOLSVER.tar.gz +tar xvf $CWD/sources/linuxdoc-tools_$LINUXDOCTOOLSVER*.tar.gz +cd linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Apply patches (these are included in the source rpm): +#for i in \ +# linuxdoc-tools-0.9.13-letter.patch \ +# linuxdoc-tools-0.9.20-lib64.patch ; do +# patch --verbose -p1 < ../$i +#done || exit 1 +# Add lib64 in Perl's path on a 64bit machine: +patch --verbose -p1 < $CWD/sources/linuxdoc-tools.lib64.diff || exit 1 + +# Find out what our Vendor perl directory is: +eval $(perl '-V:installvendorlib') +mkdir -p $PKG/$installvendorlib + +# Configure: +./configure \ + --prefix=/usr \ + --with-perllibdir=$installvendorlib \ + --mandir=/usr/man \ + --with-installed-nsgmls \ + --infodir=/usr/info \ + || exit 1 +# --with-installed-iso-entities \ +# --with-texdir=/usr/share/texmf/tex/latex/ \ + +# Adjust doc dir location: +sed -i 's?share/doc/linuxdoc-tools?doc/linuxdoc-tools-'"$$LINUXDOCTOOLSVER"'?g' Makefile + +#( cd entity-map && autoconf && ./configure ) + +# Build serial. This does build in parallel but +# I find linuxdoc-tools to be fragile between versions: +make \ + perl5libdir=$PKG/$installvendorlib \ + OPTIMIZE="$SLKCFLAGS" \ + PERL=/usr/bin/perl \ + DESTDIR=/ \ + LINUXDOCDOC=/usr/doc/linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1 + +# Install: +make install \ + PERL=/usr/bin/perl \ + perl5libdir=$PKG/$installvendorlib \ + DESTDIR=/ \ + LINUXDOCDOC=/usr/doc/linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1 + +# Install shell scripts for sgml2{txt,latex,info} +for i in txt latex info; do \ + install -vpm755 debian/addition/sgml2$$i \ + /usr/bin/sgml2$$i; \ +done + +# Install info page: +cat debian/linuxdoc-tools.info-base doc/guide.info > /usr/info/linuxdoc-sgml.info + +# This package contains a number of programs. +# We maintain our own change log for this package. Since the package name is +# 'linuxdoc-tools', let's put our changelog into here: +install -vpm644 $CWD/ChangeLog.txt /usr/doc/linuxdoc-tools-$LINUXDOCTOOLSVER/Slackware-ChangeLog.txt + +####################### Build gnome-doc-utils ####################### + +# Extract source: +cd $TMP +tar xvf $CWD/sources/gnome-doc-utils-$GNOMEDOCUTILSVER.tar.bz2 +cd gnome-doc-utils-* + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-scrollkeeper \ + --build=$ARCH-slackware-linux$HOSTTARGET || exit 1 + +# No parallel build here because it doesn't work: +make || exit 1 + +# Install: +make install DESTDIR=/ || exit 1 + +# Copy docs: +mkdir -p $PKG/usr/doc/gnome-doc-utils-$GNOMEDOCUTILSVER +cp -fav \ + AUTHORS ChangeLog COPYING* INSTALL NEWS README \ + /usr/doc/gnome-doc-utils-$GNOMEDOCUTILSVER + +####################### Build gtk-doc ############################### + +# Extract source: +cd $TMP +tar xvf $CWD/sources/gtk-doc-$GTKDOCVER.tar.bz2 || exit 1 +cd gtk-doc-$GTKDOCVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +./configure \ + --prefix=/usr \ + --enable-public-id \ + --disable-scrollkeeper \ + || exit 1 + +# Build: +make || exit 1 + +# Install: +make install || exit 1 + +# Copy docs: +mkdir -vpm755 /usr/doc/gtk-doc-$GTKDOCVER +cp -fav \ + AUTHORS COPYING INSTALL MAINTAINERS NEWS README TODO \ + /usr/doc/gtk-doc-$GTKDOCVER + +####################################################################### + +# Install the package description: +rm -rf /install +mkdir -vpm755 /install +install -vpm644 $CWD/slack-desc /install diff --git a/source/ap/linuxdoc-tools/postbuildfixes.sh b/source/ap/linuxdoc-tools/postbuildfixes.sh new file mode 100755 index 000000000..b9e305eec --- /dev/null +++ b/source/ap/linuxdoc-tools/postbuildfixes.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +# Once altertrack has determined what the contents of the package +# should be, it copies them into $SLACKTRACKFAKEROOT +# From here we can make modifications to the package's contents +# immediately prior to the invocation of makepkg: altertrack will +# do nothing else with the contents of the package after the execution +# of this script. + +# If you modify anything here, be careful *not* to include the full +# path name - only use relative paths (ie rm usr/bin/foo *not* rm /usr/bin/foo). + +# Enter the package's contents: +cd $SLACKTRACKFAKEROOT + +# OpenSP creates this symlink; we delete it. +if [ -L usr/share/doc ]; then + rm -f usr/share/doc +fi + +# Incase you had CUPS running: +rm -rf etc/cups etc/printcap +# crond: +rm -rf var/spool/cron +rmdir var/spool + +# perllocal.pod files don't belong in packages. +# SGMLSPL creates this: +find . -name perllocal.pod -print0 | xargs -0 rm -f + +# Some doc dirs have attracted setuid. +# We don't need setuid for anything in this package: +chmod -R a-s . + +# Ensure some permissions. +# I don't know why but these dirs are installed chmod 1755: +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/pk/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/pk/ljfour/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/pk/ljfour/jknappen/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/pk/ljfour/jknappen/ec/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/source/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/source/jknappen/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/source/jknappen/ec/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/tfm/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/tfm/jknappen/ +#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/tfm/jknappen/ec/ +#find var/lib/texmf -type d -print0 | xargs -0 chmod 755 +# This directory needs these permissions to permit pleb accounts to make +# fonts: +#chmod 1777 var/lib/texmf +# +# Never mind: I think this stuff is surplus to requirements: +rm -rf var/lib/texmf +# Now to prevent deletion of anything else that lives in the package's '/var' +rmdir var/lib +rmdir var + +# There's no reason to include huge redundant documentation: +cd usr/doc +find . -name "*.txt" | while read docfile ; do + basedocname=$(echo $docfile | rev | cut -f 2- -d . | rev) + rm -fv ${basedocname}.{html,pdf,xml} + rm -fv docbook-xsl*/reference.pdf.gz +done + +# Now you should manually extract the .tgz +# - check through the install/doinst.sh script; +# - check the contents, permissions and ownerships in the package archive. diff --git a/source/ap/linuxdoc-tools/slack-desc b/source/ap/linuxdoc-tools/slack-desc new file mode 100644 index 000000000..3b9eec9fb --- /dev/null +++ b/source/ap/linuxdoc-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +linuxdoc-tools: linuxdoc-tools (utilities for working with DocBook and SGML) +linuxdoc-tools: +linuxdoc-tools: SGML stands for Standard Generalized Markup Language. This is a +linuxdoc-tools: system which allows you to produce LaTeX, HTML, GNU info, LyX, RTF, +linuxdoc-tools: and plain text (via groff) from a single source file in SGML. It is +linuxdoc-tools: often used for technical software documentation, such as the Linux +linuxdoc-tools: HOWTO documents. +linuxdoc-tools: +linuxdoc-tools: This package includes everything you need to use SGML -- all of the +linuxdoc-tools: standard SGML tools; OpenJade; tools for working with DocBook +linuxdoc-tools: documents (various DTDs); xmlto and AsciiDoc. diff --git a/source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff b/source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff new file mode 100644 index 000000000..1993d3f62 --- /dev/null +++ b/source/ap/linuxdoc-tools/sources/docbook_4.5-4.diff @@ -0,0 +1,1589 @@ +--- docbook-4.5.orig/debian/patches/00list ++++ docbook-4.5/debian/patches/00list +@@ -0,0 +1,4 @@ ++01_remove_entity_sets_and_dcl_from_catalogs ++10_fix_101779_mention_artheader_to_articleinfo_change ++11_fix_dbpoolx_mod_header_comment_pubid ++12_fix_256119_and_turn_on_sgml_mode +--- docbook-4.5.orig/debian/patches/01_remove_entity_sets_and_dcl_from_catalogs.dpatch ++++ docbook-4.5/debian/patches/01_remove_entity_sets_and_dcl_from_catalogs.dpatch +@@ -0,0 +1,567 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 01_remove_entity_sets_and_dcl_from_catalogs.dpatch by ++## Mark Eichin <eichin@kitten.gen.ma.us> and Adam Di Carlo <aph@debian.org>. ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: This patch: ++## DP: * removes all SGML declarations from the catalogs, for more info, see ++## DP: debian/README.docbook.dcl ++## DP: * removes the ISO entity pointers since they are supplied by sgml-data ++## DP: * removes Public-IDs for DocBook XML ++## DP: * forces Public-ID rather than the System-ID in DTD declarations ++## DP: (closes: <URL:http://bugs.debian.org/97330>) ++## DP: ++## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.4-1> ++## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.1-5> ++## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.1-2> ++## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion3.0-4> ++ ++@DPATCH@ ++diff -urNad docbook-4.5~/docbook-2.4.1/docbook.cat docbook-4.5/docbook-2.4.1/docbook.cat ++--- docbook-4.5~/docbook-2.4.1/docbook.cat 1996-04-16 08:53:16.000000000 +0200 +++++ docbook-4.5/docbook-2.4.1/docbook.cat 2007-03-09 16:39:46.000000000 +0100 ++@@ -27,8 +27,13 @@ ++ -- ...................................................................... -- ++ -- SGML declaration associated with DocBook ............................. -- ++ ++-SGMLDECL "docbook.dcl" ++-DTDDECL "-//Davenport//DTD DocBook V2.4.1//EN" "docbook.dcl" +++-- disabled, see README.docbook.dcl -- +++-- SGMLDECL "docbook.dcl" -- +++-- DTDDECL "-//Davenport//DTD DocBook V2.4.1//EN" "docbook.dcl" -- +++ +++ -- ...................................................................... -- +++ -- Prefer PUBID to SYSID ................................................ -- +++OVERRIDE YES ++ ++ -- ...................................................................... -- ++ -- DocBook driver file .................................................. -- ++@@ -43,28 +48,5 @@ ++ PUBLIC "-//Davenport//ELEMENTS DocBook Document Hierarchy V2.4.1//EN" "dbhier.mod" ++ PUBLIC "-//Davenport//ELEMENTS DocBook Additional General Entities//EN" "dbgenent.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml" ++- ++ -- End of DocBook catalog data V2.4.1 ................................... -- ++ -- ...................................................................... -- ++diff -urNad docbook-4.5~/docbook-3.0/docbook.cat docbook-4.5/docbook-3.0/docbook.cat ++--- docbook-4.5~/docbook-3.0/docbook.cat 1996-12-10 16:35:22.000000000 +0100 +++++ docbook-4.5/docbook-3.0/docbook.cat 2007-03-09 16:44:17.000000000 +0100 ++@@ -27,7 +27,12 @@ ++ -- ...................................................................... -- ++ -- SGML declaration associated with DocBook ............................. -- ++ ++-DTDDECL "-//Davenport//DTD DocBook V3.0//EN" "docbook.dcl" +++-- disabled, see README.docbook.dcl -- +++-- DTDDECL "-//Davenport//DTD DocBook V3.0//EN" "docbook.dcl" -- +++ +++ -- ...................................................................... -- +++ -- Prefer PUBID to SYSID ................................................ -- +++OVERRIDE YES ++ ++ -- ...................................................................... -- ++ -- DocBook driver file .................................................. -- ++@@ -42,28 +47,5 @@ ++ PUBLIC "-//Davenport//ELEMENTS DocBook Document Hierarchy V3.0//EN" "dbhier.mod" ++ PUBLIC "-//Davenport//ENTITIES DocBook Additional General Entities V3.0//EN" "dbgenent.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml" ++- ++ -- End of catalog data for DocBook V3.0 ................................. -- ++ -- ...................................................................... -- ++diff -urNad docbook-4.5~/docbook-3.1/docbook.cat docbook-4.5/docbook-3.1/docbook.cat ++--- docbook-4.5~/docbook-3.1/docbook.cat 1999-02-02 06:53:32.000000000 +0100 +++++ docbook-4.5/docbook-3.1/docbook.cat 2007-03-09 16:44:12.000000000 +0100 ++@@ -19,7 +19,12 @@ ++ -- ...................................................................... -- ++ -- SGML declaration associated with DocBook ............................. -- ++ ++-DTDDECL "-//OASIS//DTD DocBook V3.1//EN" "docbook.dcl" +++-- disabled, see README.docbook.dcl -- +++-- DTDDECL "-//OASIS//DTD DocBook V3.1//EN" "docbook.dcl" -- +++ +++ -- ...................................................................... -- +++ -- Prefer PUBID to SYSID ................................................ -- +++OVERRIDE YES ++ ++ -- ...................................................................... -- ++ -- DocBook driver file .................................................. -- ++@@ -36,28 +41,5 @@ ++ PUBLIC "-//OASIS//ENTITIES DocBook Notations V3.1//EN" "dbnotn.mod" ++ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V3.1//EN" "dbcent.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml" ++- ++ -- End of catalog data for DocBook V3.1 ................................. -- ++ -- ...................................................................... -- ++diff -urNad docbook-4.5~/docbook-4.0/docbook.cat docbook-4.5/docbook-4.0/docbook.cat ++--- docbook-4.5~/docbook-4.0/docbook.cat 2000-05-18 21:27:28.000000000 +0200 +++++ docbook-4.5/docbook-4.0/docbook.cat 2007-03-09 16:45:08.000000000 +0100 ++@@ -19,7 +19,12 @@ ++ -- ...................................................................... -- ++ -- SGML declaration associated with DocBook ............................. -- ++ ++-DTDDECL "-//OASIS//DTD DocBook V4.0//EN" "docbook.dcl" +++-- disabled, see README.docbook.dcl -- +++-- DTDDECL "-//OASIS//DTD DocBook V4.0//EN" "docbook.dcl" -- +++ +++ -- ...................................................................... -- +++ -- Prefer PUBID to SYSID ................................................ -- +++OVERRIDE YES ++ ++ -- ...................................................................... -- ++ -- DocBook driver file .................................................. -- ++@@ -36,28 +41,5 @@ ++ PUBLIC "-//OASIS//ENTITIES DocBook Notations V4.0//EN" "dbnotn.mod" ++ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.0//EN" "dbcent.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml" ++- ++ -- End of catalog data for DocBook V4.0 ................................. -- ++ -- ...................................................................... -- ++diff -urNad docbook-4.5~/docbook-4.1/docbook.cat docbook-4.5/docbook-4.1/docbook.cat ++--- docbook-4.5~/docbook-4.1/docbook.cat 2000-06-19 16:50:28.000000000 +0200 +++++ docbook-4.5/docbook-4.1/docbook.cat 2007-03-09 16:53:00.000000000 +0100 ++@@ -19,7 +19,12 @@ ++ -- ...................................................................... -- ++ -- SGML declaration associated with DocBook ............................. -- ++ ++-DTDDECL "-//OASIS//DTD DocBook V4.1//EN" "docbook.dcl" +++-- disabled, see README.docbook.dcl -- +++-- DTDDECL "-//OASIS//DTD DocBook V4.1//EN" "docbook.dcl" -- +++ +++ -- ...................................................................... -- +++ -- Prefer PUBID to SYSID ................................................ -- +++OVERRIDE YES ++ ++ -- ...................................................................... -- ++ -- DocBook driver file .................................................. -- ++@@ -36,28 +41,5 @@ ++ PUBLIC "-//OASIS//ENTITIES DocBook Notations V4.1//EN" "dbnotn.mod" ++ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.1//EN" "dbcent.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "iso-num.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "iso-pub.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "iso-tech.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "iso-lat1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "iso-lat2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "iso-grk1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "iso-grk2.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "iso-grk3.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "iso-grk4.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "iso-amsa.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "iso-amsb.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "iso-amsc.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "iso-amsn.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "iso-amso.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "iso-amsr.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "iso-box.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "iso-cyr1.gml" ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "iso-cyr2.gml" ++- ++ -- End of catalog data for DocBook V4.1 ................................. -- ++ -- ...................................................................... -- ++diff -urNad docbook-4.5~/docbook-4.2/docbook.cat docbook-4.5/docbook-4.2/docbook.cat ++--- docbook-4.5~/docbook-4.2/docbook.cat 2002-07-17 18:14:28.000000000 +0200 +++++ docbook-4.5/docbook-4.2/docbook.cat 2007-03-09 16:42:30.000000000 +0100 ++@@ -22,9 +22,6 @@ ++ PUBLIC "-//OASIS//DTD DocBook V4.2//EN" ++ "docbook.dtd" ++ ++-PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" ++- "docbookx.dtd" ++- ++ -- ...................................................................... -- ++ -- DocBook modules ...................................................... -- ++ ++@@ -49,65 +46,5 @@ ++ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.2//EN" ++ "dbcentx.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" ++- "iso-dia.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" ++- "iso-num.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" ++- "iso-pub.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" ++- "iso-tech.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" ++- "iso-lat1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" ++- "iso-lat2.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" ++- "iso-grk1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" ++- "iso-grk2.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" ++- "iso-grk3.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" ++- "iso-grk4.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" ++- "iso-amsa.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" ++- "iso-amsb.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" ++- "iso-amsc.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" ++- "iso-amsn.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" ++- "iso-amso.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" ++- "iso-amsr.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" ++- "iso-box.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" ++- "iso-cyr1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" ++- "iso-cyr2.gml" ++- ++ -- End of catalog data for DocBook V4.2 ................................. -- ++ -- ...................................................................... -- ++diff -urNad docbook-4.5~/docbook-4.3/docbook.cat docbook-4.5/docbook-4.3/docbook.cat ++--- docbook-4.5~/docbook-4.3/docbook.cat 2004-03-31 13:44:16.000000000 +0200 +++++ docbook-4.5/docbook-4.3/docbook.cat 2007-03-09 16:53:47.000000000 +0100 ++@@ -22,9 +22,6 @@ ++ PUBLIC "-//OASIS//DTD DocBook V4.3//EN" ++ "docbook.dtd" ++ ++-PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" ++- "docbookx.dtd" ++- ++ -- ...................................................................... -- ++ -- DocBook modules ...................................................... -- ++ ++@@ -49,65 +46,5 @@ ++ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.3//EN" ++ "dbcentx.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" ++- "iso-dia.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" ++- "iso-num.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" ++- "iso-pub.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" ++- "iso-tech.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" ++- "iso-lat1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" ++- "iso-lat2.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" ++- "iso-grk1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" ++- "iso-grk2.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" ++- "iso-grk3.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" ++- "iso-grk4.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" ++- "iso-amsa.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" ++- "iso-amsb.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" ++- "iso-amsc.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" ++- "iso-amsn.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" ++- "iso-amso.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" ++- "iso-amsr.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" ++- "iso-box.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" ++- "iso-cyr1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" ++- "iso-cyr2.gml" ++- ++ -- End of catalog data for DocBook V4.3 ................................. -- ++ -- ...................................................................... -- ++diff -urNad docbook-4.5~/docbook-4.4/docbook.cat docbook-4.5/docbook-4.4/docbook.cat ++--- docbook-4.5~/docbook-4.4/docbook.cat 2005-01-27 14:59:49.000000000 +0100 +++++ docbook-4.5/docbook-4.4/docbook.cat 2007-03-09 16:54:12.000000000 +0100 ++@@ -22,9 +22,6 @@ ++ PUBLIC "-//OASIS//DTD DocBook V4.4//EN" ++ "docbook.dtd" ++ ++-PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" ++- "docbookx.dtd" ++- ++ -- ...................................................................... -- ++ -- DocBook modules ...................................................... -- ++ ++@@ -52,65 +49,5 @@ ++ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.4//EN" ++ "dbcentx.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" ++- "iso-dia.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" ++- "iso-num.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" ++- "iso-pub.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" ++- "iso-tech.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" ++- "iso-lat1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" ++- "iso-lat2.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" ++- "iso-grk1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" ++- "iso-grk2.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" ++- "iso-grk3.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" ++- "iso-grk4.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" ++- "iso-amsa.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" ++- "iso-amsb.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" ++- "iso-amsc.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" ++- "iso-amsn.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" ++- "iso-amso.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" ++- "iso-amsr.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" ++- "iso-box.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" ++- "iso-cyr1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" ++- "iso-cyr2.gml" ++- ++ -- End of catalog data for DocBook V4.4 ................................. -- ++ -- ...................................................................... -- ++diff -urNad docbook-4.5~/docbook-4.5/docbook.cat docbook-4.5/docbook-4.5/docbook.cat ++--- docbook-4.5~/docbook-4.5/docbook.cat 2006-10-03 15:27:50.000000000 +0200 +++++ docbook-4.5/docbook-4.5/docbook.cat 2007-03-09 16:54:41.000000000 +0100 ++@@ -22,9 +22,6 @@ ++ PUBLIC "-//OASIS//DTD DocBook V4.5//EN" ++ "docbook.dtd" ++ ++-PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" ++- "docbookx.dtd" ++- ++ -- ...................................................................... -- ++ -- DocBook modules ...................................................... -- ++ ++@@ -52,65 +49,5 @@ ++ PUBLIC "-//OASIS//ENTITIES DocBook Character Entities V4.5//EN" ++ "dbcentx.mod" ++ ++- -- ...................................................................... -- ++- -- ISO entity sets ...................................................... -- ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" ++- "iso-dia.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" ++- "iso-num.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" ++- "iso-pub.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" ++- "iso-tech.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" ++- "iso-lat1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" ++- "iso-lat2.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" ++- "iso-grk1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" ++- "iso-grk2.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" ++- "iso-grk3.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" ++- "iso-grk4.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" ++- "iso-amsa.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" ++- "iso-amsb.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" ++- "iso-amsc.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" ++- "iso-amsn.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" ++- "iso-amso.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" ++- "iso-amsr.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" ++- "iso-box.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" ++- "iso-cyr1.gml" ++- ++-PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" ++- "iso-cyr2.gml" ++- ++ -- End of catalog data for DocBook V4.5 ................................. -- ++ -- ...................................................................... -- +--- docbook-4.5.orig/debian/patches/11_fix_dbpoolx_mod_header_comment_pubid.dpatch ++++ docbook-4.5/debian/patches/11_fix_dbpoolx_mod_header_comment_pubid.dpatch +@@ -0,0 +1,60 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 11_fix_dbpoolx_mod_header_comment_pubid.dpatch by Adam Di Carlo <aph@debian.org> ++## and Daniel Leidert (dale) <daniel.leidert@wgdd.de>. ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: The header in dbpoolx.mod references a wrong Public-ID. This patch ++## DP: simply fixes the header comment. ++## DP: ++## DP: Reported upstream: ++## DP: <URL:http://sourceforge.net/tracker/index.php?func=detail&aid=1679712&group_id=21935&atid=384107> ++ ++@DPATCH@ ++diff -urNad docbook-4.5~/docbook-4.2/dbpoolx.mod docbook-4.5/docbook-4.2/dbpoolx.mod ++--- docbook-4.5~/docbook-4.2/dbpoolx.mod 2002-07-17 18:14:25.000000000 +0200 +++++ docbook-4.5/docbook-4.2/dbpoolx.mod 2007-03-10 08:31:23.000000000 +0100 ++@@ -50,7 +50,7 @@ ++ declaration that uses the public identifier shown below: ++ ++ <!ENTITY % dbpool PUBLIC ++- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.2//EN" +++ "-//OASIS//ELEMENTS DocBook Information Pool V4.2//EN" ++ "dbpoolx.mod"> ++ %dbpool; ++ ++diff -urNad docbook-4.5~/docbook-4.3/dbpoolx.mod docbook-4.5/docbook-4.3/dbpoolx.mod ++--- docbook-4.5~/docbook-4.3/dbpoolx.mod 2004-03-31 13:43:24.000000000 +0200 +++++ docbook-4.5/docbook-4.3/dbpoolx.mod 2007-03-10 08:31:49.000000000 +0100 ++@@ -50,7 +50,7 @@ ++ declaration that uses the public identifier shown below: ++ ++ <!ENTITY % dbpool PUBLIC ++- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.3//EN" +++ "-//OASIS//ELEMENTS DocBook Information Pool V4.3//EN" ++ "dbpoolx.mod"> ++ %dbpool; ++ ++diff -urNad docbook-4.5~/docbook-4.4/dbpoolx.mod docbook-4.5/docbook-4.4/dbpoolx.mod ++--- docbook-4.5~/docbook-4.4/dbpoolx.mod 2005-01-27 14:59:45.000000000 +0100 +++++ docbook-4.5/docbook-4.4/dbpoolx.mod 2007-03-10 08:32:00.000000000 +0100 ++@@ -50,7 +50,7 @@ ++ declaration that uses the public identifier shown below: ++ ++ <!ENTITY % dbpool PUBLIC ++- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.4//EN" +++ "-//OASIS//ELEMENTS DocBook Information Pool V4.4//EN" ++ "dbpoolx.mod"> ++ %dbpool; ++ ++diff -urNad docbook-4.5~/docbook-4.5/dbpoolx.mod docbook-4.5/docbook-4.5/dbpoolx.mod ++--- docbook-4.5~/docbook-4.5/dbpoolx.mod 2006-10-03 15:27:50.000000000 +0200 +++++ docbook-4.5/docbook-4.5/dbpoolx.mod 2007-03-10 08:32:10.000000000 +0100 ++@@ -50,7 +50,7 @@ ++ declaration that uses the public identifier shown below: ++ ++ <!ENTITY % dbpool PUBLIC ++- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" +++ "-//OASIS//ELEMENTS DocBook Information Pool V4.5//EN" ++ "dbpoolx.mod"> ++ %dbpool; ++ +--- docbook-4.5.orig/debian/patches/12_fix_256119_and_turn_on_sgml_mode.dpatch ++++ docbook-4.5/debian/patches/12_fix_256119_and_turn_on_sgml_mode.dpatch +@@ -0,0 +1,117 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 12_fix_256119_and_turn_on_sgml_mode.dpatch by Daniel Leidert (dale) <daniel.leidert@wgdd.de> ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Fixes broken element declarations by adding the tag omission characters ++## DP: for SGML and enable SGML features ++## DP: (closes: <URL:http://bugs.debian.org/256119>). ++## DP: ++## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.4-1> ++ ++@DPATCH@ ++diff -urNad docbook-4.5~/docbook-4.3/dbpoolx.mod docbook-4.5/docbook-4.3/dbpoolx.mod ++--- docbook-4.5~/docbook-4.3/dbpoolx.mod 2007-03-10 09:01:12.000000000 +0100 +++++ docbook-4.5/docbook-4.3/dbpoolx.mod 2007-03-10 09:01:13.000000000 +0100 ++@@ -633,6 +633,9 @@ ++ ++ <!-- xml:base: base URI --> ++ +++<![%sgml.features;[ +++<!ENTITY % xml-base.attrib ""> +++]]> ++ <!ENTITY % xml-base.attrib ++ "xml:base CDATA #IMPLIED"> ++ ++diff -urNad docbook-4.5~/docbook-4.3/docbookx.dtd docbook-4.5/docbook-4.3/docbookx.dtd ++--- docbook-4.5~/docbook-4.3/docbookx.dtd 2004-03-31 13:43:20.000000000 +0200 +++++ docbook-4.5/docbook-4.3/docbookx.dtd 2007-03-10 09:01:13.000000000 +0100 ++@@ -59,7 +59,7 @@ ++ <!-- ...................................................................... --> ++ <!-- Enable SGML features ................................................. --> ++ ++-<!ENTITY % sgml.features "IGNORE"> +++<!ENTITY % sgml.features "INCLUDE"> ++ <![%sgml.features;[ ++ <!ENTITY % xml.features "IGNORE"> ++ ]]> ++diff -urNad docbook-4.5~/docbook-4.3/htmltblx.mod docbook-4.5/docbook-4.3/htmltblx.mod ++--- docbook-4.5~/docbook-4.3/htmltblx.mod 2004-03-31 13:43:24.000000000 +0200 +++++ docbook-4.5/docbook-4.3/htmltblx.mod 2007-03-10 09:01:13.000000000 +0100 ++@@ -63,6 +63,9 @@ ++ > ++ ++ <!-- Does not contain lang or dir because they are in %common.attribs --> +++<![%sgml.features;[ +++<!ENTITY % i18n ""> +++]]> ++ <!ENTITY % i18n ++ "xml:lang NMTOKEN #IMPLIED" ++ > ++@@ -92,11 +95,11 @@ ++ "valign (top|middle|bottom|baseline) #IMPLIED" ++ > ++ ++-<!ELEMENT colgroup (col)*> ++-<!ELEMENT col EMPTY> ++-<!ELEMENT tr (th|td)+> ++-<!ELEMENT th (%para.char.mix; | %tabentry.mix;)*> ++-<!ELEMENT td (%para.char.mix; | %tabentry.mix;)*> +++<!ELEMENT colgroup %ho; (col)*> +++<!ELEMENT col %ho; EMPTY> +++<!ELEMENT tr %ho; (th|td)+> +++<!ELEMENT th %ho; (%para.char.mix; | %tabentry.mix;)*> +++<!ELEMENT td %ho; (%para.char.mix; | %tabentry.mix;)*> ++ ++ <!ATTLIST colgroup ++ %attrs; ++@@ -206,7 +209,7 @@ ++ summary CDATA #IMPLIED ++ width CDATA #IMPLIED ++ border CDATA #IMPLIED ++- rules (none | groups | rows | cols | all) #IMPLIED +++ rules CDATA #IMPLIED ++ cellspacing CDATA #IMPLIED ++ cellpadding CDATA #IMPLIED ++ align (left|center|right) #IMPLIED ++diff -urNad docbook-4.5~/docbook-4.4/docbookx.dtd docbook-4.5/docbook-4.4/docbookx.dtd ++--- docbook-4.5~/docbook-4.4/docbookx.dtd 2005-01-27 14:59:45.000000000 +0100 +++++ docbook-4.5/docbook-4.4/docbookx.dtd 2007-03-10 09:01:13.000000000 +0100 ++@@ -61,7 +61,7 @@ ++ <!-- ...................................................................... --> ++ <!-- Enable SGML features ................................................. --> ++ ++-<!ENTITY % sgml.features "IGNORE"> +++<!ENTITY % sgml.features "INCLUDE"> ++ <![%sgml.features;[ ++ <!ENTITY % xml.features "IGNORE"> ++ ]]> ++diff -urNad docbook-4.5~/docbook-4.4/htmltblx.mod docbook-4.5/docbook-4.4/htmltblx.mod ++--- docbook-4.5~/docbook-4.4/htmltblx.mod 2005-01-27 14:59:45.000000000 +0100 +++++ docbook-4.5/docbook-4.4/htmltblx.mod 2007-03-10 09:01:13.000000000 +0100 ++@@ -63,6 +63,9 @@ ++ > ++ ++ <!-- Does not contain lang or dir because they are in %common.attribs --> +++<![%sgml.features;[ +++<!ENTITY % i18n ""> +++]]> ++ <!ENTITY % i18n ++ "xml:lang NMTOKEN #IMPLIED" ++ > ++@@ -92,11 +95,11 @@ ++ "valign (top|middle|bottom|baseline) #IMPLIED" ++ > ++ ++-<!ELEMENT colgroup (col)*> ++-<!ELEMENT col EMPTY> ++-<!ELEMENT tr (th|td)+> ++-<!ELEMENT th (%para.char.mix; | %tabentry.mix; | table | informaltable)*> ++-<!ELEMENT td (%para.char.mix; | %tabentry.mix; | table | informaltable)*> +++<!ELEMENT colgroup %ho; (col)*> +++<!ELEMENT col %ho; EMPTY> +++<!ELEMENT tr %ho; (th|td)+> +++<!ELEMENT th %ho; (%para.char.mix; | %tabentry.mix; | table | informaltable)*> +++<!ELEMENT td %ho; (%para.char.mix; | %tabentry.mix; | table | informaltable)*> ++ ++ <!ATTLIST colgroup ++ %attrs; +--- docbook-4.5.orig/debian/patches/10_fix_101779_mention_artheader_to_articleinfo_change.dpatch ++++ docbook-4.5/debian/patches/10_fix_101779_mention_artheader_to_articleinfo_change.dpatch +@@ -0,0 +1,33 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 10_fix_101779_mention_artheader_to_articleinfo_change.dpatch by ++## Adam Di Carlo <aph@debian.org>. ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: The removal of ArtHeader in 4.0 is not documented in ChangeLog. This ++## DP: patch fixes it (closes: <URL:http://bugs.debian.org/bug=101779>). ++## DP: ++## DP: <URL:http://packages.debian.org/changelogs/pool/main/d/docbook/current/changelog#versionversion4.1-5> ++ ++@DPATCH@ ++diff -urNad docbook-4.5~/ChangeLog.upstream docbook-4.5/ChangeLog.upstream ++--- docbook-4.5~/ChangeLog.upstream 2007-03-09 14:36:17.000000000 +0100 +++++ docbook-4.5/ChangeLog.upstream 2007-03-14 19:35:01.000000000 +0100 ++@@ -475,6 +475,7 @@ ++ - Added synopsis markup for modern programming languages (e.g, object ++ oriented languages like Java, C++, and IDL) ++ - Renamed DocInfo to PrefaceInfo, ChapterInfo, AppendixInfo, etc. +++ (and ArtHeader to ArticleInfo) ++ ++ Other: ++ ++diff -urNad docbook-4.5~/docbook-4.1/40chg.txt docbook-4.5/docbook-4.1/40chg.txt ++--- docbook-4.5~/docbook-4.1/40chg.txt 2000-06-19 16:50:28.000000000 +0200 +++++ docbook-4.5/docbook-4.1/40chg.txt 2007-03-14 19:34:21.000000000 +0100 ++@@ -29,6 +29,7 @@ ++ - Added synopsis markup for modern programming languages (e.g, object ++ oriented languages like Java, C++, and IDL) ++ - Renamed DocInfo to PrefaceInfo, ChapterInfo, AppendixInfo, etc. +++ (and ArtHeader to ArticleInfo) ++ - Comment was renamed Remark ++ - InterfaceDefinition was removed ++ +--- docbook-4.5.orig/debian/examples/docbk.sgml ++++ docbook-4.5/debian/examples/docbk.sgml +@@ -0,0 +1,2 @@ ++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook//EN"> ++<book></book> +--- docbook-4.5.orig/debian/examples/docbk42.sgml ++++ docbook-4.5/debian/examples/docbk42.sgml +@@ -0,0 +1,2 @@ ++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.2//EN"> ++<book></book> +--- docbook-4.5.orig/debian/examples/docbk43.sgml ++++ docbook-4.5/debian/examples/docbk43.sgml +@@ -0,0 +1,2 @@ ++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.3//EN"> ++<book></book> +--- docbook-4.5.orig/debian/examples/docbk44.sgml ++++ docbook-4.5/debian/examples/docbk44.sgml +@@ -0,0 +1,2 @@ ++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.4//EN"> ++<book></book> +--- docbook-4.5.orig/debian/examples/docbk45.sgml ++++ docbook-4.5/debian/examples/docbk45.sgml +@@ -0,0 +1,2 @@ ++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.5//EN"> ++<book></book> +--- docbook-4.5.orig/debian/examples/Makefile ++++ docbook-4.5/debian/examples/Makefile +@@ -0,0 +1,22 @@ ++SRCS := $(wildcard *.sgml) ++NSGMLS := $(shell if command -v onsgmls 2>/dev/null; then \ ++ : ;\ ++ elif command -v nsgmls 2>/dev/null; then \ ++ : ;\ ++ else \ ++ echo "false" ;\ ++ echo "warning: no nsgmls found" >&2 ;\ ++ fi) ++ ++NSGMLSARGS= ++ ++.PHONY: validate ++validate: $(addsuffix .nsgmls,$(SRCS)) ++ ++%.nsgmls : % ++ $(NSGMLS) -E1 -wall $(NSGMLSARGS) -gues $< ++ ++.PHONY: clean ++clean: ++ rm -f *.html *~ ++ +--- docbook-4.5.orig/debian/control ++++ docbook-4.5/debian/control +@@ -0,0 +1,33 @@ ++Source: docbook ++Section: text ++Priority: optional ++Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org> ++Uploaders: Adam Di Carlo <aph@debian.org>, Daniel Leidert (dale) <daniel.leidert@wgdd.de> ++Build-Depends: debhelper (>= 4.1.31), dpatch ++Standards-Version: 3.7.2 ++Homepage: http://www.oasis-open.org/docbook/sgml/ ++XS-Vcs-Browser: http://svn.debian.org/wsvn/debian-xml-sgml/packages/docbook/trunk/ ++XS-Vcs-Svn: svn://svn.debian.org/svn/debian-xml-sgml/packages/docbook/ ++ ++Package: docbook ++Architecture: all ++Depends: sgml-data (>= 1.5.0), ${misc:Depends} ++Conflicts: docbook-xml (<= 4.4-4) ++Suggests: psgml, docbook-dsssl, docbook-xml, docbook-defguide ++Description: standard SGML representation system for technical documents ++ DocBook is an SGML document type definition (DTD) that is well-suited ++ to books, articles, or reference documentation about technical ++ matters, systems, or software (although it is by no means limited to ++ these applications). It has emerged as an open and standard DTD in the ++ software industry, and is used as the documentation system of choice ++ for many free software projects. ++ . ++ This package contains the SGML DTD for DocBook, which describes ++ the formal structure for documents following this format. If you ++ wish to author DocBook documents using XML rather than SGML, use the ++ 'docbook-xml' package. You will need other packages in order to edit ++ (psgml), validate (opensp) or format (docbook-xsl, docbook-dsssl) ++ DocBook documents. ++ . ++ This package includes the 2.4.1, 3.0, 3.1, 4.0, 4.1, 4.2, 4.3, 4.4 and ++ 4.5 versions of the DocBook SGML DTD. +--- docbook-4.5.orig/debian/compat ++++ docbook-4.5/debian/compat +@@ -0,0 +1 @@ ++4 +--- docbook-4.5.orig/debian/watch ++++ docbook-4.5/debian/watch +@@ -0,0 +1,4 @@ ++# See uscan(1) for format ++ ++version=3 ++http://www.oasis-open.org/docbook/sgml/4\.([\d]+)/docbook-([\d\.]+).zip +--- docbook-4.5.orig/debian/docbook.examples ++++ docbook-4.5/debian/docbook.examples +@@ -0,0 +1 @@ ++debian/examples/* +--- docbook-4.5.orig/debian/changelog ++++ docbook-4.5/debian/changelog +@@ -0,0 +1,362 @@ ++docbook (4.5-4) unstable; urgency=low ++ ++ * debian/control: Homepage field transition. ++ (Suggests): Added docbook-defguide. ++ * debian/docbook.postinst: Removed. Contains only pre-etch legacy stuff. ++ * debian/README.Debian: Removed or replaced references to non-existing ++ packages. ++ * debian/watch: Added watch file. ++ ++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Wed, 26 Sep 2007 21:21:26 +0200 ++ ++docbook (4.5-3) unstable; urgency=medium ++ ++ * debian/control (Maintainer, Uploaders): Set the Debian XML/SGML team as ++ maintainer. ++ * debian/docbook.examples: Fixed examples location: will re-add them back ++ to the package. ++ * debian/rules: Removed bashisms (closes: #422114). Thanks to Sebastian ++ Dröge for the report. ++ ++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Thu, 03 May 2007 19:46:21 +0200 ++ ++docbook (4.5-2) unstable; urgency=low ++ ++ * Upload to unstable. ++ ++ [ Daniel Leidert ] ++ * debian/rules (get-orig-source): Make the target compatible with the "Best ++ Packaging Practices" reference. ++ ++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sat, 14 Apr 2007 19:49:00 +0200 ++ ++docbook (4.5-1) experimental; urgency=low ++ ++ * New upstream release DocBook SGML 4.5 added (closes: #413166). ++ ++ [ Daniel Leidert ] ++ * catalog: Made latest DocBook SGML 4.5 the default (closes: #413304). ++ * debian/control: Added XS-Vcs-Browser and XS-Vcs-Svn fields. ++ (Build-Depends-Indep): Fixed debhelper build dependency to be listed in ++ Build-Depends. ++ (Build-Depends): Added dpatch. ++ (Uploaders): Added the Debian XML/SGML group and myself (closes: #358522). ++ (Standards-Version): Bump to latest standards version 3.7.2. ++ (Description): Added newly added DocBook version. ++ * debian/copyright: Updated the packaging and copyright information. ++ * debian/rules: Added get-orig-source and dpatch targets. Cleaned the file a ++ lot. The installation of files was moved from the external ++ install_docbook.sh script to dh_install calls. The .links, .install and ++ .sgmlcatalogs debhelper files are created by debian/rules itself (atm I ++ don't remove them in the clean target). ++ (binary-indep): Fixed the dh_installdocs call to include Adams ++ README.docbook.dcl, that was not included in the package. ++ (debian/docbook.install, debian/docbook.links): Made the dbgenent.mod ++ files config-files. ++ * debian/patches/00list: Added. Moved all existing changes to dpatch patches ++ and enabled them here. ++ * debian/patches/01_remove_entity_sets_and_dcl_from_catalogs.dpatch: Added. ++ * debian/patches/10_fix_101779_mention_artheader_to_articleinfo_change.dpatch: ++ Added. ++ * debian/patches/11_fix_dbpoolx_mod_header_comment_pubid.dpatch: Added. ++ * debian/patches/12_fix_256119_and_turn_on_sgml_mode.dpatch: Added. ++ * debian/examples/docbk*.sgml: Added two new examples for DocBook 4.5 and ++ added the missing newlines to the existing examples. ++ * debian/docbook.examples: Added. ++ * debian/postinst: Renamed to docbook.postinst. ++ * debian/README.debian: Renamed to README.Debian. ++ * debian/install_docbook.sh: Removed. See debian/rules changes. ++ * debian/TODO: Removed (implemented the only item). ++ * debian/watch: Removed (empty). ++ ++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sat, 10 Mar 2007 09:32:33 +0100 ++ ++docbook (4.4-1) unstable; urgency=low ++ ++ * acknowledge NMU; closes: #301786 ++ * new upstream version; closes: #339774 ++ * docbook4{3,4}/docbookx.dtd: turn on SGML mode ++ * docbook4{3,4}: sync with dbpoolx.mod and htmltblx.mod from ++ docbook-xml; closes: #256119 ++ * conflict with docbook-xml prior to 4.4-5, otherwise the 4.3 and 4.4 ++ DTDs don't work ++ * docbook4.3 catalog: don't provide "-//OASIS//DTD DocBook XML V4.3//EN" ++ * add really basic docbook 4.2, 4.3, and 4.4 books to test with ++ ++ -- Adam Di Carlo <aph@debian.org> Thu, 25 May 2006 19:09:05 -0400 ++ ++docbook (4.3-1.1) unstable; urgency=high ++ ++ * Non-maintainer upload. ++ * High-urgency upload for sarge-targetted RC bugfix. ++ * Drop use of symlinks for finding dangling links, as we can do the ++ same using a find command; thanks to Joey Hess for the patch. ++ Closes: #301786. ++ ++ -- Steve Langasek <vorlon@debian.org> Wed, 6 Apr 2005 11:24:24 -0700 ++ ++docbook (4.3-1) unstable; urgency=low ++ ++ * new upstream version; closes: #243666 ++ * make the usual array of minor corrections in upstream catalogs ++ * minor package description changes ++ * postinst legacy remove is more conditional and more robust; hopefully, ++ closes: #242833 ++ * really don't register "-//OASIS//DTD DocBook XML V4.2//EN" in ++ catalog.xml ++ ++ -- Adam Di Carlo <aph@debian.org> Tue, 15 Jun 2004 22:15:02 -0400 ++ ++docbook (4.2-3) unstable; urgency=low ++ ++ * stop providing "-//OASIS//DTD DocBook XML V4.2//EN", that is in the ++ docbook-xml package ++ * policy compliance updated to 3.5.8, no changes needed ++ * debhelper 4 compat mode ++ * use new dh_installcatalog, it simplifies our maintainer scripts ++ * remove build-depends on M4, we don't need to process maintainer ++ scripts anymore ++ * remove suggests on sp or jade or docbook-xml, add suggests for ++ docbook-dsssl and docbook-doc ++ * improve the package synopsis and description, add the Homepage ++ * stop using sgml-catalog-check.pl from sgml-data during build, the ++ /usr/share/sgml symlinking is no longer needed (SGML Policy update ++ pending) ++ ++ -- Adam Di Carlo <aph@debian.org> Tue, 25 Feb 2003 02:18:52 -0500 ++ ++docbook (4.2-2) unstable; urgency=low ++ ++ * SGML catalogs should be named 'catalog' according to policy; retain ++ the 'docbook.cat' as a symlink in case anyone is using that directly ++ ++ -- Adam Di Carlo <aph@debian.org> Mon, 20 Jan 2003 04:44:52 -0500 ++ ++docbook (4.2-1) unstable; urgency=low ++ ++ * new upstream version, closes: #155105 ++ * latest DocBook version bumped to 4.2 ++ ++ -- Adam Di Carlo <aph@debian.org> Wed, 7 Aug 2002 01:12:49 -0400 ++ ++docbook (4.1.99really4.2.cr1-2) unstable; urgency=low ++ ++ * oops, remove ISO entity sets from docbook 4.2cr1 catalog ++ * minor typo in generalized.cat fixed ++ ++ -- Adam Di Carlo <aph@debian.org> Sun, 31 Mar 2002 01:40:26 -0500 ++ ++docbook (4.1.99really4.2.cr1-1) unstable; urgency=low ++ ++ * new upstream version, pre-release of docbook 4.2; ++ note that docbook 4.1 is still considered the latest version and ++ latest 4.x version until 4.2 is actually released ++ * policy checked up to 3.5.6, no changes required ++ * disable DTDDECL in generalized.cat, I think this just slipped through ++ * debian/rules: some housekeeping ++ ++ -- Adam Di Carlo <aph@debian.org> Sun, 31 Mar 2002 01:28:04 -0500 ++ ++docbook (4.1-6) unstable; urgency=low ++ ++ * another cut at the package description, hopefully it satisfies the ++ user; closes: #112021 ++ * debian/rules: installing *everything* as documentation was not my ++ intention in the last release, fix that ++ * require sgml-data 1.5.3 or better, which calls an element an element ++ when making the creepy symlinks; closes: #51043 ++ ++ -- Adam Di Carlo <aph@debian.org> Tue, 2 Oct 2001 03:06:21 -0400 ++ ++docbook (4.1-5) unstable; urgency=low ++ ++ * all docbook catalog files now have "OVERRIDE YES", which forces the ++ PUBID rather than the SYSID in DTD declarations; closes: #97330 ++ * correct upstream 40chg.txt to notate the change from ArtHeader to ++ ArticleInfo; closes: #101779 ++ * README.Debian rewritten; closes: #106379 ++ * it's apparently not nice to call dh_installdocs more than once per ++ package, so stop doing that; closes#98440 ++ ++ -- Adam Di Carlo <aph@debian.org> Tue, 2 Oct 2001 01:49:30 -0400 ++ ++docbook (4.1-4) unstable; urgency=low ++ ++ * debian/rules: re-work fix for files in debian not preserving execute ++ bit ++ closes: #90627 ++ ++ -- Adam Di Carlo <aph@debian.org> Sun, 8 Apr 2001 14:37:42 -0400 ++ ++docbook (4.1-3) unstable; urgency=low ++ ++ * debian/control: build-depends-indep includes m4 ++ * debian/rules: cope with my local CVS not preserving executable bit, ++ making the source unbuildable ++ closes: #90627 ++ ++ -- Adam Di Carlo <aph@debian.org> Thu, 22 Mar 2001 02:23:56 -0500 ++ ++docbook (4.1-2) unstable; urgency=low ++ ++ * disable docbook.dcl as DTDDECL, otherwise lots of otherwise valid SGML ++ files will break (when using DTDDECL comprehending processors like ++ OpenJade, anyhow). For more info, see README.docbook.dcl. ++ * include docbook 4.0 ++ closes: #68666 ++ ++ -- Adam Di Carlo <aph@debian.org> Wed, 21 Mar 2001 03:37:38 -0500 ++ ++docbook (4.1-1) unstable; urgency=low ++ ++ * new maintainer, with permission from Mark Eichin ++ closes: #19682, #19683, #36956, #47375, #50243, #51032, #68033 ++ closes: #87325, #88679 ++ * debian/control: require new sgml-base and sgml-data; suggest ++ docbook-xml; fix a grammar error in the description ++ * transition to new SGML standard system, /usr/share/sgml, and delegated ++ catalogs ++ closes: #90034 ++ * rework the maintainer scripts accordingly; use m4 to dynamically set ++ some variables; move the removal work from postrm to prerm; don't ++ bother scrubbing legacy junk in prerm, since postinst configure ++ already ran, what's the point? ++ * provide new catalog entries for just referring to DocBook, generalized ++ to mean the last recommended DocBook, or the latest DocBook v4, or the ++ latest DocBook v3. ++ * delegated catalogs have proper DTDDECLs ++ closes: #63046 (again) ++ * debian/rules: stop using debstd ++ closes: #90122 ++ * already fixed in earlier versions ++ closes: #90125 ++ * debian/control: add Build-Depends-Indep; update standards to 3.5.2 ++ * debian/copyright: update maintainership info and add coverage of the ++ debian integration scripts ++ ++ -- Adam Di Carlo <aph@debian.org> Mon, 19 Mar 2001 01:56:38 -0500 ++ ++docbook (4.1-0.2) unstable; urgency=low ++ ++ * non-maintainer upload ++ * sgml-data/sgml-catalog-check.pl location moved ++ closes: #88679 ++ * debian/postrm: fix some of the legacy FPI removal logic ++ closes: #87325 ++ * debian/postinst: analogous fix, and remove some scrubbing of the SGML ++ catalog which really seemed overreaching (such as fudging with ++ SGMLDECL, and stuff which really ought to be handled by ++ install-sgmlcatalog) ++ ++ -- Adam Di Carlo <aph@debian.org> Sat, 17 Mar 2001 16:54:59 -0500 ++ ++docbook (4.1-0.1) unstable; urgency=low ++ ++ * NMU because Mark lacks time. ++ * New upstream release (Closes: #68033). ++ * Do not include 4.0 DTD because 4.1 has no user-level changes from ++ 4.0. ++ * Install doc files into /usr/share/doc/ as per policy (Closes: ++ #50243, #51032). ++ * Uncommented DTDDECL entries from the catalog (Closes: #63046). ++ * Updated download location and copyright notice. ++ * Commented out obsolete line in debian/watch. ++ ++ -- Yann Dirson <dirson@debian.org> Tue, 1 Aug 2000 01:01:59 +0200 ++ ++docbook (3.1-2) unstable; urgency=low ++ ++ * debian/control: fix Maintainer realname for consistency. ++ ++ -- Mark W. Eichin <eichin@thok.org> Wed, 3 Nov 1999 16:14:46 -0500 ++ ++docbook (3.1-1) unstable; urgency=low ++ ++ * Thanks for all the work; closing the bugs for real and updating my ++ email addresses. closes: #19682, #19683, #36956, #47375. ++ ++ -- Mark W. Eichin <eichin@thok.org> Wed, 3 Nov 1999 00:43:12 -0500 ++ ++docbook (3.1-0.4) unstable; urgency=low ++ ++ * NMU so it can be removed when install-sgmlcatalog isn't present. ++ (Closes: #47375). ++ ++ -- J.H.M. Dassen (Ray) <jdassen@debian.org> Sat, 30 Oct 1999 14:31:46 +0200 ++ ++docbook (3.1-0.3) unstable; urgency=low ++ ++ * non-maintainer release, blessed by Mark Eichin ++ * at the suggestion of Norm Walsh, retain DTD and entity file name ++ (closes Bug#36956) -- he also suggests that we don't split entities ++ into a separate dir, which is a reasonable thought, but I leave it to ++ others to file a bug if they agree with Norm. ++ ++ -- Adam Di Carlo <aph@debian.org> Sat, 22 May 1999 16:43:06 -0400 ++ ++docbook (3.1-0.2) unstable; urgency=low ++ ++ * non-maintainer release ++ * docbook.cat: fix problems with some system identifiers, bugs I ++ introduced ++ * use script from sgml-data to create nice SGML links (completes closing ++ of Bug#19682) ++ ++ -- Adam Di Carlo <aph@debian.org> Fri, 26 Mar 1999 04:25:09 -0500 ++ ++docbook (3.1-0.1) unstable; urgency=low ++ ++ * non-maintainer release ++ * new upstream version (blessed by Mark Eichin) ++ * deliver docbook 2.4.1, 3.0, and 3.1 DTDs (closes Bug#19683) ++ * put DTDs, entities, and declarations in standard locations under ++ /usr/lib/sgml; make symlinks under there too in compliance with the ++ sgml-base subpolicy (closes Bug#19682) ++ * debian/control: bump standards version to 2.5.0, reconcile priority to ++ what it is in the archive, update description ++ * debian/rules: some modularization ++ * debian/copyright: updated ++ * README.debian: adding some pointer on other packages and the home page ++ ++ -- Adam Di Carlo <aph@debian.org> Fri, 26 Mar 1999 01:36:31 -0500 ++ ++docbook (3.0-5) unstable; urgency=low ++ ++ * debian/rules: use install -m 0644 so text files don't get installed ++ gratuitously executable (lintian). ++ ++ -- Mark Eichin <eichin@kitten.gen.ma.us> Wed, 29 Apr 1998 05:39:56 -0400 ++ ++docbook (3.0-4) unstable; urgency=low ++ ++ * docbook.cat: comment out DTDDECL to avoid warnings from jade. Removed ++ ISO entity pointers, since they are now supplied by sgml-data. ++ ++ -- Mark Eichin <eichin@kitten.gen.ma.us> Tue, 7 Apr 1998 02:39:48 -0400 ++ ++docbook (3.0-3) unstable; urgency=low ++ ++ * debian/postinst, debian/postrm: use sgml-base like jade does. ++ * debian/control: depend on sgml-base now. ++ ++ -- Mark W. Eichin <eichin@kitten.gen.ma.us> Tue, 4 Nov 1997 18:18:18 -0500 ++ ++docbook (3.0-2) unstable; urgency=low ++ ++ * debian/{postinst, postrm}: change md5sum markers to make them easier ++ to find later (and consistent with jade); add cleanup of older form. ++ ++ -- Mark W. Eichin <eichin@kitten.gen.ma.us> Tue, 1 Jul 1997 01:08:31 -0400 ++ ++docbook (3.0-1) unstable; urgency=low ++ ++ * Initial Release. ++ * docbook.cat: point to davenport subdir. ++ * rules: install everything, under binary-indep. ++ * debian/{postinst, postrm}: use md5sum markers to add/remove catalog ++ entries. Also nuke SGMLDECL line (by wrapping it in an sgml -- comment ++ --.) ++ ++ -- Mark Eichin <eichin@kitten.gen.ma.us> Mon, 30 Jun 1997 14:11:38 -0400 ++ ++ +--- docbook-4.5.orig/debian/copyright ++++ docbook-4.5/debian/copyright +@@ -0,0 +1,39 @@ ++This package was debianized by Mark Eichin <eichin@thok.org> on Mon, ++30 Jun 1997 14:11:38 -0400. It is currently maintained by Adam Di ++Carlo <aph@debian.org> and the Debian XML/SGML group ++<debian-xml-sgml-devel@lists.alioth.debian.org>. No changes were made ++to the upstream version of these materials, although the provided SGML ++Open catalogs were trimmed or enhanced to suit Debian's SGML ++infrastructure. All Debian integration scripts and packages are under ++the GPL v2 or better, a copy of which can be found on Debian systems ++in '/usr/share/common-licenses/GPL'. ++ ++Download: ++ ++ The original upstream materials may be downloaded from ++ <URL:http://www.oasis-open.org/docbook/sgml/>. This process is ++ transparent via the `get-orig-source' target in debian/rules. ++ ++Copyright: ++ ++ Copyright 1992-2006 HaL Computer Systems, Inc., ++ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software ++ Corporation, orman Walsh, un Microsystems, Inc., and the ++ Organization for the Advancement of Structured Information ++ Standards (OASIS). ++ ++License and Warranty: ++ ++ Permission to use, copy, modify and distribute the DocBook DTD and ++ its accompanying documentation for any purpose and without fee is ++ hereby granted in perpetuity, provided that the above copyright ++ notice and this paragraph appear in all copies. The copyright ++ holders make no representation about the suitability of the DTD for ++ any purpose. It is provided "as is" without expressed or implied ++ warranty. ++ ++ If you modify the DocBook DTD in any way, except for declaring and ++ referencing additional sets of general entities and declaring ++ additional notations, label your DTD as a variant of DocBook. See ++ the maintenance documentation for more information. ++ +--- docbook-4.5.orig/debian/rules ++++ docbook-4.5/debian/rules +@@ -0,0 +1,121 @@ ++#!/usr/bin/make -f ++# Made with the aid of debmake, by Christoph Lameter, ++# based on the sample debian/rules file for GNU hello by Ian Jackson. ++ ++PACKAGE := docbook ++ ++include /usr/share/dpatch/dpatch.make ++ ++ ++debian/docbook.install: ++ set -ex ; \ ++ touch $@ ; \ ++ for db in docbook-* ; do \ ++ dbver=`echo $${db} | sed -e 's/docbook-//g'` ; \ ++ for file in $${db}/*.dcl $${db}/*.dtd $${db}/*.mod ; do \ ++ if [ $${file} != $${db}/dbgenent.mod ] ; then \ ++ echo "$${file} usr/share/sgml/docbook/dtd/$${dbver}" >> $@ ; \ ++ else \ ++ echo "$${file} etc/sgml/docbook/$${dbver}" >> $@ ; \ ++ fi ; \ ++ done ; \ ++ done ++ ++debian/docbook.links: ++ set -ex ; \ ++ touch $@ ; \ ++ for db in docbook-* ; do \ ++ dbver=`echo $${db} | sed -e 's/docbook-//g'` ; \ ++ [ -f $${db}/dbgenent.mod ] && \ ++ echo -n "etc/sgml/docbook/$${dbver}/dbgenent.mod " >> $@ && \ ++ echo "usr/share/sgml/docbook/dtd/$${dbver}/dbgenent.mod" >> $@ ; \ ++ [ -f $${db}/docbook.cat ] && \ ++ echo "usr/share/sgml/docbook/dtd/$${dbver}/catalog usr/share/sgml/docbook/dtd/$${dbver}/docbook.cat" >> $@ ; \ ++ done ++ ++debian/docbook.sgmlcatalogs: ++ set -ex ; \ ++ touch $@ ; \ ++ echo "catalog /usr/share/sgml/docbook/dtd/catalog" > $@ ; \ ++ for db in docbook-* ; do \ ++ dbver=`echo $${db} | sed -e 's/docbook-//g'` ; \ ++ [ -f $${db}/docbook.cat ] && \ ++ echo "$${db}/docbook.cat /usr/share/sgml/docbook/dtd/$${dbver}/catalog" >> $@ ; \ ++ done ++ ++build: patch-stamp build-stamp ++ ++build-stamp: debian/docbook.install debian/docbook.links debian/docbook.sgmlcatalogs ++ dh_testdir ++ touch build-stamp ++ ++clean: unpatch ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp patch-stamp ++ rm -f debian/docbook.install \ ++ debian/docbook.links \ ++ debian/docbook.sgmlcatalogs ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++binary-indep: build ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs ChangeLog.upstream ++ dh_install ++ dh_installdocs debian/README.docbook.dcl ++ dh_installexamples ++ dh_installcatalogs ++ dh_link ++ find $(CURDIR)/debian/$(PACKAGE) -type l -follow >/dev/null # exits 1 on broken links ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary-arch: build ++ ++binary: binary-indep binary-arch ++ ++.PHONY: build clean binary binary-arch binary-indep ++ ++# This following code is used to create the .orig.tar.gz tarball. ++# Use it to prepare it for a new release. ++ ++version=$(shell dpkg-parsechangelog | sed -n -e 's/^Version: \(.*\)-[^-]*/\1/p') ++ ++.PHONY: get-orig-source ++get-orig-source: ++ set -ex ; \ ++ TMPDIR=`mktemp -d docbook-$(version).orig` ; \ ++ touch "$$TMPDIR"/ChangeLog.upstream ; \ ++ for db in 4.5 4.4 4.3 4.2 ; do \ ++ mkdir -p "$$TMPDIR"/docbook-$${db} ; \ ++ dbzip=docbook-$${db}.zip ; \ ++ wget -P "$$TMPDIR" http://www.oasis-open.org/docbook/sgml/$${db}/"$$dbzip" ; \ ++ unzip -d "$$TMPDIR"/docbook-$${db} "$$TMPDIR"/"$$dbzip" ; \ ++ rm -f "$$TMPDIR"/"$$dbzip" ; \ ++ [ -f "$$TMPDIR"/docbook-$${db}/ChangeLog ] && \ ++ cat "$$TMPDIR"/docbook-$${db}/ChangeLog >> "$$TMPDIR"/ChangeLog.upstream ; \ ++ done; \ ++ for db in 4.1 4.0 3.1 3.0 2.4.1 ; do \ ++ mkdir -p "$$TMPDIR"/docbook-$${db} ; \ ++ dbver=`echo $${db} | sed -e 's/\.//g'` ; \ ++ dbzip=docbk"$$dbver".zip ; \ ++ wget -P "$$TMPDIR" http://www.oasis-open.org/docbook/sgml/$${db}/"$$dbzip" ; \ ++ unzip -d "$$TMPDIR"/docbook-$${db} "$$TMPDIR"/"$$dbzip" ; \ ++ rm -f "$$TMPDIR"/"$$dbzip" ; \ ++ cat "$$TMPDIR"/docbook-$${db}/"$$dbver"chg.txt >> "$$TMPDIR"/ChangeLog.upstream ; \ ++ done ; \ ++ find "$$TMPDIR" -type f ! -perm 644 -exec chmod 644 "{}" ";" ; \ ++ GZIP=-9 tar -czf $(CURDIR)/docbook_${version}.orig.tar.gz "$$TMPDIR" ; \ ++ rm -rf "$$TMPDIR" ++ +--- docbook-4.5.orig/debian/README.docbook.dcl ++++ docbook-4.5/debian/README.docbook.dcl +@@ -0,0 +1,98 @@ ++From: Adam Di Carlo <adam@onshore.com> ++Subject: DOCBOOK: objection to docbook.dcl ++To: docbook@lists.oasis-open.org ++Cc: docbook-tc@oasis-open.org ++Date: Wed, 21 Mar 2001 02:35:31 -0500 ++ ++ ++Shipped with the DocBook DTDs from 2.4.1 and up is 'docbook.dcl', an ++SGML declaration for use with DocBook documents. However, this ++declartion is unnecessarily restrictive, to the level where it is ++rather cumbersome to implement. ++ ++My argument is that the DocBook declaration should diverge from the SP ++(and OpenSP) implied declarations only where the divergance expresses ++a real necessity to diverge. This is based on the principle that ++software (including SGML parsers) should be tolerant of what they ++accept. The unnecessarily broad divergance of the shipped Docbook ++declaration puts a burden on document engineers using DocBook. ++ ++I am considering here only the DocBook SGML DTD, since I presume the ++Declaration is rather irrelevant for XML files, since all XML files ++have the same XML declaration applied to them. ++ ++I consider here 'docbook.dcl' as shipped with DocBook 4.1. ++ ++Major problems: ++ ++ OMITTAG is turned off (why?) ++ ++ NAMELEN is too short ++ ++ Document Character set is too restrictive ++ ++ SUBDOC is turned off (why?) ++ ++ ++Description: ++ ++* OMITTAG is turned off ++ ++'OMITTAG' is turned off in 'docbook.dcl', disallowing markup ++minimization of any sort. This is on in the implied declaration of ++both Jade and OpenJade. This creates problems because documents using ++the default declaration for their parser will have a valid document, ++but if the user decides to be more fasidious and user the docbook SGML ++declaration, sudden their document will not be valid. ++ ++The major problem is that trying to turn this on will make a large ++number of existing SGML DocBook instances invalid. ++ ++ ++* NAMELEN is too short ++ ++The NAMELEN quantity set in docbook.dcl is set to 45, rather than the ++default SP NAMELEN of 99999999. ++ ++A number of users have complained of problems due to this limitation ++(do a google search on 'docbook namelen' to see what I mean) in any ++cases (such as the SUSE Linux distribution) where the declaration is ++enforced. ++ ++Quoting <URL:http://xml.coverpages.org/wlw14.html>: ++ ++ Care should be used when changing these since creating a variant ++ syntax may make it difficult for some SGML systems to process ++ documents created with that syntax. The best means of guaranteeing ++ portability between different SGML systems and applications is to ++ use the reference concrete syntax as much as possible. ++ ++One wonders why we need to diverge from the reference concrete syntax ++here. ++ ++ ++* Document Character set it too restrictive ++ ++As an example, to workaround limitations in the support of KOI-R SDATA ++entities in Jade and OpenJade, KOI-R users have to use unicode ++entities. With the docbook.dcl file, these entities are disallowed, ++although they are perfectly valid with the implied SP declaration. ++Example of being disallowed: ++ ++ jade:/usr/share/sgml/entities/sgml-iso-entities-8879.1986/ISOcyr1.ent:1:16:E: \ ++ "1072" is not a character number in the document character set ++ ++ ++* SUBDOC is turned off ++ ++Why is it necessary to disallow SUBDOC in DocBook SGML documents? ++Seems like some authors may wish to use this, even if its not fully ++supported by existing stylesheets. ++ ++ ++ ++I hope I got my facts correct, and that this commentary is useful. ++ ++-- ++.....Adam Di Carlo....adam@onshore.com.....<URL:http://www.onshored.com/> ++ +--- docbook-4.5.orig/debian/README.Debian ++++ docbook-4.5/debian/README.Debian +@@ -0,0 +1,35 @@ ++ DocBook DTDs for Debian GNU/Linux ++ --------------------------------- ++ ++DocBook is an SGML DTD for software documentation. It is very ++thorough, and is used by many different organization to produce books, ++articles, references, and even manual pages. ++ ++The home page for DocBook is <URL:http://www.oasis-open.org/docbook/>. ++ ++A wonderful introduction and reference is available in the ++docbook-defguide package, which can also be read online at ++<URL:http://www.docbook.org/tdg/>. ++ ++To format DocBook documents, you'll need a style-sheet package, either ++docbook-dsssl or docbook-xsl, depending on what styling language you ++would like to use. ++ ++There are far too many other packages to describe here, both for ++authors, editors, stylers, or information architects. A list of such ++packages may be perused, for instance, using 'apt-cache search ++docbook'. ++ ++If you have a question about how to work with DocBook, there are many ++mailing lists available; see <URL:http://www.docbook.org/>. ++ ++If you have suggestions or questions regarding debian-specific issues, ++please consult the debian-sgml@lists.debian.org mailing list, ++<URL:http://lists.debian.org/>. ++ ++-- ++.....Adam Di Carlo....adam@onshore.com.....<URL:http://www.onshored.com/> ++(previously, Mark Eichin <eichin@thok.org>, Mon, 30 Jun 1997 14:11:38 -0400) ++ ++ ++ +--- docbook-4.5.orig/catalog ++++ docbook-4.5/catalog +@@ -0,0 +1,19 @@ ++ -- ...................................................................... -- ++ -- Prefer PUBID to SYSID ................................................ -- ++OVERRIDE YES ++ ++ -- latest DocBook -- ++PUBLIC "-//OASIS//DTD DocBook//EN" "4.5/docbook.dtd" ++ -- disabled, see README.docbook.dcl -- ++-- DTDDECL "-//OASIS//DTD DocBook//EN" "4.5/docbook.dcl" -- ++ ++ -- latest DocBook v4-- ++PUBLIC "-//OASIS//DTD DocBook V4//EN" "4.5/docbook.dtd" ++ -- disabled, see README.docbook.dcl -- ++-- DTDDECL "-//OASIS//DTD DocBook V4//EN" "4.5/docbook.dcl" -- ++ ++ -- latest DocBook v3-- ++PUBLIC "-//OASIS//DTD DocBook V3//EN" "3.1/docbook.dtd" ++ -- disabled, see README.docbook.dcl -- ++-- DTDDECL "-//OASIS//DTD DocBook V3//EN" "3.1/docbook.dcl" -- ++ diff --git a/source/ap/linuxdoc-tools/sources/libsgmls-perl_1.03ii-32.diff b/source/ap/linuxdoc-tools/sources/libsgmls-perl_1.03ii-32.diff new file mode 100644 index 000000000..917e834c0 --- /dev/null +++ b/source/ap/linuxdoc-tools/sources/libsgmls-perl_1.03ii-32.diff @@ -0,0 +1,949 @@ +--- libsgmls-perl-1.03ii.orig/sgmlspl.pl ++++ libsgmls-perl-1.03ii/sgmlspl.pl +@@ -238,7 +238,7 @@ + package main; + + $ARGV = shift; +-unless ($ARGV eq '' || do $ARGV) { ++unless ($ARGV eq '' || do 'sgmlspl-specs/' . $ARGV || do $ARGV) { + if (!-e $ARGV) { + die "FATAL: $ARGV does not exist.\n"; + } elsif (!-r $ARGV) { +--- libsgmls-perl-1.03ii.orig/Refs.pm ++++ libsgmls-perl-1.03ii/Refs.pm +@@ -2,11 +2,11 @@ + + use Carp; + +-$version = '$Id: Refs.pm,v 1.5 1995/12/03 21:28:36 david Exp $'; ++$version = '$Id: Refs.pm,v 1.1 1999/10/26 19:30:45 ardo Exp $'; + + =head1 NAME + +-SGMLS::Refs ++SGMLS::Refs - Forward reference handling + + =head1 SYNOPSIS + +--- libsgmls-perl-1.03ii.orig/Output.pm ++++ libsgmls-perl-1.03ii/Output.pm +@@ -5,7 +5,7 @@ + @ISA = Exporter; + @EXPORT = qw(output push_output pop_output); + +-$version = '$Id: Output.pm,v 1.6 1995/12/05 12:21:51 david Exp $'; ++$version = '$Id: Output.pm,v 1.1 1999/10/26 19:30:45 ardo Exp $'; + + =head1 NAME + +--- libsgmls-perl-1.03ii.orig/sgmlspl.1 ++++ libsgmls-perl-1.03ii/sgmlspl.1 +@@ -0,0 +1,47 @@ ++.\" -*- nroff -*- ++.\" ---------------------------------------------------------------------- ++.TH SGMLSPL 1 "October 26, 1999" "SGMLSPL" "SGMLSPL" ++.\" ++.\" ---------------------------------------------------------------------- ++.SH "NAME" ++sgmlspl \- a simple post-processor for nsgmls ++.\" ++.\" ---------------------------------------------------------------------- ++.SH "SYNOPSIS" ++.B sgmlspl ++.I "spec file" ++.\" ++.\" ---------------------------------------------------------------------- ++.SH "DESCRIPTION" ++sgmlspl is a sample application to convert SGML documents to other ++formats by providing a specification file detailing exactly how to ++handle each element, external data entity, subdocument entity, CDATA ++string, record end, SDATA string, and processing instruction. ++ ++To use sgmlspl, prepare a specification file containing regular perl5 ++code. If the SGML document were named doc.sgml, the sgmlspl ++specification file were named, spec.pl, and the name of the new file ++were doc.latex, then use the following command in a Unix shell to ++convert the SGML document: ++ ++nsgmls doc.sgml | sgmlspl spec.pl > doc.latex ++ ++sgmlspl will pass any additional arguments on to the specification ++file, which can then process them in the regular perl5 fashion. ++.\" ++.\" ---------------------------------------------------------------------- ++.SH "SEE ALSO" ++.TP ++.BR /usr/share/doc/sgmls-doc/sgmlspl/sgmlspl.html ++sgmlspl documentation in HTML format ++.TP ++.BR /usr/share/doc/sgmls-doc/SGMLSpm/sgmls.html ++SGMLS documentation in HTML format ++.TP ++.BR nsgmls (1) ++.\" ++.\" ---------------------------------------------------------------------- ++.SH "AUTHOR" ++Ardo van Rangelrooij <ardo@debian.org> ++.\" ++.\" ---------------------------------------------------------------------- +--- libsgmls-perl-1.03ii.orig/Makefile.PL ++++ libsgmls-perl-1.03ii/Makefile.PL +@@ -0,0 +1,17 @@ ++use ExtUtils::MakeMaker; ++# See lib/ExtUtils/MakeMaker.pm for details of how to influence ++# the contents of the Makefile that is written. ++WriteMakefile( ++ 'NAME' => 'SGMLS', ++ 'VERSION' => '1.03ii', ++ 'PM' => { 'SGMLS.pm' => '$(INST_LIBDIR)/SGMLS.pm', ++ 'Output.pm' => '$(INST_LIBDIR)/SGMLS/Output.pm', ++ 'Refs.pm' => '$(INST_LIBDIR)/SGMLS/Refs.pm', ++ 'skel.pl' => '$(INST_LIBDIR)/sgmlspl-specs/skel.pl', ++ }, ++ 'MAN3PODS'=> { 'SGMLS.pm' => '$(INST_MAN3DIR)/SGMLS.3pm', ++ 'Output.pm' => '$(INST_MAN3DIR)/SGMLS::Output.3pm', ++ 'Refs.pm' => '$(INST_MAN3DIR)/SGMLS::Refs.3pm', ++ }, ++ 'EXE_FILES' => [ 'sgmlspl', ], ++); +--- libsgmls-perl-1.03ii.orig/Makefile ++++ libsgmls-perl-1.03ii/Makefile +@@ -94,5 +94,5 @@ + mv /tmp/${DIST} SGMLSpm + + clean: +- cd DOC; make clean ++ #cd DOC; make clean + rm -f *~ core *.tar *.tar.gz +--- libsgmls-perl-1.03ii.orig/SGMLS.pm ++++ libsgmls-perl-1.03ii/SGMLS.pm +@@ -1,7 +1,7 @@ + package SGMLS; + use Carp; + +-$version = '$Revision: 1.14 $'; ++$version = '$Revision: 1.1 $'; + + =head1 NAME + +--- libsgmls-perl-1.03ii.orig/debian/libsgmls-perl.examples ++++ libsgmls-perl-1.03ii/debian/libsgmls-perl.examples +@@ -0,0 +1 @@ ++DOC/sample.pl +--- libsgmls-perl-1.03ii.orig/debian/sgmls-doc.doc-base.SGMLSpm ++++ libsgmls-perl-1.03ii/debian/sgmls-doc.doc-base.SGMLSpm +@@ -0,0 +1,9 @@ ++Document: SGMLSpm ++Title: SGMLSpm ++Author: David Megginson ++Abstract: This manual describes the SGMLS Perl modules ++Section: Text ++ ++Format: HTML ++Index: /usr/share/doc/sgmls-doc/SGMLSpm/index.html ++Files: /usr/share/doc/sgmls-doc/SGMLSpm/*.html +--- libsgmls-perl-1.03ii.orig/debian/rules ++++ libsgmls-perl-1.03ii/debian/rules +@@ -0,0 +1,76 @@ ++#!/usr/bin/make -f ++## ---------------------------------------------------------------------- ++## debian/rules : package script for libsgmls-perl ++## ---------------------------------------------------------------------- ++ ++## ---------------------------------------------------------------------- ++## uncomment this to turn on verbose mode ++#export DH_VERBOSE=1 ++ ++## ---------------------------------------------------------------------- ++TMP_DIR := $(CURDIR)/debian/tmp ++ ++## ---------------------------------------------------------------------- ++CFLAGS = -Wall -g ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ ++## ---------------------------------------------------------------------- ++## targets ++ ++clean: ++ dh_testdir ++ dh_testroot ++ [ ! -f Makefile ] || $(MAKE) clean ++ dh_clean build-stamp install-stamp ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ perl Makefile.PL INSTALLDIRS=vendor ++ $(MAKE) OPTIMIZE="$(CFLAGS)" ++ $(MAKE) test ++ touch build-stamp ++ ++install: install-stamp ++install-stamp: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ $(MAKE) install DESTDIR=$(TMP_DIR) PREFIX=/usr ++ touch install-stamp ++ ++binary-indep: build install ++ dh_testdir ++ dh_testroot ++ dh_install --sourcedir=$(TMP_DIR) ++ dh_installman ++ dh_installdocs ++ dh_installexamples ++ dh_installchangelogs ChangeLog ++ dh_link ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_perl ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary-arch: ++ ++binary: binary-indep binary-arch ++ ++.PHONY: clean build install binary-indep binary-arch binary ++ ++## ---------------------------------------------------------------------- ++## Copyright 1994,1995 by Ian Jackson. ++## I hereby give you perpetual unlimited permission to copy, ++## modify and relicense this file, provided that you do not remove ++## my name from the file itself. (I assert my moral right of ++## paternity under the Copyright, Designs and Patents Act 1988.) ++## ---------------------------------------------------------------------- +--- libsgmls-perl-1.03ii.orig/debian/control ++++ libsgmls-perl-1.03ii/debian/control +@@ -0,0 +1,48 @@ ++Source: libsgmls-perl ++Section: perl ++Priority: optional ++Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org> ++Uploaders: Ardo van Rangelrooij <ardo@debian.org> ++Vcs-Browser: http://alioth.debian.org/plugins/scmcvs/cvsweb.php/packages/libsgmls-perl/?cvsroot=debian-xml-sgml ++Vcs-Cvs: :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/debian-xml-sgml/packages/libsgmls-perl ++Standards-Version: 3.7.3 ++Build-Depends: debhelper (>= 5.0) ++Build-Depends-Indep: perl ++ ++Package: libsgmls-perl ++Section: perl ++Priority: optional ++Architecture: all ++Conflicts: sgmlspm ++Depends: ${perl:Depends} ++Recommends: sp ++Replaces: sgmlspm ++Suggests: sgmlspl, sgmls-doc ++Description: Perl modules for processing SGML parser output ++ This is a set of Perl5 routines for processing the output from the ++ sgmls and nsgmls SGML parsers. To make sensible use of this package ++ you will need to install a suitable SGML parser as well. ++ ++Package: sgmlspl ++Section: text ++Priority: optional ++Architecture: all ++Conflicts: sgmlspm ++Depends: ${perl:Depends}, libsgmls-perl ++Replaces: sgmlspm ++Suggests: sgmls-doc ++Description: SGMLS-based example Perl script for processing SGML parser output ++ This is an example of a Perl script to post-process SGML parser output ++ using the SGMLS Perl modules. To make sensible use of this package ++ you will need to install a suitable SGML parser as well. ++ ++Package: sgmls-doc ++Section: doc ++Priority: optional ++Architecture: all ++Conflicts: sgmlspm ++Replaces: sgmlspm ++Suggests: libsgmls-perl, sgmlspl ++Description: HTML documentation of libsgmls-perl and sgmlspl ++ This package contains the documentation in HTML format of the ++ packages libsgmls-perl and sgmlspl. +--- libsgmls-perl-1.03ii.orig/debian/sgmlspl.manpages ++++ libsgmls-perl-1.03ii/debian/sgmlspl.manpages +@@ -0,0 +1 @@ ++sgmlspl.1 +--- libsgmls-perl-1.03ii.orig/debian/changelog ++++ libsgmls-perl-1.03ii/debian/changelog +@@ -0,0 +1,262 @@ ++libsgmls-perl (1.03ii-32) unstable; urgency=low ++ ++ * Refs.pm: fixed typo ++ (closes: Bug#414110) ++ * debian/compat: bumped version to 5 ++ * debian/control: ++ * moved debhelper from 'Build-Depends-Indep' to 'Build-Depends' ++ (detected by lintian) ++ * changed build dependency on 'debhelper' to '(>= 5.0)' ++ * upgraded to Debian Policy 3.7.3 (no changes) ++ * added Vcs-Browser and Vcs-Cvs fields ++ * debian/watch: bumped version to 3 ++ * debian/copyright: updated FSF address ++ (detected by lintian) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Fri, 04 Jan 2008 10:48:06 -0600 ++ ++libsgmls-perl (1.03ii-31) unstable; urgency=low ++ ++ * Added 'debian/watch' ++ * debiam/rules: various small improvements ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Wed, 24 Nov 2004 12:23:21 -0600 ++ ++libsgmls-perl (1.03ii-30) unstable; urgency=low ++ ++ * Makefile: commented out documentation clean ++ (closes: Bug#240645) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 28 Mar 2004 10:29:33 -0600 ++ ++libsgmls-perl (1.03ii-29) unstable; urgency=low ++ ++ * debian/control: changed maintainer's email address to the new Debian ++ XML/SGML Group's packages mailing list ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 29 Feb 2004 10:48:45 -0600 ++ ++libsgmls-perl (1.03ii-28) unstable; urgency=low ++ ++ * debian/control: changed 'Maintainer' to 'Debian XML/SGML Group ++ <debian-xml-sgml-devel@lists.alioth.debian.org>' and added current ++ maintainer as 'Uploader' ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 22 Feb 2004 19:38:41 -0600 ++ ++libsgmls-perl (1.03ii-27) unstable; urgency=low ++ ++ * debian/control: upgraded to Debian Policy 3.6.1 (no changes) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sat, 7 Feb 2004 22:31:22 -0600 ++ ++libsgmls-perl (1.03ii-26) unstable; urgency=low ++ ++ * Fixed missing documentation ++ (closes: Bug#226085) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 4 Jan 2004 10:56:51 -0600 ++ ++libsgmls-perl (1.03ii-25) unstable; urgency=low ++ ++ * sgmlspl.1: fixed references to HTML documentation ++ (closes: Bug#202985) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sat, 26 Jul 2003 23:06:50 -0500 ++ ++libsgmls-perl (1.03ii-24) unstable; urgency=low ++ ++ * debian/rules: moved debhelper compatibility level setting to ++ 'debian/compat' per latest debhelper best practices ++ * debian/control: updated sections according to latest archive changes: ++ - 'libsgmls-perl' from 'text' to 'perl' ++ * debian/control: changed build dependency on 'debhelper' to '(>= 4.1)' ++ * debian/control: upgraded to Debian Policy 3.6.0 (no changes) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sat, 26 Jul 2003 22:15:48 -0500 ++ ++libsgmls-perl (1.03ii-23) unstable; urgency=low ++ ++ * debian/sgmls-doc.links: fixed broken symlink ++ (closes: Bug#158923) ++ * debian/control: added dependency on perl for sgmlspl (warning from linda) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Thu, 19 Sep 2002 19:45:17 -0500 ++ ++libsgmls-perl (1.03ii-22) unstable; urgency=low ++ ++ * debian/rules: added erroneously removed 'dh_testroot' to 'binary-indep' ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 4 Aug 2002 16:33:00 -0500 ++ ++libsgmls-perl (1.03ii-21) unstable; urgency=low ++ ++ * debian/rules: upgraded to debhelper v4 ++ * debian/control: changed build dependency on debhelper accordingly ++ * debian/rules: migrated from 'dh_movefiles' to 'dh_install' ++ * debian/rules: split off 'install' target from 'binary-indep' target ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 4 Aug 2002 09:41:59 -0500 ++ ++libsgmls-perl (1.03ii-20) unstable; urgency=low ++ ++ * Removed explicit support of dhelp since doc-base now takes care of this ++ * debian/control: upgraded to Debian Policy 3.5.6 ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 4 Nov 2001 16:13:15 -0600 ++ ++libsgmls-perl (1.03ii-19) unstable; urgency=low ++ ++ * debian/control: upgraded to Debian Policy 3.5.5 ++ * debian/control: upgraded to Debian Perl Policy 1.20 ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sat, 1 Sep 2001 22:03:51 -0500 ++ ++libsgmls-perl (1.03ii-18) unstable; urgency=low ++ ++ * Makefile.PL: removed handling of manpage sgmlspl.1 ++ * debian/control: added handling of manpage sgmlspl.1 ++ (closes: Bug#94518) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Mon, 30 Apr 2001 21:26:08 -0500 ++ ++libsgmls-perl (1.03ii-17) unstable; urgency=low ++ ++ * debian/control: updated debhelper dependency to remove dh_testversion ++ * debian/control: upgraded to Debian Policy 3.5.2 ++ * debian/control: upgraded to Debian Perl Policy 1.17 ++ * debian/rules: upgraded to Debian Perl Policy 1.17 ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sat, 14 Apr 2001 20:49:19 -0500 ++ ++sgmlspm (1.03ii-16) unstable; urgency=low ++ ++ * debian/control: upgraded to Debian Policy 3.2.1 ++ * debian/rules: upgraded to debhelper v3 ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Mon, 15 Jan 2001 19:35:32 -0600 ++ ++sgmlspm (1.03ii-15) unstable; urgency=low ++ ++ * debian/control: updated short descriptions ++ * debian/control: added missing Build-Depends ++ * debian/rules: added missing `$(MAKE) test` ++ * debian/rules: added missing build-stamp stuff ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 11 Jun 2000 19:40:09 +0200 ++ ++sgmlspm (1.03ii-14) frozen unstable; urgency=high ++ ++ * sgmlspl.pl: updated to reflect change in spec files location ++ (closes: #58443) (thanks Yann!!!) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sun, 20 Feb 2000 09:35:08 +0100 ++ ++sgmlspm (1.03ii-13) unstable; urgency=high ++ ++ * sgmlspl.pl: updated to reflect change in spec files location ++ (closes: #58443) (thanks Yann!!!) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Sat, 19 Feb 2000 19:38:22 +0100 ++ ++sgmlspm (1.03ii-12) unstable; urgency=low ++ ++ * Moved HTML documentation to separate package sgmls-doc ++ (closes: #52856) (thanks Andreas!) ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Thu, 30 Dec 1999 11:42:02 +0100 ++ ++sgmlspm (1.03ii-11) unstable; urgency=low ++ ++ * Removed test-SGMLS.pl from examples ++ * Moved skel.pl from libsgmls-perl to sgmlspl and into a new direcotry ++ /usr/lib/perl5/sgmlspl-specs ++ (closes: #52169) (thanks Yann!) ++ * Upgraded to Debian Policy 3.1.1 ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Mon, 13 Dec 1999 21:54:48 +0100 ++ ++sgmlspm (1.03ii-10) unstable; urgency=low ++ ++ * Split binary package into libsgmls-perl and sgmlspl. The former only ++ contains the SGMLS Perl modules, documentation and examples. The ++ latter only contains the (example) Perl script `sgmlspl' and its ++ documentation ++ * Turned libsgmls-perl into a 'real' Perl package with Makefile.PL and all ++ (closes: #39684) ++ * Added doc-base support ++ (closes: #31181) ++ * Added manual page for sgmlspl ++ (closes: #17909) ++ * Upgraded to Debian Policy 3.0.1 ++ * Upgraded to Debian Perl Policy 1.1 ++ * Made lintian-free ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Tue, 26 Oct 1999 19:58:37 +0200 ++ ++sgmlspm (1.03ii-9) unstable; urgency=low ++ ++ * Complies with Perl packaging standard 1.0 ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Tue, 13 Jul 1999 19:19:39 -0500 ++ ++sgmlspm (1.03ii-8) unstable; urgency=low ++ ++ * debian/control: fixed typo in description ++ (closes: Bug#27441) ++ * Maintainer's email address changed ++ ++ -- Ardo van Rangelrooij <ardo@debian.org> Mon, 5 Oct 1998 19:14:22 +0200 ++ ++sgmlspm (1.03ii-7) frozen unstable; urgency=low ++ ++ * debian/rules: corrected upstream ChangeLog installation (lintian bug) ++ * debian/copyright: updated postal address of the FSF (lintian bug) ++ ++ -- Ardo van Rangelrooij <ardo.van.rangelrooij@tip.nl> Sun, 26 Apr 1998 17:03:11 +0200 ++ ++sgmlspm (1.03ii-6) frozen unstable; urgency=low ++ ++ * debian/rules: added sgmlspl man page as undocumented man page ++ * debian/rules: changed to use debhelper ++ * debian/rules: removed handling of index.html links ++ * Makefile: added handling of index.html links ++ * debian/control: updated to debian standard 2.4.0.0 ++ * debian/rules: removed installation of DocBook examples ++ (closes: Bug#19689) ++ ++ -- Ardo van Rangelrooij <ardo.van.rangelrooij@tip.nl> Mon, 6 Apr 1998 19:37:59 +0200 ++ ++sgmlspm (1.03ii-5) unstable; urgency=low ++ ++ * Fixed permissions bug ++ (closes: Bug#17490) ++ ++ -- Ardo van Rangelrooij <ardo.van.rangelrooij@tip.nl> Wed, 18 Feb 1998 21:30:57 +0100 ++ ++sgmlspm (1.03ii-4) unstable; urgency=low ++ ++ * New maintainer. ++ ++ -- Ardo van Rangelrooij <ardo.van.rangelrooij@tip.nl> Wed, 14 Jan 1998 21:29:45 +0100 ++ ++sgmlspm (1.03ii-3) frozen unstable; urgency=low ++ ++ * Updated Standards-Version to 2.1.3.0. ++ * New maintainer. ++ ++ -- Christian Schwarz <schwarz@debian.org> Thu, 17 Apr 1997 15:53:51 +0200 ++ ++sgmlspm (1.03ii-2) unstable; urgency=low ++ ++ * Split binary target into binary-indep and binary-arch. ++ * Updated Standards-Version. ++ * Released into unstable. ++ ++ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Fri, 23 Aug 1996 12:11:40 +0100 ++ ++sgmlspm (1.03ii-1) experimental; urgency=LOW ++ ++ * Initial Debian release. ++ ++ -- Ian Jackson <ian@chiark.chu.cam.ac.uk> Sat, 10 Aug 1996 01:47:30 +0100 +--- libsgmls-perl-1.03ii.orig/debian/sgmls-doc.docs ++++ libsgmls-perl-1.03ii/debian/sgmls-doc.docs +@@ -0,0 +1,2 @@ ++DOC/HTML/SGMLSpm ++DOC/HTML/sgmlspl +--- libsgmls-perl-1.03ii.orig/debian/libsgmls-perl.install ++++ libsgmls-perl-1.03ii/debian/libsgmls-perl.install +@@ -0,0 +1,2 @@ ++usr/share/perl5/SGMLS* ++usr/share/man/man3 +--- libsgmls-perl-1.03ii.orig/debian/sgmls-doc.doc-base.sgmlspl ++++ libsgmls-perl-1.03ii/debian/sgmls-doc.doc-base.sgmlspl +@@ -0,0 +1,9 @@ ++Document: sgmlspl ++Title: sgmlspl ++Author: David Megginson ++Abstract: This manual describes the (example) sgmlspl Perl script ++Section: Text ++ ++Format: HTML ++Index: /usr/share/doc/sgmls-doc/sgmlspl/index.html ++Files: /usr/share/doc/sgmls-doc/sgmlspl/*.html +--- libsgmls-perl-1.03ii.orig/debian/copyright ++++ libsgmls-perl-1.03ii/debian/copyright +@@ -0,0 +1,28 @@ ++This is Debian GNU/Linux's prepackaged version of David Megginson's ++sgmlspm-1.03ii Perl modules for processing sgmls and nsgmls output. ++ ++This package was put together by me, Ian Jackson ++<ijackson@gnu.ai.mit.edu>, from the sources on src.doc.ic.ac.uk in ++/packages/perl/CPAN/modules/by-module/SGMLS/SGMLSpm-1.03ii.tar.gz. ++The changes were very minimal - merely adding support for the Debian ++package maintenance scheme, by adding various debian/* files. ++ ++Program Copyright (C)1994,1995 David Megginson. ++Modifications for Debian Copyright (C)1996 Ian Jackson. ++Modifications for Debian Copyright (C) 1998,1999 Ardo van Rangelrooij ++ ++This program is free software; you can redistribute it and/or modify ++it under the terms of the GNU General Public License as published by ++the Free Software Foundation; either version 2, or (at your option) ++any later version. ++ ++This program is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++General Public License for more details. ++ ++You should have received a copy of the GNU General Public License with ++your Debian GNU/Linux system, in /usr/share/common-licenses/GPL-2, or ++with the Debian GNU/Linux hello source package as the file COPYING. ++If not, write to the Free Software Foundation, Inc., 51 Franklin ++Street, Fifth Floor, Boston, MA 02110-1301 USA. +--- libsgmls-perl-1.03ii.orig/debian/compat ++++ libsgmls-perl-1.03ii/debian/compat +@@ -0,0 +1 @@ ++5 +--- libsgmls-perl-1.03ii.orig/debian/sgmls-doc.links ++++ libsgmls-perl-1.03ii/debian/sgmls-doc.links +@@ -0,0 +1,2 @@ ++usr/share/doc/sgmls-doc/SGMLSpm/sgmlspm.html usr/share/doc/sgmls-doc/SGMLSpm/index.html ++usr/share/doc/sgmls-doc/sgmlspl/sgmlspl.html usr/share/doc/sgmls-doc/sgmlspl/index.html +--- libsgmls-perl-1.03ii.orig/debian/watch ++++ libsgmls-perl-1.03ii/debian/watch +@@ -0,0 +1,2 @@ ++version=3 ++http://www.cpan.org/modules/by-module/SGMLS/SGMLSpm-([\d.]+[\w]+).tar.gz +--- libsgmls-perl-1.03ii.orig/debian/sgmlspl.install ++++ libsgmls-perl-1.03ii/debian/sgmlspl.install +@@ -0,0 +1,2 @@ ++usr/bin ++/usr/share/perl5/sgmlspl-specs +--- libsgmls-perl-1.03ii.orig/debian/libsgmls-perl.docs ++++ libsgmls-perl-1.03ii/debian/libsgmls-perl.docs +@@ -0,0 +1,2 @@ ++BUGS ++TODO +--- libsgmls-perl-1.03ii.orig/sgmlspl ++++ libsgmls-perl-1.03ii/sgmlspl +@@ -0,0 +1,326 @@ ++#!/usr/bin/perl ++######################################################################## ++# sgmlspl: a simple SGML postprocesser for the SGMLS and NSGMLS ++# parsers (requires SGMLS.pm library). ++# ++# Copyright (c) 1995 by David Megginson <dmeggins@aix1.uottawa.ca> ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++# ++# $Log: sgmlspl,v $ ++# Revision 1.2 2008-01-03 23:49:25 ardo ++# applied patch for 414110 & upgraded policy ++# ++# Revision 1.1 2004/02/23 01:23:07 ardo ++# Added debian changes for version 1.03ii-27. ++# ++# Revision 1.1 2001/04/15 14:42:01 ardo ++# *** empty log message *** ++# ++# Revision 1.8 1995/12/03 21:46:31 david ++# Eliminated all use of the SGMLS_Event::key method. ++# ++# Revision 1.7 1995/11/15 20:22:24 david ++# Changed "use Output" to "use SGMLS::Output". Qualified the STDIN ++# filehandle for the SGMLS object with the main:: package name. ++# ++# Revision 1.6 1995/08/12 16:15:14 david ++# Revised version for 1.01 distribution. ++# ++# Revision 1.5 1995/04/27 11:52:25 david ++# Changed 'print' to 'main::output' for re handler; empty string ++# translates into an empty sub {} rather than a sub printing an empty ++# string; instead of evaluating every argument as a perl script, take ++# only the first as a perl script and the rest as its arguments; allow ++# empty scripts or scripts which do not end with '1;'; pass the event ++# itself as the second argument to each handler, after the event data. ++# ++# Revision 1.4 1995/04/23 14:44:58 david ++# Use the Output package. Fixed the $version variable. ++# ++# Revision 1.3 1995/04/22 21:02:49 david ++# Added some missing 'last SWITCH;' statements in the sgmls function. ++# ++# Revision 1.2 1995/04/22 20:58:48 david ++# Added $SGMLS_PL::version variable and changed SDATA notation from ++# [SDATA] to |SDATA|. ++# ++# Revision 1.1 1995/04/22 14:40:50 david ++# Initial revision ++# ++######################################################################## ++ ++use SGMLS::Output; ++ ++package SGMLS_PL; ++use SGMLS; ++ ++$version = '$Id: sgmlspl,v 1.2 2008-01-03 23:49:25 ardo Exp $'; ++ ++# ++# Set up handler defaults. ++# ++$start_document_handler = sub {}; ++$end_document_handler = sub {}; ++$start_element_handlers = { '' => sub {} }; ++$end_element_handlers = { '' => sub {} }; ++$cdata_handler = sub { main::output($_[0]); }; ++$sdata_handlers = { '' => sub { main::output($_[0]);} }; ++$re_handler = sub { main::output("\n"); }; ++$pi_handler = sub { '' => sub {} }; ++$entity_handlers = { '' => sub {} }; ++$start_subdoc_handlers = { '' => sub {} }; ++$end_subdoc_handlers = { '' => sub {} }; ++$conforming_handler = sub {}; ++ ++# ++# Main access point: declare handlers for different SGML events. ++# ++# Usage: sgml(event, handler); ++# ++# The event may be one of the following strings, or a special pattern. ++# The generic events are as follow: ++# ++# 'start' The beginning of the document. ++# 'end' The end of the document. ++# 'start_element' The beginning of an element. ++# 'end_element' The end of an element. ++# 'cdata' Regular character data. ++# 'sdata' Special system-specific data. ++# 're' A record-end. ++# 'pi' A processing instruction. ++# 'entity' An external-entity reference. ++# 'start_subdoc' The beginning of a subdocument entity. ++# 'end_subdoc' The end of a subdocument entity. ++# 'conforming' The document is conforming. ++# ++# In addition to these generic events, it is possible to handlers ++# for certain specific, named events, as follow: ++# ++# '<GI>' The beginning of element GI. ++# '</GI>' The end of element GI. ++# '[SDATA]' The system-specific data SDATA. ++# '&ENAME;' A reference to the external entity ENAME. ++# '{ENAME}' The beginning of the subdocument-entity ENAME. ++# '{/ENAME}' The end of the subdocument-entity ENAME. ++# ++# ++# The handler may be a string, which will simply be printed when the ++# event occurs (this is usually useful only for the specific, named ++# events), or a reference to an anonymous subroutine, which will ++# receive two arguments: the event data and the event itself. For ++# example, ++# ++# sgml('<FOO>', "\n\\begin{foo}\n"); ++# ++# and ++# ++# sgml('<FOO>', sub { output("\n\\begin{foo}\n"); }); ++# ++# will have identical results. ++# ++sub main::sgml { ++ my ($spec,$handler) = (@_); ++ if (ref($handler) ne 'CODE') { ++ $handler =~ s/\\/\\\\/g; ++ $handler =~ s/'/\\'/g; ++ if ($handler eq '') { ++ $handler = sub {}; ++ } else { ++ $handler = eval "sub { main::output('$handler'); };"; ++ } ++ } ++ SWITCH: { ++ # start-document handler ++ $spec eq 'start' && do { ++ $start_document_handler = $handler; ++ last SWITCH; ++ }; ++ # end-document handler ++ $spec eq 'end' && do { ++ $end_document_handler = $handler; ++ last SWITCH; ++ }; ++ # start-element handler ++ $spec =~ /^<([^\/].*|)>$/ && do { ++ $start_element_handlers->{$1} = $handler; ++ last SWITCH; ++ }; ++ # generic start-element handler ++ $spec eq 'start_element' && do { ++ $start_element_handlers->{''} = $handler; ++ last SWITCH; ++ }; ++ # end-element handler ++ $spec =~ /^<\/(.*)>$/ && do { ++ $end_element_handlers->{$1} = $handler; ++ last SWITCH; ++ }; ++ # generic end-element handler ++ $spec =~ 'end_element' && do { ++ $end_element_handlers->{''} = $handler; ++ last SWITCH; ++ }; ++ # cdata handler ++ $spec eq 'cdata' && do { ++ $cdata_handler = $handler; ++ last SWITCH; ++ }; ++ # sdata handler ++ $spec =~ /^\|(.*)\|$/ && do { ++ $sdata_handlers->{$1} = $handler; ++ last SWITCH; ++ }; ++ # generic sdata handler ++ $spec eq 'sdata' && do { ++ $sdata_handlers->{''} = $handler; ++ last SWITCH; ++ }; ++ # record-end handler ++ $spec eq 're' && do { ++ $re_handler = $handler; ++ last SWITCH; ++ }; ++ # processing-instruction handler ++ $spec eq 'pi' && do { ++ $pi_handler = $handler; ++ last SWITCH; ++ }; ++ # entity-reference handler ++ $spec =~ /^\&(.*);$/ && do { ++ $entity_handlers->{$1} = $handler; ++ last SWITCH; ++ }; ++ # generic entity-reference handler ++ $spec eq 'entity' && do { ++ $entity_handlers->{''} = $handler; ++ last SWITCH; ++ }; ++ # start-subdoc handler ++ $spec =~ /^\{([^\/].*|)\}$/ && do { ++ $start_subdoc_handlers->{$1} = $handler; ++ last SWITCH; ++ }; ++ # generic start-subdoc handler ++ $spec eq 'start_subdoc' && do { ++ $start_subdoc_handlers->{''} = $handler; ++ last SWITCH; ++ }; ++ # end-subdoc handler ++ $spec =~ /^\{\/(.*)\}$/ && do { ++ $end_subdoc_handlers->{$1} = $handler; ++ last SWITCH; ++ }; ++ # generic end-subdoc handler ++ $spec eq 'end_subdoc' && do { ++ $end_subdoc_handlers->{''} = $handler; ++ last SWITCH; ++ }; ++ # conforming handler ++ $spec eq 'conforming' && do { ++ $conforming_handler = $handler; ++ last SWITCH; ++ }; ++ ++ die "Bad SGML handler pattern: $spec\n"; ++ } ++} ++ ++ ++# ++# The first argument on the command line is a perl module which will be ++# read here and evaluated in the 'main' package -- everything else will ++# be an argument to it. ++# ++package main; ++ ++$ARGV = shift; ++unless ($ARGV eq '' || do 'sgmlspl-specs/' . $ARGV || do $ARGV) { ++ if (!-e $ARGV) { ++ die "FATAL: $ARGV does not exist.\n"; ++ } elsif (!-r $ARGV) { ++ die "FATAL: $ARGV exists but is read-protected.\n"; ++ } elsif ($@) { ++ die "FATAL: $@\n"; ++ } ++} ++ ++ ++# ++# Do the actual work, using the SGMLS package. ++# ++package SGMLS_PL; ++ ++$parse = new SGMLS(main::STDIN); # a new parse object ++ ++&{$start_document_handler}(); # run the start handler. ++ ++ # run the appropriate handler for each ++ # event ++while ($event = $parse->next_event) { ++ my $type = $event->type; ++ SWITCH: { ++ $type eq 'start_element' && do { ++ &{($start_element_handlers->{$event->data->name}|| ++ $start_element_handlers->{''} || sub {})}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 'end_element' && do { ++ &{($end_element_handlers->{$event->data->name}|| ++ $end_element_handlers->{''} || sub {})}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 'cdata' && do { ++ &{$cdata_handler}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 'sdata' && do { ++ &{($sdata_handlers->{$event->data}|| ++ $sdata_handlers->{''} || sub {})}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 're' && do { ++ &{$re_handler}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 'pi' && do { ++ &{$pi_handler}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 'entity' && do { ++ &{($entity_handlers->{$event->data->name}|| ++ $entity_handlers->{''} || sub {})}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 'start_subdoc' && do { ++ &{($start_subdoc_handlers->{$event->data->name}|| ++ $start_subdoc_handlers->{''} || sub {})}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 'end_subdoc' && do { ++ &{($end_subdoc_handlers->{$event->data->name}|| ++ $end_subdoc_handlers->{''} || sub {})}($event->data,$event); ++ last SWITCH; ++ }; ++ $type eq 'conforming' && do { ++ &{$conforming_handler}($event->data,$event); ++ last SWITCH; ++ }; ++ ++ die "Unknown SGML event type: $type\n"; ++ } ++} ++ ++&{$end_document_handler}(); # run the end handler diff --git a/source/ap/linuxdoc-tools/sources/linuxdoc-tools.lib64.diff b/source/ap/linuxdoc-tools/sources/linuxdoc-tools.lib64.diff new file mode 100644 index 000000000..4741f2e2c --- /dev/null +++ b/source/ap/linuxdoc-tools/sources/linuxdoc-tools.lib64.diff @@ -0,0 +1,10 @@ +--- linuxdoc-tools-0.9.20/bin/linuxdoc.in.orig 2002-09-10 14:31:56.000000000 -0400 ++++ linuxdoc-tools-0.9.20/bin/linuxdoc.in 2002-09-10 14:32:32.000000000 -0400 +@@ -23,6 +23,7 @@ + + use lib "@DATADIR@"; + use lib "@prefix@/perl5"; ++use lib "@prefix@/lib64/perl5"; + use lib "@prefix@/lib/perl5"; + use lib "@prefix@/share/perl5"; + diff --git a/source/ap/linuxdoc-tools/sources/source.download b/source/ap/linuxdoc-tools/sources/source.download new file mode 100755 index 000000000..479033e0d --- /dev/null +++ b/source/ap/linuxdoc-tools/sources/source.download @@ -0,0 +1,67 @@ +# Incase you're wondering why we're using source RPMs, this is because +# they contain patches required to either fix build or runtime problems, +# and it's easier to maintain this hunk of a package when the patches & +# sources are self contained. + +# linuxdoc-tools: +# This provides things such as sgml2txt. +wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/linuxdoc-tools-0.9.65-1.fc12.src.rpm + +# OpenSP: +# http://openjade.sourceforge.net/download.html +# wget -c http://kent.dl.sourceforge.net/sourceforge/openjade/OpenSP-1.5.2.tar.gz +# +wget -c http://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/opensp-1.5.2-11.fc11.src.rpm + +# OpenJade: +# http://openjade.sourceforge.net/ +wget -c http://downloads.sourceforge.net/openjade/openjade-1.3.3-pre1.tar.gz + +# sgmltools-common. +# It's broken and needs patching so we'll use Fedora's. +#wget -c ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz +wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/sgml-common-0.6.3-29.fc12.src.rpm + +# DocBook docs: +# http://www.oasis-open.org/docbook/sgml/ +# +#wget -c http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip +#wget -c http://www.docbook.org/sgml/4.5/docbook-4.5.zip +# We use Debian's source instead because they patch the docbooks which make them work! +wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5.orig.tar.gz +wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5-4.diff.gz + +# http://www.linuxfromscratch.org/blfs/view/stable/pst/docbook-dsssl.html +# +wget -c ftp://ftp.fu-berlin.de/unix/linux/mirrors/gentoo/distfiles/docbook-dsssl-1.79.tar.bz2 +wget -c http://switch.dl.sourceforge.net/sourceforge/docbook/docbook-dsssl-doc-1.79.tar.bz2 +# Why don't they put the patches into the distributed source...??? +#wget -c ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/docbook-utils-0.6.14.tar.gz +wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/docbook-utils-0.6.14-17.fc12.src.rpm + +# +wget -c http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip +# https://sourceforge.net/project/showfiles.php?group_id=21935&package_id=16608 +#wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/docbook-style-xsl-1.75.1-1.fc12.src.rpm +wget -c http://downloads.sourceforge.net/docbook/docbook-xsl-1.71.1.tar.bz2 +wget -c http://downloads.sourceforge.net/docbook/docbook-xsl-doc-1.71.1.tar.bz2 + +# gnome-doc-utils, needed to build gtk-doc: +wget -c http://ftp.gnome.org/pub/GNOME/sources/gnome-doc-utils/0.17/gnome-doc-utils-0.17.2.tar.bz2 + +# gtk-doc: +wget -c http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.11/gtk-doc-1.11.tar.bz2 + +# sgmlspl +# http://www.cs.indiana.edu/~asengupt/sgml/SGMLSpm/DOC/HTML/sgmlspl/sgmlspl.html +# There's nothing in the FTP download site at this time, so I'll take it from Debian. +wget -c http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz +wget -c http://ftp.de.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-32.diff.gz + +# xmlto +# https://fedorahosted.org/releases/x/m/xmlto +wget -c --no-check-certificate http://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.22.tar.bz2 + +# AsciiDoc +# http://www.methods.co.nz/asciidoc/ +wget -c http://downloads.sourceforge.net/sourceforge/asciidoc/asciidoc-8.4.5.tar.gz diff --git a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools new file mode 100755 index 000000000..6eddaf4e2 --- /dev/null +++ b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools @@ -0,0 +1,78 @@ +#!/bin/bash + +##################################################################### +# trackbuild.liunxdoc-tools +# by Stuart Winter <mozes@slackware.com> +# Preform a few pre-build requirements then launch the build script +# through slacktrack +# 31-Jul-2009 +##################################################################### + +# Known build requirements: +# a/unzip for the docbook stuff +# l/libxml2 for /usr/bin/xmlcatalogue +# a/rpm2tgz to unpack some SRPMs +# d/python for AsciiDoc +# l/libxslt +# t/tetex (not required for a bootstrap build, but will be required +# later for a full build of this linuxdoc-tools package). + +# Package info: +PKGNAM=linuxdoc-tools + +# Automatically determine architecture for build & packaging: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +BUILD=${BUILD:-5} +PKGVERSION=0.9.56 # use the version of linuxdoc-tools as the package version. +PKGEXT=${PKGEXT:-txz} + +export CWD=$PWD +export PKGSTORE=/tmp +export TMP=/tmp/build-$PKGNAM/ +rm -rf $TMP + +####################### Clean up before build ##################### + +# It's best to clear this stuff up prior to the build. +# All of these directories (apart from /usr/share/xml/libglade) are +# created by this build script: +removepkg linuxdoc-tools +rm -rf /etc/{xml,sgml} +rm -rf /usr/share/doc/linuxdoc-tools +rm -rf /usr/share/sgml +rm -rf /usr/share/xml/{docbook,xml-iso-entities*} # can't wipe the entire dir because of libglade +rm -rf ~/.texmf-var/ # created by docbook-utils + +#################################################################### + +######## WARNING ################################################### +# This will touch nearly every file on your expendable development +# box. You wouldn't try this on a production system, right? +######## WARNING ################################################### + +# This the faster option, but not the safest. On a full Slackware +# installation, you'll find new files in this directory which have +# been 'touch'ed. The --touch-filesystem-first will not do this, +# but is slower. However, if you really want extra speed, copy +# this entire package source directory to a temporary location +# and run it from there. +# TFS="--touch-filesystem-faster" + +TFS="--touch-filesystem-first" + +# Launch the build script: +slacktrack $TFS \ + --notidy \ + --showdeps \ + -T $TMP \ + -l $CWD/build.$ARCH.log \ + -R $CWD/postbuildfixes.sh \ + -b $PKGSTORE \ + -YQOcp $PKGNAM-$PKGVERSION-$ARCH-$BUILD.$PKGEXT ./linuxdoc-tools.build diff --git a/source/ap/lm_sensors/lm_sensors.SlackBuild b/source/ap/lm_sensors/lm_sensors.SlackBuild new file mode 100755 index 000000000..72ad373de --- /dev/null +++ b/source/ap/lm_sensors/lm_sensors.SlackBuild @@ -0,0 +1,116 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=lm_sensors +VERSION=${VERSION:-3.1.1} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +zcat $CWD/lm_sensors.makefile.diff.gz | patch -p1 --verbose || exit 1 + +make user LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1 +make user_install LIBDIR=/usr/lib${LIBDIRSUFFIX} || exit 1 + +# Nope. +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +# Nope. +rm -rf $PKG/usr/include/linux + +# Do the .new thing with the config file: +mv $PKG/etc/sensors3.conf $PKG/etc/sensors3.conf.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES CONTRIBUTORS COPYING* INSTALL README* doc \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/sensors3.conf.new +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/lm_sensors/lm_sensors.makefile.diff b/source/ap/lm_sensors/lm_sensors.makefile.diff new file mode 100644 index 000000000..8216a8d1e --- /dev/null +++ b/source/ap/lm_sensors/lm_sensors.makefile.diff @@ -0,0 +1,15 @@ +--- ./Makefile.orig 2008-03-26 08:37:12.000000000 -0500 ++++ ./Makefile 2008-10-25 20:05:44.000000000 -0500 +@@ -39,10 +39,10 @@ + + # If you want to install at some other place then at from which you will run + # everything, set DESTDIR to the extra prefix. +-DESTDIR := ++DESTDIR := /tmp/package-lm_sensors + + # This is the prefix that will be used for almost all directories below. +-PREFIX := /usr/local ++PREFIX := /usr + + # Your C compiler + CC := gcc diff --git a/source/ap/lm_sensors/slack-desc b/source/ap/lm_sensors/slack-desc new file mode 100644 index 000000000..2f32f80d7 --- /dev/null +++ b/source/ap/lm_sensors/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lm_sensors: lm_sensors (hardware monitoring package) +lm_sensors: +lm_sensors: lm_sensors provides tools for monitoring the temperatures, voltages, +lm_sensors: and fans of Linux systems with hardware monitoring devices. Included +lm_sensors: are text-based tools for sensor reporting, and a library for sensors +lm_sensors: access called libsensors. It also contains tools for sensor hardware +lm_sensors: identification and I2C bus probing. +lm_sensors: +lm_sensors: IMPORTANT NOTE: If you have a Thinkpad, please read the warnings in +lm_sensors: the README.thinkpad file. lm_sensors has been known to cause damage +lm_sensors: to some Thinkpads. diff --git a/source/ap/lsof/lsof.SlackBuild b/source/ap/lsof/lsof.SlackBuild new file mode 100755 index 000000000..afcef1678 --- /dev/null +++ b/source/ap/lsof/lsof.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.78 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lsof + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf lsof_$VERSION +tar xjvf $CWD/lsof_$VERSION.tar.bz2 +cd lsof_$VERSION +tar xvf lsof_${VERSION}_src.tar +cd lsof_${VERSION}_src + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo n | ./Configure linux +make +strip lsof +mkdir -p $PKG/usr/bin +cat lsof > $PKG/usr/bin/lsof +# No, NOT suid. +chmod 755 $PKG/usr/bin/lsof +mkdir -p $PKG/usr/man/man8 +cat lsof.8 | gzip -9c > $PKG/usr/man/man8/lsof.8.gz +mkdir -p $PKG/usr/doc/lsof-$VERSION +cp -a 00* $PKG/usr/doc/lsof-$VERSION +chmod 644 $PKG/usr/doc/lsof-$VERSION/* +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/lsof-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/lsof-$VERSION + rm -rf $PKG +fi diff --git a/source/ap/lsof/slack-desc b/source/ap/lsof/slack-desc new file mode 100644 index 000000000..2d8882a77 --- /dev/null +++ b/source/ap/lsof/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lsof: lsof (list open files) +lsof: +lsof: Lsof is a Unix-specific tool. Its name stands for "LiSt Open Files", +lsof: and it does just that. It lists information about files that are open +lsof: by the processes running on the system. +lsof: +lsof: Victor A. Abell of Purdue University is the developer of lsof. +lsof: +lsof: +lsof: +lsof: diff --git a/source/ap/lsscsi/lsscsi.SlackBuild b/source/ap/lsscsi/lsscsi.SlackBuild new file mode 100755 index 000000000..102e3da39 --- /dev/null +++ b/source/ap/lsscsi/lsscsi.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=lsscsi +VERSION=${VERSION:-0.22} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING CREDITS ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/lsscsi/lsscsi.url b/source/ap/lsscsi/lsscsi.url new file mode 100644 index 000000000..e87f176c1 --- /dev/null +++ b/source/ap/lsscsi/lsscsi.url @@ -0,0 +1 @@ +http://sg.danny.cz/scsi/lsscsi.html diff --git a/source/ap/lsscsi/slack-desc b/source/ap/lsscsi/slack-desc new file mode 100644 index 000000000..afc4f638e --- /dev/null +++ b/source/ap/lsscsi/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lsscsi: lsscsi (list SCSI devices or hosts, and their attributes) +lsscsi: +lsscsi: Uses information in sysfs to list scsi devices (or hosts) currently +lsscsi: attached to the system. Options can be used to control the amount +lsscsi: and form of information provided for each device. +lsscsi: +lsscsi: lsscsi was written by Doug Gilbert. +lsscsi: +lsscsi: +lsscsi: +lsscsi: + diff --git a/source/ap/madplay/madplay-0.15.2b.tar.gz.sign b/source/ap/madplay/madplay-0.15.2b.tar.gz.sign new file mode 100644 index 000000000..d8c15332c --- /dev/null +++ b/source/ap/madplay/madplay-0.15.2b.tar.gz.sign @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: PGP 8.0.3 + +iQA/AwUAQDp66/bzO6Ks1lsyEQLXKQCgnwZnv72//lWsJH+UY3D3xwfUImwAoPnD +P15yJQ90MlTFmgFneRs8Kscq +=Iwpu +-----END PGP SIGNATURE----- diff --git a/source/ap/madplay/madplay.SlackBuild b/source/ap/madplay/madplay.SlackBuild new file mode 100755 index 000000000..fb322c834 --- /dev/null +++ b/source/ap/madplay/madplay.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.15.2b +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-madplay +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf madplay-$VERSION +tar xvf $CWD/madplay-$VERSION.tar.gz || exit 1 +cd madplay-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --with-alsa \ + --disable-debugging \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man1/* + +mkdir -p $PKG/usr/doc/madplay-$VERSION +cp -a \ + CHANGES COPYING COPYRIGHT CREDITS README TODO VERSION \ + $PKG/usr/doc/madplay-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/madplay-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/madplay/slack-desc b/source/ap/madplay/slack-desc new file mode 100644 index 000000000..ff1dcb292 --- /dev/null +++ b/source/ap/madplay/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +madplay: madplay (MPEG audio decoder and player) +madplay: +madplay: madplay is a command-line MPEG audio decoder and player based on the +madplay: MAD library (libmad). For details about MAD, see the libmad package +madplay: distributed separately. +madplay: +madplay: madplay was written by Robert Leslie. +madplay: +madplay: +madplay: +madplay: diff --git a/source/ap/man-pages/doinst.sh b/source/ap/man-pages/doinst.sh new file mode 100644 index 000000000..f42fcb482 --- /dev/null +++ b/source/ap/man-pages/doinst.sh @@ -0,0 +1,7 @@ +#!/bin/sh +if [ ! -e usr/man/whatis ]; then + mv usr/man/whatis.sample usr/man/whatis +elif [ "$(md5sum usr/man/whatis)" = "$(md5sum usr/man/whatis.sample)" ]; then + # toss the redundant copy + rm usr/man/whatis.sample +fi diff --git a/source/ap/man-pages/man-pages.SlackBuild b/source/ap/man-pages/man-pages.SlackBuild new file mode 100755 index 000000000..26b7bb57a --- /dev/null +++ b/source/ap/man-pages/man-pages.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-3.22} +ARCH=noarch +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-man-pages + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf man-pages-$VERSION +tar xvf $CWD/man-pages-$VERSION.tar.bz2 +tar xf $CWD/man-pages-posix-2003-a.tar.bz2 +chown -R root:root man-pages-$VERSION man-pages-posix-2003-a +find man-pages-$VERSION \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +find man-pages-posix-2003-a \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/man +cp -a man-pages-$VERSION/* $PKG/usr/man + +# The pthread manpages are the only POSIX ones that anyone +# has requested saving. If I missed anything important, let me know. +mv man-pages-posix-2003-a/man0p/pthread.h.0p $PKG/usr/man/man3/pthread.h.3p +mv man-pages-posix-2003-a/man3p/pthread_* $PKG/usr/man/man3 +cp man-pages-posix-2003-a/POSIX-COPYRIGHT $PKG/usr/man +# Are these other POSIX manpages of any real usefulness here? +# Granted there may be some historical interest, and it's nice +# to have them in the source package for that reason, but it +# seems to me that installing them on the system by default +# isn't likely to help most people and may lead to confusion. + +# Also probably not needed in the package +rm -rf $PKG/usr/man/scripts +rm -f $PKG/usr/man/Makefile +rm -f $PKG/usr/man/Changes.old + +# Compress the pages: +gzip -9 $PKG/usr/man/man*/*.* + +# If a man page exists in some other package, assume that's the +# newer, better version: +( cd $PKG + for file in usr/man/man*/*.gz ; do + if grep -l $file /var/log/packages/* | grep -v var/log/packages/man-pages ; then + rm -f --verbose $file + fi + done +) + +# Some of the posix pages don't display correctly without this +( cd $PKG/usr/man ; ln -s man3 man3p ) + +# This package has always provided the initial whatis sample +# file, so we'll continue to have that here, too: +cp -a $CWD/whatis.sample.xz $PKG/usr/man +( cd $PKG/usr/man + chown root:root whatis.sample.xz + chmod 644 whatis.sample.xz + xz -d whatis.sample.xz || exit 1 +) || exit 1 + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/man-pages-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/man-pages/slack-desc b/source/ap/man-pages/slack-desc new file mode 100644 index 000000000..102e3a5bc --- /dev/null +++ b/source/ap/man-pages/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +man-pages: man-pages (system documentation) +man-pages: +man-pages: Man pages are online documentation for Linux. This package includes +man-pages: many section 1, 2, 3, 4, 5, 7, and 8 man pages for Linux. +man-pages: +man-pages: The man-pages distribution is maintained by Michael Kerrisk with +man-pages: the help of more writers, editors, and other contributors than we +man-pages: can name here. +man-pages: +man-pages: For more information, see http://www.kernel.org/doc/man-pages/ +man-pages: diff --git a/source/ap/man-pages/whatis.sample b/source/ap/man-pages/whatis.sample new file mode 100644 index 000000000..ce3fa4bde --- /dev/null +++ b/source/ap/man-pages/whatis.sample @@ -0,0 +1,12806 @@ +.ldaprc [] (5) - ldap configuration file +.netrc [] (5) - user configuration for ftp +/autofs [] (8) - Control Script for automounter +/etc/auto.master [] (5) - Master Map for automounter +/etc/bluetooth/hcid.conf [] (5) - Configuration file for the hcid Bluetooth HCI daemon +/etc/hosts.equiv [] (5) - list of hosts and users that are granted trusted r command access to your system +/etc/login.defs [] (5) - shadow password suite configuration +/etc/nscd.conf [] (5) - name service cache daemon configuration file +/etc/yp.conf [] (5) - NIS binding configuration file +/proc/slabinfo [] (5) - Kernel slab allocator statistics +/sbin/ldconfig [] (8) - configure dynamic linker run-time bindings +/usr/sbin/nscd [] (8) - name service cache daemon +/var/yp/nicknames [] (5) - nickname translation table for NIS maps +411toppm [] (1) - convert Sony Mavica .411 image to PPM +: [] (1) - bash built-in commands, see bash(1) +AF_INET6 [] (7) - Linux IPv6 protocol implementation +AF_LOCAL [] (7) - Sockets for local interprocess communication +AF_PACKET [] (7) - packet interface on device level +AF_UNIX [] (7) - Sockets for local interprocess communication +AF_X25 [] (7) - ITU-T X.25 / ISO-8208 protocol interface +AS [] (1) - the portable GNU assembler +ASN1_OBJECT_free, [] (3) - object allocation functions +ASN1_OBJECT_new [] (3) - object allocation functions +ASN1_STRING_cmp [] (3) - ASN1_STRING utility functions +ASN1_STRING_data [] (3) - ASN1_STRING utility functions +ASN1_STRING_dup [] (3) - ASN1_STRING utility functions +ASN1_STRING_free [] (3) - ASN1_STRING allocation functions +ASN1_STRING_length [] (3) - ASN1_STRING utility functions +ASN1_STRING_length_set [] (3) - ASN1_STRING utility functions +ASN1_STRING_new [] (3) - ASN1_STRING allocation functions +ASN1_STRING_print_ex [] (3) - ASN1_STRING output routines +ASN1_STRING_print_ex_fp [] (3) - ASN1_STRING output routines +ASN1_STRING_set [] (3) - ASN1_STRING utility functions +ASN1_STRING_type [] (3) - ASN1_STRING utility functions +ASN1_STRING_type_new [] (3) - ASN1_STRING allocation functions +ASN1_generate_nconf [] (3) - ASN1 generation functions +ASN1_generate_v3 [] (3) - ASN1 generation functions +AllPlanes [] (3) - Display macros and functions +AnyDBM_File [] (3) - provide framework for multiple DBMs +AppleVolumes.default [] (5) - Configuration file used by afpd(8) to determine the shares made available through Appletalk +Archive::Extract [] (3) - A generic archive extracting mechanism +Archive::Tar [] (3) - module for manipulations of tar archives +Archive::Tar::File [] (3) - a subclass for in-memory extracted file from Archive::Tar +Attribute::Handlers [] (3) - Simpler definition of attribute handlers +Audacious [] (1) - an audio player for X +AutoLoader [] (3) - load subroutines only on demand +AutoSplit [] (3) - split a package for autoloading +B [] (3) - The Perl Compiler +B::Concise [] (3) - Walk Perl syntax tree, printing concise info about ops +B::Debug [] (3) - Walk Perl syntax tree, printing debug info about ops +B::Deparse [] (3) - Perl compiler backend to produce perl code +B::Lint [] (3) - Perl lint +B::Showlex [] (3) - Show lexical variables used in functions or files +B::Terse [] (3) - Walk Perl syntax tree, printing terse info about ops +B::Xref [] (3) - Generates cross reference reports for Perl programs +BF_cbc_encrypt [] (3) - Blowfish encryption +BF_cfb64_encrypt [] (3) - Blowfish encryption +BF_decrypt [] (3) - Blowfish encryption +BF_ecb_encrypt [] (3) - Blowfish encryption +BF_encrypt [] (3) - Blowfish encryption +BF_ofb64_encrypt [] (3) - Blowfish encryption +BF_options [] (3) - Blowfish encryption +BF_set_key [] (3) - Blowfish encryption +BIO_append_filename [] (3) - FILE bio +BIO_callback_ctrl [] (3) - BIO control operations +BIO_ctrl [] (3) - BIO control operations +BIO_ctrl_get_read_request [] (3) - BIO pair BIO +BIO_ctrl_get_write_guarantee [] (3) - BIO pair BIO +BIO_ctrl_pending [] (3) - BIO control operations +BIO_ctrl_reset_read_request [] (3) - BIO pair BIO +BIO_ctrl_wpending [] (3) - BIO control operations +BIO_debug_callback [] (3) - BIO callback functions +BIO_destroy_bio_pair [] (3) - BIO pair BIO +BIO_do_accept [] (3) - accept BIO +BIO_do_connect [] (3) - connect BIO +BIO_eof [] (3) - BIO control operations +BIO_f_base64 [] (3) - base64 BIO filter +BIO_f_buffer [] (3) - buffering BIO +BIO_f_cipher [] (3) - cipher BIO filter +BIO_f_md [] (3) - message digest BIO filter +BIO_f_null [] (3) - null filter +BIO_f_ssl [] (3) - SSL BIO +BIO_find_type [] (3) - BIO chain traversal +BIO_flush [] (3) - BIO control operations +BIO_free [] (3) - BIO allocation and freeing functions +BIO_free_all [] (3) - BIO allocation and freeing functions +BIO_get_accept_port [] (3) - accept BIO +BIO_get_bind_mode [] (3) - accept BIO +BIO_get_callback [] (3) - BIO callback functions +BIO_get_callback_arg [] (3) - BIO callback functions +BIO_get_cipher_ctx [] (3) - cipher BIO filter +BIO_get_cipher_status [] (3) - cipher BIO filter +BIO_get_close [] (3) - BIO control operations +BIO_get_conn_hostname [] (3) - connect BIO +BIO_get_conn_int_port [] (3) - connect BIO +BIO_get_conn_ip [] (3) - connect BIO +BIO_get_conn_port [] (3) - connect BIO +BIO_get_fd [] (3) - file descriptor BIO +BIO_get_fp [] (3) - FILE bio +BIO_get_info_callback [] (3) - BIO control operations +BIO_get_md [] (3) - message digest BIO filter +BIO_get_md_ctx [] (3) - message digest BIO filter +BIO_get_mem_data [] (3) - memory BIO +BIO_get_mem_ptr [] (3) - memory BIO +BIO_get_num_renegotiates [] (3) - SSL BIO +BIO_get_read_request [] (3) - BIO pair BIO +BIO_get_retry_BIO [] (3) - BIO retry functions +BIO_get_retry_reason [] (3) - BIO retry functions +BIO_get_ssl [] (3) - SSL BIO +BIO_get_write_buf_size [] (3) - BIO pair BIO +BIO_get_write_guarantee [] (3) - BIO pair BIO +BIO_gets [] (3) - BIO I/O functions +BIO_int_ctrl [] (3) - BIO control operations +BIO_make_bio_pair [] (3) - BIO pair BIO +BIO_new [] (3) - BIO allocation and freeing functions +BIO_new_bio_pair [] (3) - BIO pair BIO +BIO_new_buffer_ssl_connect [] (3) - SSL BIO +BIO_new_fd [] (3) - file descriptor BIO +BIO_new_file [] (3) - FILE bio +BIO_new_fp [] (3) - FILE bio +BIO_new_mem_buf [] (3) - memory BIO +BIO_new_socket [] (3) - socket BIO +BIO_new_ssl [] (3) - SSL BIO +BIO_new_ssl_connect [] (3) - SSL BIO +BIO_next [] (3) - BIO chain traversal +BIO_pending [] (3) - BIO control operations +BIO_pop [] (3) - add and remove BIOs from a chain +BIO_ptr_ctrl [] (3) - BIO control operations +BIO_push [] (3) - add and remove BIOs from a chain +BIO_puts [] (3) - BIO I/O functions +BIO_read [] (3) - BIO I/O functions +BIO_read_filename [] (3) - FILE bio +BIO_reset [] (3) - BIO control operations +BIO_retry_type [] (3) - BIO retry functions +BIO_rw_filename [] (3) - FILE bio +BIO_s_accept [] (3) - accept BIO +BIO_s_bio [] (3) - BIO pair BIO +BIO_s_connect [] (3) - connect BIO +BIO_s_fd [] (3) - file descriptor BIO +BIO_s_file [] (3) - FILE bio +BIO_s_mem [] (3) - memory BIO +BIO_s_null [] (3) - null data sink +BIO_s_socket [] (3) - socket BIO +BIO_seek [] (3) - BIO control operations +BIO_set [] (3) - BIO allocation and freeing functions +BIO_set_accept_bios [] (3) - accept BIO +BIO_set_accept_port [] (3) - accept BIO +BIO_set_bind_mode [] (3) - accept BIO +BIO_set_callback [] (3) - BIO callback functions +BIO_set_callback_arg [] (3) - BIO callback functions +BIO_set_cipher [] (3) - cipher BIO filter +BIO_set_close [] (3) - BIO control operations +BIO_set_conn_hostname [] (3) - connect BIO +BIO_set_conn_int_port [] (3) - connect BIO +BIO_set_conn_ip [] (3) - connect BIO +BIO_set_conn_port [] (3) - connect BIO +BIO_set_fd [] (3) - file descriptor BIO +BIO_set_fp [] (3) - FILE bio +BIO_set_info_callback [] (3) - BIO control operations +BIO_set_md [] (3) - message digest BIO filter +BIO_set_mem_buf [] (3) - memory BIO +BIO_set_mem_eof_return [] (3) - memory BIO +BIO_set_nbio [] (3) - connect BIO +BIO_set_nbio_accept [] (3) - accept BIO +BIO_set_ssl [] (3) - SSL BIO +BIO_set_ssl_mode [] (3) - SSL BIO +BIO_set_ssl_renegotiate_bytes [] (3) - SSL BIO +BIO_set_ssl_renegotiate_timeout [] (3) - SSL BIO +BIO_set_write_buf_size [] (3) - BIO pair BIO +BIO_should_io_special [] (3) - BIO retry functions +BIO_should_read [] (3) - BIO retry functions +BIO_should_retry [] (3) - BIO retry functions +BIO_should_write [] (3) - BIO retry functions +BIO_shutdown_wr [] (3) - BIO pair BIO +BIO_ssl_copy_session_id [] (3) - SSL BIO +BIO_ssl_shutdown [] (3) - SSL BIO +BIO_tell [] (3) - BIO control operations +BIO_vfree [] (3) - BIO allocation and freeing functions +BIO_wpending [] (3) - BIO control operations +BIO_write [] (3) - BIO I/O functions +BIO_write_filename [] (3) - FILE bio +BN_BLINDING_convert [] (3) - blinding related BIGNUM functions +BN_BLINDING_convert_ex [] (3) - blinding related BIGNUM functions +BN_BLINDING_create_param [] (3) - blinding related BIGNUM functions +BN_BLINDING_free [] (3) - blinding related BIGNUM functions +BN_BLINDING_get_flags [] (3) - blinding related BIGNUM functions +BN_BLINDING_get_thread_id [] (3) - blinding related BIGNUM functions +BN_BLINDING_invert [] (3) - blinding related BIGNUM functions +BN_BLINDING_invert_ex [] (3) - blinding related BIGNUM functions +BN_BLINDING_new [] (3) - blinding related BIGNUM functions +BN_BLINDING_set_flags [] (3) - blinding related BIGNUM functions +BN_BLINDING_set_thread_id [] (3) - blinding related BIGNUM functions +BN_BLINDING_update [] (3) - blinding related BIGNUM functions +BN_CTX_end [] (3) - use temporary BIGNUM variables +BN_CTX_free [] (3) - allocate and free BN_CTX structures +BN_CTX_get [] (3) - use temporary BIGNUM variables +BN_CTX_init [] (3) - allocate and free BN_CTX structures +BN_CTX_new [] (3) - allocate and free BN_CTX structures +BN_CTX_start [] (3) - use temporary BIGNUM variables +BN_MONT_CTX_copy [] (3) - Montgomery multiplication +BN_MONT_CTX_free [] (3) - Montgomery multiplication +BN_MONT_CTX_init [] (3) - Montgomery multiplication +BN_MONT_CTX_new [] (3) - Montgomery multiplication +BN_MONT_CTX_set [] (3) - Montgomery multiplication +BN_RECP_CTX_free [] (3) - modular multiplication using reciprocal +BN_RECP_CTX_init [] (3) - modular multiplication using reciprocal +BN_RECP_CTX_new [] (3) - modular multiplication using reciprocal +BN_RECP_CTX_set [] (3) - modular multiplication using reciprocal +BN_add [] (3) - arithmetic operations on BIGNUMs +BN_add_word [] (3) - arithmetic functions on BIGNUMs with integers +BN_bin2bn [] (3) - format conversions +BN_bn2bin [] (3) - format conversions +BN_bn2dec [] (3) - format conversions +BN_bn2hex [] (3) - format conversions +BN_bn2mpi [] (3) - format conversions +BN_clear [] (3) - allocate and free BIGNUMs +BN_clear_bit [] (3) - bit operations on BIGNUMs +BN_clear_free [] (3) - allocate and free BIGNUMs +BN_cmp [] (3) - BIGNUM comparison and test functions +BN_copy [] (3) - copy BIGNUMs +BN_dec2bn [] (3) - format conversions +BN_div [] (3) - arithmetic operations on BIGNUMs +BN_div_recp [] (3) - modular multiplication using reciprocal +BN_div_word [] (3) - arithmetic functions on BIGNUMs with integers +BN_dup [] (3) - copy BIGNUMs +BN_exp [] (3) - arithmetic operations on BIGNUMs +BN_free [] (3) - allocate and free BIGNUMs +BN_from_montgomery [] (3) - Montgomery multiplication +BN_gcd [] (3) - arithmetic operations on BIGNUMs +BN_generate_prime [] (3) - generate primes and test for primality +BN_get_word [] (3) - BIGNUM assignment operations +BN_hex2bn [] (3) - format conversions +BN_init [] (3) - allocate and free BIGNUMs +BN_is_bit_set [] (3) - bit operations on BIGNUMs +BN_is_odd [] (3) - BIGNUM comparison and test functions +BN_is_one [] (3) - BIGNUM comparison and test functions +BN_is_prime [] (3) - generate primes and test for primality +BN_is_prime_fasttest [] (3) - generate primes and test for primality +BN_is_word [] (3) - BIGNUM comparison and test functions +BN_is_zero [] (3) - BIGNUM comparison and test functions +BN_lshift [] (3) - bit operations on BIGNUMs +BN_lshift1 [] (3) - bit operations on BIGNUMs +BN_mask_bits [] (3) - bit operations on BIGNUMs +BN_mod [] (3) - arithmetic operations on BIGNUMs +BN_mod_add [] (3) - arithmetic operations on BIGNUMs +BN_mod_exp [] (3) - arithmetic operations on BIGNUMs +BN_mod_inverse [] (3) - compute inverse modulo n +BN_mod_mul [] (3) - arithmetic operations on BIGNUMs +BN_mod_mul_montgomery [] (3) - Montgomery multiplication +BN_mod_mul_reciprocal [] (3) - modular multiplication using reciprocal +BN_mod_sqr [] (3) - arithmetic operations on BIGNUMs +BN_mod_sub [] (3) - arithmetic operations on BIGNUMs +BN_mod_word [] (3) - arithmetic functions on BIGNUMs with integers +BN_mpi2bn [] (3) - format conversions +BN_mul [] (3) - arithmetic operations on BIGNUMs +BN_mul_word [] (3) - arithmetic functions on BIGNUMs with integers +BN_new [] (3) - allocate and free BIGNUMs +BN_nnmod [] (3) - arithmetic operations on BIGNUMs +BN_num_bits [] (3) - get BIGNUM size +BN_num_bits_word [] (3) - get BIGNUM size +BN_num_bytes [] (3) - get BIGNUM size +BN_one [] (3) - BIGNUM assignment operations +BN_print [] (3) - format conversions +BN_print_fp [] (3) - format conversions +BN_pseudo_rand [] (3) - generate pseudo-random number +BN_rand [] (3) - generate pseudo-random number +BN_rshift [] (3) - bit operations on BIGNUMs +BN_rshift1 [] (3) - bit operations on BIGNUMs +BN_set_bit [] (3) - bit operations on BIGNUMs +BN_set_word [] (3) - BIGNUM assignment operations +BN_sqr [] (3) - arithmetic operations on BIGNUMs +BN_sub [] (3) - arithmetic operations on BIGNUMs +BN_sub_word [] (3) - arithmetic functions on BIGNUMs with integers +BN_swap [] (3) - exchange BIGNUMs +BN_to_montgomery [] (3) - Montgomery multiplication +BN_ucmp [] (3) - BIGNUM comparison and test functions +BN_value_one [] (3) - BIGNUM assignment operations +BN_zero [] (3) - BIGNUM assignment operations +BUF_MEM_free [] (3) - simple character arrays structure +BUF_MEM_grow [] (3) - simple character arrays structure +BUF_MEM_new [] (3) - simple character arrays structure +BUF_strdup [] (3) - simple character arrays structure +Benchmark [] (3) - benchmark running times of Perl code +BerElement [] (3) - LBER types and allocation functions +BerValue [] (3) - LBER types and allocation functions +BerVarray [] (3) - LBER types and allocation functions +BitmapBitOrder [] (3) - image format functions and macros +BitmapPad [] (3) - image format functions and macros +BitmapUnit [] (3) - image format functions and macros +BlackPixel [] (3) - Display macros and functions +BlackPixelOfScreen [] (3) - screen information functions and macros +Bundle::DBD::mysql [] (3) - A bundle to install Perl drivers for MySQL +Bundle::DBI [] (3) - A bundle to install DBI and required modules +C operator [] (7) - C operator precedence and order of evaluation +CA.pl [] (1) - friendlier interface for OpenSSL certificate programs +CACA_BLACK [] (3) - 1); caca_free_display(dp); +CACA_EVENT_KEY_PRESS [] (3) - 1); caca_free_display(dp); +CACA_WHITE); caca_put_str(cv [] (3) - 1); caca_free_display(dp); +CBQ [] (8) - Class Based Queueing +CGI [] (3) - Simple Common Gateway Interface Class +CGI::Apache [] (3) - Backward compatibility module for CGI.pm +CGI::Carp [] (3) - CGI routines for writing to the HTTPD (or other) error log +CGI::Cookie [] (3) - Interface to Netscape Cookies +CGI::Fast [] (3) - CGI Interface for Fast CGI +CGI::Pretty [] (3) - module to produce nicely formatted HTML code +CGI::Push [] (3) - Simple Interface to Server Push +CGI::Switch [] (3) - Backward compatibility module for defunct CGI::Switch +CGI::Util [] (3) - Internal utilities used by CGI module +CIRCLEQ_ENTRY [] (3) - implementations of lists, tail queues, and circular queues +CIRCLEQ_HEAD [] (3) - implementations of lists, tail queues, and circular queues +CIRCLEQ_INIT [] (3) - implementations of lists, tail queues, and circular queues +CIRCLEQ_INSERT_AFTER [] (3) - implementations of lists, tail queues, and circular queues +CIRCLEQ_INSERT_BEFORE [] (3) - implementations of lists, tail queues, and circular queues +CIRCLEQ_INSERT_HEAD [] (3) - implementations of lists, tail queues, and circular queues +CIRCLEQ_INSERT_TAIL [] (3) - implementations of lists, tail queues, and circular queues +CIRCLEQ_REMOVE [] (3) - implementations of lists, tail queues, and circular queues +CMSG_ALIGN [] (3) - Access ancillary data +CMSG_FIRSTHDR [] (3) - Access ancillary data +CMSG_NXTHDR [] (3) - Access ancillary data +CMSG_SPACE [] (3) - Access ancillary data +COLOR_PAIR [] (3) - curses color manipulation routines +CONF_modules_finish [] (3) - OpenSSL configuration cleanup functions +CONF_modules_free [] (3) - OpenSSL configuration cleanup functions +CONF_modules_load [] (3) - OpenSSL configuration functions +CONF_modules_load_file [] (3) - OpenSSL configuration functions +CONF_modules_unload [] (3) - OpenSSL configuration cleanup functions +CORE [] (3) - Pseudo-namespace for Perl's core routines +CPAN [] (3) - query, download and build perl modules from CPAN sites +CPAN::API::HOWTO [] (3) - a recipe book for programming with CPAN.pm +CPAN::FirstTime [] (3) - Utility for CPAN::Config file Initialization +CPAN::Kwalify [] (3) - Interface between CPAN.pm and Kwalify.pm +CPAN::Nox [] (3) - Wrapper around CPAN.pm without using any XS module +CPAN::Version [] (3) - utility functions to compare CPAN versions +CPANPLUS [] (3) - API & CLI access to the CPAN mirrors +CPANPLUS::Dist::Base [] (3) - Base class for custom distribution classes +CPANPLUS::Dist::Sample [] (3) - - Sample code to create your own Dist::* plugin +CPANPLUS::Shell::Classic [] (3) - CPAN.pm emulation for CPANPLUS +CPANPLUS::Shell::Default::Plugins::HOWTO [] (3) - - documentation on how to write your own plugins +CPU_ALLOC [] (3) - macros for manipulating CPU sets +CPU_ALLOC_SIZE [] (3) - macros for manipulating CPU sets +CPU_AND [] (3) - macros for manipulating CPU sets +CPU_AND_S [] (3) - macros for manipulating CPU sets +CPU_CLR [] (3) - macros for manipulating CPU sets +CPU_CLR_S [] (3) - macros for manipulating CPU sets +CPU_COUNT [] (3) - macros for manipulating CPU sets +CPU_COUNT_S [] (3) - macros for manipulating CPU sets +CPU_EQUAL [] (3) - macros for manipulating CPU sets +CPU_EQUAL_S [] (3) - macros for manipulating CPU sets +CPU_FREE [] (3) - macros for manipulating CPU sets +CPU_ISSET [] (3) - macros for manipulating CPU sets +CPU_ISSET_S [] (3) - macros for manipulating CPU sets +CPU_OR [] (3) - macros for manipulating CPU sets +CPU_OR_S [] (3) - macros for manipulating CPU sets +CPU_SET [] (3) - macros for manipulating CPU sets +CPU_SET_S [] (3) - macros for manipulating CPU sets +CPU_XOR [] (3) - macros for manipulating CPU sets +CPU_XOR_S [] (3) - macros for manipulating CPU sets +CPU_ZERO [] (3) - macros for manipulating CPU sets +CPU_ZERO_S [] (3) - macros for manipulating CPU sets +CRYPTO_destroy_dynlockid [] (3) - OpenSSL thread support +CRYPTO_get_ex_data [] (3) - internal application specific data functions +CRYPTO_get_new_dynlockid [] (3) - OpenSSL thread support +CRYPTO_lock [] (3) - OpenSSL thread support +CRYPTO_num_locks [] (3) - OpenSSL thread support +CRYPTO_set_dynlock_create_callback [] (3) - OpenSSL thread support +CRYPTO_set_dynlock_destroy_callback [] (3) - OpenSSL thread support +CRYPTO_set_dynlock_lock_callback [] (3) - OpenSSL thread support +CRYPTO_set_ex_data [] (3) - internal application specific data functions +CRYPTO_set_id_callback [] (3) - OpenSSL thread support +CRYPTO_set_locking_callback [] (3) - OpenSSL thread support +Carp::Heavy [] (3) - heavy machinery, no user serviceable parts inside +CellsOfScreen [] (3) - screen information functions and macros +Cervisia [] (1) - Graphical CVS frontend +Class::ISA [] (3) - - report the search path for a class's ISA tree +Class::Struct [] (3) - declare struct-like datatypes as Perl classes +ClientWhitePointOfCCC [] (3) - Color Conversion Context macros +Compress::Raw::Zlib [] (3) - Low-Level Interface to zlib compression library +Compress::Zlib [] (3) - Interface to zlib compression library +Config [] (3) - access Perl configuration information +Config::Extensions [] (3) - hash lookup of which core extensions were built +ConnectionNumber [] (3) - Display macros and functions +Cwd [] (3) - get pathname of current working directory +DBD::DBM [] (3) - a DBI driver for DBM & MLDBM files +DBD::File [] (3) - Base class for writing DBI drivers +DBD::Gofer [] (3) - A stateless-proxy driver for communicating with a remote DBI +DBD::Gofer::Policy::Base [] (3) - Base class for DBD::Gofer policies +DBD::Gofer::Policy::classic [] (3) - The 'classic' policy for DBD::Gofer +DBD::Gofer::Policy::pedantic [] (3) - The 'pedantic' policy for DBD::Gofer +DBD::Gofer::Policy::rush [] (3) - The 'rush' policy for DBD::Gofer +DBD::Gofer::Transport::Base [] (3) - base class for DBD::Gofer client transports +DBD::Gofer::Transport::null [] (3) - DBD::Gofer client transport for testing +DBD::Gofer::Transport::pipeone [] (3) - DBD::Gofer client transport for testing +DBD::Gofer::Transport::stream [] (3) - DBD::Gofer transport for stdio streaming +DBD::Proxy [] (3) - A proxy driver for the DBI +DBD::Sponge [] (3) - Create a DBI statement handle from Perl data +DBD::mysql [] (3) - MySQL driver for the Perl5 Database Interface (DBI) +DBE [] (3) - Double Buffer Extension +DBI::Const::GetInfo::ANSI [] (3) - ISO/IEC SQL/CLI Constants for GetInfo +DBI::Const::GetInfo::ODBC [] (3) - ODBC Constants for GetInfo +DBI::Const::GetInfoReturn [] (3) - Data and functions for describing GetInfo results +DBI::Const::GetInfoType [] (3) - Data describing GetInfo type codes +DBI::DBD [] (3) - Perl DBI Database Driver Writer's Guide +DBI::DBD::Metadata [] (3) - Generate the code and data for some DBI metadata methods +DBI::FAQ [] (3) - - The Frequently Asked Questions for the Perl5 Database Interface +DBI::Gofer::Execute [] (3) - Executes Gofer requests and returns Gofer responses +DBI::Gofer::Request [] (3) - Encapsulate a request from DBD::Gofer to DBI::Gofer::Execute +DBI::Gofer::Response [] (3) - Encapsulate a response from DBI::Gofer::Execute to DBD::Gofer +DBI::Gofer::Serializer::Base [] (3) - base class for Gofer serialization +DBI::Gofer::Serializer::DataDumper [] (3) - Gofer serialization using DataDumper +DBI::Gofer::Serializer::Storable [] (3) - Gofer serialization using Storable +DBI::Gofer::Transport::Base [] (3) - Base class for Gofer transports +DBI::Gofer::Transport::pipeone [] (3) - DBD::Gofer server-side transport for pipeone +DBI::Gofer::Transport::stream [] (3) - DBD::Gofer server-side transport for stream +DBI::Profile [] (3) - Performance profiling and benchmarking for the DBI +DBI::ProfileData [] (3) - manipulate DBI::ProfileDumper data dumps +DBI::ProfileDumper [] (3) - profile DBI usage and output data to a file +DBI::ProfileDumper::Apache [] (3) - capture DBI profiling data from Apache/mod_perl +DBI::ProfileSubs [] (3) - Subroutines for dynamic profile Path +DBI::ProxyServer [] (3) - a server for the DBD::Proxy driver +DBI::PurePerl [] (3) - - a DBI emulation using pure perl (no C/XS compilation required) +DBI::Roadmap [] (3) - Planned Enhancements for the DBI +DBI::SQL::Nano [] (3) - a very tiny SQL engine +DBI::Util::CacheMemory [] (3) - a very fast but very minimal subset of Cache::Memory +DBI::W32ODBC [] (3) - An experimental DBI emulation layer for Win32::ODBC +DBM_Filter [] (3) - - Filter DBM keys/values +DBM_Filter::compress [] (3) - filter for DBM_Filter +DBM_Filter::encode [] (3) - filter for DBM_Filter +DBM_Filter::int32 [] (3) - filter for DBM_Filter +DBM_Filter::null [] (3) - filter for DBM_Filter +DBM_Filter::utf8 [] (3) - filter for DBM_Filter +DB_File [] (3) - Perl5 access to Berkeley DB version 1.x +DB_File [] (3) - various DBM implementations +DES_FAILED [] (3) - fast DES encryption +DES_cbc_cksum [] (3) - DES encryption +DES_cfb64_encrypt [] (3) - DES encryption +DES_cfb_encrypt [] (3) - DES encryption +DES_crypt [] (3) - DES encryption +DES_ecb2_encrypt [] (3) - DES encryption +DES_ecb3_encrypt [] (3) - DES encryption +DES_ecb_encrypt [] (3) - DES encryption +DES_ede2_cbc_encrypt [] (3) - DES encryption +DES_ede2_cfb64_encrypt [] (3) - DES encryption +DES_ede2_ofb64_encrypt [] (3) - DES encryption +DES_ede3_cbc_encrypt [] (3) - DES encryption +DES_ede3_cbcm_encrypt [] (3) - DES encryption +DES_ede3_cfb64_encrypt [] (3) - DES encryption +DES_ede3_ofb64_encrypt [] (3) - DES encryption +DES_enc_read [] (3) - DES encryption +DES_enc_write [] (3) - DES encryption +DES_fcrypt [] (3) - DES encryption +DES_is_weak_key [] (3) - DES encryption +DES_key_sched [] (3) - DES encryption +DES_ncbc_encrypt [] (3) - DES encryption +DES_ofb64_encrypt [] (3) - DES encryption +DES_ofb_encrypt [] (3) - DES encryption +DES_pcbc_encrypt [] (3) - DES encryption +DES_quad_cksum [] (3) - DES encryption +DES_random_key [] (3) - DES encryption +DES_set_key [] (3) - DES encryption +DES_set_key_checked [] (3) - DES encryption +DES_set_key_unchecked [] (3) - DES encryption +DES_set_odd_parity [] (3) - DES encryption +DES_string_to_2keys [] (3) - DES encryption +DES_string_to_key [] (3) - DES encryption +DES_xcbc_encrypt [] (3) - DES encryption +DH_OpenSSL [] (3) - select DH method +DH_check [] (3) - generate and check Diffie-Hellman parameters +DH_compute_key [] (3) - perform Diffie-Hellman key exchange +DH_free [] (3) - allocate and free DH objects +DH_generate_key [] (3) - perform Diffie-Hellman key exchange +DH_generate_parameters [] (3) - generate and check Diffie-Hellman parameters +DH_get_default_method [] (3) - select DH method +DH_get_ex_data [] (3) - add application specific data to DH structures +DH_get_ex_new_index [] (3) - add application specific data to DH structures +DH_new [] (3) - allocate and free DH objects +DH_new_method [] (3) - select DH method +DH_set_default_method [] (3) - select DH method +DH_set_ex_data [] (3) - add application specific data to DH structures +DH_set_method [] (3) - select DH method +DH_size [] (3) - get Diffie-Hellman prime size +DHparams_print [] (3) - print cryptographic parameters +DHparams_print_fp [] (3) - print cryptographic parameters +DMX [] (3) - X Window System DMX (Distributed Multihead X) extension +DMXAddBackendInput [] (3) - attach a new input +DMXAddConsoleInput [] (3) - attach a new input +DMXAddInput [] (3) - attach a new input +DMXAddScreen [] (3) - attach a new back-end screen +DMXChangeDesktopAttributes [] (3) - change global bounding box +DMXChangeScreensAttributes [] (3) - change back-end screen attributes +DMXForceWindowCreation [] (3) - force immediate back-end window creation +DMXGetDesktopAttributes [] (3) - determine global bounding box +DMXGetInputAttributes [] (3) - determine input device attributes +DMXGetInputCount [] (3) - determine number of input devices +DMXGetScreenAttributes [] (3) - determine back-end screen attributes +DMXGetScreenCount [] (3) - determine number of back-end screens +DMXGetWindowAttributes [] (3) - determine back-end window attributes +DMXQueryExtension [] (3) - determine if DMX is available +DMXQueryVersion [] (3) - determine DMX extension version +DMXRemoveInput [] (3) - detach an input +DMXRemoveScreen [] (3) - detach a back-end screen +DMXSync [] (3) - flush protocol requests between Xdmx and back-end X servers +DPMSCapable [] (3) - returns the DPMS capability of the X server +DPMSDisable [] (3) - disables DPMS on the specified display +DPMSEnable [] (3) - enables DPMS on the specified display +DPMSForceLevel [] (3) - forces a DPMS capable display into the specified power level +DPMSGetTimeouts [] (3) - retrieves the timeout values used by the X server for DPMS timings +DPMSGetVersion [] (3) - returns the version of the DPMS extension implemented by the X server +DPMSInfo [] (3) - returns information about the current DPMS state +DPMSQueryExtension [] (3) - queries the X server to determine the availability of the DPMS Extension +DPMSSetTimeouts [] (3) - permits applications to set the timeout values used by the X server for DPMS timings +DSA_OpenSSL [] (3) - select DSA method +DSA_SIG_free [] (3) - allocate and free DSA signature objects +DSA_SIG_new [] (3) - allocate and free DSA signature objects +DSA_do_sign [] (3) - raw DSA signature operations +DSA_do_verify [] (3) - raw DSA signature operations +DSA_dup_DH [] (3) - create a DH structure out of DSA structure +DSA_free [] (3) - allocate and free DSA objects +DSA_generate_key [] (3) - generate DSA key pair +DSA_generate_parameters [] (3) - generate DSA parameters +DSA_get_default_method [] (3) - select DSA method +DSA_get_ex_data [] (3) - add application specific data to DSA structures +DSA_get_ex_new_index [] (3) - add application specific data to DSA structures +DSA_new [] (3) - allocate and free DSA objects +DSA_new_method [] (3) - select DSA method +DSA_print [] (3) - print cryptographic parameters +DSA_print_fp [] (3) - print cryptographic parameters +DSA_set_default_method [] (3) - select DSA method +DSA_set_ex_data [] (3) - add application specific data to DSA structures +DSA_set_method [] (3) - select DSA method +DSA_sign [] (3) - DSA signatures +DSA_sign_setup [] (3) - DSA signatures +DSA_size [] (3) - get DSA signature size +DSA_verify [] (3) - DSA signatures +DSAparams_print [] (3) - print cryptographic parameters +DSAparams_print_fp [] (3) - print cryptographic parameters +Data::Dumper [] (3) - stringified perl data structures, suitable for both printing and eval +DefaultColormap [] (3) - Display macros and functions +DefaultColormapOfScreen [] (3) - screen information functions and macros +DefaultDepth [] (3) - Display macros and functions +DefaultDepthOfScreen [] (3) - screen information functions and macros +DefaultGC [] (3) - Display macros and functions +DefaultGCOfScreen [] (3) - screen information functions and macros +DefaultRootWindow [] (3) - Display macros and functions +DefaultScreen [] (3) - Display macros and functions +DefaultScreenOfDisplay [] (3) - Display macros and functions +DefaultVisual [] (3) - Display macros and functions +DefaultVisualOfScreen [] (3) - screen information functions and macros +Devel::DProf [] (3) - a Perl code profiler +Devel::InnerPackage [] (3) - find all the inner packages of a package +Devel::PPPort [] (3) - Perl/Pollution/Portability +Devel::Peek [] (3) - A data debugging tool for the XS programmer +Devel::SelfStubber [] (3) - generate stubs for a SelfLoading module +Digest [] (3) - Modules that calculate message digests +Digest::MD5 [] (3) - Perl interface to the MD5 Algorithm +Digest::SHA [] (3) - Perl extension for SHA-1/224/256/384/512 +Digest::base [] (3) - Digest base class +Digest::file [] (3) - Calculate digests of files +DirHandle [] (3) - supply object methods for directory handles +Dislocate [] (1) - disconnect and reconnect processes +DisplayCells [] (3) - Display macros and functions +DisplayHeight [] (3) - image format functions and macros +DisplayHeightMM [] (3) - image format functions and macros +DisplayOfCCC [] (3) - Color Conversion Context macros +DisplayOfScreen [] (3) - screen information functions and macros +DisplayPlanes [] (3) - Display macros and functions +DisplayString [] (3) - Display macros and functions +DisplayWidth [] (3) - image format functions and macros +DisplayWidthMM [] (3) - image format functions and macros +DjVu [] (1) - DjVu and DjVuLibre +DoesBackingStore [] (3) - screen information functions and macros +DoesSaveUnders [] (3) - screen information functions and macros +Dumpvalue [] (3) - provides screen dump of Perl data +DynaLoader [] (3) - Dynamically load C libraries into Perl code +ERR_GET_FUNC [] (3) - get library, function and reason code +ERR_GET_LIB [] (3) - get library, function and reason code +ERR_GET_REASON [] (3) - get library, function and reason code +ERR_PACK [] (3) - load arbitrary error strings +ERR_add_error_data [] (3) - record an error +ERR_clear_error [] (3) - clear the error queue +ERR_error_string [] (3) - obtain human-readable error message +ERR_error_string_n [] (3) - obtain human-readable error message +ERR_free_strings [] (3) - load and free error strings +ERR_func_error_string [] (3) - obtain human-readable error message +ERR_get_error [] (3) - obtain error code and data +ERR_get_error_line [] (3) - obtain error code and data +ERR_get_error_line_data [] (3) - obtain error code and data +ERR_get_next_error_library [] (3) - load arbitrary error strings +ERR_lib_error_string [] (3) - obtain human-readable error message +ERR_load_UI_strings [] (3) - New User Interface +ERR_load_crypto_strings [] (3) - load and free error strings +ERR_load_strings [] (3) - load arbitrary error strings +ERR_peek_error [] (3) - obtain error code and data +ERR_peek_error_line [] (3) - obtain error code and data +ERR_peek_error_line_data [] (3) - obtain error code and data +ERR_peek_last_error [] (3) - obtain error code and data +ERR_peek_last_error_line [] (3) - obtain error code and data +ERR_peek_last_error_line_data [] (3) - obtain error code and data +ERR_pop_to_mark [] (3) - set marks and pop errors until mark +ERR_print_errors [] (3) - print error messages +ERR_print_errors_fp [] (3) - print error messages +ERR_put_error [] (3) - record an error +ERR_reason_error_string [] (3) - obtain human-readable error message +ERR_remove_state [] (3) - free a thread's error queue +ERR_set_mark [] (3) - set marks and pop errors until mark +EVP_BytesToKey [] (3) - password based encryption routine +EVP_CIPHER_CTX_block_size [] (3) - EVP cipher routines +EVP_CIPHER_CTX_cipher [] (3) - EVP cipher routines +EVP_CIPHER_CTX_cleanup [] (3) - EVP cipher routines +EVP_CIPHER_CTX_ctrl [] (3) - EVP cipher routines +EVP_CIPHER_CTX_flags [] (3) - EVP cipher routines +EVP_CIPHER_CTX_get_app_data [] (3) - EVP cipher routines +EVP_CIPHER_CTX_init [] (3) - EVP cipher routines +EVP_CIPHER_CTX_iv_length [] (3) - EVP cipher routines +EVP_CIPHER_CTX_key_length [] (3) - EVP cipher routines +EVP_CIPHER_CTX_mode [] (3) - EVP cipher routines +EVP_CIPHER_CTX_nid [] (3) - EVP cipher routines +EVP_CIPHER_CTX_set_app_data [] (3) - EVP cipher routines +EVP_CIPHER_CTX_set_key_length [] (3) - EVP cipher routines +EVP_CIPHER_CTX_set_padding [] (3) - EVP cipher routines +EVP_CIPHER_CTX_type [] (3) - EVP cipher routines +EVP_CIPHER_asn1_to_param [] (3) - EVP cipher routines +EVP_CIPHER_block_size [] (3) - EVP cipher routines +EVP_CIPHER_flags [] (3) - EVP cipher routines +EVP_CIPHER_iv_length [] (3) - EVP cipher routines +EVP_CIPHER_key_length [] (3) - EVP cipher routines +EVP_CIPHER_mode [] (3) - EVP cipher routines +EVP_CIPHER_nid [] (3) - EVP cipher routines +EVP_CIPHER_param_to_asn1 [] (3) - EVP cipher routines +EVP_CIPHER_type [] (3) - EVP cipher routines +EVP_CipherFinal [] (3) - EVP cipher routines +EVP_CipherFinal_ex [] (3) - EVP cipher routines +EVP_CipherInit [] (3) - EVP cipher routines +EVP_CipherInit_ex [] (3) - EVP cipher routines +EVP_CipherUpdate [] (3) - EVP cipher routines +EVP_DecryptFinal [] (3) - EVP cipher routines +EVP_DecryptFinal_ex [] (3) - EVP cipher routines +EVP_DecryptInit [] (3) - EVP cipher routines +EVP_DecryptInit_ex [] (3) - EVP cipher routines +EVP_DecryptUpdate [] (3) - EVP cipher routines +EVP_DigestFinal_ex [] (3) - EVP digest routines +EVP_DigestInit_ex [] (3) - EVP digest routines +EVP_DigestUpdate [] (3) - EVP digest routines +EVP_EncryptFinal [] (3) - EVP cipher routines +EVP_EncryptFinal_ex [] (3) - EVP cipher routines +EVP_EncryptInit [] (3) - EVP cipher routines +EVP_EncryptInit_ex [] (3) - EVP cipher routines +EVP_EncryptUpdate [] (3) - EVP cipher routines +EVP_MAX_MD_SIZE [] (3) - EVP digest routines +EVP_MD_CTX_block_size [] (3) - EVP digest routines +EVP_MD_CTX_cleanup [] (3) - EVP digest routines +EVP_MD_CTX_copy [] (3) - EVP digest routines +EVP_MD_CTX_copy_ex [] (3) - EVP digest routines +EVP_MD_CTX_create [] (3) - EVP digest routines +EVP_MD_CTX_destroy [] (3) - EVP digest routines +EVP_MD_CTX_init [] (3) - EVP digest routines +EVP_MD_CTX_md [] (3) - EVP digest routines +EVP_MD_CTX_size [] (3) - EVP digest routines +EVP_MD_CTX_type [] (3) - EVP digest routines +EVP_MD_block_size [] (3) - EVP digest routines +EVP_MD_pkey_type [] (3) - EVP digest routines +EVP_MD_size [] (3) - EVP digest routines +EVP_MD_type [] (3) - EVP digest routines +EVP_OpenFinal [] (3) - EVP envelope decryption +EVP_OpenInit [] (3) - EVP envelope decryption +EVP_OpenUpdate [] (3) - EVP envelope decryption +EVP_PKEY_assign_DH [] (3) - EVP_PKEY assignment functions +EVP_PKEY_assign_DSA [] (3) - EVP_PKEY assignment functions +EVP_PKEY_assign_EC_KEY [] (3) - EVP_PKEY assignment functions +EVP_PKEY_assign_RSA [] (3) - EVP_PKEY assignment functions +EVP_PKEY_free [] (3) - private key allocation functions +EVP_PKEY_get1_DH [] (3) - EVP_PKEY assignment functions +EVP_PKEY_get1_DSA [] (3) - EVP_PKEY assignment functions +EVP_PKEY_get1_EC_KEY [] (3) - EVP_PKEY assignment functions +EVP_PKEY_get1_RSA [] (3) - EVP_PKEY assignment functions +EVP_PKEY_new [] (3) - private key allocation functions +EVP_PKEY_set1_DH [] (3) - EVP_PKEY assignment functions +EVP_PKEY_set1_DSA [] (3) - EVP_PKEY assignment functions +EVP_PKEY_set1_EC_KEY [] (3) - EVP_PKEY assignment functions +EVP_PKEY_set1_RSA [] (3) - EVP_PKEY assignment functions +EVP_PKEY_type [] (3) - EVP_PKEY assignment functions +EVP_SealFinal [] (3) - EVP envelope encryption +EVP_SealInit [] (3) - EVP envelope encryption +EVP_SealUpdate [] (3) - EVP envelope encryption +EVP_SignFinal [] (3) - EVP signing functions +EVP_SignInit [] (3) - EVP signing functions +EVP_SignUpdate [] (3) - EVP signing functions +EVP_VerifyFinal [] (3) - EVP signature verification functions +EVP_VerifyInit [] (3) - EVP signature verification functions +EVP_VerifyUpdate [] (3) - EVP signature verification functions +EVP_dss [] (3) - EVP digest routines +EVP_dss1 [] (3) - EVP digest routines +EVP_get_cipherbyname [] (3) - EVP cipher routines +EVP_get_cipherbynid [] (3) - EVP cipher routines +EVP_get_cipherbyobj [] (3) - EVP cipher routines +EVP_get_digestbyname [] (3) - EVP digest routines +EVP_get_digestbynid [] (3) - EVP digest routines +EVP_get_digestbyobj [] (3) - EVP digest routines +EVP_md2 [] (3) - EVP digest routines +EVP_md5 [] (3) - EVP digest routines +EVP_md_null [] (3) - EVP digest routines +EVP_mdc2 [] (3) - EVP digest routines +EVP_ripemd160 [] (3) - EVP digest routines +EVP_sha [] (3) - EVP digest routines +EVP_sha1 [] (3) - EVP digest routines +Enchant [] (1) - a spellchecker +Encode [] (3) - character encodings +Encode::Alias [] (3) - alias definitions to encodings +Encode::Byte [] (3) - Single Byte Encodings +Encode::CJKConstants.pm [] (3) - - Internally used by Encode::??::ISO_2022_* +Encode::CN [] (3) - China-based Chinese Encodings +Encode::CN::HZ [] (3) - - internally used by Encode::CN +Encode::Config [] (3) - - internally used by Encode +Encode::EBCDIC [] (3) - EBCDIC Encodings +Encode::Encoder [] (3) - - Object Oriented Encoder +Encode::Encoding [] (3) - Encode Implementation Base Class +Encode::GSM0338 [] (3) - - ESTI GSM 03.38 Encoding +Encode::Guess [] (3) - - Guesses encoding from data +Encode::JP [] (3) - Japanese Encodings +Encode::JP::H2Z [] (3) - - internally used by Encode::JP::2022_JP* +Encode::JP::JIS7 [] (3) - - internally used by Encode::JP +Encode::KR [] (3) - Korean Encodings +Encode::KR::2022_KR [] (3) - - internally used by Encode::KR +Encode::MIME::Header [] (3) - - MIME 'B' and 'Q' header encoding +Encode::MIME::NAME [] (3) - - internally used by Encode +Encode::PerlIO [] (3) - - a detailed document on Encode and PerlIO +Encode::Supported [] (3) - - Encodings supported by Encode +Encode::Symbol [] (3) - Symbol Encodings +Encode::TW [] (3) - Taiwan-based Chinese Encodings +Encode::Unicode [] (3) - - Various Unicode Transformation Formats +Encode::Unicode::UTF7 [] (3) - - UTF-7 encoding +English [] (3) - use nice English (or awk) names for ugly punctuation variables +Env [] (3) - perl module that imports environment variables as scalars or arrays +Errno [] (3) - System errno constants +Error [] (3) - Error/exception handling in an OO-ish way +EventMaskOfScreen [] (3) - screen information functions and macros +Exporter [] (3) - Implements default import method for modules +Exporter::Heavy [] (3) - Exporter guts +ExtUtils::CBuilder [] (3) - Compile and link C code for Perl modules +ExtUtils::CBuilder::Platform::Windows [] (3) - Builder class for Windows platforms +ExtUtils::Command [] (3) - utilities to replace common UNIX commands in Makefiles etc +ExtUtils::Command::MM [] (3) - Commands for the MM's to use in Makefiles +ExtUtils::Constant [] (3) - generate XS code to import C header constants +ExtUtils::Constant::Base [] (3) - base class for ExtUtils::Constant objects +ExtUtils::Constant::Utils [] (3) - helper functions for ExtUtils::Constant +ExtUtils::Embed [] (3) - Utilities for embedding Perl in C/C++ applications +ExtUtils::Install [] (3) - install files from here to there +ExtUtils::Installed [] (3) - Inventory management of installed modules +ExtUtils::Liblist [] (3) - determine libraries to use and how to use them +ExtUtils::MM [] (3) - OS adjusted ExtUtils::MakeMaker subclass +ExtUtils::MM_AIX [] (3) - AIX specific subclass of ExtUtils::MM_Unix +ExtUtils::MM_Any [] (3) - Platform-agnostic MM methods +ExtUtils::MM_BeOS [] (3) - methods to override UN*X behaviour in ExtUtils::MakeMaker +ExtUtils::MM_Cygwin [] (3) - methods to override UN*X behaviour in ExtUtils::MakeMaker +ExtUtils::MM_DOS [] (3) - DOS specific subclass of ExtUtils::MM_Unix +ExtUtils::MM_MacOS [] (3) - once produced Makefiles for MacOS Classic +ExtUtils::MM_NW5 [] (3) - methods to override UN*X behaviour in ExtUtils::MakeMaker +ExtUtils::MM_OS2 [] (3) - methods to override UN*X behaviour in ExtUtils::MakeMaker +ExtUtils::MM_QNX [] (3) - QNX specific subclass of ExtUtils::MM_Unix +ExtUtils::MM_UWIN [] (3) - U/WIN specific subclass of ExtUtils::MM_Unix +ExtUtils::MM_Unix [] (3) - methods used by ExtUtils::MakeMaker +ExtUtils::MM_VMS [] (3) - methods to override UN*X behaviour in ExtUtils::MakeMaker +ExtUtils::MM_VOS [] (3) - VOS specific subclass of ExtUtils::MM_Unix +ExtUtils::MM_Win32 [] (3) - methods to override UN*X behaviour in ExtUtils::MakeMaker +ExtUtils::MM_Win95 [] (3) - method to customize MakeMaker for Win9X +ExtUtils::MY [] (3) - ExtUtils::MakeMaker subclass for customization +ExtUtils::MakeMaker [] (3) - Create a module Makefile +ExtUtils::MakeMaker::Config [] (3) - Wrapper around Config.pm +ExtUtils::MakeMaker::FAQ [] (3) - Frequently Asked Questions About MakeMaker +ExtUtils::MakeMaker::Tutorial [] (3) - Writing a module with MakeMaker +ExtUtils::MakeMaker::bytes [] (3) - Version-agnostic bytes.pm +ExtUtils::MakeMaker::vmsish [] (3) - Platform-agnostic vmsish.pm +ExtUtils::Manifest [] (3) - utilities to write and check a MANIFEST file +ExtUtils::Miniperl [] (3) - write the C code for perlmain.c +ExtUtils::Mkbootstrap [] (3) - make a bootstrap file for use by DynaLoader +ExtUtils::Mksymlists [] (3) - write linker options files for dynamic extension +ExtUtils::Packlist [] (3) - manage .packlist files +ExtUtils::ParseXS [] (3) - converts Perl XS code into C code +ExtUtils::testlib [] (3) - add blib/* directories to @INC +FD_CLR [] (2) - synchronous I/O multiplexing +FD_ISSET [] (2) - synchronous I/O multiplexing +FD_SET [] (2) - synchronous I/O multiplexing +FD_ZERO [] (2) - synchronous I/O multiplexing +Fatal [] (3) - replace functions with equivalents which succeed or die +FcAtomicCreate [] (3) - create an FcAtomic object +FcAtomicDeleteNew [] (3) - delete new file +FcAtomicDestroy [] (3) - destroy an FcAtomic object +FcAtomicLock [] (3) - lock a file +FcAtomicNewFile [] (3) - return new temporary file name +FcAtomicOrigFile [] (3) - return original file name +FcAtomicReplaceOrig [] (3) - replace original with new +FcAtomicUnlock [] (3) - unlock a file +FcBlanksAdd [] (3) - Add a character to an FcBlanks +FcBlanksCreate [] (3) - Create an FcBlanks +FcBlanksDestroy [] (3) - Destroy and FcBlanks +FcBlanksIsMember [] (3) - Query membership in an FcBlanks +FcCacheCopySet [] (3) - Returns a copy of the fontset from cache +FcCacheDir [] (3) - Return directory of cache +FcCacheNumFont [] (3) - Returns the number of fonts in cache +FcCacheNumSubdir [] (3) - Return the number of subdirectories in cache +FcCacheSubdir [] (3) - Return the i'th subdirectory +FcCharSetAddChar [] (3) - Add a character to a charset +FcCharSetCopy [] (3) - Copy a charset +FcCharSetCount [] (3) - Count entries in a charset +FcCharSetCoverage [] (3) - DEPRECATED return coverage for a Unicode page +FcCharSetCreate [] (3) - Create an empty character set +FcCharSetDestroy [] (3) - Destroy a character set +FcCharSetEqual [] (3) - Compare two charsets +FcCharSetFirstPage [] (3) - Start enumerating charset contents +FcCharSetHasChar [] (3) - Check a charset for a char +FcCharSetIntersect [] (3) - Intersect charsets +FcCharSetIntersectCount [] (3) - Intersect and count charsets +FcCharSetIsSubset [] (3) - Test for charset inclusion +FcCharSetNew [] (3) - DEPRECATED alias for FcCharSetCreate +FcCharSetNextPage [] (3) - Continue enumerating charset contents +FcCharSetSubtract [] (3) - Subtract charsets +FcCharSetSubtractCount [] (3) - Subtract and count charsets +FcCharSetUnion [] (3) - Add charsets +FcConfigAppFontAddDir [] (3) - Add fonts from directory to font database +FcConfigAppFontAddFile [] (3) - Add font file to font database +FcConfigAppFontClear [] (3) - Remove all app fonts from font database +FcConfigBuildFonts [] (3) - Build font database +FcConfigCreate [] (3) - Create a configuration +FcConfigDestroy [] (3) - Destroy a configuration +FcConfigEnableHome [] (3) - controls use of the home directory +FcConfigFilename [] (3) - Find a config file +FcConfigGetBlanks [] (3) - Get config blanks +FcConfigGetCache [] (3) - DEPRECATED used to return per-user cache filename +FcConfigGetCacheDirs [] (3) - return the list of directories searched for cache files +FcConfigGetConfigDirs [] (3) - Get config directories +FcConfigGetConfigFiles [] (3) - Get config files +FcConfigGetCurrent [] (3) - Return current configuration +FcConfigGetFontDirs [] (3) - Get font directories +FcConfigGetFonts [] (3) - Get config font set +FcConfigGetRescanInterval [] (3) - Get config rescan interval +FcConfigHome [] (3) - return the current home directory +FcConfigParseAndLoad [] (3) - load a configuration file +FcConfigSetCurrent [] (3) - Set configuration as default +FcConfigSetRescanInterval [] (3) - Set config rescan interval +FcConfigSubstitute [] (3) - Execute substitutions +FcConfigSubstituteWithPat [] (3) - Execute substitutions +FcConfigUptoDate [] (3) - Check timestamps on config files +FcDefaultSubstitute [] (3) - Perform default substitutions in a pattern +FcDirCacheLoad [] (3) - load a directory cache +FcDirCacheLoadFile [] (3) - load a cache file +FcDirCacheRead [] (3) - read or construct a directory cache +FcDirCacheUnlink [] (3) - Remove all caches related to dir +FcDirCacheUnload [] (3) - unload a cache file +FcDirCacheValid [] (3) - check directory cache +FcDirSave [] (3) - DEPRECATED: formerly used to save a directory cache +FcDirScan [] (3) - DEPRECATED: formerly used to scan a font directory +FcFileIsDir [] (3) - check whether a file is a directory +FcFileScan [] (3) - scan a font file +FcFini [] (3) - finalize fonconfig library +FcFontList [] (3) - List fonts +FcFontMatch [] (3) - Return best font +FcFontRenderPrepare [] (3) - Prepare pattern for loading font file +FcFontSetAdd [] (3) - Add to a font set +FcFontSetCreate [] (3) - Create a font set +FcFontSetDestroy [] (3) - Destroy a font set +FcFontSetList [] (3) - List fonts from a set of font sets +FcFontSetMatch [] (3) - Return the best font from a set of font sets +FcFontSetPrint [] (3) - Print a set of patterns to stdout +FcFontSetSort [] (3) - Add to a font set +FcFontSetSortDestroy [] (3) - DEPRECATED destroy a font set +FcFontSort [] (3) - Return list of matching fonts +FcFreeTypeCharIndex [] (3) - map Unicode to glyph id +FcFreeTypeCharSet [] (3) - compute unicode coverage +FcFreeTypeCharSetAndSpacing [] (3) - compute unicode coverage and spacing type +FcFreeTypeQuery [] (3) - compute pattern from font file (and index) +FcFreeTypeQueryFace [] (3) - compute pattern from FT_Face +FcGetLangs [] (3) - Get list of languages +FcGetVersion [] (3) - library version number +FcInit [] (3) - initialize fontconfig library +FcInitBringUptoDate [] (3) - reload configuration files if needed +FcInitLoadConfig [] (3) - load configuration +FcInitLoadConfigAndFonts [] (3) - load configuration and font data +FcInitReinitialize [] (3) - re-initialize library +FcIsLower [] (3) - check for lower case ASCII character +FcIsUpper [] (3) - check for upper case ASCII character +FcLangGetCharSet [] (3) - Get character map for a language +FcLangSetAdd [] (3) - add a language to a langset +FcLangSetCompare [] (3) - compare language sets +FcLangSetContains [] (3) - check langset subset relation +FcLangSetCopy [] (3) - copy a langset object +FcLangSetCreate [] (3) - create a langset object +FcLangSetDestroy [] (3) - destroy a langset object +FcLangSetEqual [] (3) - test for matching langsets +FcLangSetHasLang [] (3) - test langset for language support +FcLangSetHash [] (3) - return a hash value for a langset +FcMatrixCopy [] (3) - Copy a matrix +FcMatrixEqual [] (3) - Compare two matrices +FcMatrixInit [] (3) - initialize an FcMatrix structure +FcMatrixMultiply [] (3) - Multiply matrices +FcMatrixRotate [] (3) - Rotate a matrix +FcMatrixScale [] (3) - Scale a matrix +FcMatrixShear [] (3) - Shear a matrix +FcNameConstant [] (3) - Get the value for a symbolic constant +FcNameGetConstant [] (3) - Lookup symbolic constant +FcNameGetObjectType [] (3) - Lookup an object type +FcNameParse [] (3) - Parse a pattern string +FcNameRegisterConstants [] (3) - Register symbolic constants +FcNameRegisterObjectTypes [] (3) - Register object types +FcNameUnparse [] (3) - Convert a pattern back into a string that can be parsed +FcNameUnregisterConstants [] (3) - Unregister symbolic constants +FcNameUnregisterObjectTypes [] (3) - Unregister object types +FcObjectSetAdd [] (3) - Add to an object set +FcObjectSetBuild [] (3) - Build object set from args +FcObjectSetCreate [] (3) - Create an object set +FcObjectSetDestroy [] (3) - Destroy an object set +FcObjectSetVaBuild [] (3) - Build object set from args +FcObjectSetVapBuild [] (3) - Build object set from args +FcPatternAdd [] (3) - Add a value to a pattern +FcPatternAddBool [] (3) - Add a typed value to a pattern +FcPatternAddCharSet [] (3) - Add a typed value to a pattern +FcPatternAddDouble [] (3) - Add a typed value to a pattern +FcPatternAddFTFace [] (3) - Add a typed value to a pattern +FcPatternAddInteger [] (3) - Add a typed value to a pattern +FcPatternAddLangSet [] (3) - Add a typed value to a pattern +FcPatternAddMatrix [] (3) - Add a typed value to a pattern +FcPatternAddString [] (3) - Add a typed value to a pattern +FcPatternAddWeak [] (3) - Add a value to a pattern with weak binding +FcPatternBuild [] (3) - Create patterns from arguments +FcPatternCreate [] (3) - Create a pattern +FcPatternDel [] (3) - Delete a property from a pattern +FcPatternDestroy [] (3) - Destroy a pattern +FcPatternDuplicate [] (3) - Copy a pattern +FcPatternEqual [] (3) - Compare patterns +FcPatternEqualSubset [] (3) - Compare portions of patterns +FcPatternGet [] (3) - Return a value from a pattern +FcPatternGetBool [] (3) - Return a typed value from a pattern +FcPatternGetCharSet [] (3) - Return a typed value from a pattern +FcPatternGetDouble [] (3) - Return a typed value from a pattern +FcPatternGetFTFace [] (3) - Return a typed value from a pattern +FcPatternGetInteger [] (3) - Return a typed value from a pattern +FcPatternGetLangSet [] (3) - Return a typed value from a pattern +FcPatternGetMatrix [] (3) - Return a typed value from a pattern +FcPatternGetString [] (3) - Return a typed value from a pattern +FcPatternHash [] (3) - Compute a pattern hash value +FcPatternPrint [] (3) - Print a pattern for debugging +FcPatternReference [] (3) - Increment pattern reference count +FcPatternRemove [] (3) - Remove one object of the specified type from the pattern +FcPatternVaBuild [] (3) - Create patterns from arguments +FcPatternVapBuild [] (3) - Create patterns from arguments +FcStrBasename [] (3) - last component of filename +FcStrCmp [] (3) - compare UTF-8 strings +FcStrCmpIgnoreCase [] (3) - compare UTF-8 strings ignoring case +FcStrCopy [] (3) - duplicate a string +FcStrCopyFilename [] (3) - create a complete path from a filename +FcStrDirname [] (3) - directory part of filename +FcStrDowncase [] (3) - create a lower case translation of a string +FcStrFree [] (3) - free a string +FcStrListCreate [] (3) - create a string iterator +FcStrListDone [] (3) - destroy a string iterator +FcStrListNext [] (3) - get next string in iteration +FcStrPlus [] (3) - concatenate two strings +FcStrSetAdd [] (3) - add to a string set +FcStrSetAddFilename [] (3) - add a filename to a string set +FcStrSetCreate [] (3) - create a string set +FcStrSetDel [] (3) - delete from a string set +FcStrSetDestroy [] (3) - destroy a string set +FcStrSetEqual [] (3) - check sets for equality +FcStrSetMember [] (3) - check set for membership +FcStrStr [] (3) - locate UTF-8 substring +FcStrStrIgnoreCase [] (3) - locate UTF-8 substring ignoring ASCII case +FcToLower [] (3) - convert upper case ASCII to lower case +FcUcs4ToUtf8 [] (3) - convert UCS4 to UTF-8 +FcUtf16Len [] (3) - count UTF-16 encoded chars +FcUtf16ToUcs4 [] (3) - convert UTF-16 to UCS4 +FcUtf8Len [] (3) - count UTF-8 encoded chars +FcUtf8ToUcs4 [] (3) - convert UTF-8 to UCS4 +FcValueDestroy [] (3) - Free a value +FcValueEqual [] (3) - Test two values for equality +FcValuePrint [] (3) - Print a value to stdout +FcValueSave [] (3) - Copy a value +Fcntl [] (3) - load the C Fcntl.h defines +File::Basename [] (3) - Parse file paths into directory, filename and suffix +File::CheckTree [] (3) - run many filetest checks on a tree +File::Compare [] (3) - Compare files or filehandles +File::Copy [] (3) - Copy files or filehandles +File::DosGlob [] (3) - DOS like globbing and then some +File::Fetch [] (3) - A generic file fetching mechanism +File::Find [] (3) - Traverse a directory tree +File::Glob [] (3) - Perl extension for BSD glob routine +File::GlobMapper [] (3) - Extend File Glob to Allow Input and Output Files +File::Path [] (3) - Create or remove directory trees +File::Spec [] (3) - portably perform operations on file names +File::Spec::Cygwin [] (3) - methods for Cygwin file specs +File::Spec::Epoc [] (3) - methods for Epoc file specs +File::Spec::Functions [] (3) - portably perform operations on file names +File::Spec::Mac [] (3) - File::Spec for Mac OS (Classic) +File::Spec::OS2 [] (3) - methods for OS/2 file specs +File::Spec::Unix [] (3) - File::Spec for Unix, base for other File::Spec modules +File::Spec::VMS [] (3) - methods for VMS file specs +File::Spec::Win32 [] (3) - methods for Win32 file specs +File::Temp [] (3) - return name and handle of a temporary file safely +File::stat [] (3) - by-name interface to Perl's built-in stat() functions +FileCache [] (3) - keep more files open than the system permits +FileHandle [] (3) - supply object methods for filehandles +Filter::Simple [] (3) - Simplified source filtering +Filter::Util::Call [] (3) - Perl Source Filter Utility Module +Finch [] (1) - A Pimpin' Penguin console frontend to libpurple. Instant Messaging client +FindBin [] (3) - Locate directory of original perl script +FvwmAnimate [] (1) - the Fvwm Animate module +FvwmAuto [] (1) - the FVWM auto-raise module +FvwmBacker [] (1) - the FVWM background changer module +FvwmBanner [] (1) - the FVWM Banner +FvwmButtons [] (1) - the FVWM buttonbox module +FvwmCommand [] (1) - FVWM command external interface +FvwmConsole [] (1) - an FVWM command input interface +FvwmConsoleC.pl [] (1) - Command editor for FVWM command input interface +FvwmCpp [] (1) - the FVWM Cpp pre-processor +FvwmDebug [] (1) - the FVWM module debugger +FvwmDragWell [] (1) - A XDND drag well +FvwmEvent [] (1) - the FVWM Event module +FvwmForm [] (1) - input form module for Fvwm +FvwmGtk [] (1) - the Fvwm GTK module +FvwmIconBox [] (1) - the FVWM icon box module +FvwmIconMan [] (1) - an Fvwm Icon Manager +FvwmIdent [] (1) - the FVWM identify-window module +FvwmM4 [] (1) - the FVWM M4 pre-processor +FvwmPager [] (1) - the FVWM Pager module +FvwmRearrange [] (1) - rearrange FVWM windows +FvwmSave [] (1) - the FVWM desktop-layout saving module +FvwmSaveDesk [] (1) - another FVWM desktop-layout saving module +FvwmScript [] (1) - module to build graphic user interface +FvwmScroll [] (1) - the FVWM scroll-bar module +FvwmTaskBar [] (1) - the FVWM taskbar module +FvwmTheme [] (1) - an FVWM module for managing the appearance of FVWM and its modules +FvwmWharf [] (1) - the AfterStep application dock module ported to Fvwm +FvwmWinList [] (1) - the FVWM window list module +GDBM [] (3) - The GNU database manager. Includes dbm and ndbm compatability. (Version .) +GDBM_File [] (3) - Perl5 access to the gdbm library +GDBM_File [] (3) - various DBM implementations +GNU Parted [] (8) - a partition manipulation program +GQview [] (1) - GTK based multiformat image viewer +Getopt::Long [] (3) - Extended processing of command line options +Git [] (3) - Perl interface to the Git version control system +GnuPG [] (7) - The GNU Privacy Guard suite of programs +HMAC [] (3) - HMAC message authentication code +HMAC_Final [] (3) - HMAC message authentication code +HMAC_Init [] (3) - HMAC message authentication code +HMAC_Update [] (3) - HMAC message authentication code +HMAC_cleanup [] (3) - HMAC message authentication code +HTB [] (8) - Hierarchy Token Bucket +HUGE_VAL [] (3) - floating-point constants +HUGE_VALF [] (3) - floating-point constants +HUGE_VALL [] (3) - floating-point constants +Hash::Util [] (3) - A selection of general-utility hash subroutines +Hash::Util::FieldHash [] (3) - Support for Inside-Out Classes +HeightMMOfScreen [] (3) - screen information functions and macros +HeightOfScreen [] (3) - screen information functions and macros +I18N::Collate [] (3) - compare 8-bit scalar data according to the current locale +I18N::LangTags [] (3) - functions for dealing with RFC3066-style language tags +I18N::LangTags::Detect [] (3) - detect the user's language preferences +I18N::LangTags::List [] (3) - - tags and names for human languages +I18N::Langinfo [] (3) - query locale information +IMAPd [] (8) - Internet Message Access Protocol server +INFINITY [] (3) - floating-point constants +INSTALL [] (3) - How to install and configure DBD::mysql +IO [] (3) - load various IO modules +IO::Compress::Base [] (3) - Base Class for IO::Compress modules +IO::Compress::Deflate [] (3) - Write RFC 1950 files/buffers +IO::Compress::Gzip [] (3) - Write RFC 1952 files/buffers +IO::Compress::RawDeflate [] (3) - Write RFC 1951 files/buffers +IO::Compress::Zip [] (3) - Write zip files/buffers +IO::Dir [] (3) - supply object methods for directory handles +IO::File [] (3) - supply object methods for filehandles +IO::Handle [] (3) - supply object methods for I/O handles +IO::Pipe [] (3) - supply object methods for pipes +IO::Poll [] (3) - Object interface to system poll call +IO::Seekable [] (3) - supply seek based methods for I/O objects +IO::Select [] (3) - OO interface to the select system call +IO::Socket [] (3) - Object interface to socket communications +IO::Socket::INET [] (3) - Object interface for AF_INET domain sockets +IO::Socket::UNIX [] (3) - Object interface for AF_UNIX domain sockets +IO::Uncompress::AnyInflate [] (3) - Uncompress zlib-based (zip, gzip) file/buffer +IO::Uncompress::AnyUncompress [] (3) - Uncompress gzip, zip, bzip2 or lzop file/buffer +IO::Uncompress::Base [] (3) - Base Class for IO::Uncompress modules +IO::Uncompress::Gunzip [] (3) - Read RFC 1952 files/buffers +IO::Uncompress::Inflate [] (3) - Read RFC 1950 files/buffers +IO::Uncompress::RawInflate [] (3) - Read RFC 1951 files/buffers +IO::Uncompress::Unzip [] (3) - Read zip files/buffers +IO::Zlib [] (3) - IO:: style interface to Compress::Zlib +IPC::Cmd [] (3) - finding and running system commands made easy +IPC::Msg [] (3) - SysV Msg IPC object class +IPC::Open2 [] (3) - open a process for both reading and writing +IPC::Open3 [] (3) - open a process for reading, writing, and error handling +IPC::Semaphore [] (3) - SysV Semaphore IPC object class +IPC::SysV [] (3) - SysV IPC constants +IPOPd [] (8) - Post Office Protocol server +IPPROTO_ICMP [] (7) - Linux IPv4 ICMP kernel module +Image::Magick [] (3) - Perl extension for calling ImageMagick's libMagick methods +ImageByteOrder [] (3) - image format functions and macros +ImageMagick [] (1) - is a free software suite for the creation, modification and display of bitmap images +Irssi [] (1) - a modular IRC client for UNIX +IsCursorKey [] (3) - keysym classification macros +IsFunctionKey [] (3) - keysym classification macros +IsKeypadKey [] (3) - keysym classification macros +IsMiscFunctionKey [] (3) - keysym classification macros +IsModifierKey [] (3) - keysym classification macros +IsPFKey [] (3) - keysym classification macros +IsPrivateKeypadKey [] (3) - keysym classification macros +Jed [] (1) - programmers editor +Juggler3D [] (6) - a 3D juggling simulation +Kaleidescope [] (6) - rotating line segments +LHa [] (1) - LZH un-archiver +LIST_ENTRY [] (3) - implementations of lists, tail queues, and circular queues +LIST_HEAD [] (3) - implementations of lists, tail queues, and circular queues +LIST_INIT [] (3) - implementations of lists, tail queues, and circular queues +LIST_INSERT_AFTER [] (3) - implementations of lists, tail queues, and circular queues +LIST_INSERT_HEAD [] (3) - implementations of lists, tail queues, and circular queues +LIST_REMOVE [] (3) - implementations of lists, tail queues, and circular queues +LastKnownRequestProcessed [] (3) - Display macros and functions +List::Util [] (3) - A selection of general-utility list subroutines +Locale::Constants [] (3) - constants for Locale codes +Locale::Country [] (3) - ISO codes for country identification (ISO 3166) +Locale::Currency [] (3) - ISO three letter codes for currency identification (ISO 4217) +Locale::Language [] (3) - ISO two letter codes for language identification (ISO 639) +Locale::Maketext [] (3) - framework for localization +Locale::Maketext::Simple [] (3) - Simple interface to Locale::Maketext::Lexicon +Locale::Maketext::TPJ13 [] (3) - - article about software localization +Locale::Script [] (3) - ISO codes for script identification (ISO 15924) +Log::Message [] (3) - A generic message storing mechanism; +Log::Message::Config [] (3) - Configuration options for Log::Message +Log::Message::Handlers [] (3) - Message handlers for Log::Message +Log::Message::Item [] (3) - Message objects for Log::Message +M17NObjectHead [] (3) - The first member of a managed object +MAKEDEV [] (8) - create devices +MB_CUR_MAX [] (3) - maximum length of a multibyte character in the current locale +MB_LEN_MAX [] (3) - maximum multibyte length of a character across all locales +MD2 [] (3) - MD2, MD4, and MD5 hash functions +MD2_Final [] (3) - MD2, MD4, and MD5 hash functions +MD2_Init [] (3) - MD2, MD4, and MD5 hash functions +MD2_Update [] (3) - MD2, MD4, and MD5 hash functions +MD4 [] (3) - MD2, MD4, and MD5 hash functions +MD4_Final [] (3) - MD2, MD4, and MD5 hash functions +MD4_Init [] (3) - MD2, MD4, and MD5 hash functions +MD4_Update [] (3) - MD2, MD4, and MD5 hash functions +MD5 [] (3) - MD2, MD4, and MD5 hash functions +MD5_Final [] (3) - MD2, MD4, and MD5 hash functions +MD5_Init [] (3) - MD2, MD4, and MD5 hash functions +MD5_Update [] (3) - MD2, MD4, and MD5 hash functions +MDC2 [] (3) - MDC2 hash function +MDC2_Final [] (3) - MDC2 hash function +MDC2_Init [] (3) - MDC2 hash function +MDC2_Update [] (3) - MDC2 hash function +MDrawMetric [] (3) - Type of metric for glyphs and texts +MIME [] (1) - Multipurpose Internet Mail Extensions +MIME::Base64 [] (3) - Encoding and decoding of base64 strings +MIME::QuotedPrint [] (3) - Encoding and decoding of quoted-printable strings +MMDF [] (5) - Multi-channel Memorandum Distribution Facility mailbox format +Magick [] (1) - config - get information about the installed version of ImageMagick +Magick++ [] (1) - config - get information about the installed version of Magick++ +MagickCore [] (1) - config - get information about the installed version of ImageMagick +MagickWand [] (1) - config - get information about the installed version of the Magick Wand +Math::BigFloat [] (3) - Arbitrary size floating point math package +Math::BigInt [] (3) - Arbitrary size integer/float math package +Math::BigInt::Calc [] (3) - Pure Perl module to support Math::BigInt +Math::BigInt::CalcEmu [] (3) - Emulate low-level math with BigInt code +Math::BigInt::FastCalc [] (3) - Math::BigInt::Calc with some XS for more speed +Math::BigRat [] (3) - Arbitrary big rational numbers +Math::Complex [] (3) - complex numbers and associated mathematical functions +Math::Trig [] (3) - trigonometric functions +MaxCmapsOfScreen [] (3) - screen information functions and macros +Memoize [] (3) - Make functions faster by trading space for time +Memoize::AnyDBM_File [] (3) - glue to provide EXISTS for AnyDBM_File for Storable use +Memoize::Expire [] (3) - Plug-in module for automatic expiration of memoized values +Memoize::ExpireFile [] (3) - test for Memoize expiration semantics +Memoize::ExpireTest [] (3) - test for Memoize expiration semantics +Memoize::NDBM_File [] (3) - glue to provide EXISTS for NDBM_File for Storable use +Memoize::SDBM_File [] (3) - glue to provide EXISTS for SDBM_File for Storable use +Memoize::Storable [] (3) - store Memoized data in Storable database +MinCmapsOfScreen [] (3) - screen information functions and macros +Module::Build [] (3) - Build and install Perl modules +Module::Build::API [] (3) - API Reference for Module Authors +Module::Build::Authoring [] (3) - Authoring Module::Build modules +Module::Build::Base [] (3) - Default methods for Module::Build +Module::Build::Compat [] (3) - Compatibility with ExtUtils::MakeMaker +Module::Build::ConfigData [] (3) - Configuration for Module::Build +Module::Build::Cookbook [] (3) - Examples of Module::Build Usage +Module::Build::PPMMaker [] (3) - Perl Package Manager file creation +Module::Build::Platform::Amiga [] (3) - Builder class for Amiga platforms +Module::Build::Platform::Default [] (3) - Stub class for unknown platforms +Module::Build::Platform::EBCDIC [] (3) - Builder class for EBCDIC platforms +Module::Build::Platform::MPEiX [] (3) - Builder class for MPEiX platforms +Module::Build::Platform::MacOS [] (3) - Builder class for MacOS platforms +Module::Build::Platform::RiscOS [] (3) - Builder class for RiscOS platforms +Module::Build::Platform::Unix [] (3) - Builder class for Unix platforms +Module::Build::Platform::VMS [] (3) - Builder class for VMS platforms +Module::Build::Platform::VOS [] (3) - Builder class for VOS platforms +Module::Build::Platform::Windows [] (3) - Builder class for Windows platforms +Module::Build::Platform::aix [] (3) - Builder class for AIX platform +Module::Build::Platform::cygwin [] (3) - Builder class for Cygwin platform +Module::Build::Platform::darwin [] (3) - Builder class for Mac OS X platform +Module::Build::Platform::os2 [] (3) - Builder class for OS/2 platform +Module::Build::YAML [] (3) - Provides just enough YAML support so that Module::Build works even if YAML.pm is not installed +Module::CoreList [] (3) - what modules shipped with versions of perl +Module::Load [] (3) - runtime require of both modules and files +Module::Load::Conditional [] (3) - Looking up module information / loading at runtime +Module::Loaded [] (3) - mark modules as loaded or unloaded +Module::Pluggable [] (3) - automatically give your module the ability to have plugins +Module::Pluggable::Object [] (3) - automatically give your module the ability to have plugins +ModuleInfo [] (3) - Gather package and POD information from a perl module files +NAN [] (3) - floating-point constants +NDBM_File [] (3) - various DBM implementations +NETLINK_ROUTE [] (7) - Linux IPv4 routing socket +NEXT.pm [] (3) - Provide a pseudo-class NEXT (et al) that allows method redispatch +Net [] (3) - SNMP Agent handler and extensibility API - The basic theory goes something like this: In the past, with the original mib module api (which derived from the original CMU SNMP code) the underlying mib modules were passed very little information (only the truly most basic information about a request) +Net::Cmd [] (3) - Network Command class (as used by FTP, SMTP etc) +Net::Config [] (3) - Local configuration data for libnet +Net::Domain [] (3) - Attempt to evaluate the current host's internet name and domain +Net::FTP [] (3) - FTP Client class +Net::NNTP [] (3) - NNTP Client class +Net::Netrc [] (3) - OO interface to users netrc file +Net::POP3 [] (3) - Post Office Protocol 3 Client class (RFC1939) +Net::Ping [] (3) - check a remote host for reachability +Net::SMTP [] (3) - Simple Mail Transfer Protocol Client +Net::Time [] (3) - time and daytime network client interface +Net::hostent [] (3) - by-name interface to Perl's built-in gethost*() functions +Net::netent [] (3) - by-name interface to Perl's built-in getnet*() functions +Net::protoent [] (3) - by-name interface to Perl's built-in getproto*() functions +Net::servent [] (3) - by-name interface to Perl's built-in getserv*() functions +NetSNMP::ASN [] (3) - Perl extension for SNMP ASN.1 types +NetSNMP::OID [] (3) - Perl extension for manipulating OIDs +NetSNMP::TrapReceiver [] (3) - Embedded perl trap handling for Net-SNMP's snmptrapd +NetSNMP::agent [] (3) - Perl extension for the net-snmp agent +NetSNMP::agent::default_store [] (3) - Perl extension for Net-SNMP agent default storage +NetSNMP::agent::netsnmp_request_infoPtr [] (3) - Perl extension for request information +NetSNMP::default_store [] (3) - Perl extension for Net-SNMP generic storage of global data +Netwatch [] (1) - Ethernet Internet Protocol Monitor +NextRequest [] (3) - Display macros and functions +O [] (3) - Generic interface to Perl Compiler backends +OBJ_cleanup [] (3) - ASN1 object utility functions +OBJ_cmp [] (3) - ASN1 object utility functions +OBJ_create [] (3) - ASN1 object utility functions +OBJ_dup [] (3) - ASN1 object utility functions +OBJ_ln2nid [] (3) - ASN1 object utility functions +OBJ_nid2ln [] (3) - ASN1 object utility functions +OBJ_nid2obj [] (3) - ASN1 object utility functions +OBJ_nid2sn [] (3) - ASN1 object utility functions +OBJ_obj2nid [] (3) - ASN1 object utility functions +OBJ_obj2txt [] (3) - ASN1 object utility functions +OBJ_sn2nid [] (3) - ASN1 object utility functions +OBJ_txt2nid [] (3) - ASN1 object utility functions +OBJ_txt2obj [] (3) - ASN1 object utility functions +ODBM_File [] (3) - various DBM implementations +OMAPI [] (3) - Object Management Application Programming Interface +OPENSSL_Applink [] (3) - glue between OpenSSL BIO and Win32 compiler run-time +OPENSSL_VERSION_NUMBER [] (3) - get OpenSSL version number +OPENSSL_config [] (3) - simple OpenSSL configuration functions +OPENSSL_ia32cap [] (3) - finding the IA-32 processor capabilities +OPENSSL_load_builtin_modules [] (3) - add standard configuration modules +OPENSSL_no_config [] (3) - simple OpenSSL configuration functions +OSSP mm [] (3) - Shared Memory Allocation +Opcode [] (3) - Disable named opcodes when compiling perl code +OpenSSL_add_all_algorithms [] (3) - add algorithms to internal table +OpenSSL_add_all_ciphers [] (3) - add algorithms to internal table +OpenSSL_add_all_digests [] (3) - add algorithms to internal table +OpenSSL_add_ssl_algorithms [] (3) - initialize SSL library by registering algorithms +PAIR_NUMBER [] (3) - curses character and window attribute control routines +PCRE [] (3) - Perl-compatible regular expressions +PEM [] (3) - PEM routines +PKCS12_create [] (3) - create a PKCS#12 structure +PKCS12_parse [] (3) - parse a PKCS#12 structure +PKCS7_decrypt [] (3) - decrypt content from a PKCS#7 envelopedData structure +PKCS7_encrypt [] (3) - create a PKCS#7 envelopedData structure +PKCS7_sign [] (3) - create a PKCS#7 signedData structure +PKCS7_verify [] (3) - verify a PKCS#7 signedData structure +POSIX [] (3) - Perl interface to IEEE Std 1003.1 +PRIO [] (8) - Priority qdisc +Package::Constants [] (3) - List all constants declared in a package +Params::Check [] (3) - A generic input parsing/checking mechanism +PerlIO [] (3) - On demand loader for PerlIO layers and root of PerlIO::* name space +PerlIO::encoding [] (3) - encoding layer +PerlIO::scalar [] (3) - in-memory IO, scalar IO +PerlIO::via [] (3) - Helper class for PerlIO layers implemented in perl +PerlIO::via::QuotedPrint [] (3) - PerlIO layer for quoted-printable strings +Pidgin [] (3) - Perl extension for the Pidgin instant messenger +PlanesOfScreen [] (3) - screen information functions and macros +Pnews [] (1) - a program for posting news articles +Pod::Checker [] (3) - check pod documents for syntax errors +Pod::Escapes [] (3) - - for resolving Pod E<...> sequences +Pod::Find [] (3) - find POD documents in directory trees +Pod::Html [] (3) - module to convert pod files to HTML +Pod::InputObjects [] (3) - objects representing POD input paragraphs, commands, etc +Pod::LaTeX [] (3) - Convert Pod data to formatted Latex +Pod::Man [] (3) - Convert POD data to formatted *roff input +Pod::ParseLink [] (3) - Parse an L<> formatting code in POD text +Pod::ParseUtils [] (3) - helpers for POD parsing and conversion +Pod::Parser [] (3) - base class for creating POD filters and translators +Pod::Perldoc::ToChecker [] (3) - let Perldoc check Pod for errors +Pod::Perldoc::ToMan [] (3) - let Perldoc render Pod as man pages +Pod::Perldoc::ToNroff [] (3) - let Perldoc convert Pod to nroff +Pod::Perldoc::ToPod [] (3) - let Perldoc render Pod as ... Pod! +Pod::Perldoc::ToRtf [] (3) - let Perldoc render Pod as RTF +Pod::Perldoc::ToText [] (3) - let Perldoc render Pod as plaintext +Pod::Perldoc::ToTk [] (3) - let Perldoc use Tk::Pod to render Pod +Pod::Perldoc::ToXml [] (3) - let Perldoc render Pod as XML +Pod::PlainText [] (3) - Convert POD data to formatted ASCII text +Pod::Plainer [] (3) - Perl extension for converting Pod to old style Pod +Pod::Select [] (3) - extract selected sections of POD from input +Pod::Simple [] (3) - framework for parsing Pod +Pod::Simple::Checker [] (3) - - check the Pod syntax of a document +Pod::Simple::Debug [] (3) - - put Pod::Simple into trace/debug mode +Pod::Simple::DumpAsText [] (3) - - dump Pod-parsing events as text +Pod::Simple::DumpAsXML [] (3) - - turn Pod into XML +Pod::Simple::HTML [] (3) - convert Pod to HTML +Pod::Simple::HTMLBatch [] (3) - convert several Pod files to several HTML files +Pod::Simple::LinkSection [] (3) - - represent section attributes of L codes +Pod::Simple::Methody [] (3) - - turn Pod::Simple events into method calls +Pod::Simple::PullParser [] (3) - - a pull-parser interface to parsing Pod +Pod::Simple::PullParserEndToken [] (3) - - end-tokens from Pod::Simple::PullParser +Pod::Simple::PullParserStartToken [] (3) - - start-tokens from Pod::Simple::PullParser +Pod::Simple::PullParserTextToken [] (3) - - text-tokens from Pod::Simple::PullParser +Pod::Simple::PullParserToken [] (3) - - tokens from Pod::Simple::PullParser +Pod::Simple::RTF [] (3) - - format Pod as RTF +Pod::Simple::Search [] (3) - find POD documents in directory trees +Pod::Simple::SimpleTree [] (3) - - parse Pod into a simple parse tree +Pod::Simple::Subclassing [] (3) - - write a formatter as a Pod::Simple subclass +Pod::Simple::Text [] (3) - - format Pod as plaintext +Pod::Simple::TextContent [] (3) - - get the text content of Pod +Pod::Simple::XMLOutStream [] (3) - - turn Pod into XML +Pod::Text [] (3) - Convert POD data to formatted ASCII text +Pod::Text::Color [] (3) - Convert POD data to formatted color ASCII text +Pod::Text::Overstrike [] (3) - Convert POD data to formatted overstrike text +Pod::Text::Termcap [] (3) - Convert POD data to ASCII text with format escapes +Pod::Usage [] (3) - print a usage message from embedded pod documentation +ProtocolRevision [] (3) - Display macros and functions +ProtocolVersion [] (3) - Display macros and functions +Purple [] (3) - Perl extension to the libpurple instant messenger library +Q [] (3) - 1)) && ! e.quit?) p e d.refresh end +QLength [] (3) - Display macros and functions +RAND_SSLeay [] (3) - select RAND method +RAND_add [] (3) - add entropy to the PRNG +RAND_bytes [] (3) - generate random data +RAND_cleanup [] (3) - erase the PRNG state +RAND_egd [] (3) - query entropy gathering daemon +RAND_event [] (3) - add entropy to the PRNG +RAND_file_name [] (3) - PRNG seed file +RAND_get_rand_method [] (3) - select RAND method +RAND_load_file [] (3) - PRNG seed file +RAND_pseudo_bytes [] (3) - generate random data +RAND_screen [] (3) - add entropy to the PRNG +RAND_seed [] (3) - add entropy to the PRNG +RAND_set_rand_method [] (3) - select RAND method +RAND_status [] (3) - add entropy to the PRNG +RAND_write_file [] (3) - PRNG seed file +RC4 [] (3) - RC4 encryption +RC4_set_key [] (3) - RC4 encryption +README.BS2000 [] (1) - building and installing Perl for BS2000 +README.aix [] (1) - Perl version 5 on IBM Unix (AIX) systems +README.apollo [] (1) - Perl version 5 on Apollo DomainOS +README.beos [] (1) - Perl version 5.8+ on BeOS +README.cygwin [] (1) - Perl for Cygwin +README.epoc [] (1) - Perl for EPOC +README.freebsd [] (1) - Perl version 5 on FreeBSD systems +README.hpux [] (1) - Perl version 5 on Hewlett-Packard Unix (HP-UX) systems +README.hurd [] (1) - Perl version 5 on Hurd +README.irix [] (1) - Perl version 5 on Irix systems +README.linux [] (1) - Perl version 5 on Linux systems +README.machten [] (1) - Perl version 5 on Power MachTen systems +README.macos [] (1) - Perl under Mac OS (Classic) +README.macosx [] (1) - Perl under Mac OS X +README.mint [] (1) - Perl version 5 on Atari MiNT +README.mpeix [] (1) - Perl/iX for HP e3000 MPE +README.openbsd [] (1) - Perl version 5 on OpenBSD systems +README.os390 [] (1) - building and installing Perl for OS/390 and z/OS +README.os400 [] (1) - Perl version 5 on OS/400 +README.qnx [] (1) - Perl version 5 on QNX +README.riscos [] (1) - Perl version 5 for RISC OS +README.solaris [] (1) - Perl version 5 on Solaris systems +README.symbian [] (1) - Perl version 5 on Symbian OS +README.tru64 [] (1) - Perl version 5 on Tru64 (formerly known as Digital UNIX formerly known as DEC OSF/1) systems +README.vmesa [] (1) - building and installing Perl for VM/ESA +README.vos [] (1) - Perl for Stratus VOS +RIPEMD160 [] (3) - RIPEMD - 160 hash function +RIPEMD160_Final [] (3) - RIPEMD - 160 hash function +RIPEMD160_Init [] (3) - RIPEMD - 160 hash function +RIPEMD160_Update [] (3) - RIPEMD - 160 hash function +RSA_PKCS1_SSLeay [] (3) - select RSA method +RSA_blinding_off [] (3) - protect the RSA operation from timing attacks +RSA_blinding_on [] (3) - protect the RSA operation from timing attacks +RSA_check_key [] (3) - validate private RSA keys +RSA_flags [] (3) - select RSA method +RSA_free [] (3) - allocate and free RSA objects +RSA_generate_key [] (3) - generate RSA key pair +RSA_get_default_method [] (3) - select RSA method +RSA_get_ex_data [] (3) - add application specific data to RSA structures +RSA_get_ex_new_index [] (3) - add application specific data to RSA structures +RSA_get_method [] (3) - select RSA method +RSA_new [] (3) - allocate and free RSA objects +RSA_new_method [] (3) - select RSA method +RSA_null_method [] (3) - select RSA method +RSA_padding_add_PKCS1_OAEP [] (3) - asymmetric encryption padding +RSA_padding_add_PKCS1_type_1 [] (3) - asymmetric encryption padding +RSA_padding_add_PKCS1_type_2 [] (3) - asymmetric encryption padding +RSA_padding_add_SSLv23 [] (3) - asymmetric encryption padding +RSA_padding_add_none [] (3) - asymmetric encryption padding +RSA_padding_check_PKCS1_OAEP [] (3) - asymmetric encryption padding +RSA_padding_check_PKCS1_type_1 [] (3) - asymmetric encryption padding +RSA_padding_check_PKCS1_type_2 [] (3) - asymmetric encryption padding +RSA_padding_check_SSLv23 [] (3) - asymmetric encryption padding +RSA_padding_check_none [] (3) - asymmetric encryption padding +RSA_print [] (3) - print cryptographic parameters +RSA_print_fp [] (3) - print cryptographic parameters +RSA_private_decrypt [] (3) - RSA public key cryptography +RSA_private_encrypt [] (3) - low level signature operations +RSA_public_decrypt [] (3) - low level signature operations +RSA_public_encrypt [] (3) - RSA public key cryptography +RSA_set_default_method [] (3) - select RSA method +RSA_set_ex_data [] (3) - add application specific data to RSA structures +RSA_set_method [] (3) - select RSA method +RSA_sign [] (3) - RSA signatures +RSA_sign_ASN1_OCTET_STRING [] (3) - RSA signatures +RSA_size [] (3) - get RSA modulus size +RSA_verify [] (3) - RSA signatures +RSA_verify_ASN1_OCTET_STRING [] (3) - RSA signatures +Rnmail [] (1) - a program for replying via mail +RootWindow [] (3) - Display macros and functions +RootWindowOfScreen [] (3) - screen information functions and macros +SASL [] (3) - SASL authentication library +SDBM_File [] (3) - Tied access to sdbm files +SDBM_File [] (3) - various DBM implementations +SDLKey (3) - SDL Keysym Definitions +SDLKey [] (3) - SDL Keysym Definitions +SDL_ActiveEvent (3) - Application visibility event structure +SDL_ActiveEvent [] (3) - Application visibility event structure +SDL_AddTimer (3) - Add a timer which will call a callback after the specified number of milliseconds has elapsed +SDL_AddTimer [] (3) - Add a timer which will call a callback after the specified number of milliseconds has elapsed +SDL_AudioCVT (3) - Audio Conversion Structure +SDL_AudioCVT [] (3) - Audio Conversion Structure +SDL_AudioSpec (3) - Audio Specification Structure +SDL_AudioSpec [] (3) - Audio Specification Structure +SDL_BlitSurface (3) - This performs a fast blit from the source surface to the destination surface +SDL_BlitSurface [] (3) - This performs a fast blit from the source surface to the destination surface +SDL_BuildAudioCVT (3) - Initializes a SDL_AudioCVT structure for conversion +SDL_BuildAudioCVT [] (3) - Initializes a SDL_AudioCVT structure for conversion +SDL_CD (3) - CDROM Drive Information +SDL_CD [] (3) - CDROM Drive Information +SDL_CDClose (3) - Closes a SDL_CD handle +SDL_CDClose [] (3) - Closes a SDL_CD handle +SDL_CDEject (3) - Ejects a CDROM +SDL_CDEject [] (3) - Ejects a CDROM +SDL_CDName (3) - Returns a human-readable, system-dependent identifier for the CD-ROM +SDL_CDName [] (3) - Returns a human-readable, system-dependent identifier for the CD-ROM +SDL_CDNumDrives (3) - Returns the number of CD-ROM drives on the system +SDL_CDNumDrives [] (3) - Returns the number of CD-ROM drives on the system +SDL_CDOpen (3) - Opens a CD-ROM drive for access +SDL_CDOpen [] (3) - Opens a CD-ROM drive for access +SDL_CDPause (3) - Pauses a CDROM +SDL_CDPause [] (3) - Pauses a CDROM +SDL_CDPlay (3) - Play a CD +SDL_CDPlay [] (3) - Play a CD +SDL_CDPlayTracks (3) - Play the given CD track(s) +SDL_CDPlayTracks [] (3) - Play the given CD track(s) +SDL_CDResume (3) - Resumes a CDROM +SDL_CDResume [] (3) - Resumes a CDROM +SDL_CDStatus (3) - Returns the current status of the given drive +SDL_CDStatus [] (3) - Returns the current status of the given drive +SDL_CDStop (3) - Stops a CDROM +SDL_CDStop [] (3) - Stops a CDROM +SDL_CDtrack (3) - CD Track Information Structure +SDL_CDtrack [] (3) - CD Track Information Structure +SDL_CloseAudio (3) - Shuts down audio processing and closes the audio device +SDL_CloseAudio [] (3) - Shuts down audio processing and closes the audio device +SDL_Color (3) - Format independent color description +SDL_Color [] (3) - Format independent color description +SDL_CondBroadcast (3) - Restart all threads waiting on a condition variable +SDL_CondBroadcast [] (3) - Restart all threads waiting on a condition variable +SDL_CondSignal (3) - Restart a thread wait on a condition variable +SDL_CondSignal [] (3) - Restart a thread wait on a condition variable +SDL_CondWait (3) - Wait on a condition variable +SDL_CondWait [] (3) - Wait on a condition variable +SDL_CondWaitTimeout (3) - Wait on a condition variable, with timeout +SDL_CondWaitTimeout [] (3) - Wait on a condition variable, with timeout +SDL_ConvertAudio (3) - Convert audio data to a desired audio format +SDL_ConvertAudio [] (3) - Convert audio data to a desired audio format +SDL_ConvertSurface (3) - Converts a surface to the same format as another surface +SDL_ConvertSurface [] (3) - Converts a surface to the same format as another surface +SDL_CreateCond (3) - Create a condition variable +SDL_CreateCond [] (3) - Create a condition variable +SDL_CreateCursor (3) - Creates a new mouse cursor +SDL_CreateCursor [] (3) - Creates a new mouse cursor +SDL_CreateMutex (3) - Create a mutex +SDL_CreateMutex [] (3) - Create a mutex +SDL_CreateRGBSurface (3) - Create an empty SDL_Surface +SDL_CreateRGBSurface [] (3) - Create an empty SDL_Surface +SDL_CreateRGBSurfaceFrom (3) - Create an SDL_Surface from pixel data +SDL_CreateRGBSurfaceFrom [] (3) - Create an SDL_Surface from pixel data +SDL_CreateSemaphore (3) - Creates a new semaphore and assigns an initial value to it +SDL_CreateSemaphore [] (3) - Creates a new semaphore and assigns an initial value to it +SDL_CreateThread (3) - Creates a new thread of execution that shares its parent's properties +SDL_CreateThread [] (3) - Creates a new thread of execution that shares its parent's properties +SDL_CreateYUVOverlay (3) - Create a YUV video overlay +SDL_CreateYUVOverlay [] (3) - Create a YUV video overlay +SDL_Delay (3) - Wait a specified number of milliseconds before returning +SDL_Delay [] (3) - Wait a specified number of milliseconds before returning +SDL_DestroyCond (3) - Destroy a condition variable +SDL_DestroyCond [] (3) - Destroy a condition variable +SDL_DestroyMutex (3) - Destroy a mutex +SDL_DestroyMutex [] (3) - Destroy a mutex +SDL_DestroySemaphore (3) - Destroys a semaphore that was created by SDL_CreateSemaphore +SDL_DestroySemaphore [] (3) - Destroys a semaphore that was created by SDL_CreateSemaphore +SDL_DisplayFormat (3) - Convert a surface to the display format +SDL_DisplayFormat [] (3) - Convert a surface to the display format +SDL_DisplayFormatAlpha (3) - Convert a surface to the display format +SDL_DisplayFormatAlpha [] (3) - Convert a surface to the display format +SDL_DisplayYUVOverlay (3) - Blit the overlay to the display +SDL_DisplayYUVOverlay [] (3) - Blit the overlay to the display +SDL_EnableKeyRepeat (3) - Set keyboard repeat rate +SDL_EnableKeyRepeat [] (3) - Set keyboard repeat rate +SDL_EnableUNICODE (3) - Enable UNICODE translation +SDL_EnableUNICODE [] (3) - Enable UNICODE translation +SDL_Event (3) - General event structure +SDL_Event [] (3) - General event structure +SDL_EventState (3) - This function allows you to set the state of processing certain events +SDL_EventState [] (3) - This function allows you to set the state of processing certain events +SDL_ExposeEvent (3) - Quit requested event +SDL_ExposeEvent [] (3) - Quit requested event +SDL_FillRect (3) - This function performs a fast fill of the given rectangle with some color +SDL_FillRect [] (3) - This function performs a fast fill of the given rectangle with some color +SDL_Flip (3) - Swaps screen buffers +SDL_Flip [] (3) - Swaps screen buffers +SDL_FreeCursor (3) - Frees a cursor created with SDL_CreateCursor +SDL_FreeCursor [] (3) - Frees a cursor created with SDL_CreateCursor +SDL_FreeSurface (3) - Frees (deletes) a SDL_Surface +SDL_FreeSurface [] (3) - Frees (deletes) a SDL_Surface +SDL_FreeWAV (3) - Frees previously opened WAV data +SDL_FreeWAV [] (3) - Frees previously opened WAV data +SDL_FreeYUVOverlay (3) - Free a YUV video overlay +SDL_FreeYUVOverlay [] (3) - Free a YUV video overlay +SDL_FunctionName [SDL_RWFromFile] (3) - Short description of function +SDL_FunctionName [] (3) - Short description of function +SDL_GL_GetAttribute (3) - Get the value of a special SDL/OpenGL attribute +SDL_GL_GetAttribute [] (3) - Get the value of a special SDL/OpenGL attribute +SDL_GL_GetProcAddress (3) - Get the address of a GL function +SDL_GL_GetProcAddress [] (3) - Get the address of a GL function +SDL_GL_LoadLibrary (3) - Specify an OpenGL library +SDL_GL_LoadLibrary [] (3) - Specify an OpenGL library +SDL_GL_SetAttribute (3) - Set a special SDL/OpenGL attribute +SDL_GL_SetAttribute [] (3) - Set a special SDL/OpenGL attribute +SDL_GL_SwapBuffers (3) - Swap OpenGL framebuffers/Update Display +SDL_GL_SwapBuffers [] (3) - Swap OpenGL framebuffers/Update Display +SDL_GLattr (3) - SDL GL Attributes +SDL_GLattr [] (3) - SDL GL Attributes +SDL_GetAppState (3) - Get the state of the application +SDL_GetAppState [] (3) - Get the state of the application +SDL_GetAudioStatus (3) - Get the current audio state +SDL_GetAudioStatus [] (3) - Get the current audio state +SDL_GetClipRect (3) - Gets the clipping rectangle for a surface +SDL_GetClipRect [] (3) - Gets the clipping rectangle for a surface +SDL_GetCursor (3) - Get the currently active mouse cursor +SDL_GetCursor [] (3) - Get the currently active mouse cursor +SDL_GetError (3) - Get SDL error string +SDL_GetError [] (3) - Get SDL error string +SDL_GetEventFilter (3) - Retrieves a pointer to he event filter +SDL_GetEventFilter [] (3) - Retrieves a pointer to he event filter +SDL_GetGamma (3) - Gets the gamma of the display +SDL_GetGamma [] (3) - Gets the gamma of the display +SDL_GetGammaRamp (3) - Gets the color gamma lookup tables for the display +SDL_GetGammaRamp [] (3) - Gets the color gamma lookup tables for the display +SDL_GetKeyName (3) - Get the name of an SDL virtual keysym +SDL_GetKeyName [] (3) - Get the name of an SDL virtual keysym +SDL_GetKeyState (3) - Get a snapshot of the current keyboard state +SDL_GetKeyState [] (3) - Get a snapshot of the current keyboard state +SDL_GetModState (3) - Get the state of modifier keys +SDL_GetModState [] (3) - Get the state of modifier keys +SDL_GetMouseState (3) - Retrieve the current state of the mouse +SDL_GetMouseState [] (3) - Retrieve the current state of the mouse +SDL_GetRGB (3) - Get RGB values from a pixel in the specified pixel format +SDL_GetRGB [] (3) - Get RGB values from a pixel in the specified pixel format +SDL_GetRGBA (3) - Get RGBA values from a pixel in the specified pixel format +SDL_GetRGBA [] (3) - Get RGBA values from a pixel in the specified pixel format +SDL_GetRelativeMouseState (3) - Retrieve the current state of the mouse +SDL_GetRelativeMouseState [] (3) - Retrieve the current state of the mouse +SDL_GetThreadID (3) - Get the SDL thread ID of a SDL_Thread +SDL_GetThreadID [] (3) - Get the SDL thread ID of a SDL_Thread +SDL_GetTicks (3) - Get the number of milliseconds since the SDL library initialization +SDL_GetTicks [] (3) - Get the number of milliseconds since the SDL library initialization +SDL_GetVideoInfo (3) - returns a pointer to information about the video hardware +SDL_GetVideoInfo [] (3) - returns a pointer to information about the video hardware +SDL_GetVideoSurface (3) - returns a pointer to the current display surface +SDL_GetVideoSurface [] (3) - returns a pointer to the current display surface +SDL_Init (3) - Initializes SDL +SDL_Init [] (3) - Initializes SDL +SDL_InitSubSystem (3) - Initialize subsystems +SDL_InitSubSystem [] (3) - Initialize subsystems +SDL_JoyAxisEvent (3) - Joystick axis motion event structure +SDL_JoyAxisEvent [] (3) - Joystick axis motion event structure +SDL_JoyBallEvent (3) - Joystick trackball motion event structure +SDL_JoyBallEvent [] (3) - Joystick trackball motion event structure +SDL_JoyButtonEvent (3) - Joystick button event structure +SDL_JoyButtonEvent [] (3) - Joystick button event structure +SDL_JoyHatEvent (3) - Joystick hat position change event structure +SDL_JoyHatEvent [] (3) - Joystick hat position change event structure +SDL_JoystickClose (3) - Closes a previously opened joystick +SDL_JoystickClose [] (3) - Closes a previously opened joystick +SDL_JoystickEventState (3) - Enable/disable joystick event polling +SDL_JoystickEventState [] (3) - Enable/disable joystick event polling +SDL_JoystickGetAxis (3) - Get the current state of an axis +SDL_JoystickGetAxis [] (3) - Get the current state of an axis +SDL_JoystickGetBall (3) - Get relative trackball motion +SDL_JoystickGetBall [] (3) - Get relative trackball motion +SDL_JoystickGetButton (3) - Get the current state of a given button on a given joystick +SDL_JoystickGetButton [] (3) - Get the current state of a given button on a given joystick +SDL_JoystickGetHat (3) - Get the current state of a joystick hat +SDL_JoystickGetHat [] (3) - Get the current state of a joystick hat +SDL_JoystickIndex (3) - Get the index of an SDL_Joystick +SDL_JoystickIndex [] (3) - Get the index of an SDL_Joystick +SDL_JoystickName (3) - Get joystick name +SDL_JoystickName [] (3) - Get joystick name +SDL_JoystickNumAxes (3) - Get the number of joystick axes +SDL_JoystickNumAxes [] (3) - Get the number of joystick axes +SDL_JoystickNumBalls (3) - Get the number of joystick trackballs +SDL_JoystickNumBalls [] (3) - Get the number of joystick trackballs +SDL_JoystickNumButtons (3) - Get the number of joysitck buttons +SDL_JoystickNumButtons [] (3) - Get the number of joysitck buttons +SDL_JoystickNumHats (3) - Get the number of joystick hats +SDL_JoystickNumHats [] (3) - Get the number of joystick hats +SDL_JoystickOpen (3) - Opens a joystick for use +SDL_JoystickOpen [] (3) - Opens a joystick for use +SDL_JoystickOpened (3) - Determine if a joystick has been opened +SDL_JoystickOpened [] (3) - Determine if a joystick has been opened +SDL_JoystickUpdate (3) - Updates the state of all joysticks +SDL_JoystickUpdate [] (3) - Updates the state of all joysticks +SDL_KeyboardEvent (3) - Keyboard event structure +SDL_KeyboardEvent [] (3) - Keyboard event structure +SDL_KillThread (3) - Gracelessly terminates the thread +SDL_KillThread [] (3) - Gracelessly terminates the thread +SDL_ListModes (3) - Returns a pointer to an array of available screen dimensions for the given format and video flags +SDL_ListModes [] (3) - Returns a pointer to an array of available screen dimensions for the given format and video flags +SDL_LoadBMP (3) - Load a Windows BMP file into an SDL_Surface +SDL_LoadBMP [] (3) - Load a Windows BMP file into an SDL_Surface +SDL_LoadWAV (3) - Load a WAVE file +SDL_LoadWAV [] (3) - Load a WAVE file +SDL_LockAudio (3) - Lock out the callback function +SDL_LockAudio [] (3) - Lock out the callback function +SDL_LockSurface (3) - Lock a surface for directly access +SDL_LockSurface [] (3) - Lock a surface for directly access +SDL_LockYUVOverlay (3) - Lock an overlay +SDL_LockYUVOverlay [] (3) - Lock an overlay +SDL_MapRGB (3) - Map a RGB color value to a pixel format +SDL_MapRGB [] (3) - Map a RGB color value to a pixel format +SDL_MapRGBA (3) - Map a RGBA color value to a pixel format +SDL_MapRGBA [] (3) - Map a RGBA color value to a pixel format +SDL_MixAudio (3) - Mix audio data +SDL_MixAudio [] (3) - Mix audio data +SDL_MouseButtonEvent (3) - Mouse button event structure +SDL_MouseButtonEvent [] (3) - Mouse button event structure +SDL_MouseMotionEvent (3) - Mouse motion event structure +SDL_MouseMotionEvent [] (3) - Mouse motion event structure +SDL_NumJoysticks (3) - Count available joysticks +SDL_NumJoysticks [] (3) - Count available joysticks +SDL_OpenAudio (3) - Opens the audio device with the desired parameters +SDL_OpenAudio [] (3) - Opens the audio device with the desired parameters +SDL_Overlay (3) - YUV video overlay +SDL_Overlay [] (3) - YUV video overlay +SDL_Palette (3) - Color palette for 8-bit pixel formats +SDL_Palette [] (3) - Color palette for 8-bit pixel formats +SDL_PauseAudio (3) - Pauses and unpauses the audio callback processing +SDL_PauseAudio [] (3) - Pauses and unpauses the audio callback processing +SDL_PeepEvents (3) - Checks the event queue for messages and optionally returns them +SDL_PeepEvents [] (3) - Checks the event queue for messages and optionally returns them +SDL_PixelFormat (3) - Stores surface format information +SDL_PixelFormat [] (3) - Stores surface format information +SDL_PollEvent (3) - Polls for currently pending events +SDL_PollEvent [] (3) - Polls for currently pending events +SDL_PumpEvents (3) - Pumps the event loop, gathering events from the input devices +SDL_PumpEvents [] (3) - Pumps the event loop, gathering events from the input devices +SDL_PushEvent (3) - Pushes an event onto the event queue +SDL_PushEvent [] (3) - Pushes an event onto the event queue +SDL_Quit (3) - Shut down SDL +SDL_Quit [] (3) - Shut down SDL +SDL_QuitEvent (3) - Quit requested event +SDL_QuitEvent [] (3) - Quit requested event +SDL_QuitSubSystem (3) - Shut down a subsystem +SDL_QuitSubSystem [] (3) - Shut down a subsystem +SDL_Rect (3) - Defines a rectangular area +SDL_Rect [] (3) - Defines a rectangular area +SDL_RemoveTimer (3) - Remove a timer which was added with SDL_AddTimer +SDL_RemoveTimer [] (3) - Remove a timer which was added with SDL_AddTimer +SDL_ResizeEvent (3) - Window resize event structure +SDL_ResizeEvent [] (3) - Window resize event structure +SDL_SaveBMP (3) - Save an SDL_Surface as a Windows BMP file +SDL_SaveBMP [] (3) - Save an SDL_Surface as a Windows BMP file +SDL_SemPost (3) - Unlock a semaphore +SDL_SemPost [] (3) - Unlock a semaphore +SDL_SemTryWait (3) - Attempt to lock a semaphore but don't suspend the thread +SDL_SemTryWait [] (3) - Attempt to lock a semaphore but don't suspend the thread +SDL_SemValue (3) - Return the current value of a semaphore +SDL_SemValue [] (3) - Return the current value of a semaphore +SDL_SemWait (3) - Lock a semaphore and suspend the thread if the semaphore value is zero +SDL_SemWait [] (3) - Lock a semaphore and suspend the thread if the semaphore value is zero +SDL_SemWaitTimeout (3) - Lock a semaphore, but only wait up to a specified maximum time +SDL_SemWaitTimeout [] (3) - Lock a semaphore, but only wait up to a specified maximum time +SDL_SetAlpha (3) - Adjust the alpha properties of a surface +SDL_SetAlpha [] (3) - Adjust the alpha properties of a surface +SDL_SetClipRect (3) - Sets the clipping rectangle for a surface +SDL_SetClipRect [] (3) - Sets the clipping rectangle for a surface +SDL_SetColorKey (3) - Sets the color key (transparent pixel) in a blittable surface and RLE acceleration +SDL_SetColorKey [] (3) - Sets the color key (transparent pixel) in a blittable surface and RLE acceleration +SDL_SetColors (3) - Sets a portion of the colormap for the given 8-bit surface +SDL_SetColors [] (3) - Sets a portion of the colormap for the given 8-bit surface +SDL_SetCursor (3) - Set the currently active mouse cursor +SDL_SetCursor [] (3) - Set the currently active mouse cursor +SDL_SetEventFilter (3) - Sets up a filter to process all events before they are posted to the event queue +SDL_SetEventFilter [] (3) - Sets up a filter to process all events before they are posted to the event queue +SDL_SetGamma (3) - Sets the color gamma function for the display +SDL_SetGamma [] (3) - Sets the color gamma function for the display +SDL_SetGammaRamp (3) - Sets the color gamma lookup tables for the display +SDL_SetGammaRamp [] (3) - Sets the color gamma lookup tables for the display +SDL_SetModState (3) - Set the current key modifier state +SDL_SetModState [] (3) - Set the current key modifier state +SDL_SetPalette (3) - Sets the colors in the palette of an 8-bit surface +SDL_SetPalette [] (3) - Sets the colors in the palette of an 8-bit surface +SDL_SetTimer (3) - Set a callback to run after the specified number of milliseconds has elapsed +SDL_SetTimer [] (3) - Set a callback to run after the specified number of milliseconds has elapsed +SDL_SetVideoMode (3) - Set up a video mode with the specified width, height and bits-per-pixel +SDL_SetVideoMode [] (3) - Set up a video mode with the specified width, height and bits-per-pixel +SDL_ShowCursor (3) - Toggle whether or not the cursor is shown on the screen +SDL_ShowCursor [] (3) - Toggle whether or not the cursor is shown on the screen +SDL_Surface (3) - Graphical Surface Structure +SDL_Surface [] (3) - Graphical Surface Structure +SDL_SysWMEvent (3) - Platform-dependent window manager event +SDL_SysWMEvent [] (3) - Platform-dependent window manager event +SDL_ThreadID (3) - Get the 32-bit thread identifier for the current thread +SDL_ThreadID [] (3) - Get the 32-bit thread identifier for the current thread +SDL_UnlockAudio (3) - Unlock the callback function +SDL_UnlockAudio [] (3) - Unlock the callback function +SDL_UnlockSurface (3) - Unlocks a previously locked surface +SDL_UnlockSurface [] (3) - Unlocks a previously locked surface +SDL_UnlockYUVOverlay (3) - Unlock an overlay +SDL_UnlockYUVOverlay [] (3) - Unlock an overlay +SDL_UpdateRect (3) - Makes sure the given area is updated on the given screen +SDL_UpdateRect [] (3) - Makes sure the given area is updated on the given screen +SDL_UpdateRects (3) - Makes sure the given list of rectangles is updated on the given screen +SDL_UpdateRects [] (3) - Makes sure the given list of rectangles is updated on the given screen +SDL_UserEvent (3) - A user-defined event type +SDL_UserEvent [] (3) - A user-defined event type +SDL_VideoDriverName (3) - Obtain the name of the video driver +SDL_VideoDriverName [] (3) - Obtain the name of the video driver +SDL_VideoInfo (3) - Video Target information +SDL_VideoInfo [] (3) - Video Target information +SDL_VideoModeOK (3) - Check to see if a particular video mode is supported +SDL_VideoModeOK [] (3) - Check to see if a particular video mode is supported +SDL_WM_GetCaption (3) - Gets the window title and icon name +SDL_WM_GetCaption [] (3) - Gets the window title and icon name +SDL_WM_GrabInput (3) - Grabs mouse and keyboard input +SDL_WM_GrabInput [] (3) - Grabs mouse and keyboard input +SDL_WM_IconifyWindow (3) - Iconify/Minimise the window +SDL_WM_IconifyWindow [] (3) - Iconify/Minimise the window +SDL_WM_SetCaption (3) - Sets the window tile and icon name +SDL_WM_SetCaption [] (3) - Sets the window tile and icon name +SDL_WM_SetIcon (3) - Sets the icon for the display window +SDL_WM_SetIcon [] (3) - Sets the icon for the display window +SDL_WM_ToggleFullScreen (3) - Toggles fullscreen mode +SDL_WM_ToggleFullScreen [] (3) - Toggles fullscreen mode +SDL_WaitEvent (3) - Waits indefinitely for the next available event +SDL_WaitEvent [] (3) - Waits indefinitely for the next available event +SDL_WaitThread (3) - Wait for a thread to finish +SDL_WaitThread [] (3) - Wait for a thread to finish +SDL_WarpMouse (3) - Set the position of the mouse cursor +SDL_WarpMouse [] (3) - Set the position of the mouse cursor +SDL_WasInit (3) - Check which subsystems are initialized +SDL_WasInit [] (3) - Check which subsystems are initialized +SDL_keysym (3) - Keysym structure +SDL_keysym [] (3) - Keysym structure +SDL_mutexP (3) - Lock a mutex +SDL_mutexP [] (3) - Lock a mutex +SDL_mutexV (3) - Unlock a mutex +SDL_mutexV [] (3) - Unlock a mutex +SGMLS [] (3) - class for postprocessing the output from the sgmls and nsgmls parsers +SGMLS::Output [] (3) - Stack-based Output Procedures +SGMLS::Refs [] (3) - Forward reference handling +SHA1 [] (3) - Secure Hash Algorithm +SHA1_Final [] (3) - Secure Hash Algorithm +SHA1_Init [] (3) - Secure Hash Algorithm +SHA1_Update [] (3) - Secure Hash Algorithm +SMIME_read_PKCS7 [] (3) - parse S/MIME message +SMIME_write_PKCS7 [] (3) - convert PKCS#7 structure to S/MIME format +SNMP [] (3) - The Perl5 'SNMP' Extension Module for the Net-SNMP SNMP package +SOCK_RAW [] (7) - Linux IPv4 raw sockets +SSL [] (3) - OpenSSL SSL/TLS library +SSL_CIPHER_description [] (3) - get SSL_CIPHER properties +SSL_CIPHER_get_bits [] (3) - get SSL_CIPHER properties +SSL_CIPHER_get_name [] (3) - get SSL_CIPHER properties +SSL_CIPHER_get_version [] (3) - get SSL_CIPHER properties +SSL_COMP_add_compression_method [] (3) - handle SSL/TLS integrated compression methods +SSL_CTX_add_client_CA [] (3) - set list of CAs sent to the client when requesting a client certificate +SSL_CTX_add_extra_chain_cert [] (3) - add certificate to chain +SSL_CTX_add_session [] (3) - manipulate session cache +SSL_CTX_callback_ctrl [] (3) - internal handling functions for SSL_CTX and SSL objects +SSL_CTX_check_private_key [] (3) - load certificate and key data +SSL_CTX_ctrl [] (3) - internal handling functions for SSL_CTX and SSL objects +SSL_CTX_flush_sessions [] (3) - remove expired sessions +SSL_CTX_free [] (3) - free an allocated SSL_CTX object +SSL_CTX_get_cert_store [] (3) - manipulate X509 certificate verification storage +SSL_CTX_get_client_CA_list [] (3) - get list of client CAs +SSL_CTX_get_client_cert_cb [] (3) - handle client certificate callback function +SSL_CTX_get_ex_data [] (3) - internal application specific data functions +SSL_CTX_get_ex_new_index [] (3) - internal application specific data functions +SSL_CTX_get_info_callback [] (3) - handle information callback for SSL connections +SSL_CTX_get_max_cert_list [] (3) - manipulate allowed for the peer's certificate chain +SSL_CTX_get_mode [] (3) - manipulate SSL engine mode +SSL_CTX_get_options [] (3) - manipulate SSL engine options +SSL_CTX_get_quiet_shutdown [] (3) - manipulate shutdown behaviour +SSL_CTX_get_session_cache_mode [] (3) - enable/disable session caching +SSL_CTX_get_timeout [] (3) - manipulate timeout values for session caching +SSL_CTX_get_verify_callback [] (3) - get currently set verification parameters +SSL_CTX_get_verify_depth [] (3) - get currently set verification parameters +SSL_CTX_get_verify_mode [] (3) - get currently set verification parameters +SSL_CTX_load_verify_locations [] (3) - set default locations for trusted CA certificates +SSL_CTX_need_tmp_rsa [] (3) - handle RSA keys for ephemeral key exchange +SSL_CTX_new [] (3) - create a new SSL_CTX object as framework for TLS/SSL enabled functions +SSL_CTX_remove_session [] (3) - manipulate session cache +SSL_CTX_sess_accept [] (3) - obtain session cache statistics +SSL_CTX_sess_accept_good [] (3) - obtain session cache statistics +SSL_CTX_sess_accept_renegotiate [] (3) - obtain session cache statistics +SSL_CTX_sess_cache_full [] (3) - obtain session cache statistics +SSL_CTX_sess_cb_hits [] (3) - obtain session cache statistics +SSL_CTX_sess_connect [] (3) - obtain session cache statistics +SSL_CTX_sess_connect_good [] (3) - obtain session cache statistics +SSL_CTX_sess_connect_renegotiate [] (3) - obtain session cache statistics +SSL_CTX_sess_get_cache_size [] (3) - manipulate session cache size +SSL_CTX_sess_get_get_cb [] (3) - provide callback functions for server side external session caching +SSL_CTX_sess_get_new_cb [] (3) - provide callback functions for server side external session caching +SSL_CTX_sess_get_remove_cb [] (3) - provide callback functions for server side external session caching +SSL_CTX_sess_hits [] (3) - obtain session cache statistics +SSL_CTX_sess_misses [] (3) - obtain session cache statistics +SSL_CTX_sess_number [] (3) - obtain session cache statistics +SSL_CTX_sess_set_cache_size [] (3) - manipulate session cache size +SSL_CTX_sess_set_get_cb [] (3) - provide callback functions for server side external session caching +SSL_CTX_sess_set_new_cb [] (3) - provide callback functions for server side external session caching +SSL_CTX_sess_set_remove_cb [] (3) - provide callback functions for server side external session caching +SSL_CTX_sess_timeouts [] (3) - obtain session cache statistics +SSL_CTX_sessions [] (3) - access internal session cache +SSL_CTX_set_cert_store [] (3) - manipulate X509 certificate verification storage +SSL_CTX_set_cert_verify_callback [] (3) - set peer certificate verification procedure +SSL_CTX_set_cipher_list [] (3) - choose list of available SSL_CIPHERs +SSL_CTX_set_client_CA_list [] (3) - set list of CAs sent to the client when requesting a client certificate +SSL_CTX_set_client_cert_cb [] (3) - handle client certificate callback function +SSL_CTX_set_default_passwd_cb [] (3) - set passwd callback for encrypted PEM file handling +SSL_CTX_set_default_passwd_cb_userdata [] (3) - set passwd callback for encrypted PEM file handling +SSL_CTX_set_ex_data [] (3) - internal application specific data functions +SSL_CTX_set_generate_session_id [] (3) - manipulate generation of SSL session IDs (server only) +SSL_CTX_set_info_callback [] (3) - handle information callback for SSL connections +SSL_CTX_set_max_cert_list [] (3) - manipulate allowed for the peer's certificate chain +SSL_CTX_set_mode [] (3) - manipulate SSL engine mode +SSL_CTX_set_msg_callback [] (3) - install callback for observing protocol messages +SSL_CTX_set_msg_callback_arg [] (3) - install callback for observing protocol messages +SSL_CTX_set_options [] (3) - manipulate SSL engine options +SSL_CTX_set_quiet_shutdown [] (3) - manipulate shutdown behaviour +SSL_CTX_set_session_cache_mode [] (3) - enable/disable session caching +SSL_CTX_set_session_id_context [] (3) - set context within which session can be reused (server side only) +SSL_CTX_set_ssl_version [] (3) - choose a new TLS/SSL method +SSL_CTX_set_timeout [] (3) - manipulate timeout values for session caching +SSL_CTX_set_tmp_dh [] (3) - handle DH keys for ephemeral key exchange +SSL_CTX_set_tmp_dh_callback [] (3) - handle DH keys for ephemeral key exchange +SSL_CTX_set_tmp_rsa [] (3) - handle RSA keys for ephemeral key exchange +SSL_CTX_set_tmp_rsa_callback [] (3) - handle RSA keys for ephemeral key exchange +SSL_CTX_set_verify [] (3) - set peer certificate verification parameters +SSL_CTX_set_verify_depth [] (3) - set peer certificate verification parameters +SSL_CTX_use_PrivateKey [] (3) - load certificate and key data +SSL_CTX_use_PrivateKey_ASN1 [] (3) - load certificate and key data +SSL_CTX_use_PrivateKey_file [] (3) - load certificate and key data +SSL_CTX_use_RSAPrivateKey [] (3) - load certificate and key data +SSL_CTX_use_RSAPrivateKey_ASN1 [] (3) - load certificate and key data +SSL_CTX_use_RSAPrivateKey_file [] (3) - load certificate and key data +SSL_CTX_use_certificate [] (3) - load certificate and key data +SSL_CTX_use_certificate_ASN1 [] (3) - load certificate and key data +SSL_CTX_use_certificate_chain_file [] (3) - load certificate and key data +SSL_CTX_use_certificate_file [] (3) - load certificate and key data +SSL_SESSION_free [] (3) - free an allocated SSL_SESSION structure +SSL_SESSION_get_ex_data [] (3) - internal application specific data functions +SSL_SESSION_get_ex_new_index [] (3) - internal application specific data functions +SSL_SESSION_get_time [] (3) - retrieve and manipulate session time and timeout settings +SSL_SESSION_get_timeout [] (3) - retrieve and manipulate session time and timeout settings +SSL_SESSION_set_ex_data [] (3) - internal application specific data functions +SSL_SESSION_set_time [] (3) - retrieve and manipulate session time and timeout settings +SSL_SESSION_set_timeout [] (3) - retrieve and manipulate session time and timeout settings +SSL_accept [] (3) - wait for a TLS/SSL client to initiate a TLS/SSL handshake +SSL_add_client_CA [] (3) - set list of CAs sent to the client when requesting a client certificate +SSL_add_session [] (3) - manipulate session cache +SSL_alert_desc_string [] (3) - get textual description of alert information +SSL_alert_desc_string_long [] (3) - get textual description of alert information +SSL_alert_type_string [] (3) - get textual description of alert information +SSL_alert_type_string_long [] (3) - get textual description of alert information +SSL_callback_ctrl [] (3) - internal handling functions for SSL_CTX and SSL objects +SSL_check_private_key [] (3) - load certificate and key data +SSL_clear [] (3) - reset SSL object to allow another connection +SSL_connect [] (3) - initiate the TLS/SSL handshake with an TLS/SSL server +SSL_ctrl [] (3) - internal handling functions for SSL_CTX and SSL objects +SSL_do_handshake [] (3) - perform a TLS/SSL handshake +SSL_flush_sessions [] (3) - remove expired sessions +SSL_free [] (3) - free an allocated SSL structure +SSL_get_SSL_CTX [] (3) - get the SSL_CTX from which an SSL is created +SSL_get_accept_state [] (3) - prepare SSL object to work in client or server mode +SSL_get_cipher [] (3) - get SSL_CIPHER of a connection +SSL_get_cipher_bits [] (3) - get SSL_CIPHER of a connection +SSL_get_cipher_list [] (3) - get list of available SSL_CIPHERs +SSL_get_cipher_name [] (3) - get SSL_CIPHER of a connection +SSL_get_cipher_version [] (3) - get SSL_CIPHER of a connection +SSL_get_ciphers [] (3) - get list of available SSL_CIPHERs +SSL_get_client_CA_list [] (3) - get list of client CAs +SSL_get_current_cipher [] (3) - get SSL_CIPHER of a connection +SSL_get_default_timeout [] (3) - get default session timeout value +SSL_get_error [] (3) - obtain result code for TLS/SSL I/O operation +SSL_get_ex_data [] (3) - internal application specific data functions +SSL_get_ex_data_X509_STORE_CTX_idx [] (3) - get ex_data index to access SSL structure from X509_STORE_CTX +SSL_get_ex_new_index [] (3) - internal application specific data functions +SSL_get_fd [] (3) - get file descriptor linked to an SSL object +SSL_get_info_callback [] (3) - handle information callback for SSL connections +SSL_get_max_cert_list, [] (3) - manipulate allowed for the peer's certificate chain +SSL_get_mode [] (3) - manipulate SSL engine mode +SSL_get_msg_callback_arg [] (3) - install callback for observing protocol messages +SSL_get_options [] (3) - manipulate SSL engine options +SSL_get_peer_cert_chain [] (3) - get the X509 certificate chain of the peer +SSL_get_peer_certificate [] (3) - get the X509 certificate of the peer +SSL_get_quiet_shutdown [] (3) - manipulate shutdown behaviour +SSL_get_rbio [] (3) - get BIO linked to an SSL object +SSL_get_session [] (3) - retrieve TLS/SSL session data +SSL_get_shutdown [] (3) - manipulate shutdown state of an SSL connection +SSL_get_ssl_method [] (3) - choose a new TLS/SSL method +SSL_get_verify_callback [] (3) - get currently set verification parameters +SSL_get_verify_depth [] (3) - get currently set verification parameters +SSL_get_verify_mode [] (3) - get currently set verification parameters +SSL_get_verify_result [] (3) - get result of peer certificate verification +SSL_get_version [] (3) - get the protocol version of a connection +SSL_has_matching_session_id [] (3) - manipulate generation of SSL session IDs (server only) +SSL_library_init [] (3) - initialize SSL library by registering algorithms +SSL_load_client_CA_file [] (3) - load certificate names from file +SSL_load_error_strings [] (3) - load and free error strings +SSL_need_tmp_rsa [] (3) - handle RSA keys for ephemeral key exchange +SSL_new [] (3) - create a new SSL structure for a connection +SSL_pending [] (3) - obtain number of readable bytes buffered in an SSL object +SSL_read [] (3) - read bytes from a TLS/SSL connection +SSL_remove_session [] (3) - manipulate session cache +SSL_rstate_string [] (3) - get textual description of state of an SSL object during read operation +SSL_rstate_string_long [] (3) - get textual description of state of an SSL object during read operation +SSL_session_reused [] (3) - query whether a reused session was negotiated during handshake +SSL_set_bio [] (3) - connect the SSL object with a BIO +SSL_set_cipher_list [] (3) - choose list of available SSL_CIPHERs +SSL_set_client_CA_list [] (3) - set list of CAs sent to the client when requesting a client certificate +SSL_set_connect_state [] (3) - prepare SSL object to work in client or server mode +SSL_set_ex_data [] (3) - internal application specific data functions +SSL_set_fd [] (3) - connect the SSL object with a file descriptor +SSL_set_generate_session_id [] (3) - manipulate generation of SSL session IDs (server only) +SSL_set_info_callback [] (3) - handle information callback for SSL connections +SSL_set_max_cert_list [] (3) - manipulate allowed for the peer's certificate chain +SSL_set_mode [] (3) - manipulate SSL engine mode +SSL_set_msg_callback [] (3) - install callback for observing protocol messages +SSL_set_options [] (3) - manipulate SSL engine options +SSL_set_quiet_shutdown [] (3) - manipulate shutdown behaviour +SSL_set_session [] (3) - set a TLS/SSL session to be used during TLS/SSL connect +SSL_set_session_id_context [] (3) - set context within which session can be reused (server side only) +SSL_set_shutdown [] (3) - manipulate shutdown state of an SSL connection +SSL_set_ssl_method [] (3) - choose a new TLS/SSL method +SSL_set_tmp_dh [] (3) - handle DH keys for ephemeral key exchange +SSL_set_tmp_dh_callback [] (3) - handle DH keys for ephemeral key exchange +SSL_set_tmp_rsa [] (3) - handle RSA keys for ephemeral key exchange +SSL_set_tmp_rsa_callback [] (3) - handle RSA keys for ephemeral key exchange +SSL_set_verify [] (3) - set peer certificate verification parameters +SSL_set_verify_depth [] (3) - set peer certificate verification parameters +SSL_set_verify_result [] (3) - override result of peer certificate verification +SSL_shutdown [] (3) - shut down a TLS/SSL connection +SSL_state_string [] (3) - get textual description of state of an SSL object +SSL_state_string_long [] (3) - get textual description of state of an SSL object +SSL_use_PrivateKey [] (3) - load certificate and key data +SSL_use_PrivateKey_ASN1 [] (3) - load certificate and key data +SSL_use_PrivateKey_file [] (3) - load certificate and key data +SSL_use_RSAPrivateKey [] (3) - load certificate and key data +SSL_use_RSAPrivateKey_ASN1 [] (3) - load certificate and key data +SSL_use_RSAPrivateKey_file [] (3) - load certificate and key data +SSL_use_certificate [] (3) - load certificate and key data +SSL_use_certificate_ASN1 [] (3) - load certificate and key data +SSL_use_certificate_file [] (3) - load certificate and key data +SSL_want [] (3) - obtain state information TLS/SSL I/O operation +SSL_want_nothing [] (3) - obtain state information TLS/SSL I/O operation +SSL_want_read [] (3) - obtain state information TLS/SSL I/O operation +SSL_want_write [] (3) - obtain state information TLS/SSL I/O operation +SSL_want_x509_lookup [] (3) - obtain state information TLS/SSL I/O operation +SSL_write [] (3) - write bytes to a TLS/SSL connection +SSLeay [] (3) - get OpenSSL version number +SSLeay_add_ssl_algorithms [] (3) - initialize SSL library by registering algorithms +SSLeay_version [] (3) - get OpenSSL version number +Safe Base [] (n) - A mechanism for creating and manipulating safe interpreters +Safe [] (3) - Compile and execute code in restricted compartments +Scalar::Util [] (3) - A selection of general-utility scalar subroutines +ScreenCount [] (3) - Display macros and functions +ScreenNumberOfCCC [] (3) - Color Conversion Context macros +ScreenOfDisplay [] (3) - Display macros and functions +ScreenWhitePointOfCCC [] (3) - Color Conversion Context macros +Search::Dict [] (3) - search for key in dictionary file +SelectSaver [] (3) - save and restore selected file handle +SelfLoader [] (3) - load functions only on demand +ServerVendor [] (3) - Display macros and functions +Seyon [] (1) - X11 Telecommunications Package +SoX [] (1) - Sound eXchange, the Swiss Army knife of audio manipulation +SoX [] (7) - Sound eXchange, the Swiss Army knife of audio manipulation +SoXI [] (1) - Sound eXchange Information, display sound file metadata +Socket [] (3) - load the C socket.h defines and structure manipulators +Storable [] (3) - persistence for Perl data structures +Switch [] (3) - A switch statement for Perl +Symbol [] (3) - manipulate Perl symbols and their names +Sys::Hostname [] (3) - Try every conceivable way to get hostname +Sys::Syslog [] (3) - Perl interface to the UNIX syslog(3) calls +TAILQ_ENTRY [] (3) - implementations of lists, tail queues, and circular queues +TAILQ_HEAD [] (3) - implementations of lists, tail queues, and circular queues +TAILQ_INIT [] (3) - implementations of lists, tail queues, and circular queues +TAILQ_INSERT_AFTER [] (3) - implementations of lists, tail queues, and circular queues +TAILQ_INSERT_HEAD [] (3) - implementations of lists, tail queues, and circular queues +TAILQ_INSERT_TAIL [] (3) - implementations of lists, tail queues, and circular queues +TAILQ_REMOVE [] (3) - implementations of lists, tail queues, and circular queues +TASKS [] (3) - Want to help? These things need doing.. +TCL_MEM_DEBUG [] (3) - Compile-time flag to enable Tcl memory debugging +TIFFCIELabToRGBInit [] (3) - color conversion routines +TIFFCIELabToXYZ [] (3) - color conversion routines +TIFFCheckTile [] (3) - tile-related utility routines +TIFFCheckpointDirectory [] (3) - write the current directory in an open TIFF file +TIFFClientOpen [] (3) - open a TIFF file for reading or writing +TIFFClose [] (3) - close a previously opened TIFF file +TIFFComputeStrip [] (3) - strip-related utility routines +TIFFComputeTile [] (3) - tile-related utility routines +TIFFCurrentDirectory [] (3) - query routines +TIFFCurrentRow [] (3) - query routines +TIFFCurrentStrip [] (3) - query routines +TIFFCurrentTile [] (3) - query routines +TIFFDataWidth [] (3) - Get the size of TIFF data types +TIFFDefaultStripSize [] (3) - strip-related utility routines +TIFFDefaultTileSize [] (3) - tile-related utility routines +TIFFError [] (3) - library error handling interface +TIFFFdOpen [] (3) - open a TIFF file for reading or writing +TIFFFileName [] (3) - query routines +TIFFFileno [] (3) - query routines +TIFFFindCODEC [] (3) - codec-related utility routines +TIFFFlush [] (3) - flush pending writes to an open TIFF file +TIFFFlushData [] (3) - flush pending writes to an open TIFF file +TIFFGetBitRevTable [] (3) - byte- and bit-swapping routines +TIFFGetField [] (3) - get the value(s) of a tag in an open TIFF file +TIFFGetMode [] (3) - query routines +TIFFGetVersion [] (3) - query routines +TIFFIsByteSwapped [] (3) - query routines +TIFFIsCODECConfigured [] (3) - codec-related utility routines +TIFFIsMSB2LSB [] (3) - query routines +TIFFIsTiled [] (3) - query routines +TIFFIsUpSampled [] (3) - query routines +TIFFLastDirectory [] (3) - query routines +TIFFNumberOfStrips [] (3) - strip-related utility routines +TIFFNumberOfTiles [] (3) - tile-related utility routines +TIFFOpen [] (3) - open a TIFF file for reading or writing +TIFFPrintDirectory [] (3) - print a description of a TIFF directory +TIFFRGBAImageBegin [] (3) - read and decode an image into a raster +TIFFRGBAImageEnd [] (3) - read and decode an image into a raster +TIFFRGBAImageGet [] (3) - read and decode an image into a raster +TIFFRGBAImageOK [] (3) - read and decode an image into a raster +TIFFRasterScanlineSize, [] (3) - return the size of various items associated with an open TIFF file +TIFFRawStripSize [] (3) - strip-related utility routines +TIFFReadBufferSetup [] (3) - I/O buffering control routines +TIFFReadDirectory [] (3) - get the contents of the next directory in an open TIFF file +TIFFReadEncodedStrip [] (3) - read and decode a strip of data from an open TIFF file +TIFFReadEncodedTile [] (3) - read and decode a tile of data from an open TIFF file +TIFFReadRGBAImage [] (3) - read and decode an image into a fixed - format raster +TIFFReadRGBAImageOriented [] (3) - read and decode an image into a fixed - format raster +TIFFReadRGBAStrip [] (3) - read and decode an image strip into a fixed-format raster +TIFFReadRGBATile [] (3) - read and decode an image tile into a fixed-format raster +TIFFReadRawStrip [] (3) - return the undecoded contents of a strip of data from an open TIFF file +TIFFReadRawTile [] (3) - return an undecoded tile of data from an open TIFF file +TIFFReadScanline [] (3) - read and decode a scanline of data from an open TIFF file +TIFFReadTile [] (3) - read and decode a tile of data from an open TIFF file +TIFFRegisterCODEC [] (3) - codec-related utility routines +TIFFReverseBits [] (3) - byte- and bit-swapping routines +TIFFRewriteDirectory [] (3) - write the current directory in an open TIFF file +TIFFScanlineSize [] (3) - return the size of various items associated with an open TIFF file +TIFFSetDirectory [] (3) - set the current directory for an open TIFF file +TIFFSetErrorHandler [] (3) - library error handling interface +TIFFSetField [] (3) - set the value(s) of a tag in a TIFF file open for writing +TIFFSetSubDirectory [] (3) - set the current directory for an open TIFF file +TIFFSetWarningHandler [] (3) - library warning interface +TIFFStripSize [] (3) - strip-related utility routines +TIFFSwabArrayOfLong [] (3) - byte- and bit-swapping routines +TIFFSwabArrayOfShort [] (3) - byte- and bit-swapping routines +TIFFSwabLong [] (3) - byte- and bit-swapping routines +TIFFSwabShort [] (3) - byte- and bit-swapping routines +TIFFTileRowSize [] (3) - tile-related utility routines +TIFFTileSize [] (3) - tile-related utility routines +TIFFUnRegisterCODEC [] (3) - codec-related utility routines +TIFFVGetField [] (3) - get the value(s) of a tag in an open TIFF file +TIFFVSetField [] (3) - set the value(s) of a tag in a TIFF file open for writing +TIFFVStripSize [] (3) - strip-related utility routines +TIFFVTileSize [] (3) - tile-related utility routines +TIFFWarning [] (3) - library warning interface +TIFFWriteBufferSetup [] (3) - I/O buffering control routines +TIFFWriteDirectory [] (3) - write the current directory in an open TIFF file +TIFFWriteRawStrip [] (3) - write a strip of raw data to an open TIFF file +TIFFWriteRawTile [] (3) - write a tile of raw data to an open TIFF file +TIFFWriteScanline [] (3) - write a scanline to an open TIFF file +TIFFWriteTile [] (3) - encode and write a tile of data to an open TIFF file +TIFFWritedEncodedStrip [] (3) - compress and write a strip of data to an open TIFF file +TIFFWritedEncodedTile [] (3) - compress and write a tile of data to an open TIFF file +TIFFXYZToRGB [] (3) - color conversion routines +TIFFYCbCrToRGBInit [] (3) - color conversion routines +TIFFYCbCrtoRGB [] (3) - color conversion routines +Tcl [] (n) - Tool Command Language +TclX [] (n) - Extended Tcl: Extended command set for Tcl +Tcl_Access [] (3) - check file permissions and other attributes +Tcl_AddErrorInfo [] (3) - retrieve or record information about errors and other return options +Tcl_AddObjErrorInfo [] (3) - retrieve or record information about errors and other return options +Tcl_AlertNotifier [] (3) - the event queue and notifier interfaces +Tcl_Alloc [] (3) - allocate or free heap memory +Tcl_AllocStatBuf [] (3) - procedures to interact with any filesystem +Tcl_AllowExceptions [] (3) - allow all exceptions in next script evaluation +Tcl_AppInit [] (3) - perform application-specific initialization +Tcl_AppendAllObjTypes [] (3) - manipulate Tcl object types +Tcl_AppendElement [] (3) - manipulate Tcl result +Tcl_AppendExportList [] (3) - manipulate namespaces +Tcl_AppendFormatToObj [] (3) - manipulate Tcl objects as strings +Tcl_AppendLimitedToObj [] (3) - manipulate Tcl objects as strings +Tcl_AppendObjToErrorInfo [] (3) - retrieve or record information about errors and other return options +Tcl_AppendObjToObj [] (3) - manipulate Tcl objects as strings +Tcl_AppendPrintfToObj [] (3) - manipulate Tcl objects as strings +Tcl_AppendResult [] (3) - manipulate Tcl result +Tcl_AppendResultVA [] (3) - manipulate Tcl result +Tcl_AppendStringsToObj [] (3) - manipulate Tcl objects as strings +Tcl_AppendStringsToObjVA [] (3) - manipulate Tcl objects as strings +Tcl_AppendToObj [] (3) - manipulate Tcl objects as strings +Tcl_AppendUnicodeToObj [] (3) - manipulate Tcl objects as strings +Tcl_AsyncCreate [] (3) - handle asynchronous events +Tcl_AsyncDelete [] (3) - handle asynchronous events +Tcl_AsyncInvoke [] (3) - handle asynchronous events +Tcl_AsyncMark [] (3) - handle asynchronous events +Tcl_AsyncReady [] (3) - handle asynchronous events +Tcl_AttemptAlloc [] (3) - allocate or free heap memory +Tcl_AttemptRealloc [] (3) - allocate or free heap memory +Tcl_AttemptSetObjLength [] (3) - manipulate Tcl objects as strings +Tcl_BackgroundError [] (3) - report Tcl error that occurred in background processing +Tcl_Backslash [] (3) - parse a backslash sequence +Tcl_BadChannelOption [] (3) - procedures for creating and manipulating channels +Tcl_CallWhenDeleted [] (3) - Arrange for callback when interpreter is deleted +Tcl_CancelIdleCall [] (3) - invoke a procedure when there are no pending events +Tcl_ChannelBlockModeProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelBuffered [] (3) - procedures for creating and manipulating channels +Tcl_ChannelClose2Proc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelCloseProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelFlushProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelGetHandleProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelGetOptionProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelHandlerProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelInputProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelName [] (3) - procedures for creating and manipulating channels +Tcl_ChannelOutputProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelSeekProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelSetOptionProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelThreadActionProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelTruncateProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelVersion [] (3) - procedures for creating and manipulating channels +Tcl_ChannelWatchProc [] (3) - procedures for creating and manipulating channels +Tcl_ChannelWideSeekProc [] (3) - procedures for creating and manipulating channels +Tcl_Chdir [] (3) - manipulate the current working directory +Tcl_ClearChannelHandlers [] (3) - procedures for creating and manipulating channels +Tcl_Close [] (3) - buffered I/O facilities using channels +Tcl_CommandComplete [] (3) - Check for unmatched braces in a Tcl command +Tcl_CommandTraceInfo [] (3) - monitor renames and deletes of a command +Tcl_Concat [] (3) - concatenate a collection of strings +Tcl_ConcatObj [] (3) - manipulate Tcl objects as strings +Tcl_ConditionFinalize [] (3) - Tcl thread support +Tcl_ConditionNotify [] (3) - Tcl thread support +Tcl_ConditionWait [] (3) - Tcl thread support +Tcl_ConvertCountedElement [] (3) - manipulate Tcl lists +Tcl_ConvertElement [] (3) - manipulate Tcl lists +Tcl_ConvertToType [] (3) - manipulate Tcl object types +Tcl_CreateAlias [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_CreateAliasObj [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_CreateChannel [] (3) - procedures for creating and manipulating channels +Tcl_CreateChannelHandler [] (3) - call a procedure when a channel becomes readable or writable +Tcl_CreateCloseHandler [] (3) - arrange for callbacks when channels are closed +Tcl_CreateCommand [] (3) - implement new commands in C +Tcl_CreateEncoding [] (3) - procedures for creating and using encodings +Tcl_CreateEnsemble [] (3) - manipulate ensemble commands +Tcl_CreateEventSource [] (3) - the event queue and notifier interfaces +Tcl_CreateExitHandler [] (3) - end the application or thread (and invoke exit handlers) +Tcl_CreateFileHandler [] (3) - associate procedure callbacks with files or devices (Unix only) +Tcl_CreateHashEntry [] (3) - procedures to manage hash tables +Tcl_CreateInterp [] (3) - create and delete Tcl command interpreters +Tcl_CreateMathFunc [] (3) - Define, query and enumerate math functions for expressions +Tcl_CreateNamespace [] (3) - manipulate namespaces +Tcl_CreateObjCommand [] (3) - implement new commands in C +Tcl_CreateObjTrace [] (3) - arrange for command execution to be traced +Tcl_CreateSlave [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_CreateThread [] (3) - Tcl thread support +Tcl_CreateThreadExitHandler [] (3) - end the application or thread (and invoke exit handlers) +Tcl_CreateTimerHandler [] (3) - call a procedure at a given time +Tcl_CreateTrace [] (3) - arrange for command execution to be traced +Tcl_CutChannel [] (3) - procedures for creating and manipulating channels +Tcl_DStringAppend [] (3) - manipulate dynamic strings +Tcl_DStringAppendElement [] (3) - manipulate dynamic strings +Tcl_DStringEndSublist [] (3) - manipulate dynamic strings +Tcl_DStringFree [] (3) - manipulate dynamic strings +Tcl_DStringGetResult [] (3) - manipulate dynamic strings +Tcl_DStringInit [] (3) - manipulate dynamic strings +Tcl_DStringLength [] (3) - manipulate dynamic strings +Tcl_DStringResult [] (3) - manipulate dynamic strings +Tcl_DStringSetLength [] (3) - manipulate dynamic strings +Tcl_DStringStartSublist [] (3) - manipulate dynamic strings +Tcl_DStringTrunc [] (3) - manipulate dynamic strings +Tcl_DStringValue [] (3) - manipulate dynamic strings +Tcl_DecrRefCount [] (3) - manipulate Tcl objects +Tcl_DeleteAssocData [] (3) - manage associations of string keys and user specified data with Tcl interpreters +Tcl_DeleteChannelHandler [] (3) - call a procedure when a channel becomes readable or writable +Tcl_DeleteCloseHandler [] (3) - arrange for callbacks when channels are closed +Tcl_DeleteCommand [] (3) - implement new commands in C +Tcl_DeleteCommandFromToken [] (3) - implement new commands in C +Tcl_DeleteEventSource [] (3) - the event queue and notifier interfaces +Tcl_DeleteEvents [] (3) - the event queue and notifier interfaces +Tcl_DeleteExitHandler [] (3) - end the application or thread (and invoke exit handlers) +Tcl_DeleteFileHandler [] (3) - associate procedure callbacks with files or devices (Unix only) +Tcl_DeleteHashEntry [] (3) - procedures to manage hash tables +Tcl_DeleteHashTable [] (3) - procedures to manage hash tables +Tcl_DeleteInterp [] (3) - create and delete Tcl command interpreters +Tcl_DeleteNamespace [] (3) - manipulate namespaces +Tcl_DeleteThreadExitHandler [] (3) - end the application or thread (and invoke exit handlers) +Tcl_DeleteTimerHandler [] (3) - call a procedure at a given time +Tcl_DeleteTrace [] (3) - arrange for command execution to be traced +Tcl_DetachChannel [] (3) - buffered I/O facilities using channels +Tcl_DetachPids [] (3) - manage child processes in background +Tcl_DictObjDone [] (3) - manipulate Tcl objects as dictionaries +Tcl_DictObjFirst [] (3) - manipulate Tcl objects as dictionaries +Tcl_DictObjGet [] (3) - manipulate Tcl objects as dictionaries +Tcl_DictObjNext [] (3) - manipulate Tcl objects as dictionaries +Tcl_DictObjPut [] (3) - manipulate Tcl objects as dictionaries +Tcl_DictObjPutKeyList [] (3) - manipulate Tcl objects as dictionaries +Tcl_DictObjRemove [] (3) - manipulate Tcl objects as dictionaries +Tcl_DictObjRemoveKeyList [] (3) - manipulate Tcl objects as dictionaries +Tcl_DictObjSize [] (3) - manipulate Tcl objects as dictionaries +Tcl_DiscardInterpState [] (3) - save and restore an interpreter's state +Tcl_DiscardResult [] (3) - save and restore an interpreter's state +Tcl_DoOneEvent [] (3) - wait for events and invoke event handlers +Tcl_DoWhenIdle [] (3) - invoke a procedure when there are no pending events +Tcl_DontCallWhenDeleted [] (3) - Arrange for callback when interpreter is deleted +Tcl_DumpActiveMemory [] (3) - Validated memory allocation interface +Tcl_DuplicateObj [] (3) - manipulate Tcl objects +Tcl_Eof [] (3) - buffered I/O facilities using channels +Tcl_ErrnoId [] (3) - manipulate errno to store and retrieve error codes +Tcl_ErrnoMsg [] (3) - manipulate errno to store and retrieve error codes +Tcl_Eval [] (3) - execute Tcl scripts +Tcl_EvalEx [] (3) - execute Tcl scripts +Tcl_EvalFile [] (3) - execute Tcl scripts +Tcl_EvalObjEx [] (3) - execute Tcl scripts +Tcl_EvalObjv [] (3) - execute Tcl scripts +Tcl_EvalTokens [] (3) - parse Tcl scripts and expressions +Tcl_EvalTokensStandard [] (3) - parse Tcl scripts and expressions +Tcl_EventuallyFree [] (3) - avoid freeing storage while it is being used +Tcl_Exit [] (3) - end the application or thread (and invoke exit handlers) +Tcl_ExitThread [] (3) - end the application or thread (and invoke exit handlers) +Tcl_Export [] (3) - manipulate namespaces +Tcl_ExposeCommand [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_ExprBoolean [] (3) - evaluate an expression +Tcl_ExprBooleanObj [] (3) - evaluate an expression +Tcl_ExprDouble [] (3) - evaluate an expression +Tcl_ExprDoubleObj [] (3) - evaluate an expression +Tcl_ExprLong [] (3) - evaluate an expression +Tcl_ExprLongObj [] (3) - evaluate an expression +Tcl_ExprObj [] (3) - evaluate an expression +Tcl_ExprString [] (3) - evaluate an expression +Tcl_ExternalToUtf [] (3) - procedures for creating and using encodings +Tcl_ExternalToUtfDString [] (3) - procedures for creating and using encodings +Tcl_FSAccess [] (3) - procedures to interact with any filesystem +Tcl_FSChdir [] (3) - procedures to interact with any filesystem +Tcl_FSConvertToPathType [] (3) - procedures to interact with any filesystem +Tcl_FSCopyDirectory [] (3) - procedures to interact with any filesystem +Tcl_FSCopyFile [] (3) - procedures to interact with any filesystem +Tcl_FSCreateDirectory [] (3) - procedures to interact with any filesystem +Tcl_FSData [] (3) - procedures to interact with any filesystem +Tcl_FSDeleteFile [] (3) - procedures to interact with any filesystem +Tcl_FSEqualPaths [] (3) - procedures to interact with any filesystem +Tcl_FSEvalFile [] (3) - procedures to interact with any filesystem +Tcl_FSEvalFileEx [] (3) - procedures to interact with any filesystem +Tcl_FSFileAttrStrings [] (3) - procedures to interact with any filesystem +Tcl_FSFileAttrsGet [] (3) - procedures to interact with any filesystem +Tcl_FSFileAttrsSet [] (3) - procedures to interact with any filesystem +Tcl_FSFileSystemInfo [] (3) - procedures to interact with any filesystem +Tcl_FSGetCwd [] (3) - procedures to interact with any filesystem +Tcl_FSGetFileSystemForPath [] (3) - procedures to interact with any filesystem +Tcl_FSGetInternalRep [] (3) - procedures to interact with any filesystem +Tcl_FSGetNativePath [] (3) - procedures to interact with any filesystem +Tcl_FSGetNormalizedPath [] (3) - procedures to interact with any filesystem +Tcl_FSGetPathType [] (3) - procedures to interact with any filesystem +Tcl_FSGetTranslatedPath [] (3) - procedures to interact with any filesystem +Tcl_FSGetTranslatedStringPath [] (3) - procedures to interact with any filesystem +Tcl_FSJoinPath [] (3) - procedures to interact with any filesystem +Tcl_FSJoinToPath [] (3) - procedures to interact with any filesystem +Tcl_FSLink [] (3) - procedures to interact with any filesystem +Tcl_FSListVolumes [] (3) - procedures to interact with any filesystem +Tcl_FSLoadFile [] (3) - procedures to interact with any filesystem +Tcl_FSLstat [] (3) - procedures to interact with any filesystem +Tcl_FSMatchInDirectory [] (3) - procedures to interact with any filesystem +Tcl_FSMountsChanged [] (3) - procedures to interact with any filesystem +Tcl_FSNewNativePath [] (3) - procedures to interact with any filesystem +Tcl_FSOpenFileChannel [] (3) - procedures to interact with any filesystem +Tcl_FSPathSeparator [] (3) - procedures to interact with any filesystem +Tcl_FSRegister [] (3) - procedures to interact with any filesystem +Tcl_FSRemoveDirectory [] (3) - procedures to interact with any filesystem +Tcl_FSRenameFile [] (3) - procedures to interact with any filesystem +Tcl_FSSplitPath [] (3) - procedures to interact with any filesystem +Tcl_FSStat [] (3) - procedures to interact with any filesystem +Tcl_FSUnregister [] (3) - procedures to interact with any filesystem +Tcl_FSUtime [] (3) - procedures to interact with any filesystem +Tcl_Finalize [] (3) - end the application or thread (and invoke exit handlers) +Tcl_FinalizeNotifier [] (3) - the event queue and notifier interfaces +Tcl_FinalizeThread [] (3) - end the application or thread (and invoke exit handlers) +Tcl_FindCommand [] (3) - manipulate namespaces +Tcl_FindEnsemble [] (3) - manipulate ensemble commands +Tcl_FindExecutable [] (3) - identify or return the name of the binary file containing the application +Tcl_FindHashEntry [] (3) - procedures to manage hash tables +Tcl_FindNamespace [] (3) - manipulate namespaces +Tcl_FirstHashEntry [] (3) - procedures to manage hash tables +Tcl_Flush [] (3) - buffered I/O facilities using channels +Tcl_ForgetImport [] (3) - manipulate namespaces +Tcl_Format [] (3) - manipulate Tcl objects as strings +Tcl_Free [] (3) - allocate or free heap memory +Tcl_FreeEncoding [] (3) - procedures for creating and using encodings +Tcl_FreeParse [] (3) - parse Tcl scripts and expressions +Tcl_FreeResult [] (3) - manipulate Tcl result +Tcl_GetAlias [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_GetAliasObj [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_GetAssocData [] (3) - manage associations of string keys and user specified data with Tcl interpreters +Tcl_GetBignumFromObj [] (3) - manipulate Tcl objects as integer values +Tcl_GetBoolean [] (3) - convert from string to integer, double, or boolean +Tcl_GetBooleanFromObj [] (3) - store/retrieve boolean value in a Tcl_Obj +Tcl_GetByteArrayFromObj [] (3) - manipulate Tcl objects as a arrays of bytes +Tcl_GetChannel [] (3) - buffered I/O facilities using channels +Tcl_GetChannelBufferSize [] (3) - procedures for creating and manipulating channels +Tcl_GetChannelError [] (3) - functions to create/intercept Tcl errors by channel drivers +Tcl_GetChannelErrorInterp [] (3) - functions to create/intercept Tcl errors by channel drivers +Tcl_GetChannelHandle [] (3) - procedures for creating and manipulating channels +Tcl_GetChannelInstanceData [] (3) - procedures for creating and manipulating channels +Tcl_GetChannelMode [] (3) - procedures for creating and manipulating channels +Tcl_GetChannelName [] (3) - procedures for creating and manipulating channels +Tcl_GetChannelNames [] (3) - buffered I/O facilities using channels +Tcl_GetChannelNamesEx [] (3) - buffered I/O facilities using channels +Tcl_GetChannelOption [] (3) - buffered I/O facilities using channels +Tcl_GetChannelThread [] (3) - procedures for creating and manipulating channels +Tcl_GetChannelType [] (3) - procedures for creating and manipulating channels +Tcl_GetCharLength [] (3) - manipulate Tcl objects as strings +Tcl_GetCommandFromObj [] (3) - implement new commands in C +Tcl_GetCommandFullName [] (3) - implement new commands in C +Tcl_GetCommandInfo [] (3) - implement new commands in C +Tcl_GetCommandInfoFromToken [] (3) - implement new commands in C +Tcl_GetCommandName [] (3) - implement new commands in C +Tcl_GetCurrentNamespace [] (3) - manipulate namespaces +Tcl_GetCurrentThread [] (3) - the event queue and notifier interfaces +Tcl_GetCwd [] (3) - manipulate the current working directory +Tcl_GetDefaultEncodingDir [] (3) - procedures for creating and using encodings +Tcl_GetDouble [] (3) - convert from string to integer, double, or boolean +Tcl_GetDoubleFromObj [] (3) - manipulate Tcl objects as floating-point values +Tcl_GetEncoding [] (3) - procedures for creating and using encodings +Tcl_GetEncodingFromObj [] (3) - procedures for creating and using encodings +Tcl_GetEncodingName [] (3) - procedures for creating and using encodings +Tcl_GetEncodingNameFromEnvironment [] (3) - procedures for creating and using encodings +Tcl_GetEncodingNames [] (3) - procedures for creating and using encodings +Tcl_GetEncodingSearchPath [] (3) - procedures for creating and using encodings +Tcl_GetEnsembleFlags [] (3) - manipulate ensemble commands +Tcl_GetEnsembleMappingDict [] (3) - manipulate ensemble commands +Tcl_GetEnsembleNamespace [] (3) - manipulate ensemble commands +Tcl_GetEnsembleSubcommandList [] (3) - manipulate ensemble commands +Tcl_GetEnsembleUnknownHandler [] (3) - manipulate ensemble commands +Tcl_GetErrno [] (3) - manipulate errno to store and retrieve error codes +Tcl_GetGlobalNamespace [] (3) - manipulate namespaces +Tcl_GetHashKey [] (3) - procedures to manage hash tables +Tcl_GetHashValue [] (3) - procedures to manage hash tables +Tcl_GetHostName [] (3) - get the name of the local host +Tcl_GetIndexFromObj [] (3) - lookup string in table of keywords +Tcl_GetIndexFromObjStruct [] (3) - lookup string in table of keywords +Tcl_GetInt [] (3) - convert from string to integer, double, or boolean +Tcl_GetIntFromObj [] (3) - manipulate Tcl objects as integer values +Tcl_GetInterpPath [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_GetLongFromObj [] (3) - manipulate Tcl objects as integer values +Tcl_GetMaster [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_GetMathFuncInfo [] (3) - Define, query and enumerate math functions for expressions +Tcl_GetNameOfExecutable [] (3) - identify or return the name of the binary file containing the application +Tcl_GetNamespaceUnknownHandler [] (3) - manipulate namespaces +Tcl_GetObjResult [] (3) - manipulate Tcl result +Tcl_GetObjType [] (3) - manipulate Tcl object types +Tcl_GetOpenFile [] (3) - Return a FILE* for a channel registered in the given interpreter (Unix only) +Tcl_GetPathType [] (3) - manipulate platform-dependent file paths +Tcl_GetRange [] (3) - manipulate Tcl objects as strings +Tcl_GetRegExpFromObj [] (3) - Pattern matching with regular expressions +Tcl_GetReturnOptions [] (3) - retrieve or record information about errors and other return options +Tcl_GetServiceMode [] (3) - the event queue and notifier interfaces +Tcl_GetSlave [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_GetStackedChannel [] (3) - manipulate stacked I/O channels +Tcl_GetStdChannel [] (3) - procedures for retrieving and replacing the standard channels +Tcl_GetString [] (3) - manipulate Tcl objects as strings +Tcl_GetStringFromObj [] (3) - manipulate Tcl objects as strings +Tcl_GetStringResult [] (3) - manipulate Tcl result +Tcl_GetThreadData [] (3) - Tcl thread support +Tcl_GetTime [] (3) - get date and time +Tcl_GetTopChannel [] (3) - manipulate stacked I/O channels +Tcl_GetUniChar [] (3) - manipulate Tcl objects as strings +Tcl_GetUnicode [] (3) - manipulate Tcl objects as strings +Tcl_GetUnicodeFromObj [] (3) - manipulate Tcl objects as strings +Tcl_GetVar [] (3) - manipulate Tcl variables +Tcl_GetVar2 [] (3) - manipulate Tcl variables +Tcl_GetVar2Ex [] (3) - manipulate Tcl variables +Tcl_GetVersion [] (3) - get the version of the library at runtime +Tcl_GetWideIntFromObj [] (3) - manipulate Tcl objects as integer values +Tcl_Gets [] (3) - buffered I/O facilities using channels +Tcl_GetsObj [] (3) - buffered I/O facilities using channels +Tcl_GlobalEval [] (3) - execute Tcl scripts +Tcl_GlobalEvalObj [] (3) - execute Tcl scripts +Tcl_HashStats [] (3) - procedures to manage hash tables +Tcl_HideCommand [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_Import [] (3) - manipulate namespaces +Tcl_IncrRefCount [] (3) - manipulate Tcl objects +Tcl_Init [] (3) - find and source initialization script +Tcl_InitCustomHashTable [] (3) - procedures to manage hash tables +Tcl_InitHashTable [] (3) - procedures to manage hash tables +Tcl_InitMemory [] (3) - Validated memory allocation interface +Tcl_InitNotifier [] (3) - the event queue and notifier interfaces +Tcl_InitObjHashTable [] (3) - procedures to manage hash tables +Tcl_InitStubs [] (3) - initialize the Tcl stubs mechanism +Tcl_InputBlocked [] (3) - buffered I/O facilities using channels +Tcl_InputBuffered [] (3) - buffered I/O facilities using channels +Tcl_Interp [] (3) - client-visible fields of interpreter structures +Tcl_InterpDeleted [] (3) - create and delete Tcl command interpreters +Tcl_InvalidateStringRep [] (3) - manipulate Tcl objects +Tcl_IsChannelExisting [] (3) - procedures for creating and manipulating channels +Tcl_IsChannelRegistered [] (3) - procedures for creating and manipulating channels +Tcl_IsChannelShared [] (3) - procedures for creating and manipulating channels +Tcl_IsEnsemble [] (3) - manipulate ensemble commands +Tcl_IsSafe [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_IsShared [] (3) - manipulate Tcl objects +Tcl_IsStandardChannel [] (3) - buffered I/O facilities using channels +Tcl_JoinPath [] (3) - manipulate platform-dependent file paths +Tcl_JoinThread [] (3) - Tcl thread support +Tcl_LimitAddHandler [] (3) - manage and check resource limits on interpreters +Tcl_LimitCheck [] (3) - manage and check resource limits on interpreters +Tcl_LimitExceeded [] (3) - manage and check resource limits on interpreters +Tcl_LimitGetCommands [] (3) - manage and check resource limits on interpreters +Tcl_LimitGetGranularity [] (3) - manage and check resource limits on interpreters +Tcl_LimitGetTime [] (3) - manage and check resource limits on interpreters +Tcl_LimitReady [] (3) - manage and check resource limits on interpreters +Tcl_LimitRemoveHandler [] (3) - manage and check resource limits on interpreters +Tcl_LimitSetCommands [] (3) - manage and check resource limits on interpreters +Tcl_LimitSetGranularity [] (3) - manage and check resource limits on interpreters +Tcl_LimitSetTime [] (3) - manage and check resource limits on interpreters +Tcl_LimitTypeEnabled [] (3) - manage and check resource limits on interpreters +Tcl_LimitTypeExceeded [] (3) - manage and check resource limits on interpreters +Tcl_LimitTypeReset [] (3) - manage and check resource limits on interpreters +Tcl_LimitTypeSet [] (3) - manage and check resource limits on interpreters +Tcl_LinkVar [] (3) - link Tcl variable to C variable +Tcl_ListMathFuncs [] (3) - Define, query and enumerate math functions for expressions +Tcl_ListObjAppendElement [] (3) - manipulate Tcl objects as lists +Tcl_ListObjAppendList [] (3) - manipulate Tcl objects as lists +Tcl_ListObjGetElements [] (3) - manipulate Tcl objects as lists +Tcl_ListObjIndex [] (3) - manipulate Tcl objects as lists +Tcl_ListObjLength [] (3) - manipulate Tcl objects as lists +Tcl_ListObjReplace [] (3) - manipulate Tcl objects as lists +Tcl_LogCommandInfo [] (3) - retrieve or record information about errors and other return options +Tcl_Main [] (3) - main program and event loop definition for Tcl-based applications +Tcl_MakeFileChannel [] (3) - buffered I/O facilities using channels +Tcl_MakeSafe [] (3) - manage multiple Tcl interpreters, aliases and hidden commands +Tcl_MakeTcpClientChannel [] (3) - procedures to open channels using TCP sockets +Tcl_Merge [] (3) - manipulate Tcl lists +Tcl_MutexFinalize [] (3) - Tcl thread support +Tcl_MutexLock [] (3) - Tcl thread support +Tcl_MutexUnlock [] (3) - Tcl thread support +Tcl_NewBignumObj [] (3) - manipulate Tcl objects as integer values +Tcl_NewBooleanObj [] (3) - store/retrieve boolean value in a Tcl_Obj +Tcl_NewByteArrayObj [] (3) - manipulate Tcl objects as a arrays of bytes +Tcl_NewDictObj [] (3) - manipulate Tcl objects as dictionaries +Tcl_NewDoubleObj [] (3) - manipulate Tcl objects as floating-point values +Tcl_NewIntObj [] (3) - manipulate Tcl objects as integer values +Tcl_NewListObj [] (3) - manipulate Tcl objects as lists +Tcl_NewLongObj [] (3) - manipulate Tcl objects as integer values +Tcl_NewObj [] (3) - manipulate Tcl objects +Tcl_NewStringObj [] (3) - manipulate Tcl objects as strings +Tcl_NewUnicodeObj [] (3) - manipulate Tcl objects as strings +Tcl_NewWideIntObj [] (3) - manipulate Tcl objects as integer values +Tcl_NextHashEntry [] (3) - procedures to manage hash tables +Tcl_NotifyChannel [] (3) - procedures for creating and manipulating channels +Tcl_NumUtfChars [] (3) - routines for manipulating UTF-8 strings +Tcl_ObjGetVar2 [] (3) - manipulate Tcl variables +Tcl_ObjPrintf [] (3) - manipulate Tcl objects as strings +Tcl_ObjSetVar2 [] (3) - manipulate Tcl variables +Tcl_OpenCommandChannel [] (3) - buffered I/O facilities using channels +Tcl_OpenFileChannel [] (3) - buffered I/O facilities using channels +Tcl_OpenTcpClient [] (3) - procedures to open channels using TCP sockets +Tcl_OpenTcpServer [] (3) - procedures to open channels using TCP sockets +Tcl_OutputBuffered [] (3) - buffered I/O facilities using channels +Tcl_Panic [] (3) - report fatal error and abort +Tcl_PanicVA [] (3) - report fatal error and abort +Tcl_ParseBraces [] (3) - parse Tcl scripts and expressions +Tcl_ParseCommand [] (3) - parse Tcl scripts and expressions +Tcl_ParseExpr [] (3) - parse Tcl scripts and expressions +Tcl_ParseQuotedString [] (3) - parse Tcl scripts and expressions +Tcl_ParseVar [] (3) - parse Tcl scripts and expressions +Tcl_ParseVarName [] (3) - parse Tcl scripts and expressions +Tcl_PkgPresent [] (3) - package version control +Tcl_PkgPresentEx [] (3) - package version control +Tcl_PkgProvide [] (3) - package version control +Tcl_PkgProvideEx [] (3) - package version control +Tcl_PkgRequire [] (3) - package version control +Tcl_PkgRequireEx [] (3) - package version control +Tcl_PkgRequireProc [] (3) - package version control +Tcl_PosixError [] (3) - retrieve or record information about errors and other return options +Tcl_Preserve [] (3) - avoid freeing storage while it is being used +Tcl_PrintDouble [] (3) - Convert floating value to string +Tcl_PutEnv [] (3) - procedures to manipulate the environment +Tcl_QueryTimeProc [] (3) - get date and time +Tcl_QueueEvent [] (3) - the event queue and notifier interfaces +Tcl_Read [] (3) - buffered I/O facilities using channels +Tcl_ReadChars [] (3) - buffered I/O facilities using channels +Tcl_ReadRaw [] (3) - buffered I/O facilities using channels +Tcl_Realloc [] (3) - allocate or free heap memory +Tcl_ReapDetachedProcs [] (3) - manage child processes in background +Tcl_RecordAndEval [] (3) - save command on history list before evaluating +Tcl_RecordAndEvalObj [] (3) - save command on history list before evaluating +Tcl_RegExpCompile [] (3) - Pattern matching with regular expressions +Tcl_RegExpExec [] (3) - Pattern matching with regular expressions +Tcl_RegExpExecObj [] (3) - Pattern matching with regular expressions +Tcl_RegExpGetInfo [] (3) - Pattern matching with regular expressions +Tcl_RegExpMatch [] (3) - Pattern matching with regular expressions +Tcl_RegExpMatchObj [] (3) - Pattern matching with regular expressions +Tcl_RegExpRange [] (3) - Pattern matching with regular expressions +Tcl_RegisterChannel [] (3) - buffered I/O facilities using channels +Tcl_RegisterConfig [] (3) - procedures to register embedded configuration information +Tcl_RegisterObjType [] (3) - manipulate Tcl object types +Tcl_Release [] (3) - avoid freeing storage while it is being used +Tcl_ResetResult [] (3) - manipulate Tcl result +Tcl_RestoreInterpState [] (3) - save and restore an interpreter's state +Tcl_RestoreResult [] (3) - save and restore an interpreter's state +Tcl_SaveInterpState [] (3) - save and restore an interpreter's state +Tcl_SaveResult [] (3) - save and restore an interpreter's state +Tcl_ScanCountedElement [] (3) - manipulate Tcl lists +Tcl_ScanElement [] (3) - manipulate Tcl lists +Tcl_Seek [] (3) - buffered I/O facilities using channels +Tcl_ServiceAll [] (3) - the event queue and notifier interfaces +Tcl_ServiceEvent [] (3) - the event queue and notifier interfaces +Tcl_SetAssocData [] (3) - manage associations of string keys and user specified data with Tcl interpreters +Tcl_SetBignumObj [] (3) - manipulate Tcl objects as integer values +Tcl_SetBooleanObj [] (3) - store/retrieve boolean value in a Tcl_Obj +Tcl_SetByteArrayLength [] (3) - manipulate Tcl objects as a arrays of bytes +Tcl_SetByteArrayObj [] (3) - manipulate Tcl objects as a arrays of bytes +Tcl_SetChannelBufferSize [] (3) - procedures for creating and manipulating channels +Tcl_SetChannelError [] (3) - functions to create/intercept Tcl errors by channel drivers +Tcl_SetChannelErrorInterp [] (3) - functions to create/intercept Tcl errors by channel drivers +Tcl_SetChannelOption [] (3) - buffered I/O facilities using channels +Tcl_SetCommandInfo [] (3) - implement new commands in C +Tcl_SetCommandInfoFromToken [] (3) - implement new commands in C +Tcl_SetDefaultEncodingDir [] (3) - procedures for creating and using encodings +Tcl_SetDoubleObj [] (3) - manipulate Tcl objects as floating-point values +Tcl_SetEncodingSearchPath [] (3) - procedures for creating and using encodings +Tcl_SetEnsembleFlags [] (3) - manipulate ensemble commands +Tcl_SetEnsembleMappingDict [] (3) - manipulate ensemble commands +Tcl_SetEnsembleSubcommandList [] (3) - manipulate ensemble commands +Tcl_SetEnsembleUnknownHandler [] (3) - manipulate ensemble commands +Tcl_SetErrno [] (3) - manipulate errno to store and retrieve error codes +Tcl_SetErrorCode [] (3) - retrieve or record information about errors and other return options +Tcl_SetErrorCodeVA [] (3) - retrieve or record information about errors and other return options +Tcl_SetExitProc [] (3) - end the application or thread (and invoke exit handlers) +Tcl_SetHashValue [] (3) - procedures to manage hash tables +Tcl_SetIntObj [] (3) - manipulate Tcl objects as integer values +Tcl_SetListObj [] (3) - manipulate Tcl objects as lists +Tcl_SetLongObj [] (3) - manipulate Tcl objects as integer values +Tcl_SetMainLoop [] (3) - main program and event loop definition for Tcl-based applications +Tcl_SetMaxBlockTime [] (3) - the event queue and notifier interfaces +Tcl_SetNamespaceUnknownHandler [] (3) - manipulate namespaces +Tcl_SetObjErrorCode [] (3) - retrieve or record information about errors and other return options +Tcl_SetObjLength [] (3) - manipulate Tcl objects as strings +Tcl_SetObjResult [] (3) - manipulate Tcl result +Tcl_SetPanicProc [] (3) - report fatal error and abort +Tcl_SetRecursionLimit [] (3) - set maximum allowable nesting depth in interpreter +Tcl_SetResult [] (3) - manipulate Tcl result +Tcl_SetReturnOptions [] (3) - retrieve or record information about errors and other return options +Tcl_SetServiceMode [] (3) - the event queue and notifier interfaces +Tcl_SetStdChannel [] (3) - procedures for retrieving and replacing the standard channels +Tcl_SetStringObj [] (3) - manipulate Tcl objects as strings +Tcl_SetSystemEncoding [] (3) - procedures for creating and using encodings +Tcl_SetTimeProc [] (3) - get date and time +Tcl_SetTimer [] (3) - the event queue and notifier interfaces +Tcl_SetUnicodeObj [] (3) - manipulate Tcl objects as strings +Tcl_SetVar [] (3) - manipulate Tcl variables +Tcl_SetVar2 [] (3) - manipulate Tcl variables +Tcl_SetVar2Ex [] (3) - manipulate Tcl variables +Tcl_SetWideIntObj [] (3) - manipulate Tcl objects as integer values +Tcl_SignalId [] (3) - Convert signal codes +Tcl_SignalMsg [] (3) - Convert signal codes +Tcl_Sleep [] (3) - delay execution for a given number of milliseconds +Tcl_SourceRCFile [] (3) - source the Tcl rc file +Tcl_SpliceChannel [] (3) - procedures for creating and manipulating channels +Tcl_SplitList [] (3) - manipulate Tcl lists +Tcl_SplitPath [] (3) - manipulate platform-dependent file paths +Tcl_StackChannel [] (3) - manipulate stacked I/O channels +Tcl_StandardChannels [] (3) - How the Tcl library deals with the standard channels +Tcl_Stat [] (3) - check file permissions and other attributes +Tcl_StaticPackage [] (3) - make a statically linked package available via the 'load' command +Tcl_StringCaseMatch [] (3) - test whether a string matches a pattern +Tcl_StringMatch [] (3) - test whether a string matches a pattern +Tcl_SubstObj [] (3) - perform substitutions on Tcl objects +Tcl_TakeBignumFromObj [] (3) - manipulate Tcl objects as integer values +Tcl_Tell [] (3) - buffered I/O facilities using channels +Tcl_ThreadAlert [] (3) - the event queue and notifier interfaces +Tcl_ThreadQueueEvent [] (3) - the event queue and notifier interfaces +Tcl_TraceCommand [] (3) - monitor renames and deletes of a command +Tcl_TraceVar [] (3) - monitor accesses to a variable +Tcl_TraceVar2 [] (3) - monitor accesses to a variable +Tcl_TranslateFileName [] (3) - convert file name to native form and replace tilde with home directory +Tcl_TruncateChannel [] (3) - buffered I/O facilities using channels +Tcl_Ungets [] (3) - buffered I/O facilities using channels +Tcl_UniChar [] (3) - routines for manipulating UTF-8 strings +Tcl_UniCharAtIndex [] (3) - routines for manipulating UTF-8 strings +Tcl_UniCharCaseMatch [] (3) - routines for manipulating UTF-8 strings +Tcl_UniCharIsAlnum [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsAlpha [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsControl [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsDigit [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsGraph [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsLower [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsPrint [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsPunct [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsSpace [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsUpper [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharIsWordChar [] (3) - routines for classification of Tcl_UniChar characters +Tcl_UniCharLen [] (3) - routines for manipulating UTF-8 strings +Tcl_UniCharNcasecmp [] (3) - routines for manipulating UTF-8 strings +Tcl_UniCharNcmp [] (3) - routines for manipulating UTF-8 strings +Tcl_UniCharToLower [] (3) - routines for manipulating the case of Unicode characters and UTF-8 strings +Tcl_UniCharToTitle [] (3) - routines for manipulating the case of Unicode characters and UTF-8 strings +Tcl_UniCharToUpper [] (3) - routines for manipulating the case of Unicode characters and UTF-8 strings +Tcl_UniCharToUtf [] (3) - routines for manipulating UTF-8 strings +Tcl_UniCharToUtfDString [] (3) - routines for manipulating UTF-8 strings +Tcl_UnlinkVar [] (3) - link Tcl variable to C variable +Tcl_UnregisterChannel [] (3) - buffered I/O facilities using channels +Tcl_UnsetVar [] (3) - manipulate Tcl variables +Tcl_UnsetVar2 [] (3) - manipulate Tcl variables +Tcl_UnstackChannel [] (3) - manipulate stacked I/O channels +Tcl_UntraceCommand [] (3) - monitor renames and deletes of a command +Tcl_UntraceVar [] (3) - monitor accesses to a variable +Tcl_UntraceVar2 [] (3) - monitor accesses to a variable +Tcl_UpVar [] (3) - link one variable to another +Tcl_UpVar2 [] (3) - link one variable to another +Tcl_UpdateLinkedVar [] (3) - link Tcl variable to C variable +Tcl_UtfAtIndex [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfBackslash [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfCharComplete [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfFindFirst [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfFindLast [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfNext [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfPrev [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfToExternal [] (3) - procedures for creating and using encodings +Tcl_UtfToExternalDString [] (3) - procedures for creating and using encodings +Tcl_UtfToLower [] (3) - routines for manipulating the case of Unicode characters and UTF-8 strings +Tcl_UtfToTitle [] (3) - routines for manipulating the case of Unicode characters and UTF-8 strings +Tcl_UtfToUniChar [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfToUniCharDString [] (3) - routines for manipulating UTF-8 strings +Tcl_UtfToUpper [] (3) - routines for manipulating the case of Unicode characters and UTF-8 strings +Tcl_ValidateAllMemory [] (3) - Validated memory allocation interface +Tcl_VarEval [] (3) - execute Tcl scripts +Tcl_VarEvalVA [] (3) - execute Tcl scripts +Tcl_VarTraceInfo [] (3) - monitor accesses to a variable +Tcl_VarTraceInfo2 [] (3) - monitor accesses to a variable +Tcl_WaitForEvent [] (3) - the event queue and notifier interfaces +Tcl_WaitPid [] (3) - manage child processes in background +Tcl_WinTCharToUtf [] (3) - procedures for creating and using encodings +Tcl_WinUtfToTChar [] (3) - procedures for creating and using encodings +Tcl_Write [] (3) - buffered I/O facilities using channels +Tcl_WriteChars [] (3) - buffered I/O facilities using channels +Tcl_WriteObj [] (3) - buffered I/O facilities using channels +Tcl_WriteRaw [] (3) - buffered I/O facilities using channels +Tcl_WrongNumArgs [] (3) - generate standard error message for wrong number of arguments +Term::ANSIColor [] (3) - Color screen output using ANSI escape sequences +Term::Cap [] (3) - Perl termcap interface +Term::Complete [] (3) - Perl word completion module +Term::ReadLine [] (3) - Perl interface to various readline packages. If no real package is found, substitutes stubs instead of basic functions +Term::UI [] (3) - Term::ReadLine UI made easy +Terminal (1) - A Terminal emulator for X +Terminal [] (1) - A Terminal emulator for X +Test [] (3) - provides a simple framework for writing test scripts +Test::Builder [] (3) - Backend for building test libraries +Test::Builder::Module [] (3) - Base class for test modules +Test::Builder::Tester [] (3) - test testsuites that have been built with Test::Builder +Test::Builder::Tester::Color [] (3) - turn on colour in Test::Builder::Tester +Test::Harness [] (3) - Run Perl standard test scripts with statistics +Test::Harness::Assert [] (3) - simple assert +Test::Harness::Iterator [] (3) - Internal Test::Harness Iterator +Test::Harness::Point [] (3) - object for tracking a single test point +Test::Harness::Results [] (3) - object for tracking results from a single test file +Test::Harness::Straps [] (3) - detailed analysis of test results +Test::Harness::TAP [] (3) - Documentation for the TAP format +Test::Harness::Util [] (3) - Utility functions for Test::Harness::* +Test::More [] (3) - yet another framework for writing test scripts +Test::Simple [] (3) - Basic utilities for writing tests +Test::Tutorial [] (3) - A tutorial about writing really basic tests +Text::Balanced [] (3) - Extract delimited text sequences from strings +Text::ParseWords [] (3) - parse text into an array of tokens or array of arrays +Text::Soundex [] (3) - Implementation of the soundex algorithm +Text::Tabs [] (3) - - expand and unexpand tabs per the unix expand(1) and unexpand(1) +Text::Wrap [] (3) - line wrapping to form simple paragraphs +The Net [] (3) - SNMP agent - The snmp agent responds to SNMP queries from management stations +The Net [] (3) - SNMP library - +Thread [] (3) - Manipulate threads in Perl (for old code only) +Thread::Queue [] (3) - thread-safe queues +Thread::Semaphore [] (3) - thread-safe semaphores +Thunar (1) - File Manager for the Xfce Desktop Environment +Thunar [] (1) - File Manager for the Xfce Desktop Environment +Tie::Array [] (3) - base class for tied arrays +Tie::ExtraHash [] (3) - base class definitions for tied hashes +Tie::File [] (3) - Access the lines of a disk file via a Perl array +Tie::Handle [] (3) - base class definitions for tied handles +Tie::Hash [] (3) - base class definitions for tied hashes +Tie::Hash::NamedCapture [] (3) - Named regexp capture buffers +Tie::Memoize [] (3) - add data to hash when needed +Tie::RefHash [] (3) - use references as hash keys +Tie::Scalar [] (3) - base class definitions for tied scalars +Tie::StdHash [] (3) - base class definitions for tied hashes +Tie::StdScalar [] (3) - base class definitions for tied scalars +Tie::SubstrHash [] (3) - Fixed-table-size, fixed-key-length hashing +Tim Bunce [] (3) - 12th November 2004 +Time::HiRes [] (3) - High resolution alarm, sleep, gettimeofday, interval timers +Time::Local [] (3) - efficiently compute time from local and GMT time +Time::Piece [] (3) - Object Oriented time objects +Time::Seconds [] (3) - a simple API to convert seconds to other date values +Time::gmtime [] (3) - by-name interface to Perl's built-in gmtime() function +Time::localtime [] (3) - by-name interface to Perl's built-in localtime() function +Time::tm [] (3) - internal object used by Time::gmtime and Time::localtime +TixIntro [] (n) - Introduction to the Tix library +Tk_3DBorderColor [] (3) - draw borders with three-dimensional appearance +Tk_3DBorderGC [] (3) - draw borders with three-dimensional appearance +Tk_3DHorizontalBevel [] (3) - draw borders with three-dimensional appearance +Tk_3DVerticalBevel [] (3) - draw borders with three-dimensional appearance +Tk_AddOption [] (3) - Add an option to the option database +Tk_Alloc3DBorderFromObj [] (3) - draw borders with three-dimensional appearance +Tk_AllocBitmapFromObj [] (3) - maintain database of single-plane pixmaps +Tk_AllocColorFromObj [] (3) - maintain database of colors +Tk_AllocCursorFromObj [] (3) - maintain database of cursors +Tk_AllocFontFromObj [] (3) - maintain database of fonts +Tk_AttachHWND [] (3) - manage interactions between the Windows handle and an X window +Tk_Attributes [] (3) - retrieve information from Tk's local data structure +Tk_BindEvent [] (3) - invoke scripts in response to X events +Tk_CanvasDrawableCoords [] (3) - utility procedures for canvas type managers +Tk_CanvasEventuallyRedraw [] (3) - utility procedures for canvas type managers +Tk_CanvasGetCoord [] (3) - utility procedures for canvas type managers +Tk_CanvasPsBitmap [] (3) - utility procedures for generating Postscript for canvases +Tk_CanvasPsColor [] (3) - utility procedures for generating Postscript for canvases +Tk_CanvasPsFont [] (3) - utility procedures for generating Postscript for canvases +Tk_CanvasPsPath [] (3) - utility procedures for generating Postscript for canvases +Tk_CanvasPsStipple [] (3) - utility procedures for generating Postscript for canvases +Tk_CanvasPsY [] (3) - utility procedures for generating Postscript for canvases +Tk_CanvasSetStippleOrigin [] (3) - utility procedures for canvas type managers +Tk_CanvasTagsOption [] (3) - utility procedures for canvas type managers +Tk_CanvasTextInfo [] (3) - additional information for managing text items in canvases +Tk_CanvasTkwin [] (3) - utility procedures for canvas type managers +Tk_CanvasWindowCoords [] (3) - utility procedures for canvas type managers +Tk_ChangeWindowAttributes [] (3) - change window configuration or attributes +Tk_Changes [] (3) - retrieve information from Tk's local data structure +Tk_CharBbox [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_Class [] (3) - set or retrieve a window's class +Tk_ClearSelection [] (3) - Deselect a selection +Tk_ClipboardAppend [] (3) - Manage the clipboard +Tk_ClipboardClear [] (3) - Manage the clipboard +Tk_CollapseMotionEvents [] (3) - Add a window event to the Tcl event queue +Tk_Colormap [] (3) - retrieve information from Tk's local data structure +Tk_ComputeTextLayout [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_ConfigureInfo [] (3) - process configuration options for widgets +Tk_ConfigureValue [] (3) - process configuration options for widgets +Tk_ConfigureWidget [] (3) - process configuration options for widgets +Tk_ConfigureWindow [] (3) - change window configuration or attributes +Tk_CoordsToWindow [] (3) - Find window containing a point +Tk_CreateBinding [] (3) - invoke scripts in response to X events +Tk_CreateBindingTable [] (3) - invoke scripts in response to X events +Tk_CreateClientMessageHandler [] (3) - associate procedure callback with ClientMessage type X events +Tk_CreateErrorHandler [] (3) - handle X protocol errors +Tk_CreateEventHandler [] (3) - associate procedure callback with an X event +Tk_CreateGenericHandler [] (3) - associate procedure callback with all X events +Tk_CreateImageType [] (3) - define new kind of image +Tk_CreateItemType [] (3) - define new kind of canvas item +Tk_CreateOptionTable [] (3) - process configuration options +Tk_CreatePhotoImageFormat [] (3) - define new file format for photo images +Tk_CreateSelHandler [] (3) - arrange to handle requests for a selection +Tk_CreateWindow [] (3) - create or delete window +Tk_CreateWindowFromPath [] (3) - create or delete window +Tk_DefineBitmap [] (3) - maintain database of single-plane pixmaps +Tk_DefineCursor [] (3) - change window configuration or attributes +Tk_DeleteAllBindings [] (3) - invoke scripts in response to X events +Tk_DeleteBinding [] (3) - invoke scripts in response to X events +Tk_DeleteBindingTable [] (3) - invoke scripts in response to X events +Tk_DeleteClientMessageHandler [] (3) - associate procedure callback with ClientMessage type X events +Tk_DeleteErrorHandler [] (3) - handle X protocol errors +Tk_DeleteEventHandler [] (3) - associate procedure callback with an X event +Tk_DeleteGenericHandler [] (3) - associate procedure callback with all X events +Tk_DeleteImage [] (3) - Destroy an image +Tk_DeleteOptionTable [] (3) - process configuration options +Tk_DeleteSelHandler [] (3) - arrange to handle requests for a selection +Tk_Depth [] (3) - retrieve information from Tk's local data structure +Tk_DestroyWindow [] (3) - create or delete window +Tk_Display [] (3) - retrieve information from Tk's local data structure +Tk_DisplayName [] (3) - retrieve information from Tk's local data structure +Tk_DistanceToTextLayout [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_Draw3DPolygon [] (3) - draw borders with three-dimensional appearance +Tk_Draw3DRectangle [] (3) - draw borders with three-dimensional appearance +Tk_DrawChars [] (3) - routines to measure and display simple single-line strings +Tk_DrawFocusHighlight [] (3) - draw the traversal highlight ring for a widget +Tk_DrawTextLayout [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_Fill3DPolygon [] (3) - draw borders with three-dimensional appearance +Tk_Fill3DRectangle [] (3) - draw borders with three-dimensional appearance +Tk_FindPhoto [] (3) - manipulate the image data stored in a photo image +Tk_FontId [] (3) - accessor functions for fonts +Tk_Free3DBorder [] (3) - draw borders with three-dimensional appearance +Tk_Free3DBorderFromObj [] (3) - draw borders with three-dimensional appearance +Tk_FreeBitmap [] (3) - maintain database of single-plane pixmaps +Tk_FreeBitmapFromObj [] (3) - maintain database of single-plane pixmaps +Tk_FreeColor [] (3) - maintain database of colors +Tk_FreeColorFromObj [] (3) - maintain database of colors +Tk_FreeColormap [] (3) - allocate and free colormaps +Tk_FreeConfigOptions [] (3) - process configuration options +Tk_FreeCursor [] (3) - maintain database of cursors +Tk_FreeCursorFromObj [] (3) - maintain database of cursors +Tk_FreeFont [] (3) - maintain database of fonts +Tk_FreeFontFromObj [] (3) - maintain database of fonts +Tk_FreeGC [] (3) - maintain database of read-only graphics contexts +Tk_FreeImage [] (3) - use an image in a widget +Tk_FreeOptions [] (3) - process configuration options for widgets +Tk_FreePixmap [] (3) - allocate and free pixmaps +Tk_FreeSavedOptions [] (3) - process configuration options +Tk_FreeTextLayout [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_FreeXId [] (3) - make X resource identifier available for reuse +Tk_GeometryRequest [] (3) - specify desired geometry or internal border for a window +Tk_Get3DBorder [] (3) - draw borders with three-dimensional appearance +Tk_Get3DBorderFromObj [] (3) - draw borders with three-dimensional appearance +Tk_GetAllBindings [] (3) - invoke scripts in response to X events +Tk_GetAnchor [] (3) - translate between strings and anchor positions +Tk_GetAnchorFromObj [] (3) - translate between strings and anchor positions +Tk_GetAtomName [] (3) - manage cache of X atoms +Tk_GetBinding [] (3) - invoke scripts in response to X events +Tk_GetBitmap [] (3) - maintain database of single-plane pixmaps +Tk_GetBitmapFromObj [] (3) - maintain database of single-plane pixmaps +Tk_GetCapStyle [] (3) - translate between strings and cap styles +Tk_GetColor [] (3) - maintain database of colors +Tk_GetColorByValue [] (3) - maintain database of colors +Tk_GetColorFromObj [] (3) - maintain database of colors +Tk_GetColormap [] (3) - allocate and free colormaps +Tk_GetCursor [] (3) - maintain database of cursors +Tk_GetCursorFromData [] (3) - maintain database of cursors +Tk_GetCursorFromObj [] (3) - maintain database of cursors +Tk_GetDash [] (3) - convert from string to valid dash structure +Tk_GetFont [] (3) - maintain database of fonts +Tk_GetFontFromObj [] (3) - maintain database of fonts +Tk_GetFontMetrics [] (3) - accessor functions for fonts +Tk_GetGC [] (3) - maintain database of read-only graphics contexts +Tk_GetHINSTANCE [] (3) - retrieve the global application instance handle +Tk_GetHWND [] (3) - manage interactions between the Windows handle and an X window +Tk_GetImage [] (3) - use an image in a widget +Tk_GetImageMasterData [] (3) - define new kind of image +Tk_GetItemTypes [] (3) - define new kind of canvas item +Tk_GetJoinStyle [] (3) - translate between strings and join styles +Tk_GetJustify [] (3) - translate between strings and justification styles +Tk_GetJustifyFromObj [] (3) - translate between strings and justification styles +Tk_GetMMFromObj [] (3) - translate between strings and screen units +Tk_GetNumMainWindows [] (3) - functions for querying main window information +Tk_GetOption [] (3) - retrieve an option from the option database +Tk_GetOptionInfo [] (3) - process configuration options +Tk_GetOptionValue [] (3) - process configuration options +Tk_GetPixels [] (3) - translate between strings and screen units +Tk_GetPixelsFromObj [] (3) - translate between strings and screen units +Tk_GetPixmap [] (3) - allocate and free pixmaps +Tk_GetRelief [] (3) - translate between strings and relief values +Tk_GetReliefFromObj [] (3) - translate between strings and relief values +Tk_GetRootCoords [] (3) - Compute root-window coordinates of window +Tk_GetScreenMM [] (3) - translate between strings and screen units +Tk_GetScrollInfo [] (3) - parse arguments for scrolling commands +Tk_GetScrollInfoObj [] (3) - parse arguments for scrolling commands +Tk_GetSelection [] (3) - retrieve the contents of a selection +Tk_GetUid [] (3) - convert from string to unique identifier +Tk_GetUserInactiveTime [] (3) - discover user inactivity time +Tk_GetVRootGeometry [] (3) - Get location and size of virtual root for window +Tk_GetVisual [] (3) - translate from string to visual +Tk_Grab [] (3) - manipulate grab state in an application +Tk_HWNDToWindow [] (3) - Find Tk's window information for a Windows window +Tk_HandleEvent [] (3) - invoke event handlers for window system events +Tk_Height [] (3) - retrieve information from Tk's local data structure +Tk_IdToWindow [] (3) - Find Tk's window information for an X window +Tk_ImageChanged [] (3) - notify widgets that image needs to be redrawn +Tk_Init [] (3) - add Tk to an interpreter and make a new Tk application +Tk_InitConsoleChannels [] (3) - Install the console channels as standard channels +Tk_InitImageArgs [] (3) - define new kind of image +Tk_InitOptions [] (3) - process configuration options +Tk_InitStubs [] (3) - initialize the Tk stubs mechanism +Tk_InternAtom [] (3) - manage cache of X atoms +Tk_InternalBorderBottom [] (3) - retrieve information from Tk's local data structure +Tk_InternalBorderLeft [] (3) - retrieve information from Tk's local data structure +Tk_InternalBorderRight [] (3) - retrieve information from Tk's local data structure +Tk_InternalBorderTop [] (3) - retrieve information from Tk's local data structure +Tk_Interp [] (3) - retrieve information from Tk's local data structure +Tk_IntersectTextLayout [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_IsContainer [] (3) - retrieve information from Tk's local data structure +Tk_IsEmbedded [] (3) - retrieve information from Tk's local data structure +Tk_IsMapped [] (3) - retrieve information from Tk's local data structure +Tk_IsTopLevel [] (3) - retrieve information from Tk's local data structure +Tk_Main [] (3) - main program for Tk-based applications +Tk_MainLoop [] (3) - loop for events until all windows are deleted +Tk_MainWindow [] (3) - functions for querying main window information +Tk_MaintainGeometry [] (3) - maintain geometry of one window relative to another +Tk_MakeWindowExist [] (3) - create or delete window +Tk_ManageGeometry [] (3) - arrange to handle geometry requests for a window +Tk_MapWindow [] (3) - map or unmap a window +Tk_MeasureChars [] (3) - routines to measure and display simple single-line strings +Tk_MinReqHeight [] (3) - retrieve information from Tk's local data structure +Tk_MinReqWidth [] (3) - retrieve information from Tk's local data structure +Tk_MoveResizeWindow [] (3) - change window configuration or attributes +Tk_MoveToplevelWindow [] (3) - Adjust the position of a top-level window +Tk_MoveWindow [] (3) - change window configuration or attributes +Tk_Name [] (3) - convert between names and window tokens +Tk_NameOf3DBorder [] (3) - draw borders with three-dimensional appearance +Tk_NameOfAnchor [] (3) - translate between strings and anchor positions +Tk_NameOfBitmap [] (3) - maintain database of single-plane pixmaps +Tk_NameOfCapStyle [] (3) - translate between strings and cap styles +Tk_NameOfColor [] (3) - maintain database of colors +Tk_NameOfCursor [] (3) - maintain database of cursors +Tk_NameOfFont [] (3) - maintain database of fonts +Tk_NameOfImage [] (3) - Return name of image +Tk_NameOfJoinStyle [] (3) - translate between strings and join styles +Tk_NameOfJustify [] (3) - translate between strings and justification styles +Tk_NameOfRelief [] (3) - translate between strings and relief values +Tk_NameToWindow [] (3) - convert between names and window tokens +Tk_Offset [] (3) - process configuration options +Tk_OwnSelection [] (3) - make a window the owner of the primary selection +Tk_Parent [] (3) - retrieve information from Tk's local data structure +Tk_ParseArgv [] (3) - process command-line options +Tk_PathName [] (3) - convert between names and window tokens +Tk_PhotoBlank [] (3) - manipulate the image data stored in a photo image +Tk_PhotoExpand [] (3) - manipulate the image data stored in a photo image +Tk_PhotoGetImage [] (3) - manipulate the image data stored in a photo image +Tk_PhotoGetSize [] (3) - manipulate the image data stored in a photo image +Tk_PhotoPutBlock [] (3) - manipulate the image data stored in a photo image +Tk_PhotoPutZoomedBlock [] (3) - manipulate the image data stored in a photo image +Tk_PhotoSetSize [] (3) - manipulate the image data stored in a photo image +Tk_PointToChar [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_PostscriptFontName [] (3) - accessor functions for fonts +Tk_PreserveColormap [] (3) - allocate and free colormaps +Tk_QueueWindowEvent [] (3) - Add a window event to the Tcl event queue +Tk_RedrawImage [] (3) - use an image in a widget +Tk_ReqHeight [] (3) - retrieve information from Tk's local data structure +Tk_ReqWidth [] (3) - retrieve information from Tk's local data structure +Tk_ResetUserInactiveTime [] (3) - discover user inactivity time +Tk_ResizeWindow [] (3) - change window configuration or attributes +Tk_RestackWindow [] (3) - Change a window's position in the stacking order +Tk_RestoreSavedOptions [] (3) - process configuration options +Tk_RestrictEvents [] (3) - filter and selectively delay X events +Tk_SafeInit [] (3) - add Tk to an interpreter and make a new Tk application +Tk_Screen [] (3) - retrieve information from Tk's local data structure +Tk_ScreenNumber [] (3) - retrieve information from Tk's local data structure +Tk_SetAppName [] (3) - Set the name of an application for 'send' commands +Tk_SetBackgroundFromBorder [] (3) - draw borders with three-dimensional appearance +Tk_SetCaretPos [] (3) - set the display caret location +Tk_SetClass [] (3) - set or retrieve a window's class +Tk_SetClassProcs [] (3) - register widget specific procedures +Tk_SetGrid [] (3) - control the grid for interactive resizing +Tk_SetInternalBorder [] (3) - specify desired geometry or internal border for a window +Tk_SetInternalBorderEx [] (3) - specify desired geometry or internal border for a window +Tk_SetMinimumRequestSize [] (3) - specify desired geometry or internal border for a window +Tk_SetOptions [] (3) - process configuration options +Tk_SetWindowBackground [] (3) - change window configuration or attributes +Tk_SetWindowBackgroundPixmap [] (3) - change window configuration or attributes +Tk_SetWindowBorder [] (3) - change window configuration or attributes +Tk_SetWindowBorderPixmap [] (3) - change window configuration or attributes +Tk_SetWindowBorderWidth [] (3) - change window configuration or attributes +Tk_SetWindowColormap [] (3) - change window configuration or attributes +Tk_SetWindowVisual [] (3) - change visual characteristics of window +Tk_SizeOfBitmap [] (3) - maintain database of single-plane pixmaps +Tk_SizeOfImage [] (3) - use an image in a widget +Tk_StrictMotif [] (3) - Return value of tk_strictMotif variable +Tk_TextLayoutToPostscript [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_TextWidth [] (3) - routines to measure and display simple single-line strings +Tk_Uid [] (3) - convert from string to unique identifier +Tk_UndefineCursor [] (3) - change window configuration or attributes +Tk_UnderlineChars [] (3) - routines to measure and display simple single-line strings +Tk_UnderlineTextLayout [] (3) - routines to measure and display single-font, multi-line, justified text +Tk_Ungrab [] (3) - manipulate grab state in an application +Tk_UnmaintainGeometry [] (3) - maintain geometry of one window relative to another +Tk_UnmapWindow [] (3) - map or unmap a window +Tk_UnsetGrid [] (3) - control the grid for interactive resizing +Tk_Visual [] (3) - retrieve information from Tk's local data structure +Tk_Width [] (3) - retrieve information from Tk's local data structure +Tk_WindowId [] (3) - retrieve information from Tk's local data structure +Tk_X [] (3) - retrieve information from Tk's local data structure +Tk_Y [] (3) - retrieve information from Tk's local data structure +Ttk_AddPadding [] (3) - Tk themed geometry utilities +Ttk_BoxContains [] (3) - Tk themed geometry utilities +Ttk_CreateTheme [] (3) - create and use Tk themes +Ttk_ExpandBox [] (3) - Tk themed geometry utilities +Ttk_GetBorderFromObj [] (3) - Tk themed geometry utilities +Ttk_GetCurrentTheme [] (3) - create and use Tk themes +Ttk_GetDefaultTheme [] (3) - create and use Tk themes +Ttk_GetPaddingFromObj [] (3) - Tk themed geometry utilities +Ttk_GetStickyFromObj [] (3) - Tk themed geometry utilities +Ttk_GetTheme [] (3) - create and use Tk themes +Ttk_MakeBox [] (3) - Tk themed geometry utilities +Ttk_MakePadding [] (3) - Tk themed geometry utilities +Ttk_PackBox [] (3) - Tk themed geometry utilities +Ttk_PadBox [] (3) - Tk themed geometry utilities +Ttk_PlaceBox [] (3) - Tk themed geometry utilities +Ttk_RelievePadding [] (3) - Tk themed geometry utilities +Ttk_StickBox [] (3) - Tk themed geometry utilities +Ttk_UniformPadding [] (3) - Tk themed geometry utilities +UI_OpenSSL [] (3) - New User Interface +UI_add_error_string [] (3) - New User Interface +UI_add_info_string [] (3) - New User Interface +UI_add_input_boolean [] (3) - New User Interface +UI_add_input_string [] (3) - New User Interface +UI_add_user_data [] (3) - New User Interface +UI_add_verify_string [] (3) - New User Interface +UI_construct_prompt [] (3) - New User Interface +UI_ctrl [] (3) - New User Interface +UI_dup_error_string [] (3) - New User Interface +UI_dup_info_string [] (3) - New User Interface +UI_dup_input_boolean [] (3) - New User Interface +UI_dup_input_string [] (3) - New User Interface +UI_dup_verify_string [] (3) - New User Interface +UI_free [] (3) - New User Interface +UI_get0_result [] (3) - New User Interface +UI_get0_user_data [] (3) - New User Interface +UI_get_default_method [] (3) - New User Interface +UI_get_method [] (3) - New User Interface +UI_new [] (3) - New User Interface +UI_new_method [] (3) - New User Interface +UI_process [] (3) - New User Interface +UI_set_default_method [] (3) - New User Interface +UI_set_method [] (3) - New User Interface +UNIVERSAL [] (3) - base class for ALL classes (blessed references) +URI [] (3) - Uniform Resource Identifiers (absolute and relative) +URI::Escape [] (3) - Escape and unescape unsafe characters +URI::Heuristic [] (3) - Expand URI using heuristics +URI::QueryParam [] (3) - Additional query methods for URIs +URI::Split [] (3) - Parse and compose URI strings +URI::URL [] (3) - Uniform Resource Locators +URI::WithBase [] (3) - URIs which remember their base +URI::data [] (3) - URI that contains immediate data +URI::file [] (3) - URI that maps to local file names +URI::ldap [] (3) - LDAP Uniform Resource Locators +UTF [] (7) - 8 - an ASCII compatible multi-byte Unicode encoding +Unicode [] (7) - the Universal Character Set +Unicode::Collate [] (3) - Unicode Collation Algorithm +Unicode::Normalize [] (3) - Unicode Normalization Forms +Unicode::UCD [] (3) - Unicode character database +Unix/Linux path resolution [] (7) - find the file referred to by a filename +User::grent [] (3) - by-name interface to Perl's built-in getgr*() functions +User::pwent [] (3) - by-name interface to Perl's built-in getpw*() functions +VendorRelease [] (3) - Display macros and functions +VisualOfCCC [] (3) - Color Conversion Context macros +WMXMMS [] (1) - a dockable XMMS control applet +Wand [] (1) - config - get information about the installed version of the Magick Wand +Wget [] (1) - The non-interactive network downloader +WhitePixel [] (3) - Display macros and functions +WhitePixelOfScreen [] (3) - screen information functions and macros +WidthMMOfScreen [] (3) - screen information functions and macros +WidthOfScreen [] (3) - screen information functions and macros +Win32::DBIODBC [] (3) - Win32::ODBC emulation layer for the DBI +X [] (7) - a portable, network-transparent window system +X.Org [] (7) - X.Org Group information +X509_NAME_ENTRY_create_by_NID [] (3) - X509_NAME_ENTRY utility functions +X509_NAME_ENTRY_create_by_OBJ [] (3) - X509_NAME_ENTRY utility functions +X509_NAME_ENTRY_create_by_txt [] (3) - X509_NAME_ENTRY utility functions +X509_NAME_ENTRY_get_data [] (3) - X509_NAME_ENTRY utility functions +X509_NAME_ENTRY_get_object [] (3) - X509_NAME_ENTRY utility functions +X509_NAME_ENTRY_set_data [] (3) - X509_NAME_ENTRY utility functions +X509_NAME_ENTRY_set_object [] (3) - X509_NAME_ENTRY utility functions +X509_NAME_add_entry [] (3) - X509_NAME modification functions +X509_NAME_add_entry_by_NID [] (3) - X509_NAME modification functions +X509_NAME_add_entry_by_OBJ [] (3) - X509_NAME modification functions +X509_NAME_add_entry_by_txt [] (3) - X509_NAME modification functions +X509_NAME_delete_entry [] (3) - X509_NAME modification functions +X509_NAME_entry_count [] (3) - X509_NAME lookup and enumeration functions +X509_NAME_get_entry [] (3) - X509_NAME lookup and enumeration functions +X509_NAME_get_index_by_NID [] (3) - X509_NAME lookup and enumeration functions +X509_NAME_get_index_by_OBJ [] (3) - X509_NAME lookup and enumeration functions +X509_NAME_get_text_by_NID [] (3) - X509_NAME lookup and enumeration functions +X509_NAME_get_text_by_OBJ [] (3) - X509_NAME lookup and enumeration functions +X509_NAME_oneline [] (3) - X509_NAME printing routines +X509_NAME_print [] (3) - X509_NAME printing routines +X509_NAME_print_ex [] (3) - X509_NAME printing routines +X509_NAME_print_ex_fp [] (3) - X509_NAME printing routines +X509_free [] (3) - X509 certificate ASN1 allocation functions +X509_new [] (3) - X509 certificate ASN1 allocation functions +XActivateScreenSaver [] (3) - manipulate the screen saver +XAddConnectionWatch [] (3) - handle Xlib internal connections +XAddHost [] (3) - control host access and host control structure +XAddHosts [] (3) - control host access and host control structure +XAddPixel [] (3) - image utilities +XAddToSaveSet [] (3) - change a client's save set +XAllocClassHint [] (3) - allocate class hints structure and set or read a window's WM_CLASS property +XAllocColor [] (3) - allocate and free colors +XAllocColorCells [] (3) - allocate and free colors +XAllocColorPlanes [] (3) - allocate and free colors +XAllocIconSize [] (3) - allocate icon size structure and set or read a window's WM_ICON_SIZES property +XAllocNamedColor [] (3) - allocate and free colors +XAllocSizeHints [] (3) - allocate size hints structure and set or read a window's WM_NORMAL_HINTS property +XAllocStandardColormap [] (3) - allocate, set, or read a standard colormap structure +XAllocWMHints [] (3) - allocate window manager hints structure and set or read a window's WM_HINTS property +XAllowDeviceEvents [] (3) - release queued events +XAllowEvents [] (3) - release queued events +XAnyEvent [] (3) - generic X event structures +XArc [] (3) - draw arcs and arc structure +XAutoRepeatOff [] (3) - manipulate keyboard settings and keyboard control structure +XAutoRepeatOn [] (3) - manipulate keyboard settings and keyboard control structure +XBaseFontNameListOfFontSet [] (3) - obtain fontset information +XBell [] (3) - manipulate keyboard settings and keyboard control structure +XButtonEvent [] (3) - KeyPress, KeyRelease, ButtonPress, ButtonRelease, and MotionNotify event structures +XCURSOR [] (3) - Cursor management library +XChangeActivePointerGrab [] (3) - grab the pointer +XChangeDeviceControl [] (3) - query and change input device controls +XChangeDeviceDontPropagateList [] (3) - query or change the dont-propagate-list for extension devices +XChangeDeviceKeyMapping [] (3) - query or change device key mappings +XChangeDeviceProperty [] (3) - Get, change or delete a device's property +XChangeFeedbackControl [] (3) - query and change input device feedbacks +XChangeGC [] (3) - create or free graphics contexts and graphics context structure +XChangeKeyboardControl [] (3) - manipulate keyboard settings and keyboard control structure +XChangeKeyboardDevice [] (3) - change which device is used as the X keyboard +XChangeKeyboardMapping [] (3) - manipulate keyboard encoding and keyboard encoding structure +XChangePointerControl [] (3) - control pointer +XChangePointerDevice [] (3) - change which device is the X pointer +XChangeProperty [] (3) - obtain and change window properties +XChangeSaveSet [] (3) - change a client's save set +XChangeWindowAttributes [] (3) - change window attributes +XChar2b [] (3) - load or unload fonts and font metric structures +XCharStruct [] (3) - load or unload fonts and font metric structures +XCheckIfEvent [] (3) - check the event queue with a predicate procedure +XCheckMaskEvent [] (3) - select events by type +XCheckTypedEvent [] (3) - select events by type +XCheckTypedWindowEvent [] (3) - select events by type +XCheckWindowEvent [] (3) - select events by type +XCirculateEvent [] (3) - CirculateNotify event structure +XCirculateRequestEvent [] (3) - CirculateRequest event structure +XCirculateSubwindows [] (3) - change window stacking order +XCirculateSubwindowsDown [] (3) - change window stacking order +XCirculateSubwindowsUp [] (3) - change window stacking order +XClassHint [] (3) - allocate class hints structure and set or read a window's WM_CLASS property +XClearArea [] (3) - clear area or window +XClearWindow [] (3) - clear area or window +XClientMessageEvent [] (3) - ClientMessage event structure +XClipBox [] (3) - generate regions +XCloseDevice [] (3) - open or close an extension input device +XCloseDisplay [] (3) - connect or disconnect to X server +XCloseIM [] (3) - open, close, and obtain input method information +XCloseOM [] (3) - open output methods +XColor [] (3) - create, copy, or destroy colormaps and color structure +XColormapEvent [] (3) - ColormapNotify event structure +XConfigureEvent [] (3) - ConfigureNotify event structure +XConfigureRequestEvent [] (3) - ConfigureRequest event structure +XConfigureWindow [] (3) - configure windows and window changes structure +XConsortium [] (7) - X Consortium information +XContextDependentDrawing [] (3) - obtain fontset information +XContextualDrawing [] (3) - obtain fontset information +XConvertCase [] (3) - convert keysyms +XConvertSelection [] (3) - manipulate window selection +XCopyArea [] (3) - copy areas +XCopyColormapAndFree [] (3) - create, copy, or destroy colormaps and color structure +XCopyGC [] (3) - create or free graphics contexts and graphics context structure +XCopyPlane [] (3) - copy areas +XCreateBitmapFromData [] (3) - manipulate bitmaps +XCreateColormap [] (3) - create, copy, or destroy colormaps and color structure +XCreateFontCursor [] (3) - create cursors +XCreateFontSet [] (3) - create and free an international text drawing font set +XCreateGC [] (3) - create or free graphics contexts and graphics context structure +XCreateGlyphCursor [] (3) - create cursors +XCreateIC [] (3) - create, destroy, and obtain the input method of an input context +XCreateImage [] (3) - image utilities +XCreateOC [] (3) - create output contexts +XCreatePixmap [] (3) - create or destroy pixmaps +XCreatePixmapCursor [] (3) - create cursors +XCreatePixmapFromBitmapData [] (3) - manipulate bitmaps +XCreateRegion [] (3) - create or destroy regions +XCreateSimpleWindow [] (3) - create windows and window attributes structure +XCreateWindow [] (3) - create windows and window attributes structure +XCreateWindowEvent [] (3) - CreateNotify event structure +XCrossingEvent [] (3) - EnterNotify and LeaveNotify event structure +XDGA [] (3) - Client library for the XFree86-DGA extension +XDefaultString [] (3) - convert text lists and text property structures +XDefineCursor [] (3) - define cursors +XDeleteContext [] (3) - associative look-up routines +XDeleteDeviceProperty [] (3) - Get, change or delete a device's property +XDeleteModifiermapEntry [] (3) - manipulate keyboard encoding and keyboard encoding structure +XDeleteProperty [] (3) - obtain and change window properties +XDestroyIC [] (3) - create, destroy, and obtain the input method of an input context +XDestroyImage [] (3) - image utilities +XDestroyOC [] (3) - create output contexts +XDestroyRegion [] (3) - create or destroy regions +XDestroySubwindows [] (3) - destroy windows +XDestroyWindow [] (3) - destroy windows +XDestroyWindowEvent [] (3) - DestroyNotify event structure +XDeviceBell [] (3) - ring a bell on a device supported through the input extension +XDeviceTimeCoord [] (3) - get device motion history +XDirectionalDependentDrawing [] (3) - obtain fontset information +XDisableAccessControl [] (3) - control host access and host control structure +XDisplayKeycodes [] (3) - manipulate keyboard encoding and keyboard encoding structure +XDisplayMotionBufferSize [] (3) - send events and pointer motion history structure +XDisplayName [] (3) - default error handlers +XDisplayOfIM [] (3) - open, close, and obtain input method information +XDisplayOfOM [] (3) - open output methods +XDrawArc [] (3) - draw arcs and arc structure +XDrawArcs [] (3) - draw arcs and arc structure +XDrawImageString [] (3) - draw image text +XDrawImageString16 [] (3) - draw image text +XDrawLine [] (3) - draw lines, polygons, and line structure +XDrawLines [] (3) - draw lines, polygons, and line structure +XDrawPoint [] (3) - draw points and points structure +XDrawPoints [] (3) - draw points and points structure +XDrawRectangle [] (3) - draw rectangles and rectangles structure +XDrawRectangles [] (3) - draw rectangles and rectangles structure +XDrawSegments [] (3) - draw lines, polygons, and line structure +XDrawString [] (3) - draw text characters +XDrawString16 [] (3) - draw text characters +XDrawText [] (3) - draw polytext text and text drawing structures +XDrawText16 [] (3) - draw polytext text and text drawing structures +XEmptyRegion [] (3) - determine if regions are empty or equal +XEnableAccessControl [] (3) - control host access and host control structure +XEqualRegion [] (3) - determine if regions are empty or equal +XErrorEvent [] (3) - X error event structure +XEvent [] (3) - generic X event structures +XEventsQueued [] (3) - handle output buffer or event queue +XExposeEvent [] (3) - Expose event structure +XExtendedMaxRequestSize [] (3) - Display macros and functions +XExtentsOfFontSet [] (3) - obtain the maximum extents structure for a font set +XF86MiscGetKbdSettings [] (3) - Extension library for the XFree86-Misc X extension +XF86MiscGetMouseSettings [] (3) - Extension library for the XFree86-Misc X extension +XF86MiscQueryExtension [] (3) - Extension library for the XFree86-Misc X extension +XF86MiscQueryVersion [] (3) - Extension library for the XFree86-Misc X extension +XF86MiscSetKbdSettings [] (3) - Extension library for the XFree86-Misc X extension +XF86MiscSetMouseSettings [] (3) - Extension library for the XFree86-Misc X extension +XF86VidModeDeleteModeLine [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetAllModeLines [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetDotClocks [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetGamma [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetGammaRamp [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetGammaRampSize [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetModeLine [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetMonitor [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetPermissions [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeGetViewPort [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeLockModeSwitch [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeModModeLine [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeQueryExtension [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeQueryVersion [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeSetClientVersion [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeSetGamma [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeSetGammaRamp [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeSetViewPort [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeSwitchMode [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeSwitchToMode [] (3) - Extension library for the XFree86-VidMode X extension +XF86VidModeValidateModeLine [] (3) - Extension library for the XFree86-VidMode X extension +XFetchBuffer [] (3) - manipulate cut and paste buffers +XFetchBytes [] (3) - manipulate cut and paste buffers +XFetchName [] (3) - set or read a window's WM_NAME property +XFillArc [] (3) - fill rectangles, polygons, or arcs +XFillArcs [] (3) - fill rectangles, polygons, or arcs +XFillPolygon [] (3) - fill rectangles, polygons, or arcs +XFillRectangle [] (3) - fill rectangles, polygons, or arcs +XFillRectangles [] (3) - fill rectangles, polygons, or arcs +XFilterEvent [] (3) - filter X events for an input method +XFindContext [] (3) - associative look-up routines +XFixes [] (3) - Augmented versions of core protocol requests +XFlush [] (3) - handle output buffer or event queue +XFocusChangeEvent [] (3) - FocusIn and FocusOut event structure +XFontProp [] (3) - load or unload fonts and font metric structures +XFontSetExtents [] (3) - XFontSetExtents structure +XFontStruct [] (3) - load or unload fonts and font metric structures +XFontsOfFontSet [] (3) - obtain fontset information +XForceScreenSaver [] (3) - manipulate the screen saver +XFree [] (3) - free client data +XFreeColormap [] (3) - create, copy, or destroy colormaps and color structure +XFreeColors [] (3) - allocate and free colors +XFreeCursor [] (3) - manipulate cursors +XFreeDeviceList [] (3) - list available input devices +XFreeExtensionList [] (3) - list available extensions +XFreeFont [] (3) - load or unload fonts and font metric structures +XFreeFontInfo [] (3) - obtain or free font names and information +XFreeFontNames [] (3) - obtain or free font names and information +XFreeFontPath [] (3) - set, get, or free the font search path +XFreeFontSet [] (3) - create and free an international text drawing font set +XFreeGC [] (3) - create or free graphics contexts and graphics context structure +XFreeModifierMap XModifierKeymap [] (3) - manipulate keyboard encoding and keyboard encoding structure +XFreePixmap [] (3) - create or destroy pixmaps +XFreeStringList [] (3) - convert string lists and text property structure +XGCValues [] (3) - create or free graphics contexts and graphics context structure +XGContextFromGC [] (3) - create or free graphics contexts and graphics context structure +XGetAtomName [] (3) - create or return atom names +XGetAtomNames [] (3) - create or return atom names +XGetClassHint [] (3) - allocate class hints structure and set or read a window's WM_CLASS property +XGetCommand [] (3) - set or read a window's WM_COMMAND property +XGetDeviceButtonMapping [] (3) - query or change device button mappings +XGetDeviceControl [] (3) - query and change input device controls +XGetDeviceDontPropagateList [] (3) - query or change the dont-propagate-list for extension devices +XGetDeviceFocus [] (3) - control extension input device focus +XGetDeviceKeyMapping [] (3) - query or change device key mappings +XGetDeviceModifierMapping [] (3) - query or change device modifier mappings +XGetDeviceMotionEvents [] (3) - get device motion history +XGetDeviceProperty [] (3) - Get, change or delete a device's property +XGetErrorDatabaseText [] (3) - default error handlers +XGetErrorText [] (3) - default error handlers +XGetExtensionVersion [] (3) - query the version of the input extension +XGetFeedbackControl [] (3) - query and change input device feedbacks +XGetFontPath [] (3) - set, get, or free the font search path +XGetFontProperty [] (3) - load or unload fonts and font metric structures +XGetGCValues [] (3) - create or free graphics contexts and graphics context structure +XGetGeometry [] (3) - get current window attribute or geometry and current window attributes structure +XGetICValues [] (3) - set and obtain XIC values +XGetIMValues [] (3) - open, close, and obtain input method information +XGetIconName [] (3) - set or read a window's WM_ICON_NAME property +XGetIconSizes [] (3) - allocate icon size structure and set or read a window's WM_ICON_SIZES property +XGetImage [] (3) - transfer images +XGetInputFocus [] (3) - control input focus +XGetKeyboardControl [] (3) - manipulate keyboard settings and keyboard control structure +XGetKeyboardMapping [] (3) - manipulate keyboard encoding and keyboard encoding structure +XGetModifierMapping [] (3) - manipulate keyboard encoding and keyboard encoding structure +XGetMotionEvents [] (3) - send events and pointer motion history structure +XGetOCValues [] (3) - create output contexts +XGetOMValues [] (3) - open output methods +XGetPixel [] (3) - image utilities +XGetPointerControl [] (3) - control pointer +XGetPointerMapping [] (3) - manipulate pointer settings +XGetRGBColormaps [] (3) - allocate, set, or read a standard colormap structure +XGetScreenSaver [] (3) - manipulate the screen saver +XGetSelectedExtensionEvents [] (3) - select extension events, get the list of currently selected extension events +XGetSelectionOwner [] (3) - manipulate window selection +XGetSubImage [] (3) - transfer images +XGetTextProperty [] (3) - set and read text properties +XGetTransientForHint [] (3) - set or read a window's WM_TRANSIENT_FOR property +XGetVisualInfo [] (3) - obtain visual information and visual structure +XGetWMClientMachine [] (3) - set or read a window's WM_CLIENT_MACHINE property +XGetWMColormapWindows [] (3) - set or read a window's WM_COLORMAP_WINDOWS property +XGetWMHints [] (3) - allocate window manager hints structure and set or read a window's WM_HINTS property +XGetWMIconName [] (3) - set or read a window's WM_ICON_NAME property +XGetWMName [] (3) - set or read a window's WM_NAME property +XGetWMNormalHints [] (3) - allocate size hints structure and set or read a window's WM_NORMAL_HINTS property +XGetWMProtocols [] (3) - set or read a window's WM_PROTOCOLS property +XGetWMSizeHints [] (3) - allocate size hints structure and set or read a window's WM_NORMAL_HINTS property +XGetWindowAttributes [] (3) - get current window attribute or geometry and current window attributes structure +XGetWindowProperty [] (3) - obtain and change window properties +XGetXCBConnection [] (3) - get the XCB connection for an Xlib Display +XGrabButton [] (3) - grab pointer buttons +XGrabDevice [] (3) - grab/release the specified extension device +XGrabDeviceButton [] (3) - grab/ungrab extension input device buttons +XGrabDeviceKey [] (3) - grab/ungrab extension input device Keys +XGrabKey [] (3) - grab keyboard keys +XGrabKeyboard [] (3) - grab the keyboard +XGrabPointer [] (3) - grab the pointer +XGrabServer [] (3) - grab the server +XGraphicsExposeEvent [] (3) - GraphicsExpose and NoExpose event structures +XGravityEvent [] (3) - GravityNotify event structure +XHostAddress [] (3) - control host access and host control structure +XIMOfIC [] (3) - create, destroy, and obtain the input method of an input context +XIconSize [] (3) - allocate icon size structure and set or read a window's WM_ICON_SIZES property +XIconifyWindow [] (3) - manipulate top-level windows +XIfEvent [] (3) - check the event queue with a predicate procedure +XInitImage [] (3) - image utilities +XInitThreads [] (3) - multi-threading support +XInsertModifiermapEntry [] (3) - manipulate keyboard encoding and keyboard encoding structure +XInstallColormap [] (3) - control colormaps +XInternAtom [] (3) - create or return atom names +XInternAtoms [] (3) - create or return atom names +XInternalConnectionNumbers [] (3) - handle Xlib internal connections +XIntersectRegion [] (3) - region arithmetic +XKeyEvent [] (3) - KeyPress, KeyRelease, ButtonPress, ButtonRelease, and MotionNotify event structures +XKeyboardControl [] (3) - manipulate keyboard settings and keyboard control structure +XKeycodeToKeysym [] (3) - convert keysyms +XKeymapEvent [] (3) - KeymapNotify event structure +XKeysymToKeycode [] (3) - convert keysyms +XKeysymToString [] (3) - convert keysyms +XKillClient [] (3) - control clients +XListDepths [] (3) - Display macros and functions +XListDeviceProperties [] (3) - List a device's properties +XListExtensions [] (3) - list available extensions +XListFonts [] (3) - obtain or free font names and information +XListFontsWithInfo [] (3) - obtain or free font names and information +XListHosts [] (3) - control host access and host control structure +XListInputDevices [] (3) - list available input devices +XListInstalledColormaps [] (3) - control colormaps +XListPixmapFormats [] (3) - image format functions and macros +XListProperties [] (3) - obtain and change window properties +XLoadFont [] (3) - load or unload fonts and font metric structures +XLoadQueryFont [] (3) - load or unload fonts and font metric structures +XLocaleOfFontSet [] (3) - obtain fontset information +XLocaleOfIM [] (3) - open, close, and obtain input method information +XLocaleOfOM [] (3) - open output methods +XLockDisplay [] (3) - multi-threading support +XLookupColor [] (3) - obtain color values +XLookupKeysym [] (3) - handle keyboard input events in Latin-1 +XLookupString [] (3) - handle keyboard input events in Latin-1 +XLowerWindow [] (3) - change window stacking order +XML::Parser [] (3) - A perl module for parsing XML documents +XML::Parser::Expat [] (3) - Lowlevel access to James Clark's expat XML parser +XML::Parser::Style::Debug [] (3) - Debug style for XML::Parser +XML::Parser::Style::Stream [] (3) - Stream style for XML::Parser +XML::Simple [] (3) - Easy API to maintain XML (esp config files) +XMMS [] (1) - an audio player for X +XMapEvent [] (3) - MapNotify and MappingNotify event structures +XMapRaised [] (3) - map windows +XMapRequestEvent [] (3) - MapRequest event structure +XMapSubwindows [] (3) - map windows +XMapWindow [] (3) - map windows +XMappingEvent [] (3) - MapNotify and MappingNotify event structures +XMaskEvent [] (3) - select events by type +XMatchVisualInfo [] (3) - obtain visual information and visual structure +XMaxRequestSize [] (3) - Display macros and functions +XMotionEvent [] (3) - KeyPress, KeyRelease, ButtonPress, ButtonRelease, and MotionNotify event structures +XMoveResizeWindow [] (3) - configure windows and window changes structure +XMoveWindow [] (3) - configure windows and window changes structure +XNewModifiermap [] (3) - manipulate keyboard encoding and keyboard encoding structure +XNextEvent [] (3) - select events by type +XNoExposeEvent [] (3) - GraphicsExpose and NoExpose event structures +XNoOp [] (3) - No Operation +XOMOfOC [] (3) - create output contexts +XOffsetRegion [] (3) - region arithmetic +XOpenDevice [] (3) - open or close an extension input device +XOpenDisplay [] (3) - connect or disconnect to X server +XOpenIM [] (3) - open, close, and obtain input method information +XOpenOM [] (3) - open output methods +XOrgFoundation [] (7) - X.Org Foundation information +XParseColor [] (3) - obtain color values +XParseGeometry [] (3) - parse window geometry +XPeekEvent [] (3) - select events by type +XPeekIfEvent [] (3) - check the event queue with a predicate procedure +XPending [] (3) - handle output buffer or event queue +XPixmapFormatValues [] (3) - image format functions and macros +XPoint [] (3) - draw points and points structure +XPointInRegion [] (3) - determine if regions are empty or equal +XPolygonRegion [] (3) - generate regions +XProcessInternalConnection [] (3) - handle Xlib internal connections +XProjectTeam [] (7) - X.Org Group information +XPropertyEvent [] (3) - PropertyNotify event structure +XPutBackEvent [] (3) - put events back on the queue +XPutImage [] (3) - transfer images +XPutPixel [] (3) - image utilities +XQueryBestCursor [] (3) - manipulate cursors +XQueryBestSize [] (3) - determine efficient sizes +XQueryBestStipple [] (3) - determine efficient sizes +XQueryBestTile [] (3) - determine efficient sizes +XQueryColor [] (3) - obtain color values +XQueryColors [] (3) - obtain color values +XQueryDeviceState [] (3) - query the state of an extension input device +XQueryExtension [] (3) - list available extensions +XQueryFont [] (3) - load or unload fonts and font metric structures +XQueryKeymap [] (3) - manipulate keyboard settings and keyboard control structure +XQueryPointer [] (3) - get pointer coordinates +XQueryTextExtents [] (3) - compute or query text extents +XQueryTextExtents16 [] (3) - compute or query text extents +XQueryTree [] (3) - query window tree information +XRaiseWindow [] (3) - change window stacking order +XReadBitmapFile [] (3) - manipulate bitmaps +XReadBitmapFileData [] (3) - manipulate bitmaps +XRebindKeysym [] (3) - handle keyboard input events in Latin-1 +XRecolorCursor [] (3) - manipulate cursors +XReconfigureWMWindow [] (3) - manipulate top-level windows +XRectInRegion [] (3) - determine if regions are empty or equal +XRectangle [] (3) - draw rectangles and rectangles structure +XRefreshKeyboardMapping [] (3) - handle keyboard input events in Latin-1 +XRegisterIMInstantiateCallback [] (3) - open, close, and obtain input method information +XRemoveConnectionWatch [] (3) - handle Xlib internal connections +XRemoveFromSaveSet [] (3) - change a client's save set +XRemoveHost [] (3) - control host access and host control structure +XRemoveHosts [] (3) - control host access and host control structure +XReparentEvent [] (3) - ReparentNotify event structure +XReparentWindow [] (3) - reparent windows +XRes [] (3) - X-Resource extension client library +XResetScreenSaver [] (3) - manipulate the screen saver +XResizeRequestEvent [] (3) - ResizeRequest event structure +XResizeWindow [] (3) - configure windows and window changes structure +XResourceManagerString [] (3) - obtain server resource properties +XRestackWindows [] (3) - change window stacking order +XRotateBuffers [] (3) - manipulate cut and paste buffers +XRotateWindowProperties [] (3) - obtain and change window properties +XS::APItest [] (3) - Test the perl C API +XS::Typemap [] (3) - module to test the XS typemaps distributed with perl +XSLoader [] (3) - Dynamically load C libraries into Perl code +XSaveContext [] (3) - associative look-up routines +XScreenNumberOfScreen [] (3) - screen information functions and macros +XScreenResourceString [] (3) - obtain server resource properties +XScreenSaver [] (3) - X11 Screen Saver extension client library +XSegment [] (3) - draw lines, polygons, and line structure +XSelectExtensionEvent [] (3) - select extension events, get the list of currently selected extension events +XSelectInput [] (3) - select input events +XSelectionClearEvent [] (3) - SelectionClear event structure +XSelectionEvent [] (3) - SelectionNotify event structure +XSelectionRequestEvent [] (3) - SelectionRequest event structure +XSendEvent [] (3) - send events and pointer motion history structure +XSendExtensionEvent [] (3) - send input extension events to a client +XServerInterpretedAddress [] (3) - control host access and host control structure +XSetAccessControl [] (3) - control host access and host control structure +XSetAfterFunction [] (3) - enable or disable synchronization +XSetArcMode [] (3) - GC convenience routines +XSetBackground [] (3) - GC convenience routines +XSetClassHint [] (3) - allocate class hints structure and set or read a window's WM_CLASS property +XSetClipMask [] (3) - GC convenience routines +XSetClipOrigin [] (3) - GC convenience routines +XSetClipRectangles [] (3) - GC convenience routines +XSetCloseDownMode [] (3) - control clients +XSetCommand [] (3) - set or read a window's WM_COMMAND property +XSetDashes [] (3) - GC convenience routines +XSetDeviceButtonMapping [] (3) - query or change device button mappings +XSetDeviceFocus [] (3) - control extension input device focus +XSetDeviceMode [] (3) - change the mode of a device +XSetDeviceModifierMapping [] (3) - query or change device modifier mappings +XSetDeviceValuators [] (3) - initialize the valuators on an extension input device +XSetErrorHandler [] (3) - default error handlers +XSetEventQueueOwner [] (3) - set event queue owner on a shared Xlib/XCB connection +XSetFillRule [] (3) - GC convenience routines +XSetFillStyle [] (3) - GC convenience routines +XSetFont [] (3) - GC convenience routines +XSetFontPath [] (3) - set, get, or free the font search path +XSetForeground [] (3) - GC convenience routines +XSetFunction [] (3) - GC convenience routines +XSetGraphicsExposure [] (3) - GC convenience routines +XSetICFocus [] (3) - set and unset input context focus +XSetICValues [] (3) - set and obtain XIC values +XSetIMValues [] (3) - open, close, and obtain input method information +XSetIOErrorHandler [] (3) - default error handlers +XSetIconName [] (3) - set or read a window's WM_ICON_NAME property +XSetIconSizes [] (3) - allocate icon size structure and set or read a window's WM_ICON_SIZES property +XSetInputFocus [] (3) - control input focus +XSetLineAttributes [] (3) - GC convenience routines +XSetLocaleModifiers [] (3) - determine locale support and configure locale modifiers +XSetModifierMapping [] (3) - manipulate keyboard encoding and keyboard encoding structure +XSetOCValues [] (3) - create output contexts +XSetOMValues [] (3) - open output methods +XSetPlaneMask [] (3) - GC convenience routines +XSetPointerMapping [] (3) - manipulate pointer settings +XSetRGBColormaps [] (3) - allocate, set, or read a standard colormap structure +XSetRegion [] (3) - create or destroy regions +XSetScreenSaver [] (3) - manipulate the screen saver +XSetSelectionOwner [] (3) - manipulate window selection +XSetState [] (3) - GC convenience routines +XSetStipple [] (3) - GC convenience routines +XSetSubwindowMode [] (3) - GC convenience routines +XSetTSOrigin [] (3) - GC convenience routines +XSetTextProperty [] (3) - set and read text properties +XSetTile [] (3) - GC convenience routines +XSetTransientForHint [] (3) - set or read a window's WM_TRANSIENT_FOR property +XSetWMClientMachine [] (3) - set or read a window's WM_CLIENT_MACHINE property +XSetWMColormapWindows [] (3) - set or read a window's WM_COLORMAP_WINDOWS property +XSetWMHints [] (3) - allocate window manager hints structure and set or read a window's WM_HINTS property +XSetWMIconName [] (3) - set or read a window's WM_ICON_NAME property +XSetWMName [] (3) - set or read a window's WM_NAME property +XSetWMNormalHints [] (3) - allocate size hints structure and set or read a window's WM_NORMAL_HINTS property +XSetWMProperties [] (3) - set standard window properties +XSetWMProtocols [] (3) - set or read a window's WM_PROTOCOLS property +XSetWMSizeHints [] (3) - allocate size hints structure and set or read a window's WM_NORMAL_HINTS property +XSetWindowAttributes [] (3) - create windows and window attributes structure +XSetWindowBackground [] (3) - change window attributes +XSetWindowBackgroundPixmap [] (3) - change window attributes +XSetWindowBorder [] (3) - change window attributes +XSetWindowBorderPixmap [] (3) - change window attributes +XSetWindowBorderWidth [] (3) - configure windows and window changes structure +XSetWindowColormap [] (3) - change window attributes +XShapeCombineMask [] (3) - X nonrectangular shape functions +XShapeCombineRectangles [] (3) - X nonrectangular shape functions +XShapeCombineRegion [] (3) - X nonrectangular shape functions +XShapeCombineShape [] (3) - X nonrectangular shape functions +XShapeGetRectangles [] (3) - X nonrectangular shape functions +XShapeInputSelected [] (3) - X nonrectangular shape functions +XShapeOffsetShape [] (3) - X nonrectangular shape functions +XShapeQueryExtension [] (3) - X nonrectangular shape functions +XShapeQueryExtents [] (3) - X nonrectangular shape functions +XShapeQueryVersion [] (3) - X nonrectangular shape functions +XShapeSelectInput [] (3) - X nonrectangular shape functions +XShmAttach [] (3) - X Shared Memory extension functions +XShmCreatePixmap [] (3) - X Shared Memory extension functions +XShmDetach XShmCreateImage [] (3) - X Shared Memory extension functions +XShmGetEventBase [] (3) - X Shared Memory extension functions +XShmGetImage [] (3) - X Shared Memory extension functions +XShmPixmapFormat [] (3) - X Shared Memory extension functions +XShmPutImage [] (3) - X Shared Memory extension functions +XShmQueryExtension [] (3) - X Shared Memory extension functions +XShmQueryVersion [] (3) - X Shared Memory extension functions +XShrinkRegion [] (3) - region arithmetic +XSizeHints [] (3) - allocate size hints structure and set or read a window's WM_NORMAL_HINTS property +XStandardColormap [] (3) - allocate, set, or read a standard colormap structure +XStandards [] (7) - X Window System Standards and Specifications +XStoreBuffer [] (3) - manipulate cut and paste buffers +XStoreBytes [] (3) - manipulate cut and paste buffers +XStoreColor [] (3) - set colors +XStoreColors [] (3) - set colors +XStoreName [] (3) - set or read a window's WM_NAME property +XStoreNamedColor [] (3) - set colors +XStringListToTextProperty [] (3) - convert string lists and text property structure +XStringToKeysym [] (3) - convert keysyms +XSubImage [] (3) - image utilities +XSubtractRegion [] (3) - region arithmetic +XSupportsLocale [] (3) - determine locale support and configure locale modifiers +XSync [] (3) - handle output buffer or event queue +XSynchronize [] (3) - enable or disable synchronization +XTestCompareCurrentCursorWithWindow [] (3) - XTest extension functions +XTestCompareCursorWithWindow [] (3) - XTest extension functions +XTestDiscard [] (3) - XTest extension functions +XTestFakeButtonEvent [] (3) - XTest extension functions +XTestFakeKeyEvent [] (3) - XTest extension functions +XTestFakeMotionEvent [] (3) - XTest extension functions +XTestFakeRelativeMotionEvent [] (3) - XTest extension functions +XTestGrabControl [] (3) - XTest extension functions +XTestQueryExtension [] (3) - XTest extension functions +XTestSetGContextOfGC [] (3) - XTest extension functions +XTestSetVisualIDOfVisual [] (3) - XTest extension functions +XTextExtents [] (3) - compute or query text extents +XTextExtents16 [] (3) - compute or query text extents +XTextItem [] (3) - draw polytext text and text drawing structures +XTextItem16 [] (3) - draw polytext text and text drawing structures +XTextProperty [] (3) - convert string lists and text property structure +XTextPropertyToStringList [] (3) - convert string lists and text property structure +XTextWidth [] (3) - compute text width +XTextWidth16 [] (3) - compute text width +XTimeCoord [] (3) - send events and pointer motion history structure +XTranslateCoordinates [] (3) - translate window coordinates +XUndefineCursor [] (3) - define cursors +XUngrabButton [] (3) - grab pointer buttons +XUngrabDevice [] (3) - grab/release the specified extension device +XUngrabDeviceButton [] (3) - grab/ungrab extension input device buttons +XUngrabDeviceKey [] (3) - grab/ungrab extension input device Keys +XUngrabKey [] (3) - grab keyboard keys +XUngrabKeyboard [] (3) - grab the keyboard +XUngrabPointer [] (3) - grab the pointer +XUngrabServer [] (3) - grab the server +XUninstallColormap [] (3) - control colormaps +XUnionRectWithRegion [] (3) - region arithmetic +XUnionRegion [] (3) - region arithmetic +XUniqueContext [] (3) - associative look-up routines +XUnloadFont [] (3) - load or unload fonts and font metric structures +XUnlockDisplay [] (3) - multi-threading support +XUnmapEvent [] (3) - UnmapNotify event structure +XUnmapSubwindows [] (3) - unmap windows +XUnmapWindow [] (3) - unmap windows +XUnregisterIMInstantiateCallback [] (3) - open, close, and obtain input method information +XUnsetICFocus [] (3) - set and unset input context focus +XVaCreateNestedList [] (3) - allocate a nested variable argument list +XVisibilityEvent [] (3) - VisibilityNotify event structure +XVisualIDFromVisual [] (3) - obtain visual information and visual structure +XVisualInfo [] (3) - obtain visual information and visual structure +XWMGeometry [] (3) - parse window geometry +XWMHints [] (3) - allocate window manager hints structure and set or read a window's WM_HINTS property +XWarpPointer [] (3) - move pointer +XWindowAttributes [] (3) - get current window attribute or geometry and current window attributes structure +XWindowChanges [] (3) - configure windows and window changes structure +XWindowEvent [] (3) - select events by type +XWithdrawWindow [] (3) - manipulate top-level windows +XWriteBitmapFile [] (3) - manipulate bitmaps +XXorRegion [] (3) - region arithmetic +Xau library: XauFileName [] (3) - X authority database routines +XauDisposeAuth [] (3) - X authority database routines +XauGetAuthByAddr [] (3) - X authority database routines +XauGetBestAuthByAddr [] (3) - X authority database routines +XauLockAuth [] (3) - X authority database routines +XauReadAuth [] (3) - X authority database routines +XauUnlockAuth [] (3) - X authority database routines +XauWriteAuth [] (3) - X authority database routines +Xaw [] (3) - X Athena Widgets +XcmsAllocColor [] (3) - allocate colors +XcmsAllocNamedColor [] (3) - allocate colors +XcmsCCCOfColormap [] (3) - query and modify CCC of a colormap +XcmsCIELab [] (3) - Xcms color structure +XcmsCIELabQueryMaxC [] (3) - obtain the CIE L*a*b* coordinates +XcmsCIELabQueryMaxL [] (3) - obtain the CIE L*a*b* coordinates +XcmsCIELabQueryMaxLC [] (3) - obtain the CIE L*a*b* coordinates +XcmsCIELabQueryMinL [] (3) - obtain the CIE L*a*b* coordinates +XcmsCIELuv [] (3) - Xcms color structure +XcmsCIELuvQueryMaxC [] (3) - obtain the CIE L*u*v* coordinates +XcmsCIELuvQueryMaxL [] (3) - obtain the CIE L*u*v* coordinates +XcmsCIELuvQueryMaxLC [] (3) - obtain the CIE L*u*v* coordinates +XcmsCIELuvQueryMinL [] (3) - obtain the CIE L*u*v* coordinates +XcmsCIEXYZ [] (3) - Xcms color structure +XcmsCIEuvY [] (3) - Xcms color structure +XcmsCIExyY [] (3) - Xcms color structure +XcmsColor [] (3) - Xcms color structure +XcmsConvertColors [] (3) - convert CCC color specifications +XcmsCreateCCC [] (3) - creating and destroying CCCs +XcmsDefaultCCC [] (3) - obtain the default CCC for a screen +XcmsFreeCCC [] (3) - creating and destroying CCCs +XcmsLookupColor [] (3) - obtain color values +XcmsPad [] (3) - Xcms color structure +XcmsQueryBlack [] (3) - obtain black, blue, green, red, and white CCC color specifications +XcmsQueryBlue [] (3) - obtain black, blue, green, red, and white CCC color specifications +XcmsQueryColor [] (3) - obtain color values +XcmsQueryColors [] (3) - obtain color values +XcmsQueryGreen [] (3) - obtain black, blue, green, red, and white CCC color specifications +XcmsQueryRed [] (3) - obtain black, blue, green, red, and white CCC color specifications +XcmsQueryWhite [] (3) - obtain black, blue, green, red, and white CCC color specifications +XcmsRGB [] (3) - Xcms color structure +XcmsRGBi [] (3) - Xcms color structure +XcmsSetCCCOfColormap [] (3) - query and modify CCC of a colormap +XcmsSetWhiteAdjustProc [] (3) - modifying CCC attributes +XcmsSetWhitePoint [] (3) - modifying CCC attributes +XcmsStoreColor [] (3) - set colors +XcmsStoreColors [] (3) - set colors +XcmsTekHVC [] (3) - Xcms color structure +XcmsTekHVCQueryMaxC [] (3) - obtain the TekHVC coordinates +XcmsTekHVCQueryMaxV [] (3) - obtain the TekHVC coordinates +XcmsTekHVCQueryMaxVC [] (3) - obtain the TekHVC coordinates +XcmsTekHVCQueryMaxVSamples [] (3) - obtain the TekHVC coordinates +XcmsTekHVCQueryMinV [] (3) - obtain the TekHVC coordinates +Xcomposite [] (3) - X Composite Extension library +XcupGetReservedColormapEntries [] (3) - list colormap entries reserved by the system +XcupQueryVersion [] (3) - Returns TOG-CUP protocol version supported by the X server +XcupStoreColors [] (3) - initialize shareable colormap entries at specific locations +XdbeAllocateBackBufferName [] (3) - allocates a DBE buffer +XdbeBeginIdiom [] (3) - marks the beginning of a DBE idiom sequence +XdbeDeallocateBackBufferName [] (3) - frees a DBE buffer +XdbeEndIdiom [] (3) - marks the end of a DBE idiom sequence +XdbeFreeVisualInfo [] (3) - frees information returned by XdbeGetVisualInfo() +XdbeGetBackBufferAttributes [] (3) - returns attributes of a DBE buffer +XdbeGetVisualInfo [] (3) - Get dbe Visual Informations +XdbeQueryExtension [] (3) - returns the version of DBE supported by the server +XdbeSwapBuffers [] (3) - swaps front and back DBE buffers +Xephyr [] (1) - X server outputting to a window on a pre-existing X display +XeviGetVisualInfo [] (3) - X Extended Visual Information functions +XeviQueryExtension [] (3) - X Extended Visual Information functions +XeviQueryVersion [] (3) - X Extended Visual Information functions +Xevie [] (3) - X Event Interception Extension (XEvIE) +Xfontcache [] (3) - X-TrueType font cache extension client library +Xft [] (3) - X FreeType interface library +Xinerama [] (3) - API for Xinerama extension to X11 Protocol +XkbActionCtrls [] (3) - Returns the ctrls fields of act converted to an unsigned int +XkbAddDeviceLedInfo [] (3) - Initialize an XkbDeviceLedInfoRec structure +XkbAddGeomColor [] (3) - Add one color name to an existing keyboard geometry description +XkbAddGeomDoodad [] (3) - Add one doodad to a section of a keyboard geometry or to the top - level geometry +XkbAddGeomKey [] (3) - Add one key at the end of an existing row of keys +XkbAddGeomKeyAlias [] (3) - Add one key alias to an existing keyboard geometry description +XkbAddGeomOutline [] (3) - Add one outline to an existing shape +XkbAddGeomOverlay [] (3) - Add one overlay to a section +XkbAddGeomOverlayKey [] (3) - Add a key to an existing overlay row +XkbAddGeomOverlayRow [] (3) - Add a row to an existing overlay +XkbAddGeomProperty [] (3) - Add one property to an existing keyboard geometry description +XkbAddGeomRow [] (3) - Add a row to a section +XkbAddGeomSection [] (3) - Add one section to an existing keyboard geometry +XkbAddGeomShape [] (3) - Add a shape to a keyboard geometry +XkbAddSymInterpret [] (3) - Add a symbol interpretation to the list of symbol interpretations in an XkbCompatRec +XkbAllocClientMap [] (3) - Allocate and initialize an empty client map description record +XkbAllocCompatMap [] (3) - Allocate a new compatibility map if you do not already have one available +XkbAllocControls [] (3) - Allocates an XkbControlsRec structure in the XkbDescRec +XkbAllocDeviceInfo [] (3) - Obtain an XkbDeviceInfoRec structure +XkbAllocDeviceLedInfo [] (3) - Obtain an XkbDeviceLedInfoRec structure +XkbAllocGeomColors [] (3) - Allocate geometry colors +XkbAllocGeomDoodads [] (3) - Allocate doodads that are global to a keyboard geometry +XkbAllocGeomKeyAliases [] (3) - Allocate geometry key aliases +XkbAllocGeomKeys [] (3) - Allocate space for an arbitrary number of keys to a row +XkbAllocGeomOutlines [] (3) - Allocate space for an arbitrary number of outlines to a shape +XkbAllocGeomOverlayKeys [] (3) - Allocate keys in an overlay row +XkbAllocGeomOverlayRows [] (3) - Allocate rows in a overlay +XkbAllocGeomOverlays [] (3) - Allocate overlays in a section +XkbAllocGeomPoints [] (3) - Allocate points in an outline +XkbAllocGeomProps [] (3) - Allocate geometry properties +XkbAllocGeomRows [] (3) - Allocate rows in a section +XkbAllocGeomSectionDoodads [] (3) - Allocate doodads that are specific to a section +XkbAllocGeomSections [] (3) - Allocate geometry sections +XkbAllocGeomShapes [] (3) - Allocate space for an arbitrary number of geometry shapes +XkbAllocGeometry [] (3) - Allocate an entire geometry +XkbAllocIndicatorMaps [] (3) - Allocates, directly, the indicators member of the keyboard description record +XkbAllocKeyboard [] (3) - Creates a keyboard description from scratch +XkbAllocNames [] (3) - Allocate symbolic names structures +XkbAllocServerMap [] (3) - Allocate and initialize an empty server map description record +XkbApplyCompatMapToKey [] (3) - Apply the new compatibility mapping to an individual key to get its semantics updated +XkbBell [] (3) - Rings the bell on the default keyboard +XkbBellEvent [] (3) - Provides a function that initiates a bell event for the keyboard without ringing the bell +XkbChangeControls [] (3) - Provides a flexible method for updating the controls in a server to match those in the changed keyboard description +XkbChangeDeviceInfo [] (3) - Update the server's description of a device with the changes noted in an XkbDeviceChangesRec +XkbChangeEnabledControls [] (3) - Manipulates the EnabledControls control +XkbChangeIndicators [] (3) - Changes indicator maps or state without passing the entire keyboard description +XkbChangeMap [] (3) - Update only partial components of a keyboard description, modify the appropriate fields in the server and map components of a local copy of the keyboard description +XkbChangeNames [] (3) - _summary-line_ +XkbChangeTypesOfKey [] (3) - Change the number of groups and the types bound to a key +XkbChangeTypesOfKey [] (3) - Obtain the behaviors (the behaviors array) for a subset of the keys in a keyboard description from the server +XkbComputeRowBounds [] (3) - Update the bounding box of a row +XkbComputeSectionBounds [] (3) - Update the bounding box of a section +XkbComputeShapeBounds [] (3) - Updates the bounding box of a shape +XkbComputeShapeTop [] (3) - Determines the bounding box of the top surface of a shape +XkbCopyKeyType [] (3) - Copy one XkbKeyTypeRec structures +XkbCopyKeyTypes [] (3) - Copy more than one XkbKeyTypeRec structure +XkbDeviceBell [] (3) - Rings the bell on an X input extension device or the default keyboard +XkbDeviceBellEvent [] (3) - Creates a bell event for an X input extension device or for the keyboard, without ringing the corresponding bell +XkbFindOverlayForKey [] (3) - Find the alternate name by using the primary name for a key that is part of an overlay +XkbForceBell [] (3) - Overrides user preference settings for audible bells to ring the bell on the default keyboard +XkbForceDeviceBell [] (3) - Rings the bell on any keyboard, overriding user preference settings for audible bells +XkbFreeClientMap [] (3) - Free memory used by the client map member of an XkbDescRec structure +XkbFreeCompatMap [] (3) - Free an entire compatibility map or selected portions of one +XkbFreeComponentList [] (3) - Free the structure returned by XkbListComponents +XkbFreeControls [] (3) - Frees memory used by the ctrls member of an XkbDescRec structure +XkbFreeDeviceInfo [] (3) - Free an XkbDeviceInfoRec structure +XkbFreeGeomColors [] (3) - Free geometry colors +XkbFreeGeomDoodads [] (3) - Free geometry doodads +XkbFreeGeomKeyAliases [] (3) - Free geometry key aliases +XkbFreeGeomKeys [] (3) - Free geometry keys +XkbFreeGeomOutlines [] (3) - Free geometry outlines +XkbFreeGeomOverlayKeys [] (3) - Free keys in an overlay row +XkbFreeGeomOverlayRows [] (3) - Free rows in an overlay +XkbFreeGeomOverlays [] (3) - Free rows in a section +XkbFreeGeomPoints [] (3) - Free points in a outline +XkbFreeGeomProperties [] (3) - Free geometry properties +XkbFreeGeomRows [] (3) - Free rows in a section +XkbFreeGeomSections [] (3) - Free geometry sections +XkbFreeGeomShapes [] (3) - Free geometry shapes +XkbFreeGeometry [] (3) - Free an entire geometry +XkbFreeIndicatorMaps [] (3) - Frees memory used by the indicators member of an XkbDescRec structure +XkbFreeKeyboard [] (3) - Destroys either an entire XkbDescRec or just some of its members +XkbFreeNames [] (3) - Free symbolic names structures +XkbFreeServerMap [] (3) - Free memory used by the server member of an XkbDescRec structure +XkbGetAccessXTimeout [] (3) - Queries the current AccessXTimeout options for a keyboard device +XkbGetAutoRepeatRate [] (3) - Gets the current attributes of the RepeatKeys control for a keyboard device +XkbGetAutoResetControls [] (3) - Gets the current values of the auto-reset controls +XkbGetBounceKeysDelay [] (3) - Queries the current BounceKeys delay for a keyboard device +XkbGetCompatMap [] (3) - Fetch any combination of the current compatibility map components from the server +XkbGetControls [] (3) - Finds the current state of Xkb server controls +XkbGetControlsChanges [] (3) - Updates a local copy of a keyboard description with the changes previously noted by one or more calls to XkbNoteControlsChanges +XkbGetDetectableAutorepeat [] (3) - Determines whether or not the server supports DetectableAutorepeat +XkbGetDeviceButtonActions [] (3) - Query the button actions associated with an X Input Extension device +XkbGetDeviceInfo [] (3) - Determine whether the X server allows Xkb access to particular capabilities of input devices other than the core X keyboard, or to determine the status of indicator maps, indicator names or button actions on a non - KeyClass extension device +XkbGetDeviceInfoChanges [] (3) - Query the changes that have occurred in the button actions or indicator names and indicator maps associated with an input extension device +XkbGetDeviceLedInfo [] (3) - Query the indicator names, maps, and state associated with an LED feedback of an input extension device +XkbGetGeometry [] (3) - Loads a keyboard geometry if you already have the keyboard description +XkbGetIndicatorChanges [] (3) - Updates a local copy of the keyboard description with the actual values of one or more calls to XkbNoteIndicatorChanges +XkbGetIndicatorMap [] (3) - Gets the map for one or more indicators, using a mask to specify the indicators +XkbGetIndicatorState [] (3) - Obtains the current state of the keyboard indicators +XkbGetKeyActions [] (3) - Update the actions (the key_acts array) for a subset of the keys in a keyboard description +XkbGetKeyExplicitComponents [] (3) - Obtain the explicit components (the explicit array) for a subset of the keys in a keyboard description +XkbGetKeyModifierMap [] (3) - Update the modifier map for one or more of the keys in a keyboard description +XkbGetKeySyms [] (3) - Obtain the symbols for a subset of the keys in a keyboard description +XkbGetKeyTypes [] (3) - Obtain the list of available key types in the server's keyboard mapping +XkbGetKeyVirtualModMap [] (3) - Obtain the virtual modifier map (the vmodmap array) for a subset of the keys in a keyboard description +XkbGetKeyboard [] (3) - Retrieves one or more components of a keyboard device description +XkbGetKeyboardByName [] (3) - Build a new keyboard description from a set of named components, and to optionally have the server use the resulting description to replace an active one +XkbGetMap [] (3) - Allocate an XkbDescRec structure and populate it with the server's keyboard client map and server map +XkbGetNameChanges [] (3) - Update the local copy of the keyboard description with the actual values of the results of one or more calls to XkbNoteNameChanges +XkbGetNamedGeometry [] (3) - Loads a keyboard geometry description from this database by name +XkbGetNamedIndicator [] (3) - Look up the indicator map and other information for an indicator by name +XkbGetNames [] (3) - Obtain symbolic names from the server +XkbGetSlowKeysDelay [] (3) - Gets the SlowKeys acceptance delay for a keyboard device +XkbGetState [] (3) - Obtains the keyboard state +XkbGetStickyKeysOptions [] (3) - Queries the current StickyKeys attributes for a keyboard device +XkbGetUpdatedMap [] (3) - Update the client or server map information in an existing keyboard description +XkbGetVirtualMods [] (3) - Obtain a subset of the virtual modifier bindings (the vmods array) in a keyboard description +XkbGetXlibControls [] (3) - Determines the current state of the Library Controls +XkbIgnoreExtension [] (3) - Prevents core X library keyboard functions from using the X Keyboard Extension +XkbInitCanonicalKeyTypes [] (3) - Set the definitions of the canonical key types in a client map to their default values +XkbKeyAction [] (3) - Returns the key action +XkbKeyActionEntry [] (3) - Returns the key action corresponding to group grp and shift level lvl from the two - dimensional table of key actions associated with the key corresponding to keycode +XkbKeyActionsPtr [] (3) - Returns a pointer to the two-dimensional array of key actions associated with the key corresponding to keycode +XkbKeyGroupInfo [] (3) - Returns the number of groups of symbols bound to the key corresponding to keycode +XkbKeyGroupWidth [] (3) - Computes the width of the type associated with the group grp for the key corresponding to keycode +XkbKeyGroupsWidth [] (3) - Computes the maximum width associated with the key corresponding to keycode +XkbKeyHasActions [] (3) - Determines if the key corresponding to keycode has any actions associated with it +XkbKeyNumActions [] (3) - Computes the number of actions associated with the key corresponding to keycode +XkbKeyNumGroups [] (3) - Returns the number of groups of symbols bound to the key corresponding to keycode +XkbKeyNumSyms [] (3) - Returns the total number of keysyms for the key corresponding to keycode +XkbKeySymEntry [] (3) - Returns the keysym corresponding to shift level shift and group grp from the two - dimensional array of keysyms for the key corresponding to keycode +XkbKeySymsOffset [] (3) - Returns the offset of the two-dimensional array of keysyms for the key corresponding to keycode +XkbKeySymsPtr [] (3) - Returns the pointer to the two-dimensional array of keysyms for the key corresponding to keycode +XkbKeyType [] (3) - Obtain the index of a key type or the pointer to a key type +XkbKeyTypeIndex [] (3) - Obtain the index of a key type or the pointer to a key type +XkbKeyTypesForCoreSymbols [] (3) - Determine the Xkb key types appropriate for the symbols bound to a key in a core keyboard mapping +XkbKeycodeToKeysym [] (3) - Finds the keysym bound to a particular key at a specified group and shift level +XkbKeysymToModifiers [] (3) - Finds the set of modifiers bound to a particular keysym on the core keyboard +XkbLatchGroup [] (3) - Latches the keysym group +XkbLatchModifiers [] (3) - Latches and unlatches any of the eight real keyboard modifiers +XkbLibraryVersion [] (3) - Determines the compatibility of a library at runtime +XkbListComponents [] (3) - List of components for one or more component types +XkbLockGroup [] (3) - Locks the keysym group +XkbLockModifiers [] (3) - Locks and unlocks any of the eight real keyboard modifiers +XkbLookupKeyBinding [] (3) - Find the string bound to a key by XRebindKeySym +XkbLookupKeySym [] (3) - Find the symbol associated with a key for a particular state +XkbModActionVMods [] (3) - Returns the vmods1 and vmods2 fields of act converted to the vmods format of an Xkb modifier description +XkbNoteControlsChanges [] (3) - Notes the changes in a changes structure when a client receives an XkbControlsNotify event +XkbNoteDeviceChanges [] (3) - Note device changes reported in an XkbExtensionDeviceNotify event +XkbNoteIndicatorChanges [] (3) - Notes the changes in a changes structure +XkbNoteNameChanges [] (3) - Note the changed names in a changes structure +XkbOpenDisplay [] (3) - Checks for a compatible version of the Xkb extension in both the library and the server, and initializes the extension for use +XkbOutOfRangeGroupInfo [] (3) - Returns only the out-of-range processing information from the group_info field of an XkbSymMapRec structure +XkbOutOfRangeGroupNumber [] (3) - Returns the out-of-range group number, represented as a group index, from the group_info field of an XkbSymMapRec structure +XkbPtrActionX [] (3) - Returns the high_XXX and low_XXX fields of act converted to a signed int +XkbPtrActionY [] (3) - Returns the high_YYY and low_YYY fields of act converted to a signed int +XkbQueryExtension [] (3) - Determines the compatibility of a library at runtime +XkbRefreshKeyboardMapping [] (3) - Update the keyboard description that is internal to the X library +XkbResizeDeviceButtonActions [] (3) - Allocate additional space for button actions in an XkbDeviceInfoRec structure +XkbResizeKeyActions [] (3) - Change the number of actions bound to a key +XkbResizeKeySyms [] (3) - Change the number of symbols bound to a key +XkbResizeKeyType [] (3) - Change the number of levels in a key type +XkbSAActionSetCtrls [] (3) - Sets the ctrls0 through I. ctrls3 fields of act from ctrls +XkbSAGroup [] (3) - Returns the group_XXX field of act converted to a signed int +XkbSAPtrDfltValue [] (3) - Returns the valueXXX field of act converted to a signed int +XkbSARedirectSetVMods [] (3) - Sets the vmods0 and vmods1 of act from v +XkbSARedirectSetVModsMask [] (3) - Sets the vmods_mask0 and vmods_mask1 fields of act from vm +XkbSARedirectVMods [] (3) - Returns the vmods0 and vmods1 fields of act converted to an unsigned int +XkbSARedirectVModsMask [] (3) - Returns the vmods_mask0 and vmods_mask1 fields of act converted to an unsigned int +XkbSAScreen [] (3) - Returns the screenXXX field of act converted to a signed int +XkbSASetGroup [] (3) - Sets the group_XXX field of act from the group index grp +XkbSASetPtrDfltValue [] (3) - Sets the valueXXX field of act from val +XkbSASetScreen [] (3) - Sets the screenXXX field of act from s +XkbSelectEventDetails [] (3) - Selects or deselects for a specific Xkb event and optionally places conditions on when events of that type are reported to your client +XkbSelectEvents [] (3) - Selects and / or deselects for delivery of one or more Xkb events and has them delivered under all conditions +XkbSetAccessXTimeout [] (3) - Configures the AccessXTimeout options for a keyboard device +XkbSetAutoRepeatRate [] (3) - Sets the attributes of the RepeatKeys control for a keyboard device +XkbSetAutoResetControls [] (3) - Changes the current values of the AutoReset control attributes +XkbSetBounceKeysDelay [] (3) - Sets the BounceKeys delay for a keyboard device +XkbSetCompatMap [] (3) - Modify the server's compatibility map +XkbSetControls [] (3) - Copies changes to the X server based on a modified ctrls structure in a local copy of the keyboard description +XkbSetDebuggingFlags [] (3) - Change the values of any of the debug controls +XkbSetDetectableAutorepeat [] (3) - Sets DetectableAutorepeat +XkbSetDeviceButtonActions [] (3) - Change only the button actions for an input extension device +XkbSetDeviceInfo [] (3) - Modify some or all of the characteristics of an X Input Extension device +XkbSetIgnoreLockMods [] (3) - Sets the modifiers that, if locked, are not to be reported in matching events to passive grabs +XkbSetIndicatorMap [] (3) - Downloads the changes to the server based on modifications to a local copy of the keyboard description which will update the maps for one or more indicators +XkbSetMap [] (3) - Send a complete new set of values for entire components to the server +XkbSetModActionVMods [] (3) - Sets the vmods1 and vmods2 fields of act using the vmods format of an Xkb modifier description +XkbSetNamedIndicator [] (3) - Names an indicator if it is not already named; toggles the state of the indicator; sets the indicator to a specified state and sets the indicator map for the indicator +XkbSetNames [] (3) - Change the symbolic names in the server +XkbSetPtrActionX [] (3) - Sets the high_XXX and low_XXX fields of act from the signed integer value x +XkbSetPtrActionY [] (3) - Sets the high_YYY and low_YYY fields of act from the signed integer value y +XkbSetServerInternalMods [] (3) - Sets the modifiers that are consumed by the server before events are delivered to the client +XkbSetXlibControls [] (3) - Changes the state of the Library Controls +XkbTranslateKeyCode [] (3) - Translate a keycode to a key symbol and modifiers +XkbTranslateKeySym [] (3) - Find the string and symbol associated with a keysym for a given keyboard state +XkbUpdateMapFromCore [] (3) - Update a local Xkb keyboard map to reflect the mapping expressed by a core format mapping +XkbVirtualModsToReal [] (3) - Determines the mapping of virtual modifiers to core X protocol modifiers +XmNotebook [] (3) - a widget that allows a user to manipulate underlying widgets like pages of a book +Xmark [] (1) - summarize x11perf results +XmbDrawImageString [] (3) - draw image text using a single font set +XmbDrawString [] (3) - draw text using a single font set +XmbDrawText [] (3) - draw text using multiple font sets +XmbLookupString [] (3) - obtain composed input from an input method +XmbResetIC [] (3) - reset the state of an input context +XmbSetWMProperties [] (3) - set standard window properties +XmbTextEscapement [] (3) - obtain the escapement of text +XmbTextExtents [] (3) - compute text extents +XmbTextListToTextProperty [] (3) - convert text lists and text property structures +XmbTextPerCharExtents [] (3) - obtain per-character information for a text string +XmbTextPropertyToTextList [] (3) - convert text lists and text property structures +XmbufChangeBufferAttributes [] (3) - X multibuffering functions +XmbufChangeWindowAttributes [] (3) - X multibuffering functions +XmbufCreateBuffers [] (3) - X multibuffering functions +XmbufCreateStereoWindow [] (3) - X multibuffering functions +XmbufDestroyBuffers [] (3) - X multibuffering functions +XmbufDisplayBuffers [] (3) - X multibuffering functions +XmbufGetBufferAttributes [] (3) - X multibuffering functions +XmbufGetScreenInfo [] (3) - X multibuffering functions +XmbufGetVersion [] (3) - X multibuffering functions +XmbufGetWindowAttributes [] (3) - X multibuffering functions +XmbufQueryExtension [] (3) - X multibuffering functions +Xnest [] (1) - a nested X server +Xorg [] (1) - X11R7 X server +XpCancelDoc [] (3) - Cancels a print document +XpCancelJob [] (3) - Cancels a single print job +XpCancelPage [] (3) - Cancels a print page +XpCreateContext [] (3) - Creates and initializes a new print context +XpDestroyContext [] (3) - Gets the current print context-id for a display connection +XpEndDoc [] (3) - Indicates the ending of a print document +XpEndJob [] (3) - Indicates the ending of a single print job +XpEndPage [] (3) - Indicates the end of a print page +XpFreePrinterList [] (3) - Frees a list of printer records +XpGetAttributes [] (3) - Gets an attribute pool from the specified print context +XpGetContext [] (3) - Gets the current print context-id for a display connection +XpGetDocumentData [] (3) - Creates and initializes a new print context +XpGetImageResolution [] (3) - Gets the current image resolution for a print context +XpGetLocaleHinter [] (3) - Gets a pointer to and description of the current locale hinter function +XpGetOneAttribute [] (3) - Gets a single print attribute from the specified print context +XpGetPageDimensions [] (3) - Gets the page dimensions for the current printer settings +XpGetPdmStartParams [] (3) - Builds up parameters in accordance with the PDM Selection Protocol as a standard convenience function +XpGetPrinterList [] (3) - Retrieves a list of all printers supported on an X Print Server +XpGetScreenOfContext [] (3) - Obtains a pointer to the screen associated with the specified print context +XpInputSelected [] (3) - Queries which X Print events the client has selected to receive from the specific print context +XpQueryExtension [] (3) - Queries an X Server to determine if it supports the X Print Service Extension, and if it does, what the offsets are for associated events and errors +XpQueryScreens [] (3) - Queries an X Server to determine which screens, of all the screens on the server, support the X Print Service Extension +XpQueryVersion [] (3) - Queries an X Server to determine if it supports the X Print Service Extension, and if it does, which version of the X Print Service Extension +XpRehashPrinterList [] (3) - Recomputes the list of available printers +XpSelectInput [] (3) - Specifies which X Print events, from the specified print context, the client is interested in +XpSetAttributes [] (3) - Sets or updates an attribute pool in the specified print context +XpSetContext [] (3) - Sets or unsets a print context with the specified display connection to the X Print Server +XpSetImageResolution [] (3) - Sets the resolution for subsequent PutImage requests +XpSetLocaleHinter [] (3) - Sets a locale hinter function and description of it +XpStartDoc [] (3) - Indicates the beginning of a print document +XpStartJob [] (3) - Indicates the beginning of a single print job +XpStartPage [] (3) - Indicates the beginning of a print page +Xrandr [] (3) - X Resize, Rotate and Reflection extension +XrmCombineDatabase [] (3) - merge resource databases +XrmCombineFileDatabase [] (3) - merge resource databases +XrmDestroyDatabase [] (3) - retrieve and store resource databases +XrmEnumerateDatabase [] (3) - enumerate resource database entries +XrmGetDatabase [] (3) - retrieve and store resource databases +XrmGetFileDatabase [] (3) - retrieve and store resource databases +XrmGetResource [] (3) - retrieve database resources and search lists +XrmGetStringDatabase [] (3) - retrieve and store resource databases +XrmInitialize [] (3) - initialize the Resource Manager, Resource Manager structures, and parse the command line +XrmLocaleOfDatabase [] (3) - retrieve and store resource databases +XrmMergeDatabases [] (3) - merge resource databases +XrmOptionDescRec [] (3) - initialize the Resource Manager, Resource Manager structures, and parse the command line +XrmOptionKind [] (3) - initialize the Resource Manager, Resource Manager structures, and parse the command line +XrmParseCommand [] (3) - initialize the Resource Manager, Resource Manager structures, and parse the command line +XrmPermStringToQuark [] (3) - manipulate resource quarks +XrmPutFileDatabase [] (3) - retrieve and store resource databases +XrmPutLineResource [] (3) - store database resources +XrmPutResource [] (3) - store database resources +XrmPutStringResource [] (3) - store database resources +XrmQGetResource [] (3) - retrieve database resources and search lists +XrmQGetSearchList [] (3) - retrieve database resources and search lists +XrmQGetSearchResource [] (3) - retrieve database resources and search lists +XrmQPutResource [] (3) - store database resources +XrmQPutStringResource [] (3) - store database resources +XrmQuarkToString [] (3) - manipulate resource quarks +XrmSetDatabase [] (3) - retrieve and store resource databases +XrmStringToBindingQuarkList [] (3) - manipulate resource quarks +XrmStringToQuark [] (3) - manipulate resource quarks +XrmStringToQuarkList [] (3) - manipulate resource quarks +XrmUniqueQuark [] (3) - manipulate resource quarks +XrmValue [] (3) - initialize the Resource Manager, Resource Manager structures, and parse the command line +Xsecurity [] (7) - X display access control +Xserver [] (1) - X Window System display server +XtAddActions [] (3) - register an action table +XtAddCallback [] (3) - add and remove callback procedures +XtAddCallbacks [] (3) - add and remove callback procedures +XtAddConverter [] (3) - register resource converter +XtAddEventHandler [] (3) - add and remove event handlers +XtAddExposureToRegion [] (3) - merge exposure events into a region +XtAddGrab [] (3) - redirect user input to a modal widget +XtAddInput [] (3) - register input, timeout, and workprocs +XtAddRawEventHandler [] (3) - add and remove event handlers +XtAddTimeOut [] (3) - register input, timeout, and workprocs +XtAddWorkProc [] (3) - register input, timeout, and workprocs +XtAllocateGC [] (3) - obtain a sharable GC with modifiable fields +XtAppAddActionHook [] (3) - register an action hook procedure +XtAppAddActions [] (3) - register an action table +XtAppAddBlockHook [] (3) - register a block hook procedure +XtAppAddConverter [] (3) - register resource converter +XtAppAddInput [] (3) - register and remove an input source +XtAppAddSignal [] (3) - register and remove a signal source +XtAppAddTimeOut [] (3) - register and remove timeouts +XtAppAddWorkProc [] (3) - Add and remove background processing procedures +XtAppCreateShell [] (3) - create top-level widget instance +XtAppError [] (3) - low-level error handlers +XtAppErrorMsg [] (3) - high-level error handlers +XtAppGetErrorDatabase [] (3) - obtain error database +XtAppGetErrorDatabaseText [] (3) - obtain error database +XtAppGetExitFlag [] (3) - thread support functions +XtAppGetSelectionTimeout [] (3) - set and obtain selection timeout values +XtAppInitialize [] (3) - initialize, open, or close a display +XtAppLock [] (3) - lock and unlock application context +XtAppMainLoop [] (3) - query and process events and input +XtAppNextEvent [] (3) - query and process events and input +XtAppPeekEvent [] (3) - query and process events and input +XtAppPending [] (3) - query and process events and input +XtAppProcessEvent [] (3) - query and process events and input +XtAppReleaseCacheRefs [] (3) - decrement reference counts for resources +XtAppSetErrorHandler [] (3) - low-level error handlers +XtAppSetErrorMsgHandler [] (3) - high-level error handlers +XtAppSetExitFlag [] (3) - thread support functions +XtAppSetFallbackResources [] (3) - set fallback resources +XtAppSetSelectionTimeout [] (3) - set and obtain selection timeout values +XtAppSetTypeConverter [] (3) - register resource converter +XtAppSetWarningHandler [] (3) - low-level error handlers +XtAppSetWarningMsgHandler [] (3) - high-level error handlers +XtAppUnlock [] (3) - lock and unlock application context +XtAppWarning [] (3) - low-level error handlers +XtAppWarningMsg [] (3) - high-level error handlers +XtAugmentTranslations [] (3) - manage translation tables +XtBuildEventMask [] (3) - retrieve a widget's event mask +XtCallAcceptFocus [] (3) - calla widget's accept_focus procedure +XtCallActionProc [] (3) - invoke an action procedure directly +XtCallCallbackList [] (3) - process callbacks +XtCallCallbacks [] (3) - process callbacks +XtCallConverter [] (3) - invoke resource converters +XtCallbackExclusive [] (3) - map a pop-up +XtCallbackNone [] (3) - map a pop-up +XtCallbackNonexclusive [] (3) - map a pop-up +XtCallbackPopdown [] (3) - unmap a pop-up +XtCalloc [] (3) - memory management functions +XtCancelSelectionRequest [] (3) - bundle multiple selection conversion requests into a single request using MULTIPLE target +XtChangeManagedSet [] (3) - manage and unmanage children +XtCheckSubclass [] (3) - obtain and verify a widget's class +XtClass [] (3) - obtain and verify a widget's class +XtCloseDisplay [] (3) - initialize, open, or close a display +XtConfigureWidget [] (3) - move and resize widgets +XtConvert [] (3) - invoke resource converters +XtConvertAndStore [] (3) - invoke resource converters +XtConvertCase [] (3) - convert KeySym to KeyCodes +XtCreateApplicationContext [] (3) - create, destroy, and obtain an application context +XtCreateApplicationShell [] (3) - create top-level widget instance +XtCreateManagedWidget [] (3) - create and destroy widgets +XtCreatePopupShell [] (3) - create a popup shell +XtCreateSelectionRequest [] (3) - bundle multiple selection conversion requests into a single request using MULTIPLE target +XtCreateWidget [] (3) - create and destroy widgets +XtCreateWindow [] (3) - window creation convenience function +XtDatabase [] (3) - initialize, open, or close a display +XtDestroyApplicationContext [] (3) - create, destroy, and obtain an application context +XtDestroyWidget [] (3) - create and destroy widgets +XtDirectConvert [] (3) - invoke resource converters +XtDisownSelection [] (3) - set selection owner +XtDispatchEvent [] (3) - query and process events and input +XtDispatchEventToWidget [] (3) - extension event handling +XtDisplay [] (3) - obtain window information about a widget +XtDisplayInitialize [] (3) - initialize, open, or close a display +XtDisplayOfObject [] (3) - obtain window information about a widget +XtDisplayStringConversionWarning [] (3) - issue a conversion warning message +XtDisplayToApplicationContext [] (3) - obtain an application context +XtError [] (3) - low-level error handlers +XtErrorMsg [] (3) - high-level error handlers +XtFindFile [] (3) - search for a file using substitutions in the path list +XtFree [] (3) - memory management functions +XtGetActionKeysym [] (3) - obtain corresponding keysym +XtGetActionList [] (3) - obtain class action list +XtGetApplicationNameAndClass [] (3) - retrieve application name and class +XtGetApplicationResources [] (3) - obtain application resources +XtGetClassExtension [] (3) - locate a class extension record +XtGetConstraintResourceList [] (3) - obtain resource list +XtGetDisplays [] (3) - retrieve a list of displays associated with an application context +XtGetErrorDatabase [] (3) - obtain error database +XtGetErrorDatabaseText [] (3) - obtain error database +XtGetGC [] (3) - obtain and destroy a sharable GC +XtGetKeyboardFocusWidget [] (3) - extension event handling +XtGetKeysymTable [] (3) - query keysyms and keycodes +XtGetMultiClickTime [] (3) - set and get multi-click times +XtGetResourceList [] (3) - obtain resource list +XtGetSelectionParameters [] (3) - retrieve target parameters for a selection request with a single target +XtGetSelectionRequest [] (3) - retrieve the event that triggered the XtConvertSelectionProc +XtGetSelectionTimeout [] (3) - set and obtain selection timeout values +XtGetSelectionValue [] (3) - obtain selection values +XtGetSelectionValueIncremental [] (3) - obtain selection values +XtGetSelectionValues [] (3) - obtain selection values +XtGetSelectionValuesIncremental [] (3) - obtain selection values +XtGetSubresources [] (3) - obtain subresources +XtGetSubvalues [] (3) - obtain and set widget resources +XtGetValues [] (3) - obtain and set widget resources +XtGrabButton [] (3) - manage grabs +XtGrabKey [] (3) - manage grabs +XtGrabKeyboard [] (3) - manage grabs +XtGrabPointer [] (3) - manage grabs +XtHasCallbacks [] (3) - process callbacks +XtHooksOfDisplay [] (3) - external agent access points +XtInitialize [] (3) - initialize +XtInitializeWidgetClass [] (3) - initialize a widget class +XtInsertEventHandler [] (3) - add and remove event handlers +XtInsertEventTypeHandler [] (3) - extension event handling +XtInsertRawEventHandler [] (3) - add and remove event handlers +XtInstallAccelerators [] (3) - managing accelerator tables +XtInstallAllAccelerators [] (3) - managing accelerator tables +XtIsApplicationShell [] (3) - obtain and verify a widget's class +XtIsComposite [] (3) - obtain and verify a widget's class +XtIsConstraint [] (3) - obtain and verify a widget's class +XtIsManaged [] (3) - manage and unmanage children +XtIsObject [] (3) - obtain and verify a widget's class +XtIsOverrideShell [] (3) - obtain and verify a widget's class +XtIsRealized [] (3) - realize and unrealize widgets +XtIsRectObj [] (3) - obtain and verify a widget's class +XtIsSensitive [] (3) - set and check a widget's sensitivity state +XtIsSessionShell [] (3) - obtain and verify a widget's class +XtIsShell [] (3) - obtain and verify a widget's class +XtIsSubclass [] (3) - obtain and verify a widget's class +XtIsTopLevelShell [] (3) - obtain and verify a widget's class +XtIsTransientShell [] (3) - obtain and verify a widget's class +XtIsVendorShell [] (3) - obtain and verify a widget's class +XtIsWMShell [] (3) - obtain and verify a widget's class +XtIsWidget [] (3) - obtain and verify a widget's class +XtKeysymToKeycodeList [] (3) - query keysyms and keycodes +XtLastEventProcessed [] (3) - last event, last timestamp processed +XtLastTimestampProcessed [] (3) - last event, last timestamp processed +XtMainLoop [] (3) - query and process events and input +XtMakeGeometryRequest [] (3) - make geometry manager request +XtMakeResizeRequest [] (3) - make geometry manager request +XtMalloc [] (3) - memory management functions +XtManageChild [] (3) - manage and unmanage children +XtManageChildren [] (3) - manage and unmanage children +XtMapWidget [] (3) - map and unmap widgets +XtMergeArgLists [] (3) - set and merge ArgLists +XtMoveWidget [] (3) - move and resize widgets +XtName [] (3) - obtain widget's name +XtNameToWidget [] (3) - translating strings to widgets or widgets to windows +XtNew [] (3) - memory management functions +XtNewString [] (3) - memory management functions +XtNextEvent [] (3) - query and process events and input +XtNoticeSignal [] (3) - register and remove a signal source +XtNumber [] (3) - determine the byte offset or number of array elements +XtOffset [] (3) - determine the byte offset or number of array elements +XtOffsetOf [] (3) - determine the byte offset or number of array elements +XtOpenApplication [] (3) - initialize, open, or close a display +XtOpenDisplay [] (3) - initialize, open, or close a display +XtOverrideTranslations [] (3) - manage translation tables +XtOwnSelection [] (3) - set selection owner +XtOwnSelectionIncremental [] (3) - set selection owner +XtParent [] (3) - obtain widget's parent widget id +XtParseAcceleratorTable [] (3) - managing accelerator tables +XtParseTranslationTable [] (3) - manage translation tables +XtPeekEvent [] (3) - query and process events and input +XtPending [] (3) - query and process events and input +XtPopdown [] (3) - unmap a pop-up +XtPopup [] (3) - map a pop-up +XtPopupSpringLoaded [] (3) - map a pop-up +XtProcessEvent [] (3) - query and process events and input +XtProcessLock [] (3) - lock and unlock process +XtProcessUnlock [] (3) - lock and unlock process +XtQueryGeometry [] (3) - query the preferred geometry of a child widget +XtRealizeWidget [] (3) - realize and unrealize widgets +XtRealloc [] (3) - memory management functions +XtRegisterCaseConverter [] (3) - convert KeySym to KeyCodes +XtRegisterDrawable [] (3) - register a drawable with the Intrinsics event dispatcher +XtRegisterExtensionSelector [] (3) - extension event handling +XtRegisterGrabAction [] (3) - register button and key grabs +XtReleaseGC [] (3) - obtain and destroy a sharable GC +XtReleasePropertyAtom [] (3) - maintain a cache of property atoms +XtRemoveActionHook [] (3) - register an action hook procedure +XtRemoveAllCallbacks [] (3) - add and remove callback procedures +XtRemoveBlockHook [] (3) - register a block hook procedure +XtRemoveCallback [] (3) - add and remove callback procedures +XtRemoveCallbacks [] (3) - add and remove callback procedures +XtRemoveEventHandler [] (3) - add and remove event handlers +XtRemoveEventTypeHandler [] (3) - extension event handling +XtRemoveGrab [] (3) - redirect user input to a modal widget +XtRemoveInput [] (3) - register and remove an input source +XtRemoveRawEventHandler [] (3) - add and remove event handlers +XtRemoveSignal [] (3) - register and remove a signal source +XtRemoveTimeOut [] (3) - register and remove timeouts +XtRemoveWorkProc [] (3) - Add and remove background processing procedures +XtReservePropertyAtom [] (3) - maintain a cache of property atoms +XtResizeWidget [] (3) - move and resize widgets +XtResolvePathname [] (3) - search for a file using standard substitution +XtScreen [] (3) - obtain window information about a widget +XtScreenDatabase [] (3) - initialize, open, or close a display +XtScreenOfObject [] (3) - obtain window information about a widget +XtSendSelectionRequest [] (3) - bundle multiple selection conversion requests into a single request using MULTIPLE target +XtSessionGetToken [] (3) - token management for checkpointing +XtSessionReturnToken [] (3) - token management for checkpointing +XtSetArg [] (3) - set and merge ArgLists +XtSetErrorHandler [] (3) - low-level error handlers +XtSetErrorMsgHandler [] (3) - high-level error handlers +XtSetEventDispatcher [] (3) - extension event handling +XtSetKeyTranslator [] (3) - convert KeySym to KeyCodes +XtSetKeyboardFocus [] (3) - focus events on a child widget +XtSetLanguageProc [] (3) - set the language procedure +XtSetMappedWhenManaged [] (3) - map and unmap widgets +XtSetMultiClickTime [] (3) - set and get multi-click times +XtSetSelectionParameters [] (3) - specify target parameters for a selection request with a single target +XtSetSelectionTimeout [] (3) - set and obtain selection timeout values +XtSetSensitive [] (3) - set and check a widget's sensitivity state +XtSetSubvalues [] (3) - obtain and set widget resources +XtSetTypeConverter [] (3) - register resource converter +XtSetValues [] (3) - obtain and set widget resources +XtSetWMColormapWindows [] (3) - Set the value of the WM_COLORMAP_WINDOWS property +XtSetWarningHandler [] (3) - low-level error handlers +XtSetWarningMsgHandler [] (3) - high-level error handlers +XtStringConversionWarning [] (3) - issue a conversion warning message +XtSuperclass [] (3) - obtain and verify a widget's class +XtToolkitInitialize [] (3) - create, destroy, and obtain an application context +XtToolkitThreadInitialize [] (3) - initialize the toolkit for multiple threads +XtTranslateCoords [] (3) - translate widget coordinates +XtTranslateKeycode [] (3) - convert KeySym to KeyCodes +XtUngrabButton [] (3) - manage grabs +XtUngrabKey [] (3) - manage grabs +XtUngrabKeyboard [] (3) - manage grabs +XtUngrabPointer [] (3) - manage grabs +XtUninstallTranslations [] (3) - manage translation tables +XtUnmanageChild [] (3) - manage and unmanage children +XtUnmanageChildren [] (3) - manage and unmanage children +XtUnmapWidget [] (3) - map and unmap widgets +XtUnrealizeWidget [] (3) - realize and unrealize widgets +XtVaAppCreateShell [] (3) - create top-level widget instance +XtVaAppInitialize [] (3) - initialize, open, or close a display +XtVaCreateArgsList [] (3) - dynamically allocate a varargs list +XtVaCreateManagedWidget [] (3) - create and destroy widgets +XtVaCreatePopupShell [] (3) - create a popup shell +XtVaCreateWidget [] (3) - create and destroy widgets +XtVaGetApplicationResources [] (3) - obtain application resources +XtVaGetSubresources [] (3) - obtain subresources +XtVaGetSubvalues [] (3) - obtain and set widget resources +XtVaGetValues [] (3) - obtain and set widget resources +XtVaOpenApplication [] (3) - initialize, open, or close a display +XtVaSetSubvalues [] (3) - obtain and set widget resources +XtVaSetValues [] (3) - obtain and set widget resources +XtWarning [] (3) - low-level error handlers +XtWarningMsg [] (3) - high-level error handlers +XtWidgetToApplicationContext [] (3) - create, destroy, and obtain an application context +XtWindow [] (3) - obtain window information about a widget +XtWindowOfObject [] (3) - obtain window information about a widget +XtWindowToWidget [] (3) - translating strings to widgets or widgets to windows +Xutf8DrawImageString [] (3) - draw image text using a single font set +Xutf8DrawString [] (3) - draw text using a single font set +Xutf8DrawText [] (3) - draw text using multiple font sets +Xutf8LookupString [] (3) - obtain composed input from an input method +Xutf8ResetIC [] (3) - reset the state of an input context +Xutf8SetWMProperties [] (3) - set standard window properties +Xutf8TextEscapement [] (3) - obtain the escapement of text +Xutf8TextExtents [] (3) - compute text extents +Xutf8TextListToTextProperty [] (3) - convert text lists and text property structures +Xutf8TextPerCharExtents [] (3) - obtain per-character information for a text string +Xutf8TextPropertyToTextList [] (3) - convert text lists and text property structures +Xv [] (3) - X Window System video extension +XvFreeAdaptorInfo [] (3) - free adaptor information +XvFreeEncodingInfo [] (3) - free encoding information +XvGetPortAttribute [] (3) - return current port attribute value +XvGetStill [] (3) - capture a single frame of video from a drawable +XvGetVideo [] (3) - capture video from a drawable +XvGrabPort [] (3) - lock port for exclusive use by client +XvPortNotify [] (3) - event generated when port attributes change +XvPutStill [] (3) - write a single frame of video to a drawable +XvPutVideo [] (3) - write video into a drawable +XvQueryAdaptors [] (3) - return adaptor information for a screen +XvQueryBestSize [] (3) - determine the optimum drawable region size +XvQueryEncodings [] (3) - return list of encodings for an adaptor +XvQueryExtension [] (3) - return version and release of extension +XvSelectPortNotify [] (3) - enable or disable XvPortNotify(3) events +XvSelectVideoNotify [] (3) - enable or disable VideoNotify events +XvSetPortAttribute [] (3) - sets an attribute of a video port +XvStopVideo [] (3) - stop active video +XvUngrabPort [] (3) - release port grabbed for video operation +XvVideoNotify [] (3) - event generated for video processing +Xvfb [] (1) - virtual framebuffer X server for X Version 11 +XwcDrawImageString [] (3) - draw image text using a single font set +XwcDrawString [] (3) - draw text using a single font set +XwcDrawText [] (3) - draw text using multiple font sets +XwcFreeStringList [] (3) - convert text lists and text property structures +XwcLookupString [] (3) - obtain composed input from an input method +XwcResetIC [] (3) - reset the state of an input context +XwcTextEscapement [] (3) - obtain the escapement of text +XwcTextExtents [] (3) - compute text extents +XwcTextListToTextProperty [] (3) - convert text lists and text property structures +XwcTextPerCharExtents [] (3) - obtain per-character information for a text string +XwcTextPropertyToTextList [] (3) - convert text lists and text property structures +[ [] (1) - bash built-in commands, see bash(1) +[0 [] (3) - 1)) && ! e.quit?) p e d.refresh end +[5 [] (3) - 1)) && ! e.quit?) p e d.refresh end +_Exit [] (2) - terminate the calling process +_TIFFfree [] (3) - memory management-related functions for use with TIFF files +_TIFFmalloc [] (3) - memory management-related functions for use with TIFF files +_TIFFmemcmp, [] (3) - memory management-related functions for use with TIFF files +_TIFFmemcpy [] (3) - memory management-related functions for use with TIFF files +_TIFFmemset [] (3) - memory management-related functions for use with TIFF files +_TIFFrealloc [] (3) - memory management-related functions for use with TIFF files +__after_morecore_hook [] (3) - malloc debugging variables +__flbf [] (3) - interfaces to stdio FILE structure +__fpending [] (3) - interfaces to stdio FILE structure +__fpurge [] (3) - interfaces to stdio FILE structure +__freadable [] (3) - interfaces to stdio FILE structure +__freading [] (3) - interfaces to stdio FILE structure +__free_hook [] (3) - malloc debugging variables +__fsetlocking [] (3) - interfaces to stdio FILE structure +__fwritable [] (3) - interfaces to stdio FILE structure +__fwriting [] (3) - interfaces to stdio FILE structure +__malloc_initialize_hook [] (3) - malloc debugging variables +__memalign_hook [] (3) - malloc debugging variables +__realloc_hook [] (3) - malloc debugging variables +_clone2 [] (2) - create a child process +_exit [] (2) - terminate the calling process +_fbufsize [] (3) - interfaces to stdio FILE structure +_flushlbf [] (3) - interfaces to stdio FILE structure +_fpurge [] (3) - purge a stream +_llseek [] (2) - reposition read/write file offset +_malloc_hook [] (3) - malloc debugging variables +_nc_freeall _nc_free_and_exit [] (3) - curses memory-leak checking +_nc_tracebits [] (3) - curses debugging routines +_setfpucw [] (3) - set FPU control word on i386 architecture (obsolete) +_syscall [] (2) - invoking a system call without library support (OBSOLETE) +_traceattr [] (3) - curses debugging routines +_traceattr2 [] (3) - curses debugging routines +_tracechar [] (3) - curses debugging routines +_tracechtype [] (3) - curses debugging routines +_tracechtype2 [] (3) - curses debugging routines +_tracedump [] (3) - curses debugging routines +_tracef [] (3) - curses debugging routines +_tracemouse [] (3) - curses debugging routines +a2p [] (1) - Awk to Perl translator +a2ps [] (1) - format files for printing on a PostScript printer +a2x [] (1) - convert Asciidoc text file to PDF, XHTML, HTML Help, manpage or plain text +a64l [] (3) - convert between long and base-64 +aa_attrs [] (3) - returns pointer to the text output buffer used by AA-lib +aa_autoinit [] (3) - easy to use AA-lib initialization function +aa_autoinitkbd [] (3) - easy to use AA-lib keyboard initialization function +aa_autoinitmouse [] (3) - easy to use AA-lib mouse initialization function +aa_close [] (3) - close the AA-lib context +aa_createedit [] (3) - Simple interactive line editor provided as helper function +aa_currentfont [] (3) - returns specification of the fonts used by AA-lib rendering routines +aa_defparams [] (3) - default hardware paramters requested by AA-lib programs +aa_defrenderparams [] (3) - default rendering parameters +aa_displayrecommended [] (3) - List of recommended drivers +aa_dithernames [] (3) - Names of dithering methods supported by AA-lib +aa_drivers [] (3) - NULL-terminated array of output drivers available in AA-lib +aa_edit [] (3) - Simple interactive line editor +aa_editkey [] (3) - Notify the line editor about keypress +aa_fastrender [] (3) - simple and fast AA-lib rendering function +aa_fonts [] (3) - Null-terminated array of available fonts +aa_formats [] (3) - NULL terminated array of save formats supported by AA-lib +aa_getevent [] (3) - keyboard functions +aa_getkey [] (3) - return next keypress event from queue +aa_getmouse [] (3) - Get mouse position as specified by last mouse event read by aa_getevent +aa_gotoxy [] (3) - move the hardware cursor (if any) to specified position +aa_help [] (3) - AA-lib help string for the default command line parser +aa_hidecursor [] (3) - hide the hardware cursor +aa_hidemouse [] (3) - hide the mouse cursor +aa_image [] (3) - returns pointer to the framebuffer emulated by AA-lib +aa_imgheight [] (3) - returns height of the emulated image in pixels +aa_imgwidth [] (3) - returns width of the emulated image in pixels +aa_init [] (3) - open the output display for AA-lib +aa_initkbd [] (3) - initialize the AA-lib keyboard driver +aa_initmouse [] (3) - initialize the AA-lib mouse driver +aa_kbddrivers [] (3) - NULL-terminated array of keyboard drivers available in AA_lib +aa_kbdrecommended [] (3) - List of recommended drivers +aa_mmheight [] (3) - returns height of the output screen in millimeters +aa_mmwidth [] (3) - returns width of the output screen in millimeters +aa_mousedrivers [] (3) - NULL terminated array of mouse drivers supported by AA-lib +aa_mouserecommended [] (3) - List of recommended drivers +aa_parseoptions [] (3) - parse the standard command line options used by AA-lib +aa_printf [] (3) - print text to AA-lib output buffers +aa_putpixel [] (3) - put pixel to emulated framebuffer +aa_puts [] (3) - output string to AA-lib output buffers +aa_recommendhi [] (3) - insert the given driver on beggining of the list of recommended drivers +aa_recommendhidisplay [] (3) - insert the given driver on beggining of the list of recommended display drivers +aa_recommendhikbd [] (3) - insert the given driver on beggining of the list of recommended keyboard drivers +aa_recommendhimouse [] (3) - insert the given driver on beggining of the list of recommended mouse drivers +aa_recommendlow [] (3) - Add the given driver to the end of list of recommended drivers +aa_recommendlowdisplay [] (3) - Add the given driver to the end of list of display recommended drivers +aa_recommendlowkbd [] (3) - Add the given driver to the end of list of keyboard recommended drivers +aa_recommendlowmouse [] (3) - Add the given driver to the end of list of mouse recommended drivers +aa_registerfont [] (3) - add new font specification to aa_fonts array +aa_render [] (3) - convert image buffer to ASCII-art +aa_resize [] (3) - resize functions +aa_resizehandler [] (3) - Set user handler to be called on resize event +aa_scrheight [] (3) - returns height of the output screen in characters +aa_scrwidth [] (3) - returns width of the output screen in characters +aa_setfont [] (3) - set font specification to be used by rendering functions +aa_setsupported [] (3) - alter the supported field of hardware_params structure used by AA-lib +aa_showcursor [] (3) - show the hardware cursor +aa_showmouse [] (3) - show the mouse cursor +aa_text [] (3) - returns pointer to the text output buffer used by AA-lib +aa_uninitkbd [] (3) - uninitialize the keyboard driver +aa_uninitmouse [] (3) - uninitialize the mouse driver +aafire [] (1) - aalib example programs +aainfo [] (1) - aalib example programs +aasavefont [] (1) - aalib example programs +aatest [] (1) - aalib example programs +aaxine [] (1) - an ASCII art video player +ab [] (8) - Apache HTTP server benchmarking tool +abbrev [] (3) - create an abbreviation table from a list +abort [] (3) - cause abnormal process termination +abs [] (3) - compute the absolute value of an integer +abstractile [] (6) - draw abstract mosaic patterns of interlocking tiles +abxtest [] (1) - double-blind ABX comparison testing script +ac [] (1) - print statistics about users' connect time +accel [] (6) - tests the new style svgalib accelerator interface +accept [] (2) - accept a connection on a socket +accept/reject [] (8) - accept/reject jobs sent to a destination +access [] (2) - check real user's permissions for a file +acct [] (2) - switch process accounting on or off +acct [] (5) - process accounting file +accton [] (8) - turns process accounting on or off +acecad [] (4) - Acecad Flair input driver +achfile [] (1) - change type and/or creator of Apple Macintosh files (netatalk format) +acl [] (5) - Access Control Lists +acl_add_perm [] (3) - add a permission to an ACL permission set +acl_calc_mask [] (3) - calculate the file group class mask +acl_check [] (3) - check an ACL for validity +acl_clear_perms [] (3) - clear all permissions from an ACL permission set +acl_cmp [] (3) - compare two ACLs +acl_copy_entry [] (3) - copy an ACL entry +acl_copy_ext [] (3) - copy an ACL from internal to external representation +acl_copy_int [] (3) - copy an ACL from external to internal representation +acl_create_entry [] (3) - create a new ACL entry +acl_delete_def_file [] (3) - delete a default ACL by filename +acl_delete_entry [] (3) - delete an ACL entry +acl_delete_perm [] (3) - delete a permission from an ACL permission set +acl_dup [] (3) - duplicate an ACL +acl_entries [] (3) - return the number of entries in an ACL +acl_equiv_mode [] (3) - check for an equivalent ACL +acl_error [] (3) - convert an ACL error code to a text message +acl_extended_fd [] (3) - test for information in the ACL by file descriptor +acl_extended_file [] (3) - test for information in ACLs by file name +acl_free [] (3) - release memory allocated to an ACL data object +acl_from_mode [] (3) - create an ACL from file permission bits +acl_from_text [] (3) - create an ACL from text +acl_get_entry [] (3) - get an ACL entry +acl_get_fd [] (3) - get an ACL by file descriptor +acl_get_file [] (3) - get an ACL by filename +acl_get_perm [] (3) - test for a permission in an ACL permission set +acl_get_permset [] (3) - retrieve the permission set from an ACL entry +acl_get_qualifier [] (3) - retrieve the qualifier from an ACL entry +acl_get_tag_type [] (3) - get the tag type of an ACL entry +acl_init [] (3) - initialize ACL working storage +acl_set_fd [] (3) - set an ACL by file descriptor +acl_set_file [] (3) - set an ACL by filename +acl_set_permset [] (3) - set the permission set in an ACL entry +acl_set_qualifier [] (3) - set the qualifier of an ACL entry +acl_set_tag_type [] (3) - set the tag type of an ACL entry +acl_size [] (3) - get the size of the external representation of an ACL +acl_to_any_text [] (3) - convert an ACL to text +acl_to_text [] (3) - convert an ACL to text +acl_valid [] (3) - validate an ACL +acleandir [] (1) - clean up a directory containing netatalk Apple Macintosh files +aconnect [] (1) - ALSA sequencer connection manager +acos [] (3) - arc cosine function +acosf [] (3) - arc cosine function +acosh [] (3) - inverse hyperbolic cosine function +acoshf [] (3) - inverse hyperbolic cosine function +acoshl [] (3) - inverse hyperbolic cosine function +acosl [] (3) - arc cosine function +acpi_listen [] (8) - ACPI event listener +acpid [] (8) - Advanced Configuration and Power Interface event daemon +add_mibdir [] (3) - mib_api functions +add_module_replacement [] (3) - mib_api functions +add_wch [] (3) - add a complex character and rendition to a curses window, then advance the cursor +add_wchnstr [] (3) - add an array of complex characters (and attributes) to a curses window +add_wchstr [] (3) - add an array of complex characters (and attributes) to a curses window +addch [] (3) - add a character (with attributes) to a curses window, then advance the cursor +addchnstr [] (3) - add a string of characters (and attributes) to a curses window +addchstr [] (3) - add a string of characters (and attributes) to a curses window +adddebug [] (1) - Modifies Makefile(s) to add debug info +addftinfo [] (1) - add information to troff font files for use with groff +addgnupghome [] (8) - Create .gnupg home directories +addmntent [] (3) - get file system descriptor file entry +addnstr [] (3) - add a string of characters to a curses window and advance cursor +addnwstr [] (3) - add a string of wide characters to a curses window and advance cursor +addr2line [] (1) - convert addresses into file names and line numbers +addseverity [] (3) - introduce new severity classes +addstr [] (3) - add a string of characters to a curses window and advance cursor +addwstr [] (3) - add a string of wide characters to a curses window and advance cursor +adjtime [] (3) - correct the time to synchronize the system clock +adjtimex [] (2) - tune kernel clock +adjtimex [] (8) - display or set the kernel time variables +adventure [] (6) - an exploration game +aecho [] (1) - send AppleTalk Echo Protocol packets to network hosts +afile [] (1) - display type and creator of Apple Macintosh files (netatalk format) +afmtodit [] (1) - create font files for use with groff -Tps +afpd [] (8) - AppleTalk Filing Protocol daemon +afpd.conf [] (5) - Configuration file used by afpd(8) to determine the setup of its file sharing services +afppasswd [] (1) - netatalk password maintenance utility +afs_syscall [] (2) - unimplemented system calls +after [] (n) - Execute a command after a time delay +agetty [] (8) - alternative Linux getty +aio_cancel [] (3) - cancel an outstanding asynchronous I/O request +aio_error [] (3) - get error status of asynchronous I/O operation +aio_fsync [] (3) - asynchronous file synchronization +aio_read [] (3) - asynchronous read +aio_return [] (3) - get return status of asynchronous I/O operation +aio_suspend [] (3) - wait for asynchronous I/O operation or timeout +aio_write [] (3) - asynchronous write +aiptek [] (4) - Aiptek USB Digital Tablet Input Driver for Linux +alarm [] (2) - set an alarm clock for delivery of a signal +alias [] (1) - bash built-in commands, see bash(1) +aliases [] (5) - aliases file for sendmail +alloc_hugepages [] (2) - allocate or free huge pages +alloca [] (3) - allocate memory that is automatically freed +alphasort [] (3) - scan a directory for matching entries +alpine [] (1) - an Alternatively Licensed Program for Internet News and Email +alsaconf [] (8) - configuration tool for the Advanced Linux Sound Architecture +alsactl [] (1) - advanced controls for ALSA soundcard driver +alsactl init [] (7) - alsa control management - initialization +alsamixer [] (1) - soundcard mixer for ALSA soundcard driver, with ncurses interface +amidi [] (1) - read from and write to ALSA RawMIDI ports +amixer [] (1) - command-line mixer for ALSA soundcard driver +amor [] (6) - A KDE creature for your desktop +amp [] (1) - decompress and play MPEG audio files +and Esc become exit keys moduleCaca class Event::Key def quit? end end end while((e= d.get_event(Caca::Event, [] (3) - 1)) && ! e.quit?) p e d.refresh end +anemone [] (6) - wiggling tentacles +anemotaxis [] (6) - directional search on a plane +animate [] (1) - animates an image or image sequence on any X server +answer [] (1) - phone message transcription system +antinspect [] (6) - ant model inspection screenhack +antmaze [] (6) - ant maze walker +antspotlight [] (6) - ant spotlight screenhack +any2djvu [] (1) - Convert .ps/.ps.gz/.pdf to .djvu +anytopnm [] (1) - convert an arbitrary type of image file to PBM, PGM, or PPM +aoss [] (1) - Wrapper script to facilitate use of the ALSA OSS compatibility library +apachectl [] (8) - Apache HTTP Server Control Interface +aplay [] (1) - command-line sound recorder and player for ALSA soundcard driver +aplaymidi [] (1) - play Standard MIDI Files +apm [] (1) - interface with the APM subsystem +apm [] (4) - Alliance ProMotion video driver +apmd [] (8) - Advanced Power Management (APM) daemon +apmsleep [] (1) - go into suspend or standby mode and wake-up later +apollonian [] (6) - Descartes Circle Theorem +append [] (n) - Append to variable +apple2 [] (6) - Apple ][ display emulator +apple_cp [] (1) - Do an apple copy, copying file metadata and the resource fork as well +apple_mv [] (1) - Do an apple move, moving metadata and the resource fork as well +apple_rm [] (1) - Do an apple remove, remove metadata and resource fork as well +apply [] (n) - Apply an anonymous function +applygnupgdefaults [] (8) - Run gpgconf --apply-defaults for all users +appres [] (1) - list X application resource database +apropos [] (1) - search the whatis database for strings +apxs [] (8) - APache eXtenSion tool +ar [] (1) - create, modify, and extract from archives +arch [] (1) - print machine architecture +arch_prctl [] (2) - set architecture-specific thread state +archive_clear_error [] (3) - libarchive utility functions +archive_compression [] (3) - libarchive utility functions +archive_compression_name [] (3) - libarchive utility functions +archive_copy_error [] (3) - libarchive utility functions +archive_entry_acl_add_entry [] (3) - functions for manipulating archive entry descriptions +archive_entry_acl_add_entry_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_acl_clear [] (3) - functions for manipulating archive entry descriptions +archive_entry_acl_count [] (3) - functions for manipulating archive entry descriptions +archive_entry_acl_next [] (3) - functions for manipulating archive entry descriptions +archive_entry_acl_next_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_acl_reset [] (3) - functions for manipulating archive entry descriptions +archive_entry_acl_text_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_atime [] (3) - functions for manipulating archive entry descriptions +archive_entry_atime_nsec [] (3) - functions for manipulating archive entry descriptions +archive_entry_clear [] (3) - functions for manipulating archive entry descriptions +archive_entry_clone [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_fflags_text [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_fflags_text_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_gname [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_gname_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_hardlink [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_hardlink_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_link [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_link_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_pathname_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_sourcepath [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_stat [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_symlink [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_symlink_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_uname [] (3) - functions for manipulating archive entry descriptions +archive_entry_copy_uname_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_dev [] (3) - functions for manipulating archive entry descriptions +archive_entry_devmajor [] (3) - functions for manipulating archive entry descriptions +archive_entry_devminor [] (3) - functions for manipulating archive entry descriptions +archive_entry_fflags [] (3) - functions for manipulating archive entry descriptions +archive_entry_fflags_text [] (3) - functions for manipulating archive entry descriptions +archive_entry_filetype [] (3) - functions for manipulating archive entry descriptions +archive_entry_free [] (3) - functions for manipulating archive entry descriptions +archive_entry_gid [] (3) - functions for manipulating archive entry descriptions +archive_entry_gname [] (3) - functions for manipulating archive entry descriptions +archive_entry_hardlink [] (3) - functions for manipulating archive entry descriptions +archive_entry_ino [] (3) - functions for manipulating archive entry descriptions +archive_entry_mode [] (3) - functions for manipulating archive entry descriptions +archive_entry_mtime [] (3) - functions for manipulating archive entry descriptions +archive_entry_mtime_nsec [] (3) - functions for manipulating archive entry descriptions +archive_entry_new [] (3) - functions for manipulating archive entry descriptions +archive_entry_nlink [] (3) - functions for manipulating archive entry descriptions +archive_entry_pathname [] (3) - functions for manipulating archive entry descriptions +archive_entry_pathname_w [] (3) - functions for manipulating archive entry descriptions +archive_entry_rdev [] (3) - functions for manipulating archive entry descriptions +archive_entry_rdevmajor [] (3) - functions for manipulating archive entry descriptions +archive_entry_rdevminor [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_atime [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_ctime [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_dev [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_devmajor [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_devminor [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_fflags [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_filetype [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_gid [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_gname [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_hardlink [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_link [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_mode [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_mtime [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_pathname [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_rdevmajor [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_rdevminor [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_size [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_symlink [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_uid [] (3) - functions for manipulating archive entry descriptions +archive_entry_set_uname [] (3) - functions for manipulating archive entry descriptions +archive_entry_size [] (3) - functions for manipulating archive entry descriptions +archive_entry_sourcepath [] (3) - functions for manipulating archive entry descriptions +archive_entry_stat [] (3) - functions for manipulating archive entry descriptions +archive_entry_symlink [] (3) - functions for manipulating archive entry descriptions +archive_entry_uid [] (3) - functions for manipulating archive entry descriptions +archive_entry_uname [] (3) - functions for manipulating archive entry descriptions +archive_errno [] (3) - libarchive utility functions +archive_error_string [] (3) - libarchive utility functions +archive_format [] (3) - libarchive utility functions +archive_format_name [] (3) - libarchive utility functions +archive_read_close [] (3) - functions for reading streaming archives +archive_read_data [] (3) - functions for reading streaming archives +archive_read_data_block [] (3) - functions for reading streaming archives +archive_read_data_into_buffer [] (3) - functions for reading streaming archives +archive_read_data_into_fd [] (3) - functions for reading streaming archives +archive_read_data_skip [] (3) - functions for reading streaming archives +archive_read_extract [] (3) - functions for reading streaming archives +archive_read_extract2 [] (3) - functions for reading streaming archives +archive_read_extract_set_progress_callback [] (3) - functions for reading streaming archives +archive_read_finish [] (3) - functions for reading streaming archives +archive_read_new [] (3) - functions for reading streaming archives +archive_read_next_header [] (3) - functions for reading streaming archives +archive_read_open [] (3) - functions for reading streaming archives +archive_read_open2 [] (3) - functions for reading streaming archives +archive_read_open_FILE [] (3) - functions for reading streaming archives +archive_read_open_fd [] (3) - functions for reading streaming archives +archive_read_open_filename [] (3) - functions for reading streaming archives +archive_read_open_memory [] (3) - functions for reading streaming archives +archive_read_support_compression_all [] (3) - functions for reading streaming archives +archive_read_support_compression_bzip2 [] (3) - functions for reading streaming archives +archive_read_support_compression_compress [] (3) - functions for reading streaming archives +archive_read_support_compression_gzip [] (3) - functions for reading streaming archives +archive_read_support_compression_none [] (3) - functions for reading streaming archives +archive_read_support_compression_program [] (3) - functions for reading streaming archives +archive_read_support_format_all [] (3) - functions for reading streaming archives +archive_read_support_format_cpio [] (3) - functions for reading streaming archives +archive_read_support_format_empty [] (3) - functions for reading streaming archives +archive_read_support_format_iso9660 [] (3) - functions for reading streaming archives +archive_read_support_format_tar [] (3) - functions for reading streaming archives +archive_read_support_format_zip [] (3) - functions for reading streaming archives +archive_set_error [] (3) - libarchive utility functions +archive_write_close [] (3) - functions for creating archives +archive_write_close [] (3) - functions for creating objects on disk +archive_write_data [] (3) - functions for creating archives +archive_write_data [] (3) - functions for creating objects on disk +archive_write_disk_new [] (3) - functions for creating objects on disk +archive_write_disk_set_group_lookup [] (3) - functions for creating objects on disk +archive_write_disk_set_options [] (3) - functions for creating objects on disk +archive_write_disk_set_skip_file [] (3) - functions for creating objects on disk +archive_write_disk_set_standard_lookup [] (3) - functions for creating objects on disk +archive_write_disk_set_user_lookup [] (3) - functions for creating objects on disk +archive_write_finish [] (3) - functions for creating archives +archive_write_finish [] (3) - functions for creating objects on disk +archive_write_finish_entry [] (3) - functions for creating archives +archive_write_finish_entry [] (3) - functions for creating objects on disk +archive_write_get_bytes_per_block [] (3) - functions for creating archives +archive_write_header [] (3) - functions for creating archives +archive_write_header [] (3) - functions for creating objects on disk +archive_write_new [] (3) - functions for creating archives +archive_write_open [] (3) - functions for creating archives +archive_write_open_FILE [] (3) - functions for creating archives +archive_write_open_fd [] (3) - functions for creating archives +archive_write_open_filename [] (3) - functions for creating archives +archive_write_open_memory [] (3) - functions for creating archives +archive_write_set_bytes_in_last_block [] (3) - functions for creating archives +archive_write_set_bytes_per_block [] (3) - functions for creating archives +archive_write_set_compression_bzip2 [] (3) - functions for creating archives +archive_write_set_compression_compress [] (3) - functions for creating archives +archive_write_set_compression_gzip [] (3) - functions for creating archives +archive_write_set_compression_none [] (3) - functions for creating archives +archive_write_set_compression_program [] (3) - functions for creating archives +archive_write_set_format_cpio [] (3) - functions for creating archives +archive_write_set_format_pax [] (3) - functions for creating archives +archive_write_set_format_pax_restricted [] (3) - functions for creating archives +archive_write_set_format_shar [] (3) - functions for creating archives +archive_write_set_format_shar_binary [] (3) - functions for creating archives +archive_write_set_format_ustar [] (3) - functions for creating archives +arecord [] (1) - command-line sound recorder and player for ALSA soundcard driver +arecordmidi [] (1) - record Standard MIDI Files +argz_add [] (3) - functions to handle an argz list +argz_add_sep [] (3) - functions to handle an argz list +argz_append [] (3) - functions to handle an argz list +argz_count [] (3) - functions to handle an argz list +argz_create [] (3) - functions to handle an argz list +argz_create_sep [] (3) - functions to handle an argz list +argz_delete [] (3) - functions to handle an argz list +argz_extract [] (3) - functions to handle an argz list +argz_insert [] (3) - functions to handle an argz list +argz_next [] (3) - functions to handle an argz list +argz_replace [] (3) - functions to handle an argz list +argz_stringify [] (3) - functions to handle an argz list +arithmetic [] (6) - quiz on simple arithmetic +ark [] (1) - A KDE archiving tool +armscii [] (7) - 8 - Armenian Character Set encoded in octal, decimal, and hexadecimal +arp [] (7) - Linux ARP kernel module +arp [] (8) - manipulate the system ARP cache +arpd [] (8) - userspace arp daemon +arping [] (8) - send ARP REQUEST to a neighbour host +array [] (n) - Manipulate array variables +as86 [] (1) - Assembler for 8086..80386 processors +ascii [] (1) - xfr - upload/download files using the ASCII protocol +ascii [] (7) - the ASCII character set encoded in octal, decimal, and hexadecimal +asciidoc [] (1) - converts an AsciiDoc text file to HTML or DocBook +asciitopgm [] (1) - convert ASCII graphics into a portable graymap +asctime [] (3) - transform date and time to broken-down time or ASCII +asctime_r [] (3) - transform date and time to broken-down time or ASCII +aseqdump [] (1) - show the events received at an ALSA sequencer port +aseqnet [] (1) - ALSA sequencer connectors over network +asin [] (3) - arc sine function +asinf [] (3) - arc sine function +asinh [] (3) - inverse hyperbolic sine function +asinhf [] (3) - inverse hyperbolic sine function +asinhl [] (3) - inverse hyperbolic sine function +asinl [] (3) - arc sine function +asip [] (1) - status.pl - Queries AFP servers for their capabilities +asn1parse [] (1) - ASN.1 parsing tool +aspell [] (1) - import - import old personal dictionaries into GNU Aspell +aspell [] (1) - interactive spell checker +asprintf [] (3) - print to allocated string +assert [] (3) - abort the program if assertion is false +assert_perror [] (3) - test errnum and abort +assume_default_colors [] (3) - use terminal's default colors +at [] (1) - queue, examine or delete jobs for later execution +at.allow [] (5) - determine who can submit jobs via at or batch +at.deny [] (5) - determine who can submit jobs via at or batch +ata_id [] (8) - udev callout to read product/serial number from ATA drives +atalk [] (4) - AppleTalk protocol family +atalk_aton [] (3) - AppleTalk address parsing +atalkd [] (8) - AppleTalk RTMP, NBP, ZIP, and AEP manager +atalkd.conf [] (5) - Configuration file used by atalkd(8) to determine the interfaces used by the master Netatalk daemon +atan [] (3) - arc tangent function +atan2 [] (3) - arc tangent function of two variables +atan2f [] (3) - arc tangent function of two variables +atan2l [] (3) - arc tangent function of two variables +atanf [] (3) - arc tangent function +atanh [] (3) - inverse hyperbolic tangent function +atanhf [] (3) - inverse hyperbolic tangent function +atanhl [] (3) - inverse hyperbolic tangent function +atanl [] (3) - arc tangent function +atc [] (6) - air traffic controller game +atd [] (8) - run jobs queued for later execution +atexit [] (3) - register a function to be called at normal process termination +atktopbm [] (1) - convert Andrew Toolkit raster object to portable bitmap +atlantis [] (6) - draw swimming sharks, whales, and dolphins +atobm [] (1) - bitmap editor and converter utilities for the X Window System +atof [] (3) - convert a string to a double +atoi [] (3) - convert a string to an integer +atol [] (3) - convert a string to an integer +atoll [] (3) - convert a string to an integer +atoq [] (3) - convert a string to an integer +atq [] (1) - queue, examine or delete jobs for later execution +atrm [] (1) - queue, examine or delete jobs for later execution +atrun [] (8) - run jobs queued for later execution +attemptckalloc [] (3) - allocate or free heap memory +attemptckrealloc [] (3) - allocate or free heap memory +attr [] (1) - extended attributes on XFS filesystem objects +attr [] (5) - Extended attributes +attr_get [] (3) - curses character and window attribute control routines +attr_get [] (3) - get the value of a user attribute of a filesystem object +attr_getf [] (3) - get the value of a user attribute of a filesystem object +attr_list [] (3) - list the names of the user attributes of a filesystem object +attr_list_by_handle [] (3) - file handle operations +attr_listf [] (3) - list the names of the user attributes of a filesystem object +attr_multi [] (3) - manipulate multiple user attributes on a filesystem object at once +attr_multi_by_handle [] (3) - file handle operations +attr_multif [] (3) - manipulate multiple user attributes on a filesystem object at once +attr_off [] (3) - curses character and window attribute control routines +attr_on [] (3) - curses character and window attribute control routines +attr_remove [] (3) - remove a user attribute of a filesystem object +attr_removef [] (3) - remove a user attribute of a filesystem object +attr_set [] (3) - curses character and window attribute control routines +attr_set [] (3) - set the value of a user attribute of a filesystem object +attr_setf [] (3) - set the value of a user attribute of a filesystem object +attraction [] (6) - interactions of opposing forces +attributes [] (3) - get/set subroutine or variable attributes +attroff [] (3) - curses character and window attribute control routines +attron [] (3) - curses character and window attribute control routines +attrs [] (3) - set/get attributes of a subroutine (deprecated) +attrset [] (3) - curses character and window attribute control routines +atunnel [] (6) - hypnotic GL tunnel journey +audiocompose [] (1) - Compose an audio fragment for inclusion in a mail message +audiosend [] (1) - Send an audio email message +audtool [] (1) - a small tool to modify behavior of a running audacious instance +aumix [] (1) - adjust audio mixer +auto_execok [] (n) - standard library of Tcl procedures +auto_import [] (n) - standard library of Tcl procedures +auto_load [] (n) - standard library of Tcl procedures +auto_mkindex [] (n) - standard library of Tcl procedures +auto_mkindex_old [] (n) - standard library of Tcl procedures +auto_qualify [] (n) - standard library of Tcl procedures +auto_reset [] (n) - standard library of Tcl procedures +autoconf [] (1) - Generate configuration scripts +autoexpect [] (1) - generate an Expect script from watching a session +autofs [] (5) - Format of the automounter maps +autoheader [] (1) - Create a template header for configure +autom4te [] (1) - Generate files and scripts thanks to M4 +automount [] (8) - configure mount points for autofs +autopoint [] (1) - copies standard gettext infrastructure +autoreconf [] (1) - Update generated configuration files +autoscan [] (1) - Generate a preliminary configure.in +autoupdate [] (1) - Update a configure.in to a newer Autoconf +autouse [] (3) - postpone load of modules until a function is used +avcall [] (3) - build a C argument list incrementally and call a C function on it +baby_steps [] (3) - Calls your handler in baby_steps for set processing +backend [] (7) - cups backend transmission interfaces +backend [] (7) - spec - interface between jw and its backends +backgammon [] (6) - the game of backgammon +backtrace [] (3) - support for application self - debugging +backtrace_symbols [] (3) - support for application self - debugging +backtrace_symbols_fd [] (3) - support for application self - debugging +badblocks [] (8) - search a device for bad blocks +banner [] (6) - print large banner on printer +barcode [] (6) - draws a random sequence of barcodes for the products you enjoy +base [] (3) - Establish an ISA relationship with base classes at compile time +base64 [] (1) - base64 encode/decode data and print to standard output +basename [] (1) - strip directory and suffix from filenames +basename [] (3) - parse pathname components +bash [] (1) - GNU Bourne-Again SHell +bash [] (1) - bash built-in commands, see bash(1) +batch [] (1) - queue, examine or delete jobs for later execution +battlestar [] (6) - a tropical adventure game +baudrate [] (3) - curses environment query routines +bbkeys [] (1) - a general XWindow keygrabber +bbkeys.bb [] (5) - bbkeys style configuration file +bbkeysrc [] (5) - bbkeys keymap configuration file +bc [] (1) - An arbitrary precision calculator language +bcc [] (1) - Bruce's C compiler +bccmd [] (8) - Utility for the CSR BCCMD interface +bcd [] (6) - reformat input as punch cards, paper tape or morse code +bcmp [] (3) - byte string operations +bcmp [] (3) - compare byte sequences +bcopy [] (3) - byte string operations +bcopy [] (3) - copy byte sequence +bdflush [] (2) - start, flush, or tune buffer-dirty-flush daemon +bdftopcf [] (1) - convert X font from Bitmap Distribution Format to Portable Compiled Format +bdftruncate [] (1) - generate truncated BDF font from ISO 10646-1-encoded BDF font +be16toh [] (3) - convert values between host and big - /little-endian byte order +be32toh [] (3) - convert values between host and big - /little-endian byte order +be64toh [] (3) - convert values between host and big - /little-endian byte order +beep [] (3) - curses bell and screen flash routines +beforelight [] (1) - screen saver +bell [] (n) - Ring a display's bell +ber_alloc_t [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_bvarray_add [] (3) - LBER types and allocation functions +ber_bvarray_free [] (3) - LBER types and allocation functions +ber_bvdup [] (3) - LBER types and allocation functions +ber_bvecadd [] (3) - LBER types and allocation functions +ber_bvecfree [] (3) - LBER types and allocation functions +ber_bvfree [] (3) - LBER types and allocation functions +ber_bvstr [] (3) - LBER types and allocation functions +ber_bvstrdup [] (3) - LBER types and allocation functions +ber_dupbv [] (3) - LBER types and allocation functions +ber_first_element [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_flush [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_free [] (3) - LBER types and allocation functions +ber_get_bitstring [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_boolean [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_enum [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_int [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_next [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_null [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_stringa [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_stringal [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_stringb [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_get_stringbv [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_int_t [] (3) - LBER types and allocation functions +ber_len_t [] (3) - LBER types and allocation functions +ber_memalloc [] (3) - LBER memory allocators +ber_memcalloc [] (3) - LBER memory allocators +ber_memfree [] (3) - LBER memory allocators +ber_memrealloc [] (3) - LBER memory allocators +ber_memvfree [] (3) - LBER memory allocators +ber_next_element [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_peek_tag [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_printf [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_bitstring [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_boolean [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_enum [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_int [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_null [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_ostring [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_seq [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_set [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_put_string [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_scanf [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_skip_tag [] (3) - LBER simplified Basic Encoding Rules library routines for decoding +ber_slen_t [] (3) - LBER types and allocation functions +ber_start_seq [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_start_set [] (3) - LBER simplified Basic Encoding Rules library routines for encoding +ber_str2bv [] (3) - LBER types and allocation functions +ber_tag_t [] (3) - LBER types and allocation functions +ber_uint_t [] (3) - LBER types and allocation functions +bg [] (1) - bash built-in commands, see bash(1) +bg_test [] (6) - test the background mode of svgalib +bgerror [] (n) - Command invoked to process background errors +bggen [] (1) - generates colored backgrounds on X11 displays +biff [] (1) - be notified if mail arrives and who it is from +bigint [] (3) - Transparent BigInteger support for Perl +bignum [] (3) - Transparent BigNumber support for Perl +bigrat [] (3) - Transparent BigNumber/BigRational support for Perl +binary [] (n) - Insert and extract fields from binary strings +bind [] (1) - bash built-in commands, see bash(1) +bind [] (2) - bind a name to a socket +bind [] (n) - Arrange for X events to invoke Tcl scripts +bind_textdomain_codeset [] (3) - set encoding of message translations +bindresvport [] (3) - bind a socket to a privileged IP port +bindtags [] (n) - Determine which bindings apply to a window, and order of evaluation +bindtextdomain [] (3) - set directory containing message catalogs +bio [] (3) - I/O abstraction +bioradtopgm [] (1) - convert a Biorad confocal file into a portable graymap +biosdecode [] (8) - BIOS information decoder +bison [] (1) - GNU Project parser generator (yacc replacement) +bitmap [] (1) - bitmap editor and converter utilities for the X Window System +bitmap [] (n) - Images that display two colors +bkgd [] (3) - curses window background manipulation routines +bkgdset [] (3) - curses window background manipulation routines +bkgrnd [] (3) - curses window complex background manipulation routines +bkgrndset [] (3) - curses window complex background manipulation routines +blackbox [] (1) - a window manager for X11 +blaster [] (6) - simulation of space combat +blib [] (3) - Use MakeMaker's uninstalled version of a package +blitspin [] (6) - rotate a bitmap in an interesting way +blkid [] (8) - command-line utility to locate/print block device attributes +blockdev [] (8) - call block device ioctls from the command line +blocktube [] (6) - draws a swirling, falling tunnel of reflective slabs +blowfish [] (3) - Blowfish encryption +bmp2tiff [] (1) - create a TIFF file from a Microsoft Windows Device Independent Bitmap image file +bmptopnm [] (1) - convert a BMP file into a PBM, PGM, or PNM image +bmtoa [] (1) - bitmap editor and converter utilities for the X Window System +bn [] (3) - multiprecision integer arithmetics +bn_add_words [] (3) - BIGNUM library internal functions +bn_check_top [] (3) - BIGNUM library internal functions +bn_cmp_words [] (3) - BIGNUM library internal functions +bn_div_words [] (3) - BIGNUM library internal functions +bn_dump [] (3) - BIGNUM library internal functions +bn_expand [] (3) - BIGNUM library internal functions +bn_expand2 [] (3) - BIGNUM library internal functions +bn_fix_top [] (3) - BIGNUM library internal functions +bn_mul_add_words [] (3) - BIGNUM library internal functions +bn_mul_comba4 [] (3) - BIGNUM library internal functions +bn_mul_comba8 [] (3) - BIGNUM library internal functions +bn_mul_high [] (3) - BIGNUM library internal functions +bn_mul_low_normal [] (3) - BIGNUM library internal functions +bn_mul_low_recursive [] (3) - BIGNUM library internal functions +bn_mul_normal [] (3) - BIGNUM library internal functions +bn_mul_part_recursive [] (3) - BIGNUM library internal functions +bn_mul_recursive [] (3) - BIGNUM library internal functions +bn_mul_words [] (3) - BIGNUM library internal functions +bn_print [] (3) - BIGNUM library internal functions +bn_set_high [] (3) - BIGNUM library internal functions +bn_set_low [] (3) - BIGNUM library internal functions +bn_set_max [] (3) - BIGNUM library internal functions +bn_sqr_comba4 [] (3) - BIGNUM library internal functions +bn_sqr_comba8 [] (3) - BIGNUM library internal functions +bn_sqr_normal [] (3) - BIGNUM library internal functions +bn_sqr_recursive [] (3) - BIGNUM library internal functions +bn_sqr_words [] (3) - BIGNUM library internal functions +bn_sub_words [] (3) - BIGNUM library internal functions +bn_wexpand [] (3) - BIGNUM library internal functions +boing [] (6) - draws a bouncing ball like the ancient Amiga demo +boot [] (7) - scripts - General description of boot sequence +bootlogd [] (8) - record boot messages +bootparam [] (7) - Introduction to boot time parameters of the Linux kernel +bootparamd [] (8) - boot parameter server +bootpd [] (8) - Internet Boot Protocol server/gateway +bootpef [] (8) - BOOTP Extension File compiler +bootpgw [] (8) - Internet Boot Protocol server/gateway +bootptab [] (5) - Internet Bootstrap Protocol server database +bootptest [] (8) - send BOOTP queries and print responses +border [] (3) - create curses borders, horizontal and vertical lines +border_set [] (3) - create curses borders or lines using complex characters and renditions +bouboule [] (6) - draws spinning 3D blobs +bouncingcow [] (6) - a happy cow on a trampoline in 3D. Moo +box [] (3) - create curses borders, horizontal and vertical lines +box_set [] (3) - create curses borders or lines using complex characters and renditions +boxed [] (6) - draws a box full of 3D bouncing balls that explode +boxfit [] (6) - fills space with a gradient of growing boxes or circles +bpe [] (1) - examine and patch binary files +braid [] (6) - draws random color-cycling braids around a circle +brctl [] (8) - ethernet bridge administration +break [] (1) - bash built-in commands, see bash(1) +break [] (2) - unimplemented system calls +break [] (n) - Abort looping command +brk [] (2) - change data segment size +brushtopbm [] (1) - convert a doodle brush file into a portable bitmap +bsd_signal [] (3) - signal handling with BSD semantics +bsearch [] (3) - binary search of a sorted array +bsetbg [] (1) - utility to manipulate the appearance of the X11 desktop's root window +bsetroot [] (1) - blackbox utility to change root window appearance +bsod [] (6) - Blue Screen of Death emulator +btcflash [] (1) - Firmware flash utility for BTC DRW1008 DVD+/-RW recorder +btowc [] (3) - convert single byte to wide character +btree [] (3) - btree database access method +bubble3d [] (6) - 3d rising bubbles +buildhash [] (1) - Interactive spelling checking +builtin [] (1) - bash built-in commands, see bash(1) +bulk_to_next [] (3) - Convert GETBULK requests into GETNEXT requests for the handler +bumps [] (6) - move distorting spotlight around desktop +bunzip2 [] (1) - a block-sorting file compressor, v1.0.4 +button [] (n) - Create and manipulate button widgets +bytes [] (3) - Perl pragma to force byte semantics rather than character semantics +bzcat [] (1) - decompresses files to stdout +bzcmp [] (1) - compare bzip2 compressed files +bzdiff [] (1) - compare bzip2 compressed files +bzegrep [] (1) - search possibly bzip2 compressed files for a regular expression +bzero [] (3) - byte string operations +bzero [] (3) - write zero-valued bytes +bzfgrep [] (1) - search possibly bzip2 compressed files for a regular expression +bzgrep [] (1) - search possibly bzip2 compressed files for a regular expression +bzip2 [] (1) - a block-sorting file compressor, v1.0.4 +bzip2recover [] (1) - recovers data from damaged bzip2 files +bzless [] (1) - file perusal filter for crt viewing of bzip2 compressed text +bzmore [] (1) - file perusal filter for crt viewing of bzip2 compressed text +bzz [] (1) - DjVu general purpose compression utility +c++filt [] (1) - Demangle C++ and Java symbols +c2ph [] (1) - Dump C structures as generated from cc -g -S stabs +c44 [] (1) - DjVuPhoto encode +ca [] (1) - sample minimal CA application +cabs [] (3) - absolute value of a complex number +cabsf [] (3) - absolute value of a complex number +cabsl [] (3) - absolute value of a complex number +caca [] (1) - config - script to get information about the installed version of libcaca +caca.h [] (3) - The libcaca public header +caca_event [] (3) - Handling of user events +cacademo [] (1) - libcaca's demonstration applications +cacafire [] (1) - libcaca's demonstration applications +cacaplay [] (1) - play libcaca files +cacaserver [] (1) - telnet server for libcaca +cacaview [] (1) - ASCII image browser +cache_handler [] (3) - Maintains a cache of data for use by lower level handlers +cacheflush [] (2) - flush contents of instruction and/or data cache +cacos [] (3) - complex arc cosine +cacosf [] (3) - complex arc cosine +cacosh [] (3) - complex arc hyperbolic cosine +cacoshf [] (3) - complex arc hyperbolic cosine +cacoshl [] (3) - complex arc hyperbolic cosine +cacosl [] (3) - complex arc cosine +caesar [] (6) - decrypt caesar cyphers +cage [] (6) - Escher's impossible cage, for xscreensaver +cal [] (1) - displays a calendar +callback [] (3) - closures with variable arguments as first-class C functions +calloc [] (3) - Allocate and free dynamic memory +cameratopam [] (1) - see http://netpbm.sourceforge.net/doc/cameratopam.html +can_change_color [] (3) - curses color manipulation routines +cancel [] (1) - cancel jobs +canfield [] (6) - the solitaire card game canfield +canonicalize_file_name [] (3) - return the canonicalized filename +canvas [] (n) - Create and manipulate canvas widgets +cap_clear [] (3) - capability data object manipulation +cap_clear_flag [] (3) - capability data object manipulation +cap_compare [] (3) - capability data object manipulation +cap_copy_ext [] (3) - capability data object manipulation +cap_copy_ext [] (3) - capability state external representation translation +cap_copy_int [] (3) - capability data object manipulation +cap_copy_int [] (3) - capability state external representation translation +cap_dup [] (3) - capability data object manipulation +cap_dup [] (3) - capability data object storage management +cap_free [] (3) - capability data object manipulation +cap_free [] (3) - capability data object storage management +cap_from_name [] (3) - capability data object manipulation +cap_from_name [] (3) - capability state textual representation translation +cap_from_text [] (3) - capability data object manipulation +cap_from_text [] (3) - capability state textual representation translation +cap_get_fd [] (3) - capability data object manipulation +cap_get_fd [] (3) - capability manipulation on files +cap_get_file [] (3) - capability data object manipulation +cap_get_file [] (3) - capability manipulation on files +cap_get_flag [] (3) - capability data object manipulation +cap_get_pid [] (3) - capability data object manipulation +cap_get_proc [] (3) - capability data object manipulation +cap_get_proc [] (3) - capability manipulation on processes +cap_init [] (3) - capability data object storage management +cap_set_fd [] (3) - capability data object manipulation +cap_set_fd [] (3) - capability manipulation on files +cap_set_file [] (3) - capability data object manipulation +cap_set_file [] (3) - capability manipulation on files +cap_set_flag [] (3) - capability data object manipulation +cap_set_proc [] (3) - capability data object manipulation +cap_set_proc [] (3) - capability manipulation on processes +cap_size [] (3) - capability data object manipulation +cap_size [] (3) - capability state external representation translation +cap_to_name [] (3) - capability data object manipulation +cap_to_name [] (3) - capability state textual representation translation +cap_to_text [] (3) - capability data object manipulation +cap_to_text [] (3) - capability state textual representation translation +capabilities [] (7) - overview of Linux capabilities +capget [] (2) - set/get capabilities of thread(s) +capgetp [] (3) - capability manipulation on processes +capset [] (2) - set/get capabilities of thread(s) +captoinfo [] (1) - convert a termcap description into a terminfo description +card [] (1) - print reference card of program options +carg [] (3) - calculate the argument +cargf [] (3) - calculate the argument +cargl [] (3) - calculate the argument +carousel [] (6) - displays multiple images rotating in a circular formation +carp [] (3) - warn of errors (from perspective of caller) +case [] (n) - Evaluate one of several scripts, depending on a given value +casin [] (3) - complex arc sine +casinf [] (3) - complex arc sine +casinh [] (3) - complex arc sine hyperbolic +casinhf [] (3) - complex arc sine hyperbolic +casinhl [] (3) - complex arc sine hyperbolic +casinl [] (3) - complex arc sine +cat [] (1) - concatenate files and print on the standard output +catan [] (3) - complex arc tangents +catanf [] (3) - complex arc tangents +catanh [] (3) - complex arc tangents hyperbolic +catanhf [] (3) - complex arc tangents hyperbolic +catanhl [] (3) - complex arc tangents hyperbolic +catanl [] (3) - complex arc tangents +catch [] (n) - Evaluate script and trap exceptional returns +catclose [] (3) - open/close a message catalog +catgets [] (3) - get message from a message catalog +catopen [] (3) - open/close a message catalog +cbc_crypt [] (3) - fast DES encryption +cbreak [] (3) - curses input options +cbrt [] (3) - cube root function +cbrtf [] (3) - cube root function +cbrtl [] (3) - cube root function +ccache [] (1) - a fast compiler cache +ccache [] (1) - swig - a fast compiler cache +ccmake [] (1) - Curses Interface for CMake +ccmakedep [] (1) - create dependencies in makefiles using a C compiler +ccos [] (3) - complex cosine function +ccosf [] (3) - complex cosine function +ccosh [] (3) - complex hyperbolic cosine +ccoshf [] (3) - complex hyperbolic cosine +ccoshl [] (3) - complex hyperbolic cosine +ccosl [] (3) - complex cosine function +ccurve [] (6) - self-similar linear fractals +cd [] (1) - bash built-in commands, see bash(1) +cd [] (1) - paranoia 9.8 (Paranoia release III via libcdio) - an audio CD reading utility which includes extra data verification features +cd [] (n) - Change working directory +cdda2wav [] (1) - a sampling utility that dumps CD audio data into wav sound files +cdparanoia 10.2 (Paranoia release III) [] (1) - an audio CD reading utility which includes extra data verification features +cdrdao [] (1) - writes audio CD-Rs in disc-at-once mode +cdrecord [] (1) - record audio or data Compact Disks or Digital Versatile Disks from a master +cdrom_id [] (8) - udev callout to determine the capabilities of optical drives and media +ceil [] (3) - ceiling function: smallest integral value not less than argument +ceilf [] (3) - ceiling function: smallest integral value not less than argument +ceill [] (3) - ceiling function: smallest integral value not less than argument +celtic [] (6) - draws celtic cross-stich patterns +cerf [] (3) - complex error function +cerfc [] (3) - complex error function +cerfcf [] (3) - complex error function +cerfcl [] (3) - complex error function +cerff [] (3) - complex error function +cerfl [] (3) - complex error function +certtool [] (1) - Manipulate certificates and keys +cexp [] (3) - complex exponential function +cexp2 [] (3) - base-2 exponent of a complex number +cexp2f [] (3) - base-2 exponent of a complex number +cexp2l [] (3) - base-2 exponent of a complex number +cexpf [] (3) - complex exponential function +cexpl [] (3) - complex exponential function +cfdisk [] (8) - Curses based disk partition table manipulator for Linux +cfgetispeed [] (3) - get and set terminal attributes, line control, get and set baud rate +cfgetospeed [] (3) - get and set terminal attributes, line control, get and set baud rate +cfmakeraw [] (3) - get and set terminal attributes, line control, get and set baud rate +cfree [] (3) - free allocated memory +cfscores [] (6) - the solitaire card game canfield +cfsetispeed [] (3) - get and set terminal attributes, line control, get and set baud rate +cfsetospeed [] (3) - get and set terminal attributes, line control, get and set baud rate +cfsetspeed [] (3) - get and set terminal attributes, line control, get and set baud rate +chacl [] (1) - change the access control list of a file or directory +chage [] (1) - change user password expiry information +chan [] (n) - Read, write and manipulate channels +charmap [] (5) - character symbols to define character encodings +charnames [] (3) - define character names for eN{named} string literal escapes +charsets [] (7) - programmer's view of character sets and internationalization +chat [] (8) - Automated conversational script with a modem +chattr [] (1) - change file attributes on a Linux second extended file system +chcon [] (1) - change file security context +chdir [] (2) - change working directory +cheatmake [] (1) - fool make into not rebuilding certain files +checkXML [] (1) - An XML lint tool for KDE DocBook XML documents +checkalias [] (1) - check to see if an alias is defined +checkbutton [] (n) - Create and manipulate checkbutton widgets +chem [] (1) - groff preprocessor for producing chemical structure diagrams +chfn [] (1) - change real user name and information +chgat [] (3) - curses character and window attribute control routines +chgrp [] (1) - change group ownership +chips [] (4) - Chips and Technologies video driver +chkdupexe [] (1) - find duplicate executables +chmod [] (1) - change file mode bits +chmod [] (2) - change permissions of a file +chown [] (1) - change file owner and group +chown [] (2) - change ownership of a file +chpasswd [] (8) - update password file in batch +chprop [] (1) - program to do something FIXME +chroot [] (1) - run command or interactive shell with special root directory +chroot [] (2) - change root directory +chrt [] (1) - manipulate real-time attributes of a process +chsh [] (1) - change login shell +chvt [] (1) - change foreground virtual terminal +ci [] (1) - check in RCS revisions +cimag [] (3) - get imaginary part of a complex number +cimagf [] (3) - get imaginary part of a complex number +cimagl [] (3) - get imaginary part of a complex number +ciphers [] (1) - SSL cipher display and cipher list tool +ciptool [] (1) - Bluetooth Common ISDN Access Profile (CIP) +circuit [] (6) - animates a number of 3D electronic components +cirrus [] (4) - Cirrus Logic video driver +citron [] (4) - Citron Infrared Touch Driver (CiTouch) +cjb2 [] (1) - Simple DjVuBitonal encoder +cjpeg [] (1) - compress an image file to a JPEG file +ckalloc [] (3) - allocate or free heap memory +ckfree [] (3) - allocate or free heap memory +ckrealloc [] (3) - allocate or free heap memory +cksum [] (1) - checksum and count the bytes in a file +classes.conf [] (5) - class configuration file for cups +cleanlinks [] (1) - remove dangling symbolic links and empty directories +clear [] (1) - clear the terminal screen +clear [] (3) - clear all or part of a curses window +clearenv [] (3) - clear the environment +clearerr [] (3) - check and reset stream status +clearok [] (3) - curses output options +client.conf [] (5) - client configuration file for cups +clipboard [] (n) - Manipulate Tk clipboard +clisp [] (1) - ANSI Common Lisp compiler, interpreter and debugger +clock [] (3) - Determine processor time +clock [] (n) - Obtain and manipulate dates and times +clock_getcpuclockid [] (3) - obtain ID of a process CPU-time clock +clock_getres [] (2) - clock and time functions +clock_gettime [] (2) - clock and time functions +clock_nanosleep [] (2) - high-resolution sleep with specifiable clock +clock_settime [] (2) - clock and time functions +clockdiff [] (8) - measure clock difference between hosts +clog [] (3) - natural logarithm of a complex number +clog10 [] (3) - base-10 logarithm of a complex number +clog10f [] (3) - base-10 logarithm of a complex number +clog10l [] (3) - base-10 logarithm of a complex number +clog2 [] (3) - base-2 logarithm of a complex number +clog2f [] (3) - base-2 logarithm of a complex number +clog2l [] (3) - base-2 logarithm of a complex number +clogf [] (3) - natural logarithm of a complex number +clogl [] (3) - natural logarithm of a complex number +clone [] (2) - create a child process +close [] (2) - close a file descriptor +close [] (n) - Close an open channel +closedir [] (3) - close a directory +closelog [] (3) - send messages to the system logger +cloudlife [] (6) - a cellular automaton based on Conway's Life +clrtobot [] (3) - clear all or part of a curses window +clrtoeol [] (3) - clear all or part of a curses window +cluck [] (3) - warn of errors with stack backtrace (not exported by default) +cmake [] (1) - Cross-Platform Makefile Generator +cmp [] (1) - compare two files byte by byte +cmuwmtopbm [] (1) - convert a CMU window manager bitmap into a portable bitmap +cnid_dbd [] (8) - implement access to CNID databases through a dedicated daemon process +cnid_index [] (1) - check and repair Netatalk CNID database indexes +cnid_metad [] (8) - start cnid_dbd daemons on request +co [] (1) - check out RCS revisions +col [] (1) - filter reverse line feeds from input +colcrt [] (1) - filter nroff output for CRT previewing +collateindex.pl [] (1) - generate DocBook index files +color_content [] (3) - curses color manipulation routines +color_set [] (3) - curses character and window attribute control routines +colors [] (n) - symbolic color names recognized by Tk +colrm [] (1) - remove columns from a file +column [] (1) - columnate lists +com_err [] (3) - common error display routine +comm [] (1) - compare two sorted files line by line +command [] (1) - bash built-in commands, see bash(1) +comp_err [] (1) - compile MySQL error message file +compare [] (1) - mathematically and visually annotate the difference between an image and its reconstruction +compass [] (6) - draws a spinning compass +compgen [] (1) - bash built-in commands, see bash(1) +compile_et [] (1) - error table compiler +complete [] (1) - bash built-in commands, see bash(1) +complex [] (7) - basics of complex mathematics +composite [] (1) - overlaps one image over another +compound [] (n) - multi-line compound image type +compress [] (1) - compress and expand data (version 4.1) +compress [] (1) - dummy - manual page for compress-dummy - sharutils 4.6.3 +comsat [] (8) - biff server +concat [] (n) - Join lists together +confess [] (3) - die of errors with stack backtrace +config [] (5) - OpenSSL CONF library configuration files +config.guess [] (1) - guess the build system triplet +config.sub [] (1) - validate and canonicalize a configuration triplet +config_data [] (1) - Query or change configuration of Perl modules +config_perror [] (3) - read_config functions +config_pwarn [] (3) - read_config functions +confstr [] (3) - get configuration dependent string variables +conj [] (3) - calculate the complex conjugate +conjf [] (3) - calculate the complex conjugate +conjl [] (3) - calculate the complex conjugate +conjure [] (1) - interprets and executes scripts written in the Magick Scripting Language (MSL) +connect [] (2) - initiate a connection on a socket +console [] (4) - console terminal and virtual consoles +console [] (n) - Control the console on systems without a real console +console ioctl [] (4) - ioctl's for console terminal and virtual consoles +console_codes [] (4) - Linux console escape and control sequences +consoletype [] (1) - print type of the console connected to standard input +constant [] (3) - Perl pragma to declare constants +continue [] (1) - bash built-in commands, see bash(1) +continue [] (n) - Skip to the next iteration of a loop +convert [] (1) - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more +convertquota [] (8) - convert quota from old file format to new one +convfont [] (1) - convert font files for svgalib +copysign [] (3) - copy sign of a number +copysignf [] (3) - copy sign of a number +copysignl [] (3) - copy sign of a number +copywin [] (3) - overlay and manipulate overlapped curses windows +coral [] (6) - simulates coral growth, albeit somewhat slowly +core [] (5) - core dump file +corelist [] (1) - a commandline frontend to Module::CoreList +cos [] (3) - cosine function +cosf [] (3) - cosine function +cosh [] (3) - hyperbolic cosine function +coshf [] (3) - hyperbolic cosine function +coshl [] (3) - hyperbolic cosine function +cosl [] (3) - cosine function +countmail [] (6) - be obnoxious about how much mail you have +cp [] (1) - copy files and directories +cp1251 [] (7) - the CP 1251 character set encoded in octal, decimal, and hexadecimal +cpack [] (1) - Packaging driver provided by CMake +cpaldjvu [] (1) - DjVuDocument encoder for low-color images +cpan [] (1) - easily interact with CPAN from the command line +cpan2dist [] (1) - The CPANPLUS distribution creator +cpanp [] (1) - The CPANPLUS launcher +cpio [] (1) - copy files to and from archives +cpio [] (5) - format of cpio archive files +cpow [] (3) - complex power function +cpowf [] (3) - complex power function +cpowl [] (3) - complex power function +cpp [] (1) - The C Preprocessor +cproj [] (3) - project into Riemann Sphere +cprojf [] (3) - project into Riemann Sphere +cprojl [] (3) - project into Riemann Sphere +cpuset [] (7) - confine processes to processor and memory node subsets +crackberg [] (6) - Lose your way wandering some height fields, and enjoy candy +crda [] (8) - send to the kernel a wireless regulatory domain for a given ISO / IEC 3166 alpha2 +creal [] (3) - get real part of a complex number +crealf [] (3) - get real part of a complex number +creall [] (3) - get real part of a complex number +creat [] (2) - open and possibly create a file or device +create_cvsignore [] (1) - Create preliminary .cvsignore in the current directory +create_floppy_devices [] (8) - udev callout to create all possible floppy devices based on the CMOS type +create_makefile [] (1) - Creates Makefile.in and Makefile from a Makefile.am +create_makefiles [] (1) - Recreates all Makefiles beneath a directory +create_module [] (2) - create a loadable module entry +credentials [] (7) - process identifiers +cribbage [] (6) - the card game cribbage +crl [] (1) - CRL utility +crl2pkcs7 [] (1) - Create a PKCS#7 structure from a CRL and certificates +croak [] (3) - die of errors (from perspective of caller) +crond [] (8) - cron daemon (Dillon's Cron) +crontab [] (1) - manipulate per-user crontabs (Dillon's Cron) +crypt [] (3) - password and data encryption +crypt_r [] (3) - password and data encryption +cryptdir [] (1) - encrypt/decrypt all files in a directory +crypto [] (3) - OpenSSL cryptographic library +cryptsetup [] (8) - setup cryptographic volumes for dm-crypt (including LUKS extension) +crystal [] (6) - kaleidescope +cscope [] (1) - interactively examine a C program +csepdjvu [] (1) - DjVu encoder for separated data files +csin [] (3) - complex sine function +csinf [] (3) - complex sine function +csinh [] (3) - complex hyperbolic sine +csinhf [] (3) - complex hyperbolic sine +csinhl [] (3) - complex hyperbolic sine +csinl [] (3) - complex sine function +csplit [] (1) - split a file into sections determined by context lines +csqrt [] (3) - complex square root +csqrtf [] (3) - complex square root +csqrtl [] (3) - complex square root +ctags [] (1) - Generate tag files for source code +ctags [] (1) - Generates tags and (optionally) refs files +ctags [] (1) - generate tag file for Emacs, vi +ctan [] (3) - complex tangent function +ctanf [] (3) - complex tangent function +ctanh [] (3) - complex hyperbolic tangent +ctanhf [] (3) - complex hyperbolic tangent +ctanhl [] (3) - complex hyperbolic tangent +ctanl [] (3) - complex tangent function +ctermid [] (3) - get controlling terminal name +ctest [] (1) - Testing driver provided by CMake +ctime [] (3) - transform date and time to broken-down time or ASCII +ctime_r [] (3) - transform date and time to broken-down time or ASCII +ctrlaltdel [] (8) - set the function of the Ctrl-Alt-Del combination +cu [] (1) - Call up another system +cube21 [] (6) - animates the Cube 21 puzzle +cubenetic [] (6) - cubist 3D undulating blob +cubestorm [] (6) - a series of 3D boxes that fill space +cubicgrid [] (6) - rotating 3D lattice seen from inside +cue2toc [] (1) - convert CUE to TOC format +cups [] (1) - config - get cups api, compiler, directory, and link information +cups [] (8) - calibrate - ESP CUPS Printer Calibration Tool +cups [] (8) - deviced - cups device daemon +cups [] (8) - driverd - cups driver daemon +cups [] (8) - genppd - generate Gutenprint PPD files for use with CUPS +cups [] (8) - genppdupdate - update CUPS+Gutenprint PPD files +cups [] (8) - lpd - receive print jobs and report printer status to lpd clients +cups [] (8) - polld - cups printer polling daemon +cupsaddsmb [] (8) - export printers to samba for windows clients +cupsctl [] (8) - configure cupsd.conf options +cupsd [] (8) - common unix printing system daemon +cupsd.conf [] (5) - server configuration file for cups +cupsdisable [] (8) - stop/start printers and classes +cupsenable [] (8) - stop/start printers and classes +cupsfilter [] (8) - convert a file to another format using cups filters +cupsprofile [] (1) - cups simple profiling tool +cupstestdsc [] (1) - test conformance of postscript files +cupstestppd [] (1) - test conformance of ppd files +curl [] (1) - config - Get information about a libcurl installation +curl [] (1) - transfer a URL +curl_easy_cleanup [] (3) - End a libcurl easy session +curl_easy_duphandle [] (3) - Clone a libcurl session handle +curl_easy_escape [] (3) - URL encodes the given string +curl_easy_getinfo [] (3) - extract information from a curl handle +curl_easy_init [] (3) - Start a libcurl easy session +curl_easy_pause [] (3) - pause and unpause a connection +curl_easy_perform [] (3) - Perform a file transfer +curl_easy_recv [] (3) - receives raw data on an easy connection +curl_easy_reset [] (3) - reset all options of a libcurl session handle +curl_easy_send [] (3) - sends raw data over an easy connection +curl_easy_setopt [] (3) - set options for a curl easy handle +curl_easy_strerror [] (3) - return string describing error code +curl_easy_unescape [] (3) - URL decodes the given string +curl_escape [] (3) - URL encodes the given string +curl_formadd [] (3) - add a section to a multipart/formdata HTTP POST +curl_formfree [] (3) - free a previously build multipart/formdata HTTP POST chain +curl_formget [] (3) - serialize a previously built multipart/formdata HTTP POST chain +curl_free [] (3) - reclaim memory that has been obtained through a libcurl call +curl_getdate [] (3) - Convert a date string to number of seconds since January 1, 1970 +curl_getenv [] (3) - return value for environment name +curl_global_cleanup [] (3) - global libcurl cleanup +curl_global_init [] (3) - Global libcurl initialisation +curl_global_init_mem [] (3) - Global libcurl initialisation with memory callbacks +curl_maprintf [] (3) - formatted output conversion +curl_mfprintf [] (3) - formatted output conversion +curl_mprintf [] (3) - formatted output conversion +curl_msnprintf [] (3) - formatted output conversion +curl_msprintf curl_mvaprintf [] (3) - formatted output conversion +curl_multi_add_handle [] (3) - add an easy handle to a multi session +curl_multi_assign [] (3) - set data to association with an internal socket +curl_multi_cleanup [] (3) - close down a multi session +curl_multi_fdset [] (3) - extracts file descriptor information from a multi handle +curl_multi_info_read [] (3) - read multi stack informationals +curl_multi_init [] (3) - create a multi handle +curl_multi_perform [] (3) - reads/writes available data from each easy handle +curl_multi_remove_handle [] (3) - remove an easy handle from a multi session +curl_multi_setopt [] (3) - set options for a curl multi handle +curl_multi_socket [] (3) - reads/writes available data +curl_multi_strerror [] (3) - return string describing error code +curl_multi_timeout [] (3) - how long to wait for action before proceeding +curl_mvfprintf [] (3) - formatted output conversion +curl_mvprintf [] (3) - formatted output conversion +curl_mvsnprintf [] (3) - formatted output conversion +curl_mvsprintf [] (3) - formatted output conversion +curl_share_cleanup [] (3) - Clean up a shared object +curl_share_init [] (3) - Create a shared object +curl_share_setopt [] (3) - Set options for a shared object +curl_share_strerror [] (3) - return string describing error code +curl_slist_append [] (3) - add a string to an slist +curl_slist_free_all [] (3) - free an entire curl_slist list +curl_strequal [] (3) - case insensitive string comparisons +curl_strnequal [] (3) - case insensitive string comparisons +curl_unescape [] (3) - URL decodes the given string +curl_version [] (3) - returns the libcurl version string +curl_version_info [] (3) - returns run-time libcurl version info +currentcontext [] (3) - get the current graphics contents +curs_set [] (3) - low-level curses routines +curses_version [] (3) - miscellaneous curses extensions +cursors [] (n) - mouse cursors available in Tk +cuserid [] (3) - get username +cut [] (1) - remove sections from each line of files +cvs [] (1) - Concurrent Versions System +cvs [] (5) - Concurrent Versions System support files +cvsbug [] (8) - send problem report (PR) about CVS to a central support site +cvscheck [] (1) - Offline status report for files in a checked-out CVS module +cvslastchange [] (1) - Display the last change committed to CVS for a file +cvslastlog [] (1) - Prints the log entry for the last commit for a file +cvsrevertlast [] (1) - Revert files in CVS by one version +cvt [] (1) - calculate VESA CVT mode lines +cwaves [] (6) - languid sinusoidal colors +cxpm [] (1) - Check an XPM (X PixMap) file - XPM 1, 2, or 3 +cxxmetric [] (1) - Simple source metrics for C and C++ +cynosure [] (6) - gentle overlapping squares screen saver +cytune [] (8) - Tune driver parameters for Cyclades-Z multiport serial card +d2i_509_CRL_fp [] (3) - PKCS#10 certificate request functions +d2i_ASN1_OBJECT [] (3) - ASN1 OBJECT IDENTIFIER functions +d2i_DHparams [] (3) - PKCS#3 DH parameter functions +d2i_DSAPrivateKey [] (3) - DSA key encoding and parsing functions +d2i_DSAPublicKey [] (3) - DSA key encoding and parsing functions +d2i_DSA_PUBKEY [] (3) - DSA key encoding and parsing functions +d2i_DSA_SIG [] (3) - DSA key encoding and parsing functions +d2i_Netscape_RSA [] (3) - RSA public and private key encoding functions +d2i_PKCS8PrivateKey_bio [] (3) - PKCS#8 format private key functions +d2i_PKCS8PrivateKey_fp [] (3) - PKCS#8 format private key functions +d2i_RSAPrivateKey [] (3) - RSA public and private key encoding functions +d2i_RSAPublicKey [] (3) - RSA public and private key encoding functions +d2i_RSA_PUBKEY [] (3) - RSA public and private key encoding functions +d2i_SSL_SESSION [] (3) - convert SSL_SESSION object from/to ASN1 representation +d2i_X509 [] (3) - X509 encode and decode functions +d2i_X509_ALGOR [] (3) - AlgorithmIdentifier functions +d2i_X509_CRL [] (3) - PKCS#10 certificate request functions +d2i_X509_CRL_bio [] (3) - PKCS#10 certificate request functions +d2i_X509_NAME [] (3) - X509_NAME encoding functions +d2i_X509_REQ [] (3) - PKCS#10 certificate request functions +d2i_X509_REQ_bio [] (3) - PKCS#10 certificate request functions +d2i_X509_REQ_fp [] (3) - PKCS#10 certificate request functions +d2i_X509_SIG [] (3) - DigestInfo functions +d2i_X509_bio [] (3) - X509 encode and decode functions +d2i_X509_fp [] (3) - X509 encode and decode functions +daemon [] (3) - run in the background +dangerball [] (6) - a 3D ball that periodically extrudes spikes. Ouch! +date [] (1) - print or set the system date and time +daylight [] (3) - initialize time conversion information +dbilogstrip [] (1) - filter to normalize DBI trace logs for diff'ing +dbiprof [] (1) - command-line client for DBI::ProfileData +dbiproxy [] (1) - A proxy server for the DBD::Proxy driver +dbmmanage [] (1) - Manage user authentication files in DBM format +dbopen [] (3) - database access methods +dbus [] (1) - cleanup-sockets - clean up leftover sockets in a directory +dbus [] (1) - daemon - Message bus daemon +dbus [] (1) - launch - Utility to start a message bus from a shell script +dbus [] (1) - monitor - debug probe to print message bus messages +dbus [] (1) - send - Send a message to a message bus +dbus [] (1) - uuidgen - Utility to generate UUIDs +dc [] (1) - an arbitrary precision calculator +dcgettext [] (3) - translate message +dcngettext [] (3) - translate message and choose plural form +dd [] (1) - convert and copy a file +ddate [] (1) - converts Gregorian dates to Discordian dates +ddbugtopbm [] (1) - see http://netpbm.sourceforge.net/doc/ddbugtopbm.html +dde [] (n) - Execute a Dynamic Data Exchange command +ddjvu [] (1) - Command line DjVu decoder +ddp [] (7) - Linux AppleTalk protocol implementation +deallocvt [] (1) - deallocate unused virtual consoles +debug [] (3) - Print out debugging information about the handler chain being called +debugfs [] (8) - ext2/ext3 file system debugger +debugreiserfs [] (8) - The debugging tool for the ReiserFS filesystem +decayscreen [] (6) - make a screen meltdown +declare [] (1) - bash built-in commands, see bash(1) +deco [] (6) - draw tacky 70s basement wall panelling +def_prog_mode [] (3) - low-level curses routines +def_shell_mode [] (3) - low-level curses routines +default_store [] (3) - generic storage of global data +define_key [] (3) - define a keycode +del_curterm [] (3) - curses interfaces to terminfo database +delay_output [] (3) - miscellaneous curses utility routines +delch [] (3) - delete character under the cursor in a curses window +delete_module [] (2) - delete a loadable module entry +deleteln [] (3) - delete and insert lines in a curses window +delscreen [] (3) - curses screen initialization and manipulation routines +deluxe [] (6) - pulsing sequence of stars, circles, and lines +delwin [] (3) - create curses windows +demangle [] (1) - Undo C++ name mangling for symbols +demon [] (6) - cellular automaton +depmod [] (8) - program to generate modules.dep and map files +depmod.conf [] (5) - Configuration file/directory for depmod +depmod.d [] (5) - Configuration file/directory for depmod +derwin [] (3) - create curses windows +des_crypt [] (3) - fast DES encryption +des_modes [] (7) - the variants of DES and other crypto algorithms of OpenSSL +des_read_2passwords [] (3) - Compatibility user interface functions +des_read_password [] (3) - Compatibility user interface functions +des_read_pw [] (3) - Compatibility user interface functions +des_read_pw_string [] (3) - Compatibility user interface functions +des_setparity [] (3) - fast DES encryption +destroy [] (n) - Destroy one or more windows +devdump [] (8) - Utility programs for dumping and verifying iso9660 images +df [] (1) - report file system disk space usage +dfutool [] (1) - Device Firmware Upgrade utility +dga [] (1) - test program for the XFree86-DGA extension +dgettext [] (3) - translate message +dgst [] (1) - message digests +dh [] (3) - Diffie-Hellman key agreement +dhclient [] (8) - Dynamic Host Configuration Protocol Client +dhclient [] (8) - script - DHCP client network configuration script +dhclient.conf [] (5) - DHCP client configuration file +dhclient.leases [] (5) - DHCP client lease database +dhcp [] (5) - eval - ISC DHCP conditional evaluation +dhcp [] (5) - options - Dynamic Host Configuration Protocol options +dhcpcd [] (8) - an RFC 2131 compliant DHCP client +dhcpctl_initialize [] (3) - dhcpctl library initialization +dhcpd [] (8) - Dynamic Host Configuration Protocol Server +dhcpd.conf [] (5) - dhcpd configuration file +dhcpd.leases [] (5) - DHCP client lease database +dhcrelay [] (8) - Dynamic Host Configuration Protocol Relay Agent +dhparam [] (1) - DH parameter manipulation and generation +diagnostics [] (1) - produce verbose warning diagnostics +diagnostics [] (3) - produce verbose warning diagnostics +dialog [] (1) - display dialog boxes from shell scripts +dict [] (n) - Manipulate dictionaries +diff [] (1) - compare files line by line +diff3 [] (1) - compare three files line by line +diffpp [] (1) - pretty-print diff outputs with GNU enscript +diffstat [] (1) - make histogram from diff-output +difftime [] (3) - calculate time difference +dig [] (1) - DNS lookup utility +dir [] (1) - list directory contents +dir_colors [] (5) - configuration file for dircolors(1) +dircolors [] (1) - color setup for ls +dirfd [] (3) - get directory stream file descriptor +dirmngr [] (1) - CRL and OCSP daemon +dirmngr [] (1) - client - CRL and OCSP daemon +dirname [] (1) - strip non-directory suffix from file name +dirname [] (3) - parse pathname components +dirs [] (1) - bash built-in commands, see bash(1) +discrete [] (6) - discrete map iterative function fractal systems +diskd [] (1) - disk daemon; wait for disk to be inserted +diskseek [] (1) - disk seek daemon; simulates Messy Dos' drive cleaning effect +diskseekd [] (1) - disk seek daemon; simulates Messy Dos' drive cleaning effect +disown [] (1) - bash built-in commands, see bash(1) +display [] (1) - displays an image or image sequence on any X server +distcc [] (1) - distributed C/C++/ObjC compiler +distccd [] (1) - distributed C/C++ compiler server +distccmon [] (1) - text - Displays current compilation jobs in text form +distort [] (6) - distort the content of the screen in interesting ways +ditroff [] (7) - classical device independent roff +div [] (3) - compute quotient and remainder of an integer division +djpeg [] (1) - decompress a JPEG file to an image file +djvm [] (1) - Manipulate bundled multi-page DjVu documents +djvmcvt [] (1) - Convert multi-page DjVu documents +djvudigital [] (1) - creates DjVu files from PS or PDF files +djvudump [] (1) - Display internal structure of DjVu files +djvuextract [] (1) - Extract chunks from DjVu image files +djvumake [] (1) - Assemble DjVu image files +djvups [] (1) - Convert DjVu documents to PostScript +djvused [] (1) - Multi-purpose DjVu document editor +djvuserve [] (1) - Generate indirect DjVu documents on the fly +djvutoxml [] (1) - DjVuLibre XML Tools +djvutxt [] (1) - Extract the hidden text from DjVu documents +djvuxmlparser [] (1) - DjVuLibre XML Tools +dl_iterate_phdr [] (3) - walk through list of shared objects +dladdr [] (3) - programming interface to dynamic linking loader +dlclose [] (3) - programming interface to dynamic linking loader +dlerror [] (3) - programming interface to dynamic linking loader +dlopen [] (3) - programming interface to dynamic linking loader +dlsym [] (3) - programming interface to dynamic linking loader +dlvsym [] (3) - programming interface to dynamic linking loader +dmapi [] (3) - DMAPI library +dmesg [] (1) - print or control the kernel ring buffer +dmidecode [] (8) - DMI table decoder +dmsetup [] (8) - low level logical volume management +dn_comp [] (3) - resolver routines +dn_expand [] (3) - resolver routines +dngettext [] (3) - translate message and choose plural form +dnsdomainname [] (1) - show the system's DNS domain name +dnsmasq [] (8) - A lightweight DHCP and caching DNS server +dnssec [] (8) - keygen - DNSSEC key generation tool +dnssec [] (8) - signzone - DNSSEC zone signing tool +docbook2dvi [] (1) - (Jade Wrapper) converts SGML files to other formats +docbook2html [] (1) - (Jade Wrapper) converts SGML files to other formats +docbook2man [] (1) - (Jade Wrapper) converts SGML files to other formats +docbook2man [] (1) - spec.pl - convert DocBook RefEntries to man pages +docbook2pdf [] (1) - (Jade Wrapper) converts SGML files to other formats +docbook2ps [] (1) - (Jade Wrapper) converts SGML files to other formats +docbook2rtf [] (1) - (Jade Wrapper) converts SGML files to other formats +docbook2tex [] (1) - (Jade Wrapper) converts SGML files to other formats +docbook2texi [] (1) - (Jade Wrapper) converts SGML files to other formats +docbook2texi [] (1) - spec.pl - convert DocBook Booksto Texinfo documents +docbook2txt [] (1) - (Jade Wrapper) converts SGML files to other formats +does nothing otherwise). .IP (bu 2 Set the current canvas colours to black background and white foreground. .IP (bu 2 Write the string 'This is a message' using the current colors onto the canvas. .IP (bu 2 Refresh the display. .IP (bu 2 Wait for an event of type 'CACA_EVENT_KEY_PRESS'. .IP (bu 2 Free the display (release memory). Since it was created together with the display [] (3) - like system using the following comman (requiring pkg-config and gcc): +domainname [] (1) - show or set the system's NIS/YP domain name +domainname [] (8) - set or display name of current domain +dosfsck [] (8) - check and repair MS-DOS file systems +doupdate [] (3) - refresh curses windows and lines +doxygen [] (1) - documentation system for various programming languages +doxytag [] (1) - generates a tag file and/or a search index for a set of HTML files +doxywizard [] (1) - a tool to configure and run doxygen on your source files +dpasswd [] (8) - change dialup password +dprintf [] (3) - print to a file descriptor +dprofpp [] (1) - display perl profile data +drand48 [] (3) - generate uniformly distributed pseudo-random numbers +drand48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +drem [] (3) - floating - point remainder function +dremf [] (3) - floating - point remainder function +dreml [] (3) - floating - point remainder function +drift [] (6) - draws drifting recursive fractal cosmic flames +dsa [] (1) - DSA key processing +dsa [] (3) - Digital Signature Algorithm +dsaparam [] (1) - DSA parameter manipulation and generation +dsp56k [] (4) - DSP56001 interface device +du [] (1) - estimate file space usage +dump [] (8) - acct - print an acct file in human-readable format +dump [] (8) - utmp - print an utmp file in human-readable format +dumpe2fs [] (8) - dump ext2/ext3 filesystem information +dumpiso [] (1) - dump IEEE 1394 isochronous channel packets +dumpkeys [] (1) - dump keyboard translation tables +dumpreg [] (1) - dump the state of the card as the svgalib chipset driver sees it +dund [] (1) - BlueZ Bluetooth dial-up networking daemon +dup [] (2) - duplicate a file descriptor +dup2 [] (2) - duplicate a file descriptor +dup3 [] (2) - duplicate a file descriptor +dupwin [] (3) - create curses windows +dvipdf [] (1) - Convert TeX DVI file to PDF using ghostscript and dvips +dysize [] (3) - get number of days for a given year +e2fsck [] (8) - check a Linux ext2/ext3 file system +e2fsck.conf [] (5) - Configuration file for e2fsck +e2image [] (8) - Save critical ext2/ext3 filesystem metadata to a file +e2label [] (8) - Change the label on an ext2/ext3 filesystem +e2undo [] (8) - Replay an undo log for an ext2/ext3/ext4 filesystem +eaccess [] (3) - check effective user's permissions for a file +eboard [] (1) - addtheme - a program to easily install new eboard board and sound themes +eboard [] (1) - config - program to get information about the installed eboard +eboard [] (6) - a graphical chess board +ec [] (1) - EC key processing +ecb_crypt [] (3) - fast DES encryption +ecdsa [] (3) - Elliptic Curve Digital Signature Algorithm +echo [] (1) - bash built-in commands, see bash(1) +echo [] (1) - display a line of text +echo [] (3) - curses input options +echo_wchar [] (3) - add a complex character and rendition to a curses window, then advance the cursor +echochar [] (3) - add a character (with attributes) to a curses window, then advance the cursor +ecparam [] (1) - EC parameter manipulation and generation +ecvt [] (3) - convert a floating-point number to a string +ecvt_r [] (3) - convert a floating-point number to a string +ed [] (1) - text editor +edata [] (3) - end of program segments +edd_id [] (8) - udev callout to identify BIOS disk drives via EDD +editmap [] (8) - query and edit single records in database maps for sendmail +editres [] (1) - a dynamic resource editor for X Toolkit applications +edquota [] (8) - edit user quotas +egrep [] (1) - print lines matching a pattern +eject [] (1) - eject removable media +electricsheep [] (1) - a distributed screen-saver (version 2.7b11) +electricsheep [] (1) - preferences - GUI to edit defaults for electricsheep +elf [] (5) - format of Executable and Linking Format (ELF) files +elksemu [] (1) - Embedded Linux Kernel Subset emulator +elm [] (1) - an interactive mail system +elmalias [] (1) - expand and display Elm address aliases +elographics [] (4) - Elographics input driver +elvfmt [] (1) - adjust line-length for paragraphs of text +elvis [] (1) - a clone of the ex/vi text editor +emacs [] (1) - GNU project Emacs +emacsclient [] (1) - tells a running Emacs to visit a file +enable [] (1) - bash built-in commands, see bash(1) +enc [] (1) - symmetric cipher routines +enc2xs [] (1) - - Perl Encode Module Generator +encapsulate [] (1) - multiplex several channels over a single socket with sampling of remote process exit status, and provide conversation termination without closing the socket +encode_keychange [] (1) - produce the KeyChange string for SNMPv3 +encoding [] (3) - allows you to write your script in non-ascii or non-utf8 +encoding [] (n) - Manipulate encodings +encoding::warnings [] (3) - Warn on implicit encoding conversions +encrypt [] (3) - encrypt 64-bit messages +encrypt_r [] (3) - encrypt 64-bit messages +end [] (3) - end of program segments +endaliasent [] (3) - read an alias entry +endfsent [] (3) - handle fstab entries +endgame [] (6) - endgame chess screensaver +endgrent [] (3) - get group file entry +endhostent [] (3) - get network host entry +endmntent [] (3) - get file system descriptor file entry +endnetent [] (3) - get network entry +endnetgrent [] (3) - handle network group entries +endprotoent [] (3) - get protocol entry +endpwent [] (3) - get password file entry +endrpcent [] (3) - get RPC entry +endservent [] (3) - get service entry +endspent [] (3) - get shadow password file entry +endttyent [] (3) - get ttys file entry +endusershell [] (3) - get permitted user shells +endutent [] (3) - access utmp file entries +endwin [] (3) - curses screen initialization and manipulation routines +engine [] (3) - ENGINE cryptographic module support +engine [] (6) - draws a 3D four-stroke engine +english [] (4) - flag format for English okspell dictionaries +enscript [] (1) - convert text files to PostScript, HTML, RTF, ANSI, and overstrikes +entry [] (n) - Create and manipulate entry widgets +env [] (1) - run a program in a modified environment +environ [] (7) - user environment +envsubst [] (1) - substitutes environment variables in shell format strings +envz_add [] (3) - environment string support +envz_entry [] (3) - environment string support +envz_get [] (3) - environment string support +envz_merge [] (3) - environment string support +envz_remove [] (3) - environment string support +envz_strip [] (3) - environment string support +eof [] (n) - Check for end of file condition on channel +epic [] (1) - Internet Relay Chat client for UNIX like systems +epicycle [] (6) - draws a point moving around a circle which moves around a cicle which.. +epoll [] (7) - I/O event notification facility +epoll_create [] (2) - open an epoll file descriptor +epoll_create1 [] (2) - open an epoll file descriptor +epoll_ctl [] (2) - control interface for an epoll descriptor +epoll_pwait [] (2) - wait for an I/O event on an epoll file descriptor +epoll_wait [] (2) - wait for an I/O event on an epoll file descriptor +eps2eps [] (1) - Ghostscript PostScript distiller +epsffit [] (1) - fit encapsulated PostScript file (EPSF) into constrained size +eqn [] (1) - format equations for troff or MathML +eqn2graph [] (1) - convert an EQN equation into a cropped image +erand48 [] (3) - generate uniformly distributed pseudo-random numbers +erand48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +erase [] (3) - clear all or part of a curses window +erasechar [] (3) - curses environment query routines +erasewchar [] (3) - curses environment query routines +erf [] (3) - error function +erfc [] (3) - complementary error function +erfcf [] (3) - complementary error function +erfcl [] (3) - complementary error function +erff [] (3) - error function +erfl, [] (3) - error function +err [] (3) - error codes +err [] (3) - formatted error messages +errno [] (3) - number of last error +error [] (3) - glibc error reporting functions +error [] (n) - Generate an error +error_at_line [] (3) - glibc error reporting functions +error_message_count [] (3) - glibc error reporting functions +error_on_per_line [] (3) - glibc error reporting functions +error_print_progname [] (3) - glibc error reporting functions +errstr [] (1) - lookup error codes +errx [] (3) - formatted error messages +escp2topbm [] (1) - see http://netpbm.sourceforge.net/doc/escp2topbm.html +escputil [] (1) - maintain Epson Stylus inkjet printers +esd [] (1) - The Enlightened Sound Daemon +esd [] (1) - config - The Enlightened Sound Daemon +esdcat [] (1) - play a sound file from stdin +esdctl [] (1) - The Enlightened Sound Daemon +esddsp [] (1) - attempt to reroute audio device to esd +esdfilt [] (1) - The Enlightened Sound Daemon +esdloop [] (1) - The Enlightened Sound Daemon +esdmon [] (1) - The Enlightened Sound Daemon +esdrec [] (1) - record a sound file +esdsample [] (1) - play a sample +etags [] (1) - generate tag file for Emacs, vi +etext [] (3) - end of program segments +ether_aton [] (3) - Ethernet address manipulation routines +ether_aton_r [] (3) - Ethernet address manipulation routines +ether_hostton [] (3) - Ethernet address manipulation routines +ether_line [] (3) - Ethernet address manipulation routines +ether_ntoa [] (3) - Ethernet address manipulation routines +ether_ntoa_r [] (3) - Ethernet address manipulation routines +ether_ntohost [] (3) - Ethernet address manipulation routines +ethers [] (5) - Ethernet address to IP number database +ethtool [] (8) - Display or change ethernet card settings +euidaccess [] (3) - check effective user's permissions for a file +euler2d [] (6) - two dimensional incompressible inviscid fluid flow +eval [] (1) - bash built-in commands, see bash(1) +eval [] (n) - Evaluate a Tcl script +evdev [] (4) - Generic Linux input driver +event [] (n) - Miscellaneous event facilities: define virtual events and generate events +eventfd [] (2) - create a file descriptor for event notification +eventlogadm [] (8) - push records into the Samba event log store +eventtest [] (6) - test the waitevent function of svgalib +evim [] (1) - easy Vim, edit a file with Vim and setup for modeless editing +evp [] (3) - high-level cryptographic functions +exa [] (4) - new 2D acceleration architecture for X.Org +example_scalar_int: instantiates a few example scalars. [] (3) - This example merely creates some scalar registrations that allows some simple variables to be accessed via SNMP. More.. +exec [] (1) - bash built-in commands, see bash(1) +exec [] (n) - Invoke subprocesses +execl [] (3) - execute a file +execle [] (3) - execute a file +execlp [] (3) - execute a file +execv [] (3) - execute a file +execve [] (2) - execute program +execvp [] (3) - execute a file +exit [] (1) - bash built-in commands, see bash(1) +exit [] (3) - cause normal process termination +exit [] (n) - End the application +exit_group [] (2) - exit all threads in a process +exiv2 [] (1) - Image metadata manipulation tool +exo [] (1) - csource - C code generation utility for arbitrary data +exo [] (1) - open - Open URLs and launch preferred applications +exo-csource (1) - C code generation utility for arbitrary data +exo-open (1) - Open URLs and launch preferred applications +exp [] (3) - base-e exponential function +exp10 [] (3) - base-10 exponential function +exp10f [] (3) - base-10 exponential function +exp10l [] (3) - base-10 exponential function +exp2 [] (3) - base-2 exponential function +exp2f [] (3) - base-2 exponential function +exp2l [] (3) - base-2 exponential function +expand [] (1) - convert tabs to spaces +expect [] (1) - programmed dialogue with interactive programs, Version 5 +expectk [] (1) - Expect with Tk support +expf [] (3) - base-e exponential function +expl [] (3) - base-e exponential function +explodepkg [] (8) - Extract the contents of a tar+compression package (such as a Slackware software package) in the current directory +expm1 [] (3) - exponential minus 1 +expm1f [] (3) - exponential minus 1 +expm1l [] (3) - exponential minus 1 +export [] (1) - bash built-in commands, see bash(1) +exportfs [] (8) - maintain list of NFS exported file systems +exports [] (5) - NFS file systems being exported (for Kernel based NFS) +expr [] (1) - evaluate expressions +expr [] (n) - Evaluate an expression +extcompose [] (1) - Compose a reference to external data for inclusion in a mail message +extend_dmalloc [] (1) - Analyze return-addresses from dmalloc logfiles +extractrc [] (1) - Extract message strings from UI and GUI-RC files +extractres [] (1) - filter to extract resources from a PostScript document +extrusion [] (6) - various rotating extruded shapes +eyuvtoppm [] (1) - convert a Berkeley YUV file to a portable pixmap (ppm) file +fabs [] (3) - absolute value of floating-point number +fabsf [] (3) - absolute value of floating-point number +fabsl [] (3) - absolute value of floating-point number +faccessat [] (2) - check user's permissions of a file relative to a directory file descriptor +factor [] (1) - factor numbers +factor [] (6) - factor a number, generate primes +fadeplot [] (6) - draws a waving ribbon following a sinusoidal path +faillog [] (5) - Login failure logging file +faillog [] (8) - examine faillog and set login failure limits +fallocate [] (2) - manipulate file space +false [] (1) - do nothing, unsuccessfully +fancontrol [] (8) - automated software based fan speed regulation +fastmail [] (1) - quick batch mail interface to a single address +faucet [] (1) - a fixture for a BSD network pipe +fax2ps [] (1) - convert a TIFF facsimile to compressed (tm +fax2tiff [] (1) - create a TIFF Class F fax file from raw fax data +fb.modes [] (5) - frame buffer modes file +fbdevhw [] (4) - os-specific submodule for framebuffer device access +fblocked [] (n) - Test whether the last input operation exhausted all available input +fbrun [] (1) - display run dialog window +fbset [] (8) - show and modify frame buffer device settings +fbsetbg [] (1) - set a background/wallpaper +fbsetroot [] (1) - a simple background utility used by the Fluxbox window manager, originally written for and by the original Blackbox window manager team +fc [] (1) - bash built-in commands, see bash(1) +fc [] (1) - cache - build font information cache files +fc [] (1) - cat - read font information cache files +fc [] (1) - list - list available fonts +fc [] (1) - match - match available fonts +fchdir [] (2) - change working directory +fchmod [] (2) - change permissions of a file +fchmodat [] (2) - change permissions of a file relative to a directory file descriptor +fchown [] (2) - change ownership of a file +fchownat [] (2) - change ownership of a file relative to a directory file descriptor +fclose [] (3) - close a stream +fcloseall [] (3) - close all open streams +fcntl [] (2) - manipulate file descriptor +fconfigure [] (n) - Set and get options on a channel +fcopy [] (n) - Copy data from one channel to another +fcvt [] (3) - convert a floating-point number to a string +fcvt_r [] (3) - convert a floating-point number to a string +fd [] (4) - floppy disk device +fd_to_handle [] (3) - file handle operations +fdatasync [] (2) - synchronize a file's in-core state with storage device +fdformat [] (8) - Low-level formats a floppy disk +fdim [] (3) - positive difference +fdimf [] (3) - positive difference +fdiml [] (3) - positive difference +fdisk [] (8) - Partition table manipulator for Linux +fdmount [] (1) - Floppy disk mount utility +fdopen [] (3) - stream open functions +fdopendir [] (3) - open a directory +fdrawcmd [] (1) - send raw commands to the floppy disk controller +feature [] (3) - Perl pragma to enable new syntactic features +feature_test_macros [] (7) - feature test macros +feclearexcept [] (3) - floating-point rounding and exception handling +fedisableexcept [] (3) - floating-point rounding and exception handling +feenableexcept [] (3) - floating-point rounding and exception handling +fegetenv [] (3) - floating-point rounding and exception handling +fegetexcept [] (3) - floating-point rounding and exception handling +fegetexceptflag [] (3) - floating-point rounding and exception handling +fegetround [] (3) - floating-point rounding and exception handling +feholdexcept [] (3) - floating-point rounding and exception handling +feof [] (3) - check and reset stream status +feraiseexcept [] (3) - floating-point rounding and exception handling +ferror [] (3) - check and reset stream status +fesetenv [] (3) - floating-point rounding and exception handling +fesetexceptflag [] (3) - floating-point rounding and exception handling +fesetround [] (3) - floating-point rounding and exception handling +fetchmail [] (1) - fetch mail from a POP, IMAP, ETRN, or ODMR-capable server +fetestexcept [] (3) - floating-point rounding and exception handling +feupdateenv [] (3) - floating-point rounding and exception handling +fexecve [] (3) - execute program specified via file descriptor +fflush [] (3) - flush a stream +ffs [] (3) - find first bit set in a word +ffsl [] (3) - find first bit set in a word +ffsll [] (3) - find first bit set in a word +fg [] (1) - bash built-in commands, see bash(1) +fgconsole [] (1) - print the number of the active VT +fgetc [] (3) - input of characters and strings +fgetgrent [] (3) - get group file entry +fgetgrent_r [] (3) - get group file entry reentrantly +fgetpos [] (3) - reposition a stream +fgetpwent [] (3) - get password file entry +fgetpwent_r [] (3) - get passwd file entry reentrantly +fgets [] (3) - input of characters and strings +fgetspent [] (3) - get shadow password file entry +fgetspent_r [] (3) - get shadow password file entry +fgetwc [] (3) - read a wide character from a FILE stream +fgetws [] (3) - read a wide-character string from a FILE stream +fgetxattr [] (2) - retrieve an extended attribute value +fgrep [] (1) - print lines matching a pattern +fiasco_c_options_delete [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_new [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_basisfile [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_chroma_quality [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_comment [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_frame_pattern fiasco_c_options_set_title [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_optimizations [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_prediction [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_progress_meter [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_quantization [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_smoothing [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_tiling [] (3) - define additional options of FIASCO coder and decoder +fiasco_c_options_set_video_param [] (3) - define additional options of FIASCO coder and decoder +fiasco_coder [] (3) - compress image files to a FIASCO file +fiasco_d_options_delete [] (3) - define additional options of FIASCO decoder +fiasco_d_options_new [] (3) - define additional options of FIASCO decoder +fiasco_d_options_set_magnification [] (3) - define additional options of FIASCO decoder +fiasco_d_options_set_smoothing fiasco_d_options_set_4_2_0_format [] (3) - define additional options of FIASCO decoder +fiasco_decoder_delete [] (3) - decompress a FIASCO file +fiasco_decoder_get_comment fiasco_decoder_is_color [] (3) - decompress a FIASCO file +fiasco_decoder_get_frame [] (3) - decompress a FIASCO file +fiasco_decoder_get_height fiasco_decoder_get_title [] (3) - decompress a FIASCO file +fiasco_decoder_get_length [] (3) - decompress a FIASCO file +fiasco_decoder_get_rate [] (3) - decompress a FIASCO file +fiasco_decoder_get_width [] (3) - decompress a FIASCO file +fiasco_decoder_new [] (3) - decompress a FIASCO file +fiasco_decoder_write_frame [] (3) - decompress a FIASCO file +fiasco_get_error_message [] (3) - return string describing last error catched in FIASCO library +fiasco_get_verbosity [] (3) - get or set verbosity of FIASCO library +fiasco_image_delete [] (3) - handle FIASCO image objects +fiasco_image_get_height [] (3) - handle FIASCO image objects +fiasco_image_get_width [] (3) - handle FIASCO image objects +fiasco_image_is_color [] (3) - handle FIASCO image objects +fiasco_image_new [] (3) - handle FIASCO image objects +fiasco_options_delete [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_new [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_4_2_0_format [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_basisfile [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_chroma_quality [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_frame_pattern [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_magnification [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_optimizations [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_prediction [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_progress_meter [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_quantization [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_smoothing [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_tiling [] (3) - define additional options of FIASCO coder and decoder +fiasco_options_set_video_param [] (3) - define additional options of FIASCO coder and decoder +fiasco_renderer_delete [] (3) - convert a FIASCO image object to an X11 XImage +fiasco_renderer_new [] (3) - convert a FIASCO image object to an X11 XImage +fiasco_set_verbosity [] (3) - get or set verbosity of FIASCO library +fiascotopnm [] (1) - Convert compressed FIASCO image to PGM, or PPM +fiberlamp [] (6) - Fiber Optic Lamp +fields [] (3) - compile-time class fields +fifo [] (7) - first-in first-out special file, named pipe +fig2dev [] (1) - translates Fig code to various graphics languages +fig2ps2tex [] (1) - generate a TeX file for including a PostScript file +file [] (1) - determine file type +file [] (n) - Manipulate file names and attributes +fileevent [] (n) - Execute a script when a channel becomes readable or writable +filefrag [] (8) - report on file fragmentation +filename [] (n) - File name conventions supported by Tcl commands +fileno [] (3) - check and reset stream status +filesystems [] (5) - Linux file-system types: minix, ext, ext2, ext3, Reiserfs, XFS, JFS, xia, msdos, umsdos, vfat, proc, nfs, iso9660, hpfs, sysv, smb, ncpfs +filetest [] (3) - Perl pragma to control the filetest permission operators +filter [] (3) - miscellaneous curses utility routines +filter [] (7) - cups file conversion filter interface +find [] (1) - search for files in a directory hierarchy +find2perl [] (1) - translate find command lines to Perl code +findaffix [] (1) - Interactive spelling checking +findfs [] (8) - Find a filesystem by label or UUID +findsmb [] (1) - list info about machines that respond to SMB name queries on a subnet +finger [] (1) - user information lookup program +fingerd [] (8) - remote user information server +finite [] (3) - BSD floating - point classification functions +finitef [] (3) - BSD floating - point classification functions +finitel [] (3) - BSD floating - point classification functions +fireworkx [] (6) - pyrotechnics simulation eye-candy +fish [] (6) - play Go Fish +fitstopnm [] (1) - convert a FITS file into a portable anymap +fix132x43 [] (1) - fix problems with certain (132 column) graphics modes dump the state of the card as the svgalib chipset driver sees it +fixdlsrps [] (1) - filter to fix DviLaser/PS documents to work with PSUtils +fixfmps [] (1) - filter to fix Framemaker documents so PSUtils work +fixincludes [] (1) - Reduce the number of #includes in KDE source files +fixmacps [] (1) - filter to fix Macintosh documents with saner version of md +fixproc [] (1) - Fixes a process by performing the specified action +fixps [] (1) - sanitize PostScript files +fixpsditps [] (1) - filter to fix Transcript psdit documents so PSUtils work +fixpspps [] (1) - filter to fix PSPrint PostScript so PSUtils work +fixscribeps [] (1) - filter to fix Scribe documents so PSUtils work +fixtpps [] (1) - filter to fix Tpscript documents to work with PSUtils +fixwfwps [] (1) - filter to fix Word for Windows documents so PSUtils work +fixwpps [] (1) - filter to fix WP documents so PSUtils work +fixwwps [] (1) - filter to fix Windows Write documents so PSUtils work +fiz [] (1) - analyze damaged zoo archive for data recovery +flac [] (1) - Free Lossless Audio Codec +flam3 [] (1) - animate flam3 - render flam3 - genome flam3 - convert - render and animate FLAM3s and manipulate their genomes +flame [] (6) - draw weird cosmic fractals +flash [] (3) - curses bell and screen flash routines +flea [] (1) - Report a bug (or rather a flea) in mutt +flex [] (1) - the fast lexical analyser generator +flipflop [] (6) - draws a grid of 3D squares that change positions +flipscreen3d [] (6) - rotates an image of the screen through 3 dimensions +fliptext [] (6) - draws pages of text whose lines transparently flip around +flistxattr [] (2) - list extended attribute names +flock [] (1) - Manage locks from shell scripts +flock [] (2) - apply or remove an advisory lock on an open file +flockfile [] (3) - lock FILE for stdio +floor [] (3) - largest integral value not greater than argument +floorf [] (3) - largest integral value not greater than argument +floorl [] (3) - largest integral value not greater than argument +floppycontrol [] (1) - floppy driver configuration utility +floppyd [] (1) - floppy daemon for remote access to floppy drive floppyd_installtest - tests whether floppyd is installed and running +floppyd_installtest [] (1) - tests whether floppyd is installed and running +floppymeter [] (1) - measure raw capacity and exact rotation speed of floppy drive +flow [] (6) - strange attractors +fluidballs [] (6) - the physics of bouncing balls +flush [] (n) - Flush buffered output for a channel +flushinp [] (3) - miscellaneous curses utility routines +fluxbox [] (1) - A lightweight window manager for the X Windowing System +fluxbox [] (1) - remote - command line access to key commands for fluxbox(1) +fluxbox [] (5) - keys - keyboard shortcuts configuration for fluxbox(1) +fluxstyle [] (1) - A comprehensive look at styles/themes for fluxbox(1) +flyingtoasters [] (6) - 3d space-age jet-powered flying toasters (and toast) +fma [] (3) - floating-point multiply and add +fmaf [] (3) - floating-point multiply and add +fmal [] (3) - floating-point multiply and add +fmax [] (3) - determine maximum of two floating-point numbers +fmaxf [] (3) - determine maximum of two floating-point numbers +fmaxl [] (3) - determine maximum of two floating-point numbers +fmemopen [] (3) - open memory as stream +fmin [] (3) - determine minimum of two floating-point numbers +fminf [] (3) - determine minimum of two floating-point numbers +fminl [] (3) - determine minimum of two floating-point numbers +fmod [] (3) - floating-point remainder function +fmodf [] (3) - floating-point remainder function +fmodl [] (3) - floating-point remainder function +fmt [] (1) - simple optimal text formatter +fmtmsg [] (3) - print formatted error messages +fnmatch [] (3) - match filename or pathname +focus [] (n) - Manage the input focus +fold [] (1) - wrap each input line to fit in specified width +font [] (n) - Create and inspect fonts +font2c [] (1) - Write PostScript Type 0 or Type 1 font as C code +fontglide [] (6) - characters float onto the screen to form words +fonts.conf [] (5) - Font configuration files +fonttosfnt [] (1) - Wrap a bitmap font in a sfnt (TrueType) wrapper +foomatic [] (1) - rip - Universal print filter/RIP wrapper +fopen [] (3) - stream open functions +fopencookie [] (3) - opening a custom stream +for [] (n) - 'For' loop +foreach [] (n) - Iterate over all elements in one or more lists +fork [] (2) - create a child process +forkpty [] (3) - tty utility functions +forktest [] (6) - tests the vga_safety_fork() function +form [] (3) - curses extension for programming forms +form_cursor [] (3) - position a form window cursor +form_data [] (3) - test for off-screen data in given forms +form_driver [] (3) - command-processing loop of the form system +form_field [] (3) - make and break connections between fields and forms +form_field_attributes [] (3) - color and attribute control for form fields +form_field_buffer [] (3) - field buffer control +form_field_info [] (3) - retrieve field characteristics +form_field_just [] (3) - retrieve field characteristics +form_field_new [] (3) - create and destroy form fields +form_field_opts [] (3) - set and get field options +form_field_userptr [] (3) - associate application data with a form field +form_field_validation [] (3) - data type validation for fields +form_fieldtype [] (3) - define validation-field types +form_hook [] (3) - set hooks for automatic invocation by applications +form_new [] (3) - create and destroy forms +form_new_page [] (3) - form pagination functions +form_opts [] (3) - set and get form options +form_page [] (3) - set and get form page number +form_post [] (3) - write or erase forms from associated subwindows +form_requestname [] (3) - handle printable form request names +form_userptr [] (3) - associate application data with a form item +form_win [] (3) - make and break form window and subwindow associations +formail [] (1) - mail (re)formatter +format [] (n) - Format a string in the style of sprintf +fortune [] (6) - print a random, hopefully interesting, adage +fpathconf [] (3) - get configuration values for files +fpclassify [] (3) - floating-point classification macros +fpit [] (4) - Fujitsu Stylistic input driver +fprint_description [] (3) - mib_api functions +fprint_objid [] (3) - mib_api functions +fprint_value [] (3) - mib_api functions +fprint_variable [] (3) - mib_api functions +fprintf [] (3) - formatted output conversion +fpurge [] (3) - purge a stream +fputc [] (3) - output of characters and strings +fputs [] (3) - output of characters and strings +fputwc [] (3) - write a wide character to a FILE stream +fputws [] (3) - write a wide-character string to a FILE stream +frame [] (n) - Create and manipulate frame widgets +fread [] (3) - binary stream input/output +free [] (1) - Display amount of free and used memory in the system +free [] (3) - Allocate and free dynamic memory +free_handle [] (3) - file handle operations +free_hugepages [] (2) - allocate or free huge pages +freeaddrinfo [] (3) - network address and service translation +freehostent [] (3) - get network hostnames and addresses +freeifaddrs [] (3) - get interface addresses +fremovexattr [] (2) - remove an extended attribute +freopen [] (3) - stream open functions +frexp [] (3) - convert floating-point number to fractional and integral components +frexpf [] (3) - convert floating-point number to fractional and integral components +frexpl [] (3) - convert floating-point number to fractional and integral components +frm [] (1) - list from and subject of selected messages in mailbox or folder +fromdos [] (1) - convert DOS text file format to UNIX +frontend [] (7) - spec - interface between jw and its frontends +fscanf [] (3) - input format conversion +fsck [] (8) - check and repair a Linux file system +fsck.minix [] (8) - a file system consistency checker for Linux +fsck.xfs [] (8) - do nothing, successfully +fseek [] (3) - reposition a stream +fseeko [] (3) - seek to or report file position +fsetpos [] (3) - reposition a stream +fsetxattr [] (2) - set an extended attribute value +fsf [] (7) - funding - Funding Free Software +fslsfonts [] (1) - list fonts served by X font server +fssetdm_by_handle [] (3) - file handle operations +fstab [] (5) - static information about the filesystems +fstab [] (8) - decode - run a command with fstab-encoded arguments +fstat [] (2) - get file status +fstatat [] (2) - get file status relative to a directory file descriptor +fstatfs [] (2) - get file system statistics +fstatvfs [] (2) - get file system statistics +fstobdf [] (1) - generate BDF font from X font server +fstopgm [] (1) - convert a Usenix FaceSaver(tm) file into a portable graymap +fsync [] (2) - synchronize a file's in-core state with storage device +ftell [] (3) - reposition a stream +ftello [] (3) - seek to or report file position +ftime [] (2) - unimplemented system calls +ftime [] (3) - return date and time +ftok [] (3) - convert a pathname and a project identifier to a System V IPC key +ftp [] (1) - Internet file transfer program +ftpcount [] (1) - show current number of connections for each proftpd server configuration +ftpdctl [] (8) - ProFTPD control program +ftpshut [] (8) - shut down all proftpd servers at a given time +ftptop [] (1) - display running status on proftpd server connections +ftpusers [] (5) - list of users that may not log in via the FTP daemon +ftpwho [] (1) - show current process information for each FTP session +ftruncate [] (2) - truncate a file to a specified length +ftrylockfile [] (3) - lock FILE for stdio +fts [] (3) - traverse a file hierarchy +fts_children [] (3) - traverse a file hierarchy +fts_close [] (3) - traverse a file hierarchy +fts_open [] (3) - traverse a file hierarchy +fts_read [] (3) - traverse a file hierarchy +fts_set [] (3) - traverse a file hierarchy +ftw [] (3) - file tree walk +full [] (4) - always full device +fun [] (6) - draw pixels accumulating in clusters +funlockfile [] (3) - lock FILE for stdio +funzip [] (1) - filter for extracting from a ZIP archive in a pipe +fuser [] (1) - identify processes using files or sockets +futex [] (2) - Fast Userspace Locking system call +futex [] (7) - Fast Userspace Locking +futimens [] (2) - change file timestamps with nanosecond precision +futimes [] (3) - change file timestamps +futimesat [] (2) - change timestamps of a file relative to a directory file descriptor +fuzzyflakes [] (6) - falling snowflakes/flower shapes +fvwm [] (1) - config - query an existing FVWM installation +fvwm [] (1) - menu-desktop - builds Gnome and KDE menus and style commands for FVWM +fvwm [] (1) - menu-directory - builds a directory browsing menu for FVWM +fvwm [] (1) - menu-headlines - builds headlines menu definition for FVWM +fvwm [] (1) - menu-xlock - builds xlock menu definition for FVWM +fvwm2 [] (1) - F(?) Virtual Window Manager (version 2) for X11 +fvwm24_convert [] (1) - convert FVWM 2.2.x configuration file to FVWM 2.4 syntax +fvwmbug [] (1) - report a bug in FVWM +fvwmrc_convert [] (1) - convert FVWM 1.xx configuration file to FVWM 2.xx style +fwide [] (3) - set and determine the orientation of a FILE stream +fwprintf [] (3) - formatted wide - character output conversion +fwrite [] (3) - binary stream input/output +g3topbm [] (1) - convert a Group 3 fax file into a portable bitmap +gai_strerror [] (3) - network address and service translation +galaxy [] (6) - draws spinning galaxies +gamma [] (3) - (logarithm of the) gamma function +gamma4scanimage [] (1) - create a gamma table for scanimage +gammaf [] (3) - (logarithm of the) gamma function +gammal [] (3) - (logarithm of the) gamma function +gappletviewer [] (1) - Load and runs an applet +gawk [] (1) - pattern scanning and processing language +gc [] (1) - analyze - Analyze Garbage Collector (GC) memory dumps +gcc [] (1) - GNU project C and C++ compiler +gcc `pkg [] (3) - config --libs --cflags caca` example.c -o example +gccmakedep [] (1) - create dependencies in makefiles using 'gcc -M' +gcj [] (1) - Ahead-of-time compiler for the Java language +gcj [] (1) - dbtool - Manipulate class file mapping databases for libgcj +gcjh [] (1) - - generate header files from Java class files +gcov [] (1) - coverage testing tool +gcvt [] (3) - convert a floating-point number to a string +gdb [] (1) - The GNU Debugger +gdbserver [] (1) - Remote Server for the GNU Debugger +gdiffmk [] (1) - mark differences between groff/nroff/troff files +gdk [] (1) - pixbuf-csource - C code generation utility for GdkPixbuf images +gdk [] (1) - pixbuf-query-loaders - GdkPixbuf loader registration utility +gdk-pixbuf-csource (1) - C code generation utility for GdkPixbuf images +gdk-pixbuf-query-loaders (1) - GdkPixbuf loader registration utility +gears [] (6) - draw interlocking gears, for xscreensaver +gemtopnm [] (1) - convert a GEM .img file into a portable anymap +gendiff [] (1) - utility to aid in error-free diff file generation +gendsa [] (1) - generate a DSA private key from a set of parameters +genpowerd [] (8) - UPS monitor daemon +genrsa [] (1) - generate an RSA private key +gentest [] (8) - tests communication with UPS +get_current_dir_name [] (3) - Get current working directory +get_kernel_syms [] (2) - retrieve exported kernel and module symbols +get_mempolicy [] (2) - Retrieve NUMA memory policy for a process +get_module_node [] (3) - mib_api functions +get_thread_area [] (2) - Get a Thread Local Storage (TLS) area +get_wch [] (3) - get (or push back) a wide character from curses terminal keyboard +get_wstr [] (3) - get an array of wide characters from a curses terminal keyboard +getaddrinfo [] (3) - network address and service translation +getafm [] (1) - create an AFM file for a PostScript font +getaliasbyname [] (3) - read an alias entry +getaliasbyname_r [] (3) - read an alias entry +getaliasent [] (3) - read an alias entry +getaliasent_r [] (3) - read an alias entry +getbegx [] (3) - get curses cursor and window coordinates +getbegy [] (3) - get curses cursor and window coordinates +getbegyx [] (3) - get curses cursor and window coordinates +getbkgd [] (3) - curses window background manipulation routines +getbkgrnd [] (3) - curses window complex background manipulation routines +getc [] (3) - input of characters and strings +getc_unlocked [] (3) - non-locking stdio functions +getcap [] (8) - examine file capabilities +getcchar [] (3) - Get a wide character string and rendition from a cchar_t or set a cchar_t from a wide-character string +getch [] (3) - get (or push back) characters from curses terminal keyboard +getchar [] (3) - input of characters and strings +getchar_unlocked [] (3) - non-locking stdio functions +getcontext [] (2) - get or set the user context +getcpu [] (2) - determine CPU and NUMA node on which the calling thread is running +getcurx [] (3) - get curses cursor and window coordinates +getcury [] (3) - get curses cursor and window coordinates +getcwd [] (3) - Get current working directory +getdate [] (3) - convert a date-plus-time string to broken-down time +getdate_r [] (3) - convert a date-plus-time string to broken-down time +getdelim [] (3) - delimited string input +getdents [] (2) - get directory entries +getdirentries [] (3) - get directory entries in a file system-independent format +getdomainname [] (2) - get/set domain name +getdtablesize [] (2) - get descriptor table size +getegid [] (2) - get group identity +getenv [] (3) - get an environment variable +geteuid [] (2) - get user identity +getfacl [] (1) - get file access control lists +getfattr [] (1) - get extended attributes of filesystem objects +getfdprm [] (1) - print the current format information +getfilename [] (1) - Ask the user to name a file in a given format +getfsent [] (3) - handle fstab entries +getfsfile [] (3) - handle fstab entries +getfsspec [] (3) - handle fstab entries +getgid [] (2) - get group identity +getgrent [] (3) - get group file entry +getgrent_r [] (3) - get group file entry reentrantly +getgrgid [] (3) - get group file entry +getgrgid_r [] (3) - get group file entry +getgrnam [] (3) - get group file entry +getgrnam_r [] (3) - get group file entry +getgrouplist [] (3) - get list of groups to which a user belongs +getgroups [] (2) - get/set list of supplementary group IDs +gethostbyaddr [] (3) - get network host entry +gethostbyaddr_r [] (3) - get network host entry +gethostbyname [] (3) - get network host entry +gethostbyname2 [] (3) - get network host entry +gethostbyname2_r [] (3) - get network host entry +gethostbyname_r [] (3) - get network host entry +gethostent [] (3) - get network host entry +gethostent_r [] (3) - get network host entry +gethostid [] (3) - get or set the unique identifier of the current host +gethostname [] (2) - get/set hostname +geticonset [] (1) - gets the current Window Maker iconset +getifaddrs [] (3) - get interface addresses +getipnodebyaddr [] (3) - get network hostnames and addresses +getipnodebyname [] (3) - get network hostnames and addresses +getitimer [] (2) - get or set value of an interval timer +getkeycodes [] (8) - print kernel scancode-to-keycode mapping table +getline [] (3) - delimited string input +getloadavg [] (3) - get system load averages +getlogin [] (3) - get username +getlogin_r [] (3) - get username +getmail [] (1) - retrieve messages from one or more POP3, IMAP4, or SDPS mailboxes and deliver to a maildir, mboxrd-format mbox file, or external MDA +getmail_fetch [] (1) - retrieve messages from one or more POP3 or POP3-over-SSL mailboxes and deliver to a maildir, mboxrd-format mbox file, or external MDA +getmail_maildir [] (1) - read a message from stdin and deliver to a named maildir +getmail_mbox [] (1) - read a message from stdin and deliver to a named mboxrd-format mbox file with fcntl-style locking +getmaxx [] (3) - get curses cursor and window coordinates +getmaxy [] (3) - get curses cursor and window coordinates +getmaxyx [] (3) - get curses cursor and window coordinates +getmntent [] (3) - get file system descriptor file entry +getmntent_r [] (3) - get file system descriptor file entry +getmouse [] (3) - mouse interface through curses +getn_wstr [] (3) - get an array of wide characters from a curses terminal keyboard +getnameinfo [] (3) - address-to-name translation in protocol-independent manner +getnetbyaddr [] (3) - get network entry +getnetbyname [] (3) - get network entry +getnetbyname_r [] (3) - get network entry (reentrant) +getnetbynumber_r [] (3) - get network entry (reentrant) +getnetent [] (3) - get network entry +getnetent_r [] (3) - get network entry (reentrant) +getnetgrent [] (3) - handle network group entries +getnetgrent_r [] (3) - handle network group entries +getnstr [] (3) - accept character strings from curses terminal keyboard +getopt [] (1) - parse command options (enhanced) +getopt [] (3) - Parse command-line options +getopt [] (3) - Process single-character switches with switch clustering +getopt_long [] (3) - Parse command-line options +getopt_long_only [] (3) - Parse command-line options +getopts [] (1) - bash built-in commands, see bash(1) +getopts [] (3) - Process single-character switches with switch clustering +getpagesize [] (2) - get memory page size +getparentpaths_by_handle [] (3) - file handle operations +getparents_by_handle [] (3) - file handle operations +getparx [] (3) - get curses cursor and window coordinates +getpary [] (3) - get curses cursor and window coordinates +getparyx [] (3) - get curses cursor and window coordinates +getpass [] (3) - get a password +getpeername [] (1) - get information about this or that end of the socket's connection +getpeername [] (2) - get name of connected peer socket +getpgid [] (2) - set/get process group +getpgrp [] (2) - set/get process group +getpid [] (2) - get process identification +getpmsg [] (2) - unimplemented system calls +getppid [] (2) - get process identification +getpriority [] (2) - get/set program scheduling priority +getprotobyname [] (3) - get protocol entry +getprotobyname_r [] (3) - get protocol entry (reentrant) +getprotobynumber [] (3) - get protocol entry +getprotobynumber_r [] (3) - get protocol entry (reentrant) +getprotoent [] (3) - get protocol entry +getprotoent_r [] (3) - get protocol entry (reentrant) +getpt [] (3) - open the pseudo-terminal master (PTM) +getpw [] (3) - Re-construct password line entry +getpwent [] (3) - get password file entry +getpwent_r [] (3) - get passwd file entry reentrantly +getpwnam [] (3) - get password file entry +getpwnam_r [] (3) - get password file entry +getpwuid [] (3) - get password file entry +getpwuid_r [] (3) - get password file entry +getresgid [] (2) - get real, effective and saved user/group IDs +getresuid [] (2) - get real, effective and saved user/group IDs +getrlimit [] (2) - get/set resource limits +getrpcbyname [] (3) - get RPC entry +getrpcbyname_r [] (3) - get RPC entry (reentrant) +getrpcbynumber [] (3) - get RPC entry +getrpcbynumber_r [] (3) - get RPC entry (reentrant) +getrpcent [] (3) - get RPC entry +getrpcent_r [] (3) - get RPC entry (reentrant) +getrpcport [] (3) - get RPC port number +getrusage [] (2) - get resource usage +gets [] (3) - input of characters and strings +gets [] (n) - Read a line from a channel +getservbyname [] (3) - get service entry +getservbyname_r [] (3) - get service entry (reentrant) +getservbyport [] (3) - get service entry +getservbyport_r [] (3) - get service entry (reentrant) +getservent [] (3) - get service entry +getservent_r [] (3) - get service entry (reentrant) +getsid [] (2) - get session ID +getsockname [] (2) - get socket name +getsockopt [] (2) - get and set options on sockets +getspent [] (3) - get shadow password file entry +getspent_r [] (3) - get shadow password file entry +getspnam [] (3) - get shadow password file entry +getspnam_r [] (3) - get shadow password file entry +getstr [] (3) - accept character strings from curses terminal keyboard +getstyle [] (1) - dumps the current Window Maker style related configuration or creates a theme pack +getsubopt [] (3) - parse suboption arguments from a string +getsyx [] (3) - low-level curses routines +gettext [] (1) - translate message +gettext [] (3) - translate message +gettextize [] (1) - install or upgrade gettext infrastructure +gettid [] (2) - get thread identification +gettimeofday [] (2) - get / set time +getttyent [] (3) - get ttys file entry +getttynam [] (3) - get ttys file entry +getty [] (1) - sets terminal mode, speed, and conditions port +gettydefs [] (5) - speed and tty settings used by getty +getuid [] (2) - get user identity +getumask [] (3) - get file creation mask +getusershell [] (3) - get permitted user shells +getutent [] (3) - access utmp file entries +getutid [] (3) - access utmp file entries +getutline [] (3) - access utmp file entries +getutmp [] (3) - copy utmp structure to utmpx, and vice versa +getutmpx [] (3) - copy utmp structure to utmpx, and vice versa +getw [] (3) - input and output of words (ints) +getwc [] (3) - read a wide character from a FILE stream +getwchar [] (3) - read a wide character from standard input +getwd [] (3) - Get current working directory +getwin [] (3) - miscellaneous curses utility routines +getxattr [] (2) - retrieve an extended attribute value +getyx [] (3) - get curses cursor and window coordinates +getzones [] (1) - list AppleTalk zone names +gfdl [] (7) - GNU Free Documentation License +gflux [] (6) - rippling surface graphics hack +gfortran [] (1) - GNU Fortran compiler +gftp [] (1) - file transfer client for *NIX based machines +gibi [] (7) - decimal and binary prefixes +gif2tiff [] (1) - create a TIFF file from a GIF87 format image file +giftopnm [] (1) - convert a GIF file into a portable anymap +giga [] (7) - decimal and binary prefixes +gij [] (1) - GNU interpreter for Java bytecode +gimp [] (1) - an image manipulation and paint program +gimp [] (1) - remote - tells a running GIMP to open a (local or remote) image file +gimprc [] (5) - gimp configuration file +gimptool [] (1) - 2.0 - script to perform various GIMPy functions +git [] (1) - add - Add file contents to the index +git [] (1) - am - Apply a series of patches from a mailbox +git [] (1) - annotate - Annotate file lines with commit information +git [] (1) - apply - Apply a patch on a git index file and a working tree +git [] (1) - archimport - Import an Arch repository into git +git [] (1) - archive - Create an archive of files from a named tree +git [] (1) - bisect - Find by binary search the change that introduced a bug +git [] (1) - blame - Show what revision and author last modified each line of a file +git [] (1) - branch - List, create, or delete branches +git [] (1) - bundle - Move objects and refs by archive +git [] (1) - cat-file - Provide content or type and size information for repository objects +git [] (1) - check-attr - Display gitattributes information +git [] (1) - check-ref-format - Ensures that a reference name is well formed +git [] (1) - checkout - Checkout a branch or paths to the working tree +git [] (1) - checkout-index - Copy files from the index to the working tree +git [] (1) - cherry - Find commits not merged upstream +git [] (1) - cherry-pick - Apply the change introduced by an existing commit +git [] (1) - citool - Graphical alternative to git-commit +git [] (1) - clean - Remove untracked files from the working tree +git [] (1) - clone - Clone a repository into a new directory +git [] (1) - commit - Record changes to the repository +git [] (1) - commit-tree - Create a new commit object +git [] (1) - config - Get and set repository or global options +git [] (1) - count-objects - Count unpacked number of objects and their disk consumption +git [] (1) - cvsexportcommit - Export a single commit to a CVS checkout +git [] (1) - cvsimport - Salvage your data out of another SCM people love to hate +git [] (1) - cvsserver - A CVS server emulator for git +git [] (1) - daemon - A really simple server for git repositories +git [] (1) - describe - Show the most recent tag that is reachable from a commit +git [] (1) - diff - Show changes between commits, commit and working tree, etc +git [] (1) - diff-files - Compares files in the working tree and the index +git [] (1) - diff-index - Compares content and mode of blobs between the index and repository +git [] (1) - diff-tree - Compares the content and mode of blobs found via two tree objects +git [] (1) - fast-export - Git data exporter +git [] (1) - fast-import - Backend for fast Git data importers +git [] (1) - fetch - Download objects and refs from another repository +git [] (1) - fetch-pack - Receive missing objects from another repository +git [] (1) - filter-branch - Rewrite branches +git [] (1) - fmt-merge-msg - Produce a merge commit message +git [] (1) - for-each-ref - Output information on each ref +git [] (1) - format-patch - Prepare patches for e-mail submission +git [] (1) - fsck - Verifies the connectivity and validity of the objects in the database +git [] (1) - fsck-objects - Verifies the connectivity and validity of the objects in the database +git [] (1) - gc - Cleanup unnecessary files and optimize the local repository +git [] (1) - get-tar-commit-id - Extract commit ID from an archive created using git-archive +git [] (1) - grep - Print lines matching a pattern +git [] (1) - gui - A portable graphical interface to Git +git [] (1) - hash-object - Compute object ID and optionally creates a blob from a file +git [] (1) - help - display help information about git +git [] (1) - http-fetch - Download from a remote git repository via HTTP +git [] (1) - http-push - Push objects over HTTP/DAV to another repository +git [] (1) - imap-send - Send a collection of patches from stdin to an IMAP folder +git [] (1) - index-pack - Build pack index file for an existing packed archive +git [] (1) - init - Create an empty git repository or reinitialize an existing one +git [] (1) - init-db - Creates an empty git repository +git [] (1) - instaweb - Instantly browse your working repository in gitweb +git [] (1) - log - Show commit logs +git [] (1) - lost-found - Recover lost refs that luckily have not yet been pruned +git [] (1) - ls-files - Show information about files in the index and the working tree +git [] (1) - ls-remote - List references in a remote repository +git [] (1) - ls-tree - List the contents of a tree object +git [] (1) - mailinfo - Extracts patch and authorship from a single e-mail message +git [] (1) - mailsplit - Simple UNIX mbox splitter program +git [] (1) - merge - Join two or more development histories together +git [] (1) - merge-base - Find as good common ancestors as possible for a merge +git [] (1) - merge-file - Run a three-way file merge +git [] (1) - merge-index - Run a merge for files needing merging +git [] (1) - merge-one-file - The standard helper program to use with git-merge-index +git [] (1) - merge-tree - Show three-way merge without touching index +git [] (1) - mergetool - Run merge conflict resolution tools to resolve merge conflicts +git [] (1) - mktag - Creates a tag object +git [] (1) - mktree - Build a tree-object from ls-tree formatted text +git [] (1) - mv - Move or rename a file, a directory, or a symlink +git [] (1) - name-rev - Find symbolic names for given revs +git [] (1) - pack-objects - Create a packed archive of objects +git [] (1) - pack-redundant - Find redundant pack files +git [] (1) - pack-refs - Pack heads and tags for efficient repository access +git [] (1) - parse-remote - Routines to help parsing remote repository access parameters +git [] (1) - patch-id - Compute unique ID for a patch +git [] (1) - peek-remote - List the references in a remote repository +git [] (1) - prune - Prune all unreachable objects from the object database +git [] (1) - prune-packed - Remove extra objects that are already in pack files +git [] (1) - pull - Fetch from and merge with another repository or a local branch +git [] (1) - push - Update remote refs along with associated objects +git [] (1) - quiltimport - Applies a quilt patchset onto the current branch +git [] (1) - read-tree - Reads tree information into the index +git [] (1) - rebase - Forward-port local commits to the updated upstream head +git [] (1) - receive-pack - Receive what is pushed into the repository +git [] (1) - reflog - Manage reflog information +git [] (1) - relink - Hardlink common objects in local repositories +git [] (1) - remote - manage set of tracked repositories +git [] (1) - repack - Pack unpacked objects in a repository +git [] (1) - repo-config - Get and set repository or global options +git [] (1) - request-pull - Generates a summary of pending changes +git [] (1) - rerere - Reuse recorded resolution of conflicted merges +git [] (1) - reset - Reset current HEAD to the specified state +git [] (1) - rev-list - Lists commit objects in reverse chronological order +git [] (1) - rev-parse - Pick out and massage parameters +git [] (1) - revert - Revert an existing commit +git [] (1) - rm - Remove files from the working tree and from the index +git [] (1) - send-email - Send a collection of patches as emails +git [] (1) - send-pack - Push objects over git protocol to another repository +git [] (1) - sh-setup - Common git shell script setup code +git [] (1) - shell - Restricted login shell for GIT-only SSH access +git [] (1) - shortlog - Summarize 'git-log' output +git [] (1) - show - Show various types of objects +git [] (1) - show-branch - Show branches and their commits +git [] (1) - show-index - Show packed archive index +git [] (1) - show-ref - List references in a local repository +git [] (1) - stage - Add file contents to the staging area +git [] (1) - stash - Stash the changes in a dirty working directory away +git [] (1) - status - Show the working tree status +git [] (1) - stripspace - Filter out empty lines +git [] (1) - submodule - Initialize, update or inspect submodules +git [] (1) - svn - Bidirectional operation between a single Subversion branch and git +git [] (1) - symbolic-ref - Read and modify symbolic refs +git [] (1) - tag - Create, list, delete or verify a tag object signed with GPG +git [] (1) - tar-tree - Create a tar archive of the files in the named tree object +git [] (1) - the stupid content tracker +git [] (1) - unpack-file - Creates a temporary file with a blob's contents +git [] (1) - unpack-objects - Unpack objects from a packed archive +git [] (1) - update-index - Register file contents in the working tree to the index +git [] (1) - update-ref - Update the object name stored in a ref safely +git [] (1) - update-server-info - Update auxiliary info file to help dumb servers +git [] (1) - upload-archive - Send archive back to git-archive +git [] (1) - upload-pack - Send objects packed back to git-fetch-pack +git [] (1) - var - Show a git logical variable +git [] (1) - verify-pack - Validate packed git archive files +git [] (1) - verify-tag - Check the GPG signature of tags +git [] (1) - web--browse - git helper script to launch a web browser +git [] (1) - whatchanged - Show logs with difference each commit introduces +git [] (1) - write-tree - Create a tree object from the current index +gitattributes [] (5) - defining attributes per path +gitcli [] (7) - git command line interface and conventions +gitcore [] (7) - tutorial - A git core tutorial for developers +gitcvs [] (7) - migration - git for CVS users +gitdiffcore [] (7) - Tweaking diff output (June 2005) +gitglossary [] (7) - A GIT Glossary +githooks [] (5) - Hooks used by git +gitignore [] (5) - Specifies intentionally untracked files to ignore +gitk [] (1) - The git repository browser +gitmodules [] (5) - defining submodule properties +gitrepository [] (5) - layout - Git Repository Layout +gittutorial [] (7) - 2 - A tutorial introduction to git: part two +gittutorial [] (7) - A tutorial introduction to git (for version 1.5.1 or newer) +gitworkflows [] (7) - An overview of recommended workflows with git +gjar [] (1) - - Archive tool for Java archives +gjarsigner [] (1) - Java ARchive (JAR) file signing and verification tool +gjavah [] (1) - - generate header files from Java class files +gkeytool [] (1) - Manage private keys and public certificates +gkrellm [] (1) - The GNU Krell Monitors +gkrellmd [] (1) - The GNU Krell Monitors Server +gl_allocatecontext [] (3) - allocate a graphics context +gl_bcircle [] (3) - draw a filled or unfilled Bresenham circle +gl_circle [] (3) - draw a circle +gl_clearscreen [] (3) - clear the screen +gl_colorfont [] (3) - change the color of a font +gl_compileboxmask [] (3) - compress a masked bitmap +gl_compiledboxmasksize [] (3) - compute the size of a compiled masked box +gl_copybox [] (3) - copy a rectangular screen area +gl_copyboxfromcontext [] (3) - copy rectangular area from another context +gl_copyboxtocontext [] (3) - copy a rectangular area to another context +gl_copyscreen [] (3) - copy the screen contents of contexts +gl_disableclipping [] (3) - disables clipping +gl_enableclipping [] (3) - enables clipping +gl_enablepageflipping [] (3) - enables automatic page flipping +gl_expandfont [] (3) - expand a packed pixel font +gl_fillbox [] (3) - fill a rectangular area +gl_fillcircle [] (3) - draw a filled circle +gl_font8x8 [] (3) - a packed 8x8 pixel font +gl_freecontext [] (3) - free a virtual screen +gl_getbox [] (3) - copy a rectangular pixmap from the screen to a buffer +gl_getcontext [] (3) - get the current graphics contents +gl_getpalette [] (3) - read the color palette +gl_getpalettecolor [] (3) - read the color palette +gl_getpalettecolors [] (3) - read the color palette +gl_getpixel [] (3) - return the color of a pixel +gl_getpixelrgb [] (3) - store color components of a pixel +gl_hline [] (3) - draw a horizontal line +gl_line [] (3) - draw a line +gl_printf [] (3) - write formatted output in graphic mode +gl_putbox [] (3) - copy a pixmap to a rectangular area +gl_putboxmask [] (3) - copy a masked pixmap to a rectangular area +gl_putboxmaskcompiled [] (3) - copy a compiled masked pixmap to a rectangular area +gl_putboxpart [] (3) - copy a partial pixmap to a rectangular area +gl_rgbcolor [] (3) - return pixel value corresponding to an rgb color +gl_scalebox [] (3) - scale a pixmap +gl_setclippingwindow [] (3) - set the clipping window +gl_setcontext [] (3) - set a previously saved context +gl_setcontextheight [] (3) - set the dimension of a context +gl_setcontextvga [] (3) - set the context to the physical screen +gl_setcontextvgavirtual [] (3) - set the context to a virtual mode +gl_setcontextvirtual [] (3) - define a virtual context +gl_setcontextwidth [] (3) - set the dimension of a context +gl_setdisplaystart [] (3) - set the start of the screen are displayed +gl_setfont [] (3) - set the text font to be used +gl_setfontcolors [] (3) - set the font colors +gl_setpalette [] (3) - set the color palette +gl_setpalettecolor [] (3) - set the color palette +gl_setpalettecolors [] (3) - set the color palette +gl_setpixel [] (3) - draw a pixel +gl_setpixelrgb [] (3) - draw a pixel +gl_setrgbpalette [] (3) - set a 256-color RGB palette +gl_setscreenoffset [] (3) - set a memory offset for copyscreen +gl_setwritemode [] (3) - set the font writemode flags +gl_striangle [] (3) - draw a solid colored triangle +gl_swtriangle [] (3) - draw a solid pixmap mapped on a triangle +gl_triangle [] (3) - draw a triangle with interpolated colors +gl_trigetcolorlookup [] (3) - manages a color lookup table for shadowing +gl_trisetcolorlookup [] (3) - manages a color lookup table for shadowing +gl_trisetdrawpoint [] (3) - set a triangle drawing function +gl_write [] (3) - write a text string +gl_writen [] (3) - write a text string +gl_wtriangle [] (3) - draw a shadowed pixmap mapped on a triangle +glblur [] (6) - 3D radial blur texture fields +glcells [] (6) - growing cells graphics hack +gleidescope [] (6) - a tiled OpenGL kaleidescope +glhanoi [] (6) - OpenGL Towers of Hanoi +glib [] (1) - config - script to get information about the installed version of GLib +glib [] (1) - genmarshal - C code marshaller generation utility for GLib closures +glib [] (1) - gettextize - gettext internationalization utility +glib [] (1) - mkenums - C language enum description generation utility +glint [] (4) - GLINT/Permedia video driver +glknots [] (6) - generates some twisting 3d knot patterns +glmatrix [] (6) - simulates the title sequence effect of the movie +glob [] (3) - find pathnames matching a pattern, free memory from glob() +glob [] (7) - Globbing pathnames +glob [] (n) - Return names of files that match patterns +global [] (n) - Access global variables +globaltime (1) - International multiclock timeconverter for the Xfce Desktop Environment. It is part of Orage +globaltime [] (1) - International multiclock timeconverter for the Xfce Desktop Environment. It is part of Orage +globfree [] (3) - find pathnames matching a pattern, free memory from glob() +glplanet [] (6) - rotating 3d texture-mapped planet +glschool [] (6) - a 3D schooling simulation +glslideshow [] (6) - slideshow of images using smooth zooming and fades +glsnake [] (6) - OpenGL enhanced Rubik's Snake cyclewaster +gltext [] (6) - draws text spinning around in 3D +gmtime [] (3) - transform date and time to broken-down time or ASCII +gmtime_r [] (3) - transform date and time to broken-down time or ASCII +gnative2ascii [] (1) - - An encoding converter +gnu_get_libc_release [] (3) - get glibc version and release +gnu_get_libc_version [] (3) - get glibc version and release +gnuplot [] (1) - an interactive plotting program +gnutls [] (1) - cli - GNU TLS test client +gnutls [] (1) - cli-debug - GNU TLS test client, with verbose output +gnutls [] (1) - serv - GNU TLS test server +gnutls_alert_get [] (3) - Returns the last alert number received +gnutls_alert_get_name [] (3) - Returns a string describing the alert number given +gnutls_alert_send [] (3) - send an alert message to the peer +gnutls_alert_send_appropriate [] (3) - send alert to peer depending on error code +gnutls_anon_allocate_client_credentials [] (3) - Used to allocate a credentials structure +gnutls_anon_allocate_server_credentials [] (3) - Used to allocate an gnutls_anon_server_credentials_t structure +gnutls_anon_free_client_credentials [] (3) - Used to free an allocated gnutls_anon_client_credentials_t structure +gnutls_anon_free_server_credentials [] (3) - Used to free an allocated gnutls_anon_server_credentials_t structure +gnutls_anon_set_params_function [] (3) - set the DH or RSA parameters callback +gnutls_anon_set_server_dh_params [] (3) - set the DH parameters for a server to use +gnutls_anon_set_server_params_function [] (3) - set the DH parameters callback +gnutls_auth_client_get_type [] (3) - Returns the type of credentials for the client authentication schema +gnutls_auth_get_type [] (3) - Returns the type of credentials for the current authentication schema +gnutls_auth_server_get_type [] (3) - Returns the type of credentials for the server authentication schema +gnutls_bye [] (3) - terminate the current TLS/SSL connection +gnutls_certificate_activation_time_peers [] (3) - return the peer's certificate activation time +gnutls_certificate_allocate_credentials [] (3) - Used to allocate a gnutls_certificate_credentials_t structure +gnutls_certificate_client_get_request_status [] (3) - return the certificate request status +gnutls_certificate_client_set_retrieve_function [] (3) - Used to set a callback to retrieve the certificate +gnutls_certificate_expiration_time_peers [] (3) - return the peer's certificate expiration time +gnutls_certificate_free_ca_names [] (3) - Used to free all the CA names from a gnutls_certificate_credentials_t structure +gnutls_certificate_free_cas [] (3) - Used to free all the CAs from a gnutls_certificate_credentials_t structure +gnutls_certificate_free_credentials [] (3) - Used to free an allocated gnutls_certificate_credentials_t structure +gnutls_certificate_free_crls [] (3) - Used to free all the CRLs from a gnutls_certificate_credentials_t structure +gnutls_certificate_free_keys [] (3) - Used to free all the keys from a gnutls_certificate_credentials_t structure +gnutls_certificate_get_openpgp_keyring [] (3) - Used to export the keyring from a gnutls_certificate_credentials_t structure +gnutls_certificate_get_ours [] (3) - return the raw certificate sent in the last handshake +gnutls_certificate_get_peers [] (3) - return the peer's raw certificate +gnutls_certificate_get_x509_cas [] (3) - Used to export all the CAs from a gnutls_certificate_credentials_t structure +gnutls_certificate_get_x509_crls [] (3) - Used to export all the CRLs from a gnutls_certificate_credentials_t structure +gnutls_certificate_send_x509_rdn_sequence [] (3) - order gnutls to send or not the x.509 rdn sequence +gnutls_certificate_server_set_request [] (3) - Used to set whether to request a client certificate +gnutls_certificate_server_set_retrieve_function [] (3) - Used to set a callback to retrieve the certificate +gnutls_certificate_set_dh_params [] (3) - set the DH parameters for a server to use +gnutls_certificate_set_openpgp_key [] (3) - Used to set keys in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_openpgp_key_file [] (3) - Used to set OpenPGP keys +gnutls_certificate_set_openpgp_key_file2 [] (3) - Used to set OpenPGP keys +gnutls_certificate_set_openpgp_key_mem [] (3) - Used to set OpenPGP keys +gnutls_certificate_set_openpgp_key_mem2 [] (3) - Used to set OpenPGP keys +gnutls_certificate_set_openpgp_keyring_file [] (3) - Sets a keyring file for OpenPGP +gnutls_certificate_set_openpgp_keyring_mem [] (3) - Add keyring data for OpenPGP +gnutls_certificate_set_params_function [] (3) - set the DH or RSA parameters callback +gnutls_certificate_set_rsa_export_params [] (3) - set the RSA parameters for a server to use +gnutls_certificate_set_verify_flags [] (3) - set the flags to be used at certificate verification +gnutls_certificate_set_verify_limits [] (3) - set the upper limits to be used at certificate verification +gnutls_certificate_set_x509_crl [] (3) - Used to add CRLs in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_x509_crl_file [] (3) - Used to add CRLs in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_x509_crl_mem [] (3) - Used to add CRLs in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_x509_key [] (3) - Used to set keys in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_x509_key_file [] (3) - Used to set keys in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_x509_key_mem [] (3) - Used to set keys in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_x509_simple_pkcs12_file [] (3) - API function +gnutls_certificate_set_x509_trust [] (3) - Used to add trusted CAs in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_x509_trust_file [] (3) - Used to add trusted CAs in a gnutls_certificate_credentials_t structure +gnutls_certificate_set_x509_trust_mem [] (3) - Used to add trusted CAs in a gnutls_certificate_credentials_t structure +gnutls_certificate_type_get [] (3) - Returns the currently used certificate type +gnutls_certificate_type_get_id [] (3) - Returns the gnutls id of the specified in string type +gnutls_certificate_type_get_name [] (3) - Returns a string with the name of the specified certificate type +gnutls_certificate_type_list [] (3) - Get a list of supported certificate types +gnutls_certificate_type_set_priority [] (3) - Sets the priority on the certificate types supported by gnutls +gnutls_certificate_verify_peers [] (3) - return the peer's certificate verification status +gnutls_certificate_verify_peers2 [] (3) - return the peer's certificate verification status +gnutls_check_version [] (3) - check the library's version +gnutls_cipher_get [] (3) - Returns the currently used cipher +gnutls_cipher_get_id [] (3) - Returns the gnutls id of the specified in string algorithm +gnutls_cipher_get_key_size [] (3) - Returns the length of the cipher's key size +gnutls_cipher_get_name [] (3) - Returns a string with the name of the specified cipher algorithm +gnutls_cipher_list [] (3) - Get a list of supported ciphers +gnutls_cipher_set_priority [] (3) - Sets the priority on the ciphers supported by gnutls +gnutls_cipher_suite_get_name [] (3) - Returns a string with the name of the specified cipher suite +gnutls_cipher_suite_info [] (3) - API function +gnutls_compression_get [] (3) - Returns the currently used compression algorithm +gnutls_compression_get_id [] (3) - Returns the gnutls id of the specified in string algorithm +gnutls_compression_get_name [] (3) - Returns a string with the name of the specified compression algorithm +gnutls_compression_list [] (3) - Get a list of supported compression methods +gnutls_compression_set_priority [] (3) - Sets the priority on the compression algorithms supported by gnutls +gnutls_credentials_clear [] (3) - Clears all the credentials previously set +gnutls_credentials_set [] (3) - Sets the needed credentials for the specified authentication algorithm +gnutls_crypto_bigint_register2 [] (3) - register a bigint interface +gnutls_crypto_cipher_register2 [] (3) - register a cipher interface +gnutls_crypto_digest_register2 [] (3) - register a digest interface +gnutls_crypto_mac_register2 [] (3) - register a mac interface +gnutls_crypto_pk_register2 [] (3) - register a public key interface +gnutls_crypto_rnd_register2 [] (3) - register a random generator +gnutls_crypto_single_cipher_register2 [] (3) - register a cipher algorithm +gnutls_crypto_single_digest_register2 [] (3) - register a digest algorithm +gnutls_crypto_single_mac_register2 [] (3) - register a MAC algorithm +gnutls_db_check_entry [] (3) - check if the given db entry has expired +gnutls_db_get_ptr [] (3) - Returns the pointer which is sent to db functions +gnutls_db_remove_session [] (3) - remove the current session data from the database +gnutls_db_set_cache_expiration [] (3) - Set the expiration time for resumed sessions +gnutls_db_set_ptr [] (3) - Set a pointer to be sent to db functions +gnutls_db_set_remove_function [] (3) - Set the function that will be used to remove data +gnutls_db_set_retrieve_function [] (3) - Set the function that will be used to get data +gnutls_db_set_store_function [] (3) - Set the function that will be used to put data +gnutls_deinit [] (3) - clear all buffers associated with a session +gnutls_dh_get_group [] (3) - return the group of the DH authentication +gnutls_dh_get_peers_public_bits [] (3) - return the bits used in DH authentication +gnutls_dh_get_prime_bits [] (3) - return the bits used in DH authentication +gnutls_dh_get_pubkey [] (3) - return the peer's public key used in DH authentication +gnutls_dh_get_secret_bits [] (3) - return the bits used in DH authentication +gnutls_dh_params_cpy [] (3) - copy a DH parameters structure +gnutls_dh_params_deinit [] (3) - deinitialize the DH parameters +gnutls_dh_params_export_pkcs3 [] (3) - export DH params to a pkcs3 structure +gnutls_dh_params_export_raw [] (3) - export the raw DH parameters +gnutls_dh_params_generate2 [] (3) - generate new DH parameters +gnutls_dh_params_import_pkcs3 [] (3) - import DH params from a pkcs3 structure +gnutls_dh_params_import_raw [] (3) - import DH parameters +gnutls_dh_params_init [] (3) - initialize the DH parameters +gnutls_dh_set_prime_bits [] (3) - Used to set the bits for a DH ciphersuite +gnutls_error_is_fatal [] (3) - Returns non-zero in case of a fatal error +gnutls_error_to_alert [] (3) - return an alert code based on the given error code +gnutls_ext_register [] (3) - Register a handler for a TLS extension +gnutls_extra_check_version [] (3) - This function checks the library's version +gnutls_fingerprint [] (3) - calculate the fingerprint of the given data +gnutls_free [] (3) - Returns a free() like function +gnutls_global_deinit [] (3) - deinitialize the global data +gnutls_global_init [] (3) - initialize the global data to defaults +gnutls_global_init_extra [] (3) - initializes the global state of gnutls-extra +gnutls_global_set_log_function [] (3) - set the logging function +gnutls_global_set_log_level [] (3) - set the logging level +gnutls_global_set_mem_functions [] (3) - set the memory allocation functions +gnutls_handshake [] (3) - This is the main function in the handshake protocol +gnutls_handshake_get_last_in [] (3) - Returns the last handshake message received +gnutls_handshake_get_last_out [] (3) - Returns the last handshake message sent +gnutls_handshake_set_max_packet_length [] (3) - set the maximum size of the handshake +gnutls_handshake_set_post_client_hello_function [] (3) - set callback to be called after the client hello is received +gnutls_handshake_set_private_extensions [] (3) - Used to enable the private cipher suites +gnutls_hex2bin [] (3) - convert hex string into binary buffer +gnutls_hex_decode [] (3) - decode hex encoded data +gnutls_hex_encode [] (3) - convert raw data to hex encoded +gnutls_ia_allocate_client_credentials [] (3) - Used to allocate an gnutls_ia_server_credentials_t structure +gnutls_ia_allocate_server_credentials [] (3) - Used to allocate an gnutls_ia_server_credentials_t structure +gnutls_ia_enable [] (3) - Indicate willingness for TLS/IA application phases +gnutls_ia_endphase_send [] (3) - API function +gnutls_ia_extract_inner_secret [] (3) - API function +gnutls_ia_free_client_credentials [] (3) - Used to free an allocated #gnutls_ia_client_credentials_t structure +gnutls_ia_free_server_credentials [] (3) - Used to free an allocated #gnutls_ia_server_credentials_t structure +gnutls_ia_generate_challenge [] (3) - API function +gnutls_ia_get_client_avp_ptr [] (3) - Returns the pointer which is sent to TLS/IA callback +gnutls_ia_get_server_avp_ptr [] (3) - Returns the pointer which is sent to TLS/IA callback +gnutls_ia_handshake [] (3) - API function +gnutls_ia_handshake_p [] (3) - API function +gnutls_ia_permute_inner_secret [] (3) - API function +gnutls_ia_recv [] (3) - read data from the TLS/IA protocol +gnutls_ia_send [] (3) - API function +gnutls_ia_set_client_avp_function [] (3) - Used to set a AVP callback +gnutls_ia_set_client_avp_ptr [] (3) - Sets a pointer to be sent to TLS/IA callback +gnutls_ia_set_server_avp_function [] (3) - Used to set a AVP callback +gnutls_ia_set_server_avp_ptr [] (3) - Sets a pointer to be sent to TLS/IA callback +gnutls_ia_verify_endphase [] (3) - API function +gnutls_init [] (3) - initialize the session to null (null encryption etc...) +gnutls_kx_get [] (3) - Returns the key exchange algorithm +gnutls_kx_get_id [] (3) - Returns the gnutls id of the specified in string algorithm +gnutls_kx_get_name [] (3) - Returns a string with the name of the specified key exchange algorithm +gnutls_kx_list [] (3) - Get a list of supported key exchange methods +gnutls_kx_set_priority [] (3) - Sets the priority on the key exchange algorithms supported by gnutls +gnutls_mac_get [] (3) - Returns the currently used mac algorithm +gnutls_mac_get_id [] (3) - Returns the gnutls id of the specified in string algorithm +gnutls_mac_get_key_size [] (3) - Returns the length of the MAC's key size +gnutls_mac_get_name [] (3) - Returns a string with the name of the specified mac algorithm +gnutls_mac_list [] (3) - Get a list of supported MAC algorithms +gnutls_mac_set_priority [] (3) - Sets the priority on the mac algorithms supported by gnutls +gnutls_malloc [] (3) - Allocates and returns data +gnutls_openpgp_crt_check_hostname [] (3) - compare hostname with the key's hostname +gnutls_openpgp_crt_deinit [] (3) - deinitialize memory used by a #gnutls_openpgp_crt_t structure +gnutls_openpgp_crt_export [] (3) - export a RAW or BASE64 encoded key +gnutls_openpgp_crt_get_auth_subkey [] (3) - Gets the keyID of an authentication subkey +gnutls_openpgp_crt_get_creation_time [] (3) - Extract the timestamp +gnutls_openpgp_crt_get_expiration_time [] (3) - Extract the expire date +gnutls_openpgp_crt_get_fingerprint [] (3) - Gets the fingerprint +gnutls_openpgp_crt_get_key_id [] (3) - Gets the keyID +gnutls_openpgp_crt_get_key_usage [] (3) - This function returns the key's usage +gnutls_openpgp_crt_get_name [] (3) - Extracts the userID +gnutls_openpgp_crt_get_pk_algorithm [] (3) - return the key's PublicKey algorithm +gnutls_openpgp_crt_get_pk_dsa_raw [] (3) - export the DSA public key +gnutls_openpgp_crt_get_pk_rsa_raw [] (3) - export the RSA public key +gnutls_openpgp_crt_get_preferred_key_id [] (3) - Gets the preferred keyID +gnutls_openpgp_crt_get_revoked_status [] (3) - Gets the revoked status of the key +gnutls_openpgp_crt_get_subkey_count [] (3) - return the number of subkeys +gnutls_openpgp_crt_get_subkey_creation_time [] (3) - Extract the timestamp +gnutls_openpgp_crt_get_subkey_expiration_time [] (3) - Extract the expire date +gnutls_openpgp_crt_get_subkey_fingerprint [] (3) - Gets the fingerprint of a subkey +gnutls_openpgp_crt_get_subkey_id [] (3) - Gets the keyID +gnutls_openpgp_crt_get_subkey_idx [] (3) - Returns the subkey's index +gnutls_openpgp_crt_get_subkey_pk_algorithm [] (3) - return the subkey's PublicKey algorithm +gnutls_openpgp_crt_get_subkey_pk_dsa_raw [] (3) - export the DSA public key +gnutls_openpgp_crt_get_subkey_pk_rsa_raw [] (3) - export the RSA public key +gnutls_openpgp_crt_get_subkey_revoked_status [] (3) - Gets the revoked status of the key +gnutls_openpgp_crt_get_subkey_usage [] (3) - returns the key's usage +gnutls_openpgp_crt_get_version [] (3) - Extracts the version of the key +gnutls_openpgp_crt_import [] (3) - import a RAW or BASE64 encoded key +gnutls_openpgp_crt_init [] (3) - initialize a #gnutls_openpgp_crt_t structure +gnutls_openpgp_crt_print [] (3) - Pretty print OpenPGP certificates +gnutls_openpgp_crt_set_preferred_key_id [] (3) - Sets the prefered keyID +gnutls_openpgp_crt_verify_ring [] (3) - Verify all signatures in the key +gnutls_openpgp_crt_verify_self [] (3) - Verify the self signature on the key +gnutls_openpgp_keyring_check_id [] (3) - Check if a key id exists in the keyring +gnutls_openpgp_keyring_deinit [] (3) - deinitializes memory used by a #gnutls_openpgp_keyring_t structure +gnutls_openpgp_keyring_get_crt [] (3) - export an openpgp certificate from a keyring +gnutls_openpgp_keyring_get_crt_count [] (3) - return the number of certificates +gnutls_openpgp_keyring_import [] (3) - Import a raw- or Base64-encoded keyring +gnutls_openpgp_keyring_init [] (3) - initializes a #gnutls_openpgp_keyring_t structure +gnutls_openpgp_privkey_deinit [] (3) - deinitializes memory used by a #gnutls_openpgp_privkey_t structure +gnutls_openpgp_privkey_export [] (3) - export a RAW or BASE64 encoded key +gnutls_openpgp_privkey_export_dsa_raw [] (3) - This function will export the DSA private key +gnutls_openpgp_privkey_export_rsa_raw [] (3) - This function will export the RSA private key +gnutls_openpgp_privkey_export_subkey_dsa_raw [] (3) - export the DSA private key +gnutls_openpgp_privkey_export_subkey_rsa_raw [] (3) - export the RSA private key +gnutls_openpgp_privkey_get_fingerprint [] (3) - Gets the fingerprint +gnutls_openpgp_privkey_get_key_id [] (3) - Gets the keyID +gnutls_openpgp_privkey_get_pk_algorithm [] (3) - return the key's PublicKey algorithm +gnutls_openpgp_privkey_get_preferred_key_id [] (3) - Gets the preferred keyID +gnutls_openpgp_privkey_get_revoked_status [] (3) - Get the revoked status of the key +gnutls_openpgp_privkey_get_subkey_count [] (3) - return the number of subkeys +gnutls_openpgp_privkey_get_subkey_creation_time [] (3) - Extract the timestamp +gnutls_openpgp_privkey_get_subkey_expiration_time [] (3) - Extract the expire date +gnutls_openpgp_privkey_get_subkey_fingerprint [] (3) - Gets the fingerprint of a subkey +gnutls_openpgp_privkey_get_subkey_id [] (3) - Gets the keyID +gnutls_openpgp_privkey_get_subkey_idx [] (3) - Returns the subkey's index +gnutls_openpgp_privkey_get_subkey_pk_algorithm [] (3) - return the subkey's PublicKey algorithm +gnutls_openpgp_privkey_get_subkey_revoked_status [] (3) - Get the revoked status of the key +gnutls_openpgp_privkey_import [] (3) - import a RAW or BASE64 encoded key +gnutls_openpgp_privkey_init [] (3) - initializes a #gnutls_openpgp_privkey_t structure +gnutls_openpgp_privkey_set_preferred_key_id [] (3) - Set the prefered keyID +gnutls_openpgp_privkey_sign_hash [] (3) - sign the given data using the private key params +gnutls_openpgp_send_cert [] (3) - order gnutls to send the openpgp fingerprint instead of the key +gnutls_openpgp_set_recv_key_function [] (3) - Used to set a key retrieval callback for PGP keys +gnutls_oprfi_enable_client [] (3) - API function +gnutls_oprfi_enable_server [] (3) - API function +gnutls_pem_base64_decode [] (3) - decode base64 encoded data +gnutls_pem_base64_decode_alloc [] (3) - decode base64 encoded data +gnutls_pem_base64_encode [] (3) - convert raw data to Base64 encoded +gnutls_pem_base64_encode_alloc [] (3) - convert raw data to Base64 encoded +gnutls_perror [] (3) - prints a string to stderr with a description of an error +gnutls_pk_algorithm_get_name [] (3) - Get string with name of public key algorithm +gnutls_pk_get_id [] (3) - Get #gnutls_pk_algorithm_t from a string +gnutls_pk_get_name [] (3) - Get name string with #gnutls_pk_algorithm_t algorithm +gnutls_pk_list [] (3) - Get a list of supported public key algorithms +gnutls_pkcs12_bag_decrypt [] (3) - This function will decrypt an encrypted bag +gnutls_pkcs12_bag_deinit [] (3) - This function deinitializes memory used by a gnutls_pkcs12_t structure +gnutls_pkcs12_bag_encrypt [] (3) - This function will encrypt a bag +gnutls_pkcs12_bag_get_count [] (3) - This function returns the bag's elements count +gnutls_pkcs12_bag_get_data [] (3) - This function returns the bag's data +gnutls_pkcs12_bag_get_friendly_name [] (3) - This function returns the friendly name of the bag element +gnutls_pkcs12_bag_get_key_id [] (3) - This function gets the key ID from the bag element +gnutls_pkcs12_bag_get_type [] (3) - This function returns the bag's type +gnutls_pkcs12_bag_init [] (3) - This function initializes a gnutls_pkcs12_bag_t structure +gnutls_pkcs12_bag_set_crl [] (3) - insert the CRL into the bag +gnutls_pkcs12_bag_set_crt [] (3) - This function inserts a certificate into the bag +gnutls_pkcs12_bag_set_data [] (3) - This function inserts data into the bag +gnutls_pkcs12_bag_set_friendly_name [] (3) - This function sets a friendly name into the bag element +gnutls_pkcs12_bag_set_key_id [] (3) - This function sets a key ID into the bag element +gnutls_pkcs12_deinit [] (3) - This function deinitializes memory used by a gnutls_pkcs12_t structure +gnutls_pkcs12_export [] (3) - This function will export the pkcs12 structure +gnutls_pkcs12_generate_mac [] (3) - This function generates the MAC of the PKCS12 structure +gnutls_pkcs12_get_bag [] (3) - This function returns a Bag from a PKCS12 structure +gnutls_pkcs12_import [] (3) - This function will import a DER or PEM encoded PKCS12 structure +gnutls_pkcs12_init [] (3) - This function initializes a gnutls_pkcs12_t structure +gnutls_pkcs12_set_bag [] (3) - This function inserts a Bag into a PKCS12 structure +gnutls_pkcs12_verify_mac [] (3) - This function verifies the MAC of the PKCS12 structure +gnutls_pkcs7_deinit [] (3) - deinitializes a #gnutls_pkcs7_t structure +gnutls_pkcs7_delete_crl [] (3) - deletes a CRL from a PKCS7 crl set +gnutls_pkcs7_delete_crt [] (3) - deletes a certificate from a PKCS7 certificate set +gnutls_pkcs7_export [] (3) - export the pkcs7 structure +gnutls_pkcs7_get_crl_count [] (3) - returns the number of CRLs in a PKCS7 crl set +gnutls_pkcs7_get_crl_raw [] (3) - This function returns a crl in a PKCS7 crl set +gnutls_pkcs7_get_crt_count [] (3) - return the number of certificates in a PKCS7 certificate set +gnutls_pkcs7_get_crt_raw [] (3) - get a certificate from a PKCS7 certificate set +gnutls_pkcs7_import [] (3) - import a DER or PEM encoded PKCS7 +gnutls_pkcs7_init [] (3) - initialize a #gnutls_pkcs7_t structure +gnutls_pkcs7_set_crl [] (3) - add a parsed crl in a PKCS7 crl set +gnutls_pkcs7_set_crl_raw [] (3) - add a crl in a PKCS7 crl set +gnutls_pkcs7_set_crt [] (3) - add a parsed certificate in a PKCS7 certificate set +gnutls_pkcs7_set_crt_raw [] (3) - add a certificate in a PKCS7 certificate set +gnutls_prf [] (3) - derive pseudo-random data using the TLS PRF +gnutls_prf_raw [] (3) - access the TLS PRF directly +gnutls_priority_deinit [] (3) - Deinitialize the priorities cache for the cipher suites supported by gnutls +gnutls_priority_init [] (3) - Sets priorities for the cipher suites supported by gnutls +gnutls_priority_set [] (3) - Sets priorities for the cipher suites supported by gnutls +gnutls_priority_set_direct [] (3) - Sets priorities for the cipher suites supported by gnutls +gnutls_protocol_get_id [] (3) - Returns the gnutls id of the specified in string protocol +gnutls_protocol_get_name [] (3) - Returns a string with the name of the specified SSL/TLS version +gnutls_protocol_get_version [] (3) - Returns the version of the currently used protocol +gnutls_protocol_list [] (3) - Get a list of supported protocols +gnutls_protocol_set_priority [] (3) - Sets the priority on the protocol versions supported by gnutls +gnutls_psk_allocate_client_credentials [] (3) - Used to allocate an gnutls_psk_server_credentials_t structure +gnutls_psk_allocate_server_credentials [] (3) - Used to allocate an gnutls_psk_server_credentials_t structure +gnutls_psk_client_get_hint [] (3) - return the PSK identity hint of the peer +gnutls_psk_free_client_credentials [] (3) - Used to free an allocated gnutls_psk_client_credentials_t structure +gnutls_psk_free_server_credentials [] (3) - Used to free an allocated gnutls_psk_server_credentials_t structure +gnutls_psk_netconf_derive_key [] (3) - derive PSK Netconf key from password +gnutls_psk_server_get_username [] (3) - return the username of the peer +gnutls_psk_set_client_credentials [] (3) - Used to set the username/password, in a gnutls_psk_client_credentials_t structure +gnutls_psk_set_client_credentials_function [] (3) - Used to set a callback to retrieve the username and key +gnutls_psk_set_params_function [] (3) - set the DH or RSA parameters callback +gnutls_psk_set_server_credentials_file [] (3) - Used to set the password files, in a gnutls_psk_server_credentials_t structure +gnutls_psk_set_server_credentials_function [] (3) - Used to set a callback to retrieve the user's PSK credentials +gnutls_psk_set_server_credentials_hint [] (3) - Set a identity hint, in a %gnutls_psk_server_credentials_t structure +gnutls_psk_set_server_dh_params [] (3) - set the DH parameters for a server to use +gnutls_psk_set_server_params_function [] (3) - set the DH parameters callback +gnutls_record_check_pending [] (3) - checks if there are any data to receive in gnutls buffers +gnutls_record_disable_padding [] (3) - Used to disabled padding in TLS 1.0 and above +gnutls_record_get_direction [] (3) - return the direction of the last interrupted function call +gnutls_record_get_max_size [] (3) - returns the maximum record size +gnutls_record_recv [] (3) - reads data from the TLS record protocol +gnutls_record_send [] (3) - sends to the peer the specified data +gnutls_record_set_max_size [] (3) - sets the maximum record size +gnutls_register_md5_handler [] (3) - API function +gnutls_rehandshake [] (3) - renegotiate security parameters +gnutls_rsa_export_get_modulus_bits [] (3) - return the bits used in RSA-export key exchange +gnutls_rsa_export_get_pubkey [] (3) - return the peer's public key used in RSA-EXPORT authentication +gnutls_rsa_params_cpy [] (3) - copy an RSA parameters structure +gnutls_rsa_params_deinit [] (3) - deinitialize the RSA parameters +gnutls_rsa_params_export_pkcs1 [] (3) - export RSA params to a pkcs1 structure +gnutls_rsa_params_export_raw [] (3) - export the RSA parameters +gnutls_rsa_params_generate2 [] (3) - generate temporary RSA parameters +gnutls_rsa_params_import_pkcs1 [] (3) - import RSA params from a pkcs1 structure +gnutls_rsa_params_import_raw [] (3) - set the RSA parameters +gnutls_rsa_params_init [] (3) - initialize the temporary RSA parameters +gnutls_server_name_get [] (3) - Used to get the server name indicator send by a client +gnutls_server_name_set [] (3) - Used to set a name indicator to be sent as an extension +gnutls_session_enable_compatibility_mode [] (3) - disable certain features in TLS in order to honour compatibility +gnutls_session_get_client_random [] (3) - get the session's client random value +gnutls_session_get_data [] (3) - Returns all session parameters +gnutls_session_get_data2 [] (3) - Returns all session parameters +gnutls_session_get_id [] (3) - Returns session id +gnutls_session_get_master_secret [] (3) - get the session's master secret value +gnutls_session_get_ptr [] (3) - Get the user pointer from the session structure +gnutls_session_get_server_random [] (3) - get the session's server random value +gnutls_session_is_resumed [] (3) - check whether this session is a resumed one +gnutls_session_set_data [] (3) - Sets all session parameters +gnutls_session_set_finished_function [] (3) - API function +gnutls_session_set_ptr [] (3) - Used to set the user pointer to the session structure +gnutls_set_default_export_priority [] (3) - Sets some default priority on the cipher suites supported by gnutls +gnutls_set_default_priority [] (3) - Sets some default priority on the cipher suites supported by gnutls +gnutls_sign_algorithm_get_name [] (3) - Returns a string with the name of the specified sign algorithm +gnutls_sign_callback_get [] (3) - API function +gnutls_sign_callback_set [] (3) - API function +gnutls_sign_get_id [] (3) - Returns the gnutls id of the specified in signature algorithm +gnutls_sign_get_name [] (3) - Get name string for a #gnutls_sign_algorithm_t +gnutls_sign_list [] (3) - Get a list of supported public key signature algorithms +gnutls_srp_allocate_client_credentials [] (3) - Used to allocate an gnutls_srp_server_credentials_t structure +gnutls_srp_allocate_server_credentials [] (3) - Used to allocate an gnutls_srp_server_credentials_t structure +gnutls_srp_base64_decode [] (3) - decode SRP-base64 encoded data +gnutls_srp_base64_decode_alloc [] (3) - decode SRP-base64 encoded data +gnutls_srp_base64_encode [] (3) - Encode raw data using SRP-Base64 +gnutls_srp_base64_encode_alloc [] (3) - encode raw data using SRP-Base64 +gnutls_srp_free_client_credentials [] (3) - Used to free an allocated gnutls_srp_client_credentials_t structure +gnutls_srp_free_server_credentials [] (3) - Used to free an allocated gnutls_srp_server_credentials_t structure +gnutls_srp_server_get_username [] (3) - return the username of the peer +gnutls_srp_set_client_credentials [] (3) - Used to set the username/password, in a gnutls_srp_client_credentials_t structure +gnutls_srp_set_client_credentials_function [] (3) - Used to set a callback to retrieve the username and password +gnutls_srp_set_prime_bits [] (3) - set the minimum bits for a SRP ciphersuite +gnutls_srp_set_server_credentials_file [] (3) - Used to set the password files, in a gnutls_srp_server_credentials_t structure +gnutls_srp_set_server_credentials_function [] (3) - Used to set a callback to retrieve the user's SRP credentials +gnutls_srp_verifier [] (3) - Used to calculate an SRP verifier +gnutls_strerror [] (3) - Returns a string with a description of an error +gnutls_strerror_name [] (3) - API function +gnutls_transport_get_ptr [] (3) - Used to return the first argument of the transport functions +gnutls_transport_get_ptr2 [] (3) - Used to return the first argument of the transport functions +gnutls_transport_set_errno [] (3) - API function +gnutls_transport_set_global_errno [] (3) - API function +gnutls_transport_set_lowat [] (3) - Used to set the lowat value in order for select to check for pending data +gnutls_transport_set_ptr [] (3) - Used to set first argument of the transport functions +gnutls_transport_set_ptr2 [] (3) - Used to set first argument of the transport functions +gnutls_transport_set_pull_function [] (3) - set a read like function +gnutls_transport_set_push_function [] (3) - set the function to send data +gnutls_x509_crl_check_issuer [] (3) - This function checks if the CRL given has the given issuer +gnutls_x509_crl_deinit [] (3) - deinitializes a #gnutls_x509_crl_t structure +gnutls_x509_crl_export [] (3) - export the CRL +gnutls_x509_crl_get_crt_count [] (3) - get number of revoked certificates in a CRL +gnutls_x509_crl_get_crt_serial [] (3) - get the serial number of a revoked certificate +gnutls_x509_crl_get_dn_oid [] (3) - returns the Certificate request issuer's distinguished name OIDs +gnutls_x509_crl_get_issuer_dn [] (3) - returns the CRL's issuer distinguished name +gnutls_x509_crl_get_issuer_dn_by_oid [] (3) - return the CRL's issuer distinguished name +gnutls_x509_crl_get_next_update [] (3) - return the CRL's nextUpdate time +gnutls_x509_crl_get_signature [] (3) - Returns the CRL's signature +gnutls_x509_crl_get_signature_algorithm [] (3) - returns the CRL's signature algorithm +gnutls_x509_crl_get_this_update [] (3) - return the CRL's thisUpdate time +gnutls_x509_crl_get_version [] (3) - returns the CRL's version number +gnutls_x509_crl_import [] (3) - import a DER or PEM encoded CRL +gnutls_x509_crl_init [] (3) - initializes a #gnutls_x509_crl_t structure +gnutls_x509_crl_print [] (3) - Pretty print X.509 certificate revocation list +gnutls_x509_crl_set_crt [] (3) - This function will set a revoked certificate's serial number +gnutls_x509_crl_set_crt_serial [] (3) - This function will set a revoked certificate's serial number +gnutls_x509_crl_set_next_update [] (3) - This function will set the CRL next update time +gnutls_x509_crl_set_this_update [] (3) - This function will set the CRL's issuing time +gnutls_x509_crl_set_version [] (3) - This function will set the CRL version +gnutls_x509_crl_sign [] (3) - This function will sign a CRL with a key +gnutls_x509_crl_sign2 [] (3) - This function will sign a CRL with a key +gnutls_x509_crl_verify [] (3) - This function verifies the given crl against a given trusted one +gnutls_x509_crq_deinit [] (3) - This function deinitializes memory used by a gnutls_x509_crq_t structure +gnutls_x509_crq_export [] (3) - Export the generated certificate request +gnutls_x509_crq_get_attribute_by_oid [] (3) - This function will get an attribute of the request +gnutls_x509_crq_get_challenge_password [] (3) - This function will get the challenge password +gnutls_x509_crq_get_dn [] (3) - This function returns the Certificate request subject's distinguished name +gnutls_x509_crq_get_dn_by_oid [] (3) - This function returns the Certificate request subject's distinguished name +gnutls_x509_crq_get_dn_oid [] (3) - This function returns the Certificate request subject's distinguished name OIDs +gnutls_x509_crq_get_pk_algorithm [] (3) - This function returns the certificate request's PublicKey algorithm +gnutls_x509_crq_get_version [] (3) - This function returns the Certificate request's version number +gnutls_x509_crq_import [] (3) - This function will import a DER or PEM encoded Certificate request +gnutls_x509_crq_init [] (3) - This function initializes a gnutls_x509_crq_t structure +gnutls_x509_crq_set_attribute_by_oid [] (3) - This function will set an attribute in the request +gnutls_x509_crq_set_challenge_password [] (3) - This function will set a challenge password +gnutls_x509_crq_set_dn_by_oid [] (3) - This function will set the Certificate request subject's distinguished name +gnutls_x509_crq_set_key [] (3) - This function will associate the Certificate request with a key +gnutls_x509_crq_set_key_rsa_raw [] (3) - associate Certificate request with a key +gnutls_x509_crq_set_version [] (3) - This function will set the Certificate request version +gnutls_x509_crq_sign [] (3) - This function will sign a Certificate request with a key +gnutls_x509_crq_sign2 [] (3) - Sign a Certificate request with a key +gnutls_x509_crt_check_hostname [] (3) - compares the hostname with certificate's hostname +gnutls_x509_crt_check_issuer [] (3) - This function checks if the certificate given has the given issuer +gnutls_x509_crt_check_revocation [] (3) - This function checks if the given certificate is revoked +gnutls_x509_crt_cpy_crl_dist_points [] (3) - Copy the CRL dist points +gnutls_x509_crt_deinit [] (3) - This function deinitializes memory used by a gnutls_x509_crt_t structure +gnutls_x509_crt_export [] (3) - This function will export the certificate +gnutls_x509_crt_get_activation_time [] (3) - returns the Certificate's activation time +gnutls_x509_crt_get_authority_key_id [] (3) - This function returns the certificate authority's identifier +gnutls_x509_crt_get_basic_constraints [] (3) - This function returns the certificate basic constraints +gnutls_x509_crt_get_ca_status [] (3) - This function returns the certificate CA status +gnutls_x509_crt_get_crl_dist_points [] (3) - This function returns the CRL distribution points +gnutls_x509_crt_get_dn [] (3) - This function returns the Certificate's distinguished name +gnutls_x509_crt_get_dn_by_oid [] (3) - This function returns the Certificate's distinguished name +gnutls_x509_crt_get_dn_oid [] (3) - This function returns the Certificate's subject distinguished name OIDs +gnutls_x509_crt_get_expiration_time [] (3) - returns the Certificate's expiration time +gnutls_x509_crt_get_extension_by_oid [] (3) - This function returns the specified extension +gnutls_x509_crt_get_extension_data [] (3) - Get the specified extension data +gnutls_x509_crt_get_extension_info [] (3) - Get extension id and criticality +gnutls_x509_crt_get_extension_oid [] (3) - This function returns the specified extension OID +gnutls_x509_crt_get_fingerprint [] (3) - This function returns the Certificate's fingerprint +gnutls_x509_crt_get_issuer [] (3) - API function +gnutls_x509_crt_get_issuer_dn [] (3) - This function returns the Certificate's issuer distinguished name +gnutls_x509_crt_get_issuer_dn_by_oid [] (3) - This function returns the Certificate's issuer distinguished name +gnutls_x509_crt_get_issuer_dn_oid [] (3) - This function returns the Certificate's issuer distinguished name OIDs +gnutls_x509_crt_get_key_id [] (3) - Return unique ID of public key's parameters +gnutls_x509_crt_get_key_purpose_oid [] (3) - This function returns the Certificate's key purpose OIDs +gnutls_x509_crt_get_key_usage [] (3) - return the certificate's key usage +gnutls_x509_crt_get_pk_algorithm [] (3) - return the certificate's PublicKey algorithm +gnutls_x509_crt_get_pk_dsa_raw [] (3) - This function will export the DSA public key +gnutls_x509_crt_get_pk_rsa_raw [] (3) - This function will export the RSA public key +gnutls_x509_crt_get_proxy [] (3) - This function returns the proxy certificate info +gnutls_x509_crt_get_raw_dn [] (3) - This function returns the subject's DN DER encoded +gnutls_x509_crt_get_raw_issuer_dn [] (3) - This function returns the issuer's DN DER encoded +gnutls_x509_crt_get_serial [] (3) - This function returns the certificate's serial number +gnutls_x509_crt_get_signature [] (3) - Returns the Certificate's signature +gnutls_x509_crt_get_signature_algorithm [] (3) - This function returns the Certificate's signature algorithm +gnutls_x509_crt_get_subject [] (3) - API function +gnutls_x509_crt_get_subject_alt_name [] (3) - Get certificate's alternative name, if any +gnutls_x509_crt_get_subject_alt_name2 [] (3) - Get certificate's alternative name, if any +gnutls_x509_crt_get_subject_alt_othername_oid [] (3) - Get SAN otherName OID +gnutls_x509_crt_get_subject_key_id [] (3) - This function returns the certificate's key identifier +gnutls_x509_crt_get_version [] (3) - return the Certificate's version number +gnutls_x509_crt_import [] (3) - This function will import a DER or PEM encoded Certificate +gnutls_x509_crt_init [] (3) - This function initializes a gnutls_x509_crt_t structure +gnutls_x509_crt_list_import [] (3) - This function will import a PEM encoded certificate list +gnutls_x509_crt_list_verify [] (3) - This function verifies the given certificate list +gnutls_x509_crt_print [] (3) - Pretty print X.509 certificates +gnutls_x509_crt_set_activation_time [] (3) - Set the Certificate's activation time +gnutls_x509_crt_set_authority_key_id [] (3) - Set the certificate authority's key id +gnutls_x509_crt_set_basic_constraints [] (3) - Set the basicConstraints extension +gnutls_x509_crt_set_ca_status [] (3) - Set the basicConstraints extension +gnutls_x509_crt_set_crl_dist_points [] (3) - Set the CRL dist points +gnutls_x509_crt_set_crl_dist_points2 [] (3) - Set the CRL dist points +gnutls_x509_crt_set_crq [] (3) - Associate the Certificate with a request +gnutls_x509_crt_set_dn_by_oid [] (3) - Set the Certificate request subject's distinguished name +gnutls_x509_crt_set_expiration_time [] (3) - Set the Certificate's expiration time +gnutls_x509_crt_set_extension_by_oid [] (3) - Set an arbitrary extension +gnutls_x509_crt_set_issuer_dn_by_oid [] (3) - Set the Certificate request issuer's distinguished name +gnutls_x509_crt_set_key [] (3) - This function will associate the Certificate with a key +gnutls_x509_crt_set_key_purpose_oid [] (3) - Sets the Certificate's key purpose OIDs +gnutls_x509_crt_set_key_usage [] (3) - Set the keyUsage extension +gnutls_x509_crt_set_proxy [] (3) - Set the proxyCertInfo extension +gnutls_x509_crt_set_proxy_dn [] (3) - Set Proxy Certificate subject's distinguished name +gnutls_x509_crt_set_serial [] (3) - Set the certificate's serial number +gnutls_x509_crt_set_subject_alt_name [] (3) - Set the subject Alternative Name +gnutls_x509_crt_set_subject_alternative_name [] (3) - Set the subject Alternative Name +gnutls_x509_crt_set_subject_key_id [] (3) - Set the certificate's subject key id +gnutls_x509_crt_set_version [] (3) - Set the Certificate request version +gnutls_x509_crt_sign [] (3) - Sign a certificate with a key +gnutls_x509_crt_sign2 [] (3) - Sign a certificate with a key +gnutls_x509_crt_verify [] (3) - This function verifies the given certificate against a given trusted one +gnutls_x509_crt_verify_data [] (3) - This function will verify the given signed data +gnutls_x509_dn_deinit [] (3) - API function +gnutls_x509_dn_export [] (3) - This function will export the DN +gnutls_x509_dn_get_rdn_ava [] (3) - API function +gnutls_x509_dn_import [] (3) - API function +gnutls_x509_dn_init [] (3) - API function +gnutls_x509_dn_oid_known [] (3) - return true if the given OID is known +gnutls_x509_privkey_cpy [] (3) - copy a private key +gnutls_x509_privkey_deinit [] (3) - deinitializes a #gnutls_x509_privkey_t structure +gnutls_x509_privkey_export [] (3) - export the private key +gnutls_x509_privkey_export_dsa_raw [] (3) - export the DSA private key +gnutls_x509_privkey_export_pkcs8 [] (3) - This function will export the private key to PKCS8 format +gnutls_x509_privkey_export_rsa_raw [] (3) - export the RSA private key +gnutls_x509_privkey_fix [] (3) - recalculate some parameters of the key +gnutls_x509_privkey_generate [] (3) - generate a private key +gnutls_x509_privkey_get_key_id [] (3) - Return unique ID of the key's parameters +gnutls_x509_privkey_get_pk_algorithm [] (3) - returns the key's PublicKey algorithm +gnutls_x509_privkey_import [] (3) - import a DER or PEM encoded key +gnutls_x509_privkey_import_dsa_raw [] (3) - import a raw DSA key +gnutls_x509_privkey_import_pkcs8 [] (3) - This function will import a DER or PEM PKCS8 encoded key +gnutls_x509_privkey_import_rsa_raw [] (3) - import a raw RSA key +gnutls_x509_privkey_init [] (3) - initialize a #gnutls_privkey_t structure +gnutls_x509_privkey_sign_data [] (3) - sign data using the private key +gnutls_x509_privkey_sign_hash [] (3) - sign hash using the private key +gnutls_x509_privkey_verify_data [] (3) - Verify the signed data using private key +gnutls_x509_rdn_get [] (3) - parse an RDN sequence and returns a string +gnutls_x509_rdn_get_by_oid [] (3) - parse an RDN sequence and returns a string +gnutls_x509_rdn_get_oid [] (3) - parse an RDN sequence and returns an OID +gobject [] (1) - query - display a tree of types +gomoku [] (6) - game of 5 in a row +goop [] (6) - squishy transparent oil and bubble screenhack +gorbd [] (1) - - An object request broker daemon +gouldtoppm [] (1) - convert Gould scanner file into a portable pixmap +gpasswd [] (1) - administer the /etc/group file +gperf [] (1) - generate a perfect hash function from a key set +gpg [] (1) - OpenPGP encryption and signing tool +gpg [] (1) - agent - Secret key management for GnuPG +gpg [] (1) - connect-agent - Communicate with a running agent +gpg [] (1) - preset-passphrase - Put a passphrase into gpg-agent's cache +gpg [] (1) - zip - Encrypt or sign files into an archive +gpg [] (1) - ÉÎÓÔÒÕÍÅÎÔ ÄÌÑ ÛÉÆÒÏ×ÁÎÉÑ É ÃÉÆÒÏ×ÏÊ ÐÏÄÐÉÓÉ +gpg2 [] (1) - OpenPGP encryption and signing tool +gpgconf [] (1) - Modify .gnupg home directories +gpgparsemail [] (1) - Parse a mail message into an annotated format +gpgsm [] (1) - CMS encryption and signing tool +gpgsm [] (1) - gencert.sh - Generate an X.509 certificate request +gpgv [] (1) - Verify OpenPGP signatures +gpgv2 [] (1) - Verify OpenPGP signatures +gphoto2 [] (1) - command-line gphoto2 client +gpl [] (7) - GNU General Public License +gpm [] (1) - root - a default handler for gpm, used to draw menus on the root window +gpm [] (8) - a cut and paste utility and mouse server for virtual consoles +gprof [] (1) - display call graph profile data +grab [] (n) - Confine pointer and keyboard events to a window sub-tree +grantpt [] (3) - grant access to the slave pseudo-terminal +grap2graph [] (1) - convert a grap diagram into a cropped bitmap image +grav [] (6) - draws a simple orbital simulation +grep [] (1) - print lines matching a pattern +greynetic [] (6) - draw random stippled/color rectangles +grid [] (n) - Geometry manager that arranges widgets in a grid +grmic [] (1) - Generate stubs for Remote Method Invocation +grmid [] (1) - - RMI activation system daemon +grmiregistry [] (1) - - Remote object registry +grn [] (1) - groff preprocessor for gremlin files +grodvi [] (1) - convert groff output to TeX dvi format +groff [] (1) - front-end for the groff document formatting system +groff [] (7) - a short reference for the GNU roff language +groff_char [] (7) - groff glyph names +groff_diff [] (7) - differences between GNU troff and classical troff +groff_font [] (5) - format of groff device and font description files +groff_hdtbl [] (7) - groff `hdtbl' macros for generation of tables +groff_man [] (7) - groff `man' macros to support generation of man pages +groff_mdoc [] (7) - reference for groff's mdoc implementation +groff_me [] (7) - troff macros for formatting papers +groff_mm [] (7) - groff mm macros +groff_mom [] (7) - groff `mom' macros +groff_ms [] (7) - groff ms macros +groff_out [] (5) - groff intermediate output format +groff_tmac [] (5) - macro files in the roff typesetting system +groff_trace [] (7) - groff macro package trace.tmac +groff_www [] (7) - groff macros for authoring web pages +groffer [] (1) - display groff files and man~pages on X and tty +grog [] (1) - guess options for groff command +grohtml [] (1) - html driver for groff +grolbp [] (1) - groff driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser printers) +grolj4 [] (1) - groff driver for HP Laserjet 4 family +grops [] (1) - PostScript driver for groff +grotty [] (1) - groff driver for typewriter-like devices +group [] (5) - user group file +groupadd [] (8) - Create a new group +groupdel [] (8) - Delete a group +groupmod [] (8) - Modify a group +groups [] (1) - display current group names +growisofs [] (1) - combined mkisofs frontend/DVD recording program +grpck [] (8) - verify integrity of group files +grpconv [] (8) - convert to and from shadow passwords and groups +grpunconv [] (8) - convert to and from shadow passwords and groups +gs [] (1) - Ghostscript (PostScript and PDF language interpreter and previewer) +gsbj [] (1) - Format and print text for BubbleJet printer using ghostscript +gsdj [] (1) - Format and print text for DeskJet printer using ghostscript +gsdj500 [] (1) - Format and print text for DeskJet 500 BubbleJet using ghostscript +gserialver [] (1) - version command +gsf [] (1) - archiving utility using the G Structured File library +gsf [] (1) - vba-dump - extract Visual Basic for Applications macros +gsignal [] (3) - software signal facility +gslj [] (1) - Format and print text for LaserJet printer using ghostscript +gslp [] (1) - Format and print text using ghostscript +gsnd [] (1) - Run ghostscript (PostScript and PDF engine) without display +gst [] (1) - feedback - generate debug info for GStreamer bug reports +gst [] (1) - inspect - print info about a GStreamer plugin or element +gst [] (1) - launch - build and run a GStreamer pipeline +gst [] (1) - typefind - print MIME type of file +gst [] (1) - visualise - Run a GStreamer pipeline to display an audio visualisation +gst [] (1) - xmlinspect - print info about a GStreamer plugin or element +gst [] (1) - xmllaunch - build and run a GStreamer pipeline from an XML serialization +gtester [] (1) - report - test report formatting utility +gtester [] (1) - test running utility +gtf [] (1) - calculate VESA GTF mode lines +gtk [] (1) - builder-convert - Glade file conversion utility +gtk [] (1) - config - script to get information about the installed version of GTK+ +gtk [] (1) - query-immodules-2.0 - Input method module registration utility +gtk [] (1) - update-icon-cache - Icon theme caching utility +gtk-builder-convert (1) - Glade file conversion utility +gtk-query-immodules-2.0 [gtk-query-immodules-2] (1) - Input method module registration utility +gtk-update-icon-cache (1) - Icon theme caching utility +gtnameserv [] (1) - Naming service +gtty [] (2) - unimplemented system calls +guile [] (1) - a Scheme interpreter +gunzip [] (1) - compress or expand files +gv [] (1) - Postscript and PDF viewer +gv [] (1) - update-userconfig - update ~/.gv config file +gxditview [] (1) - display groff intermediate output files +gxine [] (1) - a GTK/GNOME frontend to the xine video player +gxine_client [] (1) - the gxine video player command line client +gzexe [] (1) - compress executable files in place +gzip [] (1) - compress or expand files +h2ph [] (1) - convert .h C header files to .ph Perl header files +h2xs [] (1) - convert .h C header files to Perl extensions +h_errno [] (3) - get network host entry +hal [] (1) - disable-polling - disable polling on drives with removable media +hal [] (1) - find-by-capability - find device objects by capability matching +hal [] (1) - find-by-property - find device objects by property matching +hal [] (1) - get-property - get a property from a device object +hal [] (1) - is-caller-locked-out - determine if a caller is locked out +hal [] (1) - lock - lock an interface +hal [] (1) - set-property - set a property on a device object +hald [] (8) - HAL daemon +halfdelay [] (3) - curses input options +halftone [] (6) - simple halftone pattern of moving mass points +halo [] (6) - draw circular patterns +halt [] (8) - stop the system +handle_to_fshandle [] (3) - file handle operations +hangman [] (6) - Computer version of the game hangman +has_colors [] (3) - curses color manipulation routines +has_ic [] (3) - curses environment query routines +has_il [] (3) - curses environment query routines +has_key [] (3) - get (or push back) characters from curses terminal keyboard +hash [] (1) - bash built-in commands, see bash(1) +hash [] (3) - hash database access method +hasmntopt [] (3) - get file system descriptor file entry +hattrib [] (1) - change HFS file or directory attributes +hcd [] (1) - change working HFS directory +hciattach [] (8) - attach serial devices via UART HCI to BlueZ stack +hciconfig [] (8) - configure Bluetooth devices +hcid [] (8) - Bluetooth Host Controller Interface Daemon +hcidump [] (8) - Parse HCI data +hcitool [] (1) - configure Bluetooth connections +hcopy [] (1) - copy files from or to an HFS volume +hcreate [] (3) - hash table management +hcreate_r [] (3) - hash table management +hd [] (4) - MFM/IDE hard disk devices +hdel [] (1) - delete both forks of an HFS file +hdestroy [] (3) - hash table management +hdestroy_r [] (3) - hash table management +hdifftopam [] (1) - see http://netpbm.sourceforge.net/doc/hdifftopam.html +hdir [] (1) - display an HFS directory in long format +hdparm [] (8) - get/set SATA/IDE device parameters +head [] (1) - output the first part of files +helix [] (6) - draw helical string-art patterns +help [] (1) - bash built-in commands, see bash(1) +herror [] (3) - get network host entry +hexdump [] (1) - ascii, decimal, hexadecimal, octal dump +hformat [] (1) - create a new HFS filesystem and make it current +hfs [] (1) - shell for manipulating HFS volumes +hfssh [] (1) - Tcl interpreter with HFS extensions +hfsutils [] (1) - tools for reading and writing Macintosh HFS volumes +hg [] (1) - Mercurial source code management system +hgignore [] (5) - syntax for Mercurial ignore files +hgrc [] (5) - configuration files for Mercurial +hid2hci [] (8) - Bluetooth HID to HCI mode switching utility +hidd [] (1) - Bluetooth HID daemon +hier [] (7) - Description of the file system hierarchy +hipstopgm [] (1) - convert a HIPS file into a portable graymap +history [] (1) - bash built-in commands, see bash(1) +history [] (3) - GNU History Library +history [] (n) - Manipulate the history list +hline [] (3) - create curses borders, horizontal and vertical lines +hline_set [] (3) - create curses borders or lines using complex characters and renditions +hls [] (1) - list files in an HFS directory +hmkdir [] (1) - create a new HFS directory +hmount [] (1) - introduce a new HFS volume and make it current +hopalong [] (6) - draw real plane fractals +hose [] (1) - the client end of a BSD network pipe +host [] (1) - DNS lookup utility +host.conf [] (5) - resolver configuration file +hostid [] (1) - print the numeric identifier for the current host +hostname [] (1) - show or set the system's host name +hostname [] (7) - hostname resolution description +hosts [] (5) - The static table lookup for hostnames +hosts_access [] (3) - access control library +hosts_access [] (5) - format of host access control files +hosts_ctl [] (3) - access control library +hosts_options [] (5) - host access control language extensions +hpcdtoppm [] (1) - convert a Photo-CD file into a portable bitmap file +hpftodit [] (1) - create font description files for use with groff -Tlj4 +hpwd [] (1) - print the full path to the current HFS working directory +hqx2bin [] (1) - Macintosh file format transformer +hrename [] (1) - rename or move an HFS file or directory +hrmdir [] (1) - remove an empty HFS directory +hsearch [] (3) - hash table management +hsearch_r [] (3) - hash table management +hstrerror [] (3) - get network host entry +htcacheclean [] (8) - Clean up the disk cache +htdbm [] (1) - Manipulate DBM password databases +htdig [] (1) - pdfparser - parse a PDF document (wrapper script for htdig) +htdig [] (1) - retrieve HTML documents for ht://Dig search engine +htdigconfig [] (8) - script to create fuzzy databases for ht://Dig +htdigest [] (1) - manage user files for digest authentication +htdump [] (1) - write out an ASCII-text version of the document database +htfuzzy [] (1) - fuzzy command-line search utility for the ht://Dig search engine +htload [] (1) - reads in an ASCII-text version of the document database +htmerge [] (1) - create document index and word database for the ht://Dig search engine +htnotify [] (1) - sends email notifications about out-dated web pages discovered by htmerge +htobe16 [] (3) - convert values between host and big - /little-endian byte order +htobe32 [] (3) - convert values between host and big - /little-endian byte order +htobe64 [] (3) - convert values between host and big - /little-endian byte order +htole16 [] (3) - convert values between host and big - /little-endian byte order +htole32 [] (3) - convert values between host and big - /little-endian byte order +htole64 [] (3) - convert values between host and big - /little-endian byte order +htonl [] (3) - convert values between host and network byte order +htons [] (3) - convert values between host and network byte order +htpasswd [] (1) - Manage user files for basic authentication +htpurge [] (1) - remove unused odocuments from the database (general maintenance script) +htsearch [] (1) - create document index and word database for the ht://Dig search engine +htstat [] (1) - returns statistics on the document and word databases, much like the -s option to htdig or htmerge +http [] (n) - Client-side implementation of the HTTP/1.1 protocol +httpd [] (8) - Apache Hypertext Transfer Protocol Server +humount [] (1) - remove an HFS volume from the list of known volumes +hunt [] (6) - a multi - player multi-terminal game +huntd [] (6) - hunt daemon, back - end for hunt game +hvol [] (1) - display or change the current HFS volume +hwclock [] (8) - query and set the hardware clock (RTC) +hyperball [] (6) - 2d projection of a 4d object +hypercube [] (6) - 2d projection of a 4d object +hypertorus [] (6) - Draws a hypertorus that rotates in 4d +hypnowheel [] (6) - draws overlapping, translucent spiral patterns +hypot [] (3) - Euclidean distance function +hypotf [] (3) - Euclidean distance function +hypotl [] (3) - Euclidean distance function +i128 [] (4) - Number 9 I128 Xorg video driver +i2d_ASN1_OBJECT [] (3) - ASN1 OBJECT IDENTIFIER functions +i2d_DHparams [] (3) - PKCS#3 DH parameter functions +i2d_DSAPrivateKey [] (3) - DSA key encoding and parsing functions +i2d_DSAPublicKey [] (3) - DSA key encoding and parsing functions +i2d_DSA_PUBKEY [] (3) - DSA key encoding and parsing functions +i2d_DSA_SIG [] (3) - DSA key encoding and parsing functions +i2d_Netscape_RSA [] (3) - RSA public and private key encoding functions +i2d_PKCS8PrivateKey_bio [] (3) - PKCS#8 format private key functions +i2d_PKCS8PrivateKey_fp [] (3) - PKCS#8 format private key functions +i2d_PKCS8PrivateKey_nid_bio [] (3) - PKCS#8 format private key functions +i2d_PKCS8PrivateKey_nid_fp [] (3) - PKCS#8 format private key functions +i2d_RSAPrivateKey [] (3) - RSA public and private key encoding functions +i2d_RSAPublicKey [] (3) - RSA public and private key encoding functions +i2d_RSA_PUBKEY [] (3) - RSA public and private key encoding functions +i2d_SSL_SESSION [] (3) - convert SSL_SESSION object from/to ASN1 representation +i2d_X509 [] (3) - X509 encode and decode functions +i2d_X509_ALGOR [] (3) - AlgorithmIdentifier functions +i2d_X509_CRL [] (3) - PKCS#10 certificate request functions +i2d_X509_CRL_bio [] (3) - PKCS#10 certificate request functions +i2d_X509_CRL_fp [] (3) - PKCS#10 certificate request functions +i2d_X509_NAME [] (3) - X509_NAME encoding functions +i2d_X509_REQ [] (3) - PKCS#10 certificate request functions +i2d_X509_REQ_bio [] (3) - PKCS#10 certificate request functions +i2d_X509_REQ_fp [] (3) - PKCS#10 certificate request functions +i2d_X509_SIG [] (3) - DigestInfo functions +i2d_X509_bio [] (3) - X509 encode and decode functions +i2d_X509_fp [] (3) - X509 encode and decode functions +i740 [] (4) - Intel i740 video driver +ibm_hosts [] (5) - host database for x3270 and c3270 +icc2ps [] (1) - little cms PostScript converter +icclink [] (1) - little cms device link generator +iceauth [] (1) - ICE authority file utility +icmp [] (7) - Linux IPv4 ICMP kernel module +icmpinfo [] (1) - interpret ICMP messages +ico [] (1) - animate an icosahedron or other polyhedron +icombine [] (1) - Interactive spelling checking +icontopbm [] (1) - convert a Sun icon into a portable bitmap +iconv [] (3) - perform character set conversion +iconv_close [] (3) - deallocate descriptor for character set conversion +iconv_open [] (3) - allocate descriptor for character set conversion +id [] (1) - print real and effective user and group IDs +idcok [] (3) - curses output options +ident [] (1) - identify RCS keyword strings in files +identd [] (8) - TCP/IP IDENT protocol server +identify [] (1) - describes the format and characteristics of one or more image files +idle [] (2) - make process 0 idle +idlok [] (3) - curses output options +idmap_ad [] (8) - Samba's idmap_ad Backend for Winbind +idmap_ldap [] (8) - Samba's idmap_ldap Backend for Winbind +idmap_nss [] (8) - Samba's idmap_nss Backend for Winbind +idmap_rid [] (8) - Samba's idmap_rid Backend for Winbind +idmap_tdb [] (8) - Samba's idmap_tdb Backend for Winbind +idn [] (1) - Internationalized Domain Names command line tool +idna_strerror [] (3) - return string describing idna error code +idna_to_ascii_4i [] (3) - convert Unicode domain name label to text +idna_to_ascii_4z [] (3) - convert Unicode domain name label to text +idna_to_ascii_8z [] (3) - convert Unicode domain name label to text +idna_to_ascii_lz [] (3) - convert Unicode domain name label to text +idna_to_unicode_44i [] (3) - convert domain name label to Unicode +idna_to_unicode_4z4z [] (3) - convert domain name label to Unicode +idna_to_unicode_8z4z [] (3) - convert domain name label to Unicode +idna_to_unicode_8z8z [] (3) - convert domain name label to Unicode +idna_to_unicode_8zlz [] (3) - convert domain name label to Unicode +idna_to_unicode_lzlz [] (3) - convert domain name label to Unicode +iecset [] (1) - Set or dump IEC958 status bits +ieee1284_byte_read [] (3) - data transfer functions +ieee1284_claim [] (3) - claim access to the port +ieee1284_clear_irq [] (3) - interrupt notification +ieee1284_close [] (3) - close an open port +ieee1284_compat_write [] (3) - data transfer functions +ieee1284_data_dir [] (3) - control the data lines +ieee1284_do_nack_handshake [] (3) - manipulate control lines +ieee1284_ecp_fwd_to_rev [] (3) - ECP direction switching +ieee1284_ecp_read_addr [] (3) - data transfer functions +ieee1284_ecp_read_data [] (3) - data transfer functions +ieee1284_ecp_rev_to_fwd [] (3) - ECP direction switching +ieee1284_ecp_write_addr [] (3) - data transfer functions +ieee1284_ecp_write_data [] (3) - data transfer functions +ieee1284_epp_read_addr [] (3) - data transfer functions +ieee1284_epp_read_data [] (3) - data transfer functions +ieee1284_epp_write_addr [] (3) - data transfer functions +ieee1284_epp_write_data [] (3) - data transfer functions +ieee1284_find_ports [] (3) - find ports on the system +ieee1284_free_ports [] (3) - safely deallocate a port list +ieee1284_frob_control [] (3) - manipulate control lines +ieee1284_get_deviceid [] (3) - retrieve an IEEE 1284 Device ID +ieee1284_get_irq_fd [] (3) - interrupt notification +ieee1284_negotiate [] (3) - IEEE 1284 negotiation +ieee1284_nibble_read [] (3) - data transfer functions +ieee1284_open [] (3) - open a port +ieee1284_read_control [] (3) - manipulate control lines +ieee1284_read_data [] (3) - control the data lines +ieee1284_read_status [] (3) - analyse status lines +ieee1284_ref [] (3) - modify a port's reference count +ieee1284_release [] (3) - release a port +ieee1284_set_timeout [] (3) - modify inactivity timeout +ieee1284_terminate [] (3) - IEEE 1284 negotiation +ieee1284_unref [] (3) - modify a port's reference count +ieee1284_wait_data [] (3) - control the data lines +ieee1284_wait_status [] (3) - analyse status lines +ieee1284_write_control [] (3) - manipulate control lines +ieee1284_write_data [] (3) - control the data lines +ietf2datebook [] (1) - Converts IETF agenda format to install-datebook format +if [] (3) - use a Perl module if a condition holds +if [] (n) - Execute scripts conditionally +ifconfig [] (8) - configure a network interface +ifnames [] (1) - Extract CPP conditionals from a set of files +ifrename [] (8) - rename network interfaces based on various static criteria +ifs [] (6) - draws spinning, colliding iterated-function-system images +iftab [] (5) - static information about the network interfaces +igawk [] (1) - gawk with include files +ijoin [] (1) - Interactive spelling checking +ijs [] (1) - config - script to get information about the installed version of ijs +ijsgutenprint [] (1) - Ghostscript driver for Gutenprint +ilbmtoppm [] (1) - convert an ILBM file into a portable pixmap +ilogb [] (3) - get integer exponent of a floating-point value +ilogbf [] (3) - get integer exponent of a floating-point value +ilogbl [] (3) - get integer exponent of a floating-point value +image [] (n) - Create and manipulate images +images... It is unavoidable. Here the size of the canvas is set by the display. .IP (bu 2 Set the display's window name (only available in windowed displays [] (3) - like system using the following comman (requiring pkg-config and gcc): +imake [] (1) - C preprocessor interface to the make utility +imaxabs [] (3) - compute the absolute value of an integer +imaxdiv [] (3) - compute quotient and remainder of an integer division +img2txt [] (1) - convert images to various text-based coloured files +imgcmp [] (1) - Image comparison utility +imginfo [] (1) - Image information utility +imgtoppm [] (1) - convert an Img-whatnot file into a portable pixmap +imlib [] (1) - config - Display Imlib and GDK-Imlib Library Configuration +imlib_config [] (1) - Imlib Configuration Editor +immedok [] (3) - curses output options +import [] (1) - saves any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen +imsmap [] (6) - generate fractal maps +in.identd [] (8) - TCP/IP IDENT protocol server +in_wch [] (3) - extract a complex character and rendition from a window +in_wchnstr [] (3) - get an array of complex characters and renditions from a curses window +in_wchstr [] (3) - get an array of complex characters and renditions from a curses window +inb [] (2) - port I/O +inb_p [] (2) - port I/O +inch [] (3) - get a character and attributes from a curses window +inchnstr [] (3) - get a string of characters (and attributes) from a curses window +inchstr [] (3) - get a string of characters (and attributes) from a curses window +includeres [] (1) - filter to include resources in a PostScript document +incr [] (n) - Increment the value of a variable +indent [] (1) - changes the appearance of a C program by inserting or deleting whitespace +index [] (3) - locate character in string +index [] (3) - string operations +indxbib [] (1) - make inverted index for bibliographic databases +inet_addr [] (3) - Internet address manipulation routines +inet_aton [] (3) - Internet address manipulation routines +inet_aton [] (3) - load the C socket.h defines and structure manipulators +inet_lnaof [] (3) - Internet address manipulation routines +inet_makeaddr [] (3) - Internet address manipulation routines +inet_netof [] (3) - Internet address manipulation routines +inet_network [] (3) - Internet address manipulation routines +inet_ntoa [] (3) - Internet address manipulation routines +inet_ntoa [] (3) - load the C socket.h defines and structure manipulators +inet_ntop [] (3) - convert IPv4 and IPv6 addresses from binary to text form +inet_pton [] (3) - convert IPv4 and IPv6 addresses from text to binary form +inetd [] (8) - internet super - server +infnan [] (3) - deal with infinite or not-a-number (NaN) result +info [] (1) - read Info documents +info [] (5) - readable online documentation +info [] (n) - Return information about the state of the Tcl interpreter +infocmp [] (1) - compare or print out terminfo descriptions +infokey [] (1) - compile customizations for Info +infotocap [] (1) - convert a terminfo description into a termcap description +infotopam [] (1) - see http://netpbm.sourceforge.net/doc/infotopam.html +init [] (8) - process control initialization +init_color [] (3) - curses color manipulation routines +init_mib [] (3) - mib_api functions +init_mib_internals [] (3) - mib_api functions +init_module [] (2) - initialize a loadable module entry +init_pair [] (3) - curses color manipulation routines +initgroups [] (3) - initialize the supplementary group access list +initlog [] (1) - log messages and events to the system logger +initrd [] (4) - boot loader initialized RAM disk +initscr [] (3) - curses screen initialization and manipulation routines +initscript [] (5) - script that executes inittab commands +initstate [] (3) - random number generator +initstate_r [] (3) - reentrant random number generator +inittab [] (5) - format of the inittab file used by the sysv-compatible init process +inl [] (2) - port I/O +inl_p [] (2) - port I/O +innetgr [] (3) - handle network group entries +innochecksum [] (1) - offline InnoDB file checksum utility +innstr [] (3) - get a string of characters from a curses window +innwstr [] (3) - get a string of wchar_t characters from a curses window +inotify [] (7) - monitoring file system events +inotify_add_watch [] (2) - add a watch to an initialized inotify instance +inotify_init [] (2) - initialize an inotify instance +inotify_init1 [] (2) - initialize an inotify instance +inotify_rm_watch [] (2) - remove an existing watch from an inotify instance +inotifywait [] (1) - wait for changes to files using inotify +inotifywatch [] (1) - gather filesystem access statistics using inotify +ins_nwstr [] (3) - insert a wide-character string into a curses window +ins_wch [] (3) - insert a complex character and rendition into a window +ins_wstr [] (3) - insert a wide-character string into a curses window +insb [] (2) - port I/O +insch [] (3) - insert a character before cursor in a curses window +insdelln [] (3) - delete and insert lines in a curses window +insertln [] (3) - delete and insert lines in a curses window +insl [] (2) - port I/O +insmod [] (8) - simple program to insert a module into the Linux Kernel +insnstr [] (3) - insert string before cursor in a curses window +insque [] (3) - insert/remove an item from a queue +insstr [] (3) - insert string before cursor in a curses window +install [] (1) - copy files and set attributes +install [] (1) - info - update info/dir entries +install [] (8) - catalog - Manage a SGML or XML centralized catalog +installpkg [] (8) - install Slackware packages +instance [] (3) - Process individual MIB instances easily +instmodsh [] (1) - A shell to examine installed modules +instr [] (3) - get a string of characters from a curses window +insw [] (2) - port I/O +integer [] (3) - Perl pragma to use integer arithmetic instead of floating point +intel [] (4) - Intel integrated graphics chipsets +intel_gpu_dump [] (1) - Print out debugging information on the state of the Intel GPU +intel_gpu_top [] (1) - Display a top-like summary of Intel GPU usage +intel_stepping [] (1) - Display the stepping information for an Intel GPU +intel_upload_blit_large [] (1) - microbenchmark of Intel GPU performance +intel_upload_blit_large_gtt [] (1) - microbenchmark of Intel GPU performance +intel_upload_blit_large_map [] (1) - microbenchmark of Intel GPU performance +intel_upload_blit_small [] (1) - microbenchmark of Intel GPU performance +interaggregate [] (6) - Visualize the momentary and aggregate intersections between slowly moving circles +interference [] (6) - decaying sinusoidal waves +intermomentary [] (6) - Visualize the momentary and aggregate intersections between slowly moving circles +interp [] (n) - Create and manipulate Tcl interpreters +intltool [] (8) - extract - generate header files which can be read by gettext +intltool [] (8) - merge - merge translated strings into various types of file +intltool [] (8) - prepare - Prepare software to make use of intltool +intltool [] (8) - update - updates PO template file and merge translations with it +intltoolize [] (8) - copy intltool related files to software package +intrflush [] (3) - curses input options +intro [] (1) - Introduction to user commands +intro [] (2) - Introduction to system calls +intro [] (3) - Introduction to library functions +intro [] (4) - Introduction to special files +intro [] (5) - Introduction to file formats +intro [] (6) - Introduction to games +intro [] (7) - Introduction to overview, conventions, and miscellany section +intro [] (8) - Introduction to administration and privileged commands +inw [] (2) - port I/O +inw_p [] (2) - port I/O +inwstr [] (3) - get a string of wchar_t characters from a curses window +io_cancel [] (2) - cancel an outstanding asynchronous I/O operation +io_destroy [] (2) - destroy an asynchronous I/O context +io_getevents [] (2) - read asynchronous I/O events from the completion queue +io_setup [] (2) - create an asynchronous I/O context +io_submit [] (2) - submit asynchronous I/O blocks for processing +ioctl [] (2) - control device +ioctl_list [] (2) - list of ioctl calls in Linux/i386 kernel +ionice [] (1) - get/set program io scheduling class and priority +ioperm [] (2) - set port input/output permissions +iopl [] (2) - change I/O privilege level +ioprio_get [] (2) - get/set I/O scheduling class and priority +ioprio_set [] (2) - get/set I/O scheduling class and priority +iostat [] (1) - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions +ip [] (7) - Linux IPv4 protocol implementation +ip [] (8) - show / manipulate routing, devices, policy routing and tunnels +ip6tables [] (8) - IPv6 packet filter administration +ip6tables [] (8) - restore - Restore IPv6 Tables +ip6tables [] (8) - save - Save IPv6 Tables +ipc [] (2) - System V IPC system calls +ipcrm [] (1) - remove a message queue, semaphore set or shared memory id +ipcs [] (1) - provide information on ipc facilities +ipmask [] (8) - determine network and broadcast addresses given a decimal netmask and IP address +ipq_create_handle [] (3) - create and destroy libipq handles +ipq_destroy_handle [] (3) - create and destroy libipq handles +ipq_errstr [] (3) - libipq error handling routines +ipq_get_packet [] (3) - query queue messages +ipq_getmsgerr [] (3) - query queue messages +ipq_message_type [] (3) - query queue messages +ipq_perror [] (3) - libipq error handling routines +ipq_read [] (3) - read queue messages from ip_queue and read into supplied buffer +ipq_set_mode [] (3) - set the ip_queue queuing mode +ipq_set_verdict [] (3) - issue verdict and optionally modified packet to kernel +iptables [] (8) - administration tool for IPv4 packet filtering and NAT +iptables [] (8) - restore - Restore IP Tables +iptables [] (8) - save - Save IP Tables +iptables [] (8) - xml - Convert iptables-save format to XML +iptraf [] (8) - Interactive Colorful IP LAN Monitor +ipv6 [] (7) - Linux IPv6 protocol implementation +irb(main):009:0>Caca.constants =>['BROWN' [] (3) - rcaca -e 'c=Caca::Canvas.new(6, 3).fill_box(0, 0, 2, 2, '#'[0]); c2=Caca::Canvas.new(1, 1).put_str(0, 0, 'x'); c.blit(1, 1, c2); puts c.export_memory('irc')' ### #x# ### +iruserok [] (3) - routines for returning a stream to a remote command +is_cleared [] (3) - curses window properties +is_idcok [] (3) - curses window properties +is_idlok [] (3) - curses window properties +is_immedok [] (3) - curses window properties +is_keypad [] (3) - curses window properties +is_leaveok [] (3) - curses window properties +is_linetouched [] (3) - curses refresh control routines +is_nodelay [] (3) - curses window properties +is_scrollok [] (3) - curses window properties +is_syncok [] (3) - curses window properties +is_term_resized [] (3) - change the curses terminal size +is_timeout [] (3) - curses window properties +is_wintouched [] (3) - curses refresh control routines +isadump [] (8) - examine ISA registers +isalnum [] (3) - character classification routines +isalpha [] (3) - character classification routines +isapnp [] (8) - Configure ISA Plug-and-Play devices +isapnp.conf [] (5) - File format used by isapnp +isascii [] (3) - character classification routines +isaset [] (8) - set ISA registers +isatty [] (3) - test whether a file descriptor refers to a terminal +isblank [] (3) - character classification routines +iscntrl [] (3) - character classification routines +isdigit [] (3) - character classification routines +isendwin [] (3) - curses screen initialization and manipulation routines +isfinite [] (3) - floating-point classification macros +isgraph [] (3) - character classification routines +isgreater [] (3) - floating-point relational tests without exception for NaN +isgreaterequal [] (3) - floating-point relational tests without exception for NaN +isinf [] (3) - BSD floating - point classification functions +isinf [] (3) - floating-point classification macros +isinff [] (3) - BSD floating - point classification functions +isinfl [] (3) - BSD floating - point classification functions +isless [] (3) - floating-point relational tests without exception for NaN +islessequal [] (3) - floating-point relational tests without exception for NaN +islessgreater [] (3) - floating-point relational tests without exception for NaN +islower [] (3) - character classification routines +isnan [] (3) - BSD floating - point classification functions +isnan [] (3) - floating-point classification macros +isnanf [] (3) - BSD floating - point classification functions +isnanl [] (3) - BSD floating - point classification functions +isnormal [] (3) - floating-point classification macros +iso_8859 [] (7) - 1 - the ISO 8859-1 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 10 - the ISO 8859-10 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 11 - the ISO 8859-11 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 13 - the ISO 8859-13 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 14 - the ISO 8859-14 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 15 - the ISO 8859-15 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 16 - the ISO 8859-16 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 2 - the ISO 8859-2 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 3 - the ISO 8859-3 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 4 - the ISO 8859-4 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 5 - the ISO 8859-5 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 6 - the ISO 8859-6 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 7 - the ISO 8859-7 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 8 - the ISO 8859-8 character set encoded in octal, decimal, and hexadecimal +iso_8859 [] (7) - 9 - the ISO 8859-9 character set encoded in octal, decimal, and hexadecimal +isodebug [] (8) - print mkisofs debug info from ISO-9660 image +isodump [] (5) - format of IEEE 1394 isochronous packets dump file +isodump [] (8) - Utility programs for dumping and verifying iso9660 images +isoinfo [] (8) - Utility programs for dumping and verifying iso9660 images +isosize [] (8) - outputs the length of a iso9660 file system +isovfy [] (8) - Utility programs for dumping and verifying iso9660 images +ispell [] (1) - Interactive spelling checking +ispell [] (4) - format of ispell dictionaries and affix files +isprint [] (3) - character classification routines +ispunct [] (3) - character classification routines +isspace [] (3) - character classification routines +issue [] (5) - pre-login message and identification file +isunordered [] (3) - floating-point relational tests without exception for NaN +isupper [] (3) - character classification routines +iswalnum [] (3) - test for alphanumeric wide character +iswalpha [] (3) - test for alphabetic wide character +iswblank [] (3) - test for whitespace wide character +iswcntrl [] (3) - test for control wide character +iswctype [] (3) - wide-character classification +iswdigit [] (3) - test for decimal digit wide character +iswgraph [] (3) - test for graphic wide character +iswlower [] (3) - test for lowercase wide character +iswprint [] (3) - test for printing wide character +iswpunct [] (3) - test for punctuation or symbolic wide character +iswspace [] (3) - test for whitespace wide character +iswupper [] (3) - test for uppercase wide character +iswxdigit [] (3) - test for hexadecimal digit wide character +isxdigit [] (3) - character classification routines +iterator_info_s [] (3) - Holds iterator information containing functions which should be called by the iterator_handler to loop over your data set and sort it in a SNMP specific manner +iw [] (8) - show / manipulate wireless devices and their configuration +iwconfig [] (8) - configure a wireless network interface +iwevent [] (8) - Display Wireless Events generated by drivers and setting changes +iwgetid [] (8) - Report ESSID, NWID or AP/Cell Address of wireless network +iwlist [] (8) - Get more detailed wireless information from a wireless interface +iwpriv [] (8) - configure optionals (private) parameters of a wireless network interface +iwspy [] (8) - Get wireless statistics from specific nodes +j0 [] (3) - Bessel functions of the first kind +j0f [] (3) - Bessel functions of the first kind +j0l [] (3) - Bessel functions of the first kind +j1 [] (3) - Bessel functions of the first kind +j1f [] (3) - Bessel functions of the first kind +j1l [] (3) - Bessel functions of the first kind +jasper [] (1) - File format converter specialized in JPEG-2000 encoding +jaztool [] (1) - Tool for IOMega JAZ and ZIP drives +jbigtopnm [] (1) - JBIG to PNM image file converter +jcf [] (1) - dump - print information about Java class files +jfs_debugfs [] (8) - shell-type JFS file system editor +jfs_fsck [] (8) - initiate replay of the JFS transaction log, and check and repair a JFS formatted device +jfs_fscklog [] (8) - extract a JFS fsck service log into a file and/or format and display the extracted file +jfs_logdump [] (8) - dump a JFS formatted device's journal log +jfs_mkfs [] (8) - create a JFS formatted partition +jfs_tune [] (8) - adjust tunable file system parameters on JFS +jigglypuff [] (6) - save your screen by tormenting your eyes +jigsaw [] (6) - permute an image like a jigsaw puzzle +jiv [] (1) - Image display utility +jn [] (3) - Bessel functions of the first kind +jnf [] (3) - Bessel functions of the first kind +jng [] (5) - JPEG Network Graphics (JNG) sub-format +jnl [] (3) - Bessel functions of the first kind +jobs [] (1) - bash built-in commands, see bash(1) +joe [] (1) - Joe's Own Editor +join [] (1) - join lines of two files on a common field +join [] (n) - Create a string by joining together list elements +jove [] (1) - an interactive display-oriented text editor +joystick [] (4) - Joystick input driver +joystick_close [] (3) - close a joystick +joystick_getaxis [] (3) - query the current state of a joystick +joystick_getbutton [] (3) - query the current state of a joystick +joystick_getnumaxes [] (3) - query the capabilities of a joystick +joystick_getnumbuttons [] (3) - query the capabilities of a joystick +joystick_init [] (3) - open a joystick +joystick_setdefaulthandler [] (3) - set the joystick event handler +joystick_sethandler [] (3) - set the joystick event handler +joystick_update [] (3) - query joysticks for status changes +joytest [] (6) - test the svgalib joystick package in text mode +jpeg2ktopam [] (1) - see http://netpbm.sourceforge.net/doc/jpeg2ktopam.html +jpegicc [] (1) - little cms ICC profile applier for JPEG +jpegtopnm [] (1) - convert JPEG/JFIF file to portable pixmap or graymap +jpegtran [] (1) - lossless transformation of JPEG files +jrand48 [] (3) - generate uniformly distributed pseudo-random numbers +jrand48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +juggle [] (6) - juggling man screen saver +julia [] (6) - draws spinning, animating julia-set fractals +jv [] (1) - convert - Convert file from one encoding to another +jw [] (1) - (Jade Wrapper) converts SGML files to other formats +kabcclient [] (1) - commandline client for the KDE addressbook +kalzium [] (1) - A KDE based chemistry teaching tool +kappfinder [] (1) - An app to add installed applications to the KDE menu +karma_helper [] (1) - program to do something FIXME +kate [] (1) - Advanced text editor for KDE +kbd [] (4) - Keyboard input driver +kbd_mode [] (1) - report or set the keyboard mode +kbdrate [] (8) - reset the keyboard repeat rate and delay time +kbookmarkmerger [] (1) - A program for merging a given set of bookmarks into the user's list of bookmarks +kbruch [] (1) - Learn calculating with fractions +kbuildsycoca4 [] (8) - Rebuilds the system configuration cache +kcookiejar4 [] (8) - KDE HTTP cookie daemon +kde4 [] (1) - config - Prints KDE installation paths +kded4 [] (8) - KDE daemon - triggers Sycoca database updates when needed +kdeinit4 [] (8) - Start all other KDE programs and kdeinit loadable modules (KLMs) +kdeoptions [] (7) - Common commandline options for all applications based on the KDE libraries +kdesu [] (1) - Runs a program with elevated privileges +key_decryptsession [] (3) - interfaces to rpc keyserver daemon +key_defined [] (3) - check if a keycode is defined +key_encryptsession [] (3) - interfaces to rpc keyserver daemon +key_gendes [] (3) - interfaces to rpc keyserver daemon +key_name [] (3) - miscellaneous curses utility routines +key_secretkey_is_set [] (3) - interfaces to rpc keyserver daemon +key_setsecret [] (3) - interfaces to rpc keyserver daemon +keyboard_clearstate [] (3) - reset the state of all keys when in raw keyboard mode +keyboard_close [] (3) - return the keyboard to normal operation from raw mode +keyboard_getstate [] (3) - get a pointer to a buffer holding the state of all keys in raw keyboard mode +keyboard_init [] (3) - initialize the keyboard to raw mode +keyboard_init_return_fd [] (3) - initialize the keyboard to raw mode +keyboard_keypressed [] (3) - check if a key is pressed when in raw keyboard mode +keyboard_setdefaulteventhandler [] (3) - define an event handler for keyboard events in raw mode +keyboard_seteventhandler [] (3) - define an event handler for keyboard events in raw mode +keyboard_translatekeys [] (3) - modify scancode mappings in raw keyboard mode +keyboard_update [] (3) - process raw keyboard events +keyboard_waitforupdate [] (3) - process raw keyboard events +keybound [] (3) - return definition of keycode +keymaps [] (5) - keyboard table descriptions for loadkeys and dumpkeys +keyname [] (3) - miscellaneous curses utility routines +keyok [] (3) - enable or disable a keycode +keypad [] (3) - curses input options +keysyms [] (n) - keysyms recognized by Tk +keytest [] (6) - tests the svgalib raw keyboard functions +kfind [] (1) - file find utility for KDE +khangman [] (6) - The classical hangman game for KDE +kibi [] (7) - decimal and binary prefixes +kibitz [] (1) - allow two people to interact with one shell +kig [] (1) - an interactive geometry program for KDE +kill [] (1) - bash built-in commands, see bash(1) +kill [] (1) - terminate a process +kill [] (2) - send signal to a process +killall [] (1) - kill processes by name +killall5 [] (8) - - send a signal to all processes +killchar [] (3) - curses environment query routines +killpg [] (2) - send signal to a process group +killwchar [] (3) - curses environment query routines +kilo [] (7) - decimal and binary prefixes +kjs [] (1) - KDE ECMAScript compatible interpreter +kjscmd [] (1) - KDE KJSEmbed interpreter +klein [] (6) - A Klein Bottle (and other parametric surfaces) visualization +klogctl [] (2) - read and/or clear kernel message ring buffer; set console_loglevel +klogd [] (8) - Kernel Log Daemon +kmag [] (1) - Screen magnifier +kmem [] (4) - system memory, kernel memory and system ports +kmousetool [] (1) - Accessibility tool to help click the mouse +kmouth [] (1) - A type-and-say front end for speech synthesizers +kmplot [] (1) - mathematical function plotter +koi8 [] (7) - r - Russian Net Character Set encoded in octal, decimal, and hexadecimal +koi8 [] (7) - u - Ukrainian Net Character Set encoded in octal, decimal, and hexadecimal +koi8rxterm [] (1) - X terminal emulator for KOI8-R environments +kross [] (1) - KDE application to run kross scripts +ksh93 [] (1) - KornShell, a +ktouch [] (1) - a typing tutor for KDE +kumppa [] (6) - spiraling, spinning, splashes of color rush toward the screen +l2ping [] (1) - Send L2CAP echo request and receive answer +l64a [] (3) - convert between long and base-64 +label [] (n) - Create and manipulate label widgets +labelframe [] (n) - Create and manipulate labelframe widgets +labs [] (3) - compute the absolute value of an integer +lament [] (6) - animates the Lament Configuration +lappend [] (n) - Append list elements onto a variable +lassign [] (n) - Assign list elements to variables +last [] (1) - list logins on the system +last [] (1) - show listing of last logged in users +lastb [] (1) - show listing of last logged in users +lastcomm [] (1) - print out information about previously executed commands +lastlog [] (8) - examine lastlog file +lavalite [] (6) - 3D OpenGL simulation of a Lavalite +lbxproxy [] (1) - Low BandWidth X proxy +lcdscrub [] (6) - attempt to repair burn-in on LCD screens +lchown [] (2) - change ownership of a file +lckpwdf [] (3) - get shadow password file entry +lcong48 [] (3) - generate uniformly distributed pseudo-random numbers +lcong48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +ld [] (1) - The GNU linker +ld [] (8) - linux.so* - dynamic linker/loader +ld.so [] (8) - linux.so* - dynamic linker/loader +ld86 [] (1) - Linker for as86(1) +ld_errno [] (3) - LDAP protocol error handling routines +ldap [] (3) - OpenLDAP Lightweight Directory Access Protocol API +ldap.conf [] (5) - ldap configuration file +ldap_abandon [] (3) - Abandon an LDAP operation in progress +ldap_abandon_ext [] (3) - Abandon an LDAP operation in progress +ldap_add [] (3) - Perform an LDAP add operation +ldap_add_ext [] (3) - Perform an LDAP add operation +ldap_add_ext_s [] (3) - Perform an LDAP add operation +ldap_add_s [] (3) - Perform an LDAP add operation +ldap_attributetype2name [] (3) - Schema definition handling routines +ldap_attributetype2str [] (3) - Schema definition handling routines +ldap_attributetype_free [] (3) - Schema definition handling routines +ldap_bind [] (3) - LDAP bind routines +ldap_bind_s [] (3) - LDAP bind routines +ldap_compare [] (3) - Perform an LDAP compare operation +ldap_compare_s [] (3) - Perform an LDAP compare operation +ldap_count_entries [] (3) - LDAP result entry parsing and counting routines +ldap_count_messages [] (3) - Stepping through messages in a result chain +ldap_count_references [] (3) - Stepping through continuation references in a result chain +ldap_count_values [] (3) - LDAP attribute value handling routines +ldap_delete [] (3) - Perform an LDAP delete operation +ldap_delete_s [] (3) - Perform an LDAP delete operation +ldap_dn2ufn [] (3) - LDAP DN handling routines +ldap_err2string [] (3) - LDAP protocol error handling routines +ldap_errlist [] (3) - LDAP protocol error handling routines +ldap_explode_dn [] (3) - LDAP DN handling routines +ldap_explode_rdn [] (3) - LDAP DN handling routines +ldap_first_attribute [] (3) - step through LDAP entry attributes +ldap_first_entry [] (3) - LDAP result entry parsing and counting routines +ldap_first_message [] (3) - Stepping through messages in a result chain +ldap_first_reference [] (3) - Stepping through continuation references in a result chain +ldap_free_urldesc [] (3) - LDAP Uniform Resource Locator routines +ldap_get_dn [] (3) - LDAP DN handling routines +ldap_get_values [] (3) - LDAP attribute value handling routines +ldap_get_values_len [] (3) - LDAP attribute value handling routines +ldap_init [] (3) - Initialize the LDAP library and open a connection to an LDAP server +ldap_is_ldap_url [] (3) - LDAP Uniform Resource Locator routines +ldap_matchingrule2name [] (3) - Schema definition handling routines +ldap_matchingrule2str [] (3) - Schema definition handling routines +ldap_matchingrule_free [] (3) - Schema definition handling routines +ldap_modify [] (3) - Perform an LDAP modify operation +ldap_modify_s [] (3) - Perform an LDAP modify operation +ldap_modrdn [] (3) - Perform an LDAP modify RDN operation +ldap_modrdn2 [] (3) - Perform an LDAP modify RDN operation +ldap_modrdn2_s [] (3) - Perform an LDAP modify RDN operation +ldap_modrdn_s [] (3) - Perform an LDAP modify RDN operation +ldap_next_attribute [] (3) - step through LDAP entry attributes +ldap_next_entry [] (3) - LDAP result entry parsing and counting routines +ldap_next_message [] (3) - Stepping through messages in a result chain +ldap_next_reference [] (3) - Stepping through continuation references in a result chain +ldap_objectclass2name [] (3) - Schema definition handling routines +ldap_objectclass2str [] (3) - Schema definition handling routines +ldap_objectclass_free [] (3) - Schema definition handling routines +ldap_open [] (3) - Initialize the LDAP library and open a connection to an LDAP server +ldap_parse_reference [] (3) - Extract referrals and controls from a reference message +ldap_parse_result [] (3) - Parsing results +ldap_parse_sasl_bind_result [] (3) - LDAP bind routines +ldap_perror [] (3) - LDAP protocol error handling routines +ldap_result [] (3) - Wait for the result of an LDAP operation +ldap_result2error [] (3) - LDAP protocol error handling routines +ldap_sasl_bind [] (3) - LDAP bind routines +ldap_sasl_bind_s [] (3) - LDAP bind routines +ldap_sasl_interactive_bind_s [] (3) - LDAP bind routines +ldap_scherr2str [] (3) - Schema definition handling routines +ldap_search [] (3) - Perform an LDAP search operation +ldap_search_s [] (3) - Perform an LDAP search operation +ldap_search_st [] (3) - Perform an LDAP search operation +ldap_simple_bind [] (3) - LDAP bind routines +ldap_simple_bind_s [] (3) - LDAP bind routines +ldap_sort_entries [] (3) - LDAP sorting routines +ldap_sort_strcasecmp [] (3) - LDAP sorting routines +ldap_sort_values [] (3) - LDAP sorting routines +ldap_str2attributetype [] (3) - Schema definition handling routines +ldap_str2matchingrule [] (3) - Schema definition handling routines +ldap_str2objectclass [] (3) - Schema definition handling routines +ldap_str2syntax [] (3) - Schema definition handling routines +ldap_syntax2name [] (3) - Schema definition handling routines +ldap_syntax2str [] (3) - Schema definition handling routines +ldap_syntax_free [] (3) - Schema definition handling routines +ldap_unbind [] (3) - LDAP bind routines +ldap_unbind_s [] (3) - LDAP bind routines +ldap_url_parse [] (3) - LDAP Uniform Resource Locator routines +ldapadd [] (1) - LDAP modify entry and LDAP add entry tools +ldapcompare [] (1) - LDAP compare tool +ldapdelete [] (1) - LDAP delete entry tool +ldapmodify [] (1) - LDAP modify entry and LDAP add entry tools +ldapmodrdn [] (1) - LDAP rename entry tool +ldappasswd [] (1) - change the password of an LDAP entry +ldapsearch [] (1) - LDAP search tool +ldapwhoami [] (1) - LDAP who am i? tool +ldattach [] (8) - attach a line discipline to a serial line +ldbadd [] (1) - Command-line utility for adding records to an LDB +ldbdel [] (1) - Command-line program for deleting LDB records +ldbedit [] (1) - Edit LDB databases using your preferred editor +ldbmodify [] (1) - Modify records in a LDB database +ldbsearch [] (1) - Search for records in a LDB database +ldd [] (1) - print shared library dependencies +ldexp [] (3) - multiply floating-point number by integral power of 2 +ldexpf [] (3) - multiply floating-point number by integral power of 2 +ldexpl [] (3) - multiply floating-point number by integral power of 2 +ldif [] (5) - LDAP Data Interchange Format +ldiv [] (3) - compute quotient and remainder of an integer division +le16toh [] (3) - convert values between host and big - /little-endian byte order +le32toh [] (3) - convert values between host and big - /little-endian byte order +le64toh [] (3) - convert values between host and big - /little-endian byte order +leaf_handlers [] (3) - Process individual leaf objects A group of handlers to implement individual leaf objects and instances (both scalar objects, and individual objects and instances within a table) +leaftoppm [] (1) - convert Interleaf image format to PPM image +leaveok [] (3) - curses output options +less [] (1) - opposite of more +less [] (3) - perl pragma to request less of something +lesskey [] (1) - specify key bindings for less +let [] (1) - bash built-in commands, see bash(1) +lfind [] (3) - linear search of an array +lftp [] (1) - Sophisticated file transfer program +lftpget [] (1) - get a file with lftp(1) +lgamma [] (3) - log gamma function +lgamma_r [] (3) - log gamma function +lgammaf [] (3) - log gamma function +lgammaf_r [] (3) - log gamma function +lgammal [] (3) - log gamma function +lgammal_r [] (3) - log gamma function +lgetxattr [] (2) - retrieve an extended attribute value +lh_delete [] (3) - dynamic hash table +lh_doall [] (3) - dynamic hash table +lh_doall_arg [] (3) - dynamic hash table +lh_error [] (3) - dynamic hash table +lh_free [] (3) - dynamic hash table +lh_insert [] (3) - dynamic hash table +lh_new [] (3) - dynamic hash table +lh_node_stats [] (3) - LHASH statistics +lh_node_stats_bio [] (3) - LHASH statistics +lh_node_usage_stats [] (3) - LHASH statistics +lh_node_usage_stats_bio [] (3) - LHASH statistics +lh_retrieve [] (3) - dynamic hash table +lh_stats [] (3) - LHASH statistics +lh_stats_bio [] (3) - LHASH statistics +lib [] (3) - manipulate @INC at compile time +libXp [] (3) - X Print Client Library +libao.conf [] (5) - configuration for libao +libarchive [] (3) - functions for reading and writing streaming archives +libarchive [] (5) - formats - archive formats supported by the libarchive library +libarchive_internals [] (3) - description of libarchive internal interfaces +libblkid [] (3) - block device identification library +libc [] (7) - Overview of standard C libraries on Linux +libcaca [] (3) - authors - Libcaca authors Sam Hocevar <sam@zoy.org> +libcaca [] (3) - canvas - The libcaca canvas format (version 1) All types are big endian +libcaca [] (3) - env - Libcaca environment variables Some environment variables can be used to change the behaviour of libcaca without having to modify the program which uses them. These variables are: +libcaca [] (3) - font - The libcaca font format (version 1) All types are big endian +libcaca [] (3) - migrating - Migrating from libcaca 0.x to the 1.0 API This section will guide you through the migration of a libcaca 0.x application to the latest API version +libcaca [] (3) - news - Libcaca news +libcaca [] (3) - ruby - Libcaca ruby bindings There is no real documentation yet for the Ruby binding but fCmethods on any object should help you :) +libcaca [] (3) - ruby-api - Libcaca Ruby API Theclasses available for libcaca are : +libcaca [] (3) - style - Libcaca coding style +libcaca [] (3) - thanks - Libcaca thanks +libcaca [] (3) - tutorial - A libcaca tutorial First, a very simple working program, to check for basic libcaca functionalities +libcurl [] (3) - client-side URL transfers +libcurl [] (3) - easy - easy interface overview +libcurl [] (3) - errors - error codes in libcurl +libcurl [] (3) - multi - how to use the multi interface +libcurl [] (3) - share - how to use the share interface +libcurl [] (3) - tutorial - libcurl programming tutorial +libexpect [] (3) - programmed dialogue library with interactive programs +libexslt [] (3) - extension library for XSLT +libgphoto2 [] (3) - cross-platform digital camera library +libgphoto2_port [] (3) - cross-platform port access library +libieee1284 [] (3) - IEEE1284 communications library +libipq [] (3) - iptables userspace packet queuing library +libmcrypt [] (3) - encryption/decryption library +libmng [] (3) - Multiple-image Network Graphics (MNG) Reference Library 1.0.9 +libnetFAQ [] (3) - libnet Frequently Asked Questions +libnetcfg [] (1) - configure libnet +libnetlink [] (3) - A library for accessing the netlink service +libnetpbm [] (3) - see http://netpbm.sourceforge.net/doc/libnetpbm.html +libntfs [] (8) - gnomevfs - Module for GNOME VFS that allows access to NTFS filesystems +libntfs [] (8) - library for accessing and managing NTFS volumes +libpbm [] (3) - functions to read and write PBM image files +libpgm [] (3) - functions to support portable graymap (PGM) programs +libpng [] (3) - Portable Network Graphics (PNG) Reference Library 1.2.35 +libpng [] (3) - Portable Network Graphics (PNG) Reference Library 1.2.35 (private functions) +libpnm [] (3) - functions to support pnm and pam programs +libppm [] (3) - functions to support portable pixmap (PPM) programs +libraptor [] (3) - Raptor RDF parser and serializer library +librasqal [] (3) - Rasqal RDF query library +libsensors [] (3) - publicly accessible functions provided by the sensors library +libsmbclient [] (7) - An extension library for browsers and that can be used as a generic browsing API +libsox [] (3) - SoX, an audio file-format and effect library +libtiff [] (3) - introduction to +libvga.config [] (5) - the svgalib configuration file +libvga.et4000 [] (7) - Information for Tseng ET4000 users +libxml [] (3) - library used to parse XML files +libxslt [] (3) - library used to do XSL transformations on XML documents +libzip [] (3) - library for manipulating zip archives +lilo [] (8) - install boot loader +lilo.conf [] (5) - configuration file for lilo +limits [] (5) - Resource limits definition +lindex [] (n) - Retrieve an element from a list +line [] (1) - read one line +lineart [] (6) - test a linear frame buffer +link [] (1) - call the link function to create a link to a file +link [] (2) - make a new name for a file +linkat [] (2) - create a file link relative to directory file descriptors +links [] (1) - lynx-like alternative character mode WWW browser +linsert [] (n) - Insert elements into a list +linuxdoc [] (1) - LinuxDoc DTD SGML converter to other output format +lispmtopgm [] (1) - convert a Lisp Machine bitmap file into pgm format +list [] (n) - Create a list +listalias [] (1) - list user and system aliases +listbox [] (n) - Create and manipulate listbox widgets +listen [] (2) - listen for connections on a socket +listres [] (1) - list resources in widgets +listxattr [] (2) - list extended attribute names +lj4_font [] (5) - groff fonts for use with devlj4 +ljlatest [] (6) - prints the most recent public posts on livejournal.com +lkbib [] (1) - search bibliographic databases +llabs [] (3) - compute the absolute value of an integer +lldiv [] (3) - compute quotient and remainder of an integer division +llength [] (n) - Count the number of elements in a list +llistxattr [] (2) - list extended attribute names +llrint [] (3) - round to nearest integer +llrintf [] (3) - round to nearest integer +llrintl [] (3) - round to nearest integer +llround [] (3) - round to nearest integer, away from zero +llroundf [] (3) - round to nearest integer, away from zero +llroundl [] (3) - round to nearest integer, away from zero +lmhosts [] (5) - The Samba NetBIOS hosts file +ln [] (1) - make links between files +lndir [] (1) - create a shadow directory of symbolic links to another directory tree +lnstat [] (8) - unified linux network statistics +load [] (n) - Load machine code and initialize new commands +loadTk [] (n) - Load Tk into a safe interpreter +loaderinfo [] (1) - report SCSI tape device info +loadkeys [] (1) - load keyboard translation tables +loadunimap [] (8) - load the kernel unicode-to-font mapping table +local [] (1) - bash built-in commands, see bash(1) +locale [] (3) - Perl pragma to use and avoid POSIX locales for built-in operations +locale [] (5) - Describes a locale definition file +locale [] (7) - Description of multi-language support +localeconv [] (3) - get numeric formatting information +localtime [] (3) - transform date and time to broken-down time or ASCII +localtime_r [] (3) - transform date and time to broken-down time or ASCII +lock [] (2) - unimplemented system calls +lockf [] (3) - apply, test or remove a POSIX lock on an open file +lockfile [] (1) - conditional semaphore-file creator +lockward [] (6) - Rotating spinning color-cycling things +log [] (3) - natural logarithmic function +log10 [] (3) - base-10 logarithmic function +log10f [] (3) - base-10 logarithmic function +log10l [] (3) - base-10 logarithmic function +log1p [] (3) - logarithm of 1 plus argument +log1pf [] (3) - logarithm of 1 plus argument +log1pl [] (3) - logarithm of 1 plus argument +log2 [] (3) - base-2 logarithmic function +log2f [] (3) - base-2 logarithmic function +log2l [] (3) - base-2 logarithmic function +log2pcap [] (1) - Extract network traces from Samba log files +logb [] (3) - get exponent of a floating-point value +logbf [] (3) - get exponent of a floating-point value +logbl [] (3) - get exponent of a floating-point value +logf [] (3) - natural logarithmic function +logger [] (1) - a shell command interface to the syslog(3) system log module +login [] (1) - begin session on the system +login [] (3) - write utmp and wtmp entries +login.access [] (5) - Login access control table +login_tty [] (3) - tty utility functions +logl [] (3) - natural logarithmic function +logname [] (1) - print user's login name +logout [] (1) - bash built-in commands, see bash(1) +logout [] (3) - write utmp and wtmp entries +logoutd [] (8) - Enforce login time restrictions +logresolve [] (8) - Resolve IP-addresses to hostnames in Apache log files +logrotate [] (8) - rotates, compresses, and mails system logs +logsave [] (8) - save the output of a command in a logfile +logwtmp [] (3) - append an entry to the wtmp file +longjmp [] (3) - non-local jump to a saved stack context +longname [] (3) - curses environment query routines +look [] (1) - display lines beginning with a given string +look [] (3) - search for key in dictionary file +lookbib [] (1) - search bibliographic databases +lookup_dcookie [] (2) - return a directory entry's path +loop [] (6) - cellular automaton +losetup [] (8) - set up and control loop devices +lower [] (n) - Change a window's position in the stacking order +lp [] (1) - print files +lp [] (4) - line printer devices +lpadmin [] (8) - configure cups printers and classes +lpc [] (8) - line printer control program +lpinfo [] (8) - show available devices or drivers +lpmove [] (8) - move a job or all jobs to a new destination +lpoptions [] (1) - display or set printer options and defaults +lppasswd [] (1) - add, change, or delete digest passwords +lpq [] (1) - show printer queue status +lpr [] (1) - print files +lprm [] (1) - cancel print jobs +lpstat [] (1) - print cups status information +lrand48 [] (3) - generate uniformly distributed pseudo-random numbers +lrand48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +lrange [] (n) - Return one or more adjacent elements from a list +lremovexattr [] (2) - remove an extended attribute +lrepeat [] (n) - Build a list by repeating elements +lreplace [] (n) - Replace elements in a list with new elements +lreverse [] (n) - Reverse the order of a list +lrint [] (3) - round to nearest integer +lrintf [] (3) - round to nearest integer +lrintl [] (3) - round to nearest integer +lround [] (3) - round to nearest integer, away from zero +lroundf [] (3) - round to nearest integer, away from zero +lroundl [] (3) - round to nearest integer, away from zero +ls [] (1) - list directory contents +lsattr [] (1) - list file attributes on a Linux second extended file system +lsdev [] (8) - display information about installed hardware +lsearch [] (3) - linear search of an array +lsearch [] (n) - See if a list contains a particular element +lseek [] (2) - reposition read/write file offset +lseek64 [] (3) - reposition 64-bit read/write file offset +lset [] (n) - Change an element in a list +lsetxattr [] (2) - set an extended attribute value +lshal [] (1) - list HAL devices +lsmod [] (8) - program to show the status of modules in the Linux Kernel +lsof [] (8) - list open files +lsort [] (n) - Sort the elements of a list +lspci [] (8) - list all PCI devices +lspcmcia [] (8) - display extended PCMCIA debugging information +lsscsi [] (8) - list SCSI devices (or hosts) and their attributes +lstat [] (2) - get file status +lsusb [] (8) - list USB devices +luit [] (1) - Locale and ISO 2022 support for Unicode terminals +lutimes [] (3) - change file timestamps +lvchange [] (8) - change attributes of a logical volume +lvconvert [] (8) - convert a logical volume from linear to mirror or snapshot +lvcreate [] (8) - create a logical volume in an existing volume group +lvdisplay [] (8) - display attributes of a logical volume +lvextend [] (8) - extend the size of a logical volume +lvm [] (8) - LVM2 tools +lvm.conf [] (5) - Configuration file for LVM2 +lvmchange [] (8) - change attributes of the logical volume manager +lvmdiskscan [] (8) - scan for all devices visible to LVM2 +lvmdump [] (8) - create lvm2 information dumps for diagnostic purposes +lvreduce [] (8) - reduce the size of a logical volume +lvremove [] (8) - remove a logical volume +lvrename [] (8) - rename a logical volume +lvresize [] (8) - resize a logical volume +lvs [] (8) - report information about logical volumes +lvscan [] (8) - scan (all disks) for logical volumes +lwres [] (3) - introduction to the lightweight resolver library +lwres_addr_parse [] (3) - lightweight resolver utility functions +lwres_buffer_add [] (3) - lightweight resolver buffer management +lwres_buffer_back [] (3) - lightweight resolver buffer management +lwres_buffer_clear [] (3) - lightweight resolver buffer management +lwres_buffer_first [] (3) - lightweight resolver buffer management +lwres_buffer_forward [] (3) - lightweight resolver buffer management +lwres_buffer_getmem [] (3) - lightweight resolver buffer management +lwres_buffer_getuint16 [] (3) - lightweight resolver buffer management +lwres_buffer_getuint32 [] (3) - lightweight resolver buffer management +lwres_buffer_getuint8 [] (3) - lightweight resolver buffer management +lwres_buffer_init [] (3) - lightweight resolver buffer management +lwres_buffer_invalidate [] (3) - lightweight resolver buffer management +lwres_buffer_putmem [] (3) - lightweight resolver buffer management +lwres_buffer_putuint16 [] (3) - lightweight resolver buffer management +lwres_buffer_putuint32 [] (3) - lightweight resolver buffer management +lwres_buffer_putuint8 [] (3) - lightweight resolver buffer management +lwres_buffer_subtract [] (3) - lightweight resolver buffer management +lwres_conf_clear [] (3) - lightweight resolver configuration +lwres_conf_get [] (3) - lightweight resolver configuration +lwres_conf_init [] (3) - lightweight resolver configuration +lwres_conf_parse [] (3) - lightweight resolver configuration +lwres_conf_print [] (3) - lightweight resolver configuration +lwres_context_allocmem [] (3) - lightweight resolver context management +lwres_context_create [] (3) - lightweight resolver context management +lwres_context_destroy [] (3) - lightweight resolver context management +lwres_context_freemem [] (3) - lightweight resolver context management +lwres_context_initserial [] (3) - lightweight resolver context management +lwres_context_nextserial [] (3) - lightweight resolver context management +lwres_context_sendrecv [] (3) - lightweight resolver context management +lwres_endhostent [] (3) - lightweight resolver get network host entry +lwres_endhostent_r [] (3) - lightweight resolver get network host entry +lwres_freeaddrinfo [] (3) - socket address structure to host and service name +lwres_freehostent [] (3) - lightweight resolver nodename / address translation API +lwres_freerrset [] (3) - retrieve DNS records +lwres_gabnrequest_free [] (3) - lightweight resolver getaddrbyname message handling +lwres_gabnrequest_parse [] (3) - lightweight resolver getaddrbyname message handling +lwres_gabnrequest_render [] (3) - lightweight resolver getaddrbyname message handling +lwres_gabnresponse_free [] (3) - lightweight resolver getaddrbyname message handling +lwres_gabnresponse_parse [] (3) - lightweight resolver getaddrbyname message handling +lwres_gabnresponse_render [] (3) - lightweight resolver getaddrbyname message handling +lwres_gai_strerror [] (3) - print suitable error string +lwres_getaddrinfo [] (3) - socket address structure to host and service name +lwres_getaddrsbyname [] (3) - lightweight resolver utility functions +lwres_gethostbyaddr [] (3) - lightweight resolver get network host entry +lwres_gethostbyaddr_r [] (3) - lightweight resolver get network host entry +lwres_gethostbyname [] (3) - lightweight resolver get network host entry +lwres_gethostbyname2 [] (3) - lightweight resolver get network host entry +lwres_gethostbyname_r [] (3) - lightweight resolver get network host entry +lwres_gethostent [] (3) - lightweight resolver get network host entry +lwres_gethostent_r [] (3) - lightweight resolver get network host entry +lwres_getipnodebyaddr [] (3) - lightweight resolver nodename / address translation API +lwres_getipnodebyname [] (3) - lightweight resolver nodename / address translation API +lwres_getnamebyaddr [] (3) - lightweight resolver utility functions +lwres_getnameinfo [] (3) - lightweight resolver socket address structure to hostname and service name +lwres_getrrsetbyname [] (3) - retrieve DNS records +lwres_gnbarequest_free [] (3) - lightweight resolver getnamebyaddress message handling +lwres_gnbarequest_parse [] (3) - lightweight resolver getnamebyaddress message handling +lwres_gnbarequest_render [] (3) - lightweight resolver getnamebyaddress message handling +lwres_gnbaresponse_free [] (3) - lightweight resolver getnamebyaddress message handling +lwres_gnbaresponse_parse [] (3) - lightweight resolver getnamebyaddress message handling +lwres_gnbaresponse_render [] (3) - lightweight resolver getnamebyaddress message handling +lwres_herror [] (3) - lightweight resolver error message generation +lwres_hstrerror [] (3) - lightweight resolver error message generation +lwres_lwpacket_parseheader [] (3) - lightweight resolver packet handling functions +lwres_lwpacket_renderheader [] (3) - lightweight resolver packet handling functions +lwres_net_ntop [] (3) - lightweight resolver IP address presentation +lwres_nooprequest_free [] (3) - lightweight resolver no-op message handling +lwres_nooprequest_parse [] (3) - lightweight resolver no-op message handling +lwres_nooprequest_render [] (3) - lightweight resolver no-op message handling +lwres_noopresponse_free [] (3) - lightweight resolver no-op message handling +lwres_noopresponse_parse [] (3) - lightweight resolver no-op message handling +lwres_noopresponse_render [] (3) - lightweight resolver no-op message handling +lwres_sethostent [] (3) - lightweight resolver get network host entry +lwres_sethostent_r [] (3) - lightweight resolver get network host entry +lwres_string_parse [] (3) - lightweight resolver utility functions +lwresd [] (8) - lightweight resolver daemon +lynx [] (1) - a general purpose distributed information browser for the World Wide Web +lzcmp [] (1) - compare LZMA compressed files +lzdiff [] (1) - compare LZMA compressed files +lzgrep [] (1) - search LZMA compressed files for a regular expression +lzless [] (1) - view LZMA compressed (text) files +lzmore [] (1) - view LZMA compressed (text) files +m17n [] (1) - config - Print compile/link options of the m17n library +m17n [] (1) - db - Print information about the m17n database +m17nCharacter [] (3) - Character: Character objects and API for them +m17nCharset [] (3) - Charset: Charset objects and API for them +m17nChartable [] (3) - Chartable: Chartable objects and API for them +m17nConv [] (3) - Code Conversion: Coding system objects and API for them +m17nCore [] (3) - CORE API: API provided by libm17n-core.so +m17nDatabase [] (3) - Database: The m17n database and API for it +m17nDebug [] (3) - Debugging: Support for m17n library users to debug their programs +m17nDraw [] (3) - Drawing: Drawing M-texts on a window +m17nError [] (3) - Error Handling: Error handling of the m17n library +m17nFLT [] (3) - FLT API: API provided by libm17n-flt.so +m17nFace [] (3) - Face: A face is an object to control appearance of M-text +m17nFont [] (3) - Font: Font object +m17nFontset [] (3) - Fontset: A fontset is an object that maps a character to fonts +m17nFrame [] (3) - Frame: A frame is an object corresponding to the graphic device +m17nGUI [] (3) - GUI API: API provided by libm17n-gui.so +m17nInputMethod [] (3) - Input Method (basic): API for Input method +m17nInputMethodWin [] (3) - Input Method (GUI): Input method support on window systems +m17nIntro [] (3) - Introduction: Introduction to the m17n library +m17nLocale [] (3) - Locale: Locale objects and API for them +m17nMisc [] (3) - MISC API: Miscellaneous API +m17nMtext [] (3) - M-text: M-text objects and API for them +m17nObject [] (3) - Managed Object: Objects managed by the reference count +m17nPlist [] (3) - Property List: Property List objects and API for them +m17nShell [] (3) - SHELL API: API provided by libm17n.so +m17nSymbol [] (3) - Symbol: Symbol objects and API for them +m17nTextProperty [] (3) - Text Property: Function to handle text properties +m17n_object [] (3) - m17n_object: Allocate a managed object +m17n_object_ref [] (3) - m17n_object_ref: Increment the reference count of a managed object +m17n_object_unref [] (3) - m17n_object_unref: Decrement the reference count of a managed object +m17n_status [] (3) - m17n_status: Report which part of the m17n library is initialized +m4 [] (1) - macro processor +macbinary [] (1) - Macintosh file format transformer +mach32info [] (6) - read out configuration information of a Mach32 +macptopbm [] (1) - convert a MacPaint file into a portable bitmap +madplay [] (1) - decode and play MPEG audio stream(s) +madvise [] (2) - give advice about use of memory +madvise1 [] (2) - unimplemented system calls +magic [] (5) - file command's magic pattern file +magic_buffer [] (3) - Magic number recognition library +magic_check [] (3) - Magic number recognition library +magic_close [] (3) - Magic number recognition library +magic_compile [] (3) - Magic number recognition library +magic_error [] (3) - Magic number recognition library +magic_file [] (3) - Magic number recognition library +magic_load [] (3) - Magic number recognition library +magic_open [] (3) - Magic number recognition library +magic_setflags [] (3) - Magic number recognition library +mail.local [] (8) - store mail in a mailbox +mailaddr [] (7) - mail addressing description +mailcap [] (5) - metamail capabilities file +mailq [] (1) - print the mail queue +mailstats [] (8) - display mail statistics +mailto [] (1) - Simple multimedia mail sending program +mailto [] (1) - hebrew - Run the mailto program to send Hebrew/English mail +mailto.conf [] (5) - configuration file for cups email notifier +mailx [] (1) - send and receive Internet mail +main programmer Jean [] (3) - Yves Lamoureux <jylam@lnxscene.org> +major [] (3) - manage a device number +make [] (1) - GNU make utility to maintain groups of programs +make_win_bin_dist [] (1) - package MySQL distribution as ZIP archive +make_win_src_distribution [] (1) - create source distribution for Windows +makecontext [] (3) - manipulate user context +makedbm [] (8) - create or dump a ypserv database file +makedepend [] (1) - create dependencies in makefiles +makedev [] (3) - manage a device number +makeg [] (1) - make a debuggable executable +makeinfo [] (1) - translate Texinfo documents +makekdewidgets [] (1) - Builds Qt widget plugins from an ini style description file +makemap [] (8) - create database maps for sendmail +makepkg [] (8) - make Slackware packages +makestrs [] (1) - makes string table C source and header(s) +makewhatis [] (8) - Create the whatis database +malloc [] (3) - Allocate and free dynamic memory +man [] (1) - format and display the on-line manual pages +man [] (7) - macros to format man pages +man [] (7) - pages - conventions for writing Linux man pages +man.conf [] (5) - configuration data for man +man2html [] (1) - format a manual page in html +manuals with [] (7) - mdoc +mapscrn [] (8) - load screen output mapping table +math_error [] (7) - detecting errors from mathematical functions +matherr [] (3) - SVID math library exception handling +mathfunc [] (n) - Mathematical functions for Tcl expressions +mathop [] (n) - Mathematical operators as Tcl commands +mattrib [] (1) - change MSDOS file attribute flags +maze [] (6) - an automated X11 demo repeatedly creating and solving a random maze +mbadblocks [] (1) - tests a floppy disk, and marks the bad blocks in the FAT +mbind [] (2) - Set memory policy for a memory range +mblen [] (3) - determine number of bytes in next multibyte character +mbox [] (5) - Format for mail message storage +mbrlen [] (3) - determine number of bytes in next multibyte character +mbrtowc [] (3) - convert a multibyte sequence to a wide character +mbsinit [] (3) - test for initial shift state +mbsnrtowcs [] (3) - convert a multibyte string to a wide-character string +mbsrtowcs [] (3) - convert a multibyte string to a wide-character string +mbstowcs [] (3) - convert a multibyte string to a wide-character string +mbtowc [] (3) - convert a multibyte sequence to a wide character +mc [] (1) - Visual shell for Unix-like systems +mcabber [] (1) - a simple Jabber console client +mcat [] (1) - dump raw disk image +mcd [] (1) - change MSDOS directory +mcedit [] (1) - Internal file editor of GNU Midnight Commander +mchar_decode [] (3) - Decode a code-point +mchar_define_charset [] (3) - Define a charset +mchar_define_property [] (3) - Define a character property +mchar_encode [] (3) - Encode a character code +mchar_get_prop [] (3) - Get the value of a character property +mchar_get_prop_table [] (3) - Get the char-table for a character property +mchar_list_charset [] (3) - List symbols representing charsets +mchar_map_charset [] (3) - Call a function for all the characters in a specified charset +mchar_put_prop [] (3) - Set the value of a character property +mchar_resolve_charset [] (3) - Resolve charset name +mchartable [] (3) - Create a new chartable +mchartable_lookup [] (3) - Return the assigned value of a character in a chartable +mchartable_map [] (3) - Call a function for characters in a chartable +mchartable_max_char [] (3) - Return the maximum character whose value is set in a chartabe +mchartable_min_char [] (3) - Return the minimum character whose value is set in a chartabe +mchartable_range [] (3) - Search for characters that have non-default value +mchartable_set [] (3) - Assign a value to a character in a chartable +mchartable_set_range [] (3) - Assign a value to the characters in the specified range +mconv_buffer_converter [] (3) - Create a code converter bound to a buffer +mconv_decode [] (3) - Decode a byte sequence into an M-text +mconv_decode_buffer [] (3) - Decode a buffer area based on a coding system +mconv_decode_stream [] (3) - Decode a stream input based on a coding system +mconv_define_coding [] (3) - Define a coding system +mconv_encode [] (3) - Encode an M-text into a byte sequence +mconv_encode_buffer [] (3) - Encode an M-text into a buffer area +mconv_encode_range [] (3) - Encode a part of an M-text +mconv_encode_stream [] (3) - Encode an M-text to write to a stream +mconv_free_converter [] (3) - Free a code converter +mconv_getc [] (3) - Read a character via a code converter +mconv_gets [] (3) - Read a line using a code converter +mconv_list_codings [] (3) - List symbols representing coding systems +mconv_putc [] (3) - Write a character via a code converter +mconv_rebind_buffer [] (3) - Bind a buffer to a code converter +mconv_rebind_stream [] (3) - Bind a stream to a code converter +mconv_reset_converter [] (3) - Reset a code converter +mconv_resolve_coding [] (3) - Resolve coding system name +mconv_stream_converter [] (3) - Create a code converter bound to a stream +mconv_ungetc [] (3) - Push a character back to a code converter +mcookie [] (1) - generate magic cookies for xauth +mcopy [] (1) - copy MSDOS files to/from Unix +mcprint [] (3) - ship binary data to printer +mcview [] (1) - Internal file viewer of GNU Midnight Commander +md [] (4) - Multiple Device driver aka Linux Software RAID +md2 [] (1) - message digests +md4 [] (1) - message digests +md5 [] (1) - message digests +md5sum [] (1) - compute and check MD5 message digest +mdadm [] (8) - manage MD devices aka Linux Software RAID +mdadm.conf [] (5) - configuration for management of Software RAID with mdadm +mdatabase_define [] (3) - Define a data of the m17n database +mdatabase_find [] (3) - Look for a data in the database +mdatabase_list [] (3) - Return a data list of the m17n database +mdatabase_load [] (3) - Load a data from the database +mdatabase_tag [] (3) - Get tags of a data +mdatopbm [] (1) - convert a Microdesign .mda or .mdp file into a portable bitmap +mdbCharsetList [] (5) - List of character set definitions +mdbCodingList [] (5) - List of coding system definitions +mdbDir [] (5) - List of data in a database directory +mdbFLT [] (5) - Font Layout Table +mdbFontEncoding [] (5) - Font Encoding +mdbFontSize [] (5) - Font Size +mdbFontset [] (5) - Fontset +mdbGeneral [] (5) - General Format +mdbIM [] (5) - Input Method +mdbTutorialIM [] (5) - Tutorial of input method +mdc2 [] (1) - message digests +mdebug_dump_all_symbols [] (3) - Dump all symbol names +mdebug_dump_chartab [] (3) - Dump a chartable +mdebug_dump_face [] (3) - Dump a face +mdebug_dump_flt [] (3) - Dump a Font Layout Table +mdebug_dump_font [] (3) - Dump a font +mdebug_dump_fontset [] (3) - Dump a fontset +mdebug_dump_im [] (3) - Dump an input method +mdebug_dump_mtext [] (3) - Dump an M-text +mdebug_dump_plist [] (3) - Dump a property list +mdebug_dump_symbol [] (3) - Dump a symbol +mdebug_hook [] (3) - Hook function called on an error +mdel [] (1) - delete an MSDOS file mdeltree - recursively delete an MSDOS directory and its contents +mdeltree [] (1) - recursively delete an MSDOS directory and its contents +mdir [] (1) - display an MSDOS directory +mdoc [] (7) - quick reference guide for the - mdoc macro package +mdoc.samples [] (7) - tutorial sampler for writing +mdraw_clear_cache [] (3) - clear cached information +mdraw_coordinates_position [] (3) - Return the character position nearest to the coordinates +mdraw_default_line_break [] (3) - Calculate a line breaking position +mdraw_glyph_info [] (3) - Compute information about a glyph +mdraw_glyph_list [] (3) - Compute information about glyph sequence +mdraw_image_text [] (3) - Draw an M-text on a window as an image +mdraw_per_char_extents [] (3) - Obtain per character dimension information +mdraw_text [] (3) - Draw an M-text on a window +mdraw_text_extents [] (3) - Compute text pixel width +mdraw_text_items [] (3) - Draw one or more textitems +mdraw_text_per_char_extents [] (3) - Compute the text dimensions of each character of M-text +mdraw_text_with_control [] (3) - Draw an M-text on a window with fine control +mdu [] (1) - display the amount of space occupied by an MSDOS directory +mebi [] (7) - decimal and binary prefixes +mega [] (7) - decimal and binary prefixes +megatron [] (1) - Macintosh file format transformer +meinproc4 [] (8) - KDE translator for XML +mem [] (4) - system memory, kernel memory and system ports +mem_d [] (3) - AA-lib memory driver +memalign [] (3) - Allocate aligned memory +memccpy [] (3) - byte string operations +memccpy [] (3) - copy memory area +memchr [] (3) - byte string operations +memchr [] (3) - scan memory for a character +memcmp [] (3) - byte string operations +memcmp [] (3) - compare memory areas +memcpy [] (3) - byte string operations +memcpy [] (3) - copy memory area +memfrob [] (3) - byte string operations +memfrob [] (3) - frobnicate (encrypt) a memory area +memmem [] (3) - byte string operations +memmem [] (3) - locate a substring +memmove [] (3) - byte string operations +memmove [] (3) - copy memory area +memory [] (n) - Control Tcl memory debugging capabilities +mempcpy [] (3) - copy memory area +memrchr [] (3) - scan memory for a character +memscroller [] (6) - scrolls a dump of its own RAM across the screen +memset [] (3) - byte string operations +memset [] (3) - fill memory with a constant byte +mencoder [] (1) - movie encoder +menger [] (6) - 3D menger gasket fractal +menu [] (3) - curses extension for programming menus +menu [] (n) - Create and manipulate menu widgets +menu_attributes [] (3) - color and attribute control for menus +menu_cursor [] (3) - position a menu's cursor +menu_driver [] (3) - command-processing loop of the menu system +menu_format [] (3) - set and get menu sizes +menu_hook [] (3) - set hooks for automatic invocation by applications +menu_items [] (3) - make and break connections between items and menus +menu_mark [] (3) - get and set the menu mark string +menu_new [] (3) - create and destroy menus +menu_opts [] (3) - set and get menu options +menu_pattern [] (3) - get and set a menu's pattern buffer +menu_post [] (3) - write or erase menus from associated subwindows +menu_requestname [] (3) - handle printable menu request names +menu_spacing [] (3) - Control spacing between menu items +menu_userptr [] (3) - associate application data with a menu item +menu_win [] (3) - make and break menu window and subwindow associations +menubutton [] (n) - Create and manipulate menubutton widgets +merge [] (1) - three-way file merge +mergelib [] (1) - merge one library into another +mesg [] (1) - display (do not display) messages from other users +message [] (n) - Create and manipulate message widgets +messages [] (1) - quick count of messages in mailbox or folder +meta [] (3) - curses input options +metaflac [] (1) - program to list, add, remove, or edit metadata in one or more FLAC files +metamail [] (1) - infrastructure for mailcap-based multimedia mail handling +metasend [] (1) - Crude interface for sending non-text mail +mev [] (1) - a program to report mouse events +mface [] (3) - Create a new face +mface_copy [] (3) - Make a copy of a face +mface_equal [] (3) - Compare faces +mface_from_font [] (3) - Make a face from a font +mface_get_hook [] (3) - Get the hook function of a face +mface_get_prop [] (3) - Get the value of a face property +mface_merge [] (3) - Merge faces +mface_put_hook [] (3) - Set a hook function to a face +mface_put_prop [] (3) - Set a value of a face property +mface_update [] (3) - Update a face +mflt_coverage [] (3) - Return a coverage of a FLT +mflt_find [] (3) - Find an FLT suitable for the specified character and font +mflt_get [] (3) - Return an FLT object that has a specified name +mflt_name [] (3) - Return the name of an FLT +mflt_run [] (3) - Layout characters with an FLT +mfont [] (3) - Create a new font +mfont_check [] (3) - Check the usability of a font +mfont_close [] (3) - Close a font +mfont_copy [] (3) - Make a copy of a font +mfont_encapsulate [] (3) - Encapusulate a font +mfont_find [] (3) - Find a font +mfont_from_name [] (3) - Create a new font from fontname +mfont_get_prop [] (3) - Get a property value of a font +mfont_list [] (3) - Get a list of fonts +mfont_list_family_names [] (3) - Get a list of font famiy names +mfont_match_p [] (3) - Check is a font matches with a font spec +mfont_name [] (3) - Create a fontname from a font +mfont_open [] (3) - Open a font +mfont_parse_name [] (3) - Create a font by parsing a fontname +mfont_put_prop [] (3) - Put a property value to a font +mfont_resize_ratio [] (3) - Get resize information of a font +mfont_selection_priority [] (3) - Return the font selection priority +mfont_set_encoding [] (3) - Set encoding of a font +mfont_set_selection_priority [] (3) - Set the font selection priority +mfont_unparse_name [] (3) - Create a fontname from a font +mfontset [] (3) - Return a fontset +mfontset_copy [] (3) - Make a copy of a fontset +mfontset_lookup [] (3) - Lookup a fontset +mfontset_modify_entry [] (3) - Modify the contents of a fontset +mfontset_name [] (3) - Return the name of a fontset +mformat [] (1) - add an MSDOS filesystem to a low-level formatted floppy disk +mframe [] (3) - Create a new frame +mframe_get_prop [] (3) - Return property value of frame +mga [] (4) - Matrox video driver +mgrtopbm [] (1) - convert a MGR bitmap into a portable bitmap +mhash [] (3) - Hash Library +mib2c [] (1) - - generate template code for extending the agent +mib2c [] (1) - update - script to merge custom code into updated mib2c code +mib2c.conf [] (5) - - How to write mib2c.conf files to do ANYTHING based on MIB input +mib_handler_methods [] (3) - Defines the subhandlers to be called by the multiplexer helper +mii [] (8) - tool - view, manipulate media-independent interface status +mille [] (6) - play Mille Bornes +mime.convs [] (5) - mime type conversion file for cups +mime.types [] (5) - mime type description file for cups +mimencode [] (1) - Translate to and from mail-oriented encoding formats +mincore [] (2) - determine whether pages are resident in memory +minfo [] (1) - print the parameters of a MSDOS filesystem +minicom [] (1) - friendly serial communication program +minor [] (3) - manage a device number +minput_close_im [] (3) - Close an input method +minput_config_command [] (3) - Configure the key sequence of an input method command +minput_config_file [] (3) - Get the name of per-user customization file +minput_config_variable [] (3) - Configure the value of an input method variable +minput_create_ic [] (3) - Create an input context +minput_destroy_ic [] (3) - Destroy an input context +minput_event_to_key [] (3) - Convert an event to an input key +minput_filter [] (3) - Filter an input key +minput_get_command [] (3) - Get information about input method command(s) +minput_get_description [] (3) - Get description text of an input method +minput_get_title_icon [] (3) - Get title and icon filename of an input method +minput_get_variable [] (3) - Get information about input method variable(s) +minput_lookup [] (3) - Look up a text produced in the input context +minput_open_im [] (3) - Open an input method +minput_reset_ic [] (3) - Reset an input context +minput_save_config [] (3) - Save configurations in per-user customization file +minput_set_spot [] (3) - Set the spot of the input context +minput_toggle [] (3) - Toggle input method +mirrorblob [] (6) - Draws a wobbly blob that distorts the image behind it +mitem_current [] (3) - set and get current_menu_item +mitem_name [] (3) - get menu item name and description fields +mitem_new [] (3) - create and destroy menu items +mitem_opts [] (3) - set and get menu item options +mitem_userptr [] (3) - associate application data with a menu item +mitem_value [] (3) - set and get menu item values +mitem_visible [] (3) - check visibility of a menu item +mjoytest [] (6) - test the svgalib joystick package in graphics mode +mk_cmds [] (1) - error table compiler +mkcomposecache [] (8) - create a cache file for a compose file explicitely +mkdir [] (1) - make directories +mkdir [] (2) - create a directory +mkdirat [] (2) - create a directory relative to a directory file descriptor +mkdirhier [] (1) - makes a directory hierarchy +mkdosfs [] (8) - create an MS-DOS file system under Linux +mkdtemp [] (3) - create a unique temporary directory +mke2fs [] (8) - create an ext2/ext3 filesystem +mke2fs.conf [] (5) - Configuration file for mke2fs +mkfifo [] (1) - make FIFOs (named pipes) +mkfifo [] (3) - make a FIFO special file (a named pipe) +mkfifoat [] (3) - make a FIFO (named pipe) relative to a directory file descriptor +mkfontdir [] (1) - create an index of X font files in a directory +mkfontscale [] (1) - create an index of scalable font files for X +mkfs [] (8) - build a Linux file system +mkfs.bfs [] (8) - make an SCO bfs filesystem +mkfs.minix [] (8) - make a Linux MINIX filesystem +mkfs.xfs [] (8) - construct an XFS filesystem +mkhtmlindex [] (1) - generate index files for HTML man pages +mkinitrd [] (8) - create or rebuilt an initrd (initial ramdisk) using initramfs (simple cpio+gzip) +mkisofs [] (8) - create an hybrid ISO9660/JOLIET/HFS filesystem with optional Rock Ridge attributes +mklost+found [] (8) - create a lost+found directory on a mounted Linux second extended file system +mkmanifest [] (1) - makes list of file names and their DOS 8+3 equivalent +mknetid [] (8) - generate data for netid map +mknod [] (1) - make block or character special files +mknod [] (2) - create a special or ordinary file +mknodat [] (2) - create a special or ordinary file relative to a directory file descriptor +mkntfs [] (8) - create an NTFS file system +mkostemp [] (3) - create a unique temporary file +mkpasswd [] (1) - generate new password, optionally apply it to a user +mkpasswd [] (8) - Update passwd and group database files +mkreiserfs [] (8) - The create tool for the Linux ReiserFS filesystem +mkrescue [] (8) - make rescue floppy +mkstemp [] (3) - create a unique temporary file +mkswap [] (8) - set up a Linux swap area +mktemp [] (1) - create a temporary file or directory +mktemp [] (1) - make temporary filename (unique) +mktemp [] (3) - make a unique temporary filename +mktime [] (3) - transform date and time to broken-down time or ASCII +mkzftree [] (1) - Create a zisofs/RockRidge compressed file tree +mlabel [] (1) - make an MSDOS volume label +mlocale_get_prop [] (3) - Get the value of a locale property +mlocale_set [] (3) - Set the current locale +mlock [] (2) - lock and unlock memory +mlockall [] (2) - lock and unlock memory +mm [] (1) - config - OSSP mm library configuration/build utility +mmap [] (2) - map or unmap files or devices into memory +mmap2 [] (2) - map files or devices into memory +mmd [] (1) - make an MSDOS subdirectory +mmount [] (1) - mount an MSDOS disk +mmove [] (1) - move or rename an MSDOS file or subdirectory +mmroff [] (1) - reference preprocessor +mng [] (5) - Multiple-image Network Graphics (MNG) format +mode3 [] (8) - set a vesa mode +mode_end_call [] (3) - At the end of a series of requests, call another handler hook +modf [] (3) - extract signed integral and fractional values from floating - point number +modff [] (3) - extract signed integral and fractional values from floating - point number +modfl [] (3) - extract signed integral and fractional values from floating - point number +modify_ldt [] (2) - get or set ldt +modinfo [] (8) - program to show information about a Linux Kernel module +modprobe [] (8) - program to add and remove modules from the Linux Kernel +modprobe.conf [] (5) - Configuration file/directory for modprobe +modprobe.d [] (5) - Configuration file/directory for modprobe +modules.dep [] (5) - List of module dependencies +moduli [] (5) - Diffie Hellman moduli +moebius [] (6) - Escher's Moebuis Strip II, with ants +moebiusgears [] (6) - draw a moebius strip of interlocking gears +mogrify [] (1) - resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Mogrify overwrites the original image file, whereas, convert(1) writes to a different image file +moire [] (6) - draw circular interference patterns +moire2 [] (6) - circular interference patterns +molecule [] (6) - draws 3D molecular structures +monop [] (6) - Monopoly game +montage [] (1) - create a composite image by combining several separate images. The images are tiled on the composite image optionall adorned with a border, frame, image name, and more +more [] (1) - file perusal filter for crt viewing +morph3d [] (6) - 3d morphing objects +morse [] (6) - reformat input as punch cards, paper tape or morse code +most [] (1) - browse or page through a text file +motd [] (5) - message of the day +mount [] (2) - mount file system +mount [] (8) - mount a file system +mount.cifs [] (8) - mount using the Common Internet File System (CIFS) +mount.nfs [] (8) - mount a Network File System +mount.nfs4 [] (8) - mount a Network File System +mountain [] (6) - random 3D plots that look vaguely mountainous +mountpoint [] (1) - see if a directory is a mountpoint +mouse [] (1) - test - a tool for determining mouse type and device it's attached to +mouse [] (4) - Xorg mouse input driver +mouse [] (4) - serial mouse interface +mouse_close [] (3) - explicitly close a mouse +mouse_getbutton [] (3) - query the mouse state +mouse_getcaps [] (3) - returns the capabilities of the mouse +mouse_getposition_6d [] (3) - provide an interface to 3d mice +mouse_getx [] (3) - query the mouse state +mouse_gety [] (3) - query the mouse state +mouse_init [] (3) - specifically initialize a mouse +mouse_init_return_fd [] (3) - specifically initialize a mouse +mouse_setdefaulteventhandler [] (3) - set a mouse event handler +mouse_seteventhandler [] (3) - set a mouse event handler +mouse_setposition [] (3) - set the current mouse position +mouse_setposition_6d [] (3) - provide an interface to 3d mice +mouse_setrange_6d [] (3) - provide an interface to 3d mice +mouse_setscale [] (3) - sets a mouse scale factor +mouse_setwrap [] (3) - set what happens at the mouse boundaries +mouse_setxrange [] (3) - define the boundaries for the mouse cursor +mouse_setyrange [] (3) - define the boundaries for the mouse cursor +mouse_trafo [] (3) - mouse interface through curses +mouse_update [] (3) - updates the mouse state +mouse_waitforupdate [] (3) - wait for an mouse update +mouseinterval [] (3) - mouse interface through curses +mousemask [] (3) - mouse interface through curses +mousetest [] (6) - tests the svgalib mouse driver +move [] (3) - move curses window cursor +move_pages [] (2) - move individual pages of a process to another node +mpartition [] (1) - partition an MSDOS hard disk +mpg321 [] (1) - Free clone of mpg123, a command - line mp3 player +mplayer [] (1) - movie player +mplist [] (3) - Create a property list object +mplist_add [] (3) - Add a property at the end of a property list +mplist_copy [] (3) - Copy a property list +mplist_deserialize [] (3) - Generate a property list by deserializing an M-text +mplist_find_by_key [] (3) - Find a property of a specific key in a property list +mplist_find_by_value [] (3) - Find a property of a specific value in a property list +mplist_get [] (3) - Get the value of a property in a property list +mplist_get_func [] (3) - Get the value (function pointer) of a property in a property list +mplist_key [] (3) - Return the key of the first property in a property list +mplist_length [] (3) - Return the length of a property list +mplist_next [] (3) - Return the next sublist of a property list +mplist_pop [] (3) - Remove a property at the beginning of a property list +mplist_push [] (3) - Add a property at the beginning of a property list +mplist_put [] (3) - Set the value of a property in a property list +mplist_put_func [] (3) - Set the value (function pointer) of a property in a property list +mplist_set [] (3) - Set the first property in a property list +mplist_value [] (3) - Return the value of the first property in a property list +mpool [] (3) - shared memory buffer pool +mprotect [] (2) - set protection on a region of memory +mpstat [] (1) - Report processors related statistics +mpx [] (2) - unimplemented system calls +mq_close [] (3) - close a message queue descriptor +mq_getattr [] (3) - get/set message queue attributes +mq_getsetattr [] (2) - get/set message queue attributes +mq_notify [] (3) - register for notification when a message is available +mq_open [] (3) - open a message queue +mq_overview [] (7) - Overview of POSIX message queues +mq_receive [] (3) - receive a message from a message queue +mq_send [] (3) - send a message to a message queue +mq_setattr [] (3) - get/set message queue attributes +mq_timedreceive [] (3) - receive a message from a message queue +mq_timedsend [] (3) - send a message to a message queue +mq_unlink [] (3) - remove a message queue +mrand48 [] (3) - generate uniformly distributed pseudo-random numbers +mrand48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +mrd [] (1) - remove an MSDOS subdirectory +mremap [] (2) - re-map a virtual memory address +mren [] (1) - rename an existing MSDOS file +mrftopbm [] (1) - see http://netpbm.sourceforge.net/doc/mrftopbm.html +mro [] (3) - Method Resolution Order +msgattrib [] (1) - attribute matching and manipulation on message catalog +msgcat [] (1) - combines several message catalogs +msgcat [] (n) - Tcl message catalog +msgcmp [] (1) - compare message catalog and template +msgcomm [] (1) - match two message catalogs +msgconv [] (1) - character set conversion for message catalog +msgctl [] (2) - message control operations +msgen [] (1) - create English message catalog +msgexec [] (1) - process translations of message catalog +msgfilter [] (1) - edit translations of message catalog +msgfmt [] (1) - compile message catalog to binary format +msgget [] (2) - get a message queue identifier +msggrep [] (1) - pattern matching on message catalog +msginit [] (1) - initialize a message catalog +msgmerge [] (1) - merge message catalog and template +msgrcv [] (2) - message operations +msgsnd [] (2) - message operations +msgunfmt [] (1) - uncompile message catalog from binary format +msguniq [] (1) - unify duplicate translations in message catalog +mshowfat [] (1) - shows FAT clusters allocated to file +msql2mysql [] (1) - convert mSQL programs for use with MySQL +msymbol [] (3) - Get a symbol +msymbol_as_managing_key [] (3) - Create a managing key +msymbol_exist [] (3) - Search for a symbol that has a specified name +msymbol_get [] (3) - Get the value of a symbol property +msymbol_get_func [] (3) - Get the value (function pointer) of a symbol property +msymbol_is_managing_key [] (3) - Check if a symbol is a managing key +msymbol_name [] (3) - Get symbol name +msymbol_put [] (3) - Set the value of a symbol property +msymbol_put_func [] (3) - Set the value (function pointer) of a symbol property +msync [] (2) - synchronize a file with a memory map +mt [] (1) - control magnetic tape drive operation +mtext [] (3) - Allocate a new M-text +mtext_attach_property [] (3) - Attach a text property to an M-text +mtext_case_compare [] (3) - Compare specified regions of two M-texts ignoring cases +mtext_casecmp [] (3) - Compare two M-texts ignoring cases +mtext_cat [] (3) - Append an M-text to another +mtext_cat_char [] (3) - Append a character to an M-text +mtext_character [] (3) - Search a character in an M-text +mtext_chr [] (3) - Return the position of the first occurrence of a character in an M-text +mtext_cmp [] (3) - Compare two M-texts character-by-character +mtext_coll [] (3) - Compare two M-texts using the current locale +mtext_compare [] (3) - Compare specified regions of two M-texts +mtext_copy [] (3) - Copy characters in the specified range into an M-text +mtext_cpy [] (3) - Copy an M-text to another +mtext_cspn [] (3) - Search an M-text for the complement of a set of characters +mtext_data [] (3) - Get information about the text data in M-text +mtext_del [] (3) - Delete characters in the specified range destructively +mtext_deserialize [] (3) - Deserialize text properties in an M-text +mtext_detach_property [] (3) - Detach a text property from an M-text +mtext_dup [] (3) - Create a copy of an M-text +mtext_duplicate [] (3) - Create a new M-text from a part of an existing M-text +mtext_from_data [] (3) - Allocate a new M-text with specified data +mtext_ftime [] (3) - Format date and time +mtext_get_prop [] (3) - Get the value of the topmost text property +mtext_get_prop_keys [] (3) - Get a list of text property keys at a position of an M-text +mtext_get_prop_values [] (3) - Get multiple values of a text property +mtext_get_properties [] (3) - Get multiple text properties +mtext_get_property [] (3) - Get the topmost text property +mtext_getenv [] (3) - Get an environment variable +mtext_ins [] (3) - Insert an M-text into another M-text +mtext_ins_char [] (3) - Insert a character into an M-text +mtext_insert [] (3) - Insert sub-text of an M-text into another M-text +mtext_len [] (3) - Number of characters in M-text +mtext_line_break [] (3) - Find a linebreak postion of an M-text +mtext_lowercase [] (3) - Lowercase an M-text +mtext_ncasecmp [] (3) - Compare initial parts of two M-texts ignoring cases +mtext_ncat [] (3) - Append a part of an M-text to another +mtext_ncmp [] (3) - Compare initial parts of two M-texts character-by-character +mtext_ncpy [] (3) - Copy the first some characters in an M-text to another +mtext_pbrk [] (3) - Search an M-text for any of a set of characters +mtext_pop_prop [] (3) - Pop a text property +mtext_prop_range [] (3) - Find the range where the value of a text property is the same +mtext_property [] (3) - Create a text property +mtext_property_end [] (3) - Return the end position of a text property +mtext_property_key [] (3) - Return the key of a text property +mtext_property_mtext [] (3) - Return the M-text of a text property +mtext_property_start [] (3) - Return the start position of a text property +mtext_property_value [] (3) - Return the value of a text property +mtext_push_prop [] (3) - Push a text property +mtext_push_property [] (3) - Push a text property onto an M-text +mtext_put_prop [] (3) - Set a text property +mtext_put_prop_values [] (3) - Set multiple text properties with the same key +mtext_putenv [] (3) - Change or add an environment variable +mtext_rchr [] (3) - Return the position of the last occurrence of a character in an M-text +mtext_ref_char [] (3) - Return the character at the specified position in an M-text +mtext_replace [] (3) - Replace sub-text of M-text with another +mtext_search [] (3) - Locate an M-text in a specific range of another +mtext_serialize [] (3) - Serialize text properties in an M-text +mtext_set_char [] (3) - Store a character into an M-text +mtext_spn [] (3) - Search an M-text for a set of characters +mtext_text [] (3) - Locate an M-text in another +mtext_titlecase [] (3) - Titlecase an M-text +mtext_tok [] (3) - Look for a token in an M-text +mtext_uppercase [] (3) - Uppercase an M-text +mtools [] (1) - utilities to access DOS disks in Unix +mtools.conf [] (5) - mtools configuration files +mtoolstest [] (1) - tests and displays the configuration +mtr [] (8) - a network diagnostic tool +mtrace [] (3) - malloc debugging +mtree [] (5) - format of mtree dir hierarchy files +mtvtoppm [] (1) - convert output from the MTV or PRT ray tracers into a portable pixmap +mtx [] (1) - control SCSI media changer devices +mtype [] (1) - display contents of an MSDOS file +multiplexer [] (3) - Splits mode requests into calls to different handlers +multixterm [] (1) - drive multiple xterms separately or together +munch [] (6) - munching squares +munchlist [] (1) - Interactive spelling checking +munlock [] (2) - lock and unlock memory +munlockall [] (2) - lock and unlock memory +munmap [] (2) - map or unmap files or devices into memory +muntrace [] (3) - malloc debugging +mutouch [] (4) - Microtouch input driver +mutt [] (1) - The Mutt Mail User Agent +mutt_dotlock [] (1) - Lock mail spool files +muttrc [] (5) - Configuration file for the Mutt Mail User Agent +mv [] (1) - move (rename) files +mvadd_wch [] (3) - add a complex character and rendition to a curses window, then advance the cursor +mvadd_wchnstr [] (3) - add an array of complex characters (and attributes) to a curses window +mvadd_wchstr [] (3) - add an array of complex characters (and attributes) to a curses window +mvaddch [] (3) - add a character (with attributes) to a curses window, then advance the cursor +mvaddchnstr [] (3) - add a string of characters (and attributes) to a curses window +mvaddchstr [] (3) - add a string of characters (and attributes) to a curses window +mvaddnstr [] (3) - add a string of characters to a curses window and advance cursor +mvaddnwstr [] (3) - add a string of wide characters to a curses window and advance cursor +mvaddstr [] (3) - add a string of characters to a curses window and advance cursor +mvaddwstr [] (3) - add a string of wide characters to a curses window and advance cursor +mvchgat [] (3) - curses character and window attribute control routines +mvcur [] (3) - curses interfaces to terminfo database +mvdelch [] (3) - delete character under the cursor in a curses window +mvderwin [] (3) - create curses windows +mvget_wch [] (3) - get (or push back) a wide character from curses terminal keyboard +mvget_wstr [] (3) - get an array of wide characters from a curses terminal keyboard +mvgetch [] (3) - get (or push back) characters from curses terminal keyboard +mvgetn_wstr [] (3) - get an array of wide characters from a curses terminal keyboard +mvgetnstr [] (3) - accept character strings from curses terminal keyboard +mvgetstr [] (3) - accept character strings from curses terminal keyboard +mvhline [] (3) - create curses borders, horizontal and vertical lines +mvhline_set [] (3) - create curses borders or lines using complex characters and renditions +mvin_wch [] (3) - extract a complex character and rendition from a window +mvin_wchnstr [] (3) - get an array of complex characters and renditions from a curses window +mvin_wchstr [] (3) - get an array of complex characters and renditions from a curses window +mvinch [] (3) - get a character and attributes from a curses window +mvinchnstr [] (3) - get a string of characters (and attributes) from a curses window +mvinchstr [] (3) - get a string of characters (and attributes) from a curses window +mvinnstr [] (3) - get a string of characters from a curses window +mvinnwstr [] (3) - get a string of wchar_t characters from a curses window +mvins_nwstr [] (3) - insert a wide-character string into a curses window +mvins_wch [] (3) - insert a complex character and rendition into a window +mvins_wstr [] (3) - insert a wide-character string into a curses window +mvinsch [] (3) - insert a character before cursor in a curses window +mvinsnstr [] (3) - insert string before cursor in a curses window +mvinsstr [] (3) - insert string before cursor in a curses window +mvinstr [] (3) - get a string of characters from a curses window +mvinwstr [] (3) - get a string of wchar_t characters from a curses window +mvprintw [] (3) - print formatted output in curses windows +mvscanw [] (3) - convert formatted input from a curses window +mvvline [] (3) - create curses borders, horizontal and vertical lines +mvvline_set [] (3) - create curses borders or lines using complex characters and renditions +mvwadd_wch [] (3) - add a complex character and rendition to a curses window, then advance the cursor +mvwadd_wchnstr [] (3) - add an array of complex characters (and attributes) to a curses window +mvwadd_wchstr [] (3) - add an array of complex characters (and attributes) to a curses window +mvwaddch [] (3) - add a character (with attributes) to a curses window, then advance the cursor +mvwaddchnstr [] (3) - add a string of characters (and attributes) to a curses window +mvwaddchstr [] (3) - add a string of characters (and attributes) to a curses window +mvwaddnstr [] (3) - add a string of characters to a curses window and advance cursor +mvwaddnwstr [] (3) - add a string of wide characters to a curses window and advance cursor +mvwaddstr [] (3) - add a string of characters to a curses window and advance cursor +mvwaddwstr [] (3) - add a string of wide characters to a curses window and advance cursor +mvwchgat [] (3) - curses character and window attribute control routines +mvwdelch [] (3) - delete character under the cursor in a curses window +mvwget_wch [] (3) - get (or push back) a wide character from curses terminal keyboard +mvwget_wstr [] (3) - get an array of wide characters from a curses terminal keyboard +mvwgetch [] (3) - get (or push back) characters from curses terminal keyboard +mvwgetn_wstr [] (3) - get an array of wide characters from a curses terminal keyboard +mvwgetnstr [] (3) - accept character strings from curses terminal keyboard +mvwgetstr [] (3) - accept character strings from curses terminal keyboard +mvwhline [] (3) - create curses borders, horizontal and vertical lines +mvwhline_set [] (3) - create curses borders or lines using complex characters and renditions +mvwin [] (3) - create curses windows +mvwin_wch [] (3) - extract a complex character and rendition from a window +mvwin_wchnstr [] (3) - get an array of complex characters and renditions from a curses window +mvwin_wchstr [] (3) - get an array of complex characters and renditions from a curses window +mvwinch [] (3) - get a character and attributes from a curses window +mvwinchnstr [] (3) - get a string of characters (and attributes) from a curses window +mvwinchstr [] (3) - get a string of characters (and attributes) from a curses window +mvwinnstr [] (3) - get a string of characters from a curses window +mvwinnwstr [] (3) - get a string of wchar_t characters from a curses window +mvwins_nwstr [] (3) - insert a wide-character string into a curses window +mvwins_wch [] (3) - insert a complex character and rendition into a window +mvwins_wstr [] (3) - insert a wide-character string into a curses window +mvwinsch [] (3) - insert a character before cursor in a curses window +mvwinsnstr [] (3) - insert string before cursor in a curses window +mvwinsstr [] (3) - insert string before cursor in a curses window +mvwinstr [] (3) - get a string of characters from a curses window +mvwinwstr [] (3) - get a string of wchar_t characters from a curses window +mvwprintw [] (3) - print formatted output in curses windows +mvwscanw [] (3) - convert formatted input from a curses window +mvwvline [] (3) - create curses borders, horizontal and vertical lines +mvwvline_set [] (3) - create curses borders or lines using complex characters and renditions +mwm [] (1) - The M*tif Window Manager +mwmrc [] (5) - The M*tif Window Manager configuration file +my_print_defaults [] (1) - display options from option files +myisam_ftdump [] (1) - display full-text index information +myisamchk [] (1) - MyISAM table-maintenance utility +myisamlog [] (1) - display MyISAM log file contents +myisampack [] (1) - generate compressed, read-only MyISAM tables +mysql [] (1) - stress-test.pl - server stress test program +mysql [] (1) - test-run.pl - run MySQL test suite +mysql [] (1) - the MySQL command-line tool +mysql.server [] (1) - MySQL server startup script +mysql_client_test [] (1) - test client API +mysql_client_test_embedded [] (1) - test client API for embedded server +mysql_config [] (1) - get compile options for compiling clients +mysql_convert_table_format [] (1) - convert tables to use a given storage engine +mysql_explain_log [] (1) - use EXPLAIN on statements in query log +mysql_find_rows [] (1) - extract SQL statements from files +mysql_fix_extensions [] (1) - normalize table file name extensions +mysql_fix_privilege_tables [] (1) - upgrade MySQL system tables +mysql_install_db [] (1) - initialize MySQL data directory +mysql_secure_installation [] (1) - improve MySQL installation security +mysql_setpermission [] (1) - interactively set permissions in grant tables +mysql_tableinfo [] (1) - generate database metadata +mysql_tzinfo_to_sql [] (1) - load the time zone tables +mysql_upgrade [] (1) - check tables for MySQL upgrade +mysql_waitpid [] (1) - kill process and wait for its termination +mysql_zap [] (1) - kill processes that match a pattern +mysqlaccess [] (1) - client for checking access privileges +mysqladmin [] (1) - client for administering a MySQL server +mysqlbinlog [] (1) - utility for processing binary log files +mysqlbug [] (1) - generate bug report +mysqlcheck [] (1) - a table maintenance and repair program +mysqld [] (8) - the MySQL server +mysqld_multi [] (1) - manage multiple MySQL servers +mysqld_safe [] (1) - MySQL server startup script +mysqldump [] (1) - a database backup program +mysqldumpslow [] (1) - Summarize slow query log files +mysqlhotcopy [] (1) - a database backup program +mysqlimport [] (1) - a data import program +mysqlman [] (1) - default man page for mysql +mysqlmanager [] (8) - the MySQL Instance Manager +mysqlshow [] (1) - display database, table, and column information +mysqltest [] (1) - program to run test cases +mysqltest_embedded [] (1) - program to run embedded test cases +mzip [] (1) - change protection mode and eject disk on Zip/Jaz drive +named [] (8) - Internet domain name server +named [] (8) - checkconf - named configuration file syntax checking tool +named [] (8) - checkzone, named-compilezone - zone file validity checking or converting tool +named.conf [] (5) - configuration file for named +namei [] (1) - follow a pathname until a terminal point is found +nameif [] (8) - name network interfaces based on MAC addresses +namespace [] (n) - create and manipulate contexts for commands and variables +nan [] (3) - return 'Not a Number' +nanf [] (3) - return 'Not a Number' +nanl [] (3) - return 'Not a Number' +nano [] (1) - Nano's ANOther editor, an enhanced free Pico clone +nanorc [] (5) - GNU nano's rcfile +nanosleep [] (2) - high-resolution sleep +napms [] (3) - low-level curses routines +nasm [] (1) - the Netwide Assembler, a portable 80x86 assembler +nbp [] (1) - access NBP database +nbp_name [] (3) - NBP name parsing +nbplkup [] (1) - access NBP database +nbprgstr [] (1) - access NBP database +nbpunrgstr [] (1) - access NBP database +nc [] (1) - TCP/IP swiss army knife +ncat [] (1) - Concatenate and redirect sockets +ncftp [] (1) - Browser program for the File Transfer Protocol +ncftpbatch [] (1) - Individual batch FTP job processor +ncftpget [] (1) - Internet file transfer program for scripts +ncftpls [] (1) - Internet file transfer program for scripts +ncftpput [] (1) - Internet file transfer program for scripts +ncftpspooler [] (1) - Global batch FTP job processor daemon +ncurses [] (3) - CRT screen handling and optimization package +ndiff [] (1) - Utility to compare the results of Nmap scans +ndisasm [] (1) - the Netwide Disassembler, an 80x86 binary file disassembler +ne_add_request_header [] (3) - add headers to a request +ne_addr_destroy [] (3) - functions to resolve hostnames to addresses +ne_addr_error [] (3) - functions to resolve hostnames to addresses +ne_addr_first [] (3) - functions to resolve hostnames to addresses +ne_addr_next [] (3) - functions to resolve hostnames to addresses +ne_addr_resolve [] (3) - functions to resolve hostnames to addresses +ne_addr_result [] (3) - functions to resolve hostnames to addresses +ne_buffer [] (3) - string buffer handling +ne_buffer_altered [] (3) - general purpose of group of functions +ne_buffer_append [] (3) - append data to a string buffer +ne_buffer_clear [] (3) - general purpose of group of functions +ne_buffer_concat [] (3) - append data to a string buffer +ne_buffer_create [] (3) - general purpose of group of functions +ne_buffer_destroy [] (3) - destroy a buffer object +ne_buffer_finish [] (3) - destroy a buffer object +ne_buffer_grow [] (3) - general purpose of group of functions +ne_buffer_ncreate [] (3) - general purpose of group of functions +ne_buffer_zappend [] (3) - append data to a string buffer +ne_calloc [] (3) - memory allocation wrappers +ne_close_connection [] (3) - set up HTTP sessions +ne_forget_auth [] (3) - register authentication callbacks +ne_get_error [] (3) - error handling for HTTP sessions +ne_get_request_flag [] (3) - set and retrieve per-request flags +ne_get_response_header [] (3) - functions to access response headers +ne_get_scheme [] (3) - common properties for HTTP sessions +ne_get_server_hostport [] (3) - common properties for HTTP sessions +ne_get_session_flag [] (3) - set and retrieve session flags +ne_get_status [] (3) - retrieve HTTP response status for request +ne_has_support [] (3) - determine feature support status +ne_i18n_init [] (3) - functions to initialize internationalization support +ne_iaddr_cmp [] (3) - functions to manipulate and compare network addresses +ne_iaddr_free [] (3) - functions to manipulate and compare network addresses +ne_iaddr_make [] (3) - functions to manipulate and compare network addresses +ne_iaddr_print [] (3) - functions to manipulate and compare network addresses +ne_iaddr_typeof [] (3) - functions to manipulate and compare network addresses +ne_malloc [] (3) - memory allocation wrappers +ne_oom_callback [] (3) - memory allocation wrappers +ne_print_request_header [] (3) - add headers to a request +ne_qtoken [] (3) - string tokenizers +ne_realloc [] (3) - memory allocation wrappers +ne_request_create [] (3) - low-level HTTP request handling +ne_request_destroy [] (3) - low-level HTTP request handling +ne_request_dispatch [] (3) - low-level HTTP request handling +ne_response_header_iterate [] (3) - functions to access response headers +ne_session_create [] (3) - set up HTTP sessions +ne_session_destroy [] (3) - set up HTTP sessions +ne_session_proxy [] (3) - set up HTTP sessions +ne_set_connect_timeout [] (3) - common properties for HTTP sessions +ne_set_error [] (3) - error handling for HTTP sessions +ne_set_proxy_auth [] (3) - register authentication callbacks +ne_set_read_timeout [] (3) - common properties for HTTP sessions +ne_set_request_body_buffer [] (3) - include a message body with a request +ne_set_request_body_fd [] (3) - include a message body with a request +ne_set_request_body_fd64 [] (3) - include a message body with a request +ne_set_request_flag [] (3) - set and retrieve per-request flags +ne_set_server_auth [] (3) - register authentication callbacks +ne_set_session_flag [] (3) - set and retrieve session flags +ne_set_useragent [] (3) - common properties for HTTP sessions +ne_shave [] (3) - trim whitespace from a string +ne_sock_exit [] (3) - perform library initialization +ne_sock_init [] (3) - perform library initialization +ne_ssl_cert_cmp [] (3) - functions to operate on certificate objects +ne_ssl_cert_export [] (3) - functions to read or write certificates to and from files or strings +ne_ssl_cert_free [] (3) - functions to operate on certificate objects +ne_ssl_cert_identity [] (3) - functions to access certificate properties +ne_ssl_cert_import [] (3) - functions to read or write certificates to and from files or strings +ne_ssl_cert_issuer [] (3) - functions to access certificate properties +ne_ssl_cert_read [] (3) - functions to read or write certificates to and from files or strings +ne_ssl_cert_signedby [] (3) - functions to access certificate properties +ne_ssl_cert_subject [] (3) - functions to access certificate properties +ne_ssl_cert_write [] (3) - functions to read or write certificates to and from files or strings +ne_ssl_clicert_decrypt [] (3) - SSL client certificate handling +ne_ssl_clicert_encrypted [] (3) - SSL client certificate handling +ne_ssl_clicert_free [] (3) - SSL client certificate handling +ne_ssl_clicert_name [] (3) - SSL client certificate handling +ne_ssl_clicert_owner [] (3) - SSL client certificate handling +ne_ssl_clicert_read [] (3) - SSL client certificate handling +ne_ssl_dname_cmp [] (3) - SSL distinguished name handling +ne_ssl_readable_dname [] (3) - SSL distinguished name handling +ne_ssl_set_verify [] (3) - register an SSL certificate verification callback +ne_ssl_trust_cert [] (3) - functions to indicate that certificates are trusted +ne_ssl_trust_default_ca [] (3) - functions to indicate that certificates are trusted +ne_status [] (3) - HTTP status structure +ne_strdup [] (3) - memory allocation wrappers +ne_strndup [] (3) - memory allocation wrappers +ne_token [] (3) - string tokenizers +ne_version_match [] (3) - library versioning +ne_version_string [] (3) - library versioning +ne_xml_create [] (3) - create and destroy an XML parser +ne_xml_destroy [] (3) - create and destroy an XML parser +nearbyint [] (3) - round to nearest integer +nearbyintf [] (3) - round to nearest integer +nearbyintl [] (3) - round to nearest integer +neomagic [] (4) - Neomagic video driver +neon [] (1) - config - script providing information about installed copy of neon library +neon [] (3) - HTTP and WebDAV client library +neotoppm [] (1) - convert an Atari Neochrome .neo into a PPM image +neqn [] (1) - format equations for ascii output +nerverot [] (6) - induces edginess in the viewer +net [] (1) - snmp-config - returns information about installed net-snmp libraries and binaries +net [] (8) - Tool for administration of Samba and remote CIFS servers +netatalk [] (1) - config - script to get information about the installed version of netatalk +netatalk.conf [] (5) - Configuration file used by netatalk(8) to determine its general configuration +netdate [] (8) - set date and time by ARPA Internet RFC 868 +netdevice [] (7) - Low level access to Linux network devices +netgroup [] (5) - specify network groups +netlink [] (3) - Netlink macros +netlink [] (7) - Communication between kernel and userspace (AF_NETLINK) +netpbm [] (1) - package of graphics manipulation programs and libraries +netrc [] (5) - user configuration for ftp +netstat [] (8) - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships +networks [] (5) - network name information +newalias [] (1) - install new elm aliases for user and/or system +newaliases [] (1) - rebuild the data base for the mail aliases file +newgrp [] (1) - log in to a new group +newmail [] (1) - programs to asynchronously notify of new mail +newpad [] (3) - create and display curses pads +newport [] (4) - Newport video driver +newsetup [] (1) - a program to set up a .newsrc file +newsgroups [] (1) - a program to list unsubscribed newsgroups +newspost [] (1) - a usenet binary autoposter +newterm [] (3) - curses screen initialization and manipulation routines +newusers [] (8) - update and create new users in batch +newwin [] (3) - create curses windows +nextafter [] (3) - floating - point number manipulation +nextafterf [] (3) - floating - point number manipulation +nextafterl [] (3) - floating - point number manipulation +nexttoward [] (3) - floating - point number manipulation +nexttowardf [] (3) - floating - point number manipulation +nexttowardl [] (3) - floating - point number manipulation +nfrm [] (1) - list from and subject of selected messages in mailbox or folder +nfs [] (5) - fstab format and options for the nfs and nfs4 file systems +nfsd [] (7) - special filesystem for controlling Linux NFS server +nfsservctl [] (2) - syscall interface to kernel nfs daemon +nfsstat [] (8) - list NFS statistics +nftw [] (3) - file tree walk +ngettext [] (1) - translate message and choose plural form +ngettext [] (3) - translate message and choose plural form +nice [] (1) - run a program with modified scheduling priority +nice [] (2) - change process priority +nisdomainname [] (1) - show or set system's NIS/YP domain name +nisdomainname [] (8) - set or display name of current NIS(YP) domain +nl [] (1) - number lines of files +nl [] (3) - curses output options +nl_langinfo [] (3) - query language and locale information +nlmconv [] (1) - converts object code into an NLM +nm [] (1) - list symbols from object files +nmap [] (1) - Network exploration tool and security / port scanner +nmbd [] (8) - NetBIOS name server to provide NetBIOS over IP naming services to clients +nmblookup [] (1) - NetBIOS over TCP/IP client used to lookup NetBIOS names +nn [] (1) - efficient net news interface (No News is good news) +nnacct [] (1) - news accounting and access authorization (nn) +nnadmin [] (1) - nn database administration +nncheck [] (1) - check for unread articles +nngoback [] (1) - make news articles unread on a day-by-day basis (nn) +nngrab [] (1) - news retrieval by keyword (nn) +nngrep [] (1) - grep for news group names (nn) +nnmaster [] (8) - nn database manager +nnpost [] (1) - post news articles (nn) +nnspew [] (8) - subject database manager (nn) +nnstats [] (1) - display nnmaster collection and expire statistics +nntidy [] (1) - tidy your personal .newsrc file +nnusage [] (1) - display nn usage statistics +nnview [] (1) - invokes nn on a folder +nocbreak [] (3) - curses input options +nodelay [] (3) - curses input options +nodename [] (1) - show or set the system's DECnet node name +noecho [] (3) - curses input options +nofilter [] (3) - miscellaneous curses utility routines +nohup [] (1) - run a command immune to hangups, with output to a non-tty +nologin [] (5) - prevent non-root users from logging into the system +none [] (3) - undocumented library functions +nonl [] (3) - curses output options +noof [] (6) - draw rotatey patterns +noqiflush [] (3) - curses input options +noraw [] (3) - curses input options +normalize [] (1) - adjusts volume levels of audio files +normalize [] (1) - mp3 - adjust levels of mp3 or ogg files by running normalize(1), then re - encoding +noseguy [] (6) - a little guy with a big nose wanders around being witty +notimeout [] (3) - curses input options +nrand48 [] (3) - generate uniformly distributed pseudo-random numbers +nrand48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +nroff [] (1) - emulate nroff command with groff +nseq [] (1) - create or examine a netscape certificate sequence +nslookup [] (1) - query Internet name servers interactively +nsswitch.conf [] (5) - System Databases and Name Service Switch configuration file +nstat [] (8) - network statistics tools +nsupdate [] (1) - Dynamic DNS update utility +ntfs [] (8) - 3g - Third Generation Read/Write NTFS Driver +ntfs [] (8) - 3g.probe - Probe an NTFS volume mountability +ntfscat [] (8) - print NTFS files and streams on the standard output +ntfsclone [] (8) - Efficiently clone, image, restore or rescue an NTFS +ntfscluster [] (8) - identify files in a specified region of an NTFS volume +ntfscmp [] (8) - compare two NTFS filesystems and tell the differences +ntfscp [] (8) - copy file to an NTFS volume +ntfsfix [] (8) - fix common errors and force Windows to check NTFS +ntfsinfo [] (8) - dump a file's attributes +ntfslabel [] (8) - display/change the label on an ntfs file system +ntfsls [] (8) - list directory contents on an NTFS filesystem +ntfsmount [] (8) - Read/Write userspace NTFS driver +ntfsprogs [] (8) - tools for doing neat things with NTFS +ntfsresize [] (8) - resize an NTFS filesystem without data loss +ntfsundelete [] (8) - recover a deleted file from an NTFS volume +ntlm_auth [] (1) - tool to allow external access to Winbind's NTLM authentication function +ntohl [] (3) - convert values between host and network byte order +ntohs [] (3) - convert values between host and network byte order +ntp [] (1) - keygen - Create a NTP host key +ntpd [] (1) - NTP daemon program +ntpdc [] (1) - vendor-specific NTP query program +ntpdsim [] (1) - NTP daemon simulation program +ntpq [] (1) - standard NTP query program +null [] (4) - data sink +numa [] (7) - overview of Non-Uniform Memory Architecture +number [] (6) - convert Arabic numerals to English +nv [] (4) - NVIDIA video driver +obexftp [] (1) - Mobile Equipment file transfer tool +obexftpd [] (1) - Mobile Equipment file transfer server +objcopy [] (1) - copy and translate object files +objdump [] (1) - display information from object files +oclock [] (1) - round X clock +ocsp [] (1) - Online Certificate Status Protocol utility +od [] (1) - dump files in octal and other formats +offsetof [] (3) - offset of a structure member +ogg123 [] (1) - plays Ogg Vorbis files +oggdec [] (1) - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW) +oggenc [] (1) - encode audio into the Ogg Vorbis format +ogginfo [] (1) - gives information about Ogg files, and does extensive validity checking +ogonkify [] (1) - international support for PostScript +old_api [] (3) - Calls mib module code written in the old style of code +omshell [] (1) - OMAPI Command Shell +omshell [] (3) - OMAPI Command Shell +on_ac_power [] (1) - test whether the computer is running on line power +on_exit [] (3) - register a function to be called at normal process termination +onsgmls [] (1) - An SGML/XML parser and validator +opannotate [] (1) - produce source or assembly annotated with profile data +oparchive [] (1) - produce archive of oprofile data for offline analysis +opcontrol [] (1) - control OProfile profiling +open [] (2) - open and possibly create a file or device +open [] (3) - perl pragma to set default PerlIO layers for input and output +open [] (n) - Open a file-based or command pipeline channel +open2 [] (3) - open a process for both reading and writing +open3 [] (3) - open a process for reading, writing, and error handling +open_by_handle [] (3) - file handle operations +open_memstream [] (3) - open memory as stream +open_wmemstream [] (3) - open memory as stream +openat [] (2) - open a file relative to a directory file descriptor +openchrome [] (4) - video driver for VIA Unichromes +opendir [] (3) - open a directory +openjade [] (1) - apply a DSSSL stylesheet to an SGML or XML document +openlog [] (3) - send messages to the system logger +openpty [] (3) - tty utility functions +openssl [] (1) - OpenSSL command line tool +openvpn [] (8) - secure IP tunnel daemon +openvt [] (1) - start a program on a new virtual terminal (VT) +opgprof [] (1) - produce gprof-format profile data +ophelp [] (1) - list OProfile events +opimport [] (1) - converts sample database files +opml2snow [] (1) - snownews OPML subsription file import/export utility +opreport [] (1) - produce symbol or binary image summaries +oprofile [] (1) - a system-wide profiler +ops [] (3) - Perl pragma to restrict unsafe operations when compiling +optarg [] (3) - Parse command-line options +opterr [] (3) - Parse command-line options +optind [] (3) - Parse command-line options +option [] (n) - Add/retrieve window options to/from the option database +options [] (n) - Standard options supported by widgets +optopt [] (3) - Parse command-line options +orage (1) - Calendar for the Xfce Desktop Environment +orage [] (1) - Calendar for the Xfce Desktop Environment +osgmlnorm [] (1) - An SGML/XML document normalizer +ospam [] (1) - An SGML/XML markup stream editor +ospcat [] (1) - SGML print catalog +ospent [] (1) - Concatenates entities in an SGML/XML document +osx [] (1) - An SGML to XML converter +outb [] (2) - port I/O +outb_p [] (2) - port I/O +outl [] (2) - port I/O +outl_p [] (2) - port I/O +outsb [] (2) - port I/O +outsl [] (2) - port I/O +outsw [] (2) - port I/O +outw [] (2) - port I/O +outw_p [] (2) - port I/O +overlay [] (3) - overlay and manipulate overlapped curses windows +overload [] (3) - Package for overloading Perl operations +overwrite [] (3) - overlay and manipulate overlapped curses windows +ownership [] (8) - Compaq ownership tag retriever +p2c [] (1) - Pascal to C translator, version 1.21alpha-07.Dec.93 +p2cc [] (1) - Pascal compiler using p2c +pack [] (n) - Geometry manager that packs around edges of cavity +pack [] (n) - old - Obsolete syntax for packer geometry manager +package [] (n) - Facilities for package loading and version control +packet [] (7) - packet interface on device level +pacman [] (6) - simulates a game of Pac-Man on a randomly-created level +pair_content [] (3) - curses color manipulation routines +pal2rgb [] (1) - convert a palette color TIFF image to a full color image +palmtopnm [] (1) - convert a Palm pixmap into a portable anymap +pam [] (5) - portable arbitrary map file format +pam_winbind [] (7) - PAM module for Winbind +pamaddnoise [] (1) - see http://netpbm.sourceforge.net/doc/pamaddnoise.html +pamarith [] (1) - see http://netpbm.sourceforge.net/doc/pamarith.html +pambayer [] (1) - see http://netpbm.sourceforge.net/doc/pambayer.html +pamchannel [] (1) - extract channels from a PAM image +pamcomp [] (1) - see http://netpbm.sourceforge.net/doc/pamcomp.html +pamcut [] (1) - cut a rectangle out of a PAM, PBM, PGM, or PPM image +pamdeinterlace [] (1) - remove ever other row from a PAM/PNM image +pamdepth [] (1) - see http://netpbm.sourceforge.net/doc/pamdepth.html +pamdice [] (1) - slice a Netpbm image into many horizontally and/or vertically +pamditherbw [] (1) - see http://netpbm.sourceforge.net/doc/pamditherbw.html +pamedge [] (1) - see http://netpbm.sourceforge.net/doc/pamedge.html +pamendian [] (1) - see http://netpbm.sourceforge.net/doc/pamendian.html +pamenlarge [] (1) - see http://netpbm.sourceforge.net/doc/pamenlarge.html +pamfile [] (1) - describe a Netpbm (PAM or PNM) file +pamflip [] (1) - see http://netpbm.sourceforge.net/doc/pamflip.html +pamfunc [] (1) - see http://netpbm.sourceforge.net/doc/pamfunc.html +pamgauss [] (1) - see http://netpbm.sourceforge.net/doc/pamgauss.html +pamgradient [] (1) - see http://netpbm.sourceforge.net/doc/pamgradient.html +pamlookup [] (1) - see http://netpbm.sourceforge.net/doc/pamlookup.html +pammasksharpen [] (1) - see http://netpbm.sourceforge.net/doc/pammasksharpen.html +pammixinterlace [] (1) - see http://netpbm.sourceforge.net/doc/pammixinterlace.html +pamoil [] (1) - turn a PAM image into an oil painting +pamperspective [] (1) - see http://netpbm.sourceforge.net/doc/pamperspective.html +pampick [] (1) - see http://netpbm.sourceforge.net/doc/pampick.html +pampop9 [] (1) - see http://netpbm.sourceforge.net/doc/pampop9.html +pamrgbatopng [] (1) - see http://netpbm.sourceforge.net/doc/pamrgbatopng.html +pamscale [] (1) - see http://netpbm.sourceforge.net/doc/pamscale.html +pamseq [] (1) - see http://netpbm.sourceforge.net/doc/pamseq.html +pamsharpmap [] (1) - see http://netpbm.sourceforge.net/doc/pamsharpmap.html +pamsharpness [] (1) - see http://netpbm.sourceforge.net/doc/pamsharpness.html +pamslice [] (1) - see http://netpbm.sourceforge.net/doc/pamslice.html +pamsplit [] (1) - see http://netpbm.sourceforge.net/doc/pamsplit.html +pamstack [] (1) - see http://netpbm.sourceforge.net/doc/pamstack.html +pamstereogram [] (1) - see http://netpbm.sourceforge.net/doc/pamstereogram.html +pamstretch [] (1) - gen - use pamstretch and pnmscale to scale by non-integer values +pamstretch [] (1) - scale up a PNM or PAM image by interpolating between pixels +pamsumm [] (1) - see http://netpbm.sourceforge.net/doc/pamsumm.html +pamsummcol [] (1) - see http://netpbm.sourceforge.net/doc/pamsummcol.html +pamthreshold [] (1) - see http://netpbm.sourceforge.net/doc/pamthreshold.html +pamtilt [] (1) - see http://netpbm.sourceforge.net/doc/pamtilt.html +pamtodjvurle [] (1) - see http://netpbm.sourceforge.net/doc/pamtodjvurle.html +pamtofits [] (1) - see http://netpbm.sourceforge.net/doc/pamtofits.html +pamtohdiff [] (1) - see http://netpbm.sourceforge.net/doc/pamtohdiff.html +pamtohtmltbl [] (1) - see http://netpbm.sourceforge.net/doc/pamtohtmltbl.html +pamtojpeg2k [] (1) - see http://netpbm.sourceforge.net/doc/pamtojpeg2k.html +pamtopfm [] (1) - see http://netpbm.sourceforge.net/doc/pamtopfm.html +pamtopnm [] (1) - convert PAM image to PBM, PGM, or PPM +pamtosvg [] (1) - see http://netpbm.sourceforge.net/doc/pamtosvg.html +pamtotga [] (1) - see http://netpbm.sourceforge.net/doc/pamtotga.html +pamtotiff [] (1) - see http://netpbm.sourceforge.net/doc/pamtotiff.html +pamtouil [] (1) - see http://netpbm.sourceforge.net/doc/pamtouil.html +pamtoxvmini [] (1) - see http://netpbm.sourceforge.net/doc/pamtoxvmini.html +pamx [] (1) - see http://netpbm.sourceforge.net/doc/pamx.html +pand [] (1) - BlueZ Bluetooth PAN daemon +panedwindow [] (n) - Create and manipulate panedwindow widgets +panel [] (3) - panel stack extension for curses +pango [] (1) - querymodules - Module registration utility +pap [] (1) - client interface to remote printers using Printer Access Protocol +papd [] (8) - AppleTalk print server daemon +papd.conf [] (5) - Configuration file used by papd(8) to determine the configuration of printers used by the Netatalk printing daemon +papstatus [] (8) - get the status of an AppleTalk-connected printer +parport [] (3) - representation of a parallel port +parport_list [] (3) - a collection of parallel ports +parray [] (n) - standard library of Tcl procedures +partprobe [] (8) - inform the OS of partition table changes +passmass [] (1) - change password on multiple machines +passwd [] (1) - change user password +passwd [] (1) - compute password hashes +passwd [] (5) - The password file +passwd2des [] (3) - RFS password encryption +paste [] (1) - merge lines of files +patch [] (1) - apply a diff file to an original +patch [] (1) - metamail - Install a patch to the latest metamail release +path_id [] (8) - udev callout to create a device path based unique name for a device to implement the Linux Persistent Device Naming scheme +path_to_fshandle [] (3) - file handle operations +path_to_handle [] (3) - file handle operations +pathchk [] (1) - check whether file names are valid or portable +pathconf [] (3) - get configuration values for files +pause [] (2) - wait for signal +pbm [] (5) - portable bitmap file format +pbmclean [] (1) - flip isolated pixels in portable bitmap +pbmfilters [] (1) - list of all programs in the PBMPlus package +pbmlife [] (1) - apply Conway's rules of Life to a portable bitmap +pbmmake [] (1) - create a blank bitmap of a specified size +pbmmask [] (1) - create a mask bitmap from a regular bitmap +pbmpage [] (1) - create a one page test pattern for printing +pbmpscale [] (1) - enlarge a portable bitmap with edge smoothing +pbmreduce [] (1) - read a portable bitmap and reduce it N times +pbmtext [] (1) - render text into a bitmap +pbmtextps [] (1) - see http://netpbm.sourceforge.net/doc/pbmtextps.html +pbmto10x [] (1) - convert a portable bitmap into Gemini 10X printer graphics +pbmto4425 [] (1) - Display PBM images on an AT&T 4425 terminal +pbmtoascii [] (1) - convert a portable bitmap into ASCII graphics +pbmtoatk [] (1) - convert portable bitmap to Andrew Toolkit raster object +pbmtobg [] (1) - convert a portable bitmap into BitGraph graphics +pbmtocmuwm [] (1) - convert a portable bitmap into a CMU window manager bitmap +pbmtodjvurle [] (1) - see http://netpbm.sourceforge.net/doc/pbmtodjvurle.html +pbmtoepsi [] (1) - convert a portable bitmap into an encapsulated PostScript style preview bitmap +pbmtoepson [] (1) - convert a portable bitmap into Epson printer graphics +pbmtoescp2 [] (1) - see http://netpbm.sourceforge.net/doc/pbmtoescp2.html +pbmtog3 [] (1) - convert a portable bitmap into a Group 3 fax file +pbmtogem [] (1) - convert a portable bitmap into a GEM .img file +pbmtogo [] (1) - convert a portable bitmap into compressed GraphOn graphics +pbmtoibm23xx [] (1) - see http://netpbm.sourceforge.net/doc/pbmtoibm23xx.html +pbmtoicon [] (1) - convert a portable bitmap into a Sun icon +pbmtolj [] (1) - convert a PBM image to HP LaserJet format +pbmtoln03 [] (1) - convert protable bitmap to DEC LN03+ Sixel output +pbmtolps [] (1) - convert portable bitmap to PostScript +pbmtomacp [] (1) - convert a portable bitmap into a MacPaint file +pbmtomatrixorbital [] (1) - see http://netpbm.sourceforge.net/doc/pbmtomatrixorbital.html +pbmtomda [] (1) - convert a portable bitmap to a Microdesign .mda +pbmtomgr [] (1) - convert a portable bitmap into a MGR bitmap +pbmtomrf [] (1) - see http://netpbm.sourceforge.net/doc/pbmtomrf.html +pbmtonokia [] (1) - convert a portable bitmap to Nokia Smart Messaging Formats +pbmtopgm [] (1) - convert PBM image to PGM by averaging areas +pbmtopi3 [] (1) - convert a portable bitmap into an Atari Degas .pi3 file +pbmtopk [] (1) - convert a portable bitmap into a packed (PK) format font +pbmtoplot [] (1) - convert a portable bitmap into a Unix plot(5) file +pbmtoppa [] (1) - convert PBM image to HP Printer Performance Architecture (PPA) +pbmtopsg3 [] (1) - convert PBM images to Postscript with G3 fax compression +pbmtoptx [] (1) - convert a portable bitmap into Printronix printer graphics +pbmtowbmp [] (1) - convert a portable bitmap (pbm) to a wireless bitmap (wbmp) file +pbmtox10bm [] (1) - convert a portable bitmap into an X10 bitmap +pbmtoxbm [] (1) - convert a portable bitmap into an X11 bitmap +pbmtozinc [] (1) - convert a portable bitmap into a Zinc bitmap +pbmupc [] (1) - create a Universal Product Code bitmap +pc1toppm [] (1) - see http://netpbm.sourceforge.net/doc/pc1toppm.html +pcap [] (1) - config - write libpcap compiler and linker flags to standard output +pcap [] (3) - Packet Capture library +pcap [] (5) - savefile - libpcap savefile format +pcap [] (7) - filter - packet filter syntax +pcap [] (7) - linktype - link-layer header types supported by libpcap +pcap_activate [] (3) - activate a capture handle +pcap_breakloop [] (3) - force a pcap_dispatch() or pcap_loop() call to return +pcap_can_set_rfmon [] (3) - check whether monitor mode can be set for a not - yet-activated capture handle +pcap_close [] (3) - close a capture device or savefile +pcap_compile [] (3) - compile a filter expression +pcap_create [] (3) - create a live capture handle +pcap_datalink [] (3) - get the link-layer header type +pcap_datalink_name_to_val [] (3) - get the link-layer header type value corresponding to a header type name +pcap_datalink_val_to_description [] (3) - get a name or description for a link - layer header type value +pcap_datalink_val_to_name [] (3) - get a name or description for a link - layer header type value +pcap_dispatch [] (3) - process packets from a live capture or savefile +pcap_dump [] (3) - write a packet to a capture file +pcap_dump_close [] (3) - close a savefile being written to +pcap_dump_file [] (3) - get the standard I/O stream for a savefile being written +pcap_dump_flush [] (3) - flush to a savefile packets dumped +pcap_dump_fopen [] (3) - open a file to which to write packets +pcap_dump_ftell [] (3) - get the current file offset for a savefile being written +pcap_dump_open [] (3) - open a file to which to write packets +pcap_file [] (3) - get the standard I/O stream for a savefile being read +pcap_fileno [] (3) - get the file descriptor for a live capture +pcap_findalldevs [] (3) - get a list of capture devices +pcap_fopen_offline [] (3) - open a saved capture file for reading +pcap_free_datalinks [] (3) - free a list of link-layer header types from pcap_get_datalinks() +pcap_freealldevs [] (3) - free a list of capture devices +pcap_freecode [] (3) - free a BPF program +pcap_get_selectable_fd [] (3) - get a file descriptor on which a select() can be done for a live capture +pcap_geterr [] (3) - get or print libpcap error message text +pcap_getnonblock [] (3) - set or get the state of non - blocking mode on a capture device +pcap_inject [] (3) - transmit a packet +pcap_is_swapped [] (3) - find out whether a savefile has the native byte order +pcap_lib_version [] (3) - get the version information for libpcap +pcap_list_datalinks [] (3) - get a list of link-layer header types supported by a capture device +pcap_lookupdev [] (3) - find the default device on which to capture +pcap_lookupnet [] (3) - find the IPv4 network number and netmask for a device +pcap_loop [] (3) - process packets from a live capture or savefile +pcap_major_version [] (3) - get the version number of a savefile +pcap_minor_version [] (3) - get the version number of a savefile +pcap_next [] (3) - read the next packet from a pcap_t +pcap_next_ex [] (3) - read the next packet from a pcap_t +pcap_offline_filter [] (3) - check whether a filter matches a packet +pcap_open_dead [] (3) - open a fake pcap_t for compiling filters or opening a capture for output +pcap_open_live [] (3) - open a device for capturing +pcap_open_offline [] (3) - open a saved capture file for reading +pcap_perror [] (3) - get or print libpcap error message text +pcap_sendpacket [] (3) - transmit a packet +pcap_set_buffer_size [] (3) - set the buffer size for a not-yet-activated capture handle +pcap_set_datalink [] (3) - set the link-layer header type to be used by a capture device +pcap_set_promisc [] (3) - set promiscuous mode for a not-yet-activated capture handle +pcap_set_rfmon [] (3) - set monitor mode for a not-yet-activated capture handle +pcap_set_snaplen [] (3) - set the snapshot length for a not-yet-activated capture handle +pcap_set_timeout [] (3) - set the read timeout for a not-yet-activated capture handle +pcap_setdirection [] (3) - set the direction for which packets will be captured +pcap_setfilter [] (3) - set the filter +pcap_setnonblock [] (3) - set or get the state of non - blocking mode on a capture device +pcap_snapshot [] (3) - get the snapshot length +pcap_stats [] (3) - get capture statistics +pcap_statustostr [] (3) - convert a PCAP_ERROR_ or PCAP_WARNING_ value to a string +pcap_strerror [] (3) - convert an errno value to a string +pccardctl [] (8) - PCMCIA card control utility +pcdindex [] (1) - create index image for a photo CD +pcdovtoppm [] (1) - see http://netpbm.sourceforge.net/doc/pcdovtoppm.html +pciconfig_iobase [] (2) - pci device information handling +pciconfig_read [] (2) - pci device information handling +pciconfig_write [] (2) - pci device information handling +pclose [] (3) - pipe stream to or from a process +pcre [] (1) - config - program to return PCRE configuration +pcregrep [] (1) - a grep with Perl-compatible regular expressions +pcretest [] (1) - a program for testing Perl-compatible regular expressions +pcxtoppm [] (1) - convert a PCX file into a portable pixmap +pdbedit [] (8) - manage the SAM database (Database of Samba Users) +pdf2dsc [] (1) - generate a PostScript page list of a PDF document +pdf2ps [] (1) - Ghostscript PDF to PostScript translator +pdffonts [] (1) - Portable Document Format (PDF) font analyzer (version 3.00) +pdfimages [] (1) - Portable Document Format (PDF) image extractor (version 3.00) +pdfinfo [] (1) - Portable Document Format (PDF) document information extractor (version 3.00) +pdfopt [] (1) - Ghostscript PDF Optimizer +pdfroff [] (1) - create PDF documents using groff +pdftohtml [] (1) - program to convert pdf files into html, xml and png images +pdftoppm [] (1) - Portable Document Format (PDF) to Portable Pixmap (PPM) converter (version 3.00) +pdftops [] (1) - Portable Document Format (PDF) to PostScript converter (version 3.00) +pdftotext [] (1) - Portable Document Format (PDF) to text converter (version 3.00) +pdiff [] (1) - produce a pretty comparison between files +pecho_wchar [] (3) - create and display curses pads +pechochar [] (3) - create and display curses pads +pedal [] (6) - pretty geometric picture program +penetrate [] (6) - simulates a classic arcade shooting game +penmount [] (4) - PenMount input driver +penrose [] (6) - draws quasiperiodic tilings +perl [] (1) - Practical Extraction and Report Language +perl5004delta [] (1) - what's new for perl5.004 +perl5005delta [] (1) - what's new for perl5.005 +perl561delta [] (1) - what's new for perl v5.6.x +perl56delta [] (1) - what's new for perl v5.6.0 +perl570delta [] (1) - what's new for perl v5.7.0 +perl571delta [] (1) - what's new for perl v5.7.1 +perl572delta [] (1) - what's new for perl v5.7.2 +perl573delta [] (1) - what's new for perl v5.7.3 +perl581delta [] (1) - what is new for perl v5.8.1 +perl582delta [] (1) - what is new for perl v5.8.2 +perl583delta [] (1) - what is new for perl v5.8.3 +perl584delta [] (1) - what is new for perl v5.8.4 +perl585delta [] (1) - what is new for perl v5.8.5 +perl586delta [] (1) - what is new for perl v5.8.6 +perl587delta [] (1) - what is new for perl v5.8.7 +perl588delta [] (1) - what is new for perl v5.8.8 +perl58delta [] (1) - what is new for perl v5.8.0 +perl590delta [] (1) - what is new for perl v5.9.0 +perl591delta [] (1) - what is new for perl v5.9.1 +perl592delta [] (1) - what is new for perl v5.9.2 +perl593delta [] (1) - what is new for perl v5.9.3 +perl594delta [] (1) - what is new for perl v5.9.4 +perl595delta [] (1) - what is new for perl v5.9.5 +perlXStut [] (1) - Tutorial for writing XSUBs +perlamiga [] (1) - Perl under Amiga OS +perlapi [] (1) - autogenerated documentation for the perl public API +perlapio [] (1) - perl's IO abstraction interface +perlartistic [] (1) - the Perl Artistic License +perlbook [] (1) - Perl book information +perlboot [] (1) - Beginner's Object-Oriented Tutorial +perlbot [] (1) - Bag'o Object Tricks (the BOT) +perlbug [] (1) - how to submit bug reports on Perl +perlcall [] (1) - Perl calling conventions from C +perlce [] (1) - Perl for WinCE +perlcheat [] (1) - Perl 5 Cheat Sheet +perlclib [] (1) - Internal replacements for standard C library functions +perlcn [] (1) - XXXX Perl XX +perlcommunity [] (1) - a brief overview of the Perl community +perlcompile [] (1) - Introduction to the Perl Compiler-Translator +perldata [] (1) - Perl data types +perldbmfilter [] (1) - Perl DBM Filters +perldebguts [] (1) - Guts of Perl debugging +perldebtut [] (1) - Perl debugging tutorial +perldebug [] (1) - Perl debugging +perldelta [] (1) - what is new for perl 5.10.0 +perldgux [] (1) - Perl under DG/UX +perldiag [] (1) - various Perl diagnostics +perldoc [] (1) - Look up Perl documentation in Pod format +perldos [] (1) - Perl under DOS, W31, W95 +perldsc [] (1) - Perl Data Structures Cookbook +perlebcdic [] (1) - Considerations for running Perl on EBCDIC platforms +perlembed [] (1) - how to embed perl in your C program +perlfaq [] (1) - frequently asked questions about Perl +perlfaq1 [] (1) - General Questions About Perl ($Revision: 10427 $) +perlfaq2 [] (1) - Obtaining and Learning about Perl ($Revision: 10144 $) +perlfaq3 [] (1) - Programming Tools ($Revision: 10127 $) +perlfaq4 [] (1) - Data Manipulation ($Revision: 10394 $) +perlfaq5 [] (1) - Files and Formats ($Revision: 10126 $) +perlfaq6 [] (1) - Regular Expressions ($Revision: 10126 $) +perlfaq7 [] (1) - General Perl Language Issues ($Revision: 10100 $) +perlfaq8 [] (1) - System Interaction ($Revision: 10183 $) +perlfaq9 [] (1) - Networking ($Revision: 8539 $) +perlfilter [] (1) - Source Filters +perlfork [] (1) - Perl's fork() emulation +perlform [] (1) - Perl formats +perlfunc [] (1) - Perl builtin functions +perlglossary [] (1) - Perl Glossary +perlgpl [] (1) - the GNU General Public License, version 2 +perlguts [] (1) - Introduction to the Perl API +perlhack [] (1) - How to hack at the Perl internals +perlhist [] (1) - the Perl history records +perlintern [] (1) - autogenerated documentation of purely internal Perl functions +perlintro [] (1) - - a brief introduction and overview of Perl +perliol [] (1) - C API for Perl's implementation of IO in Layers +perlipc [] (1) - Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores) +perlivp [] (1) - Perl Installation Verification Procedure +perljp [] (1) - XXX Perl XXX +perlko [] (1) - PerlX XXX XXX +perllexwarn [] (1) - Perl Lexical Warnings +perllocale [] (1) - Perl locale handling (internationalization and localization) +perllol [] (1) - Manipulating Arrays of Arrays in Perl +perlmod [] (1) - Perl modules (packages and symbol tables) +perlmodinstall [] (1) - Installing CPAN Modules +perlmodlib [] (1) - constructing new Perl modules and finding existing ones +perlmodstyle [] (1) - Perl module style guide +perlnetware [] (1) - Perl for NetWare +perlnewmod [] (1) - preparing a new module for distribution +perlnumber [] (1) - semantics of numbers and numeric operations in Perl +perlobj [] (1) - Perl objects +perlop [] (1) - Perl operators and precedence +perlopentut [] (1) - tutorial on opening things in Perl +perlos2 [] (1) - Perl under OS/2, DOS, Win0.3*, Win0.95 and WinNT +perlothrtut [] (1) - old tutorial on threads in Perl +perlpacktut [] (1) - tutorial on pack and unpack +perlplan9 [] (1) - Plan 9-specific documentation for Perl +perlpod [] (1) - the Plain Old Documentation format +perlpodspec [] (1) - Plain Old Documentation: format specification and notes +perlport [] (1) - Writing portable Perl +perlpragma [] (1) - how to write a user pragma +perlre [] (1) - Perl regular expressions +perlreapi [] (1) - perl regular expression plugin interface +perlrebackslash [] (1) - Perl Regular Expression Backslash Sequences and Escapes +perlrecharclass [] (1) - Perl Regular Expression Character Classes +perlref [] (1) - Perl references and nested data structures +perlreftut [] (1) - Mark's very short tutorial about references +perlreguts [] (1) - Description of the Perl regular expression engine +perlrequick [] (1) - Perl regular expressions quick start +perlreref [] (1) - Perl Regular Expressions Reference +perlretut [] (1) - Perl regular expressions tutorial +perlrun [] (1) - how to execute the Perl interpreter +perlsec [] (1) - Perl security +perlstyle [] (1) - Perl style guide +perlsub [] (1) - Perl subroutines +perlsyn [] (1) - Perl syntax +perlthrtut [] (1) - Tutorial on threads in Perl +perltie [] (1) - how to hide an object class in a simple variable +perltoc [] (1) - perl documentation table of contents +perltodo [] (1) - Perl TO-DO List +perltooc [] (1) - Tom's OO Tutorial for Class Data in Perl +perltoot [] (1) - Tom's object-oriented tutorial for perl +perltrap [] (1) - Perl traps for the unwary +perltw [] (1) - XXXX Perl XX +perlunicode [] (1) - Unicode support in Perl +perlunifaq [] (1) - Perl Unicode FAQ +perluniintro [] (1) - Perl Unicode introduction +perlunitut [] (1) - Perl Unicode Tutorial +perlutil [] (1) - utilities packaged with the Perl distribution +perluts [] (1) - Perl under UTS +perlvar [] (1) - Perl predefined variables +perlvms [] (1) - VMS-specific documentation for Perl +perlwin32 [] (1) - Perl under Windows +perlxs [] (1) - XS language reference manual +perror [] (1) - explain error codes +perror [] (3) - print a system error message +personality [] (2) - set the process execution domain +petri [] (6) - simulates mold growing in a petri dish +pf2afm [] (1) - Make an AFM file from Postscript (PFB/PFA/PFM) font files using ghostscript +pfbtopfa [] (1) - Convert Postscript .pfb fonts to .pfa format using ghostscript +pfbtops [] (1) - translate a PostScript font in .pfb format to ASCII +pfifo [] (8) - Packet limited First In, First Out queue .P bfifo - Byte limited First In, First Out queue +pfifo_fast [] (8) - three-band first in, first out queue +pfksh [] (1) - KornShell, a +pfksh93 [] (1) - KornShell, a +pfmtopam [] (1) - see http://netpbm.sourceforge.net/doc/pfmtopam.html +pfsh [] (1) - shell, the +pg [] (1) - browse pagewise through text files +pgm [] (5) - portable graymap file format +pgmabel [] (1) - see http://netpbm.sourceforge.net/doc/pgmabel.html +pgmbentley [] (1) - Bentleyize a portable graymap +pgmcrater [] (1) - create cratered terrain by fractal forgery +pgmdeshadow [] (1) - see http://netpbm.sourceforge.net/doc/pgmdeshadow.html +pgmedge [] (1) - edge-detect a portable graymap +pgmenhance [] (1) - edge-enhance a portable graymap +pgmhist [] (1) - print a histogram of the values in a portable graymap +pgmkernel [] (1) - generate a convolution kernel +pgmmake [] (1) - see http://netpbm.sourceforge.net/doc/pgmmake.html +pgmmedian [] (1) - see http://netpbm.sourceforge.net/doc/pgmmedian.html +pgmminkowski [] (1) - see http://netpbm.sourceforge.net/doc/pgmminkowski.html +pgmmorphconv [] (1) - see http://netpbm.sourceforge.net/doc/pgmmorphconv.html +pgmnoise [] (1) - create a graymap made up of white noise +pgmramp [] (1) - generate a grayscale ramp +pgmslice [] (1) - extract one line of pixel values out of a portable graymap +pgmtexture [] (1) - calculate textural features on a portable graymap +pgmtofs [] (1) - convert portable graymap to Usenix FaceSaver(tm) format +pgmtolispm [] (1) - convert a portable graymap into Lisp Machine format +pgmtopbm [] (1) - convert a portable graymap into a portable bitmap +pgmtopgm [] (1) - see http://netpbm.sourceforge.net/doc/pgmtopgm.html +pgmtoppm [] (1) - colorize a PGM (grayscale) image into a PGM (color) image +pgmtoybm [] (1) - convert a portable bitmap into a Bennet Yee face file +pgrep [] (1) - look up or signal processes based on name and other attributes +phantasia [] (6) - an interterminal fantasy game +phosphor [] (6) - simulates an old terminal with long-sustain phosphor +photo [] (n) - Full-color images +photopile [] (6) - displays multiple images in a periodically shuffled pile +pi1toppm [] (1) - convert an Atari Degas .pi1 into a portable pixmap +pi3topbm [] (1) - convert an Atari Degas .pi3 file into a portable bitmap +pic [] (1) - compile pictures for troff or TeX +pic2graph [] (1) - convert a PIC diagram into a cropped image +pic2tpic [] (1) - Convert pic files to tpic format +pico [] (1) - simple text editor in the style of the Alpine Composer +piconv [] (1) - - iconv(1), reinvented in perl +picttoppm [] (1) - convert a Macintosh PICT file into a portable pixmap +pid [] (n) - Retrieve process identifiers +pidgin [] (1) - Instant Messaging client +pidof [] (8) - - find the process ID of a running program +piecewise [] (6) - lots of moving circles intersecting in interesting ways +pig [] (6) - eformatray inputway asway Igpay Atinlay +pilot [] (1) - addresses - Read and write address book databases to and from a Palm handheld +pilot [] (1) - clip - Get or Set the Palm Clipboard contents from STDOUT/STDIN +pilot [] (1) - csd - Connection Service Daemon for Palm Devices +pilot [] (1) - debugsh - Simple debugging console for a Palm Handheld device [deprecated] +pilot [] (1) - dedupe - Removes duplicate records from any Palm database +pilot [] (1) - dlpsh - An interactive Desktop Link Protocol (DLP) Shell for your Palm device +pilot [] (1) - file - Dump application and header information from your local PRC/PDB files +pilot [] (1) - foto - Palm 'Foto' Image Installer/Remover/Fetcher/Converter +pilot [] (1) - foto-treo600 - Copies Treo foto databases to current directory and extracts image files from within them +pilot [] (1) - foto-treo650 - Copies Treo foto databases and videos to the current directory +pilot [] (1) - getram - Retrieves the RAM image from your Palm device for use in debugging +pilot [] (1) - getrom - Retrieves the ROM image from your Palm device for use in debugging +pilot [] (1) - getromtoken - Reads a ROM token from a Palm Handheld device +pilot [] (1) - hinotes - Syncronize your Hi-Notes database with your desktop machine +pilot [] (1) - install-datebook - Installs one or more new datebook entries onto your Palm handheld +pilot [] (1) - install-expenses - Install an expense record entries onto your Palm handheld device +pilot [] (1) - install-hinote - Install local files into your Hi-Note database on your Palm handheld +pilot [] (1) - install-memo - Installs a new Memo Pad entry onto your Palm handheld +pilot [] (1) - install-netsync - reads or sets the Network Preferences information on a Palm Device +pilot [] (1) - install-todo - Updates the Palm ToDo list with one new entry +pilot [] (1) - install-todos - Updates the Palm ToDo list with entries from a local file +pilot [] (1) - install-user - Reads or sets a Palm User and UserID on a Palm Device +pilot [] (1) - memos - Manipulate Memo entries from a file or your Palm device +pilot [] (1) - nredir - Accept connection and redirect via Network Hotsync Protocol +pilot [] (1) - read-expenses - Export Palm Expense application data in a text format +pilot [] (1) - read-ical - Exports the DatebookDB and/or ToDo applications to ical format +pilot [] (1) - read-notepad - List the record information found in the Palm Notepad +pilot [] (1) - read-palmpix - Convert all pictures in the files given or found on a Palm handheld +pilot [] (1) - read-screenshot - Read screenshots from Palm (ScreenShotDB) +pilot [] (1) - read-todos - Syncronize your Palm ToDo application's database with your desktop machine +pilot [] (1) - read-veo - Synchronize your Veo Traveler databases +pilot [] (1) - reminders - Exports your Palm Datebook database into a remind(1) data file format +pilot [] (1) - schlep - Pack an arbitrary file and install it on your Palm or unpack a file from your Palm +pilot [] (1) - simple file system browser in the style of the Alpine Composer +pilot [] (1) - wav - Decodes Palm Voice Memo files to wav files you can read on your desktop +pilot [] (1) - xfer - Backup, sync, and restore databases from a Palm handheld device +pilot [] (7) - link - A suite of tools for communicating with Palm handhelds, such as those made by Palm, Handspring, Handera, TRGPro, Sony or other Palm Compatible Handheld PDA device +ping [] (8) - send ICMP ECHO_REQUEST to network hosts +ping6 [] (8) - send ICMP ECHO_REQUEST to network hosts +pinion [] (6) - draws a scrolling sequence of interconnected gears +pinky [] (1) - lightweight finger +pipe [] (2) - create pipe +pipe [] (7) - overview of pipes and FIFOs +pipe2 [] (2) - create pipe +pipes [] (6) - fill the screen with a plumbing system +pivot_root [] (2) - change the root file system +pivot_root [] (8) - change the root file system +pixmap [] (n) - image type for the XPM file format +pjtoppm [] (1) - convert an HP PaintJet file to a portable pixmap +pkcs12 [] (1) - PKCS#12 file utility +pkcs7 [] (1) - PKCS#7 utility +pkcs8 [] (1) - PKCS#8 format private key conversion tool +pkg [] (1) - config - Return metainformation about installed libraries +pkg::create [] (n) - Construct an appropriate 'package ifneeded' command for a given package specification +pkg_mkIndex [] (n) - Build an index for automatic loading of packages +pkgtool [] (8) - software package maintenance tool +pkill [] (1) - look up or signal processes based on name and other attributes +pktopbm [] (1) - convert packed (PK) format font into portable bitmap(s) +pl2pm [] (1) - Rough tool to translate Perl4 .pl files to Perl5 .pm modules +place [] (n) - Geometry manager for fixed or rubber-sheet placement +plane [] (6) - draw a 3 dimensional plane +platform [] (n) - System identification support code and utilities +platform::shell [] (n) - System identification support code and utilities +plipconfig [] (8) - fine tune PLIP device parameters +pluginviewer [] (8) - list loadable SASL plugins and their properties +pm [] (1) - is-supported - Test whether suspend or hibernate is supported +pm [] (8) - action - Suspend or Hibernate your computer +pm [] (8) - pmu - suspend the computer on machines using a Macintosh-style PMU +pm [] (8) - powersave - Put your computer into low power mode +pmake [] (1) - maintain program dependencies +pmap_dump [] (8) - print a list of all registered RPC programs +pmap_set [] (8) - set the list of registered RPC programs +png [] (5) - Portable Network Graphics (PNG) format +pngtopnm [] (1) - convert a Portable Network Graphics file into a portable anymap +pnm [] (5) - portable anymap file format +pnmalias [] (1) - antialias a portable anyumap +pnmarith [] (1) - perform arithmetic on two portable anymaps +pnmcat [] (1) - concatenate portable anymaps +pnmcolormap [] (1) - create quantization color map for a Netpbm image +pnmcomp [] (1) - composite (overlay) two portable anymap files together +pnmconvol [] (1) - general MxN convolution on a portable anymap +pnmcrop [] (1) - crop a portable anymap +pnmcut [] (1) - cut a rectangle out of a PBM, PGM, or PPM image +pnmdepth [] (1) - change the maxval in a portable anymap +pnmenlarge [] (1) - read a portable anymap and enlarge it N times +pnmfile [] (1) - describe a portable anymap +pnmflip [] (1) - perform one or more flip operations on a portable anymap +pnmgamma [] (1) - perform gamma correction on a PNM image +pnmhisteq [] (1) - histogram equalise a portable anymap +pnmhistmap [] (1) - draw a histogram for a PGM or PPM file +pnmindex [] (1) - build a visual index of a bunch of anymaps +pnminvert [] (1) - invert a portable anymap +pnmmargin [] (1) - add a border to a portable anymap +pnmmontage [] (1) - create a montage of portable anymaps +pnmnlfilt [] (1) - non-linear filters: smooth, alpha trim mean, optimal estimation smoothing, edge enhancement +pnmnorm [] (1) - normalize the contrast in a Netbpm image +pnmpad [] (1) - add borders to portable anymap +pnmpaste [] (1) - paste a rectangle into a portable anymap +pnmpsnr [] (1) - compute the difference between two images (the PSNR) +pnmquant [] (1) - quantize the colors in a Netpbm image to a smaller set +pnmremap [] (1) - replace colors in a PPM image with colors from another set +pnmrotate [] (1) - rotate a portable anymap by some angle +pnmscale [] (1) - scale a PNM file quickly +pnmscale [] (1) - scale a PNM image +pnmshear [] (1) - shear a portable anymap by some angle +pnmsmooth [] (1) - smooth out an image +pnmsplit [] (1) - split a multi-image PNM file into multiple single-image files +pnmstitch [] (1) - see http://netpbm.sourceforge.net/doc/pnmstitch.html +pnmtile [] (1) - replicate a portable anymap into a specified size +pnmtoddif [] (1) - Convert a portable anymap to DDIF format +pnmtofiasco [] (1) - Convert PNM file to FIASCO compressed file +pnmtofits [] (1) - convert a portable anymap into FITS format +pnmtojbig [] (1) - PNM to JBIG file converter +pnmtojpeg [] (1) - convert PNM image to a JFIF (JPEG) image +pnmtopalm [] (1) - convert a portable anymap into a Palm pixmap +pnmtopclxl [] (1) - see http://netpbm.sourceforge.net/doc/pnmtopclxl.html +pnmtoplainpnm [] (1) - convert portable any map to plain (ASCII) anymap format +pnmtopng [] (1) - convert a portable anymap into a Portable Network Graphics file +pnmtops [] (1) - convert portable anymap to PostScript +pnmtorast [] (1) - convert a portable pixmap into a Sun rasterfile +pnmtorle [] (1) - convert a Netpbm image file into an RLE image file +pnmtosgi [] (1) - convert a portable anymap to a SGI image file +pnmtosir [] (1) - convert a portable anymap into a Solitaire format +pnmtotiff [] (1) - convert a PNM image to a TIFF file +pnmtotiffcmyk [] (1) - convert a a portable anymap into a CMYK encoded TIFF file +pnmtoxwd [] (1) - convert a portable anymap into an X11 window dump +pnoutrefresh [] (3) - create and display curses pads +pnpdump [] (8) - Dump ISA Plug-And-Play devices resource information +po2xml [] (1) - Translates an DocBook XML file using a PO file +pod2html [] (1) - convert .pod files to .html files +pod2latex [] (1) - convert pod documentation to latex format +pod2man [] (1) - Convert POD data to formatted *roff input +pod2text [] (1) - Convert POD data to formatted ASCII text +pod2usage [] (1) - print usage messages from embedded pod docs in files +pod2usage() [] (3) - print a usage message from embedded pod documentation +podchecker [] (1) - check the syntax of POD format documentation files +podchecker() [] (3) - check pod documents for syntax errors +podselect [] (1) - print selected sections of pod documentation on standard output +podselect() [] (3) - extract selected sections of POD from input +poll [] (2) - wait for some event on a file descriptor +polyhedra [] (6) - draws the 80 uniform polyhedra and their duals +polyominoes [] (6) - fill a rectangle with irregularly-shaped blocks +polytopes [] (6) - Draws one of the six regular 4d polytopes rotating in 4d +pom [] (6) - display the phase of the moon +pong [] (6) - Pong Home Video Game Emulator +popa3d [] (8) - Post Office Protocol (POP3) server +popd [] (1) - bash built-in commands, see bash(1) +popen [] (3) - pipe stream to or from a process +popt [] (3) - Parse command line options +port [] (4) - system memory, kernel memory and system ports +portmap [] (8) - DARPA port to RPC program number mapper +porttime [] (5) - port access time file +posix_fadvise [] (2) - predeclare an access pattern for file data +posix_fallocate [] (3) - allocate file space +posix_memalign [] (3) - Allocate aligned memory +posix_openpt [] (3) - open a pseudo-terminal device +posixoptions [] (7) - optional parts of the POSIX standard +pow [] (3) - power functions +pow10 [] (3) - base-10 power functions +pow10f [] (3) - base-10 power functions +pow10l [] (3) - base-10 power functions +poweroff [] (8) - stop the system +powf [] (3) - power functions +powl [] (3) - power functions +ppdc [] (1) - cups ppd compiler +ppdcfile [] (5) - cups ppd compiler source file format +ppdhtml [] (1) - cups html summary generator +ppdi [] (1) - import ppd files +ppdmerge [] (1) - merge ppd files +ppdpo [] (1) - cups message catalog generator +ppm [] (5) - portable pixmap file format +ppm2tiff [] (1) - create a TIFF file from PPM, PGM and PBM image files +ppm3d [] (1) - convert two portable pixmap into a red/blue 3d glasses pixmap +ppmbrighten [] (1) - change an images Saturation and Value from an HSV map +ppmchange [] (1) - change all pixels of one color to another in a portable pixmap +ppmcie [] (1) - draw a CIE color chart as a PPM image +ppmcolormask [] (1) - produce mask of areas of a certain color in a PPM file +ppmcolors [] (1) - generate a color map of all colors of a certain maxval +ppmdcfont [] (1) - see http://netpbm.sourceforge.net/doc/ppmdcfont.html +ppmddumpfont [] (1) - see http://netpbm.sourceforge.net/doc/ppmddumpfont.html +ppmdim [] (1) - dim a portable pixmap down to total blackness +ppmdist [] (1) - simplistic grayscale assignment for machine generated, color images +ppmdither [] (1) - ordered dither for color images +ppmdmkfont [] (1) - see http://netpbm.sourceforge.net/doc/ppmdmkfont.html +ppmdraw [] (1) - see http://netpbm.sourceforge.net/doc/ppmdraw.html +ppmfade [] (1) - generate a transition between two image files using special effects +ppmflash [] (1) - brighten a picture up to complete white-out +ppmforge [] (1) - fractal forgeries of clouds, planets, and starry skies +ppmglobe [] (1) - see http://netpbm.sourceforge.net/doc/ppmglobe.html +ppmhist [] (1) - print a histogram of a PPM image +ppmlabel [] (1) - add text to a portable pixmap +ppmmake [] (1) - create a pixmap of a specified size and color +ppmmix [] (1) - blend together two portable pixmaps +ppmntsc [] (1) - Make RGB colors legal for NTSC or PAL color systems +ppmpat [] (1) - make a pretty pixmap +ppmquant [] (1) - quantize the colors in a portable pixmap down to a specified number +ppmquantall [] (1) - run ppmquant on a bunch of files all at once, so they share a common colormap +ppmqvga [] (1) - 8 plane quantization +ppmrainbow [] (1) - Generate a rainbow +ppmrelief [] (1) - run a Laplacian relief filter on a portable pixmap +ppmrough [] (1) - see http://netpbm.sourceforge.net/doc/ppmrough.html +ppmshadow [] (1) - add simulated shadows to a portable pixmap image +ppmshift [] (1) - shift lines of a portable pixmap left or right by a random amount +ppmspread [] (1) - displace a portable pixmap's pixels by a random amount +ppmsvgalib [] (1) - display PPM image on Linux console using Svgalib +ppmtoacad [] (1) - convert portable pixmap to AutoCAD database or slide +ppmtoarbtxt [] (1) - see http://netpbm.sourceforge.net/doc/ppmtoarbtxt.html +ppmtobmp [] (1) - convert a portable pixmap into a BMP file +ppmtoeyuv [] (1) - convert a portable pixmap into a Berkeley YUV file +ppmtogif [] (1) - convert a portable pixmap into a GIF file +ppmtoicr [] (1) - convert a portable pixmap into NCSA ICR format +ppmtoilbm [] (1) - convert a portable pixmap into an ILBM file +ppmtoleaf [] (1) - convert PPM image to Interleaf image format +ppmtolj [] (1) - convert a portable pixmap to an HP LaserJet PCL 5 Color file +ppmtomap [] (1) - extract all colors from a portable pixmap +ppmtomitsu [] (1) - convert a portable pixmap to a Mitsubishi S340-10 file +ppmtompeg [] (1) - encodes MPEG-1 bitstreams +ppmtoneo [] (1) - convert a portable pixmap into an Atari Neochrome .neo file +ppmtopcx [] (1) - convert a portable pixmap into a PCX file +ppmtopgm [] (1) - convert a portable pixmap into a portable graymap +ppmtopi1 [] (1) - convert a portable pixmap into an Atari Degas .pi1 file +ppmtopict [] (1) - convert a portable pixmap into a Macintosh PICT file +ppmtopj [] (1) - convert a portable pixmap to an HP PaintJet file +ppmtopjxl [] (1) - convert a portable pixmap into an HP PaintJet XL PCL file +ppmtoppm [] (1) - see http://netpbm.sourceforge.net/doc/ppmtoppm.html +ppmtopuzz [] (1) - convert a portable pixmap into an X11 puzzle file +ppmtorgb3 [] (1) - separate a portable pixmap into three portable graymaps +ppmtosixel [] (1) - convert a portable pixmap into DEC sixel format +ppmtoterm [] (1) - see http://netpbm.sourceforge.net/doc/ppmtoterm.html +ppmtotga [] (1) - convert portable pixmap into a TrueVision Targa file +ppmtouil [] (1) - convert a portable pixmap into a Motif UIL icon file +ppmtowinicon [] (1) - convert 1 or more portable pixmaps into a Windows .ico file +ppmtoxpm [] (1) - convert a PPM iamge into an X11 pixmap +ppmtoyuv [] (1) - convert a portable pixmap into an Abekas YUV file +ppmtoyuvsplit [] (1) - convert a portable pixmap into 3 subsampled raw YUV files +ppmtv [] (1) - make a portable pixmap look like taken from an American TV +ppmwheel [] (1) - see http://netpbm.sourceforge.net/doc/ppmwheel.html +ppoll [] (2) - wait for some event on a file descriptor +pppd [] (8) - Point-to-Point Protocol Daemon +pppdump [] (8) - convert PPP record file to readable format +pppoe [] (8) - connect - Shell script to manage a PPPoE link +pppoe [] (8) - relay - user-space PPPoE relay agent +pppoe [] (8) - server - user-space PPPoE server +pppoe [] (8) - setup - Shell script to configure Roaring Penguin PPPoE client +pppoe [] (8) - sniff - examine network for non-standard PPPoE frames +pppoe [] (8) - start - Shell script to bring up a PPPoE link +pppoe [] (8) - status - Shell script to report on status of PPPoE link +pppoe [] (8) - stop - Shell script to shut down a PPPoE link +pppoe [] (8) - user-space PPPoE client +pppoe.conf [] (5) - Configuration file used by pppoe-start(8), pppoe - stop(8), pppoe-status(8) and pppoe-connect(8) +pppstats [] (8) - print PPP statistics +ppt [] (6) - reformat input as punch cards, paper tape or morse code +pr [] (1) - convert text files for printing +pr29_4 [] (3) - check if input trigger Unicode normalization bugs +pr29_4z [] (3) - check if input trigger Unicode normalization bugs +pr29_8z [] (3) - check if input trigger Unicode normalization bugs +pr29_strerror [] (3) - return string describing pr29 error code +praliases [] (8) - display system mail aliases +prctl [] (2) - operations on a process +pread [] (2) - read from or write to a file descriptor at a given offset +preconv [] (1) - convert encoding of input files to something GNU troff understands +prefresh [] (3) - create and display curses pads +prezip [] (1) - bin - prefix zip delta word list compressor/decompressor +primes [] (6) - factor a number, generate primes +print_description [] (3) - mib_api functions +print_mib [] (3) - mib_api functions +print_objid [] (3) - mib_api functions +print_value [] (3) - mib_api functions +print_variable [] (3) - mib_api functions +printafm [] (1) - Print the metrics from a Postscript font in AFM format using ghostscript +printenv [] (1) - print all or part of environment +printers.conf [] (5) - printer configuration file for cups +printf [] (1) - bash built-in commands, see bash(1) +printf [] (1) - format and print data +printf [] (3) - formatted output conversion +printftest [] (6) - tests the vgagl gl_printf function +printmail [] (1) - format mail in a readable fashion for printing +printw [] (3) - print formatted output in curses windows +proc [] (5) - process information pseudo-file system +proc [] (n) - Create a Tcl procedure +procinfo [] (8) - display system status gathered from /proc +procmail [] (1) - autonomous mail processor +procmailex [] (5) - procmail rcfile examples +procmailrc [] (5) - procmail rcfile +procmailsc [] (5) - procmail weighted scoring technique +prof [] (2) - unimplemented system calls +profil [] (2) - unimplemented system calls +profil [] (3) - execution time profile +profiles [] (1) - A utility to report and change SIDs in registry files +proftpd [] (8) - Professional configurable, secure file transfer protocol server +program_invocation_name [] (3) - obtain name used to invoke calling program +program_invocation_short_name [] (3) - obtain name used to invoke calling program +protocols [] (5) - the protocols definition file +prove [] (1) - - A command-line tool for running tests against Test::Harness +providence [] (6) - eye in glory screenhack +proxymngr [] (1) - proxy manager service +pruneemptydirs [] (1) - Detects stale source directories in a CVS tree +ps [] (1) - report a snapshot of the current processes +ps2ascii [] (1) - Ghostscript translator from PostScript or PDF to ASCII +ps2epsi [] (1) - generate conforming Encapsulated PostScript +ps2pdf [] (1) - Convert PostScript to PDF using ghostscript +ps2pdf12 [] (1) - Convert PostScript to PDF 1.2 (Acrobat 3-and-later compatible) using ghostscript +ps2pdf13 [] (1) - Convert PostScript to PDF 1.3 (Acrobat 4-and-later compatible) using ghostscript +ps2pdfwr [] (1) - Convert PostScript to PDF without specifying CompatibilityLevel, using ghostscript +ps2ps [] (1) - Ghostscript PostScript distiller +psbook [] (1) - rearrange pages in PostScript file into signatures +psc [] (1) - prepare sc files +psed [] (1) - a stream editor +pselect [] (2) - synchronous I/O multiplexing +psf [] (8) - PostScript filter +psfaddtable [] (1) - add a Unicode character table to a console font +psfgettable [] (1) - extract the embedded Unicode character table from a console font +psfstriptable [] (1) - remove the embedded Unicode character table from a console font +psfxtable [] (1) - handle Unicode character tables for console fonts +psidtopgm [] (1) - convert PostScript image data into a portable graymap +psignal [] (3) - print signal message +psktool [] (1) - Simple PSK password tool +psmandup [] (1) - print duplex on non duplex printers +psmerge [] (1) - filter to merge several PostScript files into one +psnup [] (1) - multiple pages per sheet +psorder [] (1) - PostScript pageorder filter +pspell [] (1) - config - prints information about a libpspell installation +psresize [] (1) - multiple pages per sheet +psselect [] (1) - select pages from a PostScript file +psset [] (1) - insert page device request in PostScript files +pstopnm [] (1) - convert a PostScript file into a portable anymap +pstops [] (1) - shuffle pages in a PostScript file +pstree [] (1) - display a tree of processes +pstruct [] (1) - Dump C structures as generated from cc -g -S stabs +ptar [] (1) - a tar-like program written in perl +ptardiff [] (1) - program that diffs an extracted archive against an unextracted one +pth [] (1) - config - Pth library build utility +pth [] (3) - GNU Portable Threads +pthread.h [] (3) - threads +pthread_atfork [] (3) - register fork handlers +pthread_attr_destroy [] (3) - destroy and initialize the thread attributes object +pthread_attr_destroy [] (3) - initialize and destroy thread attributes object +pthread_attr_getaffinity_np [] (3) - set/get CPU affinity attribute in thread attributes object +pthread_attr_getdetachstate [] (3) - get and set the detachstate attribute +pthread_attr_getdetachstate [] (3) - set/get detach state attribute in thread attributes object +pthread_attr_getguardsize [] (3) - get and set the thread guardsize attribute +pthread_attr_getguardsize [] (3) - set/get guard size attribute in thread attributes object +pthread_attr_getinheritsched [] (3) - get and set the inheritsched attribute (REALTIME THREADS) +pthread_attr_getinheritsched [] (3) - set/get inherit scheduler attribute in thread attributes object +pthread_attr_getschedparam [] (3) - get and set the schedparam attribute +pthread_attr_getschedparam [] (3) - set/get scheduling parameter attributes in thread attributes object +pthread_attr_getschedpolicy [] (3) - get and set the schedpolicy attribute (REALTIME THREADS) +pthread_attr_getschedpolicy [] (3) - set/get scheduling policy attribute in thread attributes object +pthread_attr_getscope [] (3) - get and set the contentionscope attribute (REALTIME THREADS) +pthread_attr_getscope [] (3) - set/get contention scope attribute in thread attributes object +pthread_attr_getstack [] (3) - get and set stack attributes +pthread_attr_getstack [] (3) - set/get stack attributes in thread attributes object +pthread_attr_getstackaddr [] (3) - get and set the stackaddr attribute +pthread_attr_getstackaddr [] (3) - set/get stack address attribute in thread attributes object +pthread_attr_getstacksize [] (3) - get and set the stacksize attribute +pthread_attr_getstacksize [] (3) - set/get stack size attribute in thread attributes object +pthread_attr_init [] (3) - destroy and initialize the thread attributes object +pthread_attr_init [] (3) - initialize and destroy thread attributes object +pthread_attr_setaffinity_np [] (3) - set/get CPU affinity attribute in thread attributes object +pthread_attr_setdetachstate [] (3) - get and set the detachstate attribute +pthread_attr_setdetachstate [] (3) - set/get detach state attribute in thread attributes object +pthread_attr_setguardsize [] (3) - get and set the thread guardsize attribute +pthread_attr_setguardsize [] (3) - set/get guard size attribute in thread attributes object +pthread_attr_setinheritsched [] (3) - get and set the inheritsched attribute (REALTIME THREADS) +pthread_attr_setinheritsched [] (3) - set/get inherit scheduler attribute in thread attributes object +pthread_attr_setschedparam [] (3) - get and set the schedparam attribute +pthread_attr_setschedparam [] (3) - set/get scheduling parameter attributes in thread attributes object +pthread_attr_setschedpolicy [] (3) - get and set the schedpolicy attribute (REALTIME THREADS) +pthread_attr_setschedpolicy [] (3) - set/get scheduling policy attribute in thread attributes object +pthread_attr_setscope [] (3) - get and set the contentionscope attribute (REALTIME THREADS) +pthread_attr_setscope [] (3) - set/get contention scope attribute in thread attributes object +pthread_attr_setstack [] (3) - get and set stack attributes +pthread_attr_setstack [] (3) - set/get stack attributes in thread attributes object +pthread_attr_setstackaddr [] (3) - get and set the stackaddr attribute +pthread_attr_setstackaddr [] (3) - set/get stack address attribute in thread attributes object +pthread_attr_setstacksize [] (3) - get and set the stacksize attribute +pthread_attr_setstacksize [] (3) - set/get stack size attribute in thread attributes object +pthread_barrier_destroy [] (3) - destroy and initialize a barrier object (ADVANCED REALTIME THREADS) +pthread_barrier_init [] (3) - destroy and initialize a barrier object (ADVANCED REALTIME THREADS) +pthread_barrier_wait [] (3) - synchronize at a barrier (ADVANCED REALTIME THREADS) +pthread_barrierattr_destroy [] (3) - destroy and initialize the barrier attributes object (ADVANCED REALTIME THREADS) +pthread_barrierattr_getpshared [] (3) - get and set the process - shared attribute of the barrier attributes object (ADVANCED REALTIME THREADS) +pthread_barrierattr_init [] (3) - destroy and initialize the barrier attributes object (ADVANCED REALTIME THREADS) +pthread_barrierattr_setpshared [] (3) - get and set the process - shared attribute of the barrier attributes object (ADVANCED REALTIME THREADS) +pthread_cancel [] (3) - cancel execution of a thread +pthread_cancel [] (3) - send a cancellation request to a thread +pthread_cleanup_pop [] (3) - establish cancellation handlers +pthread_cleanup_pop [] (3) - push and pop thread cancellation clean - up handlers +pthread_cleanup_pop_restore_np [] (3) - push and pop thread cancellation clean - up handlers while saving cancelability type +pthread_cleanup_push [] (3) - establish cancellation handlers +pthread_cleanup_push [] (3) - push and pop thread cancellation clean - up handlers +pthread_cleanup_push_defer_np [] (3) - push and pop thread cancellation clean - up handlers while saving cancelability type +pthread_cond_broadcast [] (3) - broadcast or signal a condition +pthread_cond_destroy [] (3) - destroy and initialize condition variables +pthread_cond_init [] (3) - destroy and initialize condition variables +pthread_cond_signal [] (3) - broadcast or signal a condition +pthread_cond_timedwait [] (3) - wait on a condition +pthread_cond_wait [] (3) - wait on a condition +pthread_condattr_destroy [] (3) - destroy and initialize the condition variable attributes object +pthread_condattr_getclock [] (3) - get and set the clock selection condition variable attribute (ADVANCED REALTIME) +pthread_condattr_getpshared [] (3) - get and set the process - shared condition variable attributes +pthread_condattr_init [] (3) - destroy and initialize the condition variable attributes object +pthread_condattr_setclock [] (3) - get and set the clock selection condition variable attribute (ADVANCED REALTIME) +pthread_condattr_setpshared [] (3) - get and set the process - shared condition variable attributes +pthread_create [] (3) - create a new thread +pthread_create [] (3) - thread creation +pthread_detach [] (3) - detach a thread +pthread_equal [] (3) - compare thread IDs +pthread_exit [] (3) - terminate calling thread +pthread_exit [] (3) - thread termination +pthread_getaffinity_np [] (3) - set/get CPU affinity of a thread +pthread_getattr_np [] (3) - get attributes of created thread +pthread_getconcurrency [] (3) - get and set the level of concurrency +pthread_getcpuclockid [] (3) - access a thread CPU-time clock (ADVANCED REALTIME THREADS) +pthread_getcpuclockid [] (3) - retrieve ID of a thread's CPU time clock +pthread_getschedparam [] (3) - dynamic thread scheduling parameters access (REALTIME THREADS) +pthread_getspecific [] (3) - thread-specific data management +pthread_join [] (3) - join with a terminated thread +pthread_join [] (3) - wait for thread termination +pthread_key_create [] (3) - thread-specific data key creation +pthread_key_delete [] (3) - thread-specific data key deletion +pthread_kill [] (3) - send a signal to a thread +pthread_kill_other_threads_np [] (3) - terminate all other threads in process +pthread_mutex_destroy [] (3) - destroy and initialize a mutex +pthread_mutex_getprioceiling [] (3) - get and set the priority ceiling of a mutex (REALTIME THREADS) +pthread_mutex_init [] (3) - destroy and initialize a mutex +pthread_mutex_lock [] (3) - lock and unlock a mutex +pthread_mutex_setprioceiling [] (3) - get and set the priority ceiling of a mutex (REALTIME THREADS) +pthread_mutex_timedlock [] (3) - lock a mutex (ADVANCED REALTIME) +pthread_mutex_trylock [] (3) - lock and unlock a mutex +pthread_mutex_unlock [] (3) - lock and unlock a mutex +pthread_mutexattr_destroy [] (3) - destroy and initialize the mutex attributes object +pthread_mutexattr_getprioceiling [] (3) - get and set the prioceiling attribute of the mutex attributes object (REALTIME THREADS) +pthread_mutexattr_getprotocol [] (3) - get and set the protocol attribute of the mutex attributes object (REALTIME THREADS) +pthread_mutexattr_getpshared [] (3) - get and set the process - shared attribute +pthread_mutexattr_gettype [] (3) - get and set the mutex type attribute +pthread_mutexattr_init [] (3) - destroy and initialize the mutex attributes object +pthread_mutexattr_setprioceiling [] (3) - get and set the prioceiling attribute of the mutex attributes object (REALTIME THREADS) +pthread_mutexattr_setprotocol [] (3) - get and set the protocol attribute of the mutex attributes object (REALTIME THREADS) +pthread_mutexattr_setpshared [] (3) - get and set the process - shared attribute +pthread_mutexattr_settype [] (3) - get and set the mutex type attribute +pthread_once [] (3) - dynamic package initialization +pthread_rwlock_destroy [] (3) - destroy and initialize a read - write lock object +pthread_rwlock_init [] (3) - destroy and initialize a read - write lock object +pthread_rwlock_rdlock [] (3) - lock a read-write lock object for reading +pthread_rwlock_timedrdlock [] (3) - lock a read-write lock for reading +pthread_rwlock_timedwrlock [] (3) - lock a read-write lock for writing +pthread_rwlock_tryrdlock [] (3) - lock a read-write lock object for reading +pthread_rwlock_trywrlock [] (3) - lock a read-write lock object for writing +pthread_rwlock_unlock [] (3) - unlock a read-write lock object +pthread_rwlock_wrlock [] (3) - lock a read-write lock object for writing +pthread_rwlockattr_destroy [] (3) - destroy and initialize the read - write lock attributes object +pthread_rwlockattr_getpshared [] (3) - get and set the process - shared attribute of the read - write lock attributes object +pthread_rwlockattr_init [] (3) - destroy and initialize the read - write lock attributes object +pthread_rwlockattr_setpshared [] (3) - get and set the process - shared attribute of the read - write lock attributes object +pthread_self [] (3) - compare thread IDs +pthread_self [] (3) - get the calling thread ID +pthread_self [] (3) - obtain ID of the calling thread +pthread_setaffinity_np [] (3) - set/get CPU affinity of a thread +pthread_setcancelstate [] (3) - set cancelability state +pthread_setcancelstate [] (3) - set cancelability state and type +pthread_setcanceltype [] (3) - set cancelability state +pthread_setcanceltype [] (3) - set cancelability state and type +pthread_setconcurrency [] (3) - get and set the level of concurrency +pthread_setschedparam [] (3) - dynamic thread scheduling parameters access (REALTIME THREADS) +pthread_setschedparam [] (3) - set/get scheduling policy and parameters of a thread +pthread_setschedprio [] (3) - dynamic thread scheduling parameters access (REALTIME THREADS) +pthread_setschedprio [] (3) - set scheduling priority of a thread +pthread_setspecific [] (3) - thread-specific data management +pthread_sigmask [] (3) - examine and change mask of blocked signals +pthread_spin_destroy [] (3) - destroy or initialize a spin lock object (ADVANCED REALTIME THREADS) +pthread_spin_init [] (3) - destroy or initialize a spin lock object (ADVANCED REALTIME THREADS) +pthread_spin_lock [] (3) - lock a spin lock object (ADVANCED REALTIME THREADS) +pthread_spin_trylock [] (3) - lock a spin lock object (ADVANCED REALTIME THREADS) +pthread_spin_unlock [] (3) - unlock a spin lock object (ADVANCED REALTIME THREADS) +pthread_testcancel [] (3) - request delivery of any pending cancellation request +pthread_testcancel [] (3) - set cancelability state +pthread_timedjoin_np [] (3) - try to join with a terminated thread +pthread_tryjoin_np [] (3) - try to join with a terminated thread +pthreads [] (7) - POSIX threads +ptmx and pts [] (4) - pseudo-terminal master and slave +ptrace [] (2) - process trace +ptsname [] (3) - get the name of the slave pseudo-terminal +ptsname_r [] (3) - get the name of the slave pseudo-terminal +ptx [] (1) - produce a permuted index of file contents +pty [] (7) - pseudo-terminal interfaces +pulsar [] (6) - intersecting planes, alpha blending, fog, and textures +punycode_decode [] (3) - decode Punycode to Unicode +punycode_encode [] (3) - encode Unicode to Punycode +punycode_strerror [] (3) - return string describing punycode error code +pushd [] (1) - bash built-in commands, see bash(1) +putc [] (3) - output of characters and strings +putc_unlocked [] (3) - non-locking stdio functions +putchar [] (3) - output of characters and strings +putchar_unlocked [] (3) - non-locking stdio functions +putenv [] (3) - change or add an environment variable +putgrent [] (3) - write a group database entry to a file +putp [] (3) - curses interfaces to terminfo database +putpmsg [] (2) - unimplemented system calls +putpwent [] (3) - write a password file entry +puts [] (3) - output of characters and strings +puts [] (n) - Write to a channel +putspent [] (3) - get shadow password file entry +pututline [] (3) - access utmp file entries +putw [] (3) - input and output of words (ints) +putwc [] (3) - write a wide character to a FILE stream +putwchar [] (3) - write a wide character to standard output +putwin [] (3) - miscellaneous curses utility routines +pvchange [] (8) - change attributes of a physical volume +pvck [] (8) - check physical volume metadata +pvcreate [] (8) - initialize a disk or partition for use by LVM +pvdisplay [] (8) - display attributes of a physical volume +pvmove [] (8) - move physical extents +pvremove [] (8) - remove a physical volume +pvresize [] (8) - resize a disk or partition in use by LVM2 +pvs [] (8) - report information about physical volumes +pvscan [] (8) - scan all disks for physical volumes +pwauth [] (3) - administrator defined password authentication routines +pwauth [] (8) - administrator defined password authentication +pwck [] (8) - verify integrity of password files +pwconv [] (8) - convert to and from shadow passwords and groups +pwd [] (1) - bash built-in commands, see bash(1) +pwd [] (1) - print name of current/working directory +pwd [] (n) - Return the absolute path of the current working directory +pwmconfig [] (8) - tests the PWM outputs of sensors and configures fancontrol +pwrite [] (2) - read from or write to a file descriptor at a given offset +pwunconv [] (8) - convert to and from shadow passwords and groups +pwupdate [] (8) - updates passwd and shadow NIS map +pyro [] (6) - simulate fireworks +python [] (1) - an interpreted, interactive, object-oriented programming language +qcatool [] (1) - command line tool for the Qt Cryptographic Architecture +qecvt [] (3) - convert a floating-point number to a string +qecvt_r [] (3) - convert a floating-point number to a string +qfcvt [] (3) - convert a floating-point number to a string +qfcvt_r [] (3) - convert a floating-point number to a string +qgcvt [] (3) - convert a floating-point number to a string +qiflush [] (3) - curses input options +qix [] (6) - bounce colored lines around a window +qrttoppm [] (1) - convert output from the QRT ray tracer into a portable pixmap +qsort [] (3) - sorts an array +qtdoc [] (1) - Open a Qt help page in Konqueror +qtoptions [] (7) - Common commandline options for all applications based on the Qt toolkit +queens [] (6) - n queens screensaver +query_module [] (2) - query the kernel for various bits pertaining to modules +quiz [] (6) - random knowledge tests +quot [] (8) - summarize filesystem ownership +quota [] (1) - display disk usage and limits +quotacheck [] (8) - scan a filesystem for disk usage, create, check and repair quota files +quotactl [] (2) - manipulate disk quotas +quotaoff [] (8) - turn filesystem quotas on and off +quotaon [] (8) - turn filesystem quotas on and off +quotastats [] (8) - Program to query quota statistics +r128 [] (4) - ATI Rage 128 video driver +radattr.so [] (8) - RADIUS utility plugin for +radeon [] (4) - ATI RADEON video driver +radeonhd [] (4) - AMD GPG (ATI) R5xx/R6xx/R7xx video driver +radiobutton [] (n) - Create and manipulate radiobutton widgets +radius.so [] (8) - RADIUS authentication plugin for +rain [] (6) - animated raindrops display +raise [] (3) - send a signal to the caller +raise [] (n) - Change a window's position in the stacking order +ram [] (4) - ram disk device +rand [] (1) - generate pseudo-random bytes +rand [] (3) - pseudo-random number generator +rand_r [] (3) - pseudo-random number generator +random [] (3) - random number generator +random [] (4) - kernel random number source devices +random [] (6) - random lines from a file or random numbers +random_r [] (3) - reentrant random number generator +ranlib [] (1) - generate index to archive +rapper [] (1) - Raptor RDF parsing and serializing utility +raptor [] (1) - config - script to get information about the installed version of Raptor +rarp [] (8) - manipulate the system RARP table +rarpd [] (8) - answer RARP REQUESTs +ras2tiff [] (1) - create a TIFF file from a Sun rasterfile +rasqal [] (1) - config - script to get information about the installed version of the RDF query library +rastertoescpx [] (1) - enhanced esc/p raster driver for cups +rastertopclx [] (1) - enhanced pcl raster driver for cups +rasttopnm [] (1) - convert a Sun rasterfile into a portable anymap +raw [] (3) - curses input options +raw [] (7) - Linux IPv4 raw sockets +raw [] (8) - bind a Linux raw character device +raw2tiff [] (1) - create a TIFF file from a raw data +rawmemchr [] (3) - scan memory for a character +rawtopgm [] (1) - convert raw grayscale bytes into a portable graymap +rawtoppm [] (1) - convert raw RGB bytes into a portable pixmap +rb [] (1) - XMODEM, YMODEM, ZMODEM (Batch) file receive +rbash [] (1) - restricted bash, see bash(1) +rc.inet1 [] (8) - Slackware network configuration script +rc.inet1.conf [] (5) - Slackware network configuration file +rclock (ouR CLOCK) [] (1) - clock and appointment reminder for X11 +rcmd [] (3) - routines for returning a stream to a remote command +rcp [] (1) - remote file copy +rcs [] (1) - change RCS file attributes +rcsclean [] (1) - clean up working files +rcsdiff [] (1) - compare RCS revisions +rcsfile [] (5) - format of RCS file +rcsfreeze [] (1) - freeze a configuration of sources checked in under RCS +rcsintro [] (1) - introduction to RCS commands +rcsmerge [] (1) - merge RCS revisions +rd [] (6) - bomb - reaction/diffusion textures +rdesktop [] (1) - Remote Desktop Protocol client +rdev [] (8) - query/set image root device, RAM disk size, or video mode +rdfproc [] (1) - Redland RDF processor utility +rdisc [] (8) - network router discovery daemon +rdist [] (1) - remote file distribution client program +rdistd [] (1) - remote file distribution server program +rdjpgcom [] (1) - display text comments from a JPEG file +re [] (3) - Perl pragma to alter regular expression behaviour +re_comp [] (3) - BSD regex functions +re_exec [] (3) - BSD regex functions +re_syntax [] (n) - Syntax of Tcl regular expressions +read [] (1) - bash built-in commands, see bash(1) +read [] (2) - read from a file descriptor +read [] (n) - Read from a channel +read_all_mibs [] (3) - mib_api functions +read_configs [] (3) - read_config functions +read_mib [] (3) - mib_api functions +read_module [] (3) - mib_api functions +read_module_node [] (3) - mib_api functions +read_objid [] (3) - mib_api functions +read_only [] (3) - Make your handler read_only automatically The only purpose of this handler is to return an appropriate error for any requests passed to it in a SET mode +read_premib_configs [] (3) - read_config functions +readahead [] (2) - perform file readahead into page cache +readcd [] (1) - read or write data Compact Discs +readdir [] (2) - read directory entry +readdir [] (3) - read a directory +readdir_r [] (3) - read a directory +readelf [] (1) - Displays information about ELF files +readline [] (3) - get a line from a user with editing +readlink [] (1) - display value of a symbolic link +readlink [] (2) - read value of a symbolic link +readlink_by_handle [] (3) - file handle operations +readlinkat [] (2) - read value of a symbolic link relative to a directory file descriptor +readmsg [] (1) - extract messages from a mail folder +readonly [] (1) - bash built-in commands, see bash(1) +readprofile [] (1) - a tool to read kernel profiling information +readv [] (2) - read or write data into multiple buffers +realloc [] (3) - Allocate and free dynamic memory +realpath [] (3) - return the canonicalized absolute pathname +reboot [] (2) - reboot or enable/disable Ctrl-Alt-Del +reboot [] (8) - stop the system +recno [] (3) - record number database access method +recode [] (1) - sr-latin - convert Serbian text from Cyrillic to Latin script +recv [] (2) - receive a message from a socket +recvfrom [] (2) - receive a message from a socket +recvmsg [] (2) - receive a message from a socket +red [] (1) - text editor +red [] (8) - Random Early Detection +redland [] (1) - config - script to get information about the installed version of Redland +redland [] (1) - db-upgrade - upgrade older Redland databases to 0.9.12 format +redrawwin [] (3) - refresh curses windows and lines +ref [] (1) - Display a C function header +refchan [] (n) - Command handler API of reflected channels, version 1 +refer [] (1) - preprocess bibliographic references for groff +refresh [] (3) - refresh curses windows and lines +regcomp [] (3) - POSIX regex functions +regdbdump [] (8) - parse and print out regulatory rules file +regerror [] (3) - POSIX regex functions +regex [] (7) - POSIX.2 regular expressions +regexec [] (3) - POSIX regex functions +regexp [] (n) - Match a regular expression against a string +regfree [] (3) - POSIX regex functions +register_config_handler [] (3) - read_config functions +register_mib_handlers [] (3) - read_config functions +register_premib_handler unregister_config_handler [] (3) - read_config functions +registry [] (n) - Manipulate the Windows registry +regsub [] (n) - Perform substitutions based on regular expression pattern matching +regulatory.bin [] (5) - The Linux wireless regulatory database +reiserfsck [] (8) - The checking tool for the ReiserFS filesystem +reiserfstune [] (8) - The tunning tool for the ReiserFS filesystem +remainder [] (3) - floating - point remainder function +remainderf [] (3) - floating - point remainder function +remainderl [] (3) - floating - point remainder function +remap_file_pages [] (2) - create a non-linear file mapping +remove [] (3) - remove a file or directory +removepkg [] (8) - remove Slackware packages +removexattr [] (2) - remove an extended attribute +remque [] (3) - insert/remove an item from a queue +remquo [] (3) - remainder and part of quotient +remquof [] (3) - remainder and part of quotient +remquol [] (3) - remainder and part of quotient +rename [] (1) - Rename files +rename [] (2) - change the name or location of a file +rename [] (n) - Rename or delete a command +renameat [] (2) - rename a file relative to directory file descriptors +rendercheck [] (1) - simple tests of the X Render extension +rendition [] (4) - Rendition video driver +renice [] (1) - alter priority of running processes +replace [] (1) - a string-replacement utility +reportview [] (1) - ask KWeatherService to display a weather report +repquota [] (8) - summarize quotas for a filesystem +req [] (1) - PKCS#10 certificate request and certificate generating utility +request_init [] (3) - access control library +request_set [] (3) - access control library +require'caca' c= Caca::Canvas.new(20 [] (3) - 1)) && ! e.quit?) p e d.refresh end +res_init [] (3) - resolver routines +res_mkquery [] (3) - resolver routines +res_query [] (3) - resolver routines +res_querydomain [] (3) - resolver routines +res_search [] (3) - resolver routines +res_send [] (3) - resolver routines +reset [] (1) - initialize a terminal or query terminfo database +reset [] (1) - terminal initialization +reset_prog_mode [] (3) - low-level curses routines +reset_shell_mode [] (3) - low-level curses routines +resetty [] (3) - low-level curses routines +resize [] (1) - set TERMCAP and terminal settings to current xterm window size +resize2fs [] (8) - ext2/ext3 file system resizer +resize_reiserfs [] (8) - resizer tool for the ReiserFS filesystem +resize_term [] (3) - change the curses terminal size +resizecons [] (8) - change kernel idea of the console size +resizeterm [] (3) - change the curses terminal size +resolv.conf [] (5) - resolver configuration file +resolve_stack_dump [] (1) - resolve numeric stack trace dump to symbols +resolveip [] (1) - resolve host name to IP address or vice versa +restartterm [] (3) - curses interfaces to terminfo database +restorefont [] (1) - save or restore the SVGA font for textmode +restorepalette [] (1) - set the color palette for textmode +restoretextmode [] (1) - save or restore the SVGA registers for textmode +return 0; } .fi What does it do? .IP (bu 2 Create a display. Physically [] (3) - like system using the following comman (requiring pkg-config and gcc): +return [] (1) - bash built-in commands, see bash(1) +return [] (n) - Return from a procedure, or set return code of a script +rev [] (1) - reverse lines of a file or files +revnetgroup [] (8) - generate reverse netgroup data +revpath [] (1) - generate a relative path that can be used to undo a change-directory +rewind [] (3) - reposition a stream +rewinddir [] (3) - reset directory stream +rexec [] (3) - return stream to a remote command +rexecd [] (8) - remote execution server +rexima [] (1) - a curses-based (and command-line) mixer +rfcomm [] (1) - RFCOMM configuration utility +rgb2ycbcr [] (1) - convert non-YCbCr TIFF images to a YCbCr TIFF image +rgb3toppm [] (1) - combine three portable graymaps into one portable pixmap +rgrep [] (1) - a recursive, highlighting grep program +richtext [] (1) - View a richtext document, typically a mail message +rindex [] (3) - locate character in string +rindex [] (3) - string operations +rint [] (3) - round to nearest integer +rintf [] (3) - round to nearest integer +rintl [] (3) - round to nearest integer +riocp [] (1) - program to upload files to the Rio Karma +ripemd160 [] (1) - message digests +ripoffline [] (3) - low-level curses routines +ripples [] (6) - interference patterns +ripquery [] (8) - send a RIP request to a remote host +rksh [] (1) - KornShell, a +rksh93 [] (1) - KornShell, a +rlatopam [] (1) - see http://netpbm.sourceforge.net/doc/rlatopam.html +rletopnm [] (1) - convert a Utah Raster Tools RLE image file into a PNM image file +rlog [] (1) - print log messages and other information about RCS files +rlogin [] (1) - remote login +rlogind [] (8) - remote login server +rm [] (1) - remove files or directories +rmail [] (8) - handle remote mail received via uucp +rmdir [] (1) - remove empty directories +rmdir [] (2) - delete a directory +rmmod [] (8) - simple program to remove a module from the Linux Kernel +rmt [] (8) - remote magtape protocol module +rnano [] (1) - Restricted mode for Nano's ANOther editor, an enhanced free Pico clone +rndc [] (8) - confgen - rndc key generation tool +rndc [] (8) - name server control utility +rndc.conf [] (5) - rndc configuration file +robots [] (6) - fight off villainous robots +rocks [] (6) - animation of flying through an asteroid field +roff [] (7) - concepts and history of roff typesetting +roff2dvi [] (1) - transform roff code into dvi mode +roff2html [] (1) - transform roff code into html mode +roff2pdf [] (1) - transform roff code into pdf mode +roff2ps [] (1) - transform roff code into ps mode +roff2text [] (1) - transform roff code into text mode +roff2x [] (1) - transform roff code into x mode +roqet [] (1) - Rasqal RDF query utility +rorschach [] (6) - simulate ink-blot patterns +rot13 [] (6) - decrypt caesar cyphers +rotatelogs [] (8) - Piped logging program to rotate Apache logs +rotzoomer [] (6) - animated rotations and scalings of portions of the screen +round [] (3) - round to nearest integer, away from zero +roundf [] (3) - round to nearest integer, away from zero +roundl [] (3) - round to nearest integer, away from zero +route [] (8) - show / manipulate the IP routing table +routed [] (8) - network routing daemon +routef [] (8) - flush routes +routel [] (8) - list routes with pretty output format +row_merge [] (3) - Calls sub handlers with request for one row at a time +rpc [] (3) - library routines for remote procedure calls +rpc [] (5) - rpc program number data base +rpc.mountd [] (8) - NFS mount daemon +rpc.nfsd [] (8) - NFS server process +rpc.rquotad [] (8) - remote quota server +rpc.rusersd [] (8) - logged in users server +rpc.rwalld [] (8) - write messages to users currently logged in server +rpc.statd [] (8) - NSM status monitor +rpc.yppasswdd [] (8) - NIS password update daemon +rpc.ypxfrd [] (8) - NIS map transfer server +rpcclient [] (1) - tool for executing client side MS-RPC functions +rpcdebug [] (8) - set and clear NFS and RPC kernel debug flags +rpdump [] (1) - alpine remote data utility +rpload [] (1) - alpine remote data utility +rpm [] (8) - RPM Package Manager +rpm2cpio [] (8) - Extract cpio archive from RPM Package Manager (RPM) package +rpmatch [] (3) - determine if the answer to a question is affirmative or negative +rpmbuild [] (8) - Build RPM Package(s) +rpmdeps [] (8) - Generate RPM Package Dependencies +rpmgraph [] (8) - Display RPM Package Dependency Graph +rquota [] (3) - implement quotas on remote machines +rquotad [] (8) - remote quota server +rresvport [] (3) - routines for returning a stream to a remote command +rsa [] (1) - RSA key processing tool +rsa [] (3) - RSA public key cryptosystem +rsautl [] (1) - RSA utility +rscsi [] (1) - remote generic SCSI transport protocol server +rsh [] (1) - remote shell +rsh [] (1) - shell, the +rshd [] (8) - remote shell server +rstart [] (1) - a sample implementation of a Remote Start client +rstartd [] (1) - a sample implementation of a Remote Start rsh helper +rsvg [] (1) - Turn SVG files into raster images +rsync [] (1) - a fast, versatile, remote (and local) file - copying tool +rsyncd.conf [] (5) - configuration file for rsync in daemon mode +rt_sigqueueinfo [] (2) - queue a signal and data to a process +rtacct [] (8) - network statistics tools +rtc [] (4) - real-time clock +rtcwake [] (8) - enter a system sleep state until specified wakeup time +rtf2rtf [] (1) - programs to postprocess the raw RTF generated by the mapping files +rtime [] (3) - get time from a remote machine +rtin [] (1) - A Usenet newsreader +rtin [] (5) - related files +rtld [] (7) - audit - auditing API for the dynamic linker +rtmon [] (8) - listens to and monitors RTnetlink +rtnetlink [] (3) - macros to manipulate rtnetlink messages +rtnetlink [] (7) - Linux IPv4 routing socket +rubik [] (6) - screen saver that solves Rubik's Cube +ruby [] (1) - Interpreted object - oriented scripting language +run [] (1) - with-aspell - script to help use GNU Aspell as an ispell replacement +run [] (8) - parts - run scripts found in a directory +runcon [] (1) - run command with specified security context +rundig [] (1) - sample script to create a search database for ht://Dig +runlevel [] (8) - - find the current and previous system runlevel +runscript [] (1) - script interpreter for minicom +runx [] (1) - try to overcome problems of Xfree96 restoring textmode using svgalib +rup [] (1) - remote status display +ruptime [] (1) - show host status of local machines +ruserok [] (3) - routines for returning a stream to a remote command +rusers [] (1) - who is logged in to machines on local network +rvnamed [] (8) - reverse name resolution daemon for +rwall [] (1) - send a message to users logged on a host +rwho [] (1) - who is logged in on local machines +rwhod [] (8) - system status server +rx [] (1) - XMODEM, YMODEM, ZMODEM (Batch) file receive +rxvt (ouR XVT) [] (1) - a VT102 emulator for the X window system +rz [] (1) - XMODEM, YMODEM, ZMODEM (Batch) file receive +rzip [] (1) - a large-file compression program +s3virge [] (4) - S3 ViRGE video driver +s_client [] (1) - SSL/TLS client program +s_server [] (1) - SSL/TLS server program +s_time [] (1) - SSL/TLS performance timing program +sa [] (8) - summarizes accounting information +sa1 [] (8) - Collect and store binary data in the system activity daily data file +sa2 [] (8) - Write a daily report in the /var/log/sa directory +sadc [] (8) - System activity data collector +sadf [] (1) - Display data collected by sar in multiple formats +safe_mysqld [] (1) - MySQL server startup script +sail [] (6) - multi-user wooden ships and iron men +samba [] (7) - A Windows SMB/CIFS fileserver for UNIX +sane [] (1) - config - get information about the installed version of libsane +sane [] (1) - find-scanner - find SCSI and USB scanners and their device files +sane [] (5) - abaton - SANE backend for Abaton flatbed scanners +sane [] (5) - agfafocus - SANE backend for AGFA Focus flatbed scanners +sane [] (5) - apple - SANE backend for Apple flatbed scanners +sane [] (5) - artec - SANE backend for Artec flatbed scanners +sane [] (5) - artec_eplus48u - SANE backend for the scanner Artec E+ 48U and re-badged models +sane [] (5) - as6e - SANE backend for using the Artec AS6E parallel port interface scanner +sane [] (5) - avision - SANE backend for original Avision and Avision OEM scanners (HP, Minolta, Mitsubishi, UMAX and possibly more) flatbed and film scanners +sane [] (5) - bh - SANE backend for Bell+Howell Copiscan II series document scanners +sane [] (5) - canon - SANE backend for Canon SCSI scanners +sane [] (5) - canon630u - SANE backend for the Canon 630u USB flatbed scanner +sane [] (5) - canon_pp - SANE backend for Canon CanoScan Parallel Port flatbed scanners +sane [] (5) - cardscan - SANE backend for Corex CardScan 800c usb scanner +sane [] (5) - coolscan - SANE backend for Nikon film-scanners +sane [] (5) - coolscan2 - SANE backend for Nikon Coolscan film scanners +sane [] (5) - dc210 - SANE backend for Kodak DC210 Digital Camera +sane [] (5) - dc240 - SANE backend for Kodak DC240 Digital Camera +sane [] (5) - dc25 - SANE backend for Kodak DC20/DC25 Digital Cameras +sane [] (5) - dll - SANE dynamic backend loader +sane [] (5) - dmc - SANE backend for the Polaroid Digital Microscope Camera +sane [] (5) - epjitsu - SANE backend for Epson-based Fujitsu USB scanners +sane [] (5) - epson - SANE backend for EPSON scanners +sane [] (5) - fujitsu - SANE backend for Fujitsu flatbed and ADF scanners +sane [] (5) - genesys - SANE backend for GL646 and GL841 based USB flatbed scanners +sane [] (5) - gphoto2 - SANE backend for gphoto2 supported cameras +sane [] (5) - gt68xx - SANE backend for GT-68XX based USB flatbed scanners +sane [] (5) - hp - SANE backend for HP ScanJet scanners +sane [] (5) - hp3500 - SANE backend for Hewlett-Packard ScanJet 3500 series scanners +sane [] (5) - hp3900 - SANE backend for RTS8822 chipset based scanners +sane [] (5) - hp4200 - SANE backend for Hewlett-Packard 4200 scanners +sane [] (5) - hp5400 - SANE backend for Hewlett-Packard 54XX scanners +sane [] (5) - hp5590 - SANE backend for Hewlett-Packard 5550/5590/7650 Workgroup/Document scanners +sane [] (5) - hpljm1005 - SANE backend for Hewlett-Packard LaserJet M1005 MFP Scanner +sane [] (5) - hpsj5s - SANE backend for HP ScanJet 5S sheet-fed scanner +sane [] (5) - hs2p - SANE backend for Ricoh SCSI flatbed/ADF scanners +sane [] (5) - ibm - SANE backend for IBM and Ricoh SCSI flatbed scanners +sane [] (5) - leo - SANE backend for LEO Technologies scanners +sane [] (5) - lexmark - SANE backend for Lexmark X1100/X1200 Series scanners +sane [] (5) - ma1509 - SANE backend for Mustek BearPaw 1200F USB scanner +sane [] (5) - matsushita - SANE backend for Panasonic KV-SS high speed scanners +sane [] (5) - microtek - SANE backend for Microtek scanners +sane [] (5) - microtek2 - SANE backend for Microtek scanners with SCSI-2 command set +sane [] (5) - mustek - SANE backend for Mustek SCSI flatbed scanners (and some other devices) +sane [] (5) - mustek_pp - SANE backend for Mustek parallel port flatbed scanners +sane [] (5) - mustek_usb - SANE backend for Mustek USB flatbed scanners +sane [] (5) - mustek_usb2 - SANE backend for SQ113 based USB flatbed scanners +sane [] (5) - nec - SANE backend for NEC scanners +sane [] (5) - net - SANE network backend +sane [] (5) - niash - SANE backend for scanners based on the NIASH chipset +sane [] (5) - pie - SANE backend for PIE, Devcom and AdLib SCSI flatbed scanners +sane [] (5) - pint - SANE backend for scanners that use the PINT device driver +sane [] (5) - pixma - SANE backend for Canon PIXMA MP series +sane [] (5) - plustek - SANE backend for LM983[1/2/3] based USB flatbed scanners +sane [] (5) - plustek_pp - SANE backend for Plustek parallel port flatbed scanners +sane [] (5) - pnm - SANE PNM image reader pseudo-backend +sane [] (5) - qcam - SANE backend for Connectix QuickCam cameras +sane [] (5) - ricoh - SANE backend for Ricoh flatbed scanners +sane [] (5) - s9036 - SANE backend for Siemens 9036 flatbed scanners +sane [] (5) - sceptre - SANE backend for SCEPTRE scanners +sane [] (5) - scsi - SCSI adapter tips for scanners +sane [] (5) - sharp - SANE backend for SHARP scanners +sane [] (5) - sm3600 - SANE backend for Microtek scanners with M011 USB chip +sane [] (5) - sm3840 - SANE backend for Microtek scanners with SCAN08 USB chip +sane [] (5) - snapscan - SANE backend for AGFA SnapScan flatbed scanners +sane [] (5) - sp15c - SANE backend for Fujitsu ScanPartner 15C flatbed scanner +sane [] (5) - st400 - SANE backend for Siemens ST/Highscan flatbed scanners +sane [] (5) - stv680 - SANE backend for STV680 camera's +sane [] (5) - tamarack - SANE backend for Tamarack flatbed scanners +sane [] (5) - teco1 - SANE backend for TECO / RELISYS scanners +sane [] (5) - teco2 - SANE backend for TECO / RELISYS scanners +sane [] (5) - teco3 - SANE backend for TECO / RELISYS scanners +sane [] (5) - test - SANE backend for testing frontends +sane [] (5) - u12 - SANE backend for Plustek USB flatbed scanners, based on older parport designs +sane [] (5) - umax - SANE backend for UMAX scanners +sane [] (5) - umax1220u - SANE backend for the UMAX Astra 1220U and similar scanners +sane [] (5) - umax_pp - SANE backend for Umax Astra parallel port flatbed scanners +sane [] (5) - usb - USB configuration tips for SANE +sane [] (5) - v4l - SANE interface for Video for Linux API +sane [] (7) - Scanner Access Now Easy: API for accessing scanners +saned [] (8) - SANE network daemon +sar [] (1) - Collect, report, or save system activity information +sasl_authorize_t [] (3) - The SASL authorization callback +sasl_auxprop [] (3) - How to work with SASL auxiliary properties +sasl_auxprop_getctx [] (3) - Acquire an auxiliary property context +sasl_auxprop_request [] (3) - Request Auxiliary Properties from SASL +sasl_callbacks [] (3) - How to work with SASL callbacks +sasl_chalprompt_t [] (3) - Realm Acquisition Callback +sasl_checkapop [] (3) - Check an APOP challenge/response +sasl_checkpass [] (3) - Check a plaintext password +sasl_client_init [] (3) - SASL client authentication initialization +sasl_client_new [] (3) - Create a new client authentication object +sasl_client_start [] (3) - Begin an authentication negotiation +sasl_client_step [] (3) - Perform a step in the authentication negotiation +sasl_decode [] (3) - Decode data received +sasl_dispose [] (3) - Dispose of a SASL connection object +sasl_done [] (3) - Dispose of a SASL connection object +sasl_encode [] (3) - Encode data for transport to authenticated host +sasl_errdetail [] (3) - Retrieve detailed information about an error +sasl_errors [] (3) - SASL error codes +sasl_errstring [] (3) - Translate a SASL return code to a human-readable form +sasl_getconfpath_t [] (3) - The SASL callback to indicate location of the config files +sasl_getopt_t [] (3) - The SASL get option callback +sasl_getpath_t [] (3) - The SASL callback to indicate location of the mechanism drivers +sasl_getprop [] (3) - Get a SASL property +sasl_getrealm_t [] (3) - Realm Acquisition Callback +sasl_getsecret_t [] (3) - The SASL callback for secrets (passwords) +sasl_getsimple_t [] (3) - The SASL callback for username/authname/realm +sasl_idle [] (3) - Perform precalculations during an idle period +sasl_listmech [] (3) - Retrieve a list of the supported SASL mechanisms +sasl_log_t [] (3) - The SASL logging callback +sasl_server_init [] (3) - SASL server authentication initialization +sasl_server_new [] (3) - Create a new server authentication object +sasl_server_start [] (3) - Begin an authentication negotiation +sasl_server_step [] (3) - Perform a step in the authentication negotiation +sasl_server_userdb_checkpass_t [] (3) - Plaintext Password Verification Callback +sasl_server_userdb_setpass_t [] (3) - UserDB Plaintext Password Setting Callback +sasl_setpass [] (3) - Check a plaintext password +sasl_setprop [] (3) - Set a SASL property +sasl_user_exists [] (3) - Check if a user exists on server +sasl_verifyfile_t [] (3) - The SASL file verification +saslauthd [] (8) - sasl authentication server +sasldblistusers2 [] (8) - list users in sasldb +saslpasswd2 [] (8) - set a user's sasl password +savage [] (4) - S3 Savage video driver +save_d [] (3) - AA-lib driver used to save ascii-art image into file in used specified format +savelog [] (8) - save a log file +savetextmode [] (1) - save or restore the complete SVGA status for textmode +savetty [] (3) - low-level curses routines +sb [] (1) - XMODEM, YMODEM, ZMODEM file send +sballs [] (6) - draws balls spinning like crazy in GL +sbigtopgm [] (1) - convert an SBIG CCDOPS file into a portable graymap +sbrk [] (2) - change data segment size +sc [] (1) - spreadsheet calculator +scalar [] (3) - Process scalars easily +scalar_group [] (3) - Process groups of scalars +scalb [] (3) - multiply floating-point number by integral power of radix (OBSOLETE) +scalbf [] (3) - multiply floating-point number by integral power of radix (OBSOLETE) +scalbl [] (3) - multiply floating-point number by integral power of radix (OBSOLETE) +scalbln [] (3) - multiply floating - point number by integral power of radix +scalblnf [] (3) - multiply floating - point number by integral power of radix +scalblnl [] (3) - multiply floating - point number by integral power of radix +scalbn [] (3) - multiply floating - point number by integral power of radix +scalbnf [] (3) - multiply floating - point number by integral power of radix +scalbnl [] (3) - multiply floating - point number by integral power of radix +scale [] (n) - Create and manipulate scale widgets +scan [] (n) - Parse string using conversion specifiers in the style of sscanf +scanadf [] (1) - acquire multiple images from a scanner equipped with an ADF +scandir [] (3) - scan a directory for matching entries +scanf [] (3) - input format conversion +scanimage [] (1) - scan an image +scanw [] (3) - convert formatted input from a curses window +scdaemon [] (1) - Smartcard daemon for the GnuPG system +scgcheck [] (1) - check and validate the ABI of libscg +sched_get_priority_max [] (2) - get static priority range +sched_get_priority_min [] (2) - get static priority range +sched_getaffinity [] (2) - set and get a process's CPU affinity mask +sched_getcpu [] (3) - determine CPU on which the calling thread is running +sched_getparam [] (2) - set and get scheduling parameters +sched_getscheduler [] (2) - set and get scheduling policy/parameters +sched_rr_get_interval [] (2) - get the SCHED_RR interval for the named process +sched_setaffinity [] (2) - set and get a process's CPU affinity mask +sched_setparam [] (2) - set and get scheduling parameters +sched_setscheduler [] (2) - set and get scheduling policy/parameters +sched_yield [] (2) - yield the processor +scim [] (1) - make-table - generate data file for SCIM generic table module +scp [] (1) - secure copy (remote file copy program) +scr_dump [] (3) - read (write) a curses screen from (to) a file +scr_init [] (3) - read (write) a curses screen from (to) a file +scr_restore [] (3) - read (write) a curses screen from (to) a file +scr_set [] (3) - read (write) a curses screen from (to) a file +screen [] (1) - screen manager with VT100/ANSI terminal emulation +script [] (1) - make typescript of terminal session +scriptreplay [] (1) - play back typescripts, using timing information +scrl [] (3) - scroll a curses window +scroll [] (3) - scroll a curses window +scrollbar [] (n) - Create and manipulate scrollbar widgets +scrollok [] (3) - curses output options +scrolltest [] (6) - tests some scrolling algorithms with svgalib +scsi_id [] (8) - retrieve and generate a unique SCSI identifier +scsitape [] (1) - control SCSI tape devices +sd [] (4) - Driver for SCSI Disk Drives +sdiff [] (1) - side-by-side merge of file differences +sdparm [] (8) - fetch and potentially change SCSI device attributes. Send commands +sdptool [] (1) - control and interrogate SDP servers +seamonkey [] (1) - an internet application suite (browser, mail, etc.) +securetty [] (5) - file which lists ttys from which root can log in +security [] (2) - unimplemented system calls +sed [] (1) - stream editor for filtering and transforming text +seed48 [] (3) - generate uniformly distributed pseudo-random numbers +seed48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +seek [] (n) - Change the access position for an open channel +seekdir [] (3) - set the position of the next readdir() call in the directory stream +select [] (2) - synchronous I/O multiplexing +selection [] (n) - Manipulate the X selection +sem_close [] (3) - close a named semaphore +sem_destroy [] (3) - destroy an unnamed semaphore +sem_getvalue [] (3) - get the value of a semaphore +sem_init [] (3) - initialize an unnamed semaphore +sem_open [] (3) - initialize and open a named semaphore +sem_overview [] (7) - Overview of POSIX semaphores +sem_post [] (3) - unlock a semaphore +sem_timedwait [] (3) - lock a semaphore +sem_trywait [] (3) - lock a semaphore +sem_unlink [] (3) - remove a named semaphore +sem_wait [] (3) - lock a semaphore +semctl [] (2) - semaphore control operations +semget [] (2) - get a semaphore set identifier +semop [] (2) - semaphore operations +semtimedop [] (2) - semaphore operations +send [] (2) - send a message on a socket +send [] (n) - Execute a command in a different application +send_easy_trap [] (3) - send TRAPs or INFORMs from a Net-SNMP MIB module +send_trap_vars [] (3) - send TRAPs or INFORMs from a Net-SNMP MIB module +send_v2trap [] (3) - send TRAPs or INFORMs from a Net-SNMP MIB module +sendfile [] (2) - transfer data between file descriptors +sendiso [] (1) - send IEEE 1394 isochronous packets from dump file +sendmail [] (8) - an electronic mail transport agent +sendmsg [] (2) - send a message on a socket +sendto [] (2) - send a message on a socket +sensors [] (1) - print sensors information +sensors [] (8) - detect - detect hardware monitoring chips +sensors.conf [] (5) - libsensors configuration file +seq [] (1) - print a sequence of numbers +serialize [] (3) - Calls sub handlers one request at a time +services [] (5) - Internet network services list +sess_id [] (1) - SSL/TLS session handling utility +sessreg [] (1) - manage utmp/wtmp entries for non-init clients +set [] (1) - bash built-in commands, see bash(1) +set [] (n) - Read and write variables +set_curterm [] (3) - curses interfaces to terminfo database +set_mempolicy [] (2) - set default NUMA memory policy for a process and its children +set_term [] (3) - curses screen initialization and manipulation routines +set_thread_area [] (2) - Set a Thread Local Storage (TLS) area +set_tid_address [] (2) - set pointer to thread ID +setaliasent [] (3) - read an alias entry +setarch [] (8) - change reported architecture in new program environment and set personality flags +setbuf [] (3) - stream buffering operations +setbuffer [] (3) - stream buffering operations +setcap [] (8) - set file capabilities +setcchar [] (3) - Get a wide character string and rendition from a cchar_t or set a cchar_t from a wide-character string +setcontext [] (2) - get or set the user context +setdomainname [] (2) - get/set domain name +setegid [] (2) - set effective user or group ID +setenv [] (3) - change or add an environment variable +seteuid [] (2) - set effective user or group ID +setfacl [] (1) - set file access control lists +setfattr [] (1) - set extended attributes of filesystem objects +setfdprm [] (1) - sets user-provided floppy disk parameters +setfont [] (8) - load EGA/VGA console screen font +setfsent [] (3) - handle fstab entries +setfsgid [] (2) - set group identity used for file system checks +setfsuid [] (2) - set user identity used for file system checks +setgid [] (2) - set group identity +setgrent [] (3) - get group file entry +setgroups [] (2) - get/set list of supplementary group IDs +sethostent [] (3) - get network host entry +sethostid [] (3) - get or set the unique identifier of the current host +sethostname [] (2) - get/set hostname +seticons [] (1) - sets the icon images used in Window Maker +setitimer [] (2) - get or set value of an interval timer +setjmp [] (3) - save stack context for non-local goto +setkey [] (3) - encrypt 64-bit messages +setkey_r [] (3) - encrypt 64-bit messages +setkeycodes [] (8) - load kernel scancode-to-keycode mapping table entries +setleds [] (1) - set the keyboard leds +setlinebuf [] (3) - stream buffering operations +setlocale [] (3) - set the current locale +setlogmask [] (3) - set log priority mask +setmclk [] (1) - adjust the memory timing of certain Cirrus cards +setmetamode [] (1) - define the keyboard meta key handling +setmntent [] (3) - get file system descriptor file entry +setnetent [] (3) - get network entry +setnetgrent [] (3) - handle network group entries +setpci [] (8) - configure PCI devices +setpgid [] (2) - set/get process group +setpgrp [] (2) - set/get process group +setpriority [] (2) - get/set program scheduling priority +setprotoent [] (3) - get protocol entry +setpwent [] (3) - get password file entry +setquota [] (8) - set disk quotas +setregid [] (2) - set real and/or effective user or group ID +setresgid [] (2) - set real, effective and saved user or group ID +setresuid [] (2) - set real, effective and saved user or group ID +setreuid [] (2) - set real and/or effective user or group ID +setrlimit [] (2) - get/set resource limits +setrpcent [] (3) - get RPC entry +setscrreg [] (3) - curses output options +setserial [] (8) - get/set Linux serial port information +setservent [] (3) - get service entry +setsid [] (1) - run a program in a new session +setsid [] (2) - creates a session and sets the process group ID +setsockopt [] (2) - get and set options on sockets +setspent [] (3) - get shadow password file entry +setstate [] (3) - random number generator +setstate_r [] (3) - reentrant random number generator +setstyle [] (1) - set style related options for Window Maker or loads a theme +setsyx [] (3) - low-level curses routines +setterm [] (1) - set terminal attributes +setterm [] (3) - curses interfaces to terminfo database +settimeofday [] (2) - get / set time +setttyent [] (3) - get ttys file entry +setuid [] (2) - set user identity +setup [] (2) - setup devices and file systems, mount root file system +setupterm [] (3) - curses interfaces to terminfo database +setusershell [] (3) - get permitted user shells +setutent [] (3) - access utmp file entries +setvbuf [] (3) - stream buffering operations +setxattr [] (2) - set an extended attribute value +setxkbmap [] (1) - set the keyboard using the X Keyboard Extension +sfdisk [] (8) - Partition table manipulator for Linux +sfq [] (8) - Stochastic Fairness Queueing +sftp [] (1) - secure file transfer program +sftp [] (8) - server - SFTP server subsystem +sg [] (1) - execute command as different group ID +sgetmask [] (2) - manipulation of signal mask (obsolete) +sgetspent [] (3) - get shadow password file entry +sgetspent_r [] (3) - get shadow password file entry +sgi2tiff [] (1) - create a TIFF file from an SGI image file +sgitopnm [] (1) - convert a SGI image file to a portable anymap +sgml2html [] (1) - create HTML output from a LinuxDoc DTD SGML source file +sgml2info [] (1) - create GNU info output from a LinuxDoc DTD SGML source file +sgml2latex [] (1) - create LaTeX, DVI, PostScript or PDF output from a LinuxDoc DTD SGML source file +sgml2lyx [] (1) - create LyX output from a LinuxDoc DTD SGML source file +sgml2rtf [] (1) - create RTF output from a LinuxDoc DTD SGML source file +sgml2txt [] (1) - create plain text output from a LinuxDoc DTD SGML source file +sgmlcheck [] (1) - check the syntax of an LinuxDoc DTD sgml source file +sgmldiff [] (1) - Find differences in the markup of two SGML files +sgmlpre [] (1) - handle SGML conditionalization for SGML-tools +sgmlsasp [] (1) - translate output of sgmls using ASP replacement files +sgmlspl [] (1) - a simple post-processor for nsgmls +sh [] (1) - command interpreter (shell) +sha [] (1) - message digests +sha1 [] (1) - message digests +sha1sum [] (1) - compute and check SHA1 message digest +sha224sum [] (1) - compute and check SHA224 message digest +sha256sum [] (1) - compute and check SHA256 message digest +sha384sum [] (1) - compute and check SHA384 message digest +sha512sum [] (1) - compute and check SHA512 message digest +shadebobs [] (6) - oscillating vapor trails +shadow [] (3) - encrypted password file routines +shadow [] (5) - encrypted password file +shadowconfig [] (8) - toggle shadow passwords on and off +shar [] (1) - create shell archives +shasum [] (1) - Print or Check SHA Checksums +shells [] (5) - pathnames of valid login shells +shift [] (1) - bash built-in commands, see bash(1) +shm_open [] (3) - Create/open or unlink POSIX shared memory objects +shm_overview [] (7) - Overview of POSIX shared memory +shm_unlink [] (3) - Create/open or unlink POSIX shared memory objects +shmat [] (2) - shared memory operations +shmctl [] (2) - shared memory control +shmdt [] (2) - shared memory operations +shmget [] (2) - allocates a shared memory segment +shopt [] (1) - bash built-in commands, see bash(1) +showaudio [] (1) - Play an audio email message +showconsolefont [] (8) - Show the current EGA/VGA console screen font +showexternal [] (1) - Fetch and display the body of a mail message that is included by reference +showfont [] (1) - font dumper for X font server +showkey [] (1) - examine the codes sent by the keyboard +showmount [] (8) - show mount information for an NFS server +shownonascii [] (1) - View all or part of a mail message in a non-ASCII font +showpartial [] (1) - Fetch and display the body of a mail message that is included by reference +showpicture [] (1) - View an image received in the mail +showrgb [] (1) - display an rgb color-name database +shred [] (1) - overwrite a file to hide its contents, and optionally delete it +shuf [] (1) - generate random permutations +shutdown [] (2) - shut down part of a full-duplex connection +shutdown [] (8) - bring the system down +shutdown_mib [] (3) - mib_api functions +sierpinski [] (6) - draws Sierpinski triangle fractals +sierpinski3d [] (6) - 3D Sierpinski triangle fractal +sigaction [] (2) - examine and change a signal action +sigaddset [] (3) - POSIX signal set operations +sigaltstack [] (2) - set and/or get signal stack context +sigblock [] (3) - BSD signal API +sigdelset [] (3) - POSIX signal set operations +sigemptyset [] (3) - POSIX signal set operations +sigfillset [] (3) - POSIX signal set operations +siggetmask [] (3) - BSD signal API +sighold [] (3) - System V signal API +sigignore [] (3) - System V signal API +siginterrupt [] (3) - allow signals to interrupt system calls +sigismember [] (3) - POSIX signal set operations +siglongjmp [] (3) - non-local jump to a saved stack context +sigmask [] (3) - BSD signal API +signal [] (2) - ANSI C signal handling +signal [] (7) - overview of signals +signalfd [] (2) - create a file descriptor for accepting signals +signbit [] (3) - test sign of a real floating-point number +signgam [] (3) - log gamma function +significand [] (3) - get mantissa of floating - point number +significandf [] (3) - get mantissa of floating - point number +significandl [] (3) - get mantissa of floating - point number +sigpause [] (3) - atomically release blocked signals and wait for interrupt +sigpending [] (2) - examine pending signals +sigprocmask [] (2) - examine and change blocked signals +sigqueue [] (2) - queue a signal and data to a process +sigrelse [] (3) - System V signal API +sigreturn [] (2) - return from signal handler and cleanup stack frame +sigset [] (3) - System V signal API +sigsetjmp [] (3) - save stack context for non-local goto +sigsetmask [] (3) - BSD signal API +sigsuspend [] (2) - wait for a signal +sigtimedwait [] (2) - synchronously wait for queued signals +sigtrap [] (3) - Perl pragma to enable simple signal handling +sigvec [] (3) - BSD signal API +sigwait [] (3) - wait for a signal +sigwaitinfo [] (2) - synchronously wait for queued signals +siliconmotion [] (4) - Silicon Motion video driver +sin [] (3) - sine function +sincos [] (3) - calculate sin and cos simultaneously +sincosf [] (3) - calculate sin and cos simultaneously +sincosl [] (3) - calculate sin and cos simultaneously +sinf [] (3) - sine function +single2bin [] (1) - Macintosh file format transformer +sinh [] (3) - hyperbolic sine function +sinhf [] (3) - hyperbolic sine function +sinhl [] (3) - hyperbolic sine function +sinl [] (3) - sine function +sirtopnm [] (1) - convert a Solitaire file into a portable anymap +sis [] (4) - SiS and XGI video driver +sisusb [] (4) - SiS USB video driver +size [] (1) - list section sizes and total size +sk98lin [] (4) - Marvell/SysKonnect Gigabit Ethernet driver v6.21 +skill [] (1) - send a signal or report process status +skytentacles [] (6) - 3D tentacles from the sky! +slabtop [] (1) - display kernel slab cache information in real time +slackpkg [] (8) - Automated tool for managing Slackware Linux packages +slackpkg.conf [] (5) - Configuration data for slackpkg +slang) or even the whole screen (VGA). .IP (bu 2 Get the display's associated canvas. A canvas is the surface where everything happens: writing characters [] (3) - like system using the following comman (requiring pkg-config and gcc): +slattach [] (8) - attach a network interface to a serial line +sldtoppm [] (1) - convert an AutoCAD slide file into a portable pixmap +sleep [] (1) - delay for a specified amount of time +sleep [] (3) - Sleep for the specified number of seconds +sliceprint [] (1) - slice documents with long lines +slidescreen [] (6) - permute the screen image like an 8-puzzle +slip [] (6) - sucks your screen into a jet engine +slk_attr [] (3) - curses soft label routines +slk_attr_off [] (3) - curses soft label routines +slk_attr_on [] (3) - curses soft label routines +slk_attr_set [] (3) - curses soft label routines +slk_attroff [] (3) - curses soft label routines +slk_attron [] (3) - curses soft label routines +slk_attrset [] (3) - curses soft label routines +slk_clear [] (3) - curses soft label routines +slk_color [] (3) - curses soft label routines +slk_init [] (3) - curses soft label routines +slk_label [] (3) - curses soft label routines +slk_noutrefresh [] (3) - curses soft label routines +slk_refresh [] (3) - curses soft label routines +slk_restore [] (3) - curses soft label routines +slk_set [] (3) - curses soft label routines +slk_touch [] (3) - curses soft label routines +slocate [] (1) - Security Enhanced version of the GNU Locate +slrn [] (1) - An easy to use NNTP / spool based newsreader +slrnpull [] (1) - Pull a small newsfeed for offline reading +slsh [] (1) - Interpreter for S-Lang scripts +sm [] (8) - notify - Send out NSM reboot notifications +smartctl [] (8) - Control and Monitor Utility for SMART Disks +smartd [] (8) - SMART Disk Monitoring Daemon +smartd.conf [] (5) - SMART Disk Monitoring Daemon Configuration File +smb.conf [] (5) - The configuration file for the Samba suite +smbcacls [] (1) - Set or get ACLs on an NT file or directory names +smbclient [] (1) - ftp-like client to access SMB/CIFS resources on servers +smbcontrol [] (1) - send messages to smbd, nmbd or winbindd processes +smbcquotas [] (1) - Set or get QUOTAs of NTFS 5 shares +smbd [] (8) - server to provide SMB/CIFS services to clients +smbget [] (1) - wget-like utility for download files over SMB +smbgetrc [] (5) - configuration file for smbget +smbpasswd [] (5) - The Samba encrypted password file +smbpasswd [] (8) - change a user's SMB password +smbspool [] (8) - send a print file to an SMB printer +smbstatus [] (1) - report on current Samba connections +smbtar [] (1) - shell script for backing up SMB/CIFS shares directly to UNIX tape drives +smbtree [] (1) - A text based smb network browser +smime [] (1) - S/MIME utility +smproxy [] (1) - Session Manager Proxy +smrsh [] (8) - restricted shell for sendmail +snake [] (6) - display chase game +snice [] (1) - send a signal or report process status +snmp.conf [] (5) - configuration files for the Net-SNMP applications +snmp.conf [] (5) - snmp configuration file for cups +snmp_agent_api [] (3) - embedding an agent into a external application +snmp_alarm_register [] (3) - alarm functions +snmp_alarm_register_hr [] (3) - alarm functions +snmp_alarm_unregister [] (3) - alarm functions +snmp_api_errstring [] (3) - send and receive SNMP messages +snmp_close [] (3) - send and receive SNMP messages +snmp_config [] (5) - handling of Net-SNMP configuration files +snmp_error [] (3) - send and receive SNMP messages +snmp_free_pdu [] (3) - send and receive SNMP messages +snmp_open [] (3) - send and receive SNMP messages +snmp_perror [] (3) - send and receive SNMP messages +snmp_read [] (3) - send and receive SNMP messages +snmp_select_info [] (3) - send and receive SNMP messages +snmp_send [] (3) - send and receive SNMP messages +snmp_sess_async_send [] (3) - session functions +snmp_sess_close [] (3) - session functions +snmp_sess_error [] (3) - session functions +snmp_sess_init [] (3) - send and receive SNMP messages +snmp_sess_init [] (3) - session functions +snmp_sess_open [] (3) - session functions +snmp_sess_perror [] (3) - send and receive SNMP messages +snmp_sess_read [] (3) - session functions +snmp_sess_select_info [] (3) - session functions +snmp_sess_send [] (3) - session functions +snmp_sess_session [] (3) - session functions +snmp_sess_timeout [] (3) - session functions +snmp_set_mib_warnings [] (3) - mib_api functions +snmp_set_save_descriptions [] (3) - mib_api functions +snmp_timeout [] (3) - send and receive SNMP messages +snmpbulkget [] (1) - communicates with a network entity using SNMP GETBULK requests +snmpbulkwalk [] (1) - retrieve a subtree of management values using SNMP GETBULK requests +snmpcmd [] (1) - options and behaviour common to most of the Net-SNMP command-line tools +snmpconf [] (1) - creates and modifies SNMP configuration files +snmpd [] (8) - daemon to respond to SNMP request packets +snmpd.conf [] (5) - configuration file for the Net-SNMP SNMP agent +snmpd.examples [] (5) - example configuration for the Net-SNMP agent +snmpd.internal [] (5) - internal configuration of the Net-SNMP agent +snmpdelta [] (1) - Monitor delta differences in SNMP Counter values +snmpdf [] (1) - display disk space usage on a network entity via SNMP +snmpget [] (1) - communicates with a network entity using SNMP GET requests +snmpgetnext [] (1) - communicates with a network entity using SNMP GETNEXT requests +snmpinform [] (1) - sends an SNMP notification to a manager +snmpnetstat [] (1) - display networking status and configuration information from a network entity via SNMP +snmpset [] (1) - communicates with a network entity using SNMP SET requests +snmpstatus [] (1) - retrieves a fixed set of management information from a network entity +snmptable [] (1) - retrieve an SNMP table and display it in tabular form +snmptest [] (1) - communicates with a network entity using SNMP requests +snmptranslate [] (1) - translate MIB OID names between numeric and textual forms +snmptrap [] (1) - sends an SNMP notification to a manager +snmptrapd [] (8) - Receive and log SNMP trap messages +snmptrapd.conf [] (5) - configuration file for the Net-SNMP notification receiver +snmpusm [] (1) - creates and maintains SNMPv3 users on a network entity +snmpvacm [] (1) - creates and maintains SNMPv3 View-based Access Control entries on a network entity +snmpwalk [] (1) - retrieve a subtree of management values using SNMP GETNEXT requests +snownews [] (1) - console RSS newsreader +snprint_objid [] (3) - mib_api functions +snprint_value [] (3) - mib_api functions +snprint_variable [] (3) - mib_api functions +snprintf [] (3) - formatted output conversion +snscore [] (6) - display chase game +sntp [] (1) - standard SNTP program +sockaddr_in [] (3) - load the C socket.h defines and structure manipulators +sockaddr_un [] (3) - load the C socket.h defines and structure manipulators +sockatmark [] (3) - determine whether socket is at out-of-band mark +sockdown [] (1) - shutdown(2) a socket +socket [] (2) - create an endpoint for communication +socket [] (7) - Linux socket interface +socket [] (n) - Open a TCP network connection +socketcall [] (2) - socket system calls +socketpair [] (2) - create a pair of connected sockets +socklist [] (8) - display list of open sockets +soelim [] (1) - interpret .so requests in groff input +sonar [] (6) - display a sonar scope +sort [] (1) - sort lines of text files +sort [] (3) - perl pragma to control sort() behaviour +source [] (1) - bash built-in commands, see bash(1) +source [] (n) - Evaluate a file or resource as a Tcl script +spctoppm [] (1) - convert an Atari compressed Spectrum file into a portable pixmap +speaker [] (1) - test - command-line speaker test tone generator for ALSA +speed [] (1) - test library performance +speedmine [] (6) - simulates speeding down a rocky mineshaft, or a funky dancing worm +speedtest [] (6) - tests the speed of memory access under svgalib +spheremonics [] (6) - 3d spherical harmonic shapes +spider [] (6) - play double deck solitaire +spin [] (6) - test a 6-dimension mouse or pointer device with svgalib +spinbox [] (n) - Create and manipulate spinbox widgets +spkac [] (1) - SPKAC printing and generating utility +splain [] (1) - produce verbose warning diagnostics +splain [] (3) - produce verbose warning diagnostics +splice [] (2) - splice data to/from a pipe +split [] (1) - split a file into pieces +split [] (n) - Split a string into a proper Tcl list +split2po [] (1) - Creates a po file from two DocBook XML files +splitmail [] (1) - Split a large mail message into MIME-compliant partial messages +splitvt [] (1) - run two shells in a split window +spotlight [] (6) - move spotlight around desktop +spottopgm [] (1) - convert SPOT satellite images to Portable Greymap format +sprint_realloc_objid [] (3) - mib_api functions +sprint_realloc_value [] (3) - mib_api functions +sprint_realloc_variable [] (3) - mib_api functions +sprintf [] (3) - formatted output conversion +sprites [] (3) - like system using the following comman (requiring pkg-config and gcc): +sproingies [] (6) - Q-Bert meets Marble Madness! +spu_create [] (2) - create a new spu context +spu_run [] (2) - execute an SPU context +spufs [] (7) - the SPU file system +sputoppm [] (1) - convert an Atari uncompressed Spectrum file into a portable pixmap +sqlite3 [] (1) - A command line interface for SQLite version 3 +sqrt [] (3) - square root function +sqrtf [] (3) - square root function +sqrtl [] (3) - square root function +squiral [] (6) - square spirals screensaver +srand [] (3) - pseudo-random number generator +srand48 [] (3) - generate uniformly distributed pseudo-random numbers +srand48_r [] (3) - generate uniformly distributed pseudo-random numbers reentrantly +srandom [] (3) - random number generator +srandom_r [] (3) - reentrant random number generator +srptool [] (1) - Simple SRP password tool +ss [] (8) - another utility to investigate sockets +sscanf [] (3) - input format conversion +ssetmask [] (2) - manipulation of signal mask (obsolete) +ssh [] (1) - OpenSSH SSH client (remote login program) +ssh [] (1) - add - adds RSA or DSA identities to the authentication agent +ssh [] (1) - agent - authentication agent +ssh [] (1) - copy-id - install your public key in a remote machine's authorized_keys +ssh [] (1) - keygen - authentication key generation, management and conversion +ssh [] (1) - keyscan - gather ssh public keys +ssh [] (8) - keysign - ssh helper program for host - based authentication +ssh_config [] (5) - OpenSSH SSH client configuration files +sshd [] (8) - OpenSSH SSH daemon +sshd_config [] (5) - OpenSSH SSH daemon configuration file +ssignal [] (3) - software signal facility +st [] (4) - SCSI tape device +stairs [] (6) - Escher's infinite staircase +standards [] (7) - C and UNIX Standards +standend [] (3) - curses character and window attribute control routines +standout [] (3) - curses character and window attribute control routines +starfish [] (6) - radially-symmetric throbbing colormap-hacking graphics demo +start_color [] (3) - curses color manipulation routines +startfluxbox [] (1) - start a fluxbox session +startx [] (1) - initialize an X session +starwars [] (6) - draws a perspective text crawl, like at the beginning of the movie +stash_cache [] (3) - Automatically caches data for certain handlers +stat [] (1) - display file or file system status +stat [] (2) - get file status +states [] (1) - awk alike text processing tool +statfs [] (2) - get file system statistics +statvfs [] (2) - get file system statistics +stdarg [] (3) - variable argument lists +stderr [] (3) - standard I/O streams +stdin [] (3) - standard I/O streams +stdio [] (3) - standard input/output library functions +stdout [] (3) - standard I/O streams +stime [] (2) - set time +stinit [] (8) - initialize SCSI magnetic tape drives +stonerview [] (6) - 3D undulating ribbons of squares +stpcpy [] (3) - copy a string returning a pointer to its end +stpncpy [] (3) - copy a fixed-size string, returning a pointer to its end +strace [] (1) - trace system calls and signals +strange [] (6) - draws strange attractors +strcasecmp [] (3) - compare two strings ignoring case +strcasecmp [] (3) - string operations +strcasestr [] (3) - locate a substring +strcat [] (3) - concatenate two strings +strcat [] (3) - string operations +strchr [] (3) - locate character in string +strchr [] (3) - string operations +strchrnul [] (3) - locate character in string +strcmp [] (3) - compare two strings +strcmp [] (3) - string operations +strcoll [] (3) - compare two strings using the current locale +strcoll [] (3) - string operations +strcpy [] (3) - copy a string +strcpy [] (3) - string operations +strcspn [] (3) - search a string for a set of characters +strcspn [] (3) - string operations +strdup [] (3) - duplicate a string +strdup [] (3) - string operations +strdupa [] (3) - duplicate a string +stream [] (1) - a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats +strerror [] (3) - return string describing error number +strerror_r [] (3) - return string describing error number +strfile [] (8) - create a random access file for storing strings +strfmon [] (3) - convert monetary value to a string +strfry [] (3) - randomize a string +strfry [] (3) - string operations +strftime [] (3) - format date and time +strict [] (3) - Perl pragma to restrict unsafe constructs +string [] (n) - Manipulate strings +stringprep [] (3) - prepare internationalized string +stringprep_4i [] (3) - prepare internationalized string +stringprep_4zi [] (3) - prepare internationalized string +stringprep_check_version [] (3) - check for library version +stringprep_convert [] (3) - encode string using new character set +stringprep_locale_charset [] (3) - return charset used in current locale +stringprep_locale_to_utf8 [] (3) - convert locale encoded string to UTF-8 +stringprep_profile [] (3) - prepare internationalized string +stringprep_strerror [] (3) - return string describing stringprep error code +stringprep_ucs4_nfkc_normalize [] (3) - normalize Unicode string +stringprep_ucs4_to_utf8 [] (3) - convert UCS-4 string to UTF-8 +stringprep_unichar_to_utf8 [] (3) - convert Unicode code point to UTF-8 +stringprep_utf8_nfkc_normalize [] (3) - normalize Unicode string +stringprep_utf8_to_locale [] (3) - encode UTF-8 string to locale encoding +stringprep_utf8_to_ucs4 [] (3) - convert UTF-8 string to UCS-4 +stringprep_utf8_to_unichar [] (3) - convert UTF-8 to Unicode code point +strings [] (1) - find printable strings in a file +strings [] (1) - print the strings of printable characters in files +strings [] (3) - like system using the following comman (requiring pkg-config and gcc): +strip [] (1) - Discard symbols from object files +strlen [] (3) - calculate the length of a string +strlen [] (3) - string operations +strncasecmp [] (3) - compare two strings ignoring case +strncasecmp [] (3) - string operations +strncat [] (3) - concatenate two strings +strncat [] (3) - string operations +strncmp [] (3) - compare two strings +strncmp [] (3) - string operations +strncpy [] (3) - copy a string +strncpy [] (3) - string operations +strndup [] (3) - duplicate a string +strndupa [] (3) - duplicate a string +strnlen [] (3) - determine the length of a fixed-size string +strpbrk [] (3) - search a string for any of a set of characters +strpbrk [] (3) - string operations +strptime [] (3) - convert a string representation of time to a time tm structure +strrchr [] (3) - locate character in string +strrchr [] (3) - string operations +strsep [] (3) - extract token from string +strsep [] (3) - string operations +strsignal [] (3) - return string describing signal +strspn [] (3) - search a string for a set of characters +strspn [] (3) - string operations +strstr [] (3) - locate a substring +strstr [] (3) - string operations +strtod [] (3) - convert ASCII string to floating-point number +strtof [] (3) - convert ASCII string to floating-point number +strtoimax [] (3) - convert string to integer +strtok [] (3) - extract tokens from strings +strtok [] (3) - string operations +strtok_r [] (3) - extract tokens from strings +strtol [] (3) - convert a string to a long integer +strtold [] (3) - convert ASCII string to floating-point number +strtoll [] (3) - convert a string to a long integer +strtoq [] (3) - convert a string to a long integer +strtoul [] (3) - convert a string to an unsigned long integer +strtoull [] (3) - convert a string to an unsigned long integer +strtoumax [] (3) - convert string to integer +strtouq [] (3) - convert a string to an unsigned long integer +struct berval [] (3) - LBER types and allocation functions +struct { magic: uint8_t caca_header[2]; // 'xCAxCA' uint8_t caca_file_type[2]; // 'CV' canvas_header: uint32_t control_size; // Control size (canvas_data [] (3) - canvas_header) uint32_t data_size; // Data size (EOF - canvas_data) +struct { magic: uint8_t caca_header[2]; // 'xCAxCA' uint8_t caca_file_type[2]; // 'FT' font_header: uint32_t control_size; // Control size (font_data [] (3) - font_header) uint32_t data_size; // Data size (EOF - font_data) +strverscmp [] (3) - compare two version strings +strxfrm [] (3) - string operations +strxfrm [] (3) - string transformation +stty [] (1) - change and print terminal line settings +stty [] (2) - unimplemented system calls +stunnel [] (8) - universal SSL tunnel +su [] (1) - change user ID or become super-user +suauth [] (5) - Detailed su control file +subpad [] (3) - create and display curses pads +subs [] (3) - Perl pragma to predeclare sub names +subscriptions.conf [] (5) - subscriptions file for cups +subst [] (n) - Perform backslash, command, and variable substitutions +substrate [] (6) - Grow crystal-like lines on a computational substrate +subwin [] (3) - create curses windows +sudo [] (8) - execute a command as another user +sudoedit [] (8) - execute a command as another user +sudoers [] (5) - list of which users may execute what +suexec [] (8) - Switch user before executing external programs +suffixes [] (7) - list of file suffixes +sulogin [] (8) - Single-user login +sum [] (1) - checksum and count the blocks in a file +superformat [] (1) - format floppies +superquadrics [] (6) - morphing 3d shapes +suspend [] (1) - bash built-in commands, see bash(1) +svgakeymap [] (1) - generates keymaps for svgalib +svgalib [] (7) - a low level graphics library for linux +svgalib.chips [] (7) - Information for Chips and Technologies Users +svgalib.et4000 [] (7) - Information for Tseng ET4000 users +svgalib.faq [] (7) - frequently asked questions about svgalib +svgalib.mach32 [] (7) - Information on the Mach32 chipset driver +svgalibrc [] (5) - the svgalib configuration file +svgtopam [] (1) - see http://netpbm.sourceforge.net/doc/svgtopam.html +svidtune [] (6) - tunes svgalib modes +svipc [] (7) - System V interprocess communication mechanisms +svn [] (1) - Subversion command line client tool +svnadmin [] (1) - Subversion repository administration tool +svndumpfilter [] (1) - Filter a subversion repository 'dumpfile' +svnlook [] (1) - Subversion repository examination tool +svnserve [] (8) - Server for the 'svn' repository access method +svnserve.conf [] (5) - Repository configuration file for svnserve +svnsync [] (1) - Subversion repository synchronization tool +svnversion [] (1) - Produce a compact version number for a working copy +swab [] (3) - swap adjacent bytes +swapcontext [] (3) - manipulate user context +swapoff [] (2) - start/stop swapping to file/device +swapoff [] (8) - enable/disable devices and files for paging and swapping +swapon [] (2) - start/stop swapping to file/device +swapon [] (8) - enable/disable devices and files for paging and swapping +swappo [] (1) - swap msgid and msgstr fields in a PO file +swat [] (8) - Samba Web Administration Tool +swirl [] (6) - draws swirly color-cycling patterns +switch [] (n) - Evaluate one of several scripts, depending on a given value +swprintf [] (3) - formatted wide - character output conversion +sx [] (1) - XMODEM, YMODEM, ZMODEM file send +sxpm [] (1) - Show an XPM (X PixMap) file and/or convert XPM 1 or 2 files to XPM 3 +symcryptrun [] (1) - Call a simple symmetric encryption tool +symlink [] (2) - make a new name for a file +symlink [] (7) - symbolic link handling +symlinkat [] (2) - create a symbolic link relative to a directory file descriptor +synaptics [] (4) - Synaptics touchpad input driver +sync [] (1) - flush file system buffers +sync [] (2) - commit buffer cache to disk +sync [] (8) - synchronize data on disk with memory +sync_file_range [] (2) - sync a file segment with disk +synclient [] (1) - commandline utitlity to query and modify Synaptics driver options +syncok [] (3) - create curses windows +syndaemon [] (1) - a program that monitors keyboard activity and disables the touchpad when the keyboard is being used +syscall [] (2) - indirect system call +syscalls [] (2) - Linux system calls +sysconf [] (3) - Get configuration information at runtime +sysctl [] (2) - read/write system parameters +sysctl [] (8) - configure kernel parameters at runtime +sysctl.conf [] (5) - sysctl(8) preload/configuration file +sysfs [] (2) - get file system type information +sysinfo [] (2) - returns information on overall system statistics +sysklogd [] (8) - Linux system logging utilities +syslog [] (2) - read and/or clear kernel message ring buffer; set console_loglevel +syslog [] (3) - send messages to the system logger +syslog.conf [] (5) - syslogd(8) configuration file +system [] (3) - execute a shell command +systool [] (1) - view system device information by bus, class, and topology +sysv_signal [] (3) - signal handling with System V semantics +sz [] (1) - XMODEM, YMODEM, ZMODEM file send +table [] (3) - Helps you implement a table +table_array [] (3) - Helps you implement a table when data can be stored locally +table_data [] (3) - Helps you implement a table with datamatted storage +table_dataset [] (3) - Helps you implement a table with automatted storage +table_iterator [] (3) - The table iterator helper is designed to simplify the task of writing a table handler for the net-snmp agent when the data being accessed is not in an oid sorted form and must be accessed externally +tac [] (1) - concatenate and print files in reverse +tail [] (1) - output the last part of files +tailf [] (1) - follow the growth of a log file +talk [] (1) - talk to another user +talkd [] (8) - remote user communication server +tan [] (3) - tangent function +tanf [] (3) - tangent function +tangram [] (6) - watch the computer solve tangram puzzles +tanh [] (3) - hyperbolic tangent function +tanhf [] (3) - hyperbolic tangent function +tanhl [] (3) - hyperbolic tangent function +tanl [] (3) - tangent function +tapeinfo [] (1) - report SCSI tape device info +tar [] (1) - The GNU version of the tar archiving utility +tar [] (1) - manipulate tape archives +tar [] (5) - format of tape archive files +taskset [] (1) - retrieve or set a process's CPU affinity +tbf [] (8) - Token Bucket Filter +tbl [] (1) - format tables for troff +tc [] (8) - show / manipulate traffic control settings +tcdrain [] (3) - get and set terminal attributes, line control, get and set baud rate +tcflow [] (3) - get and set terminal attributes, line control, get and set baud rate +tcflush [] (3) - get and set terminal attributes, line control, get and set baud rate +tcgetattr [] (3) - get and set terminal attributes, line control, get and set baud rate +tcgetpgrp [] (3) - get and set terminal foreground process group +tcgetsid [] (3) - get session ID +tcl_endOfWord [] (n) - standard library of Tcl procedures +tcl_findLibrary [] (n) - standard library of Tcl procedures +tcl_startOfNextWord [] (n) - standard library of Tcl procedures +tcl_startOfPreviousWord [] (n) - standard library of Tcl procedures +tcl_wordBreakAfter [] (n) - standard library of Tcl procedures +tcl_wordBreakBefore [] (n) - standard library of Tcl procedures +tclsh [] (1) - Simple shell containing Tcl interpreter +tcltest [] (n) - Test harness support code and utilities +tclvars [] (n) - Variables used by Tcl +tcp [] (7) - TCP protocol +tcpd [] (8) - access control facility for internet services +tcpdchk [] (8) - tcp wrapper configuration checker +tcpdmatch [] (8) - tcp wrapper oracle +tcpdump [] (1) - dump traffic on a network +tcsendbreak [] (3) - get and set terminal attributes, line control, get and set baud rate +tcsetattr [] (3) - get and set terminal attributes, line control, get and set baud rate +tcsetpgrp [] (3) - get and set terminal foreground process group +tcsh [] (1) - C shell with file name completion and command line editing +tdbbackup [] (8) - tool for backing up and for validating the integrity of samba .tdb files +tdbdump [] (8) - tool for printing the contents of a TDB file +tdbtool [] (8) - manipulate the contents TDB files +tdelete [] (3) - manage a binary tree +tdestroy [] (3) - manage a binary tree +tdfx [] (4) - 3Dfx video driver +teachgammon [] (6) - learn to play backgammon +teachjove [] (1) - learn how to use the JOVE editor +tee [] (1) - read from standard input and write to standard output and files +tee [] (2) - duplicating pipe content +telinit [] (8) - process control initialization +tell [] (n) - Return current access position for an open channel +telldir [] (3) - return current location in directory stream +telnet [] (1) - user interface to the TELNET protocol +telnetd [] (8) - DARPA telnet protocol server +tempfile [] (1) - create a temporary file in a safe manner +tempnam [] (3) - create a name for a temporary file +term [] (5) - format of compiled term file +term [] (7) - conventions for naming terminal types +term_attrs [] (3) - curses environment query routines +termattrs [] (3) - curses environment query routines +termcap [] (5) - terminal capability database +terminfo [] (5) - terminal capability data base +termio [] (7) - the System V terminal driver interface +termios [] (3) - get and set terminal attributes, line control, get and set baud rate +termname [] (3) - curses environment query routines +test [] (1) - bash built-in commands, see bash(1) +test [] (1) - check file types and compare values +testaccel [] (6) - test the old style blitter functions and vga_ext_set() +testgl [] (6) - test the vgagl library +testlibraw [] (1) - run basic functionality tests on libraw1394 +testlinear [] (6) - test a linear frame buffer +testparm [] (1) - check an smb.conf configuration file for internal correctness +texi2dvi [] (1) - convert Texinfo documents to DVI +texi2dvi [] (1) - convert Texinfo documents to PDF +texi2dvi4a2ps [] (1) - Compile Texinfo and LaTeX files to DVI or PDF +texindex [] (1) - sort Texinfo index files +texinfo [] (5) - software documentation system +text [] (n) - Create and manipulate text widgets +textdomain [] (3) - set domain for future gettext() calls +textmode [] (1) - save or restore the complete SVGA status for textmode +tfind [] (3) - manage a binary tree +tfmtodit [] (1) - create font files for use with groff -Tdvi +tftp [] (1) - IPv4 Trivial File Transfer Protocol client +tftpd [] (8) - IPv4 Trivial File Transfer Protocol server +tgamma [] (3) - true gamma function +tgammaf [] (3) - true gamma function +tgammal [] (3) - true gamma function +tgatoppm [] (1) - convert TrueVision Targa file into a portable pixmap +tgetent [] (3) - direct curses interface to the terminfo capability database +tgetflag [] (3) - direct curses interface to the terminfo capability database +tgetnum [] (3) - direct curses interface to the terminfo capability database +tgetstr [] (3) - direct curses interface to the terminfo capability database +tgkill [] (2) - send a signal to a thread +tgoto [] (3) - direct curses interface to the terminfo capability database +the canvas will be automatically freed as well. You can then compile this code on an UNIX [] (3) - like system using the following comman (requiring pkg-config and gcc): +the display is either a window or a context in a terminal (ncurses [] (3) - like system using the following comman (requiring pkg-config and gcc): +thinkjettopbm [] (1) - convert HP ThinkJet printer commands file to PBM +thornbird [] (6) - Bird in a Thornbush fractal +threads::shared [] (3) - Perl extension for sharing data structures between threads +threed [] (6) - The svgalib 3d demo +threedkit [] (7) - a set of functions for 3D support +thumbnail [] (1) - create a TIFF file with thumbnail images +tic [] (1) - the terminfo entry-description compiler +tiff2bw [] (1) - convert a color TIFF image to greyscale +tiff2pdf [] (1) - convert a TIFF image to a PDF document +tiff2ps [] (1) - convert a TIFF image to (tm +tiff2rgba [] (1) - convert a TIFF image to RGBA color space +tiffcmp [] (1) - compare two TIFF files +tiffcp [] (1) - copy (and possibly convert) a TIFF file +tiffdither [] (1) - convert a greyscale image to bilevel using dithering +tiffdump [] (1) - print verbatim information about TIFF files +tiffgt [] (1) - display an image stored in a TIFF file (Silicon Graphics version) +tifficc [] (1) - little cms ICC profile applier for TIFF +tiffinfo [] (1) - print information about TIFF files +tiffmedian [] (1) - apply the median cut algorithm to data in a TIFF file +tiffset [] (1) - set a field in a TIFF header +tiffsplit [] (1) - split a multi-image TIFF into single - image TIFF files +tiffsv [] (1) - save an image from the framebuffer in a TIFF file (Silicon Graphics version) +tifftopnm [] (1) - convert a TIFF file into a portable anymap +tigetflag [] (3) - curses interfaces to terminfo database +tigetnum [] (3) - curses interfaces to terminfo database +tigetstr [] (3) - curses interfaces to terminfo database +time [] (1) - time a simple command or give resource usage +time [] (2) - get time in seconds +time [] (7) - overview of time and timers +time [] (n) - Time the execution of a script +timed [] (8) - time server daemon +timedc [] (8) - timed control program +timegm [] (3) - inverses of gmtime and localtime +timelimit [] (1) - spawn a subprocess and if the child does not finish within the time limit either kill it, or exit, leaving the child in the background +timelocal [] (3) - inverses of gmtime and localtime +timelord [] (8) - Macintosh time server daemon +timeout [] (1) - run a command with a time limit +timeout [] (3) - curses input options +timer_create [] (2) - create a POSIX per-process timer +timer_delete [] (2) - delete a POSIX per-process timer +timer_getoverrun [] (2) - get overrun count for a POSIX per-process timer +timer_gettime [] (2) - arm/disarm and fetch state of POSIX per - process timer +timer_settime [] (2) - arm/disarm and fetch state of POSIX per - process timer +timeradd [] (3) - timeval operations +timerclear [] (3) - timeval operations +timercmp [] (3) - timeval operations +timerfd_create [] (2) - timers that notify via file descriptors +timerfd_gettime [] (2) - timers that notify via file descriptors +timerfd_settime [] (2) - timers that notify via file descriptors +timerisset [] (3) - timeval operations +timersub [] (3) - timeval operations +times [] (1) - bash built-in commands, see bash(1) +times [] (2) - get process times +timetunnel [] (6) - Plasma tunnels fade in and out +timezone [] (3) - initialize time conversion information +tin [] (1) - A Usenet newsreader +tin [] (5) - related files +tinews.pl [] (1) - Post and sign an article via NNTP +tix [] (n) - Manipulate internal states of the Tix library +tixBalloon [] (n) - Create and manipulate tixBalloon widgets +tixButtonBox [] (n) - Create and manipulate Tix ButtonBox widgets +tixCheckList [] (n) - Create and manipulate tixCheckList widgets +tixComboBox [] (n) - Create and manipulate tixComboBox widgets +tixControl [] (n) - Create and manipulate tixControl widgets +tixDestroy [] (n) - Destroy Tix Objects +tixDirList [] (n) - Create and manipulate tixDirList widgets +tixDirSelectDialog [] (n) - Create and manipulate directory selection dialogs +tixDirTree [] (n) - Create and manipulate tixDirTree widgets +tixDisplayStyle [] (n) - Create style object for Tix display items +tixExFileSelectBox [] (n) - Create and manipulate tixExFileSelectBox widgets +tixExFileSelectDialog [] (n) - Create and manipulate tixExFileSelectDialog widgets +tixFileEntry [] (n) - Create and manipulate tixFileEntry widgets +tixFileSelectBox [] (n) - Create and manipulate Tix FileSelectBox widgets +tixFileSelectDialog [] (n) - Create and manipulate tixFileSelectDialog widgets +tixForm [] (n) - Geometry manager based on attachment rules +tixGetBoolean [] (n) - Get the boolean value of a string +tixGetInt [] (n) - Get the integer value of a string +tixGrid [] (n) - Create and manipulate Tix Grid widgets +tixHList [] (n) - Create and manipulate Tix Hierarchial List widgets +tixInputOnly [] (n) - Create and manipulate TIX InputOnly widgets +tixLabelEntry [] (n) - Create and manipulate tixLabelEntry widgets +tixLabelFrame [] (n) - Create and manipulate tixLabelFrame widgets +tixListNoteBook [] (n) - Create and manipulate tixListNoteBook widgets +tixMeter [] (n) - Create and manipulate Tix Meter widgets +tixMwm [] (n) - Communicate with the Motif(tm) window manager +tixNBFrame [] (n) - Create and manipulate Tix NoteBook Frame widgets +tixNoteBook [] (n) - Create and manipulate tixNoteBook widgets +tixOptionMenu [] (n) - Create and manipulate tixOptionMenu widgets +tixPanedWindow [] (n) - Create and manipulate tixPanedWindow widgets +tixPopupMenu [] (n) - Create and manipulate tixPopupMenu widgets +tixScrolledHList [] (n) - Create and manipulate Tix ScrolledHList widgets +tixScrolledListBox [] (n) - Create and manipulate Tix ScrolledListBox widgets +tixScrolledText [] (n) - Create and manipulate Tix ScrolledText widgets +tixScrolledWindow [] (n) - Create and manipulate Tix ScrolledWindow widgets +tixSelect [] (n) - Create and manipulate tixSelect widgets +tixStdButtonBox [] (n) - Create and manipulate Tix StdButtonBox widgets +tixTList [] (n) - Create and manipulate Tix Tabular List widgets +tixTree [] (n) - Create and manipulate tixTree widgets +tixUtils [] (n) - Utility commands in Tix +tk [] (n) - Manipulate Tk internal state +tk_bindForTraversal [] (n) - Obsolete support for menu bars +tk_bisque [] (n) - Modify the Tk color palette +tk_chooseColor [] (n) - pops up a dialog box for the user to select a color +tk_chooseDirectory [] (n) - pops up a dialog box for the user to select a directory +tk_dialog [] (n) - Create modal dialog and wait for response +tk_focusFollowsMouse [] (n) - Utility procedures for managing the input focus +tk_focusNext [] (n) - Utility procedures for managing the input focus +tk_focusPrev [] (n) - Utility procedures for managing the input focus +tk_getOpenFile [] (n) - pop up a dialog box for the user to select a file to open or save +tk_getSaveFile [] (n) - pop up a dialog box for the user to select a file to open or save +tk_menuBar [] (n) - Obsolete support for menu bars +tk_menuSetFocus [] (n) - Create and manipulate menu widgets +tk_messageBox [] (n) - pops up a message window and waits for user response +tk_optionMenu [] (n) - Create an option menubutton and its menu +tk_popup [] (n) - Post a popup menu +tk_setPalette [] (n) - Modify the Tk color palette +tk_textCopy [] (n) - Create and manipulate text widgets +tk_textCut [] (n) - Create and manipulate text widgets +tk_textPaste [] (n) - Create and manipulate text widgets +tkerror [] (n) - Command invoked to process background errors +tkill [] (2) - send a signal to a thread +tkmib [] (1) - an interactive graphical MIB browser for SNMP +tknewsbiff [] (1) - pop up a window when news appears +tkvars [] (n) - Variables used or set by Tk +tkwait [] (n) - Wait for variable to change or window to be destroyed +tld_check_4 [] (3) - verify that characters are permitted +tld_check_4t [] (3) - verify that characters are permitted +tld_check_4tz [] (3) - verify that characters are permitted +tld_check_4z [] (3) - verify that characters are permitted +tld_check_8z [] (3) - verify that characters are permitted +tld_check_lz [] (3) - verify that characters are permitted +tld_default_table [] (3) - get table for a TLD name +tld_get_4 [] (3) - extract top level domain part in input Unicode string +tld_get_4z [] (3) - extract top level domain part in input Unicode string +tld_get_table [] (3) - get table for a TLD name in table +tld_get_z [] (3) - extract top level domain part in input string +tld_strerror [] (3) - return string describing tld error code +tload [] (1) - graphic representation of system load average +tm [] (n) - Facilities for locating and loading of Tcl Modules +tmpfile [] (3) - create a temporary file +tmpnam [] (3) - create a name for a temporary file +tmpnam_r [] (3) - create a name for a temporary file +toascii [] (3) - convert character to ASCII +todos [] (1) - convert UNIX text file format to DOS +toe [] (1) - table of (terminfo) entries +tolower [] (3) - convert letter to upper or lower case +top [] (1) - display Linux tasks +topblock [] (6) - a 3D world of falling blocks that build up and up +toplevel [] (n) - Create and manipulate toplevel widgets +touch [] (1) - change file timestamps +touchline [] (3) - curses refresh control routines +touchwin [] (3) - curses refresh control routines +toupper [] (3) - convert letter to upper or lower case +towctrans [] (3) - wide-character transliteration +towlower [] (3) - convert a wide character to lowercase +towupper [] (3) - convert a wide character to uppercase +tparm [] (3) - curses interfaces to terminfo database +tput [] (1) - initialize a terminal or query terminfo database +tputs [] (3) - curses interfaces to terminfo database +tputs [] (3) - direct curses interface to the terminfo capability database +tr [] (1) - translate or delete characters +trace [] (3) - curses debugging routines +trace [] (n) - Monitor variable accesses, command usages and command executions +tracepath [] (8) - traces path to a network host discovering MTU along this path +tracepath6 [] (8) - traces path to a network host discovering MTU along this path +traceroute [] (8) - print the route packets take to network host +traceroute6 [] (8) - traces path to a network host +trampoline [] (3) - closures as first-class C functions +transfig [] (1) - creates a makefile for portable LaTeX figures +transxx [] (1) - Create a pseudo translated PO file from a PO template file +trap [] (1) - bash built-in commands, see bash(1) +traptoemail [] (1) - snmptrapd handler script to convert snmp traps into emails +tree [] (1) - list contents of directories in a tree-like format +trek [] (6) - trekkie game +triangle [] (6) - random mountains using iterative subdivision of triangles +trident [] (4) - Trident video driver +trn [] (1) - threaded read news program +troff [] (1) - the troff processor of the groff text formatting system +truchet [] (6) - draws curved or angular Truchet patterns +true [] (1) - do nothing, successfully +trunc [] (3) - round to integer, towards zero +truncate [] (1) - shrink or extend the size of a file to the specified size +truncate [] (2) - truncate a file to a specified length +truncf [] (3) - round to integer, towards zero +truncl [] (3) - round to integer, towards zero +tryaffix [] (1) - Interactive spelling checking +tsearch [] (3) - manage a binary tree +tseng [] (4) - Tseng Labs video driver +tset [] (1) - terminal initialization +tsort [] (1) - perform topological sort +ttk::button [] (n) - Widget that issues a command when pressed +ttk::checkbutton [] (n) - On/off widget +ttk::combobox [] (n) - text field with popdown selection list +ttk::entry [] (n) - Editable text field widget +ttk::frame [] (n) - Simple container widget +ttk::image [] (n) - Define an element based on an image +ttk::intro [] (n) - Introduction to the Tk theme engine +ttk::label [] (n) - Display a text string and/or image +ttk::labelframe [] (n) - Container widget with optional label +ttk::menubutton [] (n) - Widget that pops down a menu when pressed +ttk::notebook [] (n) - Multi-paned container widget +ttk::panedwindow [] (n) - Multi-pane container window +ttk::progressbar [] (n) - Provide progress feedback +ttk::radiobutton [] (n) - Mutually exclusive option widget +ttk::scale [] (n) - Create and manipulate a scale widget +ttk::scrollbar [] (n) - Control the viewport of a scrollable widget +ttk::separator [] (n) - Separator bar +ttk::sizegrip [] (n) - Bottom-right corner resize widget +ttk::style [] (n) - Manipulate style database +ttk::treeview [] (n) - hierarchical multicolumn data display widget +ttk::widget [] (n) - Standard options and commands supported by Tk themed widgets +tty [] (1) - print the file name of the terminal connected to standard input +tty [] (4) - controlling terminal +tty ioctl [] (4) - ioctls for terminals and serial lines +ttyS [] (4) - serial terminal lines +ttyname [] (3) - return name of a terminal +ttyname_r [] (3) - return name of a terminal +ttyslot [] (3) - find the slot of the current user's terminal in some file +ttytype [] (5) - terminal device to default terminal type mapping +tune2fs [] (8) - adjust tunable filesystem parameters on ext2/ext3 filesystems +tunelp [] (8) - set various parameters for the lp device +tuxcall [] (2) - unimplemented system calls +twalk [] (3) - manage a binary tree +twang [] (6) - pluck pieces of the screen +twm [] (1) - Tab Window Manager for the X Window System +type [] (1) - bash built-in commands, see bash(1) +typeahead [] (3) - curses input options +typeset [] (1) - bash built-in commands, see bash(1) +tzfile [] (5) - timezone information +tzname [] (3) - initialize time conversion information +tzselect [] (8) - select a timezone +tzset [] (3) - initialize time conversion information +ualarm [] (3) - schedule signal after given number of microseconds +ucs2any [] (1) - generate BDF fonts containing subsets of ISO 10646-1 codepoints +udev [] (7) - dynamic device management +udevadm [] (8) - udev management tool +udevd [] (8) - event managing daemon +udp [] (7) - User Datagram Protocol for IPv4 +udplite [] (7) - Lightweight User Datagram Protocol +uint16_t blocks; // Number of blocks in the font uint32_t glyphs; // Total number of glyphs in the font uint16_t bpp; // Bits per pixel for glyph data (valid // Values are 1 [] (3) - 15: unused yet, must be 0 +uint16_t version; // Canvas format version // bit 0: set to 1 if canvas is compatible // with version 1 of the format // bits 1 [] (3) - 15: unused yet, must be 0 +uint16_t version; // Font format version // bit 0: set to 1 if font is compatible // with version 1 of the format // bits 1 [] (3) - 15: unused yet, must be 0 +uint32_t frames; // Frame count uint16_t flags; // Feature flags // bits 0 [] (3) - 15: unused yet, must be 0 +ul [] (1) - do underlining +ulckpwdf [] (3) - get shadow password file entry +ulimit [] (1) - bash built-in commands, see bash(1) +ulimit [] (2) - unimplemented system calls +ulimit [] (3) - get and set user limits +umask [] (1) - bash built-in commands, see bash(1) +umask [] (2) - set file mode creation mask +umount [] (2) - unmount file system +umount [] (8) - unmount file systems +umount.cifs [] (8) - for normal, non-root users, to unmount their own Common Internet File System (CIFS) mounts +umount.nfs [] (8) - unmount a Network File System +umount.nfs4 [] (8) - unmount a Network File System +umount2 [] (2) - unmount file system +unalias [] (1) - bash built-in commands, see bash(1) +uname [] (1) - print system information +uname [] (2) - get name and information about current kernel +unbin [] (1) - Macintosh file format transformer +unbuffer [] (1) - unbuffer output +uncompress [] (1) - compress and expand data (version 4.1) +unctrl [] (3) - miscellaneous curses utility routines +unexpand [] (1) - convert spaces to tabs +unget_wch [] (3) - get (or push back) a wide character from curses terminal keyboard +ungetc [] (3) - input of characters and strings +ungetch [] (3) - get (or push back) characters from curses terminal keyboard +ungetmouse [] (3) - mouse interface through curses +ungetwc [] (3) - push back a wide character onto a FILE stream +unhex [] (1) - Macintosh file format transformer +unicode_start [] (1) - put keyboard and console in unicode mode +unicode_stop [] (1) - revert keyboard and console from unicode mode +uniconv [] (1) - convert Netatalk volume encoding +uniq [] (1) - report or omit repeated lines +units [] (7) - decimal and binary prefixes +unix [] (7) - Sockets for local interprocess communication +unknown [] (n) - Handle attempts to use non-existent commands +unlink [] (1) - call the unlink function to remove the specified file +unlink [] (2) - delete a name and possibly the file it refers to +unlinkat [] (2) - remove a directory entry relative to a directory file descriptor +unload [] (n) - Unload machine code +unlockpt [] (3) - unlock a pseudo-terminal master/slave pair +unset [] (1) - bash built-in commands, see bash(1) +unset [] (n) - Delete variables +unshar [] (1) - unpack a shar file +unshare [] (2) - disassociate parts of the process execution context +unsingle [] (1) - Macintosh file format transformer +unstr [] (8) - create a random access file for storing strings +untouchwin [] (3) - curses refresh control routines +unzip [] (1) - list, test and extract compressed files in a ZIP archive +unzipsfx [] (1) - self-extracting stub for prepending to ZIP archives +update [] (1) - mime-database - a program to build the Shared MIME-Info database cache +update [] (n) - Process pending events and idle callbacks +updatedb [] (1) - update the slocate database +updwtmp [] (3) - append an entry to the wtmp file +upgradepkg [] (8) - upgrade Slackware packages +uplevel [] (n) - Execute a script in a different stack frame +uptime [] (1) - Tell how long the system has been running +upvar [] (n) - Create link to variable in a different stack frame +urandom [] (4) - kernel random number source devices +uri [] (7) - uniform resource identifier (URI), including a URL or URN +url [] (7) - uniform resource identifier (URI), including a URL or URN +urn [] (7) - uniform resource identifier (URI), including a URL or URN +usb_id [] (8) - udev callout to read information from USB devices +use_default_colors [] (3) - use terminal's default colors +use_env [] (3) - miscellaneous curses utility routines +use_extended_names [] (3) - miscellaneous curses extensions +use_legacy_coding [] (3) - use terminal's default colors +use_screen [] (3) - curses thread support +use_window [] (3) - curses thread support +uselib [] (2) - load shared library +useradd [] (8) - Create a new user or update default new user information +userdel [] (8) - Delete a user account and related files +usermod [] (8) - Modify a user account +users [] (1) - print the user names of users currently logged in to the current host +usleep [] (1) - sleep some number of microseconds +usleep [] (3) - suspend execution for microsecond intervals +ustat [] (2) - get file system statistics +utf8 [] (3) - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code +utility_handlers [] (3) - Simplify request processing A group of handlers intended to simplify certain aspects of processing a request for a MIB object +utime [] (2) - change file last access and modification times +utimensat [] (2) - change file timestamps with nanosecond precision +utimes [] (2) - change file last access and modification times +utmp [] (5) - login records +utmpname [] (3) - access utmp file entries +uucico [] (8) - UUCP file transfer daemon +uucp [] (1) - Unix to Unix copy +uudecode [] (1) - encode a binary file, or decode its representation +uudepipe [] (1) - uudecode a file +uuencode [] (1) - encode a binary file, or decode its representation +uuencode [] (5) - format of an encoded uuencode file +uuenpipe [] (1) - uuencode a file +uuid [] (3) - DCE compatible Universally Unique Identifier library +uuid_clear [] (3) - reset value of UUID variable to the NULL value +uuid_compare [] (3) - compare whether two UUIDs are the same +uuid_copy [] (3) - copy a UUID value +uuid_generate [] (3) - create a new unique UUID value +uuid_generate_random [] (3) - create a new unique UUID value +uuid_generate_time [] (3) - create a new unique UUID value +uuid_is_null [] (3) - compare the value of the UUID to the NULL value +uuid_parse [] (3) - convert an input UUID string into binary representation +uuid_time [] (3) - extract the time at which the UUID was created +uuid_unparse [] (3) - convert an UUID from binary representation to a string +uuidgen [] (1) - command-line utility to create a new UUID value +uustat [] (1) - UUCP status inquiry and control +uux [] (1) - Remote command execution over UUCP +uuxqt [] (8) - UUCP execution daemon +uxterm [] (1) - X terminal emulator for Unicode (UTF-8) environments +v4l [] (4) - video4linux driver +va_arg [] (3) - variable argument lists +va_copy [] (3) - variable argument lists +va_end [] (3) - variable argument lists +va_start [] (3) - variable argument lists +vacall [] (3) - C functions called with variable arguments +vacation [] (1) - E-mail auto-responder +valloc [] (3) - Allocate aligned memory +variable [] (n) - create and initialize a namespace variable +variables [] (5) - Format of specifying variable names to SNMP tools +vars [] (3) - Perl pragma to predeclare global variable names (obsolete) +vasprintf [] (3) - print to allocated string +vbetool [] (1) - run real-mode video BIOS code to alter hardware state +vconfig [] (8) - VLAN (802.1q) configuration program +vcs [] (4) - virtual console memory +vcsa [] (4) - virtual console memory +vcut [] (1) - cuts Ogg Vorbis files +vdir [] (1) - list directory contents +vdprintf [] (3) - print to a file descriptor +verify [] (1) - Utility to verify certificates +vermiculate [] (6) - to move in a worm-like manner +verr [] (3) - formatted error messages +verrx [] (3) - formatted error messages +version [] (1) - print OpenSSL version information +version [] (3) - Perl extension for Version Objects +versionsort [] (3) - scan a directory for matching entries +vesa [] (4) - Generic VESA video driver +vfork [] (2) - create a child process and block parent +vfprintf [] (3) - formatted output conversion +vfs_audit [] (8) - record selected Samba VFS operations in the system log +vfs_cacheprime [] (8) - prime the kernel file data cache +vfs_cap [] (8) - CAP encode filenames +vfs_catia [] (8) - translate illegal characters in Catia filenames +vfs_commit [] (8) - flush dirty data at specified intervals +vfs_default_quota [] (8) - store default quota records for Windows clients +vfs_extd_audit [] (8) - record selected Samba VFS operations +vfs_fake_perms [] (8) - enable read only Roaming Profiles +vfs_fileid [] (8) - Generates file_id structs with unique device id values for cluster setups +vfs_full_audit [] (8) - record Samba VFS operations in the system log +vfs_gpfs [] (8) - gpfs specific samba extensions like acls and prealloc +vfs_netatalk [] (8) - hide .AppleDouble files from CIFS clients +vfs_notify_fam [] (8) - FAM support for file change notifications +vfs_prealloc [] (8) - preallocate matching files to a predetermined size +vfs_readahead [] (8) - pre-load the kernel buffer cache +vfs_readonly [] (8) - make a Samba share read only for a specified time period +vfs_recycle [] (8) - Samba VFS recycle bin +vfs_shadow_copy [] (8) - Make a Samba share read only for a specified time period +vfs_shadow_copy2 [] (8) - Expose snapshots to Windows clients as shadow copies +vfs_smb_traffic_analyzer [] (8) - log Samba VFS read and write operations through a socket to a helper application +vfs_streams_depot [] (8) - EXPERIMENTAL module to store alternate data streams in a central directory +vfs_streams_xattr [] (8) - Store alternate data streams in posix xattrs +vfs_xattr_tdb [] (8) - Save Extended Attributes (EAs) in a tdb file +vfscanf [] (3) - input format conversion +vfstest [] (1) - tool for testing samba VFS modules +vfwprintf [] (3) - formatted wide - character output conversion +vga_accel [] (3) - calls the graphics accelerator +vga_addmode [] (3) - add a mode to svgalib modes list +vga_addtiming [] (3) - add a timing line to svgalib user timing list +vga_bitblt [] (3) - copy pixmap on screen using an accelerator +vga_blitwait [] (3) - wait for any accelerator operation to finish +vga_changetiming [] (3) - change the current timing parameters +vga_claimvideomemory [] (3) - declare the amount of video memory used +vga_clear [] (3) - clear the screen +vga_copytoplanar16 [] (3) - copy linear pixmap into VGA 16 color mode video memory +vga_copytoplanar256 [] (3) - copy linear pixmap into Mode X video memory +vga_copytoplane [] (3) - copy linear pixmap to some planes of VGA 16 color mode video memory +vga_disabledriverreport [] (3) - makes svgalib not emit any startup messages +vga_drawline [] (3) - draw a line on the screen +vga_drawpixel [] (3) - draw a pixel on the screen +vga_drawscanline [] (3) - draw a horizontal line of pixels +vga_drawscansegment [] (3) - draw a horizontal line of pixels +vga_dumpregs [] (3) - dump the contents of the SVGA registers +vga_ext_set [] (3) - set and query several extended features +vga_fillblt [] (3) - file rectangular area in video memory with a single color +vga_flip [] (3) - toggle between text and graphics mode +vga_getcardinfo [] (3) - returns pointer to information about the video card +vga_getch [] (3) - wait for a key +vga_getcolors [] (3) - return the current screen resolution +vga_getcurrentchipset [] (3) - returns the current SVGA chipset +vga_getcurrentmode [] (3) - returns the current video mode +vga_getcurrenttiming [] (3) - get the current timing parameters +vga_getdefaultmode [] (3) - returns the default graphics mode number +vga_getgraphmem [] (3) - returns the address of the VGA memory +vga_getkey [] (3) - read a character from the keyboard without waiting +vga_getmodeinfo [] (3) - returns pointer to mode information structure for a mode +vga_getmodename [] (3) - return a name for the given video mode +vga_getmodenumber [] (3) - return a number for the given video mode +vga_getmonitortype [] (3) - returns the monitor type configured +vga_getmousetype [] (3) - returns the mouse type configured +vga_getpalette [] (3) - get a color in the color lookup table +vga_getpalvec [] (3) - gets colors from the color lookup table +vga_getpixel [] (3) - get a pixels value from the screen +vga_getscansegment [] (3) - get a list of consecutive pixel values +vga_gettextfont [] (3) - get/set the font used in text mode +vga_gettextmoderegs [] (3) - get/set the vga state used in text mode +vga_getxdim [] (3) - return the current screen resolution +vga_getydim [] (3) - return the current screen resolution +vga_guesstiming [] (3) - calculate a timing line for the given resolution +vga_hasmode [] (3) - returns if a video mode is supported +vga_hlinelistblt [] (3) - draw horizontal scan lines +vga_imageblt [] (3) - copy a rectangular pixmap from system memory to video memory +vga_init [] (3) - initialize svgalib library +vga_initcursor [] (3) - initialize mouse cursor +vga_lastmodenumber [] (3) - returns the last video mode number +vga_lockvc [] (3) - disables virtual console switching for safety +vga_norevokeprivs [] (3) - Keep root privileges if run as suid root +vga_oktowrite [] (3) - indicates whether the program has direct access to the SVGA +vga_puttextfont [] (3) - get/set the font used in text mode +vga_reset [] (8) - reset video graphic board +vga_runinbackground [] (3) - enable running of the program while there is no VGA access +vga_runinbackground_version [] (3) - returns the version of the current background support +vga_safety_fork [] (3) - start a parallel process to restore the console at a crash +vga_screenoff [] (3) - turn generation of the video signal on or off +vga_screenon [] (3) - turn generation of the video signal on or off +vga_selectcursor [] (3) - select mouse cursor pattern +vga_setchipset [] (3) - force chipset +vga_setchipsetandfeatures [] (3) - force chipset and optional parameters +vga_setcolor [] (3) - set the current color +vga_setcursorimage [] (3) - set the pattern and colors of the mouse cursor +vga_setcursorposition [] (3) - set the mouse cursor position +vga_setdisplaystart [] (3) - set the display start address +vga_setegacolor [] (3) - set the current color +vga_setflipchar [] (3) - set the character causing a vga_flip() +vga_setlinearaddressing [] (3) - switch to linear addressing mode +vga_setlogicalwidth [] (3) - set the logical scanline width +vga_setmode [] (3) - sets a video mode +vga_setmodeX [] (3) - try to set Mode X-like memory organization +vga_setmousesupport [] (3) - enable mouse support +vga_setpage [] (3) - set the 64K SVGA page number +vga_setpalette [] (3) - set a color in the color lookup table +vga_setpalvec [] (3) - sets colors in the color lookup table +vga_setreadpage [] (3) - set the 64K SVGA page number +vga_setrgbcolor [] (3) - set the current color +vga_settextmoderegs [] (3) - get/set the vga state used in text mode +vga_setwritepage [] (3) - set the 64K SVGA page number +vga_showcursor [] (3) - show / hide mouse cursor +vga_unlockvc [] (3) - re-enables virtual console switching +vga_waitevent [] (3) - wait for various I/O events +vga_waitretrace [] (3) - wait for vertical retrace +vga_white [] (3) - return the color white in the current screen resolution +vgagl [] (7) - a fast framebuffer-level graphics library based ion svgalib +vgatest [] (6) - makes basic tests on any svgalib graphics mode +vgcfgbackup [] (8) - backup volume group descriptor area +vgcfgrestore [] (8) - restore volume group descriptor area +vgchange [] (8) - change attributes of a volume group +vgck [] (8) - check volume group metadata +vgconvert [] (8) - convert volume group metadata format +vgcreate [] (8) - create a volume group +vgdisplay [] (8) - display attributes of volume groups +vgexport [] (8) - make volume groups unknown to the system +vgextend [] (8) - add physical volumes to a volume group +vgimport [] (8) - make exported volume groups known to the system +vgmerge [] (8) - merge two volume groups +vgmknodes [] (8) - recreate volume group directory and logical volume special files +vgreduce [] (8) - reduce a volume group +vgremove [] (8) - remove a volume group +vgrename [] (8) - rename a volume group +vgs [] (8) - report information about volume groups +vgscan [] (8) - scan all disks for volume groups and rebuild caches +vgsplit [] (8) - split a volume group into two +vhangup [] (2) - virtually hangup the current tty +vid_attr [] (3) - curses interfaces to terminfo database +vid_puts [] (3) - curses interfaces to terminfo database +vidattr [] (3) - curses interfaces to terminfo database +vidputs [] (3) - curses interfaces to terminfo database +vidwhacker [] (6) - grab images and apply random filters to them +viewres [] (1) - graphical class browser for Xt +vigr [] (8) - edit the password, group, shadow-password, or shadow-group file +vim [] (1) - Vi IMproved, a programmers text editor +vimdiff [] (1) - edit two, three or four versions of a file with Vim and show differences +vimtutor [] (1) - the Vim tutor +vipw [] (8) - edit the password, group, shadow-password, or shadow-group file +visudo [] (8) - edit the sudoers file +vline [] (3) - create curses borders, horizontal and vertical lines +vline_set [] (3) - create curses borders or lines using complex characters and renditions +vm86 [] (2) - enter virtual 8086 mode +vm86old [] (2) - enter virtual 8086 mode +vmmouse [] (4) - VMware Mouse input driver +vmmouse_detect [] (1) - VMware mouse device autodetection tool +vmsish [] (3) - Perl pragma to control VMS-specific language features +vmsplice [] (2) - splice user pages into a pipe +vmstat [] (8) - Report virtual memory statistics +vmware [] (4) - VMware SVGA video driver +void XpPutDocumentData [] (3) - Sends and incorporates data into the output +void [] (4) - null input driver +vol_id [] (8) - probe filesystem type and read label and uuid +volname [] (1) - return volume name +voodoo [] (4) - Voodoo video driver +vorbiscomment [] (1) - List or edit comments in Ogg Vorbis files +voronoi [] (6) - draws a randomly-colored Voronoi tessellation +vpddecode [] (8) - VPD structure decoder +vprintf [] (3) - formatted output conversion +vscanf [] (3) - input format conversion +vserver [] (2) - unimplemented system calls +vsftpd [] (8) - Very Secure FTP Daemon +vsftpd.conf [] (5) - config file for vsftpd +vsnprintf [] (3) - formatted output conversion +vsprintf [] (3) - formatted output conversion +vsscanf [] (3) - input format conversion +vswprintf [] (3) - formatted wide - character output conversion +vsyslog [] (3) - send messages to the system logger +vw_printw [] (3) - print formatted output in curses windows +vw_scanw [] (3) - convert formatted input from a curses window +vwait [] (n) - Process events until a variable is written +vwarn [] (3) - formatted error messages +vwarnx [] (3) - formatted error messages +vwprintf [] (3) - formatted wide - character output conversion +vwprintw [] (3) - print formatted output in curses windows +vwscanw [] (3) - convert formatted input from a curses window +w [] (1) - Show who is logged on and what they are doing +wadd_wch [] (3) - add a complex character and rendition to a curses window, then advance the cursor +wadd_wchnstr [] (3) - add an array of complex characters (and attributes) to a curses window +wadd_wchstr [] (3) - add an array of complex characters (and attributes) to a curses window +waddch [] (3) - add a character (with attributes) to a curses window, then advance the cursor +waddchnstr [] (3) - add a string of characters (and attributes) to a curses window +waddchstr [] (3) - add a string of characters (and attributes) to a curses window +waddnstr [] (3) - add a string of characters to a curses window and advance cursor +waddnwstr [] (3) - add a string of wide characters to a curses window and advance cursor +waddstr [] (3) - add a string of characters to a curses window and advance cursor +waddwstr [] (3) - add a string of wide characters to a curses window and advance cursor +wait [] (1) - bash built-in commands, see bash(1) +wait [] (2) - wait for process to change state +wait3 [] (2) - wait for process to change state, BSD style +wait4 [] (2) - wait for process to change state, BSD style +waitid [] (2) - wait for process to change state +waitpid [] (2) - wait for process to change state +wall [] (1) - write a message to users +wander [] (6) - colorful random-walk +wargames [] (6) - shall we play a game? +warn [] (3) - formatted error messages +warnings [] (3) - Perl pragma to control optional warnings +warnings::register [] (3) - warnings import function +warnquota [] (8) - send mail to users over quota +warnx [] (3) - formatted error messages +watch [] (1) - execute a program periodically, showing output fullscreen +watcher [] (3) - Watch a specified variable and process it as an instance or scalar object +watchgnupg [] (1) - Read and print logs from a socket +wattr_get [] (3) - curses character and window attribute control routines +wattr_off [] (3) - curses character and window attribute control routines +wattr_on [] (3) - curses character and window attribute control routines +wattr_set [] (3) - curses character and window attribute control routines +wattroff [] (3) - curses character and window attribute control routines +wattron [] (3) - curses character and window attribute control routines +wattrset [] (3) - curses character and window attribute control routines +wavelan [] (4) - AT&T GIS WaveLAN ISA device driver +wbinfo [] (1) - Query information from winbind daemon +wbkgd [] (3) - curses window background manipulation routines +wbkgdset [] (3) - curses window background manipulation routines +wbkgrnd [] (3) - curses window complex background manipulation routines +wbkgrndset [] (3) - curses window complex background manipulation routines +wbmptopbm [] (1) - convert a wireless bitmap (wbmp) file to a portable bitmap (pbm) +wborder [] (3) - create curses borders, horizontal and vertical lines +wborder_set [] (3) - create curses borders or lines using complex characters and renditions +wc [] (1) - print newline, word, and byte counts for each file +wchgat [] (3) - curses character and window attribute control routines +wclear [] (3) - clear all or part of a curses window +wclrtobot [] (3) - clear all or part of a curses window +wclrtoeol [] (3) - clear all or part of a curses window +wcolor_set [] (3) - curses character and window attribute control routines +wcpcpy [] (3) - copy a wide-character string, returning a pointer to its end +wcpncpy [] (3) - copy a fixed-size string of wide characters, returning a pointer to its end +wcrtomb [] (3) - convert a wide character to a multibyte sequence +wcscasecmp [] (3) - compare two wide-character strings, ignoring case +wcscat [] (3) - concatenate two wide-character strings +wcschr [] (3) - search a wide character in a wide-character string +wcscmp [] (3) - compare two wide-character strings +wcscpy [] (3) - copy a wide-character string +wcscspn [] (3) - search a wide-character string for any of a set of wide characters +wcsdup [] (3) - duplicate a wide-character string +wcslen [] (3) - determine the length of a wide-character string +wcsncasecmp [] (3) - compare two fixed-size wide-character strings, ignoring case +wcsncat [] (3) - concatenate two wide-character strings +wcsncmp [] (3) - compare two fixed-size wide-character strings +wcsncpy [] (3) - copy a fixed-size string of wide characters +wcsnlen [] (3) - determine the length of a fixed-size wide-character string +wcsnrtombs [] (3) - convert a wide-character string to a multibyte string +wcspbrk [] (3) - search a wide-character string for any of a set of wide characters +wcsrchr [] (3) - search a wide character in a wide-character string +wcsrtombs [] (3) - convert a wide-character string to a multibyte string +wcsspn [] (3) - advance in a wide-character string, skipping any of a set of wide characters +wcsstr [] (3) - locate a substring in a wide-character string +wcstoimax [] (3) - convert wide-character string to integer +wcstok [] (3) - split wide-character string into tokens +wcstombs [] (3) - convert a wide-character string to a multibyte string +wcstoumax [] (3) - convert wide-character string to integer +wcswidth [] (3) - determine columns needed for a fixed-size wide-character string +wctob [] (3) - try to represent a wide character as a single byte +wctomb [] (3) - convert a wide character to a multibyte sequence +wctrans [] (3) - wide-character translation mapping +wctype [] (3) - wide-character classification +wcursyncup [] (3) - create curses windows +wcwidth [] (3) - determine columns needed for a wide character +wdelch [] (3) - delete character under the cursor in a curses window +wdeleteln [] (3) - delete and insert lines in a curses window +wdwrite [] (1) - writes keys and values to the defaults database +webcollage [] (6) - decorate the screen with random images from the web +wecho_wchar [] (3) - add a complex character and rendition to a curses window, then advance the cursor +wechochar [] (3) - add a character (with attributes) to a curses window, then advance the cursor +wenclose [] (3) - mouse interface through curses +werase [] (3) - clear all or part of a curses window +wftopfa [] (1) - Convert a Wadalab base font to Postscript .PFA (or .PFB) format using ghostscript +wget_wch [] (3) - get (or push back) a wide character from curses terminal keyboard +wget_wstr [] (3) - get an array of wide characters from a curses terminal keyboard +wgetbkgrnd [] (3) - curses window complex background manipulation routines +wgetch [] (3) - get (or push back) characters from curses terminal keyboard +wgetn_wstr [] (3) - get an array of wide characters from a curses terminal keyboard +wgetnstr [] (3) - accept character strings from curses terminal keyboard +wgetstr [] (3) - accept character strings from curses terminal keyboard +whatis [] (1) - search the whatis database for complete words +whereis [] (1) - locate the binary, source, and manual page files for a command +which [] (1) - shows the full path of (shell) commands +while [] (n) - Execute script repeatedly as long as a condition is met +whirlwindwarp [] (6) - crazy moving stars +whline [] (3) - create curses borders, horizontal and vertical lines +whline_set [] (3) - create curses borders or lines using complex characters and renditions +who [] (1) - show who is logged on +whoami [] (1) - print effective userid +whois [] (1) - client for the whois directory service +win_wch [] (3) - extract a complex character and rendition from a window +win_wchnstr [] (3) - get an array of complex characters and renditions from a curses window +win_wchstr [] (3) - get an array of complex characters and renditions from a curses window +winbindd [] (8) - Name Service Switch daemon for resolving names from NT servers +winch [] (3) - get a character and attributes from a curses window +winchnstr [] (3) - get a string of characters (and attributes) from a curses window +winchstr [] (3) - get a string of characters (and attributes) from a curses window +windmc [] (1) - generates Windows message resources +winfo [] (n) - Return window-related information +winicontoppm [] (1) - convert a Windows .ico file into 1 or more portable pixmap files +winnstr [] (3) - get a string of characters from a curses window +winnwstr [] (3) - get a string of wchar_t characters from a curses window +wins_nwstr [] (3) - insert a wide-character string into a curses window +wins_wch [] (3) - insert a complex character and rendition into a window +wins_wstr [] (3) - insert a wide-character string into a curses window +winsch [] (3) - insert a character before cursor in a curses window +winsdelln [] (3) - delete and insert lines in a curses window +winsertln [] (3) - delete and insert lines in a curses window +winsnstr [] (3) - insert string before cursor in a curses window +winsstr [] (3) - insert string before cursor in a curses window +winstr [] (3) - get a string of characters from a curses window +winwstr [] (3) - get a string of wchar_t characters from a curses window +wireless [] (7) - Wireless Tools and Wireless Extensions +wish [] (1) - Simple windowing shell +wm [] (n) - Communicate with window manager +wmaker [] (1) - X11 window manager with a NEXTSTEP look +wmemchr [] (3) - search a wide character in a wide-character array +wmemcmp [] (3) - compare two arrays of wide-characters +wmemcpy [] (3) - copy an array of wide-characters +wmemmove [] (3) - copy an array of wide-characters +wmempcpy [] (3) - copy memory area +wmemset [] (3) - fill an array of wide-characters with a constant wide character +wmouse_trafo [] (3) - mouse interface through curses +wmove [] (3) - move curses window cursor +wmsetbg [] (1) - sets the background on the X11 display +wnewmail [] (1) - programs to asynchronously notify of new mail +wnoutrefresh [] (3) - refresh curses windows and lines +word [] (1) - list-compress - word list compressor/decompressor for GNU Aspell +wordexp [] (3) - perform word expansion like a posix-shell +wordfree [] (3) - perform word expansion like a posix-shell +workbone [] (1) - an interactive text-mode program for controlling and playing audio CD Roms under Linux +worm [] (6) - Play the growing worm game +wormhole [] (6) - animation of flying through a wormhole +worms [] (6) - animate worms on a display terminal +wpa_background [] (8) - Background information on Wi-Fi Protected Access and IEEE 802.11i +wpa_cli [] (8) - WPA command line client +wpa_gui [] (8) - WPA Graphical User Interface +wpa_passphrase [] (8) - Generate a WPA PSK from an ASCII passphrase for a SSID +wpa_priv [] (8) - wpa_supplicant privilege separation helper +wpa_supplicant [] (8) - Wi-Fi Protected Access client and IEEE 802.1X supplicant +wpa_supplicant.conf [] (5) - configuration file for wpa_supplicant +wprintf [] (3) - formatted wide - character output conversion +wprintw [] (3) - print formatted output in curses windows +wrapdemo [] (6) - demonstrates surface wrapping of pixmaps +wredrawln [] (3) - refresh curses windows and lines +wrefresh [] (3) - refresh curses windows and lines +wresize [] (3) - resize a curses window +write [] (1) - send a message to another user +write [] (2) - write to a file descriptor +writed [] (8) - remote write server +writemain [] (3) - write the C code for perlmain.c +writev [] (2) - read or write data into multiple buffers +wrjpgcom [] (1) - insert text comments into a JPEG file +wscanw [] (3) - convert formatted input from a curses window +wscrl [] (3) - scroll a curses window +wsetscrreg [] (3) - curses output options +wstandend [] (3) - curses character and window attribute control routines +wstandout [] (3) - curses character and window attribute control routines +wsyncdown [] (3) - create curses windows +wsyncup [] (3) - create curses windows +wtf [] (6) - translates acronyms for you +wtimeout [] (3) - curses input options +wtmp [] (5) - login records +wtouchln [] (3) - curses refresh control routines +wtpt [] (1) - Show media white of profiles, identifying black body locus +wump [] (6) - hunt the wumpus in an underground cave +wunctrl [] (3) - miscellaneous curses utility routines +wvline [] (3) - create curses borders, horizontal and vertical lines +wvline_set [] (3) - create curses borders or lines using complex characters and renditions +wxcopy [] (1) - copy stdin or file into cutbuffer +wxpaste [] (1) - output a cutbuffer to stdout +x11perf [] (1) - X11 server performance test program +x11perfcomp [] (1) - X11 server performance comparison program +x25 [] (7) - ITU-T X.25 / ISO-8208 protocol interface +x3270 [] (1) - - 1IBM host access tool +x3270if [] (1) - command interface to x3270, c3270 and s3270 +x509 [] (1) - Certificate display and signing utility +x509 [] (3) - X.509 certificate handling +x509v3_config [] (5) - X509 V3 certificate extension configuration format +xanalogtv [] (6) - Simulate reception on an old analog TV set +xapm [] (1) - display Advanced Power Management (APM) BIOS information +xargs [] (1) - build and execute command lines from standard input +xauth [] (1) - X authority file utility +xbacklight [] (1) - adjust backlight brightness using RandR extension +xbattery [] (1) - display Advanced Power Management (APM) BIOS information +xbiff [] (1) - mailbox flag for X +xbmtopbm [] (1) - convert an X11 or X10 bitmap into a portable bitmap +xboard [] (6) - X graphical user interface for chess +xcalc [] (1) - scientific calculator for X +xcam [] (1) - a graphical camera frontend for SANE +xclipboard [] (1) - X clipboard client +xclock [] (1) - analog / digital clock for X +xcmap [] (1) - displays the default colormap on X11 displays +xcmsdb [] (1) - Device Color Characterization utility for X Color Management System +xcompmgr [] (1) - sample X compositing manager +xconsole [] (1) - monitor system console messages with X +xcuckoo [] (6) - cuckoo clock for X +xcursorgen [] (1) - create an X cursor file from a collection of PNG images +xcutsel [] (1) - interchange between cut buffer and selection +xdbedizzy [] (1) - demo of DBE creating a double buffered spinning scene +xdecrypt [] (3) - RFS password encryption +xdfcopy [] (1) - Program to copy and format Xdf disks in Linux +xdg [] (1) - desktop-icon - command line tool for (un)installing icons to the desktop +xdg [] (1) - desktop-menu - command line tool for (un)installing desktop menu items +xdg [] (1) - email - command line tool for sending mail using the user's preferred e-mail composer +xdg [] (1) - icon-resource - command line tool for (un)installing icon resources +xdg [] (1) - mime - command line tool for querying information about file type handling and adding descriptions for new file types +xdg [] (1) - open - opens a file or URL in the user's preferred application +xdg [] (1) - screensaver - command line tool for controlling the screensaver +xditview [] (1) - display ditroff output +xdm [] (1) - X Display Manager with support for XDMCP, host chooser +xdpr [] (1) - dump an X window directly to a printer +xdpyinfo [] (1) - display information utility for X +xdr [] (3) - library routines for external data representation +xdriinfo [] (1) - query configuration information of DRI drivers +xedit [] (1) - simple text editor for X +xencrypt [] (3) - RFS password encryption +xev [] (1) - print contents of X events +xeyes [] (1) - a follow the mouse X demo +xfce4 [] (1) - session - Starts up the Xfce Desktop Environment +xfce4 [] (1) - session-logout - Logs out from Xfce +xfce4-session (1) - Starts up the Xfce Desktop Environment +xfce4-session-logout (1) - Logs out from Xfce +xfd [] (1) - display all the characters in an X font +xfdesktop (1) - The Xfce 4 Desktop Environment's desktop manager +xfdesktop [] (1) - The Xfce 4 Desktop Environment's desktop manager +xferlog [] (5) - ProFTPD server logfile +xfig [] (1) - Facility for Interactive Generation of figures under X11 +xfindproxy [] (1) - locate proxy services +xflame [] (6) - draws animated flames +xfontsel [] (1) - point and click selection of X11 font names +xfractint [] (1) - fractal generation program +xfs [] (1) - X font server +xfs [] (5) - layout of the XFS filesystem +xfs_admin [] (8) - change parameters of an XFS filesystem +xfs_bmap [] (8) - print block mapping for an XFS file +xfs_check [] (8) - check XFS filesystem consistency +xfs_copy [] (8) - copy the contents of an XFS filesystem +xfs_db [] (8) - debug an XFS filesystem +xfs_estimate [] (8) - estimate the space that an XFS filesystem will take +xfs_freeze [] (8) - suspend access to an XFS filesystem +xfs_fsr [] (8) - filesystem reorganizer for XFS +xfs_growfs [] (8) - expand an XFS filesystem +xfs_info [] (8) - expand an XFS filesystem +xfs_io [] (8) - debug the I/O path of an XFS filesystem +xfs_logprint [] (8) - print the log of an XFS filesystem +xfs_mdrestore [] (8) - restores an XFS metadump image to a filesystem image +xfs_metadump [] (8) - copy XFS filesystem metadata to a file +xfs_mkfile [] (8) - create an XFS file +xfs_ncheck [] (8) - generate pathnames from i-numbers for XFS +xfs_quota [] (8) - manage use of quota on XFS filesystems +xfs_repair [] (8) - repair an XFS filesystem +xfs_rtcp [] (8) - XFS realtime copy command +xfsctl [] (3) - control XFS filesystems and individual files +xfsdump [] (8) - XFS filesystem incremental dump utility +xfsinfo [] (1) - X font server information utility +xfsinvutil [] (8) - xfsdump inventory database checking and pruning utility +xfsrestore [] (8) - XFS filesystem incremental restore utility +xft [] (1) - config - report Xft version, compiler, linker, and/or installation directory information +xfwp [] (1) - X firewall proxy +xgamma [] (1) - Alter a monitor's gamma correction through the X server +xgc [] (1) - X graphics demo +xgettext [] (1) - extract gettext strings from source +xhfs [] (1) - graphical interface for manipulating HFS volumes +xhost [] (1) - server access control program for X +ximtoppm [] (1) - convert an Xim file into a portable pixmap +xine [] (1) - a free video player +xine [] (1) - check - a checker for the xine video player +xine [] (1) - config - script to get information about the installed version of libxine +xine [] (1) - remote - a small tool to connect xine remote control server +xine [] (5) - a free video player +xinit [] (1) - X Window System initializer +xinput [] (1) - utility to configure and test XInput devices +xjack [] (6) - all work and no play makes jack a dull boy +xkbcomp [] (1) - compile XKB keyboard description +xkbevd [] (1) - XKB event daemon +xkbprint [] (1) - print an XKB keyboard description +xkibitz [] (1) - allow multiple people to interact in an xterm +xkill [] (1) - kill a client by its X resource +xlander [] (6) - A lunar landing simulation with a twist +xload [] (1) - system load average display for X +xlock [] (1) - Locks the local X display until a password is entered +xlogo [] (1) - X Window System logo +xlsatoms [] (1) - list interned atoms defined on server +xlsclients [] (1) - list client applications running on a display +xlsfonts [] (1) - server font list displayer for X +xlyap [] (6) - display an array of Lyapunov exponents graphically +xmag [] (1) - magnify parts of the screen +xman [] (1) - Manual page display program for the X Window System +xmatrix [] (6) - simulates the computer displays from the movie +xmbind [] (1) - configures the virtual key bindings of LessTif applications +xmessage [] (1) - display a message or query in a window (X-based /bin/echo) +xmh [] (1) - send and read mail with an X interface to MH +xminesweep [] (6) - A mine-sweeper game +xmkmf [] (1) - create a Makefile from an Imakefile +xml [] (1) - config - script to get information about the installed version of GNOME-XML +xml2po [] (1) - program to create a PO-template file from a DocBook XML file and merge it back into a (translated) XML file +xml2pot [] (1) - Creates a PO template file from a DocBook XML file +xmlcatalog [] (1) - Command line tool to parse and manipulate XML or SGML catalog files +xmlif [] (1) - conditional processing instructions for XML +xmllint [] (1) - command line XML tool +xmlto [] (1) - apply an XSL stylesheet to an XML document +xmlwf [] (1) - Determines if an XML document is well-formed +xmodmap [] (1) - utility for modifying keymaps and pointer button mappings in X +xmore [] (1) - plain text display program for the X Window System +xneko [] (6) - cat-and-mouse chase in an X window +xon [] (1) - start an X program on a remote machine +xorg.conf [] (5) - configuration File for Xorg X server +xpaint [] (1) - Simple Paint program +xpdf [] (1) - Portable Document Format (PDF) file viewer for X (version 3.02) +xpdfrc [] (5) - configuration file for Xpdf tools (version 3.02) +xplsprinters [] (1) - shows a list of Xprint printers and it's attributes +xpmroot [] (1) - Sets the root window of the current X display to an Xpm pixmap +xpmtoppm [] (1) - convert an X11 pixmap into a PPM image +xpr [] (1) - print an X window dump +xprehashprinterlist [] (1) - Recomputes the list of available printers +xprop [] (1) - property displayer for X +xqmstats [] (8) - Display XFS quota manager statistics from /proc +xrandr [] (1) - primitive command line interface to RandR extension +xrayswarm [] (6) - swarms with color trails +xrdb [] (1) - X server resource database utility +xrefresh [] (1) - refresh all or part of an X screen +xroach [] (6) - cockroaches hide under your windows +xsane [] (1) - scanner frontend for SANE +xscanimage [] (1) - scan an image +xscope [] (1) - X Window Protocol Viewer +xscreensaver [] (1) - command - control a running xscreensaver process +xscreensaver [] (1) - demo - interactively control the background xscreensaver daemon +xscreensaver [] (1) - extensible screen saver framework, plus locking +xscreensaver [] (1) - getimage - put some randomly-selected image on the root window +xscreensaver [] (1) - getimage-file - put a randomly-selected image on the root window +xscreensaver [] (1) - getimage-video - put a video frame on the root window +xscreensaver [] (1) - text - prints some text to stdout, for use by screen savers +xscreensaver [] (6) - gl-helper - figure out which X visual to use for GL programs +xset [] (1) - user preference utility for X +xsetmode [] (1) - set the mode for an X Input device +xsetpointer [] (1) - set an X Input device as the main pointer +xsetroot [] (1) - root window parameter setting utility for X +xsldbg [] (1) - A command line tool to debug XSLT scripts +xsltproc [] (1) - command line XSLT processor +xsm [] (1) - X Session Manager +xsnow [] (6) - create a snowy and Santa-y desktop +xspirograph [] (6) - simulates the rotation of a disk inside a circular rim +xstdcmap [] (1) - X standard colormap utility +xsubpp [] (1) - compiler to convert Perl XS code into C code +xterm [] (1) - terminal emulator for X +xtotroff [] (1) - convert X font metrics into GNU troff font metrics +xtrapchar [] (1) - XTrap sample clients +xtrapin [] (1) - XTrap sample clients +xtrapinfo [] (1) - XTrap sample clients +xtrapout [] (1) - XTrap sample clients +xtrapproto [] (1) - XTrap sample clients +xtrapreset [] (1) - XTrap sample clients +xtrapstats [] (1) - XTrap sample clients +xv [] (1) - interactive image display for the X Window System +xvidtune [] (1) - video mode tuner for Xorg +xvinfo [] (1) - Print out X-Video extension adaptor information +xvminitoppm [] (1) - convert a XV thumbnail picture to PPM +xvpictoppm [] (1) - converts XV 'thumbnail' files to standard PPM format +xwd [] (1) - dump an image of an X window +xwdtopnm [] (1) - convert a X11 or X10 window dump file into a portable anymap +xwininfo [] (1) - window information utility for X +xwmconfig [] (1) - choose a default window manager for X +xwud [] (1) - image displayer for X +xxd [] (1) - make a hexdump or do the reverse +xxgdb [] (1) - X window system interface to the gdb debugger +y0 [] (3) - Bessel functions of the second kind +y0f [] (3) - Bessel functions of the second kind +y0l [] (3) - Bessel functions of the second kind +y1 [] (3) - Bessel functions of the second kind +y1f [] (3) - Bessel functions of the second kind +y1l [] (3) - Bessel functions of the second kind +yacc (1) - GNU Project parser generator +ybmtopbm [] (1) - convert a Bennet Yee face file into a portable bitmap +yes [] (1) - output a string repeatedly until killed +yn [] (3) - Bessel functions of the second kind +ynf [] (3) - Bessel functions of the second kind +ynl [] (3) - Bessel functions of the second kind +ypbind [] (8) - NIS binding process +ypcat [] (1) - print values of all keys in a NIS database +ypchfn [] (1) - change your password in the NIS database +ypchsh [] (1) - change your password in the NIS database +ypdomainname [] (1) - show or set the system's NIS/YP domain name +ypdomainname [] (8) - set or display name of current NIS(YP) domain +yphelper [] (8) - helper application for internal use +ypinit [] (8) - NIS database install and build program +ypmatch [] (1) - print the values of one or more keys from a NIS map +yppasswd [] (1) - change your password in the NIS database +yppoll [] (8) - return version and master server of a NIS map +yppush [] (8) - force propagation of changed NIS databases +ypserv [] (8) - NIS server +ypserv.conf [] (5) - configuration file for ypserv and rpc.ypxfrd +ypset [] (8) - bind ypbind to a particular NIS server +yptest [] (8) - test NIS configuration +ypwhich [] (1) - return name of NIS server or map master +ypxfr [] (8) - transfer NIS database from remote server to local host +ytalk [] (1) - A multi-user chat program +yuvplittoppm [] (1) - convert a Y- and U- and a V-file into a portable pixmap +yuvtoppm [] (1) - convert Abekas YUV bytes into a portable pixmap +zcat [] (1) - compress and expand data (version 4.1) +zcat [] (1) - compress or expand files +zcmp [] (1) - compare compressed files +zdiff [] (1) - compare compressed files +zdump [] (8) - timezone dumper +zeisstopnm [] (1) - convert a Zeiss confocal file into a portable anymap +zenmap [] (1) - Graphical Nmap frontend and results viewer +zero [] (4) - data sink +zforce [] (1) - force a '.gz' extension on all gzip files +zgrep [] (1) - search possibly compressed files for a regular expression +zic [] (8) - timezone compiler +zic2xpm [] (6) - Tool to convert ZIICS chess pieces into XBoard (XPM/XIM) pieces +zip [] (1) - package and compress (archive) files +zip_add, [zip_add] (3) - .Nm zip_replace add file to zip archive or replace file in zip archive +zip_add, [zip_replace] (3) - .Nm zip_replace add file to zip archive or replace file in zip archive +zip_add_dir [] (3) - add directory to zip archive +zip_close [] (3) - close zip archive +zip_delete [] (3) - delete file from zip archive +zip_error_clear, [zip_error_clear] (3) - .Nm zip_file_error_clear clear error state for archive or file +zip_error_clear, [zip_file_error_clear] (3) - .Nm zip_file_error_clear clear error state for archive or file +zip_error_get, [zip_error_get] (3) - .Nm zip_file_error_get get error codes for archive or file +zip_error_get, [zip_file_error_get] (3) - .Nm zip_file_error_get get error codes for archive or file +zip_error_get_sys_type [] (3) - get type of system error code +zip_error_to_str [] (3) - get string representation of zip error +zip_errors [] (3) - list of all libzip error codes +zip_fclose [] (3) - close file in zip archive +zip_file_strerror, [zip_file_strerror] (3) - .Nm zip_strerror get string representation for a zip error +zip_file_strerror, [zip_strerror] (3) - .Nm zip_strerror get string representation for a zip error +zip_fopen, [zip_fopen] (3) - .Nm zip_fopen_index open file in zip archive for reading +zip_fopen, [zip_fopen_index] (3) - .Nm zip_fopen_index open file in zip archive for reading +zip_fread [] (3) - read from file +zip_get_archive_comment [] (3) - get zip archive comment +zip_get_archive_flag [] (3) - get status flags for zip +zip_get_file_comment [] (3) - get comment for file in zip +zip_get_name [] (3) - get name of file by index +zip_get_num_files [] (3) - get number of files in archive +zip_name_locate [] (3) - get index of file by name +zip_open [] (3) - open zip archive +zip_rename [] (3) - rename file in zip archive +zip_set_archive_comment [] (3) - set zip archive comment +zip_set_archive_flag [] (3) - set zip archive flag +zip_set_file_comment [] (3) - set comment for file in zip +zip_source_buffer [] (3) - create zip data source from buffer +zip_source_file [] (3) - create data source from a file +zip_source_filep [] (3) - create data source from FILE * +zip_source_free [] (3) - free zip data source +zip_source_function [] (3) - create data source from function +zip_source_zip [] (3) - create data source from zip file +zip_stat, [zip_stat] (3) - .Nm zip_stat_index get information about file +zip_stat, [zip_stat_index] (3) - .Nm zip_stat_index get information about file +zip_stat_init [] (3) - initialize zip_stat structure +zip_unchange [] (3) - undo changes to file in zip archive +zip_unchange_all [] (3) - undo all changes in a zip archive +zip_unchange_archive [] (3) - undo global changes to zip archive +zipcloak [] (1) - package and compress (archive) files +zipcmp [] (1) - compare contents of zip archives +zipgrep [] (1) - search files in a ZIP archive for lines matching a pattern +zipinfo [] (1) - list detailed information about a ZIP archive +zipmerge [] (1) - merge zip archives +zipnote [] (1) - package and compress (archive) files +zipsplit [] (1) - package and compress (archive) files +ziptool [] (1) - Tool for IOMega JAZ and ZIP drives +ziptorrent [] (1) - torrentzip zip archives +zless [] (1) - file perusal filter for crt viewing of compressed text +zlib [] (3) - compression/decompression library +zmore [] (1) - file perusal filter for crt viewing of compressed text +znew [] (1) - recompress .Z files to .gz files +zonetab2pot.py [] (1) - Converts a timezone list to a PO file template +zoo [] (1) - manipulate archives of files in compressed form +zoom [] (6) - wander around magnified desktop +zsh [] (1) - the Z shell +zshall [] (1) - the Z shell meta-man page +zshbuiltins [] (1) - zsh built-in commands +zshcalsys [] (1) - zsh calendar system +zshcompctl [] (1) - zsh programmable completion +zshcompsys [] (1) - zsh completion system +zshcompwid [] (1) - zsh completion widgets +zshcontrib [] (1) - user contributions to zsh +zshexpn [] (1) - zsh expansion and substitution +zshmisc [] (1) - everything and then some +zshmodules [] (1) - zsh loadable modules +zshoptions [] (1) - zsh options +zshparam [] (1) - zsh parameters +zshroadmap [] (1) - informal introduction to the zsh manual +zshtcpsys [] (1) - zsh tcp system +zshzftpsys [] (1) - zftp function front-end +zshzle [] (1) - zsh command line editor diff --git a/source/ap/man/doinst.sh b/source/ap/man/doinst.sh new file mode 100644 index 000000000..22fa61d14 --- /dev/null +++ b/source/ap/man/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config usr/lib/man.conf.new + diff --git a/source/ap/man/man-1.6f.nroff.mandoc.diff b/source/ap/man/man-1.6f.nroff.mandoc.diff new file mode 100644 index 000000000..6b14b3e7e --- /dev/null +++ b/source/ap/man/man-1.6f.nroff.mandoc.diff @@ -0,0 +1,11 @@ +--- ./src/man.conf.in.orig 2007-08-20 23:15:21.000000000 -0500 ++++ ./src/man.conf.in 2009-08-08 20:53:33.000000000 -0500 +@@ -89,7 +89,7 @@ + # causes problems, add the -c option to TROFF, NROFF, JNROFF. + # + TROFF @troff@ +-NROFF @nroff@ ++NROFF /usr/bin/nroff -mandoc + JNROFF @jnroff@ + EQN @eqn@ + NEQN @neqn@ diff --git a/source/ap/man/man.SlackBuild b/source/ap/man/man.SlackBuild new file mode 100755 index 000000000..6ee765c3f --- /dev/null +++ b/source/ap/man/man.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.6f +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-man + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf $PKG +mkdir -p $TMP $PKG +rm -rf man-$VERSION +tar xvf $CWD/man-$VERSION.tar.bz2 +cd man-$VERSION + +# In man.conf, set NROFF to "/usr/bin/nroff -mandoc" rather +# than "/usr/bin/nroff -Tlatin1". This works better with +# modern console encodings. Thanks to rg3. +zcat $CWD/man-1.6f.nroff.mandoc.diff.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure +lang all +traditional -confdir /usr/lib${LIBDIRSUFFIX} +make +make install PREFIX=$PKG +mv $PKG/usr/lib${LIBDIRSUFFIX}/man.conf $PKG/usr/lib${LIBDIRSUFFIX}/man.conf.new + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +( cd $PKG/usr/man + find . -name "*.?" -exec gzip -9 {} \; + # hack to remove empty man directories: + ( find . -type d | xargs rmdir ) 2> /dev/null + ( find . -type d | xargs rmdir ) 2> /dev/null +) + +mkdir -p $PKG/usr/doc/man-$VERSION +cp -a COPYING* INSTALL LSM README TODO $PKG/usr/doc/man-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz | sed -e "s#/lib/#/lib${LIBDIRSUFFIX}/#g" \ + > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/man-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/man/slack-desc b/source/ap/man/slack-desc new file mode 100644 index 000000000..284c863c6 --- /dev/null +++ b/source/ap/man/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +man: man (format and display the on-line manual pages) +man: +man: The man package is a collection of tools used for searching and +man: reading the online system documentation. In fact, on most UNIX-like +man: operating systems it is the primary means of finding out how programs +man: on the system work. For example, 'man man' will display the +man: documentation for man itself. +man: +man: Man requires the groff text processing package. +man: +man: diff --git a/source/ap/mc/mc.SlackBuild b/source/ap/mc/mc.SlackBuild new file mode 100755 index 000000000..8beae8b41 --- /dev/null +++ b/source/ap/mc/mc.SlackBuild @@ -0,0 +1,108 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=20090714_git +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mc +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf mc-$VERSION +tar xvf $CWD/mc-$VERSION.tar.xz || exit 1 +cd mc-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./autogen.sh + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --localstatedir=/var \ + --docdir=/usr/doc/mc-$VERSION \ + --enable-extcharset \ + --enable-netcode \ + --enable-background \ + --enable-charset \ + --with-gpm-mouse \ + --with-ext2undel \ + --with-x=yes \ + --with-vfs \ + --with-samba \ + --with-configdir=/etc/samba \ + --with-codepagedir=/etc/codepages \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/share/mc/bin +cp -a $CWD/profile.d/mc-wrapper.* $PKG/usr/share/mc/bin +chown root:root $PKG/usr/share/mc/bin/* +chmod 755 $PKG/usr/share/mc/bin/* +mkdir -p $PKG/etc/profile.d +cp -a $CWD/profile.d/mc.* $PKG/etc/profile.d +chown root:root $PKG/etc/profile.d/* +chmod 755 $PKG/etc/profile.d/* + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/mc-$VERSION +cp -a \ + AUTHORS doc/COPYING* doc/FAQ doc/HACKING doc/INSTALL doc/MAINTAINERS doc/NEWS doc/README* doc/TODO \ + $PKG/usr/doc/mc-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/mc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/mc/profile.d/mc-wrapper.csh b/source/ap/mc/profile.d/mc-wrapper.csh new file mode 100755 index 000000000..7b4c383d9 --- /dev/null +++ b/source/ap/mc/profile.d/mc-wrapper.csh @@ -0,0 +1,20 @@ +set MC_USER="`id | sed 's/[^(]*(//;s/).*//'`" + +if ($?TMPDIR) then + setenv MC_PWD_FILE $TMPDIR/mc-$MC_USER/mc.pwd.$$ +else + setenv MC_PWD_FILE /tmp/mc-$MC_USER/mc.pwd.$$ +endif + +/usr/bin/mc -P "$MC_PWD_FILE" $* + +if (-r "$MC_PWD_FILE") then + setenv MC_PWD "`cat '$MC_PWD_FILE'`" + if ( -d "$MC_PWD" ) then + cd "$MC_PWD" + endif + unsetenv MC_PWD +endif + +rm -f "$MC_PWD_FILE" +unsetenv MC_PWD_FILE diff --git a/source/ap/mc/profile.d/mc-wrapper.sh b/source/ap/mc/profile.d/mc-wrapper.sh new file mode 100755 index 000000000..36db15747 --- /dev/null +++ b/source/ap/mc/profile.d/mc-wrapper.sh @@ -0,0 +1,14 @@ +MC_USER=`id | sed 's/[^(]*(//;s/).*//'` +MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$" +/usr/bin/mc -P "$MC_PWD_FILE" "$@" + +if test -r "$MC_PWD_FILE"; then + MC_PWD="`cat "$MC_PWD_FILE"`" + if test -n "$MC_PWD" && test -d "$MC_PWD"; then + cd "$MC_PWD" + fi + unset MC_PWD +fi + +rm -f "$MC_PWD_FILE" +unset MC_PWD_FILE diff --git a/source/ap/mc/profile.d/mc.csh b/source/ap/mc/profile.d/mc.csh new file mode 100755 index 000000000..5a614bb22 --- /dev/null +++ b/source/ap/mc/profile.d/mc.csh @@ -0,0 +1 @@ +alias mc 'source /usr/share/mc/bin/mc-wrapper.csh' diff --git a/source/ap/mc/profile.d/mc.sh b/source/ap/mc/profile.d/mc.sh new file mode 100755 index 000000000..8198ab456 --- /dev/null +++ b/source/ap/mc/profile.d/mc.sh @@ -0,0 +1 @@ +alias mc='. /usr/share/mc/bin/mc-wrapper.sh' diff --git a/source/ap/mc/slack-desc b/source/ap/mc/slack-desc new file mode 100644 index 000000000..be6ca439a --- /dev/null +++ b/source/ap/mc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mc: mc (Midnight Commander file manager) +mc: +mc: The Midnight Commander is a Norton Commander clone, a program that +mc: manipulates and manages files and directories. Useful, fast, and has +mc: color displays on the Linux console. Mouse support is provided +mc: through the gpm mouse server. This is a lightweight compilation of +mc: mc for use on the text console or in an xterm. +mc: +mc: mc was written by Miguel de Icaza and Mauricio Plaza. +mc: +mc: diff --git a/source/ap/most/most.SlackBuild b/source/ap/most/most.SlackBuild new file mode 100755 index 000000000..8d4456a08 --- /dev/null +++ b/source/ap/most/most.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=5.0.0a +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-most + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf most-$VERSION +tar xvf $CWD/most-$VERSION.tar.bz2 || exit 1 +cd most-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --docdir=/usr/doc \ + --with-slang=/usr \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Was --mandir ignored? +if [ -d $PKG/usr/share/man ]; then + mv $PKG/usr/share/man $PKG/usr +fi + +gzip -9 $PKG/usr/man/man?/* + +mv $PKG/usr/share/doc $PKG/usr +mv $PKG/usr/doc/most $PKG/usr/doc/most-$VERSION +for file in $PKG/usr/doc/most-$VERSION/* ; do + if [ -r `basename $file` ]; then + cp -a `basename $file` $file + fi +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/most-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/most/slack-desc b/source/ap/most/slack-desc new file mode 100644 index 000000000..1d5b44930 --- /dev/null +++ b/source/ap/most/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +most: most (another pager, like 'more' and 'less') +most: +most: most is a paging program that displays, one windowful at a time, the +most: contents of a file on a terminal. Unlike other well-known paging +most: programs, most supports multiple windows and can scroll left and +most: right. Why settle for less? +most: +most: 'most' was written by John E. Davis. +most: +most: +most: diff --git a/source/ap/mpg321/mpg321.SlackBuild b/source/ap/mpg321/mpg321.SlackBuild new file mode 100755 index 000000000..340c32703 --- /dev/null +++ b/source/ap/mpg321/mpg321.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.2.10 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mpg321 + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xvf $CWD/mpg321-$VERSION.tar.gz || exit 1 +cd mpg321-$VERSION || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +strip mpg321 +mkdir -p $PKG/usr/bin +cat mpg321 > $PKG/usr/bin/mpg321 +chmod 755 $PKG/usr/bin/mpg321 +( cd $PKG/usr/bin ; rm -f mpg123 ; ln -sf mpg321 mpg123 ) + +mkdir -p $PKG/usr/man/man1 +cat mpg321.1 | gzip -9c > $PKG/usr/man/man1/mpg321.1.gz + +mkdir -p $PKG/usr/doc/mpg321-$VERSION +cp -a \ + AUTHORS BUGS COPYING ChangeLog HACKING INSTALL NEWS \ + README README.remote THANKS TODO \ + $PKG/usr/doc/mpg321-$VERSION +chown -R root:root $PKG/usr/doc/mpg321-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/mpg321-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/mpg321/slack-desc b/source/ap/mpg321/slack-desc new file mode 100644 index 000000000..81b435b58 --- /dev/null +++ b/source/ap/mpg321/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mpg321: mpg321 (a command-line mp3 player) +mpg321: +mpg321: mpg321 is a free command-line mp3 player, which uses the mad audio +mpg321: decoding library. mpg321 is written to be a drop-in replacement for +mpg321: the mpg123 player for front-ends such as gqmpeg and programs which use +mpg321: mpg123 to decode mp3 files (like gtoaster, and other CD-recording +mpg321: software). +mpg321: +mpg321: mpg321 requires libao.so from the oggutils package. +mpg321: +mpg321: diff --git a/source/ap/mysql/doinst.sh b/source/ap/mysql/doinst.sh new file mode 100644 index 000000000..22f77474e --- /dev/null +++ b/source/ap/mysql/doinst.sh @@ -0,0 +1,22 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.mysqld.new: +if [ -e etc/rc.d/rc.mysqld ]; then + cp -a etc/rc.d/rc.mysqld etc/rc.d/rc.mysqld.new.incoming + cat etc/rc.d/rc.mysqld.new > etc/rc.d/rc.mysqld.new.incoming + mv etc/rc.d/rc.mysqld.new.incoming etc/rc.d/rc.mysqld.new +fi + +config etc/rc.d/rc.mysqld.new + diff --git a/source/ap/mysql/mirror-url b/source/ap/mysql/mirror-url new file mode 100644 index 000000000..37be0283c --- /dev/null +++ b/source/ap/mysql/mirror-url @@ -0,0 +1 @@ +http://mysql.he.net/Downloads/MySQL-5.0/mysql-5.0.82.tar.gz diff --git a/source/ap/mysql/mysql-embedded.build b/source/ap/mysql/mysql-embedded.build new file mode 100755 index 000000000..9b06d386b --- /dev/null +++ b/source/ap/mysql/mysql-embedded.build @@ -0,0 +1,46 @@ +#!/bin/sh +# Build and install MySQL on Slackware +# by: David Cantrell <david@slackware.com> +# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com> + +VERSION=5.0.84 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mysql + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf mysql-$VERSION +tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1 +cd mysql-$VERSION + +CFLAGS="$SLKCFLAGS -fPIC" CXXFLAGS="$SLKCFLAGS -fPIC" \ + ./configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} \ + --datadir=/usr/share --sysconfdir=/etc/mysql \ + --libexecdir=/usr/sbin --localstatedir=/var/lib/mysql \ + --without-docs --without-man --without-server \ + --with-embedded-server --without-innodb --without-bench \ + --without-berkeley-db --without-row-based-replication \ + --without-readline --disable-shared --with-charset=utf8 \ + --without-debug --with-pthread --without-openssl --without-query-cache \ + --without-geometry --with-pic + +make -j6 || make || exit 1 + +cp libmysqld/libmysqld.a /usr/lib${LIBDIRSUFFIX}/mysql/ + diff --git a/source/ap/mysql/mysql.SlackBuild b/source/ap/mysql/mysql.SlackBuild new file mode 100755 index 000000000..16ba3efa8 --- /dev/null +++ b/source/ap/mysql/mysql.SlackBuild @@ -0,0 +1,182 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Build and install MySQL on Slackware +# by: David Cantrell <david@slackware.com> +# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com> + + +VERSION=5.0.84 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mysql + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf mysql-$VERSION +tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1 +cd mysql-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \ +CXX=gcc \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-mysqld-user=mysql \ + --with-unix-socket-path=/var/run/mysql/mysql.sock \ + --localstatedir=/var/lib/mysql \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-assembler \ + --with-raid \ + --without-debug \ + --enable-thread-safe-client \ + --without-bench \ + --with-extra-charsets=complex \ + --with-vio \ + --with-openssl \ + --build=$ARCH-slackware-linux +# +# --without-readline + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Install support files +mkdir -p $PKG/etc +cp support-files/my-{huge,large,medium,small}.cnf $PKG/etc + +# Install docs +mkdir -p $PKG/usr/doc/mysql-$VERSION/Docs +cp -a \ + COPYING* MIRRORS README* \ + $PKG/usr/doc/mysql-$VERSION +( cd Docs + cp -a INSTALL-BINARY *.html *.txt Flags \ + $PKG/usr/doc/mysql-$VERSION/Docs ) +# Too large to justify since the .html version is right there: +rm $PKG/usr/doc/mysql-$VERSION/Docs/manual.txt +find $PKG/usr/doc/mysql-$VERSION -type f -exec chmod 0644 {} \; + +# This is the directory where databases are stored +mkdir -p $PKG/var/lib/mysql +chown mysql.mysql $PKG/var/lib/mysql +chmod 0750 $PKG/var/lib/mysql + +# This is where the socket is stored +mkdir -p $PKG/var/run/mysql +chown mysql.mysql $PKG/var/run/mysql +chmod 0755 $PKG/var/run/mysql + +# Do not include the test suite: +rm -rf $PKG/usr/mysql-test + +# Add init script: +mkdir -p $PKG/etc/rc.d +# This is intentionally chmod 644. +zcat $CWD/rc.mysqld.gz > $PKG/etc/rc.d/rc.mysqld.new + +# Install script: +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Add some handy library symlinks: +if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient.so.15 ]; then + ( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libmysqlclient.so libmysqlclient.so.15 + ln -sf mysql/libmysqlclient.so . + ln -sf mysql/libmysqlclient.so.15 . + ) +else + exit 1 +fi +if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient_r.so.15 ]; then + ( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libmysqlclient_r.so libmysqlclient_r.so.15 + ln -sf mysql/libmysqlclient_r.so . + ln -sf mysql/libmysqlclient_r.so.15 . + ) +else + exit 1 +fi + +# Packaging standards: +rm -f $PKG/usr/info/dir + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Build package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/mysql-$VERSION-$ARCH-$BUILD.txz + +if [ "$1" == "--cleanup" ]; then + cd $TMP + rm -rf mysql-$VERSION +fi diff --git a/source/ap/mysql/rc.mysqld b/source/ap/mysql/rc.mysqld new file mode 100644 index 000000000..300e6eb2d --- /dev/null +++ b/source/ap/mysql/rc.mysqld @@ -0,0 +1,86 @@ +#!/bin/sh +# Start/stop/restart mysqld. +# +# Copyright 2003 Patrick J. Volkerding, Concord, CA +# Copyright 2003 Slackware Linux, Inc., Concord, CA +# Copyright 2008 Patrick J. Volkerding, Sebeka, MN +# +# This program comes with NO WARRANTY, to the extent permitted by law. +# You may redistribute copies of this program under the terms of the +# GNU General Public License. + +# To start MySQL automatically at boot, be sure this script is executable: +# chmod 755 /etc/rc.d/rc.mysqld + +# Before you can run MySQL, you must have a database. To install an initial +# database, do this as root: +# +# mysql_install_db --user=mysql +# +# Note that the mysql user must exist in /etc/passwd, and the created files +# will be owned by this dedicated user. This is important, or else mysql +# (which runs as user "mysql") will not be able to write to the database +# later (this can be fixed with 'chown -R mysql.mysql /var/lib/mysql'). +# +# To increase system security, consider using "mysql_secure_installation" +# as well. For more information on this tool, please read: +# man mysql_secure_installation + +# To allow outside connections to the database comment out the next line. +# If you don't need incoming network connections, then leave the line +# uncommented to improve system security. +SKIP="--skip-networking" + +# Start mysqld: +mysqld_start() { + if [ -x /usr/bin/mysqld_safe ]; then + # If there is an old PID file (no mysqld running), clean it up: + if [ -r /var/run/mysql/mysql.pid ]; then + if ! ps axc | grep mysqld 1> /dev/null 2> /dev/null ; then + echo "Cleaning up old /var/run/mysql/mysql.pid." + rm -f /var/run/mysql/mysql.pid + fi + fi + /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysql/mysql.pid $SKIP & + fi +} + +# Stop mysqld: +mysqld_stop() { + # If there is no PID file, ignore this request... + if [ -r /var/run/mysql/mysql.pid ]; then + killall mysqld + # Wait at least one minute for it to exit, as we don't know how big the DB is... + for second in 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 \ + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 60 ; do + if [ ! -r /var/run/mysql/mysql.pid ]; then + break; + fi + sleep 1 + done + if [ "$second" = "60" ]; then + echo "WARNING: Gave up waiting for mysqld to exit!" + sleep 15 + fi + fi +} + +# Restart mysqld: +mysqld_restart() { + mysqld_stop + mysqld_start +} + +case "$1" in +'start') + mysqld_start + ;; +'stop') + mysqld_stop + ;; +'restart') + mysqld_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/ap/mysql/slack-desc b/source/ap/mysql/slack-desc new file mode 100644 index 000000000..29e1b8be4 --- /dev/null +++ b/source/ap/mysql/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mysql: mysql (SQL-based relational database server) +mysql: +mysql: MySQL is a fast, multi-threaded, multi-user, and robust SQL +mysql: (Structured Query Language) database server. It comes with a nice API +mysql: which makes it easy to integrate into other applications. +mysql: +mysql: The home page for MySQL is http://www.mysql.com/ +mysql: +mysql: +mysql: +mysql: diff --git a/source/ap/nano/nano.SlackBuild b/source/ap/nano/nano.SlackBuild new file mode 100755 index 000000000..7a1440e01 --- /dev/null +++ b/source/ap/nano/nano.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=nano +VERSION=${VERSION:-2.0.9} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --enable-color \ + --enable-multibuffer \ + --enable-nanorc \ + --enable-all \ + --enable-utf8 \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ABOUT-NLS AUTHORS BUGS COPYING* INSTALL NEWS README* THANKS TODO UPGRADE \ + doc/faq.html doc/nanorc.sample \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/nano/slack-desc b/source/ap/nano/slack-desc new file mode 100644 index 000000000..8b9b54c8a --- /dev/null +++ b/source/ap/nano/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nano: nano (Nano's ANOther editor, an enhanced free Pico clone) +nano: +nano: nano is a small, free, and friendly editor from the GNU project. It +nano: aims to copy Pico's look and feel while providing additional (or +nano: disabled by default) features that are missing from Pico, such as +nano: "search and replace" or "go to line and column number". +nano: +nano: Chris Allegretta is Nano's author. +nano: +nano: +nano: diff --git a/source/ap/normalize/normalize.SlackBuild b/source/ap/normalize/normalize.SlackBuild new file mode 100755 index 000000000..0a40ec1e4 --- /dev/null +++ b/source/ap/normalize/normalize.SlackBuild @@ -0,0 +1,80 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.7.7 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-normalize + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf normalize-$VERSION +tar xvf $CWD/normalize-$VERSION.tar.bz2 || exit 1 +cd normalize-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --enable-xmms \ + --with-mad \ + --build=$ARCH-slackware-linux + #--without-audiofile \ + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +gzip -9 $PKG/usr/man/man?/*.? + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/normalize-$VERSION +cp -a \ + COPYING INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/normalize-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/normalize-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/normalize/slack-desc b/source/ap/normalize/slack-desc new file mode 100644 index 000000000..156c080ff --- /dev/null +++ b/source/ap/normalize/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +normalize: normalize (adjusts volume levels of audio files) +normalize: +normalize: normalize is a tool for adjusting the volume of audio files to a +normalize: standard level. This is useful for things like creating mix CDs +normalize: from mp3 collections, where different recording levels on +normalize: different albums can cause the volume to vary greatly from song +normalize: to song. The package also contains an XMMS plugin. +normalize: +normalize: Chris Vaill is the author of normalize. +normalize: +normalize: + diff --git a/source/ap/ntfsprogs/ntfsprogs.SlackBuild b/source/ap/ntfsprogs/ntfsprogs.SlackBuild new file mode 100755 index 000000000..e18fa97dc --- /dev/null +++ b/source/ap/ntfsprogs/ntfsprogs.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=ntfsprogs +VERSION=${VERSION:-2.0.0} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --bindir=/bin \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ + --disable-gnome-vfs \ + --disable-ntfsmount \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/lib${LIBDIRSUFFIX} +mv $PKG/usr/lib${LIBDIRSUFFIX}/libntfs.so.* $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf ../../lib${LIBDIRSUFFIX}/libntfs* . ) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* CREDITS INSTALL NEWS README TODO* doc \ + $PKG/usr/doc/${PKGNAM}-$VERSION +rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/doc/Makefile* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/ntfsprogs/slack-desc b/source/ap/ntfsprogs/slack-desc new file mode 100644 index 000000000..4ed38c92b --- /dev/null +++ b/source/ap/ntfsprogs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ntfsprogs: ntfsprogs (utilities for working with NTFS volumes) +ntfsprogs: +ntfsprogs: The ntfsprogs includes utilities for doing all required tasks to NTFS +ntfsprogs: partitions. In general, just run a utility without any command line +ntfsprogs: options to display the version number and usage syntax. The following +ntfsprogs: utilities are implemented (so far): ntfsfix, mkntfs, ntfslabel, +ntfsprogs: ntfsundelete, ntfsresize, ntfsclone, ntfscluster, ntfsinfo, ntfsls, +ntfsprogs: ntfscat, ntfscp, and ntfsmount. +ntfsprogs: +ntfsprogs: The Linux-NTFS home page is: http://www.linux-ntfs.org/ +ntfsprogs: diff --git a/source/ap/pm-utils/README.SLACKWARE b/source/ap/pm-utils/README.SLACKWARE new file mode 100644 index 000000000..071624395 --- /dev/null +++ b/source/ap/pm-utils/README.SLACKWARE @@ -0,0 +1,119 @@ +README.SLACKWARE +20090414 - rworkman@slackware.com + +=============================================================================== +PLEASE READ THIS ENTIRE FILE BEFORE REPORTING PROBLEMS OR ASKING FOR HELP! +=============================================================================== + +One of these routines should tell you whether any of the operations +are supported by your current kernel/userspace at all: + + for i in hibernate suspend suspend-hybrid ; do + pm-is-supported --$i \ + && echo "$i is supported" \ + || echo "$i is not supported" ; + done + + *OR* + + cat /sys/power/state + +Assuming they are supported, running "pm-suspend" as root should do a suspend +to ram, and "pm-hibernate" should suspend to disk. Note that you must have a +swap partition (or file, but partition is easier) which is large enough +(2x ram is good here) and the relevant initrd lines and such for this to work. +If you're not familiar with all of that, don't test pm-hibernate. +I don't have hardware which supports suspend-hybrid, so I have no idea if/how +it works at all. + +Here's the short version of using suspend to disk: + +Stanza in /etc/lilo.conf should look something like this: + image = /boot/vmlinuz-generic-smp-2.6.29.1-smp + initrd = /boot/initrd.gz + append = "resume=/dev/hda2" + root = /dev/hda1 + label = Slackware + read-only + +/etc/mkinitrd.conf should look something like this: + MODULE_LIST="jfs" + ROOTDEV="/dev/hda1" + ROOTFS="jfs" + RESUMEDEV="/dev/hda2" + +mkinitrd command invocation would be this: + mkinitrd -c -k 2.6.29.1-smp -F + +All of the above assumes at least a cursory understanding of what those +commands and parameters do. If it's not clear, don't attempt it on a +system that you can't easily reinstall without concern. + +============================================================================== + +If it works for you, and/or you want to automate it a bit, you'll find +some sample acpi event declarations and scripts here: + http://rlworkman.net/conf/acpi/ +A better option is to use the power manager daemon included with your choice +of desktop environment (both kde and xfce have one). + +============================================================================== + +If it doesn't work by default for you, consider having a look at + http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index.html +for some debugging hints. Pay particular attention to this page: + http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-try.html + +If you are able to get your machine to suspend/resume correctly by passing +additional quirks on the command line, then I would like to know about it so +that upstream hal-info can get the correct information to use. Please email +the make/model and other relevant information about your machine along with +the full output of "lshal" and "lspci" attached, and what extra quirks you +needed to add for successful suspend/resume to rworkman@slackware.com + +============================================================================== + +If you need the system to do certain operations before going to sleep and +then undo them (or perhaps do something new) when waking back up, pm-utils +supports something called "hooks." The hooks installed by packages (not only +pm-utils itself) should be in /usr/lib/pm-utils/sleep.d/, while any hooks +installed by the local system administrator (e.g. things that are only an +issue on that one machine) should be in /etc/pm/sleep.d/. + +Looking at some of the existing hooks should give you a decent idea of their +capabilities; as a head start, the functions used in the hooks are declared +in /usr/lib/pm-utils/functions, which is inherited elsewhere by +/usr/lib/pm-utils/pm-functions. Note that an error exit code on any hook +will cause the sleep operation to fail, so if you don't care whether your +hook executes successfully, be sure to return an exit code of 0 (success) if +you don't want the suspend operation to fail. Some other exit codes are +also available; none of these will cause the suspend to fail: + $NA (not applicable), $NX (hook not executable), and $DX (hook disabled) + +One way to contribute to pm-utils indirectly is by writing and sending any +needed hooks scripts to upstream projects; as an example, the hook that +ships with wicd was contributed by me. Ideally, the pm-utils package should +have a very minimum number of hooks shipped with it, as they should ship with +the package to which the hook pertains; for example, the grub package would +ship its own hook. + +============================================================================== + +KNOWN ISSUES + +**** If you encounter either of these, mail rworkman@slackware.com **** + +If your alsa drivers don't correctly save and restore state across a sleep / +resume cycle (due to a buggy driver), then you will need to add the drivers +to a custom file named /etc/pm/config.d/defaults (create the file if it does +not exist already) in a variable named "SUSPEND_MODULES" - see the file at +/usr/lib/pm-utils/defaults for proper format. + +The /usr/lib/pm-utils/sleep.d/90clock does not run by default. It added +over a second to suspend, and the vast majority of hardware does not need it +to keep the clocks in sync. If you need this hook, you can set the +NEED_CLOCK_SYNC environment variable in a custom /etc/pm/config.d/defaults +file. + +============================================================================== + diff --git a/source/ap/pm-utils/pm-utils.SlackBuild b/source/ap/pm-utils/pm-utils.SlackBuild new file mode 100755 index 000000000..26e60714f --- /dev/null +++ b/source/ap/pm-utils/pm-utils.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Slackware build script for pm-utils + +# Copyright 2008, 2009 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PRGNAM=pm-utils +VERSION=1.2.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README* TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/pm-utils/pm-utils.url b/source/ap/pm-utils/pm-utils.url new file mode 100644 index 000000000..976c938fb --- /dev/null +++ b/source/ap/pm-utils/pm-utils.url @@ -0,0 +1 @@ +http://pm-utils.freedesktop.org diff --git a/source/ap/pm-utils/slack-desc b/source/ap/pm-utils/slack-desc new file mode 100644 index 000000000..8791c9304 --- /dev/null +++ b/source/ap/pm-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +pm-utils: pm-utils (Power Management Utilities) +pm-utils: +pm-utils: The pm-utils package provides simple shell command line tools to +pm-utils: suspend and hibernate computers that can be used to run vendor or +pm-utils: distribution supplied scripts on suspend and resume. +pm-utils: +pm-utils: Homepage: http://pm-utils.freedesktop.org/ +pm-utils: +pm-utils: +pm-utils: +pm-utils: diff --git a/source/ap/radeontool/radeontool.SlackBuild b/source/ap/radeontool/radeontool.SlackBuild new file mode 100755 index 000000000..3292a21c7 --- /dev/null +++ b/source/ap/radeontool/radeontool.SlackBuild @@ -0,0 +1,70 @@ +#!/bin/sh + +# Copyright 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=1.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-radeontool + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf radeontool-$VERSION +tar xvf $CWD/radeontool-$VERSION.tar.gz +cd radeontool-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fix a bad include +zcat $CWD/radeontool.c.diff.gz | patch -p1 || exit 1 + +gcc -Wall $SLKCFLAGS -o radeontool radeontool.c +strip --strip-unneeded radeontool +mkdir -p $PKG/usr/sbin +cp -a radeontool $PKG/usr/sbin + +mkdir -p $PKG/usr/doc/radeontool-$VERSION +cp -a CHANGES $PKG/usr/doc/radeontool-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/radeontool-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/radeontool/radeontool.c.diff b/source/ap/radeontool/radeontool.c.diff new file mode 100644 index 000000000..156863ed5 --- /dev/null +++ b/source/ap/radeontool/radeontool.c.diff @@ -0,0 +1,12 @@ +diff -u radeontool-1.5.orig/radeontool.c radeontool-1.5/radeontool.c +--- radeontool-1.5.orig/radeontool.c 2004-02-10 21:50:27.000000000 -0600 ++++ radeontool-1.5/radeontool.c 2008-11-24 13:21:32.895434558 -0600 +@@ -21,7 +21,7 @@ + #include <sys/stat.h> + #include <fcntl.h> + #include <sys/mman.h> +-#include <asm/page.h> ++#include <sys/user.h> + + #include "radeon_reg.h" + diff --git a/source/ap/radeontool/radeontool.info b/source/ap/radeontool/radeontool.info new file mode 100644 index 000000000..7c7c1c6c4 --- /dev/null +++ b/source/ap/radeontool/radeontool.info @@ -0,0 +1,8 @@ +PRGNAM="radeontool" +VERSION="1.5" +HOMEPAGE="http://fdd.com/software/radeon/" +DOWNLOAD="http://fdd.com/software/radeon/radeontool-1.5.tar.gz" +MD5SUM="8065eebe5a2b163e43b40461bfe49a56" +MAINTAINER="Robby Workman" +EMAIL="rw@rlworkman.net" +APPROVED="" diff --git a/source/ap/radeontool/slack-desc b/source/ap/radeontool/slack-desc new file mode 100644 index 000000000..9eea43477 --- /dev/null +++ b/source/ap/radeontool/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------| +radeontool: radeontool (small utility for ati radeon-based laptops) +radeontool: +radeontool: Radeontool is a small utility to control ATI Radeon-based +radeontool: laptops' backlight and external output functions +radeontool: +radeontool: Homepage: http://fdd.com/software/radeon/ +radeontool: +radeontool: +radeontool: +radeontool: +radeontool: diff --git a/source/ap/rexima/rexima.SlackBuild b/source/ap/rexima/rexima.SlackBuild new file mode 100755 index 000000000..4ef9ec9e5 --- /dev/null +++ b/source/ap/rexima/rexima.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rexima + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf rexima-$VERSION +tar xvf $CWD/rexima-$VERSION.tar.gz || exit 1 +cd rexima-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 + +strip rexima +mkdir -p $PKG/usr/bin +cat rexima > $PKG/usr/bin/rexima +chmod 755 $PKG/usr/bin/rexima + +mkdir -p $PKG/usr/man/man1 +cat rexima.1 | gzip -9c > $PKG/usr/man/man1/rexima.1.gz + +mkdir -p $PKG/usr/doc/rexima-$VERSION +cp -a \ + COPYING README ChangeLog NEWS \ + $PKG/usr/doc/rexima-$VERSION +chmod 644 $PKG/usr/doc/rexima-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/rexima-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/rexima/slack-desc b/source/ap/rexima/slack-desc new file mode 100644 index 000000000..8a8adabcc --- /dev/null +++ b/source/ap/rexima/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rexima: rexima (console audio mixer) +rexima: +rexima: Rexima is a curses-based interactive audio mixer. It can also be used +rexima: from the command-line. It's designed to be small, fast, and +rexima: straightforward. It also offers a command line mode so you can script +rexima: mixer settings. +rexima: +rexima: Rexima was written by Russell Marks. +rexima: +rexima: +rexima: diff --git a/source/ap/rpm/Packages b/source/ap/rpm/Packages new file mode 100644 index 000000000..f78d20ebb Binary files /dev/null and b/source/ap/rpm/Packages differ diff --git a/source/ap/rpm/doinst.sh b/source/ap/rpm/doinst.sh new file mode 100644 index 000000000..8b00622b7 --- /dev/null +++ b/source/ap/rpm/doinst.sh @@ -0,0 +1,5 @@ +if [ ! -r var/lib/rpm/Packages ]; then + ( cd var/lib/rpm/tmp ; cp -a * .. ) +fi +( cd var/lib/rpm && rm -f tmp/* && rmdir tmp ) +# Symlinks: diff --git a/source/ap/rpm/rpm.SlackBuild b/source/ap/rpm/rpm.SlackBuild new file mode 100755 index 000000000..a16f0a3ea --- /dev/null +++ b/source/ap/rpm/rpm.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Build RPM (of all things) for Slackware. + +VERSION=${VERSION:-4.7.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +NSS_INC="/usr/include/seamonkey/nss" +NSPR_INC="/usr/include/seamonkey/nspr" +DB_INC="/usr/include/db44" +NSS_LIBS="/usr/lib${LIBDIRSUFFIX}/seamonkey" + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/tmp/package-rpm + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf rpm-$VERSION +xz -dc $CWD/rpm-$VERSION.tar.xz | tar xvf - || exit 1 +cd rpm-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# We have to tell it where to find Seamonkey's NSS. +# Also, --enable-sqlite3 needs "-ldl" in LDFLAGS +# And --enable-broken-chown fits, as ours follows symlinks. +CFLAGS="$SLKCFLAGS -I$NSS_INC -I$NSPR_INC -I$DB_INC" \ +LDFLAGS="-L${NSS_LIBS} -ldl" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --mandir=/usr/man \ + --enable-python \ + --with-external-db \ + --enable-broken-chown \ + --without-hackingdocs \ + --without-selinux \ + --without-lua \ + --without-dmalloc \ + --enable-sqlite3 \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Here's a bug - /var/tmp should NOT have mode 0755 +rmdir $PKG/var/tmp || exit 1 + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +# Initialize a dummy package database +mkdir -p $PKG/var/lib/rpm/tmp +zcat $CWD/Packages.gz > $PKG/var/lib/rpm/tmp/Packages + +# Install docs +mkdir -p $PKG/usr/doc/rpm-$VERSION +cp -a \ + CHANGES COPYING CREDITS GROUPS INSTALL README TODO doc/manual \ + $PKG/usr/doc/rpm-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/rpm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/rpm/slack-desc b/source/ap/rpm/slack-desc new file mode 100644 index 000000000..e41765e1a --- /dev/null +++ b/source/ap/rpm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +rpm: rpm (RPM package format tool) +rpm: +rpm: RPM is a tool from Red Hat Software used to install and remove +rpm: packages in the .rpm format. When installing RPM packages on +rpm: Slackware, you may need to use the --nodeps and --force options. +rpm: Before installing any binary package, it's wise to examine it to +rpm: see what it's going to do, and if it will overwrite any files. You +rpm: can use rpm2tgz to convert .rpm packages to .tgz packages so you +rpm: can look them over. +rpm: +rpm: diff --git a/source/ap/rzip/rzip.SlackBuild b/source/ap/rzip/rzip.SlackBuild new file mode 100755 index 000000000..adcc2556b --- /dev/null +++ b/source/ap/rzip/rzip.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.1 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rzip + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf rzip-$VERSION +tar xvf $CWD/rzip-$VERSION.tar.gz || exit 1 +cd rzip-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make || exit 1 + +mkdir -p $PKG/bin +cp rzip $PKG/bin +chmod 755 $PKG/bin/rzip + +mkdir -p $PKG/usr/man/man1 +cat rzip.1 | gzip -9c > $PKG/usr/man/man1/rzip.1.gz + +mkdir -p $PKG/usr/doc/rzip-$VERSION +cp -a \ + COPYING \ + $PKG/usr/doc/rzip-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/rzip-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/rzip/slack-desc b/source/ap/rzip/slack-desc new file mode 100644 index 000000000..155b90583 --- /dev/null +++ b/source/ap/rzip/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rzip: rzip (a large-file compression program) +rzip: +rzip: rzip is a file compression program designed to do particularly well +rzip: on very large files containing long distance redundancy. +rzip: +rzip: rzip was written by Andrew Tridgell. +rzip: +rzip: +rzip: +rzip: +rzip: diff --git a/source/ap/sc/sc-7.16.lsm b/source/ap/sc/sc-7.16.lsm new file mode 100644 index 000000000..e37be385e --- /dev/null +++ b/source/ap/sc/sc-7.16.lsm @@ -0,0 +1,17 @@ +Begin4 +Title: sc Spreadsheet Calculator +Version: 7.16 +Entered-date: 2002-9-19 +Description: sc is a free curses-based spreadsheet program that uses + key bindings similar to vi and less. +Keywords: spreadsheet calculator console textmode curses ncurses +Author: Too numerous to mention. +Maintained-by: nrocinu@myrealbox.com (Chuck Martin) +Primary-site: ibiblio.org /pub/Linux/apps/financial/spreadsheet +Alternate-site: +Original-site: +Platforms: Pre-7.x versions presumably worked on any Unix or Unix + clone, as well as VMS and DOS. Hopefully, this is still + true, but it's only been tested on Linux. +Copying-policy: Public domain +End diff --git a/source/ap/sc/sc-gcc34.diff b/source/ap/sc/sc-gcc34.diff new file mode 100644 index 000000000..28ec88107 --- /dev/null +++ b/source/ap/sc/sc-gcc34.diff @@ -0,0 +1,10 @@ +--- vi.c.orig 2005-01-15 16:56:05.632773048 +0000 ++++ vi.c 2005-01-15 16:56:14.788381184 +0000 +@@ -40,7 +40,6 @@ + + #define istext(a) (isalnum(a) || ((a) == '_')) + +-#define bool int + #define true 1 + #define false 0 + diff --git a/source/ap/sc/sc-malloc.diff b/source/ap/sc/sc-malloc.diff new file mode 100644 index 000000000..2133ed42e --- /dev/null +++ b/source/ap/sc/sc-malloc.diff @@ -0,0 +1,13 @@ +--- xmalloc.c.orig 2004-07-11 22:34:48.681076912 +0200 ++++ xmalloc.c 2004-07-11 22:34:57.150789320 +0200 +@@ -6,8 +6,8 @@ + #include <curses.h> + #include "sc.h" + +-extern char *malloc(); +-extern char *realloc(); ++extern void *malloc(size_t size); ++extern void *realloc(); + extern void free(); + void fatal(); + diff --git a/source/ap/sc/sc.SlackBuild b/source/ap/sc/sc.SlackBuild new file mode 100755 index 000000000..8a8bba72c --- /dev/null +++ b/source/ap/sc/sc.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=7.16 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sc + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_sc.tar.gz +mv $PKG/usr/lib $PKG/usr/lib${LIBDIRSUFFIX} + +cd $TMP +tar xvf $CWD/sc-$VERSION.tar.gz || exit 1 +cd sc-$VERSION || exit 1 +# Old software, modern compiler: +zcat $CWD/sc-gcc34.diff.gz | patch -p0 --verbose || exit 1 +zcat $CWD/sc-malloc.diff.gz | patch -p0 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 + +cat sc > $PKG/usr/bin/sc +cat scqref > $PKG/usr/bin/scqref +cat psc > $PKG/usr/bin/psc + +name=sc NAME=SC LIBDIR=/usr/lib${LIBDIRSUFFIX}/sc sh torev sc.doc > sc.1 +name=sc NAME=SC LIBDIR=/usr/lib${LIBDIRSUFFIX}/sc sh torev psc.doc > psc.1 +cat sc.1 | gzip -9c > $PKG/usr/man/man1/sc.1.gz +cat psc.1 | gzip -9c > $PKG/usr/man/man1/psc.1.gz + +mkdir -p $PKG/usr/doc/sc-$VERSION +cp -a CHANGES README TODO $PKG/usr/doc/sc-$VERSION +chmod 644 $PKG/usr/doc/sc-$VERSION/* +cat tutorial.sc > $PKG/usr/lib${LIBDIRSUFFIX}/sc/tutorial.sc + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/sc/slack-desc b/source/ap/sc/slack-desc new file mode 100644 index 000000000..c64ef2f66 --- /dev/null +++ b/source/ap/sc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sc: sc (spreadsheet calculator) +sc: +sc: This is a simple curses-based spreadsheet program. +sc: +sc: +sc: +sc: +sc: +sc: +sc: +sc: diff --git a/source/ap/screen/screen.SlackBuild b/source/ap/screen/screen.SlackBuild new file mode 100755 index 000000000..a9f05634c --- /dev/null +++ b/source/ap/screen/screen.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-4.0.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-screen + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf screen-$VERSION +tar xjvf $CWD/screen-$VERSION.tar.bz2 + +cd screen-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --with-sys-screenrc=/etc/screenrc \ + --with-pty-mode=0620 \ + --with-pty-group=5 \ + --enable-telnet \ + --disable-socket-dir \ + --enable-locale \ + --enable-colors256 \ + --enable-rxvt_osc \ + $ARCH-slackware-linux + +# Substitutions: +perl -pi -e 's|.*#undef HAVE_BRAILLE.*|#define HAVE_BRAILLE 1|' config.h +perl -pi -e 's|/usr/local/etc/screenrc|/etc/screenrc|' etc/etcscreenrc doc/* +perl -pi -e 's|/local/etc/screenrc|/etc/screenrc|' doc/* + +# Build screen: +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Prepare package: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +# Sorry, pal. Not around here. +chmod 755 $PKG/usr/bin/screen-$VERSION +mkdir -p $PKG/etc/skel +cat etc/etcscreenrc > $PKG/etc/screenrc.new +cat etc/screenrc > $PKG/etc/skel/.screenrc.new +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +gzip -9 $PKG/usr/man/man1/* +mkdir -p $PKG/usr/doc/screen-$VERSION +chmod 644 doc/FAQ +cp -a COPYING ChangeLog INSTALL NEWS README TODO \ + doc/FAQ doc/README.DOTSCREEN \ + $PKG/usr/doc/screen-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/screenrc.new +config etc/skel/.screenrc.new +# This is probably safer than leaving the hidden .new file... maybe? +rm -f etc/skel/.screenrc.new +EOF + +# Build package: +cd $PKG +makepkg -l y -c n $TMP/screen-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/screen/slack-desc b/source/ap/screen/slack-desc new file mode 100644 index 000000000..cfe3136b6 --- /dev/null +++ b/source/ap/screen/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +screen: screen (screen manager with VT100/ANSI terminal emulation) +screen: +screen: Screen is a full-screen window manager that multiplexes a physical +screen: terminal between several processes (typically interactive shells). +screen: Each virtual terminal provides the functions of a DEC VT100 terminal +screen: and several control functions from the ISO 6492 (ECMA 48, ANSI X3.64) +screen: and ISO 2022 standards (e.g. insert/delete line and support for +screen: multiple character sets). There is a scrollback history buffer for +screen: each virtual terminal and a copy-and-paste mechanism that allows +screen: moving text regions between windows. +screen: diff --git a/source/ap/seejpeg/seejpeg-1.10.diff b/source/ap/seejpeg/seejpeg-1.10.diff new file mode 100644 index 000000000..61a8be788 --- /dev/null +++ b/source/ap/seejpeg/seejpeg-1.10.diff @@ -0,0 +1,63 @@ +diff -c -r seejpeg-1.10.orig/Makefile seejpeg-1.10/Makefile +*** seejpeg-1.10.orig/Makefile Sat Nov 6 21:55:19 1999 +--- seejpeg-1.10/Makefile Sat Apr 29 22:51:54 2000 +*************** +*** 6,25 **** + # $Id: Makefile,v 1.8 1999/11/07 05:55:19 evan Exp $ + + # The installation directories. +! BIN= /usr/local/bin +! MAN= /usr/local/man/man1 + + # See the README for a description of these options. + #OPTIONS= -DNO_32K_CASCADE -DTESTMODE=G640x480x32K -DBUG_WORKAROUND -DONLY_1_8_MODES + OPTIONS= -DBUG_WORKAROUND + + # This should be the location of the JPEG v6 header files. +! JPEG_HEADERS= -I /usr/local/include +! #JPEG_HEADERS= -I /usr/X11R6/include + + # This should be the location of the JPEG v6 libraries. +! JPEG_LIBS= -L /usr/local/lib +! #JPEG_LIBS= -L /usr/X11R6/lib + + # These may be changed, if desired. + +--- 6,25 ---- + # $Id: Makefile,v 1.8 1999/11/07 05:55:19 evan Exp $ + + # The installation directories. +! BIN= /usr/bin +! MAN= /usr/man/man1 + + # See the README for a description of these options. + #OPTIONS= -DNO_32K_CASCADE -DTESTMODE=G640x480x32K -DBUG_WORKAROUND -DONLY_1_8_MODES + OPTIONS= -DBUG_WORKAROUND + + # This should be the location of the JPEG v6 header files. +! #JPEG_HEADERS= -I /usr/local/include +! JPEG_HEADERS= -I /usr/X11R6/include + + # This should be the location of the JPEG v6 libraries. +! #JPEG_LIBS= -L /usr/local/lib +! JPEG_LIBS= -L /usr/X11R6/lib + + # These may be changed, if desired. + +*************** +*** 29,35 **** + # Editing of the rest of this Makefile shouldn't be necessary. + + CFLAGS= $(JPEG_HEADERS) -I jpeglib $(CCOPTS) $(OPTIONS) +! LIBS= -lvga $(JPEG_LIBS) -ljpeg -lm + LDOPTS= -s + + SEEJPEG= seejpeg.o jpeg.o image.o display.o cmap.o \ +--- 29,35 ---- + # Editing of the rest of this Makefile shouldn't be necessary. + + CFLAGS= $(JPEG_HEADERS) -I jpeglib $(CCOPTS) $(OPTIONS) +! LIBS= -lvga jpeglib/libjpeg.a -lm + LDOPTS= -s + + SEEJPEG= seejpeg.o jpeg.o image.o display.o cmap.o \ diff --git a/source/ap/seejpeg/seejpeg-1.10.lsm b/source/ap/seejpeg/seejpeg-1.10.lsm new file mode 100644 index 000000000..da3644b74 --- /dev/null +++ b/source/ap/seejpeg/seejpeg-1.10.lsm @@ -0,0 +1,21 @@ +Begin3 +Title: seejpeg - another JPEG (+GIF+PPM+BMP+TARGA) viewer +Version: 1.10 +Entered-date: 08NOV99 +Description: A JPEG image viewer which uses svgalib to display images. + It works out the best video mode to use based on the video + card, image size and user options. This can be overridden. + It contains GIF, PPM, BMP and TARGA viewing support, and can + show images in a slideshow. + This version adds a reload command, and support for a + large number of new 4x3 and 16x9 video modes added in svgalib + 1.4.0. +Keywords: graphics JPEG GIF PPM BMP TARGA picture image viewer svgalib + slideshow +Author: evan@cs.mu.oz.au (Evan Harris) +Primary-site: sunsite.unc.edu /pub/Linux/apps/graphics/viewers/svga + 46550 seejpeg-1.10.tgz +Platforms: svgalib 1.3.0 or greater, best with 1.4.0 or greater + libjpeg v6 +Copying-policy: Freely redistributable. +End diff --git a/source/ap/seejpeg/seejpeg.SlackBuild b/source/ap/seejpeg/seejpeg.SlackBuild new file mode 100755 index 000000000..ca745063d --- /dev/null +++ b/source/ap/seejpeg/seejpeg.SlackBuild @@ -0,0 +1,72 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.10 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-seejpeg + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_seejpeg.tar.gz + +cd $TMP +tar xvf $CWD/seejpeg-$VERSION.tgz || exit 1 +cd seejpeg-$VERSION || exit 1 +zcat $CWD/seejpeg-$VERSION.diff.gz | patch -p1 --verbose || exit 1 +rm -rf jpeglib +tar xvf $CWD/libjpeg-6a.tar.gz || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +( cd libjpeg-6a ; ./configure ; make ) +ln -sf libjpeg-6a jpeglib + +make seejpeg +strip seejpeg +cat seejpeg > $PKG/usr/bin/seejpeg + +cat seejpeg.1 | gzip -9c > $PKG/usr/man/man1/seejpeg.1.gz + +mkdir -p $PKG/usr/doc/seejpeg-$VERSION +cp -a CHANGELOG README $PKG/usr/doc/seejpeg-$VERSION +chmod 644 $PKG/usr/doc/seejpeg-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/seejpeg-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/seejpeg/slack-desc b/source/ap/seejpeg/slack-desc new file mode 100644 index 000000000..b6c325ea3 --- /dev/null +++ b/source/ap/seejpeg/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +seejpeg: seejpeg (console JPEG viewer) +seejpeg: +seejpeg: Seejpeg is an image viewer which uses SVGAlib. In spite of the name, +seejpeg: it understands the JPEG, GIF, PPM, BMP and TARGA formats. One nice +seejpeg: feature of seejpeg is that it automatically decides on the best video +seejpeg: mode to use based on the image being displayed and the video card +seejpeg: being used. +seejpeg: +seejpeg: Evan Harris is the author of seejpeg. +seejpeg: +seejpeg: diff --git a/source/ap/slackpkg/README b/source/ap/slackpkg/README new file mode 100644 index 000000000..985b0ca80 --- /dev/null +++ b/source/ap/slackpkg/README @@ -0,0 +1,4 @@ +NOTE: + +"slackpkg" is a shell script, so there is no source package. + diff --git a/source/ap/sox/slack-desc b/source/ap/sox/slack-desc new file mode 100644 index 000000000..8b36469ea --- /dev/null +++ b/source/ap/sox/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sox: sox (universal sound sample translator) +sox: +sox: Sox is a universal sound converter, player, and recorder. It can +sox: play, record, and convert between several sound file formats such as +sox: .au, .snd, .voc and .wav. +sox: +sox: +sox: +sox: +sox: +sox: diff --git a/source/ap/sox/sox.SlackBuild b/source/ap/sox/sox.SlackBuild new file mode 100755 index 000000000..aea5d7c16 --- /dev/null +++ b/source/ap/sox/sox.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=14.3.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sox + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf sox-$VERSION +tar xvf $CWD/sox-$VERSION.tar.?z* || exit 1 +cd sox-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/sox-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README \ + $PKG/usr/doc/sox-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/sox-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/sqlite/COPYRIGHT b/source/ap/sqlite/COPYRIGHT new file mode 100644 index 000000000..a89b4e720 --- /dev/null +++ b/source/ap/sqlite/COPYRIGHT @@ -0,0 +1,68 @@ + SQLite Logo + Small. Fast. Reliable. + Choose any three. + + About Sitemap Documentation Download License News Developers Support + +SQLite Copyright + + +------------------+ + | SQLite is in the | + | Public Domain | + +------------------+ + + All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and + representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain + and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, + modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled + binary, for any purpose, commercial or non-commercial, and by any means. + + The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually + bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process + might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation + and build code so much because none of these things are part of the core deliverable SQLite library. + + All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from + the open internet. Every line of code can be traced back to its original author, and all of those authors have public + domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects. + +Obtaining An Explicit License To Use SQLite + + Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. + Some reasons for obtaining a license include: + + * You are using SQLite in a jurisdiction that does not recognize the public domain. + * You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the + public domain. + * You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite. + * Your legal department tells you that you have to purchase a license. + + If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and + principal developers of SQLite, will sell you one. + +Contributed Code + + In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are + asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible + inclusion in the SQLite source tree, please accompany the patch with the following statement: + + The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make + this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this + dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under + copyright law. + + We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In + addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. + You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright + release should be mailed to: + + Hwaci + 6200 Maple Cove Lane + Charlotte, NC 28269 + USA + + A template copyright release is available in PDF or HTML. You can use this release to make future changes. + + ---------------------------------------------------------------------------------------------------------------------- + + This page last modified 2007/11/14 15:25:42 UTC diff --git a/source/ap/sqlite/slack-desc b/source/ap/sqlite/slack-desc new file mode 100644 index 000000000..8605ff192 --- /dev/null +++ b/source/ap/sqlite/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +sqlite: SQLite (simple, self contained database engine) +sqlite: +sqlite: SQLite is a small C library that implements a self-contained, +sqlite: embeddable, zero-configuration SQL database engine. +sqlite: +sqlite: The SQLite distribution comes with a standalone command-line access +sqlite: program (sqlite) that can be used to administer an SQLite database +sqlite: and which serves as an example of how to use the SQLite library. +sqlite: +sqlite: Homepage: http://www.sqlite.org/ +sqlite: diff --git a/source/ap/sqlite/sqlite.SlackBuild b/source/ap/sqlite/sqlite.SlackBuild new file mode 100755 index 000000000..ffc75b330 --- /dev/null +++ b/source/ap/sqlite/sqlite.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Slackware build script for sqlite + +# Copyright 2006 Martin Lefebvre <dadexter@gmail.com> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +PRGNAM=sqlite +VERSION=3.6.14.2 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +configure() { +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-threadsafe \ + --enable-cross-thread-connections \ + --enable-tempstore=yes \ + --enable-load-extension \ + --enable-static=no \ + --build=$ARCH-slackware-linux + return $? +} + +if ! configure ; then + # Try regenerating configure: + autoconf + configure || exit 1 +fi + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add missed man page: +install -D -m 0644 sqlite3.1 $PKG/usr/man/man1/sqlite3.1 +gzip -9 $PKG/usr/man/man1/sqlite3.1 + +# Fix up the pkgconfig file +sed -i 's|Libs: -L${libdir} -lsqlite3|Libs: -L${libdir} -lsqlite3 -ldl|g' \ + $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/sqlite3.pc + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + README* VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION +# Add a COPYRIGHT file -- http://www.sqlite.org/copyright.html +zcat $CWD/COPYRIGHT.gz > $PKG/usr/doc/$PRGNAM-$VERSION/COPYRIGHT +rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/CVS +find $PKG/usr/doc -type f -exec chmod 0644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/sudo/doinst.sh b/source/ap/sudo/doinst.sh new file mode 100644 index 000000000..01e3d173e --- /dev/null +++ b/source/ap/sudo/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/sudoers.new +rm -f etc/sudoers.new diff --git a/source/ap/sudo/slack-desc b/source/ap/sudo/slack-desc new file mode 100644 index 000000000..66f1aa8c9 --- /dev/null +++ b/source/ap/sudo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sudo: sudo (give limited root privileges to certain users) +sudo: +sudo: 'sudo' is a command that allows users to execute some commands as +sudo: root. The /etc/sudoers file (edited with 'visudo') specifies which +sudo: users have access to sudo and which commands they can run. 'sudo' +sudo: logs all its activities to /var/log/ so the system administrator +sudo: can keep an eye on things. +sudo: +sudo: +sudo: +sudo: diff --git a/source/ap/sudo/sudo.SlackBuild b/source/ap/sudo/sudo.SlackBuild new file mode 100755 index 000000000..c170e868d --- /dev/null +++ b/source/ap/sudo/sudo.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.6.8p12 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sudo + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf sudo-$VERSION +tar xvf $CWD/sudo-$VERSION.tar.gz || exit 1 +cd sudo-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr --sbindir=/usr/sbin --with-getpass --with-C2 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/bin + chmod 4711 sudo + ln -sf sudo sudoedit +) +chmod 755 $PKG/usr/sbin/visudo + +rm -f $PKG/usr/man/man8/sudoedit.8 +gzip -9 $PKG/usr/man/man?/*.? +( cd $PKG/usr/man/man8 ; ln -sf sudo.8.gz sudoedit.8.gz ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/etc/sudoers $PKG/etc/sudoers.new + +mkdir -p $PKG/usr/doc/sudo-$VERSION +cp -a \ + BUGS HISTORY INSTALL LICENSE PORTING README* \ + RUNSON TODO TROUBLESHOOTING UPGRADE \ + $PKG/usr/doc/sudo-$VERSION +chmod 644 $PKG/usr/doc/sudo-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sudo-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/sysstat/slack-desc b/source/ap/sysstat/slack-desc new file mode 100644 index 000000000..e36d25ff9 --- /dev/null +++ b/source/ap/sysstat/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sysstat: sysstat (system performance monitoring tools) +sysstat: +sysstat: The sysstat utilities are a collection of performance monitoring +sysstat: tools for Linux. These include sar, sadf, mpstat, iostat and sa +sysstat: tools. +sysstat: +sysstat: The sysstat utilities were written by Sebastien Godard. +sysstat: +sysstat: +sysstat: +sysstat: diff --git a/source/ap/sysstat/sysstat.SlackBuild b/source/ap/sysstat/sysstat.SlackBuild new file mode 100755 index 000000000..399bb4bd4 --- /dev/null +++ b/source/ap/sysstat/sysstat.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=sysstat +VERSION=${VERSION:-7.0.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Put the config file in /etc/sysstat, not /etc/sysconfig (a Red Hat thing): +zcat $CWD/sysstat.etc.sysstat.diff.gz | patch -p1 --verbose || exit 1 + +# PREFIX is hardcoded in some places, so this is just easier: +zcat $CWD/sysstat.prefix.usr.diff.gz | patch -p1 --verbose || exit 1 + +# Don't use /tmp in a script root will probably run... that's not good. +zcat $CWD/sysstat.var.run.diff.gz | patch -p1 --verbose || exit 1 + +make SA_LIB_DIR=/usr/lib${LIBDIRSUFFIX}/sa DESTDIR=$PKG || exit 1 +make install SA_LIB_DIR=/usr/lib${LIBDIRSUFFIX}/sa DESTDIR=$PKG || exit 1 + +# Yeah, technically this is an init script that could go in /etc/rc.d/, but +# I'd rather not put too many things in there. If you need this, I'm sure +# you will find it here: +mkdir -p $PKG/etc/sysstat +cp -a sysstat $PKG/etc/sysstat/sysstat +chown root:root $PKG/etc/sysstat/sysstat +chmod 755 $PKG/etc/sysstat/sysstat + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Fix the documentation directory to preserve timestamps: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/* +cp -a \ + COPYING CREDITS FAQ README TODO sysstat-7.0.0.lsm \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/sysstat/sysstat.etc.sysstat.diff b/source/ap/sysstat/sysstat.etc.sysstat.diff new file mode 100644 index 000000000..f5cf15211 --- /dev/null +++ b/source/ap/sysstat/sysstat.etc.sysstat.diff @@ -0,0 +1,46 @@ +--- ./Makefile.orig 2006-07-05 10:46:04.000000000 -0500 ++++ ./Makefile 2006-08-14 21:40:38.000000000 -0500 +@@ -34,7 +34,7 @@ + MAN8_DIR = $(MAN_DIR)/man8 + DOC_DIR = $(PREFIX)/doc/sysstat-$(VERSION) + NLS_DIR = $(PREFIX)/share/locale +-SYSCONFIG_DIR = /etc/sysconfig ++SYSCONFIG_DIR = /etc/sysstat + + # Compiler flags + CFLAGS = -Wall -Wstrict-prototypes -pipe -O2 -fno-strength-reduce +--- ./sa2.in.orig 2006-06-09 03:17:26.000000000 -0500 ++++ ./sa2.in 2006-08-14 21:38:35.000000000 -0500 +@@ -7,7 +7,7 @@ + # make history configurable + # + HISTORY=7 +-[ -r /etc/sysconfig/sysstat ] && . /etc/sysconfig/sysstat ++[ -r /etc/sysstat/sysstat ] && . /etc/sysstat/sysstat + [ ${HISTORY} -gt 28 ] && HISTORY=28 + S_TIME_FORMAT=ISO ; export S_TIME_FORMAT + umask 0022 +--- ./README.orig 2006-07-05 10:51:54.000000000 -0500 ++++ ./README 2006-08-14 21:39:27.000000000 -0500 +@@ -91,8 +91,8 @@ + ${PREFIX}/doc/sysstat-x.y.z/* + /var/log/sa + ${INIT_DIR}/sysstat +-/etc/sysconfig/sysstat +-/etc/sysconfig/sysstat.ioconf ++/etc/sysstat/sysstat ++/etc/sysstat/sysstat.ioconf + /etc/cron.d/sysstat + /etc/rc.d/rc.sysstat for [SLACKWARE] + ${RC_DIR}/rc2.d/S03sysstat +--- ./ioconf.h.orig 2006-07-09 03:19:06.000000000 -0500 ++++ ./ioconf.h 2006-08-14 21:36:48.000000000 -0500 +@@ -20,7 +20,7 @@ + #define MAX_BLKDEV 255 + #endif + +-#define IOCONF "/etc/sysconfig/sysstat.ioconf" ++#define IOCONF "/etc/sysstat/sysstat.ioconf" + + #define K_NODEV "nodev" + diff --git a/source/ap/sysstat/sysstat.prefix.usr.diff b/source/ap/sysstat/sysstat.prefix.usr.diff new file mode 100644 index 000000000..c7c526b42 --- /dev/null +++ b/source/ap/sysstat/sysstat.prefix.usr.diff @@ -0,0 +1,42 @@ +--- ./build/Configure.sh.orig 2006-06-09 03:21:27.000000000 -0500 ++++ ./build/Configure.sh 2006-08-14 21:54:37.000000000 -0500 +@@ -10,10 +10,10 @@ + + # Installation directory + +-PREFIX=`${ASK} 'Installation directory:' "/usr/local" "prefix"` ++PREFIX=`${ASK} 'Installation directory:' "/usr" "prefix"` + if [ ! -d ${PREFIX} ]; then +- echo "WARNING: Directory ${PREFIX} not found: Using default (/usr/local)." +- PREFIX=/usr/local ++ echo "WARNING: Directory ${PREFIX} not found: Using default (/usr)." ++ PREFIX=/usr + fi + + # sadc directory +--- ./build/CONFIG.def.orig 2006-06-09 03:20:56.000000000 -0500 ++++ ./build/CONFIG.def 2006-08-14 21:54:19.000000000 -0500 +@@ -2,8 +2,8 @@ + # (C) 2000-2006 Sebastien GODARD (sysstat <at> wanadoo.fr) + + # Directories +-PREFIX = /usr/local +-SA_LIB_DIR = /usr/local/lib/sa ++PREFIX = /usr ++SA_LIB_DIR = /usr/lib/sa + SADC_PATH = ${SA_LIB_DIR}/sadc + SA_DIR = /var/log/sa + # Do not use ${PREFIX}/share/man by default: not necessarily in man path! +--- ./build/CONFIG.orig 2006-07-09 04:47:17.000000000 -0500 ++++ ./build/CONFIG 2006-08-14 21:54:10.000000000 -0500 +@@ -2,8 +2,8 @@ + # (C) 2000-2006 Sebastien GODARD (sysstat <at> wanadoo.fr) + + # Directories +-PREFIX = /usr/local +-SA_LIB_DIR = /usr/local/lib/sa ++PREFIX = /usr ++SA_LIB_DIR = /usr/lib/sa + SADC_PATH = ${SA_LIB_DIR}/sadc + SA_DIR = /var/log/sa + # Do not use ${PREFIX}/share/man by default: not necessarily in man path! diff --git a/source/ap/sysstat/sysstat.var.run.diff b/source/ap/sysstat/sysstat.var.run.diff new file mode 100644 index 000000000..3b54f37e6 --- /dev/null +++ b/source/ap/sysstat/sysstat.var.run.diff @@ -0,0 +1,28 @@ +--- ./sysstat.in.orig 2006-07-05 10:58:00.000000000 -0500 ++++ ./sysstat.in 2006-08-14 22:03:13.000000000 -0500 +@@ -22,21 +22,21 @@ + + RETVAL=0 + # Remove flag indicating that sadc was successfully launched +-rm -f /tmp/sysstat.run ++rm -f /var/run/sysstat.run + + # See how we were called. + case "$1" in + start) + echo -n "Calling the system activity data collector (sadc): " +- SU SA_LIB_DIR/sadc -F -L - && touch /tmp/sysstat.run QUOTE ++ SU SA_LIB_DIR/sadc -F -L - && touch /var/run/sysstat.run QUOTE + + # Try to guess if sadc was successfully launched. The difficulty + # here is that the exit code is lost when the above command is + # run via "su foo -c ..." +- if [ ! -f /tmp/sysstat.run ]; then ++ if [ ! -f /var/run/sysstat.run ]; then + RETVAL=1 + else +- rm -f /tmp/sysstat.run ++ rm -f /var/run/sysstat.run + fi + echo + ;; diff --git a/source/ap/texinfo/dir b/source/ap/texinfo/dir new file mode 100644 index 000000000..122b25fd4 --- /dev/null +++ b/source/ap/texinfo/dir @@ -0,0 +1,314 @@ +This is the file .../info/dir, which contains the +topmost node of the Info hierarchy, called (dir)Top. +The first time you invoke Info you start off looking at this node. + +File: dir, Node: Top This is the top of the INFO tree + + This (the Directory node) gives a menu of major topics. + Typing "q" exits, "?" lists all Info commands, "d" returns here, + "h" gives a primer for first-timers, + "mEmacs<Return>" visits the Emacs manual, etc. + + In Emacs, you can click mouse button 2 on a menu item or cross reference + to select it. + +* Menu: + +GNU packages +* Diff: (diff). Comparing and merging files. + +Printing Tools +* PreScript: (a2ps) PreScript. Input language for a2ps +* a2ps: (a2ps). PostScript Generating Utility +* card: (a2ps) card. Print Reference Cards +* fixnt: (a2ps) fixnt. Fixing Microsoft NT PostScript Files +* fixps: (a2ps) fixps. Fixing Some Ill Designed PostScript Files +* ogonkify: (ogonkify). Ogonkify +* pdiff: (a2ps) pdiff. Produce Pretty Comparison of Files +* psmandup: (a2ps) psmandup. Printing Duplex on Simplex Printers +* psset: (a2ps) psset. Inserting calls to setpagedevice + +Libraries +* AA-lib: (aalib). An ASCII-art graphics library +* History: (history). The GNU history library API +* RLuserman: (rluserman). The GNU readline library User's Manual. +* Readline: (readline). The GNU readline library API + +Emacs +* Ada mode: (ada-mode). The GNU Emacs mode for editing Ada. +* Autotype: (autotype). Convenient features for text that you enter frequently + in Emacs. +* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C, + Java, Pike, and IDL code. +* CL: (cl). Partial Common Lisp support for Emacs Lisp. +* Dired-X: (dired-x). Dired Extra Features. +* EUDC: (eudc). A client for directory servers (LDAP, PH) +* Ebrowse: (ebrowse). A C++ class browser for Emacs. +* Ediff: (ediff). A visual interface for comparing and merging programs. +* Emacs: (emacs). The extensible self-documenting text editor. +* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs. +* Emacs MIME: (emacs-mime). The MIME de/composition library. +* Eshell: (eshell). A command shell implemented in Emacs Lisp. +* Forms: (forms). Emacs package for editing data bases + by filling in forms. +* Gnus: (gnus). The newsreader Gnus. +* IDLWAVE: (idlwave). Major mode and shell for IDL and WAVE/CL files. +* MH-E: (mh-e). Emacs interface to the MH mail system. +* Message: (message). Mail and news composition mode that goes with Gnus. +* PCL-CVS: (pcl-cvs). Emacs front-end to CVS. +* RefTeX: (reftex). Emacs support for LaTeX cross-references and citations. +* SC: (sc). Supercite lets you cite parts of messages you're + replying to, in flexible ways. +* Speedbar: (speedbar). File/Tag summarizing utility. +* VIP: (vip). An older VI-emulation for Emacs. +* VIPER: (viper). The newest Emacs VI-emulation mode. + (also, A VI Plan for Emacs Rescue + or the VI PERil.) +* Widget: (widget). Documenting the "widget" package used by the + Emacs Custom facility. +* WoMan: (woman). Browse UN*X Manual Pages `Wo (without) Man'. + +Miscellaneous +* As: (as). The GNU assembler. +* Bfd: (bfd). The Binary File Descriptor library. +* Binutils: (binutils). The GNU binary utilities. +* CVS: (cvs). Concurrent Versions System +* Fdutils: (fdutils). Fdutils: Linux' floppy utilities +* File utilities: (fileutils). GNU file utilities. +* Finding Files: (find). Listing and operating on files + that match certain criteria. +* Flex: (flex). A fast scanner generator. +* Gpm: (gpm). A server wich hands mouse events to non-X programs. +* Ld: (ld). The GNU linker. +* Mtools: (mtools). Mtools: utilities to access DOS disks in Unix. +* Shar utilities: (sharutils). GNU shar utilities. +* Shell utilities: (sh-utils). GNU shell utilities. +* Standards: (standards). GNU coding standards. +* Text utilities: (textutils). GNU text utilities. +* UUCP: (uucp). Transfer mail and news across phone lines. +* addr2line: (binutils)addr2line. Convert addresses to file and line +* ar: (binutils)ar. Create, modify, and extract from archives +* basename: (sh-utils)basename invocation. Strip directory and suffix. +* bison: (bison). GNU Project parser generator (yacc replacement). +* c++filt: (binutils)c++filt. Filter to demangle encoded C++ symbols +* cat: (textutils)cat invocation. Concatenate and write files. +* chgrp: (fileutils)chgrp invocation. Change file groups. +* chmod: (fileutils)chmod invocation. Change file permissions. +* chown: (fileutils)chown invocation. Change file owners/groups. +* chroot: (sh-utils)chroot invocation. Specify the root directory. +* cksum: (textutils)cksum invocation. Print POSIX CRC checksum. +* comm: (textutils)comm invocation. Compare sorted files by line. +* cp: (fileutils)cp invocation. Copy files. +* cpio: (cpio). Making tape (or disk) archives. +* csplit: (textutils)csplit invocation. Split by context. +* cut: (textutils)cut invocation. Print selected parts of lines. +* cxxfilt: (binutils)c++filt. MS-DOS name for c++filt +* date: (sh-utils)date invocation. Print/set system date and time. +* dc: (dc). Arbritrary precision RPN "Desktop Calculator". +* dd: (fileutils)dd invocation. Copy and convert a file. +* df: (fileutils)df invocation. Report filesystem disk usage. +* dir: (fileutils)dir invocation. List directories briefly. +* dircolors: (fileutils)dircolors invocation. Color setup for ls. +* dirname: (sh-utils)dirname invocation. Strip non-directory suffix. +* dlltool: (binutils)dlltool. Create files needed to build and use DLLs +* du: (fileutils)du invocation. Report on disk usage. +* echo: (sh-utils)echo invocation. Print a line of text. +* env: (sh-utils)env invocation. Modify the environment. +* expand: (textutils)expand invocation. Convert tabs to spaces. +* expr: (sh-utils)expr invocation. Evaluate expressions. +* factor: (sh-utils)factor invocation. Print prime factors +* false: (sh-utils)false invocation. Do nothing, unsuccessfully. +* fmt: (textutils)fmt invocation. Reformat paragraph text. +* fold: (textutils)fold invocation. Wrap long input lines. +* gasp: (gasp). The GNU Assembler Preprocessor +* gprof: (gprof). Profiling your program's execution +* grep: (grep). print lines matching a pattern. +* groups: (sh-utils)groups invocation. Print group names a user is in. +* head: (textutils)head invocation. Output the first part of files. +* hostname: (sh-utils)hostname invocation. Print or set system name. +* id: (sh-utils)id invocation. Print real/effective uid/gid. +* install: (fileutils)install invocation. Copy and change attributes. +* ipc: (ipc). System V style inter process communication +* join: (textutils)join invocation. Join lines on a common field. +* ln: (fileutils)ln invocation. Make links between files. +* logname: (sh-utils)logname invocation. Print current login name. +* ls: (fileutils)ls invocation. List directory contents. +* m4: (m4). A powerful macro processor. +* mail-files: (sharutils)mail-files invocation. Send files to remote site. +* mailshar: (sharutils)mailshar invocation. Make and send a shell archive. +* md5sum: (textutils)md5sum invocation. Print or check message-digests. +* mkdir: (fileutils)mkdir invocation. Create directories. +* mkfifo: (fileutils)mkfifo invocation. Create FIFOs (named pipes). +* mknod: (fileutils)mknod invocation. Create special files. +* mv: (fileutils)mv invocation. Rename files. +* mysql: (mysql). MySQL documentation. +* nice: (sh-utils)nice invocation. Modify scheduling priority. +* nl: (textutils)nl invocation. Number lines and write files. +* nlmconv: (binutils)nlmconv. Converts object code into an NLM +* nm: (binutils)nm. List symbols from object files +* nohup: (sh-utils)nohup invocation. Immunize to hangups. +* objcopy: (binutils)objcopy. Copy and translate object files +* objdump: (binutils)objdump. Display information from object files +* od: (textutils)od invocation. Dump files in octal, etc. +* paste: (textutils)paste invocation. Merge lines of files. +* pathchk: (sh-utils)pathchk invocation. Check file name portability. +* pr: (textutils)pr invocation. Paginate or columnate files. +* printenv: (sh-utils)printenv invocation. Print environment variables. +* printf: (sh-utils)printf invocation. Format and print data. +* ptx: (textutils)ptx invocation. Produce permuted indexes. +* pwd: (sh-utils)pwd invocation. Print working directory. +* ranlib: (binutils)ranlib. Generate index to archive contents +* readelf: (binutils)readelf. Display the contents of ELF format files. +* remsync: (sharutils)remsync invocation. Synchronize remote files. +* rm: (fileutils)rm invocation. Remove files. +* rmdir: (fileutils)rmdir invocation. Remove empty directories. +* sed: (sed). Stream EDitor. +* seq: (sh-utils)seq invocation. Print numeric sequences +* shar: (sharutils)shar invocation. Make a shell archive. +* shred: (fileutils)shred invocation. Remove files more securely. +* size: (binutils)size. List section sizes and total size +* sleep: (sh-utils)sleep invocation. Delay for a specified time. +* sort: (textutils)sort invocation. Sort text files. +* split: (textutils)split invocation. Split into fixed-size pieces. +* strings: (binutils)strings. List printable strings from files +* strip: (binutils)strip. Discard symbols +* stty: (sh-utils)stty invocation. Print/change terminal settings. +* su: (sh-utils)su invocation. Modify user and group id. +* sum: (textutils)sum invocation. Print traditional checksum. +* sync: (fileutils)sync invocation. Synchronize memory and disk. +* tac: (textutils)tac invocation. Reverse files. +* tail: (textutils)tail invocation. Output the last part of files. +* tee: (sh-utils)tee invocation. Redirect to multiple files. +* test: (sh-utils)test invocation. File/string tests. +* touch: (fileutils)touch invocation. Change file timestamps. +* tr: (textutils)tr invocation. Translate characters. +* true: (sh-utils)true invocation. Do nothing, successfully. +* tsort: (textutils)tsort invocation. Topological sort. +* tty: (sh-utils)tty invocation. Print terminal name. +* uname: (sh-utils)uname invocation. Print system information. +* unexpand: (textutils)unexpand invocation. Convert spaces to tabs. +* uniq: (textutils)uniq invocation. Uniquify files. +* unshar: (sharutils)unshar invocation. Explode a shell archive. +* users: (sh-utils)users invocation. Print current user names. +* uudecode: (sharutils)uudecode invocation. Restore file from 7-bits. +* uuencode: (sharutils)uuencode invocation. Force binary file to 7-bits. +* vdir: (fileutils)vdir invocation. List directories verbosely. +* wc: (textutils)wc invocation. Byte, word, and line counts. +* who: (sh-utils)who invocation. Print who is logged in. +* whoami: (sh-utils)whoami invocation. Print effective user id. +* windres: (binutils)windres. Manipulate Windows resources +* yes: (sh-utils)yes invocation. Print a string indefinitely. + +GNU admin +* Autoconf: (autoconf). Create source code configuration scripts + +Individual utilities +* aclocal: (automake)Invoking aclocal. Generating aclocal.m4. +* autoconf: (autoconf)autoconf Invocation. + How to create configuration scripts +* autoconf-invocation: (autoconf)autoconf Invocation. + How to create configuration + scripts +* autoheader: (autoconf)autoheader Invocation. How to create configuration + templates +* autom4te: (autoconf)autom4te Invocation. The Autoconf executables + backbone +* automake: (automake)Invoking Automake. Generating Makefile.in. +* autoreconf: (autoconf)autoreconf Invocation. Remaking multiple `configure' + scripts +* autoscan: (autoconf)autoscan Invocation. Semi-automatic `configure.ac' + writing +* autoupdate: (autoconf)autoupdate Invocation. Automatic update of + `configure.ac' +* awk: (gawk)Invoking gawk. Text scanning and processing. +* cmp: (diff)Invoking cmp. Compare 2 files byte by byte. +* config.status: (autoconf)config.status Invocation. + Recreating configurations. +* configure: (autoconf)configure Invocation. Configuring a package. +* diff: (diff)Invoking diff. Compare 2 files line by line. +* diff3: (diff)Invoking diff3. Compare 3 files line by line. +* ifnames: (autoconf)ifnames Invocation. Listing conditionals in source. +* libtoolize: (libtool)Invoking libtoolize. Adding libtool support. +* patch: (diff)Invoking patch. Apply a patch to a file. +* sdiff: (diff)Invoking sdiff. Merge 2 files side-by-side. +* tar: (tar)tar invocation. Invoking GNU `tar' +* testsuite: (autoconf)testsuite Invocation. Running an Autotest test suite. + +GNU programming tools +* Libtool: (libtool). Generic shared library support script. +This is libtool.info, produced by makeinfo version 4.11 from libtool.texi. +* automake: (automake). Making Makefile.in's + +Software development +* Autoconf: (autoconf). Create source code configuration scripts. +* Automake: (automake). Making GNU standards-compliant Makefiles. + +Utilities +* Bash: (bash). The GNU Bourne-Again SHell. +* Enscript: (enscript). GNU Enscript +* Gzip: (gzip). The gzip command for compressing files. +* ZSH: (zsh). The Z Shell Manual. + +Programming +* Cpp: (cpp). The GNU C preprocessor. +* cvsclient: (cvsclient). The CVS client/server protocol. +* g77: (g77). The GNU Fortran compiler. +* gcc: (gcc). The GNU Compiler Collection. + +GNU Packages +* Gawk: (gawk). A text scanning and processing language. +* Gawkinet: (gawkinet). TCP/IP Internetworking With `gawk'. +* Make: (make). Remake files automatically. +* Tar: (tar). Making tape (or disk) archives. + +Programming & development tools. +* Gdb: (gdb). The GNU debugger. +* Gdb-Internals: (gdbint). The GNU debugger's internals. + +User Interface Toolkit +* GDK: (gdk). The General Drawing Kit +* GTK: (gtk). The GIMP Toolkit + +GNU Gettext Utilities +* Gettext: (gettext). GNU gettext utilities. +* gettextize: (gettext)gettextize Invocation. Prepare a package for gettext. +* msgfmt: (gettext)msgfmt Invocation. Make MO files out of PO files. +* msgmerge: (gettext)msgmerge Invocation. Update two PO files into one. +* xgettext: (gettext)xgettext Invocation. Extract strings into a PO file. + +Library of useful routines for 'C' programing +* GLIB: (glib). useful routines for 'C' programming + +GNU libraries +* Libc: (libc). C library. +* gmp: (gmp). GNU Multiple Precision Arithmetic Library. + +Indent Code Formatter +* Indent: (indent). C code formatter. + +Texinfo documentation system +* Info: (info). Documentation browsing system. +* Standalone info program: (info-stnd). Standalone Info-reading program. +* Texinfo: (texinfo). The GNU documentation format. +* install-info: (texinfo)Invoking install-info. Update info/dir entries. +* makeinfo: (texinfo)makeinfo Preferred. Translate Texinfo source. +* texi2dvi: (texinfo)Format with texi2dvi. Print Texinfo documents. +* texindex: (texinfo)Format with tex/texindex. Sort Texinfo index files. + +Development +* libext2fs: (libext2fs.info). The EXT2FS library. + +C library code +* Regex: (regex). Regular expression library. + +General Commands +* Screen: (screen). Full-screen window manager. + +Net Utilities +* Wget: (wget). The non-interactive network downloader. + +World Wide Web +* Wget: (wget). The non-interactive network downloader. + +Games +* xboard: (xboard). An X Window System graphical chessboard. diff --git a/source/ap/texinfo/doinst.sh b/source/ap/texinfo/doinst.sh new file mode 100644 index 000000000..ab42f74f4 --- /dev/null +++ b/source/ap/texinfo/doinst.sh @@ -0,0 +1,11 @@ +# If no dir file exists, we'll assume it's a fresh installation and create one +# Otherwise, we'll throw out the new copy to preserve what's already installed +if [ -e usr/info/dir ]; then + # If there is no topmost node, this dir file is broken, so replace it: + if ! grep -q "Node: Top" usr/info/dir ; then + mv usr/info/dir.new usr/info/dir + fi +else + mv usr/info/dir.new usr/info/dir +fi + diff --git a/source/ap/texinfo/slack-desc b/source/ap/texinfo/slack-desc new file mode 100644 index 000000000..597f5520c --- /dev/null +++ b/source/ap/texinfo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +texinfo: texinfo (GNU software documentation system) +texinfo: +texinfo: 'Texinfo' is a documentation system that uses a single source file to +texinfo: produce both on-line information and printed output. Using Texinfo, +texinfo: you can create a printed document with the normal features of a book, +texinfo: including chapters, sections, cross references, and indices. From the +texinfo: same Texinfo source file, you can create a menu-driven, on-line Info +texinfo: file with nodes, menus, cross references, and indices. +texinfo: +texinfo: This package is needed to read the documentation files in /usr/info. +texinfo: diff --git a/source/ap/texinfo/texinfo.SlackBuild b/source/ap/texinfo/texinfo.SlackBuild new file mode 100755 index 000000000..8c505a55a --- /dev/null +++ b/source/ap/texinfo/texinfo.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-4.13} +PKG_VERSION=${PKG_VERSION:-${VERSION}a} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-texinfo + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xvf $CWD/texinfo-$PKG_VERSION.tar.?z* || exit 1 +cd texinfo-$VERSION +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/texinfo-$PKG_VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Be sure this is "fresh" +zcat $CWD/dir.gz > $PKG/usr/info/dir +mv $PKG/usr/info/dir $PKG/usr/info/dir.new + +gzip -9 $PKG/usr/info/*info* +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/usr/doc/texinfo-$PKG_VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL INTRODUCTION NEWS README* TODO \ + $PKG/usr/doc/texinfo-$PKG_VERSION +chmod 644 $PKG/usr/doc/texinfo-$PKG_VERSION/* +chown -R root:root $PKG/usr/doc/texinfo-$PKG_VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/texinfo-$PKG_VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/texinfo-$VERSION + rm -rf $PKG +fi diff --git a/source/ap/vbetool/slack-desc b/source/ap/vbetool/slack-desc new file mode 100644 index 000000000..c43966918 --- /dev/null +++ b/source/ap/vbetool/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vbetool: vbetool (video bios execution tool) +vbetool: +vbetool: vbetool is a small application that executes code from the BIOS of +vbetool: your video card. +vbetool: +vbetool: This is mostly useful for reinitialising the hardware, for instance +vbetool: after ACPI suspend/resuming. +vbetool: +vbetool: Homepage: http://www.codon.org.uk/~mjg59/vbetool/ +vbetool: +vbetool: diff --git a/source/ap/vbetool/vbetool.SlackBuild b/source/ap/vbetool/vbetool.SlackBuild new file mode 100755 index 000000000..fcd23c9fd --- /dev/null +++ b/source/ap/vbetool/vbetool.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vbetool + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf vbetool-$VERSION +tar xvf $CWD/vbetool-$VERSION.tar.gz +cd vbetool-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +autoreconf + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --docdir=/usr/doc/vbetool-$VERSION \ + --with-x86emu \ + --build=$ARCH-slackware-linux + +make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/vbetool-$VERSION +cp -a COPYING $PKG/usr/doc/vbetool-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/vbetool-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/vbetool/vbetool.info b/source/ap/vbetool/vbetool.info new file mode 100644 index 000000000..0538212ea --- /dev/null +++ b/source/ap/vbetool/vbetool.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://www.codon.org.uk/~mjg59/vbetool/" +DOWNLOAD="http://www.codon.org.uk/~mjg59/vbetool/download/vbetool-1.1.tar.gz" diff --git a/source/ap/vim/doinst.sh b/source/ap/vim/doinst.sh new file mode 100644 index 000000000..f1ccd5ca3 --- /dev/null +++ b/source/ap/vim/doinst.sh @@ -0,0 +1,5 @@ + +# If there's no vi link, take over: +if [ ! -r usr/bin/vi ]; then + ( cd usr/bin ; ln -sf vim vi ) +fi diff --git a/source/ap/vim/gvim.desktop b/source/ap/vim/gvim.desktop new file mode 100644 index 000000000..520c72e61 --- /dev/null +++ b/source/ap/vim/gvim.desktop @@ -0,0 +1,120 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Vi IMproved +Name[af]=Vi Verbeterde +Name[ar]=ÙÙŠ.أي المحسن +Name[bn]=ভি-আই উনà§à¦¨à¦¤ +Name[br]=Vi gwellaet +Name[ca]=Vi millorat +Name[cy]=VIM (Vi wedi'i wella) +Name[da]=Vi IMproved (Vi forbedret) +Name[eo]=VIM +Name[fa]=Vi پیشرÙت کرده VIM +Name[hi]=वीआई इमà¥à¤ªà¥à¤°à¥‚वà¥à¤¡ +Name[hu]=VIM +Name[is]=Vi endurbættur (vim) +Name[it]=Vi iMproved +Name[ko]=ë” ë‚˜ì€ Vi +Name[mn]=СайжирÑан Vi +Name[nso]=KAonafaditswe ka Vi +Name[oc]=VI aMillorat +Name[pl]=Poprawiony VI (vim) +Name[pt_BR]=Vi melhorado +Name[ru]=Улучшенный vi +Name[rw]=Vi Ivuguruwe +Name[sl]=IzboljÅ¡ani vi (vim) +Name[sv]=Förbättrad Vi +Name[ta]=Vi மேமà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿ +Name[tg]=Vi пешрафт кардаи VIM +Name[th]=VI IMprove +Name[uz]=Яхшиланган Vi +Name[ven]=Vi Khwinifhadzhwa +Name[vi]=Vi Cải tiến +Name[wa]=VIM +Name[zh_CN]=改进的 VI (VIM) +Name[zh_TW]=VIM +Name[zu]=I-Vi yenziwe ngcono +GenericName=Text Editor +GenericName[af]=Teks Redigeerder +GenericName[ar]=محرر نصوص +GenericName[az]=MÉ™tn Editoru +GenericName[be]=ТÑкÑтавы Ñ€Ñдактар +GenericName[bg]=ТекÑтов редактор +GenericName[bn]=টেকà§à¦¸à¦Ÿ সমà§à¦ªà¦¾à¦¦à¦• +GenericName[br]=Aozer skrid +GenericName[bs]=Tekst editor +GenericName[ca]=Editor de text +GenericName[cs]=Textový editor +GenericName[cy]=Golygydd Testun +GenericName[da]= Teksteditor +GenericName[de]=Texteditor +GenericName[el]=ΕπεξεÏγαστής κειμένου +GenericName[eo]=Tekstredaktilo +GenericName[es]=Editor de texto +GenericName[et]=Tekstiredaktor +GenericName[eu]=Testu editorea +GenericName[fa]=ویرایشگر متن +GenericName[fi]=Tekstieditori +GenericName[fo]=Tekstritil +GenericName[fr]=Éditeur de texte +GenericName[fy]=Tekst Bewurker +GenericName[ga]=Eagarthóir Téacs +GenericName[gl]=Editor de Textos +GenericName[he]=עורך טקסט +GenericName[hi]=पाठ संपादक +GenericName[hr]=UreÄ‘ivaÄ teksta +GenericName[hsb]=Wobdźěłar tekstow +GenericName[hu]=SzövegszerkesztÅ‘ +GenericName[is]=Textaritill +GenericName[it]=Editor di testi +GenericName[ja]=テキストエディタ +GenericName[km]=កម្មវិធី​វាយ​អážáŸ’ážáž”áž‘ +GenericName[ko]=글월 편집기 +GenericName[lo]=ເຄື່ອງມືà»àºà»‰à»„ຂຂà»à»‰àº„ວາມ +GenericName[lt]=Teksto rengyklÄ— +GenericName[lv]=Teksta Redaktors +GenericName[mk]=Уредувач на текÑÑ‚ +GenericName[mn]=ТекÑÑ‚ боловÑруулагч +GenericName[ms]=Penyunting Teks +GenericName[mt]=Editur tat-test +GenericName[nb]=Skriveprogram +GenericName[nds]=Texteditor +GenericName[nl]=Teksteditor +GenericName[nn]=Skriveprogram +GenericName[nso]=Mofetosi wa Sengwalwana +GenericName[pa]=ਪਾਠ ਸੰਪਾਦਕ +GenericName[pl]=Edytor tekstu +GenericName[pt]=Editor de Texto +GenericName[pt_BR]=Editor de Texto +GenericName[ro]=Editor de text +GenericName[ru]=ТекÑтовый редактор +GenericName[rw]=Muhinduzi Umwandiko +GenericName[se]=Čállinprográmma +GenericName[sk]=Textový editor +GenericName[sl]=Urejevalnik besedil +GenericName[sr]=Уређивач текÑта +GenericName[sr@Latn]=UreÄ‘ivaÄ teksta +GenericName[ss]=Sihleli sembhalo +GenericName[sv]=Texteditor +GenericName[ta]=உரை தொகà¯à®ªà¯à®ªà®¾à®³à®°à¯ +GenericName[tg]=Муҳаррири матн +GenericName[th]=โปรà¹à¸à¸£à¸¡à¹à¸à¹‰à¹„ขข้อความ +GenericName[tr]=Metin Düzenleyici +GenericName[tt]=Mäten Tözätkeçe +GenericName[uk]=Редактор текÑтів +GenericName[uz]=Матн таҳрирчи +GenericName[ven]=Musengulusi wa Manwalwa +GenericName[vi]=Trình soạn văn bản +GenericName[wa]=Aspougneu di tecse +GenericName[xh]=Umhleli Wombhalo +GenericName[zh_CN]=文本编辑器 +GenericName[zh_TW]=文字編輯器 +GenericName[zu]=Umlungisi wombhalo +MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; +Exec=gvim -f %f +Icon=gvim.png +Type=Application +Terminal=false +X-KDE-StartupNotify=true +X-KDE-AuthorizeAction=shell_access +Categories=TextEditor; diff --git a/source/ap/vim/gvim.png b/source/ap/vim/gvim.png new file mode 100644 index 000000000..2bdc8bd8c Binary files /dev/null and b/source/ap/vim/gvim.png differ diff --git a/source/ap/vim/patches/7.2.001 b/source/ap/vim/patches/7.2.001 new file mode 100644 index 000000000..3bcb7d090 --- /dev/null +++ b/source/ap/vim/patches/7.2.001 @@ -0,0 +1,61 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.001 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.001 +Problem: Mac: pseudo-ttys don't work properly on Leopard, resulting in the + shell not to have a prompt, CTRL-C not working, etc. +Solution: Don't use SVR4 compatible ptys, even though they are detected. + (Ben Schmidt) +Files: src/pty.c + + +*** ../vim-7.2.000/src/pty.c Wed Aug 6 19:04:29 2008 +--- src/pty.c Fri Aug 15 04:00:34 2008 +*************** +*** 270,278 **** + } + #endif + +! #if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) + +! /* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! */ + #define PTY_DONE + int + OpenPTY(ttyn) +--- 270,279 ---- + } + #endif + +! #if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) && !defined(MACOS_X) + +! /* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! +! * Same for Mac OS X Leopard. */ + #define PTY_DONE + int + OpenPTY(ttyn) +*** ../vim-7.2.000/src/version.c Sat Aug 9 19:37:37 2008 +--- src/version.c Sun Aug 17 22:56:25 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1, + /**/ + +-- +ARTHUR: Now stand aside worthy adversary. +BLACK KNIGHT: (Glancing at his shoulder) 'Tis but a scratch. +ARTHUR: A scratch? Your arm's off. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.002 b/source/ap/vim/patches/7.2.002 new file mode 100644 index 000000000..e1ee32cd5 --- /dev/null +++ b/source/ap/vim/patches/7.2.002 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.002 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.002 +Problem: Leaking memory when displaying menus. +Solution: Free allocated memory. (Dominique Pelle) +Files: src/menu.c + + +*** ../vim-7.2.001/src/menu.c Wed Jun 25 00:19:17 2008 +--- src/menu.c Sat Aug 16 05:38:45 2008 +*************** +*** 1120,1125 **** +--- 1120,1126 ---- + parent = menu; + menu = menu->children; + } ++ vim_free(path_name); + + /* Now we have found the matching menu, and we list the mappings */ + /* Highlight title */ +*** ../vim-7.2.001/src/version.c Sun Aug 17 23:01:21 2008 +--- src/version.c Sun Aug 17 23:42:53 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 2, + /**/ + +-- +ARTHUR: You are indeed brave Sir knight, but the fight is mine. +BLACK KNIGHT: Had enough? +ARTHUR: You stupid bastard. You havn't got any arms left. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.003 b/source/ap/vim/patches/7.2.003 new file mode 100644 index 000000000..626d81e5a --- /dev/null +++ b/source/ap/vim/patches/7.2.003 @@ -0,0 +1,107 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.003 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.003 +Problem: Typo in translated message. Message not translated. +Solution: Correct spelling. Add _(). (Dominique Pelle) +Files: src/spell.c, src/version.c + + +*** ../vim-7.2.002/src/spell.c Tue Jun 24 22:21:31 2008 +--- src/spell.c Sun Aug 10 12:51:38 2008 +*************** +*** 77,83 **** + + /* + * Do the opposite: based on a maximum end score and a known sound score, +! * compute the the maximum word score that can be used. + */ + #define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3) + +--- 77,83 ---- + + /* + * Do the opposite: based on a maximum end score and a known sound score, +! * compute the maximum word score that can be used. + */ + #define MAXSCORE(word_score, sound_score) ((4 * word_score - sound_score) / 3) + +*************** +*** 625,631 **** + /* TRUE if a word appears in the list of banned words. */ + #define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word))) + +! /* Number of suggestions kept when cleaning up. we need to keep more than + * what is displayed, because when rescore_suggestions() is called the score + * may change and wrong suggestions may be removed later. */ + #define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20) +--- 625,631 ---- + /* TRUE if a word appears in the list of banned words. */ + #define WAS_BANNED(su, word) (!HASHITEM_EMPTY(hash_find(&su->su_banned, word))) + +! /* Number of suggestions kept when cleaning up. We need to keep more than + * what is displayed, because when rescore_suggestions() is called the score + * may change and wrong suggestions may be removed later. */ + #define SUG_CLEAN_COUNT(su) ((su)->su_maxcount < 130 ? 150 : (su)->su_maxcount + 20) +*************** +*** 5980,5986 **** + else if (spin->si_newprefID == 0 || spin->si_newprefID == 127) + MSG(_("Too many compound flags")); + else +! MSG(_("Too many posponed prefixes and/or compound flags")); + } + + if (syllable != NULL) +--- 5980,5986 ---- + else if (spin->si_newprefID == 0 || spin->si_newprefID == 127) + MSG(_("Too many compound flags")); + else +! MSG(_("Too many postponed prefixes and/or compound flags")); + } + + if (syllable != NULL) +*** ../vim-7.2.002/src/version.c Sun Aug 17 23:43:53 2008 +--- src/version.c Mon Aug 25 04:06:52 2008 +*************** +*** 790,796 **** + MSG_PUTS(_("\nRISC OS version")); + #endif + #ifdef VMS +! MSG_PUTS("\nOpenVMS version"); + # ifdef HAVE_PATHDEF + if (*compiled_arch != NUL) + { +--- 792,798 ---- + MSG_PUTS(_("\nRISC OS version")); + #endif + #ifdef VMS +! MSG_PUTS(_("\nOpenVMS version")); + # ifdef HAVE_PATHDEF + if (*compiled_arch != NUL) + { +*** ../vim-7.2.002/src/version.c Sun Aug 17 23:43:53 2008 +--- src/version.c Mon Aug 25 04:06:52 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 3, + /**/ + +-- +I learned the customs and mannerisms of engineers by observing them, much the +way Jane Goodall learned about the great apes, but without the hassle of +grooming. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.004 b/source/ap/vim/patches/7.2.004 new file mode 100644 index 000000000..8e7ed3e9d --- /dev/null +++ b/source/ap/vim/patches/7.2.004 @@ -0,0 +1,103 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.004 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.004 +Problem: Cscope help message is not translated. +Solution: Put it in _(). (Dominique Pelle) +Files: src/if_cscope.c, src/if_cscope.h + + +*** ../vim-7.2.003/src/if_cscope.c Tue Jun 24 23:52:06 2008 +--- src/if_cscope.c Mon Aug 25 04:34:19 2008 +*************** +*** 74,80 **** + { "add", cs_add, + N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 }, + { "find", cs_find, +! N_("Query for a pattern"), FIND_USAGE, 1 }, + { "help", cs_help, + N_("Show this message"), "help", 0 }, + { "kill", cs_kill, +--- 74,80 ---- + { "add", cs_add, + N_("Add a new database"), "add file|dir [pre-path] [flags]", 0 }, + { "find", cs_find, +! N_("Query for a pattern"), "find c|d|e|f|g|i|s|t name", 1 }, + { "help", cs_help, + N_("Show this message"), "help", 0 }, + { "kill", cs_kill, +*************** +*** 1180,1186 **** + (void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"), + cmdp->name, _(cmdp->help), cmdp->usage); + if (strcmp(cmdp->name, "find") == 0) +! MSG_PUTS(FIND_HELP); + cmdp++; + } + +--- 1180,1195 ---- + (void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"), + cmdp->name, _(cmdp->help), cmdp->usage); + if (strcmp(cmdp->name, "find") == 0) +! MSG_PUTS(_("\n" +! " c: Find functions calling this function\n" +! " d: Find functions called by this function\n" +! " e: Find this egrep pattern\n" +! " f: Find this file\n" +! " g: Find this definition\n" +! " i: Find files #including this file\n" +! " s: Find this C symbol\n" +! " t: Find assignments to\n")); +! + cmdp++; + } + +*** ../vim-7.2.003/src/if_cscope.h Thu Sep 6 17:38:58 2007 +--- src/if_cscope.h Mon Aug 25 04:34:17 2008 +*************** +*** 42,58 **** + * f 7name Find this file + * i 8name Find files #including this file + */ +- #define FIND_USAGE "find c|d|e|f|g|i|s|t name" +- #define FIND_HELP "\n\ +- c: Find functions calling this function\n\ +- d: Find functions called by this function\n\ +- e: Find this egrep pattern\n\ +- f: Find this file\n\ +- g: Find this definition\n\ +- i: Find files #including this file\n\ +- s: Find this C symbol\n\ +- t: Find assignments to\n" +- + + typedef struct { + char * name; +--- 42,47 ---- +*** ../vim-7.2.003/src/version.c Mon Aug 25 04:12:38 2008 +--- src/version.c Mon Aug 25 04:29:53 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 4, + /**/ + +-- +If someone questions your market projections, simply point out that your +target market is "People who are nuts" and "People who will buy any damn +thing". Nobody is going to tell you there aren't enough of those people +to go around. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.005 b/source/ap/vim/patches/7.2.005 new file mode 100644 index 000000000..20cce85b3 --- /dev/null +++ b/source/ap/vim/patches/7.2.005 @@ -0,0 +1,149 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.005 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.005 +Problem: A few problems when profiling. Using flag pointer instead of flag + value. Allocating zero bytes. Not freeing used memory. +Solution: Remove wrong '&' characters. Skip dumping when there is nothing + to dump. Free used memory. (Dominique Pelle) +Files: src/eval.c + + +*** ../vim-7.2.004/src/eval.c Fri Aug 8 12:36:31 2008 +--- src/eval.c Mon Aug 25 04:40:11 2008 +*************** +*** 3657,3664 **** + } + + /* +! * Return TRUE if typeval "tv" is locked: Either tha value is locked itself or +! * it refers to a List or Dictionary that is locked. + */ + static int + tv_islocked(tv) +--- 3657,3664 ---- + } + + /* +! * Return TRUE if typeval "tv" is locked: Either that value is locked itself +! * or it refers to a List or Dictionary that is locked. + */ + static int + tv_islocked(tv) +*************** +*** 15838,15847 **** + if (res == FAIL) + res = ITEM_COMPARE_FAIL; + else +- /* return value has wrong type */ + res = get_tv_number_chk(&rettv, &item_compare_func_err); + if (item_compare_func_err) +! res = ITEM_COMPARE_FAIL; + clear_tv(&rettv); + return res; + } +--- 15838,15846 ---- + if (res == FAIL) + res = ITEM_COMPARE_FAIL; + else + res = get_tv_number_chk(&rettv, &item_compare_func_err); + if (item_compare_func_err) +! res = ITEM_COMPARE_FAIL; /* return value has wrong type */ + clear_tv(&rettv); + return res; + } +*************** +*** 20590,20595 **** +--- 20589,20597 ---- + int st_len = 0; + + todo = (int)func_hashtab.ht_used; ++ if (todo == 0) ++ return; /* nothing to dump */ ++ + sorttab = (ufunc_T **)alloc((unsigned)(sizeof(ufunc_T) * todo)); + + for (hi = func_hashtab.ht_array; todo > 0; ++hi) +*************** +*** 20638,20643 **** +--- 20640,20647 ---- + prof_self_cmp); + prof_sort_list(fd, sorttab, st_len, "SELF", TRUE); + } ++ ++ vim_free(sorttab); + } + + static void +*************** +*** 21204,21210 **** + if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL)) + func_do_profile(fp); + if (fp->uf_profiling +! || (fc.caller != NULL && &fc.caller->func->uf_profiling)) + { + ++fp->uf_tm_count; + profile_start(&call_start); +--- 21208,21214 ---- + if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL)) + func_do_profile(fp); + if (fp->uf_profiling +! || (fc.caller != NULL && fc.caller->func->uf_profiling)) + { + ++fp->uf_tm_count; + profile_start(&call_start); +*************** +*** 21235,21247 **** + + #ifdef FEAT_PROFILE + if (do_profiling == PROF_YES && (fp->uf_profiling +! || (fc.caller != NULL && &fc.caller->func->uf_profiling))) + { + profile_end(&call_start); + profile_sub_wait(&wait_start, &call_start); + profile_add(&fp->uf_tm_total, &call_start); + profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children); +! if (fc.caller != NULL && &fc.caller->func->uf_profiling) + { + profile_add(&fc.caller->func->uf_tm_children, &call_start); + profile_add(&fc.caller->func->uf_tml_children, &call_start); +--- 21239,21251 ---- + + #ifdef FEAT_PROFILE + if (do_profiling == PROF_YES && (fp->uf_profiling +! || (fc.caller != NULL && fc.caller->func->uf_profiling))) + { + profile_end(&call_start); + profile_sub_wait(&wait_start, &call_start); + profile_add(&fp->uf_tm_total, &call_start); + profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children); +! if (fc.caller != NULL && fc.caller->func->uf_profiling) + { + profile_add(&fc.caller->func->uf_tm_children, &call_start); + profile_add(&fc.caller->func->uf_tml_children, &call_start); +*** ../vim-7.2.004/src/version.c Mon Aug 25 04:35:13 2008 +--- src/version.c Mon Aug 25 04:46:44 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 5, + /**/ + +-- +The process for understanding customers primarily involves sitting around with +other marketing people and talking about what you would to if you were dumb +enough to be a customer. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.006 b/source/ap/vim/patches/7.2.006 new file mode 100644 index 000000000..f22eeae53 --- /dev/null +++ b/source/ap/vim/patches/7.2.006 @@ -0,0 +1,50 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.006 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.006 +Problem: HTML files are not recognized by contents. +Solution: Add a rule to the scripts file. (Nico Weber) +Files: runtime/scripts.vim + + +*** ../vim-7.2.005/runtime/scripts.vim Sat Aug 9 19:37:09 2008 +--- runtime/scripts.vim Sat Aug 16 04:05:34 2008 +*************** +*** 234,239 **** +--- 234,243 ---- + elseif s:line1 =~ '\<DTD\s\+XHTML\s' + set ft=xhtml + ++ " HTML (e.g.: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN") ++ elseif s:line1 =~? '\<DOCTYPE\s\+html\>' ++ set ft=html ++ + " PDF + elseif s:line1 =~ '^%PDF-' + set ft=pdf +*** ../vim-7.2.005/src/version.c Mon Aug 25 04:48:21 2008 +--- src/version.c Mon Aug 25 05:02:34 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 6, + /**/ + +-- +Never enter the boss's office unless it's absolutely necessary. Every boss +saves one corner of the desk for useless assignments that are doled out like +Halloween candy to each visitor. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.007 b/source/ap/vim/patches/7.2.007 new file mode 100644 index 000000000..104b26785 --- /dev/null +++ b/source/ap/vim/patches/7.2.007 @@ -0,0 +1,493 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.007 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.007 (extra) +Problem: Minor issues for VMS. +Solution: Minor fixes for VMS. Add float support. (Zoltan Arpadffy) +Files: runtime/doc/os_vms.txt, src/os_vms_conf.h, src/Make_vms.mms, + src/testdir/Make_vms.mms, src/testdir/test30.in, + src/testdir/test54.in + + +*** ../vim-7.2.006/runtime/doc/os_vms.txt Sat Aug 9 19:36:50 2008 +--- runtime/doc/os_vms.txt Tue Aug 19 06:29:31 2008 +*************** +*** 1,4 **** +! *os_vms.txt* For Vim version 7.2. Last change: 2006 Nov 18 + + + VIM REFERENCE MANUAL +--- 1,4 ---- +! *os_vms.txt* For Vim version 7.2. Last change: 2008 Aug 19 + + + VIM REFERENCE MANUAL +*************** +*** 312,318 **** + + 8. Useful notes *vms-notes* + +! 8.1 backspace/delete + 8.2 Filters + 8.3 VMS file version numbers + 8.4 Directory conversion +--- 312,318 ---- + + 8. Useful notes *vms-notes* + +! 8.1 Backspace/delete + 8.2 Filters + 8.3 VMS file version numbers + 8.4 Directory conversion +*************** +*** 326,333 **** + 8.12 diff-mode + 8.13 Allow '$' in C keywords + 8.14 VIMTUTOR for beginners + +! 8.1 backspace/delete + + There are backspace/delete key inconsistencies with VMS. + :fixdel doesn't do the trick, but the solution is: > +--- 326,335 ---- + 8.12 diff-mode + 8.13 Allow '$' in C keywords + 8.14 VIMTUTOR for beginners ++ 8.15 Slow start in console mode issue ++ 8.16 Common VIM directory - different architectures + +! 8.1 Backspace/delete + + There are backspace/delete key inconsistencies with VMS. + :fixdel doesn't do the trick, but the solution is: > +*************** +*** 663,674 **** + + (Thomas.R.Wyant III, Vim 6.1) + + ============================================================================== + + 9. VMS related changes *vms-changes* + +! Version 7 + - Improved low level char input (affects just console mode) + + Version 6.4 (2005 Oct 15) + - GTKLIB and Vim build on IA64 +--- 665,794 ---- + + (Thomas.R.Wyant III, Vim 6.1) + ++ 8.14 Slow start in console mode issue ++ ++ As GUI/GTK Vim works equally well in console mode, many administartors ++ deploy those executables system wide. ++ Unfortunately, on a remote slow connections GUI/GTK executables behave rather ++ slow when user wants to run Vim just in the console mode - because of X environment detection timeout. ++ ++ Luckily, there is a simple solution for that. Administrators need to deploy ++ both GUI/GTK build and just console build executables, like below: > ++ ++ |- vim72 ++ |----- doc ++ |----- syntax ++ vimrc (system rc files) ++ gvimrc ++ gvim.exe (the remaned GUI or GTK built vim.exe) ++ vim.exe (the console only executable) ++ ++ Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: > ++ ++ $ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is ++ $ vi*m :== mcr VIM:VIM.EXE ++ $ gvi*m :== mcr VIM:GVIM.EXE ++ $ ! or you can try to spawn with ++ $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40 ++ ++ ++ Like this, users that do not have X environment and want to use Vim just in ++ console mode can avoid performance problems. ++ ++ (Zoltan Arpadffy, Vim 7.2) ++ ++ 8.15 Common VIM directory - different architectures ++ ++ In a cluster that contains nodes with different architectures like below: ++ ++ $show cluster ++ View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31 ++ +---------------------------------+ ++ ¦ SYSTEMS ¦ MEMBERS ¦ ++ +-----------------------+---------¦ ++ ¦ NODE ¦ SOFTWARE ¦ STATUS ¦ ++ +--------+--------------+---------¦ ++ ¦ TOR ¦ VMS V7.3-2 ¦ MEMBER ¦ ++ ¦ TITAN2 ¦ VMS V8.3 ¦ MEMBER ¦ ++ ¦ ODIN ¦ VMS V7.3-2 ¦ MEMBER ¦ ++ +---------------------------------+ ++ ++ It is convinient to have a common VIM directory but execute different ++ executables. ++ There are more solutions for this problem: ++ ++ solution 1. all executables in the same directory with different names ++ This is easily done with the following script that can be added ++ to the login.com or sylogin.com: > ++ ++ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" ++ $ then ++ $ say "VAX platform" ++ $ vi*m:== mcr vim:VIM.EXE_VAX ++ $ endif ++ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" ++ $ then ++ $ say "ALPHA platform" ++ $ vi*m :== mcr vim:VIM.EXE_AXP ++ $ endif ++ $ if f$getsyi("ARCH_NAME") .eqs. "IA64" ++ $ then ++ $ say "IA64 platform" ++ $ vi*m :== mcr vim:VIM.EXE_IA64 ++ $ endif ++ ++ solution 2. different directories: > ++ ++ $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" ++ $ then ++ $ say "VAX platform" ++ $ define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables ++ $ endif ++ $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" ++ $ then ++ $ say "ALPHA platform" ++ $ define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables ++ $ endif ++ $ if f$getsyi("ARCH_NAME") .eqs. "IA64" ++ $ then ++ $ say "IA64 platform" ++ $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables ++ $ endif ++ $! VIMRUNTIME must be defined in order to find runtime files ++ $ define/nolog VIMRUNTIME RF10:[UTIL.VIM72] ++ ++ A good examle for this approach is the [GNU]gnu_tools.com script from GNU_TOOLS.ZIP ++ package downloadable from http://www.polarhome.com/vim/ ++ ++ (Zoltan Arpadffy, Vim 7.2) ++ + ============================================================================== + + 9. VMS related changes *vms-changes* + +! Recent changes +! - The following plugins are included into VMS runtime: +! genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3, +! bufexplorer 7.1.7, taglist 4.5 +! - minor changes in vimrc (just in VMS runtime) +! - make_vms.mms - HUGE model is the default +! - [TESTDIR]make_vms.mms include as many tests possible +! - modify test30 and test54 for VMS +! - enable FLOAT feature in VMS port +! - os_vms.txt updated +! +! Version 7.2 (2008 Aug 9) +! - VCF files write corrected +! - CTAGS 5.7 included +! - corrected make_vms.mms (on VAX gave syntax error) +! +! Version 7.1 (2007 Jun 15) +! - create TAGS file from menu +! +! Version 7 (2006 May 8) + - Improved low level char input (affects just console mode) ++ - Fixed plugin bug ++ - CTAGS 5.6 included + + Version 6.4 (2005 Oct 15) + - GTKLIB and Vim build on IA64 +*************** +*** 806,811 **** +--- 926,932 ---- + + OpenVMS documentation and executables are maintained by: + Zoltan Arpadffy <arpadffy@polarhome.com> ++ OpenVMS Vim page: http://www.polarhome.com/vim/ + + This document uses parts and remarks from earlier authors and contributors + of OS_VMS.TXT: +*** ../vim-7.2.006/src/os_vms_conf.h Thu May 10 19:26:17 2007 +--- src/os_vms_conf.h Sat Aug 16 05:09:17 2008 +*************** +*** 114,119 **** +--- 114,121 ---- + #define HAVE_PUTENV + #define HAVE_SETENV + #define HAVE_SETJMP_H ++ #define HAVE_MATH_H ++ #define HAVE_FLOAT_FUNCS + + #undef HAVE_DIRENT_H + #undef HAVE_SYS_NDIR_H +*** ../vim-7.2.006/src/Make_vms.mms Mon Oct 29 22:38:54 2007 +--- src/Make_vms.mms Sat Aug 16 05:17:41 2008 +*************** +*** 2,8 **** + # Makefile for Vim on OpenVMS + # + # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com> +! # Last change: 2007 Oct 22 + # + # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 + # with MMS and MMK +--- 2,8 ---- + # Makefile for Vim on OpenVMS + # + # Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com> +! # Last change: 2008 Aug 16 + # + # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 + # with MMS and MMK +*************** +*** 36,42 **** + # BIG - Many features enabled, as rich as possible. (default) + # HUGE - All possible featues enabled. + # Please select one of these alternatives above. +! MODEL = BIG + + # GUI or terminal mode executable. + # Comment out if you want just the character terminal mode only. +--- 36,42 ---- + # BIG - Many features enabled, as rich as possible. (default) + # HUGE - All possible featues enabled. + # Please select one of these alternatives above. +! MODEL = HUGE + + # GUI or terminal mode executable. + # Comment out if you want just the character terminal mode only. +*** ../vim-7.2.006/src/testdir/Make_vms.mms Wed Jun 25 00:34:23 2008 +--- src/testdir/Make_vms.mms Tue Aug 19 06:28:07 2008 +*************** +*** 4,12 **** + # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com> + # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> + # +! # Last change: 2008 Jun 19 + # +! # This has been tested on VMS 6.2 to 7.2 on DEC Alpha and VAX. + # Edit the lines in the Configuration section below to select. + # + # Execute with: +--- 4,12 ---- + # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com> + # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> + # +! # Last change: 2008 Aug 19 + # +! # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. + # + # Execute with: +*************** +*** 32,37 **** +--- 32,46 ---- + # and directory handling. + # WANT_UNIX = YES + ++ # Comment out if you want to run Win32 specific tests as well, but please ++ # be aware, that on OpenVMS will fail, because of cat, rm, etc commands ++ # and directory handling. ++ # WANT_WIN = YES ++ ++ # Comment out if you want to run spell checker tests. ++ # They fail because VMS does not support file names. ++ # WANT_SPELL = YES ++ + # Comment out if you have gzip on your system + # HAVE_GZIP = YES + +*************** +*** 53,64 **** + test13.out test14.out test15.out test17.out \ + test18.out test19.out test20.out test21.out test22.out \ + test23.out test24.out test26.out \ +! test28.out test29.out test31.out test32.out \ + test33.out test34.out test35.out test36.out test37.out \ + test38.out test39.out test40.out test41.out test42.out \ + test43.out test44.out test45.out test46.out \ + test48.out test51.out test53.out test54.out test55.out \ +! test56.out test57.out test58.out test59.out test60.out \ + test61.out test62.out test63.out test64.out test65.out + + .IFDEF WANT_GUI +--- 62,73 ---- + test13.out test14.out test15.out test17.out \ + test18.out test19.out test20.out test21.out test22.out \ + test23.out test24.out test26.out \ +! test28.out test29.out test30.out test31.out test32.out \ + test33.out test34.out test35.out test36.out test37.out \ + test38.out test39.out test40.out test41.out test42.out \ + test43.out test44.out test45.out test46.out \ + test48.out test51.out test53.out test54.out test55.out \ +! test56.out test57.out test60.out \ + test61.out test62.out test63.out test64.out test65.out + + .IFDEF WANT_GUI +*************** +*** 67,73 **** + .ENDIF + + .IFDEF WANT_UNIX +! SCRIPT_UNIX = test10.out test12.out test25.out test27.out test30.out test49.out + .ENDIF + + .IFDEF HAVE_GZIP +--- 76,90 ---- + .ENDIF + + .IFDEF WANT_UNIX +! SCRIPT_UNIX = test10.out test12.out test25.out test27.out test49.out +! .ENDIF +! +! .IFDEF WANT_WIN +! SCRIPT_WIN = test50.out test52.out +! .ENDIF +! +! .IFDEF WANT_SPELL +! SCRIPT_SPELL = test58.out test59.out + .ENDIF + + .IFDEF HAVE_GZIP +*************** +*** 84,94 **** + -@ write sys$output " "$*" " + -@ write sys$output "-----------------------------------------------" + -@ create/term/wait mcr $(VIMPROG) $(GUI_OPTION) -u vms.vim --noplugin -s dotest.in $*.in +! -@ if "''F$SEARCH("test.out.*")'" .NES. "" then differences test.out $*.ok; + -@ if "''F$SEARCH("test.out.*")'" .NES. "" then rename test.out $*.out + -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.* + +! all : clean nolog $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_GZIP) $(SCRIPT_GDIFF) + -@ write sys$output " " + -@ write sys$output "-----------------------------------------------" + -@ write sys$output " All done" +--- 101,111 ---- + -@ write sys$output " "$*" " + -@ write sys$output "-----------------------------------------------" + -@ create/term/wait mcr $(VIMPROG) $(GUI_OPTION) -u vms.vim --noplugin -s dotest.in $*.in +! -@ if "''F$SEARCH("test.out.*")'" .NES. "" then differences /par test.out $*.ok; + -@ if "''F$SEARCH("test.out.*")'" .NES. "" then rename test.out $*.out + -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.* + +! all : clean nolog $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_GZIP) $(SCRIPT_GDIFF) + -@ write sys$output " " + -@ write sys$output "-----------------------------------------------" + -@ write sys$output " All done" +*************** +*** 113,118 **** +--- 130,137 ---- + -@ write sys$output "MAKE_VMS.MMS options:" + -@ write sys$output " WANT_GUI = ""$(WANT_GUI)"" " + -@ write sys$output " WANT_UNIX = ""$(WANT_UNIX)"" " ++ -@ write sys$output " WANT_WIN = ""$(WANT_WIN)"" " ++ -@ write sys$output " WANT_SPELL= ""$(WANT_SPELL)"" " + -@ write sys$output " HAVE_GZIP = ""$(HAVE_GZIP)"" " + -@ write sys$output " HAVE_GDIFF= ""$(HAVE_GDIFF)"" " + -@ write sys$output "Default vimrc file is VMS.VIM: +*************** +*** 122,126 **** +--- 141,153 ---- + clean : + -@ if "''F$SEARCH("*.out")'" .NES. "" then delete/noconfirm/nolog *.out.* + -@ if "''F$SEARCH("test.log")'" .NES. "" then delete/noconfirm/nolog test.log.* ++ -@ if "''F$SEARCH("test.ok")'" .NES. "" then delete/noconfirm/nolog test.ok.* + -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.* + -@ if "''F$SEARCH("*.*_sw*")'" .NES. "" then delete/noconfirm/nolog *.*_sw*.* ++ -@ if "''F$SEARCH("*.failed")'" .NES. "" then delete/noconfirm/nolog *.failed.* ++ -@ if "''F$SEARCH("*.rej")'" .NES. "" then delete/noconfirm/nolog *.rej.* ++ -@ if "''F$SEARCH("tiny.vim")'" .NES. "" then delete/noconfirm/nolog tiny.vim.* ++ -@ if "''F$SEARCH("small.vim")'" .NES. "" then delete/noconfirm/nolog small.vim.* ++ -@ if "''F$SEARCH("mbyte.vim")'" .NES. "" then delete/noconfirm/nolog mbyte.vim.* ++ -@ if "''F$SEARCH("viminfo.*")'" .NES. "" then delete/noconfirm/nolog viminfo.*.* ++ +*** ../vim-7.2.006/src/testdir/test30.in Sun Jul 13 19:17:14 2008 +--- src/testdir/test30.in Sat Aug 16 04:59:37 2008 +*************** +*** 24,33 **** + :set nobin eol + :bwipe XXUnix XXDos XXMac + :" create mixed format files +! :!cat XXUnix XXDos >XXUxDs +! :!cat XXUnix XXMac >XXUxMac +! :!cat XXDos XXMac >XXDosMac +! :!cat XXUnix XXDos XXMac >XXUxDsMc + :" + :" try reading and writing with 'fileformats' empty + :set fileformat=unix +--- 24,40 ---- + :set nobin eol + :bwipe XXUnix XXDos XXMac + :" create mixed format files +! :if has("vms") +! : !copy XXUnix,XXDos XXUxDs. +! : !copy XXUnix,XXMac XXUxMac. +! : !copy XXDos,XXMac XXDosMac. +! : !copy XXUnix,XXDos,XXMac XXUxDsMc. +! :else +! : !cat XXUnix XXDos >XXUxDs +! : !cat XXUnix XXMac >XXUxMac +! : !cat XXDos XXMac >XXDosMac +! : !cat XXUnix XXDos XXMac >XXUxDsMc +! :endif + :" + :" try reading and writing with 'fileformats' empty + :set fileformat=unix +*** ../vim-7.2.006/src/testdir/test54.in Sun Jan 2 12:43:19 2005 +--- src/testdir/test54.in Tue Aug 19 06:26:55 2008 +*************** +*** 3,10 **** + STARTTEST + :so small.vim + :e xx +! :!rm -f test.out +! :au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out + :e somefile " here, autocommand for xx shall write test.out + : " but autocommand shall not apply to buffer named <buffer> + :bwipe xx " here, autocommand shall be auto-deleted +--- 3,15 ---- + STARTTEST + :so small.vim + :e xx +! :if has("vms") +! : !del test.out.* +! : au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out +! :else +! : !rm -f test.out +! : au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out +! :endif + :e somefile " here, autocommand for xx shall write test.out + : " but autocommand shall not apply to buffer named <buffer> + :bwipe xx " here, autocommand shall be auto-deleted +*** ../vim-7.2.006/src/version.c Mon Aug 25 05:03:29 2008 +--- src/version.c Mon Sep 1 16:46:50 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 7, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +8. Don't use any punctuation marks. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.008 b/source/ap/vim/patches/7.2.008 new file mode 100644 index 000000000..d3fb58e5c --- /dev/null +++ b/source/ap/vim/patches/7.2.008 @@ -0,0 +1,63 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.008 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.008 +Problem: With a BufHidden autocommand that invokes ":bunload" the window + count for a buffer can be wrong. (Bob Hiestand) +Solution: Don't call enter_buffer() when already in that buffer. +Files: src/buffer.c + + +*** ../vim-7.2.007/src/buffer.c Wed Aug 6 18:32:40 2008 +--- src/buffer.c Mon Sep 1 14:25:45 2008 +*************** +*** 1351,1361 **** + } + } + #ifdef FEAT_AUTOCMD + # ifdef FEAT_EVAL +! /* An autocommand may have deleted buf or aborted the script processing! */ +! if (buf_valid(buf) && !aborting()) + # else +! if (buf_valid(buf)) /* an autocommand may have deleted buf! */ + # endif + #endif + enter_buffer(buf); +--- 1351,1362 ---- + } + } + #ifdef FEAT_AUTOCMD ++ /* An autocommand may have deleted "buf", already entered it (e.g., when ++ * it did ":bunload") or aborted the script processing! */ + # ifdef FEAT_EVAL +! if (buf_valid(buf) && buf != curbuf && !aborting()) + # else +! if (buf_valid(buf) && buf != curbuf) + # endif + #endif + enter_buffer(buf); +*** ../vim-7.2.007/src/version.c Mon Sep 1 16:50:09 2008 +--- src/version.c Mon Sep 1 17:31:28 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 8, + /**/ + +-- +If Pacman had affected us as kids we'd be running around in dark rooms, +munching pills and listening to repetitive music. + -- Marcus Brigstocke + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.009 b/source/ap/vim/patches/7.2.009 new file mode 100644 index 000000000..fa891dcfc --- /dev/null +++ b/source/ap/vim/patches/7.2.009 @@ -0,0 +1,67 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.009 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.009 +Problem: Can't compile with Perl 5.10 on MS-Windows. (Cesar Romani) +Solution: Add the Perl_sv_free2 function for dynamic loading. (Dan Sharp) +Files: src/if_perl.xs + + +*** ../vim-7.2.008/src/if_perl.xs Thu Jul 24 16:24:15 2008 +--- src/if_perl.xs Mon Sep 1 14:58:37 2008 +*************** +*** 136,141 **** +--- 136,144 ---- + # define Perl_newXS_flags dll_Perl_newXS_flags + #endif + # define Perl_sv_free dll_Perl_sv_free ++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 10) ++ # define Perl_sv_free2 dll_Perl_sv_free2 ++ # endif + # define Perl_sv_isa dll_Perl_sv_isa + # define Perl_sv_magic dll_Perl_sv_magic + # define Perl_sv_setiv dll_Perl_sv_setiv +*************** +*** 268,273 **** +--- 271,277 ---- + static void (*boot_DynaLoader)_((pTHX_ CV*)); + + #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) ++ static void (*Perl_sv_free2)(pTHX_ SV*); + static void (*Perl_sys_init3)(int* argc, char*** argv, char*** env); + static void (*Perl_sys_term)(void); + static SV** (*Perl_ISv_ptr)(register PerlInterpreter*); +*************** +*** 367,372 **** +--- 371,377 ---- + {"Perl_TXpv_ptr", (PERL_PROC*)&Perl_TXpv_ptr}, + {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr}, + #else ++ {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2}, + {"Perl_sys_init3", (PERL_PROC*)&Perl_sys_init3}, + {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term}, + {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr}, +*** ../vim-7.2.008/src/version.c Mon Sep 1 17:32:40 2008 +--- src/version.c Mon Sep 1 17:55:24 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 9, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +11. Specify that your drive-through order is "to go". + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.010 b/source/ap/vim/patches/7.2.010 new file mode 100644 index 000000000..47315881e --- /dev/null +++ b/source/ap/vim/patches/7.2.010 @@ -0,0 +1,206 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.010 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.010 +Problem: When using "K" in Visual mode not all characters are properly + escaped. (Ben Schmidt) +Solution: Use a function with the functionality of shellescape(). (Jan + Minar) +Files: src/mbyte.c, src/misc2.c, src/normal.c + + +*** ../vim-7.2.009/src/mbyte.c Wed Aug 6 18:45:36 2008 +--- src/mbyte.c Wed Sep 3 22:34:48 2008 +*************** +*** 2540,2546 **** + return (int)(p - q); + } + +- #if defined(FEAT_EVAL) || defined(PROTO) + /* + * Copy a character from "*fp" to "*tp" and advance the pointers. + */ +--- 2540,2545 ---- +*************** +*** 2555,2561 **** + *tp += l; + *fp += l; + } +- #endif + + /* + * Return the offset from "p" to the first byte of a character. When "p" is +--- 2554,2559 ---- +*** ../vim-7.2.009/src/misc2.c Thu Jul 24 20:28:58 2008 +--- src/misc2.c Wed Sep 3 22:05:21 2008 +*************** +*** 1257,1263 **** + return escaped_string; + } + +- #if !defined(BACKSLASH_IN_FILENAME) || defined(FEAT_EVAL) || defined(PROTO) + /* + * Return TRUE when 'shell' has "csh" in the tail. + */ +--- 1257,1262 ---- +*************** +*** 1266,1274 **** + { + return (strstr((char *)gettail(p_sh), "csh") != NULL); + } +- #endif + +- #if defined(FEAT_EVAL) || defined(PROTO) + /* + * Escape "string" for use as a shell argument with system(). + * This uses single quotes, except when we know we need to use double qoutes +--- 1265,1271 ---- +*************** +*** 1391,1397 **** + + return escaped_string; + } +- #endif + + /* + * Like vim_strsave(), but make all characters uppercase. +--- 1388,1393 ---- +*** ../vim-7.2.009/src/normal.c Thu Jul 31 22:03:54 2008 +--- src/normal.c Sat Sep 6 15:06:07 2008 +*************** +*** 5469,5474 **** +--- 5469,5479 ---- + STRCPY(buf, "he! "); + else + { ++ /* An external command will probably use an argument starting ++ * with "-" as an option. To avoid trouble we skip the "-". */ ++ while (*ptr == '-') ++ ++ptr; ++ + /* When a count is given, turn it into a range. Is this + * really what we want? */ + isman = (STRCMP(kp, "man") == 0); +*************** +*** 5511,5547 **** + /* + * Now grab the chars in the identifier + */ +! if (cmdchar == '*') +! aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\"); +! else if (cmdchar == '#') +! aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\"); +! else if (cmdchar == 'K' && !kp_help) +! aux_ptr = (char_u *)" \t\\\"|!"; +! else +! /* Don't escape spaces and Tabs in a tag with a backslash */ +! aux_ptr = (char_u *)"\\|\""; +! +! p = buf + STRLEN(buf); +! while (n-- > 0) +! { +! /* put a backslash before \ and some others */ +! if (vim_strchr(aux_ptr, *ptr) != NULL) +! *p++ = '\\'; +! #ifdef FEAT_MBYTE +! /* When current byte is a part of multibyte character, copy all bytes +! * of that character. */ +! if (has_mbyte) + { +! int i; +! int len = (*mb_ptr2len)(ptr) - 1; +! +! for (i = 0; i < len && n >= 1; ++i, --n) +! *p++ = *ptr++; + } + #endif +! *p++ = *ptr++; + } +- *p = NUL; + + /* + * Execute the command. +--- 5516,5572 ---- + /* + * Now grab the chars in the identifier + */ +! if (cmdchar == 'K' && !kp_help) +! { +! /* Escape the argument properly for a shell command */ +! p = vim_strsave_shellescape(ptr, TRUE); +! if (p == NULL) + { +! vim_free(buf); +! return; + } ++ buf = (char_u *)vim_realloc(buf, STRLEN(buf) + STRLEN(p) + 1); ++ if (buf == NULL) ++ { ++ vim_free(buf); ++ vim_free(p); ++ return; ++ } ++ STRCAT(buf, p); ++ vim_free(p); ++ } ++ else ++ { ++ if (cmdchar == '*') ++ aux_ptr = (char_u *)(p_magic ? "/.*~[^$\\" : "/^$\\"); ++ else if (cmdchar == '#') ++ aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\"); ++ else ++ /* Don't escape spaces and Tabs in a tag with a backslash */ ++ aux_ptr = (char_u *)"\\|\"\n*?["; ++ ++ p = buf + STRLEN(buf); ++ while (n-- > 0) ++ { ++ /* put a backslash before \ and some others */ ++ if (vim_strchr(aux_ptr, *ptr) != NULL) ++ *p++ = '\\'; ++ #ifdef FEAT_MBYTE ++ /* When current byte is a part of multibyte character, copy all ++ * bytes of that character. */ ++ if (has_mbyte) ++ { ++ int i; ++ int len = (*mb_ptr2len)(ptr) - 1; ++ ++ for (i = 0; i < len && n >= 1; ++i, --n) ++ *p++ = *ptr++; ++ } + #endif +! *p++ = *ptr++; +! } +! *p = NUL; + } + + /* + * Execute the command. +*** ../vim-7.2.009/src/version.c Mon Sep 1 17:56:05 2008 +--- src/version.c Sat Sep 6 16:26:42 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 10, + /**/ + +-- +Q. What happens to programmers when they die? +A: MS-Windows programmers are reinstalled. C++ programmers become undefined, + anyone who refers to them will die as well. Java programmers reincarnate + after being garbage collected. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.011 b/source/ap/vim/patches/7.2.011 new file mode 100644 index 000000000..928f8d638 --- /dev/null +++ b/source/ap/vim/patches/7.2.011 @@ -0,0 +1,105 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.011 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.011 +Problem: Get an error when inserting a float value from the expression + register. +Solution: Convert the Float to a String automatically in the same place + where a List would be converted to a String. +Files: src/eval.c + + +*** ../vim-7.2.010/src/eval.c Mon Aug 25 04:48:21 2008 +--- src/eval.c Sun Sep 7 13:50:38 2008 +*************** +*** 1256,1278 **** + + /* + * Top level evaluation function, returning a string. + * Return pointer to allocated memory, or NULL for failure. + */ + char_u * +! eval_to_string(arg, nextcmd, dolist) + char_u *arg; + char_u **nextcmd; +! int dolist; /* turn List into sequence of lines */ + { + typval_T tv; + char_u *retval; + garray_T ga; + + if (eval0(arg, &tv, nextcmd, TRUE) == FAIL) + retval = NULL; + else + { +! if (dolist && tv.v_type == VAR_LIST) + { + ga_init2(&ga, (int)sizeof(char), 80); + if (tv.vval.v_list != NULL) +--- 1256,1281 ---- + + /* + * Top level evaluation function, returning a string. ++ * When "convert" is TRUE convert a List into a sequence of lines and convert ++ * a Float to a String. + * Return pointer to allocated memory, or NULL for failure. + */ + char_u * +! eval_to_string(arg, nextcmd, convert) + char_u *arg; + char_u **nextcmd; +! int convert; + { + typval_T tv; + char_u *retval; + garray_T ga; ++ char_u numbuf[NUMBUFLEN]; + + if (eval0(arg, &tv, nextcmd, TRUE) == FAIL) + retval = NULL; + else + { +! if (convert && tv.v_type == VAR_LIST) + { + ga_init2(&ga, (int)sizeof(char), 80); + if (tv.vval.v_list != NULL) +*************** +*** 1280,1285 **** +--- 1283,1295 ---- + ga_append(&ga, NUL); + retval = (char_u *)ga.ga_data; + } ++ #ifdef FEAT_FLOAT ++ else if (convert && tv.v_type == VAR_FLOAT) ++ { ++ vim_snprintf((char *)numbuf, NUMBUFLEN, "%g", tv.vval.v_float); ++ retval = vim_strsave(numbuf); ++ } ++ #endif + else + retval = vim_strsave(get_tv_string(&tv)); + clear_tv(&tv); +*** ../vim-7.2.010/src/version.c Sat Sep 6 16:44:06 2008 +--- src/version.c Sun Sep 7 13:52:00 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 11, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +34. You laugh at people with 14400 baud modems. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.012 b/source/ap/vim/patches/7.2.012 new file mode 100644 index 000000000..fa3ed2473 --- /dev/null +++ b/source/ap/vim/patches/7.2.012 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.012 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.012 +Problem: Compiler warnings when building with startup timing. +Solution: Add type casts. +Files: src/ex_cmds2.c + + +*** ../vim-7.2.011/src/ex_cmds2.c Sun Jul 13 19:36:09 2008 +--- src/ex_cmds2.c Tue Sep 2 11:14:41 2008 +*************** +*** 3145,3152 **** + verbose_leave(); + } + #ifdef STARTUPTIME +! vim_snprintf(IObuff, IOSIZE, "sourcing %s", fname); +! time_msg(IObuff, &tv_start); + time_pop(&tv_rel); + #endif + +--- 3145,3152 ---- + verbose_leave(); + } + #ifdef STARTUPTIME +! vim_snprintf((char *)IObuff, IOSIZE, "sourcing %s", fname); +! time_msg((char *)IObuff, &tv_start); + time_pop(&tv_rel); + #endif + +*** ../vim-7.2.011/src/version.c Sun Sep 7 13:54:31 2008 +--- src/version.c Sun Sep 7 15:49:00 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 12, + /**/ + +-- +He who laughs last, thinks slowest. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.013 b/source/ap/vim/patches/7.2.013 new file mode 100644 index 000000000..2645f0a7d --- /dev/null +++ b/source/ap/vim/patches/7.2.013 @@ -0,0 +1,135 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.013 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.013 +Problem: While waiting for the X selection Vim consumes a lot of CPU time + and hangs until a response is received. +Solution: Sleep a bit when the selection event hasn't been received yet. + Time out after a couple of seconds to avoid a hang when the + selection owner isn't responding. +Files: src/ui.c + + +*** ../vim-7.2.012/src/ui.c Mon Jul 14 21:47:49 2008 +--- src/ui.c Sun Sep 7 16:54:35 2008 +*************** +*** 2110,2115 **** +--- 2110,2117 ---- + int i; + int nbytes = 0; + char_u *buffer; ++ time_t start_time; ++ int timed_out = FALSE; + + for (i = + #ifdef FEAT_MBYTE +*************** +*** 2129,2134 **** +--- 2131,2137 ---- + case 3: type = text_atom; break; + default: type = XA_STRING; + } ++ success = FALSE; + XtGetSelectionValue(myShell, cbd->sel_atom, type, + clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime); + +*************** +*** 2141,2167 **** + * characters, then they will appear before the one that requested the + * paste! Don't worry, we will catch up with any other events later. + */ + for (;;) + { + if (XCheckTypedEvent(dpy, SelectionNotify, &event)) + break; + if (XCheckTypedEvent(dpy, SelectionRequest, &event)) + /* We may get a SelectionRequest here and if we don't handle + * it we hang. KDE klipper does this, for example. */ + XtDispatchEvent(&event); + + /* Do we need this? Probably not. */ + XSync(dpy, False); + +! /* Bernhard Walle solved a slow paste response in an X terminal by +! * adding: usleep(10000); here. */ + } + +- /* this is where clip_x11_request_selection_cb() is actually called */ +- XtDispatchEvent(&event); +- + if (success) + return; + } + + /* Final fallback position - use the X CUT_BUFFER0 store */ +--- 2144,2189 ---- + * characters, then they will appear before the one that requested the + * paste! Don't worry, we will catch up with any other events later. + */ ++ start_time = time(NULL); + for (;;) + { + if (XCheckTypedEvent(dpy, SelectionNotify, &event)) ++ { ++ /* this is where clip_x11_request_selection_cb() is actually ++ * called */ ++ XtDispatchEvent(&event); + break; ++ } + if (XCheckTypedEvent(dpy, SelectionRequest, &event)) + /* We may get a SelectionRequest here and if we don't handle + * it we hang. KDE klipper does this, for example. */ + XtDispatchEvent(&event); + ++ /* Time out after 2 to 3 seconds to avoid that we hang when the ++ * other process doesn't respond. Note that the SelectionNotify ++ * event may still come later when the selection owner comes back ++ * to life and the text gets inserted unexpectedly (by xterm). ++ * Don't know how to avoid that :-(. */ ++ if (time(NULL) > start_time + 2) ++ { ++ timed_out = TRUE; ++ break; ++ } ++ + /* Do we need this? Probably not. */ + XSync(dpy, False); + +! /* Wait for 1 msec to avoid that we eat up all CPU time. */ +! ui_delay(1L, TRUE); + } + + if (success) + return; ++ ++ /* don't do a retry with another type after timing out, otherwise we ++ * hang for 15 seconds. */ ++ if (timed_out) ++ break; + } + + /* Final fallback position - use the X CUT_BUFFER0 store */ +*** ../vim-7.2.012/src/version.c Sun Sep 7 15:49:45 2008 +--- src/version.c Sun Sep 7 21:45:55 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 13, + /**/ + +-- +The users that I support would double-click on a landmine to find out +what happens. -- A system administrator + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.014 b/source/ap/vim/patches/7.2.014 new file mode 100644 index 000000000..a03794868 --- /dev/null +++ b/source/ap/vim/patches/7.2.014 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.014 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.014 +Problem: synstack() doesn't work in an emptly line. +Solution: Accept column zero as a valid position. +Files: src/eval.c + + +*** ../vim-7.2.013/src/eval.c Sun Sep 7 13:54:31 2008 +--- src/eval.c Sun Sep 7 13:50:38 2008 +*************** +*** 16667,16673 **** + col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */ + + if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count +! && col >= 0 && col < (long)STRLEN(ml_get(lnum)) + && rettv_list_alloc(rettv) != FAIL) + { + (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE); +--- 16667,16673 ---- + col = get_tv_number(&argvars[1]) - 1; /* -1 on type error */ + + if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count +! && col >= 0 && (col == 0 || col < (long)STRLEN(ml_get(lnum))) + && rettv_list_alloc(rettv) != FAIL) + { + (void)syn_get_id(curwin, lnum, (colnr_T)col, FALSE, NULL, TRUE); +*** ../vim-7.2.013/src/version.c Sun Sep 7 21:47:51 2008 +--- src/version.c Wed Sep 10 15:36:52 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 14, + /**/ + +-- +Everybody lies, but it doesn't matter since nobody listens. + -- Lieberman's Law + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.015 b/source/ap/vim/patches/7.2.015 new file mode 100644 index 000000000..e03ac1564 --- /dev/null +++ b/source/ap/vim/patches/7.2.015 @@ -0,0 +1,82 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.015 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.015 +Problem: "make all test install" doesn't stop when the test fails. (Daniel + Shahaf) +Solution: When test.log contains failures exit with non-zero status. +Files: src/testdir/Makefile + + +*** ../vim-7.2.014/src/testdir/Makefile Wed Jun 25 00:22:53 2008 +--- src/testdir/Makefile Sun Sep 7 21:31:49 2008 +*************** +*** 26,40 **** + + .SUFFIXES: .in .out + +! nongui: nolog $(SCRIPTS) +! @echo +! @cat test.log +! @echo ALL DONE + +! gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) + @echo +! @cat test.log +! @echo ALL DONE + + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + +--- 26,42 ---- + + .SUFFIXES: .in .out + +! nongui: nolog $(SCRIPTS) report +! +! gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) report + +! report: + @echo +! @echo 'Test results:' +! @/bin/sh -c "if test -f test.log; \ +! then cat test.log; echo TEST FAILURE; exit 1; \ +! else echo ALL DONE; \ +! fi" + + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + +*************** +*** 71,74 **** + test60.out: test60.vim + + nolog: +! -echo Test results: >test.log +--- 73,76 ---- + test60.out: test60.vim + + nolog: +! -rm -f test.log +*** ../vim-7.2.014/src/version.c Wed Sep 10 15:38:13 2008 +--- src/version.c Wed Sep 10 18:23:38 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 15, + /**/ + +-- +Light travels faster than sound. This is why some people +appear bright until you hear them speak + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.016 b/source/ap/vim/patches/7.2.016 new file mode 100644 index 000000000..03d5207f2 --- /dev/null +++ b/source/ap/vim/patches/7.2.016 @@ -0,0 +1,166 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.016 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.016 +Problem: The pattern being completed may be in freed memory when the + command line is being reallocated. (Dominique Pelle) +Solution: Keep a pointer to the expand_T in the command line structure. + Don't use <S-Tab> as CTRL-P when there are no results. Clear the + completion when using a command line from the history. +Files: src/ex_getln.c + + +*** ../vim-7.2.015/src/ex_getln.c Fri Aug 8 12:58:59 2008 +--- src/ex_getln.c Wed Sep 10 22:43:41 2008 +*************** +*** 31,36 **** +--- 31,38 ---- + int cmdattr; /* attributes for prompt */ + int overstrike; /* Typing mode on the command line. Shared by + getcmdline() and put_on_cmdline(). */ ++ expand_T *xpc; /* struct being used for expansion, xp_pattern ++ may point into cmdbuff */ + int xp_context; /* type of expansion */ + # ifdef FEAT_EVAL + char_u *xp_arg; /* user-defined expansion arg */ +*************** +*** 38,44 **** + # endif + }; + +! static struct cmdline_info ccline; /* current cmdline_info */ + + static int cmd_showtail; /* Only show path tail in lists ? */ + +--- 40,50 ---- + # endif + }; + +! /* The current cmdline_info. It is initialized in getcmdline() and after that +! * used by other functions. When invoking getcmdline() recursively it needs +! * to be saved with save_cmdline() and restored with restore_cmdline(). +! * TODO: make it local to getcmdline() and pass it around. */ +! static struct cmdline_info ccline; + + static int cmd_showtail; /* Only show path tail in lists ? */ + +*************** +*** 238,243 **** +--- 244,250 ---- + } + + ExpandInit(&xpc); ++ ccline.xpc = &xpc; + + #ifdef FEAT_RIGHTLEFT + if (curwin->w_p_rl && *curwin->w_p_rlc == 's' +*************** +*** 408,416 **** + #endif + + /* +! * <S-Tab> works like CTRL-P (unless 'wc' is <S-Tab>). + */ +! if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles != -1) + c = Ctrl_P; + + #ifdef FEAT_WILDMENU +--- 415,424 ---- + #endif + + /* +! * When there are matching completions to select <S-Tab> works like +! * CTRL-P (unless 'wc' is <S-Tab>). + */ +! if (c != p_wc && c == K_S_TAB && xpc.xp_numfiles > 0) + c = Ctrl_P; + + #ifdef FEAT_WILDMENU +*************** +*** 1513,1518 **** +--- 1521,1527 ---- + int old_firstc; + + vim_free(ccline.cmdbuff); ++ xpc.xp_context = EXPAND_NOTHING; + if (hiscnt == hislen) + p = lookfor; /* back to the old one */ + else +*************** +*** 1839,1844 **** +--- 1848,1854 ---- + #endif + + ExpandCleanup(&xpc); ++ ccline.xpc = NULL; + + #ifdef FEAT_SEARCH_EXTRA + if (did_incsearch) +*************** +*** 2508,2513 **** +--- 2518,2537 ---- + } + mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen + 1); + vim_free(p); ++ ++ if (ccline.xpc != NULL ++ && ccline.xpc->xp_pattern != NULL ++ && ccline.xpc->xp_context != EXPAND_NOTHING ++ && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL) ++ { ++ int i = ccline.xpc->xp_pattern - p; ++ ++ /* If xp_pattern points inside the old cmdbuff it needs to be adjusted ++ * to point into the newly allocated memory. */ ++ if (i >= 0 && i <= ccline.cmdlen) ++ ccline.xpc->xp_pattern = ccline.cmdbuff + i; ++ } ++ + return OK; + } + +*************** +*** 2875,2880 **** +--- 2899,2905 ---- + prev_ccline = ccline; + ccline.cmdbuff = NULL; + ccline.cmdprompt = NULL; ++ ccline.xpc = NULL; + } + + /* +*************** +*** 3582,3587 **** +--- 3607,3613 ---- + ExpandInit(xp) + expand_T *xp; + { ++ xp->xp_pattern = NULL; + xp->xp_backslash = XP_BS_NONE; + #ifndef BACKSLASH_IN_FILENAME + xp->xp_shell = FALSE; +*** ../vim-7.2.015/src/version.c Wed Sep 10 18:25:18 2008 +--- src/version.c Sun Sep 14 14:38:47 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 16, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +53. To find out what time it is, you send yourself an e-mail and check the + "Date:" field. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.017 b/source/ap/vim/patches/7.2.017 new file mode 100644 index 000000000..99979a152 --- /dev/null +++ b/source/ap/vim/patches/7.2.017 @@ -0,0 +1,162 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.017 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.017 +Problem: strlen() used on text that may not end in a NUL. (Dominique Pelle) + Pasting a very big selection doesn't work. +Solution: Use the length passed to the XtSelectionCallbackProc() function. + After getting the SelectionNotify event continue dispatching + events until the callback is actually called. Also dispatch the + PropertyNotify event. +Files: src/ui.c + + +*** ../vim-7.2.016/src/ui.c Sun Sep 7 21:47:51 2008 +--- src/ui.c Sun Sep 14 15:52:19 2008 +*************** +*** 2020,2026 **** + + if (value == NULL || *length == 0) + { +! clip_free_selection(cbd); /* ??? [what's the query?] */ + *(int *)success = FALSE; + return; + } +--- 2020,2026 ---- + + if (value == NULL || *length == 0) + { +! clip_free_selection(cbd); /* nothing received, clear register */ + *(int *)success = FALSE; + return; + } +*************** +*** 2076,2082 **** + text_prop.value = (unsigned char *)value; + text_prop.encoding = *type; + text_prop.format = *format; +! text_prop.nitems = STRLEN(value); + status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop, + &text_list, &n_text); + if (status != Success || n_text < 1) +--- 2076,2082 ---- + text_prop.value = (unsigned char *)value; + text_prop.encoding = *type; + text_prop.format = *format; +! text_prop.nitems = len; + status = XmbTextPropertyToTextList(X_DISPLAY, &text_prop, + &text_list, &n_text); + if (status != Success || n_text < 1) +*************** +*** 2131,2137 **** + case 3: type = text_atom; break; + default: type = XA_STRING; + } +! success = FALSE; + XtGetSelectionValue(myShell, cbd->sel_atom, type, + clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime); + +--- 2131,2137 ---- + case 3: type = text_atom; break; + default: type = XA_STRING; + } +! success = MAYBE; + XtGetSelectionValue(myShell, cbd->sel_atom, type, + clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime); + +*************** +*** 2145,2169 **** + * paste! Don't worry, we will catch up with any other events later. + */ + start_time = time(NULL); +! for (;;) + { +! if (XCheckTypedEvent(dpy, SelectionNotify, &event)) + { +! /* this is where clip_x11_request_selection_cb() is actually +! * called */ + XtDispatchEvent(&event); +! break; + } +- if (XCheckTypedEvent(dpy, SelectionRequest, &event)) +- /* We may get a SelectionRequest here and if we don't handle +- * it we hang. KDE klipper does this, for example. */ +- XtDispatchEvent(&event); + + /* Time out after 2 to 3 seconds to avoid that we hang when the + * other process doesn't respond. Note that the SelectionNotify + * event may still come later when the selection owner comes back +! * to life and the text gets inserted unexpectedly (by xterm). +! * Don't know how to avoid that :-(. */ + if (time(NULL) > start_time + 2) + { + timed_out = TRUE; +--- 2145,2171 ---- + * paste! Don't worry, we will catch up with any other events later. + */ + start_time = time(NULL); +! while (success == MAYBE) + { +! if (XCheckTypedEvent(dpy, SelectionNotify, &event) +! || XCheckTypedEvent(dpy, SelectionRequest, &event) +! || XCheckTypedEvent(dpy, PropertyNotify, &event)) + { +! /* This is where clip_x11_request_selection_cb() should be +! * called. It may actually happen a bit later, so we loop +! * until "success" changes. +! * We may get a SelectionRequest here and if we don't handle +! * it we hang. KDE klipper does this, for example. +! * We need to handle a PropertyNotify for large selections. */ + XtDispatchEvent(&event); +! continue; + } + + /* Time out after 2 to 3 seconds to avoid that we hang when the + * other process doesn't respond. Note that the SelectionNotify + * event may still come later when the selection owner comes back +! * to life and the text gets inserted unexpectedly. Don't know +! * why that happens or how to avoid that :-(. */ + if (time(NULL) > start_time + 2) + { + timed_out = TRUE; +*************** +*** 2177,2183 **** + ui_delay(1L, TRUE); + } + +! if (success) + return; + + /* don't do a retry with another type after timing out, otherwise we +--- 2179,2185 ---- + ui_delay(1L, TRUE); + } + +! if (success == TRUE) + return; + + /* don't do a retry with another type after timing out, otherwise we +*** ../vim-7.2.016/src/version.c Sun Sep 14 14:41:44 2008 +--- src/version.c Sun Sep 14 15:55:34 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 17, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +54. You start tilting your head sideways to smile. :-) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.018 b/source/ap/vim/patches/7.2.018 new file mode 100644 index 000000000..b195f09dc --- /dev/null +++ b/source/ap/vim/patches/7.2.018 @@ -0,0 +1,45 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.018 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.018 +Problem: Memory leak when substitute is aborted. +Solution: Free the buffer allocated for the new text. (Dominique Pelle) +Files: src/ex_cmds.c + + +*** ../vim-7.2.017/src/ex_cmds.c Wed Aug 6 15:03:07 2008 +--- src/ex_cmds.c Sun Sep 14 13:45:03 2008 +*************** +*** 5059,5064 **** +--- 5059,5065 ---- + + if (did_sub) + ++sub_nlines; ++ vim_free(new_start); /* for when substitute was cancelled */ + vim_free(sub_firstline); /* free the copy of the original line */ + sub_firstline = NULL; + } +*** ../vim-7.2.017/src/version.c Sun Sep 14 15:57:54 2008 +--- src/version.c Sun Sep 14 21:38:25 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 18, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +55. You ask your doctor to implant a gig in your brain. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.019 b/source/ap/vim/patches/7.2.019 new file mode 100644 index 000000000..4404bca4f --- /dev/null +++ b/source/ap/vim/patches/7.2.019 @@ -0,0 +1,65 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.019 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.019 +Problem: Completion of ":noautocmd" doesn't work and exists(":noautocmd") + returns zero. (Ben Fritz) +Solution: Add "noautocmd" to the list of modifiers and commands. +Files: src/ex_cmds.h, src/ex_docmd.c + + +*** ../vim-7.2.018/src/ex_cmds.h Wed Jun 25 00:44:40 2008 +--- src/ex_cmds.h Sat Sep 13 18:37:25 2008 +*************** +*** 635,640 **** +--- 635,642 ---- + RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_noremap, "noremap", ex_map, + BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), ++ EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier, ++ NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch, + TRLBAR|SBOXOK|CMDWIN), + EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate, +*** ../vim-7.2.018/src/ex_docmd.c Sat Jul 26 16:04:39 2008 +--- src/ex_docmd.c Mon Sep 15 20:04:53 2008 +*************** +*** 2978,2983 **** +--- 2979,2985 ---- + {"keepmarks", 3, FALSE}, + {"leftabove", 5, FALSE}, + {"lockmarks", 3, FALSE}, ++ {"noautocmd", 3, FALSE}, + {"rightbelow", 6, FALSE}, + {"sandbox", 3, FALSE}, + {"silent", 3, FALSE}, +*** ../vim-7.2.018/src/version.c Sun Sep 14 21:40:26 2008 +--- src/version.c Thu Sep 18 12:39:56 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 19, + /**/ + +-- +Proof techniques #2: Proof by Oddity. + SAMPLE: To prove that horses have an infinite number of legs. +(1) Horses have an even number of legs. +(2) They have two legs in back and fore legs in front. +(3) This makes a total of six legs, which certainly is an odd number of + legs for a horse. +(4) But the only number that is both odd and even is infinity. +(5) Therefore, horses must have an infinite number of legs. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.020 b/source/ap/vim/patches/7.2.020 new file mode 100644 index 000000000..fb290407f --- /dev/null +++ b/source/ap/vim/patches/7.2.020 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.020 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.020 +Problem: Starting the GUI when the executable starts with 'k', but the KDE + version no longer exists. +Solution: Don't have "kvim" start the GUI. +Files: src/main.c + + +*** ../vim-7.2.019/src/main.c Thu Jul 24 19:34:23 2008 +--- src/main.c Sun Sep 14 13:26:10 2008 +*************** +*** 1457,1463 **** + ++initstr; + } + +! if (TOLOWER_ASC(initstr[0]) == 'g' || initstr[0] == 'k') + { + main_start_gui(); + #ifdef FEAT_GUI +--- 1458,1465 ---- + ++initstr; + } + +! /* "gvim" starts the GUI. Also accept "Gvim" for MS-Windows. */ +! if (TOLOWER_ASC(initstr[0]) == 'g') + { + main_start_gui(); + #ifdef FEAT_GUI +*** ../vim-7.2.019/src/version.c Thu Sep 18 12:43:21 2008 +--- src/version.c Thu Sep 18 20:54:10 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 20, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +90. Instead of calling you to dinner, your spouse sends e-mail. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.021 b/source/ap/vim/patches/7.2.021 new file mode 100644 index 000000000..fee0bd85c --- /dev/null +++ b/source/ap/vim/patches/7.2.021 @@ -0,0 +1,147 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.021 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.021 +Problem: When executing autocommands getting the full file name may be + slow. (David Kotchan) +Solution: Postpone calling FullName_save() until autocmd_fname is used. +Files: src/ex_docmd.c, src/fileio.c, src/globals.h + + +*** ../vim-7.2.020/src/ex_docmd.c Thu Sep 18 12:43:21 2008 +--- src/ex_docmd.c Mon Sep 15 20:04:53 2008 +*************** +*** 9542,9547 **** +--- 9569,9583 ---- + #ifdef FEAT_AUTOCMD + case SPEC_AFILE: /* file name for autocommand */ + result = autocmd_fname; ++ if (result != NULL && !autocmd_fname_full) ++ { ++ /* Still need to turn the fname into a full path. It is ++ * postponed to avoid a delay when <afile> is not used. */ ++ autocmd_fname_full = TRUE; ++ result = FullName_save(autocmd_fname, FALSE); ++ vim_free(autocmd_fname); ++ autocmd_fname = result; ++ } + if (result == NULL) + { + *errormsg = (char_u *)_("E495: no autocommand file name to substitute for \"<afile>\""); +*** ../vim-7.2.020/src/fileio.c Wed Aug 6 18:43:07 2008 +--- src/fileio.c Tue Sep 16 21:24:26 2008 +*************** +*** 8523,8528 **** +--- 8523,8529 ---- + char_u *save_sourcing_name; + linenr_T save_sourcing_lnum; + char_u *save_autocmd_fname; ++ int save_autocmd_fname_full; + int save_autocmd_bufnr; + char_u *save_autocmd_match; + int save_autocmd_busy; +*************** +*** 8601,8606 **** +--- 8602,8608 ---- + * Save the autocmd_* variables and info about the current buffer. + */ + save_autocmd_fname = autocmd_fname; ++ save_autocmd_fname_full = autocmd_fname_full; + save_autocmd_bufnr = autocmd_bufnr; + save_autocmd_match = autocmd_match; + save_autocmd_busy = autocmd_busy; +*************** +*** 8618,8631 **** + if (fname != NULL && *fname != NUL) + autocmd_fname = fname; + else if (buf != NULL) +! autocmd_fname = buf->b_fname; + else + autocmd_fname = NULL; + } + else + autocmd_fname = fname_io; + if (autocmd_fname != NULL) +! autocmd_fname = FullName_save(autocmd_fname, FALSE); + + /* + * Set the buffer number to be used for <abuf>. +--- 8620,8634 ---- + if (fname != NULL && *fname != NUL) + autocmd_fname = fname; + else if (buf != NULL) +! autocmd_fname = buf->b_ffname; + else + autocmd_fname = NULL; + } + else + autocmd_fname = fname_io; + if (autocmd_fname != NULL) +! autocmd_fname = vim_strsave(autocmd_fname); +! autocmd_fname_full = FALSE; /* call FullName_save() later */ + + /* + * Set the buffer number to be used for <abuf>. +*************** +*** 8810,8815 **** +--- 8813,8819 ---- + sourcing_lnum = save_sourcing_lnum; + vim_free(autocmd_fname); + autocmd_fname = save_autocmd_fname; ++ autocmd_fname_full = save_autocmd_fname_full; + autocmd_bufnr = save_autocmd_bufnr; + autocmd_match = save_autocmd_match; + #ifdef FEAT_EVAL +*************** +*** 8918,8924 **** + { + apc->curpat = NULL; + +! /* only use a pattern when it has not been removed, has commands and + * the group matches. For buffer-local autocommands only check the + * buffer number. */ + if (ap->pat != NULL && ap->cmds != NULL +--- 8922,8928 ---- + { + apc->curpat = NULL; + +! /* Only use a pattern when it has not been removed, has commands and + * the group matches. For buffer-local autocommands only check the + * buffer number. */ + if (ap->pat != NULL && ap->cmds != NULL +*** ../vim-7.2.020/src/globals.h Sat Jul 26 16:04:49 2008 +--- src/globals.h Mon Sep 15 19:59:28 2008 +*************** +*** 1022,1027 **** +--- 1022,1028 ---- + #endif + #ifdef FEAT_AUTOCMD + EXTERN char_u *autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */ ++ EXTERN int autocmd_fname_full; /* autocmd_fname is full path */ + EXTERN int autocmd_bufnr INIT(= 0); /* fnum for <abuf> on cmdline */ + EXTERN char_u *autocmd_match INIT(= NULL); /* name for <amatch> on cmdline */ + EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ +*** ../vim-7.2.020/src/version.c Thu Sep 18 20:55:19 2008 +--- src/version.c Thu Sep 18 21:24:30 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 21, + /**/ + +-- +From "know your smileys": + :----} You lie like Pinocchio + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.022 b/source/ap/vim/patches/7.2.022 new file mode 100644 index 000000000..392773523 --- /dev/null +++ b/source/ap/vim/patches/7.2.022 @@ -0,0 +1,140 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.022 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.022 (extra) +Problem: Testing is not possible when compiling with MingW. +Solution: Add a MingW specific test Makefile. (Bill McCarthy) +Files: Filelist, src/testdir/Make_ming.mak + + +*** ../vim-7.2.021/Filelist Sun Jul 13 19:33:31 2008 +--- Filelist Sun Sep 14 21:47:01 2008 +*************** +*** 285,290 **** +--- 285,291 ---- + src/proto/os_win32.pro \ + src/proto/os_mswin.pro \ + src/testdir/Make_dos.mak \ ++ src/testdir/Make_ming.mak \ + src/testdir/dos.vim \ + src/uninstal.c \ + src/vim.def \ +*** ../vim-7.2.021/src/testdir/Make_ming.mak Sat Sep 20 16:25:06 2008 +--- src/testdir/Make_ming.mak Sat Sep 20 16:25:58 2008 +*************** +*** 0 **** +--- 1,91 ---- ++ # Makefile to run tests for Vim, on Dos-like machines ++ # with sh.exe or zsh.exe in the path or not. ++ # ++ # Author: Bill McCarthy ++ # ++ # Note that test54 has been removed until it is fixed. ++ # ++ # Requires a set of Unix tools: echo, diff, etc. ++ ++ ifneq (sh.exe, $(SHELL)) ++ DEL = rm -f ++ MV = mv ++ CP = cp ++ DIRSLASH = / ++ else ++ DEL = del ++ MV = rename ++ CP = copy ++ DIRSLASH = \\ ++ endif ++ ++ VIMPROG = ..$(DIRSLASH)vim ++ ++ # Omitted: ++ # test2 "\\tmp" doesn't work. ++ # test10 'errorformat' is different ++ # test12 can't unlink a swap file ++ # test25 uses symbolic link ++ # test27 can't edit file with "*" in file name ++ # test31 16 bit version runs out of memory... ++ ++ SCRIPTS16 = test1.out test19.out test20.out test22.out \ ++ test23.out test24.out test28.out test29.out \ ++ test35.out test36.out test43.out \ ++ test44.out test45.out test46.out test47.out \ ++ test48.out test51.out test53.out \ ++ test55.out test56.out test57.out test58.out test59.out \ ++ test60.out test61.out test62.out test63.out test64.out ++ ++ # Had to remove test54 which doesn't work yet. ++ # test54.out ++ ++ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \ ++ test8.out test9.out test11.out test13.out test14.out \ ++ test15.out test17.out test18.out test21.out test26.out \ ++ test30.out test31.out test32.out test33.out test34.out \ ++ test37.out test38.out test39.out test40.out test41.out \ ++ test42.out test52.out test65.out ++ ++ SCRIPTS32 = test50.out ++ ++ SCRIPTS_GUI = test16.out ++ ++ .SUFFIXES: .in .out ++ ++ vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32) ++ echo ALL DONE ++ ++ nongui: fixff $(SCRIPTS16) $(SCRIPTS) ++ echo ALL DONE ++ ++ small: ++ echo ALL DONE ++ ++ gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) ++ echo ALL DONE ++ ++ win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) ++ echo ALL DONE ++ ++ fixff: ++ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok ++ ++ clean: ++ -$(DEL) *.out ++ -$(DEL) test.ok ++ -$(DEL) small.vim ++ -$(DEL) tiny.vim ++ -$(DEL) mbyte.vim ++ -$(DEL) X* ++ -$(DEL) viminfo ++ ++ .in.out: ++ $(CP) $*.ok test.ok ++ $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in ++ diff test.out $*.ok ++ -$(DEL) $*.out ++ $(MV) test.out $*.out ++ -$(DEL) X* ++ -$(DEL) test.ok ++ -$(DEL) viminfo +*** ../vim-7.2.021/src/version.c Thu Sep 18 21:29:07 2008 +--- src/version.c Sat Sep 20 16:25:16 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 22, + /**/ + +-- +Where do you want to crash today? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.023 b/source/ap/vim/patches/7.2.023 new file mode 100644 index 000000000..0f6ad1e12 --- /dev/null +++ b/source/ap/vim/patches/7.2.023 @@ -0,0 +1,65 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.023 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.023 +Problem: 'cursorcolumn' is in the wrong place in a closed fold when the + display is shifted left. (Gary Johnson) +Solution: Subtract w_skipcol or w_leftcol when needed. +Files: src/screen.c + + +*** ../vim-7.2.022/src/screen.c Thu Jul 24 20:29:09 2008 +--- src/screen.c Fri Sep 26 21:23:06 2008 +*************** +*** 2439,2447 **** + + #ifdef FEAT_SYN_HL + /* Show 'cursorcolumn' in the fold line. */ +! if (wp->w_p_cuc && (int)wp->w_virtcol + txtcol < W_WIDTH(wp)) +! ScreenAttrs[off + wp->w_virtcol + txtcol] = hl_combine_attr( +! ScreenAttrs[off + wp->w_virtcol + txtcol], hl_attr(HLF_CUC)); + #endif + + SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp), +--- 2439,2455 ---- + + #ifdef FEAT_SYN_HL + /* Show 'cursorcolumn' in the fold line. */ +! if (wp->w_p_cuc) +! { +! txtcol += wp->w_virtcol; +! if (wp->w_p_wrap) +! txtcol -= wp->w_skipcol; +! else +! txtcol -= wp->w_leftcol; +! if (txtcol >= 0 && txtcol < W_WIDTH(wp)) +! ScreenAttrs[off + txtcol] = hl_combine_attr( +! ScreenAttrs[off + txtcol], hl_attr(HLF_CUC)); +! } + #endif + + SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp), +*** ../vim-7.2.022/src/version.c Sat Sep 20 16:26:10 2008 +--- src/version.c Wed Oct 1 21:07:31 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 23, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +124. You begin conversations with, "Who is your internet service provider?" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.024 b/source/ap/vim/patches/7.2.024 new file mode 100644 index 000000000..033b0a26b --- /dev/null +++ b/source/ap/vim/patches/7.2.024 @@ -0,0 +1,50 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.024 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.024 +Problem: It's possible to set 'history' to a negative value and that causes + an out-of-memory error. +Solution: Check that 'history' has a positive value. (Doug Kearns) +Files: src/option.c + + +*** ../vim-7.2.023/src/option.c Thu Jul 24 18:45:15 2008 +--- src/option.c Fri Sep 26 22:20:20 2008 +*************** +*** 7974,7979 **** +--- 7974,7984 ---- + else /* curwin->w_p_scr > curwin->w_height */ + curwin->w_p_scr = curwin->w_height; + } ++ if (p_hi < 0) ++ { ++ errmsg = e_positive; ++ p_hi = 0; ++ } + if (p_report < 0) + { + errmsg = e_positive; +*** ../vim-7.2.023/src/version.c Wed Oct 1 21:09:02 2008 +--- src/version.c Thu Oct 2 22:47:22 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 24, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +127. You bring your laptop and cellular phone to church. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.025 b/source/ap/vim/patches/7.2.025 new file mode 100644 index 000000000..dab2cc867 --- /dev/null +++ b/source/ap/vim/patches/7.2.025 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.025 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.025 +Problem: When a CursorHold event invokes system() it is retriggered over + and over again. +Solution: Don't reset did_cursorhold when getting K_IGNORE. +Files: src/normal.c + + +*** ../vim-7.2.024/src/normal.c Sat Sep 6 16:44:06 2008 +--- src/normal.c Sat Sep 27 13:03:34 2008 +*************** +*** 1132,1138 **** + out_flush(); + #endif + #ifdef FEAT_AUTOCMD +! did_cursorhold = FALSE; + #endif + + State = NORMAL; +--- 1132,1139 ---- + out_flush(); + #endif + #ifdef FEAT_AUTOCMD +! if (ca.cmdchar != K_IGNORE) +! did_cursorhold = FALSE; + #endif + + State = NORMAL; +*** ../vim-7.2.024/src/version.c Thu Oct 2 22:48:01 2008 +--- src/version.c Thu Oct 2 22:54:41 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 25, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +128. You can access the Net -- via your portable and cellular phone. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.026 b/source/ap/vim/patches/7.2.026 new file mode 100644 index 000000000..ec8b1c7b1 --- /dev/null +++ b/source/ap/vim/patches/7.2.026 @@ -0,0 +1,105 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.026 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.026 (after 7.2.010) +Problem: "K" doesn't use the length of the identifier but uses the rest of + the line. +Solution: Copy the desired number of characters first. +Files: src/normal.c + + +*** ../vim-7.2.025/src/normal.c Thu Oct 2 22:55:17 2008 +--- src/normal.c Sat Nov 1 13:41:03 2008 +*************** +*** 183,188 **** +--- 183,190 ---- + static void nv_cursorhold __ARGS((cmdarg_T *cap)); + #endif + ++ static char *e_noident = N_("E349: No identifier under cursor"); ++ + /* + * Function to be called for a Normal or Visual mode command. + * The argument is a cmdarg_T. +*************** +*** 3510,3516 **** + if (find_type & FIND_STRING) + EMSG(_("E348: No string under cursor")); + else +! EMSG(_("E349: No identifier under cursor")); + return 0; + } + ptr += col; +--- 3512,3518 ---- + if (find_type & FIND_STRING) + EMSG(_("E348: No string under cursor")); + else +! EMSG(_(e_noident)); + return 0; + } + ptr += col; +*************** +*** 5472,5479 **** + { + /* An external command will probably use an argument starting + * with "-" as an option. To avoid trouble we skip the "-". */ +! while (*ptr == '-') + ++ptr; + + /* When a count is given, turn it into a range. Is this + * really what we want? */ +--- 5474,5490 ---- + { + /* An external command will probably use an argument starting + * with "-" as an option. To avoid trouble we skip the "-". */ +! while (*ptr == '-' && n > 0) +! { + ++ptr; ++ --n; ++ } ++ if (n == 0) ++ { ++ EMSG(_(e_noident)); /* found dashes only */ ++ vim_free(buf); ++ return; ++ } + + /* When a count is given, turn it into a range. Is this + * really what we want? */ +*************** +*** 5520,5526 **** +--- 5531,5539 ---- + if (cmdchar == 'K' && !kp_help) + { + /* Escape the argument properly for a shell command */ ++ ptr = vim_strnsave(ptr, n); + p = vim_strsave_shellescape(ptr, TRUE); ++ vim_free(ptr); + if (p == NULL) + { + vim_free(buf); +*** ../vim-7.2.025/src/version.c Thu Oct 2 22:55:17 2008 +--- src/version.c Sat Nov 1 13:50:53 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 26, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +161. You get up before the sun rises to check your e-mail, and you + find yourself in the very same chair long after the sun has set. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.027 b/source/ap/vim/patches/7.2.027 new file mode 100644 index 000000000..59d708d28 --- /dev/null +++ b/source/ap/vim/patches/7.2.027 @@ -0,0 +1,98 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.027 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.027 +Problem: Can use cscope commands in the sandbox. +Solution: Disallow them, they might not be safe. +Files: src/ex_cmds.h + + +*** ../vim-7.2.026/src/ex_cmds.h Thu Sep 18 12:43:21 2008 +--- src/ex_cmds.h Thu Sep 18 22:18:14 2008 +*************** +*** 278,284 **** + EX(CMD_crewind, "crewind", ex_cc, + RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cscope, "cscope", do_cscope, +! EXTRA|NOTRLCOM|SBOXOK|XFILE), + EX(CMD_cstag, "cstag", do_cstag, + BANG|TRLBAR|WORD1), + EX(CMD_cunmap, "cunmap", ex_unmap, +--- 278,284 ---- + EX(CMD_crewind, "crewind", ex_cc, + RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cscope, "cscope", do_cscope, +! EXTRA|NOTRLCOM|XFILE), + EX(CMD_cstag, "cstag", do_cstag, + BANG|TRLBAR|WORD1), + EX(CMD_cunmap, "cunmap", ex_unmap, +*************** +*** 506,512 **** + EX(CMD_lclose, "lclose", ex_cclose, + RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_lcscope, "lcscope", do_cscope, +! EXTRA|NOTRLCOM|SBOXOK|XFILE), + EX(CMD_left, "left", ex_align, + TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), + EX(CMD_leftabove, "leftabove", ex_wrongmodifier, +--- 506,512 ---- + EX(CMD_lclose, "lclose", ex_cclose, + RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_lcscope, "lcscope", do_cscope, +! EXTRA|NOTRLCOM|XFILE), + EX(CMD_left, "left", ex_align, + TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), + EX(CMD_leftabove, "leftabove", ex_wrongmodifier, +*************** +*** 653,658 **** +--- 653,660 ---- + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_open, "open", ex_open, + RANGE|EXTRA), ++ EX(CMD_oldfiles, "oldfiles", ex_oldfiles, ++ BANG|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_omap, "omap", ex_map, + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_omapclear, "omapclear", ex_mapclear, +*************** +*** 804,810 **** + EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, + WORD1|TRLBAR|CMDWIN), + EX(CMD_scscope, "scscope", do_scscope, +! EXTRA|NOTRLCOM|SBOXOK), + EX(CMD_set, "set", ex_set, + TRLBAR|EXTRA|CMDWIN|SBOXOK), + EX(CMD_setfiletype, "setfiletype", ex_setfiletype, +--- 806,812 ---- + EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, + WORD1|TRLBAR|CMDWIN), + EX(CMD_scscope, "scscope", do_scscope, +! EXTRA|NOTRLCOM), + EX(CMD_set, "set", ex_set, + TRLBAR|EXTRA|CMDWIN|SBOXOK), + EX(CMD_setfiletype, "setfiletype", ex_setfiletype, +*** ../vim-7.2.026/src/version.c Sat Nov 1 13:51:57 2008 +--- src/version.c Thu Nov 6 10:21:21 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 27, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +179. You wonder why your household garbage can doesn't have an + "empty recycle bin" button. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.028 b/source/ap/vim/patches/7.2.028 new file mode 100644 index 000000000..4f148e96a --- /dev/null +++ b/source/ap/vim/patches/7.2.028 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.028 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.028 +Problem: Confusing error message for missing (). +Solution: Change "braces" to "parentheses". (Gary Johnson) +Files: src/eval.c + + +*** ../vim-7.2.027/src/eval.c Wed Sep 10 15:38:13 2008 +--- src/eval.c Tue Sep 30 21:43:38 2008 +*************** +*** 3287,3293 **** + + if (*startarg != '(') + { +! EMSG2(_("E107: Missing braces: %s"), eap->arg); + goto end; + } + +--- 3293,3299 ---- + + if (*startarg != '(') + { +! EMSG2(_("E107: Missing parentheses: %s"), eap->arg); + goto end; + } + +*** ../vim-7.2.027/src/version.c Thu Nov 6 10:23:03 2008 +--- src/version.c Thu Nov 6 11:02:51 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 28, + /**/ + +-- +Wizards had always known that the act of observation changed the thing that +was observed, and sometimes forgot that it also changed the observer too. + Terry Pratchett - Interesting times + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.029 b/source/ap/vim/patches/7.2.029 new file mode 100644 index 000000000..56e847a76 --- /dev/null +++ b/source/ap/vim/patches/7.2.029 @@ -0,0 +1,44 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.029 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.029 +Problem: No completion for ":doautoall". +Solution: Complete ":doautoall" like ":doautocmd". (Doug Kearns) +Files: src/ex_docmd.c + + +*** ../vim-7.2.028/src/ex_docmd.c Thu Sep 18 21:29:07 2008 +--- src/ex_docmd.c Mon Nov 3 21:21:17 2008 +*************** +*** 3609,3614 **** +--- 3610,3616 ---- + return set_context_in_autocmd(xp, arg, FALSE); + + case CMD_doautocmd: ++ case CMD_doautoall: + return set_context_in_autocmd(xp, arg, TRUE); + #endif + case CMD_set: +*** ../vim-7.2.028/src/version.c Thu Nov 6 11:04:50 2008 +--- src/version.c Thu Nov 6 17:14:58 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 29, + /**/ + +-- +Press any key to continue, press any other key to quit. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.030 b/source/ap/vim/patches/7.2.030 new file mode 100644 index 000000000..310207ed3 --- /dev/null +++ b/source/ap/vim/patches/7.2.030 @@ -0,0 +1,51 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.030 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.030 (after 7.2.027) +Problem: Can't compile. +Solution: Remove prematurely added ex_oldfiles. +Files: src/ex_cmds.h + + +*** ../vim-7.2.029/src/ex_cmds.h Thu Nov 6 10:23:03 2008 +--- src/ex_cmds.h Thu Nov 6 20:45:07 2008 +*************** +*** 653,660 **** + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_open, "open", ex_open, + RANGE|EXTRA), +- EX(CMD_oldfiles, "oldfiles", ex_oldfiles, +- BANG|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_omap, "omap", ex_map, + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_omapclear, "omapclear", ex_mapclear, +--- 653,658 ---- +*** ../vim-7.2.029/src/version.c Thu Nov 6 17:16:06 2008 +--- src/version.c Thu Nov 6 20:46:11 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 30, + /**/ + +-- +% cat /usr/include/sys/errno.h +#define EPERM 1 /* Operation not permitted */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +[...] +#define EMACS 666 /* Too many macros */ +% + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.031 b/source/ap/vim/patches/7.2.031 new file mode 100644 index 000000000..4b2bca700 --- /dev/null +++ b/source/ap/vim/patches/7.2.031 @@ -0,0 +1,1281 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.031 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.031 +Problem: Information in the viminfo file about previously edited files is + not available to the user. There is no way to get a complete list + of files edited in previous Vim sessions. +Solution: Add v:oldfiles and fill it with the list of old file names when + first reading the viminfo file. Add the ":oldfiles" command, + ":browse oldfiles" and the "#<123" special file name. Increase + the default value for 'viminfo' from '20 to '100. +Files: runtime/doc/cmdline.txt, runtime/doc/eval.txt, + runtime/doc/starting.txt, runtime/doc/usr_21.txt, src/eval.c, + src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, src/feature.h, + src/fileio.c, src/main.c, src/mark.c, src/misc1.c, + src/proto/eval.pro, src/proto/ex_cmds.pro, src/proto/mark.pro, + src/option.c, src/structs.h, src/vim.h + + +*** ../vim-7.2.030/runtime/doc/cmdline.txt Sat Aug 9 19:36:46 2008 +--- runtime/doc/cmdline.txt Thu Sep 18 22:55:27 2008 +*************** +*** 1,4 **** +! *cmdline.txt* For Vim version 7.2. Last change: 2008 Jul 29 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 157,162 **** +--- 157,167 ---- + (doesn't work at the expression prompt; some + things such as changing the buffer or current + window are not allowed to avoid side effects) ++ When the result is a |List| the items are used ++ as lines. They can have line breaks inside ++ too. ++ When the result is a Float it's automatically ++ converted to a String. + See |registers| about registers. {not in Vi} + Implementation detail: When using the |expression| register + and invoking setcmdpos(), this sets the position before +*************** +*** 730,748 **** + In Ex commands, at places where a file name can be used, the following + characters have a special meaning. These can also be used in the expression + function expand() |expand()|. +! % is replaced with the current file name *:_%* +! # is replaced with the alternate file name *:_#* + #n (where n is a number) is replaced with the file name of +! buffer n. "#0" is the same as "#" +! ## is replaced with all names in the argument list *:_##* + concatenated, separated by spaces. Each space in a name + is preceded with a backslash. +! Note that these give the file name as it was typed. If an absolute path is +! needed (when using the file name from a different directory), you need to add +! ":p". See |filename-modifiers|. + Note that backslashes are inserted before spaces, so that the command will + correctly interpret the file name. But this doesn't happen for shell +! commands. For those you probably have to use quotes: > + :!ls "%" + :r !spell "%" + +--- 735,763 ---- + In Ex commands, at places where a file name can be used, the following + characters have a special meaning. These can also be used in the expression + function expand() |expand()|. +! % Is replaced with the current file name. *:_%* *c_%* +! # Is replaced with the alternate file name. *:_#* *c_#* + #n (where n is a number) is replaced with the file name of +! buffer n. "#0" is the same as "#". +! ## Is replaced with all names in the argument list *:_##* *c_##* + concatenated, separated by spaces. Each space in a name + is preceded with a backslash. +! #<n (where n is a number > 0) is replaced with old *:_#<* *c_#<* +! file name n. See |:oldfiles| or |v:oldfiles| to get the +! number. *E809* +! {only when compiled with the +eval and +viminfo features} +! +! Note that these, except "#<n", give the file name as it was typed. If an +! absolute path is needed (when using the file name from a different directory), +! you need to add ":p". See |filename-modifiers|. +! +! The "#<n" item returns an absolute path, but it will start with "~/" for files +! below your home directory. +! + Note that backslashes are inserted before spaces, so that the command will + correctly interpret the file name. But this doesn't happen for shell +! commands. For those you probably have to use quotes (this fails for files +! that contain a quote and wildcards): > + :!ls "%" + :r !spell "%" + +*** ../vim-7.2.030/runtime/doc/eval.txt Sat Aug 9 19:36:47 2008 +--- runtime/doc/eval.txt Sun Nov 2 14:25:38 2008 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.2. Last change: 2008 Aug 09 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 02 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1484,1489 **** +--- 1484,1500 ---- + This is the screen column number, like with |virtcol()|. The + value is zero when there was no mouse button click. + ++ *v:oldfiles* *oldfiles-variable* ++ v:oldfiles List of file names that is loaded from the |viminfo| file on ++ startup. These are the files that Vim remembers marks for. ++ The length of the List is limited by the ' argument of the ++ 'viminfo' option (default is 100). ++ Also see |:oldfiles| and |c_#<|. ++ The List can be modified, but this has no effect on what is ++ stored in the |viminfo| file later. If you use values other ++ than String this will cause trouble. ++ {only when compiled with the +viminfo feature} ++ + *v:operator* *operator-variable* + v:operator The last operator given in Normal mode. This is a single + character except for commands starting with <g> or <z>, +*** ../vim-7.2.030/runtime/doc/starting.txt Sat Aug 9 19:36:52 2008 +--- runtime/doc/starting.txt Sun Nov 9 12:12:19 2008 +*************** +*** 1,4 **** +! *starting.txt* For Vim version 7.2. Last change: 2008 Jun 21 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *starting.txt* For Vim version 7.2. Last change: 2008 Nov 09 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1337,1344 **** + *viminfo-read* + When Vim is started and the 'viminfo' option is non-empty, the contents of + the viminfo file are read and the info can be used in the appropriate places. +! The marks are not read in at startup (but file marks are). See +! |initialization| for how to set the 'viminfo' option upon startup. + + *viminfo-write* + When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo +--- 1335,1343 ---- + *viminfo-read* + When Vim is started and the 'viminfo' option is non-empty, the contents of + the viminfo file are read and the info can be used in the appropriate places. +! The |v:oldfiles| variable is filled. The marks are not read in at startup +! (but file marks are). See |initialization| for how to set the 'viminfo' +! option upon startup. + + *viminfo-write* + When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo +*************** +*** 1372,1377 **** +--- 1371,1378 ---- + that start with any string given with the "r" flag in 'viminfo'. This can be + used to avoid saving marks for files on removable media (for MS-DOS you would + use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:"). ++ The |v:oldfiles| variable is filled with the file names that the viminfo file ++ has marks for. + + *viminfo-file-marks* + Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The +*************** +*** 1463,1470 **** + *:rv* *:rviminfo* *E195* + :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above). + If [!] is given, then any information that is +! already set (registers, marks, etc.) will be +! overwritten. {not in Vi} + + *:wv* *:wviminfo* *E137* *E138* *E574* + :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above). +--- 1464,1471 ---- + *:rv* *:rviminfo* *E195* + :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above). + If [!] is given, then any information that is +! already set (registers, marks, |v:oldfiles|, etc.) +! will be overwritten {not in Vi} + + *:wv* *:wviminfo* *E137* *E138* *E574* + :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above). +*************** +*** 1479,1482 **** +--- 1480,1499 ---- + the .viminfo file. + {not in Vi} + ++ *:ol* *:oldfiles* ++ :ol[dfiles] List the files that have marks stored in the viminfo ++ file. This list is read on startup and only changes ++ afterwards with ":rviminfo!". Also see |v:oldfiles|. ++ The number can be used with |c_#<|. ++ {not in Vi, only when compiled with the +eval feature} ++ ++ :bro[wse] ol[dfiles][!] ++ List file names as with |:oldfiles|, and then prompt ++ for a number. When the number is valid that file from ++ the list is edited. ++ If you get the |press-enter| prompt you can press "q" ++ and still get the prompt to enter a file number. ++ Use ! to abondon a modified buffer. |abandon| ++ {not when compiled with tiny or small features} ++ + vim:tw=78:ts=8:ft=help:norl: +*** ../vim-7.2.030/runtime/doc/usr_21.txt Sat Aug 9 19:36:53 2008 +--- runtime/doc/usr_21.txt Sun Nov 9 12:14:10 2008 +*************** +*** 1,4 **** +! *usr_21.txt* For Vim version 7.2. Last change: 2007 May 01 + + VIM USER MANUAL - by Bram Moolenaar + +--- 1,4 ---- +! *usr_21.txt* For Vim version 7.2. Last change: 2008 Nov 09 + + VIM USER MANUAL - by Bram Moolenaar + +*************** +*** 153,159 **** + to be lost. Each item can be remembered only once. + + +! GETTING BACK TO WHERE YOU WERE + + You are halfway editing a file and it's time to leave for holidays. You exit + Vim and go enjoy yourselves, forgetting all about your work. After a couple +--- 153,159 ---- + to be lost. Each item can be remembered only once. + + +! GETTING BACK TO WHERE YOU STOPPED VIM + + You are halfway editing a file and it's time to leave for holidays. You exit + Vim and go enjoy yourselves, forgetting all about your work. After a couple +*************** +*** 168,173 **** +--- 168,215 ---- + The |:marks| command is useful to find out where '0 to '9 will take you. + + ++ GETTING BACK TO SOME FILE ++ ++ If you want to go back to a file that you edited recently, but not when ++ exiting Vim, there is a slightly more complicated way. You can see a list of ++ files by typing the command: > ++ ++ :oldfiles ++ < 1: ~/.viminfo ~ ++ 2: ~/text/resume.txt ~ ++ 3: /tmp/draft ~ ++ ++ Now you would like to edit the second file, which is in the list preceded by ++ "2:". You type: > ++ ++ :e #<2 ++ ++ Instead of ":e" you can use any command that has a file name argument, the ++ "#<2" item works in the same place as "%" (current file name) and "#" ++ (alternate file name). So you can also split the window to edit the third ++ file: > ++ ++ :split #<3 ++ ++ That #<123 thing is a bit complicated when you just want to edit a file. ++ Fortunately there is a simpler way: > ++ ++ :browse oldfiles ++ < 1: ~/.viminfo ~ ++ 2: ~/text/resume.txt ~ ++ 3: /tmp/draft ~ ++ -- More -- ++ ++ You get the same list of files as with |:oldfiles|. If you want to edit ++ "resume.txt" first press "q" to stop the listing. You will get a prompt: ++ ++ Type number and <Enter> (empty cancels): ~ ++ ++ Type "2" and press <Enter> to edit the second file. ++ ++ More info at |:oldfiles|, |v:oldfiles| and |c_#<|. ++ ++ + MOVE INFO FROM ONE VIM TO ANOTHER + + You can use the ":wviminfo" and ":rviminfo" commands to save and restore the +*** ../vim-7.2.030/src/eval.c Thu Nov 6 11:04:50 2008 +--- src/eval.c Sun Nov 9 11:59:39 2008 +*************** +*** 348,353 **** +--- 348,354 ---- + {VV_NAME("mouse_col", VAR_NUMBER), 0}, + {VV_NAME("operator", VAR_STRING), VV_RO}, + {VV_NAME("searchforward", VAR_NUMBER), 0}, ++ {VV_NAME("oldfiles", VAR_LIST), 0}, + }; + + /* shorthand */ +*************** +*** 355,360 **** +--- 356,362 ---- + #define vv_nr vv_di.di_tv.vval.v_number + #define vv_float vv_di.di_tv.vval.v_float + #define vv_str vv_di.di_tv.vval.v_string ++ #define vv_list vv_di.di_tv.vval.v_list + #define vv_tv vv_di.di_tv + + /* +*************** +*** 426,432 **** + static long list_idx_of_item __ARGS((list_T *l, listitem_T *item)); + static void list_append __ARGS((list_T *l, listitem_T *item)); + static int list_append_tv __ARGS((list_T *l, typval_T *tv)); +- static int list_append_string __ARGS((list_T *l, char_u *str, int len)); + static int list_append_number __ARGS((list_T *l, varnumber_T n)); + static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item)); + static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef)); +--- 428,433 ---- +*************** +*** 845,852 **** + p = &vimvars[i]; + if (p->vv_di.di_tv.v_type == VAR_STRING) + { +! vim_free(p->vv_di.di_tv.vval.v_string); +! p->vv_di.di_tv.vval.v_string = NULL; + } + } + hash_clear(&vimvarht); +--- 846,858 ---- + p = &vimvars[i]; + if (p->vv_di.di_tv.v_type == VAR_STRING) + { +! vim_free(p->vv_string); +! p->vv_string = NULL; +! } +! else if (p->vv_di.di_tv.v_type == VAR_LIST) +! { +! list_unref(p->vv_list); +! p->vv_list = NULL; + } + } + hash_clear(&vimvarht); +*************** +*** 6057,6062 **** +--- 6063,6087 ---- + } + + /* ++ * Get list item "l[idx - 1]" as a string. Returns NULL for failure. ++ */ ++ char_u * ++ list_find_str(l, idx) ++ list_T *l; ++ long idx; ++ { ++ listitem_T *li; ++ ++ li = list_find(l, idx - 1); ++ if (li == NULL) ++ { ++ EMSGN(_(e_listidx), idx); ++ return NULL; ++ } ++ return get_tv_string(&li->li_tv); ++ } ++ ++ /* + * Locate "item" list "l" and return its index. + * Returns -1 when "item" is not in the list. + */ +*************** +*** 6147,6153 **** + * When "len" >= 0 use "str[len]". + * Returns FAIL when out of memory. + */ +! static int + list_append_string(l, str, len) + list_T *l; + char_u *str; +--- 6172,6178 ---- + * When "len" >= 0 use "str[len]". + * Returns FAIL when out of memory. + */ +! int + list_append_string(l, str, len) + list_T *l; + char_u *str; +*************** +*** 6507,6512 **** +--- 6532,6540 ---- + set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); + } + ++ /* v: vars */ ++ set_ref_in_ht(&vimvarht, copyID); ++ + /* + * 2. Go through the list of dicts and free items without the copyID. + */ +*************** +*** 6597,6603 **** + { + case VAR_DICT: + dd = tv->vval.v_dict; +! if (dd->dv_copyID != copyID) + { + /* Didn't see this dict yet. */ + dd->dv_copyID = copyID; +--- 6625,6631 ---- + { + case VAR_DICT: + dd = tv->vval.v_dict; +! if (dd != NULL && dd->dv_copyID != copyID) + { + /* Didn't see this dict yet. */ + dd->dv_copyID = copyID; +*************** +*** 6607,6613 **** + + case VAR_LIST: + ll = tv->vval.v_list; +! if (ll->lv_copyID != copyID) + { + /* Didn't see this list yet. */ + ll->lv_copyID = copyID; +--- 6635,6641 ---- + + case VAR_LIST: + ll = tv->vval.v_list; +! if (ll != NULL && ll->lv_copyID != copyID) + { + /* Didn't see this list yet. */ + ll->lv_copyID = copyID; +*************** +*** 18106,18111 **** +--- 18134,18150 ---- + } + + /* ++ * Get List v: variable value. Caller must take care of reference count when ++ * needed. ++ */ ++ list_T * ++ get_vim_var_list(idx) ++ int idx; ++ { ++ return vimvars[idx].vv_list; ++ } ++ ++ /* + * Set v:count, v:count1 and v:prevcount. + */ + void +*************** +*** 18141,18146 **** +--- 18180,18199 ---- + } + + /* ++ * Set List v: variable to "val". ++ */ ++ void ++ set_vim_var_list(idx, val) ++ int idx; ++ list_T *val; ++ { ++ list_unref(vimvars[idx].vv_list); ++ vimvars[idx].vv_list = val; ++ if (val != NULL) ++ ++val->lv_refcount; ++ } ++ ++ /* + * Set v:register if needed. + */ + void +*************** +*** 21900,21905 **** +--- 21953,22014 ---- + } + } + ++ /* ++ * List v:oldfiles in a nice way. ++ */ ++ /*ARGSUSED*/ ++ void ++ ex_oldfiles(eap) ++ exarg_T *eap; ++ { ++ list_T *l = vimvars[VV_OLDFILES].vv_list; ++ listitem_T *li; ++ int nr = 0; ++ ++ if (l == NULL) ++ msg((char_u *)_("No old files")); ++ else ++ { ++ msg_start(); ++ msg_scroll = TRUE; ++ for (li = l->lv_first; li != NULL && !got_int; li = li->li_next) ++ { ++ msg_outnum((long)++nr); ++ MSG_PUTS(": "); ++ msg_outtrans(get_tv_string(&li->li_tv)); ++ msg_putchar('\n'); ++ out_flush(); /* output one line at a time */ ++ ui_breakcheck(); ++ } ++ /* Assume "got_int" was set to truncate the listing. */ ++ got_int = FALSE; ++ ++ #ifdef FEAT_BROWSE_CMD ++ if (cmdmod.browse) ++ { ++ quit_more = FALSE; ++ nr = prompt_for_number(FALSE); ++ msg_starthere(); ++ if (nr > 0) ++ { ++ char_u *p = list_find_str(get_vim_var_list(VV_OLDFILES), ++ (long)nr); ++ ++ if (p != NULL) ++ { ++ p = expand_env_save(p); ++ eap->arg = p; ++ eap->cmdidx = CMD_edit; ++ cmdmod.browse = FALSE; ++ do_exedit(eap, NULL); ++ vim_free(p); ++ } ++ } ++ } ++ #endif ++ } ++ } ++ + #endif /* FEAT_EVAL */ + + +*** ../vim-7.2.030/src/ex_cmds.c Sun Sep 14 21:40:26 2008 +--- src/ex_cmds.c Sun Sep 14 13:45:03 2008 +*************** +*** 24,30 **** + static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out)); + #ifdef FEAT_VIMINFO + static char_u *viminfo_filename __ARGS((char_u *)); +! static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int want_info, int want_marks, int force_read)); + static int viminfo_encoding __ARGS((vir_T *virp)); + static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing)); + #endif +--- 24,30 ---- + static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out)); + #ifdef FEAT_VIMINFO + static char_u *viminfo_filename __ARGS((char_u *)); +! static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int flags)); + static int viminfo_encoding __ARGS((vir_T *virp)); + static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing)); + #endif +*************** +*** 1676,1689 **** + + /* + * read_viminfo() -- Read the viminfo file. Registers etc. which are already +! * set are not over-written unless force is TRUE. -- webb + */ + int +! read_viminfo(file, want_info, want_marks, forceit) +! char_u *file; +! int want_info; +! int want_marks; +! int forceit; + { + FILE *fp; + char_u *fname; +--- 1676,1687 ---- + + /* + * read_viminfo() -- Read the viminfo file. Registers etc. which are already +! * set are not over-written unless "flags" includes VIF_FORCEIT. -- webb + */ + int +! read_viminfo(file, flags) +! char_u *file; /* file name or NULL to use default name */ +! int flags; /* VIF_WANT_INFO et al. */ + { + FILE *fp; + char_u *fname; +*************** +*** 1691,1697 **** + if (no_viminfo()) + return FAIL; + +! fname = viminfo_filename(file); /* may set to default if NULL */ + if (fname == NULL) + return FAIL; + fp = mch_fopen((char *)fname, READBIN); +--- 1689,1695 ---- + if (no_viminfo()) + return FAIL; + +! fname = viminfo_filename(file); /* get file name in allocated buffer */ + if (fname == NULL) + return FAIL; + fp = mch_fopen((char *)fname, READBIN); +*************** +*** 1701,1708 **** + verbose_enter(); + smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"), + fname, +! want_info ? _(" info") : "", +! want_marks ? _(" marks") : "", + fp == NULL ? _(" FAILED") : ""); + verbose_leave(); + } +--- 1699,1707 ---- + verbose_enter(); + smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"), + fname, +! (flags & VIF_WANT_INFO) ? _(" info") : "", +! (flags & VIF_WANT_MARKS) ? _(" marks") : "", +! (flags & VIF_GET_OLDFILES) ? _(" oldfiles") : "", + fp == NULL ? _(" FAILED") : ""); + verbose_leave(); + } +*************** +*** 1712,1721 **** + return FAIL; + + viminfo_errcnt = 0; +! do_viminfo(fp, NULL, want_info, want_marks, forceit); + + fclose(fp); +- + return OK; + } + +--- 1711,1719 ---- + return FAIL; + + viminfo_errcnt = 0; +! do_viminfo(fp, NULL, flags); + + fclose(fp); + return OK; + } + +*************** +*** 1968,1974 **** + } + + viminfo_errcnt = 0; +! do_viminfo(fp_in, fp_out, !forceit, !forceit, FALSE); + + fclose(fp_out); /* errors are ignored !? */ + if (fp_in != NULL) +--- 1966,1972 ---- + } + + viminfo_errcnt = 0; +! do_viminfo(fp_in, fp_out, forceit ? 0 : (VIF_WANT_INFO | VIF_WANT_MARKS)); + + fclose(fp_out); /* errors are ignored !? */ + if (fp_in != NULL) +*************** +*** 2041,2052 **** + * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo(). + */ + static void +! do_viminfo(fp_in, fp_out, want_info, want_marks, force_read) + FILE *fp_in; + FILE *fp_out; +! int want_info; +! int want_marks; +! int force_read; + { + int count = 0; + int eof = FALSE; +--- 2039,2048 ---- + * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo(). + */ + static void +! do_viminfo(fp_in, fp_out, flags) + FILE *fp_in; + FILE *fp_out; +! int flags; + { + int count = 0; + int eof = FALSE; +*************** +*** 2061,2068 **** + + if (fp_in != NULL) + { +! if (want_info) +! eof = read_viminfo_up_to_marks(&vir, force_read, fp_out != NULL); + else + /* Skip info, find start of marks */ + while (!(eof = viminfo_readline(&vir)) +--- 2057,2065 ---- + + if (fp_in != NULL) + { +! if (flags & VIF_WANT_INFO) +! eof = read_viminfo_up_to_marks(&vir, +! flags & VIF_FORCEIT, fp_out != NULL); + else + /* Skip info, find start of marks */ + while (!(eof = viminfo_readline(&vir)) +*************** +*** 2092,2099 **** + write_viminfo_bufferlist(fp_out); + count = write_viminfo_marks(fp_out); + } +! if (fp_in != NULL && want_marks) +! copy_viminfo_marks(&vir, fp_out, count, eof); + + vim_free(vir.vir_line); + #ifdef FEAT_MBYTE +--- 2089,2097 ---- + write_viminfo_bufferlist(fp_out); + count = write_viminfo_marks(fp_out); + } +! if (fp_in != NULL +! && (flags & (VIF_WANT_MARKS | VIF_GET_OLDFILES | VIF_FORCEIT))) +! copy_viminfo_marks(&vir, fp_out, count, eof, flags); + + vim_free(vir.vir_line); + #ifdef FEAT_MBYTE +*** ../vim-7.2.030/src/ex_cmds.h Thu Nov 6 20:47:00 2008 +--- src/ex_cmds.h Thu Sep 18 22:18:14 2008 +*************** +*** 653,658 **** +--- 653,660 ---- + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_open, "open", ex_open, + RANGE|EXTRA), ++ EX(CMD_oldfiles, "oldfiles", ex_oldfiles, ++ BANG|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_omap, "omap", ex_map, + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_omapclear, "omapclear", ex_mapclear, +*** ../vim-7.2.030/src/ex_docmd.c Thu Nov 6 17:16:06 2008 +--- src/ex_docmd.c Mon Nov 3 21:21:17 2008 +*************** +*** 364,369 **** +--- 364,370 ---- + # define ex_function ex_ni + # define ex_delfunction ex_ni + # define ex_return ex_ni ++ # define ex_oldfiles ex_ni + #endif + static char_u *arg_all __ARGS((void)); + #ifdef FEAT_SESSION +*************** +*** 1770,1776 **** + } + if (checkforcmd(&ea.cmd, "browse", 3)) + { +! #ifdef FEAT_BROWSE + cmdmod.browse = TRUE; + #endif + continue; +--- 1771,1777 ---- + } + if (checkforcmd(&ea.cmd, "browse", 3)) + { +! #ifdef FEAT_BROWSE_CMD + cmdmod.browse = TRUE; + #endif + continue; +*************** +*** 9508,9531 **** + break; + } + s = src + 1; + i = (int)getdigits(&s); + *usedlen = (int)(s - src); /* length of what we expand */ + +! buf = buflist_findnr(i); +! if (buf == NULL) + { +! *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'"); + return NULL; + } +! if (lnump != NULL) +! *lnump = ECMD_LAST; +! if (buf->b_fname == NULL) + { +! result = (char_u *)""; +! valid = 0; /* Must have ":p:h" to be valid */ + } +- else +- result = buf->b_fname; + break; + + #ifdef FEAT_SEARCHPATH +--- 9509,9558 ---- + break; + } + s = src + 1; ++ if (*s == '<') /* "#<99" uses v:oldfiles */ ++ ++s; + i = (int)getdigits(&s); + *usedlen = (int)(s - src); /* length of what we expand */ + +! if (src[1] == '<') + { +! if (*usedlen < 2) +! { +! /* Should we give an error message for #<text? */ +! *usedlen = 1; +! return NULL; +! } +! #ifdef FEAT_EVAL +! result = list_find_str(get_vim_var_list(VV_OLDFILES), +! (long)i); +! if (result == NULL) +! { +! *errormsg = (char_u *)""; +! return NULL; +! } +! #else +! *errormsg = (char_u *)_("E809: #< is not available without the +eval feature"); + return NULL; ++ #endif + } +! else + { +! buf = buflist_findnr(i); +! if (buf == NULL) +! { +! *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'"); +! return NULL; +! } +! if (lnump != NULL) +! *lnump = ECMD_LAST; +! if (buf->b_fname == NULL) +! { +! result = (char_u *)""; +! valid = 0; /* Must have ":p:h" to be valid */ +! } +! else +! result = buf->b_fname; + } + break; + + #ifdef FEAT_SEARCHPATH +*************** +*** 10700,10706 **** + p_viminfo = (char_u *)"'100"; + if (eap->cmdidx == CMD_rviminfo) + { +! if (read_viminfo(eap->arg, TRUE, TRUE, eap->forceit) == FAIL) + EMSG(_("E195: Cannot open viminfo file for reading")); + } + else +--- 10727,10734 ---- + p_viminfo = (char_u *)"'100"; + if (eap->cmdidx == CMD_rviminfo) + { +! if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS +! | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL) + EMSG(_("E195: Cannot open viminfo file for reading")); + } + else +*** ../vim-7.2.030/src/feature.h Wed Aug 6 18:45:07 2008 +--- src/feature.h Fri Sep 19 19:14:22 2008 +*************** +*** 767,775 **** + + /* + * +browse ":browse" command. + */ +! #if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) +! # define FEAT_BROWSE + #endif + + /* +--- 767,779 ---- + + /* + * +browse ":browse" command. ++ * or just the ":browse" command modifier + */ +! #if defined(FEAT_NORMAL) +! # define FEAT_BROWSE_CMD +! # if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) +! # define FEAT_BROWSE +! # endif + #endif + + /* +*** ../vim-7.2.030/src/fileio.c Thu Sep 18 21:29:07 2008 +--- src/fileio.c Mon Nov 3 21:21:47 2008 +*************** +*** 2711,2717 **** + { + if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0 + && curbuf->b_ffname != NULL) +! read_viminfo(NULL, FALSE, TRUE, FALSE); + + /* Always set b_marks_read; needed when 'viminfo' is changed to include + * the ' parameter after opening a buffer. */ +--- 2711,2717 ---- + { + if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0 + && curbuf->b_ffname != NULL) +! read_viminfo(NULL, VIF_WANT_MARKS); + + /* Always set b_marks_read; needed when 'viminfo' is changed to include + * the ' parameter after opening a buffer. */ +*************** +*** 9108,9114 **** + set_context_in_autocmd(xp, arg, doautocmd) + expand_T *xp; + char_u *arg; +! int doautocmd; /* TRUE for :doautocmd, FALSE for :autocmd */ + { + char_u *p; + int group; +--- 9109,9115 ---- + set_context_in_autocmd(xp, arg, doautocmd) + expand_T *xp; + char_u *arg; +! int doautocmd; /* TRUE for :doauto*, FALSE for :autocmd */ + { + char_u *p; + int group; +*** ../vim-7.2.030/src/main.c Thu Sep 18 20:55:19 2008 +--- src/main.c Sun Sep 14 13:26:10 2008 +*************** +*** 645,655 **** + + #ifdef FEAT_VIMINFO + /* +! * Read in registers, history etc, but not marks, from the viminfo file + */ + if (*p_viminfo != NUL) + { +! read_viminfo(NULL, TRUE, FALSE, FALSE); + TIME_MSG("reading viminfo"); + } + #endif +--- 645,656 ---- + + #ifdef FEAT_VIMINFO + /* +! * Read in registers, history etc, but not marks, from the viminfo file. +! * This is where v:oldfiles gets filled. + */ + if (*p_viminfo != NUL) + { +! read_viminfo(NULL, VIF_WANT_INFO | VIF_GET_OLDFILES); + TIME_MSG("reading viminfo"); + } + #endif +*** ../vim-7.2.030/src/mark.c Sat Aug 9 19:37:29 2008 +--- src/mark.c Sun Sep 14 13:46:19 2008 +*************** +*** 1627,1641 **** + + /* + * Handle marks in the viminfo file: +! * fp_out == NULL read marks for current buffer only +! * fp_out != NULL copy marks for buffers not in buffer list + */ + void +! copy_viminfo_marks(virp, fp_out, count, eof) + vir_T *virp; + FILE *fp_out; + int count; + int eof; + { + char_u *line = virp->vir_line; + buf_T *buf; +--- 1627,1643 ---- + + /* + * Handle marks in the viminfo file: +! * fp_out != NULL: copy marks for buffers not in buffer list +! * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf only +! * fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles + */ + void +! copy_viminfo_marks(virp, fp_out, count, eof, flags) + vir_T *virp; + FILE *fp_out; + int count; + int eof; ++ int flags; + { + char_u *line = virp->vir_line; + buf_T *buf; +*************** +*** 1647,1656 **** +--- 1649,1671 ---- + char_u *p; + char_u *name_buf; + pos_T pos; ++ #ifdef FEAT_EVAL ++ list_T *list = NULL; ++ #endif + + if ((name_buf = alloc(LSIZE)) == NULL) + return; + *name_buf = NUL; ++ ++ #ifdef FEAT_EVAL ++ if (fp_out == NULL && (flags & (VIF_GET_OLDFILES | VIF_FORCEIT))) ++ { ++ list = list_alloc(); ++ if (list != NULL) ++ set_vim_var_list(VV_OLDFILES, list); ++ } ++ #endif ++ + num_marked_files = get_viminfo_parameter('\''); + while (!eof && (count < num_marked_files || fp_out == NULL)) + { +*************** +*** 1681,1686 **** +--- 1696,1706 ---- + p++; + *p = NUL; + ++ #ifdef FEAT_EVAL ++ if (list != NULL) ++ list_append_string(list, str, -1); ++ #endif ++ + /* + * If fp_out == NULL, load marks for current buffer. + * If fp_out != NULL, copy marks for buffers not in buflist. +*************** +*** 1688,1694 **** + load_marks = copy_marks_out = FALSE; + if (fp_out == NULL) + { +! if (curbuf->b_ffname != NULL) + { + if (*name_buf == NUL) /* only need to do this once */ + home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE); +--- 1708,1714 ---- + load_marks = copy_marks_out = FALSE; + if (fp_out == NULL) + { +! if ((flags & VIF_WANT_MARKS) && curbuf->b_ffname != NULL) + { + if (*name_buf == NUL) /* only need to do this once */ + home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE); +*** ../vim-7.2.030/src/misc1.c Wed Jun 25 00:24:52 2008 +--- src/misc1.c Sun Nov 9 11:47:00 2008 +*************** +*** 3245,3253 **** + + /* When using ":silent" assume that <CR> was entered. */ + if (mouse_used != NULL) +! MSG_PUTS(_("Type number or click with mouse (<Enter> cancels): ")); + else +! MSG_PUTS(_("Choice number (<Enter> cancels): ")); + + /* Set the state such that text can be selected/copied/pasted and we still + * get mouse events. */ +--- 3245,3253 ---- + + /* When using ":silent" assume that <CR> was entered. */ + if (mouse_used != NULL) +! MSG_PUTS(_("Type number and <Enter> or click with mouse (empty cancels): ")); + else +! MSG_PUTS(_("Type number and <Enter> (empty cancels): ")); + + /* Set the state such that text can be selected/copied/pasted and we still + * get mouse events. */ +*** ../vim-7.2.030/src/proto/eval.pro Sun Jan 6 20:06:30 2008 +--- src/proto/eval.pro Sun Nov 9 12:05:56 2008 +*************** +*** 17,23 **** + int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip)); + char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip)); + int skip_expr __ARGS((char_u **pp)); +! char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist)); + char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox)); + int eval_to_number __ARGS((char_u *expr)); + list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr)); +--- 17,23 ---- + int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip)); + char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip)); + int skip_expr __ARGS((char_u **pp)); +! char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int convert)); + char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox)); + int eval_to_number __ARGS((char_u *expr)); + list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr)); +*************** +*** 46,52 **** +--- 46,54 ---- + void list_unref __ARGS((list_T *l)); + void list_free __ARGS((list_T *l, int recurse)); + dictitem_T *dict_lookup __ARGS((hashitem_T *hi)); ++ char_u *list_find_str __ARGS((list_T *l, long idx)); + int list_append_dict __ARGS((list_T *list, dict_T *dict)); ++ int list_append_string __ARGS((list_T *l, char_u *str, int len)); + int garbage_collect __ARGS((void)); + dict_T *dict_alloc __ARGS((void)); + int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str)); +*************** +*** 58,65 **** +--- 60,69 ---- + void set_vim_var_nr __ARGS((int idx, long val)); + long get_vim_var_nr __ARGS((int idx)); + char_u *get_vim_var_str __ARGS((int idx)); ++ list_T *get_vim_var_list __ARGS((int idx)); + void set_vcount __ARGS((long count, long count1)); + void set_vim_var_string __ARGS((int idx, char_u *val, int len)); ++ void set_vim_var_list __ARGS((int idx, list_T *val)); + void set_reg_var __ARGS((int c)); + char_u *v_exception __ARGS((char_u *oldval)); + char_u *v_throwpoint __ARGS((char_u *oldval)); +*************** +*** 94,99 **** +--- 98,104 ---- + void write_viminfo_varlist __ARGS((FILE *fp)); + int store_session_globals __ARGS((FILE *fd)); + void last_set_msg __ARGS((scid_T scriptID)); ++ void ex_oldfiles __ARGS((exarg_T *eap)); + int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen)); + char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags)); + /* vim: set ft=c : */ +*** ../vim-7.2.030/src/proto/ex_cmds.pro Sat May 5 20:13:58 2007 +--- src/proto/ex_cmds.pro Sat Sep 13 17:27:21 2008 +*************** +*** 11,17 **** + char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); + void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname)); + int viminfo_error __ARGS((char *errnum, char *message, char_u *line)); +! int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit)); + void write_viminfo __ARGS((char_u *file, int forceit)); + int viminfo_readline __ARGS((vir_T *virp)); + char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert)); +--- 11,17 ---- + char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); + void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname)); + int viminfo_error __ARGS((char *errnum, char *message, char_u *line)); +! int read_viminfo __ARGS((char_u *file, int flags)); + void write_viminfo __ARGS((char_u *file, int forceit)); + int viminfo_readline __ARGS((vir_T *virp)); + char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert)); +*** ../vim-7.2.030/src/proto/mark.pro Sat May 5 19:29:37 2007 +--- src/proto/mark.pro Sat Sep 13 18:06:20 2008 +*************** +*** 26,30 **** + void write_viminfo_filemarks __ARGS((FILE *fp)); + int removable __ARGS((char_u *name)); + int write_viminfo_marks __ARGS((FILE *fp_out)); +! void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof)); + /* vim: set ft=c : */ +--- 26,30 ---- + void write_viminfo_filemarks __ARGS((FILE *fp)); + int removable __ARGS((char_u *name)); + int write_viminfo_marks __ARGS((FILE *fp_out)); +! void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof, int flags)); + /* vim: set ft=c : */ +*** ../vim-7.2.030/src/option.c Thu Oct 2 22:48:01 2008 +--- src/option.c Fri Sep 26 22:20:20 2008 +*************** +*** 2593,2605 **** + #ifdef FEAT_VIMINFO + (char_u *)&p_viminfo, PV_NONE, + #if defined(MSDOS) || defined(MSWIN) || defined(OS2) +! {(char_u *)"", (char_u *)"'20,<50,s10,h,rA:,rB:"} + #else + # ifdef AMIGA + {(char_u *)"", +! (char_u *)"'20,<50,s10,h,rdf0:,rdf1:,rdf2:"} + # else +! {(char_u *)"", (char_u *)"'20,<50,s10,h"} + # endif + #endif + #else +--- 2593,2605 ---- + #ifdef FEAT_VIMINFO + (char_u *)&p_viminfo, PV_NONE, + #if defined(MSDOS) || defined(MSWIN) || defined(OS2) +! {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"} + #else + # ifdef AMIGA + {(char_u *)"", +! (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"} + # else +! {(char_u *)"", (char_u *)"'100,<50,s10,h"} + # endif + #endif + #else +*** ../vim-7.2.030/src/structs.h Thu Jul 31 22:04:27 2008 +--- src/structs.h Fri Sep 19 19:15:18 2008 +*************** +*** 459,465 **** + typedef struct + { + int hide; /* TRUE when ":hide" was used */ +! # ifdef FEAT_BROWSE + int browse; /* TRUE to invoke file dialog */ + # endif + # ifdef FEAT_WINDOWS +--- 459,465 ---- + typedef struct + { + int hide; /* TRUE when ":hide" was used */ +! # ifdef FEAT_BROWSE_CMD + int browse; /* TRUE to invoke file dialog */ + # endif + # ifdef FEAT_WINDOWS +*** ../vim-7.2.030/src/vim.h Sat Aug 9 19:37:40 2008 +--- src/vim.h Sat Sep 13 17:41:24 2008 +*************** +*** 1728,1734 **** + #define VV_MOUSE_COL 51 + #define VV_OP 52 + #define VV_SEARCHFORWARD 53 +! #define VV_LEN 54 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +--- 1728,1735 ---- + #define VV_MOUSE_COL 51 + #define VV_OP 52 + #define VV_SEARCHFORWARD 53 +! #define VV_OLDFILES 54 +! #define VV_LEN 55 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +*************** +*** 2054,2057 **** +--- 2055,2064 ---- + #define DOSO_VIMRC 1 /* loading vimrc file */ + #define DOSO_GVIMRC 2 /* loading gvimrc file */ + ++ /* flags for read_viminfo() and children */ ++ #define VIF_WANT_INFO 1 /* load non-mark info */ ++ #define VIF_WANT_MARKS 2 /* load file marks */ ++ #define VIF_FORCEIT 4 /* overwrite info already read */ ++ #define VIF_GET_OLDFILES 8 /* load v:oldfiles */ ++ + #endif /* VIM__H */ +*** ../vim-7.2.030/src/version.c Thu Nov 6 20:47:00 2008 +--- src/version.c Sun Nov 9 13:39:19 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 31, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +217. Your sex life has drastically improved...so what if it's only cyber-sex! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.032 b/source/ap/vim/patches/7.2.032 new file mode 100644 index 000000000..f4a0d9bea --- /dev/null +++ b/source/ap/vim/patches/7.2.032 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.032 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.032 (after 7.2.031) +Problem: Can't build with EXITFREE defined. (Dominique Pelle) +Solution: Change vv_string to vv_str. +Files: src/eval.c + + +*** ../vim-7.2.031/src/eval.c Sun Nov 9 13:43:25 2008 +--- src/eval.c Sun Nov 9 17:16:06 2008 +*************** +*** 846,853 **** + p = &vimvars[i]; + if (p->vv_di.di_tv.v_type == VAR_STRING) + { +! vim_free(p->vv_string); +! p->vv_string = NULL; + } + else if (p->vv_di.di_tv.v_type == VAR_LIST) + { +--- 846,853 ---- + p = &vimvars[i]; + if (p->vv_di.di_tv.v_type == VAR_STRING) + { +! vim_free(p->vv_str); +! p->vv_str = NULL; + } + else if (p->vv_di.di_tv.v_type == VAR_LIST) + { +*** ../vim-7.2.031/src/version.c Sun Nov 9 13:43:25 2008 +--- src/version.c Sun Nov 9 17:21:00 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 32, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +218. Your spouse hands you a gift wrapped magnet with your PC's name + on it and you accuse him or her of genocide. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.033 b/source/ap/vim/patches/7.2.033 new file mode 100644 index 000000000..d96a94b72 --- /dev/null +++ b/source/ap/vim/patches/7.2.033 @@ -0,0 +1,78 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.033 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.033 +Problem: When detecting a little endian BOM "ucs-2le" is used, but the text + might be "utf-16le". +Solution: Default to "utf-16le", it also works for "ucs-2le". (Jia Yanwei) +Files: src/fileio.c, src/testdir/test42.ok + + +*** ../vim-7.2.032/src/fileio.c Sun Nov 9 13:43:25 2008 +--- src/fileio.c Mon Nov 3 21:21:47 2008 +*************** +*** 5550,5558 **** + name = "ucs-4le"; /* FF FE 00 00 */ + len = 4; + } +! else if (flags == FIO_ALL || flags == (FIO_UCS2 | FIO_ENDIAN_L)) + name = "ucs-2le"; /* FF FE */ +! else if (flags == (FIO_UTF16 | FIO_ENDIAN_L)) + name = "utf-16le"; /* FF FE */ + } + else if (p[0] == 0xfe && p[1] == 0xff +--- 5550,5559 ---- + name = "ucs-4le"; /* FF FE 00 00 */ + len = 4; + } +! else if (flags == (FIO_UCS2 | FIO_ENDIAN_L)) + name = "ucs-2le"; /* FF FE */ +! else if (flags == FIO_ALL || flags == (FIO_UTF16 | FIO_ENDIAN_L)) +! /* utf-16le is preferred, it also works for ucs-2le text */ + name = "utf-16le"; /* FF FE */ + } + else if (p[0] == 0xfe && p[1] == 0xff +*** ../vim-7.2.032/src/testdir/test42.ok Sat Mar 1 13:49:21 2008 +--- src/testdir/test42.ok Sat Nov 1 17:09:29 2008 +*************** +*** 20,26 **** + ucs-2 + + +! fileencoding=ucs-2le + bomb + ucs-2le + +--- 20,26 ---- + ucs-2 + + +! fileencoding=utf-16le + bomb + ucs-2le + +*** ../vim-7.2.032/src/version.c Sun Nov 9 17:21:10 2008 +--- src/version.c Tue Nov 11 21:54:14 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 33, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +234. You started college as a chemistry major, and walk out four years + later as an Internet provider. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.034 b/source/ap/vim/patches/7.2.034 new file mode 100644 index 000000000..957fb35d9 --- /dev/null +++ b/source/ap/vim/patches/7.2.034 @@ -0,0 +1,81 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.034 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.034 +Problem: Memory leak in spell info when deleting buffer. +Solution: Free the memory. (Dominique Pelle) +Files: src/buffer.c + + +*** ../vim-7.2.033/src/buffer.c Mon Sep 1 17:32:40 2008 +--- src/buffer.c Wed Nov 12 11:21:49 2008 +*************** +*** 647,652 **** +--- 647,655 ---- + vim_free(buf->b_start_fenc); + buf->b_start_fenc = NULL; + #endif ++ #ifdef FEAT_SPELL ++ ga_clear(&buf->b_langp); ++ #endif + } + + /* +*************** +*** 1237,1243 **** + * "buf" if one exists */ + if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf)) + return OK; +! /* If 'switchbuf' contians "usetab": jump to first window in any tab + * page containing "buf" if one exists */ + if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf)) + return OK; +--- 1240,1246 ---- + * "buf" if one exists */ + if ((swb_flags & SWB_USEOPEN) && buf_jump_open_win(buf)) + return OK; +! /* If 'switchbuf' contains "usetab": jump to first window in any tab + * page containing "buf" if one exists */ + if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf)) + return OK; +*************** +*** 3964,3970 **** + width = vim_strsize(out); + if (maxwidth > 0 && width > maxwidth) + { +! /* Result is too long, must trunctate somewhere. */ + l = 0; + if (itemcnt == 0) + s = out; +--- 3967,3973 ---- + width = vim_strsize(out); + if (maxwidth > 0 && width > maxwidth) + { +! /* Result is too long, must truncate somewhere. */ + l = 0; + if (itemcnt == 0) + s = out; +*** ../vim-7.2.033/src/version.c Tue Nov 11 21:55:29 2008 +--- src/version.c Wed Nov 12 12:51:21 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 34, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +236. You start saving URL's in your digital watch. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.035 b/source/ap/vim/patches/7.2.035 new file mode 100644 index 000000000..e8c73915a --- /dev/null +++ b/source/ap/vim/patches/7.2.035 @@ -0,0 +1,128 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.035 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.035 +Problem: Mismatches between alloc/malloc, free/vim_free, + realloc/vim_realloc. +Solution: Use the right function. (Dominique Pelle) +Files: src/gui_x11.c, src/mbyte.c, src/misc2.c, src/os_unix.c + + +*** ../vim-7.2.034/src/gui_x11.c Fri Jun 20 11:59:25 2008 +--- src/gui_x11.c Wed Nov 12 11:47:03 2008 +*************** +*** 2450,2456 **** + *colorPtr = colortable[closest]; + } + +! free(colortable); + return OK; + } + +--- 2450,2456 ---- + *colorPtr = colortable[closest]; + } + +! vim_free(colortable); + return OK; + } + +*** ../vim-7.2.034/src/mbyte.c Sat Sep 6 16:44:06 2008 +--- src/mbyte.c Wed Nov 12 11:24:14 2008 +*************** +*** 5384,5390 **** + draw_feedback = (char *)alloc(draw_data->chg_first + + text->length); + else +! draw_feedback = realloc(draw_feedback, + draw_data->chg_first + text->length); + if (draw_feedback != NULL) + { +--- 5384,5390 ---- + draw_feedback = (char *)alloc(draw_data->chg_first + + text->length); + else +! draw_feedback = vim_realloc(draw_feedback, + draw_data->chg_first + text->length); + if (draw_feedback != NULL) + { +*** ../vim-7.2.034/src/misc2.c Sat Sep 6 16:44:06 2008 +--- src/misc2.c Wed Nov 12 11:42:51 2008 +*************** +*** 873,879 **** + /* 3. check for available memory: call mch_avail_mem() */ + if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing) + { +! vim_free((char *)p); /* System is low... no go! */ + p = NULL; + } + else +--- 873,879 ---- + /* 3. check for available memory: call mch_avail_mem() */ + if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing) + { +! free((char *)p); /* System is low... no go! */ + p = NULL; + } + else +*** ../vim-7.2.034/src/os_unix.c Wed Aug 6 18:45:01 2008 +--- src/os_unix.c Wed Nov 12 11:55:33 2008 +*************** +*** 2905,2911 **** + * Ignore any errors. + */ + #if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK) +! signal_stack = malloc(SIGSTKSZ); + init_signal_stack(); + #endif + } +--- 2905,2911 ---- + * Ignore any errors. + */ + #if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK) +! signal_stack = (char *)alloc(SIGSTKSZ); + init_signal_stack(); + #endif + } +*************** +*** 6814,6820 **** + if (xsmp_icefd != -1) + { + SmcCloseConnection(xsmp.smcconn, 0, NULL); +! vim_free(xsmp.clientid); + xsmp.clientid = NULL; + xsmp_icefd = -1; + } +--- 6815,6822 ---- + if (xsmp_icefd != -1) + { + SmcCloseConnection(xsmp.smcconn, 0, NULL); +! if (xsmp.clientid != NULL) +! free(xsmp.clientid); + xsmp.clientid = NULL; + xsmp_icefd = -1; + } +*** ../vim-7.2.034/src/version.c Wed Nov 12 12:51:38 2008 +--- src/version.c Wed Nov 12 13:05:40 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 35, + /**/ + +-- +You can tune a file system, but you can't tuna fish + -- man tunefs + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.036 b/source/ap/vim/patches/7.2.036 new file mode 100644 index 000000000..4db2a26f3 --- /dev/null +++ b/source/ap/vim/patches/7.2.036 @@ -0,0 +1,276 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.036 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.036 (extra) +Problem: Mismatches between alloc/malloc, free/vim_free, + realloc/vim_realloc. +Solution: Use the right function. (Dominique Pelle) +Files: src/gui_riscos.c, src/gui_w48.c, src/mbyte.c, src/os_vms.c, + src/os_w32exe.c, src/os_win16.c + + +*** ../vim-7.2.035/src/gui_riscos.c Thu May 10 19:33:26 2007 +--- src/gui_riscos.c Wed Nov 12 11:47:54 2008 +*************** +*** 695,701 **** + gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction) + int width; /* In OS units */ + int height; +! int min_width; /* Smallest permissable window size (ignored) */ + int min_height; + int base_width; /* Space for scroll bars, etc */ + int base_height; +--- 695,701 ---- + gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction) + int width; /* In OS units */ + int height; +! int min_width; /* Smallest permissible window size (ignored) */ + int min_height; + int base_width; /* Space for scroll bars, etc */ + int base_height; +*************** +*** 863,869 **** + if (strncmp(file, "ZapFont\015", 8) == 0) + return file; /* Loaded OK! */ + +! free(file); + return NULL; /* Not a valid font file */ + } + +--- 863,869 ---- + if (strncmp(file, "ZapFont\015", 8) == 0) + return file; /* Loaded OK! */ + +! vim_free(file); + return NULL; /* Not a valid font file */ + } + +*** ../vim-7.2.035/src/gui_w48.c Thu Jul 24 20:50:23 2008 +--- src/gui_w48.c Wed Nov 12 11:37:41 2008 +*************** +*** 3335,3341 **** + + /* + * Convert the string s to the proper format for a filter string by replacing +! * the \t and \n delimeters with \0. + * Returns the converted string in allocated memory. + * + * Keep in sync with convert_filterW() above! +--- 3335,3341 ---- + + /* + * Convert the string s to the proper format for a filter string by replacing +! * the \t and \n delimiters with \0. + * Returns the converted string in allocated memory. + * + * Keep in sync with convert_filterW() above! +*************** +*** 3674,3680 **** + * Use "prog" as the name of the program and "cmdline" as the arguments. + * Copy the arguments to allocated memory. + * Return the number of arguments (including program name). +! * Return pointers to the arguments in "argvp". + * Return pointer to buffer in "tofree". + * Returns zero when out of memory. + */ +--- 3674,3681 ---- + * Use "prog" as the name of the program and "cmdline" as the arguments. + * Copy the arguments to allocated memory. + * Return the number of arguments (including program name). +! * Return pointers to the arguments in "argvp". Memory is allocated with +! * malloc(), use free() instead of vim_free(). + * Return pointer to buffer in "tofree". + * Returns zero when out of memory. + */ +*************** +*** 3692,3697 **** +--- 3693,3700 ---- + char **argv = NULL; + int round; + ++ *tofree = NULL; ++ + #ifdef FEAT_MBYTE + /* Try using the Unicode version first, it takes care of conversion when + * 'encoding' is changed. */ +*************** +*** 3802,3816 **** + argv = (char **)malloc((argc + 1) * sizeof(char *)); + if (argv == NULL ) + { +! vim_free(newcmdline); + return 0; /* malloc error */ + } + pnew = newcmdline; + } + } + + done: +- + argv[argc] = NULL; /* NULL-terminated list */ + *argvp = argv; + return argc; +--- 3805,3819 ---- + argv = (char **)malloc((argc + 1) * sizeof(char *)); + if (argv == NULL ) + { +! free(newcmdline); + return 0; /* malloc error */ + } + pnew = newcmdline; ++ *tofree = newcmdline; + } + } + + done: + argv[argc] = NULL; /* NULL-terminated list */ + *argvp = argv; + return argc; +*** ../vim-7.2.035/src/os_vms.c Wed Aug 6 18:38:52 2008 +--- src/os_vms.c Wed Nov 12 11:42:12 2008 +*************** +*** 228,234 **** + else if ((sbuf = getenv((char *)lognam))) + { + lengte = strlen(sbuf) + 1; +! cp = (char_u *)malloc((size_t)lengte); + if (cp) + strcpy((char *)cp, sbuf); + return cp; +--- 228,234 ---- + else if ((sbuf = getenv((char *)lognam))) + { + lengte = strlen(sbuf) + 1; +! cp = (char_u *)alloc((size_t)lengte); + if (cp) + strcpy((char *)cp, sbuf); + return cp; +*************** +*** 381,387 **** + if (--vms_match_free == 0) { + /* add more space to store matches */ + vms_match_alloced += EXPL_ALLOC_INC; +! vms_fmatch = (char_u **)realloc(vms_fmatch, + sizeof(char **) * vms_match_alloced); + if (!vms_fmatch) + return 0; +--- 381,387 ---- + if (--vms_match_free == 0) { + /* add more space to store matches */ + vms_match_alloced += EXPL_ALLOC_INC; +! vms_fmatch = (char_u **)vim_realloc(vms_fmatch, + sizeof(char **) * vms_match_alloced); + if (!vms_fmatch) + return 0; +*************** +*** 460,466 **** + if (--files_free < 1) + { + files_alloced += EXPL_ALLOC_INC; +! *file = (char_u **)realloc(*file, + sizeof(char_u **) * files_alloced); + if (*file == NULL) + { +--- 460,466 ---- + if (--files_free < 1) + { + files_alloced += EXPL_ALLOC_INC; +! *file = (char_u **)vim_realloc(*file, + sizeof(char_u **) * files_alloced); + if (*file == NULL) + { +*************** +*** 614,627 **** + { + buflen = len + 128; + if (buf) +! buf = (char *)realloc(buf, buflen); + else +! buf = (char *)calloc(buflen, sizeof(char)); + } + + #ifdef DEBUG + char *tmpbuf = NULL; +! tmpbuf = (char *)calloc(buflen, sizeof(char)); + strcpy(tmpbuf, instring); + #endif + +--- 614,627 ---- + { + buflen = len + 128; + if (buf) +! buf = (char *)vim_realloc(buf, buflen); + else +! buf = (char *)alloc(buflen * sizeof(char)); + } + + #ifdef DEBUG + char *tmpbuf = NULL; +! tmpbuf = (char *)alloc(buflen * sizeof(char)); + strcpy(tmpbuf, instring); + #endif + +*** ../vim-7.2.035/src/os_w32exe.c Fri Jul 1 00:06:20 2005 +--- src/os_w32exe.c Wed Nov 12 11:45:43 2008 +*************** +*** 129,135 **** + errout: + #endif + free(argv); +! free(tofree); + #ifdef FEAT_MBYTE + free_cmd_argsW(); + #endif +--- 129,136 ---- + errout: + #endif + free(argv); +! if (tofree != NULL) +! free(tofree); + #ifdef FEAT_MBYTE + free_cmd_argsW(); + #endif +*** ../vim-7.2.035/src/os_win16.c Wed Jun 25 00:49:34 2008 +--- src/os_win16.c Wed Nov 12 11:45:53 2008 +*************** +*** 121,127 **** + pmain(argc, argv); + + free(argv); +! free(tofree); + + return 0; + } +--- 121,128 ---- + pmain(argc, argv); + + free(argv); +! if (tofree != NULL) +! free(tofree); + + return 0; + } +*** ../vim-7.2.035/src/version.c Wed Nov 12 13:07:48 2008 +--- src/version.c Wed Nov 12 13:28:51 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 36, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +239. You think "surfing" is something you do on dry land. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.037 b/source/ap/vim/patches/7.2.037 new file mode 100644 index 000000000..20a439836 --- /dev/null +++ b/source/ap/vim/patches/7.2.037 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.037 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.037 +Problem: Double free with GTK 1 and compiled with EXITFREE. +Solution: Don't close display. (Dominique Pelle) +Files: src/os_unix.c + + +*** ../vim-7.2.036/src/os_unix.c Wed Nov 12 13:07:48 2008 +--- src/os_unix.c Wed Nov 12 11:55:33 2008 +*************** +*** 2936,2942 **** + } + # endif + # endif +! # ifdef FEAT_X11 + if (x11_display != NULL + # ifdef FEAT_XCLIPBOARD + && x11_display != xterm_dpy +--- 2936,2943 ---- + } + # endif + # endif +! /* Don't close the display for GTK 1, it is done in exit(). */ +! # if defined(FEAT_X11) && (!defined(FEAT_GUI_GTK) || defined(HAVE_GTK2)) + if (x11_display != NULL + # ifdef FEAT_XCLIPBOARD + && x11_display != xterm_dpy +*** ../vim-7.2.036/src/version.c Wed Nov 12 13:35:31 2008 +--- src/version.c Wed Nov 12 14:08:56 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 37, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +240. You think Webster's Dictionary is a directory of WEB sites. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.038 b/source/ap/vim/patches/7.2.038 new file mode 100644 index 000000000..449821e81 --- /dev/null +++ b/source/ap/vim/patches/7.2.038 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.038 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.038 +Problem: Overlapping arguments to memcpy(). +Solution: Use mch_memmove(). (Dominique Pelle) +Files: src/if_xcmdsrv.c + + +*** ../vim-7.2.037/src/if_xcmdsrv.c Wed Aug 6 18:38:13 2008 +--- src/if_xcmdsrv.c Wed Nov 12 12:09:01 2008 +*************** +*** 736,742 **** + + serverReply.ga_len; + e.id = w; + ga_init2(&e.strings, 1, 100); +! memcpy(p, &e, sizeof(e)); + serverReply.ga_len++; + } + } +--- 736,742 ---- + + serverReply.ga_len; + e.id = w; + ga_init2(&e.strings, 1, 100); +! mch_memmove(p, &e, sizeof(e)); + serverReply.ga_len++; + } + } +*************** +*** 1018,1024 **** + p++; + count = numItems - (p - regProp); + if (count > 0) +! memcpy(entry, p, count); + XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING, + 8, PropModeReplace, regProp, + (int)(numItems - (p - entry))); +--- 1018,1024 ---- + p++; + count = numItems - (p - regProp); + if (count > 0) +! mch_memmove(entry, p, count); + XChangeProperty(dpy, RootWindow(dpy, 0), registryProperty, XA_STRING, + 8, PropModeReplace, regProp, + (int)(numItems - (p - entry))); +*************** +*** 1072,1078 **** + p++; + lastHalf = numItems - (p - regProp); + if (lastHalf > 0) +! memcpy(entry, p, lastHalf); + numItems = (entry - regProp) + lastHalf; + p = entry; + continue; +--- 1072,1078 ---- + p++; + lastHalf = numItems - (p - regProp); + if (lastHalf > 0) +! mch_memmove(entry, p, lastHalf); + numItems = (entry - regProp) + lastHalf; + p = entry; + continue; +*** ../vim-7.2.037/src/version.c Wed Nov 12 14:09:38 2008 +--- src/version.c Wed Nov 12 14:51:00 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 38, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +241. You try to look for Net Search even when you're in File Manager. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.039 b/source/ap/vim/patches/7.2.039 new file mode 100644 index 000000000..f9cb18eb4 --- /dev/null +++ b/source/ap/vim/patches/7.2.039 @@ -0,0 +1,46 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.039 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.039 +Problem: Accessing freed memory on exit when EXITFREE is defined. +Solution: Call hash_init() on the v: hash table. +Files: src/eval.c + + +*** ../vim-7.2.038/src/eval.c Sun Nov 9 17:21:10 2008 +--- src/eval.c Wed Nov 12 12:15:14 2008 +*************** +*** 856,861 **** +--- 856,862 ---- + } + } + hash_clear(&vimvarht); ++ hash_init(&vimvarht); /* garbage_collect() will access it */ + hash_clear(&compat_hashtab); + + /* script-local variables */ +*** ../vim-7.2.038/src/version.c Wed Nov 12 14:52:11 2008 +--- src/version.c Wed Nov 12 15:09:39 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 39, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +242. You turn down a better-paying job because it doesn't come with + a free e-mail account. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.040 b/source/ap/vim/patches/7.2.040 new file mode 100644 index 000000000..76ea73af3 --- /dev/null +++ b/source/ap/vim/patches/7.2.040 @@ -0,0 +1,64 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.040 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.040 +Problem: When using ":e ++ff=dos fname" and the file contains a NL without + a CR before it and 'ffs' contains "unix" then the fileformat + becomes unix. +Solution: Ignore 'ffs' when using the ++ff argument. (Ben Schmidt) + Also remove unreachable code. +Files: src/fileio.c + + +*** ../vim-7.2.039/src/fileio.c Tue Nov 11 21:55:29 2008 +--- src/fileio.c Wed Nov 12 13:19:42 2008 +*************** +*** 932,938 **** +--- 932,941 ---- + else + { + if (eap != NULL && eap->force_ff != 0) ++ { + fileformat = get_fileformat_force(curbuf, eap); ++ try_unix = try_dos = try_mac = FALSE; ++ } + else if (curbuf->b_p_bin) + fileformat = EOL_UNIX; /* binary: use Unix format */ + else if (*p_ffs == NUL) +*************** +*** 2341,2351 **** + STRCAT(IObuff, _("[CR missing]")); + c = TRUE; + } +- if (ff_error == EOL_MAC) +- { +- STRCAT(IObuff, _("[NL found]")); +- c = TRUE; +- } + if (split) + { + STRCAT(IObuff, _("[long lines split]")); +--- 2344,2349 ---- +*** ../vim-7.2.039/src/version.c Wed Nov 12 15:28:37 2008 +--- src/version.c Wed Nov 12 16:03:44 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 40, + /**/ + +-- +If you're sending someone Styrofoam, what do you pack it in? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.041 b/source/ap/vim/patches/7.2.041 new file mode 100644 index 000000000..b562206ce --- /dev/null +++ b/source/ap/vim/patches/7.2.041 @@ -0,0 +1,729 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.041 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.041 +Problem: In diff mode, when using two tabs, each with two diffed buffers, + editing a buffer of the other tab messes up the diff. (Matt + Mzyzik) +Solution: Only copy options from a window where the buffer was edited that + doesn't have 'diff' set or is for the current tab page. + Also fix that window options for a buffer are stored with the + wrong window. +Files: src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, + src/ex_getln.c, src/if_sniff.c, src/main.c, src/netbeans.c, + src/normal.c, src/popupmnu.c, src/proto/buffer.pro, + src/proto/ex_cmds.pro src/quickfix.c, src/window.c + + +*** ../vim-7.2.040/src/buffer.c Wed Nov 12 12:51:38 2008 +--- src/buffer.c Wed Nov 12 17:45:01 2008 +*************** +*** 33,39 **** + static char_u *fname_match __ARGS((regprog_T *prog, char_u *name)); + #endif + static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); +! static wininfo_T *find_wininfo __ARGS((buf_T *buf)); + #ifdef UNIX + static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st)); + static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp)); +--- 33,39 ---- + static char_u *fname_match __ARGS((regprog_T *prog, char_u *name)); + #endif + static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); +! static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer)); + #ifdef UNIX + static buf_T *buflist_findname_stat __ARGS((char_u *ffname, struct stat *st)); + static int otherfile_buf __ARGS((buf_T *buf, char_u *ffname, struct stat *stp)); +*************** +*** 1093,1099 **** + #endif + setpcmark(); + retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, +! forceit ? ECMD_FORCEIT : 0); + + /* + * do_ecmd() may create a new buffer, then we have to delete +--- 1093,1099 ---- + #endif + setpcmark(); + retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, +! forceit ? ECMD_FORCEIT : 0, curwin); + + /* + * do_ecmd() may create a new buffer, then we have to delete +*************** +*** 1316,1322 **** + setpcmark(); + if (!cmdmod.keepalt) + curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */ +! buflist_altfpos(); /* remember curpos */ + + #ifdef FEAT_VISUAL + /* Don't restart Select mode after switching to another buffer. */ +--- 1316,1322 ---- + setpcmark(); + if (!cmdmod.keepalt) + curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */ +! buflist_altfpos(curwin); /* remember curpos */ + + #ifdef FEAT_VISUAL + /* Don't restart Select mode after switching to another buffer. */ +*************** +*** 2404,2425 **** + return; + } + + /* + * Find info for the current window in buffer "buf". + * If not found, return the info for the most recently used window. + * Returns NULL when there isn't any info. + */ + static wininfo_T * +! find_wininfo(buf) + buf_T *buf; + { + wininfo_T *wip; + + for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) +! if (wip->wi_win == curwin) + break; +! if (wip == NULL) /* if no fpos for curwin, use the first in the list */ +! wip = buf->b_wininfo; + return wip; + } + +--- 2404,2473 ---- + return; + } + ++ #ifdef FEAT_DIFF ++ static int wininfo_other_tab_diff __ARGS((wininfo_T *wip)); ++ ++ /* ++ * Return TRUE when "wip" has 'diff' set and the diff is only for another tab ++ * page. That's because a diff is local to a tab page. ++ */ ++ static int ++ wininfo_other_tab_diff(wip) ++ wininfo_T *wip; ++ { ++ win_T *wp; ++ ++ if (wip->wi_opt.wo_diff) ++ { ++ for (wp = firstwin; wp != NULL; wp = wp->w_next) ++ /* return FALSE when it's a window in the current tab page, thus ++ * the buffer was in diff mode here */ ++ if (wip->wi_win == wp) ++ return FALSE; ++ return TRUE; ++ } ++ return FALSE; ++ } ++ #endif ++ + /* + * Find info for the current window in buffer "buf". + * If not found, return the info for the most recently used window. ++ * When "skip_diff_buffer" is TRUE avoid windows with 'diff' set that is in ++ * another tab page. + * Returns NULL when there isn't any info. + */ ++ /*ARGSUSED*/ + static wininfo_T * +! find_wininfo(buf, skip_diff_buffer) + buf_T *buf; ++ int skip_diff_buffer; + { + wininfo_T *wip; + + for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) +! if (wip->wi_win == curwin +! #ifdef FEAT_DIFF +! && (!skip_diff_buffer || !wininfo_other_tab_diff(wip)) +! #endif +! ) + break; +! +! /* If no wininfo for curwin, use the first in the list (that doesn't have +! * 'diff' set and is in another tab page). */ +! if (wip == NULL) +! { +! #ifdef FEAT_DIFF +! if (skip_diff_buffer) +! { +! for (wip = buf->b_wininfo; wip != NULL; wip = wip->wi_next) +! if (!wininfo_other_tab_diff(wip)) +! break; +! } +! else +! #endif +! wip = buf->b_wininfo; +! } + return wip; + } + +*************** +*** 2440,2446 **** + clearFolding(curwin); + #endif + +! wip = find_wininfo(buf); + if (wip != NULL && wip->wi_optset) + { + copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt); +--- 2488,2494 ---- + clearFolding(curwin); + #endif + +! wip = find_wininfo(buf, TRUE); + if (wip != NULL && wip->wi_optset) + { + copy_winopt(&wip->wi_opt, &curwin->w_onebuf_opt); +*************** +*** 2472,2478 **** + wininfo_T *wip; + static pos_T no_position = {1, 0}; + +! wip = find_wininfo(buf); + if (wip != NULL) + return &(wip->wi_fpos); + else +--- 2520,2526 ---- + wininfo_T *wip; + static pos_T no_position = {1, 0}; + +! wip = find_wininfo(buf, FALSE); + if (wip != NULL) + return &(wip->wi_fpos); + else +*************** +*** 2793,2806 **** + #endif + + /* +! * Set alternate cursor position for current window. + * Also save the local window option values. + */ + void +! buflist_altfpos() + { +! buflist_setfpos(curbuf, curwin, curwin->w_cursor.lnum, +! curwin->w_cursor.col, TRUE); + } + + /* +--- 2841,2854 ---- + #endif + + /* +! * Set alternate cursor position for the current buffer and window "win". + * Also save the local window option values. + */ + void +! buflist_altfpos(win) +! win_T *win; + { +! buflist_setfpos(curbuf, win, win->w_cursor.lnum, win->w_cursor.col, TRUE); + } + + /* +*************** +*** 4492,4498 **** + ECMD_ONE, + ((P_HID(curwin->w_buffer) + || bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0) +! + ECMD_OLDBUF); + #ifdef FEAT_AUTOCMD + if (use_firstwin) + ++autocmd_no_leave; +--- 4540,4546 ---- + ECMD_ONE, + ((P_HID(curwin->w_buffer) + || bufIsChanged(curwin->w_buffer)) ? ECMD_HIDE : 0) +! + ECMD_OLDBUF, curwin); + #ifdef FEAT_AUTOCMD + if (use_firstwin) + ++autocmd_no_leave; +*** ../vim-7.2.040/src/ex_cmds.c Sun Nov 9 13:43:25 2008 +--- src/ex_cmds.c Wed Nov 12 22:41:41 2008 +*************** +*** 3052,3058 **** + retval = 0; /* it's in the same file */ + } + else if (do_ecmd(fnum, ffname, sfname, NULL, lnum, +! (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0)) == OK) + retval = -1; /* opened another file */ + else + retval = 1; /* error encountered */ +--- 3052,3059 ---- + retval = 0; /* it's in the same file */ + } + else if (do_ecmd(fnum, ffname, sfname, NULL, lnum, +! (P_HID(curbuf) ? ECMD_HIDE : 0) + (forceit ? ECMD_FORCEIT : 0), +! curwin) == OK) + retval = -1; /* opened another file */ + else + retval = 1; /* error encountered */ +*************** +*** 3085,3101 **** + * ECMD_OLDBUF: use existing buffer if it exists + * ECMD_FORCEIT: ! used for Ex command + * ECMD_ADDBUF: don't edit, just add to buffer list + * + * return FAIL for failure, OK otherwise + */ + int +! do_ecmd(fnum, ffname, sfname, eap, newlnum, flags) + int fnum; + char_u *ffname; + char_u *sfname; + exarg_T *eap; /* can be NULL! */ + linenr_T newlnum; + int flags; + { + int other_file; /* TRUE if editing another file */ + int oldbuf; /* TRUE if using existing buffer */ +--- 3086,3106 ---- + * ECMD_OLDBUF: use existing buffer if it exists + * ECMD_FORCEIT: ! used for Ex command + * ECMD_ADDBUF: don't edit, just add to buffer list ++ * oldwin: Should be "curwin" when editing a new buffer in the current ++ * window, NULL when splitting the window first. When not NULL info ++ * of the previous buffer for "oldwin" is stored. + * + * return FAIL for failure, OK otherwise + */ + int +! do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin) + int fnum; + char_u *ffname; + char_u *sfname; + exarg_T *eap; /* can be NULL! */ + linenr_T newlnum; + int flags; ++ win_T *oldwin; + { + int other_file; /* TRUE if editing another file */ + int oldbuf; /* TRUE if using existing buffer */ +*************** +*** 3267,3273 **** + { + if (!cmdmod.keepalt) + curwin->w_alt_fnum = curbuf->b_fnum; +! buflist_altfpos(); + } + + if (fnum) +--- 3272,3279 ---- + { + if (!cmdmod.keepalt) + curwin->w_alt_fnum = curbuf->b_fnum; +! if (oldwin != NULL) +! buflist_altfpos(oldwin); + } + + if (fnum) +*************** +*** 3371,3377 **** + + /* close the link to the current buffer */ + u_sync(FALSE); +! close_buffer(curwin, curbuf, + (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD); + + #ifdef FEAT_AUTOCMD +--- 3377,3383 ---- + + /* close the link to the current buffer */ + u_sync(FALSE); +! close_buffer(oldwin, curbuf, + (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD); + + #ifdef FEAT_AUTOCMD +*************** +*** 5609,5615 **** + */ + alt_fnum = curbuf->b_fnum; + (void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL, +! ECMD_HIDE + ECMD_SET_HELP); + if (!cmdmod.keepalt) + curwin->w_alt_fnum = alt_fnum; + empty_fnum = curbuf->b_fnum; +--- 5615,5627 ---- + */ + alt_fnum = curbuf->b_fnum; + (void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL, +! ECMD_HIDE + ECMD_SET_HELP, +! #ifdef FEAT_WINDOWS +! NULL /* buffer is still open, don't store info */ +! #else +! curwin +! #endif +! ); + if (!cmdmod.keepalt) + curwin->w_alt_fnum = alt_fnum; + empty_fnum = curbuf->b_fnum; +*** ../vim-7.2.040/src/ex_cmds2.c Sun Sep 7 15:49:45 2008 +--- src/ex_cmds2.c Wed Nov 12 17:46:41 2008 +*************** +*** 2132,2139 **** + * argument index. */ + if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL, + eap, ECMD_LAST, +! (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) + +! (eap->forceit ? ECMD_FORCEIT : 0)) == FAIL) + curwin->w_arg_idx = old_arg_idx; + /* like Vi: set the mark where the cursor is in the file. */ + else if (eap->cmdidx != CMD_argdo) +--- 2132,2139 ---- + * argument index. */ + if (do_ecmd(0, alist_name(&ARGLIST[curwin->w_arg_idx]), NULL, + eap, ECMD_LAST, +! (P_HID(curwin->w_buffer) ? ECMD_HIDE : 0) +! + (eap->forceit ? ECMD_FORCEIT : 0), curwin) == FAIL) + curwin->w_arg_idx = old_arg_idx; + /* like Vi: set the mark where the cursor is in the file. */ + else if (eap->cmdidx != CMD_argdo) +*** ../vim-7.2.040/src/ex_docmd.c Sun Nov 9 13:43:25 2008 +--- src/ex_docmd.c Wed Nov 12 18:04:22 2008 +*************** +*** 7488,7494 **** + /* ":new" or ":tabnew" without argument: edit an new empty buffer */ + setpcmark(); + (void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE, +! ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0)); + } + else if ((eap->cmdidx != CMD_split + #ifdef FEAT_VERTSPLIT +--- 7488,7495 ---- + /* ":new" or ":tabnew" without argument: edit an new empty buffer */ + setpcmark(); + (void)do_ecmd(0, NULL, NULL, eap, ECMD_ONE, +! ECMD_HIDE + (eap->forceit ? ECMD_FORCEIT : 0), +! old_curwin == NULL ? curwin : NULL); + } + else if ((eap->cmdidx != CMD_split + #ifdef FEAT_VERTSPLIT +*************** +*** 7525,7531 **** + #ifdef FEAT_LISTCMDS + + (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 ) + #endif +! ) == FAIL) + { + /* Editing the file failed. If the window was split, close it. */ + #ifdef FEAT_WINDOWS +--- 7526,7532 ---- + #ifdef FEAT_LISTCMDS + + (eap->cmdidx == CMD_badd ? ECMD_ADDBUF : 0 ) + #endif +! , old_curwin == NULL ? curwin : NULL) == FAIL) + { + /* Editing the file failed. If the window was split, close it. */ + #ifdef FEAT_WINDOWS +*** ../vim-7.2.040/src/ex_getln.c Sun Sep 14 14:41:44 2008 +--- src/ex_getln.c Wed Nov 12 18:06:25 2008 +*************** +*** 6051,6057 **** + cmdwin_type = '-'; + + /* Create the command-line buffer empty. */ +! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE); + (void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE); + set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL); + set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); +--- 6051,6057 ---- + cmdwin_type = '-'; + + /* Create the command-line buffer empty. */ +! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL); + (void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE); + set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL); + set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); +*** ../vim-7.2.040/src/if_sniff.c Sat Aug 9 19:41:16 2008 +--- src/if_sniff.c Wed Nov 12 17:48:46 2008 +*************** +*** 1114,1120 **** + char *fname; + { + ++no_wait_return; +! do_ecmd(0, (char_u *)fname, NULL, NULL, ECMD_ONE, ECMD_HIDE+ECMD_OLDBUF); + curbuf->b_sniff = TRUE; + --no_wait_return; /* [ex_docmd.c] */ + } +--- 1114,1121 ---- + char *fname; + { + ++no_wait_return; +! do_ecmd(0, (char_u *)fname, NULL, NULL, ECMD_ONE, ECMD_HIDE+ECMD_OLDBUF, +! curwin); + curbuf->b_sniff = TRUE; + --no_wait_return; /* [ex_docmd.c] */ + } +*** ../vim-7.2.040/src/main.c Sun Nov 9 13:43:25 2008 +--- src/main.c Wed Nov 12 17:49:06 2008 +*************** +*** 2588,2594 **** + # endif + (void)do_ecmd(0, arg_idx < GARGCOUNT + ? alist_name(&GARGLIST[arg_idx]) : NULL, +! NULL, NULL, ECMD_LASTL, ECMD_HIDE); + # ifdef HAS_SWAP_EXISTS_ACTION + if (swap_exists_did_quit) + { +--- 2588,2594 ---- + # endif + (void)do_ecmd(0, arg_idx < GARGCOUNT + ? alist_name(&GARGLIST[arg_idx]) : NULL, +! NULL, NULL, ECMD_LASTL, ECMD_HIDE, curwin); + # ifdef HAS_SWAP_EXISTS_ACTION + if (swap_exists_did_quit) + { +*** ../vim-7.2.040/src/netbeans.c Sun Jul 13 19:18:03 2008 +--- src/netbeans.c Wed Nov 12 17:49:40 2008 +*************** +*** 1795,1801 **** + buf->displayname = NULL; + + netbeansReadFile = 0; /* don't try to open disk file */ +! do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF); + netbeansReadFile = 1; + buf->bufp = curbuf; + maketitle(); +--- 1795,1801 ---- + buf->displayname = NULL; + + netbeansReadFile = 0; /* don't try to open disk file */ +! do_ecmd(0, NULL, 0, 0, ECMD_ONE, ECMD_HIDE + ECMD_OLDBUF, curwin); + netbeansReadFile = 1; + buf->bufp = curbuf; + maketitle(); +*************** +*** 1960,1966 **** + + netbeansReadFile = 0; /* don't try to open disk file */ + do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE, +! ECMD_HIDE + ECMD_OLDBUF); + netbeansReadFile = 1; + buf->bufp = curbuf; + maketitle(); +--- 1960,1966 ---- + + netbeansReadFile = 0; /* don't try to open disk file */ + do_ecmd(0, (char_u *)buf->displayname, 0, 0, ECMD_ONE, +! ECMD_HIDE + ECMD_OLDBUF, curwin); + netbeansReadFile = 1; + buf->bufp = curbuf; + maketitle(); +*************** +*** 1979,1985 **** + vim_free(buf->displayname); + buf->displayname = nb_unquote(args, NULL); + do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE, +! ECMD_HIDE + ECMD_OLDBUF); + buf->bufp = curbuf; + buf->initDone = TRUE; + doupdate = 1; +--- 1979,1985 ---- + vim_free(buf->displayname); + buf->displayname = nb_unquote(args, NULL); + do_ecmd(0, (char_u *)buf->displayname, NULL, NULL, ECMD_ONE, +! ECMD_HIDE + ECMD_OLDBUF, curwin); + buf->bufp = curbuf; + buf->initDone = TRUE; + doupdate = 1; +*** ../vim-7.2.040/src/normal.c Sat Nov 1 13:51:57 2008 +--- src/normal.c Wed Nov 12 17:49:50 2008 +*************** +*** 6050,6056 **** + autowrite(curbuf, FALSE); + setpcmark(); + (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, +! P_HID(curbuf) ? ECMD_HIDE : 0); + if (cap->nchar == 'F' && lnum >= 0) + { + curwin->w_cursor.lnum = lnum; +--- 6050,6056 ---- + autowrite(curbuf, FALSE); + setpcmark(); + (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, +! P_HID(curbuf) ? ECMD_HIDE : 0, curwin); + if (cap->nchar == 'F' && lnum >= 0) + { + curwin->w_cursor.lnum = lnum; +*** ../vim-7.2.040/src/popupmnu.c Sun Jul 13 19:33:51 2008 +--- src/popupmnu.c Wed Nov 12 18:08:07 2008 +*************** +*** 573,579 **** + { + /* Don't want to sync undo in the current buffer. */ + ++no_u_sync; +! res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0); + --no_u_sync; + if (res == OK) + { +--- 573,579 ---- + { + /* Don't want to sync undo in the current buffer. */ + ++no_u_sync; +! res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0, NULL); + --no_u_sync; + if (res == OK) + { +*** ../vim-7.2.040/src/proto/buffer.pro Sun May 6 13:57:53 2007 +--- src/proto/buffer.pro Wed Nov 12 17:43:39 2008 +*************** +*** 33,39 **** + char_u *getaltfname __ARGS((int errmsg)); + int buflist_add __ARGS((char_u *fname, int flags)); + void buflist_slash_adjust __ARGS((void)); +! void buflist_altfpos __ARGS((void)); + int otherfile __ARGS((char_u *ffname)); + void buf_setino __ARGS((buf_T *buf)); + void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); +--- 33,39 ---- + char_u *getaltfname __ARGS((int errmsg)); + int buflist_add __ARGS((char_u *fname, int flags)); + void buflist_slash_adjust __ARGS((void)); +! void buflist_altfpos __ARGS((win_T *win)); + int otherfile __ARGS((char_u *ffname)); + void buf_setino __ARGS((buf_T *buf)); + void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); +*** ../vim-7.2.040/src/proto/ex_cmds.pro Sun Nov 9 13:43:25 2008 +--- src/proto/ex_cmds.pro Wed Nov 12 17:44:27 2008 +*************** +*** 27,33 **** + void do_wqall __ARGS((exarg_T *eap)); + int not_writing __ARGS((void)); + int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit)); +! int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags)); + void ex_append __ARGS((exarg_T *eap)); + void ex_change __ARGS((exarg_T *eap)); + void ex_z __ARGS((exarg_T *eap)); +--- 27,33 ---- + void do_wqall __ARGS((exarg_T *eap)); + int not_writing __ARGS((void)); + int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit)); +! int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags, win_T *oldwin)); + void ex_append __ARGS((exarg_T *eap)); + void ex_change __ARGS((exarg_T *eap)); + void ex_z __ARGS((exarg_T *eap)); +*** ../vim-7.2.040/src/quickfix.c Thu Jul 24 18:44:59 2008 +--- src/quickfix.c Wed Nov 12 18:12:00 2008 +*************** +*** 1420,1425 **** +--- 1420,1426 ---- + win_T *win; + win_T *altwin; + #endif ++ win_T *oldwin = curwin; + int print_message = TRUE; + int len; + #ifdef FEAT_FOLDING +*************** +*** 1744,1750 **** + } + else + ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1, +! ECMD_HIDE + ECMD_SET_HELP); + } + else + ok = buflist_getfile(qf_ptr->qf_fnum, +--- 1745,1752 ---- + } + else + ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1, +! ECMD_HIDE + ECMD_SET_HELP, +! oldwin == curwin ? curwin : NULL); + } + else + ok = buflist_getfile(qf_ptr->qf_fnum, +*************** +*** 2267,2272 **** +--- 2269,2275 ---- + win_T *win; + tabpage_T *prevtab = curtab; + buf_T *qf_buf; ++ win_T *oldwin = curwin; + + if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) + { +*************** +*** 2326,2339 **** + win->w_llist->qf_refcount++; + } + + if (qf_buf != NULL) + /* Use the existing quickfix buffer */ + (void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE, +! ECMD_HIDE + ECMD_OLDBUF); + else + { + /* Create a new quickfix buffer */ +! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE); + /* switch off 'swapfile' */ + set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); + set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", +--- 2329,2344 ---- + win->w_llist->qf_refcount++; + } + ++ if (oldwin != curwin) ++ oldwin = NULL; /* don't store info when in another window */ + if (qf_buf != NULL) + /* Use the existing quickfix buffer */ + (void)do_ecmd(qf_buf->b_fnum, NULL, NULL, NULL, ECMD_ONE, +! ECMD_HIDE + ECMD_OLDBUF, oldwin); + else + { + /* Create a new quickfix buffer */ +! (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, oldwin); + /* switch off 'swapfile' */ + set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); + set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", +*** ../vim-7.2.040/src/window.c Wed Aug 6 18:32:11 2008 +--- src/window.c Wed Nov 12 18:12:37 2008 +*************** +*** 531,537 **** + # ifdef FEAT_SCROLLBIND + curwin->w_p_scb = FALSE; + # endif +! (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, ECMD_HIDE); + if (nchar == 'F' && lnum >= 0) + { + curwin->w_cursor.lnum = lnum; +--- 531,538 ---- + # ifdef FEAT_SCROLLBIND + curwin->w_p_scb = FALSE; + # endif +! (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, +! ECMD_HIDE, NULL); + if (nchar == 'F' && lnum >= 0) + { + curwin->w_cursor.lnum = lnum; +*** ../vim-7.2.040/src/version.c Wed Nov 12 16:04:43 2008 +--- src/version.c Wed Nov 12 16:54:35 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 41, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +260. Co-workers have to E-mail you about the fire alarm to get + you out of the building. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.042 b/source/ap/vim/patches/7.2.042 new file mode 100644 index 000000000..cd2b56899 --- /dev/null +++ b/source/ap/vim/patches/7.2.042 @@ -0,0 +1,166 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.042 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.042 +Problem: When using winrestview() in a BufWinEnter autocommand the window + is scrolled anyway. (Matt Zyzik) +Solution: Don't recompute topline when above 'scrolloff' from the bottom. + Don't always put the cursor halfway when entering a buffer. Add + "w_topline_was_set". +Files: src/buffer.c, src/move.c, src/structs.h + + +*** ../vim-7.2.041/src/buffer.c Sat Nov 15 14:10:23 2008 +--- src/buffer.c Sat Nov 15 14:58:52 2008 +*************** +*** 1401,1406 **** +--- 1401,1409 ---- + curwin->w_cursor.coladd = 0; + #endif + curwin->w_set_curswant = TRUE; ++ #ifdef FEAT_AUTOCMD ++ curwin->w_topline_was_set = FALSE; ++ #endif + + /* Make sure the buffer is loaded. */ + if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */ +*************** +*** 1440,1446 **** + maketitle(); + #endif + #ifdef FEAT_AUTOCMD +! if (curwin->w_topline == 1) /* when autocmds didn't change it */ + #endif + scroll_cursor_halfway(FALSE); /* redisplay at correct position */ + +--- 1443,1450 ---- + maketitle(); + #endif + #ifdef FEAT_AUTOCMD +! /* when autocmds didn't change it */ +! if (curwin->w_topline == 1 && !curwin->w_topline_was_set) + #endif + scroll_cursor_halfway(FALSE); /* redisplay at correct position */ + +*** ../vim-7.2.041/src/move.c Sun Jul 13 19:25:23 2008 +--- src/move.c Sat Nov 15 14:56:47 2008 +*************** +*** 280,297 **** + + if (curwin->w_botline <= curbuf->b_ml.ml_line_count) + { +! if (curwin->w_cursor.lnum < curwin->w_botline +! && ((long)curwin->w_cursor.lnum + >= (long)curwin->w_botline - p_so + #ifdef FEAT_FOLDING + || hasAnyFolding(curwin) + #endif + )) +! { + lineoff_T loff; + +! /* Cursor is above botline, check if there are 'scrolloff' +! * window lines below the cursor. If not, need to scroll. */ + n = curwin->w_empty_rows; + loff.lnum = curwin->w_cursor.lnum; + #ifdef FEAT_FOLDING +--- 280,299 ---- + + if (curwin->w_botline <= curbuf->b_ml.ml_line_count) + { +! if (curwin->w_cursor.lnum < curwin->w_botline) +! { +! if (((long)curwin->w_cursor.lnum + >= (long)curwin->w_botline - p_so + #ifdef FEAT_FOLDING + || hasAnyFolding(curwin) + #endif + )) +! { + lineoff_T loff; + +! /* Cursor is (a few lines) above botline, check if there are +! * 'scrolloff' window lines below the cursor. If not, need to +! * scroll. */ + n = curwin->w_empty_rows; + loff.lnum = curwin->w_cursor.lnum; + #ifdef FEAT_FOLDING +*************** +*** 317,322 **** +--- 319,328 ---- + if (n >= p_so) + /* sufficient context, no need to scroll */ + check_botline = FALSE; ++ } ++ else ++ /* sufficient context, no need to scroll */ ++ check_botline = FALSE; + } + if (check_botline) + { +*************** +*** 509,514 **** +--- 515,523 ---- + /* Approximate the value of w_botline */ + wp->w_botline += lnum - wp->w_topline; + wp->w_topline = lnum; ++ #ifdef FEAT_AUTOCMD ++ wp->w_topline_was_set = TRUE; ++ #endif + #ifdef FEAT_DIFF + wp->w_topfill = 0; + #endif +*** ../vim-7.2.041/src/structs.h Sun Nov 9 13:43:25 2008 +--- src/structs.h Sat Nov 15 14:56:42 2008 +*************** +*** 1784,1793 **** + #endif + + /* +! * The next three specify the offsets for displaying the buffer: + */ + linenr_T w_topline; /* buffer line number of the line at the + top of the window */ + #ifdef FEAT_DIFF + int w_topfill; /* number of filler lines above w_topline */ + int w_old_topfill; /* w_topfill at last redraw */ +--- 1784,1798 ---- + #endif + + /* +! * "w_topline", "w_leftcol" and "w_skipcol" specify the offsets for +! * displaying the buffer. + */ + linenr_T w_topline; /* buffer line number of the line at the + top of the window */ ++ #ifdef FEAT_AUTOCMD ++ char w_topline_was_set; /* flag set to TRUE when topline is set, ++ e.g. by winrestview() */ ++ #endif + #ifdef FEAT_DIFF + int w_topfill; /* number of filler lines above w_topline */ + int w_old_topfill; /* w_topfill at last redraw */ +*** ../vim-7.2.041/src/version.c Sat Nov 15 14:10:23 2008 +--- src/version.c Sat Nov 15 16:01:29 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 42, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +261. You find diskettes in your pockets when doing laundry. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.043 b/source/ap/vim/patches/7.2.043 new file mode 100644 index 000000000..5c5225471 --- /dev/null +++ b/source/ap/vim/patches/7.2.043 @@ -0,0 +1,78 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.043 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.043 +Problem: VMS: Too many characters are escaped in filename and shell + commands. +Solution: Escape fewer characters. (Zoltan Arpadffy) +Files: src/vim.h + + +*** ../vim-7.2.042/src/vim.h Sun Nov 9 13:43:25 2008 +--- src/vim.h Fri Nov 14 21:41:17 2008 +*************** +*** 341,348 **** + #ifdef BACKSLASH_IN_FILENAME + # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'\"|!<") + #else +! # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<") +! # define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<>();&") + #endif + + #define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */ +--- 341,354 ---- + #ifdef BACKSLASH_IN_FILENAME + # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`%#'\"|!<") + #else +! # ifdef VMS +! /* VMS allows a lot of characters in the file name */ +! # define PATH_ESC_CHARS ((char_u *)" \t\n*?{`\\%#'\"|!") +! # define SHELL_ESC_CHARS ((char_u *)" \t\n*?{`\\%#'|!()&") +! # else +! # define PATH_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<") +! # define SHELL_ESC_CHARS ((char_u *)" \t\n*?[{`$\\%#'\"|!<>();&") +! # endif + #endif + + #define NUMBUFLEN 30 /* length of a buffer to store a number in ASCII */ +*************** +*** 370,376 **** + * Define __w64 as an empty token for everything but MSVC 7.x or later. + */ + # if !defined(_MSC_VER) || (_MSC_VER < 1300) +! # define __w64 + # endif + typedef unsigned long __w64 long_u; + typedef long __w64 long_i; +--- 376,382 ---- + * Define __w64 as an empty token for everything but MSVC 7.x or later. + */ + # if !defined(_MSC_VER) || (_MSC_VER < 1300) +! # define __w64 + # endif + typedef unsigned long __w64 long_u; + typedef long __w64 long_i; +*** ../vim-7.2.042/src/version.c Sat Nov 15 16:05:30 2008 +--- src/version.c Thu Nov 20 10:23:51 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 43, + /**/ + +-- +In his lifetime van Gogh painted 486 oil paintings. Oddly enough, 8975 +of them are to be found in the United States. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.044 b/source/ap/vim/patches/7.2.044 new file mode 100644 index 000000000..4cfe651e2 --- /dev/null +++ b/source/ap/vim/patches/7.2.044 @@ -0,0 +1,161 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.044 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.044 +Problem: Crash because of STRCPY() being over protective of the destination + size. (Dominique Pelle) +Solution: Add -D_FORTIFY_SOURCE=1 to CFLAGS. Use an intermediate variable + for the pointer to avoid a warning. +Files: src/auto/configure, src/configure.in, src/eval.c + + +*** ../vim-7.2.043/src/auto/configure Thu Jul 24 17:20:50 2008 +--- src/auto/configure Sun Nov 16 17:08:44 2008 +*************** +*** 16819,16839 **** + LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" + fi + +- { $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5 +- $as_echo_n "checking for GCC 3 or later... " >&6; } + DEPEND_CFLAGS_FILTER= + if test "$GCC" = yes; then + gccmajor=`echo "$gccversion" | sed -e 's/^\([1-9]\)\..*$/\1/g'` + if test "$gccmajor" -gt "2"; then + DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" +! fi +! fi +! if test "$DEPEND_CFLAGS_FILTER" = ""; then +! { $as_echo "$as_me:$LINENO: result: no" >&5 + $as_echo "no" >&6; } +! else +! { $as_echo "$as_me:$LINENO: result: yes" >&5 + $as_echo "yes" >&6; } + fi + + +--- 16819,16847 ---- + LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc" + fi + + DEPEND_CFLAGS_FILTER= + if test "$GCC" = yes; then ++ { $as_echo "$as_me:$LINENO: checking for GCC 3 or later" >&5 ++ $as_echo_n "checking for GCC 3 or later... " >&6; } + gccmajor=`echo "$gccversion" | sed -e 's/^\([1-9]\)\..*$/\1/g'` + if test "$gccmajor" -gt "2"; then + DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" +! { $as_echo "$as_me:$LINENO: result: yes" >&5 +! $as_echo "yes" >&6; } +! else +! { $as_echo "$as_me:$LINENO: result: no" >&5 + $as_echo "no" >&6; } +! fi +! { $as_echo "$as_me:$LINENO: checking whether we need -D_FORTIFY_SOURCE=1" >&5 +! $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; } +! if test "$gccmajor" -gt "3"; then +! CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1" +! { $as_echo "$as_me:$LINENO: result: yes" >&5 + $as_echo "yes" >&6; } ++ else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++ $as_echo "no" >&6; } ++ fi + fi + + +*** ../vim-7.2.043/src/configure.in Thu Jul 24 17:20:31 2008 +--- src/configure.in Sun Nov 16 17:08:40 2008 +*************** +*** 3152,3169 **** + dnl But only when making dependencies, cproto and lint don't take "-isystem". + dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow + dnl the number before the version number. +- AC_MSG_CHECKING(for GCC 3 or later) + DEPEND_CFLAGS_FILTER= + if test "$GCC" = yes; then + gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'` + if test "$gccmajor" -gt "2"; then + DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" + fi +- fi +- if test "$DEPEND_CFLAGS_FILTER" = ""; then +- AC_MSG_RESULT(no) +- else +- AC_MSG_RESULT(yes) + fi + AC_SUBST(DEPEND_CFLAGS_FILTER) + +--- 3152,3176 ---- + dnl But only when making dependencies, cproto and lint don't take "-isystem". + dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow + dnl the number before the version number. + DEPEND_CFLAGS_FILTER= + if test "$GCC" = yes; then ++ AC_MSG_CHECKING(for GCC 3 or later) + gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'` + if test "$gccmajor" -gt "2"; then + DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'" ++ AC_MSG_RESULT(yes) ++ else ++ AC_MSG_RESULT(no) ++ fi ++ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is ++ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0. ++ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1) ++ if test "$gccmajor" -gt "3"; then ++ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1" ++ AC_MSG_RESULT(yes) ++ else ++ AC_MSG_RESULT(no) + fi + fi + AC_SUBST(DEPEND_CFLAGS_FILTER) + +*** ../vim-7.2.043/src/eval.c Wed Nov 12 15:28:37 2008 +--- src/eval.c Sun Nov 16 20:46:28 2008 +*************** +*** 21150,21157 **** + init_var_dict(&fc.l_avars, &fc.l_avars_var); + add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0", + (varnumber_T)(argcount - fp->uf_args.ga_len)); + v = &fc.fixvar[fixvar_idx++].var; +! STRCPY(v->di_key, "000"); + v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; + hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v)); + v->di_tv.v_type = VAR_LIST; +--- 21150,21160 ---- + init_var_dict(&fc.l_avars, &fc.l_avars_var); + add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0", + (varnumber_T)(argcount - fp->uf_args.ga_len)); ++ /* Use "name" to avoid a warning from some compiler that checks the ++ * destination size. */ + v = &fc.fixvar[fixvar_idx++].var; +! name = v->di_key; +! STRCPY(name, "000"); + v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; + hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v)); + v->di_tv.v_type = VAR_LIST; +*** ../vim-7.2.043/src/version.c Thu Nov 20 10:26:19 2008 +--- src/version.c Thu Nov 20 10:34:31 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 44, + /**/ + +-- +Error:015 - Unable to exit Windows. Try the door. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.045 b/source/ap/vim/patches/7.2.045 new file mode 100644 index 000000000..cf37908d2 --- /dev/null +++ b/source/ap/vim/patches/7.2.045 @@ -0,0 +1,67 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.045 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.045 +Problem: The Python interface has an empty entry in sys.path. +Solution: Filter out the empty entry. (idea from James Vega) +Files: src/if_python.c + + +*** ../vim-7.2.044/src/if_python.c Thu Jul 24 16:24:48 2008 +--- src/if_python.c Thu Nov 20 11:03:53 2008 +*************** +*** 531,536 **** +--- 531,542 ---- + if (PythonMod_Init()) + goto fail; + ++ /* Remove the element from sys.path that was added because of our ++ * argv[0] value in PythonMod_Init(). Previously we used an empty ++ * string, but dependinding on the OS we then get an empty entry or ++ * the current directory in sys.path. */ ++ PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)"); ++ + /* the first python thread is vim's, release the lock */ + Python_SaveThread(); + +*************** +*** 2345,2351 **** + { + PyObject *mod; + PyObject *dict; +! static char *(argv[2]) = {"", NULL}; + + /* Fixups... */ + BufferType.ob_type = &PyType_Type; +--- 2351,2358 ---- + { + PyObject *mod; + PyObject *dict; +! /* The special value is removed from sys.path in Python_Init(). */ +! static char *(argv[2]) = {"/must>not&exist/foo", NULL}; + + /* Fixups... */ + BufferType.ob_type = &PyType_Type; +*** ../vim-7.2.044/src/version.c Thu Nov 20 10:36:04 2008 +--- src/version.c Thu Nov 20 10:58:11 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 45, + /**/ + +-- +press CTRL-ALT-DEL for more information + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.046 b/source/ap/vim/patches/7.2.046 new file mode 100644 index 000000000..335f814d5 --- /dev/null +++ b/source/ap/vim/patches/7.2.046 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.046 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.046 +Problem: Wrong check for filling buffer with encoding. (Danek Duvall) +Solution: Remove pointers. (Dominique Pelle) +Files: src/mbyte.c + + +*** ../vim-7.2.045/src/mbyte.c Wed Nov 12 13:07:48 2008 +--- src/mbyte.c Wed Nov 19 21:44:50 2008 +*************** +*** 3131,3137 **** + else + s = p + 1; + } +! for (i = 0; s[i] != NUL && s + i < buf + sizeof(buf) - 1; ++i) + { + if (s[i] == '_' || s[i] == '-') + buf[i] = '-'; +--- 3131,3137 ---- + else + s = p + 1; + } +! for (i = 0; s[i] != NUL && i < sizeof(buf) - 1; ++i) + { + if (s[i] == '_' || s[i] == '-') + buf[i] = '-'; +*** ../vim-7.2.045/src/version.c Thu Nov 20 11:04:01 2008 +--- src/version.c Thu Nov 20 11:54:23 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 46, + /**/ + +-- + He was not in the least bit scared to be mashed into a pulp + Or to have his eyes gouged out and his elbows broken; + To have his kneecaps split and his body burned away + And his limbs all hacked and mangled, brave Sir Robin. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.047 b/source/ap/vim/patches/7.2.047 new file mode 100644 index 000000000..5826d2a98 --- /dev/null +++ b/source/ap/vim/patches/7.2.047 @@ -0,0 +1,88 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.047 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.047 +Problem: Starting Vim with the -nb argument while it's not supported causes + the other side to hang. +Solution: When -nb is used while it's not supported exit Vim. (Xavier de + Gaye) +Files: src/main.c, src/vim.h + + +*** ../vim-7.2.046/src/main.c Sat Nov 15 14:10:23 2008 +--- src/main.c Thu Nov 20 14:09:27 2008 +*************** +*** 1510,1516 **** + early_arg_scan(parmp) + mparm_T *parmp; + { +! #if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) + int argc = parmp->argc; + char **argv = parmp->argv; + int i; +--- 1510,1517 ---- + early_arg_scan(parmp) + mparm_T *parmp; + { +! #if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) \ +! || !defined(FEAT_NETBEANS_INTG) + int argc = parmp->argc; + char **argv = parmp->argv; + int i; +*************** +*** 1582,1587 **** +--- 1583,1596 ---- + else if (STRICMP(argv[i], "--echo-wid") == 0) + echo_wid_arg = TRUE; + # endif ++ # ifndef FEAT_NETBEANS_INTG ++ else if (strncmp(argv[i], "-nb", (size_t)3) == 0) ++ { ++ mch_errmsg(_("'-nb' cannot be used: not enabled at compile time\n")); ++ mch_exit(2); ++ } ++ # endif ++ + } + #endif + } +*** ../vim-7.2.046/src/vim.h Thu Nov 20 10:26:19 2008 +--- src/vim.h Thu Nov 20 12:06:14 2008 +*************** +*** 1986,1991 **** +--- 1986,1994 ---- + # endif + #endif + ++ #ifndef FEAT_NETBEANS_INTG ++ # undef NBDEBUG ++ #endif + #ifdef NBDEBUG /* Netbeans debugging. */ + # include "nbdebug.h" + #else +*** ../vim-7.2.046/src/version.c Thu Nov 20 11:55:53 2008 +--- src/version.c Thu Nov 20 14:07:57 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 47, + /**/ + +-- +FIRST HEAD: Oh! quick! get the sword out I want to cut his head off. +THIRD HEAD: Oh, cut your own head off. +SECOND HEAD: Yes - do us all a favour. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.048 b/source/ap/vim/patches/7.2.048 new file mode 100644 index 000000000..3975308b5 --- /dev/null +++ b/source/ap/vim/patches/7.2.048 @@ -0,0 +1,160 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.048 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.048 +Problem: v:prevcount is changed too often. Counts are not multiplied when + setting v:count. +Solution: Set v:prevcount properly. Multiply counts. (idea by Ben Schmidt) +Files: src/eval.c, src/normal.c, src/proto/eval.pro + + +*** ../vim-7.2.047/src/eval.c Thu Nov 20 10:36:04 2008 +--- src/eval.c Thu Nov 20 15:53:47 2008 +*************** +*** 18146,18159 **** + } + + /* +! * Set v:count, v:count1 and v:prevcount. + */ + void +! set_vcount(count, count1) + long count; + long count1; + { +! vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr; + vimvars[VV_COUNT].vv_nr = count; + vimvars[VV_COUNT1].vv_nr = count1; + } +--- 18146,18162 ---- + } + + /* +! * Set v:count to "count" and v:count1 to "count1". +! * When "set_prevcount" is TRUE first set v:prevcount from v:count. + */ + void +! set_vcount(count, count1, set_prevcount) + long count; + long count1; ++ int set_prevcount; + { +! if (set_prevcount) +! vimvars[VV_PREVCOUNT].vv_nr = vimvars[VV_COUNT].vv_nr; + vimvars[VV_COUNT].vv_nr = count; + vimvars[VV_COUNT1].vv_nr = count1; + } +*** ../vim-7.2.047/src/normal.c Sat Nov 15 14:10:23 2008 +--- src/normal.c Thu Nov 20 16:04:44 2008 +*************** +*** 580,585 **** +--- 580,588 ---- + static int old_mapped_len = 0; + #endif + int idx; ++ #ifdef FEAT_EVAL ++ int set_prevcount = FALSE; ++ #endif + + vim_memset(&ca, 0, sizeof(ca)); /* also resets ca.retval */ + ca.oap = oap; +*************** +*** 615,621 **** +--- 618,629 ---- + /* When not finishing an operator and no register name typed, reset the + * count. */ + if (!finish_op && !oap->regname) ++ { + ca.opcount = 0; ++ #ifdef FEAT_EVAL ++ set_prevcount = TRUE; ++ #endif ++ } + + #ifdef FEAT_AUTOCMD + /* Restore counts from before receiving K_CURSORHOLD. This means after +*************** +*** 719,725 **** + * command, so that v:count can be used in an expression mapping + * right after the count. */ + if (toplevel && stuff_empty()) +! set_vcount(ca.count0, ca.count0 == 0 ? 1 : ca.count0); + #endif + if (ctrl_w) + { +--- 727,741 ---- + * command, so that v:count can be used in an expression mapping + * right after the count. */ + if (toplevel && stuff_empty()) +! { +! long count = ca.count0; +! +! /* multiply with ca.opcount the same way as below */ +! if (ca.opcount != 0) +! count = ca.opcount * (count == 0 ? 1 : count); +! set_vcount(count, count == 0 ? 1 : count, set_prevcount); +! set_prevcount = FALSE; /* only set v:prevcount once */ +! } + #endif + if (ctrl_w) + { +*************** +*** 806,812 **** + * Only set v:count when called from main() and not a stuffed command. + */ + if (toplevel && stuff_empty()) +! set_vcount(ca.count0, ca.count1); + #endif + + /* +--- 822,828 ---- + * Only set v:count when called from main() and not a stuffed command. + */ + if (toplevel && stuff_empty()) +! set_vcount(ca.count0, ca.count1, set_prevcount); + #endif + + /* +*** ../vim-7.2.047/src/proto/eval.pro Sun Nov 9 13:43:25 2008 +--- src/proto/eval.pro Thu Nov 20 15:53:54 2008 +*************** +*** 61,67 **** + long get_vim_var_nr __ARGS((int idx)); + char_u *get_vim_var_str __ARGS((int idx)); + list_T *get_vim_var_list __ARGS((int idx)); +! void set_vcount __ARGS((long count, long count1)); + void set_vim_var_string __ARGS((int idx, char_u *val, int len)); + void set_vim_var_list __ARGS((int idx, list_T *val)); + void set_reg_var __ARGS((int c)); +--- 61,67 ---- + long get_vim_var_nr __ARGS((int idx)); + char_u *get_vim_var_str __ARGS((int idx)); + list_T *get_vim_var_list __ARGS((int idx)); +! void set_vcount __ARGS((long count, long count1, int set_prevcount)); + void set_vim_var_string __ARGS((int idx, char_u *val, int len)); + void set_vim_var_list __ARGS((int idx, list_T *val)); + void set_reg_var __ARGS((int c)); +*** ../vim-7.2.047/src/version.c Thu Nov 20 14:11:47 2008 +--- src/version.c Thu Nov 20 16:08:19 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 48, + /**/ + +-- +Microsoft's definition of a boolean: TRUE, FALSE, MAYBE +"Embrace and extend"...? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.049 b/source/ap/vim/patches/7.2.049 new file mode 100644 index 000000000..0f6efa87f --- /dev/null +++ b/source/ap/vim/patches/7.2.049 @@ -0,0 +1,1193 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.049 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.049 (extra) +Problem: Win32: the clipboard doesn't support UTF-16. +Solution: Change UCS-2 support to UTF-16 support. (Jia Yanwei) +Files: src/gui_w32.c, src/gui_w48.c, src/mbyte.c, src/misc1.c, + src/os_mswin.c, src/os_win32.c, src/proto/os_mswin.pro + + +*** ../vim-7.2.048/src/gui_w32.c Tue Jun 24 23:46:14 2008 +--- src/gui_w32.c Thu Nov 20 16:47:10 2008 +*************** +*** 992,998 **** + SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, + 0, 500); + +! tt_text = enc_to_ucs2(str, NULL); + lpdi->lpszText = tt_text; + /* can't show tooltip if failed */ + } +--- 992,998 ---- + SendMessage(lpdi->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, + 0, 500); + +! tt_text = enc_to_utf16(str, NULL); + lpdi->lpszText = tt_text; + /* can't show tooltip if failed */ + } +*************** +*** 1935,1941 **** + if (buf == NULL) + return NULL; + +! convbuf = ucs2_to_enc(buf, lenp); + pImmReleaseContext(hwnd, hIMC); + vim_free(buf); + return convbuf; +--- 1935,1941 ---- + if (buf == NULL) + return NULL; + +! convbuf = utf16_to_enc(buf, lenp); + pImmReleaseContext(hwnd, hIMC); + vim_free(buf); + return convbuf; +*************** +*** 2566,2572 **** + { + /* 'encoding' differs from active codepage: convert menu name + * and use wide function */ +! wn = enc_to_ucs2(menu->name, NULL); + if (wn != NULL) + { + MENUITEMINFOW infow; +--- 2566,2572 ---- + { + /* 'encoding' differs from active codepage: convert menu name + * and use wide function */ +! wn = enc_to_utf16(menu->name, NULL); + if (wn != NULL) + { + MENUITEMINFOW infow; +*************** +*** 2728,2734 **** + { + /* 'encoding' differs from active codepage: convert menu item name + * and use wide function */ +! wn = enc_to_ucs2(menu->name, NULL); + if (wn != NULL) + { + n = InsertMenuW(parent->submenu_id, (UINT)idx, +--- 2728,2734 ---- + { + /* 'encoding' differs from active codepage: convert menu item name + * and use wide function */ +! wn = enc_to_utf16(menu->name, NULL); + if (wn != NULL) + { + n = InsertMenuW(parent->submenu_id, (UINT)idx, +*************** +*** 3570,3576 **** + if (enc_codepage == 0 && (int)GetACP() != enc_codepage) + { + /* Not a codepage, use our own conversion function. */ +! wn = enc_to_ucs2(lpAnsiIn, NULL); + if (wn != NULL) + { + wcscpy(lpWCStr, wn); +--- 3570,3576 ---- + if (enc_codepage == 0 && (int)GetACP() != enc_codepage) + { + /* Not a codepage, use our own conversion function. */ +! wn = enc_to_utf16(lpAnsiIn, NULL); + if (wn != NULL) + { + wcscpy(lpWCStr, wn); +*** ../vim-7.2.048/src/gui_w48.c Wed Nov 12 13:35:31 2008 +--- src/gui_w48.c Thu Nov 20 16:42:32 2008 +*************** +*** 547,553 **** + else + { + len = 1; +! ws = ucs2_to_enc(wstring, &len); + if (ws == NULL) + len = 0; + else +--- 547,553 ---- + else + { + len = 1; +! ws = utf16_to_enc(wstring, &len); + if (ws == NULL) + len = 0; + else +*************** +*** 2128,2134 **** + { + /* 'encoding' differs from active codepage: convert text and use wide + * function */ +! wstr = enc_to_ucs2(str, &wlen); + if (wstr != NULL) + { + n = GetTextExtentPointW(hdc, wstr, wlen, &size); +--- 2128,2134 ---- + { + /* 'encoding' differs from active codepage: convert text and use wide + * function */ +! wstr = enc_to_utf16(str, &wlen); + if (wstr != NULL) + { + n = GetTextExtentPointW(hdc, wstr, wlen, &size); +*************** +*** 2252,2258 **** + { + /* 'encoding' differs from active codepage: convert menu name + * and use wide function */ +! wn = enc_to_ucs2(item_text, NULL); + if (wn != NULL) + { + MENUITEMINFOW infow; +--- 2252,2258 ---- + { + /* 'encoding' differs from active codepage: convert menu name + * and use wide function */ +! wn = enc_to_utf16(item_text, NULL); + if (wn != NULL) + { + MENUITEMINFOW infow; +*************** +*** 2422,2428 **** + if (use_unicode) + { + /* Need to go through Unicode. */ +! wstr = enc_to_ucs2(NameBuff, NULL); + if (wstr != NULL) + { + TCITEMW tiw; +--- 2422,2428 ---- + if (use_unicode) + { + /* Need to go through Unicode. */ +! wstr = enc_to_utf16(NameBuff, NULL); + if (wstr != NULL) + { + TCITEMW tiw; +*************** +*** 2521,2528 **** + WCHAR *wbuf; + int n; + +! /* Convert the title from 'encoding' to ucs2. */ +! wbuf = (WCHAR *)enc_to_ucs2((char_u *)title, NULL); + if (wbuf != NULL) + { + n = SetWindowTextW(hwnd, wbuf); +--- 2521,2528 ---- + WCHAR *wbuf; + int n; + +! /* Convert the title from 'encoding' to UTF-16. */ +! wbuf = (WCHAR *)enc_to_utf16((char_u *)title, NULL); + if (wbuf != NULL) + { + n = SetWindowTextW(hwnd, wbuf); +*************** +*** 3222,3228 **** + char_u *initdir, + char_u *filter) + { +! /* We always use the wide function. This means enc_to_ucs2() must work, + * otherwise it fails miserably! */ + OPENFILENAMEW fileStruct; + WCHAR fileBuf[MAXPATHL]; +--- 3222,3228 ---- + char_u *initdir, + char_u *filter) + { +! /* We always use the wide function. This means enc_to_utf16() must work, + * otherwise it fails miserably! */ + OPENFILENAMEW fileStruct; + WCHAR fileBuf[MAXPATHL]; +*************** +*** 3238,3244 **** + fileBuf[0] = NUL; + else + { +! wp = enc_to_ucs2(dflt, NULL); + if (wp == NULL) + fileBuf[0] = NUL; + else +--- 3238,3244 ---- + fileBuf[0] = NUL; + else + { +! wp = enc_to_utf16(dflt, NULL); + if (wp == NULL) + fileBuf[0] = NUL; + else +*************** +*** 3263,3273 **** + #endif + + if (title != NULL) +! titlep = enc_to_ucs2(title, NULL); + fileStruct.lpstrTitle = titlep; + + if (ext != NULL) +! extp = enc_to_ucs2(ext, NULL); + fileStruct.lpstrDefExt = extp; + + fileStruct.lpstrFile = fileBuf; +--- 3263,3273 ---- + #endif + + if (title != NULL) +! titlep = enc_to_utf16(title, NULL); + fileStruct.lpstrTitle = titlep; + + if (ext != NULL) +! extp = enc_to_utf16(ext, NULL); + fileStruct.lpstrDefExt = extp; + + fileStruct.lpstrFile = fileBuf; +*************** +*** 3278,3284 **** + if (initdir != NULL && *initdir != NUL) + { + /* Must have backslashes here, no matter what 'shellslash' says */ +! initdirp = enc_to_ucs2(initdir, NULL); + if (initdirp != NULL) + { + for (wp = initdirp; *wp != NUL; ++wp) +--- 3278,3284 ---- + if (initdir != NULL && *initdir != NUL) + { + /* Must have backslashes here, no matter what 'shellslash' says */ +! initdirp = enc_to_utf16(initdir, NULL); + if (initdirp != NULL) + { + for (wp = initdirp; *wp != NUL; ++wp) +*************** +*** 3318,3324 **** + vim_free(extp); + + /* Convert from UCS2 to 'encoding'. */ +! p = ucs2_to_enc(fileBuf, NULL); + if (p != NULL) + /* when out of memory we get garbage for non-ASCII chars */ + STRCPY(fileBuf, p); +--- 3318,3324 ---- + vim_free(extp); + + /* Convert from UCS2 to 'encoding'. */ +! p = utf16_to_enc(fileBuf, NULL); + if (p != NULL) + /* when out of memory we get garbage for non-ASCII chars */ + STRCPY(fileBuf, p); +*************** +*** 3518,3524 **** + { + #ifdef FEAT_MBYTE + if (DragQueryFileW(hDrop, i, wszFile, BUFPATHLEN) > 0) +! fnames[i] = ucs2_to_enc(wszFile, NULL); + else + #endif + { +--- 3518,3524 ---- + { + #ifdef FEAT_MBYTE + if (DragQueryFileW(hDrop, i, wszFile, BUFPATHLEN) > 0) +! fnames[i] = utf16_to_enc(wszFile, NULL); + else + #endif + { +*** ../vim-7.2.048/src/mbyte.c Thu Nov 20 11:55:53 2008 +--- src/mbyte.c Thu Nov 20 16:47:41 2008 +*************** +*** 6101,6107 **** + + /* 1. codepage/UTF-8 -> ucs-2. */ + if (vcp->vc_cpfrom == 0) +! tmp_len = utf8_to_ucs2(ptr, len, NULL, NULL); + else + tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, 0, + ptr, len, 0, 0); +--- 6101,6107 ---- + + /* 1. codepage/UTF-8 -> ucs-2. */ + if (vcp->vc_cpfrom == 0) +! tmp_len = utf8_to_utf16(ptr, len, NULL, NULL); + else + tmp_len = MultiByteToWideChar(vcp->vc_cpfrom, 0, + ptr, len, 0, 0); +*************** +*** 6109,6121 **** + if (tmp == NULL) + break; + if (vcp->vc_cpfrom == 0) +! utf8_to_ucs2(ptr, len, tmp, unconvlenp); + else + MultiByteToWideChar(vcp->vc_cpfrom, 0, ptr, len, tmp, tmp_len); + + /* 2. ucs-2 -> codepage/UTF-8. */ + if (vcp->vc_cpto == 0) +! retlen = ucs2_to_utf8(tmp, tmp_len, NULL); + else + retlen = WideCharToMultiByte(vcp->vc_cpto, 0, + tmp, tmp_len, 0, 0, 0, 0); +--- 6109,6121 ---- + if (tmp == NULL) + break; + if (vcp->vc_cpfrom == 0) +! utf8_to_utf16(ptr, len, tmp, unconvlenp); + else + MultiByteToWideChar(vcp->vc_cpfrom, 0, ptr, len, tmp, tmp_len); + + /* 2. ucs-2 -> codepage/UTF-8. */ + if (vcp->vc_cpto == 0) +! retlen = utf16_to_utf8(tmp, tmp_len, NULL); + else + retlen = WideCharToMultiByte(vcp->vc_cpto, 0, + tmp, tmp_len, 0, 0, 0, 0); +*************** +*** 6123,6129 **** + if (retval != NULL) + { + if (vcp->vc_cpto == 0) +! ucs2_to_utf8(tmp, tmp_len, retval); + else + WideCharToMultiByte(vcp->vc_cpto, 0, + tmp, tmp_len, retval, retlen, 0, 0); +--- 6123,6129 ---- + if (retval != NULL) + { + if (vcp->vc_cpto == 0) +! utf16_to_utf8(tmp, tmp_len, retval); + else + WideCharToMultiByte(vcp->vc_cpto, 0, + tmp, tmp_len, retval, retlen, 0, 0); +*** ../vim-7.2.048/src/misc1.c Sun Nov 9 13:43:25 2008 +--- src/misc1.c Thu Nov 20 16:42:59 2008 +*************** +*** 8728,8734 **** + /* The active codepage differs from 'encoding'. Attempt using the + * wide function. If it fails because it is not implemented fall back + * to the non-wide version (for Windows 98) */ +! wn = enc_to_ucs2(buf, NULL); + if (wn != NULL) + { + hFind = FindFirstFileW(wn, &wfb); +--- 8728,8734 ---- + /* The active codepage differs from 'encoding'. Attempt using the + * wide function. If it fails because it is not implemented fall back + * to the non-wide version (for Windows 98) */ +! wn = enc_to_utf16(buf, NULL); + if (wn != NULL) + { + hFind = FindFirstFileW(wn, &wfb); +*************** +*** 8756,8762 **** + #ifdef WIN3264 + # ifdef FEAT_MBYTE + if (wn != NULL) +! p = ucs2_to_enc(wfb.cFileName, NULL); /* p is allocated here */ + else + # endif + p = (char_u *)fb.cFileName; +--- 8756,8762 ---- + #ifdef WIN3264 + # ifdef FEAT_MBYTE + if (wn != NULL) +! p = utf16_to_enc(wfb.cFileName, NULL); /* p is allocated here */ + else + # endif + p = (char_u *)fb.cFileName; +*************** +*** 8830,8836 **** + if (wn != NULL) + { + vim_free(wn); +! wn = enc_to_ucs2(buf, NULL); + if (wn != NULL) + hFind = FindFirstFileW(wn, &wfb); + } +--- 8830,8836 ---- + if (wn != NULL) + { + vim_free(wn); +! wn = enc_to_utf16(buf, NULL); + if (wn != NULL) + hFind = FindFirstFileW(wn, &wfb); + } +*** ../vim-7.2.048/src/os_mswin.c Sat Aug 9 19:37:30 2008 +--- src/os_mswin.c Thu Nov 20 17:05:10 2008 +*************** +*** 309,315 **** + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { + /* Convert the title from 'encoding' to the active codepage. */ +! WCHAR *wp = enc_to_ucs2(title, NULL); + int n; + + if (wp != NULL) +--- 309,315 ---- + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { + /* Convert the title from 'encoding' to the active codepage. */ +! WCHAR *wp = enc_to_utf16(title, NULL); + int n; + + if (wp != NULL) +*************** +*** 406,415 **** + * - invoke _wfullpath() + * - convert the result from UCS2 to 'encoding'. + */ +! wname = enc_to_ucs2(fname, NULL); + if (wname != NULL && _wfullpath(wbuf, wname, MAX_PATH - 1) != NULL) + { +! cname = ucs2_to_enc((short_u *)wbuf, NULL); + if (cname != NULL) + { + vim_strncpy(buf, cname, len - 1); +--- 406,415 ---- + * - invoke _wfullpath() + * - convert the result from UCS2 to 'encoding'. + */ +! wname = enc_to_utf16(fname, NULL); + if (wname != NULL && _wfullpath(wbuf, wname, MAX_PATH - 1) != NULL) + { +! cname = utf16_to_enc((short_u *)wbuf, NULL); + if (cname != NULL) + { + vim_strncpy(buf, cname, len - 1); +*************** +*** 507,513 **** + # endif + ) + { +! WCHAR *wp = enc_to_ucs2(buf, NULL); + int n; + + if (wp != NULL) +--- 507,513 ---- + # endif + ) + { +! WCHAR *wp = enc_to_utf16(buf, NULL); + int n; + + if (wp != NULL) +*************** +*** 668,674 **** + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! WCHAR *p = enc_to_ucs2(path, NULL); + int n; + + if (p != NULL) +--- 668,674 ---- + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! WCHAR *p = enc_to_utf16(path, NULL); + int n; + + if (p != NULL) +*************** +*** 891,909 **** + + #if defined(FEAT_MBYTE) || defined(PROTO) + /* +! * Convert an UTF-8 string to UCS-2. + * "instr[inlen]" is the input. "inlen" is in bytes. +! * When "outstr" is NULL only return the number of UCS-2 words produced. + * Otherwise "outstr" must be a buffer of sufficient size. +! * Returns the number of UCS-2 words produced. + */ + int +! utf8_to_ucs2(char_u *instr, int inlen, short_u *outstr, int *unconvlenp) + { + int outlen = 0; + char_u *p = instr; + int todo = inlen; + int l; + + while (todo > 0) + { +--- 891,910 ---- + + #if defined(FEAT_MBYTE) || defined(PROTO) + /* +! * Convert an UTF-8 string to UTF-16. + * "instr[inlen]" is the input. "inlen" is in bytes. +! * When "outstr" is NULL only return the number of UTF-16 words produced. + * Otherwise "outstr" must be a buffer of sufficient size. +! * Returns the number of UTF-16 words produced. + */ + int +! utf8_to_utf16(char_u *instr, int inlen, short_u *outstr, int *unconvlenp) + { + int outlen = 0; + char_u *p = instr; + int todo = inlen; + int l; ++ int ch; + + while (todo > 0) + { +*************** +*** 917,924 **** + break; + } + +! if (outstr != NULL) +! *outstr++ = utf_ptr2char(p); + ++outlen; + p += l; + todo -= l; +--- 918,936 ---- + break; + } + +! ch = utf_ptr2char(p); +! if (ch >= 0x10000) +! { +! /* non-BMP character, encoding with surrogate pairs */ +! ++outlen; +! if (outstr != NULL) +! { +! *outstr++ = (0xD800 - (0x10000 >> 10)) + (ch >> 10); +! *outstr++ = 0xDC00 | (ch & 0x3FF); +! } +! } +! else if (outstr != NULL) +! *outstr++ = ch; + ++outlen; + p += l; + todo -= l; +*************** +*** 928,956 **** + } + + /* +! * Convert an UCS-2 string to UTF-8. +! * The input is "instr[inlen]" with "inlen" in number of ucs-2 words. + * When "outstr" is NULL only return the required number of bytes. + * Otherwise "outstr" must be a buffer of sufficient size. + * Return the number of bytes produced. + */ + int +! ucs2_to_utf8(short_u *instr, int inlen, char_u *outstr) + { + int outlen = 0; + int todo = inlen; + short_u *p = instr; + int l; + + while (todo > 0) + { + if (outstr != NULL) + { +! l = utf_char2bytes(*p, outstr); + outstr += l; + } + else +! l = utf_char2len(*p); + ++p; + outlen += l; + --todo; +--- 940,981 ---- + } + + /* +! * Convert an UTF-16 string to UTF-8. +! * The input is "instr[inlen]" with "inlen" in number of UTF-16 words. + * When "outstr" is NULL only return the required number of bytes. + * Otherwise "outstr" must be a buffer of sufficient size. + * Return the number of bytes produced. + */ + int +! utf16_to_utf8(short_u *instr, int inlen, char_u *outstr) + { + int outlen = 0; + int todo = inlen; + short_u *p = instr; + int l; ++ int ch, ch2; + + while (todo > 0) + { ++ ch = *p; ++ if (ch >= 0xD800 && ch <= 0xDBFF && todo > 1) ++ { ++ /* surrogate pairs handling */ ++ ch2 = p[1]; ++ if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) ++ { ++ ch = ((ch - 0xD800) << 10) + (ch2 & 0x3FF) + 0x10000; ++ ++p; ++ --todo; ++ } ++ } + if (outstr != NULL) + { +! l = utf_char2bytes(ch, outstr); + outstr += l; + } + else +! l = utf_char2len(ch); + ++p; + outlen += l; + --todo; +*************** +*** 1079,1092 **** + */ + + /* +! * Convert "str" from 'encoding' to UCS-2. + * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen(). + * Output is returned as an allocated string. "*lenp" is set to the length of + * the result. A trailing NUL is always added. + * Returns NULL when out of memory. + */ + short_u * +! enc_to_ucs2(char_u *str, int *lenp) + { + vimconv_T conv; + WCHAR *ret; +--- 1104,1117 ---- + */ + + /* +! * Convert "str" from 'encoding' to UTF-16. + * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen(). + * Output is returned as an allocated string. "*lenp" is set to the length of + * the result. A trailing NUL is always added. + * Returns NULL when out of memory. + */ + short_u * +! enc_to_utf16(char_u *str, int *lenp) + { + vimconv_T conv; + WCHAR *ret; +*************** +*** 1102,1108 **** + + if (enc_codepage > 0) + { +! /* We can do any CP### -> UCS-2 in one pass, and we can do it + * without iconv() (convert_* may need iconv). */ + MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length); + } +--- 1127,1133 ---- + + if (enc_codepage > 0) + { +! /* We can do any CP### -> UTF-16 in one pass, and we can do it + * without iconv() (convert_* may need iconv). */ + MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length); + } +*************** +*** 1123,1133 **** + } + convert_setup(&conv, NULL, NULL); + +! length = utf8_to_ucs2(str, *lenp, NULL, NULL); + ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR))); + if (ret != NULL) + { +! utf8_to_ucs2(str, *lenp, (short_u *)ret, NULL); + ret[length] = 0; + } + +--- 1148,1158 ---- + } + convert_setup(&conv, NULL, NULL); + +! length = utf8_to_utf16(str, *lenp, NULL, NULL); + ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR))); + if (ret != NULL) + { +! utf8_to_utf16(str, *lenp, (short_u *)ret, NULL); + ret[length] = 0; + } + +*************** +*** 1139,1145 **** + } + + /* +! * Convert an UCS-2 string to 'encoding'. + * Input in "str" with length (counted in wide characters) "*lenp". When + * "lenp" is NULL, use wcslen(). + * Output is returned as an allocated string. If "*lenp" is not NULL it is +--- 1164,1170 ---- + } + + /* +! * Convert an UTF-16 string to 'encoding'. + * Input in "str" with length (counted in wide characters) "*lenp". When + * "lenp" is NULL, use wcslen(). + * Output is returned as an allocated string. If "*lenp" is not NULL it is +*************** +*** 1147,1153 **** + * Returns NULL when out of memory. + */ + char_u * +! ucs2_to_enc(short_u *str, int *lenp) + { + vimconv_T conv; + char_u *utf8_str = NULL, *enc_str = NULL; +--- 1172,1178 ---- + * Returns NULL when out of memory. + */ + char_u * +! utf16_to_enc(short_u *str, int *lenp) + { + vimconv_T conv; + char_u *utf8_str = NULL, *enc_str = NULL; +*************** +*** 1161,1167 **** + + if (enc_codepage > 0) + { +! /* We can do any UCS-2 -> CP### in one pass. */ + int length; + + WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp, +--- 1186,1192 ---- + + if (enc_codepage > 0) + { +! /* We can do any UTF-16 -> CP### in one pass. */ + int length; + + WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp, +*************** +*** 1171,1180 **** + } + + /* Avoid allocating zero bytes, it generates an error message. */ +! utf8_str = alloc(ucs2_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL)); + if (utf8_str != NULL) + { +! *lenp = ucs2_to_utf8(str, *lenp, utf8_str); + + /* We might be called before we have p_enc set up. */ + conv.vc_type = CONV_NONE; +--- 1196,1205 ---- + } + + /* Avoid allocating zero bytes, it generates an error message. */ +! utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL)); + if (utf8_str != NULL) + { +! *lenp = utf16_to_utf8(str, *lenp, utf8_str); + + /* We might be called before we have p_enc set up. */ + conv.vc_type = CONV_NONE; +*************** +*** 1308,1314 **** + if (hMemWstr[str_size] == NUL) + break; + } +! to_free = str = ucs2_to_enc((short_u *)hMemWstr, &str_size); + GlobalUnlock(hMemW); + } + } +--- 1333,1339 ---- + if (hMemWstr[str_size] == NUL) + break; + } +! to_free = str = utf16_to_enc((short_u *)hMemWstr, &str_size); + GlobalUnlock(hMemW); + } + } +*************** +*** 1340,1346 **** + + # if defined(FEAT_MBYTE) && defined(WIN3264) + /* The text is in the active codepage. Convert to 'encoding', +! * going through UCS-2. */ + acp_to_enc(str, str_size, &to_free, &maxlen); + if (to_free != NULL) + { +--- 1365,1371 ---- + + # if defined(FEAT_MBYTE) && defined(WIN3264) + /* The text is in the active codepage. Convert to 'encoding', +! * going through UTF-16. */ + acp_to_enc(str, str_size, &to_free, &maxlen); + if (to_free != NULL) + { +*************** +*** 1404,1410 **** + if (widestr != NULL) + { + ++*outlen; /* Include the 0 after the string */ +! *out = ucs2_to_enc((short_u *)widestr, outlen); + vim_free(widestr); + } + } +--- 1429,1435 ---- + if (widestr != NULL) + { + ++*outlen; /* Include the 0 after the string */ +! *out = utf16_to_enc((short_u *)widestr, outlen); + vim_free(widestr); + } + } +*************** +*** 1466,1474 **** + WCHAR *out; + int len = metadata.txtlen; + +! /* Convert the text to UCS-2. This is put on the clipboard as + * CF_UNICODETEXT. */ +! out = (WCHAR *)enc_to_ucs2(str, &len); + if (out != NULL) + { + WCHAR *lpszMemW; +--- 1491,1499 ---- + WCHAR *out; + int len = metadata.txtlen; + +! /* Convert the text to UTF-16. This is put on the clipboard as + * CF_UNICODETEXT. */ +! out = (WCHAR *)enc_to_utf16(str, &len); + if (out != NULL) + { + WCHAR *lpszMemW; +*************** +*** 1488,1494 **** + WideCharToMultiByte(GetACP(), 0, out, len, + str, metadata.txtlen, 0, 0); + +! /* Allocate memory for the UCS-2 text, add one NUL word to + * terminate the string. */ + hMemW = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, + (len + 1) * sizeof(WCHAR)); +--- 1513,1519 ---- + WideCharToMultiByte(GetACP(), 0, out, len, + str, metadata.txtlen, 0, 0); + +! /* Allocate memory for the UTF-16 text, add one NUL word to + * terminate the string. */ + hMemW = (LPSTR)GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, + (len + 1) * sizeof(WCHAR)); +*** ../vim-7.2.048/src/os_win32.c Thu Jul 24 20:50:30 2008 +--- src/os_win32.c Thu Nov 20 16:44:33 2008 +*************** +*** 1587,1593 **** + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! WCHAR *p = enc_to_ucs2(name, NULL); + WCHAR fnamew[_MAX_PATH]; + WCHAR *dumw; + long n; +--- 1587,1593 ---- + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! WCHAR *p = enc_to_utf16(name, NULL); + WCHAR fnamew[_MAX_PATH]; + WCHAR *dumw; + long n; +*************** +*** 2440,2446 **** + + if (GetCurrentDirectoryW(_MAX_PATH, wbuf) != 0) + { +! char_u *p = ucs2_to_enc(wbuf, NULL); + + if (p != NULL) + { +--- 2440,2446 ---- + + if (GetCurrentDirectoryW(_MAX_PATH, wbuf) != 0) + { +! char_u *p = utf16_to_enc(wbuf, NULL); + + if (p != NULL) + { +*************** +*** 2466,2472 **** + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! WCHAR *p = enc_to_ucs2(name, NULL); + long n; + + if (p != NULL) +--- 2466,2472 ---- + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! WCHAR *p = enc_to_utf16(name, NULL); + long n; + + if (p != NULL) +*************** +*** 2495,2501 **** + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! WCHAR *p = enc_to_ucs2(name, NULL); + long n; + + if (p != NULL) +--- 2495,2501 ---- + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! WCHAR *p = enc_to_utf16(name, NULL); + long n; + + if (p != NULL) +*************** +*** 2522,2528 **** + WCHAR *p = NULL; + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! p = enc_to_ucs2(name, NULL); + #endif + + #ifdef FEAT_MBYTE +--- 2522,2528 ---- + WCHAR *p = NULL; + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! p = enc_to_utf16(name, NULL); + #endif + + #ifdef FEAT_MBYTE +*************** +*** 2590,2596 **** + WCHAR *wn = NULL; + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! wn = enc_to_ucs2(fname, NULL); + if (wn != NULL) + { + hFile = CreateFileW(wn, /* file name */ +--- 2590,2596 ---- + WCHAR *wn = NULL; + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! wn = enc_to_utf16(fname, NULL); + if (wn != NULL) + { + hFile = CreateFileW(wn, /* file name */ +*************** +*** 4239,4245 **** + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! wn = enc_to_ucs2(name, NULL); + if (wn != NULL) + { + SetFileAttributesW(wn, FILE_ATTRIBUTE_NORMAL); +--- 4239,4245 ---- + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! wn = enc_to_utf16(name, NULL); + if (wn != NULL) + { + SetFileAttributesW(wn, FILE_ATTRIBUTE_NORMAL); +*************** +*** 4382,4389 **** + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! wold = enc_to_ucs2((char_u *)pszOldFile, NULL); +! wnew = enc_to_ucs2((char_u *)pszNewFile, NULL); + if (wold != NULL && wnew != NULL) + retval = mch_wrename(wold, wnew); + vim_free(wold); +--- 4382,4389 ---- + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! wold = enc_to_utf16((char_u *)pszOldFile, NULL); +! wnew = enc_to_utf16((char_u *)pszNewFile, NULL); + if (wold != NULL && wnew != NULL) + retval = mch_wrename(wold, wnew); + vim_free(wold); +*************** +*** 4492,4498 **** + WCHAR *wn = NULL; + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! wn = enc_to_ucs2(n, NULL); + #endif + + if (mch_isdir(n)) +--- 4492,4498 ---- + WCHAR *wn = NULL; + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! wn = enc_to_utf16(n, NULL); + #endif + + if (mch_isdir(n)) +*************** +*** 4618,4624 **** + + #if defined(FEAT_MBYTE) || defined(PROTO) + /* +! * Version of open() that may use ucs2 file name. + */ + int + mch_open(char *name, int flags, int mode) +--- 4618,4624 ---- + + #if defined(FEAT_MBYTE) || defined(PROTO) + /* +! * Version of open() that may use UTF-16 file name. + */ + int + mch_open(char *name, int flags, int mode) +*************** +*** 4630,4636 **** + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! wn = enc_to_ucs2(name, NULL); + if (wn != NULL) + { + f = _wopen(wn, flags, mode); +--- 4630,4636 ---- + + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +! wn = enc_to_utf16(name, NULL); + if (wn != NULL) + { + f = _wopen(wn, flags, mode); +*************** +*** 4648,4654 **** + } + + /* +! * Version of fopen() that may use ucs2 file name. + */ + FILE * + mch_fopen(char *name, char *mode) +--- 4648,4654 ---- + } + + /* +! * Version of fopen() that may use UTF-16 file name. + */ + FILE * + mch_fopen(char *name, char *mode) +*************** +*** 4675,4682 **** + else if (newMode == 'b') + _set_fmode(_O_BINARY); + # endif +! wn = enc_to_ucs2(name, NULL); +! wm = enc_to_ucs2(mode, NULL); + if (wn != NULL && wm != NULL) + f = _wfopen(wn, wm); + vim_free(wn); +--- 4675,4682 ---- + else if (newMode == 'b') + _set_fmode(_O_BINARY); + # endif +! wn = enc_to_utf16(name, NULL); +! wm = enc_to_utf16(mode, NULL); + if (wn != NULL && wm != NULL) + f = _wfopen(wn, wm); + vim_free(wn); +*************** +*** 4776,4783 **** + int len; + + /* Convert the file names to wide characters. */ +! fromw = enc_to_ucs2(from, NULL); +! tow = enc_to_ucs2(to, NULL); + if (fromw != NULL && tow != NULL) + { + /* Open the file for reading. */ +--- 4776,4783 ---- + int len; + + /* Convert the file names to wide characters. */ +! fromw = enc_to_utf16(from, NULL); +! tow = enc_to_utf16(to, NULL); + if (fromw != NULL && tow != NULL) + { + /* Open the file for reading. */ +*************** +*** 5122,5128 **** + for (i = 0; i < used_file_count; ++i) + { + idx = used_file_indexes[i]; +! str = ucs2_to_enc(ArglistW[idx], NULL); + if (str != NULL) + { + #ifdef FEAT_DIFF +--- 5122,5128 ---- + for (i = 0; i < used_file_count; ++i) + { + idx = used_file_indexes[i]; +! str = utf16_to_enc(ArglistW[idx], NULL); + if (str != NULL) + { + #ifdef FEAT_DIFF +*** ../vim-7.2.048/src/proto/os_mswin.pro Sat May 5 19:07:50 2007 +--- src/proto/os_mswin.pro Thu Nov 20 16:41:00 2008 +*************** +*** 22,35 **** + int can_end_termcap_mode __ARGS((int give_msg)); + int mch_screenmode __ARGS((char_u *arg)); + int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result)); +! int utf8_to_ucs2 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp)); +! int ucs2_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr)); + void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen)); + void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef)); + int clip_mch_own_selection __ARGS((VimClipboard *cbd)); + void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); +! short_u *enc_to_ucs2 __ARGS((char_u *str, int *lenp)); +! char_u *ucs2_to_enc __ARGS((short_u *str, int *lenp)); + void clip_mch_request_selection __ARGS((VimClipboard *cbd)); + void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); + void clip_mch_set_selection __ARGS((VimClipboard *cbd)); +--- 22,35 ---- + int can_end_termcap_mode __ARGS((int give_msg)); + int mch_screenmode __ARGS((char_u *arg)); + int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result)); +! int utf8_to_utf16 __ARGS((char_u *instr, int inlen, short_u *outstr, int *unconvlenp)); +! int utf16_to_utf8 __ARGS((short_u *instr, int inlen, char_u *outstr)); + void MultiByteToWideChar_alloc __ARGS((UINT cp, DWORD flags, LPCSTR in, int inlen, LPWSTR *out, int *outlen)); + void WideCharToMultiByte_alloc __ARGS((UINT cp, DWORD flags, LPCWSTR in, int inlen, LPSTR *out, int *outlen, LPCSTR def, LPBOOL useddef)); + int clip_mch_own_selection __ARGS((VimClipboard *cbd)); + void clip_mch_lose_selection __ARGS((VimClipboard *cbd)); +! short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp)); +! char_u *utf16_to_enc __ARGS((short_u *str, int *lenp)); + void clip_mch_request_selection __ARGS((VimClipboard *cbd)); + void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); + void clip_mch_set_selection __ARGS((VimClipboard *cbd)); +*** ../vim-7.2.048/src/version.c Thu Nov 20 16:11:03 2008 +--- src/version.c Thu Nov 20 17:08:07 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 49, + /**/ + +-- +FIRST HEAD: All right! All right! We'll kill him first and then have tea and + biscuits. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.050 b/source/ap/vim/patches/7.2.050 new file mode 100644 index 000000000..416d32b1e --- /dev/null +++ b/source/ap/vim/patches/7.2.050 @@ -0,0 +1,316 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.050 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.050 +Problem: Warnings for not checking return value of fwrite(). (Chip Campbell) +Solution: Use the return value. +Files: src/spell.c + + +*** ../vim-7.2.049/src/spell.c Mon Aug 25 04:12:38 2008 +--- src/spell.c Thu Nov 20 17:28:01 2008 +*************** +*** 7926,7931 **** +--- 7926,7933 ---- + char_u *p; + int rr; + int retval = OK; ++ int fwv = 1; /* collect return value of fwrite() to avoid ++ warnings from picky compiler */ + + fd = mch_fopen((char *)fname, "w"); + if (fd == NULL) +*************** +*** 7936,7946 **** + + /* <HEADER>: <fileID> <versionnr> */ + /* <fileID> */ +! if (fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd) != 1) +! { +! EMSG(_(e_write)); +! retval = FAIL; +! } + putc(VIMSPELLVERSION, fd); /* <versionnr> */ + + /* +--- 7938,7944 ---- + + /* <HEADER>: <fileID> <versionnr> */ + /* <fileID> */ +! fwv &= fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd); + putc(VIMSPELLVERSION, fd); /* <versionnr> */ + + /* +*************** +*** 7955,7961 **** + + i = (int)STRLEN(spin->si_info); + put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ +! fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */ + } + + /* SN_REGION: <regionname> ... +--- 7953,7959 ---- + + i = (int)STRLEN(spin->si_info); + put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ +! fwv &= fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */ + } + + /* SN_REGION: <regionname> ... +*************** +*** 7966,7972 **** + putc(SNF_REQUIRED, fd); /* <sectionflags> */ + l = spin->si_region_count * 2; + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +! fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd); + /* <regionname> ... */ + regionmask = (1 << spin->si_region_count) - 1; + } +--- 7964,7970 ---- + putc(SNF_REQUIRED, fd); /* <sectionflags> */ + l = spin->si_region_count * 2; + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +! fwv &= fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd); + /* <regionname> ... */ + regionmask = (1 << spin->si_region_count) - 1; + } +*************** +*** 8016,8022 **** + } + + put_bytes(fd, (long_u)l, 2); /* <folcharslen> */ +! fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */ + } + + /* SN_MIDWORD: <midword> */ +--- 8014,8020 ---- + } + + put_bytes(fd, (long_u)l, 2); /* <folcharslen> */ +! fwv &= fwrite(folchars, (size_t)l, (size_t)1, fd); /* <folchars> */ + } + + /* SN_MIDWORD: <midword> */ +*************** +*** 8027,8033 **** + + i = (int)STRLEN(spin->si_midword); + put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ +! fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); /* <midword> */ + } + + /* SN_PREFCOND: <prefcondcnt> <prefcond> ... */ +--- 8025,8032 ---- + + i = (int)STRLEN(spin->si_midword); + put_bytes(fd, (long_u)i, 4); /* <sectionlen> */ +! fwv &= fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); +! /* <midword> */ + } + + /* SN_PREFCOND: <prefcondcnt> <prefcond> ... */ +*************** +*** 8113,8119 **** + p = rr == 1 ? ftp->ft_from : ftp->ft_to; + l = (int)STRLEN(p); + putc(l, fd); +! fwrite(p, l, (size_t)1, fd); + } + } + +--- 8112,8118 ---- + p = rr == 1 ? ftp->ft_from : ftp->ft_to; + l = (int)STRLEN(p); + putc(l, fd); +! fwv &= fwrite(p, l, (size_t)1, fd); + } + } + +*************** +*** 8131,8141 **** + /* <sectionlen> */ + + put_bytes(fd, (long_u)l, 2); /* <sofofromlen> */ +! fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */ + + l = (int)STRLEN(spin->si_sofoto); + put_bytes(fd, (long_u)l, 2); /* <sofotolen> */ +! fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */ + } + + /* SN_WORDS: <word> ... +--- 8130,8140 ---- + /* <sectionlen> */ + + put_bytes(fd, (long_u)l, 2); /* <sofofromlen> */ +! fwv &= fwrite(spin->si_sofofr, l, (size_t)1, fd); /* <sofofrom> */ + + l = (int)STRLEN(spin->si_sofoto); + put_bytes(fd, (long_u)l, 2); /* <sofotolen> */ +! fwv &= fwrite(spin->si_sofoto, l, (size_t)1, fd); /* <sofoto> */ + } + + /* SN_WORDS: <word> ... +*************** +*** 8160,8166 **** + l = (int)STRLEN(hi->hi_key) + 1; + len += l; + if (round == 2) /* <word> */ +! fwrite(hi->hi_key, (size_t)l, (size_t)1, fd); + --todo; + } + if (round == 1) +--- 8159,8165 ---- + l = (int)STRLEN(hi->hi_key) + 1; + len += l; + if (round == 2) /* <word> */ +! fwv &= fwrite(hi->hi_key, (size_t)l, (size_t)1, fd); + --todo; + } + if (round == 1) +*************** +*** 8176,8182 **** + putc(0, fd); /* <sectionflags> */ + l = spin->si_map.ga_len; + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +! fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd); + /* <mapstr> */ + } + +--- 8175,8181 ---- + putc(0, fd); /* <sectionflags> */ + l = spin->si_map.ga_len; + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +! fwv &= fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd); + /* <mapstr> */ + } + +*************** +*** 8232,8241 **** + { + p = ((char_u **)(spin->si_comppat.ga_data))[i]; + putc((int)STRLEN(p), fd); /* <comppatlen> */ +! fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);/* <comppattext> */ + } + /* <compflags> */ +! fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags), + (size_t)1, fd); + } + +--- 8231,8241 ---- + { + p = ((char_u **)(spin->si_comppat.ga_data))[i]; + putc((int)STRLEN(p), fd); /* <comppatlen> */ +! fwv &= fwrite(p, (size_t)STRLEN(p), (size_t)1, fd); +! /* <comppattext> */ + } + /* <compflags> */ +! fwv &= fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags), + (size_t)1, fd); + } + +*************** +*** 8259,8265 **** + + l = (int)STRLEN(spin->si_syllable); + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +! fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); /* <syllable> */ + } + + /* end of <SECTIONS> */ +--- 8259,8266 ---- + + l = (int)STRLEN(spin->si_syllable); + put_bytes(fd, (long_u)l, 4); /* <sectionlen> */ +! fwv &= fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); +! /* <syllable> */ + } + + /* end of <SECTIONS> */ +*************** +*** 8295,8307 **** + (void)put_node(fd, tree, 0, regionmask, round == 3); + } + +! /* Write another byte to check for errors. */ + if (putc(0, fd) == EOF) + retval = FAIL; + + if (fclose(fd) == EOF) + retval = FAIL; + + return retval; + } + +--- 8296,8313 ---- + (void)put_node(fd, tree, 0, regionmask, round == 3); + } + +! /* Write another byte to check for errors (file system full). */ + if (putc(0, fd) == EOF) + retval = FAIL; + + if (fclose(fd) == EOF) + retval = FAIL; + ++ if (fwv != 1) ++ retval = FAIL; ++ if (retval == FAIL) ++ EMSG(_(e_write)); ++ + return retval; + } + +*************** +*** 9890,9895 **** +--- 9896,9902 ---- + char_u *p; + int len; + int totlen; ++ int x = 1; /* collect return value of fwrite() */ + + if (fd != NULL) + put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */ +*************** +*** 9906,9912 **** + if (fd != NULL) + { + fputc(len, fd); +! fwrite(p, (size_t)len, (size_t)1, fd); + } + totlen += len; + } +--- 9913,9919 ---- + if (fd != NULL) + { + fputc(len, fd); +! x &= fwrite(p, (size_t)len, (size_t)1, fd); + } + totlen += len; + } +*** ../vim-7.2.049/src/version.c Thu Nov 20 17:09:09 2008 +--- src/version.c Fri Nov 28 10:06:13 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 50, + /**/ + +-- +You got to work at a mill? Lucky! I got sent back to work in the +acid-mines for my daily crust of stale bread... which not even the +birds would eat. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.051 b/source/ap/vim/patches/7.2.051 new file mode 100644 index 000000000..7c36dfe93 --- /dev/null +++ b/source/ap/vim/patches/7.2.051 @@ -0,0 +1,411 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.051 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.051 +Problem: Can't avoid 'wildignore' and 'suffixes' for glob() and globpath(). +Solution: Add an extra argument to these functions. (Ingo Karkat) +Files: src/eval.c, src/ex_getln.c, src/proto/ex_getln.pro, + runtime/doc/eval.txt, runtime/doc/options.txt + + +*** ../vim-7.2.050/src/eval.c Thu Nov 20 16:11:03 2008 +--- src/eval.c Thu Nov 27 22:15:40 2008 +*************** +*** 7564,7571 **** + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, + {"getwinvar", 2, 2, f_getwinvar}, +! {"glob", 1, 1, f_glob}, +! {"globpath", 2, 2, f_globpath}, + {"has", 1, 1, f_has}, + {"has_key", 2, 2, f_has_key}, + {"haslocaldir", 0, 0, f_haslocaldir}, +--- 7564,7571 ---- + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, + {"getwinvar", 2, 2, f_getwinvar}, +! {"glob", 1, 2, f_glob}, +! {"globpath", 2, 3, f_globpath}, + {"has", 1, 1, f_has}, + {"has_key", 2, 2, f_has_key}, + {"haslocaldir", 0, 0, f_haslocaldir}, +*************** +*** 9557,9563 **** + else + { + /* When the optional second argument is non-zero, don't remove matches +! * for 'suffixes' and 'wildignore' */ + if (argvars[1].v_type != VAR_UNKNOWN + && get_tv_number_chk(&argvars[1], &error)) + flags |= WILD_KEEP_ALL; +--- 9557,9563 ---- + else + { + /* When the optional second argument is non-zero, don't remove matches +! * for 'wildignore' and don't put matches for 'suffixes' at the end. */ + if (argvars[1].v_type != VAR_UNKNOWN + && get_tv_number_chk(&argvars[1], &error)) + flags |= WILD_KEEP_ALL; +*************** +*** 11323,11335 **** + typval_T *argvars; + typval_T *rettv; + { + expand_T xpc; + +! ExpandInit(&xpc); +! xpc.xp_context = EXPAND_FILES; +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), +! NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL); + } + + /* +--- 11323,11347 ---- + typval_T *argvars; + typval_T *rettv; + { ++ int flags = WILD_SILENT|WILD_USE_NL; + expand_T xpc; ++ int error = FALSE; + +! /* When the optional second argument is non-zero, don't remove matches +! * for 'wildignore' and don't put matches for 'suffixes' at the end. */ +! if (argvars[1].v_type != VAR_UNKNOWN +! && get_tv_number_chk(&argvars[1], &error)) +! flags |= WILD_KEEP_ALL; +! rettv->v_type = VAR_STRING; +! if (!error) +! { +! ExpandInit(&xpc); +! xpc.xp_context = EXPAND_FILES; +! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), +! NULL, flags, WILD_ALL); +! } +! else +! rettv->vval.v_string = NULL; + } + + /* +*************** +*** 11340,11353 **** + typval_T *argvars; + typval_T *rettv; + { + char_u buf1[NUMBUFLEN]; + char_u *file = get_tv_string_buf_chk(&argvars[1], buf1); + + rettv->v_type = VAR_STRING; +! if (file == NULL) + rettv->vval.v_string = NULL; + else +! rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file); + } + + /* +--- 11352,11373 ---- + typval_T *argvars; + typval_T *rettv; + { ++ int flags = 0; + char_u buf1[NUMBUFLEN]; + char_u *file = get_tv_string_buf_chk(&argvars[1], buf1); ++ int error = FALSE; + ++ /* When the optional second argument is non-zero, don't remove matches ++ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ ++ if (argvars[2].v_type != VAR_UNKNOWN ++ && get_tv_number_chk(&argvars[2], &error)) ++ flags |= WILD_KEEP_ALL; + rettv->v_type = VAR_STRING; +! if (file == NULL || error) + rettv->vval.v_string = NULL; + else +! rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file, +! flags); + } + + /* +*** ../vim-7.2.050/src/ex_getln.c Sat Nov 15 14:10:23 2008 +--- src/ex_getln.c Thu Nov 20 18:37:20 2008 +*************** +*** 2524,2530 **** + && ccline.xpc->xp_context != EXPAND_NOTHING + && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL) + { +! int i = ccline.xpc->xp_pattern - p; + + /* If xp_pattern points inside the old cmdbuff it needs to be adjusted + * to point into the newly allocated memory. */ +--- 2524,2530 ---- + && ccline.xpc->xp_context != EXPAND_NOTHING + && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL) + { +! int i = (int)(ccline.xpc->xp_pattern - p); + + /* If xp_pattern points inside the old cmdbuff it needs to be adjusted + * to point into the newly allocated memory. */ +*************** +*** 4897,4903 **** + if (s == NULL) + return FAIL; + sprintf((char *)s, "%s/%s*.vim", dirname, pat); +! all = globpath(p_rtp, s); + vim_free(s); + if (all == NULL) + return FAIL; +--- 4897,4903 ---- + if (s == NULL) + return FAIL; + sprintf((char *)s, "%s/%s*.vim", dirname, pat); +! all = globpath(p_rtp, s, 0); + vim_free(s); + if (all == NULL) + return FAIL; +*************** +*** 4938,4946 **** + * newlines. Returns NULL for an error or no matches. + */ + char_u * +! globpath(path, file) + char_u *path; + char_u *file; + { + expand_T xpc; + char_u *buf; +--- 4938,4947 ---- + * newlines. Returns NULL for an error or no matches. + */ + char_u * +! globpath(path, file, expand_options) + char_u *path; + char_u *file; ++ int expand_options; + { + expand_T xpc; + char_u *buf; +*************** +*** 4969,4978 **** + { + add_pathsep(buf); + STRCAT(buf, file); +! if (ExpandFromContext(&xpc, buf, &num_p, &p, WILD_SILENT) != FAIL +! && num_p > 0) + { +! ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT); + for (len = 0, i = 0; i < num_p; ++i) + len += (int)STRLEN(p[i]) + 1; + +--- 4970,4979 ---- + { + add_pathsep(buf); + STRCAT(buf, file); +! if (ExpandFromContext(&xpc, buf, &num_p, &p, +! WILD_SILENT|expand_options) != FAIL && num_p > 0) + { +! ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT|expand_options); + for (len = 0, i = 0; i < num_p; ++i) + len += (int)STRLEN(p[i]) + 1; + +*** ../vim-7.2.050/src/proto/ex_getln.pro Wed May 28 16:49:01 2008 +--- src/proto/ex_getln.pro Thu Nov 20 18:27:57 2008 +*************** +*** 31,37 **** + void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col)); + int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches)); + int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)))); +! char_u *globpath __ARGS((char_u *path, char_u *file)); + void init_history __ARGS((void)); + int get_histtype __ARGS((char_u *name)); + void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep)); +--- 31,37 ---- + void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col)); + int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches)); + int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)))); +! char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options)); + void init_history __ARGS((void)); + int get_histtype __ARGS((char_u *name)); + void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep)); +*** ../vim-7.2.050/runtime/doc/eval.txt Sun Nov 9 13:43:25 2008 +--- runtime/doc/eval.txt Thu Nov 27 22:17:13 2008 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 02 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 27 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1706,1712 **** + exists( {expr}) Number TRUE if {expr} exists + extend({expr1}, {expr2} [, {expr3}]) + List/Dict insert items of {expr2} into {expr1} +! expand( {expr}) String expand special keywords in {expr} + feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer + filereadable( {file}) Number TRUE if {file} is a readable file + filewritable( {file}) Number TRUE if {file} is a writable file +--- 1709,1715 ---- + exists( {expr}) Number TRUE if {expr} exists + extend({expr1}, {expr2} [, {expr3}]) + List/Dict insert items of {expr2} into {expr1} +! expand( {expr} [, {flag}]) String expand special keywords in {expr} + feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer + filereadable( {file}) Number TRUE if {file} is a readable file + filewritable( {file}) Number TRUE if {file} is a writable file +*************** +*** 1758,1765 **** + getwinposx() Number X coord in pixels of GUI Vim window + getwinposy() Number Y coord in pixels of GUI Vim window + getwinvar( {nr}, {varname}) any variable {varname} in window {nr} +! glob( {expr}) String expand file wildcards in {expr} +! globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path} + has( {feature}) Number TRUE if feature {feature} supported + has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} + haslocaldir() Number TRUE if current window executed |:lcd| +--- 1761,1769 ---- + getwinposx() Number X coord in pixels of GUI Vim window + getwinposy() Number Y coord in pixels of GUI Vim window + getwinvar( {nr}, {varname}) any variable {varname} in window {nr} +! glob( {expr} [, {flag}]) String expand file wildcards in {expr} +! globpath( {path}, {expr} [, {flag}]) +! String do glob({expr}) for all dirs in {path} + has( {feature}) Number TRUE if feature {feature} supported + has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} + haslocaldir() Number TRUE if current window executed |:lcd| +*************** +*** 3286,3299 **** + :let list_is_on = getwinvar(2, '&list') + :echo "myvar = " . getwinvar(1, 'myvar') + < +! *glob()* +! glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the + use of special characters. + The result is a String. + When there are several matches, they are separated by <NL> + characters. +! The 'wildignore' option applies: Names matching one of the +! patterns in 'wildignore' will be skipped. + If the expansion fails, the result is an empty string. + A name for a non-existing file is not included. + +--- 3290,3305 ---- + :let list_is_on = getwinvar(2, '&list') + :echo "myvar = " . getwinvar(1, 'myvar') + < +! glob({expr} [, {flag}]) *glob()* +! Expand the file wildcards in {expr}. See |wildcards| for the + use of special characters. + The result is a String. + When there are several matches, they are separated by <NL> + characters. +! Unless the optional {flag} argument is given and is non-zero, +! the 'suffixes' and 'wildignore' options apply: Names matching +! one of the patterns in 'wildignore' will be skipped and +! 'suffixes' affect the ordering of matches. + If the expansion fails, the result is an empty string. + A name for a non-existing file is not included. + +*************** +*** 3307,3326 **** + See |expand()| for expanding special Vim variables. See + |system()| for getting the raw output of an external command. + +! globpath({path}, {expr}) *globpath()* + Perform glob() on all directories in {path} and concatenate + the results. Example: > + :echo globpath(&rtp, "syntax/c.vim") + < {path} is a comma-separated list of directory names. Each + directory name is prepended to {expr} and expanded like with +! glob(). A path separator is inserted when needed. + To add a comma inside a directory name escape it with a + backslash. Note that on MS-Windows a directory may have a + trailing backslash, remove it if you put a comma after it. + If the expansion fails for one of the directories, there is no + error message. +! The 'wildignore' option applies: Names matching one of the +! patterns in 'wildignore' will be skipped. + + The "**" item can be used to search in a directory tree. + For example, to find all "README.txt" files in the directories +--- 3313,3334 ---- + See |expand()| for expanding special Vim variables. See + |system()| for getting the raw output of an external command. + +! globpath({path}, {expr} [, {flag}]) *globpath()* + Perform glob() on all directories in {path} and concatenate + the results. Example: > + :echo globpath(&rtp, "syntax/c.vim") + < {path} is a comma-separated list of directory names. Each + directory name is prepended to {expr} and expanded like with +! |glob()|. A path separator is inserted when needed. + To add a comma inside a directory name escape it with a + backslash. Note that on MS-Windows a directory may have a + trailing backslash, remove it if you put a comma after it. + If the expansion fails for one of the directories, there is no + error message. +! Unless the optional {flag} argument is given and is non-zero, +! the 'suffixes' and 'wildignore' options apply: Names matching +! one of the patterns in 'wildignore' will be skipped and +! 'suffixes' affect the ordering of matches. + + The "**" item can be used to search in a directory tree. + For example, to find all "README.txt" files in the directories +*** ../vim-7.2.050/runtime/doc/options.txt Sat Aug 9 19:36:49 2008 +--- runtime/doc/options.txt Tue Nov 25 23:43:55 2008 +*************** +*** 1,4 **** +! *options.txt* For Vim version 7.2. Last change: 2008 Aug 06 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *options.txt* For Vim version 7.2. Last change: 2008 Nov 25 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 7472,7478 **** + {not available when compiled without the |+wildignore| + feature} + A list of file patterns. A file that matches with one of these +! patterns is ignored when completing file or directory names. + The pattern is used like with |:autocmd|, see |autocmd-patterns|. + Also see 'suffixes'. + Example: > +--- 7481,7489 ---- + {not available when compiled without the |+wildignore| + feature} + A list of file patterns. A file that matches with one of these +! patterns is ignored when completing file or directory names, and +! influences the result of |expand()|, |glob()| and |globpath()| unless +! a flag is passed to disable this. + The pattern is used like with |:autocmd|, see |autocmd-patterns|. + Also see 'suffixes'. + Example: > +*** ../vim-7.2.050/src/version.c Fri Nov 28 10:08:05 2008 +--- src/version.c Fri Nov 28 10:55:44 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 51, + /**/ + +-- +Not too long ago, unzipping in public was illegal... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.052 b/source/ap/vim/patches/7.2.052 new file mode 100644 index 000000000..eb331f348 --- /dev/null +++ b/source/ap/vim/patches/7.2.052 @@ -0,0 +1,83 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.052 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.052 +Problem: synIDattr() doesn't support "sp" for special color. +Solution: Recognize "sp" and "sp#". (Matt Wozniski) +Files: runtime/doc/eval.txt, src/eval.c + + +*** ../vim-7.2.051/runtime/doc/eval.txt Fri Nov 28 10:59:57 2008 +--- runtime/doc/eval.txt Thu Nov 27 22:17:13 2008 +*************** +*** 5348,5357 **** + "fg" foreground color (GUI: color name used to set + the color, cterm: color number as a string, + term: empty string) +! "bg" background color (like "fg") + "fg#" like "fg", but for the GUI and the GUI is + running the name in "#RRGGBB" form + "bg#" like "fg#" for "bg" + "bold" "1" if bold + "italic" "1" if italic + "reverse" "1" if reverse +--- 5359,5370 ---- + "fg" foreground color (GUI: color name used to set + the color, cterm: color number as a string, + term: empty string) +! "bg" background color (as with "fg") +! "sp" special color (as with "fg") |highlight-guisp| + "fg#" like "fg", but for the GUI and the GUI is + running the name in "#RRGGBB" form + "bg#" like "fg#" for "bg" ++ "sp#" like "fg#" for "sp" + "bold" "1" if bold + "italic" "1" if italic + "reverse" "1" if reverse +*** ../vim-7.2.051/src/eval.c Fri Nov 28 10:59:57 2008 +--- src/eval.c Thu Nov 27 22:15:40 2008 +*************** +*** 16648,16655 **** + p = highlight_has_attr(id, HL_INVERSE, modec); + break; + +! case 's': /* standout */ +! p = highlight_has_attr(id, HL_STANDOUT, modec); + break; + + case 'u': +--- 16648,16658 ---- + p = highlight_has_attr(id, HL_INVERSE, modec); + break; + +! case 's': +! if (TOLOWER_ASC(what[1]) == 'p') /* sp[#] */ +! p = highlight_color(id, what, modec); +! else /* standout */ +! p = highlight_has_attr(id, HL_STANDOUT, modec); + break; + + case 'u': +*** ../vim-7.2.051/src/version.c Fri Nov 28 10:59:57 2008 +--- src/version.c Fri Nov 28 11:13:45 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 52, + /**/ + +-- +Not too long ago, a keyboard was something to make music with... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.053 b/source/ap/vim/patches/7.2.053 new file mode 100644 index 000000000..410d1666e --- /dev/null +++ b/source/ap/vim/patches/7.2.053 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.053 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.053 +Problem: Crash when using WorkShop command ":ws foo". (Dominique Pelle) +Solution: Avoid using a NULL pointer. +Files: src/workshop.c + + +*** ../vim-7.2.052/src/workshop.c Tue Jun 24 23:34:50 2008 +--- src/workshop.c Thu Nov 27 22:31:27 2008 +*************** +*** 1121,1128 **** + ? (char *)curbuf->b_sfname : "<None>"); + #endif + +! strcpy(ffname, (char *) curbuf->b_ffname); +! *filename = ffname; /* copy so nobody can change b_ffname */ + *curLine = curwin->w_cursor.lnum; + *curCol = curwin->w_cursor.col; + +--- 1121,1132 ---- + ? (char *)curbuf->b_sfname : "<None>"); + #endif + +! if (curbuf->b_ffname == NULL) +! ffname[0] = NUL; +! else +! /* copy so nobody can change b_ffname */ +! strcpy(ffname, (char *) curbuf->b_ffname); +! *filename = ffname; + *curLine = curwin->w_cursor.lnum; + *curCol = curwin->w_cursor.col; + +*** ../vim-7.2.052/src/version.c Fri Nov 28 11:15:10 2008 +--- src/version.c Fri Nov 28 11:44:23 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 53, + /**/ + +-- +What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics' +meaning 'bloodsucking creatures'. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.054 b/source/ap/vim/patches/7.2.054 new file mode 100644 index 000000000..98ce9e8f9 --- /dev/null +++ b/source/ap/vim/patches/7.2.054 @@ -0,0 +1,68 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.054 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.054 +Problem: Compilation warnings for format in getchar.c. +Solution: Use fputs() instead of fprintf(). (Dominique Pelle) +Files: src/getchar.c + + +*** ../vim-7.2.053/src/getchar.c Tue Jul 22 18:58:23 2008 +--- src/getchar.c Thu Nov 27 22:38:24 2008 +*************** +*** 4702,4708 **** + return FAIL; + if (mp->m_noremap != REMAP_YES && fprintf(fd, "nore") < 0) + return FAIL; +! if (fprintf(fd, cmd) < 0) + return FAIL; + if (buf != NULL && fputs(" <buffer>", fd) < 0) + return FAIL; +--- 4702,4708 ---- + return FAIL; + if (mp->m_noremap != REMAP_YES && fprintf(fd, "nore") < 0) + return FAIL; +! if (fputs(cmd, fd) < 0) + return FAIL; + if (buf != NULL && fputs(" <buffer>", fd) < 0) + return FAIL; +*************** +*** 4801,4807 **** + } + if (IS_SPECIAL(c) || modifiers) /* special key */ + { +! if (fprintf(fd, (char *)get_special_key_name(c, modifiers)) < 0) + return FAIL; + continue; + } +--- 4801,4807 ---- + } + if (IS_SPECIAL(c) || modifiers) /* special key */ + { +! if (fputs((char *)get_special_key_name(c, modifiers), fd) < 0) + return FAIL; + continue; + } +*** ../vim-7.2.053/src/version.c Fri Nov 28 11:47:14 2008 +--- src/version.c Fri Nov 28 12:02:48 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 54, + /**/ + +-- +Not too long ago, compress was something you did to garbage... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.055 b/source/ap/vim/patches/7.2.055 new file mode 100644 index 000000000..ffab9a267 --- /dev/null +++ b/source/ap/vim/patches/7.2.055 @@ -0,0 +1,1271 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.055 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.055 +Problem: Various compiler warnings with strict checking. +Solution: Avoid the warnings by using return values and renaming. +Files: src/diff.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c, + src/fileio.c, src/fold.c, src/globals.h, src/gui.c, + src/gui_at_sb.c, src/gui_gtk_x11.c, src/gui_xmdlg.c, + src/gui_xmebw.c, src/main.c, src/mbyte.c, src/message.c, + src/netbeans.c, src/option.c, src/os_unix.c, src/spell.c, + src/ui.c, src/window.c + + +*** ../vim-7.2.054/src/diff.c Fri Jan 18 17:39:32 2008 +--- src/diff.c Fri Nov 28 17:23:35 2008 +*************** +*** 661,666 **** +--- 665,671 ---- + char_u *tmp_diff; + FILE *fd; + int ok; ++ int io_error = FALSE; + + /* Delete all diffblocks. */ + diff_clear(curtab); +*************** +*** 697,714 **** + { + ok = FALSE; + fd = mch_fopen((char *)tmp_orig, "w"); +! if (fd != NULL) + { +! fwrite("line1\n", (size_t)6, (size_t)1, fd); + fclose(fd); + fd = mch_fopen((char *)tmp_new, "w"); +! if (fd != NULL) + { +! fwrite("line2\n", (size_t)6, (size_t)1, fd); + fclose(fd); + diff_file(tmp_orig, tmp_new, tmp_diff); + fd = mch_fopen((char *)tmp_diff, "r"); +! if (fd != NULL) + { + char_u linebuf[LBUFLEN]; + +--- 702,727 ---- + { + ok = FALSE; + fd = mch_fopen((char *)tmp_orig, "w"); +! if (fd == NULL) +! io_error = TRUE; +! else + { +! if (fwrite("line1\n", (size_t)6, (size_t)1, fd) != 1) +! io_error = TRUE; + fclose(fd); + fd = mch_fopen((char *)tmp_new, "w"); +! if (fd == NULL) +! io_error = TRUE; +! else + { +! if (fwrite("line2\n", (size_t)6, (size_t)1, fd) != 1) +! io_error = TRUE; + fclose(fd); + diff_file(tmp_orig, tmp_new, tmp_diff); + fd = mch_fopen((char *)tmp_diff, "r"); +! if (fd == NULL) +! io_error = TRUE; +! else + { + char_u linebuf[LBUFLEN]; + +*************** +*** 761,766 **** +--- 774,781 ---- + } + if (!ok) + { ++ if (io_error) ++ EMSG(_("E810: Cannot read or write temp files")); + EMSG(_("E97: Cannot create diffs")); + diff_a_works = MAYBE; + #if defined(MSWIN) || defined(MSDOS) +*************** +*** 925,934 **** + { + # ifdef TEMPDIRNAMES + if (vim_tempdir != NULL) +! mch_chdir((char *)vim_tempdir); + else + # endif +! mch_chdir("/tmp"); + shorten_fnames(TRUE); + } + #endif +--- 940,949 ---- + { + # ifdef TEMPDIRNAMES + if (vim_tempdir != NULL) +! ignored = mch_chdir((char *)vim_tempdir); + else + # endif +! ignored = mch_chdir("/tmp"); + shorten_fnames(TRUE); + } + #endif +*** ../vim-7.2.054/src/eval.c Fri Nov 28 11:15:10 2008 +--- src/eval.c Fri Nov 28 12:23:13 2008 +*************** +*** 10641,10647 **** + # ifdef FEAT_WINDOWS + win_T *wp; + # endif +! int n = 1; + + if (row >= 0 && col >= 0) + { +--- 10641,10647 ---- + # ifdef FEAT_WINDOWS + win_T *wp; + # endif +! int winnr = 1; + + if (row >= 0 && col >= 0) + { +*************** +*** 10651,10659 **** + (void)mouse_comp_pos(win, &row, &col, &lnum); + # ifdef FEAT_WINDOWS + for (wp = firstwin; wp != win; wp = wp->w_next) +! ++n; + # endif +! vimvars[VV_MOUSE_WIN].vv_nr = n; + vimvars[VV_MOUSE_LNUM].vv_nr = lnum; + vimvars[VV_MOUSE_COL].vv_nr = col + 1; + } +--- 10651,10659 ---- + (void)mouse_comp_pos(win, &row, &col, &lnum); + # ifdef FEAT_WINDOWS + for (wp = firstwin; wp != win; wp = wp->w_next) +! ++winnr; + # endif +! vimvars[VV_MOUSE_WIN].vv_nr = winnr; + vimvars[VV_MOUSE_LNUM].vv_nr = lnum; + vimvars[VV_MOUSE_COL].vv_nr = col + 1; + } +*** ../vim-7.2.054/src/ex_cmds.c Sat Nov 15 14:10:23 2008 +--- src/ex_cmds.c Fri Nov 28 17:24:08 2008 +*************** +*** 1941,1947 **** + * root. + */ + if (fp_out != NULL) +! (void)fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid); + #endif + } + } +--- 1941,1947 ---- + * root. + */ + if (fp_out != NULL) +! ignored = fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid); + #endif + } + } +*** ../vim-7.2.054/src/ex_docmd.c Sat Nov 15 14:10:23 2008 +--- src/ex_docmd.c Fri Nov 28 17:26:13 2008 +*************** +*** 8753,8760 **** + else if (*dirnow != NUL + && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) + { +! (void)mch_chdir((char *)globaldir); +! shorten_fnames(TRUE); + } + + failed |= (makeopens(fd, dirnow) == FAIL); +--- 8753,8760 ---- + else if (*dirnow != NUL + && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) + { +! if (mch_chdir((char *)globaldir) == OK) +! shorten_fnames(TRUE); + } + + failed |= (makeopens(fd, dirnow) == FAIL); +*** ../vim-7.2.054/src/fileio.c Wed Nov 12 16:04:43 2008 +--- src/fileio.c Fri Nov 28 17:35:54 2008 +*************** +*** 2214,2220 **** + { + /* Use stderr for stdin, makes shell commands work. */ + close(0); +! dup(2); + } + #endif + +--- 2214,2220 ---- + { + /* Use stderr for stdin, makes shell commands work. */ + close(0); +! ignored = dup(2); + } + #endif + +*************** +*** 3449,3455 **** + { + # ifdef UNIX + # ifdef HAVE_FCHOWN +! fchown(fd, st_old.st_uid, st_old.st_gid); + # endif + if (mch_stat((char *)IObuff, &st) < 0 + || st.st_uid != st_old.st_uid +--- 3449,3455 ---- + { + # ifdef UNIX + # ifdef HAVE_FCHOWN +! ignored = fchown(fd, st_old.st_uid, st_old.st_gid); + # endif + if (mch_stat((char *)IObuff, &st) < 0 + || st.st_uid != st_old.st_uid +*************** +*** 4365,4371 **** + || st.st_uid != st_old.st_uid + || st.st_gid != st_old.st_gid) + { +! fchown(fd, st_old.st_uid, st_old.st_gid); + if (perm >= 0) /* set permission again, may have changed */ + (void)mch_setperm(wfname, perm); + } +--- 4365,4371 ---- + || st.st_uid != st_old.st_uid + || st.st_gid != st_old.st_gid) + { +! ignored = fchown(fd, st_old.st_uid, st_old.st_gid); + if (perm >= 0) /* set permission again, may have changed */ + (void)mch_setperm(wfname, perm); + } +*************** +*** 6030,6038 **** + { + tbuf[FGETS_SIZE - 2] = NUL; + #ifdef USE_CR +! fgets_cr((char *)tbuf, FGETS_SIZE, fp); + #else +! fgets((char *)tbuf, FGETS_SIZE, fp); + #endif + } while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n'); + } +--- 6030,6038 ---- + { + tbuf[FGETS_SIZE - 2] = NUL; + #ifdef USE_CR +! ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp); + #else +! ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp); + #endif + } while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n'); + } +*** ../vim-7.2.054/src/fold.c Wed Aug 6 18:59:40 2008 +--- src/fold.c Fri Nov 28 12:24:16 2008 +*************** +*** 48,54 **** + static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp)); + static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum)); + static void checkupdate __ARGS((win_T *wp)); +! static void setFoldRepeat __ARGS((linenr_T lnum, long count, int open)); + static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep)); + static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep)); + static void foldOpenNested __ARGS((fold_T *fpr)); +--- 48,54 ---- + static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp)); + static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum)); + static void checkupdate __ARGS((win_T *wp)); +! static void setFoldRepeat __ARGS((linenr_T lnum, long count, int do_open)); + static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep)); + static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep)); + static void foldOpenNested __ARGS((fold_T *fpr)); +*************** +*** 1241,1250 **** + * Repeat "count" times. + */ + static void +! setFoldRepeat(lnum, count, open) + linenr_T lnum; + long count; +! int open; + { + int done; + long n; +--- 1241,1250 ---- + * Repeat "count" times. + */ + static void +! setFoldRepeat(lnum, count, do_open) + linenr_T lnum; + long count; +! int do_open; + { + int done; + long n; +*************** +*** 1252,1258 **** + for (n = 0; n < count; ++n) + { + done = DONE_NOTHING; +! (void)setManualFold(lnum, open, FALSE, &done); + if (!(done & DONE_ACTION)) + { + /* Only give an error message when no fold could be opened. */ +--- 1252,1258 ---- + for (n = 0; n < count; ++n) + { + done = DONE_NOTHING; +! (void)setManualFold(lnum, do_open, FALSE, &done); + if (!(done & DONE_ACTION)) + { + /* Only give an error message when no fold could be opened. */ +*** ../vim-7.2.054/src/globals.h Thu Sep 18 21:29:07 2008 +--- src/globals.h Fri Nov 28 17:35:50 2008 +*************** +*** 1549,1554 **** +--- 1549,1562 ---- + EXTERN time_t starttime; + + /* ++ * Some compilers warn for not using a return value, but in some situations we ++ * can't do anything useful with the value. Assign to this variable to avoid ++ * the warning. ++ */ ++ EXTERN int ignored; ++ EXTERN char *ignoredp; ++ ++ /* + * Optional Farsi support. Include it here, so EXTERN and INIT are defined. + */ + #ifdef FEAT_FKMAP +*** ../vim-7.2.054/src/gui.c Wed Aug 6 14:37:26 2008 +--- src/gui.c Fri Nov 28 18:48:31 2008 +*************** +*** 139,145 **** + /* The read returns when the child closes the pipe (or when + * the child dies for some reason). */ + close(pipefd[1]); +! (void)read(pipefd[0], &dummy, (size_t)1); + close(pipefd[0]); + } + +--- 139,145 ---- + /* The read returns when the child closes the pipe (or when + * the child dies for some reason). */ + close(pipefd[1]); +! ignored = (int)read(pipefd[0], &dummy, (size_t)1); + close(pipefd[0]); + } + +*** ../vim-7.2.054/src/gui_at_sb.c Sun Jun 13 21:37:13 2004 +--- src/gui_at_sb.c Fri Nov 28 12:19:19 2008 +*************** +*** 1078,1083 **** +--- 1078,1089 ---- + Cardinal *num_params; /* unused */ + { + ScrollbarWidget sbw = (ScrollbarWidget)w; ++ /* Use a union to avoid a warning for the weird conversion from float to ++ * XtPointer. Comes from Xaw/Scrollbar.c. */ ++ union { ++ XtPointer xtp; ++ float xtf; ++ } xtpf; + + if (LookAhead(w, event)) + return; +*************** +*** 1085,1091 **** + /* thumbProc is not pretty, but is necessary for backwards + compatibility on those architectures for which it work{s,ed}; + the intent is to pass a (truncated) float by value. */ +! XtCallCallbacks(w, XtNthumbProc, *(XtPointer*)&sbw->scrollbar.top); + XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top); + } + +--- 1091,1098 ---- + /* thumbProc is not pretty, but is necessary for backwards + compatibility on those architectures for which it work{s,ed}; + the intent is to pass a (truncated) float by value. */ +! xtpf.xtf = sbw->scrollbar.top; +! XtCallCallbacks(w, XtNthumbProc, xtpf.xtp); + XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top); + } + +*** ../vim-7.2.054/src/gui_gtk_x11.c Tue Jul 8 12:46:08 2008 +--- src/gui_gtk_x11.c Fri Nov 28 21:06:38 2008 +*************** +*** 4070,4083 **** + + if (mask & (XValue | YValue)) + { +! int w, h; +! gui_mch_get_screen_dimensions(&w, &h); +! h += p_ghr + get_menu_tool_height(); +! w += get_menu_tool_width(); + if (mask & XNegative) +! x += w - pixel_width; + if (mask & YNegative) +! y += h - pixel_height; + #ifdef HAVE_GTK2 + gtk_window_move(GTK_WINDOW(gui.mainwin), x, y); + #else +--- 4070,4083 ---- + + if (mask & (XValue | YValue)) + { +! int ww, hh; +! gui_mch_get_screen_dimensions(&ww, &hh); +! hh += p_ghr + get_menu_tool_height(); +! ww += get_menu_tool_width(); + if (mask & XNegative) +! x += ww - pixel_width; + if (mask & YNegative) +! y += hh - pixel_height; + #ifdef HAVE_GTK2 + gtk_window_move(GTK_WINDOW(gui.mainwin), x, y); + #else +*** ../vim-7.2.054/src/gui_xmdlg.c Tue Jun 24 23:39:32 2008 +--- src/gui_xmdlg.c Fri Nov 28 21:04:08 2008 +*************** +*** 369,378 **** + char buf[TEMP_BUF_SIZE]; + XmString items[MAX_ENTRIES_IN_LIST]; + int i; +! int index; + +! for (index = (int)ENCODING; index < (int)NONE; ++index) +! count[index] = 0; + + /* First we insert the wild char into every single list. */ + if (fix != ENCODING) +--- 369,378 ---- + char buf[TEMP_BUF_SIZE]; + XmString items[MAX_ENTRIES_IN_LIST]; + int i; +! int idx; + +! for (idx = (int)ENCODING; idx < (int)NONE; ++idx) +! count[idx] = 0; + + /* First we insert the wild char into every single list. */ + if (fix != ENCODING) +*************** +*** 503,516 **** + /* + * Now loop trough the remaining lists and set them up. + */ +! for (index = (int)NAME; index < (int)NONE; ++index) + { + Widget w; + +! if (fix == (enum ListSpecifier)index) + continue; + +! switch ((enum ListSpecifier)index) + { + case NAME: + w = data->list[NAME]; +--- 503,516 ---- + /* + * Now loop trough the remaining lists and set them up. + */ +! for (idx = (int)NAME; idx < (int)NONE; ++idx) + { + Widget w; + +! if (fix == (enum ListSpecifier)idx) + continue; + +! switch ((enum ListSpecifier)idx) + { + case NAME: + w = data->list[NAME]; +*************** +*** 525,545 **** + w = (Widget)0; /* for lint */ + } + +! for (i = 0; i < count[index]; ++i) + { +! items[i] = XmStringCreateLocalized(list[index][i]); +! XtFree(list[index][i]); + } + XmListDeleteAllItems(w); +! XmListAddItems(w, items, count[index], 1); +! if (data->sel[index]) + { + XmStringFree(items[0]); +! items[0] = XmStringCreateLocalized(data->sel[index]); + XmListSelectItem(w, items[0], False); + XmListSetBottomItem(w, items[0]); + } +! for (i = 0; i < count[index]; ++i) + XmStringFree(items[i]); + } + } +--- 525,545 ---- + w = (Widget)0; /* for lint */ + } + +! for (i = 0; i < count[idx]; ++i) + { +! items[i] = XmStringCreateLocalized(list[idx][i]); +! XtFree(list[idx][i]); + } + XmListDeleteAllItems(w); +! XmListAddItems(w, items, count[idx], 1); +! if (data->sel[idx]) + { + XmStringFree(items[0]); +! items[0] = XmStringCreateLocalized(data->sel[idx]); + XmListSelectItem(w, items[0], False); + XmListSetBottomItem(w, items[0]); + } +! for (i = 0; i < count[idx]; ++i) + XmStringFree(items[i]); + } + } +*************** +*** 695,708 **** + int n; + XmString str; + Arg args[4]; +! char *msg = _("no specific match"); + + n = 0; +! str = XmStringCreateLocalized(msg); + XtSetArg(args[n], XmNlabelString, str); ++n; + XtSetValues(data->sample, args, n); + apply_fontlist(data->sample); +! XmTextSetString(data->name, msg); + XmStringFree(str); + + return False; +--- 695,708 ---- + int n; + XmString str; + Arg args[4]; +! char *nomatch_msg = _("no specific match"); + + n = 0; +! str = XmStringCreateLocalized(nomatch_msg); + XtSetArg(args[n], XmNlabelString, str); ++n; + XtSetValues(data->sample, args, n); + apply_fontlist(data->sample); +! XmTextSetString(data->name, nomatch_msg); + XmStringFree(str); + + return False; +*************** +*** 886,906 **** + { + int i; + int max; +! int index = 0; + int size; +! char str[128]; + + for (i = 0, max = 0; i < data->num; i++) + { +! get_part(fn(data, i), 7, str); +! size = atoi(str); + if ((size > max) && (size < MAX_DISPLAY_SIZE)) + { +! index = i; + max = size; + } + } +! strcpy(big_font, fn(data, index)); + } + data->old = XLoadQueryFont(XtDisplay(parent), big_font); + data->old_list = gui_motif_create_fontlist(data->old); +--- 886,906 ---- + { + int i; + int max; +! int idx = 0; + int size; +! char buf[128]; + + for (i = 0, max = 0; i < data->num; i++) + { +! get_part(fn(data, i), 7, buf); +! size = atoi(buf); + if ((size > max) && (size < MAX_DISPLAY_SIZE)) + { +! idx = i; + max = size; + } + } +! strcpy(big_font, fn(data, idx)); + } + data->old = XLoadQueryFont(XtDisplay(parent), big_font); + data->old_list = gui_motif_create_fontlist(data->old); +*************** +*** 1217,1244 **** + + if (i != 0) + { +! char name[TEMP_BUF_SIZE]; +! char style[TEMP_BUF_SIZE]; +! char size[TEMP_BUF_SIZE]; +! char encoding[TEMP_BUF_SIZE]; + char *found; + + found = names[0]; + +! name_part(found, name); +! style_part(found, style); +! size_part(found, size, data->in_pixels); +! encoding_part(found, encoding); +! +! if (strlen(name) > 0 +! && strlen(style) > 0 +! && strlen(size) > 0 +! && strlen(encoding) > 0) + { +! data->sel[NAME] = XtNewString(name); +! data->sel[STYLE] = XtNewString(style); +! data->sel[SIZE] = XtNewString(size); +! data->sel[ENCODING] = XtNewString(encoding); + data->font_name = XtNewString(names[0]); + display_sample(data); + XmTextSetString(data->name, data->font_name); +--- 1217,1244 ---- + + if (i != 0) + { +! char namebuf[TEMP_BUF_SIZE]; +! char stylebuf[TEMP_BUF_SIZE]; +! char sizebuf[TEMP_BUF_SIZE]; +! char encodingbuf[TEMP_BUF_SIZE]; + char *found; + + found = names[0]; + +! name_part(found, namebuf); +! style_part(found, stylebuf); +! size_part(found, sizebuf, data->in_pixels); +! encoding_part(found, encodingbuf); +! +! if (strlen(namebuf) > 0 +! && strlen(stylebuf) > 0 +! && strlen(sizebuf) > 0 +! && strlen(encodingbuf) > 0) + { +! data->sel[NAME] = XtNewString(namebuf); +! data->sel[STYLE] = XtNewString(stylebuf); +! data->sel[SIZE] = XtNewString(sizebuf); +! data->sel[ENCODING] = XtNewString(encodingbuf); + data->font_name = XtNewString(names[0]); + display_sample(data); + XmTextSetString(data->name, data->font_name); +*** ../vim-7.2.054/src/gui_xmebw.c Thu Nov 8 20:48:14 2007 +--- src/gui_xmebw.c Fri Nov 28 18:58:53 2008 +*************** +*** 1256,1262 **** + } + else + { +! int adjust = 0; + + #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) + /* +--- 1256,1262 ---- + } + else + { +! adjust = 0; + + #if !defined(LESSTIF_VERSION) && (XmVersion > 1002) + /* +*************** +*** 1268,1279 **** + { + case XmEXTERNAL_HIGHLIGHT: + adjust = (eb->primitive.highlight_thickness - +! (eb->pushbutton.default_button_shadow_thickness ? +! Xm3D_ENHANCE_PIXEL : 0)); + break; + + case XmINTERNAL_HIGHLIGHT: +- adjust = 0; + break; + + default: +--- 1268,1278 ---- + { + case XmEXTERNAL_HIGHLIGHT: + adjust = (eb->primitive.highlight_thickness - +! (eb->pushbutton.default_button_shadow_thickness +! ? Xm3D_ENHANCE_PIXEL : 0)); + break; + + case XmINTERNAL_HIGHLIGHT: + break; + + default: +*** ../vim-7.2.054/src/main.c Thu Nov 20 14:11:47 2008 +--- src/main.c Fri Nov 28 18:32:48 2008 +*************** +*** 2372,2378 **** + * Is there any other system that cannot do this? + */ + close(0); +! dup(2); + #endif + } + +--- 2372,2378 ---- + * Is there any other system that cannot do this? + */ + close(0); +! ignored = dup(2); + #endif + } + +*** ../vim-7.2.054/src/mbyte.c Thu Nov 20 17:09:09 2008 +--- src/mbyte.c Fri Nov 28 18:44:05 2008 +*************** +*** 717,723 **** + * where mblen() returns 0 for invalid character. + * Therefore, following condition includes 0. + */ +! (void)mblen(NULL, 0); /* First reset the state. */ + if (mblen(buf, (size_t)1) <= 0) + n = 2; + else +--- 717,723 ---- + * where mblen() returns 0 for invalid character. + * Therefore, following condition includes 0. + */ +! ignored = mblen(NULL, 0); /* First reset the state. */ + if (mblen(buf, (size_t)1) <= 0) + n = 2; + else +*************** +*** 5278,5284 **** + + /*ARGSUSED*/ + static void +! preedit_start_cbproc(XIC xic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("xim_decide_input_style()\n"); +--- 5278,5284 ---- + + /*ARGSUSED*/ + static void +! preedit_start_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("xim_decide_input_style()\n"); +*************** +*** 5312,5318 **** + + /*ARGSUSED*/ + static void +! preedit_draw_cbproc(XIC xic, XPointer client_data, XPointer call_data) + { + XIMPreeditDrawCallbackStruct *draw_data; + XIMText *text; +--- 5312,5318 ---- + + /*ARGSUSED*/ + static void +! preedit_draw_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + XIMPreeditDrawCallbackStruct *draw_data; + XIMText *text; +*************** +*** 5453,5459 **** + + /*ARGSUSED*/ + static void +! preedit_caret_cbproc(XIC xic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("preedit_caret_cbproc()\n"); +--- 5453,5459 ---- + + /*ARGSUSED*/ + static void +! preedit_caret_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("preedit_caret_cbproc()\n"); +*************** +*** 5462,5468 **** + + /*ARGSUSED*/ + static void +! preedit_done_cbproc(XIC xic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("preedit_done_cbproc()\n"); +--- 5462,5468 ---- + + /*ARGSUSED*/ + static void +! preedit_done_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("preedit_done_cbproc()\n"); +*** ../vim-7.2.054/src/message.c Sun Jul 13 19:18:44 2008 +--- src/message.c Fri Nov 28 12:26:56 2008 +*************** +*** 4585,4645 **** + if (remove_trailing_zeroes) + { + int i; +! char *p; + + /* Using %g or %G: remove superfluous zeroes. */ + if (fmt_spec == 'f') +! p = tmp + str_arg_l - 1; + else + { +! p = (char *)vim_strchr((char_u *)tmp, + fmt_spec == 'e' ? 'e' : 'E'); +! if (p != NULL) + { + /* Remove superfluous '+' and leading + * zeroes from the exponent. */ +! if (p[1] == '+') + { + /* Change "1.0e+07" to "1.0e07" */ +! STRMOVE(p + 1, p + 2); + --str_arg_l; + } +! i = (p[1] == '-') ? 2 : 1; +! while (p[i] == '0') + { + /* Change "1.0e07" to "1.0e7" */ +! STRMOVE(p + i, p + i + 1); + --str_arg_l; + } +! --p; + } + } + +! if (p != NULL && !precision_specified) + /* Remove trailing zeroes, but keep the one + * just after a dot. */ +! while (p > tmp + 2 && *p == '0' && p[-1] != '.') + { +! STRMOVE(p, p + 1); +! --p; + --str_arg_l; + } + } + else + { +! char *p; + + /* Be consistent: some printf("%e") use 1.0e+12 + * and some 1.0e+012. Remove one zero in the last + * case. */ +! p = (char *)vim_strchr((char_u *)tmp, + fmt_spec == 'e' ? 'e' : 'E'); +! if (p != NULL && (p[1] == '+' || p[1] == '-') +! && p[2] == '0' +! && vim_isdigit(p[3]) +! && vim_isdigit(p[4])) + { +! STRMOVE(p + 2, p + 3); + --str_arg_l; + } + } +--- 4585,4646 ---- + if (remove_trailing_zeroes) + { + int i; +! char *tp; + + /* Using %g or %G: remove superfluous zeroes. */ + if (fmt_spec == 'f') +! tp = tmp + str_arg_l - 1; + else + { +! tp = (char *)vim_strchr((char_u *)tmp, + fmt_spec == 'e' ? 'e' : 'E'); +! if (tp != NULL) + { + /* Remove superfluous '+' and leading + * zeroes from the exponent. */ +! if (tp[1] == '+') + { + /* Change "1.0e+07" to "1.0e07" */ +! STRMOVE(tp + 1, tp + 2); + --str_arg_l; + } +! i = (tp[1] == '-') ? 2 : 1; +! while (tp[i] == '0') + { + /* Change "1.0e07" to "1.0e7" */ +! STRMOVE(tp + i, tp + i + 1); + --str_arg_l; + } +! --tp; + } + } + +! if (tp != NULL && !precision_specified) + /* Remove trailing zeroes, but keep the one + * just after a dot. */ +! while (tp > tmp + 2 && *tp == '0' +! && tp[-1] != '.') + { +! STRMOVE(tp, tp + 1); +! --tp; + --str_arg_l; + } + } + else + { +! char *tp; + + /* Be consistent: some printf("%e") use 1.0e+12 + * and some 1.0e+012. Remove one zero in the last + * case. */ +! tp = (char *)vim_strchr((char_u *)tmp, + fmt_spec == 'e' ? 'e' : 'E'); +! if (tp != NULL && (tp[1] == '+' || tp[1] == '-') +! && tp[2] == '0' +! && vim_isdigit(tp[3]) +! && vim_isdigit(tp[4])) + { +! STRMOVE(tp + 2, tp + 3); + --str_arg_l; + } + } +*** ../vim-7.2.054/src/netbeans.c Sat Nov 15 14:10:23 2008 +--- src/netbeans.c Fri Nov 28 18:51:43 2008 +*************** +*** 1043,1049 **** + nbdebug(("EVT: %s", buf)); + /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ + if (sd >= 0) +! sock_write(sd, buf, (int)STRLEN(buf)); /* ignore errors */ + } + } + +--- 1043,1049 ---- + nbdebug(("EVT: %s", buf)); + /* nb_send(buf, "netbeans_end"); avoid "write failed" messages */ + if (sd >= 0) +! ignored = sock_write(sd, buf, (int)STRLEN(buf)); + } + } + +*************** +*** 2277,2285 **** + int serNum; + int localTypeNum; + int typeNum; +- # ifdef NBDEBUG +- int len; +- # endif + pos_T *pos; + + if (buf == NULL || buf->bufp == NULL) +--- 2277,2282 ---- +*************** +*** 2303,2315 **** + pos = get_off_or_lnum(buf->bufp, &args); + + cp = (char *)args; +! # ifdef NBDEBUG +! len = +! # endif +! strtol(cp, &cp, 10); + args = (char_u *)cp; + # ifdef NBDEBUG +! if (len != -1) + { + nbdebug((" partial line annotation -- Not Yet Implemented!\n")); + } +--- 2300,2309 ---- + pos = get_off_or_lnum(buf->bufp, &args); + + cp = (char *)args; +! ignored = (int)strtol(cp, &cp, 10); + args = (char_u *)cp; + # ifdef NBDEBUG +! if (ignored != -1) + { + nbdebug((" partial line annotation -- Not Yet Implemented!\n")); + } +*** ../vim-7.2.054/src/option.c Sun Nov 9 13:43:25 2008 +--- src/option.c Fri Nov 28 12:27:34 2008 +*************** +*** 8232,8244 **** + { + if (number == 0 && string != NULL) + { +! int index; + + /* Either we are given a string or we are setting option + * to zero. */ +! for (index = 0; string[index] == '0'; ++index) + ; +! if (string[index] != NUL || index == 0) + { + /* There's another character after zeros or the string + * is empty. In both cases, we are trying to set a +--- 8232,8244 ---- + { + if (number == 0 && string != NULL) + { +! int idx; + + /* Either we are given a string or we are setting option + * to zero. */ +! for (idx = 0; string[idx] == '0'; ++idx) + ; +! if (string[idx] != NUL || idx == 0) + { + /* There's another character after zeros or the string + * is empty. In both cases, we are trying to set a +*** ../vim-7.2.054/src/os_unix.c Wed Nov 12 14:09:38 2008 +--- src/os_unix.c Fri Nov 28 18:39:55 2008 +*************** +*** 315,326 **** + {-1, "Unknown!", FALSE} + }; + + void + mch_write(s, len) + char_u *s; + int len; + { +! write(1, (char *)s, len); + if (p_wd) /* Unix is too fast, slow down a bit more */ + RealWaitForChar(read_cmd_fd, p_wd, NULL); + } +--- 315,329 ---- + {-1, "Unknown!", FALSE} + }; + ++ /* ++ * Write s[len] to the screen. ++ */ + void + mch_write(s, len) + char_u *s; + int len; + { +! ignored = (int)write(1, (char *)s, len); + if (p_wd) /* Unix is too fast, slow down a bit more */ + RealWaitForChar(read_cmd_fd, p_wd, NULL); + } +*************** +*** 3927,3935 **** + */ + if (fd >= 0) + { +! dup(fd); /* To replace stdin (file descriptor 0) */ +! dup(fd); /* To replace stdout (file descriptor 1) */ +! dup(fd); /* To replace stderr (file descriptor 2) */ + + /* Don't need this now that we've duplicated it */ + close(fd); +--- 3930,3938 ---- + */ + if (fd >= 0) + { +! ignored = dup(fd); /* To replace stdin (fd 0) */ +! ignored = dup(fd); /* To replace stdout (fd 1) */ +! ignored = dup(fd); /* To replace stderr (fd 2) */ + + /* Don't need this now that we've duplicated it */ + close(fd); +*************** +*** 3997,4009 **** + + /* set up stdin/stdout/stderr for the child */ + close(0); +! dup(pty_slave_fd); + close(1); +! dup(pty_slave_fd); + if (gui.in_use) + { + close(2); +! dup(pty_slave_fd); + } + + close(pty_slave_fd); /* has been dupped, close it now */ +--- 4000,4012 ---- + + /* set up stdin/stdout/stderr for the child */ + close(0); +! ignored = dup(pty_slave_fd); + close(1); +! ignored = dup(pty_slave_fd); + if (gui.in_use) + { + close(2); +! ignored = dup(pty_slave_fd); + } + + close(pty_slave_fd); /* has been dupped, close it now */ +*************** +*** 4014,4026 **** + /* set up stdin for the child */ + close(fd_toshell[1]); + close(0); +! dup(fd_toshell[0]); + close(fd_toshell[0]); + + /* set up stdout for the child */ + close(fd_fromshell[0]); + close(1); +! dup(fd_fromshell[1]); + close(fd_fromshell[1]); + + # ifdef FEAT_GUI +--- 4017,4029 ---- + /* set up stdin for the child */ + close(fd_toshell[1]); + close(0); +! ignored = dup(fd_toshell[0]); + close(fd_toshell[0]); + + /* set up stdout for the child */ + close(fd_fromshell[0]); + close(1); +! ignored = dup(fd_fromshell[1]); + close(fd_fromshell[1]); + + # ifdef FEAT_GUI +*************** +*** 4028,4034 **** + { + /* set up stderr for the child */ + close(2); +! dup(1); + } + # endif + } +--- 4031,4037 ---- + { + /* set up stderr for the child */ + close(2); +! ignored = dup(1); + } + # endif + } +*************** +*** 4159,4165 **** + && (lnum != + curbuf->b_ml.ml_line_count + || curbuf->b_p_eol))) +! write(toshell_fd, "\n", (size_t)1); + ++lnum; + if (lnum > curbuf->b_op_end.lnum) + { +--- 4162,4169 ---- + && (lnum != + curbuf->b_ml.ml_line_count + || curbuf->b_p_eol))) +! ignored = write(toshell_fd, "\n", +! (size_t)1); + ++lnum; + if (lnum > curbuf->b_op_end.lnum) + { +*** ../vim-7.2.054/src/spell.c Fri Nov 28 10:08:05 2008 +--- src/spell.c Fri Nov 28 12:28:24 2008 +*************** +*** 4950,4956 **** + static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd)); + static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname)); + static void clear_node __ARGS((wordnode_T *node)); +! static int put_node __ARGS((FILE *fd, wordnode_T *node, int index, int regionmask, int prefixtree)); + static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname)); + static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang)); + static int sug_maketable __ARGS((spellinfo_T *spin)); +--- 4950,4956 ---- + static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd)); + static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname)); + static void clear_node __ARGS((wordnode_T *node)); +! static int put_node __ARGS((FILE *fd, wordnode_T *node, int idx, int regionmask, int prefixtree)); + static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname)); + static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang)); + static int sug_maketable __ARGS((spellinfo_T *spin)); +*** ../vim-7.2.054/src/ui.c Sun Sep 14 15:57:54 2008 +--- src/ui.c Fri Nov 28 19:04:36 2008 +*************** +*** 1820,1826 **** + #ifdef HAVE_DUP + /* Use stderr for stdin, also works for shell commands. */ + close(0); +! dup(2); + #else + read_cmd_fd = 2; /* read from stderr instead of stdin */ + #endif +--- 1820,1826 ---- + #ifdef HAVE_DUP + /* Use stderr for stdin, also works for shell commands. */ + close(0); +! ignored = dup(2); + #else + read_cmd_fd = 2; /* read from stderr instead of stdin */ + #endif +*** ../vim-7.2.054/src/window.c Sat Nov 15 14:10:23 2008 +--- src/window.c Fri Nov 28 18:46:45 2008 +*************** +*** 4029,4042 **** + if (mch_dirname(cwd, MAXPATHL) == OK) + globaldir = vim_strsave(cwd); + } +! mch_chdir((char *)curwin->w_localdir); +! shorten_fnames(TRUE); + } + else if (globaldir != NULL) + { + /* Window doesn't have a local directory and we are not in the global + * directory: Change to the global directory. */ +! mch_chdir((char *)globaldir); + vim_free(globaldir); + globaldir = NULL; + shorten_fnames(TRUE); +--- 4029,4042 ---- + if (mch_dirname(cwd, MAXPATHL) == OK) + globaldir = vim_strsave(cwd); + } +! if (mch_chdir((char *)curwin->w_localdir) == 0) +! shorten_fnames(TRUE); + } + else if (globaldir != NULL) + { + /* Window doesn't have a local directory and we are not in the global + * directory: Change to the global directory. */ +! ignored = mch_chdir((char *)globaldir); + vim_free(globaldir); + globaldir = NULL; + shorten_fnames(TRUE); +*** ../vim-7.2.054/src/version.c Fri Nov 28 12:05:07 2008 +--- src/version.c Fri Nov 28 21:12:42 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 55, + /**/ + +-- +PRINCE: He's come to rescue me, father. +LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.056 b/source/ap/vim/patches/7.2.056 new file mode 100644 index 000000000..9e23f3da6 --- /dev/null +++ b/source/ap/vim/patches/7.2.056 @@ -0,0 +1,57 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.056 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.056 (after 7.2.050) +Problem: Tests 58 and 59 fail. +Solution: Don't invoke fwrite() with a zero length. (Dominique Pelle) +Files: src/spell.c + + +*** ../vim-7.2.055/src/spell.c Fri Nov 28 21:26:50 2008 +--- src/spell.c Sat Nov 29 19:58:21 2008 +*************** +*** 8112,8118 **** + p = rr == 1 ? ftp->ft_from : ftp->ft_to; + l = (int)STRLEN(p); + putc(l, fd); +! fwv &= fwrite(p, l, (size_t)1, fd); + } + } + +--- 8218,8225 ---- + p = rr == 1 ? ftp->ft_from : ftp->ft_to; + l = (int)STRLEN(p); + putc(l, fd); +! if (l > 0) +! fwv &= fwrite(p, l, (size_t)1, fd); + } + } + +*** ../vim-7.2.055/src/version.c Fri Nov 28 21:26:50 2008 +--- src/version.c Sat Nov 29 20:10:05 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 56, + /**/ + +-- +GUARD #1: Where'd you get the coconut? +ARTHUR: We found them. +GUARD #1: Found them? In Mercea? The coconut's tropical! +ARTHUR: What do you mean? +GUARD #1: Well, this is a temperate zone. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.057 b/source/ap/vim/patches/7.2.057 new file mode 100644 index 000000000..37549121e --- /dev/null +++ b/source/ap/vim/patches/7.2.057 @@ -0,0 +1,111 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.057 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.057 (after 7.2.056) +Problem: Combination of int and size_t may not work. +Solution: Use size_t for variable. +Files: src/spell.c + + +*** ../vim-7.2.056/src/spell.c Sat Nov 29 20:10:59 2008 +--- src/spell.c Sat Nov 29 20:15:43 2008 +*************** +*** 7926,7932 **** + char_u *p; + int rr; + int retval = OK; +! int fwv = 1; /* collect return value of fwrite() to avoid + warnings from picky compiler */ + + fd = mch_fopen((char *)fname, "w"); +--- 8028,8034 ---- + char_u *p; + int rr; + int retval = OK; +! size_t fwv = 1; /* collect return value of fwrite() to avoid + warnings from picky compiler */ + + fd = mch_fopen((char *)fname, "w"); +*************** +*** 7939,7944 **** +--- 8041,8050 ---- + /* <HEADER>: <fileID> <versionnr> */ + /* <fileID> */ + fwv &= fwrite(VIMSPELLMAGIC, VIMSPELLMAGICL, (size_t)1, fd); ++ if (fwv != (size_t)1) ++ /* Catch first write error, don't try writing more. */ ++ goto theend; ++ + putc(VIMSPELLVERSION, fd); /* <versionnr> */ + + /* +*************** +*** 8300,8310 **** + /* Write another byte to check for errors (file system full). */ + if (putc(0, fd) == EOF) + retval = FAIL; +! + if (fclose(fd) == EOF) + retval = FAIL; + +! if (fwv != 1) + retval = FAIL; + if (retval == FAIL) + EMSG(_(e_write)); +--- 8406,8416 ---- + /* Write another byte to check for errors (file system full). */ + if (putc(0, fd) == EOF) + retval = FAIL; +! theend: + if (fclose(fd) == EOF) + retval = FAIL; + +! if (fwv != (size_t)1) + retval = FAIL; + if (retval == FAIL) + EMSG(_(e_write)); +*************** +*** 9897,9903 **** + char_u *p; + int len; + int totlen; +! int x = 1; /* collect return value of fwrite() */ + + if (fd != NULL) + put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */ +--- 10003,10009 ---- + char_u *p; + int len; + int totlen; +! size_t x = 1; /* collect return value of fwrite() */ + + if (fd != NULL) + put_bytes(fd, (long_u)gap->ga_len, 2); /* <prefcondcnt> */ +*** ../vim-7.2.056/src/version.c Sat Nov 29 20:10:59 2008 +--- src/version.c Sat Nov 29 20:13:46 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 57, + /**/ + +-- +GUARD #1: What -- a swallow carrying a coconut? +ARTHUR: It could grip it by the husk! +GUARD #1: It's not a question of where he grips it! It's a simple question + of weight ratios! A five ounce bird could not carry a 1 pound + coconut. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.058 b/source/ap/vim/patches/7.2.058 new file mode 100644 index 000000000..95de243fc --- /dev/null +++ b/source/ap/vim/patches/7.2.058 @@ -0,0 +1,83 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.058 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.058 +Problem: Can't add a patch name to the ":version" output. +Solution: Add the extra_patches array. +Files: src/version.c + + +*** ../vim-7.2.057/src/version.c Sat Nov 29 20:18:44 2008 +--- src/version.c Sun Nov 30 12:12:31 2008 +*************** +*** 794,799 **** +--- 796,814 ---- + 0 + }; + ++ /* ++ * Place to put a short description when adding a feature with a patch. ++ * Keep it short, e.g.,: "relative numbers", "persistent undo". ++ * Also add a comment marker to separate the lines. ++ * See the official Vim patches for the diff format: It must use a context of ++ * one line only. Use "diff -C2". ++ */ ++ static char *(extra_patches[]) = ++ { /* Add your patch description below this line */ ++ /**/ ++ NULL ++ }; ++ + int + highest_patch() + { +*************** +*** 939,944 **** +--- 954,972 ---- + } + } + ++ /* Print the list of extra patch descriptions if there is at least one. */ ++ if (extra_patches[0] != NULL) ++ { ++ MSG_PUTS(_("\nExtra patches: ")); ++ s = ""; ++ for (i = 0; extra_patches[i] != NULL; ++i) ++ { ++ MSG_PUTS(s); ++ s = ", "; ++ MSG_PUTS(extra_patches[i]); ++ } ++ } ++ + #ifdef MODIFIED_BY + MSG_PUTS("\n"); + MSG_PUTS(_("Modified by ")); +*** ../vim-7.2.057/src/version.c Sat Nov 29 20:18:44 2008 +--- src/version.c Sun Nov 30 12:12:31 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 58, + /**/ + +-- +ARTHUR: Well, it doesn't matter. Will you go and tell your master that + Arthur from the Court of Camelot is here. +GUARD #1: Listen, in order to maintain air-speed velocity, a swallow + needs to beat its wings 43 times every second, right? +ARTHUR: Please! + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.059 b/source/ap/vim/patches/7.2.059 new file mode 100644 index 000000000..0012ad6db --- /dev/null +++ b/source/ap/vim/patches/7.2.059 @@ -0,0 +1,70 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.059 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.059 +Problem: Diff display is not always updated. +Solution: Update the display more often. +Files: src/diff.c + + +*** ../vim-7.2.058/src/diff.c Fri Nov 28 21:26:50 2008 +--- src/diff.c Fri Nov 28 17:23:35 2008 +*************** +*** 73,78 **** +--- 73,80 ---- + { + tp->tp_diffbuf[i] = NULL; + tp->tp_diff_invalid = TRUE; ++ if (tp == curtab) ++ diff_redraw(TRUE); + } + } + } +*************** +*** 102,107 **** +--- 104,110 ---- + { + curtab->tp_diffbuf[i] = NULL; + curtab->tp_diff_invalid = TRUE; ++ diff_redraw(TRUE); + } + } + } +*************** +*** 131,136 **** +--- 134,140 ---- + { + curtab->tp_diffbuf[i] = buf; + curtab->tp_diff_invalid = TRUE; ++ diff_redraw(TRUE); + return; + } + +*** ../vim-7.2.058/src/version.c Sun Nov 30 12:14:35 2008 +--- src/version.c Sun Nov 30 15:13:18 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 59, + /**/ + +-- +GUARD #2: Wait a minute -- supposing two swallows carried it together? +GUARD #1: No, they'd have to have it on a line. +GUARD #2: Well, simple! They'd just use a standard creeper! +GUARD #1: What, held under the dorsal guiding feathers? +GUARD #2: Well, why not? + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.060 b/source/ap/vim/patches/7.2.060 new file mode 100644 index 000000000..ec6e6b787 --- /dev/null +++ b/source/ap/vim/patches/7.2.060 @@ -0,0 +1,1102 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.060 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.060 +Problem: When a spell files has many compound rules it may take a very long + time making the list of suggestions. Displaying also can be slow + when there are misspelled words. + Can't parse some Hunspell .aff files. +Solution: Check if a compounding can possibly work before trying a + combination, if the compound rules don't contain wildcards. + Implement using CHECKCOMPOUNDPATTERN. + Ignore COMPOUNDRULES. Ignore a comment after most items. + Accept ONLYINCOMPOUND as an alias for NEEDCOMPOUND. + Accept FORBIDDENWORD as an alias for BAD. +Files: runtime/doc/spell.txt, src/spell.c + + +*** ../vim-7.2.059/runtime/doc/spell.txt Sat Aug 9 19:36:52 2008 +--- runtime/doc/spell.txt Sun Nov 30 16:30:02 2008 +*************** +*** 1,4 **** +! *spell.txt* For Vim version 7.2. Last change: 2008 Jun 21 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *spell.txt* For Vim version 7.2. Last change: 2008 Nov 30 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 831,838 **** + + # comment line ~ + +! With some items it's also possible to put a comment after it, but this isn't +! supported in general. + + + ENCODING *spell-SET* +--- 831,841 ---- + + # comment line ~ + +! Items with a fixed number of arguments can be followed by a comment. But only +! if none of the arguments can contain white space. The comment must start with +! a "#" character. Example: +! +! KEEPCASE = # fix case for words with this flag ~ + + + ENCODING *spell-SET* +*************** +*** 965,970 **** +--- 968,976 ---- + + Note: When using utf-8 only characters up to 65000 may be used for flags. + ++ Note: even when using "num" or "long" the number of flags available to ++ compounding and prefixes is limited to about 250. ++ + + AFFIXES + *spell-PFX* *spell-SFX* +*************** +*** 1178,1183 **** +--- 1185,1193 ---- + The flag also applies to the word with affixes, thus this can be used to mark + a whole bunch of related words as bad. + ++ *spell-FORBIDDENWORD* ++ FORBIDDENWORD can be used just like BAD. For compatibility with Hunspell. ++ + *spell-NEEDAFFIX* + The NEEDAFFIX flag is used to require that a word is used with an affix. The + word itself is not a good word (unless there is an empty affix). Example: +*************** +*** 1268,1273 **** +--- 1278,1287 ---- + + NEEDCOMPOUND & ~ + ++ *spell-ONLYINCOMPOUND* ++ The ONLYINCOMPOUND does exactly the same as NEEDCOMPOUND. Supported for ++ compatiblity with Hunspell. ++ + *spell-COMPOUNDMIN* + The minimal character length of a word used for compounding is specified with + COMPOUNDMIN. Example: +*************** +*** 1328,1333 **** +--- 1342,1361 ---- + rules. Can also be used for an affix to count the affix as a compounding + word. + ++ *spell-CHECKCOMPOUNDPATTERN* ++ CHECKCOMPOUNDPATTERN is used to define patterns that, when matching at the ++ position where two words are compounded together forbids the compound. ++ For example: ++ CHECKCOMPOUNDPATTERN o e ~ ++ ++ This forbids compounding if the first word ends in "o" and the second word ++ starts with "e". ++ ++ The arguments must be plain text, no patterns are actually supported, despite ++ the item name. Case is always ignored. ++ ++ The Hunspell feature to use three arguments and flags is not supported. ++ + *spell-SYLLABLE* + The SYLLABLE item defines characters or character sequences that are used to + count the number of syllables in a word. Example: +*************** +*** 1496,1501 **** +--- 1524,1533 ---- + ACCENT (Hunspell) *spell-ACCENT* + Use MAP instead. |spell-MAP| + ++ BREAK (Hunspell) *spell-BREAK* ++ Define break points. Unclear how it works exactly. ++ Not supported. ++ + CHECKCOMPOUNDCASE (Hunspell) *spell-CHECKCOMPOUNDCASE* + Disallow uppercase letters at compound word boundaries. + Not supported. +*************** +*** 1512,1520 **** + Forbid three identical characters when compounding. Not + supported. + +- CHECKCOMPOUNDPATTERN (Hunspell) *spell-CHECKCOMPOUNDPATTERN* +- Forbid compounding when patterns match. Not supported. +- + COMPLEXPREFIXES (Hunspell) *spell-COMPLEXPREFIXES* + Enables using two prefixes. Not supported. + +--- 1544,1549 ---- +*************** +*** 1536,1548 **** + COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE* + Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| + + COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE* + Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE| + |spell-COMPOUNDSYLMAX| + +! FORBIDDENWORD (Hunspell) *spell-FORBIDDENWORD* +! Use BAD instead. |spell-BAD| +! + LANG (Hunspell) *spell-LANG* + This specifies language-specific behavior. This actually + moves part of the language knowledge into the program, +--- 1565,1582 ---- + COMPOUNDMIDDLE (Hunspell) *spell-COMPOUNDMIDDLE* + Use COMPOUNDRULE instead. |spell-COMPOUNDRULE| + ++ COMPOUNDRULES (Hunspell) *spell-COMPOUNDRULES* ++ Number of COMPOUNDRULE lines following. Ignored, but the ++ argument must be a number. ++ + COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE* + Use SYLLABLE and COMPOUNDSYLMAX instead. |spell-SYLLABLE| + |spell-COMPOUNDSYLMAX| + +! KEY (Hunspell) *spell-KEY* +! Define characters that are close together on the keyboard. +! Used to give better suggestions. Not supported. +! + LANG (Hunspell) *spell-LANG* + This specifies language-specific behavior. This actually + moves part of the language knowledge into the program, +*************** +*** 1553,1562 **** + Only needed for morphological analysis. + + MAXNGRAMSUGS (Hunspell) *spell-MAXNGRAMSUGS* +! Not supported. +! +! ONLYINCOMPOUND (Hunspell) *spell-ONLYINCOMPOUND* +! Use NEEDCOMPOUND instead. |spell-NEEDCOMPOUND| + + PSEUDOROOT (Hunspell) *spell-PSEUDOROOT* + Use NEEDAFFIX instead. |spell-NEEDAFFIX| +--- 1587,1593 ---- + Only needed for morphological analysis. + + MAXNGRAMSUGS (Hunspell) *spell-MAXNGRAMSUGS* +! Set number of n-gram suggestions. Not supported. + + PSEUDOROOT (Hunspell) *spell-PSEUDOROOT* + Use NEEDAFFIX instead. |spell-NEEDAFFIX| +*** ../vim-7.2.059/src/spell.c Sat Nov 29 20:18:44 2008 +--- src/spell.c Sun Nov 30 20:59:13 2008 +*************** +*** 469,474 **** +--- 469,475 ---- + garray_T sl_comppat; /* CHECKCOMPOUNDPATTERN items */ + regprog_T *sl_compprog; /* COMPOUNDRULE turned into a regexp progrm + * (NULL when no compounding) */ ++ char_u *sl_comprules; /* all COMPOUNDRULE concatenated (or NULL) */ + char_u *sl_compstartflags; /* flags for first compound word */ + char_u *sl_compallflags; /* all flags for compound words */ + char_u sl_nobreak; /* When TRUE: no spaces between words */ +*************** +*** 839,845 **** +--- 840,849 ---- + static void slang_clear __ARGS((slang_T *lp)); + static void slang_clear_sug __ARGS((slang_T *lp)); + static void find_word __ARGS((matchinf_T *mip, int mode)); ++ static int match_checkcompoundpattern __ARGS((char_u *ptr, int wlen, garray_T *gap)); + static int can_compound __ARGS((slang_T *slang, char_u *word, char_u *flags)); ++ static int can_be_compound __ARGS((trystate_T *sp, slang_T *slang, char_u *compflags, int flag)); ++ static int match_compoundrule __ARGS((slang_T *slang, char_u *compflags)); + static int valid_word_prefix __ARGS((int totprefcnt, int arridx, int flags, char_u *word, slang_T *slang, int cond_req)); + static void find_prefix __ARGS((matchinf_T *mip, int mode)); + static int fold_more __ARGS((matchinf_T *mip)); +*************** +*** 1519,1524 **** +--- 1523,1533 ---- + ((unsigned)flags >> 24))) + continue; + ++ /* If there is a match with a CHECKCOMPOUNDPATTERN rule ++ * discard the compound word. */ ++ if (match_checkcompoundpattern(ptr, wlen, &slang->sl_comppat)) ++ continue; ++ + if (mode == FIND_COMPOUND) + { + int capflags; +*************** +*** 1577,1582 **** +--- 1586,1596 ---- + if (!can_compound(slang, fword, mip->mi_compflags)) + continue; + } ++ else if (slang->sl_comprules != NULL ++ && !match_compoundrule(slang, mip->mi_compflags)) ++ /* The compound flags collected so far do not match any ++ * COMPOUNDRULE, discard the compounded word. */ ++ continue; + } + + /* Check NEEDCOMPOUND: can't use word without compounding. */ +*************** +*** 1727,1732 **** +--- 1741,1779 ---- + } + + /* ++ * Return TRUE if there is a match between the word ptr[wlen] and ++ * CHECKCOMPOUNDPATTERN rules, assuming that we will concatenate with another ++ * word. ++ * A match means that the first part of CHECKCOMPOUNDPATTERN matches at the ++ * end of ptr[wlen] and the second part matches after it. ++ */ ++ static int ++ match_checkcompoundpattern(ptr, wlen, gap) ++ char_u *ptr; ++ int wlen; ++ garray_T *gap; /* &sl_comppat */ ++ { ++ int i; ++ char_u *p; ++ int len; ++ ++ for (i = 0; i + 1 < gap->ga_len; i += 2) ++ { ++ p = ((char_u **)gap->ga_data)[i + 1]; ++ if (STRNCMP(ptr + wlen, p, STRLEN(p)) == 0) ++ { ++ /* Second part matches at start of following compound word, now ++ * check if first part matches at end of previous word. */ ++ p = ((char_u **)gap->ga_data)[i]; ++ len = STRLEN(p); ++ if (len <= wlen && STRNCMP(ptr + wlen - len, p, len) == 0) ++ return TRUE; ++ } ++ } ++ return FALSE; ++ } ++ ++ /* + * Return TRUE if "flags" is a valid sequence of compound flags and "word" + * does not have too many syllables. + */ +*************** +*** 1773,1778 **** +--- 1820,1917 ---- + } + + /* ++ * Return TRUE when the sequence of flags in "compflags" plus "flag" can ++ * possibly form a valid compounded word. This also checks the COMPOUNDRULE ++ * lines if they don't contain wildcards. ++ */ ++ static int ++ can_be_compound(sp, slang, compflags, flag) ++ trystate_T *sp; ++ slang_T *slang; ++ char_u *compflags; ++ int flag; ++ { ++ /* If the flag doesn't appear in sl_compstartflags or sl_compallflags ++ * then it can't possibly compound. */ ++ if (!byte_in_str(sp->ts_complen == sp->ts_compsplit ++ ? slang->sl_compstartflags : slang->sl_compallflags, flag)) ++ return FALSE; ++ ++ /* If there are no wildcards, we can check if the flags collected so far ++ * possibly can form a match with COMPOUNDRULE patterns. This only ++ * makes sense when we have two or more words. */ ++ if (slang->sl_comprules != NULL && sp->ts_complen > sp->ts_compsplit) ++ { ++ int v; ++ ++ compflags[sp->ts_complen] = flag; ++ compflags[sp->ts_complen + 1] = NUL; ++ v = match_compoundrule(slang, compflags + sp->ts_compsplit); ++ compflags[sp->ts_complen] = NUL; ++ return v; ++ } ++ ++ return TRUE; ++ } ++ ++ ++ /* ++ * Return TRUE if the compound flags in compflags[] match the start of any ++ * compound rule. This is used to stop trying a compound if the flags ++ * collected so far can't possibly match any compound rule. ++ * Caller must check that slang->sl_comprules is not NULL. ++ */ ++ static int ++ match_compoundrule(slang, compflags) ++ slang_T *slang; ++ char_u *compflags; ++ { ++ char_u *p; ++ int i; ++ int c; ++ ++ /* loop over all the COMPOUNDRULE entries */ ++ for (p = slang->sl_comprules; *p != NUL; ++p) ++ { ++ /* loop over the flags in the compound word we have made, match ++ * them against the current rule entry */ ++ for (i = 0; ; ++i) ++ { ++ c = compflags[i]; ++ if (c == NUL) ++ /* found a rule that matches for the flags we have so far */ ++ return TRUE; ++ if (*p == '/' || *p == NUL) ++ break; /* end of rule, it's too short */ ++ if (*p == '[') ++ { ++ int match = FALSE; ++ ++ /* compare against all the flags in [] */ ++ ++p; ++ while (*p != ']' && *p != NUL) ++ if (*p++ == c) ++ match = TRUE; ++ if (!match) ++ break; /* none matches */ ++ } ++ else if (*p != c) ++ break; /* flag of word doesn't match flag in pattern */ ++ ++p; ++ } ++ ++ /* Skip to the next "/", where the next pattern starts. */ ++ p = vim_strchr(p, '/'); ++ if (p == NULL) ++ break; ++ } ++ ++ /* Checked all the rules and none of them match the flags, so there ++ * can't possibly be a compound starting with these flags. */ ++ return FALSE; ++ } ++ ++ /* + * Return non-zero if the prefix indicated by "arridx" matches with the prefix + * ID in "flags" for the word "word". + * The WF_RAREPFX flag is included in the return value for a rare prefix. +*************** +*** 2513,2521 **** +--- 2652,2662 ---- + lp->sl_midword = NULL; + + vim_free(lp->sl_compprog); ++ vim_free(lp->sl_comprules); + vim_free(lp->sl_compstartflags); + vim_free(lp->sl_compallflags); + lp->sl_compprog = NULL; ++ lp->sl_comprules = NULL; + lp->sl_compstartflags = NULL; + lp->sl_compallflags = NULL; + +*************** +*** 3460,3465 **** +--- 3601,3607 ---- + char_u *pp; + char_u *cp; + char_u *ap; ++ char_u *crp; + int cnt; + garray_T *gap; + +*************** +*** 3545,3550 **** +--- 3687,3698 ---- + slang->sl_compallflags = ap; + *ap = NUL; + ++ /* And a list of all patterns in their original form, for checking whether ++ * compounding may work in match_compoundrule(). This is freed when we ++ * encounter a wildcard, the check doesn't work then. */ ++ crp = alloc(todo + 1); ++ slang->sl_comprules = crp; ++ + pp = pat; + *pp++ = '^'; + *pp++ = '\\'; +*************** +*** 3587,3592 **** +--- 3735,3754 ---- + atstart = 0; + } + } ++ ++ /* Copy flag to "sl_comprules", unless we run into a wildcard. */ ++ if (crp != NULL) ++ { ++ if (c == '+' || c == '*') ++ { ++ vim_free(slang->sl_comprules); ++ slang->sl_comprules = NULL; ++ crp = NULL; ++ } ++ else ++ *crp++ = c; ++ } ++ + if (c == '/') /* slash separates two items */ + { + *pp++ = '\\'; +*************** +*** 3611,3616 **** +--- 3773,3781 ---- + *pp++ = '$'; + *pp = NUL; + ++ if (crp != NULL) ++ *crp = NUL; ++ + slang->sl_compprog = vim_regcomp(pat, RE_MAGIC + RE_STRING + RE_STRICT); + vim_free(pat); + if (slang->sl_compprog == NULL) +*************** +*** 4915,4920 **** +--- 5080,5086 ---- + } spellinfo_T; + + static afffile_T *spell_read_aff __ARGS((spellinfo_T *spin, char_u *fname)); ++ static int is_aff_rule __ARGS((char_u **items, int itemcnt, char *rulename, int mincount)); + static void aff_process_flags __ARGS((afffile_T *affile, affentry_T *entry)); + static int spell_info_item __ARGS((char_u *s)); + static unsigned affitem2flag __ARGS((int flagtype, char_u *item, char_u *fname, int lnum)); +*************** +*** 5223,5230 **** + /* Handle non-empty lines. */ + if (itemcnt > 0) + { +! if (STRCMP(items[0], "SET") == 0 && itemcnt == 2 +! && aff->af_enc == NULL) + { + #ifdef FEAT_MBYTE + /* Setup for conversion from "ENC" to 'encoding'. */ +--- 5389,5395 ---- + /* Handle non-empty lines. */ + if (itemcnt > 0) + { +! if (is_aff_rule(items, itemcnt, "SET", 2) && aff->af_enc == NULL) + { + #ifdef FEAT_MBYTE + /* Setup for conversion from "ENC" to 'encoding'. */ +*************** +*** 5239,5245 **** + smsg((char_u *)_("Conversion in %s not supported"), fname); + #endif + } +! else if (STRCMP(items[0], "FLAG") == 0 && itemcnt == 2 + && aff->af_flagtype == AFT_CHAR) + { + if (STRCMP(items[1], "long") == 0) +--- 5404,5410 ---- + smsg((char_u *)_("Conversion in %s not supported"), fname); + #endif + } +! else if (is_aff_rule(items, itemcnt, "FLAG", 2) + && aff->af_flagtype == AFT_CHAR) + { + if (STRCMP(items[1], "long") == 0) +*************** +*** 5284,5352 **** + spin->si_info = p; + } + } +! else if (STRCMP(items[0], "MIDWORD") == 0 && itemcnt == 2 + && midword == NULL) + { + midword = getroom_save(spin, items[1]); + } +! else if (STRCMP(items[0], "TRY") == 0 && itemcnt == 2) + { + /* ignored, we look in the tree for what chars may appear */ + } + /* TODO: remove "RAR" later */ +! else if ((STRCMP(items[0], "RAR") == 0 +! || STRCMP(items[0], "RARE") == 0) && itemcnt == 2 +! && aff->af_rare == 0) + { + aff->af_rare = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } + /* TODO: remove "KEP" later */ +! else if ((STRCMP(items[0], "KEP") == 0 +! || STRCMP(items[0], "KEEPCASE") == 0) && itemcnt == 2 + && aff->af_keepcase == 0) + { + aff->af_keepcase = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (STRCMP(items[0], "BAD") == 0 && itemcnt == 2 +! && aff->af_bad == 0) + { + aff->af_bad = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (STRCMP(items[0], "NEEDAFFIX") == 0 && itemcnt == 2 + && aff->af_needaffix == 0) + { + aff->af_needaffix = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (STRCMP(items[0], "CIRCUMFIX") == 0 && itemcnt == 2 + && aff->af_circumfix == 0) + { + aff->af_circumfix = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (STRCMP(items[0], "NOSUGGEST") == 0 && itemcnt == 2 + && aff->af_nosuggest == 0) + { + aff->af_nosuggest = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (STRCMP(items[0], "NEEDCOMPOUND") == 0 && itemcnt == 2 + && aff->af_needcomp == 0) + { + aff->af_needcomp = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (STRCMP(items[0], "COMPOUNDROOT") == 0 && itemcnt == 2 + && aff->af_comproot == 0) + { + aff->af_comproot = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (STRCMP(items[0], "COMPOUNDFORBIDFLAG") == 0 +! && itemcnt == 2 && aff->af_compforbid == 0) + { + aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); +--- 5449,5519 ---- + spin->si_info = p; + } + } +! else if (is_aff_rule(items, itemcnt, "MIDWORD", 2) + && midword == NULL) + { + midword = getroom_save(spin, items[1]); + } +! else if (is_aff_rule(items, itemcnt, "TRY", 2)) + { + /* ignored, we look in the tree for what chars may appear */ + } + /* TODO: remove "RAR" later */ +! else if ((is_aff_rule(items, itemcnt, "RAR", 2) +! || is_aff_rule(items, itemcnt, "RARE", 2)) +! && aff->af_rare == 0) + { + aff->af_rare = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } + /* TODO: remove "KEP" later */ +! else if ((is_aff_rule(items, itemcnt, "KEP", 2) +! || is_aff_rule(items, itemcnt, "KEEPCASE", 2)) + && aff->af_keepcase == 0) + { + aff->af_keepcase = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if ((is_aff_rule(items, itemcnt, "BAD", 2) +! || is_aff_rule(items, itemcnt, "FORBIDDENWORD", 2)) +! && aff->af_bad == 0) + { + aff->af_bad = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (is_aff_rule(items, itemcnt, "NEEDAFFIX", 2) + && aff->af_needaffix == 0) + { + aff->af_needaffix = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (is_aff_rule(items, itemcnt, "CIRCUMFIX", 2) + && aff->af_circumfix == 0) + { + aff->af_circumfix = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (is_aff_rule(items, itemcnt, "NOSUGGEST", 2) + && aff->af_nosuggest == 0) + { + aff->af_nosuggest = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if ((is_aff_rule(items, itemcnt, "NEEDCOMPOUND", 2) +! || is_aff_rule(items, itemcnt, "ONLYINCOMPOUND", 2)) + && aff->af_needcomp == 0) + { + aff->af_needcomp = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDROOT", 2) + && aff->af_comproot == 0) + { + aff->af_comproot = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); + } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDFORBIDFLAG", 2) +! && aff->af_compforbid == 0) + { + aff->af_compforbid = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); +*************** +*** 5354,5361 **** + smsg((char_u *)_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"), + fname, lnum); + } +! else if (STRCMP(items[0], "COMPOUNDPERMITFLAG") == 0 +! && itemcnt == 2 && aff->af_comppermit == 0) + { + aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); +--- 5521,5528 ---- + smsg((char_u *)_("Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line %d"), + fname, lnum); + } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDPERMITFLAG", 2) +! && aff->af_comppermit == 0) + { + aff->af_comppermit = affitem2flag(aff->af_flagtype, items[1], + fname, lnum); +*************** +*** 5363,5369 **** + smsg((char_u *)_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"), + fname, lnum); + } +! else if (STRCMP(items[0], "COMPOUNDFLAG") == 0 && itemcnt == 2 + && compflags == NULL) + { + /* Turn flag "c" into COMPOUNDRULE compatible string "c+", +--- 5530,5536 ---- + smsg((char_u *)_("Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line %d"), + fname, lnum); + } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDFLAG", 2) + && compflags == NULL) + { + /* Turn flag "c" into COMPOUNDRULE compatible string "c+", +*************** +*** 5376,5382 **** + compflags = p; + } + } +! else if (STRCMP(items[0], "COMPOUNDRULE") == 0 && itemcnt == 2) + { + /* Concatenate this string to previously defined ones, using a + * slash to separate them. */ +--- 5543,5557 ---- + compflags = p; + } + } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDRULES", 2)) +! { +! /* We don't use the count, but do check that it's a number and +! * not COMPOUNDRULE mistyped. */ +! if (atoi((char *)items[1]) == 0) +! smsg((char_u *)_("Wrong COMPOUNDRULES value in %s line %d: %s"), +! fname, lnum, items[1]); +! } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2)) + { + /* Concatenate this string to previously defined ones, using a + * slash to separate them. */ +*************** +*** 5395,5401 **** + compflags = p; + } + } +! else if (STRCMP(items[0], "COMPOUNDWORDMAX") == 0 && itemcnt == 2 + && compmax == 0) + { + compmax = atoi((char *)items[1]); +--- 5570,5576 ---- + compflags = p; + } + } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2) + && compmax == 0) + { + compmax = atoi((char *)items[1]); +*************** +*** 5403,5409 **** + smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"), + fname, lnum, items[1]); + } +! else if (STRCMP(items[0], "COMPOUNDMIN") == 0 && itemcnt == 2 + && compminlen == 0) + { + compminlen = atoi((char *)items[1]); +--- 5578,5584 ---- + smsg((char_u *)_("Wrong COMPOUNDWORDMAX value in %s line %d: %s"), + fname, lnum, items[1]); + } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDMIN", 2) + && compminlen == 0) + { + compminlen = atoi((char *)items[1]); +*************** +*** 5411,5417 **** + smsg((char_u *)_("Wrong COMPOUNDMIN value in %s line %d: %s"), + fname, lnum, items[1]); + } +! else if (STRCMP(items[0], "COMPOUNDSYLMAX") == 0 && itemcnt == 2 + && compsylmax == 0) + { + compsylmax = atoi((char *)items[1]); +--- 5586,5592 ---- + smsg((char_u *)_("Wrong COMPOUNDMIN value in %s line %d: %s"), + fname, lnum, items[1]); + } +! else if (is_aff_rule(items, itemcnt, "COMPOUNDSYLMAX", 2) + && compsylmax == 0) + { + compsylmax = atoi((char *)items[1]); +*************** +*** 5419,5450 **** + smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"), + fname, lnum, items[1]); + } +! else if (STRCMP(items[0], "CHECKCOMPOUNDDUP") == 0 && itemcnt == 1) + { + compoptions |= COMP_CHECKDUP; + } +! else if (STRCMP(items[0], "CHECKCOMPOUNDREP") == 0 && itemcnt == 1) + { + compoptions |= COMP_CHECKREP; + } +! else if (STRCMP(items[0], "CHECKCOMPOUNDCASE") == 0 && itemcnt == 1) + { + compoptions |= COMP_CHECKCASE; + } +! else if (STRCMP(items[0], "CHECKCOMPOUNDTRIPLE") == 0 +! && itemcnt == 1) + { + compoptions |= COMP_CHECKTRIPLE; + } +! else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0 +! && itemcnt == 2) + { + if (atoi((char *)items[1]) == 0) + smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"), + fname, lnum, items[1]); + } +! else if (STRCMP(items[0], "CHECKCOMPOUNDPATTERN") == 0 +! && itemcnt == 3) + { + garray_T *gap = &spin->si_comppat; + int i; +--- 5594,5622 ---- + smsg((char_u *)_("Wrong COMPOUNDSYLMAX value in %s line %d: %s"), + fname, lnum, items[1]); + } +! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDDUP", 1)) + { + compoptions |= COMP_CHECKDUP; + } +! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDREP", 1)) + { + compoptions |= COMP_CHECKREP; + } +! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDCASE", 1)) + { + compoptions |= COMP_CHECKCASE; + } +! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDTRIPLE", 1)) + { + compoptions |= COMP_CHECKTRIPLE; + } +! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 2)) + { + if (atoi((char *)items[1]) == 0) + smsg((char_u *)_("Wrong CHECKCOMPOUNDPATTERN value in %s line %d: %s"), + fname, lnum, items[1]); + } +! else if (is_aff_rule(items, itemcnt, "CHECKCOMPOUNDPATTERN", 3)) + { + garray_T *gap = &spin->si_comppat; + int i; +*************** +*** 5463,5486 **** + = getroom_save(spin, items[2]); + } + } +! else if (STRCMP(items[0], "SYLLABLE") == 0 && itemcnt == 2 + && syllable == NULL) + { + syllable = getroom_save(spin, items[1]); + } +! else if (STRCMP(items[0], "NOBREAK") == 0 && itemcnt == 1) + { + spin->si_nobreak = TRUE; + } +! else if (STRCMP(items[0], "NOSPLITSUGS") == 0 && itemcnt == 1) + { + spin->si_nosplitsugs = TRUE; + } +! else if (STRCMP(items[0], "NOSUGFILE") == 0 && itemcnt == 1) + { + spin->si_nosugfile = TRUE; + } +! else if (STRCMP(items[0], "PFXPOSTPONE") == 0 && itemcnt == 1) + { + aff->af_pfxpostpone = TRUE; + } +--- 5635,5658 ---- + = getroom_save(spin, items[2]); + } + } +! else if (is_aff_rule(items, itemcnt, "SYLLABLE", 2) + && syllable == NULL) + { + syllable = getroom_save(spin, items[1]); + } +! else if (is_aff_rule(items, itemcnt, "NOBREAK", 1)) + { + spin->si_nobreak = TRUE; + } +! else if (is_aff_rule(items, itemcnt, "NOSPLITSUGS", 1)) + { + spin->si_nosplitsugs = TRUE; + } +! else if (is_aff_rule(items, itemcnt, "NOSUGFILE", 1)) + { + spin->si_nosugfile = TRUE; + } +! else if (is_aff_rule(items, itemcnt, "PFXPOSTPONE", 1)) + { + aff->af_pfxpostpone = TRUE; + } +*************** +*** 5771,5794 **** + } + } + } +! else if (STRCMP(items[0], "FOL") == 0 && itemcnt == 2 +! && fol == NULL) + { + fol = vim_strsave(items[1]); + } +! else if (STRCMP(items[0], "LOW") == 0 && itemcnt == 2 +! && low == NULL) + { + low = vim_strsave(items[1]); + } +! else if (STRCMP(items[0], "UPP") == 0 && itemcnt == 2 +! && upp == NULL) + { + upp = vim_strsave(items[1]); + } +! else if ((STRCMP(items[0], "REP") == 0 +! || STRCMP(items[0], "REPSAL") == 0) +! && itemcnt == 2) + { + /* Ignore REP/REPSAL count */; + if (!isdigit(*items[1])) +--- 5943,5962 ---- + } + } + } +! else if (is_aff_rule(items, itemcnt, "FOL", 2) && fol == NULL) + { + fol = vim_strsave(items[1]); + } +! else if (is_aff_rule(items, itemcnt, "LOW", 2) && low == NULL) + { + low = vim_strsave(items[1]); + } +! else if (is_aff_rule(items, itemcnt, "UPP", 2) && upp == NULL) + { + upp = vim_strsave(items[1]); + } +! else if (is_aff_rule(items, itemcnt, "REP", 2) +! || is_aff_rule(items, itemcnt, "REPSAL", 2)) + { + /* Ignore REP/REPSAL count */; + if (!isdigit(*items[1])) +*************** +*** 5819,5825 **** + : &spin->si_rep, items[1], items[2]); + } + } +! else if (STRCMP(items[0], "MAP") == 0 && itemcnt == 2) + { + /* MAP item or count */ + if (!found_map) +--- 5987,5993 ---- + : &spin->si_rep, items[1], items[2]); + } + } +! else if (is_aff_rule(items, itemcnt, "MAP", 2)) + { + /* MAP item or count */ + if (!found_map) +*************** +*** 5856,5864 **** + ga_append(&spin->si_map, '/'); + } + } +! /* Accept "SAL from to" and "SAL from to # comment". */ +! else if (STRCMP(items[0], "SAL") == 0 +! && (itemcnt == 3 || (itemcnt > 3 && items[3][0] == '#'))) + { + if (do_sal) + { +--- 6024,6031 ---- + ga_append(&spin->si_map, '/'); + } + } +! /* Accept "SAL from to" and "SAL from to #comment". */ +! else if (is_aff_rule(items, itemcnt, "SAL", 3)) + { + if (do_sal) + { +*************** +*** 5877,5888 **** + : items[2]); + } + } +! else if (STRCMP(items[0], "SOFOFROM") == 0 && itemcnt == 2 + && sofofrom == NULL) + { + sofofrom = getroom_save(spin, items[1]); + } +! else if (STRCMP(items[0], "SOFOTO") == 0 && itemcnt == 2 + && sofoto == NULL) + { + sofoto = getroom_save(spin, items[1]); +--- 6044,6055 ---- + : items[2]); + } + } +! else if (is_aff_rule(items, itemcnt, "SOFOFROM", 2) + && sofofrom == NULL) + { + sofofrom = getroom_save(spin, items[1]); + } +! else if (is_aff_rule(items, itemcnt, "SOFOTO", 2) + && sofoto == NULL) + { + sofoto = getroom_save(spin, items[1]); +*************** +*** 6017,6022 **** +--- 6184,6205 ---- + } + + /* ++ * Return TRUE when items[0] equals "rulename", there are "mincount" items or ++ * a comment is following after item "mincount". ++ */ ++ static int ++ is_aff_rule(items, itemcnt, rulename, mincount) ++ char_u **items; ++ int itemcnt; ++ char *rulename; ++ int mincount; ++ { ++ return (STRCMP(items[0], rulename) == 0 ++ && (itemcnt == mincount ++ || (itemcnt > mincount && items[mincount][0] == '#'))); ++ } ++ ++ /* + * For affix "entry" move COMPOUNDFORBIDFLAG and COMPOUNDPERMITFLAG from + * ae_flags to ae_comppermit and ae_compforbid. + */ +*************** +*** 11492,11506 **** + vim_strncpy(preword + sp->ts_prewordlen, + tword + sp->ts_splitoff, + sp->ts_twordlen - sp->ts_splitoff); +! p = preword; +! while (*skiptowhite(p) != NUL) +! p = skipwhite(skiptowhite(p)); +! if (fword_ends && !can_compound(slang, p, +! compflags + sp->ts_compsplit)) +! /* Compound is not allowed. But it may still be +! * possible if we add another (short) word. */ + compound_ok = FALSE; + + /* Get pointer to last char of previous word. */ + p = preword + sp->ts_prewordlen; + mb_ptr_back(preword, p); +--- 11675,11698 ---- + vim_strncpy(preword + sp->ts_prewordlen, + tword + sp->ts_splitoff, + sp->ts_twordlen - sp->ts_splitoff); +! +! /* Verify CHECKCOMPOUNDPATTERN rules. */ +! if (match_checkcompoundpattern(preword, sp->ts_prewordlen, +! &slang->sl_comppat)) + compound_ok = FALSE; + ++ if (compound_ok) ++ { ++ p = preword; ++ while (*skiptowhite(p) != NUL) ++ p = skipwhite(skiptowhite(p)); ++ if (fword_ends && !can_compound(slang, p, ++ compflags + sp->ts_compsplit)) ++ /* Compound is not allowed. But it may still be ++ * possible if we add another (short) word. */ ++ compound_ok = FALSE; ++ } ++ + /* Get pointer to last char of previous word. */ + p = preword + sp->ts_prewordlen; + mb_ptr_back(preword, p); +*************** +*** 11697,11706 **** + && (slang->sl_compsylmax < MAXWLEN + || sp->ts_complen + 1 - sp->ts_compsplit + < slang->sl_compmax) +! && (byte_in_str(sp->ts_complen == sp->ts_compsplit +! ? slang->sl_compstartflags +! : slang->sl_compallflags, +! ((unsigned)flags >> 24)))) + { + try_compound = TRUE; + compflags[sp->ts_complen] = ((unsigned)flags >> 24); +--- 11889,11897 ---- + && (slang->sl_compsylmax < MAXWLEN + || sp->ts_complen + 1 - sp->ts_compsplit + < slang->sl_compmax) +! && (can_be_compound(sp, slang, +! compflags, ((unsigned)flags >> 24)))) +! + { + try_compound = TRUE; + compflags[sp->ts_complen] = ((unsigned)flags >> 24); +*** ../vim-7.2.059/src/version.c Sun Nov 30 15:15:56 2008 +--- src/version.c Sun Nov 30 21:09:23 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 60, + /**/ + +-- +DEAD PERSON: I'm getting better! +CUSTOMER: No, you're not -- you'll be stone dead in a moment. +MORTICIAN: Oh, I can't take him like that -- it's against regulations. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.061 b/source/ap/vim/patches/7.2.061 new file mode 100644 index 000000000..787aa66af --- /dev/null +++ b/source/ap/vim/patches/7.2.061 @@ -0,0 +1,56 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.061 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.061 +Problem: Can't create a funcref for an autoload function without loading + the script first. (Marc Weber) +Solution: Accept autoload functions that don't exist yet in function(). +Files: src/eval.c + + +*** ../vim-7.2.060/src/eval.c Fri Nov 28 21:26:50 2008 +--- src/eval.c Sat Nov 29 12:28:51 2008 +*************** +*** 10339,10345 **** + s = get_tv_string(&argvars[0]); + if (s == NULL || *s == NUL || VIM_ISDIGIT(*s)) + EMSG2(_(e_invarg2), s); +! else if (!function_exists(s)) + EMSG2(_("E700: Unknown function: %s"), s); + else + { +--- 10339,10346 ---- + s = get_tv_string(&argvars[0]); + if (s == NULL || *s == NUL || VIM_ISDIGIT(*s)) + EMSG2(_(e_invarg2), s); +! /* Don't check an autoload name for existence here. */ +! else if (vim_strchr(s, AUTOLOAD_CHAR) == NULL && !function_exists(s)) + EMSG2(_("E700: Unknown function: %s"), s); + else + { +*** ../vim-7.2.060/src/version.c Sun Nov 30 21:11:54 2008 +--- src/version.c Wed Dec 3 09:49:07 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 61, + /**/ + +-- +There are 2 kinds of people in my world: those who know Unix, Perl, Vim, GNU, +Linux, etc, and those who know COBOL. It gets very difficult for me at +parties, not knowing which group to socialise with :-) + Sitaram Chamarty + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.062 b/source/ap/vim/patches/7.2.062 new file mode 100644 index 000000000..6b4b8909e --- /dev/null +++ b/source/ap/vim/patches/7.2.062 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.062 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.062 +Problem: "[Scratch]" is not translated. +Solution: Mark the string for translation. (Dominique Pelle) +Files: src/buffer.c + + +*** ../vim-7.2.061/src/buffer.c Sat Nov 15 16:05:30 2008 +--- src/buffer.c Tue Dec 2 21:51:02 2008 +*************** +*** 5118,5124 **** + { + if (buf->b_sfname != NULL) + return (char *)buf->b_sfname; +! return "[Scratch]"; + } + #endif + if (buf->b_fname == NULL) +--- 5118,5124 ---- + { + if (buf->b_sfname != NULL) + return (char *)buf->b_sfname; +! return _("[Scratch]"); + } + #endif + if (buf->b_fname == NULL) +*** ../vim-7.2.061/src/version.c Wed Dec 3 09:51:19 2008 +--- src/version.c Wed Dec 3 11:20:30 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 62, + /**/ + +-- +DENNIS: Listen -- strange women lying in ponds distributing swords is no + basis for a system of government. Supreme executive power derives + from a mandate from the masses, not from some farcical aquatic + ceremony. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.063 b/source/ap/vim/patches/7.2.063 new file mode 100644 index 000000000..f95155469 --- /dev/null +++ b/source/ap/vim/patches/7.2.063 @@ -0,0 +1,103 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.063 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.063 +Problem: Warning for NULL argument of Perl_sys_init3(). +Solution: Use Perl_sys_init() instead. (partly by Dominique Pelle) +Files: src/if_perl.xs + + +*** ../vim-7.2.062/src/if_perl.xs Mon Sep 1 17:56:05 2008 +--- src/if_perl.xs Wed Dec 3 12:44:38 2008 +*************** +*** 166,172 **** + # define Perl_Isv_yes_ptr dll_Perl_Isv_yes_ptr + # define boot_DynaLoader dll_boot_DynaLoader + +! # define Perl_sys_init3 dll_Perl_sys_init3 + # define Perl_sys_term dll_Perl_sys_term + # define Perl_ISv_ptr dll_Perl_ISv_ptr + # define Perl_Istack_max_ptr dll_Perl_Istack_max_ptr +--- 166,172 ---- + # define Perl_Isv_yes_ptr dll_Perl_Isv_yes_ptr + # define boot_DynaLoader dll_boot_DynaLoader + +! # define Perl_sys_init dll_Perl_sys_init + # define Perl_sys_term dll_Perl_sys_term + # define Perl_ISv_ptr dll_Perl_ISv_ptr + # define Perl_Istack_max_ptr dll_Perl_Istack_max_ptr +*************** +*** 272,278 **** + + #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) + static void (*Perl_sv_free2)(pTHX_ SV*); +! static void (*Perl_sys_init3)(int* argc, char*** argv, char*** env); + static void (*Perl_sys_term)(void); + static SV** (*Perl_ISv_ptr)(register PerlInterpreter*); + static SV*** (*Perl_Istack_max_ptr)(register PerlInterpreter*); +--- 272,278 ---- + + #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) + static void (*Perl_sv_free2)(pTHX_ SV*); +! static void (*Perl_sys_init)(int* argc, char*** argv); + static void (*Perl_sys_term)(void); + static SV** (*Perl_ISv_ptr)(register PerlInterpreter*); + static SV*** (*Perl_Istack_max_ptr)(register PerlInterpreter*); +*************** +*** 372,378 **** + {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr}, + #else + {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2}, +! {"Perl_sys_init3", (PERL_PROC*)&Perl_sys_init3}, + {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term}, + {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr}, + {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr}, +--- 372,378 ---- + {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr}, + #else + {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2}, +! {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init}, + {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term}, + {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr}, + {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr}, +*************** +*** 460,466 **** + static char *argv[] = { "", "-e", "" }; + + #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) +! Perl_sys_init3(&argc, (char***)&argv, NULL); + #endif + perl_interp = perl_alloc(); + perl_construct(perl_interp); +--- 460,466 ---- + static char *argv[] = { "", "-e", "" }; + + #if (PERL_REVISION == 5) && (PERL_VERSION >= 10) +! Perl_sys_init(&argc, (char***)&argv); + #endif + perl_interp = perl_alloc(); + perl_construct(perl_interp); +*** ../vim-7.2.062/src/version.c Wed Dec 3 11:21:20 2008 +--- src/version.c Wed Dec 3 12:42:50 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 63, + /**/ + +-- +Windows +M!uqoms + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.064 b/source/ap/vim/patches/7.2.064 new file mode 100644 index 000000000..48ca877ed --- /dev/null +++ b/source/ap/vim/patches/7.2.064 @@ -0,0 +1,66 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.064 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.064 +Problem: Screen update bug when repeating "~" on a Visual block and the + last line doesn't change. +Solution: Keep track of changes for all lines. (Moritz Orbach) +Files: src/ops.c + + +*** ../vim-7.2.063/src/ops.c Tue Jun 24 23:59:55 2008 +--- src/ops.c Wed Dec 3 13:12:06 2008 +*************** +*** 2209,2220 **** + { + for (; pos.lnum <= oap->end.lnum; ++pos.lnum) + { + block_prep(oap, &bd, pos.lnum, FALSE); + pos.col = bd.textcol; +! did_change = swapchars(oap->op_type, &pos, bd.textlen); + + # ifdef FEAT_NETBEANS_INTG +! if (usingNetbeans && did_change) + { + char_u *ptr = ml_get_buf(curbuf, pos.lnum, FALSE); + +--- 2209,2223 ---- + { + for (; pos.lnum <= oap->end.lnum; ++pos.lnum) + { ++ int one_change; ++ + block_prep(oap, &bd, pos.lnum, FALSE); + pos.col = bd.textcol; +! one_change = swapchars(oap->op_type, &pos, bd.textlen); +! did_change |= one_change; + + # ifdef FEAT_NETBEANS_INTG +! if (usingNetbeans && one_change) + { + char_u *ptr = ml_get_buf(curbuf, pos.lnum, FALSE); + +*** ../vim-7.2.063/src/version.c Wed Dec 3 13:18:16 2008 +--- src/version.c Wed Dec 3 13:14:46 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 64, + /**/ + +-- +Q: How many hardware engineers does it take to change a lightbulb? +A: None. We'll fix it in software. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.065 b/source/ap/vim/patches/7.2.065 new file mode 100644 index 000000000..d2cac8416 --- /dev/null +++ b/source/ap/vim/patches/7.2.065 @@ -0,0 +1,177 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.065 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.065 +Problem: GTK GUI: the cursor disappears when doing ":vsp" and the Vim + window is maximized. (Dominique Pelle, Denis Smolyar) +Solution: Don't change "Columns" back to an old value at a wrong moment. + Do change "Rows" when it should not be a problem. +Files: src/gui.c + + +*** ../vim-7.2.064/src/gui.c Fri Nov 28 21:26:50 2008 +--- src/gui.c Wed Dec 3 18:01:21 2008 +*************** +*** 3241,3247 **** + i = Rows; + gui_update_tabline(); + Rows = i; +! need_set_size = RESIZE_VERT; + if (using_tabline) + fix_size = TRUE; + if (!gui_use_tabline()) +--- 3241,3247 ---- + i = Rows; + gui_update_tabline(); + Rows = i; +! need_set_size |= RESIZE_VERT; + if (using_tabline) + fix_size = TRUE; + if (!gui_use_tabline()) +*************** +*** 3275,3283 **** + if (gui.which_scrollbars[i] != prev_which_scrollbars[i]) + { + if (i == SBAR_BOTTOM) +! need_set_size = RESIZE_VERT; + else +! need_set_size = RESIZE_HOR; + if (gui.which_scrollbars[i]) + fix_size = TRUE; + } +--- 3275,3283 ---- + if (gui.which_scrollbars[i] != prev_which_scrollbars[i]) + { + if (i == SBAR_BOTTOM) +! need_set_size |= RESIZE_VERT; + else +! need_set_size |= RESIZE_HOR; + if (gui.which_scrollbars[i]) + fix_size = TRUE; + } +*************** +*** 3297,3303 **** + gui_mch_enable_menu(gui.menu_is_active); + Rows = i; + prev_menu_is_active = gui.menu_is_active; +! need_set_size = RESIZE_VERT; + if (gui.menu_is_active) + fix_size = TRUE; + } +--- 3297,3303 ---- + gui_mch_enable_menu(gui.menu_is_active); + Rows = i; + prev_menu_is_active = gui.menu_is_active; +! need_set_size |= RESIZE_VERT; + if (gui.menu_is_active) + fix_size = TRUE; + } +*************** +*** 3308,3314 **** + { + gui_mch_show_toolbar(using_toolbar); + prev_toolbar = using_toolbar; +! need_set_size = RESIZE_VERT; + if (using_toolbar) + fix_size = TRUE; + } +--- 3308,3314 ---- + { + gui_mch_show_toolbar(using_toolbar); + prev_toolbar = using_toolbar; +! need_set_size |= RESIZE_VERT; + if (using_toolbar) + fix_size = TRUE; + } +*************** +*** 3318,3324 **** + { + gui_mch_enable_footer(using_footer); + prev_footer = using_footer; +! need_set_size = RESIZE_VERT; + if (using_footer) + fix_size = TRUE; + } +--- 3318,3324 ---- + { + gui_mch_enable_footer(using_footer); + prev_footer = using_footer; +! need_set_size |= RESIZE_VERT; + if (using_footer) + fix_size = TRUE; + } +*************** +*** 3330,3339 **** + prev_tearoff = using_tearoff; + } + #endif +! if (need_set_size) + { + #ifdef FEAT_GUI_GTK +! long c = Columns; + #endif + /* Adjust the size of the window to make the text area keep the + * same size and to avoid that part of our window is off-screen +--- 3330,3340 ---- + prev_tearoff = using_tearoff; + } + #endif +! if (need_set_size != 0) + { + #ifdef FEAT_GUI_GTK +! long prev_Columns = Columns; +! long prev_Rows = Rows; + #endif + /* Adjust the size of the window to make the text area keep the + * same size and to avoid that part of our window is off-screen +*************** +*** 3349,3359 **** + * If you remove this, please test this command for resizing + * effects (with optional left scrollbar): ":vsp|q|vsp|q|vsp|q". + * Don't do this while starting up though. +! * And don't change Rows, it may have be reduced intentionally +! * when adding menu/toolbar/tabline. */ +! if (!gui.starting) + (void)char_avail(); +! Columns = c; + #endif + } + #ifdef FEAT_WINDOWS +--- 3350,3363 ---- + * If you remove this, please test this command for resizing + * effects (with optional left scrollbar): ":vsp|q|vsp|q|vsp|q". + * Don't do this while starting up though. +! * Don't change Rows when adding menu/toolbar/tabline. +! * Don't change Columns when adding vertical toolbar. */ +! if (!gui.starting && need_set_size != (RESIZE_VERT | RESIZE_HOR)) + (void)char_avail(); +! if ((need_set_size & RESIZE_VERT) == 0) +! Rows = prev_Rows; +! if ((need_set_size & RESIZE_HOR) == 0) +! Columns = prev_Columns; + #endif + } + #ifdef FEAT_WINDOWS +*** ../vim-7.2.064/src/version.c Wed Dec 3 13:38:00 2008 +--- src/version.c Wed Dec 3 18:47:11 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 65, + /**/ + +-- +Seen on the back of a biker's vest: If you can read this, my wife fell off. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.066 b/source/ap/vim/patches/7.2.066 new file mode 100644 index 000000000..a5991d428 --- /dev/null +++ b/source/ap/vim/patches/7.2.066 @@ -0,0 +1,70 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.066 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.066 +Problem: It's not easy to see whether 'encoding' is a multi-byte encoding. +Solution: Add has('multi_byte_encoding'). +Files: runtime/doc/eval.txt, src/eval.c + + +*** ../vim-7.2.065/runtime/doc/eval.txt Fri Nov 28 11:15:10 2008 +--- runtime/doc/eval.txt Tue Dec 9 10:55:59 2008 +*************** +*** 5841,5847 **** + mouse_pterm Compiled with support for qnx pterm mouse. + mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse) + mouse_xterm Compiled with support for xterm mouse. +! multi_byte Compiled with support for editing Korean et al. + multi_byte_ime Compiled with support for IME input method. + multi_lang Compiled with support for multiple languages. + mzscheme Compiled with MzScheme interface |mzscheme|. +--- 5852,5859 ---- + mouse_pterm Compiled with support for qnx pterm mouse. + mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse) + mouse_xterm Compiled with support for xterm mouse. +! multi_byte Compiled with support for 'encoding' +! multi_byte_encoding 'encoding' is set to a multi-byte encoding. + multi_byte_ime Compiled with support for IME input method. + multi_lang Compiled with support for multiple languages. + mzscheme Compiled with MzScheme interface |mzscheme|. +*** ../vim-7.2.065/src/eval.c Wed Dec 3 09:51:19 2008 +--- src/eval.c Wed Dec 3 14:29:09 2008 +*************** +*** 11842,11847 **** +--- 11842,11851 ---- + n = has_patch(atoi((char *)name + 5)); + else if (STRICMP(name, "vim_starting") == 0) + n = (starting != 0); ++ #ifdef FEAT_MBYTE ++ else if (STRICMP(name, "multi_byte_encoding") == 0) ++ n = has_mbyte; ++ #endif + #if defined(FEAT_BEVAL) && defined(FEAT_GUI_W32) + else if (STRICMP(name, "balloon_multiline") == 0) + n = multiline_balloon_available(); +*** ../vim-7.2.065/src/version.c Wed Dec 3 18:50:09 2008 +--- src/version.c Tue Dec 9 10:48:49 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 66, + /**/ + +-- +ARTHUR: Listen, old crone! Unless you tell us where we can buy a shrubbery, + my friend and I will ... we will say "Ni!" +CRONE: Do your worst! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.067 b/source/ap/vim/patches/7.2.067 new file mode 100644 index 000000000..079a05302 --- /dev/null +++ b/source/ap/vim/patches/7.2.067 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.067 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.067 +Problem: Session file can't load extra file when the path contains special + characters. +Solution: Escape the file name. (Lech Lorens) +Files: src/ex_docmd.c + + +*** ../vim-7.2.066/src/ex_docmd.c Fri Nov 28 21:26:50 2008 +--- src/ex_docmd.c Fri Dec 5 21:34:11 2008 +*************** +*** 10106,10112 **** + */ + if (put_line(fd, "let s:sx = expand(\"<sfile>:p:r\").\"x.vim\"") == FAIL + || put_line(fd, "if file_readable(s:sx)") == FAIL +! || put_line(fd, " exe \"source \" . s:sx") == FAIL + || put_line(fd, "endif") == FAIL) + return FAIL; + +--- 10106,10112 ---- + */ + if (put_line(fd, "let s:sx = expand(\"<sfile>:p:r\").\"x.vim\"") == FAIL + || put_line(fd, "if file_readable(s:sx)") == FAIL +! || put_line(fd, " exe \"source \" . fnameescape(s:sx)") == FAIL + || put_line(fd, "endif") == FAIL) + return FAIL; + +*** ../vim-7.2.066/src/version.c Tue Dec 9 10:56:50 2008 +--- src/version.c Tue Dec 9 11:16:27 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 67, + /**/ + +-- +Life is a gift, living is an art. (Bram Moolenaar) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.068 b/source/ap/vim/patches/7.2.068 new file mode 100644 index 000000000..508bac125 --- /dev/null +++ b/source/ap/vim/patches/7.2.068 @@ -0,0 +1,101 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.068 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.068 +Problem: Emacs tags file lines can be too long, resulting in an error + message. (James Vega) +Solution: Ignore lines with errors if they are too long. +Files: src/tag.c + + +*** ../vim-7.2.067/src/tag.c Fri Jul 18 11:26:12 2008 +--- src/tag.c Sat Dec 6 13:54:33 2008 +*************** +*** 2725,2731 **** +--- 2725,2748 ---- + */ + p_7f = vim_strchr(lbuf, 0x7f); + if (p_7f == NULL) ++ { ++ etag_fail: ++ if (vim_strchr(lbuf, '\n') == NULL) ++ { ++ /* Truncated line. Ignore it. */ ++ if (p_verbose >= 5) ++ { ++ verbose_enter(); ++ MSG(_("Ignoring long line in tags file")); ++ verbose_leave(); ++ } ++ tagp->command = lbuf; ++ tagp->tagname = lbuf; ++ tagp->tagname_end = lbuf; ++ return OK; ++ } + return FAIL; ++ } + + /* Find ^A. If not found the line number is after the 0x7f */ + p = vim_strchr(p_7f, Ctrl_A); +*************** +*** 2735,2741 **** + ++p; + + if (!VIM_ISDIGIT(*p)) /* check for start of line number */ +! return FAIL; + tagp->command = p; + + +--- 2752,2758 ---- + ++p; + + if (!VIM_ISDIGIT(*p)) /* check for start of line number */ +! goto etag_fail; + tagp->command = p; + + +*************** +*** 2749,2755 **** + /* find end of tagname */ + for (p = p_7f - 1; !vim_iswordc(*p); --p) + if (p == lbuf) +! return FAIL; + tagp->tagname_end = p + 1; + while (p >= lbuf && vim_iswordc(*p)) + --p; +--- 2766,2772 ---- + /* find end of tagname */ + for (p = p_7f - 1; !vim_iswordc(*p); --p) + if (p == lbuf) +! goto etag_fail; + tagp->tagname_end = p + 1; + while (p >= lbuf && vim_iswordc(*p)) + --p; +*** ../vim-7.2.067/src/version.c Tue Dec 9 11:17:23 2008 +--- src/version.c Tue Dec 9 12:05:41 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 68, + /**/ + +-- +Q: What do you call a fish without an eye? +A: fsh! +Q: What do you call a deer with no eyes? +A: no eye deer. +Q: What do you call a deer with no eyes and no legs? +A: still no eye deer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.069 b/source/ap/vim/patches/7.2.069 new file mode 100644 index 000000000..7714fae9d --- /dev/null +++ b/source/ap/vim/patches/7.2.069 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.069 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.069 (after 7.2.060) +Problem: Compiler warning for storing size_t in int. +Solution: Add type cast. +Files: src/spell.c + + +*** ../vim-7.2.068/src/spell.c Sun Nov 30 21:11:54 2008 +--- src/spell.c Tue Dec 9 22:19:04 2008 +*************** +*** 1765,1771 **** + /* Second part matches at start of following compound word, now + * check if first part matches at end of previous word. */ + p = ((char_u **)gap->ga_data)[i]; +! len = STRLEN(p); + if (len <= wlen && STRNCMP(ptr + wlen - len, p, len) == 0) + return TRUE; + } +--- 1765,1771 ---- + /* Second part matches at start of following compound word, now + * check if first part matches at end of previous word. */ + p = ((char_u **)gap->ga_data)[i]; +! len = (int)STRLEN(p); + if (len <= wlen && STRNCMP(ptr + wlen - len, p, len) == 0) + return TRUE; + } +*** ../vim-7.2.068/src/version.c Tue Dec 9 12:12:31 2008 +--- src/version.c Tue Dec 9 22:21:15 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 69, + /**/ + +-- +The war between Emacs and Vi is over. Vi has won with 3 to 1. + http://www.ssc.com/lg/issue30/raymond.html + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.070 b/source/ap/vim/patches/7.2.070 new file mode 100644 index 000000000..9a7edc785 --- /dev/null +++ b/source/ap/vim/patches/7.2.070 @@ -0,0 +1,566 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.070 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.070 +Problem: Crash when a function returns a:000. (Matt Wozkiski) +Solution: Don't put the function struct on the stack, allocate it. Free it + only when nothing in it is used. +Files: src/eval.c + + +*** ../vim-7.2.069/src/eval.c Tue Dec 9 10:56:50 2008 +--- src/eval.c Wed Dec 17 21:32:26 2008 +*************** +*** 32,37 **** +--- 32,40 ---- + + #define DICT_MAXNEST 100 /* maximum nesting of lists and dicts */ + ++ #define DO_NOT_FREE_CNT 99999 /* refcount for dict or list that should not ++ be freed. */ ++ + /* + * In a hashtab item "hi_key" points to "di_key" in a dictitem. + * This avoids adding a pointer to the hashtab item. +*************** +*** 789,794 **** +--- 792,799 ---- + static void func_unref __ARGS((char_u *name)); + static void func_ref __ARGS((char_u *name)); + static void call_user_func __ARGS((ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rettv, linenr_T firstline, linenr_T lastline, dict_T *selfdict)); ++ static int can_free_funccal __ARGS((funccall_T *fc, int copyID)) ; ++ static void free_funccal __ARGS((funccall_T *fc, int free_val)); + static void add_nr_var __ARGS((dict_T *dp, dictitem_T *v, char *name, varnumber_T nr)); + static win_T *find_win_by_nr __ARGS((typval_T *vp, tabpage_T *tp)); + static void getwinvar __ARGS((typval_T *argvars, typval_T *rettv, int off)); +*************** +*** 923,928 **** +--- 928,937 ---- + /* pointer to funccal for currently active function */ + funccall_T *current_funccal = NULL; + ++ /* pointer to list of previously used funccal, still around because some ++ * item in it is still being used. */ ++ funccall_T *previous_funccal = NULL; ++ + /* + * Return TRUE when a function was ended by a ":return" command. + */ +*************** +*** 6490,6496 **** + buf_T *buf; + win_T *wp; + int i; +! funccall_T *fc; + int did_free = FALSE; + #ifdef FEAT_WINDOWS + tabpage_T *tp; +--- 6499,6505 ---- + buf_T *buf; + win_T *wp; + int i; +! funccall_T *fc, **pfc; + int did_free = FALSE; + #ifdef FEAT_WINDOWS + tabpage_T *tp; +*************** +*** 6574,6579 **** +--- 6583,6602 ---- + else + ll = ll->lv_used_next; + ++ /* check if any funccal can be freed now */ ++ for (pfc = &previous_funccal; *pfc != NULL; ) ++ { ++ if (can_free_funccal(*pfc, copyID)) ++ { ++ fc = *pfc; ++ *pfc = fc->caller; ++ free_funccal(fc, TRUE); ++ did_free = TRUE; ++ } ++ else ++ pfc = &(*pfc)->caller; ++ } ++ + return did_free; + } + +*************** +*** 18962,18968 **** + dictitem_T *dict_var; + { + hash_init(&dict->dv_hashtab); +! dict->dv_refcount = 99999; + dict_var->di_tv.vval.v_dict = dict; + dict_var->di_tv.v_type = VAR_DICT; + dict_var->di_tv.v_lock = VAR_FIXED; +--- 18985,18991 ---- + dictitem_T *dict_var; + { + hash_init(&dict->dv_hashtab); +! dict->dv_refcount = DO_NOT_FREE_CNT; + dict_var->di_tv.vval.v_dict = dict; + dict_var->di_tv.v_type = VAR_DICT; + dict_var->di_tv.v_lock = VAR_FIXED; +*************** +*** 19299,19304 **** +--- 19322,19329 ---- + * Copy the values from typval_T "from" to typval_T "to". + * When needed allocates string or increases reference count. + * Does not make a copy of a list or dict but copies the reference! ++ * It is OK for "from" and "to" to point to the same item. This is used to ++ * make a copy later. + */ + static void + copy_tv(from, to) +*************** +*** 21111,21117 **** + char_u *save_sourcing_name; + linenr_T save_sourcing_lnum; + scid_T save_current_SID; +! funccall_T fc; + int save_did_emsg; + static int depth = 0; + dictitem_T *v; +--- 21136,21142 ---- + char_u *save_sourcing_name; + linenr_T save_sourcing_lnum; + scid_T save_current_SID; +! funccall_T *fc; + int save_did_emsg; + static int depth = 0; + dictitem_T *v; +*************** +*** 21137,21172 **** + + line_breakcheck(); /* check for CTRL-C hit */ + +! fc.caller = current_funccal; +! current_funccal = &fc; +! fc.func = fp; +! fc.rettv = rettv; + rettv->vval.v_number = 0; +! fc.linenr = 0; +! fc.returned = FALSE; +! fc.level = ex_nesting_level; + /* Check if this function has a breakpoint. */ +! fc.breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name, (linenr_T)0); +! fc.dbg_tick = debug_tick; + + /* +! * Note about using fc.fixvar[]: This is an array of FIXVAR_CNT variables + * with names up to VAR_SHORT_LEN long. This avoids having to alloc/free + * each argument variable and saves a lot of time. + */ + /* + * Init l: variables. + */ +! init_var_dict(&fc.l_vars, &fc.l_vars_var); + if (selfdict != NULL) + { + /* Set l:self to "selfdict". Use "name" to avoid a warning from + * some compiler that checks the destination size. */ +! v = &fc.fixvar[fixvar_idx++].var; + name = v->di_key; + STRCPY(name, "self"); + v->di_flags = DI_FLAGS_RO + DI_FLAGS_FIX; +! hash_add(&fc.l_vars.dv_hashtab, DI2HIKEY(v)); + v->di_tv.v_type = VAR_DICT; + v->di_tv.v_lock = 0; + v->di_tv.vval.v_dict = selfdict; +--- 21162,21198 ---- + + line_breakcheck(); /* check for CTRL-C hit */ + +! fc = (funccall_T *)alloc(sizeof(funccall_T)); +! fc->caller = current_funccal; +! current_funccal = fc; +! fc->func = fp; +! fc->rettv = rettv; + rettv->vval.v_number = 0; +! fc->linenr = 0; +! fc->returned = FALSE; +! fc->level = ex_nesting_level; + /* Check if this function has a breakpoint. */ +! fc->breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name, (linenr_T)0); +! fc->dbg_tick = debug_tick; + + /* +! * Note about using fc->fixvar[]: This is an array of FIXVAR_CNT variables + * with names up to VAR_SHORT_LEN long. This avoids having to alloc/free + * each argument variable and saves a lot of time. + */ + /* + * Init l: variables. + */ +! init_var_dict(&fc->l_vars, &fc->l_vars_var); + if (selfdict != NULL) + { + /* Set l:self to "selfdict". Use "name" to avoid a warning from + * some compiler that checks the destination size. */ +! v = &fc->fixvar[fixvar_idx++].var; + name = v->di_key; + STRCPY(name, "self"); + v->di_flags = DI_FLAGS_RO + DI_FLAGS_FIX; +! hash_add(&fc->l_vars.dv_hashtab, DI2HIKEY(v)); + v->di_tv.v_type = VAR_DICT; + v->di_tv.v_lock = 0; + v->di_tv.vval.v_dict = selfdict; +*************** +*** 21178,21208 **** + * Set a:0 to "argcount". + * Set a:000 to a list with room for the "..." arguments. + */ +! init_var_dict(&fc.l_avars, &fc.l_avars_var); +! add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "0", + (varnumber_T)(argcount - fp->uf_args.ga_len)); + /* Use "name" to avoid a warning from some compiler that checks the + * destination size. */ +! v = &fc.fixvar[fixvar_idx++].var; + name = v->di_key; + STRCPY(name, "000"); + v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; +! hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v)); + v->di_tv.v_type = VAR_LIST; + v->di_tv.v_lock = VAR_FIXED; +! v->di_tv.vval.v_list = &fc.l_varlist; +! vim_memset(&fc.l_varlist, 0, sizeof(list_T)); +! fc.l_varlist.lv_refcount = 99999; +! fc.l_varlist.lv_lock = VAR_FIXED; + + /* + * Set a:firstline to "firstline" and a:lastline to "lastline". + * Set a:name to named arguments. + * Set a:N to the "..." arguments. + */ +! add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "firstline", + (varnumber_T)firstline); +! add_nr_var(&fc.l_avars, &fc.fixvar[fixvar_idx++].var, "lastline", + (varnumber_T)lastline); + for (i = 0; i < argcount; ++i) + { +--- 21204,21234 ---- + * Set a:0 to "argcount". + * Set a:000 to a list with room for the "..." arguments. + */ +! init_var_dict(&fc->l_avars, &fc->l_avars_var); +! add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "0", + (varnumber_T)(argcount - fp->uf_args.ga_len)); + /* Use "name" to avoid a warning from some compiler that checks the + * destination size. */ +! v = &fc->fixvar[fixvar_idx++].var; + name = v->di_key; + STRCPY(name, "000"); + v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; +! hash_add(&fc->l_avars.dv_hashtab, DI2HIKEY(v)); + v->di_tv.v_type = VAR_LIST; + v->di_tv.v_lock = VAR_FIXED; +! v->di_tv.vval.v_list = &fc->l_varlist; +! vim_memset(&fc->l_varlist, 0, sizeof(list_T)); +! fc->l_varlist.lv_refcount = DO_NOT_FREE_CNT; +! fc->l_varlist.lv_lock = VAR_FIXED; + + /* + * Set a:firstline to "firstline" and a:lastline to "lastline". + * Set a:name to named arguments. + * Set a:N to the "..." arguments. + */ +! add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "firstline", + (varnumber_T)firstline); +! add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "lastline", + (varnumber_T)lastline); + for (i = 0; i < argcount; ++i) + { +*************** +*** 21218,21224 **** + } + if (fixvar_idx < FIXVAR_CNT && STRLEN(name) <= VAR_SHORT_LEN) + { +! v = &fc.fixvar[fixvar_idx++].var; + v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; + } + else +--- 21244,21250 ---- + } + if (fixvar_idx < FIXVAR_CNT && STRLEN(name) <= VAR_SHORT_LEN) + { +! v = &fc->fixvar[fixvar_idx++].var; + v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; + } + else +*************** +*** 21230,21236 **** + v->di_flags = DI_FLAGS_RO; + } + STRCPY(v->di_key, name); +! hash_add(&fc.l_avars.dv_hashtab, DI2HIKEY(v)); + + /* Note: the values are copied directly to avoid alloc/free. + * "argvars" must have VAR_FIXED for v_lock. */ +--- 21256,21262 ---- + v->di_flags = DI_FLAGS_RO; + } + STRCPY(v->di_key, name); +! hash_add(&fc->l_avars.dv_hashtab, DI2HIKEY(v)); + + /* Note: the values are copied directly to avoid alloc/free. + * "argvars" must have VAR_FIXED for v_lock. */ +*************** +*** 21239,21247 **** + + if (ai >= 0 && ai < MAX_FUNC_ARGS) + { +! list_append(&fc.l_varlist, &fc.l_listitems[ai]); +! fc.l_listitems[ai].li_tv = argvars[i]; +! fc.l_listitems[ai].li_tv.v_lock = VAR_FIXED; + } + } + +--- 21265,21273 ---- + + if (ai >= 0 && ai < MAX_FUNC_ARGS) + { +! list_append(&fc->l_varlist, &fc->l_listitems[ai]); +! fc->l_listitems[ai].li_tv = argvars[i]; +! fc->l_listitems[ai].li_tv.v_lock = VAR_FIXED; + } + } + +*************** +*** 21306,21312 **** + if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL)) + func_do_profile(fp); + if (fp->uf_profiling +! || (fc.caller != NULL && fc.caller->func->uf_profiling)) + { + ++fp->uf_tm_count; + profile_start(&call_start); +--- 21332,21338 ---- + if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL)) + func_do_profile(fp); + if (fp->uf_profiling +! || (fc->caller != NULL && fc->caller->func->uf_profiling)) + { + ++fp->uf_tm_count; + profile_start(&call_start); +*************** +*** 21322,21328 **** + did_emsg = FALSE; + + /* call do_cmdline() to execute the lines */ +! do_cmdline(NULL, get_func_line, (void *)&fc, + DOCMD_NOWAIT|DOCMD_VERBOSE|DOCMD_REPEAT); + + --RedrawingDisabled; +--- 21348,21354 ---- + did_emsg = FALSE; + + /* call do_cmdline() to execute the lines */ +! do_cmdline(NULL, get_func_line, (void *)fc, + DOCMD_NOWAIT|DOCMD_VERBOSE|DOCMD_REPEAT); + + --RedrawingDisabled; +*************** +*** 21337,21352 **** + + #ifdef FEAT_PROFILE + if (do_profiling == PROF_YES && (fp->uf_profiling +! || (fc.caller != NULL && fc.caller->func->uf_profiling))) + { + profile_end(&call_start); + profile_sub_wait(&wait_start, &call_start); + profile_add(&fp->uf_tm_total, &call_start); + profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children); +! if (fc.caller != NULL && fc.caller->func->uf_profiling) + { +! profile_add(&fc.caller->func->uf_tm_children, &call_start); +! profile_add(&fc.caller->func->uf_tml_children, &call_start); + } + } + #endif +--- 21363,21378 ---- + + #ifdef FEAT_PROFILE + if (do_profiling == PROF_YES && (fp->uf_profiling +! || (fc->caller != NULL && fc->caller->func->uf_profiling))) + { + profile_end(&call_start); + profile_sub_wait(&wait_start, &call_start); + profile_add(&fp->uf_tm_total, &call_start); + profile_self(&fp->uf_tm_self, &call_start, &fp->uf_tm_children); +! if (fc->caller != NULL && fc->caller->func->uf_profiling) + { +! profile_add(&fc->caller->func->uf_tm_children, &call_start); +! profile_add(&fc->caller->func->uf_tml_children, &call_start); + } + } + #endif +*************** +*** 21359,21367 **** + + if (aborting()) + smsg((char_u *)_("%s aborted"), sourcing_name); +! else if (fc.rettv->v_type == VAR_NUMBER) + smsg((char_u *)_("%s returning #%ld"), sourcing_name, +! (long)fc.rettv->vval.v_number); + else + { + char_u buf[MSG_BUF_LEN]; +--- 21385,21393 ---- + + if (aborting()) + smsg((char_u *)_("%s aborted"), sourcing_name); +! else if (fc->rettv->v_type == VAR_NUMBER) + smsg((char_u *)_("%s returning #%ld"), sourcing_name, +! (long)fc->rettv->vval.v_number); + else + { + char_u buf[MSG_BUF_LEN]; +*************** +*** 21372,21378 **** + /* The value may be very long. Skip the middle part, so that we + * have some idea how it starts and ends. smsg() would always + * truncate it at the end. */ +! s = tv2string(fc.rettv, &tofree, numbuf2, 0); + if (s != NULL) + { + trunc_string(s, buf, MSG_BUF_CLEN); +--- 21398,21404 ---- + /* The value may be very long. Skip the middle part, so that we + * have some idea how it starts and ends. smsg() would always + * truncate it at the end. */ +! s = tv2string(fc->rettv, &tofree, numbuf2, 0); + if (s != NULL) + { + trunc_string(s, buf, MSG_BUF_CLEN); +*************** +*** 21408,21421 **** + } + + did_emsg |= save_did_emsg; +! current_funccal = fc.caller; + +! /* The a: variables typevals were not allocated, only free the allocated +! * variables. */ +! vars_clear_ext(&fc.l_avars.dv_hashtab, FALSE); + +! vars_clear(&fc.l_vars.dv_hashtab); /* free all l: variables */ +! --depth; + } + + /* +--- 21434,21517 ---- + } + + did_emsg |= save_did_emsg; +! current_funccal = fc->caller; +! --depth; + +! /* if the a:000 list and the a: dict are not referenced we can free the +! * funccall_T and what's in it. */ +! if (fc->l_varlist.lv_refcount == DO_NOT_FREE_CNT +! && fc->l_vars.dv_refcount == DO_NOT_FREE_CNT +! && fc->l_avars.dv_refcount == DO_NOT_FREE_CNT) +! { +! free_funccal(fc, FALSE); +! } +! else +! { +! hashitem_T *hi; +! listitem_T *li; +! int todo; + +! /* "fc" is still in use. This can happen when returning "a:000" or +! * assigning "l:" to a global variable. +! * Link "fc" in the list for garbage collection later. */ +! fc->caller = previous_funccal; +! previous_funccal = fc; +! +! /* Make a copy of the a: variables, since we didn't do that above. */ +! todo = (int)fc->l_avars.dv_hashtab.ht_used; +! for (hi = fc->l_avars.dv_hashtab.ht_array; todo > 0; ++hi) +! { +! if (!HASHITEM_EMPTY(hi)) +! { +! --todo; +! v = HI2DI(hi); +! copy_tv(&v->di_tv, &v->di_tv); +! } +! } +! +! /* Make a copy of the a:000 items, since we didn't do that above. */ +! for (li = fc->l_varlist.lv_first; li != NULL; li = li->li_next) +! copy_tv(&li->li_tv, &li->li_tv); +! } +! } +! +! /* +! * Return TRUE if items in "fc" do not have "copyID". That means they are not +! * referenced from anywyere. +! */ +! static int +! can_free_funccal(fc, copyID) +! funccall_T *fc; +! int copyID; +! { +! return (fc->l_varlist.lv_copyID != copyID +! && fc->l_vars.dv_copyID != copyID +! && fc->l_avars.dv_copyID != copyID); +! } +! +! /* +! * Free "fc" and what it contains. +! */ +! static void +! free_funccal(fc, free_val) +! funccall_T *fc; +! int free_val; /* a: vars were allocated */ +! { +! listitem_T *li; +! +! /* The a: variables typevals may not have been allocated, only free the +! * allocated variables. */ +! vars_clear_ext(&fc->l_avars.dv_hashtab, free_val); +! +! /* free all l: variables */ +! vars_clear(&fc->l_vars.dv_hashtab); +! +! /* Free the a:000 variables if they were allocated. */ +! if (free_val) +! for (li = fc->l_varlist.lv_first; li != NULL; li = li->li_next) +! clear_tv(&li->li_tv); +! +! vim_free(fc); + } + + /* +*** ../vim-7.2.069/src/version.c Tue Dec 9 22:34:02 2008 +--- src/version.c Sun Dec 21 12:47:07 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 70, + /**/ + +-- +Close your shells, or I'll kill -9 you +Tomorrow I'll quota you +Remember the disks'll always be full +And then while I'm away +I'll write ~ everyday +And I'll send-pr all my buggings to you. + [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.071 b/source/ap/vim/patches/7.2.071 new file mode 100644 index 000000000..0a1e5137f --- /dev/null +++ b/source/ap/vim/patches/7.2.071 @@ -0,0 +1,81 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.071 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.071 (extra) +Problem: Win32: Handling netbeans events while Vim is busy updating the + screen may cause a crash. +Solution: Like with GTK, only handle netbeans messages in the main loop. + (Xavier de Gaye) +Files: src/gui_w48.c, src/netbeans.c + + +*** ../vim-7.2.070/src/gui_w48.c Thu Nov 20 17:09:09 2008 +--- src/gui_w48.c Thu Dec 11 23:47:18 2008 +*************** +*** 1937,1942 **** +--- 1937,1947 ---- + s_need_activate = FALSE; + } + ++ #ifdef FEAT_NETBEANS_INTG ++ /* Process the queued netbeans messages. */ ++ netbeans_parse_messages(); ++ #endif ++ + /* + * Don't use gui_mch_update() because then we will spin-lock until a + * char arrives, instead we use GetMessage() to hang until an +*** ../vim-7.2.070/src/netbeans.c Fri Nov 28 21:26:50 2008 +--- src/netbeans.c Sun Nov 30 12:07:00 2008 +*************** +*** 769,779 **** + return; /* don't try to parse it */ + } + +! #ifdef FEAT_GUI_GTK + if (gtk_main_level() > 0) + gtk_main_quit(); + #else +! /* Parse the messages, but avoid recursion. */ + if (level == 1) + netbeans_parse_messages(); + +--- 769,782 ---- + return; /* don't try to parse it */ + } + +! #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32) +! /* Let the main loop handle messages. */ +! # ifdef FEAT_GUI_GTK + if (gtk_main_level() > 0) + gtk_main_quit(); ++ # endif + #else +! /* Parse the messages now, but avoid recursion. */ + if (level == 1) + netbeans_parse_messages(); + +*** ../vim-7.2.070/src/version.c Sun Dec 21 13:02:47 2008 +--- src/version.c Wed Dec 24 12:18:59 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 71, + /**/ + +-- +No children may attend school with their breath smelling of "wild onions." + [real standing law in West Virginia, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.072 b/source/ap/vim/patches/7.2.072 new file mode 100644 index 000000000..1dffd9181 --- /dev/null +++ b/source/ap/vim/patches/7.2.072 @@ -0,0 +1,56 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.072 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.072 (extra) +Problem: Compiler warning in Sniff code. +Solution: Use return value of pipe(). (Dominique Pelle) +Files: src/if_sniff.c + +NOTE: Patch was adjusted to avoid problems with CVS interference. + +*** ../vim-7.2.071/src/if_sniff.c Sat Nov 15 14:11:10 2008 +--- src/if_sniff.c Sat Dec 6 14:01:57 2008 +*************** +*** 716,723 **** + #else /* UNIX Version of the Code */ + int ToSniffEmacs[2], FromSniffEmacs[2]; + +! pipe(ToSniffEmacs); +! pipe(FromSniffEmacs); + + /* fork */ + if ((sniffemacs_pid=fork()) == 0) +--- 714,723 ---- + #else /* UNIX Version of the Code */ + int ToSniffEmacs[2], FromSniffEmacs[2]; + +! if (pipe(ToSniffEmacs) != 0) +! return 1; +! if (pipe(FromSniffEmacs) != 0) +! return 1; + + /* fork */ + if ((sniffemacs_pid=fork()) == 0) +*** ../vim-7.2.071/src/version.c Wed Dec 24 12:20:10 2008 +--- src/version.c Wed Dec 24 12:42:13 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 72, + /**/ + +-- +SIGIRO -- irony detected (iron core dumped) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.073 b/source/ap/vim/patches/7.2.073 new file mode 100644 index 000000000..16f1297d3 --- /dev/null +++ b/source/ap/vim/patches/7.2.073 @@ -0,0 +1,135 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.073 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.073 +Problem: ":set <xHome>" has the same output as ":set <Home>". (Matt + Wozniski) +Solution: Don't translate "x" keys to its alternative for ":set". +Files: src/misc2.c, src/option.c, src/proto/misc2.pro + + +*** ../vim-7.2.072/src/misc2.c Wed Nov 12 13:07:48 2008 +--- src/misc2.c Sun Dec 14 12:28:47 2008 +*************** +*** 2561,2567 **** + int key; + int dlen = 0; + +! key = find_special_key(srcp, &modifiers, keycode); + if (key == 0) + return 0; + +--- 2561,2567 ---- + int key; + int dlen = 0; + +! key = find_special_key(srcp, &modifiers, keycode, FALSE); + if (key == 0) + return 0; + +*************** +*** 2597,2606 **** + * returns 0 if there is no match. + */ + int +! find_special_key(srcp, modp, keycode) + char_u **srcp; + int *modp; +! int keycode; /* prefer key code, e.g. K_DEL instead of DEL */ + { + char_u *last_dash; + char_u *end_of_name; +--- 2597,2607 ---- + * returns 0 if there is no match. + */ + int +! find_special_key(srcp, modp, keycode, keep_x_key) + char_u **srcp; + int *modp; +! int keycode; /* prefer key code, e.g. K_DEL instead of DEL */ +! int keep_x_key; /* don't translate xHome to Home key */ + { + char_u *last_dash; + char_u *end_of_name; +*************** +*** 2668,2674 **** + else + { + key = get_special_key_code(last_dash + 1); +! key = handle_x_keys(key); + } + + /* +--- 2669,2676 ---- + else + { + key = get_special_key_code(last_dash + 1); +! if (!keep_x_key) +! key = handle_x_keys(key); + } + + /* +*** ../vim-7.2.072/src/option.c Fri Nov 28 21:26:50 2008 +--- src/option.c Sun Dec 14 12:28:56 2008 +*************** +*** 8328,8334 **** + { + --arg; /* put arg at the '<' */ + modifiers = 0; +! key = find_special_key(&arg, &modifiers, TRUE); + if (modifiers) /* can't handle modifiers here */ + key = 0; + } +--- 8328,8334 ---- + { + --arg; /* put arg at the '<' */ + modifiers = 0; +! key = find_special_key(&arg, &modifiers, TRUE, TRUE); + if (modifiers) /* can't handle modifiers here */ + key = 0; + } +*** ../vim-7.2.072/src/proto/misc2.pro Thu Jul 24 20:29:37 2008 +--- src/proto/misc2.pro Sun Dec 14 12:29:05 2008 +*************** +*** 59,65 **** + int handle_x_keys __ARGS((int key)); + char_u *get_special_key_name __ARGS((int c, int modifiers)); + int trans_special __ARGS((char_u **srcp, char_u *dst, int keycode)); +! int find_special_key __ARGS((char_u **srcp, int *modp, int keycode)); + int extract_modifiers __ARGS((int key, int *modp)); + int find_special_key_in_table __ARGS((int c)); + int get_special_key_code __ARGS((char_u *name)); +--- 59,65 ---- + int handle_x_keys __ARGS((int key)); + char_u *get_special_key_name __ARGS((int c, int modifiers)); + int trans_special __ARGS((char_u **srcp, char_u *dst, int keycode)); +! int find_special_key __ARGS((char_u **srcp, int *modp, int keycode, int keep_x_key)); + int extract_modifiers __ARGS((int key, int *modp)); + int find_special_key_in_table __ARGS((int c)); + int get_special_key_code __ARGS((char_u *name)); +*** ../vim-7.2.072/src/version.c Wed Dec 24 12:43:15 2008 +--- src/version.c Wed Dec 24 12:51:26 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 73, + /**/ + + +-- +ARTHUR: If you do not open these doors, we will take this castle by force ... + [A bucket of slops land on ARTHUR. He tries to retain his dignity.] + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.074 b/source/ap/vim/patches/7.2.074 new file mode 100644 index 000000000..6000fca53 --- /dev/null +++ b/source/ap/vim/patches/7.2.074 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.074 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.074 (extra, after 7.2.073) +Problem: ":set <xHome>" has the same output as ":set <Home>". (Matt + Wozniski) +Solution: Don't translate "x" keys to its alternative for ":set". +Files: src/gui_mac.c + + +*** ../vim-7.2.073/src/gui_mac.c Sat Aug 9 19:37:28 2008 +--- src/gui_mac.c Sun Dec 14 12:28:26 2008 +*************** +*** 4966,4972 **** + char_u *p_actext; + + p_actext = menu->actext; +! key = find_special_key(&p_actext, &modifiers, /*keycode=*/0); + if (*p_actext != 0) + key = 0; /* error: trailing text */ + /* find_special_key() returns a keycode with as many of the +--- 4966,4972 ---- + char_u *p_actext; + + p_actext = menu->actext; +! key = find_special_key(&p_actext, &modifiers, FALSE, FALSE); + if (*p_actext != 0) + key = 0; /* error: trailing text */ + /* find_special_key() returns a keycode with as many of the +*** ../vim-7.2.073/src/version.c Wed Dec 24 12:53:33 2008 +--- src/version.c Wed Dec 24 12:55:42 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 74, + /**/ + +-- + Another bucket of what can only be described as human ordure hits ARTHUR. +ARTHUR: ... Right! (to the KNIGHTS) That settles it! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.075 b/source/ap/vim/patches/7.2.075 new file mode 100644 index 000000000..4bec708ab --- /dev/null +++ b/source/ap/vim/patches/7.2.075 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.075 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.075 (after 7.2.058) +Problem: Explanation about making a diff for extra_patches is unclear. +Solution: Adjust comment. +Files: src/version.c + + +*** ../vim-7.2.074/src/version.c Wed Dec 24 13:04:41 2008 +--- src/version.c Wed Dec 24 13:07:47 2008 +*************** +*** 833,839 **** + * Keep it short, e.g.,: "relative numbers", "persistent undo". + * Also add a comment marker to separate the lines. + * See the official Vim patches for the diff format: It must use a context of +! * one line only. Use "diff -C2". + */ + static char *(extra_patches[]) = + { /* Add your patch description below this line */ +--- 835,841 ---- + * Keep it short, e.g.,: "relative numbers", "persistent undo". + * Also add a comment marker to separate the lines. + * See the official Vim patches for the diff format: It must use a context of +! * one line only. Create it by hand or use "diff -C2" and edit the patch. + */ + static char *(extra_patches[]) = + { /* Add your patch description below this line */ +*** ../vim-7.2.074/src/version.c Wed Dec 24 13:04:41 2008 +--- src/version.c Wed Dec 24 13:07:47 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 75, + /**/ + +-- +BEDEVERE: Stand by for attack!! + [CUT TO enormous army forming up. Trebuchets, rows of PIKEMEN, siege + towers, pennants flying, shouts of "Stand by for attack!" Traditional + army build-up shots. The shouts echo across the ranks of the army. + We see various groups reacting, and stirring themselves in readiness.] +ARTHUR: Who are they? +BEDEVERE: Oh, just some friends! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.076 b/source/ap/vim/patches/7.2.076 new file mode 100644 index 000000000..5166bbab2 --- /dev/null +++ b/source/ap/vim/patches/7.2.076 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.076 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.076 +Problem: rename(from, to) deletes the file if "from" and "to" are not equal + but still refer to the same file. E.g., on a FAT32 filesystem + under Unix. +Solution: Go through another file name. +Files: src/fileio.c + + +*** ../vim-7.2.075/src/fileio.c Fri Nov 28 21:26:50 2008 +--- src/fileio.c Tue Dec 30 16:04:44 2008 +*************** +*** 6119,6124 **** +--- 6119,6165 ---- + if (mch_stat((char *)from, &st) < 0) + return -1; + ++ #ifdef UNIX ++ { ++ struct stat st_to; ++ char tempname[MAXPATHL + 1]; ++ ++ /* It's possible for the source and destination to be the same file. ++ * This happens when "from" and "to" differ in case and are on a FAT32 ++ * filesystem. In that case go through a temp file name. */ ++ if (mch_stat((char *)to, &st_to) >= 0 ++ && st.st_dev == st_to.st_dev ++ && st.st_ino == st_to.st_ino) ++ { ++ /* Find a name that doesn't exist and is in the same directory. ++ * Move "from" to "tempname" and then to "to". */ ++ if (STRLEN(from) >= MAXPATHL - 5) ++ return -1; ++ STRCPY(tempname, from); ++ for (n = 123; n < 99999; ++n) ++ { ++ sprintf(gettail(tempname), "%d", n); ++ if (mch_stat(tempname, &st_to) < 0) ++ { ++ if (mch_rename((char *)from, tempname) == 0) ++ { ++ if (mch_rename(tempname, (char *)to) == 0) ++ return 0; ++ /* Strange, the second step failed. Try moving the ++ * file back and return failure. */ ++ mch_rename(tempname, (char *)from); ++ return -1; ++ } ++ /* If it fails for one temp name it will most likely fail ++ * for any temp name, give up. */ ++ return -1; ++ } ++ } ++ return -1; ++ } ++ } ++ #endif ++ + /* + * Delete the "to" file, this is required on some systems to make the + * mch_rename() work, on other systems it makes sure that we don't have +*** ../vim-7.2.075/src/version.c Wed Dec 24 14:24:41 2008 +--- src/version.c Tue Dec 30 16:09:51 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 76, + /**/ + +-- +FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.077 b/source/ap/vim/patches/7.2.077 new file mode 100644 index 000000000..396444c3d --- /dev/null +++ b/source/ap/vim/patches/7.2.077 @@ -0,0 +1,164 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.077 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.077 (after 7.2.076) +Problem: rename(from, to) doesn't work if "from" and "to" differ only in + case on a system that ignores case in file names. +Solution: Go through another file name. +Files: src/fileio.c + + +*** ../vim-7.2.076/src/fileio.c Tue Dec 30 16:15:16 2008 +--- src/fileio.c Wed Dec 31 14:59:59 2008 +*************** +*** 6106,6117 **** + #ifdef HAVE_ACL + vim_acl_T acl; /* ACL from original file */ + #endif + + /* +! * When the names are identical, there is nothing to do. + */ + if (fnamecmp(from, to) == 0) +! return 0; + + /* + * Fail if the "from" file doesn't exist. Avoids that "to" is deleted. +--- 6106,6129 ---- + #ifdef HAVE_ACL + vim_acl_T acl; /* ACL from original file */ + #endif ++ #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME) ++ int use_tmp_file = FALSE; ++ #endif + + /* +! * When the names are identical, there is nothing to do. When they refer +! * to the same file (ignoring case and slash/backslash differences) but +! * the file name differs we need to go through a temp file. + */ + if (fnamecmp(from, to) == 0) +! { +! #ifdef CASE_INSENSITIVE_FILENAME +! if (STRCMP(gettail(from), gettail(to)) != 0) +! use_tmp_file = TRUE; +! else +! #endif +! return 0; +! } + + /* + * Fail if the "from" file doesn't exist. Avoids that "to" is deleted. +*************** +*** 6122,6128 **** + #ifdef UNIX + { + struct stat st_to; +- char tempname[MAXPATHL + 1]; + + /* It's possible for the source and destination to be the same file. + * This happens when "from" and "to" differ in case and are on a FAT32 +--- 6134,6139 ---- +*************** +*** 6130,6162 **** + if (mch_stat((char *)to, &st_to) >= 0 + && st.st_dev == st_to.st_dev + && st.st_ino == st_to.st_ino) + { +! /* Find a name that doesn't exist and is in the same directory. +! * Move "from" to "tempname" and then to "to". */ +! if (STRLEN(from) >= MAXPATHL - 5) +! return -1; +! STRCPY(tempname, from); +! for (n = 123; n < 99999; ++n) + { +! sprintf(gettail(tempname), "%d", n); +! if (mch_stat(tempname, &st_to) < 0) + { +! if (mch_rename((char *)from, tempname) == 0) +! { +! if (mch_rename(tempname, (char *)to) == 0) +! return 0; +! /* Strange, the second step failed. Try moving the +! * file back and return failure. */ +! mch_rename(tempname, (char *)from); +! return -1; +! } +! /* If it fails for one temp name it will most likely fail +! * for any temp name, give up. */ + return -1; + } + } +- return -1; + } + } + #endif + +--- 6141,6182 ---- + if (mch_stat((char *)to, &st_to) >= 0 + && st.st_dev == st_to.st_dev + && st.st_ino == st_to.st_ino) ++ use_tmp_file = TRUE; ++ } ++ #endif ++ ++ #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME) ++ if (use_tmp_file) ++ { ++ char tempname[MAXPATHL + 1]; ++ ++ /* ++ * Find a name that doesn't exist and is in the same directory. ++ * Rename "from" to "tempname" and then rename "tempname" to "to". ++ */ ++ if (STRLEN(from) >= MAXPATHL - 5) ++ return -1; ++ STRCPY(tempname, from); ++ for (n = 123; n < 99999; ++n) + { +! sprintf((char *)gettail((char_u *)tempname), "%d", n); +! if (mch_stat(tempname, &st) < 0) + { +! if (mch_rename((char *)from, tempname) == 0) + { +! if (mch_rename(tempname, (char *)to) == 0) +! return 0; +! /* Strange, the second step failed. Try moving the +! * file back and return failure. */ +! mch_rename(tempname, (char *)from); + return -1; + } ++ /* If it fails for one temp name it will most likely fail ++ * for any temp name, give up. */ ++ return -1; + } + } ++ return -1; + } + #endif + +*** ../vim-7.2.076/src/version.c Tue Dec 30 16:15:16 2008 +--- src/version.c Wed Dec 31 16:19:29 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 77, + /**/ + +-- +We apologise again for the fault in the subtitles. Those responsible for +sacking the people who have just been sacked have been sacked. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.078 b/source/ap/vim/patches/7.2.078 new file mode 100644 index 000000000..0e127bc41 --- /dev/null +++ b/source/ap/vim/patches/7.2.078 @@ -0,0 +1,120 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.078 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.078 +Problem: When deleting a fold that is specified with markers the cursor + position may be wrong. Folds may not be displayed properly after + a delete. Wrong fold may be deleted. +Solution: Fix the problems. (mostly by Lech Lorens) +Files: src/fold.c + + +*** ../vim-7.2.077/src/fold.c Fri Nov 28 21:26:50 2008 +--- src/fold.c Tue Jan 6 14:53:26 2009 +*************** +*** 740,746 **** + garray_T *found_ga; + fold_T *found_fp = NULL; + linenr_T found_off = 0; +! int use_level = FALSE; + int maybe_small = FALSE; + int level = 0; + linenr_T lnum = start; +--- 740,746 ---- + garray_T *found_ga; + fold_T *found_fp = NULL; + linenr_T found_off = 0; +! int use_level; + int maybe_small = FALSE; + int level = 0; + linenr_T lnum = start; +*************** +*** 757,762 **** +--- 757,763 ---- + gap = &curwin->w_folds; + found_ga = NULL; + lnum_off = 0; ++ use_level = FALSE; + for (;;) + { + if (!foldFind(gap, lnum - lnum_off, &fp)) +*************** +*** 783,802 **** + else + { + lnum = found_fp->fd_top + found_fp->fd_len + found_off; +- did_one = TRUE; + + if (foldmethodIsManual(curwin)) + deleteFoldEntry(found_ga, + (int)(found_fp - (fold_T *)found_ga->ga_data), recursive); + else + { +! if (found_fp->fd_top + found_off < first_lnum) +! first_lnum = found_fp->fd_top; +! if (lnum > last_lnum) + last_lnum = lnum; +! parseMarker(curwin); + deleteFoldMarkers(found_fp, recursive, found_off); + } + + /* redraw window */ + changed_window_setting(); +--- 784,804 ---- + else + { + lnum = found_fp->fd_top + found_fp->fd_len + found_off; + + if (foldmethodIsManual(curwin)) + deleteFoldEntry(found_ga, + (int)(found_fp - (fold_T *)found_ga->ga_data), recursive); + else + { +! if (first_lnum > found_fp->fd_top + found_off) +! first_lnum = found_fp->fd_top + found_off; +! if (last_lnum < lnum) + last_lnum = lnum; +! if (!did_one) +! parseMarker(curwin); + deleteFoldMarkers(found_fp, recursive, found_off); + } ++ did_one = TRUE; + + /* redraw window */ + changed_window_setting(); +*************** +*** 811,816 **** +--- 813,822 ---- + redraw_curbuf_later(INVERTED); + #endif + } ++ else ++ /* Deleting markers may make cursor column invalid. */ ++ check_cursor_col(); ++ + if (last_lnum > 0) + changed_lines(first_lnum, (colnr_T)0, last_lnum, 0L); + } +*** ../vim-7.2.077/src/version.c Wed Dec 31 16:20:54 2008 +--- src/version.c Tue Jan 6 15:00:36 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 78, + /**/ + +-- +Looking at Perl through Lisp glasses, Perl looks atrocious. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.079 b/source/ap/vim/patches/7.2.079 new file mode 100644 index 000000000..60da797d6 --- /dev/null +++ b/source/ap/vim/patches/7.2.079 @@ -0,0 +1,229 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.079 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.079 +Problem: "killed" netbeans events are not handled correctly. +Solution: A "killed" netbeans event is sent when the buffer is deleted or + wiped out (in this case, the netbeans annotations in this buffer + have been removed). A user can still remove a sign with the + command ":sign unplace" and this does not trigger a "killed" + event. (Xavier de Gaye) +Files: runtime/doc/netbeans.txt, src/buffer.c, src/globals.h, + src/netbeans.c, src/proto/netbeans.pro + + +*** ../vim-7.2.078/runtime/doc/netbeans.txt Sat Aug 9 19:36:49 2008 +--- runtime/doc/netbeans.txt Tue Jan 6 15:23:39 2009 +*************** +*** 1,4 **** +! *netbeans.txt* For Vim version 7.2. Last change: 2008 Jun 28 + + + VIM REFERENCE MANUAL by Gordon Prieur et al. +--- 1,4 ---- +! *netbeans.txt* For Vim version 7.2. Last change: 2009 Jan 06 + + + VIM REFERENCE MANUAL by Gordon Prieur et al. +*************** +*** 722,729 **** + of the cursor. + New in version 2.1. + +! killed A file was closed by the user. Only for files that have been +! assigned a number by the IDE. + + newDotAndMark off off + Reports the position of the cursor being at "off" bytes into +--- 722,731 ---- + of the cursor. + New in version 2.1. + +! killed A file was deleted or wiped out by the user and the buffer +! annotations have been removed. The bufID number for this +! buffer has become invalid. Only for files that have been +! assigned a bufID number by the IDE. + + newDotAndMark off off + Reports the position of the cursor being at "off" bytes into +*** ../vim-7.2.078/src/buffer.c Wed Dec 3 11:21:20 2008 +--- src/buffer.c Tue Jan 6 15:23:02 2009 +*************** +*** 437,446 **** + return; + #endif + +- #ifdef FEAT_NETBEANS_INTG +- if (usingNetbeans) +- netbeans_file_closed(buf); +- #endif + /* Change directories when the 'acd' option is set. */ + DO_AUTOCHDIR + +--- 437,442 ---- +*************** +*** 639,644 **** +--- 635,644 ---- + #ifdef FEAT_SIGNS + buf_delete_signs(buf); /* delete any signs */ + #endif ++ #ifdef FEAT_NETBEANS_INTG ++ if (usingNetbeans) ++ netbeans_file_killed(buf); ++ #endif + #ifdef FEAT_LOCALMAP + map_clear_int(buf, MAP_ALL_MODES, TRUE, FALSE); /* clear local mappings */ + map_clear_int(buf, MAP_ALL_MODES, TRUE, TRUE); /* clear local abbrevs */ +*************** +*** 815,823 **** + int bnr; /* buffer number */ + char_u *p; + +- #ifdef FEAT_NETBEANS_INTG +- netbeansCloseFile = 1; +- #endif + if (addr_count == 0) + { + (void)do_buffer(command, DOBUF_CURRENT, FORWARD, 0, forceit); +--- 815,820 ---- +*************** +*** 912,920 **** + } + } + +- #ifdef FEAT_NETBEANS_INTG +- netbeansCloseFile = 0; +- #endif + + return errormsg; + } +--- 909,914 ---- +*** ../vim-7.2.078/src/globals.h Fri Nov 28 21:26:50 2008 +--- src/globals.h Tue Jan 6 15:23:02 2009 +*************** +*** 1340,1346 **** + + #ifdef FEAT_NETBEANS_INTG + EXTERN char *netbeansArg INIT(= NULL); /* the -nb[:host:port:passwd] arg */ +- EXTERN int netbeansCloseFile INIT(= 0); /* send killed if != 0 */ + EXTERN int netbeansFireChanges INIT(= 1); /* send buffer changes if != 0 */ + EXTERN int netbeansForcedQuit INIT(= 0);/* don't write modified files */ + EXTERN int netbeansReadFile INIT(= 1); /* OK to read from disk if != 0 */ +--- 1340,1345 ---- +*** ../vim-7.2.078/src/netbeans.c Wed Dec 24 12:20:10 2008 +--- src/netbeans.c Tue Jan 6 15:23:02 2009 +*************** +*** 2921,2964 **** + } + + /* +! * Tell netbeans a file was closed. + */ + void +! netbeans_file_closed(buf_T *bufp) + { + int bufno = nb_getbufno(bufp); + nbbuf_T *nbbuf = nb_get_buf(bufno); + char buffer[2*MAXPATHL]; + +! if (!haveConnection || bufno < 0) + return; + +! if (!netbeansCloseFile) +! { +! nbdebug(("Ignoring file_closed for %s. File was closed from IDE\n", +! bufp->b_ffname)); +! return; +! } +! +! nbdebug(("netbeans_file_closed:\n")); +! nbdebug((" Closing bufno: %d", bufno)); +! if (curbuf != NULL && curbuf != bufp) +! { +! nbdebug((" Curbuf bufno: %d\n", nb_getbufno(curbuf))); +! } +! else if (curbuf == bufp) +! { +! nbdebug((" curbuf == bufp\n")); +! } +! +! if (bufno <= 0) +! return; + + sprintf(buffer, "%d:killed=%d\n", bufno, r_cmdno); + + nbdebug(("EVT: %s", buffer)); + +! nb_send(buffer, "netbeans_file_closed"); + + if (nbbuf != NULL) + nbbuf->bufp = NULL; +--- 2921,2946 ---- + } + + /* +! * Tell netbeans that a file was deleted or wiped out. + */ + void +! netbeans_file_killed(buf_T *bufp) + { + int bufno = nb_getbufno(bufp); + nbbuf_T *nbbuf = nb_get_buf(bufno); + char buffer[2*MAXPATHL]; + +! if (!haveConnection || bufno == -1) + return; + +! nbdebug(("netbeans_file_killed:\n")); +! nbdebug((" Killing bufno: %d", bufno)); + + sprintf(buffer, "%d:killed=%d\n", bufno, r_cmdno); + + nbdebug(("EVT: %s", buffer)); + +! nb_send(buffer, "netbeans_file_killed"); + + if (nbbuf != NULL) + nbbuf->bufp = NULL; +*** ../vim-7.2.078/src/proto/netbeans.pro Tue Jun 24 23:25:53 2008 +--- src/proto/netbeans.pro Tue Jan 6 15:23:02 2009 +*************** +*** 11,17 **** + void netbeans_frame_moved __ARGS((int new_x, int new_y)); + void netbeans_file_activated __ARGS((buf_T *bufp)); + void netbeans_file_opened __ARGS((buf_T *bufp)); +! void netbeans_file_closed __ARGS((buf_T *bufp)); + void netbeans_inserted __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, char_u *txt, int newlen)); + void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len)); + void netbeans_unmodified __ARGS((buf_T *bufp)); +--- 11,17 ---- + void netbeans_frame_moved __ARGS((int new_x, int new_y)); + void netbeans_file_activated __ARGS((buf_T *bufp)); + void netbeans_file_opened __ARGS((buf_T *bufp)); +! void netbeans_file_killed __ARGS((buf_T *bufp)); + void netbeans_inserted __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, char_u *txt, int newlen)); + void netbeans_removed __ARGS((buf_T *bufp, linenr_T linenr, colnr_T col, long len)); + void netbeans_unmodified __ARGS((buf_T *bufp)); +*** ../vim-7.2.078/src/version.c Tue Jan 6 15:01:58 2009 +--- src/version.c Tue Jan 6 16:11:11 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 79, + /**/ + +-- +Friends? I have lots of friends! In fact, I have every episode ever made. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.080 b/source/ap/vim/patches/7.2.080 new file mode 100644 index 000000000..399f9e1c3 --- /dev/null +++ b/source/ap/vim/patches/7.2.080 @@ -0,0 +1,365 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.080 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.080 +Problem: When typing a composing character just after starting completion + may access memory before its allocation point. (Dominique Pelle) +Solution: Don't delete before the completion start column. Add extra checks + for the offset not being negative. +Files: src/edit.c + + +*** ../vim-7.2.079/src/edit.c Wed Aug 6 18:56:55 2008 +--- src/edit.c Tue Jan 13 12:05:57 2009 +*************** +*** 147,152 **** +--- 147,153 ---- + static int ins_compl_bs __ARGS((void)); + static void ins_compl_new_leader __ARGS((void)); + static void ins_compl_addleader __ARGS((int c)); ++ static int ins_compl_len __ARGS((void)); + static void ins_compl_restart __ARGS((void)); + static void ins_compl_set_original_text __ARGS((char_u *str)); + static void ins_compl_addfrommatch __ARGS((void)); +*************** +*** 197,203 **** + static void mb_replace_pop_ins __ARGS((int cc)); + #endif + static void replace_flush __ARGS((void)); +! static void replace_do_bs __ARGS((void)); + #ifdef FEAT_CINDENT + static int cindent_on __ARGS((void)); + #endif +--- 198,205 ---- + static void mb_replace_pop_ins __ARGS((int cc)); + #endif + static void replace_flush __ARGS((void)); +! static void replace_do_bs __ARGS((int limit_col)); +! static int del_char_after_col __ARGS((int limit_col)); + #ifdef FEAT_CINDENT + static int cindent_on __ARGS((void)); + #endif +*************** +*** 1933,1938 **** +--- 1935,1942 ---- + /* + * Backspace the cursor until the given column. Handles REPLACE and VREPLACE + * modes correctly. May also be used when not in insert mode at all. ++ * Will attempt not to go before "col" even when there is a composing ++ * character. + */ + void + backspace_until_column(col) +*************** +*** 1942,1954 **** + { + curwin->w_cursor.col--; + if (State & REPLACE_FLAG) +! replace_do_bs(); +! else +! (void)del_char(FALSE); + } + } + #endif + + #if defined(FEAT_INS_EXPAND) || defined(PROTO) + /* + * CTRL-X pressed in Insert mode. +--- 1946,1994 ---- + { + curwin->w_cursor.col--; + if (State & REPLACE_FLAG) +! replace_do_bs(col); +! else if (!del_char_after_col(col)) +! break; + } + } + #endif + ++ /* ++ * Like del_char(), but make sure not to go before column "limit_col". ++ * Only matters when there are composing characters. ++ * Return TRUE when something was deleted. ++ */ ++ static int ++ del_char_after_col(limit_col) ++ int limit_col; ++ { ++ #ifdef FEAT_MBYTE ++ if (enc_utf8 && limit_col >= 0) ++ { ++ int ecol = curwin->w_cursor.col + 1; ++ ++ /* Make sure the cursor is at the start of a character, but ++ * skip forward again when going too far back because of a ++ * composing character. */ ++ mb_adjust_cursor(); ++ while (curwin->w_cursor.col < limit_col) ++ { ++ int l = utf_ptr2len(ml_get_cursor()); ++ ++ if (l == 0) /* end of line */ ++ break; ++ curwin->w_cursor.col += l; ++ } ++ if (*ml_get_cursor() == NUL || curwin->w_cursor.col == ecol) ++ return FALSE; ++ del_bytes((long)(ecol - curwin->w_cursor.col), FALSE, TRUE); ++ } ++ else ++ #endif ++ (void)del_char(FALSE); ++ return TRUE; ++ } ++ + #if defined(FEAT_INS_EXPAND) || defined(PROTO) + /* + * CTRL-X pressed in Insert mode. +*************** +*** 2418,2424 **** + { + had_match = (curwin->w_cursor.col > compl_col); + ins_compl_delete(); +! ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); + ins_redraw(FALSE); + + /* When the match isn't there (to avoid matching itself) remove it +--- 2458,2464 ---- + { + had_match = (curwin->w_cursor.col > compl_col); + ins_compl_delete(); +! ins_bytes(compl_leader + ins_compl_len()); + ins_redraw(FALSE); + + /* When the match isn't there (to avoid matching itself) remove it +*************** +*** 2470,2476 **** + *p = NUL; + had_match = (curwin->w_cursor.col > compl_col); + ins_compl_delete(); +! ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); + ins_redraw(FALSE); + + /* When the match isn't there (to avoid matching itself) remove it +--- 2510,2516 ---- + *p = NUL; + had_match = (curwin->w_cursor.col > compl_col); + ins_compl_delete(); +! ins_bytes(compl_leader + ins_compl_len()); + ins_redraw(FALSE); + + /* When the match isn't there (to avoid matching itself) remove it +*************** +*** 3209,3215 **** + { + ins_compl_del_pum(); + ins_compl_delete(); +! ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); + compl_used_match = FALSE; + + if (compl_started) +--- 3249,3255 ---- + { + ins_compl_del_pum(); + ins_compl_delete(); +! ins_bytes(compl_leader + ins_compl_len()); + compl_used_match = FALSE; + + if (compl_started) +*************** +*** 3264,3269 **** +--- 3304,3323 ---- + } + + /* ++ * Return the length of the completion, from the completion start column to ++ * the cursor column. Making sure it never goes below zero. ++ */ ++ static int ++ ins_compl_len() ++ { ++ int off = curwin->w_cursor.col - compl_col; ++ ++ if (off < 0) ++ return 0; ++ return off; ++ } ++ ++ /* + * Append one character to the match leader. May reduce the number of + * matches. + */ +*************** +*** 3621,3630 **** + { + ins_compl_delete(); + if (compl_leader != NULL) +! ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); + else if (compl_first_match != NULL) +! ins_bytes(compl_orig_text +! + curwin->w_cursor.col - compl_col); + retval = TRUE; + } + +--- 3675,3683 ---- + { + ins_compl_delete(); + if (compl_leader != NULL) +! ins_bytes(compl_leader + ins_compl_len()); + else if (compl_first_match != NULL) +! ins_bytes(compl_orig_text + ins_compl_len()); + retval = TRUE; + } + +*************** +*** 4256,4262 **** + static void + ins_compl_insert() + { +! ins_bytes(compl_shown_match->cp_str + curwin->w_cursor.col - compl_col); + if (compl_shown_match->cp_flags & ORIGINAL_TEXT) + compl_used_match = FALSE; + else +--- 4309,4315 ---- + static void + ins_compl_insert() + { +! ins_bytes(compl_shown_match->cp_str + ins_compl_len()); + if (compl_shown_match->cp_flags & ORIGINAL_TEXT) + compl_used_match = FALSE; + else +*************** +*** 4425,4431 **** + if (!compl_get_longest || compl_used_match) + ins_compl_insert(); + else +! ins_bytes(compl_leader + curwin->w_cursor.col - compl_col); + } + else + compl_used_match = FALSE; +--- 4478,4484 ---- + if (!compl_get_longest || compl_used_match) + ins_compl_insert(); + else +! ins_bytes(compl_leader + ins_compl_len()); + } + else + compl_used_match = FALSE; +*************** +*** 7123,7131 **** + * cc == 0: character was inserted, delete it + * cc > 0: character was replaced, put cc (first byte of original char) back + * and check for more characters to be put back + */ + static void +! replace_do_bs() + { + int cc; + #ifdef FEAT_VREPLACE +--- 7176,7187 ---- + * cc == 0: character was inserted, delete it + * cc > 0: character was replaced, put cc (first byte of original char) back + * and check for more characters to be put back ++ * When "limit_col" is >= 0, don't delete before this column. Matters when ++ * using composing characters, use del_char_after_col() instead of del_char(). + */ + static void +! replace_do_bs(limit_col) +! int limit_col; + { + int cc; + #ifdef FEAT_VREPLACE +*************** +*** 7153,7159 **** + #ifdef FEAT_MBYTE + if (has_mbyte) + { +! del_char(FALSE); + # ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) + orig_len = (int)STRLEN(ml_get_cursor()); +--- 7209,7215 ---- + #ifdef FEAT_MBYTE + if (has_mbyte) + { +! (void)del_char_after_col(limit_col); + # ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) + orig_len = (int)STRLEN(ml_get_cursor()); +*************** +*** 7203,7209 **** + changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col); + } + else if (cc == 0) +! (void)del_char(FALSE); + } + + #ifdef FEAT_CINDENT +--- 7259,7265 ---- + changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col); + } + else if (cc == 0) +! (void)del_char_after_col(limit_col); + } + + #ifdef FEAT_CINDENT +*************** +*** 8239,8245 **** + * Replace mode */ + if (curwin->w_cursor.lnum != Insstart.lnum + || curwin->w_cursor.col >= Insstart.col) +! replace_do_bs(); + } + else + (void)del_char(FALSE); +--- 8295,8301 ---- + * Replace mode */ + if (curwin->w_cursor.lnum != Insstart.lnum + || curwin->w_cursor.col >= Insstart.col) +! replace_do_bs(-1); + } + else + (void)del_char(FALSE); +*************** +*** 8556,8562 **** + break; + } + if (State & REPLACE_FLAG) +! replace_do_bs(); + else + { + #ifdef FEAT_MBYTE +--- 8612,8618 ---- + break; + } + if (State & REPLACE_FLAG) +! replace_do_bs(-1); + else + { + #ifdef FEAT_MBYTE +*** ../vim-7.2.079/src/version.c Tue Jan 6 16:13:42 2009 +--- src/version.c Tue Jan 13 12:25:29 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 80, + /**/ + +-- +At some point in the project somebody will start whining about the need to +determine the project "requirements". This involves interviewing people who +don't know what they want but, curiously, know exactly when they need it. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.081 b/source/ap/vim/patches/7.2.081 new file mode 100644 index 000000000..9f1259d7c --- /dev/null +++ b/source/ap/vim/patches/7.2.081 @@ -0,0 +1,60 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.081 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.081 +Problem: Compiler warning for floating point overflow on VAX. +Solution: For VAX use a smaller number. (Zoltan Arpadffy) +Files: src/message.c + + +*** ../vim-7.2.080/src/message.c Fri Nov 28 21:26:50 2008 +--- src/message.c Tue Jan 13 16:19:07 2009 +*************** +*** 4556,4562 **** + remove_trailing_zeroes = TRUE; + } + +! if (fmt_spec == 'f' && abs_f > 1.0e307) + { + /* Avoid a buffer overflow */ + strcpy(tmp, "inf"); +--- 4556,4568 ---- + remove_trailing_zeroes = TRUE; + } + +! if (fmt_spec == 'f' && +! #ifdef VAX +! abs_f > 1.0e38 +! #else +! abs_f > 1.0e307 +! #endif +! ) + { + /* Avoid a buffer overflow */ + strcpy(tmp, "inf"); +*** ../vim-7.2.080/src/version.c Tue Jan 13 12:29:03 2009 +--- src/version.c Tue Jan 13 16:19:52 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 81, + /**/ + +-- +Sometimes you can protect millions of dollars in your budget simply by buying +a bag of cookies, dropping it on the budget anylyst's desk, and saying +something deeply personal such as "How was your weekend, big guy?" + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.082 b/source/ap/vim/patches/7.2.082 new file mode 100644 index 000000000..c6bf703cc --- /dev/null +++ b/source/ap/vim/patches/7.2.082 @@ -0,0 +1,77 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.082 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.082 +Problem: When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a. + (Andy Wokula) +Solution: Use NL for this situation. (Lech Lorens) +Files: src/ex_cmds.c + + +*** ../vim-7.2.081/src/ex_cmds.c Fri Nov 28 21:26:50 2008 +--- src/ex_cmds.c Tue Jan 13 16:51:32 2009 +*************** +*** 49,54 **** +--- 49,55 ---- + exarg_T *eap; + { + int c; ++ int cval; + char buf1[20]; + char buf2[20]; + char_u buf3[7]; +*************** +*** 75,80 **** +--- 76,85 ---- + { + if (c == NL) /* NUL is stored as NL */ + c = NUL; ++ if (c == CAR && get_fileformat(curbuf) == EOL_MAC) ++ cval = NL; /* NL is stored as CR */ ++ else ++ cval = c; + if (vim_isprintc_strict(c) && (c < ' ' + #ifndef EBCDIC + || c > '~' +*************** +*** 94,100 **** + buf2[0] = NUL; + vim_snprintf((char *)IObuff, IOSIZE, + _("<%s>%s%s %d, Hex %02x, Octal %03o"), +! transchar(c), buf1, buf2, c, c, c); + #ifdef FEAT_MBYTE + if (enc_utf8) + c = cc[ci++]; +--- 99,105 ---- + buf2[0] = NUL; + vim_snprintf((char *)IObuff, IOSIZE, + _("<%s>%s%s %d, Hex %02x, Octal %03o"), +! transchar(c), buf1, buf2, cval, cval, cval); + #ifdef FEAT_MBYTE + if (enc_utf8) + c = cc[ci++]; +*** ../vim-7.2.081/src/version.c Tue Jan 13 16:37:31 2009 +--- src/version.c Tue Jan 13 16:53:39 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 82, + /**/ + +-- +The budget process was invented by an alien race of sadistic beings who +resemble large cats. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.083 b/source/ap/vim/patches/7.2.083 new file mode 100644 index 000000000..5406ebc6b --- /dev/null +++ b/source/ap/vim/patches/7.2.083 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.083 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.083 +Problem: ":tag" does not return to the right tag entry from the tag stack. +Solution: Don't change the current match when there is no argument. + (Erik Falor) +Files: src/tag.c + + +*** ../vim-7.2.082/src/tag.c Tue Dec 9 12:12:31 2008 +--- src/tag.c Tue Jan 13 17:14:59 2009 +*************** +*** 515,521 **** + * If a count is supplied to the ":tag <name>" command, then + * jump to count'th matching tag. + */ +! if (type == DT_TAG && count > 0) + cur_match = count - 1; + + if (type == DT_SELECT || type == DT_JUMP +--- 515,521 ---- + * If a count is supplied to the ":tag <name>" command, then + * jump to count'th matching tag. + */ +! if (type == DT_TAG && *tag != NUL && count > 0) + cur_match = count - 1; + + if (type == DT_SELECT || type == DT_JUMP +*** ../vim-7.2.082/src/version.c Tue Jan 13 16:57:09 2009 +--- src/version.c Tue Jan 13 17:16:42 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 83, + /**/ + +-- +Engineers will go without food and hygiene for days to solve a problem. +(Other times just because they forgot.) + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.084 b/source/ap/vim/patches/7.2.084 new file mode 100644 index 000000000..4c912ca7a --- /dev/null +++ b/source/ap/vim/patches/7.2.084 @@ -0,0 +1,144 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.084 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.084 +Problem: Recursive structures are not handled properly in Python + vim.eval(). +Solution: Keep track of references in a better way. (Yukihiro Nakadaira) +Files: src/if_python.c + + +*** ../vim-7.2.083/src/if_python.c Thu Nov 20 11:04:01 2008 +--- src/if_python.c Tue Jan 13 18:08:06 2009 +*************** +*** 1151,1164 **** + + /* Check if we run into a recursive loop. The item must be in lookupDict + * then and we can use it again. */ +! sprintf(ptrBuf, PRINTF_DECIMAL_LONG_U, (long_u)our_tv); +! result = PyDict_GetItemString(lookupDict, ptrBuf); +! if (result != NULL) +! Py_INCREF(result); +! else if (our_tv->v_type == VAR_STRING) + { + result = Py_BuildValue("s", our_tv->vval.v_string); +- PyDict_SetItemString(lookupDict, ptrBuf, result); + } + else if (our_tv->v_type == VAR_NUMBER) + { +--- 1151,1173 ---- + + /* Check if we run into a recursive loop. The item must be in lookupDict + * then and we can use it again. */ +! if ((our_tv->v_type == VAR_LIST && our_tv->vval.v_list != NULL) +! || (our_tv->v_type == VAR_DICT && our_tv->vval.v_dict != NULL)) +! { +! sprintf(ptrBuf, PRINTF_DECIMAL_LONG_U, +! our_tv->v_type == VAR_LIST ? (long_u)our_tv->vval.v_list +! : (long_u)our_tv->vval.v_dict); +! result = PyDict_GetItemString(lookupDict, ptrBuf); +! if (result != NULL) +! { +! Py_INCREF(result); +! return result; +! } +! } +! +! if (our_tv->v_type == VAR_STRING) + { + result = Py_BuildValue("s", our_tv->vval.v_string); + } + else if (our_tv->v_type == VAR_NUMBER) + { +*************** +*** 1167,1173 **** + /* For backwards compatibility numbers are stored as strings. */ + sprintf(buf, "%ld", (long)our_tv->vval.v_number); + result = Py_BuildValue("s", buf); +- PyDict_SetItemString(lookupDict, ptrBuf, result); + } + # ifdef FEAT_FLOAT + else if (our_tv->v_type == VAR_FLOAT) +--- 1176,1181 ---- +*************** +*** 1176,1182 **** + + sprintf(buf, "%f", our_tv->vval.v_float); + result = Py_BuildValue("s", buf); +- PyDict_SetItemString(lookupDict, ptrBuf, result); + } + # endif + else if (our_tv->v_type == VAR_LIST) +--- 1184,1189 ---- +*************** +*** 1185,1194 **** + listitem_T *curr; + + result = PyList_New(0); +- PyDict_SetItemString(lookupDict, ptrBuf, result); + + if (list != NULL) + { + for (curr = list->lv_first; curr != NULL; curr = curr->li_next) + { + newObj = VimToPython(&curr->li_tv, depth + 1, lookupDict); +--- 1192,1202 ---- + listitem_T *curr; + + result = PyList_New(0); + + if (list != NULL) + { ++ PyDict_SetItemString(lookupDict, ptrBuf, result); ++ + for (curr = list->lv_first; curr != NULL; curr = curr->li_next) + { + newObj = VimToPython(&curr->li_tv, depth + 1, lookupDict); +*************** +*** 1200,1206 **** + else if (our_tv->v_type == VAR_DICT) + { + result = PyDict_New(); +- PyDict_SetItemString(lookupDict, ptrBuf, result); + + if (our_tv->vval.v_dict != NULL) + { +--- 1208,1213 ---- +*************** +*** 1209,1214 **** +--- 1216,1223 ---- + hashitem_T *hi; + dictitem_T *di; + ++ PyDict_SetItemString(lookupDict, ptrBuf, result); ++ + for (hi = ht->ht_array; todo > 0; ++hi) + { + if (!HASHITEM_EMPTY(hi)) +*** ../vim-7.2.083/src/version.c Tue Jan 13 17:27:18 2009 +--- src/version.c Tue Jan 13 17:54:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 84, + /**/ + +-- +Article in the first Free Software Magazine: "Bram Moolenaar studied electrical +engineering at the Technical University of Delft and graduated in 1985 on a +multi-processor Unix architecture." +Response by "dimator": Could the school not afford a proper stage for the +ceremony? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.085 b/source/ap/vim/patches/7.2.085 new file mode 100644 index 000000000..f9828fa1d --- /dev/null +++ b/source/ap/vim/patches/7.2.085 @@ -0,0 +1,62 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.085 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.085 +Problem: ":set <M-b>=<Esc>b" does not work when 'encoding' is utf-8. +Solution: Put the <M-b> character in the input buffer as valid utf-8. + (partly by Matt Wosniski) +Files: src/term.c + + +*** ../vim-7.2.084/src/term.c Tue Jul 29 12:22:12 2008 +--- src/term.c Thu Jan 22 18:18:29 2009 +*************** +*** 4920,4926 **** + key_name[0] = KEY2TERMCAP0(key); + key_name[1] = KEY2TERMCAP1(key); + if (key_name[0] == KS_KEY) +! string[new_slen++] = key_name[1]; /* from ":set <M-b>=xx" */ + else + { + string[new_slen++] = K_SPECIAL; +--- 4920,4934 ---- + key_name[0] = KEY2TERMCAP0(key); + key_name[1] = KEY2TERMCAP1(key); + if (key_name[0] == KS_KEY) +! { +! /* from ":set <M-b>=xx" */ +! #ifdef FEAT_MBYTE +! if (has_mbyte) +! new_slen += (*mb_char2bytes)(key_name[1], string + new_slen); +! else +! #endif +! string[new_slen++] = key_name[1]; +! } + else + { + string[new_slen++] = K_SPECIAL; +*** ../vim-7.2.084/src/version.c Tue Jan 13 18:10:21 2009 +--- src/version.c Thu Jan 22 18:31:50 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 85, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +20. When looking at a pageful of someone else's links, you notice all of them + are already highlighted in purple. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.086 b/source/ap/vim/patches/7.2.086 new file mode 100644 index 000000000..f55efbb2c --- /dev/null +++ b/source/ap/vim/patches/7.2.086 @@ -0,0 +1,98 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.086 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.086 +Problem: Using ":diffget 1" in buffer 1 corrupts the text. +Solution: Don't do anything when source and destination of ":diffget" or + ":diffput" is the same buffer. (Dominique Pelle) +Files: src/diff.c + + +*** ../vim-7.2.085/src/diff.c Sun Nov 30 15:15:56 2008 +--- src/diff.c Wed Jan 14 20:40:25 2009 +*************** +*** 8,14 **** + */ + + /* +! * diff.c: code for diff'ing two or three buffers. + */ + + #include "vim.h" +--- 8,14 ---- + */ + + /* +! * diff.c: code for diff'ing two, three or four buffers. + */ + + #include "vim.h" +*************** +*** 116,122 **** + * Add a buffer to make diffs for. + * Call this when a new buffer is being edited in the current window where + * 'diff' is set. +! * Marks the current buffer as being part of the diff and requireing updating. + * This must be done before any autocmd, because a command may use info + * about the screen contents. + */ +--- 116,122 ---- + * Add a buffer to make diffs for. + * Call this when a new buffer is being edited in the current window where + * 'diff' is set. +! * Marks the current buffer as being part of the diff and requiring updating. + * This must be done before any autocmd, because a command may use info + * about the screen contents. + */ +*************** +*** 929,935 **** + goto theend; + + #ifdef UNIX +! /* Temporaraly chdir to /tmp, to avoid patching files in the current + * directory when the patch file contains more than one patch. When we + * have our own temp dir use that instead, it will be cleaned up when we + * exit (any .rej files created). Don't change directory if we can't +--- 929,935 ---- + goto theend; + + #ifdef UNIX +! /* Temporarily chdir to /tmp, to avoid patching files in the current + * directory when the patch file contains more than one patch. When we + * have our own temp dir use that instead, it will be cleaned up when we + * exit (any .rej files created). Don't change directory if we can't +*************** +*** 2129,2134 **** +--- 2129,2136 ---- + EMSG2(_("E102: Can't find buffer \"%s\""), eap->arg); + return; + } ++ if (buf == curbuf) ++ return; /* nothing to do */ + idx_other = diff_buf_idx(buf); + if (idx_other == DB_COUNT) + { +*** ../vim-7.2.085/src/version.c Thu Jan 22 18:32:55 2009 +--- src/version.c Thu Jan 22 20:46:54 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 86, + /**/ + +-- +Shift happens. + -- Doppler + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.087 b/source/ap/vim/patches/7.2.087 new file mode 100644 index 000000000..942acca2c --- /dev/null +++ b/source/ap/vim/patches/7.2.087 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.087 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.087 +Problem: Adding URL to 'path' doesn't work to edit a file. +Solution: Skip simplify_filename() for URLs. (Matt Wosniski) +Files: src/misc2.c + + +*** ../vim-7.2.086/src/misc2.c Wed Dec 24 12:53:33 2008 +--- src/misc2.c Sun Jan 18 12:26:20 2009 +*************** +*** 4696,4702 **** + stackp->ffs_filearray_cur = i + 1; + ff_push(search_ctx, stackp); + +! simplify_filename(file_path); + if (mch_dirname(ff_expand_buffer, MAXPATHL) + == OK) + { +--- 4696,4703 ---- + stackp->ffs_filearray_cur = i + 1; + ff_push(search_ctx, stackp); + +! if (!path_with_url(file_path)) +! simplify_filename(file_path); + if (mch_dirname(ff_expand_buffer, MAXPATHL) + == OK) + { +*** ../vim-7.2.086/src/version.c Thu Jan 22 20:48:07 2009 +--- src/version.c Thu Jan 22 21:30:36 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 87, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +21. Your dog has its own home page. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.088 b/source/ap/vim/patches/7.2.088 new file mode 100644 index 000000000..1cb985116 --- /dev/null +++ b/source/ap/vim/patches/7.2.088 @@ -0,0 +1,99 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.088 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.088 (extra) +Problem: OpenClipboard() may fail when another application is using the + clipboard. +Solution: Retry OpenClipboard() a few times. (Jianrong Yu) +Files: src/os_mswin.c + + +*** ../vim-7.2.087/src/os_mswin.c Thu Nov 20 17:09:09 2008 +--- src/os_mswin.c Thu Jan 22 18:38:12 2009 +*************** +*** 1224,1229 **** +--- 1224,1248 ---- + #endif /* FEAT_MBYTE */ + + /* ++ * Wait for another process to Close the Clipboard. ++ * Returns TRUE for success. ++ */ ++ int ++ vim_open_clipboard() ++ { ++ int delay = 10; ++ ++ while (!OpenClipboard(NULL)) ++ { ++ if (delay > 500) ++ return FALSE; /* waited too long, give up */ ++ Sleep(delay); ++ delay *= 2; /* wait for 10, 20, 40, 80, etc. msec */ ++ } ++ return TRUE; ++ } ++ ++ /* + * Get the current selection and put it in the clipboard register. + * + * NOTE: Must use GlobalLock/Unlock here to ensure Win32s compatibility. +*************** +*** 1254,1260 **** + * Don't pass GetActiveWindow() as an argument to OpenClipboard() because + * then we can't paste back into the same window for some reason - webb. + */ +! if (!OpenClipboard(NULL)) + return; + + /* Check for vim's own clipboard format first. This only gets the type of +--- 1273,1279 ---- + * Don't pass GetActiveWindow() as an argument to OpenClipboard() because + * then we can't paste back into the same window for some reason - webb. + */ +! if (!vim_open_clipboard()) + return; + + /* Check for vim's own clipboard format first. This only gets the type of +*************** +*** 1562,1568 **** + * because then we can't paste back into the same window for some + * reason - webb. + */ +! if (OpenClipboard(NULL)) + { + if (EmptyClipboard()) + { +--- 1581,1587 ---- + * because then we can't paste back into the same window for some + * reason - webb. + */ +! if (vim_open_clipboard()) + { + if (EmptyClipboard()) + { +*** ../vim-7.2.087/src/version.c Thu Jan 22 21:31:24 2009 +--- src/version.c Thu Jan 22 21:47:52 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 88, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +22. You've already visited all the links at Yahoo and you're halfway through + Lycos. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.089 b/source/ap/vim/patches/7.2.089 new file mode 100644 index 000000000..74276c6d4 --- /dev/null +++ b/source/ap/vim/patches/7.2.089 @@ -0,0 +1,91 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.089 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.089 (extra) +Problem: Win32: crash when using Ultramon buttons. +Solution: Don't use a WM_OLE message of zero size. (Ray Megal) +Files: src/if_ole.cpp, src/gui_w48.c + + +*** ../vim-7.2.088/src/if_ole.cpp Sun Mar 16 14:53:11 2008 +--- src/if_ole.cpp Mon Jan 19 21:16:33 2009 +*************** +*** 353,361 **** + } + + /* Pass the string to the main input loop. The memory will be freed when +! * the message is processed. + */ +! PostMessage(NULL, WM_OLE, 0, (LPARAM)str); + + return S_OK; + } +--- 353,365 ---- + } + + /* Pass the string to the main input loop. The memory will be freed when +! * the message is processed. Except for an empty message, we don't need +! * to post it then. + */ +! if (*str == NUL) +! vim_free(str); +! else +! PostMessage(NULL, WM_OLE, 0, (LPARAM)str); + + return S_OK; + } +*** ../vim-7.2.088/src/gui_w48.c Wed Dec 24 12:20:10 2008 +--- src/gui_w48.c Mon Jan 19 21:19:30 2009 +*************** +*** 1663,1670 **** + if (msg.message == WM_OLE) + { + char_u *str = (char_u *)msg.lParam; +! add_to_input_buf(str, (int)STRLEN(str)); +! vim_free(str); + return; + } + #endif +--- 1663,1679 ---- + if (msg.message == WM_OLE) + { + char_u *str = (char_u *)msg.lParam; +! if (str == NULL || *str == NUL) +! { +! /* Message can't be ours, forward it. Fixes problem with Ultramon +! * 3.0.4 */ +! DispatchMessage(&msg); +! } +! else +! { +! add_to_input_buf(str, (int)STRLEN(str)); +! vim_free(str); /* was allocated in CVim::SendKeys() */ +! } + return; + } + #endif +*** ../vim-7.2.088/src/version.c Thu Jan 22 21:49:21 2009 +--- src/version.c Wed Jan 28 14:16:01 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 89, + /**/ + + +-- +How To Keep A Healthy Level Of Insanity: +16. Have your coworkers address you by your wrestling name, Rock Hard Kim. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.090 b/source/ap/vim/patches/7.2.090 new file mode 100644 index 000000000..59dd7acf3 --- /dev/null +++ b/source/ap/vim/patches/7.2.090 @@ -0,0 +1,130 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.090 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.090 +Problem: User command containing 0x80 in multi-byte character does not work + properly. (Yasuhiro Matsumoto) +Solution: Undo replacement of K_SPECIAL and CSI characters when executing + the command. +Files: src/ex_docmd.c + + +*** ../vim-7.2.089/src/ex_docmd.c Tue Dec 9 11:17:23 2008 +--- src/ex_docmd.c Wed Jan 28 15:34:19 2009 +*************** +*** 5482,5487 **** +--- 5482,5490 ---- + return OK; + } + ++ /* ++ * ":command ..." ++ */ + static void + ex_command(eap) + exarg_T *eap; +*************** +*** 5914,5919 **** +--- 5917,5923 ---- + + char_u *start; + char_u *end; ++ char_u *ksp; + size_t len, totlen; + + size_t split_len = 0; +*************** +*** 5930,5945 **** + + /* + * Replace <> in the command by the arguments. + */ + buf = NULL; + for (;;) + { +! p = cmd->uc_rep; +! q = buf; + totlen = 0; +! while ((start = vim_strchr(p, '<')) != NULL +! && (end = vim_strchr(start + 1, '>')) != NULL) + { + /* Include the '>' */ + ++end; + +--- 5934,5984 ---- + + /* + * Replace <> in the command by the arguments. ++ * First round: "buf" is NULL, compute length, allocate "buf". ++ * Second round: copy result into "buf". + */ + buf = NULL; + for (;;) + { +! p = cmd->uc_rep; /* source */ +! q = buf; /* destinateion */ + totlen = 0; +! +! for (;;) + { ++ start = vim_strchr(p, '<'); ++ if (start != NULL) ++ end = vim_strchr(start + 1, '>'); ++ if (buf != NULL) ++ { ++ ksp = vim_strchr(p, K_SPECIAL); ++ if (ksp != NULL && (start == NULL || ksp < start || end == NULL) ++ && ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER) ++ # ifdef FEAT_GUI ++ || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI) ++ # endif ++ )) ++ { ++ /* K_SPECIAL han been put in the buffer as K_SPECIAL ++ * KS_SPECIAL KE_FILLER, like for mappings, but ++ * do_cmdline() doesn't handle that, so convert it back. ++ * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */ ++ len = ksp - p; ++ if (len > 0) ++ { ++ mch_memmove(q, p, len); ++ q += len; ++ } ++ *q++ = ksp[1] == KS_SPECIAL ? K_SPECIAL : CSI; ++ p = ksp + 3; ++ continue; ++ } ++ } ++ ++ /* break if there no <item> is found */ ++ if (start == NULL || end == NULL) ++ break; ++ + /* Include the '>' */ + ++end; + +*** ../vim-7.2.089/src/version.c Wed Jan 28 14:17:21 2009 +--- src/version.c Wed Jan 28 15:37:40 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 90, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +17. When the money comes out the ATM, scream "I won!, I won! 3rd + time this week!!!!!" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.091 b/source/ap/vim/patches/7.2.091 new file mode 100644 index 000000000..766a155e1 --- /dev/null +++ b/source/ap/vim/patches/7.2.091 @@ -0,0 +1,63 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.091 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.091 +Problem: ":cs help" output is not aligned for some languages. +Solution: Compute character size instead of byte size. (Dominique Pelle) +Files: src/if_cscope.c + + +*** ../vim-7.2.090/src/if_cscope.c Mon Aug 25 04:35:13 2008 +--- src/if_cscope.c Thu Jan 22 18:44:46 2009 +*************** +*** 1177,1184 **** + (void)MSG_PUTS(_("cscope commands:\n")); + while (cmdp->name != NULL) + { +! (void)smsg((char_u *)_("%-5s: %-30s (Usage: %s)"), +! cmdp->name, _(cmdp->help), cmdp->usage); + if (strcmp(cmdp->name, "find") == 0) + MSG_PUTS(_("\n" + " c: Find functions calling this function\n" +--- 1177,1192 ---- + (void)MSG_PUTS(_("cscope commands:\n")); + while (cmdp->name != NULL) + { +! char *help = _(cmdp->help); +! int space_cnt = 30 - vim_strsize((char_u *)help); +! +! /* Use %*s rather than %30s to ensure proper alignment in utf-8 */ +! if (space_cnt < 0) +! space_cnt = 0; +! (void)smsg((char_u *)_("%-5s: %s%*s (Usage: %s)"), +! cmdp->name, +! help, space_cnt, " ", +! cmdp->usage); + if (strcmp(cmdp->name, "find") == 0) + MSG_PUTS(_("\n" + " c: Find functions calling this function\n" +*** ../vim-7.2.090/src/version.c Wed Jan 28 15:42:07 2009 +--- src/version.c Wed Jan 28 16:02:25 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 91, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +18. When leaving the zoo, start running towards the parking lot, + yelling "run for your lives, they're loose!!" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.092 b/source/ap/vim/patches/7.2.092 new file mode 100644 index 000000000..633903ee7 --- /dev/null +++ b/source/ap/vim/patches/7.2.092 @@ -0,0 +1,164 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.092 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.092 +Problem: Some error messages are not translated. +Solution: Add _() around the messages. (Dominique Pelle) +Files: src/eval.c + + +*** ../vim-7.2.091/src/eval.c Sun Dec 21 13:02:47 2008 +--- src/eval.c Sat Jan 24 12:22:47 2009 +*************** +*** 7918,7926 **** + else if (!aborting()) + { + if (argcount == MAX_FUNC_ARGS) +! emsg_funcname("E740: Too many arguments for function %s", name); + else +! emsg_funcname("E116: Invalid arguments for function %s", name); + } + + while (--argcount >= 0) +--- 7918,7926 ---- + else if (!aborting()) + { + if (argcount == MAX_FUNC_ARGS) +! emsg_funcname(N_("E740: Too many arguments for function %s"), name); + else +! emsg_funcname(N_("E116: Invalid arguments for function %s"), name); + } + + while (--argcount >= 0) +*************** +*** 8153,8158 **** +--- 8153,8159 ---- + + /* + * Give an error message with a function name. Handle <SNR> things. ++ * "ermsg" is to be passed without translation, use N_() instead of _(). + */ + static void + emsg_funcname(ermsg, name) +*************** +*** 19867,19873 **** + } + } + else +! emsg_funcname("E123: Undefined function: %s", name); + } + goto ret_free; + } +--- 19868,19874 ---- + } + } + else +! emsg_funcname(N_("E123: Undefined function: %s"), name); + } + goto ret_free; + } +*************** +*** 19911,19917 **** + : eval_isnamec(arg[j]))) + ++j; + if (arg[j] != NUL) +! emsg_funcname(_(e_invarg2), arg); + } + } + +--- 19912,19918 ---- + : eval_isnamec(arg[j]))) + ++j; + if (arg[j] != NUL) +! emsg_funcname(e_invarg2, arg); + } + } + +*************** +*** 20183,20189 **** + v = find_var(name, &ht); + if (v != NULL && v->di_tv.v_type == VAR_FUNC) + { +! emsg_funcname("E707: Function name conflicts with variable: %s", + name); + goto erret; + } +--- 20184,20190 ---- + v = find_var(name, &ht); + if (v != NULL && v->di_tv.v_type == VAR_FUNC) + { +! emsg_funcname(N_("E707: Function name conflicts with variable: %s"), + name); + goto erret; + } +*************** +*** 20198,20204 **** + } + if (fp->uf_calls > 0) + { +! emsg_funcname("E127: Cannot redefine function %s: It is in use", + name); + goto erret; + } +--- 20199,20205 ---- + } + if (fp->uf_calls > 0) + { +! emsg_funcname(N_("E127: Cannot redefine function %s: It is in use"), + name); + goto erret; + } +*************** +*** 21477,21483 **** + + /* + * Return TRUE if items in "fc" do not have "copyID". That means they are not +! * referenced from anywyere. + */ + static int + can_free_funccal(fc, copyID) +--- 21478,21484 ---- + + /* + * Return TRUE if items in "fc" do not have "copyID". That means they are not +! * referenced from anywhere. + */ + static int + can_free_funccal(fc, copyID) +*** ../vim-7.2.091/src/version.c Wed Jan 28 16:03:51 2009 +--- src/version.c Wed Jan 28 19:05:47 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 92, + /**/ + + +-- +Now it is such a bizarrely improbable coincidence that anything as +mind-bogglingly useful as the Babel fish could have evolved purely by chance +that some thinkers have chosen to see it as a final and clinching proof of the +NON-existence of God. +The argument goes something like this: 'I refuse to prove that I exist,' says +God, 'for proof denies faith, and without faith I am nothing.' +'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not +have evolved by chance. It proves you exist, and so therefore, by your own +arguments, you don't. QED.' +'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a +puff of logic. +'Oh, that was easy,' says Man, and for an encore goes on to prove that black +is white and gets himself killed on the next pedestrian crossing. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.093 b/source/ap/vim/patches/7.2.093 new file mode 100644 index 000000000..b0f44909b --- /dev/null +++ b/source/ap/vim/patches/7.2.093 @@ -0,0 +1,234 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.093 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.093 (extra) +Problem: Win32: inputdialog() and find/replace dialogs can't handle + multi-byte text. +Solution: Use the wide version of dialog functions when available. (Yanwei + Jia) +Files: src/gui_w32.c, src/gui_w48.c + + +*** ../vim-7.2.092/src/gui_w32.c Thu Nov 20 17:09:09 2008 +--- src/gui_w32.c Wed Jan 28 21:15:29 2009 +*************** +*** 1582,1587 **** +--- 1582,1598 ---- + s_findrep_struct.lpstrReplaceWith[0] = NUL; + s_findrep_struct.wFindWhatLen = MSWIN_FR_BUFSIZE; + s_findrep_struct.wReplaceWithLen = MSWIN_FR_BUFSIZE; ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ s_findrep_struct_w.lStructSize = sizeof(s_findrep_struct_w); ++ s_findrep_struct_w.lpstrFindWhat = ++ (LPWSTR)alloc(MSWIN_FR_BUFSIZE * sizeof(WCHAR)); ++ s_findrep_struct_w.lpstrFindWhat[0] = NUL; ++ s_findrep_struct_w.lpstrReplaceWith = ++ (LPWSTR)alloc(MSWIN_FR_BUFSIZE * sizeof(WCHAR)); ++ s_findrep_struct_w.lpstrReplaceWith[0] = NUL; ++ s_findrep_struct_w.wFindWhatLen = MSWIN_FR_BUFSIZE; ++ s_findrep_struct_w.wReplaceWithLen = MSWIN_FR_BUFSIZE; ++ # endif + #endif + + theend: +*************** +*** 2938,2945 **** + + /* If the edit box exists, copy the string. */ + if (s_textfield != NULL) +! GetDlgItemText(hwnd, DLG_NONBUTTON_CONTROL + 2, + s_textfield, IOSIZE); + + /* + * Need to check for IDOK because if the user just hits Return to +--- 2949,2975 ---- + + /* If the edit box exists, copy the string. */ + if (s_textfield != NULL) +! { +! # if defined(FEAT_MBYTE) && defined(WIN3264) +! /* If the OS is Windows NT, and 'encoding' differs from active +! * codepage: use wide function and convert text. */ +! if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT +! && enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! { +! WCHAR *wp = (WCHAR *)alloc(IOSIZE * sizeof(WCHAR)); +! char_u *p; +! +! GetDlgItemTextW(hwnd, DLG_NONBUTTON_CONTROL + 2, wp, IOSIZE); +! p = utf16_to_enc(wp, NULL); +! vim_strncpy(s_textfield, p, IOSIZE); +! vim_free(p); +! vim_free(wp); +! } +! else +! # endif +! GetDlgItemText(hwnd, DLG_NONBUTTON_CONTROL + 2, + s_textfield, IOSIZE); ++ } + + /* + * Need to check for IDOK because if the user just hits Return to +*** ../vim-7.2.092/src/gui_w48.c Wed Jan 28 14:17:21 2009 +--- src/gui_w48.c Wed Jan 28 21:10:26 2009 +*************** +*** 153,158 **** +--- 153,161 ---- + #ifdef MSWIN_FIND_REPLACE + static UINT s_findrep_msg = 0; /* set in gui_w[16/32].c */ + static FINDREPLACE s_findrep_struct; ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ static FINDREPLACEW s_findrep_struct_w; ++ # endif + static HWND s_findrep_hwnd = NULL; + static int s_findrep_is_find; /* TRUE for find dialog, FALSE + for find/replace dialog */ +*************** +*** 884,889 **** +--- 887,931 ---- + #endif + + #ifdef MSWIN_FIND_REPLACE ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ /* ++ * copy useful data from structure LPFINDREPLACE to structure LPFINDREPLACEW ++ */ ++ static void ++ findrep_atow(LPFINDREPLACEW lpfrw, LPFINDREPLACE lpfr) ++ { ++ WCHAR *wp; ++ ++ lpfrw->hwndOwner = lpfr->hwndOwner; ++ lpfrw->Flags = lpfr->Flags; ++ ++ wp = enc_to_utf16(lpfr->lpstrFindWhat, NULL); ++ wcsncpy(lpfrw->lpstrFindWhat, wp, lpfrw->wFindWhatLen - 1); ++ vim_free(wp); ++ ++ /* the field "lpstrReplaceWith" doesn't need to be copied */ ++ } ++ ++ /* ++ * copy useful data from structure LPFINDREPLACEW to structure LPFINDREPLACE ++ */ ++ static void ++ findrep_wtoa(LPFINDREPLACE lpfr, LPFINDREPLACEW lpfrw) ++ { ++ char_u *p; ++ ++ lpfr->Flags = lpfrw->Flags; ++ ++ p = utf16_to_enc(lpfrw->lpstrFindWhat, NULL); ++ vim_strncpy(lpfr->lpstrFindWhat, p, lpfr->wFindWhatLen - 1); ++ vim_free(p); ++ ++ p = utf16_to_enc(lpfrw->lpstrReplaceWith, NULL); ++ vim_strncpy(lpfr->lpstrReplaceWith, p, lpfr->wReplaceWithLen - 1); ++ vim_free(p); ++ } ++ # endif ++ + /* + * Handle a Find/Replace window message. + */ +*************** +*** 893,898 **** +--- 935,950 ---- + int flags = 0; + int down; + ++ # if defined(FEAT_MBYTE) && defined(WIN3264) ++ /* If the OS is Windows NT, and 'encoding' differs from active codepage: ++ * convert text from wide string. */ ++ if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT ++ && enc_codepage >= 0 && (int)GetACP() != enc_codepage) ++ { ++ findrep_wtoa(&s_findrep_struct, &s_findrep_struct_w); ++ } ++ # endif ++ + if (s_findrep_struct.Flags & FR_DIALOGTERM) + /* Give main window the focus back. */ + (void)SetFocus(s_hwnd); +*************** +*** 2562,2568 **** + if (!IsWindow(s_findrep_hwnd)) + { + initialise_findrep(eap->arg); +! s_findrep_hwnd = FindText((LPFINDREPLACE) &s_findrep_struct); + } + + set_window_title(s_findrep_hwnd, +--- 2614,2632 ---- + if (!IsWindow(s_findrep_hwnd)) + { + initialise_findrep(eap->arg); +! # if defined(FEAT_MBYTE) && defined(WIN3264) +! /* If the OS is Windows NT, and 'encoding' differs from active +! * codepage: convert text and use wide function. */ +! if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT +! && enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! { +! findrep_atow(&s_findrep_struct_w, &s_findrep_struct); +! s_findrep_hwnd = FindTextW( +! (LPFINDREPLACEW) &s_findrep_struct_w); +! } +! else +! # endif +! s_findrep_hwnd = FindText((LPFINDREPLACE) &s_findrep_struct); + } + + set_window_title(s_findrep_hwnd, +*************** +*** 2587,2593 **** + if (!IsWindow(s_findrep_hwnd)) + { + initialise_findrep(eap->arg); +! s_findrep_hwnd = ReplaceText((LPFINDREPLACE) &s_findrep_struct); + } + + set_window_title(s_findrep_hwnd, +--- 2651,2668 ---- + if (!IsWindow(s_findrep_hwnd)) + { + initialise_findrep(eap->arg); +! # if defined(FEAT_MBYTE) && defined(WIN3264) +! if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT +! && enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! { +! findrep_atow(&s_findrep_struct_w, &s_findrep_struct); +! s_findrep_hwnd = ReplaceTextW( +! (LPFINDREPLACEW) &s_findrep_struct_w); +! } +! else +! # endif +! s_findrep_hwnd = ReplaceText( +! (LPFINDREPLACE) &s_findrep_struct); + } + + set_window_title(s_findrep_hwnd, +*** ../vim-7.2.092/src/version.c Wed Jan 28 19:08:31 2009 +--- src/version.c Wed Jan 28 21:19:56 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 93, + /**/ + +-- +I'm not familiar with this proof, but I'm aware of a significant +following of toddlers who believe that peanut butter is the solution +to all of life's problems... -- Tim Hammerquist + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.094 b/source/ap/vim/patches/7.2.094 new file mode 100644 index 000000000..bc79fa564 --- /dev/null +++ b/source/ap/vim/patches/7.2.094 @@ -0,0 +1,112 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.094 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.094 +Problem: Compiler warning for signed/unsigned compare. +Solution: Add type cast. Also fix a few typos. +Files: src/edit.c + + +*** ../vim-7.2.093/src/edit.c Tue Jan 13 12:29:03 2009 +--- src/edit.c Wed Jan 28 21:13:51 2009 +*************** +*** 1958,1963 **** +--- 1958,1964 ---- + * Only matters when there are composing characters. + * Return TRUE when something was deleted. + */ ++ /*ARGSUSED*/ + static int + del_char_after_col(limit_col) + int limit_col; +*************** +*** 1971,1977 **** + * skip forward again when going too far back because of a + * composing character. */ + mb_adjust_cursor(); +! while (curwin->w_cursor.col < limit_col) + { + int l = utf_ptr2len(ml_get_cursor()); + +--- 1972,1978 ---- + * skip forward again when going too far back because of a + * composing character. */ + mb_adjust_cursor(); +! while (curwin->w_cursor.col < (colnr_T)limit_col) + { + int l = utf_ptr2len(ml_get_cursor()); + +*************** +*** 4240,4246 **** + } + + /* check if compl_curr_match has changed, (e.g. other type of +! * expansion added somenthing) */ + if (type != 0 && compl_curr_match != old_match) + found_new_match = OK; + +--- 4241,4247 ---- + } + + /* check if compl_curr_match has changed, (e.g. other type of +! * expansion added something) */ + if (type != 0 && compl_curr_match != old_match) + found_new_match = OK; + +*************** +*** 4741,4747 **** + } + compl_length = curwin->w_cursor.col - (int)compl_col; + /* IObuff is used to add a "word from the next line" would we +! * have enough space? just being paranoic */ + #define MIN_SPACE 75 + if (compl_length > (IOSIZE - MIN_SPACE)) + { +--- 4742,4748 ---- + } + compl_length = curwin->w_cursor.col - (int)compl_col; + /* IObuff is used to add a "word from the next line" would we +! * have enough space? just being paranoid */ + #define MIN_SPACE 75 + if (compl_length > (IOSIZE - MIN_SPACE)) + { +*************** +*** 8206,8212 **** + /* + * If the cursor is on an indent, ^T/^D insert/delete one + * shiftwidth. Otherwise ^T/^D behave like a "<<" or ">>". +! * Always round the indent to 'shiftwith', this is compatible + * with vi. But vi only supports ^T and ^D after an + * autoindent, we support it everywhere. + */ +--- 8207,8213 ---- + /* + * If the cursor is on an indent, ^T/^D insert/delete one + * shiftwidth. Otherwise ^T/^D behave like a "<<" or ">>". +! * Always round the indent to 'shiftwidth', this is compatible + * with vi. But vi only supports ^T and ^D after an + * autoindent, we support it everywhere. + */ +*** ../vim-7.2.093/src/version.c Wed Jan 28 21:22:20 2009 +--- src/version.c Wed Feb 4 11:17:02 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 94, + /**/ + +-- +Despite the cost of living, have you noticed how it remains so popular? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.095 b/source/ap/vim/patches/7.2.095 new file mode 100644 index 000000000..c69cadb31 --- /dev/null +++ b/source/ap/vim/patches/7.2.095 @@ -0,0 +1,63 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.095 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.095 +Problem: With Visual selection, "r" and then CTRL-C Visual mode is stopped + but the highlighting is not removed. +Solution: Call reset_VIsual(). +Files: src/normal.c + + +*** ../vim-7.2.094/src/normal.c Thu Nov 20 16:11:03 2008 +--- src/normal.c Fri Jan 30 20:37:01 2009 +*************** +*** 6783,6788 **** +--- 6783,6790 ---- + /* Visual mode "r" */ + if (VIsual_active) + { ++ if (got_int) ++ reset_VIsual(); + nv_operator(cap); + return; + } +*************** +*** 7839,7845 **** + else + i = curwin->w_leftcol; + /* Go to the middle of the screen line. When 'number' is on and lines +! * are wrapping the middle can be more to the left.*/ + if (cap->nchar == 'm') + i += (W_WIDTH(curwin) - curwin_col_off() + + ((curwin->w_p_wrap && i > 0) +--- 7841,7847 ---- + else + i = curwin->w_leftcol; + /* Go to the middle of the screen line. When 'number' is on and lines +! * are wrapping the middle can be more to the left. */ + if (cap->nchar == 'm') + i += (W_WIDTH(curwin) - curwin_col_off() + + ((curwin->w_p_wrap && i > 0) +*** ../vim-7.2.094/src/version.c Wed Feb 4 11:19:40 2009 +--- src/version.c Wed Feb 4 11:43:28 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 95, + /**/ + +-- +Nothing is fool-proof to a sufficiently talented fool. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.096 b/source/ap/vim/patches/7.2.096 new file mode 100644 index 000000000..e286ca9c8 --- /dev/null +++ b/source/ap/vim/patches/7.2.096 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.096 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.096 +Problem: After ":number" the "Press Enter" message may be on the wrong + screen, if switching screens for shell commands. +Solution: Reset info_message. (James Vega) +Files: src/ex_cmds.c + + +*** ../vim-7.2.095/src/ex_cmds.c Tue Jan 13 16:57:09 2009 +--- src/ex_cmds.c Fri Jan 30 21:01:54 2009 +*************** +*** 2417,2424 **** + cursor_on(); /* msg_start() switches it off */ + out_flush(); + silent_mode = save_silent; +- info_message = FALSE; + } + } + + /* +--- 2417,2424 ---- + cursor_on(); /* msg_start() switches it off */ + out_flush(); + silent_mode = save_silent; + } ++ info_message = FALSE; + } + + /* +*** ../vim-7.2.095/src/version.c Wed Feb 4 11:45:28 2009 +--- src/version.c Wed Feb 4 13:12:55 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 96, + /**/ + +-- +A fine is a tax for doing wrong. A tax is a fine for doing well. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.097 b/source/ap/vim/patches/7.2.097 new file mode 100644 index 000000000..ac72d5d9e --- /dev/null +++ b/source/ap/vim/patches/7.2.097 @@ -0,0 +1,54 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.097 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.097 +Problem: "!xterm&" doesn't work when 'shell' is "bash". +Solution: Ignore SIGHUP after calling setsid(). (Simon Schubert) +Files: src/os_unix.c + + +*** ../vim-7.2.096/src/os_unix.c Fri Nov 28 21:26:50 2008 +--- src/os_unix.c Wed Feb 4 12:09:55 2009 +*************** +*** 3950,3956 **** +--- 3950,3966 ---- + * children can be kill()ed. Don't do this when using pipes, + * because stdin is not a tty, we would lose /dev/tty. */ + if (p_stmp) ++ { + (void)setsid(); ++ # if defined(SIGHUP) ++ /* When doing "!xterm&" and 'shell' is bash: the shell ++ * will exit and send SIGHUP to all processes in its ++ * group, killing the just started process. Ignore SIGHUP ++ * to avoid that. (suggested by Simon Schubert) ++ */ ++ signal(SIGHUP, SIG_IGN); ++ # endif ++ } + # endif + # ifdef FEAT_GUI + if (pty_slave_fd >= 0) +*** ../vim-7.2.096/src/version.c Wed Feb 4 13:13:42 2009 +--- src/version.c Wed Feb 4 14:16:37 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 97, + /**/ + +-- +It was recently discovered that research causes cancer in rats. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.098 b/source/ap/vim/patches/7.2.098 new file mode 100644 index 000000000..eed0a65d8 --- /dev/null +++ b/source/ap/vim/patches/7.2.098 @@ -0,0 +1,69 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.098 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.098 +Problem: Warning for signed/unsigned pointer. +Solution: Add type cast. +Files: src/eval.c + + +*** ../vim-7.2.097/src/eval.c Wed Jan 28 19:08:31 2009 +--- src/eval.c Wed Feb 4 13:09:01 2009 +*************** +*** 3928,3934 **** + + /* + * Handle top level expression: +! * expr1 ? expr0 : expr0 + * + * "arg" must point to the first non-white of the expression. + * "arg" is advanced to the next non-white after the recognized expression. +--- 3928,3934 ---- + + /* + * Handle top level expression: +! * expr2 ? expr1 : expr1 + * + * "arg" must point to the first non-white of the expression. + * "arg" is advanced to the next non-white after the recognized expression. +*************** +*** 19912,19918 **** + : eval_isnamec(arg[j]))) + ++j; + if (arg[j] != NUL) +! emsg_funcname(e_invarg2, arg); + } + } + +--- 19912,19918 ---- + : eval_isnamec(arg[j]))) + ++j; + if (arg[j] != NUL) +! emsg_funcname((char *)e_invarg2, arg); + } + } + +*** ../vim-7.2.097/src/version.c Wed Feb 4 14:18:44 2009 +--- src/version.c Wed Feb 4 16:24:06 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 98, + /**/ + +-- +Everybody lies, but it doesn't matter since nobody listens. + -- Lieberman's Law + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.099 b/source/ap/vim/patches/7.2.099 new file mode 100644 index 000000000..6f5dae5d5 --- /dev/null +++ b/source/ap/vim/patches/7.2.099 @@ -0,0 +1,127 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.099 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.099 +Problem: Changing GUI options causes an unnecessary redraw when the GUI + isn't active. +Solution: Avoid the redraw. (Lech Lorens) +Files: src/option.c + + +*** ../vim-7.2.098/src/option.c Wed Dec 24 12:53:33 2008 +--- src/option.c Wed Feb 4 16:59:56 2009 +*************** +*** 5407,5412 **** +--- 5407,5416 ---- + int did_chartab = FALSE; + char_u **gvarp; + long_u free_oldval = (options[opt_idx].flags & P_ALLOCED); ++ #ifdef FEAT_GUI ++ /* set when changing an option that only requires a redraw in the GUI */ ++ int redraw_gui_only = FALSE; ++ #endif + + /* Get the global option to compare with, otherwise we would have to check + * two values for all local options. */ +*************** +*** 6055,6060 **** +--- 6059,6065 ---- + errmsg = (char_u *)N_("E596: Invalid font(s)"); + } + } ++ redraw_gui_only = TRUE; + } + # ifdef FEAT_XFONTSET + else if (varp == &p_guifontset) +*************** +*** 6063,6068 **** +--- 6068,6074 ---- + errmsg = (char_u *)N_("E597: can't select fontset"); + else if (gui.in_use && gui_init_font(p_guifontset, TRUE) != OK) + errmsg = (char_u *)N_("E598: Invalid fontset"); ++ redraw_gui_only = TRUE; + } + # endif + # ifdef FEAT_MBYTE +*************** +*** 6072,6077 **** +--- 6078,6084 ---- + errmsg = (char_u *)N_("E533: can't select wide font"); + else if (gui_get_wide_font() == FAIL) + errmsg = (char_u *)N_("E534: Invalid wide font"); ++ redraw_gui_only = TRUE; + } + # endif + #endif +*************** +*** 6133,6145 **** +--- 6140,6163 ---- + #ifdef FEAT_GUI + /* 'guioptions' */ + else if (varp == &p_go) ++ { + gui_init_which_components(oldval); ++ redraw_gui_only = TRUE; ++ } + #endif + + #if defined(FEAT_GUI_TABLINE) + /* 'guitablabel' */ + else if (varp == &p_gtl) ++ { + redraw_tabline = TRUE; ++ redraw_gui_only = TRUE; ++ } ++ /* 'guitabtooltip' */ ++ else if (varp == &p_gtt) ++ { ++ redraw_gui_only = TRUE; ++ } + #endif + + #if defined(FEAT_MOUSE_TTY) && (defined(UNIX) || defined(VMS)) +*************** +*** 6717,6723 **** + + if (curwin->w_curswant != MAXCOL) + curwin->w_set_curswant = TRUE; /* in case 'showbreak' changed */ +! check_redraw(options[opt_idx].flags); + + return errmsg; + } +--- 6735,6745 ---- + + if (curwin->w_curswant != MAXCOL) + curwin->w_set_curswant = TRUE; /* in case 'showbreak' changed */ +! #ifdef FEAT_GUI +! /* check redraw when it's not a GUI option or the GUI is active. */ +! if (!redraw_gui_only || gui.in_use) +! #endif +! check_redraw(options[opt_idx].flags); + + return errmsg; + } +*** ../vim-7.2.098/src/version.c Wed Feb 4 16:25:53 2009 +--- src/version.c Wed Feb 4 17:24:11 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 99, + /**/ + +-- +I started out with nothing, and I still have most of it. + -- Michael Davis -- "Tonight Show" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.100 b/source/ap/vim/patches/7.2.100 new file mode 100644 index 000000000..0099edb1f --- /dev/null +++ b/source/ap/vim/patches/7.2.100 @@ -0,0 +1,132 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.100 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.100 +Problem: When using ":source" on a FIFO or something else that can't rewind + the first three bytes are skipped. +Solution: Instead of rewinding read the first line and detect a BOM in that. + (mostly by James Vega) +Files: src/ex_cmds2.c + + +*** ../vim-7.2.099/src/ex_cmds2.c Sat Nov 15 14:10:23 2008 +--- src/ex_cmds2.c Wed Feb 4 16:05:51 2009 +*************** +*** 2842,2847 **** +--- 2842,2848 ---- + linenr_T save_sourcing_lnum; + char_u *p; + char_u *fname_exp; ++ char_u *firstline = NULL; + int retval = FAIL; + #ifdef FEAT_EVAL + scid_T save_current_SID; +*************** +*** 2992,3014 **** + + cookie.level = ex_nesting_level; + #endif +- #ifdef FEAT_MBYTE +- cookie.conv.vc_type = CONV_NONE; /* no conversion */ +- +- /* Try reading the first few bytes to check for a UTF-8 BOM. */ +- { +- char_u buf[3]; +- +- if (fread((char *)buf, sizeof(char_u), (size_t)3, cookie.fp) +- == (size_t)3 +- && buf[0] == 0xef && buf[1] == 0xbb && buf[2] == 0xbf) +- /* Found BOM, setup conversion and skip over it. */ +- convert_setup(&cookie.conv, (char_u *)"utf-8", p_enc); +- else +- /* No BOM found, rewind. */ +- fseek(cookie.fp, 0L, SEEK_SET); +- } +- #endif + + /* + * Keep the sourcing name/lnum, for recursive calls. +--- 2993,2998 ---- +*************** +*** 3018,3023 **** +--- 3002,3026 ---- + save_sourcing_lnum = sourcing_lnum; + sourcing_lnum = 0; + ++ #ifdef FEAT_MBYTE ++ cookie.conv.vc_type = CONV_NONE; /* no conversion */ ++ ++ /* Read the first line so we can check for a UTF-8 BOM. */ ++ firstline = getsourceline(0, (void *)&cookie, 0); ++ if (firstline != NULL && STRLEN(firstline) >= 3 && firstline[0] == 0xef ++ && firstline[1] == 0xbb && firstline[2] == 0xbf) ++ { ++ /* Found BOM; setup conversion, skip over BOM and recode the line. */ ++ convert_setup(&cookie.conv, (char_u *)"utf-8", p_enc); ++ p = string_convert(&cookie.conv, firstline + 3, NULL); ++ if (p != NULL) ++ { ++ vim_free(firstline); ++ firstline = p; ++ } ++ } ++ #endif ++ + #ifdef STARTUPTIME + time_push(&tv_rel, &tv_start); + #endif +*************** +*** 3111,3119 **** + /* + * Call do_cmdline, which will call getsourceline() to get the lines. + */ +! do_cmdline(NULL, getsourceline, (void *)&cookie, + DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_REPEAT); +- + retval = OK; + + #ifdef FEAT_PROFILE +--- 3114,3121 ---- + /* + * Call do_cmdline, which will call getsourceline() to get the lines. + */ +! do_cmdline(firstline, getsourceline, (void *)&cookie, + DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_REPEAT); + retval = OK; + + #ifdef FEAT_PROFILE +*************** +*** 3171,3176 **** +--- 3173,3179 ---- + #endif + fclose(cookie.fp); + vim_free(cookie.nextline); ++ vim_free(firstline); + #ifdef FEAT_MBYTE + convert_setup(&cookie.conv, NULL, NULL); + #endif +*** ../vim-7.2.099/src/version.c Wed Feb 4 17:27:50 2009 +--- src/version.c Wed Feb 4 17:48:47 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 100, + /**/ + +-- +Well, you come from nothing, you go back to nothing... What have you +lost? Nothing! + -- Monty Python: The life of Brian + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.101 b/source/ap/vim/patches/7.2.101 new file mode 100644 index 000000000..e3526ca88 --- /dev/null +++ b/source/ap/vim/patches/7.2.101 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.101 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.101 (extra) +Problem: MSVC version not recognized. +Solution: Add the version number to the list. (Zhong Zhang) +Files: src/Make_mvc.mak + + +*** ../vim-7.2.100/src/Make_mvc.mak Thu Jul 24 20:49:58 2008 +--- src/Make_mvc.mak Wed Feb 4 18:32:47 2009 +*************** +*** 354,359 **** +--- 354,362 ---- + !if "$(_NMAKE_VER)" == "9.00.21022.08" + MSVCVER = 9.0 + !endif ++ !if "$(_NMAKE_VER)" == "9.00.30729.01" ++ MSVCVER = 9.0 ++ !endif + !endif + + # Abort bulding VIM if version of VC is unrecognised. +*** ../vim-7.2.100/src/version.c Wed Feb 4 17:49:46 2009 +--- src/version.c Wed Feb 4 18:34:12 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 101, + /**/ + +-- +Light travels faster than sound. This is why some people +appear bright until you hear them speak + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.102 b/source/ap/vim/patches/7.2.102 new file mode 100644 index 000000000..316c32bde --- /dev/null +++ b/source/ap/vim/patches/7.2.102 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.102 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.102 (after 7.2.100) +Problem: When 'encoding' is "utf-8" a BOM at the start of a Vim script is + not removed. (Tony Mechelynck) +Solution: When no conversion is taking place make a copy of the line without + the BOM. +Files: src/ex_cmds2.c + + +*** ../vim-7.2.101/src/ex_cmds2.c Wed Feb 4 17:49:46 2009 +--- src/ex_cmds2.c Thu Feb 5 20:41:56 2009 +*************** +*** 3013,3018 **** +--- 3013,3020 ---- + /* Found BOM; setup conversion, skip over BOM and recode the line. */ + convert_setup(&cookie.conv, (char_u *)"utf-8", p_enc); + p = string_convert(&cookie.conv, firstline + 3, NULL); ++ if (p == NULL) ++ p = vim_strsave(firstline + 3); + if (p != NULL) + { + vim_free(firstline); +*** ../vim-7.2.101/src/version.c Wed Feb 4 18:34:54 2009 +--- src/version.c Thu Feb 5 20:44:55 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 102, + /**/ + +-- +CVS sux, men don't like commitment + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.103 b/source/ap/vim/patches/7.2.103 new file mode 100644 index 000000000..25a513a75 --- /dev/null +++ b/source/ap/vim/patches/7.2.103 @@ -0,0 +1,216 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.103 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.103 +Problem: When 'bomb' is changed the window title is updated to show/hide a + "+", but the tab page label isn't. (Patrick Texier) +Solution: Set "redraw_tabline" in most places where "need_maketitle" is set. + (partly by Lech Lorens) +Files: src/option.c + + +*** ../vim-7.2.102/src/option.c Wed Feb 4 17:27:50 2009 +--- src/option.c Wed Feb 4 17:40:02 2009 +*************** +*** 5268,5273 **** +--- 5268,5288 ---- + } + #endif + ++ #ifdef FEAT_TITLE ++ static void redraw_titles __ARGS((void)); ++ ++ /* ++ * Redraw the window title and/or tab page text later. ++ */ ++ static void redraw_titles() ++ { ++ need_maketitle = TRUE; ++ # ifdef FEAT_WINDOWS ++ redraw_tabline = TRUE; ++ # endif ++ } ++ #endif ++ + /* + * Set a string option to a new value (without checking the effect). + * The string is copied into allocated memory. +*************** +*** 5672,5678 **** + { + # ifdef FEAT_TITLE + /* May show a "+" in the title now. */ +! need_maketitle = TRUE; + # endif + /* Add 'fileencoding' to the swap file. */ + ml_setflags(curbuf); +--- 5687,5693 ---- + { + # ifdef FEAT_TITLE + /* May show a "+" in the title now. */ +! redraw_titles(); + # endif + /* Add 'fileencoding' to the swap file. */ + ml_setflags(curbuf); +*************** +*** 5691,5697 **** + { + errmsg = mb_init(); + # ifdef FEAT_TITLE +! need_maketitle = TRUE; + # endif + } + } +--- 5706,5712 ---- + { + errmsg = mb_init(); + # ifdef FEAT_TITLE +! redraw_titles(); + # endif + } + } +*************** +*** 5800,5806 **** + else + curbuf->b_p_tx = FALSE; + #ifdef FEAT_TITLE +! need_maketitle = TRUE; + #endif + /* update flag in swap file */ + ml_setflags(curbuf); +--- 5815,5821 ---- + else + curbuf->b_p_tx = FALSE; + #ifdef FEAT_TITLE +! redraw_titles(); + #endif + /* update flag in swap file */ + ml_setflags(curbuf); +*************** +*** 7127,7148 **** + curbuf->b_did_warn = FALSE; + + #ifdef FEAT_TITLE +! need_maketitle = TRUE; + #endif + } + + #ifdef FEAT_TITLE + /* when 'modifiable' is changed, redraw the window title */ + else if ((int *)varp == &curbuf->b_p_ma) +! need_maketitle = TRUE; + /* when 'endofline' is changed, redraw the window title */ + else if ((int *)varp == &curbuf->b_p_eol) +! need_maketitle = TRUE; +! #ifdef FEAT_MBYTE +! /* when 'bomb' is changed, redraw the window title */ + else if ((int *)varp == &curbuf->b_p_bomb) +! need_maketitle = TRUE; +! #endif + #endif + + /* when 'bin' is set also set some other options */ +--- 7142,7169 ---- + curbuf->b_did_warn = FALSE; + + #ifdef FEAT_TITLE +! redraw_titles(); + #endif + } + + #ifdef FEAT_TITLE + /* when 'modifiable' is changed, redraw the window title */ + else if ((int *)varp == &curbuf->b_p_ma) +! { +! redraw_titles(); +! } + /* when 'endofline' is changed, redraw the window title */ + else if ((int *)varp == &curbuf->b_p_eol) +! { +! redraw_titles(); +! } +! # ifdef FEAT_MBYTE +! /* when 'bomb' is changed, redraw the window title and tab page text */ + else if ((int *)varp == &curbuf->b_p_bomb) +! { +! redraw_titles(); +! } +! # endif + #endif + + /* when 'bin' is set also set some other options */ +*************** +*** 7150,7156 **** + { + set_options_bin(old_value, curbuf->b_p_bin, opt_flags); + #ifdef FEAT_TITLE +! need_maketitle = TRUE; + #endif + } + +--- 7171,7177 ---- + { + set_options_bin(old_value, curbuf->b_p_bin, opt_flags); + #ifdef FEAT_TITLE +! redraw_titles(); + #endif + } + +*************** +*** 7301,7307 **** + if (!value) + save_file_ff(curbuf); /* Buffer is unchanged */ + #ifdef FEAT_TITLE +! need_maketitle = TRUE; + #endif + #ifdef FEAT_AUTOCMD + modified_was_set = value; +--- 7322,7328 ---- + if (!value) + save_file_ff(curbuf); /* Buffer is unchanged */ + #ifdef FEAT_TITLE +! redraw_titles(); + #endif + #ifdef FEAT_AUTOCMD + modified_was_set = value; +*************** +*** 7736,7742 **** + newFoldLevel(); + } + +! /* 'foldminlevel' */ + else if (pp == &curwin->w_p_fml) + { + foldUpdateAll(curwin); +--- 7757,7763 ---- + newFoldLevel(); + } + +! /* 'foldminlines' */ + else if (pp == &curwin->w_p_fml) + { + foldUpdateAll(curwin); +*** ../vim-7.2.102/src/version.c Thu Feb 5 20:47:14 2009 +--- src/version.c Wed Feb 11 11:32:20 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 103, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +73. You give your dog used motherboards instead of bones + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.104 b/source/ap/vim/patches/7.2.104 new file mode 100644 index 000000000..51c0e097d --- /dev/null +++ b/source/ap/vim/patches/7.2.104 @@ -0,0 +1,51 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.104 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.104 +Problem: When using ":saveas bar.c" the tab label isn't updated right away. +Solution: Set redraw_tabline. (Francois Ingelrest) +Files: src/ex_cmds.c + + +*** ../vim-7.2.103/src/ex_cmds.c Wed Feb 4 13:13:42 2009 +--- src/ex_cmds.c Wed Feb 11 15:58:06 2009 +*************** +*** 2707,2713 **** +--- 2707,2718 ---- + if (eap->cmdidx == CMD_saveas) + { + if (retval == OK) ++ { + curbuf->b_p_ro = FALSE; ++ #ifdef FEAT_WINDOWS ++ redraw_tabline = TRUE; ++ #endif ++ } + /* Change directories when the 'acd' option is set. */ + DO_AUTOCHDIR + } +*** ../vim-7.2.103/src/version.c Wed Feb 11 11:34:24 2009 +--- src/version.c Wed Feb 11 16:02:19 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 104, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +75. You start wondering whether you could actually upgrade your brain + with a Pentium Pro microprocessor 80. The upgrade works just fine. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.105 b/source/ap/vim/patches/7.2.105 new file mode 100644 index 000000000..486ffb3fc --- /dev/null +++ b/source/ap/vim/patches/7.2.105 @@ -0,0 +1,72 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.105 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.105 +Problem: Modeline setting for 'foldmethod' overrules diff options. (Ingo + Karkat) +Solution: Don't set 'foldmethod' and 'wrap' from a modeline when 'diff' is + on. +Files: src/option.c + + +*** ../vim-7.2.104/src/option.c Wed Feb 11 11:34:24 2009 +--- src/option.c Wed Feb 11 16:29:56 2009 +*************** +*** 4119,4129 **** + && options[opt_idx].var == VAR_WIN) + goto skip; + +! /* Disallow changing some options from modelines */ +! if ((opt_flags & OPT_MODELINE) && (flags & P_SECURE)) + { +! errmsg = (char_u *)_("E520: Not allowed in a modeline"); +! goto skip; + } + + #ifdef HAVE_SANDBOX +--- 4119,4139 ---- + && options[opt_idx].var == VAR_WIN) + goto skip; + +! /* Disallow changing some options from modelines. */ +! if (opt_flags & OPT_MODELINE) + { +! if (flags & P_SECURE) +! { +! errmsg = (char_u *)_("E520: Not allowed in a modeline"); +! goto skip; +! } +! /* In diff mode some options are overruled. This avoids that +! * 'foldmethod' becomes "marker" instead of "diff" and that +! * "wrap" gets set. */ +! if (curwin->w_p_diff +! && (options[opt_idx].indir == PV_FDM +! || options[opt_idx].indir == PV_WRAP)) +! goto skip; + } + + #ifdef HAVE_SANDBOX +*** ../vim-7.2.104/src/version.c Wed Feb 11 16:02:29 2009 +--- src/version.c Wed Feb 11 16:40:35 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 105, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +76. Your ISP regards you as a business partner rather than as a customer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.106 b/source/ap/vim/patches/7.2.106 new file mode 100644 index 000000000..2c547973b --- /dev/null +++ b/source/ap/vim/patches/7.2.106 @@ -0,0 +1,103 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.106 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.106 +Problem: Endless loop when using "]s" in HTML when there are no + misspellings. (Ingo Karkat) +Solution: Break the search loop. Also fix pointer alignment for systems + with pointers larger than int. +Files: src/spell.c + + +*** ../vim-7.2.105/src/spell.c Tue Dec 9 22:34:02 2008 +--- src/spell.c Wed Feb 11 17:54:50 2009 +*************** +*** 2376,2382 **** + + /* If we are back at the starting line and there is no match then + * give up. */ +! if (lnum == wp->w_cursor.lnum && !found_one) + break; + + /* Skip the characters at the start of the next line that were +--- 2376,2382 ---- + + /* If we are back at the starting line and there is no match then + * give up. */ +! if (lnum == wp->w_cursor.lnum && (!found_one || wrapped)) + break; + + /* Skip the characters at the start of the next line that were +*************** +*** 4956,4968 **** + * Structure that is used to store the items in the word tree. This avoids + * the need to keep track of each allocated thing, everything is freed all at + * once after ":mkspell" is done. + */ + #define SBLOCKSIZE 16000 /* size of sb_data */ + typedef struct sblock_S sblock_T; + struct sblock_S + { +- sblock_T *sb_next; /* next block in list */ + int sb_used; /* nr of bytes already in use */ + char_u sb_data[1]; /* data, actually longer */ + }; + +--- 4956,4971 ---- + * Structure that is used to store the items in the word tree. This avoids + * the need to keep track of each allocated thing, everything is freed all at + * once after ":mkspell" is done. ++ * Note: "sb_next" must be just before "sb_data" to make sure the alignment of ++ * "sb_data" is correct for systems where pointers must be aligned on ++ * pointer-size boundaries and sizeof(pointer) > sizeof(int) (e.g., Sparc). + */ + #define SBLOCKSIZE 16000 /* size of sb_data */ + typedef struct sblock_S sblock_T; + struct sblock_S + { + int sb_used; /* nr of bytes already in use */ ++ sblock_T *sb_next; /* next block in list */ + char_u sb_data[1]; /* data, actually longer */ + }; + +*************** +*** 15011,15017 **** + + case 0: + /* +! * Lenghts are equal, thus changes must result in same length: An + * insert is only possible in combination with a delete. + * 1: check if for identical strings + */ +--- 15014,15020 ---- + + case 0: + /* +! * Lengths are equal, thus changes must result in same length: An + * insert is only possible in combination with a delete. + * 1: check if for identical strings + */ +*** ../vim-7.2.105/src/version.c Wed Feb 11 16:45:56 2009 +--- src/version.c Wed Feb 11 17:56:34 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 106, + /**/ + +-- +If bankers can count, how come they have eight windows and +only four tellers? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.107 b/source/ap/vim/patches/7.2.107 new file mode 100644 index 000000000..956737541 --- /dev/null +++ b/source/ap/vim/patches/7.2.107 @@ -0,0 +1,56 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.107 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.107 +Problem: When using a GUI dialog and ":echo" commands the messages are + deleted after the dialog. (Vicent Birebent) +Solution: Don't call msg_end_prompt() since there was no prompt. +Files: src/message.c + + +*** ../vim-7.2.106/src/message.c Tue Jan 13 16:37:31 2009 +--- src/message.c Wed Feb 11 18:38:14 2009 +*************** +*** 3309,3315 **** + { + c = gui_mch_dialog(type, title, message, buttons, dfltbutton, + textfield); +! msg_end_prompt(); + + /* Flush output to avoid that further messages and redrawing is done + * in the wrong order. */ +--- 3309,3318 ---- + { + c = gui_mch_dialog(type, title, message, buttons, dfltbutton, + textfield); +! /* avoid a hit-enter prompt without clearing the cmdline */ +! need_wait_return = FALSE; +! emsg_on_display = FALSE; +! cmdline_row = msg_row; + + /* Flush output to avoid that further messages and redrawing is done + * in the wrong order. */ +*** ../vim-7.2.106/src/version.c Wed Feb 11 17:57:43 2009 +--- src/version.c Wed Feb 11 18:46:12 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 107, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +79. All of your most erotic dreams have a scrollbar at the right side. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.108 b/source/ap/vim/patches/7.2.108 new file mode 100644 index 000000000..5164b83c6 --- /dev/null +++ b/source/ap/vim/patches/7.2.108 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.108 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.108 (after 7.2.105) +Problem: Can't build without the diff feature. +Solution: Add #ifdef. +Files: src/option.c + + +*** ../vim-7.2.107/src/option.c Wed Feb 11 16:45:56 2009 +--- src/option.c Wed Feb 11 22:21:16 2009 +*************** +*** 4127,4132 **** +--- 4127,4133 ---- + errmsg = (char_u *)_("E520: Not allowed in a modeline"); + goto skip; + } ++ #ifdef FEAT_DIFF + /* In diff mode some options are overruled. This avoids that + * 'foldmethod' becomes "marker" instead of "diff" and that + * "wrap" gets set. */ +*************** +*** 4134,4139 **** +--- 4135,4141 ---- + && (options[opt_idx].indir == PV_FDM + || options[opt_idx].indir == PV_WRAP)) + goto skip; ++ #endif + } + + #ifdef HAVE_SANDBOX +*** ../vim-7.2.107/src/version.c Wed Feb 11 18:46:48 2009 +--- src/version.c Wed Feb 11 22:46:40 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 108, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +80. At parties, you introduce your spouse as your "service provider." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.109 b/source/ap/vim/patches/7.2.109 new file mode 100644 index 000000000..8c3866cf9 --- /dev/null +++ b/source/ap/vim/patches/7.2.109 @@ -0,0 +1,423 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.109 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.109 +Problem: 'langmap' does not work for multi-byte characters. +Solution: Add a list of mapped multi-byte characters. (based on work by + Konstantin Korikov, Agathoklis Hatzimanikas) +Files: runtime/doc/options.txt, src/edit.c, src/getchar.c, src/macros.h, + src/normal.c, src/option.c, src/proto/option.pro, src/window.c + + +*** ../vim-7.2.108/runtime/doc/options.txt Fri Nov 28 10:59:57 2008 +--- runtime/doc/options.txt Wed Feb 11 18:59:34 2009 +*************** +*** 4175,4183 **** + be able to execute Normal mode commands. + This is the opposite of the 'keymap' option, where characters are + mapped in Insert mode. +- This only works for 8-bit characters. The value of 'langmap' may be +- specified with multi-byte characters (e.g., UTF-8), but only the lower +- 8 bits of each character will be used. + + Example (for Greek, in UTF-8): *greek* > + :set langmap=ΑA,Î’B,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ÎœM,ÎN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,Î¥Y,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,Ï€p,qq,Ïr,σs,Ï„t,θu,ωv,Ï‚w,χx,Ï…y,ζz +--- 4188,4193 ---- +*** ../vim-7.2.108/src/edit.c Wed Feb 4 11:19:40 2009 +--- src/edit.c Sat Feb 21 19:54:03 2009 +*************** +*** 7703,7711 **** + */ + ++no_mapping; + regname = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(regname, TRUE); +- #endif + if (regname == Ctrl_R || regname == Ctrl_O || regname == Ctrl_P) + { + /* Get a third key for literal register insertion */ +--- 7703,7709 ---- +*************** +*** 7714,7722 **** + add_to_showcmd_c(literally); + #endif + regname = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(regname, TRUE); +- #endif + } + --no_mapping; + +--- 7712,7718 ---- +*** ../vim-7.2.108/src/macros.h Wed Aug 15 20:41:07 2007 +--- src/macros.h Sat Feb 21 19:55:38 2009 +*************** +*** 127,141 **** + #ifdef FEAT_LANGMAP + /* + * Adjust chars in a language according to 'langmap' option. +! * NOTE that there is NO overhead if 'langmap' is not set; but even +! * when set we only have to do 2 ifs and an array lookup. + * Don't apply 'langmap' if the character comes from the Stuff buffer. + * The do-while is just to ignore a ';' after the macro. + */ +! # define LANGMAP_ADJUST(c, condition) do { \ +! if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \ +! c = langmap_mapchar[c]; \ + } while (0) + #endif + + /* +--- 127,157 ---- + #ifdef FEAT_LANGMAP + /* + * Adjust chars in a language according to 'langmap' option. +! * NOTE that there is no noticeable overhead if 'langmap' is not set. +! * When set the overhead for characters < 256 is small. + * Don't apply 'langmap' if the character comes from the Stuff buffer. + * The do-while is just to ignore a ';' after the macro. + */ +! # ifdef FEAT_MBYTE +! # define LANGMAP_ADJUST(c, condition) \ +! do { \ +! if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0) \ +! { \ +! if ((c) < 256) \ +! c = langmap_mapchar[c]; \ +! else \ +! c = langmap_adjust_mb(c); \ +! } \ + } while (0) ++ # else ++ # define LANGMAP_ADJUST(c, condition) \ ++ do { \ ++ if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \ ++ c = langmap_mapchar[c]; \ ++ } while (0) ++ # endif ++ #else ++ # define LANGMAP_ADJUST(c, condition) /* nop */ + #endif + + /* +*** ../vim-7.2.108/src/normal.c Wed Feb 4 11:45:28 2009 +--- src/normal.c Sat Feb 21 19:55:17 2009 +*************** +*** 651,660 **** + * Get the command character from the user. + */ + c = safe_vgetc(); +- +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); +- #endif + + #ifdef FEAT_VISUAL + /* +--- 651,657 ---- +*************** +*** 744,752 **** + } + ++no_zero_mapping; /* don't map zero here */ + c = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); +- #endif + --no_zero_mapping; + if (ctrl_w) + { +--- 741,747 ---- +*************** +*** 769,777 **** + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but keys */ + c = plain_vgetc(); /* get next character */ +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(c, TRUE); +- #endif + --no_mapping; + --allow_keys; + #ifdef FEAT_CMDL_INFO +--- 764,770 ---- +*************** +*** 959,967 **** + * "gr", "g'" and "g`". + */ + ca.nchar = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(ca.nchar, TRUE); +- #endif + #ifdef FEAT_CMDL_INFO + need_flushbuf |= add_to_showcmd(ca.nchar); + #endif +--- 952,958 ---- +*************** +*** 1062,1071 **** + } + #endif + +- #ifdef FEAT_LANGMAP + /* adjust chars > 127, except after "tTfFr" commands */ + LANGMAP_ADJUST(*cp, !lang); +- #endif + #ifdef FEAT_RIGHTLEFT + /* adjust Hebrew mapped char */ + if (p_hkmap && lang && KeyTyped) +--- 1053,1060 ---- +*************** +*** 4630,4638 **** + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ + nchar = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(nchar, TRUE); +- #endif + --no_mapping; + --allow_keys; + #ifdef FEAT_CMDL_INFO +--- 4619,4625 ---- +*************** +*** 4988,4996 **** + ++no_mapping; + ++allow_keys; /* no mapping for nchar, but allow key codes */ + nchar = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(nchar, TRUE); +- #endif + --no_mapping; + --allow_keys; + #ifdef FEAT_CMDL_INFO +--- 4975,4981 ---- +*** ../vim-7.2.108/src/option.c Wed Feb 11 22:47:32 2009 +--- src/option.c Sat Feb 21 19:46:13 2009 +*************** +*** 10153,10177 **** + + #ifdef FEAT_LANGMAP + /* +! * Any character has an equivalent character. This is used for keyboards that +! * have a special language mode that sends characters above 128 (although +! * other characters can be translated too). + */ + + /* +! * char_u langmap_mapchar[256]; +! * Normally maps each of the 128 upper chars to an <128 ascii char; used to +! * "translate" native lang chars in normal mode or some cases of +! * insert mode without having to tediously switch lang mode back&forth. + */ + + static void + langmap_init() + { + int i; + +! for (i = 0; i < 256; i++) /* we init with a-one-to one map */ +! langmap_mapchar[i] = i; + } + + /* +--- 10153,10262 ---- + + #ifdef FEAT_LANGMAP + /* +! * Any character has an equivalent 'langmap' character. This is used for +! * keyboards that have a special language mode that sends characters above +! * 128 (although other characters can be translated too). The "to" field is a +! * Vim command character. This avoids having to switch the keyboard back to +! * ASCII mode when leaving Insert mode. +! * +! * langmap_mapchar[] maps any of 256 chars to an ASCII char used for Vim +! * commands. +! * When FEAT_MBYTE is defined langmap_mapga.ga_data is a sorted table of +! * langmap_entry_T. This does the same as langmap_mapchar[] for characters >= +! * 256. +! */ +! # ifdef FEAT_MBYTE +! /* +! * With multi-byte support use growarray for 'langmap' chars >= 256 + */ ++ typedef struct ++ { ++ int from; ++ int to; ++ } langmap_entry_T; ++ ++ static garray_T langmap_mapga; ++ static void langmap_set_entry __ARGS((int from, int to)); ++ ++ /* ++ * Search for an entry in "langmap_mapga" for "from". If found set the "to" ++ * field. If not found insert a new entry at the appropriate location. ++ */ ++ static void ++ langmap_set_entry(from, to) ++ int from; ++ int to; ++ { ++ langmap_entry_T *entries = (langmap_entry_T *)(langmap_mapga.ga_data); ++ int a = 0; ++ int b = langmap_mapga.ga_len; ++ ++ /* Do a binary search for an existing entry. */ ++ while (a != b) ++ { ++ int i = (a + b) / 2; ++ int d = entries[i].from - from; ++ ++ if (d == 0) ++ { ++ entries[i].to = to; ++ return; ++ } ++ if (d < 0) ++ a = i + 1; ++ else ++ b = i; ++ } ++ ++ if (ga_grow(&langmap_mapga, 1) != OK) ++ return; /* out of memory */ ++ ++ /* insert new entry at position "a" */ ++ entries = (langmap_entry_T *)(langmap_mapga.ga_data) + a; ++ mch_memmove(entries + 1, entries, ++ (langmap_mapga.ga_len - a) * sizeof(langmap_entry_T)); ++ ++langmap_mapga.ga_len; ++ entries[0].from = from; ++ entries[0].to = to; ++ } + + /* +! * Apply 'langmap' to multi-byte character "c" and return the result. + */ ++ int ++ langmap_adjust_mb(c) ++ int c; ++ { ++ langmap_entry_T *entries = (langmap_entry_T *)(langmap_mapga.ga_data); ++ int a = 0; ++ int b = langmap_mapga.ga_len; ++ ++ while (a != b) ++ { ++ int i = (a + b) / 2; ++ int d = entries[i].from - c; ++ ++ if (d == 0) ++ return entries[i].to; /* found matching entry */ ++ if (d < 0) ++ a = i + 1; ++ else ++ b = i; ++ } ++ return c; /* no entry found, return "c" unmodified */ ++ } ++ # endif + + static void + langmap_init() + { + int i; + +! for (i = 0; i < 256; i++) +! langmap_mapchar[i] = i; /* we init with a one-to-one map */ +! # ifdef FEAT_MBYTE +! ga_init2(&langmap_mapga, sizeof(langmap_entry_T), 8); +! # endif + } + + /* +*************** +*** 10185,10191 **** + char_u *p2; + int from, to; + +! langmap_init(); /* back to one-to-one map first */ + + for (p = p_langmap; p[0] != NUL; ) + { +--- 10270,10279 ---- + char_u *p2; + int from, to; + +! #ifdef FEAT_MBYTE +! ga_clear(&langmap_mapga); /* clear the previous map first */ +! #endif +! langmap_init(); /* back to one-to-one map */ + + for (p = p_langmap; p[0] != NUL; ) + { +*************** +*** 10235,10241 **** + transchar(from)); + return; + } +! langmap_mapchar[from & 255] = to; + + /* Advance to next pair */ + mb_ptr_adv(p); +--- 10323,10335 ---- + transchar(from)); + return; + } +! +! #ifdef FEAT_MBYTE +! if (from >= 256) +! langmap_set_entry(from, to); +! else +! #endif +! langmap_mapchar[from & 255] = to; + + /* Advance to next pair */ + mb_ptr_adv(p); +*** ../vim-7.2.108/src/proto/option.pro Sat May 5 19:28:04 2007 +--- src/proto/option.pro Wed Feb 11 21:21:05 2009 +*************** +*** 44,49 **** +--- 44,50 ---- + void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags)); + int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file)); + int ExpandOldSetting __ARGS((int *num_file, char_u ***file)); ++ int langmap_adjust_mb __ARGS((int c)); + int has_format_option __ARGS((int x)); + int shortmess __ARGS((int x)); + void vimrc_found __ARGS((char_u *fname, char_u *envname)); +*** ../vim-7.2.108/src/window.c Fri Nov 28 21:26:50 2008 +--- src/window.c Sat Feb 21 19:55:25 2009 +*************** +*** 594,602 **** + ++allow_keys; /* no mapping for xchar, but allow key codes */ + if (xchar == NUL) + xchar = plain_vgetc(); +- #ifdef FEAT_LANGMAP + LANGMAP_ADJUST(xchar, TRUE); +- #endif + --no_mapping; + --allow_keys; + #ifdef FEAT_CMDL_INFO +--- 594,600 ---- +*** ../vim-7.2.108/src/version.c Wed Feb 11 22:47:32 2009 +--- src/version.c Sat Feb 21 19:34:28 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 109, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +99. The hum of a cooling fan and the click of keys is comforting to you. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.110 b/source/ap/vim/patches/7.2.110 new file mode 100644 index 000000000..4594e78c3 --- /dev/null +++ b/source/ap/vim/patches/7.2.110 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.110 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.110 +Problem: Compiler warning for unused variable. +Solution: Init the variable. +Files: src/ex_docmd.c + + +*** ../vim-7.2.109/src/ex_docmd.c Wed Jan 28 15:42:07 2009 +--- src/ex_docmd.c Tue Feb 17 03:47:13 2009 +*************** +*** 5916,5922 **** + char_u *q; + + char_u *start; +! char_u *end; + char_u *ksp; + size_t len, totlen; + +--- 5916,5922 ---- + char_u *q; + + char_u *start; +! char_u *end = NULL; + char_u *ksp; + size_t len, totlen; + +*** ../vim-7.2.109/src/version.c Sat Feb 21 20:27:00 2009 +--- src/version.c Sat Feb 21 20:35:50 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 110, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +100. The most exciting sporting events you noticed during summer 1996 + was Netscape vs. Microsoft. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.111 b/source/ap/vim/patches/7.2.111 new file mode 100644 index 000000000..acc0be423 --- /dev/null +++ b/source/ap/vim/patches/7.2.111 @@ -0,0 +1,88 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.111 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.111 +Problem: When using Visual block mode with 'cursorcolumn' it's unclear what + is selected. +Solution: Don't use 'cursorcolumn' highlighting inside the Visual selection. + (idea by Dominique Pelle) +Files: src/screen.c + + +*** ../vim-7.2.110/src/screen.c Wed Oct 1 21:09:02 2008 +--- src/screen.c Sat Feb 21 21:04:19 2009 +*************** +*** 2596,2601 **** +--- 2596,2602 ---- + int noinvcur = FALSE; /* don't invert the cursor */ + #ifdef FEAT_VISUAL + pos_T *top, *bot; ++ int lnum_in_visual_area = FALSE; + #endif + pos_T pos; + long v; +*************** +*** 2792,2800 **** + top = &VIsual; + bot = &curwin->w_cursor; + } + if (VIsual_mode == Ctrl_V) /* block mode */ + { +! if (lnum >= top->lnum && lnum <= bot->lnum) + { + fromcol = wp->w_old_cursor_fcol; + tocol = wp->w_old_cursor_lcol; +--- 2793,2802 ---- + top = &VIsual; + bot = &curwin->w_cursor; + } ++ lnum_in_visual_area = (lnum >= top->lnum && lnum <= bot->lnum); + if (VIsual_mode == Ctrl_V) /* block mode */ + { +! if (lnum_in_visual_area) + { + fromcol = wp->w_old_cursor_fcol; + tocol = wp->w_old_cursor_lcol; +*************** +*** 4557,4563 **** + * highlight the cursor position itself. */ + if (wp->w_p_cuc && vcol == (long)wp->w_virtcol + && lnum != wp->w_cursor.lnum +! && draw_state == WL_LINE) + { + vcol_save_attr = char_attr; + char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC)); +--- 4560,4567 ---- + * highlight the cursor position itself. */ + if (wp->w_p_cuc && vcol == (long)wp->w_virtcol + && lnum != wp->w_cursor.lnum +! && draw_state == WL_LINE +! && !lnum_in_visual_area) + { + vcol_save_attr = char_attr; + char_attr = hl_combine_attr(char_attr, hl_attr(HLF_CUC)); +*** ../vim-7.2.110/src/version.c Sat Feb 21 20:36:30 2009 +--- src/version.c Sat Feb 21 21:08:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 111, + /**/ + +-- +Contrary to popular belief, Unix is user friendly. +It just happens to be selective about who it makes friends with. + -- Dave Parnas + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.112 b/source/ap/vim/patches/7.2.112 new file mode 100644 index 000000000..6611999e1 --- /dev/null +++ b/source/ap/vim/patches/7.2.112 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.112 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.112 +Problem: Cursor invisible in Visual mode when 'number' is set and cursor in + first column. (Matti Niemenmaa, Renato Alves) +Solution: Check that vcol_prev is smaller than vcol. +Files: src/screen.c + + +*** ../vim-7.2.111/src/screen.c Sat Feb 21 21:10:24 2009 +--- src/screen.c Sat Feb 21 21:04:19 2009 +*************** +*** 3422,3427 **** +--- 3422,3428 ---- + && (*mb_ptr2cells)(ptr) > 1) + #endif + || ((int)vcol_prev == fromcol_prev ++ && vcol_prev < vcol /* not at margin */ + && vcol < tocol)) + area_attr = attr; /* start highlighting */ + else if (area_attr != 0 +*** ../vim-7.2.111/src/version.c Sat Feb 21 21:10:24 2009 +--- src/version.c Sat Feb 21 21:20:51 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 112, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +102. When filling out your driver's license application, you give + your IP address. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.113 b/source/ap/vim/patches/7.2.113 new file mode 100644 index 000000000..f0e4ebf31 --- /dev/null +++ b/source/ap/vim/patches/7.2.113 @@ -0,0 +1,99 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.113 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.113 +Problem: Crash for substitute() call using submatch(1) while there is no + such submatch. (Yukihiro Nakadaira) +Solution: Also check the start of the submatch is set, it can be NULL when + an attempted match didn't work out. +Files: src/regexp.c + + +*** ../vim-7.2.112/src/regexp.c Fri Aug 8 13:45:31 2008 +--- src/regexp.c Sat Feb 21 21:46:49 2009 +*************** +*** 4532,4538 **** + cleanup_subexpr(); + if (!REG_MULTI) /* Single-line regexp */ + { +! if (reg_endp[no] == NULL) + { + /* Backref was not set: Match an empty string. */ + len = 0; +--- 4532,4538 ---- + cleanup_subexpr(); + if (!REG_MULTI) /* Single-line regexp */ + { +! if (reg_startp[no] == NULL || reg_endp[no] == NULL) + { + /* Backref was not set: Match an empty string. */ + len = 0; +*************** +*** 4548,4554 **** + } + else /* Multi-line regexp */ + { +! if (reg_endpos[no].lnum < 0) + { + /* Backref was not set: Match an empty string. */ + len = 0; +--- 4548,4554 ---- + } + else /* Multi-line regexp */ + { +! if (reg_startpos[no].lnum < 0 || reg_endpos[no].lnum < 0) + { + /* Backref was not set: Match an empty string. */ + len = 0; +*************** +*** 7279,7291 **** + } + else + { +! if (submatch_match->endp[no] == NULL) + retval = NULL; + else +- { +- s = submatch_match->startp[no]; + retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s)); +- } + } + + return retval; +--- 7279,7289 ---- + } + else + { +! s = submatch_match->startp[no]; +! if (s == NULL || submatch_match->endp[no] == NULL) + retval = NULL; + else + retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s)); + } + + return retval; +*** ../vim-7.2.112/src/version.c Sat Feb 21 21:22:44 2009 +--- src/version.c Sat Feb 21 22:01:56 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 113, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +103. When you find yourself in the "Computer" section of Barnes & Noble + enjoying yourself. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.114 b/source/ap/vim/patches/7.2.114 new file mode 100644 index 000000000..9742b52d7 --- /dev/null +++ b/source/ap/vim/patches/7.2.114 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.114 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.114 +Problem: Using wrong printf format. +Solution: Use "%ld" instead of "%d". (Dominique Pelle) +Files: src/netbeans.c + + +*** ../vim-7.2.113/src/netbeans.c Tue Jan 6 16:13:42 2009 +--- src/netbeans.c Tue Feb 17 03:21:33 2009 +*************** +*** 1924,1930 **** + vim_free(path); + if (bufp == NULL) + { +! nbdebug((" File %s not found in setBufferNumber\n", args)); + EMSG2("E642: File %s not found in setBufferNumber", args); + return FAIL; + } +--- 1924,1930 ---- + vim_free(path); + if (bufp == NULL) + { +! nbdebug((" File %s not found in setBufferNumber\n", args)); + EMSG2("E642: File %s not found in setBufferNumber", args); + return FAIL; + } +*************** +*** 2318,2324 **** + } + if (pos) + { +! coloncmd(":sign place %d line=%d name=%d buffer=%d", + serNum, pos->lnum, typeNum, buf->bufp->b_fnum); + if (typeNum == curPCtype) + coloncmd(":sign jump %d buffer=%d", serNum, +--- 2318,2324 ---- + } + if (pos) + { +! coloncmd(":sign place %d line=%ld name=%d buffer=%d", + serNum, pos->lnum, typeNum, buf->bufp->b_fnum); + if (typeNum == curPCtype) + coloncmd(":sign jump %d buffer=%d", serNum, +*************** +*** 2422,2428 **** + GUARDED) == 0) + { + coloncmd( +! ":sign place %d line=%d name=%d buffer=%d", + guardId++, lnum, GUARDED, + buf->bufp->b_fnum); + } +--- 2422,2428 ---- + GUARDED) == 0) + { + coloncmd( +! ":sign place %d line=%ld name=%d buffer=%d", + guardId++, lnum, GUARDED, + buf->bufp->b_fnum); + } +*** ../vim-7.2.113/src/version.c Sat Feb 21 22:03:06 2009 +--- src/version.c Sat Feb 21 22:11:21 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 114, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +104. When people ask about the Presidential Election you ask "Which country?" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.115 b/source/ap/vim/patches/7.2.115 new file mode 100644 index 000000000..b51a1f503 --- /dev/null +++ b/source/ap/vim/patches/7.2.115 @@ -0,0 +1,133 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.115 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.115 +Problem: Some debugging code is never used. +Solution: Remove nbtrace() and nbprt(). (Dominique Pelle) +Files: src/nbdebug.c, src/nbdebug.h + +*** ../vim-7.2.114/src/nbdebug.c Tue Jun 24 23:54:30 2008 +--- src/nbdebug.c Tue Feb 17 03:26:07 2009 +*************** +*** 33,39 **** + u_int nb_dlevel = 0; /* nb_debug verbosity level */ + + void nbdb(char *, ...); +- void nbtrace(char *, ...); + + static int lookup(char *); + #ifdef USE_NB_ERRORHANDLER +--- 33,38 ---- +*************** +*** 100,124 **** + } /* end nbdebug_log_init */ + + +- +- +- void +- nbtrace( +- char *fmt, +- ...) +- { +- va_list ap; +- +- if (nb_debug!= NULL && (nb_dlevel & (NB_TRACE | NB_TRACE_VERBOSE))) { +- va_start(ap, fmt); +- vfprintf(nb_debug, fmt, ap); +- va_end(ap); +- fflush(nb_debug); +- } +- +- } /* end nbtrace */ +- +- + void + nbdbg( + char *fmt, +--- 99,104 ---- +*************** +*** 136,158 **** + } /* end nbdbg */ + + +- void +- nbprt( +- char *fmt, +- ...) +- { +- va_list ap; +- +- if (nb_debug != NULL && nb_dlevel & NB_PRINT) { +- va_start(ap, fmt); +- vfprintf(nb_debug, fmt, ap); +- va_end(ap); +- fflush(nb_debug); +- } +- +- } /* end nbprt */ +- +- + static int + lookup( + char *file) +--- 116,121 ---- +*** ../vim-7.2.114/src/nbdebug.h Wed Jun 25 00:47:21 2008 +--- src/nbdebug.h Tue Feb 17 03:26:38 2009 +*************** +*** 43,50 **** + + + void nbdbg(char *, ...); +- void nbprt(char *, ...); +- void nbtrace(char *, ...); + + void nbdebug_wait __ARGS((u_int wait_flags, char *wait_var, u_int wait_secs)); + void nbdebug_log_init __ARGS((char *log_var, char *level_var)); +--- 43,48 ---- +*************** +*** 70,88 **** + { + } + +- void +- nbprt( +- char *fmt, +- ...) +- { +- } +- +- void +- nbtrace( +- char *fmt, +- ...) +- { +- } +- + #endif /* NBDEBUG */ + #endif /* NBDEBUG_H */ +--- 68,72 ---- +*** ../vim-7.2.114/src/version.c Sat Feb 21 22:12:43 2009 +--- src/version.c Sat Feb 21 22:28:21 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 115, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +105. When someone asks you for your address, you tell them your URL. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.116 b/source/ap/vim/patches/7.2.116 new file mode 100644 index 000000000..edd2bd145 --- /dev/null +++ b/source/ap/vim/patches/7.2.116 @@ -0,0 +1,55 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.116 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.116 +Problem: Not all memory is freed when EXITFREE is defined. +Solution: Free allocated memory on exit. (Dominique Pelle) +Files: src/ex_docmd.c, src/gui_gtk_x11.c, src/misc2.c, src/search.c, + src/tag.c + + +*** ../vim-7.2.115/src/tag.c Tue Jan 13 17:27:18 2009 +--- src/tag.c Tue Feb 17 03:43:32 2009 +*************** +*** 2542,2547 **** +--- 2542,2556 ---- + { + ga_clear_strings(&tag_fnames); + do_tag(NULL, DT_FREE, 0, 0, 0); ++ tag_freematch(); ++ ++ # if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) ++ if (ptag_entry.tagname) ++ { ++ vim_free(ptag_entry.tagname); ++ ptag_entry.tagname = NULL; ++ } ++ # endif + } + #endif + +*** ../vim-7.2.115/src/version.c Sat Feb 21 22:29:12 2009 +--- src/version.c Sat Feb 21 22:56:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 116, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +106. When told to "go to your room" you inform your parents that you + can't...because you were kicked out and banned. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.117 b/source/ap/vim/patches/7.2.117 new file mode 100644 index 000000000..4c4e66a09 --- /dev/null +++ b/source/ap/vim/patches/7.2.117 @@ -0,0 +1,107 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.117 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.117 +Problem: Location list incorrectly labelled "Quickfix List". +Solution: Break out of both loops for finding window for location list + buffer. (Lech Lorens) +Files: src/buffer.c, src/quickfix.c, src/screen.c + + +*** ../vim-7.2.116/src/buffer.c Tue Jan 6 16:13:42 2009 +--- src/buffer.c Tue Feb 17 04:00:51 2009 +*************** +*** 5098,5104 **** + */ + FOR_ALL_TAB_WINDOWS(tp, win) + if (win->w_buffer == buf) +! break; + if (win != NULL && win->w_llist_ref != NULL) + return _("[Location List]"); + else +--- 5098,5105 ---- + */ + FOR_ALL_TAB_WINDOWS(tp, win) + if (win->w_buffer == buf) +! goto win_found; +! win_found: + if (win != NULL && win->w_llist_ref != NULL) + return _("[Location List]"); + else +*** ../vim-7.2.116/src/quickfix.c Sat Nov 15 14:10:23 2008 +--- src/quickfix.c Sat Feb 21 22:54:25 2009 +*************** +*** 1610,1619 **** + { + goto_tabpage_win(tp, wp); + usable_win = 1; +! break; + } + } + } + + /* + * If there is only one window and it is the quickfix window, create a +--- 1612,1622 ---- + { + goto_tabpage_win(tp, wp); + usable_win = 1; +! goto win_found; + } + } + } ++ win_found: + + /* + * If there is only one window and it is the quickfix window, create a +*** ../vim-7.2.116/src/screen.c Sat Feb 21 21:22:44 2009 +--- src/screen.c Sat Feb 21 21:04:19 2009 +*************** +*** 7452,7461 **** + { + outofmem = TRUE; + #ifdef FEAT_WINDOWS +! break; + #endif + } + } + + #ifdef FEAT_MBYTE + for (i = 0; i < p_mco; ++i) +--- 7452,7464 ---- + { + outofmem = TRUE; + #ifdef FEAT_WINDOWS +! goto give_up; + #endif + } + } ++ #ifdef FEAT_WINDOWS ++ give_up: ++ #endif + + #ifdef FEAT_MBYTE + for (i = 0; i < p_mco; ++i) +*** ../vim-7.2.116/src/version.c Sat Feb 21 22:57:10 2009 +--- src/version.c Sat Feb 21 23:58:24 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 117, + /**/ + +-- +Laughing helps. It's like jogging on the inside. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.118 b/source/ap/vim/patches/7.2.118 new file mode 100644 index 000000000..73b6cbbbc --- /dev/null +++ b/source/ap/vim/patches/7.2.118 @@ -0,0 +1,78 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.118 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.118 +Problem: <PageUp> at the more prompt only does half a page. +Solution: Make <PageUp> go up a whole page. Also make 'f' go a page + forward, but not quit the more prompt. (Markus Heidelberg) +Files: src/message.c + + +*** ../vim-7.2.117/src/message.c Wed Feb 11 18:46:48 2009 +--- src/message.c Fri Feb 20 05:20:15 2009 +*************** +*** 976,982 **** + } + } + else if (msg_scrolled > Rows - 2 +! && (c == 'j' || c == K_DOWN || c == 'd')) + c = K_IGNORE; + } + } while ((had_got_int && c == Ctrl_C) +--- 976,982 ---- + } + } + else if (msg_scrolled > Rows - 2 +! && (c == 'j' || c == K_DOWN || c == 'd' || c == 'f')) + c = K_IGNORE; + } + } while ((had_got_int && c == Ctrl_C) +*************** +*** 2504,2510 **** + break; + + case 'u': /* Up half a page */ +- case K_PAGEUP: + scroll = -(Rows / 2); + break; + +--- 2504,2509 ---- +*************** +*** 2513,2522 **** +--- 2512,2523 ---- + break; + + case 'b': /* one page back */ ++ case K_PAGEUP: + scroll = -(Rows - 1); + break; + + case ' ': /* one extra page */ ++ case 'f': + case K_PAGEDOWN: + case K_LEFTMOUSE: + scroll = Rows - 1; +*** ../vim-7.2.117/src/version.c Sun Feb 22 00:01:42 2009 +--- src/version.c Sun Feb 22 00:57:16 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 118, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +109. You actually read -- and enjoy -- lists like this. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.119 b/source/ap/vim/patches/7.2.119 new file mode 100644 index 000000000..f31f2e660 --- /dev/null +++ b/source/ap/vim/patches/7.2.119 @@ -0,0 +1,51 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.119 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.119 +Problem: Status line is redrawn too often. +Solution: Check ScreeenLinesUC[] properly. (Yukihiro Nakadaira) +Files: src/screen.c + + +*** ../vim-7.2.118/src/screen.c Sun Feb 22 00:01:42 2009 +--- src/screen.c Sun Feb 22 01:07:38 2009 +*************** +*** 6362,6368 **** + && c == 0x8e + && ScreenLines2[off] != ptr[1]) + || (enc_utf8 +! && (ScreenLinesUC[off] != (u8char_T)u8c + || screen_comp_differs(off, u8cc))) + #endif + || ScreenAttrs[off] != attr +--- 6362,6368 ---- + && c == 0x8e + && ScreenLines2[off] != ptr[1]) + || (enc_utf8 +! && (ScreenLinesUC[off] != (u8char_T)(c >= 0x80 ? u8c : 0) + || screen_comp_differs(off, u8cc))) + #endif + || ScreenAttrs[off] != attr +*** ../vim-7.2.118/src/version.c Sun Feb 22 00:58:03 2009 +--- src/version.c Sun Feb 22 01:09:54 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 119, + /**/ + +-- +In a world without walls and borders, who needs windows and gates? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.120 b/source/ap/vim/patches/7.2.120 new file mode 100644 index 000000000..cf687f3ed --- /dev/null +++ b/source/ap/vim/patches/7.2.120 @@ -0,0 +1,277 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.120 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.120 +Problem: When opening the quickfix window or splitting the window and + setting the location list, the location list is copied and then + deleted, which is inefficient. +Solution: Don't copy the location list when not needed. (Lech Lorens) +Files: src/quickfix.c, src/vim.h, src/window.c + + +*** ../vim-7.2.119/src/quickfix.c Sun Feb 22 00:01:42 2009 +--- src/quickfix.c Sat Feb 21 22:54:25 2009 +*************** +*** 1419,1424 **** +--- 1419,1425 ---- + int opened_window = FALSE; + win_T *win; + win_T *altwin; ++ int flags; + #endif + win_T *oldwin = curwin; + int print_message = TRUE; +*************** +*** 1531,1537 **** + if (qf_ptr->qf_type == 1 && (!curwin->w_buffer->b_help || cmdmod.tab != 0)) + { + win_T *wp; +- int n; + + if (cmdmod.tab != 0) + wp = NULL; +--- 1532,1537 ---- +*************** +*** 1547,1559 **** + * Split off help window; put it at far top if no position + * specified, the current window is vertically split and narrow. + */ +! n = WSP_HELP; + # ifdef FEAT_VERTSPLIT + if (cmdmod.split == 0 && curwin->w_width != Columns + && curwin->w_width < 80) +! n |= WSP_TOP; + # endif +! if (win_split(0, n) == FAIL) + goto theend; + opened_window = TRUE; /* close it when fail */ + +--- 1547,1562 ---- + * Split off help window; put it at far top if no position + * specified, the current window is vertically split and narrow. + */ +! flags = WSP_HELP; + # ifdef FEAT_VERTSPLIT + if (cmdmod.split == 0 && curwin->w_width != Columns + && curwin->w_width < 80) +! flags |= WSP_TOP; + # endif +! if (qi != &ql_info) +! flags |= WSP_NEWLOC; /* don't copy the location list */ +! +! if (win_split(0, flags) == FAIL) + goto theend; + opened_window = TRUE; /* close it when fail */ + +*************** +*** 1563,1569 **** + if (qi != &ql_info) /* not a quickfix list */ + { + /* The new window should use the supplied location list */ +- qf_free_all(curwin); + curwin->w_llist = qi; + qi->qf_refcount++; + } +--- 1566,1571 ---- +*************** +*** 1624,1630 **** + { + ll_ref = curwin->w_llist_ref; + +! if (win_split(0, WSP_ABOVE) == FAIL) + goto failed; /* not enough room for window */ + opened_window = TRUE; /* close it when fail */ + p_swb = empty_option; /* don't split again */ +--- 1626,1635 ---- + { + ll_ref = curwin->w_llist_ref; + +! flags = WSP_ABOVE; +! if (ll_ref != NULL) +! flags |= WSP_NEWLOC; +! if (win_split(0, flags) == FAIL) + goto failed; /* not enough room for window */ + opened_window = TRUE; /* close it when fail */ + p_swb = empty_option; /* don't split again */ +*************** +*** 1636,1642 **** + { + /* The new window should use the location list from the + * location list window */ +- qf_free_all(curwin); + curwin->w_llist = ll_ref; + ll_ref->qf_refcount++; + } +--- 1641,1646 ---- +*************** +*** 2311,2325 **** + if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow) + /* Create the new window at the very bottom. */ + win_goto(lastwin); +! if (win_split(height, WSP_BELOW) == FAIL) + return; /* not enough room for window */ + #ifdef FEAT_SCROLLBIND + curwin->w_p_scb = FALSE; + #endif + +- /* Remove the location list for the quickfix window */ +- qf_free_all(curwin); +- + if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) + { + /* +--- 2315,2326 ---- + if (eap->cmdidx == CMD_copen || eap->cmdidx == CMD_cwindow) + /* Create the new window at the very bottom. */ + win_goto(lastwin); +! if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL) + return; /* not enough room for window */ + #ifdef FEAT_SCROLLBIND + curwin->w_p_scb = FALSE; + #endif + + if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) + { + /* +*** ../vim-7.2.119/src/vim.h Thu Nov 20 14:11:47 2008 +--- src/vim.h Sat Feb 21 22:53:03 2009 +*************** +*** 1057,1062 **** +--- 1057,1063 ---- + #define WSP_HELP 16 /* creating the help window */ + #define WSP_BELOW 32 /* put new window below/right */ + #define WSP_ABOVE 64 /* put new window above/left */ ++ #define WSP_NEWLOC 128 /* don't copy location list */ + + /* + * arguments for gui_set_shellsize() +*** ../vim-7.2.119/src/window.c Sat Feb 21 20:27:00 2009 +--- src/window.c Sat Feb 21 23:56:41 2009 +*************** +*** 12,18 **** + static int path_is_url __ARGS((char_u *p)); + #if defined(FEAT_WINDOWS) || defined(PROTO) + static int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir)); +! static void win_init __ARGS((win_T *newp, win_T *oldp)); + static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col)); + static void frame_setheight __ARGS((frame_T *curfrp, int height)); + #ifdef FEAT_VERTSPLIT +--- 12,18 ---- + static int path_is_url __ARGS((char_u *p)); + #if defined(FEAT_WINDOWS) || defined(PROTO) + static int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir)); +! static void win_init __ARGS((win_T *newp, win_T *oldp, int flags)); + static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col)); + static void frame_setheight __ARGS((frame_T *curfrp, int height)); + #ifdef FEAT_VERTSPLIT +*************** +*** 911,917 **** + return FAIL; + + /* make the contents of the new window the same as the current one */ +! win_init(wp, curwin); + } + + /* +--- 911,917 ---- + return FAIL; + + /* make the contents of the new window the same as the current one */ +! win_init(wp, curwin, flags); + } + + /* +*************** +*** 1160,1170 **** + * Initialize window "newp" from window "oldp". + * Used when splitting a window and when creating a new tab page. + * The windows will both edit the same buffer. + */ + static void +! win_init(newp, oldp) + win_T *newp; + win_T *oldp; + { + int i; + +--- 1160,1174 ---- + * Initialize window "newp" from window "oldp". + * Used when splitting a window and when creating a new tab page. + * The windows will both edit the same buffer. ++ * WSP_NEWLOC may be specified in flags to prevent the location list from ++ * being copied. + */ ++ /*ARGSUSED*/ + static void +! win_init(newp, oldp, flags) + win_T *newp; + win_T *oldp; ++ int flags; + { + int i; + +*************** +*** 1189,1195 **** + copy_jumplist(oldp, newp); + #endif + #ifdef FEAT_QUICKFIX +! copy_loclist(oldp, newp); + #endif + if (oldp->w_localdir != NULL) + newp->w_localdir = vim_strsave(oldp->w_localdir); +--- 1193,1206 ---- + copy_jumplist(oldp, newp); + #endif + #ifdef FEAT_QUICKFIX +! if (flags & WSP_NEWLOC) +! { +! /* Don't copy the location list. */ +! newp->w_llist = NULL; +! newp->w_llist_ref = NULL; +! } +! else +! copy_loclist(oldp, newp); + #endif + if (oldp->w_localdir != NULL) + newp->w_localdir = vim_strsave(oldp->w_localdir); +*************** +*** 3219,3225 **** + else + { + /* First window in new tab page, initialize it from "oldwin". */ +! win_init(curwin, oldwin); + + # ifdef FEAT_SCROLLBIND + /* We don't want scroll-binding in the first window. */ +--- 3230,3236 ---- + else + { + /* First window in new tab page, initialize it from "oldwin". */ +! win_init(curwin, oldwin, 0); + + # ifdef FEAT_SCROLLBIND + /* We don't want scroll-binding in the first window. */ +*** ../vim-7.2.119/src/version.c Sun Feb 22 01:13:45 2009 +--- src/version.c Sun Feb 22 02:32:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 120, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +110. You actually volunteer to become your employer's webmaster. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.121 b/source/ap/vim/patches/7.2.121 new file mode 100644 index 000000000..ea5306f70 --- /dev/null +++ b/source/ap/vim/patches/7.2.121 @@ -0,0 +1,180 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.121 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.121 +Problem: In gvim "!grep a *.c" spews out a lot of text that can't be + stopped with CTRL-C. +Solution: When looping to read and show text, do check for typed characters + every two seconds. +Files: src/os_unix.c + + +*** ../vim-7.2.120/src/os_unix.c Wed Feb 4 14:18:44 2009 +--- src/os_unix.c Sun Feb 22 00:54:05 2009 +*************** +*** 4092,4097 **** +--- 4092,4100 ---- + int fromshell_fd; + garray_T ga; + int noread_cnt; ++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) ++ struct timeval start_tv; ++ # endif + + # ifdef FEAT_GUI + if (pty_master_fd >= 0) +*************** +*** 4201,4207 **** + ga_init2(&ga, 1, BUFLEN); + + noread_cnt = 0; +! + for (;;) + { + /* +--- 4204,4212 ---- + ga_init2(&ga, 1, BUFLEN); + + noread_cnt = 0; +! # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) +! gettimeofday(&start_tv, NULL); +! # endif + for (;;) + { + /* +*************** +*** 4214,4238 **** + * that a typed password is echoed for ssh or gpg command. + * Don't get characters when the child has already + * finished (wait_pid == 0). +- * Don't get extra characters when we already have one. + * Don't read characters unless we didn't get output for a +! * while, avoids that ":r !ls" eats typeahead. + */ + len = 0; + if (!(options & SHELL_EXPAND) + && ((options & + (SHELL_READ|SHELL_WRITE|SHELL_COOKED)) + != (SHELL_READ|SHELL_WRITE|SHELL_COOKED) +! #ifdef FEAT_GUI + || gui.in_use +! #endif + ) + && wait_pid == 0 +! && (ta_len > 0 +! || (noread_cnt > 4 +! && (len = ui_inchar(ta_buf, +! BUFLEN, 10L, 0)) > 0))) + { + /* + * For pipes: + * Check for CTRL-C: send interrupt signal to child. +--- 4219,4252 ---- + * that a typed password is echoed for ssh or gpg command. + * Don't get characters when the child has already + * finished (wait_pid == 0). + * Don't read characters unless we didn't get output for a +! * while (noread_cnt > 4), avoids that ":r !ls" eats +! * typeahead. + */ + len = 0; + if (!(options & SHELL_EXPAND) + && ((options & + (SHELL_READ|SHELL_WRITE|SHELL_COOKED)) + != (SHELL_READ|SHELL_WRITE|SHELL_COOKED) +! # ifdef FEAT_GUI + || gui.in_use +! # endif + ) + && wait_pid == 0 +! && (ta_len > 0 || noread_cnt > 4)) + { ++ if (ta_len == 0) ++ { ++ /* Get extra characters when we don't have any. ++ * Reset the counter and timer. */ ++ noread_cnt = 0; ++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) ++ gettimeofday(&start_tv, NULL); ++ # endif ++ len = ui_inchar(ta_buf, BUFLEN, 10L, 0); ++ } ++ if (ta_len > 0 || len > 0) ++ { + /* + * For pipes: + * Check for CTRL-C: send interrupt signal to child. +*************** +*** 4334,4342 **** + { + ta_len -= len; + mch_memmove(ta_buf, ta_buf + len, ta_len); +- noread_cnt = 0; + } + } + } + + if (got_int) +--- 4348,4356 ---- + { + ta_len -= len; + mch_memmove(ta_buf, ta_buf + len, ta_len); + } + } ++ } + } + + if (got_int) +*************** +*** 4444,4449 **** +--- 4458,4482 ---- + out_flush(); + if (got_int) + break; ++ ++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H) ++ { ++ struct timeval now_tv; ++ long msec; ++ ++ /* Avoid that we keep looping here without ++ * checking for a CTRL-C for a long time. Don't ++ * break out too often to avoid losing typeahead. */ ++ gettimeofday(&now_tv, NULL); ++ msec = (now_tv.tv_sec - start_tv.tv_sec) * 1000L ++ + (now_tv.tv_usec - start_tv.tv_usec) / 1000L; ++ if (msec > 2000) ++ { ++ noread_cnt = 5; ++ break; ++ } ++ } ++ # endif + } + + /* If we already detected the child has finished break the +*** ../vim-7.2.120/src/version.c Sun Feb 22 02:36:36 2009 +--- src/version.c Sun Feb 22 02:48:03 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 121, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +111. You and your friends get together regularly on IRC, even though + all of you live in the same city. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.122 b/source/ap/vim/patches/7.2.122 new file mode 100644 index 000000000..18f69898b --- /dev/null +++ b/source/ap/vim/patches/7.2.122 @@ -0,0 +1,80 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.122 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.122 +Problem: Invalid memory access when the VimResized autocommand changes + 'columns' and/or 'lines'. +Solution: After VimResized check for changed values. (Dominique Pelle) +Files: src/screen.c + + +*** ../vim-7.2.121/src/screen.c Sun Feb 22 01:13:45 2009 +--- src/screen.c Sun Feb 22 01:07:38 2009 +*************** +*** 7368,7374 **** +--- 7368,7378 ---- + #endif + static int entered = FALSE; /* avoid recursiveness */ + static int done_outofmem_msg = FALSE; /* did outofmem message */ ++ #ifdef FEAT_AUTOCMD ++ int retry_count = 0; + ++ retry: ++ #endif + /* + * Allocation of the screen buffers is done only when the size changes and + * when Rows and Columns have been set and we have started doing full +*************** +*** 7643,7650 **** + --RedrawingDisabled; + + #ifdef FEAT_AUTOCMD +! if (starting == 0) + apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf); + #endif + } + +--- 7647,7663 ---- + --RedrawingDisabled; + + #ifdef FEAT_AUTOCMD +! /* +! * Do not apply autocommands more than 3 times to avoid an endless loop +! * in case applying autocommands always changes Rows or Columns. +! */ +! if (starting == 0 && ++retry_count <= 3) +! { + apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf); ++ /* In rare cases, autocommands may have altered Rows or Columns, ++ * jump back to check if we need to allocate the screen again. */ ++ goto retry; ++ } + #endif + } + +*** ../vim-7.2.121/src/version.c Sun Feb 22 02:51:37 2009 +--- src/version.c Sun Feb 22 21:11:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 122, + /**/ + +-- +FIXME and XXX are two common keywords used to mark broken or incomplete code +not only since XXX as a sex reference would grab everbodys attention but +simply due to the fact that Vim would highlight these words. + -- Hendrik Scholz + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.123 b/source/ap/vim/patches/7.2.123 new file mode 100644 index 000000000..4cf9b810b --- /dev/null +++ b/source/ap/vim/patches/7.2.123 @@ -0,0 +1,50 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.123 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.123 +Problem: Typing 'q' at more prompt for ":map" output still displays another + line, causing another more prompt. (Markus Heidelberg) +Solution: Quit listing maps when 'q' typed. +Files: src/getchar.c + + +*** ../vim-7.2.122/src/getchar.c Fri Nov 28 12:05:07 2008 +--- src/getchar.c Sun Feb 22 23:10:45 2009 +*************** +*** 3816,3822 **** +--- 3816,3826 ---- + int len = 1; + + if (msg_didout || msg_silent != 0) ++ { + msg_putchar('\n'); ++ if (got_int) /* 'q' typed at MORE prompt */ ++ return; ++ } + if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE) + msg_putchar('!'); /* :map! */ + else if (mp->m_mode & INSERT) +*** ../vim-7.2.122/src/version.c Sun Feb 22 21:12:22 2009 +--- src/version.c Sun Feb 22 23:16:29 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 123, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +120. You ask a friend, "What's that big shiny thing?" He says, "It's the sun." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.124 b/source/ap/vim/patches/7.2.124 new file mode 100644 index 000000000..eca6bec1e --- /dev/null +++ b/source/ap/vim/patches/7.2.124 @@ -0,0 +1,122 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.124 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.124 +Problem: Typing 'q' at more prompt for ":tselect" output still displays + more lines, causing another more prompt. (Markus Heidelberg) +Solution: Quit listing tags when 'q' typed. +Files: src/tag.c + + +*** ../vim-7.2.123/src/tag.c Sat Feb 21 22:57:10 2009 +--- src/tag.c Mon Feb 23 00:07:24 2009 +*************** +*** 618,624 **** + taglen_advance(taglen); + MSG_PUTS_ATTR(_("file\n"), hl_attr(HLF_T)); + +! for (i = 0; i < num_matches; ++i) + { + parse_match(matches[i], &tagp); + if (!new_tag && ( +--- 618,624 ---- + taglen_advance(taglen); + MSG_PUTS_ATTR(_("file\n"), hl_attr(HLF_T)); + +! for (i = 0; i < num_matches && !got_int; ++i) + { + parse_match(matches[i], &tagp); + if (!new_tag && ( +*************** +*** 655,660 **** +--- 655,662 ---- + } + if (msg_col > 0) + msg_putchar('\n'); ++ if (got_int) ++ break; + msg_advance(15); + + /* print any extra fields */ +*************** +*** 689,694 **** +--- 691,698 ---- + if (msg_col + ptr2cells(p) >= Columns) + { + msg_putchar('\n'); ++ if (got_int) ++ break; + msg_advance(15); + } + p = msg_outtrans_one(p, attr); +*************** +*** 704,709 **** +--- 708,715 ---- + if (msg_col > 15) + { + msg_putchar('\n'); ++ if (got_int) ++ break; + msg_advance(15); + } + } +*************** +*** 734,739 **** +--- 740,747 ---- + { + if (msg_col + (*p == TAB ? 1 : ptr2cells(p)) > Columns) + msg_putchar('\n'); ++ if (got_int) ++ break; + msg_advance(15); + + /* skip backslash used for escaping command char */ +*************** +*** 760,771 **** + if (msg_col) + msg_putchar('\n'); + ui_breakcheck(); +- if (got_int) +- { +- got_int = FALSE; /* only stop the listing */ +- break; +- } + } + ask_for_selection = TRUE; + } + #if defined(FEAT_QUICKFIX) && defined(FEAT_EVAL) +--- 768,776 ---- + if (msg_col) + msg_putchar('\n'); + ui_breakcheck(); + } ++ if (got_int) ++ got_int = FALSE; /* only stop the listing */ + ask_for_selection = TRUE; + } + #if defined(FEAT_QUICKFIX) && defined(FEAT_EVAL) +*** ../vim-7.2.123/src/version.c Sun Feb 22 23:42:08 2009 +--- src/version.c Mon Feb 23 00:51:57 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 124, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +123. You ask the car dealer to install an extra cigarette lighter + on your new car to power your notebook. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.125 b/source/ap/vim/patches/7.2.125 new file mode 100644 index 000000000..460bdea58 --- /dev/null +++ b/source/ap/vim/patches/7.2.125 @@ -0,0 +1,161 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.125 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.125 +Problem: Leaking memory when reading XPM bitmap for a sign. +Solution: Don't allocate the memory twice. (Dominique Pelle) +Files: src/gui_x11.c + + +*** ../vim-7.2.124/src/gui_x11.c Wed Nov 12 13:07:48 2008 +--- src/gui_x11.c Sun Feb 22 21:58:19 2009 +*************** +*** 1587,1592 **** +--- 1587,1594 ---- + XtCloseDisplay(gui.dpy); + gui.dpy = NULL; + vimShell = (Widget)0; ++ vim_free(gui_argv); ++ gui_argv = NULL; + } + + /* +*************** +*** 1761,1766 **** +--- 1763,1770 ---- + * says that this isn't needed when exiting, so just skip it. */ + XtCloseDisplay(gui.dpy); + #endif ++ vim_free(gui_argv); ++ gui_argv = NULL; + } + + /* +*************** +*** 3439,3485 **** + char_u *signfile; + { + XpmAttributes attrs; +! XImage *sign; + int status; + + /* + * Setup the color substitution table. + */ +- sign = NULL; + if (signfile[0] != NUL && signfile[0] != '-') + { +! sign = (XImage *)alloc(sizeof(XImage)); +! if (sign != NULL) + { +! XpmColorSymbol color[5] = +! { +! {"none", NULL, 0}, +! {"iconColor1", NULL, 0}, +! {"bottomShadowColor", NULL, 0}, +! {"topShadowColor", NULL, 0}, +! {"selectColor", NULL, 0} +! }; +! attrs.valuemask = XpmColorSymbols; +! attrs.numsymbols = 2; +! attrs.colorsymbols = color; +! attrs.colorsymbols[0].pixel = gui.back_pixel; +! attrs.colorsymbols[1].pixel = gui.norm_pixel; +! status = XpmReadFileToImage(gui.dpy, (char *)signfile, + &sign, NULL, &attrs); +! +! if (status == 0) +! { +! /* Sign width is fixed at two columns now. +! if (sign->width > gui.sign_width) +! gui.sign_width = sign->width + 8; */ +! } +! else +! { +! vim_free(sign); +! sign = NULL; +! EMSG(_(e_signdata)); +! } + } + } + + return (void *)sign; +--- 3443,3479 ---- + char_u *signfile; + { + XpmAttributes attrs; +! XImage *sign = NULL; + int status; + + /* + * Setup the color substitution table. + */ + if (signfile[0] != NUL && signfile[0] != '-') + { +! XpmColorSymbol color[5] = + { +! {"none", NULL, 0}, +! {"iconColor1", NULL, 0}, +! {"bottomShadowColor", NULL, 0}, +! {"topShadowColor", NULL, 0}, +! {"selectColor", NULL, 0} +! }; +! attrs.valuemask = XpmColorSymbols; +! attrs.numsymbols = 2; +! attrs.colorsymbols = color; +! attrs.colorsymbols[0].pixel = gui.back_pixel; +! attrs.colorsymbols[1].pixel = gui.norm_pixel; +! status = XpmReadFileToImage(gui.dpy, (char *)signfile, + &sign, NULL, &attrs); +! if (status == 0) +! { +! /* Sign width is fixed at two columns now. +! if (sign->width > gui.sign_width) +! gui.sign_width = sign->width + 8; */ + } ++ else ++ EMSG(_(e_signdata)); + } + + return (void *)sign; +*************** +*** 3489,3496 **** + gui_mch_destroy_sign(sign) + void *sign; + { +! XFree(((XImage *)sign)->data); +! vim_free(sign); + } + #endif + +--- 3483,3489 ---- + gui_mch_destroy_sign(sign) + void *sign; + { +! XDestroyImage((XImage*)sign); + } + #endif + +*** ../vim-7.2.124/src/version.c Mon Feb 23 00:53:35 2009 +--- src/version.c Tue Feb 24 04:09:33 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 125, + /**/ + +-- +I have a watch cat! Just break in and she'll watch. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.126 b/source/ap/vim/patches/7.2.126 new file mode 100644 index 000000000..fe2dd6576 --- /dev/null +++ b/source/ap/vim/patches/7.2.126 @@ -0,0 +1,174 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.126 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.126 +Problem: When EXITFREE is defined signs are not freed. +Solution: Free all signs on exit. Also free keymaps. (Dominique Pelle) +Files: src/misc2.c, src/ex_cmds.c, src/proto/ex_cmds.pro + + +*** ../vim-7.2.125/src/misc2.c Thu Jan 22 21:31:24 2009 +--- src/misc2.c Sun Feb 22 22:04:53 2009 +*************** +*** 1010,1015 **** +--- 1010,1018 ---- + # if defined(FEAT_PROFILE) + do_cmdline_cmd((char_u *)"profdel *"); + # endif ++ # if defined(FEAT_KEYMAP) ++ do_cmdline_cmd((char_u *)"set keymap="); ++ #endif + + # ifdef FEAT_TITLE + free_titles(); +*************** +*** 1034,1039 **** +--- 1037,1045 ---- + free_regexp_stuff(); + free_tag_stuff(); + free_cd_dir(); ++ # ifdef FEAT_SIGNS ++ free_signs(); ++ # endif + # ifdef FEAT_EVAL + set_expr_line(NULL); + # endif +*** ../vim-7.2.125/src/ex_cmds.c Wed Feb 11 16:02:29 2009 +--- src/ex_cmds.c Sun Feb 22 22:07:08 2009 +*************** +*** 6541,6546 **** +--- 6541,6547 ---- + static int last_sign_typenr = MAX_TYPENR; /* is decremented */ + + static void sign_list_defined __ARGS((sign_T *sp)); ++ static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev)); + + /* + * ":sign" command +*************** +*** 6749,6772 **** + /* ":sign list {name}" */ + sign_list_defined(sp); + else +- { + /* ":sign undefine {name}" */ +! vim_free(sp->sn_name); +! vim_free(sp->sn_icon); +! #ifdef FEAT_SIGN_ICONS +! if (sp->sn_image != NULL) +! { +! out_flush(); +! gui_mch_destroy_sign(sp->sn_image); +! } +! #endif +! vim_free(sp->sn_text); +! if (sp_prev == NULL) +! first_sign = sp->sn_next; +! else +! sp_prev->sn_next = sp->sn_next; +! vim_free(sp); +! } + } + } + else +--- 6750,6757 ---- + /* ":sign list {name}" */ + sign_list_defined(sp); + else + /* ":sign undefine {name}" */ +! sign_undefine(sp, sp_prev); + } + } + else +*************** +*** 7015,7020 **** +--- 7000,7030 ---- + } + + /* ++ * Undefine a sign and free its memory. ++ */ ++ static void ++ sign_undefine(sp, sp_prev) ++ sign_T *sp; ++ sign_T *sp_prev; ++ { ++ vim_free(sp->sn_name); ++ vim_free(sp->sn_icon); ++ #ifdef FEAT_SIGN_ICONS ++ if (sp->sn_image != NULL) ++ { ++ out_flush(); ++ gui_mch_destroy_sign(sp->sn_image); ++ } ++ #endif ++ vim_free(sp->sn_text); ++ if (sp_prev == NULL) ++ first_sign = sp->sn_next; ++ else ++ sp_prev->sn_next = sp->sn_next; ++ vim_free(sp); ++ } ++ ++ /* + * Get highlighting attribute for sign "typenr". + * If "line" is TRUE: line highl, if FALSE: text highl. + */ +*************** +*** 7088,7093 **** +--- 7098,7115 ---- + return (char_u *)_("[Deleted]"); + } + ++ #if defined(EXITFREE) || defined(PROTO) ++ /* ++ * Undefine/free all signs. ++ */ ++ void ++ free_signs() ++ { ++ while (first_sign != NULL) ++ sign_undefine(first_sign, NULL); ++ } ++ #endif ++ + #endif + + #if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO) +*** ../vim-7.2.125/src/proto/ex_cmds.pro Sat Nov 15 14:10:23 2008 +--- src/proto/ex_cmds.pro Sun Feb 22 22:04:53 2009 +*************** +*** 40,45 **** +--- 40,46 ---- + int read_viminfo_sub_string __ARGS((vir_T *virp, int force)); + void write_viminfo_sub_string __ARGS((FILE *fp)); + void free_old_sub __ARGS((void)); ++ void free_signs __ARGS((void)); + int prepare_tagpreview __ARGS((int undo_sync)); + void ex_help __ARGS((exarg_T *eap)); + char_u *check_help_lang __ARGS((char_u *arg)); +*** ../vim-7.2.125/src/version.c Tue Feb 24 04:11:07 2009 +--- src/version.c Tue Feb 24 04:24:46 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 126, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +125. You begin to wonder how often it REALLY is necessary to get up + and shower or bathe. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.127 b/source/ap/vim/patches/7.2.127 new file mode 100644 index 000000000..662fe0fa1 --- /dev/null +++ b/source/ap/vim/patches/7.2.127 @@ -0,0 +1,59 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.127 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.127 +Problem: When listing mappings and a wrapping line causes the more prompt, + after typing 'q' there can be another more prompt. (Markus + Heidelberg) +Solution: Set "lines_left" to allow more lines to be displayed. +Files: src/message.c + + +*** ../vim-7.2.126/src/message.c Sun Feb 22 00:58:03 2009 +--- src/message.c Mon Feb 23 04:17:39 2009 +*************** +*** 2553,2559 **** + { + /* Jump to the choices of the dialog. */ + retval = TRUE; +- lines_left = Rows - 1; + } + else + #endif +--- 2553,2558 ---- +*************** +*** 2561,2566 **** +--- 2560,2568 ---- + got_int = TRUE; + quit_more = TRUE; + } ++ /* When there is some more output (wrapping line) display that ++ * without another prompt. */ ++ lines_left = Rows - 1; + break; + + #ifdef FEAT_CLIPBOARD +*** ../vim-7.2.126/src/version.c Tue Feb 24 04:28:40 2009 +--- src/version.c Tue Feb 24 04:35:38 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 127, + /**/ + +-- +The difference between theory and practice, is that in theory, there +is no difference between theory and practice. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.128 b/source/ap/vim/patches/7.2.128 new file mode 100644 index 000000000..0c17f1852 --- /dev/null +++ b/source/ap/vim/patches/7.2.128 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.128 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.128 (after 7.2.055) +Problem: Using ":lcd" makes session files not work. +Solution: Compare return value of mch_chdir() properly. (Andreas Bernauer) +Files: src/ex_docmd.c + + +*** ../vim-7.2.127/src/ex_docmd.c Sat Feb 21 20:36:30 2009 +--- src/ex_docmd.c Sun Mar 1 02:39:38 2009 +*************** +*** 8792,8798 **** + else if (*dirnow != NUL + && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) + { +! if (mch_chdir((char *)globaldir) == OK) + shorten_fnames(TRUE); + } + +--- 8799,8805 ---- + else if (*dirnow != NUL + && (ssop_flags & SSOP_CURDIR) && globaldir != NULL) + { +! if (mch_chdir((char *)globaldir) == 0) + shorten_fnames(TRUE); + } + +*** ../vim-7.2.127/src/version.c Tue Feb 24 04:36:50 2009 +--- src/version.c Sun Mar 1 02:42:47 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 128, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +138. You develop a liking for cold coffee. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.129 b/source/ap/vim/patches/7.2.129 new file mode 100644 index 000000000..ca756cfa9 --- /dev/null +++ b/source/ap/vim/patches/7.2.129 @@ -0,0 +1,73 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.129 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.129 +Problem: When opening a command window from input() it uses the search + history. +Solution: Use get_cmdline_type(). (James Vega) +Files: src/ex_getln.c + + +*** ../vim-7.2.128/src/ex_getln.c Fri Nov 28 10:59:57 2008 +--- src/ex_getln.c Mon Mar 2 00:53:39 2009 +*************** +*** 6047,6055 **** + # endif + return K_IGNORE; + } +! cmdwin_type = ccline.cmdfirstc; +! if (cmdwin_type == NUL) +! cmdwin_type = '-'; + + /* Create the command-line buffer empty. */ + (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL); +--- 6062,6068 ---- + # endif + return K_IGNORE; + } +! cmdwin_type = get_cmdline_type(); + + /* Create the command-line buffer empty. */ + (void)do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL); +*************** +*** 6073,6079 **** + /* Showing the prompt may have set need_wait_return, reset it. */ + need_wait_return = FALSE; + +! histtype = hist_char2type(ccline.cmdfirstc); + if (histtype == HIST_CMD || histtype == HIST_DEBUG) + { + if (p_wc == TAB) +--- 6086,6092 ---- + /* Showing the prompt may have set need_wait_return, reset it. */ + need_wait_return = FALSE; + +! histtype = hist_char2type(cmdwin_type); + if (histtype == HIST_CMD || histtype == HIST_DEBUG) + { + if (p_wc == TAB) +*** ../vim-7.2.128/src/version.c Sun Mar 1 02:43:50 2009 +--- src/version.c Mon Mar 2 02:10:11 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 129, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +146. You experience ACTUAL physical withdrawal symptoms when away + from your 'puter and the net. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.130 b/source/ap/vim/patches/7.2.130 new file mode 100644 index 000000000..8d6546820 --- /dev/null +++ b/source/ap/vim/patches/7.2.130 @@ -0,0 +1,413 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.130 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.130 +Problem: Vim may haing until CTRL-C is typed when using CTRL-Z. +Solution: Avoid using pause(). Also use "volatile" for variables used in + signal functions. (Dominique Pelle) +Files: src/auto/configure, src/configure.in, src/config.h.in, + src/globals.h, src/os_unix.c + + +*** ../vim-7.2.129/src/auto/configure Thu Nov 20 10:36:04 2008 +--- src/auto/configure Mon Mar 2 02:36:52 2009 +*************** +*** 11565,11570 **** +--- 11565,11631 ---- + + fi + ++ { $as_echo "$as_me:$LINENO: checking for working volatile" >&5 ++ $as_echo_n "checking for working volatile... " >&6; } ++ if test "${ac_cv_c_volatile+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++ else ++ cat >conftest.$ac_ext <<_ACEOF ++ /* confdefs.h. */ ++ _ACEOF ++ cat confdefs.h >>conftest.$ac_ext ++ cat >>conftest.$ac_ext <<_ACEOF ++ /* end confdefs.h. */ ++ ++ int ++ main () ++ { ++ ++ volatile int x; ++ int * volatile y = (int *) 0; ++ return !x && !y; ++ ; ++ return 0; ++ } ++ _ACEOF ++ rm -f conftest.$ac_objext ++ if { (ac_try="$ac_compile" ++ case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++ esac ++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++ $as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_c_volatile=yes ++ else ++ $as_echo "$as_me: failed program was:" >&5 ++ sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_c_volatile=no ++ fi ++ ++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ fi ++ { $as_echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5 ++ $as_echo "$ac_cv_c_volatile" >&6; } ++ if test $ac_cv_c_volatile = no; then ++ ++ cat >>confdefs.h <<\_ACEOF ++ #define volatile /**/ ++ _ACEOF ++ ++ fi ++ + { $as_echo "$as_me:$LINENO: checking for mode_t" >&5 + $as_echo_n "checking for mode_t... " >&6; } + if test "${ac_cv_type_mode_t+set}" = set; then +*** ../vim-7.2.129/src/configure.in Thu Nov 20 10:36:04 2008 +--- src/configure.in Sun Feb 22 21:47:44 2009 +*************** +*** 2148,2153 **** +--- 2148,2154 ---- + dnl Checks for typedefs, structures, and compiler characteristics. + AC_PROG_GCC_TRADITIONAL + AC_C_CONST ++ AC_C_VOLATILE + AC_TYPE_MODE_T + AC_TYPE_OFF_T + AC_TYPE_PID_T +*** ../vim-7.2.129/src/config.h.in Tue Jun 24 23:47:46 2008 +--- src/config.h.in Mon Feb 23 00:13:17 2009 +*************** +*** 50,55 **** +--- 50,58 ---- + /* Define to empty if the keyword does not work. */ + #undef const + ++ /* Define to empty if the keyword does not work. */ ++ #undef volatile ++ + /* Define to `int' if <sys/types.h> doesn't define. */ + #undef mode_t + +*** ../vim-7.2.129/src/globals.h Tue Jan 6 16:13:42 2009 +--- src/globals.h Mon Mar 2 02:40:16 2009 +*************** +*** 482,489 **** + /* + * While executing external commands or in Ex mode, should not insert GUI + * events in the input buffer: Set hold_gui_events to non-zero. + */ +! EXTERN int hold_gui_events INIT(= 0); + + /* + * When resizing the shell is postponed, remember the new size, and call +--- 482,491 ---- + /* + * While executing external commands or in Ex mode, should not insert GUI + * events in the input buffer: Set hold_gui_events to non-zero. ++ * ++ * volatile because it is used in signal handler sig_sysmouse(). + */ +! EXTERN volatile int hold_gui_events INIT(= 0); + + /* + * When resizing the shell is postponed, remember the new size, and call +*************** +*** 597,603 **** + EXTERN int really_exiting INIT(= FALSE); + /* TRUE when we are sure to exit, e.g., after + * a deadly signal */ +! EXTERN int full_screen INIT(= FALSE); + /* TRUE when doing full-screen output + * otherwise only writing some messages */ + +--- 599,606 ---- + EXTERN int really_exiting INIT(= FALSE); + /* TRUE when we are sure to exit, e.g., after + * a deadly signal */ +! /* volatile because it is used in signal handler deathtrap(). */ +! EXTERN volatile int full_screen INIT(= FALSE); + /* TRUE when doing full-screen output + * otherwise only writing some messages */ + +*************** +*** 739,748 **** + */ + EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */ + # ifdef SIGHASARG +! EXTERN int lc_signal; /* catched signal number, 0 when no was signal +! catched; used for mch_libcall() */ + # endif +! EXTERN int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */ + #endif + + #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT) +--- 747,758 ---- + */ + EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */ + # ifdef SIGHASARG +! /* volatile because it is used in signal handlers. */ +! EXTERN volatile int lc_signal; /* caught signal number, 0 when no was signal +! caught; used for mch_libcall() */ + # endif +! /* volatile because it is used in signal handler deathtrap(). */ +! EXTERN volatile int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */ + #endif + + #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT) +*************** +*** 986,992 **** + EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */ + EXTERN int read_cmd_fd INIT(= 0); /* fd to read commands from */ + +! EXTERN int got_int INIT(= FALSE); /* set to TRUE when interrupt + signal occurred */ + #ifdef USE_TERM_CONSOLE + EXTERN int term_console INIT(= FALSE); /* set to TRUE when console used */ +--- 996,1003 ---- + EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */ + EXTERN int read_cmd_fd INIT(= 0); /* fd to read commands from */ + +! /* volatile because it is used in signal handler catch_sigint(). */ +! EXTERN volatile int got_int INIT(= FALSE); /* set to TRUE when interrupt + signal occurred */ + #ifdef USE_TERM_CONSOLE + EXTERN int term_console INIT(= FALSE); /* set to TRUE when console used */ +*** ../vim-7.2.129/src/os_unix.c Sun Feb 22 02:51:37 2009 +--- src/os_unix.c Mon Mar 2 01:05:50 2009 +*************** +*** 181,187 **** + && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK) + # define SET_SIG_ALARM + static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG); +! static int sig_alarm_called; + #endif + static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG); + +--- 181,188 ---- + && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK) + # define SET_SIG_ALARM + static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG); +! /* volatile because it is used in signal handler sig_alarm(). */ +! static volatile int sig_alarm_called; + #endif + static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG); + +*************** +*** 201,213 **** + # define SIG_ERR ((RETSIGTYPE (*)())-1) + #endif + +! static int do_resize = FALSE; + #ifndef __EMX__ + static char_u *extra_shell_arg = NULL; + static int show_shell_mess = TRUE; + #endif +! static int deadly_signal = 0; /* The signal we caught */ +! static int in_mch_delay = FALSE; /* sleeping in mch_delay() */ + + static int curr_tmode = TMODE_COOK; /* contains current terminal mode */ + +--- 202,217 ---- + # define SIG_ERR ((RETSIGTYPE (*)())-1) + #endif + +! /* volatile because it is used in signal handler sig_winch(). */ +! static volatile int do_resize = FALSE; + #ifndef __EMX__ + static char_u *extra_shell_arg = NULL; + static int show_shell_mess = TRUE; + #endif +! /* volatile because it is used in signal handler deathtrap(). */ +! static volatile int deadly_signal = 0; /* The signal we caught */ +! /* volatile because it is used in signal handler deathtrap(). */ +! static volatile int in_mch_delay = FALSE; /* sleeping in mch_delay() */ + + static int curr_tmode = TMODE_COOK; /* contains current terminal mode */ + +*************** +*** 802,808 **** + #endif + + /* +! * We need correct potatotypes for a signal function, otherwise mean compilers + * will barf when the second argument to signal() is ``wrong''. + * Let me try it with a few tricky defines from my own osdef.h (jw). + */ +--- 806,812 ---- + #endif + + /* +! * We need correct prototypes for a signal function, otherwise mean compilers + * will barf when the second argument to signal() is ``wrong''. + * Let me try it with a few tricky defines from my own osdef.h (jw). + */ +*************** +*** 1068,1080 **** + SIGRETURN; + } + +! #ifdef _REENTRANT + /* + * On Solaris with multi-threading, suspending might not work immediately. + * Catch the SIGCONT signal, which will be used as an indication whether the + * suspending has been done or not. + */ +! static int sigcont_received; + static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG); + + /* +--- 1072,1089 ---- + SIGRETURN; + } + +! #if defined(_REENTRANT) && defined(SIGCONT) + /* + * On Solaris with multi-threading, suspending might not work immediately. + * Catch the SIGCONT signal, which will be used as an indication whether the + * suspending has been done or not. ++ * ++ * On Linux, signal is not always handled immediately either. ++ * See https://bugs.launchpad.net/bugs/291373 ++ * ++ * volatile because it is used in in signal handler sigcont_handler(). + */ +! static volatile int sigcont_received; + static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG); + + /* +*************** +*** 1118,1132 **** + } + # endif + +! # ifdef _REENTRANT + sigcont_received = FALSE; + # endif + kill(0, SIGTSTP); /* send ourselves a STOP signal */ +! # ifdef _REENTRANT +! /* When we didn't suspend immediately in the kill(), do it now. Happens +! * on multi-threaded Solaris. */ +! if (!sigcont_received) +! pause(); + # endif + + # ifdef FEAT_TITLE +--- 1127,1154 ---- + } + # endif + +! # if defined(_REENTRANT) && defined(SIGCONT) + sigcont_received = FALSE; + # endif + kill(0, SIGTSTP); /* send ourselves a STOP signal */ +! # if defined(_REENTRANT) && defined(SIGCONT) +! /* +! * Wait for the SIGCONT signal to be handled. It generally happens +! * immediately, but somehow not all the time. Do not call pause() +! * because there would be race condition which would hang Vim if +! * signal happened in between the test of sigcont_received and the +! * call to pause(). If signal is not yet received, call sleep(0) +! * to just yield CPU. Signal should then be received. If somehow +! * it's still not received, sleep 1, 2, 3 ms. Don't bother waiting +! * further if signal is not received after 1+2+3+4 ms (not expected +! * to happen). +! */ +! { +! long wait; +! for (wait = 0; !sigcont_received && wait <= 3L; wait++) +! /* Loop is not entered most of the time */ +! mch_delay(wait, FALSE); +! } + # endif + + # ifdef FEAT_TITLE +*************** +*** 1175,1181 **** + #ifdef SIGTSTP + signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); + #endif +! #ifdef _REENTRANT + signal(SIGCONT, sigcont_handler); + #endif + +--- 1197,1203 ---- + #ifdef SIGTSTP + signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); + #endif +! #if defined(_REENTRANT) && defined(SIGCONT) + signal(SIGCONT, sigcont_handler); + #endif + +*************** +*** 1234,1240 **** + reset_signals() + { + catch_signals(SIG_DFL, SIG_DFL); +! #ifdef _REENTRANT + /* SIGCONT isn't in the list, because its default action is ignore */ + signal(SIGCONT, SIG_DFL); + #endif +--- 1256,1262 ---- + reset_signals() + { + catch_signals(SIG_DFL, SIG_DFL); +! #if defined(_REENTRANT) && defined(SIGCONT) + /* SIGCONT isn't in the list, because its default action is ignore */ + signal(SIGCONT, SIG_DFL); + #endif +*************** +*** 5899,5905 **** +--- 5921,5929 ---- + * we are going to suspend or starting an external process + * so we shouldn't have problem with this + */ ++ # ifdef SIGTSTP + signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); ++ # endif + return 1; /* succeed */ + } + if (gpm_fd == -2) +*** ../vim-7.2.129/src/version.c Mon Mar 2 02:11:09 2009 +--- src/version.c Mon Mar 2 02:36:00 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 130, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +148. You find it easier to dial-up the National Weather Service + Weather/your_town/now.html than to simply look out the window. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.131 b/source/ap/vim/patches/7.2.131 new file mode 100644 index 000000000..fec2b5e15 --- /dev/null +++ b/source/ap/vim/patches/7.2.131 @@ -0,0 +1,83 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.131 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.131 +Problem: When 'keymap' is cleared may still use the cursor highlighting for + when it's enabled. +Solution: Reset 'iminsert' and 'imsearch'. (partly by Dominique Pelle) + Also avoid ":setlocal" for these options have a global effect. +Files: src/option.c + + +*** ../vim-7.2.130/src/option.c Sat Feb 21 20:27:00 2009 +--- src/option.c Wed Mar 4 04:09:51 2009 +*************** +*** 5797,5810 **** + /* load or unload key mapping tables */ + errmsg = keymap_init(); + +! /* When successfully installed a new keymap switch on using it. */ +! if (*curbuf->b_p_keymap != NUL && errmsg == NULL) + { +! curbuf->b_p_iminsert = B_IMODE_LMAP; +! if (curbuf->b_p_imsearch != B_IMODE_USE_INSERT) +! curbuf->b_p_imsearch = B_IMODE_LMAP; +! set_iminsert_global(); +! set_imsearch_global(); + # ifdef FEAT_WINDOWS + status_redraw_curbuf(); + # endif +--- 5797,5824 ---- + /* load or unload key mapping tables */ + errmsg = keymap_init(); + +! if (errmsg == NULL) + { +! if (*curbuf->b_p_keymap != NUL) +! { +! /* Installed a new keymap, switch on using it. */ +! curbuf->b_p_iminsert = B_IMODE_LMAP; +! if (curbuf->b_p_imsearch != B_IMODE_USE_INSERT) +! curbuf->b_p_imsearch = B_IMODE_LMAP; +! } +! else +! { +! /* Cleared the keymap, may reset 'iminsert' and 'imsearch'. */ +! if (curbuf->b_p_iminsert == B_IMODE_LMAP) +! curbuf->b_p_iminsert = B_IMODE_NONE; +! if (curbuf->b_p_imsearch == B_IMODE_LMAP) +! curbuf->b_p_imsearch = B_IMODE_USE_INSERT; +! } +! if ((opt_flags & OPT_LOCAL) == 0) +! { +! set_iminsert_global(); +! set_imsearch_global(); +! } + # ifdef FEAT_WINDOWS + status_redraw_curbuf(); + # endif +*** ../vim-7.2.130/src/version.c Mon Mar 2 02:44:54 2009 +--- src/version.c Wed Mar 4 04:10:32 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 131, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +157. You fum through a magazine, you first check to see if it has a web + address. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.132 b/source/ap/vim/patches/7.2.132 new file mode 100644 index 000000000..69e19ee45 --- /dev/null +++ b/source/ap/vim/patches/7.2.132 @@ -0,0 +1,268 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.132 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.132 +Problem: When changing directory during a SwapExists autocmd freed memory + may be accessed. (Dominique Pelle) +Solution: Add the allbuf_lock flag. +Files: src/ex_getln.c, src/globals.h, src/fileio.c, + src/proto/ex_getln.pro + + +*** ../vim-7.2.131/src/ex_getln.c Mon Mar 2 02:11:09 2009 +--- src/ex_getln.c Mon Mar 2 00:53:39 2009 +*************** +*** 2000,2007 **** + + #if defined(FEAT_AUTOCMD) || defined(PROTO) + /* +! * Check if "curbuf_lock" is set and return TRUE when it is and give an error +! * message. + */ + int + curbuf_locked() +--- 2000,2007 ---- + + #if defined(FEAT_AUTOCMD) || defined(PROTO) + /* +! * Check if "curbuf_lock" or "allbuf_lock" is set and return TRUE when it is +! * and give an error message. + */ + int + curbuf_locked() +*************** +*** 2011,2016 **** +--- 2011,2031 ---- + EMSG(_("E788: Not allowed to edit another buffer now")); + return TRUE; + } ++ return allbuf_locked(); ++ } ++ ++ /* ++ * Check if "allbuf_lock" is set and return TRUE when it is and give an error ++ * message. ++ */ ++ int ++ allbuf_locked() ++ { ++ if (allbuf_lock > 0) ++ { ++ EMSG(_("E811: Not allowed to change buffer information now")); ++ return TRUE; ++ } + return FALSE; + } + #endif +*** ../vim-7.2.131/src/globals.h Mon Mar 2 02:44:54 2009 +--- src/globals.h Mon Mar 2 02:40:16 2009 +*************** +*** 619,624 **** +--- 619,629 ---- + EXTERN int curbuf_lock INIT(= 0); + /* non-zero when the current buffer can't be + * changed. Used for FileChangedRO. */ ++ EXTERN int allbuf_lock INIT(= 0); ++ /* non-zero when no buffer name can be ++ * changed, no buffer can be deleted and ++ * current directory can't be changed. ++ * Used for SwapExists et al. */ + #endif + #ifdef FEAT_EVAL + # define HAVE_SANDBOX +*** ../vim-7.2.131/src/fileio.c Wed Dec 31 16:20:54 2008 +--- src/fileio.c Sun Mar 1 23:37:10 2009 +*************** +*** 69,75 **** + static int au_find_group __ARGS((char_u *name)); + + # define AUGROUP_DEFAULT -1 /* default autocmd group */ +! # define AUGROUP_ERROR -2 /* errornouse autocmd group */ + # define AUGROUP_ALL -3 /* all autocmd groups */ + #endif + +--- 69,75 ---- + static int au_find_group __ARGS((char_u *name)); + + # define AUGROUP_DEFAULT -1 /* default autocmd group */ +! # define AUGROUP_ERROR -2 /* erroneous autocmd group */ + # define AUGROUP_ALL -3 /* all autocmd groups */ + #endif + +*************** +*** 144,150 **** + # endif + #endif + static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf)); +! + + void + filemess(buf, name, s, attr) +--- 144,152 ---- + # endif + #endif + static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf)); +! #ifdef FEAT_AUTOCMD +! static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name"); +! #endif + + void + filemess(buf, name, s, attr) +*************** +*** 295,300 **** +--- 297,315 ---- + int conv_restlen = 0; /* nr of bytes in conv_rest[] */ + #endif + ++ #ifdef FEAT_AUTOCMD ++ /* Remember the initial values of curbuf, curbuf->b_ffname and ++ * curbuf->b_fname to detect whether they are altered as a result of ++ * executing nasty autocommands. Also check if "fname" and "sfname" ++ * point to one of these values. */ ++ buf_T *old_curbuf = curbuf; ++ char_u *old_b_ffname = curbuf->b_ffname; ++ char_u *old_b_fname = curbuf->b_fname; ++ int using_b_ffname = (fname == curbuf->b_ffname) ++ || (sfname == curbuf->b_ffname); ++ int using_b_fname = (fname == curbuf->b_fname) ++ || (sfname == curbuf->b_fname); ++ #endif + write_no_eol_lnum = 0; /* in case it was set by the previous read */ + + /* +*************** +*** 589,595 **** +--- 604,624 ---- + #ifdef FEAT_QUICKFIX + if (!bt_dontwrite(curbuf)) + #endif ++ { + check_need_swap(newfile); ++ #ifdef FEAT_AUTOCMD ++ /* SwapExists autocommand may mess things up */ ++ if (curbuf != old_curbuf ++ || (using_b_ffname ++ && (old_b_ffname != curbuf->b_ffname)) ++ || (using_b_fname ++ && (old_b_fname != curbuf->b_fname))) ++ { ++ EMSG(_(e_auchangedbuf)); ++ return FAIL; ++ } ++ #endif ++ } + if (dir_of_file_exists(fname)) + filemess(curbuf, sfname, (char_u *)_("[New File]"), 0); + else +*************** +*** 668,673 **** +--- 697,713 ---- + #endif + { + check_need_swap(newfile); ++ #ifdef FEAT_AUTOCMD ++ if (!read_stdin && (curbuf != old_curbuf ++ || (using_b_ffname && (old_b_ffname != curbuf->b_ffname)) ++ || (using_b_fname && (old_b_fname != curbuf->b_fname)))) ++ { ++ EMSG(_(e_auchangedbuf)); ++ if (!read_buffer) ++ close(fd); ++ return FAIL; ++ } ++ #endif + #ifdef UNIX + /* Set swap file protection bits after creating it. */ + if (swap_mode > 0 && curbuf->b_ml.ml_mfp->mf_fname != NULL) +*************** +*** 698,704 **** + { + int m = msg_scroll; + int n = msg_scrolled; +- buf_T *old_curbuf = curbuf; + + /* + * The file must be closed again, the autocommands may want to change +--- 738,743 ---- +*************** +*** 740,747 **** +--- 779,791 ---- + /* + * Don't allow the autocommands to change the current buffer. + * Try to re-open the file. ++ * ++ * Don't allow the autocommands to change the buffer name either ++ * (cd for example) if it invalidates fname or sfname. + */ + if (!read_stdin && (curbuf != old_curbuf ++ || (using_b_ffname && (old_b_ffname != curbuf->b_ffname)) ++ || (using_b_fname && (old_b_fname != curbuf->b_fname)) + || (fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0)) < 0)) + { + --no_wait_return; +*************** +*** 6320,6326 **** + + if (!stuff_empty() || global_busy || !typebuf_typed() + #ifdef FEAT_AUTOCMD +! || autocmd_busy || curbuf_lock > 0 + #endif + ) + need_check_timestamps = TRUE; /* check later */ +--- 6364,6370 ---- + + if (!stuff_empty() || global_busy || !typebuf_typed() + #ifdef FEAT_AUTOCMD +! || autocmd_busy || curbuf_lock > 0 || allbuf_lock > 0 + #endif + ) + need_check_timestamps = TRUE; /* check later */ +*************** +*** 6522,6529 **** +--- 6566,6575 ---- + set_vim_var_string(VV_FCS_REASON, (char_u *)reason, -1); + set_vim_var_string(VV_FCS_CHOICE, (char_u *)"", -1); + # endif ++ ++allbuf_lock; + n = apply_autocmds(EVENT_FILECHANGEDSHELL, + buf->b_fname, buf->b_fname, FALSE, buf); ++ --allbuf_lock; + busy = FALSE; + if (n) + { +*** ../vim-7.2.131/src/proto/ex_getln.pro Fri Nov 28 10:59:57 2008 +--- src/proto/ex_getln.pro Sun Mar 1 00:27:12 2009 +*************** +*** 4,9 **** +--- 4,10 ---- + int text_locked __ARGS((void)); + void text_locked_msg __ARGS((void)); + int curbuf_locked __ARGS((void)); ++ int allbuf_locked __ARGS((void)); + char_u *getexline __ARGS((int c, void *dummy, int indent)); + char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent)); + int cmdline_overstrike __ARGS((void)); +*** ../vim-7.2.131/src/version.c Wed Mar 4 04:11:56 2009 +--- src/version.c Thu Mar 5 03:08:54 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 132, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +168. You have your own domain name. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.133 b/source/ap/vim/patches/7.2.133 new file mode 100644 index 000000000..ffb19d71b --- /dev/null +++ b/source/ap/vim/patches/7.2.133 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.133 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.133 +Problem: ":diffoff!" changes settings in windows not in diff mode. +Solution: Only change settings in other windows when 'diff' is set, always + do it for the current window. (Lech Lorens) +Files: src/diff.c + + +*** ../vim-7.2.132/src/diff.c Thu Jan 22 20:48:07 2009 +--- src/diff.c Fri Mar 6 04:17:41 2009 +*************** +*** 1153,1159 **** + + for (wp = firstwin; wp != NULL; wp = wp->w_next) + { +! if (wp == curwin || eap->forceit) + { + /* Set 'diff', 'scrollbind' off and 'wrap' on. */ + wp->w_p_diff = FALSE; +--- 1153,1159 ---- + + for (wp = firstwin; wp != NULL; wp = wp->w_next) + { +! if (wp == curwin || (eap->forceit && wp->w_p_diff)) + { + /* Set 'diff', 'scrollbind' off and 'wrap' on. */ + wp->w_p_diff = FALSE; +*** ../vim-7.2.132/src/version.c Thu Mar 5 03:13:51 2009 +--- src/version.c Wed Mar 11 12:45:10 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 133, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +192. Your boss asks you to "go fer" coffee and you come up with 235 FTP sites. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.134 b/source/ap/vim/patches/7.2.134 new file mode 100644 index 000000000..fee2789a5 --- /dev/null +++ b/source/ap/vim/patches/7.2.134 @@ -0,0 +1,68 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.134 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.134 +Problem: Warning for discarding "const" from pointer. +Solution: Don't pass const pointer to mch_memmove(). +Files: src/fileio.c + + +*** ../vim-7.2.133/src/fileio.c Thu Mar 5 03:13:51 2009 +--- src/fileio.c Wed Mar 11 12:59:35 2009 +*************** +*** 5288,5300 **** + /* Convert with iconv(). */ + if (ip->bw_restlen > 0) + { + /* Need to concatenate the remainder of the previous call and + * the bytes of the current call. Use the end of the + * conversion buffer for this. */ + fromlen = len + ip->bw_restlen; +! from = (char *)ip->bw_conv_buf + ip->bw_conv_buflen - fromlen; +! mch_memmove((void *)from, ip->bw_rest, (size_t)ip->bw_restlen); +! mch_memmove((void *)(from + ip->bw_restlen), buf, (size_t)len); + tolen = ip->bw_conv_buflen - fromlen; + } + else +--- 5288,5303 ---- + /* Convert with iconv(). */ + if (ip->bw_restlen > 0) + { ++ char *fp; ++ + /* Need to concatenate the remainder of the previous call and + * the bytes of the current call. Use the end of the + * conversion buffer for this. */ + fromlen = len + ip->bw_restlen; +! fp = (char *)ip->bw_conv_buf + ip->bw_conv_buflen - fromlen; +! mch_memmove(fp, ip->bw_rest, (size_t)ip->bw_restlen); +! mch_memmove(fp + ip->bw_restlen, buf, (size_t)len); +! from = fp; + tolen = ip->bw_conv_buflen - fromlen; + } + else +*** ../vim-7.2.133/src/version.c Wed Mar 11 12:45:44 2009 +--- src/version.c Wed Mar 11 13:08:25 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 134, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +193. You ask your girlfriend to drive home so you can sit back with + your PDA and download the information to your laptop + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.135 b/source/ap/vim/patches/7.2.135 new file mode 100644 index 000000000..a58e6bb21 --- /dev/null +++ b/source/ap/vim/patches/7.2.135 @@ -0,0 +1,85 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.135 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.135 +Problem: Memory leak when redefining user command with complete argument. +Solution: Free the old complete argument. (Dominique Pelle) +Files: src/ex_docmd.c + + +*** ../vim-7.2.134/src/ex_docmd.c Sun Mar 1 02:43:50 2009 +--- src/ex_docmd.c Wed Mar 11 11:13:31 2009 +*************** +*** 5124,5130 **** + } + + vim_free(cmd->uc_rep); +! cmd->uc_rep = 0; + break; + } + +--- 5124,5134 ---- + } + + vim_free(cmd->uc_rep); +! cmd->uc_rep = NULL; +! #if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL) +! vim_free(cmd->uc_compl_arg); +! cmd->uc_compl_arg = NULL; +! #endif + break; + } + +*************** +*** 5941,5947 **** + for (;;) + { + p = cmd->uc_rep; /* source */ +! q = buf; /* destinateion */ + totlen = 0; + + for (;;) +--- 5945,5951 ---- + for (;;) + { + p = cmd->uc_rep; /* source */ +! q = buf; /* destination */ + totlen = 0; + + for (;;) +*************** +*** 7846,7851 **** +--- 7850,7858 ---- + { + vim_free(prev_dir); + prev_dir = NULL; ++ ++ vim_free(globaldir); ++ globaldir = NULL; + } + #endif + +*** ../vim-7.2.134/src/version.c Wed Mar 11 13:09:30 2009 +--- src/version.c Wed Mar 11 15:06:23 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 135, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +194. Your business cards contain your e-mail and home page address. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.136 b/source/ap/vim/patches/7.2.136 new file mode 100644 index 000000000..b0045eb9a --- /dev/null +++ b/source/ap/vim/patches/7.2.136 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.136 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.136 (after 7.2.132) +Problem: ":cd" is still possible in a SwapExists autocmd. +Solution: Check the allbuf_lock flag in ex_cd(). +Files: src/ex_docmd.c + + +*** ../vim-7.2.135/src/ex_docmd.c Wed Mar 11 15:09:07 2009 +--- src/ex_docmd.c Wed Mar 11 11:13:31 2009 +*************** +*** 7875,7880 **** +--- 7875,7884 ---- + else + #endif + { ++ #ifdef FEAT_AUTOCMD ++ if (allbuf_locked()) ++ return; ++ #endif + if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged() + && !eap->forceit) + { +*** ../vim-7.2.135/src/version.c Wed Mar 11 15:09:07 2009 +--- src/version.c Wed Mar 11 15:35:36 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 136, + /**/ + +-- +Press any key to continue, press any other key to quit. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.137 b/source/ap/vim/patches/7.2.137 new file mode 100644 index 000000000..706b046bb --- /dev/null +++ b/source/ap/vim/patches/7.2.137 @@ -0,0 +1,343 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.137 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Note: The special characters in the patch may cause problems. + +Patch 7.2.137 +Problem: When 'virtualedit' is set, a left shift of a blockwise selection + that starts and ends inside a tab shifts too much. (Helmut + Stiegler) +Solution: Redo the block left shift code. (Lech Lorens) +Files: src/ops.c, src/testdir/Makefile, src/testdir/test66.in, + src/testdir/test66.ok + + +*** ../vim-7.2.136/src/ops.c Wed Dec 3 13:38:00 2008 +--- src/ops.c Thu Mar 5 04:47:09 2009 +*************** +*** 72,82 **** + */ + struct block_def + { +! int startspaces; /* 'extra' cols of first char */ +! int endspaces; /* 'extra' cols of first char */ + int textlen; /* chars in block */ +! char_u *textstart; /* pointer to 1st char in block */ +! colnr_T textcol; /* cols of chars (at least part.) in block */ + colnr_T start_vcol; /* start col of 1st char wholly inside block */ + colnr_T end_vcol; /* start col of 1st char wholly after block */ + #ifdef FEAT_VISUALEXTRA +--- 72,82 ---- + */ + struct block_def + { +! int startspaces; /* 'extra' cols before first char */ +! int endspaces; /* 'extra' cols after last char */ + int textlen; /* chars in block */ +! char_u *textstart; /* pointer to 1st char (partially) in block */ +! colnr_T textcol; /* index of chars (partially) in block */ + colnr_T start_vcol; /* start col of 1st char wholly inside block */ + colnr_T end_vcol; /* start col of 1st char wholly after block */ + #ifdef FEAT_VISUALEXTRA +*************** +*** 382,396 **** + { + int left = (oap->op_type == OP_LSHIFT); + int oldstate = State; +! int total, split; +! char_u *newp, *oldp, *midp, *ptr; + int oldcol = curwin->w_cursor.col; + int p_sw = (int)curbuf->b_p_sw; + int p_ts = (int)curbuf->b_p_ts; + struct block_def bd; +- int internal = 0; + int incr; +! colnr_T vcol, col = 0, ws_vcol; + int i = 0, j = 0; + int len; + +--- 382,395 ---- + { + int left = (oap->op_type == OP_LSHIFT); + int oldstate = State; +! int total; +! char_u *newp, *oldp; + int oldcol = curwin->w_cursor.col; + int p_sw = (int)curbuf->b_p_sw; + int p_ts = (int)curbuf->b_p_ts; + struct block_def bd; + int incr; +! colnr_T ws_vcol; + int i = 0, j = 0; + int len; + +*************** +*** 456,522 **** + } + else /* left */ + { +! vcol = oap->start_vcol; +! /* walk vcol past ws to be removed */ +! for (midp = oldp + bd.textcol; +! vcol < (oap->start_vcol + total) && vim_iswhite(*midp); ) +! { +! incr = lbr_chartabsize_adv(&midp, (colnr_T)vcol); +! vcol += incr; +! } +! /* internal is the block-internal ws replacing a split TAB */ +! if (vcol > (oap->start_vcol + total)) +! { +! /* we have to split the TAB *(midp-1) */ +! internal = vcol - (oap->start_vcol + total); +! } +! /* if 'expandtab' is not set, use TABs */ + +! split = bd.startspaces + internal; +! if (split > 0) +! { +! if (!curbuf->b_p_et) +! { +! for (ptr = oldp, col = 0; ptr < oldp+bd.textcol; ) +! col += lbr_chartabsize_adv(&ptr, (colnr_T)col); + +! /* col+1 now equals the start col of the first char of the +! * block (may be < oap.start_vcol if we're splitting a TAB) */ +! i = ((col % p_ts) + split) / p_ts; /* number of tabs */ +! } +! if (i) +! j = ((col % p_ts) + split) % p_ts; /* number of spp */ +! else +! j = split; +! } + +! newp = alloc_check(bd.textcol + i + j + (unsigned)STRLEN(midp) + 1); +! if (newp == NULL) +! return; +! vim_memset(newp, NUL, (size_t)(bd.textcol + i + j + STRLEN(midp) + 1)); + +! /* copy first part we want to keep */ +! mch_memmove(newp, oldp, (size_t)bd.textcol); +! /* Now copy any TABS and spp to ensure correct alignment! */ +! while (vim_iswhite(*midp)) + { +! if (*midp == TAB) +! i++; +! else /*space */ +! j++; +! midp++; + } +! /* We might have an extra TAB worth of spp now! */ +! if (j / p_ts && !curbuf->b_p_et) + { +! i++; +! j -= p_ts; + } +- copy_chars(newp + bd.textcol, (size_t)i, TAB); +- copy_spaces(newp + bd.textcol + i, (size_t)j); + +! /* the end */ +! STRMOVE(newp + STRLEN(newp), midp); + } + /* replace the line */ + ml_replace(curwin->w_cursor.lnum, newp, FALSE); +--- 455,543 ---- + } + else /* left */ + { +! colnr_T destination_col; /* column to which text in block will +! be shifted */ +! char_u *verbatim_copy_end; /* end of the part of the line which is +! copied verbatim */ +! colnr_T verbatim_copy_width;/* the (displayed) width of this part +! of line */ +! unsigned fill; /* nr of spaces that replace a TAB */ +! unsigned new_line_len; /* the length of the line after the +! block shift */ +! size_t block_space_width; +! size_t shift_amount; +! char_u *non_white = bd.textstart; +! colnr_T non_white_col; + +! /* +! * Firstly, let's find the first non-whitespace character that is +! * displayed after the block's start column and the character's column +! * number. Also, let's calculate the width of all the whitespace +! * characters that are displayed in the block and precede the searched +! * non-whitespace character. +! */ + +! /* If "bd.startspaces" is set, "bd.textstart" points to the character, +! * the part of which is displayed at the block's beginning. Let's start +! * searching from the next character. */ +! if (bd.startspaces) +! mb_ptr_adv(non_white); + +! /* The character's column is in "bd.start_vcol". */ +! non_white_col = bd.start_vcol; + +! while (vim_iswhite(*non_white)) + { +! incr = lbr_chartabsize_adv(&non_white, non_white_col); +! non_white_col += incr; + } +! +! block_space_width = non_white_col - oap->start_vcol; +! /* We will shift by "total" or "block_space_width", whichever is less. +! */ +! shift_amount = (block_space_width < total? block_space_width: total); +! +! /* The column to which we will shift the text. */ +! destination_col = non_white_col - shift_amount; +! +! /* Now let's find out how much of the beginning of the line we can +! * reuse without modification. */ +! verbatim_copy_end = bd.textstart; +! verbatim_copy_width = bd.start_vcol; +! +! /* If "bd.startspaces" is set, "bd.textstart" points to the character +! * preceding the block. We have to subtract its width to obtain its +! * column number. */ +! if (bd.startspaces) +! verbatim_copy_width -= bd.start_char_vcols; +! while (verbatim_copy_width < destination_col) + { +! incr = lbr_chartabsize(verbatim_copy_end, verbatim_copy_width); +! if (verbatim_copy_width + incr > destination_col) +! break; +! verbatim_copy_width += incr; +! mb_ptr_adv(verbatim_copy_end); + } + +! /* If "destination_col" is different from the width of the initial +! * part of the line that will be copied, it means we encountered a tab +! * character, which we will have to partly replace with spaces. */ +! fill = destination_col - verbatim_copy_width; +! +! /* The replacement line will consist of: +! * - the beginning of the original line up to "verbatim_copy_end", +! * - "fill" number of spaces, +! * - the rest of the line, pointed to by non_white. */ +! new_line_len = (unsigned)(verbatim_copy_end - oldp) +! + fill +! + (unsigned)STRLEN(non_white) + 1; +! +! newp = alloc_check(new_line_len); +! if (newp == NULL) +! return; +! mch_memmove(newp, oldp, (size_t)(verbatim_copy_end - oldp)); +! copy_spaces(newp + (verbatim_copy_end - oldp), (size_t)fill); +! STRMOVE(newp + (verbatim_copy_end - oldp) + fill, non_white); + } + /* replace the line */ + ml_replace(curwin->w_cursor.lnum, newp, FALSE); +*************** +*** 4851,4857 **** + * - textlen includes the first/last char to be (partly) deleted + * - start/endspaces is the number of columns that are taken by the + * first/last deleted char minus the number of columns that have to be +! * deleted. for yank and tilde: + * - textlen includes the first/last char to be wholly yanked + * - start/endspaces is the number of columns of the first/last yanked char + * that are to be yanked. +--- 4872,4879 ---- + * - textlen includes the first/last char to be (partly) deleted + * - start/endspaces is the number of columns that are taken by the + * first/last deleted char minus the number of columns that have to be +! * deleted. +! * for yank and tilde: + * - textlen includes the first/last char to be wholly yanked + * - start/endspaces is the number of columns of the first/last yanked char + * that are to be yanked. +*** ../vim-7.2.136/src/testdir/Makefile Wed Sep 10 18:25:18 2008 +--- src/testdir/Makefile Thu Mar 5 04:53:58 2009 +*************** +*** 20,26 **** + test48.out test49.out test51.out test52.out test53.out \ + test54.out test55.out test56.out test57.out test58.out \ + test59.out test60.out test61.out test62.out test63.out \ +! test64.out test65.out + + SCRIPTS_GUI = test16.out + +--- 20,26 ---- + test48.out test49.out test51.out test52.out test53.out \ + test54.out test55.out test56.out test57.out test58.out \ + test59.out test60.out test61.out test62.out test63.out \ +! test64.out test65.out test66.out + + SCRIPTS_GUI = test16.out + +*** ../vim-7.2.136/src/testdir/test66.in Wed Mar 11 16:24:44 2009 +--- src/testdir/test66.in Wed Mar 11 11:52:57 2009 +*************** +*** 0 **** +--- 1,25 ---- ++ ++ Test for visual block shift and tab characters. ++ ++ STARTTEST ++ :so small.vim ++ /^abcdefgh ++ 4jI j<<11|D ++ 7|a  ++ 7|a  ++ 7|a 4k13|4j< ++ :$-4,$w! test.out ++ :$-4,$s/\s\+//g ++ 4kI j<< ++ 7|a  ++ 7|a  ++ 7|a 4k13|4j3< ++ :$-4,$w >> test.out ++ :qa! ++ ENDTEST ++ ++ abcdefghijklmnopqrstuvwxyz ++ abcdefghijklmnopqrstuvwxyz ++ abcdefghijklmnopqrstuvwxyz ++ abcdefghijklmnopqrstuvwxyz ++ abcdefghijklmnopqrstuvwxyz +*** ../vim-7.2.136/src/testdir/test66.ok Wed Mar 11 16:24:44 2009 +--- src/testdir/test66.ok Thu Mar 5 04:39:36 2009 +*************** +*** 0 **** +--- 1,10 ---- ++ abcdefghijklmnopqrstuvwxyz ++ abcdefghij ++ abc defghijklmnopqrstuvwxyz ++ abc defghijklmnopqrstuvwxyz ++ abc defghijklmnopqrstuvwxyz ++ abcdefghijklmnopqrstuvwxyz ++ abcdefghij ++ abc defghijklmnopqrstuvwxyz ++ abc defghijklmnopqrstuvwxyz ++ abc defghijklmnopqrstuvwxyz +*** ../vim-7.2.136/src/version.c Wed Mar 11 15:36:01 2009 +--- src/version.c Wed Mar 11 16:23:07 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 137, + /**/ + +-- +% cat /usr/include/sys/errno.h +#define EPERM 1 /* Operation not permitted */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +[...] +#define EMACS 666 /* Too many macros */ +% + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.138 b/source/ap/vim/patches/7.2.138 new file mode 100644 index 000000000..faa7e7a63 --- /dev/null +++ b/source/ap/vim/patches/7.2.138 @@ -0,0 +1,160 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.138 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.138 (extra part of 7.2.137) +Problem: See 7.2.137. +Solution: See 7.2.137. +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms + + +*** ../vim-7.2.137/src/testdir/Make_amiga.mak Tue Jun 24 23:46:42 2008 +--- src/testdir/Make_amiga.mak Thu Mar 5 04:49:38 2009 +*************** +*** 25,31 **** + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out test64.out test65.out + + .SUFFIXES: .in .out + +--- 25,32 ---- + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out test64.out test65.out \ +! test66.out + + .SUFFIXES: .in .out + +*************** +*** 110,112 **** +--- 111,114 ---- + test63.out: test63.in + test64.out: test64.in + test65.out: test65.in ++ test66.out: test66.in +*** ../vim-7.2.137/src/testdir/Make_dos.mak Tue Jun 24 23:39:51 2008 +--- src/testdir/Make_dos.mak Thu Mar 5 04:52:47 2009 +*************** +*** 26,32 **** + test15.out test17.out test18.out test21.out test26.out \ + test30.out test31.out test32.out test33.out test34.out \ + test37.out test38.out test39.out test40.out test41.out \ +! test42.out test52.out test65.out + + SCRIPTS32 = test50.out + +--- 26,32 ---- + test15.out test17.out test18.out test21.out test26.out \ + test30.out test31.out test32.out test33.out test34.out \ + test37.out test38.out test39.out test40.out test41.out \ +! test42.out test52.out test65.out test66.out + + SCRIPTS32 = test50.out + +*** ../vim-7.2.137/src/testdir/Make_ming.mak Sat Sep 20 16:26:10 2008 +--- src/testdir/Make_ming.mak Thu Mar 5 04:53:16 2009 +*************** +*** 45,51 **** + test15.out test17.out test18.out test21.out test26.out \ + test30.out test31.out test32.out test33.out test34.out \ + test37.out test38.out test39.out test40.out test41.out \ +! test42.out test52.out test65.out + + SCRIPTS32 = test50.out + +--- 45,51 ---- + test15.out test17.out test18.out test21.out test26.out \ + test30.out test31.out test32.out test33.out test34.out \ + test37.out test38.out test39.out test40.out test41.out \ +! test42.out test52.out test65.out test66.out + + SCRIPTS32 = test50.out + +*** ../vim-7.2.137/src/testdir/Make_os2.mak Tue Jun 24 22:37:41 2008 +--- src/testdir/Make_os2.mak Thu Mar 5 04:53:31 2009 +*************** +*** 25,31 **** + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out test64.out test65.out + + .SUFFIXES: .in .out + +--- 25,32 ---- + test43.out test44.out test45.out test46.out test47.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test58.out test59.out test60.out \ +! test61.out test62.out test63.out test64.out test65.out \ +! test66.out + + .SUFFIXES: .in .out + +*** ../vim-7.2.137/src/testdir/Make_vms.mms Mon Sep 1 16:50:09 2008 +--- src/testdir/Make_vms.mms Thu Mar 5 04:53:42 2009 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com> + # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> + # +! # Last change: 2008 Aug 19 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com> + # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> + # +! # Last change: 2009 Mar 05 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 68,74 **** + test43.out test44.out test45.out test46.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test60.out \ +! test61.out test62.out test63.out test64.out test65.out + + .IFDEF WANT_GUI + SCRIPT_GUI = test16.out +--- 68,75 ---- + test43.out test44.out test45.out test46.out \ + test48.out test51.out test53.out test54.out test55.out \ + test56.out test57.out test60.out \ +! test61.out test62.out test63.out test64.out test65.out \ +! test66.out + + .IFDEF WANT_GUI + SCRIPT_GUI = test16.out +*** ../vim-7.2.137/src/version.c Wed Mar 11 16:26:01 2009 +--- src/version.c Wed Mar 11 16:35:06 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 138, + /**/ + +-- +Some of the well know MS-Windows errors: + ESLEEP Operator fell asleep + ENOERR No error yet + EDOLLAR OS too expensive + EWINDOWS MS-Windows loaded, system in danger + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.139 b/source/ap/vim/patches/7.2.139 new file mode 100644 index 000000000..3366acb72 --- /dev/null +++ b/source/ap/vim/patches/7.2.139 @@ -0,0 +1,79 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.139 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.139 +Problem: Crash when 'virtualedit' is "all". (James Vega) +Solution: Avoid overflow when column is MAXCOL. (Dominique Pelle) +Files: src/misc2.c + + +*** ../vim-7.2.138/src/misc2.c Tue Feb 24 04:28:40 2009 +--- src/misc2.c Wed Mar 11 16:45:05 2009 +*************** +*** 496,502 **** + { + colnr_T len; + #ifdef FEAT_VIRTUALEDIT +! colnr_T oldcol = curwin->w_cursor.col + curwin->w_cursor.coladd; + #endif + + len = (colnr_T)STRLEN(ml_get_curline()); +--- 496,503 ---- + { + colnr_T len; + #ifdef FEAT_VIRTUALEDIT +! colnr_T oldcol = curwin->w_cursor.col; +! colnr_T oldcoladd = curwin->w_cursor.col + curwin->w_cursor.coladd; + #endif + + len = (colnr_T)STRLEN(ml_get_curline()); +*************** +*** 535,541 **** + if (oldcol == MAXCOL) + curwin->w_cursor.coladd = 0; + else if (ve_flags == VE_ALL) +! curwin->w_cursor.coladd = oldcol - curwin->w_cursor.col; + #endif + } + +--- 536,548 ---- + if (oldcol == MAXCOL) + curwin->w_cursor.coladd = 0; + else if (ve_flags == VE_ALL) +! { +! if (oldcoladd > curwin->w_cursor.col) +! curwin->w_cursor.coladd = oldcoladd - curwin->w_cursor.col; +! else +! /* avoid weird number when there is a miscalculation or overflow */ +! curwin->w_cursor.coladd = 0; +! } + #endif + } + +*** ../vim-7.2.138/src/version.c Wed Mar 11 16:36:04 2009 +--- src/version.c Wed Mar 11 17:26:50 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 139, + /**/ + +-- +Some of the well know MS-Windows errors: + EHUH Unexpected error + EUSER User error, not our fault! + EGOD Horrible problem, god knows what has happened + EERR Errornous error: nothing wrong + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.140 b/source/ap/vim/patches/7.2.140 new file mode 100644 index 000000000..98c127966 --- /dev/null +++ b/source/ap/vim/patches/7.2.140 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.140 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.140 +Problem: Diff highlighting isn't displayed before the Visual area if it + starts at the cursor position. (Markus Heidelberg) +Solution: Also check fromcol_prev. +Files: src/screen.c + + +*** ../vim-7.2.139/src/screen.c Sun Feb 22 21:12:22 2009 +--- src/screen.c Wed Mar 11 13:59:24 2009 +*************** +*** 3555,3561 **** + /* Use line_attr when not in the Visual or 'incsearch' area + * (area_attr may be 0 when "noinvcur" is set). */ + else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL) +! || (vcol < fromcol || vcol >= tocol))) + char_attr = line_attr; + #endif + else +--- 3555,3562 ---- + /* Use line_attr when not in the Visual or 'incsearch' area + * (area_attr may be 0 when "noinvcur" is set). */ + else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL) +! || vcol < fromcol || vcol_prev < fromcol_prev +! || vcol >= tocol)) + char_attr = line_attr; + #endif + else +*** ../vim-7.2.139/src/version.c Wed Mar 11 17:27:46 2009 +--- src/version.c Wed Mar 11 17:42:19 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 140, + /**/ + +-- +Some of the well know MS-Windows errors: + EMEMORY Memory error caused by..., eh... + ELICENSE Your license has expired, give us more money! + EMOUSE Mouse moved, reinstall Windows + EILLEGAL Illegal error, you are not allowed to see this + EVIRUS Undetectable virus found + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.141 b/source/ap/vim/patches/7.2.141 new file mode 100644 index 000000000..395d210de --- /dev/null +++ b/source/ap/vim/patches/7.2.141 @@ -0,0 +1,239 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.141 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.141 +Problem: When redrawing a character for bold spill this causes the next + character to be redrawn as well. +Solution: Only redraw one extra character. (Yukihiro Nakadaira) +Files: src/screen.c + + +*** ../vim-7.2.140/src/screen.c Wed Mar 11 17:44:38 2009 +--- src/screen.c Wed Mar 11 13:59:24 2009 +*************** +*** 5132,5139 **** + #endif + + #if defined(FEAT_GUI) || defined(UNIX) +! /* The bold trick makes a single row of pixels appear in the next +! * character. When a bold character is removed, the next + * character should be redrawn too. This happens for our own GUI + * and for some xterms. */ + if ( +--- 5132,5139 ---- + #endif + + #if defined(FEAT_GUI) || defined(UNIX) +! /* The bold trick makes a single column of pixels appear in the +! * next character. When a bold character is removed, the next + * character should be redrawn too. This happens for our own GUI + * and for some xterms. */ + if ( +*************** +*** 6276,6284 **** +--- 6276,6290 ---- + int pcc[MAX_MCO]; + # endif + #endif ++ #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX) ++ int force_redraw_this; ++ int force_redraw_next = FALSE; ++ #endif ++ int need_redraw; + + if (ScreenLines == NULL || row >= screen_Rows) /* safety check */ + return; ++ off = LineOffset[row] + col; + + #ifdef FEAT_MBYTE + /* When drawing over the right halve of a double-wide char clear out the +*************** +*** 6288,6297 **** + && !gui.in_use + # endif + && mb_fix_col(col, row) != col) +! screen_puts_len((char_u *)" ", 1, row, col - 1, 0); + #endif + +- off = LineOffset[row] + col; + #ifdef FEAT_MBYTE + max_off = LineOffset[row] + screen_Columns; + #endif +--- 6294,6314 ---- + && !gui.in_use + # endif + && mb_fix_col(col, row) != col) +! { +! ScreenLines[off - 1] = ' '; +! ScreenAttrs[off - 1] = 0; +! if (enc_utf8) +! { +! ScreenLinesUC[off - 1] = 0; +! ScreenLinesC[0][off - 1] = 0; +! } +! /* redraw the previous cell, make it empty */ +! screen_char(off - 1, row, col - 1); +! /* force the cell at "col" to be redrawn */ +! force_redraw_next = TRUE; +! } + #endif + + #ifdef FEAT_MBYTE + max_off = LineOffset[row] + screen_Columns; + #endif +*************** +*** 6355,6361 **** + } + #endif + +! if (ScreenLines[off] != c + #ifdef FEAT_MBYTE + || (mbyte_cells == 2 + && ScreenLines[off + 1] != (enc_dbcs ? ptr[1] : 0)) +--- 6372,6383 ---- + } + #endif + +! #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX) +! force_redraw_this = force_redraw_next; +! force_redraw_next = FALSE; +! #endif +! +! need_redraw = ScreenLines[off] != c + #ifdef FEAT_MBYTE + || (mbyte_cells == 2 + && ScreenLines[off + 1] != (enc_dbcs ? ptr[1] : 0)) +*************** +*** 6367,6386 **** + || screen_comp_differs(off, u8cc))) + #endif + || ScreenAttrs[off] != attr +! || exmode_active + ) + { + #if defined(FEAT_GUI) || defined(UNIX) + /* The bold trick makes a single row of pixels appear in the next + * character. When a bold character is removed, the next + * character should be redrawn too. This happens for our own GUI +! * and for some xterms. +! * Force the redraw by setting the attribute to a different value +! * than "attr", the contents of ScreenLines[] may be needed by +! * mb_off2cells() further on. +! * Don't do this for the last drawn character, because the next +! * character may not be redrawn. */ +! if ( + # ifdef FEAT_GUI + gui.in_use + # endif +--- 6389,6408 ---- + || screen_comp_differs(off, u8cc))) + #endif + || ScreenAttrs[off] != attr +! || exmode_active; +! +! if (need_redraw +! #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX) +! || force_redraw_this +! #endif + ) + { + #if defined(FEAT_GUI) || defined(UNIX) + /* The bold trick makes a single row of pixels appear in the next + * character. When a bold character is removed, the next + * character should be redrawn too. This happens for our own GUI +! * and for some xterms. */ +! if (need_redraw && ScreenLines[off] != ' ' && ( + # ifdef FEAT_GUI + gui.in_use + # endif +*************** +*** 6390,6412 **** + # ifdef UNIX + term_is_xterm + # endif +! ) + { +! int n; + +! n = ScreenAttrs[off]; +! # ifdef FEAT_MBYTE +! if (col + mbyte_cells < screen_Columns +! && (n > HL_ALL || (n & HL_BOLD)) +! && (len < 0 ? ptr[mbyte_blen] != NUL +! : ptr + mbyte_blen < text + len)) +! ScreenAttrs[off + mbyte_cells] = attr + 1; +! # else +! if (col + 1 < screen_Columns +! && (n > HL_ALL || (n & HL_BOLD)) +! && (len < 0 ? ptr[1] != NUL : ptr + 1 < text + len)) +! ScreenLines[off + 1] = 0; +! # endif + } + #endif + #ifdef FEAT_MBYTE +--- 6412,6425 ---- + # ifdef UNIX + term_is_xterm + # endif +! )) + { +! int n = ScreenAttrs[off]; + +! if (n > HL_ALL) +! n = syn_attr2attr(n); +! if (n & HL_BOLD) +! force_redraw_next = TRUE; + } + #endif + #ifdef FEAT_MBYTE +*************** +*** 6493,6498 **** +--- 6506,6525 ---- + ++ptr; + } + } ++ ++ #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX) ++ /* If we detected the next character needs to be redrawn, but the text ++ * doesn't extend up to there, update the character here. */ ++ if (force_redraw_next && col < screen_Columns) ++ { ++ # ifdef FEAT_MBYTE ++ if (enc_dbcs != 0 && dbcs_off2cells(off, max_off) > 1) ++ screen_char_2(off, row, col); ++ else ++ # endif ++ screen_char(off, row, col); ++ } ++ #endif + } + + #ifdef FEAT_SEARCH_EXTRA +*** ../vim-7.2.140/src/version.c Wed Mar 11 17:44:38 2009 +--- src/version.c Wed Mar 11 17:55:22 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 141, + /**/ + +-- +Some of the well know MS-Windows errors: + ETIME Wrong time, wait a little while + ECRASH Try again... + EDETECT Unable to detect errors + EOVER You lost! Play another game? + ENOCLUE Eh, what did you want? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.142 b/source/ap/vim/patches/7.2.142 new file mode 100644 index 000000000..adfaab615 --- /dev/null +++ b/source/ap/vim/patches/7.2.142 @@ -0,0 +1,61 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.142 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.142 +Problem: Motif and Athena balloons don't use tooltip colors. +Solution: Set the colors. (Matt Wozniski) +Files: src/gui_beval.c + + +*** ../vim-7.2.141/src/gui_beval.c Thu May 10 21:29:20 2007 +--- src/gui_beval.c Wed Mar 11 15:20:36 2009 +*************** +*** 1291,1296 **** +--- 1291,1313 ---- + XtNy, ty, + NULL); + #endif ++ /* Set tooltip colors */ ++ { ++ Arg args[2]; ++ ++ #ifdef FEAT_GUI_MOTIF ++ args[0].name = XmNbackground; ++ args[0].value = gui.tooltip_bg_pixel; ++ args[1].name = XmNforeground; ++ args[1].value = gui.tooltip_fg_pixel; ++ #else /* Athena */ ++ args[0].name = XtNbackground; ++ args[0].value = gui.tooltip_bg_pixel; ++ args[1].name = XtNforeground; ++ args[1].value = gui.tooltip_fg_pixel; ++ #endif ++ XtSetValues(beval->balloonLabel, &args[0], XtNumber(args)); ++ } + + XtPopup(beval->balloonShell, XtGrabNone); + +*** ../vim-7.2.141/src/version.c Wed Mar 11 17:57:05 2009 +--- src/version.c Wed Mar 18 12:20:01 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 142, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +233. You start dreaming about web pages...in html. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.143 b/source/ap/vim/patches/7.2.143 new file mode 100644 index 000000000..905f15995 --- /dev/null +++ b/source/ap/vim/patches/7.2.143 @@ -0,0 +1,234 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.143 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.143 +Problem: No command line completion for ":cscope" command. +Solution: Add the completion for ":cscope". (Dominique Pelle) +Files: src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c, + src/proto/if_cscope.pro, src/vim.h + + +*** ../vim-7.2.142/src/ex_docmd.c Wed Mar 11 15:36:01 2009 +--- src/ex_docmd.c Wed Mar 11 15:45:04 2009 +*************** +*** 3683,3688 **** +--- 3683,3693 ---- + case CMD_highlight: + set_context_in_highlight_cmd(xp, arg); + break; ++ #ifdef FEAT_CSCOPE ++ case CMD_cscope: ++ set_context_in_cscope_cmd(xp, arg); ++ break; ++ #endif + #ifdef FEAT_LISTCMDS + case CMD_bdelete: + case CMD_bwipeout: +*************** +*** 5187,5192 **** +--- 5192,5200 ---- + {EXPAND_AUGROUP, "augroup"}, + {EXPAND_BUFFERS, "buffer"}, + {EXPAND_COMMANDS, "command"}, ++ #if defined(FEAT_CSCOPE) ++ {EXPAND_CSCOPE, "cscope"}, ++ #endif + #if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL) + {EXPAND_USER_DEFINED, "custom"}, + {EXPAND_USER_LIST, "customlist"}, +*** ../vim-7.2.142/src/ex_getln.c Thu Mar 5 03:13:51 2009 +--- src/ex_getln.c Wed Mar 11 15:45:04 2009 +*************** +*** 4518,4523 **** +--- 4518,4526 ---- + {EXPAND_EVENTS, get_event_name, TRUE}, + {EXPAND_AUGROUP, get_augroup_name, TRUE}, + #endif ++ #ifdef FEAT_CSCOPE ++ {EXPAND_CSCOPE, get_cscope_name, TRUE}, ++ #endif + #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \ + && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE)) + {EXPAND_LANGUAGE, get_lang_arg, TRUE}, +*** ../vim-7.2.142/src/if_cscope.c Wed Jan 28 16:03:51 2009 +--- src/if_cscope.c Wed Mar 11 15:56:07 2009 +*************** +*** 93,104 **** + (void)EMSG2(_("E560: Usage: cs[cope] %s"), cs_cmds[(int)x].usage); + } + + /* + * PRIVATE: do_cscope_general + * +! * find the command, print help if invalid, and the then call the +! * corresponding command function, +! * called from do_cscope and do_scscope + */ + static void + do_cscope_general(eap, make_split) +--- 93,209 ---- + (void)EMSG2(_("E560: Usage: cs[cope] %s"), cs_cmds[(int)x].usage); + } + ++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO) ++ ++ static enum ++ { ++ EXP_CSCOPE_SUBCMD, /* expand ":cscope" sub-commands */ ++ EXP_CSCOPE_FIND, /* expand ":cscope find" arguments */ ++ EXP_CSCOPE_KILL /* expand ":cscope kill" arguments */ ++ } expand_what; ++ ++ /* ++ * Function given to ExpandGeneric() to obtain the cscope command ++ * expansion. ++ */ ++ /*ARGSUSED*/ ++ char_u * ++ get_cscope_name(xp, idx) ++ expand_T *xp; ++ int idx; ++ { ++ switch (expand_what) ++ { ++ case EXP_CSCOPE_SUBCMD: ++ /* Complete with sub-commands of ":cscope": ++ * add, find, help, kill, reset, show */ ++ return (char_u *)cs_cmds[idx].name; ++ case EXP_CSCOPE_FIND: ++ { ++ const char *query_type[] = ++ { ++ "c", "d", "e", "f", "g", "i", "s", "t", NULL ++ }; ++ ++ /* Complete with query type of ":cscope find {query_type}". ++ * {query_type} can be letters (c, d, ... t) or numbers (0, 1, ++ * ..., 8) but only complete with letters, since numbers are ++ * redundant. */ ++ return (char_u *)query_type[idx]; ++ } ++ case EXP_CSCOPE_KILL: ++ { ++ int i; ++ int current_idx = 0; ++ static char_u connection[2]; ++ ++ /* ":cscope kill" accepts connection numbers or partial names of ++ * the pathname of the cscope database as argument. Only complete ++ * with connection numbers. -1 can also be used to kill all ++ * connections. */ ++ for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) ++ { ++ if (csinfo[i].fname == NULL) ++ continue; ++ if (current_idx++ == idx) ++ { ++ /* Connection number fits in one character since ++ * CSCOPE_MAX_CONNECTIONS is < 10 */ ++ connection[0] = i + '0'; ++ connection[1] = NUL; ++ return connection; ++ } ++ } ++ return (current_idx == idx && idx > 0) ? (char_u *)"-1" : NULL; ++ } ++ default: ++ return NULL; ++ } ++ } ++ ++ /* ++ * Handle command line completion for :cscope command. ++ */ ++ void ++ set_context_in_cscope_cmd(xp, arg) ++ expand_T *xp; ++ char_u *arg; ++ { ++ char_u *p; ++ ++ /* Default: expand subcommands */ ++ xp->xp_context = EXPAND_CSCOPE; ++ expand_what = EXP_CSCOPE_SUBCMD; ++ xp->xp_pattern = arg; ++ ++ /* (part of) subcommand already typed */ ++ if (*arg != NUL) ++ { ++ p = skiptowhite(arg); ++ if (*p != NUL) /* past first word */ ++ { ++ xp->xp_pattern = skipwhite(p); ++ if (*skiptowhite(xp->xp_pattern) != NUL) ++ xp->xp_context = EXPAND_NOTHING; ++ else if (STRNICMP(arg, "add", p - arg) == 0) ++ xp->xp_context = EXPAND_FILES; ++ else if (STRNICMP(arg, "kill", p - arg) == 0) ++ expand_what = EXP_CSCOPE_KILL; ++ else if (STRNICMP(arg, "find", p - arg) == 0) ++ expand_what = EXP_CSCOPE_FIND; ++ else ++ xp->xp_context = EXPAND_NOTHING; ++ } ++ } ++ } ++ ++ #endif /* FEAT_CMDL_COMPL */ ++ + /* + * PRIVATE: do_cscope_general + * +! * Find the command, print help if invalid, and then call the corresponding +! * command function. + */ + static void + do_cscope_general(eap, make_split) +*** ../vim-7.2.142/src/proto/if_cscope.pro Thu Sep 6 17:38:21 2007 +--- src/proto/if_cscope.pro Wed Mar 11 15:57:03 2009 +*************** +*** 1,4 **** +--- 1,6 ---- + /* if_cscope.c */ ++ char_u *get_cscope_name __ARGS((expand_T *xp, int idx)); ++ void set_context_in_cscope_cmd __ARGS((expand_T *xp, char_u *arg)); + void do_cscope __ARGS((exarg_T *eap)); + void do_scscope __ARGS((exarg_T *eap)); + void do_cstag __ARGS((exarg_T *eap)); +*** ../vim-7.2.142/src/vim.h Sun Feb 22 02:36:36 2009 +--- src/vim.h Wed Mar 11 15:45:04 2009 +*************** +*** 708,713 **** +--- 708,714 ---- + #define EXPAND_USER_DEFINED 30 + #define EXPAND_USER_LIST 31 + #define EXPAND_SHELLCMD 32 ++ #define EXPAND_CSCOPE 33 + + /* Values for exmode_active (0 is no exmode) */ + #define EXMODE_NORMAL 1 +*** ../vim-7.2.142/src/version.c Wed Mar 18 12:20:35 2009 +--- src/version.c Wed Mar 18 12:48:08 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 143, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +234. You started college as a chemistry major, and walk out four years + later as an Internet provider. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.144 b/source/ap/vim/patches/7.2.144 new file mode 100644 index 000000000..3a219bd4b --- /dev/null +++ b/source/ap/vim/patches/7.2.144 @@ -0,0 +1,78 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.144 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.144 +Problem: When 't_Co' is set to the value it already had the color scheme is + reloaded anyway. +Solution: Only load the colorscheme when the t_Co value changes. (Dominique + Pelle) +Files: src/option.c + + +*** ../vim-7.2.143/src/option.c Wed Mar 4 04:11:56 2009 +--- src/option.c Wed Mar 18 12:00:28 2009 +*************** +*** 6022,6036 **** + /* ":set t_Co=0" and ":set t_Co=1" do ":set t_Co=" */ + if (varp == &T_CCO) + { +! t_colors = atoi((char *)T_CCO); +! if (t_colors <= 1) + { +! if (new_value_alloced) +! vim_free(T_CCO); +! T_CCO = empty_option; + } +- /* We now have a different color setup, initialize it again. */ +- init_highlight(TRUE, FALSE); + } + ttest(FALSE); + if (varp == &T_ME) +--- 6022,6044 ---- + /* ":set t_Co=0" and ":set t_Co=1" do ":set t_Co=" */ + if (varp == &T_CCO) + { +! int colors = atoi((char *)T_CCO); +! +! /* Only reinitialize colors if t_Co value has really changed to +! * avoid expensive reload of colorscheme if t_Co is set to the +! * same value multiple times. */ +! if (colors != t_colors) + { +! t_colors = colors; +! if (t_colors <= 1) +! { +! if (new_value_alloced) +! vim_free(T_CCO); +! T_CCO = empty_option; +! } +! /* We now have a different color setup, initialize it again. */ +! init_highlight(TRUE, FALSE); + } + } + ttest(FALSE); + if (varp == &T_ME) +*** ../vim-7.2.143/src/version.c Wed Mar 18 12:50:58 2009 +--- src/version.c Wed Mar 18 14:16:48 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 144, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +235. You start naming your kids Pascal, COBOL, Algol and Fortran. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.145 b/source/ap/vim/patches/7.2.145 new file mode 100644 index 000000000..0f328170f --- /dev/null +++ b/source/ap/vim/patches/7.2.145 @@ -0,0 +1,125 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.145 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.145 +Problem: White space in ":cscope find" is not ignored. +Solution: Ignore the white space, but not when the leading white space is + useful for the argument. +Files: runtime/doc/if_cscop.txt, src/if_cscope.c + + +*** ../vim-7.2.144/runtime/doc/if_cscop.txt Sat Aug 9 19:36:48 2008 +--- runtime/doc/if_cscop.txt Wed Mar 18 14:30:09 2009 +*************** +*** 1,4 **** +! *if_cscop.txt* For Vim version 7.2. Last change: 2005 Mar 29 + + + VIM REFERENCE MANUAL by Andy Kahn +--- 1,4 ---- +! *if_cscop.txt* For Vim version 7.2. Last change: 2009 Mar 18 + + + VIM REFERENCE MANUAL by Andy Kahn +*************** +*** 131,141 **** + 7 or f: Find this file + 8 or i: Find files #including this file + + EXAMPLES > + :cscope find c vim_free +! :cscope find 3 vim_free + < +! These two examples perform the same query. > + + :cscope find 0 DEFAULT_TERM + < +--- 131,152 ---- + 7 or f: Find this file + 8 or i: Find files #including this file + ++ For all types, except 4 and 6, leading white space for {name} is ++ removed. For 4 and 6 there is exactly one space between {querytype} ++ and {name}. Further white space is included in {name}. ++ + EXAMPLES > + :cscope find c vim_free +! :cscope find 3 vim_free +! < +! These two examples perform the same query: functions calling +! "vim_free". > +! +! :cscope find t initOnce +! :cscope find t initOnce + < +! The first one searches for the text "initOnce", the second one for +! " initOnce". > + + :cscope find 0 DEFAULT_TERM + < +*** ../vim-7.2.144/src/if_cscope.c Wed Mar 18 12:50:58 2009 +--- src/if_cscope.c Wed Mar 18 13:23:53 2009 +*************** +*** 764,769 **** +--- 764,770 ---- + { + char *cmd; + short search; ++ char *pat; + + switch (csoption[0]) + { +*************** +*** 797,806 **** + return NULL; + } + +! if ((cmd = (char *)alloc((unsigned)(strlen(pattern) + 2))) == NULL) + return NULL; + +! (void)sprintf(cmd, "%d%s", search, pattern); + + return cmd; + } /* cs_create_cmd */ +--- 798,814 ---- + return NULL; + } + +! /* Skip white space before the patter, except for text and pattern search, +! * they may want to use the leading white space. */ +! pat = pattern; +! if (search != 4 && search != 6) +! while vim_iswhite(*pat) +! ++pat; +! +! if ((cmd = (char *)alloc((unsigned)(strlen(pat) + 2))) == NULL) + return NULL; + +! (void)sprintf(cmd, "%d%s", search, pat); + + return cmd; + } /* cs_create_cmd */ +*** ../vim-7.2.144/src/version.c Wed Mar 18 14:19:28 2009 +--- src/version.c Wed Mar 18 14:28:46 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 145, + /**/ + +-- +Google is kind of like Dr. Who's Tardis; it's weirder on the +inside than on the outside... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.146 b/source/ap/vim/patches/7.2.146 new file mode 100644 index 000000000..96852fbef --- /dev/null +++ b/source/ap/vim/patches/7.2.146 @@ -0,0 +1,110 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.146 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.146 +Problem: v:warningmsg isn't used for all warnings. +Solution: Set v:warningmsg for relevant warnings. (Ingo Karkat) +Files: src/fileio.c, src/misc1.c, src/option.c + + +*** ../vim-7.2.145/src/fileio.c Wed Mar 11 13:09:30 2009 +--- src/fileio.c Wed Mar 18 15:03:46 2009 +*************** +*** 6647,6652 **** +--- 6647,6657 ---- + tbuf = alloc((unsigned)(STRLEN(path) + STRLEN(mesg) + + STRLEN(mesg2) + 2)); + sprintf((char *)tbuf, mesg, path); ++ #ifdef FEAT_EVAL ++ /* Set warningmsg here, before the unimportant and output-specific ++ * mesg2 has been appended. */ ++ set_vim_var_string(VV_WARNINGMSG, tbuf, -1); ++ #endif + #if defined(FEAT_CON_DIALOG) || defined(FEAT_GUI_DIALOG) + if (can_reload) + { +*** ../vim-7.2.145/src/misc1.c Thu Nov 20 17:09:09 2008 +--- src/misc1.c Wed Mar 18 15:06:59 2009 +*************** +*** 2955,2960 **** +--- 2955,2962 ---- + int col; /* column for message; non-zero when in insert + mode and 'showmode' is on */ + { ++ static char *w_readonly = N_("W10: Warning: Changing a readonly file"); ++ + if (curbuf->b_did_warn == FALSE + && curbufIsChanged() == 0 + #ifdef FEAT_AUTOCMD +*************** +*** 2977,2984 **** + if (msg_row == Rows - 1) + msg_col = col; + msg_source(hl_attr(HLF_W)); +! MSG_PUTS_ATTR(_("W10: Warning: Changing a readonly file"), +! hl_attr(HLF_W) | MSG_HIST); + msg_clr_eos(); + (void)msg_end(); + if (msg_silent == 0 && !silent_mode) +--- 2979,2988 ---- + if (msg_row == Rows - 1) + msg_col = col; + msg_source(hl_attr(HLF_W)); +! MSG_PUTS_ATTR(_(w_readonly), hl_attr(HLF_W) | MSG_HIST); +! #ifdef FEAT_EVAL +! set_vim_var_string(VV_WARNINGMSG, (char_u *)_(w_readonly), -1); +! #endif + msg_clr_eos(); + (void)msg_end(); + if (msg_silent == 0 && !silent_mode) +*** ../vim-7.2.145/src/option.c Wed Mar 18 14:19:28 2009 +--- src/option.c Wed Mar 18 15:06:11 2009 +*************** +*** 7563,7571 **** + * set. */ + if (STRCMP(p_enc, "utf-8") != 0) + { + msg_source(hl_attr(HLF_W)); +! MSG_ATTR(_("W17: Arabic requires UTF-8, do ':set encoding=utf-8'"), +! hl_attr(HLF_W)); + } + + # ifdef FEAT_MBYTE +--- 7563,7575 ---- + * set. */ + if (STRCMP(p_enc, "utf-8") != 0) + { ++ static char *w_arabic = N_("W17: Arabic requires UTF-8, do ':set encoding=utf-8'"); ++ + msg_source(hl_attr(HLF_W)); +! MSG_ATTR(_(w_arabic), hl_attr(HLF_W)); +! #ifdef FEAT_EVAL +! set_vim_var_string(VV_WARNINGMSG, (char_u *)_(w_arabic), -1); +! #endif + } + + # ifdef FEAT_MBYTE +*** ../vim-7.2.145/src/version.c Wed Mar 18 14:30:46 2009 +--- src/version.c Wed Mar 18 15:38:27 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 146, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +238. You think faxes are old-fashioned. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.147 b/source/ap/vim/patches/7.2.147 new file mode 100644 index 000000000..82a43eeaa --- /dev/null +++ b/source/ap/vim/patches/7.2.147 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.147 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.147 +Problem: When compiled as small version and 'number' is on the cursor is + displayed in the wrong position after a tab. (James Vega) +Solution: Don't increment vcol when still displaying the line number. +Files: src/screen.c + + +*** ../vim-7.2.146/src/screen.c Wed Mar 11 17:57:05 2009 +--- src/screen.c Wed Mar 18 16:18:00 2009 +*************** +*** 4665,4671 **** + --n_skip; + + /* Only advance the "vcol" when after the 'number' column. */ +! if (draw_state >= WL_SBR + #ifdef FEAT_DIFF + && filler_todo <= 0 + #endif +--- 4665,4671 ---- + --n_skip; + + /* Only advance the "vcol" when after the 'number' column. */ +! if (draw_state > WL_NR + #ifdef FEAT_DIFF + && filler_todo <= 0 + #endif +*** ../vim-7.2.146/src/version.c Wed Mar 18 15:40:03 2009 +--- src/version.c Wed Mar 18 16:26:00 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 147, + /**/ + +-- +You can tune a file system, but you can't tuna fish + -- man tunefs + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.148 b/source/ap/vim/patches/7.2.148 new file mode 100644 index 000000000..32504997c --- /dev/null +++ b/source/ap/vim/patches/7.2.148 @@ -0,0 +1,145 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.148 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.148 +Problem: When searching for "$" while 'hlsearch' is set, highlighting the + character after the line does not work in the cursor column. + Also highlighting for Visual mode after the line end when this + isn't needed. (Markus Heidelberg) +Solution: Only compare the cursor column in the cursor line. Only highlight + for Visual selection after the last character when it's needed to + see where the Visual selection ends. +Files: src/screen.c + + +*** ../vim-7.2.147/src/screen.c Wed Mar 18 16:26:31 2009 +--- src/screen.c Wed Mar 18 17:24:56 2009 +*************** +*** 2889,2896 **** + } + else + tocol = MAXCOL; +! if (fromcol == tocol) /* do at least one character */ +! tocol = fromcol + 1; /* happens when past end of line */ + area_highlighting = TRUE; + attr = hl_attr(HLF_I); + } +--- 2889,2897 ---- + } + else + tocol = MAXCOL; +! /* do at least one character; happens when past end of line */ +! if (fromcol == tocol) +! tocol = fromcol + 1; + area_highlighting = TRUE; + attr = hl_attr(HLF_I); + } +*************** +*** 4118,4123 **** +--- 4119,4125 ---- + # endif + (col < W_WIDTH(wp))) + && !(noinvcur ++ && lnum == wp->w_cursor.lnum + && (colnr_T)vcol == wp->w_virtcol))) + && lcs_eol_one >= 0) + { +*************** +*** 4259,4265 **** + * preedit_changed and commit. Thus Vim can't set "im_is_active", use + * im_is_preediting() here. */ + if (xic != NULL +! && lnum == curwin->w_cursor.lnum + && (State & INSERT) + && !p_imdisable + && im_is_preediting() +--- 4261,4267 ---- + * preedit_changed and commit. Thus Vim can't set "im_is_active", use + * im_is_preediting() here. */ + if (xic != NULL +! && lnum == wp->w_cursor.lnum + && (State & INSERT) + && !p_imdisable + && im_is_preediting() +*************** +*** 4268,4274 **** + colnr_T tcol; + + if (preedit_end_col == MAXCOL) +! getvcol(curwin, &(curwin->w_cursor), &tcol, NULL, NULL); + else + tcol = preedit_end_col; + if ((long)preedit_start_col <= vcol && vcol < (long)tcol) +--- 4270,4276 ---- + colnr_T tcol; + + if (preedit_end_col == MAXCOL) +! getvcol(curwin, &(wp->w_cursor), &tcol, NULL, NULL); + else + tcol = preedit_end_col; + if ((long)preedit_start_col <= vcol && vcol < (long)tcol) +*************** +*** 4365,4371 **** + } + #endif + if (lcs_eol == lcs_eol_one +! && ((area_attr != 0 && vcol == fromcol && c == NUL) + #ifdef FEAT_SEARCH_EXTRA + /* highlight 'hlsearch' match at end of line */ + || (prevcol_hl_flag == TRUE +--- 4367,4379 ---- + } + #endif + if (lcs_eol == lcs_eol_one +! && ((area_attr != 0 && vcol == fromcol +! #ifdef FEAT_VISUAL +! && (VIsual_mode != Ctrl_V +! || lnum == VIsual.lnum +! || lnum == curwin->w_cursor.lnum) +! #endif +! && c == NUL) + #ifdef FEAT_SEARCH_EXTRA + /* highlight 'hlsearch' match at end of line */ + || (prevcol_hl_flag == TRUE +*************** +*** 4459,4465 **** + if (c == NUL) + { + #ifdef FEAT_SYN_HL +! if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol) + { + /* highlight last char after line */ + --col; +--- 4467,4474 ---- + if (c == NUL) + { + #ifdef FEAT_SYN_HL +! if (eol_hl_off > 0 && vcol - eol_hl_off == (long)wp->w_virtcol +! && lnum == wp->w_cursor.lnum) + { + /* highlight last char after line */ + --col; +*** ../vim-7.2.147/src/version.c Wed Mar 18 16:26:31 2009 +--- src/version.c Wed Mar 18 19:05:37 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 148, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +239. You think "surfing" is something you do on dry land. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.149 b/source/ap/vim/patches/7.2.149 new file mode 100644 index 000000000..7b51a571e --- /dev/null +++ b/source/ap/vim/patches/7.2.149 @@ -0,0 +1,672 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.149 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.149 +Problem: Using return value of function that doesn't return a value results + in reading uninitialized memory. +Solution: Set the default to return zero. Make cursor() return -1 on + failure. Let complete() return an empty string in case of an + error. (partly by Dominique Pelle) +Files: runtime/doc/eval.txt, src/eval.c + + +*** ../vim-7.2.148/runtime/doc/eval.txt Tue Dec 9 10:56:50 2008 +--- runtime/doc/eval.txt Sun Mar 22 14:28:49 2009 +*************** +*** 2414,2419 **** +--- 2419,2425 ---- + When 'virtualedit' is used {off} specifies the offset in + screen columns from the start of the character. E.g., a + position within a <Tab> or after the last character. ++ Returns 0 when the position could be set, -1 otherwise. + + + deepcopy({expr}[, {noref}]) *deepcopy()* *E698* +*************** +*** 4516,4521 **** +--- 4526,4532 ---- + should also work to move files across file systems. The + result is a Number, which is 0 if the file was renamed + successfully, and non-zero when the renaming failed. ++ NOTE: If {to} exists it is overwritten without warning. + This function is not available in the |sandbox|. + + repeat({expr}, {count}) *repeat()* +*** ../vim-7.2.148/src/eval.c Wed Feb 4 16:25:53 2009 +--- src/eval.c Sun Mar 22 20:45:18 2009 +*************** +*** 1285,1291 **** +--- 1285,1293 ---- + typval_T tv; + char_u *retval; + garray_T ga; ++ #ifdef FEAT_FLOAT + char_u numbuf[NUMBUFLEN]; ++ #endif + + if (eval0(arg, &tv, nextcmd, TRUE) == FAIL) + retval = NULL; +*************** +*** 8018,8024 **** + /* execute the function if no errors detected and executing */ + if (evaluate && error == ERROR_NONE) + { +! rettv->v_type = VAR_NUMBER; /* default is number rettv */ + error = ERROR_UNKNOWN; + + if (!builtin_function(fname)) +--- 8020,8027 ---- + /* execute the function if no errors detected and executing */ + if (evaluate && error == ERROR_NONE) + { +! rettv->v_type = VAR_NUMBER; /* default rettv is number zero */ +! rettv->vval.v_number = 0; + error = ERROR_UNKNOWN; + + if (!builtin_function(fname)) +*************** +*** 8268,8274 **** + return; + li = l->lv_first; + } +- rettv->vval.v_number = 0; /* Default: Success */ + for (;;) + { + if (l == NULL) +--- 8271,8276 ---- +*************** +*** 8728,8734 **** + int dummy; + dict_T *selfdict = NULL; + +- rettv->vval.v_number = 0; + if (argvars[1].v_type != VAR_LIST) + { + EMSG(_(e_listreq)); +--- 8730,8735 ---- +*************** +*** 9036,9048 **** + if (buttons == NULL || *buttons == NUL) + buttons = (char_u *)_("&Ok"); + +! if (error) +! rettv->vval.v_number = 0; +! else + rettv->vval.v_number = do_dialog(type, NULL, message, buttons, + def, NULL); +- #else +- rettv->vval.v_number = 0; + #endif + } + +--- 9037,9045 ---- + if (buttons == NULL || *buttons == NUL) + buttons = (char_u *)_("&Ok"); + +! if (!error) + rettv->vval.v_number = do_dialog(type, NULL, message, buttons, + def, NULL); + #endif + } + +*************** +*** 9181,9195 **** + } + + rettv->vval.v_number = cs_connection(num, dbpath, prepend); +- #else +- rettv->vval.v_number = 0; + #endif + } + + /* + * "cursor(lnum, col)" function + * +! * Moves the cursor to the specified line and column + */ + /*ARGSUSED*/ + static void +--- 9178,9191 ---- + } + + rettv->vval.v_number = cs_connection(num, dbpath, prepend); + #endif + } + + /* + * "cursor(lnum, col)" function + * +! * Moves the cursor to the specified line and column. +! * Returns 0 when the position could be set, -1 otherwise. + */ + /*ARGSUSED*/ + static void +*************** +*** 9202,9207 **** +--- 9198,9204 ---- + long coladd = 0; + #endif + ++ rettv->vval.v_number = -1; + if (argvars[1].v_type == VAR_UNKNOWN) + { + pos_T pos; +*************** +*** 9246,9251 **** +--- 9243,9249 ---- + #endif + + curwin->w_set_curswant = TRUE; ++ rettv->vval.v_number = 0; + } + + /* +*************** +*** 9291,9298 **** + { + #ifdef FEAT_AUTOCMD + rettv->vval.v_number = did_filetype; +- #else +- rettv->vval.v_number = 0; + #endif + } + +--- 9289,9294 ---- +*************** +*** 9605,9611 **** + typval_T *argvars; + typval_T *rettv; + { +- rettv->vval.v_number = 0; + if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST) + { + list_T *l1, *l2; +--- 9601,9606 ---- +*************** +*** 9733,9739 **** + if (check_secure()) + return; + +- rettv->vval.v_number = 0; + keys = get_tv_string(&argvars[0]); + if (*keys != NUL) + { +--- 9728,9733 ---- +*************** +*** 9901,9907 **** + char_u *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()"; + int save_did_emsg; + +- rettv->vval.v_number = 0; + if (argvars[0].v_type == VAR_LIST) + { + if ((l = argvars[0].vval.v_list) == NULL +--- 9895,9900 ---- +*************** +*** 10084,10091 **** + else + rettv->vval.v_number = (varnumber_T)f; + } +- else +- rettv->vval.v_number = 0; + } + + /* +--- 10077,10082 ---- +*************** +*** 10219,10227 **** + lnum = get_tv_lnum(argvars); + if (lnum >= 1 && lnum <= curbuf->b_ml.ml_line_count) + rettv->vval.v_number = foldLevel(lnum); +- else + #endif +- rettv->vval.v_number = 0; + } + + /* +--- 10210,10216 ---- +*************** +*** 10337,10343 **** + typval_T *argvars; + typval_T *rettv; + { +- rettv->vval.v_number = 0; + #ifdef FEAT_GUI + if (gui.in_use) + gui_mch_set_foreground(); +--- 10326,10331 ---- +*************** +*** 10359,10365 **** + { + char_u *s; + +- rettv->vval.v_number = 0; + s = get_tv_string(&argvars[0]); + if (s == NULL || *s == NUL || VIM_ISDIGIT(*s)) + EMSG2(_(e_invarg2), s); +--- 10347,10352 ---- +*************** +*** 10429,10437 **** + + if (tv == NULL) + { +! if (argvars[2].v_type == VAR_UNKNOWN) +! rettv->vval.v_number = 0; +! else + copy_tv(&argvars[2], rettv); + } + else +--- 10416,10422 ---- + + if (tv == NULL) + { +! if (argvars[2].v_type != VAR_UNKNOWN) + copy_tv(&argvars[2], rettv); + } + else +*************** +*** 10456,10468 **** + { + char_u *p; + +! if (retlist) +! { +! if (rettv_list_alloc(rettv) == FAIL) +! return; +! } +! else +! rettv->vval.v_number = 0; + + if (buf == NULL || buf->b_ml.ml_mfp == NULL || start < 0) + return; +--- 10441,10448 ---- + { + char_u *p; + +! if (retlist && rettv_list_alloc(rettv) == FAIL) +! return; + + if (buf == NULL || buf->b_ml.ml_mfp == NULL || start < 0) + return; +*************** +*** 11009,11016 **** + dict_T *dict; + matchitem_T *cur = curwin->w_match_head; + +- rettv->vval.v_number = 0; +- + if (rettv_list_alloc(rettv) == OK) + { + while (cur != NULL) +--- 10989,10994 ---- +*************** +*** 11089,11095 **** + win_T *wp; + #endif + +- rettv->vval.v_number = 0; + #ifdef FEAT_QUICKFIX + if (rettv_list_alloc(rettv) == OK) + { +--- 11067,11072 ---- +*************** +*** 11935,11941 **** + typval_T *argvars; + typval_T *rettv; + { +- rettv->vval.v_number = 0; + if (argvars[0].v_type != VAR_DICT) + { + EMSG(_(e_dictreq)); +--- 11912,11917 ---- +*************** +*** 12052,12059 **** + n = del_history_entry(get_histtype(str), + get_tv_string_buf(&argvars[1], buf)); + rettv->vval.v_number = n; +- #else +- rettv->vval.v_number = 0; + #endif + } + +--- 12028,12033 ---- +*************** +*** 12415,12421 **** + int selected; + int mouse_used; + +- rettv->vval.v_number = 0; + #ifdef NO_CONSOLE_INPUT + /* While starting up, there is no place to enter text. */ + if (no_console_input()) +--- 12389,12394 ---- +*************** +*** 12464,12470 **** + --ga_userinput.ga_len; + restore_typeahead((tasave_T *)(ga_userinput.ga_data) + + ga_userinput.ga_len); +! rettv->vval.v_number = 0; /* OK */ + } + else if (p_verbose > 1) + { +--- 12437,12443 ---- + --ga_userinput.ga_len; + restore_typeahead((tasave_T *)(ga_userinput.ga_data) + + ga_userinput.ga_len); +! /* default return is zero == OK */ + } + else if (p_verbose > 1) + { +*************** +*** 12488,12494 **** + save_typeahead((tasave_T *)(ga_userinput.ga_data) + + ga_userinput.ga_len); + ++ga_userinput.ga_len; +! rettv->vval.v_number = 0; /* OK */ + } + else + rettv->vval.v_number = 1; /* Failed */ +--- 12461,12467 ---- + save_typeahead((tasave_T *)(ga_userinput.ga_data) + + ga_userinput.ga_len); + ++ga_userinput.ga_len; +! /* default return is zero == OK */ + } + else + rettv->vval.v_number = 1; /* Failed */ +*************** +*** 12522,12528 **** + list_T *l; + int error = FALSE; + +- rettv->vval.v_number = 0; + if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listarg), "insert()"); + else if ((l = argvars[0].vval.v_list) != NULL +--- 12495,12500 ---- +*************** +*** 12641,12647 **** + dict_T *d; + int todo; + +- rettv->vval.v_number = 0; + if (argvars[0].v_type != VAR_DICT) + { + EMSG(_(e_dictreq)); +--- 12613,12618 ---- +*************** +*** 12729,12735 **** + garray_T ga; + char_u *sep; + +- rettv->vval.v_number = 0; + if (argvars[0].v_type != VAR_LIST) + { + EMSG(_(e_listreq)); +--- 12700,12705 ---- +*************** +*** 12827,12835 **** + #endif + + rettv->v_type = type; +! if (type == VAR_NUMBER) +! rettv->vval.v_number = 0; +! else + rettv->vval.v_string = NULL; + + if (check_restricted() || check_secure()) +--- 12797,12803 ---- + #endif + + rettv->v_type = type; +! if (type != VAR_NUMBER) + rettv->vval.v_string = NULL; + + if (check_restricted() || check_secure()) +*************** +*** 13770,13776 **** + typval_T *argvars; + typval_T *rettv; + { +- rettv->vval.v_number = 0; + #ifdef FEAT_INS_EXPAND + if (pum_visible()) + rettv->vval.v_number = 1; +--- 13738,13743 ---- +*************** +*** 13804,13810 **** + stride = get_tv_number_chk(&argvars[2], &error); + } + +- rettv->vval.v_number = 0; + if (error) + return; /* type error; errmsg already given */ + if (stride == 0) +--- 13771,13776 ---- +*************** +*** 14193,14199 **** + typval_T *argvars; + typval_T *rettv; + { +- rettv->vval.v_number = 0; + #ifdef FEAT_CLIENTSERVER + # ifdef WIN32 + /* On Win32 it's done in this application. */ +--- 14159,14164 ---- +*************** +*** 14249,14255 **** + rettv->vval.v_number = (s != NULL); + } + # else +- rettv->vval.v_number = 0; + if (check_connection() == FAIL) + return; + +--- 14214,14219 ---- +*************** +*** 14338,14344 **** + dict_T *d; + dictitem_T *di; + +- rettv->vval.v_number = 0; + if (argvars[0].v_type == VAR_DICT) + { + if (argvars[2].v_type != VAR_UNKNOWN) +--- 14302,14307 ---- +*************** +*** 14696,14702 **** + list_T *l; + listitem_T *li, *ni; + +- rettv->vval.v_number = 0; + if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listarg), "reverse()"); + else if ((l = argvars[0].vval.v_list) != NULL +--- 14659,14664 ---- +*************** +*** 15048,15055 **** + int lnum = 0; + int col = 0; + +- rettv->vval.v_number = 0; +- + if (rettv_list_alloc(rettv) == FAIL) + return; + +--- 15010,15015 ---- +*************** +*** 15236,15243 **** + int n; + int flags = 0; + +- rettv->vval.v_number = 0; +- + if (rettv_list_alloc(rettv) == FAIL) + return; + +--- 15196,15201 ---- +*************** +*** 15323,15330 **** + typval_T *varp; + char_u nbuf[NUMBUFLEN]; + +- rettv->vval.v_number = 0; +- + if (check_restricted() || check_secure()) + return; + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ +--- 15281,15286 ---- +*************** +*** 15404,15410 **** + else + line = get_tv_string_chk(&argvars[1]); + +! rettv->vval.v_number = 0; /* OK */ + for (;;) + { + if (l != NULL) +--- 15360,15366 ---- + else + line = get_tv_string_chk(&argvars[1]); + +! /* default result is zero == OK */ + for (;;) + { + if (l != NULL) +*************** +*** 15717,15722 **** +--- 15673,15679 ---- + /* + * "setwinvar()" and "settabwinvar()" functions + */ ++ /*ARGSUSED*/ + static void + setwinvar(argvars, rettv, off) + typval_T *argvars; +*************** +*** 15733,15740 **** + char_u nbuf[NUMBUFLEN]; + tabpage_T *tp; + +- rettv->vval.v_number = 0; +- + if (check_restricted() || check_secure()) + return; + +--- 15690,15695 ---- +*************** +*** 15947,15953 **** + long len; + long i; + +- rettv->vval.v_number = 0; + if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listarg), "sort()"); + else +--- 15902,15907 ---- +*************** +*** 16870,16878 **** + typval_T *argvars; + typval_T *rettv; + { +! #ifndef FEAT_WINDOWS +! rettv->vval.v_number = 0; +! #else + tabpage_T *tp; + win_T *wp = NULL; + +--- 16824,16830 ---- + typval_T *argvars; + typval_T *rettv; + { +! #ifdef FEAT_WINDOWS + tabpage_T *tp; + win_T *wp = NULL; + +*************** +*** 16884,16902 **** + if (tp != NULL) + wp = (tp == curtab) ? firstwin : tp->tp_firstwin; + } +! if (wp == NULL) +! rettv->vval.v_number = 0; +! else + { +! if (rettv_list_alloc(rettv) == FAIL) +! rettv->vval.v_number = 0; +! else +! { +! for (; wp != NULL; wp = wp->w_next) +! if (list_append_number(rettv->vval.v_list, + wp->w_buffer->b_fnum) == FAIL) +! break; +! } + } + #endif + } +--- 16836,16847 ---- + if (tp != NULL) + wp = (tp == curtab) ? firstwin : tp->tp_firstwin; + } +! if (wp != NULL && rettv_list_alloc(rettv) != FAIL) + { +! for (; wp != NULL; wp = wp->w_next) +! if (list_append_number(rettv->vval.v_list, + wp->w_buffer->b_fnum) == FAIL) +! break; + } + #endif + } +*************** +*** 17024,17033 **** + int first; + + if (rettv_list_alloc(rettv) == FAIL) +- { +- rettv->vval.v_number = 0; + return; +- } + + for (first = TRUE; ; first = FALSE) + if (get_tagfname(&tn, first, fname) == FAIL +--- 16969,16975 ---- +*************** +*** 17401,17408 **** + /* A non-zero number or non-empty string argument: reset mode. */ + if (non_zero_arg(&argvars[0])) + curbuf->b_visual_mode_eval = NUL; +- #else +- rettv->vval.v_number = 0; /* return anything, it won't work anyway */ + #endif + } + +--- 17343,17348 ---- +*** ../vim-7.2.148/src/version.c Wed Mar 18 19:07:09 2009 +--- src/version.c Wed Apr 22 12:44:05 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 149, + /**/ + + +-- +WOMAN: Well, 'ow did you become king then? +ARTHUR: The Lady of the Lake, [angels sing] her arm clad in the purest + shimmering samite, held aloft Excalibur from the bosom of the water + signifying by Divine Providence that I, Arthur, was to carry + Excalibur. [singing stops] That is why I am your king! + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.150 b/source/ap/vim/patches/7.2.150 new file mode 100644 index 000000000..f2b1174ee --- /dev/null +++ b/source/ap/vim/patches/7.2.150 @@ -0,0 +1,1325 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.150 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Note: I haven't tested this myself, since I don't have a compiler that +works for this code. + +Patch 7.2.150 (extra) +Problem: Can't use tab pages from VisVim. +Solution: Add tab page support to VisVim. (Adam Slater) +Files: src/VisVim/Commands.cpp, src/VisVim/Resource.h, + src/VisVim/VisVim.rc + + +*** ../vim-7.2.149/src/VisVim/Commands.cpp Thu May 10 20:45:34 2007 +--- src/VisVim/Commands.cpp Mon Mar 2 00:52:15 2009 +*************** +*** 20,39 **** + + static BOOL g_bEnableVim = TRUE; // Vim enabled + static BOOL g_bDevStudioEditor = FALSE; // Open file in Dev Studio editor simultaneously + static int g_ChangeDir = CD_NONE; // CD after file open? + +! static void VimSetEnableState (BOOL bEnableState); +! static BOOL VimOpenFile (BSTR& FileName, long LineNr); +! static DISPID VimGetDispatchId (COleAutomationControl& VimOle, char* Method); +! static void VimErrDiag (COleAutomationControl& VimOle); +! static void VimChangeDir (COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName); +! static void DebugMsg (char* Msg, char* Arg = NULL); + + + ///////////////////////////////////////////////////////////////////////////// + // CCommands + +! CCommands::CCommands () + { + // m_pApplication == NULL; M$ Code generation bug!!! + m_pApplication = NULL; +--- 20,40 ---- + + static BOOL g_bEnableVim = TRUE; // Vim enabled + static BOOL g_bDevStudioEditor = FALSE; // Open file in Dev Studio editor simultaneously ++ static BOOL g_bNewTabs = FALSE; + static int g_ChangeDir = CD_NONE; // CD after file open? + +! static void VimSetEnableState(BOOL bEnableState); +! static BOOL VimOpenFile(BSTR& FileName, long LineNr); +! static DISPID VimGetDispatchId(COleAutomationControl& VimOle, char* Method); +! static void VimErrDiag(COleAutomationControl& VimOle); +! static void VimChangeDir(COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName); +! static void DebugMsg(char* Msg, char* Arg = NULL); + + + ///////////////////////////////////////////////////////////////////////////// + // CCommands + +! CCommands::CCommands() + { + // m_pApplication == NULL; M$ Code generation bug!!! + m_pApplication = NULL; +*************** +*** 41,57 **** + m_pDebuggerEventsObj = NULL; + } + +! CCommands::~CCommands () + { +! ASSERT (m_pApplication != NULL); + if (m_pApplication) + { +! m_pApplication->Release (); + m_pApplication = NULL; + } + } + +! void CCommands::SetApplicationObject (IApplication * pApplication) + { + // This function assumes pApplication has already been AddRef'd + // for us, which CDSAddIn did in it's QueryInterface call +--- 42,58 ---- + m_pDebuggerEventsObj = NULL; + } + +! CCommands::~CCommands() + { +! ASSERT(m_pApplication != NULL); + if (m_pApplication) + { +! m_pApplication->Release(); + m_pApplication = NULL; + } + } + +! void CCommands::SetApplicationObject(IApplication * pApplication) + { + // This function assumes pApplication has already been AddRef'd + // for us, which CDSAddIn did in it's QueryInterface call +*************** +*** 61,115 **** + return; + + // Create Application event handlers +! XApplicationEventsObj::CreateInstance (&m_pApplicationEventsObj); + if (! m_pApplicationEventsObj) + { +! ReportInternalError ("XApplicationEventsObj::CreateInstance"); + return; + } +! m_pApplicationEventsObj->AddRef (); +! m_pApplicationEventsObj->Connect (m_pApplication); + m_pApplicationEventsObj->m_pCommands = this; + + #ifdef NEVER + // Create Debugger event handler + CComPtr < IDispatch > pDebugger; +! if (SUCCEEDED (m_pApplication->get_Debugger (&pDebugger)) + && pDebugger != NULL) + { +! XDebuggerEventsObj::CreateInstance (&m_pDebuggerEventsObj); +! m_pDebuggerEventsObj->AddRef (); +! m_pDebuggerEventsObj->Connect (pDebugger); + m_pDebuggerEventsObj->m_pCommands = this; + } + #endif + + // Get settings from registry HKEY_CURRENT_USER\Software\Vim\VisVim +! HKEY hAppKey = GetAppKey ("Vim"); + if (hAppKey) + { +! HKEY hSectionKey = GetSectionKey (hAppKey, "VisVim"); + if (hSectionKey) + { +! g_bEnableVim = GetRegistryInt (hSectionKey, "EnableVim", + g_bEnableVim); +! g_bDevStudioEditor = GetRegistryInt(hSectionKey,"DevStudioEditor", +! g_bDevStudioEditor); +! g_ChangeDir = GetRegistryInt (hSectionKey, "ChangeDir", + g_ChangeDir); +! RegCloseKey (hSectionKey); + } +! RegCloseKey (hAppKey); + } + } + +! void CCommands::UnadviseFromEvents () + { +! ASSERT (m_pApplicationEventsObj != NULL); + if (m_pApplicationEventsObj) + { +! m_pApplicationEventsObj->Disconnect (m_pApplication); +! m_pApplicationEventsObj->Release (); + m_pApplicationEventsObj = NULL; + } + +--- 62,118 ---- + return; + + // Create Application event handlers +! XApplicationEventsObj::CreateInstance(&m_pApplicationEventsObj); + if (! m_pApplicationEventsObj) + { +! ReportInternalError("XApplicationEventsObj::CreateInstance"); + return; + } +! m_pApplicationEventsObj->AddRef(); +! m_pApplicationEventsObj->Connect(m_pApplication); + m_pApplicationEventsObj->m_pCommands = this; + + #ifdef NEVER + // Create Debugger event handler + CComPtr < IDispatch > pDebugger; +! if (SUCCEEDED(m_pApplication->get_Debugger(&pDebugger)) + && pDebugger != NULL) + { +! XDebuggerEventsObj::CreateInstance(&m_pDebuggerEventsObj); +! m_pDebuggerEventsObj->AddRef(); +! m_pDebuggerEventsObj->Connect(pDebugger); + m_pDebuggerEventsObj->m_pCommands = this; + } + #endif + + // Get settings from registry HKEY_CURRENT_USER\Software\Vim\VisVim +! HKEY hAppKey = GetAppKey("Vim"); + if (hAppKey) + { +! HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim"); + if (hSectionKey) + { +! g_bEnableVim = GetRegistryInt(hSectionKey, "EnableVim", + g_bEnableVim); +! g_bDevStudioEditor = GetRegistryInt(hSectionKey, +! "DevStudioEditor", g_bDevStudioEditor); +! g_bNewTabs = GetRegistryInt(hSectionKey, "NewTabs", +! g_bNewTabs); +! g_ChangeDir = GetRegistryInt(hSectionKey, "ChangeDir", + g_ChangeDir); +! RegCloseKey(hSectionKey); + } +! RegCloseKey(hAppKey); + } + } + +! void CCommands::UnadviseFromEvents() + { +! ASSERT(m_pApplicationEventsObj != NULL); + if (m_pApplicationEventsObj) + { +! m_pApplicationEventsObj->Disconnect(m_pApplication); +! m_pApplicationEventsObj->Release(); + m_pApplicationEventsObj = NULL; + } + +*************** +*** 121,130 **** + // unadvise from its events (thus the VERIFY_OK below--see + // stdafx.h). + CComPtr < IDispatch > pDebugger; +! VERIFY_OK (m_pApplication->get_Debugger (&pDebugger)); +! ASSERT (pDebugger != NULL); +! m_pDebuggerEventsObj->Disconnect (pDebugger); +! m_pDebuggerEventsObj->Release (); + m_pDebuggerEventsObj = NULL; + } + #endif +--- 124,133 ---- + // unadvise from its events (thus the VERIFY_OK below--see + // stdafx.h). + CComPtr < IDispatch > pDebugger; +! VERIFY_OK(m_pApplication->get_Debugger(&pDebugger)); +! ASSERT(pDebugger != NULL); +! m_pDebuggerEventsObj->Disconnect(pDebugger); +! m_pDebuggerEventsObj->Release(); + m_pDebuggerEventsObj = NULL; + } + #endif +*************** +*** 136,156 **** + + // Application events + +! HRESULT CCommands::XApplicationEvents::BeforeBuildStart () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::BuildFinish (long nNumErrors, long nNumWarnings) + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::BeforeApplicationShutDown () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +--- 139,159 ---- + + // Application events + +! HRESULT CCommands::XApplicationEvents::BeforeBuildStart() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::BuildFinish(long nNumErrors, long nNumWarnings) + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::BeforeApplicationShutDown() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +*************** +*** 158,166 **** + // is done. + // Vim gets called from here. + // +! HRESULT CCommands::XApplicationEvents::DocumentOpen (IDispatch * theDocument) + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + + if (! g_bEnableVim) + // Vim not enabled or empty command line entered +--- 161,169 ---- + // is done. + // Vim gets called from here. + // +! HRESULT CCommands::XApplicationEvents::DocumentOpen(IDispatch * theDocument) + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + + if (! g_bEnableVim) + // Vim not enabled or empty command line entered +*************** +*** 169,175 **** + // First get the current file name and line number + + // Get the document object +! CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc (theDocument); + if (! pDoc) + return S_OK; + +--- 172,178 ---- + // First get the current file name and line number + + // Get the document object +! CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(theDocument); + if (! pDoc) + return S_OK; + +*************** +*** 177,202 **** + long LineNr = -1; + + // Get the document name +! if (FAILED (pDoc->get_FullName (&FileName))) + return S_OK; + + LPDISPATCH pDispSel; + + // Get a selection object dispatch pointer +! if (SUCCEEDED (pDoc->get_Selection (&pDispSel))) + { + // Get the selection object +! CComQIPtr < ITextSelection, &IID_ITextSelection > pSel (pDispSel); + + if (pSel) + // Get the selection line number +! pSel->get_CurrentLine (&LineNr); + +! pDispSel->Release (); + } + + // Open the file in Vim and position to the current line +! if (VimOpenFile (FileName, LineNr)) + { + if (! g_bDevStudioEditor) + { +--- 180,205 ---- + long LineNr = -1; + + // Get the document name +! if (FAILED(pDoc->get_FullName(&FileName))) + return S_OK; + + LPDISPATCH pDispSel; + + // Get a selection object dispatch pointer +! if (SUCCEEDED(pDoc->get_Selection(&pDispSel))) + { + // Get the selection object +! CComQIPtr < ITextSelection, &IID_ITextSelection > pSel(pDispSel); + + if (pSel) + // Get the selection line number +! pSel->get_CurrentLine(&LineNr); + +! pDispSel->Release(); + } + + // Open the file in Vim and position to the current line +! if (VimOpenFile(FileName, LineNr)) + { + if (! g_bDevStudioEditor) + { +*************** +*** 204,233 **** + CComVariant vSaveChanges = dsSaveChangesPrompt; + DsSaveStatus Saved; + +! pDoc->Close (vSaveChanges, &Saved); + } + } + + // We're done here +! SysFreeString (FileName); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::BeforeDocumentClose (IDispatch * theDocument) + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::DocumentSave (IDispatch * theDocument) + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::NewDocument (IDispatch * theDocument) + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + + if (! g_bEnableVim) + // Vim not enabled or empty command line entered +--- 207,236 ---- + CComVariant vSaveChanges = dsSaveChangesPrompt; + DsSaveStatus Saved; + +! pDoc->Close(vSaveChanges, &Saved); + } + } + + // We're done here +! SysFreeString(FileName); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::BeforeDocumentClose(IDispatch * theDocument) + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::DocumentSave(IDispatch * theDocument) + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::NewDocument(IDispatch * theDocument) + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + + if (! g_bEnableVim) + // Vim not enabled or empty command line entered +*************** +*** 235,253 **** + + // First get the current file name and line number + +! CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc (theDocument); + if (! pDoc) + return S_OK; + + BSTR FileName; + HRESULT hr; + +! hr = pDoc->get_FullName (&FileName); +! if (FAILED (hr)) + return S_OK; + + // Open the file in Vim and position to the current line +! if (VimOpenFile (FileName, 0)) + { + if (! g_bDevStudioEditor) + { +--- 238,256 ---- + + // First get the current file name and line number + +! CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(theDocument); + if (! pDoc) + return S_OK; + + BSTR FileName; + HRESULT hr; + +! hr = pDoc->get_FullName(&FileName); +! if (FAILED(hr)) + return S_OK; + + // Open the file in Vim and position to the current line +! if (VimOpenFile(FileName, 0)) + { + if (! g_bDevStudioEditor) + { +*************** +*** 255,303 **** + CComVariant vSaveChanges = dsSaveChangesPrompt; + DsSaveStatus Saved; + +! pDoc->Close (vSaveChanges, &Saved); + } + } + +! SysFreeString (FileName); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::WindowActivate (IDispatch * theWindow) + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::WindowDeactivate (IDispatch * theWindow) + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::WorkspaceOpen () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::WorkspaceClose () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::NewWorkspace () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + + // Debugger event + +! HRESULT CCommands::XDebuggerEvents::BreakpointHit (IDispatch * pBreakpoint) + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + return S_OK; + } + +--- 258,306 ---- + CComVariant vSaveChanges = dsSaveChangesPrompt; + DsSaveStatus Saved; + +! pDoc->Close(vSaveChanges, &Saved); + } + } + +! SysFreeString(FileName); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::WindowActivate(IDispatch * theWindow) + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::WindowDeactivate(IDispatch * theWindow) + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::WorkspaceOpen() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::WorkspaceClose() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +! HRESULT CCommands::XApplicationEvents::NewWorkspace() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + + // Debugger event + +! HRESULT CCommands::XDebuggerEvents::BreakpointHit(IDispatch * pBreakpoint) + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + return S_OK; + } + +*************** +*** 308,324 **** + class CMainDialog : public CDialog + { + public: +! CMainDialog (CWnd * pParent = NULL); // Standard constructor + + //{{AFX_DATA(CMainDialog) + enum { IDD = IDD_ADDINMAIN }; + int m_ChangeDir; + BOOL m_bDevStudioEditor; + //}}AFX_DATA + + //{{AFX_VIRTUAL(CMainDialog) + protected: +! virtual void DoDataExchange (CDataExchange * pDX); // DDX/DDV support + //}}AFX_VIRTUAL + + protected: +--- 311,328 ---- + class CMainDialog : public CDialog + { + public: +! CMainDialog(CWnd * pParent = NULL); // Standard constructor + + //{{AFX_DATA(CMainDialog) + enum { IDD = IDD_ADDINMAIN }; + int m_ChangeDir; + BOOL m_bDevStudioEditor; ++ BOOL m_bNewTabs; + //}}AFX_DATA + + //{{AFX_VIRTUAL(CMainDialog) + protected: +! virtual void DoDataExchange(CDataExchange * pDX); // DDX/DDV support + //}}AFX_VIRTUAL + + protected: +*************** +*** 326,425 **** + afx_msg void OnEnable(); + afx_msg void OnDisable(); + //}}AFX_MSG +! DECLARE_MESSAGE_MAP () + }; + +! CMainDialog::CMainDialog (CWnd * pParent /* =NULL */ ) +! : CDialog (CMainDialog::IDD, pParent) + { + //{{AFX_DATA_INIT(CMainDialog) + m_ChangeDir = -1; + m_bDevStudioEditor = FALSE; + //}}AFX_DATA_INIT + } + +! void CMainDialog::DoDataExchange (CDataExchange * pDX) + { +! CDialog::DoDataExchange (pDX); + //{{AFX_DATA_MAP(CMainDialog) + DDX_Radio(pDX, IDC_CD_SOURCE_PATH, m_ChangeDir); +! DDX_Check (pDX, IDC_DEVSTUDIO_EDITOR, m_bDevStudioEditor); + //}}AFX_DATA_MAP + } + +! BEGIN_MESSAGE_MAP (CMainDialog, CDialog) + //{{AFX_MSG_MAP(CMainDialog) + //}}AFX_MSG_MAP +! END_MESSAGE_MAP () + + + ///////////////////////////////////////////////////////////////////////////// + // CCommands methods + +! STDMETHODIMP CCommands::VisVimDialog () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + + // Use m_pApplication to access the Developer Studio Application + // object, + // and VERIFY_OK to see error strings in DEBUG builds of your add-in + // (see stdafx.h) + +! VERIFY_OK (m_pApplication->EnableModeless (VARIANT_FALSE)); + + CMainDialog Dlg; + + Dlg.m_bDevStudioEditor = g_bDevStudioEditor; + Dlg.m_ChangeDir = g_ChangeDir; +! if (Dlg.DoModal () == IDOK) + { + g_bDevStudioEditor = Dlg.m_bDevStudioEditor; + g_ChangeDir = Dlg.m_ChangeDir; + + // Save settings to registry HKEY_CURRENT_USER\Software\Vim\VisVim +! HKEY hAppKey = GetAppKey ("Vim"); + if (hAppKey) + { +! HKEY hSectionKey = GetSectionKey (hAppKey, "VisVim"); + if (hSectionKey) + { +! WriteRegistryInt (hSectionKey, "DevStudioEditor", + g_bDevStudioEditor); +! WriteRegistryInt (hSectionKey, "ChangeDir", g_ChangeDir); +! RegCloseKey (hSectionKey); + } +! RegCloseKey (hAppKey); + } + } + +! VERIFY_OK (m_pApplication->EnableModeless (VARIANT_TRUE)); + return S_OK; + } + +! STDMETHODIMP CCommands::VisVimEnable () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); +! VimSetEnableState (true); + return S_OK; + } + +! STDMETHODIMP CCommands::VisVimDisable () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); +! VimSetEnableState (false); + return S_OK; + } + +! STDMETHODIMP CCommands::VisVimToggle () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); +! VimSetEnableState (! g_bEnableVim); + return S_OK; + } + +! STDMETHODIMP CCommands::VisVimLoad () + { +! AFX_MANAGE_STATE (AfxGetStaticModuleState ()); + + // Use m_pApplication to access the Developer Studio Application object, + // and VERIFY_OK to see error strings in DEBUG builds of your add-in +--- 330,435 ---- + afx_msg void OnEnable(); + afx_msg void OnDisable(); + //}}AFX_MSG +! DECLARE_MESSAGE_MAP() + }; + +! CMainDialog::CMainDialog(CWnd * pParent /* =NULL */ ) +! : CDialog(CMainDialog::IDD, pParent) + { + //{{AFX_DATA_INIT(CMainDialog) + m_ChangeDir = -1; + m_bDevStudioEditor = FALSE; ++ m_bNewTabs = FALSE; + //}}AFX_DATA_INIT + } + +! void CMainDialog::DoDataExchange(CDataExchange * pDX) + { +! CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CMainDialog) + DDX_Radio(pDX, IDC_CD_SOURCE_PATH, m_ChangeDir); +! DDX_Check(pDX, IDC_DEVSTUDIO_EDITOR, m_bDevStudioEditor); +! DDX_Check(pDX, IDC_NEW_TABS, m_bNewTabs); + //}}AFX_DATA_MAP + } + +! BEGIN_MESSAGE_MAP(CMainDialog, CDialog) + //{{AFX_MSG_MAP(CMainDialog) + //}}AFX_MSG_MAP +! END_MESSAGE_MAP() + + + ///////////////////////////////////////////////////////////////////////////// + // CCommands methods + +! STDMETHODIMP CCommands::VisVimDialog() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + + // Use m_pApplication to access the Developer Studio Application + // object, + // and VERIFY_OK to see error strings in DEBUG builds of your add-in + // (see stdafx.h) + +! VERIFY_OK(m_pApplication->EnableModeless(VARIANT_FALSE)); + + CMainDialog Dlg; + + Dlg.m_bDevStudioEditor = g_bDevStudioEditor; ++ Dlg.m_bNewTabs = g_bNewTabs; + Dlg.m_ChangeDir = g_ChangeDir; +! if (Dlg.DoModal() == IDOK) + { + g_bDevStudioEditor = Dlg.m_bDevStudioEditor; ++ g_bNewTabs = Dlg.m_bNewTabs; + g_ChangeDir = Dlg.m_ChangeDir; + + // Save settings to registry HKEY_CURRENT_USER\Software\Vim\VisVim +! HKEY hAppKey = GetAppKey("Vim"); + if (hAppKey) + { +! HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim"); + if (hSectionKey) + { +! WriteRegistryInt(hSectionKey, "DevStudioEditor", + g_bDevStudioEditor); +! WriteRegistryInt(hSectionKey, "NewTabs", +! g_bNewTabs); +! WriteRegistryInt(hSectionKey, "ChangeDir", g_ChangeDir); +! RegCloseKey(hSectionKey); + } +! RegCloseKey(hAppKey); + } + } + +! VERIFY_OK(m_pApplication->EnableModeless(VARIANT_TRUE)); + return S_OK; + } + +! STDMETHODIMP CCommands::VisVimEnable() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); +! VimSetEnableState(true); + return S_OK; + } + +! STDMETHODIMP CCommands::VisVimDisable() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); +! VimSetEnableState(false); + return S_OK; + } + +! STDMETHODIMP CCommands::VisVimToggle() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); +! VimSetEnableState(! g_bEnableVim); + return S_OK; + } + +! STDMETHODIMP CCommands::VisVimLoad() + { +! AFX_MANAGE_STATE(AfxGetStaticModuleState()); + + // Use m_pApplication to access the Developer Studio Application object, + // and VERIFY_OK to see error strings in DEBUG builds of your add-in +*************** +*** 430,436 **** + CComPtr < IDispatch > pDispDoc, pDispSel; + + // Get a document object dispatch pointer +! VERIFY_OK (m_pApplication->get_ActiveDocument (&pDispDoc)); + if (! pDispDoc) + return S_OK; + +--- 440,446 ---- + CComPtr < IDispatch > pDispDoc, pDispSel; + + // Get a document object dispatch pointer +! VERIFY_OK(m_pApplication->get_ActiveDocument(&pDispDoc)); + if (! pDispDoc) + return S_OK; + +*************** +*** 438,467 **** + long LineNr = -1; + + // Get the document object +! CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc (pDispDoc); + + if (! pDoc) + return S_OK; + + // Get the document name +! if (FAILED (pDoc->get_FullName (&FileName))) + return S_OK; + + // Get a selection object dispatch pointer +! if (SUCCEEDED (pDoc->get_Selection (&pDispSel))) + { + // Get the selection object +! CComQIPtr < ITextSelection, &IID_ITextSelection > pSel (pDispSel); + + if (pSel) + // Get the selection line number +! pSel->get_CurrentLine (&LineNr); + } + + // Open the file in Vim +! VimOpenFile (FileName, LineNr); + +! SysFreeString (FileName); + return S_OK; + } + +--- 448,477 ---- + long LineNr = -1; + + // Get the document object +! CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(pDispDoc); + + if (! pDoc) + return S_OK; + + // Get the document name +! if (FAILED(pDoc->get_FullName(&FileName))) + return S_OK; + + // Get a selection object dispatch pointer +! if (SUCCEEDED(pDoc->get_Selection(&pDispSel))) + { + // Get the selection object +! CComQIPtr < ITextSelection, &IID_ITextSelection > pSel(pDispSel); + + if (pSel) + // Get the selection line number +! pSel->get_CurrentLine(&LineNr); + } + + // Open the file in Vim +! VimOpenFile(FileName, LineNr); + +! SysFreeString(FileName); + return S_OK; + } + +*************** +*** 472,487 **** + + // Set the enable state and save to registry + // +! static void VimSetEnableState (BOOL bEnableState) + { + g_bEnableVim = bEnableState; +! HKEY hAppKey = GetAppKey ("Vim"); + if (hAppKey) + { +! HKEY hSectionKey = GetSectionKey (hAppKey, "VisVim"); + if (hSectionKey) +! WriteRegistryInt (hSectionKey, "EnableVim", g_bEnableVim); +! RegCloseKey (hAppKey); + } + } + +--- 482,497 ---- + + // Set the enable state and save to registry + // +! static void VimSetEnableState(BOOL bEnableState) + { + g_bEnableVim = bEnableState; +! HKEY hAppKey = GetAppKey("Vim"); + if (hAppKey) + { +! HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim"); + if (hSectionKey) +! WriteRegistryInt(hSectionKey, "EnableVim", g_bEnableVim); +! RegCloseKey(hAppKey); + } + } + +*************** +*** 490,496 **** + // letter. + // 'LineNr' must contain a valid line number or 0, e. g. for a new file + // +! static BOOL VimOpenFile (BSTR& FileName, long LineNr) + { + + // OLE automation object for com. with Vim +--- 500,506 ---- + // letter. + // 'LineNr' must contain a valid line number or 0, e. g. for a new file + // +! static BOOL VimOpenFile(BSTR& FileName, long LineNr) + { + + // OLE automation object for com. with Vim +*************** +*** 507,513 **** + // Get a dispatch id for the SendKeys method of Vim; + // enables connection to Vim if necessary + DISPID DispatchId; +! DispatchId = VimGetDispatchId (VimOle, "SendKeys"); + if (! DispatchId) + // OLE error, can't obtain dispatch id + goto OleError; +--- 517,523 ---- + // Get a dispatch id for the SendKeys method of Vim; + // enables connection to Vim if necessary + DISPID DispatchId; +! DispatchId = VimGetDispatchId(VimOle, "SendKeys"); + if (! DispatchId) + // OLE error, can't obtain dispatch id + goto OleError; +*************** +*** 525,544 **** + #ifdef SINGLE_WINDOW + // Update the current file in Vim if it has been modified. + // Disabled, because it could write the file when you don't want to. +! sprintf (VimCmd + 2, ":up\n"); + #endif +! if (! VimOle.Method (DispatchId, "s", TO_OLE_STR_BUF (VimCmd, Buf))) + goto OleError; + + // Change Vim working directory to where the file is if desired + if (g_ChangeDir != CD_NONE) +! VimChangeDir (VimOle, DispatchId, FileName); + + // Make Vim open the file. + // In the filename convert all \ to /, put a \ before a space. +! sprintf(VimCmd, ":drop "); + sprintf(FileNameTmp, "%S", (char *)FileName); +- s = VimCmd + 6; + for (p = FileNameTmp; *p != '\0' && s < FileNameTmp + MAX_OLE_STR - 4; + ++p) + if (*p == '\\') +--- 535,562 ---- + #ifdef SINGLE_WINDOW + // Update the current file in Vim if it has been modified. + // Disabled, because it could write the file when you don't want to. +! sprintf(VimCmd + 2, ":up\n"); + #endif +! if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf))) + goto OleError; + + // Change Vim working directory to where the file is if desired + if (g_ChangeDir != CD_NONE) +! VimChangeDir(VimOle, DispatchId, FileName); + + // Make Vim open the file. + // In the filename convert all \ to /, put a \ before a space. +! if (g_bNewTabs) +! { +! sprintf(VimCmd, ":tab drop "); +! s = VimCmd + 11; +! } +! else +! { +! sprintf(VimCmd, ":drop "); +! s = VimCmd + 6; +! } + sprintf(FileNameTmp, "%S", (char *)FileName); + for (p = FileNameTmp; *p != '\0' && s < FileNameTmp + MAX_OLE_STR - 4; + ++p) + if (*p == '\\') +*************** +*** 552,571 **** + *s++ = '\n'; + *s = '\0'; + +! if (! VimOle.Method (DispatchId, "s", TO_OLE_STR_BUF (VimCmd, Buf))) + goto OleError; + + if (LineNr > 0) + { + // Goto line +! sprintf (VimCmd, ":%d\n", LineNr); +! if (! VimOle.Method (DispatchId, "s", TO_OLE_STR_BUF (VimCmd, Buf))) + goto OleError; + } + + // Make Vim come to the foreground +! if (! VimOle.Method ("SetForeground")) +! VimOle.ErrDiag (); + + // We're done + return true; +--- 570,589 ---- + *s++ = '\n'; + *s = '\0'; + +! if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf))) + goto OleError; + + if (LineNr > 0) + { + // Goto line +! sprintf(VimCmd, ":%d\n", LineNr); +! if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf))) + goto OleError; + } + + // Make Vim come to the foreground +! if (! VimOle.Method("SetForeground")) +! VimOle.ErrDiag(); + + // We're done + return true; +*************** +*** 573,579 **** + OleError: + // There was an OLE error + // Check if it's the "unknown class string" error +! VimErrDiag (VimOle); + return false; + } + +--- 591,597 ---- + OleError: + // There was an OLE error + // Check if it's the "unknown class string" error +! VimErrDiag(VimOle); + return false; + } + +*************** +*** 581,598 **** + // Create the Vim OLE object if necessary + // Returns a valid dispatch id or null on error + // +! static DISPID VimGetDispatchId (COleAutomationControl& VimOle, char* Method) + { + // Initialize Vim OLE connection if not already done +! if (! VimOle.IsCreated ()) + { +! if (! VimOle.CreateObject ("Vim.Application")) + return NULL; + } + + // Get the dispatch id for the SendKeys method. + // By doing this, we are checking if Vim is still there... +! DISPID DispatchId = VimOle.GetDispatchId ("SendKeys"); + if (! DispatchId) + { + // We can't get a dispatch id. +--- 599,616 ---- + // Create the Vim OLE object if necessary + // Returns a valid dispatch id or null on error + // +! static DISPID VimGetDispatchId(COleAutomationControl& VimOle, char* Method) + { + // Initialize Vim OLE connection if not already done +! if (! VimOle.IsCreated()) + { +! if (! VimOle.CreateObject("Vim.Application")) + return NULL; + } + + // Get the dispatch id for the SendKeys method. + // By doing this, we are checking if Vim is still there... +! DISPID DispatchId = VimOle.GetDispatchId("SendKeys"); + if (! DispatchId) + { + // We can't get a dispatch id. +*************** +*** 604,615 **** + // should not be kept long enough to allow the user to terminate Vim + // to avoid memory corruption (why the heck is there no system garbage + // collection for those damned OLE memory chunks???). +! VimOle.DeleteObject (); +! if (! VimOle.CreateObject ("Vim.Application")) + // If this create fails, it's time for an error msg + return NULL; + +! if (! (DispatchId = VimOle.GetDispatchId ("SendKeys"))) + // There is something wrong... + return NULL; + } +--- 622,633 ---- + // should not be kept long enough to allow the user to terminate Vim + // to avoid memory corruption (why the heck is there no system garbage + // collection for those damned OLE memory chunks???). +! VimOle.DeleteObject(); +! if (! VimOle.CreateObject("Vim.Application")) + // If this create fails, it's time for an error msg + return NULL; + +! if (! (DispatchId = VimOle.GetDispatchId("SendKeys"))) + // There is something wrong... + return NULL; + } +*************** +*** 620,639 **** + // Output an error message for an OLE error + // Check on the classstring error, which probably means Vim wasn't registered. + // +! static void VimErrDiag (COleAutomationControl& VimOle) + { +! SCODE sc = GetScode (VimOle.GetResult ()); + if (sc == CO_E_CLASSSTRING) + { + char Buf[256]; +! sprintf (Buf, "There is no registered OLE automation server named " + "\"Vim.Application\".\n" + "Use the OLE-enabled version of Vim with VisVim and " + "make sure to register Vim by running \"vim -register\"."); +! MessageBox (NULL, Buf, "OLE Error", MB_OK); + } + else +! VimOle.ErrDiag (); + } + + // Change directory to the directory the file 'FileName' is in or it's parent +--- 638,657 ---- + // Output an error message for an OLE error + // Check on the classstring error, which probably means Vim wasn't registered. + // +! static void VimErrDiag(COleAutomationControl& VimOle) + { +! SCODE sc = GetScode(VimOle.GetResult()); + if (sc == CO_E_CLASSSTRING) + { + char Buf[256]; +! sprintf(Buf, "There is no registered OLE automation server named " + "\"Vim.Application\".\n" + "Use the OLE-enabled version of Vim with VisVim and " + "make sure to register Vim by running \"vim -register\"."); +! MessageBox(NULL, Buf, "OLE Error", MB_OK); + } + else +! VimOle.ErrDiag(); + } + + // Change directory to the directory the file 'FileName' is in or it's parent +*************** +*** 644,650 **** + // CD_SOURCE_PATH + // CD_SOURCE_PARENT + // +! static void VimChangeDir (COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName) + { + // Do a :cd first + +--- 662,668 ---- + // CD_SOURCE_PATH + // CD_SOURCE_PARENT + // +! static void VimChangeDir(COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName) + { + // Do a :cd first + +*************** +*** 655,661 **** + char DirUnix[_MAX_DIR * 2]; + char *s, *t; + +! _splitpath (StrFileName, Drive, Dir, NULL, NULL); + + // Convert to Unix path name format, escape spaces. + t = DirUnix; +--- 673,679 ---- + char DirUnix[_MAX_DIR * 2]; + char *s, *t; + +! _splitpath(StrFileName, Drive, Dir, NULL, NULL); + + // Convert to Unix path name format, escape spaces. + t = DirUnix; +*************** +*** 676,694 **** + OLECHAR Buf[MAX_OLE_STR]; + char VimCmd[MAX_OLE_STR]; + +! sprintf (VimCmd, ":cd %s%s%s\n", Drive, DirUnix, + g_ChangeDir == CD_SOURCE_PARENT && DirUnix[1] ? ".." : ""); +! VimOle.Method (DispatchId, "s", TO_OLE_STR_BUF (VimCmd, Buf)); + } + + #ifdef _DEBUG + // Print out a debug message + // +! static void DebugMsg (char* Msg, char* Arg) + { + char Buf[400]; +! sprintf (Buf, Msg, Arg); +! AfxMessageBox (Buf); + } + #endif +- +--- 694,711 ---- + OLECHAR Buf[MAX_OLE_STR]; + char VimCmd[MAX_OLE_STR]; + +! sprintf(VimCmd, ":cd %s%s%s\n", Drive, DirUnix, + g_ChangeDir == CD_SOURCE_PARENT && DirUnix[1] ? ".." : ""); +! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf)); + } + + #ifdef _DEBUG + // Print out a debug message + // +! static void DebugMsg(char* Msg, char* Arg) + { + char Buf[400]; +! sprintf(Buf, Msg, Arg); +! AfxMessageBox(Buf); + } + #endif +*** ../vim-7.2.149/src/VisVim/Resource.h Sun Jun 13 19:17:32 2004 +--- src/VisVim/Resource.h Mon Mar 2 00:39:21 2009 +*************** +*** 16,21 **** +--- 16,22 ---- + #define IDC_CD_SOURCE_PATH 1001 + #define IDC_CD_SOURCE_PARENT 1002 + #define IDC_CD_NONE 1003 ++ #define IDC_NEW_TABS 1004 + + // Next default values for new objects + // +*** ../vim-7.2.149/src/VisVim/VisVim.rc Sun Jun 13 19:38:03 2004 +--- src/VisVim/VisVim.rc Mon Mar 2 00:40:19 2009 +*************** +*** 122,127 **** +--- 122,130 ---- + CONTROL "&Open file in DevStudio editor simultaneously", + IDC_DEVSTUDIO_EDITOR,"Button",BS_AUTOCHECKBOX | WS_GROUP | + WS_TABSTOP,7,7,153,10 ++ CONTROL "Open files in new tabs", ++ IDC_NEW_TABS,"Button",BS_AUTOCHECKBOX | WS_GROUP | ++ WS_TABSTOP,7,21,153,10 + GROUPBOX "Current directory",IDC_STATIC,7,35,164,58,WS_GROUP + CONTROL "Set to &source file path",IDC_CD_SOURCE_PATH,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,17,49,85,10 +*** ../vim-7.2.149/src/version.c Wed Apr 22 12:53:31 2009 +--- src/version.c Wed Apr 22 13:04:32 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 150, + /**/ + +-- +A poem: read aloud: + +<> !*''# Waka waka bang splat tick tick hash, +^"`$$- Caret quote back-tick dollar dollar dash, +!*=@$_ Bang splat equal at dollar under-score, +%*<> ~#4 Percent splat waka waka tilde number four, +&[]../ Ampersand bracket bracket dot dot slash, +|{,,SYSTEM HALTED Vertical-bar curly-bracket comma comma CRASH. + +Fred Bremmer and Steve Kroese (Calvin College & Seminary of Grand Rapids, MI.) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.151 b/source/ap/vim/patches/7.2.151 new file mode 100644 index 000000000..214b76091 --- /dev/null +++ b/source/ap/vim/patches/7.2.151 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.151 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.151 +Problem: ":hist a" doesn't work like ":hist all" as the docs suggest. +Solution: Make ":hist a" and ":hist al" work. (Dominique Pelle) +Files: src/ex_getln.c + + +*** ../vim-7.2.150/src/ex_getln.c Wed Mar 18 12:50:58 2009 +--- src/ex_getln.c Sun Apr 12 13:36:06 2009 +*************** +*** 5686,5692 **** + histype1 = get_histtype(arg); + if (histype1 == -1) + { +! if (STRICMP(arg, "all") == 0) + { + histype1 = 0; + histype2 = HIST_COUNT-1; +--- 5686,5692 ---- + histype1 = get_histtype(arg); + if (histype1 == -1) + { +! if (STRNICMP(arg, "all", STRLEN(arg)) == 0) + { + histype1 = 0; + histype2 = HIST_COUNT-1; +*** ../vim-7.2.150/src/version.c Wed Apr 22 13:06:11 2009 +--- src/version.c Wed Apr 22 13:49:41 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 151, + /**/ + +-- +I'm sure that I asked CBuilder to do a "full" install. Looks like I got +a "fool" install, instead. Charles E Campbell, Jr, PhD + + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.152 b/source/ap/vim/patches/7.2.152 new file mode 100644 index 000000000..107a0a4bf --- /dev/null +++ b/source/ap/vim/patches/7.2.152 @@ -0,0 +1,104 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.152 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.152 +Problem: When using "silent echo x" inside ":redir" a next echo may start + halfway the line. (Tony Mechelynck, Dennis Benzinger) +Solution: Reset msg_col after redirecting silently. +Files: src/ex_docmd.c, src/message.c, src/proto/message.pro + + +*** ../vim-7.2.151/src/ex_docmd.c Wed Mar 18 12:50:58 2009 +--- src/ex_docmd.c Wed Apr 22 11:57:49 2009 +*************** +*** 2699,2704 **** +--- 2699,2709 ---- + /* Restore msg_scroll, it's set by file I/O commands, even when no + * message is actually displayed. */ + msg_scroll = save_msg_scroll; ++ ++ /* "silent reg" or "silent echo x" inside "redir" leaves msg_col ++ * somewhere in the line. Put it back in the first column. */ ++ if (redirecting()) ++ msg_col = 0; + } + + #ifdef HAVE_SANDBOX +*** ../vim-7.2.151/src/message.c Tue Feb 24 04:36:50 2009 +--- src/message.c Sun Apr 12 14:08:25 2009 +*************** +*** 3023,3033 **** + if (*p_vfile != NUL) + verbose_write(s, maxlen); + +! if (redir_fd != NULL +! #ifdef FEAT_EVAL +! || redir_reg || redir_vname +! #endif +! ) + { + /* If the string doesn't start with CR or NL, go to msg_col */ + if (*s != '\n' && *s != '\r') +--- 3023,3029 ---- + if (*p_vfile != NUL) + verbose_write(s, maxlen); + +! if (redirecting()) + { + /* If the string doesn't start with CR or NL, go to msg_col */ + if (*s != '\n' && *s != '\r') +*************** +*** 3074,3079 **** +--- 3070,3085 ---- + } + } + ++ int ++ redirecting() ++ { ++ return redir_fd != NULL ++ #ifdef FEAT_EVAL ++ || redir_reg || redir_vname ++ #endif ++ ; ++ } ++ + /* + * Before giving verbose message. + * Must always be called paired with verbose_leave()! +*** ../vim-7.2.151/src/proto/message.pro Sat May 5 19:35:34 2007 +--- src/proto/message.pro Sun Apr 12 14:08:50 2009 +*************** +*** 54,59 **** +--- 54,60 ---- + void msg_clr_cmdline __ARGS((void)); + int msg_end __ARGS((void)); + void msg_check __ARGS((void)); ++ int redirecting __ARGS((void)); + void verbose_enter __ARGS((void)); + void verbose_leave __ARGS((void)); + void verbose_enter_scroll __ARGS((void)); +*** ../vim-7.2.151/src/version.c Wed Apr 22 13:50:14 2009 +--- src/version.c Wed Apr 22 14:40:22 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 152, + /**/ + +-- +Q: How does a UNIX Guru pick up a girl? +A: look; grep; which; eval; nice; uname; talk; date; + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.153 b/source/ap/vim/patches/7.2.153 new file mode 100644 index 000000000..79b2a0778 --- /dev/null +++ b/source/ap/vim/patches/7.2.153 @@ -0,0 +1,97 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.153 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.153 +Problem: Memory leak for ":recover empty_dir/". +Solution: Free files[] when it becomes empty. (Dominique Pelle) +Files: src/memline.c + + +*** ../vim-7.2.152/src/memline.c Sun Jul 13 19:40:43 2008 +--- src/memline.c Wed Apr 22 11:48:35 2009 +*************** +*** 1554,1563 **** + for (i = 0; i < num_files; ++i) + if (fullpathcmp(p, files[i], TRUE) & FPC_SAME) + { + vim_free(files[i]); +! --num_files; +! for ( ; i < num_files; ++i) +! files[i] = files[i + 1]; + } + } + if (nr > 0) +--- 1554,1568 ---- + for (i = 0; i < num_files; ++i) + if (fullpathcmp(p, files[i], TRUE) & FPC_SAME) + { ++ /* Remove the name from files[i]. Move further entries ++ * down. When the array becomes empty free it here, since ++ * FreeWild() won't be called below. */ + vim_free(files[i]); +! if (--num_files == 0) +! vim_free(files); +! else +! for ( ; i < num_files; ++i) +! files[i] = files[i + 1]; + } + } + if (nr > 0) +*************** +*** 3522,3528 **** + if (errno == EINVAL || errno == ENOENT) + { + /* Found non-symlink or not existing file, stop here. +! * When at the first level use the unmodifed name, skip the + * call to vim_FullName(). */ + if (depth == 1) + return FAIL; +--- 3527,3533 ---- + if (errno == EINVAL || errno == ENOENT) + { + /* Found non-symlink or not existing file, stop here. +! * When at the first level use the unmodified name, skip the + * call to vim_FullName(). */ + if (depth == 1) + return FAIL; +*************** +*** 4560,4566 **** + buf->b_ml.ml_chunksize + curix, + (buf->b_ml.ml_usedchunks - curix) * + sizeof(chunksize_T)); +! /* Compute length of first half of lines in the splitted chunk */ + size = 0; + linecnt = 0; + while (curline < buf->b_ml.ml_line_count +--- 4568,4574 ---- + buf->b_ml.ml_chunksize + curix, + (buf->b_ml.ml_usedchunks - curix) * + sizeof(chunksize_T)); +! /* Compute length of first half of lines in the split chunk */ + size = 0; + linecnt = 0; + while (curline < buf->b_ml.ml_line_count +*** ../vim-7.2.152/src/version.c Wed Apr 22 14:42:26 2009 +--- src/version.c Wed Apr 22 15:34:18 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 153, + /**/ + +-- +Windows +M!uqoms + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.154 b/source/ap/vim/patches/7.2.154 new file mode 100644 index 000000000..732890327 --- /dev/null +++ b/source/ap/vim/patches/7.2.154 @@ -0,0 +1,71 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.154 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.154 (after 7.2.132) +Problem: ":cd" is still possible in a SwapExists autocmd. +Solution: Set allbuf_lock in do_swapexists(). +Files: src/memline.c + + +*** ../vim-7.2.153/src/memline.c Wed Apr 22 15:37:12 2009 +--- src/memline.c Wed Apr 22 15:54:48 2009 +*************** +*** 3771,3778 **** + set_vim_var_string(VV_SWAPCHOICE, NULL, -1); + + /* Trigger SwapExists autocommands with <afile> set to the file being +! * edited. */ + apply_autocmds(EVENT_SWAPEXISTS, buf->b_fname, NULL, FALSE, NULL); + + set_vim_var_string(VV_SWAPNAME, NULL, -1); + +--- 3771,3780 ---- + set_vim_var_string(VV_SWAPCHOICE, NULL, -1); + + /* Trigger SwapExists autocommands with <afile> set to the file being +! * edited. Disallow changing directory here. */ +! ++allbuf_lock; + apply_autocmds(EVENT_SWAPEXISTS, buf->b_fname, NULL, FALSE, NULL); ++ --allbuf_lock; + + set_vim_var_string(VV_SWAPNAME, NULL, -1); + +*************** +*** 3798,3803 **** +--- 3800,3806 ---- + * + * Note: If BASENAMELEN is not correct, you will get error messages for + * not being able to open the swapfile ++ * Note: May trigger SwapExists autocmd, pointers may change! + */ + static char_u * + findswapname(buf, dirp, old_fname) +*** ../vim-7.2.153/src/version.c Wed Apr 22 15:37:12 2009 +--- src/version.c Wed Apr 22 15:55:48 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 154, + /**/ + +-- +ARTHUR: Be quiet! +DENNIS: Well you can't expect to wield supreme executive power just 'cause + some watery tart threw a sword at you! +ARTHUR: Shut up! +DENNIS: I mean, if I went around sayin' I was an empereror just because some + moistened bint had lobbed a scimitar at me they'd put me away! + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.155 b/source/ap/vim/patches/7.2.155 new file mode 100644 index 000000000..00b294df5 --- /dev/null +++ b/source/ap/vim/patches/7.2.155 @@ -0,0 +1,45 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.155 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.155 +Problem: Memory leak in ":function /pat". +Solution: Free the memory. (Dominique Pelle) +Files: src/eval.c + + +*** ../vim-7.2.154/src/eval.c Wed Apr 22 12:53:31 2009 +--- src/eval.c Wed Apr 22 16:04:34 2009 +*************** +*** 19720,19725 **** +--- 19720,19726 ---- + list_func_head(fp, FALSE); + } + } ++ vim_free(regmatch.regprog); + } + } + if (*p == '/') +*** ../vim-7.2.154/src/version.c Wed Apr 22 15:56:27 2009 +--- src/version.c Wed Apr 22 16:07:27 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 155, + /**/ + +-- +Q: How many hardware engineers does it take to change a lightbulb? +A: None. We'll fix it in software. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.156 b/source/ap/vim/patches/7.2.156 new file mode 100644 index 000000000..59bb2e9e1 --- /dev/null +++ b/source/ap/vim/patches/7.2.156 @@ -0,0 +1,181 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.156 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.156 (after 7.2.143) +Problem: No completion for :scscope and :lcscope commands. +Solution: Implement the completion. (Dominique Pelle) +Files: src/if_cscope.c, src/ex_docmd.c, src/proto/if_cscope.pro + + +*** ../vim-7.2.155/src/if_cscope.c Wed Mar 18 14:30:46 2009 +--- src/if_cscope.c Wed Apr 22 11:57:49 2009 +*************** +*** 98,103 **** +--- 98,104 ---- + static enum + { + EXP_CSCOPE_SUBCMD, /* expand ":cscope" sub-commands */ ++ EXP_SCSCOPE_SUBCMD, /* expand ":scscope" sub-commands */ + EXP_CSCOPE_FIND, /* expand ":cscope find" arguments */ + EXP_CSCOPE_KILL /* expand ":cscope kill" arguments */ + } expand_what; +*************** +*** 112,123 **** +--- 113,135 ---- + expand_T *xp; + int idx; + { ++ int current_idx; ++ int i; ++ + switch (expand_what) + { + case EXP_CSCOPE_SUBCMD: + /* Complete with sub-commands of ":cscope": + * add, find, help, kill, reset, show */ + return (char_u *)cs_cmds[idx].name; ++ case EXP_SCSCOPE_SUBCMD: ++ /* Complete with sub-commands of ":scscope": same sub-commands as ++ * ":cscope" but skip commands which don't support split windows */ ++ for (i = 0, current_idx = 0; cs_cmds[i].name != NULL; i++) ++ if (cs_cmds[i].cansplit) ++ if (current_idx++ == idx) ++ break; ++ return (char_u *)cs_cmds[i].name; + case EXP_CSCOPE_FIND: + { + const char *query_type[] = +*************** +*** 133,147 **** + } + case EXP_CSCOPE_KILL: + { +- int i; +- int current_idx = 0; + static char_u connection[2]; + + /* ":cscope kill" accepts connection numbers or partial names of + * the pathname of the cscope database as argument. Only complete + * with connection numbers. -1 can also be used to kill all + * connections. */ +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (csinfo[i].fname == NULL) + continue; +--- 145,157 ---- + } + case EXP_CSCOPE_KILL: + { + static char_u connection[2]; + + /* ":cscope kill" accepts connection numbers or partial names of + * the pathname of the cscope database as argument. Only complete + * with connection numbers. -1 can also be used to kill all + * connections. */ +! for (i = 0, current_idx = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (csinfo[i].fname == NULL) + continue; +*************** +*** 165,180 **** + * Handle command line completion for :cscope command. + */ + void +! set_context_in_cscope_cmd(xp, arg) + expand_T *xp; + char_u *arg; + { + char_u *p; + + /* Default: expand subcommands */ + xp->xp_context = EXPAND_CSCOPE; +- expand_what = EXP_CSCOPE_SUBCMD; + xp->xp_pattern = arg; + + /* (part of) subcommand already typed */ + if (*arg != NUL) +--- 175,192 ---- + * Handle command line completion for :cscope command. + */ + void +! set_context_in_cscope_cmd(xp, arg, cmdidx) + expand_T *xp; + char_u *arg; ++ cmdidx_T cmdidx; + { + char_u *p; + + /* Default: expand subcommands */ + xp->xp_context = EXPAND_CSCOPE; + xp->xp_pattern = arg; ++ expand_what = (cmdidx == CMD_scscope) ++ ? EXP_SCSCOPE_SUBCMD : EXP_CSCOPE_SUBCMD; + + /* (part of) subcommand already typed */ + if (*arg != NUL) +*** ../vim-7.2.155/src/ex_docmd.c Wed Apr 22 14:42:26 2009 +--- src/ex_docmd.c Wed Apr 22 11:57:49 2009 +*************** +*** 3690,3696 **** + break; + #ifdef FEAT_CSCOPE + case CMD_cscope: +! set_context_in_cscope_cmd(xp, arg); + break; + #endif + #ifdef FEAT_LISTCMDS +--- 3690,3698 ---- + break; + #ifdef FEAT_CSCOPE + case CMD_cscope: +! case CMD_lcscope: +! case CMD_scscope: +! set_context_in_cscope_cmd(xp, arg, ea.cmdidx); + break; + #endif + #ifdef FEAT_LISTCMDS +*** ../vim-7.2.155/src/proto/if_cscope.pro Wed Mar 18 12:50:58 2009 +--- src/proto/if_cscope.pro Wed Apr 22 11:57:49 2009 +*************** +*** 1,6 **** + /* if_cscope.c */ + char_u *get_cscope_name __ARGS((expand_T *xp, int idx)); +! void set_context_in_cscope_cmd __ARGS((expand_T *xp, char_u *arg)); + void do_cscope __ARGS((exarg_T *eap)); + void do_scscope __ARGS((exarg_T *eap)); + void do_cstag __ARGS((exarg_T *eap)); +--- 1,6 ---- + /* if_cscope.c */ + char_u *get_cscope_name __ARGS((expand_T *xp, int idx)); +! void set_context_in_cscope_cmd __ARGS((expand_T *xp, char_u *arg, cmdidx_T cmdidx)); + void do_cscope __ARGS((exarg_T *eap)); + void do_scscope __ARGS((exarg_T *eap)); + void do_cstag __ARGS((exarg_T *eap)); +*** ../vim-7.2.155/src/version.c Wed Apr 22 16:07:57 2009 +--- src/version.c Wed Apr 22 16:21:43 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 156, + /**/ + +-- +ARTHUR: Shut up! Will you shut up! +DENNIS: Ah, now we see the violence inherent in the system. +ARTHUR: Shut up! +DENNIS: Oh! Come and see the violence inherent in the system! + HELP! HELP! I'm being repressed! + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.157 b/source/ap/vim/patches/7.2.157 new file mode 100644 index 000000000..238431452 --- /dev/null +++ b/source/ap/vim/patches/7.2.157 @@ -0,0 +1,144 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.157 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.157 +Problem: Illegal memory access when searching in path. +Solution: Avoid looking at a byte after end of a string. (Dominique Pelle) +Files: src/search.c + + +*** ../vim-7.2.156/src/search.c Fri Jul 18 12:05:58 2008 +--- src/search.c Wed Apr 22 12:26:19 2009 +*************** +*** 2327,2334 **** + for (col = pos.col; check_prevcol(linep, col, '\\', &col);) + bslcnt++; + } +! /* Only accept a match when 'M' is in 'cpo' or when ecaping is +! * what we expect. */ + if (cpo_bsl || (bslcnt & 1) == match_escaped) + { + if (c == initc) +--- 2336,2343 ---- + for (col = pos.col; check_prevcol(linep, col, '\\', &col);) + bslcnt++; + } +! /* Only accept a match when 'M' is in 'cpo' or when escaping +! * is what we expect. */ + if (cpo_bsl || (bslcnt & 1) == match_escaped) + { + if (c == initc) +*************** +*** 4663,4669 **** + msg_putchar('\n'); /* cursor below last one */ + if (!got_int) /* don't display if 'q' + typed at "--more--" +! mesage */ + { + msg_home_replace_hl(new_fname); + MSG_PUTS(_(" (includes previously listed match)")); +--- 4672,4678 ---- + msg_putchar('\n'); /* cursor below last one */ + if (!got_int) /* don't display if 'q' + typed at "--more--" +! message */ + { + msg_home_replace_hl(new_fname); + MSG_PUTS(_(" (includes previously listed match)")); +*************** +*** 4975,4981 **** + || IObuff[i-2] == '!')))) + IObuff[i++] = ' '; + } +! /* copy as much as posible of the new word */ + if (p - aux >= IOSIZE - i) + p = aux + IOSIZE - i - 1; + STRNCPY(IObuff + i, aux, p - aux); +--- 4984,4990 ---- + || IObuff[i-2] == '!')))) + IObuff[i++] = ' '; + } +! /* copy as much as possible of the new word */ + if (p - aux >= IOSIZE - i) + p = aux + IOSIZE - i - 1; + STRNCPY(IObuff + i, aux, p - aux); +*************** +*** 5010,5016 **** + if (did_show) + msg_putchar('\n'); /* cursor below last one */ + if (!got_int) /* don't display if 'q' typed +! at "--more--" mesage */ + msg_home_replace_hl(curr_fname); + prev_fname = curr_fname; + } +--- 5019,5025 ---- + if (did_show) + msg_putchar('\n'); /* cursor below last one */ + if (!got_int) /* don't display if 'q' typed +! at "--more--" message */ + msg_home_replace_hl(curr_fname); + prev_fname = curr_fname; + } +*************** +*** 5092,5098 **** + } + if (action != ACTION_SHOW) + { +! curwin->w_cursor.col = (colnr_T) (startp - line); + curwin->w_set_curswant = TRUE; + } + +--- 5101,5107 ---- + } + if (action != ACTION_SHOW) + { +! curwin->w_cursor.col = (colnr_T)(startp - line); + curwin->w_set_curswant = TRUE; + } + +*************** +*** 5119,5125 **** + && action == ACTION_EXPAND + && !(compl_cont_status & CONT_SOL) + #endif +! && *(p = startp + 1)) + goto search_line; + } + line_breakcheck(); +--- 5128,5135 ---- + && action == ACTION_EXPAND + && !(compl_cont_status & CONT_SOL) + #endif +! && *startp != NUL +! && *(p = startp + 1) != NUL) + goto search_line; + } + line_breakcheck(); +*** ../vim-7.2.156/src/version.c Wed Apr 22 16:22:44 2009 +--- src/version.c Wed Apr 22 16:39:59 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 157, + /**/ + + +-- +ARTHUR: Bloody peasant! +DENNIS: Oh, what a give away. Did you hear that, did you hear that, eh? + That's what I'm on about -- did you see him repressing me, you saw it + didn't you? + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.158 b/source/ap/vim/patches/7.2.158 new file mode 100644 index 000000000..87daf24df --- /dev/null +++ b/source/ap/vim/patches/7.2.158 @@ -0,0 +1,63 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.158 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.158 +Problem: Warnings from VisualC compiler. +Solution: Add type casts. (George Reilly) +Files: src/ops.c + + +*** ../vim-7.2.157/src/ops.c Wed Mar 11 16:26:01 2009 +--- src/ops.c Wed Apr 22 13:01:46 2009 +*************** +*** 495,504 **** + block_space_width = non_white_col - oap->start_vcol; + /* We will shift by "total" or "block_space_width", whichever is less. + */ +! shift_amount = (block_space_width < total? block_space_width: total); + + /* The column to which we will shift the text. */ +! destination_col = non_white_col - shift_amount; + + /* Now let's find out how much of the beginning of the line we can + * reuse without modification. */ +--- 495,505 ---- + block_space_width = non_white_col - oap->start_vcol; + /* We will shift by "total" or "block_space_width", whichever is less. + */ +! shift_amount = (block_space_width < (size_t)total +! ? block_space_width : (size_t)total); + + /* The column to which we will shift the text. */ +! destination_col = (colnr_T)(non_white_col - shift_amount); + + /* Now let's find out how much of the beginning of the line we can + * reuse without modification. */ +*** ../vim-7.2.157/src/version.c Wed Apr 22 16:42:24 2009 +--- src/version.c Wed Apr 22 17:42:19 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 158, + /**/ + +-- +ARTHUR: What? +BLACK KNIGHT: None shall pass. +ARTHUR: I have no quarrel with you, good Sir knight, but I must cross + this bridge. +BLACK KNIGHT: Then you shall die. + The Quest for the Holy Grail (Monty Python) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.159 b/source/ap/vim/patches/7.2.159 new file mode 100644 index 000000000..8d496ad87 --- /dev/null +++ b/source/ap/vim/patches/7.2.159 @@ -0,0 +1,71 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.159 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.159 +Problem: When $x_includes ends up being "NONE" configure fails. +Solution: Check for $x_includes not to be "NONE" (Rainer) +Files: src/auto/configure, src/configure.in + + +*** ../vim-7.2.158/src/auto/configure Mon Mar 2 02:44:54 2009 +--- src/auto/configure Wed Apr 22 14:37:24 2009 +*************** +*** 15519,15525 **** + if test "$enable_multibyte" = "yes"; then + cflags_save=$CFLAGS + ldflags_save=$LDFLAGS +! if test -n "$x_includes" ; then + CFLAGS="$CFLAGS -I$x_includes" + LDFLAGS="$X_LIBS $LDFLAGS -lX11" + { $as_echo "$as_me:$LINENO: checking whether X_LOCALE needed" >&5 +--- 15519,15525 ---- + if test "$enable_multibyte" = "yes"; then + cflags_save=$CFLAGS + ldflags_save=$LDFLAGS +! if test "x$x_includes" != "xNONE" ; then + CFLAGS="$CFLAGS -I$x_includes" + LDFLAGS="$X_LIBS $LDFLAGS -lX11" + { $as_echo "$as_me:$LINENO: checking whether X_LOCALE needed" >&5 +*** ../vim-7.2.158/src/configure.in Mon Mar 2 02:44:54 2009 +--- src/configure.in Wed Apr 22 14:35:57 2009 +*************** +*** 2952,2958 **** + if test "$enable_multibyte" = "yes"; then + cflags_save=$CFLAGS + ldflags_save=$LDFLAGS +! if test -n "$x_includes" ; then + CFLAGS="$CFLAGS -I$x_includes" + LDFLAGS="$X_LIBS $LDFLAGS -lX11" + AC_MSG_CHECKING(whether X_LOCALE needed) +--- 2952,2958 ---- + if test "$enable_multibyte" = "yes"; then + cflags_save=$CFLAGS + ldflags_save=$LDFLAGS +! if test "x$x_includes" != "xNONE" ; then + CFLAGS="$CFLAGS -I$x_includes" + LDFLAGS="$X_LIBS $LDFLAGS -lX11" + AC_MSG_CHECKING(whether X_LOCALE needed) +*** ../vim-7.2.158/src/version.c Wed Apr 22 17:42:53 2009 +--- src/version.c Wed Apr 22 17:49:50 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 159, + /**/ + +-- +"Hegel was right when he said that we learn from history that man can +never learn anything from history." (George Bernard Shaw) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.160 b/source/ap/vim/patches/7.2.160 new file mode 100644 index 000000000..9ef197d4e --- /dev/null +++ b/source/ap/vim/patches/7.2.160 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.160 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.160 +Problem: Search pattern not freed on exit when 'rightleft' set. +Solution: Free mr_pattern_alloced. +Files: src/search.c + + +*** ../vim-7.2.159/src/search.c Wed Apr 22 16:42:24 2009 +--- src/search.c Wed Apr 22 12:26:19 2009 +*************** +*** 345,350 **** +--- 345,359 ---- + { + vim_free(spats[0].pat); + vim_free(spats[1].pat); ++ ++ # ifdef FEAT_RIGHTLEFT ++ if (mr_pattern_alloced) ++ { ++ vim_free(mr_pattern); ++ mr_pattern_alloced = FALSE; ++ mr_pattern = NULL; ++ } ++ # endif + } + #endif + +*** ../vim-7.2.159/src/version.c Wed Apr 22 17:50:53 2009 +--- src/version.c Wed Apr 22 18:42:25 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 160, + /**/ + +-- + f y cn rd ths thn y cn hv grt jb n cmptr prgrmmng + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.161 b/source/ap/vim/patches/7.2.161 new file mode 100644 index 000000000..576a03da9 --- /dev/null +++ b/source/ap/vim/patches/7.2.161 @@ -0,0 +1,205 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.161 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.161 +Problem: Folds messed up in other tab page. (Vlad Irnov) +Solution: Instead of going over all windows in current tab page go over all + windows in all tab pages. Also free memory for location lists in + other tab pages when exiting. (Lech Lorens) +Files: src/fileio.c, src/mark.c, src/misc1.c, src/misc2.c + + +*** ../vim-7.2.160/src/fileio.c Wed Mar 18 15:40:03 2009 +--- src/fileio.c Wed Apr 22 15:46:35 2009 +*************** +*** 6846,6855 **** + #endif + #ifdef FEAT_FOLDING + { +! win_T *wp; + + /* Update folds unless they are defined manually. */ +! FOR_ALL_WINDOWS(wp) + if (wp->w_buffer == curwin->w_buffer + && !foldmethodIsManual(wp)) + foldUpdateAll(wp); +--- 6846,6856 ---- + #endif + #ifdef FEAT_FOLDING + { +! win_T *wp; +! tabpage_T *tp; + + /* Update folds unless they are defined manually. */ +! FOR_ALL_TAB_WINDOWS(tp, wp) + if (wp->w_buffer == curwin->w_buffer + && !foldmethodIsManual(wp)) + foldUpdateAll(wp); +*** ../vim-7.2.160/src/mark.c Sun Nov 9 13:43:25 2008 +--- src/mark.c Wed Apr 22 17:32:29 2009 +*************** +*** 1023,1028 **** +--- 1023,1031 ---- + int fnum = curbuf->b_fnum; + linenr_T *lp; + win_T *win; ++ #ifdef FEAT_WINDOWS ++ tabpage_T *tab; ++ #endif + + if (line2 < line1 && amount_after == 0L) /* nothing to do */ + return; +*************** +*** 1064,1070 **** + /* quickfix marks */ + qf_mark_adjust(NULL, line1, line2, amount, amount_after); + /* location lists */ +! FOR_ALL_WINDOWS(win) + qf_mark_adjust(win, line1, line2, amount, amount_after); + #endif + +--- 1067,1073 ---- + /* quickfix marks */ + qf_mark_adjust(NULL, line1, line2, amount, amount_after); + /* location lists */ +! FOR_ALL_TAB_WINDOWS(tab, win) + qf_mark_adjust(win, line1, line2, amount, amount_after); + #endif + +*************** +*** 1086,1092 **** + /* + * Adjust items in all windows related to the current buffer. + */ +! FOR_ALL_WINDOWS(win) + { + #ifdef FEAT_JUMPLIST + if (!cmdmod.lockmarks) +--- 1089,1095 ---- + /* + * Adjust items in all windows related to the current buffer. + */ +! FOR_ALL_TAB_WINDOWS(tab, win) + { + #ifdef FEAT_JUMPLIST + if (!cmdmod.lockmarks) +*** ../vim-7.2.160/src/misc1.c Wed Mar 18 15:40:03 2009 +--- src/misc1.c Wed Apr 22 17:32:46 2009 +*************** +*** 2717,2722 **** +--- 2717,2725 ---- + long xtra; + { + win_T *wp; ++ #ifdef FEAT_WINDOWS ++ tabpage_T *tp; ++ #endif + int i; + #ifdef FEAT_JUMPLIST + int cols; +*************** +*** 2769,2775 **** + curbuf->b_changelistlen = JUMPLISTSIZE - 1; + mch_memmove(curbuf->b_changelist, curbuf->b_changelist + 1, + sizeof(pos_T) * (JUMPLISTSIZE - 1)); +! FOR_ALL_WINDOWS(wp) + { + /* Correct position in changelist for other windows on + * this buffer. */ +--- 2772,2778 ---- + curbuf->b_changelistlen = JUMPLISTSIZE - 1; + mch_memmove(curbuf->b_changelist, curbuf->b_changelist + 1, + sizeof(pos_T) * (JUMPLISTSIZE - 1)); +! FOR_ALL_TAB_WINDOWS(tp, wp) + { + /* Correct position in changelist for other windows on + * this buffer. */ +*************** +*** 2777,2783 **** + --wp->w_changelistidx; + } + } +! FOR_ALL_WINDOWS(wp) + { + /* For other windows, if the position in the changelist is + * at the end it stays at the end. */ +--- 2780,2786 ---- + --wp->w_changelistidx; + } + } +! FOR_ALL_TAB_WINDOWS(tp, wp) + { + /* For other windows, if the position in the changelist is + * at the end it stays at the end. */ +*************** +*** 2796,2802 **** + #endif + } + +! FOR_ALL_WINDOWS(wp) + { + if (wp->w_buffer == curbuf) + { +--- 2799,2805 ---- + #endif + } + +! FOR_ALL_TAB_WINDOWS(tp, wp) + { + if (wp->w_buffer == curbuf) + { +*** ../vim-7.2.160/src/misc2.c Wed Mar 11 17:27:46 2009 +--- src/misc2.c Wed Apr 22 15:46:35 2009 +*************** +*** 1075,1085 **** + + #ifdef FEAT_QUICKFIX + { +! win_T *win; + + qf_free_all(NULL); + /* Free all location lists */ +! FOR_ALL_WINDOWS(win) + qf_free_all(win); + } + #endif +--- 1075,1086 ---- + + #ifdef FEAT_QUICKFIX + { +! win_T *win; +! tabpage_T *tab; + + qf_free_all(NULL); + /* Free all location lists */ +! FOR_ALL_TAB_WINDOWS(tab, win) + qf_free_all(win); + } + #endif +*** ../vim-7.2.160/src/version.c Wed Apr 22 18:43:06 2009 +--- src/version.c Wed Apr 29 10:59:01 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 161, + /**/ + +-- +CONCORDE: Quickly, sir, come this way! +LAUNCELOT: No! It's not right for my idiom. I must escape more ... more ... +CONCORDE: Dramatically, sir? +LAUNCELOT: Dramatically. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.162 b/source/ap/vim/patches/7.2.162 new file mode 100644 index 000000000..f04d6e1b3 --- /dev/null +++ b/source/ap/vim/patches/7.2.162 @@ -0,0 +1,75 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.162 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.162 +Problem: The quickfix window may get wrong filetype. +Solution: Do not detect the filetype for the quickfix window. (Lech Lorens) +Files: src/quickfix.c + + +*** ../vim-7.2.161/src/quickfix.c Sun Feb 22 02:36:36 2009 +--- src/quickfix.c Wed Apr 22 17:34:57 2009 +*************** +*** 2346,2352 **** + set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", + OPT_LOCAL); + set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL); +! set_option_value((char_u *)"diff", 0L, NULL, OPT_LOCAL); + } + + /* Only set the height when still in the same tab page and there is no +--- 2346,2358 ---- + set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix", + OPT_LOCAL); + set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL); +! #ifdef FEAT_DIFF +! curwin->w_p_diff = FALSE; +! #endif +! #ifdef FEAT_FOLDING +! set_option_value((char_u *)"fdm", 0L, (char_u *)"manual", +! OPT_LOCAL); +! #endif + } + + /* Only set the height when still in the same tab page and there is no +*************** +*** 2607,2616 **** +--- 2613,2624 ---- + curbuf->b_p_ma = FALSE; + + #ifdef FEAT_AUTOCMD ++ keep_filetype = TRUE; /* don't detect 'filetype' */ + apply_autocmds(EVENT_BUFREADPOST, (char_u *)"quickfix", NULL, + FALSE, curbuf); + apply_autocmds(EVENT_BUFWINENTER, (char_u *)"quickfix", NULL, + FALSE, curbuf); ++ keep_filetype = FALSE; + #endif + + /* make sure it will be redrawn */ +*** ../vim-7.2.161/src/version.c Wed Apr 29 11:00:09 2009 +--- src/version.c Wed Apr 29 11:49:09 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 162, + /**/ + +-- +Yesterday is history. +Tomorrow is a mystery. +Today is a gift. +That's why it is called 'present'. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.163 b/source/ap/vim/patches/7.2.163 new file mode 100644 index 000000000..6db9f0986 --- /dev/null +++ b/source/ap/vim/patches/7.2.163 @@ -0,0 +1,51 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.163 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.163 +Problem: The command line window may get folding. +Solution: Default to no/manual folding. (Lech Lorens) +Files: src/ex_getln.c + + +*** ../vim-7.2.162/src/ex_getln.c Wed Apr 22 13:50:14 2009 +--- src/ex_getln.c Wed Apr 22 16:12:54 2009 +*************** +*** 6073,6078 **** +--- 6073,6081 ---- + set_option_value((char_u *)"bt", 0L, (char_u *)"nofile", OPT_LOCAL); + set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL); + curbuf->b_p_ma = TRUE; ++ #ifdef FEAT_FOLDING ++ curwin->w_p_fen = FALSE; ++ #endif + # ifdef FEAT_RIGHTLEFT + curwin->w_p_rl = cmdmsg_rl; + cmdmsg_rl = FALSE; +*** ../vim-7.2.162/src/version.c Wed Apr 29 11:49:57 2009 +--- src/version.c Wed Apr 29 12:02:56 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 163, + /**/ + +-- + [SIR LAUNCELOT runs back up the stairs, grabs a rope + of the wall and swings out over the heads of the CROWD in a + swashbuckling manner towards a large window. He stops just short + of the window and is left swing pathetically back and forth.] +LAUNCELOT: Excuse me ... could somebody give me a push ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.164 b/source/ap/vim/patches/7.2.164 new file mode 100644 index 000000000..f10bd210f --- /dev/null +++ b/source/ap/vim/patches/7.2.164 @@ -0,0 +1,139 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.164 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.164 +Problem: When 'showbreak' is set the size of the Visual block may be + reported wrong. (Eduardo Daudt Flach) +Solution: Temporarily make 'sbr' empty. +Files: src/normal.c, src/ops.c + + +*** ../vim-7.2.163/src/normal.c Sat Feb 21 20:27:00 2009 +--- src/normal.c Wed Apr 22 18:30:20 2009 +*************** +*** 3709,3721 **** + #ifdef FEAT_VISUAL + if (VIsual_active && !char_avail()) + { +! int i = lt(VIsual, curwin->w_cursor); + long lines; + colnr_T leftcol, rightcol; + linenr_T top, bot; + + /* Show the size of the Visual area. */ +! if (i) + { + top = VIsual.lnum; + bot = curwin->w_cursor.lnum; +--- 3709,3721 ---- + #ifdef FEAT_VISUAL + if (VIsual_active && !char_avail()) + { +! int cursor_bot = lt(VIsual, curwin->w_cursor); + long lines; + colnr_T leftcol, rightcol; + linenr_T top, bot; + + /* Show the size of the Visual area. */ +! if (cursor_bot) + { + top = VIsual.lnum; + bot = curwin->w_cursor.lnum; +*************** +*** 3734,3747 **** + + if (VIsual_mode == Ctrl_V) + { + getvcols(curwin, &curwin->w_cursor, &VIsual, &leftcol, &rightcol); + sprintf((char *)showcmd_buf, "%ldx%ld", lines, + (long)(rightcol - leftcol + 1)); + } + else if (VIsual_mode == 'V' || VIsual.lnum != curwin->w_cursor.lnum) + sprintf((char *)showcmd_buf, "%ld", lines); + else +! sprintf((char *)showcmd_buf, "%ld", (long)(i + ? curwin->w_cursor.col - VIsual.col + : VIsual.col - curwin->w_cursor.col) + (*p_sel != 'e')); + showcmd_buf[SHOWCMD_COLS] = NUL; /* truncate */ +--- 3734,3756 ---- + + if (VIsual_mode == Ctrl_V) + { ++ #ifdef FEAT_LINEBREAK ++ char_u *saved_sbr = p_sbr; ++ ++ /* Make 'sbr' empty for a moment to get the correct size. */ ++ p_sbr = empty_option; ++ #endif + getvcols(curwin, &curwin->w_cursor, &VIsual, &leftcol, &rightcol); ++ #ifdef FEAT_LINEBREAK ++ p_sbr = saved_sbr; ++ #endif + sprintf((char *)showcmd_buf, "%ldx%ld", lines, + (long)(rightcol - leftcol + 1)); + } + else if (VIsual_mode == 'V' || VIsual.lnum != curwin->w_cursor.lnum) + sprintf((char *)showcmd_buf, "%ld", lines); + else +! sprintf((char *)showcmd_buf, "%ld", (long)(cursor_bot + ? curwin->w_cursor.col - VIsual.col + : VIsual.col - curwin->w_cursor.col) + (*p_sel != 'e')); + showcmd_buf[SHOWCMD_COLS] = NUL; /* truncate */ +*** ../vim-7.2.163/src/ops.c Wed Apr 22 17:42:53 2009 +--- src/ops.c Wed Apr 22 18:30:07 2009 +*************** +*** 392,398 **** + colnr_T ws_vcol; + int i = 0, j = 0; + int len; +- + #ifdef FEAT_RIGHTLEFT + int old_p_ri = p_ri; + +--- 392,397 ---- +*************** +*** 6284,6294 **** +--- 6283,6302 ---- + + if (VIsual_mode == Ctrl_V) + { ++ #ifdef FEAT_LINEBREAK ++ char_u * saved_sbr = p_sbr; ++ ++ /* Make 'sbr' empty for a moment to get the correct size. */ ++ p_sbr = empty_option; ++ #endif + oparg.is_VIsual = 1; + oparg.block_mode = TRUE; + oparg.op_type = OP_NOP; + getvcols(curwin, &min_pos, &max_pos, + &oparg.start_vcol, &oparg.end_vcol); ++ #ifdef FEAT_LINEBREAK ++ p_sbr = saved_sbr; ++ #endif + if (curwin->w_curswant == MAXCOL) + oparg.end_vcol = MAXCOL; + /* Swap the start, end vcol if needed */ +*** ../vim-7.2.163/src/version.c Wed Apr 29 12:03:35 2009 +--- src/version.c Wed Apr 29 17:38:05 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 164, + /**/ + +-- +There are 10 kinds of people: Those who understand binary and those who don't. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.165 b/source/ap/vim/patches/7.2.165 new file mode 100644 index 000000000..aeded0a0f --- /dev/null +++ b/source/ap/vim/patches/7.2.165 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.165 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.165 +Problem: The argument for the FuncUndefined autocmd event is expanded like + a file name. +Solution: Don't try expanding it. (Wang Xu) +Files: src/fileio.c + + +*** ../vim-7.2.164/src/fileio.c Wed Apr 29 11:00:09 2009 +--- src/fileio.c Wed Apr 29 18:01:06 2009 +*************** +*** 8785,8793 **** + else + { + sfname = vim_strsave(fname); +! /* Don't try expanding FileType, Syntax, WindowID or QuickFixCmd* */ + if (event == EVENT_FILETYPE + || event == EVENT_SYNTAX + || event == EVENT_REMOTEREPLY + || event == EVENT_SPELLFILEMISSING + || event == EVENT_QUICKFIXCMDPRE +--- 8785,8795 ---- + else + { + sfname = vim_strsave(fname); +! /* Don't try expanding FileType, Syntax, FuncUndefined, WindowID or +! * QuickFixCmd* */ + if (event == EVENT_FILETYPE + || event == EVENT_SYNTAX ++ || event == EVENT_FUNCUNDEFINED + || event == EVENT_REMOTEREPLY + || event == EVENT_SPELLFILEMISSING + || event == EVENT_QUICKFIXCMDPRE +*** ../vim-7.2.164/src/version.c Wed Apr 29 17:39:17 2009 +--- src/version.c Wed Apr 29 18:00:43 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 165, + /**/ + +-- +Be nice to your kids... they'll be the ones choosing your nursing home. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.166 b/source/ap/vim/patches/7.2.166 new file mode 100644 index 000000000..0461b31dd --- /dev/null +++ b/source/ap/vim/patches/7.2.166 @@ -0,0 +1,425 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.166 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.166 +Problem: No completion for ":sign" command. +Solution: Add ":sign" completion. (Dominique Pelle) +Files: src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/vim.h, + src/proto/ex_cmds.pro + + +*** ../vim-7.2.165/src/ex_cmds.c Tue Feb 24 04:28:40 2009 +--- src/ex_cmds.c Wed Apr 29 17:08:27 2009 +*************** +*** 6543,6562 **** + static void sign_list_defined __ARGS((sign_T *sp)); + static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev)); + +! /* +! * ":sign" command +! */ +! void +! ex_sign(eap) +! exarg_T *eap; +! { +! char_u *arg = eap->arg; +! char_u *p; +! int idx; +! sign_T *sp; +! sign_T *sp_prev; +! buf_T *buf; +! static char *cmds[] = { + "define", + #define SIGNCMD_DEFINE 0 + "undefine", +--- 6543,6549 ---- + static void sign_list_defined __ARGS((sign_T *sp)); + static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev)); + +! static char *cmds[] = { + "define", + #define SIGNCMD_DEFINE 0 + "undefine", +*************** +*** 6569,6590 **** + #define SIGNCMD_UNPLACE 4 + "jump", + #define SIGNCMD_JUMP 5 + #define SIGNCMD_LAST 6 +! }; + + /* Parse the subcommand. */ + p = skiptowhite(arg); +! if (*p != NUL) +! *p++ = NUL; +! for (idx = 0; ; ++idx) + { +! if (idx == SIGNCMD_LAST) +! { +! EMSG2(_("E160: Unknown sign command: %s"), arg); +! return; +! } +! if (STRCMP(arg, cmds[idx]) == 0) +! break; + } + arg = skipwhite(p); + +--- 6556,6606 ---- + #define SIGNCMD_UNPLACE 4 + "jump", + #define SIGNCMD_JUMP 5 ++ NULL + #define SIGNCMD_LAST 6 +! }; +! +! /* +! * Find index of a ":sign" subcmd from its name. +! * "*end_cmd" must be writable. +! */ +! static int +! sign_cmd_idx(begin_cmd, end_cmd) +! char *begin_cmd; /* begin of sign subcmd */ +! char *end_cmd; /* just after sign subcmd */ +! { +! int idx; +! char save = *end_cmd; +! +! *end_cmd = NUL; +! for (idx = 0; ; ++idx) +! if (cmds[idx] == NULL || STRCMP(begin_cmd, cmds[idx]) == 0) +! break; +! *end_cmd = save; +! return idx; +! } +! +! /* +! * ":sign" command +! */ +! void +! ex_sign(eap) +! exarg_T *eap; +! { +! char_u *arg = eap->arg; +! char_u *p; +! int idx; +! sign_T *sp; +! sign_T *sp_prev; +! buf_T *buf; + + /* Parse the subcommand. */ + p = skiptowhite(arg); +! idx = sign_cmd_idx(arg, p); +! if (idx == SIGNCMD_LAST) + { +! EMSG2(_("E160: Unknown sign command: %s"), arg); +! return; + } + arg = skipwhite(p); + +*************** +*** 7110,7115 **** +--- 7126,7311 ---- + } + #endif + ++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO) ++ static enum ++ { ++ EXP_SUBCMD, /* expand :sign sub-commands */ ++ EXP_DEFINE, /* expand :sign define {name} args */ ++ EXP_PLACE, /* expand :sign place {id} args */ ++ EXP_UNPLACE, /* expand :sign unplace" */ ++ EXP_SIGN_NAMES /* expand with name of placed signs */ ++ } expand_what; ++ ++ /* ++ * Function given to ExpandGeneric() to obtain the sign command ++ * expansion. ++ */ ++ /*ARGSUSED*/ ++ char_u * ++ get_sign_name(xp, idx) ++ expand_T *xp; ++ int idx; ++ { ++ sign_T *sp; ++ int current_idx; ++ ++ switch (expand_what) ++ { ++ case EXP_SUBCMD: ++ return (char_u *)cmds[idx]; ++ case EXP_DEFINE: ++ { ++ char *define_arg[] = ++ { ++ "icon=", "linehl=", "text=", "texthl=", NULL ++ }; ++ return (char_u *)define_arg[idx]; ++ } ++ case EXP_PLACE: ++ { ++ char *place_arg[] = ++ { ++ "line=", "name=", "file=", "buffer=", NULL ++ }; ++ return (char_u *)place_arg[idx]; ++ } ++ case EXP_UNPLACE: ++ { ++ char *unplace_arg[] = { "file=", "buffer=", NULL }; ++ return (char_u *)unplace_arg[idx]; ++ } ++ case EXP_SIGN_NAMES: ++ /* Complete with name of signs already defined */ ++ current_idx = 0; ++ for (sp = first_sign; sp != NULL; sp = sp->sn_next) ++ if (current_idx++ == idx) ++ return sp->sn_name; ++ return NULL; ++ default: ++ return NULL; ++ } ++ } ++ ++ /* ++ * Handle command line completion for :sign command. ++ */ ++ void ++ set_context_in_sign_cmd(xp, arg) ++ expand_T *xp; ++ char_u *arg; ++ { ++ char_u *p; ++ char_u *end_subcmd; ++ char_u *last; ++ int cmd_idx; ++ char_u *begin_subcmd_args; ++ ++ /* Default: expand subcommands. */ ++ xp->xp_context = EXPAND_SIGN; ++ expand_what = EXP_SUBCMD; ++ xp->xp_pattern = arg; ++ ++ end_subcmd = skiptowhite(arg); ++ if (*end_subcmd == NUL) ++ /* expand subcmd name ++ * :sign {subcmd}<CTRL-D>*/ ++ return; ++ ++ cmd_idx = sign_cmd_idx(arg, end_subcmd); ++ ++ /* :sign {subcmd} {subcmd_args} ++ * | ++ * begin_subcmd_args */ ++ begin_subcmd_args = skipwhite(end_subcmd); ++ p = skiptowhite(begin_subcmd_args); ++ if (*p == NUL) ++ { ++ /* ++ * Expand first argument of subcmd when possible. ++ * For ":jump {id}" and ":unplace {id}", we could ++ * possibly expand the ids of all signs already placed. ++ */ ++ xp->xp_pattern = begin_subcmd_args; ++ switch (cmd_idx) ++ { ++ case SIGNCMD_LIST: ++ case SIGNCMD_UNDEFINE: ++ /* :sign list <CTRL-D> ++ * :sign undefine <CTRL-D> */ ++ expand_what = EXP_SIGN_NAMES; ++ break; ++ default: ++ xp->xp_context = EXPAND_NOTHING; ++ } ++ return; ++ } ++ ++ /* expand last argument of subcmd */ ++ ++ /* :sign define {name} {args}... ++ * | ++ * p */ ++ ++ /* Loop until reaching last argument. */ ++ do ++ { ++ p = skipwhite(p); ++ last = p; ++ p = skiptowhite(p); ++ } while (*p != NUL); ++ ++ p = vim_strchr(last, '='); ++ ++ /* :sign define {name} {args}... {last}= ++ * | | ++ * last p */ ++ if (p == NUL) ++ { ++ /* Expand last argument name (before equal sign). */ ++ xp->xp_pattern = last; ++ switch (cmd_idx) ++ { ++ case SIGNCMD_DEFINE: ++ expand_what = EXP_DEFINE; ++ break; ++ case SIGNCMD_PLACE: ++ expand_what = EXP_PLACE; ++ break; ++ case SIGNCMD_JUMP: ++ case SIGNCMD_UNPLACE: ++ expand_what = EXP_UNPLACE; ++ break; ++ default: ++ xp->xp_context = EXPAND_NOTHING; ++ } ++ } ++ else ++ { ++ /* Expand last argument value (after equal sign). */ ++ xp->xp_pattern = p + 1; ++ switch (cmd_idx) ++ { ++ case SIGNCMD_DEFINE: ++ if (STRNCMP(last, "texthl", p - last) == 0 || ++ STRNCMP(last, "linehl", p - last) == 0) ++ xp->xp_context = EXPAND_HIGHLIGHT; ++ else if (STRNCMP(last, "icon", p - last) == 0) ++ xp->xp_context = EXPAND_FILES; ++ else ++ xp->xp_context = EXPAND_NOTHING; ++ break; ++ case SIGNCMD_PLACE: ++ if (STRNCMP(last, "name", p - last) == 0) ++ expand_what = EXP_SIGN_NAMES; ++ else ++ xp->xp_context = EXPAND_NOTHING; ++ break; ++ default: ++ xp->xp_context = EXPAND_NOTHING; ++ } ++ } ++ } ++ #endif + #endif + + #if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO) +*** ../vim-7.2.165/src/ex_docmd.c Wed Apr 22 16:22:44 2009 +--- src/ex_docmd.c Wed Apr 29 17:05:23 2009 +*************** +*** 3695,3700 **** +--- 3695,3705 ---- + set_context_in_cscope_cmd(xp, arg, ea.cmdidx); + break; + #endif ++ #ifdef FEAT_SIGNS ++ case CMD_sign: ++ set_context_in_sign_cmd(xp, arg); ++ break; ++ #endif + #ifdef FEAT_LISTCMDS + case CMD_bdelete: + case CMD_bwipeout: +*************** +*** 5218,5223 **** +--- 5223,5231 ---- + {EXPAND_MENUS, "menu"}, + {EXPAND_SETTINGS, "option"}, + {EXPAND_SHELLCMD, "shellcmd"}, ++ #if defined(FEAT_SIGNS) ++ {EXPAND_SIGN, "sign"}, ++ #endif + {EXPAND_TAGS, "tag"}, + {EXPAND_TAGS_LISTFILES, "tag_listfiles"}, + {EXPAND_USER_VARS, "var"}, +*** ../vim-7.2.165/src/ex_getln.c Wed Apr 29 12:03:35 2009 +--- src/ex_getln.c Wed Apr 29 12:51:42 2009 +*************** +*** 325,331 **** + #endif + + #ifdef FEAT_DIGRAPHS +! do_digraph(-1); /* init digraph typahead */ + #endif + + /* +--- 325,331 ---- + #endif + + #ifdef FEAT_DIGRAPHS +! do_digraph(-1); /* init digraph typeahead */ + #endif + + /* +*************** +*** 4521,4526 **** +--- 4521,4529 ---- + #ifdef FEAT_CSCOPE + {EXPAND_CSCOPE, get_cscope_name, TRUE}, + #endif ++ #ifdef FEAT_SIGNS ++ {EXPAND_SIGN, get_sign_name, TRUE}, ++ #endif + #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \ + && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE)) + {EXPAND_LANGUAGE, get_lang_arg, TRUE}, +*** ../vim-7.2.165/src/vim.h Wed Mar 18 12:50:58 2009 +--- src/vim.h Wed Apr 29 12:51:42 2009 +*************** +*** 709,714 **** +--- 709,715 ---- + #define EXPAND_USER_LIST 31 + #define EXPAND_SHELLCMD 32 + #define EXPAND_CSCOPE 33 ++ #define EXPAND_SIGN 34 + + /* Values for exmode_active (0 is no exmode) */ + #define EXMODE_NORMAL 1 +*** ../vim-7.2.165/src/proto/ex_cmds.pro Tue Feb 24 04:28:40 2009 +--- src/proto/ex_cmds.pro Wed Apr 29 17:10:29 2009 +*************** +*** 40,46 **** + int read_viminfo_sub_string __ARGS((vir_T *virp, int force)); + void write_viminfo_sub_string __ARGS((FILE *fp)); + void free_old_sub __ARGS((void)); +- void free_signs __ARGS((void)); + int prepare_tagpreview __ARGS((int undo_sync)); + void ex_help __ARGS((exarg_T *eap)); + char_u *check_help_lang __ARGS((char_u *arg)); +--- 40,45 ---- +*************** +*** 56,60 **** +--- 55,62 ---- + char_u *sign_get_text __ARGS((int typenr)); + void *sign_get_image __ARGS((int typenr)); + char_u *sign_typenr2name __ARGS((int typenr)); ++ void free_signs __ARGS((void)); ++ char_u *get_sign_name __ARGS((expand_T *xp, int idx)); ++ void set_context_in_sign_cmd __ARGS((expand_T *xp, char_u *arg)); + void ex_drop __ARGS((exarg_T *eap)); + /* vim: set ft=c : */ +*** ../vim-7.2.165/src/version.c Wed Apr 29 18:01:23 2009 +--- src/version.c Wed Apr 29 18:43:14 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 166, + /**/ + +-- +Did you ever stop to think... and forget to start again? + -- Steven Wright + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.167 b/source/ap/vim/patches/7.2.167 new file mode 100644 index 000000000..9bf08e625 --- /dev/null +++ b/source/ap/vim/patches/7.2.167 @@ -0,0 +1,1873 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.167 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.167 +Problem: Splint doesn't work well for checking the code. +Solution: Add splint arguments in the Makefile. Exclude some code from + splint that it can't handle. Tune splint arguments to give + reasonable errors. Add a filter for removing false warnings from + splint output. Many small changes to avoid warnings. More to + follow... +Files: Filelist, src/Makefile, src/buffer.c, src/charset.c, + src/cleanlint.vim, src/digraph.c, src/edit.c, src/ex_cmds.c, + src/globals.h, src/ops.c, src/os_unix.c, src/os_unix.h, + src/proto/buffer.pro, src/proto/edit.pro, src/screen.c, + src/structs.h + +*** ../vim-7.2.166/Filelist 2008-09-20 16:26:10.000000000 +0200 +--- Filelist 2009-05-05 21:45:49.000000000 +0200 +*************** +*** 139,144 **** +--- 139,145 ---- + src/INSTALL \ + src/INSTALLx.txt \ + src/Makefile \ ++ src/cleanlint.vim \ + src/auto/configure \ + src/config.aap.in \ + src/config.h.in \ +*************** +*** 683,691 **** + runtime/spell/??/main.aap \ + runtime/spell/yi/README.txt \ + runtime/spell/main.aap \ +- runtime/spell/cleanadd.vim \ + runtime/spell/*.vim \ +- runtime/spell/fixdup \ + + # generic language files, binary + LANG_GEN_BIN = \ +--- 684,690 ---- +*** ../vim-7.2.166/src/Makefile 2009-04-29 18:44:45.000000000 +0200 +--- src/Makefile 2009-05-06 00:23:15.000000000 +0200 +*************** +*** 551,557 **** + # }}} + + # LINT - for running lint +! LINT_OPTIONS = -beprxzF + + # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof. + # Might not work with GUI or Perl. +--- 551,562 ---- + # }}} + + # LINT - for running lint +! # For standard lint +! #LINT = lint +! #LINT_OPTIONS = -beprxzF +! # For splint (see cleanlint.vim for filtering the output) +! LINT = splint +! LINT_OPTIONS = +unixlib -weak -macrovarprefixexclude -showfunc -linelen 9999 + + # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof. + # Might not work with GUI or Perl. +*************** +*** 1259,1274 **** + # This is for cproto 3 patchlevel 8 or below + # __inline, __attribute__ and __extension__ are not recognized by cproto + # G_IMPLEMENT_INLINES is to avoid functions defined in glib/gutils.h. +! NO_ATTR = -D__inline= -D__inline__= -DG_IMPLEMENT_INLINES \ +! -D"__attribute__\\(x\\)=" -D"__asm__\\(x\\)=" \ +! -D__extension__= -D__restrict="" \ +! -D__gnuc_va_list=char -D__builtin_va_list=char + + # +! # This is for cproto 3 patchlevel 9 or above (currently 4.6) + # __inline and __attribute__ are now recognized by cproto + # -D"foo()=" is not supported by all compilers so do not use it +! # NO_ATTR= + # + # maybe the "/usr/bin/cc -E" has to be adjusted for some systems + # This is for cproto 3.5 patchlevel 3: +--- 1264,1279 ---- + # This is for cproto 3 patchlevel 8 or below + # __inline, __attribute__ and __extension__ are not recognized by cproto + # G_IMPLEMENT_INLINES is to avoid functions defined in glib/gutils.h. +! #NO_ATTR = -D__inline= -D__inline__= -DG_IMPLEMENT_INLINES \ +! # -D"__attribute__\\(x\\)=" -D"__asm__\\(x\\)=" \ +! # -D__extension__= -D__restrict="" \ +! # -D__gnuc_va_list=char -D__builtin_va_list=char + + # +! # This is for cproto 3 patchlevel 9 or above (currently 4.6, 4.7g) + # __inline and __attribute__ are now recognized by cproto + # -D"foo()=" is not supported by all compilers so do not use it +! NO_ATTR= + # + # maybe the "/usr/bin/cc -E" has to be adjusted for some systems + # This is for cproto 3.5 patchlevel 3: +*************** +*** 1432,1437 **** +--- 1437,1443 ---- + $(SNIFF_SRC) $(WORKSHOP_SRC) $(WSDEBUG_SRC) $(NETBEANS_SRC) + #LINT_SRC = $(SRC) + #LINT_SRC = $(ALL_SRC) ++ #LINT_SRC = $(BASIC_SRC) + + OBJ = \ + objects/buffer.o \ +*************** +*** 2272,2283 **** + + # Run lint. Clean up the *.ln files that are sometimes left behind. + lint: +! lint $(LINT_OPTIONS) $(LINT_CFLAGS) $(LINT_EXTRA) $(LINT_SRC) + -rm -f *.ln + + # Check dosinst.c with lint. + lintinstall: +! lint $(LINT_OPTIONS) -DWIN32 -DUNIX_LINT dosinst.c + -rm -f dosinst.ln + + ########################################################################### +--- 2279,2290 ---- + + # Run lint. Clean up the *.ln files that are sometimes left behind. + lint: +! $(LINT) $(LINT_OPTIONS) $(LINT_CFLAGS) $(LINT_EXTRA) $(LINT_SRC) + -rm -f *.ln + + # Check dosinst.c with lint. + lintinstall: +! $(LINT) $(LINT_OPTIONS) -DWIN32 -DUNIX_LINT dosinst.c + -rm -f dosinst.ln + + ########################################################################### +*** ../vim-7.2.166/src/buffer.c 2009-02-22 00:01:42.000000000 +0100 +--- src/buffer.c 2009-05-13 12:25:29.000000000 +0200 +*************** +*** 44,49 **** +--- 44,50 ---- + #ifdef FEAT_TITLE + static int ti_change __ARGS((char_u *str, char_u **last)); + #endif ++ static int append_arg_number __ARGS((win_T *wp, char_u *buf, int buflen, int add_file)); + static void free_buffer __ARGS((buf_T *)); + static void free_buffer_stuff __ARGS((buf_T *buf, int free_options)); + static void clear_wininfo __ARGS((buf_T *buf)); +*************** +*** 1453,1465 **** + + #ifdef FEAT_KEYMAP + if (curbuf->b_kmap_state & KEYMAP_INIT) +! keymap_init(); + #endif + #ifdef FEAT_SPELL + /* May need to set the spell language. Can only do this after the buffer + * has been properly setup. */ + if (!curbuf->b_help && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! did_set_spelllang(curbuf); + #endif + + redraw_later(NOT_VALID); +--- 1454,1466 ---- + + #ifdef FEAT_KEYMAP + if (curbuf->b_kmap_state & KEYMAP_INIT) +! (void)keymap_init(); + #endif + #ifdef FEAT_SPELL + /* May need to set the spell language. Can only do this after the buffer + * has been properly setup. */ + if (!curbuf->b_help && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! (void)did_set_spelllang(curbuf); + #endif + + redraw_later(NOT_VALID); +*************** +*** 2516,2522 **** + buf_T *buf; + { + wininfo_T *wip; +! static pos_T no_position = {1, 0}; + + wip = find_wininfo(buf, FALSE); + if (wip != NULL) +--- 2517,2523 ---- + buf_T *buf; + { + wininfo_T *wip; +! static pos_T no_position = INIT_POS_T(1, 0, 0); + + wip = find_wininfo(buf, FALSE); + if (wip != NULL) +*************** +*** 2577,2584 **** + { + IObuff[len++] = ' '; + } while (--i > 0 && len < IOSIZE - 18); +! vim_snprintf((char *)IObuff + len, IOSIZE - len, _("line %ld"), +! buf == curbuf ? curwin->w_cursor.lnum + : (long)buflist_findlnum(buf)); + msg_outtrans(IObuff); + out_flush(); /* output one line at a time */ +--- 2578,2585 ---- + { + IObuff[len++] = ' '; + } while (--i > 0 && len < IOSIZE - 18); +! vim_snprintf((char *)IObuff + len, (size_t)(IOSIZE - len), +! _("line %ld"), buf == curbuf ? curwin->w_cursor.lnum + : (long)buflist_findlnum(buf)); + msg_outtrans(IObuff); + out_flush(); /* output one line at a time */ +*************** +*** 2967,2973 **** + + if (fullname > 1) /* 2 CTRL-G: include buffer number */ + { +! sprintf((char *)buffer, "buf %d: ", curbuf->b_fnum); + p = buffer + STRLEN(buffer); + } + else +--- 2968,2974 ---- + + if (fullname > 1) /* 2 CTRL-G: include buffer number */ + { +! vim_snprintf((char *)buffer, IOSIZE, "buf %d: ", curbuf->b_fnum); + p = buffer + STRLEN(buffer); + } + else +*************** +*** 3041,3051 **** + (long)curbuf->b_ml.ml_line_count, + n); + validate_virtcol(); +! col_print(buffer + STRLEN(buffer), + (int)curwin->w_cursor.col + 1, (int)curwin->w_virtcol + 1); + } + +! (void)append_arg_number(curwin, buffer, !shortmess(SHM_FILE), IOSIZE); + + if (dont_truncate) + { +--- 3042,3053 ---- + (long)curbuf->b_ml.ml_line_count, + n); + validate_virtcol(); +! len = STRLEN(buffer); +! col_print(buffer + len, IOSIZE - len, + (int)curwin->w_cursor.col + 1, (int)curwin->w_virtcol + 1); + } + +! (void)append_arg_number(curwin, buffer, IOSIZE, !shortmess(SHM_FILE)); + + if (dont_truncate) + { +*************** +*** 3073,3087 **** + } + + void +! col_print(buf, col, vcol) + char_u *buf; + int col; + int vcol; + { + if (col == vcol) +! sprintf((char *)buf, "%d", col); + else +! sprintf((char *)buf, "%d-%d", col, vcol); + } + + #if defined(FEAT_TITLE) || defined(PROTO) +--- 3075,3090 ---- + } + + void +! col_print(buf, buflen, col, vcol) + char_u *buf; ++ size_t buflen; + int col; + int vcol; + { + if (col == vcol) +! vim_snprintf((char *)buf, buflen, "%d", col); + else +! vim_snprintf((char *)buf, buflen, "%d-%d", col, vcol); + } + + #if defined(FEAT_TITLE) || defined(PROTO) +*************** +*** 3194,3211 **** + if (p == buf + off) + /* must be a help buffer */ + vim_strncpy(buf + off, (char_u *)_("help"), +! IOSIZE - off - 1); + else + *p = NUL; + + /* translate unprintable chars */ + p = transstr(buf + off); +! vim_strncpy(buf + off, p, IOSIZE - off - 1); + vim_free(p); + STRCAT(buf, ")"); + } + +! append_arg_number(curwin, buf, FALSE, IOSIZE); + + #if defined(FEAT_CLIENTSERVER) + if (serverName != NULL) +--- 3197,3214 ---- + if (p == buf + off) + /* must be a help buffer */ + vim_strncpy(buf + off, (char_u *)_("help"), +! (size_t)(IOSIZE - off - 1)); + else + *p = NUL; + + /* translate unprintable chars */ + p = transstr(buf + off); +! vim_strncpy(buf + off, p, (size_t)(IOSIZE - off - 1)); + vim_free(p); + STRCAT(buf, ")"); + } + +! append_arg_number(curwin, buf, IOSIZE, FALSE); + + #if defined(FEAT_CLIENTSERVER) + if (serverName != NULL) +*************** +*** 3520,3526 **** + n = (long)(p - t) - item[groupitem[groupdepth]].maxwid + 1; + + *t = '<'; +! mch_memmove(t + 1, t + n, p - (t + n)); + p = p - n + 1; + #ifdef FEAT_MBYTE + /* Fill up space left over by half a double-wide char. */ +--- 3523,3529 ---- + n = (long)(p - t) - item[groupitem[groupdepth]].maxwid + 1; + + *t = '<'; +! mch_memmove(t + 1, t + n, (size_t)(p - (t + n))); + p = p - n + 1; + #ifdef FEAT_MBYTE + /* Fill up space left over by half a double-wide char. */ +*************** +*** 3550,3556 **** + else + { + /* fill by inserting characters */ +! mch_memmove(t + n - l, t, p - t); + l = n - l; + if (p + l >= out + outlen) + l = (long)((out + outlen) - p - 1); +--- 3553,3559 ---- + else + { + /* fill by inserting characters */ +! mch_memmove(t + n - l, t, (size_t)(p - t)); + l = n - l; + if (p + l >= out + outlen) + l = (long)((out + outlen) - p - 1); +*************** +*** 3686,3692 **** + p = t; + + #ifdef FEAT_EVAL +! sprintf((char *)tmp, "%d", curbuf->b_fnum); + set_internal_string_var((char_u *)"actual_curbuf", tmp); + + o_curbuf = curbuf; +--- 3689,3695 ---- + p = t; + + #ifdef FEAT_EVAL +! vim_snprintf((char *)tmp, sizeof(tmp), "%d", curbuf->b_fnum); + set_internal_string_var((char_u *)"actual_curbuf", tmp); + + o_curbuf = curbuf; +*************** +*** 3753,3765 **** + + case STL_ALTPERCENT: + str = tmp; +! get_rel_pos(wp, str); + break; + + case STL_ARGLISTSTAT: + fillable = FALSE; + tmp[0] = 0; +! if (append_arg_number(wp, tmp, FALSE, (int)sizeof(tmp))) + str = tmp; + break; + +--- 3756,3768 ---- + + case STL_ALTPERCENT: + str = tmp; +! get_rel_pos(wp, str, TMPLEN); + break; + + case STL_ARGLISTSTAT: + fillable = FALSE; + tmp[0] = 0; +! if (append_arg_number(wp, tmp, (int)sizeof(tmp), FALSE)) + str = tmp; + break; + +*************** +*** 3794,3800 **** + case STL_BYTEVAL_X: + base = 'X'; + case STL_BYTEVAL: +! if (wp->w_cursor.col > STRLEN(linecont)) + num = 0; + else + { +--- 3797,3803 ---- + case STL_BYTEVAL_X: + base = 'X'; + case STL_BYTEVAL: +! if (wp->w_cursor.col > (colnr_T)STRLEN(linecont)) + num = 0; + else + { +*************** +*** 3967,3973 **** + if (zeropad) + *t++ = '0'; + *t++ = '*'; +! *t++ = nbase == 16 ? base : (nbase == 8 ? 'o' : 'd'); + *t = 0; + + for (n = num, l = 1; n >= nbase; n /= nbase) +--- 3970,3976 ---- + if (zeropad) + *t++ = '0'; + *t++ = '*'; +! *t++ = nbase == 16 ? base : (char_u)(nbase == 8 ? 'o' : 'd'); + *t = 0; + + for (n = num, l = 1; n >= nbase; n /= nbase) +*************** +*** 4160,4172 **** + #if defined(FEAT_STL_OPT) || defined(FEAT_CMDL_INFO) \ + || defined(FEAT_GUI_TABLINE) || defined(PROTO) + /* +! * Get relative cursor position in window into "str[]", in the form 99%, using +! * "Top", "Bot" or "All" when appropriate. + */ + void +! get_rel_pos(wp, str) + win_T *wp; +! char_u *str; + { + long above; /* number of lines above window */ + long below; /* number of lines below window */ +--- 4163,4176 ---- + #if defined(FEAT_STL_OPT) || defined(FEAT_CMDL_INFO) \ + || defined(FEAT_GUI_TABLINE) || defined(PROTO) + /* +! * Get relative cursor position in window into "buf[buflen]", in the form 99%, +! * using "Top", "Bot" or "All" when appropriate. + */ + void +! get_rel_pos(wp, buf, buflen) + win_T *wp; +! char_u *buf; +! int buflen; + { + long above; /* number of lines above window */ + long below; /* number of lines below window */ +*************** +*** 4177,4210 **** + #endif + below = wp->w_buffer->b_ml.ml_line_count - wp->w_botline + 1; + if (below <= 0) +! STRCPY(str, above == 0 ? _("All") : _("Bot")); + else if (above <= 0) +! STRCPY(str, _("Top")); + else +! sprintf((char *)str, "%2d%%", above > 1000000L + ? (int)(above / ((above + below) / 100L)) + : (int)(above * 100L / (above + below))); + } + #endif + + /* +! * Append (file 2 of 8) to 'buf', if editing more than one file. + * Return TRUE if it was appended. + */ +! int +! append_arg_number(wp, buf, add_file, maxlen) + win_T *wp; + char_u *buf; + int add_file; /* Add "file" before the arg number */ +- int maxlen; /* maximum nr of chars in buf or zero*/ + { + char_u *p; + + if (ARGCOUNT <= 1) /* nothing to do */ + return FALSE; + +! p = buf + STRLEN(buf); /* go to the end of the buffer */ +! if (maxlen && p - buf + 35 >= maxlen) /* getting too long */ + return FALSE; + *p++ = ' '; + *p++ = '('; +--- 4181,4215 ---- + #endif + below = wp->w_buffer->b_ml.ml_line_count - wp->w_botline + 1; + if (below <= 0) +! vim_strncpy(buf, (char_u *)(above == 0 ? _("All") : _("Bot")), +! (size_t)(buflen - 1)); + else if (above <= 0) +! vim_strncpy(buf, (char_u *)_("Top"), (size_t)(buflen - 1)); + else +! vim_snprintf((char *)buf, (size_t)buflen, "%2d%%", above > 1000000L + ? (int)(above / ((above + below) / 100L)) + : (int)(above * 100L / (above + below))); + } + #endif + + /* +! * Append (file 2 of 8) to "buf[buflen]", if editing more than one file. + * Return TRUE if it was appended. + */ +! static int +! append_arg_number(wp, buf, buflen, add_file) + win_T *wp; + char_u *buf; ++ int buflen; + int add_file; /* Add "file" before the arg number */ + { + char_u *p; + + if (ARGCOUNT <= 1) /* nothing to do */ + return FALSE; + +! p = buf + STRLEN(buf); /* go to the end of the buffer */ +! if (p - buf + 35 >= buflen) /* getting too long */ + return FALSE; + *p++ = ' '; + *p++ = '('; +*************** +*** 4213,4219 **** + STRCPY(p, "file "); + p += 5; + } +! sprintf((char *)p, wp->w_arg_idx_invalid ? "(%d) of %d)" + : "%d of %d)", wp->w_arg_idx + 1, ARGCOUNT); + return TRUE; + } +--- 4218,4225 ---- + STRCPY(p, "file "); + p += 5; + } +! vim_snprintf((char *)p, (size_t)(buflen - (p - buf)), +! wp->w_arg_idx_invalid ? "(%d) of %d)" + : "%d of %d)", wp->w_arg_idx + 1, ARGCOUNT); + return TRUE; + } +*************** +*** 4996,5002 **** + if (tab != NULL) + { + *tab++ = '\0'; +! col = atoi((char *)tab); + tab = vim_strrchr(xline, '\t'); + if (tab != NULL) + { +--- 5002,5008 ---- + if (tab != NULL) + { + *tab++ = '\0'; +! col = (colnr_T)atoi((char *)tab); + tab = vim_strrchr(xline, '\t'); + if (tab != NULL) + { +*************** +*** 5034,5039 **** +--- 5040,5046 ---- + #endif + char_u *line; + int max_buffers; ++ size_t len; + + if (find_viminfo_parameter('%') == NULL) + return; +*************** +*** 5042,5048 **** + max_buffers = get_viminfo_parameter('%'); + + /* Allocate room for the file name, lnum and col. */ +! line = alloc(MAXPATHL + 40); + if (line == NULL) + return; + +--- 5049,5056 ---- + max_buffers = get_viminfo_parameter('%'); + + /* Allocate room for the file name, lnum and col. */ +! #define LINE_BUF_LEN (MAXPATHL + 40) +! line = alloc(LINE_BUF_LEN); + if (line == NULL) + return; + +*************** +*** 5068,5074 **** + break; + putc('%', fp); + home_replace(NULL, buf->b_ffname, line, MAXPATHL, TRUE); +! sprintf((char *)line + STRLEN(line), "\t%ld\t%d", + (long)buf->b_last_cursor.lnum, + buf->b_last_cursor.col); + viminfo_writestring(fp, line); +--- 5076,5083 ---- + break; + putc('%', fp); + home_replace(NULL, buf->b_ffname, line, MAXPATHL, TRUE); +! len = STRLEN(line); +! vim_snprintf((char *)line + len, len - LINE_BUF_LEN, "\t%ld\t%d", + (long)buf->b_last_cursor.lnum, + buf->b_last_cursor.col); + viminfo_writestring(fp, line); +*************** +*** 5226,5232 **** + return; + } + +! int + buf_change_sign_type(buf, markId, typenr) + buf_T *buf; /* buffer to store sign in */ + int markId; /* sign ID */ +--- 5235,5241 ---- + return; + } + +! linenr_T + buf_change_sign_type(buf, markId, typenr) + buf_T *buf; /* buffer to store sign in */ + int markId; /* sign ID */ +*************** +*** 5243,5252 **** + } + } + +! return 0; + } + +! int_u + buf_getsigntype(buf, lnum, type) + buf_T *buf; + linenr_T lnum; +--- 5252,5261 ---- + } + } + +! return (linenr_T)0; + } + +! int + buf_getsigntype(buf, lnum, type) + buf_T *buf; + linenr_T lnum; +*** ../vim-7.2.166/src/charset.c 2008-07-24 21:30:44.000000000 +0200 +--- src/charset.c 2009-05-05 18:17:11.000000000 +0200 +*************** +*** 17,23 **** + static int win_nolbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp)); + #endif + +! static int nr2hex __ARGS((int c)); + + static int chartab_initialized = FALSE; + +--- 17,23 ---- + static int win_nolbr_chartabsize __ARGS((win_T *wp, char_u *s, colnr_T col, int *headp)); + #endif + +! static unsigned nr2hex __ARGS((unsigned c)); + + static int chartab_initialized = FALSE; + +*************** +*** 664,670 **** + } + #endif + buf[++i] = nr2hex((unsigned)c >> 4); +! buf[++i] = nr2hex(c); + buf[++i] = '>'; + buf[++i] = NUL; + } +--- 664,670 ---- + } + #endif + buf[++i] = nr2hex((unsigned)c >> 4); +! buf[++i] = nr2hex((unsigned)c); + buf[++i] = '>'; + buf[++i] = NUL; + } +*************** +*** 674,682 **** + * Lower case letters are used to avoid the confusion of <F1> being 0xf1 or + * function key 1. + */ +! static int + nr2hex(c) +! int c; + { + if ((c & 0xf) <= 9) + return (c & 0xf) + '0'; +--- 674,682 ---- + * Lower case letters are used to avoid the confusion of <F1> being 0xf1 or + * function key 1. + */ +! static unsigned + nr2hex(c) +! unsigned c; + { + if ((c & 0xf) <= 9) + return (c & 0xf) + '0'; +*************** +*** 884,890 **** + if (c >= 0x100) + { + if (enc_dbcs != 0) +! return dbcs_class((unsigned)c >> 8, c & 0xff) >= 2; + if (enc_utf8) + return utf_class(c) >= 2; + } +--- 884,890 ---- + if (c >= 0x100) + { + if (enc_dbcs != 0) +! return dbcs_class((unsigned)c >> 8, (unsigned)(c & 0xff)) >= 2; + if (enc_utf8) + return utf_class(c) >= 2; + } +*************** +*** 1090,1096 **** + */ + numberextra = win_col_off(wp); + col2 = col; +! colmax = W_WIDTH(wp) - numberextra; + if (col >= colmax) + { + n = colmax + win_col_off2(wp); +--- 1090,1096 ---- + */ + numberextra = win_col_off(wp); + col2 = col; +! colmax = (colnr_T)(W_WIDTH(wp) - numberextra); + if (col >= colmax) + { + n = colmax + win_col_off2(wp); +*************** +*** 1201,1217 **** + win_T *wp; + colnr_T vcol; + { +! colnr_T width1; /* width of first line (after line number) */ +! colnr_T width2; /* width of further lines */ + + #ifdef FEAT_VERTSPLIT + if (wp->w_width == 0) /* there is no border */ + return FALSE; + #endif + width1 = W_WIDTH(wp) - win_col_off(wp); +! if (vcol < width1 - 1) + return FALSE; +! if (vcol == width1 - 1) + return TRUE; + width2 = width1 + win_col_off2(wp); + return ((vcol - width1) % width2 == width2 - 1); +--- 1201,1217 ---- + win_T *wp; + colnr_T vcol; + { +! int width1; /* width of first line (after line number) */ +! int width2; /* width of further lines */ + + #ifdef FEAT_VERTSPLIT + if (wp->w_width == 0) /* there is no border */ + return FALSE; + #endif + width1 = W_WIDTH(wp) - win_col_off(wp); +! if ((int)vcol < width1 - 1) + return FALSE; +! if ((int)vcol == width1 - 1) + return TRUE; + width2 = width1 + win_col_off2(wp); + return ((vcol - width1) % width2 == width2 - 1); +*************** +*** 1396,1408 **** + # ifdef FEAT_MBYTE + /* Cannot put the cursor on part of a wide character. */ + ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE); +! if (pos->col < STRLEN(ptr)) + { + int c = (*mb_ptr2char)(ptr + pos->col); + + if (c != TAB && vim_isprintc(c)) + { +! endadd = char2cells(c) - 1; + if (coladd > endadd) /* past end of line */ + endadd = 0; + else +--- 1396,1408 ---- + # ifdef FEAT_MBYTE + /* Cannot put the cursor on part of a wide character. */ + ptr = ml_get_buf(wp->w_buffer, pos->lnum, FALSE); +! if (pos->col < (colnr_T)STRLEN(ptr)) + { + int c = (*mb_ptr2char)(ptr + pos->col); + + if (c != TAB && vim_isprintc(c)) + { +! endadd = (colnr_T)(char2cells(c) - 1); + if (coladd > endadd) /* past end of line */ + endadd = 0; + else +*** ../vim-7.2.166/src/cleanlint.vim 2009-05-13 12:08:12.000000000 +0200 +--- src/cleanlint.vim 2009-05-05 21:34:01.000000000 +0200 +*************** +*** 0 **** +--- 1,27 ---- ++ " Vim tool: Filter output of splint ++ " ++ " Maintainer: Bram Moolenaar <Bram@vim.org> ++ " Last Change: 2009 May 05 ++ ++ " Usage: redirect output of "make lint" to a file, edit that file with Vim and ++ " :call CleanLint() ++ " This deletes irrelevant messages. What remains might be valid warnings. ++ ++ fun! CleanLint() ++ g/^ Types are incompatible/lockmarks d ++ g/Assignment of dev_t to __dev_t:/lockmarks d ++ g/Assignment of __dev_t to dev_t:/lockmarks d ++ g/Operands of == have incompatible types (__dev_t, dev_t): /lockmarks d ++ g/Operands of == have incompatible types (unsigned int, int): /lockmarks d ++ g/Assignment of char to char_u: /lockmarks d ++ g/Assignment of unsigned int to int: /lockmarks d ++ g/Assignment of colnr_T to int: /lockmarks d ++ g/Assignment of int to char_u: /lockmarks d ++ g/Function .* expects arg . to be wint_t gets int: /lockmarks d ++ g/^digraph.c.*digraphdefault.*is type char, expects char_u:/lockmarks d ++ g/^digraph.c.*Additional initialization errors for digraphdefault not reported/lockmarks d ++ g/Function strncasecmp expects arg 3 to be int gets size_t: /lockmarks d ++ g/ To ignore signs in type comparisons use +ignoresigns/lockmarks d ++ g/ To allow arbitrary integral types to match any integral type, use +matchanyintegral./lockmarks d ++ g/ To allow arbitrary integral types to match long unsigned, use +longintegral./lockmarks d ++ endfun +*** ../vim-7.2.166/src/digraph.c 2008-06-25 00:26:41.000000000 +0200 +--- src/digraph.c 2009-05-05 20:32:43.000000000 +0200 +*************** +*** 32,38 **** + static void printdigraph __ARGS((digr_T *)); + + /* digraphs added by the user */ +! static garray_T user_digraphs = {0, 0, sizeof(digr_T), 10, NULL}; + + /* + * Note: Characters marked with XX are not included literally, because some +--- 32,38 ---- + static void printdigraph __ARGS((digr_T *)); + + /* digraphs added by the user */ +! static garray_T user_digraphs = {0, 0, (int)sizeof(digr_T), 10, NULL}; + + /* + * Note: Characters marked with XX are not included literally, because some +*************** +*** 2371,2380 **** + } + else + #endif +! *p++ = dp->result; + if (char2cells(dp->result) == 1) + *p++ = ' '; +! sprintf((char *)p, " %3d", dp->result); + msg_outtrans(buf); + } + } +--- 2371,2380 ---- + } + else + #endif +! *p++ = (char_u)dp->result; + if (char2cells(dp->result) == 1) + *p++ = ' '; +! vim_snprintf((char *)p, sizeof(buf) - (p - buf), " %3d", dp->result); + msg_outtrans(buf); + } + } +*************** +*** 2395,2401 **** + static void keymap_unload __ARGS((void)); + + /* +! * Set up key mapping tables for the 'keymap' option + */ + char_u * + keymap_init() +--- 2395,2404 ---- + static void keymap_unload __ARGS((void)); + + /* +! * Set up key mapping tables for the 'keymap' option. +! * Returns NULL if OK, an error message for failure. This only needs to be +! * used when setting the option, not later when the value has already been +! * checked. + */ + char_u * + keymap_init() +*************** +*** 2412,2436 **** + else + { + char_u *buf; + + /* Source the keymap file. It will contain a ":loadkeymap" command + * which will call ex_loadkeymap() below. */ +! buf = alloc((unsigned)(STRLEN(curbuf->b_p_keymap) + # ifdef FEAT_MBYTE +! + STRLEN(p_enc) + # endif +! + 14)); + if (buf == NULL) + return e_outofmem; + + # ifdef FEAT_MBYTE + /* try finding "keymap/'keymap'_'encoding'.vim" in 'runtimepath' */ +! sprintf((char *)buf, "keymap/%s_%s.vim", curbuf->b_p_keymap, p_enc); + if (source_runtime(buf, FALSE) == FAIL) + # endif + { + /* try finding "keymap/'keymap'.vim" in 'runtimepath' */ +! sprintf((char *)buf, "keymap/%s.vim", curbuf->b_p_keymap); + if (source_runtime(buf, FALSE) == FAIL) + { + vim_free(buf); +--- 2415,2443 ---- + else + { + char_u *buf; ++ size_t buflen; + + /* Source the keymap file. It will contain a ":loadkeymap" command + * which will call ex_loadkeymap() below. */ +! buflen = STRLEN(curbuf->b_p_keymap) + # ifdef FEAT_MBYTE +! + STRLEN(p_enc) + # endif +! + 14; +! buf = alloc((unsigned)buflen); + if (buf == NULL) + return e_outofmem; + + # ifdef FEAT_MBYTE + /* try finding "keymap/'keymap'_'encoding'.vim" in 'runtimepath' */ +! vim_snprintf((char *)buf, buflen, "keymap/%s_%s.vim", +! curbuf->b_p_keymap, p_enc); + if (source_runtime(buf, FALSE) == FAIL) + # endif + { + /* try finding "keymap/'keymap'.vim" in 'runtimepath' */ +! vim_snprintf((char *)buf, buflen, "keymap/%s.vim", +! curbuf->b_p_keymap); + if (source_runtime(buf, FALSE) == FAIL) + { + vim_free(buf); +*** ../vim-7.2.166/src/edit.c 2009-02-21 20:27:00.000000000 +0100 +--- src/edit.c 2009-05-05 21:14:50.000000000 +0200 +*************** +*** 57,63 **** + N_(" Keyword Local completion (^N^P)"), + }; + +! static char_u e_hitend[] = N_("Hit end of paragraph"); + + /* + * Structure used to store one match for insert completion. +--- 57,63 ---- + N_(" Keyword Local completion (^N^P)"), + }; + +! static char e_hitend[] = N_("Hit end of paragraph"); + + /* + * Structure used to store one match for insert completion. +*************** +*** 69,75 **** +--- 69,79 ---- + compl_T *cp_prev; + char_u *cp_str; /* matched text */ + char cp_icase; /* TRUE or FALSE: ignore case */ ++ #ifdef S_SPLINT_S /* splint can't handle array of pointers */ ++ char_u **cp_text; /* text for the menu */ ++ #else + char_u *(cp_text[CPT_COUNT]); /* text for the menu */ ++ #endif + char_u *cp_fname; /* file containing the match, allocated when + * cp_flags has FREE_FNAME */ + int cp_flags; /* ORIGINAL_TEXT, CONT_S_IPOS or FREE_FNAME */ +*************** +*** 306,312 **** + int c = 0; + char_u *ptr; + int lastc; +! colnr_T mincol; + static linenr_T o_lnum = 0; + int i; + int did_backspace = TRUE; /* previous char was backspace */ +--- 310,316 ---- + int c = 0; + char_u *ptr; + int lastc; +! int mincol; + static linenr_T o_lnum = 0; + int i; + int did_backspace = TRUE; /* previous char was backspace */ +*************** +*** 387,393 **** + if (startln) + Insstart.col = 0; + } +! Insstart_textlen = linetabsize(ml_get_curline()); + Insstart_blank_vcol = MAXCOL; + if (!did_ai) + ai_col = 0; +--- 391,397 ---- + if (startln) + Insstart.col = 0; + } +! Insstart_textlen = (colnr_T)linetabsize(ml_get_curline()); + Insstart_blank_vcol = MAXCOL; + if (!did_ai) + ai_col = 0; +*************** +*** 653,659 **** + mincol = curwin->w_wcol; + validate_cursor_col(); + +! if ((int)curwin->w_wcol < (int)mincol - curbuf->b_p_ts + && curwin->w_wrow == W_WINROW(curwin) + + curwin->w_height - 1 - p_so + && (curwin->w_cursor.lnum != curwin->w_topline +--- 657,663 ---- + mincol = curwin->w_wcol; + validate_cursor_col(); + +! if ((int)curwin->w_wcol < mincol - curbuf->b_p_ts + && curwin->w_wrow == W_WINROW(curwin) + + curwin->w_height - 1 - p_so + && (curwin->w_cursor.lnum != curwin->w_topline +*************** +*** 1773,1779 **** + * Compute the screen column where the cursor should be. + */ + vcol = get_indent() - vcol; +! curwin->w_virtcol = (vcol < 0) ? 0 : vcol; + + /* + * Advance the cursor until we reach the right screen column. +--- 1777,1783 ---- + * Compute the screen column where the cursor should be. + */ + vcol = get_indent() - vcol; +! curwin->w_virtcol = (colnr_T)((vcol < 0) ? 0 : vcol); + + /* + * Advance the cursor until we reach the right screen column. +*************** +*** 1800,1808 **** + */ + if (vcol != (int)curwin->w_virtcol) + { +! curwin->w_cursor.col = new_cursor_col; + i = (int)curwin->w_virtcol - vcol; +! ptr = alloc(i + 1); + if (ptr != NULL) + { + new_cursor_col += i; +--- 1804,1812 ---- + */ + if (vcol != (int)curwin->w_virtcol) + { +! curwin->w_cursor.col = (colnr_T)new_cursor_col; + i = (int)curwin->w_virtcol - vcol; +! ptr = alloc((unsigned)(i + 1)); + if (ptr != NULL) + { + new_cursor_col += i; +*************** +*** 1826,1832 **** + if (new_cursor_col <= 0) + curwin->w_cursor.col = 0; + else +! curwin->w_cursor.col = new_cursor_col; + curwin->w_set_curswant = TRUE; + changed_cline_bef_curs(); + +--- 1830,1836 ---- + if (new_cursor_col <= 0) + curwin->w_cursor.col = 0; + else +! curwin->w_cursor.col = (colnr_T)new_cursor_col; + curwin->w_set_curswant = TRUE; + changed_cline_bef_curs(); + +*************** +*** 1966,1972 **** + #ifdef FEAT_MBYTE + if (enc_utf8 && limit_col >= 0) + { +! int ecol = curwin->w_cursor.col + 1; + + /* Make sure the cursor is at the start of a character, but + * skip forward again when going too far back because of a +--- 1970,1976 ---- + #ifdef FEAT_MBYTE + if (enc_utf8 && limit_col >= 0) + { +! colnr_T ecol = curwin->w_cursor.col + 1; + + /* Make sure the cursor is at the start of a character, but + * skip forward again when going too far back because of a +*************** +*** 1982,1988 **** + } + if (*ml_get_cursor() == NUL || curwin->w_cursor.col == ecol) + return FALSE; +! del_bytes((long)(ecol - curwin->w_cursor.col), FALSE, TRUE); + } + else + #endif +--- 1986,1992 ---- + } + if (*ml_get_cursor() == NUL || curwin->w_cursor.col == ecol) + return FALSE; +! del_bytes((long)((int)ecol - curwin->w_cursor.col), FALSE, TRUE); + } + else + #endif +*************** +*** 2201,2207 **** + actual_compl_length = compl_length; + + /* Allocate wide character array for the completion and fill it. */ +! wca = (int *)alloc(actual_len * sizeof(int)); + if (wca != NULL) + { + p = str; +--- 2205,2211 ---- + actual_compl_length = compl_length; + + /* Allocate wide character array for the completion and fill it. */ +! wca = (int *)alloc((unsigned)(actual_len * sizeof(int))); + if (wca != NULL) + { + p = str; +*************** +*** 2580,2586 **** + */ + void + set_completion(startcol, list) +! int startcol; + list_T *list; + { + /* If already doing completions stop it. */ +--- 2584,2590 ---- + */ + void + set_completion(startcol, list) +! colnr_T startcol; + list_T *list; + { + /* If already doing completions stop it. */ +*************** +*** 2591,2600 **** + if (stop_arrow() == FAIL) + return; + +! if (startcol > (int)curwin->w_cursor.col) + startcol = curwin->w_cursor.col; + compl_col = startcol; +! compl_length = curwin->w_cursor.col - startcol; + /* compl_pattern doesn't need to be set */ + compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); + if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, +--- 2595,2604 ---- + if (stop_arrow() == FAIL) + return; + +! if (startcol > curwin->w_cursor.col) + startcol = curwin->w_cursor.col; + compl_col = startcol; +! compl_length = (int)curwin->w_cursor.col - (int)startcol; + /* compl_pattern doesn't need to be set */ + compl_orig_text = vim_strnsave(ml_get_curline() + compl_col, compl_length); + if (compl_orig_text == NULL || ins_compl_add(compl_orig_text, +*************** +*** 2860,2866 **** + regmatch_T regmatch; + char_u **files; + int count; +- int i; + int save_p_scs; + int dir = compl_direction; + +--- 2864,2869 ---- +*************** +*** 2892,2908 **** + if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + { + char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); + + if (pat_esc == NULL) + goto theend; +! i = (int)STRLEN(pat_esc) + 10; +! ptr = alloc(i); + if (ptr == NULL) + { + vim_free(pat_esc); + goto theend; + } +! vim_snprintf((char *)ptr, i, "^\\s*\\zs\\V%s", pat_esc); + regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); + vim_free(pat_esc); + vim_free(ptr); +--- 2895,2912 ---- + if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + { + char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); ++ size_t len; + + if (pat_esc == NULL) + goto theend; +! len = STRLEN(pat_esc) + 10; +! ptr = alloc((unsigned)len); + if (ptr == NULL) + { + vim_free(pat_esc); + goto theend; + } +! vim_snprintf((char *)ptr, len, "^\\s*\\zs\\V%s", pat_esc); + regmatch.regprog = vim_regcomp(ptr, RE_MAGIC); + vim_free(pat_esc); + vim_free(ptr); +*************** +*** 2993,2999 **** + { + vim_snprintf((char *)IObuff, IOSIZE, + _("Scanning dictionary: %s"), (char *)files[i]); +! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + + if (fp != NULL) +--- 2997,3003 ---- + { + vim_snprintf((char *)IObuff, IOSIZE, + _("Scanning dictionary: %s"), (char *)files[i]); +! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + + if (fp != NULL) +*************** +*** 3311,3317 **** + static int + ins_compl_len() + { +! int off = curwin->w_cursor.col - compl_col; + + if (off < 0) + return 0; +--- 3315,3321 ---- + static int + ins_compl_len() + { +! int off = (int)curwin->w_cursor.col - (int)compl_col; + + if (off < 0) + return 0; +*************** +*** 3347,3353 **** + + vim_free(compl_leader); + compl_leader = vim_strnsave(ml_get_curline() + compl_col, +! curwin->w_cursor.col - compl_col); + if (compl_leader != NULL) + ins_compl_new_leader(); + } +--- 3351,3357 ---- + + vim_free(compl_leader); + compl_leader = vim_strnsave(ml_get_curline() + compl_col, +! (int)(curwin->w_cursor.col - compl_col)); + if (compl_leader != NULL) + ins_compl_new_leader(); + } +*************** +*** 3395,3401 **** + ins_compl_addfrommatch() + { + char_u *p; +! int len = curwin->w_cursor.col - compl_col; + int c; + compl_T *cp; + +--- 3399,3405 ---- + ins_compl_addfrommatch() + { + char_u *p; +! int len = (int)curwin->w_cursor.col - (int)compl_col; + int c; + compl_T *cp; + +*************** +*** 3961,3967 **** + : ins_buf->b_sfname == NULL + ? (char *)ins_buf->b_fname + : (char *)ins_buf->b_sfname); +! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else if (*e_cpt == NUL) + break; +--- 3965,3971 ---- + : ins_buf->b_sfname == NULL + ? (char *)ins_buf->b_fname + : (char *)ins_buf->b_sfname); +! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else if (*e_cpt == NUL) + break; +*************** +*** 3991,3997 **** + { + type = CTRL_X_TAGS; + sprintf((char*)IObuff, _("Scanning tags.")); +! msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else + type = -1; +--- 3995,4001 ---- + { + type = CTRL_X_TAGS; + sprintf((char*)IObuff, _("Scanning tags.")); +! (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else + type = -1; +*************** +*** 6320,6326 **** + ins_need_undo = FALSE; + } + Insstart = curwin->w_cursor; /* new insertion starts here */ +! Insstart_textlen = linetabsize(ml_get_curline()); + ai_col = 0; + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +--- 6324,6330 ---- + ins_need_undo = FALSE; + } + Insstart = curwin->w_cursor; /* new insertion starts here */ +! Insstart_textlen = (colnr_T)linetabsize(ml_get_curline()); + ai_col = 0; + #ifdef FEAT_VREPLACE + if (State & VREPLACE_FLAG) +*** ../vim-7.2.166/src/ex_cmds.c 2009-04-29 18:44:38.000000000 +0200 +--- src/ex_cmds.c 2009-05-05 17:55:40.000000000 +0200 +*************** +*** 1789,1795 **** + * overwrite a user's viminfo file after a "su root", with a + * viminfo file that the user can't read. + */ +! st_old.st_dev = 0; + st_old.st_ino = 0; + st_old.st_mode = 0600; + if (mch_stat((char *)fname, &st_old) == 0 +--- 1789,1795 ---- + * overwrite a user's viminfo file after a "su root", with a + * viminfo file that the user can't read. + */ +! st_old.st_dev = (dev_t)0; + st_old.st_ino = 0; + st_old.st_mode = 0600; + if (mch_stat((char *)fname, &st_old) == 0 +*************** +*** 3715,3721 **** + /* If the window options were changed may need to set the spell language. + * Can only do this after the buffer has been properly setup. */ + if (did_get_winopts && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! did_set_spelllang(curbuf); + #endif + + if (command == NULL) +--- 3715,3721 ---- + /* If the window options were changed may need to set the spell language. + * Can only do this after the buffer has been properly setup. */ + if (did_get_winopts && curwin->w_p_spell && *curbuf->b_p_spl != NUL) +! (void)did_set_spelllang(curbuf); + #endif + + if (command == NULL) +*************** +*** 3788,3794 **** + + #ifdef FEAT_KEYMAP + if (curbuf->b_kmap_state & KEYMAP_INIT) +! keymap_init(); + #endif + + --RedrawingDisabled; +--- 3788,3794 ---- + + #ifdef FEAT_KEYMAP + if (curbuf->b_kmap_state & KEYMAP_INIT) +! (void)keymap_init(); + #endif + + --RedrawingDisabled; +*** ../vim-7.2.166/src/globals.h 2009-03-05 03:13:51.000000000 +0100 +--- src/globals.h 2009-05-09 21:14:49.000000000 +0200 +*************** +*** 524,530 **** + EXTERN win_T *prevwin INIT(= NULL); /* previous window */ + # define W_NEXT(wp) ((wp)->w_next) + # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next) +! #define FOR_ALL_TAB_WINDOWS(tp, wp) \ + for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \ + for ((wp) = ((tp) == curtab) \ + ? firstwin : (tp)->tp_firstwin; (wp); (wp) = (wp)->w_next) +--- 524,530 ---- + EXTERN win_T *prevwin INIT(= NULL); /* previous window */ + # define W_NEXT(wp) ((wp)->w_next) + # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next) +! # define FOR_ALL_TAB_WINDOWS(tp, wp) \ + for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \ + for ((wp) = ((tp) == curtab) \ + ? firstwin : (tp)->tp_firstwin; (wp); (wp) = (wp)->w_next) +*************** +*** 718,724 **** + + EXTERN pos_T saved_cursor /* w_cursor before formatting text. */ + # ifdef DO_INIT +! = INIT_POS_T + # endif + ; + +--- 718,724 ---- + + EXTERN pos_T saved_cursor /* w_cursor before formatting text. */ + # ifdef DO_INIT +! = INIT_POS_T(0, 0, 0) + # endif + ; + +*************** +*** 1039,1045 **** + EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ + EXTERN pos_T last_cursormoved /* for CursorMoved event */ + # ifdef DO_INIT +! = INIT_POS_T + # endif + ; + #endif +--- 1039,1045 ---- + EXTERN int did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */ + EXTERN pos_T last_cursormoved /* for CursorMoved event */ + # ifdef DO_INIT +! = INIT_POS_T(0, 0, 0) + # endif + ; + #endif +*** ../vim-7.2.166/src/ops.c 2009-04-29 17:39:17.000000000 +0200 +--- src/ops.c 2009-05-13 12:41:02.000000000 +0200 +*************** +*** 6400,6406 **** + { + getvcols(curwin, &min_pos, &max_pos, &min_pos.col, + &max_pos.col); +! sprintf((char *)buf1, _("%ld Cols; "), + (long)(oparg.end_vcol - oparg.start_vcol + 1)); + } + else +--- 6400,6406 ---- + { + getvcols(curwin, &min_pos, &max_pos, &min_pos.col, + &max_pos.col); +! vim_snprintf((char *)buf1, sizeof(buf1), _("%ld Cols; "), + (long)(oparg.end_vcol - oparg.start_vcol + 1)); + } + else +*************** +*** 6408,6420 **** + + if (char_count_cursor == byte_count_cursor + && char_count == byte_count) +! sprintf((char *)IObuff, _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"), + buf1, line_count_selected, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, + byte_count_cursor, byte_count); + else +! sprintf((char *)IObuff, _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld Bytes"), + buf1, line_count_selected, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, +--- 6408,6422 ---- + + if (char_count_cursor == byte_count_cursor + && char_count == byte_count) +! vim_snprintf((char *)IObuff, IOSIZE, +! _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"), + buf1, line_count_selected, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, + byte_count_cursor, byte_count); + else +! vim_snprintf((char *)IObuff, IOSIZE, +! _("Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Chars; %ld of %ld Bytes"), + buf1, line_count_selected, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, +*************** +*** 6426,6445 **** + { + p = ml_get_curline(); + validate_virtcol(); +! col_print(buf1, (int)curwin->w_cursor.col + 1, + (int)curwin->w_virtcol + 1); +! col_print(buf2, (int)STRLEN(p), linetabsize(p)); + + if (char_count_cursor == byte_count_cursor + && char_count == byte_count) +! sprintf((char *)IObuff, _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"), + (char *)buf1, (char *)buf2, + (long)curwin->w_cursor.lnum, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, + byte_count_cursor, byte_count); + else +! sprintf((char *)IObuff, _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ld"), + (char *)buf1, (char *)buf2, + (long)curwin->w_cursor.lnum, + (long)curbuf->b_ml.ml_line_count, +--- 6428,6449 ---- + { + p = ml_get_curline(); + validate_virtcol(); +! col_print(buf1, sizeof(buf1), (int)curwin->w_cursor.col + 1, + (int)curwin->w_virtcol + 1); +! col_print(buf2, sizeof(buf2), (int)STRLEN(p), linetabsize(p)); + + if (char_count_cursor == byte_count_cursor + && char_count == byte_count) +! vim_snprintf((char *)IObuff, IOSIZE, +! _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"), + (char *)buf1, (char *)buf2, + (long)curwin->w_cursor.lnum, + (long)curbuf->b_ml.ml_line_count, + word_count_cursor, word_count, + byte_count_cursor, byte_count); + else +! vim_snprintf((char *)IObuff, IOSIZE, +! _("Col %s of %s; Line %ld of %ld; Word %ld of %ld; Char %ld of %ld; Byte %ld of %ld"), + (char *)buf1, (char *)buf2, + (long)curwin->w_cursor.lnum, + (long)curbuf->b_ml.ml_line_count, +*** ../vim-7.2.166/src/os_unix.c 2009-03-02 02:44:54.000000000 +0100 +--- src/os_unix.c 2009-05-05 17:35:58.000000000 +0200 +*************** +*** 199,205 **** + #endif + + #ifndef SIG_ERR +! # define SIG_ERR ((RETSIGTYPE (*)())-1) + #endif + + /* volatile because it is used in signal handler sig_winch(). */ +--- 199,207 ---- + #endif + + #ifndef SIG_ERR +! # ifndef S_SPLINT_S +! # define SIG_ERR ((RETSIGTYPE (*)())-1) +! # endif + #endif + + /* volatile because it is used in signal handler sig_winch(). */ +*************** +*** 441,447 **** + + #if defined(HAVE_TOTAL_MEM) || defined(PROTO) + # ifdef HAVE_SYS_RESOURCE_H +! # include <sys/resource.h> + # endif + # if defined(HAVE_SYS_SYSCTL_H) && defined(HAVE_SYSCTL) + # include <sys/sysctl.h> +--- 443,451 ---- + + #if defined(HAVE_TOTAL_MEM) || defined(PROTO) + # ifdef HAVE_SYS_RESOURCE_H +! # ifndef S_SPLINT_S /* splint crashes on bits/resource.h */ +! # include <sys/resource.h> +! # endif + # endif + # if defined(HAVE_SYS_SYSCTL_H) && defined(HAVE_SYSCTL) + # include <sys/sysctl.h> +*** ../vim-7.2.166/src/os_unix.h 2008-06-20 18:06:36.000000000 +0200 +--- src/os_unix.h 2009-05-05 17:07:45.000000000 +0200 +*************** +*** 53,59 **** + #endif + + #ifdef HAVE_UNISTD_H +! # include <unistd.h> + #endif + + #ifdef HAVE_LIBC_H +--- 53,61 ---- + #endif + + #ifdef HAVE_UNISTD_H +! # ifndef S_SPLINT_S /* splint crashes on bits/confname.h */ +! # include <unistd.h> +! # endif + #endif + + #ifdef HAVE_LIBC_H +*** ../vim-7.2.166/src/proto/buffer.pro 2008-11-15 14:10:23.000000000 +0100 +--- src/proto/buffer.pro 2009-05-13 12:23:41.000000000 +0200 +*************** +*** 37,49 **** + int otherfile __ARGS((char_u *ffname)); + void buf_setino __ARGS((buf_T *buf)); + void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); +! void col_print __ARGS((char_u *buf, int col, int vcol)); + void maketitle __ARGS((void)); + void resettitle __ARGS((void)); + void free_titles __ARGS((void)); + int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use_sandbox, int fillchar, int maxwidth, struct stl_hlrec *hltab, struct stl_hlrec *tabtab)); +! void get_rel_pos __ARGS((win_T *wp, char_u *str)); +! int append_arg_number __ARGS((win_T *wp, char_u *buf, int add_file, int maxlen)); + char_u *fix_fname __ARGS((char_u *fname)); + void fname_expand __ARGS((buf_T *buf, char_u **ffname, char_u **sfname)); + char_u *alist_name __ARGS((aentry_T *aep)); +--- 37,48 ---- + int otherfile __ARGS((char_u *ffname)); + void buf_setino __ARGS((buf_T *buf)); + void fileinfo __ARGS((int fullname, int shorthelp, int dont_truncate)); +! void col_print __ARGS((char_u *buf, size_t buflen, int col, int vcol)); + void maketitle __ARGS((void)); + void resettitle __ARGS((void)); + void free_titles __ARGS((void)); + int build_stl_str_hl __ARGS((win_T *wp, char_u *out, size_t outlen, char_u *fmt, int use_sandbox, int fillchar, int maxwidth, struct stl_hlrec *hltab, struct stl_hlrec *tabtab)); +! void get_rel_pos __ARGS((win_T *wp, char_u *buf, int buflen)); + char_u *fix_fname __ARGS((char_u *fname)); + void fname_expand __ARGS((buf_T *buf, char_u **ffname, char_u **sfname)); + char_u *alist_name __ARGS((aentry_T *aep)); +*************** +*** 54,61 **** + void write_viminfo_bufferlist __ARGS((FILE *fp)); + char *buf_spname __ARGS((buf_T *buf)); + void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr)); +! int buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr)); +! int_u buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type)); + linenr_T buf_delsign __ARGS((buf_T *buf, int id)); + int buf_findsign __ARGS((buf_T *buf, int id)); + int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum)); +--- 53,60 ---- + void write_viminfo_bufferlist __ARGS((FILE *fp)); + char *buf_spname __ARGS((buf_T *buf)); + void buf_addsign __ARGS((buf_T *buf, int id, linenr_T lnum, int typenr)); +! linenr_T buf_change_sign_type __ARGS((buf_T *buf, int markId, int typenr)); +! int buf_getsigntype __ARGS((buf_T *buf, linenr_T lnum, int type)); + linenr_T buf_delsign __ARGS((buf_T *buf, int id)); + int buf_findsign __ARGS((buf_T *buf, int id)); + int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum)); +*** ../vim-7.2.166/src/proto/edit.pro 2008-01-16 20:03:13.000000000 +0100 +--- src/proto/edit.pro 2009-05-05 20:51:56.000000000 +0200 +*************** +*** 8,14 **** + void backspace_until_column __ARGS((int col)); + int vim_is_ctrl_x_key __ARGS((int c)); + int ins_compl_add_infercase __ARGS((char_u *str, int len, int icase, char_u *fname, int dir, int flags)); +! void set_completion __ARGS((int startcol, list_T *list)); + void ins_compl_show_pum __ARGS((void)); + char_u *find_word_start __ARGS((char_u *ptr)); + char_u *find_word_end __ARGS((char_u *ptr)); +--- 8,14 ---- + void backspace_until_column __ARGS((int col)); + int vim_is_ctrl_x_key __ARGS((int c)); + int ins_compl_add_infercase __ARGS((char_u *str, int len, int icase, char_u *fname, int dir, int flags)); +! void set_completion __ARGS((colnr_T startcol, list_T *list)); + void ins_compl_show_pum __ARGS((void)); + char_u *find_word_start __ARGS((char_u *ptr)); + char_u *find_word_end __ARGS((char_u *ptr)); +*** ../vim-7.2.166/src/screen.c 2009-03-18 19:07:09.000000000 +0100 +--- src/screen.c 2009-05-05 17:42:45.000000000 +0200 +*************** +*** 9481,9493 **** + win_T *wp; + int always; + { +! char_u buffer[70]; + int row; + int fillchar; + int attr; + int empty_line = FALSE; + colnr_T virtcol; + int i; + int o; + #ifdef FEAT_VERTSPLIT + int this_ru_col; +--- 9481,9495 ---- + win_T *wp; + int always; + { +! #define RULER_BUF_LEN 70 +! char_u buffer[RULER_BUF_LEN]; + int row; + int fillchar; + int attr; + int empty_line = FALSE; + colnr_T virtcol; + int i; ++ size_t len; + int o; + #ifdef FEAT_VERTSPLIT + int this_ru_col; +*************** +*** 9602,9612 **** + * Some sprintfs return the length, some return a pointer. + * To avoid portability problems we use strlen() here. + */ +! sprintf((char *)buffer, "%ld,", + (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) + ? 0L + : (long)(wp->w_cursor.lnum)); +! col_print(buffer + STRLEN(buffer), + empty_line ? 0 : (int)wp->w_cursor.col + 1, + (int)virtcol + 1); + +--- 9604,9615 ---- + * Some sprintfs return the length, some return a pointer. + * To avoid portability problems we use strlen() here. + */ +! vim_snprintf((char *)buffer, RULER_BUF_LEN, "%ld,", + (wp->w_buffer->b_ml.ml_flags & ML_EMPTY) + ? 0L + : (long)(wp->w_cursor.lnum)); +! len = STRLEN(buffer); +! col_print(buffer + len, RULER_BUF_LEN - len, + empty_line ? 0 : (int)wp->w_cursor.col + 1, + (int)virtcol + 1); + +*************** +*** 9616,9622 **** + * screen up on some terminals). + */ + i = (int)STRLEN(buffer); +! get_rel_pos(wp, buffer + i + 1); + o = i + vim_strsize(buffer + i + 1); + #ifdef FEAT_WINDOWS + if (wp->w_status_height == 0) /* can't use last char of screen */ +--- 9619,9625 ---- + * screen up on some terminals). + */ + i = (int)STRLEN(buffer); +! get_rel_pos(wp, buffer + i + 1, RULER_BUF_LEN - i - 1); + o = i + vim_strsize(buffer + i + 1); + #ifdef FEAT_WINDOWS + if (wp->w_status_height == 0) /* can't use last char of screen */ +*************** +*** 9643,9649 **** + buffer[i++] = fillchar; + ++o; + } +! get_rel_pos(wp, buffer + i); + } + /* Truncate at window boundary. */ + #ifdef FEAT_MBYTE +--- 9646,9652 ---- + buffer[i++] = fillchar; + ++o; + } +! get_rel_pos(wp, buffer + i, RULER_BUF_LEN - i); + } + /* Truncate at window boundary. */ + #ifdef FEAT_MBYTE +*** ../vim-7.2.166/src/structs.h 2008-11-15 16:05:30.000000000 +0100 +--- src/structs.h 2009-05-05 18:20:36.000000000 +0200 +*************** +*** 33,41 **** + } pos_T; + + #ifdef FEAT_VIRTUALEDIT +! # define INIT_POS_T {0, 0, 0} + #else +! # define INIT_POS_T {0, 0} + #endif + + /* +--- 33,41 ---- + } pos_T; + + #ifdef FEAT_VIRTUALEDIT +! # define INIT_POS_T(l, c, ca) {l, c, ca} + #else +! # define INIT_POS_T(l, c, ca) {l, c} + #endif + + /* +*************** +*** 1166,1172 **** + char_u *b_fname; /* current file name */ + + #ifdef UNIX +! int b_dev; /* device number (-1 if not set) */ + ino_t b_ino; /* inode number */ + #endif + #ifdef FEAT_CW_EDITOR +--- 1166,1172 ---- + char_u *b_fname; /* current file name */ + + #ifdef UNIX +! dev_t b_dev; /* device number (-1 if not set) */ + ino_t b_ino; /* inode number */ + #endif + #ifdef FEAT_CW_EDITOR +*************** +*** 1645,1651 **** +--- 1645,1655 ---- + #endif + #ifdef FEAT_DIFF + diff_T *tp_first_diff; ++ # ifdef S_SPLINT_S /* splint doesn't understand the array of pointers */ ++ buf_T **tp_diffbuf; ++ # else + buf_T *(tp_diffbuf[DB_COUNT]); ++ # endif + int tp_diff_invalid; /* list of diffs is outdated */ + #endif + frame_T *tp_snapshot; /* window layout snapshot */ +*** ../vim-7.2.166/src/version.c 2009-04-29 18:44:38.000000000 +0200 +--- src/version.c 2009-05-13 12:06:36.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 167, + /**/ + +-- +Snoring is prohibited unless all bedroom windows are closed and securely +locked. + [real standing law in Massachusetts, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.168 b/source/ap/vim/patches/7.2.168 new file mode 100644 index 000000000..29cafb613 --- /dev/null +++ b/source/ap/vim/patches/7.2.168 @@ -0,0 +1,74 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.168 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.168 +Problem: When no ctags program can be found, "make tags" attempts to + execute the first C file. +Solution: Default to "ctags" when no ctags program can be found. +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.2.167/src/configure.in 2009-04-22 17:50:53.000000000 +0200 +--- src/configure.in 2009-05-05 17:46:45.000000000 +0200 +*************** +*** 2968,2974 **** + dnl Link with xpg4, it is said to make Korean locale working + AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,) + +! dnl Check how we can run ctags + dnl --version for Exuberant ctags (preferred) + dnl Add --fields=+S to get function signatures for omni completion. + dnl -t for typedefs (many ctags have this) +--- 2968,2974 ---- + dnl Link with xpg4, it is said to make Korean locale working + AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,) + +! dnl Check how we can run ctags. Default to "ctags" when nothing works. + dnl --version for Exuberant ctags (preferred) + dnl Add --fields=+S to get function signatures for omni completion. + dnl -t for typedefs (many ctags have this) +*************** +*** 2980,2985 **** +--- 2980,2986 ---- + if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then + TAGPRG="ctags -I INIT+ --fields=+S" + else ++ TAGPRG="ctags" + (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags" + (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c" + (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags" +*** ../vim-7.2.167/src/auto/configure 2009-04-22 17:50:53.000000000 +0200 +--- src/auto/configure 2009-05-13 14:38:10.000000000 +0200 +*************** +*** 15707,15712 **** +--- 15723,15729 ---- + if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then + TAGPRG="ctags -I INIT+ --fields=+S" + else ++ TAGPRG="ctags" + (eval etags /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags" + (eval etags -c /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags -c" + (eval ctags /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="ctags" +*** ../vim-7.2.167/src/version.c 2009-05-13 12:46:36.000000000 +0200 +--- src/version.c 2009-05-13 14:46:35.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 168, + /**/ + +-- +Zen Microsystems: we're the om in .commmmmmmmm + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.169 b/source/ap/vim/patches/7.2.169 new file mode 100644 index 000000000..4ae90a51e --- /dev/null +++ b/source/ap/vim/patches/7.2.169 @@ -0,0 +1,1214 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.169 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.169 +Problem: Splint complains about a lot of things. +Solution: Add type casts, #ifdefs and other changes to avoid warnings. + Change colnr_T from unsigned to int. Avoids mistakes with + subtracting columns. +Files: src/cleanlint.vim, src/diff.c, src/edit.c, src/ex_cmds.c, + src/ex_cmds2.c, src/ex_docmd.c, src/proto/ex_cmds.pro, + src/proto/spell.pro, src/quickfix.c, src/spell.c, src/structs.h, + src/term.h, src/vim.h + + +*** ../vim-7.2.168/src/cleanlint.vim 2009-05-13 12:46:36.000000000 +0200 +--- src/cleanlint.vim 2009-05-13 18:03:11.000000000 +0200 +*************** +*** 1,27 **** + " Vim tool: Filter output of splint + " + " Maintainer: Bram Moolenaar <Bram@vim.org> +! " Last Change: 2009 May 05 + + " Usage: redirect output of "make lint" to a file, edit that file with Vim and + " :call CleanLint() + " This deletes irrelevant messages. What remains might be valid warnings. + + fun! CleanLint() +- g/^ Types are incompatible/lockmarks d + g/Assignment of dev_t to __dev_t:/lockmarks d + g/Assignment of __dev_t to dev_t:/lockmarks d + g/Operands of == have incompatible types (__dev_t, dev_t): /lockmarks d +! g/Operands of == have incompatible types (unsigned int, int): /lockmarks d + g/Assignment of char to char_u: /lockmarks d + g/Assignment of unsigned int to int: /lockmarks d +! g/Assignment of colnr_T to int: /lockmarks d + g/Assignment of int to char_u: /lockmarks d + g/Function .* expects arg . to be wint_t gets int: /lockmarks d +! g/^digraph.c.*digraphdefault.*is type char, expects char_u:/lockmarks d + g/^digraph.c.*Additional initialization errors for digraphdefault not reported/lockmarks d + g/Function strncasecmp expects arg 3 to be int gets size_t: /lockmarks d + g/ To ignore signs in type comparisons use +ignoresigns/lockmarks d + g/ To allow arbitrary integral types to match any integral type, use +matchanyintegral./lockmarks d + g/ To allow arbitrary integral types to match long unsigned, use +longintegral./lockmarks d + endfun +--- 1,32 ---- + " Vim tool: Filter output of splint + " + " Maintainer: Bram Moolenaar <Bram@vim.org> +! " Last Change: 2009 May 13 + + " Usage: redirect output of "make lint" to a file, edit that file with Vim and + " :call CleanLint() + " This deletes irrelevant messages. What remains might be valid warnings. + + fun! CleanLint() + g/Assignment of dev_t to __dev_t:/lockmarks d + g/Assignment of __dev_t to dev_t:/lockmarks d + g/Operands of == have incompatible types (__dev_t, dev_t): /lockmarks d +! g/Operands of == have incompatible types (char_u, int): /lockmarks d + g/Assignment of char to char_u: /lockmarks d + g/Assignment of unsigned int to int: /lockmarks d +! g/Assignment of int to unsigned int: /lockmarks d +! g/Assignment of unsigned int to long int: /lockmarks d + g/Assignment of int to char_u: /lockmarks d + g/Function .* expects arg . to be wint_t gets int: /lockmarks d +! g/Function .* expects arg . to be size_t gets int: /lockmarks d +! g/Initial value of .* is type char, expects char_u: /lockmarks d +! g/^ex_cmds.h:.* Function types are inconsistent. Parameter 1 is implicitly temp, but unqualified in assigned function:/lockmarks d +! g/^ex_docmd.c:.* nospec_str/lockmarks d + g/^digraph.c.*Additional initialization errors for digraphdefault not reported/lockmarks d + g/Function strncasecmp expects arg 3 to be int gets size_t: /lockmarks d ++ g/^ Types are incompatible/lockmarks d + g/ To ignore signs in type comparisons use +ignoresigns/lockmarks d + g/ To allow arbitrary integral types to match any integral type, use +matchanyintegral./lockmarks d + g/ To allow arbitrary integral types to match long unsigned, use +longintegral./lockmarks d ++ g+ A variable is declared but never used. Use /.@unused@./ in front of declaration to suppress message.+lockmarks d + endfun +*** ../vim-7.2.168/src/diff.c 2009-03-11 12:45:44.000000000 +0100 +--- src/diff.c 2009-05-13 16:16:11.000000000 +0200 +*************** +*** 827,832 **** +--- 827,833 ---- + char_u *tmp_diff; + { + char_u *cmd; ++ size_t len; + + #ifdef FEAT_EVAL + if (*p_dex != NUL) +*************** +*** 835,842 **** + else + #endif + { +! cmd = alloc((unsigned)(STRLEN(tmp_orig) + STRLEN(tmp_new) +! + STRLEN(tmp_diff) + STRLEN(p_srr) + 27)); + if (cmd != NULL) + { + /* We don't want $DIFF_OPTIONS to get in the way. */ +--- 836,844 ---- + else + #endif + { +! len = STRLEN(tmp_orig) + STRLEN(tmp_new) +! + STRLEN(tmp_diff) + STRLEN(p_srr) + 27; +! cmd = alloc((unsigned)len); + if (cmd != NULL) + { + /* We don't want $DIFF_OPTIONS to get in the way. */ +*************** +*** 846,852 **** + /* Build the diff command and execute it. Always use -a, binary + * differences are of no use. Ignore errors, diff returns + * non-zero when differences have been found. */ +! sprintf((char *)cmd, "diff %s%s%s%s%s %s", + diff_a_works == FALSE ? "" : "-a ", + #if defined(MSWIN) || defined(MSDOS) + diff_bin_works == TRUE ? "--binary " : "", +--- 848,854 ---- + /* Build the diff command and execute it. Always use -a, binary + * differences are of no use. Ignore errors, diff returns + * non-zero when differences have been found. */ +! vim_snprintf((char *)cmd, len, "diff %s%s%s%s%s %s", + diff_a_works == FALSE ? "" : "-a ", + #if defined(MSWIN) || defined(MSDOS) + diff_bin_works == TRUE ? "--binary " : "", +*************** +*** 856,862 **** + (diff_flags & DIFF_IWHITE) ? "-b " : "", + (diff_flags & DIFF_ICASE) ? "-i " : "", + tmp_orig, tmp_new); +! append_redir(cmd, p_srr, tmp_diff); + #ifdef FEAT_AUTOCMD + block_autocmds(); /* Avoid ShellCmdPost stuff */ + #endif +--- 858,864 ---- + (diff_flags & DIFF_IWHITE) ? "-b " : "", + (diff_flags & DIFF_ICASE) ? "-i " : "", + tmp_orig, tmp_new); +! append_redir(cmd, (int)len, p_srr, tmp_diff); + #ifdef FEAT_AUTOCMD + block_autocmds(); /* Avoid ShellCmdPost stuff */ + #endif +*************** +*** 881,886 **** +--- 883,889 ---- + char_u *tmp_orig; /* name of original temp file */ + char_u *tmp_new; /* name of patched temp file */ + char_u *buf = NULL; ++ size_t buflen; + win_T *old_curwin = curwin; + char_u *newname = NULL; /* name of patched file buffer */ + #ifdef UNIX +*************** +*** 920,930 **** + /* Get the absolute path of the patchfile, changing directory below. */ + fullname = FullName_save(eap->arg, FALSE); + #endif +! buf = alloc((unsigned)(STRLEN(tmp_orig) + ( + # ifdef UNIX + fullname != NULL ? STRLEN(fullname) : + # endif +! STRLEN(eap->arg)) + STRLEN(tmp_new) + 16)); + if (buf == NULL) + goto theend; + +--- 923,934 ---- + /* Get the absolute path of the patchfile, changing directory below. */ + fullname = FullName_save(eap->arg, FALSE); + #endif +! buflen = STRLEN(tmp_orig) + ( + # ifdef UNIX + fullname != NULL ? STRLEN(fullname) : + # endif +! STRLEN(eap->arg)) + STRLEN(tmp_new) + 16; +! buf = alloc((unsigned)buflen); + if (buf == NULL) + goto theend; + +*************** +*** 961,967 **** + { + /* Build the patch command and execute it. Ignore errors. Switch to + * cooked mode to allow the user to respond to prompts. */ +! sprintf((char *)buf, "patch -o %s %s < \"%s\"", tmp_new, tmp_orig, + # ifdef UNIX + fullname != NULL ? fullname : + # endif +--- 965,972 ---- + { + /* Build the patch command and execute it. Ignore errors. Switch to + * cooked mode to allow the user to respond to prompts. */ +! vim_snprintf((char *)buf, buflen, "patch -o %s %s < \"%s\"", +! tmp_new, tmp_orig, + # ifdef UNIX + fullname != NULL ? fullname : + # endif +*** ../vim-7.2.168/src/edit.c 2009-05-13 12:46:36.000000000 +0200 +--- src/edit.c 2009-05-13 18:29:21.000000000 +0200 +*************** +*** 169,175 **** + static int ins_compl_key2count __ARGS((int c)); + static int ins_compl_use_match __ARGS((int c)); + static int ins_complete __ARGS((int c)); +! static int quote_meta __ARGS((char_u *dest, char_u *str, int len)); + #endif /* FEAT_INS_EXPAND */ + + #define BACKSPACE_CHAR 1 +--- 169,175 ---- + static int ins_compl_key2count __ARGS((int c)); + static int ins_compl_use_match __ARGS((int c)); + static int ins_complete __ARGS((int c)); +! static unsigned quote_meta __ARGS((char_u *dest, char_u *str, int len)); + #endif /* FEAT_INS_EXPAND */ + + #define BACKSPACE_CHAR 1 +*************** +*** 757,763 **** + * there is nothing to add, CTRL-L works like CTRL-P then. */ + if (c == Ctrl_L + && (ctrl_x_mode != CTRL_X_WHOLE_LINE +! || STRLEN(compl_shown_match->cp_str) + > curwin->w_cursor.col - compl_col)) + { + ins_compl_addfrommatch(); +--- 757,763 ---- + * there is nothing to add, CTRL-L works like CTRL-P then. */ + if (c == Ctrl_L + && (ctrl_x_mode != CTRL_X_WHOLE_LINE +! || (int)STRLEN(compl_shown_match->cp_str) + > curwin->w_cursor.col - compl_col)) + { + ins_compl_addfrommatch(); +*************** +*** 3837,3843 **** +--- 3837,3847 ---- + char_u *word; + int icase = FALSE; + int adup = FALSE; ++ #ifdef S_SPLINT_S /* splint doesn't parse array of pointers correctly */ ++ char_u **cptext; ++ #else + char_u *(cptext[CPT_COUNT]); ++ #endif + + if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) + { +*************** +*** 3994,4000 **** + else if (*e_cpt == ']' || *e_cpt == 't') + { + type = CTRL_X_TAGS; +! sprintf((char*)IObuff, _("Scanning tags.")); + (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else +--- 3998,4004 ---- + else if (*e_cpt == ']' || *e_cpt == 't') + { + type = CTRL_X_TAGS; +! vim_snprintf((char *)IObuff, IOSIZE, _("Scanning tags.")); + (void)msg_trunc_attr(IObuff, TRUE, hl_attr(HLF_R)); + } + else +*************** +*** 4093,4099 **** + case CTRL_X_SPELL: + #ifdef FEAT_SPELL + num_matches = expand_spelling(first_match_pos.lnum, +! first_match_pos.col, compl_pattern, &matches); + if (num_matches > 0) + ins_compl_add_matches(num_matches, matches, p_ic); + #endif +--- 4097,4103 ---- + case CTRL_X_SPELL: + #ifdef FEAT_SPELL + num_matches = expand_spelling(first_match_pos.lnum, +! compl_pattern, &matches); + if (num_matches > 0) + ins_compl_add_matches(num_matches, matches, p_ic); + #endif +*************** +*** 4803,4812 **** + { + char_u *prefix = (char_u *)"\\<"; + +! /* we need 3 extra chars, 1 for the NUL and +! * 2 >= strlen(prefix) -- Acevedo */ + compl_pattern = alloc(quote_meta(NULL, line + compl_col, +! compl_length) + 3); + if (compl_pattern == NULL) + return FAIL; + if (!vim_iswordp(line + compl_col) +--- 4807,4815 ---- + { + char_u *prefix = (char_u *)"\\<"; + +! /* we need up to 2 extra chars for the prefix */ + compl_pattern = alloc(quote_meta(NULL, line + compl_col, +! compl_length) + 2); + if (compl_pattern == NULL) + return FAIL; + if (!vim_iswordp(line + compl_col) +*************** +*** 4881,4887 **** + else + { + compl_pattern = alloc(quote_meta(NULL, line + compl_col, +! compl_length) + 3); + if (compl_pattern == NULL) + return FAIL; + STRCPY((char *)compl_pattern, "\\<"); +--- 4884,4890 ---- + else + { + compl_pattern = alloc(quote_meta(NULL, line + compl_col, +! compl_length) + 2); + if (compl_pattern == NULL) + return FAIL; + STRCPY((char *)compl_pattern, "\\<"); +*************** +*** 4963,4969 **** + if (col < 0) + col = curs_col; + compl_col = col; +! if ((colnr_T)compl_col > curs_col) + compl_col = curs_col; + + /* Setup variables for completion. Need to obtain "line" again, +--- 4966,4972 ---- + if (col < 0) + col = curs_col; + compl_col = col; +! if (compl_col > curs_col) + compl_col = curs_col; + + /* Setup variables for completion. Need to obtain "line" again, +*************** +*** 5236,5250 **** + * a backslash) the metachars, and dest would be NUL terminated. + * Returns the length (needed) of dest + */ +! static int + quote_meta(dest, src, len) + char_u *dest; + char_u *src; + int len; + { +! int m; + +! for (m = len; --len >= 0; src++) + { + switch (*src) + { +--- 5239,5253 ---- + * a backslash) the metachars, and dest would be NUL terminated. + * Returns the length (needed) of dest + */ +! static unsigned + quote_meta(dest, src, len) + char_u *dest; + char_u *src; + int len; + { +! unsigned m = (unsigned)len + 1; /* one extra for the NUL */ + +! for ( ; --len >= 0; src++) + { + switch (*src) + { +*************** +*** 6073,6079 **** + * in 'formatoptions' and there is a single character before the cursor. + * Otherwise the line would be broken and when typing another non-white + * next they are not joined back together. */ +! wasatend = (pos.col == STRLEN(old)); + if (*old != NUL && !trailblank && wasatend) + { + dec_cursor(); +--- 6076,6082 ---- + * in 'formatoptions' and there is a single character before the cursor. + * Otherwise the line would be broken and when typing another non-white + * next they are not joined back together. */ +! wasatend = (pos.col == (colnr_T)STRLEN(old)); + if (*old != NUL && !trailblank && wasatend) + { + dec_cursor(); +*************** +*** 6250,6256 **** + * three digits. */ + if (VIM_ISDIGIT(c)) + { +! sprintf((char *)buf, "%03d", c); + AppendToRedobuff(buf); + } + else +--- 6253,6259 ---- + * three digits. */ + if (VIM_ISDIGIT(c)) + { +! vim_snprintf((char *)buf, sizeof(buf), "%03d", c); + AppendToRedobuff(buf); + } + else +*************** +*** 6453,6462 **** + * deleted characters. */ + if (VIsual_active && VIsual.lnum == curwin->w_cursor.lnum) + { +! cc = (int)STRLEN(ml_get_curline()); +! if (VIsual.col > (colnr_T)cc) + { +! VIsual.col = cc; + # ifdef FEAT_VIRTUALEDIT + VIsual.coladd = 0; + # endif +--- 6457,6467 ---- + * deleted characters. */ + if (VIsual_active && VIsual.lnum == curwin->w_cursor.lnum) + { +! int len = (int)STRLEN(ml_get_curline()); +! +! if (VIsual.col > len) + { +! VIsual.col = len; + # ifdef FEAT_VIRTUALEDIT + VIsual.coladd = 0; + # endif +*************** +*** 8315,8320 **** +--- 8320,8326 ---- + linenr_T lnum; + int cc; + int temp = 0; /* init for GCC */ ++ colnr_T save_col; + colnr_T mincol; + int did_backspace = FALSE; + int in_indent; +*************** +*** 8472,8484 **** + */ + while (cc > 0) + { +! temp = curwin->w_cursor.col; + #ifdef FEAT_MBYTE + mb_replace_pop_ins(cc); + #else + ins_char(cc); + #endif +! curwin->w_cursor.col = temp; + cc = replace_pop(); + } + /* restore the characters that NL replaced */ +--- 8478,8490 ---- + */ + while (cc > 0) + { +! save_col = curwin->w_cursor.col; + #ifdef FEAT_MBYTE + mb_replace_pop_ins(cc); + #else + ins_char(cc); + #endif +! curwin->w_cursor.col = save_col; + cc = replace_pop(); + } + /* restore the characters that NL replaced */ +*************** +*** 8510,8520 **** + #endif + ) + { +! temp = curwin->w_cursor.col; + beginline(BL_WHITE); + if (curwin->w_cursor.col < (colnr_T)temp) + mincol = curwin->w_cursor.col; +! curwin->w_cursor.col = temp; + } + + /* +--- 8516,8526 ---- + #endif + ) + { +! save_col = curwin->w_cursor.col; + beginline(BL_WHITE); + if (curwin->w_cursor.col < (colnr_T)temp) + mincol = curwin->w_cursor.col; +! curwin->w_cursor.col = save_col; + } + + /* +*** ../vim-7.2.168/src/ex_cmds.c 2009-05-13 12:46:36.000000000 +0200 +--- src/ex_cmds.c 2009-05-13 18:24:18.000000000 +0200 +*************** +*** 87,99 **** + )) + { + transchar_nonprint(buf3, c); +! sprintf(buf1, " <%s>", (char *)buf3); + } + else + buf1[0] = NUL; + #ifndef EBCDIC + if (c >= 0x80) +! sprintf(buf2, " <M-%s>", transchar(c & 0x7f)); + else + #endif + buf2[0] = NUL; +--- 87,100 ---- + )) + { + transchar_nonprint(buf3, c); +! vim_snprintf(buf1, sizeof(buf1), " <%s>", (char *)buf3); + } + else + buf1[0] = NUL; + #ifndef EBCDIC + if (c >= 0x80) +! vim_snprintf(buf2, sizeof(buf2), " <M-%s>", +! (char *)transchar(c & 0x7f)); + else + #endif + buf2[0] = NUL; +*************** +*** 358,364 **** + linenr_T lnum; + long maxlen = 0; + sorti_T *nrs; +! size_t count = eap->line2 - eap->line1 + 1; + size_t i; + char_u *p; + char_u *s; +--- 359,365 ---- + linenr_T lnum; + long maxlen = 0; + sorti_T *nrs; +! size_t count = (size_t)(eap->line2 - eap->line1 + 1); + size_t i; + char_u *p; + char_u *s; +*************** +*** 957,963 **** + } + len += (int)STRLEN(prevcmd); + } +! if ((t = alloc(len)) == NULL) + { + vim_free(newcmd); + return; +--- 958,964 ---- + } + len += (int)STRLEN(prevcmd); + } +! if ((t = alloc((unsigned)len)) == NULL) + { + vim_free(newcmd); + return; +*************** +*** 1548,1554 **** + * redirecting input and/or output. + */ + if (itmp != NULL || otmp != NULL) +! sprintf((char *)buf, "(%s)", (char *)cmd); + else + STRCPY(buf, cmd); + if (itmp != NULL) +--- 1549,1555 ---- + * redirecting input and/or output. + */ + if (itmp != NULL || otmp != NULL) +! vim_snprintf((char *)buf, len, "(%s)", (char *)cmd); + else + STRCPY(buf, cmd); + if (itmp != NULL) +*************** +*** 1597,1633 **** + } + #endif + if (otmp != NULL) +! append_redir(buf, p_srr, otmp); + + return buf; + } + + /* +! * Append output redirection for file "fname" to the end of string buffer "buf" + * Works with the 'shellredir' and 'shellpipe' options. + * The caller should make sure that there is enough room: + * STRLEN(opt) + STRLEN(fname) + 3 + */ + void +! append_redir(buf, opt, fname) + char_u *buf; + char_u *opt; + char_u *fname; + { + char_u *p; + +! buf += STRLEN(buf); + /* find "%s", skipping "%%" */ + for (p = opt; (p = vim_strchr(p, '%')) != NULL; ++p) + if (p[1] == 's') + break; + if (p != NULL) + { +! *buf = ' '; /* not really needed? Not with sh, ksh or bash */ +! sprintf((char *)buf + 1, (char *)opt, (char *)fname); + } + else +! sprintf((char *)buf, + #ifdef FEAT_QUICKFIX + # ifndef RISCOS + opt != p_sp ? " %s%s" : +--- 1598,1638 ---- + } + #endif + if (otmp != NULL) +! append_redir(buf, (int)len, p_srr, otmp); + + return buf; + } + + /* +! * Append output redirection for file "fname" to the end of string buffer +! * "buf[buflen]" + * Works with the 'shellredir' and 'shellpipe' options. + * The caller should make sure that there is enough room: + * STRLEN(opt) + STRLEN(fname) + 3 + */ + void +! append_redir(buf, buflen, opt, fname) + char_u *buf; ++ int buflen; + char_u *opt; + char_u *fname; + { + char_u *p; ++ char_u *end; + +! end = buf + STRLEN(buf); + /* find "%s", skipping "%%" */ + for (p = opt; (p = vim_strchr(p, '%')) != NULL; ++p) + if (p[1] == 's') + break; + if (p != NULL) + { +! *end = ' '; /* not really needed? Not with sh, ksh or bash */ +! vim_snprintf((char *)end + 1, (size_t)(buflen - (end + 1 - buf)), +! (char *)opt, (char *)fname); + } + else +! vim_snprintf((char *)end, (size_t)(buflen - (end - buf)), + #ifdef FEAT_QUICKFIX + # ifndef RISCOS + opt != p_sp ? " %s%s" : +*************** +*** 2390,2396 **** + + if (curwin->w_p_nu || use_number) + { +! sprintf((char *)numbuf, "%*ld ", number_width(curwin), (long)lnum); + msg_puts_attr(numbuf, hl_attr(HLF_N)); /* Highlight line nrs */ + } + msg_prt_line(ml_get(lnum), list); +--- 2395,2402 ---- + + if (curwin->w_p_nu || use_number) + { +! vim_snprintf((char *)numbuf, sizeof(numbuf), +! "%*ld ", number_width(curwin), (long)lnum); + msg_puts_attr(numbuf, hl_attr(HLF_N)); /* Highlight line nrs */ + } + msg_prt_line(ml_get(lnum), list); +*************** +*** 4486,4492 **** + char_u *p1; + int did_sub = FALSE; + int lastone; +! unsigned len, needed_len; + long nmatch_tl = 0; /* nr of lines matched below lnum */ + int do_again; /* do it again after joining lines */ + int skip_match = FALSE; +--- 4492,4498 ---- + char_u *p1; + int did_sub = FALSE; + int lastone; +! int len, copy_len, needed_len; + long nmatch_tl = 0; /* nr of lines matched below lnum */ + int do_again; /* do it again after joining lines */ + int skip_match = FALSE; +*************** +*** 4631,4636 **** +--- 4637,4644 ---- + + if (do_ask) + { ++ int typed; ++ + /* change State to CONFIRM, so that the mouse works + * properly */ + save_State = State; +*************** +*** 4669,4675 **** + resp = getexmodeline('?', NULL, 0); + if (resp != NULL) + { +! i = *resp; + vim_free(resp); + } + } +--- 4677,4683 ---- + resp = getexmodeline('?', NULL, 0); + if (resp != NULL) + { +! typed = *resp; + vim_free(resp); + } + } +*************** +*** 4721,4727 **** + #endif + ++no_mapping; /* don't map this key */ + ++allow_keys; /* allow special keys */ +! i = plain_vgetc(); + --allow_keys; + --no_mapping; + +--- 4729,4735 ---- + #endif + ++no_mapping; /* don't map this key */ + ++allow_keys; /* allow special keys */ +! typed = plain_vgetc(); + --allow_keys; + --no_mapping; + +*************** +*** 4732,4766 **** + } + + need_wait_return = FALSE; /* no hit-return prompt */ +! if (i == 'q' || i == ESC || i == Ctrl_C + #ifdef UNIX +! || i == intr_char + #endif + ) + { + got_quit = TRUE; + break; + } +! if (i == 'n') + break; +! if (i == 'y') + break; +! if (i == 'l') + { + /* last: replace and then stop */ + do_all = FALSE; + line2 = lnum; + break; + } +! if (i == 'a') + { + do_ask = FALSE; + break; + } + #ifdef FEAT_INS_EXPAND +! if (i == Ctrl_E) + scrollup_clamp(); +! else if (i == Ctrl_Y) + scrolldown_clamp(); + #endif + } +--- 4740,4774 ---- + } + + need_wait_return = FALSE; /* no hit-return prompt */ +! if (typed == 'q' || typed == ESC || typed == Ctrl_C + #ifdef UNIX +! || typed == intr_char + #endif + ) + { + got_quit = TRUE; + break; + } +! if (typed == 'n') + break; +! if (typed == 'y') + break; +! if (typed == 'l') + { + /* last: replace and then stop */ + do_all = FALSE; + line2 = lnum; + break; + } +! if (typed == 'a') + { + do_ask = FALSE; + break; + } + #ifdef FEAT_INS_EXPAND +! if (typed == Ctrl_E) + scrollup_clamp(); +! else if (typed == Ctrl_Y) + scrolldown_clamp(); + #endif + } +*************** +*** 4771,4777 **** + if (vim_strchr(p_cpo, CPO_UNDO) != NULL) + --no_u_sync; + +! if (i == 'n') + { + /* For a multi-line match, put matchcol at the NUL at + * the end of the line and set nmatch to one, so that +--- 4779,4785 ---- + if (vim_strchr(p_cpo, CPO_UNDO) != NULL) + --no_u_sync; + +! if (typed == 'n') + { + /* For a multi-line match, put matchcol at the NUL at + * the end of the line and set nmatch to one, so that +*************** +*** 4822,4830 **** + p1 = ml_get(sub_firstlnum + nmatch - 1); + nmatch_tl += nmatch - 1; + } +! i = regmatch.startpos[0].col - copycol; +! needed_len = i + ((unsigned)STRLEN(p1) - regmatch.endpos[0].col) +! + sublen + 1; + if (new_start == NULL) + { + /* +--- 4830,4838 ---- + p1 = ml_get(sub_firstlnum + nmatch - 1); + nmatch_tl += nmatch - 1; + } +! copy_len = regmatch.startpos[0].col - copycol; +! needed_len = copy_len + ((unsigned)STRLEN(p1) +! - regmatch.endpos[0].col) + sublen + 1; + if (new_start == NULL) + { + /* +*************** +*** 4847,4853 **** + */ + len = (unsigned)STRLEN(new_start); + needed_len += len; +! if (needed_len > new_start_len) + { + new_start_len = needed_len + 50; + if ((p1 = alloc_check(new_start_len)) == NULL) +--- 4855,4861 ---- + */ + len = (unsigned)STRLEN(new_start); + needed_len += len; +! if (needed_len > (int)new_start_len) + { + new_start_len = needed_len + 50; + if ((p1 = alloc_check(new_start_len)) == NULL) +*************** +*** 4865,4872 **** + /* + * copy the text up to the part that matched + */ +! mch_memmove(new_end, sub_firstline + copycol, (size_t)i); +! new_end += i; + + (void)vim_regsub_multi(®match, + sub_firstlnum - regmatch.startpos[0].lnum, +--- 4873,4880 ---- + /* + * copy the text up to the part that matched + */ +! mch_memmove(new_end, sub_firstline + copycol, (size_t)copy_len); +! new_end += copy_len; + + (void)vim_regsub_multi(®match, + sub_firstlnum - regmatch.startpos[0].lnum, +*************** +*** 5768,5773 **** +--- 5776,5785 ---- + { + char_u *s, *d; + int i; ++ #ifdef S_SPLINT_S /* splint doesn't understand array of pointers */ ++ static char **mtable; ++ static char **rtable; ++ #else + static char *(mtable[]) = {"*", "g*", "[*", "]*", ":*", + "/*", "/\\*", "\"*", "**", + "/\\(\\)", +*************** +*** 5782,5787 **** +--- 5794,5800 ---- + "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=", + "\\[count]", "\\[quotex]", "\\[range]", + "\\[pattern]", "\\\\bar", "/\\\\%\\$"}; ++ #endif + int flags; + + d = IObuff; /* assume IObuff is long enough! */ +*************** +*** 5790,5796 **** + * Recognize a few exceptions to the rule. Some strings that contain '*' + * with "star". Otherwise '*' is recognized as a wildcard. + */ +! for (i = sizeof(mtable) / sizeof(char *); --i >= 0; ) + if (STRCMP(arg, mtable[i]) == 0) + { + STRCPY(d, rtable[i]); +--- 5803,5809 ---- + * Recognize a few exceptions to the rule. Some strings that contain '*' + * with "star". Otherwise '*' is recognized as a wildcard. + */ +! for (i = (int)(sizeof(mtable) / sizeof(char *)); --i >= 0; ) + if (STRCMP(arg, mtable[i]) == 0) + { + STRCPY(d, rtable[i]); +*** ../vim-7.2.168/src/ex_cmds2.c 2009-02-05 20:47:14.000000000 +0100 +--- src/ex_cmds2.c 2009-05-13 16:22:33.000000000 +0200 +*************** +*** 3373,3379 **** + p = skipwhite(sp->nextline); + if (*p != '\\') + break; +! s = alloc((int)(STRLEN(line) + STRLEN(p))); + if (s == NULL) /* out of memory */ + break; + STRCPY(s, line); +--- 3373,3379 ---- + p = skipwhite(sp->nextline); + if (*p != '\\') + break; +! s = alloc((unsigned)(STRLEN(line) + STRLEN(p))); + if (s == NULL) /* out of memory */ + break; + STRCPY(s, line); +*** ../vim-7.2.168/src/ex_docmd.c 2009-04-29 18:44:38.000000000 +0200 +--- src/ex_docmd.c 2009-05-13 17:56:44.000000000 +0200 +*************** +*** 2737,2743 **** + int i; + + for (i = 0; cmd[i] != NUL; ++i) +! if (cmd[i] != (*pp)[i]) + break; + if (i >= len && !isalpha((*pp)[i])) + { +--- 2737,2743 ---- + int i; + + for (i = 0; cmd[i] != NUL; ++i) +! if (((char_u *)cmd)[i] != (*pp)[i]) + break; + if (i >= len && !isalpha((*pp)[i])) + { +*************** +*** 2803,2809 **** + /* Check for ":dl", ":dell", etc. to ":deletel": that's + * :delete with the 'l' flag. Same for 'p'. */ + for (i = 0; i < len; ++i) +! if (eap->cmd[i] != "delete"[i]) + break; + if (i == len - 1) + { +--- 2803,2809 ---- + /* Check for ":dl", ":dell", etc. to ":deletel": that's + * :delete with the 'l' flag. Same for 'p'. */ + for (i = 0; i < len; ++i) +! if (eap->cmd[i] != ((char_u *)"delete")[i]) + break; + if (i == len - 1) + { +*************** +*** 3823,3829 **** + char_u *cmd; + int *ctx; /* pointer to xp_context or NULL */ + { +! int delim; + + while (vim_strchr((char_u *)" \t0123456789.$%'/?-+,;", *cmd) != NULL) + { +--- 3823,3829 ---- + char_u *cmd; + int *ctx; /* pointer to xp_context or NULL */ + { +! unsigned delim; + + while (vim_strchr((char_u *)" \t0123456789.$%'/?-+,;", *cmd) != NULL) + { +*************** +*** 9417,9423 **** + { + int len; + int i; +! static char *(spec_str[]) = { + "%", + #define SPEC_PERC 0 + "#", +--- 9417,9429 ---- + { + int len; + int i; +! #ifdef S_SPLINT_S /* splint can't handle array of pointers */ +! static char **spec_str; +! static char *(nospec_str[]) +! #else +! static char *(spec_str[]) +! #endif +! = { + "%", + #define SPEC_PERC 0 + "#", +*************** +*** 9443,9451 **** + # define SPEC_CLIENT 9 + #endif + }; +- #define SPEC_COUNT (sizeof(spec_str) / sizeof(char *)) + +! for (i = 0; i < SPEC_COUNT; ++i) + { + len = (int)STRLEN(spec_str[i]); + if (STRNCMP(src, spec_str[i], len) == 0) +--- 9449,9456 ---- + # define SPEC_CLIENT 9 + #endif + }; + +! for (i = 0; i < (int)(sizeof(spec_str) / sizeof(char *)); ++i) + { + len = (int)STRLEN(spec_str[i]); + if (STRNCMP(src, spec_str[i], len) == 0) +*************** +*** 9796,9802 **** + } + + /* allocate memory */ +! retval = alloc(len + 1); + if (retval == NULL) + break; + } +--- 9801,9807 ---- + } + + /* allocate memory */ +! retval = alloc((unsigned)len + 1); + if (retval == NULL) + break; + } +*** ../vim-7.2.168/src/proto/ex_cmds.pro 2009-04-29 18:44:38.000000000 +0200 +--- src/proto/ex_cmds.pro 2009-05-13 15:53:39.000000000 +0200 +*************** +*** 9,15 **** + void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)); + void do_shell __ARGS((char_u *cmd, int flags)); + char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); +! void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname)); + int viminfo_error __ARGS((char *errnum, char *message, char_u *line)); + int read_viminfo __ARGS((char_u *file, int flags)); + void write_viminfo __ARGS((char_u *file, int forceit)); +--- 9,15 ---- + void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)); + void do_shell __ARGS((char_u *cmd, int flags)); + char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp)); +! void append_redir __ARGS((char_u *buf, int buflen, char_u *opt, char_u *fname)); + int viminfo_error __ARGS((char *errnum, char *message, char_u *line)); + int read_viminfo __ARGS((char_u *file, int flags)); + void write_viminfo __ARGS((char_u *file, int forceit)); +*** ../vim-7.2.168/src/proto/spell.pro 2007-05-05 19:19:19.000000000 +0200 +--- src/proto/spell.pro 2009-05-13 16:43:13.000000000 +0200 +*************** +*** 22,26 **** + char_u *spell_to_word_end __ARGS((char_u *start, buf_T *buf)); + int spell_word_start __ARGS((int startcol)); + void spell_expand_check_cap __ARGS((colnr_T col)); +! int expand_spelling __ARGS((linenr_T lnum, int col, char_u *pat, char_u ***matchp)); + /* vim: set ft=c : */ +--- 22,26 ---- + char_u *spell_to_word_end __ARGS((char_u *start, buf_T *buf)); + int spell_word_start __ARGS((int startcol)); + void spell_expand_check_cap __ARGS((colnr_T col)); +! int expand_spelling __ARGS((linenr_T lnum, char_u *pat, char_u ***matchp)); + /* vim: set ft=c : */ +*** ../vim-7.2.168/src/quickfix.c 2009-04-29 11:49:57.000000000 +0200 +--- src/quickfix.c 2009-05-13 15:53:18.000000000 +0200 +*************** +*** 2774,2780 **** + sprintf((char *)cmd, "%s%s%s", (char *)p_shq, (char *)eap->arg, + (char *)p_shq); + if (*p_sp != NUL) +! append_redir(cmd, p_sp, fname); + /* + * Output a newline if there's something else than the :make command that + * was typed (in which case the cursor is in column 0). +--- 2774,2780 ---- + sprintf((char *)cmd, "%s%s%s", (char *)p_shq, (char *)eap->arg, + (char *)p_shq); + if (*p_sp != NUL) +! append_redir(cmd, len, p_sp, fname); + /* + * Output a newline if there's something else than the :make command that + * was typed (in which case the cursor is in column 0). +*** ../vim-7.2.168/src/spell.c 2009-02-11 17:57:43.000000000 +0100 +--- src/spell.c 2009-05-13 16:31:15.000000000 +0200 +*************** +*** 16151,16161 **** + * Returns the number of matches. The matches are in "matchp[]", array of + * allocated strings. + */ +- /*ARGSUSED*/ + int +! expand_spelling(lnum, col, pat, matchp) + linenr_T lnum; +- int col; + char_u *pat; + char_u ***matchp; + { +--- 16151,16159 ---- + * Returns the number of matches. The matches are in "matchp[]", array of + * allocated strings. + */ + int +! expand_spelling(lnum, pat, matchp) + linenr_T lnum; + char_u *pat; + char_u ***matchp; + { +*** ../vim-7.2.168/src/structs.h 2009-05-13 12:46:36.000000000 +0200 +--- src/structs.h 2009-05-13 16:45:51.000000000 +0200 +*************** +*** 16,22 **** + */ + #if defined(SASC) && SASC < 658 + typedef long linenr_T; +! typedef unsigned colnr_T; + typedef unsigned short short_u; + #endif + +--- 16,22 ---- + */ + #if defined(SASC) && SASC < 658 + typedef long linenr_T; +! typedef int colnr_T; + typedef unsigned short short_u; + #endif + +*** ../vim-7.2.168/src/term.h 2005-03-16 10:53:56.000000000 +0100 +--- src/term.h 2009-05-13 17:27:41.000000000 +0200 +*************** +*** 96,102 **** +--- 96,106 ---- + * - there should be code in term.c to obtain the value from the termcap + */ + ++ #ifdef S_SPLINT_S /* splint doesn't understand array of pointers */ ++ extern char_u **term_strings; /* current terminal strings */ ++ #else + extern char_u *(term_strings[]); /* current terminal strings */ ++ #endif + + /* + * strings used for terminal +*** ../vim-7.2.168/src/vim.h 2009-04-29 18:44:38.000000000 +0200 +--- src/vim.h 2009-05-13 16:45:39.000000000 +0200 +*************** +*** 1460,1467 **** + # define PERROR(msg) perror(msg) + #endif + +! typedef long linenr_T; /* line number type */ +! typedef unsigned colnr_T; /* column number type */ + typedef unsigned short disptick_T; /* display tick type */ + + #define MAXLNUM (0x7fffffffL) /* maximum (invalid) line number */ +--- 1460,1467 ---- + # define PERROR(msg) perror(msg) + #endif + +! typedef long linenr_T; /* line number type */ +! typedef int colnr_T; /* column number type */ + typedef unsigned short disptick_T; /* display tick type */ + + #define MAXLNUM (0x7fffffffL) /* maximum (invalid) line number */ +*** ../vim-7.2.168/src/version.c 2009-05-13 14:48:55.000000000 +0200 +--- src/version.c 2009-05-13 18:44:28.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 169, + /**/ + +-- +Females are strictly forbidden to appear unshaven in public. + [real standing law in New Mexico, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.170 b/source/ap/vim/patches/7.2.170 new file mode 100644 index 000000000..6790be14a --- /dev/null +++ b/source/ap/vim/patches/7.2.170 @@ -0,0 +1,179 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.170 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.170 +Problem: Using b_dev while it was not set. (Dominique Pelle) +Solution: Add the b_dev_valid flag. +Files: src/buffer.c, src/fileio.c, src/structs.h + + +*** ../vim-7.2.169/src/buffer.c 2009-05-13 12:46:36.000000000 +0200 +--- src/buffer.c 2009-05-13 20:23:51.000000000 +0200 +*************** +*** 1678,1686 **** + buf->b_fname = buf->b_sfname; + #ifdef UNIX + if (st.st_dev == (dev_T)-1) +! buf->b_dev = -1; + else + { + buf->b_dev = st.st_dev; + buf->b_ino = st.st_ino; + } +--- 1678,1687 ---- + buf->b_fname = buf->b_sfname; + #ifdef UNIX + if (st.st_dev == (dev_T)-1) +! buf->b_dev_valid = FALSE; + else + { ++ buf->b_dev_valid = TRUE; + buf->b_dev = st.st_dev; + buf->b_ino = st.st_ino; + } +*************** +*** 2693,2701 **** + buf->b_fname = buf->b_sfname; + #ifdef UNIX + if (st.st_dev == (dev_T)-1) +! buf->b_dev = -1; + else + { + buf->b_dev = st.st_dev; + buf->b_ino = st.st_ino; + } +--- 2694,2703 ---- + buf->b_fname = buf->b_sfname; + #ifdef UNIX + if (st.st_dev == (dev_T)-1) +! buf->b_dev_valid = FALSE; + else + { ++ buf->b_dev_valid = TRUE; + buf->b_dev = st.st_dev; + buf->b_ino = st.st_ino; + } +*************** +*** 2889,2895 **** + /* If no struct stat given, get it now */ + if (stp == NULL) + { +! if (buf->b_dev < 0 || mch_stat((char *)ffname, &st) < 0) + st.st_dev = (dev_T)-1; + stp = &st; + } +--- 2891,2897 ---- + /* If no struct stat given, get it now */ + if (stp == NULL) + { +! if (!buf->b_dev_valid || mch_stat((char *)ffname, &st) < 0) + st.st_dev = (dev_T)-1; + stp = &st; + } +*************** +*** 2926,2936 **** + + if (buf->b_fname != NULL && mch_stat((char *)buf->b_fname, &st) >= 0) + { + buf->b_dev = st.st_dev; + buf->b_ino = st.st_ino; + } + else +! buf->b_dev = -1; + } + + /* +--- 2928,2939 ---- + + if (buf->b_fname != NULL && mch_stat((char *)buf->b_fname, &st) >= 0) + { ++ buf->b_dev_valid = TRUE; + buf->b_dev = st.st_dev; + buf->b_ino = st.st_ino; + } + else +! buf->b_dev_valid = FALSE; + } + + /* +*************** +*** 2941,2947 **** + buf_T *buf; + struct stat *stp; + { +! return (buf->b_dev >= 0 + && stp->st_dev == buf->b_dev + && stp->st_ino == buf->b_ino); + } +--- 2944,2950 ---- + buf_T *buf; + struct stat *stp; + { +! return (buf->b_dev_valid + && stp->st_dev == buf->b_dev + && stp->st_ino == buf->b_ino); + } +*** ../vim-7.2.169/src/fileio.c 2009-04-29 18:01:23.000000000 +0200 +--- src/fileio.c 2009-05-13 20:24:08.000000000 +0200 +*************** +*** 4416,4422 **** + # endif + buf_setino(buf); + } +! else if (buf->b_dev < 0) + /* Set the inode when creating a new file. */ + buf_setino(buf); + #endif +--- 4416,4422 ---- + # endif + buf_setino(buf); + } +! else if (!buf->b_dev_valid) + /* Set the inode when creating a new file. */ + buf_setino(buf); + #endif +*** ../vim-7.2.169/src/structs.h 2009-05-13 18:54:14.000000000 +0200 +--- src/structs.h 2009-05-13 20:24:54.000000000 +0200 +*************** +*** 1166,1172 **** + char_u *b_fname; /* current file name */ + + #ifdef UNIX +! dev_t b_dev; /* device number (-1 if not set) */ + ino_t b_ino; /* inode number */ + #endif + #ifdef FEAT_CW_EDITOR +--- 1166,1173 ---- + char_u *b_fname; /* current file name */ + + #ifdef UNIX +! int b_dev_valid; /* TRUE when b_dev has a valid number */ +! dev_t b_dev; /* device number */ + ino_t b_ino; /* inode number */ + #endif + #ifdef FEAT_CW_EDITOR +*** ../vim-7.2.169/src/version.c 2009-05-13 18:54:14.000000000 +0200 +--- src/version.c 2009-05-13 20:43:22.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 170, + /**/ + +-- +A special cleaning ordinance bans housewives from hiding dirt and dust under a +rug in a dwelling. + [real standing law in Pennsylvania, United States of America] + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.171 b/source/ap/vim/patches/7.2.171 new file mode 100644 index 000000000..7d1b8a861 --- /dev/null +++ b/source/ap/vim/patches/7.2.171 @@ -0,0 +1,80 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.171 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.171 (after 7.2.169) +Problem: Compiler warnings. (Tony Mechelynck) +Solution: Add function prototype. (Patrick Texier) Init variable. +Files: src/ex_cmds.c + + +*** ../vim-7.2.170/src/ex_cmds.c 2009-05-13 18:54:14.000000000 +0200 +--- src/ex_cmds.c 2009-05-14 21:11:01.000000000 +0200 +*************** +*** 4637,4643 **** + + if (do_ask) + { +! int typed; + + /* change State to CONFIRM, so that the mouse works + * properly */ +--- 4635,4641 ---- + + if (do_ask) + { +! int typed = 0; + + /* change State to CONFIRM, so that the mouse works + * properly */ +*************** +*** 6553,6558 **** +--- 6549,6555 ---- + static sign_T *first_sign = NULL; + static int last_sign_typenr = MAX_TYPENR; /* is decremented */ + ++ static int sign_cmd_idx __ARGS((char_u *begin_cmd, char_u *end_cmd)); + static void sign_list_defined __ARGS((sign_T *sp)); + static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev)); + +*************** +*** 6579,6586 **** + */ + static int + sign_cmd_idx(begin_cmd, end_cmd) +! char *begin_cmd; /* begin of sign subcmd */ +! char *end_cmd; /* just after sign subcmd */ + { + int idx; + char save = *end_cmd; +--- 6576,6583 ---- + */ + static int + sign_cmd_idx(begin_cmd, end_cmd) +! char_u *begin_cmd; /* begin of sign subcmd */ +! char_u *end_cmd; /* just after sign subcmd */ + { + int idx; + char save = *end_cmd; +*** ../vim-7.2.170/src/version.c 2009-05-13 20:47:07.000000000 +0200 +--- src/version.c 2009-05-14 21:49:22.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 171, + /**/ + +-- +Living on Earth includes an annual free trip around the Sun. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.172 b/source/ap/vim/patches/7.2.172 new file mode 100644 index 000000000..1ba814d32 --- /dev/null +++ b/source/ap/vim/patches/7.2.172 @@ -0,0 +1,59 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.172 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.172 (extra) +Problem: Compiler warning. +Solution: Adjust function prototype. (Patrick Texier) +Files: src/os_mswin.c + + +*** ../vim-7.2.171/src/os_mswin.c 2009-01-22 21:49:21.000000000 +0100 +--- src/os_mswin.c 2009-05-14 20:54:32.000000000 +0200 +*************** +*** 1227,1234 **** + * Wait for another process to Close the Clipboard. + * Returns TRUE for success. + */ +! int +! vim_open_clipboard() + { + int delay = 10; + +--- 1227,1234 ---- + * Wait for another process to Close the Clipboard. + * Returns TRUE for success. + */ +! static int +! vim_open_clipboard(void) + { + int delay = 10; + +*** ../vim-7.2.171/src/version.c 2009-05-14 21:51:06.000000000 +0200 +--- src/version.c 2009-05-14 21:59:45.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 172, + /**/ + +-- +FROG: How you English say: I one more time, mac, I unclog my nose towards + you, sons of a window-dresser, so, you think you could out-clever us + French fellows with your silly knees-bent creeping about advancing + behaviour. (blows a raspberry) I wave my private parts at your aunties, + you brightly-coloured, mealy-templed, cranberry-smelling, electric + donkey-bottom biters. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.173 b/source/ap/vim/patches/7.2.173 new file mode 100644 index 000000000..331a6e849 --- /dev/null +++ b/source/ap/vim/patches/7.2.173 @@ -0,0 +1,719 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.173 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.173 +Problem: Without lint there is no check for unused function arguments. +Solution: Use gcc -Wunused-parameter instead of lint. For a few files add + attributes to arguments that are known not to be used. +Files: src/auto/configure, src/buffer.c, src/charset.c, src/diff.c, + src/configure.in, src/config.h.in, src/edit.c, src/ex_cmds.c, + src/ex_cmds2.c, src/version.c, src/vim.h + + +*** ../vim-7.2.172/src/auto/configure 2009-05-13 14:48:55.000000000 +0200 +--- src/auto/configure 2009-05-14 22:08:12.000000000 +0200 +*************** +*** 10362,10367 **** +--- 10372,10427 ---- + + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++ { $as_echo "$as_me:$LINENO: checking whether __attribute__((unused)) is allowed" >&5 ++ $as_echo_n "checking whether __attribute__((unused)) is allowed... " >&6; } ++ cat >conftest.$ac_ext <<_ACEOF ++ /* confdefs.h. */ ++ _ACEOF ++ cat confdefs.h >>conftest.$ac_ext ++ cat >>conftest.$ac_ext <<_ACEOF ++ /* end confdefs.h. */ ++ #include <stdio.h> ++ int ++ main () ++ { ++ int x __attribute__((unused)); ++ ; ++ return 0; ++ } ++ _ACEOF ++ rm -f conftest.$ac_objext ++ if { (ac_try="$ac_compile" ++ case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++ esac ++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++ $as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++ $as_echo "yes" >&6; }; cat >>confdefs.h <<\_ACEOF ++ #define HAVE_ATTRIBUTE_UNUSED 1 ++ _ACEOF ++ ++ else ++ $as_echo "$as_me: failed program was:" >&5 ++ sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++ $as_echo "no" >&6; } ++ fi ++ ++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ + if test "${ac_cv_header_elf_h+set}" = set; then + { $as_echo "$as_me:$LINENO: checking for elf.h" >&5 + $as_echo_n "checking for elf.h... " >&6; } +*** ../vim-7.2.172/src/buffer.c 2009-05-13 20:47:07.000000000 +0200 +--- src/buffer.c 2009-05-14 21:34:06.000000000 +0200 +*************** +*** 512,523 **** + * buf_freeall() - free all things allocated for a buffer that are related to + * the file. + */ +- /*ARGSUSED*/ + void + buf_freeall(buf, del_buf, wipe_buf) + buf_T *buf; +! int del_buf; /* buffer is going to be deleted */ +! int wipe_buf; /* buffer is going to be wiped out */ + { + #ifdef FEAT_AUTOCMD + int is_curbuf = (buf == curbuf); +--- 512,522 ---- + * buf_freeall() - free all things allocated for a buffer that are related to + * the file. + */ + void + buf_freeall(buf, del_buf, wipe_buf) + buf_T *buf; +! int del_buf UNUSED; /* buffer is going to be deleted */ +! int wipe_buf UNUSED; /* buffer is going to be wiped out */ + { + #ifdef FEAT_AUTOCMD + int is_curbuf = (buf == curbuf); +*************** +*** 2437,2447 **** + * another tab page. + * Returns NULL when there isn't any info. + */ +- /*ARGSUSED*/ + static wininfo_T * + find_wininfo(buf, skip_diff_buffer) + buf_T *buf; +! int skip_diff_buffer; + { + wininfo_T *wip; + +--- 2436,2445 ---- + * another tab page. + * Returns NULL when there isn't any info. + */ + static wininfo_T * + find_wininfo(buf, skip_diff_buffer) + buf_T *buf; +! int skip_diff_buffer UNUSED; + { + wininfo_T *wip; + +*************** +*** 4278,4287 **** + * Make "ffname" a full file name, set "sfname" to "ffname" if not NULL. + * "ffname" becomes a pointer to allocated memory (or NULL). + */ +- /*ARGSUSED*/ + void + fname_expand(buf, ffname, sfname) +! buf_T *buf; + char_u **ffname; + char_u **sfname; + { +--- 4276,4284 ---- + * Make "ffname" a full file name, set "sfname" to "ffname" if not NULL. + * "ffname" becomes a pointer to allocated memory (or NULL). + */ + void + fname_expand(buf, ffname, sfname) +! buf_T *buf UNUSED; + char_u **ffname; + char_u **sfname; + { +*************** +*** 5577,5587 **** + * this buffer. Call this to wipe out a temp buffer that does not contain any + * marks. + */ +- /*ARGSUSED*/ + void + wipe_buffer(buf, aucmd) + buf_T *buf; +! int aucmd; /* When TRUE trigger autocommands. */ + { + if (buf->b_fnum == top_file_num - 1) + --top_file_num; +--- 5574,5583 ---- + * this buffer. Call this to wipe out a temp buffer that does not contain any + * marks. + */ + void + wipe_buffer(buf, aucmd) + buf_T *buf; +! int aucmd UNUSED; /* When TRUE trigger autocommands. */ + { + if (buf->b_fnum == top_file_num - 1) + --top_file_num; +*** ../vim-7.2.172/src/charset.c 2009-05-13 14:10:46.000000000 +0200 +--- src/charset.c 2009-05-14 21:34:30.000000000 +0200 +*************** +*** 1026,1038 **** + * string at start of line. Warning: *headp is only set if it's a non-zero + * value, init to 0 before calling. + */ +- /*ARGSUSED*/ + int + win_lbr_chartabsize(wp, s, col, headp) + win_T *wp; + char_u *s; + colnr_T col; +! int *headp; + { + #ifdef FEAT_LINEBREAK + int c; +--- 1026,1037 ---- + * string at start of line. Warning: *headp is only set if it's a non-zero + * value, init to 0 before calling. + */ + int + win_lbr_chartabsize(wp, s, col, headp) + win_T *wp; + char_u *s; + colnr_T col; +! int *headp UNUSED; + { + #ifdef FEAT_LINEBREAK + int c; +*** ../vim-7.2.172/src/diff.c 2009-05-13 18:54:14.000000000 +0200 +--- src/diff.c 2009-05-14 21:24:59.000000000 +0200 +*************** +*** 652,661 **** + * The buffers are written to a file, also for unmodified buffers (the file + * could have been produced by autocommands, e.g. the netrw plugin). + */ +- /*ARGSUSED*/ + void + ex_diffupdate(eap) +! exarg_T *eap; /* can be NULL, it's not used */ + { + buf_T *buf; + int idx_orig; +--- 652,660 ---- + * The buffers are written to a file, also for unmodified buffers (the file + * could have been produced by autocommands, e.g. the netrw plugin). + */ + void + ex_diffupdate(eap) +! exarg_T *eap UNUSED; /* can be NULL */ + { + buf_T *buf; + int idx_orig; +*************** +*** 1094,1103 **** + /* + * Set options to show difs for the current window. + */ +- /*ARGSUSED*/ + void + ex_diffthis(eap) +! exarg_T *eap; + { + /* Set 'diff', 'scrollbind' on and 'wrap' off. */ + diff_win_options(curwin, TRUE); +--- 1093,1101 ---- + /* + * Set options to show difs for the current window. + */ + void + ex_diffthis(eap) +! exarg_T *eap UNUSED; + { + /* Set 'diff', 'scrollbind' on and 'wrap' off. */ + diff_win_options(curwin, TRUE); +*** ../vim-7.2.172/src/configure.in 2009-05-13 14:48:55.000000000 +0200 +--- src/configure.in 2009-05-14 22:08:06.000000000 +0200 +*************** +*** 2067,2072 **** +--- 2067,2077 ---- + AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME), + AC_MSG_RESULT(no)) + ++ AC_MSG_CHECKING(whether __attribute__((unused)) is allowed) ++ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));], ++ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED), ++ AC_MSG_RESULT(no)) ++ + dnl Checks for header files. + AC_CHECK_HEADER(elf.h, HAS_ELF=1) + dnl AC_CHECK_HEADER(dwarf.h, SVR4=1) +*** ../vim-7.2.172/src/config.h.in 2009-03-02 02:44:54.000000000 +0100 +--- src/config.h.in 2009-05-14 21:15:02.000000000 +0200 +*************** +*** 30,35 **** +--- 30,38 ---- + /* Define when __DATE__ " " __TIME__ can be used */ + #undef HAVE_DATE_TIME + ++ /* Define when __attribute__((unused)) can be used */ ++ #undef HAVE_ATTRIBUTE_UNUSED ++ + /* defined always when using configure */ + #undef UNIX + +*** ../vim-7.2.172/src/edit.c 2009-05-13 18:54:14.000000000 +0200 +--- src/edit.c 2009-05-14 21:35:08.000000000 +0200 +*************** +*** 1447,1456 **** + * Only redraw when there are no characters available. This speeds up + * inserting sequences of characters (e.g., for CTRL-R). + */ +- /*ARGSUSED*/ + static void + ins_redraw(ready) +! int ready; /* not busy with something */ + { + if (!char_avail()) + { +--- 1447,1455 ---- + * Only redraw when there are no characters available. This speeds up + * inserting sequences of characters (e.g., for CTRL-R). + */ + static void + ins_redraw(ready) +! int ready UNUSED; /* not busy with something */ + { + if (!char_avail()) + { +*************** +*** 1962,1971 **** + * Only matters when there are composing characters. + * Return TRUE when something was deleted. + */ +- /*ARGSUSED*/ + static int + del_char_after_col(limit_col) +! int limit_col; + { + #ifdef FEAT_MBYTE + if (enc_utf8 && limit_col >= 0) +--- 1961,1969 ---- + * Only matters when there are composing characters. + * Return TRUE when something was deleted. + */ + static int + del_char_after_col(limit_col) +! int limit_col UNUSED; + { + #ifdef FEAT_MBYTE + if (enc_utf8 && limit_col >= 0) +*** ../vim-7.2.172/src/ex_cmds.c 2009-05-14 21:51:06.000000000 +0200 +--- src/ex_cmds.c 2009-05-14 21:11:01.000000000 +0200 +*************** +*** 43,52 **** + /* + * ":ascii" and "ga". + */ +- /*ARGSUSED*/ + void + do_ascii(eap) +! exarg_T *eap; + { + int c; + int cval; +--- 43,51 ---- + /* + * ":ascii" and "ga". + */ + void + do_ascii(eap) +! exarg_T *eap UNUSED; + { + int c; + int cval; +*************** +*** 2373,2382 **** + * ^? ^H + * not ^? ^? + */ +- /*ARGSUSED*/ + void + do_fixdel(eap) +! exarg_T *eap; + { + char_u *p; + +--- 2372,2380 ---- + * ^? ^H + * not ^? ^? + */ + void + do_fixdel(eap) +! exarg_T *eap UNUSED; + { + char_u *p; + +*************** +*** 6127,6136 **** + /* + * ":exusage" + */ +- /*ARGSUSED*/ + void + ex_exusage(eap) +! exarg_T *eap; + { + do_cmdline_cmd((char_u *)"help ex-cmd-index"); + } +--- 6125,6133 ---- + /* + * ":exusage" + */ + void + ex_exusage(eap) +! exarg_T *eap UNUSED; + { + do_cmdline_cmd((char_u *)"help ex-cmd-index"); + } +*************** +*** 6138,6147 **** + /* + * ":viusage" + */ +- /*ARGSUSED*/ + void + ex_viusage(eap) +! exarg_T *eap; + { + do_cmdline_cmd((char_u *)"help normal-index"); + } +--- 6135,6143 ---- + /* + * ":viusage" + */ + void + ex_viusage(eap) +! exarg_T *eap UNUSED; + { + do_cmdline_cmd((char_u *)"help normal-index"); + } +*************** +*** 7154,7163 **** + * Function given to ExpandGeneric() to obtain the sign command + * expansion. + */ +- /*ARGSUSED*/ + char_u * + get_sign_name(xp, idx) +! expand_T *xp; + int idx; + { + sign_T *sp; +--- 7150,7158 ---- + * Function given to ExpandGeneric() to obtain the sign command + * expansion. + */ + char_u * + get_sign_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + sign_T *sp; +*** ../vim-7.2.172/src/ex_cmds2.c 2009-05-13 18:54:14.000000000 +0200 +--- src/ex_cmds2.c 2009-05-14 21:35:40.000000000 +0200 +*************** +*** 680,689 **** + /* + * ":breaklist". + */ +- /*ARGSUSED*/ + void + ex_breaklist(eap) +! exarg_T *eap; + { + struct debuggy *bp; + int i; +--- 680,688 ---- + /* + * ":breaklist". + */ + void + ex_breaklist(eap) +! exarg_T *eap UNUSED; + { + struct debuggy *bp; + int i; +*************** +*** 1342,1355 **** + /* + * return TRUE if buffer was changed and cannot be abandoned. + */ +- /*ARGSUSED*/ + int + check_changed(buf, checkaw, mult_win, forceit, allbuf) + buf_T *buf; + int checkaw; /* do autowrite if buffer was changed */ + int mult_win; /* check also when several wins for the buf */ + int forceit; +! int allbuf; /* may write all buffers */ + { + if ( !forceit + && bufIsChanged(buf) +--- 1341,1353 ---- + /* + * return TRUE if buffer was changed and cannot be abandoned. + */ + int + check_changed(buf, checkaw, mult_win, forceit, allbuf) + buf_T *buf; + int checkaw; /* do autowrite if buffer was changed */ + int mult_win; /* check also when several wins for the buf */ + int forceit; +! int allbuf UNUSED; /* may write all buffers */ + { + if ( !forceit + && bufIsChanged(buf) +*************** +*** 1759,1770 **** + * + * Return FAIL for failure, OK otherwise. + */ +- /*ARGSUSED*/ + static int + do_arglist(str, what, after) + char_u *str; +! int what; +! int after; /* 0 means before first one */ + { + garray_T new_ga; + int exp_count; +--- 1757,1767 ---- + * + * Return FAIL for failure, OK otherwise. + */ + static int + do_arglist(str, what, after) + char_u *str; +! int what UNUSED; +! int after UNUSED; /* 0 means before first one */ + { + garray_T new_ga; + int exp_count; +*************** +*** 2549,2559 **** + + static void source_callback __ARGS((char_u *fname, void *cookie)); + +- /*ARGSUSED*/ + static void + source_callback(fname, cookie) + char_u *fname; +! void *cookie; + { + (void)do_source(fname, FALSE, DOSO_NONE); + } +--- 2546,2555 ---- + + static void source_callback __ARGS((char_u *fname, void *cookie)); + + static void + source_callback(fname, cookie) + char_u *fname; +! void *cookie UNUSED; + { + (void)do_source(fname, FALSE, DOSO_NONE); + } +*************** +*** 2680,2689 **** + /* + * ":options" + */ +- /*ARGSUSED*/ + void + ex_options(eap) +! exarg_T *eap; + { + cmd_source((char_u *)SYS_OPTWIN_FILE, NULL); + } +--- 2676,2684 ---- + /* + * ":options" + */ + void + ex_options(eap) +! exarg_T *eap UNUSED; + { + cmd_source((char_u *)SYS_OPTWIN_FILE, NULL); + } +*************** +*** 3190,3199 **** + /* + * ":scriptnames" + */ +- /*ARGSUSED*/ + void + ex_scriptnames(eap) +! exarg_T *eap; + { + int i; + +--- 3185,3193 ---- + /* + * ":scriptnames" + */ + void + ex_scriptnames(eap) +! exarg_T *eap UNUSED; + { + int i; + +*************** +*** 3317,3328 **** + * Return a pointer to the line in allocated memory. + * Return NULL for end-of-file or some error. + */ +- /* ARGSUSED */ + char_u * + getsourceline(c, cookie, indent) +! int c; /* not used */ + void *cookie; +! int indent; /* not used */ + { + struct source_cookie *sp = (struct source_cookie *)cookie; + char_u *line; +--- 3311,3321 ---- + * Return a pointer to the line in allocated memory. + * Return NULL for end-of-file or some error. + */ + char_u * + getsourceline(c, cookie, indent) +! int c UNUSED; + void *cookie; +! int indent UNUSED; + { + struct source_cookie *sp = (struct source_cookie *)cookie; + char_u *line; +*************** +*** 3649,3658 **** + * ":scriptencoding": Set encoding conversion for a sourced script. + * Without the multi-byte feature it's simply ignored. + */ +- /*ARGSUSED*/ + void + ex_scriptencoding(eap) +! exarg_T *eap; + { + #ifdef FEAT_MBYTE + struct source_cookie *sp; +--- 3642,3650 ---- + * ":scriptencoding": Set encoding conversion for a sourced script. + * Without the multi-byte feature it's simply ignored. + */ + void + ex_scriptencoding(eap) +! exarg_T *eap UNUSED; + { + #ifdef FEAT_MBYTE + struct source_cookie *sp; +*************** +*** 4101,4110 **** + * Function given to ExpandGeneric() to obtain the possible arguments of the + * ":language" command. + */ +- /*ARGSUSED*/ + char_u * + get_lang_arg(xp, idx) +! expand_T *xp; + int idx; + { + if (idx == 0) +--- 4093,4101 ---- + * Function given to ExpandGeneric() to obtain the possible arguments of the + * ":language" command. + */ + char_u * + get_lang_arg(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + if (idx == 0) +*** ../vim-7.2.172/src/version.c 2009-05-14 22:00:37.000000000 +0200 +--- src/version.c 2009-05-14 22:14:51.000000000 +0200 +*************** +*** 1623,1632 **** + /* + * ":intro": clear screen, display intro screen and wait for return. + */ +- /*ARGSUSED*/ + void + ex_intro(eap) +! exarg_T *eap; + { + screenclear(); + intro_message(TRUE); +--- 1625,1633 ---- + /* + * ":intro": clear screen, display intro screen and wait for return. + */ + void + ex_intro(eap) +! exarg_T *eap UNUSED; + { + screenclear(); + intro_message(TRUE); +*** ../vim-7.2.172/src/vim.h 2009-05-13 18:54:14.000000000 +0200 +--- src/vim.h 2009-05-14 21:17:51.000000000 +0200 +*************** +*** 262,267 **** +--- 262,275 ---- + # define __PARMS(x) __ARGS(x) + #endif + ++ /* Mark unused function arguments with UNUSED, so that gcc -Wunused-parameter ++ * can be used to check for mistakes. */ ++ #ifdef HAVE_ATTRIBUTE_UNUSED ++ # define UNUSED __attribute__((unused)) ++ #else ++ # define UNUSED ++ #endif ++ + /* if we're compiling in C++ (currently only KVim), the system + * headers must have the correct prototypes or nothing will build. + * conversely, our prototypes might clash due to throw() specifiers and +*** ../vim-7.2.172/src/version.c 2009-05-14 22:00:37.000000000 +0200 +--- src/version.c 2009-05-14 22:14:51.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 173, + /**/ + +-- +SIGIRO -- irony detected (iron core dumped) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.174 b/source/ap/vim/patches/7.2.174 new file mode 100644 index 000000000..5f8ccd3a0 --- /dev/null +++ b/source/ap/vim/patches/7.2.174 @@ -0,0 +1,1718 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.174 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.174 +Problem: Too many warnings from gcc -Wextra. +Solution: Change initializer. Add UNUSED. Add type casts. +Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c, + src/ex_getln.c, src/fileio.c, getchar.c, globals.h, main.c, + memline.c, message.c, src/misc1.c, src/move.c, src/normal.c, + src/option.c, src/os_unix.c, src/os_unix.h, src/regexp.c, + src/search.c, src/tag.c + + +*** ../vim-7.2.173/src/edit.c 2009-05-14 22:19:19.000000000 +0200 +--- src/edit.c 2009-05-15 21:06:07.000000000 +0200 +*************** +*** 8991,8997 **** + foldOpenCursor(); + #endif + undisplay_dollar(); +! if (gchar_cursor() != NUL || virtual_active() + ) + { + start_arrow(&curwin->w_cursor); +--- 8992,9001 ---- + foldOpenCursor(); + #endif + undisplay_dollar(); +! if (gchar_cursor() != NUL +! #ifdef FEAT_VIRTUALEDIT +! || virtual_active() +! #endif + ) + { + start_arrow(&curwin->w_cursor); +*** ../vim-7.2.173/src/eval.c 2009-04-22 16:07:57.000000000 +0200 +--- src/eval.c 2009-05-15 21:18:08.000000000 +0200 +*************** +*** 8303,8312 **** + /* + * "argc()" function + */ +- /* ARGSUSED */ + static void + f_argc(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = ARGCOUNT; +--- 8303,8311 ---- + /* + * "argc()" function + */ + static void + f_argc(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = ARGCOUNT; +*************** +*** 8315,8324 **** + /* + * "argidx()" function + */ +- /* ARGSUSED */ + static void + f_argidx(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = curwin->w_arg_idx; +--- 8314,8322 ---- + /* + * "argidx()" function + */ + static void + f_argidx(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = curwin->w_arg_idx; +*************** +*** 8396,8405 **** + /* + * "browse(save, title, initdir, default)" function + */ +- /* ARGSUSED */ + static void + f_browse(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_BROWSE +--- 8394,8402 ---- + /* + * "browse(save, title, initdir, default)" function + */ + static void + f_browse(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_BROWSE +*************** +*** 8431,8440 **** + /* + * "browsedir(title, initdir)" function + */ +- /* ARGSUSED */ + static void + f_browsedir(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_BROWSE +--- 8428,8436 ---- + /* + * "browsedir(title, initdir)" function + */ + static void + f_browsedir(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_BROWSE +*************** +*** 8801,8810 **** + /* + * "changenr()" function + */ +- /*ARGSUSED*/ + static void + f_changenr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = curbuf->b_u_seq_cur; +--- 8797,8805 ---- + /* + * "changenr()" function + */ + static void + f_changenr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = curbuf->b_u_seq_cur; +*************** +*** 8854,8863 **** + /* + * "clearmatches()" function + */ +- /*ARGSUSED*/ + static void + f_clearmatches(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA +--- 8849,8857 ---- + /* + * "clearmatches()" function + */ + static void + f_clearmatches(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA +*** ../vim-7.2.173/src/ex_cmds.c 2009-05-14 22:19:19.000000000 +0200 +--- src/ex_cmds.c 2009-05-15 20:42:18.000000000 +0200 +*************** +*** 4040,4047 **** +--- 4040,4049 ---- + bigness = curwin->w_height; + else if (firstwin == lastwin) + bigness = curwin->w_p_scr * 2; ++ #ifdef FEAT_WINDOWS + else + bigness = curwin->w_height - 3; ++ #endif + if (bigness < 1) + bigness = 1; + +*** ../vim-7.2.173/src/ex_docmd.c 2009-05-13 18:54:14.000000000 +0200 +--- src/ex_docmd.c 2009-05-15 20:47:58.000000000 +0200 +*************** +*** 1578,1588 **** + * If "fgetline" is get_loop_line(), return TRUE if the getline it uses equals + * "func". * Otherwise return TRUE when "fgetline" equals "func". + */ +- /*ARGSUSED*/ + int + getline_equal(fgetline, cookie, func) + char_u *(*fgetline) __ARGS((int, void *, int)); +! void *cookie; /* argument for fgetline() */ + char_u *(*func) __ARGS((int, void *, int)); + { + #ifdef FEAT_EVAL +--- 1578,1587 ---- + * If "fgetline" is get_loop_line(), return TRUE if the getline it uses equals + * "func". * Otherwise return TRUE when "fgetline" equals "func". + */ + int + getline_equal(fgetline, cookie, func) + char_u *(*fgetline) __ARGS((int, void *, int)); +! void *cookie UNUSED; /* argument for fgetline() */ + char_u *(*func) __ARGS((int, void *, int)); + { + #ifdef FEAT_EVAL +*************** +*** 1610,1619 **** + * If "fgetline" is get_loop_line(), return the cookie used by the original + * getline function. Otherwise return "cookie". + */ +- /*ARGSUSED*/ + void * + getline_cookie(fgetline, cookie) +! char_u *(*fgetline) __ARGS((int, void *, int)); + void *cookie; /* argument for fgetline() */ + { + # ifdef FEAT_EVAL +--- 1609,1617 ---- + * If "fgetline" is get_loop_line(), return the cookie used by the original + * getline function. Otherwise return "cookie". + */ + void * + getline_cookie(fgetline, cookie) +! char_u *(*fgetline) __ARGS((int, void *, int)) UNUSED; + void *cookie; /* argument for fgetline() */ + { + # ifdef FEAT_EVAL +*************** +*** 2754,2764 **** + * "full" is set to TRUE if the whole command name matched. + * Returns NULL for an ambiguous user command. + */ +- /*ARGSUSED*/ + static char_u * + find_command(eap, full) + exarg_T *eap; +! int *full; + { + int len; + char_u *p; +--- 2752,2761 ---- + * "full" is set to TRUE if the whole command name matched. + * Returns NULL for an ambiguous user command. + */ + static char_u * + find_command(eap, full) + exarg_T *eap; +! int *full UNUSED; + { + int len; + char_u *p; +*************** +*** 5053,5062 **** + /* + * Function given to ExpandGeneric() to obtain the list of command names. + */ +- /*ARGSUSED*/ + char_u * + get_command_name(xp, idx) +! expand_T *xp; + int idx; + { + if (idx >= (int)CMD_SIZE) +--- 5050,5058 ---- + /* + * Function given to ExpandGeneric() to obtain the list of command names. + */ + char_u * + get_command_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + if (idx >= (int)CMD_SIZE) +*************** +*** 5573,5582 **** + * ":comclear" + * Clear all user commands, global and for current buffer. + */ +- /*ARGSUSED*/ + void + ex_comclear(eap) +! exarg_T *eap; + { + uc_clear(&ucmds); + uc_clear(&curbuf->b_ucmds); +--- 5569,5577 ---- + * ":comclear" + * Clear all user commands, global and for current buffer. + */ + void + ex_comclear(eap) +! exarg_T *eap UNUSED; + { + uc_clear(&ucmds); + uc_clear(&curbuf->b_ucmds); +*************** +*** 6072,6081 **** + /* + * Function given to ExpandGeneric() to obtain the list of user command names. + */ +- /*ARGSUSED*/ + char_u * + get_user_commands(xp, idx) +! expand_T *xp; + int idx; + { + if (idx < curbuf->b_ucmds.ga_len) +--- 6067,6075 ---- + /* + * Function given to ExpandGeneric() to obtain the list of user command names. + */ + char_u * + get_user_commands(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + if (idx < curbuf->b_ucmds.ga_len) +*************** +*** 6090,6099 **** + * Function given to ExpandGeneric() to obtain the list of user command + * attributes. + */ +- /*ARGSUSED*/ + char_u * + get_user_cmd_flags(xp, idx) +! expand_T *xp; + int idx; + { + static char *user_cmd_flags[] = +--- 6084,6092 ---- + * Function given to ExpandGeneric() to obtain the list of user command + * attributes. + */ + char_u * + get_user_cmd_flags(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + static char *user_cmd_flags[] = +*************** +*** 6108,6117 **** + /* + * Function given to ExpandGeneric() to obtain the list of values for -nargs. + */ +- /*ARGSUSED*/ + char_u * + get_user_cmd_nargs(xp, idx) +! expand_T *xp; + int idx; + { + static char *user_cmd_nargs[] = {"0", "1", "*", "?", "+"}; +--- 6101,6109 ---- + /* + * Function given to ExpandGeneric() to obtain the list of values for -nargs. + */ + char_u * + get_user_cmd_nargs(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + static char *user_cmd_nargs[] = {"0", "1", "*", "?", "+"}; +*************** +*** 6124,6133 **** + /* + * Function given to ExpandGeneric() to obtain the list of values for -complete. + */ +- /*ARGSUSED*/ + char_u * + get_user_cmd_complete(xp, idx) +! expand_T *xp; + int idx; + { + return (char_u *)command_complete[idx].name; +--- 6116,6124 ---- + /* + * Function given to ExpandGeneric() to obtain the list of values for -complete. + */ + char_u * + get_user_cmd_complete(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + return (char_u *)command_complete[idx].name; +*************** +*** 6305,6314 **** + /* + * ":cquit". + */ +- /*ARGSUSED*/ + static void + ex_cquit(eap) +! exarg_T *eap; + { + getout(1); /* this does not always pass on the exit code to the Manx + compiler. why? */ +--- 6296,6304 ---- + /* + * ":cquit". + */ + static void + ex_cquit(eap) +! exarg_T *eap UNUSED; + { + getout(1); /* this does not always pass on the exit code to the Manx + compiler. why? */ +*************** +*** 6750,6759 **** + /* + * ":shell". + */ +- /*ARGSUSED*/ + static void + ex_shell(eap) +! exarg_T *eap; + { + do_shell(NULL, 0); + } +--- 6740,6748 ---- + /* + * ":shell". + */ + static void + ex_shell(eap) +! exarg_T *eap UNUSED; + { + do_shell(NULL, 0); + } +*************** +*** 7057,7066 **** + /* + * ":preserve". + */ +- /*ARGSUSED*/ + static void + ex_preserve(eap) +! exarg_T *eap; + { + curbuf->b_flags |= BF_PRESERVED; + ml_preserve(curbuf, TRUE); +--- 7046,7054 ---- + /* + * ":preserve". + */ + static void + ex_preserve(eap) +! exarg_T *eap UNUSED; + { + curbuf->b_flags |= BF_PRESERVED; + ml_preserve(curbuf, TRUE); +*************** +*** 7292,7301 **** + /* + * :tabs command: List tabs and their contents. + */ +- /*ARGSUSED*/ + static void + ex_tabs(eap) +! exarg_T *eap; + { + tabpage_T *tp; + win_T *wp; +--- 7280,7288 ---- + /* + * :tabs command: List tabs and their contents. + */ + static void + ex_tabs(eap) +! exarg_T *eap UNUSED; + { + tabpage_T *tp; + win_T *wp; +*************** +*** 7482,7488 **** + /* + * ":edit <file>" command and alikes. + */ +- /*ARGSUSED*/ + void + do_exedit(eap, old_curwin) + exarg_T *eap; +--- 7469,7474 ---- +*************** +*** 7694,7703 **** + } + #endif + +- /*ARGSUSED*/ + static void + ex_swapname(eap) +! exarg_T *eap; + { + if (curbuf->b_ml.ml_mfp == NULL || curbuf->b_ml.ml_mfp->mf_fname == NULL) + MSG(_("No swap file")); +--- 7680,7688 ---- + } + #endif + + static void + ex_swapname(eap) +! exarg_T *eap UNUSED; + { + if (curbuf->b_ml.ml_mfp == NULL || curbuf->b_ml.ml_mfp->mf_fname == NULL) + MSG(_("No swap file")); +*************** +*** 7710,7719 **** + * offset. + * (1998-11-02 16:21:01 R. Edward Ralston <eralston@computer.org>) + */ +- /*ARGSUSED*/ + static void + ex_syncbind(eap) +! exarg_T *eap; + { + #ifdef FEAT_SCROLLBIND + win_T *wp; +--- 7695,7703 ---- + * offset. + * (1998-11-02 16:21:01 R. Edward Ralston <eralston@computer.org>) + */ + static void + ex_syncbind(eap) +! exarg_T *eap UNUSED; + { + #ifdef FEAT_SCROLLBIND + win_T *wp; +*************** +*** 7983,7992 **** + /* + * ":pwd". + */ +- /*ARGSUSED*/ + static void + ex_pwd(eap) +! exarg_T *eap; + { + if (mch_dirname(NameBuff, MAXPATHL) == OK) + { +--- 7967,7975 ---- + /* + * ":pwd". + */ + static void + ex_pwd(eap) +! exarg_T *eap UNUSED; + { + if (mch_dirname(NameBuff, MAXPATHL) == OK) + { +*************** +*** 8417,8426 **** + /* + * ":undo". + */ +- /*ARGSUSED*/ + static void + ex_undo(eap) +! exarg_T *eap; + { + if (eap->addr_count == 1) /* :undo 123 */ + undo_time(eap->line2, FALSE, TRUE); +--- 8400,8408 ---- + /* + * ":undo". + */ + static void + ex_undo(eap) +! exarg_T *eap UNUSED; + { + if (eap->addr_count == 1) /* :undo 123 */ + undo_time(eap->line2, FALSE, TRUE); +*************** +*** 8431,8440 **** + /* + * ":redo". + */ +- /*ARGSUSED*/ + static void + ex_redo(eap) +! exarg_T *eap; + { + u_redo(1); + } +--- 8413,8421 ---- + /* + * ":redo". + */ + static void + ex_redo(eap) +! exarg_T *eap UNUSED; + { + u_redo(1); + } +*************** +*** 8442,8448 **** + /* + * ":earlier" and ":later". + */ +- /*ARGSUSED*/ + static void + ex_later(eap) + exarg_T *eap; +--- 8423,8428 ---- +*************** +*** 8627,8636 **** + /* + * ":redrawstatus": force redraw of status line(s) + */ +- /*ARGSUSED*/ + static void + ex_redrawstatus(eap) +! exarg_T *eap; + { + #if defined(FEAT_WINDOWS) + int r = RedrawingDisabled; +--- 8607,8615 ---- + /* + * ":redrawstatus": force redraw of status line(s) + */ + static void + ex_redrawstatus(eap) +! exarg_T *eap UNUSED; + { + #if defined(FEAT_WINDOWS) + int r = RedrawingDisabled; +*************** +*** 8891,8901 **** + + #if ((defined(FEAT_SESSION) || defined(FEAT_EVAL)) && defined(vim_mkdir)) \ + || defined(PROTO) +- /*ARGSUSED*/ + int + vim_mkdir_emsg(name, prot) + char_u *name; +! int prot; + { + if (vim_mkdir(name, prot) != 0) + { +--- 8870,8879 ---- + + #if ((defined(FEAT_SESSION) || defined(FEAT_EVAL)) && defined(vim_mkdir)) \ + || defined(PROTO) + int + vim_mkdir_emsg(name, prot) + char_u *name; +! int prot UNUSED; + { + if (vim_mkdir(name, prot) != 0) + { +*************** +*** 10968,10977 **** + } + #endif + +- /*ARGSUSED*/ + static void + ex_digraphs(eap) +! exarg_T *eap; + { + #ifdef FEAT_DIGRAPHS + if (*eap->arg != NUL) +--- 10946,10954 ---- + } + #endif + + static void + ex_digraphs(eap) +! exarg_T *eap UNUSED; + { + #ifdef FEAT_DIGRAPHS + if (*eap->arg != NUL) +*************** +*** 11005,11014 **** + /* + * ":nohlsearch" + */ +- /*ARGSUSED*/ + static void + ex_nohlsearch(eap) +! exarg_T *eap; + { + no_hlsearch = TRUE; + redraw_all_later(SOME_VALID); +--- 10982,10990 ---- + /* + * ":nohlsearch" + */ + static void + ex_nohlsearch(eap) +! exarg_T *eap UNUSED; + { + no_hlsearch = TRUE; + redraw_all_later(SOME_VALID); +*************** +*** 11087,11096 **** + /* + * ":X": Get crypt key + */ +- /*ARGSUSED*/ + static void + ex_X(eap) +! exarg_T *eap; + { + (void)get_crypt_key(TRUE, TRUE); + } +--- 11063,11071 ---- + /* + * ":X": Get crypt key + */ + static void + ex_X(eap) +! exarg_T *eap UNUSED; + { + (void)get_crypt_key(TRUE, TRUE); + } +*** ../vim-7.2.173/src/ex_getln.c 2009-04-29 18:44:38.000000000 +0200 +--- src/ex_getln.c 2009-05-15 20:49:22.000000000 +0200 +*************** +*** 140,150 **** + * Return pointer to allocated string if there is a commandline, NULL + * otherwise. + */ +- /*ARGSUSED*/ + char_u * + getcmdline(firstc, count, indent) + int firstc; +! long count; /* only used for incremental search */ + int indent; /* indent for inside conditionals */ + { + int c; +--- 140,149 ---- + * Return pointer to allocated string if there is a commandline, NULL + * otherwise. + */ + char_u * + getcmdline(firstc, count, indent) + int firstc; +! long count UNUSED; /* only used for incremental search */ + int indent; /* indent for inside conditionals */ + { + int c; +*************** +*** 2113,2123 **** + /* + * Get an Ex command line for the ":" command. + */ +- /* ARGSUSED */ + char_u * +! getexline(c, dummy, indent) + int c; /* normally ':', NUL for ":append" */ +! void *dummy; /* cookie not used */ + int indent; /* indent for inside conditionals */ + { + /* When executing a register, remove ':' that's in front of each line. */ +--- 2112,2121 ---- + /* + * Get an Ex command line for the ":" command. + */ + char_u * +! getexline(c, cookie, indent) + int c; /* normally ':', NUL for ":append" */ +! void *cookie UNUSED; + int indent; /* indent for inside conditionals */ + { + /* When executing a register, remove ':' that's in front of each line. */ +*************** +*** 2132,2143 **** + * mappings or abbreviations. + * Returns a string in allocated memory or NULL. + */ +- /* ARGSUSED */ + char_u * +! getexmodeline(promptc, dummy, indent) + int promptc; /* normally ':', NUL for ":append" and '?' for + :s prompt */ +! void *dummy; /* cookie not used */ + int indent; /* indent for inside conditionals */ + { + garray_T line_ga; +--- 2130,2140 ---- + * mappings or abbreviations. + * Returns a string in allocated memory or NULL. + */ + char_u * +! getexmodeline(promptc, cookie, indent) + int promptc; /* normally ':', NUL for ":append" and '?' for + :s prompt */ +! void *cookie UNUSED; + int indent; /* indent for inside conditionals */ + { + garray_T line_ga; +*************** +*** 3832,3842 **** + * Returns EXPAND_NOTHING when the character that triggered expansion should + * be inserted like a normal character. + */ +- /*ARGSUSED*/ + static int + showmatches(xp, wildmenu) + expand_T *xp; +! int wildmenu; + { + #define L_SHOWFILE(m) (showtail ? sm_gettail(files_found[m]) : files_found[m]) + int num_files; +--- 3829,3838 ---- + * Returns EXPAND_NOTHING when the character that triggered expansion should + * be inserted like a normal character. + */ + static int + showmatches(xp, wildmenu) + expand_T *xp; +! int wildmenu UNUSED; + { + #define L_SHOWFILE(m) (showtail ? sm_gettail(files_found[m]) : files_found[m]) + int num_files; +*** ../vim-7.2.173/src/fileio.c 2009-05-13 20:47:07.000000000 +0200 +--- src/fileio.c 2009-05-15 20:52:40.000000000 +0200 +*************** +*** 3498,3504 **** + if (mch_stat((char *)IObuff, &st) < 0 + || st.st_uid != st_old.st_uid + || st.st_gid != st_old.st_gid +! || st.st_mode != perm) + backup_copy = TRUE; + # endif + /* Close the file before removing it, on MS-Windows we +--- 3498,3504 ---- + if (mch_stat((char *)IObuff, &st) < 0 + || st.st_uid != st_old.st_uid + || st.st_gid != st_old.st_gid +! || (long)st.st_mode != perm) + backup_copy = TRUE; + # endif + /* Close the file before removing it, on MS-Windows we +*************** +*** 5963,5969 **** + else if (*ext == '.') + #endif + { +! if (s - ptr > (size_t)8) + { + s = ptr + 8; + *s = '\0'; +--- 5971,5977 ---- + else if (*ext == '.') + #endif + { +! if ((size_t)(s - ptr) > (size_t)8) + { + s = ptr + 8; + *s = '\0'; +*************** +*** 6460,6470 **** + * return 2 if a message has been displayed. + * return 0 otherwise. + */ +- /*ARGSUSED*/ + int + buf_check_timestamp(buf, focus) + buf_T *buf; +! int focus; /* called for GUI focus event */ + { + struct stat st; + int stat_res; +--- 6468,6477 ---- + * return 2 if a message has been displayed. + * return 0 otherwise. + */ + int + buf_check_timestamp(buf, focus) + buf_T *buf; +! int focus UNUSED; /* called for GUI focus event */ + { + struct stat st; + int stat_res; +*************** +*** 6868,6879 **** + /* Careful: autocommands may have made "buf" invalid! */ + } + +- /*ARGSUSED*/ + void + buf_store_time(buf, st, fname) + buf_T *buf; + struct stat *st; +! char_u *fname; + { + buf->b_mtime = (long)st->st_mtime; + buf->b_orig_size = (size_t)st->st_size; +--- 6875,6885 ---- + /* Careful: autocommands may have made "buf" invalid! */ + } + + void + buf_store_time(buf, st, fname) + buf_T *buf; + struct stat *st; +! char_u *fname UNUSED; + { + buf->b_mtime = (long)st->st_mtime; + buf->b_orig_size = (size_t)st->st_size; +*************** +*** 6936,6945 **** + * The returned pointer is to allocated memory. + * The returned pointer is NULL if no valid name was found. + */ +- /*ARGSUSED*/ + char_u * + vim_tempname(extra_char) +! int extra_char; /* character to use in the name instead of '?' */ + { + #ifdef USE_TMPNAM + char_u itmp[L_tmpnam]; /* use tmpnam() */ +--- 6942,6950 ---- + * The returned pointer is to allocated memory. + * The returned pointer is NULL if no valid name was found. + */ + char_u * + vim_tempname(extra_char) +! int extra_char UNUSED; /* char to use in the name instead of '?' */ + { + #ifdef USE_TMPNAM + char_u itmp[L_tmpnam]; /* use tmpnam() */ +*************** +*** 6968,6974 **** + /* + * Try the entries in TEMPDIRNAMES to create the temp directory. + */ +! for (i = 0; i < sizeof(tempdirs) / sizeof(char *); ++i) + { + /* expand $TMP, leave room for "/v1100000/999999999" */ + expand_env((char_u *)tempdirs[i], itmp, TEMPNAMELEN - 20); +--- 6973,6979 ---- + /* + * Try the entries in TEMPDIRNAMES to create the temp directory. + */ +! for (i = 0; i < (int)(sizeof(tempdirs) / sizeof(char *)); ++i) + { + /* expand $TMP, leave room for "/v1100000/999999999" */ + expand_env((char_u *)tempdirs[i], itmp, TEMPNAMELEN - 20); +*************** +*** 9588,9600 **** + * + * Returns NULL when out of memory. + */ +- /*ARGSUSED*/ + char_u * + file_pat_to_reg_pat(pat, pat_end, allow_dirs, no_bslash) + char_u *pat; + char_u *pat_end; /* first char after pattern or NULL */ + char *allow_dirs; /* Result passed back out in here */ +! int no_bslash; /* Don't use a backward slash as pathsep */ + { + int size; + char_u *endp; +--- 9593,9604 ---- + * + * Returns NULL when out of memory. + */ + char_u * + file_pat_to_reg_pat(pat, pat_end, allow_dirs, no_bslash) + char_u *pat; + char_u *pat_end; /* first char after pattern or NULL */ + char *allow_dirs; /* Result passed back out in here */ +! int no_bslash UNUSED; /* Don't use a backward slash as pathsep */ + { + int size; + char_u *endp; +*** ../vim-7.2.173/src/misc1.c 2009-04-29 11:00:09.000000000 +0200 +--- src/misc1.c 2009-05-15 20:59:08.000000000 +0200 +*************** +*** 2188,2199 **** + * + * return FAIL for failure, OK otherwise + */ +- /*ARGSUSED*/ + int + del_bytes(count, fixpos_arg, use_delcombine) + long count; + int fixpos_arg; +! int use_delcombine; /* 'delcombine' option applies */ + { + char_u *oldp, *newp; + colnr_T oldlen; +--- 2188,2198 ---- + * + * return FAIL for failure, OK otherwise + */ + int + del_bytes(count, fixpos_arg, use_delcombine) + long count; + int fixpos_arg; +! int use_delcombine UNUSED; /* 'delcombine' option applies */ + { + char_u *oldp, *newp; + colnr_T oldlen; +*** ../vim-7.2.173/src/move.c 2008-11-15 16:05:30.000000000 +0100 +--- src/move.c 2009-05-15 21:00:06.000000000 +0200 +*************** +*** 1238,1248 **** + /* + * Scroll the current window down by "line_count" logical lines. "CTRL-Y" + */ +- /*ARGSUSED*/ + void + scrolldown(line_count, byfold) + long line_count; +! int byfold; /* TRUE: count a closed fold as one line */ + { + long done = 0; /* total # of physical lines done */ + int wrow; +--- 1238,1247 ---- + /* + * Scroll the current window down by "line_count" logical lines. "CTRL-Y" + */ + void + scrolldown(line_count, byfold) + long line_count; +! int byfold UNUSED; /* TRUE: count a closed fold as one line */ + { + long done = 0; /* total # of physical lines done */ + int wrow; +*************** +*** 1349,1359 **** + /* + * Scroll the current window up by "line_count" logical lines. "CTRL-E" + */ +- /*ARGSUSED*/ + void + scrollup(line_count, byfold) + long line_count; +! int byfold; /* TRUE: count a closed fold as one line */ + { + #if defined(FEAT_FOLDING) || defined(FEAT_DIFF) + linenr_T lnum; +--- 1348,1357 ---- + /* + * Scroll the current window up by "line_count" logical lines. "CTRL-E" + */ + void + scrollup(line_count, byfold) + long line_count; +! int byfold UNUSED; /* TRUE: count a closed fold as one line */ + { + #if defined(FEAT_FOLDING) || defined(FEAT_DIFF) + linenr_T lnum; +*** ../vim-7.2.173/src/normal.c 2009-04-29 17:39:17.000000000 +0200 +--- src/normal.c 2009-05-15 21:08:07.000000000 +0200 +*************** +*** 493,506 **** + int i; + + /* Fill the index table with a one to one relation. */ +! for (i = 0; i < NV_CMDS_SIZE; ++i) + nv_cmd_idx[i] = i; + + /* Sort the commands by the command character. */ + qsort((void *)&nv_cmd_idx, (size_t)NV_CMDS_SIZE, sizeof(short), nv_compare); + + /* Find the first entry that can't be indexed by the command character. */ +! for (i = 0; i < NV_CMDS_SIZE; ++i) + if (i != nv_cmds[nv_cmd_idx[i]].cmd_char) + break; + nv_max_linear = i - 1; +--- 493,506 ---- + int i; + + /* Fill the index table with a one to one relation. */ +! for (i = 0; i < (int)NV_CMDS_SIZE; ++i) + nv_cmd_idx[i] = i; + + /* Sort the commands by the command character. */ + qsort((void *)&nv_cmd_idx, (size_t)NV_CMDS_SIZE, sizeof(short), nv_compare); + + /* Find the first entry that can't be indexed by the command character. */ +! for (i = 0; i < (int)NV_CMDS_SIZE; ++i) + if (i != nv_cmds[nv_cmd_idx[i]].cmd_char) + break; + nv_max_linear = i - 1; +*************** +*** 561,571 **** + /* + * Execute a command in Normal mode. + */ +- /*ARGSUSED*/ + void + normal_cmd(oap, toplevel) + oparg_T *oap; +! int toplevel; /* TRUE when called from main() */ + { + cmdarg_T ca; /* command arguments */ + int c; +--- 561,570 ---- + /* + * Execute a command in Normal mode. + */ + void + normal_cmd(oap, toplevel) + oparg_T *oap; +! int toplevel UNUSED; /* TRUE when called from main() */ + { + cmdarg_T ca; /* command arguments */ + int c; +*************** +*** 2188,2197 **** + /* + * Handle the "g@" operator: call 'operatorfunc'. + */ +- /*ARGSUSED*/ + static void + op_function(oap) +! oparg_T *oap; + { + #ifdef FEAT_EVAL + char_u *(argv[1]); +--- 2187,2195 ---- + /* + * Handle the "g@" operator: call 'operatorfunc'. + */ + static void + op_function(oap) +! oparg_T *oap UNUSED; + { + #ifdef FEAT_EVAL + char_u *(argv[1]); +*************** +*** 4100,4109 **** + * Command character that doesn't do anything, but unlike nv_ignore() does + * start edit(). Used for "startinsert" executed while starting up. + */ +- /*ARGSUSED */ + static void + nv_nop(cap) +! cmdarg_T *cap; + { + } + +--- 4098,4106 ---- + * Command character that doesn't do anything, but unlike nv_ignore() does + * start edit(). Used for "startinsert" executed while starting up. + */ + static void + nv_nop(cap) +! cmdarg_T *cap UNUSED; + { + } + +*************** +*** 5241,5247 **** + if (cap->oap->op_type != OP_NOP + && (cap->oap->start.lnum > curbuf->b_ml.ml_line_count + || cap->oap->start.col > +! STRLEN(ml_get(cap->oap->start.lnum)))) + clearopbeep(cap->oap); + } + } +--- 5238,5244 ---- + if (cap->oap->op_type != OP_NOP + && (cap->oap->start.lnum > curbuf->b_ml.ml_line_count + || cap->oap->start.col > +! (colnr_T)STRLEN(ml_get(cap->oap->start.lnum)))) + clearopbeep(cap->oap); + } + } +*************** +*** 5816,5822 **** + for (n = cap->count1; n > 0; --n) + { + if ((!PAST_LINE && oneright() == FAIL) +! || (PAST_LINE && *ml_get_cursor() == NUL)) + { + /* + * <Space> wraps to next line if 'whichwrap' has 's'. +--- 5813,5822 ---- + for (n = cap->count1; n > 0; --n) + { + if ((!PAST_LINE && oneright() == FAIL) +! #ifdef FEAT_VISUAL +! || (PAST_LINE && *ml_get_cursor() == NUL) +! #endif +! ) + { + /* + * <Space> wraps to next line if 'whichwrap' has 's'. +*** ../vim-7.2.173/src/option.c 2009-03-18 15:40:03.000000000 +0100 +--- src/option.c 2009-05-15 21:08:50.000000000 +0200 +*************** +*** 5302,5315 **** + * When "set_sid" is zero set the scriptID to current_SID. When "set_sid" is + * SID_NONE don't set the scriptID. Otherwise set the scriptID to "set_sid". + */ +- /*ARGSUSED*/ + void + set_string_option_direct(name, opt_idx, val, opt_flags, set_sid) + char_u *name; + int opt_idx; + char_u *val; + int opt_flags; /* OPT_FREE, OPT_LOCAL and/or OPT_GLOBAL */ +! int set_sid; + { + char_u *s; + char_u **varp; +--- 5302,5314 ---- + * When "set_sid" is zero set the scriptID to current_SID. When "set_sid" is + * SID_NONE don't set the scriptID. Otherwise set the scriptID to "set_sid". + */ + void + set_string_option_direct(name, opt_idx, val, opt_flags, set_sid) + char_u *name; + int opt_idx; + char_u *val; + int opt_flags; /* OPT_FREE, OPT_LOCAL and/or OPT_GLOBAL */ +! int set_sid UNUSED; + { + char_u *s; + char_u **varp; +*************** +*** 9357,9366 **** + /* + * Check for NULL pointers in a winopt_T and replace them with empty_option. + */ +- /*ARGSUSED*/ + void + check_winopt(wop) +! winopt_T *wop; + { + #ifdef FEAT_FOLDING + check_string_option(&wop->wo_fdi); +--- 9356,9364 ---- + /* + * Check for NULL pointers in a winopt_T and replace them with empty_option. + */ + void + check_winopt(wop) +! winopt_T *wop UNUSED; + { + #ifdef FEAT_FOLDING + check_string_option(&wop->wo_fdi); +*************** +*** 9382,9391 **** + /* + * Free the allocated memory inside a winopt_T. + */ +- /*ARGSUSED*/ + void + clear_winopt(wop) +! winopt_T *wop; + { + #ifdef FEAT_FOLDING + clear_string_option(&wop->wo_fdi); +--- 9380,9388 ---- + /* + * Free the allocated memory inside a winopt_T. + */ + void + clear_winopt(wop) +! winopt_T *wop UNUSED; + { + #ifdef FEAT_FOLDING + clear_string_option(&wop->wo_fdi); +*** ../vim-7.2.173/src/os_unix.c 2009-05-13 12:46:36.000000000 +0200 +--- src/os_unix.c 2009-05-15 21:13:43.000000000 +0200 +*************** +*** 458,467 **** + * Return total amount of memory available in Kbyte. + * Doesn't change when memory has been allocated. + */ +- /* ARGSUSED */ + long_u + mch_total_mem(special) +! int special; + { + # ifdef __EMX__ + return ulimit(3, 0L) >> 10; /* always 32MB? */ +--- 458,466 ---- + * Return total amount of memory available in Kbyte. + * Doesn't change when memory has been allocated. + */ + long_u + mch_total_mem(special) +! int special UNUSED; + { + # ifdef __EMX__ + return ulimit(3, 0L) >> 10; /* always 32MB? */ +*************** +*** 815,821 **** + * Let me try it with a few tricky defines from my own osdef.h (jw). + */ + #if defined(SIGWINCH) +- /* ARGSUSED */ + static RETSIGTYPE + sig_winch SIGDEFARG(sigarg) + { +--- 814,819 ---- +*************** +*** 1355,1365 **** + /* + * Check_win checks whether we have an interactive stdout. + */ +- /* ARGSUSED */ + int + mch_check_win(argc, argv) +! int argc; +! char **argv; + { + #ifdef OS2 + /* +--- 1353,1362 ---- + /* + * Check_win checks whether we have an interactive stdout. + */ + int + mch_check_win(argc, argv) +! int argc UNUSED; +! char **argv UNUSED; + { + #ifdef OS2 + /* +*************** +*** 2467,2473 **** + } + + /* Catch file names which are too long. */ +! if (retval == FAIL || STRLEN(buf) + STRLEN(fname) >= len) + return FAIL; + + /* Do not append ".", "/dir/." is equal to "/dir". */ +--- 2464,2470 ---- + } + + /* Catch file names which are too long. */ +! if (retval == FAIL || (int)(STRLEN(buf) + STRLEN(fname)) >= len) + return FAIL; + + /* Do not append ".", "/dir/." is equal to "/dir". */ +*************** +*** 2686,2692 **** + */ + vim_acl_T + mch_get_acl(fname) +! char_u *fname; + { + vim_acl_T ret = NULL; + #ifdef HAVE_POSIX_ACL +--- 2683,2689 ---- + */ + vim_acl_T + mch_get_acl(fname) +! char_u *fname UNUSED; + { + vim_acl_T ret = NULL; + #ifdef HAVE_POSIX_ACL +*************** +*** 2746,2752 **** + */ + void + mch_set_acl(fname, aclent) +! char_u *fname; + vim_acl_T aclent; + { + if (aclent == NULL) +--- 2743,2749 ---- + */ + void + mch_set_acl(fname, aclent) +! char_u *fname UNUSED; + vim_acl_T aclent; + { + if (aclent == NULL) +*************** +*** 2789,2798 **** + /* + * Set hidden flag for "name". + */ +- /* ARGSUSED */ + void + mch_hide(name) +! char_u *name; + { + /* can't hide a file */ + } +--- 2786,2794 ---- + /* + * Set hidden flag for "name". + */ + void + mch_hide(name) +! char_u *name UNUSED; + { + /* can't hide a file */ + } +*************** +*** 3481,3490 **** + /* + * set screen mode, always fails. + */ +- /* ARGSUSED */ + int + mch_screenmode(arg) +! char_u *arg; + { + EMSG(_(e_screenmode)); + return FAIL; +--- 3477,3485 ---- + /* + * set screen mode, always fails. + */ + int + mch_screenmode(arg) +! char_u *arg UNUSED; + { + EMSG(_(e_screenmode)); + return FAIL; +*************** +*** 4189,4197 **** + { + s = vim_strchr(lp + written, NL); + len = write(toshell_fd, (char *)lp + written, +! s == NULL ? l : s - (lp + written)); + } +! if (len == l) + { + /* Finished a line, add a NL, unless this line + * should not have one. */ +--- 4184,4193 ---- + { + s = vim_strchr(lp + written, NL); + len = write(toshell_fd, (char *)lp + written, +! s == NULL ? l +! : (size_t)(s - (lp + written))); + } +! if (len == (int)l) + { + /* Finished a line, add a NL, unless this line + * should not have one. */ +*************** +*** 4746,4752 **** + * Returns also, when a request from Sniff is waiting -- toni. + * Or when a Linux GPM mouse event is waiting. + */ +- /* ARGSUSED */ + #if defined(__BEOS__) + int + #else +--- 4742,4747 ---- +*************** +*** 4755,4761 **** + RealWaitForChar(fd, msec, check_for_gpm) + int fd; + long msec; +! int *check_for_gpm; + { + int ret; + #if defined(FEAT_XCLIPBOARD) || defined(USE_XSMP) || defined(FEAT_MZSCHEME) +--- 4750,4756 ---- + RealWaitForChar(fd, msec, check_for_gpm) + int fd; + long msec; +! int *check_for_gpm UNUSED; + { + int ret; + #if defined(FEAT_XCLIPBOARD) || defined(USE_XSMP) || defined(FEAT_MZSCHEME) +*************** +*** 5572,5578 **** + i = fread((char *)buffer, 1, len, fd); + fclose(fd); + mch_remove(tempname); +! if (i != len) + { + /* unexpected read error */ + EMSG2(_(e_notread), tempname); +--- 5567,5573 ---- + i = fread((char *)buffer, 1, len, fd); + fclose(fd); + mch_remove(tempname); +! if (i != (int)len) + { + /* unexpected read error */ + EMSG2(_(e_notread), tempname); +*************** +*** 5633,5639 **** + if (shell_style == STYLE_PRINT && !did_find_nul) + { + /* If there is a NUL, set did_find_nul, else set check_spaces */ +! if (len && (int)STRLEN(buffer) < len - 1) + did_find_nul = TRUE; + else + check_spaces = TRUE; +--- 5628,5634 ---- + if (shell_style == STYLE_PRINT && !did_find_nul) + { + /* If there is a NUL, set did_find_nul, else set check_spaces */ +! if (len && (int)STRLEN(buffer) < (int)len - 1) + did_find_nul = TRUE; + else + check_spaces = TRUE; +*** ../vim-7.2.173/src/os_unix.h 2009-05-13 12:46:36.000000000 +0200 +--- src/os_unix.h 2009-05-15 21:10:31.000000000 +0200 +*************** +*** 126,132 **** + # define SIGDUMMYARG 0, 0, (struct sigcontext *)0 + # else + # define SIGPROTOARG (int) +! # define SIGDEFARG(s) (s) int s; + # define SIGDUMMYARG 0 + # endif + #else +--- 126,132 ---- + # define SIGDUMMYARG 0, 0, (struct sigcontext *)0 + # else + # define SIGPROTOARG (int) +! # define SIGDEFARG(s) (s) int s UNUSED; + # define SIGDUMMYARG 0 + # endif + #else +*** ../vim-7.2.173/src/regexp.c 2009-02-21 22:03:06.000000000 +0100 +--- src/regexp.c 2009-05-15 21:14:18.000000000 +0200 +*************** +*** 471,477 **** + + if ((*pp)[1] == ':') + { +! for (i = 0; i < sizeof(class_names) / sizeof(*class_names); ++i) + if (STRNCMP(*pp + 2, class_names[i], STRLEN(class_names[i])) == 0) + { + *pp += STRLEN(class_names[i]) + 2; +--- 471,477 ---- + + if ((*pp)[1] == ':') + { +! for (i = 0; i < (int)(sizeof(class_names) / sizeof(*class_names)); ++i) + if (STRNCMP(*pp + 2, class_names[i], STRLEN(class_names[i])) == 0) + { + *pp += STRLEN(class_names[i]) + 2; +*************** +*** 3362,3373 **** + * Match a regexp against a string ("line" points to the string) or multiple + * lines ("line" is NULL, use reg_getline()). + */ +- /*ARGSUSED*/ + static long + vim_regexec_both(line, col, tm) + char_u *line; + colnr_T col; /* column to start looking for match */ +! proftime_T *tm; /* timeout limit or NULL */ + { + regprog_T *prog; + char_u *s; +--- 3362,3372 ---- + * Match a regexp against a string ("line" points to the string) or multiple + * lines ("line" is NULL, use reg_getline()). + */ + static long + vim_regexec_both(line, col, tm) + char_u *line; + colnr_T col; /* column to start looking for match */ +! proftime_T *tm UNUSED; /* timeout limit or NULL */ + { + regprog_T *prog; + char_u *s; +*** ../vim-7.2.173/src/search.c 2009-04-22 18:43:06.000000000 +0200 +--- src/search.c 2009-05-15 21:16:36.000000000 +0200 +*************** +*** 522,528 **** + * When FEAT_EVAL is defined, returns the index of the first matching + * subpattern plus one; one if there was none. + */ +- /*ARGSUSED*/ + int + searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm) + win_T *win; /* window to search in; can be NULL for a +--- 522,527 ---- +*************** +*** 535,541 **** + int options; + int pat_use; /* which pattern to use when "pat" is empty */ + linenr_T stop_lnum; /* stop after this line number when != 0 */ +! proftime_T *tm; /* timeout limit or NULL */ + { + int found; + linenr_T lnum; /* no init to shut up Apollo cc */ +--- 534,540 ---- + int options; + int pat_use; /* which pattern to use when "pat" is empty */ + linenr_T stop_lnum; /* stop after this line number when != 0 */ +! proftime_T *tm UNUSED; /* timeout limit or NULL */ + { + int found; + linenr_T lnum; /* no init to shut up Apollo cc */ +*************** +*** 554,561 **** + int save_called_emsg = called_emsg; + #ifdef FEAT_SEARCH_EXTRA + int break_loop = FALSE; +- #else +- # define break_loop FALSE + #endif + + if (search_regcomp(pat, RE_SEARCH, pat_use, +--- 553,558 ---- +*************** +*** 940,946 **** + * twice. + */ + if (!p_ws || stop_lnum != 0 || got_int || called_emsg +! || break_loop || found || loop) + break; + + /* +--- 937,946 ---- + * twice. + */ + if (!p_ws || stop_lnum != 0 || got_int || called_emsg +! #ifdef FEAT_SEARCH_EXTRA +! || break_loop +! #endif +! || found || loop) + break; + + /* +*************** +*** 958,964 **** + give_warning((char_u *)_(dir == BACKWARD + ? top_bot_msg : bot_top_msg), TRUE); + } +! if (got_int || called_emsg || break_loop) + break; + } + while (--count > 0 && found); /* stop after count matches or no match */ +--- 958,968 ---- + give_warning((char_u *)_(dir == BACKWARD + ? top_bot_msg : bot_top_msg), TRUE); + } +! if (got_int || called_emsg +! #ifdef FEAT_SEARCH_EXTRA +! || break_loop +! #endif +! ) + break; + } + while (--count > 0 && found); /* stop after count matches or no match */ +*** ../vim-7.2.173/src/tag.c 2009-02-23 00:53:35.000000000 +0100 +--- src/tag.c 2009-05-15 21:16:59.000000000 +0200 +*************** +*** 1105,1114 **** + /* + * Print the tag stack + */ +- /*ARGSUSED*/ + void + do_tags(eap) +! exarg_T *eap; + { + int i; + char_u *name; +--- 1105,1113 ---- + /* + * Print the tag stack + */ + void + do_tags(eap) +! exarg_T *eap UNUSED; + { + int i; + char_u *name; +*************** +*** 2530,2540 **** + * Callback function for finding all "tags" and "tags-??" files in + * 'runtimepath' doc directories. + */ +- /*ARGSUSED*/ + static void + found_tagfile_cb(fname, cookie) + char_u *fname; +! void *cookie; + { + if (ga_grow(&tag_fnames, 1) == OK) + ((char_u **)(tag_fnames.ga_data))[tag_fnames.ga_len++] = +--- 2529,2538 ---- + * Callback function for finding all "tags" and "tags-??" files in + * 'runtimepath' doc directories. + */ + static void + found_tagfile_cb(fname, cookie) + char_u *fname; +! void *cookie UNUSED; + { + if (ga_grow(&tag_fnames, 1) == OK) + ((char_u **)(tag_fnames.ga_data))[tag_fnames.ga_len++] = +*** ../vim-7.2.173/src/version.c 2009-05-14 22:19:19.000000000 +0200 +--- src/version.c 2009-05-15 21:21:44.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 174, + /**/ + +-- +TERRY GILLIAM PLAYED: PATSY (ARTHUR'S TRUSTY STEED), THE GREEN KNIGHT + SOOTHSAYER, BRIDGEKEEPER, SIR GAWAIN (THE FIRST TO BE + KILLED BY THE RABBIT) + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.175 b/source/ap/vim/patches/7.2.175 new file mode 100644 index 000000000..4ba3a1587 --- /dev/null +++ b/source/ap/vim/patches/7.2.175 @@ -0,0 +1,51 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.175 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.175 +Problem: Compiler warning in OpenBSD. +Solution: Add type cast for NULL. (Dasn) +Files: src/if_cscope.c + + +*** ../vim-7.2.174/src/if_cscope.c 2009-04-22 16:22:44.000000000 +0200 +--- src/if_cscope.c 2009-05-16 16:15:03.000000000 +0200 +*************** +*** 994,1000 **** + vim_free(ppath); + + #if defined(UNIX) +! if (execl("/bin/sh", "sh", "-c", cmd, NULL) == -1) + PERROR(_("cs_create_connection exec failed")); + + exit(127); +--- 994,1000 ---- + vim_free(ppath); + + #if defined(UNIX) +! if (execl("/bin/sh", "sh", "-c", cmd, (char *)NULL) == -1) + PERROR(_("cs_create_connection exec failed")); + + exit(127); +*** ../vim-7.2.174/src/version.c 2009-05-15 21:31:11.000000000 +0200 +--- src/version.c 2009-05-16 16:13:15.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 175, + /**/ + +-- +Every time I lose weight, it finds me again! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.176 b/source/ap/vim/patches/7.2.176 new file mode 100644 index 000000000..91c98afbc --- /dev/null +++ b/source/ap/vim/patches/7.2.176 @@ -0,0 +1,207 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.176 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.176 +Problem: Exceptions for splint are not useful. +Solution: Remove the S_SPLINT_S ifdefs. +Files: src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/os_unix.c, + src/os_unix.h, src/os_unixx.h, src/structs.h, src/term.h + + +*** ../vim-7.2.175/src/edit.c 2009-05-15 21:31:11.000000000 +0200 +--- src/edit.c 2009-05-16 16:18:35.000000000 +0200 +*************** +*** 69,79 **** + compl_T *cp_prev; + char_u *cp_str; /* matched text */ + char cp_icase; /* TRUE or FALSE: ignore case */ +- #ifdef S_SPLINT_S /* splint can't handle array of pointers */ +- char_u **cp_text; /* text for the menu */ +- #else + char_u *(cp_text[CPT_COUNT]); /* text for the menu */ +- #endif + char_u *cp_fname; /* file containing the match, allocated when + * cp_flags has FREE_FNAME */ + int cp_flags; /* ORIGINAL_TEXT, CONT_S_IPOS or FREE_FNAME */ +--- 69,75 ---- +*************** +*** 3835,3845 **** + char_u *word; + int icase = FALSE; + int adup = FALSE; +- #ifdef S_SPLINT_S /* splint doesn't parse array of pointers correctly */ +- char_u **cptext; +- #else + char_u *(cptext[CPT_COUNT]); +- #endif + + if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) + { +--- 3831,3837 ---- +*** ../vim-7.2.175/src/ex_cmds.c 2009-05-15 21:31:11.000000000 +0200 +--- src/ex_cmds.c 2009-05-16 16:18:56.000000000 +0200 +*************** +*** 5776,5785 **** + { + char_u *s, *d; + int i; +- #ifdef S_SPLINT_S /* splint doesn't understand array of pointers */ +- static char **mtable; +- static char **rtable; +- #else + static char *(mtable[]) = {"*", "g*", "[*", "]*", ":*", + "/*", "/\\*", "\"*", "**", + "/\\(\\)", +--- 5776,5781 ---- +*************** +*** 5794,5800 **** + "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=", + "\\[count]", "\\[quotex]", "\\[range]", + "\\[pattern]", "\\\\bar", "/\\\\%\\$"}; +- #endif + int flags; + + d = IObuff; /* assume IObuff is long enough! */ +--- 5790,5795 ---- +*** ../vim-7.2.175/src/ex_docmd.c 2009-05-15 21:31:11.000000000 +0200 +--- src/ex_docmd.c 2009-05-16 16:19:26.000000000 +0200 +*************** +*** 9395,9407 **** + { + int len; + int i; +! #ifdef S_SPLINT_S /* splint can't handle array of pointers */ +! static char **spec_str; +! static char *(nospec_str[]) +! #else +! static char *(spec_str[]) +! #endif +! = { + "%", + #define SPEC_PERC 0 + "#", +--- 9395,9401 ---- + { + int len; + int i; +! static char *(spec_str[]) = { + "%", + #define SPEC_PERC 0 + "#", +*** ../vim-7.2.175/src/os_unix.c 2009-05-15 21:31:11.000000000 +0200 +--- src/os_unix.c 2009-05-16 16:20:00.000000000 +0200 +*************** +*** 199,207 **** + #endif + + #ifndef SIG_ERR +! # ifndef S_SPLINT_S +! # define SIG_ERR ((RETSIGTYPE (*)())-1) +! # endif + #endif + + /* volatile because it is used in signal handler sig_winch(). */ +--- 199,205 ---- + #endif + + #ifndef SIG_ERR +! # define SIG_ERR ((RETSIGTYPE (*)())-1) + #endif + + /* volatile because it is used in signal handler sig_winch(). */ +*************** +*** 443,451 **** + + #if defined(HAVE_TOTAL_MEM) || defined(PROTO) + # ifdef HAVE_SYS_RESOURCE_H +! # ifndef S_SPLINT_S /* splint crashes on bits/resource.h */ +! # include <sys/resource.h> +! # endif + # endif + # if defined(HAVE_SYS_SYSCTL_H) && defined(HAVE_SYSCTL) + # include <sys/sysctl.h> +--- 441,447 ---- + + #if defined(HAVE_TOTAL_MEM) || defined(PROTO) + # ifdef HAVE_SYS_RESOURCE_H +! # include <sys/resource.h> + # endif + # if defined(HAVE_SYS_SYSCTL_H) && defined(HAVE_SYSCTL) + # include <sys/sysctl.h> +*** ../vim-7.2.175/src/os_unix.h 2009-05-15 21:31:11.000000000 +0200 +--- src/os_unix.h 2009-05-16 16:17:22.000000000 +0200 +*************** +*** 53,61 **** + #endif + + #ifdef HAVE_UNISTD_H +! # ifndef S_SPLINT_S /* splint crashes on bits/confname.h */ +! # include <unistd.h> +! # endif + #endif + + #ifdef HAVE_LIBC_H +--- 53,59 ---- + #endif + + #ifdef HAVE_UNISTD_H +! # include <unistd.h> + #endif + + #ifdef HAVE_LIBC_H +*** ../vim-7.2.175/src/structs.h 2009-05-13 20:47:07.000000000 +0200 +--- src/structs.h 2009-05-16 16:17:51.000000000 +0200 +*************** +*** 1646,1656 **** + #endif + #ifdef FEAT_DIFF + diff_T *tp_first_diff; +- # ifdef S_SPLINT_S /* splint doesn't understand the array of pointers */ +- buf_T **tp_diffbuf; +- # else + buf_T *(tp_diffbuf[DB_COUNT]); +- # endif + int tp_diff_invalid; /* list of diffs is outdated */ + #endif + frame_T *tp_snapshot; /* window layout snapshot */ +--- 1646,1652 ---- +*** ../vim-7.2.175/src/term.h 2009-05-13 18:54:14.000000000 +0200 +--- src/term.h 2009-05-16 16:20:06.000000000 +0200 +*************** +*** 96,106 **** + * - there should be code in term.c to obtain the value from the termcap + */ + +- #ifdef S_SPLINT_S /* splint doesn't understand array of pointers */ +- extern char_u **term_strings; /* current terminal strings */ +- #else + extern char_u *(term_strings[]); /* current terminal strings */ +- #endif + + /* + * strings used for terminal +--- 96,102 ---- +*** ../vim-7.2.175/src/version.c 2009-05-16 16:15:39.000000000 +0200 +--- src/version.c 2009-05-16 16:34:10.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 176, + /**/ + +-- +Corn oil comes from corn and olive oil comes from olives, so where +does baby oil come from? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.177 b/source/ap/vim/patches/7.2.177 new file mode 100644 index 000000000..65dc16c2f --- /dev/null +++ b/source/ap/vim/patches/7.2.177 @@ -0,0 +1,2726 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.177 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.177 +Problem: Compiler warnings when using -Wextra +Solution: Add UNUSED and type casts. +Files: src/eval.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, + src/fileio.c, src/hardcopy.c, src/if_cscope.c, src/if_xcmdsrv.c, + src/farsi.c, src/mark.c, src/menu.c + + +*** ../vim-7.2.176/src/eval.c 2009-05-15 21:31:11.000000000 +0200 +--- src/eval.c 2009-05-16 16:58:30.000000000 +0200 +*************** +*** 3772,3778 **** + * Function given to ExpandGeneric() to obtain the list of user defined + * (global/buffer/window/built-in) variable names. + */ +- /*ARGSUSED*/ + char_u * + get_user_var_name(xp, idx) + expand_T *xp; +--- 3772,3777 ---- +*************** +*** 7787,7793 **** + * Function given to ExpandGeneric() to obtain the list of internal or + * user defined variable or function names. + */ +- /*ARGSUSED*/ + char_u * + get_expr_name(xp, idx) + expand_T *xp; +--- 7786,7791 ---- +*************** +*** 8655,8664 **** + /* + * "byte2line(byte)" function + */ +- /*ARGSUSED*/ + static void + f_byte2line(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifndef FEAT_BYTEOFF +--- 8653,8661 ---- + /* + * "byte2line(byte)" function + */ + static void + f_byte2line(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifndef FEAT_BYTEOFF +*************** +*** 8678,8684 **** + /* + * "byteidx()" function + */ +- /*ARGSUSED*/ + static void + f_byteidx(argvars, rettv) + typval_T *argvars; +--- 8675,8680 ---- +*************** +*** 8852,8858 **** + static void + f_clearmatches(argvars, rettv) + typval_T *argvars UNUSED; +! typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA + clear_matches(curwin); +--- 8848,8854 ---- + static void + f_clearmatches(argvars, rettv) + typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_SEARCH_EXTRA + clear_matches(curwin); +*************** +*** 8916,8926 **** + /* + * "complete()" function + */ +- /*ARGSUSED*/ + static void + f_complete(argvars, rettv) + typval_T *argvars; +! typval_T *rettv; + { + int startcol; + +--- 8912,8921 ---- + /* + * "complete()" function + */ + static void + f_complete(argvars, rettv) + typval_T *argvars; +! typval_T *rettv UNUSED; + { + int startcol; + +*************** +*** 8951,8957 **** + /* + * "complete_add()" function + */ +- /*ARGSUSED*/ + static void + f_complete_add(argvars, rettv) + typval_T *argvars; +--- 8946,8951 ---- +*************** +*** 8963,8972 **** + /* + * "complete_check()" function + */ +- /*ARGSUSED*/ + static void + f_complete_check(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + int saved = RedrawingDisabled; +--- 8957,8965 ---- + /* + * "complete_check()" function + */ + static void + f_complete_check(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + int saved = RedrawingDisabled; +*************** +*** 8981,8991 **** + /* + * "confirm(message, buttons[, default [, type]])" function + */ +- /*ARGSUSED*/ + static void + f_confirm(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) + char_u *message; +--- 8974,8983 ---- + /* + * "confirm(message, buttons[, default [, type]])" function + */ + static void + f_confirm(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) + char_u *message; +*************** +*** 9150,9160 **** + * + * Checks the existence of a cscope connection. + */ +- /*ARGSUSED*/ + static void + f_cscope_connection(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_CSCOPE + int num = 0; +--- 9142,9151 ---- + * + * Checks the existence of a cscope connection. + */ + static void + f_cscope_connection(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_CSCOPE + int num = 0; +*************** +*** 9181,9187 **** + * Moves the cursor to the specified line and column. + * Returns 0 when the position could be set, -1 otherwise. + */ +- /*ARGSUSED*/ + static void + f_cursor(argvars, rettv) + typval_T *argvars; +--- 9172,9177 ---- +*************** +*** 9275,9285 **** + /* + * "did_filetype()" function + */ +- /*ARGSUSED*/ + static void + f_did_filetype(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_AUTOCMD + rettv->vval.v_number = did_filetype; +--- 9265,9274 ---- + /* + * "did_filetype()" function + */ + static void + f_did_filetype(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_AUTOCMD + rettv->vval.v_number = did_filetype; +*************** +*** 9289,9299 **** + /* + * "diff_filler()" function + */ +- /*ARGSUSED*/ + static void + f_diff_filler(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_DIFF + rettv->vval.v_number = diff_check_fill(curwin, get_tv_lnum(argvars)); +--- 9278,9287 ---- + /* + * "diff_filler()" function + */ + static void + f_diff_filler(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_DIFF + rettv->vval.v_number = diff_check_fill(curwin, get_tv_lnum(argvars)); +*************** +*** 9303,9313 **** + /* + * "diff_hlID()" function + */ +- /*ARGSUSED*/ + static void + f_diff_hlID(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_DIFF + linenr_T lnum = get_tv_lnum(argvars); +--- 9291,9300 ---- + /* + * "diff_hlID()" function + */ + static void + f_diff_hlID(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_DIFF + linenr_T lnum = get_tv_lnum(argvars); +*************** +*** 9420,9426 **** + /* + * "eval()" function + */ +- /*ARGSUSED*/ + static void + f_eval(argvars, rettv) + typval_T *argvars; +--- 9407,9412 ---- +*************** +*** 9444,9453 **** + /* + * "eventhandler()" function + */ +- /*ARGSUSED*/ + static void + f_eventhandler(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = vgetc_busy; +--- 9430,9438 ---- + /* + * "eventhandler()" function + */ + static void + f_eventhandler(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = vgetc_busy; +*************** +*** 9704,9714 **** + /* + * "feedkeys()" function + */ +- /*ARGSUSED*/ + static void + f_feedkeys(argvars, rettv) + typval_T *argvars; +! typval_T *rettv; + { + int remap = TRUE; + char_u *keys, *flags; +--- 9689,9698 ---- + /* + * "feedkeys()" function + */ + static void + f_feedkeys(argvars, rettv) + typval_T *argvars; +! typval_T *rettv UNUSED; + { + int remap = TRUE; + char_u *keys, *flags; +*************** +*** 10210,10219 **** + /* + * "foldtext()" function + */ +- /*ARGSUSED*/ + static void + f_foldtext(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_FOLDING +--- 10194,10202 ---- + /* + * "foldtext()" function + */ + static void + f_foldtext(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_FOLDING +*************** +*** 10278,10287 **** + /* + * "foldtextresult(lnum)" function + */ +- /*ARGSUSED*/ + static void + f_foldtextresult(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_FOLDING +--- 10261,10269 ---- + /* + * "foldtextresult(lnum)" function + */ + static void + f_foldtextresult(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_FOLDING +*************** +*** 10314,10324 **** + /* + * "foreground()" function + */ +- /*ARGSUSED*/ + static void + f_foreground(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_GUI + if (gui.in_use) +--- 10296,10305 ---- + /* + * "foreground()" function + */ + static void + f_foreground(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_GUI + if (gui.in_use) +*************** +*** 10333,10339 **** + /* + * "function()" function + */ +- /*ARGSUSED*/ + static void + f_function(argvars, rettv) + typval_T *argvars; +--- 10314,10319 ---- +*************** +*** 10357,10367 **** + /* + * "garbagecollect()" function + */ +- /*ARGSUSED*/ + static void + f_garbagecollect(argvars, rettv) + typval_T *argvars; +! typval_T *rettv; + { + /* This is postponed until we are back at the toplevel, because we may be + * using Lists and Dicts internally. E.g.: ":echo [garbagecollect()]". */ +--- 10337,10346 ---- + /* + * "garbagecollect()" function + */ + static void + f_garbagecollect(argvars, rettv) + typval_T *argvars; +! typval_T *rettv UNUSED; + { + /* This is postponed until we are back at the toplevel, because we may be + * using Lists and Dicts internally. E.g.: ":echo [garbagecollect()]". */ +*************** +*** 10664,10673 **** + /* + * "getcharmod()" function + */ +- /*ARGSUSED*/ + static void + f_getcharmod(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = mod_mask; +--- 10643,10651 ---- + /* + * "getcharmod()" function + */ + static void + f_getcharmod(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = mod_mask; +*************** +*** 10676,10685 **** + /* + * "getcmdline()" function + */ +- /*ARGSUSED*/ + static void + f_getcmdline(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +--- 10654,10662 ---- + /* + * "getcmdline()" function + */ + static void + f_getcmdline(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +*************** +*** 10689,10698 **** + /* + * "getcmdpos()" function + */ +- /*ARGSUSED*/ + static void + f_getcmdpos(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = get_cmdline_pos() + 1; +--- 10666,10674 ---- + /* + * "getcmdpos()" function + */ + static void + f_getcmdpos(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = get_cmdline_pos() + 1; +*************** +*** 10701,10710 **** + /* + * "getcmdtype()" function + */ +- /*ARGSUSED*/ + static void + f_getcmdtype(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +--- 10677,10685 ---- + /* + * "getcmdtype()" function + */ + static void + f_getcmdtype(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +*************** +*** 10719,10728 **** + /* + * "getcwd()" function + */ +- /*ARGSUSED*/ + static void + f_getcwd(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + char_u cwd[MAXPATHL]; +--- 10694,10702 ---- + /* + * "getcwd()" function + */ + static void + f_getcwd(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + char_u cwd[MAXPATHL]; +*************** +*** 10743,10752 **** + /* + * "getfontname()" function + */ +- /*ARGSUSED*/ + static void + f_getfontname(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +--- 10717,10725 ---- + /* + * "getfontname()" function + */ + static void + f_getfontname(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +*************** +*** 10973,10982 **** + /* + * "getmatches()" function + */ +- /*ARGSUSED*/ + static void + f_getmatches(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA +--- 10946,10954 ---- + /* + * "getmatches()" function + */ + static void + f_getmatches(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_SEARCH_EXTRA +*************** +*** 11004,11013 **** + /* + * "getpid()" function + */ +- /*ARGSUSED*/ + static void + f_getpid(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = mch_get_pid(); +--- 10976,10984 ---- + /* + * "getpid()" function + */ + static void + f_getpid(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = mch_get_pid(); +*************** +*** 11051,11061 **** + /* + * "getqflist()" and "getloclist()" functions + */ +- /*ARGSUSED*/ + static void + f_getqflist(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_QUICKFIX + win_T *wp; +--- 11022,11031 ---- + /* + * "getqflist()" and "getloclist()" functions + */ + static void + f_getqflist(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_QUICKFIX + win_T *wp; +*************** +*** 11170,11179 **** + /* + * "getwinposx()" function + */ +- /*ARGSUSED*/ + static void + f_getwinposx(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = -1; +--- 11140,11148 ---- + /* + * "getwinposx()" function + */ + static void + f_getwinposx(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = -1; +*************** +*** 11191,11200 **** + /* + * "getwinposy()" function + */ +- /*ARGSUSED*/ + static void + f_getwinposy(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = -1; +--- 11160,11168 ---- + /* + * "getwinposy()" function + */ + static void + f_getwinposy(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = -1; +*************** +*** 11921,11930 **** + /* + * "haslocaldir()" function + */ +- /*ARGSUSED*/ + static void + f_haslocaldir(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = (curwin->w_localdir != NULL); +--- 11889,11897 ---- + /* + * "haslocaldir()" function + */ + static void + f_haslocaldir(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = (curwin->w_localdir != NULL); +*************** +*** 11962,11971 **** + /* + * "histadd()" function + */ +- /*ARGSUSED*/ + static void + f_histadd(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_CMDHIST +--- 11929,11937 ---- + /* + * "histadd()" function + */ + static void + f_histadd(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_CMDHIST +*************** +*** 11996,12006 **** + /* + * "histdel()" function + */ +- /*ARGSUSED*/ + static void + f_histdel(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_CMDHIST + int n; +--- 11962,11971 ---- + /* + * "histdel()" function + */ + static void + f_histdel(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_CMDHIST + int n; +*************** +*** 12028,12037 **** + /* + * "histget()" function + */ +- /*ARGSUSED*/ + static void + f_histget(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_CMDHIST +--- 11993,12001 ---- + /* + * "histget()" function + */ + static void + f_histget(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_CMDHIST +*************** +*** 12061,12070 **** + /* + * "histnr()" function + */ +- /*ARGSUSED*/ + static void + f_histnr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + int i; +--- 12025,12033 ---- + /* + * "histnr()" function + */ + static void + f_histnr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + int i; +*************** +*** 12106,12115 **** + /* + * "hostname()" function + */ +- /*ARGSUSED*/ + static void + f_hostname(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + char_u hostname[256]; +--- 12069,12077 ---- + /* + * "hostname()" function + */ + static void + f_hostname(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + char_u hostname[256]; +*************** +*** 12122,12131 **** + /* + * iconv() function + */ +- /*ARGSUSED*/ + static void + f_iconv(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_MBYTE +--- 12084,12092 ---- + /* + * iconv() function + */ + static void + f_iconv(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_MBYTE +*************** +*** 12420,12429 **** + /* + * "inputrestore()" function + */ +- /*ARGSUSED*/ + static void + f_inputrestore(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + if (ga_userinput.ga_len > 0) +--- 12381,12389 ---- + /* + * "inputrestore()" function + */ + static void + f_inputrestore(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + if (ga_userinput.ga_len > 0) +*************** +*** 12443,12452 **** + /* + * "inputsave()" function + */ +- /*ARGSUSED*/ + static void + f_inputsave(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + /* Add an entry to the stack of typeahead storage. */ +--- 12403,12411 ---- + /* + * "inputsave()" function + */ + static void + f_inputsave(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + /* Add an entry to the stack of typeahead storage. */ +*************** +*** 12733,12742 **** + /* + * "last_buffer_nr()" function. + */ +- /*ARGSUSED*/ + static void + f_last_buffer_nr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + int n = 0; +--- 12692,12700 ---- + /* + * "last_buffer_nr()" function. + */ + static void + f_last_buffer_nr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + int n = 0; +*************** +*** 12863,12872 **** + /* + * "line2byte(lnum)" function + */ +- /*ARGSUSED*/ + static void + f_line2byte(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifndef FEAT_BYTEOFF +--- 12821,12829 ---- + /* + * "line2byte(lnum)" function + */ + static void + f_line2byte(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifndef FEAT_BYTEOFF +*************** +*** 12912,12921 **** + /* + * "localtime()" function + */ +- /*ARGSUSED*/ + static void + f_localtime(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->vval.v_number = (varnumber_T)time(NULL); +--- 12869,12877 ---- + /* + * "localtime()" function + */ + static void + f_localtime(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->vval.v_number = (varnumber_T)time(NULL); +*************** +*** 13497,13503 **** + /* + * "mode()" function + */ +- /*ARGSUSED*/ + static void + f_mode(argvars, rettv) + typval_T *argvars; +--- 13453,13458 ---- +*************** +*** 13726,13736 **** + /* + * "pumvisible()" function + */ +- /*ARGSUSED*/ + static void + f_pumvisible(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_INS_EXPAND + if (pum_visible()) +--- 13681,13690 ---- + /* + * "pumvisible()" function + */ + static void + f_pumvisible(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_INS_EXPAND + if (pum_visible()) +*************** +*** 14131,14140 **** + /* + * "remote_expr()" function + */ +- /*ARGSUSED*/ + static void + f_remote_expr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +--- 14085,14093 ---- + /* + * "remote_expr()" function + */ + static void + f_remote_expr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +*************** +*** 14147,14157 **** + /* + * "remote_foreground()" function + */ +- /*ARGSUSED*/ + static void + f_remote_foreground(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_CLIENTSERVER + # ifdef WIN32 +--- 14100,14109 ---- + /* + * "remote_foreground()" function + */ + static void + f_remote_foreground(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_CLIENTSERVER + # ifdef WIN32 +*************** +*** 14173,14182 **** + #endif + } + +- /*ARGSUSED*/ + static void + f_remote_peek(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_CLIENTSERVER +--- 14125,14133 ---- + #endif + } + + static void + f_remote_peek(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_CLIENTSERVER +*************** +*** 14231,14240 **** + #endif + } + +- /*ARGSUSED*/ + static void + f_remote_read(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + char_u *r = NULL; +--- 14182,14190 ---- + #endif + } + + static void + f_remote_read(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + char_u *r = NULL; +*************** +*** 14266,14275 **** + /* + * "remote_send()" function + */ +- /*ARGSUSED*/ + static void + f_remote_send(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +--- 14216,14224 ---- + /* + * "remote_send()" function + */ + static void + f_remote_send(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + rettv->v_type = VAR_STRING; +*************** +*** 14398,14404 **** + /* + * "repeat()" function + */ +- /*ARGSUSED*/ + static void + f_repeat(argvars, rettv) + typval_T *argvars; +--- 14347,14352 ---- +*************** +*** 15207,15216 **** + } + + +- /*ARGSUSED*/ + static void + f_server2client(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_CLIENTSERVER +--- 15155,15163 ---- + } + + + static void + f_server2client(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_CLIENTSERVER +*************** +*** 15239,15248 **** + #endif + } + +- /*ARGSUSED*/ + static void + f_serverlist(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + char_u *r = NULL; +--- 15186,15194 ---- + #endif + } + + static void + f_serverlist(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + char_u *r = NULL; +*************** +*** 15263,15273 **** + /* + * "setbufvar()" function + */ +- /*ARGSUSED*/ + static void + f_setbufvar(argvars, rettv) + typval_T *argvars; +! typval_T *rettv; + { + buf_T *buf; + aco_save_T aco; +--- 15209,15218 ---- + /* + * "setbufvar()" function + */ + static void + f_setbufvar(argvars, rettv) + typval_T *argvars; +! typval_T *rettv UNUSED; + { + buf_T *buf; + aco_save_T aco; +*************** +*** 15402,15413 **** + /* + * Used by "setqflist()" and "setloclist()" functions + */ +- /*ARGSUSED*/ + static void + set_qf_ll_list(wp, list_arg, action_arg, rettv) +! win_T *wp; +! typval_T *list_arg; +! typval_T *action_arg; + typval_T *rettv; + { + #ifdef FEAT_QUICKFIX +--- 15347,15357 ---- + /* + * Used by "setqflist()" and "setloclist()" functions + */ + static void + set_qf_ll_list(wp, list_arg, action_arg, rettv) +! win_T *wp UNUSED; +! typval_T *list_arg UNUSED; +! typval_T *action_arg UNUSED; + typval_T *rettv; + { + #ifdef FEAT_QUICKFIX +*************** +*** 15442,15448 **** + /* + * "setloclist()" function + */ +- /*ARGSUSED*/ + static void + f_setloclist(argvars, rettv) + typval_T *argvars; +--- 15386,15391 ---- +*************** +*** 15520,15526 **** + /* + * "setpos()" function + */ +- /*ARGSUSED*/ + static void + f_setpos(argvars, rettv) + typval_T *argvars; +--- 15463,15468 ---- +*************** +*** 15564,15570 **** + /* + * "setqflist()" function + */ +- /*ARGSUSED*/ + static void + f_setqflist(argvars, rettv) + typval_T *argvars; +--- 15506,15511 ---- +*************** +*** 15667,15677 **** + /* + * "setwinvar()" and "settabwinvar()" functions + */ +- /*ARGSUSED*/ + static void + setwinvar(argvars, rettv, off) + typval_T *argvars; +! typval_T *rettv; + int off; + { + win_T *win; +--- 15608,15617 ---- + /* + * "setwinvar()" and "settabwinvar()" functions + */ + static void + setwinvar(argvars, rettv, off) + typval_T *argvars; +! typval_T *rettv UNUSED; + int off; + { + win_T *win; +*************** +*** 15987,15996 **** + /* + * "spellbadword()" function + */ +- /* ARGSUSED */ + static void + f_spellbadword(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + char_u *word = (char_u *)""; +--- 15927,15935 ---- + /* + * "spellbadword()" function + */ + static void + f_spellbadword(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + char_u *word = (char_u *)""; +*************** +*** 16042,16051 **** + /* + * "spellsuggest()" function + */ +- /*ARGSUSED*/ + static void + f_spellsuggest(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_SPELL +--- 15981,15989 ---- + /* + * "spellsuggest()" function + */ + static void + f_spellsuggest(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_SPELL +*************** +*** 16528,16537 **** + /* + * "synID(lnum, col, trans)" function + */ +- /*ARGSUSED*/ + static void + f_synID(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + int id = 0; +--- 16466,16474 ---- + /* + * "synID(lnum, col, trans)" function + */ + static void + f_synID(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + int id = 0; +*************** +*** 16556,16565 **** + /* + * "synIDattr(id, what [, mode])" function + */ +- /*ARGSUSED*/ + static void + f_synIDattr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + char_u *p = NULL; +--- 16493,16501 ---- + /* + * "synIDattr(id, what [, mode])" function + */ + static void + f_synIDattr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + char_u *p = NULL; +*************** +*** 16652,16661 **** + /* + * "synIDtrans(id)" function + */ +- /*ARGSUSED*/ + static void + f_synIDtrans(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + int id; +--- 16588,16596 ---- + /* + * "synIDtrans(id)" function + */ + static void + f_synIDtrans(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + int id; +*************** +*** 16675,16684 **** + /* + * "synstack(lnum, col)" function + */ +- /*ARGSUSED*/ + static void + f_synstack(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_SYN_HL +--- 16610,16618 ---- + /* + * "synstack(lnum, col)" function + */ + static void + f_synstack(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_SYN_HL +*************** +*** 16812,16822 **** + /* + * "tabpagebuflist()" function + */ +- /* ARGSUSED */ + static void + f_tabpagebuflist(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_WINDOWS + tabpage_T *tp; +--- 16746,16755 ---- + /* + * "tabpagebuflist()" function + */ + static void + f_tabpagebuflist(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_WINDOWS + tabpage_T *tp; +*************** +*** 16844,16853 **** + /* + * "tabpagenr()" function + */ +- /* ARGSUSED */ + static void + f_tabpagenr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + int nr = 1; +--- 16777,16785 ---- + /* + * "tabpagenr()" function + */ + static void + f_tabpagenr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + int nr = 1; +*************** +*** 16929,16938 **** + /* + * "tabpagewinnr()" function + */ +- /* ARGSUSED */ + static void + f_tabpagewinnr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + int nr = 1; +--- 16861,16869 ---- + /* + * "tabpagewinnr()" function + */ + static void + f_tabpagewinnr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + int nr = 1; +*************** +*** 16952,16961 **** + /* + * "tagfiles()" function + */ +- /*ARGSUSED*/ + static void + f_tagfiles(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + char_u fname[MAXPATHL + 1]; +--- 16883,16891 ---- + /* + * "tagfiles()" function + */ + static void + f_tagfiles(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + char_u fname[MAXPATHL + 1]; +*************** +*** 16995,17004 **** + /* + * "tempname()" function + */ +- /*ARGSUSED*/ + static void + f_tempname(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + static int x = 'A'; +--- 16925,16933 ---- + /* + * "tempname()" function + */ + static void + f_tempname(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + static int x = 'A'; +*************** +*** 17031,17041 **** + /* + * "test(list)" function: Just checking the walls... + */ +- /*ARGSUSED*/ + static void + f_test(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + /* Used for unit testing. Change the code below to your liking. */ + #if 0 +--- 16960,16969 ---- + /* + * "test(list)" function: Just checking the walls... + */ + static void + f_test(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + /* Used for unit testing. Change the code below to your liking. */ + #if 0 +*************** +*** 17320,17330 **** + /* + * "visualmode()" function + */ +- /*ARGSUSED*/ + static void + f_visualmode(argvars, rettv) +! typval_T *argvars; +! typval_T *rettv; + { + #ifdef FEAT_VISUAL + char_u str[2]; +--- 17248,17257 ---- + /* + * "visualmode()" function + */ + static void + f_visualmode(argvars, rettv) +! typval_T *argvars UNUSED; +! typval_T *rettv UNUSED; + { + #ifdef FEAT_VISUAL + char_u str[2]; +*************** +*** 17360,17369 **** + /* + * "wincol()" function + */ +- /*ARGSUSED*/ + static void + f_wincol(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + validate_cursor(); +--- 17287,17295 ---- + /* + * "wincol()" function + */ + static void + f_wincol(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + validate_cursor(); +*************** +*** 17390,17399 **** + /* + * "winline()" function + */ +- /*ARGSUSED*/ + static void + f_winline(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + validate_cursor(); +--- 17316,17324 ---- + /* + * "winline()" function + */ + static void + f_winline(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + validate_cursor(); +*************** +*** 17403,17412 **** + /* + * "winnr()" function + */ +- /* ARGSUSED */ + static void + f_winnr(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + int nr = 1; +--- 17328,17336 ---- + /* + * "winnr()" function + */ + static void + f_winnr(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + int nr = 1; +*************** +*** 17420,17429 **** + /* + * "winrestcmd()" function + */ +- /* ARGSUSED */ + static void + f_winrestcmd(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + #ifdef FEAT_WINDOWS +--- 17344,17352 ---- + /* + * "winrestcmd()" function + */ + static void + f_winrestcmd(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + #ifdef FEAT_WINDOWS +*************** +*** 17455,17465 **** + /* + * "winrestview()" function + */ +- /* ARGSUSED */ + static void + f_winrestview(argvars, rettv) + typval_T *argvars; +! typval_T *rettv; + { + dict_T *dict; + +--- 17378,17387 ---- + /* + * "winrestview()" function + */ + static void + f_winrestview(argvars, rettv) + typval_T *argvars; +! typval_T *rettv UNUSED; + { + dict_T *dict; + +*************** +*** 17501,17510 **** + /* + * "winsaveview()" function + */ +- /* ARGSUSED */ + static void + f_winsaveview(argvars, rettv) +! typval_T *argvars; + typval_T *rettv; + { + dict_T *dict; +--- 17423,17431 ---- + /* + * "winsaveview()" function + */ + static void + f_winsaveview(argvars, rettv) +! typval_T *argvars UNUSED; + typval_T *rettv; + { + dict_T *dict; +*************** +*** 21646,21657 **** + * Called by do_cmdline() to get the next line. + * Returns allocated string, or NULL for end of function. + */ +- /* ARGSUSED */ + char_u * + get_func_line(c, cookie, indent) +! int c; /* not used */ + void *cookie; +! int indent; /* not used */ + { + funccall_T *fcp = (funccall_T *)cookie; + ufunc_T *fp = fcp->func; +--- 21567,21577 ---- + * Called by do_cmdline() to get the next line. + * Returns allocated string, or NULL for end of function. + */ + char_u * + get_func_line(c, cookie, indent) +! int c UNUSED; + void *cookie; +! int indent UNUSED; + { + funccall_T *fcp = (funccall_T *)cookie; + ufunc_T *fp = fcp->func; +*************** +*** 22023,22032 **** + /* + * List v:oldfiles in a nice way. + */ +- /*ARGSUSED*/ + void + ex_oldfiles(eap) +! exarg_T *eap; + { + list_T *l = vimvars[VV_OLDFILES].vv_list; + listitem_T *li; +--- 21943,21951 ---- + /* + * List v:oldfiles in a nice way. + */ + void + ex_oldfiles(eap) +! exarg_T *eap UNUSED; + { + list_T *l = vimvars[VV_OLDFILES].vv_list; + listitem_T *li; +*** ../vim-7.2.176/src/ex_docmd.c 2009-05-16 16:36:25.000000000 +0200 +--- src/ex_docmd.c 2009-05-16 17:01:26.000000000 +0200 +*************** +*** 3004,3010 **** + + if (VIM_ISDIGIT(*cmd)) + p = skipwhite(skipdigits(cmd)); +! for (i = 0; i < sizeof(cmdmods) / sizeof(struct cmdmod); ++i) + { + for (j = 0; p[j] != NUL; ++j) + if (p[j] != cmdmods[i].name[j]) +--- 3004,3010 ---- + + if (VIM_ISDIGIT(*cmd)) + p = skipwhite(skipdigits(cmd)); +! for (i = 0; i < (int)(sizeof(cmdmods) / sizeof(struct cmdmod)); ++i) + { + for (j = 0; p[j] != NUL; ++j) + if (p[j] != cmdmods[i].name[j]) +*************** +*** 3032,3038 **** + char_u *p; + + /* Check command modifiers. */ +! for (i = 0; i < sizeof(cmdmods) / sizeof(struct cmdmod); ++i) + { + for (j = 0; name[j] != NUL; ++j) + if (name[j] != cmdmods[i].name[j]) +--- 3032,3038 ---- + char_u *p; + + /* Check command modifiers. */ +! for (i = 0; i < (int)(sizeof(cmdmods) / sizeof(struct cmdmod)); ++i) + { + for (j = 0; name[j] != NUL; ++j) + if (name[j] != cmdmods[i].name[j]) +*************** +*** 6093,6099 **** + {"bang", "bar", "buffer", "complete", "count", + "nargs", "range", "register"}; + +! if (idx >= sizeof(user_cmd_flags) / sizeof(user_cmd_flags[0])) + return NULL; + return (char_u *)user_cmd_flags[idx]; + } +--- 6093,6099 ---- + {"bang", "bar", "buffer", "complete", "count", + "nargs", "range", "register"}; + +! if (idx >= (int)(sizeof(user_cmd_flags) / sizeof(user_cmd_flags[0]))) + return NULL; + return (char_u *)user_cmd_flags[idx]; + } +*************** +*** 6108,6114 **** + { + static char *user_cmd_nargs[] = {"0", "1", "*", "?", "+"}; + +! if (idx >= sizeof(user_cmd_nargs) / sizeof(user_cmd_nargs[0])) + return NULL; + return (char_u *)user_cmd_nargs[idx]; + } +--- 6108,6114 ---- + { + static char *user_cmd_nargs[] = {"0", "1", "*", "?", "+"}; + +! if (idx >= (int)(sizeof(user_cmd_nargs) / sizeof(user_cmd_nargs[0]))) + return NULL; + return (char_u *)user_cmd_nargs[idx]; + } +*************** +*** 9144,9153 **** + /* + * ":stopinsert" + */ +- /*ARGSUSED*/ + static void + ex_stopinsert(eap) +! exarg_T *eap; + { + restart_edit = 0; + stop_insert_mode = TRUE; +--- 9144,9152 ---- + /* + * ":stopinsert" + */ + static void + ex_stopinsert(eap) +! exarg_T *eap UNUSED; + { + restart_edit = 0; + stop_insert_mode = TRUE; +*** ../vim-7.2.176/src/ex_eval.c 2007-11-24 21:50:19.000000000 +0100 +--- src/ex_eval.c 2009-05-16 17:06:09.000000000 +0200 +*************** +*** 60,66 **** +--- 60,68 ---- + #else + /* Values used for the Vim release. */ + # define THROW_ON_ERROR TRUE ++ # define THROW_ON_ERROR_TRUE + # define THROW_ON_INTERRUPT TRUE ++ # define THROW_ON_INTERRUPT_TRUE + #endif + + static void catch_exception __ARGS((except_T *excp)); +*************** +*** 1320,1335 **** +--- 1322,1341 ---- + * and reset the did_emsg or got_int flag, so this won't happen again at + * the next surrounding try conditional. + */ ++ #ifndef THROW_ON_ERROR_TRUE + if (did_emsg && !THROW_ON_ERROR) + { + inactivate_try = TRUE; + did_emsg = FALSE; + } ++ #endif ++ #ifndef THROW_ON_INTERRUPT_TRUE + if (got_int && !THROW_ON_INTERRUPT) + { + inactivate_try = TRUE; + got_int = FALSE; + } ++ #endif + idx = cleanup_conditionals(cstack, 0, inactivate_try); + if (idx >= 0) + { +*************** +*** 2254,2263 **** + /* + * ":endfunction" when not after a ":function" + */ +- /*ARGSUSED*/ + void + ex_endfunction(eap) +! exarg_T *eap; + { + EMSG(_("E193: :endfunction not inside a function")); + } +--- 2260,2268 ---- + /* + * ":endfunction" when not after a ":function" + */ + void + ex_endfunction(eap) +! exarg_T *eap UNUSED; + { + EMSG(_("E193: :endfunction not inside a function")); + } +*** ../vim-7.2.176/src/ex_getln.c 2009-05-15 21:31:11.000000000 +0200 +--- src/ex_getln.c 2009-05-16 17:06:55.000000000 +0200 +*************** +*** 4533,4539 **** + * right function to do the expansion. + */ + ret = FAIL; +! for (i = 0; i < sizeof(tab) / sizeof(struct expgen); ++i) + if (xp->xp_context == tab[i].context) + { + if (tab[i].ic) +--- 4533,4539 ---- + * right function to do the expansion. + */ + ret = FAIL; +! for (i = 0; i < (int)(sizeof(tab) / sizeof(struct expgen)); ++i) + if (xp->xp_context == tab[i].context) + { + if (tab[i].ic) +*** ../vim-7.2.176/src/fileio.c 2009-05-15 21:31:11.000000000 +0200 +--- src/fileio.c 2009-05-16 17:07:35.000000000 +0200 +*************** +*** 9085,9096 **** + * Called by do_cmdline() to get the next line for ":if". + * Returns allocated string, or NULL for end of autocommands. + */ +- /* ARGSUSED */ + static char_u * + getnextac(c, cookie, indent) +! int c; /* not used */ + void *cookie; +! int indent; /* not used */ + { + AutoPatCmd *acp = (AutoPatCmd *)cookie; + char_u *retval; +--- 9093,9103 ---- + * Called by do_cmdline() to get the next line for ":if". + * Returns allocated string, or NULL for end of autocommands. + */ + static char_u * + getnextac(c, cookie, indent) +! int c UNUSED; + void *cookie; +! int indent UNUSED; + { + AutoPatCmd *acp = (AutoPatCmd *)cookie; + char_u *retval; +*************** +*** 9201,9210 **** + * Function given to ExpandGeneric() to obtain the list of autocommand group + * names. + */ +- /*ARGSUSED*/ + char_u * + get_augroup_name(xp, idx) +! expand_T *xp; + int idx; + { + if (idx == augroups.ga_len) /* add "END" add the end */ +--- 9208,9216 ---- + * Function given to ExpandGeneric() to obtain the list of autocommand group + * names. + */ + char_u * + get_augroup_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + if (idx == augroups.ga_len) /* add "END" add the end */ +*************** +*** 9270,9279 **** + /* + * Function given to ExpandGeneric() to obtain the list of event names. + */ +- /*ARGSUSED*/ + char_u * + get_event_name(xp, idx) +! expand_T *xp; + int idx; + { + if (idx < augroups.ga_len) /* First list group names, if wanted */ +--- 9276,9284 ---- + /* + * Function given to ExpandGeneric() to obtain the list of event names. + */ + char_u * + get_event_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + if (idx < augroups.ga_len) /* First list group names, if wanted */ +*** ../vim-7.2.176/src/hardcopy.c 2008-01-12 16:46:41.000000000 +0100 +--- src/hardcopy.c 2009-05-16 17:18:27.000000000 +0200 +*************** +*** 442,453 **** + /* + * Print the page header. + */ +- /*ARGSUSED*/ + static void + prt_header(psettings, pagenum, lnum) + prt_settings_T *psettings; + int pagenum; +! linenr_T lnum; + { + int width = psettings->chars_per_line; + int page_line; +--- 442,452 ---- + /* + * Print the page header. + */ + static void + prt_header(psettings, pagenum, lnum) + prt_settings_T *psettings; + int pagenum; +! linenr_T lnum UNUSED; + { + int width = psettings->chars_per_line; + int page_line; +*************** +*** 1881,1887 **** + return FALSE; + + /* Find type of DSC comment */ +! for (comment = 0; comment < NUM_ELEMENTS(prt_dsc_table); comment++) + if (prt_resfile_strncmp(0, prt_dsc_table[comment].string, + prt_dsc_table[comment].len) == 0) + break; +--- 1880,1886 ---- + return FALSE; + + /* Find type of DSC comment */ +! for (comment = 0; comment < (int)NUM_ELEMENTS(prt_dsc_table); comment++) + if (prt_resfile_strncmp(0, prt_dsc_table[comment].string, + prt_dsc_table[comment].len) == 0) + break; +*************** +*** 2454,2465 **** + } + #endif + +- /*ARGSUSED*/ + int + mch_print_init(psettings, jobname, forceit) + prt_settings_T *psettings; + char_u *jobname; +! int forceit; + { + int i; + char *paper_name; +--- 2453,2463 ---- + } + #endif + + int + mch_print_init(psettings, jobname, forceit) + prt_settings_T *psettings; + char_u *jobname; +! int forceit UNUSED; + { + int i; + char *paper_name; +*************** +*** 2514,2520 **** + if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE))) + { + p_mbenc_first = NULL; +! for (cmap = 0; cmap < NUM_ELEMENTS(prt_ps_mbfonts); cmap++) + if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap], + &p_mbenc)) + { +--- 2512,2518 ---- + if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE))) + { + p_mbenc_first = NULL; +! for (cmap = 0; cmap < (int)NUM_ELEMENTS(prt_ps_mbfonts); cmap++) + if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap], + &p_mbenc)) + { +*************** +*** 2642,2648 **** + paper_name = "A4"; + paper_strlen = 2; + } +! for (i = 0; i < PRT_MEDIASIZE_LEN; ++i) + if (STRLEN(prt_mediasize[i].name) == (unsigned)paper_strlen + && STRNICMP(prt_mediasize[i].name, paper_name, + paper_strlen) == 0) +--- 2640,2646 ---- + paper_name = "A4"; + paper_strlen = 2; + } +! for (i = 0; i < (int)PRT_MEDIASIZE_LEN; ++i) + if (STRLEN(prt_mediasize[i].name) == (unsigned)paper_strlen + && STRNICMP(prt_mediasize[i].name, paper_name, + paper_strlen) == 0) +*************** +*** 3308,3317 **** + return !prt_file_error; + } + +- /*ARGSUSED*/ + int + mch_print_begin_page(str) +! char_u *str; + { + int page_num[2]; + +--- 3306,3314 ---- + return !prt_file_error; + } + + int + mch_print_begin_page(str) +! char_u *str UNUSED; + { + int page_num[2]; + +*************** +*** 3379,3389 **** + #endif + } + +- /*ARGSUSED*/ + int + mch_print_text_out(p, len) + char_u *p; +! int len; + { + int need_break; + char_u ch; +--- 3376,3385 ---- + #endif + } + + int + mch_print_text_out(p, len) + char_u *p; +! int len UNUSED; + { + int need_break; + char_u ch; +*** ../vim-7.2.176/src/if_cscope.c 2009-05-16 16:15:39.000000000 +0200 +--- src/if_cscope.c 2009-05-16 17:19:30.000000000 +0200 +*************** +*** 83,89 **** + N_("Reinit all connections"), "reset", 0 }, + { "show", cs_show, + N_("Show connections"), "show", 0 }, +! { NULL } + }; + + static void +--- 83,89 ---- + N_("Reinit all connections"), "reset", 0 }, + { "show", cs_show, + N_("Show connections"), "show", 0 }, +! { NULL, NULL, NULL, NULL, 0 } + }; + + static void +*************** +*** 107,116 **** + * Function given to ExpandGeneric() to obtain the cscope command + * expansion. + */ +- /*ARGSUSED*/ + char_u * + get_cscope_name(xp, idx) +! expand_T *xp; + int idx; + { + int current_idx; +--- 107,115 ---- + * Function given to ExpandGeneric() to obtain the cscope command + * expansion. + */ + char_u * + get_cscope_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + int current_idx; +*************** +*** 496,505 **** + * + * MAXPATHL 256 + */ +- /* ARGSUSED */ + static int + cs_add(eap) +! exarg_T *eap; + { + char *fname, *ppath, *flags = NULL; + +--- 495,503 ---- + * + * MAXPATHL 256 + */ + static int + cs_add(eap) +! exarg_T *eap UNUSED; + { + char *fname, *ppath, *flags = NULL; + +*************** +*** 1292,1301 **** + * + * print help + */ +- /* ARGSUSED */ + static int + cs_help(eap) +! exarg_T *eap; + { + cscmd_T *cmdp = cs_cmds; + +--- 1290,1298 ---- + * + * print help + */ + static int + cs_help(eap) +! exarg_T *eap UNUSED; + { + cscmd_T *cmdp = cs_cmds; + +*************** +*** 1399,1411 **** + * + * insert a new cscope database filename into the filelist + */ +- /*ARGSUSED*/ + static int + cs_insert_filelist(fname, ppath, flags, sb) + char *fname; + char *ppath; + char *flags; +! struct stat *sb; + { + short i, j; + #ifndef UNIX +--- 1396,1407 ---- + * + * insert a new cscope database filename into the filelist + */ + static int + cs_insert_filelist(fname, ppath, flags, sb) + char *fname; + char *ppath; + char *flags; +! struct stat *sb UNUSED; + { + short i, j; + #ifndef UNIX +*************** +*** 1561,1570 **** + * + * nuke em + */ +- /* ARGSUSED */ + static int + cs_kill(eap) +! exarg_T *eap; + { + char *stok; + short i; +--- 1557,1565 ---- + * + * nuke em + */ + static int + cs_kill(eap) +! exarg_T *eap UNUSED; + { + char *stok; + short i; +*************** +*** 2241,2247 **** + /* + * Used to catch and ignore SIGALRM below. + */ +- /* ARGSUSED */ + static RETSIGTYPE + sig_handler SIGDEFARG(sigarg) + { +--- 2236,2241 ---- +*************** +*** 2381,2390 **** + * + * calls cs_kill on all cscope connections then reinits + */ +- /* ARGSUSED */ + static int + cs_reset(eap) +! exarg_T *eap; + { + char **dblist = NULL, **pplist = NULL, **fllist = NULL; + int i; +--- 2375,2383 ---- + * + * calls cs_kill on all cscope connections then reinits + */ + static int + cs_reset(eap) +! exarg_T *eap UNUSED; + { + char **dblist = NULL, **pplist = NULL, **fllist = NULL; + int i; +*************** +*** 2497,2506 **** + * + * show all cscope connections + */ +- /* ARGSUSED */ + static int + cs_show(eap) +! exarg_T *eap; + { + short i; + if (cs_cnt_connections() == 0) +--- 2490,2498 ---- + * + * show all cscope connections + */ + static int + cs_show(eap) +! exarg_T *eap UNUSED; + { + short i; + if (cs_cnt_connections() == 0) +*** ../vim-7.2.176/src/if_xcmdsrv.c 2008-11-12 14:52:11.000000000 +0100 +--- src/if_xcmdsrv.c 2009-05-16 17:12:32.000000000 +0200 +*************** +*** 682,688 **** + * Scan all of the names out of the property. + */ + ga_init2(&ga, 1, 100); +! for (p = regProp; (p - regProp) < numItems; p++) + { + entry = p; + while (*p != 0 && !isspace(*p)) +--- 682,688 ---- + * Scan all of the names out of the property. + */ + ga_init2(&ga, 1, 100); +! for (p = regProp; (long_u)(p - regProp) < numItems; p++) + { + entry = p; + while (*p != 0 && !isspace(*p)) +*************** +*** 969,975 **** + */ + returnValue = (int_u)None; + entry = NULL; /* Not needed, but eliminates compiler warning. */ +! for (p = regProp; (p - regProp) < numItems; ) + { + entry = p; + while (*p != 0 && !isspace(*p)) +--- 969,975 ---- + */ + returnValue = (int_u)None; + entry = NULL; /* Not needed, but eliminates compiler warning. */ +! for (p = regProp; (long_u)(p - regProp) < numItems; ) + { + entry = p; + while (*p != 0 && !isspace(*p)) +*************** +*** 986,992 **** + + if (loose != NULL && returnValue == (int_u)None && !IsSerialName(name)) + { +! for (p = regProp; (p - regProp) < numItems; ) + { + entry = p; + while (*p != 0 && !isspace(*p)) +--- 986,992 ---- + + if (loose != NULL && returnValue == (int_u)None && !IsSerialName(name)) + { +! for (p = regProp; (long_u)(p - regProp) < numItems; ) + { + entry = p; + while (*p != 0 && !isspace(*p)) +*************** +*** 1056,1062 **** + return; + + /* Scan the property for the window id. */ +! for (p = regProp; (p - regProp) < numItems; ) + { + if (*p != 0) + { +--- 1056,1062 ---- + return; + + /* Scan the property for the window id. */ +! for (p = regProp; (long_u)(p - regProp) < numItems; ) + { + if (*p != 0) + { +*************** +*** 1196,1202 **** + * one time; each iteration through the outer loop handles a + * single command or result. + */ +! for (p = propInfo; (p - propInfo) < numItems; ) + { + /* + * Ignore leading NULs; each command or result starts with a +--- 1196,1202 ---- + * one time; each iteration through the outer loop handles a + * single command or result. + */ +! for (p = propInfo; (long_u)(p - propInfo) < numItems; ) + { + /* + * Ignore leading NULs; each command or result starts with a +*************** +*** 1230,1236 **** + serial = (char_u *)""; + script = NULL; + enc = NULL; +! while (p - propInfo < numItems && *p == '-') + { + switch (p[1]) + { +--- 1230,1236 ---- + serial = (char_u *)""; + script = NULL; + enc = NULL; +! while ((long_u)(p - propInfo) < numItems && *p == '-') + { + switch (p[1]) + { +*************** +*** 1333,1339 **** + res = (char_u *)""; + code = 0; + enc = NULL; +! while ((p-propInfo) < numItems && *p == '-') + { + switch (p[1]) + { +--- 1333,1339 ---- + res = (char_u *)""; + code = 0; + enc = NULL; +! while ((long_u)(p - propInfo) < numItems && *p == '-') + { + switch (p[1]) + { +*************** +*** 1401,1407 **** + gotWindow = 0; + str = (char_u *)""; + enc = NULL; +! while ((p-propInfo) < numItems && *p == '-') + { + switch (p[1]) + { +--- 1401,1407 ---- + gotWindow = 0; + str = (char_u *)""; + enc = NULL; +! while ((long_u)(p - propInfo) < numItems && *p == '-') + { + switch (p[1]) + { +*************** +*** 1489,1499 **** + /* + * Another X Error handler, just used to check for errors. + */ +- /* ARGSUSED */ + static int + x_error_check(dpy, error_event) +! Display *dpy; +! XErrorEvent *error_event; + { + got_x_error = TRUE; + return 0; +--- 1489,1498 ---- + /* + * Another X Error handler, just used to check for errors. + */ + static int + x_error_check(dpy, error_event) +! Display *dpy UNUSED; +! XErrorEvent *error_event UNUSED; + { + got_x_error = TRUE; + return 0; +*** ../vim-7.2.176/src/farsi.c 2008-06-25 00:25:17.000000000 +0200 +--- src/farsi.c 2009-05-16 17:14:41.000000000 +0200 +*************** +*** 103,109 **** + case F_HE: + tempc = _HE; + +! if (p_ri && (curwin->w_cursor.col+1 < STRLEN(ml_get_curline()))) + { + inc_cursor(); + +--- 103,110 ---- + case F_HE: + tempc = _HE; + +! if (p_ri && (curwin->w_cursor.col + 1 +! < (colnr_T)STRLEN(ml_get_curline()))) + { + inc_cursor(); + +*************** +*** 344,350 **** + if (curwin->w_p_rl && p_ri) + return; + +! if ( (curwin->w_cursor.col < STRLEN(ml_get_curline()))) + { + if ((p_ri && curwin->w_cursor.col) || !p_ri) + { +--- 345,351 ---- + if (curwin->w_p_rl && p_ri) + return; + +! if ((curwin->w_cursor.col < (colnr_T)STRLEN(ml_get_curline()))) + { + if ((p_ri && curwin->w_cursor.col) || !p_ri) + { +*************** +*** 565,571 **** + + tempc = gchar_cursor(); + +! if (curwin->w_cursor.col+1 < STRLEN(ml_get_curline())) + { + inc_cursor(); + +--- 566,572 ---- + + tempc = gchar_cursor(); + +! if (curwin->w_cursor.col + 1 < (colnr_T)STRLEN(ml_get_curline())) + { + inc_cursor(); + +*************** +*** 594,601 **** + { + int tempc; + +! if (!curwin->w_cursor.col && +! (curwin->w_cursor.col+1 == STRLEN(ml_get_curline()))) + return; + + if (!curwin->w_cursor.col && p_ri) +--- 595,602 ---- + { + int tempc; + +! if (curwin->w_cursor.col != 0 && +! (curwin->w_cursor.col + 1 == (colnr_T)STRLEN(ml_get_curline()))) + return; + + if (!curwin->w_cursor.col && p_ri) +*************** +*** 663,670 **** + { + int tempc; + +! if (!curwin->w_cursor.col && +! (curwin->w_cursor.col+1 == STRLEN(ml_get_curline()))) + return; + + if (!curwin->w_cursor.col && p_ri) +--- 664,671 ---- + { + int tempc; + +! if (curwin->w_cursor.col != 0 && +! (curwin->w_cursor.col + 1 == (colnr_T)STRLEN(ml_get_curline()))) + return; + + if (!curwin->w_cursor.col && p_ri) +*** ../vim-7.2.176/src/mark.c 2009-04-29 11:00:09.000000000 +0200 +--- src/mark.c 2009-05-16 17:14:56.000000000 +0200 +*************** +*** 884,893 **** + /* + * print the jumplist + */ +- /*ARGSUSED*/ + void + ex_jumps(eap) +! exarg_T *eap; + { + int i; + char_u *name; +--- 884,892 ---- + /* + * print the jumplist + */ + void + ex_jumps(eap) +! exarg_T *eap UNUSED; + { + int i; + char_u *name; +*************** +*** 933,942 **** + /* + * print the changelist + */ +- /*ARGSUSED*/ + void + ex_changes(eap) +! exarg_T *eap; + { + int i; + char_u *name; +--- 932,940 ---- + /* + * print the changelist + */ + void + ex_changes(eap) +! exarg_T *eap UNUSED; + { + int i; + char_u *name; +*** ../vim-7.2.176/src/menu.c 2008-08-17 23:43:53.000000000 +0200 +--- src/menu.c 2009-05-16 17:19:57.000000000 +0200 +*************** +*** 231,237 **** + if (skipdigits(menu_path + 7) == p) + { + menuarg.iconidx = atoi((char *)menu_path + 7); +! if (menuarg.iconidx >= TOOLBAR_NAME_COUNT) + menuarg.iconidx = -1; + else + menuarg.icon_builtin = TRUE; +--- 231,237 ---- + if (skipdigits(menu_path + 7) == p) + { + menuarg.iconidx = atoi((char *)menu_path + 7); +! if (menuarg.iconidx >= (int)TOOLBAR_NAME_COUNT) + menuarg.iconidx = -1; + else + menuarg.icon_builtin = TRUE; +*************** +*** 239,245 **** + } + else + { +! for (i = 0; i < TOOLBAR_NAME_COUNT; ++i) + if (STRNCMP(toolbar_names[i], menu_path, p - menu_path) + == 0) + { +--- 239,245 ---- + } + else + { +! for (i = 0; i < (int)TOOLBAR_NAME_COUNT; ++i) + if (STRNCMP(toolbar_names[i], menu_path, p - menu_path) + == 0) + { +*************** +*** 1341,1350 **** + * Function given to ExpandGeneric() to obtain the list of (sub)menus (not + * entries). + */ +- /*ARGSUSED*/ + char_u * + get_menu_name(xp, idx) +! expand_T *xp; + int idx; + { + static vimmenu_T *menu = NULL; +--- 1341,1349 ---- + * Function given to ExpandGeneric() to obtain the list of (sub)menus (not + * entries). + */ + char_u * + get_menu_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + static vimmenu_T *menu = NULL; +*************** +*** 1378,1387 **** + * Function given to ExpandGeneric() to obtain the list of menus and menu + * entries. + */ +- /*ARGSUSED*/ + char_u * + get_menu_names(xp, idx) +! expand_T *xp; + int idx; + { + static vimmenu_T *menu = NULL; +--- 1377,1385 ---- + * Function given to ExpandGeneric() to obtain the list of menus and menu + * entries. + */ + char_u * + get_menu_names(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + static vimmenu_T *menu = NULL; +*************** +*** 1739,1748 **** + /* + * Return TRUE if the menu is the tearoff menu. + */ +- /*ARGSUSED*/ + static int + menu_is_tearoff(name) +! char_u *name; + { + #ifdef FEAT_GUI + return (STRCMP(name, TEAR_STRING) == 0); +--- 1737,1745 ---- + /* + * Return TRUE if the menu is the tearoff menu. + */ + static int + menu_is_tearoff(name) +! char_u *name UNUSED; + { + #ifdef FEAT_GUI + return (STRCMP(name, TEAR_STRING) == 0); +*** ../vim-7.2.176/src/version.c 2009-05-16 16:36:25.000000000 +0200 +--- src/version.c 2009-05-16 17:22:08.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 177, + /**/ + +-- +(letter from Mark to Mike, about the film's probable certificate) + For an 'A' we would have to: Lose as many shits as possible; Take Jesus + Christ out, if possible; Loose "I fart in your general direction"; Lose + "the oral sex"; Lose "oh, fuck off"; Lose "We make castanets out of your + testicles" + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.178 b/source/ap/vim/patches/7.2.178 new file mode 100644 index 000000000..84fe670f0 --- /dev/null +++ b/source/ap/vim/patches/7.2.178 @@ -0,0 +1,150 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.178 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.178 +Problem: Using negative value for device number might not work. +Solution: Use a separate flag for whether ffv_dev was set. +Files: src/misc2.c + + +*** ../vim-7.2.177/src/misc2.c 2009-04-29 11:00:09.000000000 +0200 +--- src/misc2.c 2009-05-16 21:05:10.000000000 +0200 +*************** +*** 2841,2847 **** + get_key_name(i) + int i; + { +! if (i >= KEY_NAMES_TABLE_LEN) + return NULL; + return key_names_table[i].name; + } +--- 2841,2847 ---- + get_key_name(i) + int i; + { +! if (i >= (int)KEY_NAMES_TABLE_LEN) + return NULL; + return key_names_table[i].name; + } +*************** +*** 3869,3875 **** + * use filename. + */ + #ifdef UNIX +! int ffv_dev; /* device number (-1 if not set) */ + ino_t ffv_ino; /* inode number */ + #endif + /* The memory for this struct is allocated according to the length of +--- 3869,3876 ---- + * use filename. + */ + #ifdef UNIX +! int ffv_dev_valid; /* ffv_dev and ffv_ino were set */ +! dev_t ffv_dev; /* device number */ + ino_t ffv_ino; /* inode number */ + #endif + /* The memory for this struct is allocated according to the length of +*************** +*** 4059,4071 **** + * This function silently ignores a few errors, vim_findfile() will have + * limited functionality then. + */ +- /*ARGSUSED*/ + void * + vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what, + search_ctx_arg, tagfile, rel_fname) + char_u *path; + char_u *filename; +! char_u *stopdirs; + int level; + int free_visited; + int find_what; +--- 4060,4071 ---- + * This function silently ignores a few errors, vim_findfile() will have + * limited functionality then. + */ + void * + vim_findfile_init(path, filename, stopdirs, level, free_visited, find_what, + search_ctx_arg, tagfile, rel_fname) + char_u *path; + char_u *filename; +! char_u *stopdirs UNUSED; + int level; + int free_visited; + int find_what; +*************** +*** 5063,5072 **** + { + if ( + #ifdef UNIX +! !url +! ? (vp->ffv_dev == st.st_dev +! && vp->ffv_ino == st.st_ino) +! : + #endif + fnamecmp(vp->ffv_fname, ff_expand_buffer) == 0 + ) +--- 5063,5071 ---- + { + if ( + #ifdef UNIX +! !url ? (vp->ffv_dev_valid && vp->ffv_dev == st.st_dev +! && vp->ffv_ino == st.st_ino) +! : + #endif + fnamecmp(vp->ffv_fname, ff_expand_buffer) == 0 + ) +*************** +*** 5091,5104 **** + #ifdef UNIX + if (!url) + { + vp->ffv_ino = st.st_ino; + vp->ffv_dev = st.st_dev; + vp->ffv_fname[0] = NUL; + } + else + { +! vp->ffv_ino = 0; +! vp->ffv_dev = -1; + #endif + STRCPY(vp->ffv_fname, ff_expand_buffer); + #ifdef UNIX +--- 5090,5103 ---- + #ifdef UNIX + if (!url) + { ++ vp->ffv_dev_valid = TRUE; + vp->ffv_ino = st.st_ino; + vp->ffv_dev = st.st_dev; + vp->ffv_fname[0] = NUL; + } + else + { +! vp->ffv_dev_valid = FALSE; + #endif + STRCPY(vp->ffv_fname, ff_expand_buffer); + #ifdef UNIX +*** ../vim-7.2.177/src/version.c 2009-05-16 17:29:37.000000000 +0200 +--- src/version.c 2009-05-16 21:00:15.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 178, + /**/ + +-- +FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.179 b/source/ap/vim/patches/7.2.179 new file mode 100644 index 000000000..97f94ed16 --- /dev/null +++ b/source/ap/vim/patches/7.2.179 @@ -0,0 +1,100 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.179 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.179 +Problem: Using negative value for device number might not work. +Solution: Use a separate flag for whether sn_dev was set. +Files: src/ex_cmds2.c + + +*** ../vim-7.2.178/src/ex_cmds2.c 2009-05-14 22:19:19.000000000 +0200 +--- src/ex_cmds2.c 2009-05-16 21:13:29.000000000 +0200 +*************** +*** 28,34 **** + { + char_u *sn_name; + # ifdef UNIX +! int sn_dev; + ino_t sn_ino; + # endif + # ifdef FEAT_PROFILE +--- 28,35 ---- + { + char_u *sn_name; + # ifdef UNIX +! int sn_dev_valid; +! dev_t sn_dev; + ino_t sn_ino; + # endif + # ifdef FEAT_PROFILE +*************** +*** 3049,3055 **** + /* Compare dev/ino when possible, it catches symbolic + * links. Also compare file names, the inode may change + * when the file was edited. */ +! ((stat_ok && si->sn_dev != -1) + && (si->sn_dev == st.st_dev + && si->sn_ino == st.st_ino)) || + # endif +--- 3050,3056 ---- + /* Compare dev/ino when possible, it catches symbolic + * links. Also compare file names, the inode may change + * when the file was edited. */ +! ((stat_ok && si->sn_dev_valid) + && (si->sn_dev == st.st_dev + && si->sn_ino == st.st_ino)) || + # endif +*************** +*** 3076,3086 **** + # ifdef UNIX + if (stat_ok) + { + si->sn_dev = st.st_dev; + si->sn_ino = st.st_ino; + } + else +! si->sn_dev = -1; + # endif + + /* Allocate the local script variables to use for this script. */ +--- 3077,3088 ---- + # ifdef UNIX + if (stat_ok) + { ++ si->sn_dev_valid = TRUE; + si->sn_dev = st.st_dev; + si->sn_ino = st.st_ino; + } + else +! si->sn_dev_valid = FALSE; + # endif + + /* Allocate the local script variables to use for this script. */ +*** ../vim-7.2.178/src/version.c 2009-05-16 21:06:36.000000000 +0200 +--- src/version.c 2009-05-16 21:15:08.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 179, + /**/ + +-- +(letter from Mark to Mike, about the film's probable certificate) + I would like to get back to the Censor and agree to lose the shits, take + the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in + your general direction', 'castanets of your testicles' and 'oral sex' + and ask him for an 'A' rating on that basis. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.180 b/source/ap/vim/patches/7.2.180 new file mode 100644 index 000000000..f3f3a9ed8 --- /dev/null +++ b/source/ap/vim/patches/7.2.180 @@ -0,0 +1,6520 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.180 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.180 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Add UNUSED and type casts. +Files: src/buffer.c, src/ex_cmds.c, src/macros.h, src/main.c, + src/menu.c, src/message.c, src/misc1.c, src/mbyte.c, + src/normal.c, src/option.c, src/os_unix.c, src/quickfix.c, + src/screen.c, src/search.c, src/spell.c, src/syntax.c, src/tag.c, + src/term.c, src/ui.c + + +*** ../vim-7.2.179/src/buffer.c 2009-05-14 22:19:19.000000000 +0200 +--- src/buffer.c 2009-05-16 22:21:41.000000000 +0200 +*************** +*** 2025,2037 **** + * Return fnum of the found buffer. + * Return < 0 for error. + */ +- /*ARGSUSED*/ + int + buflist_findpat(pattern, pattern_end, unlisted, diffmode) + char_u *pattern; + char_u *pattern_end; /* pointer to first char after pattern */ + int unlisted; /* find unlisted buffers */ +! int diffmode; /* find diff-mode buffers only */ + { + buf_T *buf; + regprog_T *prog; +--- 2025,2036 ---- + * Return fnum of the found buffer. + * Return < 0 for error. + */ + int + buflist_findpat(pattern, pattern_end, unlisted, diffmode) + char_u *pattern; + char_u *pattern_end; /* pointer to first char after pattern */ + int unlisted; /* find unlisted buffers */ +! int diffmode UNUSED; /* find diff-mode buffers only */ + { + buf_T *buf; + regprog_T *prog; +*************** +*** 2539,2545 **** + /* + * List all know file names (for :files and :buffers command). + */ +- /*ARGSUSED*/ + void + buflist_list(eap) + exarg_T *eap; +--- 2538,2543 ---- +*************** +*** 3346,3359 **** + * If maxwidth is not zero, the string will be filled at any middle marker + * or truncated if too long, fillchar is used for all whitespace. + */ +- /*ARGSUSED*/ + int + build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, tabtab) + win_T *wp; + char_u *out; /* buffer to write into != NameBuff */ + size_t outlen; /* length of out[] */ + char_u *fmt; +! int use_sandbox; /* "fmt" was set insecurely, use sandbox */ + int fillchar; + int maxwidth; + struct stl_hlrec *hltab; /* return: HL attributes (can be NULL) */ +--- 3344,3356 ---- + * If maxwidth is not zero, the string will be filled at any middle marker + * or truncated if too long, fillchar is used for all whitespace. + */ + int + build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, tabtab) + win_T *wp; + char_u *out; /* buffer to write into != NameBuff */ + size_t outlen; /* length of out[] */ + char_u *fmt; +! int use_sandbox UNUSED; /* "fmt" was set insecurely, use sandbox */ + int fillchar; + int maxwidth; + struct stl_hlrec *hltab; /* return: HL attributes (can be NULL) */ +*** ../vim-7.2.179/src/ex_cmds.c 2009-05-16 16:36:25.000000000 +0200 +--- src/ex_cmds.c 2009-05-16 22:22:46.000000000 +0200 +*************** +*** 2255,2266 **** + * + * Return the string in allocated memory (NULL when out of memory). + */ +- /*ARGSUSED*/ + char_u * + viminfo_readstring(virp, off, convert) + vir_T *virp; + int off; /* offset for virp->vir_line */ +! int convert; /* convert the string */ + { + char_u *retval; + char_u *s, *d; +--- 2255,2265 ---- + * + * Return the string in allocated memory (NULL when out of memory). + */ + char_u * + viminfo_readstring(virp, off, convert) + vir_T *virp; + int off; /* offset for virp->vir_line */ +! int convert UNUSED; /* convert the string */ + { + char_u *retval; + char_u *s, *d; +*************** +*** 2736,2742 **** + * May set eap->forceit if a dialog says it's OK to overwrite. + * Return OK if it's OK, FAIL if it is not. + */ +- /*ARGSUSED*/ + static int + check_overwrite(eap, buf, fname, ffname, other) + exarg_T *eap; +--- 2735,2740 ---- +*** ../vim-7.2.179/src/macros.h 2009-02-21 20:27:00.000000000 +0100 +--- src/macros.h 2009-05-16 21:52:56.000000000 +0200 +*************** +*** 284,290 **** + # define mb_cptr2len(p) (enc_utf8 ? utf_ptr2len(p) : (*mb_ptr2len)(p)) + + # define MB_COPY_CHAR(f, t) if (has_mbyte) mb_copy_char(&f, &t); else *t++ = *f++ +! # define MB_CHARLEN(p) (has_mbyte ? mb_charlen(p) : STRLEN(p)) + # define PTR2CHAR(p) (has_mbyte ? mb_ptr2char(p) : (int)*(p)) + #else + # define mb_ptr_adv(p) ++p +--- 284,290 ---- + # define mb_cptr2len(p) (enc_utf8 ? utf_ptr2len(p) : (*mb_ptr2len)(p)) + + # define MB_COPY_CHAR(f, t) if (has_mbyte) mb_copy_char(&f, &t); else *t++ = *f++ +! # define MB_CHARLEN(p) (has_mbyte ? mb_charlen(p) : (int)STRLEN(p)) + # define PTR2CHAR(p) (has_mbyte ? mb_ptr2char(p) : (int)*(p)) + #else + # define mb_ptr_adv(p) ++p +*** ../vim-7.2.179/src/main.c 2008-11-28 21:26:50.000000000 +0100 +--- src/main.c 2009-05-16 22:25:59.000000000 +0200 +*************** +*** 1505,1514 **** + * + * Also find the --server... arguments and --socketid and --windowid + */ +- /*ARGSUSED*/ + static void + early_arg_scan(parmp) +! mparm_T *parmp; + { + #if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) \ + || !defined(FEAT_NETBEANS_INTG) +--- 1505,1513 ---- + * + * Also find the --server... arguments and --socketid and --windowid + */ + static void + early_arg_scan(parmp) +! mparm_T *parmp UNUSED; + { + #if defined(FEAT_XCLIPBOARD) || defined(FEAT_CLIENTSERVER) \ + || !defined(FEAT_NETBEANS_INTG) +*************** +*** 2380,2389 **** + * Create the requested number of windows and edit buffers in them. + * Also does recovery if "recoverymode" set. + */ +- /*ARGSUSED*/ + static void + create_windows(parmp) +! mparm_T *parmp; + { + #ifdef FEAT_WINDOWS + int dorewind; +--- 2379,2387 ---- + * Create the requested number of windows and edit buffers in them. + * Also does recovery if "recoverymode" set. + */ + static void + create_windows(parmp) +! mparm_T *parmp UNUSED; + { + #ifdef FEAT_WINDOWS + int dorewind; +*************** +*** 3851,3860 **** + * return an allocated string. Otherwise return "data". + * "*tofree" is set to the result when it needs to be freed later. + */ +- /*ARGSUSED*/ + char_u * + serverConvert(client_enc, data, tofree) +! char_u *client_enc; + char_u *data; + char_u **tofree; + { +--- 3849,3857 ---- + * return an allocated string. Otherwise return "data". + * "*tofree" is set to the result when it needs to be freed later. + */ + char_u * + serverConvert(client_enc, data, tofree) +! char_u *client_enc UNUSED; + char_u *data; + char_u **tofree; + { +*** ../vim-7.2.179/src/menu.c 2009-05-16 17:29:37.000000000 +0200 +--- src/menu.c 2009-05-16 22:29:31.000000000 +0200 +*************** +*** 2340,2349 **** + * This function is also defined without the +multi_lang feature, in which + * case the commands are ignored. + */ +- /*ARGSUSED*/ + void + ex_menutranslate(eap) +! exarg_T *eap; + { + #ifdef FEAT_MULTI_LANG + char_u *arg = eap->arg; +--- 2340,2348 ---- + * This function is also defined without the +multi_lang feature, in which + * case the commands are ignored. + */ + void + ex_menutranslate(eap) +! exarg_T *eap UNUSED; + { + #ifdef FEAT_MULTI_LANG + char_u *arg = eap->arg; +*** ../vim-7.2.179/src/message.c 2009-04-22 14:42:26.000000000 +0200 +--- src/message.c 2009-05-16 22:30:47.000000000 +0200 +*************** +*** 818,827 **** + /* + * ":messages" command. + */ +- /*ARGSUSED*/ + void + ex_messages(eap) +! exarg_T *eap; + { + struct msg_hist *p; + char_u *s; +--- 818,826 ---- + /* + * ":messages" command. + */ + void + ex_messages(eap) +! exarg_T *eap UNUSED; + { + struct msg_hist *p; + char_u *s; +*************** +*** 3290,3304 **** + * A '&' in a button name becomes a shortcut, so each '&' should be before a + * different letter. + */ +- /* ARGSUSED */ + int + do_dialog(type, title, message, buttons, dfltbutton, textfield) +! int type; +! char_u *title; + char_u *message; + char_u *buttons; + int dfltbutton; +! char_u *textfield; /* IObuff for inputdialog(), NULL otherwise */ + { + int oldState; + int retval = 0; +--- 3289,3303 ---- + * A '&' in a button name becomes a shortcut, so each '&' should be before a + * different letter. + */ + int + do_dialog(type, title, message, buttons, dfltbutton, textfield) +! int type UNUSED; +! char_u *title UNUSED; + char_u *message; + char_u *buttons; + int dfltbutton; +! char_u *textfield UNUSED; /* IObuff for inputdialog(), NULL +! otherwise */ + { + int oldState; + int retval = 0; +*************** +*** 4021,4027 **** + if (*p != '%') + { + char *q = strchr(p + 1, '%'); +! size_t n = (q == NULL) ? STRLEN(p) : (q - p); + + /* Copy up to the next '%' or NUL without any changes. */ + if (str_l < str_m) +--- 4020,4026 ---- + if (*p != '%') + { + char *q = strchr(p + 1, '%'); +! size_t n = (q == NULL) ? STRLEN(p) : (size_t)(q - p); + + /* Copy up to the next '%' or NUL without any changes. */ + if (str_l < str_m) +*************** +*** 4268,4274 **** + precision <= (size_t)0x7fffffffL ? precision + : (size_t)0x7fffffffL); + #endif +! str_arg_l = (q == NULL) ? precision : q - str_arg; + } + break; + +--- 4267,4274 ---- + precision <= (size_t)0x7fffffffL ? precision + : (size_t)0x7fffffffL); + #endif +! str_arg_l = (q == NULL) ? precision +! : (size_t)(q - str_arg); + } + break; + +*************** +*** 4368,4374 **** + get_a_arg(arg_idx); + #else + # if defined(FEAT_EVAL) +! tvs != NULL ? tv_nr(tvs, &arg_idx) : + # endif + va_arg(ap, unsigned int); + #endif +--- 4368,4375 ---- + get_a_arg(arg_idx); + #else + # if defined(FEAT_EVAL) +! tvs != NULL ? (unsigned) +! tv_nr(tvs, &arg_idx) : + # endif + va_arg(ap, unsigned int); + #endif +*************** +*** 4381,4387 **** + get_a_arg(arg_idx); + #else + # if defined(FEAT_EVAL) +! tvs != NULL ? tv_nr(tvs, &arg_idx) : + # endif + va_arg(ap, unsigned long int); + #endif +--- 4382,4389 ---- + get_a_arg(arg_idx); + #else + # if defined(FEAT_EVAL) +! tvs != NULL ? (unsigned long) +! tv_nr(tvs, &arg_idx) : + # endif + va_arg(ap, unsigned long int); + #endif +*************** +*** 4704,4710 **** + size_t avail = str_m - str_l; + + vim_memset(str + str_l, zero_padding ? '0' : ' ', +! (size_t)pn > avail ? avail : pn); + } + str_l += pn; + } +--- 4706,4713 ---- + size_t avail = str_m - str_l; + + vim_memset(str + str_l, zero_padding ? '0' : ' ', +! (size_t)pn > avail ? avail +! : (size_t)pn); + } + str_l += pn; + } +*************** +*** 4731,4737 **** + size_t avail = str_m - str_l; + + mch_memmove(str + str_l, str_arg, +! (size_t)zn > avail ? avail : zn); + } + str_l += zn; + } +--- 4734,4741 ---- + size_t avail = str_m - str_l; + + mch_memmove(str + str_l, str_arg, +! (size_t)zn > avail ? avail +! : (size_t)zn); + } + str_l += zn; + } +*************** +*** 4746,4752 **** + size_t avail = str_m-str_l; + + vim_memset(str + str_l, '0', +! (size_t)zn > avail ? avail : zn); + } + str_l += zn; + } +--- 4750,4757 ---- + size_t avail = str_m-str_l; + + vim_memset(str + str_l, '0', +! (size_t)zn > avail ? avail +! : (size_t)zn); + } + str_l += zn; + } +*************** +*** 4765,4771 **** + + mch_memmove(str + str_l, + str_arg + zero_padding_insertion_ind, +! (size_t)sn > avail ? avail : sn); + } + str_l += sn; + } +--- 4770,4776 ---- + + mch_memmove(str + str_l, + str_arg + zero_padding_insertion_ind, +! (size_t)sn > avail ? avail : (size_t)sn); + } + str_l += sn; + } +*************** +*** 4785,4791 **** + size_t avail = str_m - str_l; + + vim_memset(str + str_l, ' ', +! (size_t)pn > avail ? avail : pn); + } + str_l += pn; + } +--- 4790,4797 ---- + size_t avail = str_m - str_l; + + vim_memset(str + str_l, ' ', +! (size_t)pn > avail ? avail +! : (size_t)pn); + } + str_l += pn; + } +*** ../vim-7.2.179/src/misc1.c 2009-05-15 21:31:11.000000000 +0200 +--- src/misc1.c 2009-05-16 21:25:34.000000000 +0200 +*************** +*** 4147,4156 **** + /* + * Function given to ExpandGeneric() to obtain an environment variable name. + */ +- /*ARGSUSED*/ + char_u * + get_env_name(xp, idx) +! expand_T *xp; + int idx; + { + # if defined(AMIGA) || defined(__MRC__) || defined(__SC__) +--- 4147,4155 ---- + /* + * Function given to ExpandGeneric() to obtain an environment variable name. + */ + char_u * + get_env_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + # if defined(AMIGA) || defined(__MRC__) || defined(__SC__) +*************** +*** 4742,4750 **** + * If it is then restrict the search to below this line and try again. + */ + line = ml_get(pos->lnum); +! for (p = line; *p && (unsigned)(p - line) < pos->col; ++p) + p = skip_string(p); +! if ((unsigned)(p - line) <= pos->col) + break; + cur_maxcomment = curwin->w_cursor.lnum - pos->lnum - 1; + if (cur_maxcomment <= 0) +--- 4741,4749 ---- + * If it is then restrict the search to below this line and try again. + */ + line = ml_get(pos->lnum); +! for (p = line; *p && (colnr_T)(p - line) < pos->col; ++p) + p = skip_string(p); +! if ((colnr_T)(p - line) <= pos->col) + break; + cur_maxcomment = curwin->w_cursor.lnum - pos->lnum - 1; + if (cur_maxcomment <= 0) +*************** +*** 6275,6281 **** + * check for that. + */ + if ((State & INSERT) +! && curwin->w_cursor.col < STRLEN(linecopy) + && linecopy[curwin->w_cursor.col] == ')') + linecopy[curwin->w_cursor.col] = NUL; + +--- 6274,6280 ---- + * check for that. + */ + if ((State & INSERT) +! && curwin->w_cursor.col < (colnr_T)STRLEN(linecopy) + && linecopy[curwin->w_cursor.col] == ')') + linecopy[curwin->w_cursor.col] = NUL; + +*** ../vim-7.2.179/src/mbyte.c 2008-11-28 21:26:50.000000000 +0100 +--- src/mbyte.c 2009-05-16 22:29:02.000000000 +0200 +*************** +*** 1015,1024 **** + * Return length in bytes of character "c". + * Returns 1 for a single-byte character. + */ +- /* ARGSUSED */ + int + latin_char2len(c) +! int c; + { + return 1; + } +--- 1015,1023 ---- + * Return length in bytes of character "c". + * Returns 1 for a single-byte character. + */ + int + latin_char2len(c) +! int c UNUSED; + { + return 1; + } +*************** +*** 1248,1257 **** + * Return the number of display cells character at "*p" occupies. + * This doesn't take care of unprintable characters, use ptr2cells() for that. + */ +- /*ARGSUSED*/ + int + latin_ptr2cells(p) +! char_u *p; + { + return 1; + } +--- 1247,1255 ---- + * Return the number of display cells character at "*p" occupies. + * This doesn't take care of unprintable characters, use ptr2cells() for that. + */ + int + latin_ptr2cells(p) +! char_u *p UNUSED; + { + return 1; + } +*************** +*** 1293,1302 **** + * Return the number of display cells character "c" occupies. + * Only takes care of multi-byte chars, not "^C" and such. + */ +- /*ARGSUSED*/ + int + latin_char2cells(c) +! int c; + { + return 1; + } +--- 1291,1299 ---- + * Return the number of display cells character "c" occupies. + * Only takes care of multi-byte chars, not "^C" and such. + */ + int + latin_char2cells(c) +! int c UNUSED; + { + return 1; + } +*************** +*** 1318,1328 **** + * Return number of display cells for char at ScreenLines[off]. + * We make sure that the offset used is less than "max_off". + */ +- /*ARGSUSED*/ + int + latin_off2cells(off, max_off) +! unsigned off; +! unsigned max_off; + { + return 1; + } +--- 1315,1324 ---- + * Return number of display cells for char at ScreenLines[off]. + * We make sure that the offset used is less than "max_off". + */ + int + latin_off2cells(off, max_off) +! unsigned off UNUSED; +! unsigned max_off UNUSED; + { + return 1; + } +*************** +*** 2419,2429 **** + * Return offset from "p" to the first byte of the character it points into. + * Returns 0 when already at the first byte of a character. + */ +- /*ARGSUSED*/ + int + latin_head_off(base, p) +! char_u *base; +! char_u *p; + { + return 0; + } +--- 2415,2424 ---- + * Return offset from "p" to the first byte of the character it points into. + * Returns 0 when already at the first byte of a character. + */ + int + latin_head_off(base, p) +! char_u *base UNUSED; +! char_u *p UNUSED; + { + return 0; + } +*************** +*** 3131,3137 **** + else + s = p + 1; + } +! for (i = 0; s[i] != NUL && i < sizeof(buf) - 1; ++i) + { + if (s[i] == '_' || s[i] == '-') + buf[i] = '-'; +--- 3126,3132 ---- + else + s = p + 1; + } +! for (i = 0; s[i] != NUL && i < (int)sizeof(buf) - 1; ++i) + { + if (s[i] == '_' || s[i] == '-') + buf[i] = '-'; +*************** +*** 3582,3590 **** + * Callback invoked when the user finished preediting. + * Put the final string into the input buffer. + */ +- /*ARGSUSED0*/ + static void +! im_commit_cb(GtkIMContext *context, const gchar *str, gpointer data) + { + int slen = (int)STRLEN(str); + int add_to_input = TRUE; +--- 3577,3586 ---- + * Callback invoked when the user finished preediting. + * Put the final string into the input buffer. + */ + static void +! im_commit_cb(GtkIMContext *context UNUSED, +! const gchar *str, +! gpointer data UNUSED) + { + int slen = (int)STRLEN(str); + int add_to_input = TRUE; +*************** +*** 3670,3678 **** + /* + * Callback invoked after start to the preedit. + */ +- /*ARGSUSED*/ + static void +! im_preedit_start_cb(GtkIMContext *context, gpointer data) + { + #ifdef XIM_DEBUG + xim_log("im_preedit_start_cb()\n"); +--- 3666,3673 ---- + /* + * Callback invoked after start to the preedit. + */ + static void +! im_preedit_start_cb(GtkIMContext *context UNUSED, gpointer data UNUSED) + { + #ifdef XIM_DEBUG + xim_log("im_preedit_start_cb()\n"); +*************** +*** 3687,3695 **** + /* + * Callback invoked after end to the preedit. + */ +- /*ARGSUSED*/ + static void +! im_preedit_end_cb(GtkIMContext *context, gpointer data) + { + #ifdef XIM_DEBUG + xim_log("im_preedit_end_cb()\n"); +--- 3682,3689 ---- + /* + * Callback invoked after end to the preedit. + */ + static void +! im_preedit_end_cb(GtkIMContext *context UNUSED, gpointer data UNUSED) + { + #ifdef XIM_DEBUG + xim_log("im_preedit_end_cb()\n"); +*************** +*** 3748,3756 **** + * remaining input from within the "retrieve_surrounding" signal handler, this + * might not be necessary. Gotta ask on vim-dev for opinions. + */ +- /*ARGSUSED1*/ + static void +! im_preedit_changed_cb(GtkIMContext *context, gpointer data) + { + char *preedit_string = NULL; + int cursor_index = 0; +--- 3742,3749 ---- + * remaining input from within the "retrieve_surrounding" signal handler, this + * might not be necessary. Gotta ask on vim-dev for opinions. + */ + static void +! im_preedit_changed_cb(GtkIMContext *context, gpointer data UNUSED) + { + char *preedit_string = NULL; + int cursor_index = 0; +*************** +*** 4616,4626 **** + } + } + +- /*ARGSUSED*/ + void + im_set_position(row, col) +! int row; +! int col; + { + xim_set_preedit(); + } +--- 4609,4618 ---- + } + } + + void + im_set_position(row, col) +! int row UNUSED; +! int col UNUSED; + { + xim_set_preedit(); + } +*************** +*** 4927,4938 **** + static void xim_instantiate_cb __ARGS((Display *display, XPointer client_data, XPointer call_data)); + static void xim_destroy_cb __ARGS((XIM im, XPointer client_data, XPointer call_data)); + +- /*ARGSUSED*/ + static void + xim_instantiate_cb(display, client_data, call_data) + Display *display; +! XPointer client_data; +! XPointer call_data; + { + Window x11_window; + Display *x11_display; +--- 4919,4929 ---- + static void xim_instantiate_cb __ARGS((Display *display, XPointer client_data, XPointer call_data)); + static void xim_destroy_cb __ARGS((XIM im, XPointer client_data, XPointer call_data)); + + static void + xim_instantiate_cb(display, client_data, call_data) + Display *display; +! XPointer client_data UNUSED; +! XPointer call_data UNUSED; + { + Window x11_window; + Display *x11_display; +*************** +*** 4952,4963 **** + xim_instantiate_cb, NULL); + } + +- /*ARGSUSED*/ + static void + xim_destroy_cb(im, client_data, call_data) +! XIM im; +! XPointer client_data; +! XPointer call_data; + { + Window x11_window; + Display *x11_display; +--- 4943,4953 ---- + xim_instantiate_cb, NULL); + } + + static void + xim_destroy_cb(im, client_data, call_data) +! XIM im UNUSED; +! XPointer client_data UNUSED; +! XPointer call_data UNUSED; + { + Window x11_window; + Display *x11_display; +*************** +*** 5276,5284 **** + } + } + +- /*ARGSUSED*/ + static void +! preedit_start_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("xim_decide_input_style()\n"); +--- 5266,5275 ---- + } + } + + static void +! preedit_start_cbproc(XIC thexic UNUSED, +! XPointer client_data UNUSED, +! XPointer call_data UNUSED) + { + #ifdef XIM_DEBUG + xim_log("xim_decide_input_style()\n"); +*************** +*** 5310,5318 **** + static GSList *key_press_event_queue = NULL; + static gboolean processing_queued_event = FALSE; + +- /*ARGSUSED*/ + static void +! preedit_draw_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + XIMPreeditDrawCallbackStruct *draw_data; + XIMText *text; +--- 5301,5310 ---- + static GSList *key_press_event_queue = NULL; + static gboolean processing_queued_event = FALSE; + + static void +! preedit_draw_cbproc(XIC thexic UNUSED, +! XPointer client_data UNUSED, +! XPointer call_data) + { + XIMPreeditDrawCallbackStruct *draw_data; + XIMText *text; +*************** +*** 5451,5468 **** + return -1; + } + +- /*ARGSUSED*/ + static void +! preedit_caret_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("preedit_caret_cbproc()\n"); + #endif + } + +- /*ARGSUSED*/ + static void +! preedit_done_cbproc(XIC thexic, XPointer client_data, XPointer call_data) + { + #ifdef XIM_DEBUG + xim_log("preedit_done_cbproc()\n"); +--- 5443,5462 ---- + return -1; + } + + static void +! preedit_caret_cbproc(XIC thexic UNUSED, +! XPointer client_data UNUSED, +! XPointer call_data UNUSED) + { + #ifdef XIM_DEBUG + xim_log("preedit_caret_cbproc()\n"); + #endif + } + + static void +! preedit_done_cbproc(XIC thexic UNUSED, +! XPointer client_data UNUSED, +! XPointer call_data UNUSED) + { + #ifdef XIM_DEBUG + xim_log("preedit_done_cbproc()\n"); +*************** +*** 5501,5509 **** + } + } + +- /*ARGSUSED*/ + int +! xim_queue_key_press_event(GdkEventKey *event, int down) + { + #ifdef XIM_DEBUG + xim_log("xim_queue_key_press_event()\n"); +--- 5495,5502 ---- + } + } + + int +! xim_queue_key_press_event(GdkEventKey *event, int down UNUSED) + { + #ifdef XIM_DEBUG + xim_log("xim_queue_key_press_event()\n"); +*************** +*** 5519,5527 **** + return TRUE; + } + +- /*ARGSUSED*/ + static void +! preedit_callback_setup(GdkIC *ic) + { + XIC xxic; + XVaNestedList preedit_attr; +--- 5512,5519 ---- + return TRUE; + } + + static void +! preedit_callback_setup(GdkIC *ic UNUSED) + { + XIC xxic; + XVaNestedList preedit_attr; +*************** +*** 5546,5554 **** + XFree(preedit_attr); + } + +- /*ARGSUSED*/ + static void +! reset_state_setup(GdkIC *ic) + { + #ifdef USE_X11R6_XIM + /* don't change the input context when we call reset */ +--- 5538,5545 ---- + XFree(preedit_attr); + } + + static void +! reset_state_setup(GdkIC *ic UNUSED) + { + #ifdef USE_X11R6_XIM + /* don't change the input context when we call reset */ +*** ../vim-7.2.179/src/normal.c 2009-05-15 21:31:11.000000000 +0200 +--- src/normal.c 2009-05-16 22:31:10.000000000 +0200 +*************** +*** 9243,9252 **** + } + + #ifdef FEAT_SNIFF +- /*ARGSUSED*/ + static void + nv_sniff(cap) +! cmdarg_T *cap; + { + ProcessSniffRequests(); + } +--- 9243,9251 ---- + } + + #ifdef FEAT_SNIFF + static void + nv_sniff(cap) +! cmdarg_T *cap UNUSED; + { + ProcessSniffRequests(); + } +*************** +*** 9262,9271 **** + #endif + + #ifdef FEAT_DND +- /*ARGSUSED*/ + static void + nv_drop(cap) +! cmdarg_T *cap; + { + do_put('~', BACKWARD, 1L, PUT_CURSEND); + } +--- 9261,9269 ---- + #endif + + #ifdef FEAT_DND + static void + nv_drop(cap) +! cmdarg_T *cap UNUSED; + { + do_put('~', BACKWARD, 1L, PUT_CURSEND); + } +*************** +*** 9277,9283 **** + * When waiting for a character for 'updatetime' K_CURSORHOLD is put in the + * input buffer. "did_cursorhold" is set to avoid retriggering. + */ +- /*ARGSUSED*/ + static void + nv_cursorhold(cap) + cmdarg_T *cap; +--- 9275,9280 ---- +*** ../vim-7.2.179/src/option.c 2009-05-15 21:31:11.000000000 +0200 +--- src/option.c 2009-05-17 12:13:52.000000000 +0200 +*************** +*** 387,392 **** +--- 387,395 ---- + char_u *def_val[2]; /* default values for variable (vi and vim) */ + #ifdef FEAT_EVAL + scid_T scriptID; /* script in which the option was last set */ ++ # define SCRIPTID_INIT , 0 ++ #else ++ # define SCRIPTID_INIT + #endif + }; + +*************** +*** 477,483 **** + #else + (char_u *)224L, + #endif +! (char_u *)0L}}, + {"antialias", "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, + #if defined(FEAT_GUI) && defined(MACOS_X) + (char_u *)&p_antialias, PV_NONE, +--- 480,486 ---- + #else + (char_u *)224L, + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"antialias", "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, + #if defined(FEAT_GUI) && defined(MACOS_X) + (char_u *)&p_antialias, PV_NONE, +*************** +*** 486,520 **** + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)FALSE} + #endif +! }, + {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_ARABIC + (char_u *)VAR_WIN, PV_ARAB, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"arabicshape", "arshape", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, + #ifdef FEAT_ARABIC + (char_u *)&p_arshape, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L}}, + {"allowrevins", "ari", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_RIGHTLEFT + (char_u *)&p_ari, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"altkeymap", "akm", P_BOOL|P_VI_DEF, + #ifdef FEAT_FKMAP + (char_u *)&p_altkeymap, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"ambiwidth", "ambw", P_STRING|P_VI_DEF|P_RCLR, + #if defined(FEAT_MBYTE) + (char_u *)&p_ambw, PV_NONE, +--- 489,523 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)FALSE} + #endif +! SCRIPTID_INIT}, + {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_ARABIC + (char_u *)VAR_WIN, PV_ARAB, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"arabicshape", "arshape", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, + #ifdef FEAT_ARABIC + (char_u *)&p_arshape, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"allowrevins", "ari", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_RIGHTLEFT + (char_u *)&p_ari, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"altkeymap", "akm", P_BOOL|P_VI_DEF, + #ifdef FEAT_FKMAP + (char_u *)&p_altkeymap, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"ambiwidth", "ambw", P_STRING|P_VI_DEF|P_RCLR, + #if defined(FEAT_MBYTE) + (char_u *)&p_ambw, PV_NONE, +*************** +*** 523,549 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + #ifdef FEAT_AUTOCHDIR + {"autochdir", "acd", P_BOOL|P_VI_DEF, + (char_u *)&p_acd, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + #endif + {"autoindent", "ai", P_BOOL|P_VI_DEF, + (char_u *)&p_ai, PV_AI, +! {(char_u *)FALSE, (char_u *)0L}}, + {"autoprint", "ap", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"autoread", "ar", P_BOOL|P_VI_DEF, + (char_u *)&p_ar, PV_AR, +! {(char_u *)FALSE, (char_u *)0L}}, + {"autowrite", "aw", P_BOOL|P_VI_DEF, + (char_u *)&p_aw, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"autowriteall","awa", P_BOOL|P_VI_DEF, + (char_u *)&p_awa, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"background", "bg", P_STRING|P_VI_DEF|P_RCLR, + (char_u *)&p_bg, PV_NONE, + { +--- 526,552 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + #ifdef FEAT_AUTOCHDIR + {"autochdir", "acd", P_BOOL|P_VI_DEF, + (char_u *)&p_acd, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + #endif + {"autoindent", "ai", P_BOOL|P_VI_DEF, + (char_u *)&p_ai, PV_AI, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autoprint", "ap", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autoread", "ar", P_BOOL|P_VI_DEF, + (char_u *)&p_ar, PV_AR, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autowrite", "aw", P_BOOL|P_VI_DEF, + (char_u *)&p_aw, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"autowriteall","awa", P_BOOL|P_VI_DEF, + (char_u *)&p_awa, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"background", "bg", P_STRING|P_VI_DEF|P_RCLR, + (char_u *)&p_bg, PV_NONE, + { +*************** +*** 552,564 **** + #else + (char_u *)"light", + #endif +! (char_u *)0L}}, + {"backspace", "bs", P_STRING|P_VI_DEF|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_bs, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"backup", "bk", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_bk, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"backupcopy", "bkc", P_STRING|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_bkc, PV_NONE, + #ifdef UNIX +--- 555,567 ---- + #else + (char_u *)"light", + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"backspace", "bs", P_STRING|P_VI_DEF|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_bs, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"backup", "bk", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_bk, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"backupcopy", "bkc", P_STRING|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_bkc, PV_NONE, + #ifdef UNIX +*************** +*** 566,575 **** + #else + {(char_u *)"auto", (char_u *)"auto"} + #endif +! }, + {"backupdir", "bdir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_bdir, PV_NONE, +! {(char_u *)DFLT_BDIR, (char_u *)0L}}, + {"backupext", "bex", P_STRING|P_VI_DEF|P_NFNAME, + (char_u *)&p_bex, PV_NONE, + { +--- 569,578 ---- + #else + {(char_u *)"auto", (char_u *)"auto"} + #endif +! SCRIPTID_INIT}, + {"backupdir", "bdir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_bdir, PV_NONE, +! {(char_u *)DFLT_BDIR, (char_u *)0L} SCRIPTID_INIT}, + {"backupext", "bex", P_STRING|P_VI_DEF|P_NFNAME, + (char_u *)&p_bex, PV_NONE, + { +*************** +*** 578,584 **** + #else + (char_u *)"~", + #endif +! (char_u *)0L}}, + {"backupskip", "bsk", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_WILDIGN + (char_u *)&p_bsk, PV_NONE, +--- 581,587 ---- + #else + (char_u *)"~", + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"backupskip", "bsk", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_WILDIGN + (char_u *)&p_bsk, PV_NONE, +*************** +*** 587,626 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + #ifdef FEAT_BEVAL + {"balloondelay","bdlay",P_NUM|P_VI_DEF, + (char_u *)&p_bdlay, PV_NONE, +! {(char_u *)600L, (char_u *)0L}}, + {"ballooneval", "beval",P_BOOL|P_VI_DEF|P_NO_MKRC, + (char_u *)&p_beval, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + # ifdef FEAT_EVAL + {"balloonexpr", "bexpr", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM, + (char_u *)&p_bexpr, PV_BEXPR, +! {(char_u *)"", (char_u *)0L}}, + # endif + #endif + {"beautify", "bf", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"binary", "bin", P_BOOL|P_VI_DEF|P_RSTAT, + (char_u *)&p_bin, PV_BIN, +! {(char_u *)FALSE, (char_u *)0L}}, + {"bioskey", "biosk",P_BOOL|P_VI_DEF, + #ifdef MSDOS + (char_u *)&p_biosk, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L}}, + {"bomb", NULL, P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT, + #ifdef FEAT_MBYTE + (char_u *)&p_bomb, PV_BOMB, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"breakat", "brk", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST, + #ifdef FEAT_LINEBREAK + (char_u *)&p_breakat, PV_NONE, +--- 590,629 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + #ifdef FEAT_BEVAL + {"balloondelay","bdlay",P_NUM|P_VI_DEF, + (char_u *)&p_bdlay, PV_NONE, +! {(char_u *)600L, (char_u *)0L} SCRIPTID_INIT}, + {"ballooneval", "beval",P_BOOL|P_VI_DEF|P_NO_MKRC, + (char_u *)&p_beval, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + # ifdef FEAT_EVAL + {"balloonexpr", "bexpr", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM, + (char_u *)&p_bexpr, PV_BEXPR, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + # endif + #endif + {"beautify", "bf", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"binary", "bin", P_BOOL|P_VI_DEF|P_RSTAT, + (char_u *)&p_bin, PV_BIN, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"bioskey", "biosk",P_BOOL|P_VI_DEF, + #ifdef MSDOS + (char_u *)&p_biosk, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"bomb", NULL, P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT, + #ifdef FEAT_MBYTE + (char_u *)&p_bomb, PV_BOMB, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"breakat", "brk", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST, + #ifdef FEAT_LINEBREAK + (char_u *)&p_breakat, PV_NONE, +*************** +*** 629,635 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"browsedir", "bsdir",P_STRING|P_VI_DEF, + #ifdef FEAT_BROWSE + (char_u *)&p_bsdir, PV_NONE, +--- 632,638 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"browsedir", "bsdir",P_STRING|P_VI_DEF, + #ifdef FEAT_BROWSE + (char_u *)&p_bsdir, PV_NONE, +*************** +*** 638,644 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"bufhidden", "bh", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB, + #if defined(FEAT_QUICKFIX) + (char_u *)&p_bh, PV_BH, +--- 641,647 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"bufhidden", "bh", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB, + #if defined(FEAT_QUICKFIX) + (char_u *)&p_bh, PV_BH, +*************** +*** 647,657 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"buflisted", "bl", P_BOOL|P_VI_DEF|P_NOGLOB, + (char_u *)&p_bl, PV_BL, + {(char_u *)1L, (char_u *)0L} +! }, + {"buftype", "bt", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB, + #if defined(FEAT_QUICKFIX) + (char_u *)&p_bt, PV_BT, +--- 650,660 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"buflisted", "bl", P_BOOL|P_VI_DEF|P_NOGLOB, + (char_u *)&p_bl, PV_BL, + {(char_u *)1L, (char_u *)0L} +! SCRIPTID_INIT}, + {"buftype", "bt", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB, + #if defined(FEAT_QUICKFIX) + (char_u *)&p_bt, PV_BT, +*************** +*** 660,666 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"casemap", "cmp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_MBYTE + (char_u *)&p_cmp, PV_NONE, +--- 663,669 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"casemap", "cmp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_MBYTE + (char_u *)&p_cmp, PV_NONE, +*************** +*** 669,675 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"cdpath", "cd", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SEARCHPATH + (char_u *)&p_cdpath, PV_NONE, +--- 672,678 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"cdpath", "cd", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SEARCHPATH + (char_u *)&p_cdpath, PV_NONE, +*************** +*** 678,684 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"cedit", NULL, P_STRING, + #ifdef FEAT_CMDWIN + (char_u *)&p_cedit, PV_NONE, +--- 681,687 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"cedit", NULL, P_STRING, + #ifdef FEAT_CMDWIN + (char_u *)&p_cedit, PV_NONE, +*************** +*** 687,693 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"charconvert", "ccv", P_STRING|P_VI_DEF|P_SECURE, + #if defined(FEAT_MBYTE) && defined(FEAT_EVAL) + (char_u *)&p_ccv, PV_NONE, +--- 690,696 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"charconvert", "ccv", P_STRING|P_VI_DEF|P_SECURE, + #if defined(FEAT_MBYTE) && defined(FEAT_EVAL) + (char_u *)&p_ccv, PV_NONE, +*************** +*** 696,709 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"cindent", "cin", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_CINDENT + (char_u *)&p_cin, PV_CIN, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"cinkeys", "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CINDENT + (char_u *)&p_cink, PV_CINK, +--- 699,712 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"cindent", "cin", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_CINDENT + (char_u *)&p_cin, PV_CIN, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"cinkeys", "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CINDENT + (char_u *)&p_cink, PV_CINK, +*************** +*** 712,725 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"cinoptions", "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CINDENT + (char_u *)&p_cino, PV_CINO, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"cinwords", "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT) + (char_u *)&p_cinw, PV_CINW, +--- 715,728 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"cinoptions", "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CINDENT + (char_u *)&p_cino, PV_CINO, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"cinwords", "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT) + (char_u *)&p_cinw, PV_CINW, +*************** +*** 729,735 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"clipboard", "cb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CLIPBOARD + (char_u *)&p_cb, PV_NONE, +--- 732,738 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"clipboard", "cb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CLIPBOARD + (char_u *)&p_cb, PV_NONE, +*************** +*** 743,762 **** + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + #endif +! }, + {"cmdheight", "ch", P_NUM|P_VI_DEF|P_RALL, + (char_u *)&p_ch, PV_NONE, +! {(char_u *)1L, (char_u *)0L}}, + {"cmdwinheight", "cwh", P_NUM|P_VI_DEF, + #ifdef FEAT_CMDWIN + (char_u *)&p_cwh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)7L, (char_u *)0L}}, + {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR, + (char_u *)&Columns, PV_NONE, +! {(char_u *)80L, (char_u *)0L}}, + {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_COMMENTS + (char_u *)&p_com, PV_COM, +--- 746,765 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"cmdheight", "ch", P_NUM|P_VI_DEF|P_RALL, + (char_u *)&p_ch, PV_NONE, +! {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"cmdwinheight", "cwh", P_NUM|P_VI_DEF, + #ifdef FEAT_CMDWIN + (char_u *)&p_cwh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)7L, (char_u *)0L} SCRIPTID_INIT}, + {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR, + (char_u *)&Columns, PV_NONE, +! {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT}, + {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_COMMENTS + (char_u *)&p_com, PV_COM, +*************** +*** 766,772 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_FOLDING + (char_u *)&p_cms, PV_CMS, +--- 769,775 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_FOLDING + (char_u *)&p_cms, PV_CMS, +*************** +*** 775,786 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + /* P_PRI_MKRC isn't needed here, optval_default() + * always returns TRUE for 'compatible' */ + {"compatible", "cp", P_BOOL|P_RALL, + (char_u *)&p_cp, PV_NONE, +! {(char_u *)TRUE, (char_u *)FALSE}}, + {"complete", "cpt", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_cpt, PV_CPT, +--- 778,789 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + /* P_PRI_MKRC isn't needed here, optval_default() + * always returns TRUE for 'compatible' */ + {"compatible", "cp", P_BOOL|P_RALL, + (char_u *)&p_cp, PV_NONE, +! {(char_u *)TRUE, (char_u *)FALSE} SCRIPTID_INIT}, + {"complete", "cpt", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_cpt, PV_CPT, +*************** +*** 789,795 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE, + #ifdef FEAT_COMPL_FUNC + (char_u *)&p_cfu, PV_CFU, +--- 792,798 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE, + #ifdef FEAT_COMPL_FUNC + (char_u *)&p_cfu, PV_CFU, +*************** +*** 798,804 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"completeopt", "cot", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_cot, PV_NONE, +--- 801,807 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"completeopt", "cot", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_cot, PV_NONE, +*************** +*** 807,840 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"confirm", "cf", P_BOOL|P_VI_DEF, + #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) + (char_u *)&p_confirm, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"conskey", "consk",P_BOOL|P_VI_DEF, + #ifdef MSDOS + (char_u *)&p_consk, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"copyindent", "ci", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_ci, PV_CI, +! {(char_u *)FALSE, (char_u *)0L}}, + {"cpoptions", "cpo", P_STRING|P_VIM|P_RALL|P_FLAGLIST, + (char_u *)&p_cpo, PV_NONE, +! {(char_u *)CPO_VI, (char_u *)CPO_VIM}}, + {"cscopepathcomp", "cspc", P_NUM|P_VI_DEF|P_VIM, + #ifdef FEAT_CSCOPE + (char_u *)&p_cspc, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L}}, + {"cscopeprg", "csprg", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_CSCOPE + (char_u *)&p_csprg, PV_NONE, +--- 810,844 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"confirm", "cf", P_BOOL|P_VI_DEF, + #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) + (char_u *)&p_confirm, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"conskey", "consk",P_BOOL|P_VI_DEF, + #ifdef MSDOS + (char_u *)&p_consk, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"copyindent", "ci", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_ci, PV_CI, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"cpoptions", "cpo", P_STRING|P_VIM|P_RALL|P_FLAGLIST, + (char_u *)&p_cpo, PV_NONE, +! {(char_u *)CPO_VI, (char_u *)CPO_VIM} +! SCRIPTID_INIT}, + {"cscopepathcomp", "cspc", P_NUM|P_VI_DEF|P_VIM, + #ifdef FEAT_CSCOPE + (char_u *)&p_cspc, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cscopeprg", "csprg", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_CSCOPE + (char_u *)&p_csprg, PV_NONE, +*************** +*** 843,849 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"cscopequickfix", "csqf", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_CSCOPE) && defined(FEAT_QUICKFIX) + (char_u *)&p_csqf, PV_NONE, +--- 847,853 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"cscopequickfix", "csqf", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_CSCOPE) && defined(FEAT_QUICKFIX) + (char_u *)&p_csqf, PV_NONE, +*************** +*** 852,896 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"cscopetag", "cst", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_CSCOPE + (char_u *)&p_cst, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L}}, + {"cscopetagorder", "csto", P_NUM|P_VI_DEF|P_VIM, + #ifdef FEAT_CSCOPE + (char_u *)&p_csto, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L}}, + {"cscopeverbose", "csverb", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_CSCOPE + (char_u *)&p_csverbose, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L}}, + {"cursorcolumn", "cuc", P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_SYN_HL + (char_u *)VAR_WIN, PV_CUC, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"cursorline", "cul", P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_SYN_HL + (char_u *)VAR_WIN, PV_CUL, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"debug", NULL, P_STRING|P_VI_DEF, + (char_u *)&p_debug, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"define", "def", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_FIND_ID + (char_u *)&p_def, PV_DEF, +--- 856,900 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"cscopetag", "cst", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_CSCOPE + (char_u *)&p_cst, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cscopetagorder", "csto", P_NUM|P_VI_DEF|P_VIM, + #ifdef FEAT_CSCOPE + (char_u *)&p_csto, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cscopeverbose", "csverb", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_CSCOPE + (char_u *)&p_csverbose, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"cursorcolumn", "cuc", P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_SYN_HL + (char_u *)VAR_WIN, PV_CUC, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"cursorline", "cul", P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_SYN_HL + (char_u *)VAR_WIN, PV_CUL, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"debug", NULL, P_STRING|P_VI_DEF, + (char_u *)&p_debug, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"define", "def", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_FIND_ID + (char_u *)&p_def, PV_DEF, +*************** +*** 899,926 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"delcombine", "deco", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_MBYTE + (char_u *)&p_deco, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"dictionary", "dict", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_dict, PV_DICT, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"diff", NULL, P_BOOL|P_VI_DEF|P_RWIN|P_NOGLOB, + #ifdef FEAT_DIFF + (char_u *)VAR_WIN, PV_DIFF, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"diffexpr", "dex", P_STRING|P_VI_DEF|P_SECURE, + #if defined(FEAT_DIFF) && defined(FEAT_EVAL) + (char_u *)&p_dex, PV_NONE, +--- 903,930 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"delcombine", "deco", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_MBYTE + (char_u *)&p_deco, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"dictionary", "dict", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_dict, PV_DICT, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"diff", NULL, P_BOOL|P_VI_DEF|P_RWIN|P_NOGLOB, + #ifdef FEAT_DIFF + (char_u *)VAR_WIN, PV_DIFF, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"diffexpr", "dex", P_STRING|P_VI_DEF|P_SECURE, + #if defined(FEAT_DIFF) && defined(FEAT_EVAL) + (char_u *)&p_dex, PV_NONE, +*************** +*** 929,935 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"diffopt", "dip", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN|P_COMMA|P_NODUP, + #ifdef FEAT_DIFF + (char_u *)&p_dip, PV_NONE, +--- 933,939 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"diffopt", "dip", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN|P_COMMA|P_NODUP, + #ifdef FEAT_DIFF + (char_u *)&p_dip, PV_NONE, +*************** +*** 938,957 **** + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)NULL} + #endif +! }, + {"digraph", "dg", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_DIGRAPHS + (char_u *)&p_dg, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"directory", "dir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_dir, PV_NONE, +! {(char_u *)DFLT_DIR, (char_u *)0L}}, + {"display", "dy", P_STRING|P_VI_DEF|P_COMMA|P_RALL|P_NODUP, + (char_u *)&p_dy, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"eadirection", "ead", P_STRING|P_VI_DEF, + #ifdef FEAT_VERTSPLIT + (char_u *)&p_ead, PV_NONE, +--- 942,961 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)NULL} + #endif +! SCRIPTID_INIT}, + {"digraph", "dg", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_DIGRAPHS + (char_u *)&p_dg, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"directory", "dir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_dir, PV_NONE, +! {(char_u *)DFLT_DIR, (char_u *)0L} SCRIPTID_INIT}, + {"display", "dy", P_STRING|P_VI_DEF|P_COMMA|P_RALL|P_NODUP, + (char_u *)&p_dy, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"eadirection", "ead", P_STRING|P_VI_DEF, + #ifdef FEAT_VERTSPLIT + (char_u *)&p_ead, PV_NONE, +*************** +*** 960,969 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"edcompatible","ed", P_BOOL|P_VI_DEF, + (char_u *)&p_ed, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"encoding", "enc", P_STRING|P_VI_DEF|P_RCLR, + #ifdef FEAT_MBYTE + (char_u *)&p_enc, PV_NONE, +--- 964,973 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"edcompatible","ed", P_BOOL|P_VI_DEF, + (char_u *)&p_ed, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"encoding", "enc", P_STRING|P_VI_DEF|P_RCLR, + #ifdef FEAT_MBYTE + (char_u *)&p_enc, PV_NONE, +*************** +*** 972,990 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"endofline", "eol", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT, + (char_u *)&p_eol, PV_EOL, +! {(char_u *)TRUE, (char_u *)0L}}, + {"equalalways", "ea", P_BOOL|P_VI_DEF|P_RALL, + (char_u *)&p_ea, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"equalprg", "ep", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_ep, PV_EP, +! {(char_u *)"", (char_u *)0L}}, + {"errorbells", "eb", P_BOOL|P_VI_DEF, + (char_u *)&p_eb, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"errorfile", "ef", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_ef, PV_NONE, +--- 976,994 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"endofline", "eol", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT, + (char_u *)&p_eol, PV_EOL, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"equalalways", "ea", P_BOOL|P_VI_DEF|P_RALL, + (char_u *)&p_ea, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"equalprg", "ep", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_ep, PV_EP, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"errorbells", "eb", P_BOOL|P_VI_DEF, + (char_u *)&p_eb, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"errorfile", "ef", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_ef, PV_NONE, +*************** +*** 993,1024 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"errorformat", "efm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_QUICKFIX + (char_u *)&p_efm, PV_EFM, +! {(char_u *)DFLT_EFM, (char_u *)0L}, + #else + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"esckeys", "ek", P_BOOL|P_VIM, + (char_u *)&p_ek, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE}}, + {"eventignore", "ei", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_AUTOCMD + (char_u *)&p_ei, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"expandtab", "et", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_et, PV_ET, +! {(char_u *)FALSE, (char_u *)0L}}, + {"exrc", "ex", P_BOOL|P_VI_DEF|P_SECURE, + (char_u *)&p_exrc, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF|P_NO_MKRC, + #ifdef FEAT_MBYTE + (char_u *)&p_fenc, PV_FENC, +--- 997,1028 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"errorformat", "efm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_QUICKFIX + (char_u *)&p_efm, PV_EFM, +! {(char_u *)DFLT_EFM, (char_u *)0L} + #else + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"esckeys", "ek", P_BOOL|P_VIM, + (char_u *)&p_ek, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, + {"eventignore", "ei", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_AUTOCMD + (char_u *)&p_ei, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"expandtab", "et", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_et, PV_ET, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"exrc", "ex", P_BOOL|P_VI_DEF|P_SECURE, + (char_u *)&p_exrc, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF|P_NO_MKRC, + #ifdef FEAT_MBYTE + (char_u *)&p_fenc, PV_FENC, +*************** +*** 1027,1033 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"fileencodings","fencs", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_MBYTE + (char_u *)&p_fencs, PV_NONE, +--- 1031,1037 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"fileencodings","fencs", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_MBYTE + (char_u *)&p_fencs, PV_NONE, +*************** +*** 1036,1048 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC, + (char_u *)&p_ff, PV_FF, +! {(char_u *)DFLT_FF, (char_u *)0L}}, + {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_ffs, PV_NONE, +! {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}}, + {"filetype", "ft", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME, + #ifdef FEAT_AUTOCMD + (char_u *)&p_ft, PV_FT, +--- 1040,1053 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC, + (char_u *)&p_ff, PV_FF, +! {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT}, + {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_ffs, PV_NONE, +! {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM} +! SCRIPTID_INIT}, + {"filetype", "ft", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME, + #ifdef FEAT_AUTOCMD + (char_u *)&p_ft, PV_FT, +*************** +*** 1051,1057 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"fillchars", "fcs", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + #if defined(FEAT_WINDOWS) || defined(FEAT_FOLDING) + (char_u *)&p_fcs, PV_NONE, +--- 1056,1062 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"fillchars", "fcs", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + #if defined(FEAT_WINDOWS) || defined(FEAT_FOLDING) + (char_u *)&p_fcs, PV_NONE, +*************** +*** 1060,1086 **** + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + #endif +! }, + {"fkmap", "fk", P_BOOL|P_VI_DEF, + #ifdef FEAT_FKMAP + (char_u *)&p_fkmap, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"flash", "fl", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + #ifdef FEAT_FOLDING + {"foldclose", "fcl", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_RWIN, + (char_u *)&p_fcl, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"foldcolumn", "fdc", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDC, +! {(char_u *)FALSE, (char_u *)0L}}, + {"foldenable", "fen", P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FEN, +! {(char_u *)TRUE, (char_u *)0L}}, + {"foldexpr", "fde", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + # ifdef FEAT_EVAL + (char_u *)VAR_WIN, PV_FDE, +--- 1065,1091 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"fkmap", "fk", P_BOOL|P_VI_DEF, + #ifdef FEAT_FKMAP + (char_u *)&p_fkmap, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"flash", "fl", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + #ifdef FEAT_FOLDING + {"foldclose", "fcl", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_RWIN, + (char_u *)&p_fcl, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"foldcolumn", "fdc", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDC, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"foldenable", "fen", P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FEN, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"foldexpr", "fde", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + # ifdef FEAT_EVAL + (char_u *)VAR_WIN, PV_FDE, +*************** +*** 1089,1121 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + # endif +! }, + {"foldignore", "fdi", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDI, +! {(char_u *)"#", (char_u *)NULL}}, + {"foldlevel", "fdl", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDL, +! {(char_u *)0L, (char_u *)0L}}, + {"foldlevelstart","fdls", P_NUM|P_VI_DEF, + (char_u *)&p_fdls, PV_NONE, +! {(char_u *)-1L, (char_u *)0L}}, + {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF| + P_RWIN|P_COMMA|P_NODUP, + (char_u *)VAR_WIN, PV_FMR, +! {(char_u *)"{{{,}}}", (char_u *)NULL}}, + {"foldmethod", "fdm", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDM, +! {(char_u *)"manual", (char_u *)NULL}}, + {"foldminlines","fml", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FML, +! {(char_u *)1L, (char_u *)0L}}, + {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDN, +! {(char_u *)20L, (char_u *)0L}}, + {"foldopen", "fdo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_fdo, PV_NONE, + {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo", +! (char_u *)0L}}, + {"foldtext", "fdt", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + # ifdef FEAT_EVAL + (char_u *)VAR_WIN, PV_FDT, +--- 1094,1127 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + # endif +! SCRIPTID_INIT}, + {"foldignore", "fdi", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDI, +! {(char_u *)"#", (char_u *)NULL} SCRIPTID_INIT}, + {"foldlevel", "fdl", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDL, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"foldlevelstart","fdls", P_NUM|P_VI_DEF, + (char_u *)&p_fdls, PV_NONE, +! {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT}, + {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF| + P_RWIN|P_COMMA|P_NODUP, + (char_u *)VAR_WIN, PV_FMR, +! {(char_u *)"{{{,}}}", (char_u *)NULL} +! SCRIPTID_INIT}, + {"foldmethod", "fdm", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDM, +! {(char_u *)"manual", (char_u *)NULL} SCRIPTID_INIT}, + {"foldminlines","fml", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FML, +! {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDN, +! {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, + {"foldopen", "fdo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_fdo, PV_NONE, + {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo", +! (char_u *)0L} SCRIPTID_INIT}, + {"foldtext", "fdt", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|P_RWIN, + # ifdef FEAT_EVAL + (char_u *)VAR_WIN, PV_FDT, +*************** +*** 1124,1130 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + # endif +! }, + #endif + {"formatexpr", "fex", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM, + #ifdef FEAT_EVAL +--- 1130,1136 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + # endif +! SCRIPTID_INIT}, + #endif + {"formatexpr", "fex", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM, + #ifdef FEAT_EVAL +*************** +*** 1134,1149 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"formatoptions","fo", P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST, + (char_u *)&p_fo, PV_FO, +! {(char_u *)DFLT_FO_VI, (char_u *)DFLT_FO_VIM}}, + {"formatlistpat","flp", P_STRING|P_ALLOCED|P_VI_DEF, + (char_u *)&p_flp, PV_FLP, +! {(char_u *)"^\\s*\\d\\+[\\]:.)}\\t ]\\s*", (char_u *)0L}}, + {"formatprg", "fp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_fp, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"fsync", "fs", P_BOOL|P_SECURE|P_VI_DEF, + #ifdef HAVE_FSYNC + (char_u *)&p_fs, PV_NONE, +--- 1140,1157 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"formatoptions","fo", P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST, + (char_u *)&p_fo, PV_FO, +! {(char_u *)DFLT_FO_VI, (char_u *)DFLT_FO_VIM} +! SCRIPTID_INIT}, + {"formatlistpat","flp", P_STRING|P_ALLOCED|P_VI_DEF, + (char_u *)&p_flp, PV_FLP, +! {(char_u *)"^\\s*\\d\\+[\\]:.)}\\t ]\\s*", +! (char_u *)0L} SCRIPTID_INIT}, + {"formatprg", "fp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_fp, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"fsync", "fs", P_BOOL|P_SECURE|P_VI_DEF, + #ifdef HAVE_FSYNC + (char_u *)&p_fs, PV_NONE, +*************** +*** 1152,1173 **** + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} + #endif +! }, + {"gdefault", "gd", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_gd, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"graphic", "gr", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"grepformat", "gfm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_QUICKFIX + (char_u *)&p_gefm, PV_NONE, +! {(char_u *)DFLT_GREPFORMAT, (char_u *)0L}, + #else + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"grepprg", "gp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_gp, PV_GP, +--- 1160,1181 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"gdefault", "gd", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_gd, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"graphic", "gr", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"grepformat", "gfm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_QUICKFIX + (char_u *)&p_gefm, PV_NONE, +! {(char_u *)DFLT_GREPFORMAT, (char_u *)0L} + #else + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"grepprg", "gp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_gp, PV_GP, +*************** +*** 1185,1199 **** + (char_u *)"SEARCH/NUMBERS ", + # else + (char_u *)"grep -n ", +! #endif +! #endif + # endif +! (char_u *)0L}, + #else + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"guicursor", "gcr", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef CURSOR_SHAPE + (char_u *)&p_guicursor, PV_NONE, +--- 1193,1207 ---- + (char_u *)"SEARCH/NUMBERS ", + # else + (char_u *)"grep -n ", +! # endif +! # endif + # endif +! (char_u *)0L} + #else + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"guicursor", "gcr", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef CURSOR_SHAPE + (char_u *)&p_guicursor, PV_NONE, +*************** +*** 1208,1214 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"guifont", "gfn", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + #ifdef FEAT_GUI + (char_u *)&p_guifont, PV_NONE, +--- 1216,1222 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"guifont", "gfn", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + #ifdef FEAT_GUI + (char_u *)&p_guifont, PV_NONE, +*************** +*** 1217,1223 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"guifontset", "gfs", P_STRING|P_VI_DEF|P_RCLR|P_COMMA, + #if defined(FEAT_GUI) && defined(FEAT_XFONTSET) + (char_u *)&p_guifontset, PV_NONE, +--- 1225,1231 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"guifontset", "gfs", P_STRING|P_VI_DEF|P_RCLR|P_COMMA, + #if defined(FEAT_GUI) && defined(FEAT_XFONTSET) + (char_u *)&p_guifontset, PV_NONE, +*************** +*** 1226,1232 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"guifontwide", "gfw", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + #if defined(FEAT_GUI) && defined(FEAT_MBYTE) + (char_u *)&p_guifontwide, PV_NONE, +--- 1234,1240 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"guifontwide", "gfw", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + #if defined(FEAT_GUI) && defined(FEAT_MBYTE) + (char_u *)&p_guifontwide, PV_NONE, +*************** +*** 1235,1248 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"guiheadroom", "ghr", P_NUM|P_VI_DEF, + #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) + (char_u *)&p_ghr, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)50L, (char_u *)0L}}, + {"guioptions", "go", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST, + #if defined(FEAT_GUI) + (char_u *)&p_go, PV_NONE, +--- 1243,1256 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"guiheadroom", "ghr", P_NUM|P_VI_DEF, + #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) + (char_u *)&p_ghr, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)50L, (char_u *)0L} SCRIPTID_INIT}, + {"guioptions", "go", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST, + #if defined(FEAT_GUI) + (char_u *)&p_go, PV_NONE, +*************** +*** 1255,1268 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"guipty", NULL, P_BOOL|P_VI_DEF, + #if defined(FEAT_GUI) + (char_u *)&p_guipty, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L}}, + {"guitablabel", "gtl", P_STRING|P_VI_DEF|P_RWIN, + #if defined(FEAT_GUI_TABLINE) + (char_u *)&p_gtl, PV_NONE, +--- 1263,1276 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"guipty", NULL, P_BOOL|P_VI_DEF, + #if defined(FEAT_GUI) + (char_u *)&p_guipty, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"guitablabel", "gtl", P_STRING|P_VI_DEF|P_RWIN, + #if defined(FEAT_GUI_TABLINE) + (char_u *)&p_gtl, PV_NONE, +*************** +*** 1271,1277 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"guitabtooltip", "gtt", P_STRING|P_VI_DEF|P_RWIN, + #if defined(FEAT_GUI_TABLINE) + (char_u *)&p_gtt, PV_NONE, +--- 1279,1285 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"guitabtooltip", "gtt", P_STRING|P_VI_DEF|P_RWIN, + #if defined(FEAT_GUI_TABLINE) + (char_u *)&p_gtt, PV_NONE, +*************** +*** 1280,1299 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"hardtabs", "ht", P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"helpfile", "hf", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_hf, PV_NONE, +! {(char_u *)DFLT_HELPFILE, (char_u *)0L}}, + {"helpheight", "hh", P_NUM|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_hh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)20L, (char_u *)0L}}, + {"helplang", "hlg", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_MULTI_LANG + (char_u *)&p_hlg, PV_NONE, +--- 1288,1308 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"hardtabs", "ht", P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"helpfile", "hf", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_hf, PV_NONE, +! {(char_u *)DFLT_HELPFILE, (char_u *)0L} +! SCRIPTID_INIT}, + {"helpheight", "hh", P_NUM|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_hh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, + {"helplang", "hlg", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_MULTI_LANG + (char_u *)&p_hlg, PV_NONE, +*************** +*** 1302,1365 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"hidden", "hid", P_BOOL|P_VI_DEF, + (char_u *)&p_hid, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"highlight", "hl", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + (char_u *)&p_hl, PV_NONE, +! {(char_u *)HIGHLIGHT_INIT, (char_u *)0L}}, + {"history", "hi", P_NUM|P_VIM, + (char_u *)&p_hi, PV_NONE, +! {(char_u *)0L, (char_u *)20L}}, + {"hkmap", "hk", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_RIGHTLEFT + (char_u *)&p_hkmap, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"hkmapp", "hkp", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_RIGHTLEFT + (char_u *)&p_hkmapp, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"hlsearch", "hls", P_BOOL|P_VI_DEF|P_VIM|P_RALL, + (char_u *)&p_hls, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"icon", NULL, P_BOOL|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_icon, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"iconstring", NULL, P_STRING|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_iconstring, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"ignorecase", "ic", P_BOOL|P_VI_DEF, + (char_u *)&p_ic, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"imactivatekey","imak",P_STRING|P_VI_DEF, + #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) + (char_u *)&p_imak, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"imcmdline", "imc", P_BOOL|P_VI_DEF, + #ifdef USE_IM_CONTROL + (char_u *)&p_imcmdline, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"imdisable", "imd", P_BOOL|P_VI_DEF, + #ifdef USE_IM_CONTROL + (char_u *)&p_imdisable, PV_NONE, +--- 1311,1375 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"hidden", "hid", P_BOOL|P_VI_DEF, + (char_u *)&p_hid, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"highlight", "hl", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + (char_u *)&p_hl, PV_NONE, +! {(char_u *)HIGHLIGHT_INIT, (char_u *)0L} +! SCRIPTID_INIT}, + {"history", "hi", P_NUM|P_VIM, + (char_u *)&p_hi, PV_NONE, +! {(char_u *)0L, (char_u *)20L} SCRIPTID_INIT}, + {"hkmap", "hk", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_RIGHTLEFT + (char_u *)&p_hkmap, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"hkmapp", "hkp", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_RIGHTLEFT + (char_u *)&p_hkmapp, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"hlsearch", "hls", P_BOOL|P_VI_DEF|P_VIM|P_RALL, + (char_u *)&p_hls, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"icon", NULL, P_BOOL|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_icon, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"iconstring", NULL, P_STRING|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_iconstring, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"ignorecase", "ic", P_BOOL|P_VI_DEF, + (char_u *)&p_ic, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"imactivatekey","imak",P_STRING|P_VI_DEF, + #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) + (char_u *)&p_imak, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"imcmdline", "imc", P_BOOL|P_VI_DEF, + #ifdef USE_IM_CONTROL + (char_u *)&p_imcmdline, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"imdisable", "imd", P_BOOL|P_VI_DEF, + #ifdef USE_IM_CONTROL + (char_u *)&p_imdisable, PV_NONE, +*************** +*** 1371,1377 **** + #else + {(char_u *)FALSE, (char_u *)0L} + #endif +! }, + {"iminsert", "imi", P_NUM|P_VI_DEF, + (char_u *)&p_iminsert, PV_IMI, + #ifdef B_IMODE_IM +--- 1381,1387 ---- + #else + {(char_u *)FALSE, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"iminsert", "imi", P_NUM|P_VI_DEF, + (char_u *)&p_iminsert, PV_IMI, + #ifdef B_IMODE_IM +*************** +*** 1379,1385 **** + #else + {(char_u *)B_IMODE_NONE, (char_u *)0L} + #endif +! }, + {"imsearch", "ims", P_NUM|P_VI_DEF, + (char_u *)&p_imsearch, PV_IMS, + #ifdef B_IMODE_IM +--- 1389,1395 ---- + #else + {(char_u *)B_IMODE_NONE, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"imsearch", "ims", P_NUM|P_VI_DEF, + (char_u *)&p_imsearch, PV_IMS, + #ifdef B_IMODE_IM +*************** +*** 1387,1393 **** + #else + {(char_u *)B_IMODE_NONE, (char_u *)0L} + #endif +! }, + {"include", "inc", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_FIND_ID + (char_u *)&p_inc, PV_INC, +--- 1397,1403 ---- + #else + {(char_u *)B_IMODE_NONE, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"include", "inc", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_FIND_ID + (char_u *)&p_inc, PV_INC, +*************** +*** 1396,1402 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"includeexpr", "inex", P_STRING|P_ALLOCED|P_VI_DEF, + #if defined(FEAT_FIND_ID) && defined(FEAT_EVAL) + (char_u *)&p_inex, PV_INEX, +--- 1406,1412 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"includeexpr", "inex", P_STRING|P_ALLOCED|P_VI_DEF, + #if defined(FEAT_FIND_ID) && defined(FEAT_EVAL) + (char_u *)&p_inex, PV_INEX, +*************** +*** 1405,1414 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"incsearch", "is", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_is, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"indentexpr", "inde", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM, + #if defined(FEAT_CINDENT) && defined(FEAT_EVAL) + (char_u *)&p_inde, PV_INDE, +--- 1415,1424 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"incsearch", "is", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_is, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"indentexpr", "inde", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM, + #if defined(FEAT_CINDENT) && defined(FEAT_EVAL) + (char_u *)&p_inde, PV_INDE, +*************** +*** 1417,1423 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"indentkeys", "indk", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_CINDENT) && defined(FEAT_EVAL) + (char_u *)&p_indk, PV_INDK, +--- 1427,1433 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"indentkeys", "indk", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_CINDENT) && defined(FEAT_EVAL) + (char_u *)&p_indk, PV_INDK, +*************** +*** 1426,1438 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"infercase", "inf", P_BOOL|P_VI_DEF, + (char_u *)&p_inf, PV_INF, +! {(char_u *)FALSE, (char_u *)0L}}, + {"insertmode", "im", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_im, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"isfname", "isf", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_isf, PV_NONE, + { +--- 1436,1448 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"infercase", "inf", P_BOOL|P_VI_DEF, + (char_u *)&p_inf, PV_INF, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"insertmode", "im", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_im, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"isfname", "isf", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_isf, PV_NONE, + { +*************** +*** 1455,1461 **** + # endif + # endif + #endif +! (char_u *)0L}}, + {"isident", "isi", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_isi, PV_NONE, + { +--- 1465,1471 ---- + # endif + # endif + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"isident", "isi", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_isi, PV_NONE, + { +*************** +*** 1472,1478 **** + (char_u *)"@,48-57,_,192-255", + # endif + #endif +! (char_u *)0L}}, + {"iskeyword", "isk", P_STRING|P_ALLOCED|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_isk, PV_ISK, + { +--- 1482,1488 ---- + (char_u *)"@,48-57,_,192-255", + # endif + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"iskeyword", "isk", P_STRING|P_ALLOCED|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_isk, PV_ISK, + { +*************** +*** 1491,1497 **** + ISK_LATIN1 + # endif + #endif +! }}, + {"isprint", "isp", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + (char_u *)&p_isp, PV_NONE, + { +--- 1501,1507 ---- + ISK_LATIN1 + # endif + #endif +! } SCRIPTID_INIT}, + {"isprint", "isp", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + (char_u *)&p_isp, PV_NONE, + { +*************** +*** 1507,1516 **** + ISP_LATIN1, + # endif + #endif +! (char_u *)0L}}, + {"joinspaces", "js", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_js, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"key", NULL, P_STRING|P_ALLOCED|P_VI_DEF|P_NO_MKRC, + #ifdef FEAT_CRYPT + (char_u *)&p_key, PV_KEY, +--- 1517,1526 ---- + ISP_LATIN1, + # endif + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"joinspaces", "js", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_js, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"key", NULL, P_STRING|P_ALLOCED|P_VI_DEF|P_NO_MKRC, + #ifdef FEAT_CRYPT + (char_u *)&p_key, PV_KEY, +*************** +*** 1519,1525 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"keymap", "kmp", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_RSTAT|P_NFNAME|P_PRI_MKRC, + #ifdef FEAT_KEYMAP + (char_u *)&p_keymap, PV_KMAP, +--- 1529,1535 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"keymap", "kmp", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_RSTAT|P_NFNAME|P_PRI_MKRC, + #ifdef FEAT_KEYMAP + (char_u *)&p_keymap, PV_KMAP, +*************** +*** 1528,1541 **** + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + #endif +! }, + {"keymodel", "km", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_VISUAL + (char_u *)&p_km, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"keywordprg", "kp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_kp, PV_KP, + { +--- 1538,1551 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"keymodel", "km", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_VISUAL + (char_u *)&p_km, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"keywordprg", "kp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_kp, PV_KP, + { +*************** +*** 1556,1562 **** + # endif + #endif + #endif +! (char_u *)0L}}, + {"langmap", "lmap", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_LANGMAP + (char_u *)&p_langmap, PV_NONE, +--- 1566,1572 ---- + # endif + #endif + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"langmap", "lmap", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_LANGMAP + (char_u *)&p_langmap, PV_NONE, +*************** +*** 1565,1595 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, + #endif +! (char_u *)0L}}, + {"langmenu", "lm", P_STRING|P_VI_DEF|P_NFNAME, + #if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG) + (char_u *)&p_lm, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"laststatus", "ls", P_NUM|P_VI_DEF|P_RALL, + #ifdef FEAT_WINDOWS + (char_u *)&p_ls, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L}}, + {"lazyredraw", "lz", P_BOOL|P_VI_DEF, + (char_u *)&p_lz, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"linebreak", "lbr", P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_LINEBREAK + (char_u *)VAR_WIN, PV_LBR, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"lines", NULL, P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR, + (char_u *)&Rows, PV_NONE, + { +--- 1575,1605 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"langmenu", "lm", P_STRING|P_VI_DEF|P_NFNAME, + #if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG) + (char_u *)&p_lm, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"laststatus", "ls", P_NUM|P_VI_DEF|P_RALL, + #ifdef FEAT_WINDOWS + (char_u *)&p_ls, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"lazyredraw", "lz", P_BOOL|P_VI_DEF, + (char_u *)&p_lz, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"linebreak", "lbr", P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_LINEBREAK + (char_u *)VAR_WIN, PV_LBR, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"lines", NULL, P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR, + (char_u *)&Rows, PV_NONE, + { +*************** +*** 1598,1604 **** + #else + (char_u *)24L, + #endif +! (char_u *)0L}}, + {"linespace", "lsp", P_NUM|P_VI_DEF|P_RCLR, + #ifdef FEAT_GUI + (char_u *)&p_linespace, PV_NONE, +--- 1608,1614 ---- + #else + (char_u *)24L, + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"linespace", "lsp", P_NUM|P_VI_DEF|P_RCLR, + #ifdef FEAT_GUI + (char_u *)&p_linespace, PV_NONE, +*************** +*** 1610,1623 **** + #else + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"lisp", NULL, P_BOOL|P_VI_DEF, + #ifdef FEAT_LISP + (char_u *)&p_lisp, PV_LISP, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"lispwords", "lw", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_LISP + (char_u *)&p_lispwords, PV_NONE, +--- 1620,1633 ---- + #else + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"lisp", NULL, P_BOOL|P_VI_DEF, + #ifdef FEAT_LISP + (char_u *)&p_lisp, PV_LISP, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"lispwords", "lw", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_LISP + (char_u *)&p_lispwords, PV_NONE, +*************** +*** 1626,1649 **** + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + #endif +! }, + {"list", NULL, P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_LIST, +! {(char_u *)FALSE, (char_u *)0L}}, + {"listchars", "lcs", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + (char_u *)&p_lcs, PV_NONE, +! {(char_u *)"eol:$", (char_u *)0L}}, + {"loadplugins", "lpl", P_BOOL|P_VI_DEF, + (char_u *)&p_lpl, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + #ifdef FEAT_GUI_MAC + {"macatsui", NULL, P_BOOL|P_VI_DEF|P_RCLR, + (char_u *)&p_macatsui, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + #endif + {"magic", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_magic, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"makeef", "mef", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_mef, PV_NONE, +--- 1636,1659 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)"", (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"list", NULL, P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_LIST, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"listchars", "lcs", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + (char_u *)&p_lcs, PV_NONE, +! {(char_u *)"eol:$", (char_u *)0L} SCRIPTID_INIT}, + {"loadplugins", "lpl", P_BOOL|P_VI_DEF, + (char_u *)&p_lpl, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + #ifdef FEAT_GUI_MAC + {"macatsui", NULL, P_BOOL|P_VI_DEF|P_RCLR, + (char_u *)&p_macatsui, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + #endif + {"magic", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_magic, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"makeef", "mef", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_mef, PV_NONE, +*************** +*** 1652,1658 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"makeprg", "mp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_mp, PV_MP, +--- 1662,1668 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"makeprg", "mp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_mp, PV_MP, +*************** +*** 1665,1713 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"matchpairs", "mps", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_mps, PV_MPS, +! {(char_u *)"(:),{:},[:]", (char_u *)0L}}, + {"matchtime", "mat", P_NUM|P_VI_DEF, + (char_u *)&p_mat, PV_NONE, +! {(char_u *)5L, (char_u *)0L}}, + {"maxcombine", "mco", P_NUM|P_VI_DEF, + #ifdef FEAT_MBYTE + (char_u *)&p_mco, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)2, (char_u *)0L}}, + {"maxfuncdepth", "mfd", P_NUM|P_VI_DEF, + #ifdef FEAT_EVAL + (char_u *)&p_mfd, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)100L, (char_u *)0L}}, + {"maxmapdepth", "mmd", P_NUM|P_VI_DEF, + (char_u *)&p_mmd, PV_NONE, +! {(char_u *)1000L, (char_u *)0L}}, + {"maxmem", "mm", P_NUM|P_VI_DEF, + (char_u *)&p_mm, PV_NONE, +! {(char_u *)DFLT_MAXMEM, (char_u *)0L}}, + {"maxmempattern","mmp", P_NUM|P_VI_DEF, + (char_u *)&p_mmp, PV_NONE, +! {(char_u *)1000L, (char_u *)0L}}, + {"maxmemtot", "mmt", P_NUM|P_VI_DEF, + (char_u *)&p_mmt, PV_NONE, +! {(char_u *)DFLT_MAXMEMTOT, (char_u *)0L}}, + {"menuitems", "mis", P_NUM|P_VI_DEF, + #ifdef FEAT_MENU + (char_u *)&p_mis, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)25L, (char_u *)0L}}, + {"mesg", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"mkspellmem", "msm", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE, + #ifdef FEAT_SPELL + (char_u *)&p_msm, PV_NONE, +--- 1675,1726 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"matchpairs", "mps", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_mps, PV_MPS, +! {(char_u *)"(:),{:},[:]", (char_u *)0L} +! SCRIPTID_INIT}, + {"matchtime", "mat", P_NUM|P_VI_DEF, + (char_u *)&p_mat, PV_NONE, +! {(char_u *)5L, (char_u *)0L} SCRIPTID_INIT}, + {"maxcombine", "mco", P_NUM|P_VI_DEF, + #ifdef FEAT_MBYTE + (char_u *)&p_mco, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)2, (char_u *)0L} SCRIPTID_INIT}, + {"maxfuncdepth", "mfd", P_NUM|P_VI_DEF, + #ifdef FEAT_EVAL + (char_u *)&p_mfd, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)100L, (char_u *)0L} SCRIPTID_INIT}, + {"maxmapdepth", "mmd", P_NUM|P_VI_DEF, + (char_u *)&p_mmd, PV_NONE, +! {(char_u *)1000L, (char_u *)0L} SCRIPTID_INIT}, + {"maxmem", "mm", P_NUM|P_VI_DEF, + (char_u *)&p_mm, PV_NONE, +! {(char_u *)DFLT_MAXMEM, (char_u *)0L} +! SCRIPTID_INIT}, + {"maxmempattern","mmp", P_NUM|P_VI_DEF, + (char_u *)&p_mmp, PV_NONE, +! {(char_u *)1000L, (char_u *)0L} SCRIPTID_INIT}, + {"maxmemtot", "mmt", P_NUM|P_VI_DEF, + (char_u *)&p_mmt, PV_NONE, +! {(char_u *)DFLT_MAXMEMTOT, (char_u *)0L} +! SCRIPTID_INIT}, + {"menuitems", "mis", P_NUM|P_VI_DEF, + #ifdef FEAT_MENU + (char_u *)&p_mis, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)25L, (char_u *)0L} SCRIPTID_INIT}, + {"mesg", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"mkspellmem", "msm", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE, + #ifdef FEAT_SPELL + (char_u *)&p_msm, PV_NONE, +*************** +*** 1716,1737 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"modeline", "ml", P_BOOL|P_VIM, + (char_u *)&p_ml, PV_ML, +! {(char_u *)FALSE, (char_u *)TRUE}}, + {"modelines", "mls", P_NUM|P_VI_DEF, + (char_u *)&p_mls, PV_NONE, +! {(char_u *)5L, (char_u *)0L}}, + {"modifiable", "ma", P_BOOL|P_VI_DEF|P_NOGLOB, + (char_u *)&p_ma, PV_MA, +! {(char_u *)TRUE, (char_u *)0L}}, + {"modified", "mod", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT, + (char_u *)&p_mod, PV_MOD, +! {(char_u *)FALSE, (char_u *)0L}}, + {"more", NULL, P_BOOL|P_VIM, + (char_u *)&p_more, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE}}, + {"mouse", NULL, P_STRING|P_VI_DEF|P_FLAGLIST, + (char_u *)&p_mouse, PV_NONE, + { +--- 1729,1750 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"modeline", "ml", P_BOOL|P_VIM, + (char_u *)&p_ml, PV_ML, +! {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, + {"modelines", "mls", P_NUM|P_VI_DEF, + (char_u *)&p_mls, PV_NONE, +! {(char_u *)5L, (char_u *)0L} SCRIPTID_INIT}, + {"modifiable", "ma", P_BOOL|P_VI_DEF|P_NOGLOB, + (char_u *)&p_ma, PV_MA, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"modified", "mod", P_BOOL|P_NO_MKRC|P_VI_DEF|P_RSTAT, + (char_u *)&p_mod, PV_MOD, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"more", NULL, P_BOOL|P_VIM, + (char_u *)&p_more, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, + {"mouse", NULL, P_STRING|P_VI_DEF|P_FLAGLIST, + (char_u *)&p_mouse, PV_NONE, + { +*************** +*** 1740,1760 **** + #else + (char_u *)"", + #endif +! (char_u *)0L}}, + {"mousefocus", "mousef", P_BOOL|P_VI_DEF, + #ifdef FEAT_GUI + (char_u *)&p_mousef, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"mousehide", "mh", P_BOOL|P_VI_DEF, + #ifdef FEAT_GUI + (char_u *)&p_mh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L}}, + {"mousemodel", "mousem", P_STRING|P_VI_DEF, + (char_u *)&p_mousem, PV_NONE, + { +--- 1753,1773 ---- + #else + (char_u *)"", + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"mousefocus", "mousef", P_BOOL|P_VI_DEF, + #ifdef FEAT_GUI + (char_u *)&p_mousef, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"mousehide", "mh", P_BOOL|P_VI_DEF, + #ifdef FEAT_GUI + (char_u *)&p_mh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"mousemodel", "mousem", P_STRING|P_VI_DEF, + (char_u *)&p_mousem, PV_NONE, + { +*************** +*** 1767,1773 **** + (char_u *)"extend", + # endif + #endif +! (char_u *)0L}}, + {"mouseshape", "mouses", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_MOUSESHAPE + (char_u *)&p_mouseshape, PV_NONE, +--- 1780,1786 ---- + (char_u *)"extend", + # endif + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"mouseshape", "mouses", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_MOUSESHAPE + (char_u *)&p_mouseshape, PV_NONE, +*************** +*** 1776,1808 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"mousetime", "mouset", P_NUM|P_VI_DEF, + (char_u *)&p_mouset, PV_NONE, +! {(char_u *)500L, (char_u *)0L}}, + {"mzquantum", "mzq", P_NUM, + #ifdef FEAT_MZSCHEME + (char_u *)&p_mzq, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)100L, (char_u *)100L}}, + {"novice", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"nrformats", "nf", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_nf, PV_NF, +! {(char_u *)"octal,hex", (char_u *)0L}}, + {"number", "nu", P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_NU, +! {(char_u *)FALSE, (char_u *)0L}}, + {"numberwidth", "nuw", P_NUM|P_RWIN|P_VIM, + #ifdef FEAT_LINEBREAK + (char_u *)VAR_WIN, PV_NUW, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)8L, (char_u *)4L}}, + {"omnifunc", "ofu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE, + #ifdef FEAT_COMPL_FUNC + (char_u *)&p_ofu, PV_OFU, +--- 1789,1822 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"mousetime", "mouset", P_NUM|P_VI_DEF, + (char_u *)&p_mouset, PV_NONE, +! {(char_u *)500L, (char_u *)0L} SCRIPTID_INIT}, + {"mzquantum", "mzq", P_NUM, + #ifdef FEAT_MZSCHEME + (char_u *)&p_mzq, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)100L, (char_u *)100L} SCRIPTID_INIT}, + {"novice", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"nrformats", "nf", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_nf, PV_NF, +! {(char_u *)"octal,hex", (char_u *)0L} +! SCRIPTID_INIT}, + {"number", "nu", P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_NU, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"numberwidth", "nuw", P_NUM|P_RWIN|P_VIM, + #ifdef FEAT_LINEBREAK + (char_u *)VAR_WIN, PV_NUW, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)8L, (char_u *)4L} SCRIPTID_INIT}, + {"omnifunc", "ofu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE, + #ifdef FEAT_COMPL_FUNC + (char_u *)&p_ofu, PV_OFU, +*************** +*** 1811,1820 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"open", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"opendevice", "odev", P_BOOL|P_VI_DEF, + #if defined(MSDOS) || defined(MSWIN) || defined(OS2) + (char_u *)&p_odev, PV_NONE, +--- 1825,1834 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"open", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"opendevice", "odev", P_BOOL|P_VI_DEF, + #if defined(MSDOS) || defined(MSWIN) || defined(OS2) + (char_u *)&p_odev, PV_NONE, +*************** +*** 1822,1834 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)FALSE} +! }, + {"operatorfunc", "opfunc", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_opfunc, PV_NONE, +! {(char_u *)"", (char_u *)0L} }, + {"optimize", "opt", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"osfiletype", "oft", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_OSFILETYPE + (char_u *)&p_oft, PV_OFT, +--- 1836,1848 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)FALSE} +! SCRIPTID_INIT}, + {"operatorfunc", "opfunc", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_opfunc, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"optimize", "opt", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"osfiletype", "oft", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_OSFILETYPE + (char_u *)&p_oft, PV_OFT, +*************** +*** 1837,1853 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"paragraphs", "para", P_STRING|P_VI_DEF, + (char_u *)&p_para, PV_NONE, + {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp", +! (char_u *)0L}}, + {"paste", NULL, P_BOOL|P_VI_DEF|P_PRI_MKRC, + (char_u *)&p_paste, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"pastetoggle", "pt", P_STRING|P_VI_DEF, + (char_u *)&p_pt, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"patchexpr", "pex", P_STRING|P_VI_DEF|P_SECURE, + #if defined(FEAT_DIFF) && defined(FEAT_EVAL) + (char_u *)&p_pex, PV_NONE, +--- 1851,1867 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"paragraphs", "para", P_STRING|P_VI_DEF, + (char_u *)&p_para, PV_NONE, + {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp", +! (char_u *)0L} SCRIPTID_INIT}, + {"paste", NULL, P_BOOL|P_VI_DEF|P_PRI_MKRC, + (char_u *)&p_paste, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"pastetoggle", "pt", P_STRING|P_VI_DEF, + (char_u *)&p_pt, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"patchexpr", "pex", P_STRING|P_VI_DEF|P_SECURE, + #if defined(FEAT_DIFF) && defined(FEAT_EVAL) + (char_u *)&p_pex, PV_NONE, +*************** +*** 1856,1865 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"patchmode", "pm", P_STRING|P_VI_DEF|P_NFNAME, + (char_u *)&p_pm, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"path", "pa", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_path, PV_PATH, + { +--- 1870,1879 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"patchmode", "pm", P_STRING|P_VI_DEF|P_NFNAME, + (char_u *)&p_pm, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"path", "pa", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_path, PV_PATH, + { +*************** +*** 1872,1895 **** + (char_u *)".,/usr/include,,", + # endif + #endif +! (char_u *)0L}}, + {"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_pi, PV_PI, +! {(char_u *)FALSE, (char_u *)0L}}, + {"previewheight", "pvh", P_NUM|P_VI_DEF, + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) + (char_u *)&p_pvh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)12L, (char_u *)0L}}, + {"previewwindow", "pvw", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB, + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) + (char_u *)VAR_WIN, PV_PVW, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"printdevice", "pdev", P_STRING|P_VI_DEF|P_SECURE, + #ifdef FEAT_PRINTER + (char_u *)&p_pdev, PV_NONE, +--- 1886,1909 ---- + (char_u *)".,/usr/include,,", + # endif + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_pi, PV_PI, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"previewheight", "pvh", P_NUM|P_VI_DEF, + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) + (char_u *)&p_pvh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)12L, (char_u *)0L} SCRIPTID_INIT}, + {"previewwindow", "pvw", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB, + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) + (char_u *)VAR_WIN, PV_PVW, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"printdevice", "pdev", P_STRING|P_VI_DEF|P_SECURE, + #ifdef FEAT_PRINTER + (char_u *)&p_pdev, PV_NONE, +*************** +*** 1898,1904 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"printencoding", "penc", P_STRING|P_VI_DEF, + #ifdef FEAT_POSTSCRIPT + (char_u *)&p_penc, PV_NONE, +--- 1912,1918 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"printencoding", "penc", P_STRING|P_VI_DEF, + #ifdef FEAT_POSTSCRIPT + (char_u *)&p_penc, PV_NONE, +*************** +*** 1907,1913 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"printexpr", "pexpr", P_STRING|P_VI_DEF, + #ifdef FEAT_POSTSCRIPT + (char_u *)&p_pexpr, PV_NONE, +--- 1921,1927 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"printexpr", "pexpr", P_STRING|P_VI_DEF, + #ifdef FEAT_POSTSCRIPT + (char_u *)&p_pexpr, PV_NONE, +*************** +*** 1916,1922 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"printfont", "pfn", P_STRING|P_VI_DEF, + #ifdef FEAT_PRINTER + (char_u *)&p_pfn, PV_NONE, +--- 1930,1936 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"printfont", "pfn", P_STRING|P_VI_DEF, + #ifdef FEAT_PRINTER + (char_u *)&p_pfn, PV_NONE, +*************** +*** 1931,1937 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"printheader", "pheader", P_STRING|P_VI_DEF|P_GETTEXT, + #ifdef FEAT_PRINTER + (char_u *)&p_header, PV_NONE, +--- 1945,1951 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"printheader", "pheader", P_STRING|P_VI_DEF|P_GETTEXT, + #ifdef FEAT_PRINTER + (char_u *)&p_header, PV_NONE, +*************** +*** 1940,1946 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"printmbcharset", "pmbcs", P_STRING|P_VI_DEF, + #if defined(FEAT_POSTSCRIPT) && defined(FEAT_MBYTE) + (char_u *)&p_pmcs, PV_NONE, +--- 1954,1960 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"printmbcharset", "pmbcs", P_STRING|P_VI_DEF, + #if defined(FEAT_POSTSCRIPT) && defined(FEAT_MBYTE) + (char_u *)&p_pmcs, PV_NONE, +*************** +*** 1949,1955 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"printmbfont", "pmbfn", P_STRING|P_VI_DEF, + #if defined(FEAT_POSTSCRIPT) && defined(FEAT_MBYTE) + (char_u *)&p_pmfn, PV_NONE, +--- 1963,1969 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"printmbfont", "pmbfn", P_STRING|P_VI_DEF, + #if defined(FEAT_POSTSCRIPT) && defined(FEAT_MBYTE) + (char_u *)&p_pmfn, PV_NONE, +*************** +*** 1958,1964 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"printoptions", "popt", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_PRINTER + (char_u *)&p_popt, PV_NONE, +--- 1972,1978 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"printoptions", "popt", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_PRINTER + (char_u *)&p_popt, PV_NONE, +*************** +*** 1967,1983 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"prompt", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_prompt, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"pumheight", "ph", P_NUM|P_VI_DEF, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_ph, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L}}, + {"quoteescape", "qe", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_TEXTOBJ + (char_u *)&p_qe, PV_QE, +--- 1981,1997 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"prompt", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_prompt, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"pumheight", "ph", P_NUM|P_VI_DEF, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_ph, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"quoteescape", "qe", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_TEXTOBJ + (char_u *)&p_qe, PV_QE, +*************** +*** 1986,2032 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"readonly", "ro", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB, + (char_u *)&p_ro, PV_RO, +! {(char_u *)FALSE, (char_u *)0L}}, + {"redraw", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"redrawtime", "rdt", P_NUM|P_VI_DEF, + #ifdef FEAT_RELTIME + (char_u *)&p_rdt, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)2000L, (char_u *)0L}}, + {"remap", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_remap, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"report", NULL, P_NUM|P_VI_DEF, + (char_u *)&p_report, PV_NONE, +! {(char_u *)2L, (char_u *)0L}}, + {"restorescreen", "rs", P_BOOL|P_VI_DEF, + #ifdef WIN3264 + (char_u *)&p_rs, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L}}, + {"revins", "ri", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_RIGHTLEFT + (char_u *)&p_ri, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"rightleft", "rl", P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_RIGHTLEFT + (char_u *)VAR_WIN, PV_RL, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"rightleftcmd", "rlc", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN, + #ifdef FEAT_RIGHTLEFT + (char_u *)VAR_WIN, PV_RLC, +--- 2000,2046 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"readonly", "ro", P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB, + (char_u *)&p_ro, PV_RO, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"redraw", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"redrawtime", "rdt", P_NUM|P_VI_DEF, + #ifdef FEAT_RELTIME + (char_u *)&p_rdt, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)2000L, (char_u *)0L} SCRIPTID_INIT}, + {"remap", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_remap, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"report", NULL, P_NUM|P_VI_DEF, + (char_u *)&p_report, PV_NONE, +! {(char_u *)2L, (char_u *)0L} SCRIPTID_INIT}, + {"restorescreen", "rs", P_BOOL|P_VI_DEF, + #ifdef WIN3264 + (char_u *)&p_rs, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"revins", "ri", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_RIGHTLEFT + (char_u *)&p_ri, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"rightleft", "rl", P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_RIGHTLEFT + (char_u *)VAR_WIN, PV_RL, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"rightleftcmd", "rlc", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN, + #ifdef FEAT_RIGHTLEFT + (char_u *)VAR_WIN, PV_RLC, +*************** +*** 2035,2074 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"ruler", "ru", P_BOOL|P_VI_DEF|P_VIM|P_RSTAT, + #ifdef FEAT_CMDL_INFO + (char_u *)&p_ru, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"rulerformat", "ruf", P_STRING|P_VI_DEF|P_ALLOCED|P_RSTAT, + #ifdef FEAT_STL_OPT + (char_u *)&p_ruf, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"runtimepath", "rtp", P_STRING|P_VI_DEF|P_EXPAND|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_rtp, PV_NONE, +! {(char_u *)DFLT_RUNTIMEPATH, (char_u *)0L}}, + {"scroll", "scr", P_NUM|P_NO_MKRC|P_VI_DEF, + (char_u *)VAR_WIN, PV_SCROLL, +! {(char_u *)12L, (char_u *)0L}}, + {"scrollbind", "scb", P_BOOL|P_VI_DEF, + #ifdef FEAT_SCROLLBIND + (char_u *)VAR_WIN, PV_SCBIND, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"scrolljump", "sj", P_NUM|P_VI_DEF|P_VIM, + (char_u *)&p_sj, PV_NONE, +! {(char_u *)1L, (char_u *)0L}}, + {"scrolloff", "so", P_NUM|P_VI_DEF|P_VIM|P_RALL, + (char_u *)&p_so, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"scrollopt", "sbo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SCROLLBIND + (char_u *)&p_sbo, PV_NONE, +--- 2049,2089 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"ruler", "ru", P_BOOL|P_VI_DEF|P_VIM|P_RSTAT, + #ifdef FEAT_CMDL_INFO + (char_u *)&p_ru, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"rulerformat", "ruf", P_STRING|P_VI_DEF|P_ALLOCED|P_RSTAT, + #ifdef FEAT_STL_OPT + (char_u *)&p_ruf, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"runtimepath", "rtp", P_STRING|P_VI_DEF|P_EXPAND|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_rtp, PV_NONE, +! {(char_u *)DFLT_RUNTIMEPATH, (char_u *)0L} +! SCRIPTID_INIT}, + {"scroll", "scr", P_NUM|P_NO_MKRC|P_VI_DEF, + (char_u *)VAR_WIN, PV_SCROLL, +! {(char_u *)12L, (char_u *)0L} SCRIPTID_INIT}, + {"scrollbind", "scb", P_BOOL|P_VI_DEF, + #ifdef FEAT_SCROLLBIND + (char_u *)VAR_WIN, PV_SCBIND, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"scrolljump", "sj", P_NUM|P_VI_DEF|P_VIM, + (char_u *)&p_sj, PV_NONE, +! {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"scrolloff", "so", P_NUM|P_VI_DEF|P_VIM|P_RALL, + (char_u *)&p_so, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"scrollopt", "sbo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SCROLLBIND + (char_u *)&p_sbo, PV_NONE, +*************** +*** 2077,2103 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"sections", "sect", P_STRING|P_VI_DEF, + (char_u *)&p_sections, PV_NONE, +! {(char_u *)"SHNHH HUnhsh", (char_u *)0L}}, + {"secure", NULL, P_BOOL|P_VI_DEF|P_SECURE, + (char_u *)&p_secure, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"selection", "sel", P_STRING|P_VI_DEF, + #ifdef FEAT_VISUAL + (char_u *)&p_sel, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"inclusive", (char_u *)0L}}, + {"selectmode", "slm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_VISUAL + (char_u *)&p_slm, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"sessionoptions", "ssop", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SESSION + (char_u *)&p_ssop, PV_NONE, +--- 2092,2120 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"sections", "sect", P_STRING|P_VI_DEF, + (char_u *)&p_sections, PV_NONE, +! {(char_u *)"SHNHH HUnhsh", (char_u *)0L} +! SCRIPTID_INIT}, + {"secure", NULL, P_BOOL|P_VI_DEF|P_SECURE, + (char_u *)&p_secure, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"selection", "sel", P_STRING|P_VI_DEF, + #ifdef FEAT_VISUAL + (char_u *)&p_sel, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"inclusive", (char_u *)0L} +! SCRIPTID_INIT}, + {"selectmode", "slm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_VISUAL + (char_u *)&p_slm, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"sessionoptions", "ssop", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SESSION + (char_u *)&p_ssop, PV_NONE, +*************** +*** 2107,2113 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"shell", "sh", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_sh, PV_NONE, + { +--- 2124,2130 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"shell", "sh", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_sh, PV_NONE, + { +*************** +*** 2136,2142 **** + # endif + # endif + #endif /* VMS */ +! (char_u *)0L}}, + {"shellcmdflag","shcf", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_shcf, PV_NONE, + { +--- 2153,2159 ---- + # endif + # endif + #endif /* VMS */ +! (char_u *)0L} SCRIPTID_INIT}, + {"shellcmdflag","shcf", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_shcf, PV_NONE, + { +*************** +*** 2149,2155 **** + (char_u *)"-c", + # endif + #endif +! (char_u *)0L}}, + {"shellpipe", "sp", P_STRING|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_sp, PV_NONE, +--- 2166,2172 ---- + (char_u *)"-c", + # endif + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"shellpipe", "sp", P_STRING|P_VI_DEF|P_SECURE, + #ifdef FEAT_QUICKFIX + (char_u *)&p_sp, PV_NONE, +*************** +*** 2168,2197 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"shellquote", "shq", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_shq, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"shellredir", "srr", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_srr, PV_NONE, +! {(char_u *)">", (char_u *)0L}}, + {"shellslash", "ssl", P_BOOL|P_VI_DEF, + #ifdef BACKSLASH_IN_FILENAME + (char_u *)&p_ssl, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"shelltemp", "stmp", P_BOOL, + (char_u *)&p_stmp, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE}}, + {"shelltype", "st", P_NUM|P_VI_DEF, + #ifdef AMIGA + (char_u *)&p_st, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L}}, + {"shellxquote", "sxq", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_sxq, PV_NONE, + { +--- 2185,2214 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"shellquote", "shq", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_shq, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"shellredir", "srr", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_srr, PV_NONE, +! {(char_u *)">", (char_u *)0L} SCRIPTID_INIT}, + {"shellslash", "ssl", P_BOOL|P_VI_DEF, + #ifdef BACKSLASH_IN_FILENAME + (char_u *)&p_ssl, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"shelltemp", "stmp", P_BOOL, + (char_u *)&p_stmp, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, + {"shelltype", "st", P_NUM|P_VI_DEF, + #ifdef AMIGA + (char_u *)&p_st, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"shellxquote", "sxq", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_sxq, PV_NONE, + { +*************** +*** 2200,2229 **** + #else + (char_u *)"", + #endif +! (char_u *)0L}}, + {"shiftround", "sr", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_sr, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"shiftwidth", "sw", P_NUM|P_VI_DEF, + (char_u *)&p_sw, PV_SW, +! {(char_u *)8L, (char_u *)0L}}, + {"shortmess", "shm", P_STRING|P_VIM|P_FLAGLIST, + (char_u *)&p_shm, PV_NONE, +! {(char_u *)"", (char_u *)"filnxtToO"}}, + {"shortname", "sn", P_BOOL|P_VI_DEF, + #ifdef SHORT_FNAME + (char_u *)NULL, PV_NONE, + #else + (char_u *)&p_sn, PV_SN, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"showbreak", "sbr", P_STRING|P_VI_DEF|P_RALL, + #ifdef FEAT_LINEBREAK + (char_u *)&p_sbr, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"showcmd", "sc", P_BOOL|P_VIM, + #ifdef FEAT_CMDL_INFO + (char_u *)&p_sc, PV_NONE, +--- 2217,2247 ---- + #else + (char_u *)"", + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"shiftround", "sr", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_sr, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"shiftwidth", "sw", P_NUM|P_VI_DEF, + (char_u *)&p_sw, PV_SW, +! {(char_u *)8L, (char_u *)0L} SCRIPTID_INIT}, + {"shortmess", "shm", P_STRING|P_VIM|P_FLAGLIST, + (char_u *)&p_shm, PV_NONE, +! {(char_u *)"", (char_u *)"filnxtToO"} +! SCRIPTID_INIT}, + {"shortname", "sn", P_BOOL|P_VI_DEF, + #ifdef SHORT_FNAME + (char_u *)NULL, PV_NONE, + #else + (char_u *)&p_sn, PV_SN, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"showbreak", "sbr", P_STRING|P_VI_DEF|P_RALL, + #ifdef FEAT_LINEBREAK + (char_u *)&p_sbr, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"showcmd", "sc", P_BOOL|P_VIM, + #ifdef FEAT_CMDL_INFO + (char_u *)&p_sc, PV_NONE, +*************** +*** 2236,2293 **** + #else + (char_u *)TRUE + #endif +! }}, + {"showfulltag", "sft", P_BOOL|P_VI_DEF, + (char_u *)&p_sft, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"showmatch", "sm", P_BOOL|P_VI_DEF, + (char_u *)&p_sm, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"showmode", "smd", P_BOOL|P_VIM, + (char_u *)&p_smd, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE}}, + {"showtabline", "stal", P_NUM|P_VI_DEF|P_RALL, + #ifdef FEAT_WINDOWS + (char_u *)&p_stal, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L}}, + {"sidescroll", "ss", P_NUM|P_VI_DEF, + (char_u *)&p_ss, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"sidescrolloff", "siso", P_NUM|P_VI_DEF|P_VIM|P_RBUF, + (char_u *)&p_siso, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"slowopen", "slow", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"smartcase", "scs", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_scs, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"smartindent", "si", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_SMARTINDENT + (char_u *)&p_si, PV_SI, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"smarttab", "sta", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_sta, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"softtabstop", "sts", P_NUM|P_VI_DEF|P_VIM, + (char_u *)&p_sts, PV_STS, +! {(char_u *)0L, (char_u *)0L}}, + {"sourceany", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"spell", NULL, P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_SPELL + (char_u *)VAR_WIN, PV_SPELL, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"spellcapcheck", "spc", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF, + #ifdef FEAT_SPELL + (char_u *)&p_spc, PV_SPC, +--- 2254,2311 ---- + #else + (char_u *)TRUE + #endif +! } SCRIPTID_INIT}, + {"showfulltag", "sft", P_BOOL|P_VI_DEF, + (char_u *)&p_sft, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"showmatch", "sm", P_BOOL|P_VI_DEF, + (char_u *)&p_sm, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"showmode", "smd", P_BOOL|P_VIM, + (char_u *)&p_smd, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, + {"showtabline", "stal", P_NUM|P_VI_DEF|P_RALL, + #ifdef FEAT_WINDOWS + (char_u *)&p_stal, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"sidescroll", "ss", P_NUM|P_VI_DEF, + (char_u *)&p_ss, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"sidescrolloff", "siso", P_NUM|P_VI_DEF|P_VIM|P_RBUF, + (char_u *)&p_siso, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"slowopen", "slow", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"smartcase", "scs", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_scs, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"smartindent", "si", P_BOOL|P_VI_DEF|P_VIM, + #ifdef FEAT_SMARTINDENT + (char_u *)&p_si, PV_SI, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"smarttab", "sta", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_sta, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"softtabstop", "sts", P_NUM|P_VI_DEF|P_VIM, + (char_u *)&p_sts, PV_STS, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"sourceany", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"spell", NULL, P_BOOL|P_VI_DEF|P_RWIN, + #ifdef FEAT_SPELL + (char_u *)VAR_WIN, PV_SPELL, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"spellcapcheck", "spc", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF, + #ifdef FEAT_SPELL + (char_u *)&p_spc, PV_SPC, +*************** +*** 2296,2302 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"spellfile", "spf", P_STRING|P_EXPAND|P_ALLOCED|P_VI_DEF|P_SECURE|P_COMMA, + #ifdef FEAT_SPELL + (char_u *)&p_spf, PV_SPF, +--- 2314,2320 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"spellfile", "spf", P_STRING|P_EXPAND|P_ALLOCED|P_VI_DEF|P_SECURE|P_COMMA, + #ifdef FEAT_SPELL + (char_u *)&p_spf, PV_SPF, +*************** +*** 2305,2311 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"spelllang", "spl", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_RBUF|P_EXPAND, + #ifdef FEAT_SPELL + (char_u *)&p_spl, PV_SPL, +--- 2323,2329 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"spelllang", "spl", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_RBUF|P_EXPAND, + #ifdef FEAT_SPELL + (char_u *)&p_spl, PV_SPL, +*************** +*** 2314,2320 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_COMMA, + #ifdef FEAT_SPELL + (char_u *)&p_sps, PV_NONE, +--- 2332,2338 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_COMMA, + #ifdef FEAT_SPELL + (char_u *)&p_sps, PV_NONE, +*************** +*** 2323,2357 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"splitbelow", "sb", P_BOOL|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_sb, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"splitright", "spr", P_BOOL|P_VI_DEF, + #ifdef FEAT_VERTSPLIT + (char_u *)&p_spr, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"startofline", "sol", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_sol, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"statusline" ,"stl", P_STRING|P_VI_DEF|P_ALLOCED|P_RSTAT, + #ifdef FEAT_STL_OPT + (char_u *)&p_stl, PV_STL, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"suffixes", "su", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_su, PV_NONE, + {(char_u *)".bak,~,.o,.h,.info,.swp,.obj", +! (char_u *)0L}}, + {"suffixesadd", "sua", P_STRING|P_VI_DEF|P_ALLOCED|P_COMMA|P_NODUP, + #ifdef FEAT_SEARCHPATH + (char_u *)&p_sua, PV_SUA, +--- 2341,2375 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"splitbelow", "sb", P_BOOL|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_sb, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"splitright", "spr", P_BOOL|P_VI_DEF, + #ifdef FEAT_VERTSPLIT + (char_u *)&p_spr, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"startofline", "sol", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_sol, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"statusline" ,"stl", P_STRING|P_VI_DEF|P_ALLOCED|P_RSTAT, + #ifdef FEAT_STL_OPT + (char_u *)&p_stl, PV_STL, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"suffixes", "su", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_su, PV_NONE, + {(char_u *)".bak,~,.o,.h,.info,.swp,.obj", +! (char_u *)0L} SCRIPTID_INIT}, + {"suffixesadd", "sua", P_STRING|P_VI_DEF|P_ALLOCED|P_COMMA|P_NODUP, + #ifdef FEAT_SEARCHPATH + (char_u *)&p_sua, PV_SUA, +*************** +*** 2360,2375 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"swapfile", "swf", P_BOOL|P_VI_DEF|P_RSTAT, + (char_u *)&p_swf, PV_SWF, +! {(char_u *)TRUE, (char_u *)0L}}, + {"swapsync", "sws", P_STRING|P_VI_DEF, + (char_u *)&p_sws, PV_NONE, +! {(char_u *)"fsync", (char_u *)0L}}, + {"switchbuf", "swb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_swb, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"synmaxcol", "smc", P_NUM|P_VI_DEF|P_RBUF, + #ifdef FEAT_SYN_HL + (char_u *)&p_smc, PV_SMC, +--- 2378,2393 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"swapfile", "swf", P_BOOL|P_VI_DEF|P_RSTAT, + (char_u *)&p_swf, PV_SWF, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"swapsync", "sws", P_STRING|P_VI_DEF, + (char_u *)&p_sws, PV_NONE, +! {(char_u *)"fsync", (char_u *)0L} SCRIPTID_INIT}, + {"switchbuf", "swb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_swb, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"synmaxcol", "smc", P_NUM|P_VI_DEF|P_RBUF, + #ifdef FEAT_SYN_HL + (char_u *)&p_smc, PV_SMC, +*************** +*** 2378,2384 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"syntax", "syn", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME, + #ifdef FEAT_SYN_HL + (char_u *)&p_syn, PV_SYN, +--- 2396,2402 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"syntax", "syn", P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME, + #ifdef FEAT_SYN_HL + (char_u *)&p_syn, PV_SYN, +*************** +*** 2387,2410 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"tabline", "tal", P_STRING|P_VI_DEF|P_RALL, + #ifdef FEAT_STL_OPT + (char_u *)&p_tal, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"tabpagemax", "tpm", P_NUM|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_tpm, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)10L, (char_u *)0L}}, + {"tabstop", "ts", P_NUM|P_VI_DEF|P_RBUF, + (char_u *)&p_ts, PV_TS, +! {(char_u *)8L, (char_u *)0L}}, + {"tagbsearch", "tbs", P_BOOL|P_VI_DEF, + (char_u *)&p_tbs, PV_NONE, + #ifdef VMS /* binary searching doesn't appear to work on VMS */ +--- 2405,2428 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"tabline", "tal", P_STRING|P_VI_DEF|P_RALL, + #ifdef FEAT_STL_OPT + (char_u *)&p_tal, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"tabpagemax", "tpm", P_NUM|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_tpm, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)10L, (char_u *)0L} SCRIPTID_INIT}, + {"tabstop", "ts", P_NUM|P_VI_DEF|P_RBUF, + (char_u *)&p_ts, PV_TS, +! {(char_u *)8L, (char_u *)0L} SCRIPTID_INIT}, + {"tagbsearch", "tbs", P_BOOL|P_VI_DEF, + (char_u *)&p_tbs, PV_NONE, + #ifdef VMS /* binary searching doesn't appear to work on VMS */ +*************** +*** 2412,2424 **** + #else + {(char_u *)TRUE, (char_u *)0L} + #endif +! }, + {"taglength", "tl", P_NUM|P_VI_DEF, + (char_u *)&p_tl, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"tagrelative", "tr", P_BOOL|P_VIM, + (char_u *)&p_tr, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE}}, + {"tags", "tag", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_tags, PV_TAGS, + { +--- 2430,2442 ---- + #else + {(char_u *)TRUE, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"taglength", "tl", P_NUM|P_VI_DEF, + (char_u *)&p_tl, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"tagrelative", "tr", P_BOOL|P_VIM, + (char_u *)&p_tr, PV_NONE, +! {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, + {"tags", "tag", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_tags, PV_TAGS, + { +*************** +*** 2427,2446 **** + #else + (char_u *)"./tags,tags", + #endif +! (char_u *)0L}}, + {"tagstack", "tgst", P_BOOL|P_VI_DEF, + (char_u *)&p_tgst, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"term", NULL, P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL, + (char_u *)&T_NAME, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"termbidi", "tbidi", P_BOOL|P_VI_DEF, + #ifdef FEAT_ARABIC + (char_u *)&p_tbidi, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"termencoding", "tenc", P_STRING|P_VI_DEF|P_RCLR, + #ifdef FEAT_MBYTE + (char_u *)&p_tenc, PV_NONE, +--- 2445,2464 ---- + #else + (char_u *)"./tags,tags", + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"tagstack", "tgst", P_BOOL|P_VI_DEF, + (char_u *)&p_tgst, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"term", NULL, P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL, + (char_u *)&T_NAME, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"termbidi", "tbidi", P_BOOL|P_VI_DEF, + #ifdef FEAT_ARABIC + (char_u *)&p_tbidi, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"termencoding", "tenc", P_STRING|P_VI_DEF|P_RCLR, + #ifdef FEAT_MBYTE + (char_u *)&p_tenc, PV_NONE, +*************** +*** 2449,2461 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"terse", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_terse, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"textauto", "ta", P_BOOL|P_VIM, + (char_u *)&p_ta, PV_NONE, +! {(char_u *)DFLT_TEXTAUTO, (char_u *)TRUE}}, + {"textmode", "tx", P_BOOL|P_VI_DEF|P_NO_MKRC, + (char_u *)&p_tx, PV_TX, + { +--- 2467,2480 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"terse", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_terse, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"textauto", "ta", P_BOOL|P_VIM, + (char_u *)&p_ta, PV_NONE, +! {(char_u *)DFLT_TEXTAUTO, (char_u *)TRUE} +! SCRIPTID_INIT}, + {"textmode", "tx", P_BOOL|P_VI_DEF|P_NO_MKRC, + (char_u *)&p_tx, PV_TX, + { +*************** +*** 2464,2503 **** + #else + (char_u *)FALSE, + #endif +! (char_u *)0L}}, + {"textwidth", "tw", P_NUM|P_VI_DEF|P_VIM, + (char_u *)&p_tw, PV_TW, +! {(char_u *)0L, (char_u *)0L}}, + {"thesaurus", "tsr", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_tsr, PV_TSR, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"tildeop", "top", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_to, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"timeout", "to", P_BOOL|P_VI_DEF, + (char_u *)&p_timeout, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"timeoutlen", "tm", P_NUM|P_VI_DEF, + (char_u *)&p_tm, PV_NONE, +! {(char_u *)1000L, (char_u *)0L}}, + {"title", NULL, P_BOOL|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_title, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"titlelen", NULL, P_NUM|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_titlelen, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)85L, (char_u *)0L}}, + {"titleold", NULL, P_STRING|P_VI_DEF|P_GETTEXT|P_SECURE|P_NO_MKRC, + #ifdef FEAT_TITLE + (char_u *)&p_titleold, PV_NONE, +--- 2483,2522 ---- + #else + (char_u *)FALSE, + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"textwidth", "tw", P_NUM|P_VI_DEF|P_VIM, + (char_u *)&p_tw, PV_TW, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"thesaurus", "tsr", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_tsr, PV_TSR, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"tildeop", "top", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_to, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"timeout", "to", P_BOOL|P_VI_DEF, + (char_u *)&p_timeout, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"timeoutlen", "tm", P_NUM|P_VI_DEF, + (char_u *)&p_tm, PV_NONE, +! {(char_u *)1000L, (char_u *)0L} SCRIPTID_INIT}, + {"title", NULL, P_BOOL|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_title, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"titlelen", NULL, P_NUM|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_titlelen, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)85L, (char_u *)0L} SCRIPTID_INIT}, + {"titleold", NULL, P_STRING|P_VI_DEF|P_GETTEXT|P_SECURE|P_NO_MKRC, + #ifdef FEAT_TITLE + (char_u *)&p_titleold, PV_NONE, +*************** +*** 2507,2555 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"titlestring", NULL, P_STRING|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_titlestring, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) + {"toolbar", "tb", P_STRING|P_COMMA|P_VI_DEF|P_NODUP, + (char_u *)&p_toolbar, PV_NONE, +! {(char_u *)"icons,tooltips", (char_u *)0L}}, + #endif + #if defined(FEAT_TOOLBAR) && defined(FEAT_GUI_GTK) && defined(HAVE_GTK2) + {"toolbariconsize", "tbis", P_STRING|P_VI_DEF, + (char_u *)&p_tbis, PV_NONE, +! {(char_u *)"small", (char_u *)0L}}, + #endif + {"ttimeout", NULL, P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_ttimeout, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"ttimeoutlen", "ttm", P_NUM|P_VI_DEF, + (char_u *)&p_ttm, PV_NONE, +! {(char_u *)-1L, (char_u *)0L}}, + {"ttybuiltin", "tbi", P_BOOL|P_VI_DEF, + (char_u *)&p_tbi, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"ttyfast", "tf", P_BOOL|P_NO_MKRC|P_VI_DEF, + (char_u *)&p_tf, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"ttymouse", "ttym", P_STRING|P_NODEFAULT|P_NO_MKRC|P_VI_DEF, + #if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS)) + (char_u *)&p_ttym, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"ttyscroll", "tsl", P_NUM|P_VI_DEF, + (char_u *)&p_ttyscroll, PV_NONE, +! {(char_u *)999L, (char_u *)0L}}, + {"ttytype", "tty", P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL, + (char_u *)&T_NAME, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"undolevels", "ul", P_NUM|P_VI_DEF, + (char_u *)&p_ul, PV_NONE, + { +--- 2526,2575 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"titlestring", NULL, P_STRING|P_VI_DEF, + #ifdef FEAT_TITLE + (char_u *)&p_titlestring, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) + {"toolbar", "tb", P_STRING|P_COMMA|P_VI_DEF|P_NODUP, + (char_u *)&p_toolbar, PV_NONE, +! {(char_u *)"icons,tooltips", (char_u *)0L} +! SCRIPTID_INIT}, + #endif + #if defined(FEAT_TOOLBAR) && defined(FEAT_GUI_GTK) && defined(HAVE_GTK2) + {"toolbariconsize", "tbis", P_STRING|P_VI_DEF, + (char_u *)&p_tbis, PV_NONE, +! {(char_u *)"small", (char_u *)0L} SCRIPTID_INIT}, + #endif + {"ttimeout", NULL, P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_ttimeout, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"ttimeoutlen", "ttm", P_NUM|P_VI_DEF, + (char_u *)&p_ttm, PV_NONE, +! {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT}, + {"ttybuiltin", "tbi", P_BOOL|P_VI_DEF, + (char_u *)&p_tbi, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"ttyfast", "tf", P_BOOL|P_NO_MKRC|P_VI_DEF, + (char_u *)&p_tf, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"ttymouse", "ttym", P_STRING|P_NODEFAULT|P_NO_MKRC|P_VI_DEF, + #if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS)) + (char_u *)&p_ttym, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"ttyscroll", "tsl", P_NUM|P_VI_DEF, + (char_u *)&p_ttyscroll, PV_NONE, +! {(char_u *)999L, (char_u *)0L} SCRIPTID_INIT}, + {"ttytype", "tty", P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL, + (char_u *)&T_NAME, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"undolevels", "ul", P_NUM|P_VI_DEF, + (char_u *)&p_ul, PV_NONE, + { +*************** +*** 2558,2576 **** + #else + (char_u *)100L, + #endif +! (char_u *)0L}}, + {"updatecount", "uc", P_NUM|P_VI_DEF, + (char_u *)&p_uc, PV_NONE, +! {(char_u *)200L, (char_u *)0L}}, + {"updatetime", "ut", P_NUM|P_VI_DEF, + (char_u *)&p_ut, PV_NONE, +! {(char_u *)4000L, (char_u *)0L}}, + {"verbose", "vbs", P_NUM|P_VI_DEF, + (char_u *)&p_verbose, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"verbosefile", "vfile", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_vfile, PV_NONE, +! {(char_u *)"", (char_u *)0L}}, + {"viewdir", "vdir", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_SESSION + (char_u *)&p_vdir, PV_NONE, +--- 2578,2596 ---- + #else + (char_u *)100L, + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"updatecount", "uc", P_NUM|P_VI_DEF, + (char_u *)&p_uc, PV_NONE, +! {(char_u *)200L, (char_u *)0L} SCRIPTID_INIT}, + {"updatetime", "ut", P_NUM|P_VI_DEF, + (char_u *)&p_ut, PV_NONE, +! {(char_u *)4000L, (char_u *)0L} SCRIPTID_INIT}, + {"verbose", "vbs", P_NUM|P_VI_DEF, + (char_u *)&p_verbose, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"verbosefile", "vfile", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + (char_u *)&p_vfile, PV_NONE, +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"viewdir", "vdir", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, + #ifdef FEAT_SESSION + (char_u *)&p_vdir, PV_NONE, +*************** +*** 2579,2585 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"viewoptions", "vop", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SESSION + (char_u *)&p_vop, PV_NONE, +--- 2599,2605 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"viewoptions", "vop", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SESSION + (char_u *)&p_vop, PV_NONE, +*************** +*** 2588,2594 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"viminfo", "vi", P_STRING|P_COMMA|P_NODUP|P_SECURE, + #ifdef FEAT_VIMINFO + (char_u *)&p_viminfo, PV_NONE, +--- 2608,2614 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"viminfo", "vi", P_STRING|P_COMMA|P_NODUP|P_SECURE, + #ifdef FEAT_VIMINFO + (char_u *)&p_viminfo, PV_NONE, +*************** +*** 2606,2612 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM, + #ifdef FEAT_VIRTUALEDIT + (char_u *)&p_ve, PV_NONE, +--- 2626,2632 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM, + #ifdef FEAT_VIRTUALEDIT + (char_u *)&p_ve, PV_NONE, +*************** +*** 2615,2665 **** + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! }, + {"visualbell", "vb", P_BOOL|P_VI_DEF, + (char_u *)&p_vb, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"w300", NULL, P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"w1200", NULL, P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"w9600", NULL, P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"warn", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_warn, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"weirdinvert", "wiv", P_BOOL|P_VI_DEF|P_RCLR, + (char_u *)&p_wiv, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"whichwrap", "ww", P_STRING|P_VIM|P_COMMA|P_FLAGLIST, + (char_u *)&p_ww, PV_NONE, +! {(char_u *)"", (char_u *)"b,s"}}, + {"wildchar", "wc", P_NUM|P_VIM, + (char_u *)&p_wc, PV_NONE, +! {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}}, + {"wildcharm", "wcm", P_NUM|P_VI_DEF, + (char_u *)&p_wcm, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"wildignore", "wig", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_WILDIGN + (char_u *)&p_wig, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L}}, + {"wildmenu", "wmnu", P_BOOL|P_VI_DEF, + #ifdef FEAT_WILDMENU + (char_u *)&p_wmnu, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"wildmode", "wim", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_wim, PV_NONE, +! {(char_u *)"full", (char_u *)0L}}, + {"wildoptions", "wop", P_STRING|P_VI_DEF, + #ifdef FEAT_CMDL_COMPL + (char_u *)&p_wop, PV_NONE, +--- 2635,2686 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)0L, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"visualbell", "vb", P_BOOL|P_VI_DEF, + (char_u *)&p_vb, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"w300", NULL, P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"w1200", NULL, P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"w9600", NULL, P_NUM|P_VI_DEF, + (char_u *)NULL, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"warn", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_warn, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"weirdinvert", "wiv", P_BOOL|P_VI_DEF|P_RCLR, + (char_u *)&p_wiv, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"whichwrap", "ww", P_STRING|P_VIM|P_COMMA|P_FLAGLIST, + (char_u *)&p_ww, PV_NONE, +! {(char_u *)"", (char_u *)"b,s"} SCRIPTID_INIT}, + {"wildchar", "wc", P_NUM|P_VIM, + (char_u *)&p_wc, PV_NONE, +! {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB} +! SCRIPTID_INIT}, + {"wildcharm", "wcm", P_NUM|P_VI_DEF, + (char_u *)&p_wcm, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"wildignore", "wig", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_WILDIGN + (char_u *)&p_wig, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"wildmenu", "wmnu", P_BOOL|P_VI_DEF, + #ifdef FEAT_WILDMENU + (char_u *)&p_wmnu, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"wildmode", "wim", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_wim, PV_NONE, +! {(char_u *)"full", (char_u *)0L} SCRIPTID_INIT}, + {"wildoptions", "wop", P_STRING|P_VI_DEF, + #ifdef FEAT_CMDL_COMPL + (char_u *)&p_wop, PV_NONE, +*************** +*** 2668,2674 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"winaltkeys", "wak", P_STRING|P_VI_DEF, + #ifdef FEAT_WAK + (char_u *)&p_wak, PV_NONE, +--- 2689,2695 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"winaltkeys", "wak", P_STRING|P_VI_DEF, + #ifdef FEAT_WAK + (char_u *)&p_wak, PV_NONE, +*************** +*** 2677,2743 **** + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! }, + {"window", "wi", P_NUM|P_VI_DEF, + (char_u *)&p_window, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + {"winheight", "wh", P_NUM|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_wh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L}}, + {"winfixheight", "wfh", P_BOOL|P_VI_DEF|P_RSTAT, + #ifdef FEAT_WINDOWS + (char_u *)VAR_WIN, PV_WFH, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"winfixwidth", "wfw", P_BOOL|P_VI_DEF|P_RSTAT, + #ifdef FEAT_VERTSPLIT + (char_u *)VAR_WIN, PV_WFW, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L}}, + {"winminheight", "wmh", P_NUM|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_wmh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L}}, + {"winminwidth", "wmw", P_NUM|P_VI_DEF, + #ifdef FEAT_VERTSPLIT + (char_u *)&p_wmw, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L}}, + {"winwidth", "wiw", P_NUM|P_VI_DEF, + #ifdef FEAT_VERTSPLIT + (char_u *)&p_wiw, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)20L, (char_u *)0L}}, + {"wrap", NULL, P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_WRAP, +! {(char_u *)TRUE, (char_u *)0L}}, + {"wrapmargin", "wm", P_NUM|P_VI_DEF, + (char_u *)&p_wm, PV_WM, +! {(char_u *)0L, (char_u *)0L}}, + {"wrapscan", "ws", P_BOOL|P_VI_DEF, + (char_u *)&p_ws, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"write", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_write, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L}}, + {"writeany", "wa", P_BOOL|P_VI_DEF, + (char_u *)&p_wa, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L}}, + {"writebackup", "wb", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_wb, PV_NONE, + { +--- 2698,2764 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)NULL, (char_u *)0L} + #endif +! SCRIPTID_INIT}, + {"window", "wi", P_NUM|P_VI_DEF, + (char_u *)&p_window, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"winheight", "wh", P_NUM|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_wh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"winfixheight", "wfh", P_BOOL|P_VI_DEF|P_RSTAT, + #ifdef FEAT_WINDOWS + (char_u *)VAR_WIN, PV_WFH, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"winfixwidth", "wfw", P_BOOL|P_VI_DEF|P_RSTAT, + #ifdef FEAT_VERTSPLIT + (char_u *)VAR_WIN, PV_WFW, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"winminheight", "wmh", P_NUM|P_VI_DEF, + #ifdef FEAT_WINDOWS + (char_u *)&p_wmh, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"winminwidth", "wmw", P_NUM|P_VI_DEF, + #ifdef FEAT_VERTSPLIT + (char_u *)&p_wmw, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)1L, (char_u *)0L} SCRIPTID_INIT}, + {"winwidth", "wiw", P_NUM|P_VI_DEF, + #ifdef FEAT_VERTSPLIT + (char_u *)&p_wiw, PV_NONE, + #else + (char_u *)NULL, PV_NONE, + #endif +! {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, + {"wrap", NULL, P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_WRAP, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"wrapmargin", "wm", P_NUM|P_VI_DEF, + (char_u *)&p_wm, PV_WM, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + {"wrapscan", "ws", P_BOOL|P_VI_DEF, + (char_u *)&p_ws, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"write", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_write, PV_NONE, +! {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"writeany", "wa", P_BOOL|P_VI_DEF, + (char_u *)&p_wa, PV_NONE, +! {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"writebackup", "wb", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_wb, PV_NONE, + { +*************** +*** 2746,2760 **** + #else + (char_u *)FALSE, + #endif +! (char_u *)0L}}, + {"writedelay", "wd", P_NUM|P_VI_DEF, + (char_u *)&p_wd, PV_NONE, +! {(char_u *)0L, (char_u *)0L}}, + + /* terminal output codes */ + #define p_term(sss, vvv) {sss, NULL, P_STRING|P_VI_DEF|P_RALL|P_SECURE, \ + (char_u *)&vvv, PV_NONE, \ +! {(char_u *)"", (char_u *)0L}}, + + p_term("t_AB", T_CAB) + p_term("t_AF", T_CAF) +--- 2767,2781 ---- + #else + (char_u *)FALSE, + #endif +! (char_u *)0L} SCRIPTID_INIT}, + {"writedelay", "wd", P_NUM|P_VI_DEF, + (char_u *)&p_wd, PV_NONE, +! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, + + /* terminal output codes */ + #define p_term(sss, vvv) {sss, NULL, P_STRING|P_VI_DEF|P_RALL|P_SECURE, \ + (char_u *)&vvv, PV_NONE, \ +! {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + + p_term("t_AB", T_CAB) + p_term("t_AF", T_CAF) +*************** +*** 2815,2821 **** + + /* terminal key codes are not in here */ + +! {NULL, NULL, 0, NULL, PV_NONE, {NULL, NULL}} /* end marker */ + }; + + #define PARAM_COUNT (sizeof(options) / sizeof(struct vimoption)) +--- 2836,2843 ---- + + /* terminal key codes are not in here */ + +! /* end marker */ +! {NULL, NULL, 0, NULL, PV_NONE, {NULL, NULL} SCRIPTID_INIT} + }; + + #define PARAM_COUNT (sizeof(options) / sizeof(struct vimoption)) +*************** +*** 9917,9923 **** + regmatch->rm_ic = ic; + if (xp->xp_context != EXPAND_BOOL_SETTINGS) + { +! for (match = 0; match < sizeof(names) / sizeof(char *); ++match) + if (vim_regexec(regmatch, (char_u *)names[match], (colnr_T)0)) + { + if (loop == 0) +--- 9939,9946 ---- + regmatch->rm_ic = ic; + if (xp->xp_context != EXPAND_BOOL_SETTINGS) + { +! for (match = 0; match < (int)(sizeof(names) / sizeof(char *)); +! ++match) + if (vim_regexec(regmatch, (char_u *)names[match], (colnr_T)0)) + { + if (loop == 0) +*** ../vim-7.2.179/src/os_unix.c 2009-05-16 16:36:25.000000000 +0200 +--- src/os_unix.c 2009-05-17 12:17:01.000000000 +0200 +*************** +*** 821,827 **** + #endif + + #if defined(SIGINT) +- /* ARGSUSED */ + static RETSIGTYPE + catch_sigint SIGDEFARG(sigarg) + { +--- 821,826 ---- +*************** +*** 833,839 **** + #endif + + #if defined(SIGPWR) +- /* ARGSUSED */ + static RETSIGTYPE + catch_sigpwr SIGDEFARG(sigarg) + { +--- 832,837 ---- +*************** +*** 853,859 **** + /* + * signal function for alarm(). + */ +- /* ARGSUSED */ + static RETSIGTYPE + sig_alarm SIGDEFARG(sigarg) + { +--- 851,856 ---- +*************** +*** 1087,1093 **** + /* + * signal handler for SIGCONT + */ +- /* ARGSUSED */ + static RETSIGTYPE + sigcont_handler SIGDEFARG(sigarg) + { +--- 1084,1089 ---- +*************** +*** 1436,1446 **** + /* + * Another X Error handler, just used to check for errors. + */ +- /* ARGSUSED */ + static int + x_error_check(dpy, error_event) +! Display *dpy; +! XErrorEvent *error_event; + { + got_x_error = TRUE; + return 0; +--- 1432,1441 ---- + /* + * Another X Error handler, just used to check for errors. + */ + static int + x_error_check(dpy, error_event) +! Display *dpy UNUSED; +! XErrorEvent *error_event UNUSED; + { + got_x_error = TRUE; + return 0; +*************** +*** 1453,1467 **** + */ + static int x_IOerror_check __ARGS((Display *dpy)); + +- /* ARGSUSED */ + static int + x_IOerror_check(dpy) +! Display *dpy; + { + /* This function should not return, it causes exit(). Longjump instead. */ + LONGJMP(lc_jump_env, 1); +- /*NOTREACHED*/ +- return 0; + } + # endif + +--- 1448,1459 ---- + */ + static int x_IOerror_check __ARGS((Display *dpy)); + + static int + x_IOerror_check(dpy) +! Display *dpy UNUSED; + { + /* This function should not return, it causes exit(). Longjump instead. */ + LONGJMP(lc_jump_env, 1); + } + # endif + +*************** +*** 1470,1479 **** + */ + static int x_IOerror_handler __ARGS((Display *dpy)); + +- /* ARGSUSED */ + static int + x_IOerror_handler(dpy) +! Display *dpy; + { + xterm_dpy = NULL; + x11_window = 0; +--- 1462,1470 ---- + */ + static int x_IOerror_handler __ARGS((Display *dpy)); + + static int + x_IOerror_handler(dpy) +! Display *dpy UNUSED; + { + xterm_dpy = NULL; + x11_window = 0; +*************** +*** 1482,1489 **** + + /* This function should not return, it causes exit(). Longjump instead. */ + LONGJMP(x_jump_env, 1); +- /*NOTREACHED*/ +- return 0; + } + #endif + +--- 1473,1478 ---- +*************** +*** 1919,1928 **** + + #else /* FEAT_X11 */ + +- /*ARGSUSED*/ + static int + get_x11_title(test_only) +! int test_only; + { + return FALSE; + } +--- 1908,1916 ---- + + #else /* FEAT_X11 */ + + static int + get_x11_title(test_only) +! int test_only UNUSED; + { + return FALSE; + } +*************** +*** 2497,2507 **** + * file name to remain exactly the same. + * Only required for file systems where case is ignored and preserved. + */ +- /*ARGSUSED*/ + void + fname_case(name, len) + char_u *name; +! int len; /* buffer size, only used when name gets longer */ + { + struct stat st; + char_u *slash, *tail; +--- 2485,2494 ---- + * file name to remain exactly the same. + * Only required for file systems where case is ignored and preserved. + */ + void + fname_case(name, len) + char_u *name; +! int len UNUSED; /* buffer size, only used when name gets longer */ + { + struct stat st; + char_u *slash, *tail; +*************** +*** 5141,5147 **** + + #define SHELL_SPECIAL (char_u *)"\t \"&'$;<>()\\|" + +- /* ARGSUSED */ + int + mch_expand_wildcards(num_pat, pat, num_file, file, flags) + int num_pat; +--- 5128,5133 ---- +*************** +*** 6068,6074 **** + /* + * Gets info from sysmouse and adds special keys to input buf. + */ +- /* ARGSUSED */ + static RETSIGTYPE + sig_sysmouse SIGDEFARG(sigarg) + { +--- 6054,6059 ---- +*************** +*** 6632,6642 **** + * This is our chance to ask the user if they want to save, + * or abort the logout + */ +- /*ARGSUSED*/ + static void + xsmp_handle_interaction(smc_conn, client_data) + SmcConn smc_conn; +! SmPointer client_data; + { + cmdmod_T save_cmdmod; + int cancel_shutdown = False; +--- 6617,6626 ---- + * This is our chance to ask the user if they want to save, + * or abort the logout + */ + static void + xsmp_handle_interaction(smc_conn, client_data) + SmcConn smc_conn; +! SmPointer client_data UNUSED; + { + cmdmod_T save_cmdmod; + int cancel_shutdown = False; +*************** +*** 6669,6684 **** + /* + * Callback that starts save-yourself. + */ +- /*ARGSUSED*/ + static void + xsmp_handle_save_yourself(smc_conn, client_data, save_type, + shutdown, interact_style, fast) + SmcConn smc_conn; +! SmPointer client_data; +! int save_type; + Bool shutdown; +! int interact_style; +! Bool fast; + { + /* Handle already being in saveyourself */ + if (xsmp.save_yourself) +--- 6653,6667 ---- + /* + * Callback that starts save-yourself. + */ + static void + xsmp_handle_save_yourself(smc_conn, client_data, save_type, + shutdown, interact_style, fast) + SmcConn smc_conn; +! SmPointer client_data UNUSED; +! int save_type UNUSED; + Bool shutdown; +! int interact_style UNUSED; +! Bool fast UNUSED; + { + /* Handle already being in saveyourself */ + if (xsmp.save_yourself) +*************** +*** 6712,6722 **** + /* + * Callback to warn us of imminent death. + */ +- /*ARGSUSED*/ + static void + xsmp_die(smc_conn, client_data) +! SmcConn smc_conn; +! SmPointer client_data; + { + xsmp_close(); + +--- 6695,6704 ---- + /* + * Callback to warn us of imminent death. + */ + static void + xsmp_die(smc_conn, client_data) +! SmcConn smc_conn UNUSED; +! SmPointer client_data UNUSED; + { + xsmp_close(); + +*************** +*** 6728,6738 **** + /* + * Callback to tell us that save-yourself has completed. + */ +- /*ARGSUSED*/ + static void + xsmp_save_complete(smc_conn, client_data) +! SmcConn smc_conn; +! SmPointer client_data; + { + xsmp.save_yourself = False; + } +--- 6710,6719 ---- + /* + * Callback to tell us that save-yourself has completed. + */ + static void + xsmp_save_complete(smc_conn, client_data) +! SmcConn smc_conn UNUSED; +! SmPointer client_data UNUSED; + { + xsmp.save_yourself = False; + } +*************** +*** 6742,6752 **** + * Callback to tell us that an instigated shutdown was cancelled + * (maybe even by us) + */ +- /*ARGSUSED*/ + static void + xsmp_shutdown_cancelled(smc_conn, client_data) + SmcConn smc_conn; +! SmPointer client_data; + { + if (xsmp.save_yourself) + SmcSaveYourselfDone(smc_conn, True); +--- 6723,6732 ---- + * Callback to tell us that an instigated shutdown was cancelled + * (maybe even by us) + */ + static void + xsmp_shutdown_cancelled(smc_conn, client_data) + SmcConn smc_conn; +! SmPointer client_data UNUSED; + { + if (xsmp.save_yourself) + SmcSaveYourselfDone(smc_conn, True); +*************** +*** 6758,6770 **** + /* + * Callback to tell us that a new ICE connection has been established. + */ +- /*ARGSUSED*/ + static void + xsmp_ice_connection(iceConn, clientData, opening, watchData) + IceConn iceConn; +! IcePointer clientData; + Bool opening; +! IcePointer *watchData; + { + /* Intercept creation of ICE connection fd */ + if (opening) +--- 6738,6749 ---- + /* + * Callback to tell us that a new ICE connection has been established. + */ + static void + xsmp_ice_connection(iceConn, clientData, opening, watchData) + IceConn iceConn; +! IcePointer clientData UNUSED; + Bool opening; +! IcePointer *watchData UNUSED; + { + /* Intercept creation of ICE connection fd */ + if (opening) +*** ../vim-7.2.179/src/quickfix.c 2009-05-13 18:54:14.000000000 +0200 +--- src/quickfix.c 2009-05-16 22:31:49.000000000 +0200 +*************** +*** 2240,2246 **** + * ":cclose": close the window showing the list of errors. + * ":lclose": close the window showing the location list + */ +- /*ARGSUSED*/ + void + ex_cclose(eap) + exarg_T *eap; +--- 2240,2245 ---- +*************** +*** 3211,3217 **** + break; + col = regmatch.endpos[0].col + + (col == regmatch.endpos[0].col); +! if (col > STRLEN(ml_get_buf(buf, lnum, FALSE))) + break; + } + line_breakcheck(); +--- 3210,3216 ---- + break; + col = regmatch.endpos[0].col + + (col == regmatch.endpos[0].col); +! if (col > (colnr_T)STRLEN(ml_get_buf(buf, lnum, FALSE))) + break; + } + line_breakcheck(); +*** ../vim-7.2.179/src/screen.c 2009-05-13 12:46:36.000000000 +0200 +--- src/screen.c 2009-05-16 21:51:13.000000000 +0200 +*************** +*** 270,280 **** + * Note that when also inserting/deleting lines w_redraw_top and w_redraw_bot + * may become invalid and the whole window will have to be redrawn. + */ +- /*ARGSUSED*/ + void + redrawWinline(lnum, invalid) + linenr_T lnum; +! int invalid; /* window line height is invalid now */ + { + #ifdef FEAT_FOLDING + int i; +--- 270,279 ---- + * Note that when also inserting/deleting lines w_redraw_top and w_redraw_bot + * may become invalid and the whole window will have to be redrawn. + */ + void + redrawWinline(lnum, invalid) + linenr_T lnum; +! int invalid UNUSED; /* window line height is invalid now */ + { + #ifdef FEAT_FOLDING + int i; +*************** +*** 2413,2419 **** + && (lnume < bot->lnum + || (lnume == bot->lnum + && (bot->col - (*p_sel == 'e')) +! >= STRLEN(ml_get_buf(wp->w_buffer, lnume, FALSE))))))) + { + if (VIsual_mode == Ctrl_V) + { +--- 2412,2418 ---- + && (lnume < bot->lnum + || (lnume == bot->lnum + && (bot->col - (*p_sel == 'e')) +! >= (colnr_T)STRLEN(ml_get_buf(wp->w_buffer, lnume, FALSE))))))) + { + if (VIsual_mode == Ctrl_V) + { +*************** +*** 2549,2562 **** + * + * Return the number of last row the line occupies. + */ +- /* ARGSUSED */ + static int + win_line(wp, lnum, startrow, endrow, nochange) + win_T *wp; + linenr_T lnum; + int startrow; + int endrow; +! int nochange; /* not updating for changed text */ + { + int col; /* visual column on screen */ + unsigned off; /* offset in ScreenLines/ScreenAttrs */ +--- 2548,2560 ---- + * + * Return the number of last row the line occupies. + */ + static int + win_line(wp, lnum, startrow, endrow, nochange) + win_T *wp; + linenr_T lnum; + int startrow; + int endrow; +! int nochange UNUSED; /* not updating for changed text */ + { + int col; /* visual column on screen */ + unsigned off; /* offset in ScreenLines/ScreenAttrs */ +*************** +*** 6098,6104 **** + fillchar, maxwidth, hltab, tabtab); + len = (int)STRLEN(buf); + +! while (width < maxwidth && len < sizeof(buf) - 1) + { + #ifdef FEAT_MBYTE + len += (*mb_char2bytes)(fillchar, buf + len); +--- 6096,6102 ---- + fillchar, maxwidth, hltab, tabtab); + len = (int)STRLEN(buf); + +! while (width < maxwidth && len < (int)sizeof(buf) - 1) + { + #ifdef FEAT_MBYTE + len += (*mb_char2bytes)(fillchar, buf + len); +*************** +*** 8655,8661 **** + * + * Return OK for success, FAIL if the lines are not deleted. + */ +- /*ARGSUSED*/ + int + screen_del_lines(off, row, line_count, end, force, wp) + int off; +--- 8653,8658 ---- +*************** +*** 8663,8669 **** + int line_count; + int end; + int force; /* even when line_count > p_ttyscroll */ +! win_T *wp; /* NULL or window to use width from */ + { + int j; + int i; +--- 8660,8666 ---- + int line_count; + int end; + int force; /* even when line_count > p_ttyscroll */ +! win_T *wp UNUSED; /* NULL or window to use width from */ + { + int j; + int i; +*** ../vim-7.2.179/src/search.c 2009-05-15 21:31:11.000000000 +0200 +--- src/search.c 2009-05-16 22:33:05.000000000 +0200 +*************** +*** 4527,4538 **** + * Find identifiers or defines in included files. + * if p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase. + */ +- /*ARGSUSED*/ + void + find_pattern_in_path(ptr, dir, len, whole, skip_comments, + type, count, action, start_lnum, end_lnum) + char_u *ptr; /* pointer to search pattern */ +! int dir; /* direction of expansion */ + int len; /* length of search pattern */ + int whole; /* match whole words only */ + int skip_comments; /* don't match inside comments */ +--- 4527,4537 ---- + * Find identifiers or defines in included files. + * if p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase. + */ + void + find_pattern_in_path(ptr, dir, len, whole, skip_comments, + type, count, action, start_lnum, end_lnum) + char_u *ptr; /* pointer to search pattern */ +! int dir UNUSED; /* direction of expansion */ + int len; /* length of search pattern */ + int whole; /* match whole words only */ + int skip_comments; /* don't match inside comments */ +*** ../vim-7.2.179/src/spell.c 2009-05-13 18:54:14.000000000 +0200 +--- src/spell.c 2009-05-16 22:10:19.000000000 +0200 +*************** +*** 950,957 **** + */ + #ifndef FEAT_MBYTE + /* Non-multi-byte implementation. */ +! # define SPELL_TOFOLD(c) ((c) < 256 ? spelltab.st_fold[c] : (c)) +! # define SPELL_TOUPPER(c) ((c) < 256 ? spelltab.st_upper[c] : (c)) + # define SPELL_ISUPPER(c) ((c) < 256 ? spelltab.st_isu[c] : FALSE) + #else + # if defined(HAVE_WCHAR_H) +--- 950,957 ---- + */ + #ifndef FEAT_MBYTE + /* Non-multi-byte implementation. */ +! # define SPELL_TOFOLD(c) ((c) < 256 ? (int)spelltab.st_fold[c] : (c)) +! # define SPELL_TOUPPER(c) ((c) < 256 ? (int)spelltab.st_upper[c] : (c)) + # define SPELL_ISUPPER(c) ((c) < 256 ? spelltab.st_isu[c] : FALSE) + #else + # if defined(HAVE_WCHAR_H) +*************** +*** 962,979 **** + * the "w" library function for characters above 255 if available. */ + # ifdef HAVE_TOWLOWER + # define SPELL_TOFOLD(c) (enc_utf8 && (c) >= 128 ? utf_fold(c) \ +! : (c) < 256 ? spelltab.st_fold[c] : towlower(c)) + # else + # define SPELL_TOFOLD(c) (enc_utf8 && (c) >= 128 ? utf_fold(c) \ +! : (c) < 256 ? spelltab.st_fold[c] : (c)) + # endif + + # ifdef HAVE_TOWUPPER + # define SPELL_TOUPPER(c) (enc_utf8 && (c) >= 128 ? utf_toupper(c) \ +! : (c) < 256 ? spelltab.st_upper[c] : towupper(c)) + # else + # define SPELL_TOUPPER(c) (enc_utf8 && (c) >= 128 ? utf_toupper(c) \ +! : (c) < 256 ? spelltab.st_upper[c] : (c)) + # endif + + # ifdef HAVE_ISWUPPER +--- 962,979 ---- + * the "w" library function for characters above 255 if available. */ + # ifdef HAVE_TOWLOWER + # define SPELL_TOFOLD(c) (enc_utf8 && (c) >= 128 ? utf_fold(c) \ +! : (c) < 256 ? (int)spelltab.st_fold[c] : (int)towlower(c)) + # else + # define SPELL_TOFOLD(c) (enc_utf8 && (c) >= 128 ? utf_fold(c) \ +! : (c) < 256 ? (int)spelltab.st_fold[c] : (c)) + # endif + + # ifdef HAVE_TOWUPPER + # define SPELL_TOUPPER(c) (enc_utf8 && (c) >= 128 ? utf_toupper(c) \ +! : (c) < 256 ? (int)spelltab.st_upper[c] : (int)towupper(c)) + # else + # define SPELL_TOUPPER(c) (enc_utf8 && (c) >= 128 ? utf_toupper(c) \ +! : (c) < 256 ? (int)spelltab.st_upper[c] : (c)) + # endif + + # ifdef HAVE_ISWUPPER +*************** +*** 8052,8058 **** + /* time_t can be up to 8 bytes in size, more than long_u, thus we + * can't use put_bytes() here. */ + for (i = 7; i >= 0; --i) +! if (i + 1 > sizeof(time_t)) + /* ">>" doesn't work well when shifting more bits than avail */ + putc(0, fd); + else +--- 8052,8058 ---- + /* time_t can be up to 8 bytes in size, more than long_u, thus we + * can't use put_bytes() here. */ + for (i = 7; i >= 0; --i) +! if (i + 1 > (int)sizeof(time_t)) + /* ">>" doesn't work well when shifting more bits than avail */ + putc(0, fd); + else +*************** +*** 10541,10550 **** + /* + * ":spellrepall" + */ +- /*ARGSUSED*/ + void + ex_spellrepall(eap) +! exarg_T *eap; + { + pos_T pos = curwin->w_cursor; + char_u *frompat; +--- 10541,10549 ---- + /* + * ":spellrepall" + */ + void + ex_spellrepall(eap) +! exarg_T *eap UNUSED; + { + pos_T pos = curwin->w_cursor; + char_u *frompat; +*************** +*** 15604,15613 **** + /* + * ":spellinfo" + */ +- /*ARGSUSED*/ + void + ex_spellinfo(eap) +! exarg_T *eap; + { + int lpi; + langp_T *lp; +--- 15603,15611 ---- + /* + * ":spellinfo" + */ + void + ex_spellinfo(eap) +! exarg_T *eap UNUSED; + { + int lpi; + langp_T *lp; +*************** +*** 16153,16159 **** + */ + int + expand_spelling(lnum, pat, matchp) +! linenr_T lnum; + char_u *pat; + char_u ***matchp; + { +--- 16151,16157 ---- + */ + int + expand_spelling(lnum, pat, matchp) +! linenr_T lnum UNUSED; + char_u *pat; + char_u ***matchp; + { +*** ../vim-7.2.179/src/syntax.c 2008-08-09 19:37:33.000000000 +0200 +--- src/syntax.c 2009-05-16 22:14:19.000000000 +0200 +*************** +*** 3224,3234 **** + /* + * Handle ":syntax case" command. + */ +- /* ARGSUSED */ + static void + syn_cmd_case(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + char_u *arg = eap->arg; + char_u *next; +--- 3224,3233 ---- + /* + * Handle ":syntax case" command. + */ + static void + syn_cmd_case(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + char_u *arg = eap->arg; + char_u *next; +*************** +*** 3249,3259 **** + /* + * Handle ":syntax spell" command. + */ +- /* ARGSUSED */ + static void + syn_cmd_spell(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + char_u *arg = eap->arg; + char_u *next; +--- 3248,3257 ---- + /* + * Handle ":syntax spell" command. + */ + static void + syn_cmd_spell(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + char_u *arg = eap->arg; + char_u *next; +*************** +*** 3517,3527 **** + /* + * Handle ":syntax on" command. + */ +- /* ARGSUSED */ + static void + syn_cmd_on(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + syn_cmd_onoff(eap, "syntax"); + } +--- 3515,3524 ---- + /* + * Handle ":syntax on" command. + */ + static void + syn_cmd_on(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + syn_cmd_onoff(eap, "syntax"); + } +*************** +*** 3529,3539 **** + /* + * Handle ":syntax enable" command. + */ +- /* ARGSUSED */ + static void + syn_cmd_enable(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + set_internal_string_var((char_u *)"syntax_cmd", (char_u *)"enable"); + syn_cmd_onoff(eap, "syntax"); +--- 3526,3535 ---- + /* + * Handle ":syntax enable" command. + */ + static void + syn_cmd_enable(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + set_internal_string_var((char_u *)"syntax_cmd", (char_u *)"enable"); + syn_cmd_onoff(eap, "syntax"); +*************** +*** 3543,3553 **** + /* + * Handle ":syntax reset" command. + */ +- /* ARGSUSED */ + static void + syn_cmd_reset(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + eap->nextcmd = check_nextcmd(eap->arg); + if (!eap->skip) +--- 3539,3548 ---- + /* + * Handle ":syntax reset" command. + */ + static void + syn_cmd_reset(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + eap->nextcmd = check_nextcmd(eap->arg); + if (!eap->skip) +*************** +*** 3561,3571 **** + /* + * Handle ":syntax manual" command. + */ +- /* ARGSUSED */ + static void + syn_cmd_manual(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + syn_cmd_onoff(eap, "manual"); + } +--- 3556,3565 ---- + /* + * Handle ":syntax manual" command. + */ + static void + syn_cmd_manual(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + syn_cmd_onoff(eap, "manual"); + } +*************** +*** 3573,3583 **** + /* + * Handle ":syntax off" command. + */ +- /* ARGSUSED */ + static void + syn_cmd_off(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + syn_cmd_onoff(eap, "nosyntax"); + } +--- 3567,3576 ---- + /* + * Handle ":syntax off" command. + */ + static void + syn_cmd_off(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + syn_cmd_onoff(eap, "nosyntax"); + } +*************** +*** 4461,4471 **** + /* + * Handle ":syntax include [@{group-name}] filename" command. + */ +- /* ARGSUSED */ + static void + syn_cmd_include(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + char_u *arg = eap->arg; + int sgl_id = 1; +--- 4454,4463 ---- + /* + * Handle ":syntax include [@{group-name}] filename" command. + */ + static void + syn_cmd_include(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + char_u *arg = eap->arg; + int sgl_id = 1; +*************** +*** 4532,4542 **** + /* + * Handle ":syntax keyword {group-name} [{option}] keyword .." command. + */ +- /* ARGSUSED */ + static void + syn_cmd_keyword(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + char_u *arg = eap->arg; + char_u *group_name_end; +--- 4524,4533 ---- + /* + * Handle ":syntax keyword {group-name} [{option}] keyword .." command. + */ + static void + syn_cmd_keyword(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + char_u *arg = eap->arg; + char_u *group_name_end; +*************** +*** 5275,5285 **** + * Handle ":syntax cluster {cluster-name} [contains={groupname},..] + * [add={groupname},..] [remove={groupname},..]". + */ +- /* ARGSUSED */ + static void + syn_cmd_cluster(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + char_u *arg = eap->arg; + char_u *group_name_end; +--- 5266,5275 ---- + * Handle ":syntax cluster {cluster-name} [contains={groupname},..] + * [add={groupname},..] [remove={groupname},..]". + */ + static void + syn_cmd_cluster(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + char_u *arg = eap->arg; + char_u *group_name_end; +*************** +*** 5464,5474 **** + /* + * Handle ":syntax sync .." command. + */ +- /* ARGSUSED */ + static void + syn_cmd_sync(eap, syncing) + exarg_T *eap; +! int syncing; /* not used */ + { + char_u *arg_start = eap->arg; + char_u *arg_end; +--- 5454,5463 ---- + /* + * Handle ":syntax sync .." command. + */ + static void + syn_cmd_sync(eap, syncing) + exarg_T *eap; +! int syncing UNUSED; + { + char_u *arg_start = eap->arg; + char_u *arg_end; +*************** +*** 6099,6108 **** + * Function given to ExpandGeneric() to obtain the list syntax names for + * expansion. + */ +- /*ARGSUSED*/ + char_u * + get_syntax_name(xp, idx) +! expand_T *xp; + int idx; + { + if (expand_what == EXP_SUBCMD) +--- 6088,6096 ---- + * Function given to ExpandGeneric() to obtain the list syntax names for + * expansion. + */ + char_u * + get_syntax_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + if (expand_what == EXP_SUBCMD) +*************** +*** 7744,7757 **** + /* + * Get the font or fontset for one highlight group. + */ +- /*ARGSUSED*/ + static void + hl_do_font(idx, arg, do_normal, do_menu, do_tooltip) + int idx; + char_u *arg; +! int do_normal; /* set normal font */ +! int do_menu; /* set menu font */ +! int do_tooltip; /* set tooltip font */ + { + # ifdef FEAT_XFONTSET + /* If 'guifontset' is not empty, first try using the name as a +--- 7732,7744 ---- + /* + * Get the font or fontset for one highlight group. + */ + static void + hl_do_font(idx, arg, do_normal, do_menu, do_tooltip) + int idx; + char_u *arg; +! int do_normal; /* set normal font */ +! int do_menu UNUSED; /* set menu font */ +! int do_tooltip UNUSED; /* set tooltip font */ + { + # ifdef FEAT_XFONTSET + /* If 'guifontset' is not empty, first try using the name as a +*************** +*** 9150,9159 **** + * Function given to ExpandGeneric() to obtain the list of group names. + * Also used for synIDattr() function. + */ +- /*ARGSUSED*/ + char_u * + get_highlight_name(xp, idx) +! expand_T *xp; + int idx; + { + #ifdef FEAT_CMDL_COMPL +--- 9137,9145 ---- + * Function given to ExpandGeneric() to obtain the list of group names. + * Also used for synIDattr() function. + */ + char_u * + get_highlight_name(xp, idx) +! expand_T *xp UNUSED; + int idx; + { + #ifdef FEAT_CMDL_COMPL +*** ../vim-7.2.179/src/tag.c 2009-05-15 21:31:11.000000000 +0200 +--- src/tag.c 2009-05-16 22:16:31.000000000 +0200 +*************** +*** 100,106 **** + * Tag for preview window is remembered separately, to avoid messing up the + * normal tagstack. + */ +! static taggy_T ptag_entry = {NULL}; + #endif + + /* +--- 100,106 ---- + * Tag for preview window is remembered separately, to avoid messing up the + * normal tagstack. + */ +! static taggy_T ptag_entry = {NULL, {INIT_POS_T(0, 0, 0), 0}, 0, 0}; + #endif + + /* +*************** +*** 3791,3797 **** + --end; + } + len = (int)(end - start); +! if (len > sizeof(buf) - 1) + len = sizeof(buf) - 1; + vim_strncpy(buf, start, len); + } +--- 3791,3797 ---- + --end; + } + len = (int)(end - start); +! if (len > (int)sizeof(buf) - 1) + len = sizeof(buf) - 1; + vim_strncpy(buf, start, len); + } +*** ../vim-7.2.179/src/term.c 2009-01-22 18:32:55.000000000 +0100 +--- src/term.c 2009-05-16 22:18:08.000000000 +0200 +*************** +*** 2906,2912 **** + int i; + int shift; + +! for (i = 1; i <= sizeof(long_u); i++) + { + shift = 8 * (sizeof(long_u) - i); + dst[i - 1] = (char_u) ((val >> shift) & 0xff); +--- 2906,2912 ---- + int i; + int shift; + +! for (i = 1; i <= (int)sizeof(long_u); i++) + { + shift = 8 * (sizeof(long_u) - i); + dst[i - 1] = (char_u) ((val >> shift) & 0xff); +*************** +*** 2937,2943 **** + len = get_bytes_from_buf(buf, bytes, (int)sizeof(long_u)); + if (len != -1) + { +! for (i = 0; i < sizeof(long_u); i++) + { + shift = 8 * (sizeof(long_u) - 1 - i); + *val += (long_u)bytes[i] << shift; +--- 2937,2943 ---- + len = get_bytes_from_buf(buf, bytes, (int)sizeof(long_u)); + if (len != -1) + { +! for (i = 0; i < (int)sizeof(long_u); i++) + { + shift = 8 * (sizeof(long_u) - 1 - i); + *val += (long_u)bytes[i] << shift; +*** ../vim-7.2.179/src/ui.c 2008-11-28 21:26:50.000000000 +0100 +--- src/ui.c 2009-05-16 22:33:55.000000000 +0200 +*************** +*** 320,329 **** + * The gui_set_shellsize() or mch_set_shellsize() function will try to set the + * new size. If this is not possible, it will adjust Rows and Columns. + */ +- /*ARGSUSED*/ + void + ui_set_shellsize(mustset) +! int mustset; /* set by the user */ + { + #ifdef FEAT_GUI + if (gui.in_use) +--- 320,328 ---- + * The gui_set_shellsize() or mch_set_shellsize() function will try to set the + * new size. If this is not possible, it will adjust Rows and Columns. + */ + void + ui_set_shellsize(mustset) +! int mustset UNUSED; /* set by the user */ + { + #ifdef FEAT_GUI + if (gui.in_use) +*************** +*** 1127,1136 **** + * available for pasting. + * When "both" is TRUE also copy to the '+' register. + */ +- /*ARGSUSED*/ + void + clip_copy_modeless_selection(both) +! int both; + { + char_u *buffer; + char_u *bufp; +--- 1126,1134 ---- + * available for pasting. + * When "both" is TRUE also copy to the '+' register. + */ + void + clip_copy_modeless_selection(both) +! int both UNUSED; + { + char_u *buffer; + char_u *bufp; +*************** +*** 1701,1710 **** + return (int)maxlen; + } + +- /*ARGSUSED*/ + void + fill_input_buf(exit_on_error) +! int exit_on_error; + { + #if defined(UNIX) || defined(OS2) || defined(VMS) || defined(MACOS_X_UNIX) + int len; +--- 1699,1707 ---- + return (int)maxlen; + } + + void + fill_input_buf(exit_on_error) +! int exit_on_error UNUSED; + { + #if defined(UNIX) || defined(OS2) || defined(VMS) || defined(MACOS_X_UNIX) + int len; +*************** +*** 1992,2002 **** + + static void clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *)); + +- /* ARGSUSED */ + static void + clip_x11_request_selection_cb(w, success, sel_atom, type, value, length, + format) +! Widget w; + XtPointer success; + Atom *sel_atom; + Atom *type; +--- 1989,1998 ---- + + static void clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *)); + + static void + clip_x11_request_selection_cb(w, success, sel_atom, type, value, length, + format) +! Widget w UNUSED; + XtPointer success; + Atom *sel_atom; + Atom *type; +*************** +*** 2202,2211 **** + + static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *)); + +- /* ARGSUSED */ + static Boolean + clip_x11_convert_selection_cb(w, sel_atom, target, type, value, length, format) +! Widget w; + Atom *sel_atom; + Atom *target; + Atom *type; +--- 2198,2206 ---- + + static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *)); + + static Boolean + clip_x11_convert_selection_cb(w, sel_atom, target, type, value, length, format) +! Widget w UNUSED; + Atom *sel_atom; + Atom *target; + Atom *type; +*************** +*** 2332,2341 **** + + static void clip_x11_lose_ownership_cb __ARGS((Widget, Atom *)); + +- /* ARGSUSED */ + static void + clip_x11_lose_ownership_cb(w, sel_atom) +! Widget w; + Atom *sel_atom; + { + if (*sel_atom == clip_plus.sel_atom) +--- 2327,2335 ---- + + static void clip_x11_lose_ownership_cb __ARGS((Widget, Atom *)); + + static void + clip_x11_lose_ownership_cb(w, sel_atom) +! Widget w UNUSED; + Atom *sel_atom; + { + if (*sel_atom == clip_plus.sel_atom) +*************** +*** 2368,2377 **** + * Send the current selection to the clipboard. Do nothing for X because we + * will fill in the selection only when requested by another app. + */ +- /*ARGSUSED*/ + void + clip_x11_set_selection(cbd) +! VimClipboard *cbd; + { + } + #endif +--- 2362,2370 ---- + * Send the current selection to the clipboard. Do nothing for X because we + * will fill in the selection only when requested by another app. + */ + void + clip_x11_set_selection(cbd) +! VimClipboard *cbd UNUSED; + { + } + #endif +*************** +*** 2922,2932 **** + * Find the window at screen position "*rowp" and "*colp". The positions are + * updated to become relative to the top-left of the window. + */ +- /*ARGSUSED*/ + win_T * + mouse_find_win(rowp, colp) + int *rowp; +! int *colp; + { + frame_T *fp; + +--- 2915,2924 ---- + * Find the window at screen position "*rowp" and "*colp". The positions are + * updated to become relative to the top-left of the window. + */ + win_T * + mouse_find_win(rowp, colp) + int *rowp; +! int *colp UNUSED; + { + frame_T *fp; + +*** ../vim-7.2.179/src/version.c 2009-05-16 21:16:12.000000000 +0200 +--- src/version.c 2009-05-17 13:06:38.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 180, + /**/ + +-- +Wi n0t trei a h0liday in Sweden thi yer? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.181 b/source/ap/vim/patches/7.2.181 new file mode 100644 index 000000000..bf7d5feb1 --- /dev/null +++ b/source/ap/vim/patches/7.2.181 @@ -0,0 +1,1978 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.181 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.181 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Add UNUSED and type casts. +Files: src/if_mzsch.c, src/gui.c, src/gui_gtk.c, src/gui_gtk_x11.c, + src/gui_gtk_f.c, src/gui_beval.c, src/netbeans.c + + +*** ../vim-7.2.180/src/if_mzsch.c 2007-07-06 19:43:08.000000000 +0200 +--- src/if_mzsch.c 2009-05-16 22:24:18.000000000 +0200 +*************** +*** 667,679 **** + static void CALLBACK + timer_proc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) + # elif defined(FEAT_GUI_GTK) +- /*ARGSUSED*/ + static gint +! timer_proc(gpointer data) + # elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) +- /* ARGSUSED */ + static void +! timer_proc(XtPointer timed_out, XtIntervalId *interval_id) + # elif defined(FEAT_GUI_MAC) + pascal void + timer_proc(EventLoopTimerRef theTimer, void *userData) +--- 667,677 ---- + static void CALLBACK + timer_proc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) + # elif defined(FEAT_GUI_GTK) + static gint +! timer_proc(gpointer data UNUSED) + # elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) + static void +! timer_proc(XtPointer timed_out UNUSED, XtIntervalId *interval_id UNUSED) + # elif defined(FEAT_GUI_MAC) + pascal void + timer_proc(EventLoopTimerRef theTimer, void *userData) +*** ../vim-7.2.180/src/gui.c 2008-12-03 18:50:09.000000000 +0100 +--- src/gui.c 2009-05-17 15:52:18.000000000 +0200 +*************** +*** 678,688 **** + * Return OK when able to set the font. When it failed FAIL is returned and + * the fonts are unchanged. + */ +- /*ARGSUSED*/ + int + gui_init_font(font_list, fontset) + char_u *font_list; +! int fontset; + { + #define FONTLEN 320 + char_u font_name[FONTLEN]; +--- 678,687 ---- + * Return OK when able to set the font. When it failed FAIL is returned and + * the fonts are unchanged. + */ + int + gui_init_font(font_list, fontset) + char_u *font_list; +! int fontset UNUSED; + { + #define FONTLEN 320 + char_u font_name[FONTLEN]; +*************** +*** 1138,1147 **** + * Position the various GUI components (text area, menu). The vertical + * scrollbars are NOT handled here. See gui_update_scrollbars(). + */ +- /*ARGSUSED*/ + static void + gui_position_components(total_width) +! int total_width; + { + int text_area_x; + int text_area_y; +--- 1137,1145 ---- + * Position the various GUI components (text area, menu). The vertical + * scrollbars are NOT handled here. See gui_update_scrollbars(). + */ + static void + gui_position_components(total_width) +! int total_width UNUSED; + { + int text_area_x; + int text_area_y; +*************** +*** 1374,1383 **** + * If "fit_to_display" is TRUE then the size may be reduced to fit the window + * on the screen. + */ +- /*ARGSUSED*/ + void + gui_set_shellsize(mustset, fit_to_display, direction) +! int mustset; /* set by the user */ + int fit_to_display; + int direction; /* RESIZE_HOR, RESIZE_VER */ + { +--- 1372,1380 ---- + * If "fit_to_display" is TRUE then the size may be reduced to fit the window + * on the screen. + */ + void + gui_set_shellsize(mustset, fit_to_display, direction) +! int mustset UNUSED; /* set by the user */ + int fit_to_display; + int direction; /* RESIZE_HOR, RESIZE_VER */ + { +*************** +*** 3120,3126 **** + * If "oldval" is not NULL, "oldval" is the previous value, the new value is + * in p_go. + */ +- /*ARGSUSED*/ + void + gui_init_which_components(oldval) + char_u *oldval; +--- 3117,3122 ---- +*************** +*** 4411,4417 **** + if (curwin->w_p_wrap) + return FALSE; + +! if (curwin->w_leftcol == scrollbar_value) + return FALSE; + + curwin->w_leftcol = (colnr_T)scrollbar_value; +--- 4407,4413 ---- + if (curwin->w_p_wrap) + return FALSE; + +! if ((long_u)curwin->w_leftcol == scrollbar_value) + return FALSE; + + curwin->w_leftcol = (colnr_T)scrollbar_value; +*************** +*** 4424,4430 **** + && longest_lnum < curwin->w_botline + && !virtual_active()) + { +! if (scrollbar_value > scroll_line_len(curwin->w_cursor.lnum)) + { + curwin->w_cursor.lnum = longest_lnum; + curwin->w_cursor.col = 0; +--- 4420,4426 ---- + && longest_lnum < curwin->w_botline + && !virtual_active()) + { +! if (scrollbar_value > (long_u)scroll_line_len(curwin->w_cursor.lnum)) + { + curwin->w_cursor.lnum = longest_lnum; + curwin->w_cursor.col = 0; +*************** +*** 4670,4676 **** + /* + * Find window where the mouse pointer "y" coordinate is in. + */ +- /*ARGSUSED*/ + static win_T * + xy2win(x, y) + int x; +--- 4666,4671 ---- +*************** +*** 5124,5130 **** + * of dropped files, they will be freed in this function, and caller can't use + * fnames after call this function. + */ +- /*ARGSUSED*/ + void + gui_handle_drop(x, y, modifiers, fnames, count) + int x; +--- 5119,5124 ---- +*** ../vim-7.2.180/src/gui_gtk.c 2008-07-31 22:29:28.000000000 +0200 +--- src/gui_gtk.c 2009-05-17 16:06:30.000000000 +0200 +*************** +*** 285,298 **** + return image; + } + +- /*ARGSUSED*/ + static gint +! toolbar_button_focus_in_event(GtkWidget *widget, GdkEventFocus *event, gpointer data) +! { +! /* When we're in a GtkPlug, we don't have window focus events, only widget focus. +! * To emulate stand-alone gvim, if a button gets focus (e.g., <Tab> into GtkPlug) +! * immediately pass it to mainwin. +! */ + if (gtk_socket_id != 0) + gtk_widget_grab_focus(gui.drawarea); + +--- 285,298 ---- + return image; + } + + static gint +! toolbar_button_focus_in_event(GtkWidget *widget UNUSED, +! GdkEventFocus *event UNUSED, +! gpointer data UNUSED) +! { +! /* When we're in a GtkPlug, we don't have window focus events, only widget +! * focus. To emulate stand-alone gvim, if a button gets focus (e.g., +! * <Tab> into GtkPlug) immediately pass it to mainwin. */ + if (gtk_socket_id != 0) + gtk_widget_grab_focus(gui.drawarea); + +*************** +*** 585,593 **** + gtk_menu_prepend(GTK_MENU(menu->submenu_id), menu->tearoff_handle); + } + +- /*ARGSUSED*/ + static void +! menu_item_activate(GtkWidget *widget, gpointer data) + { + gui_menu_cb((vimmenu_T *)data); + +--- 585,592 ---- + gtk_menu_prepend(GTK_MENU(menu->submenu_id), menu->tearoff_handle); + } + + static void +! menu_item_activate(GtkWidget *widget UNUSED, gpointer data) + { + gui_menu_cb((vimmenu_T *)data); + +*************** +*** 1202,1210 **** + #endif + + #ifndef USE_FILE_CHOOSER +- /*ARGSUSED*/ + static void +! browse_ok_cb(GtkWidget *widget, gpointer cbdata) + { + gui_T *vw = (gui_T *)cbdata; + +--- 1201,1208 ---- + #endif + + #ifndef USE_FILE_CHOOSER + static void +! browse_ok_cb(GtkWidget *widget UNUSED, gpointer cbdata) + { + gui_T *vw = (gui_T *)cbdata; + +*************** +*** 1218,1226 **** + gtk_main_quit(); + } + +- /*ARGSUSED*/ + static void +! browse_cancel_cb(GtkWidget *widget, gpointer cbdata) + { + gui_T *vw = (gui_T *)cbdata; + +--- 1216,1223 ---- + gtk_main_quit(); + } + + static void +! browse_cancel_cb(GtkWidget *widget UNUSED, gpointer cbdata) + { + gui_T *vw = (gui_T *)cbdata; + +*************** +*** 1234,1242 **** + gtk_main_quit(); + } + +- /*ARGSUSED*/ + static gboolean +! browse_destroy_cb(GtkWidget * widget) + { + if (gui.browse_fname != NULL) + { +--- 1231,1238 ---- + gtk_main_quit(); + } + + static gboolean +! browse_destroy_cb(GtkWidget *widget UNUSED) + { + if (gui.browse_fname != NULL) + { +*************** +*** 1262,1275 **** + * initdir initial directory, NULL for current dir + * filter not used (file name filter) + */ +- /*ARGSUSED*/ + char_u * +! gui_mch_browse(int saving, + char_u *title, + char_u *dflt, +! char_u *ext, + char_u *initdir, +! char_u *filter) + { + #ifdef USE_FILE_CHOOSER + GtkWidget *fc; +--- 1258,1270 ---- + * initdir initial directory, NULL for current dir + * filter not used (file name filter) + */ + char_u * +! gui_mch_browse(int saving UNUSED, + char_u *title, + char_u *dflt, +! char_u *ext UNUSED, + char_u *initdir, +! char_u *filter UNUSED) + { + #ifdef USE_FILE_CHOOSER + GtkWidget *fc; +*************** +*** 1377,1383 **** + * dflt default name + * initdir initial directory, NULL for current dir + */ +- /*ARGSUSED*/ + char_u * + gui_mch_browsedir( + char_u *title, +--- 1372,1377 ---- +*************** +*** 1460,1466 **** + } + + # ifdef FEAT_GUI_GNOME +- /* ARGSUSED */ + static int + gui_gnome_dialog( int type, + char_u *title, +--- 1454,1459 ---- +*************** +*** 1611,1617 **** + GtkWidget *dialog; + } CancelData; + +- /* ARGSUSED */ + static void + dlg_button_clicked(GtkWidget * widget, ButtonData *data) + { +--- 1604,1609 ---- +*************** +*** 1622,1628 **** + /* + * This makes the Escape key equivalent to the cancel button. + */ +- /*ARGSUSED*/ + static int + dlg_key_press_event(GtkWidget *widget, GdkEventKey *event, CancelData *data) + { +--- 1614,1619 ---- +*************** +*** 1655,1661 **** + gtk_main_quit(); + } + +- /* ARGSUSED */ + int + gui_mch_dialog( int type, /* type of dialog */ + char_u *title, /* title of dialog */ +--- 1646,1651 ---- +*************** +*** 2215,2221 **** + GtkDialog *dialog; /* Widget of the dialog */ + } DialogInfo; + +- /*ARGSUSED2*/ + static gboolean + dialog_key_press_event_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) + { +--- 2205,2210 ---- +*************** +*** 2398,2411 **** + * Note: The push_in output argument seems to affect scrolling of huge + * menus that don't fit on the screen. Leave it at the default for now. + */ +- /*ARGSUSED0*/ + static void +! popup_menu_position_func(GtkMenu *menu, + gint *x, gint *y, + # ifdef HAVE_GTK2 +! gboolean *push_in, + # endif +! gpointer user_data) + { + gdk_window_get_origin(gui.drawarea->window, x, y); + +--- 2387,2399 ---- + * Note: The push_in output argument seems to affect scrolling of huge + * menus that don't fit on the screen. Leave it at the default for now. + */ + static void +! popup_menu_position_func(GtkMenu *menu UNUSED, + gint *x, gint *y, + # ifdef HAVE_GTK2 +! gboolean *push_in UNUSED, + # endif +! gpointer user_data UNUSED) + { + gdk_window_get_origin(gui.drawarea->window, x, y); + +*************** +*** 2464,2476 **** + GtkWidget *all; /* 'Replace All' action button */ + } SharedFindReplace; + +! static SharedFindReplace find_widgets = { NULL, }; +! static SharedFindReplace repl_widgets = { NULL, }; + +- /* ARGSUSED */ + static int + find_key_press_event( +! GtkWidget *widget, + GdkEventKey *event, + SharedFindReplace *frdp) + { +--- 2452,2463 ---- + GtkWidget *all; /* 'Replace All' action button */ + } SharedFindReplace; + +! static SharedFindReplace find_widgets = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; +! static SharedFindReplace repl_widgets = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; + + static int + find_key_press_event( +! GtkWidget *widget UNUSED, + GdkEventKey *event, + SharedFindReplace *frdp) + { +*************** +*** 2962,2970 **** + /* + * Callback for actions of the find and replace dialogs + */ +- /*ARGSUSED*/ + static void +! find_replace_cb(GtkWidget *widget, gpointer data) + { + int flags; + char_u *find_text; +--- 2949,2956 ---- + /* + * Callback for actions of the find and replace dialogs + */ + static void +! find_replace_cb(GtkWidget *widget UNUSED, gpointer data) + { + int flags; + char_u *find_text; +*************** +*** 3010,3018 **** + } + + /* our usual callback function */ +- /*ARGSUSED*/ + static void +! entry_activate_cb(GtkWidget *widget, gpointer data) + { + gtk_widget_grab_focus(GTK_WIDGET(data)); + } +--- 2996,3003 ---- + } + + /* our usual callback function */ + static void +! entry_activate_cb(GtkWidget *widget UNUSED, gpointer data) + { + gtk_widget_grab_focus(GTK_WIDGET(data)); + } +*************** +*** 3055,3064 **** + /* + * ":helpfind" + */ +- /*ARGSUSED*/ + void + ex_helpfind(eap) +! exarg_T *eap; + { + /* This will fail when menus are not loaded. Well, it's only for + * backwards compatibility anyway. */ +--- 3040,3048 ---- + /* + * ":helpfind" + */ + void + ex_helpfind(eap) +! exarg_T *eap UNUSED; + { + /* This will fail when menus are not loaded. Well, it's only for + * backwards compatibility anyway. */ +*** ../vim-7.2.180/src/gui_gtk_x11.c 2008-11-28 21:26:50.000000000 +0100 +--- src/gui_gtk_x11.c 2009-05-17 15:53:02.000000000 +0200 +*************** +*** 619,627 **** + * Doesn't seem possible, since check_copy_area() relies on + * this information. --danielk + */ +- /*ARGSUSED*/ + static gint +! visibility_event(GtkWidget *widget, GdkEventVisibility *event, gpointer data) + { + gui.visibility = event->state; + /* +--- 625,634 ---- + * Doesn't seem possible, since check_copy_area() relies on + * this information. --danielk + */ + static gint +! visibility_event(GtkWidget *widget UNUSED, +! GdkEventVisibility *event, +! gpointer data UNUSED) + { + gui.visibility = event->state; + /* +*************** +*** 638,646 **** + /* + * Redraw the corresponding portions of the screen. + */ +- /*ARGSUSED*/ + static gint +! expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) + { + /* Skip this when the GUI isn't set up yet, will redraw later. */ + if (gui.starting) +--- 645,654 ---- + /* + * Redraw the corresponding portions of the screen. + */ + static gint +! expose_event(GtkWidget *widget UNUSED, +! GdkEventExpose *event, +! gpointer data UNUSED) + { + /* Skip this when the GUI isn't set up yet, will redraw later. */ + if (gui.starting) +*************** +*** 668,676 **** + /* + * Handle changes to the "Comm" property + */ +- /*ARGSUSED2*/ + static gint +! property_event(GtkWidget *widget, GdkEventProperty *event, gpointer data) + { + if (event->type == GDK_PROPERTY_NOTIFY + && event->state == (int)GDK_PROPERTY_NEW_VALUE +--- 676,685 ---- + /* + * Handle changes to the "Comm" property + */ + static gint +! property_event(GtkWidget *widget, +! GdkEventProperty *event, +! gpointer data UNUSED) + { + if (event->type == GDK_PROPERTY_NOTIFY + && event->state == (int)GDK_PROPERTY_NEW_VALUE +*************** +*** 740,748 **** + blink_state = BLINK_NONE; + } + +- /*ARGSUSED*/ + static gint +! blink_cb(gpointer data) + { + if (blink_state == BLINK_ON) + { +--- 749,756 ---- + blink_state = BLINK_NONE; + } + + static gint +! blink_cb(gpointer data UNUSED) + { + if (blink_state == BLINK_ON) + { +*************** +*** 781,789 **** + } + } + +- /*ARGSUSED*/ + static gint +! enter_notify_event(GtkWidget *widget, GdkEventCrossing *event, gpointer data) + { + if (blink_state == BLINK_NONE) + gui_mch_start_blink(); +--- 789,798 ---- + } + } + + static gint +! enter_notify_event(GtkWidget *widget UNUSED, +! GdkEventCrossing *event UNUSED, +! gpointer data UNUSED) + { + if (blink_state == BLINK_NONE) + gui_mch_start_blink(); +*************** +*** 795,803 **** + return FALSE; + } + +- /*ARGSUSED*/ + static gint +! leave_notify_event(GtkWidget *widget, GdkEventCrossing *event, gpointer data) + { + if (blink_state != BLINK_NONE) + gui_mch_stop_blink(); +--- 804,813 ---- + return FALSE; + } + + static gint +! leave_notify_event(GtkWidget *widget UNUSED, +! GdkEventCrossing *event UNUSED, +! gpointer data UNUSED) + { + if (blink_state != BLINK_NONE) + gui_mch_stop_blink(); +*************** +*** 805,813 **** + return FALSE; + } + +- /*ARGSUSED*/ + static gint +! focus_in_event(GtkWidget *widget, GdkEventFocus *event, gpointer data) + { + gui_focus_change(TRUE); + +--- 815,824 ---- + return FALSE; + } + + static gint +! focus_in_event(GtkWidget *widget, +! GdkEventFocus *event UNUSED, +! gpointer data UNUSED) + { + gui_focus_change(TRUE); + +*************** +*** 826,834 **** + return TRUE; + } + +- /*ARGSUSED*/ + static gint +! focus_out_event(GtkWidget *widget, GdkEventFocus *event, gpointer data) + { + gui_focus_change(FALSE); + +--- 837,846 ---- + return TRUE; + } + + static gint +! focus_out_event(GtkWidget *widget UNUSED, +! GdkEventFocus *event UNUSED, +! gpointer data UNUSED) + { + gui_focus_change(FALSE); + +*************** +*** 956,964 **** + /* + * Main keyboard handler: + */ +- /*ARGSUSED*/ + static gint +! key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data) + { + #ifdef HAVE_GTK2 + /* 256 bytes is way over the top, but for safety let's reduce it only +--- 968,977 ---- + /* + * Main keyboard handler: + */ + static gint +! key_press_event(GtkWidget *widget UNUSED, +! GdkEventKey *event, +! gpointer data UNUSED) + { + #ifdef HAVE_GTK2 + /* 256 bytes is way over the top, but for safety let's reduce it only +*************** +*** 1225,1233 **** + } + + #if defined(FEAT_XIM) && defined(HAVE_GTK2) +- /*ARGSUSED0*/ + static gboolean +! key_release_event(GtkWidget *widget, GdkEventKey *event, gpointer data) + { + /* + * GTK+ 2 input methods may do fancy stuff on key release events too. +--- 1238,1247 ---- + } + + #if defined(FEAT_XIM) && defined(HAVE_GTK2) + static gboolean +! key_release_event(GtkWidget *widget UNUSED, +! GdkEventKey *event, +! gpointer data UNUSED) + { + /* + * GTK+ 2 input methods may do fancy stuff on key release events too. +*************** +*** 1243,1253 **** + * Selection handlers: + */ + +- /*ARGSUSED*/ + static gint +! selection_clear_event(GtkWidget *widget, + GdkEventSelection *event, +! gpointer user_data) + { + if (event->selection == clip_plus.gtk_sel_atom) + clip_lose_selection(&clip_plus); +--- 1257,1266 ---- + * Selection handlers: + */ + + static gint +! selection_clear_event(GtkWidget *widget UNUSED, + GdkEventSelection *event, +! gpointer user_data UNUSED) + { + if (event->selection == clip_plus.gtk_sel_atom) + clip_lose_selection(&clip_plus); +*************** +*** 1265,1276 **** + #define RS_FAIL 2 /* selection_received_cb() called and failed */ + static int received_selection = RS_NONE; + +- /*ARGSUSED*/ + static void +! selection_received_cb(GtkWidget *widget, + GtkSelectionData *data, +! guint time_, +! gpointer user_data) + { + VimClipboard *cbd; + char_u *text; +--- 1278,1288 ---- + #define RS_FAIL 2 /* selection_received_cb() called and failed */ + static int received_selection = RS_NONE; + + static void +! selection_received_cb(GtkWidget *widget UNUSED, + GtkSelectionData *data, +! guint time_ UNUSED, +! gpointer user_data UNUSED) + { + VimClipboard *cbd; + char_u *text; +*************** +*** 1414,1426 **** + * Prepare our selection data for passing it to the external selection + * client. + */ +- /*ARGSUSED*/ + static void +! selection_get_cb(GtkWidget *widget, + GtkSelectionData *selection_data, + guint info, +! guint time_, +! gpointer user_data) + { + char_u *string; + char_u *tmpbuf; +--- 1426,1437 ---- + * Prepare our selection data for passing it to the external selection + * client. + */ + static void +! selection_get_cb(GtkWidget *widget UNUSED, + GtkSelectionData *selection_data, + guint info, +! guint time_ UNUSED, +! gpointer user_data UNUSED) + { + char_u *string; + char_u *tmpbuf; +*************** +*** 1678,1684 **** + + offshoot = dx > dy ? dx : dy; + +! /* Make a linearly declaying timer delay with a threshold of 5 at a + * distance of 127 pixels from the main window. + * + * One could think endlessly about the most ergonomic variant here. +--- 1689,1695 ---- + + offshoot = dx > dy ? dx : dy; + +! /* Make a linearly decaying timer delay with a threshold of 5 at a + * distance of 127 pixels from the main window. + * + * One could think endlessly about the most ergonomic variant here. +*************** +*** 1707,1715 **** + /* + * Timer used to recognize multiple clicks of the mouse button. + */ +- /*ARGSUSED0*/ + static gint +! motion_repeat_timer_cb(gpointer data) + { + int x; + int y; +--- 1718,1725 ---- + /* + * Timer used to recognize multiple clicks of the mouse button. + */ + static gint +! motion_repeat_timer_cb(gpointer data UNUSED) + { + int x; + int y; +*************** +*** 1749,1757 **** + return FALSE; + } + +- /*ARGSUSED2*/ + static gint +! motion_notify_event(GtkWidget *widget, GdkEventMotion *event, gpointer data) + { + if (event->is_hint) + { +--- 1759,1768 ---- + return FALSE; + } + + static gint +! motion_notify_event(GtkWidget *widget, +! GdkEventMotion *event, +! gpointer data UNUSED) + { + if (event->is_hint) + { +*************** +*** 1777,1785 **** + * by our own timeout mechanism instead of the one provided by GTK+ itself. + * This is due to the way the generic VIM code is recognizing multiple clicks. + */ +- /*ARGSUSED2*/ + static gint +! button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data) + { + int button; + int repeated_click = FALSE; +--- 1788,1797 ---- + * by our own timeout mechanism instead of the one provided by GTK+ itself. + * This is due to the way the generic VIM code is recognizing multiple clicks. + */ + static gint +! button_press_event(GtkWidget *widget, +! GdkEventButton *event, +! gpointer data UNUSED) + { + int button; + int repeated_click = FALSE; +*************** +*** 1855,1863 **** + * GTK+ 2 doesn't handle mouse buttons 4, 5, 6 and 7 the same way as GTK+ 1. + * Instead, it abstracts scrolling via the new GdkEventScroll. + */ +- /*ARGSUSED2*/ + static gboolean +! scroll_event(GtkWidget *widget, GdkEventScroll *event, gpointer data) + { + int button; + int_u vim_modifiers; +--- 1867,1876 ---- + * GTK+ 2 doesn't handle mouse buttons 4, 5, 6 and 7 the same way as GTK+ 1. + * Instead, it abstracts scrolling via the new GdkEventScroll. + */ + static gboolean +! scroll_event(GtkWidget *widget, +! GdkEventScroll *event, +! gpointer data UNUSED) + { + int button; + int_u vim_modifiers; +*************** +*** 1896,1904 **** + #endif /* HAVE_GTK2 */ + + +- /*ARGSUSED*/ + static gint +! button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer data) + { + int x, y; + int_u vim_modifiers; +--- 1909,1918 ---- + #endif /* HAVE_GTK2 */ + + + static gint +! button_release_event(GtkWidget *widget UNUSED, +! GdkEventButton *event, +! gpointer data UNUSED) + { + int x, y; + int_u vim_modifiers; +*************** +*** 2100,2106 **** + /* + * DND receiver. + */ +- /*ARGSUSED2*/ + static void + drag_data_received_cb(GtkWidget *widget, + GdkDragContext *context, +--- 2114,2119 ---- +*************** +*** 2109,2115 **** + GtkSelectionData *data, + guint info, + guint time_, +! gpointer user_data) + { + GdkModifierType state; + +--- 2122,2128 ---- + GtkSelectionData *data, + guint info, + guint time_, +! gpointer user_data UNUSED) + { + GdkModifierType state; + +*************** +*** 2143,2149 **** + * be abandoned and pop up a dialog asking the user for confirmation if + * necessary. + */ +- /*ARGSUSED0*/ + static void + sm_client_check_changed_any(GnomeClient *client, + gint key, +--- 2156,2161 ---- +*************** +*** 2251,2257 **** + * for confirmation if necessary. Save the current editing session and tell + * the session manager how to restart Vim. + */ +- /*ARGSUSED1*/ + static gboolean + sm_client_save_yourself(GnomeClient *client, + gint phase, +--- 2263,2268 ---- +*************** +*** 2339,2345 **** + * here since "save_yourself" has been emitted before (unless serious trouble + * is happening). + */ +- /*ARGSUSED0*/ + static void + sm_client_die(GnomeClient *client, gpointer data) + { +--- 2350,2355 ---- +*************** +*** 2379,2388 **** + /* + * GTK tells us that XSMP needs attention + */ +- /*ARGSUSED*/ + static gboolean + local_xsmp_handle_requests(source, condition, data) +! GIOChannel *source; + GIOCondition condition; + gpointer data; + { +--- 2389,2397 ---- + /* + * GTK tells us that XSMP needs attention + */ + static gboolean + local_xsmp_handle_requests(source, condition, data) +! GIOChannel *source UNUSED; + GIOCondition condition; + gpointer data; + { +*************** +*** 2480,2495 **** + * WM_SAVE_YOURSELF hack it actually stores the session... And yes, + * it should work with KDE as well. + */ +- /*ARGSUSED1*/ + static GdkFilterReturn +! global_event_filter(GdkXEvent *xev, GdkEvent *event, gpointer data) + { + XEvent *xevent = (XEvent *)xev; + + if (xevent != NULL + && xevent->type == ClientMessage + && xevent->xclient.message_type == GET_X_ATOM(wm_protocols_atom) +! && xevent->xclient.data.l[0] == GET_X_ATOM(save_yourself_atom)) + { + out_flush(); + ml_sync_all(FALSE, FALSE); /* preserve all swap files */ +--- 2489,2506 ---- + * WM_SAVE_YOURSELF hack it actually stores the session... And yes, + * it should work with KDE as well. + */ + static GdkFilterReturn +! global_event_filter(GdkXEvent *xev, +! GdkEvent *event UNUSED, +! gpointer data UNUSED) + { + XEvent *xevent = (XEvent *)xev; + + if (xevent != NULL + && xevent->type == ClientMessage + && xevent->xclient.message_type == GET_X_ATOM(wm_protocols_atom) +! && (long_u)xevent->xclient.data.l[0] +! == GET_X_ATOM(save_yourself_atom)) + { + out_flush(); + ml_sync_all(FALSE, FALSE); /* preserve all swap files */ +*************** +*** 2512,2518 **** + /* + * GDK handler for X ClientMessage events. + */ +- /*ARGSUSED2*/ + static GdkFilterReturn + gdk_wm_protocols_filter(GdkXEvent *xev, GdkEvent *event, gpointer data) + { +--- 2523,2528 ---- +*************** +*** 2558,2566 **** + /* + * Setup the window icon & xcmdsrv comm after the main window has been realized. + */ +- /*ARGSUSED*/ + static void +! mainwin_realize(GtkWidget *widget, gpointer data) + { + /* If you get an error message here, you still need to unpack the runtime + * archive! */ +--- 2568,2575 ---- + /* + * Setup the window icon & xcmdsrv comm after the main window has been realized. + */ + static void +! mainwin_realize(GtkWidget *widget UNUSED, gpointer data UNUSED) + { + /* If you get an error message here, you still need to unpack the runtime + * archive! */ +*************** +*** 2712,2722 **** + } + + #ifdef HAVE_GTK_MULTIHEAD +- /*ARGSUSED1*/ + static void + mainwin_screen_changed_cb(GtkWidget *widget, +! GdkScreen *previous_screen, +! gpointer data) + { + if (!gtk_widget_has_screen(widget)) + return; +--- 2721,2730 ---- + } + + #ifdef HAVE_GTK_MULTIHEAD + static void + mainwin_screen_changed_cb(GtkWidget *widget, +! GdkScreen *previous_screen UNUSED, +! gpointer data UNUSED) + { + if (!gtk_widget_has_screen(widget)) + return; +*************** +*** 2757,2765 **** + * Don't try to set any VIM scrollbar sizes anywhere here. I'm relying on the + * fact that the main VIM engine doesn't take them into account anywhere. + */ +- /*ARGSUSED1*/ + static void +! drawarea_realize_cb(GtkWidget *widget, gpointer data) + { + GtkWidget *sbar; + +--- 2765,2772 ---- + * Don't try to set any VIM scrollbar sizes anywhere here. I'm relying on the + * fact that the main VIM engine doesn't take them into account anywhere. + */ + static void +! drawarea_realize_cb(GtkWidget *widget, gpointer data UNUSED) + { + GtkWidget *sbar; + +*************** +*** 2789,2797 **** + /* + * Properly clean up on shutdown. + */ +- /*ARGSUSED0*/ + static void +! drawarea_unrealize_cb(GtkWidget *widget, gpointer data) + { + /* Don't write messages to the GUI anymore */ + full_screen = FALSE; +--- 2796,2803 ---- + /* + * Properly clean up on shutdown. + */ + static void +! drawarea_unrealize_cb(GtkWidget *widget UNUSED, gpointer data UNUSED) + { + /* Don't write messages to the GUI anymore */ + full_screen = FALSE; +*************** +*** 2827,2837 **** + #endif + } + +- /*ARGSUSED0*/ + static void +! drawarea_style_set_cb(GtkWidget *widget, +! GtkStyle *previous_style, +! gpointer data) + { + gui_mch_new_colors(); + } +--- 2833,2842 ---- + #endif + } + + static void +! drawarea_style_set_cb(GtkWidget *widget UNUSED, +! GtkStyle *previous_style UNUSED, +! gpointer data UNUSED) + { + gui_mch_new_colors(); + } +*************** +*** 2840,2848 **** + * Callback routine for the "delete_event" signal on the toplevel window. + * Tries to vim gracefully, or refuses to exit with changed buffers. + */ +- /*ARGSUSED*/ + static gint +! delete_event_cb(GtkWidget *widget, GdkEventAny *event, gpointer data) + { + gui_shell_closed(); + return TRUE; +--- 2845,2854 ---- + * Callback routine for the "delete_event" signal on the toplevel window. + * Tries to vim gracefully, or refuses to exit with changed buffers. + */ + static gint +! delete_event_cb(GtkWidget *widget UNUSED, +! GdkEventAny *event UNUSED, +! gpointer data UNUSED) + { + gui_shell_closed(); + return TRUE; +*************** +*** 2964,2970 **** + + /* At start-up, don't try to set the hints until the initial + * values have been used (those that dictate our initial size) +! * Let forced (i.e., correct) values thruogh always. + */ + if (!(force_width && force_height) && init_window_hints_state > 0) + { +--- 2970,2976 ---- + + /* At start-up, don't try to set the hints until the initial + * values have been used (those that dictate our initial size) +! * Let forced (i.e., correct) values through always. + */ + if (!(force_width && force_height) && init_window_hints_state > 0) + { +*************** +*** 3142,3150 **** + /* + * Handle selecting an item in the tab line popup menu. + */ +- /*ARGSUSED*/ + static void +! tabline_menu_handler(GtkMenuItem *item, gpointer user_data) + { + /* Add the string cmd into input buffer */ + send_tabline_menu_event(clicked_page, (int)(long)user_data); +--- 3148,3155 ---- + /* + * Handle selecting an item in the tab line popup menu. + */ + static void +! tabline_menu_handler(GtkMenuItem *item UNUSED, gpointer user_data) + { + /* Add the string cmd into input buffer */ + send_tabline_menu_event(clicked_page, (int)(long)user_data); +*************** +*** 3244,3256 **** + /* + * Handle selecting one of the tabs. + */ +- /*ARGSUSED*/ + static void + on_select_tab( +! GtkNotebook *notebook, +! GtkNotebookPage *page, + gint idx, +! gpointer data) + { + if (!ignore_tabline_evt) + { +--- 3249,3260 ---- + /* + * Handle selecting one of the tabs. + */ + static void + on_select_tab( +! GtkNotebook *notebook UNUSED, +! GtkNotebookPage *page UNUSED, + gint idx, +! gpointer data UNUSED) + { + if (!ignore_tabline_evt) + { +*************** +*** 3784,3790 **** + #endif + + if (gtk_socket_id != 0) +! /* make sure keybord input can go to the drawarea */ + GTK_WIDGET_SET_FLAGS(gui.drawarea, GTK_CAN_FOCUS); + + /* +--- 3788,3794 ---- + #endif + + if (gtk_socket_id != 0) +! /* make sure keyboard input can go to the drawarea */ + GTK_WIDGET_SET_FLAGS(gui.drawarea, GTK_CAN_FOCUS); + + /* +*************** +*** 3922,3931 **** + /* + * This signal informs us about the need to rearrange our sub-widgets. + */ +- /*ARGSUSED*/ + static gint +! form_configure_event(GtkWidget *widget, GdkEventConfigure *event, +! gpointer data) + { + int usable_height = event->height; + +--- 3926,3935 ---- + /* + * This signal informs us about the need to rearrange our sub-widgets. + */ + static gint +! form_configure_event(GtkWidget *widget UNUSED, +! GdkEventConfigure *event, +! gpointer data UNUSED) + { + int usable_height = event->height; + +*************** +*** 3948,3956 **** + * We can't do much more here than to trying to preserve what had been done, + * since the window is already inevitably going away. + */ +- /*ARGSUSED0*/ + static void +! mainwin_destroy_cb(GtkObject *object, gpointer data) + { + /* Don't write messages to the GUI anymore */ + full_screen = FALSE; +--- 3952,3959 ---- + * We can't do much more here than to trying to preserve what had been done, + * since the window is already inevitably going away. + */ + static void +! mainwin_destroy_cb(GtkObject *object UNUSED, gpointer data UNUSED) + { + /* Don't write messages to the GUI anymore */ + full_screen = FALSE; +*************** +*** 3980,3988 **** + * scrollbar init.), actually do the standard hinst and stop the timer. + * We'll not let the default hints be set while this timer's active. + */ +- /*ARGSUSED*/ + static gboolean +! check_startup_plug_hints(gpointer data) + { + if (init_window_hints_state == 1) + { +--- 3983,3990 ---- + * scrollbar init.), actually do the standard hinst and stop the timer. + * We'll not let the default hints be set while this timer's active. + */ + static gboolean +! check_startup_plug_hints(gpointer data UNUSED) + { + if (init_window_hints_state == 1) + { +*************** +*** 4055,4061 **** + Columns = w; + if (mask & HeightValue) + { +! if (p_window > h - 1 || !option_was_set((char_u *)"window")) + p_window = h - 1; + Rows = h; + } +--- 4057,4063 ---- + Columns = w; + if (mask & HeightValue) + { +! if (p_window > (long)h - 1 || !option_was_set((char_u *)"window")) + p_window = h - 1; + Rows = h; + } +*************** +*** 4229,4237 **** + } + + +- /*ARGSUSED0*/ + void +! gui_mch_exit(int rc) + { + if (gui.mainwin != NULL) + gtk_widget_destroy(gui.mainwin); +--- 4231,4238 ---- + } + + + void +! gui_mch_exit(int rc UNUSED) + { + if (gui.mainwin != NULL) + gtk_widget_destroy(gui.mainwin); +*************** +*** 4286,4292 **** + * report the new size through form_configure_event(). That caused the window + * layout to be messed up. + */ +- /*ARGSUSED0*/ + static gboolean + force_shell_resize_idle(gpointer data) + { +--- 4287,4292 ---- +*************** +*** 4314,4325 **** + /* + * Set the windows size. + */ +- /*ARGSUSED2*/ + void + gui_mch_set_shellsize(int width, int height, +! int min_width, int min_height, +! int base_width, int base_height, +! int direction) + { + #ifndef HAVE_GTK2 + /* Hack: When the form already is at the desired size, the window might +--- 4314,4324 ---- + /* + * Set the windows size. + */ + void + gui_mch_set_shellsize(int width, int height, +! int min_width UNUSED, int min_height UNUSED, +! int base_width UNUSED, int base_height UNUSED, +! int direction UNUSED) + { + #ifndef HAVE_GTK2 + /* Hack: When the form already is at the desired size, the window might +*************** +*** 4413,4421 **** + } + + #if defined(FEAT_TITLE) || defined(PROTO) +- /*ARGSUSED*/ + void +! gui_mch_settitle(char_u *title, char_u *icon) + { + # ifdef HAVE_GTK2 + if (title != NULL && output_conv.vc_type != CONV_NONE) +--- 4412,4419 ---- + } + + #if defined(FEAT_TITLE) || defined(PROTO) + void +! gui_mch_settitle(char_u *title, char_u *icon UNUSED) + { + # ifdef HAVE_GTK2 + if (title != NULL && output_conv.vc_type != CONV_NONE) +*************** +*** 4493,4499 **** + * Get a font structure for highlighting. + * "cbdata" is a pointer to the global gui structure. + */ +- /*ARGSUSED*/ + static void + font_sel_ok(GtkWidget *wgt, gpointer cbdata) + { +--- 4491,4496 ---- +*************** +*** 4509,4515 **** + gtk_main_quit(); + } + +- /*ARGSUSED*/ + static void + font_sel_cancel(GtkWidget *wgt, gpointer cbdata) + { +--- 4506,4511 ---- +*************** +*** 4520,4526 **** + gtk_main_quit(); + } + +- /*ARGSUSED*/ + static void + font_sel_destroy(GtkWidget *wgt, gpointer cbdata) + { +--- 4516,4521 ---- +*************** +*** 4620,4626 **** + /* + * Try to load the requested fontset. + */ +- /*ARGSUSED2*/ + GuiFontset + gui_mch_get_fontset(char_u *name, int report_error, int fixed_width) + { +--- 4615,4620 ---- +*************** +*** 4863,4869 **** + styled_font[1] = &gui.ital_font; + styled_font[2] = &gui.boldital_font; + +! /* First free whatever was freviously there. */ + for (i = 0; i < 3; ++i) + if (*styled_font[i]) + { +--- 4857,4863 ---- + styled_font[1] = &gui.ital_font; + styled_font[2] = &gui.boldital_font; + +! /* First free whatever was previously there. */ + for (i = 0; i < 3; ++i) + if (*styled_font[i]) + { +*************** +*** 5012,5020 **** + * Initialize Vim to use the font or fontset with the given name. + * Return FAIL if the font could not be loaded, OK otherwise. + */ +- /*ARGSUSED1*/ + int +! gui_mch_init_font(char_u *font_name, int fontset) + { + #ifdef HAVE_GTK2 + PangoFontDescription *font_desc; +--- 5006,5013 ---- + * Initialize Vim to use the font or fontset with the given name. + * Return FAIL if the font could not be loaded, OK otherwise. + */ + int +! gui_mch_init_font(char_u *font_name, int fontset UNUSED) + { + #ifdef HAVE_GTK2 + PangoFontDescription *font_desc; +*************** +*** 5326,5334 **** + /* + * Return the name of font "font" in allocated memory. + */ +- /*ARGSUSED*/ + char_u * +! gui_mch_get_fontname(GuiFont font, char_u *name) + { + # ifdef HAVE_GTK2 + if (font != NOFONT) +--- 5319,5326 ---- + /* + * Return the name of font "font" in allocated memory. + */ + char_u * +! gui_mch_get_fontname(GuiFont font, char_u *name UNUSED) + { + # ifdef HAVE_GTK2 + if (font != NOFONT) +*************** +*** 5732,5738 **** + { + int i; + int offset; +! const static int val[8] = {1, 0, 0, 0, 1, 2, 2, 2 }; + int y = FILL_Y(row + 1) - 1; + + /* Undercurl: draw curl at the bottom of the character cell. */ +--- 5724,5730 ---- + { + int i; + int offset; +! static const int val[8] = {1, 0, 0, 0, 1, 2, 2, 2 }; + int y = FILL_Y(row + 1) - 1; + + /* Undercurl: draw curl at the bottom of the character cell. */ +*************** +*** 6402,6408 **** + /* + * Callback function, used when data is available on the SNiFF connection. + */ +- /* ARGSUSED */ + static void + sniff_request_cb( + gpointer data, +--- 6394,6399 ---- +*************** +*** 6711,6719 **** + /* + * Disown the selection. + */ +- /*ARGSUSED*/ + void +! clip_mch_lose_selection(VimClipboard *cbd) + { + /* WEIRD: when using NULL to actually disown the selection, we lose the + * selection the first time we own it. */ +--- 6702,6709 ---- + /* + * Disown the selection. + */ + void +! clip_mch_lose_selection(VimClipboard *cbd UNUSED) + { + /* WEIRD: when using NULL to actually disown the selection, we lose the + * selection the first time we own it. */ +*************** +*** 6741,6749 **** + * Send the current selection to the clipboard. Do nothing for X because we + * will fill in the selection only when requested by another app. + */ +- /*ARGSUSED*/ + void +! clip_mch_set_selection(VimClipboard *cbd) + { + } + +--- 6731,6738 ---- + * Send the current selection to the clipboard. Do nothing for X because we + * will fill in the selection only when requested by another app. + */ + void +! clip_mch_set_selection(VimClipboard *cbd UNUSED) + { + } + +*************** +*** 6950,6956 **** + else + id &= ~1; /* they are always even (why?) */ + } +! else if (shape < sizeof(mshape_ids) / sizeof(int)) + id = mshape_ids[shape]; + else + return; +--- 6939,6945 ---- + else + id &= ~1; /* they are always even (why?) */ + } +! else if (shape < (int)(sizeof(mshape_ids) / sizeof(int))) + id = mshape_ids[shape]; + else + return; +*** ../vim-7.2.180/src/gui_gtk_f.c 2007-05-10 19:50:33.000000000 +0200 +--- src/gui_gtk_f.c 2009-05-17 15:48:51.000000000 +0200 +*************** +*** 227,240 **** + + if (!form_type) + { +! GtkTypeInfo form_info = +! { +! "GtkForm", +! sizeof(GtkForm), +! sizeof(GtkFormClass), +! (GtkClassInitFunc) gtk_form_class_init, +! (GtkObjectInitFunc) gtk_form_init +! }; + + form_type = gtk_type_unique(GTK_TYPE_CONTAINER, &form_info); + } +--- 227,239 ---- + + if (!form_type) + { +! GtkTypeInfo form_info; +! +! form_info.type_name = "GtkForm"; +! form_info.object_size = sizeof(GtkForm); +! form_info.class_size = sizeof(GtkFormClass); +! form_info.class_init_func = (GtkClassInitFunc)gtk_form_class_init; +! form_info.object_init_func = (GtkObjectInitFunc)gtk_form_init; + + form_type = gtk_type_unique(GTK_TYPE_CONTAINER, &form_info); + } +*************** +*** 611,620 **** + } + } + +- /*ARGSUSED1*/ + static void + gtk_form_forall(GtkContainer *container, +! gboolean include_internals, + GtkCallback callback, + gpointer callback_data) + { +--- 610,618 ---- + } + } + + static void + gtk_form_forall(GtkContainer *container, +! gboolean include_internals UNUSED, + GtkCallback callback, + gpointer callback_data) + { +*************** +*** 786,794 **** + * them or discards them, depending on whether we are obscured + * or not. + */ +- /*ARGSUSED1*/ + static GdkFilterReturn +! gtk_form_filter(GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) + { + XEvent *xevent; + GtkForm *form; +--- 784,791 ---- + * them or discards them, depending on whether we are obscured + * or not. + */ + static GdkFilterReturn +! gtk_form_filter(GdkXEvent *gdk_xevent, GdkEvent *event UNUSED, gpointer data) + { + XEvent *xevent; + GtkForm *form; +*************** +*** 821,829 **** + * there is no corresponding event in GTK, so we have + * to get the events from a filter + */ +- /*ARGSUSED1*/ + static GdkFilterReturn +! gtk_form_main_filter(GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) + { + XEvent *xevent; + GtkForm *form; +--- 818,827 ---- + * there is no corresponding event in GTK, so we have + * to get the events from a filter + */ + static GdkFilterReturn +! gtk_form_main_filter(GdkXEvent *gdk_xevent, +! GdkEvent *event UNUSED, +! gpointer data) + { + XEvent *xevent; + GtkForm *form; +*************** +*** 911,919 **** + #endif + } + +- /*ARGSUSED0*/ + static void +! gtk_form_child_map(GtkWidget *widget, gpointer user_data) + { + GtkFormChild *child; + +--- 909,916 ---- + #endif + } + + static void +! gtk_form_child_map(GtkWidget *widget UNUSED, gpointer user_data) + { + GtkFormChild *child; + +*************** +*** 923,931 **** + gdk_window_show(child->window); + } + +- /*ARGSUSED0*/ + static void +! gtk_form_child_unmap(GtkWidget *widget, gpointer user_data) + { + GtkFormChild *child; + +--- 920,927 ---- + gdk_window_show(child->window); + } + + static void +! gtk_form_child_unmap(GtkWidget *widget UNUSED, gpointer user_data) + { + GtkFormChild *child; + +*** ../vim-7.2.180/src/gui_beval.c 2009-03-18 12:20:35.000000000 +0100 +--- src/gui_beval.c 2009-05-17 15:53:22.000000000 +0200 +*************** +*** 15,21 **** + /* + * Common code, invoked when the mouse is resting for a moment. + */ +- /*ARGSUSED*/ + void + general_beval_cb(beval, state) + BalloonEval *beval; +--- 15,20 ---- +*************** +*** 551,559 **** + return FALSE; /* continue emission */ + } + +- /*ARGSUSED*/ + static gint +! mainwin_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data) + { + BalloonEval *beval = (BalloonEval *)data; + +--- 550,557 ---- + return FALSE; /* continue emission */ + } + + static gint +! mainwin_event_cb(GtkWidget *widget UNUSED, GdkEvent *event, gpointer data) + { + BalloonEval *beval = (BalloonEval *)data; + +*************** +*** 663,671 **** + return FALSE; /* don't call me again */ + } + +- /*ARGSUSED2*/ + static gint +! balloon_expose_event_cb(GtkWidget *widget, GdkEventExpose *event, gpointer data) + { + gtk_paint_flat_box(widget->style, widget->window, + GTK_STATE_NORMAL, GTK_SHADOW_OUT, +--- 661,670 ---- + return FALSE; /* don't call me again */ + } + + static gint +! balloon_expose_event_cb(GtkWidget *widget, +! GdkEventExpose *event, +! gpointer data UNUSED) + { + gtk_paint_flat_box(widget->style, widget->window, + GTK_STATE_NORMAL, GTK_SHADOW_OUT, +*************** +*** 676,682 **** + } + + # ifndef HAVE_GTK2 +- /*ARGSUSED2*/ + static void + balloon_draw_cb(GtkWidget *widget, GdkRectangle *area, gpointer data) + { +--- 675,680 ---- +*************** +*** 726,732 **** + /* + * The X event handler. All it does is call the real event handler. + */ +- /*ARGSUSED*/ + static void + pointerEventEH(w, client_data, event, unused) + Widget w; +--- 724,729 ---- +*************** +*** 877,883 **** + } + } + +- /*ARGSUSED*/ + static void + timerRoutine(dx, id) + XtPointer dx; +--- 874,879 ---- +*** ../vim-7.2.180/src/netbeans.c 2009-02-21 22:12:43.000000000 +0100 +--- src/netbeans.c 2009-05-17 15:51:14.000000000 +0200 +*************** +*** 700,706 **** + /* + * Read and process a command from netbeans. + */ +- /*ARGSUSED*/ + #if defined(FEAT_GUI_W32) || defined(PROTO) + /* Use this one when generating prototypes, the others are static. */ + void +--- 700,705 ---- +*************** +*** 708,719 **** + #else + # ifdef FEAT_GUI_MOTIF + static void +! messageFromNetbeans(XtPointer clientData, int *unused1, XtInputId *unused2) + # endif + # ifdef FEAT_GUI_GTK + static void +! messageFromNetbeans(gpointer clientData, gint unused1, +! GdkInputCondition unused2) + # endif + #endif + { +--- 707,721 ---- + #else + # ifdef FEAT_GUI_MOTIF + static void +! messageFromNetbeans(XtPointer clientData UNUSED +! int *unused1 UNUSED, +! XtInputId *unused2 UNUSED) + # endif + # ifdef FEAT_GUI_GTK + static void +! messageFromNetbeans(gpointer clientData UNUSED, +! gint unused1 UNUSED, +! GdkInputCondition unused2 UNUSED) + # endif + #endif + { +*************** +*** 1585,1591 **** +--- 1587,1595 ---- + buf_delsign(buf->bufp, id); + } + else ++ { + nbdebug((" No sign on line %d\n", i)); ++ } + } + + nbdebug((" Deleting lines %d through %d\n", del_from_lnum, del_to_lnum)); +*************** +*** 2144,2150 **** +--- 2148,2156 ---- + #endif + } + else ++ { + nbdebug((" BAD POSITION in setDot: %s\n", s)); ++ } + + /* gui_update_cursor(TRUE, FALSE); */ + /* update_curbuf(NOT_VALID); */ +*************** +*** 2744,2754 **** + * cursor and sends it to the debugger for evaluation. The debugger should + * respond with a showBalloon command when there is a useful result. + */ +- /*ARGSUSED*/ + void + netbeans_beval_cb( + BalloonEval *beval, +! int state) + { + win_T *wp; + char_u *text; +--- 2750,2759 ---- + * cursor and sends it to the debugger for evaluation. The debugger should + * respond with a showBalloon command when there is a useful result. + */ + void + netbeans_beval_cb( + BalloonEval *beval, +! int state UNUSED) + { + win_T *wp; + char_u *text; +*************** +*** 3061,3069 **** + /* + * Send netbeans an unmodufied command. + */ +- /*ARGSUSED*/ + void +! netbeans_unmodified(buf_T *bufp) + { + #if 0 + char_u buf[128]; +--- 3066,3073 ---- + /* + * Send netbeans an unmodufied command. + */ + void +! netbeans_unmodified(buf_T *bufp UNUSED) + { + #if 0 + char_u buf[128]; +*************** +*** 3370,3382 **** + * buf->signmapused[] maps buffer-local annotation IDs to an index in + * globalsignmap[]. + */ +- /*ARGSUSED*/ + static void + addsigntype( + nbbuf_T *buf, + int typeNum, + char_u *typeName, +! char_u *tooltip, + char_u *glyphFile, + int use_fg, + int fg, +--- 3374,3385 ---- + * buf->signmapused[] maps buffer-local annotation IDs to an index in + * globalsignmap[]. + */ + static void + addsigntype( + nbbuf_T *buf, + int typeNum, + char_u *typeName, +! char_u *tooltip UNUSED, + char_u *glyphFile, + int use_fg, + int fg, +*** ../vim-7.2.180/src/version.c 2009-05-17 13:30:58.000000000 +0200 +--- src/version.c 2009-05-17 16:07:26.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 181, + /**/ + +-- +I am always surprised in the Linux world how quickly solutions can be +obtained. (Imagine sending an email to Bill Gates, asking why Windows +crashed, and how to fix it... and then getting an answer that fixed the +problem... <0>_<0> !) -- Mark Langdon + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.182 b/source/ap/vim/patches/7.2.182 new file mode 100644 index 000000000..2df649955 --- /dev/null +++ b/source/ap/vim/patches/7.2.182 @@ -0,0 +1,66 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.182 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.182 (after 7.2.181) +Problem: Compilation problems after previous patch for Motif. Gvim with + GTK crashes on startup. +Solution: Add comma. Init form structure to zeroes. +Files: src/netbeans.c, src/gui_gtk_f.c + + +*** ../vim-7.2.181/src/netbeans.c 2009-05-17 16:23:20.000000000 +0200 +--- src/netbeans.c 2009-05-17 22:34:11.000000000 +0200 +*************** +*** 707,713 **** + #else + # ifdef FEAT_GUI_MOTIF + static void +! messageFromNetbeans(XtPointer clientData UNUSED + int *unused1 UNUSED, + XtInputId *unused2 UNUSED) + # endif +--- 707,713 ---- + #else + # ifdef FEAT_GUI_MOTIF + static void +! messageFromNetbeans(XtPointer clientData UNUSED, + int *unused1 UNUSED, + XtInputId *unused2 UNUSED) + # endif +*** ../vim-7.2.181/src/gui_gtk_f.c 2009-05-17 16:23:20.000000000 +0200 +--- src/gui_gtk_f.c 2009-05-17 23:20:41.000000000 +0200 +*************** +*** 229,234 **** +--- 229,235 ---- + { + GtkTypeInfo form_info; + ++ vim_memset(&form_info, 0, sizeof(form_info)); + form_info.type_name = "GtkForm"; + form_info.object_size = sizeof(GtkForm); + form_info.class_size = sizeof(GtkFormClass); +*** ../vim-7.2.181/src/version.c 2009-05-17 16:23:20.000000000 +0200 +--- src/version.c 2009-05-17 23:21:41.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 182, + /**/ + +-- +We apologise again for the fault in the subtitles. Those responsible for +sacking the people who have just been sacked have been sacked. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.183 b/source/ap/vim/patches/7.2.183 new file mode 100644 index 000000000..ad1052db0 --- /dev/null +++ b/source/ap/vim/patches/7.2.183 @@ -0,0 +1,1846 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.183 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.183 +Problem: Configure problem for sys/sysctl.h on OpenBSD. (Dasn) +Solution: Add separate check for this header file. Also switch to newer + version of autoconf. +Files: src/auto/configure, src/configure.in + + +*** ../vim-7.2.182/src/auto/configure 2009-05-14 22:19:19.000000000 +0200 +--- src/auto/configure 2009-05-16 13:32:16.000000000 +0200 +*************** +*** 1,6 **** + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +! # Generated by GNU Autoconf 2.62. + # + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, + # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +--- 1,6 ---- + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +! # Generated by GNU Autoconf 2.63. + # + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, + # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +*************** +*** 635,772 **** + # include <unistd.h> + #endif" + +! ac_subst_vars='SHELL +! PATH_SEPARATOR +! PACKAGE_NAME +! PACKAGE_TARNAME +! PACKAGE_VERSION +! PACKAGE_STRING +! PACKAGE_BUGREPORT +! exec_prefix +! prefix +! program_transform_name +! bindir +! sbindir +! libexecdir +! datarootdir +! datadir +! sysconfdir +! sharedstatedir +! localstatedir +! includedir +! oldincludedir +! docdir +! infodir +! htmldir +! dvidir +! pdfdir +! psdir +! libdir +! localedir +! mandir +! DEFS +! ECHO_C +! ECHO_N +! ECHO_T +! LIBS +! build_alias +! host_alias +! target_alias +! SET_MAKE +! CC +! CFLAGS +! LDFLAGS +! CPPFLAGS +! ac_ct_CC +! EXEEXT +! OBJEXT +! CPP +! GREP +! EGREP +! AWK +! STRIP +! CPP_MM +! OS_EXTRA_SRC +! OS_EXTRA_OBJ +! VIMNAME +! EXNAME +! VIEWNAME +! line_break +! dovimdiff +! dogvimdiff +! compiledby +! vi_cv_path_mzscheme +! MZSCHEME_SRC +! MZSCHEME_OBJ +! MZSCHEME_PRO +! MZSCHEME_LIBS +! MZSCHEME_CFLAGS +! vi_cv_path_perl +! vi_cv_perllib +! shrpenv +! PERL_SRC +! PERL_OBJ +! PERL_PRO +! PERL_CFLAGS +! PERL_LIBS +! vi_cv_path_python +! PYTHON_CONFDIR +! PYTHON_LIBS +! PYTHON_GETPATH_CFLAGS +! PYTHON_CFLAGS +! PYTHON_SRC +! PYTHON_OBJ +! vi_cv_path_tcl +! TCL_SRC +! TCL_OBJ +! TCL_PRO +! TCL_CFLAGS +! TCL_LIBS +! vi_cv_path_ruby +! RUBY_SRC +! RUBY_OBJ +! RUBY_PRO +! RUBY_CFLAGS +! RUBY_LIBS +! WORKSHOP_SRC +! WORKSHOP_OBJ +! NETBEANS_SRC +! NETBEANS_OBJ +! SNIFF_SRC +! SNIFF_OBJ +! xmkmfpath +! XMKMF +! X_CFLAGS +! X_PRE_LIBS +! X_LIBS +! X_EXTRA_LIBS +! X_LIB +! GTK_CONFIG +! GTK12_CONFIG +! PKG_CONFIG +! GTK_CFLAGS +! GTK_LIBS +! GTK_LIBNAME +! GNOME_LIBS +! GNOME_LIBDIR +! GNOME_INCLUDEDIR +! GNOME_CONFIG +! MOTIF_LIBNAME +! NARROW_PROTO +! GUI_INC_LOC +! GUI_LIB_LOC +! GUITYPE +! GUI_X_LIBS +! HANGULIN_SRC +! HANGULIN_OBJ +! TAGPRG +! INSTALL_LANGS +! INSTALL_TOOL_LANGS +! MSGFMT +! MAKEMO +! DEPEND_CFLAGS_FILTER + LIBOBJS +! LTLIBOBJS' + ac_subst_files='' + ac_user_opts=' + enable_option_checking +--- 635,772 ---- + # include <unistd.h> + #endif" + +! ac_subst_vars='LTLIBOBJS + LIBOBJS +! DEPEND_CFLAGS_FILTER +! MAKEMO +! MSGFMT +! INSTALL_TOOL_LANGS +! INSTALL_LANGS +! TAGPRG +! HANGULIN_OBJ +! HANGULIN_SRC +! GUI_X_LIBS +! GUITYPE +! GUI_LIB_LOC +! GUI_INC_LOC +! NARROW_PROTO +! MOTIF_LIBNAME +! GNOME_CONFIG +! GNOME_INCLUDEDIR +! GNOME_LIBDIR +! GNOME_LIBS +! GTK_LIBNAME +! GTK_LIBS +! GTK_CFLAGS +! PKG_CONFIG +! GTK12_CONFIG +! GTK_CONFIG +! X_LIB +! X_EXTRA_LIBS +! X_LIBS +! X_PRE_LIBS +! X_CFLAGS +! XMKMF +! xmkmfpath +! SNIFF_OBJ +! SNIFF_SRC +! NETBEANS_OBJ +! NETBEANS_SRC +! WORKSHOP_OBJ +! WORKSHOP_SRC +! RUBY_LIBS +! RUBY_CFLAGS +! RUBY_PRO +! RUBY_OBJ +! RUBY_SRC +! vi_cv_path_ruby +! TCL_LIBS +! TCL_CFLAGS +! TCL_PRO +! TCL_OBJ +! TCL_SRC +! vi_cv_path_tcl +! PYTHON_OBJ +! PYTHON_SRC +! PYTHON_CFLAGS +! PYTHON_GETPATH_CFLAGS +! PYTHON_LIBS +! PYTHON_CONFDIR +! vi_cv_path_python +! PERL_LIBS +! PERL_CFLAGS +! PERL_PRO +! PERL_OBJ +! PERL_SRC +! shrpenv +! vi_cv_perllib +! vi_cv_path_perl +! MZSCHEME_CFLAGS +! MZSCHEME_LIBS +! MZSCHEME_PRO +! MZSCHEME_OBJ +! MZSCHEME_SRC +! vi_cv_path_mzscheme +! compiledby +! dogvimdiff +! dovimdiff +! line_break +! VIEWNAME +! EXNAME +! VIMNAME +! OS_EXTRA_OBJ +! OS_EXTRA_SRC +! CPP_MM +! STRIP +! AWK +! EGREP +! GREP +! CPP +! OBJEXT +! EXEEXT +! ac_ct_CC +! CPPFLAGS +! LDFLAGS +! CFLAGS +! CC +! SET_MAKE +! target_alias +! host_alias +! build_alias +! LIBS +! ECHO_T +! ECHO_N +! ECHO_C +! DEFS +! mandir +! localedir +! libdir +! psdir +! pdfdir +! dvidir +! htmldir +! infodir +! docdir +! oldincludedir +! includedir +! localstatedir +! sharedstatedir +! sysconfdir +! datadir +! datarootdir +! libexecdir +! sbindir +! bindir +! program_transform_name +! prefix +! exec_prefix +! PACKAGE_BUGREPORT +! PACKAGE_STRING +! PACKAGE_VERSION +! PACKAGE_TARNAME +! PACKAGE_NAME +! PATH_SEPARATOR +! SHELL' + ac_subst_files='' + ac_user_opts=' + enable_option_checking +*************** +*** 1253,1261 **** + if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; +! fatal) { $as_echo "$as_me: error: Unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; +! *) $as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac + fi + +--- 1253,1261 ---- + if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; +! fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; +! *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac + fi + +*************** +*** 1308,1314 **** + ac_pwd=`pwd` && test -n "$ac_pwd" && + ac_ls_di=`ls -di .` && + ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || +! { $as_echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } + test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 +--- 1308,1314 ---- + ac_pwd=`pwd` && test -n "$ac_pwd" && + ac_ls_di=`ls -di .` && + ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || +! { $as_echo "$as_me: error: working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } + test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 +*************** +*** 1587,1593 **** + if $ac_init_version; then + cat <<\_ACEOF + configure +! generated by GNU Autoconf 2.62 + + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +--- 1587,1593 ---- + if $ac_init_version; then + cat <<\_ACEOF + configure +! generated by GNU Autoconf 2.63 + + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +*************** +*** 1601,1607 **** + running configure, to aid debugging if configure makes a mistake. + + It was created by $as_me, which was +! generated by GNU Autoconf 2.62. Invocation command line was + + $ $0 $@ + +--- 1601,1607 ---- + running configure, to aid debugging if configure makes a mistake. + + It was created by $as_me, which was +! generated by GNU Autoconf 2.63. Invocation command line was + + $ $0 $@ + +*************** +*** 1724,1731 **** + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( +! *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +! $as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( +--- 1724,1731 ---- + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( +! *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +! $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( +*************** +*** 1928,1933 **** +--- 1928,1935 ---- + fi + done + if $ac_cache_corrupted; then ++ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 + $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +*************** +*** 2084,2095 **** + else + case $cross_compiling:$ac_tool_warned in + yes:) +! { $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +! whose name does not start with the host triplet. If you think this +! configuration is useful to you, please write to autoconf@gnu.org." >&5 +! $as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +! whose name does not start with the host triplet. If you think this +! configuration is useful to you, please write to autoconf@gnu.org." >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +--- 2086,2093 ---- + else + case $cross_compiling:$ac_tool_warned in + yes:) +! { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +*************** +*** 2288,2299 **** + else + case $cross_compiling:$ac_tool_warned in + yes:) +! { $as_echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +! whose name does not start with the host triplet. If you think this +! configuration is useful to you, please write to autoconf@gnu.org." >&5 +! $as_echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +! whose name does not start with the host triplet. If you think this +! configuration is useful to you, please write to autoconf@gnu.org." >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +--- 2286,2293 ---- + else + case $cross_compiling:$ac_tool_warned in + yes:) +! { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +*************** +*** 2303,2313 **** + fi + + +! test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: no acceptable C compiler found in \$PATH + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; } + + # Provide some information about the compiler. + $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +--- 2297,2309 ---- + fi + + +! test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +! { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: no acceptable C compiler found in \$PATH + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; }; } + + # Provide some information about the compiler. + $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +*************** +*** 2437,2447 **** + $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: C compiler cannot create executables + See \`config.log' for more details." >&2;} +! { (exit 77); exit 77; }; } + fi + + ac_exeext=$ac_cv_exeext +--- 2433,2445 ---- + $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: C compiler cannot create executables + See \`config.log' for more details." >&2;} +! { (exit 77); exit 77; }; }; } + fi + + ac_exeext=$ac_cv_exeext +*************** +*** 2469,2481 **** + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else +! { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. + If you meant to cross compile, use \`--host'. + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: cannot run C compiled programs. + If you meant to cross compile, use \`--host'. + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; } + fi + fi + fi +--- 2467,2481 ---- + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else +! { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +! { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. + If you meant to cross compile, use \`--host'. + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: cannot run C compiled programs. + If you meant to cross compile, use \`--host'. + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; }; } + fi + fi + fi +*************** +*** 2518,2528 **** + esac + done + else +! { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; } + fi + + rm -f conftest$ac_cv_exeext +--- 2518,2530 ---- + esac + done + else +! { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +! { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; }; } + fi + + rm -f conftest$ac_cv_exeext +*************** +*** 2576,2586 **** + $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; } + fi + + rm -f conftest.$ac_cv_objext conftest.$ac_ext +--- 2578,2590 ---- + $as_echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; }; } + fi + + rm -f conftest.$ac_cv_objext conftest.$ac_ext +*************** +*** 3148,3158 **** + if $ac_preproc_ok; then + : + else +! { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; } + fi + + ac_ext=c +--- 3152,3164 ---- + if $ac_preproc_ok; then + : + else +! { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +! { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check + See \`config.log' for more details." >&5 + $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check + See \`config.log' for more details." >&2;} +! { (exit 1); exit 1; }; }; } + fi + + ac_ext=c +*************** +*** 4016,4023 **** + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +--- 4022,4030 ---- + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 4154,4160 **** + $as_echo "$ac_cv_header_Carbon_Carbon_h" >&6; } + + fi +! if test $ac_cv_header_Carbon_Carbon_h = yes; then + CARBON=yes + fi + +--- 4161,4167 ---- + $as_echo "$ac_cv_header_Carbon_Carbon_h" >&6; } + + fi +! if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then + CARBON=yes + fi + +*************** +*** 4484,4490 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5 + $as_echo "$ac_cv_lib_selinux_is_selinux_enabled" >&6; } +! if test $ac_cv_lib_selinux_is_selinux_enabled = yes; then + LIBS="$LIBS -lselinux" + cat >>confdefs.h <<\_ACEOF + #define HAVE_SELINUX 1 +--- 4491,4497 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5 + $as_echo "$ac_cv_lib_selinux_is_selinux_enabled" >&6; } +! if test "x$ac_cv_lib_selinux_is_selinux_enabled" = x""yes; then + LIBS="$LIBS -lselinux" + cat >>confdefs.h <<\_ACEOF + #define HAVE_SELINUX 1 +*************** +*** 5891,5897 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 + $as_echo "$ac_cv_lib_socket_socket" >&6; } +! if test $ac_cv_lib_socket_socket = yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBSOCKET 1 + _ACEOF +--- 5898,5904 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 + $as_echo "$ac_cv_lib_socket_socket" >&6; } +! if test "x$ac_cv_lib_socket_socket" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBSOCKET 1 + _ACEOF +*************** +*** 5966,5972 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 + $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +! if test $ac_cv_lib_nsl_gethostbyname = yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBNSL 1 + _ACEOF +--- 5973,5979 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 + $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +! if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBNSL 1 + _ACEOF +*************** +*** 6203,6210 **** + have_x=disabled + else + case $x_includes,$x_libraries in #( +! *\'*) { { $as_echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5 +! $as_echo "$as_me: error: Cannot use X directory names containing '" >&2;} + { (exit 1); exit 1; }; };; #( + *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then + $as_echo_n "(cached) " >&6 +--- 6210,6217 ---- + have_x=disabled + else + case $x_includes,$x_libraries in #( +! *\'*) { { $as_echo "$as_me:$LINENO: error: cannot use X directory names containing '" >&5 +! $as_echo "$as_me: error: cannot use X directory names containing '" >&2;} + { (exit 1); exit 1; }; };; #( + *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then + $as_echo_n "(cached) " >&6 +*************** +*** 6242,6248 **** + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in +! /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi +--- 6249,6255 ---- + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in +! /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi +*************** +*** 6682,6688 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 + $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +! if test $ac_cv_lib_dnet_dnet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" + fi + +--- 6689,6695 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 + $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +! if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" + fi + +*************** +*** 6752,6758 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 + $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +! if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" + fi + +--- 6759,6765 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 + $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +! if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" + fi + +*************** +*** 6924,6930 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 + $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +! if test $ac_cv_lib_nsl_gethostbyname = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" + fi + +--- 6931,6937 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 + $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +! if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" + fi + +*************** +*** 6994,7000 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 + $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +! if test $ac_cv_lib_bsd_gethostbyname = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" + fi + +--- 7001,7007 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 + $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +! if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" + fi + +*************** +*** 7160,7166 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 + $as_echo "$ac_cv_lib_socket_connect" >&6; } +! if test $ac_cv_lib_socket_connect = yes; then + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" + fi + +--- 7167,7173 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 + $as_echo "$ac_cv_lib_socket_connect" >&6; } +! if test "x$ac_cv_lib_socket_connect" = x""yes; then + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" + fi + +*************** +*** 7319,7325 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 + $as_echo "$ac_cv_lib_posix_remove" >&6; } +! if test $ac_cv_lib_posix_remove = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" + fi + +--- 7326,7332 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 + $as_echo "$ac_cv_lib_posix_remove" >&6; } +! if test "x$ac_cv_lib_posix_remove" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" + fi + +*************** +*** 7478,7484 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 + $as_echo "$ac_cv_lib_ipc_shmat" >&6; } +! if test $ac_cv_lib_ipc_shmat = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" + fi + +--- 7485,7491 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 + $as_echo "$ac_cv_lib_ipc_shmat" >&6; } +! if test "x$ac_cv_lib_ipc_shmat" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" + fi + +*************** +*** 7559,7565 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 + $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +! if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" + fi + +--- 7566,7572 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 + $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +! if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" + fi + +*************** +*** 7727,7733 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xdmcp__XdmcpAuthDoIt" >&5 + $as_echo "$ac_cv_lib_Xdmcp__XdmcpAuthDoIt" >&6; } +! if test $ac_cv_lib_Xdmcp__XdmcpAuthDoIt = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp" + fi + +--- 7734,7740 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xdmcp__XdmcpAuthDoIt" >&5 + $as_echo "$ac_cv_lib_Xdmcp__XdmcpAuthDoIt" >&6; } +! if test "x$ac_cv_lib_Xdmcp__XdmcpAuthDoIt" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp" + fi + +*************** +*** 7797,7803 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceOpenConnection" >&5 + $as_echo "$ac_cv_lib_ICE_IceOpenConnection" >&6; } +! if test $ac_cv_lib_ICE_IceOpenConnection = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE" + fi + +--- 7804,7810 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceOpenConnection" >&5 + $as_echo "$ac_cv_lib_ICE_IceOpenConnection" >&6; } +! if test "x$ac_cv_lib_ICE_IceOpenConnection" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE" + fi + +*************** +*** 7868,7874 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xpm_XpmCreatePixmapFromData" >&5 + $as_echo "$ac_cv_lib_Xpm_XpmCreatePixmapFromData" >&6; } +! if test $ac_cv_lib_Xpm_XpmCreatePixmapFromData = yes; then + X_PRE_LIBS="$X_PRE_LIBS -lXpm" + fi + +--- 7875,7881 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xpm_XpmCreatePixmapFromData" >&5 + $as_echo "$ac_cv_lib_Xpm_XpmCreatePixmapFromData" >&6; } +! if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = x""yes; then + X_PRE_LIBS="$X_PRE_LIBS -lXpm" + fi + +*************** +*** 9251,9257 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XShapeQueryExtension" >&5 + $as_echo "$ac_cv_lib_Xext_XShapeQueryExtension" >&6; } +! if test $ac_cv_lib_Xext_XShapeQueryExtension = yes; then + GUI_X_LIBS="-lXext" + fi + +--- 9258,9264 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XShapeQueryExtension" >&5 + $as_echo "$ac_cv_lib_Xext_XShapeQueryExtension" >&6; } +! if test "x$ac_cv_lib_Xext_XShapeQueryExtension" = x""yes; then + GUI_X_LIBS="-lXext" + fi + +*************** +*** 9320,9326 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_w_wslen" >&5 + $as_echo "$ac_cv_lib_w_wslen" >&6; } +! if test $ac_cv_lib_w_wslen = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lw" + fi + +--- 9327,9333 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_w_wslen" >&5 + $as_echo "$ac_cv_lib_w_wslen" >&6; } +! if test "x$ac_cv_lib_w_wslen" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lw" + fi + +*************** +*** 9389,9395 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlsym" >&5 + $as_echo "$ac_cv_lib_dl_dlsym" >&6; } +! if test $ac_cv_lib_dl_dlsym = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl" + fi + +--- 9396,9402 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlsym" >&5 + $as_echo "$ac_cv_lib_dl_dlsym" >&6; } +! if test "x$ac_cv_lib_dl_dlsym" = x""yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl" + fi + +*************** +*** 9458,9464 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xmu_XmuCreateStippledPixmap" >&5 + $as_echo "$ac_cv_lib_Xmu_XmuCreateStippledPixmap" >&6; } +! if test $ac_cv_lib_Xmu_XmuCreateStippledPixmap = yes; then + GUI_X_LIBS="-lXmu $GUI_X_LIBS" + fi + +--- 9465,9471 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xmu_XmuCreateStippledPixmap" >&5 + $as_echo "$ac_cv_lib_Xmu_XmuCreateStippledPixmap" >&6; } +! if test "x$ac_cv_lib_Xmu_XmuCreateStippledPixmap" = x""yes; then + GUI_X_LIBS="-lXmu $GUI_X_LIBS" + fi + +*************** +*** 9528,9534 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xp_XpEndJob" >&5 + $as_echo "$ac_cv_lib_Xp_XpEndJob" >&6; } +! if test $ac_cv_lib_Xp_XpEndJob = yes; then + GUI_X_LIBS="-lXp $GUI_X_LIBS" + fi + +--- 9535,9541 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_Xp_XpEndJob" >&5 + $as_echo "$ac_cv_lib_Xp_XpEndJob" >&6; } +! if test "x$ac_cv_lib_Xp_XpEndJob" = x""yes; then + GUI_X_LIBS="-lXp $GUI_X_LIBS" + fi + +*************** +*** 9699,9706 **** + $as_echo "$ac_res" >&6; } + + fi +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +--- 9706,9714 ---- + $as_echo "$ac_res" >&6; } + + fi +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 9852,9859 **** + $as_echo "$ac_res" >&6; } + + fi +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +--- 9860,9868 ---- + $as_echo "$ac_res" >&6; } + + fi +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 10098,10105 **** + $as_echo "$ac_res" >&6; } + + fi +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +--- 10107,10115 ---- + $as_echo "$ac_res" >&6; } + + fi +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 10539,10545 **** + $as_echo "$ac_cv_header_elf_h" >&6; } + + fi +! if test $ac_cv_header_elf_h = yes; then + HAS_ELF=1 + fi + +--- 10549,10555 ---- + $as_echo "$ac_cv_header_elf_h" >&6; } + + fi +! if test "x$ac_cv_header_elf_h" = x""yes; then + HAS_ELF=1 + fi + +*************** +*** 10605,10611 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_elf_main" >&5 + $as_echo "$ac_cv_lib_elf_main" >&6; } +! if test $ac_cv_lib_elf_main = yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBELF 1 + _ACEOF +--- 10615,10621 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_elf_main" >&5 + $as_echo "$ac_cv_lib_elf_main" >&6; } +! if test "x$ac_cv_lib_elf_main" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBELF 1 + _ACEOF +*************** +*** 10679,10686 **** + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 + _ACEOF +--- 10689,10697 ---- + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 10966,10972 **** + + + +- + for ac_header in stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \ + termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \ + iconv.h langinfo.h math.h unistd.h stropts.h errno.h \ +--- 10977,10982 ---- +*************** +*** 10974,10980 **** + sys/stream.h termios.h libc.h sys/statfs.h \ + poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \ + libgen.h util/debug.h util/msg18n.h frame.h \ +! sys/acl.h sys/access.h sys/sysctl.h sys/sysinfo.h wchar.h wctype.h + do + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` + if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then +--- 10984,10990 ---- + sys/stream.h termios.h libc.h sys/statfs.h \ + poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \ + libgen.h util/debug.h util/msg18n.h frame.h \ +! sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h + do + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` + if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then +*************** +*** 11108,11115 **** + $as_echo "$ac_res" >&6; } + + fi +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +--- 11118,11126 ---- + $as_echo "$ac_res" >&6; } + + fi +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 11172,11179 **** + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +--- 11183,11256 ---- + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then +! cat >>confdefs.h <<_ACEOF +! #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +! _ACEOF +! +! fi +! +! done +! +! +! +! for ac_header in sys/sysctl.h +! do +! as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +! { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +! $as_echo_n "checking for $ac_header... " >&6; } +! if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then +! $as_echo_n "(cached) " >&6 +! else +! cat >conftest.$ac_ext <<_ACEOF +! /* confdefs.h. */ +! _ACEOF +! cat confdefs.h >>conftest.$ac_ext +! cat >>conftest.$ac_ext <<_ACEOF +! /* end confdefs.h. */ +! #if defined HAVE_SYS_PARAM_H +! # include <sys/param.h> +! #endif +! +! #include <$ac_header> +! _ACEOF +! rm -f conftest.$ac_objext +! if { (ac_try="$ac_compile" +! case "(($ac_try" in +! *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; +! *) ac_try_echo=$ac_try;; +! esac +! eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +! $as_echo "$ac_try_echo") >&5 +! (eval "$ac_compile") 2>conftest.er1 +! ac_status=$? +! grep -v '^ *+' conftest.er1 >conftest.err +! rm -f conftest.er1 +! cat conftest.err >&5 +! $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 +! (exit $ac_status); } && { +! test -z "$ac_c_werror_flag" || +! test ! -s conftest.err +! } && test -s conftest.$ac_objext; then +! eval "$as_ac_Header=yes" +! else +! $as_echo "$as_me: failed program was:" >&5 +! sed 's/^/| /' conftest.$ac_ext >&5 +! +! eval "$as_ac_Header=no" +! fi +! +! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +! fi +! ac_res=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +! $as_echo "$ac_res" >&6; } +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 11372,11379 **** + $as_echo "$ac_res" >&6; } + + fi +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +--- 11449,11457 ---- + $as_echo "$ac_res" >&6; } + + fi +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 11770,11776 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 + $as_echo "$ac_cv_type_mode_t" >&6; } +! if test $ac_cv_type_mode_t = yes; then + : + else + +--- 11848,11854 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 + $as_echo "$ac_cv_type_mode_t" >&6; } +! if test "x$ac_cv_type_mode_t" = x""yes; then + : + else + +*************** +*** 11874,11880 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 + $as_echo "$ac_cv_type_off_t" >&6; } +! if test $ac_cv_type_off_t = yes; then + : + else + +--- 11952,11958 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 + $as_echo "$ac_cv_type_off_t" >&6; } +! if test "x$ac_cv_type_off_t" = x""yes; then + : + else + +*************** +*** 11978,11984 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 + $as_echo "$ac_cv_type_pid_t" >&6; } +! if test $ac_cv_type_pid_t = yes; then + : + else + +--- 12056,12062 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 + $as_echo "$ac_cv_type_pid_t" >&6; } +! if test "x$ac_cv_type_pid_t" = x""yes; then + : + else + +*************** +*** 12082,12088 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 + $as_echo "$ac_cv_type_size_t" >&6; } +! if test $ac_cv_type_size_t = yes; then + : + else + +--- 12160,12166 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 + $as_echo "$ac_cv_type_size_t" >&6; } +! if test "x$ac_cv_type_size_t" = x""yes; then + : + else + +*************** +*** 12286,12292 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5 + $as_echo "$ac_cv_type_ino_t" >&6; } +! if test $ac_cv_type_ino_t = yes; then + : + else + +--- 12364,12370 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5 + $as_echo "$ac_cv_type_ino_t" >&6; } +! if test "x$ac_cv_type_ino_t" = x""yes; then + : + else + +*************** +*** 12390,12396 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_dev_t" >&5 + $as_echo "$ac_cv_type_dev_t" >&6; } +! if test $ac_cv_type_dev_t = yes; then + : + else + +--- 12468,12474 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_type_dev_t" >&5 + $as_echo "$ac_cv_type_dev_t" >&6; } +! if test "x$ac_cv_type_dev_t" = x""yes; then + : + else + +*************** +*** 12680,12687 **** + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! if test `eval 'as_val=${'$as_ac_Lib'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_LIB${libname}" | $as_tr_cpp` 1 + _ACEOF +--- 12758,12766 ---- + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! as_val=`eval 'as_val=${'$as_ac_Lib'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_LIB${libname}" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 13929,13936 **** + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! if test `eval 'as_val=${'$as_ac_var'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +--- 14008,14016 ---- + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! as_val=`eval 'as_val=${'$as_ac_var'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 14313,14319 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_strtod" >&5 + $as_echo "$ac_cv_lib_m_strtod" >&6; } +! if test $ac_cv_lib_m_strtod = yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBM 1 + _ACEOF +--- 14393,14399 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_strtod" >&5 + $as_echo "$ac_cv_lib_m_strtod" >&6; } +! if test "x$ac_cv_lib_m_strtod" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBM 1 + _ACEOF +*************** +*** 14473,14479 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_posix1e_acl_get_file" >&5 + $as_echo "$ac_cv_lib_posix1e_acl_get_file" >&6; } +! if test $ac_cv_lib_posix1e_acl_get_file = yes; then + LIBS="$LIBS -lposix1e" + else + { $as_echo "$as_me:$LINENO: checking for acl_get_file in -lacl" >&5 +--- 14553,14559 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_posix1e_acl_get_file" >&5 + $as_echo "$ac_cv_lib_posix1e_acl_get_file" >&6; } +! if test "x$ac_cv_lib_posix1e_acl_get_file" = x""yes; then + LIBS="$LIBS -lposix1e" + else + { $as_echo "$as_me:$LINENO: checking for acl_get_file in -lacl" >&5 +*************** +*** 14541,14547 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_acl_acl_get_file" >&5 + $as_echo "$ac_cv_lib_acl_acl_get_file" >&6; } +! if test $ac_cv_lib_acl_acl_get_file = yes; then + LIBS="$LIBS -lacl" + { $as_echo "$as_me:$LINENO: checking for fgetxattr in -lattr" >&5 + $as_echo_n "checking for fgetxattr in -lattr... " >&6; } +--- 14621,14627 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_acl_acl_get_file" >&5 + $as_echo "$ac_cv_lib_acl_acl_get_file" >&6; } +! if test "x$ac_cv_lib_acl_acl_get_file" = x""yes; then + LIBS="$LIBS -lacl" + { $as_echo "$as_me:$LINENO: checking for fgetxattr in -lattr" >&5 + $as_echo_n "checking for fgetxattr in -lattr... " >&6; } +*************** +*** 14608,14614 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_attr_fgetxattr" >&5 + $as_echo "$ac_cv_lib_attr_fgetxattr" >&6; } +! if test $ac_cv_lib_attr_fgetxattr = yes; then + LIBS="$LIBS -lattr" + fi + +--- 14688,14694 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_attr_fgetxattr" >&5 + $as_echo "$ac_cv_lib_attr_fgetxattr" >&6; } +! if test "x$ac_cv_lib_attr_fgetxattr" = x""yes; then + LIBS="$LIBS -lattr" + fi + +*************** +*** 15746,15752 **** + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_xpg4__xpg4_setrunelocale" >&5 + $as_echo "$ac_cv_lib_xpg4__xpg4_setrunelocale" >&6; } +! if test $ac_cv_lib_xpg4__xpg4_setrunelocale = yes; then + LIBS="$LIBS -lxpg4" + fi + +--- 15826,15832 ---- + fi + { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_xpg4__xpg4_setrunelocale" >&5 + $as_echo "$ac_cv_lib_xpg4__xpg4_setrunelocale" >&6; } +! if test "x$ac_cv_lib_xpg4__xpg4_setrunelocale" = x""yes; then + LIBS="$LIBS -lxpg4" + fi + +*************** +*** 16045,16052 **** + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! if test `eval 'as_val=${'$as_ac_var'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +--- 16125,16133 ---- + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } +! as_val=`eval 'as_val=${'$as_ac_var'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 16246,16252 **** + $as_echo "$ac_cv_header_dlfcn_h" >&6; } + + fi +! if test $ac_cv_header_dlfcn_h = yes; then + DLL=dlfcn.h + else + if test "${ac_cv_header_dl_h+set}" = set; then +--- 16327,16333 ---- + $as_echo "$ac_cv_header_dlfcn_h" >&6; } + + fi +! if test "x$ac_cv_header_dlfcn_h" = x""yes; then + DLL=dlfcn.h + else + if test "${ac_cv_header_dl_h+set}" = set; then +*************** +*** 16376,16382 **** + $as_echo "$ac_cv_header_dl_h" >&6; } + + fi +! if test $ac_cv_header_dl_h = yes; then + DLL=dl.h + fi + +--- 16457,16463 ---- + $as_echo "$ac_cv_header_dl_h" >&6; } + + fi +! if test "x$ac_cv_header_dl_h" = x""yes; then + DLL=dl.h + fi + +*************** +*** 16895,16902 **** + $as_echo "$ac_res" >&6; } + + fi +! if test `eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +--- 16976,16984 ---- + $as_echo "$ac_res" >&6; } + + fi +! as_val=`eval 'as_val=${'$as_ac_Header'} +! $as_echo "$as_val"'` +! if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF + #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + _ACEOF +*************** +*** 16986,16993 **** + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( +! *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +! $as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( +--- 17068,17075 ---- + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( +! *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +! $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( +*************** +*** 17379,17385 **** + # values after options handling. + ac_log=" + This file was extended by $as_me, which was +! generated by GNU Autoconf 2.62. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +--- 17461,17467 ---- + # values after options handling. + ac_log=" + This file was extended by $as_me, which was +! generated by GNU Autoconf 2.63. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +*************** +*** 17392,17397 **** +--- 17474,17488 ---- + + _ACEOF + ++ case $ac_config_files in *" ++ "*) set x $ac_config_files; shift; ac_config_files=$*;; ++ esac ++ ++ case $ac_config_headers in *" ++ "*) set x $ac_config_headers; shift; ac_config_headers=$*;; ++ esac ++ ++ + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + # Files that config.status was made for. + config_files="$ac_config_files" +*************** +*** 17404,17419 **** + \`$as_me' instantiates files from templates according to the + current configuration. + +! Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit +! -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions +! --file=FILE[:TEMPLATE] + instantiate the configuration file FILE +! --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + + Configuration files: +--- 17495,17511 ---- + \`$as_me' instantiates files from templates according to the + current configuration. + +! Usage: $0 [OPTION]... [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit +! -q, --quiet, --silent +! do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions +! --file=FILE[:TEMPLATE] + instantiate the configuration file FILE +! --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + + Configuration files: +*************** +*** 17428,17434 **** + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_version="\\ + config.status +! configured by $0, generated by GNU Autoconf 2.62, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + + Copyright (C) 2008 Free Software Foundation, Inc. +--- 17520,17526 ---- + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_version="\\ + config.status +! configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + + Copyright (C) 2008 Free Software Foundation, Inc. +*************** +*** 17625,17631 **** + $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + +! if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` = $ac_delim_num; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +--- 17717,17724 ---- + $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + +! ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` +! if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +*************** +*** 17830,17838 **** + } + split(mac1, mac2, "(") #) + macro = mac2[1] + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". +- prefix = substr(line, 1, index(line, defundef) - 1) + print prefix "define", macro P[macro] D[macro] + next + } else { +--- 17923,17931 ---- + } + split(mac1, mac2, "(") #) + macro = mac2[1] ++ prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { +*************** +*** 17840,17846 **** + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { +! print "/*", line, "*/" + next + } + } +--- 17933,17939 ---- + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { +! print "/*", prefix defundef, macro, "*/" + next + } + } +*************** +*** 17864,17871 **** + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; +! :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +! $as_echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; +--- 17957,17964 ---- + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; +! :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +! $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; +*************** +*** 18183,18190 **** + $ac_cs_success || { (exit 1); exit 1; } + fi + if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then +! { $as_echo "$as_me:$LINENO: WARNING: Unrecognized options: $ac_unrecognized_opts" >&5 +! $as_echo "$as_me: WARNING: Unrecognized options: $ac_unrecognized_opts" >&2;} + fi + + +--- 18276,18283 ---- + $ac_cs_success || { (exit 1); exit 1; } + fi + if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then +! { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +! $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + fi + + +*** ../vim-7.2.182/src/configure.in 2009-05-14 22:19:19.000000000 +0200 +--- src/configure.in 2009-05-16 13:32:00.000000000 +0200 +*************** +*** 2100,2106 **** + sys/stream.h termios.h libc.h sys/statfs.h \ + poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \ + libgen.h util/debug.h util/msg18n.h frame.h \ +! sys/acl.h sys/access.h sys/sysctl.h sys/sysinfo.h wchar.h wctype.h) + + dnl sys/ptem.h depends on sys/stream.h on Solaris + AC_CHECK_HEADERS(sys/ptem.h, [], [], +--- 2100,2106 ---- + sys/stream.h termios.h libc.h sys/statfs.h \ + poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \ + libgen.h util/debug.h util/msg18n.h frame.h \ +! sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h) + + dnl sys/ptem.h depends on sys/stream.h on Solaris + AC_CHECK_HEADERS(sys/ptem.h, [], [], +*************** +*** 2108,2113 **** +--- 2108,2119 ---- + # include <sys/stream.h> + #endif]) + ++ dnl sys/sysctl.h depends on sys/param.h on OpenBSD ++ AC_CHECK_HEADERS(sys/sysctl.h, [], [], ++ [#if defined HAVE_SYS_PARAM_H ++ # include <sys/param.h> ++ #endif]) ++ + + dnl pthread_np.h may exist but can only be used after including pthread.h + AC_MSG_CHECKING([for pthread_np.h]) +*** ../vim-7.2.182/src/version.c 2009-05-17 23:25:16.000000000 +0200 +--- src/version.c 2009-05-21 15:16:01.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 183, + /**/ + +-- +CART DRIVER: Bring out your dead! + There are legs stick out of windows and doors. Two MEN are fighting in the + mud - covered from head to foot in it. Another MAN is on his hands in + knees shovelling mud into his mouth. We just catch sight of a MAN falling + into a well. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.184 b/source/ap/vim/patches/7.2.184 new file mode 100644 index 000000000..638821570 --- /dev/null +++ b/source/ap/vim/patches/7.2.184 @@ -0,0 +1,3646 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.184 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.184 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Add UNUSED and type casts. Autoconf check for wchar_t. +Files: src/auto/configure, src/config.h.in, src/configure.in, + src/gui_athena.c, src/gui_x11.c, src/gui.c, src/gui_beval.c, + src/gui_at_sb.c, src/gui_at_fs.c, src/gui_motif.c, + src/gui_xmdlg.c, src/gui_xmebw.c, src/if_python.c, src/window.c, + src/workshop.c + + +*** ../vim-7.2.183/src/auto/configure 2009-05-21 15:19:59.000000000 +0200 +--- src/auto/configure 2009-05-21 16:05:01.000000000 +0200 +*************** +*** 7977,7982 **** +--- 7977,8058 ---- + + LDFLAGS="$ac_save_LDFLAGS" + ++ { $as_echo "$as_me:$LINENO: checking size of wchar_t is 2 bytes" >&5 ++ $as_echo_n "checking size of wchar_t is 2 bytes... " >&6; } ++ if test "${ac_cv_small_wchar_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++ else ++ if test "$cross_compiling" = yes; then ++ { { $as_echo "$as_me:$LINENO: error: failed to compile test program" >&5 ++ $as_echo "$as_me: error: failed to compile test program" >&2;} ++ { (exit 1); exit 1; }; } ++ else ++ cat >conftest.$ac_ext <<_ACEOF ++ /* confdefs.h. */ ++ _ACEOF ++ cat confdefs.h >>conftest.$ac_ext ++ cat >>conftest.$ac_ext <<_ACEOF ++ /* end confdefs.h. */ ++ ++ #include <X11/Xlib.h> ++ #if STDC_HEADERS ++ # include <stdlib.h> ++ # include <stddef.h> ++ #endif ++ main() ++ { ++ if (sizeof(wchar_t) <= 2) ++ exit(1); ++ exit(0); ++ } ++ _ACEOF ++ rm -f conftest$ac_exeext ++ if { (ac_try="$ac_link" ++ case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++ esac ++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++ $as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++ esac ++ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++ $as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_small_wchar_t="no" ++ else ++ $as_echo "$as_me: program exited with status $ac_status" >&5 ++ $as_echo "$as_me: failed program was:" >&5 ++ sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ( exit $ac_status ) ++ ac_cv_small_wchar_t="yes" ++ fi ++ rm -rf conftest.dSYM ++ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++ fi ++ ++ ++ fi ++ ++ { $as_echo "$as_me:$LINENO: result: $ac_cv_small_wchar_t" >&5 ++ $as_echo "$ac_cv_small_wchar_t" >&6; } ++ if test "x$ac_cv_small_wchar_t" = "xyes" ; then ++ cat >>confdefs.h <<\_ACEOF ++ #define SMALL_WCHAR_T 1 ++ _ACEOF ++ ++ fi ++ + fi + fi + +*************** +*** 15417,15423 **** + + + +- + bcopy_test_prog=' + #include "confdefs.h" + #ifdef HAVE_STRING_H +--- 15493,15498 ---- +*** ../vim-7.2.183/src/config.h.in 2009-05-14 22:19:19.000000000 +0200 +--- src/config.h.in 2009-05-21 15:44:24.000000000 +0200 +*************** +*** 39,44 **** +--- 39,47 ---- + /* Defined to the size of an int */ + #undef SIZEOF_INT + ++ /* Define when wchar_t is only 2 bytes. */ ++ #undef SMALL_WCHAR_T ++ + /* + * If we cannot trust one of the following from the libraries, we use our + * own safe but probably slower vim_memmove(). +*** ../vim-7.2.183/src/configure.in 2009-05-21 15:19:59.000000000 +0200 +--- src/configure.in 2009-05-21 16:04:56.000000000 +0200 +*************** +*** 1193,1198 **** +--- 1193,1220 ---- + + LDFLAGS="$ac_save_LDFLAGS" + ++ AC_MSG_CHECKING(size of wchar_t is 2 bytes) ++ AC_CACHE_VAL(ac_cv_small_wchar_t, ++ [AC_TRY_RUN([ ++ #include <X11/Xlib.h> ++ #if STDC_HEADERS ++ # include <stdlib.h> ++ # include <stddef.h> ++ #endif ++ main() ++ { ++ if (sizeof(wchar_t) <= 2) ++ exit(1); ++ exit(0); ++ }], ++ ac_cv_small_wchar_t="no", ++ ac_cv_small_wchar_t="yes", ++ AC_MSG_ERROR(failed to compile test program))]) ++ AC_MSG_RESULT($ac_cv_small_wchar_t) ++ if test "x$ac_cv_small_wchar_t" = "xyes" ; then ++ AC_DEFINE(SMALL_WCHAR_T) ++ fi ++ + fi + fi + +*************** +*** 2881,2887 **** + AC_MSG_RESULT($ac_cv_sizeof_int) + AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int) + +- + dnl Check for memmove() before bcopy(), makes memmove() be used when both are + dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5. + +--- 2903,2908 ---- +*** ../vim-7.2.183/src/gui_athena.c 2008-06-24 23:00:51.000000000 +0200 +--- src/gui_athena.c 2009-05-21 16:39:43.000000000 +0200 +*************** +*** 86,95 **** + * Scrollbar callback (XtNjumpProc) for when the scrollbar is dragged with the + * left or middle mouse button. + */ +- /* ARGSUSED */ + static void + gui_athena_scroll_cb_jump(w, client_data, call_data) +! Widget w; + XtPointer client_data, call_data; + { + scrollbar_T *sb, *sb_info; +--- 86,94 ---- + * Scrollbar callback (XtNjumpProc) for when the scrollbar is dragged with the + * left or middle mouse button. + */ + static void + gui_athena_scroll_cb_jump(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data, call_data; + { + scrollbar_T *sb, *sb_info; +*************** +*** 122,131 **** + * Scrollbar callback (XtNscrollProc) for paging up or down with the left or + * right mouse buttons. + */ +- /* ARGSUSED */ + static void + gui_athena_scroll_cb_scroll(w, client_data, call_data) +! Widget w; + XtPointer client_data, call_data; + { + scrollbar_T *sb, *sb_info; +--- 121,129 ---- + * Scrollbar callback (XtNscrollProc) for paging up or down with the left or + * right mouse buttons. + */ + static void + gui_athena_scroll_cb_scroll(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data, call_data; + { + scrollbar_T *sb, *sb_info; +*************** +*** 492,498 **** + if (menu->icon_builtin || gui_find_bitmap(menu->name, buf, "xpm") == FAIL) + { + if (menu->iconidx >= 0 && menu->iconidx +! < (sizeof(built_in_pixmaps) / sizeof(built_in_pixmaps[0]))) + xpm = built_in_pixmaps[menu->iconidx]; + else + xpm = tb_blank_xpm; +--- 490,496 ---- + if (menu->icon_builtin || gui_find_bitmap(menu->name, buf, "xpm") == FAIL) + { + if (menu->iconidx >= 0 && menu->iconidx +! < (int)(sizeof(built_in_pixmaps) / sizeof(built_in_pixmaps[0]))) + xpm = built_in_pixmaps[menu->iconidx]; + else + xpm = tb_blank_xpm; +*************** +*** 763,769 **** + XtGetValues(XtParent(widget), args, n); + + retval = num_children; +! for (i = 0; i < num_children; ++i) + { + Widget current = children[i]; + vimmenu_T *menu = NULL; +--- 761,767 ---- + XtGetValues(XtParent(widget), args, n); + + retval = num_children; +! for (i = 0; i < (int)num_children; ++i) + { + Widget current = children[i]; + vimmenu_T *menu = NULL; +*************** +*** 780,790 **** + return retval; + } + +- /* ARGSUSED */ + void + gui_mch_add_menu(menu, idx) + vimmenu_T *menu; +! int idx; + { + char_u *pullright_name; + Dimension height, space, border; +--- 778,787 ---- + return retval; + } + + void + gui_mch_add_menu(menu, idx) + vimmenu_T *menu; +! int idx UNUSED; + { + char_u *pullright_name; + Dimension height, space, border; +*************** +*** 869,875 **** + XtVaGetValues(parent->submenu_id, XtNchildren, &children, + XtNnumChildren, &num_children, + NULL); +! for (i = 0; i < num_children; ++i) + { + XtVaSetValues(children[i], + XtNrightMargin, puller_width, +--- 866,872 ---- + XtVaGetValues(parent->submenu_id, XtNchildren, &children, + XtNnumChildren, &num_children, + NULL); +! for (i = 0; i < (int)num_children; ++i) + { + XtVaSetValues(children[i], + XtNrightMargin, puller_width, +*************** +*** 913,919 **** + XtVaGetValues(id, XtNchildren, &children, + XtNnumChildren, &num_children, + NULL); +! for (i = 0; i < num_children; ++i) + { + if (children[i] == ignore) + continue; +--- 910,916 ---- + XtVaGetValues(id, XtNchildren, &children, + XtNnumChildren, &num_children, + NULL); +! for (i = 0; i < (int)num_children; ++i) + { + if (children[i] == ignore) + continue; +*************** +*** 1175,1185 **** + return pname; + } + +- /* ARGSUSED */ + void + gui_mch_add_menu_item(menu, idx) + vimmenu_T *menu; +! int idx; + { + vimmenu_T *parent = menu->parent; + +--- 1172,1181 ---- + return pname; + } + + void + gui_mch_add_menu_item(menu, idx) + vimmenu_T *menu; +! int idx UNUSED; + { + vimmenu_T *parent = menu->parent; + +*************** +*** 1444,1450 **** + XtNchildren, &children, + XtNnumChildren, &numChildren, + NULL); +! for (i = 0; i < numChildren; i++) + { + whgt = 0; + +--- 1440,1446 ---- + XtNchildren, &children, + XtNnumChildren, &numChildren, + NULL); +! for (i = 0; i < (int)numChildren; i++) + { + whgt = 0; + +*************** +*** 1473,1482 **** + #endif + + +- /* ARGSUSED */ + void + gui_mch_toggle_tearoffs(enable) +! int enable; + { + /* no tearoff menus */ + } +--- 1469,1477 ---- + #endif + + + void + gui_mch_toggle_tearoffs(enable) +! int enable UNUSED; + { + /* no tearoff menus */ + } +*************** +*** 1537,1543 **** + else + get_left_margin = True; + +! for (i = 0; i < num_children; ++i) + { + if (children[i] == menu->id) + continue; +--- 1532,1538 ---- + else + get_left_margin = True; + +! for (i = 0; i < (int)num_children; ++i) + { + if (children[i] == menu->id) + continue; +*************** +*** 1645,1655 **** + } + } + +- /*ARGSUSED*/ + static void + gui_athena_menu_timeout(client_data, id) + XtPointer client_data; +! XtIntervalId *id; + { + Widget w = (Widget)client_data; + Widget popup; +--- 1640,1649 ---- + } + } + + static void + gui_athena_menu_timeout(client_data, id) + XtPointer client_data; +! XtIntervalId *id UNUSED; + { + Widget w = (Widget)client_data; + Widget popup; +*************** +*** 1678,1689 **** + * + * This is called when XtPopup() is called. + */ +- /*ARGSUSED*/ + static void + gui_athena_popup_callback(w, client_data, call_data) + Widget w; + XtPointer client_data; +! XtPointer call_data; + { + /* Assumption: XtIsSubclass(XtParent(w),simpleMenuWidgetClass) */ + vimmenu_T *menu = (vimmenu_T *)client_data; +--- 1672,1682 ---- + * + * This is called when XtPopup() is called. + */ + static void + gui_athena_popup_callback(w, client_data, call_data) + Widget w; + XtPointer client_data; +! XtPointer call_data UNUSED; + { + /* Assumption: XtIsSubclass(XtParent(w),simpleMenuWidgetClass) */ + vimmenu_T *menu = (vimmenu_T *)client_data; +*************** +*** 1711,1717 **** + NULL); + } + +- /* ARGSUSED */ + static void + gui_athena_popdown_submenus_action(w, event, args, nargs) + Widget w; +--- 1704,1709 ---- +*************** +*** 1756,1762 **** + return False; + } + +- /* ARGSUSED */ + static void + gui_athena_delayed_arm_action(w, event, args, nargs) + Widget w; +--- 1748,1753 ---- +*************** +*** 1837,1843 **** + * (XtIsSubclass(popup,simpleMenuWidgetClass) == True) */ + } + +- /* ARGSUSED */ + void + gui_mch_show_popupmenu(menu) + vimmenu_T *menu; +--- 1828,1833 ---- +*************** +*** 2046,2060 **** + * Put up a file requester. + * Returns the selected name in allocated memory, or NULL for Cancel. + */ +- /* ARGSUSED */ + char_u * + gui_mch_browse(saving, title, dflt, ext, initdir, filter) +! int saving; /* select file to write */ +! char_u *title; /* not used (title for the window) */ +! char_u *dflt; /* not used (default name) */ +! char_u *ext; /* not used (extension added) */ + char_u *initdir; /* initial directory, NULL for current dir */ +! char_u *filter; /* not used (file name filter) */ + { + Position x, y; + char_u dirbuf[MAXPATHL]; +--- 2036,2049 ---- + * Put up a file requester. + * Returns the selected name in allocated memory, or NULL for Cancel. + */ + char_u * + gui_mch_browse(saving, title, dflt, ext, initdir, filter) +! int saving UNUSED; /* select file to write */ +! char_u *title; /* title for the window */ +! char_u *dflt; /* default name */ +! char_u *ext UNUSED; /* extension added */ + char_u *initdir; /* initial directory, NULL for current dir */ +! char_u *filter UNUSED; /* file name filter */ + { + Position x, y; + char_u dirbuf[MAXPATHL]; +*************** +*** 2100,2112 **** + * Callback function for the textfield. When CR is hit this works like + * hitting the "OK" button, ESC like "Cancel". + */ +- /* ARGSUSED */ + static void + keyhit_callback(w, client_data, event, cont) +! Widget w; +! XtPointer client_data; + XEvent *event; +! Boolean *cont; + { + char buf[2]; + +--- 2089,2100 ---- + * Callback function for the textfield. When CR is hit this works like + * hitting the "OK" button, ESC like "Cancel". + */ + static void + keyhit_callback(w, client_data, event, cont) +! Widget w UNUSED; +! XtPointer client_data UNUSED; + XEvent *event; +! Boolean *cont UNUSED; + { + char buf[2]; + +*************** +*** 2119,2130 **** + } + } + +- /* ARGSUSED */ + static void + butproc(w, client_data, call_data) +! Widget w; + XtPointer client_data; +! XtPointer call_data; + { + dialogStatus = (int)(long)client_data + 1; + } +--- 2107,2117 ---- + } + } + + static void + butproc(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data; +! XtPointer call_data UNUSED; + { + dialogStatus = (int)(long)client_data + 1; + } +*************** +*** 2132,2158 **** + /* + * Function called when dialog window closed. + */ +- /*ARGSUSED*/ + static void + dialog_wm_handler(w, client_data, event, dum) +! Widget w; +! XtPointer client_data; + XEvent *event; +! Boolean *dum; + { + if (event->type == ClientMessage +! && ((XClientMessageEvent *)event)->data.l[0] == dialogatom) + dialogStatus = 0; + } + +- /* ARGSUSED */ + int + gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield) +! int type; + char_u *title; + char_u *message; + char_u *buttons; +! int dfltbutton; + char_u *textfield; + { + char_u *buts; +--- 2119,2143 ---- + /* + * Function called when dialog window closed. + */ + static void + dialog_wm_handler(w, client_data, event, dum) +! Widget w UNUSED; +! XtPointer client_data UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + if (event->type == ClientMessage +! && (Atom)((XClientMessageEvent *)event)->data.l[0] == dialogatom) + dialogStatus = 0; + } + + int + gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield) +! int type UNUSED; + char_u *title; + char_u *message; + char_u *buttons; +! int dfltbutton UNUSED; + char_u *textfield; + { + char_u *buts; +*** ../vim-7.2.183/src/gui_x11.c 2009-02-24 04:11:07.000000000 +0100 +--- src/gui_x11.c 2009-05-21 16:47:02.000000000 +0200 +*************** +*** 570,591 **** + * Call-back routines. + */ + +- /* ARGSUSED */ + static void + gui_x11_timer_cb(timed_out, interval_id) + XtPointer timed_out; +! XtIntervalId *interval_id; + { + *((int *)timed_out) = TRUE; + } + +- /* ARGSUSED */ + static void + gui_x11_visibility_cb(w, dud, event, dum) +! Widget w; +! XtPointer dud; + XEvent *event; +! Boolean *dum; + { + if (event->type != VisibilityNotify) + return; +--- 570,589 ---- + * Call-back routines. + */ + + static void + gui_x11_timer_cb(timed_out, interval_id) + XtPointer timed_out; +! XtIntervalId *interval_id UNUSED; + { + *((int *)timed_out) = TRUE; + } + + static void + gui_x11_visibility_cb(w, dud, event, dum) +! Widget w UNUSED; +! XtPointer dud UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + if (event->type != VisibilityNotify) + return; +*************** +*** 603,615 **** + gui_mch_update(); + } + +- /* ARGSUSED */ + static void + gui_x11_expose_cb(w, dud, event, dum) +! Widget w; +! XtPointer dud; + XEvent *event; +! Boolean *dum; + { + XExposeEvent *gevent; + int new_x; +--- 601,612 ---- + gui_mch_update(); + } + + static void + gui_x11_expose_cb(w, dud, event, dum) +! Widget w UNUSED; +! XtPointer dud UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + XExposeEvent *gevent; + int new_x; +*************** +*** 680,692 **** + } + #endif + +- /* ARGSUSED */ + static void + gui_x11_resize_window_cb(w, dud, event, dum) +! Widget w; +! XtPointer dud; + XEvent *event; +! Boolean *dum; + { + static int lastWidth, lastHeight; + +--- 677,688 ---- + } + #endif + + static void + gui_x11_resize_window_cb(w, dud, event, dum) +! Widget w UNUSED; +! XtPointer dud UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + static int lastWidth, lastHeight; + +*************** +*** 727,761 **** + #endif + } + +- /* ARGSUSED */ + static void + gui_x11_focus_change_cb(w, data, event, dum) +! Widget w; +! XtPointer data; + XEvent *event; +! Boolean *dum; + { + gui_focus_change(event->type == FocusIn); + } + +- /* ARGSUSED */ + static void + gui_x11_enter_cb(w, data, event, dum) +! Widget w; +! XtPointer data; +! XEvent *event; +! Boolean *dum; + { + gui_focus_change(TRUE); + } + +- /* ARGSUSED */ + static void + gui_x11_leave_cb(w, data, event, dum) +! Widget w; +! XtPointer data; +! XEvent *event; +! Boolean *dum; + { + gui_focus_change(FALSE); + } +--- 723,754 ---- + #endif + } + + static void + gui_x11_focus_change_cb(w, data, event, dum) +! Widget w UNUSED; +! XtPointer data UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + gui_focus_change(event->type == FocusIn); + } + + static void + gui_x11_enter_cb(w, data, event, dum) +! Widget w UNUSED; +! XtPointer data UNUSED; +! XEvent *event UNUSED; +! Boolean *dum UNUSED; + { + gui_focus_change(TRUE); + } + + static void + gui_x11_leave_cb(w, data, event, dum) +! Widget w UNUSED; +! XtPointer data UNUSED; +! XEvent *event UNUSED; +! Boolean *dum UNUSED; + { + gui_focus_change(FALSE); + } +*************** +*** 766,778 **** + # endif + #endif + +- /* ARGSUSED */ + void + gui_x11_key_hit_cb(w, dud, event, dum) +! Widget w; +! XtPointer dud; + XEvent *event; +! Boolean *dum; + { + XKeyPressedEvent *ev_press; + #ifdef FEAT_XIM +--- 759,770 ---- + # endif + #endif + + void + gui_x11_key_hit_cb(w, dud, event, dum) +! Widget w UNUSED; +! XtPointer dud UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + XKeyPressedEvent *ev_press; + #ifdef FEAT_XIM +*************** +*** 1078,1090 **** + #endif + } + +- /* ARGSUSED */ + static void + gui_x11_mouse_cb(w, dud, event, dum) +! Widget w; +! XtPointer dud; + XEvent *event; +! Boolean *dum; + { + static XtIntervalId timer = (XtIntervalId)0; + static int timed_out = TRUE; +--- 1070,1081 ---- + #endif + } + + static void + gui_x11_mouse_cb(w, dud, event, dum) +! Widget w UNUSED; +! XtPointer dud UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + static XtIntervalId timer = (XtIntervalId)0; + static int timed_out = TRUE; +*************** +*** 1210,1220 **** + while (arg < *argc) + { + /* Look for argv[arg] in cmdline_options[] table */ +! for (i = 0; i < XtNumber(cmdline_options); i++) + if (strcmp(argv[arg], cmdline_options[i].option) == 0) + break; + +! if (i < XtNumber(cmdline_options)) + { + /* Remember finding "-rv" or "-reverse" */ + if (strcmp("-rv", argv[arg]) == 0 +--- 1201,1211 ---- + while (arg < *argc) + { + /* Look for argv[arg] in cmdline_options[] table */ +! for (i = 0; i < (int)XtNumber(cmdline_options); i++) + if (strcmp(argv[arg], cmdline_options[i].option) == 0) + break; + +! if (i < (int)XtNumber(cmdline_options)) + { + /* Remember finding "-rv" or "-reverse" */ + if (strcmp("-rv", argv[arg]) == 0 +*************** +*** 1319,1330 **** + + static void local_xsmp_handle_requests __ARGS((XtPointer c, int *s, XtInputId *i)); + +- /*ARGSUSED*/ + static void + local_xsmp_handle_requests(c, s, i) +! XtPointer c; +! int *s; +! XtInputId *i; + { + if (xsmp_handle_requests() == FAIL) + XtRemoveInput(_xsmp_xtinputid); +--- 1310,1320 ---- + + static void local_xsmp_handle_requests __ARGS((XtPointer c, int *s, XtInputId *i)); + + static void + local_xsmp_handle_requests(c, s, i) +! XtPointer c UNUSED; +! int *s UNUSED; +! XtInputId *i UNUSED; + { + if (xsmp_handle_requests() == FAIL) + XtRemoveInput(_xsmp_xtinputid); +*************** +*** 1438,1444 **** + Columns = w; + if (mask & HeightValue) + { +! if (p_window > h - 1 || !option_was_set((char_u *)"window")) + p_window = h - 1; + Rows = h; + } +--- 1428,1434 ---- + Columns = w; + if (mask & HeightValue) + { +! if (p_window > (long)h - 1 || !option_was_set((char_u *)"window")) + p_window = h - 1; + Rows = h; + } +*************** +*** 1753,1762 **** + } + #endif + +- /*ARGSUSED*/ + void + gui_mch_exit(rc) +! int rc; + { + #if 0 + /* Lesstif gives an error message here, and so does Solaris. The man page +--- 1743,1751 ---- + } + #endif + + void + gui_mch_exit(rc) +! int rc UNUSED; + { + #if 0 + /* Lesstif gives an error message here, and so does Solaris. The man page +*************** +*** 1799,1805 **** + NULL); + } + +- /*ARGSUSED*/ + void + gui_mch_set_shellsize(width, height, min_width, min_height, + base_width, base_height, direction) +--- 1788,1793 ---- +*************** +*** 1809,1815 **** + int min_height; + int base_width; + int base_height; +! int direction; + { + #ifdef FEAT_XIM + height += xim_get_status_area_height(), +--- 1797,1803 ---- + int min_height; + int base_width; + int base_height; +! int direction UNUSED; + { + #ifdef FEAT_XIM + height += xim_get_status_area_height(), +*************** +*** 1847,1857 **** + * If "fontset" is TRUE, load the "font_name" as a fontset. + * Return FAIL if the font could not be loaded, OK otherwise. + */ +- /*ARGSUSED*/ + int + gui_mch_init_font(font_name, do_fontset) + char_u *font_name; +! int do_fontset; + { + XFontStruct *font = NULL; + +--- 1835,1844 ---- + * If "fontset" is TRUE, load the "font_name" as a fontset. + * Return FAIL if the font could not be loaded, OK otherwise. + */ + int + gui_mch_init_font(font_name, do_fontset) + char_u *font_name; +! int do_fontset UNUSED; + { + XFontStruct *font = NULL; + +*************** +*** 2029,2038 **** + * Return the name of font "font" in allocated memory. + * Don't know how to get the actual name, thus use the provided name. + */ +- /*ARGSUSED*/ + char_u * + gui_mch_get_fontname(font, name) +! GuiFont font; + char_u *name; + { + if (name == NULL) +--- 2016,2024 ---- + * Return the name of font "font" in allocated memory. + * Don't know how to get the actual name, thus use the provided name. + */ + char_u * + gui_mch_get_fontname(font, name) +! GuiFont font UNUSED; + char_u *name; + { + if (name == NULL) +*************** +*** 2521,2527 **** + { + int i; + int offset; +! const static int val[8] = {1, 0, 0, 0, 1, 2, 2, 2 }; + + XSetForeground(gui.dpy, gui.text_gc, prev_sp_color); + for (i = FILL_X(col); i < FILL_X(col + cells); ++i) +--- 2507,2513 ---- + { + int i; + int offset; +! static const int val[8] = {1, 0, 0, 0, 1, 2, 2, 2 }; + + XSetForeground(gui.dpy, gui.text_gc, prev_sp_color); + for (i = FILL_X(col); i < FILL_X(col + cells); ++i) +*************** +*** 2569,2576 **** + # ifdef FEAT_XFONTSET + if (current_fontset != NULL) + { +! if (c >= 0x10000 && sizeof(wchar_t) <= 2) + c = 0xbf; /* show chars > 0xffff as ? */ + ((wchar_t *)buf)[wlen] = c; + } + else +--- 2555,2564 ---- + # ifdef FEAT_XFONTSET + if (current_fontset != NULL) + { +! # ifdef SMALL_WCHAR_T +! if (c >= 0x10000) + c = 0xbf; /* show chars > 0xffff as ? */ ++ # endif + ((wchar_t *)buf)[wlen] = c; + } + else +*************** +*** 3136,3146 **** + /* Nothing to do in X */ + } + +- /* ARGSUSED */ + void + gui_x11_menu_cb(w, client_data, call_data) +! Widget w; +! XtPointer client_data, call_data; + { + gui_menu_cb((vimmenu_T *)client_data); + } +--- 3124,3134 ---- + /* Nothing to do in X */ + } + + void + gui_x11_menu_cb(w, client_data, call_data) +! Widget w UNUSED; +! XtPointer client_data; +! XtPointer call_data UNUSED; + { + gui_menu_cb((vimmenu_T *)client_data); + } +*************** +*** 3153,3165 **** + * Function called when window closed. Works like ":qa". + * Should put up a requester! + */ +- /*ARGSUSED*/ + static void + gui_x11_wm_protocol_handler(w, client_data, event, dum) +! Widget w; +! XtPointer client_data; + XEvent *event; +! Boolean *dum; + { + /* + * Only deal with Client messages. +--- 3141,3152 ---- + * Function called when window closed. Works like ":qa". + * Should put up a requester! + */ + static void + gui_x11_wm_protocol_handler(w, client_data, event, dum) +! Widget w UNUSED; +! XtPointer client_data UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + /* + * Only deal with Client messages. +*************** +*** 3172,3178 **** + * exit. That can be cancelled though, thus Vim shouldn't exit here. + * Just sync our swap files. + */ +! if (((XClientMessageEvent *)event)->data.l[0] == + wm_atoms[SAVE_YOURSELF_IDX]) + { + out_flush(); +--- 3159,3165 ---- + * exit. That can be cancelled though, thus Vim shouldn't exit here. + * Just sync our swap files. + */ +! if ((Atom)((XClientMessageEvent *)event)->data.l[0] == + wm_atoms[SAVE_YOURSELF_IDX]) + { + out_flush(); +*************** +*** 3185,3191 **** + return; + } + +! if (((XClientMessageEvent *)event)->data.l[0] != + wm_atoms[DELETE_WINDOW_IDX]) + return; + +--- 3172,3178 ---- + return; + } + +! if ((Atom)((XClientMessageEvent *)event)->data.l[0] != + wm_atoms[DELETE_WINDOW_IDX]) + return; + +*************** +*** 3196,3208 **** + /* + * Function called when property changed. Check for incoming commands + */ +- /*ARGSUSED*/ + static void + gui_x11_send_event_handler(w, client_data, event, dum) +! Widget w; +! XtPointer client_data; + XEvent *event; +! Boolean *dum; + { + XPropertyEvent *e = (XPropertyEvent *) event; + +--- 3183,3194 ---- + /* + * Function called when property changed. Check for incoming commands + */ + static void + gui_x11_send_event_handler(w, client_data, event, dum) +! Widget w UNUSED; +! XtPointer client_data UNUSED; + XEvent *event; +! Boolean *dum UNUSED; + { + XPropertyEvent *e = (XPropertyEvent *) event; + +*************** +*** 3277,3287 **** + } + } + +- /* ARGSUSED */ + static void + gui_x11_blink_cb(timed_out, interval_id) +! XtPointer timed_out; +! XtIntervalId *interval_id; + { + if (blink_state == BLINK_ON) + { +--- 3263,3272 ---- + } + } + + static void + gui_x11_blink_cb(timed_out, interval_id) +! XtPointer timed_out UNUSED; +! XtIntervalId *interval_id UNUSED; + { + if (blink_state == BLINK_ON) + { +*** ../vim-7.2.183/src/gui.c 2009-05-17 16:23:20.000000000 +0200 +--- src/gui.c 2009-05-21 16:37:39.000000000 +0200 +*************** +*** 3119,3125 **** + */ + void + gui_init_which_components(oldval) +! char_u *oldval; + { + #ifdef FEAT_MENU + static int prev_menu_is_active = -1; +--- 3119,3125 ---- + */ + void + gui_init_which_components(oldval) +! char_u *oldval UNUSED; + { + #ifdef FEAT_MENU + static int prev_menu_is_active = -1; +*************** +*** 4668,4675 **** + */ + static win_T * + xy2win(x, y) +! int x; +! int y; + { + #ifdef FEAT_WINDOWS + int row; +--- 4668,4675 ---- + */ + static win_T * + xy2win(x, y) +! int x UNUSED; +! int y UNUSED; + { + #ifdef FEAT_WINDOWS + int row; +*************** +*** 5121,5128 **** + */ + void + gui_handle_drop(x, y, modifiers, fnames, count) +! int x; +! int y; + int_u modifiers; + char_u **fnames; + int count; +--- 5121,5128 ---- + */ + void + gui_handle_drop(x, y, modifiers, fnames, count) +! int x UNUSED; +! int y UNUSED; + int_u modifiers; + char_u **fnames; + int count; +*** ../vim-7.2.183/src/gui_beval.c 2009-05-17 16:23:20.000000000 +0200 +--- src/gui_beval.c 2009-05-21 15:03:02.000000000 +0200 +*************** +*** 18,24 **** + void + general_beval_cb(beval, state) + BalloonEval *beval; +! int state; + { + win_T *wp; + int col; +--- 18,24 ---- + void + general_beval_cb(beval, state) + BalloonEval *beval; +! int state UNUSED; + { + win_T *wp; + int col; +*************** +*** 726,735 **** + */ + static void + pointerEventEH(w, client_data, event, unused) +! Widget w; + XtPointer client_data; + XEvent *event; +! Boolean *unused; + { + BalloonEval *beval = (BalloonEval *)client_data; + pointerEvent(beval, event); +--- 726,735 ---- + */ + static void + pointerEventEH(w, client_data, event, unused) +! Widget w UNUSED; + XtPointer client_data; + XEvent *event; +! Boolean *unused UNUSED; + { + BalloonEval *beval = (BalloonEval *)client_data; + pointerEvent(beval, event); +*************** +*** 877,883 **** + static void + timerRoutine(dx, id) + XtPointer dx; +! XtIntervalId *id; + { + BalloonEval *beval = (BalloonEval *)dx; + +--- 877,883 ---- + static void + timerRoutine(dx, id) + XtPointer dx; +! XtIntervalId *id UNUSED; + { + BalloonEval *beval = (BalloonEval *)dx; + +*** ../vim-7.2.183/src/gui_at_sb.c 2008-11-28 21:26:50.000000000 +0100 +--- src/gui_at_sb.c 2009-05-21 16:38:53.000000000 +0200 +*************** +*** 198,207 **** + /* extension */ NULL + }, + { /* simple fields */ +! /* change_sensitive */ XtInheritChangeSensitive + }, + { /* scrollbar fields */ +! /* ignore */ 0 + } + }; + +--- 198,210 ---- + /* extension */ NULL + }, + { /* simple fields */ +! /* change_sensitive */ XtInheritChangeSensitive, +! #ifndef OLDXAW +! /* extension */ NULL +! #endif + }, + { /* scrollbar fields */ +! /* empty */ 0 + } + }; + +*************** +*** 241,247 **** + + if (bottom <= 0 || bottom <= top) + return; +! if ((sw = sbw->scrollbar.shadow_width) < 0) + sw = 0; + margin = MARGIN (sbw); + floor = sbw->scrollbar.length - margin + 2; +--- 244,251 ---- + + if (bottom <= 0 || bottom <= top) + return; +! sw = sbw->scrollbar.shadow_width; +! if (sw < 0) + sw = 0; + margin = MARGIN (sbw); + floor = sbw->scrollbar.length - margin + 2; +*************** +*** 516,528 **** + } + } + +- /* ARGSUSED */ + static void + Initialize(request, new, args, num_args) +! Widget request; /* what the client asked for */ + Widget new; /* what we're going to give him */ +! ArgList args; +! Cardinal *num_args; + { + ScrollbarWidget sbw = (ScrollbarWidget) new; + +--- 520,531 ---- + } + } + + static void + Initialize(request, new, args, num_args) +! Widget request UNUSED; /* what the client asked for */ + Widget new; /* what we're going to give him */ +! ArgList args UNUSED; +! Cardinal *num_args UNUSED; + { + ScrollbarWidget sbw = (ScrollbarWidget) new; + +*************** +*** 556,569 **** + (w, valueMask, attributes); + } + +- /* ARGSUSED */ + static Boolean + SetValues(current, request, desired, args, num_args) +! Widget current, /* what I am */ +! request, /* what he wants me to be */ +! desired; /* what I will become */ +! ArgList args; +! Cardinal *num_args; + { + ScrollbarWidget sbw = (ScrollbarWidget) current; + ScrollbarWidget dsbw = (ScrollbarWidget) desired; +--- 559,571 ---- + (w, valueMask, attributes); + } + + static Boolean + SetValues(current, request, desired, args, num_args) +! Widget current; /* what I am */ +! Widget request UNUSED; /* what he wants me to be */ +! Widget desired; /* what I will become */ +! ArgList args UNUSED; +! Cardinal *num_args UNUSED; + { + ScrollbarWidget sbw = (ScrollbarWidget) current; + ScrollbarWidget dsbw = (ScrollbarWidget) desired; +*************** +*** 609,615 **** + } + + +- /* ARGSUSED */ + static void + Redisplay(w, event, region) + Widget w; +--- 611,616 ---- +*************** +*** 789,799 **** + } + } + +- /* ARGSUSED */ + static void + RepeatNotify(client_data, idp) + XtPointer client_data; +! XtIntervalId *idp; + { + ScrollbarWidget sbw = (ScrollbarWidget) client_data; + int call_data; +--- 790,799 ---- + } + } + + static void + RepeatNotify(client_data, idp) + XtPointer client_data; +! XtIntervalId *idp UNUSED; + { + ScrollbarWidget sbw = (ScrollbarWidget) client_data; + int call_data; +*************** +*** 839,884 **** + return (num < small) ? small : ((num > big) ? big : num); + } + +- /* ARGSUSED */ + static void + ScrollOneLineUp(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params; +! Cardinal *num_params; + { + ScrollSome(w, event, -ONE_LINE_DATA); + } + +- /* ARGSUSED */ + static void + ScrollOneLineDown(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params; +! Cardinal *num_params; + { + ScrollSome(w, event, ONE_LINE_DATA); + } + +- /* ARGSUSED */ + static void + ScrollPageDown(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params; +! Cardinal *num_params; + { + ScrollSome(w, event, ONE_PAGE_DATA); + } + +- /* ARGSUSED */ + static void + ScrollPageUp(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params; +! Cardinal *num_params; + { + ScrollSome(w, event, -ONE_PAGE_DATA); + } +--- 839,880 ---- + return (num < small) ? small : ((num > big) ? big : num); + } + + static void + ScrollOneLineUp(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { + ScrollSome(w, event, -ONE_LINE_DATA); + } + + static void + ScrollOneLineDown(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { + ScrollSome(w, event, ONE_LINE_DATA); + } + + static void + ScrollPageDown(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { + ScrollSome(w, event, ONE_PAGE_DATA); + } + + static void + ScrollPageUp(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { + ScrollSome(w, event, -ONE_PAGE_DATA); + } +*************** +*** 901,913 **** + XtCallCallbacks(w, XtNscrollProc, (XtPointer)call_data); + } + +- /* ARGSUSED */ + static void + NotifyScroll(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params; +! Cardinal *num_params; + { + ScrollbarWidget sbw = (ScrollbarWidget) w; + Position x, y, loc; +--- 897,908 ---- + XtCallCallbacks(w, XtNscrollProc, (XtPointer)call_data); + } + + static void + NotifyScroll(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { + ScrollbarWidget sbw = (ScrollbarWidget) w; + Position x, y, loc; +*************** +*** 991,1003 **** + delay, RepeatNotify, (XtPointer)w); + } + +- /* ARGSUSED */ + static void + EndScroll(w, event, params, num_params) + Widget w; +! XEvent *event; /* unused */ +! String *params; /* unused */ +! Cardinal *num_params; /* unused */ + { + ScrollbarWidget sbw = (ScrollbarWidget) w; + +--- 986,997 ---- + delay, RepeatNotify, (XtPointer)w); + } + + static void + EndScroll(w, event, params, num_params) + Widget w; +! XEvent *event UNUSED; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { + ScrollbarWidget sbw = (ScrollbarWidget) w; + +*************** +*** 1023,1035 **** + return PICKLENGTH(sbw, x / width, y / height); + } + +- /* ARGSUSED */ + static void + MoveThumb(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params; /* unused */ +! Cardinal *num_params; /* unused */ + { + ScrollbarWidget sbw = (ScrollbarWidget)w; + Position x, y; +--- 1017,1028 ---- + return PICKLENGTH(sbw, x / width, y / height); + } + + static void + MoveThumb(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { + ScrollbarWidget sbw = (ScrollbarWidget)w; + Position x, y; +*************** +*** 1069,1081 **** + } + + +- /* ARGSUSED */ + static void + NotifyThumb(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params; /* unused */ +! Cardinal *num_params; /* unused */ + { + ScrollbarWidget sbw = (ScrollbarWidget)w; + /* Use a union to avoid a warning for the weird conversion from float to +--- 1062,1073 ---- + } + + + static void + NotifyThumb(w, event, params, num_params) + Widget w; + XEvent *event; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { + ScrollbarWidget sbw = (ScrollbarWidget)w; + /* Use a union to avoid a warning for the weird conversion from float to +*************** +*** 1096,1102 **** + XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top); + } + +- /* ARGSUSED */ + static void + AllocTopShadowGC(w) + Widget w; +--- 1088,1093 ---- +*************** +*** 1110,1116 **** + sbw->scrollbar.top_shadow_GC = XtGetGC(w, valuemask, &myXGCV); + } + +- /* ARGSUSED */ + static void + AllocBotShadowGC(w) + Widget w; +--- 1101,1106 ---- +*************** +*** 1124,1134 **** + sbw->scrollbar.bot_shadow_GC = XtGetGC(w, valuemask, &myXGCV); + } + +- /* ARGSUSED */ + static void + _Xaw3dDrawShadows(gw, event, region, out) + Widget gw; +! XEvent *event; + Region region; + int out; + { +--- 1114,1123 ---- + sbw->scrollbar.bot_shadow_GC = XtGetGC(w, valuemask, &myXGCV); + } + + static void + _Xaw3dDrawShadows(gw, event, region, out) + Widget gw; +! XEvent *event UNUSED; + Region region; + int out; + { +*** ../vim-7.2.183/src/gui_at_fs.c 2006-05-13 15:51:07.000000000 +0200 +--- src/gui_at_fs.c 2009-05-21 16:38:36.000000000 +0200 +*************** +*** 829,835 **** + text.format = FMT8BIT; + + #ifdef XtNinternational +! if (_XawTextFormat((TextWidget)selFileField) == XawFmtWide) + { + XawTextReplace(selFileField, (XawTextPosition)0, + (XawTextPosition)WcsLen((wchar_t *)&SFtextBuffer[0]), &text); +--- 829,835 ---- + text.format = FMT8BIT; + + #ifdef XtNinternational +! if ((unsigned long)_XawTextFormat((TextWidget)selFileField) == XawFmtWide) + { + XawTextReplace(selFileField, (XawTextPosition)0, + (XawTextPosition)WcsLen((wchar_t *)&SFtextBuffer[0]), &text); +*************** +*** 851,867 **** + #endif + } + +- /* ARGSUSED */ + static void + SFbuttonPressList(w, n, event) +! Widget w; +! int n; +! XButtonPressedEvent *event; + { + SFbuttonPressed = 1; + } + +- /* ARGSUSED */ + static void + SFbuttonReleaseList(w, n, event) + Widget w; +--- 851,865 ---- + #endif + } + + static void + SFbuttonPressList(w, n, event) +! Widget w UNUSED; +! int n UNUSED; +! XButtonPressedEvent *event UNUSED; + { + SFbuttonPressed = 1; + } + + static void + SFbuttonReleaseList(w, n, event) + Widget w; +*************** +*** 989,999 **** + return result; + } + +- /* ARGSUSED */ + static void + SFdirModTimer(cl, id) +! XtPointer cl; +! XtIntervalId *id; + { + static int n = -1; + static int f = 0; +--- 987,996 ---- + return result; + } + + static void + SFdirModTimer(cl, id) +! XtPointer cl UNUSED; +! XtIntervalId *id UNUSED; + { + static int n = -1; + static int f = 0; +*************** +*** 1596,1606 **** + + static void SFscrollTimer __ARGS((XtPointer p, XtIntervalId *id)); + +- /* ARGSUSED */ + static void + SFscrollTimer(p, id) + XtPointer p; +! XtIntervalId *id; + { + SFDir *dir; + int save; +--- 1593,1602 ---- + + static void SFscrollTimer __ARGS((XtPointer p, XtIntervalId *id)); + + static void + SFscrollTimer(p, id) + XtPointer p; +! XtIntervalId *id UNUSED; + { + SFDir *dir; + int save; +*************** +*** 1695,1704 **** + } + } + +- /* ARGSUSED */ + static void + SFenterList(w, n, event) +! Widget w; + int n; + XEnterWindowEvent *event; + { +--- 1691,1699 ---- + } + } + + static void + SFenterList(w, n, event) +! Widget w UNUSED; + int n; + XEnterWindowEvent *event; + { +*************** +*** 1719,1730 **** + } + } + +- /* ARGSUSED */ + static void + SFleaveList(w, n, event) +! Widget w; + int n; +! XEvent *event; + { + if (SFcurrentInvert[n] != -1) + { +--- 1714,1724 ---- + } + } + + static void + SFleaveList(w, n, event) +! Widget w UNUSED; + int n; +! XEvent *event UNUSED; + { + if (SFcurrentInvert[n] != -1) + { +*************** +*** 1733,1742 **** + } + } + +- /* ARGSUSED */ + static void + SFmotionList(w, n, event) +! Widget w; + int n; + XMotionEvent *event; + { +--- 1727,1735 ---- + } + } + + static void + SFmotionList(w, n, event) +! Widget w UNUSED; + int n; + XMotionEvent *event; + { +*************** +*** 1754,1760 **** + } + } + +- /* ARGSUSED */ + static void + SFvFloatSliderMovedCallback(w, n, fnew) + Widget w; +--- 1747,1752 ---- +*************** +*** 1767,1776 **** + SFvSliderMovedCallback(w, (int)(long)n, nw); + } + +- /* ARGSUSED */ + static void + SFvSliderMovedCallback(w, n, nw) +! Widget w; + int n; + int nw; + { +--- 1759,1767 ---- + SFvSliderMovedCallback(w, (int)(long)n, nw); + } + + static void + SFvSliderMovedCallback(w, n, nw) +! Widget w UNUSED; + int n; + int nw; + { +*************** +*** 1853,1862 **** + } + } + +- /* ARGSUSED */ + static void + SFvAreaSelectedCallback(w, n, pnew) +! Widget w; + XtPointer n; + XtPointer pnew; + { +--- 1844,1852 ---- + } + } + + static void + SFvAreaSelectedCallback(w, n, pnew) +! Widget w; + XtPointer n; + XtPointer pnew; + { +*************** +*** 1914,1923 **** + SFvSliderMovedCallback(w, (int)(long)n, nw); + } + +- /* ARGSUSED */ + static void + SFhSliderMovedCallback(w, n, nw) +! Widget w; + XtPointer n; + XtPointer nw; + { +--- 1904,1912 ---- + SFvSliderMovedCallback(w, (int)(long)n, nw); + } + + static void + SFhSliderMovedCallback(w, n, nw) +! Widget w UNUSED; + XtPointer n; + XtPointer nw; + { +*************** +*** 1933,1942 **** + SFdrawList((int)(long)n, SF_DO_NOT_SCROLL); + } + +- /* ARGSUSED */ + static void + SFhAreaSelectedCallback(w, n, pnew) +! Widget w; + XtPointer n; + XtPointer pnew; + { +--- 1922,1930 ---- + SFdrawList((int)(long)n, SF_DO_NOT_SCROLL); + } + + static void + SFhAreaSelectedCallback(w, n, pnew) +! Widget w; + XtPointer n; + XtPointer pnew; + { +*************** +*** 1994,2004 **** + } + } + +- /* ARGSUSED */ + static void + SFpathSliderMovedCallback(w, client_data, nw) +! Widget w; +! XtPointer client_data; + XtPointer nw; + { + SFDir *dir; +--- 1982,1991 ---- + } + } + + static void + SFpathSliderMovedCallback(w, client_data, nw) +! Widget w UNUSED; +! XtPointer client_data UNUSED; + XtPointer nw; + { + SFDir *dir; +*************** +*** 2031,2041 **** + XawTextSetInsertionPoint(selFileField, pos); + } + +- /* ARGSUSED */ + static void + SFpathAreaSelectedCallback(w, client_data, pnew) + Widget w; +! XtPointer client_data; + XtPointer pnew; + { + int nw = (int)(long)pnew; +--- 2018,2027 ---- + XawTextSetInsertionPoint(selFileField, pos); + } + + static void + SFpathAreaSelectedCallback(w, client_data, pnew) + Widget w; +! XtPointer client_data UNUSED; + XtPointer pnew; + { + int nw = (int)(long)pnew; +*************** +*** 2206,2218 **** + + static void SFexposeList __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont)); + +- /* ARGSUSED */ + static void + SFexposeList(w, n, event, cont) +! Widget w; + XtPointer n; + XEvent *event; +! Boolean *cont; + { + if ((event->type == NoExpose) || event->xexpose.count) + return; +--- 2192,2203 ---- + + static void SFexposeList __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont)); + + static void + SFexposeList(w, n, event, cont) +! Widget w UNUSED; + XtPointer n; + XEvent *event; +! Boolean *cont UNUSED; + { + if ((event->type == NoExpose) || event->xexpose.count) + return; +*************** +*** 2222,2234 **** + + static void SFmodVerifyCallback __ARGS((Widget w, XtPointer client_data, XEvent *event, Boolean *cont)); + +- /* ARGSUSED */ + static void + SFmodVerifyCallback(w, client_data, event, cont) +! Widget w; +! XtPointer client_data; + XEvent *event; +! Boolean *cont; + { + char buf[2]; + +--- 2207,2218 ---- + + static void SFmodVerifyCallback __ARGS((Widget w, XtPointer client_data, XEvent *event, Boolean *cont)); + + static void + SFmodVerifyCallback(w, client_data, event, cont) +! Widget w UNUSED; +! XtPointer client_data UNUSED; + XEvent *event; +! Boolean *cont UNUSED; + { + char buf[2]; + +*************** +*** 2241,2251 **** + + static void SFokCallback __ARGS((Widget w, XtPointer cl, XtPointer cd)); + +- /* ARGSUSED */ + static void + SFokCallback(w, cl, cd) +! Widget w; +! XtPointer cl, cd; + { + SFstatus = SEL_FILE_OK; + } +--- 2225,2235 ---- + + static void SFokCallback __ARGS((Widget w, XtPointer cl, XtPointer cd)); + + static void + SFokCallback(w, cl, cd) +! Widget w UNUSED; +! XtPointer cl UNUSED; +! XtPointer cd UNUSED; + { + SFstatus = SEL_FILE_OK; + } +*************** +*** 2258,2268 **** + + static void SFcancelCallback __ARGS((Widget w, XtPointer cl, XtPointer cd)); + +- /* ARGSUSED */ + static void + SFcancelCallback(w, cl, cd) +! Widget w; +! XtPointer cl, cd; + { + SFstatus = SEL_FILE_CANCEL; + } +--- 2242,2252 ---- + + static void SFcancelCallback __ARGS((Widget w, XtPointer cl, XtPointer cd)); + + static void + SFcancelCallback(w, cl, cd) +! Widget w UNUSED; +! XtPointer cl UNUSED; +! XtPointer cd UNUSED; + { + SFstatus = SEL_FILE_CANCEL; + } +*************** +*** 2275,2290 **** + + static void SFdismissAction __ARGS((Widget w, XEvent *event, String *params, Cardinal *num_params)); + +- /* ARGSUSED */ + static void + SFdismissAction(w, event, params, num_params) +! Widget w; +! XEvent *event; +! String *params; +! Cardinal *num_params; + { +! if (event->type == ClientMessage && +! event->xclient.data.l[0] != SFwmDeleteWindow) + return; + + SFstatus = SEL_FILE_CANCEL; +--- 2259,2273 ---- + + static void SFdismissAction __ARGS((Widget w, XEvent *event, String *params, Cardinal *num_params)); + + static void + SFdismissAction(w, event, params, num_params) +! Widget w UNUSED; +! XEvent *event; +! String *params UNUSED; +! Cardinal *num_params UNUSED; + { +! if (event->type == ClientMessage +! && (Atom)event->xclient.data.l[0] != SFwmDeleteWindow) + return; + + SFstatus = SEL_FILE_CANCEL; +*************** +*** 2703,2709 **** + SFtextChanged() + { + #if defined(FEAT_XFONTSET) && defined(XtNinternational) +! if (_XawTextFormat((TextWidget)selFileField) == XawFmtWide) + { + wchar_t *wcbuf=(wchar_t *)SFtextBuffer; + +--- 2686,2692 ---- + SFtextChanged() + { + #if defined(FEAT_XFONTSET) && defined(XtNinternational) +! if ((unsigned long)_XawTextFormat((TextWidget)selFileField) == XawFmtWide) + { + wchar_t *wcbuf=(wchar_t *)SFtextBuffer; + +*************** +*** 2749,2755 **** + #if defined(FEAT_XFONTSET) && defined(XtNinternational) + char *buf; + +! if (_XawTextFormat((TextWidget)selFileField) == XawFmtWide) + { + wchar_t *wcbuf; + int mbslength; +--- 2732,2738 ---- + #if defined(FEAT_XFONTSET) && defined(XtNinternational) + char *buf; + +! if ((unsigned long)_XawTextFormat((TextWidget)selFileField) == XawFmtWide) + { + wchar_t *wcbuf; + int mbslength; +*** ../vim-7.2.183/src/gui_motif.c 2008-06-20 11:39:30.000000000 +0200 +--- src/gui_motif.c 2009-05-21 17:15:05.000000000 +0200 +*************** +*** 117,126 **** + * Call-back routines. + */ + +- /* ARGSUSED */ + static void + scroll_cb(w, client_data, call_data) +! Widget w; + XtPointer client_data, call_data; + { + scrollbar_T *sb; +--- 117,125 ---- + * Call-back routines. + */ + + static void + scroll_cb(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data, call_data; + { + scrollbar_T *sb; +*************** +*** 136,146 **** + } + + #ifdef FEAT_GUI_TABLINE +- /*ARGSUSED*/ + static void + tabline_cb(w, client_data, call_data) +! Widget w; +! XtPointer client_data, call_data; + { + XmNotebookCallbackStruct *nptr; + +--- 135,145 ---- + } + + #ifdef FEAT_GUI_TABLINE + static void + tabline_cb(w, client_data, call_data) +! Widget w UNUSED; +! XtPointer client_data UNUSED; +! XtPointer call_data; + { + XmNotebookCallbackStruct *nptr; + +*************** +*** 149,159 **** + send_tabline_event(nptr->page_number); + } + +- /*ARGSUSED*/ + static void + tabline_button_cb(w, client_data, call_data) + Widget w; +! XtPointer client_data, call_data; + { + int cmd, tab_idx; + +--- 148,158 ---- + send_tabline_event(nptr->page_number); + } + + static void + tabline_button_cb(w, client_data, call_data) + Widget w; +! XtPointer client_data UNUSED; +! XtPointer call_data UNUSED; + { + int cmd, tab_idx; + +*************** +*** 166,176 **** + /* + * Tabline single mouse click timeout handler + */ +- /*ARGSUSED*/ + static void + motif_tabline_timer_cb (timed_out, interval_id) + XtPointer timed_out; +! XtIntervalId *interval_id; + { + *((int *)timed_out) = TRUE; + } +--- 165,174 ---- + /* + * Tabline single mouse click timeout handler + */ + static void + motif_tabline_timer_cb (timed_out, interval_id) + XtPointer timed_out; +! XtIntervalId *interval_id UNUSED; + { + *((int *)timed_out) = TRUE; + } +*************** +*** 203,215 **** + return FALSE; + } + +- /*ARGSUSED*/ + static void + tabline_menu_cb(w, closure, e, continue_dispatch) + Widget w; +! XtPointer closure; + XEvent *e; +! Boolean *continue_dispatch; + { + Widget tab_w; + XButtonPressedEvent *event; +--- 201,212 ---- + return FALSE; + } + + static void + tabline_menu_cb(w, closure, e, continue_dispatch) + Widget w; +! XtPointer closure UNUSED; + XEvent *e; +! Boolean *continue_dispatch UNUSED; + { + Widget tab_w; + XButtonPressedEvent *event; +*************** +*** 277,287 **** + XtManageChild(tabLine_menu); + } + +- /*ARGSUSED*/ + static void + tabline_balloon_cb(beval, state) + BalloonEval *beval; +! int state; + { + int nr; + tabpage_T *tp; +--- 274,283 ---- + XtManageChild(tabLine_menu); + } + + static void + tabline_balloon_cb(beval, state) + BalloonEval *beval; +! int state UNUSED; + { + int nr; + tabpage_T *tp; +*************** +*** 642,654 **** + #endif + } + +- /*ARGSUSED*/ + void + gui_mch_set_text_area_pos(x, y, w, h) +! int x; +! int y; +! int w; +! int h; + { + #ifdef FEAT_TOOLBAR + /* Give keyboard focus to the textArea instead of the toolbar. */ +--- 638,649 ---- + #endif + } + + void + gui_mch_set_text_area_pos(x, y, w, h) +! int x UNUSED; +! int y UNUSED; +! int w UNUSED; +! int h UNUSED; + { + #ifdef FEAT_TOOLBAR + /* Give keyboard focus to the textArea instead of the toolbar. */ +*************** +*** 1261,1267 **** + if (menu->icon_builtin || gui_find_bitmap(menu->name, buf, "xpm") == FAIL) + { + if (menu->iconidx >= 0 && menu->iconidx +! < (sizeof(built_in_pixmaps) / sizeof(built_in_pixmaps[0]))) + xpm = built_in_pixmaps[menu->iconidx]; + else + xpm = tb_blank_xpm; +--- 1256,1262 ---- + if (menu->icon_builtin || gui_find_bitmap(menu->name, buf, "xpm") == FAIL) + { + if (menu->iconidx >= 0 && menu->iconidx +! < (int)(sizeof(built_in_pixmaps) / sizeof(built_in_pixmaps[0]))) + xpm = built_in_pixmaps[menu->iconidx]; + else + xpm = tb_blank_xpm; +*************** +*** 1716,1725 **** + } + } + +- /* ARGSUSED */ + void + gui_mch_show_popupmenu(menu) +! vimmenu_T *menu; + { + #ifdef MOTIF_POPUP + XmMenuPosition(menu->submenu_id, gui_x11_get_last_mouse_event()); +--- 1711,1719 ---- + } + } + + void + gui_mch_show_popupmenu(menu) +! vimmenu_T *menu UNUSED; + { + #ifdef MOTIF_POPUP + XmMenuPosition(menu->submenu_id, gui_x11_get_last_mouse_event()); +*************** +*** 2046,2054 **** + /* + * Callback routine for dialog mnemonic processing. + */ +- /*ARGSUSED*/ + static void +! mnemonic_event(Widget w, XtPointer call_data, XKeyEvent *event) + { + do_mnemonic(w, event->keycode); + } +--- 2040,2047 ---- + /* + * Callback routine for dialog mnemonic processing. + */ + static void +! mnemonic_event(Widget w, XtPointer call_data UNUSED, XKeyEvent *event) + { + do_mnemonic(w, event->keycode); + } +*************** +*** 2287,2299 **** + * Put up a file requester. + * Returns the selected name in allocated memory, or NULL for Cancel. + */ +- /* ARGSUSED */ + char_u * + gui_mch_browse(saving, title, dflt, ext, initdir, filter) +! int saving; /* select file to write */ + char_u *title; /* title for the window */ + char_u *dflt; /* default name */ +! char_u *ext; /* not used (extension added) */ + char_u *initdir; /* initial directory, NULL for current dir */ + char_u *filter; /* file name filter */ + { +--- 2280,2291 ---- + * Put up a file requester. + * Returns the selected name in allocated memory, or NULL for Cancel. + */ + char_u * + gui_mch_browse(saving, title, dflt, ext, initdir, filter) +! int saving UNUSED; /* select file to write */ + char_u *title; /* title for the window */ + char_u *dflt; /* default name */ +! char_u *ext UNUSED; /* not used (extension added) */ + char_u *initdir; /* initial directory, NULL for current dir */ + char_u *filter; /* file name filter */ + { +*************** +*** 2413,2424 **** + /* + * Process callback from Dialog cancel actions. + */ +- /* ARGSUSED */ + static void + DialogCancelCB(w, client_data, call_data) +! Widget w; /* widget id */ +! XtPointer client_data; /* data from application */ +! XtPointer call_data; /* data from widget class */ + { + if (browse_fname != NULL) + { +--- 2405,2415 ---- + /* + * Process callback from Dialog cancel actions. + */ + static void + DialogCancelCB(w, client_data, call_data) +! Widget w UNUSED; /* widget id */ +! XtPointer client_data UNUSED; /* data from application */ +! XtPointer call_data UNUSED; /* data from widget class */ + { + if (browse_fname != NULL) + { +*************** +*** 2431,2442 **** + /* + * Process callback from Dialog actions. + */ +- /* ARGSUSED */ + static void + DialogAcceptCB(w, client_data, call_data) +! Widget w; /* widget id */ +! XtPointer client_data; /* data from application */ +! XtPointer call_data; /* data from widget class */ + { + XmFileSelectionBoxCallbackStruct *fcb; + +--- 2422,2432 ---- + /* + * Process callback from Dialog actions. + */ + static void + DialogAcceptCB(w, client_data, call_data) +! Widget w UNUSED; /* widget id */ +! XtPointer client_data UNUSED; /* data from application */ +! XtPointer call_data; /* data from widget class */ + { + XmFileSelectionBoxCallbackStruct *fcb; + +*************** +*** 2467,2479 **** + * Callback function for the textfield. When CR is hit this works like + * hitting the "OK" button, ESC like "Cancel". + */ +- /* ARGSUSED */ + static void + keyhit_callback(w, client_data, event, cont) + Widget w; +! XtPointer client_data; + XEvent *event; +! Boolean *cont; + { + char buf[2]; + KeySym key_sym; +--- 2457,2468 ---- + * Callback function for the textfield. When CR is hit this works like + * hitting the "OK" button, ESC like "Cancel". + */ + static void + keyhit_callback(w, client_data, event, cont) + Widget w; +! XtPointer client_data UNUSED; + XEvent *event; +! Boolean *cont UNUSED; + { + char buf[2]; + KeySym key_sym; +*************** +*** 2490,2501 **** + XmTextFieldClearSelection(w, XtLastTimestampProcessed(gui.dpy)); + } + +- /* ARGSUSED */ + static void + butproc(w, client_data, call_data) +! Widget w; + XtPointer client_data; +! XtPointer call_data; + { + dialogStatus = (int)(long)client_data + 1; + } +--- 2479,2489 ---- + XmTextFieldClearSelection(w, XtLastTimestampProcessed(gui.dpy)); + } + + static void + butproc(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data; +! XtPointer call_data UNUSED; + { + dialogStatus = (int)(long)client_data + 1; + } +*************** +*** 2567,2576 **** + } + #endif + +- /* ARGSUSED */ + int + gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield) +! int type; + char_u *title; + char_u *message; + char_u *button_names; +--- 2555,2563 ---- + } + #endif + + int + gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield) +! int type UNUSED; + char_u *title; + char_u *message; + char_u *button_names; +*************** +*** 3197,3203 **** + XmNchildren, &children, + XmNnumChildren, &numChildren, NULL); + borders += tst + tmh; +! for (i = 0; i < numChildren; i++) + { + whgt = 0; + XtVaGetValues(children[i], XmNheight, &whgt, NULL); +--- 3184,3190 ---- + XmNchildren, &children, + XmNnumChildren, &numChildren, NULL); + borders += tst + tmh; +! for (i = 0; i < (int)numChildren; i++) + { + whgt = 0; + XtVaGetValues(children[i], XmNheight, &whgt, NULL); +*************** +*** 3237,3249 **** + * I have to use footer help for backwards compatability. Hopefully both will + * get implemented and the user will have a choice. + */ +- /*ARGSUSED*/ + static void + toolbarbutton_enter_cb(w, client_data, event, cont) +! Widget w; + XtPointer client_data; +! XEvent *event; +! Boolean *cont; + { + vimmenu_T *menu = (vimmenu_T *) client_data; + +--- 3224,3235 ---- + * I have to use footer help for backwards compatability. Hopefully both will + * get implemented and the user will have a choice. + */ + static void + toolbarbutton_enter_cb(w, client_data, event, cont) +! Widget w UNUSED; + XtPointer client_data; +! XEvent *event UNUSED; +! Boolean *cont UNUSED; + { + vimmenu_T *menu = (vimmenu_T *) client_data; + +*************** +*** 3254,3266 **** + } + } + +- /*ARGSUSED*/ + static void + toolbarbutton_leave_cb(w, client_data, event, cont) +! Widget w; +! XtPointer client_data; +! XEvent *event; +! Boolean *cont; + { + gui_mch_set_footer((char_u *) ""); + } +--- 3240,3251 ---- + } + } + + static void + toolbarbutton_leave_cb(w, client_data, event, cont) +! Widget w UNUSED; +! XtPointer client_data UNUSED; +! XEvent *event UNUSED; +! Boolean *cont UNUSED; + { + gui_mch_set_footer((char_u *) ""); + } +*************** +*** 3492,3501 **** + /* + * Set the fontlist for Widget "id" to use gui.menu_fontset or gui.menu_font. + */ +- /*ARGSUSED*/ + void + gui_motif_menu_fontlist(id) +! Widget id; + { + #ifdef FEAT_MENU + #ifdef FONTSET_ALWAYS +--- 3477,3485 ---- + /* + * Set the fontlist for Widget "id" to use gui.menu_fontset or gui.menu_font. + */ + void + gui_motif_menu_fontlist(id) +! Widget id UNUSED; + { + #ifdef FEAT_MENU + #ifdef FONTSET_ALWAYS +*************** +*** 3566,3573 **** + Widget cancel; + } SharedFindReplace; + +! static SharedFindReplace find_widgets = { NULL }; +! static SharedFindReplace repl_widgets = { NULL }; + + static void find_replace_destroy_callback __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); + static void find_replace_dismiss_callback __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); +--- 3550,3557 ---- + Widget cancel; + } SharedFindReplace; + +! static SharedFindReplace find_widgets = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; +! static SharedFindReplace repl_widgets = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; + + static void find_replace_destroy_callback __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); + static void find_replace_dismiss_callback __ARGS((Widget w, XtPointer client_data, XtPointer call_data)); +*************** +*** 3576,3587 **** + static void find_replace_keypress __ARGS((Widget w, SharedFindReplace * frdp, XKeyEvent * event)); + static void find_replace_dialog_create __ARGS((char_u *entry_text, int do_replace)); + +- /*ARGSUSED*/ + static void + find_replace_destroy_callback(w, client_data, call_data) +! Widget w; + XtPointer client_data; +! XtPointer call_data; + { + SharedFindReplace *cd = (SharedFindReplace *)client_data; + +--- 3560,3570 ---- + static void find_replace_keypress __ARGS((Widget w, SharedFindReplace * frdp, XKeyEvent * event)); + static void find_replace_dialog_create __ARGS((char_u *entry_text, int do_replace)); + + static void + find_replace_destroy_callback(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data; +! XtPointer call_data UNUSED; + { + SharedFindReplace *cd = (SharedFindReplace *)client_data; + +*************** +*** 3590,3601 **** + cd->dialog = (Widget)0; + } + +- /*ARGSUSED*/ + static void + find_replace_dismiss_callback(w, client_data, call_data) +! Widget w; + XtPointer client_data; +! XtPointer call_data; + { + SharedFindReplace *cd = (SharedFindReplace *)client_data; + +--- 3573,3583 ---- + cd->dialog = (Widget)0; + } + + static void + find_replace_dismiss_callback(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data; +! XtPointer call_data UNUSED; + { + SharedFindReplace *cd = (SharedFindReplace *)client_data; + +*************** +*** 3603,3624 **** + XtUnmanageChild(cd->dialog); + } + +- /*ARGSUSED*/ + static void + entry_activate_callback(w, client_data, call_data) +! Widget w; + XtPointer client_data; +! XtPointer call_data; + { + XmProcessTraversal((Widget)client_data, XmTRAVERSE_CURRENT); + } + +- /*ARGSUSED*/ + static void + find_replace_callback(w, client_data, call_data) +! Widget w; + XtPointer client_data; +! XtPointer call_data; + { + long_u flags = (long_u)client_data; + char *find_text, *repl_text; +--- 3585,3604 ---- + XtUnmanageChild(cd->dialog); + } + + static void + entry_activate_callback(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data; +! XtPointer call_data UNUSED; + { + XmProcessTraversal((Widget)client_data, XmTRAVERSE_CURRENT); + } + + static void + find_replace_callback(w, client_data, call_data) +! Widget w UNUSED; + XtPointer client_data; +! XtPointer call_data UNUSED; + { + long_u flags = (long_u)client_data; + char *find_text, *repl_text; +*************** +*** 3668,3677 **** + XtFree(repl_text); + } + +- /*ARGSUSED*/ + static void + find_replace_keypress(w, frdp, event) +! Widget w; + SharedFindReplace *frdp; + XKeyEvent *event; + { +--- 3648,3656 ---- + XtFree(repl_text); + } + + static void + find_replace_keypress(w, frdp, event) +! Widget w UNUSED; + SharedFindReplace *frdp; + XKeyEvent *event; + { +*** ../vim-7.2.183/src/gui_xmdlg.c 2008-11-28 21:26:50.000000000 +0100 +--- src/gui_xmdlg.c 2009-05-21 17:01:52.000000000 +0200 +*************** +*** 448,454 **** + + items[i] = XmStringCreateLocalized(list[ENCODING][i]); + +! if (i < n_items) + { + /* recycle old button */ + XtVaSetValues(children[i], +--- 448,454 ---- + + items[i] = XmStringCreateLocalized(list[ENCODING][i]); + +! if (i < (int)n_items) + { + /* recycle old button */ + XtVaSetValues(children[i], +*************** +*** 481,487 **** + + /* Destroy all the outstanding menu items. + */ +! for (i = count[ENCODING]; i < n_items; ++i) + { + XtUnmanageChild(children[i]); + XtDestroyWidget(children[i]); +--- 481,487 ---- + + /* Destroy all the outstanding menu items. + */ +! for (i = count[ENCODING]; i < (int)n_items; ++i) + { + XtUnmanageChild(children[i]); + XtDestroyWidget(children[i]); +*************** +*** 544,552 **** + } + } + +- /*ARGSUSED*/ + static void +! stoggle_callback(Widget w, + SharedFontSelData *data, + XmToggleButtonCallbackStruct *call_data) + { +--- 544,551 ---- + } + } + + static void +! stoggle_callback(Widget w UNUSED, + SharedFontSelData *data, + XmToggleButtonCallbackStruct *call_data) + { +*************** +*** 709,719 **** + } + } + +- /*ARGSUSED*/ + static void + encoding_callback(Widget w, + SharedFontSelData *data, +! XtPointer dummy) + { + XmString str; + XmListCallbackStruct fake_data; +--- 708,717 ---- + } + } + + static void + encoding_callback(Widget w, + SharedFontSelData *data, +! XtPointer dummy UNUSED) + { + XmString str; + XmListCallbackStruct fake_data; +*************** +*** 752,762 **** + do_choice(w, data, call_data, SIZE); + } + +- /*ARGSUSED*/ + static void +! cancel_callback(Widget w, + SharedFontSelData *data, +! XmListCallbackStruct *call_data) + { + if (data->sel[ENCODING]) + { +--- 750,759 ---- + do_choice(w, data, call_data, SIZE); + } + + static void +! cancel_callback(Widget w UNUSED, + SharedFontSelData *data, +! XmListCallbackStruct *call_data UNUSED) + { + if (data->sel[ENCODING]) + { +*************** +*** 789,799 **** + data->exit = True; + } + +- /*ARGSUSED*/ + static void +! ok_callback(Widget w, + SharedFontSelData *data, +! XmPushButtonCallbackStruct *call_data) + { + char *pattern; + char **name; +--- 786,795 ---- + data->exit = True; + } + + static void +! ok_callback(Widget w UNUSED, + SharedFontSelData *data, +! XmPushButtonCallbackStruct *call_data UNUSED) + { + char *pattern; + char **name; +*** ../vim-7.2.183/src/gui_xmebw.c 2008-11-28 21:26:50.000000000 +0100 +--- src/gui_xmebw.c 2009-05-21 17:06:17.000000000 +0200 +*************** +*** 235,247 **** + return tmp; + } + +- /*ARGSUSED*/ + static int + alloc_color(Display *display, + Colormap colormap, + char *colorname, + XColor *xcolor, +! void *closure) + { + int status; + +--- 235,246 ---- + return tmp; + } + + static int + alloc_color(Display *display, + Colormap colormap, + char *colorname, + XColor *xcolor, +! void *closure UNUSED) + { + int status; + +*************** +*** 595,603 **** + XtHeight(eb), eb->primitive.highlight_thickness); + } + +- /*ARGSUSED*/ + static void +! draw_pixmap(XmEnhancedButtonWidget eb, XEvent *event, Region region) + { + Pixmap pix; + GC gc = eb->label.normal_GC; +--- 594,603 ---- + XtHeight(eb), eb->primitive.highlight_thickness); + } + + static void +! draw_pixmap(XmEnhancedButtonWidget eb, +! XEvent *event UNUSED, +! Region region UNUSED) + { + Pixmap pix; + GC gc = eb->label.normal_GC; +*************** +*** 641,647 **** + height = eb->core.height - 2 * y; + if (h < height) + height = h; +! if (depth == eb->core.depth) + XCopyArea(XtDisplay(eb), pix, XtWindow(eb), gc, 0, 0, + width, height, x, y); + else if (depth == 1) +--- 641,647 ---- + height = eb->core.height - 2 * y; + if (h < height) + height = h; +! if (depth == (int)eb->core.depth) + XCopyArea(XtDisplay(eb), pix, XtWindow(eb), gc, 0, 0, + width, height, x, y); + else if (depth == 1) +*************** +*** 731,739 **** + eb->label.normal_GC = tmp_gc; + } + +- /*ARGSUSED*/ + static void +! Enter(Widget wid, XEvent *event, String *params, Cardinal *num_params) + { + XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) wid; + XmPushButtonCallbackStruct call_value; +--- 731,741 ---- + eb->label.normal_GC = tmp_gc; + } + + static void +! Enter(Widget wid, +! XEvent *event, +! String *params UNUSED, +! Cardinal *num_params UNUSED) + { + XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) wid; + XmPushButtonCallbackStruct call_value; +*************** +*** 818,826 **** + } + } + +- /*ARGSUSED*/ + static void +! Leave(Widget wid, XEvent *event, String *params, Cardinal *num_params) + { + XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget)wid; + XmPushButtonCallbackStruct call_value; +--- 820,830 ---- + } + } + + static void +! Leave(Widget wid, +! XEvent *event, +! String *params UNUSED, +! Cardinal *num_params UNUSED) + { + XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget)wid; + XmPushButtonCallbackStruct call_value; +*************** +*** 976,984 **** + } + } + +- /*ARGSUSED*/ + static void +! Initialize(Widget rq, Widget ebw, ArgList args, Cardinal *n) + { + XmEnhancedButtonWidget request = (XmEnhancedButtonWidget)rq; + XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget)ebw; +--- 980,987 ---- + } + } + + static void +! Initialize(Widget rq, Widget ebw, ArgList args UNUSED, Cardinal *n UNUSED) + { + XmEnhancedButtonWidget request = (XmEnhancedButtonWidget)rq; + XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget)ebw; +*************** +*** 1056,1064 **** + free_pixmaps((XmEnhancedButtonWidget)w); + } + +- /*ARGSUSED*/ + static Boolean +! SetValues(Widget current, Widget request, Widget new, ArgList args, Cardinal *n) + { + XmEnhancedButtonWidget cur = (XmEnhancedButtonWidget) current; + XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) new; +--- 1059,1070 ---- + free_pixmaps((XmEnhancedButtonWidget)w); + } + + static Boolean +! SetValues(Widget current, +! Widget request UNUSED, +! Widget new, +! ArgList args UNUSED, +! Cardinal *n UNUSED) + { + XmEnhancedButtonWidget cur = (XmEnhancedButtonWidget) current; + XmEnhancedButtonWidget eb = (XmEnhancedButtonWidget) new; +*************** +*** 1108,1114 **** + if ((win_x < 0) || (win_y < 0)) + return False; + +! if ((win_x > r_width) || (win_y > r_height)) + return False; + draw_highlight(eb); + draw_shadows(eb); +--- 1114,1120 ---- + if ((win_x < 0) || (win_y < 0)) + return False; + +! if ((win_x > (int)r_width) || (win_y > (int)r_height)) + return False; + draw_highlight(eb); + draw_shadows(eb); +*** ../vim-7.2.183/src/if_python.c 2009-01-13 18:10:21.000000000 +0100 +--- src/if_python.c 2009-05-21 17:27:50.000000000 +0200 +*************** +*** 1096,1104 **** + + /* Vim module - Implementation + */ +- /*ARGSUSED*/ + static PyObject * +! VimCommand(PyObject *self, PyObject *args) + { + char *cmd; + PyObject *result; +--- 1096,1103 ---- + + /* Vim module - Implementation + */ + static PyObject * +! VimCommand(PyObject *self UNUSED, PyObject *args) + { + char *cmd; + PyObject *result; +*************** +*** 1242,1250 **** + } + #endif + +- /*ARGSUSED*/ + static PyObject * +! VimEval(PyObject *self, PyObject *args) + { + #ifdef FEAT_EVAL + char *expr; +--- 1241,1248 ---- + } + #endif + + static PyObject * +! VimEval(PyObject *self UNUSED, PyObject *args) + { + #ifdef FEAT_EVAL + char *expr; +*************** +*** 1894,1902 **** + /* Buffer list object - Implementation + */ + +- /*ARGSUSED*/ + static PyInt +! BufListLength(PyObject *self) + { + buf_T *b = firstbuf; + PyInt n = 0; +--- 1892,1899 ---- + /* Buffer list object - Implementation + */ + + static PyInt +! BufListLength(PyObject *self UNUSED) + { + buf_T *b = firstbuf; + PyInt n = 0; +*************** +*** 1910,1918 **** + return n; + } + +- /*ARGSUSED*/ + static PyObject * +! BufListItem(PyObject *self, PyInt n) + { + buf_T *b; + +--- 1907,1914 ---- + return n; + } + + static PyObject * +! BufListItem(PyObject *self UNUSED, PyInt n) + { + buf_T *b; + +*************** +*** 2210,2218 **** + + /* Window list object - Implementation + */ +- /*ARGSUSED*/ + static PyInt +! WinListLength(PyObject *self) + { + win_T *w = firstwin; + PyInt n = 0; +--- 2206,2213 ---- + + /* Window list object - Implementation + */ + static PyInt +! WinListLength(PyObject *self UNUSED) + { + win_T *w = firstwin; + PyInt n = 0; +*************** +*** 2226,2234 **** + return n; + } + +- /*ARGSUSED*/ + static PyObject * +! WinListItem(PyObject *self, PyInt n) + { + win_T *w; + +--- 2221,2228 ---- + return n; + } + + static PyObject * +! WinListItem(PyObject *self UNUSED, PyInt n) + { + win_T *w; + +*************** +*** 2274,2282 **** + + /* Current items object - Implementation + */ +- /*ARGSUSED*/ + static PyObject * +! CurrentGetattr(PyObject *self, char *name) + { + if (strcmp(name, "buffer") == 0) + return (PyObject *)BufferNew(curbuf); +--- 2268,2275 ---- + + /* Current items object - Implementation + */ + static PyObject * +! CurrentGetattr(PyObject *self UNUSED, char *name) + { + if (strcmp(name, "buffer") == 0) + return (PyObject *)BufferNew(curbuf); +*************** +*** 2295,2303 **** + } + } + +- /*ARGSUSED*/ + static int +! CurrentSetattr(PyObject *self, char *name, PyObject *value) + { + if (strcmp(name, "line") == 0) + { +--- 2288,2295 ---- + } + } + + static int +! CurrentSetattr(PyObject *self UNUSED, char *name, PyObject *value) + { + if (strcmp(name, "line") == 0) + { +*** ../vim-7.2.183/src/window.c 2009-02-22 02:36:36.000000000 +0100 +--- src/window.c 2009-05-21 15:14:54.000000000 +0200 +*************** +*** 1163,1174 **** + * WSP_NEWLOC may be specified in flags to prevent the location list from + * being copied. + */ +- /*ARGSUSED*/ + static void + win_init(newp, oldp, flags) + win_T *newp; + win_T *oldp; +! int flags; + { + int i; + +--- 1163,1173 ---- + * WSP_NEWLOC may be specified in flags to prevent the location list from + * being copied. + */ + static void + win_init(newp, oldp, flags) + win_T *newp; + win_T *oldp; +! int flags UNUSED; + { + int i; + +*************** +*** 1268,1278 **** + * Must be called when there is just one window, filling the whole screen + * (excluding the command line). + */ +- /*ARGSUSED*/ + int + make_windows(count, vertical) + int count; +! int vertical; /* split windows vertically if TRUE */ + { + int maxcount; + int todo; +--- 1267,1276 ---- + * Must be called when there is just one window, filling the whole screen + * (excluding the command line). + */ + int + make_windows(count, vertical) + int count; +! int vertical UNUSED; /* split windows vertically if TRUE */ + { + int maxcount; + int todo; +*************** +*** 2353,2363 **** + * Remove a window and its frame from the tree of frames. + * Returns a pointer to the window that got the freed up space. + */ +- /*ARGSUSED*/ + static win_T * + winframe_remove(win, dirp, tp) + win_T *win; +! int *dirp; /* set to 'v' or 'h' for direction if 'ea' */ + tabpage_T *tp; /* tab page "win" is in, NULL for current */ + { + frame_T *frp, *frp2, *frp3; +--- 2351,2360 ---- + * Remove a window and its frame from the tree of frames. + * Returns a pointer to the window that got the freed up space. + */ + static win_T * + winframe_remove(win, dirp, tp) + win_T *win; +! int *dirp UNUSED; /* set to 'v' or 'h' for direction if 'ea' */ + tabpage_T *tp; /* tab page "win" is in, NULL for current */ + { + frame_T *frp, *frp2, *frp3; +*************** +*** 3500,3509 **** + * FAIL. + * Careful: When OK is returned need to get a new tab page very very soon! + */ +- /*ARGSUSED*/ + static int + leave_tabpage(new_curbuf) +! buf_T *new_curbuf; /* what is going to be the new curbuf, + NULL if unknown */ + { + tabpage_T *tp = curtab; +--- 3497,3505 ---- + * FAIL. + * Careful: When OK is returned need to get a new tab page very very soon! + */ + static int + leave_tabpage(new_curbuf) +! buf_T *new_curbuf UNUSED; /* what is going to be the new curbuf, + NULL if unknown */ + { + tabpage_T *tp = curtab; +*************** +*** 3545,3555 **** + * Start using tab page "tp". + * Only to be used after leave_tabpage() or freeing the current tab page. + */ +- /*ARGSUSED*/ + static void + enter_tabpage(tp, old_curbuf) + tabpage_T *tp; +! buf_T *old_curbuf; + { + int old_off = tp->tp_firstwin->w_winrow; + win_T *next_prevwin = tp->tp_prevwin; +--- 3541,3550 ---- + * Start using tab page "tp". + * Only to be used after leave_tabpage() or freeing the current tab page. + */ + static void + enter_tabpage(tp, old_curbuf) + tabpage_T *tp; +! buf_T *old_curbuf UNUSED; + { + int old_off = tp->tp_firstwin->w_winrow; + win_T *next_prevwin = tp->tp_prevwin; +*************** +*** 4157,4166 **** + /* + * allocate a window structure and link it in the window list + */ +- /*ARGSUSED*/ + static win_T * + win_alloc(after) +! win_T *after; + { + win_T *newwin; + +--- 4152,4160 ---- + /* + * allocate a window structure and link it in the window list + */ + static win_T * + win_alloc(after) +! win_T *after UNUSED; + { + win_T *newwin; + +*** ../vim-7.2.183/src/workshop.c 2008-11-28 11:47:14.000000000 +0100 +--- src/workshop.c 2009-05-21 17:12:55.000000000 +0200 +*************** +*** 204,215 **** + * Function: + * Load a given file into the WorkShop buffer. + */ +- /*ARGSUSED*/ + void + workshop_load_file( + char *filename, /* the file to load */ + int line, /* an optional line number (or 0) */ +! char *frameid) /* used for multi-frame support */ + { + #ifdef WSDEBUG_TRACE + if (WSDLEVEL(WS_TRACE_VERBOSE | WS_TRACE)) +--- 204,214 ---- + * Function: + * Load a given file into the WorkShop buffer. + */ + void + workshop_load_file( + char *filename, /* the file to load */ + int line, /* an optional line number (or 0) */ +! char *frameid UNUSED) /* used for multi-frame support */ + { + #ifdef WSDEBUG_TRACE + if (WSDLEVEL(WS_TRACE_VERBOSE | WS_TRACE)) +*************** +*** 263,272 **** + load_window(filename, lineno); + } + +- /*ARGSUSED*/ + void + workshop_front_file( +! char *filename) + { + #ifdef WSDEBUG_TRACE + if (WSDLEVEL(WS_TRACE_VERBOSE | WS_TRACE)) +--- 262,270 ---- + load_window(filename, lineno); + } + + void + workshop_front_file( +! char *filename UNUSED) + { + #ifdef WSDEBUG_TRACE + if (WSDLEVEL(WS_TRACE_VERBOSE | WS_TRACE)) +*************** +*** 538,546 **** + * breakpoints have moved when a program has been recompiled and + * reloaded into dbx. + */ +- /*ARGSUSED*/ + void +! workshop_moved_marks(char *filename) + { + #ifdef WSDEBUG_TRACE + if (WSDLEVEL(WS_TRACE_VERBOSE | WS_TRACE)) +--- 536,543 ---- + * breakpoints have moved when a program has been recompiled and + * reloaded into dbx. + */ + void +! workshop_moved_marks(char *filename UNUSED) + { + #ifdef WSDEBUG_TRACE + if (WSDLEVEL(WS_TRACE_VERBOSE | WS_TRACE)) +*************** +*** 575,585 **** + return (int)h; + } + +- /*ARGSUSED*/ + void + workshop_footer_message( +! char *message, +! int severity) /* severity is currently unused */ + { + #ifdef WSDEBUG_TRACE + if (WSDLEVEL(WS_TRACE_VERBOSE | WS_TRACE)) +--- 572,581 ---- + return (int)h; + } + + void + workshop_footer_message( +! char *message, +! int severity UNUSED) /* severity is currently unused */ + { + #ifdef WSDEBUG_TRACE + if (WSDLEVEL(WS_TRACE_VERBOSE | WS_TRACE)) +*************** +*** 687,701 **** + * command. The globals curMenuName and curMenuPriority contain the name and + * priority of the parent menu tree. + */ +- /*ARGSUSED*/ + void + workshop_menu_item( + char *label, + char *verb, +! char *accelerator, + char *acceleratorText, +! char *name, +! char *filepos, + char *sensitive) + { + char cbuf[BUFSIZ]; +--- 683,696 ---- + * command. The globals curMenuName and curMenuPriority contain the name and + * priority of the parent menu tree. + */ + void + workshop_menu_item( + char *label, + char *verb, +! char *accelerator UNUSED, + char *acceleratorText, +! char *name UNUSED, +! char *filepos UNUSED, + char *sensitive) + { + char cbuf[BUFSIZ]; +*************** +*** 810,822 **** + workshopInitDone = True; + } + +- /*ARGSUSED*/ + void + workshop_toolbar_button( + char *label, + char *verb, +! char *senseVerb, +! char *filepos, + char *help, + char *sense, + char *file, +--- 805,816 ---- + workshopInitDone = True; + } + + void + workshop_toolbar_button( + char *label, + char *verb, +! char *senseVerb UNUSED, +! char *filepos UNUSED, + char *help, + char *sense, + char *file, +*************** +*** 968,974 **** + if (strcmp(option, "syntax") == 0) + vim_snprintf(cbuf, sizeof(cbuf), "syntax %s", value); + else if (strcmp(option, "savefiles") == 0) +! ; /* XXX - Not yet implemented */ + break; + + case 'l': +--- 962,970 ---- + if (strcmp(option, "syntax") == 0) + vim_snprintf(cbuf, sizeof(cbuf), "syntax %s", value); + else if (strcmp(option, "savefiles") == 0) +! { +! /* XXX - Not yet implemented */ +! } + break; + + case 'l': +*************** +*** 1098,1107 **** + /* + * A button in the toolbar has been pushed. + */ +- /*ARGSUSED*/ + int + workshop_get_positions( +! void *clientData, /* unused */ + char **filename, /* output data */ + int *curLine, /* output data */ + int *curCol, /* output data */ +--- 1094,1102 ---- + /* + * A button in the toolbar has been pushed. + */ + int + workshop_get_positions( +! void *clientData UNUSED, + char **filename, /* output data */ + int *curLine, /* output data */ + int *curCol, /* output data */ +*************** +*** 1526,1534 **** + return NULL; + } + +- /*ARGSUSED*/ + void +! workshop_save_sensitivity(char *filename) + { + } + +--- 1521,1528 ---- + return NULL; + } + + void +! workshop_save_sensitivity(char *filename UNUSED) + { + } + +*** ../vim-7.2.183/src/version.c 2009-05-21 15:19:59.000000000 +0200 +--- src/version.c 2009-05-21 23:19:40.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 184, + /**/ + +-- +CART DRIVER: Bring out your dead! +LARGE MAN: Here's one! +CART DRIVER: Ninepence. +BODY: I'm not dead! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.185 b/source/ap/vim/patches/7.2.185 new file mode 100644 index 000000000..35dbad05e --- /dev/null +++ b/source/ap/vim/patches/7.2.185 @@ -0,0 +1,305 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.185 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.185 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Add UNUSED and type casts. +Files: src/Makefile, src/if_tlc.c, src/if_ruby.c + + +*** ../vim-7.2.184/src/Makefile 2009-05-21 23:25:47.000000000 +0200 +--- src/Makefile 2009-05-22 18:18:44.000000000 +0200 +*************** +*** 105,112 **** + # 4. "make test" {{{1 + # This is optional. This will run Vim scripts on a number of test + # files, and compare the produced output with the expected output. +! # If all is well, you will get the "ALL DONE" message in the end. See +! # below (search for "/^test"). + # + # 5. "make install" {{{1 + # If the new Vim seems to be working OK you can install it and the +--- 105,112 ---- + # 4. "make test" {{{1 + # This is optional. This will run Vim scripts on a number of test + # files, and compare the produced output with the expected output. +! # If all is well, you will get the "ALL DONE" message in the end. If a +! # test fails you get "TEST FAILURE". See below (search for "/^test"). + # + # 5. "make install" {{{1 + # If the new Vim seems to be working OK you can install it and the +*************** +*** 533,538 **** +--- 533,543 ---- + #CFLAGS = -g -DDEBUG -Wall -Wshadow -Wmissing-prototypes + #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes + ++ # Use this with GCC to check for mistakes, unused arguments, etc. ++ #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code ++ #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers ++ #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code ++ + # EFENCE - Electric-Fence malloc debugging: catches memory accesses beyond + # allocated memory (and makes every malloc()/free() very slow). + # Electric Fence is free (search ftp sites). +*************** +*** 551,562 **** + # }}} + + # LINT - for running lint +! # For standard lint +! #LINT = lint +! #LINT_OPTIONS = -beprxzF +! # For splint (see cleanlint.vim for filtering the output) +! LINT = splint +! LINT_OPTIONS = +unixlib -weak -macrovarprefixexclude -showfunc -linelen 9999 + + # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof. + # Might not work with GUI or Perl. +--- 556,568 ---- + # }}} + + # LINT - for running lint +! # For standard Unix lint +! LINT = lint +! LINT_OPTIONS = -beprxzF +! # For splint +! # It doesn't work well, crashes on include files and non-ascii characters. +! #LINT = splint +! #LINT_OPTIONS = +unixlib -weak -macrovarprefixexclude -showfunc -linelen 9999 + + # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof. + # Might not work with GUI or Perl. +*************** +*** 1743,1749 **** + # messages. Don't worry about that. + # If there is a real error, there will be a difference between "test.out" and + # a "test99.ok" file. +! # If everything is alright, the final message will be "ALL DONE". + # + test check: + $(MAKE) -f Makefile $(VIMTARGET) +--- 1749,1756 ---- + # messages. Don't worry about that. + # If there is a real error, there will be a difference between "test.out" and + # a "test99.ok" file. +! # If everything is alright, the final message will be "ALL DONE". If not you +! # get "TEST FAILURE". + # + test check: + $(MAKE) -f Makefile $(VIMTARGET) +*************** +*** 2427,2433 **** + $(CCC) -o $@ if_xcmdsrv.c + + objects/if_mzsch.o: if_mzsch.c +! $(CCC) -o $@ if_mzsch.c + + objects/if_perl.o: auto/if_perl.c + $(CCC) -o $@ auto/if_perl.c +--- 2434,2440 ---- + $(CCC) -o $@ if_xcmdsrv.c + + objects/if_mzsch.o: if_mzsch.c +! $(CCC) -o $@ $(MZSCHEME_CFLAGS_EXTRA) if_mzsch.c + + objects/if_perl.o: auto/if_perl.c + $(CCC) -o $@ auto/if_perl.c +*************** +*** 2436,2442 **** + $(CCC) -o $@ if_perlsfio.c + + objects/if_python.o: if_python.c +! $(CCC) -o $@ if_python.c + + objects/if_ruby.o: if_ruby.c + $(CCC) -o $@ if_ruby.c +--- 2443,2449 ---- + $(CCC) -o $@ if_perlsfio.c + + objects/if_python.o: if_python.c +! $(CCC) -o $@ $(PYTHON_CFLAGS_EXTRA) if_python.c + + objects/if_ruby.o: if_ruby.c + $(CCC) -o $@ if_ruby.c +*** ../vim-7.2.184/src/if_ruby.c 2007-09-13 15:00:49.000000000 +0200 +--- src/if_ruby.c 2009-05-22 15:32:04.000000000 +0200 +*************** +*** 492,498 **** + } + } + +! static VALUE vim_message(VALUE self, VALUE str) + { + char *buff, *p; + +--- 492,498 ---- + } + } + +! static VALUE vim_message(VALUE self UNUSED, VALUE str) + { + char *buff, *p; + +*************** +*** 505,524 **** + return Qnil; + } + +! static VALUE vim_set_option(VALUE self, VALUE str) + { + do_set((char_u *)STR2CSTR(str), 0); + update_screen(NOT_VALID); + return Qnil; + } + +! static VALUE vim_command(VALUE self, VALUE str) + { + do_cmdline_cmd((char_u *)STR2CSTR(str)); + return Qnil; + } + +! static VALUE vim_evaluate(VALUE self, VALUE str) + { + #ifdef FEAT_EVAL + char_u *value = eval_to_string((char_u *)STR2CSTR(str), NULL, TRUE); +--- 505,524 ---- + return Qnil; + } + +! static VALUE vim_set_option(VALUE self UNUSED, VALUE str) + { + do_set((char_u *)STR2CSTR(str), 0); + update_screen(NOT_VALID); + return Qnil; + } + +! static VALUE vim_command(VALUE self UNUSED, VALUE str) + { + do_cmdline_cmd((char_u *)STR2CSTR(str)); + return Qnil; + } + +! static VALUE vim_evaluate(VALUE self UNUSED, VALUE str) + { + #ifdef FEAT_EVAL + char_u *value = eval_to_string((char_u *)STR2CSTR(str), NULL, TRUE); +*************** +*** 580,586 **** + return INT2NUM(n); + } + +! static VALUE buffer_s_aref(VALUE self, VALUE num) + { + buf_T *b; + int n = NUM2INT(num); +--- 580,586 ---- + return INT2NUM(n); + } + +! static VALUE buffer_s_aref(VALUE self UNUSED, VALUE num) + { + buf_T *b; + int n = NUM2INT(num); +*************** +*** 629,635 **** +--- 629,637 ---- + return line ? rb_str_new2(line) : Qnil; + } + rb_raise(rb_eIndexError, "index %d out of buffer", n); ++ #ifndef __GNUC__ + return Qnil; /* For stop warning */ ++ #endif + } + + static VALUE buffer_aref(VALUE self, VALUE num) +*************** +*** 668,674 **** +--- 670,678 ---- + else + { + rb_raise(rb_eIndexError, "index %d out of buffer", n); ++ #ifndef __GNUC__ + return Qnil; /* For stop warning */ ++ #endif + } + return str; + } +*************** +*** 789,795 **** + return get_buffer_line(curbuf, curwin->w_cursor.lnum); + } + +! static VALUE set_current_line(VALUE self, VALUE str) + { + return set_buffer_line(curbuf, curwin->w_cursor.lnum, str); + } +--- 793,799 ---- + return get_buffer_line(curbuf, curwin->w_cursor.lnum); + } + +! static VALUE set_current_line(VALUE self UNUSED, VALUE str) + { + return set_buffer_line(curbuf, curwin->w_cursor.lnum, str); + } +*************** +*** 815,821 **** + #endif + } + +! static VALUE window_s_aref(VALUE self, VALUE num) + { + win_T *w; + int n = NUM2INT(num); +--- 819,825 ---- + #endif + } + +! static VALUE window_s_aref(VALUE self UNUSED, VALUE num) + { + win_T *w; + int n = NUM2INT(num); +*************** +*** 897,903 **** + return Qnil; + } + +! static VALUE f_p(int argc, VALUE *argv, VALUE self) + { + int i; + VALUE str = rb_str_new("", 0); +--- 901,907 ---- + return Qnil; + } + +! static VALUE f_p(int argc, VALUE *argv, VALUE self UNUSED) + { + int i; + VALUE str = rb_str_new("", 0); +*** ../vim-7.2.184/src/version.c 2009-05-21 23:25:38.000000000 +0200 +--- src/version.c 2009-05-22 18:18:58.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 185, + /**/ + +-- +BODY: I'm not dead! +CART DRIVER: 'Ere. He says he's not dead. +LARGE MAN: Yes he is. +BODY: I'm not! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.186 b/source/ap/vim/patches/7.2.186 new file mode 100644 index 000000000..c3710425d --- /dev/null +++ b/source/ap/vim/patches/7.2.186 @@ -0,0 +1,331 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.186 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.186 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Now with the intended if_tcl.c changes. +Files: src/if_tcl.c + + +*** ../vim-7.2.185/src/if_tcl.c 2007-05-10 20:55:34.000000000 +0200 +--- src/if_tcl.c 2009-05-22 15:29:53.000000000 +0200 +*************** +*** 290,299 **** + */ + #define TCL_EXIT 5 + +- /* ARGSUSED */ + static int + exitcmd(dummy, interp, objc, objv) +! ClientData dummy; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +--- 290,298 ---- + */ + #define TCL_EXIT 5 + + static int + exitcmd(dummy, interp, objc, objv) +! ClientData dummy UNUSED; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +*************** +*** 315,324 **** + return TCL_ERROR; + } + +- /* ARGSUSED */ + static int + catchcmd(dummy, interp, objc, objv) +! ClientData dummy; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +--- 314,322 ---- + return TCL_ERROR; + } + + static int + catchcmd(dummy, interp, objc, objv) +! ClientData dummy UNUSED; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +*************** +*** 356,365 **** + /* + * "::vim::beep" - what Vi[m] does best :-) + */ +- /* ARGSUSED */ + static int + beepcmd(dummy, interp, objc, objv) +! ClientData dummy; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +--- 354,362 ---- + /* + * "::vim::beep" - what Vi[m] does best :-) + */ + static int + beepcmd(dummy, interp, objc, objv) +! ClientData dummy UNUSED; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +*************** +*** 378,387 **** + * "::vim::buffer {N}" - create buffer command for buffer N. + * "::vim::buffer new" - create a new buffer (not implemented) + */ +- /* ARGSUSED */ + static int + buffercmd(dummy, interp, objc, objv) +! ClientData dummy; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +--- 375,383 ---- + * "::vim::buffer {N}" - create buffer command for buffer N. + * "::vim::buffer new" - create a new buffer (not implemented) + */ + static int + buffercmd(dummy, interp, objc, objv) +! ClientData dummy UNUSED; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +*************** +*** 475,484 **** + /* + * "::vim::window list" - create list of window commands. + */ +- /* ARGSUSED */ + static int + windowcmd(dummy, interp, objc, objv) +! ClientData dummy; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +--- 471,479 ---- + /* + * "::vim::window list" - create list of window commands. + */ + static int + windowcmd(dummy, interp, objc, objv) +! ClientData dummy UNUSED; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +*************** +*** 1130,1139 **** + } + + +- /* ARGSUSED */ + static int + commandcmd(dummy, interp, objc, objv) +! ClientData dummy; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +--- 1125,1133 ---- + } + + + static int + commandcmd(dummy, interp, objc, objv) +! ClientData dummy UNUSED; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +*************** +*** 1145,1154 **** + return err; + } + +- /* ARGSUSED */ + static int + optioncmd(dummy, interp, objc, objv) +! ClientData dummy; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +--- 1139,1147 ---- + return err; + } + + static int + optioncmd(dummy, interp, objc, objv) +! ClientData dummy UNUSED; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +*************** +*** 1160,1169 **** + return err; + } + +- /* ARGSUSED */ + static int + exprcmd(dummy, interp, objc, objv) +! ClientData dummy; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +--- 1153,1161 ---- + return err; + } + + static int + exprcmd(dummy, interp, objc, objv) +! ClientData dummy UNUSED; + Tcl_Interp *interp; + int objc; + Tcl_Obj *CONST objv[]; +*************** +*** 1584,1594 **** + I/O Channel + ********************************************/ + +- /* ARGSUSED */ + static int + channel_close(instance, interp) + ClientData instance; +! Tcl_Interp *interp; + { + int err = 0; + +--- 1576,1585 ---- + I/O Channel + ********************************************/ + + static int + channel_close(instance, interp) + ClientData instance; +! Tcl_Interp *interp UNUSED; + { + int err = 0; + +*************** +*** 1602,1613 **** + return err; + } + +- /* ARGSUSED */ + static int + channel_input(instance, buf, bufsiz, errptr) +! ClientData instance; +! char *buf; +! int bufsiz; + int *errptr; + { + +--- 1593,1603 ---- + return err; + } + + static int + channel_input(instance, buf, bufsiz, errptr) +! ClientData instance UNUSED; +! char *buf UNUSED; +! int bufsiz UNUSED; + int *errptr; + { + +*************** +*** 1659,1679 **** + return result; + } + +- /* ARGSUSED */ + static void + channel_watch(instance, mask) +! ClientData instance; +! int mask; + { + Tcl_SetErrno(EINVAL); + } + +- /* ARGSUSED */ + static int + channel_gethandle(instance, direction, handleptr) +! ClientData instance; +! int direction; +! ClientData *handleptr; + { + Tcl_SetErrno(EINVAL); + return EINVAL; +--- 1649,1667 ---- + return result; + } + + static void + channel_watch(instance, mask) +! ClientData instance UNUSED; +! int mask UNUSED; + { + Tcl_SetErrno(EINVAL); + } + + static int + channel_gethandle(instance, direction, handleptr) +! ClientData instance UNUSED; +! int direction UNUSED; +! ClientData *handleptr UNUSED; + { + Tcl_SetErrno(EINVAL); + return EINVAL; +*************** +*** 1691,1697 **** + NULL, /* set option */ + NULL, /* get option */ + channel_watch, +! channel_gethandle + }; + + /********************************** +--- 1679,1692 ---- + NULL, /* set option */ + NULL, /* get option */ + channel_watch, +! channel_gethandle, +! NULL, +! NULL, +! NULL, +! NULL, +! NULL, +! NULL, +! NULL + }; + + /********************************** +*** ../vim-7.2.185/src/version.c 2009-05-22 18:20:23.000000000 +0200 +--- src/version.c 2009-05-22 21:07:21.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 186, + /**/ + +-- +ARTHUR: Old woman! +DENNIS: Man! +ARTHUR: Man. I'm sorry. Old man, What knight live in that castle over there? +DENNIS: I'm thirty-seven. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.187 b/source/ap/vim/patches/7.2.187 new file mode 100644 index 000000000..13dfc9f18 --- /dev/null +++ b/source/ap/vim/patches/7.2.187 @@ -0,0 +1,125 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.187 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.187 (after 7.2.186) +Problem: Doesn't build with older versions of TCL. (Yongwei Wu) +Solution: Add #ifdefs. (Dominique Pelle) +Files: src/if_tcl.c + + +*** ../vim-7.2.186/src/if_tcl.c 2009-05-22 21:07:45.000000000 +0200 +--- src/if_tcl.c 2009-05-23 14:23:51.000000000 +0200 +*************** +*** 161,167 **** + # endif + + /* +! * Declare HANDLE for perl.dll and function pointers. + */ + static HANDLE hTclLib = NULL; + Tcl_Interp* (*dll_Tcl_CreateInterp)(); +--- 161,167 ---- + # endif + + /* +! * Declare HANDLE for tcl.dll and function pointers. + */ + static HANDLE hTclLib = NULL; + Tcl_Interp* (*dll_Tcl_CreateInterp)(); +*************** +*** 182,188 **** + * Make all runtime-links of tcl. + * + * 1. Get module handle using LoadLibraryEx. +! * 2. Get pointer to perl function by GetProcAddress. + * 3. Repeat 2, until get all functions will be used. + * + * Parameter 'libname' provides name of DLL. +--- 182,188 ---- + * Make all runtime-links of tcl. + * + * 1. Get module handle using LoadLibraryEx. +! * 2. Get pointer to tcl function by GetProcAddress. + * 3. Repeat 2, until get all functions will be used. + * + * Parameter 'libname' provides name of DLL. +*************** +*** 1670,1692 **** + + static Tcl_ChannelType channel_type = + { +! "vimmessage", +! NULL, /* blockmode */ +! channel_close, +! channel_input, +! channel_output, +! NULL, /* seek */ +! NULL, /* set option */ +! NULL, /* get option */ +! channel_watch, +! channel_gethandle, +! NULL, +! NULL, +! NULL, +! NULL, +! NULL, +! NULL, +! NULL + }; + + /********************************** +--- 1670,1700 ---- + + static Tcl_ChannelType channel_type = + { +! "vimmessage", /* typeName */ +! NULL, /* version */ +! channel_close, /* closeProc */ +! channel_input, /* inputProc */ +! channel_output, /* outputProc */ +! NULL, /* seekProc */ +! NULL, /* setOptionProc */ +! NULL, /* getOptionProc */ +! channel_watch, /* watchProc */ +! channel_gethandle, /* getHandleProc */ +! NULL, /* close2Proc */ +! NULL, /* blockModeProc */ +! #ifdef TCL_CHANNEL_VERSION_2 +! NULL, /* flushProc */ +! NULL, /* handlerProc */ +! #endif +! #ifdef TCL_CHANNEL_VERSION_3 +! NULL, /* wideSeekProc */ +! #endif +! #ifdef TCL_CHANNEL_VERSION_4 +! NULL, /* threadActionProc */ +! #endif +! #ifdef TCL_CHANNEL_VERSION_5 +! NULL /* truncateProc */ +! #endif + }; + + /********************************** +*** ../vim-7.2.186/src/version.c 2009-05-22 21:07:45.000000000 +0200 +--- src/version.c 2009-05-23 14:25:04.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 187, + /**/ + +-- +Friends? I have lots of friends! In fact, I have every episode ever made. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.188 b/source/ap/vim/patches/7.2.188 new file mode 100644 index 000000000..1aa527dac --- /dev/null +++ b/source/ap/vim/patches/7.2.188 @@ -0,0 +1,278 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.188 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.188 +Problem: Crash with specific use of function calls. (Meikel Brandmeyer) +Solution: Make sure the items referenced by a function call are not freed + twice. (based on patch from Nico Weber) +Files: src/eval.c + + +*** ../vim-7.2.187/src/eval.c 2009-05-16 17:29:37.000000000 +0200 +--- src/eval.c 2009-05-22 20:04:22.000000000 +0200 +*************** +*** 129,136 **** +--- 129,139 ---- + /* + * When recursively copying lists and dicts we need to remember which ones we + * have done to avoid endless recursiveness. This unique ID is used for that. ++ * The last bit is used for previous_funccal, ignored when comparing. + */ + static int current_copyID = 0; ++ #define COPYID_INC 2 ++ #define COPYID_MASK (~0x1) + + /* + * Array to hold the hashtab with variables local to each sourced script. +*************** +*** 439,444 **** +--- 442,448 ---- + static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2)); + static char_u *list2string __ARGS((typval_T *tv, int copyID)); + static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID)); ++ static int free_unref_items __ARGS((int copyID)); + static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID)); + static void set_ref_in_list __ARGS((list_T *l, int copyID)); + static void set_ref_in_item __ARGS((typval_T *tv, int copyID)); +*************** +*** 6494,6507 **** + int + garbage_collect() + { +! dict_T *dd; +! list_T *ll; +! int copyID = ++current_copyID; + buf_T *buf; + win_T *wp; + int i; + funccall_T *fc, **pfc; +! int did_free = FALSE; + #ifdef FEAT_WINDOWS + tabpage_T *tp; + #endif +--- 6498,6510 ---- + int + garbage_collect() + { +! int copyID; + buf_T *buf; + win_T *wp; + int i; + funccall_T *fc, **pfc; +! int did_free; +! int did_free_funccal = FALSE; + #ifdef FEAT_WINDOWS + tabpage_T *tp; + #endif +*************** +*** 6511,6520 **** +--- 6514,6538 ---- + may_garbage_collect = FALSE; + garbage_collect_at_exit = FALSE; + ++ /* We advance by two because we add one for items referenced through ++ * previous_funccal. */ ++ current_copyID += COPYID_INC; ++ copyID = current_copyID; ++ + /* + * 1. Go through all accessible variables and mark all lists and dicts + * with copyID. + */ ++ ++ /* Don't free variables in the previous_funccal list unless they are only ++ * referenced through previous_funccal. This must be first, because if ++ * the item is referenced elsewhere it must not be freed. */ ++ for (fc = previous_funccal; fc != NULL; fc = fc->caller) ++ { ++ set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID + 1); ++ set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID + 1); ++ } ++ + /* script-local variables */ + for (i = 1; i <= ga_scripts.ga_len; ++i) + set_ref_in_ht(&SCRIPT_VARS(i), copyID); +*************** +*** 6546,6556 **** + /* v: vars */ + set_ref_in_ht(&vimvarht, copyID); + + /* +! * 2. Go through the list of dicts and free items without the copyID. + */ + for (dd = first_dict; dd != NULL; ) +! if (dd->dv_copyID != copyID) + { + /* Free the Dictionary and ordinary items it contains, but don't + * recurse into Lists and Dictionaries, they will be in the list +--- 6564,6610 ---- + /* v: vars */ + set_ref_in_ht(&vimvarht, copyID); + ++ /* Free lists and dictionaries that are not referenced. */ ++ did_free = free_unref_items(copyID); ++ ++ /* check if any funccal can be freed now */ ++ for (pfc = &previous_funccal; *pfc != NULL; ) ++ { ++ if (can_free_funccal(*pfc, copyID)) ++ { ++ fc = *pfc; ++ *pfc = fc->caller; ++ free_funccal(fc, TRUE); ++ did_free = TRUE; ++ did_free_funccal = TRUE; ++ } ++ else ++ pfc = &(*pfc)->caller; ++ } ++ if (did_free_funccal) ++ /* When a funccal was freed some more items might be garbage ++ * collected, so run again. */ ++ (void)garbage_collect(); ++ ++ return did_free; ++ } ++ ++ /* ++ * Free lists and dictionaries that are no longer referenced. ++ */ ++ static int ++ free_unref_items(copyID) ++ int copyID; ++ { ++ dict_T *dd; ++ list_T *ll; ++ int did_free = FALSE; ++ + /* +! * Go through the list of dicts and free items without the copyID. + */ + for (dd = first_dict; dd != NULL; ) +! if ((dd->dv_copyID & COPYID_MASK) != (copyID & COPYID_MASK)) + { + /* Free the Dictionary and ordinary items it contains, but don't + * recurse into Lists and Dictionaries, they will be in the list +*************** +*** 6565,6576 **** + dd = dd->dv_used_next; + + /* +! * 3. Go through the list of lists and free items without the copyID. +! * But don't free a list that has a watcher (used in a for loop), these +! * are not referenced anywhere. + */ + for (ll = first_list; ll != NULL; ) +! if (ll->lv_copyID != copyID && ll->lv_watch == NULL) + { + /* Free the List and ordinary items it contains, but don't recurse + * into Lists and Dictionaries, they will be in the list of dicts +--- 6619,6631 ---- + dd = dd->dv_used_next; + + /* +! * Go through the list of lists and free items without the copyID. +! * But don't free a list that has a watcher (used in a for loop), these +! * are not referenced anywhere. + */ + for (ll = first_list; ll != NULL; ) +! if ((ll->lv_copyID & COPYID_MASK) != (copyID & COPYID_MASK) +! && ll->lv_watch == NULL) + { + /* Free the List and ordinary items it contains, but don't recurse + * into Lists and Dictionaries, they will be in the list of dicts +*************** +*** 6584,6603 **** + else + ll = ll->lv_used_next; + +- /* check if any funccal can be freed now */ +- for (pfc = &previous_funccal; *pfc != NULL; ) +- { +- if (can_free_funccal(*pfc, copyID)) +- { +- fc = *pfc; +- *pfc = fc->caller; +- free_funccal(fc, TRUE); +- did_free = TRUE; +- } +- else +- pfc = &(*pfc)->caller; +- } +- + return did_free; + } + +--- 6639,6644 ---- +*************** +*** 18842,18847 **** +--- 18883,18889 ---- + { + hash_init(&dict->dv_hashtab); + dict->dv_refcount = DO_NOT_FREE_CNT; ++ dict->dv_copyID = 0; + dict_var->di_tv.vval.v_dict = dict; + dict_var->di_tv.v_type = VAR_DICT; + dict_var->di_tv.v_lock = VAR_FIXED; +*************** +*** 21294,21301 **** + current_funccal = fc->caller; + --depth; + +! /* if the a:000 list and the a: dict are not referenced we can free the +! * funccall_T and what's in it. */ + if (fc->l_varlist.lv_refcount == DO_NOT_FREE_CNT + && fc->l_vars.dv_refcount == DO_NOT_FREE_CNT + && fc->l_avars.dv_refcount == DO_NOT_FREE_CNT) +--- 21336,21343 ---- + current_funccal = fc->caller; + --depth; + +! /* If the a:000 list and the l: and a: dicts are not referenced we can +! * free the funccall_T and what's in it. */ + if (fc->l_varlist.lv_refcount == DO_NOT_FREE_CNT + && fc->l_vars.dv_refcount == DO_NOT_FREE_CNT + && fc->l_avars.dv_refcount == DO_NOT_FREE_CNT) +*************** +*** 21334,21340 **** + + /* + * Return TRUE if items in "fc" do not have "copyID". That means they are not +! * referenced from anywhere. + */ + static int + can_free_funccal(fc, copyID) +--- 21376,21382 ---- + + /* + * Return TRUE if items in "fc" do not have "copyID". That means they are not +! * referenced from anywhere that is in use. + */ + static int + can_free_funccal(fc, copyID) +*** ../vim-7.2.187/src/version.c 2009-05-23 14:27:43.000000000 +0200 +--- src/version.c 2009-05-24 13:20:49.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 188, + /**/ + +-- +ARTHUR: ... and I am your king .... +OLD WOMAN: Ooooh! I didn't know we had a king. I thought we were an + autonomous collective ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.189 b/source/ap/vim/patches/7.2.189 new file mode 100644 index 000000000..c8ad9addb --- /dev/null +++ b/source/ap/vim/patches/7.2.189 @@ -0,0 +1,86 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.189 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.189 +Problem: Possible hang for deleting auto-indent. (Dominique Pelle) +Solution: Make sure the position is not beyond the end of the line. +Files: src/edit.c + + +*** ../vim-7.2.188/src/edit.c 2009-05-16 16:36:25.000000000 +0200 +--- src/edit.c 2009-05-26 10:53:05.000000000 +0200 +*************** +*** 6420,6432 **** + + /* If we just did an auto-indent, remove the white space from the end + * of the line, and put the cursor back. +! * Do this when ESC was used or moving the cursor up/down. */ + if (did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL +! && curwin->w_cursor.lnum != end_insert_pos->lnum))) + { + pos_T tpos = curwin->w_cursor; + + curwin->w_cursor = *end_insert_pos; + for (;;) + { + if (gchar_cursor() == NUL && curwin->w_cursor.col > 0) +--- 6420,6436 ---- + + /* If we just did an auto-indent, remove the white space from the end + * of the line, and put the cursor back. +! * Do this when ESC was used or moving the cursor up/down. +! * Check for the old position still being valid, just in case the text +! * got changed unexpectedly. */ + if (did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL +! && curwin->w_cursor.lnum != end_insert_pos->lnum)) +! && end_insert_pos->lnum <= curbuf->b_ml.ml_line_count) + { + pos_T tpos = curwin->w_cursor; + + curwin->w_cursor = *end_insert_pos; ++ check_cursor_col(); /* make sure it is not past the line */ + for (;;) + { + if (gchar_cursor() == NUL && curwin->w_cursor.col > 0) +*************** +*** 6434,6440 **** + cc = gchar_cursor(); + if (!vim_iswhite(cc)) + break; +! (void)del_char(TRUE); + } + if (curwin->w_cursor.lnum != tpos.lnum) + curwin->w_cursor = tpos; +--- 6438,6445 ---- + cc = gchar_cursor(); + if (!vim_iswhite(cc)) + break; +! if (del_char(TRUE) == FAIL) +! break; /* should not happen */ + } + if (curwin->w_cursor.lnum != tpos.lnum) + curwin->w_cursor = tpos; +*** ../vim-7.2.188/src/version.c 2009-05-24 13:40:17.000000000 +0200 +--- src/version.c 2009-05-26 10:50:53.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 189, + /**/ + +-- +FIRST VILLAGER: We have found a witch. May we burn her? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.190 b/source/ap/vim/patches/7.2.190 new file mode 100644 index 000000000..2a0aee98e --- /dev/null +++ b/source/ap/vim/patches/7.2.190 @@ -0,0 +1,182 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.190 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.190 +Problem: The register executed by @@ isn't restored. +Solution: Mark the executable register in the viminfo file. +Files: src/ops.c + + +*** ../vim-7.2.189/src/ops.c 2009-05-13 12:46:36.000000000 +0200 +--- src/ops.c 2009-05-26 18:05:23.000000000 +0200 +*************** +*** 1143,1148 **** +--- 1143,1150 ---- + return OK; + } + ++ static int execreg_lastc = NUL; ++ + /* + * execute a yank register: copy it into the stuff buffer + * +*************** +*** 1155,1161 **** + int addcr; /* always add '\n' to end of line */ + int silent; /* set "silent" flag in typeahead buffer */ + { +- static int lastc = NUL; + long i; + char_u *p; + int retval = OK; +--- 1157,1162 ---- +*************** +*** 1163,1174 **** + + if (regname == '@') /* repeat previous one */ + { +! if (lastc == NUL) + { + EMSG(_("E748: No previously used register")); + return FAIL; + } +! regname = lastc; + } + /* check for valid regname */ + if (regname == '%' || regname == '#' || !valid_yank_reg(regname, FALSE)) +--- 1164,1175 ---- + + if (regname == '@') /* repeat previous one */ + { +! if (execreg_lastc == NUL) + { + EMSG(_("E748: No previously used register")); + return FAIL; + } +! regname = execreg_lastc; + } + /* check for valid regname */ + if (regname == '%' || regname == '#' || !valid_yank_reg(regname, FALSE)) +*************** +*** 1176,1182 **** + emsg_invreg(regname); + return FAIL; + } +! lastc = regname; + + #ifdef FEAT_CLIPBOARD + regname = may_get_selection(regname); +--- 1177,1183 ---- + emsg_invreg(regname); + return FAIL; + } +! execreg_lastc = regname; + + #ifdef FEAT_CLIPBOARD + regname = may_get_selection(regname); +*************** +*** 5337,5347 **** +--- 5338,5351 ---- + + /* We only get here (hopefully) if line[0] == '"' */ + str = virp->vir_line + 1; ++ ++ /* If the line starts with "" this is the y_previous register. */ + if (*str == '"') + { + set_prev = TRUE; + str++; + } ++ + if (!ASCII_ISALNUM(*str) && *str != '-') + { + if (viminfo_error("E577: ", _("Illegal register name"), virp->vir_line)) +*************** +*** 5351,5356 **** +--- 5355,5368 ---- + get_yank_register(*str++, FALSE); + if (!force && y_current->y_array != NULL) + do_it = FALSE; ++ ++ if (*str == '@') ++ { ++ /* "x@: register x used for @@ */ ++ if (force || execreg_lastc == NUL) ++ execreg_lastc = str[-1]; ++ } ++ + size = 0; + limit = 100; /* Optimized for registers containing <= 100 lines */ + if (do_it) +*************** +*** 5360,5366 **** + vim_free(y_current->y_array); + array = y_current->y_array = + (char_u **)alloc((unsigned)(limit * sizeof(char_u *))); +! str = skipwhite(str); + if (STRNCMP(str, "CHAR", 4) == 0) + y_current->y_type = MCHAR; + #ifdef FEAT_VISUAL +--- 5372,5378 ---- + vim_free(y_current->y_array); + array = y_current->y_array = + (char_u **)alloc((unsigned)(limit * sizeof(char_u *))); +! str = skipwhite(skiptowhite(str)); + if (STRNCMP(str, "CHAR", 4) == 0) + y_current->y_type = MCHAR; + #ifdef FEAT_VISUAL +*************** +*** 5443,5448 **** +--- 5455,5461 ---- + max_kbyte = get_viminfo_parameter('s'); + if (max_kbyte == 0) + return; ++ + for (i = 0; i < NUM_REGISTERS; i++) + { + if (y_regs[i].y_array == NULL) +*************** +*** 5497,5503 **** + if (y_previous == &y_regs[i]) + fprintf(fp, "\""); + c = get_register_name(i); +! fprintf(fp, "\"%c\t%s\t%d\n", c, type, + #ifdef FEAT_VISUAL + (int)y_regs[i].y_width + #else +--- 5510,5519 ---- + if (y_previous == &y_regs[i]) + fprintf(fp, "\""); + c = get_register_name(i); +! fprintf(fp, "\"%c", c); +! if (c == execreg_lastc) +! fprintf(fp, "@"); +! fprintf(fp, "\t%s\t%d\n", type, + #ifdef FEAT_VISUAL + (int)y_regs[i].y_width + #else +*** ../vim-7.2.189/src/version.c 2009-05-26 11:01:43.000000000 +0200 +--- src/version.c 2009-05-26 18:10:13.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 190, + /**/ + +-- +If you had to identify, in one word, the reason why the +human race has not achieved, and never will achieve, its +full potential, that word would be "meetings." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.191 b/source/ap/vim/patches/7.2.191 new file mode 100644 index 000000000..f9c33571d --- /dev/null +++ b/source/ap/vim/patches/7.2.191 @@ -0,0 +1,3705 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.191 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.191 +Problem: Mzscheme interface doesn't work on Ubuntu. +Solution: Change autoconf rules. Define missing macro. Some changes to + avoid gcc warnings. Remove per-buffer namespace. (Sergey Khorev) +Files: runtime/doc/if_mzsch.txt, src/Makefile, src/Make_ming.mak, + src/Make_mvc.mak, src/auto/configure, src/configure.in, + src/config.mk.in, src/eval.c, src/if_mzsch.c, src/if_mzsch.h, + src/main.c, src/proto/if_mzsch.pro + + +*** ../vim-7.2.190/runtime/doc/if_mzsch.txt 2008-08-09 19:36:48.000000000 +0200 +--- runtime/doc/if_mzsch.txt 2009-05-26 18:49:53.000000000 +0200 +*************** +*** 1,4 **** +! *if_mzsch.txt* For Vim version 7.2. Last change: 2008 Jun 28 + + + VIM REFERENCE MANUAL by Sergey Khorev +--- 1,4 ---- +! *if_mzsch.txt* For Vim version 7.2. Last change: 2009 May 26 + + + VIM REFERENCE MANUAL by Sergey Khorev +*************** +*** 42,51 **** + + *:mzfile* *:mzf* + :[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi} +- All statements are executed in the namespace of the +- buffer that was current during :mzfile start. +- If you want to access other namespaces, use +- 'parameterize'. + + All of these commands do essentially the same thing - they execute a piece of + MzScheme code, with the "current range" set to the given line +--- 42,47 ---- +*************** +*** 54,61 **** + In the case of :mzscheme, the code to execute is in the command-line. + In the case of :mzfile, the code to execute is the contents of the given file. + +- Each buffer has its own MzScheme namespace. Global namespace is bound to +- the "global-namespace" value from the 'vimext' module. + MzScheme interface defines exception exn:vim, derived from exn. + It is raised for various Vim errors. + +--- 50,55 ---- +*************** +*** 79,118 **** + e.g.: > + :mzscheme (require (prefix vim- vimext)) + < +! All the examples below assume this naming scheme. Note that you need to do +! this again for every buffer. + +- The auto-instantiation can be achieved with autocommands, e.g. you can put +- something like this in your .vimrc (EOFs should not have indentation): > +- function s:MzRequire() +- if has("mzscheme") +- :mz << EOF +- (require (prefix vim- vimext)) +- (let ((buf (vim-get-buff-by-name (vim-eval "expand(\"<afile>\")")))) +- (when (and buf (not (eq? buf (vim-curr-buff)))) +- (parameterize ((current-namespace (vim-get-buff-namespace buf))) +- (namespace-attach-module vim-global-namespace 'vimext) +- (namespace-require '(prefix vim vimext))))) +- EOF +- endif +- endfunction +- +- function s:MzStartup() +- if has("mzscheme") +- au BufNew,BufNewFile,BufAdd,BufReadPre * :call s:MzRequire() +- :mz << EOF +- (current-library-collection-paths +- (cons +- (build-path (find-system-path 'addon-dir) (version) "collects") +- (current-library-collection-paths))) +- EOF +- endif +- endfunction +- +- call s:MzStartup() +- < +- +- The global namespace just instantiated this module with the prefix "vimext:". + *mzscheme-sandbox* + When executed in the |sandbox|, access to some filesystem and Vim interface + procedures is restricted. +--- 73,80 ---- + e.g.: > + :mzscheme (require (prefix vim- vimext)) + < +! All the examples below assume this naming scheme. + + *mzscheme-sandbox* + When executed in the |sandbox|, access to some filesystem and Vim interface + procedures is restricted. +*************** +*** 121,135 **** + 2. Examples *mzscheme-examples* + > + :mzscheme (display "Hello") + :mzscheme (vim-set-buff-line 10 "This is line #10") + < + Inline script usage: > + function! <SID>SetFirstLine() + :mz << EOF + (display "!!!") + (vim-set-buff-line 1 "This is line #1") + (vim-beep) +! EOF + endfunction + + nmap <F9> :call <SID>SetFirstLine() <CR> +--- 83,102 ---- + 2. Examples *mzscheme-examples* + > + :mzscheme (display "Hello") ++ :mz (display (string-append "Using MzScheme version " (version))) ++ :mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x ++ :mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x + :mzscheme (vim-set-buff-line 10 "This is line #10") + < + Inline script usage: > + function! <SID>SetFirstLine() + :mz << EOF + (display "!!!") ++ (require (prefix vim- vimext)) ++ ; for newer versions (require (prefix-in vim- 'vimext)) + (vim-set-buff-line 1 "This is line #1") + (vim-beep) +! EOF + endfunction + + nmap <F9> :call <SID>SetFirstLine() <CR> +*************** +*** 137,153 **** + File execution: > + :mzfile supascript.scm + < +! Accessing the current buffer namespace from an MzScheme program running in +! another buffer within |:mzfile|-executed script : > +! ; Move to the window below +! (vim-command "wincmd j") +! ; execute in the context of buffer, to which window belongs +! ; assume that buffer has 'textstring' defined +! (parameterize ((current-namespace +! (vim-get-buff-namespace (vim-curr-buff)))) +! (eval '(vim-set-buff-line 1 textstring))) +! < + + ============================================================================== + 3. Threads *mzscheme-threads* + +--- 104,136 ---- + File execution: > + :mzfile supascript.scm + < +! Vim exception handling: > +! :mz << EOF +! (require (prefix vim- vimext)) +! ; for newer versions (require (prefix-in vim- 'vimext)) +! (with-handlers +! ([exn:vim? (lambda (e) (display (exn-message e)))]) +! (vim-eval "nonsense-string")) +! EOF +! < +! Auto-instantiation of vimext module (can be placed in your |vimrc|): > +! function! MzRequire() +! :redir => l:mzversion +! :mz (version) +! :redir END +! if strpart(l:mzversion, 1, 1) < "4" +! " MzScheme versions < 4.x: +! :mz (require (prefix vim- vimext)) +! else +! " newer versions: +! :mz (require (prefix-in vim- 'vimext)) +! endif +! endfunction + ++ if has("mzscheme") ++ silent call MzRequire() ++ endif ++ < + ============================================================================== + 3. Threads *mzscheme-threads* + +*************** +*** 168,178 **** + Common + ------ + (command {command-string}) Perform the vim ":Ex" style command. +! (eval {expr-string}) Evaluate the vim expression to a string. +! A |List| is turned into a string by +! joining the items and inserting line +! breaks. +! NOTE clashes with MzScheme eval + (range-start) Start/End of the range passed with + (range-end) the Scheme command. + (beep) beep +--- 151,161 ---- + Common + ------ + (command {command-string}) Perform the vim ":Ex" style command. +! (eval {expr-string}) Evaluate the vim expression into +! respective MzScheme object: |Lists| are +! represented as Scheme lists, +! |Dictionaries| as hash tables. +! NOTE the name clashes with MzScheme eval + (range-start) Start/End of the range passed with + (range-end) the Scheme command. + (beep) beep +*************** +*** 186,192 **** + be set. The symbol 'global can be passed + as {buffer-or-window}. Then |:setglobal| + will be used. +- global-namespace The MzScheme main namespace. + + Buffers *mzscheme-buffer* + ------- +--- 169,174 ---- +*************** +*** 228,234 **** + if there is no such buffer. + (get-buff-by-num {buffernum}) Get a buffer by its number (return #f if + there is no buffer with this number). +- (get-buff-namespace [buffer]) Get buffer namespace. + + Windows *mzscheme-window* + ------ +--- 210,215 ---- +*************** +*** 250,256 **** + (set-cursor (line . col) [window]) Set cursor position. + + ============================================================================== +! 5. Dynamic loading *mzscheme-dynamic* + + On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version| + output then includes |+mzscheme/dyn|. +--- 231,237 ---- + (set-cursor (line . col) [window]) Set cursor position. + + ============================================================================== +! 5. Dynamic loading *mzscheme-dynamic* *E812* + + On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version| + output then includes |+mzscheme/dyn|. +*** ../vim-7.2.190/src/Makefile 2009-05-26 18:12:19.000000000 +0200 +--- src/Makefile 2009-05-26 22:54:48.000000000 +0200 +*************** +*** 536,542 **** + # Use this with GCC to check for mistakes, unused arguments, etc. + #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code + #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers +! #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code + + # EFENCE - Electric-Fence malloc debugging: catches memory accesses beyond + # allocated memory (and makes every malloc()/free() very slow). +--- 536,542 ---- + # Use this with GCC to check for mistakes, unused arguments, etc. + #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code + #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers +! #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter + + # EFENCE - Electric-Fence malloc debugging: catches memory accesses beyond + # allocated memory (and makes every malloc()/free() very slow). +*************** +*** 2200,2205 **** +--- 2200,2206 ---- + -rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c + -rm -f conftest* *~ auto/link.sed + -rm -rf $(APPDIR) ++ -rm -rf mzscheme_base.c + if test -d $(PODIR); then \ + cd $(PODIR); $(MAKE) prefix=$(DESTDIR)$(prefix) clean; \ + fi +*************** +*** 2433,2440 **** + objects/if_xcmdsrv.o: if_xcmdsrv.c + $(CCC) -o $@ if_xcmdsrv.c + +! objects/if_mzsch.o: if_mzsch.c + $(CCC) -o $@ $(MZSCHEME_CFLAGS_EXTRA) if_mzsch.c + + objects/if_perl.o: auto/if_perl.c + $(CCC) -o $@ auto/if_perl.c +--- 2434,2444 ---- + objects/if_xcmdsrv.o: if_xcmdsrv.c + $(CCC) -o $@ if_xcmdsrv.c + +! objects/if_mzsch.o: if_mzsch.c $(MZSCHEME_EXTRA) + $(CCC) -o $@ $(MZSCHEME_CFLAGS_EXTRA) if_mzsch.c ++ ++ mzscheme_base.c: ++ $(MZSCHEME_MZC) --c-mods mzscheme_base.c ++lib scheme/base + + objects/if_perl.o: auto/if_perl.c + $(CCC) -o $@ auto/if_perl.c +*** ../vim-7.2.190/src/Make_ming.mak 2007-08-12 15:24:29.000000000 +0200 +--- src/Make_ming.mak 2009-05-26 18:54:15.000000000 +0200 +*************** +*** 115,122 **** +--- 115,135 ---- + MZSCHEME_VER=205_000 + endif + ++ ifndef MZSCHEME_PRECISE_GC ++ MZSCHEME_PRECISE_GC=no ++ endif ++ ++ # for version 4.x we need to generate byte-code for Scheme base ++ ifndef MZSCHEME_GENERATE_BASE ++ MZSCHEME_GENERATE_BASE=no ++ endif ++ + ifeq (no,$(DYNAMIC_MZSCHEME)) ++ ifeq (yes,$(MZSCHEME_PRECISE_GC)) ++ MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER) ++ else + MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER) ++ endif + # the modern MinGW can dynamically link to dlls directly. + # point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll + ifndef MZSCHEME_DLLS +*************** +*** 410,415 **** +--- 423,435 ---- + ifdef MZSCHEME + OBJ += $(OUTDIR)/if_mzsch.o + MZSCHEME_INCL = if_mzsch.h ++ ifeq (yes,$(MZSCHEME_GENERATE_BASE)) ++ CFLAGS += -DINCLUDE_MZSCHEME_BASE ++ MZ_EXTRA_DEP += mzscheme_base.c ++ endif ++ ifeq (yes,$(MZSCHEME_PRECISE_GC)) ++ CFLAGS += -DMZ_PRECISE_GC ++ endif + endif + ifdef PYTHON + OBJ += $(OUTDIR)/if_python.o +*************** +*** 588,593 **** +--- 608,619 ---- + $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC) + $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o + ++ $(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP) ++ $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o ++ ++ mzscheme_base.c: ++ $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base ++ + pathdef.c: $(INCL) + ifneq (sh.exe, $(SHELL)) + @echo creating pathdef.c +*** ../vim-7.2.190/src/Make_mvc.mak 2009-02-04 18:34:54.000000000 +0100 +--- src/Make_mvc.mak 2009-05-26 18:54:51.000000000 +0200 +*************** +*** 34,39 **** +--- 34,40 ---- + # MZSCHEME=[Path to MzScheme directory] + # DYNAMIC_MZSCHEME=yes (to load the MzScheme DLLs dynamically) + # MZSCHEME_VER=[version, 205_000, ...] ++ # MZSCHEME_DEBUG=no + # + # Perl interface: + # PERL=[Path to Perl directory] +*************** +*** 621,635 **** +--- 622,658 ---- + MZSCHEME_VER = 205_000 + !endif + CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include ++ !if EXIST("$(MZSCHEME)\collects\scheme\base.ss") ++ # for MzScheme 4.x we need to include byte code for basic Scheme stuff ++ MZSCHEME_EXTRA_DEP = mzscheme_base.c ++ CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE ++ !endif ++ !if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib") \ ++ && !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib") ++ !message Building with Precise GC ++ MZSCHEME_PRECISE_GC = yes ++ CFLAGS = $(CFLAGS) -DMZ_PRECISE_GC ++ !endif + !if "$(DYNAMIC_MZSCHEME)" == "yes" ++ !if "$(MZSCHEME_PRECISE_GC)" == "yes" ++ !error MzScheme with Precise GC cannot be loaded dynamically ++ !endif + !message MzScheme DLLs will be loaded dynamically + CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \ + -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" \ + -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\" + !else ++ !if "$(MZSCHEME_DEBUG)" == "yes" ++ CFLAGS = $(CFLAGS) -DMZSCHEME_FORCE_GC ++ !endif ++ !if "$(MZSCHEME_PRECISE_GC)" == "yes" ++ # Precise GC does not use separate dll ++ MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib ++ !else + MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \ + $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib + !endif ++ !endif + MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj + !endif + +*************** +*** 930,938 **** + $(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL) + $(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c + +! $(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(INCL) + $(CC) $(CFLAGS) if_mzsch.c \ + -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\" + + $(OUTDIR)/if_python.obj: $(OUTDIR) if_python.c $(INCL) + $(CC) $(CFLAGS) $(PYTHON_INC) if_python.c +--- 953,963 ---- + $(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL) + $(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c + +! $(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(INCL) $(MZSCHEME_EXTRA_DEP) + $(CC) $(CFLAGS) if_mzsch.c \ + -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\" ++ mzscheme_base.c: ++ $(MZSCHEME)\mzc --c-mods mzscheme_base.c ++lib scheme/base + + $(OUTDIR)/if_python.obj: $(OUTDIR) if_python.c $(INCL) + $(CC) $(CFLAGS) $(PYTHON_INC) if_python.c +*** ../vim-7.2.190/src/auto/configure 2009-05-21 23:25:38.000000000 +0200 +--- src/auto/configure 2009-05-26 19:12:29.000000000 +0200 +*************** +*** 701,706 **** +--- 701,708 ---- + shrpenv + vi_cv_perllib + vi_cv_path_perl ++ MZSCHEME_MZC ++ MZSCHEME_EXTRA + MZSCHEME_CFLAGS + MZSCHEME_LIBS + MZSCHEME_PRO +*************** +*** 4641,4648 **** + $as_echo "\"$PLTHOME\"" >&6; } + vi_cv_path_mzscheme_pfx="$PLTHOME" + else +! { $as_echo "$as_me:$LINENO: result: \"not set\"" >&5 +! $as_echo "\"not set\"" >&6; } + # Extract the first word of "mzscheme", so it can be a program name with args. + set dummy mzscheme; ac_word=$2 + { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +--- 4643,4650 ---- + $as_echo "\"$PLTHOME\"" >&6; } + vi_cv_path_mzscheme_pfx="$PLTHOME" + else +! { $as_echo "$as_me:$LINENO: result: not set" >&5 +! $as_echo "not set" >&6; } + # Extract the first word of "mzscheme", so it can be a program name with args. + set dummy mzscheme; ac_word=$2 + { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +*************** +*** 4697,4712 **** + if test "${vi_cv_path_mzscheme_pfx+set}" = set; then + $as_echo_n "(cached) " >&6 + else +! vi_cv_path_mzscheme_pfx=` +! ${vi_cv_path_mzscheme} -evm \ +! "(display (simplify-path \ + (build-path (call-with-values \ + (lambda () (split-path (find-system-path (quote exec-file)))) \ +! (lambda (base name must-be-dir?) base)) (quote up))))"` + fi + { $as_echo "$as_me:$LINENO: result: $vi_cv_path_mzscheme_pfx" >&5 + $as_echo "$vi_cv_path_mzscheme_pfx" >&6; } +! vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'` + fi + fi + fi +--- 4699,4714 ---- + if test "${vi_cv_path_mzscheme_pfx+set}" = set; then + $as_echo_n "(cached) " >&6 + else +! echo "(display (simplify-path \ + (build-path (call-with-values \ + (lambda () (split-path (find-system-path (quote exec-file)))) \ +! (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm +! vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \ +! sed -e 's+/$++'` + fi + { $as_echo "$as_me:$LINENO: result: $vi_cv_path_mzscheme_pfx" >&5 + $as_echo "$vi_cv_path_mzscheme_pfx" >&6; } +! rm -f mzdirs.scm + fi + fi + fi +*************** +*** 4716,4736 **** + { $as_echo "$as_me:$LINENO: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include" >&5 + $as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include... " >&6; } + if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then +! { $as_echo "$as_me:$LINENO: result: \"yes\"" >&5 +! $as_echo "\"yes\"" >&6; } + else +! { $as_echo "$as_me:$LINENO: result: \"no\"" >&5 +! $as_echo "\"no\"" >&6; } +! { $as_echo "$as_me:$LINENO: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/plt/include" >&5 +! $as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/plt/include... " >&6; } + if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then +! { $as_echo "$as_me:$LINENO: result: \"yes\"" >&5 +! $as_echo "\"yes\"" >&6; } +! SCHEME_INC=/plt + else +! { $as_echo "$as_me:$LINENO: result: \"no\"" >&5 +! $as_echo "\"no\"" >&6; } +! vi_cv_path_mzscheme_pfx= + fi + fi + fi +--- 4718,4749 ---- + { $as_echo "$as_me:$LINENO: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include" >&5 + $as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include... " >&6; } + if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then +! SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include +! { $as_echo "$as_me:$LINENO: result: yes" >&5 +! $as_echo "yes" >&6; } + else +! { $as_echo "$as_me:$LINENO: result: no" >&5 +! $as_echo "no" >&6; } +! { $as_echo "$as_me:$LINENO: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt" >&5 +! $as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt... " >&6; } + if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then +! { $as_echo "$as_me:$LINENO: result: yes" >&5 +! $as_echo "yes" >&6; } +! SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt + else +! { $as_echo "$as_me:$LINENO: result: no" >&5 +! $as_echo "no" >&6; } +! { $as_echo "$as_me:$LINENO: checking if scheme.h can be found in /usr/include/plt/" >&5 +! $as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; } +! if test -f /usr/include/plt/scheme.h; then +! { $as_echo "$as_me:$LINENO: result: yes" >&5 +! $as_echo "yes" >&6; } +! SCHEME_INC=/usr/include/plt +! else +! { $as_echo "$as_me:$LINENO: result: no" >&5 +! $as_echo "no" >&6; } +! vi_cv_path_mzscheme_pfx= +! fi + fi + fi + fi +*************** +*** 4738,4758 **** + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test "x$MACOSX" = "xyes"; then + MZSCHEME_LIBS="-framework PLT_MzScheme" + elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a" + else +! MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc" + if test "$GCC" = yes; then +! MZSCHEME_LIBS="$MZSCHEME_LIBS -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib" + elif test "`(uname) 2>/dev/null`" = SunOS && + uname -r | grep '^5' >/dev/null; then +! MZSCHEME_LIBS="$MZSCHEME_LIBS -R ${vi_cv_path_mzscheme_pfx}/lib" + fi + fi + if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then + SCHEME_COLLECTS=lib/plt/ + fi +! MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include${SCHEME_INC} \ + -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" +--- 4751,4784 ---- + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test "x$MACOSX" = "xyes"; then + MZSCHEME_LIBS="-framework PLT_MzScheme" ++ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then ++ MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a" ++ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" + elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a" + else +! if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then +! MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m" +! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" +! else +! MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc" +! fi + if test "$GCC" = yes; then +! MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib" + elif test "`(uname) 2>/dev/null`" = SunOS && + uname -r | grep '^5' >/dev/null; then +! MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib" + fi + fi + if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then + SCHEME_COLLECTS=lib/plt/ + fi +! if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then +! MZSCHEME_EXTRA="mzscheme_base.c" +! MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE" +! MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" +! fi +! MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \ + -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" +*************** +*** 4767,4772 **** +--- 4793,4800 ---- + + + ++ ++ + fi + + +*** ../vim-7.2.190/src/configure.in 2009-05-21 23:25:38.000000000 +0200 +--- src/configure.in 2009-05-26 18:57:35.000000000 +0200 +*************** +*** 414,420 **** + AC_MSG_RESULT("$PLTHOME") + vi_cv_path_mzscheme_pfx="$PLTHOME" + else +! AC_MSG_RESULT("not set") + dnl -- try to find MzScheme executable + AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme) + +--- 414,420 ---- + AC_MSG_RESULT("$PLTHOME") + vi_cv_path_mzscheme_pfx="$PLTHOME" + else +! AC_MSG_RESULT(not set) + dnl -- try to find MzScheme executable + AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme) + +*************** +*** 430,443 **** + if test "X$vi_cv_path_mzscheme" != "X"; then + dnl -- find where MzScheme thinks it was installed + AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx, +! [ vi_cv_path_mzscheme_pfx=` +! ${vi_cv_path_mzscheme} -evm \ +! "(display (simplify-path \ + (build-path (call-with-values \ + (lambda () (split-path (find-system-path (quote exec-file)))) \ +! (lambda (base name must-be-dir?) base)) (quote up))))"` ]) +! dnl Remove a trailing slash. +! vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'` + fi + fi + fi +--- 430,445 ---- + if test "X$vi_cv_path_mzscheme" != "X"; then + dnl -- find where MzScheme thinks it was installed + AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx, +! dnl different versions of MzScheme differ in command line processing +! dnl use universal approach +! echo "(display (simplify-path \ + (build-path (call-with-values \ + (lambda () (split-path (find-system-path (quote exec-file)))) \ +! (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm +! dnl Remove a trailing slash +! [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \ +! sed -e 's+/$++'` ]) +! rm -f mzdirs.scm + fi + fi + fi +*************** +*** 446,461 **** + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include) + if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then +! AC_MSG_RESULT("yes") + else +! AC_MSG_RESULT("no") +! AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/plt/include) + if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then +! AC_MSG_RESULT("yes") +! SCHEME_INC=/plt + else +! AC_MSG_RESULT("no") +! vi_cv_path_mzscheme_pfx= + fi + fi + fi +--- 448,471 ---- + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include) + if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then +! SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include +! AC_MSG_RESULT(yes) + else +! AC_MSG_RESULT(no) +! AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt) + if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then +! AC_MSG_RESULT(yes) +! SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt + else +! AC_MSG_RESULT(no) +! AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/) +! if test -f /usr/include/plt/scheme.h; then +! AC_MSG_RESULT(yes) +! SCHEME_INC=/usr/include/plt +! else +! AC_MSG_RESULT(no) +! vi_cv_path_mzscheme_pfx= +! fi + fi + fi + fi +*************** +*** 463,485 **** + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test "x$MACOSX" = "xyes"; then + MZSCHEME_LIBS="-framework PLT_MzScheme" + elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a" + else +! MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc" + if test "$GCC" = yes; then + dnl Make Vim remember the path to the library. For when it's not in + dnl $LD_LIBRARY_PATH. +! MZSCHEME_LIBS="$MZSCHEME_LIBS -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib" + elif test "`(uname) 2>/dev/null`" = SunOS && + uname -r | grep '^5' >/dev/null; then +! MZSCHEME_LIBS="$MZSCHEME_LIBS -R ${vi_cv_path_mzscheme_pfx}/lib" + fi + fi + if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then + SCHEME_COLLECTS=lib/plt/ + fi +! MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include${SCHEME_INC} \ + -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" +--- 473,510 ---- + if test "X$vi_cv_path_mzscheme_pfx" != "X"; then + if test "x$MACOSX" = "xyes"; then + MZSCHEME_LIBS="-framework PLT_MzScheme" ++ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then ++ MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a" ++ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" + elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then + MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a" + else +! dnl Using shared objects +! if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then +! MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m" +! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" +! else +! MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc" +! fi + if test "$GCC" = yes; then + dnl Make Vim remember the path to the library. For when it's not in + dnl $LD_LIBRARY_PATH. +! MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib" + elif test "`(uname) 2>/dev/null`" = SunOS && + uname -r | grep '^5' >/dev/null; then +! MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib" + fi + fi + if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then + SCHEME_COLLECTS=lib/plt/ + fi +! if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then +! dnl need to generate bytecode for MzScheme base +! MZSCHEME_EXTRA="mzscheme_base.c" +! MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE" +! MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" +! fi +! MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \ + -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'" + MZSCHEME_SRC="if_mzsch.c" + MZSCHEME_OBJ="objects/if_mzsch.o" +*************** +*** 491,496 **** +--- 516,523 ---- + AC_SUBST(MZSCHEME_PRO) + AC_SUBST(MZSCHEME_LIBS) + AC_SUBST(MZSCHEME_CFLAGS) ++ AC_SUBST(MZSCHEME_EXTRA) ++ AC_SUBST(MZSCHEME_MZC) + fi + + +*** ../vim-7.2.190/src/config.mk.in 2008-06-25 00:49:03.000000000 +0200 +--- src/config.mk.in 2009-05-26 18:57:49.000000000 +0200 +*************** +*** 41,46 **** +--- 41,48 ---- + MZSCHEME_OBJ = @MZSCHEME_OBJ@ + MZSCHEME_CFLAGS = @MZSCHEME_CFLAGS@ + MZSCHEME_PRO = @MZSCHEME_PRO@ ++ MZSCHEME_EXTRA = @MZSCHEME_EXTRA@ ++ MZSCHEME_MZC = @MZSCHEME_MZC@ + + PERL = @vi_cv_path_perl@ + PERLLIB = @vi_cv_perllib@ +*** ../vim-7.2.190/src/eval.c 2009-05-24 13:40:17.000000000 +0200 +--- src/eval.c 2009-05-26 18:58:20.000000000 +0200 +*************** +*** 5866,5872 **** + return item1 == NULL && item2 == NULL; + } + +! #if defined(FEAT_PYTHON) || defined(PROTO) + /* + * Return the dictitem that an entry in a hashtable points to. + */ +--- 5866,5872 ---- + return item1 == NULL && item2 == NULL; + } + +! #if defined(FEAT_PYTHON) || defined(FEAT_MZSCHEME) || defined(PROTO) + /* + * Return the dictitem that an entry in a hashtable points to. + */ +*** ../vim-7.2.190/src/if_mzsch.c 2009-05-17 16:23:20.000000000 +0200 +--- src/if_mzsch.c 2009-05-26 19:24:18.000000000 +0200 +*************** +*** 4,9 **** +--- 4,11 ---- + * Original work by Brent Fulgham <bfulgham@debian.org> + * (Based on lots of help from Matthew Flatt) + * ++ * TODO Convert byte-strings to char strings? ++ * + * This consists of six parts: + * 1. MzScheme interpreter main program + * 2. Routines that handle the external interface between MzScheme and +*************** +*** 18,24 **** + * garbage collector will do it self + * 2. Requires at least NORMAL features. I can't imagine why one may want + * to build with SMALL or TINY features but with MzScheme interface. +! * 3. I don't use K&R-style functions. Anyway, MzScheme headers are ANSI. + */ + + #include "vim.h" +--- 20,26 ---- + * garbage collector will do it self + * 2. Requires at least NORMAL features. I can't imagine why one may want + * to build with SMALL or TINY features but with MzScheme interface. +! * 3. I don't use K&R-style functions. Anyways, MzScheme headers are ANSI. + */ + + #include "vim.h" +*************** +*** 29,42 **** + * depend". */ + #if defined(FEAT_MZSCHEME) || defined(PROTO) + + /* Base data structures */ + #define SCHEME_VIMBUFFERP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_buffer_type) + #define SCHEME_VIMWINDOWP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_window_type) + + typedef struct + { +! Scheme_Type tag; +! Scheme_Env *env; + buf_T *buf; + } vim_mz_buffer; + +--- 31,45 ---- + * depend". */ + #if defined(FEAT_MZSCHEME) || defined(PROTO) + ++ #include <assert.h> ++ + /* Base data structures */ + #define SCHEME_VIMBUFFERP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_buffer_type) + #define SCHEME_VIMWINDOWP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_window_type) + + typedef struct + { +! Scheme_Object so; + buf_T *buf; + } vim_mz_buffer; + +*************** +*** 44,50 **** + + typedef struct + { +! Scheme_Type tag; + win_T *win; + } vim_mz_window; + +--- 47,53 ---- + + typedef struct + { +! Scheme_Object so; + win_T *win; + } vim_mz_window; + +*************** +*** 67,85 **** + Scheme_Object *port; + } Port_Info; + +- /* info for closed prim */ +- /* +- * data have different means: +- * for do_eval it is char* +- * for do_apply is Apply_Onfo* +- * for do_load is Port_Info* +- */ +- typedef struct +- { +- void *data; +- Scheme_Env *env; +- } Cmd_Info; +- + /* info for do_apply */ + typedef struct + { +--- 70,75 ---- +*************** +*** 122,128 **** + static Scheme_Object *insert_buffer_line_list(void *, int, Scheme_Object **); + static Scheme_Object *get_range_start(void *, int, Scheme_Object **); + static Scheme_Object *get_range_end(void *, int, Scheme_Object **); +- static Scheme_Object *get_buffer_namespace(void *, int, Scheme_Object **); + static vim_mz_buffer *get_vim_curr_buffer(void); + + /* Window-related commands */ +--- 112,117 ---- +*************** +*** 163,170 **** + static int do_mzscheme_command(exarg_T *, void *, Scheme_Closed_Prim *what); + static void startup_mzscheme(void); + static char *string_to_line(Scheme_Object *obj); +- static int mzscheme_io_init(void); +- static void mzscheme_interface_init(vim_mz_buffer *self); + static void do_output(char *mesg, long len); + static void do_printf(char *format, ...); + static void do_flush(void); +--- 152,157 ---- +*************** +*** 174,192 **** + static Scheme_Object *do_eval(void *, int noargc, Scheme_Object **noargv); + static Scheme_Object *do_load(void *, int noargc, Scheme_Object **noargv); + static Scheme_Object *do_apply(void *, int noargc, Scheme_Object **noargv); +! static void register_vim_exn(Scheme_Env *env); + static vim_mz_buffer *get_buffer_arg(const char *fname, int argnum, + int argc, Scheme_Object **argv); + static vim_mz_window *get_window_arg(const char *fname, int argnum, + int argc, Scheme_Object **argv); +- static void add_vim_exn(Scheme_Env *env); + static int line_in_range(linenr_T, buf_T *); + static void check_line_range(linenr_T, buf_T *); + static void mz_fix_cursor(int lo, int hi, int extra); + +! static int eval_in_namespace(void *, Scheme_Closed_Prim *, Scheme_Env *, +! Scheme_Object **ret); +! static void make_modules(Scheme_Env *); + + #ifdef DYNAMIC_MZSCHEME + +--- 161,212 ---- + static Scheme_Object *do_eval(void *, int noargc, Scheme_Object **noargv); + static Scheme_Object *do_load(void *, int noargc, Scheme_Object **noargv); + static Scheme_Object *do_apply(void *, int noargc, Scheme_Object **noargv); +! static void register_vim_exn(void); + static vim_mz_buffer *get_buffer_arg(const char *fname, int argnum, + int argc, Scheme_Object **argv); + static vim_mz_window *get_window_arg(const char *fname, int argnum, + int argc, Scheme_Object **argv); + static int line_in_range(linenr_T, buf_T *); + static void check_line_range(linenr_T, buf_T *); + static void mz_fix_cursor(int lo, int hi, int extra); + +! static int eval_with_exn_handling(void *, Scheme_Closed_Prim *, +! Scheme_Object **ret); +! static void make_modules(void); +! static void init_exn_catching_apply(void); +! static int mzscheme_env_main(Scheme_Env *env, int argc, char **argv); +! static int mzscheme_init(void); +! #ifdef FEAT_EVAL +! static Scheme_Object *vim_to_mzscheme(typval_T *vim_value, int depth, +! Scheme_Hash_Table *visited); +! #endif +! +! #ifdef MZ_PRECISE_GC +! static int buffer_size_proc(void *obj) +! { +! return gcBYTES_TO_WORDS(sizeof(vim_mz_buffer)); +! } +! static int buffer_mark_proc(void *obj) +! { +! return buffer_size_proc(obj); +! } +! static int buffer_fixup_proc(void *obj) +! { +! return buffer_size_proc(obj); +! } +! static int window_size_proc(void *obj) +! { +! return gcBYTES_TO_WORDS(sizeof(vim_mz_window)); +! } +! static int window_mark_proc(void *obj) +! { +! return window_size_proc(obj); +! } +! static int window_fixup_proc(void *obj) +! { +! return window_size_proc(obj); +! } +! #endif + + #ifdef DYNAMIC_MZSCHEME + +*************** +*** 260,267 **** + (Scheme_Closed_Prim *prim, void *data, const char *name, mzshort mina, + mzshort maxa); + static Scheme_Object *(*dll_scheme_make_integer_value)(long i); +- static Scheme_Object *(*dll_scheme_make_namespace)(int argc, +- Scheme_Object *argv[]); + static Scheme_Object *(*dll_scheme_make_pair)(Scheme_Object *car, + Scheme_Object *cdr); + static Scheme_Object *(*dll_scheme_make_prim_w_arity)(Scheme_Prim *prim, +--- 280,285 ---- +*************** +*** 311,316 **** +--- 329,345 ---- + static Scheme_Object *(*dll_scheme_char_string_to_path) + (Scheme_Object *s); + # endif ++ static Scheme_Hash_Table *(*dll_scheme_make_hash_table)(int type); ++ static void (*dll_scheme_hash_set)(Scheme_Hash_Table *table, ++ Scheme_Object *key, Scheme_Object *value); ++ static Scheme_Object *(*dll_scheme_hash_get)(Scheme_Hash_Table *table, ++ Scheme_Object *key); ++ static Scheme_Object *(*dll_scheme_make_double)(double d); ++ # ifdef INCLUDE_MZSCHEME_BASE ++ static Scheme_Object *(*dll_scheme_make_sized_byte_string)(char *chars, ++ long len, int copy); ++ static Scheme_Object *(*dll_scheme_namespace_require)(Scheme_Object *req); ++ # endif + + /* arrays are imported directly */ + # define scheme_eof dll_scheme_eof +*************** +*** 368,374 **** + # define scheme_lookup_global dll_scheme_lookup_global + # define scheme_make_closed_prim_w_arity dll_scheme_make_closed_prim_w_arity + # define scheme_make_integer_value dll_scheme_make_integer_value +- # define scheme_make_namespace dll_scheme_make_namespace + # define scheme_make_pair dll_scheme_make_pair + # define scheme_make_prim_w_arity dll_scheme_make_prim_w_arity + # if MZSCHEME_VERSION_MAJOR < 299 +--- 397,402 ---- +*************** +*** 403,408 **** +--- 431,444 ---- + # define scheme_char_string_to_path \ + dll_scheme_char_string_to_path + # endif ++ # define scheme_make_hash_table dll_scheme_make_hash_table ++ # define scheme_hash_set dll_scheme_hash_set ++ # define scheme_hash_get dll_scheme_hash_get ++ # define scheme_make_double dll_scheme_make_double ++ # ifdef INCLUDE_MZSCHEME_BASE ++ # define scheme_make_sized_byte_string dll_scheme_make_sized_byte_string ++ # define scheme_namespace_require dll_scheme_namespace_require ++ # endif + + typedef struct + { +*************** +*** 468,474 **** + {"scheme_make_closed_prim_w_arity", + (void **)&dll_scheme_make_closed_prim_w_arity}, + {"scheme_make_integer_value", (void **)&dll_scheme_make_integer_value}, +- {"scheme_make_namespace", (void **)&dll_scheme_make_namespace}, + {"scheme_make_pair", (void **)&dll_scheme_make_pair}, + {"scheme_make_prim_w_arity", (void **)&dll_scheme_make_prim_w_arity}, + # if MZSCHEME_VERSION_MAJOR < 299 +--- 504,509 ---- +*************** +*** 502,510 **** + {"scheme_current_config", (void **)&dll_scheme_current_config}, + {"scheme_char_string_to_byte_string", + (void **)&dll_scheme_char_string_to_byte_string}, +! {"scheme_char_string_to_path", +! (void **)&dll_scheme_char_string_to_path}, + # endif + {NULL, NULL}}; + + static HINSTANCE hMzGC = 0; +--- 537,552 ---- + {"scheme_current_config", (void **)&dll_scheme_current_config}, + {"scheme_char_string_to_byte_string", + (void **)&dll_scheme_char_string_to_byte_string}, +! {"scheme_char_string_to_path", (void **)&dll_scheme_char_string_to_path}, + # endif ++ {"scheme_make_hash_table", (void **)&dll_scheme_make_hash_table}, ++ {"scheme_hash_set", (void **)&dll_scheme_hash_set}, ++ {"scheme_hash_get", (void **)&dll_scheme_hash_get}, ++ {"scheme_make_double", (void **)&dll_scheme_make_double}, ++ # ifdef INCLUDE_MZSCHEME_BASE ++ {"scheme_make_sized_byte_string", (void **)&dll_scheme_make_sized_byte_string}, ++ {"scheme_namespace_require", (void **)&dll_scheme_namespace_require}, ++ #endif + {NULL, NULL}}; + + static HINSTANCE hMzGC = 0; +*************** +*** 592,597 **** +--- 634,644 ---- + } + #endif /* DYNAMIC_MZSCHEME */ + ++ /* need to put it here for dynamic stuff to work */ ++ #ifdef INCLUDE_MZSCHEME_BASE ++ # include "mzscheme_base.c" ++ #endif ++ + /* + *======================================================================== + * 1. MzScheme interpreter startup +*************** +*** 601,621 **** + static Scheme_Type mz_buffer_type; + static Scheme_Type mz_window_type; + +! static int initialized = 0; + + /* global environment */ + static Scheme_Env *environment = NULL; + /* output/error handlers */ + static Scheme_Object *curout = NULL; + static Scheme_Object *curerr = NULL; +! /* vim:exn exception */ + static Scheme_Object *exn_catching_apply = NULL; + static Scheme_Object *exn_p = NULL; + static Scheme_Object *exn_message = NULL; + static Scheme_Object *vim_exn = NULL; /* Vim Error exception */ +! /* values for exn:vim - constructor, predicate, accessors etc */ +! static Scheme_Object *vim_exn_names = NULL; +! static Scheme_Object *vim_exn_values = NULL; + + static long range_start; + static long range_end; +--- 648,669 ---- + static Scheme_Type mz_buffer_type; + static Scheme_Type mz_window_type; + +! static int initialized = FALSE; + + /* global environment */ + static Scheme_Env *environment = NULL; + /* output/error handlers */ + static Scheme_Object *curout = NULL; + static Scheme_Object *curerr = NULL; +! /* exn:vim exception */ + static Scheme_Object *exn_catching_apply = NULL; + static Scheme_Object *exn_p = NULL; + static Scheme_Object *exn_message = NULL; + static Scheme_Object *vim_exn = NULL; /* Vim Error exception */ +! +! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400 +! static void *stack_base = NULL; +! #endif + + static long range_start; + static long range_end; +*************** +*** 668,677 **** + timer_proc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) + # elif defined(FEAT_GUI_GTK) + static gint +! timer_proc(gpointer data UNUSED) + # elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) + static void +! timer_proc(XtPointer timed_out UNUSED, XtIntervalId *interval_id UNUSED) + # elif defined(FEAT_GUI_MAC) + pascal void + timer_proc(EventLoopTimerRef theTimer, void *userData) +--- 716,725 ---- + timer_proc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) + # elif defined(FEAT_GUI_GTK) + static gint +! timer_proc(gpointer data) + # elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) + static void +! timer_proc(XtPointer timed_out, XtIntervalId *interval_id) + # elif defined(FEAT_GUI_MAC) + pascal void + timer_proc(EventLoopTimerRef theTimer, void *userData) +*************** +*** 751,762 **** + #endif + } + + static void + startup_mzscheme(void) + { +! Scheme_Object *proc_make_security_guard; +! +! scheme_set_stack_base(NULL, 1); + + MZ_REGISTER_STATIC(environment); + MZ_REGISTER_STATIC(curout); +--- 799,862 ---- + #endif + } + ++ void ++ mzscheme_main(void) ++ { ++ #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400 ++ /* use trampoline for precise GC in MzScheme >= 4.x */ ++ scheme_main_setup(TRUE, mzscheme_env_main, 0, NULL); ++ #else ++ mzscheme_env_main(NULL, 0, NULL); ++ #endif ++ } ++ ++ static int ++ mzscheme_env_main(Scheme_Env *env, int argc, char **argv) ++ { ++ /* neither argument nor return values are used */ ++ #ifdef MZ_PRECISE_GC ++ # if MZSCHEME_VERSION_MAJOR < 400 ++ /* ++ * Starting from version 4.x, embedding applications must use ++ * scheme_main_setup/scheme_main_stack_setup trampolines ++ * rather than setting stack base directly with scheme_set_stack_base ++ */ ++ Scheme_Object *dummy = NULL; ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, dummy); ++ ++ stack_base = &__gc_var_stack__; ++ # else ++ /* environment has been created by us by Scheme */ ++ environment = env; ++ # endif ++ /* ++ * In 4.x, all activities must be performed inside trampoline ++ * so we are forced to initialise GC immediately ++ * This can be postponed in 3.x but I see no point in implementing ++ * a feature which will work in older versions only. ++ * One would better use conservative GC if he needs dynamic MzScheme ++ */ ++ mzscheme_init(); ++ #else ++ int dummy = 0; ++ stack_base = (void *)&dummy; ++ #endif ++ main_loop(FALSE, FALSE); ++ #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR < 400 ++ /* releasing dummy */ ++ MZ_GC_REG(); ++ MZ_GC_UNREG(); ++ #endif ++ return 0; ++ } ++ + static void + startup_mzscheme(void) + { +! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400 +! scheme_set_stack_base(stack_base, 1); +! #endif + + MZ_REGISTER_STATIC(environment); + MZ_REGISTER_STATIC(curout); +*************** +*** 765,774 **** + MZ_REGISTER_STATIC(exn_p); + MZ_REGISTER_STATIC(exn_message); + MZ_REGISTER_STATIC(vim_exn); +- MZ_REGISTER_STATIC(vim_exn_names); +- MZ_REGISTER_STATIC(vim_exn_values); + + environment = scheme_basic_env(); + + /* redirect output */ + scheme_console_output = do_output; +--- 865,899 ---- + MZ_REGISTER_STATIC(exn_p); + MZ_REGISTER_STATIC(exn_message); + MZ_REGISTER_STATIC(vim_exn); + ++ #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400 ++ /* in newer versions of precise GC the initial env has been created */ + environment = scheme_basic_env(); ++ #endif ++ MZ_GC_CHECK(); ++ ++ #ifdef INCLUDE_MZSCHEME_BASE ++ { ++ /* ++ * versions 4.x do not provide Scheme bindings by defaults ++ * we need to add them explicitly ++ */ ++ Scheme_Object *scheme_base_symbol = NULL; ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, scheme_base_symbol); ++ MZ_GC_REG(); ++ /* invoke function from generated and included base.c */ ++ declare_modules(environment); ++ scheme_base_symbol = scheme_intern_symbol("scheme/base"); ++ MZ_GC_CHECK(); ++ scheme_namespace_require(scheme_base_symbol); ++ MZ_GC_CHECK(); ++ MZ_GC_UNREG(); ++ } ++ #endif ++ register_vim_exn(); ++ /* use new environment to initialise exception handling */ ++ init_exn_catching_apply(); + + /* redirect output */ + scheme_console_output = do_output; +*************** +*** 776,823 **** + + #ifdef MZSCHEME_COLLECTS + /* setup 'current-library-collection-paths' parameter */ +- scheme_set_param(scheme_config, MZCONFIG_COLLECTION_PATHS, +- scheme_make_pair( + # if MZSCHEME_VERSION_MAJOR >= 299 +! scheme_char_string_to_path( +! scheme_byte_string_to_char_string( +! scheme_make_byte_string(MZSCHEME_COLLECTS))), + # else +! scheme_make_string(MZSCHEME_COLLECTS), + # endif +- scheme_null)); + #endif + #ifdef HAVE_SANDBOX +! /* setup sandbox guards */ +! proc_make_security_guard = scheme_lookup_global( +! scheme_intern_symbol("make-security-guard"), +! environment); +! if (proc_make_security_guard != NULL) +! { +! Scheme_Object *args[3]; +! Scheme_Object *guard; +! args[0] = scheme_get_param(scheme_config, MZCONFIG_SECURITY_GUARD); +! args[1] = scheme_make_prim_w_arity(sandbox_file_guard, +! "sandbox-file-guard", 3, 3); +! args[2] = scheme_make_prim_w_arity(sandbox_network_guard, +! "sandbox-network-guard", 4, 4); +! guard = scheme_apply(proc_make_security_guard, 3, args); +! scheme_set_param(scheme_config, MZCONFIG_SECURITY_GUARD, guard); + } + #endif + /* Create buffer and window types for use in Scheme code */ + mz_buffer_type = scheme_make_type("<vim-buffer>"); + mz_window_type = scheme_make_type("<vim-window>"); + +! register_vim_exn(environment); +! make_modules(environment); + + /* + * setup callback to receive notifications + * whether thread scheduling is (or not) required + */ + scheme_notify_multithread = notify_multithread; +- initialized = 1; + } + + /* +--- 901,1031 ---- + + #ifdef MZSCHEME_COLLECTS + /* setup 'current-library-collection-paths' parameter */ + # if MZSCHEME_VERSION_MAJOR >= 299 +! { +! Scheme_Object *coll_byte_string = NULL; +! Scheme_Object *coll_char_string = NULL; +! Scheme_Object *coll_path = NULL; +! Scheme_Object *coll_pair = NULL; +! Scheme_Config *config = NULL; +! +! MZ_GC_DECL_REG(5); +! MZ_GC_VAR_IN_REG(0, coll_byte_string); +! MZ_GC_VAR_IN_REG(1, coll_char_string); +! MZ_GC_VAR_IN_REG(2, coll_path); +! MZ_GC_VAR_IN_REG(3, coll_pair); +! MZ_GC_VAR_IN_REG(4, config); +! MZ_GC_REG(); +! coll_byte_string = scheme_make_byte_string(MZSCHEME_COLLECTS); +! MZ_GC_CHECK(); +! coll_char_string = scheme_byte_string_to_char_string(coll_byte_string); +! MZ_GC_CHECK(); +! coll_path = scheme_char_string_to_path(coll_char_string); +! MZ_GC_CHECK(); +! coll_pair = scheme_make_pair(coll_path, scheme_null); +! MZ_GC_CHECK(); +! config = scheme_config; +! MZ_GC_CHECK(); +! scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair); +! MZ_GC_CHECK(); +! MZ_GC_UNREG(); +! } + # else +! { +! Scheme_Object *coll_string = NULL; +! Scheme_Object *coll_pair = NULL; +! Scheme_Config *config = NULL; +! +! MZ_GC_DECL_REG(3); +! MZ_GC_VAR_IN_REG(0, coll_string); +! MZ_GC_VAR_IN_REG(1, coll_pair); +! MZ_GC_VAR_IN_REG(2, config); +! MZ_GC_REG(); +! coll_string = scheme_make_string(MZSCHEME_COLLECTS); +! MZ_GC_CHECK(); +! coll_pair = scheme_make_pair(coll_string, scheme_null); +! MZ_GC_CHECK(); +! config = scheme_config; +! MZ_GC_CHECK(); +! scheme_set_param(config, MZCONFIG_COLLECTION_PATHS, coll_pair); +! MZ_GC_CHECK(); +! MZ_GC_UNREG(); +! } + # endif + #endif + #ifdef HAVE_SANDBOX +! { +! Scheme_Object *make_security_guard = NULL; +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, make_security_guard); +! MZ_GC_REG(); +! +! #if MZSCHEME_VERSION_MAJOR < 400 +! { +! Scheme_Object *make_security_guard_symbol = NULL; +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, make_security_guard_symbol); +! MZ_GC_REG(); +! make_security_guard_symbol = scheme_intern_symbol("make-security-guard"); +! MZ_GC_CHECK(); +! make_security_guard = scheme_lookup_global( +! make_security_guard_symbol, environment); +! MZ_GC_UNREG(); +! } +! #else +! make_security_guard = scheme_builtin_value("make-security-guard"); +! MZ_GC_CHECK(); +! #endif +! +! /* setup sandbox guards */ +! if (make_security_guard != NULL) +! { +! Scheme_Object *args[3] = {NULL, NULL, NULL}; +! Scheme_Object *guard = NULL; +! Scheme_Config *config = NULL; +! MZ_GC_DECL_REG(5); +! MZ_GC_ARRAY_VAR_IN_REG(0, args, 3); +! MZ_GC_VAR_IN_REG(3, guard); +! MZ_GC_VAR_IN_REG(4, config); +! MZ_GC_REG(); +! config = scheme_config; +! MZ_GC_CHECK(); +! args[0] = scheme_get_param(config, MZCONFIG_SECURITY_GUARD); +! MZ_GC_CHECK(); +! args[1] = scheme_make_prim_w_arity(sandbox_file_guard, +! "sandbox-file-guard", 3, 3); +! args[2] = scheme_make_prim_w_arity(sandbox_network_guard, +! "sandbox-network-guard", 4, 4); +! guard = scheme_apply(make_security_guard, 3, args); +! MZ_GC_CHECK(); +! scheme_set_param(config, MZCONFIG_SECURITY_GUARD, guard); +! MZ_GC_CHECK(); +! MZ_GC_UNREG(); +! } +! MZ_GC_UNREG(); + } + #endif + /* Create buffer and window types for use in Scheme code */ + mz_buffer_type = scheme_make_type("<vim-buffer>"); ++ MZ_GC_CHECK(); + mz_window_type = scheme_make_type("<vim-window>"); ++ MZ_GC_CHECK(); ++ #ifdef MZ_PRECISE_GC ++ GC_register_traversers(mz_buffer_type, ++ buffer_size_proc, buffer_mark_proc, buffer_fixup_proc, ++ TRUE, TRUE); ++ GC_register_traversers(mz_window_type, ++ window_size_proc, window_mark_proc, window_fixup_proc, ++ TRUE, TRUE); ++ #endif + +! make_modules(); + + /* + * setup callback to receive notifications + * whether thread scheduling is (or not) required + */ + scheme_notify_multithread = notify_multithread; + } + + /* +*************** +*** 827,897 **** + static int + mzscheme_init(void) + { +- int do_require = FALSE; +- + if (!initialized) + { +- do_require = TRUE; + #ifdef DYNAMIC_MZSCHEME + if (!mzscheme_enabled(TRUE)) + { +! EMSG(_("???: Sorry, this command is disabled, the MzScheme library could not be loaded.")); + return -1; + } + #endif + startup_mzscheme(); +! +! if (mzscheme_io_init()) +! return -1; +! +! } +! /* recreate ports each call effectivelly clearing these ones */ +! curout = scheme_make_string_output_port(); +! curerr = scheme_make_string_output_port(); +! scheme_set_param(scheme_config, MZCONFIG_OUTPUT_PORT, curout); +! scheme_set_param(scheme_config, MZCONFIG_ERROR_PORT, curerr); +! +! if (do_require) +! { +! /* auto-instantiate in basic env */ +! eval_in_namespace("(require (prefix vimext: vimext))", do_eval, +! environment, NULL); + } +- +- return 0; +- } +- +- /* +- * This routine fills the namespace with various important routines that can +- * be used within MzScheme. +- */ +- static void +- mzscheme_interface_init(vim_mz_buffer *mzbuff) +- { +- Scheme_Object *attach; +- +- mzbuff->env = (Scheme_Env *)scheme_make_namespace(0, NULL); +- +- /* +- * attach instantiated modules from global namespace +- * so they can be easily instantiated in the buffer namespace +- */ +- attach = scheme_lookup_global( +- scheme_intern_symbol("namespace-attach-module"), +- environment); +- +- if (attach != NULL) + { +! Scheme_Object *ret; +! Scheme_Object *args[2]; +! +! args[0] = (Scheme_Object *)environment; +! args[1] = scheme_intern_symbol("vimext"); +! +! ret = (Scheme_Object *)mzvim_apply(attach, 2, args); + } + +! add_vim_exn(mzbuff->env); + } + + /* +--- 1035,1072 ---- + static int + mzscheme_init(void) + { + if (!initialized) + { + #ifdef DYNAMIC_MZSCHEME + if (!mzscheme_enabled(TRUE)) + { +! EMSG(_("E812: Sorry, this command is disabled, the MzScheme libraries could not be loaded.")); + return -1; + } + #endif + startup_mzscheme(); +! initialized = TRUE; + } + { +! Scheme_Config *config = NULL; +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, config); +! MZ_GC_REG(); +! config = scheme_config; +! MZ_GC_CHECK(); +! /* recreate ports each call effectivelly clearing these ones */ +! curout = scheme_make_string_output_port(); +! MZ_GC_CHECK(); +! curerr = scheme_make_string_output_port(); +! MZ_GC_CHECK(); +! scheme_set_param(config, MZCONFIG_OUTPUT_PORT, curout); +! MZ_GC_CHECK(); +! scheme_set_param(config, MZCONFIG_ERROR_PORT, curerr); +! MZ_GC_CHECK(); +! MZ_GC_UNREG(); + } + +! return 0; + } + + /* +*************** +*** 901,928 **** + */ + + /* +! * Evaluate command in namespace with exception handling + */ + static int +! eval_in_namespace(void *data, Scheme_Closed_Prim *what, Scheme_Env *env, +! Scheme_Object **ret) + { +! Scheme_Object *value; +! Scheme_Object *exn; +! Cmd_Info info; /* closure info */ +! +! info.data = data; +! info.env = env; +! +! scheme_set_param(scheme_config, MZCONFIG_ENV, +! (Scheme_Object *) env); +! /* +! * ensure all evaluations will be in current buffer namespace, +! * the second argument to scheme_eval_string isn't enough! +! */ +! value = _apply_thunk_catch_exceptions( +! scheme_make_closed_prim_w_arity(what, &info, "mzvim", 0, 0), +! &exn); + + if (!value) + { +--- 1076,1100 ---- + */ + + /* +! * Evaluate command with exception handling + */ + static int +! eval_with_exn_handling(void *data, Scheme_Closed_Prim *what, Scheme_Object **ret) + { +! Scheme_Object *value = NULL; +! Scheme_Object *exn = NULL; +! Scheme_Object *prim = NULL; +! +! MZ_GC_DECL_REG(3); +! MZ_GC_VAR_IN_REG(0, value); +! MZ_GC_VAR_IN_REG(1, exn); +! MZ_GC_VAR_IN_REG(2, prim); +! MZ_GC_REG(); +! +! prim = scheme_make_closed_prim_w_arity(what, data, "mzvim", 0, 0); +! MZ_GC_CHECK(); +! value = _apply_thunk_catch_exceptions(prim, &exn); +! MZ_GC_CHECK(); + + if (!value) + { +*************** +*** 930,938 **** + /* Got an exn? */ + if (value) + { +! scheme_display(value, curerr); /* Send to stderr-vim */ + do_flush(); + } + /* `raise' was called on some arbitrary value */ + return FAIL; + } +--- 1102,1112 ---- + /* Got an exn? */ + if (value) + { +! scheme_display(value, curerr); /* Send to stderr-vim */ +! MZ_GC_CHECK(); + do_flush(); + } ++ MZ_GC_UNREG(); + /* `raise' was called on some arbitrary value */ + return FAIL; + } +*************** +*** 941,949 **** +--- 1115,1127 ---- + *ret = value; + /* Print any result, as long as it's not a void */ + else if (!SCHEME_VOIDP(value)) ++ { + scheme_display(value, curout); /* Send to stdout-vim */ ++ MZ_GC_CHECK(); ++ } + + do_flush(); ++ MZ_GC_UNREG(); + return OK; + } + +*************** +*** 957,963 **** + range_start = eap->line1; + range_end = eap->line2; + +! return eval_in_namespace(data, what, get_vim_curr_buffer()->env, NULL); + } + + /* +--- 1135,1141 ---- + range_start = eap->line1; + range_end = eap->line2; + +! return eval_with_exn_handling(data, what, NULL); + } + + /* +*************** +*** 974,979 **** +--- 1152,1158 ---- + bp->buf = INVALID_BUFFER_VALUE; + buf->b_mzscheme_ref = NULL; + scheme_gc_ptr_ok(bp); ++ MZ_GC_CHECK(); + } + } + +*************** +*** 990,995 **** +--- 1169,1175 ---- + wp->win = INVALID_WINDOW_VALUE; + win->w_mzscheme_ref = NULL; + scheme_gc_ptr_ok(wp); ++ MZ_GC_CHECK(); + } + } + +*************** +*** 1014,1031 **** + } + } + +- /* eval MzScheme string */ +- void * +- mzvim_eval_string(char_u *str) +- { +- Scheme_Object *ret = NULL; +- if (mzscheme_init()) +- return FAIL; +- +- eval_in_namespace(str, do_eval, get_vim_curr_buffer()->env, &ret); +- return ret; +- } +- + /* + * apply MzScheme procedure with arguments, + * handling errors +--- 1194,1199 ---- +*************** +*** 1033,1075 **** + Scheme_Object * + mzvim_apply(Scheme_Object *proc, int argc, Scheme_Object **argv) + { +- Apply_Info data; +- Scheme_Object *ret = NULL; +- + if (mzscheme_init()) + return FAIL; + +! data.proc = proc; +! data.argc = argc; +! data.argv = argv; +! +! eval_in_namespace(&data, do_apply, get_vim_curr_buffer()->env, &ret); +! return ret; + } + + static Scheme_Object * + do_load(void *data, int noargc, Scheme_Object **noargv) + { +! Cmd_Info *info = (Cmd_Info *)data; +! Scheme_Object *result = scheme_void; +! Scheme_Object *expr; +! char_u *file = scheme_malloc_fail_ok( +! scheme_malloc_atomic, MAXPATHL + 1); +! Port_Info *pinfo = (Port_Info *)(info->data); + + /* make Vim expansion */ +! expand_env((char_u *)pinfo->name, file, MAXPATHL); +! /* scheme_load looks strange working with namespaces and error handling*/ + pinfo->port = scheme_open_input_file(file, "mzfile"); +! scheme_count_lines(pinfo->port); /* to get accurate read error location*/ + + /* Like REPL but print only last result */ + while (!SCHEME_EOFP(expr = scheme_read(pinfo->port))) +! result = scheme_eval(expr, info->env); + + /* errors will be caught in do_mzscheme_comamnd and ex_mzfile */ + scheme_close_input_port(pinfo->port); + pinfo->port = NULL; + return result; + } + +--- 1201,1265 ---- + Scheme_Object * + mzvim_apply(Scheme_Object *proc, int argc, Scheme_Object **argv) + { + if (mzscheme_init()) + return FAIL; ++ else ++ { ++ Apply_Info data = {NULL, 0, NULL}; ++ Scheme_Object *ret = NULL; + +! MZ_GC_DECL_REG(5); +! MZ_GC_VAR_IN_REG(0, ret); +! MZ_GC_VAR_IN_REG(1, data.proc); +! MZ_GC_ARRAY_VAR_IN_REG(2, data.argv, argc); +! MZ_GC_REG(); +! +! data.proc = proc; +! data.argc = argc; +! data.argv = argv; +! +! eval_with_exn_handling(&data, do_apply, &ret); +! MZ_GC_UNREG(); +! return ret; +! } + } + + static Scheme_Object * + do_load(void *data, int noargc, Scheme_Object **noargv) + { +! Scheme_Object *expr = NULL; +! Scheme_Object *result = NULL; +! char *file = NULL; +! Port_Info *pinfo = (Port_Info *)data; +! +! MZ_GC_DECL_REG(3); +! MZ_GC_VAR_IN_REG(0, expr); +! MZ_GC_VAR_IN_REG(1, result); +! MZ_GC_VAR_IN_REG(2, file); +! MZ_GC_REG(); +! +! file = (char *)scheme_malloc_fail_ok(scheme_malloc_atomic, MAXPATHL + 1); +! MZ_GC_CHECK(); + + /* make Vim expansion */ +! expand_env((char_u *)pinfo->name, (char_u *)file, MAXPATHL); + pinfo->port = scheme_open_input_file(file, "mzfile"); +! MZ_GC_CHECK(); +! scheme_count_lines(pinfo->port); /* to get accurate read error location*/ +! MZ_GC_CHECK(); + + /* Like REPL but print only last result */ + while (!SCHEME_EOFP(expr = scheme_read(pinfo->port))) +! { +! result = scheme_eval(expr, environment); +! MZ_GC_CHECK(); +! } + + /* errors will be caught in do_mzscheme_comamnd and ex_mzfile */ + scheme_close_input_port(pinfo->port); ++ MZ_GC_CHECK(); + pinfo->port = NULL; ++ MZ_GC_UNREG(); + return result; + } + +*************** +*** 1077,1089 **** + void + ex_mzfile(exarg_T *eap) + { +! Port_Info pinfo; + + pinfo.name = (char *)eap->arg; +- pinfo.port = NULL; + if (do_mzscheme_command(eap, &pinfo, do_load) != OK + && pinfo.port != NULL) /* looks like port was not closed */ + scheme_close_input_port(pinfo.port); + } + + +--- 1267,1286 ---- + void + ex_mzfile(exarg_T *eap) + { +! Port_Info pinfo = {NULL, NULL}; +! +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, pinfo.port); +! MZ_GC_REG(); + + pinfo.name = (char *)eap->arg; + if (do_mzscheme_command(eap, &pinfo, do_load) != OK + && pinfo.port != NULL) /* looks like port was not closed */ ++ { + scheme_close_input_port(pinfo.port); ++ MZ_GC_CHECK(); ++ } ++ MZ_GC_UNREG(); + } + + +*************** +*** 1103,1116 **** + "(with-handlers ([void (lambda (exn) (cons #f exn))]) " + "(cons #t (thunk))))"; + +! /* make sure we have a namespace with the standard syntax: */ +! Scheme_Env *env = (Scheme_Env *)scheme_make_namespace(0, NULL); +! add_vim_exn(env); +! +! exn_catching_apply = scheme_eval_string(e, env); +! exn_p = scheme_lookup_global(scheme_intern_symbol("exn?"), env); +! exn_message = scheme_lookup_global( +! scheme_intern_symbol("exn-message"), env); + } + } + +--- 1300,1311 ---- + "(with-handlers ([void (lambda (exn) (cons #f exn))]) " + "(cons #t (thunk))))"; + +! exn_catching_apply = scheme_eval_string(e, environment); +! MZ_GC_CHECK(); +! exn_p = scheme_builtin_value("exn?"); +! MZ_GC_CHECK(); +! exn_message = scheme_builtin_value("exn-message"); +! MZ_GC_CHECK(); + } + } + +*************** +*** 1124,1131 **** + { + Scheme_Object *v; + +- init_exn_catching_apply(); +- + v = _scheme_apply(exn_catching_apply, 1, &f); + /* v is a pair: (cons #t value) or (cons #f exn) */ + +--- 1319,1324 ---- +*************** +*** 1141,1148 **** + static Scheme_Object * + extract_exn_message(Scheme_Object *v) + { +- init_exn_catching_apply(); +- + if (SCHEME_TRUEP(_scheme_apply(exn_p, 1, &v))) + return _scheme_apply(exn_message, 1, &v); + else +--- 1334,1339 ---- +*************** +*** 1152,1167 **** + static Scheme_Object * + do_eval(void *s, int noargc, Scheme_Object **noargv) + { +! Cmd_Info *info = (Cmd_Info *)s; +! +! return scheme_eval_string_all((char *)(info->data), info->env, TRUE); + } + + static Scheme_Object * + do_apply(void *a, int noargc, Scheme_Object **noargv) + { +! Apply_Info *info = (Apply_Info *)(((Cmd_Info *)a)->data); +! + return scheme_apply(info->proc, info->argc, info->argv); + } + +--- 1343,1355 ---- + static Scheme_Object * + do_eval(void *s, int noargc, Scheme_Object **noargv) + { +! return scheme_eval_string_all((char *)s, environment, TRUE); + } + + static Scheme_Object * + do_apply(void *a, int noargc, Scheme_Object **noargv) + { +! Apply_Info *info = (Apply_Info *)a; + return scheme_apply(info->proc, info->argc, info->argv); + } + +*************** +*** 1219,1224 **** +--- 1407,1413 ---- + long length; + + buff = scheme_get_sized_string_output(curerr, &length); ++ MZ_GC_CHECK(); + if (length) + { + do_err_output(buff, length); +*************** +*** 1226,1242 **** + } + + buff = scheme_get_sized_string_output(curout, &length); + if (length) + do_output(buff, length); + } + +- static int +- mzscheme_io_init(void) +- { +- /* Nothing needed so far... */ +- return 0; +- } +- + /* + *======================================================================== + * 4. Implementation of the Vim Features for MzScheme +--- 1415,1425 ---- + } + + buff = scheme_get_sized_string_output(curout, &length); ++ MZ_GC_CHECK(); + if (length) + do_output(buff, length); + } + + /* + *======================================================================== + * 4. Implementation of the Vim Features for MzScheme +*************** +*** 1263,1284 **** + vim_eval(void *data, int argc, Scheme_Object **argv) + { + #ifdef FEAT_EVAL +! Vim_Prim *prim = (Vim_Prim *)data; +! char *expr; +! char *str; +! Scheme_Object *result; + +! expr = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + +! str = (char *)eval_to_string((char_u *)expr, NULL, TRUE); + +! if (str == NULL) + raise_vim_exn(_("invalid expression")); + +! result = scheme_make_string(str); +! +! vim_free(str); + + return result; + #else + raise_vim_exn(_("expressions disabled at compile time")); +--- 1446,1475 ---- + vim_eval(void *data, int argc, Scheme_Object **argv) + { + #ifdef FEAT_EVAL +! Vim_Prim *prim = (Vim_Prim *)data; +! char *expr; +! Scheme_Object *result; +! /* hash table to store visited values to avoid infinite loops */ +! Scheme_Hash_Table *visited = NULL; +! typval_T *vim_result; +! +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, visited); +! MZ_GC_REG(); + +! visited = scheme_make_hash_table(SCHEME_hash_ptr); +! MZ_GC_CHECK(); + +! expr = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); +! vim_result = eval_expr((char_u *)expr, NULL); + +! if (vim_result == NULL) + raise_vim_exn(_("invalid expression")); + +! result = vim_to_mzscheme(vim_result, 1, visited); +! free_tv(vim_result); + ++ MZ_GC_UNREG(); + return result; + #else + raise_vim_exn(_("expressions disabled at compile time")); +*************** +*** 1318,1324 **** + Vim_Prim *prim = (Vim_Prim *)data; + char_u *name; + long value; +! char_u *strval; + int rc; + Scheme_Object *rval; + int opt_flags = 0; +--- 1509,1515 ---- + Vim_Prim *prim = (Vim_Prim *)data; + char_u *name; + long value; +! char *strval; + int rc; + Scheme_Object *rval; + int opt_flags = 0; +*************** +*** 1333,1338 **** +--- 1524,1530 ---- + { + MZ_REGISTER_STATIC(M_global); + M_global = scheme_intern_symbol("global"); ++ MZ_GC_CHECK(); + } + + if (argv[1] == M_global) +*************** +*** 1354,1360 **** + scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv); + } + +! rc = get_option_value(name, &value, &strval, opt_flags); + curbuf = save_curb; + curwin = save_curw; + +--- 1546,1552 ---- + scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv); + } + +! rc = get_option_value(name, &value, (char_u **)&strval, opt_flags); + curbuf = save_curb; + curwin = save_curw; + +*************** +*** 1364,1369 **** +--- 1556,1562 ---- + return scheme_make_integer_value(value); + case 0: + rval = scheme_make_string(strval); ++ MZ_GC_CHECK(); + vim_free(strval); + return rval; + case -1: +*************** +*** 1393,1398 **** +--- 1586,1592 ---- + { + MZ_REGISTER_STATIC(M_global); + M_global = scheme_intern_symbol("global"); ++ MZ_GC_CHECK(); + } + + if (argv[1] == M_global) +*************** +*** 1463,1469 **** +--- 1657,1666 ---- + + for (w = firstwin; w != NULL; w = w->w_next) + if (w->w_buffer == buf->buf) ++ { + list = scheme_make_pair(window_new(w), list); ++ MZ_GC_CHECK(); ++ } + + return list; + } +*************** +*** 1471,1477 **** + static Scheme_Object * + window_new(win_T *win) + { +! vim_mz_window *self; + + /* We need to handle deletion of windows underneath us. + * If we add a "w_mzscheme_ref" field to the win_T structure, +--- 1668,1678 ---- + static Scheme_Object * + window_new(win_T *win) + { +! vim_mz_window *self = NULL; +! +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, self); +! MZ_GC_REG(); + + /* We need to handle deletion of windows underneath us. + * If we add a "w_mzscheme_ref" field to the win_T structure, +*************** +*** 1485,1497 **** + return win->w_mzscheme_ref; + + self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_window)); +- + vim_memset(self, 0, sizeof(vim_mz_window)); + scheme_dont_gc_ptr(self); /* because win isn't visible to GC */ + win->w_mzscheme_ref = self; + self->win = win; +! self->tag = mz_window_type; + + return (Scheme_Object *)(self); + } + +--- 1686,1699 ---- + return win->w_mzscheme_ref; + + self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_window)); + vim_memset(self, 0, sizeof(vim_mz_window)); + scheme_dont_gc_ptr(self); /* because win isn't visible to GC */ ++ MZ_GC_CHECK(); + win->w_mzscheme_ref = self; + self->win = win; +! self->so.type = mz_window_type; + ++ MZ_GC_UNREG(); + return (Scheme_Object *)(self); + } + +*************** +*** 1660,1666 **** + /* + *=========================================================================== + * 6. Vim Buffer-related Manipulation Functions +- * Note that each buffer should have its own private namespace. + *=========================================================================== + */ + +--- 1862,1867 ---- +*************** +*** 1669,1682 **** + mzscheme_open_buffer(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +! char *fname; + int num = 0; + Scheme_Object *onum; + + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +! fname = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + /* TODO make open existing file */ + num = buflist_add(fname, BLN_LISTED | BLN_CURBUF); + +--- 1870,1883 ---- + mzscheme_open_buffer(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +! char_u *fname; + int num = 0; + Scheme_Object *onum; + + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +! fname = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + /* TODO make open existing file */ + num = buflist_add(fname, BLN_LISTED | BLN_CURBUF); + +*************** +*** 1712,1718 **** + buf_T *buf; + char_u *fname; + +! fname = SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + for (buf = firstbuf; buf; buf = buf->b_next) + if (buf->b_ffname == NULL || buf->b_sfname == NULL) +--- 1913,1919 ---- + buf_T *buf; + char_u *fname; + +! fname = (char_u *)SCHEME_STR_VAL(GUARANTEE_STRING(prim->name, 0)); + + for (buf = firstbuf; buf; buf = buf->b_next) + if (buf->b_ffname == NULL || buf->b_sfname == NULL) +*************** +*** 1783,1789 **** + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv); + +! return scheme_make_string(buf->buf->b_ffname); + } + + /* (curr-buff) */ +--- 1984,1990 ---- + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf = get_buffer_arg(prim->name, 0, argc, argv); + +! return scheme_make_string((char *)buf->buf->b_ffname); + } + + /* (curr-buff) */ +*************** +*** 1796,1802 **** + static Scheme_Object * + buffer_new(buf_T *buf) + { +! vim_mz_buffer *self; + + /* We need to handle deletion of buffers underneath us. + * If we add a "b_mzscheme_ref" field to the buf_T structure, +--- 1997,2007 ---- + static Scheme_Object * + buffer_new(buf_T *buf) + { +! vim_mz_buffer *self = NULL; +! +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, self); +! MZ_GC_REG(); + + /* We need to handle deletion of buffers underneath us. + * If we add a "b_mzscheme_ref" field to the buf_T structure, +*************** +*** 1806,1820 **** + return buf->b_mzscheme_ref; + + self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_buffer)); +- + vim_memset(self, 0, sizeof(vim_mz_buffer)); +! scheme_dont_gc_ptr(self); /* because buf isn't visible to GC */ + buf->b_mzscheme_ref = self; + self->buf = buf; +! self->tag = mz_buffer_type; +! +! mzscheme_interface_init(self); /* Set up namespace */ + + return (Scheme_Object *)(self); + } + +--- 2011,2024 ---- + return buf->b_mzscheme_ref; + + self = scheme_malloc_fail_ok(scheme_malloc, sizeof(vim_mz_buffer)); + vim_memset(self, 0, sizeof(vim_mz_buffer)); +! scheme_dont_gc_ptr(self); /* because buf isn't visible to GC */ +! MZ_GC_CHECK(); + buf->b_mzscheme_ref = self; + self->buf = buf; +! self->so.type = mz_buffer_type; + ++ MZ_GC_UNREG(); + return (Scheme_Object *)(self); + } + +*************** +*** 1845,1858 **** + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + int linenr; +! char *line; + + buf = get_buffer_arg(prim->name, 1, argc, argv); + linenr = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + line = ml_get_buf(buf->buf, (linenr_T)linenr, FALSE); + + raise_if_error(); +! return scheme_make_string(line); + } + + +--- 2049,2062 ---- + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + int linenr; +! char_u *line; + + buf = get_buffer_arg(prim->name, 1, argc, argv); + linenr = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0)); + line = ml_get_buf(buf->buf, (linenr_T)linenr, FALSE); + + raise_if_error(); +! return scheme_make_string((char *)line); + } + + +*************** +*** 1869,1875 **** + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + int i, hi, lo, n; +! Scheme_Object *list; + + buf = get_buffer_arg(prim->name, 2, argc, argv); + list = scheme_null; +--- 2073,2083 ---- + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; + int i, hi, lo, n; +! Scheme_Object *list = NULL; +! +! MZ_GC_DECL_REG(1); +! MZ_GC_VAR_IN_REG(0, list); +! MZ_GC_REG(); + + buf = get_buffer_arg(prim->name, 2, argc, argv); + list = scheme_null; +*************** +*** 1897,1904 **** + + /* Set the list item */ + list = scheme_make_pair(str, list); + } +! + return list; + } + +--- 2105,2113 ---- + + /* Set the list item */ + list = scheme_make_pair(str, list); ++ MZ_GC_CHECK(); + } +! MZ_GC_UNREG(); + return list; + } + +*************** +*** 1925,1935 **** + */ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; +! Scheme_Object *line; + char *save; +- buf_T *savebuf; + int n; + + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +--- 2134,2147 ---- + */ + Vim_Prim *prim = (Vim_Prim *)data; + vim_mz_buffer *buf; +! Scheme_Object *line = NULL; + char *save; + int n; + ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, line); ++ MZ_GC_REG(); ++ + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +*************** +*** 1943,1949 **** + + if (SCHEME_FALSEP(line)) + { +! savebuf = curbuf; + curbuf = buf->buf; + + if (u_savedel((linenr_T)n, 1L) == FAIL) +--- 2155,2162 ---- + + if (SCHEME_FALSEP(line)) + { +! buf_T *savebuf = curbuf; +! + curbuf = buf->buf; + + if (u_savedel((linenr_T)n, 1L) == FAIL) +*************** +*** 1962,1994 **** + + curbuf = savebuf; + + raise_if_error(); + return scheme_void; + } + +! /* Otherwise it's a line */ +! save = string_to_line(line); +! savebuf = curbuf; + +! curbuf = buf->buf; + +- if (u_savesub((linenr_T)n) == FAIL) +- { +- curbuf = savebuf; +- raise_vim_exn(_("cannot save undo information")); +- } +- else if (ml_replace((linenr_T)n, (char_u *)save, TRUE) == FAIL) +- { + curbuf = savebuf; +- raise_vim_exn(_("cannot replace line")); +- } +- else +- changed_bytes((linenr_T)n, 0); + +! curbuf = savebuf; + +! raise_if_error(); +! return scheme_void; + } + + /* +--- 2175,2230 ---- + + curbuf = savebuf; + ++ MZ_GC_UNREG(); + raise_if_error(); + return scheme_void; + } ++ else ++ { ++ /* Otherwise it's a line */ ++ buf_T *savebuf = curbuf; + +! save = string_to_line(line); + +! curbuf = buf->buf; +! +! if (u_savesub((linenr_T)n) == FAIL) +! { +! curbuf = savebuf; +! vim_free(save); +! raise_vim_exn(_("cannot save undo information")); +! } +! else if (ml_replace((linenr_T)n, (char_u *)save, TRUE) == FAIL) +! { +! curbuf = savebuf; +! vim_free(save); +! raise_vim_exn(_("cannot replace line")); +! } +! else +! { +! vim_free(save); +! changed_bytes((linenr_T)n, 0); +! } + + curbuf = savebuf; + +! /* Check that the cursor is not beyond the end of the line now. */ +! if (buf->buf == curwin->w_buffer) +! check_cursor_col(); + +! MZ_GC_UNREG(); +! raise_if_error(); +! return scheme_void; +! } +! } +! +! static void +! free_array(char **array) +! { +! char **curr = array; +! while (*curr != NULL) +! vim_free(*curr++); +! vim_free(array); + } + + /* +*************** +*** 2013,2027 **** + * 3. Anything else - this is an error. + */ + Vim_Prim *prim = (Vim_Prim *)data; +! vim_mz_buffer *buf; +! Scheme_Object *line_list; +! Scheme_Object *line; +! Scheme_Object *rest; +! char **array; +! buf_T *savebuf; + int i, old_len, new_len, hi, lo; + long extra; + + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +--- 2249,2263 ---- + * 3. Anything else - this is an error. + */ + Vim_Prim *prim = (Vim_Prim *)data; +! vim_mz_buffer *buf = NULL; +! Scheme_Object *line_list = NULL; + int i, old_len, new_len, hi, lo; + long extra; + ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, line_list); ++ MZ_GC_REG(); ++ + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +*************** +*** 2047,2053 **** + + if (SCHEME_FALSEP(line_list) || SCHEME_NULLP(line_list)) + { +! savebuf = curbuf; + curbuf = buf->buf; + + if (u_savedel((linenr_T)lo, (long)old_len) == FAIL) +--- 2283,2289 ---- + + if (SCHEME_FALSEP(line_list) || SCHEME_NULLP(line_list)) + { +! buf_T *savebuf = curbuf; + curbuf = buf->buf; + + if (u_savedel((linenr_T)lo, (long)old_len) == FAIL) +*************** +*** 2070,2167 **** + + curbuf = savebuf; + + raise_if_error(); + return scheme_void; + } + +! /* List */ +! new_len = scheme_proper_list_length(line_list); +! if (new_len < 0) /* improper or cyclic list */ +! scheme_wrong_type(prim->name, "proper list", +! 2, argc, argv); + +! /* Using MzScheme allocator, so we don't need to free this and +! * can safely keep pointers to GC collected strings +! */ +! array = (char **)scheme_malloc_fail_ok(scheme_malloc, +! (unsigned)(new_len * sizeof(char *))); + +! rest = line_list; +! for (i = 0; i < new_len; ++i) +! { +! line = SCHEME_CAR(rest); +! rest = SCHEME_CDR(rest); +! if (!SCHEME_STRINGP(line)) +! scheme_wrong_type(prim->name, "string-list", 2, argc, argv); +! array[i] = string_to_line(line); +! } + +! savebuf = curbuf; +! curbuf = buf->buf; + +! if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL) +! { +! curbuf = savebuf; +! raise_vim_exn(_("cannot save undo information")); +! } + +! /* +! * If the size of the range is reducing (ie, new_len < old_len) we +! * need to delete some old_len. We do this at the start, by +! * repeatedly deleting line "lo". +! */ +! for (i = 0; i < old_len - new_len; ++i) +! { +! if (ml_delete((linenr_T)lo, FALSE) == FAIL) +! { +! curbuf = savebuf; +! raise_vim_exn(_("cannot delete line")); +! } +! extra--; +! } + +! /* +! * For as long as possible, replace the existing old_len with the +! * new old_len. This is a more efficient operation, as it requires +! * less memory allocation and freeing. +! */ +! for (i = 0; i < old_len && i < new_len; i++) +! if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], TRUE) == FAIL) +! { +! curbuf = savebuf; +! raise_vim_exn(_("cannot replace line")); +! } + +! /* +! * Now we may need to insert the remaining new_len. We don't need to +! * free the string passed back because MzScheme has control of that +! * memory. +! */ +! while (i < new_len) +! { +! if (ml_append((linenr_T)(lo + i - 1), +! (char_u *)array[i], 0, FALSE) == FAIL) +! { +! curbuf = savebuf; +! raise_vim_exn(_("cannot insert line")); + } +- ++i; +- ++extra; +- } + +! /* +! * Adjust marks. Invalidate any which lie in the +! * changed range, and move any in the remainder of the buffer. +! */ +! mark_adjust((linenr_T)lo, (linenr_T)(hi - 1), (long)MAXLNUM, (long)extra); +! changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra); + +! if (buf->buf == curwin->w_buffer) +! mz_fix_cursor(lo, hi, extra); +! curbuf = savebuf; + +! raise_if_error(); +! return scheme_void; + } + + /* +--- 2306,2426 ---- + + curbuf = savebuf; + ++ MZ_GC_UNREG(); + raise_if_error(); + return scheme_void; + } ++ else ++ { ++ buf_T *savebuf = curbuf; + +! /* List */ +! new_len = scheme_proper_list_length(line_list); +! MZ_GC_CHECK(); +! if (new_len < 0) /* improper or cyclic list */ +! scheme_wrong_type(prim->name, "proper list", +! 2, argc, argv); +! else +! { +! char **array = NULL; +! Scheme_Object *line = NULL; +! Scheme_Object *rest = NULL; +! +! MZ_GC_DECL_REG(2); +! MZ_GC_VAR_IN_REG(0, line); +! MZ_GC_VAR_IN_REG(1, rest); +! MZ_GC_REG(); + +! array = (char **)alloc(new_len * sizeof(char *)); +! vim_memset(array, 0, new_len * sizeof(char *)); + +! rest = line_list; +! for (i = 0; i < new_len; ++i) +! { +! line = SCHEME_CAR(rest); +! rest = SCHEME_CDR(rest); +! if (!SCHEME_STRINGP(line)) +! { +! free_array(array); +! scheme_wrong_type(prim->name, "string-list", 2, argc, argv); +! } +! array[i] = string_to_line(line); +! } + +! curbuf = buf->buf; + +! if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL) +! { +! curbuf = savebuf; +! free_array(array); +! raise_vim_exn(_("cannot save undo information")); +! } + +! /* +! * If the size of the range is reducing (ie, new_len < old_len) we +! * need to delete some old_len. We do this at the start, by +! * repeatedly deleting line "lo". +! */ +! for (i = 0; i < old_len - new_len; ++i) +! { +! if (ml_delete((linenr_T)lo, FALSE) == FAIL) +! { +! curbuf = savebuf; +! free_array(array); +! raise_vim_exn(_("cannot delete line")); +! } +! extra--; +! } + +! /* +! * For as long as possible, replace the existing old_len with the +! * new old_len. This is a more efficient operation, as it requires +! * less memory allocation and freeing. +! */ +! for (i = 0; i < old_len && i < new_len; i++) +! if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], TRUE) == FAIL) +! { +! curbuf = savebuf; +! free_array(array); +! raise_vim_exn(_("cannot replace line")); +! } + +! /* +! * Now we may need to insert the remaining new_len. We don't need to +! * free the string passed back because MzScheme has control of that +! * memory. +! */ +! while (i < new_len) +! { +! if (ml_append((linenr_T)(lo + i - 1), +! (char_u *)array[i], 0, FALSE) == FAIL) +! { +! curbuf = savebuf; +! free_array(array); +! raise_vim_exn(_("cannot insert line")); +! } +! ++i; +! ++extra; +! } +! MZ_GC_UNREG(); +! free_array(array); + } + +! /* +! * Adjust marks. Invalidate any which lie in the +! * changed range, and move any in the remainder of the buffer. +! */ +! mark_adjust((linenr_T)lo, (linenr_T)(hi - 1), (long)MAXLNUM, (long)extra); +! changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra); + +! if (buf->buf == curwin->w_buffer) +! mz_fix_cursor(lo, hi, extra); +! curbuf = savebuf; + +! MZ_GC_UNREG(); +! raise_if_error(); +! return scheme_void; +! } + } + + /* +*************** +*** 2179,2193 **** + insert_buffer_line_list(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +! vim_mz_buffer *buf; +! Scheme_Object *list; +! Scheme_Object *line; +! Scheme_Object *rest; +! char **array; +! char *str; +! buf_T *savebuf; + int i, n, size; + + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +--- 2438,2452 ---- + insert_buffer_line_list(void *data, int argc, Scheme_Object **argv) + { + Vim_Prim *prim = (Vim_Prim *)data; +! vim_mz_buffer *buf = NULL; +! Scheme_Object *list = NULL; +! char *str = NULL; + int i, n, size; + ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, list); ++ MZ_GC_REG(); ++ + #ifdef HAVE_SANDBOX + sandbox_check(); + #endif +*************** +*** 2206,2294 **** + check_line_range(n, buf->buf); + if (SCHEME_STRINGP(list)) + { +! str = string_to_line(list); + +! savebuf = curbuf; + curbuf = buf->buf; + + if (u_save((linenr_T)n, (linenr_T)(n+1)) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot save undo information")); + } + else if (ml_append((linenr_T)n, (char_u *)str, 0, FALSE) == FAIL) + { + curbuf = savebuf; + raise_vim_exn(_("cannot insert line")); + } + else + appended_lines_mark((linenr_T)n, 1L); + + curbuf = savebuf; + update_screen(VALID); + + raise_if_error(); + return scheme_void; + } + + /* List */ + size = scheme_proper_list_length(list); + if (size < 0) /* improper or cyclic list */ + scheme_wrong_type(prim->name, "proper list", + 2, argc, argv); +! +! /* Using MzScheme allocator, so we don't need to free this and +! * can safely keep pointers to GC collected strings +! */ +! array = (char **)scheme_malloc_fail_ok( +! scheme_malloc, (unsigned)(size * sizeof(char *))); +! +! rest = list; +! for (i = 0; i < size; ++i) + { +! line = SCHEME_CAR(rest); +! rest = SCHEME_CDR(rest); +! array[i] = string_to_line(line); +! } + +! savebuf = curbuf; +! curbuf = buf->buf; + +! if (u_save((linenr_T)n, (linenr_T)(n + 1)) == FAIL) +! { +! curbuf = savebuf; +! raise_vim_exn(_("cannot save undo information")); +! } +! else +! { + for (i = 0; i < size; ++i) +! if (ml_append((linenr_T)(n + i), (char_u *)array[i], +! 0, FALSE) == FAIL) +! { +! curbuf = savebuf; +! raise_vim_exn(_("cannot insert line")); +! } + +! if (i > 0) +! appended_lines_mark((linenr_T)n, (long)i); +! } + +! curbuf = savebuf; +! update_screen(VALID); + + raise_if_error(); + return scheme_void; + } + +- /* (get-buff-namespace [buffer]) */ +- static Scheme_Object * +- get_buffer_namespace(void *data, int argc, Scheme_Object **argv) +- { +- Vim_Prim *prim = (Vim_Prim *)data; +- +- return (Scheme_Object *)get_buffer_arg(prim->name, 0, argc, argv)->env; +- } +- + /* + * Predicates + */ +--- 2465,2563 ---- + check_line_range(n, buf->buf); + if (SCHEME_STRINGP(list)) + { +! buf_T *savebuf = curbuf; + +! str = string_to_line(list); + curbuf = buf->buf; + + if (u_save((linenr_T)n, (linenr_T)(n+1)) == FAIL) + { + curbuf = savebuf; ++ vim_free(str); + raise_vim_exn(_("cannot save undo information")); + } + else if (ml_append((linenr_T)n, (char_u *)str, 0, FALSE) == FAIL) + { + curbuf = savebuf; ++ vim_free(str); + raise_vim_exn(_("cannot insert line")); + } + else ++ { ++ vim_free(str); + appended_lines_mark((linenr_T)n, 1L); ++ } + + curbuf = savebuf; + update_screen(VALID); + ++ MZ_GC_UNREG(); + raise_if_error(); + return scheme_void; + } + + /* List */ + size = scheme_proper_list_length(list); ++ MZ_GC_CHECK(); + if (size < 0) /* improper or cyclic list */ + scheme_wrong_type(prim->name, "proper list", + 2, argc, argv); +! else + { +! Scheme_Object *line = NULL; +! Scheme_Object *rest = NULL; +! char **array; +! buf_T *savebuf = curbuf; +! +! MZ_GC_DECL_REG(2); +! MZ_GC_VAR_IN_REG(0, line); +! MZ_GC_VAR_IN_REG(1, rest); +! MZ_GC_REG(); + +! array = (char **)alloc(size * sizeof(char *)); +! vim_memset(array, 0, size * sizeof(char *)); + +! rest = list; + for (i = 0; i < size; ++i) +! { +! line = SCHEME_CAR(rest); +! rest = SCHEME_CDR(rest); +! array[i] = string_to_line(line); +! } + +! curbuf = buf->buf; + +! if (u_save((linenr_T)n, (linenr_T)(n + 1)) == FAIL) +! { +! curbuf = savebuf; +! free_array(array); +! raise_vim_exn(_("cannot save undo information")); +! } +! else +! { +! for (i = 0; i < size; ++i) +! if (ml_append((linenr_T)(n + i), (char_u *)array[i], +! 0, FALSE) == FAIL) +! { +! curbuf = savebuf; +! free_array(array); +! raise_vim_exn(_("cannot insert line")); +! } +! +! if (i > 0) +! appended_lines_mark((linenr_T)n, (long)i); +! } +! free_array(array); +! MZ_GC_UNREG(); +! curbuf = savebuf; +! update_screen(VALID); +! } + ++ MZ_GC_UNREG(); + raise_if_error(); + return scheme_void; + } + + /* + * Predicates + */ +*************** +*** 2343,2383 **** + /* + * Convert an MzScheme string into a Vim line. + * +! * The result is in allocated memory. All internal nulls are replaced by +! * newline characters. It is an error for the string to contain newline +! * characters. + * + */ + static char * + string_to_line(Scheme_Object *obj) + { +! char *str; + long len; + int i; + +! str = scheme_display_to_string(obj, &len); + + /* Error checking: String must not contain newlines, as we + * are replacing a single line, and we must replace it with + * a single line. + */ +! if (memchr(str, '\n', len)) + scheme_signal_error(_("string cannot contain newlines")); + + /* Create a copy of the string, with internal nulls replaced by + * newline characters, as is the vim convention. + */ + for (i = 0; i < len; ++i) + { +! if (str[i] == '\0') +! str[i] = '\n'; + } + +! str[i] = '\0'; + +! return str; + } + + /* + * Check to see whether a Vim error has been reported, or a keyboard + * interrupt (from vim --> got_int) has been detected. +--- 2612,2784 ---- + /* + * Convert an MzScheme string into a Vim line. + * +! * All internal nulls are replaced by newline characters. +! * It is an error for the string to contain newline characters. + * ++ * Returns pointer to Vim allocated memory + */ + static char * + string_to_line(Scheme_Object *obj) + { +! char *scheme_str = NULL; +! char *vim_str = NULL; + long len; + int i; + +! scheme_str = scheme_display_to_string(obj, &len); + + /* Error checking: String must not contain newlines, as we + * are replacing a single line, and we must replace it with + * a single line. + */ +! if (memchr(scheme_str, '\n', len)) + scheme_signal_error(_("string cannot contain newlines")); + ++ vim_str = (char *)alloc(len + 1); ++ + /* Create a copy of the string, with internal nulls replaced by + * newline characters, as is the vim convention. + */ + for (i = 0; i < len; ++i) + { +! if (scheme_str[i] == '\0') +! vim_str[i] = '\n'; +! else +! vim_str[i] = scheme_str[i]; + } + +! vim_str[i] = '\0'; + +! MZ_GC_CHECK(); +! return vim_str; + } + ++ #ifdef FEAT_EVAL ++ /* ++ * Convert Vim value into MzScheme, adopted from if_python.c ++ */ ++ static Scheme_Object * ++ vim_to_mzscheme(typval_T *vim_value, int depth, Scheme_Hash_Table *visited) ++ { ++ Scheme_Object *result = NULL; ++ int new_value = TRUE; ++ ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, result); ++ MZ_GC_REG(); ++ ++ /* Avoid infinite recursion */ ++ if (depth > 100) ++ { ++ MZ_GC_UNREG(); ++ return scheme_void; ++ } ++ ++ /* Check if we run into a recursive loop. The item must be in visited ++ * then and we can use it again. ++ */ ++ result = scheme_hash_get(visited, (Scheme_Object *)vim_value); ++ MZ_GC_CHECK(); ++ if (result != NULL) /* found, do nothing */ ++ new_value = FALSE; ++ else if (vim_value->v_type == VAR_STRING) ++ { ++ result = scheme_make_string((char *)vim_value->vval.v_string); ++ MZ_GC_CHECK(); ++ } ++ else if (vim_value->v_type == VAR_NUMBER) ++ { ++ result = scheme_make_integer((long)vim_value->vval.v_number); ++ MZ_GC_CHECK(); ++ } ++ # ifdef FEAT_FLOAT ++ else if (vim_value->v_type == VAR_FLOAT) ++ { ++ result = scheme_make_double((double)vim_value->vval.v_float); ++ MZ_GC_CHECK(); ++ } ++ # endif ++ else if (vim_value->v_type == VAR_LIST) ++ { ++ list_T *list = vim_value->vval.v_list; ++ listitem_T *curr; ++ ++ if (list == NULL || list->lv_first == NULL) ++ result = scheme_null; ++ else ++ { ++ Scheme_Object *obj = NULL; ++ ++ MZ_GC_DECL_REG(1); ++ MZ_GC_VAR_IN_REG(0, obj); ++ MZ_GC_REG(); ++ ++ curr = list->lv_last; ++ obj = vim_to_mzscheme(&curr->li_tv, depth + 1, visited); ++ result = scheme_make_pair(obj, scheme_null); ++ MZ_GC_CHECK(); ++ ++ while (curr != list->lv_first) ++ { ++ curr = curr->li_prev; ++ obj = vim_to_mzscheme(&curr->li_tv, depth + 1, visited); ++ result = scheme_make_pair(obj, result); ++ MZ_GC_CHECK(); ++ } ++ } ++ MZ_GC_UNREG(); ++ } ++ else if (vim_value->v_type == VAR_DICT) ++ { ++ Scheme_Object *key = NULL; ++ Scheme_Object *obj = NULL; ++ ++ MZ_GC_DECL_REG(2); ++ MZ_GC_VAR_IN_REG(0, key); ++ MZ_GC_VAR_IN_REG(1, obj); ++ MZ_GC_REG(); ++ ++ result = (Scheme_Object *)scheme_make_hash_table(SCHEME_hash_ptr); ++ MZ_GC_CHECK(); ++ if (vim_value->vval.v_dict != NULL) ++ { ++ hashtab_T *ht = &vim_value->vval.v_dict->dv_hashtab; ++ long_u todo = ht->ht_used; ++ hashitem_T *hi; ++ dictitem_T *di; ++ ++ for (hi = ht->ht_array; todo > 0; ++hi) ++ { ++ if (!HASHITEM_EMPTY(hi)) ++ { ++ --todo; ++ ++ di = dict_lookup(hi); ++ obj = vim_to_mzscheme(&di->di_tv, depth + 1, visited); ++ key = scheme_make_string((char *)hi->hi_key); ++ MZ_GC_CHECK(); ++ scheme_hash_set((Scheme_Hash_Table *)result, key, obj); ++ MZ_GC_CHECK(); ++ } ++ } ++ } ++ MZ_GC_UNREG(); ++ } ++ else ++ { ++ result = scheme_void; ++ new_value = FALSE; ++ } ++ if (new_value) ++ { ++ scheme_hash_set(visited, (Scheme_Object *)vim_value, result); ++ MZ_GC_CHECK(); ++ } ++ MZ_GC_UNREG(); ++ return result; ++ } ++ #endif ++ + /* + * Check to see whether a Vim error has been reported, or a keyboard + * interrupt (from vim --> got_int) has been detected. +*************** +*** 2392,2441 **** + * register Scheme exn:vim + */ + static void +! register_vim_exn(Scheme_Env *env) + { +! Scheme_Object *exn_name = scheme_intern_symbol("exn:vim"); + + if (vim_exn == NULL) + vim_exn = scheme_make_struct_type(exn_name, +! scheme_builtin_value("struct:exn"), NULL, 0, 0, NULL, NULL + #if MZSCHEME_VERSION_MAJOR >= 299 + , NULL + #endif + ); + +- if (vim_exn_values == NULL) +- { +- int nc = 0; + +! Scheme_Object **exn_names = scheme_make_struct_names( +! exn_name, scheme_null, 0, &nc); +! Scheme_Object **exn_values = scheme_make_struct_values( +! vim_exn, exn_names, nc, 0); +! +! vim_exn_names = scheme_make_vector(nc, scheme_false); +! vim_exn_values = scheme_make_vector(nc, scheme_false); +! /* remember names and values */ +! mch_memmove(SCHEME_VEC_ELS(vim_exn_names), exn_names, +! nc * sizeof(Scheme_Object *)); +! mch_memmove(SCHEME_VEC_ELS(vim_exn_values), exn_values, +! nc * sizeof(Scheme_Object *)); + } +! +! add_vim_exn(env); +! } +! +! /* +! * Add stuff of exn:vim to env +! */ +! static void +! add_vim_exn(Scheme_Env *env) +! { +! int i; +! +! for (i = 0; i < SCHEME_VEC_SIZE(vim_exn_values); i++) +! scheme_add_global_symbol(SCHEME_VEC_ELS(vim_exn_names)[i], +! SCHEME_VEC_ELS(vim_exn_values)[i], env); + } + + /* +--- 2793,2851 ---- + * register Scheme exn:vim + */ + static void +! register_vim_exn(void) + { +! int nc = 0; +! int i; +! Scheme_Object *struct_exn = NULL; +! Scheme_Object *exn_name = NULL; +! +! MZ_GC_DECL_REG(2); +! MZ_GC_VAR_IN_REG(0, struct_exn); +! MZ_GC_VAR_IN_REG(1, exn_name); +! MZ_GC_REG(); +! +! exn_name = scheme_intern_symbol("exn:vim"); +! MZ_GC_CHECK(); +! struct_exn = scheme_builtin_value("struct:exn"); +! MZ_GC_CHECK(); + + if (vim_exn == NULL) + vim_exn = scheme_make_struct_type(exn_name, +! struct_exn, NULL, 0, 0, NULL, NULL + #if MZSCHEME_VERSION_MAJOR >= 299 + , NULL + #endif + ); + + +! { +! Scheme_Object **tmp = NULL; +! Scheme_Object *exn_names[5] = {NULL, NULL, NULL, NULL, NULL}; +! Scheme_Object *exn_values[5] = {NULL, NULL, NULL, NULL, NULL}; +! MZ_GC_DECL_REG(6); +! MZ_GC_ARRAY_VAR_IN_REG(0, exn_names, 5); +! MZ_GC_ARRAY_VAR_IN_REG(3, exn_values, 5); +! MZ_GC_REG(); +! +! tmp = scheme_make_struct_names(exn_name, scheme_null, 0, &nc); +! assert(nc <= 5); +! mch_memmove(exn_names, tmp, nc * sizeof(Scheme_Object *)); +! MZ_GC_CHECK(); +! +! tmp = scheme_make_struct_values(vim_exn, exn_names, nc, 0); +! mch_memmove(exn_values, tmp, nc * sizeof(Scheme_Object *)); +! MZ_GC_CHECK(); +! +! for (i = 0; i < nc; i++) +! { +! scheme_add_global_symbol(exn_names[i], +! exn_values[i], environment); +! MZ_GC_CHECK(); +! } +! MZ_GC_UNREG(); + } +! MZ_GC_UNREG(); + } + + /* +*************** +*** 2444,2469 **** + void + raise_vim_exn(const char *add_info) + { +! Scheme_Object *argv[2]; +! char_u *fmt = _("Vim error: ~a"); + + if (add_info != NULL) + { +! Scheme_Object *info = scheme_make_string(add_info); +! argv[0] = scheme_byte_string_to_char_string(scheme_make_string( +! scheme_format(fmt, strlen(fmt), 1, &info, NULL))); + SCHEME_SET_IMMUTABLE(argv[0]); + } + else + argv[0] = scheme_make_string(_("Vim error")); + + #if MZSCHEME_VERSION_MAJOR < 360 + argv[1] = scheme_current_continuation_marks(); + #else + argv[1] = scheme_current_continuation_marks(NULL); + #endif + +! scheme_raise(scheme_make_struct_instance(vim_exn, 2, argv)); + } + + void +--- 2854,2907 ---- + void + raise_vim_exn(const char *add_info) + { +! char *fmt = _("Vim error: ~a"); +! Scheme_Object *argv[2] = {NULL, NULL}; +! Scheme_Object *exn = NULL; +! +! MZ_GC_DECL_REG(4); +! MZ_GC_ARRAY_VAR_IN_REG(0, argv, 2); +! MZ_GC_VAR_IN_REG(3, exn); +! MZ_GC_REG(); + + if (add_info != NULL) + { +! char *c_string = NULL; +! Scheme_Object *byte_string = NULL; +! Scheme_Object *info = NULL; +! +! MZ_GC_DECL_REG(3); +! MZ_GC_VAR_IN_REG(0, c_string); +! MZ_GC_VAR_IN_REG(1, byte_string); +! MZ_GC_VAR_IN_REG(2, info); +! MZ_GC_REG(); +! +! info = scheme_make_string(add_info); +! MZ_GC_CHECK(); +! c_string = scheme_format(fmt, STRLEN(fmt), 1, &info, NULL); +! MZ_GC_CHECK(); +! byte_string = scheme_make_string(c_string); +! MZ_GC_CHECK(); +! argv[0] = scheme_byte_string_to_char_string(byte_string); +! MZ_GC_CHECK(); + SCHEME_SET_IMMUTABLE(argv[0]); ++ MZ_GC_UNREG(); + } + else + argv[0] = scheme_make_string(_("Vim error")); ++ MZ_GC_CHECK(); + + #if MZSCHEME_VERSION_MAJOR < 360 + argv[1] = scheme_current_continuation_marks(); ++ MZ_GC_CHECK(); + #else + argv[1] = scheme_current_continuation_marks(NULL); ++ MZ_GC_CHECK(); + #endif + +! exn = scheme_make_struct_instance(vim_exn, 2, argv); +! MZ_GC_CHECK(); +! scheme_raise(exn); +! MZ_GC_UNREG(); + } + + void +*************** +*** 2570,2575 **** +--- 3008,3015 ---- + curwin->w_cursor.lnum = lo; + check_cursor(); + } ++ else ++ check_cursor_col(); + changed_cline_bef_curs(); + } + invalidate_botline(); +*************** +*** 2595,2601 **** + {mzscheme_open_buffer, "open-buff", 1, 1}, + {get_buffer_by_name, "get-buff-by-name", 1, 1}, + {get_buffer_by_num, "get-buff-by-num", 1, 1}, +- {get_buffer_namespace, "get-buff-namespace", 0, 1}, + /* + * Window-related commands + */ +--- 3035,3040 ---- +*************** +*** 2653,2675 **** + } + + static void +! make_modules(Scheme_Env *env) + { +! int i; +! Scheme_Env *mod; +! +! mod = scheme_primitive_module(scheme_intern_symbol("vimext"), env); + /* all prims made closed so they can access their own names */ +! for (i = 0; i < sizeof(prims)/sizeof(prims[0]); i++) + { + Vim_Prim *prim = prims + i; +! scheme_add_global(prim->name, +! scheme_make_closed_prim_w_arity(prim->prim, prim, prim->name, +! prim->mina, prim->maxa), +! mod); + } +- scheme_add_global("global-namespace", (Scheme_Object *)environment, mod); + scheme_finish_primitive_module(mod); + } + + #ifdef HAVE_SANDBOX +--- 3092,3126 ---- + } + + static void +! make_modules() + { +! int i; +! Scheme_Env *mod = NULL; +! Scheme_Object *vimext_symbol = NULL; +! Scheme_Object *closed_prim = NULL; +! +! MZ_GC_DECL_REG(3); +! MZ_GC_VAR_IN_REG(0, mod); +! MZ_GC_VAR_IN_REG(1, vimext_symbol); +! MZ_GC_VAR_IN_REG(2, closed_prim); +! MZ_GC_REG(); +! +! vimext_symbol = scheme_intern_symbol("vimext"); +! MZ_GC_CHECK(); +! mod = scheme_primitive_module(vimext_symbol, environment); +! MZ_GC_CHECK(); + /* all prims made closed so they can access their own names */ +! for (i = 0; i < (int)(sizeof(prims)/sizeof(prims[0])); i++) + { + Vim_Prim *prim = prims + i; +! closed_prim = scheme_make_closed_prim_w_arity(prim->prim, prim, prim->name, +! prim->mina, prim->maxa); +! scheme_add_global(prim->name, closed_prim, mod); +! MZ_GC_CHECK(); + } + scheme_finish_primitive_module(mod); ++ MZ_GC_CHECK(); ++ MZ_GC_UNREG(); + } + + #ifdef HAVE_SANDBOX +*************** +*** 2697,2717 **** +--- 3148,3172 ---- + { + MZ_REGISTER_STATIC(M_write); + M_write = scheme_intern_symbol("write"); ++ MZ_GC_CHECK(); + } + if (M_read == NULL) + { + MZ_REGISTER_STATIC(M_read); + M_read = scheme_intern_symbol("read"); ++ MZ_GC_CHECK(); + } + if (M_execute == NULL) + { + MZ_REGISTER_STATIC(M_execute); + M_execute = scheme_intern_symbol("execute"); ++ MZ_GC_CHECK(); + } + if (M_delete == NULL) + { + MZ_REGISTER_STATIC(M_delete); + M_delete = scheme_intern_symbol("delete"); ++ MZ_GC_CHECK(); + } + + while (!SCHEME_NULLP(requested_access)) +*** ../vim-7.2.190/src/if_mzsch.h 2006-03-24 23:43:11.000000000 +0100 +--- src/if_mzsch.h 2009-05-26 19:08:21.000000000 +0200 +*************** +*** 11,16 **** +--- 11,17 ---- + + /* #ifdef needed for "make depend" */ + #ifdef FEAT_MZSCHEME ++ # include <schvers.h> + # include <scheme.h> + #endif + +*************** +*** 46,49 **** +--- 47,77 ---- + # define scheme_byte_string_to_char_string(obj) (obj) + #endif + ++ /* Precise GC macros */ ++ #ifndef MZ_GC_DECL_REG ++ # define MZ_GC_DECL_REG(size) /* empty */ ++ #endif ++ #ifndef MZ_GC_VAR_IN_REG ++ # define MZ_GC_VAR_IN_REG(x, v) /* empty */ ++ #endif ++ #ifndef MZ_GC_ARRAY_VAR_IN_REG ++ # define MZ_GC_ARRAY_VAR_IN_REG(x, v, l) /* empty */ ++ #endif ++ #ifndef MZ_GC_REG ++ # define MZ_GC_REG() /* empty */ ++ #endif ++ #ifndef MZ_GC_UNREG ++ # define MZ_GC_UNREG() /* empty */ ++ #endif ++ ++ #ifdef MZSCHEME_FORCE_GC ++ /* ++ * force garbage collection to check all references are registered ++ * seg faults will indicate not registered refs ++ */ ++ # define MZ_GC_CHECK() scheme_collect_garbage(); ++ #else ++ # define MZ_GC_CHECK() /* empty */ ++ #endif ++ + #endif /* _IF_MZSCH_H_ */ +*** ../vim-7.2.190/src/main.c 2009-05-17 13:30:58.000000000 +0200 +--- src/main.c 2009-05-26 19:09:01.000000000 +0200 +*************** +*** 935,942 **** +--- 935,948 ---- + + /* + * Call the main command loop. This never returns. ++ * For embedded MzScheme the main_loop will be called by Scheme ++ * for proper stack tracking + */ ++ #ifndef FEAT_MZSCHEME + main_loop(FALSE, FALSE); ++ #else ++ mzscheme_main(); ++ #endif + + return 0; + } +*** ../vim-7.2.190/src/proto/if_mzsch.pro 2004-07-12 17:51:52.000000000 +0200 +--- src/proto/if_mzsch.pro 2009-05-26 19:09:55.000000000 +0200 +*************** +*** 15,24 **** + void *mzvim_eval_string __ARGS((char_u *str)); + struct Scheme_Object *mzvim_apply __ARGS((struct Scheme_Object *, int argc, + struct Scheme_Object **)); +! int mzthreads_allowed (void); +! #ifdef FEAT_GUI_KDE +! void timer_proc (void); +! void mzscheme_kde_start_timer (void); +! void mzscheme_kde_stop_timer (void); +! #endif + /* vim: set ft=c : */ +--- 15,20 ---- + void *mzvim_eval_string __ARGS((char_u *str)); + struct Scheme_Object *mzvim_apply __ARGS((struct Scheme_Object *, int argc, + struct Scheme_Object **)); +! int mzthreads_allowed __ARGS((void)); +! void mzscheme_main __ARGS((void)); + /* vim: set ft=c : */ +*** ../vim-7.2.190/src/version.c 2009-05-26 18:12:13.000000000 +0200 +--- src/version.c 2009-05-26 22:52:53.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 191, + /**/ + +-- +Scientists decoded the first message from an alien civilization: + SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR +SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT +YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER +STAR SYSTEMS. WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE +ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS +MAXIMUM! IT REALLY WORKS! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.192 b/source/ap/vim/patches/7.2.192 new file mode 100644 index 000000000..28cefd5bb --- /dev/null +++ b/source/ap/vim/patches/7.2.192 @@ -0,0 +1,135 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.192 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.192 (after 7.2.188) +Problem: Still a crash in the garbage collector for a very rare situation. +Solution: Make sure current_copyID is always incremented correctly. (Kent + Sibilev) +Files: src/eval.c + + +*** ../vim-7.2.191/src/eval.c 2009-05-26 22:58:43.000000000 +0200 +--- src/eval.c 2009-05-29 21:13:47.000000000 +0200 +*************** +*** 6526,6532 **** + + /* Don't free variables in the previous_funccal list unless they are only + * referenced through previous_funccal. This must be first, because if +! * the item is referenced elsewhere it must not be freed. */ + for (fc = previous_funccal; fc != NULL; fc = fc->caller) + { + set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID + 1); +--- 6526,6532 ---- + + /* Don't free variables in the previous_funccal list unless they are only + * referenced through previous_funccal. This must be first, because if +! * the item is referenced elsewhere the funccal must not be freed. */ + for (fc = previous_funccal; fc != NULL; fc = fc->caller) + { + set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID + 1); +*************** +*** 6564,6573 **** + /* v: vars */ + set_ref_in_ht(&vimvarht, copyID); + +! /* Free lists and dictionaries that are not referenced. */ + did_free = free_unref_items(copyID); + +! /* check if any funccal can be freed now */ + for (pfc = &previous_funccal; *pfc != NULL; ) + { + if (can_free_funccal(*pfc, copyID)) +--- 6564,6577 ---- + /* v: vars */ + set_ref_in_ht(&vimvarht, copyID); + +! /* +! * 2. Free lists and dictionaries that are not referenced. +! */ + did_free = free_unref_items(copyID); + +! /* +! * 3. Check if any funccal can be freed now. +! */ + for (pfc = &previous_funccal; *pfc != NULL; ) + { + if (can_free_funccal(*pfc, copyID)) +*************** +*** 9286,9292 **** + if (noref < 0 || noref > 1) + EMSG(_(e_invarg)); + else +! item_copy(&argvars[0], rettv, TRUE, noref == 0 ? ++current_copyID : 0); + } + + /* +--- 9290,9299 ---- + if (noref < 0 || noref > 1) + EMSG(_(e_invarg)); + else +! { +! current_copyID += COPYID_INC; +! item_copy(&argvars[0], rettv, TRUE, noref == 0 ? current_copyID : 0); +! } + } + + /* +*************** +*** 18966,18972 **** + char_u *s; + char_u numbuf[NUMBUFLEN]; + +! s = echo_string(&v->di_tv, &tofree, numbuf, ++current_copyID); + list_one_var_a(prefix, v->di_key, v->di_tv.v_type, + s == NULL ? (char_u *)"" : s, first); + vim_free(tofree); +--- 18973,18980 ---- + char_u *s; + char_u numbuf[NUMBUFLEN]; + +! current_copyID += COPYID_INC; +! s = echo_string(&v->di_tv, &tofree, numbuf, current_copyID); + list_one_var_a(prefix, v->di_key, v->di_tv.v_type, + s == NULL ? (char_u *)"" : s, first); + vim_free(tofree); +*************** +*** 19401,19407 **** + } + else if (eap->cmdidx == CMD_echo) + msg_puts_attr((char_u *)" ", echo_attr); +! p = echo_string(&rettv, &tofree, numbuf, ++current_copyID); + if (p != NULL) + for ( ; *p != NUL && !got_int; ++p) + { +--- 19409,19416 ---- + } + else if (eap->cmdidx == CMD_echo) + msg_puts_attr((char_u *)" ", echo_attr); +! current_copyID += COPYID_INC; +! p = echo_string(&rettv, &tofree, numbuf, current_copyID); + if (p != NULL) + for ( ; *p != NUL && !got_int; ++p) + { +*** ../vim-7.2.191/src/version.c 2009-05-26 22:58:43.000000000 +0200 +--- src/version.c 2009-06-03 13:21:20.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 192, + /**/ + +-- +Imagine a world without hypothetical situations. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.193 b/source/ap/vim/patches/7.2.193 new file mode 100644 index 000000000..175a6b886 --- /dev/null +++ b/source/ap/vim/patches/7.2.193 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.193 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.193 +Problem: Warning for uninitialized values. +Solution: Initialize all the struct items. +Files: src/eval.c + + +*** ../vim-7.2.192/src/eval.c 2009-06-03 13:22:22.000000000 +0200 +--- src/eval.c 2009-05-29 21:13:47.000000000 +0200 +*************** +*** 286,292 **** + #define VV_RO 2 /* read-only */ + #define VV_RO_SBX 4 /* read-only in the sandbox */ + +! #define VV_NAME(s, t) s, {{t}}, {0} + + static struct vimvar + { +--- 286,292 ---- + #define VV_RO 2 /* read-only */ + #define VV_RO_SBX 4 /* read-only in the sandbox */ + +! #define VV_NAME(s, t) s, {{t, 0, {0}}, 0, {0}}, {0} + + static struct vimvar + { +*** ../vim-7.2.192/src/version.c 2009-06-03 13:22:23.000000000 +0200 +--- src/version.c 2009-06-03 14:25:18.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 193, + /**/ + +-- +No engineer can take a shower without wondering if some sort of Teflon coating +would make showering unnecessary. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.194 b/source/ap/vim/patches/7.2.194 new file mode 100644 index 000000000..91d438f86 --- /dev/null +++ b/source/ap/vim/patches/7.2.194 @@ -0,0 +1,44 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.194 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.194 (extra) +Problem: MSVC: rem commands are echoed. +Solution: Add commands to switch off echo. (Wang Xu) +Files: src/msvc2008.bat + + +*** ../vim-7.2.193/src/msvc2008.bat 2008-06-24 22:55:23.000000000 +0200 +--- src/msvc2008.bat 2009-04-29 18:05:11.000000000 +0200 +*************** +*** 1,5 **** +--- 1,7 ---- ++ @echo off + rem To be used on MS-Windows for Visual C++ 2008 Express Edition + rem aka Microsoft Visual Studio 9.0. + rem See INSTALLpc.txt for information. ++ @echo on + + call "%VS90COMNTOOLS%%vsvars32.bat" +*** ../vim-7.2.193/src/version.c 2009-06-03 14:25:47.000000000 +0200 +--- src/version.c 2009-06-03 15:04:30.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 194, + /**/ + +-- +I used to be indecisive, now I'm not sure. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.195 b/source/ap/vim/patches/7.2.195 new file mode 100644 index 000000000..5669a65f9 --- /dev/null +++ b/source/ap/vim/patches/7.2.195 @@ -0,0 +1,79 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.195 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.195 +Problem: Leaking memory for the command Vim was started with. +Solution: Remember the pointer and free it. +Files: src/gui_gtk_x11.c + + +*** ../vim-7.2.194/src/gui_gtk_x11.c 2009-05-17 16:23:20.000000000 +0200 +--- src/gui_gtk_x11.c 2009-06-03 12:44:31.000000000 +0200 +*************** +*** 412,417 **** +--- 412,418 ---- + #endif + #if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION) + static const char *restart_command = NULL; ++ static char *abs_restart_command = NULL; + #endif + static int found_iconic_arg = FALSE; + +*************** +*** 449,456 **** + char_u buf[MAXPATHL]; + + if (mch_FullName((char_u *)argv[0], buf, (int)sizeof(buf), TRUE) == OK) +! /* Tiny leak; doesn't matter, and usually we don't even get here */ +! restart_command = (char *)vim_strsave(buf); + } + #endif + +--- 450,459 ---- + char_u buf[MAXPATHL]; + + if (mch_FullName((char_u *)argv[0], buf, (int)sizeof(buf), TRUE) == OK) +! { +! abs_restart_command = (char *)vim_strsave(buf); +! restart_command = abs_restart_command; +! } + } + #endif + +*************** +*** 611,616 **** +--- 614,622 ---- + gui_mch_free_all() + { + vim_free(gui_argv); ++ #if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION) ++ vim_free(abs_restart_command); ++ #endif + } + #endif + +*** ../vim-7.2.194/src/version.c 2009-06-03 15:05:05.000000000 +0200 +--- src/version.c 2009-06-03 16:19:00.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 195, + /**/ + +-- +I think that you'll agree that engineers are very effective in their social +interactions. It's the "normal" people who are nuts. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.196 b/source/ap/vim/patches/7.2.196 new file mode 100644 index 000000000..7be8d95c4 --- /dev/null +++ b/source/ap/vim/patches/7.2.196 @@ -0,0 +1,84 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.196 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.196 (after 7.2.167) +Problem: Turns out splint doesn't work well enough to be usable. +Solution: Remove splint support. +Files: Filelist, src/cleanlint.vim + + +*** ../vim-7.2.195/Filelist 2009-05-13 12:46:36.000000000 +0200 +--- Filelist 2009-05-21 14:42:46.000000000 +0200 +*************** +*** 139,145 **** + src/INSTALL \ + src/INSTALLx.txt \ + src/Makefile \ +- src/cleanlint.vim \ + src/auto/configure \ + src/config.aap.in \ + src/config.h.in \ +--- 139,144 ---- +*** ../vim-7.2.195/src/cleanlint.vim 2009-05-13 18:54:14.000000000 +0200 +--- src/cleanlint.vim 1970-01-01 01:00:00.000000000 +0100 +*************** +*** 1,32 **** +- " Vim tool: Filter output of splint +- " +- " Maintainer: Bram Moolenaar <Bram@vim.org> +- " Last Change: 2009 May 13 +- +- " Usage: redirect output of "make lint" to a file, edit that file with Vim and +- " :call CleanLint() +- " This deletes irrelevant messages. What remains might be valid warnings. +- +- fun! CleanLint() +- g/Assignment of dev_t to __dev_t:/lockmarks d +- g/Assignment of __dev_t to dev_t:/lockmarks d +- g/Operands of == have incompatible types (__dev_t, dev_t): /lockmarks d +- g/Operands of == have incompatible types (char_u, int): /lockmarks d +- g/Assignment of char to char_u: /lockmarks d +- g/Assignment of unsigned int to int: /lockmarks d +- g/Assignment of int to unsigned int: /lockmarks d +- g/Assignment of unsigned int to long int: /lockmarks d +- g/Assignment of int to char_u: /lockmarks d +- g/Function .* expects arg . to be wint_t gets int: /lockmarks d +- g/Function .* expects arg . to be size_t gets int: /lockmarks d +- g/Initial value of .* is type char, expects char_u: /lockmarks d +- g/^ex_cmds.h:.* Function types are inconsistent. Parameter 1 is implicitly temp, but unqualified in assigned function:/lockmarks d +- g/^ex_docmd.c:.* nospec_str/lockmarks d +- g/^digraph.c.*Additional initialization errors for digraphdefault not reported/lockmarks d +- g/Function strncasecmp expects arg 3 to be int gets size_t: /lockmarks d +- g/^ Types are incompatible/lockmarks d +- g/ To ignore signs in type comparisons use +ignoresigns/lockmarks d +- g/ To allow arbitrary integral types to match any integral type, use +matchanyintegral./lockmarks d +- g/ To allow arbitrary integral types to match long unsigned, use +longintegral./lockmarks d +- g+ A variable is declared but never used. Use /.@unused@./ in front of declaration to suppress message.+lockmarks d +- endfun +--- 0 ---- +*** ../vim-7.2.195/src/version.c 2009-06-03 16:20:09.000000000 +0200 +--- src/version.c 2009-06-03 22:04:31.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 196, + /**/ + +-- +It's totally unfair to suggest - as many have - that engineers are socially +inept. Engineers simply have different objectives when it comes to social +interaction. + (Scott Adams - The Dilbert principle) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.197 b/source/ap/vim/patches/7.2.197 new file mode 100644 index 000000000..8e49a5306 --- /dev/null +++ b/source/ap/vim/patches/7.2.197 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.197 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.197 +Problem: Warning for uninitialized values. +Solution: Initialize all the struct items of typebuf. +Files: src/globals.h + + +*** ../vim-7.2.196/src/globals.h 2009-05-13 12:46:36.000000000 +0200 +--- src/globals.h 2009-06-10 15:52:18.000000000 +0200 +*************** +*** 960,966 **** + ; + EXTERN typebuf_T typebuf /* typeahead buffer */ + #ifdef DO_INIT +! = {NULL, NULL} + #endif + ; + #ifdef FEAT_EX_EXTRA +--- 967,973 ---- + ; + EXTERN typebuf_T typebuf /* typeahead buffer */ + #ifdef DO_INIT +! = {NULL, NULL, 0, 0, 0, 0, 0, 0, 0} + #endif + ; + #ifdef FEAT_EX_EXTRA +*** ../vim-7.2.196/src/version.c 2009-06-03 22:07:38.000000000 +0200 +--- src/version.c 2009-06-10 18:14:58.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 197, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +18. Your wife drapes a blond wig over your monitor to remind you of what she + looks like. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.198 b/source/ap/vim/patches/7.2.198 new file mode 100644 index 000000000..cae27ac3c --- /dev/null +++ b/source/ap/vim/patches/7.2.198 @@ -0,0 +1,60 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.198 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.198 +Problem: Size of buffer used for tgetent() may be too small. +Solution: Use the largest known size everywhere. +Files: src/vim.h + + +*** ../vim-7.2.197/src/vim.h 2009-05-14 22:19:19.000000000 +0200 +--- src/vim.h 2009-06-07 20:37:48.000000000 +0200 +*************** +*** 1345,1355 **** + # define MSG_BUF_CLEN MSG_BUF_LEN /* cell length */ + #endif + +! #if defined(AMIGA) || defined(__linux__) || defined(__QNX__) || defined(__CYGWIN32__) || defined(_AIX) +! # define TBUFSZ 2048 /* buffer size for termcap entry */ +! #else +! # define TBUFSZ 1024 /* buffer size for termcap entry */ +! #endif + + /* + * Maximum length of key sequence to be mapped. +--- 1345,1355 ---- + # define MSG_BUF_CLEN MSG_BUF_LEN /* cell length */ + #endif + +! /* Size of the buffer used for tgetent(). Unfortunately this is largely +! * undocumented, some systems use 1024. Using a buffer that is too small +! * causes a buffer overrun and a crash. Use the maximum known value to stay +! * on the safe side. */ +! #define TBUFSZ 2048 /* buffer size for termcap entry */ + + /* + * Maximum length of key sequence to be mapped. +*** ../vim-7.2.197/src/version.c 2009-06-10 18:15:49.000000000 +0200 +--- src/version.c 2009-06-16 11:06:45.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 198, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +7. Finish all your sentences with "in accordance with the prophecy". + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.199 b/source/ap/vim/patches/7.2.199 new file mode 100644 index 000000000..391ede6fa --- /dev/null +++ b/source/ap/vim/patches/7.2.199 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.199 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.199 +Problem: Strange character in comment. +Solution: Change to "message". (Yongwei Wu) +Files: src/term.c + + +*** ../vim-7.2.198/src/term.c 2009-05-17 13:30:58.000000000 +0200 +--- src/term.c 2009-06-16 11:16:17.000000000 +0200 +*************** +*** 5555,5561 **** + * respects the current B/k/< settings of 'cpoption'. + * + * This function is called when expanding mappings/abbreviations on the +! * command-line, and for building the "Ambiguous mapping..." error messæge. + * + * It uses a growarray to build the translation string since the + * latter can be wider than the original description. The caller has to +--- 5555,5561 ---- + * respects the current B/k/< settings of 'cpoption'. + * + * This function is called when expanding mappings/abbreviations on the +! * command-line, and for building the "Ambiguous mapping..." error message. + * + * It uses a growarray to build the translation string since the + * latter can be wider than the original description. The caller has to +*** ../vim-7.2.198/src/version.c 2009-06-16 11:08:13.000000000 +0200 +--- src/version.c 2009-06-16 14:31:03.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 199, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +10. Ask people what sex they are. Laugh hysterically after they answer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.200 b/source/ap/vim/patches/7.2.200 new file mode 100644 index 000000000..65cc598e8 --- /dev/null +++ b/source/ap/vim/patches/7.2.200 @@ -0,0 +1,348 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.200 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.200 +Problem: Reading past end of string when navigating the menu bar or + resizing the window. +Solution: Add and use mb_ptr2len_len(). (partly by Dominique Pelle) + Also add mb_ptr2cells_len() to prevent more trouble. +Files: src/gui_gtk_x11.c, src/os_unix.c, src/globals.h, src/mbyte.c, + src/proto/mbyte.pro + + +*** ../vim-7.2.199/src/gui_gtk_x11.c 2009-06-03 16:20:09.000000000 +0200 +--- src/gui_gtk_x11.c 2009-06-16 14:44:19.000000000 +0200 +*************** +*** 6077,6088 **** + # ifdef FEAT_MBYTE + if (enc_utf8) + { +! c = utf_ptr2char(p); + if (c >= 0x10000) /* show chars > 0xffff as ? */ + c = 0xbf; + buf[textlen].byte1 = c >> 8; + buf[textlen].byte2 = c; +! p += utf_ptr2len(p); + width += utf_char2cells(c); + } + else +--- 6135,6149 ---- + # ifdef FEAT_MBYTE + if (enc_utf8) + { +! int pcc[MAX_MCO]; +! +! /* TODO: use the composing characters */ +! c = utfc_ptr2char_len(p, &pcc, len - (p - s)); + if (c >= 0x10000) /* show chars > 0xffff as ? */ + c = 0xbf; + buf[textlen].byte1 = c >> 8; + buf[textlen].byte2 = c; +! p += utfc_ptr2len_len(p, len - (p - s)); + width += utf_char2cells(c); + } + else +*************** +*** 6106,6113 **** + if (has_mbyte) + { + width = 0; +! for (p = s; p < s + len; p += (*mb_ptr2len)(p)) +! width += (*mb_ptr2cells)(p); + } + else + # endif +--- 6167,6174 ---- + if (has_mbyte) + { + width = 0; +! for (p = s; p < s + len; p += (*mb_ptr2len_len)(p, len - (p - s))) +! width += (*mb_ptr2cells_len)(p, len - (p - s)); + } + else + # endif +*** ../vim-7.2.199/src/os_unix.c 2009-05-17 13:30:58.000000000 +0200 +--- src/os_unix.c 2009-06-03 12:35:59.000000000 +0200 +*************** +*** 4305,4311 **** + ta_buf[i] = '\n'; + # ifdef FEAT_MBYTE + if (has_mbyte) +! i += (*mb_ptr2len)(ta_buf + i) - 1; + # endif + } + +--- 4305,4312 ---- + ta_buf[i] = '\n'; + # ifdef FEAT_MBYTE + if (has_mbyte) +! i += (*mb_ptr2len_len)(ta_buf + i, +! ta_len + len - i) - 1; + # endif + } + +*** ../vim-7.2.199/src/globals.h 2009-06-10 18:15:49.000000000 +0200 +--- src/globals.h 2009-06-12 21:10:30.000000000 +0200 +*************** +*** 810,820 **** +--- 815,828 ---- + */ + /* length of char in bytes, including following composing chars */ + EXTERN int (*mb_ptr2len) __ARGS((char_u *p)) INIT(= latin_ptr2len); ++ /* idem, with limit on string length */ ++ EXTERN int (*mb_ptr2len_len) __ARGS((char_u *p, int size)) INIT(= latin_ptr2len_len); + /* byte length of char */ + EXTERN int (*mb_char2len) __ARGS((int c)) INIT(= latin_char2len); + /* convert char to bytes, return the length */ + EXTERN int (*mb_char2bytes) __ARGS((int c, char_u *buf)) INIT(= latin_char2bytes); + EXTERN int (*mb_ptr2cells) __ARGS((char_u *p)) INIT(= latin_ptr2cells); ++ EXTERN int (*mb_ptr2cells_len) __ARGS((char_u *p, int size)) INIT(= latin_ptr2cells_len); + EXTERN int (*mb_char2cells) __ARGS((int c)) INIT(= latin_char2cells); + EXTERN int (*mb_off2cells) __ARGS((unsigned off, unsigned max_off)) INIT(= latin_off2cells); + EXTERN int (*mb_ptr2char) __ARGS((char_u *p)) INIT(= latin_ptr2char); +*** ../vim-7.2.199/src/mbyte.c 2009-05-17 13:30:58.000000000 +0200 +--- src/mbyte.c 2009-06-16 15:01:30.000000000 +0200 +*************** +*** 127,133 **** +--- 127,136 ---- + static int dbcs_char2len __ARGS((int c)); + static int dbcs_char2bytes __ARGS((int c, char_u *buf)); + static int dbcs_ptr2len __ARGS((char_u *p)); ++ static int dbcs_ptr2len_len __ARGS((char_u *p, int size)); ++ static int utf_ptr2cells_len __ARGS((char_u *p, int size)); + static int dbcs_char2cells __ARGS((int c)); ++ static int dbcs_ptr2cells_len __ARGS((char_u *p, int size)); + static int dbcs_ptr2char __ARGS((char_u *p)); + + /* Lookup table to quickly get the length in bytes of a UTF-8 character from +*************** +*** 606,614 **** +--- 609,619 ---- + if (enc_utf8) + { + mb_ptr2len = utfc_ptr2len; ++ mb_ptr2len_len = utfc_ptr2len_len; + mb_char2len = utf_char2len; + mb_char2bytes = utf_char2bytes; + mb_ptr2cells = utf_ptr2cells; ++ mb_ptr2cells_len = utf_ptr2cells_len; + mb_char2cells = utf_char2cells; + mb_off2cells = utf_off2cells; + mb_ptr2char = utf_ptr2char; +*************** +*** 617,625 **** +--- 622,632 ---- + else if (enc_dbcs != 0) + { + mb_ptr2len = dbcs_ptr2len; ++ mb_ptr2len_len = dbcs_ptr2len_len; + mb_char2len = dbcs_char2len; + mb_char2bytes = dbcs_char2bytes; + mb_ptr2cells = dbcs_ptr2cells; ++ mb_ptr2cells_len = dbcs_ptr2cells_len; + mb_char2cells = dbcs_char2cells; + mb_off2cells = dbcs_off2cells; + mb_ptr2char = dbcs_ptr2char; +*************** +*** 628,636 **** +--- 635,645 ---- + else + { + mb_ptr2len = latin_ptr2len; ++ mb_ptr2len_len = latin_ptr2len_len; + mb_char2len = latin_char2len; + mb_char2bytes = latin_char2bytes; + mb_ptr2cells = latin_ptr2cells; ++ mb_ptr2cells_len = latin_ptr2cells_len; + mb_char2cells = latin_char2cells; + mb_off2cells = latin_off2cells; + mb_ptr2char = latin_ptr2char; +*************** +*** 1069,1075 **** + * Get byte length of character at "*p" but stop at a NUL. + * For UTF-8 this includes following composing characters. + * Returns 0 when *p is NUL. +- * + */ + int + latin_ptr2len(p) +--- 1078,1083 ---- +*************** +*** 1091,1096 **** +--- 1099,1138 ---- + return len; + } + ++ /* ++ * mb_ptr2len_len() function pointer. ++ * Like mb_ptr2len(), but limit to read "size" bytes. ++ * Returns 0 for an empty string. ++ * Returns 1 for an illegal char or an incomplete byte sequence. ++ */ ++ int ++ latin_ptr2len_len(p, size) ++ char_u *p; ++ int size; ++ { ++ if (size < 1 || *p == NUL) ++ return 0; ++ return 1; ++ } ++ ++ static int ++ dbcs_ptr2len_len(p, size) ++ char_u *p; ++ int size; ++ { ++ int len; ++ ++ if (size < 1 || *p == NUL) ++ return 0; ++ if (size == 1) ++ return 1; ++ /* Check that second byte is not missing. */ ++ len = MB_BYTE2LEN(*p); ++ if (len == 2 && p[1] == NUL) ++ len = 1; ++ return len; ++ } ++ + struct interval + { + unsigned short first; +*************** +*** 1287,1292 **** +--- 1329,1383 ---- + } + + /* ++ * mb_ptr2cells_len() function pointer. ++ * Like mb_ptr2cells(), but limit string length to "size". ++ * For an empty string or truncated character returns 1. ++ */ ++ int ++ latin_ptr2cells_len(p, size) ++ char_u *p UNUSED; ++ int size UNUSED; ++ { ++ return 1; ++ } ++ ++ static int ++ utf_ptr2cells_len(p, size) ++ char_u *p; ++ int size; ++ { ++ int c; ++ ++ /* Need to convert to a wide character. */ ++ if (size > 0 && *p >= 0x80) ++ { ++ if (utf_ptr2len_len(p, size) < utf8len_tab[*p]) ++ return 1; ++ c = utf_ptr2char(p); ++ /* An illegal byte is displayed as <xx>. */ ++ if (utf_ptr2len(p) == 1 || c == NUL) ++ return 4; ++ /* If the char is ASCII it must be an overlong sequence. */ ++ if (c < 0x80) ++ return char2cells(c); ++ return utf_char2cells(c); ++ } ++ return 1; ++ } ++ ++ static int ++ dbcs_ptr2cells_len(p, size) ++ char_u *p; ++ int size; ++ { ++ /* Number of cells is equal to number of bytes, except for euc-jp when ++ * the first byte is 0x8e. */ ++ if (size <= 1 || (enc_dbcs == DBCS_JPNU && *p == 0x8e)) ++ return 1; ++ return MB_BYTE2LEN(*p); ++ } ++ ++ /* + * mb_char2cells() function pointer. + * Return the number of display cells character "c" occupies. + * Only takes care of multi-byte chars, not "^C" and such. +*************** +*** 1716,1721 **** +--- 1807,1813 ---- + /* + * Return the number of bytes the UTF-8 encoding of the character at "p[size]" + * takes. This includes following composing characters. ++ * Returns 0 for an empty string. + * Returns 1 for an illegal char or an incomplete byte sequence. + */ + int +*************** +*** 1728,1734 **** + int prevlen; + #endif + +! if (*p == NUL) + return 0; + if (p[0] < 0x80 && (size == 1 || p[1] < 0x80)) /* be quick for ASCII */ + return 1; +--- 1820,1826 ---- + int prevlen; + #endif + +! if (size < 1 || *p == NUL) + return 0; + if (p[0] < 0x80 && (size == 1 || p[1] < 0x80)) /* be quick for ASCII */ + return 1; +*** ../vim-7.2.199/src/proto/mbyte.pro 2008-07-13 19:34:19.000000000 +0200 +--- src/proto/mbyte.pro 2009-06-16 14:58:39.000000000 +0200 +*************** +*** 7,16 **** +--- 7,18 ---- + int latin_char2len __ARGS((int c)); + int latin_char2bytes __ARGS((int c, char_u *buf)); + int latin_ptr2len __ARGS((char_u *p)); ++ int latin_ptr2len_len __ARGS((char_u *p, int size)); + int utf_char2cells __ARGS((int c)); + int latin_ptr2cells __ARGS((char_u *p)); + int utf_ptr2cells __ARGS((char_u *p)); + int dbcs_ptr2cells __ARGS((char_u *p)); ++ int latin_ptr2cells_len __ARGS((char_u *p, int size)); + int latin_char2cells __ARGS((int c)); + int latin_off2cells __ARGS((unsigned off, unsigned max_off)); + int dbcs_off2cells __ARGS((unsigned off, unsigned max_off)); +*************** +*** 85,90 **** +--- 87,93 ---- + int preedit_get_status __ARGS((void)); + int im_is_preediting __ARGS((void)); + int convert_setup __ARGS((vimconv_T *vcp, char_u *from, char_u *to)); ++ int convert_setup_ext __ARGS((vimconv_T *vcp, char_u *from, int from_unicode_is_utf8, char_u *to, int to_unicode_is_utf8)); + int convert_input __ARGS((char_u *ptr, int len, int maxlen)); + int convert_input_safe __ARGS((char_u *ptr, int len, int maxlen, char_u **restp, int *restlenp)); + char_u *string_convert __ARGS((vimconv_T *vcp, char_u *ptr, int *lenp)); +*** ../vim-7.2.199/src/version.c 2009-06-16 14:31:56.000000000 +0200 +--- src/version.c 2009-06-16 14:37:38.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 200, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +12. Sing along at the opera. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.201 b/source/ap/vim/patches/7.2.201 new file mode 100644 index 000000000..cd2df0798 --- /dev/null +++ b/source/ap/vim/patches/7.2.201 @@ -0,0 +1,494 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.201 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.201 +Problem: Cannot copy/paste HTML to/from Firefox via the clipboard. +Solution: Implement this for GTK. Add the "html" value to 'clipboard'. +Files: runtime/doc/options.txt, src/globals.h, src/gui_gtk_x11.c, + src/mbyte.c, src/proto/mbyte.pro, src/option.c + + +*** ../vim-7.2.200/runtime/doc/options.txt 2009-02-21 20:27:00.000000000 +0100 +--- runtime/doc/options.txt 2009-06-12 22:25:22.000000000 +0200 +*************** +*** 1443,1448 **** +--- 1444,1457 ---- + autoselectml Like "autoselect", but for the modeless selection + only. Compare to the 'A' flag in 'guioptions'. + ++ html When the clipboard contains HTML, use this when ++ pasting. When putting text on the clipboard, mark it ++ as HTML. This works to copy rendered HTML from ++ Firefox, paste it as raw HTML in Vim, select the HTML ++ in Vim and paste it in a rich edit box in Firefox. ++ Only supported for GTK version 2 and later. ++ Only available with the |+multi_byte| feature. ++ + exclude:{pattern} + Defines a pattern that is matched against the name of + the terminal 'term'. If there is a match, no +*** ../vim-7.2.200/src/globals.h 2009-06-16 15:12:11.000000000 +0200 +--- src/globals.h 2009-06-12 21:10:30.000000000 +0200 +*************** +*** 509,514 **** +--- 509,515 ---- + EXTERN int clip_unnamed INIT(= FALSE); + EXTERN int clip_autoselect INIT(= FALSE); + EXTERN int clip_autoselectml INIT(= FALSE); ++ EXTERN int clip_html INIT(= FALSE); + EXTERN regprog_T *clip_exclude_prog INIT(= NULL); + #endif + +*** ../vim-7.2.200/src/gui_gtk_x11.c 2009-06-16 15:12:11.000000000 +0200 +--- src/gui_gtk_x11.c 2009-06-16 14:44:19.000000000 +0200 +*************** +*** 107,112 **** +--- 107,113 ---- + TARGET_UTF8_STRING, + TARGET_STRING, + TARGET_COMPOUND_TEXT, ++ TARGET_HTML, + TARGET_TEXT, + TARGET_TEXT_URI_LIST, + TARGET_TEXT_PLAIN, +*************** +*** 123,128 **** +--- 124,130 ---- + {VIMENC_ATOM_NAME, 0, TARGET_VIMENC}, + {VIM_ATOM_NAME, 0, TARGET_VIM}, + #ifdef FEAT_MBYTE ++ {"text/html", 0, TARGET_HTML}, + {"UTF8_STRING", 0, TARGET_UTF8_STRING}, + #endif + {"COMPOUND_TEXT", 0, TARGET_COMPOUND_TEXT}, +*************** +*** 140,145 **** +--- 142,148 ---- + { + {"text/uri-list", 0, TARGET_TEXT_URI_LIST}, + # ifdef FEAT_MBYTE ++ {"text/html", 0, TARGET_HTML}, + {"UTF8_STRING", 0, TARGET_UTF8_STRING}, + # endif + {"STRING", 0, TARGET_STRING}, +*************** +*** 178,183 **** +--- 181,187 ---- + * Atoms used to control/reference X11 selections. + */ + #ifdef FEAT_MBYTE ++ static GdkAtom html_atom = GDK_NONE; + static GdkAtom utf8_string_atom = GDK_NONE; + #endif + #ifndef HAVE_GTK2 +*************** +*** 1364,1369 **** +--- 1368,1391 ---- + else + text = tmpbuf_utf8; + } ++ else if (len >= 2 && text[0] == 0xff && text[1] == 0xfe) ++ { ++ vimconv_T conv; ++ ++ /* UTF-16, we get this for HTML */ ++ conv.vc_type = CONV_NONE; ++ convert_setup_ext(&conv, (char_u *)"utf-16le", FALSE, p_enc, TRUE); ++ ++ if (conv.vc_type != CONV_NONE) ++ { ++ text += 2; ++ len -= 2; ++ tmpbuf = string_convert(&conv, text, &len); ++ convert_setup(&conv, NULL, NULL); ++ } ++ if (tmpbuf != NULL) ++ text = tmpbuf; ++ } + } + #else /* !HAVE_GTK2 */ + # ifdef FEAT_MBYTE +*************** +*** 1451,1456 **** +--- 1473,1479 ---- + + if (info != (guint)TARGET_STRING + #ifdef FEAT_MBYTE ++ && (!clip_html || info != (guint)TARGET_HTML) + && info != (guint)TARGET_UTF8_STRING + && info != (guint)TARGET_VIMENC + #endif +*************** +*** 1486,1491 **** +--- 1509,1548 ---- + } + + #ifdef FEAT_MBYTE ++ else if (info == (guint)TARGET_HTML) ++ { ++ vimconv_T conv; ++ ++ /* Since we get utf-16, we probably should set it as well. */ ++ conv.vc_type = CONV_NONE; ++ convert_setup_ext(&conv, p_enc, TRUE, (char_u *)"utf-16le", FALSE); ++ if (conv.vc_type != CONV_NONE) ++ { ++ tmpbuf = string_convert(&conv, string, &length); ++ convert_setup(&conv, NULL, NULL); ++ vim_free(string); ++ string = tmpbuf; ++ } ++ ++ /* Prepend the BOM: "fffe" */ ++ if (string != NULL) ++ { ++ tmpbuf = alloc(length + 2); ++ tmpbuf[0] = 0xff; ++ tmpbuf[1] = 0xfe; ++ mch_memmove(tmpbuf + 2, string, (size_t)length); ++ vim_free(string); ++ string = tmpbuf; ++ length += 2; ++ ++ selection_data->type = selection_data->target; ++ selection_data->format = 16; /* 16 bits per char */ ++ gtk_selection_data_set(selection_data, html_atom, 16, ++ string, length); ++ vim_free(string); ++ } ++ return; ++ } + else if (info == (guint)TARGET_VIMENC) + { + int l = STRLEN(p_enc); +*************** +*** 3464,3469 **** +--- 3521,3527 ---- + + /* Initialise atoms */ + #ifdef FEAT_MBYTE ++ html_atom = gdk_atom_intern("text/html", FALSE); + utf8_string_atom = gdk_atom_intern("UTF8_STRING", FALSE); + #endif + #ifndef HAVE_GTK2 +*************** +*** 6665,6670 **** +--- 6723,6732 ---- + + for (i = 0; i < N_SELECTION_TARGETS; ++i) + { ++ #ifdef FEAT_MBYTE ++ if (!clip_html && selection_targets[i].info == TARGET_HTML) ++ continue; ++ #endif + received_selection = RS_NONE; + target = gdk_atom_intern(selection_targets[i].target, FALSE); + +*** ../vim-7.2.200/src/mbyte.c 2009-06-16 15:12:11.000000000 +0200 +--- src/mbyte.c 2009-06-16 15:01:30.000000000 +0200 +*************** +*** 3265,3271 **** + + # if defined(USE_ICONV) || defined(PROTO) + +! static char_u *iconv_string __ARGS((vimconv_T *vcp, char_u *str, int slen, int *unconvlenp)); + + /* + * Call iconv_open() with a check if iconv() works properly (there are broken +--- 3265,3271 ---- + + # if defined(USE_ICONV) || defined(PROTO) + +! static char_u *iconv_string __ARGS((vimconv_T *vcp, char_u *str, int slen, int *unconvlenp, int *resultlenp)); + + /* + * Call iconv_open() with a check if iconv() works properly (there are broken +*************** +*** 3326,3338 **** + * If "unconvlenp" is not NULL handle the string ending in an incomplete + * sequence and set "*unconvlenp" to the length of it. + * Returns the converted string in allocated memory. NULL for an error. + */ + static char_u * +! iconv_string(vcp, str, slen, unconvlenp) + vimconv_T *vcp; + char_u *str; + int slen; + int *unconvlenp; + { + const char *from; + size_t fromlen; +--- 3326,3340 ---- + * If "unconvlenp" is not NULL handle the string ending in an incomplete + * sequence and set "*unconvlenp" to the length of it. + * Returns the converted string in allocated memory. NULL for an error. ++ * If resultlenp is not NULL, sets it to the result length in bytes. + */ + static char_u * +! iconv_string(vcp, str, slen, unconvlenp, resultlenp) + vimconv_T *vcp; + char_u *str; + int slen; + int *unconvlenp; ++ int *resultlenp; + { + const char *from; + size_t fromlen; +*************** +*** 3418,3423 **** +--- 3420,3428 ---- + /* Not enough room or skipping illegal sequence. */ + done = to - (char *)result; + } ++ ++ if (resultlenp != NULL) ++ *resultlenp = (int)(to - (char *)result); + return result; + } + +*************** +*** 5837,5844 **** +--- 5842,5866 ---- + char_u *from; + char_u *to; + { ++ return convert_setup_ext(vcp, from, TRUE, to, TRUE); ++ } ++ ++ /* ++ * As convert_setup(), but only when from_unicode_is_utf8 is TRUE will all ++ * "from" unicode charsets be considered utf-8. Same for "to". ++ */ ++ int ++ convert_setup_ext(vcp, from, from_unicode_is_utf8, to, to_unicode_is_utf8) ++ vimconv_T *vcp; ++ char_u *from; ++ int from_unicode_is_utf8; ++ char_u *to; ++ int to_unicode_is_utf8; ++ { + int from_prop; + int to_prop; ++ int from_is_utf8; ++ int to_is_utf8; + + /* Reset to no conversion. */ + # ifdef USE_ICONV +*************** +*** 5856,5892 **** + + from_prop = enc_canon_props(from); + to_prop = enc_canon_props(to); +! if ((from_prop & ENC_LATIN1) && (to_prop & ENC_UNICODE)) + { + /* Internal latin1 -> utf-8 conversion. */ + vcp->vc_type = CONV_TO_UTF8; + vcp->vc_factor = 2; /* up to twice as long */ + } +! else if ((from_prop & ENC_LATIN9) && (to_prop & ENC_UNICODE)) + { + /* Internal latin9 -> utf-8 conversion. */ + vcp->vc_type = CONV_9_TO_UTF8; + vcp->vc_factor = 3; /* up to three as long (euro sign) */ + } +! else if ((from_prop & ENC_UNICODE) && (to_prop & ENC_LATIN1)) + { + /* Internal utf-8 -> latin1 conversion. */ + vcp->vc_type = CONV_TO_LATIN1; + } +! else if ((from_prop & ENC_UNICODE) && (to_prop & ENC_LATIN9)) + { + /* Internal utf-8 -> latin9 conversion. */ + vcp->vc_type = CONV_TO_LATIN9; + } + #ifdef WIN3264 + /* Win32-specific codepage <-> codepage conversion without iconv. */ +! else if (((from_prop & ENC_UNICODE) || encname2codepage(from) > 0) +! && ((to_prop & ENC_UNICODE) || encname2codepage(to) > 0)) + { + vcp->vc_type = CONV_CODEPAGE; + vcp->vc_factor = 2; /* up to twice as long */ +! vcp->vc_cpfrom = (from_prop & ENC_UNICODE) ? 0 : encname2codepage(from); +! vcp->vc_cpto = (to_prop & ENC_UNICODE) ? 0 : encname2codepage(to); + } + #endif + #ifdef MACOS_X +--- 5878,5923 ---- + + from_prop = enc_canon_props(from); + to_prop = enc_canon_props(to); +! if (from_unicode_is_utf8) +! from_is_utf8 = from_prop & ENC_UNICODE; +! else +! from_is_utf8 = from_prop == ENC_UNICODE; +! if (to_unicode_is_utf8) +! to_is_utf8 = to_prop & ENC_UNICODE; +! else +! to_is_utf8 = to_prop == ENC_UNICODE; +! +! if ((from_prop & ENC_LATIN1) && to_is_utf8) + { + /* Internal latin1 -> utf-8 conversion. */ + vcp->vc_type = CONV_TO_UTF8; + vcp->vc_factor = 2; /* up to twice as long */ + } +! else if ((from_prop & ENC_LATIN9) && to_is_utf8) + { + /* Internal latin9 -> utf-8 conversion. */ + vcp->vc_type = CONV_9_TO_UTF8; + vcp->vc_factor = 3; /* up to three as long (euro sign) */ + } +! else if (from_is_utf8 && (to_prop & ENC_LATIN1)) + { + /* Internal utf-8 -> latin1 conversion. */ + vcp->vc_type = CONV_TO_LATIN1; + } +! else if (from_is_utf8 && (to_prop & ENC_LATIN9)) + { + /* Internal utf-8 -> latin9 conversion. */ + vcp->vc_type = CONV_TO_LATIN9; + } + #ifdef WIN3264 + /* Win32-specific codepage <-> codepage conversion without iconv. */ +! else if ((from_is_utf8 || encname2codepage(from) > 0) +! && (to_is_utf8 || encname2codepage(to) > 0)) + { + vcp->vc_type = CONV_CODEPAGE; + vcp->vc_factor = 2; /* up to twice as long */ +! vcp->vc_cpfrom = from_is_utf8 ? 0 : encname2codepage(from); +! vcp->vc_cpto = to_is_utf8 ? 0 : encname2codepage(to); + } + #endif + #ifdef MACOS_X +*************** +*** 5894,5900 **** + { + vcp->vc_type = CONV_MAC_LATIN1; + } +! else if ((from_prop & ENC_MACROMAN) && (to_prop & ENC_UNICODE)) + { + vcp->vc_type = CONV_MAC_UTF8; + vcp->vc_factor = 2; /* up to twice as long */ +--- 5925,5931 ---- + { + vcp->vc_type = CONV_MAC_LATIN1; + } +! else if ((from_prop & ENC_MACROMAN) && to_is_utf8) + { + vcp->vc_type = CONV_MAC_UTF8; + vcp->vc_factor = 2; /* up to twice as long */ +*************** +*** 5903,5909 **** + { + vcp->vc_type = CONV_LATIN1_MAC; + } +! else if ((from_prop & ENC_UNICODE) && (to_prop & ENC_MACROMAN)) + { + vcp->vc_type = CONV_UTF8_MAC; + } +--- 5934,5940 ---- + { + vcp->vc_type = CONV_LATIN1_MAC; + } +! else if (from_is_utf8 && (to_prop & ENC_MACROMAN)) + { + vcp->vc_type = CONV_UTF8_MAC; + } +*************** +*** 5913,5920 **** + { + /* Use iconv() for conversion. */ + vcp->vc_fd = (iconv_t)my_iconv_open( +! (to_prop & ENC_UNICODE) ? (char_u *)"utf-8" : to, +! (from_prop & ENC_UNICODE) ? (char_u *)"utf-8" : from); + if (vcp->vc_fd != (iconv_t)-1) + { + vcp->vc_type = CONV_ICONV; +--- 5944,5951 ---- + { + /* Use iconv() for conversion. */ + vcp->vc_fd = (iconv_t)my_iconv_open( +! to_is_utf8 ? (char_u *)"utf-8" : to, +! from_is_utf8 ? (char_u *)"utf-8" : from); + if (vcp->vc_fd != (iconv_t)-1) + { + vcp->vc_type = CONV_ICONV; +*************** +*** 6170,6178 **** + + # ifdef USE_ICONV + case CONV_ICONV: /* conversion with output_conv.vc_fd */ +! retval = iconv_string(vcp, ptr, len, unconvlenp); +! if (retval != NULL && lenp != NULL) +! *lenp = (int)STRLEN(retval); + break; + # endif + # ifdef WIN3264 +--- 6201,6207 ---- + + # ifdef USE_ICONV + case CONV_ICONV: /* conversion with output_conv.vc_fd */ +! retval = iconv_string(vcp, ptr, len, unconvlenp, lenp); + break; + # endif + # ifdef WIN3264 +*** ../vim-7.2.200/src/option.c 2009-05-17 13:30:58.000000000 +0200 +--- src/option.c 2009-06-12 21:09:51.000000000 +0200 +*************** +*** 7024,7029 **** +--- 7024,7030 ---- + int new_unnamed = FALSE; + int new_autoselect = FALSE; + int new_autoselectml = FALSE; ++ int new_html = FALSE; + regprog_T *new_exclude_prog = NULL; + char_u *errmsg = NULL; + char_u *p; +*************** +*** 7047,7052 **** +--- 7048,7058 ---- + new_autoselectml = TRUE; + p += 12; + } ++ else if (STRNCMP(p, "html", 4) == 0 && (p[4] == ',' || p[4] == NUL)) ++ { ++ new_html = TRUE; ++ p += 4; ++ } + else if (STRNCMP(p, "exclude:", 8) == 0 && new_exclude_prog == NULL) + { + p += 8; +*************** +*** 7068,7073 **** +--- 7074,7080 ---- + clip_unnamed = new_unnamed; + clip_autoselect = new_autoselect; + clip_autoselectml = new_autoselectml; ++ clip_html = new_html; + vim_free(clip_exclude_prog); + clip_exclude_prog = new_exclude_prog; + } +*** ../vim-7.2.200/src/version.c 2009-06-16 15:12:11.000000000 +0200 +--- src/version.c 2009-06-16 15:14:02.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 201, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +13. Go to a poetry recital and ask why the poems don't rhyme. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.202 b/source/ap/vim/patches/7.2.202 new file mode 100644 index 000000000..2c2490938 --- /dev/null +++ b/source/ap/vim/patches/7.2.202 @@ -0,0 +1,62 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.202 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.202 +Problem: BufWipeout autocommand that edits another buffer causes problems. +Solution: Check for the situation, give an error and quit the operation. +Files: src/fileio.c + + +*** ../vim-7.2.201/src/fileio.c 2009-05-16 17:29:37.000000000 +0200 +--- src/fileio.c 2009-06-11 21:22:37.000000000 +0200 +*************** +*** 4824,4829 **** +--- 4824,4831 ---- + char_u *sfname; + { + #ifdef FEAT_AUTOCMD ++ buf_T *buf = curbuf; ++ + /* It's like the unnamed buffer is deleted.... */ + if (curbuf->b_p_bl) + apply_autocmds(EVENT_BUFDELETE, NULL, NULL, FALSE, curbuf); +*************** +*** 4832,4837 **** +--- 4834,4845 ---- + if (aborting()) /* autocmds may abort script processing */ + return FAIL; + # endif ++ if (curbuf != buf) ++ { ++ /* We are in another buffer now, don't do the renaming. */ ++ EMSG(_(e_auchangedbuf)); ++ return FAIL; ++ } + #endif + + if (setfname(curbuf, fname, sfname, FALSE) == OK) +*** ../vim-7.2.201/src/version.c 2009-06-16 15:23:07.000000000 +0200 +--- src/version.c 2009-06-16 15:28:31.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 202, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +14. Put mosquito netting around your work area. Play a tape of jungle + sounds all day. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.203 b/source/ap/vim/patches/7.2.203 new file mode 100644 index 000000000..c1322488a --- /dev/null +++ b/source/ap/vim/patches/7.2.203 @@ -0,0 +1,1496 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.203 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.203 +Problem: When reloading a buffer or doing anything else with a buffer that + is not displayed in a visible window, autocommands may be applied + to the current window, folds messed up, etc. +Solution: Instead of using the current window for the hidden buffer use a + special window, splitting the current one temporarily. +Files: src/fileio.c, src/globals.h, src/gui.c, src/if_perl.xs, + src/proto/gui.pro, src/proto/window.pro, src/screen.c, + src/structs.h, src/window.c + + +*** ../vim-7.2.202/src/fileio.c 2009-06-16 15:35:46.000000000 +0200 +--- src/fileio.c 2009-06-11 21:22:37.000000000 +0200 +*************** +*** 8365,8371 **** + + /* Execute the modeline settings, but don't set window-local + * options if we are using the current window for another buffer. */ +! do_modelines(aco.save_curwin == NULL ? OPT_NOWIN : 0); + + /* restore the current window */ + aucmd_restbuf(&aco); +--- 8365,8371 ---- + + /* Execute the modeline settings, but don't set window-local + * options if we are using the current window for another buffer. */ +! do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0); + + /* restore the current window */ + aucmd_restbuf(&aco); +*************** +*** 8381,8388 **** + + /* + * Prepare for executing autocommands for (hidden) buffer "buf". +! * Search a window for the current buffer. Save the cursor position and +! * screen offset. + * Set "curbuf" and "curwin" to match "buf". + * When FEAT_AUTOCMD is not defined another version is used, see below. + */ +--- 8381,8388 ---- + + /* + * Prepare for executing autocommands for (hidden) buffer "buf". +! * Search for a visible window containing the current buffer. If there isn't +! * one then use "aucmd_win". + * Set "curbuf" and "curwin" to match "buf". + * When FEAT_AUTOCMD is not defined another version is used, see below. + */ +*************** +*** 8392,8399 **** + buf_T *buf; /* new curbuf */ + { + win_T *win; +! +! aco->new_curbuf = buf; + + /* Find a window that is for the new buffer */ + if (buf == curbuf) /* be quick when buf is curbuf */ +--- 8392,8400 ---- + buf_T *buf; /* new curbuf */ + { + win_T *win; +! #ifdef FEAT_WINDOWS +! int save_ea; +! #endif + + /* Find a window that is for the new buffer */ + if (buf == curbuf) /* be quick when buf is curbuf */ +*************** +*** 8407,8448 **** + win = NULL; + #endif + +! /* +! * Prefer to use an existing window for the buffer, it has the least side +! * effects (esp. if "buf" is curbuf). +! * Otherwise, use curwin for "buf". It might make some items in the +! * window invalid. At least save the cursor and topline. +! */ + if (win != NULL) + { +! /* there is a window for "buf", make it the curwin */ +! aco->save_curwin = curwin; + curwin = win; +- aco->save_buf = win->w_buffer; +- aco->new_curwin = win; + } + else + { +! /* there is no window for "buf", use curwin */ +! aco->save_curwin = NULL; +! aco->save_buf = curbuf; +! --curbuf->b_nwindows; + curwin->w_buffer = buf; + ++buf->b_nwindows; + +! /* save cursor and topline, set them to safe values */ +! aco->save_cursor = curwin->w_cursor; +! curwin->w_cursor.lnum = 1; +! curwin->w_cursor.col = 0; +! aco->save_topline = curwin->w_topline; +! curwin->w_topline = 1; +! #ifdef FEAT_DIFF +! aco->save_topfill = curwin->w_topfill; +! curwin->w_topfill = 0; + #endif + } +- + curbuf = buf; + } + + /* +--- 8408,8460 ---- + win = NULL; + #endif + +! /* Allocate "aucmd_win" when needed. If this fails (out of memory) fall +! * back to using the current window. */ +! if (win == NULL && aucmd_win == NULL) +! { +! win_alloc_aucmd_win(); +! if (aucmd_win == NULL) +! win = curwin; +! } +! +! aco->save_curwin = curwin; +! aco->save_curbuf = curbuf; + if (win != NULL) + { +! /* There is a window for "buf" in the current tab page, make it the +! * curwin. This is preferred, it has the least side effects (esp. if +! * "buf" is curbuf). */ + curwin = win; + } + else + { +! /* There is no window for "buf", use "aucmd_win". To minimize the side +! * effects, insert it in a the current tab page. +! * Anything related to a window (e.g., setting folds) may have +! * unexpected results. */ +! curwin = aucmd_win; + curwin->w_buffer = buf; + ++buf->b_nwindows; + +! #ifdef FEAT_WINDOWS +! /* Split the current window, put the aucmd_win in the upper half. */ +! make_snapshot(SNAP_AUCMD_IDX); +! save_ea = p_ea; +! p_ea = FALSE; +! (void)win_split_ins(0, WSP_TOP, aucmd_win, 0); +! (void)win_comp_pos(); /* recompute window positions */ +! p_ea = save_ea; +! #endif +! /* set cursor and topline to safe values */ +! curwin_init(); +! #ifdef FEAT_VERTSPLIT +! curwin->w_wincol = 0; +! curwin->w_width = Columns; + #endif + } + curbuf = buf; ++ aco->new_curwin = curwin; ++ aco->new_curbuf = curbuf; + } + + /* +*************** +*** 8454,8474 **** + aucmd_restbuf(aco) + aco_save_T *aco; /* structure holding saved values */ + { +! if (aco->save_curwin != NULL) + { + /* restore curwin */ + #ifdef FEAT_WINDOWS + if (win_valid(aco->save_curwin)) + #endif + { +! /* restore the buffer which was previously edited by curwin, if +! * it's still the same window and it's valid */ + if (curwin == aco->new_curwin +! && buf_valid(aco->save_buf) +! && aco->save_buf->b_ml.ml_mfp != NULL) + { + --curbuf->b_nwindows; +! curbuf = aco->save_buf; + curwin->w_buffer = curbuf; + ++curbuf->b_nwindows; + } +--- 8466,8551 ---- + aucmd_restbuf(aco) + aco_save_T *aco; /* structure holding saved values */ + { +! #ifdef FEAT_WINDOWS +! int dummy; +! #endif +! +! if (aco->new_curwin == aucmd_win) +! { +! --curbuf->b_nwindows; +! #ifdef FEAT_WINDOWS +! /* Find "aucmd_win", it can't be closed, but it may be in another tab +! * page. */ +! if (curwin != aucmd_win) +! { +! tabpage_T *tp; +! win_T *wp; +! +! FOR_ALL_TAB_WINDOWS(tp, wp) +! { +! if (wp == aucmd_win) +! { +! if (tp != curtab) +! goto_tabpage_tp(tp); +! win_goto(aucmd_win); +! break; +! } +! } +! } +! +! /* Remove the window and frame from the tree of frames. */ +! (void)winframe_remove(curwin, &dummy, NULL); +! win_remove(curwin, NULL); +! last_status(FALSE); /* may need to remove last status line */ +! restore_snapshot(SNAP_AUCMD_IDX, FALSE); +! (void)win_comp_pos(); /* recompute window positions */ +! +! if (win_valid(aco->save_curwin)) +! curwin = aco->save_curwin; +! else +! /* Hmm, original window disappeared. Just use the first one. */ +! curwin = firstwin; +! # ifdef FEAT_EVAL +! vars_clear(&aucmd_win->w_vars.dv_hashtab); /* free all w: variables */ +! # endif +! #else +! curwin = aco->save_curwin; +! #endif +! curbuf = curwin->w_buffer; +! +! /* the buffer contents may have changed */ +! check_cursor(); +! if (curwin->w_topline > curbuf->b_ml.ml_line_count) +! { +! curwin->w_topline = curbuf->b_ml.ml_line_count; +! #ifdef FEAT_DIFF +! curwin->w_topfill = 0; +! #endif +! } +! #if defined(FEAT_GUI) +! /* Hide the scrollbars from the aucmd_win and update. */ +! gui_mch_enable_scrollbar(&aucmd_win->w_scrollbars[SBAR_LEFT], FALSE); +! gui_mch_enable_scrollbar(&aucmd_win->w_scrollbars[SBAR_RIGHT], FALSE); +! gui_may_update_scrollbars(); +! #endif +! } +! else + { + /* restore curwin */ + #ifdef FEAT_WINDOWS + if (win_valid(aco->save_curwin)) + #endif + { +! /* Restore the buffer which was previously edited by curwin, if +! * it was chagned, we are still the same window and the buffer is +! * valid. */ + if (curwin == aco->new_curwin +! && curbuf != aco->new_curbuf +! && buf_valid(aco->new_curbuf) +! && aco->new_curbuf->b_ml.ml_mfp != NULL) + { + --curbuf->b_nwindows; +! curbuf = aco->new_curbuf; + curwin->w_buffer = curbuf; + ++curbuf->b_nwindows; + } +*************** +*** 8477,8510 **** + curbuf = curwin->w_buffer; + } + } +- else +- { +- /* restore buffer for curwin if it still exists and is loaded */ +- if (buf_valid(aco->save_buf) && aco->save_buf->b_ml.ml_mfp != NULL) +- { +- --curbuf->b_nwindows; +- curbuf = aco->save_buf; +- curwin->w_buffer = curbuf; +- ++curbuf->b_nwindows; +- curwin->w_cursor = aco->save_cursor; +- check_cursor(); +- /* check topline < line_count, in case lines got deleted */ +- if (aco->save_topline <= curbuf->b_ml.ml_line_count) +- { +- curwin->w_topline = aco->save_topline; +- #ifdef FEAT_DIFF +- curwin->w_topfill = aco->save_topfill; +- #endif +- } +- else +- { +- curwin->w_topline = curbuf->b_ml.ml_line_count; +- #ifdef FEAT_DIFF +- curwin->w_topfill = 0; +- #endif +- } +- } +- } + } + + static int autocmd_nested = FALSE; +--- 8554,8559 ---- +*************** +*** 9419,9427 **** + aco_save_T *aco; /* structure to save values in */ + buf_T *buf; /* new curbuf */ + { +! aco->save_buf = curbuf; + curbuf = buf; + curwin->w_buffer = buf; + } + + /* +--- 9468,9478 ---- + aco_save_T *aco; /* structure to save values in */ + buf_T *buf; /* new curbuf */ + { +! aco->save_curbuf = curbuf; +! --curbuf->b_nwindows; + curbuf = buf; + curwin->w_buffer = buf; ++ ++curbuf->b_nwindows; + } + + /* +*************** +*** 9432,9439 **** + aucmd_restbuf(aco) + aco_save_T *aco; /* structure holding saved values */ + { +! curbuf = aco->save_buf; + curwin->w_buffer = curbuf; + } + + #endif /* FEAT_AUTOCMD */ +--- 9483,9492 ---- + aucmd_restbuf(aco) + aco_save_T *aco; /* structure holding saved values */ + { +! --curbuf->b_nwindows; +! curbuf = aco->save_curbuf; + curwin->w_buffer = curbuf; ++ ++curbuf->b_nwindows; + } + + #endif /* FEAT_AUTOCMD */ +*** ../vim-7.2.202/src/globals.h 2009-06-16 15:23:07.000000000 +0200 +--- src/globals.h 2009-06-12 21:10:30.000000000 +0200 +*************** +*** 539,544 **** +--- 539,548 ---- + + EXTERN win_T *curwin; /* currently active window */ + ++ #ifdef FEAT_AUTOCMD ++ EXTERN win_T *aucmd_win; /* window used in aucmd_prepbuf() */ ++ #endif ++ + /* + * The window layout is kept in a tree of frames. topframe points to the top + * of the tree. +*** ../vim-7.2.202/src/gui.c 2009-05-21 23:25:38.000000000 +0200 +--- src/gui.c 2009-06-11 20:58:05.000000000 +0200 +*************** +*** 3879,3884 **** +--- 3879,3899 ---- + * Scrollbar stuff: + */ + ++ /* ++ * Called when something in the window layout has changed. ++ */ ++ void ++ gui_may_update_scrollbars() ++ { ++ if (gui.in_use && starting == 0) ++ { ++ out_flush(); ++ gui_init_which_components(NULL); ++ gui_update_scrollbars(TRUE); ++ } ++ need_mouse_correct = TRUE; ++ } ++ + void + gui_update_scrollbars(force) + int force; /* Force all scrollbars to get updated */ +*** ../vim-7.2.202/src/if_perl.xs 2008-12-03 13:18:16.000000000 +0100 +--- src/if_perl.xs 2009-06-03 17:52:51.000000000 +0200 +*************** +*** 1234,1240 **** + { + ml_delete(lnum, 0); + deleted_lines_mark(lnum, 1L); +! if (aco.save_buf == curbuf) + check_cursor(); + } + +--- 1236,1242 ---- + { + ml_delete(lnum, 0); + deleted_lines_mark(lnum, 1L); +! if (aco.save_curbuf == curbuf) + check_cursor(); + } + +*** ../vim-7.2.202/src/proto/gui.pro 2007-05-05 19:42:19.000000000 +0200 +--- src/proto/gui.pro 2009-06-11 20:58:08.000000000 +0200 +*************** +*** 43,48 **** +--- 43,49 ---- + void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp)); + scrollbar_T *gui_find_scrollbar __ARGS((long ident)); + void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging)); ++ void gui_may_update_scrollbars __ARGS((void)); + void gui_update_scrollbars __ARGS((int force)); + int gui_do_scroll __ARGS((void)); + int gui_do_horiz_scroll __ARGS((void)); +*** ../vim-7.2.202/src/proto/window.pro 2007-07-26 22:57:45.000000000 +0200 +--- src/proto/window.pro 2009-06-10 21:20:39.000000000 +0200 +*************** +*** 1,6 **** +--- 1,7 ---- + /* window.c */ + void do_window __ARGS((int nchar, long Prenum, int xchar)); + int win_split __ARGS((int size, int flags)); ++ int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir)); + int win_valid __ARGS((win_T *win)); + int win_count __ARGS((void)); + int make_windows __ARGS((int count, int vertical)); +*************** +*** 10,18 **** +--- 11,21 ---- + void win_close __ARGS((win_T *win, int free_buf)); + void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp)); + void win_free_all __ARGS((void)); ++ win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp)); + void close_others __ARGS((int message, int forceit)); + void curwin_init __ARGS((void)); + int win_alloc_first __ARGS((void)); ++ void win_alloc_aucmd_win __ARGS((void)); + void win_init_size __ARGS((void)); + void free_tabpage __ARGS((tabpage_T *tp)); + int win_new_tabpage __ARGS((int after)); +*************** +*** 30,35 **** +--- 33,40 ---- + void win_enter __ARGS((win_T *wp, int undo_sync)); + win_T *buf_jump_open_win __ARGS((buf_T *buf)); + win_T *buf_jump_open_tab __ARGS((buf_T *buf)); ++ void win_append __ARGS((win_T *after, win_T *wp)); ++ void win_remove __ARGS((win_T *wp, tabpage_T *tp)); + int win_alloc_lines __ARGS((win_T *wp)); + void win_free_lsize __ARGS((win_T *wp)); + void shell_new_rows __ARGS((void)); +*************** +*** 58,63 **** +--- 63,70 ---- + int min_rows __ARGS((void)); + int only_one_window __ARGS((void)); + void check_lnums __ARGS((int do_curwin)); ++ void make_snapshot __ARGS((int idx)); ++ void restore_snapshot __ARGS((int idx, int close_curwin)); + int win_hasvertsplit __ARGS((void)); + int match_add __ARGS((win_T *wp, char_u *grp, char_u *pat, int prio, int id)); + int match_delete __ARGS((win_T *wp, int id, int perr)); +*** ../vim-7.2.202/src/screen.c 2009-05-17 13:30:58.000000000 +0200 +--- src/screen.c 2009-06-10 16:41:45.000000000 +0200 +*************** +*** 7495,7500 **** +--- 7495,7504 ---- + #endif + } + } ++ #ifdef FEAT_AUTOCMD ++ if (aucmd_win != NULL && win_alloc_lines(aucmd_win) == FAIL) ++ outofmem = TRUE; ++ #endif + #ifdef FEAT_WINDOWS + give_up: + #endif +*** ../vim-7.2.202/src/structs.h 2009-05-16 16:36:25.000000000 +0200 +--- src/structs.h 2009-06-13 12:51:56.000000000 +0200 +*************** +*** 1621,1626 **** +--- 1621,1634 ---- + }; + #endif + ++ #define SNAP_HELP_IDX 0 ++ #ifdef FEAT_AUTOCMD ++ # define SNAP_AUCMD_IDX 1 ++ # define SNAP_COUNT 2 ++ #else ++ # define SNAP_COUNT 1 ++ #endif ++ + /* + * Tab pages point to the top frame of each tab page. + * Note: Most values are NOT valid for the current tab page! Use "curwin", +*************** +*** 1649,1655 **** + buf_T *(tp_diffbuf[DB_COUNT]); + int tp_diff_invalid; /* list of diffs is outdated */ + #endif +! frame_T *tp_snapshot; /* window layout snapshot */ + #ifdef FEAT_EVAL + dictitem_T tp_winvar; /* variable for "t:" Dictionary */ + dict_T tp_vars; /* internal variables, local to tab page */ +--- 1657,1663 ---- + buf_T *(tp_diffbuf[DB_COUNT]); + int tp_diff_invalid; /* list of diffs is outdated */ + #endif +! frame_T *(tp_snapshot[SNAP_COUNT]); /* window layout snapshots */ + #ifdef FEAT_EVAL + dictitem_T tp_winvar; /* variable for "t:" Dictionary */ + dict_T tp_vars; /* internal variables, local to tab page */ +*************** +*** 2276,2291 **** + */ + typedef struct + { +! buf_T *save_buf; /* saved curbuf */ + #ifdef FEAT_AUTOCMD +! buf_T *new_curbuf; /* buffer to be used */ +! win_T *save_curwin; /* saved curwin, NULL if it didn't change */ +! win_T *new_curwin; /* new curwin if save_curwin != NULL */ +! pos_T save_cursor; /* saved cursor pos of save_curwin */ +! linenr_T save_topline; /* saved topline of save_curwin */ +! # ifdef FEAT_DIFF +! int save_topfill; /* saved topfill of save_curwin */ +! # endif + #endif + } aco_save_T; + +--- 2284,2294 ---- + */ + typedef struct + { +! buf_T *save_curbuf; /* saved curbuf */ + #ifdef FEAT_AUTOCMD +! win_T *save_curwin; /* saved curwin */ +! win_T *new_curwin; /* new curwin */ +! buf_T *new_curbuf; /* new curbuf */ + #endif + } aco_save_T; + +*** ../vim-7.2.202/src/window.c 2009-05-21 23:25:38.000000000 +0200 +--- src/window.c 2009-06-12 22:29:33.000000000 +0200 +*************** +*** 11,18 **** + + static int path_is_url __ARGS((char_u *p)); + #if defined(FEAT_WINDOWS) || defined(PROTO) +- static int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir)); + static void win_init __ARGS((win_T *newp, win_T *oldp, int flags)); + static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col)); + static void frame_setheight __ARGS((frame_T *curfrp, int height)); + #ifdef FEAT_VERTSPLIT +--- 11,18 ---- + + static int path_is_url __ARGS((char_u *p)); + #if defined(FEAT_WINDOWS) || defined(PROTO) + static void win_init __ARGS((win_T *newp, win_T *oldp, int flags)); ++ static void win_init_some __ARGS((win_T *newp, win_T *oldp)); + static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col)); + static void frame_setheight __ARGS((frame_T *curfrp, int height)); + #ifdef FEAT_VERTSPLIT +*************** +*** 23,30 **** + static void win_totop __ARGS((int size, int flags)); + static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height)); + static int last_window __ARGS((void)); + static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp)); +- static win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp)); + static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp)); + static tabpage_T *alt_tabpage __ARGS((void)); + static win_T *frame2win __ARGS((frame_T *frp)); +--- 23,30 ---- + static void win_totop __ARGS((int size, int flags)); + static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height)); + static int last_window __ARGS((void)); ++ static int one_window __ARGS((void)); + static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp)); + static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp)); + static tabpage_T *alt_tabpage __ARGS((void)); + static win_T *frame2win __ARGS((frame_T *frp)); +*************** +*** 41,46 **** +--- 41,47 ---- + #endif + #endif + static int win_alloc_firstwin __ARGS((win_T *oldwin)); ++ static void new_frame __ARGS((win_T *wp)); + #if defined(FEAT_WINDOWS) || defined(PROTO) + static tabpage_T *alloc_tabpage __ARGS((void)); + static int leave_tabpage __ARGS((buf_T *new_curbuf)); +*************** +*** 49,56 **** + static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin)); + static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin)); + static void win_free __ARGS((win_T *wp, tabpage_T *tp)); +- static void win_append __ARGS((win_T *, win_T *)); +- static void win_remove __ARGS((win_T *, tabpage_T *tp)); + static void frame_append __ARGS((frame_T *after, frame_T *frp)); + static void frame_insert __ARGS((frame_T *before, frame_T *frp)); + static void frame_remove __ARGS((frame_T *frp)); +--- 50,55 ---- +*************** +*** 62,78 **** + static void frame_add_height __ARGS((frame_T *frp, int n)); + static void last_status_rec __ARGS((frame_T *fr, int statusline)); + +- static void make_snapshot __ARGS((void)); + static void make_snapshot_rec __ARGS((frame_T *fr, frame_T **frp)); +! static void clear_snapshot __ARGS((tabpage_T *tp)); + static void clear_snapshot_rec __ARGS((frame_T *fr)); +- static void restore_snapshot __ARGS((int close_curwin)); + static int check_snapshot_rec __ARGS((frame_T *sn, frame_T *fr)); + static win_T *restore_snapshot_rec __ARGS((frame_T *sn, frame_T *fr)); + + #endif /* FEAT_WINDOWS */ + +! static win_T *win_alloc __ARGS((win_T *after)); + static void win_new_height __ARGS((win_T *, int)); + + #define URL_SLASH 1 /* path_is_url() has found "://" */ +--- 61,75 ---- + static void frame_add_height __ARGS((frame_T *frp, int n)); + static void last_status_rec __ARGS((frame_T *fr, int statusline)); + + static void make_snapshot_rec __ARGS((frame_T *fr, frame_T **frp)); +! static void clear_snapshot __ARGS((tabpage_T *tp, int idx)); + static void clear_snapshot_rec __ARGS((frame_T *fr)); + static int check_snapshot_rec __ARGS((frame_T *sn, frame_T *fr)); + static win_T *restore_snapshot_rec __ARGS((frame_T *sn, frame_T *fr)); + + #endif /* FEAT_WINDOWS */ + +! static win_T *win_alloc __ARGS((win_T *after, int hidden)); + static void win_new_height __ARGS((win_T *, int)); + + #define URL_SLASH 1 /* path_is_url() has found "://" */ +*************** +*** 259,265 **** + /* cursor to previous window with wrap around */ + case 'W': + CHECK_CMDWIN +! if (lastwin == firstwin && Prenum != 1) /* just one window */ + beep_flush(); + else + { +--- 256,262 ---- + /* cursor to previous window with wrap around */ + case 'W': + CHECK_CMDWIN +! if (firstwin == lastwin && Prenum != 1) /* just one window */ + beep_flush(); + else + { +*************** +*** 343,349 **** + + /* move window to new tab page */ + case 'T': +! if (firstwin == lastwin) + MSG(_(m_onlyone)); + else + { +--- 340,346 ---- + + /* move window to new tab page */ + case 'T': +! if (one_window()) + MSG(_(m_onlyone)); + else + { +*************** +*** 679,687 **** + /* When creating the help window make a snapshot of the window layout. + * Otherwise clear the snapshot, it's now invalid. */ + if (flags & WSP_HELP) +! make_snapshot(); + else +! clear_snapshot(curtab); + + return win_split_ins(size, flags, NULL, 0); + } +--- 676,684 ---- + /* When creating the help window make a snapshot of the window layout. + * Otherwise clear the snapshot, it's now invalid. */ + if (flags & WSP_HELP) +! make_snapshot(SNAP_HELP_IDX); + else +! clear_snapshot(curtab, SNAP_HELP_IDX); + + return win_split_ins(size, flags, NULL, 0); + } +*************** +*** 692,698 **** + * top/left/right/bottom. + * return FAIL for failure, OK otherwise + */ +! static int + win_split_ins(size, flags, newwin, dir) + int size; + int flags; +--- 689,695 ---- + * top/left/right/bottom. + * return FAIL for failure, OK otherwise + */ +! int + win_split_ins(size, flags, newwin, dir) + int size; + int flags; +*************** +*** 893,906 **** + { + /* new window below/right of current one */ + if (newwin == NULL) +! wp = win_alloc(oldwin); + else + win_append(oldwin, wp); + } + else + { + if (newwin == NULL) +! wp = win_alloc(oldwin->w_prev); + else + win_append(oldwin->w_prev, wp); + } +--- 890,903 ---- + { + /* new window below/right of current one */ + if (newwin == NULL) +! wp = win_alloc(oldwin, FALSE); + else + win_append(oldwin, wp); + } + else + { + if (newwin == NULL) +! wp = win_alloc(oldwin->w_prev, FALSE); + else + win_append(oldwin->w_prev, wp); + } +*************** +*** 910,915 **** +--- 907,919 ---- + if (wp == NULL) + return FAIL; + ++ new_frame(wp); ++ if (wp->w_frame == NULL) ++ { ++ win_free(wp, NULL); ++ return FAIL; ++ } ++ + /* make the contents of the new window the same as the current one */ + win_init(wp, curwin, flags); + } +*************** +*** 970,982 **** + } + + if (newwin == NULL) +! { +! /* Create a frame for the new window. */ +! frp = (frame_T *)alloc_clear((unsigned)sizeof(frame_T)); +! frp->fr_layout = FR_LEAF; +! frp->fr_win = wp; +! wp->w_frame = frp; +! } + else + frp = newwin->w_frame; + frp->fr_parent = curfrp->fr_parent; +--- 974,980 ---- + } + + if (newwin == NULL) +! frp = wp->w_frame; + else + frp = newwin->w_frame; + frp->fr_parent = curfrp->fr_parent; +*************** +*** 1156,1161 **** +--- 1154,1160 ---- + return OK; + } + ++ + /* + * Initialize window "newp" from window "oldp". + * Used when splitting a window and when creating a new tab page. +*************** +*** 1204,1217 **** + if (oldp->w_localdir != NULL) + newp->w_localdir = vim_strsave(oldp->w_localdir); + +! /* Use the same argument list. */ +! newp->w_alist = oldp->w_alist; +! ++newp->w_alist->al_refcount; +! newp->w_arg_idx = oldp->w_arg_idx; +! +! /* +! * copy tagstack and options from existing window +! */ + for (i = 0; i < oldp->w_tagstacklen; i++) + { + newp->w_tagstack[i] = oldp->w_tagstack[i]; +--- 1203,1209 ---- + if (oldp->w_localdir != NULL) + newp->w_localdir = vim_strsave(oldp->w_localdir); + +! /* copy tagstack and folds */ + for (i = 0; i < oldp->w_tagstacklen; i++) + { + newp->w_tagstack[i] = oldp->w_tagstack[i]; +*************** +*** 1221,1230 **** + } + newp->w_tagstackidx = oldp->w_tagstackidx; + newp->w_tagstacklen = oldp->w_tagstacklen; +- win_copy_options(oldp, newp); + # ifdef FEAT_FOLDING + copyFoldingState(oldp, newp); + # endif + } + + #endif /* FEAT_WINDOWS */ +--- 1213,1241 ---- + } + newp->w_tagstackidx = oldp->w_tagstackidx; + newp->w_tagstacklen = oldp->w_tagstacklen; + # ifdef FEAT_FOLDING + copyFoldingState(oldp, newp); + # endif ++ ++ win_init_some(newp, oldp); ++ } ++ ++ /* ++ * Initialize window "newp" from window"old". ++ * Only the essential things are copied. ++ */ ++ static void ++ win_init_some(newp, oldp) ++ win_T *newp; ++ win_T *oldp; ++ { ++ /* Use the same argument list. */ ++ newp->w_alist = oldp->w_alist; ++ ++newp->w_alist->al_refcount; ++ newp->w_arg_idx = oldp->w_arg_idx; ++ ++ /* copy options from existing window */ ++ win_copy_options(oldp, newp); + } + + #endif /* FEAT_WINDOWS */ +*************** +*** 1565,1579 **** + #if defined(FEAT_GUI) && defined(FEAT_VERTSPLIT) + /* When 'guioptions' includes 'L' or 'R' may have to remove or add + * scrollbars. Have to update them anyway. */ +! if (gui.in_use) +! { +! out_flush(); +! gui_init_which_components(NULL); +! gui_update_scrollbars(TRUE); +! } +! need_mouse_correct = TRUE; + #endif +- + } + + /* +--- 1576,1583 ---- + #if defined(FEAT_GUI) && defined(FEAT_VERTSPLIT) + /* When 'guioptions' includes 'L' or 'R' may have to remove or add + * scrollbars. Have to update them anyway. */ +! gui_may_update_scrollbars(); + #endif + } + + /* +*************** +*** 2048,2060 **** + } + + /* +! * Return TRUE if the current window is the only window that exists. + * Returns FALSE if there is a window, possibly in another tab page. + */ + static int + last_window() + { +! return (lastwin == firstwin && first_tabpage->tp_next == NULL); + } + + /* +--- 2052,2091 ---- + } + + /* +! * Return TRUE if the current window is the only window that exists (ignoring +! * "aucmd_win"). + * Returns FALSE if there is a window, possibly in another tab page. + */ + static int + last_window() + { +! return (one_window() && first_tabpage->tp_next == NULL); +! } +! +! /* +! * Return TRUE if there is only one window other than "aucmd_win" in the +! * current tab page. +! */ +! static int +! one_window() +! { +! #ifdef FEAT_AUTOCMD +! win_T *wp; +! int seen_one = FALSE; +! +! FOR_ALL_WINDOWS(wp) +! { +! if (wp != aucmd_win) +! { +! if (seen_one) +! return FALSE; +! seen_one = TRUE; +! } +! } +! return TRUE; +! #else +! return firstwin == lastwin; +! #endif + } + + /* +*************** +*** 2083,2088 **** +--- 2114,2132 ---- + return; + } + ++ #ifdef FEAT_AUTOCMD ++ if (win == aucmd_win) ++ { ++ EMSG(_("E813: Cannot close autocmd window")); ++ return; ++ } ++ if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window()) ++ { ++ EMSG(_("E814: Cannot close window, only autocmd window would remain")); ++ return; ++ } ++ #endif ++ + /* + * When closing the last window in a tab page first go to another tab + * page and then close the window and the tab page. This avoids that +*************** +*** 2112,2118 **** + if (win->w_buffer->b_help) + help_window = TRUE; + else +! clear_snapshot(curtab); + + #ifdef FEAT_AUTOCMD + if (win == curwin) +--- 2156,2162 ---- + if (win->w_buffer->b_help) + help_window = TRUE; + else +! clear_snapshot(curtab, SNAP_HELP_IDX); + + #ifdef FEAT_AUTOCMD + if (win == curwin) +*************** +*** 2229,2235 **** + /* After closing the help window, try restoring the window layout from + * before it was opened. */ + if (help_window) +! restore_snapshot(close_curwin); + + #if defined(FEAT_GUI) && defined(FEAT_VERTSPLIT) + /* When 'guioptions' includes 'L' or 'R' may have to remove scrollbars. */ +--- 2273,2279 ---- + /* After closing the help window, try restoring the window layout from + * before it was opened. */ + if (help_window) +! restore_snapshot(SNAP_HELP_IDX, close_curwin); + + #if defined(FEAT_GUI) && defined(FEAT_VERTSPLIT) + /* When 'guioptions' includes 'L' or 'R' may have to remove scrollbars. */ +*************** +*** 2344,2349 **** +--- 2388,2401 ---- + + while (firstwin != NULL) + (void)win_free_mem(firstwin, &dummy, NULL); ++ ++ # ifdef FEAT_AUTOCMD ++ if (aucmd_win != NULL) ++ { ++ (void)win_free_mem(aucmd_win, &dummy, NULL); ++ aucmd_win = NULL; ++ } ++ # endif + } + #endif + +*************** +*** 2351,2357 **** + * Remove a window and its frame from the tree of frames. + * Returns a pointer to the window that got the freed up space. + */ +! static win_T * + winframe_remove(win, dirp, tp) + win_T *win; + int *dirp UNUSED; /* set to 'v' or 'h' for direction if 'ea' */ +--- 2403,2409 ---- + * Remove a window and its frame from the tree of frames. + * Returns a pointer to the window that got the freed up space. + */ +! win_T * + winframe_remove(win, dirp, tp) + win_T *win; + int *dirp UNUSED; /* set to 'v' or 'h' for direction if 'ea' */ +*************** +*** 3090,3096 **** + win_T *nextwp; + int r; + +! if (lastwin == firstwin) + { + if (message + #ifdef FEAT_AUTOCMD +--- 3142,3148 ---- + win_T *nextwp; + int r; + +! if (one_window()) + { + if (message + #ifdef FEAT_AUTOCMD +*************** +*** 3194,3202 **** +--- 3246,3275 ---- + first_tabpage->tp_topframe = topframe; + curtab = first_tabpage; + #endif ++ + return OK; + } + ++ #if defined(FEAT_AUTOCMD) || defined(PROTO) ++ /* ++ * Init "aucmd_win". This can only be done after the first ++ * window is fully initialized, thus it can't be in win_alloc_first(). ++ */ ++ void ++ win_alloc_aucmd_win() ++ { ++ aucmd_win = win_alloc(NULL, TRUE); ++ if (aucmd_win != NULL) ++ { ++ win_init_some(aucmd_win, curwin); ++ # ifdef FEAT_SCROLLBIND ++ aucmd_win->w_p_scb = FALSE; ++ # endif ++ new_frame(aucmd_win); ++ } ++ } ++ #endif ++ + /* + * Allocate the first window or the first window in a new tab page. + * When "oldwin" is NULL create an empty buffer for it. +*************** +*** 3208,3214 **** + win_alloc_firstwin(oldwin) + win_T *oldwin; + { +! curwin = win_alloc(NULL); + if (oldwin == NULL) + { + /* Very first window, need to create an empty buffer for it and +--- 3281,3287 ---- + win_alloc_firstwin(oldwin) + win_T *oldwin; + { +! curwin = win_alloc(NULL, FALSE); + if (oldwin == NULL) + { + /* Very first window, need to create an empty buffer for it and +*************** +*** 3236,3256 **** + } + #endif + +! topframe = (frame_T *)alloc_clear((unsigned)sizeof(frame_T)); +! if (topframe == NULL) + return FAIL; +! topframe->fr_layout = FR_LEAF; + #ifdef FEAT_VERTSPLIT + topframe->fr_width = Columns; + #endif + topframe->fr_height = Rows - p_ch; + topframe->fr_win = curwin; +- curwin->w_frame = topframe; + + return OK; + } + + /* + * Initialize the window and frame size to the maximum. + */ + void +--- 3309,3344 ---- + } + #endif + +! new_frame(curwin); +! if (curwin->w_frame == NULL) + return FAIL; +! topframe = curwin->w_frame; + #ifdef FEAT_VERTSPLIT + topframe->fr_width = Columns; + #endif + topframe->fr_height = Rows - p_ch; + topframe->fr_win = curwin; + + return OK; + } + + /* ++ * Create a frame for window "wp". ++ */ ++ static void ++ new_frame(win_T *wp) ++ { ++ frame_T *frp = (frame_T *)alloc_clear((unsigned)sizeof(frame_T)); ++ ++ wp->w_frame = frp; ++ if (frp != NULL) ++ { ++ frp->fr_layout = FR_LEAF; ++ frp->fr_win = wp; ++ } ++ } ++ ++ /* + * Initialize the window and frame size to the maximum. + */ + void +*************** +*** 3300,3309 **** + free_tabpage(tp) + tabpage_T *tp; + { + # ifdef FEAT_DIFF + diff_clear(tp); + # endif +! clear_snapshot(tp); + #ifdef FEAT_EVAL + vars_clear(&tp->tp_vars.dv_hashtab); /* free all t: variables */ + #endif +--- 3388,3400 ---- + free_tabpage(tp) + tabpage_T *tp; + { ++ int idx; ++ + # ifdef FEAT_DIFF + diff_clear(tp); + # endif +! for (idx = 0; idx < SNAP_COUNT; ++idx) +! clear_snapshot(tp, idx); + #ifdef FEAT_EVAL + vars_clear(&tp->tp_vars.dv_hashtab); /* free all t: variables */ + #endif +*************** +*** 3370,3381 **** + #if defined(FEAT_GUI) + /* When 'guioptions' includes 'L' or 'R' may have to remove or add + * scrollbars. Have to update them anyway. */ +! if (gui.in_use && starting == 0) +! { +! gui_init_which_components(NULL); +! gui_update_scrollbars(TRUE); +! } +! need_mouse_correct = TRUE; + #endif + + redraw_all_later(CLEAR); +--- 3461,3467 ---- + #if defined(FEAT_GUI) + /* When 'guioptions' includes 'L' or 'R' may have to remove or add + * scrollbars. Have to update them anyway. */ +! gui_may_update_scrollbars(); + #endif + + redraw_all_later(CLEAR); +*************** +*** 3593,3604 **** + #if defined(FEAT_GUI) + /* When 'guioptions' includes 'L' or 'R' may have to remove or add + * scrollbars. Have to update them anyway. */ +! if (gui.in_use && starting == 0) +! { +! gui_init_which_components(NULL); +! gui_update_scrollbars(TRUE); +! } +! need_mouse_correct = TRUE; + #endif + + redraw_all_later(CLEAR); +--- 3679,3685 ---- + #if defined(FEAT_GUI) + /* When 'guioptions' includes 'L' or 'R' may have to remove or add + * scrollbars. Have to update them anyway. */ +! gui_may_update_scrollbars(); + #endif + + redraw_all_later(CLEAR); +*************** +*** 4150,4160 **** + #endif + + /* +! * allocate a window structure and link it in the window list + */ + static win_T * +! win_alloc(after) + win_T *after UNUSED; + { + win_T *newwin; + +--- 4231,4243 ---- + #endif + + /* +! * Allocate a window structure and link it in the window list when "hidden" is +! * FALSE. + */ + static win_T * +! win_alloc(after, hidden) + win_T *after UNUSED; ++ int hidden UNUSED; + { + win_T *newwin; + +*************** +*** 4180,4186 **** + * link the window in the window list + */ + #ifdef FEAT_WINDOWS +! win_append(after, newwin); + #endif + #ifdef FEAT_VERTSPLIT + newwin->w_wincol = 0; +--- 4263,4270 ---- + * link the window in the window list + */ + #ifdef FEAT_WINDOWS +! if (!hidden) +! win_append(after, newwin); + #endif + #ifdef FEAT_VERTSPLIT + newwin->w_wincol = 0; +*************** +*** 4314,4320 **** + /* + * Append window "wp" in the window list after window "after". + */ +! static void + win_append(after, wp) + win_T *after, *wp; + { +--- 4398,4404 ---- + /* + * Append window "wp" in the window list after window "after". + */ +! void + win_append(after, wp) + win_T *after, *wp; + { +*************** +*** 4340,4346 **** + /* + * Remove a window from the window list. + */ +! static void + win_remove(wp, tp) + win_T *wp; + tabpage_T *tp; /* tab page "win" is in, NULL for current */ +--- 4424,4430 ---- + /* + * Remove a window from the window list. + */ +! void + win_remove(wp, tp) + win_T *wp; + tabpage_T *tp; /* tab page "win" is in, NULL for current */ +*************** +*** 6040,6045 **** +--- 6124,6130 ---- + /* + * Return TRUE if there is only one window (in the current tab page), not + * counting a help or preview window, unless it is the current window. ++ * Does not count "aucmd_win". + */ + int + only_one_window() +*************** +*** 6053,6063 **** + return FALSE; + + for (wp = firstwin; wp != NULL; wp = wp->w_next) +! if (!((wp->w_buffer->b_help && !curbuf->b_help) + # ifdef FEAT_QUICKFIX + || wp->w_p_pvw + # endif + ) || wp == curwin) + ++count; + return (count <= 1); + #else +--- 6138,6152 ---- + return FALSE; + + for (wp = firstwin; wp != NULL; wp = wp->w_next) +! if ((!((wp->w_buffer->b_help && !curbuf->b_help) + # ifdef FEAT_QUICKFIX + || wp->w_p_pvw + # endif + ) || wp == curwin) ++ # ifdef FEAT_AUTOCMD ++ && wp != aucmd_win ++ # endif ++ ) + ++count; + return (count <= 1); + #else +*************** +*** 6112,6122 **** + /* + * Create a snapshot of the current frame sizes. + */ +! static void +! make_snapshot() + { +! clear_snapshot(curtab); +! make_snapshot_rec(topframe, &curtab->tp_snapshot); + } + + static void +--- 6201,6212 ---- + /* + * Create a snapshot of the current frame sizes. + */ +! void +! make_snapshot(idx) +! int idx; + { +! clear_snapshot(curtab, idx); +! make_snapshot_rec(topframe, &curtab->tp_snapshot[idx]); + } + + static void +*************** +*** 6144,6154 **** + * Remove any existing snapshot. + */ + static void +! clear_snapshot(tp) + tabpage_T *tp; + { +! clear_snapshot_rec(tp->tp_snapshot); +! tp->tp_snapshot = NULL; + } + + static void +--- 6234,6245 ---- + * Remove any existing snapshot. + */ + static void +! clear_snapshot(tp, idx) + tabpage_T *tp; ++ int idx; + { +! clear_snapshot_rec(tp->tp_snapshot[idx]); +! tp->tp_snapshot[idx] = NULL; + } + + static void +*************** +*** 6168,6193 **** + * This is only done if the screen size didn't change and the window layout is + * still the same. + */ +! static void +! restore_snapshot(close_curwin) + int close_curwin; /* closing current window */ + { + win_T *wp; + +! if (curtab->tp_snapshot != NULL + # ifdef FEAT_VERTSPLIT +! && curtab->tp_snapshot->fr_width == topframe->fr_width + # endif +! && curtab->tp_snapshot->fr_height == topframe->fr_height +! && check_snapshot_rec(curtab->tp_snapshot, topframe) == OK) + { +! wp = restore_snapshot_rec(curtab->tp_snapshot, topframe); + win_comp_pos(); + if (wp != NULL && close_curwin) + win_goto(wp); + redraw_all_later(CLEAR); + } +! clear_snapshot(curtab); + } + + /* +--- 6259,6285 ---- + * This is only done if the screen size didn't change and the window layout is + * still the same. + */ +! void +! restore_snapshot(idx, close_curwin) +! int idx; + int close_curwin; /* closing current window */ + { + win_T *wp; + +! if (curtab->tp_snapshot[idx] != NULL + # ifdef FEAT_VERTSPLIT +! && curtab->tp_snapshot[idx]->fr_width == topframe->fr_width + # endif +! && curtab->tp_snapshot[idx]->fr_height == topframe->fr_height +! && check_snapshot_rec(curtab->tp_snapshot[idx], topframe) == OK) + { +! wp = restore_snapshot_rec(curtab->tp_snapshot[idx], topframe); + win_comp_pos(); + if (wp != NULL && close_curwin) + win_goto(wp); + redraw_all_later(CLEAR); + } +! clear_snapshot(curtab, idx); + } + + /* +*** ../vim-7.2.202/src/version.c 2009-06-16 15:35:46.000000000 +0200 +--- src/version.c 2009-06-16 15:37:16.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 203, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +15. Five days in advance, tell your friends you can't attend their + party because you're not in the mood. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.204 b/source/ap/vim/patches/7.2.204 new file mode 100644 index 000000000..ef99c5198 --- /dev/null +++ b/source/ap/vim/patches/7.2.204 @@ -0,0 +1,137 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.204 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.204 (extra) +Problem: Win32: Can't build with Visual Studio 2010 beta 1. +Solution: Fix the makefile. (George Reilly) +Files: src/Make_mvc.mak + + +*** ../vim-7.2.203/src/Make_mvc.mak 2009-05-26 22:58:43.000000000 +0200 +--- src/Make_mvc.mak 2009-06-16 16:27:59.000000000 +0200 +*************** +*** 1,18 **** + # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me) + # and Win64, using the Microsoft Visual C++ compilers. Known to work with + # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005), +! # and VC9 (VS2008). + # + # To build using other Windows compilers, see INSTALLpc.txt + # + # This makefile can build the console, GUI, OLE-enable, Perl-enabled and +! # Python-enabled versions of vim for Win32 platforms. + # +! # The basic command line to build vim is: + # + # nmake -f Make_mvc.mak + # +! # This will build the console version of vim with no additional interfaces. + # To add features, define any of the following: + # + # !!!! After changing features do "nmake clean" first !!!! +--- 1,18 ---- + # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me) + # and Win64, using the Microsoft Visual C++ compilers. Known to work with + # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005), +! # VC9 (VS2008), and VC10 (VS2010). + # + # To build using other Windows compilers, see INSTALLpc.txt + # + # This makefile can build the console, GUI, OLE-enable, Perl-enabled and +! # Python-enabled versions of Vim for Win32 platforms. + # +! # The basic command line to build Vim is: + # + # nmake -f Make_mvc.mak + # +! # This will build the console version of Vim with no additional interfaces. + # To add features, define any of the following: + # + # !!!! After changing features do "nmake clean" first !!!! +*************** +*** 358,363 **** +--- 358,366 ---- + !if "$(_NMAKE_VER)" == "9.00.30729.01" + MSVCVER = 9.0 + !endif ++ !if "$(_NMAKE_VER)" == "10.00.20506.01" ++ MSVCVER = 10.0 ++ !endif + !endif + + # Abort bulding VIM if version of VC is unrecognised. +*************** +*** 372,378 **** + !endif + + # Convert processor ID to MVC-compatible number +! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") + !if "$(CPUNR)" == "i386" + CPUARG = /G3 + !elseif "$(CPUNR)" == "i486" +--- 375,381 ---- + !endif + + # Convert processor ID to MVC-compatible number +! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") + !if "$(CPUNR)" == "i386" + CPUARG = /G3 + !elseif "$(CPUNR)" == "i486" +*************** +*** 405,411 **** + !else # MAXSPEED + OPTFLAG = /Ox + !endif +! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") + # Use link time code generation if not worried about size + !if "$(OPTIMIZE)" != "SPACE" + OPTFLAG = $(OPTFLAG) /GL +--- 408,414 ---- + !else # MAXSPEED + OPTFLAG = /Ox + !endif +! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") + # Use link time code generation if not worried about size + !if "$(OPTIMIZE)" != "SPACE" + OPTFLAG = $(OPTFLAG) /GL +*************** +*** 793,799 **** + + # Report link time code generation progress if used. + !ifdef NODEBUG +! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") + !if "$(OPTIMIZE)" != "SPACE" + LINKARGS1 = $(LINKARGS1) /LTCG:STATUS + !endif +--- 796,802 ---- + + # Report link time code generation progress if used. + !ifdef NODEBUG +! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") + !if "$(OPTIMIZE)" != "SPACE" + LINKARGS1 = $(LINKARGS1) /LTCG:STATUS + !endif +*** ../vim-7.2.203/src/version.c 2009-06-16 16:01:34.000000000 +0200 +--- src/version.c 2009-06-16 16:32:41.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 204, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +16. Have your coworkers address you by your wrestling name, Rock Hard Kim. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.205 b/source/ap/vim/patches/7.2.205 new file mode 100644 index 000000000..2af506782 --- /dev/null +++ b/source/ap/vim/patches/7.2.205 @@ -0,0 +1,81 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.205 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.205 (extra) +Problem: Win32: No support for High DPI awarenes. +Solution: Fix the manifest file. (George Reilly) +Files: src/Make_mvc.mak, src/gvim.exe.mnf + + +*** ../vim-7.2.204/src/Make_mvc.mak 2009-06-16 16:34:12.000000000 +0200 +--- src/Make_mvc.mak 2009-06-16 16:36:32.000000000 +0200 +*************** +*** 1040,1046 **** + $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c + $(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c + +! $(OUTDIR)/vim.res: $(OUTDIR) vim.rc version.h tools.bmp tearoff.bmp \ + vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico + $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc + +--- 1040,1046 ---- + $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c + $(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c + +! $(OUTDIR)/vim.res: $(OUTDIR) vim.rc gvim.exe.mnf version.h tools.bmp tearoff.bmp \ + vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico + $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc + +*** ../vim-7.2.204/src/gvim.exe.mnf 2008-08-09 19:37:29.000000000 +0200 +--- src/gvim.exe.mnf 2009-06-16 16:36:32.000000000 +0200 +*************** +*** 1,5 **** + <?xml version="1.0" encoding="UTF-8" standalone="yes"?> +! <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity + processorArchitecture="*" + version="7.2.0.0" +--- 1,5 ---- + <?xml version="1.0" encoding="UTF-8" standalone="yes"?> +! <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" > + <assemblyIdentity + processorArchitecture="*" + version="7.2.0.0" +*************** +*** 29,32 **** +--- 29,38 ---- + </requestedPrivileges> + </security> + </trustInfo> ++ <!-- Vista High DPI aware --> ++ <asmv3:application> ++ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> ++ <dpiAware>true</dpiAware> ++ </asmv3:windowsSettings> ++ </asmv3:application> + </assembly> +*** ../vim-7.2.204/src/version.c 2009-06-16 16:34:12.000000000 +0200 +--- src/version.c 2009-06-16 16:43:04.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 205, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +17. When the money comes out the ATM, scream "I won!, I won! 3rd + time this week!!!!!" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.206 b/source/ap/vim/patches/7.2.206 new file mode 100644 index 000000000..e16fb7e17 --- /dev/null +++ b/source/ap/vim/patches/7.2.206 @@ -0,0 +1,46 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.206 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.206 +Problem: Win32: Can't build netbeans interface with Visual Studio 2010. +Solution: Undefine ECONNREFUSED. (George Reilly) +Files: src/netbeans.c + + +*** ../vim-7.2.205/src/netbeans.c 2009-05-17 23:25:16.000000000 +0200 +--- src/netbeans.c 2009-06-16 16:39:17.000000000 +0200 +*************** +*** 32,37 **** +--- 32,38 ---- + /* WinSock API is separated from C API, thus we can't use read(), write(), + * errno... */ + # define sock_errno WSAGetLastError() ++ # undef ECONNREFUSED + # define ECONNREFUSED WSAECONNREFUSED + # ifdef EINTR + # undef EINTR +*** ../vim-7.2.205/src/version.c 2009-06-16 16:45:14.000000000 +0200 +--- src/version.c 2009-06-16 16:57:45.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 206, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +18. When leaving the zoo, start running towards the parking lot, + yelling "run for your lives, they're loose!!" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.207 b/source/ap/vim/patches/7.2.207 new file mode 100644 index 000000000..528d35da4 --- /dev/null +++ b/source/ap/vim/patches/7.2.207 @@ -0,0 +1,69 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.207 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.207 +Problem: Using freed memory with ":redrawstatus" when it works recursively. +Solution: Prevent recursively updating the status line. (partly by Dominique + Pelle) +Files: src/screen.c + + +*** ../vim-7.2.206/src/screen.c 2009-06-16 16:01:34.000000000 +0200 +--- src/screen.c 2009-06-16 17:04:53.000000000 +0200 +*************** +*** 5743,5748 **** +--- 5743,5755 ---- + int fillchar; + int attr; + int this_ru_col; ++ static int busy = FALSE; ++ ++ /* It's possible to get here recursively when 'statusline' (indirectly) ++ * invokes ":redrawstatus". Simply ignore the call then. */ ++ if (busy) ++ return; ++ busy = TRUE; + + wp->w_redr_status = FALSE; + if (wp->w_status_height == 0) +*************** +*** 5881,5886 **** +--- 5888,5894 ---- + attr); + } + #endif ++ busy = FALSE; + } + + #ifdef FEAT_STL_OPT +*** ../vim-7.2.206/src/version.c 2009-06-16 16:57:53.000000000 +0200 +--- src/version.c 2009-06-16 17:21:56.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 207, + /**/ + +-- +In many of the more relaxed civilizations on the Outer Eastern Rim of the +Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the +great "Encyclopedia Galactica" as the standard repository of all knowledge +and wisdom, for though it has many omissions and contains much that is +apocryphal, or at least wildly inaccurate, it scores over the older, more +pedestrian work in two important respects. +First, it is slightly cheaper; and second, it has the words "DON'T PANIC" +inscribed in large friendly letters on its cover. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.208 b/source/ap/vim/patches/7.2.208 new file mode 100644 index 000000000..930770d0d --- /dev/null +++ b/source/ap/vim/patches/7.2.208 @@ -0,0 +1,82 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.208 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.208 +Problem: "set novice" gives an error message, it should be ignored. +Solution: Don't see "no" in "novice" as unsetting an option. (Patrick + Texier) +Files: src/option.c + + +*** ../vim-7.2.207/src/option.c 2009-06-16 15:23:07.000000000 +0200 +--- src/option.c 2009-06-16 17:35:08.000000000 +0200 +*************** +*** 4006,4012 **** + else + { + prefix = 1; +! if (STRNCMP(arg, "no", 2) == 0) + { + prefix = 0; + arg += 2; +--- 4006,4012 ---- + else + { + prefix = 1; +! if (STRNCMP(arg, "no", 2) == 0 && STRNCMP(arg, "novice", 6) != 0) + { + prefix = 0; + arg += 2; +*************** +*** 9757,9763 **** + } + --p; + } +! if (STRNCMP(p, "no", 2) == 0) + { + xp->xp_context = EXPAND_BOOL_SETTINGS; + p += 2; +--- 9757,9763 ---- + } + --p; + } +! if (STRNCMP(p, "no", 2) == 0 && STRNCMP(p, "novice", 6) != 0) + { + xp->xp_context = EXPAND_BOOL_SETTINGS; + p += 2; +*** ../vim-7.2.207/src/version.c 2009-06-16 17:22:38.000000000 +0200 +--- src/version.c 2009-06-16 17:50:33.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 208, + /**/ + +-- +Now it is such a bizarrely improbable coincidence that anything as +mind-bogglingly useful as the Babel fish could have evolved purely by chance +that some thinkers have chosen to see it as a final and clinching proof of the +NON-existence of God. +The argument goes something like this: 'I refuse to prove that I exist,' says +God, 'for proof denies faith, and without faith I am nothing.' +'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not +have evolved by chance. It proves you exist, and so therefore, by your own +arguments, you don't. QED.' +'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a +puff of logic. +'Oh, that was easy,' says Man, and for an encore goes on to prove that black +is white and gets himself killed on the next pedestrian crossing. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.209 b/source/ap/vim/patches/7.2.209 new file mode 100644 index 000000000..1cc339357 --- /dev/null +++ b/source/ap/vim/patches/7.2.209 @@ -0,0 +1,82 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.209 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.209 +Problem: For xxd setmode() is undefined on Cygwin. +Solution: Include io.h. (Dominique Pelle) +Files: src/xxd/xxd.c + + +*** ../vim-7.2.208/src/xxd/xxd.c 2007-12-03 21:32:21.000000000 +0100 +--- src/xxd/xxd.c 2009-06-16 18:03:14.000000000 +0200 +*************** +*** 64,69 **** +--- 64,72 ---- + # define _CRT_SECURE_NO_DEPRECATE + # define _CRT_NONSTDC_NO_DEPRECATE + #endif ++ #if !defined(CYGWIN) && (defined(CYGWIN32) || defined(__CYGWIN__) || defined(__CYGWIN32__)) ++ # define CYGWIN ++ #endif + + #include <stdio.h> + #ifdef VAXC +*************** +*** 77,83 **** + #if !defined(OS2) && defined(__EMX__) + # define OS2 + #endif +! #if defined(MSDOS) || defined(WIN32) || defined(OS2) || defined(__BORLANDC__) + # include <io.h> /* for setmode() */ + #else + # ifdef UNIX +--- 80,87 ---- + #if !defined(OS2) && defined(__EMX__) + # define OS2 + #endif +! #if defined(MSDOS) || defined(WIN32) || defined(OS2) || defined(__BORLANDC__) \ +! || defined(CYGWIN) + # include <io.h> /* for setmode() */ + #else + # ifdef UNIX +*************** +*** 150,158 **** + # endif + #endif + +- #if !defined(CYGWIN) && (defined(CYGWIN32) || defined(__CYGWIN__) || defined(__CYGWIN32__)) +- # define CYGWIN +- #endif + #if defined(MSDOS) || defined(WIN32) || defined(OS2) + # define BIN_READ(yes) ((yes) ? "rb" : "rt") + # define BIN_WRITE(yes) ((yes) ? "wb" : "wt") +--- 154,159 ---- +*** ../vim-7.2.208/src/version.c 2009-06-16 17:50:56.000000000 +0200 +--- src/version.c 2009-06-16 18:16:08.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 209, + /**/ + +-- +"So this is it," said Arthur, "we are going to die." +"Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across +the chamber at something behind Arthur's line of vision. "What's this +switch?" he cried. +"What? Where?" cried Arthur, twisting around. +"No, I was only fooling," said Ford, "we are going to die after all." + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.210 b/source/ap/vim/patches/7.2.210 new file mode 100644 index 000000000..9c51a1378 --- /dev/null +++ b/source/ap/vim/patches/7.2.210 @@ -0,0 +1,58 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.210 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.210 +Problem: When a file that is being edited has its timestamp updated outside + of Vim and ":checktime" is used still get a warning when writing + the file. (Matt Mueller) +Solution: Store the timestamp in b_mtime_read when the timestamp is the only + thing that changed. +Files: src/fileio.c + + +*** ../vim-7.2.209/src/fileio.c 2009-06-16 16:01:34.000000000 +0200 +--- src/fileio.c 2009-06-20 13:29:41.000000000 +0200 +*************** +*** 6627,6633 **** + mesg = _("W16: Warning: Mode of file \"%s\" has changed since editing started"); + mesg2 = _("See \":help W16\" for more info."); + } +! /* Else: only timestamp changed, ignored */ + } + } + } +--- 6627,6636 ---- + mesg = _("W16: Warning: Mode of file \"%s\" has changed since editing started"); + mesg2 = _("See \":help W16\" for more info."); + } +! else +! /* Only timestamp changed, store it to avoid a warning +! * in check_mtime() later. */ +! buf->b_mtime_read = buf->b_mtime; + } + } + } +*** ../vim-7.2.209/src/version.c 2009-06-16 18:29:37.000000000 +0200 +--- src/version.c 2009-06-24 11:57:08.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 210, + /**/ + +-- +Have you heard about the new Beowulf cluster? It's so fast, it executes +an infinite loop in 6 seconds. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.211 b/source/ap/vim/patches/7.2.211 new file mode 100644 index 000000000..05101980b --- /dev/null +++ b/source/ap/vim/patches/7.2.211 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.211 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.211 +Problem: Memory leak when expanding a series of file names. +Solution: Use ga_clear_strings() instead of ga_clear(). +Files: src/misc1.c + + +*** ../vim-7.2.210/src/misc1.c 2009-05-17 13:30:58.000000000 +0200 +--- src/misc1.c 2009-06-24 16:16:17.000000000 +0200 +*************** +*** 9193,9199 **** + else if (vim_strpbrk(p, (char_u *)"$~") != NULL) + { + vim_free(p); +! ga_clear(&ga); + i = mch_expand_wildcards(num_pat, pat, num_file, file, + flags); + recursive = FALSE; +--- 9193,9199 ---- + else if (vim_strpbrk(p, (char_u *)"$~") != NULL) + { + vim_free(p); +! ga_clear_strings(&ga); + i = mch_expand_wildcards(num_pat, pat, num_file, file, + flags); + recursive = FALSE; +*** ../vim-7.2.210/src/version.c 2009-06-24 11:57:53.000000000 +0200 +--- src/version.c 2009-06-24 16:24:32.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 211, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +34. You laugh at people with 14400 baud modems. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.212 b/source/ap/vim/patches/7.2.212 new file mode 100644 index 000000000..33fcb5c43 --- /dev/null +++ b/source/ap/vim/patches/7.2.212 @@ -0,0 +1,62 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.212 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.212 (extra) +Problem: Warnings for redefining SIG macros. +Solution: Don't define them if already defined. (Bjorn Winckler) +Files: src/os_mac.h + + +*** ../vim-7.2.211/src/os_mac.h 2008-06-24 22:27:34.000000000 +0200 +--- src/os_mac.h 2009-06-19 21:21:57.000000000 +0200 +*************** +*** 268,276 **** + */ + + #ifdef MACOS_X_UNIX +! # define SIGPROTOARG (int) +! # define SIGDEFARG(s) (s) int s; +! # define SIGDUMMYARG 0 + # undef HAVE_AVAIL_MEM + # ifndef HAVE_CONFIG_H + # define RETSIGTYPE void +--- 268,282 ---- + */ + + #ifdef MACOS_X_UNIX +! # ifndef SIGPROTOARG +! # define SIGPROTOARG (int) +! # endif +! # ifndef SIGDEFARG +! # define SIGDEFARG(s) (s) int s UNUSED; +! # endif +! # ifndef SIGDUMMYARG +! # define SIGDUMMYARG 0 +! # endif + # undef HAVE_AVAIL_MEM + # ifndef HAVE_CONFIG_H + # define RETSIGTYPE void +*** ../vim-7.2.211/src/version.c 2009-06-24 16:25:23.000000000 +0200 +--- src/version.c 2009-06-24 16:40:18.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 212, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +37. You start looking for hot HTML addresses in public restrooms. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.213 b/source/ap/vim/patches/7.2.213 new file mode 100644 index 000000000..74a0e1650 --- /dev/null +++ b/source/ap/vim/patches/7.2.213 @@ -0,0 +1,53 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.213 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.213 +Problem: Warning for using vsprintf(). +Solution: Use vim_vsnprintf(). +Files: src/netbeans.c + + +*** ../vim-7.2.212/src/netbeans.c 2009-06-16 16:57:53.000000000 +0200 +--- src/netbeans.c 2009-06-24 11:26:43.000000000 +0200 +*************** +*** 2586,2592 **** + va_list ap; + + va_start(ap, cmd); +! vsprintf(buf, cmd, ap); + va_end(ap); + + nbdebug((" COLONCMD %s\n", buf)); +--- 2586,2592 ---- + va_list ap; + + va_start(ap, cmd); +! vim_vsnprintf(buf, sizeof(buf), cmd, ap, NULL); + va_end(ap); + + nbdebug((" COLONCMD %s\n", buf)); +*** ../vim-7.2.212/src/version.c 2009-06-24 16:41:01.000000000 +0200 +--- src/version.c 2009-06-24 16:49:06.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 213, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail + on the way back to bed. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.214 b/source/ap/vim/patches/7.2.214 new file mode 100644 index 000000000..17cb1569c --- /dev/null +++ b/source/ap/vim/patches/7.2.214 @@ -0,0 +1,65 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.214 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.214 +Problem: Crash with complete function for user command. (Andy Wokula) +Solution: Avoid using a NULL pointer (Dominique Pelle) +Files: src/ex_getln.c + + +*** ../vim-7.2.213/src/ex_getln.c 2009-05-16 17:29:37.000000000 +0200 +--- src/ex_getln.c 2009-06-24 16:57:28.000000000 +0200 +*************** +*** 4874,4887 **** + /* Loop over the items in the list. */ + for (li = retlist->lv_first; li != NULL; li = li->li_next) + { +! if (li->li_tv.v_type != VAR_STRING) +! continue; /* Skip non-string items */ + + if (ga_grow(&ga, 1) == FAIL) + break; + + ((char_u **)ga.ga_data)[ga.ga_len] = +! vim_strsave(li->li_tv.vval.v_string); + ++ga.ga_len; + } + list_unref(retlist); +--- 4874,4887 ---- + /* Loop over the items in the list. */ + for (li = retlist->lv_first; li != NULL; li = li->li_next) + { +! if (li->li_tv.v_type != VAR_STRING || li->li_tv.vval.v_string == NULL) +! continue; /* Skip non-string items and empty strings */ + + if (ga_grow(&ga, 1) == FAIL) + break; + + ((char_u **)ga.ga_data)[ga.ga_len] = +! vim_strsave(li->li_tv.vval.v_string); + ++ga.ga_len; + } + list_unref(retlist); +*** ../vim-7.2.213/src/version.c 2009-06-24 16:49:50.000000000 +0200 +--- src/version.c 2009-06-24 17:03:58.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 214, + /**/ + +-- +He who laughs last, thinks slowest. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.215 b/source/ap/vim/patches/7.2.215 new file mode 100644 index 000000000..90e746cea --- /dev/null +++ b/source/ap/vim/patches/7.2.215 @@ -0,0 +1,310 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.215 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.215 +Problem: ml_get error when using ":vimgrep". +Solution: Load the memfile for the hidden buffer before putting it in a + window. Correct the order of splitting the window and filling + the window and buffer with data. +Files: src/fileio.c, src/proto/window.pro, src/quickfix.c, src/window.c + + +*** ../vim-7.2.214/src/fileio.c 2009-06-24 11:57:53.000000000 +0200 +--- src/fileio.c 2009-06-24 12:53:19.000000000 +0200 +*************** +*** 710,716 **** + #endif + #ifdef UNIX + /* Set swap file protection bits after creating it. */ +! if (swap_mode > 0 && curbuf->b_ml.ml_mfp->mf_fname != NULL) + (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode); + #endif + } +--- 710,717 ---- + #endif + #ifdef UNIX + /* Set swap file protection bits after creating it. */ +! if (swap_mode > 0 && curbuf->b_ml.ml_mfp != NULL +! && curbuf->b_ml.ml_mfp->mf_fname != NULL) + (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode); + #endif + } +*************** +*** 8435,8443 **** + * effects, insert it in a the current tab page. + * Anything related to a window (e.g., setting folds) may have + * unexpected results. */ +! curwin = aucmd_win; +! curwin->w_buffer = buf; + ++buf->b_nwindows; + + #ifdef FEAT_WINDOWS + /* Split the current window, put the aucmd_win in the upper half. */ +--- 8436,8444 ---- + * effects, insert it in a the current tab page. + * Anything related to a window (e.g., setting folds) may have + * unexpected results. */ +! aucmd_win->w_buffer = buf; + ++buf->b_nwindows; ++ win_init_empty(aucmd_win); /* set cursor and topline to safe values */ + + #ifdef FEAT_WINDOWS + /* Split the current window, put the aucmd_win in the upper half. */ +*************** +*** 8448,8459 **** + (void)win_comp_pos(); /* recompute window positions */ + p_ea = save_ea; + #endif +! /* set cursor and topline to safe values */ +! curwin_init(); +! #ifdef FEAT_VERTSPLIT +! curwin->w_wincol = 0; +! curwin->w_width = Columns; +! #endif + } + curbuf = buf; + aco->new_curwin = curwin; +--- 8449,8455 ---- + (void)win_comp_pos(); /* recompute window positions */ + p_ea = save_ea; + #endif +! curwin = aucmd_win; + } + curbuf = buf; + aco->new_curwin = curwin; +*** ../vim-7.2.214/src/proto/window.pro 2009-06-16 16:01:34.000000000 +0200 +--- src/proto/window.pro 2009-06-24 12:53:13.000000000 +0200 +*************** +*** 14,19 **** +--- 14,20 ---- + win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp)); + void close_others __ARGS((int message, int forceit)); + void curwin_init __ARGS((void)); ++ void win_init_empty __ARGS((win_T *wp)); + int win_alloc_first __ARGS((void)); + void win_alloc_aucmd_win __ARGS((void)); + void win_init_size __ARGS((void)); +*** ../vim-7.2.214/src/quickfix.c 2009-05-17 13:30:58.000000000 +0200 +--- src/quickfix.c 2009-06-24 15:30:06.000000000 +0200 +*************** +*** 3411,3424 **** + /* Init the options. */ + buf_copy_options(newbuf, BCO_ENTER | BCO_NOHELP); + +! /* set curwin/curbuf to buf and save a few things */ +! aucmd_prepbuf(&aco, newbuf); + +! /* Need to set the filename for autocommands. */ +! (void)setfname(curbuf, fname, NULL, FALSE); + +- if (ml_open(curbuf) == OK) +- { + /* Create swap file now to avoid the ATTENTION message. */ + check_need_swap(TRUE); + +--- 3411,3425 ---- + /* Init the options. */ + buf_copy_options(newbuf, BCO_ENTER | BCO_NOHELP); + +! /* need to open the memfile before putting the buffer in a window */ +! if (ml_open(newbuf) == OK) +! { +! /* set curwin/curbuf to buf and save a few things */ +! aucmd_prepbuf(&aco, newbuf); + +! /* Need to set the filename for autocommands. */ +! (void)setfname(curbuf, fname, NULL, FALSE); + + /* Create swap file now to avoid the ATTENTION message. */ + check_need_swap(TRUE); + +*************** +*** 3441,3450 **** + newbuf = curbuf; + } + } +- } + +! /* restore curwin/curbuf and a few other things */ +! aucmd_restbuf(&aco); + + if (!buf_valid(newbuf)) + return NULL; +--- 3442,3451 ---- + newbuf = curbuf; + } + } + +! /* restore curwin/curbuf and a few other things */ +! aucmd_restbuf(&aco); +! } + + if (!buf_valid(newbuf)) + return NULL; +*** ../vim-7.2.214/src/window.c 2009-06-16 16:01:34.000000000 +0200 +--- src/window.c 2009-06-24 14:35:16.000000000 +0200 +*************** +*** 2354,2366 **** + frame_T *frp; + win_T *wp; + +- #ifdef FEAT_FOLDING +- clearFolding(win); +- #endif +- +- /* reduce the reference count to the argument list. */ +- alist_unlink(win->w_alist); +- + /* Remove the window and its frame from the tree of frames. */ + frp = win->w_frame; + wp = winframe_remove(win, dirp, tp); +--- 2354,2359 ---- +*************** +*** 2386,2394 **** + tabpage_close(TRUE); + # endif + +- while (firstwin != NULL) +- (void)win_free_mem(firstwin, &dummy, NULL); +- + # ifdef FEAT_AUTOCMD + if (aucmd_win != NULL) + { +--- 2379,2384 ---- +*************** +*** 2396,2401 **** +--- 2386,2394 ---- + aucmd_win = NULL; + } + # endif ++ ++ while (firstwin != NULL) ++ (void)win_free_mem(firstwin, &dummy, NULL); + } + #endif + +*************** +*** 3204,3230 **** + void + curwin_init() + { +! redraw_win_later(curwin, NOT_VALID); +! curwin->w_lines_valid = 0; +! curwin->w_cursor.lnum = 1; +! curwin->w_curswant = curwin->w_cursor.col = 0; + #ifdef FEAT_VIRTUALEDIT +! curwin->w_cursor.coladd = 0; + #endif +! curwin->w_pcmark.lnum = 1; /* pcmark not cleared but set to line 1 */ +! curwin->w_pcmark.col = 0; +! curwin->w_prev_pcmark.lnum = 0; +! curwin->w_prev_pcmark.col = 0; +! curwin->w_topline = 1; + #ifdef FEAT_DIFF +! curwin->w_topfill = 0; + #endif +! curwin->w_botline = 2; + #ifdef FEAT_FKMAP +! if (curwin->w_p_rl) +! curwin->w_farsi = W_CONV + W_R_L; + else +! curwin->w_farsi = W_CONV; + #endif + } + +--- 3197,3230 ---- + void + curwin_init() + { +! win_init_empty(curwin); +! } +! +! void +! win_init_empty(wp) +! win_T *wp; +! { +! redraw_win_later(wp, NOT_VALID); +! wp->w_lines_valid = 0; +! wp->w_cursor.lnum = 1; +! wp->w_curswant = wp->w_cursor.col = 0; + #ifdef FEAT_VIRTUALEDIT +! wp->w_cursor.coladd = 0; + #endif +! wp->w_pcmark.lnum = 1; /* pcmark not cleared but set to line 1 */ +! wp->w_pcmark.col = 0; +! wp->w_prev_pcmark.lnum = 0; +! wp->w_prev_pcmark.col = 0; +! wp->w_topline = 1; + #ifdef FEAT_DIFF +! wp->w_topfill = 0; + #endif +! wp->w_botline = 2; + #ifdef FEAT_FKMAP +! if (wp->w_p_rl) +! wp->w_farsi = W_CONV + W_R_L; + else +! wp->w_farsi = W_CONV; + #endif + } + +*************** +*** 4325,4330 **** +--- 4325,4337 ---- + { + int i; + ++ #ifdef FEAT_FOLDING ++ clearFolding(wp); ++ #endif ++ ++ /* reduce the reference count to the argument list. */ ++ alist_unlink(wp->w_alist); ++ + #ifdef FEAT_AUTOCMD + /* Don't execute autocommands while the window is halfway being deleted. + * gui_mch_destroy_scrollbar() may trigger a FocusGained event. */ +*************** +*** 4387,4393 **** + } + #endif /* FEAT_GUI */ + +! win_remove(wp, tp); + vim_free(wp); + + #ifdef FEAT_AUTOCMD +--- 4394,4403 ---- + } + #endif /* FEAT_GUI */ + +! #ifdef FEAT_AUTOCMD +! if (wp != aucmd_win) +! #endif +! win_remove(wp, tp); + vim_free(wp); + + #ifdef FEAT_AUTOCMD +*** ../vim-7.2.214/src/version.c 2009-06-24 17:04:40.000000000 +0200 +--- src/version.c 2009-06-24 17:27:38.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 215, + /**/ + +-- +Micro$oft: where do you want to go today? + Linux: where do you want to go tomorrow? + FreeBSD: are you guys coming, or what? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.216 b/source/ap/vim/patches/7.2.216 new file mode 100644 index 000000000..5a7afdffc --- /dev/null +++ b/source/ap/vim/patches/7.2.216 @@ -0,0 +1,137 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.216 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.216 +Problem: Two error messages have the same number E812. +Solution: Give one message a different number. +Files: runtime/doc/autocmd.txt, runtime/doc/if_mzsch.txt, src/if_mzsch.c + + +*** ../vim-7.2.215/runtime/doc/autocmd.txt 2008-08-09 19:36:46.000000000 +0200 +--- runtime/doc/autocmd.txt 2009-06-24 17:49:04.000000000 +0200 +*************** +*** 335,340 **** +--- 335,342 ---- + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being deleted "<afile>" and "<abuf>". ++ Don't change to another buffer, it will cause ++ problems. + *BufEnter* + BufEnter After entering a buffer. Useful for setting + options for a file type. Also executed when +*************** +*** 397,402 **** +--- 399,406 ---- + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being unloaded "<afile>". ++ Don't change to another buffer, it will cause ++ problems. + *BufWinEnter* + BufWinEnter After a buffer is displayed in a window. This + can be when the buffer is loaded (after +*************** +*** 428,433 **** +--- 432,439 ---- + NOTE: When this autocommand is executed, the + current buffer "%" may be different from the + buffer being deleted "<afile>". ++ Don't change to another buffer, it will cause ++ problems. + *BufWrite* *BufWritePre* + BufWrite or BufWritePre Before writing the whole buffer to a file. + *BufWriteCmd* +*************** +*** 748,755 **** + 'a' abort, like hitting CTRL-C + When set to an empty string the user will be + asked, as if there was no SwapExists autocmd. +! Note: Do not try to change the buffer, the +! results are unpredictable. + *Syntax* + Syntax When the 'syntax' option has been set. The + pattern is matched against the syntax name. +--- 754,763 ---- + 'a' abort, like hitting CTRL-C + When set to an empty string the user will be + asked, as if there was no SwapExists autocmd. +! *E812* +! It is not allowed to change to another buffer, +! change a buffer name or change directory +! here. + *Syntax* + Syntax When the 'syntax' option has been set. The + pattern is matched against the syntax name. +*** ../vim-7.2.215/runtime/doc/if_mzsch.txt 2009-05-26 22:58:43.000000000 +0200 +--- runtime/doc/if_mzsch.txt 2009-06-24 12:08:20.000000000 +0200 +*************** +*** 1,4 **** +! *if_mzsch.txt* For Vim version 7.2. Last change: 2009 May 26 + + + VIM REFERENCE MANUAL by Sergey Khorev +--- 1,4 ---- +! *if_mzsch.txt* For Vim version 7.2. Last change: 2009 Jun 24 + + + VIM REFERENCE MANUAL by Sergey Khorev +*************** +*** 231,237 **** + (set-cursor (line . col) [window]) Set cursor position. + + ============================================================================== +! 5. Dynamic loading *mzscheme-dynamic* *E812* + + On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version| + output then includes |+mzscheme/dyn|. +--- 231,237 ---- + (set-cursor (line . col) [window]) Set cursor position. + + ============================================================================== +! 5. Dynamic loading *mzscheme-dynamic* *E815* + + On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version| + output then includes |+mzscheme/dyn|. +*** ../vim-7.2.215/src/if_mzsch.c 2009-05-26 22:58:43.000000000 +0200 +--- src/if_mzsch.c 2009-06-24 12:08:23.000000000 +0200 +*************** +*** 1040,1046 **** + #ifdef DYNAMIC_MZSCHEME + if (!mzscheme_enabled(TRUE)) + { +! EMSG(_("E812: Sorry, this command is disabled, the MzScheme libraries could not be loaded.")); + return -1; + } + #endif +--- 1040,1046 ---- + #ifdef DYNAMIC_MZSCHEME + if (!mzscheme_enabled(TRUE)) + { +! EMSG(_("E815: Sorry, this command is disabled, the MzScheme libraries could not be loaded.")); + return -1; + } + #endif +*** ../vim-7.2.215/src/version.c 2009-06-24 17:31:27.000000000 +0200 +--- src/version.c 2009-06-24 17:46:56.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 216, + /**/ + +-- +Everyone has a photographic memory. Some don't have film. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.217 b/source/ap/vim/patches/7.2.217 new file mode 100644 index 000000000..30d8aa6a9 --- /dev/null +++ b/source/ap/vim/patches/7.2.217 @@ -0,0 +1,57 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.217 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.217 +Problem: Running tests with valgrind doesn't work as advertised. +Solution: Fix the line in the Makefile. +Files: src/testdir/Makefile + + +*** ../vim-7.2.216/src/testdir/Makefile 2009-03-11 16:26:01.000000000 +0100 +--- src/testdir/Makefile 2009-06-24 14:59:42.000000000 +0200 +*************** +*** 4,12 **** + + VIMPROG = ../vim + +! # Uncomment this line for using valgrind. +! # The output goes into a file "valgrind.$PID" (sorry, no test number). +! # VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --logfile=valgrind + + SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ + test7.out test8.out test9.out test10.out test11.out \ +--- 4,14 ---- + + VIMPROG = ../vim + +! # Uncomment this line to use valgrind for memory leaks and extra warnings. +! # The output goes into a file "valgrind.testN" +! # Vim should be compiled with EXITFREE to avoid false warnings. +! # This will make testing about 10 times as slow. +! # VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --log-file=valgrind.$* + + SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \ + test7.out test8.out test9.out test10.out test11.out \ +*** ../vim-7.2.216/src/version.c 2009-06-24 17:51:01.000000000 +0200 +--- src/version.c 2009-06-24 18:07:07.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 217, + /**/ + +-- +A day without sunshine is like, well, night. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.218 b/source/ap/vim/patches/7.2.218 new file mode 100644 index 000000000..b48d7180b --- /dev/null +++ b/source/ap/vim/patches/7.2.218 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.218 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.218 +Problem: Cannot build GTK with hangul_input feature. (Dominique Pelle) +Solution: Adjuste #ifdef. (SungHyun Nam) +Files: src/gui.c + + +*** ../vim-7.2.217/src/gui.c 2009-06-16 16:01:34.000000000 +0200 +--- src/gui.c 2009-06-24 17:45:01.000000000 +0200 +*************** +*** 959,965 **** + guicolor_T fg, bg; + + if ( +! # ifdef HAVE_GTK2 + preedit_get_status() + # else + im_get_status() +--- 959,965 ---- + guicolor_T fg, bg; + + if ( +! # if defined(HAVE_GTK2) && !defined(FEAT_HANGULIN) + preedit_get_status() + # else + im_get_status() +*** ../vim-7.2.217/src/version.c 2009-06-24 18:07:55.000000000 +0200 +--- src/version.c 2009-06-24 18:31:06.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 218, + /**/ + +-- +The users that I support would double-click on a landmine to find out +what happens. -- A system administrator + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.219 b/source/ap/vim/patches/7.2.219 new file mode 100644 index 000000000..f9bbec04d --- /dev/null +++ b/source/ap/vim/patches/7.2.219 @@ -0,0 +1,71 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.219 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.219 (extra) +Problem: Photon GUI is outdated. +Solution: Updates for QNX 6.4.0. (Sean Boudreau) +Files: src/gui_photon.c + + +*** ../vim-7.2.218/src/gui_photon.c 2007-05-10 20:23:35.000000000 +0200 +--- src/gui_photon.c 2009-07-01 16:08:36.000000000 +0200 +*************** +*** 838,844 **** +--- 838,849 ---- + static void + gui_ph_draw_start( void ) + { ++ PhGC_t *gc; ++ ++ gc = PgGetGC(); + PgSetRegion( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ) ); ++ PgClearClippingsCx( gc ); ++ PgClearTranslationCx( gc ); + + PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset ); + PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos( gui.vimTextArea, NULL ) ); +*************** +*** 2970,2976 **** + if( vim_font_name == NULL ) + { + /* Default font */ +! vim_font_name = "PC Term"; + } + + if( STRCMP( vim_font_name, "*" ) == 0 ) +--- 2975,2981 ---- + if( vim_font_name == NULL ) + { + /* Default font */ +! vim_font_name = "PC Terminal"; + } + + if( STRCMP( vim_font_name, "*" ) == 0 ) +*** ../vim-7.2.218/src/version.c 2009-06-24 18:31:36.000000000 +0200 +--- src/version.c 2009-07-01 16:11:34.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 219, + /**/ + +-- +"Oh, no! NOT the Spanish Inquisition!" +"NOBODY expects the Spanish Inquisition!!!" + -- Monty Python sketch -- +"Oh, no! NOT another option!" +"EVERYBODY expects another option!!!" + -- Discussion in vim-dev mailing list -- + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.220 b/source/ap/vim/patches/7.2.220 new file mode 100644 index 000000000..b3d63f35f --- /dev/null +++ b/source/ap/vim/patches/7.2.220 @@ -0,0 +1,95 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.220 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.220 (after 7.2.215) +Problem: a BufEnter autocommand that changes directory causes problems. + (Ajit Thakkar) +Solution: Disable autocommands when opening a hidden buffer in a window. +Files: src/fileio.c + + +*** ../vim-7.2.219/src/fileio.c 2009-06-24 17:31:27.000000000 +0200 +--- src/fileio.c 2009-07-01 17:02:46.000000000 +0200 +*************** +*** 8441,8453 **** + win_init_empty(aucmd_win); /* set cursor and topline to safe values */ + + #ifdef FEAT_WINDOWS +! /* Split the current window, put the aucmd_win in the upper half. */ + make_snapshot(SNAP_AUCMD_IDX); + save_ea = p_ea; + p_ea = FALSE; + (void)win_split_ins(0, WSP_TOP, aucmd_win, 0); + (void)win_comp_pos(); /* recompute window positions */ + p_ea = save_ea; + #endif + curwin = aucmd_win; + } +--- 8441,8456 ---- + win_init_empty(aucmd_win); /* set cursor and topline to safe values */ + + #ifdef FEAT_WINDOWS +! /* Split the current window, put the aucmd_win in the upper half. +! * We don't want the BufEnter or WinEnter autocommands. */ +! block_autocmds(); + make_snapshot(SNAP_AUCMD_IDX); + save_ea = p_ea; + p_ea = FALSE; + (void)win_split_ins(0, WSP_TOP, aucmd_win, 0); + (void)win_comp_pos(); /* recompute window positions */ + p_ea = save_ea; ++ unblock_autocmds(); + #endif + curwin = aucmd_win; + } +*************** +*** 8474,8480 **** + --curbuf->b_nwindows; + #ifdef FEAT_WINDOWS + /* Find "aucmd_win", it can't be closed, but it may be in another tab +! * page. */ + if (curwin != aucmd_win) + { + tabpage_T *tp; +--- 8477,8484 ---- + --curbuf->b_nwindows; + #ifdef FEAT_WINDOWS + /* Find "aucmd_win", it can't be closed, but it may be in another tab +! * page. Do not trigger autocommands here. */ +! block_autocmds(); + if (curwin != aucmd_win) + { + tabpage_T *tp; +*************** +*** 8498,8503 **** +--- 8502,8508 ---- + last_status(FALSE); /* may need to remove last status line */ + restore_snapshot(SNAP_AUCMD_IDX, FALSE); + (void)win_comp_pos(); /* recompute window positions */ ++ unblock_autocmds(); + + if (win_valid(aco->save_curwin)) + curwin = aco->save_curwin; +*** ../vim-7.2.219/src/version.c 2009-07-01 16:12:54.000000000 +0200 +--- src/version.c 2009-07-01 17:10:22.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 220, + /**/ + +-- +Microsoft is to software what McDonalds is to gourmet cooking + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.221 b/source/ap/vim/patches/7.2.221 new file mode 100644 index 000000000..3c6180e3c --- /dev/null +++ b/source/ap/vim/patches/7.2.221 @@ -0,0 +1,247 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.221 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.221 +Problem: X cut_buffer0 text is used as-is, it may be in the wrong encoding. +Solution: Convert between 'enc' and latin1. (James Vega) +Files: src/gui_gtk_x11.c, src/message.c, src/ops.c, src/proto/ui.pro, + src/ui.c + + +*** ../vim-7.2.220/src/gui_gtk_x11.c 2009-06-16 15:23:07.000000000 +0200 +--- src/gui_gtk_x11.c 2009-07-01 11:55:34.000000000 +0200 +*************** +*** 6717,6724 **** + { + GdkAtom target; + unsigned i; +- int nbytes; +- char_u *buffer; + time_t start; + + for (i = 0; i < N_SELECTION_TARGETS; ++i) +--- 6717,6722 ---- +*************** +*** 6746,6767 **** + } + + /* Final fallback position - use the X CUT_BUFFER0 store */ +! nbytes = 0; +! buffer = (char_u *)XFetchBuffer(GDK_WINDOW_XDISPLAY(gui.mainwin->window), +! &nbytes, 0); +! if (nbytes > 0) +! { +! /* Got something */ +! clip_yank_selection(MCHAR, buffer, (long)nbytes, cbd); +! if (p_verbose > 0) +! { +! verbose_enter(); +! smsg((char_u *)_("Used CUT_BUFFER0 instead of empty selection")); +! verbose_leave(); +! } +! } +! if (buffer != NULL) +! XFree(buffer); + } + + /* +--- 6744,6750 ---- + } + + /* Final fallback position - use the X CUT_BUFFER0 store */ +! yank_cut_buffer0(GDK_WINDOW_XDISPLAY(gui.mainwin->window), cbd); + } + + /* +*** ../vim-7.2.220/src/message.c 2009-05-17 13:30:58.000000000 +0200 +--- src/message.c 2009-07-01 16:43:08.000000000 +0200 +*************** +*** 107,113 **** + } + + #if defined(FEAT_EVAL) || defined(FEAT_X11) || defined(USE_XSMP) \ +! || defined(PROTO) + /* + * Like msg() but keep it silent when 'verbosefile' is set. + */ +--- 107,113 ---- + } + + #if defined(FEAT_EVAL) || defined(FEAT_X11) || defined(USE_XSMP) \ +! || defined(FEAT_GUI_GTK) || defined(PROTO) + /* + * Like msg() but keep it silent when 'verbosefile' is set. + */ +*** ../vim-7.2.220/src/ops.c 2009-05-26 18:12:13.000000000 +0200 +--- src/ops.c 2009-07-01 12:15:31.000000000 +0200 +*************** +*** 5591,5596 **** +--- 5591,5619 ---- + if (dpy != NULL && str != NULL && motion_type >= 0 + && len < 1024*1024 && len > 0) + { ++ #ifdef FEAT_MBYTE ++ /* The CUT_BUFFER0 is supposed to always contain latin1. Convert from ++ * 'enc' when it is a multi-byte encoding. When 'enc' is an 8-bit ++ * encoding conversion usually doesn't work, so keep the text as-is. ++ */ ++ if (has_mbyte) ++ { ++ char_u *conv_str = str; ++ vimconv_T vc; ++ ++ vc.vc_type = CONV_NONE; ++ if (convert_setup(&vc, p_enc, (char_u *)"latin1") == OK) ++ { ++ conv_str = string_convert(&vc, str, (int*)&len); ++ if (conv_str != NULL) ++ { ++ vim_free(str); ++ str = conv_str; ++ } ++ convert_setup(&vc, NULL, NULL); ++ } ++ } ++ #endif + XStoreBuffer(dpy, (char *)str, (int)len, 0); + XFlush(dpy); + } +*** ../vim-7.2.220/src/proto/ui.pro 2007-05-05 19:58:49.000000000 +0200 +--- src/proto/ui.pro 2009-07-01 11:48:11.000000000 +0200 +*************** +*** 48,53 **** +--- 48,54 ---- + void open_app_context __ARGS((void)); + void x11_setup_atoms __ARGS((Display *dpy)); + void clip_x11_request_selection __ARGS((Widget myShell, Display *dpy, VimClipboard *cbd)); ++ void yank_cut_buffer0 __ARGS((Display *dpy, VimClipboard *cbd)); + void clip_x11_lose_selection __ARGS((Widget myShell, VimClipboard *cbd)); + int clip_x11_own_selection __ARGS((Widget myShell, VimClipboard *cbd)); + void clip_x11_set_selection __ARGS((VimClipboard *cbd)); +*** ../vim-7.2.220/src/ui.c 2009-05-17 13:30:58.000000000 +0200 +--- src/ui.c 2009-07-01 15:44:07.000000000 +0200 +*************** +*** 2104,2111 **** + Atom type; + static int success; + int i; +- int nbytes = 0; +- char_u *buffer; + time_t start_time; + int timed_out = FALSE; + +--- 2104,2109 ---- +*************** +*** 2185,2199 **** + } + + /* Final fallback position - use the X CUT_BUFFER0 store */ +! buffer = (char_u *)XFetchBuffer(dpy, &nbytes, 0); +! if (nbytes > 0) +! { +! /* Got something */ +! clip_yank_selection(MCHAR, buffer, (long)nbytes, cbd); +! XFree((void *)buffer); +! if (p_verbose > 0) +! verb_msg((char_u *)_("Used CUT_BUFFER0 instead of empty selection")); +! } + } + + static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *)); +--- 2183,2189 ---- + } + + /* Final fallback position - use the X CUT_BUFFER0 store */ +! yank_cut_buffer0(dpy, cbd); + } + + static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *)); +*************** +*** 2369,2374 **** +--- 2359,2418 ---- + } + #endif + ++ #if defined(FEAT_XCLIPBOARD) || defined(FEAT_GUI_X11) \ ++ || defined(FEAT_GUI_GTK) || defined(PROTO) ++ /* ++ * Get the contents of the X CUT_BUFFER0 and put it in "cbd". ++ */ ++ void ++ yank_cut_buffer0(dpy, cbd) ++ Display *dpy; ++ VimClipboard *cbd; ++ { ++ int nbytes = 0; ++ char_u *buffer = (char_u *)XFetchBuffer(dpy, &nbytes, 0); ++ ++ if (nbytes > 0) ++ { ++ #ifdef FEAT_MBYTE ++ int done = FALSE; ++ ++ /* CUT_BUFFER0 is supposed to be always latin1. Convert to 'enc' when ++ * using a multi-byte encoding. Conversion between two 8-bit ++ * character sets usually fails and the text might actually be in ++ * 'enc' anyway. */ ++ if (has_mbyte) ++ { ++ char_u *conv_buf = buffer; ++ vimconv_T vc; ++ ++ vc.vc_type = CONV_NONE; ++ if (convert_setup(&vc, (char_u *)"latin1", p_enc) == OK) ++ { ++ conv_buf = string_convert(&vc, buffer, &nbytes); ++ if (conv_buf != NULL) ++ { ++ clip_yank_selection(MCHAR, conv_buf, (long)nbytes, cbd); ++ vim_free(conv_buf); ++ done = TRUE; ++ } ++ convert_setup(&vc, NULL, NULL); ++ } ++ } ++ if (!done) /* use the text without conversion */ ++ #endif ++ clip_yank_selection(MCHAR, buffer, (long)nbytes, cbd); ++ XFree((void *)buffer); ++ if (p_verbose > 0) ++ { ++ verbose_enter(); ++ verb_msg((char_u *)_("Used CUT_BUFFER0 instead of empty selection")); ++ verbose_leave(); ++ } ++ } ++ } ++ #endif ++ + #if defined(FEAT_MOUSE) || defined(PROTO) + + /* +*** ../vim-7.2.220/src/version.c 2009-07-01 17:11:40.000000000 +0200 +--- src/version.c 2009-07-01 17:56:02.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 221, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +40. You tell the cab driver you live at + http://123.elm.street/house/bluetrim.html +41. You actually try that 123.elm.street address. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.222 b/source/ap/vim/patches/7.2.222 new file mode 100644 index 000000000..dcf0b36c6 --- /dev/null +++ b/source/ap/vim/patches/7.2.222 @@ -0,0 +1,59 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.222 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.222 +Problem: ":mksession" doesn't work properly with 'acd' set. +Solution: Make it work. (Yakov Lerner) +Files: src/ex_docmd.c + + +*** ../vim-7.2.221/src/ex_docmd.c 2009-05-16 17:29:37.000000000 +0200 +--- src/ex_docmd.c 2009-07-01 20:18:22.000000000 +0200 +*************** +*** 8686,8691 **** +--- 8693,8700 ---- + } + + #ifdef FEAT_SESSION ++ /* Use the short file name until ":lcd" is used. We also don't use the ++ * short file name when 'acd' is set, that is checked later. */ + did_lcd = FALSE; + + /* ":mkview" or ":mkview 9": generate file name with 'viewdir' */ +*************** +*** 10573,10578 **** +--- 10582,10590 ---- + if (buf->b_sfname != NULL + && flagp == &ssop_flags + && (ssop_flags & (SSOP_CURDIR | SSOP_SESDIR)) ++ #ifdef FEAT_AUTOCHDIR ++ && !p_acd ++ #endif + && !did_lcd) + name = buf->b_sfname; + else +*** ../vim-7.2.221/src/version.c 2009-07-01 18:04:30.000000000 +0200 +--- src/version.c 2009-07-01 20:16:19.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 222, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +43. You tell the kids they can't use the computer because "Daddy's got work to + do" and you don't even have a job. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.223 b/source/ap/vim/patches/7.2.223 new file mode 100644 index 000000000..cac2126cf --- /dev/null +++ b/source/ap/vim/patches/7.2.223 @@ -0,0 +1,165 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.223 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.223 +Problem: When a script is run with ":silent" it is not able to give warning + messages. +Solution: Add the ":unsilent" command. +Files: runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c + + +*** ../vim-7.2.222/runtime/doc/various.txt 2008-08-09 19:36:54.000000000 +0200 +--- runtime/doc/various.txt 2009-07-09 15:52:54.000000000 +0200 +*************** +*** 508,513 **** +--- 508,524 ---- + messages though. Use ":silent" in the command itself + to avoid that: ":silent menu .... :silent command". + ++ *:uns* *:unsilent* ++ :uns[ilent] {command} Execute {command} not silently. Only makes a ++ difference when |:silent| was used to get to this ++ command. ++ Use this for giving a message even when |:silent| was ++ used. In this example |:silent| is used to avoid the ++ message about reading the file and |:unsilent| to be ++ able to list the first line of each file. > ++ :silent argdo unsilent echo expand('%') . ": " . getline(1) ++ < ++ + *:verb* *:verbose* + :[count]verb[ose] {command} + Execute {command} with 'verbose' set to [count]. If +*** ../vim-7.2.222/src/ex_cmds.h 2008-11-09 13:43:25.000000000 +0100 +--- src/ex_cmds.h 2009-07-01 18:12:55.000000000 +0200 +*************** +*** 991,996 **** +--- 991,998 ---- + BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_unmenu, "unmenu", ex_menu, + BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), ++ EX(CMD_unsilent, "unsilent", ex_wrongmodifier, ++ NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_update, "update", ex_update, + RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR), + EX(CMD_vglobal, "vglobal", ex_global, +*** ../vim-7.2.222/src/ex_docmd.c 2009-07-01 20:18:43.000000000 +0200 +--- src/ex_docmd.c 2009-07-09 15:24:03.000000000 +0200 +*************** +*** 1677,1684 **** + char_u *errormsg = NULL; /* error message */ + exarg_T ea; /* Ex command arguments */ + long verbose_save = -1; +! int save_msg_scroll = 0; +! int did_silent = 0; + int did_esilent = 0; + #ifdef HAVE_SANDBOX + int did_sandbox = FALSE; +--- 1677,1684 ---- + char_u *errormsg = NULL; /* error message */ + exarg_T ea; /* Ex command arguments */ + long verbose_save = -1; +! int save_msg_scroll = msg_scroll; +! int save_msg_silent = -1; + int did_esilent = 0; + #ifdef HAVE_SANDBOX + int did_sandbox = FALSE; +*************** +*** 1856,1864 **** + } + if (!checkforcmd(&ea.cmd, "silent", 3)) + break; +! ++did_silent; + ++msg_silent; +- save_msg_scroll = msg_scroll; + if (*ea.cmd == '!' && !vim_iswhite(ea.cmd[-1])) + { + /* ":silent!", but not "silent !cmd" */ +--- 1856,1864 ---- + } + if (!checkforcmd(&ea.cmd, "silent", 3)) + break; +! if (save_msg_silent == -1) +! save_msg_silent = msg_silent; + ++msg_silent; + if (*ea.cmd == '!' && !vim_iswhite(ea.cmd[-1])) + { + /* ":silent!", but not "silent !cmd" */ +*************** +*** 1886,1891 **** +--- 1886,1898 ---- + #endif + continue; + ++ case 'u': if (!checkforcmd(&ea.cmd, "unsilent", 3)) ++ break; ++ if (save_msg_silent == -1) ++ save_msg_silent = msg_silent; ++ msg_silent = 0; ++ continue; ++ + case 'v': if (checkforcmd(&ea.cmd, "vertical", 4)) + { + #ifdef FEAT_VERTSPLIT +*************** +*** 2684,2696 **** + + cmdmod = save_cmdmod; + +! if (did_silent > 0) + { + /* messages could be enabled for a serious error, need to check if the + * counters don't become negative */ +! msg_silent -= did_silent; +! if (msg_silent < 0) +! msg_silent = 0; + emsg_silent -= did_esilent; + if (emsg_silent < 0) + emsg_silent = 0; +--- 2691,2702 ---- + + cmdmod = save_cmdmod; + +! if (save_msg_silent != -1) + { + /* messages could be enabled for a serious error, need to check if the + * counters don't become negative */ +! if (!did_emsg) +! msg_silent = save_msg_silent; + emsg_silent -= did_esilent; + if (emsg_silent < 0) + emsg_silent = 0; +*************** +*** 2987,2992 **** +--- 2993,2999 ---- + {"silent", 3, FALSE}, + {"tab", 3, TRUE}, + {"topleft", 2, FALSE}, ++ {"unsilent", 3, FALSE}, + {"verbose", 4, TRUE}, + {"vertical", 4, FALSE}, + }; +*** ../vim-7.2.222/src/version.c 2009-07-01 20:18:43.000000000 +0200 +--- src/version.c 2009-07-09 15:53:05.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 223, + /**/ + +-- +Q: How many legs does a giraffe have? +A: Eight: two in front, two behind, two on the left and two on the right + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.224 b/source/ap/vim/patches/7.2.224 new file mode 100644 index 000000000..d988eedad --- /dev/null +++ b/source/ap/vim/patches/7.2.224 @@ -0,0 +1,88 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.224 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.224 +Problem: Crash when using 'completefunc'. (Ingo Karkat) +Solution: Disallow entering edit() recursively when doing completion. +Files: src/edit.c + + +*** ../vim-7.2.223/src/edit.c 2009-05-26 11:01:43.000000000 +0200 +--- src/edit.c 2009-07-09 18:01:49.000000000 +0200 +*************** +*** 114,119 **** +--- 114,123 ---- + * FALSE the word to be completed must be located. */ + static int compl_started = FALSE; + ++ /* Set when doing something for completion that may call edit() recursively, ++ * which is not allowed. */ ++ static int compl_busy = FALSE; ++ + static int compl_matches = 0; + static char_u *compl_pattern = NULL; + static int compl_direction = FORWARD; +*************** +*** 346,352 **** + + #ifdef FEAT_INS_EXPAND + /* Don't allow recursive insert mode when busy with completion. */ +! if (compl_started || pum_visible()) + { + EMSG(_(e_secure)); + return FALSE; +--- 350,356 ---- + + #ifdef FEAT_INS_EXPAND + /* Don't allow recursive insert mode when busy with completion. */ +! if (compl_started || compl_busy || pum_visible()) + { + EMSG(_(e_secure)); + return FALSE; +*************** +*** 1340,1347 **** +--- 1344,1353 ---- + goto normalchar; + + docomplete: ++ compl_busy = TRUE; + if (ins_complete(c) == FAIL) + compl_cont_status = 0; ++ compl_busy = FALSE; + break; + #endif /* FEAT_INS_EXPAND */ + +*************** +*** 3172,3177 **** +--- 3178,3184 ---- + vim_free(match); + } while (compl_curr_match != NULL && compl_curr_match != compl_first_match); + compl_first_match = compl_curr_match = NULL; ++ compl_shown_match = NULL; + } + + static void +*** ../vim-7.2.223/src/version.c 2009-07-09 15:55:34.000000000 +0200 +--- src/version.c 2009-07-09 18:14:16.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 224, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +77. The phone company asks you to test drive their new PBX system + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.225 b/source/ap/vim/patches/7.2.225 new file mode 100644 index 000000000..32a4d357b --- /dev/null +++ b/source/ap/vim/patches/7.2.225 @@ -0,0 +1,97 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.225 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.225 +Problem: When using ":normal" a saved character may be executed. +Solution: Also store old_char when saving typeahead. +Files: src/getchar.c, src/structs.h + + +*** ../vim-7.2.224/src/getchar.c 2009-02-22 23:42:08.000000000 +0100 +--- src/getchar.c 2009-07-09 18:09:13.000000000 +0200 +*************** +*** 1309,1314 **** +--- 1309,1317 ---- + return OK; + } + ++ static int old_char = -1; /* character put back by vungetc() */ ++ static int old_mod_mask; /* mod_mask for ungotten character */ ++ + #if defined(FEAT_EVAL) || defined(FEAT_EX_EXTRA) || defined(PROTO) + + /* +*************** +*** 1323,1328 **** +--- 1326,1335 ---- + if (!tp->typebuf_valid) + typebuf = tp->save_typebuf; + ++ tp->old_char = old_char; ++ tp->old_mod_mask = old_mod_mask; ++ old_char = -1; ++ + tp->save_stuffbuff = stuffbuff; + stuffbuff.bh_first.b_next = NULL; + # ifdef USE_INPUT_BUF +*************** +*** 1344,1349 **** +--- 1351,1359 ---- + typebuf = tp->save_typebuf; + } + ++ old_char = tp->old_char; ++ old_mod_mask = tp->old_mod_mask; ++ + free_buff(&stuffbuff); + stuffbuff = tp->save_stuffbuff; + # ifdef USE_INPUT_BUF +*************** +*** 1499,1507 **** + #define KL_PART_KEY -1 /* keylen value for incomplete key-code */ + #define KL_PART_MAP -2 /* keylen value for incomplete mapping */ + +- static int old_char = -1; /* character put back by vungetc() */ +- static int old_mod_mask; /* mod_mask for ungotten character */ +- + /* + * Get the next input character. + * Can return a special key or a multi-byte character. +--- 1509,1514 ---- +*** ../vim-7.2.224/src/structs.h 2009-06-16 16:01:34.000000000 +0200 +--- src/structs.h 2009-07-09 18:09:20.000000000 +0200 +*************** +*** 882,887 **** +--- 882,889 ---- + { + typebuf_T save_typebuf; + int typebuf_valid; /* TRUE when save_typebuf valid */ ++ int old_char; ++ int old_mod_mask; + struct buffheader save_stuffbuff; + #ifdef USE_INPUT_BUF + char_u *save_inputbuf; +*** ../vim-7.2.224/src/version.c 2009-07-09 18:15:19.000000000 +0200 +--- src/version.c 2009-07-09 18:21:56.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 225, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +78. You find yourself dialing IP numbers on the phone. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.226 b/source/ap/vim/patches/7.2.226 new file mode 100644 index 000000000..d922a080f --- /dev/null +++ b/source/ap/vim/patches/7.2.226 @@ -0,0 +1,268 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.226 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.226 +Problem: ml_get error after deleting the last line. (Xavier de Gaye) +Solution: When adjusting marks a callback may be invoked. Adjust the cursor + position before invoking deleted_lines_mark(). +Files: src/ex_cmds.c, src/ex_docmd.c, src/if_mzsch.c, src/if_python.c, + src/if_perl.xs, src/misc1.c + + +*** ../vim-7.2.225/src/ex_cmds.c 2009-05-17 13:30:58.000000000 +0200 +--- src/ex_cmds.c 2009-07-09 12:56:51.000000000 +0200 +*************** +*** 4013,4018 **** +--- 4013,4021 ---- + break; + ml_delete(eap->line1, FALSE); + } ++ ++ /* make sure the cursor is not beyond the end of the file now */ ++ check_cursor_lnum(); + deleted_lines_mark(eap->line1, (long)(eap->line2 - lnum)); + + /* ":append" on the line above the deleted lines. */ +*** ../vim-7.2.225/src/ex_docmd.c 2009-07-09 15:55:34.000000000 +0200 +--- src/ex_docmd.c 2009-07-09 15:24:03.000000000 +0200 +*************** +*** 7845,7854 **** + if (*ml_get(lnum) == NUL && u_savedel(lnum, 1L) == OK) + { + ml_delete(lnum, FALSE); +- deleted_lines_mark(lnum, 1L); + if (curwin->w_cursor.lnum > 1 + && curwin->w_cursor.lnum >= lnum) + --curwin->w_cursor.lnum; + } + } + redraw_curbuf_later(VALID); +--- 7845,7854 ---- + if (*ml_get(lnum) == NUL && u_savedel(lnum, 1L) == OK) + { + ml_delete(lnum, FALSE); + if (curwin->w_cursor.lnum > 1 + && curwin->w_cursor.lnum >= lnum) + --curwin->w_cursor.lnum; ++ deleted_lines_mark(lnum, 1L); + } + } + redraw_curbuf_later(VALID); +*** ../vim-7.2.225/src/if_mzsch.c 2009-06-24 17:51:01.000000000 +0200 +--- src/if_mzsch.c 2009-07-09 12:59:17.000000000 +0200 +*************** +*** 2169,2177 **** + curbuf = savebuf; + raise_vim_exn(_("cannot delete line")); + } +- deleted_lines_mark((linenr_T)n, 1L); + if (buf->buf == curwin->w_buffer) + mz_fix_cursor(n, n + 1, -1); + + curbuf = savebuf; + +--- 2169,2177 ---- + curbuf = savebuf; + raise_vim_exn(_("cannot delete line")); + } + if (buf->buf == curwin->w_buffer) + mz_fix_cursor(n, n + 1, -1); ++ deleted_lines_mark((linenr_T)n, 1L); + + curbuf = savebuf; + +*************** +*** 2299,2307 **** + curbuf = savebuf; + raise_vim_exn(_("cannot delete line")); + } +- deleted_lines_mark((linenr_T)lo, (long)old_len); + if (buf->buf == curwin->w_buffer) + mz_fix_cursor(lo, hi, -old_len); + } + + curbuf = savebuf; +--- 2299,2307 ---- + curbuf = savebuf; + raise_vim_exn(_("cannot delete line")); + } + if (buf->buf == curwin->w_buffer) + mz_fix_cursor(lo, hi, -old_len); ++ deleted_lines_mark((linenr_T)lo, (long)old_len); + } + + curbuf = savebuf; +*** ../vim-7.2.225/src/if_python.c 2009-05-21 23:25:38.000000000 +0200 +--- src/if_python.c 2009-07-09 12:59:45.000000000 +0200 +*************** +*** 2497,2505 **** + PyErr_SetVim(_("cannot delete line")); + else + { +- deleted_lines_mark((linenr_T)n, 1L); + if (buf == curwin->w_buffer) + py_fix_cursor((linenr_T)n, (linenr_T)n + 1, (linenr_T)-1); + } + + curbuf = savebuf; +--- 2497,2505 ---- + PyErr_SetVim(_("cannot delete line")); + else + { + if (buf == curwin->w_buffer) + py_fix_cursor((linenr_T)n, (linenr_T)n + 1, (linenr_T)-1); ++ deleted_lines_mark((linenr_T)n, 1L); + } + + curbuf = savebuf; +*************** +*** 2596,2605 **** + break; + } + } +- deleted_lines_mark((linenr_T)lo, (long)i); +- + if (buf == curwin->w_buffer) + py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n); + } + + curbuf = savebuf; +--- 2596,2604 ---- + break; + } + } + if (buf == curwin->w_buffer) + py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n); ++ deleted_lines_mark((linenr_T)lo, (long)i); + } + + curbuf = savebuf; +*** ../vim-7.2.225/src/if_perl.xs 2009-06-16 16:01:34.000000000 +0200 +--- src/if_perl.xs 2009-07-09 13:02:16.000000000 +0200 +*************** +*** 1233,1241 **** + if (u_savedel(lnum, 1) == OK) + { + ml_delete(lnum, 0); + deleted_lines_mark(lnum, 1L); +- if (aco.save_curbuf == curbuf) +- check_cursor(); + } + + /* restore curwin/curbuf and a few other things */ +--- 1235,1242 ---- + if (u_savedel(lnum, 1) == OK) + { + ml_delete(lnum, 0); ++ check_cursor(); + deleted_lines_mark(lnum, 1L); + } + + /* restore curwin/curbuf and a few other things */ +*** ../vim-7.2.225/src/misc1.c 2009-06-24 16:25:23.000000000 +0200 +--- src/misc1.c 2009-07-09 13:00:59.000000000 +0200 +*************** +*** 2345,2356 **** + int undo; /* if TRUE, prepare for undo */ + { + long n; + + if (nlines <= 0) + return; + + /* save the deleted lines for undo */ +! if (undo && u_savedel(curwin->w_cursor.lnum, nlines) == FAIL) + return; + + for (n = 0; n < nlines; ) +--- 2345,2357 ---- + int undo; /* if TRUE, prepare for undo */ + { + long n; ++ linenr_T first = curwin->w_cursor.lnum; + + if (nlines <= 0) + return; + + /* save the deleted lines for undo */ +! if (undo && u_savedel(first, nlines) == FAIL) + return; + + for (n = 0; n < nlines; ) +*************** +*** 2358,2375 **** + if (curbuf->b_ml.ml_flags & ML_EMPTY) /* nothing to delete */ + break; + +! ml_delete(curwin->w_cursor.lnum, TRUE); + ++n; + + /* If we delete the last line in the file, stop */ +! if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count) + break; + } +- /* adjust marks, mark the buffer as changed and prepare for displaying */ +- deleted_lines_mark(curwin->w_cursor.lnum, n); + + curwin->w_cursor.col = 0; + check_cursor_lnum(); + } + + int +--- 2359,2379 ---- + if (curbuf->b_ml.ml_flags & ML_EMPTY) /* nothing to delete */ + break; + +! ml_delete(first, TRUE); + ++n; + + /* If we delete the last line in the file, stop */ +! if (first > curbuf->b_ml.ml_line_count) + break; + } + ++ /* Correct the cursor position before calling deleted_lines_mark(), it may ++ * trigger a callback to display the cursor. */ + curwin->w_cursor.col = 0; + check_cursor_lnum(); ++ ++ /* adjust marks, mark the buffer as changed and prepare for displaying */ ++ deleted_lines_mark(first, n); + } + + int +*************** +*** 2621,2626 **** +--- 2625,2632 ---- + + /* + * Like deleted_lines(), but adjust marks first. ++ * Make sure the cursor is on a valid line before calling, a GUI callback may ++ * be triggered to display the cursor. + */ + void + deleted_lines_mark(lnum, count) +*** ../vim-7.2.225/src/version.c 2009-07-09 18:24:24.000000000 +0200 +--- src/version.c 2009-07-09 20:01:16.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 226, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +80. At parties, you introduce your spouse as your "service provider." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.227 b/source/ap/vim/patches/7.2.227 new file mode 100644 index 000000000..84992128c --- /dev/null +++ b/source/ap/vim/patches/7.2.227 @@ -0,0 +1,52 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.227 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.227 +Problem: When using ":cd" in a script there is no way to track this. +Solution: Display the directory when 'verbose' is 5 or higher. +Files: src/ex_docmd.c + + +*** ../vim-7.2.226/src/ex_docmd.c 2009-07-09 20:06:30.000000000 +0200 +--- src/ex_docmd.c 2009-07-09 15:24:03.000000000 +0200 +*************** +*** 7964,7970 **** + shorten_fnames(TRUE); + + /* Echo the new current directory if the command was typed. */ +! if (KeyTyped) + ex_pwd(eap); + } + vim_free(tofree); +--- 7964,7970 ---- + shorten_fnames(TRUE); + + /* Echo the new current directory if the command was typed. */ +! if (KeyTyped || p_verbose >= 5) + ex_pwd(eap); + } + vim_free(tofree); +*** ../vim-7.2.226/src/version.c 2009-07-09 20:06:30.000000000 +0200 +--- src/version.c 2009-07-09 20:13:13.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 227, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +83. Batteries in the TV remote now last for months. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.228 b/source/ap/vim/patches/7.2.228 new file mode 100644 index 000000000..a906bef40 --- /dev/null +++ b/source/ap/vim/patches/7.2.228 @@ -0,0 +1,573 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.228 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.228 +Problem: Cscope is limited to 8 connections. +Solution: Allocated the connection array to handle any number of + connections. (Dominique Pelle) +Files: runtime/doc/if_cscop.txt, src/if_cscope.h, src/if_cscope.c + + +*** ../vim-7.2.227/runtime/doc/if_cscop.txt 2009-03-18 14:30:46.000000000 +0100 +--- runtime/doc/if_cscop.txt 2009-07-09 15:40:48.000000000 +0200 +*************** +*** 355,367 **** + The DJGPP-built version from http://cscope.sourceforge.net is known to not + work with Vim. + +! There are a couple of hard-coded limitations: +! +! 1. The maximum number of cscope connections allowed is 8. Do you +! really need more? +! +! 2. Doing a |:tjump| when |:cstag| searches the tag files is not +! configurable (e.g., you can't do a tselect instead). + + ============================================================================== + 6. Suggested usage *cscope-suggestions* +--- 355,362 ---- + The DJGPP-built version from http://cscope.sourceforge.net is known to not + work with Vim. + +! Hard-coded limitation: doing a |:tjump| when |:cstag| searches the tag files +! is not configurable (e.g., you can't do a tselect instead). + + ============================================================================== + 6. Suggested usage *cscope-suggestions* +*** ../vim-7.2.227/src/if_cscope.h 2008-08-25 04:35:13.000000000 +0200 +--- src/if_cscope.h 2009-07-09 15:39:32.000000000 +0200 +*************** +*** 25,31 **** + + #define CSCOPE_SUCCESS 0 + #define CSCOPE_FAILURE -1 +- #define CSCOPE_MAX_CONNECTIONS 8 /* you actually need more? */ + + #define CSCOPE_DBFILE "cscope.out" + #define CSCOPE_PROMPT ">> " +--- 25,30 ---- +*** ../vim-7.2.227/src/if_cscope.c 2009-05-16 17:29:37.000000000 +0200 +--- src/if_cscope.c 2009-07-09 15:39:32.000000000 +0200 +*************** +*** 46,52 **** + static int cs_find __ARGS((exarg_T *eap)); + static int cs_find_common __ARGS((char *opt, char *pat, int, int, int)); + static int cs_help __ARGS((exarg_T *eap)); +- static void cs_init __ARGS((void)); + static void clear_csinfo __ARGS((int i)); + static int cs_insert_filelist __ARGS((char *, char *, char *, + struct stat *)); +--- 46,51 ---- +*************** +*** 66,72 **** + static int cs_show __ARGS((exarg_T *eap)); + + +! static csinfo_T csinfo[CSCOPE_MAX_CONNECTIONS]; + static int eap_arg_len; /* length of eap->arg, set in + cs_lookup_cmd() */ + static cscmd_T cs_cmds[] = +--- 65,74 ---- + static int cs_show __ARGS((exarg_T *eap)); + + +! static csinfo_T * csinfo = NULL; +! static int csinfo_size = 0; /* number of items allocated in +! csinfo[] */ +! + static int eap_arg_len; /* length of eap->arg, set in + cs_lookup_cmd() */ + static cscmd_T cs_cmds[] = +*************** +*** 144,166 **** + } + case EXP_CSCOPE_KILL: + { +! static char_u connection[2]; + + /* ":cscope kill" accepts connection numbers or partial names of + * the pathname of the cscope database as argument. Only complete + * with connection numbers. -1 can also be used to kill all + * connections. */ +! for (i = 0, current_idx = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (csinfo[i].fname == NULL) + continue; + if (current_idx++ == idx) + { +! /* Connection number fits in one character since +! * CSCOPE_MAX_CONNECTIONS is < 10 */ +! connection[0] = i + '0'; +! connection[1] = NUL; +! return connection; + } + } + return (current_idx == idx && idx > 0) ? (char_u *)"-1" : NULL; +--- 146,165 ---- + } + case EXP_CSCOPE_KILL: + { +! static char connection[5]; + + /* ":cscope kill" accepts connection numbers or partial names of + * the pathname of the cscope database as argument. Only complete + * with connection numbers. -1 can also be used to kill all + * connections. */ +! for (i = 0, current_idx = 0; i < csinfo_size; i++) + { + if (csinfo[i].fname == NULL) + continue; + if (current_idx++ == idx) + { +! vim_snprintf(connection, sizeof(connection), "%d", i); +! return (char_u *)connection; + } + } + return (current_idx == idx && idx > 0) ? (char_u *)"-1" : NULL; +*************** +*** 223,229 **** + { + cscmd_T *cmdp; + +- cs_init(); + if ((cmdp = cs_lookup_cmd(eap)) == NULL) + { + cs_help(eap); +--- 222,227 ---- +*************** +*** 284,291 **** + { + int ret = FALSE; + +- cs_init(); +- + if (*eap->arg == NUL) + { + (void)EMSG(_("E562: Usage: cstag <ident>")); +--- 282,287 ---- +*************** +*** 441,447 **** + if (num < 0 || num > 4 || (num > 0 && !dbpath)) + return FALSE; + +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (!csinfo[i].fname) + continue; +--- 437,443 ---- + if (num < 0 || num > 4 || (num > 0 && !dbpath)) + return FALSE; + +! for (i = 0; i < csinfo_size; i++) + { + if (!csinfo[i].fname) + continue; +*************** +*** 684,690 **** + short i; + short cnt = 0; + +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (csinfo[i].fname != NULL) + cnt++; +--- 680,686 ---- + short i; + short cnt = 0; + +! for (i = 0; i < csinfo_size; i++) + { + if (csinfo[i].fname != NULL) + cnt++; +*************** +*** 1112,1118 **** + { + int i; + char *cmd; +! int nummatches[CSCOPE_MAX_CONNECTIONS], totmatches; + #ifdef FEAT_QUICKFIX + char cmdletter; + char *qfpos; +--- 1108,1115 ---- + { + int i; + char *cmd; +! int *nummatches; +! int totmatches; + #ifdef FEAT_QUICKFIX + char cmdletter; + char *qfpos; +*************** +*** 1123,1135 **** + if (cmd == NULL) + return FALSE; + + /* send query to all open connections, then count the total number + * of matches so we can alloc matchesp all in one swell foop + */ +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + nummatches[i] = 0; + totmatches = 0; +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (csinfo[i].fname == NULL || csinfo[i].to_fp == NULL) + continue; +--- 1120,1136 ---- + if (cmd == NULL) + return FALSE; + ++ nummatches = (int *)alloc(sizeof(int)*csinfo_size); ++ if (nummatches == NULL) ++ return FALSE; ++ + /* send query to all open connections, then count the total number + * of matches so we can alloc matchesp all in one swell foop + */ +! for (i = 0; i < csinfo_size; i++) + nummatches[i] = 0; + totmatches = 0; +! for (i = 0; i < csinfo_size; i++) + { + if (csinfo[i].fname == NULL || csinfo[i].to_fp == NULL) + continue; +*************** +*** 1154,1160 **** +--- 1155,1164 ---- + char *buf; + + if (!verbose) ++ { ++ vim_free(nummatches); + return FALSE; ++ } + + buf = (char *)alloc((unsigned)(strlen(opt) + strlen(pat) + strlen(nf))); + if (buf == NULL) +*************** +*** 1165,1170 **** +--- 1169,1175 ---- + (void)EMSG(buf); + vim_free(buf); + } ++ vim_free(nummatches); + return FALSE; + } + +*************** +*** 1217,1222 **** +--- 1222,1228 ---- + (void)EMSG(buf); + vim_free(buf); + } ++ vim_free(nummatches); + return FALSE; + } + } +*************** +*** 1264,1269 **** +--- 1270,1276 ---- + } + mch_remove(tmp); + vim_free(tmp); ++ vim_free(nummatches); + return TRUE; + } + else +*************** +*** 1275,1280 **** +--- 1282,1288 ---- + /* read output */ + cs_fill_results((char *)pat, totmatches, nummatches, &matches, + &contexts, &matched); ++ vim_free(nummatches); + if (matches == NULL) + return FALSE; + +*************** +*** 1328,1353 **** + } /* cs_help */ + + +- /* +- * PRIVATE: cs_init +- * +- * initialize cscope structure if not already +- */ +- static void +- cs_init() +- { +- short i; +- static int init_already = FALSE; +- +- if (init_already) +- return; +- +- for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) +- clear_csinfo(i); +- +- init_already = TRUE; +- } /* cs_init */ +- + static void + clear_csinfo(i) + int i; +--- 1336,1341 ---- +*************** +*** 1444,1450 **** + #endif + + i = -1; /* can be set to the index of an empty item in csinfo */ +! for (j = 0; j < CSCOPE_MAX_CONNECTIONS; j++) + { + if (csinfo[j].fname != NULL + #if defined(UNIX) +--- 1432,1438 ---- + #endif + + i = -1; /* can be set to the index of an empty item in csinfo */ +! for (j = 0; j < csinfo_size; j++) + { + if (csinfo[j].fname != NULL + #if defined(UNIX) +*************** +*** 1471,1479 **** + + if (i == -1) + { +! if (p_csverbose) +! (void)EMSG(_("E569: maximum number of cscope connections reached")); +! return -1; + } + + if ((csinfo[i].fname = (char *)alloc((unsigned)strlen(fname)+1)) == NULL) +--- 1459,1483 ---- + + if (i == -1) + { +! i = csinfo_size; +! if (csinfo_size == 0) +! { +! /* First time allocation: allocate only 1 connection. It should +! * be enough for most users. If more is needed, csinfo will be +! * reallocated. */ +! csinfo_size = 1; +! csinfo = (csinfo_T *)alloc_clear(sizeof(csinfo_T)); +! } +! else +! { +! /* Reallocate space for more connections. */ +! csinfo_size *= 2; +! csinfo = vim_realloc(csinfo, sizeof(csinfo_T)*csinfo_size); +! } +! if (csinfo == NULL) +! return -1; +! for (j = csinfo_size/2; j < csinfo_size; j++) +! clear_csinfo(j); + } + + if ((csinfo[i].fname = (char *)alloc((unsigned)strlen(fname)+1)) == NULL) +*************** +*** 1580,1594 **** + /* It must be part of a name. We will try to find a match + * within all the names in the csinfo data structure + */ +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (csinfo[i].fname != NULL && strstr(csinfo[i].fname, stok)) + break; + } + } + +! if ((i >= CSCOPE_MAX_CONNECTIONS || i < -1 || csinfo[i].fname == NULL) +! && i != -1) + { + if (p_csverbose) + (void)EMSG2(_("E261: cscope connection %s not found"), stok); +--- 1584,1597 ---- + /* It must be part of a name. We will try to find a match + * within all the names in the csinfo data structure + */ +! for (i = 0; i < csinfo_size; i++) + { + if (csinfo[i].fname != NULL && strstr(csinfo[i].fname, stok)) + break; + } + } + +! if ((i != -1) && (i >= csinfo_size || i < -1 || csinfo[i].fname == NULL)) + { + if (p_csverbose) + (void)EMSG2(_("E261: cscope connection %s not found"), stok); +*************** +*** 1597,1603 **** + { + if (i == -1) + { +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (csinfo[i].fname) + cs_kill_execute(i, csinfo[i].fname); +--- 1600,1606 ---- + { + if (i == -1) + { +! for (i = 0; i < csinfo_size; i++) + { + if (csinfo[i].fname) + cs_kill_execute(i, csinfo[i].fname); +*************** +*** 1857,1863 **** + if (buf == NULL) + return; + +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (nummatches_a[i] < 1) + continue; +--- 1860,1866 ---- + if (buf == NULL) + return; + +! for (i = 0; i < csinfo_size; i++) + { + if (nummatches_a[i] < 1) + continue; +*************** +*** 1929,1935 **** + if ((cntxts = (char **)alloc(sizeof(char *) * totmatches)) == NULL) + goto parse_out; + +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (nummatches_a[i] < 1) + continue; +--- 1932,1938 ---- + if ((cntxts = (char **)alloc(sizeof(char *) * totmatches)) == NULL) + goto parse_out; + +! for (i = 0; i < csinfo_size; i++) + { + if (nummatches_a[i] < 1) + continue; +*************** +*** 2383,2392 **** + int i; + char buf[20]; /* for sprintf " (#%d)" */ + + /* malloc our db and ppath list */ +! dblist = (char **)alloc(CSCOPE_MAX_CONNECTIONS * sizeof(char *)); +! pplist = (char **)alloc(CSCOPE_MAX_CONNECTIONS * sizeof(char *)); +! fllist = (char **)alloc(CSCOPE_MAX_CONNECTIONS * sizeof(char *)); + if (dblist == NULL || pplist == NULL || fllist == NULL) + { + vim_free(dblist); +--- 2386,2398 ---- + int i; + char buf[20]; /* for sprintf " (#%d)" */ + ++ if (csinfo_size == 0) ++ return CSCOPE_SUCCESS; ++ + /* malloc our db and ppath list */ +! dblist = (char **)alloc(csinfo_size * sizeof(char *)); +! pplist = (char **)alloc(csinfo_size * sizeof(char *)); +! fllist = (char **)alloc(csinfo_size * sizeof(char *)); + if (dblist == NULL || pplist == NULL || fllist == NULL) + { + vim_free(dblist); +*************** +*** 2395,2401 **** + return CSCOPE_FAILURE; + } + +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + dblist[i] = csinfo[i].fname; + pplist[i] = csinfo[i].ppath; +--- 2401,2407 ---- + return CSCOPE_FAILURE; + } + +! for (i = 0; i < csinfo_size; i++) + { + dblist[i] = csinfo[i].fname; + pplist[i] = csinfo[i].ppath; +*************** +*** 2405,2411 **** + } + + /* rebuild the cscope connection list */ +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (dblist[i] != NULL) + { +--- 2411,2417 ---- + } + + /* rebuild the cscope connection list */ +! for (i = 0; i < csinfo_size; i++) + { + if (dblist[i] != NULL) + { +*************** +*** 2502,2508 **** + MSG_PUTS_ATTR( + _(" # pid database name prepend path\n"), + hl_attr(HLF_T)); +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + { + if (csinfo[i].fname == NULL) + continue; +--- 2508,2514 ---- + MSG_PUTS_ATTR( + _(" # pid database name prepend path\n"), + hl_attr(HLF_T)); +! for (i = 0; i < csinfo_size; i++) + { + if (csinfo[i].fname == NULL) + continue; +*************** +*** 2531,2538 **** + { + int i; + +! for (i = 0; i < CSCOPE_MAX_CONNECTIONS; i++) + cs_release_csp(i, TRUE); + } + + #endif /* FEAT_CSCOPE */ +--- 2537,2546 ---- + { + int i; + +! for (i = 0; i < csinfo_size; i++) + cs_release_csp(i, TRUE); ++ vim_free(csinfo); ++ csinfo_size = 0; + } + + #endif /* FEAT_CSCOPE */ +*** ../vim-7.2.227/src/version.c 2009-07-09 20:13:59.000000000 +0200 +--- src/version.c 2009-07-09 21:21:48.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 228, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +84. Books in your bookcase bear the names Bongo, WinSock and Inside OLE + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.229 b/source/ap/vim/patches/7.2.229 new file mode 100644 index 000000000..bafaef0b8 --- /dev/null +++ b/source/ap/vim/patches/7.2.229 @@ -0,0 +1,60 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.229 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.229 +Problem: Warning for shadowed variable. +Solution: Rename "wait" to "wait_time". +Files: src/os_unix.c + + +*** ../vim-7.2.228/src/os_unix.c 2009-06-16 15:12:11.000000000 +0200 +--- src/os_unix.c 2009-07-09 16:24:14.000000000 +0200 +*************** +*** 1138,1147 **** + * to happen). + */ + { +! long wait; +! for (wait = 0; !sigcont_received && wait <= 3L; wait++) + /* Loop is not entered most of the time */ +! mch_delay(wait, FALSE); + } + # endif + +--- 1138,1147 ---- + * to happen). + */ + { +! long wait_time; +! for (wait_time = 0; !sigcont_received && wait_time <= 3L; wait_time++) + /* Loop is not entered most of the time */ +! mch_delay(wait_time, FALSE); + } + # endif + +*** ../vim-7.2.228/src/version.c 2009-07-09 21:22:36.000000000 +0200 +--- src/version.c 2009-07-14 12:18:21.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 229, + /**/ + +-- +From "know your smileys": + :-) Funny + |-) Funny Oriental + (-: Funny Australian + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.230 b/source/ap/vim/patches/7.2.230 new file mode 100644 index 000000000..32379d2c2 --- /dev/null +++ b/source/ap/vim/patches/7.2.230 @@ -0,0 +1,87 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.230 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.230 +Problem: A few old lint-style ARGUSED comments. +Solution: Change to the new UNUSED style. +Files: src/getchar.c + + +*** ../vim-7.2.229/src/getchar.c 2009-07-09 18:24:24.000000000 +0200 +--- src/getchar.c 2009-07-09 18:09:13.000000000 +0200 +*************** +*** 3708,3718 **** + * Clear all mappings or abbreviations. + * 'abbr' should be FALSE for mappings, TRUE for abbreviations. + */ +- /*ARGSUSED*/ + void + map_clear(cmdp, arg, forceit, abbr) + char_u *cmdp; +! char_u *arg; + int forceit; + int abbr; + { +--- 3708,3717 ---- + * Clear all mappings or abbreviations. + * 'abbr' should be FALSE for mappings, TRUE for abbreviations. + */ + void + map_clear(cmdp, arg, forceit, abbr) + char_u *cmdp; +! char_u *arg UNUSED; + int forceit; + int abbr; + { +*************** +*** 3741,3753 **** + /* + * Clear all mappings in "mode". + */ +- /*ARGSUSED*/ + void + map_clear_int(buf, mode, local, abbr) +! buf_T *buf; /* buffer for local mappings */ +! int mode; /* mode in which to delete */ +! int local; /* TRUE for buffer-local mappings */ +! int abbr; /* TRUE for abbreviations */ + { + mapblock_T *mp, **mpp; + int hash; +--- 3740,3751 ---- + /* + * Clear all mappings in "mode". + */ + void + map_clear_int(buf, mode, local, abbr) +! buf_T *buf UNUSED; /* buffer for local mappings */ +! int mode; /* mode in which to delete */ +! int local UNUSED; /* TRUE for buffer-local mappings */ +! int abbr; /* TRUE for abbreviations */ + { + mapblock_T *mp, **mpp; + int hash; +*** ../vim-7.2.229/src/version.c 2009-07-14 12:20:28.000000000 +0200 +--- src/version.c 2009-07-14 13:44:05.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 230, + /**/ + +-- +From "know your smileys": + :~) A man with a tape recorder up his nose + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.231 b/source/ap/vim/patches/7.2.231 new file mode 100644 index 000000000..0f9a6d1e8 --- /dev/null +++ b/source/ap/vim/patches/7.2.231 @@ -0,0 +1,49 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.231 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.231 +Problem: Warning for unreacheable code. +Solution: Add #ifdef. +Files: src/if_perl.xs + + +*** ../vim-7.2.230/src/if_perl.xs 2009-07-09 20:06:30.000000000 +0200 +--- src/if_perl.xs 2009-07-09 13:02:16.000000000 +0200 +*************** +*** 720,728 **** +--- 720,730 ---- + #ifdef HAVE_SANDBOX + if (sandbox) + { ++ # ifndef MAKE_TEST /* avoid a warning for unreachable code */ + if ((safe = perl_get_sv( "VIM::safe", FALSE )) == NULL || !SvTRUE(safe)) + EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module")); + else ++ # endif + { + PUSHMARK(SP); + XPUSHs(safe); +*** ../vim-7.2.230/src/version.c 2009-07-14 13:44:43.000000000 +0200 +--- src/version.c 2009-07-14 16:04:07.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 231, + /**/ + +-- +From "know your smileys": + ~#:-( I just washed my hair, and I can't do nuthin' with it. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.232 b/source/ap/vim/patches/7.2.232 new file mode 100644 index 000000000..02727c741 --- /dev/null +++ b/source/ap/vim/patches/7.2.232 @@ -0,0 +1,102 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.232 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.232 +Problem: Cannot debug problems with being in a wrong directory. +Solution: When 'verbose' is 5 or higher report directory changes. +Files: src/os_unix.c, src/os_unix.h, src/proto/os_unix.pro + + +*** ../vim-7.2.231/src/os_unix.c 2009-07-14 12:20:28.000000000 +0200 +--- src/os_unix.c 2009-07-14 17:13:15.000000000 +0200 +*************** +*** 319,324 **** +--- 319,341 ---- + {-1, "Unknown!", FALSE} + }; + ++ int ++ mch_chdir(path) ++ char *path; ++ { ++ if (p_verbose >= 5) ++ { ++ verbose_enter(); ++ smsg((char_u *)"chdir(%s)", path); ++ verbose_leave(); ++ } ++ # ifdef VMS ++ return chdir(vms_fixfilename(path)); ++ # else ++ return chdir(path); ++ # endif ++ } ++ + /* + * Write s[len] to the screen. + */ +*************** +*** 2424,2429 **** +--- 2441,2452 ---- + #ifdef HAVE_FCHDIR + if (fd >= 0) + { ++ if (p_verbose >= 5) ++ { ++ verbose_enter(); ++ MSG("fchdir() to previous dir"); ++ verbose_leave(); ++ } + l = fchdir(fd); + close(fd); + } +*** ../vim-7.2.231/src/os_unix.h 2009-05-16 16:36:25.000000000 +0200 +--- src/os_unix.h 2009-07-14 16:55:05.000000000 +0200 +*************** +*** 482,492 **** + # else + int mch_rename __ARGS((const char *src, const char *dest)); + # endif +- # ifdef VMS +- # define mch_chdir(s) chdir(vms_fixfilename(s)) +- # else +- # define mch_chdir(s) chdir(s) +- # endif + # ifndef VMS + # ifdef __MVS__ + /* on OS390 Unix getenv() doesn't return a pointer to persistent +--- 482,487 ---- +*** ../vim-7.2.231/src/proto/os_unix.pro 2008-06-24 23:58:57.000000000 +0200 +--- src/proto/os_unix.pro 2009-07-14 16:58:08.000000000 +0200 +*************** +*** 1,4 **** +--- 1,5 ---- + /* os_unix.c */ ++ int mch_chdir __ARGS((char *path)); + void mch_write __ARGS((char_u *s, int len)); + int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt)); + int mch_char_avail __ARGS((void)); +*** ../vim-7.2.231/src/version.c 2009-07-14 16:05:14.000000000 +0200 +--- src/version.c 2009-07-14 17:37:15.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 232, + /**/ + +-- +From "know your smileys": + O:-) Saint + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.233 b/source/ap/vim/patches/7.2.233 new file mode 100644 index 000000000..f9fbd848d --- /dev/null +++ b/source/ap/vim/patches/7.2.233 @@ -0,0 +1,96 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.233 (extra) +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.233 (extra part of 7.2.232) +Problem: Cannot debug problems with being in a wrong directory. +Solution: When 'verbose' is 5 or higher report directory changes. +Files: src/os_msdos.c, src/os_mswin.c, src/os_riscos.c, src/os_mac.h + + +*** ../vim-7.2.232/src/os_msdos.c 2008-06-24 23:30:18.000000000 +0200 +--- src/os_msdos.c 2009-07-14 16:50:57.000000000 +0200 +*************** +*** 2039,2044 **** +--- 2039,2050 ---- + { + if (path[0] == NUL) /* just checking... */ + return 0; ++ if (p_verbose >= 5) ++ { ++ verbose_enter(); ++ smsg((char_u *)"chdir(%s)", path); ++ verbose_leave(); ++ } + if (path[1] == ':') /* has a drive name */ + { + if (change_drive(TOLOWER_ASC(path[0]) - 'a' + 1)) +*** ../vim-7.2.232/src/os_mswin.c 2009-05-14 22:00:37.000000000 +0200 +--- src/os_mswin.c 2009-07-14 16:53:03.000000000 +0200 +*************** +*** 653,658 **** +--- 653,664 ---- + if (path[0] == NUL) /* just checking... */ + return -1; + ++ if (p_verbose >= 5) ++ { ++ verbose_enter(); ++ smsg((char_u *)"chdir(%s)", path); ++ verbose_leave(); ++ } + if (isalpha(path[0]) && path[1] == ':') /* has a drive name */ + { + /* If we can change to the drive, skip that part of the path. If we +*** ../vim-7.2.232/src/os_riscos.c 2006-03-07 23:25:50.000000000 +0100 +--- src/os_riscos.c 2009-07-14 16:53:35.000000000 +0200 +*************** +*** 1203,1208 **** +--- 1203,1214 ---- + int retval; + char_u *new_dir; + ++ if (p_verbose >= 5) ++ { ++ verbose_enter(); ++ smsg((char_u *)"chdir(%s)", dir); ++ verbose_leave(); ++ } + length = strlen(dir); + if (dir[length - 1] != '.') + return chdir(dir); /* No trailing dots - nothing to do. */ +*** ../vim-7.2.232/src/os_mac.h 2009-06-24 16:41:01.000000000 +0200 +--- src/os_mac.h 2009-07-14 16:54:33.000000000 +0200 +*************** +*** 291,297 **** + # define HAVE_SETENV + # define HAVE_RENAME + # endif +- # define mch_chdir(s) chdir(s) + #endif + + #if defined(MACOS_X) && !defined(HAVE_CONFIG_H) +--- 291,296 ---- +*** ../vim-7.2.232/src/version.c 2009-07-14 17:38:51.000000000 +0200 +--- src/version.c 2009-07-14 18:35:30.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 233, + /**/ + +-- +From "know your smileys": + :-O>-o Smiley American tourist (note big mouth and camera) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.234 b/source/ap/vim/patches/7.2.234 new file mode 100644 index 000000000..dd44d5d00 --- /dev/null +++ b/source/ap/vim/patches/7.2.234 @@ -0,0 +1,111 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.234 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.234 +Problem: It is not possible to ignore file names without a suffix. +Solution: Use an empty entry in 'suffixes' for file names without a dot. +Files: runtime/doc/cmdline.txt, src/misc1.c + + +*** ../vim-7.2.233/runtime/doc/cmdline.txt 2008-11-09 13:43:25.000000000 +0100 +--- runtime/doc/cmdline.txt 2009-07-14 13:35:56.000000000 +0200 +*************** +*** 441,453 **** + those files with an extension that is in the 'suffixes' option are ignored. + The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending + in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored. +! It is impossible to ignore suffixes with two dots. Examples: + + pattern: files: match: ~ + test* test.c test.h test.o test.c + test* test.h test.o test.h and test.o + test* test.i test.h test.c test.i and test.c + + If there is more than one matching file (after ignoring the ones matching + the 'suffixes' option) the first file name is inserted. You can see that + there is only one match when you type 'wildchar' twice and the completed +--- 439,458 ---- + those files with an extension that is in the 'suffixes' option are ignored. + The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending + in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored. +! +! An empty entry, two consecutive commas, match a file name that does not +! contain a ".", thus has no suffix. This is useful to ignore "prog" and prefer +! "prog.c". +! +! Examples: + + pattern: files: match: ~ + test* test.c test.h test.o test.c + test* test.h test.o test.h and test.o + test* test.i test.h test.c test.i and test.c + ++ It is impossible to ignore suffixes with two dots. ++ + If there is more than one matching file (after ignoring the ones matching + the 'suffixes' option) the first file name is inserted. You can see that + there is only one match when you type 'wildchar' twice and the completed +*** ../vim-7.2.233/src/misc1.c 2009-07-09 20:06:30.000000000 +0200 +--- src/misc1.c 2009-07-14 15:51:55.000000000 +0200 +*************** +*** 8533,8543 **** + for (setsuf = p_su; *setsuf; ) + { + setsuflen = copy_option_part(&setsuf, suf_buf, MAXSUFLEN, ".,"); +! if (fnamelen >= setsuflen +! && fnamencmp(suf_buf, fname + fnamelen - setsuflen, +! (size_t)setsuflen) == 0) +! break; +! setsuflen = 0; + } + return (setsuflen != 0); + } +--- 8534,8558 ---- + for (setsuf = p_su; *setsuf; ) + { + setsuflen = copy_option_part(&setsuf, suf_buf, MAXSUFLEN, ".,"); +! if (setsuflen == 0) +! { +! char_u *tail = gettail(fname); +! +! /* empty entry: match name without a '.' */ +! if (vim_strchr(tail, '.') == NULL) +! { +! setsuflen = 1; +! break; +! } +! } +! else +! { +! if (fnamelen >= setsuflen +! && fnamencmp(suf_buf, fname + fnamelen - setsuflen, +! (size_t)setsuflen) == 0) +! break; +! setsuflen = 0; +! } + } + return (setsuflen != 0); + } +*** ../vim-7.2.233/src/version.c 2009-07-14 18:38:09.000000000 +0200 +--- src/version.c 2009-07-14 21:38:30.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 234, + /**/ + +-- +How many light bulbs does it take to change a person? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.235 b/source/ap/vim/patches/7.2.235 new file mode 100644 index 000000000..6aa8338eb --- /dev/null +++ b/source/ap/vim/patches/7.2.235 @@ -0,0 +1,94 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.235 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.235 +Problem: Using CTRL-O z= in Insert mode has a delay before redrawing. +Solution: Reset msg_didout and msg_scroll. +Files: src/misc1.c, src/spell.c + + +*** ../vim-7.2.234/src/misc1.c 2009-07-14 21:40:30.000000000 +0200 +--- src/misc1.c 2009-07-14 15:51:55.000000000 +0200 +*************** +*** 3276,3281 **** +--- 3276,3282 ---- + cmdline_row = msg_row - 1; + need_wait_return = FALSE; + msg_didany = FALSE; ++ msg_didout = FALSE; + } + else + cmdline_row = save_cmdline_row; +*** ../vim-7.2.234/src/spell.c 2009-05-17 13:30:58.000000000 +0200 +--- src/spell.c 2009-07-14 15:57:55.000000000 +0200 +*************** +*** 10252,10257 **** +--- 10252,10258 ---- + int limit; + int selected = count; + int badlen = 0; ++ int msg_scroll_save = msg_scroll; + + if (no_spell_checking(curwin)) + return; +*************** +*** 10416,10422 **** + selected = prompt_for_number(&mouse_used); + if (mouse_used) + selected -= lines_left; +! lines_left = Rows; /* avoid more prompt */ + } + + if (selected > 0 && selected <= sug.su_ga.ga_len && u_save_cursor() == OK) +--- 10417,10425 ---- + selected = prompt_for_number(&mouse_used); + if (mouse_used) + selected -= lines_left; +! lines_left = Rows; /* avoid more prompt */ +! /* don't delay for 'smd' in normal_cmd() */ +! msg_scroll = msg_scroll_save; + } + + if (selected > 0 && selected <= sug.su_ga.ga_len && u_save_cursor() == OK) +*************** +*** 10441,10447 **** + } + + /* Replace the word. */ +! p = alloc((unsigned)STRLEN(line) - stp->st_orglen + stp->st_wordlen + 1); + if (p != NULL) + { + c = (int)(sug.su_badptr - line); +--- 10444,10451 ---- + } + + /* Replace the word. */ +! p = alloc((unsigned)STRLEN(line) - stp->st_orglen +! + stp->st_wordlen + 1); + if (p != NULL) + { + c = (int)(sug.su_badptr - line); +*** ../vim-7.2.234/src/version.c 2009-07-14 21:40:30.000000000 +0200 +--- src/version.c 2009-07-22 11:00:34.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 235, + /**/ + +-- +From "know your smileys": + |-( Contact lenses, but has lost them + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.236 b/source/ap/vim/patches/7.2.236 new file mode 100644 index 000000000..aeb1f57d0 --- /dev/null +++ b/source/ap/vim/patches/7.2.236 @@ -0,0 +1,81 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.236 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.236 +Problem: Mac: Compiling with Ruby doesn't always work. +Solution: In configure filter out the --arch argument (Bjorn Winckler) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.2.235/src/configure.in 2009-05-26 22:58:43.000000000 +0200 +--- src/configure.in 2009-07-14 16:09:34.000000000 +0200 +*************** +*** 984,990 **** + fi + rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'` + if test "X$rubyldflags" != "X"; then +! LDFLAGS="$rubyldflags $LDFLAGS" + fi + RUBY_SRC="if_ruby.c" + RUBY_OBJ="objects/if_ruby.o" +--- 984,996 ---- + fi + rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'` + if test "X$rubyldflags" != "X"; then +! dnl Ruby on Mac OS X 10.5 adds "-arch" flags but these should only +! dnl be included if requested by passing --with-mac-arch to +! dnl configure, so strip these flags first (if present) +! rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//'` +! if test "X$rubyldflags" != "X"; then +! LDFLAGS="$rubyldflags $LDFLAGS" +! fi + fi + RUBY_SRC="if_ruby.c" + RUBY_OBJ="objects/if_ruby.o" +*** ../vim-7.2.235/src/auto/configure 2009-05-26 22:58:43.000000000 +0200 +--- src/auto/configure 2009-07-14 16:11:58.000000000 +0200 +*************** +*** 5780,5786 **** + fi + rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LDFLAGS"]'` + if test "X$rubyldflags" != "X"; then +! LDFLAGS="$rubyldflags $LDFLAGS" + fi + RUBY_SRC="if_ruby.c" + RUBY_OBJ="objects/if_ruby.o" +--- 5780,5789 ---- + fi + rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG["LDFLAGS"]'` + if test "X$rubyldflags" != "X"; then +! rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//'` +! if test "X$rubyldflags" != "X"; then +! LDFLAGS="$rubyldflags $LDFLAGS" +! fi + fi + RUBY_SRC="if_ruby.c" + RUBY_OBJ="objects/if_ruby.o" +*** ../vim-7.2.235/src/version.c 2009-07-22 11:03:38.000000000 +0200 +--- src/version.c 2009-07-22 11:14:38.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 236, + /**/ + +-- +From "know your smileys": + <|-) Chinese + <|-( Chinese and doesn't like these kind of jokes + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.237 b/source/ap/vim/patches/7.2.237 new file mode 100644 index 000000000..3592d3d6a --- /dev/null +++ b/source/ap/vim/patches/7.2.237 @@ -0,0 +1,76 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.237 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.237 +Problem: Crash on exit when window icon not set. +Solution: Copy terminal name when using it for the icon name. +Files: src/os_unix.c + + +*** ../vim-7.2.236/src/os_unix.c 2009-07-14 17:38:51.000000000 +0200 +--- src/os_unix.c 2009-07-14 18:30:04.000000000 +0200 +*************** +*** 1734,1742 **** + if (oldicon == NULL && !test_only) + { + if (STRNCMP(T_NAME, "builtin_", 8) == 0) +! oldicon = T_NAME + 8; + else +! oldicon = T_NAME; + } + + return retval; +--- 1734,1742 ---- + if (oldicon == NULL && !test_only) + { + if (STRNCMP(T_NAME, "builtin_", 8) == 0) +! oldicon = vim_strsave(T_NAME + 8); + else +! oldicon = vim_strsave(T_NAME); + } + + return retval; +*************** +*** 1939,1947 **** + if (!test_only) + { + if (STRNCMP(T_NAME, "builtin_", 8) == 0) +! oldicon = T_NAME + 8; + else +! oldicon = T_NAME; + } + return FALSE; + } +--- 1939,1947 ---- + if (!test_only) + { + if (STRNCMP(T_NAME, "builtin_", 8) == 0) +! oldicon = vim_strsave(T_NAME + 8); + else +! oldicon = vim_strsave(T_NAME); + } + return FALSE; + } +*** ../vim-7.2.236/src/version.c 2009-07-22 11:16:54.000000000 +0200 +--- src/version.c 2009-07-22 13:26:30.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 237, + /**/ + +-- +Common sense is what tells you that the world is flat. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.238 b/source/ap/vim/patches/7.2.238 new file mode 100644 index 000000000..a70976d8f --- /dev/null +++ b/source/ap/vim/patches/7.2.238 @@ -0,0 +1,117 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.238 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.238 +Problem: Leaking memory when setting term to "builtin_dumb". +Solution: Free memory when resetting term option t_Co. +Files: src/option.c, src/proto/option.pro, src/term.c + + +*** ../vim-7.2.237/src/option.c 2009-06-16 17:50:56.000000000 +0200 +--- src/option.c 2009-07-22 12:49:19.000000000 +0200 +*************** +*** 403,410 **** + #define P_NUM 0x02 /* the option is numeric */ + #define P_STRING 0x04 /* the option is a string */ + #define P_ALLOCED 0x08 /* the string option is in allocated memory, +! must use vim_free() when assigning new +! value. Not set if default is the same. */ + #define P_EXPAND 0x10 /* environment expansion. NOTE: P_EXPAND can + never be used for local or hidden options! */ + #define P_NODEFAULT 0x40 /* don't set to default value */ +--- 403,411 ---- + #define P_NUM 0x02 /* the option is numeric */ + #define P_STRING 0x04 /* the option is a string */ + #define P_ALLOCED 0x08 /* the string option is in allocated memory, +! must use free_string_option() when +! assigning new value. Not set if default is +! the same. */ + #define P_EXPAND 0x10 /* environment expansion. NOTE: P_EXPAND can + never be used for local or hidden options! */ + #define P_NODEFAULT 0x40 /* don't set to default value */ +*************** +*** 8927,8932 **** +--- 8928,8955 ---- + } + + /* ++ * Free the string for one term option, if it was allocated. ++ * Set the string to empty_option and clear allocated flag. ++ * "var" points to the option value. ++ */ ++ void ++ free_one_termoption(var) ++ char_u *var; ++ { ++ struct vimoption *p; ++ ++ for (p = &options[0]; p->fullname != NULL; p++) ++ if (p->var == var) ++ { ++ if (p->flags & P_ALLOCED) ++ free_string_option(*(char_u **)(p->var)); ++ *(char_u **)(p->var) = empty_option; ++ p->flags &= ~P_ALLOCED; ++ break; ++ } ++ } ++ ++ /* + * Set the terminal option defaults to the current value. + * Used after setting the terminal name. + */ +*** ../vim-7.2.237/src/proto/option.pro 2009-02-21 20:27:00.000000000 +0100 +--- src/proto/option.pro 2009-07-22 12:52:31.000000000 +0200 +*************** +*** 29,34 **** +--- 29,35 ---- + int makefoldset __ARGS((FILE *fd)); + void clear_termoptions __ARGS((void)); + void free_termoptions __ARGS((void)); ++ void free_one_termoption __ARGS((char_u *var)); + void set_term_defaults __ARGS((void)); + void comp_col __ARGS((void)); + char_u *get_equalprg __ARGS((void)); +*** ../vim-7.2.237/src/term.c 2009-06-16 14:31:56.000000000 +0200 +--- src/term.c 2009-07-22 13:19:59.000000000 +0200 +*************** +*** 2881,2887 **** + + /* if 'Sb' and 'AB' are not defined, reset "Co" */ + if (*T_CSB == NUL && *T_CAB == NUL) +! T_CCO = empty_option; + + /* Set 'weirdinvert' according to value of 't_xs' */ + p_wiv = (*T_XS != NUL); +--- 2881,2887 ---- + + /* if 'Sb' and 'AB' are not defined, reset "Co" */ + if (*T_CSB == NUL && *T_CAB == NUL) +! free_one_termoption(T_CCO); + + /* Set 'weirdinvert' according to value of 't_xs' */ + p_wiv = (*T_XS != NUL); +*** ../vim-7.2.237/src/version.c 2009-07-22 13:27:50.000000000 +0200 +--- src/version.c 2009-07-22 14:25:44.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 238, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +95. Only communication in your household is through email. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.239 b/source/ap/vim/patches/7.2.239 new file mode 100644 index 000000000..26b80ee28 --- /dev/null +++ b/source/ap/vim/patches/7.2.239 @@ -0,0 +1,145 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.239 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.239 +Problem: Using :diffpatch twice or when patching fails causes memory + corruption and/or a crash. (Bryan Venteicher) +Solution: Detect missing output file. Avoid using non-existing buffer. +Files: src/diff.c + + +*** ../vim-7.2.238/src/diff.c 2009-05-14 22:19:19.000000000 +0200 +--- src/diff.c 2009-07-22 16:06:21.000000000 +0200 +*************** +*** 893,898 **** +--- 893,899 ---- + char_u *browseFile = NULL; + int browse_flag = cmdmod.browse; + #endif ++ struct stat st; + + #ifdef FEAT_BROWSE + if (cmdmod.browse) +*************** +*** 999,1042 **** + STRCAT(buf, ".rej"); + mch_remove(buf); + +! if (curbuf->b_fname != NULL) + { +! newname = vim_strnsave(curbuf->b_fname, + (int)(STRLEN(curbuf->b_fname) + 4)); +! if (newname != NULL) +! STRCAT(newname, ".new"); +! } + + #ifdef FEAT_GUI +! need_mouse_correct = TRUE; + #endif +! /* don't use a new tab page, each tab page has its own diffs */ +! cmdmod.tab = 0; +! +! if (win_split(0, (diff_flags & DIFF_VERTICAL) ? WSP_VERT : 0) != FAIL) +! { +! /* Pretend it was a ":split fname" command */ +! eap->cmdidx = CMD_split; +! eap->arg = tmp_new; +! do_exedit(eap, old_curwin); + +! if (curwin != old_curwin) /* split must have worked */ + { +! /* Set 'diff', 'scrollbind' on and 'wrap' off. */ +! diff_win_options(curwin, TRUE); +! diff_win_options(old_curwin, TRUE); + +! if (newname != NULL) + { +! /* do a ":file filename.new" on the patched buffer */ +! eap->arg = newname; +! ex_file(eap); + + #ifdef FEAT_AUTOCMD +! /* Do filetype detection with the new name. */ +! if (au_has_group((char_u *)"filetypedetect")) +! do_cmdline_cmd((char_u *)":doau filetypedetect BufRead"); + #endif + } + } + } +--- 1000,1050 ---- + STRCAT(buf, ".rej"); + mch_remove(buf); + +! /* Only continue if the output file was created. */ +! if (mch_stat((char *)tmp_new, &st) < 0 || st.st_size == 0) +! EMSG(_("E816: Cannot read patch output")); +! else + { +! if (curbuf->b_fname != NULL) +! { +! newname = vim_strnsave(curbuf->b_fname, + (int)(STRLEN(curbuf->b_fname) + 4)); +! if (newname != NULL) +! STRCAT(newname, ".new"); +! } + + #ifdef FEAT_GUI +! need_mouse_correct = TRUE; + #endif +! /* don't use a new tab page, each tab page has its own diffs */ +! cmdmod.tab = 0; + +! if (win_split(0, (diff_flags & DIFF_VERTICAL) ? WSP_VERT : 0) != FAIL) + { +! /* Pretend it was a ":split fname" command */ +! eap->cmdidx = CMD_split; +! eap->arg = tmp_new; +! do_exedit(eap, old_curwin); + +! /* check that split worked and editing tmp_new */ +! if (curwin != old_curwin && win_valid(old_curwin)) + { +! /* Set 'diff', 'scrollbind' on and 'wrap' off. */ +! diff_win_options(curwin, TRUE); +! diff_win_options(old_curwin, TRUE); +! +! if (newname != NULL) +! { +! /* do a ":file filename.new" on the patched buffer */ +! eap->arg = newname; +! ex_file(eap); + + #ifdef FEAT_AUTOCMD +! /* Do filetype detection with the new name. */ +! if (au_has_group((char_u *)"filetypedetect")) +! do_cmdline_cmd((char_u *)":doau filetypedetect BufRead"); + #endif ++ } + } + } + } +*** ../vim-7.2.238/src/version.c 2009-07-22 14:27:33.000000000 +0200 +--- src/version.c 2009-07-22 16:21:29.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 239, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +97. Your mother tells you to remember something, and you look for + a File/Save command. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.240 b/source/ap/vim/patches/7.2.240 new file mode 100644 index 000000000..7a1c22e2b --- /dev/null +++ b/source/ap/vim/patches/7.2.240 @@ -0,0 +1,69 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.240 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.240 +Problem: Crash when using find/replace dialog repeatedly. (Michiel + Hartsuiker) +Solution: Avoid doing the operation while busy or recursively. Also refuse + replace when text is locked. +Files: src/gui.c + + +*** ../vim-7.2.239/src/gui.c 2009-06-24 18:31:36.000000000 +0200 +--- src/gui.c 2009-07-22 16:54:16.000000000 +0200 +*************** +*** 5004,5009 **** +--- 5004,5022 ---- + char_u *p; + regmatch_T regmatch; + int save_did_emsg = did_emsg; ++ static int busy = FALSE; ++ ++ /* When the screen is being updated we should not change buffers and ++ * windows structures, it may cause freed memory to be used. Also don't ++ * do this recursively (pressing "Find" quickly several times. */ ++ if (updating_screen || busy) ++ return FALSE; ++ ++ /* refuse replace when text cannot be changed */ ++ if ((type == FRD_REPLACE || type == FRD_REPLACEALL) && text_locked()) ++ return FALSE; ++ ++ busy = TRUE; + + ga_init2(&ga, 1, 100); + if (type == FRD_REPLACEALL) +*************** +*** 5094,5099 **** +--- 5107,5113 ---- + } + + vim_free(ga.ga_data); ++ busy = FALSE; + return (ga.ga_len > 0); + } + +*** ../vim-7.2.239/src/version.c 2009-07-22 16:22:33.000000000 +0200 +--- src/version.c 2009-07-29 11:09:13.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 240, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +113. You are asked about a bus schedule, you wonder if it is 16 or 32 bits. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.241 b/source/ap/vim/patches/7.2.241 new file mode 100644 index 000000000..42e9ade39 --- /dev/null +++ b/source/ap/vim/patches/7.2.241 @@ -0,0 +1,169 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.241 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.241 +Problem: When using a combination of ":bufdo" and "doautoall" we may end up + in the wrong directory. (Ajit Thakkar) + Crash when triggering an autocommand in ":vimgrep". (Yukihiro + Nakadaira) +Solution: Clear w_localdir and globaldir when using the aucmd_win. + Use a separate flag to decide aucmd_win needs to be restored. +Files: src/fileio.c, src/globals.h, src/structs.h + + +*** ../vim-7.2.240/src/fileio.c 2009-07-01 17:11:40.000000000 +0200 +--- src/fileio.c 2009-07-22 19:08:55.000000000 +0200 +*************** +*** 8420,8425 **** +--- 8420,8429 ---- + if (aucmd_win == NULL) + win = curwin; + } ++ if (win == NULL && aucmd_win_used) ++ /* Strange recursive autocommand, fall back to using the current ++ * window. Expect a few side effects... */ ++ win = curwin; + + aco->save_curwin = curwin; + aco->save_curbuf = curbuf; +*************** +*** 8428,8433 **** +--- 8432,8438 ---- + /* There is a window for "buf" in the current tab page, make it the + * curwin. This is preferred, it has the least side effects (esp. if + * "buf" is curbuf). */ ++ aco->use_aucmd_win = FALSE; + curwin = win; + } + else +*************** +*** 8436,8444 **** +--- 8441,8460 ---- + * effects, insert it in a the current tab page. + * Anything related to a window (e.g., setting folds) may have + * unexpected results. */ ++ aco->use_aucmd_win = TRUE; ++ aucmd_win_used = TRUE; + aucmd_win->w_buffer = buf; + ++buf->b_nwindows; + win_init_empty(aucmd_win); /* set cursor and topline to safe values */ ++ vim_free(aucmd_win->w_localdir); ++ aucmd_win->w_localdir = NULL; ++ ++ /* Make sure w_localdir and globaldir are NULL to avoid a chdir() in ++ * win_enter_ext(). */ ++ aucmd_win->w_localdir = NULL; ++ aco->globaldir = globaldir; ++ globaldir = NULL; ++ + + #ifdef FEAT_WINDOWS + /* Split the current window, put the aucmd_win in the upper half. +*************** +*** 8472,8478 **** + int dummy; + #endif + +! if (aco->new_curwin == aucmd_win) + { + --curbuf->b_nwindows; + #ifdef FEAT_WINDOWS +--- 8488,8494 ---- + int dummy; + #endif + +! if (aco->use_aucmd_win) + { + --curbuf->b_nwindows; + #ifdef FEAT_WINDOWS +*************** +*** 8499,8504 **** +--- 8515,8521 ---- + /* Remove the window and frame from the tree of frames. */ + (void)winframe_remove(curwin, &dummy, NULL); + win_remove(curwin, NULL); ++ aucmd_win_used = FALSE; + last_status(FALSE); /* may need to remove last status line */ + restore_snapshot(SNAP_AUCMD_IDX, FALSE); + (void)win_comp_pos(); /* recompute window positions */ +*************** +*** 8517,8522 **** +--- 8534,8542 ---- + #endif + curbuf = curwin->w_buffer; + ++ vim_free(globaldir); ++ globaldir = aco->globaldir; ++ + /* the buffer contents may have changed */ + check_cursor(); + if (curwin->w_topline > curbuf->b_ml.ml_line_count) +*************** +*** 8541,8547 **** + #endif + { + /* Restore the buffer which was previously edited by curwin, if +! * it was chagned, we are still the same window and the buffer is + * valid. */ + if (curwin == aco->new_curwin + && curbuf != aco->new_curbuf +--- 8561,8567 ---- + #endif + { + /* Restore the buffer which was previously edited by curwin, if +! * it was changed, we are still the same window and the buffer is + * valid. */ + if (curwin == aco->new_curwin + && curbuf != aco->new_curbuf +*** ../vim-7.2.240/src/globals.h 2009-06-16 16:01:34.000000000 +0200 +--- src/globals.h 2009-07-22 19:50:53.000000000 +0200 +*************** +*** 541,546 **** +--- 541,547 ---- + + #ifdef FEAT_AUTOCMD + EXTERN win_T *aucmd_win; /* window used in aucmd_prepbuf() */ ++ EXTERN int aucmd_win_used INIT(= FALSE); /* aucmd_win is being used */ + #endif + + /* +*** ../vim-7.2.240/src/structs.h 2009-07-09 18:24:24.000000000 +0200 +--- src/structs.h 2009-07-22 18:58:35.000000000 +0200 +*************** +*** 2288,2296 **** +--- 2288,2298 ---- + { + buf_T *save_curbuf; /* saved curbuf */ + #ifdef FEAT_AUTOCMD ++ int use_aucmd_win; /* using aucmd_win */ + win_T *save_curwin; /* saved curwin */ + win_T *new_curwin; /* new curwin */ + buf_T *new_curbuf; /* new curbuf */ ++ char_u *globaldir; /* saved value of globaldir */ + #endif + } aco_save_T; + +*** ../vim-7.2.240/src/version.c 2009-07-29 11:10:31.000000000 +0200 +--- src/version.c 2009-07-29 12:06:31.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 241, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +114. You are counting items, you go "0,1,2,3,4,5,6,7,8,9,A,B,C,D...". + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.242 b/source/ap/vim/patches/7.2.242 new file mode 100644 index 000000000..22341cd2e --- /dev/null +++ b/source/ap/vim/patches/7.2.242 @@ -0,0 +1,89 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.242 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.242 +Problem: Setting 'lazyredraw' causes the cursor column to be recomputed. + (Tom Link) +Solution: Only recompute the cursor column for a boolean option if changes + the cursor position. +Files: src/option.c + + +*** ../vim-7.2.241/src/option.c 2009-07-22 14:27:33.000000000 +0200 +--- src/option.c 2009-07-29 10:03:39.000000000 +0200 +*************** +*** 7194,7199 **** +--- 7194,7207 ---- + compatible_set(); + } + ++ /* 'list', 'number' */ ++ else if ((int *)varp == &curwin->w_p_list ++ || (int *)varp == &curwin->w_p_nu) ++ { ++ if (curwin->w_curswant != MAXCOL) ++ curwin->w_set_curswant = TRUE; ++ } ++ + else if ((int *)varp == &curbuf->b_p_ro) + { + /* when 'readonly' is reset globally, also reset readonlymode */ +*************** +*** 7645,7650 **** +--- 7653,7666 ---- + curbuf->b_p_imsearch = B_IMODE_USE_INSERT; + # endif + } ++ if (curwin->w_curswant != MAXCOL) ++ curwin->w_set_curswant = TRUE; ++ } ++ ++ else if ((int *)varp == &p_arshape) ++ { ++ if (curwin->w_curswant != MAXCOL) ++ curwin->w_set_curswant = TRUE; + } + #endif + +*************** +*** 7655,7662 **** + options[opt_idx].flags |= P_WAS_SET; + + comp_col(); /* in case 'ruler' or 'showcmd' changed */ +! if (curwin->w_curswant != MAXCOL) +! curwin->w_set_curswant = TRUE; /* in case 'list' changed */ + check_redraw(options[opt_idx].flags); + + return NULL; +--- 7671,7677 ---- + options[opt_idx].flags |= P_WAS_SET; + + comp_col(); /* in case 'ruler' or 'showcmd' changed */ +! + check_redraw(options[opt_idx].flags); + + return NULL; +*** ../vim-7.2.241/src/version.c 2009-07-29 12:09:49.000000000 +0200 +--- src/version.c 2009-07-29 15:40:43.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 242, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +117. You are more comfortable typing in html. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.243 b/source/ap/vim/patches/7.2.243 new file mode 100644 index 000000000..92a6580db --- /dev/null +++ b/source/ap/vim/patches/7.2.243 @@ -0,0 +1,67 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.243 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.243 +Problem: Memory leak when using :vimgrep and resizing. (Dominique Pelle) +Solution: Free memory for aucmd_win when resizing and don't allocate it + twice. +Files: src/screen.c + + +*** ../vim-7.2.242/src/screen.c 2009-06-16 17:22:38.000000000 +0200 +--- src/screen.c 2009-07-29 15:59:37.000000000 +0200 +*************** +*** 7467,7472 **** +--- 7467,7476 ---- + */ + FOR_ALL_TAB_WINDOWS(tp, wp) + win_free_lsize(wp); ++ #ifdef FEAT_AUTOCMD ++ if (aucmd_win != NULL) ++ win_free_lsize(aucmd_win); ++ #endif + + new_ScreenLines = (schar_T *)lalloc((long_u)( + (Rows + 1) * Columns * sizeof(schar_T)), FALSE); +*************** +*** 7504,7510 **** + } + } + #ifdef FEAT_AUTOCMD +! if (aucmd_win != NULL && win_alloc_lines(aucmd_win) == FAIL) + outofmem = TRUE; + #endif + #ifdef FEAT_WINDOWS +--- 7508,7515 ---- + } + } + #ifdef FEAT_AUTOCMD +! if (aucmd_win != NULL && aucmd_win->w_lines == NULL +! && win_alloc_lines(aucmd_win) == FAIL) + outofmem = TRUE; + #endif + #ifdef FEAT_WINDOWS +*** ../vim-7.2.242/src/version.c 2009-07-29 15:41:32.000000000 +0200 +--- src/version.c 2009-07-29 16:07:47.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 243, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +118. You are on a first-name basis with your ISP's staff. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.244 b/source/ap/vim/patches/7.2.244 new file mode 100644 index 000000000..6c9b1fb80 --- /dev/null +++ b/source/ap/vim/patches/7.2.244 @@ -0,0 +1,174 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.244 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.244 +Problem: When 'enc' is utf-8 and 'fenc' is latin1, writing a non-latin1 + character gives a conversion error without any hint what is wrong. +Solution: When known add the line number to the error message. +Files: src/fileio.c + + +*** ../vim-7.2.243/src/fileio.c 2009-07-29 12:09:49.000000000 +0200 +--- src/fileio.c 2009-07-29 17:04:06.000000000 +0200 +*************** +*** 121,126 **** +--- 121,128 ---- + char_u *bw_conv_buf; /* buffer for writing converted chars */ + int bw_conv_buflen; /* size of bw_conv_buf */ + int bw_conv_error; /* set for conversion error */ ++ linenr_T bw_conv_error_lnum; /* first line with error or zero */ ++ linenr_T bw_start_lnum; /* line number at start of buffer */ + # ifdef USE_ICONV + iconv_t bw_iconv_fd; /* descriptor for iconv() or -1 */ + # endif +*************** +*** 2924,2929 **** +--- 2925,2931 ---- + linenr_T lnum; + long nchars; + char_u *errmsg = NULL; ++ int errmsg_allocated = FALSE; + char_u *errnum = NULL; + char_u *buffer; + char_u smallbuf[SMBUFSIZE]; +*************** +*** 2987,2992 **** +--- 2989,2995 ---- + /* must init bw_conv_buf and bw_iconv_fd before jumping to "fail" */ + write_info.bw_conv_buf = NULL; + write_info.bw_conv_error = FALSE; ++ write_info.bw_conv_error_lnum = 0; + write_info.bw_restlen = 0; + # ifdef USE_ICONV + write_info.bw_iconv_fd = (iconv_t)-1; +*************** +*** 4243,4248 **** +--- 4245,4251 ---- + nchars += write_info.bw_len; + } + } ++ write_info.bw_start_lnum = start; + #endif + + write_info.bw_len = bufsize; +*************** +*** 4278,4283 **** +--- 4281,4289 ---- + nchars += bufsize; + s = buffer; + len = 0; ++ #ifdef FEAT_MBYTE ++ write_info.bw_start_lnum = lnum; ++ #endif + } + /* write failed or last line has no EOL: stop here */ + if (end == 0 +*************** +*** 4474,4480 **** + { + #ifdef FEAT_MBYTE + if (write_info.bw_conv_error) +! errmsg = (char_u *)_("E513: write error, conversion failed (make 'fenc' empty to override)"); + else + #endif + if (got_int) +--- 4480,4496 ---- + { + #ifdef FEAT_MBYTE + if (write_info.bw_conv_error) +! { +! if (write_info.bw_conv_error_lnum == 0) +! errmsg = (char_u *)_("E513: write error, conversion failed (make 'fenc' empty to override)"); +! else +! { +! errmsg_allocated = TRUE; +! errmsg = alloc(300); +! vim_snprintf((char *)errmsg, 300, _("E513: write error, conversion failed in line %ld (make 'fenc' empty to override)"), +! (long)write_info.bw_conv_error_lnum); +! } +! } + else + #endif + if (got_int) +*************** +*** 4550,4555 **** +--- 4566,4577 ---- + { + STRCAT(IObuff, _(" CONVERSION ERROR")); + c = TRUE; ++ if (write_info.bw_conv_error_lnum != 0) ++ { ++ int l = STRLEN(IObuff); ++ vim_snprintf((char *)IObuff + l, IOSIZE - l, _(" in line %ld;"), ++ (long)write_info.bw_conv_error_lnum); ++ } + } + else if (notconverted) + { +*************** +*** 4746,4751 **** +--- 4768,4775 ---- + } + STRCAT(IObuff, errmsg); + emsg(IObuff); ++ if (errmsg_allocated) ++ vim_free(errmsg); + + retval = FAIL; + if (end == 0) +*************** +*** 5105,5111 **** + c = buf[wlen]; + } + +! ip->bw_conv_error |= ucs2bytes(c, &p, flags); + } + if (flags & FIO_LATIN1) + len = (int)(p - buf); +--- 5129,5141 ---- + c = buf[wlen]; + } + +! if (ucs2bytes(c, &p, flags) && !ip->bw_conv_error) +! { +! ip->bw_conv_error = TRUE; +! ip->bw_conv_error_lnum = ip->bw_start_lnum; +! } +! if (c == NL) +! ++ip->bw_start_lnum; + } + if (flags & FIO_LATIN1) + len = (int)(p - buf); +*************** +*** 5386,5391 **** +--- 5416,5422 ---- + #ifdef FEAT_MBYTE + /* + * Convert a Unicode character to bytes. ++ * Return TRUE for an error, FALSE when it's OK. + */ + static int + ucs2bytes(c, pp, flags) +*** ../vim-7.2.243/src/version.c 2009-07-29 16:13:35.000000000 +0200 +--- src/version.c 2009-07-29 18:01:27.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 244, + /**/ + +-- +Support your right to bare arms! Wear short sleeves! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/patches/7.2.245 b/source/ap/vim/patches/7.2.245 new file mode 100644 index 000000000..d046c97f1 --- /dev/null +++ b/source/ap/vim/patches/7.2.245 @@ -0,0 +1,165 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.245 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.245 +Problem: When 'enc' is "utf-16" and 'fenc' is "utf-8" writing a file does + conversion while none should be done. (Yukihiro Nakadaira) When + 'fenc' is empty the file is written as utf-8 instead of utf-16. +Solution: Do proper comparison of encodings, taking into account that all + Unicode values for 'enc' use utf-8 internally. +Files: src/fileio.c + + +*** ../vim-7.2.244/src/fileio.c 2009-07-29 18:05:57.000000000 +0200 +--- src/fileio.c 2009-07-29 17:04:06.000000000 +0200 +*************** +*** 134,140 **** + #ifdef FEAT_MBYTE + static linenr_T readfile_linenr __ARGS((linenr_T linecnt, char_u *p, char_u *endp)); + static int ucs2bytes __ARGS((unsigned c, char_u **pp, int flags)); +! static int same_encoding __ARGS((char_u *a, char_u *b)); + static int get_fio_flags __ARGS((char_u *ptr)); + static char_u *check_for_bom __ARGS((char_u *p, long size, int *lenp, int flags)); + static int make_bom __ARGS((char_u *buf, char_u *name)); +--- 134,140 ---- + #ifdef FEAT_MBYTE + static linenr_T readfile_linenr __ARGS((linenr_T linecnt, char_u *p, char_u *endp)); + static int ucs2bytes __ARGS((unsigned c, char_u **pp, int flags)); +! static int need_conversion __ARGS((char_u *fenc)); + static int get_fio_flags __ARGS((char_u *ptr)); + static char_u *check_for_bom __ARGS((char_u *p, long size, int *lenp, int flags)); + static int make_bom __ARGS((char_u *buf, char_u *name)); +*************** +*** 1043,1055 **** + } + + /* +! * Conversion is required when the encoding of the file is different +! * from 'encoding' or 'encoding' is UTF-16, UCS-2 or UCS-4 (requires +! * conversion to UTF-8). + */ + fio_flags = 0; +! converted = (*fenc != NUL && !same_encoding(p_enc, fenc)); +! if (converted || enc_unicode != 0) + { + + /* "ucs-bom" means we need to check the first bytes of the file +--- 1043,1054 ---- + } + + /* +! * Conversion may be required when the encoding of the file is different +! * from 'encoding' or 'encoding' is UTF-16, UCS-2 or UCS-4. + */ + fio_flags = 0; +! converted = need_conversion(fenc); +! if (converted) + { + + /* "ucs-bom" means we need to check the first bytes of the file +*************** +*** 3969,3978 **** + fenc = buf->b_p_fenc; + + /* +! * The file needs to be converted when 'fileencoding' is set and +! * 'fileencoding' differs from 'encoding'. + */ +! converted = (*fenc != NUL && !same_encoding(p_enc, fenc)); + + /* + * Check if UTF-8 to UCS-2/4 or Latin1 conversion needs to be done. Or +--- 3968,3976 ---- + fenc = buf->b_p_fenc; + + /* +! * Check if the file needs to be converted. + */ +! converted = need_conversion(fenc); + + /* + * Check if UTF-8 to UCS-2/4 or Latin1 conversion needs to be done. Or +*************** +*** 5502,5521 **** + } + + /* +! * Return TRUE if "a" and "b" are the same 'encoding'. +! * Ignores difference between "ansi" and "latin1", "ucs-4" and "ucs-4be", etc. + */ + static int +! same_encoding(a, b) +! char_u *a; +! char_u *b; + { +! int f; + +! if (STRCMP(a, b) == 0) +! return TRUE; +! f = get_fio_flags(a); +! return (f != 0 && get_fio_flags(b) == f); + } + + /* +--- 5500,5536 ---- + } + + /* +! * Return TRUE if file encoding "fenc" requires conversion from or to +! * 'encoding'. + */ + static int +! need_conversion(fenc) +! char_u *fenc; + { +! int same_encoding; +! int enc_flags; +! int fenc_flags; + +! if (*fenc == NUL || STRCMP(p_enc, fenc) == 0) +! same_encoding = TRUE; +! else +! { +! /* Ignore difference between "ansi" and "latin1", "ucs-4" and +! * "ucs-4be", etc. */ +! enc_flags = get_fio_flags(p_enc); +! fenc_flags = get_fio_flags(fenc); +! same_encoding = (enc_flags != 0 && fenc_flags == enc_flags); +! } +! if (same_encoding) +! { +! /* Specified encoding matches with 'encoding'. This requires +! * conversion when 'encoding' is Unicode but not UTF-8. */ +! return enc_unicode != 0; +! } +! +! /* Encodings differ. However, conversion is not needed when 'enc' is any +! * Unicode encoding and the file is UTF-8. */ +! return !(enc_utf8 && fenc_flags == FIO_UTF8); + } + + /* +*** ../vim-7.2.244/src/version.c 2009-07-29 18:05:57.000000000 +0200 +--- src/version.c 2009-07-29 18:20:08.000000000 +0200 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 245, + /**/ + +-- +An actual excerpt from a classified section of a city newspaper: +"Illiterate? Write today for free help!" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/source/ap/vim/slack-desc.vim b/source/ap/vim/slack-desc.vim new file mode 100644 index 000000000..04b1d5eb4 --- /dev/null +++ b/source/ap/vim/slack-desc.vim @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vim: vim (Vi IMproved) +vim: +vim: Vim is an almost compatible version of the UNIX editor vi. Many new +vim: features have been added: multi level undo, command line history, +vim: filename completion, block operations, and more. +vim: +vim: Vim's development is led by Bram Moolenaar. +vim: +vim: This package also contains the Exuberant Ctags program +vim: written by Darren Hiebert. +vim: diff --git a/source/ap/vim/slack-desc.vim-gvim b/source/ap/vim/slack-desc.vim-gvim new file mode 100644 index 000000000..27efae73c --- /dev/null +++ b/source/ap/vim/slack-desc.vim-gvim @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vim-gvim: vim-gvim (gvim, the X/GTK2 enabled version of vim) +vim-gvim: +vim-gvim: Gvim is a graphical version of vim. Vim is an almost compatible +vim-gvim: version of the UNIX editor vi. Many new features have been added, +vim-gvim: such as multi level undo, command line history, filename completion, +vim-gvim: block operations, and more. +vim-gvim: +vim-gvim: The main vim package in the AP series is required to use this package. +vim-gvim: +vim-gvim: Vim's development is led by Bram Moolenaar. +vim-gvim: diff --git a/source/ap/vim/vim-gvim.SlackBuild b/source/ap/vim/vim-gvim.SlackBuild new file mode 100755 index 000000000..8c24b51d9 --- /dev/null +++ b/source/ap/vim/vim-gvim.SlackBuild @@ -0,0 +1,193 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VIMVER=7.2 +# This is the directory in the VIM source archive to cd into. +DIRVER=72 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +PYVER=$(python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.) + +if [ "$ARCH" = "x86_64" ]; then + export SLKCFLAGS="-O2 -fPIC" + export LIBDIRSUFFIX="64" +else + export SLKCFLAGS="-O2" + export LIBDIRSUFFIX="" +fi +export SLKLDFLAGS="-L/usr/lib${LIBDIRSUFFIX}" + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vim-gvim + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Determine VIM patchlevel: +if [ -d $CWD/patches ] ; then + cd $CWD/patches + PATCHLEVEL=$(/bin/ls 2> /dev/null | tail -1 | cut -f 3 -d . ) + if [ "$PATCHLEVEL" = "" ]; then + PATCHLEVEL=000 + fi + cd $CWD +fi + +cd $TMP +rm -rf vim$DIRVER +tar xvf $CWD/vim-$VIMVER.tar.?z* || exit 1 +tar xvf $CWD/vim-$VIMVER-lang.tar.?z* || exit 1 + +config_vim() { +CFLAGS="$SLKCFLAGS" LDFLAGS="$SLKLDFLAGS" \ +./configure \ + $* \ + --prefix=/usr \ + --enable-pythoninterp \ + --with-python-config-dir=/usr/lib${LIBDIRSUFFIX}/python$PYVER/config \ + --enable-perlinterp \ + --disable-tclinterp \ + --enable-multibyte \ + --enable-cscope \ + --with-features=huge \ + --with-compiledby="<volkerdi@slackware.com>" \ + --build=$ARCH-slackware-linux + + # I had been adding this, but got 100% complaints and 0% kudos: + # --enable-rubyinterp + +} + +cd $TMP/vim$DIRVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +for file in $CWD/patches/* ; do + ( zcat $file 2> /dev/null | patch -p0 --verbose --batch ) +done + +config_vim --with-x --enable-gui=gtk2 +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rsync -lprvt $PKG/usr/share/man/ $PKG/usr/man/ +rm -r $PKG/usr/share/man + +# Fix manpage symlinks: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Legacy binary links: +( cd $PKG/usr/bin ; rm -rf ex ) +( cd $PKG/usr/bin ; ln -sf vim ex ) +( cd $PKG/usr/bin ; rm -rf rview ) +( cd $PKG/usr/bin ; ln -sf vim rview ) +( cd $PKG/usr/bin ; rm -rf rvim ) +( cd $PKG/usr/bin ; ln -sf vim rvim ) +( cd $PKG/usr/bin ; rm -rf view ) +( cd $PKG/usr/bin ; ln -sf vim view ) +( cd $PKG/usr/bin ; rm -rf eview ) +( cd $PKG/usr/bin ; ln -sf vim eview ) +( cd $PKG/usr/bin ; rm -rf evim ) +( cd $PKG/usr/bin ; ln -sf vim evim ) + +mkdir -p $PKG/install +cat $CWD/slack-desc.vim-gvim > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# You'll have to run "gvim" to get the graphical version. +# Seems like this is the common way for console and gui versions +# of vim to co-exist. If your "vi" symlink isn't pointed in a +# way that suits you, it is fully user serviceable. :-) +( cd $PKG/usr/bin + rm -f gvim + mv vim gvim + for programlink in $(find . -type l | cut -b3-) ; do + rm $programlink + ln -sf gvim $programlink + done +) +rm -f vimtutor xxd + +# Perfect! +# Now we get rid of everything that's not in the other vim package. +# Let's assume (dangerous ;-) that we just built that in $TMP +# and use it as a reference: +if ! /bin/ls $TMP/vim-${VIMVER}*txz 1> /dev/null 2> /dev/null ; then + echo "FATAL: VIM package needed in $TMP" + exit 1 +fi +mkdir $PKG/vim +( cd $PKG + ( cd vim + echo "Extracting reference package $TMP/vim-${VIMVER}*txz:" + explodepkg $TMP/vim-${VIMVER}*txz 1> /dev/null + sh install/doinst.sh + ) +) +rm -r $PKG/vim/install +( cd $PKG + find vim | cut -b4- | while read sharedfile ; do + if [ ! -d $sharedfile ]; then + rm --verbose $PKG/$sharedfile + fi + done +) + +# Finally, reference purge: +rm -rf $PKG/vim + +# Perhaps we would be better off without this - forcing folks to run kappfinder +# or something. It seems better than starting with nothing, but might force +# people into defaults they don't want. Another nifty catch-22... +mkdir -p $PKG/usr/share/applications +cp -a $CWD/gvim.desktop $PKG/usr/share/applications +mkdir -p $PKG/usr/share/pixmaps +cp -a $CWD/gvim.png $PKG/usr/share/pixmaps + +# Remove empty directories: +find $PKG -type d -exec rmdir -p {} \; 2> /dev/null + +cd $PKG +/sbin/makepkg -l y -c n $TMP/vim-gvim-$VIMVER.$PATCHLEVEL-$ARCH-$BUILD.txz + diff --git a/source/ap/vim/vim.SlackBuild b/source/ap/vim/vim.SlackBuild new file mode 100755 index 000000000..460b07a1e --- /dev/null +++ b/source/ap/vim/vim.SlackBuild @@ -0,0 +1,196 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VIMVER=7.2 +CTAGSVER=5.7 +# This is the directory in the VIM source archive to cd into. +DIRVER=72 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +PYVER=$(python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.) + +if [ "$ARCH" = "x86_64" ]; then + export SLKCFLAGS="-O2 -fPIC" + export LIBDIRSUFFIX="64" +else + export SLKCFLAGS="-O2" + export LIBDIRSUFFIX="" +fi +export SLKLDFLAGS="-L/usr/lib${LIBDIRSUFFIX}" + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vim + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Determine VIM patchlevel: +if [ -d $CWD/patches ] ; then + cd $CWD/patches + PATCHLEVEL=$(/bin/ls 2> /dev/null | tail -1 | cut -f 3 -d . ) + if [ "$PATCHLEVEL" = "" ]; then + PATCHLEVEL=000 + fi + cd $CWD +fi + +# ctags was once a part of vim, +# but now we have to bundle it in +cd $TMP +rm -rf ctags-$CTAGSVER +tar xvf $CWD/ctags-$CTAGSVER.tar.gz || exit 1 +cd ctags-$CTAGSVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" LDFLAGS="$SLKLDFLAGS" \ +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin +cat ctags > $PKG/usr/bin/ctags +chmod 755 $PKG/usr/bin/ctags +mkdir -p $PKG/usr/man/man1 +cat ctags.1 | gzip -9c > $PKG/usr/man/man1/ctags.1.gz +mkdir -p $PKG/usr/doc/ctags-$CTAGSVER +cp -a \ + COPYING EXTENDING.html FAQ INSTALL INSTALL.oth NEWS README \ + $PKG/usr/doc/ctags-$CTAGSVER +chmod 644 $PKG/usr/doc/ctags-$CTAGSVER/* + +cd $TMP +rm -rf vim$DIRVER +tar xvf $CWD/vim-$VIMVER.tar.?z* || exit 1 +tar xvf $CWD/vim-$VIMVER-lang.tar.?z* || exit 1 + +config_vim() { +CFLAGS="$SLKCFLAGS" \ +./configure \ + $* \ + --prefix=/usr \ + --enable-pythoninterp \ + --with-python-config-dir=/usr/lib${LIBDIRSUFFIX}/python$PYVER/config \ + --enable-perlinterp \ + --disable-tclinterp \ + --enable-multibyte \ + --enable-cscope \ + --with-features=huge \ + --with-compiledby="<volkerdi@slackware.com>" \ + --build=$ARCH-slackware-linux + + # I had been adding this, but got 100% complaints and 0% kudos: + # --enable-rubyinterp +} + +cd $TMP/vim$DIRVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +for file in $CWD/patches/* ; do + ( zcat $file 2> /dev/null | patch -p0 --verbose --batch ) +done + +config_vim --without-x --disable-gui +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rsync -lprvt $PKG/usr/share/man/ $PKG/usr/man/ +rm -r $PKG/usr/share/man + +cp -a runtime/vimrc_example.vim runtime/vimrc.new + +# Don't make backups in /var/spool/cron/*, which fixes "crontab -e": +zcat $CWD/vim.vimrc.diff.gz | patch -p1 --verbose || exit 1 + +# Add patched vimrc to the package: +cat runtime/vimrc.new > $PKG/usr/share/vim/vimrc.new + +# Fix manpage symlinks: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Legacy binary links: +( cd $PKG/usr/bin ; rm -rf ex ) +( cd $PKG/usr/bin ; ln -sf vim ex ) +( cd $PKG/usr/bin ; rm -rf rview ) +( cd $PKG/usr/bin ; ln -sf vim rview ) +( cd $PKG/usr/bin ; rm -rf rvim ) +( cd $PKG/usr/bin ; ln -sf vim rvim ) +( cd $PKG/usr/bin ; rm -rf view ) +( cd $PKG/usr/bin ; ln -sf vim view ) +( cd $PKG/usr/bin ; rm -rf eview ) +( cd $PKG/usr/bin ; ln -sf vim eview ) +( cd $PKG/usr/bin ; rm -rf evim ) +( cd $PKG/usr/bin ; ln -sf vim evim ) + +mkdir -p $PKG/usr/doc/vim-$VIMVER.$PATCHLEVEL +cp -a README.txt $PKG/usr/doc/vim-$VIMVER.$PATCHLEVEL +find $PKG/usr/doc/vim-$VIMVER.$PATCHLEVEL -type f | xargs chmod 644 +( cd $PKG/usr/doc/vim-$VIMVER.$PATCHLEVEL ; rm -rf doc ) +( cd $PKG/usr/doc/vim-$VIMVER.$PATCHLEVEL ; ln -sf /usr/share/vim/vim$DIRVER doc ) + +mkdir -p $PKG/install +cat $CWD/slack-desc.vim > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config usr/share/vim/vimrc.new +EOF +zcat $CWD/doinst.sh.gz >> $PKG/install/doinst.sh + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cd $PKG +/sbin/makepkg -l y -c n $TMP/vim-$VIMVER.$PATCHLEVEL-$ARCH-$BUILD.txz + diff --git a/source/ap/vim/vim.vimrc.diff b/source/ap/vim/vim.vimrc.diff new file mode 100644 index 000000000..c94104a5f --- /dev/null +++ b/source/ap/vim/vim.vimrc.diff @@ -0,0 +1,12 @@ +--- ./runtime/vimrc.new.orig 2008-07-02 15:11:53.000000000 -0500 ++++ ./runtime/vimrc.new 2009-05-28 13:19:24.000000000 -0500 +@@ -87,6 +87,9 @@ + + endif " has("autocmd") + ++" Make vim work with the 'crontab -e' command ++set backupskip+=/var/spool/cron/* ++ + " Convenient command to see the difference between the current buffer and the + " file it was loaded from, thus the changes you made. + " Only define it when not defined already. diff --git a/source/ap/vorbis-tools/slack-desc b/source/ap/vorbis-tools/slack-desc new file mode 100644 index 000000000..c55a780cd --- /dev/null +++ b/source/ap/vorbis-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vorbis-tools: vorbis-tools (Ogg Vorbis Tools) +vorbis-tools: +vorbis-tools: The vorbis-tools package contains several basic tools for working with +vorbis-tools: compressed audio files in the Ogg Vorbis (.ogg) format: +vorbis-tools: +vorbis-tools: oggenc (an .ogg encoder), ogg123 (a playback tool), vorbiscomment +vorbis-tools: (add comments to vorbis files), ogginfo (show information about an +vorbis-tools: ogg file), oggdec (a command line decoder), and vcut (a tool for +vorbis-tools: splitting vorbis files). +vorbis-tools: +vorbis-tools: These tools require the libao, libogg, and libvorbis libraries. diff --git a/source/ap/vorbis-tools/vorbis-tools.SlackBuild b/source/ap/vorbis-tools/vorbis-tools.SlackBuild new file mode 100755 index 000000000..65c551a8d --- /dev/null +++ b/source/ap/vorbis-tools/vorbis-tools.SlackBuild @@ -0,0 +1,80 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.0 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vorbis-tools + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf vorbis-tools-$VERSION +tar xvf $CWD/vorbis-tools-$VERSION.tar.bz2 || exit 1 +cd vorbis-tools-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# No idea why this isn't built automatically any more... +if [ ! -r $PKG/usr/bin/vcut ]; then + ( cd vcut + make + make install DESTDIR=$PKG + ) +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mv $PKG/usr/share/doc $PKG/usr +cp -a \ + AUTHORS COPYING README \ + $PKG/usr/doc/vorbis-tools-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/vorbis-tools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/workbone/slack-desc b/source/ap/workbone/slack-desc new file mode 100644 index 000000000..322e280f2 --- /dev/null +++ b/source/ap/workbone/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +workbone: workbone (text-based CD player) +workbone: +workbone: WorkBone is a simple interactive tool for for playing audio CDs from +workbone: the Linux console. +workbone: +workbone: +workbone: +workbone: +workbone: +workbone: +workbone: diff --git a/source/ap/workbone/workbone.1.diff b/source/ap/workbone/workbone.1.diff new file mode 100644 index 000000000..31ecbb50b --- /dev/null +++ b/source/ap/workbone/workbone.1.diff @@ -0,0 +1,11 @@ +--- ./workbone.1.orig 1997-12-02 14:33:22.000000000 -0800 ++++ ./workbone.1 2003-02-14 00:22:20.000000000 -0800 +@@ -78,7 +78,7 @@ + Note that total CD elapsed time includes times for non-audio data + tracks in addition to playable tracks. Pushing the + DEL key on the numeric pad will bring up a help screen. +-.bp ++.PP + .ft CW + .nf + +---- number pad -----+ diff --git a/source/ap/workbone/workbone.SlackBuild b/source/ap/workbone/workbone.SlackBuild new file mode 100755 index 000000000..b2de0b48f --- /dev/null +++ b/source/ap/workbone/workbone.SlackBuild @@ -0,0 +1,69 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-workbone + +VERSION=2.40 +SRCVER=2.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xvf $CWD/workbone_$VERSION.orig.tar.gz || exit 1 +cd workbone-$SRCVER || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/workbone_$VERSION-3.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/workbone.1.diff.gz | patch -p1 --verbose || exit 1 + +make $NUMJOBS || make || exit 1 + +strip workbone +mkdir -p $PKG/usr/bin +cat workbone > $PKG/usr/bin/workbone +chmod 755 $PKG/usr/bin/workbone + +mkdir -p $PKG/usr/man/man1 +cat workbone.1 | gzip -9c > $PKG/usr/man/man1/workbone.1.gz + +mkdir -p $PKG/usr/doc/workbone-$VERSION +cp -a README $PKG/usr/doc/workbone-$VERSION +chmod 644 $PKG/usr/doc/workbone-$VERSION/README + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/workbone-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/ap/workbone/workbone_2.40-3.diff b/source/ap/workbone/workbone_2.40-3.diff new file mode 100644 index 000000000..ed32b2695 --- /dev/null +++ b/source/ap/workbone/workbone_2.40-3.diff @@ -0,0 +1,294 @@ +--- workbone-2.40.orig/hardware.c ++++ workbone-2.40/hardware.c +@@ -177,7 +177,7 @@ + if (cd_fd < 0) + { + +- if ((cd_fd = open(cd_device, 0)) < 0) ++ if ((cd_fd = open(cd_device, O_RDONLY | O_NONBLOCK)) < 0) + { + + if (errno == EACCES) +@@ -611,7 +611,7 @@ + if (fcntl(fd, F_SETLK, &fl) < 0) + exit(0); + +- if (open(cd_device, 0) >= 0) ++ if (open(cd_device, O_RDONLY | O_NONBLOCK) >= 0) + { + brk(&end); + pause(); +--- workbone-2.40.orig/workbone.c ++++ workbone-2.40/workbone.c +@@ -96,7 +96,7 @@ + { + + int sss, sel_stat, dly; +- int fastin = FALSE; ++ int fastin = TRUE; + int scmd = 0, tmppos = 0; + int save_track = 1; + fd_set rset; +@@ -166,6 +166,22 @@ + /* set graphics */ + if(play_track<0) setgraf (); + /* check if drive is mounted (from Mark Buckaway's cdplayer code) */ ++ /* link reading code from cdtool */ ++ ++ /* find out if the device is a link, resolve link name */ ++ { ++ ++ char *pszTest; ++ char caB[100]; ++ int ii; ++ ++ ii = readlink(cd_device, caB, sizeof(caB)-1); ++ if (ii < 0) { ++ pszTest = cd_device; ++ }else { ++ pszTest = &caB[0]; ++ caB[ii] = '\0'; ++ } + if ((fp = setmntent (MOUNTED, "r")) == NULL) + { + fprintf (stderr, "Couldn't open %s: %s\n", MOUNTED, strerror (errno)); +@@ -173,7 +189,7 @@ + } + while ((mnt = getmntent (fp)) != NULL) + { +- if (strcmp (mnt->mnt_type, "iso9660") == 0) ++ if (strstr (mnt->mnt_fsname, pszTest) != NULL) + { + fputs ("CDROM already mounted. Operation aborted.\n", stderr); + endmntent (fp); +@@ -181,6 +197,7 @@ + } + } + endmntent (fp); ++ } /* end mount checking block */ + + /* display control panel template */ + if(play_track<0) control_panel (); +--- workbone-2.40.orig/debian/README.debian ++++ workbone-2.40/debian/README.debian +@@ -0,0 +1,14 @@ ++workbone for DEBIAN ++---------------------- ++ ++Workbone for Debian is a nice CD player. I've created a login called ++cdplay that has workman as its shell. That way I can enjoy the ++benefits of workman without the security hassle of leaving a virtual ++console open. ++ ++Stephen Pitts <pitts2@memphisonline.com>, Tue, 29 Oct 1996 18:27:01 -0600 ++ ++Workbone no longer has a delay at startup. This was annoying and seems to ++serve no purpose with modern cdroms. ++ ++Martin Mitchell <martin@debian.org> +--- workbone-2.40.orig/debian/changelog ++++ workbone-2.40/debian/changelog +@@ -0,0 +1,64 @@ ++workbone (2.40-3) unstable; urgency=low ++ ++ * Update to standards version 3.5.6. ++ * Update copyright file. ++ * Fix typo in package description. (closes: #125506) ++ * Add symlink to doc directory. (closes: #58785) ++ * Add open nonblocking patch from Chris Waters. (closes: #88641) ++ ++ -- Martin Mitchell <martin@debian.org> Thu, 25 Apr 2002 00:45:59 +1000 ++ ++workbone (2.40-2) unstable; urgency=low ++ ++ * Update to standards version 3.0.1. ++ * Update copyright file. ++ * Fix cd mounted detection to ignore iso9660 fs. (closes: #32056, #33973) ++ ++ -- Martin Mitchell <martin@debian.org> Fri, 22 Oct 1999 03:04:38 +1000 ++ ++workbone (2.40-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Update copyright file. ++ * Update to standards version 2.4.1. ++ * Clean up rules file. ++ ++ -- Martin Mitchell <martin@debian.org> Wed, 14 Oct 1998 02:11:49 +1000 ++ ++workbone (2.31-5) unstable; urgency=low ++ ++ * Libc6 compile. ++ * Remove startup delay. (#10958) ++ * New maintainer. ++ ++ -- Martin Mitchell <martin@debian.org> Tue, 11 Nov 1997 02:17:24 +1100 ++ ++workbone (2.31-4) unstable; urgency=low ++ ++ * Added a postinst to let you know if you have a /dev/cdrom ++ * Closed all pending bugs ++ ++ -- Stephen Pitts <pitts2@memphisonline.com> Sat, 16 Nov 1996 13:27:57 -0600 ++ ++workbone (2.31-3) unstable; urgency=low ++ ++ * Changed architecture from i386 to any ++ ++ -- Stephen Pitts <pitts2@memphisonline.com> Mon, 11 Nov 1996 20:02:03 -0600 ++ ++workbone (2.31-2) unstable; urgency=low ++ ++ * Workbone was installed as /usr/bin instead of in /usr/bin. Whoops! ++ ++ -- Stephen Pitts <pitts2@memphisonline.com> Fri, 8 Nov 1996 20:39:05 -0600 ++ ++workbone (2.31-1) unstable; urgency=low ++ ++ * Version number incremented because of questionable handling of epoch ++ by dpkg/dselect ++ * New maintainer ++ * Package rebuilt from upstream sources using deb-make! ++ ++ -- Stephen Pitts <pitts2@memphisonline.com> Tue, 29 Oct 1996 18:27:01 -0600 ++ ++ +--- workbone-2.40.orig/debian/control ++++ workbone-2.40/debian/control +@@ -0,0 +1,14 @@ ++Source: workbone ++Section: sound ++Priority: optional ++Maintainer: Martin Mitchell <martin@debian.org> ++Standards-Version: 3.5.6 ++ ++Package: workbone ++Architecture: any ++Depends: ${shlibs:Depends} ++Suggests: cdtool ++Description: A simple text-based CD player ++ Workbone is a simple, curses-based CD player that is controlled by ++ the num-lock keys. The cdtool package can be used to determine the ++ contents of a CD before playing it. +--- workbone-2.40.orig/debian/copyright ++++ workbone-2.40/debian/copyright +@@ -0,0 +1,11 @@ ++This package was debianized by Stephen Pitts pitts2@memphisonline.com on ++Tue, 29 Oct 1996 18:27:01 -0600. ++ ++It was downloaded from ftp.ibiblio.org:/pub/linux/apps/sound/cdrom/curses ++ ++This package is now maintained by Martin Mitchell <martin@debian.org>. ++ ++Copyright: ++ ++workbone is copyrighted under the GNU General Public License, ++version 2. A copy can be found in /usr/share/common-licenses/GPL. +--- workbone-2.40.orig/debian/rules ++++ workbone-2.40/debian/rules +@@ -0,0 +1,76 @@ ++#!/usr/bin/make -f ++# Sample debian.rules file - for GNU Hello (1.3). ++# Copyright 1994,1995 by Ian Jackson. ++# I hereby give you perpetual unlimited permission to copy, ++# modify and relicense this file, provided that you do not remove ++# my name from the file itself. (I assert my moral right of ++# paternity under the Copyright, Designs and Patents Act 1988.) ++# This file may have to be extensively modified ++ ++package=workbone ++STRIP=strip --strip-unneeded --remove-section=.note --remove-section=.comment ++ ++build: ++ $(checkdir) ++ make CFLAGS="-O2 -g" LDFLAGS="" ++ touch build ++ ++clean: ++ $(checkdir) ++ -rm -f build ++ make clean ++ -rm -rf *~ debian/tmp debian/*~ debian/files debian/substvars ++ ++binary-indep: checkroot build ++ $(checkdir) ++# There are no architecture-independent files to be uploaded ++# generated by this package. If there were any they would be ++# made here. ++ ++binary-arch: checkroot build ++ $(checkdir) ++ -rm -rf debian/tmp ++ install -d debian/tmp/DEBIAN debian/tmp/usr/share/man/man1 debian/tmp/usr/share/doc/workbone debian/tmp/usr/bin ++ install -m 0755 workbone debian/tmp/usr/bin/workbone ++ $(STRIP) debian/tmp/usr/bin/workbone ++ install -m 0644 workbone.1 debian/tmp/usr/share/man/man1 ++ gzip -9v debian/tmp/usr/share/man/man1/* ++ install -m 0644 CHANGES README debian/README.debian debian/tmp/usr/share/doc/workbone ++ install -m 0644 debian/changelog debian/tmp/usr/share/doc/workbone/changelog.Debian ++ gzip -9v debian/tmp/usr/share/doc/workbone/* ++ ( cd debian/tmp/usr/share/doc/workbone && ln -s CHANGES.gz changelog.gz ) ++ install -m 0644 debian/copyright debian/tmp/usr/share/doc/workbone ++ install -m 0755 debian/postinst debian/tmp/DEBIAN ++ dpkg-shlibdeps debian/tmp/usr/bin/workbone ++ ++ # Manage /usr/share/doc/* -> /usr/doc/* links ++ for name in workbone; \ ++ do \ ++ sed -e "s/PKG/$$name/g" debian/postinst > debian/$$name.postinst ; \ ++ sed -e "s/PKG/$$name/g" debian/prerm > debian/$$name.prerm ; \ ++ install -m 0755 debian/$$name.postinst debian/tmp/DEBIAN/postinst ; \ ++ install -m 0755 debian/$$name.prerm debian/tmp/DEBIAN/prerm ; \ ++ rm -f debian/$$name.postinst debian/$$name.prerm; \ ++ done ++ ++ dpkg-gencontrol -isp ++ chown -R root.root debian/tmp ++ chmod -R g-ws debian/tmp ++ dpkg --build debian/tmp .. ++ ++define checkdir ++ test -f debian/rules ++endef ++ ++# Below here is fairly generic really ++ ++binary: binary-indep binary-arch ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false ++ ++checkroot: ++ $(checkdir) ++ test root = "`whoami`" ++ ++.PHONY: binary binary-arch binary-indep clean checkroot +--- workbone-2.40.orig/debian/postinst ++++ workbone-2.40/debian/postinst +@@ -0,0 +1,15 @@ ++#!/bin/sh ++ ++set -e ++ ++if [ "$1" = "configure" ]; then ++ if [ -d /usr/doc -a ! -e /usr/doc/PKG -a -d /usr/share/doc/PKG ] ++ then ++ ln -sf ../share/doc/PKG /usr/doc/PKG ++ fi ++fi ++ ++if [ ! -e /dev/cdrom ] ++then ++echo "Please link /dev/cdrom to your CDROM device before running workbone." ++fi +--- workbone-2.40.orig/debian/prerm ++++ workbone-2.40/debian/prerm +@@ -0,0 +1,8 @@ ++#!/bin/sh ++ ++set -e ++ ++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/PKG ] ++then ++ rm -f /usr/doc/PKG ++fi diff --git a/source/ap/xfsdump/slack-desc b/source/ap/xfsdump/slack-desc new file mode 100644 index 000000000..040b64cd8 --- /dev/null +++ b/source/ap/xfsdump/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfsdump: xfsdump (backup tools for the XFS filesystem) +xfsdump: +xfsdump: The xfsdump package contains the xfsdump and xfsrestore utilities for +xfsdump: backing up and restoring XFS partitions. xfsdump examines files in a +xfsdump: filesystem, determines which need to be backed up, and copies those +xfsdump: files to a specified disk, tape or other storage medium. xfsrestore +xfsdump: performs the inverse function of xfsdump; it can restore a full +xfsdump: or incremental backup of a filesystem. +xfsdump: +xfsdump: +xfsdump: diff --git a/source/ap/xfsdump/xfsdump.SlackBuild b/source/ap/xfsdump/xfsdump.SlackBuild new file mode 100755 index 000000000..378d46de2 --- /dev/null +++ b/source/ap/xfsdump/xfsdump.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.0.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xfsdump + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf xfsdump-$(echo $VERSION | cut -f 1 -d '-') +tar xvf $CWD/xfsdump-$VERSION.tar.?z* || exit 1 +cd xfsdump-$(echo $VERSION | cut -f 1 -d '-') || exit 1 + +zcat $CWD/xfsdump.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Make sure you have the same version of autoconf as the +# developers did... ;-) +autoconf + +./configure \ + --prefix=/usr \ + --sbindir=/sbin \ + --bindir=/usr/sbin \ + --enable-gettext=yes \ + --mandir=/usr/man \ + --datadir=/usr/share \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/sbin + rm -f xfsdump xfsrestore + ln -sf /sbin/xfsdump xfsdump + ln -sf /sbin/xfsrestore xfsrestore +) + +# Strip libraries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mv $PKG/usr/share/doc $PKG/usr +( cd $PKG/usr/doc ; mv xfsdump xfsdump-$VERSION ) +cp -a \ + README doc/COPYING doc/CREDITS doc/PORTING \ + $PKG/usr/doc/xfsdump-$VERSION +mkdir -p $PKG/usr/doc/xfsdump-$VERSION/html +( cd doc + cp -a *.gif *.html $PKG/usr/doc/xfsdump-$VERSION/html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xfsdump-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz + diff --git a/source/ap/xfsdump/xfsdump.destdir.diff b/source/ap/xfsdump/xfsdump.destdir.diff new file mode 100644 index 000000000..1772465dc --- /dev/null +++ b/source/ap/xfsdump/xfsdump.destdir.diff @@ -0,0 +1,36 @@ +--- ./include/buildmacros.orig 2007-09-10 21:01:12.000000000 -0500 ++++ ./include/buildmacros 2008-04-01 00:06:53.000000000 -0500 +@@ -27,7 +27,7 @@ + $(LFILES:.l=.o) \ + $(YFILES:%.y=%.tab.o) + +-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP) ++INSTALL = $(TOPDIR)/install-sh + + SHELL = /bin/sh + IMAGES_DIR = $(TOPDIR)/all-images +--- ./include/builddefs.in.orig 2007-09-10 21:01:12.000000000 -0500 ++++ ./include/builddefs.in 2008-04-01 00:06:53.000000000 -0500 +@@ -30,14 +30,14 @@ + PKG_VERSION = @pkg_version@ + PKG_PLATFORM = @pkg_platform@ + PKG_DISTRIBUTION= @pkg_distribution@ +-PKG_BIN_DIR = @bindir@ +-PKG_SBIN_DIR = @sbindir@ +-PKG_LIB_DIR = @libdir@@libdirsuffix@ +-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@ +-PKG_INC_DIR = @includedir@ +-PKG_MAN_DIR = @mandir@ +-PKG_DOC_DIR = @datadir@/doc/@pkg_name@ +-PKG_LOCALE_DIR = @datadir@/locale ++PKG_BIN_DIR = $(DESTDIR)@bindir@ ++PKG_SBIN_DIR = $(DESTDIR)@sbindir@ ++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@ ++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@ ++PKG_INC_DIR = $(DESTDIR)@includedir@ ++PKG_MAN_DIR = $(DESTDIR)@mandir@ ++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@ ++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale + + CC = @cc@ + AWK = @awk@ diff --git a/source/ap/zsh/doinst.sh b/source/ap/zsh/doinst.sh new file mode 100644 index 000000000..5a862deb6 --- /dev/null +++ b/source/ap/zsh/doinst.sh @@ -0,0 +1,6 @@ +if ! grep zsh etc/shells 1> /dev/null 2> /dev/null; then + echo "/bin/zsh" >> etc/shells +fi +if [ ! -e etc/zprofile ]; then + ( cd etc ; ln -sf profile zprofile ) +fi diff --git a/source/ap/zsh/slack-desc b/source/ap/zsh/slack-desc new file mode 100644 index 000000000..8d9290001 --- /dev/null +++ b/source/ap/zsh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +zsh: zsh (the Z shell) +zsh: +zsh: Zsh is a UNIX command interpreter (shell) which of the standard shells +zsh: most resembles the Korn shell (ksh), although it is not completely +zsh: compatible. It includes enhancements of many types, notably in the +zsh: command-line editor, options for customizing its behavior, filename +zsh: globbing, features to make C-shell (csh) users feel more at home and +zsh: extra features drawn from tcsh (another 'custom' shell). Zsh was +zsh: written by Paul Falstad. +zsh: +zsh: diff --git a/source/ap/zsh/zsh-4.3.10-add_new_pkg_completion.diff b/source/ap/zsh/zsh-4.3.10-add_new_pkg_completion.diff new file mode 100644 index 000000000..a30665a0e --- /dev/null +++ b/source/ap/zsh/zsh-4.3.10-add_new_pkg_completion.diff @@ -0,0 +1,26 @@ +diff -Naur zsh-4.3.10.old/Completion/Linux/Command/_pkgtool zsh-4.3.10/Completion/Linux/Command/_pkgtool +--- zsh-4.3.10.old/Completion/Linux/Command/_pkgtool 2005-06-24 10:15:27.000000000 -0400 ++++ zsh-4.3.10/Completion/Linux/Command/_pkgtool 2009-07-07 20:39:01.000000000 -0400 +@@ -12,7 +12,7 @@ + "-ask[always ask on package installation regardless of package's priority]" \ + '-priority[provide a priority for the entire package list to use]:priority list:(ADD REC OPT SKP)' \ + '-tagfile[specify a different file to use for package priorities]:tagfile:_files -/' \ +- '*:package file:_files -g "*.tgz(-.)"' ++ '*:package file:_files -g "*.t[gblx]z(-.)"' + ;; + + removepkg) +@@ -29,11 +29,11 @@ + '--install-new[install new packages in addition to upgrading existing ones]' \ + '--reinstall[upgrade even when the same version is already installed]' \ + '--verbose[show all the gory details of the upgrade]' \ +- '*:package file:_files -g "*.tgz(-.)"' ++ '*:package file:_files -g "*.t[gblx]z(-.)"' + ;; + + explodepkg) +- _wanted file expl 'package file' _files -g '*.tgz(-.)' ++ _wanted file expl 'package file' _files -g '*.t[gblx]z(-.)' + ;; + + makepkg) diff --git a/source/ap/zsh/zsh.SlackBuild b/source/ap/zsh/zsh.SlackBuild new file mode 100755 index 000000000..2a874fbf3 --- /dev/null +++ b/source/ap/zsh/zsh.SlackBuild @@ -0,0 +1,116 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.3.10 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-zsh +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf zsh-$VERSION +tar xvf $CWD/zsh-$VERSION.tar.?z* || exit 1 +tar xvf $CWD/zsh-$VERSION-doc.tar.?z* || exit 1 +cd zsh-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add t[blx]z to the zsh tab completion stuff +zcat $CWD/zsh-4.3.10-add_new_pkg_completion.diff.gz | patch -p1 || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/zsh-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/usr/bin $PKG +( cd $PKG/bin ; ln -sf zsh zsh-$VERSION ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/etc + +mkdir -p $PKG/usr/doc/zsh-$VERSION/html-docs +cp -a INSTALL LICENCE META-FAQ README $PKG/usr/doc/zsh-$VERSION +cp -a Doc/*.html $PKG/usr/doc/zsh-$VERSION/html-docs + +mkdir -p $PKG/usr/info +cp -a Doc/*info* $PKG/usr/info + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/zsh-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/autoconf/autoconf.SlackBuild b/source/d/autoconf/autoconf.SlackBuild new file mode 100755 index 000000000..41dbfe9ea --- /dev/null +++ b/source/d/autoconf/autoconf.SlackBuild @@ -0,0 +1,70 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.63 +ARCH=noarch +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-autoconf + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf autoconf-$VERSION +tar xvf $CWD/autoconf-$VERSION.tar.?z* || exit 1 +cd autoconf-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +gzip -9 $PKG/usr/man/man1/*.? + +mkdir -p $PKG/usr/doc/autoconf-$VERSION +cp -a \ + AUTHORS BUGS COPYING* NEWS README THANKS TODO \ + $PKG/usr/doc/autoconf-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/autoconf-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/autoconf/doinst.sh b/source/d/autoconf/doinst.sh new file mode 100644 index 000000000..4877094ed --- /dev/null +++ b/source/d/autoconf/doinst.sh @@ -0,0 +1,13 @@ +# Update the /usr/info/dir info-database, so that we will see the new +# "autoconf" item in info root structure, if we type "info". +if [ -x /usr/bin/install-info ] ; then + install-info --info-dir=/usr/info /usr/info/autoconf.info.gz 2>/dev/null +elif fgrep "Autoconf" usr/info/dir 1> /dev/null 2> /dev/null ; then + GOOD=yes # It seems to be entered in the /usr/info/dir already +else # add the info to the dir file directly: +cat << EOF >> usr/info/dir + +Miscellaneous +* Autoconf: (autoconf). Create source code configuration scripts. +EOF +fi diff --git a/source/d/autoconf/slack-desc b/source/d/autoconf/slack-desc new file mode 100644 index 000000000..4a3b9a9f4 --- /dev/null +++ b/source/d/autoconf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +autoconf: autoconf (generate configuration scripts) +autoconf: +autoconf: GNU autoconf is an extensible package of m4 macros that produce shell +autoconf: scripts to automatically configure software source code packages. +autoconf: These scripts can adapt the packages to many kinds of UNIX-like +autoconf: systems without manual user intervention. Autoconf creates a +autoconf: configuration script for a package from a template file that lists the +autoconf: operating system features that the package can use, in the form of m4 +autoconf: macro calls. You must install the "m4" package to be able to use +autoconf: autoconf. +autoconf: diff --git a/source/d/automake/automake.SlackBuild b/source/d/automake/automake.SlackBuild new file mode 100755 index 000000000..c105dfeba --- /dev/null +++ b/source/d/automake/automake.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.10.1 +ARCH=${ARCH:-x86_64} # note: the package is _built_ as 'noarch' +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-automake + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf automake-$VERSION +tar xvf $CWD/automake-$VERSION.tar.?z* || exit 1 +cd automake-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +# Change hard links to symlinks: +SHORTNAME=$(echo $VERSION | cut -f1,2 -d .) +( cd $PKG/usr/bin + rm -f aclocal + ln -sf aclocal-$SHORTNAME aclocal + rm -rf automake + ln -sf automake-$SHORTNAME automake +) +#linkup; + +# Create local aclocal dir: +mkdir -p $PKG/usr/share/aclocal +touch $PKG/usr/share/aclocal + +mkdir -p $PKG/usr/doc/automake-$VERSION +mv $PKG/usr/share/doc/automake/* $PKG/usr/doc/automake-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* THANKS TODO \ + $PKG/usr/doc/automake-$VERSION +rm -rf $PKG/usr/share/doc + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/automake-$VERSION-noarch-$BUILD.txz + diff --git a/source/d/automake/doinst.sh b/source/d/automake/doinst.sh new file mode 100644 index 000000000..e50590c1c --- /dev/null +++ b/source/d/automake/doinst.sh @@ -0,0 +1,14 @@ +# Update the /usr/info/dir info-database, so that we will see the new +# "automake" item in info root structure, if we type "info". +if [ -x /usr/bin/install-info ] ; then + install-info --info-dir=/usr/info /usr/info/automake.info.gz 2>/dev/null +elif fgrep "automake" usr/info/dir 1> /dev/null 2> /dev/null ; then + GOOD=yes # It seems to be entered in the /usr/info/dir already +else # add the info to the dir file directly: +cat << EOF >> usr/info/dir + +GNU admin +* aclocal: (automake)Invoking aclocal. Generating aclocal.m4 +* automake: (automake). Making Makefile.in's +EOF +fi diff --git a/source/d/automake/slack-desc b/source/d/automake/slack-desc new file mode 100644 index 000000000..0c6cff62a --- /dev/null +++ b/source/d/automake/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +automake: automake (a Makefile generator) +automake: +automake: This is Automake, a Makefile generator. It was inspired by the 4.4BSD +automake: make and include files, but aims to be portable and to conform to the +automake: GNU standards for Makefile variables and targets. Automake is a Perl +automake: script. The input files are called Makefile.am. The output files are +automake: called Makefile.in; they are intended for use with Autoconf. Automake +automake: requires certain things to be done in your configure.in. You must +automake: install the "m4" and "perl" packages to be able to use automake. +automake: +automake: diff --git a/source/d/binutils/binutils.SlackBuild b/source/d/binutils/binutils.SlackBuild new file mode 100755 index 000000000..c83c29215 --- /dev/null +++ b/source/d/binutils/binutils.SlackBuild @@ -0,0 +1,129 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.18.50.0.9 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-binutils + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf binutils-$VERSION +tar xvf $CWD/binutils-$VERSION.tar.bz2 || exit 1 +cd binutils-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Build for an x86 glibc2-based Linux system: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-docdir=/usr/doc/binutils-$VERSION \ + --enable-shared \ + --enable-multilib \ + --enable-64-bit-bfd \ + --enable-targets=$ARCH-slackware-linux \ + --build=$ARCH-slackware-linux \ + || exit 1 + +make clean || exit 1 +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# "make install" skips this, but binutils.spec doesn't. Sneaky, huh? +cp -a include/libiberty.h $PKG/usr/include/libiberty.h + +# Differentiate between BSD strings and GNU strings +( cd $PKG/usr/bin ; mv strings strings-GNU ) +( cd $PKG/usr/man/man1 ; mv strings.1 strings-GNU.1 ) + +# Move ldscripts to /usr/lib${LIBDIRSUFFIX}, and then put symlinks in place +mv $PKG/usr/${ARCH}-slackware-linux/lib/ldscripts $PKG/usr/lib${LIBDIRSUFFIX} +( cd $PKG/usr/${ARCH}-slackware-linux + ln -s /usr/lib${LIBDIRSUFFIX}/ldscripts lib/ldscripts + for FILE in ar as ld nm objcopy objdump ranlib strip ; do + if [ -r "/usr/bin/$FILE" ]; then + rm -f bin/$FILE + ln -s /usr/bin/$FILE bin/$FILE + fi + done +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Remove some unneeded man pages, and then compress the rest +rm -f $PKG/usr/man/man1/{dlltool,windres}.1 +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +# Compress info pages +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/binutils-$VERSION +cp \ + $CWD/release.binutils-* \ + COPYING* ChangeLog.linux MAI* README* \ + $PKG/usr/doc/binutils-$VERSION +chown -R root:root $PKG/usr/doc/binutils-$VERSION + +# Add slack-desc: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/binutils-$VERSION-$ARCH-$BUILD.txz + +cat << EOF + +############################# +oprofile links to libbfd so +be sure to recompile that +############################# + +EOF diff --git a/source/d/binutils/release.binutils-2.18.50.0.9 b/source/d/binutils/release.binutils-2.18.50.0.9 new file mode 100644 index 000000000..ecae5c083 --- /dev/null +++ b/source/d/binutils/release.binutils-2.18.50.0.9 @@ -0,0 +1,1028 @@ +This is the beta release of binutils 2.18.50.0.9 for Linux, which is +based on binutils 2008 0822 in CVS on sourceware.org plus various +changes. It is purely for Linux. + +All relevant patches in patches have been applied to the source tree. +You can take a look at patches/README to see what have been applied and +in what order they have been applied. + +Starting from the 2.18.50.0.4 release, the x86 assembler no longer +accepts + + fnstsw %eax + +fnstsw stores 16bit into %ax and the upper 16bit of %eax is unchanged. +Please use + + fnstsw %ax + +Starting from the 2.17.50.0.4 release, the default output section LMA +(load memory address) has changed for allocatable sections from being +equal to VMA (virtual memory address), to keeping the difference between +LMA and VMA the same as the previous output section in the same region. + +For + +.data.init_task : { *(.data.init_task) } + +LMA of .data.init_task section is equal to its VMA with the old linker. +With the new linker, it depends on the previous output section. You +can use + +.data.init_task : AT (ADDR(.data.init_task)) { *(.data.init_task) } + +to ensure that LMA of .data.init_task section is always equal to its +VMA. The linker script in the older 2.6 x86-64 kernel depends on the +old behavior. You can add AT (ADDR(section)) to force LMA of +.data.init_task section equal to its VMA. It will work with both old +and new linkers. The x86-64 kernel linker script in kernel 2.6.13 and +above is OK. + +The new x86_64 assembler no longer accepts + + monitor %eax,%ecx,%edx + +You should use + + monitor %rax,%ecx,%edx + +or + monitor + +which works with both old and new x86_64 assemblers. They should +generate the same opcode. + +The new i386/x86_64 assemblers no longer accept instructions for moving +between a segment register and a 32bit memory location, i.e., + + movl (%eax),%ds + movl %ds,(%eax) + +To generate instructions for moving between a segment register and a +16bit memory location without the 16bit operand size prefix, 0x66, + + mov (%eax),%ds + mov %ds,(%eax) + +should be used. It will work with both new and old assemblers. The +assembler starting from 2.16.90.0.1 will also support + + movw (%eax),%ds + movw %ds,(%eax) + +without the 0x66 prefix. Patches for 2.4 and 2.6 Linux kernels are +available at + +http://www.kernel.org/pub/linux/devel/binutils/linux-2.4-seg-4.patch +http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch + +The ia64 assembler is now defaulted to tune for Itanium 2 processors. +To build a kernel for Itanium 1 processors, you will need to add + +ifeq ($(CONFIG_ITANIUM),y) + CFLAGS += -Wa,-mtune=itanium1 + AFLAGS += -Wa,-mtune=itanium1 +endif + +to arch/ia64/Makefile in your kernel source tree. + +Please report any bugs related to binutils 2.18.50.0.9 to +hjl.tools@gmail.com + +and + +http://www.sourceware.org/bugzilla/ + +Changes from binutils 2.18.50.0.8: + +1. Update from binutils 2008 0822. +2. Add Intel AES+AVX support. +3. Add syscall and sysret for Cpu64 in x86 assembler. +4. Fix i386/x86-64 TLS 2 support. +5. Disable gas generated debug info when compiler generates it. PR +gas/6656. +6. Fix an assembler .set bug. PR 6848. +7. Remove 2MB section gap from linker output. PR ld/6833. +8. Fix stab warnings caused linker errors. PR 6478. +9. Remove AVX registers from DWARF register map. +10. Fix linking Linux .o against FreeBSD .so. PR 4424. +11. Fix objcopy --extract-symbol. PR 6774. +12. Improve gold. +13. Improve mips GOT and non-PIC support. +14. Fix various arms bugs. +15. Fix various bfin bugs. +16. Fix various frv bugs. +17. Fix various h8300 bugs. +18. Fix various ppc bugs. +19. Fix various spu bugs. +20. Fix various xtensa bugs. + +Changes from binutils 2.18.50.0.7: + +1. Update from binutils 2008 0709. +2. Allow vmovd with 64bit operand in x86 assembler. +3. Improve -msse-check in x86 assembler. +4. Fix an AVX assembler bug in Intel syntax. PR 6517. +5. Improve error message in Intel syntax for x86 assembler. PR 6518. +6. Add the ".sse_check" directive to x86 assembler. +7. Improve gold. +8. Improve objcopy/strip. PR 2995/6473. +9. Improve objdump -g. PR 6483. +10. Improve ld --sort-common. PR 6430. +11. Add multi-GOT support for m68k. +12. Fix various arm bugs. +13. Fix various avr bugs. +14. Fix various hppa bugs. +15. Fix various m68k bugs. +16. Fix various mips bugs. +17. Fix various mmix bugs. +18. Fix various ppc bugs. +19. Fix various spu bugs. +20. Fix various xtensa bugs. + +Changes from binutils 2.18.50.0.6: + +1. Update from binutils 2008 0502. +2. Add Intel EPT and MOVBE support. +3. Correct Intel FMA operand order. +4. Change Intel CLMUL to Intel PCLMUL. +5. Add -msse-check to x86 assembler to warn SSE instruction where +there is AVX equivalent. +6. Provide backward compatibility for ELF object files with more +than 64K sections generated by the older binutils. PR 6412. +7. Improve FDPIC support. +8. Add -wL switch to readelf to dump decoded contents of .debug_line. +9. Add -ag switch to assembler show general information in listings. +10. Improve objcopy symbol filtering performance. PR 6034. +12. Correct think archive support. +13. Improve ELF/Sparc support. +14. Fix various mips bugs. +15. Fix various sh bugs. +16. Fix various spu bugs. + +Changes from binutils 2.18.50.0.5: + +1. Update from binutils 2008 0403. +2. Add Intel AES, CLMUL, AVX/FMA support. +3. Improve error handling in x86 linker for undefined hidden/internal +symbols when building a shared object. PR ld/5789/5943. +4. Add a new ELF linker, gold. +5. Add think archive support. +6. Fix various arm bugs. +7. Fix various avr bugs. +8. Fix various bfin bugs. +9. Fix various hppa bugs. +10. Fix various m68k bugs. +11. Fix various mips bugs. +12. Fix various s390 bugs. +13. Fix various spu bugs. + +Changes from binutils 2.18.50.0.4: + +1. Update from binutils 2008 0314. +2. Add Intel XSAVE new instruction support. +3. Fix an ia64 linker crash on unsupported TLS relocations. PR 5913. +4. Fix x86 assembler for gcc 4.3. +5. Fix a linker memory corruption. PR 5788. +6. Correct linker 64k section support. PR 5900. +7. Correct hidden, weak and undefined symbol handling. PR 5789. +8. Fix linker for 64bit targets on 32bit hosts. PR 5303/5755. +9. Fix assembler crash with .set on register. PR 5543. +10. Fix a typo in linker. PR 5765. +11. Fix "string -O" infinite loop. PR 5713. +12. Fix .exitm in assembler. PR 5895. +13. Fix a linker crash. PR 5761. +14. Fix various arm bugs. +15. Fix various bfin bugs. +16. Fix various h8 bugs. +17. Fix various ppc bugs. +18. Fix various spu bugs. +19. Fix various xtensa bugs. + +Changes from binutils 2.18.50.0.3: + +1. Update from binutils 2008 0208. +2. Update readelf/objdump to dump DWARF frame info with machine +register names on x86. +3. Optimize x86-64 assembler to omit REX.W prefix when it is ignored. +4. Add operand size check to x86 assembler. PR 5534. +5. Add -march=CPU[,+EXTENSION...], -mmnemonic, -msyntax, -mindex-reg, +-mnaked-reg and -mold-gcc options to x86 assembler. +6. Add -Mintel-mnemonic/-Mintel-mnemonic options to x86 disassembler. +7. Update x86 disassembler to handle r12 like rsp in memory operand. +8. Update x86 disassembler to properly support movntq, movntsd, +movntss, movntps, movntpd, movntdq and movntdqa. +9. Update x86 disassembler to support AMD nops. +10. Update x86 disassembler for cvtsi2ss/cvtsi2sd. +11. Fix x86 assembler to support new instructions on 2 different archs. +12. Update linker not to generate incorrect debug info for 64bit target +on 32bit host. PR 5303. +13. Update ia64 assembler to support new registers in Itanium 9100 +series. +14. Fix strip on PT_NOTE segment. PR 5488. +15. Fix strip/objcopy on HPUX/ia64. PR 5449. +16. Fix strip/objcopy for EFI. PR 5307. +17. Remove duplicated sections from objdump for COFF/PE. PR 5299. +18. Fix a linker corruption. PR 5522. +19. Fix mingw for 64bit targets. +20. Fix various arm bugs. +21. Fix various fr30 bugs. +22. Fix various frv bugs. +23. Fix various hppa bugs. +24. Fix various m10300 bugs. +25. Fix various m32r bugs. +26. Fix various m68k bugs. +27. Fix various mips bugs. +28. Fix various ppc bugs. +29. Fix various spu bugs. +30. Fix various xtensa bugs. + +Changes from binutils 2.18.50.0.2: + +1. Update from binutils 2007 1102. +2. Support link in Linux object files on FreeBSD. PR 4424. +3. Add Intel SMX instruction support to x86 assembler/diasassembler. +4. Fix an objcopy regression where we failed to adjust section +flags. PR 5233. +5. Improve irregular instruction support in x86 assembler. +6. Improve support for instructions with restricted operands in x86 +diasassembler. +7. Fix an x86-64 assembler bug where extra REX byte generated in Intel +mode. PR 5109. +8. Update .pushsection directive support in assembler. PRs 5221. +9. Improve linker -z relro support. +10. Add support for generating wide character strings in assembler. +11. Improve relocation process for DWARF debug info in readelf. +12. Add a linker warning for invalid merge section with unterminated +strings. +13. Improve linker support of DWARF debug info for discarded sections +during linker-relaxation. +14. Improve fabs detection. PR 5147. +15. Improve non-bash support. PR 5215. +16. Improve support for non-gcc compiler. PRs 5146/5160. +17. Improve error messages. PRs 5172/5173/5161/5158/5155/ +5121-5126/5129/5131-5137/5143/5142/5078/5089/5090. +18. Fix various cr16 bugs. +19. Fix various m10300 bugs. +20. Fix various mips bugs. +21. Fix various ppc bugs. +22. Fix various xtensa bugs. + +Changes from binutils 2.18.50.0.1: + +1. Update from binutils 2007 1001. +2. Speed up hash table lookup in linker. +3. Add -c/--archive-index option to readelf. +4. Fix an readelf crash. PR 5011. +5. Fix an x86 assembler Intel mode bug. PR 5080. +6. Add EIP support in x86 assembler. +7. Add fake index registers, EIZ/RIZ, to x86 assembler/disassembler. +8. Improve x86 assembler error message for truncated values. PR 5026. +9. Remove a COFF assertion in COFF assembler. PR 5035. +10. Add AMD SSE5 support to x86 assembler/disassembler. +11. Fix x86 assembler for extrq/insertq in Intel mode. +12. Fix x86 disassembler for invalid opcodes in 64bit. PR 5072. +13. Fix auto-import in PE-COFF linker. PR 4844. +14. Correct -z now in ELF linker. +15. Fix a --build-id linker crash. PR 5025. +16. Improved x86 assembler/disassembler infrastructure for new +instruction support. +17. Fix various m68k bugs. +18. Fix various ppc bugs. +19. Fix various spu bugs. + +Changes from binutils 2.17.50.0.18: + +1. Update from binutils 2007 0908. +2. Fix an ELF linker for SHT_NOBITS sections. PR 2864/5006. +3. Improve TLS transition check in i386 and x86-64 linkers. +4. Fix a GD->LE/LD->LE TLS transition bug in i386 and x86-64 linkers. +PR 4918. +5. Update ELF linker to dump segment map when a section can't be allocated +in segment. PR 4909. +6. Clean up x86 disassembler to remove fixups and make it more +table driven. +7. Fix x86 disassember for SSE instructions in Intel mode. PR 4834. +8. Properly handle bss segments in ELF linker. +9. Add --string-dump to readelf. +10. Fix objcopy -R .debug_* --only-keep-debug regression. PR 4888. +11. Change x86 assembler to follow SVME specification. +12. Fix x86 assembler for cmpxchg8b, pextrb and pinsrb in Intel mode. +13. Update x86 assembler to better handle expressions with @GOT suffix. +PR 4079. +14. Properly handle section alignment >= 128 byte for PECOFF. +15. Fix an ELF linker --build-id option crash. PR 4923. +16. Fix binutils build on HP-UX. PR 4875. +17. Fix a regression of the a.out linker -N option. PR 4515. +18. Update x86 disassembler for invlpg, fxsave, fxrstor, ldmxcsr and +stmxcsr in Intel mode. +19. Fix x86 assembler for SSE4 instructions in Intel mode. +20. Fix various arm bugs. +21. Fix various mips bugs. +22. Fix various ppc bugs. +23. Fix various spu bugs. +24. Fix various xtensa bugs. + +Changes from binutils 2.17.50.0.17: + +1. Update from binutils 2007 0731. +2. Switching from GPLv2 to GPLv3. +3. Add a new ELF linker option, --build-id, to generate a unique +per-binary identifier embedded in a note section. +4. Remove COFF/x86-64 from PE-COFF/x86-64. +5. Fix a "nm -l" crash on DWARF info. PR 4797. +6. Match symbol type when creating symbol aliase in ELF shared library. +7. Fix addr2line on relocatable linux kernel. PR 4756. +8. Change disassembler to print addend as signed. +9. Support section alignment from 128 to 8192 bytes for PE-COFF. +10. Add attribute section to ELF linker. +11. Fix ELF linker to meet gABI alignment requirement. PR 4701. +12. Add support for reading in debug information via a .gnu_debuglink +section. +13. Fix string merge for ia64 linker. PR 4590. +14. Add --common to size to display total size for *COM* syms. +15. Fix "strip --strip-unneeded" on relocatable files. PR 4716. +16. Fix "objcopy/strip --only-keep-debug" for SHT_NOTE sections. +17. Fix objdump -S with unit-at-a-time. +18. Properly handle "-shared -pie" in linker. PR 4409. +19. Fix x86 disassembler in Intel mode for various SIMD instruction. +PRs 4667/4834. +20. Update x86-64 assembler to long nop sequence by default. +21. Fix --32 for x86-64 mingw assembler. +22. Fix a memory corruption in assembler. PR 4722. +22. Properly support 64bit PE-COFF on hosts where long isn't 64bit. +23. Add #line in generated linker source files. +24. Fix linker crash on SIZEOF. PR 4782. +27. Add CR16 support. +28. Add windmc tool for Windows. +29. Generate x86 instruction/register definitions from ascii tables. +30. Fix strip for Solaris. PR 4712. +31. Fix various mips bugs. +32. Fix various ppc bugs. +33. Fix various spu bugs. +34. Fix various xtensa bugs. + +Changes from binutils 2.17.50.0.16: + +1. Update from binutils 2007 0615. +2. Preserve section alignment for copy relocation. PR 4504. +3. Properly fix regression with objcopy --only-keep-debug. PR 4479. +4. Fix ELF eh frame handling. PR 4497. +5. Fix ia64 string merge. PR 4590. +5. Don't use PE target on EFI files nor EFI target on PE files. +6. Speed up linker with many input files. +7. Support cross compiling windres. PR 2737. +8. Fix various windres bugs. +9. Fix various arms bugs. +10. Fix various m68k bugs. +11. Fix various mips bugs. +12. Fix various ppc bugs. +13. Fix various sparc bugs. +14. Fix various spu bugs. +15. Fix various xtensa bugs. + +Changes from binutils 2.17.50.0.15: + +1. Update from binutils 2007 0511. +2. Fix objcopy --only-keep-debug and linker multiple BSS sections handling. +PR 4479. +3. Fix "readelf -s -D" for gnu hash. PR 4476. +4. Fix ia64 linker crash with --unresolved-symbols=ignore-all. PR 4409. +5. Improve crc32 support in x86 assembler/dissassembler. +6. Improve displacement handling in x86 dissassembler. PR 4430. +7. Correct PC relative displacement handling in x86-64 dissassembler for +Intel mode. PR 4429. +8. Fix various PPC bugs. +9. Fix various SPU bugs. +10. Fix various ARM bugs. +11. Fix various m68k bugs. +12. Fix various xtensa bugs. + +Changes from binutils 2.17.50.0.14: + +1. Update from binutils 2007 0418. +2. Support Intel SSE4 instructions. +3. Fix linker --fatal-warnings for --warn-shared-textrel. PR 4304. +4. Improve linker error message to identify linker script error +location. PR 4090. +5. Fix objcopy to allow removing all sections. PR 4348. +6. Don't print addresses of 32-bit targets as 64-bit values on 64bit +host. PR 4292. +7. Improve checking for corrupted input files. PR 4110. +8. Improve alpha linker performance. +9. Add a new linker option, -l:foo. +10. Fix a PPC linker bug. PR 4267. +11. Misc vxworks bug fixes. +12. Misc SH bug fixes. +13. Misc SPU bug fixes. +14. Misc ARM bug fixes. +15. Misc MIPS bug fixes. +16. Misc xtensa bug fixes. + +Changes from binutils 2.17.50.0.13: + +1. Update from binutils 2007 0322. +2. Fix >16byte nop padding regression in x86 assembler. +3. Fix x86-64 disassembler for xchg. PR 4218. +4. Optimize opcode for x86-64 xchg. +5. Allow register operand with x86 nop. +6. Properly handle holes between sections for PE-COFF. PR 4210. +7. Print more PE-COFF info for objdump -p. +8. Report missing matching LO16 relocation for HI16 relocation in mips +linker. +9. Use PC-relative relocation for Win64. +10. Fix strip for Solaris. PR 3535. +11. Fix a C++ demangler crash. +12. Some m32c update. +13. Fix misc ARM bugs. + +Changes from binutils 2.17.50.0.12: + +1. Update from binutils 2007 0315. +2. Add EFI/x86-64 support. +3. Fix ELF linker for relocation against STN_UNDEF. PR 3958. +4. Fix ELF linker for SHT_NOBITS section whose VMA > page size. PR 4144. +5. Make assembler and disassembler consistent for "test %eax,%ebx". PR +4027. +6. Fix i386 32bit address wraparound. PR 3966. +7. Allow Linux/i386 linker to read FreeBSD/i386 object files. +8. Fix ELF linker crash upon use of .gnu.warning.<symbol> sections. PR +3953. +9. Fix ELF linker to issue an error on bad section in segment. PR 4007. +10. Support enabling both x86_64-mingw32 and i386-mingw32. PR 3945. +11. Fix assembler to stabilize .gcc_except_table relaxation. PR 4029. +12. Fix a MIPS linker crash. PR 3852. +13. Fix readelf for h8300-elf. PR 3800. +14. Fix strip for Solaris. PR 3535. +15. Misc xtensa bug fixes. +16. Misc PPC bug fixes. +17. Misc SPU bug fixes. +18. Add support for Toshiba MeP. + +Changes from binutils 2.17.50.0.11: + +1. Update from binutils 2007 0128. +2. Remove duplicate code in x86 assembler. +3. Fix 32bit and 64bit HPPA/ELF. + +Changes from binutils 2.17.50.0.10: + +1. Update from binutils 2007 0125. +2. Support environment variables, LD_SYMBOLIC for -Bsymbolic and +LD_SYMBOLIC_FUNCTIONS for -Bsymbolic-functions. +3. Build binutils rpm with LD_SYMBOLIC_FUNCTIONS=1 and reduce PLT +relocations in libfd.so by 84%. +4. Enable sharable sections only for ia32, x86-64 and ia64. +5. Properly handle PT_GNU_RELRO segment for objcopy. + +Changes from binutils 2.17.50.0.9: + +1. Update from binutils 2007 0122. +2. Implement sharable section proposal for ia32, x86-64 and ia64: + +http://groups-beta.google.com/group/generic-abi + +3. Implement linker enhancement, -Bsymbolic-functions, +--dynamic-list-cpp-new and --dynamic-list-data. PR 3831. +4. Implement new linker switch, --default-script=FILE/-dT FILE. +5. Check EI_OSABI when reading ELF files. PR 3826. +6. Fix x86 assembler error message. PR 3830. +7. Fix a bug in ld testsuite. PR 1283. +8. Don't include archive64.o for 32bit target. PR 3631. +9. Support -z max-page-size and -z common-page-size in user provided +linker script. +10. Fix 32bit library support for GNU/kFreeBSD/x86-64. PR 3843. +11. Fix some bugs in Score assembler. PR 3871. +12. Fix various bugs in ARM assembler. PR 3707 and more. +13. Add Fido support. + +Changes from binutils 2.17.50.0.8: + +1. Update from binutils 2007 0103. +2. Fix --wrap linker bug. +3. Improve handling ELF binaries generated by foreign ELF linkers. +4. Various ELF M68K bug fixes. +5. Score bug fixes. +6. Don't read past end of archive elements. PR 3704. +7. Improve .eh_frame_hdr section handling. +8. Fix symbol visibility with comdat/linkonce sections in ELF linker. +PR 3666. +9. Fix 4 operand instruction handling in x86 assembler. +10. Properly check the 4th operand in x86 assembler. PR 3712. +11. Fix .cfi_endproc handling in assembler. PR 3607. +12. Various ARM bug fixes. +13. Various PE linker fixes. +14. Improve x86 dissassembler for cmpxchg16b. + +Changes from binutils 2.17.50.0.7: + +1. Update from binutils 2006 1201. +2. Fix "objcopy --only-keep-debug" crash. PR 3609. +3. Fix various ARM ELF bugs. +4. Fix various xtensa bugs. +5. Update x86 disassembler. + +Changes from binutils 2.17.50.0.6: + +1. Update from binutils 2006 1127. +2. Properly set ELF output segment address when the first section in +input segment is removed. +3. Better merging of CIEs in linker .eh_frame optimizations. +4. Support .cfi_personality and .cfi_lsda assembler directives. +5. Fix an ARM linker crash. PR 3532. +6. Fix various PPC64 ELF bugs. +7. Mark discarded debug info more thoroughly in linker output. +8. Fix various MIPS ELF bugs. +9. Fix readelf to display program interpreter path > 64 chars. PR 3384. +10. Add support for PowerPC SPU. +11. Properly handle cloned symbols used in relocations in assembler. PR +3469. +12. Update opcode for POPCNT in amdfam10 architecture. + +Changes from binutils 2.17.50.0.5: + +1. Update from binutils 2006 1020. +2. Don't make debug symbol dynamic. PR 3290. +3. Don't page align empty SHF_ALLOC sections, which leads to very large +executables. PR 3314. +4. Use a different section index for section relative symbols against +removed empty sections. +5. Fix a few ELF EH frame handling bugs. +6. Don't ignore relocation overflow on branches to undefweaks for +x86-64. PR 3283. +7. Rename MNI to SSSE3. +8. Properly append symbol list for --dynamic-list. +lists. +9. Various ARM ELF fixes. +10. Correct 64bit library search path for Linux/x86 linker with 64bit +support. +11. Fix ELF linker to copy OS/PROC specific flags from input section to +output section. +12. Fix DW_FORM_ref_addr handling in linker dwarf reader. PR 3191. +13. Fix ELF indirect symbol handling. PR 3351. +14. Fix PT_GNU_RELRO segment handling for SHF_TLS sections. Don't add +PT_GNU_RELRO segment when there are no relro sections. PR 3281. +15. Various MIPS ELF fixes. +16. Various Sparc ELF fixes. +17. Various Xtensa ELF fixes. + +Changes from binutils 2.17.50.0.4: + +1. Update from binutils 2006 0927. +2. Fix linker regressions of section address and section relative symbol +with empty output section. PR 3223/3267. +3. Fix "strings -T". PR 3257. +4. Fix "objcopy --only-keep-debug". PR 3262. +5. Add Intell iwmmxt2 support. +6. Fix an x86 disassembler bug. PR 3100. + +Changes from binutils 2.17.50.0.3: + +1. Update from binutils 2006 0924. +2. Speed up linker on .o files with debug info on linkonce sections. +PR 3111. +3. Added x86-64 PE support. +4. Fix objcopy/strip on .o files with section groups. PR 3181. +5. Fix "ld --hash-style=gnu" crash with gcc 3.4.6. PR 3197. +6. Fix "strip --strip-debug" on .o files generated with +"gcc -feliminate-dwarf2-dups". PR 3186. +7. Fix "ld -r" on .o files generated with "gcc -feliminate-dwarf2-dups". +PR 3249. +8. Add --dynamic-list to linker to make global symbols dynamic. +9. Fix magic number for EFI ia64. PR 3171. +10. Remove PT_NULL segment for "ld -z relro". PR 3015. +11. Make objcopy to perserve the file formats in archive elements. +PR 3110. +12. Optimize x86-64 assembler and fix disassembler for +"add32 mov xx,$eax". PR 3235. +13. Improve linker diagnostics. PR 3107. +14. Fix "ld --sort-section name". PR 3009. +15. Updated an x86 disassembler bug. PR 3000. +16. Various updates for PPC, ARM, MIPS, SH, Xtensa. +17. Added Score support. + +Changes from binutils 2.17.50.0.2: + +1. Update from binutils 2006 0715. +2. Add --hash-style to ELF linker with DT_GNU_HASH and SHT_GNU_HASH. +3. Fix a visibility bug in ELF linker (PR 2884). +4. Properly fix the i386 TLS linker bug (PR 2513). +5. Add assembler and dissassembler support for Pentium Pro nops. +6. Optimize x86 nops for Pentium Pro and above. +7. Add -march=/-mtune= to x86 assembler. +8. Fix an ELF linker with TLS common symbols. +9. Improve program header allocation in ELF linker. +10. Improve MIPS, M68K and ARM support. +11. Fix an ELF linker crash when reporting alignment change (PR 2735). +12. Remove unused ELF section symbols (PR 2723). +13. Add --localize-hidden to objcopy. +14. Add AMD SSE4a and ABM new instruction support. +15. Properly handle illegal x86 instructions in group 11 (PR 2829). +16. Add "-z max-page-size=" and "-z common-page-size=" to ELF linker. +17. Fix objcopy for .tbss sections. + +Changes from binutils 2.17.50.0.1: + +1. Update from binutils 2006 0526. +2. Change the x86-64 maximum page size to 2MB. +3. Support --enable-targets=all for 64bit target and host (PR 1485). +4. Properly update CIE/FDE length and align section for .eh_frame +section (PR 2655/2657). +5. Properly handle removed ELF section symbols. +6. Fix an ELF linker regression introduced on 2006-04-21. +7. Fix an segfault in PPC ELF linker (PR 2658). +8. Speed up the ELF linker by caching the result of kept section check. +9. Properly create stabs section for ELF. +10. Preserve ELF program header when copying ELF files. +11. Properly handle ELF SHN_LOPROC/SHN_HIOS when checking section +index (PR 2607). +12. Misc mips updates. +13. Misc arm updates. +14. Misc xtensa updates. +15. Fix an alpha assembler warning (PR 2598). +16. Fix assembler buffer overflow. +17. Properly disassemble sgdt/sidt for x86-64. + +Changes from binutils 2.16.91.0.7: + +1. Update from binutils 2006 0427. +2. Fix an objcopy regression (PR 2593). +3. Reduce ar memory usage (PR 2467). +4. Allow application specific ELF sections (PR 2537). +5. Fix an i386 TLS linker bug (PR 2513). +6. Speed up ia64 linker by 1300X in some cases (PR 2442). +7. Check illegal immediate register operand in i386 assembler (PR +2533). +8. Fix a strings bug (PR 2584). +9. Better handle corrupted ELF files (PR 2257). +10. Fix a MIPS linker bug (PR 2267). + +Changes from binutils 2.16.91.0.6: + +1. Update from binutils 2006 0317. +2. Support Intel Merom New Instructions in assembler/disassembler. +3. Support Intel new instructions in Montecito. +4. Fix linker "--as-needed" (PR 2434). +5. Fix linker "-s" regression (PR 2462). +6. Fix REP prefix for string instructions in x86 disassembler +(PR 2428). +7. Fix the weak undefined symbols in PIE (PR 2218). +8. Fix 2 DWARF reader bugs (PRs 2443, 2338). +9. Improve ELF linker error message (PR 2322). +10. Avoid abort with dynamic symbols in >64K sections (PR 2411). +11. Handle mismatched symbol types for executables (PR 2404). +12. Avoid a linker linkonce regression (PR 2342). + +Changes from binutils 2.16.91.0.5: + +1. Update from binutils 2006 0212. +2. Correct Linux linker search order for DT_NEEDED entries (PR 2290). +3. Fix the x86-64 disassembler for control/debug register moves. +4. Properly handle ELF strip/objcopy with unmodified program header +(PR 2258). +5. Improve ELF linker error handling when there are not enough room for +program headers (PR 2322). +6. Properly handle weak undefined symbols in PIE (PR 2218). +7. Support new i386/x86-64 TLS relocations. +8. Fix addr2line for linux kernel (PR 2096). +9. Fix an assembler memory leak with --statistics. +10. Avoid an ia64 assembler regression (PR 2117). + +Changes from binutils 2.16.91.0.4: + +1. Update from binutils 2005 1219. +2. Fix a MIPS linker regression (PR 1932). +3. Fix an objcopy bug for ia64 (PR 1991). +4. Fix a linker crash on bad input (PR 2008). +5. Fix 64bit monitor and mwait (PR 1874). + +Changes from binutils 2.16.91.0.3: + +1. Update from binutils 2005 1111. +2. Fix ELF orphan section handling (PR 1467) +3. Fix ELF section attribute handleing (PR 1487). +4. Fix IA64 unwind info dump for relocatable files. (PR 1436). +5. Add DWARF info dump to objdump. +6. Fix SHF_LINK_ORDER handling (PR 1321). +7. Don't allow "ld --just-symbols" on DSO (PR 1263). +8. Fix a "ld -u" crash on TLS symbol (PR 1301). +9. Fix an IA64 linker crash (PR 1247). +10. Fix a MIPS linker bug (PR 1150). +11. Fix a M68K linker bug (PR 1775). +12. Fix an ELF symbol versioning linker bug (PR 1540). +13. Improve linker error handling (PR 1208). +14. Add new SPARC processors to SunOS for objcopy (PR 1472). +15. Add "@file" to read options from a file. +16. Add assembler weakref support. + +Changes from binutils 2.16.91.0.2: + +1. Update from binutils 2005 0821. +2. Support x86-64 medium model. +3. Fix "objdump -S --adjust-vma=xxx" (PR 1179). +4. Reduce R_IA64_NONE relocations from R_IA64_LDXMOV relaxation. +5. Fix x86 linker regression for dosemu. +6. Add "readelf -t/--section-details" to display section details. +7. Fix "as -al=file" regression (PR 1118). + +Changes from binutils 2.16.91.0.1: + +1. Update from binutils 2005 0720. +2. Add Intel VMX support. +3. Add AMD SVME support. +4. Add x86-64 new relocations for medium model. +5. Fix a PIE regression (PR 975). +6. Fix an x86_64 signed 32bit displacement regression. +7. Fix PPC PLT (PR 1004). +8. Improve empty section removal. + +Changes from binutils 2.16.90.0.3: + +1. Update from binutils 2005 0622. +2. Fix a linker versioning bug exposed by gcc 4 (PR 1022/1023/1025). +3. Optimize ia64 br->brl relaxation (PR 834). +4. Improve linker empty section removal. +5. Fix DWARF 2 line number reporting (PR 990). +6. Fix DWARF 2 line number reporting regression on assembly file (PR +1000). + +Changes from binutils 2.16.90.0.2: + +1. Update from binutils 2005 0510. +2. Update ia64 assembler to support comdat group section generated by +gcc 4 (PR 940). +3. Fix a linker crash on bad input (PR 939). +4. Fix a sh64 assembler regression (PR 936). +5. Support linker script on executable (PR 882). +6. Fix the linker -pie regression (PR 878). +7. Fix an x86_64 disassembler bug (PR 843). +8. Fix a PPC linker regression. +9. Misc speed up. + +Changes from binutils 2.16.90.0.1: + +1. Update from binutils 2005 0429. +2. Fix an ELF linker regression (PR 815). +3. Fix an empty section removal related bug. +4. Fix an ia64 linker regression (PR 855). +5. Don't allow local symbol to be equated common/undefined symbols (PR +857). +6. Fix the ia64 linker to handle local dynamic symbol error reporting. +7. Make non-debugging reference to discarded section an error (PR 858). +8. Support Sparc/TLS. +9. Support rpm build with newer rpm. +10. Fix an alpha linker regression. +11. Fix the non-gcc build regression. + +Changes from binutils 2.15.94.0.2.2: + +1. Update from binutils 2005 0408. +2. The i386/x86_64 assemblers no longer accept instructions for moving +between a segment register and a 32bit memory location. +3. The x86_64 assembler now allows movq between a segment register and +a 64bit general purpose register. +4. 20x Speed up linker for input files with >64K sections. +5. Properly report ia64 linker relaxation failures. +6. Support tuning ia64 assembler for Itanium 2 processors. +7. Linker will remove empty unused output sections. +8. Add -N to readelf to display full section names. +9. Fix the ia64 linker to support linkonce text sections without unwind +sections. +10. More unwind directive checkings in the ia64 assembler. +11. Speed up linker with wildcard handling. +12. Fix readelf to properly dump .debug_ranges and .debug_loc sections. + +Changes from binutils 2.15.94.0.2: + +1. Fix greater than 64K section support in linker. +2. Properly handle i386 and x86_64 protected symbols in linker. +3. Fix readelf for LEB128 on 64bit hosts. +4. Speed up readelf for section group process. +5. Include ia64 texinfo pages. +6. Change ia64 assembler to check hint.b for Montecito. +7. Improve relaxation failure report in ia64 linker. +8. Fix ia64 linker to allow relax backward branch in the same section. + +Changes from binutils 2.15.94.0.1: + +1. Update from binutils 2004 1220. +2. Fix strip for TLS symbol references. + +Changes from binutils 2.15.92.0.2: + +1. Update from binutils 2004 1121. +2. Put ia64 .ctors/.dtors sections next to small data section for +Intel ia64 compiler. +3. Fix -Bdynamic/-Bstatic handling for linker script. +4. Provide more information on relocation overflow. +5. Add --sort-section to linker. +6. Support icc 8.1 unwind info in readelf. +7. Fix the infinite loop bug on bad input in the ia64 assembler. +8. Fix ia64 SECREL relocation in linker. +9. Fix a section group memory leak in readelf. + +Changes from binutils 2.15.91.0.2: + +1. Update from binutils 2004 0927. +2. Work around a section header bug in Intel ia64 compiler. +3. Fix an unwind directive bug in the ia64 assembler. +4. Fix various PPC bugs. +5. Update ARM support. +6. Fix an x86-64 linker warning while building Linux kernel. + +Changes from binutils 2.15.91.0.1: + +1. Update from binutils 2004 0727. +2. Fix the x86_64 linker to prevent non-PIC code in shared library. +3. Fix the ia64 linker to warn the relotable files which can't be +relaxed. +4. Fix the comdat group support. Allow mix single-member comdat group +with linkonce section. +5. Added --add-needed/--no-add-needed options to linker. +6. Fix the SHF_LINK_ORDER support. +7. Fix the ia64 assembler for multiple sections with the same name and +SHT_IA_64_UNWIND sections. +8. Fix the ia64 assembler for merge section and relaxation. + +Changes from binutils 2.15.90.0.3: + +1. Update from binutils 2004 0527. +2. Fix -x auto option in the ia64 assembler. +3. Add the AR check in the ia64 assembler. +4. Fix the section group support. +5. Add a new -z relro linker option. +6. Fix an exception section placement bug in linker. +7. Add .serialize.data and .serialize.instruction to the ia64 +assembler. + +Changes from binutils 2.15.90.0.2: + +1. Update from binutils 2004 0415. +2. Fix the linker for weak undefined symbol handling. +3. Fix the ELF/Sparc and ELF/Sparc64 linker for statically linking PIC +code. + +Changes from binutils 2.15.90.0.1.1: + +1. Update from binutils 2004 0412. +2. Add --as-needed/--no-as-needed to linker. +3. Fix -z defs in linker. +4. Always reserve the memory for ia64 dynamic linker. +5. Fix a race condition in ia64 lazy binding. + +Changes from binutils 2.15.90.0.1: + +1. Fixed an ia64 assembler bug. +2. Install the assembler man page. + +Changes from binutils 2.14.90.0.8: + +1. Update from binutils 2004 0303. +2. Fixed linker for undefined symbols with non-default visibility. +3. Sped up linker weakdef symbol handling. +4. Fixed mixing ELF32 and ELF64 object files in archive. +5. Added ia64 linker brl optimization. +6. Fixed ia64 linker to disallow invalid dynamic relocations. +7. Fixed DT_TEXTREL handling in ia64 linker. +8. Fixed alignment handling in ia64 assembler. +9. Improved ia64 assembler unwind table handling. + +Changes from binutils 2.14.90.0.7: + +1. Update from binutils 2004 0114. +2. Fixed an ia64 assembler unwind table bug. +3. Better handle IPF linker relaxation overflow. +4. Fixed misc PPC bugs. + +Changes from binutils 2.14.90.0.6: + +1. Update from binutils 2003 1029. +2. Allow type changes for undefined symbols. +3. Fix EH frame optimization. +4. Fix the check for undefined versioned symbol with wildcard. +5. Support generating code for Itanium. +6. Detect and warn bad symbol index. +7. Update IPF assemebler DV check. + +Changes from binutils 2.14.90.0.5: + +1. Update from binutils 2003 0820. +2. No longer use section names for ELF section types nor flags. +3. Fix some ELF/IA64 linker bugs. +4. Fix some ELF/ppc bugs. +5. Add archive support to readelf. + +Changes from binutils 2.14.90.0.4.1: + +1. Update from binutils 2003 0722. +2. Fix an ELF/mips linker bug. +3. Fix an ELF/hpppa linker bug. +4. Fix an ELF/ia64 assembler bug. +5. Fix a linkonce support with C++ debug. +6. A new working C++ demangler. +7. Various alpha, mips, ia64, ... bug fixes. +8. Support for the current gcc and glibc. + +Changes from binutils 2.14.90.0.4: + +1. Fix an ia64 assembler hint@pause bug. +2. Support Intel Prescott New Instructions. + +Changes from binutils 2.14.90.0.3: + +1. Work around the brain dead libtool. + +Changes from binutils 2.14.90.0.2: + +1. Update from binutils 2003 0523. +2. Fix 2 ELF visibility bugs. +3. Fix ELF/ppc linker bugs. + +Changes from binutils 2.14.90.0.1: + +1. Update from binutils 2003 0515. +2. Fix various ELF visibility bugs. +3. Fix some ia64 linker bugs. +4. Add more IAS compatibilities to ia64 assembler. + +Changes from binutils 2.13.90.0.20: + +1. Update from binutils 2003 0505. +2. Fix various ELF visibility bugs. +3. Fix some ia64 linker bugs. +4. Fix some ia64 assembler bugs. +5. Add some IAS compatibilities to ia64 assembler. +6. Fix ELF common symbol alignment. +7. Fix ELF weak symbol handling. + +Changes from binutils 2.13.90.0.18: + +1. Update from binutils 2003 0319. +2. Fix an ia64 linker brl relaxation bug. +3. Fix some ELF/ppc linker bugs. + +Changes from binutils 2.13.90.0.16: + +1. Update from binutils 2003 0121. +2. Fix an ia64 gas bug. +3. Fix some TLS bugs. +4. Fix some ELF/ppc bugs. +5. Fix an ELF/m68k bug. + +2. Include /usr/bin/c++filt. +Changes from binutils 2.13.90.0.14: + +1. Update from binutils 2002 1126. +2. Include /usr/bin/c++filt. +3. Fix "ld -r" with execption handling. + +Changes from binutils 2.13.90.0.10: + +1. Update from binutils 2002 1114. +2. Fix ELF/alpha bugs. +3. Fix an ELF/i386 assembler bug. + +Changes from binutils 2.13.90.0.4: + +1. Update from binutils 2002 1010. +2. More ELF/PPC linker bug fixes. +3. Fix an ELF/alpha linker bug. +4. Fix an ELF/sparc linker bug to support Solaris. +5. More TLS updates. + +Changes from binutils 2.13.90.0.3: + +1. Update from binutils 2002 0814. +2. Fix symbol versioning bugs for gcc 3.2. +3. Fix mips gas. + +Changes from binutils 2.13.90.0.2: + +1. Update from binutils 2002 0809. +2. Fix a mips gas compatibility bug. +3. Fix an x86 TLS bfd bug. +4. Fix an x86 PIC gas bug. +5. Improve symbol versioning support. + +The file list: + +1. binutils-2.18.50.0.9.tar.bz2. Source code. +2. binutils-2.18.50.0.8-2.18.50.0.9.diff.bz2. Patch against the + previous beta source code. +3. binutils-2.18.50.0.9.i686.tar.bz2. IA-32 binary tar ball for RedHat + EL 4. +4. binutils-2.18.50.0.9.ia64.tar.bz2. IA-64 binary tar ball for RedHat + EL 4. +5. binutils-2.18.50.0.9.x86_64.tar.bz2. X64_64 binary tar ball for RedHat + EL 4. + +The primary sites for the beta Linux binutils are: + +1. http://www.kernel.org/pub/linux/devel/binutils/ + +Thanks. + + +H.J. Lu +hjl.tools@gmail.com +08/23/2008 diff --git a/source/d/binutils/slack-desc b/source/d/binutils/slack-desc new file mode 100644 index 000000000..417dc3332 --- /dev/null +++ b/source/d/binutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +binutils: binutils (GNU binary development tools) +binutils: +binutils: Binutils is a collection of binary utilities. It includes "as" (the +binutils: portable GNU assembler), "ld" (the GNU linker), and other utilities +binutils: for creating and working with binary programs. +binutils: +binutils: These utilities are REQUIRED to compile C, C++, Objective-C, Fortran, +binutils: and most other programming languages. +binutils: +binutils: +binutils: diff --git a/source/d/bison/bison.SlackBuild b/source/d/bison/bison.SlackBuild new file mode 100755 index 000000000..f99d23302 --- /dev/null +++ b/source/d/bison/bison.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2005-2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.4.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bison + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf bison-$VERSION +tar xvf $CWD/bison-$VERSION.tar.bz2 || exit 1 +cd bison-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info + +make -j3 || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +gzip -9 $PKG/usr/man/man1/bison.1 + +mkdir -p $PKG/usr/doc/bison-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README REFERENCES THANKS doc/FAQ \ + $PKG/usr/doc/bison-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/bison-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/bison/slack-desc b/source/d/bison/slack-desc new file mode 100644 index 000000000..9b4292530 --- /dev/null +++ b/source/d/bison/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bison: bison (parser generator similar to yacc) +bison: +bison: GNU "Bison" is a general-purpose parser generator that converts a +bison: grammar description for an LALR(1) context-free grammar into a C +bison: program to parse that grammar. +bison: +bison: Bison is upward compatible with Yacc: all properly-written Yacc +bison: grammars ought to work with Bison with no change. Anyone familiar +bison: with Yacc should be able to use Bison with little trouble. +bison: +bison: diff --git a/source/d/ccache/ccache.SlackBuild b/source/d/ccache/ccache.SlackBuild new file mode 100755 index 000000000..c7898ee85 --- /dev/null +++ b/source/d/ccache/ccache.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ccache + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ccache-$VERSION +tar xvf $CWD/ccache-$VERSION.tar.gz || exit 1 +cd ccache-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure --prefix=/usr + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +gzip -9 $PKG/usr/man/man1/*.1 + +mkdir -p $PKG/usr/doc/ccache-$VERSION +cp -a \ + web/index.html README \ + $PKG/usr/doc/ccache-$VERSION + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ccache-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/ccache/slack-desc b/source/d/ccache/slack-desc new file mode 100644 index 000000000..ebb56d940 --- /dev/null +++ b/source/d/ccache/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ccache: ccache (a fast compiler cache) +ccache: +ccache: ccache is a compiler cache. It speeds up re-compilation of C/C++ code +ccache: by caching previous compiles and detecting when the same compile is +ccache: being done again. +ccache: +ccache: ccache was written by Andrew Tridgell. +ccache: +ccache: +ccache: +ccache: diff --git a/source/d/clisp/clisp.SlackBuild b/source/d/clisp/clisp.SlackBuild new file mode 100755 index 000000000..49e4f768d --- /dev/null +++ b/source/d/clisp/clisp.SlackBuild @@ -0,0 +1,192 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.47 +DIRNAME=2.47 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +# Bundled libraries: +FFCALLVER=20080704cvs +LIBSIGSEVVER=2.6 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-clisp + +rm -rf $PKG +mkdir -p $TMP $PKG + +#================================================================= +# First we need this. It used to ship with CLISP, but no longer does. +cd $TMP +rm -rf libsigsegv-$LIBSIGSEVVER +tar xvf $CWD/libsigsegv-$LIBSIGSEVVER.tar.bz2 || exit 1 +cd libsigsegv-$LIBSIGSEVVER || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Nah. +# --enable-shared=yes + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-static=yes +make $NUMJOBS || make || exit 1 + +# Now I must install this. Sorry, it's gotta happen. +make install +# Now add to the package: +mkdir -p $PKG/usr +make install prefix=$PKG/usr +strip --strip-unneeded $PKG/usr/lib${LIBDIRSUFFIX}/*.so +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a +mkdir -p $PKG/usr/doc/clisp-$VERSION/libsigsegv-$LIBSIGSEVVER +cp -a \ + AUTHORS COPYING ChangeLog NEWS PORTING README \ + $PKG/usr/doc/clisp-$VERSION/libsigsegv-$LIBSIGSEVVER + +#================================================================= +# Build ffcall - needed for --dynamic-ffi with clisp. +cd $TMP +rm -rf ffcall* +tar xvf $CWD/ffcall-$FFCALLVER.tar.* || exit 1 +cd ffcall* || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 + +make install DESTDIR=$PKG || exit 1 +# We need ffcall installed in order to build clisp: +make install + +# Don't need this: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la + +# Move docs around: +mkdir -pm755 $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER +install -vpm644 README NEWS COPYING \ + $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER +mv -f $PKG/usr/share/html/* $PKG/usr/doc/clisp-$VERSION/ffcall-$FFCALLVER +rmdir $PKG/usr/share/html/ +rmdir $PKG/usr/share/ + +#================================================================= + +# OK, now we compile CLISP: +cd $TMP +rm -rf clisp-$VERSION +tar xvf $CWD/clisp-$VERSION.tar.bz2 || exit 1 +cd clisp-$DIRNAME || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/clisp-$VERSION \ + --with-module=clx/new-clx \ + --with-module=pcre \ + --with-module=rawsock \ + --with-module=wildcard \ + --with-module=zlib \ + --cbc with-gcc-wall \ + --with-dynamic-ffi || exit 1 + +cd with-gcc-wall +./makemake \ + --with-dynamic-ffi \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-module=clx/new-clx \ + --with-module=pcre \ + --with-module=rawsock \ + --with-module=wildcard \ + --with-module=zlib \ + --srcdir=../src \ + > Makefile +make config.lisp +make init +make allc +make $NUMJOBS lisp.run +make interpreted.mem +make halfcompiled.mem +make lispinit.mem +make manual +make modular + +make install DESTDIR=$PKG || exit 1 + +# Strip stuff: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +#mv $PKG/usr/share/doc/clisp/* $PKG/usr/doc/clisp-$VERSION +rm -r $PKG/usr/share/doc + +mv $PKG/usr/share/man $PKG/usr/man +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/clisp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/clisp/slack-desc b/source/d/clisp/slack-desc new file mode 100644 index 000000000..5fb2f1954 --- /dev/null +++ b/source/d/clisp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +clisp: clisp (a Common Lisp implementation) +clisp: +clisp: Common Lisp is a high-level, general-purpose programming language. +clisp: GNU CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe +clisp: University and Michael Stoll of Munich University, both in Germany. +clisp: It mostly supports the Lisp described in the ANSI Common Lisp standard. +clisp: The user interface comes in German, English, French, Spanish, Dutch +clisp: and Russian. GNU CLISP includes an interpreter, a compiler, a +clisp: debugger, a large subset of CLOS, a foreign language interface and a +clisp: socket interface. An X11 interface is available through CLX and +clisp: Garnet. diff --git a/source/d/clisp/source.download b/source/d/clisp/source.download new file mode 100755 index 000000000..4de176999 --- /dev/null +++ b/source/d/clisp/source.download @@ -0,0 +1,3 @@ +# http://www.haible.de/bruno/packages-ffcall-README.html +# wget -c http://www.haible.de/bruno/gnu/ffcall-1.10.tar.gz +# wget -c ftp://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/ffcall-1.10-2.20080704cvs.fc10.src.rpm diff --git a/source/d/cmake/cmake.SlackBuild b/source/d/cmake/cmake.SlackBuild new file mode 100755 index 000000000..4a05c76e9 --- /dev/null +++ b/source/d/cmake/cmake.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +NAME=cmake + +VERSION=${VERSION:-2.6.2} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -m32 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$NAME + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $NAME-$VERSION +tar xvf $CWD/$NAME-$VERSION.tar.bz2 || exit 1 +cd $NAME-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir cmake-build +cd cmake-build +../bootstrap + +# Build +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ + ../configure \ + --prefix=/usr \ + --docdir=/doc/$NAME-$VERSION \ + $SLKCONFIGFLAGS \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$NAME-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/cmake/slack-desc b/source/d/cmake/slack-desc new file mode 100644 index 000000000..481fdd519 --- /dev/null +++ b/source/d/cmake/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cmake: CMake (cross-platform, open-source make system) +cmake: +cmake: CMake is used to control the software process using simple platform +cmake: and compiler independed configuration files. CMake generates +cmake: native makefiles and workspaces that can be used in the +cmake: compiler environment of your choice. +cmake: +cmake: CMake's home on the web is: http://www.cmake.org +cmake: +cmake: +cmake: diff --git a/source/d/cscope/cscope.SlackBuild b/source/d/cscope/cscope.SlackBuild new file mode 100755 index 000000000..76994691f --- /dev/null +++ b/source/d/cscope/cscope.SlackBuild @@ -0,0 +1,71 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=cscope +VERSION=${VERSION:-$(echo $(basename $(echo $PRGNAM-*.tar.bz2 | cut -f 2 -d -) .tar.bz2) | cut -f 2 -d -)} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cscope + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-$VERSION +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man1/${PKGNAM}.1 + +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/cscope/slack-desc b/source/d/cscope/slack-desc new file mode 100644 index 000000000..b2126b523 --- /dev/null +++ b/source/d/cscope/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cscope: cscope (source code browsing tool) +cscope: +cscope: Cscope is a text screen based source browsing tool. Although it is +cscope: primarily designed to search C code (including lex and yacc files), +cscope: it can also be used for C++ code. +cscope: +cscope: For more information, see http://cscope.sourceforge.net. +cscope: +cscope: +cscope: +cscope: diff --git a/source/d/cvs/cvs.SlackBuild b/source/d/cvs/cvs.SlackBuild new file mode 100755 index 000000000..f7cec7ace --- /dev/null +++ b/source/d/cvs/cvs.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.11.23 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cvs +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf cvs-$VERSION +tar xvf $CWD/cvs-$VERSION.tar.bz2 || exit 1 +cd cvs-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +gzip -9 $PKG/usr/man/man?/*.? + +( cd doc ; make txt ) +mkdir -p $PKG/usr/doc/cvs-$VERSION +cp -a \ + BUGS COPYING* DEVEL-CVS FAQ HACKING INSTALL MINOR-BUGS NEWS PROJECTS \ + README TESTS TODO \ + $PKG/usr/doc/cvs-$VERSION +cat doc/cvs.txt | gzip -9c > $PKG/usr/doc/cvs-$VERSION/cvs.txt.gz +cat doc/cvsclient.txt | gzip -9c > $PKG/usr/doc/cvs-$VERSION/cvsclient.txt.gz +chmod 644 $PKG/usr/doc/cvs-$VERSION/* +gzip -9 $PKG/usr/doc/cvs-$VERSION/FAQ +( cd $PKG/usr/doc/cvs-$VERSION ; rm -rf contrib ) +( cd $PKG/usr/doc/cvs-$VERSION ; ln -sf ../../share/cvs/contrib contrib ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/cvs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/cvs/slack-desc b/source/d/cvs/slack-desc new file mode 100644 index 000000000..9581cb88c --- /dev/null +++ b/source/d/cvs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cvs: cvs (Concurrent Versions System) +cvs: +cvs: CVS is a version control system, which allows you to keep old versions +cvs: of files (usually source code), keep a log of who, when, and why +cvs: changes occurred, etc., like RCS or SCCS. It handles multiple +cvs: developers, multiple directories, triggers to enable/log/control +cvs: various operations, and can work over a wide area network. +cvs: +cvs: Some of the people who have worked on CVS include: Dick Grune, +cvs: Brian Berliner, Jeff Polk, and others too numerous to mention. +cvs: diff --git a/source/d/dev86/README b/source/d/dev86/README new file mode 100644 index 000000000..407e6d07b --- /dev/null +++ b/source/d/dev86/README @@ -0,0 +1,8 @@ +This is a complete 8086 assembler and loader which can make 32-bit +code for the 386+ processors. In the past it was used to compile the +16-bit bootsector and setup binaries for the kernel, but modern +(2.4.x or newer) kernels use GNU ld instead. + +There's a package bin86 already included in Slackware, which is a +subset of the programs of dev86. Therefore the bin86 programs are +not included in this package. \ No newline at end of file diff --git a/source/d/dev86/dev86-x86_64.noelks.patch b/source/d/dev86/dev86-x86_64.noelks.patch new file mode 100644 index 000000000..f30ae35a1 --- /dev/null +++ b/source/d/dev86/dev86-x86_64.noelks.patch @@ -0,0 +1,19 @@ +* Wed Jan 25 2006 Jeremy Katz <katzj@redhat.com> - 0.16.17-2 +- build on x86_64 +- don't build elks (it's not happy on x86_64) + +--- dev86-0.16.17/makefile.in.noelks 2006-01-25 17:03:02.000000000 -0500 ++++ dev86-0.16.17/makefile.in 2006-01-25 17:03:19.000000000 -0500 +@@ -89,10 +89,10 @@ + + #ifdef GNUMAKE + all: check_config bcc86 cpp unproto copt as86 ar86 ld86 objdump86 \ +- library lib-bsd alt-libs elksemu ++ library lib-bsd alt-libs + + install: check_config install-bcc install-man \ +- install-lib install-emu ++ install-lib + + install-all: install install-other + diff --git a/source/d/dev86/dev86-x86_64.patch b/source/d/dev86/dev86-x86_64.patch new file mode 100644 index 000000000..01fa549b9 --- /dev/null +++ b/source/d/dev86/dev86-x86_64.patch @@ -0,0 +1,20 @@ +--- dev86-0.16.17/bcc/bcc.c.fix 2005-01-03 23:41:55.000000000 +0100 ++++ dev86-0.16.17/bcc/bcc.c 2006-12-27 16:32:57.000000000 +0100 +@@ -226,12 +226,12 @@ + + } else { + /* Relative paths to normal PREFIX directory */ +- default_include = build_libpath("-I", "/lib/bcc/include", ""); +- default_libdir = build_libpath("-L", "/lib/bcc", libdir_suffix); +- optim_rules = build_libpath("-d", "/lib/bcc", libdir_suffix); ++ default_include = build_libpath("-I", "/lib64/bcc/include", ""); ++ default_libdir = build_libpath("-L", "/lib64/bcc", libdir_suffix); ++ optim_rules = build_libpath("-d", "/lib64/bcc", libdir_suffix); + +- build_prefix("/lib/bcc", libdir_suffix, ""); +- build_prefix("/lib/bcc", "", ""); ++ build_prefix("/lib64/bcc", libdir_suffix, ""); ++ build_prefix("/lib64/bcc", "", ""); + } + + build_prefix("/bin", "", ""); diff --git a/source/d/dev86/dev86.SlackBuild b/source/d/dev86/dev86.SlackBuild new file mode 100755 index 000000000..e4c06882c --- /dev/null +++ b/source/d/dev86/dev86.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2007-2008 Heinz Wiesinger <hmwiesinger@gmx.at> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +PRGNAM=dev86 +SRCNAM=Dev86src +VERSION=0.16.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvzf $CWD/$SRCNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/dev86-x86_64.patch.gz \ + | patch -p1 --verbose --backup --suffix=.orig -E + # On x86_64 elks will not build: + zcat $CWD/dev86-x86_64.noelks.patch.gz \ + | patch -p1 --verbose --backup --suffix=.orig -E +fi +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +#Does not compile with changed CFLAGS +#CC="gcc" make CFLAGS="-Wall -Wstrict-prototypes $SLKCFLAGS -g" DIST=$PKG +CC="gcc" \ +make DIST=$PKG MANDIR=/usr/man LIBDIR=/usr/lib${LIBDIRSUFFIX}/bcc \ + INCLDIR=/usr/lib${LIBDIRSUFFIX}/bcc LOCALPREFIX=/usr \ + install install-man + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a Changes Contributors COPYING README $PKG/usr/doc/$PRGNAM-$VERSION +for i in bootblocks copt dis88 elksemu unproto ; do + cp -a $i/README $PKG/usr/doc/$PRGNAM-$VERSION/README.$i ; +done +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +find $PKG/usr/doc -type f -exec chmod 0644 {} \; + +if [ "$ARCH" = "x86_64" ]; then # Remove traces of elks + rm -f $PKG/usr/doc/$PRGNAM-$VERSION/README.elksemu + find $PKG/usr/man -name "elks*.*" -exec rm -f {} \; +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/source/d/dev86/dev86.info b/source/d/dev86/dev86.info new file mode 100644 index 000000000..ef223b1de --- /dev/null +++ b/source/d/dev86/dev86.info @@ -0,0 +1,8 @@ +PRGNAM="dev86" +VERSION="0.16.15" +HOMEPAGE="http://homepage.ntlworld.com/robert.debath/" +DOWNLOAD="http://distrib-coffee.ipsl.jussieu.fr/pub/linux/momonga/1/PKGS/SOURCES/Dev86src-0.16.15.tar.gz" +MD5SUM="c3266fa6530b472e1d3e98d826db6409" +MAINTAINER="Heinz Wiesinger" +EMAIL="HMWiesinger@gmx.at" +APPROVED="rworkman" diff --git a/source/d/dev86/slack-desc b/source/d/dev86/slack-desc new file mode 100644 index 000000000..557638a6b --- /dev/null +++ b/source/d/dev86/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +dev86: dev86 (8086 development utilities) +dev86: +dev86: This is a complete 8086 assembler and loader which can make 32-bit +dev86: code for the 386+ processors. In the past it was used to compile the +dev86: 16-bit bootsector and setup binaries for the kernel, but modern +dev86: (2.4.x or newer) kernels use GNU ld instead. +dev86: +dev86: Homepage: http://homepage.ntlworld.com/robert.debath/ +dev86: +dev86: +dev86: diff --git a/source/d/distcc/distcc.SlackBuild b/source/d/distcc/distcc.SlackBuild new file mode 100755 index 000000000..e65233859 --- /dev/null +++ b/source/d/distcc/distcc.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.18.3 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-distcc + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf distcc-$VERSION +tar xvf $CWD/distcc-$VERSION.tar.bz2 || exit 1 +cd distcc-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --datadir=/usr/share \ + --sysconfdir=/etc \ + --with-gtk \ + --without-gnome \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG docdir=/usr/doc/distcc-$VERSION || exit 1 + +# pkgdocdir=/usr/doc/distcc-$VERSION +mkdir -p $PKG/usr/share/applications +( cd $PKG/usr/share/applications + ln -sf /usr/share/distcc/distccmon-gnome.desktop . +) + +gzip -9 $PKG/usr/man/man?/* + +# Restore original timestamps on the doc files: +for file in * ; do + if [ -f $file ]; then + if [ -r $PKG/usr/doc/distcc-$VERSION/$file ]; then + cp -a $file $PKG/usr/doc/distcc-$VERSION/$file + chmod 644 $PKG/usr/doc/distcc-$VERSION/$file + fi + fi +done + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/distcc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/distcc/slack-desc b/source/d/distcc/slack-desc new file mode 100644 index 000000000..121e97226 --- /dev/null +++ b/source/d/distcc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +distcc: distcc (distributed C/C++ compiler/daemon) +distcc: +distcc: distcc allows compilation of C code to be distributed across several +distcc: machines on a network. distcc should always generate the same results +distcc: as a local compile, is simple to install and use, and is often +distcc: significantly faster than a local compile. +distcc: +distcc: IMPORTANT SECURITY NOTE: distccd should only run on trusted networks. +distcc: +distcc: distcc was written by Martin Pool. +distcc: diff --git a/source/d/doxygen/doxygen.SlackBuild b/source/d/doxygen/doxygen.SlackBuild new file mode 100755 index 000000000..ec827f7cd --- /dev/null +++ b/source/d/doxygen/doxygen.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.5.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-doxygen + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf doxygen-$VERSION +tar xvf $CWD/doxygen-${VERSION}.src.tar.?z* || exit 1 +cd doxygen-$VERSION +zcat $CWD/doxygen.qt4.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# We want qt4 to be found, not qt3 if that is available as well: +unset QTDIR + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --shared \ + --release \ + --prefix /usr \ + --docdir /usr/doc/doxygen-$VERSION \ + --with-doxywizard + +make $NUMJOBS || make || exit 1 +make install INSTALL=$PKG/usr DOCDIR=$PKG/usr/doc/doxygen-$VERSION +make install_docs INSTALL=$PKG/usr DOCDIR=$PKG/usr/doc/doxygen-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# If there are misplaced man pages, fix that: +mv $PKG/usr/*.1 $PKG/usr/man/man1 + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/doxygen-$VERSION +cp -a \ + INSTALL LANGUAGE.HOWTO LICENSE PLATFORMS README* VERSION \ + $PKG/usr/doc/doxygen-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/doxygen-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/doxygen/doxygen.qt4.diff b/source/d/doxygen/doxygen.qt4.diff new file mode 100644 index 000000000..d55dced8f --- /dev/null +++ b/source/d/doxygen/doxygen.qt4.diff @@ -0,0 +1,12 @@ +diff -up doxygen-1.5.8/configure.qt4 doxygen-1.5.8/configure +--- doxygen-1.5.8/configure.qt4 2008-12-26 20:22:39.000000000 +0100 ++++ doxygen-1.5.8/configure 2009-02-06 11:00:44.000000000 +0100 +@@ -268,7 +268,7 @@ if test "$f_wizard" = YES; then + if test -z "$QTDIR"; then + echo " QTDIR environment variable not set!" + echo -n " Checking for Qt..." +- for d in /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4}; do ++ for d in /usr/{lib64,lib,share,qt}/{qt-4,qt4,qt,qt*,4}; do + if test -x "$d/bin/qmake"; then + QTDIR=$d + fi diff --git a/source/d/doxygen/slack-desc b/source/d/doxygen/slack-desc new file mode 100644 index 000000000..df95eb7b4 --- /dev/null +++ b/source/d/doxygen/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +doxygen: doxygen (documentation generator) +doxygen: +doxygen: Doxygen is a documentation system for C++, C, Java, IDL, and to some +doxygen: extent PHP and C#. Doxygen generates project documentation using +doxygen: special documentation blocks in the source code, easing the process of +doxygen: keeping docs and code in sync. Doxygen produces documentation in +doxygen: several output formats, including HTML, LaTeX, man pages, RTF, XML, +doxygen: compressed HTML, PostScript, and PDF. +doxygen: +doxygen: +doxygen: diff --git a/source/d/flex/flex.SlackBuild b/source/d/flex/flex.SlackBuild new file mode 100755 index 000000000..8c1d1ec94 --- /dev/null +++ b/source/d/flex/flex.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=flex +VERSION=${VERSION:-2.5.35} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# A symlink to harken back to the Goodle days: +( cd $PKG/usr/bin ; ln -sf flex lex ) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/flex/slack-desc b/source/d/flex/slack-desc new file mode 100644 index 000000000..0fe0399df --- /dev/null +++ b/source/d/flex/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +flex: flex (fast lexical analyzer generator) +flex: +flex: flex is a tool for generating programs that perform pattern matching +flex: on text. flex is a rewrite of the AT&T Unix lex tool (the two +flex: implementations do not share any code, though), with some extensions +flex: (and incompatibilities). +flex: +flex: +flex: +flex: +flex: diff --git a/source/d/gcc/ecj-4.3.jar b/source/d/gcc/ecj-4.3.jar new file mode 100644 index 000000000..db02a5e24 Binary files /dev/null and b/source/d/gcc/ecj-4.3.jar differ diff --git a/source/d/gcc/gcc-no_fixincludes.diff b/source/d/gcc/gcc-no_fixincludes.diff new file mode 100644 index 000000000..917b14f0a --- /dev/null +++ b/source/d/gcc/gcc-no_fixincludes.diff @@ -0,0 +1,27 @@ +--- ./gcc/Makefile.in.orig 2008-12-04 17:00:19.000000000 -0600 ++++ ./gcc/Makefile.in 2009-01-29 01:17:33.000000000 -0600 +@@ -3441,9 +3441,9 @@ + chmod a+r $${fix_dir}/limits.h; \ + done + # Install the README +- rm -f include-fixed/README +- cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README +- chmod a+r include-fixed/README ++# rm -f include-fixed/README ++# cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README ++# chmod a+r include-fixed/README + $(STAMP) $@ + + .PHONY: install-gcc-tooldir +@@ -3523,10 +3523,7 @@ + chmod a+rx $${fix_dir} || true; \ + (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \ + SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \ +- export TARGET_MACHINE srcdir SHELL MACRO_LIST && \ +- cd $(build_objdir)/fixincludes && \ +- $(SHELL) ./fixinc.sh ../../gcc/$${fix_dir} \ +- $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \ ++ export TARGET_MACHINE srcdir SHELL MACRO_LIST ); \ + rm -f $${fix_dir}/syslimits.h; \ + if [ -f $${fix_dir}/limits.h ]; then \ + mv $${fix_dir}/limits.h $${fix_dir}/syslimits.h; \ diff --git a/source/d/gcc/gcc.SlackBuild b/source/d/gcc/gcc.SlackBuild new file mode 100755 index 000000000..cc1745aca --- /dev/null +++ b/source/d/gcc/gcc.SlackBuild @@ -0,0 +1,546 @@ +#!/bin/sh +# GCC package build script (written by volkerdi@slackware.com) +# +# Copyright 2003, 2004 Slackware Linux, Inc., Concord, California, USA +# Copyright 2005, 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# Some notes, Fri May 16 12:31:32 PDT 2003: +# +# Why i486 and not i386? Because the shared C++ libraries in gcc-3.2.x will +# require 486 opcodes even when a 386 target is used (so we already weren't +# compatible with the i386 for Slackware 9.0, didn't notice, and nobody +# complained :-). gcc-3.3 fixes this issue and allows you to build a 386 +# compiler, but the fix is done in a way that produces binaries that are not +# compatible with gcc-3.2.x compiled binaries. To retain compatibility with +# Slackware 9.0, we'll have to use i486 (or better) as the compiler target +# for gcc-3.3. +# +# It's time to say goodbye to i386 support in Slackware. I've surveyed 386 +# usage online, and the most common thing I see people say when someone asks +# about running Linux on a 386 is to "run Slackware", but then they also +# usually go on to say "be sure to get an OLD version, like 4.0, before glibc, +# because it'll be more efficient." Now, if that's the general advice, then +# I see no reason to continue 386 support in the latest Slackware (and indeed +# it's no longer easily possible). + +VERSION=4.3.3 +ARCH=${ARCH:-x86_64} +TARGET=$ARCH-slackware-linux +BUILD=${BUILD:-4} + +# How many jobs to run in parallel: +NUMJOB=" -j 4 " + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +# Temporary build location. This should *NOT* be a directory +# path a non-root user could create later... +TMP=/gcc-$(mcookie) + +# This is the main DESTDIR target: +PKG1=$TMP/package-gcc +# These are the directories to build other packages in: +PKG2=$TMP/package-gcc-g++ +PKG3=$TMP/package-gcc-gfortran +PKG4=$TMP/package-gcc-gnat +PKG5=$TMP/package-gcc-java +PKG6=$TMP/package-gcc-objc +PKG7=$TMP/package-gcc-g++-gch + +# Clear the build locations: +if [ -d $TMP ]; then + rm -rf $TMP +fi +mkdir -p $PKG{1,2,3,4,5,6,7}/usr/doc/gcc-$VERSION + +# Insert package descriptions: +mkdir -p $PKG{1,2,3,4,5,6,7}/install +cat $CWD/slack-desc.gcc > $PKG1/install/slack-desc +cat $CWD/slack-desc.gcc-g++ > $PKG2/install/slack-desc +cat $CWD/slack-desc.gcc-gfortran > $PKG3/install/slack-desc +cat $CWD/slack-desc.gcc-gnat > $PKG4/install/slack-desc +cat $CWD/slack-desc.gcc-java > $PKG5/install/slack-desc +cat $CWD/slack-desc.gcc-objc > $PKG6/install/slack-desc +# cat $CWD/slack-desc.gcc-g++-gch > $PKG7/install/slack-desc + +cd $TMP +tar xvf $CWD/gcc-$VERSION.tar.?z* + +# Copy ecj.jar into the TLD of the source. Needed for java compiler. +# This can be retrieved from ftp://sourceware.org/pub/java +cp $CWD/ecj-4.3.jar gcc-$VERSION/ecj.jar + +# install docs +( cd gcc-$VERSION + # Smite the fixincludes: + zcat $CWD/gcc-no_fixincludes.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + # Fix perms/owners + chown -R root:root . + find . -perm 777 -exec chmod 755 {} \; + find . -perm 775 -exec chmod 755 {} \; + find . -perm 754 -exec chmod 755 {} \; + find . -perm 664 -exec chmod 644 {} \; + mkdir -p $PKG1/usr/doc/gcc-$VERSION + # Only the most recent ChangeLog... shouldn't be too big. :) + cp -a \ + BUGS COPYING* ChangeLog \ + ChangeLog.tree-ssa FAQ INSTALL \ + LAST_UPDATED MAINTAINERS NEWS \ + README* *.html \ + $PKG1/usr/doc/gcc-$VERSION + + mkdir -p $PKG1/usr/doc/gcc-${VERSION}/gcc + ( cd gcc + cp -a \ + ABOUT* COPYING* LANG* ONEWS README* SERVICE \ + $PKG1/usr/doc/gcc-$VERSION/gcc + + mkdir -p $PKG3/usr/doc/gcc-${VERSION}/gcc/fortran + ( cd fortran + cp -a \ + ChangeLog \ + $PKG3/usr/doc/gcc-$VERSION/gcc/fortran/ChangeLog + ) + + mkdir -p $PKG4/usr/doc/gcc-${VERSION}/gcc/ada + ( cd ada + cp -a \ + ChangeLog ChangeLog.tree-ssa \ + $PKG4/usr/doc/gcc-$VERSION/gcc/ada + ) + + mkdir -p $PKG5/usr/doc/gcc-${VERSION}/gcc/java + ( cd java + cp -a \ + ChangeLog ChangeLog.tree-ssa \ + $PKG5/usr/doc/gcc-${VERSION}/gcc/java + ) + + mkdir -p $PKG6/usr/doc/gcc-${VERSION}/gcc/objc + ( cd objc + cp -a \ + ChangeLog README \ + $PKG6/usr/doc/gcc-${VERSION}/gcc/objc + ) + ) || exit 1 + + mkdir -p $PKG3/usr/doc/gcc-${VERSION}/libgfortran + ( cd libgfortran + cp -a \ + ChangeLog \ + $PKG3/usr/doc/gcc-${VERSION}/libgfortran/ChangeLog + ) + + mkdir -p $PKG3/usr/doc/gcc-${VERSION}/libada + ( cd libada + cp -a \ + ChangeLog \ + $PKG3/usr/doc/gcc-${VERSION}/libada + ) + + mkdir -p $PKG5/usr/doc/gcc-${VERSION}/libffi + ( cd libffi + cp -a \ + ChangeLog ChangeLog.libgcj ChangeLog.v1 \ + LICENSE README \ + $PKG5/usr/doc/gcc-${VERSION}/libffi + ) + + mkdir -p $PKG5/usr/doc/gcc-${VERSION}/libjava + ( cd libjava + cp -a \ + COPYING* ChangeLog HACKING LIBGCJ_LICENSE \ + NEWS README THANKS \ + $PKG5/usr/doc/gcc-${VERSION}/libjava + ) + + mkdir -p $PKG1/usr/doc/gcc-${VERSION}/libmudflap + ( cd libmudflap + cp -a \ + ChangeLog \ + $PKG1/usr/doc/gcc-${VERSION}/libmudflap + ) + + mkdir -p $PKG1/usr/doc/gcc-${VERSION}/libgomp + ( cd libgomp + cp -a \ + ChangeLog \ + $PKG1/usr/doc/gcc-${VERSION}/libgomp + ) + + mkdir -p $PKG6/usr/doc/gcc-${VERSION}/libobjc + ( cd libobjc + cp -a \ + ChangeLog README README.threads THREADS THREADS.MACH \ + $PKG6/usr/doc/gcc-${VERSION}/libobjc + ) + + mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 + ( cd libstdc++-v3 + cp -a \ + ChangeLog README \ + $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 + + cp -a \ + docs/html/faq \ + $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 + ) +) +# build gcc +( mkdir gcc.build.lnx; + cd gcc.build.lnx; + + # If enough people need "treelang" support for it may be considered. + # --enable-languages=ada,c,c++,fortran,java,objc,treelang + # I think it's incorrect to include this option (as it'll end up set + # to i486 on x86 platforms), and we want to tune the binary structure + # for i686, as that's where almost all of the optimization speedups + # are to be found. + # Correct me if my take on this is wrong. + # --with-cpu=$ARCH + + if [ "$ARCH" != "x86_64" ]; then + GCC_ARCHOPTS="--with-arch=$ARCH" + else + GCC_ARCHOPTS="--disable-multilib" + fi + + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ../gcc-$VERSION/configure --prefix=/usr \ + --libdir=/usr/lib$LIBDIRSUFFIX \ + --enable-shared \ + --enable-bootstrap \ + --enable-languages=ada,c,c++,fortran,java,objc \ + --enable-threads=posix \ + --enable-checking=release \ + --with-system-zlib \ + --disable-libunwind-exceptions \ + --enable-__cxa_atexit \ + --enable-libssp \ + --with-gnu-ld \ + --verbose \ + $GCC_ARCHOPTS \ + --target=${TARGET} \ + --build=${TARGET} \ + --host=${TARGET} || exit 1 + + # Start the build: + + # Include all debugging info (for now): + make $NUMJOB bootstrap; + + ( cd gcc + make $NUMJOB gnatlib GNATLIBCFLAGS="$SLKCFLAGS" + # This wants a shared -ladd2line? + #make gnatlib-shared + + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + make $NUMJOB gnattools + ) + make info + + # Set GCCCHECK=something to run the tests + if [ ! -z $GCCCHECK ]; then + make $NUMJOB check + fi + + make install DESTDIR=$PKG1 + +# Be sure the "specs" file is installed. +if [ ! -r $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs ]; then + cat stage1-gcc/specs > $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs +fi + +# Make our 64bit gcc look for 32bit gcc binaries in ./32 subdirectory: +if [ "$ARCH" = "x86_64" ]; then + sed -i 's#;.\(:../lib !m64 m32;\)$#;32\1#' \ + $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs +fi + +# make ada.install-common DESTDIR=$PKG1 +# make install-gnatlib DESTDIR=$PKG1 + make -i install-info DESTDIR=$PKG1 + + chmod 755 $PKG1/usr/lib${LIBDIRSUFFIX}/libgcc_s.so.1 + + # This is provided by binutils, so delete it here: + rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libiberty.a + rm -f $PKG1/usr/lib/libiberty.a # catch-all + + # Fix stuff up: + ( cd $PKG1/usr/info ; rm dir ; gzip -9 * ) + ( cd $PKG1 + # *not* ${LIBDIRSUFFIX} + mkdir -p lib + cd lib + ln -sf /usr/bin/cpp . + ) + ( cd $PKG1/usr/bin + mv g++ g++-gcc-$VERSION + mv gcc gcc-$VERSION + mv ${TARGET}-gfortran gfortran-gcc-$VERSION + ln -sf g++-gcc-$VERSION g++ + ln -sf gcc-$VERSION gcc + ln -sf g++ c++ + ln -sf gcc cc + ln -sf gcc-$VERSION ${TARGET}-gcc + ln -sf gcc-$VERSION ${TARGET}-gcc-$VERSION + ln -sf gcj ${TARGET}-gcj + ln -sf gcjh ${TARGET}-gcjh + ln -sf g++-gcc-$VERSION ${TARGET}-c++ + ln -sf g++-gcc-$VERSION ${TARGET}-g++ + ln -sf gfortran-gcc-$VERSION gfortran + ln -sf gfortran-gcc-$VERSION ${TARGET}-gfortran + ln -sf gfortran-gcc-$VERSION ${TARGET}-gfortran-$VERSION + ln -sf gfortran-gcc-$VERSION ${TARGET}-g95 + ln -sf gfortran g95 + ln -sf gfortran f95 + ln -sf gfortran-gcc-$VERSION ${TARGET}-g77 + ln -sf gfortran g77 + ln -sf gfortran f77 + ) + ( cd $PKG1/usr/man + gzip -9 */* + cd man1 + ln -sf g++.1.gz c++.1.gz + ln -sf gcc.1.gz cc.1.gz + ) + + ## build the txz package + #( + # cd $PKG1; + # makepkg -l y -c n $TMP/gcc-$VERSION-$ARCH-$BUILD.txz + #) +# keep a log +) 2>&1 | tee $TMP/gcc.build.log + +# OK, time to split the big package where needed: + +# gcc-g++: +( cd $PKG2 + mkdir -p usr/bin + mv $PKG1/usr/bin/*++* usr/bin + mkdir -p usr/include + mv $PKG1/usr/include/c++ usr/include + mkdir -p usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/*++* usr/lib${LIBDIRSUFFIX} + mkdir -p usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1plus usr/libexec/gcc/$TARGET/$VERSION/cc1plus + mkdir -p usr/man/man1 + mv $PKG1/usr/man/man1/*++* usr/man/man1 +) + +# gcc-gfortran: +( cd $PKG3 + mkdir -p usr/bin + mv $PKG1/usr/bin/*gfortran* usr/bin + mv $PKG1/usr/bin/*95* usr/bin + mv $PKG1/usr/bin/*77* usr/bin + # Doesn't this seem like a logical idea? + ( cd usr/bin ; ln -sf gfortran-gcc-${VERSION} fortran ) + mkdir -p usr/info + mv $PKG1/usr/info/gfortran* usr/info + mkdir -p usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgfortran* usr/lib${LIBDIRSUFFIX} + mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/finclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/libgfortran* usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + mkdir -p usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/f951 usr/libexec/gcc/$TARGET/$VERSION/f951 + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/libgfortran* usr/libexec/gcc/$TARGET/$VERSION + mkdir -p usr/man/man1 + mv $PKG1/usr/man/man1/gfortran* usr/man/man1 +) + +# gcc-gnat: +( cd $PKG4 + mkdir -p usr/bin + mv $PKG1/usr/bin/gnat* usr/bin + mv $PKG1/usr/bin/gpr* usr/bin + mkdir -p usr/info + mv $PKG1/usr/info/gnat* usr/info + mkdir -p usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/gnat1 usr/libexec/gcc/$TARGET/$VERSION + mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/adainclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/adalib usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION +) + +# gcc-java: +( cd $PKG5 + mkdir -p usr/bin + mv $PKG1/usr/bin/addr2name.awk usr/bin + # mv $PKG1/usr/bin/fastjar usr/bin + mv $PKG1/usr/bin/gappletviewer usr/bin + mv $PKG1/usr/bin/gc-analyze usr/bin + mv $PKG1/usr/bin/*gcj* usr/bin + mv $PKG1/usr/bin/gij usr/bin + mv $PKG1/usr/bin/gjar usr/bin + mv $PKG1/usr/bin/gjarsigner usr/bin + mv $PKG1/usr/bin/gkeytool usr/bin + mv $PKG1/usr/bin/grepjar usr/bin + mv $PKG1/usr/bin/grmid usr/bin + mv $PKG1/usr/bin/grmic usr/bin + mv $PKG1/usr/bin/grmiregistry usr/bin + mv $PKG1/usr/bin/gserialver usr/bin + mv $PKG1/usr/bin/gtnameserv usr/bin + mv $PKG1/usr/bin/gjavah usr/bin + mv $PKG1/usr/bin/gorbd usr/bin + mv $PKG1/usr/bin/jar usr/bin + mv $PKG1/usr/bin/jcf-dump usr/bin + mv $PKG1/usr/bin/jv-* usr/bin + mv $PKG1/usr/bin/rmi* usr/bin + mkdir -p usr/include + mv $PKG1/usr/include/ffi.h usr/include + mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jawt.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/ffi.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/ffitarget.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jawt_md.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jni.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jni_md.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jvmpi.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/libffi usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mkdir -p usr/info + mv $PKG1/usr/info/gcj.* usr/info + # mv $PKG1/usr/info/fastjar.* usr/info + mkdir -p usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/libffi* usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/logging.properties usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcj* usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgcj* usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgij* usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/lib-org* usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/security usr/lib${LIBDIRSUFFIX} + mkdir -p usr/lib${LIBDIRSUFFIX}/pkgconfig + mv $PKG1/usr/lib${LIBDIRSUFFIX}/pkgconfig/libgcj*.pc usr/lib${LIBDIRSUFFIX}/pkgconfig + rmdir $PKG1/usr/lib${LIBDIRSUFFIX}/pkgconfig 2> /dev/null + mkdir -p usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/jc1 usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/ecj1 usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/jvgenmain usr/libexec/gcc/$TARGET/$VERSION + mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/gcj usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mkdir -p usr/man/man1 + mv $PKG1/usr/man/man1/gappletviewer.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gc-analyze.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gcj.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gcjh.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gcj-dbtool.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gij.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gjar.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gjarsigner.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gjavah.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gjnih.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gkeytool.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gnative2ascii.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gorbd.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/grmic.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/grmid.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/grmiregistry.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gserialver.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gtnameserv.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/jcf-dump.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/jv-convert.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/jv-scan.1.gz usr/man/man1 + mkdir -p usr/share + mv $PKG1/usr/share/java usr/share +) + +# gcc-objc: +( cd $PKG6 + mkdir -p usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/libobjc* usr/lib${LIBDIRSUFFIX} + mkdir -p usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1obj usr/libexec/gcc/$TARGET/$VERSION + mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/objc usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include +) + +## NOTE: Thought about this, because the precompiled headers are so large. +## Probably easier to keep everything together, though. +## gcc-g++-gch (precompiled c++ headers) +#( cd $PKG7 +# mkdir -p usr/include/c++/$VERSION/$TARGET/bits +# mv $PKG2/usr/include/c++/$VERSION/$TARGET/bits/stdc++.h.gch usr/include/c++/$VERSION/$TARGET/bits +#) + +# Filter all .la files (thanks much to Mark Post for the sed script): +( cd $TMP + for file in $(find . -type f -name "*.la") ; do + cat $file | sed -e 's%-L/gcc-[[:graph:]]* % %g' > $TMP/tmp-la-file + cat $TMP/tmp-la-file > $file + done + rm $TMP/tmp-la-file +) + +## Strip bloated binaries and libraries: +for dir in $PKG{1,2,3,4,5,6}; do + ( cd $dir + find . -name "lib*so*" -exec strip --strip-unneeded "{}" \; + find . -name "lib*a" -exec strip -g "{}" \; + strip --strip-unneeded usr/bin/* 2> /dev/null + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + ) +done + +( cd $PKG1 + makepkg -l y -c n $TMP/gcc-$VERSION-$ARCH-$BUILD.txz ) +( cd $PKG2 + makepkg -l y -c n $TMP/gcc-g++-$VERSION-$ARCH-$BUILD.txz ) +( cd $PKG3 + makepkg -l y -c n $TMP/gcc-gfortran-$VERSION-$ARCH-$BUILD.txz ) +( cd $PKG4 + makepkg -l y -c n $TMP/gcc-gnat-$VERSION-$ARCH-$BUILD.txz ) +( cd $PKG5 + makepkg -l y -c n $TMP/gcc-java-$VERSION-$ARCH-$BUILD.txz ) +( cd $PKG6 + makepkg -l y -c n $TMP/gcc-objc-$VERSION-$ARCH-$BUILD.txz ) +#( cd $PKG7 +# makepkg -l y -c n $TMP/gcc-g++-gch-$VERSION-$ARCH-$BUILD.txz ) + +echo +echo "Slackware GCC package build complete!" +echo + diff --git a/source/d/gcc/slack-desc.gcc b/source/d/gcc/slack-desc.gcc new file mode 100644 index 000000000..04fccd4d9 --- /dev/null +++ b/source/d/gcc/slack-desc.gcc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gcc: gcc (Base GCC package with C support) +gcc: +gcc: GCC is the GNU Compiler Collection. +gcc: +gcc: This package contains those parts of the compiler collection needed to +gcc: compile C code. Other packages add C++, Fortran, Objective-C, and +gcc: Java support to the compiler core. +gcc: +gcc: +gcc: +gcc: diff --git a/source/d/gcc/slack-desc.gcc-g++ b/source/d/gcc/slack-desc.gcc-g++ new file mode 100644 index 000000000..3cbabac16 --- /dev/null +++ b/source/d/gcc/slack-desc.gcc-g++ @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gcc-g++: gcc-g++ (C++ for GCC) +gcc-g++: +gcc-g++: C++ support for the GNU Compiler Collection. +gcc-g++: +gcc-g++: This package contains those parts of the compiler collection needed to +gcc-g++: compile C++ code. The base gcc package is also required. +gcc-g++: +gcc-g++: +gcc-g++: +gcc-g++: +gcc-g++: diff --git a/source/d/gcc/slack-desc.gcc-gfortran b/source/d/gcc/slack-desc.gcc-gfortran new file mode 100644 index 000000000..ac844f0f1 --- /dev/null +++ b/source/d/gcc/slack-desc.gcc-gfortran @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gcc-gfortran: gcc-gfortran (Fortran support for GCC) +gcc-gfortran: +gcc-gfortran: This package contains those parts of the compiler collection +gcc-gfortran: needed to compile Fortran code. The base gcc package is also +gcc-gfortran: required. The GNU Fortran compiler is able to compile nearly all +gcc-gfortran: standard-compliant Fortran 95, Fortran 90, and Fortran 77 programs, +gcc-gfortran: including a number of standard and non-standard extensions, and can +gcc-gfortran: be used on real-world programs. In particular, the supported +gcc-gfortran: extensions include OpenMP, Cray-style pointers, and several Fortran +gcc-gfortran: 2003 features such as enumeration, stream I/O, and some of the +gcc-gfortran: enhancements to allocatable array support from TR 15581. diff --git a/source/d/gcc/slack-desc.gcc-gnat b/source/d/gcc/slack-desc.gcc-gnat new file mode 100644 index 000000000..ca2da5717 --- /dev/null +++ b/source/d/gcc/slack-desc.gcc-gnat @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gcc-gnat: gcc-gnat (Ada support for GCC) +gcc-gnat: +gcc-gnat: Ada 95 support for the GNU Compiler Collection. +gcc-gnat: +gcc-gnat: This package contains those parts of the compiler collection needed to +gcc-gnat: compile Ada 95 code. Ada95 is the object oriented successor to the +gcc-gnat: Ada83 language. The base gcc package is also required. +gcc-gnat: +gcc-gnat: +gcc-gnat: +gcc-gnat: diff --git a/source/d/gcc/slack-desc.gcc-java b/source/d/gcc/slack-desc.gcc-java new file mode 100644 index 000000000..b65ca5554 --- /dev/null +++ b/source/d/gcc/slack-desc.gcc-java @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gcc-java: gcc-java (Java support for GCC) +gcc-java: +gcc-java: Java support for the GNU Compiler Collection. +gcc-java: +gcc-java: This package contains those parts of the compiler collection needed to +gcc-java: compile programs written in the Java programming language. The base +gcc-java: gcc package is also required. +gcc-java: +gcc-java: +gcc-java: +gcc-java: diff --git a/source/d/gcc/slack-desc.gcc-objc b/source/d/gcc/slack-desc.gcc-objc new file mode 100644 index 000000000..c01b79e37 --- /dev/null +++ b/source/d/gcc/slack-desc.gcc-objc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gcc-objc: gcc-objc (Objective-C support for GCC) +gcc-objc: +gcc-objc: Objective-C support for the GNU Compiler Collection. +gcc-objc: +gcc-objc: This package contains those parts of the compiler collection needed to +gcc-objc: compile code written in Objective-C. Objective-C was originally +gcc-objc: developed to add object-oriented extensions to the C language, and is +gcc-objc: best known as the native language of the NeXT computer. +gcc-objc: +gcc-objc: The base gcc package is also required. +gcc-objc: diff --git a/source/d/gdb/gdb.SlackBuild b/source/d/gdb/gdb.SlackBuild new file mode 100755 index 000000000..ea55ec9dd --- /dev/null +++ b/source/d/gdb/gdb.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-6.8} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gdb + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gdb-$VERSION +tar xvf $CWD/gdb-$VERSION.tar.bz2 || exit 1 +cd gdb-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +( cd readline ; make ) + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# None of this stuff has ever been included in this package: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/{libbfd*,libiberty*,libopcodes*} +rmdir $PKG/usr/lib${LIBDIRSUFFIX} 2> /dev/null +rm -f $PKG/usr/info/{annotate*,bfd*,configure*,standards*} +rm -rf $PKG/usr/include + +# Use the -tui option if you want this. +# Including a whole extra copy of the gdb binary is obnoxious: +rm -f $PKG/usr/bin/gdbtui $PKG/usr/man/man1/gdbtui.1* + +mkdir -p $PKG/usr/doc/gdb-$VERSION/gdb +cp -a COPYING* README $PKG/usr/doc/gdb-$VERSION +cd gdb +cp -a NEWS README TODO $PKG/usr/doc/gdb-$VERSION/gdb +cp -a gdbserver/README $PKG/usr/doc/gdb-$VERSION/README.gdbserver +find $PKG/usr/doc/gdb-$VERSION -type f -exec chmod 644 {} \; + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/gdb-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/gdb/slack-desc b/source/d/gdb/slack-desc new file mode 100644 index 000000000..bd6b78a64 --- /dev/null +++ b/source/d/gdb/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gdb: gdb (the GNU symbolic debugger) +gdb: GDB, the GNU Project debugger, allows you to see what is going on +gdb: inside another program while it executes -- or what another program +gdb: was doing at the moment it crashed. GDB can do four main kinds of +gdb: things to help you catch bugs in the act: 1) Start your program, +gdb: specifying anything that might affect its behavior. 2) Make your +gdb: program stop on specified conditions. 3) Examine what has happened, +gdb: when your program has stopped. 4) Change things in your program, so +gdb: you can experiment with correcting the effects of one bug and go on +gdb: to learn about another. The program being debugged can be written in +gdb: Ada, C, C++, Objective-C, Pascal and many other languages. diff --git a/source/d/git/git-1.6.4.tar.sign b/source/d/git/git-1.6.4.tar.sign new file mode 100644 index 000000000..2230cf7d7 --- /dev/null +++ b/source/d/git/git-1.6.4.tar.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBKcAouyGugalF9Dw4RAqFKAJ9oLB8/l1VkfFlEjcAFo4Y5SUcq8gCeIbNI +tWNG/MK+CTVBaz3cdiWCeJ8= +=E/iU +-----END PGP SIGNATURE----- diff --git a/source/d/git/git.SlackBuild b/source/d/git/git.SlackBuild new file mode 100755 index 000000000..bf00fcaed --- /dev/null +++ b/source/d/git/git.SlackBuild @@ -0,0 +1,150 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.6.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} +eval $(perl '-V:installvendorlib') +PERLDIR=$installvendorlib/$ARCH-linux-thread-multi/auto + +if ls /var/log/packages/git-* 1> /dev/null 2> /dev/null ; then + echo "Git is installed. The package should be removed before" + echo "building, or the new package might be missing some" + echo "perl modules." + echo + echo "You'll be given a short time to consider this." + sleep 3600 +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-git + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf git-$VERSION +tar xvf $CWD/git-$VERSION.tar.?z* || exit 1 +cd git-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/doc/git-$VERSION +cp -a \ + COPYING* INSTALL README \ + Documentation \ + contrib \ + $PKG/usr/doc/git-$VERSION +( cd $PKG/usr/doc/git-$VERSION/Documentation ; rm *.1 *.3 *.7 ) + +make $NUMJOBS \ + prefix=/usr \ + mandir=/usr/man \ + CFLAGS="$SLKCFLAGS" \ + INSTALLDIRS=vendor \ + all doc || exit 1 + +make \ + prefix=/usr \ + mandir=/usr/man \ + "CFLAGS=$SLKCFLAGS" \ + INSTALLDIRS=vendor \ + install \ + install-doc \ + DESTDIR=$PKG || exit 1 + +mv $PKG/usr/share/man/man3 $PKG/usr/man +rmdir $PKG/usr/share/man + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Since Stuart Winter hates hard links. ;-) +# +# Switch a hard link with a soft link: +( cd $PKG/usr/bin + find . -links +1 -not -name git | while read gitfile ; do + if [ git -ef $gitfile ]; then + rm -vf $gitfile + ln -vfs git $gitfile + fi + done +) + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +# This is junk: +eval $(perl '-V:privlib') +( cd $PKG$(dirname $privlib) && rm -rf 5.* ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/git-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/git/slack-desc b/source/d/git/slack-desc new file mode 100644 index 000000000..271b863a2 --- /dev/null +++ b/source/d/git/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +git: git (the stupid content tracker) +git: +git: Git is a fast, scalable, distributed revision control system with an +git: unusually rich command set that provides both high-level operations +git: and full access to internals. +git: +git: "git" can mean anything, depending on your mood. +git: +git: Git was originally written by Linus Torvalds and is currently +git: maintained by Junio C. Hamano. +git: diff --git a/source/d/gperf/gperf.SlackBuild b/source/d/gperf/gperf.SlackBuild new file mode 100755 index 000000000..f17843174 --- /dev/null +++ b/source/d/gperf/gperf.SlackBuild @@ -0,0 +1,108 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=gperf +VERSION=${VERSION:-3.0.3} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/gperf-$VERSION \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +cp -a \ + AUTHORS COPYING INSTALL NEWS README* \ + $PKG/usr/doc/gperf-$VERSION || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/gperf/slack-desc b/source/d/gperf/slack-desc new file mode 100644 index 000000000..9451a6f87 --- /dev/null +++ b/source/d/gperf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gperf: gperf (a perfect hash function generator) +gperf: +gperf: gperf is a perfect hash function generator written in C++. +gperf: It transforms an n element user-specified keyword set W into a +gperf: perfect hash function F. gperf currently generates the reserved +gperf: keyword recognizer for lexical analyzers in several production and +gperf: research compilers and language processing tools, including GNU C, +gperf: GNU C++, GNU Java, GNU Pascal, GNU Modula 3, and GNU indent. +gperf: +gperf: gperf was written by by Douglas C. Schmidt and Bruno Haible. +gperf: diff --git a/source/d/guile/guile.SlackBuild b/source/d/guile/guile.SlackBuild new file mode 100755 index 000000000..79ad575d2 --- /dev/null +++ b/source/d/guile/guile.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.8.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-guile +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +tar xvf $CWD/guile-$VERSION.tar.?z* || exit 1 +cd guile-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --with-threads \ + $ARCH-slackware-linux + +# Does not like parallel make... +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/guile-$VERSION +cp -a \ + AUTHORS COPYING* FAQ GUILE-VERSION \ + HACKING INSTALL LICENSE NEWS README THANKS \ + $PKG/usr/doc/guile-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/guile-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/guile/slack-desc b/source/d/guile/slack-desc new file mode 100644 index 000000000..9b3252807 --- /dev/null +++ b/source/d/guile/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +guile: guile (GNU's extension language library) +guile: +guile: This is Guile, Project GNU's extension language library. Guile is an +guile: interpreter for Scheme, packaged as a library that you can link into +guile: your applications to give them their own scripting language. Guile +guile: will eventually support other languages as well, giving users of +guile: Guile-based applications a choice of languages. +guile: +guile: +guile: +guile: diff --git a/source/d/indent/indent.SlackBuild b/source/d/indent/indent.SlackBuild new file mode 100755 index 000000000..6223b3eb4 --- /dev/null +++ b/source/d/indent/indent.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.2.10} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-indent +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf indent-$VERSION +tar xvf $CWD/indent-$VERSION.tar.bz2 || exit 1 +cd indent-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# GCC4 fix +#sed -i -e 's#extern FILE \*output#static FILE *output#' src/indent.h || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# I'm not sure why this man page fails, but... +if find $PKG -type f -size 0c -name indent.1 ; then + ( cd man + ./texinfo2man ./indent.1.in ./../doc/indent.texinfo > indent.1 + cat indent.1 > $PKG/usr/man/man1/indent.1 + ) +fi + +# Strip binaries and libraries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress man pages: +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do + ln -s $( readlink $i ).gz $i.gz ; rm $i + done +) + +# Compress info pages and remove the package's dir file: +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/*.info* + +# Copy program documentation into the package: +mkdir -p $PKG/usr/doc/indent-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README \ + $PKG/usr/doc/indent-$VERSION +chmod 644 $PKG/usr/doc/indent-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/indent-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/indent/slack-desc b/source/d/indent/slack-desc new file mode 100644 index 000000000..fd1d0712b --- /dev/null +++ b/source/d/indent/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +indent: indent (changes the appearance of a C program) +indent: +indent: GNU indent changes the appearance of a C program by inserting or +indent: deleting whitespace according to a plethora of options. Some canned +indent: styles of formatting (like the GNU style, Kernighan & Ritchie style, +indent: and original Berkeley style) are supported as well. +indent: +indent: GNU indent is a descendant of BSD indent. +indent: +indent: +indent: diff --git a/source/d/intltool/intltool.SlackBuild b/source/d/intltool/intltool.SlackBuild new file mode 100755 index 000000000..5afd3e154 --- /dev/null +++ b/source/d/intltool/intltool.SlackBuild @@ -0,0 +1,107 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=intltool +VERSION=0.40.5 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/${PKGNAM}-$VERSION \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + rm -f $PKG/usr/info/dir + gzip -9 $PKG/usr/info/* +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README* TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/intltool/slack-desc b/source/d/intltool/slack-desc new file mode 100644 index 000000000..6741f290e --- /dev/null +++ b/source/d/intltool/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +intltool: intltool (Utilities for translation support) +intltool: +intltool: This package contains scripts and autoconf files for +intltool: internationalizing data. +intltool: +intltool: +intltool: +intltool: +intltool: +intltool: +intltool: diff --git a/source/d/kernel-headers/slack-desc b/source/d/kernel-headers/slack-desc new file mode 100644 index 000000000..1593f4df2 --- /dev/null +++ b/source/d/kernel-headers/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kernel-headers: kernel-headers (Linux kernel include files) +kernel-headers: +kernel-headers: These are the include files from the Linux kernel. +kernel-headers: +kernel-headers: You'll need these to compile most system software for Linux. +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: diff --git a/source/d/libtool/doinst.sh b/source/d/libtool/doinst.sh new file mode 100644 index 000000000..38b074dd6 --- /dev/null +++ b/source/d/libtool/doinst.sh @@ -0,0 +1,18 @@ +# Update the /usr/info/dir info-database, so that we will see the new +# "libtool" item in info root structure, if we type "info". +if [ -x /usr/bin/install-info ] ; then + install-info --info-dir=/usr/info /usr/info/libtool.info.gz 2>/dev/null +elif fgrep "libtoolize" usr/info/dir 1> /dev/null 2> /dev/null ; then + GOOD=yes # It seems to be entered in the /usr/info/dir already +else # add the info to the dir file directly: +cat << EOF >> usr/info/dir + +GNU programming tools +* libtoolize: (libtool)Invoking libtoolize. Adding libtool support. +* Libtool: (libtool). Generic shared library support script. + +Individual utilities +* libtoolize: (libtool)Invoking libtoolize. Adding libtool support. +* Libtool: (libtool). Generic shared library support script. +EOF +fi diff --git a/source/d/libtool/libtool.SlackBuild b/source/d/libtool/libtool.SlackBuild new file mode 100755 index 000000000..fb833a720 --- /dev/null +++ b/source/d/libtool/libtool.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.5.26 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libtool + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf libtool-$VERSION +tar xvf $CWD/libtool-$VERSION.tar.?z* || exit 1 +cd libtool-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/libtool.no.moved.warning.diff.gz | patch -p1 --verbose || exit 1 + + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --docdir=/usr/doc/libtool-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/libtool-$VERSION +cp -a \ + AUTHORS COPYING NEWS README THANKS TODO \ + $PKG/usr/doc/libtool-$VERSION + +mkdir $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libtool-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/libtool/libtool.no.moved.warning.diff b/source/d/libtool/libtool.no.moved.warning.diff new file mode 100644 index 000000000..e5197b5c6 --- /dev/null +++ b/source/d/libtool/libtool.no.moved.warning.diff @@ -0,0 +1,32 @@ +diff -Nur libtool-1.5.26.orig/libltdl/ltmain.sh libtool-1.5.26/libltdl/ltmain.sh +--- libtool-1.5.26.orig/libltdl/ltmain.sh 2008-02-01 10:39:51.000000000 -0600 ++++ libtool-1.5.26/libltdl/ltmain.sh 2008-10-01 13:59:24.654020673 -0500 +@@ -2952,9 +2952,9 @@ + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi +- if test "$absdir" != "$libdir"; then +- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 +- fi ++ #if test "$absdir" != "$libdir"; then ++ # $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 ++ #fi + path="$absdir" + fi + depdepl= +diff -Nur libtool-1.5.26.orig/ltmain.sh libtool-1.5.26/ltmain.sh +--- libtool-1.5.26.orig/ltmain.sh 2008-02-01 10:39:51.000000000 -0600 ++++ libtool-1.5.26/ltmain.sh 2008-10-01 13:59:24.690024584 -0500 +@@ -2952,9 +2952,9 @@ + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi +- if test "$absdir" != "$libdir"; then +- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 +- fi ++ #if test "$absdir" != "$libdir"; then ++ # $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 ++ #fi + path="$absdir" + fi + depdepl= diff --git a/source/d/libtool/slack-desc b/source/d/libtool/slack-desc new file mode 100644 index 000000000..7bf0e8d32 --- /dev/null +++ b/source/d/libtool/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libtool: libtool (a generic library support script) +libtool: +libtool: This is GNU Libtool, a generic library support script. Libtool hides +libtool: the complexity of using shared libraries behind a consistent, portable +libtool: interface. To use libtool, add the new generic library building +libtool: commands to your Makefile, Makefile.in, or Makefile.am. See the +libtool: documentation for details. +libtool: +libtool: You must install the "m4" package to be able to use libtool. +libtool: +libtool: diff --git a/source/d/m4/m4.SlackBuild b/source/d/m4/m4.SlackBuild new file mode 100755 index 000000000..06c73757e --- /dev/null +++ b/source/d/m4/m4.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.4.13 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-m4 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf m4-$VERSION +tar xvf $CWD/m4-$VERSION.tar.?z* || exit 1 +cd m4-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/m4-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + rm -f $PKG/usr/info/dir + gzip -9 $PKG/usr/info/* +fi + +# ye olde cruft +# +# ansi2knr is no longer part of the m4 sources. +# Geez, I'm gonna have to learn ANSI C now... +# +#( cd src ; make ansi2knr ) +#gzip -9 $PKG/usr/info/m4.info.gz +#cat src/m4 > $PKG/usr/bin/m4 +#chmod 755 $PKG/usr/bin/* + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/m4-$VERSION +cp -a \ + BACKLOG COPYING* NEWS README THANKS TODO examples \ + $PKG/usr/doc/m4-$VERSION +head -n 357 ChangeLog > $PKG/usr/doc/m4-$VERSION/ChangeLog +touch -r ChangeLog $PKG/usr/doc/m4-$VERSION/ChangeLog +chmod 644 $PKG/usr/doc/m4-$VERSION/COPYING* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/m4-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/m4/slack-desc b/source/d/m4/slack-desc new file mode 100644 index 000000000..7951b9bd8 --- /dev/null +++ b/source/d/m4/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +m4: m4 (an implementation of the UNIX macro processor) +m4: +m4: This is GNU m4, a program which copies its input to the output, +m4: expanding macros as it goes. m4 has built-in functions for including +m4: named files, running commands, doing integer arithmetic, manipulating +m4: text in various ways, recursion, etc... Macros can also be user- +m4: defined, and can take any number of arguments. +m4: +m4: GNU 'm4' was originally written by Rene Seindal, from Denmark. +m4: +m4: diff --git a/source/d/make/make.SlackBuild b/source/d/make/make.SlackBuild new file mode 100755 index 000000000..15f4b6102 --- /dev/null +++ b/source/d/make/make.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.81 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-make + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf make-$VERSION +tar xjvf $CWD/make-$VERSION.tar.bz2 +cd make-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make +make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +gzip -9 $PKG/usr/man/man1/* +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +# This has been here so long that it should probably stay. +# Trying to get rid of ginstall didn't go well, so... :-) +( cd $PKG/usr/bin + rm -f gmake + ln -sf make gmake ) +mkdir -p $PKG/usr/doc/make-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING NEWS README* \ + $PKG/usr/doc/make-$VERSION/ +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/make-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/make/slack-desc b/source/d/make/slack-desc new file mode 100644 index 000000000..ef19ca33a --- /dev/null +++ b/source/d/make/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +make: make (GNU make utility to maintain groups of programs) +make: +make: This is the GNU implementation of make, which was written by Richard +make: Stallman and Roland McGrath. The purpose of the make utility is to +make: determine automatically which pieces of a large program need to be +make: recompiled, and issue the commands to recompile them. +make: +make: This is needed to compile just about any major C program, including +make: the Linux kernel. +make: +make: diff --git a/source/d/mercurial/mercurial.SlackBuild b/source/d/mercurial/mercurial.SlackBuild new file mode 100755 index 000000000..88ccc969f --- /dev/null +++ b/source/d/mercurial/mercurial.SlackBuild @@ -0,0 +1,69 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.2.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mercurial + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf mercurial-$VERSION +tar xvf $CWD/mercurial-$VERSION.tar.bz2 || exit 1 +cd mercurial-$VERSION +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +python setup.py build install --root=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd doc + for dir in 1 5 ; do + mkdir -p $PKG/usr/man/man${dir} + for file in *.${dir} ; do + cat $file | gzip -9c > $PKG/usr/man/man${dir}/${file}.gz + done + done +) + +mkdir -p $PKG/usr/doc/mercurial-$VERSION +cp -a \ + CONTRIBUTORS COPYING* PKG-INFO README* \ + $PKG/usr/doc/mercurial-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mercurial-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/mercurial/slack-desc b/source/d/mercurial/slack-desc new file mode 100644 index 000000000..e770f6c31 --- /dev/null +++ b/source/d/mercurial/slack-desc @@ -0,0 +1,22 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + +# This article is licensed under the GNU Free Documentation License. +# It uses material from the Wikipedia article "Mercurial". + + |-----handy-ruler------------------------------------------------------| +mercurial: mercurial (a distributed source management system) +mercurial: +mercurial: Mercurial is a cross-platform, distributed source management tool for +mercurial: software developers. It is written in Python, with a binary diff +mercurial: implementation written in C. Its major features include high- +mercurial: performance; serverless, fully distributed collaborative development; +mercurial: robust handling of both plain text and binary files; advanced +mercurial: branching and merging capabilities; and full source code available +mercurial: under the terms of the LGPL. +mercurial: +mercurial: Mercurial was written by Matt Mackall and other contributors. diff --git a/source/d/nasm/nasm.SlackBuild b/source/d/nasm/nasm.SlackBuild new file mode 100755 index 000000000..27cbc57cd --- /dev/null +++ b/source/d/nasm/nasm.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.05.01 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nasm + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf nasm-$VERSION +tar xvf $CWD/nasm-$VERSION.tar.bz2 || exit 1 +cd nasm-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --build=${ARCH}-slackware-linux || exit 1 +make || exit 1 +mkdir -p $PKG/usr/bin $PKG/usr/man/man1 +make install INSTALLROOT=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/nasm-$VERSION +cp -a \ + AUTHORS CHANGES COPYING INSTALL LICENSE README TODO \ + $PKG/usr/doc/nasm-$VERSION + +( cd doc + make + cd info + mkdir -p $PKG/usr/info + cp -a * $PKG/usr/info + gzip -9 $PKG/usr/info/* +) + +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/nasm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/nasm/slack-desc b/source/d/nasm/slack-desc new file mode 100644 index 000000000..6fd4778f2 --- /dev/null +++ b/source/d/nasm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nasm: nasm (NASM assembler) +nasm: +nasm: NASM is the Netwide Assembler, a free portable assembler for the Intel +nasm: 80x86 microprocessor series, using primarily the traditional Intel +nasm: instruction mnemonics and syntax. +nasm: +nasm: NASM was written by Simon Tatham and Julian Hall. +nasm: +nasm: +nasm: +nasm: diff --git a/source/d/oprofile/oprofile.SlackBuild b/source/d/oprofile/oprofile.SlackBuild new file mode 100755 index 000000000..28feae4ab --- /dev/null +++ b/source/d/oprofile/oprofile.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.9.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-oprofile + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf oprofile-$VERSION +tar xvf $CWD/oprofile-$VERSION.tar.bz2 || exit 1 +cd oprofile-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --with-kernel-support + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# This seems misplaced, and isn't referenced by any binaries or other files. +# I'm tempted to think it shouldn't have been installed, but will just move it: +if [ -r $PKG/usr/share/mangled-name ]; then + mv $PKG/usr/share/mangled-name $PKG/usr/share/oprofile/mangled-name +fi +( cd $PKG/usr/bin + strip --strip-unneeded * +) +mv $PKG/usr/share/doc $PKG/usr +mv $PKG/usr/doc/oprofile $PKG/usr/doc/oprofile-$VERSION +cp -a \ + COPYING README TODO \ + $PKG/usr/doc/oprofile-$VERSION + +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/oprofile-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/oprofile/slack-desc b/source/d/oprofile/slack-desc new file mode 100644 index 000000000..9988ec5db --- /dev/null +++ b/source/d/oprofile/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +oprofile: oprofile (system profiling tool) +oprofile: +oprofile: OProfile is a profiling system for Linux. Profiling runs +oprofile: transparently in the background and profile data can be collected +oprofile: at any time. OProfile makes use of the hardware performance +oprofile: counters provided on Intel, AMD, and other processors, and uses a +oprofile: timer-interrupt based mechanism on CPUs without counters. +oprofile: OProfile can profile the whole system in high detail. +oprofile: +oprofile: +oprofile: diff --git a/source/d/p2c/p2c.SlackBuild b/source/d/p2c/p2c.SlackBuild new file mode 100755 index 000000000..11bdee850 --- /dev/null +++ b/source/d/p2c/p2c.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# Sources: +# ftp://ftp.pal.xgw.fi/pub/gnu/alpha/gnu/p2c-1.21alpha2.tar.gz +# ftp://ftp.clara.net/pub/mirrors/gnu/hurd/p2c-1.21alpha2.tar.gz +# ftp://ftp.obspm.fr/pub1/computing/gnu/hurd/p2c-1.21alpha2.tar.gz + +VERSION=${VERSION:-1.21alpha2} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-p2c + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_p2c.tar.gz + +cd $TMP +rm -rf p2c-1.21alpha-07.Dec.93 +tar xvf $CWD/p2c-1.21alpha2.tar.gz || exit 1 +cd p2c-1.21alpha-07.Dec.93 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/p2c_1.21alpha2-2.1.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/p2c_time.diff.gz | patch -p0 --verbose --backup --suffix=.orig || exit 1 +find . -name "*.orig" | xargs rm --verbose +# Fix library paths: +sed -i -e "s#/lib #/lib${LIBDIRSUFFIX} #g" \ + -e "s#/lib\$#/lib${LIBDIRSUFFIX}#g" \ + -e "s#/lib/#/lib${LIBDIRSUFFIX}/#g" \ + $( grep -lr '/lib' * ) + +cd src +make OPT="$SLKCFLAGS" || exit 1 +make p2cc + +mv $PKG/usr/lib $PKG/usr/lib${LIBDIRSUFFIX} 2>/dev/null +cat p2c > $PKG/usr/bin/p2c +cat p2cc > $PKG/usr/bin/p2cc +cat libp2c.a > $PKG/usr/lib${LIBDIRSUFFIX}/libp2c.a +cat p2c.man | gzip -9c > $PKG/usr/man/man1/p2c.1.gz +cat p2cc.man | gzip -9c > $PKG/usr/man/man1/p2cc.1.gz +cat sys.p2crc > $PKG/usr/lib${LIBDIRSUFFIX}/p2c/p2crc +cat loc.p2crc > $PKG/usr/lib${LIBDIRSUFFIX}/p2c/loc.p2crc +cat system.imp > $PKG/usr/lib${LIBDIRSUFFIX}/p2c/system.imp +cat system.m2 > $PKG/usr/lib${LIBDIRSUFFIX}/p2c/system.m2 +cat turbo.imp > $PKG/usr/lib${LIBDIRSUFFIX}/p2c/turbo.imp +cat string.pas > $PKG/usr/lib${LIBDIRSUFFIX}/p2c/string.pas +cat p2c.h > $PKG/usr/include/p2c/p2c.h +cd .. + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/p2c-1.21alpha2 +cp -a \ + README ftp.README \ + $PKG/usr/doc/p2c-1.21alpha2 +( cd src + for file in HISTORY NOTES COPYING INSTALL ; do + cp -a $file $PKG/usr/doc/p2c-1.21alpha2 + done +) +cp -a src/README $PKG/usr/doc/p2c-1.21alpha2/README.src +cp -a examples $PKG/usr/doc/p2c-1.21alpha2 +( cd $PKG/usr/doc/p2c-1.21alpha2 + zcat $CWD/p2c.examples.diff.gz | patch -p1 --verbose || exit 1 +) || exit 1 +rm -f $PKG/usr/doc/p2c-1.21alpha2/examples/Makefile~ +rm -rf $PKG/usr/doc/p2c-1.21alpha2/examples/c + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/p2c-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/p2c/p2c.examples.diff b/source/d/p2c/p2c.examples.diff new file mode 100644 index 000000000..2a66af55b --- /dev/null +++ b/source/d/p2c/p2c.examples.diff @@ -0,0 +1,15 @@ +--- ./examples/Makefile.orig 1993-12-07 23:36:58.000000000 -0600 ++++ ./examples/Makefile 2007-06-02 12:53:13.000000000 -0500 +@@ -4,9 +4,9 @@ + + # The following definitions assume p2c has been compiled into the "home" + # directory as shown in src/Makefile. +-P2C = ../p2c +-INC = ../home +-LIB = ../home/libp2c.a ++P2C = p2c ++INC = /usr/include/p2c ++LIB = /usr/lib/libp2c.a + + + default: comp diff --git a/source/d/p2c/p2c_1.21alpha2-2.1.diff b/source/d/p2c/p2c_1.21alpha2-2.1.diff new file mode 100644 index 000000000..b7fbaf007 --- /dev/null +++ b/source/d/p2c/p2c_1.21alpha2-2.1.diff @@ -0,0 +1,320 @@ +--- p2c-1.21alpha2.orig/debian/README.Debian ++++ p2c-1.21alpha2/debian/README.Debian +@@ -0,0 +1,54 @@ ++p2c for Debian ++-------------- ++ ++You should be aware that p2c is not perfect in converting Pascal sources ++to C, and it won't make the best C code. ++ ++Also if you notice that your translated C program won't compile because ++of an undefined reference to PASCAL_MAIN function, just comment that line ++from the C file and it should work. ++ ++Here are some words from src/INSTALL file that could be of some use: ++ +++++ ++ ++ Incomplete interface texts for standard Turbo units are included in ++ turbo.imp. Turbo users will have to flesh these out and write emulations ++ for whatever parts of the Turbo runtime library they need. ++ ++ If you wish to edit various system-wide configuration parameters, it is ++ better to put them in loc.p2crc than in sys.p2crc. As an example, on a ++ Turbo-oriented environment you may wish to add ++ ++ Language Turbo ++ ++ to the loc.p2crc file to replace the normal default (HP Pascal). ++ ++ PORTABILITY ++ ++ P2c was originally developed on a homebrew C compiler on the HP Pascal ++ Workstation operating system. Current development takes place on HP-UX, ++ which is System V based. The translator has also been compiled and used ++ on Sun-3's, so presumably it is fairly portable among 32-bit Unix machines. ++ ++ Many parts of the code will have to be adjusted in order for p2c to work ++ on a machine with 16-bit ints. I have never had reason or opportunity to ++ track these down since I don't have access to such a machine. Please note ++ that code _generated_ by p2c works with either size of int even though p2c ++ itself does not. ++ ++ If your compiler supports ANSI prototypes, most of the 16-bit portability ++ problems will go away except for possible %d/%ld sloppiness in sprintf control ++ strings. There may be places where p2c tries to cast a pointer into an ++ int, but I believe all such cases use longs consistently. You will have ++ a problem if your long type is not large enough to store a pointer. ++ ++ Because p2c was developed to run under Unix, it is sloppy about memory ++ allocation. Some data structures are allocated but never freed. Profiles ++ show that the waste is not too great in most cases, but if it is a problem ++ you may have to write a garbage collector (this shouldn't be too hard if you ++ only run the collector after translating each procedure). ++ +++++ ++ ++ -- Josip Rodin <joy-packages@debian.org>, Mon, 28 Dec 1998 18:14:23 +0100 +--- p2c-1.21alpha2.orig/debian/rules ++++ p2c-1.21alpha2/debian/rules +@@ -0,0 +1,46 @@ ++#!/usr/bin/make -f ++# Derived from a dh_make example and Andrew Howell's rules file. ++ ++#export DH_VERBOSE=1 ++export DH_COMPAT=4 ++ ++CFLAGS := -g -Wall ++ifneq "$(findstring noopt,$(DEB_BUILD_OPTIONS))" "" ++CFLAGS += -O0 ++else ++CFLAGS += -O2 ++endif ++ ++build: src/p2c ++src/p2c: src/p2c.h ++ $(MAKE) -C src OPT="$(CFLAGS)" LFLAGS="-s" ++ ++clean: ++ dh_testdir ++ dh_testroot ++ $(MAKE) -C src clean ++ dh_clean ++ ++binary-indep: ++# No architecture independant packages here. ++ ++binary-arch: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ $(MAKE) -C src install PREFIX="$(CURDIR)/debian/p2c/usr" ++ dh_installdocs src/README src/NOTES ++ dh_installexamples examples/* ++ dh_installchangelogs src/HISTORY ++ dh_link usr/share/man/man1/p2c.1.gz usr/share/man/man1/p2cc.1.gz ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary +--- p2c-1.21alpha2.orig/debian/control ++++ p2c-1.21alpha2/debian/control +@@ -0,0 +1,26 @@ ++Source: p2c ++Section: devel ++Priority: optional ++Maintainer: Josip Rodin <joy-packages@debian.org> ++Build-Depends: debhelper (>= 4) ++Standards-Version: 3.6.0 ++ ++Package: p2c ++Architecture: any ++Depends: ${shlibs:Depends} ++Suggests: gcc, gpc ++Description: Pascal to C translator ++ P2c is a tool for translating Pascal programs into C. The input ++ consists of a set of source files in any of the following Pascal ++ dialects: HP Pascal, Turbo/UCSD Pascal, DEC VAX Pascal, Oregon Software ++ Pascal/2, Macintosh Programmer's Workshop Pascal, Sun/Berkeley Pascal, ++ Texas Instruments Pascal, Apollo Domain Pascal. Modula-2 syntax is also ++ supported. ++ . ++ Output is a set of .c and .h files that comprise an equivalent program ++ in any of several dialects of C. Output code may be kept machine and ++ dialect-independent, or it may be targeted to a specific machine and ++ compiler. Most reasonable Pascal programs are converted into fully ++ functional C which will compile and run with no further modifications, ++ although p2c sometimes chooses to generate readable code at the expense ++ of absolute generality. +--- p2c-1.21alpha2.orig/debian/copyright ++++ p2c-1.21alpha2/debian/copyright +@@ -0,0 +1,25 @@ ++This package was put together by Andrew Howell. ++The current maintainer is Josip Rodin <joy-packages@debian.org>. ++ ++The original source can be found at: ++ http://www.synaptics.com/people/daveg/ ++ ++p2c's author is Dave Gillespie <daveg@synaptics.com>. ++ ++Copyright 1989-1993 Free Software Foundation, Inc. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; version 2 dated June, 1991. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software Foundation, ++ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++On Debian systems, the complete text of the GNU General Public License ++can be found in the file /usr/share/common-licenses/GPL. +--- p2c-1.21alpha2.orig/debian/changelog ++++ p2c-1.21alpha2/debian/changelog +@@ -0,0 +1,52 @@ ++p2c (1.21alpha2-2.1) unstable; urgency=low ++ ++ * Non-maintainer upload (0-day) ++ * Applied patch by Peter De Wachter that fixes double memory free()'s ++ (Closes: #305412, #307706) ++ ++ -- Roland Stigge <stigge@antcom.de> Thu, 5 May 2005 16:04:37 +0200 ++ ++p2c (1.21alpha2-2) unstable; urgency=low ++ ++ * Added debhelper to build-depends, closes: #190499. ++ * Updated package standards. ++ ++ -- Josip Rodin <joy-packages@debian.org> Sat, 16 Aug 2003 13:02:10 +0200 ++ ++p2c (1.21alpha2-1) unstable; urgency=low ++ ++ * New upstream version. Although it is marked as "alpha", it has been ++ made in 1993, so... :) (closes: #39400) ++ * Updated for Policy 3.x, rewrote most of debian/* and made a better ++ src/Makefile patch. ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Sat, 11 Sep 1999 23:34:19 +0200 ++ ++p2c (1.20-3) unstable; urgency=low ++ ++ * Removed `-m486 -fomit-frame-pointer' from the gcc flags, since ix86 ++ doesn't need it and it bugs m68k (and other ports). ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Thu, 7 Jan 1999 19:01:32 +0100 ++ ++p2c (1.20-2) unstable; urgency=low ++ ++ * Fixed the FSF address in copyright file ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Tue, 29 Dec 1998 21:13:52 +0100 ++ ++p2c (1.20-1) unstable; urgency=low ++ ++ * Initial Release for potato (2.2) ++ * Converted to new packaging format/standards ++ ++ -- Josip Rodin <jrodin@jagor.srce.hr> Mon, 28 Dec 1998 18:14:23 +0100 ++ ++Changes by Andrew Howell <andrew@it.com.au>: ++ ++1.20-2: ++ 951123 ++ * Converted to ELF. ++ ++1.20-1: ++ * added Debian GNU/Linux package maintenance system files +--- p2c-1.21alpha2.orig/src/Makefile ++++ p2c-1.21alpha2/src/Makefile +@@ -19,22 +19,23 @@ + SHELL = /bin/sh + + # Directories (private version) +-HOMEDIR = ../home +-INCDIR = ../home/p2c +-BINDIR = .. +-LIBDIR = ../home +-MANDIR = ../home +-MANFILE = p2c.cat # human-readable manual (for cat.1) ++#HOMEDIR = ../home ++#INCDIR = ../home/p2c ++#BINDIR = .. ++#LIBDIR = ../home ++#MANDIR = ../home ++#MANFILE = p2c.cat # human-readable manual (for cat.1) + #MANFILE = p2c.man.inst # uncompressed nroff source (for man.1) + #MANFILE = p2c.man.Z # compressed nroff source (for man.1.Z) + + # Directories (public version) +-#HOMEDIR = /usr/lib/p2c +-#INCDIR = /usr/include/p2c +-#BINDIR = /usr/bin +-#LIBDIR = /usr/lib +-#MANDIR = /usr/man/man1 +-#MANFILE = p2c.man.inst ++PREFIX = /usr ++HOMEDIR = $(PREFIX)/lib/p2c ++INCDIR = $(PREFIX)/include/p2c ++BINDIR = $(PREFIX)/bin ++LIBDIR = $(PREFIX)/lib ++MANDIR = $(PREFIX)/share/man/man1 ++MANFILE = p2c.man.inst + + # Compiler options + CC = cc # you may wish to use gcc here instead +@@ -64,9 +65,9 @@ + LIBOBJS = p2clib.o loc.p2clib.o + OTHERLIBOBJS = + +-ABSHOMEDIR = `cd $(HOMEDIR); pwd` +-ABSINCDIR = `cd $(INCDIR); pwd` +-ABSLIBDIR = `cd $(LIBDIR); pwd` ++ABSHOMEDIR = /usr/lib/p2c ++ABSINCDIR = /usr/include/p2c ++ABSLIBDIR = /usr/lib + + MISCSRCS = makeproto.c + PROTOS = p2c.proto p2c.hdrs +@@ -161,11 +162,11 @@ + + SHELL=/bin/sh + makedirs: +- if [ ! -d $(HOMEDIR) ]; then mkdir $(HOMEDIR); else true; fi +- if [ ! -d $(BINDIR) ]; then mkdir $(BINDIR); else true; fi +- if [ ! -d $(LIBDIR) ]; then mkdir $(LIBDIR); else true; fi +- if [ ! -d $(MANDIR) ]; then mkdir $(MANDIR); else true; fi +- if [ ! -d $(INCDIR) ]; then mkdir $(INCDIR); else true; fi ++ if [ ! -d $(HOMEDIR) ]; then mkdir -p $(HOMEDIR); else true; fi ++ if [ ! -d $(BINDIR) ]; then mkdir -p $(BINDIR); else true; fi ++ if [ ! -d $(LIBDIR) ]; then mkdir -p $(LIBDIR); else true; fi ++ if [ ! -d $(MANDIR) ]; then mkdir -p $(MANDIR); else true; fi ++ if [ ! -d $(INCDIR) ]; then mkdir -p $(INCDIR); else true; fi + + $(BINDIR)/p2c: p2c + $(COPY) p2c $(BINDIR)/p2c +@@ -212,6 +213,7 @@ + + clean: + rm -f $(OBJS) $(LIBOBJS) $(PROTOS) p2c libp2c.a ++ rm -f makeproto p2cc p2c.man.inst p2c.cat + + wc: + wc $(SRCS) $(LIBSRCS) trans.h +--- p2c-1.21alpha2.orig/src/decl.c ++++ p2c-1.21alpha2/src/decl.c +@@ -789,8 +789,10 @@ + mpp2 = &mp2->snext; + if (mp2) + *mpp2 = mp2->snext; ++#if 0 + if (mp->kind == MK_CONST) + free_value(&mp->val); ++#endif + freeexpr(mp->constdefn); + if (mp->cbase) + forget_ctx(mp, 1); +--- p2c-1.21alpha2.orig/src/parse.c ++++ p2c-1.21alpha2/src/parse.c +@@ -4642,8 +4642,10 @@ + } + } + if (conserve_mem) { ++#if 0 + free_stmt((Stmt *)func->val.i); /* is this safe? */ + func->val.i = 0; ++#endif + forget_ctx(func, 0); + } + outsection(spacing); diff --git a/source/d/p2c/p2c_time.diff b/source/d/p2c/p2c_time.diff new file mode 100644 index 000000000..fcd0875de --- /dev/null +++ b/source/d/p2c/p2c_time.diff @@ -0,0 +1,10 @@ +--- ./src/out.c.orig Fri Feb 22 18:39:33 2002 ++++ ./src/out.c Fri Feb 22 18:41:13 2002 +@@ -41,6 +41,7 @@ + + #if USETIME + # include <sys/time.h> ++# include <time.h> + #else + # include <time.h> + #endif diff --git a/source/d/p2c/slack-desc b/source/d/p2c/slack-desc new file mode 100644 index 000000000..058ac2040 --- /dev/null +++ b/source/d/p2c/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +p2c: p2c (Pascal to C translator) +p2c: +p2c: P2c is a tool for translating Pascal programs into C. The input +p2c: consists of a set of source files in any of the following Pascal +p2c: dialects: HP Pascal, Turbo/UCSD Pascal, DEC VAX Pascal, Oregon +p2c: Software Pascal/2, Macintosh Programmer's Workshop Pascal, +p2c: Sun/Berkeley Pascal, Texas Instruments Pascal, Apollo Domain Pascal. +p2c: Modula-2 syntax is also supported. Output is a set of .c and .h +p2c: files that comprise an equivalent program in any of several dialects +p2c: of C. +p2c: diff --git a/source/d/perl/doinst.sh b/source/d/perl/doinst.sh new file mode 100644 index 000000000..8d2debb06 --- /dev/null +++ b/source/d/perl/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config usr/lib/perl5/5.10.0/i486-linux-thread-multi/perllocal.pod.new diff --git a/source/d/perl/perl.SlackBuild b/source/d/perl/perl.SlackBuild new file mode 100755 index 000000000..9aa963d6a --- /dev/null +++ b/source/d/perl/perl.SlackBuild @@ -0,0 +1,267 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# originally by: David Cantrell <david@slackware.com> +# maintained by: <volkerdi@slackware.com> + +VERSION=5.10.0 +# IMPORTANT: also update -Dinc_version_list in ./configure below! + +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-perl + +# Additional required modules: +DBI=1.607 +DBDMYSQL=4.008 +XMLPARSER=2.36 +XMLSIMPLE=2.18 +URI=1.37 + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +if [ -x /usr/bin/perl ]; then + echo "Perl detected." + echo + echo "It's a good idea to remove your existing perl first." + echo + sleep 15 +fi + +# Clear build location: +rm -rf $PKG +mkdir -p $PKG + +# Extract the source code: +cd $TMP +rm -rf perl-$VERSION +tar xvf $CWD/perl-$VERSION.tar.bz2 + +# Change into the source directory: +cd perl-$VERSION + +# Adjust owner/perms to standard values: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# If after all this time you still don't trust threads, comment +# out the variable below: +# +USE_THREADS="-Dusethreads -Duseithreads" + +if [ "$ARCH" = "x86_64" ]; then # adopted from "Cross Linux From Scratch" + # Configure must be told to also use lib64: + zcat $CWD/perl.configure.multilib.patch.gz | patch -p1 --verbose || exit 1 + # "perl -V" should report that libc is in /lib64 + sed -i -e '/libc/s#/lib/#/lib64/#' hints/linux.sh + # make perl use lib64: + echo 'installstyle="lib64/perl5"' >>hints/linux.sh +fi + +# We no longer include suidperl. To quote the INSTALL file: +# +# Because of the buggy history of suidperl, and the difficulty +# of properly security auditing as large and complex piece of +# software as Perl, we cannot recommend using suidperl and the feature +# should be considered deprecated. +# Instead use for example 'sudo': http://www.courtesan.com/sudo/ + +# Configure perl: +./Configure -de \ + -Dprefix=/usr \ + -Dvendorprefix=/usr \ + -Dcccdlflags='-fPIC' \ + -Dinstallprefix=/usr \ + -Dlibpth="/usr/local/lib${LIBDIRSUFFIX} /usr/lib${LIBDIRSUFFIX} /lib${LIBDIRSUFFIX}" \ + -Doptimize="$SLKCFLAGS" \ + $USE_THREADS \ + -Dpager='/usr/bin/less -isr' \ + -Dinc_version_list='5.8.8 5.8.7 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0' \ + -Darchname=$ARCH-linux + +# Kludge for gcc-4.2.4's needlessly changed output: +cat makefile | grep -v '\<command-line\>' > foo +mv foo makefile +cat x2p/makefile | grep -v '\<command-line\>' > foo +mv foo x2p/makefile + +# Build perl +make -j6 || exit 1 +make test + +# Install perl (needed to build modules): +make install +( cd /usr/bin + ln -sf perl$VERSION perl + ln -sf c2ph pstruct + ln -sf s2p psed +) +mkdir -p /usr/lib${LIBDIRSUFFIX}/perl5/vendor_perl/${VERSION}/${ARCH}-linux-thread-multi + +# Install perl package: +make install DESTDIR=$PKG +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/perl5/vendor_perl/${VERSION}/${ARCH}-linux-thread-multi + +# Add additional modules: +( cd ext + ( tar xzvf $CWD/DBI-${DBI}.tar.gz + cd DBI-${DBI} + chown -R root:root . + perl Makefile.PL INSTALLDIRS=vendor + make + make test + make install + make install DESTDIR=$PKG + mkdir -p $PKG/usr/doc/perl-$VERSION/DBI-${DBI} + cp -a README $PKG/usr/doc/perl-$VERSION/DBI-${DBI} + chmod 644 $PKG/usr/doc/perl-$VERSION/DBI-${DBI}/README + ) + ( tar xzvf $CWD/DBD-mysql-${DBDMYSQL}.tar.gz + cd DBD-mysql-${DBDMYSQL} + chown -R root:root . + perl Makefile.PL INSTALLDIRS=vendor + make + make test + make install + make install DESTDIR=$PKG + mkdir -p $PKG/usr/doc/perl-$VERSION/DBD-mysql-${DBDMYSQL} + cp -a INSTALL.html README TODO $PKG/usr/doc/perl-$VERSION/DBD-mysql-${DBDMYSQL} + chmod 644 $PKG/usr/doc/perl-$VERSION/DBD-mysql-${DBDMYSQL}/* + ) + ( tar xzvf $CWD/XML-Parser-${XMLPARSER}.tar.gz + cd XML-Parser-${XMLPARSER} + chown -R root:root . + perl Makefile.PL INSTALLDIRS=vendor + make + make test + make install + make install DESTDIR=$PKG + mkdir -p $PKG/usr/doc/perl-$VERSION/XML-Parser-${XMLPARSER} + cp -a README $PKG/usr/doc/perl-$VERSION/XML-Parser-${XMLPARSER} + chmod 644 $PKG/usr/doc/perl-$VERSION/XML-Parser-${XMLPARSER}/* + ) + ( tar xzvf $CWD/XML-Simple-${XMLSIMPLE}.tar.gz + cd XML-Simple-${XMLSIMPLE} + chown -R root:root . + perl Makefile.PL INSTALLDIRS=vendor + make + make test + make install + make install DESTDIR=$PKG + mkdir -p $PKG/usr/doc/perl-$VERSION/XML-Simple${XMLSIMPLE} + cp -a README $PKG/usr/doc/perl-$VERSION/XML-Simple${XMLSIMPLE} + chmod 644 $PKG/usr/doc/perl-$VERSION/XML-Simple${XMLSIMPLE}/* + ) + ( tar xzvf $CWD/URI-${URI}.tar.gz + cd URI-${URI} + chown -R root:root . + perl Makefile.PL INSTALLDIRS=vendor + make + make test + make install + make install DESTDIR=$PKG + mkdir -p $PKG/usr/doc/perl-$VERSION/URI-${URI} + cp -a README $PKG/usr/doc/perl-$VERSION/URI-${URI} + chmod 644 $PKG/usr/doc/perl-$VERSION/URI-${URI}/* + ) +) + +# Strip everything: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# There are also miniperl and microperl. +# I haven't had any requests for them, but would be willing +# to consider adding one or both to the package if anyone +# actually needs them for some reason. +#make microperl + +# Symlinks that replace hard links +( cd $PKG/usr/bin + ln -sf perl$VERSION perl + ln -sf c2ph pstruct + ln -sf s2p psed ) + +# Install documentation +mkdir -p $PKG/usr/doc/perl-$VERSION +cp -a \ + AUTHORS Artistic Copying INSTALL MANIFEST README README.Y2K README.cn \ + README.jp README.ko README.micro README.tw Todo.micro \ + $PKG/usr/doc/perl-$VERSION + +# We follow LSB with symlinks in /usr/share: +( cd $PKG/usr/share + mv man .. ) +( cd $PKG/usr/man/man1 + mkdir foo + cp *.1 foo + rm *.1 + mv foo/* . + rmdir foo + gzip -9 * + ln -sf c2ph.1.gz pstruct.1.gz + ln -sf s2p.1.gz psed.1.gz ) +( cd $PKG/usr/man/man3 + gzip -9 * ) + +chmod 755 $PKG/usr/bin/* +chmod 644 $PKG/usr/man/man?/* +rmdir $PKG/usr/share + +# This file shouldn't get clobbered: +if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/perl5/${VERSION}/${ARCH}-linux-thread-multi/perllocal.pod ]; then + mv $PKG/usr/lib${LIBDIRSUFFIX}/perl5/${VERSION}/${ARCH}-linux-thread-multi/perllocal.pod $PKG/usr/lib${LIBDIRSUFFIX}/perl5/${VERSION}/${ARCH}-linux-thread-multi/perllocal.pod.new +fi + +# Insert the slack-desc: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz | \ + sed -e "s#/lib/#/lib${LIBDIRSUFFIX}/#" | sed -e "s#i486#$ARCH#" \ + > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/perl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/perl/perl.configure.multilib.patch b/source/d/perl/perl.configure.multilib.patch new file mode 100644 index 000000000..c86ce65f7 --- /dev/null +++ b/source/d/perl/perl.configure.multilib.patch @@ -0,0 +1,35 @@ +Submitted By: Ryan Oliver <ryan(dot)oliver(at)pha(dot)com(dot)au> +Date: 2005-10-20 +Initial Package Version: 5.8.7 +Origin: Ryan Oliver +Description: this patch allows perl to be installed in /usr/lib32 or /usr/lib64 instead of /usr/lib. + +--- perl-5.8.7/Configure-ORIG 2005-10-20 11:49:47.571389008 +1000 ++++ perl-5.8.7/Configure 2005-10-20 12:30:35.571236464 +1000 +@@ -5930,6 +5930,8 @@ + : The default "style" setting is made in installstyle.U + case "$installstyle" in + *lib/perl5*) set dflt privlib lib/$package/$version ;; ++*lib32/perl5*) set dflt privlib lib32/$package/$version ;; ++*lib64/perl5*) set dflt privlib lib64/$package/$version ;; + *) set dflt privlib lib/$version ;; + esac + eval $prefixit +@@ -6433,6 +6435,8 @@ + case "$sitelib" in + '') case "$installstyle" in + *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;; ++ *lib32/perl5*) dflt=$siteprefix/lib32/$package/site_$prog/$version ;; ++ *lib64/perl5*) dflt=$siteprefix/lib64/$package/site_$prog/$version ;; + *) dflt=$siteprefix/lib/site_$prog/$version ;; + esac + ;; +@@ -6560,6 +6564,8 @@ + prog=`echo $package | $sed 's/-*[0-9.]*$//'` + case "$installstyle" in + *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog/$version ;; ++ *lib32/perl5*) dflt=$vendorprefix/lib32/$package/vendor_$prog/$version ;; ++ *lib64/perl5*) dflt=$vendorprefix/lib64/$package/vendor_$prog/$version ;; + *) dflt=$vendorprefix/lib/vendor_$prog/$version ;; + esac + ;; diff --git a/source/d/perl/slack-desc b/source/d/perl/slack-desc new file mode 100644 index 000000000..e28cf9416 --- /dev/null +++ b/source/d/perl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +perl: perl (Practical Extraction and Report Language) +perl: +perl: Larry Wall's "Practical Extraction and Report Language". Perl is a +perl: language optimized for scanning arbitrary text files, extracting +perl: information from those text files, and printing reports based on that +perl: information. It's also a good language for many system management +perl: tasks. The language is intended to be practical (easy to use, +perl: efficient, complete) rather than beautiful (tiny, elegant, minimal). +perl: +perl: +perl: diff --git a/source/d/pkg-config/doinst.sh b/source/d/pkg-config/doinst.sh new file mode 100644 index 000000000..c8adcd317 --- /dev/null +++ b/source/d/pkg-config/doinst.sh @@ -0,0 +1,6 @@ +if [ ! -L usr/share/pkgconfig ]; then + mkdir -p usr/lib/pkgconfig 2> /dev/null + mv usr/share/pkgconfig/* usr/lib/pkgconfig 2> /dev/null + rmdir usr/share/pkgconfig 2> /dev/null + ( cd usr/share ; ln -sf ../lib/pkgconfig . 2> /dev/null ) +fi diff --git a/source/d/pkg-config/pkg-config.SlackBuild b/source/d/pkg-config/pkg-config.SlackBuild new file mode 100755 index 000000000..0a86febc8 --- /dev/null +++ b/source/d/pkg-config/pkg-config.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-0.23} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pkg-config +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +cd $TMP +rm -rf pkg-config-$VERSION +tar xvf $CWD/pkg-config-$VERSION.tar.bz2 || exit 1 +cd pkg-config-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/etc/profile.d/ +for script in $(ls $CWD/scripts/*) ; do + cat ${script} | sed -e "s#/lib/#/lib${LIBDIRSUFFIX}/#g" \ + > $PKG/etc/profile.d/$(basename ${script}) +done +chown root:root $PKG/etc/profile.d/* +chmod 755 $PKG/etc/profile.d/* + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/usr/doc/pkg-config-$VERSION +cp -a \ + AUTHORS COPYING NEWS README \ + $PKG/usr/doc/pkg-config-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz | sed -e "s#/lib/#/lib${LIBDIRSUFFIX}/#g" \ + > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-pkg-config +/sbin/makepkg -l y -c n $TMP/pkg-config-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/pkg-config/scripts/pkgconfig.csh b/source/d/pkg-config/scripts/pkgconfig.csh new file mode 100755 index 000000000..477a93a76 --- /dev/null +++ b/source/d/pkg-config/scripts/pkgconfig.csh @@ -0,0 +1,6 @@ +#!/bin/csh +if ( $?PKG_CONFIG_PATH ) then + setenv PKG_CONFIG_PATH ${PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig +else + setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig +endif diff --git a/source/d/pkg-config/scripts/pkgconfig.sh b/source/d/pkg-config/scripts/pkgconfig.sh new file mode 100755 index 000000000..c3f350313 --- /dev/null +++ b/source/d/pkg-config/scripts/pkgconfig.sh @@ -0,0 +1,7 @@ +#!/bin/sh +if [ ! "$PKG_CONFIG_PATH" = "" ]; then + PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig +else + PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig +fi +export PKG_CONFIG_PATH diff --git a/source/d/pkg-config/slack-desc b/source/d/pkg-config/slack-desc new file mode 100644 index 000000000..52f57e1b9 --- /dev/null +++ b/source/d/pkg-config/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pkg-config: pkg-config (system for managing library compile/link flags) +pkg-config: +pkg-config: pkg-config is a system for managing library compile/link flags +pkg-config: that works with automake and autoconf. It replaces the ubiquitous +pkg-config: *-config scripts you may have seen with a single tool. See the man +pkg-config: page that comes with pkg-config for full documentation. +pkg-config: +pkg-config: +pkg-config: +pkg-config: +pkg-config: diff --git a/source/d/pmake/pmake.SlackBuild b/source/d/pmake/pmake.SlackBuild new file mode 100755 index 000000000..a5d1e27e4 --- /dev/null +++ b/source/d/pmake/pmake.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2006-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=pmake +VERSION=${VERSION:-1.111} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -Wall -DMACHINE_ARCH=\\\"${ARCH}\\\" -DHAVE_SETENV -DHAVE_STRERROR -DHAVE_STRDUP -DHAVE_STRFTIME -DHAVE_VSNPRINTF -D_GNU_SOURCE" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -Wall -DMACHINE_ARCH=\\\"${ARCH}\\\" -DHAVE_SETENV -DHAVE_STRERROR -DHAVE_STRDUP -DHAVE_STRFTIME -DHAVE_VSNPRINTF -D_GNU_SOURCE" + SLKCFLAGS="-O2 -Wall -DMACHINE_ARCH=\\\"${ARCH}\\\" -DHAVE_SETENV -DHAVE_STRERROR -DHAVE_STRDUP -DHAVE_STRFTIME -DHAVE_VSNPRINTF -D_GNU_SOURCE" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2 -Wall -DMACHINE_ARCH=\\\"${ARCH}\\\" -DHAVE_SETENV -DHAVE_STRERROR -DHAVE_STRDUP -DHAVE_STRFTIME -DHAVE_VSNPRINTF -D_GNU_SOURCE" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC -Wall -DMACHINE_ARCH=\\\"${ARCH}\\\" -DHAVE_SETENV -DHAVE_STRERROR -DHAVE_STRDUP -DHAVE_STRFTIME -DHAVE_VSNPRINTF -D_GNU_SOURCE" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xzvf $CWD/${PKGNAM}-$VERSION.tar.gz +cd ${PKGNAM} +zcat $CWD/pmake_1.111-1.diff.gz | patch -p1 || exit 1 + +# Not sure why the defines in the cflags didn't work here, but +# we'll just hit it with a big hammer: +zcat $CWD/pmake.strerror.strdup.diff.gz | patch -p1 || exit 1 + +if [ "$ARCH" != "i[3456]86" ]; then + sed -i -e "s/i386/$ARCH/" Makefile.boot +fi + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" make -f Makefile.boot + +mkdir -p $PKG/usr/bin +cp bmake $PKG/usr/bin/pmake +chown root:root $PKG/usr/bin/pmake +chmod 755 $PKG/usr/bin/pmake + +mkdir -p $PKG/usr/share/mk +cp -a mk/*.mk $PKG/usr/share/mk +chmod 644 $PKG/usr/share/mk/* +chown -R root:root $PKG/usr/share/mk + +mkdir -p $PKG/usr/man/man1 +gzip -9c make.1 > $PKG/usr/man/man1/pmake.1.gz + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +( cd PSD.doc + # This is too ugly to watch... + ../bmake -m ../mk 2> /dev/null + ps2ascii paper.ps > $PKG/usr/doc/${PKGNAM}-$VERSION/pmake.txt +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/pmake/pmake.strerror.strdup.diff b/source/d/pmake/pmake.strerror.strdup.diff new file mode 100644 index 000000000..2c4b83793 --- /dev/null +++ b/source/d/pmake/pmake.strerror.strdup.diff @@ -0,0 +1,20 @@ +--- ./util.c.orig 2005-07-07 03:16:23.000000000 -0500 ++++ ./util.c 2007-03-24 18:38:03.000000000 -0500 +@@ -21,6 +21,8 @@ + + #include "make.h" + ++#define HAVE_STRERROR 1 ++ + #if !defined(MAKE_NATIVE) && !defined(HAVE_STRERROR) + extern int errno, sys_nerr; + extern char *sys_errlist[]; +@@ -38,6 +40,8 @@ + } + #endif + ++#define HAVE_STRDUP 1 ++ + #if !defined(MAKE_NATIVE) && !defined(HAVE_STRDUP) + #include <string.h> + diff --git a/source/d/pmake/pmake.txt b/source/d/pmake/pmake.txt new file mode 100644 index 000000000..278545c56 --- /dev/null +++ b/source/d/pmake/pmake.txt @@ -0,0 +1,1255 @@ + + +PMake -- A Tutorial + +Adam de Boor Berkeley Softworks2150 Shattuck Ave, Penthouse + +Berkeley, CA 94704adam@bsw.uu.net + +...!uunet!bsw!adam + +1. Introduction PMake is a program for creating other programs, or anything else you can think of for it to do. The basicidea behind PMake is that, for any giv en system, be it a program or a document or whatever, there will be + +some files that depend on the state of other files (on when they were last modified). PMake takes thesedependencies, which you must specify, and uses them to build whatever it is you want it to build. + +PMake is almost fully-compatible with Make, with which you may already be familiar. PMake's mostimportant feature is its ability to run several different jobs at once, making the creation of systems considerably faster. It also has a great deal more functionality than Make. Throughout the text, whenever somethingis mentioned that is an important difference between PMake and Make (i.e. something that will cause a makefile to fail if you don't do something about it), or is simply important, it will be flagged with a littlesign in the left margin, like this: NOTE + +This tutorial is divided into three main sections corresponding to basic, intermediate and advanced PMakeusage. If you already know Make well, you will only need to skim chapter 2 (there are some aspects of + +PMake that I consider basic to its use that didn't exist in Make). Things in chapter 3 make life much easier,while those in chapter 4 are strictly for those who know what they are doing. Chapter 5 has definitions for the jargon I use and chapter 6 contains possible solutions to the problems presented throughout the tutorial. 2. The Basics of PMake PMake takes as input a file that tells a) which files depend on which other files to be complete and b) whatto do about files that are ``out-of-date.'' This file is known as a ``makefile'' and is usually kept in the topmost directory of the system to be built. While you can call the makefile anything you want, PMake willlook for + +Makefile and makefile (in that order) in the current directory if you don't tell it otherwise.To specify a different makefile, use the -f flag (e.g. `` + +pmake -f program.mk''). + +A makefile has four different types of lines in it: + +* File dependency specifications + +* Creation commands + +* Variable assignments + +* Comments, include statements and conditional directives Any line may be continued over multiple lines by ending it with a backslash. The backslash, followingnewline and any initial whitespace on the following line are compressed into a single space before the input + +line is examined by PMake. + +Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies. The University of California, Berkeley Softworks, and Adam de Boor make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. + +PSD:12-2 PMake -- A Tutorial 2.1. Dependency Lines As mentioned in the introduction, in any system, there are dependencies between the files that make up thesystem. For instance, in a program made up of several C source files and one header file, the C files will + +need to be re-compiled should the header file be changed. For a document of several chapters and onemacro file, the chapters will need to be reprocessed if any of the macros changes. These are dependencies and are specified by means of dependency lines in the makefile. On a dependency line, there are targets and sources, separated by a one- or two-character operator. The tar-gets ``depend'' on the sources and are usually created from them. Any number of targets and sources may + +be specified on a dependency line. All the targets in the line are made to depend on all the sources. Targetsand sources need not be actual files, but every source must be either an actual file or another target in the makefile. If you run out of room, use a backslash at the end of the line to continue onto the next one. Any file may be a target and any file may be a source, but the relationship between the two (or howevermany) is determined by the ``operator'' that separates them. Three types of operators exist: one specifies + +that the datedness of a target is determined by the state of its sources, while another specifies other files (thesources) that need to be dealt with before the target can be re-created. The third operator is very similar to the first, with the additional condition that the target is out-of-date if it has no sources. These operations arerepresented by the colon, the exclamation point and the double-colon, respectively, and are mutually exclusive. Their exact semantics are as follows: : If a colon is used, a target on the line is considered to be ``out-of-date'' (and in need of creation) if + +* any of the sources has been modified more recently than the target, or + +* the target doesn't exist. Under this operation, steps will be taken to re-create the target only if it is found to be out-of-date byusing these two rules. + +! If an exclamation point is used, the target will always be re-created, but this will not happen until allof its sources have been examined and re-created, if necessary. :: If a double-colon is used, a target is out-of-date if: + +* any of the sources has been modified more recently than the target, or + +* the target doesn't exist, or + +* the target has no sources. If the target is out-of-date according to these rules, it will be re-created. This operator also doessomething else to the targets, but I'll go into that in the next section (``Shell Commands''). + +Enough words, now for an example. Take that C program I mentioned earlier. Say there are three C files( + +a.c, b.c and c.c) each of which includes the file defs.h. The dependencies between the files couldthen be expressed as follows: + +program : a.o b.o c.o a.o b.o c.o : defs.h a.o : a.c b.o : b.c c.o : c.c + +You may be wondering at this point, where a.o, b.o and c.o came in and why they depend on defs.hand the C files don't. The reason is quite simple: + +program cannot be made by linking together .c files -- itmust be made from .o files. Likewise, if you change + +defs.h, it isn't the .c files that need to be re-created,it's the .o files. If you think of dependencies in these terms -- which files (targets) need to be created from + +which files (sources) -- you should have no problems. An important thing to notice about the above example, is that all the .o files appear as targets on more thanone line. This is perfectly all right: the target is made to depend on all the sources mentioned on all the + +dependency lines. E.g. a.o depends on both defs.h and a.c. + +PMake -- A Tutorial PSD:12-3 NOTE The order of the dependency lines in the makefile is important: the first target on the first dependency line + +in the makefile will be the one that gets made if you don't say otherwise. That's why program comes firstin the example makefile, above. + +Both targets and sources may contain the standard C-Shell wildcard characters ({, }, *, ?, [, and ]), butthe non-curly-brace ones may only appear in the final component (the file portion) of the target or source. The characters mean the following things: {} These enclose a comma-separated list of options and cause the pattern to be expanded once for eachelement of the list. Each expansion contains a different element. For example, + +src/{whiffle,beep,fish}.c expands to the three words src/whiffle.c, src/beep.c, and src/fish.c. These braces may be nested and, unlike the other wildcard characters, the resultingwords need not be actual files. All other wildcard characters are expanded using the files that exist + +when PMake is started. * This matches zero or more characters of any sort. src/*.c will expand to the same three words asabove as long as + +src contains those three files (and no other files that end in .c). + +? Matches any single character. [] This is known as a character class and contains either a list of single characters, or a series of charac-ter ranges ( + +a-z, for example means all characters between a and z), or both. It matches any singlecharacter contained in the list. E.g. + +[A-Za-z] will match all letters, while [0123456789] willmatch all numbers. + +2.2. Shell Commands ``Isn't that nice,'' you say to yourself, ``but how are files actually `re-created,' as he likes to spell it?'' There-creation is accomplished by commands you place in the makefile. These commands are passed to the + +Bourne shell (better known as ``/bin/sh'') to be executed and are expected to do what's necessary to updatethe target file (PMake doesn't actually check to see if the target was created. It just assumes it's there). + +Shell commands in a makefile look a lot like shell commands you would type at a terminal, with one impor-tant exception: each command in a makefile + +must be preceded by at least one tab. + +Each target has associated with it a shell script made up of one or more of these shell commands. The cre-ation script for a target should immediately follow the dependency line for that target. While any giv en target may appear on more than one dependency line, only one of these dependency lines may be followed bya creation script, unless the `::' operator was used on the dependency line. NOTE + +If the double-colon was used, each dependency line for the target may be followed by a shell script. Thatscript will only be executed if the target on the associated dependency line is out-of-date with respect to the + +sources on that line, according to the rules I gav e earlier. I'll giv e you a good example of this later on. To expand on the earlier makefile, you might add commands as follows: + +program : a.o b.o c.o + +cc a.o b.o c.o -o program a.o b.o c.o : defs.h a.o : a.c + +cc -c a.c b.o : b.c + +cc -c b.c c.o : c.c + +cc -c c.c + +Something you should remember when writing a makefile is, the commands will be executed if the targeton the dependency line is out-of-date, not the sources. In this example, the command `` + +cc -c a.c'' willbe executed if a.o is out-of-date. Because of the `:' operator, this means that should a.c or defs.h havebeen modified more recently than + +a.o, the command will be executed (a.o will be considered out-of-date). + +PSD:12-4 PMake -- A Tutorial Remember how I said the only difference between a makefile shell command and a regular shell commandwas the leading tab? I lied. There is another way in which makefile commands differ from regular ones. The first two characters after the initial whitespace are treated specially. If they are any combination of `@'and `-', they cause PMake to do different things. + +In most cases, shell commands are printed before they're actually executed. This is to keep you informed ofwhat's going on. If an `@' appears, however, this echoing is suppressed. In the case of an + +echo command,say `` echo Linking index,'' it would be rather silly to see + +echo Linking index Linking index + +so PMake allows you to place an `@' before the command (``@echo Linking index'') to prevent thecommand from being printed. + +The other special character is the `-'. In case you didn't know, shell commands finish with a certain ``exitstatus.'' This status is made available by the operating system to whatever program invoked the command. Normally this status will be 0 if everything went ok and non-zero if something went wrong. For this reason,PMake will consider an error to have occurred if one of the shells it invokes returns a non-zero status. When it detects an error, PMake's usual action is to abort whatever it's doing and exit with a non-zero sta-tus itself (any other targets that were being created will continue being made, but nothing new will be started. PMake will exit after the last job finishes). This behavior can be altered, however, by placing a `-'at the front of a command (`` + +-mv index index.old''), certain command-line arguments, or doingother things, to be detailed later. In such a case, the non-zero status is simply ignored and PMake keeps + +chugging along.NOTE Because all the commands are given to a single shell to execute, such things as setting shell variables,changing directories, etc., last beyond the command in which they are found. This also allows shell compound commands (like for loops) to be entered in a natural manner. Since this could cause problems forsome makefiles that depend on each command being executed by a single shell, PMake has a -B flag (it stands for backwards-compatible) that forces each command to be given to a separate shell. It also doesseveral other things, all of which I discourage since they are now old-fashioned. . . . NOTE + +A target's shell script is fed to the shell on its (the shell's) input stream. This means that any commands,such as + +ci that need to get input from the terminal won't work right -- they'll get the shell's input, some-thing they probably won't find to their liking. A simple way around this is to give a command like this: + +ci $(SRCS) < /dev/tty This would force the program's input to come from the terminal. If you can't do this for some reason, youronly other alternative is to use PMake in its fullest compatibility mode. See Compatibility in chapter 4. + +2.3. Variables PMake, like Make before it, has the ability to save text in variables to be recalled later at your convenience.Variables in PMake are used much like variables in the shell and, by tradition, consist of all upper-case letters (you don't have to use all upper-case letters. In fact there's nothing to stop you from calling a variable @^&$%$. Just tradition). Variables are assigned-to using lines of the form + +VARIABLE = value appended-to by + +VARIABLE += value conditionally assigned-to (if the variable isn't already defined) by + +VARIABLE ?= value and assigned-to with expansion (i.e. the value is expanded (see below) before being assigned to the vari-able--useful for placing a value at the beginning of a variable, or other things) by + +PMake -- A Tutorial PSD:12-5 + +VARIABLE := value Any whitespace before value is stripped off. When appending, a space is placed between the old value andthe stuff being appended. + +The final way a variable may be assigned to is using + +VARIABLE != shell-command In this case, shell-command has all its variables expanded (see below) and is passed off to a shell toexecute. The output of the shell is then placed in the variable. Any newlines (other than the final one) are + +replaced by spaces before the assignment is made. This is typically used to find the current directory via aline like: + +CWD != pwd Note: this is intended to be used to execute commands that produce small amounts of output (e.g. ``pwd'').The implementation is less than intelligent and will likely freeze if you execute something that produces + +thousands of bytes of output (8 Kb is the limit on many UNIX systems). The value of a variable may be retrieved by enclosing the variable name in parentheses or curly braces andpreceding the whole thing with a dollar sign. + +For example, to set the variable CFLAGS to the string ``-I/sprite/src/lib/libc -O,'' you wouldplace a line + +CFLAGS = -I/sprite/src/lib/libc -O in the makefile and use the word $(CFLAGS) wherever you would like the string -I/sprite/src/lib/libc -O to appear. This is called variable expansion.NOTE + +Unlike Make, PMake will not expand a variable unless it knows the variable exists. E.g. if you have a ${i}in a shell command and you have not assigned a value to the variable + +i (the empty string is considered avalue, by the way), where Make would have substituted the empty string, PMake will leave the + +${i}alone. To keep PMake from substituting for a variable it knows, precede the dollar sign with another dollar + +sign. (e.g. to pass ${HOME} to the shell, use $${HOME}). This causes PMake, in effect, to expand the $macro, which expands to a single + +$. For compatibility, Make's style of variable expansion will be used ifyou invoke PMake with any of the compatibility flags (-V, -B or -M. The -V flag alters just the variable + +expansion). There are two different times at which variable expansion occurs: When parsing a dependency line, theexpansion occurs immediately upon reading the line. If any variable used on a dependency line is undefined, PMake will print a message and exit. Variables in shell commands are expanded when the commandis executed. Variables used inside another variable are expanded whenever the outer variable is expanded (the expansion of an inner variable has no effect on the outer variable. I.e. if the outer variable is used on adependency line and in a shell command, and the inner variable changes value between when the dependency line is read and the shell command is executed, two different values will be substituted for the outervariable). + +Variables come in four flavors, though they are all expanded the same and all look about the same. They are(in order of expanding scope): + +* Local variables. + +* Command-line variables. + +* Global variables. + +* Environment variables. The classification of variables doesn't matter much, except that the classes are searched from the top (local)to the bottom (environment) when looking up a variable. The first one found wins. + +PSD:12-6 PMake -- A Tutorial 2.3.1. Local Variables Each target can have as many as sev en local variables. These are variables that are only ``visible'' withinthat target's shell script and contain such things as the target's name, all of its sources (from all its dependency lines), those sources that were out-of-date, etc. Four local variables are defined for all targets. Theyare: + +.TARGETThe name of the target. .OODATEThe list of the sources for the target that were considered out-of-date. The order in the list is + +not guaranteed to be the same as the order in which the dependencies were given. .ALLSRCThe list of all sources for this target in the order in which they were given. + +.PREFIXThe target without its suffix and without any leading path. E.g. for the target + +../../lib/compat/fsRead.c, this variable would contain fsRead. Three other local variables are set only for certain targets under special circumstances. These are the``.IMPSRC,'' ``.ARCHIVE,'' and ``.MEMBER'' variables. When they are set and how they are used is + +described later. Four of these variables may be used in sources as well as in shell scripts. These are ``.TARGET'', ``.PRE-FIX'', ``.ARCHIVE'' and ``.MEMBER''. The variables in the sources are expanded once for each target on + +the dependency line, providing what is known as a ``dynamic source,'' allowing you to specify severaldependency lines at once. For example, + +$(OBJS) : $(.PREFIX).c will create a dependency between each object file and its corresponding C source file. + +2.3.2. Command-line Variables Command-line variables are set when PMake is first invoked by giving a variable assignment as one of thearguments. For example, + +pmake "CFLAGS = -I/sprite/src/lib/libc -O" would make CFLAGS be a command-line variable with the given value. Any assignments to CFLAGS in themakefile will have no effect, because once it is set, there is (almost) nothing you can do to change a command-line variable (the search order, you see). Command-line variables may be set using any of the fourassignment operators, though only + += and ?= behave as you would expect them to, mostly because assign-ments to command-line variables are performed before the makefile is read, thus the values set in the makefile are unavailable at the time. += is the same as =, because the old value of the variable is sought only inthe scope in which the assignment is taking place (for reasons of efficiency that I won't get into here). + +:=and ?= will work if the only variables used are in the environment. != is sort of pointless to use from thecommand line, since the same effect can no doubt be accomplished using the shell's own command substitution mechanisms (backquotes and all that). 2.3.3. Global Variables Global variables are those set or appended-to in the makefile. There are two classes of global variables:those you set and those PMake sets. As I said before, the ones you set can have any name you want them to + +have, except they may not contain a colon or an exclamation point. The variables PMake sets (almost)always begin with a period and always contain upper-case letters, only. The variables are as follows: + +.PMAKEThe name by which PMake was invoked is stored in this variable. For compatibility, the name + +is also stored in the MAKE variable. + +PMake -- A Tutorial PSD:12-7 + +.MAKEFLAGSAll the relevant flags with which PMake was invoked. This does not include such things as -f + +or variable assignments. Again for compatibility, this value is stored in the MFLAGS variableas well. + +Tw o other variables, ``.INCLUDES'' and ``.LIBS,'' are covered in the section on special targets in chapter3. Global variables may be deleted using lines of the form: + +#undef variable The `#' must be the first character on the line. Note that this may only be done on global variables. + +2.3.4. Environment Variables Environment variables are passed by the shell that invoked PMake and are given by PMake to each shell itinvokes. They are expanded like any other variable, but they cannot be altered in any way. + +One special environment variable, PMAKE, is examined by PMake for command-line flags, variable assign-ments, etc., it should always use. This variable is examined before the actual arguments to PMake are. In addition, all flags given to PMake, either through the PMAKE variable or on the command line, are placed inthis environment variable and exported to each shell PMake executes. Thus recursive inv ocations of PMake automatically receive the same flags as the top-most one. Using all these variables, you can compress the sample makefile even more: + +OBJS = a.o b.o c.o program : $(OBJS) + +cc $(.ALLSRC) -o $(.TARGET) $(OBJS) : defs.h a.o : a.c + +cc -c a.c b.o : b.c + +cc -c b.c c.o : c.c + +cc -c c.c + +2.4. Comments Comments in a makefile start with a `#' character and extend to the end of the line. They may appear any-where you want them, except in a shell command (though the shell will treat it as a comment, too). If, for + +some reason, you need to use the `#' in a variable or on a dependency line, put a backslash in front of it.PMake will compress the two into a single `#' (Note: this isn't true if PMake is operating in full-compatibility mode). 2.5. ParallelismNOTE PMake was specifically designed to re-create several targets at once, when possible. You do not have to doanything special to cause this to happen (unless PMake was configured to not act in parallel, in which case + +you will have to make use of the -L and -J flags (see below)), but you do have to be careful at times. There are several problems you are likely to encounter. One is that some makefiles (and programs) are writ-ten in such a way that it is impossible for two targets to be made at once. The program + +xstr, for example,always modifies the files strings and x.c. There is no way to change it. Thus you cannot run two ofthem at once without something being trashed. Similarly, if you have commands in the makefile that always + +send output to the same file, you will not be able to make more than one target at once unless you changethe file you use. You can, for instance, add a + +$$$$ to the end of the file name to tack on the process ID ofthe shell executing the command (each $$ expands to a single $, thus giving you the shell variable $$).Since only one shell is used for all the commands, you'll get the same file name for each command in the + +script. + +PSD:12-8 PMake -- A Tutorial The other problem comes from improperly-specified dependencies that worked in Make because of itssequential, depth-first way of examining them. While I don't want to go into depth on how PMake works (look in chapter 4 if you're interested), I will warn you that files in two different ``levels'' of the depen-dency tree may be examined in a different order in PMake than they were in Make. For example, given the makefile + +a : b c b : d + +PMake will examine the targets in the order c, d, b, a. If the makefile's author expected PMake to abortbefore making + +c if an error occurred while making b, or if b needed to exist before c was made, s/he willbe sorely disappointed. The dependencies are incomplete, since in both these cases, + +c would depend on b.So watch out. + +Another problem you may face is that, while PMake is set up to handle the output from multiple jobs in agraceful fashion, the same is not so for input. It has no way to regulate input to different jobs, so if you use the redirection from /dev/tty I mentioned earlier, you must be careful not to run two of the jobs at once. 2.6. Writing and Debugging a Makefile Now you know most of what's in a makefile, what do you do next? There are two choices: (1) use one ofthe uncommonly-available makefile generators or (2) write your own makefile (I leave out the third choice + +of ignoring PMake and doing everything by hand as being beyond the bounds of common sense). When faced with the writing of a makefile, it is usually best to start from first principles: just what are youtrying to do? What do you want the makefile finally to produce? + +To begin with a somewhat traditional example, let's say you need to write a makefile to create a program, expr, that takes standard infix expressions and converts them to prefix form (for no readily apparent rea-son). You've got three source files, in C, that make up the program: + +main.c, parse.c, and output.c.Harking back to my pithy advice about dependency lines, you write the first line of the file: + +expr : main.o parse.o output.o because you remember expr is made from .o files, not .c files. Similarly for the .o files you produce thelines: + +main.o : main.c parse.o : parse.c output.o : output.c main.o parse.o output.o : defs.h + +Great. You've now got the dependencies specified. What you need now is commands. These commands,remember, must produce the target on the dependency line, usually by using the sources you've listed. You + +remember about local variables? Good, so it should come to you as no surprise when you write + +expr : main.o parse.o output.o + +cc -o $(.TARGET) $(.ALLSRC) + +Why use the variables? If your program grows to produce postfix expressions too (which, of course,requires a name change or two), it is one fewer place you have to change the file. You cannot do this for the + +object files, however, because they depend on their corresponding source files and defs.h, thus if yousaid + +cc -c $(.ALLSRC) you'd get (for main.o): + +cc -c main.c defs.h which is wrong. So you round out the makefile with these lines: + +PMake -- A Tutorial PSD:12-9 + +main.o : main.c + +cc -c main.c parse.o : parse.c + +cc -c parse.c output.o : output.c + +cc -c output.c + +The makefile is now complete and will, in fact, create the program you want it to without unnecessary com-pilations or excessive typing on your part. There are two things wrong with it, however (aside from it being + +altogether too long, something I'll address in chapter 3): 1) The string ``main.o parse.o output.o'' is repeated twice, necessitating two changes whenyou add postfix (you were planning on that, weren't you?). This is in direct violation of de Boor's + +First Rule of writing makefiles: Anything that needs to be written more than once should be placed in a variable. I cannot emphasize this enough as being very important to the maintenance of a makefile and its pro-gram. + +2) There is no way to alter the way compilations are performed short of editing the makefile and makingthe change in all places. This is evil and violates de Boor's Second Rule, which follows directly from + +the first: Any flags or programs used inside a makefile should be placed in a variable so they may be changed, temporarily or permanently, with the greatest ease. + +The makefile should more properly read: + +OBJS = main.o parse.o output.o expr : $(OBJS) + +$(CC) $(CFLAGS) -o $(.TARGET) $(.ALLSRC) main.o : main.c + +$(CC) $(CFLAGS) -c main.c parse.o : parse.c + +$(CC) $(CFLAGS) -c parse.c output.o : output.c + +$(CC) $(CFLAGS) -c output.c $(OBJS) : defs.h + +Alternatively, if you like the idea of dynamic sources mentioned in section 2.3.1, you could write it likethis: + +OBJS = main.o parse.o output.o expr : $(OBJS) + +$(CC) $(CFLAGS) -o $(.TARGET) $(.ALLSRC) $(OBJS) : $(.PREFIX).c defs.h + +$(CC) $(CFLAGS) -c $(.PREFIX).c + +These two rules and examples lead to de Boor's First Corollary: + +Variables are your friends. Once you've written the makefile comes the sometimes-difficult task of making sure the darn thing works.Your most helpful tool to make sure the makefile is at least syntactically correct is the -n flag, which allows + +you to see if PMake will choke on the makefile. The second thing the -n flag lets you do is see what PMakewould do without it actually doing it, thus you can make sure the right commands would be executed were you to give PMake its head. When you find your makefile isn't behaving as you hoped, the first question that comes to mind (after``What time is it, anyway?'') is ``Why not?'' In answering this, two flags will serve you well: `` + +-d m'' and`` -p 2.'' The first causes PMake to tell you as it examines each target in the makefile and indicate why itis deciding whatever it is deciding. You can then use the information printed for other targets to see where + +PSD:12-10 PMake -- A Tutorial you went wrong. The ``-p 2'' flag makes PMake print out its internal state when it is done, allowing youto see that you forgot to make that one chapter depend on that file of macros you just got a new version of. The output from ``-p 2'' is intended to resemble closely a real makefile, but with additional informationprovided and with variables expanded in those commands PMake actually printed or executed. + +Something to be especially careful about is circular dependencies. E.g. + +a : b b : c d d : a + +In this case, because of how PMake works, c is the only thing PMake will examine, because d and a willeffectively fall off the edge of the universe, making it impossible to examine + +b (or them, for that matter).PMake will tell you (if run in its normal mode) all the targets involved in any cycle it looked at (i.e. if you + +have two cycles in the graph (naughty, naughty), but only try to make a target in one of them, PMake willonly tell you about that one. You'll have to try to make the other to find the second cycle). When run as Make, it will only print the first target in the cycle. 2.7. Invoking PMake PMake comes with a wide variety of flags to choose from. They may appear in any order, interspersed withcommand-line variable assignments and targets to create. The flags are as follows: + +-d whatThis causes PMake to spew out debugging information that may prove useful to you. If you can't figure out why PMake is doing what it's doing, you might try using this flag. The what parameter is astring of single characters that tell PMake what aspects you are interested in. Most of what I describe will make little sense to you, unless you've dealt with Make before. Just remember where this table isand come back to it as you read on. The characters and the information they produce are as follows: + +a Archive searching and caching. c Conditional evaluation. d The searching and caching of directories. j Various snippets of information related to the running of the multiple shells. Not particularlyinteresting. + +m The making of each target: what target is being examined; when it was last modified; whetherit is out-of-date; etc. p Makefile parsing. r Remote execution. s The application of suffix-transformation rules. (See chapter 3) t The maintenance of the list of targets. v Variable assignment. Of these all, the m and s letters will be most useful to you. If the -d is the final argument or the argu-ment from which it would get these key letters (see below for a note about which argument would be + +used) begins with a -, all of these debugging flags will be set, resulting in massive amounts of output. -f makefileSpecify a makefile to read different from the standard makefiles ( + +Makefile or makefile). If makefile is ``-'', PMake uses the standard input. This is useful for making quick and dirty make-files. . . + +-h Prints out a summary of the various flags PMake accepts. It can also be used to find out what level ofconcurrency was compiled into the version of PMake you are using (look at -J and -L) and various + +other information on how PMake was configured. -i If you give this flag, PMake will ignore non-zero status returned by any of its shells. It's like placinga `-' before all the commands in the makefile. + +PMake -- A Tutorial PSD:12-11 -k This is similar to -i in that it allows PMake to continue when it sees an error, but unlike -i, wherePMake continues blithely as if nothing went wrong, -k causes it to recognize the error and only continue work on those things that don't depend on the target, either directly or indirectly (throughdepending on something that depends on it), whose creation returned the error. The `k' is for ``keep going''. . . -l PMake has the ability to lock a directory against other people executing it in the same directory (bymeans of a file called ``LOCK.make'' that it creates and checks for in the directory). This is a Good + +Thing because two people doing the same thing in the same place can be disastrous for the final prod-uct (too many cooks and all that). Whether this locking is the default is up to your system administrator. If locking is on, -l will turn it off, and vice versa. Note that this locking will not prevent youfrom invoking PMake twice in the same place -- if you own the lock file, PMake will warn you about it but continue to execute. -m directoryTells PMake another place to search for included makefiles via the <...> style. Several -m options + +can be given to form a search path. If this construct is used the default system makefile search path iscompletely overridden. To be explained in chapter 3, section 3.2. + +-n This flag tells PMake not to execute the commands needed to update the out-of-date targets in themakefile. Rather, PMake will simply print the commands it would have executed and exit. This is + +particularly useful for checking the correctness of a makefile. If PMake doesn't do what you expect itto, it's a good chance the makefile is wrong. + +-p numberThis causes PMake to print its input in a reasonable form, though not necessarily one that would + +make immediate sense to anyone but me. The number is a bitwise-or of 1 and 2 where 1 means itshould print the input before doing any processing and 2 says it should print it after everything has been re-created. Thus -p 3 would print it twice--once before processing and once after (you mightfind the difference between the two interesting). This is mostly useful to me, but you may find it informative in some bizarre circumstances. -q If you give PMake this flag, it will not try to re-create anything. It will just see if anything is out-of-date and exit non-zero if so. + +-r When PMake starts up, it reads a default makefile that tells it what sort of system it's on and gives itsome idea of what to do if you don't tell it anything. I'll tell you about it in chapter 3. If you give this + +flag, PMake won't read the default makefile. -s This causes PMake to not print commands before they're executed. It is the equivalent of putting an`@' before every command in the makefile. + +-t Rather than try to re-create a target, PMake will simply ``touch'' it so as to make it appear up-to-date.If the target didn't exist before, it will when PMake finishes, but if the target did exist, it will appear + +to have been updated. -v This is a mixed-compatibility flag intended to mimic the System V version of Make. It is the same asgiving -B, and -V as well as turning off directory locking. Targets can still be created in parallel, + +however. This is the mode PMake will enter if it is invoked either as ``smake'' or ``vmake''. -x This tells PMake it's ok to export jobs to other machines, if they're available. It is used when runningin Make mode, as exporting in this mode tends to make things run slower than if the commands were + +just executed locally. -B Forces PMake to be as backwards-compatible with Make as possible while still being itself. Thisincludes: + +* Executing one shell per shell command + +* Expanding anything that looks even vaguely like a variable, with the empty string replacing anyvariable PMake doesn't know. + +* Refusing to allow you to escape a `#' with a backslash. + +PSD:12-12 PMake -- A Tutorial + +* Permitting undefined variables on dependency lines and conditionals (see below). Normally thiscauses PMake to abort. -C This nullifies any and all compatibility mode flags you may have giv en or implied up to the time the-C is encountered. It is useful mostly in a makefile that you wrote for PMake to avoid bad things + +happening when someone runs PMake as ``make'' or has things set in the environment that tell it tobe compatible. -C is + +not placed in the PMAKE environment variable or the .MAKEFLAGS or MFLAGS global variables. + +-D variableAllows you to define a variable to have `` + +1'' as its value. The variable is a global variable, not a com-mand-line variable. This is useful mostly for people who are used to the C compiler arguments and + +those using conditionals, which I'll get into in section 4.3 -I directoryTells PMake another place to search for included makefiles. Yet another thing to be explained in + +chapter 3 (section 3.2, to be precise). -J numberGives the absolute maximum number of targets to create at once on both local and remote machines. + +-L numberThis specifies the maximum number of targets to create on the local machine at once. This may be 0, + +though you should be wary of doing this, as PMake may hang until a remote machine becomes avail-able, if one is not available when it is started. + +-M This is the flag that provides absolute, complete, full compatibility with Make. It still allows you touse all but a few of the features of PMake, but it is non-parallel. This is the mode PMake enters if you + +call it ``make.'' -P When creating targets in parallel, several shells are executing at once, each wanting to write its owntwo cent's-worth to the screen. This output must be captured by PMake in some way in order to prevent the screen from being filled with garbage even more indecipherable than you usually see. PMakehas two ways of doing this, one of which provides for much cleaner output and a clear separation between the output of different jobs, the other of which provides a more immediate response so onecan tell what is really happening. The former is done by notifying you when the creation of a target starts, capturing the output and transferring it to the screen all at once when the job finishes. The lat-ter is done by catching the output of the shell (and its children) and buffering it until an entire line is received, then printing that line preceded by an indication of which job produced the output. Since Iprefer this second method, it is the one used by default. The first method will be used if you give the -P flag to PMake. -V As mentioned before, the -V flag tells PMake to use Make's style of expanding variables, substitut-ing the empty string for any variable it doesn't know. + +-W There are several times when PMake will print a message at you that is only a warning, i.e. it cancontinue to work in spite of your having done something silly (such as forgotten a leading tab for a + +shell command). Sometimes you are well aware of silly things you have done and would like PMaketo stop bothering you. This flag tells it to shut up about anything non-fatal. + +-X This flag causes PMake to not attempt to export any jobs to another machine. Several flags may follow a single `-'. Those flags that require arguments take them from successive param-eters. E.g. + +pmake -fDnI server.mk DEBUG /chip2/X/server/include will cause PMake to read server.mk as the input makefile, define the variable DEBUG as a global vari-able and look for included makefiles in the directory + +/chip2/X/server/include. + +2.8. Summary A makefile is made of four types of lines: + +PMake -- A Tutorial PSD:12-13 + +* Dependency lines + +* Creation commands + +* Variable assignments + +* Comments, include statements and conditional directives A dependency line is a list of one or more targets, an operator (`:', `::', or `!'), and a list of zero or moresources. Sources may contain wildcards and certain local variables. + +A creation command is a regular shell command preceded by a tab. In addition, if the first two charactersafter the tab (and other whitespace) are a combination of ` + +@' or `-', PMake will cause the command to notbe printed (if the character is ` @') or errors from it to be ignored (if `-'). A blank line, dependency line orvariable assignment terminates a creation script. There may be only one creation script for each target with + +a `:' or `!' operator. Variables are places to store text. They may be unconditionally assigned-to using the `=' operator,appended-to using the ` + ++=' operator, conditionally (if the variable is undefined) assigned-to with the `?='operator, and assigned-to with variable expansion with the ` + +:=' operator. The output of a shell commandmay be assigned to a variable using the ` !=' operator. Variables may be expanded (their value inserted) byenclosing their name in parentheses or curly braces, preceded by a dollar sign. A dollar sign may be + +escaped with another dollar sign. Variables are not expanded if PMake doesn't know about them. There areseven local variables: + +.TARGET, .ALLSRC, .OODATE, .PREFIX, .IMPSRC, .ARCHIVE, and .MEMBER. Four of them (.TARGET, .PREFIX, .ARCHIVE, and .MEMBER) may be used to specify ``dynamicsources.'' Variables are good. Know them. Love them. Live them. + +Debugging of makefiles is best accomplished using the -n, -d m, and -p 2 flags. 2.9. Exercises TBA + +3. Short-cuts and Other Nice Things Based on what I've told you so far, you may have gotten the impression that PMake is just a way of storingaw ay commands and making sure you don't forget to compile something. Good. That's just what it is. + +However, the ways I've described have been inelegant, at best, and painful, at worst. This chapter containsthings that make the writing of makefiles easier and the makefiles themselves shorter and easier to modify (and, occasionally, simpler). In this chapter, I assume you are somewhat more familiar with Sprite (orUNIX, if that's what you're using) than I did in chapter 2, just so you're on your toes. So without further ado... 3.1. Transformation Rules As you know, a file's name consists of two parts: a base name, which gives some hint as to the contents ofthe file, and a suffix, which usually indicates the format of the file. Over the years, as + +UNIX(R) has devel-oped, naming conventions, with regard to suffixes, have also developed that have become almost as incontrovertible as Law. E.g. a file ending in .c is assumed to contain C source code; one with a .o suffix isassumed to be a compiled, relocatable object file that may be linked into any program; a file with a + +.mssuffix is usually a text file to be processed by Troff with the -ms macro package, and so on. One of the best + +aspects of both Make and PMake comes from their understanding of how the suffix of a file pertains to itscontents and their ability to do things with a file based solely on its suffix. This ability comes from something known as a transformation rule. A transformation rule specifies how to change a file with one suffixinto a file with another suffix. + +A transformation rule looks much like a dependency line, except the target is made of two known suffixesstuck together. Suffixes are made known to PMake by placing them as sources on a dependency line whose target is the special target .SUFFIXES. E.g. + +PSD:12-14 PMake -- A Tutorial + +.SUFFIXES : .o .c .c.o : + +$(CC) $(CFLAGS) -c $(.IMPSRC) + +The creation script attached to the target is used to transform a file with the first suffix (in this case, .c) intoa file with the second suffix (here, + +.o). In addition, the target inherits whatever attributes have been appliedto the transformation rule. The simple rule given above says that to transform a C source file into an object + +file, you compile it using cc with the -c flag. This rule is taken straight from the system makefile. Manytransformation rules (and suffixes) are defined there, and I refer you to it for more examples (type `` + +pmake -h'' to find out where it is). + +There are several things to note about the transformation rule given above: + +1) The .IMPSRC variable. This variable is set to the ``implied source'' (the file from which thetarget is being created; the one with the first suffix), which, in this case, is the .c file. + +2) The CFLAGS variable. Almost all of the transformation rules in the system makefile are set upusing variables that you can alter in your makefile to tailor the rule to your needs. In this case, + +if you want all your C files to be compiled with the -g flag, to provide information for dbx,you would set the + +CFLAGS variable to contain -g (``CFLAGS = -g'') and PMake would takecare of the rest. + +To giv e you a quick example, the makefile in 2.3.4 could be changed to this: + +OBJS = a.o b.o c.o program : $(OBJS) + +$(CC) -o $(.TARGET) $(.ALLSRC) $(OBJS) : defs.h + +The transformation rule I gav e above takes the place of the 6 lines1 + +a.o : a.c + +cc -c a.c b.o : b.c + +cc -c b.c c.o : c.c + +cc -c c.c + +Now you may be wondering about the dependency between the .o and .c files -- it's not mentioned any-where in the new makefile. This is because it isn't needed: one of the effects of applying a transformation + +rule is the target comes to depend on the implied source. That's why it's called the implied source. For a more detailed example. Say you have a makefile like this: + +a.out : a.o b.o + +$(CC) $(.ALLSRC) + +and a directory set up like this: + +total 4 -rw-rw-r-- 1 deboor 34 Sep 7 00:43 Makefile -rw-rw-r-- 1 deboor 119 Oct 3 19:39 a.c -rw-rw-r-- 1 deboor 201 Sep 7 00:43 a.o -rw-rw-r-- 1 deboor 69 Sep 7 00:43 b.c + +While just typing ``pmake'' will do the right thing, it's much more informative to type ``pmake -d s''.This will show you what PMake is up to as it processes the files. In this case, PMake prints the following: + +1 This is also somewhat cleaner, I think, than the dynamic source solution presented in 2.6 + +PMake -- A Tutorial PSD:12-15 + +Suff_FindDeps (a.out) + +using existing source a.o applying .o -> .out to "a.o" Suff_FindDeps (a.o) + +trying a.c...got it applying .c -> .o to "a.c" Suff_FindDeps (b.o) + +trying b.c...got it applying .c -> .o to "b.c" Suff_FindDeps (a.c) + +trying a.y...not there trying a.l...not there trying a.c,v...not there trying a.y,v...not there trying a.l,v...not there Suff_FindDeps (b.c) + +trying b.y...not there trying b.l...not there trying b.c,v...not there trying b.y,v...not there trying b.l,v...not there --- a.o --- cc -c a.c --- b.o --- cc -c b.c --- a.out --- cc a.o b.o + +Suff_FindDeps is the name of a function in PMake that is called to check for implied sources for a tar-get using transformation rules. The transformations it tries are, naturally enough, limited to the ones that + +have been defined (a transformation may be defined multiple times, by the way, but only the most recentone will be used). You will notice, however, that there is a definite order to the suffixes that are tried. This order is set by the relative positions of the suffixes on the .SUFFIXES line -- the earlier a suffix appears,the earlier it is checked as the source of a transformation. Once a suffix has been defined, the only way to change its position in the pecking order is to remove all the suffixes (by having a .SUFFIXES dependencyline with no sources) and redefine them in the order you want. (Previously-defined transformation rules will be automatically redefined as the suffixes they inv olve are re-entered.) Another way to affect the search order is to make the dependency explicit. In the above example, a.outdepends on + +a.o and b.o. Since a transformation exists from .o to .out, PMake uses that, as indicatedby the `` using existing source a.o'' message. + +The search for a transformation starts from the suffix of the target and continues through all the definedtransformations, in the order dictated by the suffix ranking, until an existing file with the same base (the target name minus the suffix and any leading directories) is found. At that point, one or more transformationrules will have been found to change the one existing file into the target. + +For example, ignoring what's in the system makefile for now, say you have a makefile like this: + +PSD:12-16 PMake -- A Tutorial + +.SUFFIXES : .out .o .c .y .l .l.c : + +lex $(.IMPSRC) mv lex.yy.c $(.TARGET) .y.c : + +yacc $(.IMPSRC) mv y.tab.c $(.TARGET) .c.o : + +cc -c $(.IMPSRC) .o.out : + +cc -o $(.TARGET) $(.IMPSRC) + +and the single file jive.l. If you were to type ``pmake -rd ms jive.out,'' you would get the fol-lowing output for + +jive.out: + +Suff_FindDeps (jive.out) + +trying jive.o...not there trying jive.c...not there trying jive.y...not there trying jive.l...got it applying .l -> .c to "jive.l" applying .c -> .o to "jive.c" applying .o -> .out to "jive.o" + +and this is why: PMake starts with the target jive.out, figures out its suffix (.out) and looks for thingsit can transform to a + +.out file. In this case, it only finds .o, so it looks for the file jive.o. It fails to findit, so it looks for transformations into a + +.o file. Again it has only one choice: .c. So it looks for jive.cand, as you know, fails to find it. At this point it has two choices: it can create the + +.c file from either a .yfile or a .l file. Since .y came first on the .SUFFIXES line, it checks for jive.y first, but can't find it,so it looks for + +jive.l and, lo and behold, there it is. At this point, it has defined a transformation path asfollows: .l o"" .c o"" .o o"" .out and applies the transformation rules accordingly. For completeness, andto give you a better idea of what PMake actually did with this three-step transformation, this is what PMake + +printed for the rest of the process: + +Suff_FindDeps (jive.o) + +using existing source jive.c applying .c -> .o to "jive.c" Suff_FindDeps (jive.c) + +using existing source jive.l applying .l -> .c to "jive.l" Suff_FindDeps (jive.l) Examining jive.l...modified 17:16:01 Oct 4, 1987...up-to-date Examining jive.c...non-existent...out-of-date --- jive.c --- lex jive.l . . . meaningless lex output deleted . . . mv lex.yy.c jive.c Examining jive.o...non-existent...out-of-date --- jive.o --- cc -c jive.c Examining jive.out...non-existent...out-of-date --- jive.out --- cc -o jive.out jive.o + +One final question remains: what does PMake do with targets that have no known suffix? PMake simplypretends it actually has a known suffix and searches for transformations accordingly. The suffix it chooses + +is the source for the .NULL target mentioned later. In the system makefile, .out is chosen as the ``null + +PMake -- A Tutorial PSD:12-17 suffix'' because most people use PMake to create programs. You are, however, free and welcome to changeit to a suffix of your own choosing. The null suffix is ignored, however, when PMake is in compatibility mode (see chapter 4). 3.2. Including Other Makefiles Just as for programs, it is often useful to extract certain parts of a makefile into another file and just includeit in other makefiles somehow. Many compilers allow you say something like + +#include "defs.h" to include the contents of defs.h in the source file. PMake allows you to do the same thing for makefiles,with the added ability to use variables in the filenames. An include directive in a makefile looks either like + +this: + +#include <file> or this + +#include "file" The difference between the two is where PMake searches for the file: the first way, PMake will look for thefile only in the system makefile directory (or directories) (to find out what that directory is, give PMake the + +-h flag). The system makefile directory search path can be overridden via the -m option. For files in dou-ble-quotes, the search is more complex: + +1) The directory of the makefile that's including the file. 2) The current directory (the one in which you invoked PMake). 3) The directories given by you using -I flags, in the order in which you gav e them. 4) Directories given by .PATH dependency lines (see chapter 4). 5) The system makefile directory. in that order. You are free to use PMake variables in the filename--PMake will expand them before searching for the file.You must specify the searching method with either angle brackets or double-quotes + +outside of a variableexpansion. I.e. the following + +SYSTEM = <command.mk> #include $(SYSTEM) won't work. + +3.3. Saving Commands There may come a time when you will want to save certain commands to be executed when everything elseis done. For instance: you're making several different libraries at one time and you want to create the members in parallel. Problem is, ranlib is another one of those programs that can't be run more than once inthe same directory at the same time (each one creates a file called + +__.SYMDEF into which it stuffs infor-mation for the linker to use. Two of them running at once will overwrite each other's file and the result will + +be garbage for both parties). You might want a way to save the ranlib commands til the end so they can berun one after the other, thus keeping them from trashing each other's file. PMake allows you to do this by inserting an ellipsis (``. . .'') as a command between commands to be run at once and those to be run later. So for the ranlib case above, you might do this: + +PSD:12-18 PMake -- A Tutorial + +lib1.a : $(LIB1OBJS) + +rm -f $(.TARGET) ar cr $(.TARGET) $(.ALLSRC) ... ranlib $(.TARGET) + +lib2.a : $(LIB2OBJS) + +rm -f $(.TARGET) ar cr $(.TARGET) $(.ALLSRC) ... ranlib $(.TARGET) + +This would save both + +ranlib $(.TARGET) commands until the end, when they would run one after the other (using the correct value for the .TARGETvariable, of course). + +Commands saved in this manner are only executed if PMake manages to re-create everything without anerror. + +3.4. Target Attributes PMake allows you to give attributes to targets by means of special sources. Like everything else PMakeuses, these sources begin with a period and are made up of all upper-case letters. There are various reasons + +for using them, and I will try to give examples for most of them. Others you'll have to find uses for your-self. Think of it as ``an exercise for the reader.'' By placing one (or more) of these as a source on a dependency line, you are ``marking the target(s) with that attribute.'' That's just the way I phrase it, so you know. Any attributes given as sources for a transformation rule are applied to the target of the transformation rulewhen the rule is applied. + +.DONTCARE If a target is marked with this attribute and PMake can't figure out how to create it, it will + +ignore this fact and assume the file isn't really needed or actually exists and PMake justcan't find it. This may prove wrong, but the error will be noted later on, not when PMake tries to create the target so marked. This attribute also prevents PMake from attempting totouch the target if it is given the -t flag. + +.EXEC This attribute causes its shell script to be executed while having no effect on targets thatdepend on it. This makes the target into a sort of subroutine. An example. Say you have + +some LISP files that need to be compiled and loaded into a LISP process. To do this, youecho LISP commands into a file and execute a LISP with this file as its input when everything's done. Say also that you have to load other files from another system before you cancompile your files and further, that you don't want to go through the loading and dumping unless one of your files has changed. Your makefile might look a little bit like this (remem-ber, this is an educational example, and don't worry about the + +COMPILE rule, all will soonbecome clear, grasshopper): + +PMake -- A Tutorial PSD:12-19 + +system : init a.fasl b.fasl c.fasl + +for i in $(.ALLSRC); do + +echo -n '(load "' >> input echo -n ${i} >> input echo '")' >> input done echo '(dump "$(.TARGET)")' >> input lisp < input + +a.fasl : a.l init COMPILE b.fasl : b.l init COMPILE c.fasl : c.l init COMPILE COMPILE : .USE + +echo '(compile "$(.ALLSRC)")' >> input init : .EXEC + +echo '(load-system)' > input + +.EXEC sources, don't appear in the local variables of targets that depend on them (nor arethey touched if PMake is giv en the -t flag). Note that all the rules, not just that for + +system, include init as a source. This is because none of the other targets can be made until init has been made, thus they depend on it. + +.EXPORT This is used to mark those targets whose creation should be sent to another machine if at allpossible. This may be used by some exportation schemes if the exportation is expensive. You + +should ask your system administrator if it is necessary. .EXPORTSAMETells the export system that the job should be exported to a machine of the same architecture + +as the current one. Certain operations (e.g. running text through nroff) can be performedthe same on any architecture (CPU and operating system type), while others (e.g. compiling a program with cc) must be performed on a machine with the same architecture. Not allexport systems will support this attribute. + +.IGNORE Giving a target the .IGNORE attribute causes PMake to ignore errors from any of the tar-get's commands, as if they all had `-' before them. .INVISIBLE This allows you to specify one target as a source for another without the one affecting theother's local variables. Useful if, say, you have a makefile that creates two programs, one of + +which is used to create the other, so it must exist before the other is created. You could say + +prog1 : $(PROG1OBJS) prog2 MAKEINSTALL prog2 : $(PROG2OBJS) .INVISIBLE MAKEINSTALL + +where MAKEINSTALL is some complex .USE rule (see below) that depends on the .ALLSRC variable containing the right things. Without the .INVISIBLE attribute for prog2,the + +MAKEINSTALL rule couldn't be applied. This is not as useful as it should be, and thesemantics may change (or the whole thing go away) in the not-too-distant future. + +.JOIN This is another way to avoid performing some operations in parallel while permitting every-thing else to be done so. Specifically it forces the target's shell script to be executed only if + +one or more of the sources was out-of-date. In addition, the target's name, in both its .TARGET variable and all the local variables of any target that depends on it, is replaced by thevalue of its + +.ALLSRC variable. As an example, suppose you have a program that has fourlibraries that compile in the same directory along with, and at the same time as, the program. + +You again have the problem with ranlib that I mentioned earlier, only this time it's moresevere: you can't just put the ranlib off to the end since the program will need those libraries before it can be re-created. You can do something like this: + +PSD:12-20 PMake -- A Tutorial + +program : $(OBJS) libraries + +cc -o $(.TARGET) $(.ALLSRC) + +libraries : lib1.a lib2.a lib3.a lib4.a .JOIN + +ranlib $(.OODATE) + +In this case, PMake will re-create the $(OBJS) as necessary, along with lib1.a, lib2.a, lib3.a and lib4.a. It will then execute ranlib on any library that waschanged and set + +program's .ALLSRC variable to contain what's in $(OBJS) followed by`` lib1.a lib2.a lib3.a lib4.a.'' In case you're wondering, it's called .JOINbecause it joins together different threads of the ``input graph'' at the target marked with the + +attribute. Another aspect of the .JOIN attribute is it keeps the target from being created ifthe -t flag was given. + +.MAKE The .MAKE attribute marks its target as being a recursive inv ocation of PMake. This forcesPMake to execute the script associated with the target (if it's out-of-date) even if you gav e + +the -n or -t flag. By doing this, you can start at the top of a system and type + +pmake -n and have it descend the directory tree (if your makefiles are set up correctly), printing what itwould have executed if you hadn't included the -n flag. + +.NOEXPORT If possible, PMake will attempt to export the creation of all targets to another machine (this + +depends on how PMake was configured). Sometimes, the creation is so simple, it is pointlessto send it to another machine. If you give the target the + +.NOEXPORT attribute, it will be runlocally, even if you've giv en PMake the -L 0 flag. + +.NOTMAIN Normally, if you do not specify a target to make in any other way, PMake will take the firsttarget on the first dependency line of a makefile as the target to create. That target is known + +as the ``Main Target'' and is labeled as such if you print the dependencies out using the -pflag. Giving a target this attribute tells PMake that the target is definitely + +not the Main Tar-get. This allows you to place targets in an included makefile and have PMake create something else by default. .PRECIOUS When PMake is interrupted (you type control-C at the keyboard), it will attempt to clean upafter itself by removing any half-made targets. If a target has the + +.PRECIOUS attribute,however, PMake will leave it alone. An additional side effect of the `::' operator is to mark + +the targets as .PRECIOUS. .SILENT Marking a target with this attribute keeps its commands from being printed when they'reexecuted, just as if they had an `@' in front of them. + +.USE By giving a target this attribute, you turn it into PMake's equivalent of a macro. When thetarget is used as a source for another target, the other target acquires the commands, sources + +and attributes (except .USE) of the source. If the target already has commands, the .USEtarget's commands are added to the end. If more than one .USE-marked source is given to a target, the rules are applied sequentially. The typical .USE rule (as I call them) will use the sources of the target to which it is applied(as stored in the + +.ALLSRC variable for the target) as its ``arguments,'' if you will. Forexample, you probably noticed that the commands for creating + +lib1.a and lib2.a in theexample in section 3.3 were exactly the same. You can use the + +.USE attribute to eliminatethe repetition, like so: + +PMake -- A Tutorial PSD:12-21 + +lib1.a : $(LIB1OBJS) MAKELIB lib2.a : $(LIB2OBJS) MAKELIB + +MAKELIB : .USE + +rm -f $(.TARGET) ar cr $(.TARGET) $(.ALLSRC) ... ranlib $(.TARGET) + +Several system makefiles (not to be confused with The System Makefile) make use of these.USE rules to make your life easier (they're in the default, system makefile directory...take a + +look). Note that the .USE rule source itself (MAKELIB) does not appear in any of the tar-gets's local variables. There is no limit to the number of times I could use the + +MAKELIBrule. If there were more libraries, I could continue with `` lib3.a : $(LIB3OBJS) MAKELIB'' and so on and so forth. + +3.5. Special Targets As there were in Make, so there are certain targets that have special meaning to PMake. When you use oneon a dependency line, it is the only target that may appear on the left-hand-side of the operator. As for the + +attributes and variables, all the special targets begin with a period and consist of upper-case letters only. Iwon't describe them all in detail because some of them are rather complex and I'll describe them in more detail than you'll want in chapter 4. The targets are as follows: .BEGIN Any commands attached to this target are executed before anything else is done. You can use itfor any initialization that needs doing. + +.DEFAULT This is sort of a .USE rule for any target (that was used only as a source) that PMake can't figure out any other way to create. It's only ``sort of'' a .USE rule because only the shell scriptattached to the + +.DEFAULT target is used. The .IMPSRC variable of a target that inherits .DEFAULT's commands is set to the target's own name. + +.END This serves a function similar to .BEGIN, in that commands attached to it are executed onceev erything has been re-created (so long as no errors occurred). It also serves the extra function + +of being a place on which PMake can hang commands you put off to the end. Thus the scriptfor this target will be executed before any of the commands you save with the ``. . .''. + +.EXPORT The sources for this target are passed to the exportation system compiled into PMake. Somesystems will use these sources to configure themselves. You should ask your system administrator about this. .IGNORE This target marks each of its sources with the .IGNORE attribute. If you don't giv e it anysources, then it is like giving the -i flag when you invoke PMake -- errors are ignored for all + +commands. .INCLUDESThe sources for this target are taken to be suffixes that indicate a file that can be included in a + +program source file. The suffix must have already been declared with .SUFFIXES (seebelow). Any suffix so marked will have the directories on its search path (see + +.PATH, below)placed in the .INCLUDES variable, each preceded by a -I flag. This variable can then be usedas an argument for the compiler in the normal fashion. The + +.h suffix is already marked in thisway in the system makefile. E.g. if you have + +.SUFFIXES : .bitmap .PATH.bitmap : /usr/local/X/lib/bitmaps .INCLUDES : .bitmap + +PMake will place ``-I/usr/local/X/lib/bitmaps'' in the .INCLUDES variable andyou can then say + +PSD:12-22 PMake -- A Tutorial + +cc $(.INCLUDES) -c xprogram.c (Note: the .INCLUDES variable is not actually filled in until the entire makefile has beenread.) + +.INTERRUPTWhen PMake is interrupted, it will execute the commands in the script for this target, if it + +exists. .LIBS This does for libraries what .INCLUDES does for include files, except the flag used is -L, asrequired by those linkers that allow you to tell them where to find libraries. The variable used + +is .LIBS. Be forewarned that PMake may not have been compiled to do this if the linker onyour system doesn't accept the -L flag, though the + +.LIBS variable will always be definedonce the makefile has been read. + +.MAIN If you didn't giv e a target (or targets) to create when you invoked PMake, it will take thesources of this target as the targets to create. .MAKEFLAGSThis target provides a way for you to always specify flags for PMake when the makefile is + +used. The flags are just as they would be typed to the shell (except you can't use shell variablesunless they're in the environment), though the -f and -r flags have no effect. + +.NULL This allows you to specify what suffix PMake should pretend a file has if, in fact, it has noknown suffix. Only one suffix may be so designated. The last source on the dependency line is + +the suffix that is used (you should, however, only give one suffix. . .). .PATH If you give sources for this target, PMake will take them as directories in which to search forfiles it cannot find in the current directory. If you give no sources, it will clear out any directories added to the search path before. Since the effects of this all get very complex, I'll leave ittil chapter four to give you a complete explanation. + +.PATHsuffix This does a similar thing to + +.PATH, but it does it only for files with the given suffix. The suffixmust have been defined already. Look at Search Paths (section 4.1) for more information. + +.PRECIOUSSimilar to + +.IGNORE, this gives the .PRECIOUS attribute to each source on the dependencyline, unless there are no sources, in which case the + +.PRECIOUS attribute is given to every tar-get in the file. + +.RECURSIVEThis target applies the + +.MAKE attribute to all its sources. It does nothing if you don't giv e itany sources. + +.SHELL PMake is not constrained to only using the Bourne shell to execute the commands you put inthe makefile. You can tell it some other shell to use with this target. Check out A Shell is a + +Shell is a Shell (section 4.4) for more information. .SILENT When you use .SILENT as a target, it applies the .SILENT attribute to each of its sources. Ifthere are no sources on the dependency line, then it is as if you gav e PMake the -s flag and no + +commands will be echoed. .SUFFIXES This is used to give new file suffixes for PMake to handle. Each source is a suffix PMake + +should recognize. If you give a .SUFFIXES dependency line with no sources, PMake will for-get about all the suffixes it knew (this also nukes the null suffix). For those targets that need to have suffixes defined, this is how you do it. In addition to these targets, a line of the form + +attribute : sources applies the attribute to all the targets listed as sources. + +PMake -- A Tutorial PSD:12-23 3.6. Modifying Variable Expansion Variables need not always be expanded verbatim. PMake defines several modifiers that may be applied to avariable's value before it is expanded. You apply a modifier by placing it after the variable name with a + +colon between the two, like so: + +${VARIABLE:modifier} Each modifier is a single character followed by something specific to the modifier itself. You may apply asmany modifiers as you want -- each one is applied to the result of the previous and is separated from the + +previous by another colon. There are seven ways to modify a variable's expansion, most of which come from the C shell variable mod-ification characters: + +MpatternThis is used to select only those words (a word is a series of characters that are neither spaces + +nor tabs) that match the given pattern. The pattern is a wildcard pattern like that used by theshell, where + +* means 0 or more characters of any sort; ? is any single character; [abcd]matches any single character that is either `a', `b', `c' or `d' (there may be any number of characters between the brackets); [0-9] matches any single character that is between `0' and `9'(i.e. any digit. This form may be freely mixed with the other bracket form), and `\' is used to escape any of the characters `*', `?', `[' or `:', leaving them as regular characters to matchthemselves in a word. For example, the system makefile + +<makedepend.mk> uses`` $(CFLAGS:M-[ID]*)'' to extract all the -I and -D flags that would be passed to the Ccompiler. This allows it to properly locate include files and generate the correct dependencies. + +NpatternThis is identical to + +:M except it substitutes all words that don't match the given pattern. + +S/search-string/replacement-string/[g]Causes the first occurrence of + +search-string in the variable to be replaced by replacementstring, unless the g flag is given at the end, in which case all occurrences of the string arereplaced. The substitution is performed on each word in the variable in turn. If + +search-stringbegins with a ^, the string must match starting at the beginning of the word. If search-stringends with a $, the string must match to the end of the word (these two may be combined toforce an exact match). If a backslash precedes these two characters, however, they lose their + +special meaning. Variable expansion also occurs in the normal fashion inside both the searchstring and the replacement-string, except that a backslash is used to prevent the expansion of a $, not another dollar sign, as is usual. Note that search-string is just a string, not a pattern, sonone of the usual regular-expression/wildcard characters have any special meaning save + +^ and $. In the replacement string, the & character is replaced by the search-string unless it is pre-ceded by a backslash. You are allowed to use any character except colon or exclamation point + +to separate the two strings. This so-called delimiter character may be placed in either string bypreceding it with a backslash. + +T Replaces each word in the variable expansion by its last component (its ``tail''). For example,given + +OBJS = ../lib/a.o b /usr/lib/libm.a TAILS = $(OBJS:T) + +the variable TAILS would expand to ``a.o b libm.a.'' H This is similar to :T, except that every word is replaced by everything but the tail (the``head''). Using the same definition of + +OBJS, the string ``$(OBJS:H)'' would expand to`` ../lib /usr/lib.'' Note that the final slash on the heads is removed and anything with-out a head is replaced by the empty string. + +E :E replaces each word by its suffix (``extension''). So ``$(OBJS:E)'' would give you ``.o + +.a.'' + +PSD:12-24 PMake -- A Tutorial + +R This replaces each word by everything but the suffix (the ``root'' of the word).`` + +$(OBJS:R)'' expands to `` ../lib/a b /usr/lib/libm.'' + +In addition, the System V style of substitution is also supported. This looks like: + +$(VARIABLE:search-string=replacement) It must be the last modifier in the chain. The search is anchored at the end of each word, so only suffixes orwhole words may be replaced. + +3.7. More on Debugging 3.8. More Exercises (3.1) You've got a set programs, each of which is created from its own assembly-language source file (suf-fix + +.asm). Each program can be assembled into two versions, one with error-checking code assem-bled in and one without. You could assemble them into files with different suffixes ( + +.eobj and .obj, for instance), but your linker only understands files that end in .obj. To top it all off, thefinal executables + +must have the suffix .exe. How can you still use transformation rules to makeyour life easier (Hint: assume the error-checking versions have + +ec tacked onto their prefix)? + +(3.2) Assume, for a moment or two, you want to perform a sort of ``indirection'' by placing the name of avariable into another one, then you want to get the value of the first by expanding the second somehow. Unfortunately, PMake doesn't allow constructs like + +$($(FOO)) What do you do? Hint: no further variable expansion is performed after modifiers are applied, thus ifyou cause a $ to occur in the expansion, that's what will be in the result. + +4. PMake for Gods This chapter is devoted to those facilities in PMake that allow you to do a great deal in a makefile with verylittle work, as well as do some things you couldn't do in Make without a great deal of work (and perhaps + +the use of other programs). The problem with these features, is they must be handled with care, or you willend up with a mess. + +Once more, I assume a greater familiarity with UNIX or Sprite than I did in the previous two chapters. 4.1. Search Paths PMake supports the dispersal of files into multiple directories by allowing you to specify places to look forsources with + +.PATH targets in the makefile. The directories you give as sources for these targets make up a``search path.'' Only those files used exclusively as sources are actually sought on a search path, the + +assumption being that anything listed as a target in the makefile can be created by the makefile and thusshould be in the current directory. + +There are two types of search paths in PMake: one is used for all types of files (including included make-files) and is specified with a plain + +.PATH target (e.g. ``.PATH : RCS''), while the other is specific to acertain type of file, as indicated by the file's suffix. A specific search path is indicated by immediately following the .PATH with the suffix of the file. For instance + +.PATH.h : /sprite/lib/include /sprite/att/lib/include would tell PMake to look in the directories /sprite/lib/include and /sprite/att/lib/include for any files whose suffix is .h. + +The current directory is always consulted first to see if a file exists. Only if it cannot be found there are thedirectories in the specific search path, followed by those in the general search path, consulted. + +A search path is also used when expanding wildcard characters. If the pattern has a recognizable suffix onit, the path for that suffix will be used for the expansion. Otherwise the default search path is employed. + +PMake -- A Tutorial PSD:12-25 When a file is found in some directory other than the current one, all local variables that would have con-tained the target's name ( + +.ALLSRC, and .IMPSRC) will instead contain the path to the file, as found byPMake. Thus if you have a file + +../lib/mumble.c and a makefile + +.PATH.c : ../lib mumble : mumble.c + +$(CC) -o $(.TARGET) $(.ALLSRC) + +the command executed to create mumble would be ``cc -o mumble ../lib/mumble.c.'' (As anaside, the command in this case isn't strictly necessary, since it will be found using transformation rules if it + +isn't giv en. This is because .out is the null suffix by default and a transformation exists from .c to .out.Just thought I'd throw that in.) + +If a file exists in two directories on the same search path, the file in the first directory on the path will be theone PMake uses. So if you have a large system spread over many directories, it would behoove you to follow a naming convention that avoids such conflicts. Something you should know about the way search paths are implemented is that each directory is read, andits contents cached, exactly once -- when it is first encountered -- so any changes to the directories while + +PMake is running will not be noted when searching for implicit sources, nor will they be found whenPMake attempts to discover when the file was last modified, unless the file was created in the current directory. While people have suggested that PMake should read the directories each time, my experience sug-gests that the caching seldom causes problems. In addition, not caching the directories slows things down enormously because of PMake's attempts to apply transformation rules through non-existent files -- thenumber of extra file-system searches is truly staggering, especially if many files without suffixes are used and the null suffix isn't changed from .out. 4.2. Archives and Libraries UNIX and Sprite allow you to merge files into an archive using the ar command. Further, if the files arerelocatable object files, you can run + +ranlib on the archive and get yourself a library that you can link intoany program you want. The main problem with archives is they double the space you need to store the + +archived files, since there's one copy in the archive and one copy out by itself. The problem with libraries isyou usually think of them as + +-lm rather than /usr/lib/libm.a and the linker thinks they're out-of-date if you so much as look at them. + +PMake solves the problem with archives by allowing you to tell it to examine the files in the archives (soyou can remove the individual files without having to regenerate them later). To handle the problem with libraries, PMake adds an additional way of deciding if a library is out-of-date: + +* If the table of contents is older than the library, or is missing, the library is out-of-date. A library is any target that looks like ``-lname'' or that ends in a suffix that was marked as a library usingthe + +.LIBS target. .a is so marked in the system makefile. + +Members of an archive are specified as ``archive(member[ member...])''. Thus ``'libdix.a(window.o)'' specifies the file window.o in the archive libdix.a. You may also use wildcards to specifythe members of the archive. Just remember that most the wildcard characters will only find + +existing files. + +A file that is a member of an archive is treated specially. If the file doesn't exist, but it is in the archive, themodification time recorded in the archive is used for the file when determining if the file is out-of-date. + +When figuring out how to make an archived member target (not the file itself, but the file in the archive --the + +archive(member) target), special care is taken with the transformation rules, as follows: + +* archive(member) is made to depend on member. + +* The transformation from the member's suffix to the archive's suffix is applied to the archive(member) tar-get. + +* The archive(member)'s .TARGET variable is set to the name of the member if member is actually a tar-get, or the path to the member file if + +member is only a source. + +* The .ARCHIVE variable for the archive(member) target is set to the name of the archive. + +PSD:12-26 PMake -- A Tutorial + +* The .MEMBER variable is set to the actual string inside the parentheses. In most cases, this will be thesame as the + +.TARGET variable. + +* The archive(member)'s place in the local variables of the targets that depend on it is taken by the value ofits + +.TARGET variable. + +Thus, a program library could be created with the following makefile: + +.o.a : + +... rm -f $(.TARGET:T) OBJS = obj1.o obj2.o obj3.o libprog.a : libprog.a($(OBJS)) + +ar cru $(.TARGET) $(.OODATE) ranlib $(.TARGET) + +This will cause the three object files to be compiled (if the corresponding source files were modified afterthe object file or, if that doesn't exist, the archived object file), the out-of-date ones archived in + +libprog.a, a table of contents placed in the archive and the newly-archived object files to be removed. All this is used in the makelib.mk system makefile to create a single library with ease. This makefilelooks like this: + +PMake -- A Tutorial PSD:12-27 + +# # Rules for making libraries. The object files that make up the library # are removed once they are archived. # # To make several libraries in parallel, you should define the variable # "many_libraries". This will serialize the invocations of ranlib. # # To use, do something like this: # # OBJECTS = <files in the library> # # fish.a: fish.a($(OBJECTS)) MAKELIB # # + +#ifndef _MAKELIB_MK _MAKELIB_MK = + +#include <po.mk> .po.a .o.a : + +... rm -f $(.MEMBER) + +ARFLAGS ?= crl # # Re-archive the out-of-date members and recreate the library's table of # contents using ranlib. If many_libraries is defined, put the ranlib # off til the end so many libraries can be made at once. # MAKELIB : .USE .PRECIOUS + +ar $(ARFLAGS) $(.TARGET) $(.OODATE) #ifndef no_ranlib # ifdef many_libraries + +... # endif /* many_libraries */ + +ranlib $(.TARGET) #endif /* no_ranlib */ + +#endif /* _MAKELIB_MK */ + +4.3. On the Condition... Like the C compiler before it, PMake allows you to configure the makefile, based on the current environ-ment, using conditional statements. A conditional looks like this: + +#if boolean expression lines #elif another boolean expression more lines #else still more lines #endif + +They may be nested to a maximum depth of 30 and may occur anywhere (except in a comment, of course). + +PSD:12-28 PMake -- A Tutorial The ``#'' must the very first character on the line. Each boolean expression is made up of terms that look like function calls, the standard C boolean operators &&, ||, and !, and the standard relational operators ==, !=, >, >=, <, and <=, with == and != being over-loaded to allow string comparisons as well. + +&& represents logical AND; || is logical OR and ! is logicalNOT. The arithmetic and string operators take precedence over all three of these operators, while NOT + +takes precedence over AND, which takes precedence over OR. This precedence may be overridden withparentheses, and an expression may be parenthesized to your heart's content. Each term looks like a call on one of four functions: make The syntax is make(target) where target is a target in the makefile. This is true if the given tar-get was specified on the command line, or as the source for a + +.MAIN target (note that thesources for .MAIN are only used if no targets were given on the command line). + +defined The syntax is defined(variable) and is true if variable is defined. Certain variables aredefined in the system makefile that identify the system on which PMake is being run. + +exists The syntax is exists(file) and is true if the file can be found on the global search path (i.e.that defined by + +.PATH targets, not by .PATHsuffix targets). + +empty This syntax is much like the others, except the string inside the parentheses is of the same formas you would put between parentheses when expanding a variable, complete with modifiers and + +ev erything. The function returns true if the resulting string is empty (NOTE: an undefined vari-able in this context will cause at the very least a warning message about a malformed conditional, and at the worst will cause the process to stop once it has read the makefile. If you wantto check for a variable being defined or empty, use the expression `` + +!defined(var) || empty(var)'' as the definition of || will prevent the empty() from being evaluated andcausing an error, if the variable is undefined). This can be used to see if a variable contains a + +given word, for example: + +#if !empty(var:Mword) + +The arithmetic and string operators may only be used to test the value of a variable. The lefthand side mustcontain the variable expansion, while the righthand side contains either a string, enclosed in double-quotes, + +or a number. The standard C numeric conventions (except for specifying an octal number) apply to bothsides. E.g. + +#if $(OS) == 4.3 #if $(MACHINE) == "sun3" #if $(LOAD_ADDR) < 0xc000 are all valid conditionals. In addition, the numeric value of a variable can be tested as a boolean as follows: + +#if $(LOAD) would see if LOAD contains a non-zero value and + +#if !$(LOAD) would test if LOAD contains a zero value. In addition to the bare ``#if,'' there are other forms that apply one of the first two functions to each term.They are as follows: + +ifdef defined ifndef !defined ifmake make ifnmake !make + +There are also the ``else if'' forms: elif, elifdef, elifndef, elifmake, and elifnmake. + +PMake -- A Tutorial PSD:12-29 For instance, if you wish to create two versions of a program, one of which is optimized (the productionversion) and the other of which is for debugging (has symbols for dbx), you have two choices: you can create two makefiles, one of which uses the -g flag for the compilation, while the other uses the -O flag, oryou can use another target (call it + +debug) to create the debug version. The construct below will take careof this for you. I have also made it so defining the variable + +DEBUG (say with pmake -D DEBUG) will alsocause the debug version to be made. + +#if defined(DEBUG) || make(debug) CFLAGS += -g #else CFLAGS += -O #endif + +There are, of course, problems with this approach. The most glaring annoyance is that if you want to gofrom making a debug version to making a production version, you have to remove all the object files, or + +you will get some optimized and some debug versions in the same program. Another annoyance is you haveto be careful not to make two targets that ``conflict'' because of some conditionals in the makefile. For instance + +#if make(print) FORMATTER = ditroff -Plaser_printer #endif #if make(draft) FORMATTER = nroff -Pdot_matrix_printer #endif + +would wreak havoc if you tried ``pmake draft print'' since you would use the same formatter foreach target. As I said, this all gets somewhat complicated. + +4.4. A Shell is a Shell is a Shell In normal operation, the Bourne Shell (better known as ``sh'') is used to execute the commands to re-createtargets. PMake also allows you to specify a different shell for it to use when executing these commands. + +There are several things PMake must know about the shell you wish to use. These things are specified asthe sources for the + +.SHELL target by keyword, as follows: + +path=pathPMake needs to know where the shell actually resides, so it can execute it. If you specify this and + +nothing else, PMake will use the last component of the path and look in its table of the shells itknows and use the specification it finds, if any. Use this if you just want to use a different version of the Bourne or C Shell (yes, PMake knows how to use the C Shell too). name=nameThis is the name by which the shell is to be known. It is a single word and, if no other keywords are + +specified (other than path), it is the name by which PMake attempts to find a specification for it (asmentioned above). You can use this if you would just rather use the C Shell than the Bourne Shell (``.SHELL: name=csh'' will do it). quiet=echo-off commandAs mentioned before, PMake actually controls whether commands are printed by introducing commands into the shell's input stream. This keyword, and the next two, control what those commandsare. The quiet keyword is the command used to turn echoing off. Once it is turned off, echoing is expected to remain off until the echo-on command is given. echo=echo-on commandThe command PMake should give to turn echoing back on again. + +filter=printed echo-off commandMany shells will echo the echo-off command when it is given. This keyword tells PMake in what format the shell actually prints the echo-off command. Wherever PMake sees this string in the shell'soutput, it will delete it and any following whitespace, up to and including the next newline. See the + +PSD:12-30 PMake -- A Tutorial + +example at the end of this section for more details. echoFlag=flag to turn echoing onUnless a target has been marked + +.SILENT, PMake wants to start the shell running with echoing on.To do this, it passes this flag to the shell as one of its arguments. If either this or the next flag begins + +with a `-', the flags will be passed to the shell as separate arguments. Otherwise, the two will be con-catenated (if they are used at the same time, of course). + +errFlag=flag to turn error checking onLikewise, unless a target is marked + +.IGNORE, PMake wishes error-checking to be on from the verystart. To this end, it will pass this flag to the shell as an argument. The same rules for an initial `-' + +apply as for the echoFlag. check=command to turn error checking onJust as for echo-control, error-control is achieved by inserting commands into the shell's input + +stream. This is the command to make the shell check for errors. It also serves another purpose if theshell doesn't hav e error-control as commands, but I'll get into that in a minute. Again, once error checking has been turned on, it is expected to remain on until it is turned off again. ignore=command to turn error checking offThis is the command PMake uses to turn error checking off. It has another use if the shell doesn't do + +error-control, but I'll tell you about that. . . now. hasErrCtl=yes or noThis takes a value that is either yes or no. Now you might think that the existence of the check and + +ignore keywords would be enough to tell PMake if the shell can do error-control, but you'd bewrong. If hasErrCtl is yes, PMake uses the check and ignore commands in a straight-forward manner. If this is no, howev er, their use is rather different. In this case, the check command is used as atemplate, in which the string %s is replaced by the command that's about to be executed, to produce a command for the shell that will echo the command to be executed. The ignore command is alsoused as a template, again with %s replaced by the command to be executed, to produce a command that will execute the command to be executed and ignore any error it returns. When these strings areused as templates, you must provide newline(s) (`` + +\n'') in the appropriate place(s). + +The strings that follow these keywords may be enclosed in single or double quotes (the quotes will bestripped off) and may contain the usual C backslash-characters (\n is newline, \r is return, \b is backspace, \' + +escapes a single-quote inside single-quotes, \" escapes a double-quote inside double-quotes). Now for anexample. + +This is actually the contents of the <shx.mk> system makefile, and causes PMake to use the Bourne Shellin such a way that each command is printed as it is executed. That is, if more than one command is given on a line, each will be printed separately. Similarly, each time the body of a loop is executed, the commandswithin that loop will be printed, etc. The specification runs like this: + +# # This is a shell specification to have the Bourne shell echo # the commands just before executing them, rather than when it reads # them. Useful if you want to see how variables are being expanded, etc. # .SHELL : path=/bin/sh \ + +quiet="set -" \ echo="set -x" \ filter="+ set - " \ echoFlag=x \ errFlag=e \ hasErrCtl=yes \ check="set -e" \ ignore="set +e" + +PMake -- A Tutorial PSD:12-31 It tells PMake the following: + +* The shell is located in the file /bin/sh. It need not tell PMake that the name of the shell is sh asPMake can figure that out for itself (it's the last component of the path). + +* The command to stop echoing is set -. + +* The command to start echoing is set -x. + +* When the echo off command is executed, the shell will print + set - (The `+' comes from using the + +-x flag (rather than the -v flag PMake usually uses)). PMake will remove all occurrences of this stringfrom the output, so you don't notice extra commands you didn't put there. + +* The flag the Bourne Shell will take to start echoing in this way is the -x flag. The Bourne Shell will onlytake its flag arguments concatenated as its first argument, so neither this nor the errFlag specification + +begins with a -. + +* The flag to use to turn error-checking on from the start is -e. + +* The shell can turn error-checking on and off, and the commands to do so are set +e and set -e,respectively. + +I should note that this specification is for Bourne Shells that are not part of Berkeley UNIX, as shells fromBerkeley don't do error control. You can get a similar effect, however, by changing the last three lines to be: + +hasErrCtl=no \ check="echo \"+ %s\"\n" \ ignore="sh -c '%s || exit 0\n" + +This will cause PMake to execute the two commands + +echo "+ cmd" sh -c 'cmd || true' + +for each command for which errors are to be ignored. (In case you are wondering, the thing for ignoretells the shell to execute another shell without error checking on and always exit 0, since the || causes the + +exit 0 to be executed only if the first command exited non-zero, and if the first command exited zero, theshell will also exit zero, since that's the last command it executed). + +4.5. Compatibility There are three (well, 3 1/2) levels of backwards-compatibility built into PMake. Most makefiles will neednone at all. Some may need a little bit of work to operate correctly when run in parallel. Each level encompasses the previous levels (e.g. -B (one shell per command) implies -V) The three levels are described inthe following three sections. + +4.5.1. DEFCON 3 -- Variable Expansion As noted before, PMake will not expand a variable unless it knows of a value for it. This can cause prob-lems for makefiles that expect to leave variables undefined except in special circumstances (e.g. if more + +flags need to be passed to the C compiler or the output from a text processor should be sent to a differentprinter). If the variables are enclosed in curly braces (`` + +${PRINTER}''), the shell will let them pass. If theyare enclosed in parentheses, however, the shell will declare a syntax error and the make will come to a + +grinding halt. You hav e two choices: change the makefile to define the variables (their values can be overridden on thecommand line, since that's where they would have been set if you used Make, anyway) or always give the + +-V flag (this can be done with the .MAKEFLAGS target, if you want). 4.5.2. DEFCON 2 -- The Number of the Beast Then there are the makefiles that expect certain commands, such as changing to a different directory, to notaffect other commands in a target's creation script. You can solve this is either by going back to executing + +one shell per command (which is what the -B flag forces PMake to do), which slows the process down agood bit and requires you to use semicolons and escaped newlines for shell constructs, or by changing the + +PSD:12-32 PMake -- A Tutorial makefile to execute the offending command(s) in a subshell (by placing the line inside parentheses), like so: + +install :: .MAKE + +(cd src; $(.PMAKE) install) (cd lib; $(.PMAKE) install) (cd man; $(.PMAKE) install) + +This will always execute the three makes (even if the -n flag was given) because of the combination of the``::'' operator and the + +.MAKE attribute. Each command will change to the proper directory to perform theinstall, leaving the main shell in the directory in which it started. + +4.5.3. DEFCON 1 -- Imitation is the Not the Highest Form of Flattery The final category of makefile is the one where every command requires input, the dependencies are incom-pletely specified, or you simply cannot create more than one target at a time, as mentioned earlier. In addition, you may not have the time or desire to upgrade the makefile to run smoothly with PMake. If you arethe conservative sort, this is the compatibility mode for you. It is entered either by giving PMake the -M flag (for Make), or by executing PMake as ``make.'' In either case, PMake performs things exactly likeMake (while still supporting most of the nice new features PMake provides). This includes: + +* No parallel execution. + +* Targets are made in the exact order specified by the makefile. The sources for each target are made instrict left-to-right order, etc. + +* A single Bourne shell is used to execute each command, thus the shell's $$ variable is useless, changingdirectories doesn't work across command lines, etc. + +* If no special characters exist in a command line, PMake will break the command into words itself andexecute the command directly, without executing a shell first. The characters that cause PMake to execute + +a shell are: #, =, |, ^, (, ), {, }, ;, &, <, >, *, ?, [, ], :, $, `, and \. You should notice that these areall the characters that are given special meaning by the shell (except + +' and , which PMake deals withall by its lonesome). + +* The use of the null suffix is turned off. 4.6. The Way Things Work When PMake reads the makefile, it parses sources and targets into nodes in a graph. The graph is directedonly in the sense that PMake knows which way is up. Each node contains not only links to all its parents + +and children (the nodes that depend on it and those on which it depends, respectively), but also a count ofthe number of its children that have already been processed. + +The most important thing to know about how PMake uses this graph is that the traversal is breadth-first andoccurs in two passes. After PMake has parsed the makefile, it begins with the nodes the user has told it to make (either on thecommand line, or via a + +.MAIN target, or by the target being the first in the file not labeled with the .NOTMAIN attribute) placed in a queue. It continues to take the node off the front of the queue, mark it as some-thing that needs to be made, pass the node to + +Suff_FindDeps (mentioned earlier) to find any implicitsources for the node, and place all the node's children that have yet to be marked at the end of the queue. If + +any of the children is a .USE rule, its attributes are applied to the parent, then its commands are appendedto the parent's list of commands and its children are linked to its parent. The parent's unmade children counter is then decremented (since the .USE node has been processed). You will note that this allows a .USE node to have children that are .USE nodes and the rules will be applied in sequence. If the node hasno children, it is placed at the end of another queue to be examined in the second pass. This process continues until the first queue is empty. At this point, all the leaves of the graph are in the examination queue. PMake removes the node at the headof the queue and sees if it is out-of-date. If it is, it is passed to a function that will execute the commands + +for the node asynchronously. When the commands have completed, all the node's parents have theirunmade children counter decremented and, if the counter is then 0, they are placed on the examination + +PMake -- A Tutorial PSD:12-33 queue. Likewise, if the node is up-to-date. Only those parents that were marked on the downward pass areprocessed in this way. Thus PMake traverses the graph back up to the nodes the user instructed it to create. When the examination queue is empty and no shells are running to create a target, PMake is finished. Once all targets have been processed, PMake executes the commands attached to the .END target, eitherexplicitly or through the use of an ellipsis in a shell script. If there were no errors during the entire process + +but there are still some targets unmade (PMake keeps a running count of how many targets are left to bemade), there is a cycle in the graph. PMake does a depth-first traversal of the graph to find all the targets that weren't made and prints them out one by one. 5. Answers to Exercises (3.1) This is something of a trick question, for which I apologize. The trick comes from the UNIX defini-tion of a suffix, which PMake doesn't necessarily share. You will have noticed that all the suffixes + +used in this tutorial (and in UNIX in general) begin with a period (.ms, .c, etc.). Now, PMake's ideaof a suffix is more like English's: it's the characters at the end of a word. With this in mind, one possible solution to this problem goes as follows: + +.SUFFIXES : ec.exe .exe ec.obj .obj .asm ec.objec.exe .obj.exe : + +link -o $(.TARGET) $(.IMPSRC) .asmec.obj : + +asm -o $(.TARGET) -DDO_ERROR_CHECKING $(.IMPSRC) .asm.obj : + +asm -o $(.TARGET) $(.IMPSRC) + +(3.2) The trick to this one lies in the ``:='' variable-assignment operator and the ``:S'' variable-expansionmodifier. Basically what you want is to take the pointer variable, so to speak, and transform it into an + +invocation of the variable at which it points. You might try something like + +$(PTR:S/^/\$(/:S/$/)) which places ``$('' at the front of the variable name and ``)'' at the end, thus transforming ``VAR,''for example, into `` + +$(VAR),'' which is just what we want. Unfortunately (as you know if you'vetried it), since, as it says in the hint, PMake does no further substitution on the result of a modified + +expansion, that's all you get. The solution is to make use of ``:='' to place that string into yet anothervariable, then invoke the other variable directly: + +*PTR := $(PTR:S/^/\$(/:S/$/)/) You can then use ``$(*PTR)'' to your heart's content. + +6. Glossary of Jargon attribute: A property given to a target that causes PMake to treat it differently. command script: The lines immediately following a dependency line that specify commands to execute tocreate each of the targets on the dependency line. Each line in the command script must begin with a + +tab. command-line variable: A variable defined in an argument when PMake is first executed. Overrides allassignments to the same variable name in the makefile. + +conditional: A construct much like that used in C that allows a makefile to be configured on the fly basedon the local environment, or on what is being made by that invocation of PMake. creation script: Commands used to create a target. See ``command script.'' dependency: The relationship between a source and a target. This comes in three flavors, as indicated bythe operator between the target and the source. `:' gives a straight time-wise dependency (if the target + +is older than the source, the target is out-of-date), while `!' provides simply an ordering and alwaysconsiders the target out-of-date. `::' is much like `:', save it creates multiple instances of a target each of which depends on its own list of sources. + +PSD:12-34 PMake -- A Tutorial dynamic source: This refers to a source that has a local variable invocation in it. It allows a single depen-dency line to specify a different source for each target on the line. global variable: Any variable defined in a makefile. Takes precedence over variables defined in the envi-ronment, but not over command-line or local variables. input graph: What PMake constructs from a makefile. Consists of nodes made of the targets in the make-file, and the links between them (the dependencies). The links are directed (from source to target) and + +there may not be any cycles (loops) in the graph. local variable: A variable defined by PMake visible only in a target's shell script. There are seven localvariables, not all of which are defined for every target: + +.TARGET, .ALLSRC, .OODATE, .PREFIX, .IMPSRC, .ARCHIVE, and .MEMBER. .TARGET, .PREFIX, .ARCHIVE, and .MEMBER may beused on dependency lines to create ``dynamic sources.'' + +makefile: A file that describes how a system is built. If you don't know what it is after reading this tuto-rial. . . . modifier: A letter, following a colon, used to alter how a variable is expanded. It has no effect on the vari-able itself. operator: What separates a source from a target (on a dependency line) and specifies the relationshipbetween the two. There are three: ` + +:', `::', and `!'. + +search path: A list of directories in which a file should be sought. PMake's view of the contents of directo-ries in a search path does not change once the makefile has been read. A file is sought on a search + +path only if it is exclusively a source. shell: A program to which commands are passed in order to create targets. source: Anything to the right of an operator on a dependency line. Targets on the dependency line are usu-ally created from the sources. + +special target: A target that causes PMake to do special things when it's encountered. suffix: The tail end of a file name. Usually begins with a period, .c or .ms, e.g. target: A word to the left of the operator on a dependency line. More generally, any file that PMake mightcreate. A file may be (and often is) both a target and a source (what it is depends on how PMake is + +looking at it at the time -- sort of like the wav e/particle duality of light, you know). transformation rule: A special construct in a makefile that specifies how to create a file of one type from afile of another, as indicated by their suffixes. + +variable expansion: The process of substituting the value of a variable for a reference to it. Expansion maybe altered by means of modifiers. variable: A place in which to store text that may be retrieved later. Also used to define the local environ-ment. Conditionals exist that test whether a variable is defined or not. + +PMake -- A Tutorial PSD:12-35 + +Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 12. The Basics of PMake . . . . . . . . . . . . . . . . . . . . 1 2.1. Dependency Lines . . . . . . . . . . . . . . . . . . . . . 22.2. Shell Commands . . . . . . . . . . . . . . . . . . . . . . 3 2.3. Variables . . . . . . . . . . . . . . . . . . . . . . . . 42.3.1. Local Variables . . . . . . . . . . . . . . . . . . . . . . 6 2.3.2. Command-line Variables . . . . . . . . . . . . . . . . . . . 62.3.3. Global Variables . . . . . . . . . . . . . . . . . . . . . . 6 2.3.4. Environment Variables . . . . . . . . . . . . . . . . . . . . 72.4. Comments . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5. Parallelism . . . . . . . . . . . . . . . . . . . . . . . . 72.6. Writing and Debugging a Makefile . . . . . . . . . . . . . . . . 8 2.7. Invoking PMake . . . . . . . . . . . . . . . . . . . . . . 102.8. Summary . . . . . . . . . . . . . . . . . . . . . . . . 12 2.9. Exercises . . . . . . . . . . . . . . . . . . . . . . . . 133. Short-cuts and Other Nice Things . . . . . . . . . . . . . . . . 13 3.1. Transformation Rules . . . . . . . . . . . . . . . . . . . . 133.2. Including Other Makefiles . . . . . . . . . . . . . . . . . . . 17 3.3. Saving Commands . . . . . . . . . . . . . . . . . . . . . 173.4. Target Attributes . . . . . . . . . . . . . . . . . . . . . . 18 3.5. Special Targets . . . . . . . . . . . . . . . . . . . . . . 213.6. Modifying Variable Expansion . . . . . . . . . . . . . . . . . 23 3.7. More on Debugging . . . . . . . . . . . . . . . . . . . . . 243.8. More Exercises . . . . . . . . . . . . . . . . . . . . . . 24 4. PMake for Gods . . . . . . . . . . . . . . . . . . . . . . 244.1. Search Paths . . . . . . . . . . . . . . . . . . . . . . . 24 4.2. Archives and Libraries . . . . . . . . . . . . . . . . . . . . 254.3. On the Condition... . . . . . . . . . . . . . . . . . . . . . 27 4.4. A Shell is a Shell is a Shell . . . . . . . . . . . . . . . . . . . 294.5. Compatibility . . . . . . . . . . . . . . . . . . . . . . . 31 4.5.1. DEFCON 3 -- Variable Expansion . . . . . . . . . . . . . . . . 314.5.2. DEFCON 2 -- The Number of the Beast . . . . . . . . . . . . . . 31 4.5.3. DEFCON 1 -- Imitation is the Not the Highest Form of Flattery . . . . . . . 324.6. The Way Things Work . . . . . . . . . . . . . . . . . . . . 32 5. Answers to Exercises . . . . . . . . . . . . . . . . . . . . 336. Glossary of Jargon . . . . . . . . . . . . . . . . . . . . . 33 \ No newline at end of file diff --git a/source/d/pmake/pmake_1.111-1.diff b/source/d/pmake/pmake_1.111-1.diff new file mode 100644 index 000000000..3e74712c0 --- /dev/null +++ b/source/d/pmake/pmake_1.111-1.diff @@ -0,0 +1,3501 @@ +--- pmake-1.111.orig/mk/Makefile ++++ pmake-1.111/mk/Makefile +@@ -0,0 +1,16 @@ ++# $NetBSD: Makefile,v 1.24 1999/02/13 02:54:36 lukem Exp $ ++# @(#)Makefile 8.1 (Berkeley) 6/8/93 ++ ++.include <bsd.own.mk> ++ ++.if ${MKSHARE} != "no" ++FILES= bsd.README bsd.doc.mk bsd.dep.mk bsd.files.mk bsd.inc.mk bsd.info.mk \ ++ bsd.kinc.mk bsd.kmod.mk bsd.lib.mk bsd.links.mk bsd.man.mk bsd.nls.mk \ ++ bsd.obj.mk bsd.own.mk bsd.prog.mk bsd.subdir.mk bsd.sys.mk sys.mk ++FILESDIR=/usr/share/mk ++.endif ++MKOBJ= no ++ ++FILESMODE=444 ++ ++.include <bsd.prog.mk> +--- pmake-1.111.orig/mk/bsd.README ++++ pmake-1.111/mk/bsd.README +@@ -0,0 +1,537 @@ ++# $NetBSD: bsd.README,v 1.48 1999/02/13 03:04:09 lukem Exp $ ++# @(#)bsd.README 8.2 (Berkeley) 4/2/94 ++ ++This is the README file for the new make "include" files for the BSD ++source tree. The files are installed in /usr/share/mk, and are, by ++convention, named with the suffix ".mk". ++ ++Note, this file is not intended to replace reading through the .mk ++files for anything tricky. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++RANDOM THINGS WORTH KNOWING: ++ ++The files are simply C-style #include files, and pretty much behave like ++you'd expect. The syntax is slightly different in that a single '.' is ++used instead of the hash mark, i.e. ".include <bsd.prog.mk>". ++ ++One difference that will save you lots of debugging time is that inclusion ++of the file is normally done at the *end* of the Makefile. The reason for ++this is because .mk files often modify variables and behavior based on the ++values of variables set in the Makefile. To make this work, remember that ++the FIRST target found is the target that is used, i.e. if the Makefile has: ++ ++ a: ++ echo a ++ a: ++ echo a number two ++ ++the command "make a" will echo "a". To make things confusing, the SECOND ++variable assignment is the overriding one, i.e. if the Makefile has: ++ ++ a= foo ++ a= bar ++ ++ b: ++ echo ${a} ++ ++the command "make b" will echo "bar". This is for compatibility with the ++way the V7 make behaved. ++ ++It's fairly difficult to make the BSD .mk files work when you're building ++multiple programs in a single directory. It's a lot easier split up the ++programs than to deal with the problem. Most of the agony comes from making ++the "obj" directory stuff work right, not because we switched to a new version ++of make. So, don't get mad at us, figure out a better way to handle multiple ++architectures so we can quit using the symbolic link stuff. (Imake doesn't ++count.) ++ ++The file .depend in the source directory is expected to contain dependencies ++for the source files. This file is read automatically by make after reading ++the Makefile. ++ ++The variable DESTDIR works as before. It's not set anywhere but will change ++the tree where the file gets installed. ++ ++The profiled libraries are no longer built in a different directory than ++the regular libraries. A new suffix, ".po", is used to denote a profiled ++object, and ".so" denotes a shared (position-independent) object. ++ ++The following variables that control how things are made/installed that ++are not set by default. These should not be set by Makefiles; they're for ++the user to define in MAKECONF (see bsd.own.mk, below) or on the make(1) ++command line: ++ ++BUILD If defined, 'make install' checks that the targets in the ++ source directories are up-to-date and remakes them if they ++ are out of date, instead of blindly trying to install ++ out of date or non-existant targets. ++ ++UPDATE If defined, 'make install' only installs targets that are ++ more recently modified in the source directories that their ++ installed counterparts. ++ ++MKCATPAGES If "no", don't build or install the catman pages. ++ ++MKDOC If "no", don't build or install the documentation. ++ ++MKINFO If "no", don't build or install Info documentation from ++ Texinfo source files. ++ ++MKLINT If "no", don't build or install the lint libraries. ++ ++MKMAN If "no", don't build or install the man or catman pages. ++ Also acts as "MKCATPAGES=no" ++ ++MKNLS If "no", don't build or install the NLS files. ++ ++MKOBJ If "no", don't create objdirs. ++ ++MKPIC If "no", don't build or install shared libraries. ++ ++MKPICINSTALL If "no", don't install the *_pic.a libraries. ++ ++MKPROFILE If "no", don't build or install the profiling libraries. ++ ++MKSHARE If "no", act as "MKCATPAGES=no MKDOC=no MKINFO=no MKMAN=no ++ MKNLS=no". I.e, don't build catman pages, documentation, ++ Info documentation, man pages, NLS files, ... ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <sys.mk> has the default rules for all makes, in the BSD ++environment or otherwise. You probably don't want to touch this file. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.man.mk> handles installing manual pages and their ++links. ++ ++It has a two targets: ++ ++ maninstall: ++ Install the manual page sources and their links. ++ catinstall: ++ Install the preformatted manual pages and their links. ++ ++It sets/uses the following variables: ++ ++MANDIR Base path for manual installation. ++ ++MANGRP Manual group. ++ ++MANOWN Manual owner. ++ ++MANMODE Manual mode. ++ ++MANSUBDIR Subdirectory under the manual page section, i.e. "/vax" ++ or "/tahoe" for machine specific manual pages. ++ ++MAN The manual pages to be installed (use a .1 - .9 suffix). ++ ++MLINKS List of manual page links (using a .1 - .9 suffix). The ++ linked-to file must come first, the linked file second, ++ and there may be multiple pairs. The files are soft-linked. ++ ++The include file <bsd.man.mk> includes a file named "../Makefile.inc" if ++it exists. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.own.mk> contains source tree configuration parameters, ++such as the owners, groups, etc. for both manual pages and binaries, and ++a few global "feature configuration" parameters. ++ ++It has no targets. ++ ++To get system-specific configuration parameters, bsd.own.mk will try to ++include the file specified by the "MAKECONF" variable. If MAKECONF is not ++set, or no such file exists, the system make configuration file, /etc/mk.conf ++is included. These files may define any of the variables described below. ++ ++bsd.own.mk sets the following variables, if they are not already defined ++(defaults are in brackets): ++ ++BSDSRCDIR The real path to the system sources, so that 'make obj' ++ will work correctly. [/usr/src] ++ ++BSDOBJDIR The real path to the system 'obj' tree, so that 'make obj' ++ will work correctly. [/usr/obj] ++ ++BINGRP Binary group. [wheel] ++ ++BINOWN Binary owner. [root] ++ ++BINMODE Binary mode. [555] ++ ++NONBINMODE Mode for non-executable files. [444] ++ ++MANDIR Base path for manual installation. [/usr/share/man/cat] ++ ++MANGRP Manual group. [wheel] ++ ++MANOWN Manual owner. [root] ++ ++MANMODE Manual mode. [${NONBINMODE}] ++ ++MANINSTALL Manual installation type: maninstall, catinstall, or both ++ ++LIBDIR Base path for library installation. [/usr/lib] ++ ++LINTLIBDIR Base path for lint(1) library installation. [/usr/libdata/lint] ++ ++LIBGRP Library group. [${BINGRP}] ++ ++LIBOWN Library owner. [${BINOWN}] ++ ++LIBMODE Library mode. [${NONBINMODE}] ++ ++DOCDIR Base path for system documentation (e.g. PSD, USD, etc.) ++ installation. [/usr/share/doc] ++ ++DOCGRP Documentation group. [wheel] ++ ++DOCOWN Documentation owner. [root] ++ ++DOCMODE Documentation mode. [${NONBINMODE}] ++ ++NLSDIR Base path for National Language Support files installation. ++ [/usr/share/nls] ++ ++NLSGRP National Language Support files group. [wheel] ++ ++NLSOWN National Language Support files owner. [root] ++ ++NLSMODE National Language Support files mode. [${NONBINMODE}] ++ ++STRIPFLAG The flag passed to the install program to cause the binary ++ to be stripped. This is to be used when building your ++ own install script so that the entire system can be made ++ stripped/not-stripped using a single knob. [-s] ++ ++COPY The flag passed to the install program to cause the binary ++ to be copied rather than moved. This is to be used when ++ building our own install script so that the entire system ++ can either be installed with copies, or with moves using ++ a single knob. [-c] ++ ++Additionally, the following variables may be set by bsd.own.mk or in a ++make configuration file to modify the behaviour of the system build ++process (default values are in brackets along with comments, if set by ++bsd.own.mk): ++ ++EXPORTABLE_SYSTEM ++ Do not build /usr/src/domestic, even if it is present. ++ ++SKEY Compile in support for S/key authentication. [yes, set ++ unconditionally] ++ ++KERBEROS Compile in support for Kerberos 4 authentication. ++ ++KERBEROS5 Compile in support for Kerberos 5 authentication. ++ ++MANZ Compress manual pages at installation time. ++ ++SYS_INCLUDE Copy or symlink kernel include files into /usr/include. ++ Possible values are "symlinks" or "copies" (which is ++ the same as the variable being unset). ++ ++NOPROFILE Do not build profiled versions of system libraries ++ ++NOPIC Do not build PIC versions of system libraries, and ++ do not build shared libraries. [set if ${MACHINE_ARCH} ++ is "sparc64", unset otherwise.] ++ ++NOLINT Do not build lint libraries. ++ ++OBJECT_FMT Object file format. [set to "ELF" on ports that use ++ ELF -- currently if ${MACHINE_ARCH} is "alpha", "mips" ++ or "powerpc" or set to "a.out" on other ports]. ++ ++ ++bsd.own.mk is generally useful when building your own Makefiles so that ++they use the same default owners etc. as the rest of the tree. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.prog.mk> handles building programs from one or ++more source files, along with their manual pages. It has a limited number ++of suffixes, consistent with the current needs of the BSD tree. ++ ++It has eight targets: ++ ++ all: ++ build the program and its manual page ++ clean: ++ remove the program, any object files and the files a.out, ++ Errs, errs, mklog, and ${PROG}.core. ++ cleandir: ++ remove all of the files removed by the target clean, as ++ well as .depend, tags, and any manual pages. ++ `distclean' is a synonym for `cleandir'. ++ depend: ++ make the dependencies for the source files, and store ++ them in the file .depend. ++ includes: ++ install any header files. ++ install: ++ install the program and its manual pages; if the Makefile ++ does not itself define the target install, the targets ++ beforeinstall and afterinstall may also be used to cause ++ actions immediately before and after the install target ++ is executed. ++ lint: ++ run lint on the source files ++ tags: ++ create a tags file for the source files. ++ ++It sets/uses the following variables: ++ ++BINGRP Binary group. ++ ++BINOWN Binary owner. ++ ++BINMODE Binary mode. ++ ++CLEANFILES Additional files to remove for the clean and cleandir targets. ++ ++COPTS Additional flags to the compiler when creating C objects. ++ ++CPPFLAGS Additional flags to the C pre-processor ++ ++LDADD Additional loader objects. Usually used for libraries. ++ For example, to load with the compatibility and utility ++ libraries, use: ++ ++ LDADD+=-lutil -lcompat ++ ++LDFLAGS Additional loader flags. ++ ++LINKS The list of binary links; should be full pathnames, the ++ linked-to file coming first, followed by the linked ++ file. The files are hard-linked. For example, to link ++ /bin/test and /bin/[, use: ++ ++ LINKS= ${DESTDIR}/bin/test ${DESTDIR}/bin/[ ++ ++SYMLINKS The list of symbolic links; should be full pathnames. ++ Syntax is identical to LINKS. Note that DESTDIR is not ++ automatically included in the link. ++ ++MAN Manual pages (should end in .1 - .9). If no MAN variable is ++ defined, "MAN=${PROG}.1" is assumed. ++ ++PROG The name of the program to build. If not supplied, nothing ++ is built. ++ ++PROGNAME The name that the above program will be installed as, if ++ different from ${PROG}. ++ ++SRCS List of source files to build the program. If SRCS is not ++ defined, it's assumed to be ${PROG}.c. ++ ++DPADD Additional dependencies for the program. Usually used for ++ libraries. For example, to depend on the compatibility and ++ utility libraries use: ++ ++ DPADD+=${LIBCOMPAT} ${LIBUTIL} ++ ++ The following libraries are predefined for DPADD: ++ ++ LIBC?= ${DESTDIR}/usr/lib/libc.a ++ LIBC_PIC?= ${DESTDIR}/usr/lib/libc_pic.a ++ LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a ++ LIBCRYPT?= ${DESTDIR}/usr/lib/libcrypt.a ++ LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a ++ LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a ++ LIBDES?= ${DESTDIR}/usr/lib/libdes.a ++ LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a ++ LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a ++ LIBGNUMALLOC?= ${DESTDIR}/usr/lib/libgnumalloc.a ++ LIBKDB?= ${DESTDIR}/usr/lib/libkdb.a ++ LIBKRB?= ${DESTDIR}/usr/lib/libkrb.a ++ LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a ++ LIBL?= ${DESTDIR}/usr/lib/libl.a ++ LIBM?= ${DESTDIR}/usr/lib/libm.a ++ LIBMP?= ${DESTDIR}/usr/lib/libmp.a ++ LIBNTP?= ${DESTDIR}/usr/lib/libntp.a ++ LIBPC?= ${DESTDIR}/usr/lib/libpc.a ++ LIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a ++ LIBPLOT?= ${DESTDIR}/usr/lib/libplot.a ++ LIBPOSIX?= ${DESTDIR}/usr/lib/libposix.a ++ LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a ++ LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a ++ LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a ++ LIBTERMCAP?= ${DESTDIR}/usr/lib/libtermcap.a ++ LIBTELNET?= ${DESTDIR}/usr/lib/libtelnet.a ++ LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a ++ LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a ++ LIBY?= ${DESTDIR}/usr/lib/liby.a ++ LIBZ?= ${DESTDIR}/usr/lib/libz.a ++ ++ ++SHAREDSTRINGS If defined, a new .c.o rule is used that results in shared ++ strings, using xstr(1). Note that this will not work with ++ parallel makes. ++ ++STRIP The flag passed to the install program to cause the binary ++ to be stripped. ++ ++SUBDIR A list of subdirectories that should be built as well. ++ Each of the targets will execute the same target in the ++ subdirectories. ++ ++SCRIPTS A list of interpreter scripts [file.{sh,csh,pl,awk,...}]. ++ These are installed exactly like programs. ++ ++SCRIPTSNAME The name that the above program will be installed as, if ++ different from ${SCRIPTS}. These can be further specialized ++ by setting SCRIPTSNAME_<script>. ++ ++FILES A list of files to install. The installation is controlled ++ by the FILESNAME, FILESOWN, FILESGRP, FILESMODE, FILESDIR ++ variables that can be further specialized by FILES<VAR>_<file> ++ ++The include file <bsd.prog.mk> includes the file named "../Makefile.inc" ++if it exists, as well as the include file <bsd.man.mk>. ++ ++Some simple examples: ++ ++To build foo from foo.c with a manual page foo.1, use: ++ ++ PROG= foo ++ ++ .include <bsd.prog.mk> ++ ++To build foo from foo.c with a manual page foo.2, add the line: ++ ++ MAN= foo.2 ++ ++If foo does not have a manual page at all, add the line: ++ ++ NOMAN= noman ++ ++If foo has multiple source files, add the line: ++ ++ SRCS= a.c b.c c.c d.c ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.subdir.mk> contains the default targets for building ++subdirectories. It has the same eight targets as <bsd.prog.mk>: all, ++clean, cleandir, depend, includes, install, lint, and tags. For all of ++the directories listed in the variable SUBDIRS, the specified directory ++will be visited and the target made. There is also a default target which ++allows the command "make subdir" where subdir is any directory listed in ++the variable SUBDIRS. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables ++and is included from from bsd.lib.mk and bsd.prog.mk. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.files.mk> handles the FILES variables and is included ++from bsd.lib.mk and bsd.prog.mk. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.inc.mk> defines the includes target and uses two ++variables: ++ ++INCS The list of include files ++ ++INCSDIR The location to install the include files. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.kinc.mk> defines the many targets (includes, ++subdirectories, etc.), and is used by kernel makefiles to handle ++include file installation. It is intended to be included alone, by ++kernel Makefiles. Please see bsd.kinc.mk for more details, and keep ++the documentation in that file up to date. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.info.mk> is used to generate and install GNU Info ++documentation from respective Texinfo source files. It defines three ++implicit targets (.txi.info, .texi.info, and .texinfo.info), and uses the ++following variables: ++ ++TEXINFO List of Texinfo source files. Info documentation will ++ consist of single files with the extension replaced by ++ .info. ++ ++INFOFLAGS Flags to pass to makeinfo. [] ++ ++INSTALL_INFO Name of install-info program. [install-info] ++ ++MAKEINFO Name of makeinfo program. [makeinfo] ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.sys.mk> is used by <bsd.prog.mk> and ++<bsd.lib.mk>. It contains overrides that are used when building ++the NetBSD source tree. For instance, if "PARALLEL" is defined by ++the program/library Makefile, it includes a set of rules for lex and ++yacc that allow multiple lex and yacc targets to be built in parallel. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ++ ++The include file <bsd.lib.mk> has support for building libraries. It has ++the same eight targets as <bsd.prog.mk>: all, clean, cleandir, depend, ++includes, install, lint, and tags. Additionally, it has a checkver target ++which checks for installed shared object libraries whose version is greater ++that the version of the source. It has a limited number of suffixes, ++consistent with the current needs of the BSD tree. ++ ++It sets/uses the following variables: ++ ++LIB The name of the library to build. ++ ++LIBDIR Target directory for libraries. ++ ++LINTLIBDIR Target directory for lint libraries. ++ ++LIBGRP Library group. ++ ++LIBOWN Library owner. ++ ++LIBMODE Library mode. ++ ++LDADD Additional loader objects. ++ ++MAN The manual pages to be installed (use a .1 - .9 suffix). ++ ++MKLINKLIB If "no", act as "MKPICINSTALL=no MKPROFILE=no". ++ Also: ++ - don't install the .a libraries ++ - don't install _pic.a libraries on PIC systems ++ - don't build .a libraries on PIC systems ++ - don't install the .so symlink on ELF systems ++ I.e, only install the shared library (and the .so.major ++ symlink on ELF). ++ ++NOCHECKVER_<library> ++NOCHECKVER If set, disables checking for installed shared object ++ libraries with versions greater than the source. A ++ particular library name, without the "lib" prefix, may ++ be appended to the variable name to disable the check for ++ only that library. ++ ++SRCS List of source files to build the library. Suffix types ++ .s, .c, and .f are supported. Note, .s files are preferred ++ to .c files of the same name. (This is not the default for ++ versions of make.) ++ ++The include file <bsd.lib.mk> includes the file named "../Makefile.inc" ++if it exists, as well as the include file <bsd.man.mk>. ++ ++It has rules for building profiled objects; profiled libraries are ++built by default. ++ ++Libraries are ranlib'd when made. ++ ++=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +--- pmake-1.111.orig/mk/bsd.dep.mk ++++ pmake-1.111/mk/bsd.dep.mk +@@ -0,0 +1,62 @@ ++# $NetBSD: bsd.dep.mk,v 1.26 1999/02/24 22:04:15 simonb Exp $ ++ ++.PHONY: cleandepend ++cleandir distclean: cleandepend ++ ++MKDEP?= mkdep ++ ++# some of the rules involve .h sources, so remove them from mkdep line ++depend: beforedepend ++.if defined(SRCS) ++depend: .depend ++ @true # hack to prevent "make depend" from using implicit rules ++.NOPATH: .depend ++.depend: ${SRCS} ${DPSRCS} ++ @rm -f .depend ++ @files="${.ALLSRC:M*.s} ${.ALLSRC:M*.S}"; \ ++ if [ "$$files" != " " ]; then \ ++ echo ${MKDEP} -a ${MKDEPFLAGS} \ ++ ${AFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} ${AINC:Q} $$files; \ ++ ${MKDEP} -a ${MKDEPFLAGS} \ ++ ${AFLAGS:M-[ID]*} ${CPPFLAGS} ${AINC} $$files; \ ++ fi ++ @files="${.ALLSRC:M*.c}"; \ ++ if [ "$$files" != "" ]; then \ ++ echo ${MKDEP} -a ${MKDEPFLAGS} \ ++ ${CFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \ ++ ${MKDEP} -a ${MKDEPFLAGS} \ ++ ${CFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \ ++ fi ++ @files="${.ALLSRC:M*.m}"; \ ++ if [ "$$files" != "" ]; then \ ++ echo ${MKDEP} -a ${MKDEPFLAGS} \ ++ ${OBJCFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \ ++ ${MKDEP} -a ${MKDEPFLAGS} \ ++ ${OBJCFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \ ++ fi ++ @files="${.ALLSRC:M*.cc} ${.ALLSRC:M*.C} ${.ALLSRC:M*.cxx}"; \ ++ if [ "$$files" != " " ]; then \ ++ echo ${MKDEP} -a ${MKDEPFLAGS} \ ++ ${CXXFLAGS:M-[ID]*:Q} ${CPPFLAGS:Q} $$files; \ ++ ${MKDEP} -a ${MKDEPFLAGS} \ ++ ${CXXFLAGS:M-[ID]*} ${CPPFLAGS} $$files; \ ++ fi ++cleandepend: ++ rm -f .depend ${.CURDIR}/tags ++.else ++cleandepend: ++.endif ++depend: afterdepend ++ ++beforedepend: ++afterdepend: ++ ++.if !target(tags) ++.if defined(SRCS) ++tags: ${SRCS} ++ -cd ${.CURDIR}; ctags -f /dev/stdout ${.ALLSRC:N*.h} | \ ++ sed "s;\${.CURDIR}/;;" > tags ++.else ++tags: ++.endif ++.endif +--- pmake-1.111.orig/mk/bsd.doc.mk ++++ pmake-1.111/mk/bsd.doc.mk +@@ -0,0 +1,78 @@ ++# $NetBSD: bsd.doc.mk,v 1.41 1999/02/12 01:10:06 lukem Exp $ ++# @(#)bsd.doc.mk 8.1 (Berkeley) 8/14/93 ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++.include <bsd.own.mk> ++.MAIN: all ++.endif ++ ++.PHONY: cleandoc docinstall print spell ++.if ${MKSHARE} != "no" ++realinstall: docinstall ++.endif ++clean cleandir distclean: cleandoc ++ ++BIB?= bib ++EQN?= eqn ++GREMLIN?= grn ++GRIND?= vgrind -f ++INDXBIB?= indxbib ++PIC?= pic ++REFER?= refer ++ROFF?= groff ${MACROS} ${PAGES} ++SOELIM?= soelim ++TBL?= tbl ++ ++.if !target(all) ++.if ${MKSHARE} != "no" ++all: paper.ps ++.else ++all: ++.endif ++.endif ++ ++.if !target(paper.ps) ++paper.ps: ${SRCS} ++ ${ROFF} ${.ALLSRC} > ${.TARGET} ++.endif ++ ++.if !target(print) ++print: paper.ps ++ lpr -P${PRINTER} ${.ALLSRC} ++.endif ++ ++cleandoc: ++ rm -f paper.* [eE]rrs mklog ${CLEANFILES} ++ ++.if ${MKDOC} != "no" ++FILES?= ${SRCS} ++.for F in ${FILES} ${EXTRA} Makefile ++docinstall:: ${DESTDIR}${DOCDIR}/${DIR}/${F} ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${DOCDIR}/${DIR}/${F} ++.endif ++.if !defined(BUILD) ++${DESTDIR}${DOCDIR}/${DIR}/${F}: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${DOCDIR}/${DIR}/${F} ++${DESTDIR}${DOCDIR}/${DIR}/${F}: ${F} ++ ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${DOCOWN} -g ${DOCGRP} \ ++ -m ${DOCMODE} ${.ALLSRC} ${.TARGET} ++.endfor ++.endif ++ ++.if !target(docinstall) ++docinstall:: ++.endif ++ ++spell: ${SRCS} ++ spell ${.ALLSRC} | sort | comm -23 - spell.ok > paper.spell ++ ++depend includes lint obj tags: ++ ++.include <bsd.obj.mk> +--- pmake-1.111.orig/mk/bsd.files.mk ++++ pmake-1.111/mk/bsd.files.mk +@@ -0,0 +1,43 @@ ++# $NetBSD: bsd.files.mk,v 1.8 1999/02/11 13:25:42 tv Exp $ ++ ++# This file can be included multiple times. It clears the definition of ++# FILES at the end so that this is possible. ++ ++.PHONY: filesinstall ++realinstall: filesinstall ++ ++.if defined(FILES) && !empty(FILES) ++FILESDIR?=${BINDIR} ++FILESOWN?=${BINOWN} ++FILESGRP?=${BINGRP} ++FILESMODE?=${NONBINMODE} ++.for F in ${FILES} ++FILESDIR_${F}?=${FILESDIR} ++FILESOWN_${F}?=${FILESOWN} ++FILESGRP_${F}?=${FILESGRP} ++FILESMODE_${F}?=${FILESMODE} ++.if defined(FILESNAME) ++FILESNAME_${F} ?= ${FILESNAME} ++.else ++FILESNAME_${F} ?= ${F:T} ++.endif ++filesinstall:: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}} ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}} ++.endif ++.if !defined(BUILD) ++${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}} ++${DESTDIR}${FILESDIR_${F}}/${FILESNAME_${F}}: ${F} ++ ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${FILESOWN_${F}} \ ++ -g ${FILESGRP_${F}} -m ${FILESMODE_${F}} ${.ALLSRC} ${.TARGET} ++.endfor ++.endif ++ ++.if !target(filesinstall) ++filesinstall:: ++.endif ++ ++FILES:= +--- pmake-1.111.orig/mk/bsd.inc.mk ++++ pmake-1.111/mk/bsd.inc.mk +@@ -0,0 +1,25 @@ ++# $NetBSD: bsd.inc.mk,v 1.12 1999/02/04 11:58:30 christos Exp $ ++ ++.PHONY: incinstall ++includes: ${INCS} incinstall ++ ++.if defined(INCS) ++.for I in ${INCS} ++incinstall:: ${DESTDIR}${INCSDIR}/$I ++ ++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${INCSDIR}/$I ++.endif ++${DESTDIR}${INCSDIR}/$I: $I ++ @cmp -s ${.ALLSRC} ${.TARGET} > /dev/null 2>&1 || \ ++ (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \ ++ -g ${BINGRP} -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}" && \ ++ ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \ ++ -m ${NONBINMODE} ${.ALLSRC} ${.TARGET}) ++.endfor ++.endif ++ ++.if !target(incinstall) ++incinstall:: ++.endif +--- pmake-1.111.orig/mk/bsd.info.mk ++++ pmake-1.111/mk/bsd.info.mk +@@ -0,0 +1,60 @@ ++# $NetBSD: bsd.info.mk,v 1.7.2.1 1999/04/22 14:46:13 perry Exp $ ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++.include <bsd.own.mk> ++.include <bsd.obj.mk> ++.MAIN: all ++.endif ++ ++MAKEINFO?= makeinfo ++INFOFLAGS?= ++INSTALL_INFO?= install-info ++ ++.SUFFIXES: .txi .texi .texinfo .info ++ ++.txi.info .texi.info .texinfo.info: ++ @${MAKEINFO} ${INFOFLAGS} --no-split -o $@ $< ++ ++.if defined(TEXINFO) && !empty(TEXINFO) && ${MKINFO} != "no" ++INFOFILES= ${TEXINFO:C/\.te?xi(nfo)?$/.info/} ++FILES+= ${INFOFILES} ++ ++infoinstall: ++.for F in ${INFOFILES} ++ @${INSTALL_INFO} --remove --info-dir=${DESTDIR}${INFODIR} ${DESTDIR}${INFODIR}/${F} ++ ${INSTALL_INFO} --info-dir=${DESTDIR}${INFODIR} ${DESTDIR}${INFODIR}/${F} ++.endfor ++ ++.for F in ${INFOFILES} ++FILESDIR_${F}= ${INFODIR} ++FILESOWN_${F}= ${INFOOWN} ++FILESGRP_${F}= ${INFOGRP} ++FILESMODE_${F}= ${INFOMODE} ++FILESNAME_${F}= ${F:T} ++.endfor ++ ++all: ${INFOFILES} ++.else ++all: ++.endif ++ ++.if ${MKINFO} != "no" ++cleaninfo: ++ rm -f ${INFOFILES} ++.else ++cleaninfo infoinstall: ++.endif ++ ++.include <bsd.files.mk> ++ ++# These need to happen *after* filesinstall. ++.PHONY: infoinstall cleaninfo ++realinstall: infoinstall ++cleandir distclean: cleaninfo ++ ++# Make sure all of the standard targets are defined, even if they do nothing. ++clean depend includes lint regress tags: +--- pmake-1.111.orig/mk/bsd.kinc.mk ++++ pmake-1.111/mk/bsd.kinc.mk +@@ -0,0 +1,136 @@ ++# $NetBSD: bsd.kinc.mk,v 1.5 1999/02/04 11:58:30 christos Exp $ ++ ++# System configuration variables: ++# ++# SYS_INCLUDE "symlinks": symlinks to include directories are created. ++# This may not work 100% properly for all headers. ++# ++# "copies": directories are made, if necessary, and headers ++# are installed into them. ++# ++# Variables: ++# ++# INCSDIR Directory to install includes into (and/or make, and/or ++# symlink, depending on what's going on). ++# ++# KDIR Kernel directory to symlink to, if SYS_INCLUDE is symlinks. ++# If unspecified, no action will be taken when making include ++# for the directory if SYS_INCLUDE is symlinks. ++# ++# INCS Headers to install, if SYS_INCLUDE is copies. ++# ++# DEPINCS Headers to install which are built dynamically. ++# ++# SUBDIR Subdirectories to enter ++# ++# SYMLINKS Symlinks to make (unconditionally), a la bsd.links.mk. ++# Note that the original bits will be 'rm -rf'd rather than ++# just 'rm -f'd, to make the right thing happen with include ++# directories. ++# ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++.include <bsd.own.mk> ++.MAIN: all ++.endif ++ ++# Change SYS_INCLUDE in bsd.own.mk or /etc/mk.conf to "symlinks" if you ++# don't want copies ++SYS_INCLUDE?= copies ++ ++# If DESTDIR is set, we're probably building a release, so force "copies". ++.if defined(DESTDIR) && (${DESTDIR} != "/" && !empty(DESTDIR)) ++SYS_INCLUDE= copies ++.endif ++ ++ ++.PHONY: incinstall ++includes: ${INCS} incinstall ++ ++ ++.if ${SYS_INCLUDE} == "symlinks" ++ ++# don't install includes, just make symlinks. ++ ++.if defined(KDIR) ++SYMLINKS+= ${KDIR} ${INCSDIR} ++.endif ++ ++.else # not symlinks ++ ++# make sure the directory is OK, and install includes. ++ ++.PRECIOUS: ${DESTDIR}${INCSDIR} ++.PHONY: ${DESTDIR}${INCSDIR} ++${DESTDIR}${INCSDIR}: ++ @if [ ! -d ${.TARGET} ] || [ -L ${.TARGET} ] ; then \ ++ echo creating ${.TARGET}; \ ++ /bin/rm -rf ${.TARGET}; \ ++ ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 ${.TARGET}; \ ++ fi ++ ++incinstall:: ${DESTDIR}${INCSDIR} ++ ++.if defined(INCS) ++.for I in ${INCS} ++incinstall:: ${DESTDIR}${INCSDIR}/$I ++ ++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${INCSDIR}/$I ++.endif ++${DESTDIR}${INCSDIR}/$I: ${DESTDIR}${INCSDIR} $I ++ @cmp -s ${.CURDIR}/$I ${.TARGET} > /dev/null 2>&1 || \ ++ (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \ ++ -g ${BINGRP} -m ${NONBINMODE} ${.CURDIR}/$I ${.TARGET}" && \ ++ ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \ ++ -m ${NONBINMODE} ${.CURDIR}/$I ${.TARGET}) ++.endfor ++.endif ++ ++.if defined(DEPINCS) ++.for I in ${DEPINCS} ++incinstall:: ${DESTDIR}${INCSDIR}/$I ++ ++.PRECIOUS: ${DESTDIR}${INCSDIR}/$I ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${INCSDIR}/$I ++.endif ++${DESTDIR}${INCSDIR}/$I: ${DESTDIR}${INCSDIR} $I ++ @cmp -s $I ${.TARGET} > /dev/null 2>&1 || \ ++ (echo "${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} \ ++ -g ${BINGRP} -m ${NONBINMODE} $I ${.TARGET}" && \ ++ ${INSTALL} ${RENAME} ${PRESERVE} -c -o ${BINOWN} -g ${BINGRP} \ ++ -m ${NONBINMODE} $I ${.TARGET}) ++.endfor ++.endif ++ ++.endif # not symlinks ++ ++.if defined(SYMLINKS) && !empty(SYMLINKS) ++incinstall:: ++ @set ${SYMLINKS}; \ ++ while test $$# -ge 2; do \ ++ l=$$1; \ ++ shift; \ ++ t=${DESTDIR}$$1; \ ++ shift; \ ++ echo ".include <bsd.own.mk>"; \ ++ echo "all:: $$t"; \ ++ echo ".PHONY: $$t"; \ ++ echo "$$t:"; \ ++ echo " @echo \"$$t -> $$l\""; \ ++ echo " @rm -rf $$t"; \ ++ echo " @ln -s $$l $$t"; \ ++ done | ${MAKE} -f- ++.endif ++ ++.if !target(incinstall) ++incinstall:: ++.endif ++ ++.include <bsd.subdir.mk> +--- pmake-1.111.orig/mk/bsd.kmod.mk ++++ pmake-1.111/mk/bsd.kmod.mk +@@ -0,0 +1,95 @@ ++# $NetBSD: bsd.kmod.mk,v 1.30 1999/03/10 06:34:19 ross Exp $ ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++.include <bsd.own.mk> ++.include <bsd.obj.mk> ++.MAIN: all ++.endif ++ ++.PHONY: cleankmod kmodinstall load unload ++realinstall: kmodinstall ++clean cleandir distclean: cleankmod ++ ++S?= /sys ++KERN= $S/kern ++ ++CFLAGS+= ${COPTS} -D_KERNEL -D_LKM -I. -I${.CURDIR} -I$S -I$S/arch ++ ++DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} ++CLEANFILES+= ${DPSRCS} ++.if defined(YHEADER) ++CLEANFILES+= ${SRCS:M*.y:.y=.h} ++.endif ++ ++OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.o/g} ++ ++.if !defined(PROG) ++PROG= ${KMOD}.o ++.endif ++ ++${PROG}: ${DPSRCS} ${OBJS} ${DPADD} ++ ${LD} -r ${LDFLAGS} -o tmp.o ${OBJS} ++ mv tmp.o ${.TARGET} ++ ++.if !defined(MAN) ++MAN= ${KMOD}.4 ++.endif ++ ++all: machine-links ${PROG} ++ ++.PHONY: machine-links ++beforedepend: machine-links ++machine-links: ++ -rm -f machine && \ ++ ln -s $S/arch/${MACHINE}/include machine ++ -rm -f ${MACHINE_ARCH} && \ ++ ln -s $S/arch/${MACHINE_ARCH}/include ${MACHINE_ARCH} ++CLEANFILES+=machine ${MACHINE_ARCH} ++ ++cleankmod: ++ rm -f a.out [Ee]rrs mklog core *.core \ ++ ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES} ++ ++# ++# define various install targets ++# ++.if !target(kmodinstall) ++kmodinstall:: ${DESTDIR}${KMODDIR}/${PROG} ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${KMODDIR}/${PROG} ++.endif ++.if !defined(BUILD) ++${DESTDIR}${KMODDIR}/${PROG}: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${KMODDIR}/${PROG} ++${DESTDIR}${KMODDIR}/${PROG}: ${PROG} ++ ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${KMODOWN} -g ${KMODGRP} \ ++ -m ${KMODMODE} ${.ALLSRC} ${.TARGET} ++.endif ++ ++lint: ${LOBJS} ++.if defined(LOBJS) && !empty(LOBJS) ++ ${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD} ++.endif ++ ++.if !target(load) ++load: ${PROG} ++ /sbin/modload -o ${KMOD} -e${KMOD}_lkmentry ${PROG} ++.endif ++ ++.if !target(unload) ++unload: ${PROG} ++ /sbin/modunload -n ${KMOD} ++.endif ++ ++.include <bsd.man.mk> ++.include <bsd.links.mk> ++.include <bsd.dep.mk> ++.include <bsd.sys.mk> ++ ++.-include "machine/Makefile.inc" +--- pmake-1.111.orig/mk/bsd.lib.mk ++++ pmake-1.111/mk/bsd.lib.mk +@@ -0,0 +1,396 @@ ++# $NetBSD: bsd.lib.mk,v 1.152 1999/03/30 09:30:43 fair Exp $ ++# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++.include <bsd.own.mk> ++.include <bsd.obj.mk> ++.MAIN: all ++.endif ++ ++.PHONY: checkver cleanlib libinstall ++realinstall: checkver libinstall ++clean cleandir distclean: cleanlib ++ ++.if exists(${.CURDIR}/shlib_version) ++SHLIB_MAJOR != . ${.CURDIR}/shlib_version ; echo $$major ++SHLIB_MINOR != . ${.CURDIR}/shlib_version ; echo $$minor ++ ++# Check for higher installed library versions. ++.if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ ++ exists(${BSDSRCDIR}/lib/checkver) ++checkver: ++ @(cd ${.CURDIR} && \ ++ ${BSDSRCDIR}/lib/checkver -d ${DESTDIR}${LIBDIR} ${LIB}) ++.else ++checkver: ++.endif ++.else ++checkver: ++.endif ++ ++# add additional suffixes not exported. ++# .po is used for profiling object files. ++# .so is used for PIC object files. ++.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .m .F .f .r .y .l .cl .p .h ++.SUFFIXES: .sh .m4 .m ++ ++ ++# Set PICFLAGS to cc flags for producing position-independent code, ++# if not already set. Includes -DPIC, if required. ++ ++# Data-driven table using make variables to control how shared libraries ++# are built for different platforms and object formats. ++# OBJECT_FMT: currently either "ELF" or "a.out", from <bsd.own.mk> ++# SHLIB_SOVERSION: version number to be compiled into a shared library ++# via -soname. Usualy ${SHLIB_MAJOR} on ELF. ++# NetBSD/pmax used to use ${SHLIB_MAJOR}.{SHLIB-MINOR}. ++# SHLIB_SHFLAGS: Flags to tell ${LD} to emit shared library. ++# with ELF, also set shared-lib version for ld.so. ++# SHLIB_LDSTARTFILE: support .o file, call C++ file-level constructors ++# SHLIB_LDENDFILE: support .o file, call C++ file-level destructors ++# CPPICFLAGS: flags for ${CPP} to preprocess .[sS] files for ${AS} ++# CPICFLAGS: flags for ${CC} to compile .[cC] files to .so objects. ++# CAPICFLAGS flags for {$CC} to compiling .[Ss] files ++# (usually just ${CPPPICFLAGS} ${CPICFLAGS}) ++# APICFLAGS: flags for ${AS} to assemble .[sS] to .so objects. ++ ++.if ${MACHINE_ARCH} == "alpha" ++ # Alpha-specific shared library flags ++CPICFLAGS ?= -fpic -DPIC ++CPPPICFLAGS?= -DPIC ++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} ++APICFLAGS ?= ++.elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" ++ # mips-specific shared library flags ++ ++# On mips, all libs need to be compiled with ABIcalls, not just sharedlibs. ++CPICFLAGS?= ++APICFLAGS?= ++#CPICFLAGS?= -fpic -DPIC ++#APICFLAGS?= -DPIC ++ ++# so turn shlib PIC flags on for ${CPP}, ${CC}, and ${AS} as follows: ++AINC+=-DPIC -DABICALLS ++COPTS+= -fPIC ${AINC} ++AFLAGS+= -fPIC ++AS+= -KPIC ++ ++.elif ${MACHINE_ARCH} == "sparc" && ${OBJECT_FMT} == "ELF" ++ ++CPICFLAGS ?= -fpic -DPIC ++CPPPICFLAGS?= -DPIC ++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} ++APICFLAGS ?= -KPIC ++ ++.elif (${MACHINE} == "debian") ++ ++SHLIB_TYPE=ELF ++SHLIB_LDSTARTFILE= ++SHLIB_LDENDFILE= ++SHLIB_SOVERSION=${SHLIB_MAJOR} ++CPICFLAGS ?= -fPIC -DPIC ++CPPPICFLAGS?= -DPIC ++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} ++APICFLAGS ?= ++ ++.else ++ ++# Platform-independent flags for NetBSD a.out shared libraries (and PowerPC) ++SHLIB_LDSTARTFILE= ++SHLIB_LDENDFILE= ++SHLIB_SHFLAGS= ++SHLIB_SOVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} ++CPICFLAGS?= -fpic -DPIC ++CPPPICFLAGS?= -DPIC ++CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} ++APICFLAGS?= -k ++ ++.endif ++ ++# Platform-independent linker flags for ELF shared libraries ++.if ${OBJECT_FMT} == "ELF" ++SHLIB_SOVERSION=${SHLIB_MAJOR} ++SHLIB_SHFLAGS=-soname lib${LIB}.so.${SHLIB_SOVERSION} ++SHLIB_LDSTARTFILE= ${DESTDIR}/usr/lib/crtbeginS.o ++SHLIB_LDENDFILE= ${DESTDIR}/usr/lib/crtendS.o ++.endif ++ ++CFLAGS+= ${COPTS} ++ ++.c.o: ++ @echo ${COMPILE.c:Q} ${.IMPSRC} ++ @${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -x -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.c.po: ++ @echo ${COMPILE.c:Q} -pg ${.IMPSRC} -o ${.TARGET} ++ @${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -X -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.c.so: ++ @echo ${COMPILE.c:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} ++ @${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -x -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.c.ln: ++ ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} ++ ++.cc.o .C.o: ++ @echo ${COMPILE.cc:Q} ${.IMPSRC} ++ @${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -x -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.cc.po .C.po: ++ @echo ${COMPILE.cc:Q} -pg ${.IMPSRC} -o ${.TARGET} ++ @${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -X -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.cc.so .C.so: ++ @echo ${COMPILE.cc:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} ++ @${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -x -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.m.o: ++ @echo ${COMPILE.m:Q} ${.IMPSRC} ++ @${COMPILE.m} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -x -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.m.po: ++ @echo ${COMPILE.m:Q} -pg ${.IMPSRC} -o ${.TARGET} ++ @${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -X -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.m.so: ++ @echo ${COMPILE.m:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} ++ @${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -x -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.S.o .s.o: ++ @echo ${COMPILE.S:Q} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} ++ @${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -x -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.S.po .s.po: ++ @echo ${COMPILE.S:Q} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} ++ @${COMPILE.S} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -X -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.S.so .s.so: ++ @echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} ++ @${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o ++ @${LD} -x -r ${.TARGET}.o -o ${.TARGET} ++ @rm -f ${.TARGET}.o ++ ++.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ ++ || ${MKLINKLIB} != "no" ++_LIBS=lib${LIB}.a ++.else ++_LIBS= ++.endif ++ ++.if ${MKPROFILE} != "no" ++_LIBS+=lib${LIB}_p.a ++.endif ++ ++.if ${MKPIC} != "no" ++_LIBS+=lib${LIB}_pic.a ++.if defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) ++_LIBS+=lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ++.endif ++.endif ++ ++.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" ++_LIBS+=llib-l${LIB}.ln ++.endif ++ ++all: ${SRCS} ${_LIBS} ++ ++__archivebuild: .USE ++ @rm -f ${.TARGET} ++ @${AR} cq ${.TARGET} `NM=${NM} ${LORDER} ${.ALLSRC:M*o} | ${TSORT}` ++ ${RANLIB} ${.TARGET} ++ ++__archiveinstall: .USE ++ ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \ ++ -m 600 ${.ALLSRC} ${.TARGET} ++ ${RANLIB} -t ${.TARGET} ++ chmod ${LIBMODE} ${.TARGET} ++ ++DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} ++CLEANFILES+= ${DPSRCS} ++.if defined(YHEADER) ++CLEANFILES+= ${SRCS:M*.y:.y=.h} ++.endif ++ ++OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.o/g} ++lib${LIB}.a:: ${OBJS} __archivebuild ++ @echo building standard ${LIB} library ++ ++POBJS+= ${OBJS:.o=.po} ++lib${LIB}_p.a:: ${POBJS} __archivebuild ++ @echo building profiled ${LIB} library ++ ++SOBJS+= ${OBJS:.o=.so} ++lib${LIB}_pic.a:: ${SOBJS} __archivebuild ++ @echo building shared object ${LIB} library ++ ++lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: lib${LIB}_pic.a ${DPADD} \ ++ ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} ++ @echo building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\) ++ @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ++.if defined(DESTDIR) ++ $(CC) -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ ++ ${SHLIB_LDSTARTFILE} \ ++ --whole-archive lib${LIB}_pic.a \ ++ -nostdlib -L${DESTDIR}${LIBDIR} -R${LIBDIR} \ ++ --no-whole-archive ${LDADD} \ ++ ${SHLIB_LDENDFILE} ++.else ++ $(CC) -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ ++ ${SHLIB_LDSTARTFILE} \ ++ --whole-archive lib${LIB}_pic.a --no-whole-archive ${LDADD} \ ++ ${SHLIB_LDENDFILE} ++.endif ++.if ${OBJECT_FMT} == "ELF" ++ rm -f lib${LIB}.so.${SHLIB_MAJOR} ++ ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ ++ lib${LIB}.so.${SHLIB_MAJOR} ++ rm -f lib${LIB}.so ++ ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ ++ lib${LIB}.so ++.endif ++ ++LOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} ++LLIBS?= -lc ++llib-l${LIB}.ln: ${LOBJS} ++ @echo building llib-l${LIB}.ln ++ @rm -f llib-l${LIB}.ln ++ @${LINT} -C${LIB} ${.ALLSRC} ${LLIBS} ++ ++cleanlib: ++ rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} ++ rm -f lib${LIB}.a ${OBJS} ++ rm -f lib${LIB}_p.a ${POBJS} ++ rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${SOBJS} ++ rm -f llib-l${LIB}.ln ${LOBJS} ++ ++.if defined(SRCS) ++afterdepend: .depend ++ @(TMP=/tmp/_depend$$$$; \ ++ sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so \1.ln:/' \ ++ < .depend > $$TMP; \ ++ mv $$TMP .depend) ++.endif ++ ++.if !target(libinstall) ++# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no ++libinstall:: ++ ++.if ${MKLINKLIB} != "no" ++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.a ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.a ++.endif ++.if !defined(BUILD) ++${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.a ++${DESTDIR}${LIBDIR}/lib${LIB}.a: lib${LIB}.a __archiveinstall ++.endif ++ ++.if ${MKPROFILE} != "no" ++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a ++.endif ++.if !defined(BUILD) ++${DESTDIR}${LIBDIR}/lib${LIB}_p.a: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a ++${DESTDIR}${LIBDIR}/lib${LIB}_p.a: lib${LIB}_p.a __archiveinstall ++.endif ++ ++.if ${MKPIC} != "no" && ${MKPICINSTALL} != "no" ++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a ++.endif ++.if !defined(BUILD) ++${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a ++${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}_pic.a __archiveinstall ++.endif ++ ++.if ${MKPIC} != "no" && defined(SHLIB_MAJOR) && defined(SHLIB_MINOR) ++libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ++.endif ++.if !defined(BUILD) ++${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ++${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ++ ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \ ++ -m ${LIBMODE} ${.ALLSRC} ${.TARGET} ++.if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR) ++ /sbin/ldconfig -m ${LIBDIR} ++.endif ++.if ${OBJECT_FMT} == "ELF" ++ rm -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} ++ ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ ++ ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} ++ rm -f ${DESTDIR}${LIBDIR}/lib${LIB}.so ++.if ${MKLINKLIB} != "no" ++ ln -s lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \ ++ ${DESTDIR}${LIBDIR}/lib${LIB}.so ++.endif ++.endif ++.endif ++ ++.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" ++libinstall:: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln ++.endif ++.if !defined(BUILD) ++${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln ++${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: llib-l${LIB}.ln ++ ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${LIBOWN} -g ${LIBGRP} \ ++ -m ${LIBMODE} ${.ALLSRC} ${DESTDIR}${LINTLIBDIR} ++.endif ++.endif ++ ++.include <bsd.man.mk> ++.include <bsd.nls.mk> ++.include <bsd.files.mk> ++.include <bsd.inc.mk> ++.include <bsd.links.mk> ++.include <bsd.dep.mk> ++.include <bsd.sys.mk> ++ ++# Make sure all of the standard targets are defined, even if they do nothing. ++lint regress: +--- pmake-1.111.orig/mk/bsd.links.mk ++++ pmake-1.111/mk/bsd.links.mk +@@ -0,0 +1,43 @@ ++# $NetBSD: bsd.links.mk,v 1.8 1998/12/31 15:28:52 castor Exp $ ++ ++.PHONY: linksinstall ++realinstall: linksinstall ++ ++.if defined(SYMLINKS) && !empty(SYMLINKS) ++linksinstall:: ++ @set ${SYMLINKS}; \ ++ while test $$# -ge 2; do \ ++ l=$$1; \ ++ shift; \ ++ t=${DESTDIR}$$1; \ ++ shift; \ ++ echo ".include <bsd.own.mk>"; \ ++ echo "all:: $$t"; \ ++ echo ".PHONY: $$t"; \ ++ echo "$$t:"; \ ++ echo " @echo \"$$t -> $$l\""; \ ++ echo " @rm -f $$t"; \ ++ echo " @ln -s $$l $$t"; \ ++ done | ${MAKE} -f- ++.endif ++.if defined(LINKS) && !empty(LINKS) ++linksinstall:: ++ @set ${LINKS}; \ ++ while test $$# -ge 2; do \ ++ l=${DESTDIR}$$1; \ ++ shift; \ ++ t=${DESTDIR}$$1; \ ++ shift; \ ++ echo ".include <bsd.own.mk>"; \ ++ echo "all:: $$t"; \ ++ echo ".PHONY: $$t"; \ ++ echo "$$t:"; \ ++ echo " @echo \"$$t -> $$l\""; \ ++ echo " @rm -f $$t"; \ ++ echo " @ln $$l $$t"; \ ++ done | ${MAKE} -f- ++.endif ++ ++.if !target(linksinstall) ++linksinstall: ++.endif +--- pmake-1.111.orig/mk/bsd.man.mk ++++ pmake-1.111/mk/bsd.man.mk +@@ -0,0 +1,156 @@ ++# $NetBSD: bsd.man.mk,v 1.45 1999/02/13 16:34:39 christos Exp $ ++# @(#)bsd.man.mk 8.1 (Berkeley) 6/8/93 ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++.include <bsd.own.mk> ++.include <bsd.obj.mk> ++.MAIN: all ++.endif ++ ++.PHONY: catinstall maninstall catpages manpages catlinks manlinks cleanman ++.if ${MKMAN} != "no" ++realinstall: ${MANINSTALL} ++.endif ++cleandir distclean: cleanman ++ ++MANTARGET?= cat ++NROFF?= nroff ++TBL?= tbl ++ ++.SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \ ++ .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9 ++ ++.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1: ++.if !defined(USETBL) ++ @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}" ++ @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \ ++ (rm -f ${.TARGET}; false) ++.else ++ @echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}" ++ @${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \ ++ (rm -f ${.TARGET}; false) ++.endif ++ ++.if defined(MAN) && !empty(MAN) ++MANPAGES= ${MAN} ++CATPAGES= ${MANPAGES:C/(.*).([1-9])/\1.cat\2/} ++.endif ++ ++MINSTALL= ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${MANOWN} \ ++ -g ${MANGRP} -m ${MANMODE} ++ ++.if defined(MANZ) ++# chown and chmod are done afterward automatically ++MCOMPRESS= gzip -9cf ++MCOMPRESSSUFFIX= .gz ++.endif ++ ++catinstall: catlinks ++maninstall: manlinks ++ ++__installpage: .USE ++.if defined(MCOMPRESS) && !empty(MCOMPRESS) ++ @rm -f ${.TARGET} ++ ${MCOMPRESS} ${.ALLSRC} > ${.TARGET} ++ @chown ${MANOWN}:${MANGRP} ${.TARGET} ++ @chmod ${MANMODE} ${.TARGET} ++.else ++ ${MINSTALL} ${.ALLSRC} ${.TARGET} ++.endif ++ ++ ++# Rules for cat'ed man page installation ++.if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no" ++. for P in ${CATPAGES} ++catpages:: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX} ++ ++. if !defined(UPDATE) ++.PHONY: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX} ++. endif ++. if !defined(BUILD) ++${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE ++. endif ++ ++.PRECIOUS: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX} ++${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage ++. endfor ++.else ++catpages:: ++.endif ++ ++# Rules for source page installation ++.if defined(MANPAGES) && !empty(MANPAGES) ++. for P in ${MANPAGES} ++manpages:: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX} ++. if !defined(UPDATE) ++.PHONY: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX} ++. endif ++ ++.PRECIOUS: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX} ++${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage ++. endfor ++.else ++manpages:: ++.endif ++ ++.if ${MKCATPAGES} != "no" ++catlinks: catpages ++.if defined(MLINKS) && !empty(MLINKS) ++ @set ${MLINKS}; \ ++ while test $$# -ge 2; do \ ++ name=$$1; \ ++ shift; \ ++ dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ ++ l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \ ++ name=$$1; \ ++ shift; \ ++ dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ ++ t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \ ++ if [ -z "${UPDATE}" -o ! -f $$t ]; then \ ++ echo $$t -\> $$l; \ ++ ln -sf $$l $$t; \ ++ fi; \ ++ done ++.endif ++.else ++catlinks: ++.endif ++ ++manlinks: manpages ++.if defined(MLINKS) && !empty(MLINKS) ++ @set ${MLINKS}; \ ++ while test $$# -ge 2; do \ ++ name=$$1; \ ++ shift; \ ++ dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ ++ l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ ++ name=$$1; \ ++ shift; \ ++ dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ ++ t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ ++ if [ -z "${UPDATE}" -o ! -f $$t ]; then \ ++ echo $$t -\> $$l; \ ++ ln -sf $$l $$t; \ ++ fi; \ ++ done ++.endif ++ ++.if defined(CATPAGES) ++.if ${MKCATPAGES} != "no" && ${MKMAN} != "no" ++all: ${CATPAGES} ++.else ++all: ++.endif ++ ++cleanman: ++ rm -f ${CATPAGES} ++.else ++cleanman: ++.endif ++ ++# Make sure all of the standard targets are defined, even if they do nothing. ++clean depend includes lint regress tags: +--- pmake-1.111.orig/mk/bsd.nls.mk ++++ pmake-1.111/mk/bsd.nls.mk +@@ -0,0 +1,64 @@ ++# $NetBSD: bsd.nls.mk,v 1.17 1999/02/12 12:38:45 lukem Exp $ ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++ ++.MAIN: all ++.endif ++.PHONY: cleannls nlsinstall ++.if ${MKNLS} != "no" ++realinstall: nlsinstall ++.endif ++cleandir distclean: cleannls ++ ++.SUFFIXES: .cat .msg ++ ++.msg.cat: ++ @rm -f ${.TARGET} ++ gencat ${.TARGET} ${.IMPSRC} ++ ++.if defined(NLS) && !empty(NLS) ++NLSALL= ${NLS:.msg=.cat} ++.endif ++ ++.if !defined(NLSNAME) ++.if defined(PROG) ++NLSNAME=${PROG} ++.else ++NLSNAME=lib${LIB} ++.endif ++.endif ++ ++.if defined(NLSALL) ++.if ${MKNLS} != "no" ++all: ${NLSALL} ++.endif ++ ++cleannls: ++ rm -f ${NLSALL} ++ ++.for F in ${NLSALL} ++nlsinstall:: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat ++.endif ++.if !defined(BUILD) ++${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat ++${DESTDIR}${NLSDIR}/${F:T:R}/${NLSNAME}.cat: ${F} ++ ${INSTALL} -d ${.TARGET:H} ++ ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${NLSOWN} -g ${NLSGRP} \ ++ -m ${NLSMODE} ${.ALLSRC} ${.TARGET} ++.endfor ++.else ++cleannls: ++.endif ++ ++.if !target(nlsinstall) ++nlsinstall:: ++.endif +--- pmake-1.111.orig/mk/bsd.obj.mk ++++ pmake-1.111/mk/bsd.obj.mk +@@ -0,0 +1,54 @@ ++# $NetBSD: bsd.obj.mk,v 1.17 1999/02/12 04:13:26 lukem Exp $ ++ ++.if !target(__initialized_obj__) ++__initialized_obj__: ++.include <bsd.own.mk> ++.endif ++ ++.if ${MKOBJ} == "no" ++obj: ++.else ++ ++.if defined(OBJMACHINE) ++__objdir= obj.${MACHINE} ++.else ++__objdir= obj ++.endif ++ ++.if defined(USR_OBJMACHINE) ++__usrobjdir= ${BSDOBJDIR}.${MACHINE} ++__usrobjdirpf= ++.else ++__usrobjdir= ${BSDOBJDIR} ++.if defined(OBJMACHINE) ++__usrobjdirpf= .${MACHINE} ++.else ++__usrobjdirpf= ++.endif ++.endif ++ ++obj: ++ @cd ${.CURDIR}; rm -f ${__objdir} > /dev/null 2>&1 || true; \ ++ here=`/bin/pwd`; subdir=$${here#${BSDSRCDIR}/}; \ ++ if test $$here != $$subdir ; then \ ++ dest=${__usrobjdir}/$$subdir${__usrobjdirpf} ; \ ++ echo "$$here/${__objdir} -> $$dest"; \ ++ rm -rf ${__objdir}; \ ++ ln -s $$dest ${__objdir}; \ ++ if test -d ${__usrobjdir} -a ! -d $$dest; then \ ++ mkdir -p $$dest; \ ++ else \ ++ true; \ ++ fi; \ ++ else \ ++ true ; \ ++ dest=$$here/${__objdir} ; \ ++ if test ! -d ${__objdir} ; then \ ++ echo "making $$dest" ; \ ++ mkdir $$dest; \ ++ fi ; \ ++ fi; ++.endif ++ ++print-objdir: ++ @echo ${.OBJDIR} +--- pmake-1.111.orig/mk/bsd.own.mk ++++ pmake-1.111/mk/bsd.own.mk +@@ -0,0 +1,257 @@ ++# $NetBSD: bsd.own.mk,v 1.120 1999/02/24 14:42:36 drochner Exp $ ++ ++.if !defined(_BSD_OWN_MK_) ++_BSD_OWN_MK_=1 ++ ++.if defined(MAKECONF) && exists(${MAKECONF}) ++.include "${MAKECONF}" ++.elif exists(/etc/mk.conf) ++.include "/etc/mk.conf" ++.endif ++ ++# Defining `SKEY' causes support for S/key authentication to be compiled in. ++SKEY= yes ++# Defining `KERBEROS' causes support for Kerberos authentication to be ++# compiled in. ++#KERBEROS= yes ++# Defining 'KERBEROS5' causes support for Kerberos5 authentication to be ++# compiled in. ++#KERBEROS5= yes ++ ++# where the system object and source trees are kept; can be configurable ++# by the user in case they want them in ~/foosrc and ~/fooobj, for example ++BSDSRCDIR?= /usr/src ++BSDOBJDIR?= /usr/obj ++ ++BINGRP?= root ++BINOWN?= root ++BINMODE?= 755 ++NONBINMODE?= 644 ++ ++# Define MANZ to have the man pages compressed (gzip) ++MANZ= 1 ++ ++MANDIR?= /usr/share/man ++MANGRP?= root ++MANOWN?= root ++MANMODE?= ${NONBINMODE} ++MANINSTALL?= maninstall catinstall ++ ++INFODIR?= /usr/share/info ++INFOGRP?= root ++INFOOWN?= root ++INFOMODE?= ${NONBINMODE} ++ ++LIBDIR?= /usr/lib ++LINTLIBDIR?= /usr/libdata/lint ++LIBGRP?= ${BINGRP} ++LIBOWN?= ${BINOWN} ++LIBMODE?= ${NONBINMODE} ++ ++DOCDIR?= /usr/share/doc ++DOCGRP?= root ++DOCOWN?= root ++DOCMODE?= ${NONBINMODE} ++ ++NLSDIR?= /usr/share/nls ++NLSGRP?= root ++NLSOWN?= root ++NLSMODE?= ${NONBINMODE} ++ ++KMODDIR?= /usr/lkm ++KMODGRP?= root ++KMODOWN?= root ++KMODMODE?= ${NONBINMODE} ++ ++COPY?= -c ++.if defined(UPDATE) ++PRESERVE?= -p ++.else ++PRESERVE?= ++.endif ++RENAME?= ++STRIPFLAG?= -s ++ ++# Define SYS_INCLUDE to indicate whether you want symbolic links to the system ++# source (``symlinks''), or a separate copy (``copies''); (latter useful ++# in environments where it's not possible to keep /sys publicly readable) ++#SYS_INCLUDE= symlinks ++ ++# XXX The next two are temporary until the transition to UVM is complete. ++ ++# Systems on which UVM is the standard VM system. ++.if ${MACHINE} != "pica" ++UVM?= yes ++.endif ++ ++# Systems that use UVM's new pmap interface. ++.if ${MACHINE} == "alpha" || \ ++ ${MACHINE} == "i386" || \ ++ ${MACHINE} == "pc532" || \ ++ ${MACHINE} == "vax" ++PMAP_NEW?= yes ++.endif ++ ++# The sparc64 port is incomplete. ++.if ${MACHINE_ARCH} == "sparc64" ++NOPROFILE=1 ++NOPIC=1 ++NOLINT=1 ++.endif ++ ++# The PowerPC port is incomplete. ++.if ${MACHINE_ARCH} == "powerpc" ++NOPROFILE= ++.endif ++ ++# Data-driven table using make variables to control how ++# toolchain-dependent targets and shared libraries are built ++# for different platforms and object formats. ++# OBJECT_FMT: currently either "ELF" or "a.out". ++# SHLIB_TYPE: "ELF" or "a.out" or "" to force static libraries. ++# ++#.if ${MACHINE_ARCH} == "alpha" || \ ++# ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ ++# ${MACHINE_ARCH} == "powerpc" || \ ++# ${MACHINE_ARCH} == "sparc64" ++#OBJECT_FMT?=ELF ++#.else ++ ++# On Debian GNU/Linux, Everything is ELF. ++OBJECT_FMT?=a.out ++#.endif ++ ++# GNU sources and packages sometimes see architecture names differently. ++# This table maps an architecture name to its GNU counterpart. ++# Use as so: ${GNU_ARCH.${TARGET_ARCH}} or ${MACHINE_GNU_ARCH} ++GNU_ARCH.alpha=alpha ++GNU_ARCH.arm32=arm ++GNU_ARCH.i386=i386 ++GNU_ARCH.m68k=m68k ++GNU_ARCH.mipseb=mipseb ++GNU_ARCH.mipsel=mipsel ++GNU_ARCH.ns32k=ns32k ++GNU_ARCH.powerpc=powerpc ++GNU_ARCH.sparc=sparc ++GNU_ARCH.sparc64=sparc ++GNU_ARCH.vax=vax ++.if ${MACHINE_ARCH} == "mips" ++.INIT: ++ @echo Must set MACHINE_ARCH to one of mipseb or mipsel ++ @false ++.endif ++ ++.if ${MACHINE_ARCH} == "sparc64" ++MACHINE_GNU_ARCH=${MACHINE_ARCH} ++.else ++MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}} ++.endif ++ ++TARGETS+= all clean cleandir depend distclean includes install lint obj \ ++ regress tags ++.PHONY: all clean cleandir depend distclean includes install lint obj \ ++ regress tags beforedepend afterdepend beforeinstall \ ++ afterinstall realinstall ++ ++# set NEED_OWN_INSTALL_TARGET, if it's not already set, to yes ++# this is used by bsd.pkg.mk to stop "install" being defined ++NEED_OWN_INSTALL_TARGET?= yes ++ ++.if ${NEED_OWN_INSTALL_TARGET} == "yes" ++.if !target(install) ++install: .NOTMAIN beforeinstall subdir-install realinstall afterinstall ++beforeinstall: .NOTMAIN ++subdir-install: .NOTMAIN beforeinstall ++realinstall: .NOTMAIN beforeinstall ++afterinstall: .NOTMAIN subdir-install realinstall ++.endif ++.endif ++ ++# Define MKxxx variables (which are either yes or no) for users ++# to set in /etc/mk.conf and override on the make commandline. ++# These should be tested with `== "no"' or `!= "no"'. ++# The NOxxx variables should only be used by Makefiles. ++# ++ ++MKCATPAGES?=no ++ ++.if defined(NODOC) ++MKDOC=no ++#.elif !defined(MKDOC) ++#MKDOC=yes ++.else ++MKDOC?=yes ++.endif ++ ++MKINFO?=yes ++ ++.if defined(NOLINKLIB) ++MKLINKLIB=no ++.else ++MKLINKLIB?=yes ++.endif ++.if ${MKLINKLIB} == "no" ++MKPICINSTALL=no ++MKPROFILE=no ++.endif ++ ++.if defined(NOLINT) ++MKLINT=no ++.else ++MKLINT?=yes ++.endif ++ ++.if defined(NOMAN) ++MKMAN=no ++.else ++MKMAN?=yes ++.endif ++.if ${MKMAN} == "no" ++MKCATPAGES=no ++.endif ++ ++.if defined(NONLS) ++MKNLS=no ++.else ++MKNLS?=yes ++.endif ++ ++.if defined(NOOBJ) ++MKOBJ=no ++.else ++MKOBJ?=yes ++.endif ++ ++.if defined(NOPIC) ++MKPIC=no ++.else ++MKPIC?=yes ++.endif ++ ++.if defined(NOPICINSTALL) ++MKPICINSTALL=no ++.else ++MKPICINSTALL?=yes ++.endif ++ ++.if defined(NOPROFILE) ++MKPROFILE=no ++.else ++MKPROFILE?=yes ++.endif ++ ++.if defined(NOSHARE) ++MKSHARE=no ++.else ++MKSHARE?=yes ++.endif ++.if ${MKSHARE} == "no" ++MKCATPAGES=no ++MKDOC=no ++MKINFO=no ++MKMAN=no ++MKNLS=no ++.endif ++ ++ ++.endif # _BSD_OWN_MK_ +--- pmake-1.111.orig/mk/bsd.prog.mk ++++ pmake-1.111/mk/bsd.prog.mk +@@ -0,0 +1,202 @@ ++# $NetBSD: bsd.prog.mk,v 1.100 1999/02/12 01:10:08 lukem Exp $ ++# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++.include <bsd.own.mk> ++.include <bsd.obj.mk> ++.MAIN: all ++.endif ++ ++.PHONY: cleanprog proginstall scriptsinstall ++realinstall: proginstall scriptsinstall ++clean cleandir distclean: cleanprog ++ ++CFLAGS+= ${COPTS} ++ ++# ELF platforms depend on crtbegin.o and crtend.o ++.if ${OBJECT_FMT} == "ELF" ++LIBCRTBEGIN?= ${DESTDIR}/usr/lib/crtbegin.o ++LIBCRTEND?= ${DESTDIR}/usr/lib/crtend.o ++.else ++LIBCRTBEGIN?= ++LIBCRTEND?= ++.endif ++ ++LIBCRT0?= ++ ++LIBBZ2?= ${DESTDIR}/usr/lib/libbz2.a ++LIBC?= ${DESTDIR}/usr/lib/libc.a ++LIBC_PIC?= ${DESTDIR}/usr/lib/libc_pic.a ++LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a ++LIBCRYPT?= ${DESTDIR}/usr/lib/libcrypt.a ++LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a ++LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a ++LIBDES?= ${DESTDIR}/usr/lib/libdes.a ++LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a ++LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a ++LIBGNUMALLOC?= ${DESTDIR}/usr/lib/libgnumalloc.a ++LIBKDB?= ${DESTDIR}/usr/lib/libkdb.a ++LIBKRB?= ${DESTDIR}/usr/lib/libkrb.a ++LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a ++LIBL?= ${DESTDIR}/usr/lib/libl.a ++LIBM?= ${DESTDIR}/usr/lib/libm.a ++LIBMP?= ${DESTDIR}/usr/lib/libmp.a ++LIBNTP?= ${DESTDIR}/usr/lib/libntp.a ++LIBOBJC?= ${DESTDIR}/usr/lib/libobjc.a ++LIBPC?= ${DESTDIR}/usr/lib/libpc.a ++LIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a ++LIBPLOT?= ${DESTDIR}/usr/lib/libplot.a ++LIBPOSIX?= ${DESTDIR}/usr/lib/libposix.a ++LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a ++LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a ++LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a ++LIBTERMCAP?= ${DESTDIR}/usr/lib/libtermcap.a ++LIBTELNET?= ${DESTDIR}/usr/lib/libtelnet.a ++LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a ++LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a ++LIBY?= ${DESTDIR}/usr/lib/liby.a ++LIBZ?= ${DESTDIR}/usr/lib/libz.a ++ ++.if defined(SHAREDSTRINGS) ++CLEANFILES+=strings ++.c.o: ++ ${CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c - ++ @${CC} ${CFLAGS} -c x.c -o ${.TARGET} ++ @rm -f x.c ++ ++.cc.o: ++ ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c - ++ @mv -f x.c x.cc ++ @${CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET} ++ @rm -f x.cc ++ ++.C.o: ++ ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c - ++ @mv -f x.c x.C ++ @${CXX} ${CXXFLAGS} -c x.C -o ${.TARGET} ++ @rm -f x.C ++.endif ++ ++ ++.if defined(PROG) ++SRCS?= ${PROG}.c ++ ++DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} ++CLEANFILES+= ${DPSRCS} ++.if defined(YHEADER) ++CLEANFILES+= ${SRCS:M*.y:.y=.h} ++.endif ++ ++.if !empty(SRCS:N*.h:N*.sh) ++OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.o/g} ++LOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} ++.endif ++ ++.if defined(OBJS) && !empty(OBJS) ++.NOPATH: ${OBJS} ++.if defined(DESTDIR) ++ ++${PROG}: ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} ++ ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} -nostdlib -L${DESTDIR}/usr/lib ${LIBCRT0} ${LIBCRTBEGIN} ${OBJS} ${LDADD} -lgcc -lc -lgcc ${LIBCRTEND} ++ ++.else ++ ++${PROG}: ${LIBCRT0} ${DPSRCS} ${OBJS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} ++ ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD} ++ ++.endif # defined(DESTDIR) ++.endif # defined(OBJS) && !empty(OBJS) ++ ++.if !defined(MAN) ++MAN= ${PROG}.1 ++.endif # !defined(MAN) ++.endif # defined(PROG) ++ ++all: ${PROG} ++ ++cleanprog: ++ rm -f a.out [Ee]rrs mklog core *.core \ ++ ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES} ++ ++.if defined(SRCS) ++afterdepend: .depend ++ @(TMP=/tmp/_depend$$$$; \ ++ sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.ln:/' \ ++ < .depend > $$TMP; \ ++ mv $$TMP .depend) ++.endif ++ ++.if defined(PROG) && !target(proginstall) ++PROGNAME?= ${PROG} ++proginstall:: ${DESTDIR}${BINDIR}/${PROGNAME} ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${BINDIR}/${PROGNAME} ++.endif ++.if !defined(BUILD) ++${DESTDIR}${BINDIR}/${PROGNAME}: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${BINDIR}/${PROGNAME} ++${DESTDIR}${BINDIR}/${PROGNAME}: ${PROG} ++ ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${STRIPFLAG} -o ${BINOWN} \ ++ -g ${BINGRP} -m ${BINMODE} ${.ALLSRC} ${.TARGET} ++.endif ++ ++.if !target(proginstall) ++proginstall:: ++.endif ++ ++.if defined(SCRIPTS) && !target(scriptsinstall) ++SCRIPTSDIR?=${BINDIR} ++SCRIPTSOWN?=${BINOWN} ++SCRIPTSGRP?=${BINGRP} ++SCRIPTSMODE?=${BINMODE} ++.for S in ${SCRIPTS} ++SCRIPTSDIR_${S}?=${SCRIPTSDIR} ++SCRIPTSOWN_${S}?=${SCRIPTSOWN} ++SCRIPTSGRP_${S}?=${SCRIPTSGRP} ++SCRIPTSMODE_${S}?=${SCRIPTSMODE} ++.if defined(SCRIPTSNAME) ++SCRIPTSNAME_${S} ?= ${SCRIPTSNAME} ++.else ++SCRIPTSNAME_${S} ?= ${S:T:R} ++.endif ++SCRIPTSDIR_${S} ?= ${SCRIPTSDIR} ++scriptsinstall:: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}} ++.if !defined(UPDATE) ++.PHONY: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}} ++.endif ++.if !defined(BUILD) ++${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: .MADE ++.endif ++ ++.PRECIOUS: ${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}} ++${DESTDIR}${SCRIPTSDIR_${S}}/${SCRIPTSNAME_${S}}: ${S} ++ ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} -o ${SCRIPTSOWN_${S}} -g \ ++ ${SCRIPTSGRP_${S}} -m ${SCRIPTSMODE_${S}} ${.ALLSRC} ${.TARGET} ++.endfor ++.endif ++ ++.if !target(scriptsinstall) ++scriptsinstall:: ++.endif ++ ++lint: ${LOBJS} ++.if defined(LOBJS) && !empty(LOBJS) ++ ${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD} ++.endif ++ ++.include <bsd.man.mk> ++.include <bsd.nls.mk> ++.include <bsd.files.mk> ++.include <bsd.inc.mk> ++.include <bsd.links.mk> ++.include <bsd.dep.mk> ++.include <bsd.sys.mk> ++ ++# Make sure all of the standard targets are defined, even if they do nothing. ++regress: +--- pmake-1.111.orig/mk/bsd.subdir.mk ++++ pmake-1.111/mk/bsd.subdir.mk +@@ -0,0 +1,34 @@ ++# $NetBSD: bsd.subdir.mk,v 1.31 1999/02/11 05:01:39 tv Exp $ ++# @(#)bsd.subdir.mk 8.1 (Berkeley) 6/8/93 ++ ++.if !target(__initialized__) ++__initialized__: ++.if exists(${.CURDIR}/../Makefile.inc) ++.include "${.CURDIR}/../Makefile.inc" ++.endif ++.include <bsd.own.mk> ++.MAIN: all ++.endif ++ ++.for dir in ${SUBDIR} ++.if exists(${dir}.${MACHINE}) ++__REALSUBDIR+=${dir}.${MACHINE} ++.else ++__REALSUBDIR+=${dir} ++.endif ++.endfor ++ ++.for dir in ${__REALSUBDIR} ++.for targ in ${TARGETS} ++.PHONY: ${targ}-${dir} ++${targ}-${dir}: .MAKE ++ @echo "${targ} ===> ${_THISDIR_}${dir}" ++ @cd ${.CURDIR}/${dir}; \ ++ ${MAKE} "_THISDIR_=${_THISDIR_}${dir}/" ${targ} ++subdir-${targ}: ${targ}-${dir} ++${targ}: subdir-${targ} ++.endfor ++.endfor ++ ++# Make sure all of the standard targets are defined, even if they do nothing. ++${TARGETS}: +--- pmake-1.111.orig/mk/bsd.sys.mk ++++ pmake-1.111/mk/bsd.sys.mk +@@ -0,0 +1,110 @@ ++# $NetBSD: bsd.sys.mk,v 1.34 1999/01/31 09:17:20 mrg Exp $ ++# ++# Overrides used for NetBSD source tree builds. ++ ++.if defined(WARNS) && ${WARNS} == 1 ++CFLAGS+= -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith ++.endif ++.if !defined(NOGCCERROR) ++CFLAGS+= -Werror ++.endif ++CFLAGS+= ${CWARNFLAGS} ++ ++.if defined(DESTDIR) ++CPPFLAGS+= -nostdinc -idirafter ${DESTDIR}/usr/include ++LINTFLAGS+= -d ${DESTDIR}/usr/include ++.endif ++ ++.if defined(AUDIT) ++CPPFLAGS+= -D__AUDIT__ ++.endif ++ ++# Helpers for cross-compiling ++HOST_CC?= cc ++HOST_CFLAGS?= -O ++HOST_COMPILE.c?=${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} -c ++HOST_LINK.c?= ${HOST_CC} ${HOST_CFLAGS} ${HOST_CPPFLAGS} ${HOST_LDFLAGS} ++ ++HOST_CPP?= cpp ++HOST_CPPFLAGS?= ++ ++HOST_LD?= ld ++HOST_LDFLAGS?= ++ ++STRIPPROG?= strip ++ ++ ++.SUFFIXES: .m .o .ln .lo ++ ++# Objective C ++# (Defined here rather than in <sys.mk> because `.m' is not just ++# used for Objective C source) ++.m: ++ ${LINK.m} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.m.o: ++ ${COMPILE.m} ${.IMPSRC} ++ ++# Host-compiled C objects ++.c.lo: ++ ${HOST_COMPILE.c} -o ${.TARGET} ${.IMPSRC} ++ ++ ++.if defined(PARALLEL) || defined(LPREFIX) ++LPREFIX?=yy ++LFLAGS+=-P${LPREFIX} ++# Lex ++.l: ++ ${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC} ++ ${LINK.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c ${LDLIBS} -ll ++ rm -f ${.TARGET:R}.${LPREFIX}.c ++.l.c: ++ ${LEX.l} -o${.TARGET} ${.IMPSRC} ++.l.o: ++ ${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC} ++ ${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c ++ rm -f ${.TARGET:R}.${LPREFIX}.c ++.l.lo: ++ ${LEX.l} -o${.TARGET:R}.${LPREFIX}.c ${.IMPSRC} ++ ${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.${LPREFIX}.c ++ rm -f ${.TARGET:R}.${LPREFIX}.c ++.endif ++ ++# Yacc ++.if defined(YHEADER) || defined(YPREFIX) ++.if defined(YPREFIX) ++YFLAGS+=-p${YPREFIX} ++.endif ++.if defined(YHEADER) ++YFLAGS+=-d ++.endif ++.y: ++ ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} ++ ${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS} ++ rm -f ${.TARGET:R}.tab.c ${.TARGET:R}.tab.h ++.y.h: ${.TARGET:R}.c ++.y.c: ++ ${YACC.y} -o ${.TARGET} ${.IMPSRC} ++.y.o: ++ ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} ++ ${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c ++ rm -f ${.TARGET:R}.tab.c ${TARGET:R}.tab.h ++.y.lo: ++ ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} ++ ${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c ++ rm -f ${.TARGET:R}.tab.c ${TARGET:R}.tab.h ++.elif defined(PARALLEL) ++.y: ++ ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} ++ ${LINK.c} -o ${.TARGET} ${.TARGET:R}.tab.c ${LDLIBS} ++ rm -f ${.TARGET:R}.tab.c ++.y.c: ++ ${YACC.y} -o ${.TARGET} ${.IMPSRC} ++.y.o: ++ ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} ++ ${COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c ++ rm -f ${.TARGET:R}.tab.c ++.y.lo: ++ ${YACC.y} -b ${.TARGET:R} ${.IMPSRC} ++ ${HOST_COMPILE.c} -o ${.TARGET} ${.TARGET:R}.tab.c ++ rm -f ${.TARGET:R}.tab.c ++.endif +--- pmake-1.111.orig/mk/sys.mk ++++ pmake-1.111/mk/sys.mk +@@ -0,0 +1,207 @@ ++# $NetBSD: sys.mk,v 1.54 1999/03/10 14:06:14 mycroft Exp $ ++# @(#)sys.mk 8.2 (Berkeley) 3/21/94 ++ ++unix?= We run NetBSD. ++ ++.SUFFIXES: .out .a .ln .o .s .S .c .cc .C .F .f .r .y .l .cl .p .h .sh .m4 ++ ++.LIBS: .a ++ ++AR?= ar ++ARFLAGS?= rl ++RANLIB?= ranlib ++ ++AS?= as ++AFLAGS?= ++COMPILE.s?= ${CC} ${AFLAGS} -c ++LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} ++COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp ++LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} ++ ++CC?= cc ++.if ${MACHINE_ARCH} == "alpha" || \ ++ ${MACHINE_ARCH} == "arm32" || \ ++ ${MACHINE_ARCH} == "i386" || \ ++ ${MACHINE_ARCH} == "m68k" || \ ++ ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" || \ ++ ${MACHINE_ARCH} == "sparc" ++CFLAGS?= -O2 ++.else ++CFLAGS?= -O ++.endif ++COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c ++LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} ++ ++CXX?= c++ ++CXXFLAGS?= ${CFLAGS} ++COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c ++LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} ++ ++OBJC?= ${CC} ++OBJCFLAGS?= ${CFLAGS} ++COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c ++LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} ++ ++CPP?= cpp ++CPPFLAGS?= ++ ++FC?= f77 ++FFLAGS?= -O ++RFLAGS?= ++COMPILE.f?= ${FC} ${FFLAGS} -c ++LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS} ++COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c ++LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS} ++COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c ++LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS} ++ ++INSTALL?= install ++ ++LEX?= lex ++LFLAGS?= ++LEX.l?= ${LEX} ${LFLAGS} ++ ++LD?= ld ++LDFLAGS?= ++ ++LINT?= lint ++LINTFLAGS?= -chapbxzF ++ ++LORDER?= lorder ++ ++MAKE?= pmake ++ ++NM?= nm ++ ++PC?= pc ++PFLAGS?= ++COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c ++LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} ++ ++SHELL?= sh ++ ++SIZE?= size ++ ++TSORT?= tsort ++ ++YACC?= yacc ++YFLAGS?= ++YACC.y?= ${YACC} ${YFLAGS} ++ ++# C ++.c: ++ ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.c.o: ++ ${COMPILE.c} ${.IMPSRC} ++.c.a: ++ ${COMPILE.c} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++.c.ln: ++ ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} ++ ++# C++ ++.cc: ++ ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.cc.o: ++ ${COMPILE.cc} ${.IMPSRC} ++.cc.a: ++ ${COMPILE.cc} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++ ++.C: ++ ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.C.o: ++ ${COMPILE.cc} ${.IMPSRC} ++.C.a: ++ ${COMPILE.cc} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++ ++# Fortran/Ratfor ++.f: ++ ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.f.o: ++ ${COMPILE.f} ${.IMPSRC} ++.f.a: ++ ${COMPILE.f} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++ ++.F: ++ ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.F.o: ++ ${COMPILE.F} ${.IMPSRC} ++.F.a: ++ ${COMPILE.F} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++ ++.r: ++ ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.r.o: ++ ${COMPILE.r} ${.IMPSRC} ++.r.a: ++ ${COMPILE.r} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++ ++# Pascal ++.p: ++ ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.p.o: ++ ${COMPILE.p} ${.IMPSRC} ++.p.a: ++ ${COMPILE.p} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++ ++# Assembly ++.s: ++ ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.s.o: ++ ${COMPILE.s} ${.IMPSRC} ++.s.a: ++ ${COMPILE.s} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++.S: ++ ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} ++.S.o: ++ ${COMPILE.S} ${.IMPSRC} ++.S.a: ++ ${COMPILE.S} ${.IMPSRC} ++ ${AR} ${ARFLAGS} $@ $*.o ++ rm -f $*.o ++ ++# Lex ++.l: ++ ${LEX.l} ${.IMPSRC} ++ ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll ++ rm -f lex.yy.c ++.l.c: ++ ${LEX.l} ${.IMPSRC} ++ mv lex.yy.c ${.TARGET} ++.l.o: ++ ${LEX.l} ${.IMPSRC} ++ ${COMPILE.c} -o ${.TARGET} lex.yy.c ++ rm -f lex.yy.c ++ ++# Yacc ++.y: ++ ${YACC.y} ${.IMPSRC} ++ ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} ++ rm -f y.tab.c ++.y.c: ++ ${YACC.y} ${.IMPSRC} ++ mv y.tab.c ${.TARGET} ++.y.o: ++ ${YACC.y} ${.IMPSRC} ++ ${COMPILE.c} -o ${.TARGET} y.tab.c ++ rm -f y.tab.c ++ ++# Shell ++.sh: ++ rm -f ${.TARGET} ++ cp ${.IMPSRC} ${.TARGET} +--- pmake-1.111.orig/arch.c ++++ pmake-1.111/arch.c +@@ -173,7 +173,7 @@ + static FILE *ArchFindMember(char *, char *, struct ar_hdr *, const char *); + #if defined(__svr4__) || defined(__SVR4) || defined(__ELF__) + #define SVR4ARCHIVES +-static int ArchSVR4Entry(Arch *, char *, size_t, FILE *); ++static int ArchSVR4Entry(Arch *, char **, size_t, FILE *); + #endif + + #ifdef CLEANUP +@@ -535,7 +535,7 @@ + Arch *ar; /* Archive descriptor */ + Hash_Entry *he; /* Entry containing member's description */ + struct ar_hdr arh; /* archive-member header for reading archive */ +- char memName[MAXPATHLEN+1]; ++ char *memName = NULL; + /* Current member name while hashing. */ + + /* +@@ -617,7 +617,6 @@ + ar->fnametab = NULL; + ar->fnamesize = 0; + Hash_InitTable(&ar->members, -1); +- memName[AR_MAX_NAME_LEN] = '\0'; + + while (fread ((char *)&arh, sizeof (struct ar_hdr), 1, arch) == 1) { + if (strncmp ( arh.ar_fmag, ARFMAG, sizeof (arh.ar_fmag)) != 0) { +@@ -636,10 +635,9 @@ + arh.ar_size[sizeof(arh.ar_size)-1] = '\0'; + size = (int) strtol(arh.ar_size, NULL, 10); + +- (void) strncpy (memName, arh.ar_name, sizeof(arh.ar_name)); +- for (cp = &memName[AR_MAX_NAME_LEN]; *cp == ' '; cp--) { +- continue; +- } ++ memName = estrdup(arh.ar_name); ++ ++ for(cp = strchr(memName, 0)-1; *cp == ' '; cp--); + cp[1] = '\0'; + + #ifdef SVR4ARCHIVES +@@ -650,7 +648,7 @@ + /* + * svr4 magic mode; handle it + */ +- switch (ArchSVR4Entry(ar, memName, size, arch)) { ++ switch (ArchSVR4Entry(ar, &memName, size, arch)) { + case -1: /* Invalid data */ + goto badarch; + case 0: /* List of files entry */ +@@ -675,8 +673,8 @@ + + unsigned int elen = atoi(&memName[sizeof(AR_EFMT1)-1]); + +- if (elen > MAXPATHLEN) +- goto badarch; ++ memName = erealloc(memName, elen+1); ++ + if (fread (memName, elen, 1, arch) != 1) + goto badarch; + memName[elen] = '\0'; +@@ -692,6 +690,9 @@ + memcpy ((Address)Hash_GetValue (he), (Address)&arh, + sizeof (struct ar_hdr)); + } ++ /* time to free memName */ ++ free(memName); ++ + fseek (arch, (size + 1) & ~1, SEEK_CUR); + } + +@@ -742,15 +743,15 @@ + *----------------------------------------------------------------------- + */ + static int +-ArchSVR4Entry(Arch *ar, char *name, size_t size, FILE *arch) ++ArchSVR4Entry(Arch *ar, char **name, size_t size, FILE *arch) + { + #define ARLONGNAMES1 "//" + #define ARLONGNAMES2 "/ARFILENAMES" + size_t entry; + char *ptr, *eptr; + +- if (strncmp(name, ARLONGNAMES1, sizeof(ARLONGNAMES1) - 1) == 0 || +- strncmp(name, ARLONGNAMES2, sizeof(ARLONGNAMES2) - 1) == 0) { ++ if (strncmp(*name, ARLONGNAMES1, sizeof(ARLONGNAMES1) - 1) == 0 || ++ strncmp(*name, ARLONGNAMES2, sizeof(ARLONGNAMES2) - 1) == 0) { + + if (ar->fnametab != NULL) { + if (DEBUG(ARCH)) { +@@ -793,30 +794,30 @@ + return 0; + } + +- if (name[1] == ' ' || name[1] == '\0') ++ if ((*name)[1] == ' ' || (*name)[1] == '\0') + return 2; + +- entry = (size_t) strtol(&name[1], &eptr, 0); +- if ((*eptr != ' ' && *eptr != '\0') || eptr == &name[1]) { ++ entry = (size_t) strtol(&(*name)[1], &eptr, 0); ++ if ((*eptr != ' ' && *eptr != '\0') || eptr == &(*name)[1]) { + if (DEBUG(ARCH)) { +- printf("Could not parse SVR4 name %s\n", name); ++ printf("Could not parse SVR4 name %s\n", *name); + } + return 2; + } + if (entry >= ar->fnamesize) { + if (DEBUG(ARCH)) { + printf("SVR4 entry offset %s is greater than %lu\n", +- name, (u_long)ar->fnamesize); ++ *name, (u_long)ar->fnamesize); + } + return 2; + } + + if (DEBUG(ARCH)) { +- printf("Replaced %s with %s\n", name, &ar->fnametab[entry]); ++ printf("Replaced %s with %s\n", *name, &ar->fnametab[entry]); + } + +- (void) strncpy(name, &ar->fnametab[entry], MAXPATHLEN); +- name[MAXPATHLEN] = '\0'; ++ free(*name); ++ *name = estrdup(&ar->fnametab[entry]); + return 1; + } + #endif +@@ -926,12 +927,9 @@ + isdigit((unsigned char)arhPtr->ar_name[sizeof(AR_EFMT1) - 1])) { + + unsigned int elen = atoi(&arhPtr->ar_name[sizeof(AR_EFMT1)-1]); +- char ename[MAXPATHLEN]; ++ char *ename = NULL; + +- if (elen > MAXPATHLEN) { +- fclose (arch); +- return NULL; +- } ++ ename = emalloc(elen+1); + if (fread (ename, elen, 1, arch) != 1) { + fclose (arch); + return NULL; +@@ -945,6 +943,8 @@ + fseek (arch, -sizeof(struct ar_hdr) - elen, SEEK_CUR); + return (arch); + } ++ /* time to free ename */ ++ free(ename); + fseek (arch, -elen, SEEK_CUR); + goto skip; + } else +--- pmake-1.111.orig/buf.c ++++ pmake-1.111/buf.c +@@ -192,7 +192,8 @@ + { + + if (numBytesPtr != (int *)NULL) { +- *numBytesPtr = bp->inPtr - bp->outPtr; ++ intptr_t num = bp->inPtr - bp->outPtr; ++ *numBytesPtr = num; + } + + return (bp->outPtr); +--- pmake-1.111.orig/compat.c ++++ pmake-1.111/compat.c +@@ -130,7 +130,7 @@ + + Shell_Init(); /* setup default shell */ + +- for (cp = "#=|^(){};&<>*?[]:$`\\\n"; *cp != '\0'; cp++) { ++ for (cp = "~#=|^(){};&<>*?[]:$`\\\n"; *cp != '\0'; cp++) { + meta[(unsigned char) *cp] = 1; + } + /* +@@ -498,7 +498,7 @@ + } + goto cohorts; + } else if (DEBUG(MAKE)) { +- printf("out-of-date.\n"); ++ printf("out-of-date\n"); + } + + /* +--- pmake-1.111.orig/job.c ++++ pmake-1.111/job.c +@@ -2162,7 +2162,8 @@ + (void) fprintf(stdout, "Remaking `%s'\n", gn->name); + (void) fflush(stdout); + (void) strcpy(job->outFile, TMPPAT); +- job->outFd = mkstemp(job->outFile); ++ if ((job->outFd = mkstemp(job->outFile)) == -1) ++ Punt("Cannot create temp file: %s", strerror(errno)); + (void) fcntl(job->outFd, F_SETFD, 1); + } + } +--- pmake-1.111.orig/main.c ++++ pmake-1.111/main.c +@@ -825,7 +825,10 @@ + * in a different format). + */ + #ifdef POSIX +- Main_ParseArgLine(getenv("MAKEFLAGS")); ++ /* ++ * If we are called by GNU make, do not read MAKEFLAGS. ++ */ ++ Main_ParseArgLine(getenv(getenv("MAKELEVEL") ? "MAKE" : "MAKEFLAGS")); + #else + Main_ParseArgLine(getenv("MAKE")); + #endif +@@ -1149,6 +1152,9 @@ + } + free(path); + return(TRUE); ++ /* `path' is not freed before return because its ++ * pointer is stored somewhere else ++ */ + } + + +--- pmake-1.111.orig/make.1 ++++ pmake-1.111/make.1 +@@ -33,7 +33,7 @@ + .Dt MAKE 1 + .Os + .Sh NAME +-.Nm make ++.Nm pmake + .Nd maintain program dependencies + .Sh SYNOPSIS + .Nm +@@ -1233,7 +1233,7 @@ + .It Ic defined + Takes a variable name as an argument and evaluates to true if the variable + has been defined. +-.It Ic make ++.It Ic pmake + Takes a target name as an argument and evaluates to true if the target + was specified as part of + .Nm Ns 's +@@ -1602,7 +1602,6 @@ + .Sh SEE ALSO + .Xr mkdep 1 + .Sh HISTORY +-A +-.Nm ++A make + command appeared in + .At v7 . +--- pmake-1.111.orig/var.c ++++ pmake-1.111/var.c +@@ -124,6 +124,7 @@ + */ + + #ifndef NO_REGEX ++#include <stdio.h> + #include <sys/types.h> + #include <regex.h> + #endif +--- pmake-1.111.orig/debian/changelog ++++ pmake-1.111/debian/changelog +@@ -0,0 +1,220 @@ ++pmake (1.111-1) unstable; urgency=low ++ ++ * New upstream snapshot. ++ * This version properly parses arguments and does not crash when parameters ++ are missing (Closes: #287336, #316394). ++ * debian/control: ++ + Set policy to 3.6.2.1. ++ ++ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Thu, 7 Jul 2005 10:20:56 +0200 ++ ++pmake (1.98-3) unstable; urgency=low ++ ++ * mk/bsd.man.mk: ++ + Use symlinks instead of hard links when using the MLINKS directive ++ to link manual pages, courtesy of Robert Millan. ++ ++ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 12 Mar 2004 13:14:27 +0100 ++ ++pmake (1.98-2) unstable; urgency=low ++ ++ * buf.c: ++ + Work around a GCC 3 ICE on hppa. ++ ++ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Wed, 10 Mar 2004 18:43:16 +0100 ++ ++pmake (1.98-1) unstable; urgency=low ++ ++ * New maintainer (Closes: #218804). ++ * New upstream version from NetBSD HEAD (Closes: #134798). ++ * Moved to a non-native package. ++ * debian/rules: ++ + Switched to debhelper. ++ * main.c: ++ + Parse $MAKE instead of $MAKEFLAGS when called from GNU make to avoid ++ strange interactions (Closes: #189097). ++ ++ -- Sam Hocevar (Debian packages) <sam+deb@zoy.org> Fri, 27 Feb 2004 16:04:12 +0100 ++ ++pmake (1.45-11) unstable; urgency=low ++ ++ * Set defaults to match policy better. Closes: #150895. Thanks to ++ Matej Vela for the patch. ++ ++ -- Steve McIntyre <93sam@debian.org> Sun, 30 Jun 2002 23:52:31 +0100 ++ ++pmake (1.45-10) unstable; urgency=low ++ ++ * Fixed broken '.Nm ""' directives in the man page. Closes: #137768 ++ * Changed name from "make" to "pmake" in manpage. ++ ++ -- Steve McIntyre <93sam@debian.org> Tue, 12 Mar 2002 21:59:55 +0000 ++ ++pmake (1.45-9) unstable; urgency=low ++ ++ * Fixed broken .Bl directives in the man page. Closes: #117723 ++ ++ -- Steve McIntyre <93sam@debian.org> Sun, 04 Nov 2001 17:00:14 +0000 ++ ++pmake (1.45-8) unstable; urgency=high ++ ++ * High urgency because of two important bug fixes... ++ * Fixed important bug in getopt handling that broke -n flag in ++ recursive Makefiles. Closes: #109608 ++ * Modified shared library targets to use $(CC) -shared instead of ++ $(LD) -x -shared, which didn't work. Closes: #109959 ++ ++ -- Steve McIntyre <93sam@debian.org> Sat, 08 Sep 2001 15:35:11 +0100 ++ ++pmake (1.45-7) unstable; urgency=low ++ ++ * Don't depend on particular locations of groff's macros, as they may ++ change, and indeed have done with groff 1.17 (closes: ++ #101973). Thanks to Colin Watson for the patch. ++ ++ -- Steve McIntyre <93sam@debian.org> Sun, 24 Apr 2001 02:40:21 +0100 ++ ++pmake (1.45-6) unstable; urgency=low ++ ++ * Make sure that make execs a shell to expand target rules ++ containing "~". Closes: #89313. ++ * Fixed the definition of "sh" in job.c so that pmake will play ++ nicely with bash if non-compat mode is used (e.g parallel ++ makes). It was assuming that "sh" was "ash" and understood the -q ++ flag. ++ ++ -- Steve McIntyre <93sam@debian.org> Tue, 17 Apr 2001 02:10:41 +0100 ++ ++pmake (1.45-5) unstable; urgency=low ++ ++ * Applied patch for Hurd from Igor Khavkine <i_khavki@alcor.concordia.ca>. ++ * Added Build-Depends for groff. Closes: #90358 ++ * New maintainer address ++ * Updated Standards-Version. ++ ++ -- Steve McIntyre <93sam@debian.org> Thu, 22 Mar 2001 19:19:08 +0100 ++ ++pmake (1.45-4) unstable; urgency=low ++ ++ * New maintainer. ++ * Updated Standards-Version. ++ * Fixed multiple lintian warnings. ++ ++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 21 May 2000 18:36:23 +0100 ++ ++pmake (1.45-3.2) frozen unstable; urgency=low ++ ++ * it's for frozen too ++ ++ -- Jim Lynch <jwl@debian.org> Mon, 6 Mar 2000 09:03:28 +0800 ++ ++pmake (1.45-3.1) unstable; urgency=low ++ ++ * Apply patch in Bug#56878 (Closes Bug#56878) ++ ++ -- Jim Lynch <jwl@debian.org> Sun, 5 Mar 2000 12:45:54 +0800 ++ ++pmake (1.45-3) unstable; urgency=low ++ ++ * Unconditionally set OBJECT_FMT to "a.out" in mk/bsd.own.mk (Fixes ++ crtbegin/crtend.o problems on powerpc and alpha). (Closes Bug#38951). ++ ++ -- Edward Brocklesby <ejb@debian.org> Sun, 6 Jun 1999 09:35:15 +0000 ++ ++pmake (1.45-2) unstable; urgency=low ++ ++ * Fixed crt0.o stuff in mk/bsd.prog.mk. ++ * Fixed FUD in /usr/share/mk/bsd.README ++ ++ -- Edward Brocklesby <ejb@debian.org> Sun, 23 May 1999 16:55:06 +0000 ++ ++pmake (1.45-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Moved mk files back from /usr/lib/mk to /usr/share/mk. ++ ++ -- Edward Brocklesby <ejb@debian.org> Wed, 5 May 1999 21:08:58 +0000 ++ ++pmake (1.39-4) unstable; urgency=low ++ ++ * New maintainer. ++ ++ -- Edward Brocklesby <ejb@debian.org> Tue, 23 Feb 1999 21:01:53 +0000 ++ ++pmake (1.39-3) unstable; urgency=low ++ ++ * debian/control (Maintainer): new address. ++ * debian/copyright: ditto. ++ * debian/control (Standards-Version): updated to 2.5.0.0. ++ ++ -- James Troup <james@nocrew.org> Tue, 10 Nov 1998 13:37:41 +0000 ++ ++pmake (1.39-2) frozen unstable; urgency=medium ++ ++ * mk/bsd.man.mk: correct CATDEPS, Herbet Xu ++ <herbert@gondor.apana.org.au>. [#21158] ++ * debian/control (Standards-Version): Updated to 2.4.1.0. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 15 Apr 1998 12:12:11 +0200 ++ ++pmake (1.39-1) unstable; urgency=high ++ ++ * New upstream version [98-03-16]. ++ * Reverts back to .orig.tar.gz and .diff.gz. ++ * Replace mkdep with the one from OpenBSD as it deals with temporary ++ files in a secure fashion. [#19806] ++ * pmake now comes with ASCII and postscript versions of the pmake ++ tutorial in /usr/doc/pmake/. ++ * debian/control: Updated Standards-Version to 2.4.0.0 [#16780]. ++ * debian/copyright: Corrected ftp site information. ++ * debian/copyright: Expanded changes description. ++ * debian/rules: No longer uses {,} and other minor changes. ++ * mk/bsd.doc.mk: Groff's tmac macros are in /usr/share/groff/tmac, ++ not /usr/share/tmac on Debian GNU/Linux. ++ * mk/bsd.lib.mk: added a machine definition "debian". ++ * mk/bsd.own.mk: s#/usr/share/"/usr/" for MANDIR and DOCDIR. ++ * mk/bsd.own.mk: s/wheel/root/g. ++ * mk/bsd.own.mk: define MANZ. ++ * mk/bsd.own.mk: don't make files unwritable by owner. ++ * mk/bsd.prog.mk: undefine LIBCRT0. ++ * mk/sys.mk: MAKE is pmake not GNU make. ++ * var.c: #include <stdio.h> because <regex.h> needs it. ++ * util.c: don't try to redefine libc functions by #ifndefing a large ++ chunk on (__linux__). ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Thu, 19 Mar 1998 20:53:45 +0100 ++ ++pmake (1.0-17) unstable; urgency=low ++ ++ * Fixed mk/bsd.lib.mk so that bogus `-q' argument isn't passed to ++ tsort [#11536] ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Mon, 28 Jul 1997 21:17:39 +0100 ++ ++pmake (1.0-16) unstable; urgency=low ++ ++ * Abandonned debian diff, since the diff is bigger than the original ++ source. ++ * Added mkdep (again from NetBSD Current) [fixes #11464]. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Fri, 25 Jul 1997 13:50:44 +0100 ++ ++pmake (1.0-15) unstable; urgency=low ++ ++ * Updated source to NetBSD Current. ++ * Rebuilt with libc6. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Sat, 5 Jul 1997 01:10:27 +0100 ++ ++pmake (1.0-14) unstable; urgency=low ++ ++ * New maintainer. ++ * Upgraded to Standards 2.1.3.0 (Fixes bug #9491, #3793). ++ * bsd.lib.mk no longer passes spurious `T' argument to ar ++ (Fixes bug #3793), patch from Philip Blundell <pb@nexus.co.uk>. ++ ++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 14 May 1997 01:34:07 +0100 ++ ++Local variables: ++mode: debian-changelog ++End: +--- pmake-1.111.orig/debian/control ++++ pmake-1.111/debian/control +@@ -0,0 +1,15 @@ ++Source: pmake ++Section: devel ++Priority: optional ++Maintainer: Sam Hocevar (Debian packages) <sam+deb@zoy.org> ++Standards-Version: 3.6.2.1 ++Build-Depends: debhelper (>= 4.0), groff ++ ++Package: pmake ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: NetBSD make ++ pmake is a program designed to simplify the maintenance of other ++ programs. Its input is a list of specifications as to the files upon ++ which programs and other files depend. mkdep, a program to construct ++ Makefile dependency lists, is also included. +--- pmake-1.111.orig/debian/copyright ++++ pmake-1.111/debian/copyright +@@ -0,0 +1,71 @@ ++This is the Debian GNU/Linux prepackaged version of 4.4BSD make (pmake). ++ ++This package was put together by James Troup <james@nocrew.org>, from ++sources obtained from: ++ ftp.netbsd.org:/pub/NetBSD-current/src/usr.bin/make/ ++ ftp.openbsd.org:/pub/OpenBSD/src/usr.bin/mkdep/ ++ ftp.netbsd.org:/pub/NetBSD-current/src/share/mk/ ++This package was rebuilt by Sam Hocevar <sam@zoy.org> from the NetBSD ++CVS tree available from: ++ cvs://anoncvs@anoncvs.NetBSD.org:/cvsroot (module /src/usr.bin/make/) ++ ++Changes: ++ o added Debian GNU/Linux package maintenance system files. ++ o var.c: #include <stdio.h> because <regex.h> needs it. ++ o util.c: don't try to redefine libc functions by #ifndefing a large ++ chunk on (__linux__). ++ o mk/bsd.doc.mk: don't give groff explicit macro paths; instead let it work ++ them out for itself. ++ o mk/bsd.lib.mk: added a machine definition "debian" for Debian GNU/Linux. ++ o mk/bsd.man.mk: correct CATDEPS, Herbet Xu <herbert@gondor.apana.org.au>. ++ o mk/bsd.own.mk: change MANDIR and DOCDIR to reflect the FSSTND ++ orientated Debian GNU/Linux directory structure ++ (i.e. /usr/share/* -> /usr/*). ++ o mk/bsd.own.mk: s/wheel/root/g. ++ o mk/bsd.own.mk: define MANZ. ++ o mk/bsd.own.mk: don't make files unwritable by owner. ++ o mk/bsd.prog.mk: undefine LIBCRT0. ++ o mk/sys.mk: MAKE should be pmake and not make on Debian GNU/Linux. ++ o mk/sys.mk: tsort from bsdmainutils doesn't accept -q as an argument, ++ so don't try to pass it. ++ ++Modifications for Debian Copyright (C) 1997,1998 James Troup. ++ Copyright (C) 1999 Edward Brocklesby. ++ Copyright (C) 2003,2004 Sam Hocevar. ++/* ++ * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. ++ * Copyright (c) 1988, 1989 by Adam de Boor ++ * Copyright (c) 1989 by Berkeley Softworks ++ * All rights reserved. ++ * ++ * This code is derived from software contributed to Berkeley by ++ * Adam de Boor. ++ * ++ * 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. ++ * 3. All advertising materials mentioning features or use of this software ++ * must display the following acknowledgement: ++ * This product includes software developed by the University of ++ * California, Berkeley and its contributors. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. ++ */ +--- pmake-1.111.orig/debian/rules ++++ pmake-1.111/debian/rules +@@ -0,0 +1,61 @@ ++#!/usr/bin/make -f ++ ++#export DH_VERBOSE=1 ++ ++ARCH=$(shell dpkg --print-gnu-build-architecture) ++CFLAGS="-O2 -g -Wall -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= \ ++ -I. -DMACHINE=\\\"debian\\\" -DMACHINE_ARCH=\\\"${ARCH}\\\" \ ++ -DHAVE_SETENV -DHAVE_STRERROR -DHAVE_STRDUP -DHAVE_STRFTIME \ ++ -DHAVE_VSNPRINTF \ ++ -D_GNU_SOURCE" ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ $(MAKE) -f Makefile.boot CFLAGS=$(CFLAGS) ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ $(MAKE) -f Makefile.boot clean ++ rm -f pmake pmake.1 ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs usr/bin usr/share/mk usr/share/doc/pmake ++ cp bmake pmake ++ cp make.1 pmake.1 ++ dh_install pmake mkdep usr/bin ++ dh_install mk/* usr/share/mk/ ++ groff -Tascii -ms PSD.doc/tutorial.ms > \ ++ debian/pmake/usr/share/doc/pmake/tutorial.asc ++ groff -Tps -ms PSD.doc/tutorial.ms > \ ++ debian/pmake/usr/share/doc/pmake/tutorial.ps ++ gzip -9v debian/pmake/usr/share/doc/pmake/* ++ ++binary-indep: build install ++ ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs ++ dh_installchangelogs ++ dh_install ++ dh_installman pmake.1 mkdep.1 ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- pmake-1.111.orig/debian/compat ++++ pmake-1.111/debian/compat +@@ -0,0 +1 @@ ++4 +--- pmake-1.111.orig/mkdep ++++ pmake-1.111/mkdep +@@ -0,0 +1,113 @@ ++#!/bin/sh - ++# ++# $OpenBSD: mkdep.gcc.sh,v 1.8 1998/09/02 06:40:07 deraadt Exp $ ++# $NetBSD: mkdep.gcc.sh,v 1.9 1994/12/23 07:34:59 jtc Exp $ ++# ++# Copyright (c) 1991, 1993 ++# The Regents of the University of California. 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. ++# 3. All advertising materials mentioning features or use of this software ++# must display the following acknowledgement: ++# This product includes software developed by the University of ++# California, Berkeley and its contributors. ++# 4. Neither the name of the University nor the names of its contributors ++# may be used to endorse or promote products derived from this software ++# without specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. ++# ++# @(#)mkdep.gcc.sh 8.1 (Berkeley) 6/6/93 ++# ++ ++D=.depend # default dependency file is .depend ++append=0 ++pflag= ++ ++while : ++ do case "$1" in ++ # -a appends to the depend file ++ -a) ++ append=1 ++ shift ;; ++ ++ # -f allows you to select a makefile name ++ -f) ++ D=$2 ++ shift; shift ;; ++ ++ # the -p flag produces "program: program.c" style dependencies ++ # so .o's don't get produced ++ -p) ++ pflag=p ++ shift ;; ++ *) ++ break ;; ++ esac ++done ++ ++if [ $# = 0 ] ; then ++ echo 'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...' ++ exit 1 ++fi ++ ++DTMP=/tmp/mkdep$$ ++TMP=$DTMP/mkdep ++ ++um=`umask` ++umask 022 ++if ! mkdir $DTMP ; then ++ echo failed to create tmp dir $DTMP ++ exit 1 ++fi ++ ++umask $um ++trap 'rm -rf $DTMP ; trap 2 ; kill -2 $$' 1 2 3 13 15 ++ ++if [ x$pflag = x ]; then ++ ${CC:-cc} -M "$@" | sed -e 's; \./; ;g' > $TMP ++else ++ ${CC:-cc} -M "$@" | sed -e 's;\.o :; :;' -e 's; \./; ;g' > $TMP ++fi ++ ++if [ $? != 0 ]; then ++ echo 'mkdep: compile failed.' ++ rm -rf $DTMP ++ exit 1 ++fi ++ ++if [ $append = 1 ]; then ++ cat $TMP >> $D ++ if [ $? != 0 ]; then ++ echo 'mkdep: append failed.' ++ rm -rf $DTMP ++ exit 1 ++ fi ++else ++ mv $TMP $D ++ if [ $? != 0 ]; then ++ echo 'mkdep: rename failed.' ++ rm -rf $DTMP ++ exit 1 ++ fi ++fi ++ ++rm -rf $DTMP ++exit 0 +--- pmake-1.111.orig/mkdep.1 ++++ pmake-1.111/mkdep.1 +@@ -0,0 +1,106 @@ ++.\" $OpenBSD: mkdep.1,v 1.3 1998/09/26 19:55:08 aaron Exp $ ++.\" $NetBSD: mkdep.1,v 1.3 1994/12/23 07:34:56 jtc Exp $ ++.\" ++.\" Copyright (c) 1987, 1990, 1993 ++.\" The Regents of the University of California. 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. ++.\" 3. All advertising materials mentioning features or use of this software ++.\" must display the following acknowledgement: ++.\" This product includes software developed by the University of ++.\" California, Berkeley and its contributors. ++.\" 4. Neither the name of the University nor the names of its contributors ++.\" may be used to endorse or promote products derived from this software ++.\" without specific prior written permission. ++.\" ++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. ++.\" ++.\" @(#)mkdep.1 8.1 (Berkeley) 6/6/93 ++.\" ++.Dd June 6, 1993 ++.Dt MKDEP 1 ++.Os BSD 4.2 ++.Sh NAME ++.Nm mkdep ++.Nd construct Makefile dependency list ++.Sh SYNOPSIS ++.Nm mkdep ++.Op Fl ap ++.Op Fl f Ar file ++.Op Ar flags ++.Ar file Op Ar ... ++.Sh DESCRIPTION ++.Nm mkdep ++takes a set of flags for the C compiler and a list ++of C source files as arguments and constructs a set of include ++file dependencies which are written into the file ``.depend''. ++An example of its use in a Makefile might be: ++.Bd -literal -offset indent ++CFLAGS= -O -I../include ++SRCS= file1.c file2.c ++ ++depend: ++ mkdep ${CFLAGS} ${SRCS} ++.Ed ++.Pp ++where the macro SRCS is the list of C source files and the macro ++CFLAGS is the list of flags for the C compiler. ++.Pp ++The options are as follows: ++.Bl -tag -width Ds ++.It Fl a ++Append to the output file, ++so that multiple ++.Nm mkdep Ns 's ++may be run from a single Makefile. ++.It Fl f Ar file ++Write the include file dependencies to ++.Ar file , ++instead of the default ``.depend''. ++.It Fl p ++Cause ++.Nm mkdep ++to produce dependencies of the form: ++.Bd -literal -offset indent ++program: program.c ++.Ed ++.Pp ++so that subsequent makes will produce ++.Ar program ++directly from its C module rather than using an intermediate ++.Pa \&.o ++module. ++This is useful for programs whose source is contained in a single ++module. ++.El ++.Sh SEE ALSO ++.Xr cc 1 , ++.Xr cpp 1 , ++.Xr make 1 ++.Sh FILES ++.Bl -tag -width .depend -compact ++.It Pa .depend ++file containing list of dependencies ++.El ++.Sh HISTORY ++The ++.Nm mkdep ++command appeared in ++.Bx 4.3 Tahoe . diff --git a/source/d/pmake/slack-desc b/source/d/pmake/slack-desc new file mode 100644 index 000000000..d01c9b44e --- /dev/null +++ b/source/d/pmake/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pmake: pmake (BSD parallel make) +pmake: +pmake: This is PMake -- a parallel Make program originally written for the +pmake: Sprite operating system, ported from BSD Unix. This may be useful if +pmake: you're going to port software with Makefiles designed for BSD. +pmake: +pmake: PMake was written by Adam de Boor. +pmake: +pmake: +pmake: +pmake: diff --git a/source/d/python/python.SlackBuild b/source/d/python/python.SlackBuild new file mode 100755 index 000000000..88445fd8d --- /dev/null +++ b/source/d/python/python.SlackBuild @@ -0,0 +1,142 @@ +#!/bin/bash + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.6.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-python +rm -rf $PKG +mkdir -p $TMP $PKG + +# Don't set any SLKCFLAGS here, or OPT="$SLKCFLAGS" before the ./configure. +# Python gets the compile options right without any help. +if [ "$ARCH" = "i486" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + LIBDIRSUFFIX="" +fi + +# Location for Python site-packages: +SITEPK=$PKG/usr/lib${LIBDIRSUFFIX}/python2.6/site-packages +# same as above without $PKG +TOOLSDIR=/usr/lib${LIBDIRSUFFIX}/python2.6/site-packages + +cd $TMP +rm -rf Python-$VERSION +tar xf $CWD/Python-$VERSION.tar.?z* || exit 1 +cd Python-$VERSION + +zcat $CWD/python.readline.set_pre_input_hook.diff.gz | patch -p1 --verbose || exit 1 + +if [ "$ARCH" = "x86_64" ]; then + # Install to lib64 instead of lib: + zcat $CWD/python.x86_64.diff.gz | patch -p1 --verbose || exit 1 + # Python must report /usr/lib64/python2.6/site-packages as python_lib_dir: + zcat $CWD/python.pure64.diff.gz | patch -p1 --verbose || exit 1 +fi + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/python-$VERSION \ + --with-ncurses \ + --with-threads \ + --enable-ipv6 \ + --enable-shared \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Install some python-demo files: +mkdir -p $PKG/usr/doc/python-$VERSION +cp -a Demo $PKG/usr/doc/python-$VERSION + +# We'll install the python-tools under site-packages: +mkdir -p $SITEPK +cp -a Tools/* $SITEPK + +mkdir -p $PKG/usr/doc/python-$VERSION +mv $SITEPK/README $PKG/usr/doc/python-$VERSION/README.python-tools +( cd $PKG/usr/doc/python-$VERSION + ln -sf $TOOLSDIR Tools +) +# Make a few useful symlinks: +mkdir -p $PKG/usr/bin +( cd $PKG/usr/bin + ln -sf $TOOLSDIR/modulator/modulator.py modulator + ln -sf $TOOLSDIR/pynche/pynche pynche + ln -sf $TOOLSDIR/i18n/msgfmt.py . + ln -sf $TOOLSDIR/i18n/pygettext.py . +) + +# Install docs: +mkdir -p $PKG/usr/doc/python-$VERSION/Documentation +cp -a README LICENSE $PKG/usr/doc/python-$VERSION +cp -a Misc $PKG/usr/doc/python-$VERSION +tar xf $CWD/python-$VERSION-docs-text.tar.?z* +mv python-${VERSION}-docs-text/* $PKG/usr/doc/python-$VERSION/Documentation +chown -R root:root $PKG/usr/doc/python-$VERSION + +( cd $PKG/usr/bin + rm -f python + ln -sf python2.6 python +) + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/python-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/python/python.pure64.diff b/source/d/python/python.pure64.diff new file mode 100644 index 000000000..a0d06aac4 --- /dev/null +++ b/source/d/python/python.pure64.diff @@ -0,0 +1,32 @@ +diff -uar Python-2.6.2.orig/Lib/distutils/command/install.py Python-2.6.2/Lib/distutils/command/install.py +--- Python-2.6.2.orig/Lib/distutils/command/install.py 2009-04-29 22:15:21.000000000 +0200 ++++ Python-2.6.2/Lib/distutils/command/install.py 2009-04-29 22:14:14.000000000 +0200 +@@ -41,14 +41,14 @@ + + INSTALL_SCHEMES = { + 'unix_prefix': { +- 'purelib': '$base/lib/python$py_version_short/site-packages', ++ 'purelib': '$base/lib64/python$py_version_short/site-packages', + 'platlib': '$platbase/lib64/python$py_version_short/site-packages', + 'headers': '$base/include/python$py_version_short/$dist_name', + 'scripts': '$base/bin', + 'data' : '$base', + }, + 'unix_home': { +- 'purelib': '$base/lib/python', ++ 'purelib': '$base/lib64/python', + 'platlib': '$base/lib64/python', + 'headers': '$base/include/python/$dist_name', + 'scripts': '$base/bin', +diff -uar Python-2.6.2.orig/Lib/distutils/sysconfig.py Python-2.6.2/Lib/distutils/sysconfig.py +--- Python-2.6.2.orig/Lib/distutils/sysconfig.py 2009-04-29 22:15:21.000000000 +0200 ++++ Python-2.6.2/Lib/distutils/sysconfig.py 2009-04-29 22:14:14.000000000 +0200 +@@ -118,7 +118,7 @@ + if plat_specific or standard_lib: + lib = "lib64" + else: +- lib = "lib" ++ lib = "lib64" + libpython = os.path.join(prefix, + lib, "python" + get_python_version()) + if standard_lib: diff --git a/source/d/python/python.readline.set_pre_input_hook.diff b/source/d/python/python.readline.set_pre_input_hook.diff new file mode 100644 index 000000000..8af4b4bed --- /dev/null +++ b/source/d/python/python.readline.set_pre_input_hook.diff @@ -0,0 +1,12 @@ +--- ./Modules/readline.c.orig 2008-11-04 14:43:31.000000000 -0600 ++++ ./Modules/readline.c 2009-06-09 14:23:16.000000000 -0500 +@@ -11,6 +11,9 @@ + #include <errno.h> + #include <sys/time.h> + ++/* This seems to be needed for set_pre_input_hook to work */ ++#define HAVE_RL_PRE_INPUT_HOOK 1 ++ + #if defined(HAVE_SETLOCALE) + /* GNU readline() mistakenly sets the LC_CTYPE locale. + * This is evil. Only the user or the app's main() should do this! diff --git a/source/d/python/python.x86_64.diff b/source/d/python/python.x86_64.diff new file mode 100644 index 000000000..712a5d1bf --- /dev/null +++ b/source/d/python/python.x86_64.diff @@ -0,0 +1,173 @@ +diff -uar Python-2.6.2.orig/Lib/distutils/command/install.py Python-2.6.2/Lib/distutils/command/install.py +--- Python-2.6.2.orig/Lib/distutils/command/install.py 2008-05-07 00:41:46.000000000 +0200 ++++ Python-2.6.2/Lib/distutils/command/install.py 2009-04-29 22:05:43.000000000 +0200 +@@ -42,14 +42,14 @@ + INSTALL_SCHEMES = { + 'unix_prefix': { + 'purelib': '$base/lib/python$py_version_short/site-packages', +- 'platlib': '$platbase/lib/python$py_version_short/site-packages', ++ 'platlib': '$platbase/lib64/python$py_version_short/site-packages', + 'headers': '$base/include/python$py_version_short/$dist_name', + 'scripts': '$base/bin', + 'data' : '$base', + }, + 'unix_home': { + 'purelib': '$base/lib/python', +- 'platlib': '$base/lib/python', ++ 'platlib': '$base/lib64/python', + 'headers': '$base/include/python/$dist_name', + 'scripts': '$base/bin', + 'data' : '$base', +diff -uar Python-2.6.2.orig/Lib/distutils/sysconfig.py Python-2.6.2/Lib/distutils/sysconfig.py +--- Python-2.6.2.orig/Lib/distutils/sysconfig.py 2009-02-10 13:33:42.000000000 +0100 ++++ Python-2.6.2/Lib/distutils/sysconfig.py 2009-04-29 22:05:43.000000000 +0200 +@@ -115,8 +115,12 @@ + prefix = plat_specific and EXEC_PREFIX or PREFIX + + if os.name == "posix": ++ if plat_specific or standard_lib: ++ lib = "lib64" ++ else: ++ lib = "lib" + libpython = os.path.join(prefix, +- "lib", "python" + get_python_version()) ++ lib, "python" + get_python_version()) + if standard_lib: + return libpython + else: +diff -uar Python-2.6.2.orig/Lib/site.py Python-2.6.2/Lib/site.py +--- Python-2.6.2.orig/Lib/site.py 2008-05-10 19:36:24.000000000 +0200 ++++ Python-2.6.2/Lib/site.py 2009-04-29 22:05:43.000000000 +0200 +@@ -265,12 +265,16 @@ + if sys.platform in ('os2emx', 'riscos'): + sitedirs.append(os.path.join(prefix, "Lib", "site-packages")) + elif os.sep == '/': ++ sitedirs.append(os.path.join(prefix, "lib64", ++ "python" + sys.version[:3], ++ "site-packages")) + sitedirs.append(os.path.join(prefix, "lib", + "python" + sys.version[:3], + "site-packages")) + sitedirs.append(os.path.join(prefix, "lib", "site-python")) + else: + sitedirs.append(prefix) ++ sitedirs.append(os.path.join(prefix, "lib64", "site-packages")) + sitedirs.append(os.path.join(prefix, "lib", "site-packages")) + + if sys.platform == "darwin": +diff -uar Python-2.6.2.orig/Makefile.pre.in Python-2.6.2/Makefile.pre.in +--- Python-2.6.2.orig/Makefile.pre.in 2009-02-24 12:07:44.000000000 +0100 ++++ Python-2.6.2/Makefile.pre.in 2009-04-29 22:05:43.000000000 +0200 +@@ -87,11 +87,11 @@ + + # Expanded directories + BINDIR= $(exec_prefix)/bin +-LIBDIR= $(exec_prefix)/lib ++LIBDIR= $(exec_prefix)/lib64 + MANDIR= @mandir@ + INCLUDEDIR= @includedir@ + CONFINCLUDEDIR= $(exec_prefix)/include +-SCRIPTDIR= $(prefix)/lib ++SCRIPTDIR= $(prefix)/lib64 + + # Detailed destination directories + BINLIBDEST= $(LIBDIR)/python$(VERSION) +diff -uar Python-2.6.2.orig/Modules/Setup.dist Python-2.6.2/Modules/Setup.dist +--- Python-2.6.2.orig/Modules/Setup.dist 2008-11-27 11:15:12.000000000 +0100 ++++ Python-2.6.2/Modules/Setup.dist 2009-04-29 22:10:31.000000000 +0200 +@@ -414,7 +414,7 @@ + #DB=/usr/local/BerkeleyDB.4.0 + #DBLIBVER=4.0 + #DBINC=$(DB)/include +-#DBLIB=$(DB)/lib ++#DBLIB=$(DB)/lib64 + #_bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb-$(DBLIBVER) + + # Historical Berkeley DB 1.85 +@@ -460,7 +460,7 @@ + # Andrew Kuchling's zlib module. + # This require zlib 1.1.3 (or later). + # See http://www.gzip.org/zlib/ +-#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz ++#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz + + # Interface to the Expat XML parser + # +diff -uar Python-2.6.2.orig/Modules/getpath.c Python-2.6.2/Modules/getpath.c +--- Python-2.6.2.orig/Modules/getpath.c 2007-03-10 08:38:14.000000000 +0100 ++++ Python-2.6.2/Modules/getpath.c 2009-04-29 22:05:43.000000000 +0200 +@@ -117,8 +117,8 @@ + #endif + + #ifndef PYTHONPATH +-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \ +- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" ++#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \ ++ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload" + #endif + + #ifndef LANDMARK +@@ -129,7 +129,7 @@ + static char exec_prefix[MAXPATHLEN+1]; + static char progpath[MAXPATHLEN+1]; + static char *module_search_path = NULL; +-static char lib_python[] = "lib/python" VERSION; ++static char lib_python[] = "lib64/python" VERSION; + + static void + reduce(char *dir) +@@ -524,7 +524,7 @@ + } + else + strncpy(zip_path, PREFIX, MAXPATHLEN); +- joinpath(zip_path, "lib/python00.zip"); ++ joinpath(zip_path, "lib64/python00.zip"); + bufsz = strlen(zip_path); /* Replace "00" with version */ + zip_path[bufsz - 6] = VERSION[0]; + zip_path[bufsz - 5] = VERSION[2]; +@@ -534,7 +534,7 @@ + fprintf(stderr, + "Could not find platform dependent libraries <exec_prefix>\n"); + strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN); +- joinpath(exec_prefix, "lib/lib-dynload"); ++ joinpath(exec_prefix, "lib64/lib-dynload"); + } + /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ + +diff -uar Python-2.6.2.orig/setup.py Python-2.6.2/setup.py +--- Python-2.6.2.orig/setup.py 2009-03-31 20:20:48.000000000 +0200 ++++ Python-2.6.2/setup.py 2009-04-29 22:05:43.000000000 +0200 +@@ -310,7 +310,7 @@ + + def detect_modules(self): + # Ensure that /usr/local is always used +- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') ++ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64') + add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + + # Add paths specified in the environment variables LDFLAGS and +@@ -585,11 +585,11 @@ + elif self.compiler.find_library_file(lib_dirs, 'curses'): + readline_libs.append('curses') + elif self.compiler.find_library_file(lib_dirs + +- ['/usr/lib/termcap'], ++ ['/usr/lib64/termcap'], + 'termcap'): + readline_libs.append('termcap') + exts.append( Extension('readline', ['readline.c'], +- library_dirs=['/usr/lib/termcap'], ++ library_dirs=['/usr/lib64/termcap'], + extra_link_args=readline_extra_link_args, + libraries=readline_libs) ) + else: +@@ -626,8 +626,8 @@ + if krb5_h: + ssl_incs += krb5_h + ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, +- ['/usr/local/ssl/lib', +- '/usr/contrib/ssl/lib/' ++ ['/usr/local/ssl/lib64', ++ '/usr/contrib/ssl/lib64/' + ] ) + + if (ssl_incs is not None and diff --git a/source/d/python/slack-desc b/source/d/python/slack-desc new file mode 100644 index 000000000..569c3c5b3 --- /dev/null +++ b/source/d/python/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +python: python (object-oriented interpreted programming language) +python: +python: Python is an interpreted, interactive, object-oriented programming +python: language that combines remarkable power with very clear syntax. +python: Python's basic power can be extended with your own modules written in +python: C or C++. Python is also adaptable as an extension language for +python: existing applications. +python: +python: +python: +python: diff --git a/source/d/rcs/rcs-5.7.diff b/source/d/rcs/rcs-5.7.diff new file mode 100644 index 000000000..a53b351cd --- /dev/null +++ b/source/d/rcs/rcs-5.7.diff @@ -0,0 +1,17 @@ +--- src/conf.sh.orig Sat Aug 12 20:25:11 1995 ++++ src/conf.sh Sat Aug 12 20:25:45 1995 +@@ -77,10 +77,10 @@ + rm -f a.d && + date >a.d && + chmod 0 a.d && +-{ test -w a.d || cp /dev/null a.d 2>/dev/null; } && { +- echo >&3 "$n$0: This command should not be run with superuser permissions." +- exit 1 +-} ++#{ test -w a.d || cp /dev/null a.d 2>/dev/null; } && { ++# echo >&3 "$n$0: This command should not be run with superuser permissions." ++# exit 1 ++#} + echo >&3 OK + rm -f a.d || exit + diff --git a/source/d/rcs/rcs.SlackBuild b/source/d/rcs/rcs.SlackBuild new file mode 100755 index 000000000..4ea46e465 --- /dev/null +++ b/source/d/rcs/rcs.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=5.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rcs + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_rcs.tar.gz + +echo "+=========+" +echo "| rcs-$VERSION |" +echo "+=========+" +cd $TMP +rm -rf rcs-$VERSION +tar xvf $CWD/rcs-$VERSION.tar.gz | exit 1 +cd rcs-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/rcs-$VERSION.diff.gz | patch -p0 || exit 1 + +./configure --prefix=/usr + +make CFLAGS="$SLKCFLAGS" LDFLAGS=-s || exit 1 + +cd src +cat ci > $PKG/usr/bin/ci +cat co > $PKG/usr/bin/co +cat ident > $PKG/usr/bin/ident +cat merge > $PKG/usr/bin/merge +cat rcs > $PKG/usr/bin/rcs +cat rcsclean > $PKG/usr/bin/rcsclean +cat rcsdiff > $PKG/usr/bin/rcsdiff +cat rcsmerge > $PKG/usr/bin/rcsmerge +cat rcstest > $PKG/usr/bin/rcstest +cat rlog > $PKG/usr/bin/rlog + +cd ../man +for page in ci.1 co.1 ident.1 merge.1 rcs.1 rcsclean.1 rcsdiff.1 rcsfreeze.1 \ +rcsintro.1 rcsmerge.1 rlog.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +cat rcsfile.5 | gzip -9c > $PKG/usr/man/man5/rcsfile.5.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/rcs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/rcs/slack-desc b/source/d/rcs/slack-desc new file mode 100644 index 000000000..b8d62a08c --- /dev/null +++ b/source/d/rcs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rcs: rcs (Revision Control System) +rcs: +rcs: RCS, the Revision Control System, manages multiple revisions of files. +rcs: +rcs: RCS can store, retrieve, log, identify, and merge revisions. It is +rcs: useful for files that are revised frequently, e.g. programs, +rcs: documentation, graphics, and papers. +rcs: +rcs: +rcs: +rcs: diff --git a/source/d/ruby/ruby.SlackBuild b/source/d/ruby/ruby.SlackBuild new file mode 100755 index 000000000..96234b8ff --- /dev/null +++ b/source/d/ruby/ruby.SlackBuild @@ -0,0 +1,108 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.8.7-p174 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ruby + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ruby-$VERSION +tar xvf $CWD/ruby-$VERSION.tar.?z* || exit 1 +cd ruby-$VERSION || exit 1 + +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/ruby.x86_64.diff.gz | patch -p1 --verbose || exit 1 +fi + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Evidently certain things must be linked static. +# Seems suboptimal to me... + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --datadir=/usr/share \ + --docdir=/usr/doc/ruby-$VERSION \ + --enable-shared \ + --enable-install-doc \ + --enable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/ruby-$VERSION +cp -a \ + COPYING* *GPL* LEGAL NEWS README* ToDo \ + $PKG/usr/doc/ruby-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ruby-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/d/ruby/ruby.x86_64.diff b/source/d/ruby/ruby.x86_64.diff new file mode 100644 index 000000000..c557546d7 --- /dev/null +++ b/source/d/ruby/ruby.x86_64.diff @@ -0,0 +1,11 @@ +--- ruby-1.8.7-p160.orig/mkconfig.rb 2008-06-06 12:39:57.000000000 +0200 ++++ ruby-1.8.7-p160/mkconfig.rb 2009-04-29 20:33:58.000000000 +0200 +@@ -102,7 +102,7 @@ + + drive = File::PATH_SEPARATOR == ';' + +-prefix = '/lib/ruby/' + RUBY_VERSION.sub(/\.\d+$/, '') + '/' + RUBY_PLATFORM ++prefix = '/lib64/ruby/' + RUBY_VERSION.sub(/\.\d+$/, '') + '/' + RUBY_PLATFORM + print " TOPDIR = File.dirname(__FILE__).chomp!(#{prefix.dump})\n" + print " DESTDIR = ", (drive ? "TOPDIR && TOPDIR[/\\A[a-z]:/i] || " : ""), "'' unless defined? DESTDIR\n" + print " CONFIG = {}\n" diff --git a/source/d/ruby/slack-desc b/source/d/ruby/slack-desc new file mode 100644 index 000000000..13ffd7a3d --- /dev/null +++ b/source/d/ruby/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ruby: ruby (Interpreted object-oriented scripting language) +ruby: +ruby: Ruby is an interpreted scripting language for quick and easy +ruby: object-oriented programming. It has many features to process text +ruby: files and to do system management tasks (as in Perl). It is simple, +ruby: straight-forward, and extensible. +ruby: +ruby: Visit the Ruby project online at http://www.ruby-lang.org/ +ruby: +ruby: +ruby: diff --git a/source/d/strace/slack-desc b/source/d/strace/slack-desc new file mode 100644 index 000000000..9f6d01c88 --- /dev/null +++ b/source/d/strace/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +strace: strace (trace system calls and signals) +strace: +strace: Strace allows you to trace the execution of a command. It runs the +strace: specified command until it exits, intercepting signals and system +strace: calls and dumping the information to the standard error. System +strace: administrators, diagnosticians and trouble-shooters will find it +strace: invaluable for solving problems with programs for which the source +strace: is not readily available since they do not need to be recompiled in +strace: order to trace them. +strace: +strace: diff --git a/source/d/strace/strace.SlackBuild b/source/d/strace/strace.SlackBuild new file mode 100755 index 000000000..18affdaa7 --- /dev/null +++ b/source/d/strace/strace.SlackBuild @@ -0,0 +1,80 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.5.18 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-strace + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf strace-$VERSION +tar xvf $CWD/strace-$VERSION.tar.bz2 || exit 1 +cd strace-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +strip $PKG/usr/bin/strace + +mkdir -p $PKG/usr/doc/strace-$VERSION +cp -a \ + COPYRIGHT CREDITS NEWS PORTING \ + README README-CVS README-freebsd README-linux README-sunos4 README-svr4 TODO \ + $PKG/usr/doc/strace-$VERSION +chmod 644 $PKG/usr/doc/strace-$VERSION/* + +gzip -9 $PKG/usr/man/man1/strace.1 + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/strace-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/subversion/get-svn-book.sh b/source/d/subversion/get-svn-book.sh new file mode 100755 index 000000000..112ba17c3 --- /dev/null +++ b/source/d/subversion/get-svn-book.sh @@ -0,0 +1,9 @@ +#!/bin/sh +CWD=`pwd` + +# Add the latest copy of the Subversion book: +( cd $CWD + lftpget http://svnbook.red-bean.com/nightly/en/svn-book-html.tar.bz2 + chmod 644 svn-book-html.tar.bz2 +) + diff --git a/source/d/subversion/slack-desc b/source/d/subversion/slack-desc new file mode 100644 index 000000000..935a52212 --- /dev/null +++ b/source/d/subversion/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +subversion: subversion (a version control system) +subversion: +subversion: Subversion is a version control system which allows you to keep old +subversion: versions of files and directories (usually source code), and keep a +subversion: log of who, when, and why changes occurred, similar to other such +subversion: systems like CVS, RCS or SCCS. Subversion keeps all the information +subversion: to permit extracting previous versions of those files at any time. +subversion: +subversion: For more information about the Subversion project, visit: +subversion: http://subversion.tigris.org +subversion: diff --git a/source/d/subversion/subversion.SlackBuild b/source/d/subversion/subversion.SlackBuild new file mode 100755 index 000000000..87a7114e0 --- /dev/null +++ b/source/d/subversion/subversion.SlackBuild @@ -0,0 +1,161 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.6.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-subversion + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf subversion-$VERSION +tar xvf $CWD/subversion-$VERSION.tar.xz || exit 1 +cd subversion-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/subversion-$VERSION \ + --enable-shared \ + --disable-static \ + --with-apr=/usr \ + --with-apr-util=/usr \ + --with-apxs=/usr/sbin/apxs \ + --with-neon=/usr \ + --with-zlib=/usr \ + --with-pic \ + --with-ssl \ + --with-kwallet \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install-docs DESTDIR=$PKG || exit 1 + +# Install python bindings +make swig-py +make install-swig-py DESTDIR=$PKG +PYTHON_VER=$(python -c 'import sys; print "%d.%d" % sys.version_info[:2]') +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/python${PYTHON_VER}/site-packages +mv $PKG/usr/lib${LIBDIRSUFFIX}/svn-python/* \ + $PKG/usr/lib${LIBDIRSUFFIX}/python${PYTHON_VER}/site-packages +rmdir $PKG/usr/lib${LIBDIRSUFFIX}/svn-python + +# Perl bindings +make swig-pl-lib +make install-swig-pl-lib DESTDIR=$PKG +( cd subversion/bindings/swig/perl/native + perl Makefile.PL + make install_vendor DESTDIR=$PKG +) +eval $(perl '-V:archlib') +mv $PKG/$archlib/perllocal.pod $PKG/$archlib/subversion.pod + +# Ruby bindings +make swig-rb +make install-swig-rb DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -rf $PKG/usr/info +# Something doesn't honor --mandir +mv $PKG/usr/share/man/man3 $PKG/usr/man +gzip -9 $PKG/usr/man/man?/* +rmdir $PKG/usr/share/man + +# What is this junk for? Since I don't know, I'll erase it. :-) +rm -rf $PKG/usr/build + +mkdir -p $PKG/usr/doc/subversion-$VERSION +cp -a \ + BUGS CHANGES COMMITTERS COPYING* HACKING INSTALL README TRANSLATING doc \ + $PKG/usr/doc/subversion-$VERSION +# too big && useless for most || if you think not, can be found in the source tarball +rm -rf $PKG/usr/doc/subversion-$VERSION/doc/tools +# Add the HTML svn book: +( cd $PKG/usr/doc/subversion-$VERSION + tar xf $CWD/svn-book-html.tar.bz2 + mv svn-book-html book + cd book + chown -R root:root . + find . -type d -exec chmod 0755 {} \; + find . -type f -exec chmod 0644 {} \; + find . -perm 2755 -exec chmod 0755 {} \; + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +) + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/subversion-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/d/swig/slack-desc b/source/d/swig/slack-desc new file mode 100644 index 000000000..189d275a2 --- /dev/null +++ b/source/d/swig/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------------| +swig: swig (Simplified Wrapper and Interface Generator) +swig: +swig: SWIG is an interface compiler that connects programs written in C and +swig: C++ with scripting languages such as Perl, Python, Ruby, and Tcl. It +swig: works by taking the declarations found in C/C++ header files and using +swig: them to generate the wrapper code that scripting languages need to +swig: access the underlying C/C++ code. In addition, SWIG provides a variety +swig: of customization features that let you tailor the wrapping process to +swig: suit your application. +swig: +swig: diff --git a/source/d/swig/swig.SlackBuild b/source/d/swig/swig.SlackBuild new file mode 100755 index 000000000..44f3d53f0 --- /dev/null +++ b/source/d/swig/swig.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2009 Robby Workman, Northport, Alabama, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +VERSION=1.3.38 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=${PKG:-$TMP/package-swig} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +NUMJOBS=${NUMJOBS:--j6} + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf swig-$VERSION +tar xvf $CWD/swig-$VERSION.tar.bz2 +cd swig-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --exec-prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/swig-$VERSION +cp -a \ + ANNOUNCE CHANGES* COPYING* FUTURE INSTALL LICENSE NEW README TODO \ + Examples Doc/Manual Doc/Devel \ + $PKG/usr/doc/swig-$VERSION +# Fix permissions and wipe the pdf bloat +find $PKG/usr/doc/swig-$VERSION -type f -exec chmod 0644 {} \; +find $PKG/usr/doc/swig-$VERSION -name "*.pdf" -exec rm -f {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/swig-$VERSION-$ARCH-$BUILD.txz diff --git a/source/d/swig/swig.url b/source/d/swig/swig.url new file mode 100644 index 000000000..78023e2df --- /dev/null +++ b/source/d/swig/swig.url @@ -0,0 +1 @@ +http://downloads.sourceforge.net/swig/swig-${version}.tar.gz diff --git a/source/e/emacs/doinst.sh b/source/e/emacs/doinst.sh new file mode 100644 index 000000000..64a3adff1 --- /dev/null +++ b/source/e/emacs/doinst.sh @@ -0,0 +1,10 @@ +# Vim ships a better (IMHO) version of ctags, and we don't want +# to overwrite it with this one. If you really want emacs' ctags +# either copy or link it into place yourself, or remove the vim +# packages and reinstall emacs. Besides, does anyone know/use +# *both* emacs and vi? I'd think that would bring the universe +# to an end. ;-) +if [ ! -e usr/bin/ctags ]; then + cp -a usr/bin/ctags-emacs usr/bin/ctags + cp -a usr/man/man1/ctags-emacs.1.gz usr/man/man1/ctags.1.gz +fi diff --git a/source/e/emacs/emacs.SlackBuild b/source/e/emacs/emacs.SlackBuild new file mode 100755 index 000000000..962e9ee4c --- /dev/null +++ b/source/e/emacs/emacs.SlackBuild @@ -0,0 +1,171 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Slackware build script for emacs-22 + +# Written by DuÅ¡an Stefanović (stefanovic.dusan@gmail.com) +# Modified by Robby Workman <rworkman@slackbuilds.org> +# Modified by Patrick Volkerding <volkerdi@slackware.com> + +PRGNAM=emacs +VERSION=22.3 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --program-prefix="" \ + --program-suffix="" \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-static=no \ + --enable-shared=yes \ + --with-x \ + --with-x-toolkit=gtk \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/bin + rm emacs + mv emacs-${VERSION} emacs-${VERSION}-with-x11 + ln -sf emacs-${VERSION}-with-x11 emacs +) + +# Also add a version of the binary that is not linked to X11: +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --program-prefix="" \ + --program-suffix="" \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-static=no \ + --enable-shared=yes \ + --with-x=no \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 + +# Install the non-x version: +cat src/emacs > $PKG/usr/bin/emacs-${VERSION}-no-x11 +chown root:root $PKG/usr/bin/emacs-${VERSION}-no-x11 +chmod 1755 $PKG/usr/bin/emacs-${VERSION}-no-x11 + +# I don't care for broken permissions. +chmod 755 $PKG/var/games/emacs +chown -R games:root $PKG/var/games/emacs + +# This avoids a collision with Exuberant Ctags... +mv $PKG/usr/bin/ctags $PKG/usr/bin/ctags-emacs +mv $PKG/usr/man/man1/ctags.1 $PKG/usr/man/man1/ctags-emacs.1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +( cd $PKG/usr/info + rm -f dir + gzip -9 * +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL README \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +# Make the .desktop file +mkdir -p $PKG/usr/share/applications +cat << "EOF" > $PKG/usr/share/applications/$PRGNAM.desktop +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Exec=emacs +Icon=emacs.png +Terminal=0 +Name=Emacs +Comment=Text Editor +Categories=Application;Development; +EOF + +# Make the package freedesktop compliant +mkdir -p $PKG/usr/share/icons/hicolor/48x48/apps +cat $PKG/usr/share/$PRGNAM/$VERSION/etc/images/icons/emacs_48.png > $PKG/usr/share/icons/hicolor/48x48/apps/emacs.png + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/e/emacs/emacs.info b/source/e/emacs/emacs.info new file mode 100644 index 000000000..645fd7f06 --- /dev/null +++ b/source/e/emacs/emacs.info @@ -0,0 +1,8 @@ +PRGNAM="emacs" +VERSION="22.2" +HOMEPAGE="http://www.gnu.org/software/emacs/" +DOWNLOAD="http://ftp.gnu.org/pub/gnu/emacs/emacs-22.2.tar.gz" +MD5SUM="d6ee586b8752351334ebf072904c4d51" +MAINTAINER="DuÅ¡an Stefanović" +EMAIL="stefanovic.dusan@gmail.com" +APPROVED="rworkman" diff --git a/source/e/emacs/slack-desc b/source/e/emacs/slack-desc new file mode 100644 index 000000000..94ba8e13e --- /dev/null +++ b/source/e/emacs/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +emacs: emacs (GNU Emacs) +emacs: +emacs: Emacs is the extensible, customizable, self-documenting real-time +emacs: display editor. If this seems to be a bit of a mouthful, an +emacs: easier explanation is that Emacs is a text editor and more. At +emacs: its core is an interpreter for Emacs Lisp, a dialect of the Lisp +emacs: programming language with extensions to support text editing. +emacs: This version supports X. +emacs: +emacs: http://www.gnu.org/software/emacs/ +emacs: diff --git a/source/f/slack-desc.linux-faqs b/source/f/slack-desc.linux-faqs new file mode 100644 index 000000000..f12fc47d8 --- /dev/null +++ b/source/f/slack-desc.linux-faqs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +linux-faqs: linux-faqs (Linux FAQ collection from ibiblio.org) +linux-faqs: +linux-faqs: Frequently Asked Questions (and answers!) on many Linux topics. +linux-faqs: +linux-faqs: Some of the FAQs included in this package: +linux-faqs: ATAPI-FAQ, AfterStep-FAQ, BLFAQ (Brief Linux FAQ), Ftape-FAQ, +linux-faqs: GCC-SIG11-FAQ, Joe-Command-Reference, the Linux-FAQ, PPP-FAQ, SMP-FAQ, +linux-faqs: and the Threads-FAQ. +linux-faqs: +linux-faqs: These FAQs will be installed under /usr/doc/Linux-FAQs/. +linux-faqs: diff --git a/source/f/slack-desc.linux-howtos b/source/f/slack-desc.linux-howtos new file mode 100644 index 000000000..d7864425f --- /dev/null +++ b/source/f/slack-desc.linux-howtos @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +linux-howtos: linux-howtos (HOWTOs from the Linux Documentation Project) +linux-howtos: +linux-howtos: Documentation on many tasks relating to Linux setup and operation. +linux-howtos: +linux-howtos: These documents will be installed in /usr/doc/Linux-HOWTOs/. +linux-howtos: +linux-howtos: +linux-howtos: +linux-howtos: +linux-howtos: +linux-howtos: diff --git a/source/installer/busybox-1.12.1_inotify.diff b/source/installer/busybox-1.12.1_inotify.diff new file mode 100644 index 000000000..151d16ce9 --- /dev/null +++ b/source/installer/busybox-1.12.1_inotify.diff @@ -0,0 +1,11 @@ +--- busybox-1.12.1.orig/miscutils/inotifyd.c 2008-11-07 01:39:21.000000000 +0000 ++++ busybox-1.12.1/miscutils/inotifyd.c 2008-11-07 01:37:05.000000000 +0000 +@@ -28,7 +28,7 @@ + */ + + #include "libbb.h" +-#include <linux/inotify.h> ++#include <sys/inotify.h> + + static volatile smallint signalled; + diff --git a/source/installer/busybox-dot-config b/source/installer/busybox-dot-config new file mode 100644 index 000000000..69b07295c --- /dev/null +++ b/source/installer/busybox-dot-config @@ -0,0 +1,845 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.12.1 +# Mon Mar 30 16:14:53 2009 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# + +# +# General Configuration +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEATURE_ASSUME_UNICODE is not set +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_FEATURE_INSTALLER=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_GETOPT_LONG=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_FEATURE_SUID=y +CONFIG_FEATURE_SUID_CONFIG=y +CONFIG_FEATURE_SUID_CONFIG_QUIET=y +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +CONFIG_FEATURE_SYSLOG=y +CONFIG_FEATURE_HAVE_RPC=y + +# +# Build Options +# +# CONFIG_STATIC is not set +# CONFIG_PIE is not set +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set +CONFIG_INCLUDE_SUSv2=y +# CONFIG_PARSE is not set + +# +# Installation Options +# +CONFIG_INSTALL_NO_USR=y +CONFIG_INSTALL_APPLET_SYMLINKS=y +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +# CONFIG_INSTALL_APPLET_DONT is not set +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="./_install" + +# +# Busybox Library Tuning +# +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SIZE_VS_SPEED=2 +# CONFIG_FEATURE_FAST_TOP is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=64 +# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set +CONFIG_FEATURE_TAB_COMPLETION=y +# CONFIG_FEATURE_USERNAME_COMPLETION is not set +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y +CONFIG_FEATURE_COPYBUF_KB=4 +CONFIG_MONOTONIC_SYSCALL=y +CONFIG_IOCTL_HEX2STR_ERROR=y +# CONFIG_FEATURE_HWIB is not set + +# +# Applets +# + +# +# Archival Utilities +# +# CONFIG_FEATURE_SEAMLESS_LZMA is not set +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +CONFIG_AR=y +CONFIG_FEATURE_AR_LONG_FILENAMES=y +CONFIG_BUNZIP2=y +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set +# CONFIG_GUNZIP is not set +# CONFIG_GZIP is not set +# CONFIG_RPM2CPIO is not set +# CONFIG_RPM is not set +# CONFIG_TAR is not set +# CONFIG_FEATURE_TAR_CREATE is not set +# CONFIG_FEATURE_TAR_AUTODETECT is not set +# CONFIG_FEATURE_TAR_FROM is not set +# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set +# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set +# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set +# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set +# CONFIG_FEATURE_TAR_UNAME_GNAME is not set +# CONFIG_UNCOMPRESS is not set +# CONFIG_UNLZMA is not set +# CONFIG_FEATURE_LZMA_FAST is not set +# CONFIG_UNZIP is not set + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +# CONFIG_COMM is not set +# CONFIG_CP is not set +# CONFIG_CUT is not set +# CONFIG_DATE is not set +# CONFIG_FEATURE_DATE_ISOFMT is not set +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_INODE=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +CONFIG_FEATURE_ENV_LONG_OPTIONS=y +# CONFIG_EXPAND is not set +# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +# CONFIG_FOLD is not set +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +# CONFIG_HOSTID is not set +CONFIG_ID=y +CONFIG_INSTALL=y +CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LENGTH=y +CONFIG_LN=y +CONFIG_LOGNAME=y +# CONFIG_LS is not set +# CONFIG_FEATURE_LS_FILETYPES is not set +# CONFIG_FEATURE_LS_FOLLOWLINKS is not set +# CONFIG_FEATURE_LS_RECURSIVE is not set +# CONFIG_FEATURE_LS_SORTFILES is not set +# CONFIG_FEATURE_LS_TIMESTAMPS is not set +# CONFIG_FEATURE_LS_USERNAME is not set +# CONFIG_FEATURE_LS_COLOR is not set +# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set +CONFIG_MD5SUM=y +CONFIG_MKDIR=y +CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y +CONFIG_MKFIFO=y +# CONFIG_MKNOD is not set +CONFIG_MV=y +CONFIG_FEATURE_MV_LONG_OPTIONS=y +CONFIG_NICE=y +# CONFIG_NOHUP is not set +# CONFIG_OD is not set +# CONFIG_PRINTENV is not set +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +# CONFIG_SEQ is not set +# CONFIG_SHA1SUM is not set +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +# CONFIG_FEATURE_FLOAT_SLEEP is not set +# CONFIG_SORT is not set +# CONFIG_FEATURE_SORT_BIG is not set +# CONFIG_SPLIT is not set +# CONFIG_FEATURE_SPLIT_FANCY is not set +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +# CONFIG_TAC is not set +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +# CONFIG_TEE is not set +# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set +CONFIG_TEST=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TTY=y +CONFIG_UNAME=y +# CONFIG_UNEXPAND is not set +# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set +CONFIG_UNIQ=y +# CONFIG_USLEEP is not set +# CONFIG_UUDECODE is not set +# CONFIG_UUENCODE is not set +CONFIG_WC=y +CONFIG_FEATURE_WC_LARGE=y +CONFIG_WHO=y +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options for cp and mv +# +# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Common options for md5sum, sha1sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +# CONFIG_DEALLOCVT is not set +CONFIG_DUMPKMAP=y +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_LOADKMAP=y +# CONFIG_OPENVT is not set +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y +# CONFIG_SETFONT is not set +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +# CONFIG_PIPE_PROGRESS is not set +# CONFIG_RUN_PARTS is not set +# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +# CONFIG_START_STOP_DAEMON is not set +# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set +# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_MATH=y +# CONFIG_CMP is not set +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_BINARY=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_FEATURE_DIFF_MINIMAL=y +# CONFIG_ED is not set +# CONFIG_PATCH is not set +# CONFIG_SED is not set +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y +# CONFIG_FEATURE_ALLOW_EXEC is not set + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +# CONFIG_FEATURE_FIND_DELETE is not set +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +# CONFIG_GREP is not set +# CONFIG_FEATURE_GREP_EGREP_ALIAS is not set +# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set +# CONFIG_FEATURE_GREP_CONTEXT is not set +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y + +# +# Init Utilities +# +CONFIG_INIT=y +# CONFIG_DEBUG_INIT is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=10 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +# CONFIG_FEATURE_INITRD is not set +CONFIG_HALT=y +CONFIG_MESG=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +CONFIG_USE_BB_CRYPT=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_DELUSER=y +# CONFIG_GETTY is not set +CONFIG_FEATURE_UTMP=y +CONFIG_FEATURE_WTMP=y +# CONFIG_LOGIN is not set +# CONFIG_PAM is not set +# CONFIG_LOGIN_SCRIPTS is not set +# CONFIG_FEATURE_NOLOGIN is not set +# CONFIG_FEATURE_SECURETTY is not set +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +# CONFIG_CRYPTPW is not set +# CONFIG_CHPASSWD is not set +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +# CONFIG_SULOGIN is not set +# CONFIG_VLOCK is not set + +# +# Linux Ext2 FS Progs +# +# CONFIG_CHATTR is not set +# CONFIG_FSCK is not set +# CONFIG_LSATTR is not set + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +# CONFIG_DEPMOD is not set +# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set +# CONFIG_FEATURE_DEPMOD_ALIAS is not set +# CONFIG_INSMOD is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +# CONFIG_RMMOD is not set +# CONFIG_LSMOD is not set +# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +# CONFIG_MODPROBE is not set +# CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS is not set +# CONFIG_FEATURE_MODPROBE_FANCY_ALIAS is not set +# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set +# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_2_6_MODULES is not set +CONFIG_DEFAULT_MODULES_DIR="" +CONFIG_DEFAULT_DEPMOD_FILE="" +# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set + +# +# Linux System Utilities +# +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFLUSH=y +CONFIG_FDFORMAT=y +# CONFIG_FDISK is not set +CONFIG_FDISK_SUPPORT_LARGE_DISKS=y +# CONFIG_FEATURE_FDISK_WRITABLE is not set +# CONFIG_FEATURE_AIX_LABEL is not set +# CONFIG_FEATURE_SGI_LABEL is not set +# CONFIG_FEATURE_SUN_LABEL is not set +# CONFIG_FEATURE_OSF_LABEL is not set +# CONFIG_FEATURE_FDISK_ADVANCED is not set +# CONFIG_FINDFS is not set +# CONFIG_FREERAMDISK is not set +# CONFIG_FSCK_MINIX is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_GETOPT is not set +CONFIG_HEXDUMP=y +# CONFIG_FEATURE_HEXDUMP_REVERSE is not set +# CONFIG_HD is not set +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +# CONFIG_IPCRM is not set +# CONFIG_IPCS is not set +CONFIG_LOSETUP=y +# CONFIG_MDEV is not set +# CONFIG_FEATURE_MDEV_CONF is not set +# CONFIG_FEATURE_MDEV_RENAME is not set +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set +# CONFIG_FEATURE_MDEV_EXEC is not set +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +# CONFIG_MKSWAP is not set +# CONFIG_FEATURE_MKSWAP_V0 is not set +CONFIG_MORE=y +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_VOLUMEID=y +# CONFIG_FEATURE_VOLUMEID_EXT is not set +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set +# CONFIG_FEATURE_VOLUMEID_FAT is not set +# CONFIG_FEATURE_VOLUMEID_HFS is not set +# CONFIG_FEATURE_VOLUMEID_JFS is not set +# CONFIG_FEATURE_VOLUMEID_XFS is not set +# CONFIG_FEATURE_VOLUMEID_NTFS is not set +# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set +# CONFIG_FEATURE_VOLUMEID_UDF is not set +# CONFIG_FEATURE_VOLUMEID_LUKS is not set +# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set +# CONFIG_FEATURE_VOLUMEID_SYSV is not set +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set +# CONFIG_MOUNT is not set +# CONFIG_FEATURE_MOUNT_FAKE is not set +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +# CONFIG_FEATURE_MOUNT_HELPERS is not set +# CONFIG_FEATURE_MOUNT_LABEL is not set +# CONFIG_FEATURE_MOUNT_NFS is not set +# CONFIG_FEATURE_MOUNT_CIFS is not set +# CONFIG_FEATURE_MOUNT_FLAGS is not set +# CONFIG_FEATURE_MOUNT_FSTAB is not set +CONFIG_PIVOT_ROOT=y +CONFIG_RDATE=y +CONFIG_RDEV=y +# CONFIG_READPROFILE is not set +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SETARCH is not set +CONFIG_SWAPONOFF=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWITCH_ROOT=y +# CONFIG_UMOUNT is not set +# CONFIG_FEATURE_UMOUNT_ALL is not set +# CONFIG_FEATURE_MOUNT_LOOP is not set +# CONFIG_FEATURE_MTAB_SUPPORT is not set + +# +# Miscellaneous Utilities +# +# CONFIG_ADJTIMEX is not set +CONFIG_BBCONFIG=y +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +# CONFIG_CHRT is not set +# CONFIG_CROND is not set +# CONFIG_DEBUG_CROND_OPTION is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +# CONFIG_CRONTAB is not set +# CONFIG_DC is not set +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +# CONFIG_FBSPLASH is not set +# CONFIG_INOTIFYD is not set +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_SMALL is not set +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_FLAGCS=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +# CONFIG_HDPARM is not set +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +# CONFIG_MAKEDEVS is not set +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +# CONFIG_MAN is not set +# CONFIG_MICROCOM is not set +# CONFIG_MOUNTPOINT is not set +CONFIG_MT=y +CONFIG_RAIDAUTORUN=y +# CONFIG_READAHEAD is not set +CONFIG_RUNLEVEL=y +# CONFIG_RX is not set +# CONFIG_SETSID is not set +# CONFIG_STRINGS is not set +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +CONFIG_TIME=y +CONFIG_TTYSIZE=y +# CONFIG_WATCHDOG is not set + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +# CONFIG_FEATURE_BRCTL_FANCY is not set +# CONFIG_FEATURE_BRCTL_SHOW is not set +# CONFIG_DNSD is not set +CONFIG_ETHER_WAKE=y +# CONFIG_FAKEIDENTD is not set +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set +# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +# CONFIG_FEATURE_IFUPDOWN_IP is not set +# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set +CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +CONFIG_FEATURE_IFUPDOWN_MAPPING=y +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +# CONFIG_INETD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_SHORT_FORMS=y +# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_NAMEIF=y +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NETSTAT=y +# CONFIG_FEATURE_NETSTAT_WIDE is not set +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +# CONFIG_SENDMAIL is not set +# CONFIG_FETCHMAIL is not set +CONFIG_SLATTACH=y +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +# CONFIG_TELNETD is not set +# CONFIG_FEATURE_TELNETD_STANDALONE is not set +CONFIG_TFTP=y +# CONFIG_TFTPD is not set +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +# CONFIG_DEBUG_TFTP is not set +CONFIG_TRACEROUTE=y +# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set +# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set +# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set +# CONFIG_APP_UDHCPD is not set +# CONFIG_APP_DHCPRELAY is not set +# CONFIG_APP_DUMPLEASES is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_APP_UDHCPC is not set +# CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCP_PORT is not set +# CONFIG_FEATURE_UDHCP_DEBUG is not set +# CONFIG_FEATURE_RFC3397 is not set +CONFIG_DHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS= +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_ZCIP=y +CONFIG_TCPSVD=y +CONFIG_UDPSVD=y + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PKILL=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_TIME=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_RENICE=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_DECIMALS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +CONFIG_WATCH=y + +# +# Shells +# +CONFIG_FEATURE_SH_IS_ASH=y +# CONFIG_FEATURE_SH_IS_HUSH is not set +# CONFIG_FEATURE_SH_IS_MSH is not set +# CONFIG_FEATURE_SH_IS_NONE is not set +CONFIG_ASH=y + +# +# Ash Shell Options +# +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_READ_NCHARS=y +CONFIG_ASH_READ_TIMEOUT=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_MATH_SUPPORT=y +CONFIG_ASH_MATH_SUPPORT_64=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_HUSH is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_LASH is not set +# CONFIG_MSH is not set + +# +# Bourne Shell Options +# +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_CTTYHACK=y + +# +# System Logging Utilities +# +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +# CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_KLOGD=y +# CONFIG_LOGGER is not set + +# +# Runit Utilities +# +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_SV is not set +# CONFIG_SVLOGD is not set +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RESTORECON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_SETSEBOOL is not set +# CONFIG_SESTATUS is not set + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set diff --git a/source/installer/busybox.SlackBuild b/source/installer/busybox.SlackBuild new file mode 100755 index 000000000..adceb07c0 --- /dev/null +++ b/source/installer/busybox.SlackBuild @@ -0,0 +1,62 @@ +#!/bin/sh +# Copyright 2007, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=busybox +VERSION=${VERSION:-1.12.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +if [ "$TMP" = "" ]; then + TMP=/tmp +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/busybox-1.12.1_inotify.diff.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +# Configure: +cat $CWD/busybox-dot-config > .config +make oldconfig + +# Build and install: +make -j4 || exit 1 +make install || exit 1 + diff --git a/source/installer/dropbear/doinst.sh b/source/installer/dropbear/doinst.sh new file mode 100644 index 000000000..af326c6ab --- /dev/null +++ b/source/installer/dropbear/doinst.sh @@ -0,0 +1,13 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/rc.d/rc.dropbear.new diff --git a/source/installer/dropbear/dropbear.Slackbuild b/source/installer/dropbear/dropbear.Slackbuild new file mode 100755 index 000000000..5bd3bd99d --- /dev/null +++ b/source/installer/dropbear/dropbear.Slackbuild @@ -0,0 +1,131 @@ +#!/bin/sh +# $Id: dropbear.Slackbuild,v 1.7 2008/03/13 13:42:33 root Exp root $ +# Copyright 2007, Piter Punk, São Paulo, Brazil +# Adaptations for Slackware installer: +# Copyright 2008, Eric Hameleers, Eindhoven, Netherlands +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PRGNAM=dropbear +VERSION=0.50 +ARCH=${ARCH:-i486} +BUILD=${BUILD:-10} +TAG=${TAG:-''} + +# The programs we want to have as symlinks to dropbearmulti binary: +PROGS="dropbear dbclient dropbearkey dropbearconvert scp ssh" + +# We build for the Slackware installer: +# This means, installing into /bin and /sbin ; +# and adding symlinks for ssh and scp without worry +# about overwriting any pre-existing binaries. + +CWD=`pwd` +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 + +# Fix ownership and permissions inside the source tarball. +# It's appalling how many projects have 777 permissions or +# even suid, sgid, and sticky bits set on things. +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +# Patch to allow empty passwords (used in Slackware's installer): +patch -p1 < $CWD/dropbear_emptypass.patch +# Apply xauth path patch +patch -p0 < $CWD/dropbear.xauth.patch +# Change the path used for dbclient because our prefix is '/' not '/usr': +patch -p1 < $CWD/dropbear_dbclientpath.patch + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/ \ + --mandir=/usr/man \ + --disable-syslog \ + --disable-utmp \ + --disable-utmpx \ + --disable-wtmp \ + --disable-wtmpx \ + --disable-pututline \ + --disable-pututxline \ + --build=$ARCH-slackware-linux + +make PROGRAMS="$PROGS" MULTI="1" SCPPROGRESS="1" || exit 1 +mkdir -p $PKG/sbin $PKG/bin $PKG/lib +make DESTDIR=$PKG MULTI="1" install || exit 1 + +# Copy manpages to package +mkdir -p $PKG/usr/man/man1 +mkdir -p $PKG/usr/man/man8 +cp dbclient.1 $PKG/usr/man/man1 +cp dropbearkey.8 dropbear.8 $PKG/usr/man/man8 + +if [ -d $PKG/usr/man ]; then + (cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + ) +fi + +# Link binaries to dropbearmulti since the 'make install' does not do that +# if we build a multicall binary. +(cd $PKG/bin + ln -s ../bin/dropbearmulti ../sbin/dropbear + for i in $(echo $PROGS | sed -e 's/dropbear //') ; do + ln -s dropbearmulti $i + done +) + +(cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/etc/rc.d $PKG/etc/dropbear +cp $CWD/rc.dropbear.new $PKG/etc/rc.d/ # doinst.sh will handle .new + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a CHANGES INSTALL LICENSE MULTI README SMALL TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz diff --git a/source/installer/dropbear/dropbear.xauth.patch b/source/installer/dropbear/dropbear.xauth.patch new file mode 100644 index 000000000..d01e15e04 --- /dev/null +++ b/source/installer/dropbear/dropbear.xauth.patch @@ -0,0 +1,11 @@ +--- options.h.old 2008-01-29 11:54:45.000000000 -0200 ++++ options.h 2008-01-29 11:54:52.000000000 -0200 +@@ -197,7 +197,7 @@ + /* The command to invoke for xauth when using X11 forwarding. + * "-q" for quiet */ + #ifndef XAUTH_COMMAND +-#define XAUTH_COMMAND "/usr/X11R6/bin/xauth -q" ++#define XAUTH_COMMAND "/usr/bin/xauth -q" + #endif + + /* if you want to enable running an sftp server (such as the one included with diff --git a/source/installer/dropbear/dropbear_dbclientpath.patch b/source/installer/dropbear/dropbear_dbclientpath.patch new file mode 100644 index 000000000..ef5cddc79 --- /dev/null +++ b/source/installer/dropbear/dropbear_dbclientpath.patch @@ -0,0 +1,12 @@ +diff -uarN dropbear-0.50.orig/options.h dropbear-0.50/options.h +--- dropbear-0.50.orig/options.h 2007-08-08 18:39:38.000000000 +0200 ++++ dropbear-0.50/options.h 2008-03-10 14:43:29.261618300 +0100 +@@ -209,7 +209,7 @@ + + /* This is used by the scp binary when used as a client binary. If you're + * not using the Dropbear client, you'll need to change it */ +-#define _PATH_SSH_PROGRAM "/usr/bin/dbclient" ++#define _PATH_SSH_PROGRAM "/bin/dbclient" + + /* Whether to log commands executed by a client. This only logs the + * (single) command sent to the server, not what a user did in a diff --git a/source/installer/dropbear/dropbear_emptypass.patch b/source/installer/dropbear/dropbear_emptypass.patch new file mode 100644 index 000000000..995b4d5c5 --- /dev/null +++ b/source/installer/dropbear/dropbear_emptypass.patch @@ -0,0 +1,51 @@ +diff -uarN dropbear-0.50.orig/options.h dropbear-0.50/options.h +--- dropbear-0.50.orig/options.h 2007-08-08 17:39:37.000000000 +0200 ++++ dropbear-0.50/options.h 2008-02-01 00:22:07.000000000 +0100 +@@ -148,6 +148,9 @@ + * SSH_ASKPASS instead. Comment out this var to remove this functionality.*/ + #define DROPBEAR_PASSWORD_ENV "DROPBEAR_PASSWORD" + ++/* disable server empty password check because root has no password on EZX */ ++#define DISABLE_SVR_EMPTY_PASSWD_CHECK ++ + /* Define this (as well as ENABLE_CLI_PASSWORD_AUTH) to allow the use of + * a helper program for the ssh client. The helper program should be + * specified in the SSH_ASKPASS environment variable, and dbclient +diff -uarN dropbear-0.50.orig/svr-auth.c dropbear-0.50/svr-auth.c +--- dropbear-0.50.orig/svr-auth.c 2007-08-08 17:39:37.000000000 +0200 ++++ dropbear-0.50/svr-auth.c 2008-02-01 00:22:07.000000000 +0100 +@@ -236,6 +236,7 @@ + return DROPBEAR_FAILURE; + } + ++#ifndef DISABLE_SVR_EMPTY_PASSWD_CHECK + /* check for an empty password */ + if (ses.authstate.pw->pw_passwd[0] == '\0') { + TRACE(("leave checkusername: empty pword")) +@@ -244,6 +245,7 @@ + send_msg_userauth_failure(0, 1); + return DROPBEAR_FAILURE; + } ++#endif + + TRACE(("shell is %s", ses.authstate.pw->pw_shell)) + +diff -uarN dropbear-0.50.orig/svr-authpasswd.c dropbear-0.50/svr-authpasswd.c +--- dropbear-0.50.orig/svr-authpasswd.c 2007-08-08 17:39:37.000000000 +0200 ++++ dropbear-0.50/svr-authpasswd.c 2008-02-01 00:23:00.000000000 +0100 +@@ -60,6 +60,7 @@ + passwdcrypt = DEBUG_HACKCRYPT; + #endif + ++#ifndef DISABLE_SVR_EMPTY_PASSWD_CHECK + /* check for empty password - need to do this again here + * since the shadow password may differ to that tested + * in auth.c */ +@@ -69,6 +70,7 @@ + send_msg_userauth_failure(0, 1); + return; + } ++#endif + + /* check if client wants to change password */ + changepw = buf_getbool(ses.payload); diff --git a/source/installer/dropbear/rc.dropbear.new b/source/installer/dropbear/rc.dropbear.new new file mode 100644 index 000000000..85f0e56e8 --- /dev/null +++ b/source/installer/dropbear/rc.dropbear.new @@ -0,0 +1,58 @@ +#!/bin/sh +# Start/stop/restart the dropbear secure shell server: + +# Terminate the script now if we have no interface with an IP address: +if ! `ip -f inet -o addr show | grep -v " lo " 1>/dev/null 2>/dev/null` ; then + exit 1 +fi + +dropbear_start() { + # Create host keys if needed. + if [ ! -f /etc/dropbear/dropbear_rsa_host_key ]; then + /bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key + fi + if [ ! -f /etc/dropbear/dropbear_dss_host_key ]; then + /bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key + fi + touch /var/log/lastlog # The file is missing in the installer + /sbin/dropbear -b /etc/motd.net 2>> /var/log/dropbear.log +} + +dropbear_stop() { + killall dropbear +} + +dropbear_restart() { + if [ -r /var/run/dropbear.pid ]; then + echo "WARNING: killing listener process only. To kill every dropbear process, you " + echo " must use 'rc.dropbear stop'. 'rc.dropbear restart' kills only the " + echo " parent dropbear to allow an admin logged in through dropbear to use " + echo " 'rc.dropbear restart' without being cut off. If dropbear has been " + echo " upgraded, new connections will now use the new version, which should " + echo " be a safe enough approach." + kill `cat /var/run/dropbear.pid` + else + echo "WARNING: There does not appear to be a parent instance of dropbear running." + echo " If you really want to kill all running instances of dropbear " + echo " (including any sessions currently in use), run " + echo " '/etc/rc.d/rc.dropbear stop' instead." + exit 1 + fi + sleep 1 + dropbear_start +} + +case "$1" in +'start') + dropbear_start + ;; +'stop') + dropbear_stop + ;; +'restart') + dropbear_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac + diff --git a/source/installer/dropbear/slack-desc b/source/installer/dropbear/slack-desc new file mode 100644 index 000000000..94eeac05a --- /dev/null +++ b/source/installer/dropbear/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dropbear: dropbear (SSH server and client) +dropbear: +dropbear: Dropbear is a relatively small SSH 2 server and client. It runs on a +dropbear: variety of POSIX-based platforms. Dropbear is open source software, +dropbear: distributed under a MIT-style license. Dropbear is particularly +dropbear: useful for "embedded"-type Linux (or other Unix) systems, such as +dropbear: wireless routers. +dropbear: +dropbear: +dropbear: +dropbear: + diff --git a/source/k/2.6.29.x-intel-crash-patch.diff b/source/k/2.6.29.x-intel-crash-patch.diff new file mode 100644 index 000000000..a4fcb4686 --- /dev/null +++ b/source/k/2.6.29.x-intel-crash-patch.diff @@ -0,0 +1,37 @@ + [Intel-gfx] [PATCH] drm/i915: Don't allow binding objects into the last page of the aperture. + + Eric Anholt eric at anholt.net + Tue May 12 15:29:56 PDT 2009 + + This should avoid a class of bugs where the hardware prefetches past the + end of the object, and walks into unallocated memory when the object is + bound to the last page of the aperture. + + fd.o bug #21488 + --- + drivers/gpu/drm/i915/i915_dma.c | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + + diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c + index 051134c..3133f99 100644 + --- a/drivers/gpu/drm/i915/i915_dma.c + +++ b/drivers/gpu/drm/i915/i915_dma.c + @@ -1011,8 +1011,16 @@ static int i915_load_modeset_init(struct drm_device *dev) + /* Basic memrange allocator for stolen space (aka vram) */ + drm_mm_init(&dev_priv->vram, 0, prealloc_size); + + - /* Let GEM Manage from end of prealloc space to end of aperture */ + - i915_gem_do_init(dev, prealloc_size, agp_size); + + /* Let GEM Manage from end of prealloc space to end of aperture. + + * + + * However, leave one page at the end still bound to the scratch page. + + * There are a number of places where the hardware apparently + + * prefetches past the end of the object, and we've seen multiple + + * hangs with the GPU head pointer stuck in a batchbuffer bound + + * at the last page of the aperture. One page should be enough to + + * keep any prefetching inside of the aperture. + + */ + + i915_gem_do_init(dev, prealloc_size, agp_size - 4096); + + ret = i915_gem_init_ringbuffer(dev); + diff --git a/source/k/README.TXT b/source/k/README.TXT new file mode 100644 index 000000000..13cdcb71d --- /dev/null +++ b/source/k/README.TXT @@ -0,0 +1,40 @@ +Since I should document this somewhere, here's the procedure +for building the Slackware kernel package. I do not patch the official +kernel sources, but it's not exactly a virgin either. + +============================================================= +Version specific notes (if any): +============================================================= + +For a 2.6.x kernel (much easier): + + Untar Linus' source in /usr/src. + Make all files owned by root:root with reasonable perms. + Install a suitable .config, or use make menuconfig, etc. + + An example would be to use one of the config files here: + # cat config-generic-2.6.29.6 > /usr/src/linux-2.6.29.6/.config + + Then run the build programs: + + make oldconfig + make bzImage + make clean + make prepare + rm .version + +That's it! You now have a clean Slackware-configured Linux source +tree. + +The kernel in Slackware supports SMP. With as common as +multicore CPUs and SMP boards have become, this seemed like the +obvious choice. The kernels are probably better for single CPU +machines, too, if they will run them. + +At this point if you are running huge.s or generic.s, you should have +no problems building kernel modules. + +Have fun! :-) + +Pat + diff --git a/source/k/README_SECURITY.TXT b/source/k/README_SECURITY.TXT new file mode 100644 index 000000000..6aaa7d665 --- /dev/null +++ b/source/k/README_SECURITY.TXT @@ -0,0 +1,11 @@ +Applying these patches: + +linux-2.6.29.6-01-sendpage.diff.gz +linux-2.6.29.6-02-default-mmap_min_addr-4096.diff.gz + +Is highly recommended if you are planning to use the 2.6.29.6 +kernel source in this directory. + +The kernel-source-2.6.29.6_smp-noarch-2.txz package already has +them preapplied. + diff --git a/source/k/README_SPEAKUP_PATCH.TXT b/source/k/README_SPEAKUP_PATCH.TXT new file mode 100644 index 000000000..9a9979b0b --- /dev/null +++ b/source/k/README_SPEAKUP_PATCH.TXT @@ -0,0 +1,77 @@ + +This is an archive of the speakup project's GIT HEAD snapped on the given +day, and was used to build the speakup.s kernel. Grabbing Speakup's GIT +repo (if you want the very latest) is done like this, by the way: + +git-clone http://www.linux-speakup.org/speakup.git + +To build the same kernel as Slackware included as speakup.s, you'll +need to do this: + +Untar the speakup archive, and cd into the speakup directory: + +tar xf speakup-3.0.3_20081026.tar.bz2 +cd speakup-3.0.3_20081026 + +Patch whatever kernel you happen to want to compile: +./install /usr/src/linux-2.6.29.6 + +Change to the kernel directory: +cd /usr/src/linux-2.6.29.6 + +If you want to start with the defaults one of Slackware's kernels, you can do +that like this: + +cat /boot/vmlinuz-huge-2.6.29.6 > .config + +Or, better yet, if you have access to the Slackware tree use the +Speakup .config that was used: + +cat (slacktree)/kernels/speakup.s/config > .config + +Then do any additional configuation to the kernel that you may require: + +make menuconfig + +After that, it's build and install: +make +make modules_install +make bzImage +cat arch/x86/boot/bzImage > /boot/vmlinuz-huge-2.6.29.6-speakup + +I put the -speakup on the end of the kernel name so that I can remember +which kernel I've patched, but that part is entirely optional. + +The next step will be to edit add the new kernel's modules to an initrd if +you use one (if you didn't build in the root filesystem or something like +that you will need an initrd). See "man mkinitrd" for more details on the +subject of making an initrd. + +Now just add the new kernel (and possibly the /boot/initrd.gz) to +/etc/lilo.conf, run lilo as root, and you are ready to reboot. Make sure +to use an append="speakup parameters" type line in /etc/lilo.conf to +configure speakup to use the proper synth driver. You many also need to +specify the serial port or other parameters, like this: + +append="speakup.synth=dectlk speakup.ser=2" + +This line would attempt to use Speakup with a DecTalk Express on /dev/ttyS1. + +Note that with Speakup 3.x, the kernel parameter names have changed to +contain dots rather than underscores. Other options have changed as +well. Although perhaps not a complete list, I found these changes noted +on the linuxfromscratch web site: + +speakup_synth became speakup.synth, and the "sftsyn" synthesizer became "soft"; + +speakup_ser became speakup.ser, and serial ports are now numbered starting from 1, +not from 0 (i.e., speakup_ser=1 became speakup.ser=2); + +speakup_quiet became speakup.quiet, valid values are 0 and 1; + +speakup_port became speakup.port. + +Good luck! :-) + +Pat + diff --git a/source/k/config-generic-2.6.29.6 b/source/k/config-generic-2.6.29.6 new file mode 100644 index 000000000..4a88a8ec9 --- /dev/null +++ b/source/k/config-generic-2.6.29.6 @@ -0,0 +1,4178 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.29.6 +# Mon Aug 17 02:22:45 2009 +# +CONFIG_64BIT=y +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_FAST_CMPXCHG_LOCAL=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ZONE_DMA32=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_AUDIT_ARCH=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_64_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set + +# +# RCU Subsystem +# +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +# CONFIG_GROUP_SCHED is not set +# CONFIG_CGROUPS is not set +# CONFIG_SYSFS_DEPRECATED_V2 is not set +# CONFIG_RELAY is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_MARKERS=y +CONFIG_OPROFILE=m +# CONFIG_OPROFILE_IBS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLOCK_COMPAT=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_FREEZER=y + +# +# Processor type and features +# +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +# CONFIG_SPARSE_IRQ is not set +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_VSMP is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +# CONFIG_PARAVIRT_GUEST is not set +CONFIG_MEMTEST=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_CPU=y +CONFIG_X86_L1_CACHE_BYTES=128 +CONFIG_X86_INTERNODE_CACHE_BYTES=128 +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR_64=y +# CONFIG_X86_DS is not set +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +# CONFIG_CALGARY_IOMMU is not set +# CONFIG_AMD_IOMMU is not set +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +# CONFIG_IOMMU_API is not set +CONFIG_NR_CPUS=32 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_I8K=m +CONFIG_MICROCODE=m +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_DIRECT_GBPAGES=y +# CONFIG_NUMA is not set +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y + +# +# Memory hotplug is currently incompatible with Software Suspend +# +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_UNEVICTABLE_LRU=y +CONFIG_MMU_NOTIFIER=y +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +# CONFIG_X86_PAT is not set +# CONFIG_EFI is not set +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +# CONFIG_SCHED_HRTICK is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x200000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_HOTPLUG_CPU=y +CONFIG_COMPAT_VDSO=y +# CONFIG_CMDLINE_BOOL is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="\"\"" +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_PCI_SLOT=m +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +# CONFIG_ACPI_SBS is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=m +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=m +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_P4_CLOCKMOD=m + +# +# shared options +# +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y + +# +# Memory power savings +# +CONFIG_I7300_IDLE_IOAT_CHANNEL=y +CONFIG_I7300_IDLE=m + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +# CONFIG_DMAR is not set +# CONFIG_INTR_REMAP is not set +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +# CONFIG_PCIEASPM is not set +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_STUB is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=m +CONFIG_IA32_EMULATION=y +CONFIG_IA32_AOUT=m +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_COMPAT_NET_DEV_OPS=y +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETLABEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_EVENTS is not set +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m + +# +# DECnet: Netfilter Configuration +# +# CONFIG_DECNET_NF_GRABULATOR is not set +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m + +# +# DCCP CCIDs Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +# CONFIG_IP_DCCP_CCID3 is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +# CONFIG_NET_DSA is not set +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +CONFIG_WAN_ROUTER=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +# CONFIG_NET_EMATCH is not set +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=y +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m + +# +# CAN Device Drivers +# +CONFIG_CAN_VCAN=m +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_PHONET=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_CFG80211=m +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_NL80211=y +CONFIG_WIRELESS_OLD_REGULATORY=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m + +# +# Rate control algorithm selection +# +CONFIG_MAC80211_RC_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +CONFIG_NET_9P=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_9P_RDMA=m +# CONFIG_NET_9P_DEBUG is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=m +CONFIG_MTD=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_TESTS=m +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +CONFIG_MTD_AR7_PARTS=m + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_HAVE_MTD_OTP=y +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +CONFIG_MTD_OOPS=m + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_MAP_BANK_WIDTH_8=y +CONFIG_MTD_MAP_BANK_WIDTH_16=y +CONFIG_MTD_MAP_BANK_WIDTH_32=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_I4=y +CONFIG_MTD_CFI_I8=y +CONFIG_MTD_OTP=y +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_TS5500=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +CONFIG_MTD_PMC551_BUGFIX=y +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE_ADVANCED=y +CONFIG_MTD_DOCPROBE_ADDRESS=0x0000 +CONFIG_MTD_DOCPROBE_HIGH=y +CONFIG_MTD_DOCPROBE_55AA=y +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_VERIFY_WRITE=y +CONFIG_MTD_NAND_ECC_SMC=y +CONFIG_MTD_NAND_MUSEUM_IDS=y +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y +CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_ONENAND_OTP=y +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_SIM=m + +# +# LPDDR flash memory drivers +# +CONFIG_MTD_LPDDR=m +CONFIG_MTD_QINFO_PROBE=m + +# +# UBI - Unsorted block images +# +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_GLUEBI=y + +# +# UBI debugging options +# +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=y +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +CONFIG_PARIDE_EPATC8=y +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_VIRTIO_BLK=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_SGI_XP=m +CONFIG_HP_ILO=m +CONFIG_SGI_GRU=m +# CONFIG_SGI_GRU_DEBUG is not set +CONFIG_DELL_LAPTOP=m +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_93CX6=m +CONFIG_HAVE_IDE=y +CONFIG_IDE=y + +# +# Please see Documentation/ide/ide.txt for help/info on IDE drives +# +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_ATAPI=y +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_IDE_GD=y +CONFIG_IDE_GD_ATA=y +CONFIG_IDE_GD_ATAPI=y +CONFIG_BLK_DEV_IDECS=m +CONFIG_BLK_DEV_DELKIN=m +CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_BLK_DEV_IDEACPI=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +CONFIG_BLK_DEV_CMD640=y +CONFIG_BLK_DEV_CMD640_ENHANCED=y +CONFIG_BLK_DEV_IDEPNP=y +CONFIG_BLK_DEV_IDEDMA_SFF=y + +# +# PCI IDE chipsets support +# +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_PCIBUS_ORDER=y +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_RZ1000=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_AEC62XX=y +CONFIG_BLK_DEV_ALI15X3=y +CONFIG_BLK_DEV_AMD74XX=y +CONFIG_BLK_DEV_ATIIXP=y +CONFIG_BLK_DEV_CMD64X=y +CONFIG_BLK_DEV_TRIFLEX=y +CONFIG_BLK_DEV_CS5520=y +CONFIG_BLK_DEV_CS5530=y +CONFIG_BLK_DEV_HPT366=y +CONFIG_BLK_DEV_JMICRON=y +CONFIG_BLK_DEV_SC1200=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_BLK_DEV_IT8172=y +CONFIG_BLK_DEV_IT8213=y +CONFIG_BLK_DEV_IT821X=y +# CONFIG_BLK_DEV_NS87415 is not set +CONFIG_BLK_DEV_PDC202XX_OLD=y +CONFIG_BLK_DEV_PDC202XX_NEW=y +CONFIG_BLK_DEV_SVWKS=y +CONFIG_BLK_DEV_SIIMAGE=y +CONFIG_BLK_DEV_SIS5513=y +CONFIG_BLK_DEV_SLC90E66=y +CONFIG_BLK_DEV_TRM290=y +CONFIG_BLK_DEV_VIA82CXXX=y +CONFIG_BLK_DEV_TC86C001=y +CONFIG_BLK_DEV_IDEDMA=y + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=y +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=4 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_SCSI_ARCMSR_AER is not set +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_LIBFC=m +CONFIG_FCOE=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_MVSAS=m +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y +CONFIG_SATA_SVW=y +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SX4=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y +CONFIG_SATA_INIC162X=y +CONFIG_PATA_ACPI=y +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_ATA_GENERIC=y +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +CONFIG_PATA_HPT3X3_DMA=y +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=y +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_SCH=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=y +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID456=y +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=y +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=y +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=y +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +# CONFIG_DM_DELAY is not set +# CONFIG_DM_UEVENT is not set +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# Enable only one of the two stacks, unless you know what you are doing +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=m +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_DV1394=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_I2O=m +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=m +# CONFIG_I2O_CONFIG_OLD_IOCTL is not set +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +CONFIG_IFB=m +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_MACVLAN=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_NET_SB1000=m +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_DNET=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +CONFIG_TULIP_MMIO=y +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_HP100=m +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +CONFIG_AMD8111_ETH=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +CONFIG_FORCEDETH_NAPI=y +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R6040=m +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SMSC9420=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_SC92031=m +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_ATL2=m +CONFIG_NETDEV_1000=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_IGB=m +# CONFIG_IGB_LRO is not set +CONFIG_IGB_DCA=y +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +CONFIG_R8169_VLAN=y +CONFIG_SIS190=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_JME=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3_DEPENDS=y +CONFIG_CHELSIO_T3=m +CONFIG_ENIC=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGB=m +CONFIG_S2IO=m +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_NETXEN_NIC=m +CONFIG_NIU=m +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_TEHUTI=m +CONFIG_BNX2X=m +CONFIG_QLGE=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_BE2NET=m +CONFIG_TR=y +CONFIG_IBMOL=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_ABYSS=m + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_AIRO=m +CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +# CONFIG_MAC80211_HWSIM is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUG is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLCORE=m +CONFIG_IWLWIFI_LEDS=y +# CONFIG_IWLWIFI_RFKILL is not set +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWL3945=m +# CONFIG_IWL3945_RFKILL is not set +CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y +CONFIG_IWL3945_LEDS=y +# CONFIG_IWL3945_DEBUG is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCMCIA=y +CONFIG_B43_PIO=y +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_RFKILL=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set + +# +# WiMAX Wireless Broadband devices +# +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +# CONFIG_USB_KC2190 is not set +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_HSO=m +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_WAN=y +CONFIG_LANMEDIA=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +# CONFIG_PC300TOO is not set +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +# CONFIG_DSCC4_PCISYNC is not set +# CONFIG_DSCC4_PCI_RST is not set +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_DUMMY=m +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +# CONFIG_ATM_HE_USE_SUNI is not set +CONFIG_ATM_SOLOS=m +CONFIG_FDDI=y +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_SKFP=m +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_PLIP=m +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +CONFIG_PPPOATM=m +CONFIG_PPPOL2TP=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLHC=m +CONFIG_SLIP_SMART=y +# CONFIG_SLIP_MODE_SLIP6 is not set +CONFIG_NET_FC=y +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_BKM_A4T=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_W6692=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_ENTERNOW_PCI=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_TELES_CS=m + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_HDLC=y + +# +# Active cards +# +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +# CONFIG_GIGASET_M101 is not set +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_POLLDEV=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOUSE_GPIO=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_UINPUT=m +CONFIG_INPUT_PCF50633_PMU=m + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_DEVKMEM=y +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_COMPUTONE=m +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_DIGIEPCA=m +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +CONFIG_ISI=m +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m +CONFIG_N_HDLC=m +CONFIG_RISCOM8=m +CONFIG_SPECIALIX=m +CONFIG_SX=m +CONFIG_RIO=m +# CONFIG_RIO_OLDPCI is not set +CONFIG_STALDRV=y +CONFIG_STALLION=m +CONFIG_ISTALLION=m +CONFIG_NOZOMI=m + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +CONFIG_HVC_DRIVER=y +CONFIG_VIRTIO_CONSOLE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_NVRAM=m +CONFIG_R3964=m +CONFIG_APPLICOM=m + +# +# PCMCIA character devices +# +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_IPWIRELESS=m +CONFIG_MWAVE=m +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +CONFIG_HANGCHECK_TIMER=m +CONFIG_TCG_TPM=m +# CONFIG_TCG_TIS is not set +# CONFIG_TCG_NSC is not set +CONFIG_TCG_ATMEL=m +# CONFIG_TCG_INFINEON is not set +CONFIG_TELCLOCK=m +CONFIG_DEVPORT=y +CONFIG_I2C=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_ISCH=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_GPIO=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_SIMTEC=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Graphics adapter I2C/DDC channel drivers +# +CONFIG_I2C_VOODOO3=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_STUB=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_DS1682=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_TSL2550=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_SPI is not set +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO expanders: +# + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PDA_POWER=m +CONFIG_WM8350_POWER=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_BQ27x00=m +CONFIG_CHARGER_PCF50633=m +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7473=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_THERMAL=m +CONFIG_THERMAL_HWMON=y +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_HP_WATCHDOG=m +CONFIG_SC1200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83697UG_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=m +# CONFIG_MFD_SM501 is not set +CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS65010=m +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_WM8400=m +CONFIG_MFD_WM8350=m +CONFIG_MFD_WM8350_I2C=m +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +# CONFIG_REGULATOR is not set + +# +# Multimedia devices +# + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_DVB_CORE=m +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_CUSTOMIZE=y +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m + +# +# Encoders/decoders and other helper chips +# + +# +# Audio decoders +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# MPEG video encoders +# +CONFIG_VIDEO_CX2341X=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_MT9M001_PCA9536_SWITCH=y +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_MT9V022_PCA9536_SWITCH=y +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_V4L_USB_DRIVERS=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_USB_DSBR=m +CONFIG_USB_SI470X=m +CONFIG_USB_MR800=m +CONFIG_RADIO_TEA5764=m +# CONFIG_DVB_DYNAMIC_MINORS is not set +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_SIANO_SMS1XXX=m +CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported SDMC DM1105 Adapters +# +CONFIG_DVB_DM1105=m + +# +# Supported FireWire (IEEE 1394) Adapters +# +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_IEEE1394=y +CONFIG_DVB_FIREDTV_INPUT=y + +# +# Supported DVB Frontends +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_SI21XX=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRX397XD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3304=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_LGS8GL5=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DVB_AF9013=m +CONFIG_DAB=y +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=m +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +# CONFIG_DRM_I915_KMS is not set +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +CONFIG_VGASTATE=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_DDC=m +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_HECUBA=m +CONFIG_FB_SVGALIB=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set +CONFIG_FB_CYBER2000=m +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=m +# CONFIG_FB_UVESA is not set +CONFIG_FB_VESA=y +CONFIG_FB_N411=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_BACKLIGHT=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_I2C=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_BACKLIGHT=y +CONFIG_FB_LE80578=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_VIA=m +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +# CONFIG_CARMINE_DRAM_CUSTOM is not set +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_METRONOME=m +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +# CONFIG_LCD_ILI9320 is not set +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_SAHARA=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=m + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_VGACON_SOFT_SCROLLBACK=y +CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB16_DSP=m +CONFIG_SND_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +# CONFIG_SND_HDA_RECONFIG is not set +# CONFIG_SND_HDA_INPUT_BEEP is not set +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_NVHDMI=y +CONFIG_SND_HDA_CODEC_INTELHDMI=y +CONFIG_SND_HDA_ELD=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +# CONFIG_SND_HDA_POWER_SAVE is not set +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HIFIER=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_PCMCIA=y +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_SOC is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=m +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +# CONFIG_HID_COMPAT is not set +CONFIG_HID_A4TECH=m +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GYRATION=m +CONFIG_HID_LOGITECH=m +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_NTRIG=m +CONFIG_HID_PANTHERLORD=m +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_HID_SUNPLUS=m +CONFIG_GREENASIA_FF=m +CONFIG_HID_TOPSEED=m +CONFIG_THRUSTMASTER_FF=m +CONFIG_ZEROPLUS_FF=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set +CONFIG_USB_MON=y +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD_SSB=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_HWA_HCD=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; +# + +# +# see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +CONFIG_USB_SERIAL_SAFE_PADDED=y +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_DEBUG=m + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_VST=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_WHCI=m +CONFIG_UWB_WLP=m +CONFIG_UWB_I1480U=m +CONFIG_UWB_I1480U_WLP=m +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_RICOH_MMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +CONFIG_MEMSTICK_TIFM_MS=m +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +CONFIG_LEDS_ALIX2=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_WM8350=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set +# CONFIG_INFINIBAND_CXGB3 is not set +CONFIG_MLX4_INFINIBAND=m +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_IPOIB=m +# CONFIG_INFINIBAND_IPOIB_CM is not set +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=m +CONFIG_RTC_CLASS=m + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_TEST=m + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_PCF50633=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_DMATEST=m +CONFIG_DCA=m +CONFIG_AUXDISPLAY=y +# CONFIG_KS0108 is not set +CONFIG_UIO=m +CONFIG_UIO_CIF=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SMX=m +CONFIG_UIO_SERCOS3=m +CONFIG_STAGING=y +# CONFIG_STAGING_EXCLUDE_BUILD is not set +# CONFIG_ET131X is not set +# CONFIG_SLICOSS is not set +# CONFIG_SXG is not set +# CONFIG_ME4000 is not set +# CONFIG_MEILHAUS is not set +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_USB_IP_COMMON is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_USB_ATMEL is not set +# CONFIG_POCH is not set +# CONFIG_AGNX is not set +# CONFIG_OTUS is not set +CONFIG_RT2860=m +CONFIG_RT2870=m +# CONFIG_COMEDI is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_ALTERA_PCIE_CHDMA is not set +CONFIG_RTL8187SE=m +# CONFIG_INPUT_MIMIO is not set +# CONFIG_TRANZPORT is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_ANDROID_BINDER_IPC is not set +# CONFIG_ANDROID_LOGGER is not set +# CONFIG_ANDROID_RAM_CONSOLE is not set +# CONFIG_ANDROID_TIMED_GPIO is not set +# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACER_WMI=m +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_HP_WMI=m +CONFIG_MSI_LAPTOP=m +CONFIG_PANASONIC_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_INTEL_MENLOW=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_ACPI_WMI=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m + +# +# Firmware Drivers +# +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m +CONFIG_DMIID=y +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_IBFT=m + +# +# File systems +# +CONFIG_EXT2_FS=m +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=m +# CONFIG_EXT4DEV_COMPAT is not set +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_JBD2=m +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_FILE_LOCKING=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_DEBUG is not set +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +# CONFIG_OCFS2_FS_STATS is not set +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_OCFS2_FS_POSIX_ACL=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS_FS=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=m +CONFIG_MISC_FILESYSTEMS=y +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +# CONFIG_ECRYPT_FS is not set +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_EMBEDDED=y +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_ROMFS_FS=y +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_REGISTER_V4 is not set +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +# CONFIG_CIFS_UPCALL is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_SMALLDOS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=m +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_9P_FS=m + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +CONFIG_SOLARIS_X86_PARTITION=y +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=0 +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_STACKTRACE=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +# CONFIG_FRAME_POINTER is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_LATENCYTOP is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_RING_BUFFER=y +CONFIG_TRACING=y + +# +# Tracers +# +CONFIG_SYSPROF_TRACER=y +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_STRICT_DEVMEM=y +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_OPTIMIZE_INLINING is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +CONFIG_SECURITY_FILE_CAPABILITIES=y +# CONFIG_SECURITY_ROOTPLUG is not set +CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_XOR_BLOCKS=y +CONFIG_ASYNC_CORE=y +CONFIG_ASYNC_MEMCPY=y +CONFIG_ASYNC_XOR=y +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_AUTHENC=y +CONFIG_CRYPTO_TEST=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_PCBC=y +CONFIG_CRYPTO_XTS=y + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=y + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_X86_64=y +CONFIG_CRYPTO_ANUBIS=y +CONFIG_CRYPTO_ARC4=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_CAST5=y +CONFIG_CRYPTO_CAST6=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_FCRYPT=y +CONFIG_CRYPTO_KHAZAD=y +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=y +CONFIG_CRYPTO_SERPENT=y +CONFIG_CRYPTO_TEA=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_TWOFISH_COMMON=y +CONFIG_CRYPTO_TWOFISH_X86_64=y + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +# CONFIG_KVM_TRACE is not set +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC_T10DIF=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y diff --git a/source/k/config-huge-2.6.29.6 b/source/k/config-huge-2.6.29.6 new file mode 100644 index 000000000..452900eac --- /dev/null +++ b/source/k/config-huge-2.6.29.6 @@ -0,0 +1,4179 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.29.6 +# Mon Aug 17 11:55:29 2009 +# +CONFIG_64BIT=y +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_FAST_CMPXCHG_LOCAL=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ZONE_DMA32=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_AUDIT_ARCH=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_64_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set + +# +# RCU Subsystem +# +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +# CONFIG_GROUP_SCHED is not set +# CONFIG_CGROUPS is not set +# CONFIG_SYSFS_DEPRECATED_V2 is not set +# CONFIG_RELAY is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_MARKERS=y +CONFIG_OPROFILE=m +# CONFIG_OPROFILE_IBS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLOCK_COMPAT=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_FREEZER=y + +# +# Processor type and features +# +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +# CONFIG_SPARSE_IRQ is not set +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_VSMP is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +# CONFIG_PARAVIRT_GUEST is not set +CONFIG_MEMTEST=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_CPU=y +CONFIG_X86_L1_CACHE_BYTES=128 +CONFIG_X86_INTERNODE_CACHE_BYTES=128 +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR_64=y +# CONFIG_X86_DS is not set +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +# CONFIG_CALGARY_IOMMU is not set +# CONFIG_AMD_IOMMU is not set +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +# CONFIG_IOMMU_API is not set +CONFIG_NR_CPUS=32 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_I8K=m +CONFIG_MICROCODE=m +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_DIRECT_GBPAGES=y +# CONFIG_NUMA is not set +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y + +# +# Memory hotplug is currently incompatible with Software Suspend +# +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_UNEVICTABLE_LRU=y +CONFIG_MMU_NOTIFIER=y +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +# CONFIG_X86_PAT is not set +# CONFIG_EFI is not set +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +# CONFIG_SCHED_HRTICK is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x200000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_HOTPLUG_CPU=y +CONFIG_COMPAT_VDSO=y +# CONFIG_CMDLINE_BOOL is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="\"\"" +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_PCI_SLOT=m +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +# CONFIG_ACPI_SBS is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=m +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=m +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_P4_CLOCKMOD=m + +# +# shared options +# +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y + +# +# Memory power savings +# +CONFIG_I7300_IDLE_IOAT_CHANNEL=y +CONFIG_I7300_IDLE=m + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +# CONFIG_DMAR is not set +# CONFIG_INTR_REMAP is not set +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +# CONFIG_PCIEASPM is not set +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_STUB is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=m +CONFIG_IA32_EMULATION=y +CONFIG_IA32_AOUT=m +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_COMPAT_NET_DEV_OPS=y +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETLABEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_EVENTS is not set +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m + +# +# DECnet: Netfilter Configuration +# +# CONFIG_DECNET_NF_GRABULATOR is not set +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m + +# +# DCCP CCIDs Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +# CONFIG_IP_DCCP_CCID3 is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +# CONFIG_NET_DSA is not set +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +CONFIG_WAN_ROUTER=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +# CONFIG_NET_EMATCH is not set +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=y +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m + +# +# CAN Device Drivers +# +CONFIG_CAN_VCAN=m +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_PHONET=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_CFG80211=m +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_NL80211=y +CONFIG_WIRELESS_OLD_REGULATORY=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m + +# +# Rate control algorithm selection +# +CONFIG_MAC80211_RC_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +CONFIG_NET_9P=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_9P_RDMA=m +# CONFIG_NET_9P_DEBUG is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=m +CONFIG_MTD=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_TESTS=m +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +CONFIG_MTD_AR7_PARTS=m + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_HAVE_MTD_OTP=y +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +CONFIG_MTD_OOPS=m + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_MAP_BANK_WIDTH_8=y +CONFIG_MTD_MAP_BANK_WIDTH_16=y +CONFIG_MTD_MAP_BANK_WIDTH_32=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_I4=y +CONFIG_MTD_CFI_I8=y +CONFIG_MTD_OTP=y +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_TS5500=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +CONFIG_MTD_PMC551_BUGFIX=y +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE_ADVANCED=y +CONFIG_MTD_DOCPROBE_ADDRESS=0x0000 +CONFIG_MTD_DOCPROBE_HIGH=y +CONFIG_MTD_DOCPROBE_55AA=y +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_VERIFY_WRITE=y +CONFIG_MTD_NAND_ECC_SMC=y +CONFIG_MTD_NAND_MUSEUM_IDS=y +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y +CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_ONENAND_OTP=y +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_SIM=m + +# +# LPDDR flash memory drivers +# +CONFIG_MTD_LPDDR=m +CONFIG_MTD_QINFO_PROBE=m + +# +# UBI - Unsorted block images +# +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_GLUEBI=y + +# +# UBI debugging options +# +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=y +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +CONFIG_PARIDE_EPATC8=y +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=y +CONFIG_BLK_CPQ_CISS_DA=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=y +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=y +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_VIRTIO_BLK=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_SGI_XP=m +CONFIG_HP_ILO=m +CONFIG_SGI_GRU=m +# CONFIG_SGI_GRU_DEBUG is not set +CONFIG_DELL_LAPTOP=m +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_93CX6=m +CONFIG_HAVE_IDE=y +CONFIG_IDE=y + +# +# Please see Documentation/ide/ide.txt for help/info on IDE drives +# +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_ATAPI=y +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_IDE_GD=y +CONFIG_IDE_GD_ATA=y +CONFIG_IDE_GD_ATAPI=y +CONFIG_BLK_DEV_IDECS=m +CONFIG_BLK_DEV_DELKIN=m +CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_BLK_DEV_IDEACPI=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +CONFIG_BLK_DEV_CMD640=y +CONFIG_BLK_DEV_CMD640_ENHANCED=y +CONFIG_BLK_DEV_IDEPNP=y +CONFIG_BLK_DEV_IDEDMA_SFF=y + +# +# PCI IDE chipsets support +# +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_PCIBUS_ORDER=y +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_RZ1000=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_AEC62XX=y +CONFIG_BLK_DEV_ALI15X3=y +CONFIG_BLK_DEV_AMD74XX=y +CONFIG_BLK_DEV_ATIIXP=y +CONFIG_BLK_DEV_CMD64X=y +CONFIG_BLK_DEV_TRIFLEX=y +CONFIG_BLK_DEV_CS5520=y +CONFIG_BLK_DEV_CS5530=y +CONFIG_BLK_DEV_HPT366=y +CONFIG_BLK_DEV_JMICRON=y +CONFIG_BLK_DEV_SC1200=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_BLK_DEV_IT8172=y +CONFIG_BLK_DEV_IT8213=y +CONFIG_BLK_DEV_IT821X=y +# CONFIG_BLK_DEV_NS87415 is not set +CONFIG_BLK_DEV_PDC202XX_OLD=y +CONFIG_BLK_DEV_PDC202XX_NEW=y +CONFIG_BLK_DEV_SVWKS=y +CONFIG_BLK_DEV_SIIMAGE=y +CONFIG_BLK_DEV_SIS5513=y +CONFIG_BLK_DEV_SLC90E66=y +CONFIG_BLK_DEV_TRM290=y +CONFIG_BLK_DEV_VIA82CXXX=y +CONFIG_BLK_DEV_TC86C001=y +CONFIG_BLK_DEV_IDEDMA=y + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=y +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=y +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_FC_ATTRS=y +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=y +CONFIG_SCSI_SAS_ATTRS=y +CONFIG_SCSI_SAS_LIBSAS=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SRP_ATTRS=y +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_BLK_DEV_3W_XXXX_RAID=y +CONFIG_SCSI_3W_9XXX=y +CONFIG_SCSI_ACARD=y +CONFIG_SCSI_AACRAID=y +CONFIG_SCSI_AIC7XXX=y +CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC7XXX_OLD=y +CONFIG_SCSI_AIC79XX=y +CONFIG_AIC79XX_CMDS_PER_DEVICE=4 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=y +CONFIG_SCSI_ARCMSR=y +# CONFIG_SCSI_ARCMSR_AER is not set +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=y +CONFIG_MEGARAID_MAILBOX=y +CONFIG_MEGARAID_LEGACY=y +CONFIG_MEGARAID_SAS=y +CONFIG_SCSI_HPTIOP=y +CONFIG_SCSI_BUSLOGIC=y +CONFIG_LIBFC=y +CONFIG_FCOE=y +CONFIG_SCSI_DMX3191D=y +CONFIG_SCSI_EATA=y +# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=y +CONFIG_SCSI_GDTH=y +CONFIG_SCSI_IPS=y +CONFIG_SCSI_INITIO=y +CONFIG_SCSI_INIA100=y +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_MVSAS=y +CONFIG_SCSI_STEX=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=y +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_QLOGIC_1280=y +CONFIG_SCSI_QLA_FC=y +CONFIG_SCSI_QLA_ISCSI=y +CONFIG_SCSI_LPFC=y +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_DC395x=y +CONFIG_SCSI_DC390T=y +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=y +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_SCSI_DH=y +CONFIG_SCSI_DH_RDAC=y +CONFIG_SCSI_DH_HP_SW=y +CONFIG_SCSI_DH_EMC=y +CONFIG_SCSI_DH_ALUA=y +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y +CONFIG_SATA_SVW=y +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SX4=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y +CONFIG_SATA_INIC162X=y +CONFIG_PATA_ACPI=y +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_ATA_GENERIC=y +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +CONFIG_PATA_HPT3X3_DMA=y +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=y +CONFIG_PATA_MPIIX=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=y +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_SCH=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=y +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID456=y +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=y +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=y +CONFIG_DM_SNAPSHOT=y +CONFIG_DM_MIRROR=y +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +# CONFIG_DM_DELAY is not set +# CONFIG_DM_UEVENT is not set +CONFIG_FUSION=y +CONFIG_FUSION_SPI=y +CONFIG_FUSION_FC=y +CONFIG_FUSION_SAS=y +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# Enable only one of the two stacks, unless you know what you are doing +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=y +CONFIG_IEEE1394_OHCI1394=y +CONFIG_IEEE1394_PCILYNX=y +CONFIG_IEEE1394_SBP2=y +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_DV1394=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_I2O=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=y +# CONFIG_I2O_CONFIG_OLD_IOCTL is not set +CONFIG_I2O_BUS=y +CONFIG_I2O_BLOCK=y +CONFIG_I2O_SCSI=y +CONFIG_I2O_PROC=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +CONFIG_IFB=m +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_MACVLAN=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_NET_SB1000=m +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_DNET=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +CONFIG_TULIP_MMIO=y +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_HP100=m +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +CONFIG_AMD8111_ETH=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +CONFIG_FORCEDETH_NAPI=y +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R6040=m +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SMSC9420=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_SC92031=m +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_ATL2=m +CONFIG_NETDEV_1000=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_IGB=m +# CONFIG_IGB_LRO is not set +CONFIG_IGB_DCA=y +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +CONFIG_R8169_VLAN=y +CONFIG_SIS190=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_JME=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3_DEPENDS=y +CONFIG_CHELSIO_T3=m +CONFIG_ENIC=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGB=m +CONFIG_S2IO=m +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_NETXEN_NIC=m +CONFIG_NIU=m +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_TEHUTI=m +CONFIG_BNX2X=m +CONFIG_QLGE=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_BE2NET=m +CONFIG_TR=y +CONFIG_IBMOL=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_ABYSS=m + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_AIRO=m +CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +# CONFIG_MAC80211_HWSIM is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUG is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLCORE=m +CONFIG_IWLWIFI_LEDS=y +# CONFIG_IWLWIFI_RFKILL is not set +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWL3945=m +# CONFIG_IWL3945_RFKILL is not set +CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y +CONFIG_IWL3945_LEDS=y +# CONFIG_IWL3945_DEBUG is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCMCIA=y +CONFIG_B43_PIO=y +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_RFKILL=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set + +# +# WiMAX Wireless Broadband devices +# +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +# CONFIG_USB_KC2190 is not set +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_HSO=m +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_WAN=y +CONFIG_LANMEDIA=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +# CONFIG_PC300TOO is not set +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +# CONFIG_DSCC4_PCISYNC is not set +# CONFIG_DSCC4_PCI_RST is not set +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_DUMMY=m +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +# CONFIG_ATM_HE_USE_SUNI is not set +CONFIG_ATM_SOLOS=m +CONFIG_FDDI=y +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_SKFP=m +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_PLIP=m +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +CONFIG_PPPOATM=m +CONFIG_PPPOL2TP=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLHC=m +CONFIG_SLIP_SMART=y +# CONFIG_SLIP_MODE_SLIP6 is not set +CONFIG_NET_FC=y +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_BKM_A4T=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_W6692=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_ENTERNOW_PCI=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_TELES_CS=m + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_HDLC=y + +# +# Active cards +# +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +# CONFIG_GIGASET_M101 is not set +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_POLLDEV=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOUSE_GPIO=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_UINPUT=m +CONFIG_INPUT_PCF50633_PMU=m + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_DEVKMEM=y +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_COMPUTONE=m +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_DIGIEPCA=m +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +CONFIG_ISI=m +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m +CONFIG_N_HDLC=m +CONFIG_RISCOM8=m +CONFIG_SPECIALIX=m +CONFIG_SX=m +CONFIG_RIO=m +# CONFIG_RIO_OLDPCI is not set +CONFIG_STALDRV=y +CONFIG_STALLION=m +CONFIG_ISTALLION=m +CONFIG_NOZOMI=m + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +CONFIG_HVC_DRIVER=y +CONFIG_VIRTIO_CONSOLE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_NVRAM=m +CONFIG_R3964=m +CONFIG_APPLICOM=m + +# +# PCMCIA character devices +# +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_IPWIRELESS=m +CONFIG_MWAVE=m +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +CONFIG_HANGCHECK_TIMER=m +CONFIG_TCG_TPM=m +# CONFIG_TCG_TIS is not set +# CONFIG_TCG_NSC is not set +CONFIG_TCG_ATMEL=m +# CONFIG_TCG_INFINEON is not set +CONFIG_TELCLOCK=m +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_ISCH=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_GPIO=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_SIMTEC=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Graphics adapter I2C/DDC channel drivers +# +CONFIG_I2C_VOODOO3=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_STUB=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_DS1682=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_TSL2550=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_SPI is not set +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO expanders: +# + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PDA_POWER=m +CONFIG_WM8350_POWER=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_BQ27x00=m +CONFIG_CHARGER_PCF50633=m +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7473=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_THERMAL=m +CONFIG_THERMAL_HWMON=y +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_HP_WATCHDOG=m +CONFIG_SC1200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83697UG_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=m +# CONFIG_MFD_SM501 is not set +CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS65010=m +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_PMIC_DA903X is not set +CONFIG_MFD_WM8400=m +CONFIG_MFD_WM8350=m +CONFIG_MFD_WM8350_I2C=m +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +# CONFIG_REGULATOR is not set + +# +# Multimedia devices +# + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_DVB_CORE=m +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_CUSTOMIZE=y +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m + +# +# Encoders/decoders and other helper chips +# + +# +# Audio decoders +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# MPEG video encoders +# +CONFIG_VIDEO_CX2341X=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_MT9M001_PCA9536_SWITCH=y +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_MT9V022_PCA9536_SWITCH=y +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_V4L_USB_DRIVERS=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_USB_DSBR=m +CONFIG_USB_SI470X=m +CONFIG_USB_MR800=m +CONFIG_RADIO_TEA5764=m +# CONFIG_DVB_DYNAMIC_MINORS is not set +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_SIANO_SMS1XXX=m +CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported SDMC DM1105 Adapters +# +CONFIG_DVB_DM1105=m + +# +# Supported FireWire (IEEE 1394) Adapters +# +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_IEEE1394=y +CONFIG_DVB_FIREDTV_INPUT=y + +# +# Supported DVB Frontends +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_SI21XX=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRX397XD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3304=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_LGS8GL5=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DVB_AF9013=m +CONFIG_DAB=y +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=m +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +# CONFIG_DRM_I915_KMS is not set +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +CONFIG_VGASTATE=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_DDC=m +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_HECUBA=m +CONFIG_FB_SVGALIB=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set +CONFIG_FB_CYBER2000=m +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=m +# CONFIG_FB_UVESA is not set +CONFIG_FB_VESA=y +CONFIG_FB_N411=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_BACKLIGHT=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_I2C=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_BACKLIGHT=y +CONFIG_FB_LE80578=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_VIA=m +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +# CONFIG_CARMINE_DRAM_CUSTOM is not set +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_METRONOME=m +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +# CONFIG_LCD_ILI9320 is not set +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_SAHARA=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=m + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_VGACON_SOFT_SCROLLBACK=y +CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB16_DSP=m +CONFIG_SND_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +# CONFIG_SND_HDA_RECONFIG is not set +# CONFIG_SND_HDA_INPUT_BEEP is not set +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_NVHDMI=y +CONFIG_SND_HDA_CODEC_INTELHDMI=y +CONFIG_SND_HDA_ELD=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +# CONFIG_SND_HDA_POWER_SAVE is not set +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HIFIER=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_PCMCIA=y +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_SOC is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +CONFIG_HID_COMPAT=y +CONFIG_HID_A4TECH=y +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_EZKEY=y +CONFIG_HID_GYRATION=y +CONFIG_HID_LOGITECH=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_NTRIG=y +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=y +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +CONFIG_GREENASIA_FF=m +CONFIG_HID_TOPSEED=y +CONFIG_THRUSTMASTER_FF=m +CONFIG_ZEROPLUS_FF=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set +CONFIG_USB_MON=y +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_C67X00_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_OXU210HP_HCD=y +CONFIG_USB_ISP116X_HCD=y +CONFIG_USB_ISP1760_HCD=y +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=y +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=y +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_HWA_HCD=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; +# + +# +# see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +CONFIG_USB_SERIAL_SAFE_PADDED=y +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_DEBUG=m + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_VST=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_WHCI=m +CONFIG_UWB_WLP=m +CONFIG_UWB_I1480U=m +CONFIG_UWB_I1480U_WLP=m +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_RICOH_MMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +CONFIG_MEMSTICK_TIFM_MS=m +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +CONFIG_LEDS_ALIX2=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_WM8350=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set +# CONFIG_INFINIBAND_CXGB3 is not set +CONFIG_MLX4_INFINIBAND=m +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_IPOIB=m +# CONFIG_INFINIBAND_IPOIB_CM is not set +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=m +CONFIG_RTC_CLASS=m + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_TEST=m + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_PCF50633=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_DMATEST=m +CONFIG_DCA=m +CONFIG_AUXDISPLAY=y +# CONFIG_KS0108 is not set +CONFIG_UIO=m +CONFIG_UIO_CIF=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SMX=m +CONFIG_UIO_SERCOS3=m +CONFIG_STAGING=y +# CONFIG_STAGING_EXCLUDE_BUILD is not set +# CONFIG_ET131X is not set +# CONFIG_SLICOSS is not set +# CONFIG_SXG is not set +# CONFIG_ME4000 is not set +# CONFIG_MEILHAUS is not set +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_USB_IP_COMMON is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_USB_ATMEL is not set +# CONFIG_POCH is not set +# CONFIG_AGNX is not set +# CONFIG_OTUS is not set +CONFIG_RT2860=m +CONFIG_RT2870=m +# CONFIG_COMEDI is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_ALTERA_PCIE_CHDMA is not set +CONFIG_RTL8187SE=m +# CONFIG_INPUT_MIMIO is not set +# CONFIG_TRANZPORT is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_ANDROID_BINDER_IPC is not set +# CONFIG_ANDROID_LOGGER is not set +# CONFIG_ANDROID_RAM_CONSOLE is not set +# CONFIG_ANDROID_TIMED_GPIO is not set +# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACER_WMI=m +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_HP_WMI=m +CONFIG_MSI_LAPTOP=m +CONFIG_PANASONIC_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_INTEL_MENLOW=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_ACPI_WMI=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m + +# +# Firmware Drivers +# +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m +CONFIG_DMIID=y +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_IBFT=m + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +# CONFIG_EXT4DEV_COMPAT is not set +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=y +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=y +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_FILE_LOCKING=y +CONFIG_XFS_FS=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_DEBUG is not set +CONFIG_GFS2_FS=y +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +# CONFIG_OCFS2_FS_STATS is not set +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_OCFS2_FS_POSIX_ACL=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS_FS=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=y +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +# CONFIG_ECRYPT_FS is not set +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_EMBEDDED=y +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_ROMFS_FS=y +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_REGISTER_V4 is not set +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +# CONFIG_CIFS_UPCALL is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_SMALLDOS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=m +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_9P_FS=m + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +CONFIG_SOLARIS_X86_PARTITION=y +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=y +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=0 +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_STACKTRACE=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +# CONFIG_FRAME_POINTER is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_LATENCYTOP is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_RING_BUFFER=y +CONFIG_TRACING=y + +# +# Tracers +# +CONFIG_SYSPROF_TRACER=y +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_STRICT_DEVMEM=y +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_OPTIMIZE_INLINING is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +CONFIG_SECURITY_FILE_CAPABILITIES=y +# CONFIG_SECURITY_ROOTPLUG is not set +CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_XOR_BLOCKS=y +CONFIG_ASYNC_CORE=y +CONFIG_ASYNC_MEMCPY=y +CONFIG_ASYNC_XOR=y +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_AUTHENC=y +CONFIG_CRYPTO_TEST=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_PCBC=y +CONFIG_CRYPTO_XTS=y + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=y + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_X86_64=y +CONFIG_CRYPTO_ANUBIS=y +CONFIG_CRYPTO_ARC4=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_CAST5=y +CONFIG_CRYPTO_CAST6=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_FCRYPT=y +CONFIG_CRYPTO_KHAZAD=y +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=y +CONFIG_CRYPTO_SERPENT=y +CONFIG_CRYPTO_TEA=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_TWOFISH_COMMON=y +CONFIG_CRYPTO_TWOFISH_X86_64=y + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +# CONFIG_KVM_TRACE is not set +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=m +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y diff --git a/source/k/config-speakup-2.6.29.6 b/source/k/config-speakup-2.6.29.6 new file mode 100644 index 000000000..36fb889dd --- /dev/null +++ b/source/k/config-speakup-2.6.29.6 @@ -0,0 +1,4199 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.29.6 +# Mon Aug 17 12:03:53 2009 +# +CONFIG_64BIT=y +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_FAST_CMPXCHG_LOCAL=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ZONE_DMA32=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_AUDIT_ARCH=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_64_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set + +# +# RCU Subsystem +# +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +# CONFIG_GROUP_SCHED is not set +# CONFIG_CGROUPS is not set +# CONFIG_SYSFS_DEPRECATED_V2 is not set +# CONFIG_RELAY is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_MARKERS=y +CONFIG_OPROFILE=m +# CONFIG_OPROFILE_IBS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLOCK_COMPAT=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_FREEZER=y + +# +# Processor type and features +# +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +# CONFIG_SPARSE_IRQ is not set +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_VSMP is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +# CONFIG_PARAVIRT_GUEST is not set +CONFIG_MEMTEST=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_CPU=y +CONFIG_X86_L1_CACHE_BYTES=128 +CONFIG_X86_INTERNODE_CACHE_BYTES=128 +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR_64=y +# CONFIG_X86_DS is not set +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +# CONFIG_CALGARY_IOMMU is not set +# CONFIG_AMD_IOMMU is not set +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +# CONFIG_IOMMU_API is not set +CONFIG_NR_CPUS=32 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_I8K=m +CONFIG_MICROCODE=m +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_DIRECT_GBPAGES=y +# CONFIG_NUMA is not set +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y + +# +# Memory hotplug is currently incompatible with Software Suspend +# +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_UNEVICTABLE_LRU=y +CONFIG_MMU_NOTIFIER=y +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +# CONFIG_X86_PAT is not set +# CONFIG_EFI is not set +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +# CONFIG_SCHED_HRTICK is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x200000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_HOTPLUG_CPU=y +CONFIG_COMPAT_VDSO=y +# CONFIG_CMDLINE_BOOL is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="\"\"" +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_PCI_SLOT=m +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +# CONFIG_ACPI_SBS is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=m +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=m +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_P4_CLOCKMOD=m + +# +# shared options +# +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y + +# +# Memory power savings +# +CONFIG_I7300_IDLE_IOAT_CHANNEL=y +CONFIG_I7300_IDLE=m + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +# CONFIG_DMAR is not set +# CONFIG_INTR_REMAP is not set +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +# CONFIG_PCIEASPM is not set +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_STUB is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=m +CONFIG_IA32_EMULATION=y +CONFIG_IA32_AOUT=m +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_COMPAT_NET_DEV_OPS=y +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETLABEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_EVENTS is not set +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m + +# +# DECnet: Netfilter Configuration +# +# CONFIG_DECNET_NF_GRABULATOR is not set +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m + +# +# DCCP CCIDs Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +# CONFIG_IP_DCCP_CCID3 is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +# CONFIG_NET_DSA is not set +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +CONFIG_WAN_ROUTER=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +# CONFIG_NET_EMATCH is not set +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=y +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m + +# +# CAN Device Drivers +# +CONFIG_CAN_VCAN=m +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_PHONET=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_CFG80211=m +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_NL80211=y +CONFIG_WIRELESS_OLD_REGULATORY=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m + +# +# Rate control algorithm selection +# +CONFIG_MAC80211_RC_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +CONFIG_NET_9P=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_9P_RDMA=m +# CONFIG_NET_9P_DEBUG is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=m +CONFIG_MTD=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_TESTS=m +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +CONFIG_MTD_AR7_PARTS=m + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_HAVE_MTD_OTP=y +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +CONFIG_MTD_OOPS=m + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_MAP_BANK_WIDTH_8=y +CONFIG_MTD_MAP_BANK_WIDTH_16=y +CONFIG_MTD_MAP_BANK_WIDTH_32=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_I4=y +CONFIG_MTD_CFI_I8=y +CONFIG_MTD_OTP=y +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_TS5500=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +CONFIG_MTD_PMC551_BUGFIX=y +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE_ADVANCED=y +CONFIG_MTD_DOCPROBE_ADDRESS=0x0000 +CONFIG_MTD_DOCPROBE_HIGH=y +CONFIG_MTD_DOCPROBE_55AA=y +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_VERIFY_WRITE=y +CONFIG_MTD_NAND_ECC_SMC=y +CONFIG_MTD_NAND_MUSEUM_IDS=y +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y +CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_ONENAND_OTP=y +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_SIM=m + +# +# LPDDR flash memory drivers +# +CONFIG_MTD_LPDDR=m +CONFIG_MTD_QINFO_PROBE=m + +# +# UBI - Unsorted block images +# +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_GLUEBI=y + +# +# UBI debugging options +# +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=y +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +CONFIG_PARIDE_EPATC8=y +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=y +CONFIG_BLK_CPQ_CISS_DA=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=y +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=y +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_VIRTIO_BLK=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_SGI_XP=m +CONFIG_HP_ILO=m +CONFIG_SGI_GRU=m +# CONFIG_SGI_GRU_DEBUG is not set +CONFIG_DELL_LAPTOP=m +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_93CX6=m +CONFIG_HAVE_IDE=y +CONFIG_IDE=y + +# +# Please see Documentation/ide/ide.txt for help/info on IDE drives +# +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_ATAPI=y +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_IDE_GD=y +CONFIG_IDE_GD_ATA=y +CONFIG_IDE_GD_ATAPI=y +CONFIG_BLK_DEV_IDECS=m +CONFIG_BLK_DEV_DELKIN=m +CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_BLK_DEV_IDEACPI=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +CONFIG_BLK_DEV_CMD640=y +CONFIG_BLK_DEV_CMD640_ENHANCED=y +CONFIG_BLK_DEV_IDEPNP=y +CONFIG_BLK_DEV_IDEDMA_SFF=y + +# +# PCI IDE chipsets support +# +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_PCIBUS_ORDER=y +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_RZ1000=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_AEC62XX=y +CONFIG_BLK_DEV_ALI15X3=y +CONFIG_BLK_DEV_AMD74XX=y +CONFIG_BLK_DEV_ATIIXP=y +CONFIG_BLK_DEV_CMD64X=y +CONFIG_BLK_DEV_TRIFLEX=y +CONFIG_BLK_DEV_CS5520=y +CONFIG_BLK_DEV_CS5530=y +CONFIG_BLK_DEV_HPT366=y +CONFIG_BLK_DEV_JMICRON=y +CONFIG_BLK_DEV_SC1200=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_BLK_DEV_IT8172=y +CONFIG_BLK_DEV_IT8213=y +CONFIG_BLK_DEV_IT821X=y +# CONFIG_BLK_DEV_NS87415 is not set +CONFIG_BLK_DEV_PDC202XX_OLD=y +CONFIG_BLK_DEV_PDC202XX_NEW=y +CONFIG_BLK_DEV_SVWKS=y +CONFIG_BLK_DEV_SIIMAGE=y +CONFIG_BLK_DEV_SIS5513=y +CONFIG_BLK_DEV_SLC90E66=y +CONFIG_BLK_DEV_TRM290=y +CONFIG_BLK_DEV_VIA82CXXX=y +CONFIG_BLK_DEV_TC86C001=y +CONFIG_BLK_DEV_IDEDMA=y + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=y +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=y +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_FC_ATTRS=y +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=y +CONFIG_SCSI_SAS_ATTRS=y +CONFIG_SCSI_SAS_LIBSAS=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SRP_ATTRS=y +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_BLK_DEV_3W_XXXX_RAID=y +CONFIG_SCSI_3W_9XXX=y +CONFIG_SCSI_ACARD=y +CONFIG_SCSI_AACRAID=y +CONFIG_SCSI_AIC7XXX=y +CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC7XXX_OLD=y +CONFIG_SCSI_AIC79XX=y +CONFIG_AIC79XX_CMDS_PER_DEVICE=4 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=y +CONFIG_SCSI_ARCMSR=y +# CONFIG_SCSI_ARCMSR_AER is not set +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=y +CONFIG_MEGARAID_MAILBOX=y +CONFIG_MEGARAID_LEGACY=y +CONFIG_MEGARAID_SAS=y +CONFIG_SCSI_HPTIOP=y +CONFIG_SCSI_BUSLOGIC=y +CONFIG_LIBFC=y +CONFIG_FCOE=y +CONFIG_SCSI_DMX3191D=y +CONFIG_SCSI_EATA=y +# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=y +CONFIG_SCSI_GDTH=y +CONFIG_SCSI_IPS=y +CONFIG_SCSI_INITIO=y +CONFIG_SCSI_INIA100=y +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_MVSAS=y +CONFIG_SCSI_STEX=y +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=y +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_QLOGIC_1280=y +CONFIG_SCSI_QLA_FC=y +CONFIG_SCSI_QLA_ISCSI=y +CONFIG_SCSI_LPFC=y +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_DC395x=y +CONFIG_SCSI_DC390T=y +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=y +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_SCSI_DH=y +CONFIG_SCSI_DH_RDAC=y +CONFIG_SCSI_DH_HP_SW=y +CONFIG_SCSI_DH_EMC=y +CONFIG_SCSI_DH_ALUA=y +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y +CONFIG_SATA_SVW=y +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SX4=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y +CONFIG_SATA_INIC162X=y +CONFIG_PATA_ACPI=y +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_ATA_GENERIC=y +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +CONFIG_PATA_HPT3X3_DMA=y +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=y +CONFIG_PATA_MPIIX=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=y +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_SCH=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=y +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID456=y +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=y +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=y +CONFIG_DM_SNAPSHOT=y +CONFIG_DM_MIRROR=y +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +# CONFIG_DM_DELAY is not set +# CONFIG_DM_UEVENT is not set +CONFIG_FUSION=y +CONFIG_FUSION_SPI=y +CONFIG_FUSION_FC=y +CONFIG_FUSION_SAS=y +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# Enable only one of the two stacks, unless you know what you are doing +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=y +CONFIG_IEEE1394_OHCI1394=y +CONFIG_IEEE1394_PCILYNX=y +CONFIG_IEEE1394_SBP2=y +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_DV1394=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_I2O=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=y +# CONFIG_I2O_CONFIG_OLD_IOCTL is not set +CONFIG_I2O_BUS=y +CONFIG_I2O_BLOCK=y +CONFIG_I2O_SCSI=y +CONFIG_I2O_PROC=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +CONFIG_IFB=m +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_MACVLAN=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_NET_SB1000=m +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_DNET=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +CONFIG_TULIP_MMIO=y +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_HP100=m +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +CONFIG_AMD8111_ETH=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +CONFIG_FORCEDETH_NAPI=y +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R6040=m +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SMSC9420=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_SC92031=m +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_ATL2=m +CONFIG_NETDEV_1000=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_IGB=m +# CONFIG_IGB_LRO is not set +CONFIG_IGB_DCA=y +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +CONFIG_R8169_VLAN=y +CONFIG_SIS190=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_JME=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3_DEPENDS=y +CONFIG_CHELSIO_T3=m +CONFIG_ENIC=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGB=m +CONFIG_S2IO=m +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_NETXEN_NIC=m +CONFIG_NIU=m +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_TEHUTI=m +CONFIG_BNX2X=m +CONFIG_QLGE=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_BE2NET=m +CONFIG_TR=y +CONFIG_IBMOL=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_ABYSS=m + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_AIRO=m +CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +# CONFIG_MAC80211_HWSIM is not set +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUG is not set +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLCORE=m +CONFIG_IWLWIFI_LEDS=y +# CONFIG_IWLWIFI_RFKILL is not set +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y +CONFIG_IWLAGN_LEDS=y +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWL3945=m +# CONFIG_IWL3945_RFKILL is not set +CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y +CONFIG_IWL3945_LEDS=y +# CONFIG_IWL3945_DEBUG is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCMCIA=y +CONFIG_B43_PIO=y +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_RFKILL=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set + +# +# WiMAX Wireless Broadband devices +# +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +# CONFIG_USB_KC2190 is not set +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_HSO=m +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_WAN=y +CONFIG_LANMEDIA=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +# CONFIG_PC300TOO is not set +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +# CONFIG_DSCC4_PCISYNC is not set +# CONFIG_DSCC4_PCI_RST is not set +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_DUMMY=m +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +# CONFIG_ATM_HE_USE_SUNI is not set +CONFIG_ATM_SOLOS=m +CONFIG_FDDI=y +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_SKFP=m +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_PLIP=m +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +CONFIG_PPPOATM=m +CONFIG_PPPOL2TP=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLHC=m +CONFIG_SLIP_SMART=y +# CONFIG_SLIP_MODE_SLIP6 is not set +CONFIG_NET_FC=y +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_BKM_A4T=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_W6692=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_ENTERNOW_PCI=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_TELES_CS=m + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_HDLC=y + +# +# Active cards +# +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +# CONFIG_GIGASET_M101 is not set +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_POLLDEV=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOUSE_GPIO=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_UINPUT=m +CONFIG_INPUT_PCF50633_PMU=m + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_DEVKMEM=y +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_COMPUTONE=m +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_DIGIEPCA=m +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +CONFIG_ISI=m +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m +CONFIG_N_HDLC=m +CONFIG_RISCOM8=m +CONFIG_SPECIALIX=m +CONFIG_SX=m +CONFIG_RIO=m +# CONFIG_RIO_OLDPCI is not set +CONFIG_STALDRV=y +CONFIG_STALLION=m +CONFIG_ISTALLION=m +CONFIG_NOZOMI=m + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +CONFIG_HVC_DRIVER=y +CONFIG_VIRTIO_CONSOLE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_NVRAM=m +CONFIG_R3964=m +CONFIG_APPLICOM=m + +# +# PCMCIA character devices +# +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_IPWIRELESS=m +CONFIG_MWAVE=m +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +CONFIG_HANGCHECK_TIMER=m +CONFIG_TCG_TPM=m +# CONFIG_TCG_TIS is not set +# CONFIG_TCG_NSC is not set +CONFIG_TCG_ATMEL=m +# CONFIG_TCG_INFINEON is not set +CONFIG_TELCLOCK=m +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_ISCH=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_GPIO=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_SIMTEC=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Graphics adapter I2C/DDC channel drivers +# +CONFIG_I2C_VOODOO3=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_STUB=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_DS1682=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_TSL2550=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_SPI is not set +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO expanders: +# + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PDA_POWER=m +CONFIG_WM8350_POWER=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_BQ27x00=m +CONFIG_CHARGER_PCF50633=m +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7473=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_THERMAL=m +CONFIG_THERMAL_HWMON=y +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_HP_WATCHDOG=m +CONFIG_SC1200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83697UG_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=m +# CONFIG_MFD_SM501 is not set +CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS65010=m +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_PMIC_DA903X is not set +CONFIG_MFD_WM8400=m +CONFIG_MFD_WM8350=m +CONFIG_MFD_WM8350_I2C=m +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +# CONFIG_REGULATOR is not set + +# +# Multimedia devices +# + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_DVB_CORE=m +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_CUSTOMIZE=y +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m + +# +# Encoders/decoders and other helper chips +# + +# +# Audio decoders +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# MPEG video encoders +# +CONFIG_VIDEO_CX2341X=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_MT9M001_PCA9536_SWITCH=y +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_MT9V022_PCA9536_SWITCH=y +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_V4L_USB_DRIVERS=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_USB_DSBR=m +CONFIG_USB_SI470X=m +CONFIG_USB_MR800=m +CONFIG_RADIO_TEA5764=m +# CONFIG_DVB_DYNAMIC_MINORS is not set +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_SIANO_SMS1XXX=m +CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported SDMC DM1105 Adapters +# +CONFIG_DVB_DM1105=m + +# +# Supported FireWire (IEEE 1394) Adapters +# +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_IEEE1394=y +CONFIG_DVB_FIREDTV_INPUT=y + +# +# Supported DVB Frontends +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_SI21XX=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRX397XD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3304=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_LGS8GL5=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DVB_AF9013=m +CONFIG_DAB=y +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=m +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +# CONFIG_DRM_I915_KMS is not set +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +CONFIG_VGASTATE=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_DDC=m +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_HECUBA=m +CONFIG_FB_SVGALIB=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set +CONFIG_FB_CYBER2000=m +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=m +# CONFIG_FB_UVESA is not set +CONFIG_FB_VESA=y +CONFIG_FB_N411=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_BACKLIGHT=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_I2C=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_BACKLIGHT=y +CONFIG_FB_LE80578=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_VIA=m +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +# CONFIG_CARMINE_DRAM_CUSTOM is not set +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_METRONOME=m +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +# CONFIG_LCD_ILI9320 is not set +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_SAHARA=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=m + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_VGACON_SOFT_SCROLLBACK=y +CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB16_DSP=m +CONFIG_SND_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +# CONFIG_SND_HDA_RECONFIG is not set +# CONFIG_SND_HDA_INPUT_BEEP is not set +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_NVHDMI=y +CONFIG_SND_HDA_CODEC_INTELHDMI=y +CONFIG_SND_HDA_ELD=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +# CONFIG_SND_HDA_POWER_SAVE is not set +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HIFIER=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_PCMCIA=y +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_SOC is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=y +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +CONFIG_HID_COMPAT=y +CONFIG_HID_A4TECH=y +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_EZKEY=y +CONFIG_HID_GYRATION=y +CONFIG_HID_LOGITECH=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_NTRIG=y +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=y +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +CONFIG_GREENASIA_FF=m +CONFIG_HID_TOPSEED=y +CONFIG_THRUSTMASTER_FF=m +CONFIG_ZEROPLUS_FF=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set +CONFIG_USB_MON=y +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_C67X00_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_OXU210HP_HCD=y +CONFIG_USB_ISP116X_HCD=y +CONFIG_USB_ISP1760_HCD=y +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=y +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=y +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_HWA_HCD=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; +# + +# +# see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +CONFIG_USB_SERIAL_SAFE_PADDED=y +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_DEBUG=m + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_VST=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_WHCI=m +CONFIG_UWB_WLP=m +CONFIG_UWB_I1480U=m +CONFIG_UWB_I1480U_WLP=m +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_RICOH_MMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +CONFIG_MEMSTICK_TIFM_MS=m +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +CONFIG_LEDS_ALIX2=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_WM8350=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y + +# +# Speakup console speech +# +CONFIG_SPEAKUP=y +CONFIG_SPEAKUP_SYNTH_ACNTSA=y +CONFIG_SPEAKUP_SYNTH_ACNTPC=y +CONFIG_SPEAKUP_SYNTH_APOLLO=y +CONFIG_SPEAKUP_SYNTH_AUDPTR=y +CONFIG_SPEAKUP_SYNTH_BNS=y +CONFIG_SPEAKUP_SYNTH_DECTLK=y +CONFIG_SPEAKUP_SYNTH_DECEXT=y +CONFIG_SPEAKUP_SYNTH_DECPC=m +CONFIG_SPEAKUP_SYNTH_DTLK=y +CONFIG_SPEAKUP_SYNTH_KEYPC=y +CONFIG_SPEAKUP_SYNTH_LTLK=y +CONFIG_SPEAKUP_SYNTH_SOFT=y +CONFIG_SPEAKUP_SYNTH_SPKOUT=y +CONFIG_SPEAKUP_SYNTH_TXPRT=y +CONFIG_SPEAKUP_SYNTH_DUMMY=y +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set +# CONFIG_INFINIBAND_CXGB3 is not set +CONFIG_MLX4_INFINIBAND=m +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_IPOIB=m +# CONFIG_INFINIBAND_IPOIB_CM is not set +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=m +CONFIG_RTC_CLASS=m + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_TEST=m + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_PCF50633=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_DMATEST=m +CONFIG_DCA=m +CONFIG_AUXDISPLAY=y +# CONFIG_KS0108 is not set +CONFIG_UIO=m +CONFIG_UIO_CIF=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SMX=m +CONFIG_UIO_SERCOS3=m +CONFIG_STAGING=y +# CONFIG_STAGING_EXCLUDE_BUILD is not set +# CONFIG_ET131X is not set +# CONFIG_SLICOSS is not set +# CONFIG_SXG is not set +# CONFIG_ME4000 is not set +# CONFIG_MEILHAUS is not set +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_USB_IP_COMMON is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_USB_ATMEL is not set +# CONFIG_POCH is not set +# CONFIG_AGNX is not set +# CONFIG_OTUS is not set +CONFIG_RT2860=m +CONFIG_RT2870=m +# CONFIG_COMEDI is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_ALTERA_PCIE_CHDMA is not set +CONFIG_RTL8187SE=m +# CONFIG_INPUT_MIMIO is not set +# CONFIG_TRANZPORT is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_ANDROID_BINDER_IPC is not set +# CONFIG_ANDROID_LOGGER is not set +# CONFIG_ANDROID_RAM_CONSOLE is not set +# CONFIG_ANDROID_TIMED_GPIO is not set +# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACER_WMI=m +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_HP_WMI=m +CONFIG_MSI_LAPTOP=m +CONFIG_PANASONIC_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_INTEL_MENLOW=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_ACPI_WMI=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m + +# +# Firmware Drivers +# +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m +CONFIG_DMIID=y +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_IBFT=m + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +# CONFIG_EXT4DEV_COMPAT is not set +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=y +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=y +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_FILE_LOCKING=y +CONFIG_XFS_FS=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_DEBUG is not set +CONFIG_GFS2_FS=y +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +# CONFIG_OCFS2_FS_STATS is not set +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_OCFS2_FS_POSIX_ACL=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS_FS=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=y +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +# CONFIG_ECRYPT_FS is not set +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_EMBEDDED=y +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_ROMFS_FS=y +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_REGISTER_V4 is not set +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +# CONFIG_CIFS_UPCALL is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_SMALLDOS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=m +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_9P_FS=m + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +CONFIG_SOLARIS_X86_PARTITION=y +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=y +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=0 +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_STACKTRACE=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +# CONFIG_FRAME_POINTER is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_LATENCYTOP is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_RING_BUFFER=y +CONFIG_TRACING=y + +# +# Tracers +# +CONFIG_SYSPROF_TRACER=y +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_DYNAMIC_PRINTK_DEBUG is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_STRICT_DEVMEM=y +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_OPTIMIZE_INLINING is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +CONFIG_SECURITY_FILE_CAPABILITIES=y +# CONFIG_SECURITY_ROOTPLUG is not set +CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_XOR_BLOCKS=y +CONFIG_ASYNC_CORE=y +CONFIG_ASYNC_MEMCPY=y +CONFIG_ASYNC_XOR=y +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_AUTHENC=y +CONFIG_CRYPTO_TEST=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_PCBC=y +CONFIG_CRYPTO_XTS=y + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=y + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_X86_64=y +CONFIG_CRYPTO_ANUBIS=y +CONFIG_CRYPTO_ARC4=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_CAST5=y +CONFIG_CRYPTO_CAST6=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_FCRYPT=y +CONFIG_CRYPTO_KHAZAD=y +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=y +CONFIG_CRYPTO_SERPENT=y +CONFIG_CRYPTO_TEA=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_TWOFISH_COMMON=y +CONFIG_CRYPTO_TWOFISH_X86_64=y + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +# CONFIG_KVM_TRACE is not set +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=m +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y diff --git a/source/k/kernel-firmware/kernel-firmware.SlackBuild b/source/k/kernel-firmware/kernel-firmware.SlackBuild new file mode 100755 index 000000000..5299ee4ac --- /dev/null +++ b/source/k/kernel-firmware/kernel-firmware.SlackBuild @@ -0,0 +1,45 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kernel-firmware + +VERSION=${VERSION:-2.6.29.6} +ARCH=${ARCH:-noarch} +BUILD=${BUILD:-1} + +rm -rf $PKG +mkdir -p $TMP $PKG +echo "Using /usr/src/linux-2.6.29.6/" +echo "Make sure this is *ready*..." +mkdir -p $PKG/lib/firmware +( cd /usr/src/linux-2.6.29.6 && make firmware_install INSTALL_FW_PATH=$PKG/lib/firmware ) +cp -a /usr/src/linux-2.6.29.6/firmware/WHENCE $PKG/lib/firmware + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kernel-firmware-${VERSION}-noarch-$BUILD.txz + diff --git a/source/k/kernel-firmware/slack-desc b/source/k/kernel-firmware/slack-desc new file mode 100644 index 000000000..8a2d40cc1 --- /dev/null +++ b/source/k/kernel-firmware/slack-desc @@ -0,0 +1,11 @@ +kernel-firmware: kernel-firmware (Firmware installed by the kernel) +kernel-firmware: +kernel-firmware: These are the firmware files from the Linux kernel. +kernel-firmware: +kernel-firmware: You'll need these to use certain hardware with Linux. +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: diff --git a/source/k/kernel-generic/kernel-generic.SlackBuild b/source/k/kernel-generic/kernel-generic.SlackBuild new file mode 100755 index 000000000..57450f86b --- /dev/null +++ b/source/k/kernel-generic/kernel-generic.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +KERNNAME=generic +VERSION=${VERSION:-2.6.29.6} +ARCH=${ARCH:-x86_64} +KARCH=${KARCH:-x86} +BUILD=${BUILD:-1} + +TMP=${TMP:-/tmp} +CWD=$(pwd) +PKG=$TMP/package-kernel + +rm -rf $PKG +mkdir -p $TMP $PKG + +# First try to find the loot in the current dir, then look +# in /usr/src/linux-$VERSION: +if [ -r $CWD/bzImage ]; then + KERNEL=$CWD/bzImage +elif [ -r $CWD/vmlinuz ]; then + KERNEL=$CWD/vmlinuz +elif [ -r $CWD/vmlinuz* ]; then + KERNEL=$CWD/vmlinuz* +else + KERNEL=/usr/src/linux-$VERSION/arch/${KARCH}/boot/bzImage +fi + +if [ -r $CWD/System.map.gz ]; then + gzip -d $CWD/System.map.gz +elif [ -r $CWD/System.map.bz2 ]; then + bzip2 -d $CWD/System.map.bz2 +fi + +if [ -r $CWD/System.map ]; then + SYSMAP=$CWD/System.map +elif [ -r $CWD/System.map* ]; then + SYSMAP=$CWD/System.map* +else + SYSMAP=/usr/src/linux-$VERSION/System.map +fi +if [ -r $CWD/config ]; then + CONFIG=$CWD/config +elif [ -r $CWD/config* ]; then + CONFIG=$CWD/config* +elif [ -r $CWD/.config ]; then + CONFIG=$CWD/.config +else + CONFIG=/usr/src/linux-$VERSION/.config +fi + +cat << EOF +Building kernel-$KERNNAME-${VERSION}-$ARCH-$BUILD.txz +using these source files. Please check and then hit +enter to make the package. + +KERNEL = $KERNEL +SYSMAP = $SYSMAP +CONFIG = $CONFIG + +EOF +read junk; + +rm -rf $PKG +mkdir -p $PKG +mkdir -p $PKG/boot +cp $KERNEL $PKG/boot/vmlinuz-$KERNNAME-${VERSION} +( cd $PKG/boot ; ln -sf vmlinuz-$KERNNAME-${VERSION} vmlinuz ) +cp $SYSMAP $PKG/boot/System.map-$KERNNAME-${VERSION} +( cd $PKG/boot ; ln -sf System.map-$KERNNAME-${VERSION} System.map ) +cp $CONFIG $PKG/boot/config-$KERNNAME-${VERSION} +( cd $PKG/boot ; ln -sf config-$KERNNAME-${VERSION} config ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/kernel-$KERNNAME-${VERSION}-$ARCH-$BUILD.txz + diff --git a/source/k/kernel-generic/slack-desc b/source/k/kernel-generic/slack-desc new file mode 100644 index 000000000..569a0189b --- /dev/null +++ b/source/k/kernel-generic/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kernel-generic: kernel-generic (a general purpose SMP Linux kernel) +kernel-generic: +kernel-generic: This is a Linux kernel with built-in support for most disk +kernel-generic: controllers. To use filesystems, or to load support for a SCSI or +kernel-generic: other controller, then you'll need to load one or more kernel +kernel-generic: modules using an initial ramdisk, or initrd. For more information +kernel-generic: about creating an initrd, see the README.initrd file in the /boot +kernel-generic: directory. +kernel-generic: +kernel-generic: SMP is "Symmetric multiprocessing", or multiple CPU/core support. +kernel-generic: diff --git a/source/k/kernel-huge/kernel-huge.SlackBuild b/source/k/kernel-huge/kernel-huge.SlackBuild new file mode 100755 index 000000000..79497d2d8 --- /dev/null +++ b/source/k/kernel-huge/kernel-huge.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +KERNNAME=huge +VERSION=${VERSION:-2.6.29.6} +ARCH=${ARCH:-x86_64} +KARCH=${KARCH:-x86} +BUILD=${BUILD:-1} + +TMP=${TMP:-/tmp} +CWD=$(pwd) +PKG=$TMP/package-kernel + +rm -rf $PKG +mkdir -p $TMP $PKG + +# First try to find the loot in the current dir, then look +# in /usr/src/linux-$VERSION: +if [ -r $CWD/bzImage ]; then + KERNEL=$CWD/bzImage +elif [ -r $CWD/vmlinuz ]; then + KERNEL=$CWD/vmlinuz +elif [ -r $CWD/vmlinuz* ]; then + KERNEL=$CWD/vmlinuz* +else + KERNEL=/usr/src/linux-$VERSION/arch/${KARCH}/boot/bzImage +fi + +if [ -r $CWD/System.map.gz ]; then + gzip -d $CWD/System.map.gz +elif [ -r $CWD/System.map.bz2 ]; then + bzip2 -d $CWD/System.map.bz2 +fi + +if [ -r $CWD/System.map ]; then + SYSMAP=$CWD/System.map +elif [ -r $CWD/System.map* ]; then + SYSMAP=$CWD/System.map* +else + SYSMAP=/usr/src/linux-$VERSION/System.map +fi +if [ -r $CWD/config ]; then + CONFIG=$CWD/config +elif [ -r $CWD/config* ]; then + CONFIG=$CWD/config* +elif [ -r $CWD/.config ]; then + CONFIG=$CWD/.config +else + CONFIG=/usr/src/linux-$VERSION/.config +fi + +cat << EOF +Building kernel-$KERNNAME-${VERSION}-$ARCH-$BUILD.txz +using these source files. Please check and then hit +enter to make the package. + +KERNEL = $KERNEL +SYSMAP = $SYSMAP +CONFIG = $CONFIG + +EOF +read junk; + +rm -rf $PKG +mkdir -p $PKG +mkdir -p $PKG/boot +cp $KERNEL $PKG/boot/vmlinuz-$KERNNAME-${VERSION} +( cd $PKG/boot ; ln -sf vmlinuz-$KERNNAME-${VERSION} vmlinuz ) +cp $SYSMAP $PKG/boot/System.map-$KERNNAME-${VERSION} +( cd $PKG/boot ; ln -sf System.map-$KERNNAME-${VERSION} System.map ) +cp $CONFIG $PKG/boot/config-$KERNNAME-${VERSION} +( cd $PKG/boot ; ln -sf config-$KERNNAME-${VERSION} config ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/kernel-$KERNNAME-${VERSION}-$ARCH-$BUILD.txz + diff --git a/source/k/kernel-huge/slack-desc b/source/k/kernel-huge/slack-desc new file mode 100644 index 000000000..c360f47c1 --- /dev/null +++ b/source/k/kernel-huge/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kernel-huge: kernel-huge (a fully-loaded SMP Linux kernel) +kernel-huge: +kernel-huge: This is a Linux kernel with built-in support for most disk +kernel-huge: controllers. If you're looking for a more stripped down kernel +kernel-huge: (this one contains everything but the kitchen sink ;-), then install +kernel-huge: the kernel-generic in the /boot directory along with an initrd to +kernel-huge: load support for your boot device and filesystem. For instructions +kernel-huge: on the initrd, see README.initrd in the /boot directory. +kernel-huge: +kernel-huge: SMP is "Symmetric multiprocessing", or multiple CPU/core support. +kernel-huge: diff --git a/source/k/kernel-modules/kernel-modules.SlackBuild b/source/k/kernel-modules/kernel-modules.SlackBuild new file mode 100755 index 000000000..8ff699aad --- /dev/null +++ b/source/k/kernel-modules/kernel-modules.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.6.29.6} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kernel-modules + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "Using /lib/modules/${VERSION}/" +echo "Make sure these are *ready*... compressed, or not." +echo "However you want 'em." +sleep 5 +mkdir -p $PKG/lib/modules +cp -a /lib/modules/${VERSION} $PKG/lib/modules +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.modules.new > $PKG/etc/rc.d/rc.modules-${VERSION}.new +chmod 755 $PKG/etc/rc.d/rc.modules-${VERSION}.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Write out the doinst.sh: +cat << EOF > $PKG/install/doinst.sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.modules-${VERSION}.new + +# If rc.modules is a real file, back it up: +if [ -r etc/rc.d/rc.modules -a ! -L etc/rc.d/rc.modules ]; then + cp -a etc/rc.d/rc.modules etc/rc.d/rc.modules.bak +fi +# Make rc.modules a symlink if it's not already, but do not replace +# an existing symlink. You'll have to decide to point at a new version +# of this script on your own... +if [ ! -L etc/rc.d/rc.modules ]; then + ( cd etc/rc.d ; rm -rf rc.modules ) + ( cd etc/rc.d ; ln -sf rc.modules-${VERSION} rc.modules ) +fi + +# A good idea whenever kernel modules are added or changed: +if [ -x sbin/depmod ]; then + chroot . /sbin/depmod -a ${VERSION} 1> /dev/null 2> /dev/null +fi + +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kernel-modules-${VERSION}-$ARCH-$BUILD.txz + diff --git a/source/k/kernel-modules/rc.modules.new b/source/k/kernel-modules/rc.modules.new new file mode 100755 index 000000000..cb1fbec69 --- /dev/null +++ b/source/k/kernel-modules/rc.modules.new @@ -0,0 +1,924 @@ +#!/bin/sh +# rc.modules 12.3456789 Sun May 10 05:31:26 UTC 2009 pp (rb), pjv, rlw +# +# This file loads extra drivers into the Linux kernel. +# +# The modules will be looked for under /lib/modules/<kernel version number> +# On systems using udev, this file should remain mostly commented out. +# Nearly all hardware device modules will be loaded automatically on such +# systems. This file should only be used when udev is not loading a module +# that you require, or if you are not using udev (which is going to become +# increasingly impossible...), or if you want to force a particular module +# to be loaded where alternatives exist. +# +# Many Linux kernel modules will accept extra options. The Linux kernel +# source is the best place to look for extra documentation for the various +# modules. This can be found under /usr/src/linux/Documentation if you've +# the installed the kernel sources. +# +# NOTE: This may not be a complete list of modules. If you don't see what +# you're looking for, look around in /lib/modules/2.x.x/ for an appropriate +# module. Also, if any problems arise loading or using these modules, try +# compiling and installing a custom kernel that contains the support instead. +# That always works. ;^) + +# Determine the version of the running kernel: +RELEASE=$(uname -r) + +### Update module dependencies ### +# If /usr is mounted and we have 'find', we can try to take a shortcut: +if [ -x /usr/bin/find -a -e /lib/modules/$RELEASE/modules.dep \ + -a /lib/modules/$RELEASE/modules.dep -nt /etc/modules.conf ]; then + NEWMODS="$(/usr/bin/find /lib/modules/$RELEASE -mindepth 2 -type f -newer /lib/modules/$RELEASE/modules.dep)" + # Only rebuild dependencies if new module(s) are found: + if [ ! "" = "$NEWMODS" ]; then + echo "Updating module dependencies for Linux $RELEASE:" + /sbin/depmod -a + else + echo "Module dependencies up to date (no new kernel modules found)." + fi +else # we don't have find, or there is no existing modules.dep, or it is out of date. + echo "Updating module dependencies for Linux $RELEASE:" + /sbin/depmod -A +fi + +### Mouse support: +# PS/2 mouse support: +# The default in Slackware is to use proto=imps because that works with the +# most types of mice out of the box. For example, using proto=any will +# completely break the mouse if you change consoles with several models of KVM +# switches. +# +# This is commented out here because a better place to configure the options +# for the psmouse module is in /etc/modprobe.d/psmouse. +# +#/sbin/modprobe psmouse proto=imps +# +# Serial (RS-232, COM port) mouse support: +#/sbin/modprobe sermouse +# +# Microsoft/ATI XL busmouse support: +# Microsoft busmouse (also called Inport mice) is connected to an +# expansion board using a round connector with 9 pins. Be aware that +# several vendors talk about 'Microsoft busmouse' and actually mean +# PS/2 busmouse -- so count the pins on the connector. This driver +# also supports the ATIXL mouse, a rare mouse that is connected to the +# back of an ATI video card: +#/sbin/modprobe inport +# +# Logitech mouse connected to a proprietary interface card. It's +# generally a round connector with 9 pins. Note that the newer mice +# made by Logitech don't use the Logitech protocol anymore; for those, +# you don't need this module: +#/sbin/modprobe logibm +# +# IBM PC110 palmtop digitizer pad: +#/sbin/modprobe pc110pad + +#### ACPI support ### +# Advanced Configuration and Power Interface (ACPI) support for Linux +# requires an ACPI compliant platform (hardware/firmware), and assumes +# the presence of OS-directed configuration and power management (OSPM) +# software. Linux ACPI provides a robust functional replacement for +# several legacy configuration and power management interfaces, including +# the Plug-and-Play BIOS specification (PnP BIOS), the MultiProcessor +# Specification (MPS), and the Advanced Power Management (APM) +# specification. If both ACPI and APM support are configured, whichever +# is loaded first shall be used. Also note that in many cases udev will +# load the required modules if ACPI is found to be active. +# ACPI can be disabled with the "noacpi" boot option. +# Also note that ACPI is blacklisted with our default kernel +# configurations on machines with a BIOS older than 2001-01-01. If you +# still want to try it, you'll need to use the "acpi=force" boot option. +# +# AC Adapter (indicates whether a system is on AC, or not): +#/sbin/modprobe ac +# +# Battery (adds battery information through/proc/acpi/battery): +#/sbin/modprobe battery +# +# Button (handles events on the power, sleep and lid buttons): +#/sbin/modprobe button +# +# Video. This driver implements the ACPI Extensions For Display Adapters +# for integrated graphics devices on motherboard, as specified in ACPI 2.0 +# Specification, Appendix B, allowing some basic control like defining the +# video POST device, retrieving EDID information, or to setup a video output. +# Note that this is an reference implementation only, and it may or may not +# work for your integrated video device. +#/sbin/modprobe video +# +# Fan (adds support for ACPI fan control and status): +#/sbin/modprobe fan +# +# Dock (adds support for ACPI controlled docking stations): +#/sbin/modprobe dock +# +# Bay (adds support for ACPI controlled removable drive bays such as the +# IBM UltraBay or the Dell Module Bay): +#/sbin/modprobe bay +# +# Processor. This driver installs ACPI as the idle handler for Linux, and +# uses ACPI C2 and C3 processor states to save power, on systems that +# support it. It is required by several flavors of cpufreq Performance- +# state drivers. +#/sbin/modprobe processor +# +# Thermal. This driver adds support for ACPI thermal zones. Most mobile and +# some desktop systems support ACPI thermal zones. It is HIGHLY recommended +# that this option be enabled, as your processor(s) may be damaged without it. +#/sbin/modprobe thermal +# +# Memory. This driver adds support for ACPI Memory Hotplug. This driver +# provides support for fielding notifications on ACPI memory devices +# (PNP0C80) which represent memory ranges that may be onlined or offlined +# during runtime. Enabling this driver assumes that your platform hardware +# and firmware have support for hot-plugging physical memory. If your +# system does not support physically adding or ripping out memory DIMMs at +# some platform defined granularity (individually or as a bank) at runtime, +# then you need not enable this driver. +#/sbin/modprobe memory +# +# Container (EXPERIMENTAL -- allows _physical_ insertion and removal of CPUs +# and memory on machines that support it): +#/sbin/modprobe container +# +# ASUS/Medion Laptop Extras. This driver provides support for extra features +# of ACPI-compatible ASUS laptops. As some of Medion laptops are made by +# ASUS, it may also support some Medion laptops (such as 9675 for example). +# It makes all the extra buttons generate standard ACPI events that go through +# /proc/acpi/events, and (on some models) adds support for changing the +# display brightness and output, switching the LCD backlight on and off, and, +# most importantly, allows you to blink those fancy LEDs intended for +# reporting mail and wireless status. All settings are changed via +# /proc/acpi/asus directory entries. Owner and group for these entries can be +# set with asus_uid and asus_gid module parameters. +# More information and a userspace daemon for handling the extra buttons: +# http://sourceforge.net/projects/acpi4asus/ +#/sbin/modprobe asus_acpi +# +# ThinkPad ACPI Laptop Extras. This is a driver for the IBM and Lenovo +# ThinkPad laptops. It adds support for Fn-Fx key combinations, Bluetooth +# control, video output switching, ThinkLight control, UltraBay eject and +# more. For more information about this driver see: +# Documentation/thinkpad-acpi.txt and http://ibm-acpi.sf.net/ +#/sbin/modprobe thinkpad_acpi +# +# Toshiba Laptop Extras. This driver adds support for access to certain +# system settings on "legacy free" Toshiba laptops. These laptops can be +# recognized by their lack of a BIOS setup menu and APM support. On these +# machines, all system configuration is handled through the ACPI. This +# driver is required for access to controls not covered by the general ACPI +# drivers, such as LCD brightness and video output. Configuration is +# accessed by reading and writing text files in the /proc tree. Furthermore, +# no power management functions are exposed, as those are handled by the +# general ACPI drivers. +# More information about this driver is available at: +# http://memebeam.org/toys/ToshibaAcpiDriver +#/sbin/modprobe toshiba_acpi +# +# +# See also the ACPI CPU frequency scaling driver in the "CPU frequency +# scaling modules" section below. + +#### APM support ### +# APM is a BIOS specification for saving power using several different +# techniques. This is mostly useful for battery powered laptops. +# If a kernel supports ACPI it will always be built in, not a module. +# APM is considered obsolete on newer hardware -- most things have ACPI. +#/sbin/modprobe apm + +# Enable PC speaker support: +#/sbin/modprobe pcspkr + +### Built-in PC parallel port support ### +# Generic setup example. Attempt to load by default, since it usually +# won't hurt. Some (most?) people may want to comment the line below +# and look into better functioning and performing hardware specific +# options as described later on in this section. +# +/sbin/modprobe -q parport_pc 2> /dev/null +# Hardware specific setup example (PLIP requires an IRQ, and the +# ECP protocol requires a DMA channel) +# This may also give better performance in general. +#/sbin/modprobe parport_pc io=0x378 irq=7 dma=1 + +### PCI parallel/serial card support: +# If your serial/parallel ports are on a PCI card, uncomment the +# line below and comment the section above that loads parport_pc. +#/sbin/modprobe parport_serial + +### Parallel printer support ### +# This should be safe to try to load by default. +/sbin/modprobe -q lp 2> /dev/null + +### Parallel port IP ### +#/sbin/modprobe plip + +### Filesystem Quota support ### +if /bin/grep -q quota /etc/fstab ; then + # /sbin/modprobe quota_v1 + /sbin/modprobe quota_v2 +fi + +### AGP (Accelerated Graphics Port) GART support ### +# This module takes care of programming the GART (part of your motherboard's +# chipset that handles gathering data from memory and passing it to the +# card) and enables faster AGP transfers. The AGP GART module is required +# to use AGP features of your 3D rendering video card. You'll need this to +# with most cards (nVidia's official drivers that include their own GART +# support being a notable exception) to use X11's direct rendering support. +/sbin/modprobe agpgart 2> /dev/null + +### non-IDE CD-ROM drive support ### +# These modules add CD-ROM drive support. Most of these drivers will probe +# for the I/O address and IRQ of the drive automatically if the parameters +# to configure them are omitted. Typically the I/O address will be specified +# in hexadecimal, e.g.: cm206=0x300,11 +# +# ***NONE*** of these drivers are for use with IDE/ATAPI CD-ROM drives. That +# support is already built into every pre-compiled Slackware Linux kernel. +# Also, note that all of the manufacturers listed below stopped making these +# types of wacky-interface drives years ago and all make IDE/ATAPI-interface +# CD-ROM drives now. So, just because your drive says "Mitsumi" on it is not +# reason enough to think you need the special Mitsumi module loaded, etc. If +# you got your drive within the last couple of years it's probably IDE. Try +# tossing a disc in the drive and mounting it on the various IDE interfaces it +# could be using, like /dev/hdc. +# +#/sbin/modprobe aztcd aztcd=<I/O address> +#/sbin/modprobe cdu31a cdu31a_port=<I/O address> cdu31a_irq=<interrupt> +#/sbin/modprobe cm206 cm206=<I/O address>,<IRQ> +#/sbin/modprobe gscd gscd=<I/O address> +#/sbin/modprobe mcdx mcdx=<I/O address>,<IRQ> +#/sbin/modprobe optcd optcd=<I/O address> +# Below, this last number is "1" for SoundBlaster Pro card, or "0" for a clone. +#/sbin/modprobe sbpcd sbpcd=<I/O address>,1 +#/sbin/modprobe sjcd sjcd=<I/O address> +#/sbin/modprobe sonycd535 sonycd535=<I/O address> + +# CD-ROM drives on ISP16, MAD16 or Mozart sound card: +#/sbin/modprobe isp16 isp16_cdrom_base=<port> isp16_cdrom_irq=<irq> isp16_cdrom_dma=<dma> isp16_cdrom_type=<drive_type> +# where the values are one of: port=0x340,0x320,0x330,0x360 +# irq=0,3,5,7,9,10,11 +# dma=0,3,5,6,7 +# drive_type=noisp16,Sanyo,Panasonic,Sony,Mitsumi + +### Cyclades multiport serial card support ### +#/sbin/modprobe cyclades + +#### Serial line IP support (SLIP/CSLIP/PPP) ### +## This module is for SLIP/CSLIP support: +#/sbin/modprobe slip + +## Load PPP: +# This module is for PPP support: +#/sbin/modprobe ppp_generic +# This PPP plugin supports PPP over serial lines: +#/sbin/modprobe ppp_async +# Use this plugin instead for HDLC (used for high-speed leased lines like T1/E1) +#/sbin/modprobe ppp_synctty + +## This module provides compression for PPP (optional): +##/sbin/modprobe ppp_deflate + +### USB Host Controllers: +# Enhanced Host Controller Interface (USB 2.0) +#/sbin/modprobe ehci-hcd +# Open Host Controller Interface (Compaq/Microsoft/National standard): +#/sbin/modprobe ohci-hcd +# Universal Host Controller Interface (Intel/Via standard): +#/sbin/modprobe uhci-hcd +# ISP1160/ISP1161 USB Host Controllers +#/sbin/modprobe isp116x-hcd +# SL811HS USB Host Controller +#/sbin/modprobe sl811-hcd +# SL811HS PCMCIA/CF USB Host Controller +#/sbin/modprobe sl811_cs + +### USB device support: +# (Note that once you've loaded USB hub support most USB devices will +# trigger the kernel to load their modules automatically) +# USB "Human Interface Device" driver; handles most USB mice, joysticks, +# gamepads, steering wheels, keyboards, trackballs and digitizers. +#/sbin/modprobe usbhid +# Simple HIDBP USB mouse driver, if hid doesn't work: +#/sbin/modprobe usbmouse +# Simple HIDBP USB keyboard driver, if hid doesn't work: +#/sbin/modprobe usbkbd +# Wacom Graphire and Intuos tablet driver: +#/sbin/modprobe wacom +# Logitech WingMan Force joystick: +#/sbin/modprobe iforce +# USB audio: +#/sbin/modprobe audio +# USB modem support: +#/sbin/modprobe cdc-acm +# USB serial converter: +#/sbin/modprobe usbserial +# USB printer support: +#/sbin/modprobe usblp +# IBM "C-It" USB video camera: +#/sbin/modprobe ibmcam framerate=1 +# USB OV511 Camera support: +#/sbin/modprobe ov511 +# USB ADMtek Pegasus-based ethernet device support: +#/sbin/modprobe pegasus +# Kawasaki USB ethernet controller support: +#/sbin/modprobe kaweth +# USB Mustek MDC800 Digital Camera Support: +#/sbin/modprobe mdc800 +# USB Mass Storage support: +#/sbin/modprobe usb-storage +# USS720 parallel-port driver: +#/sbin/modprobe uss720 +# Prolific PL-2302 USB-to-USB network device: +#/sbin/modprobe plusb +# USB Diamond Rio500 support: +#/sbin/modprobe rio500 +# D-Link DSB-R100 FM radio support: +#/sbin/modprobe dsbr100 +# USB Bluetooth support: +#/sbin/modprobe bluetooth + +### USB event drivers: +# Mouse input: +#/sbin/modprobe mousedev +# Joystick input: +#/sbin/modprobe joydev +# Generic event reporting device: +#/sbin/modprobe evdev + +### ALSA (Advanced Linux Sound Architecture) support: +# Sound Blaster Pro/16 support: +#/sbin/modprobe snd-sb16 port=0x220 irq=5 dma8=3 dma16=5 mpu_port=0x300 +# Sound Blaster Live support: +#/sbin/modprobe snd-emu10k1 +# AD1816(A) sound driver: +#/sbin/modprobe snd-ad1816a port=0x530 irq=5 dma1=1 dma2=3 +# Crystal CS4232 based (PnP) cards: +#/sbin/modprobe snd-cs4232 +# ES1370 (Ensoniq AudioPCI ES1370) support. This is for some Creative +# Labs Sound Blaster PCI64/128 (that use the ES1370 chipset), and +# Ensoniq AudioPCI-97: +#/sbin/modprobe snd-ens1370 +# ES1371 (Ensoniq AudioPCI ES1371/73) support. This is for some Creative +# Labs Sound Blaster PCI64/128 (that use the ES1371/73 chipset), Ectiva +# EV1938, Vibra PCI128, and Ensoniq AudioPCI ES1371/73: +#/sbin/modprobe snd-ens1371 +# ESS Maestro, Maestro2, Maestro2E: +#/sbin/modprobe snd-es1968 +# ESS Maestro3/Allegro: +#/sbin/modprobe snd-maestro3 +# VIA VT82xx Audio Controller +#/sbin/modprobe snd-via82xx +# (For information on configuring other sound cards with Linux, +# see the documentation in /usr/src/linux/Documentation/sound/, +# and /usr/src/linux/Documentation/Configure.help. + +### Joystick support ### +# The core joystick input support module, needed by all of the +# joystick devices below: +#/sbin/modprobe joydev +### Next, you must load a module for your gameport. +# Classic ISA/PnP gameports: +#/sbin/modprobe ns558 +# SoundBlaster Live! gameports: +#/sbin/modprobe emu10k1-gp +# Many soundcards had their gameport support bundled in sound drivers +### Drivers for various joystick devices ### +# Analog joysticks and gamepads: +#/sbin/modprobe analog +# Assassin 3D and MadCatz Panther devices: +#/sbin/modprobe a3d +# Logitech ADI digital joysticks and gamepads: +#/sbin/modprobe adi +# Creative Labs Blaster Cobra gamepad: +#/sbin/modprobe cobra +# Genius Flight2000 Digital joysticks and gamepads: +#/sbin/modprobe gf2k +# Gravis GrIP joysticks and gamepads: +#/sbin/modprobe grip +# InterAct digital joysticks and gamepads: +#/sbin/modprobe interact +# ThrustMaster DirectConnect joysticks and gamepads: +#/sbin/modprobe tmdc +# Microsoft SideWinder digital joysticks and gamepads: +#/sbin/modprobe sidewinder +### Serial port game controller support ### +# Both of these are needed for serial-port game controllers: +#/sbin/modprobe serio +#/sbin/modprobe serport +# Logitech WingMan Warrior joystick: +#/sbin/modprobe warrior +# LogiCad3d Magellan/SpaceMouse 6dof controller: +#/sbin/modprobe magellan +# SpaceTec SpaceOrb/Avenger 6dof controller: +#/sbin/modprobe spaceorb +# SpaceTec SpaceBall 4000 FLX 6dof controller: +#/sbin/modprobe spaceball +# Gravis Stinger gamepad: +#/sbin/modprobe stinger +# I-Force joysticks/wheels: +#/sbin/modprobe iforce +### Parallel port connected controllers ### +# Multisystem, Sega Genesis, Saturn joysticks and gamepads: +#/sbin/modprobe db9 +# Multisystem, NES, SNES, N64, PSX joysticks and gamepads: +#/sbin/modprobe gamecon +# Multisystem joysticks via TurboGraFX device: +#/sbin/modprobe turbografx + +### Appletalk support ### +# This is needed if you want to run netatalk, a package which allows +# you to use you Linux box as a file and print server for Apple Macintosh +# computers on your local network. +#/sbin/modprobe appletalk + +### IPX networking support ### +#/sbin/modprobe ipx + +### IDE device support ### +# IDE CD-ROM drives: +#/sbin/modprobe ide-cd +# IDE hard drives: +#/sbin/modprobe ide-disk +# IDE floppy drives: +#/sbin/modprobe ide-floppy +# IDE tape drives: +#/sbin/modprobe ide-tape + +### Network device support ### +# Most of these drivers will probe automatically for the card if you don't +# specify an I/O address and IRQ. +# +# First, if setup probing found a network card, there may be an 'rc.netdevice' +# file that we should run to load the network module: +if [ -x /etc/rc.d/rc.netdevice ]; then + . /etc/rc.d/rc.netdevice +fi + +### Ethernet cards based on the 8390 chip. +# 3com 3c503 support: +#/sbin/modprobe 3c503 +# Ansel Communications EISA 3200 support: +#/sbin/modprobe ac3200 +# Cabletron E21xx support: +#/sbin/modprobe e2100 +# HP PCLAN+ (27247B and 27252A) support: +#/sbin/modprobe hp-plus +# HP PCLAN (27245 and other 27xxx series) support: +#/sbin/modprobe hp +# NE2000/NE1000 support (non PCI): +#/sbin/modprobe ne io=0x300 # NE2000 at 0x300 +#/sbin/modprobe ne io=0x280 # NE2000 at 0x280 +#/sbin/modprobe ne io=0x320 # NE2000 at 0x320 +#/sbin/modprobe ne io=0x340 # NE2000 at 0x340 +#/sbin/modprobe ne io=0x360 # NE2000 at 0x360 +# PCI NE2000 clone support: +#/sbin/modprobe ne2k-pci +# SMC Ultra support: +#/sbin/modprobe smc-ultra +# SMC Ultra32 EISA support: +#/sbin/modprobe smc-ultra32 +# Western Digital WD80*3 (and clones) support: +#/sbin/modprobe wd +# +# Other network hardware drivers: +# +# 3com 3c501 (consider buying a new card, since the 3c501 is slow, +# broken, and obsolete): +#/sbin/modprobe 3c501 +# 3com 3c503: +#/sbin/modprobe 3c503 +# 3com 3c505: +#/sbin/modprobe 3c505 +# 3com 3c507: +#/sbin/modprobe 3c507 +# 3com 3c509 and 3c579: +#/sbin/modprobe 3c509 +# 3com 3c515: +#/sbin/modprobe 3c515 +# This one works for all 3com 3c590/3c592/3c595/3c597 and the +# EtherLink XL 3c900 and 3c905 cards: +#/sbin/modprobe 3c59x +# Apricot Xen-II on board Ethernet: +#/sbin/modprobe apricot +# Generic ARCnet support: +#/sbin/modprobe arcnet +# AT1700/1720 & Fujitsu FMV-181/182/183/184 support: +#/sbin/modprobe at1700 +# AT-LAN-TEC/RealTek pocket adapter support: +#/sbin/modprobe atp +# BPQ Ethernet driver: +#/sbin/modprobe bpqether +# Generic DECchip & DIGITAL EtherWORKS PCI/EISA: +#/sbin/modprobe de4x5 +# D-Link DE600 pocket adapter support: +#/sbin/modprobe de600 +# D-Link DE620 pocket adapter support: +#/sbin/modprobe de620 +# DEPCA support: +#/sbin/modprobe depca +# Digi International RightSwitch cards: +#/sbin/modprobe dgrs +# Intel EtherExpress Pro support: +#/sbin/modprobe eepro +# Intel EtherExpress PRO/100 PCI support: +#/sbin/modprobe eepro100 +# Intel EtherExpress16 support: +#/sbin/modprobe eexpress +# SMC EtherPower II 9432 PCI support: +#/sbin/modprobe epic100 +# ICL EtherTeam 16i/32 support: +#/sbin/modprobe eth16i +# DEC EtherWorks 3 support: +#/sbin/modprobe ewrk3 +# HP 10/100VG PCLAN (ISA, EISA, PCI) support: +#/sbin/modprobe hp100 +# IBM Tropic chipset based adapter support: +#/sbin/modprobe ibmtr +# AMD LANCE and PCnet (AT1500 and NE2100) support: +#/sbin/modprobe lance +# National Semiconductor DP8381x series PCI Ethernet support: +#/sbin/modprobe natsemi +# NI5210 support: +#/sbin/modprobe ni52 +# NI6510 support: +#/sbin/modprobe ni65 +# AMD PCnet32 (VLB and PCI) support: +#/sbin/modprobe pcnet32 +# Red Creek Hardware Virtual Private Network (VPN) support: +#/sbin/modprobe rcpci +# RealTek 8129/8139 (not 8019/8029!) support: +#/sbin/modprobe 8139too +# RealTek 8139C+ enhanced support: +#/sbin/modprobe 8139cp +# Sangoma S502A FRAD support: +#/sbin/modprobe sdla +# SMC 9194 support: +#/sbin/modprobe smc9194 +# TI ThunderLAN support: +#/sbin/modprobe tlan +# DECchip Tulip (dc21x4x) PCI support: +#/sbin/modprobe tulip +# VIA Rhine support: +#/sbin/modprobe via-rhine +# AT&T WaveLAN & DEC RoamAbout DS support: +#/sbin/modprobe wavelan +# Packet Engines Yellowfin Gigabit-NIC support: +#/sbin/modprobe yellowfin +# Davicom DM9xxx (9102/9132/9100/9802...) +#/sbin/modprobe dmfe +# SiS 900/7016 PCI Fast Ethernet +#/sbin/modprobe sis900 + +### Serial line load balancing support ### +#/sbin/modprobe eql + +### "dummy" IP support ### +# A dummy IP driver. Essentially a loopback device. Can be useful -- +# see the Network Administrator's Guide from sunsite.unc.edu:/pub/Linux/docs/LDP +#/sbin/modprobe dummy + +### ISDN kernel support ### +#/sbin/modprobe isdn +# ISDN loop (provides a virtual ISDN card for testing): +#/sbin/modprobe isdnloop + +### ISDN interface support ### +# AVM-B1 with CAPI2.0 driver (requires additional firmware; see +# /usr/src/linux/Documentation/isdn/README.avmb1): +#/sbin/modprobe capidrv +# HiSax SiemensChipSet driver (supports AVM A1, Elsa ISDN cards, +# Teles S0-16.0, Teles S0-16.3, Teles S0-8, Teles/Creatix PnP, +# ITK micro ix1 and many compatibles): +#/sbin/modprobe hisax +# IBM Active 2000 ISDN card support (requires additional firmware; see +# /usr/src/linux/Documentation/isdn/README.act2000 for more information) +#/sbin/modprobe act2000 +# ICN active ISDN card driver: +#/sbin/modprobe icn +# PCBIT-D driver (requires additional firmware; see +# /usr/src/linux/Documentation/isdn/README.pcbit for more information) +#/sbin/modprobe pcbit +# Spellcaster BRI ISDN driver: +#/sbin/modprobe sc + +### Binary format support ### +#/sbin/modprobe binfmt_aout +#/sbin/modprobe binfmt_elf +#/sbin/modprobe binfmt_java +#/sbin/modprobe binfmt_misc + +### Filesystem support ### +#/sbin/modprobe adfs +#/sbin/modprobe affs +#/sbin/modprobe autofs4 +#/sbin/modprobe coda +#/sbin/modprobe cramfs +#/sbin/modprobe exportfs +#/sbin/modprobe ext2 +#/sbin/modprobe ext3 +#/sbin/modprobe fat +#/sbin/modprobe fuse +#/sbin/modprobe hfs +#/sbin/modprobe hfsplus +#/sbin/modprobe hpfs +#/sbin/modprobe intermezzo +#/sbin/modprobe isofs +#/sbin/modprobe jfs +#/sbin/modprobe minix +#/sbin/modprobe msdos +#/sbin/modprobe ncpfs +#/sbin/modprobe nfs +#/sbin/modprobe ntfs +#/sbin/modprobe ocfs2 +#/sbin/modprobe qnx4 +#/sbin/modprobe reiserfs +#/sbin/modprobe relayfs +#/sbin/modprobe romfs +#/sbin/modprobe smbfs +#/sbin/modprobe sysfs +#/sbin/modprobe sysv +#/sbin/modprobe tmpfs +#/sbin/modprobe udf +#/sbin/modprobe ufs +#/sbin/modprobe umsdos +#/sbin/modprobe usbfs +#/sbin/modprobe vfat +#/sbin/modprobe xfs + +### RAID (Multiple Devices) support ### +#/sbin/modprobe linear +#/sbin/modprobe raid0 +#/sbin/modprobe raid1 +#/sbin/modprobe raid5 + +# Note: this *IS NOT* needed to burn discs with 2.6.x or newer kernels. +# +# SCSI emulation support. This will provide SCSI host adapter emulation +# for IDE ATAPI devices, and will allow you to use a SCSI device driver +# instead of a native ATAPI driver. This is useful if you have an ATAPI +# device for which no native driver has been written (for example, an ATAPI +# PD-CD, CD-RW, or DVD-RW drive); you can then use this emulation together +# with an # appropriate SCSI device driver. Note that this option does not +# allow you to attach SCSI devices to a box that doesn't have a SCSI host +# adapter installed. :-) Also, you'll need to tell the ide-scsi module +# which device is your burner so that the normal ATAPI driver won't grab it +# first. This is done by passing a flag to the kernel at boot time. +# If you're using LILO, add this: append="hdc=ide-scsi" +# Replace "hdc" with the appropriate device name. +# +#/sbin/modprobe ide-scsi + +### SCSI kernel support: +#/sbin/modprobe scsi_mod +#/sbin/modprobe scsi_syms +#/sbin/modprobe sd_mod +#/sbin/modprobe sg +#/sbin/modprobe sr_mod +#/sbin/modprobe st + +### SCSI controller support: +# NCR53c7xx SCSI support: +#/sbin/modprobe 53c7xx +# BusLogic MultiMaster and FlashPoint SCSI support: +#/sbin/modprobe BusLogic +# NCR53c406a SCSI support: +#/sbin/modprobe NCR53c406a +# Initio INI-A100U2W SCSI support: +#/sbin/modprobe a100u2w +# AdvanSys SCSI support: +#/sbin/modprobe advansys +# Adaptec AHA152X/2825 support: +#/sbin/modprobe aha152x +# Adaptec AHA1542 support: +#/sbin/modprobe aha1542 +# Adaptec AHA1740 support: +#/sbin/modprobe aha1740 +# This is support for the various aic7xxx based Adaptec SCSI +# controllers. These include the 274x EISA cards; 284x VLB cards; +# 2902, 2910, 293x, 294x, 394x, 3985 and several other PCI and +# motherboard based SCSI controllers from Adaptec: +#/sbin/modprobe aic7xxx +# ACARD 870U/W SCSI support: +#/sbin/modprobe atp870u +# DTC 3180/3280 SCSI support: +#/sbin/modprobe dtc +# EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support: +#/sbin/modprobe eata +# EATA-PIO (old DPT PM2001, PM2012A) support: +#/sbin/modprobe eata_pio +# Future Domain 16xx SCSI/AHA-2920A support: +#/sbin/modprobe fdomain +# Generic NCR5380/53c400 SCSI support: +#/sbin/modprobe g_NCR5380 +# GDT SCSI Disk Array Controller support: +#/sbin/modprobe gdth +# IOMEGA parallel port (imm - newer drives like ZipPlus): +#/sbin/modprobe imm +# Always IN2000 SCSI support: +#/sbin/modprobe in2000 +# Initio 91XXU(W) SCSI support: +#/sbin/modprobe initio +# LSI Logic MegaRAID support (new driver): +#/sbin/modprobe megaraid_mbox +# LSI Logic MegaRAID support (legacy driver): +#/sbin/modprobe megaraid +# NCR53C8XX SCSI support: +#/sbin/modprobe sym53c8xx +# PAS16 SCSI support: +#/sbin/modprobe pas16 +# IOMEGA parallel port (ppa - older parallel Zip drives): +#/sbin/modprobe ppa +# PSI240i support: +#/sbin/modprobe psi240i +# Qlogic FastSCSI! cards: +#/sbin/modprobe qlogicfas +# QLogic ISP2100 SCSI support: +#/sbin/modprobe qlogicfc +# Seagate ST-02 and Future Domain TMC-8xx SCSI support: +#/sbin/modprobe seagate +# Symbios Logic sym53c416 support: +#/sbin/modprobe sym53c416 +# Trantor T128/T128F/T228 SCSI support: +#/sbin/modprobe t128 +# Tekram DC390(T) and Am53/79C974 (PCscsi) SCSI support: +#/sbin/modprobe tmscsim +# UltraStor 14F and 34F support (also see driver below): +#/sbin/modprobe u14-34f +# UltraStor 14F, 24F, and 34F support: +#/sbin/modprobe ultrastor +# Western Digital 7000 SCSI support: +#/sbin/modprobe wd7000 + +### Floppy drive support: +# (Most Linux kernels should already contain this) +#/sbin/modprobe floppy + +### Floppy tape support (such as Colorado Jumbo 250 or other QIC-80 drives): +#/sbin/modprobe ftape + +### IP masquerading modules: +# These modules are used with IP masquerading, a process which allows you to +# use a Linux box connected to the Internet (via PPP or SLIP, or some other +# means) as a gateway for other Linux, Windows, Macintosh boxes on your local +# network that don't have real IP addresses on the Internet. The packets +# going through the Linux machine are "masqueraded", or made to look as if +# they're all coming from the one real IP address on the Internet. +# +# As a quick example (for a much more extensive treatment, see the IP-Masquerade +# mini-HOWTO) to allow Internet access to a local network 192.168.11.0 with a +# netmask of 255.255.255.0, you'd use these commands in /etc/rc.d/rc.local: +# +# # EXTERNAL -> external network interface +# # INTERNAL -> internal network interface +# EXTERNAL=eth0 +# INTERNAL=eth1 +# echo 1 > /proc/sys/net/ipv4/ip_forward +# echo "Setting up NAT (Network Address Translation)..." +# # by default, nothing is forwarded. +# iptables -P FORWARD DROP +# # Allow all connections OUT and only related ones IN +# iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT +# iptables -A FORWARD -i $INTERNAL -o $EXTERNAL -j ACCEPT +# # enable MASQUERADING +# iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE +# +# Then you'd have to set the other boxes on your local network to use the +# Linux machine as their TCP/IP gateway. You'll probably also need to plug +# in the IP address for your Internet service provider in each machine's DNS +# setup. +# +# Now, on to the IP masquerading modules. The example above is good enough +# for most things that use TCP in a relatively simple fashion. It'll work +# for telnet and http, for instance. But, the system breaks down when you +# get protocols that use ports in more complicated ways. Luckily the Linux +# kernel gurus have thought of this and have prepared some modules that +# support masquerading of trickier protocols. The ipchains command is mighty +# flexible as well, and a lot of things can be made to work just by setting +# that up correctly. +# +# Special modules for iptables. See also "man iptables" for information about +# that powerful firewall tool. +# +#/sbin/modprobe ipt_conntrack +#/sbin/modprobe ip_conntrack +#/sbin/modprobe ip_conntrack_ftp +#/sbin/modprobe ip_conntrack_irc +#/sbin/modprobe ip_nat_ftp +#/sbin/modprobe ip_nat_irc +#/sbin/modprobe ip_nat_snmp_basic + +### CPU frequency scaling support +# +# Below, set CPUFREQ to enable CPU frequency scaling to save system power. +# +# To always try to use CPU frequency scaling, set to: on +# To never use CPU frequency scaling, set to: off +# To use it only when the battery module is loaded (this will cause it to +# be used by default with most laptops), set to: battery +# +CPUFREQ=battery + +# If CPUFREQ=battery and the battery module is loaded, turn on CPUfreq. +if [ "$CPUFREQ" = "battery" ]; then + if /sbin/lsmod | grep -wq battery ; then + # CPUFREQ=battery and a battery was detected, so change CPUFREQ + # to 'on' so that the block of script below will try to enable it. + CPUFREQ=on + fi +fi + +### Enable CPU frequency scaling if requested: +if [ "$CPUFREQ" = "on" ]; then + ### CPU frequency scaling modules for the Linux kernel CPUfreq subsystem. + # + # Clock scaling allows you to change the clock speed of the CPUs on the fly. + # This is a nice method to save battery power, because the lower the clock + # speed is, the less power the CPU consumes. + # + # It should not hurt anything to try to load these modules. + # + # generic ACPI P-States based driver: + /sbin/modprobe acpi-cpufreq 2>/dev/null + # AMD mobile K6-2/3+ PowerNow!: + /sbin/modprobe powernow-k6 2>/dev/null + # AMD mobile Athlon PowerNow!: + /sbin/modprobe powernow-k7 2>/dev/null + # AMD Cool&Quiet PowerNow!: + /sbin/modprobe powernow-k8 2>/dev/null + # Intel SpeedStep using the SMI BIOS interface: + /sbin/modprobe speedstep-smi 2>/dev/null + # Intel SpeedStep on ICH-based chipsets: + /sbin/modprobe speedstep-ich 2>/dev/null + # Intel Enhanced SpeedStep : + /sbin/modprobe speedstep-centrino 2>/dev/null + # Intel Pentium4/Xeon clock modulation is not enabled by default. + # The kernel documentation says "This adds the CPUFreq driver for Intel + # Pentium 4 / XEON processors. When enabled it will lower CPU temperature + # by skipping clocks. This driver should be only used in exceptional + # circumstances when very low power is needed because it causes severe + # slowdowns and noticeable latencies. Normally Speedstep should be used + # instead." + # If you still want to try the Pentium4/Xeon module, uncomment the next line: + #/sbin/modprobe p4-clockmod 2>/dev/null + # NatSemi Geode GX / Cyrix MediaGXm: + /sbin/modprobe gx-suspmod 2>/dev/null + # Transmeta Crusoe / Efficeon LongRun: + /sbin/modprobe longrun 2>/dev/null + # VIA Cyrix Longhaul: + /sbin/modprobe longhaul 2>/dev/null + # nForce2 FSB changing cpufreq driver: + /sbin/modprobe cpufreq-nforce2 2>/dev/null + # Enhanced PowerSaver driver for VIA C7 CPUs: + /sbin/modprobe e_powersaver 2>/dev/null + + ### CPU frequency scaling policies: + # + # Use the CPUFreq governor 'powersave' as default. This sets the + # frequency statically to the lowest frequency supported by the CPU. + #/sbin/modprobe cpufreq_powersave + # + # Use the CPUFreq governor 'performance' as default. This sets the + # frequency statically to the highest frequency supported by the CPU. + #/sbin/modprobe cpufreq_performance + # + # Use the CPUFreq governor 'conservative' as default. This allows you + # to get a full dynamic frequency capable system by simply loading your + # cpufreq low-level hardware driver. Be aware that not all cpufreq + # drivers support the 'conservative' governor -- the fallback governor + # will be the 'performance' governor. + #/sbin/modprobe cpufreq_conservative + # + # Use the CPUFreq governor 'ondemand' as default. This allows you to + # get a full dynamic frequency capable system by simply loading your + # cpufreq low-level hardware driver. Be aware that not all cpufreq + # drivers support the 'ondemand' governor -- the fallback governor will + # be the performance governor. This seems to be the most-recommended + # scaling policy, so rc.modules will try to load this by default. + /sbin/modprobe cpufreq_ondemand 2>/dev/null + + ### CPU scaling governor: + # + # Set the default scaling_governor to be used (such as userspace or ondemand) + # if there is a CPUFreq scaling policy module loaded that supports it: + SCALING_GOVERNOR=ondemand + # + # Try to enable the scaling_governor selected above: + if [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ]; then + if grep -wq "$SCALING_GOVERNOR" /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ; then + if [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then + for SYSCPUFILE in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ; do + echo "$SCALING_GOVERNOR" > $SYSCPUFILE + done + fi + fi + fi + +fi # End enabling CPU scaling support + +# We are done with these variables now: +unset NEWMODS RELEASE CPUFREQ SCALING_GOVERNOR SYSCPUFILE + diff --git a/source/k/kernel-modules/slack-desc b/source/k/kernel-modules/slack-desc new file mode 100644 index 000000000..5aa3dd40e --- /dev/null +++ b/source/k/kernel-modules/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kernel-modules: kernel-modules (Linux kernel modules) +kernel-modules: +kernel-modules: A kernel module is a piece of object code that can be dynamically +kernel-modules: loaded into the Linux kernel to provide new kernel functions. Most of +kernel-modules: these modules provide support for devices such as CD-ROM drives, tape +kernel-modules: drives, and ethernet cards. You can choose which modules to load by +kernel-modules: editing /etc/rc.d/rc.modules. +kernel-modules: +kernel-modules: +kernel-modules: +kernel-modules: diff --git a/source/k/linux-2.6.29.6-01-sendpage.diff b/source/k/linux-2.6.29.6-01-sendpage.diff new file mode 100644 index 000000000..d1e7a07af --- /dev/null +++ b/source/k/linux-2.6.29.6-01-sendpage.diff @@ -0,0 +1,11 @@ +--- ./net/socket.c.orig 2009-08-02 14:29:53.000000000 -0500 ++++ ./net/socket.c 2009-08-15 13:03:44.000000000 -0500 +@@ -694,7 +694,7 @@ + if (more) + flags |= MSG_MORE; + +- return sock->ops->sendpage(sock, page, offset, size, flags); ++ return kernel_sendpage(sock, page, offset, size, flags); + } + + static ssize_t sock_splice_read(struct file *file, loff_t *ppos, diff --git a/source/k/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff b/source/k/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff new file mode 100644 index 000000000..53d2b5a02 --- /dev/null +++ b/source/k/linux-2.6.29.6-02-default-mmap_min_addr-4096.diff @@ -0,0 +1,22 @@ +--- ./arch/x86/configs/i386_defconfig.orig 2009-07-02 18:41:20.000000000 -0500 ++++ ./arch/x86/configs/i386_defconfig 2009-08-16 21:03:21.000000000 -0500 +@@ -2127,7 +2127,7 @@ + # CONFIG_SECURITY_NETWORK_XFRM is not set + CONFIG_SECURITY_FILE_CAPABILITIES=y + # CONFIG_SECURITY_ROOTPLUG is not set +-CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 ++CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=4096 + CONFIG_SECURITY_SELINUX=y + CONFIG_SECURITY_SELINUX_BOOTPARAM=y + CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 +--- ./arch/x86/configs/x86_64_defconfig.orig 2009-07-02 18:41:20.000000000 -0500 ++++ ./arch/x86/configs/x86_64_defconfig 2009-08-16 21:03:33.000000000 -0500 +@@ -2096,7 +2096,7 @@ + # CONFIG_SECURITY_NETWORK_XFRM is not set + CONFIG_SECURITY_FILE_CAPABILITIES=y + # CONFIG_SECURITY_ROOTPLUG is not set +-CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 ++CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=4096 + CONFIG_SECURITY_SELINUX=y + CONFIG_SECURITY_SELINUX_BOOTPARAM=y + CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 diff --git a/source/k/linux-2.6.29.6.tar.sign b/source/k/linux-2.6.29.6.tar.sign new file mode 100644 index 000000000..fa432ec7d --- /dev/null +++ b/source/k/linux-2.6.29.6.tar.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBKTUqsyGugalF9Dw4RArSTAJ41YYTLEModFq0I2OTLHXHC9g30BwCeNmzb +SkmIKll6naRQ31L1l0FP1wQ= +=oPqh +-----END PGP SIGNATURE----- diff --git a/source/kde/KDE.SlackBuild b/source/kde/KDE.SlackBuild new file mode 100755 index 000000000..d8914eb54 --- /dev/null +++ b/source/kde/KDE.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Build (and install) all KDE packages. +# Written for Slackware by volkerdi@slackware.com. +# Modified for KDE4 by Robby Workman <rworkman@slackware.com> + +# kdeaccessibility builds plugins for epos, festival, flite, freetts, and +# hadifix, so they should work with kde if any of those are installed later + +# Set the config option variables if they are not already set: +[ -r ./KDE.options ] && . ./KDE.options + +# This avoids compiling a version number into KDE's .la files: +QTDIR=/usr/lib${LIBDIRSUFFIX}/qt ; export QTDIR + +# Get the kde environment variables +[ -d kdebase ] && eval $(sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" ./kdebase/profile.d/kde.sh) + +KDEMODS=" \ + kdelibs \ + kdepimlibs \ + kdebase-workspace \ + kdebase \ + kdebase-workspace \ + kdebase-runtime \ + kdeaccessibility \ + kdeutils \ + kdemultimedia \ + kdenetwork \ + kdeadmin \ + kdeartwork \ + kdegames \ + kdetoys \ + kdegraphics \ + kdesdk \ + kdepim \ + kdeedu \ + kdeplasma-addons \ + kdebindings \ + kdewebdev \ + kdevplatform \ + kdevelop \ + konq-plugins \ + koffice \ + amarok \ + guidance-power-manager \ + kaudiocreator \ + ktorrent \ + skanlite" + +# Allow for specification of individual packages to be built: +if [ -z "$1" ]; then + MODQUEUE=$KDEMODS +else + MODQUEUE=$* +fi + +# Yes, we know kdebase-workspace is built twice. kdebase needs the +# plasma bits from it, and then we build it again for good measure... +for module in \ + $MODQUEUE ; +do + cd $module + ./$module.SlackBuild + if [ $? = 0 ]; then + # Yes, I will build with the fresh packages installed: + upgradepkg --install-new --reinstall /tmp/${module}-*.txz + # Keep MIME database current: + /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null & + rm -rf /tmp/package-${module} /tmp/${module}-$VERSION + else + echo "${module} failed to build." + exit 1 + fi + cd - ; +done + diff --git a/source/kde/KDE.options b/source/kde/KDE.options new file mode 100644 index 000000000..d5e478fec --- /dev/null +++ b/source/kde/KDE.options @@ -0,0 +1,34 @@ +# Set default version/arch/build. You can override these settings +# in the SlackBuild scripts for each package (koffice, for example, +# usually has a different version number), or by setting your own +# environment variables. + +[ -z $VERSION ] && export VERSION=4.2.4 +[ -z $ARCH ] && export ARCH=x86_64 +[ -z $BUILD ] && export BUILD=1 + +# Use this as CFLAGS and CXXFLAGS: +if [ -z "$SLKCFLAGS" ]; then + if [ "$ARCH" = "i486" ]; then + export SLKCFLAGS="-O2 -march=i486 -mtune=i686" + export LIBDIRSUFFIX="" + elif [ "$ARCH" = "s390" ]; then + export SLKCFLAGS="-O2" + export LIBDIRSUFFIX="" + elif [ "$ARCH" = "x86_64" ]; then + export SLKCFLAGS="-O2 -fPIC" + export LIBDIRSUFFIX="64" + elif [ "$ARCH" = "arm" ]; then + export SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + export LIBDIRSUFFIX="" + elif [ "$ARCH" = "armel" ]; then + export SLKCFLAGS="-O2 -march=armv4t" + export LIBDIRSUFFIX="" + fi +fi + +# Use this to set the number of parallel make jobs: +if [ -z "$NUMJOBS" ]; then + export NUMJOBS="-j7" +fi + diff --git a/source/kde/amarok/amarok.SlackBuild b/source/kde/amarok/amarok.SlackBuild new file mode 100755 index 000000000..e7d60e69c --- /dev/null +++ b/source/kde/amarok/amarok.SlackBuild @@ -0,0 +1,144 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-amarok + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +# If there's no libmysqld.a, we have to build it: +if [ ! -r /usr/lib${LIBDIRSUFFIX}/mysql/libmysqld.a ]; then + MYSQL="$CWD/../../ap/mysql/mysql*.tar.?z*" + if [ ! -e "$MYSQL" ]; then + if [ -e "$CWD/mysql*.tar.?z*" ]; then + MYSQL="$CWD/mysql*.tar.?z*" + fi + fi + ( cd $TMP + tar xvf $MYSQL + MYSQLDIR="mysql-$(basename $(echo $MYSQL | rev | cut -f 1 -d - | rev) .tar.bz2)" + if [ -d "$MYSQLDIR" ]; then + cd "$MYSQLDIR" + CFLAGS=" $SLKCFLAGS -fPIC" CXXFLAGS=" $SLKCFLAGS -fPIC" \ + ./configure \ + --prefix=/usr \ + --with-mysqld-user=mysql \ + --with-unix-socket-path=/var/run/mysql/mysql.sock \ + --localstatedir=/var/lib${LIBDIRSUFFIX}/mysql \ + --enable-assembler \ + --with-raid \ + --without-debug \ + --enable-thread-safe-client \ + --without-bench \ + --with-extra-charsets=complex \ + --with-embedded-server \ + --with-vio \ + --with-pic \ + --with-openssl \ + --build=$ARCH-slackware-linux + make $NUMJOBS || make || exit 1 + mkdir -p /usr/lib${LIBDIRSUFFIX}/mysql + cp libmysqld/libmysqld.a /usr/lib${LIBDIRSUFFIX}/mysql + fi + ) +fi + +if [ ! -r /usr/lib${LIBDIRSUFFIX}/mysql/libmysqld.a ]; then + echo "ERROR: No libmysqld.a. Strongly advised to put a MySQL source .tar.bz2 in" + echo "this directory and try again..." + sleep 10 +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +echo "Building amarok-$VERSION..." +tar xvf $CWD/../src/extragear/amarok-$VERSION.tar.?z* || exit 1 +cd amarok-$VERSION + +# Make qtscript optional instead of required: +#zcat $CWD/amarok.qtscript.optional.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# NOTE: if cmake complains that it can not find qscript-qt when in fact you +# have it installed, this is likely because you are building inside a chroot. +# To remedy the error, run the command "dbus-uuidgen --ensure" +# and then re-start this SlackBuild : + +export QTSCRIPTS=/usr/lib${LIBDIRSUFFIX}/qt4/plugins/script + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/amarok-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL OXYGEN README TODO \ + $PKG/usr/doc/amarok-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/amarok-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/amarok/amarok.qtscript.optional.diff b/source/kde/amarok/amarok.qtscript.optional.diff new file mode 100644 index 000000000..1cf3af716 --- /dev/null +++ b/source/kde/amarok/amarok.qtscript.optional.diff @@ -0,0 +1,14 @@ +diff -up amarok-2.0.90/CMakeLists.txt.qtscript_not_required amarok-2.0.90/CMakeLists.txt +--- amarok-2.0.90/CMakeLists.txt.qtscript_not_required 2009-04-06 16:29:12.000000000 -0500 ++++ amarok-2.0.90/CMakeLists.txt 2009-04-10 13:00:07.000000000 -0500 +@@ -38,8 +38,8 @@ if( WITH_PLAYER ) + + macro_log_feature( KDE4_FOUND "kdelibs" "The toolkit Amarok uses to build" "http://www.kde.org" TRUE "4.2.0" "" ) + +- find_package( QtScriptQtBindings REQUIRED ) +- macro_log_feature( QTSCRIPTQTBINDINGS_FOUND "qtscript-qt" "QtScript Qt Bindings" "http://code.google.com/p/qtscriptgenerator/" TRUE "" "" ) ++ macro_optional_find_package(QtScriptQtBindings) ++ macro_log_feature( QTSCRIPTQTBINDINGS_FOUND "qtscript-qt" "QtScript Qt Bindings" "http://code.google.com/p/qtscriptgenerator/" FALSE "" "" ) + + add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) + diff --git a/source/kde/amarok/doinst.sh b/source/kde/amarok/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/amarok/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/amarok/local.options b/source/kde/amarok/local.options new file mode 100644 index 000000000..3b7a8b384 --- /dev/null +++ b/source/kde/amarok/local.options @@ -0,0 +1,3 @@ +VERSION=2.1.1 +BUILD=1 + diff --git a/source/kde/amarok/slack-desc b/source/kde/amarok/slack-desc new file mode 100644 index 000000000..8ee639796 --- /dev/null +++ b/source/kde/amarok/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +amarok: amarok (music player) +amarok: +amarok: Amarok is a music player for Linux and Unix with an intuitive +amarok: interface. Amarok makes playing the music you love easier than ever +amarok: before -- and looks good doing it. +amarok: +amarok: Amarok's home page is: http://amarok.kde.org +amarok: +amarok: +amarok: +amarok: diff --git a/source/kde/guidance-power-manager/guidance-power-manager.SlackBuild b/source/kde/guidance-power-manager/guidance-power-manager.SlackBuild new file mode 100755 index 000000000..afefec2a1 --- /dev/null +++ b/source/kde/guidance-power-manager/guidance-power-manager.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008 Robby Workman, Northport, AL, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=guidance-power-manager + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +echo "Building $PKGNAM-$VERSION..." +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/../src/extragear/$PKGNAM-$VERSION.tar.?z* || exit 1 +cd $PKGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a README $PKG/usr/doc/$PKGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/guidance-power-manager/slack-desc b/source/kde/guidance-power-manager/slack-desc new file mode 100644 index 000000000..4e3c196b2 --- /dev/null +++ b/source/kde/guidance-power-manager/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +guidance-power-manager: guidance-power-manager (kde4's power manager daemon) +guidance-power-manager: +guidance-power-manager: This is a frontend to HAL's power features for KDE. +guidance-power-manager: +guidance-power-manager: It supports screen brightness, battery level, plugged/unplugged +guidance-power-manager: notices, and laptop lid closing actions. +guidance-power-manager: +guidance-power-manager: +guidance-power-manager: +guidance-power-manager: +guidance-power-manager: diff --git a/source/kde/k3b/doinst.sh b/source/kde/k3b/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/k3b/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/k3b/k3b.SlackBuild b/source/kde/k3b/k3b.SlackBuild new file mode 100755 index 000000000..495edf62e --- /dev/null +++ b/source/kde/k3b/k3b.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-k3b + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +echo "Building k3b-$VERSION..." +tar xvf $CWD/../src/extragear/k3b-$VERSION.tar.?z* +cd k3b-$VERSION + +zcat $CWD/k3b.internal.libsamplerate.diff.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + . +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/k3b-$VERSION +cp -a \ + AUTHORS COPYING* FAQ INSTALL KNOWNBUGS PERMISSIONS README RELEASE_HOWTO TODO \ + $PKG/usr/doc/k3b-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/k3b-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/k3b/k3b.internal.libsamplerate.diff b/source/kde/k3b/k3b.internal.libsamplerate.diff new file mode 100644 index 000000000..3c6079598 --- /dev/null +++ b/source/kde/k3b/k3b.internal.libsamplerate.diff @@ -0,0 +1,26697 @@ +diff -r -u --new-file k3b-r948463/CMakeLists.txt k3b-r948463.patched/CMakeLists.txt +--- k3b-r948463/CMakeLists.txt 2009-04-03 01:16:29.000000000 -0500 ++++ k3b-r948463.patched/CMakeLists.txt 2009-04-03 14:00:42.000000000 -0500 +@@ -61,12 +61,6 @@ + FALSE "1.4.0" "") + endif(K3B_ENABLE_TAGLIB) + +-macro_optional_find_package(Samplerate) +-macro_log_feature( SAMPLERATE_FOUND "Samplerate" +- "Audio sampling rate conversion." +- "http://www.mega-nerd.com/SRC/" +- TRUE "" "") +- + if(K3B_ENABLE_MUSICBRAINZ) + find_package(MusicBrainz) + macro_log_feature( MUSICBRAINZ_FOUND "Musicbrainz" +@@ -143,10 +137,6 @@ + endif(K3B_BUILD_OGGVORBIS_DECODER_PLUGIN OR K3B_BUILD_OGGVORBIS_ENCODER_PLUGIN) + + +-if (WIN32) +-find_library(SAMPLERATE_LIBRARIES samplerate-0) +-endif(WIN32) +- + ################## K3b build settings ################################# + include(ConfigureChecks.cmake) + +diff -r -u --new-file k3b-r948463/ConfigureChecks.cmake k3b-r948463.patched/ConfigureChecks.cmake +--- k3b-r948463/ConfigureChecks.cmake 2009-04-03 01:16:29.000000000 -0500 ++++ k3b-r948463.patched/ConfigureChecks.cmake 2009-04-03 14:13:45.000000000 -0500 +@@ -9,5 +9,8 @@ + + check_function_exists(stat64 HAVE_STAT64) + ++check_type_size("int" SIZEOF_INT) ++check_type_size("long" SIZEOF_LONG) ++ + check_include_files(sys/vfs.h HAVE_SYS_VFS_H) + check_include_files(sys/statvfs.h HAVE_SYS_STATVFS_H) +diff -r -u --new-file k3b-r948463/cmake/modules/FindSamplerate.cmake k3b-r948463.patched/cmake/modules/FindSamplerate.cmake +--- k3b-r948463/cmake/modules/FindSamplerate.cmake 2009-04-03 01:16:03.000000000 -0500 ++++ k3b-r948463.patched/cmake/modules/FindSamplerate.cmake 2009-04-03 14:00:42.000000000 -0500 +@@ -19,7 +19,7 @@ + FIND_PATH(SAMPLERATE_INCLUDE_DIR NAMES samplerate.h + ) + +-FIND_LIBRARY(SAMPLERATE_LIBRARIES NAMES samplerate samplerate-0 ++FIND_LIBRARY(SAMPLERATE_LIBRARIES NAMES samplerate + ) + + include(FindPackageHandleStandardArgs) +diff -r -u --new-file k3b-r948463/libk3b/CMakeLists.txt k3b-r948463.patched/libk3b/CMakeLists.txt +--- k3b-r948463/libk3b/CMakeLists.txt 2009-04-03 01:16:29.000000000 -0500 ++++ k3b-r948463.patched/libk3b/CMakeLists.txt 2009-04-03 14:00:42.000000000 -0500 +@@ -33,6 +33,8 @@ + add_subdirectory( projects ) + add_subdirectory( jobs ) + ++macro_optional_find_package(Samplerate) ++ + set(k3b_jobs_SRCS + jobs/k3bdatatrackreader.cpp + jobs/k3breadcdreader.cpp +@@ -206,6 +208,12 @@ + projects/videodvd/k3bvideodvdimager.cpp + ) + ++set(k3b_samplerate_SRCS ++ plugin/libsamplerate/samplerate.c ++ plugin/libsamplerate/src_sinc.c ++ plugin/libsamplerate/src_zoh.c ++ plugin/libsamplerate/src_linear.c) ++ + + set(k3b_LIB_SRCS + ${k3b_core_SRCS} +@@ -229,6 +237,11 @@ + ) + endif (ENABLE_DVD_RIPPING) + ++if(NOT SAMPLERATE_FOUND) ++ set(k3b_LIB_SRCS ${k3b_LIB_SRCS} ${k3b_samplerate_SRCS}) ++endif(NOT SAMPLERATE_FOUND) ++ ++ + kde4_add_library(k3b SHARED ${k3b_LIB_SRCS}) + + target_link_libraries(k3b +@@ -238,12 +251,16 @@ + ${KDE4_KDE3SUPPORT_LIBS} + ${KDE4_KPTY_LIBS} + ${KCDDB_LIBRARIES} +- ${SAMPLERATE_LIBRARIES} + k3bdevice + ) + if(NOT WIN32) + target_link_libraries(k3b dl) + endif(NOT WIN32) ++ ++if(SAMPLERATE_FOUND) ++ target_link_libraries(k3b ${SAMPLERATE_LIBRARIES}) ++endif(SAMPLERATE_FOUND) ++ + + if(ENABLE_DVD_RIPPING) + target_link_libraries(k3b ${DVDREAD_LIBRARIES}) +diff -r -u --new-file k3b-r948463/libk3b/plugin/k3baudiodecoder.cpp k3b-r948463.patched/libk3b/plugin/k3baudiodecoder.cpp +--- k3b-r948463/libk3b/plugin/k3baudiodecoder.cpp 2009-04-03 01:16:29.000000000 -0500 ++++ k3b-r948463.patched/libk3b/plugin/k3baudiodecoder.cpp 2009-04-03 14:00:42.000000000 -0500 +@@ -26,7 +26,11 @@ + + #include <math.h> + ++#ifdef HAVE_LIBSAMPLERATE + #include <samplerate.h> ++#else ++#include "libsamplerate/samplerate.h" ++#endif + + #if !(HAVE_LRINT && HAVE_LRINTF) + #define lrint(dbl) ((int) (dbl)) +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/common.h k3b-r948463.patched/libk3b/plugin/libsamplerate/common.h +--- k3b-r948463/libk3b/plugin/libsamplerate/common.h 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/common.h 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,105 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++#ifndef COMMON_H_INCLUDED ++#define COMMON_H_INCLUDED ++ ++#ifdef HAVE_STDINT_H ++#include <stdint.h> ++#elif (SIZEOF_INT == 4) ++typedef int int32_t ; ++#elif (SIZEOF_LONG == 4) ++typedef long int32_t ; ++#endif ++ ++#define SRC_MAX_RATIO 12 ++#define SRC_MIN_RATIO_DIFF (1e-20) ++ ++#define MAX(a,b) (((a) > (b)) ? (a) : (b)) ++#define MIN(a,b) (((a) < (b)) ? (a) : (b)) ++ ++#define MAKE_MAGIC(a,b,c,d,e,f) ((a)+((b)<<4)+((c)<<8)+((d)<<12)+((e)<<16)+((f)<<20)) ++ ++#include "samplerate.h" ++ ++enum ++{ SRC_FALSE = 0, ++ SRC_TRUE = 1 ++} ; ++ ++enum ++{ SRC_ERR_NO_ERROR = 0, ++ ++ SRC_ERR_MALLOC_FAILED, ++ SRC_ERR_BAD_STATE, ++ SRC_ERR_BAD_DATA, ++ SRC_ERR_BAD_DATA_PTR, ++ SRC_ERR_NO_PRIVATE, ++ SRC_ERR_BAD_SRC_RATIO, ++ SRC_ERR_BAD_PROC_PTR, ++ SRC_ERR_SHIFT_BITS, ++ SRC_ERR_FILTER_LEN, ++ SRC_ERR_BAD_CONVERTER, ++ SRC_ERR_BAD_CHANNEL_COUNT, ++ SRC_ERR_SINC_BAD_BUFFER_LEN, ++ SRC_ERR_SIZE_INCOMPATIBILITY, ++ SRC_ERR_BAD_PRIV_PTR, ++ SRC_ERR_BAD_SINC_STATE, ++ SRC_ERR_DATA_OVERLAP, ++ ++ /* This must be the last error number. */ ++ SRC_ERR_MAX_ERROR ++} ; ++ ++typedef struct SRC_PRIVATE_tag ++{ double last_ratio, last_position ; ++ ++ void *private_data ; ++ ++ int (*process) (struct SRC_PRIVATE_tag *psrc, SRC_DATA *data) ; ++ void (*reset) (struct SRC_PRIVATE_tag *psrc) ; ++ ++ int error ; ++ int channels ; ++} SRC_PRIVATE ; ++ ++/* In src_sinc.c */ ++int sinc_process (SRC_PRIVATE *psrc, SRC_DATA *data) ; ++ ++const char* sinc_get_name (int src_enum) ; ++const char* sinc_get_description (int src_enum) ; ++ ++int sinc_set_converter (SRC_PRIVATE *psrc, int src_enum) ; ++ ++/* In src_linear.c */ ++int linear_process (SRC_PRIVATE *psrc, SRC_DATA *data) ; ++ ++const char* linear_get_name (int src_enum) ; ++const char* linear_get_description (int src_enum) ; ++ ++int linear_set_converter (SRC_PRIVATE *psrc, int src_enum) ; ++ ++/* In src_zoh.c */ ++int zoh_process (SRC_PRIVATE *psrc, SRC_DATA *data) ; ++ ++const char* zoh_get_name (int src_enum) ; ++const char* zoh_get_description (int src_enum) ; ++ ++int zoh_set_converter (SRC_PRIVATE *psrc, int src_enum) ; ++ ++#endif /* COMMON_H_INCLUDED */ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/fastest_coeffs.h k3b-r948463.patched/libk3b/plugin/libsamplerate/fastest_coeffs.h +--- k3b-r948463/libk3b/plugin/libsamplerate/fastest_coeffs.h 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/fastest_coeffs.h 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,2493 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++ ++/* ++** f = make_filter (8, 128, 100.3) ; ++** Pass band width : 0.0039062 (should be 0.0039062) ++** Stop band atten. : 100.71 dB ++** -3dB band width : 0.484 ++** half length : 2463 ++** increment : 128 ++*/ ++ ++ 8.31472372954840555082e-01, ++ 8.31414005540308198583e-01, ++ 8.31238918266223869580e-01, ++ 8.30947156036480505392e-01, ++ 8.30538793675450581766e-01, ++ 8.30013935904800659316e-01, ++ 8.29372717311066987023e-01, ++ 8.28615302303967515840e-01, ++ 8.27741885065490623496e-01, ++ 8.26752689489751890761e-01, ++ 8.25647969113678215081e-01, ++ 8.24428007038499943704e-01, ++ 8.23093115842108757896e-01, ++ 8.21643637482293187624e-01, ++ 8.20079943190897053817e-01, ++ 8.18402433358933589780e-01, ++ 8.16611537412689103554e-01, ++ 8.14707713680854150873e-01, ++ 8.12691449252757824873e-01, ++ 8.10563259827706050764e-01, ++ 8.08323689555523805517e-01, ++ 8.05973310868314363198e-01, ++ 8.03512724303517833491e-01, ++ 8.00942558318331943035e-01, ++ 7.98263469095534694553e-01, ++ 7.95476140340800830231e-01, ++ 7.92581283071560838138e-01, ++ 7.89579635397499868255e-01, ++ 7.86471962292734527722e-01, ++ 7.83259055359786127148e-01, ++ 7.79941732585400893107e-01, ++ 7.76520838088307852054e-01, ++ 7.72997241859018080490e-01, ++ 7.69371839491718167992e-01, ++ 7.65645551908390675777e-01, ++ 7.61819325075220210586e-01, ++ 7.57894129711408459649e-01, ++ 7.53870960990470018181e-01, ++ 7.49750838234153449413e-01, ++ 7.45534804599028211314e-01, ++ 7.41223926755909090502e-01, ++ 7.36819294562192195208e-01, ++ 7.32322020727209643809e-01, ++ 7.27733240470738174110e-01, ++ 7.23054111174766811487e-01, ++ 7.18285812028632841830e-01, ++ 7.13429543667664534112e-01, ++ 7.08486527805442301009e-01, ++ 7.03458006859804640953e-01, ++ 6.98345243572719653891e-01, ++ 6.93149520624175785599e-01, ++ 6.87872140240182283755e-01, ++ 6.82514423795047564525e-01, ++ 6.77077711408058502407e-01, ++ 6.71563361534684655219e-01, ++ 6.65972750552474845875e-01, ++ 6.60307272341742135247e-01, ++ 6.54568337861228477514e-01, ++ 6.48757374718860524432e-01, ++ 6.42875826737744904271e-01, ++ 6.36925153517562181449e-01, ++ 6.30906829991492501541e-01, ++ 6.24822345978837789815e-01, ++ 6.18673205733470954470e-01, ++ 6.12460927488293727095e-01, ++ 6.06187042995817604307e-01, ++ 5.99853097065060292259e-01, ++ 5.93460647094893878339e-01, ++ 5.87011262603992944875e-01, ++ 5.80506524757569142281e-01, ++ 5.73948025891025337408e-01, ++ 5.67337369030688098981e-01, ++ 5.60676167411809700525e-01, ++ 5.53966043993961543279e-01, ++ 5.47208630974010734604e-01, ++ 5.40405569296826038261e-01, ++ 5.33558508163880174102e-01, ++ 5.26669104539922661168e-01, ++ 5.19739022657876970079e-01, ++ 5.12769933522119303326e-01, ++ 5.05763514410336290084e-01, ++ 4.98721448374081555155e-01, ++ 4.91645423738241937883e-01, ++ 4.84537133599546865348e-01, ++ 4.77398275324308896117e-01, ++ 4.70230550045545592219e-01, ++ 4.63035662159660077464e-01, ++ 4.55815318822846149427e-01, ++ 4.48571229447379538069e-01, ++ 4.41305105197960123586e-01, ++ 4.34018658488283970431e-01, ++ 4.26713602477997000495e-01, ++ 4.19391650570203500248e-01, ++ 4.12054515909689722530e-01, ++ 4.04703910882034223473e-01, ++ 3.97341546613763640927e-01, ++ 3.89969132473721613596e-01, ++ 3.82588375575806771689e-01, ++ 3.75200980283257823356e-01, ++ 3.67808647714624070701e-01, ++ 3.60413075251609871241e-01, ++ 3.53015956048925771960e-01, ++ 3.45618978546330835044e-01, ++ 3.38223825983006376461e-01, ++ 3.30832175914426429575e-01, ++ 3.23445699731881031180e-01, ++ 3.16066062184803764357e-01, ++ 3.08694920906066150312e-01, ++ 3.01333925940378832831e-01, ++ 2.93984719275965256102e-01, ++ 2.86648934379644393378e-01, ++ 2.79328195735489559492e-01, ++ 2.72024118387182545220e-01, ++ 2.64738307484245039003e-01, ++ 2.57472357832259801658e-01, ++ 2.50227853447243409057e-01, ++ 2.43006367114305704691e-01, ++ 2.35809459950733935063e-01, ++ 2.28638680973647728800e-01, ++ 2.21495566672345989279e-01, ++ 2.14381640585498134399e-01, ++ 2.07298412883298144305e-01, ++ 2.00247379954717363848e-01, ++ 1.93230023999986955108e-01, ++ 1.86247812628430653437e-01, ++ 1.79302198461779749294e-01, ++ 1.72394618743085786816e-01, ++ 1.65526494951356295537e-01, ++ 1.58699232422028796430e-01, ++ 1.51914219973401071195e-01, ++ 1.45172829539132269838e-01, ++ 1.38476415806921215879e-01, ++ 1.31826315863480453272e-01, ++ 1.25223848845901208904e-01, ++ 1.18670315599523901184e-01, ++ 1.12166998342411894374e-01, ++ 1.05715160336527447260e-01, ++ 9.93160455657086521652e-02, ++ 9.29708784205405536216e-02, ++ 8.66808633902153846673e-02, ++ 8.04471847614677826321e-02, ++ 7.42710063246745516574e-02, ++ 6.81534710872001986415e-02, ++ 6.20957009940759641076e-02, ++ 5.60987966560835549235e-02, ++ 5.01638370853247708703e-02, ++ 4.42918794383505357026e-02, ++ 3.84839587669171534490e-02, ++ 3.27410877764400740086e-02, ++ 2.70642565922108620236e-02, ++ 2.14544325334371267788e-02, ++ 1.59125598951669576520e-02, ++ 1.04395597381551803740e-02, ++ 5.03632968672305773861e-03, ++-2.96256265336385191805e-04, ++-5.55734794075828358179e-03, ++-1.07461191566687631893e-02, ++-1.58617678942645466689e-02, ++-2.09035164602743607498e-02, ++-2.58706116401622790435e-02, ++-3.07623248430414844568e-02, ++-3.55779522382659724178e-02, ++-4.03168148836769782428e-02, ++-4.49782588454727128013e-02, ++-4.95616553096875425699e-02, ++-5.40664006852556791594e-02, ++-5.84919166986474642345e-02, ++-6.28376504800633867154e-02, ++-6.71030746411782619276e-02, ++-7.12876873444269476554e-02, ++-7.53910123638282386738e-02, ++-7.94125991373483691715e-02, ++-8.33520228108008270906e-02, ++-8.72088842732959695914e-02, ++-9.09828101842390379872e-02, ++-9.46734529918955292072e-02, ++-9.82804909435327500589e-02, ++-1.01803628087157427284e-01, ++-1.05242594264867719844e-01, ++-1.08597145097841310535e-01, ++-1.11867061962988789681e-01, ++-1.15052151961296145188e-01, ++-1.18152247877890054228e-01, ++-1.21167208133862752684e-01, ++-1.24096916729885473063e-01, ++-1.26941283181660202750e-01, ++-1.29700242447243679900e-01, ++-1.32373754846295377252e-01, ++-1.34961805971292009287e-01, ++-1.37464406590764143257e-01, ++-1.39881592544604443917e-01, ++-1.42213424631507739937e-01, ++-1.44459988488595730827e-01, ++-1.46621394463294696386e-01, ++-1.48697777477524800682e-01, ++-1.50689296884269657850e-01, ++-1.52596136316595465399e-01, ++-1.54418503529190731527e-01, ++-1.56156630232500315270e-01, ++-1.57810771919529219121e-01, ++-1.59381207685401427021e-01, ++-1.60868240039743037872e-01, ++-1.62272194711985145998e-01, ++-1.63593420449666626659e-01, ++-1.64832288809824062392e-01, ++-1.65989193943563151379e-01, ++-1.67064552373901109572e-01, ++-1.68058802766975601273e-01, ++-1.68972405696717037360e-01, ++-1.69805843403086798027e-01, ++-1.70559619543971530131e-01, ++-1.71234258940853617537e-01, ++-1.71830307318344255307e-01, ++-1.72348331037702334756e-01, ++-1.72788916824434257702e-01, ++-1.73152671490098081231e-01, ++-1.73440221648409775845e-01, ++-1.73652213425782242506e-01, ++-1.73789312166397952319e-01, ++-1.73852202131942051855e-01, ++-1.73841586196111674845e-01, ++-1.73758185534021086793e-01, ++-1.73602739306629005878e-01, ++-1.73376004340306061335e-01, ++-1.73078754801670009478e-01, ++-1.72711781867818603420e-01, ++-1.72275893392080048372e-01, ++-1.71771913565416961545e-01, ++-1.71200682573611373538e-01, ++-1.70563056250360139954e-01, ++-1.69859905726417126370e-01, ++-1.69092117074913228514e-01, ++-1.68260590952989147473e-01, ++-1.67366242239875284703e-01, ++-1.66409999671557895518e-01, ++-1.65392805472166642966e-01, ++-1.64315614982222552021e-01, ++-1.63179396283883837437e-01, ++-1.61985129823331186483e-01, ++-1.60733808030429803360e-01, ++-1.59426434935813571281e-01, ++-1.58064025785527417778e-01, ++-1.56647606653372045704e-01, ++-1.55178214051094831571e-01, ++-1.53656894536566474008e-01, ++-1.52084704320088470730e-01, ++-1.50462708868975059140e-01, ++-1.48791982510548842500e-01, ++-1.47073608033699704256e-01, ++-1.45308676289147314931e-01, ++-1.43498285788550977715e-01, ++-1.41643542302611558092e-01, ++-1.39745558458309881988e-01, ++-1.37805453335422323224e-01, ++-1.35824352062461073398e-01, ++-1.33803385412180564362e-01, ++-1.31743689396791985313e-01, ++-1.29646404863030306753e-01, ++-1.27512677087215337002e-01, ++-1.25343655370452389253e-01, ++-1.23140492634104758984e-01, ++-1.20904345015691472298e-01, ++-1.18636371465341922127e-01, ++-1.16337733342949820048e-01, ++-1.14009594016166518338e-01, ++-1.11653118459372716065e-01, ++-1.09269472853762789066e-01, ++-1.06859824188683741331e-01, ++-1.04425339864360325337e-01, ++-1.01967187296145456177e-01, ++-9.94865335204263567803e-02, ++-9.69845448023236023083e-02, ++-9.44623862453117940641e-02, ++-9.19212214028948121358e-02, ++-8.93622118924671249296e-02, ++-8.67865170114848205607e-02, ++-8.41952933560805999447e-02, ++-8.15896944422443981537e-02, ++-7.89708703296961439522e-02, ++-7.63399672485739477779e-02, ++-7.36981272290610500697e-02, ++-7.10464877340710454501e-02, ++-6.83861812951113146042e-02, ++-6.57183351514422919859e-02, ++-6.30440708926501142129e-02, ++-6.03645041047437408421e-02, ++-5.76807440198948140342e-02, ++-5.49938931699267691267e-02, ++-5.23050470436661057994e-02, ++-4.96152937482609926456e-02, ++-4.69257136745778041798e-02, ++-4.42373791667729082677e-02, ++-4.15513541961495605492e-02, ++-3.88686940393953503370e-02, ++-3.61904449613011935938e-02, ++-3.35176439020573244121e-02, ++-3.08513181692228674602e-02, ++-2.81924851344595717162e-02, ++-2.55421519351213023585e-02, ++-2.29013151807887539724e-02, ++-2.02709606648342685609e-02, ++-1.76520630811025022733e-02, ++-1.50455857457888787787e-02, ++-1.24524803245954687053e-02, ++-9.87368656524285036313e-03, ++-7.31013203541311037958e-03, ++-4.76273186619807602227e-03, ++-2.23238850112297869746e-03, ++ 2.80008549183706099625e-04, ++ 2.77358294660976899965e-03, ++ 5.24747175940274562800e-03, ++ 7.70082569017439908660e-03, ++ 1.01328092980087648006e-02, ++ 1.25426012146140665460e-02, ++ 1.49293943544662570388e-02, ++ 1.72923961188884665885e-02, ++ 1.96308285940195309527e-02, ++ 2.19439287426209730936e-02, ++ 2.42309485896793734561e-02, ++ 2.64911554017603391442e-02, ++ 2.87238318600733545660e-02, ++ 3.09282762272103349532e-02, ++ 3.31038025075217068327e-02, ++ 3.52497406010981520486e-02, ++ 3.73654364513253609004e-02, ++ 3.94502521859858221176e-02, ++ 4.15035662518817155542e-02, ++ 4.35247735429537541130e-02, ++ 4.55132855218787699125e-02, ++ 4.74685303351244439196e-02, ++ 4.93899529214478216765e-02, ++ 5.12770151138242716304e-02, ++ 5.31291957347935772660e-02, ++ 5.49459906852194576721e-02, ++ 5.67269130264521220797e-02, ++ 5.84714930558940249039e-02, ++ 6.01792783759655322551e-02, ++ 6.18498339564735599705e-02, ++ 6.34827421903864652641e-02, ++ 6.50776029430226859995e-02, ++ 6.66340335946605799577e-02, ++ 6.81516690765814614483e-02, ++ 6.96301619005592065115e-02, ++ 7.10691821818139612965e-02, ++ 7.24684176554465098175e-02, ++ 7.38275736863740761340e-02, ++ 7.51463732727930683319e-02, ++ 7.64245570431912463194e-02, ++ 7.76618832469397474272e-02, ++ 7.88581277384926976337e-02, ++ 8.00130839552289779837e-02, ++ 8.11265628889681067459e-02, ++ 8.21983930512013155623e-02, ++ 8.32284204320703352442e-02, ++ 8.42165084531432683868e-02, ++ 8.51625379140240473808e-02, ++ 8.60664069328434949702e-02, ++ 8.69280308806818224898e-02, ++ 8.77473423099686122839e-02, ++ 8.85242908769151987114e-02, ++ 8.92588432580306151420e-02, ++ 8.99509830607803234637e-02, ++ 9.06007107284422380511e-02, ++ 9.12080434392217309636e-02, ++ 9.17730149996878741270e-02, ++ 9.22956757325926607782e-02, ++ 9.27760923591415126443e-02, ++ 9.32143478757788968014e-02, ++ 9.36105414255621187669e-02, ++ 9.39647881641913207407e-02, ++ 9.42772191207702781046e-02, ++ 9.45479810533706027664e-02, ++ 9.47772362994778183598e-02, ++ 9.49651626213951355338e-02, ++ 9.51119530466846413441e-02, ++ 9.52178157037280176178e-02, ++ 9.52829736524876819148e-02, ++ 9.53076647105531166160e-02, ++ 9.52921412745576373871e-02, ++ 9.52366701370536278271e-02, ++ 9.51415322989309503177e-02, ++ 9.50070227774735681647e-02, ++ 9.48334504101390751707e-02, ++ 9.46211376541590265532e-02, ++ 9.43704203820504156086e-02, ++ 9.40816476731309581094e-02, ++ 9.37551816011396865758e-02, ++ 9.33913970180541563870e-02, ++ 9.29906813342047527948e-02, ++ 9.25534342947849225647e-02, ++ 9.20800677528557931506e-02, ++ 9.15710054389489019888e-02, ++ 9.10266827273659706599e-02, ++ 9.04475463992783224043e-02, ++ 8.98340544027328158361e-02, ++ 8.91866756096650198371e-02, ++ 8.85058895700238101867e-02, ++ 8.77921862631190763615e-02, ++ 8.70460658462897246546e-02, ++ 8.62680384010083983748e-02, ++ 8.54586236765221690659e-02, ++ 8.46183508311429133375e-02, ++ 8.37477581712920277068e-02, ++ 8.28473928884114751980e-02, ++ 8.19178107938471483651e-02, ++ 8.09595760518180135312e-02, ++ 7.99732609105757996648e-02, ++ 7.89594454318716387764e-02, ++ 7.79187172188340326784e-02, ++ 7.68516711423724852015e-02, ++ 7.57589090662164482692e-02, ++ 7.46410395707000073884e-02, ++ 7.34986776754032733461e-02, ++ 7.23324445607601979047e-02, ++ 7.11429672887474440213e-02, ++ 6.99308785227581580779e-02, ++ 6.86968162467783832748e-02, ++ 6.74414234839716131287e-02, ++ 6.61653480147834510694e-02, ++ 6.48692420946761771905e-02, ++ 6.35537621716019962559e-02, ++ 6.22195686033254202751e-02, ++ 6.08673253747022482973e-02, ++ 5.94976998150253330588e-02, ++ 5.81113623155428762890e-02, ++ 5.67089860472591994478e-02, ++ 5.52912466791220663653e-02, ++ 5.38588220967053943333e-02, ++ 5.24123921214928872869e-02, ++ 5.09526382308646275110e-02, ++ 4.94802432788957607945e-02, ++ 4.79958912180662375380e-02, ++ 4.65002668219884549017e-02, ++ 4.49940554092515265783e-02, ++ 4.34779425684853407241e-02, ++ 4.19526138847447563340e-02, ++ 4.04187546673120054463e-02, ++ 3.88770496790168534895e-02, ++ 3.73281828671714888124e-02, ++ 3.57728370962169389680e-02, ++ 3.42116938821758476141e-02, ++ 3.26454331290065291604e-02, ++ 3.10747328669506231447e-02, ++ 2.95002689929673225788e-02, ++ 2.79227150133440210622e-02, ++ 2.63427417885741359249e-02, ++ 2.47610172805882329528e-02, ++ 2.31782063024293799591e-02, ++ 2.15949702704538760989e-02, ++ 2.00119669591453143431e-02, ++ 1.84298502586232419709e-02, ++ 1.68492699349288496680e-02, ++ 1.52708713931675090641e-02, ++ 1.36952954435869880129e-02, ++ 1.21231780706691841254e-02, ++ 1.05551502053105091677e-02, ++ 8.99183750016553651196e-03, ++ 7.43386010822696258193e-03, ++ 5.88183246471273707412e-03, ++ 4.33636307232945251988e-03, ++ 2.79805428998205086427e-03, ++ 1.26750212499337003291e-03, ++-2.54703971099550386531e-04, ++-1.76798130311027175757e-03, ++-3.27175412906725469539e-03, ++-4.76545385331804925710e-03, ++-6.24851921581533794464e-03, ++-7.72039647752874400727e-03, ++-9.18053960192777122884e-03, ++-1.06284104324833178490e-02, ++-1.20634788661366718077e-02, ++-1.34852230226875247771e-02, ++-1.48931294100519973078e-02, ++-1.62866930853476296615e-02, ++-1.76654178117594401476e-02, ++-1.90288162111466874205e-02, ++-2.03764099123495759369e-02, ++-2.17077296951579609696e-02, ++-2.30223156299061669505e-02, ++-2.43197172126588360974e-02, ++-2.55994934959561624976e-02, ++-2.68612132150869431513e-02, ++-2.81044549098614510063e-02, ++-2.93288070418574950415e-02, ++-3.05338681071131295974e-02, ++-3.17192467442452205595e-02, ++-3.28845618379712614776e-02, ++-3.40294426180154721551e-02, ++-3.51535287533818185945e-02, ++-3.62564704419792716017e-02, ++-3.73379284955845242022e-02, ++-3.83975744201309962533e-02, ++-3.94350904913155775322e-02, ++-4.04501698255130062720e-02, ++-4.14425164459938585870e-02, ++-4.24118453444415760556e-02, ++-4.33578825377650758921e-02, ++-4.42803651202084772032e-02, ++-4.51790413107587551789e-02, ++-4.60536704958539877541e-02, ++-4.69040232673985507672e-02, ++-4.77298814560914094751e-02, ++-4.85310381600771723054e-02, ++-4.93072977689298017068e-02, ++-5.00584759829825892696e-02, ++-5.07843998280173986037e-02, ++-5.14849076653303427964e-02, ++-5.21598491971914657306e-02, ++-5.28090854677170859488e-02, ++-5.34324888591782357072e-02, ++-5.40299430837655400572e-02, ++-5.46013431708381041796e-02, ++-5.51465954496810906171e-02, ++-5.56656175277993395256e-02, ++-5.61583382647804357779e-02, ++-5.66246977417538960298e-02, ++-5.70646472264832865795e-02, ++-5.74781491341238848225e-02, ++-5.78651769836829588112e-02, ++-5.82257153502198851469e-02, ++-5.85597598128258789441e-02, ++-5.88673168984241990120e-02, ++-5.91484040214318093631e-02, ++-5.94030494193287308957e-02, ++-5.96312920841784027681e-02, ++-5.98331816901454746627e-02, ++-6.00087785170606569096e-02, ++-6.01581533700810480725e-02, ++-6.02813874954959694197e-02, ++-6.03785724927326447609e-02, ++-6.04498102226119424230e-02, ++-6.04952127119116611631e-02, ++-6.05149020542914278797e-02, ++-6.05090103076376881197e-02, ++-6.04776793878847099273e-02, ++-6.04210609593744951695e-02, ++-6.03393163218124903291e-02, ++-6.02326162938837256222e-02, ++-6.01011410935896536745e-02, ++-5.99450802153716350018e-02, ++-5.97646323040843391317e-02, ++-5.95600050258849322837e-02, ++-5.93314149361059764431e-02, ++-5.90790873441773764507e-02, ++-5.88032561756684640786e-02, ++-5.85041638315173181950e-02, ++-5.81820610445198463379e-02, ++-5.78372067331465664064e-02, ++-5.74698678527617162759e-02, ++-5.70803192443151696800e-02, ++-5.66688434805820984153e-02, ++-5.62357307100216502471e-02, ++-5.57812784983319834287e-02, ++-5.53057916677746758127e-02, ++-5.48095821343453915020e-02, ++-5.42929687428649263015e-02, ++-5.37562771000702349644e-02, ++-5.31998394057807341695e-02, ++-5.26239942822169029513e-02, ++-5.20290866015511582754e-02, ++-5.14154673117670768523e-02, ++-5.07834932609073572141e-02, ++-5.01335270197884388943e-02, ++-4.94659367032617980353e-02, ++-4.87810957901005926018e-02, ++-4.80793829415919610204e-02, ++-4.73611818189140221236e-02, ++-4.66268808993793651418e-02, ++-4.58768732916221277929e-02, ++-4.51115565498113532672e-02, ++-4.43313324869706107401e-02, ++-4.35366069874822472774e-02, ++-4.27277898188581847783e-02, ++-4.19052944428566706558e-02, ++-4.10695378260253277092e-02, ++-4.02209402497498702544e-02, ++-3.93599251198885058400e-02, ++-3.84869187760717781921e-02, ++-3.76023503007467674308e-02, ++-3.67066513280452297319e-02, ++-3.58002558525536487832e-02, ++-3.48836000380640318119e-02, ++-3.39571220263849699039e-02, ++-3.30212617462878818553e-02, ++-3.20764607226682249563e-02, ++-3.11231618859974003277e-02, ++-3.01618093821427596390e-02, ++-2.91928483826300218251e-02, ++-2.82167248954252464221e-02, ++-2.72338855763107207109e-02, ++-2.62447775409285488646e-02, ++-2.52498481775659533444e-02, ++-2.42495449607560524530e-02, ++-2.32443152657647901516e-02, ++-2.22346061840382018537e-02, ++-2.12208643396787077773e-02, ++-2.02035357070221716080e-02, ++-1.91830654293842946256e-02, ++-1.81598976390459701524e-02, ++-1.71344752785447841659e-02, ++-1.61072399233397958729e-02, ++-1.50786316059164128556e-02, ++-1.40490886413957953571e-02, ++-1.30190474547137412242e-02, ++-1.19889424094323342185e-02, ++-1.09592056382471266657e-02, ++-9.93026687525074697183e-03, ++-8.90255329001433948211e-03, ++-7.87648932354562125724e-03, ++-6.85249652618241146540e-03, ++-5.83099339747908569642e-03, ++-4.81239522814202146106e-03, ++-3.79711394406930576734e-03, ++-2.78555795254968683455e-03, ++-1.77813199067227692071e-03, ++-7.75236976000132386663e-04, ++ 2.22730140442126654798e-04, ++ 1.21537651881706244492e-03, ++ 2.20231357271108733539e-03, ++ 3.18315710891246220898e-03, ++ 4.15752746468348553799e-03, ++ 5.12504964248380791986e-03, ++ 6.08535344210042478813e-03, ++ 7.03807359014245199208e-03, ++ 7.98284986685961206465e-03, ++ 8.91932723024580452476e-03, ++ 9.84715593738785290034e-03, ++ 1.07659916630240357766e-02, ++ 1.16754956152756248638e-02, ++ 1.25753346485176220604e-02, ++ 1.34651813733560731662e-02, ++ 1.43447142636787781933e-02, ++ 1.52136177607511777904e-02, ++ 1.60715823743268690360e-02, ++ 1.69183047807457617728e-02, ++ 1.77534879179936204430e-02, ++ 1.85768410776981605925e-02, ++ 1.93880799940382604618e-02, ++ 2.01869269295435888045e-02, ++ 2.09731107577651766649e-02, ++ 2.17463670427963037812e-02, ++ 2.25064381156266125894e-02, ++ 2.32530731473125917841e-02, ++ 2.39860282189490944815e-02, ++ 2.47050663884288181082e-02, ++ 2.54099577539762186418e-02, ++ 2.61004795144461655687e-02, ++ 2.67764160263764816605e-02, ++ 2.74375588577874841845e-02, ++ 2.80837068387202806741e-02, ++ 2.87146661085097808230e-02, ++ 2.93302501597869115513e-02, ++ 2.99302798792087168533e-02, ++ 3.05145835849139068774e-02, ++ 3.10829970607048658437e-02, ++ 3.16353635869560598226e-02, ++ 3.21715339682534032240e-02, ++ 3.26913665577675052742e-02, ++ 3.31947272783659833029e-02, ++ 3.36814896404726560331e-02, ++ 3.41515347566807569990e-02, ++ 3.46047513531298478462e-02, ++ 3.50410357776568884280e-02, ++ 3.54602920047340924858e-02, ++ 3.58624316372060172875e-02, ++ 3.62473739048404727803e-02, ++ 3.66150456597097023748e-02, ++ 3.69653813684179058385e-02, ++ 3.72983231011940682964e-02, ++ 3.76138205178691634178e-02, ++ 3.79118308507581658340e-02, ++ 3.81923188844700278732e-02, ++ 3.84552569326661666804e-02, ++ 3.87006248117945095277e-02, ++ 3.89284098118221136287e-02, ++ 3.91386066639944005252e-02, ++ 3.93312175056476295842e-02, ++ 3.95062518421033306848e-02, ++ 3.96637265056755394799e-02, ++ 3.98036656118202977761e-02, ++ 3.99261005124597820326e-02, ++ 4.00310697465144360585e-02, ++ 4.01186189876763035778e-02, ++ 4.01888009894591641258e-02, ++ 4.02416755275608953313e-02, ++ 4.02773093395744422041e-02, ++ 4.02957760620868618573e-02, ++ 4.02971561652026855072e-02, ++ 4.02815368845340013304e-02, ++ 4.02490121506946865737e-02, ++ 4.01996825163432602857e-02, ++ 4.01336550808131173329e-02, ++ 4.00510434123766412284e-02, ++ 3.99519674681838021790e-02, ++ 3.98365535119223901361e-02, ++ 3.97049340292425986809e-02, ++ 3.95572476409943238340e-02, ++ 3.93936390143226622396e-02, ++ 3.92142587716682866628e-02, ++ 3.90192633977227906761e-02, ++ 3.88088151443859719070e-02, ++ 3.85830819337740632546e-02, ++ 3.83422372593309676581e-02, ++ 3.80864600850902706997e-02, ++ 3.78159347431409609275e-02, ++ 3.75308508293468318096e-02, ++ 3.72314030973733209318e-02, ++ 3.69177913510723085255e-02, ++ 3.65902203352790472701e-02, ++ 3.62488996250740352911e-02, ++ 3.58940435135636018438e-02, ++ 3.55258708982338911042e-02, ++ 3.51446051659309519066e-02, ++ 3.47504740765239503175e-02, ++ 3.43437096453047957523e-02, ++ 3.39245480241803926136e-02, ++ 3.34932293817127510471e-02, ++ 3.30499977820627663383e-02, ++ 3.25951010628938789293e-02, ++ 3.21287907122915217251e-02, ++ 3.16513217447548164674e-02, ++ 3.11629525763171093267e-02, ++ 3.06639448988514501382e-02, ++ 3.01545635536184866710e-02, ++ 2.96350764041116987446e-02, ++ 2.91057542082603579181e-02, ++ 2.85668704900414009706e-02, ++ 2.80187014105628129368e-02, ++ 2.74615256386703497637e-02, ++ 2.68956242211381771345e-02, ++ 2.63212804524964143205e-02, ++ 2.57387797445546746833e-02, ++ 2.51484094956766456030e-02, ++ 2.45504589598617914414e-02, ++ 2.39452191156906725455e-02, ++ 2.33329825351894608321e-02, ++ 2.27140432526683408443e-02, ++ 2.20886966335908999093e-02, ++ 2.14572392435271874778e-02, ++ 2.08199687172471933905e-02, ++ 2.01771836280079629178e-02, ++ 1.95291833570884962312e-02, ++ 1.88762679636269269101e-02, ++ 1.82187380548123403767e-02, ++ 1.75568946564845403124e-02, ++ 1.68910390841945853846e-02, ++ 1.62214728147774996103e-02, ++ 1.55484973584896369464e-02, ++ 1.48724141317607399387e-02, ++ 1.41935243306124080076e-02, ++ 1.35121288047925294795e-02, ++ 1.28285279326754275003e-02, ++ 1.21430214969758445281e-02, ++ 1.14559085613274869858e-02, ++ 1.07674873477713456404e-02, ++ 1.00780551152029641815e-02, ++ 9.38790803882408146641e-03, ++ 8.69734109064560119429e-03, ++ 8.00664792108640895052e-03, ++ 7.31612074171312902482e-03, ++ 6.62605020916498532735e-03, ++ 5.93672531030635993593e-03, ++ 5.24843324865020312286e-03, ++ 4.56145933209378684481e-03, ++ 3.87608686200798923521e-03, ++ 3.19259702372048361982e-03, ++ 2.51126877843176705626e-03, ++ 1.83237875660391988202e-03, ++ 1.15620115285868549186e-03, ++ 4.83007622422852007059e-04, ++-1.86932820843070034112e-04, ++-8.53353904797455329115e-04, ++-1.51599219771675255281e-03, ++-2.17458720530792556924e-03, ++-2.82888146600037857989e-03, ++-3.47862064448672828401e-03, ++-4.12355362347965707925e-03, ++-4.76343259365718217635e-03, ++-5.39801314176371720144e-03, ++-6.02705433684159932323e-03, ++-6.65031881456398799024e-03, ++-7.26757285964317947813e-03, ++-7.87858648628854928153e-03, ++-8.48313351669007821576e-03, ++-9.08099165750268083608e-03, ++-9.67194257431004678072e-03, ++-1.02557719640449674509e-02, ++-1.08322696253466653482e-02, ++-1.14012295268339416271e-02, ++-1.19624498732761111452e-02, ++-1.25157331696445651287e-02, ++-1.30608862830260651078e-02, ++-1.35977205023845738180e-02, ++-1.41260515961539080687e-02, ++-1.46456998676501564532e-02, ++-1.51564902082884610246e-02, ++-1.56582521485937077588e-02, ++-1.61508199069943896020e-02, ++-1.66340324363880263936e-02, ++-1.71077334684716746149e-02, ++-1.75717715558275228149e-02, ++-1.80260001117568194329e-02, ++-1.84702774478586080609e-02, ++-1.89044668093441003975e-02, ++-1.93284364080869922042e-02, ++-1.97420594534034529732e-02, ++-2.01452141805614354242e-02, ++-2.05377838770183090977e-02, ++-2.09196569063852221004e-02, ++-2.12907267301215390176e-02, ++-2.16508919269584217127e-02, ++-2.20000562100566773860e-02, ++-2.23381284419012192399e-02, ++-2.26650226469371808558e-02, ++-2.29806580219539050014e-02, ++-2.32849589442222955349e-02, ++-2.35778549773940013234e-02, ++-2.38592808751701725145e-02, ++-2.41291765827496146324e-02, ++-2.43874872360661625048e-02, ++-2.46341631588262027774e-02, ++-2.48691598573592027865e-02, ++-2.50924380132932847709e-02, ++-2.53039634740697960691e-02, ++-2.55037072413113186098e-02, ++-2.56916454570593408291e-02, ++-2.58677593878966008423e-02, ++-2.60320354069717534162e-02, ++-2.61844649739453247395e-02, ++-2.63250446128731642459e-02, ++-2.64537758880496950975e-02, ++-2.65706653778289558776e-02, ++-2.66757246464459155111e-02, ++-2.67689702138592805492e-02, ++-2.68504235236379437679e-02, ++-2.69201109089152179621e-02, ++-2.69780635564342181898e-02, ++-2.70243174687087896191e-02, ++-2.70589134243261995871e-02, ++-2.70818969364167577707e-02, ++-2.70933182093176481986e-02, ++-2.70932320934577017257e-02, ++-2.70816980384915410862e-02, ++-2.70587800447114543156e-02, ++-2.70245466127663376554e-02, ++-2.69790706917171427270e-02, ++-2.69224296254590607369e-02, ++-2.68547050975419879237e-02, ++-2.67759830744198866481e-02, ++-2.66863537471611969587e-02, ++-2.65859114716531889921e-02, ++-2.64747547073322930800e-02, ++-2.63529859544745573285e-02, ++-2.62207116900796607939e-02, ++-2.60780423023825730366e-02, ++-2.59250920240284947471e-02, ++-2.57619788639449828760e-02, ++-2.55888245379471308827e-02, ++-2.54057543981124761556e-02, ++-2.52128973609604678519e-02, ++-2.50103858344739478359e-02, ++-2.47983556439997539222e-02, ++-2.45769459570643403201e-02, ++-2.43462992071435090080e-02, ++-2.41065610164222128564e-02, ++-2.38578801175844575078e-02, ++-2.36004082746693114037e-02, ++-2.33343002030331689300e-02, ++-2.30597134884559483436e-02, ++-2.27768085054302904524e-02, ++-2.24857483346725776918e-02, ++-2.21866986798954189675e-02, ++-2.18798277838799307138e-02, ++-2.15653063438876642366e-02, ++-2.12433074264517691987e-02, ++-2.09140063815867055519e-02, ++-2.05775807564556566243e-02, ++-2.02342102085360346642e-02, ++-1.98840764183222142025e-02, ++-1.95273630016047500257e-02, ++-1.91642554213670816832e-02, ++-1.87949408993371563925e-02, ++-1.84196083272362247374e-02, ++-1.80384481777610752862e-02, ++-1.76516524153425696797e-02, ++-1.72594144067167720724e-02, ++-1.68619288313498413845e-02, ++-1.64593915917550098760e-02, ++-1.60519997237402040069e-02, ++-1.56399513066264282679e-02, ++-1.52234453734734331148e-02, ++-1.48026818213531103502e-02, ++-1.43778613217079923037e-02, ++-1.39491852308316760523e-02, ++-1.35168555005115483686e-02, ++-1.30810745888681710658e-02, ++-1.26420453714316226301e-02, ++-1.21999710524887047813e-02, ++-1.17550550767402828961e-02, ++-1.13075010413035727252e-02, ++-1.08575126080952908542e-02, ++-1.04052934166326063736e-02, ++-9.95104699728536351566e-03, ++-9.49497668501652312967e-03, ++-9.03728553364356763933e-03, ++-8.57817623065582068875e-03, ++-8.11785101262214349449e-03, ++-7.65651158122056946231e-03, ++-7.19435901992488725798e-03, ++-6.73159371137851351291e-03, ++-6.26841525548942068990e-03, ++-5.80502238827697216589e-03, ++-5.34161290150089295564e-03, ++-4.87838356310490647849e-03, ++-4.41553003850264462471e-03, ++-3.95324681273798422126e-03, ++-3.49172711354636287548e-03, ++-3.03116283534747218975e-03, ++-2.57174446419663202748e-03, ++-2.11366100372138449731e-03, ++-1.65709990207213789248e-03, ++-1.20224697991074881177e-03, ++-7.49286359465203312402e-04, ++-2.98400394673150758020e-04, ++ 1.50230397559290287587e-04, ++ 5.96427404960260163468e-04, ++ 1.04001398633389997676e-03, ++ 1.48081553681653948010e-03, ++ 1.91865955192711671630e-03, ++ 2.35337569038958404136e-03, ++ 2.78479583570576333731e-03, ++ 3.21275415646031688166e-03, ++ 3.63708716533605539573e-03, ++ 4.05763377682291995208e-03, ++ 4.47423536360066955581e-03, ++ 4.88673581157838838457e-03, ++ 5.29498157357465894235e-03, ++ 5.69882172162047926506e-03, ++ 6.09810799787139853900e-03, ++ 6.49269486411187517899e-03, ++ 6.88243954983998491859e-03, ++ 7.26720209891677272618e-03, ++ 7.64684541476874993227e-03, ++ 8.02123530413159993580e-03, ++ 8.39024051932213063565e-03, ++ 8.75373279902990839019e-03, ++ 9.11158690761618844656e-03, ++ 9.46368067291306243327e-03, ++ 9.80989502251233651264e-03, ++ 1.01501140185368699670e-02, ++ 1.04842248908878447194e-02, ++ 1.08121180689596009528e-02, ++ 1.11336872118183785596e-02, ++ 1.14488292368375710328e-02, ++ 1.17574443467867335855e-02, ++ 1.20594360553697797084e-02, ++ 1.23547112112087492664e-02, ++ 1.26431800202723137322e-02, ++ 1.29247560667452802280e-02, ++ 1.31993563323394361153e-02, ++ 1.34669012140451026943e-02, ++ 1.37273145403230718842e-02, ++ 1.39805235857388930609e-02, ++ 1.42264590840399576116e-02, ++ 1.44650552396788801418e-02, ++ 1.46962497377853603536e-02, ++ 1.49199837525900817770e-02, ++ 1.51362019543059365262e-02, ++ 1.53448525144697818512e-02, ++ 1.55458871097522988158e-02, ++ 1.57392609242401407266e-02, ++ 1.59249326501989980909e-02, ++ 1.61028644873237487822e-02, ++ 1.62730221404839558996e-02, ++ 1.64353748159745995105e-02, ++ 1.65898952162792344411e-02, ++ 1.67365595333573702330e-02, ++ 1.68753474404654685292e-02, ++ 1.70062420825228405308e-02, ++ 1.71292300650343690127e-02, ++ 1.72443014415816948948e-02, ++ 1.73514496998961910423e-02, ++ 1.74506717465267233158e-02, ++ 1.75419678901157470585e-02, ++ 1.76253418232991503067e-02, ++ 1.77008006032431768062e-02, ++ 1.77683546308354950449e-02, ++ 1.78280176285450023266e-02, ++ 1.78798066169677284665e-02, ++ 1.79237418900749095885e-02, ++ 1.79598469891815541721e-02, ++ 1.79881486756524357207e-02, ++ 1.80086769023645003329e-02, ++ 1.80214647839439801036e-02, ++ 1.80265485657978320744e-02, ++ 1.80239675919585257136e-02, ++ 1.80137642717629609113e-02, ++ 1.79959840453853894826e-02, ++ 1.79706753482452019632e-02, ++ 1.79378895743111561878e-02, ++ 1.78976810383233188306e-02, ++ 1.78501069369546815080e-02, ++ 1.77952273089348571300e-02, ++ 1.77331049941585293384e-02, ++ 1.76638055918014250101e-02, ++ 1.75873974174670689996e-02, ++ 1.75039514593883366311e-02, ++ 1.74135413337067820883e-02, ++ 1.73162432388551425222e-02, ++ 1.72121359090659648006e-02, ++ 1.71013005670323306462e-02, ++ 1.69838208757447130248e-02, ++ 1.68597828895295613616e-02, ++ 1.67292750043147309125e-02, ++ 1.65923879071472879509e-02, ++ 1.64492145249898746862e-02, ++ 1.62998499728209574056e-02, ++ 1.61443915010654574782e-02, ++ 1.59829384423819872985e-02, ++ 1.58155921578329479449e-02, ++ 1.56424559824643004402e-02, ++ 1.54636351703211580993e-02, ++ 1.52792368389266484952e-02, ++ 1.50893699132506348831e-02, ++ 1.48941450691946284529e-02, ++ 1.46936746766213478105e-02, ++ 1.44880727419542387757e-02, ++ 1.42774548503756936596e-02, ++ 1.40619381076500047506e-02, ++ 1.38416410815988405458e-02, ++ 1.36166837432563775367e-02, ++ 1.33871874077307433104e-02, ++ 1.31532746747999255282e-02, ++ 1.29150693692685249875e-02, ++ 1.26726964811125480254e-02, ++ 1.24262821054400597609e-02, ++ 1.21759533822933443264e-02, ++ 1.19218384363212748234e-02, ++ 1.16640663163469111840e-02, ++ 1.14027669348586990772e-02, ++ 1.11380710074510391738e-02, ++ 1.08701099922405512027e-02, ++ 1.05990160292857588803e-02, ++ 1.03249218800347264402e-02, ++ 1.00479608668283364181e-02, ++ 9.76826681248407595326e-03, ++ 9.48597397998680001707e-03, ++ 9.20121701231205180171e-03, ++ 8.91413087240663405686e-03, ++ 8.62485078335300560382e-03, ++ 8.33351216874106057175e-03, ++ 8.04025059327335284154e-03, ++ 7.74520170362733365033e-03, ++ 7.44850116959968472363e-03, ++ 7.15028462555652392224e-03, ++ 6.85068761221313375642e-03, ++ 6.54984551876693164157e-03, ++ 6.24789352540736173808e-03, ++ 5.94496654622468298501e-03, ++ 5.64119917254172174859e-03, ++ 5.33672561668945780872e-03, ++ 5.03167965625017643561e-03, ++ 4.72619457878821046942e-03, ++ 4.42040312709122713147e-03, ++ 4.11443744494245557813e-03, ++ 3.80842902344421868274e-03, ++ 3.50250864791438413365e-03, ++ 3.19680634537424174582e-03, ++ 2.89145133264915015631e-03, ++ 2.58657196509964968506e-03, ++ 2.28229568600325869593e-03, ++ 1.97874897660506266980e-03, ++ 1.67605730685465247574e-03, ++ 1.37434508684857771554e-03, ++ 1.07373561899400072825e-03, ++ 7.74351050912206037222e-04, ++ 4.76312329096932108620e-04, ++ 1.79739153344913828647e-04, ++-1.15250068026150436743e-04, ++-4.08538262157430215240e-04, ++-7.00009734810518881830e-04, ++-9.89550212697529359140e-04, ++-1.27704688496522110984e-03, ++-1.56238844381914230262e-03, ++-1.84546512427596291067e-03, ++-2.12616874302977649017e-03, ++-2.40439273642179809562e-03, ++-2.68003219750039467159e-03, ++-2.95298391216083011210e-03, ++-3.22314639435426720723e-03, ++-3.49041992035452591087e-03, ++-3.75470656207426648626e-03, ++-4.01591021941965966441e-03, ++-4.27393665167596914500e-03, ++-4.52869350791463860101e-03, ++-4.78009035641408387002e-03, ++-5.02803871308742881402e-03, ++-5.27245206890878791856e-03, ++-5.51324591633307794364e-03, ++-5.75033777470175880286e-03, ++-5.98364721463032038506e-03, ++-6.21309588137129026331e-03, ++-6.43860751714846711591e-03, ++-6.66010798245885143193e-03, ++-6.87752527633716734257e-03, ++-7.09078955558135361203e-03, ++-7.29983315293484570641e-03, ++-7.50459059422442856246e-03, ++-7.70499861445137022159e-03, ++-7.90099617283428028169e-03, ++-8.09252446680348673513e-03, ++-8.27952694494581836748e-03, ++-8.46194931890021165288e-03, ++-8.63973957420479179992e-03, ++-8.81284798009584514900e-03, ++-8.98122709826090423468e-03, ++-9.14483179054685624276e-03, ++-9.30361922562642808254e-03, ++-9.45754888462495800494e-03, ++-9.60658256571109842037e-03, ++-9.75068438765514661215e-03, ++-9.88982079235872779677e-03, ++-1.00239605463608785763e-02, ++-1.01530747413246837108e-02, ++-1.02771367935108499936e-02, ++-1.03961224422430293518e-02, ++-1.05100097473716045521e-02, ++-1.06187790857425311958e-02, ++-1.07224131466778661165e-02, ++-1.08208969264758890494e-02, ++-1.09142177219381259629e-02, ++-1.10023651229317290939e-02, ++-1.10853310039956218930e-02, ++-1.11631095149994884197e-02, ++-1.12356970708646971419e-02, ++-1.13030923403568215463e-02, ++-1.13652962339602110059e-02, ++-1.14223118908440956359e-02, ++-1.14741446649318026840e-02, ++-1.15208021100836454503e-02, ++-1.15622939644049946284e-02, ++-1.15986321336910645080e-02, ++-1.16298306740207010868e-02, ++-1.16559057735113307669e-02, ++-1.16768757332475214827e-02, ++-1.16927609473963332182e-02, ++-1.17035838825226608945e-02, ++-1.17093690561177760784e-02, ++-1.17101430143551586693e-02, ++-1.17059343090872795129e-02, ++-1.16967734740980097013e-02, ++-1.16826930006248379257e-02, ++-1.16637273121658596037e-02, ++-1.16399127385864407935e-02, ++-1.16112874895409699111e-02, ++-1.15778916272246922003e-02, ++-1.15397670384720374415e-02, ++-1.14969574062164479888e-02, ++-1.14495081803284975280e-02, ++-1.13974665478479546959e-02, ++-1.13408814026266253211e-02, ++-1.12798033143984600957e-02, ++-1.12142844972935168402e-02, ++-1.11443787778127377519e-02, ++-1.10701415622809114236e-02, ++-1.09916298037944538957e-02, ++-1.09089019686816925125e-02, ++-1.08220180024931385970e-02, ++-1.07310392955389764802e-02, ++-1.06360286479915983754e-02, ++-1.05370502345710423397e-02, ++-1.04341695688310136247e-02, ++-1.03274534670632443106e-02, ++-1.02169700118386209270e-02, ++-1.01027885152025192345e-02, ++-9.98497948154308812008e-03, ++-9.86361457015006402871e-03, ++-9.73876655748246930488e-03, ++-9.61050929916365190286e-03, ++-9.47891769172138146105e-03, ++-9.34406763409175583623e-03, ++-9.20603598890469380922e-03, ++-9.06490054356958417647e-03, ++-8.92073997117914622990e-03, ++-8.77363379124968326139e-03, ++-8.62366233031589164704e-03, ++-8.47090668239862398803e-03, ++-8.31544866936306283078e-03, ++-8.15737080118616487978e-03, ++-7.99675623615058242533e-03, ++-7.83368874098351944402e-03, ++-7.66825265095798756787e-03, ++-7.50053282997436773782e-03, ++-7.33061463064018075525e-03, ++-7.15858385436481461928e-03, ++-6.98452671148786126409e-03, ++-6.80852978145714965441e-03, ++-6.63067997307481386826e-03, ++-6.45106448482760802543e-03, ++-6.26977076531890029770e-03, ++-6.08688647381931853542e-03, ++-5.90249944095203298716e-03, ++-5.71669762953000513278e-03, ++-5.52956909556100162373e-03, ++-5.34120194943696596085e-03, ++-5.15168431732329797079e-03, ++-4.96110430276443595266e-03, ++-4.76954994852103134756e-03, ++-4.57710919865432410564e-03, ++-4.38386986087277181340e-03, ++-4.18991956915663876782e-03, ++-3.99534574667439676410e-03, ++-3.80023556900675307108e-03, ++-3.60467592769156538676e-03, ++-3.40875339410503987864e-03, ++-3.21255418369197943973e-03, ++-3.01616412055992575564e-03, ++-2.81966860245005685598e-03, ++-2.62315256609809257030e-03, ++-2.42670045299875130826e-03, ++-2.23039617558575898118e-03, ++-2.03432308384080993632e-03, ++-1.83856393234277533909e-03, ++-1.64320084776991355742e-03, ++-1.44831529686655904529e-03, ++-1.25398805488530435195e-03, ++-1.06029917451672204415e-03, ++-8.67327955316482155854e-04, ++-6.75152913641518712638e-04, ++-4.83851753104545291573e-04, ++-2.93501335557769932588e-04, ++-1.04177652615230481180e-04, ++ 8.40442022771478958144e-05, ++ 2.71090061213828637746e-04, ++ 4.56886708636217294885e-04, ++ 6.41361907564611910364e-04, ++ 8.24444425246958221068e-04, ++ 1.00606405821750295726e-03, ++ 1.18615165675600578790e-03, ++ 1.36463914874257485378e-03, ++ 1.54145956289825905236e-03, ++ 1.71654705140769636706e-03, ++ 1.88983691191461173828e-03, ++ 2.06126560888645086675e-03, ++ 2.23077079434063144103e-03, ++ 2.39829132792830895110e-03, ++ 2.56376729636941056573e-03, ++ 2.72714003223500402184e-03, ++ 2.88835213207216685155e-03, ++ 3.04734747386685260462e-03, ++ 3.20407123384176817371e-03, ++ 3.35846990258462183704e-03, ++ 3.51049130050470068257e-03, ++ 3.66008459261367522647e-03, ++ 3.80720030262936314294e-03, ++ 3.95179032639856198800e-03, ++ 4.09380794463911311387e-03, ++ 4.23320783499702736619e-03, ++ 4.36994608342004212803e-03, ++ 4.50398019484403704799e-03, ++ 4.63526910319382156461e-03, ++ 4.76377318069614620610e-03, ++ 4.88945424650618146178e-03, ++ 5.01227557464674778470e-03, ++ 5.13220190126144337750e-03, ++ 5.24919943118207308480e-03, ++ 5.36323584381190321402e-03, ++ 5.47428029832571112767e-03, ++ 5.58230343818897148389e-03, ++ 5.68727739499729628703e-03, ++ 5.78917579163970574818e-03, ++ 5.88797374478673089110e-03, ++ 5.98364786670789981782e-03, ++ 6.07617626642060343345e-03, ++ 6.16553855017385084303e-03, ++ 6.25171582127166582804e-03, ++ 6.33469067923863194541e-03, ++ 6.41444721833308011821e-03, ++ 6.49097102541174898749e-03, ++ 6.56424917715103632687e-03, ++ 6.63427023662958338657e-03, ++ 6.70102424927795491810e-03, ++ 6.76450273820044644529e-03, ++ 6.82469869887525251023e-03, ++ 6.88160659323871527759e-03, ++ 6.93522234316026366108e-03, ++ 6.98554332331408935064e-03, ++ 7.03256835345506155222e-03, ++ 7.07629769010476809138e-03, ++ 7.11673301765615093362e-03, ++ 7.15387743890304877992e-03, ++ 7.18773546500291789924e-03, ++ 7.21831300488032408247e-03, ++ 7.24561735407938580650e-03, ++ 7.26965718307318129604e-03, ++ 7.29044252503875406940e-03, ++ 7.30798476310635155423e-03, ++ 7.32229661709144288850e-03, ++ 7.33339212971884264747e-03, ++ 7.34128665234775375920e-03, ++ 7.34599683020745793799e-03, ++ 7.34754058715258225737e-03, ++ 7.34593710994830336597e-03, ++ 7.34120683209452638829e-03, ++ 7.33337141719967496728e-03, ++ 7.32245374191355016119e-03, ++ 7.30847787843014878861e-03, ++ 7.29146907657012011139e-03, ++ 7.27145374545387114529e-03, ++ 7.24845943477565521351e-03, ++ 7.22251481568945107037e-03, ++ 7.19364966131744686118e-03, ++ 7.16189482689201083881e-03, ++ 7.12728222954231872138e-03, ++ 7.08984482773655864257e-03, ++ 7.04961660039112210374e-03, ++ 7.00663252565801673161e-03, ++ 6.96092855940177307472e-03, ++ 6.91254161337735619636e-03, ++ 6.86150953312070904788e-03, ++ 6.80787107556324582597e-03, ++ 6.75166588638215301593e-03, ++ 6.69293447709806265528e-03, ++ 6.63171820193170571955e-03, ++ 6.56805923443159328512e-03, ++ 6.50200054388410785683e-03, ++ 6.43358587151825807998e-03, ++ 6.36285970651646794888e-03, ++ 6.28986726184373092646e-03, ++ 6.21465444990643503531e-03, ++ 6.13726785805332464285e-03, ++ 6.05775472392990760317e-03, ++ 5.97616291069856791357e-03, ++ 5.89254088213594148099e-03, ++ 5.80693767761965816410e-03, ++ 5.71940288701587758180e-03, ++ 5.62998662548002196115e-03, ++ 5.53873950818146131014e-03, ++ 5.44571262496510149348e-03, ++ 5.35095751496040238082e-03, ++ 5.25452614115022934027e-03, ++ 5.15647086491062122543e-03, ++ 5.05684442053339500839e-03, ++ 4.95569988974256699088e-03, ++ 4.85309067621648645985e-03, ++ 4.74907048012647350216e-03, ++ 4.64369327270371719946e-03, ++ 4.53701327084515566163e-03, ++ 4.42908491176951992635e-03, ++ 4.31996282773485212186e-03, ++ 4.20970182082771107734e-03, ++ 4.09835683783572966160e-03, ++ 3.98598294521311340144e-03, ++ 3.87263530415101094040e-03, ++ 3.75836914576165720403e-03, ++ 3.64323974638825019007e-03, ++ 3.52730240304928790995e-03, ++ 3.41061240902878646739e-03, ++ 3.29322502962129748730e-03, ++ 3.17519547804233142826e-03, ++ 3.05657889151338601694e-03, ++ 2.93743030753160130203e-03, ++ 2.81780464033296821486e-03, ++ 2.69775665755896121301e-03, ++ 2.57734095713514719389e-03, ++ 2.45661194437134461702e-03, ++ 2.33562380929147129019e-03, ++ 2.21443050420279223534e-03, ++ 2.09308572151161147862e-03, ++ 1.97164287179554201940e-03, ++ 1.85015506213867531038e-03, ++ 1.72867507473943343883e-03, ++ 1.60725534579748128607e-03, ++ 1.48594794468843234732e-03, ++ 1.36480455343317803527e-03, ++ 1.24387644646943291808e-03, ++ 1.12321447073277739387e-03, ++ 1.00286902605367005473e-03, ++ 8.82890045877847201225e-04, ++ 7.63326978315998568199e-04, ++ 6.44228767529792380013e-04, ++ 5.25643835459782418976e-04, ++ 4.07620063901896608968e-04, ++ 2.90204776937506045247e-04, ++ 1.73444723723805766706e-04, ++ 5.73860616484244659592e-05, ++-5.79256601447129809831e-05, ++-1.72445516855139978872e-04, ++-2.86129223744603178401e-04, ++-3.98933151471683798521e-04, ++-5.10814341036775051638e-04, ++-6.21730518333987194034e-04, ++-7.31640108305292775383e-04, ++-8.40502248693749103720e-04, ++-9.48276803391555388537e-04, ++-1.05492437538016840815e-03, ++-1.16040631925863960139e-03, ++-1.26468475335793167046e-03, ++-1.36772257143744795961e-03, ++-1.46948345396231690001e-03, ++-1.56993187895820992227e-03, ++-1.66903313244173671925e-03, ++-1.76675331842487395514e-03, ++-1.86305936849075486246e-03, ++-1.95791905094055886799e-03, ++-2.05130097950870097026e-03, ++-2.14317462164644121497e-03, ++-2.23351030637205421117e-03, ++-2.32227923168745655630e-03, ++-2.40945347156019864382e-03, ++-2.49500598247101752769e-03, ++-2.57891060952624437755e-03, ++-2.66114209213571661222e-03, ++-2.74167606925580006200e-03, ++-2.82048908419860059130e-03, ++-2.89755858900738426376e-03, ++-2.97286294839969704451e-03, ++-3.04638144327833843006e-03, ++-3.11809427381250833106e-03, ++-3.18798256208930414976e-03, ++-3.25602835433819615824e-03, ++-3.32221462272949338845e-03, ++-3.38652526674922864716e-03, ++-3.44894511415224942069e-03, ++-3.50945992149601917673e-03, ++-3.56805637425754813494e-03, ++-3.62472208653601482564e-03, ++-3.67944560034401835918e-03, ++-3.73221638449032109761e-03, ++-3.78302483305743104600e-03, ++-3.83186226347697993233e-03, ++-3.87872091420681094562e-03, ++-3.92359394201303914723e-03, ++-3.96647541886111301701e-03, ++-4.00736032841956212047e-03, ++-4.04624456218095809173e-03, ++-4.08312491520368761599e-03, ++-4.11799908147960237043e-03, ++-4.15086564893147550587e-03, ++-4.18172409404541419592e-03, ++-4.21057477614258761356e-03, ++-4.23741893129556731340e-03, ++-4.26225866589410255086e-03, ++-4.28509694986558761776e-03, ++-4.30593760955555893838e-03, ++-4.32478532027361865092e-03, ++-4.34164559851025946141e-03, ++-4.35652479383043678834e-03, ++-4.36943008044940375129e-03, ++-4.38036944849687272935e-03, ++-4.38935169497548655082e-03, ++-4.39638641441941844384e-03, ++-4.40148398925969356471e-03, ++-4.40465557990201740657e-03, ++-4.40591311452397972614e-03, ++-4.40526927859759102890e-03, ++-4.40273750414399336200e-03, ++-4.39833195872687317957e-03, ++-4.39206753419116562726e-03, ++-4.38395983515392842489e-03, ++-4.37402516725410826781e-03, ++-4.36228052516814471251e-03, ++-4.34874358039834783829e-03, ++-4.33343266884099378305e-03, ++-4.31636677814128347924e-03, ++-4.29756553484226828249e-03, ++-4.27704919133478460302e-03, ++-4.25483861261575103258e-03, ++-4.23095526286197242544e-03, ++-4.20542119182673330285e-03, ++-4.17825902106652539991e-03, ++-4.14949193000528453179e-03, ++-4.11914364184333848390e-03, ++-4.08723840931864319803e-03, ++-4.05380100032764340012e-03, ++-4.01885668341308427420e-03, ++-3.98243121312639048598e-03, ++-3.94455081527187324114e-03, ++-3.90524217204034265055e-03, ++-3.86453240703949710971e-03, ++-3.82244907022857112119e-03, ++-3.77902012276458334344e-03, ++-3.73427392176791782957e-03, ++-3.68823920501411533363e-03, ++-3.64094507555994461798e-03, ++-3.59242098631046497328e-03, ++-3.54269672453505143905e-03, ++-3.49180239633924225512e-03, ++-3.43976841109999795926e-03, ++-3.38662546587152699790e-03, ++-3.33240452976901182711e-03, ++-3.27713682833726460339e-03, ++-3.22085382791172753977e-03, ++-3.16358721997866921757e-03, ++-3.10536890554190866259e-03, ++-3.04623097950279270868e-03, ++-2.98620571506079835605e-03, ++-2.92532554814109750294e-03, ++-2.86362306185669341502e-03, ++-2.80113097101106212072e-03, ++-2.73788210664884781517e-03, ++-2.67390940066071719841e-03, ++-2.60924587044905360173e-03, ++-2.54392460366138209102e-03, ++-2.47797874299740972931e-03, ++-2.41144147109654920225e-03, ++-2.34434599551184728525e-03, ++-2.27672553377682423265e-03, ++-2.20861329857108918892e-03, ++-2.14004248299099744321e-03, ++-2.07104624593109319652e-03, ++-2.00165769758243626206e-03, ++-1.93190988505322330110e-03, ++-1.86183577811795423693e-03, ++-1.79146825509988766485e-03, ++-1.72084008889326943795e-03, ++-1.64998393312966343087e-03, ++-1.57893230849462818527e-03, ++-1.50771758919912264932e-03, ++-1.43637198961127387532e-03, ++-1.36492755105304883201e-03, ++-1.29341612876705033125e-03, ++-1.22186937905778840625e-03, ++-1.15031874661246304344e-03, ++-1.07879545200534983015e-03, ++-1.00733047939059738862e-03, ++-9.35954564387392199190e-04, ++-8.64698182161781326270e-04, ++-7.93591535709335898878e-04, ++-7.22664544342259342231e-04, ++-6.51946832385152269008e-04, ++-5.81467718082645003419e-04, ++-5.11256202723101406751e-04, ++-4.41340959980976682391e-04, ++-3.71750325482115011495e-04, ++-3.02512286594312090893e-04, ++-2.33654472446860898751e-04, ++-1.65204144181543805632e-04, ++-9.71881854382950145007e-05, ++-2.96330930778333087529e-05, ++ 3.74350318557888840534e-05, ++ 1.03990492930665522531e-04, ++ 1.70008006877860913661e-04, ++ 2.35462711895771908792e-04, ++ 3.00330175705594570618e-04, ++ 3.64586403356421419591e-04, ++ 4.28207844777551787079e-04, ++ 4.91171402077186748311e-04, ++ 5.53454436585029511952e-04, ++ 6.15034775638214118408e-04, ++ 6.75890719108685204992e-04, ++ 7.36001045671158494674e-04, ++ 7.95345018810736208159e-04, ++ 8.53902392568785988461e-04, ++ 9.11653417026953884206e-04, ++ 9.68578843528107927274e-04, ++ 1.02465992963409239201e-03, ++ 1.07987844381954517861e-03, ++ 1.13421666990184857697e-03, ++ 1.18765741120669863183e-03, ++ 1.24018399446962118877e-03, ++ 1.29178027347317181048e-03, ++ 1.34243063242041153760e-03, ++ 1.39211998904448393775e-03, ++ 1.44083379745542361494e-03, ++ 1.48855805072399061464e-03, ++ 1.53527928320389963832e-03, ++ 1.58098457259274222282e-03, ++ 1.62566154173287799080e-03, ++ 1.66929836015300469068e-03, ++ 1.71188374535185877309e-03, ++ 1.75340696382495094506e-03, ++ 1.79385783183615881223e-03, ++ 1.83322671593499951850e-03, ++ 1.87150453322187351919e-03, ++ 1.90868275136241117781e-03, ++ 1.94475338835288632730e-03, ++ 1.97970901203875114180e-03, ++ 2.01354273938795765367e-03, ++ 2.04624823552140497340e-03, ++ 2.07781971250251560127e-03, ++ 2.10825192788842950831e-03, ++ 2.13754018304492627786e-03, ++ 2.16568032122775241954e-03, ++ 2.19266872543273649843e-03, ++ 2.21850231601753312277e-03, ++ 2.24317854809751244041e-03, ++ 2.26669540871874157159e-03, ++ 2.28905141381085521987e-03, ++ 2.31024560492300908704e-03, ++ 2.33027754574556848419e-03, ++ 2.34914731842113299123e-03, ++ 2.36685551964774167771e-03, ++ 2.38340325657774047483e-03, ++ 2.39879214251553785076e-03, ++ 2.41302429241780800814e-03, ++ 2.42610231819949092105e-03, ++ 2.43802932384921434983e-03, ++ 2.44880890035772524199e-03, ++ 2.45844512046309356806e-03, ++ 2.46694253321619750424e-03, ++ 2.47430615837057783779e-03, ++ 2.48054148060029584083e-03, ++ 2.48565444354972896537e-03, ++ 2.48965144371932805070e-03, ++ 2.49253932419119233338e-03, ++ 2.49432536819870756192e-03, ++ 2.49501729254406187306e-03, ++ 2.49462324086802481049e-03, ++ 2.49315177677595679884e-03, ++ 2.49061187682437026880e-03, ++ 2.48701292337218105022e-03, ++ 2.48236469730101589823e-03, ++ 2.47667737060877201499e-03, ++ 2.46996149888082565729e-03, ++ 2.46222801364318543901e-03, ++ 2.45348821460201170497e-03, ++ 2.44375376177385136151e-03, ++ 2.43303666751100867299e-03, ++ 2.42134928842652587602e-03, ++ 2.40870431722312039469e-03, ++ 2.39511477443066006163e-03, ++ 2.38059400005651662299e-03, ++ 2.36515564515335941637e-03, ++ 2.34881366330883401689e-03, ++ 2.33158230206161314751e-03, ++ 2.31347609424828503169e-03, ++ 2.29450984928561332182e-03, ++ 2.27469864439260342423e-03, ++ 2.25405781575686164908e-03, ++ 2.23260294964972971082e-03, ++ 2.21034987349466626252e-03, ++ 2.18731464689328946802e-03, ++ 2.16351355261355186160e-03, ++ 2.13896308754443764677e-03, ++ 2.11367995362164717843e-03, ++ 2.08768104872860673846e-03, ++ 2.06098345757712827012e-03, ++ 2.03360444257223585765e-03, ++ 2.00556143466523338278e-03, ++ 1.97687202419953838434e-03, ++ 1.94755395175337346625e-03, ++ 1.91762509898370150235e-03, ++ 1.88710347947544372464e-03, ++ 1.85600722960030926380e-03, ++ 1.82435459938927956557e-03, ++ 1.79216394342290039413e-03, ++ 1.75945371174334418141e-03, ++ 1.72624244079242210488e-03, ++ 1.69254874437936271916e-03, ++ 1.65839130468247841071e-03, ++ 1.62378886328829906069e-03, ++ 1.58876021227249563002e-03, ++ 1.55332418532590395277e-03, ++ 1.51749964892962602506e-03, ++ 1.48130549358308134279e-03, ++ 1.44476062508820820261e-03, ++ 1.40788395589385340219e-03, ++ 1.37069439650360901800e-03, ++ 1.33321084695073701146e-03, ++ 1.29545218834344489506e-03, ++ 1.25743727448406820806e-03, ++ 1.21918492356532437090e-03, ++ 1.18071390994699786103e-03, ++ 1.14204295601606406994e-03, ++ 1.10319072413361980722e-03, ++ 1.06417580867146756643e-03, ++ 1.02501672814153568618e-03, ++ 9.85731917420752321024e-04, ++ 9.46339720074761028661e-04, ++ 9.06858380782653099826e-04, ++ 8.67306037865940180828e-04, ++ 8.27700715924154601863e-04, ++ 7.88060318579825755218e-04, ++ 7.48402621335140681366e-04, ++ 7.08745264542995573667e-04, ++ 6.69105746494616255432e-04, ++ 6.29501416626196083105e-04, ++ 5.89949468846577432593e-04, ++ 5.50466934988384673337e-04, ++ 5.11070678384569518186e-04, ++ 4.71777387572266644969e-04, ++ 4.32603570126133903009e-04, ++ 3.93565546622840108093e-04, ++ 3.54679444738640930936e-04, ++ 3.15961193481461178213e-04, ++ 2.77426517559644606348e-04, ++ 2.39090931888283949464e-04, ++ 2.00969736235134577339e-04, ++ 1.63078010007227617185e-04, ++ 1.25430607179671989044e-04, ++ 8.80421513676910678318e-05, ++ 5.09270310433270975443e-05, ++ 1.40993948977051206995e-05, ++-2.24268526499689963992e-05, ++-5.86380557959355767418e-05, ++-9.45208115468090933828e-05, ++-1.30061973765318488264e-04, ++-1.65248657065980185041e-04, ++-2.00068240560348736649e-04, ++-2.34508371450769772170e-04, ++-2.68556968472767403858e-04, ++-3.02202225185153135114e-04, ++-3.35432613107714699702e-04, ++-3.68236884706315019053e-04, ++-4.00604076224976460123e-04, ++-4.32523510365022737217e-04, ++-4.63984798811095579957e-04, ++-4.94977844604242624843e-04, ++-5.25492844361963827582e-04, ++-5.55520290345540247376e-04, ++-5.85050972374773735341e-04, ++-6.14075979590610184985e-04, ++-6.42586702065795259929e-04, ++-6.70574832264203037069e-04, ++-6.98032366349193725621e-04, ++-7.24951605341828033552e-04, ++-7.51325156129156322866e-04, ++-7.77145932323820387393e-04, ++-8.02407154975299293648e-04, ++-8.27102353133903219450e-04, ++-8.51225364268258727699e-04, ++-8.74770334537431802288e-04, ++-8.97731718918501797773e-04, ++-9.20104281190827605862e-04, ++-9.41883093778050233848e-04, ++-9.63063537449165905750e-04, ++-9.83641300879760935652e-04, ++-1.00361238007481306557e-03, ++-1.02297307765449128208e-03, ++-1.04172000200423238610e-03, ++-1.05985006629069969386e-03, ++-1.07736048734502422482e-03, ++-1.09424878441514257174e-03, ++-1.11051277778848088776e-03, ++-1.12615058728708443934e-03, ++-1.14116063063659394818e-03, ++-1.15554162171100749217e-03, ++-1.16929256865495575027e-03, ++-1.18241277188544584124e-03, ++-1.19490182197486941203e-03, ++-1.20675959741726535404e-03, ++-1.21798626227982297217e-03, ++-1.22858226374166065384e-03, ++-1.23854832952187280184e-03, ++-1.24788546519901061629e-03, ++-1.25659495142406364872e-03, ++-1.26467834102919943727e-03, ++-1.27213745603428412742e-03, ++-1.27897438455362244883e-03, ++-1.28519147760499177768e-03, ++-1.29079134582336268501e-03, ++-1.29577685608154116216e-03, ++-1.30015112802015094483e-03, ++-1.30391753048923449490e-03, ++-1.30707967790388737521e-03, ++-1.30964142651636395419e-03, ++-1.31160687060702277167e-03, ++-1.31298033859659005196e-03, ++-1.31376638908218385492e-03, ++-1.31396980679961724973e-03, ++-1.31359559851441281067e-03, ++-1.31264898884408520024e-03, ++-1.31113541601419526274e-03, ++-1.30906052755070225271e-03, ++-1.30643017591116055581e-03, ++-1.30325041405731484843e-03, ++-1.29952749097163636725e-03, ++-1.29526784712039586857e-03, ++-1.29047810986578645812e-03, ++-1.28516508882973415524e-03, ++-1.27933577121191956356e-03, ++-1.27299731706460124078e-03, ++-1.26615705452684046764e-03, ++-1.25882247502064623448e-03, ++-1.25100122841167137044e-03, ++-1.24270111813698665680e-03, ++-1.23393009630251375940e-03, ++-1.22469625875265661526e-03, ++-1.21500784011470538623e-03, ++-1.20487320882053006339e-03, ++-1.19430086210808427544e-03, ++-1.18329942100529298017e-03, ++-1.17187762529875026674e-03, ++-1.16004432848981092231e-03, ++-1.14780849274044756403e-03, ++-1.13517918381147498753e-03, ++-1.12216556599544479457e-03, ++-1.10877689704675665670e-03, ++-1.09502252311132830878e-03, ++-1.08091187365826806380e-03, ++-1.06645445641585442931e-03, ++-1.05165985231426076241e-03, ++-1.03653771043727446592e-03, ++-1.02109774298538512859e-03, ++-1.00534972025243104707e-03, ++-9.89303465618205854493e-04, ++-9.72968850559070386023e-04, ++-9.56355789678956110487e-04, ++-9.39474235762757228438e-04, ++-9.22334174854466432199e-04, ++-9.04945621361946477522e-04, ++-8.87318613190598128385e-04, ++-8.69463206907894578697e-04, ++-8.51389472940857513876e-04, ++-8.33107490808391681729e-04, ++-8.14627344390523211622e-04, ++-7.95959117236444131487e-04, ++-7.77112887913182157074e-04, ++-7.58098725396869001399e-04, ++-7.38926684508335205812e-04, ++-7.19606801394884719458e-04, ++-7.00149089059903611230e-04, ++-6.80563532942129469604e-04, ++-6.60860086546161931871e-04, ++-6.41048667125920334890e-04, ++-6.21139151422514545521e-04, ++-6.01141371458319205383e-04, ++-5.81065110388481308873e-04, ++-5.60920098411564179222e-04, ++-5.40716008740645473485e-04, ++-5.20462453636329636791e-04, ++-5.00168980502928035153e-04, ++-4.79845068049252442000e-04, ++-4.59500122515179752151e-04, ++-4.39143473965308969373e-04, ++-4.18784372650737749064e-04, ++-3.98431985440370181519e-04, ++-3.78095392322528038760e-04, ++-3.57783582978218623466e-04, ++-3.37505453426840712917e-04, ++-3.17269802745462131330e-04, ++-2.97085329862539673351e-04, ++-2.76960630426857884294e-04, ++-2.56904193752789059696e-04, ++-2.36924399842341755311e-04, ++-2.17029516485020210204e-04, ++-1.97227696436049984184e-04, ++-1.77526974673721080374e-04, ++-1.57935265736364822877e-04, ++-1.38460361139671443579e-04, ++-1.19109926874780676581e-04, ++-9.98915009877096604120e-05, ++-8.08124912404658787314e-05, ++-6.18801728543761411219e-05, ++-4.31016863358901726119e-05, ++-2.44840353852607290751e-05, ++-6.03408488822807525549e-06, ++ 1.22414410087942923482e-05, ++ 3.03359607401630166279e-05, ++ 4.82430370786643698930e-05, ++ 6.59563788094303331657e-05, ++ 8.34698423199615796228e-05, ++ 1.00777433106333784039e-04, ++ 1.17873307195481496850e-04, ++ 1.34751772483674884346e-04, ++ 1.51407289991337552218e-04, ++ 1.67834475034225882872e-04, ++ 1.84028098311239825778e-04, ++ 1.99983086909011169297e-04, ++ 2.15694525223608961004e-04, ++ 2.31157655799539194473e-04, ++ 2.46367880086458945071e-04, ++ 2.61320759113890506518e-04, ++ 2.76012014084471178285e-04, ++ 2.90437526885940853344e-04, ++ 3.04593340522622661477e-04, ++ 3.18475659466672001308e-04, ++ 3.32080849929764377465e-04, ++ 3.45405440055728798956e-04, ++ 3.58446120034815369788e-04, ++ 3.71199742140139986053e-04, ++ 3.83663320687053425832e-04, ++ 3.95834031916090828447e-04, ++ 4.07709213800306149479e-04, ++ 4.19286365777668133727e-04, ++ 4.30563148409382728376e-04, ++ 4.41537382964913725693e-04, ++ 4.52207050934656925797e-04, ++ 4.62570293470961546242e-04, ++ 4.72625410758635230730e-04, ++ 4.82370861315684551149e-04, ++ 4.91805261225328150740e-04, ++ 5.00927383300294468485e-04, ++ 5.09736156180340470138e-04, ++ 5.18230663364083014855e-04, ++ 5.26410142176160977465e-04, ++ 5.34273982670858136115e-04, ++ 5.41821726473215733132e-04, ++ 5.49053065558819199977e-04, ++ 5.55967840973343140065e-04, ++ 5.62566041493084596781e-04, ++ 5.68847802227587348751e-04, ++ 5.74813403165606124842e-04, ++ 5.80463267665585255090e-04, ++ 5.85797960891953992807e-04, ++ 5.90818188198352634011e-04, ++ 5.95524793459205619046e-04, ++ 5.99918757350793364382e-04, ++ 6.04001195583171897330e-04, ++ 6.07773357084216074402e-04, ++ 6.11236622137123529822e-04, ++ 6.14392500472671181100e-04, ++ 6.17242629317575641247e-04, ++ 6.19788771400296852575e-04, ++ 6.22032812915646266330e-04, ++ 6.23976761449542352556e-04, ++ 6.25622743865282679096e-04, ++ 6.26973004152734866845e-04, ++ 6.28029901241785953013e-04, ++ 6.28795906781460817864e-04, ++ 6.29273602886090081127e-04, ++ 6.29465679849935955126e-04, ++ 6.29374933831637162034e-04, ++ 6.29004264509917614644e-04, ++ 6.28356672711923979618e-04, ++ 6.27435258015602670238e-04, ++ 6.26243216327530610385e-04, ++ 6.24783837437580067548e-04, ++ 6.23060502551831571320e-04, ++ 6.21076681805128117189e-04, ++ 6.18835931754663313292e-04, ++ 6.16341892855999597296e-04, ++ 6.13598286922899423257e-04, ++ 6.10608914572360016171e-04, ++ 6.07377652656219848941e-04, ++ 6.03908451680720608987e-04, ++ 6.00205333215381750360e-04, ++ 5.96272387292547546150e-04, ++ 5.92113769798962869678e-04, ++ 5.87733699860716260477e-04, ++ 5.83136457222883410056e-04, ++ 5.78326379625196070923e-04, ++ 5.73307860175058681823e-04, ++ 5.68085344719199331932e-04, ++ 5.62663329215264671791e-04, ++ 5.57046357104629347515e-04, ++ 5.51239016687691835844e-04, ++ 5.45245938502918582949e-04, ++ 5.39071792710859535452e-04, ++ 5.32721286484389919269e-04, ++ 5.26199161406370888652e-04, ++ 5.19510190875949965511e-04, ++ 5.12659177524647379116e-04, ++ 5.05650950643461694588e-04, ++ 4.98490363622070692395e-04, ++ 4.91182291401325650700e-04, ++ 4.83731627940122419548e-04, ++ 4.76143283697776802978e-04, ++ 4.68422183132952726740e-04, ++ 4.60573262220249240485e-04, ++ 4.52601465985464203410e-04, ++ 4.44511746060588389465e-04, ++ 4.36309058259498746754e-04, ++ 4.27998360175392566791e-04, ++ 4.19584608800889610671e-04, ++ 4.11072758171783069880e-04, ++ 4.02467757035333936928e-04, ++ 3.93774546544049656484e-04, ++ 3.84998057975832470683e-04, ++ 3.76143210481313700240e-04, ++ 3.67214908859312392543e-04, ++ 3.58218041361136620669e-04, ++ 3.49157477524604336044e-04, ++ 3.40038066038525694287e-04, ++ 3.30864632638427479810e-04, ++ 3.21641978034209344382e-04, ++ 3.12374875870502510550e-04, ++ 3.03068070720368721877e-04, ++ 2.93726276113044930307e-04, ++ 2.84354172596324122988e-04, ++ 2.74956405834251703824e-04, ++ 2.65537584740686090270e-04, ++ 2.56102279649332684359e-04, ++ 2.46655020520732712157e-04, ++ 2.37200295186851598233e-04, ++ 2.27742547633623577692e-04, ++ 2.18286176322046336163e-04, ++ 2.08835532548216017655e-04, ++ 1.99394918842769620351e-04, ++ 1.89968587410093434423e-04, ++ 1.80560738607737464008e-04, ++ 1.71175519466368710516e-04, ++ 1.61817022250571095152e-04, ++ 1.52489283060860649410e-04, ++ 1.43196280477158617963e-04, ++ 1.33941934244020521144e-04, ++ 1.24730103997818122337e-04, ++ 1.15564588036148766046e-04, ++ 1.06449122129624024050e-04, ++ 9.73873783762444747338e-05, ++ 8.83829640984437603628e-05, ++ 7.94394207830501368397e-05, ++ 7.05602230641164422306e-05, ++ 6.17487777488439845697e-05, ++ 5.30084228865277819307e-05, ++ 4.43424268807018922721e-05, ++ 3.57539876443504868529e-05, ++ 2.72462317982963840894e-05, ++ 1.88222139126731892130e-05, ++ 1.04849157914673770899e-05, ++ 2.23724580001398245952e-06, ++-5.91796176458841909860e-06, ++-1.39779472603022615363e-05, ++-2.19400262443108254274e-05, ++-2.98015899747312779436e-05, ++-3.75601058699388188874e-05, ++-4.52131179258346812058e-05, ++-5.27582470911579511194e-05, ++-6.01931916011169823111e-05, ++-6.75157272696155086192e-05, ++-7.47237077402686759994e-05, ++-8.18150646965978259242e-05, ++-8.87878080315813176041e-05, ++-9.56400259770174112402e-05, ++-1.02369885192932295447e-04, ++-1.08975630817447491838e-04, ++-1.15455586477445233109e-04, ++-1.21808154260462635915e-04, ++-1.28031814648165977134e-04, ++-1.34125126411867404445e-04, ++-1.40086726470483718130e-04, ++-1.45915329711446663599e-04, ++-1.51609728774925367391e-04, ++-1.57168793801964925671e-04, ++-1.62591472146915872604e-04, ++-1.67876788054762332352e-04, ++-1.73023842303760092562e-04, ++-1.78031811814023872061e-04, ++-1.82899949222519527144e-04, ++-1.87627582425063416539e-04, ++-1.92214114085866635134e-04, ++-1.96659021115234305434e-04, ++-2.00961854115964548605e-04, ++-2.05122236799067813760e-04, ++-2.09139865369424642018e-04, ++-2.13014507881963919287e-04, ++-2.16746003569016719827e-04, ++-2.20334262139455170628e-04, ++-2.23779263050288623272e-04, ++-2.27081054751326671731e-04, ++-2.30239753903598189230e-04, ++-2.33255544572162539776e-04, ++-2.36128677394024743099e-04, ++-2.38859468721759089912e-04, ++-2.41448299743606627134e-04, ++-2.43895615580664562507e-04, ++-2.46201924361897988517e-04, ++-2.48367796277648787261e-04, ++-2.50393862612362249915e-04, ++-2.52280814757210175570e-04, ++-2.54029403203337271477e-04, ++-2.55640436516424906718e-04, ++-2.57114780293308988878e-04, ++-2.58453356101321892260e-04, ++-2.59657140401130335366e-04, ++-2.60727163453730896234e-04, ++-2.61664508212373382850e-04, ++-2.62470309200077975623e-04, ++-2.63145751373508769710e-04, ++-2.63692068973905575490e-04, ++-2.64110544365773612825e-04, ++-2.64402506864084673854e-04, ++-2.64569331550674807438e-04, ++-2.64612438080565591254e-04, ++-2.64533289478916812908e-04, ++-2.64333390929326621406e-04, ++-2.64014288554176887285e-04, ++-2.63577568187730454374e-04, ++-2.63024854142685936189e-04, ++-2.62357807970878796362e-04, ++-2.61578127218826830911e-04, ++-2.60687544178804346540e-04, ++-2.59687824636131118095e-04, ++-2.58580766613355161020e-04, ++-2.57368199111998000473e-04, ++-2.56051980852535184582e-04, ++-2.54633999013272917245e-04, ++-2.53116167968770410229e-04, ++-2.51500428028467203686e-04, ++-2.49788744176148520739e-04, ++-2.47983104810888498049e-04, ++-2.46085520490098991209e-04, ++-2.44098022675305284133e-04, ++-2.42022662481256641692e-04, ++-2.39861509428983846149e-04, ++-2.37616650203396260988e-04, ++-2.35290187416002671578e-04, ++-2.32884238373345356290e-04, ++-2.30400933851706944807e-04, ++-2.27842416878660760553e-04, ++-2.25210841522004905167e-04, ++-2.22508371686640725982e-04, ++-2.19737179919906623887e-04, ++-2.16899446225907947382e-04, ++-2.13997356889345798732e-04, ++-2.11033103309352538255e-04, ++-2.08008880843819519632e-04, ++-2.04926887664708660573e-04, ++-2.01789323624807442155e-04, ++-1.98598389136399967663e-04, ++-1.95356284062287273917e-04, ++-1.92065206619610498147e-04, ++-1.88727352296894345393e-04, ++-1.85344912784731391314e-04, ++-1.81920074920499755819e-04, ++-1.78455019647530454055e-04, ++-1.74951920989073971512e-04, ++-1.71412945037461607323e-04, ++-1.67840248958807175192e-04, ++-1.64235980013589989322e-04, ++-1.60602274593463965847e-04, ++-1.56941257274607583660e-04, ++-1.53255039887926981963e-04, ++-1.49545720606400077326e-04, ++-1.45815383049865629223e-04, ++-1.42066095407511174204e-04, ++-1.38299909578337953649e-04, ++-1.34518860329830815736e-04, ++-1.30724964475093245915e-04, ++-1.26920220068654472992e-04, ++-1.23106605621173758290e-04, ++-1.19286079333219134950e-04, ++-1.15460578348350841244e-04, ++-1.11632018025632952099e-04, ++-1.07802291231779830637e-04, ++-1.03973267653065606659e-04, ++-1.00146793127148565233e-04, ++-9.63246889949230804435e-05, ++-9.25087514725346873358e-05, ++-8.87007510436452450671e-05, ++-8.49024318720545515026e-05, ++-8.11155112347393549661e-05, ++-7.73416789754019609908e-05, ++-7.35825969785674924512e-05, ++-6.98398986642887023612e-05, ++-6.61151885034750767074e-05, ++-6.24100415538899748772e-05, ++-5.87260030168200428450e-05, ++-5.50645878143974986741e-05, ++-5.14272801876128782695e-05, ++-4.78155333149380714058e-05, ++-4.42307689515766361233e-05, ++-4.06743770892715146635e-05, ++-3.71477156366324749162e-05, ++-3.36521101199027279356e-05, ++-3.01888534041130525139e-05, ++-2.67592054345224943665e-05, ++-2.33643929982665948157e-05, ++-2.00056095060906951114e-05, ++-1.66840147940797201324e-05, ++-1.34007349452439661363e-05, ++-1.01568621308437851693e-05, ++-6.95345447128813701427e-06, ++-3.79153591650250810366e-06, ++-6.72096145553293655593e-07, ++ 2.40390951459279597616e-06, ++ 5.43556015137456058426e-06, ++ 8.42196931017640123499e-06, ++ 1.13622850193110927676e-05, ++ 1.42556897966238257746e-05, ++ 1.71014006379341248229e-05, ++ 1.98986689875390831126e-05, ++ 2.26467806909793172563e-05, ++ 2.53450559303131682314e-05, ++ 2.79928491421220740245e-05, ++ 3.05895489185053302676e-05, ++ 3.31345778912925430443e-05, ++ 3.56273925997451632237e-05, ++ 3.80674833419947510364e-05, ++ 4.04543740105068599521e-05, ++ 4.27876219118044463113e-05, ++ 4.50668175707753267513e-05, ++ 4.72915845198089502860e-05, ++ 4.94615790730713200283e-05, ++ 5.15764900862005805371e-05, ++ 5.36360387017334339240e-05, ++ 5.56399780805481871900e-05, ++ 5.75880931196438774090e-05, ++ 5.94802001565561985590e-05, ++ 6.13161466607366493955e-05, ++ 6.30958109121965409621e-05, ++ 6.48191016677504891876e-05, ++ 6.64859578151715343739e-05, ++ 6.80963480156043240521e-05, ++ 6.96502703345347587470e-05, ++ 7.11477518616810702089e-05, ++ 7.25888483201263885920e-05, ++ 7.39736436650163245096e-05, ++ 7.53022496721903708853e-05, ++ 7.65748055170595645635e-05, ++ 7.77914773440878826866e-05, ++ 7.89524578272120806021e-05, ++ 8.00579657215541123884e-05, ++ 8.11082454067584148567e-05, ++ 8.21035664223097817662e-05, ++ 8.30442229951717527346e-05, ++ 8.39305335600990616227e-05, ++ 8.47628402729624154692e-05, ++ 8.55415085174379832356e-05, ++ 8.62669264054029689666e-05, ++ 8.69395042713942022743e-05, ++ 8.75596741614536786501e-05, ++ 8.81278893167311284636e-05, ++ 8.86446236521661512422e-05, ++ 8.91103712306026604075e-05, ++ 8.95256457326717546962e-05, ++ 8.98909799227875892661e-05, ++ 9.02069251115862640782e-05, ++ 9.04740506151490363976e-05, ++ 9.06929432113401867103e-05, ++ 9.08642065935940279782e-05, ++ 9.09884608224771455898e-05, ++ 9.10663417753510066833e-05, ++ 9.10985005944656069544e-05, ++ 9.10856031337957275460e-05, ++ 9.10283294049456589850e-05, ++ 9.09273730224310103125e-05, ++ 9.07834406486567112131e-05, ++ 9.05972514388884682737e-05, ++ 9.03695364865346147717e-05, ++ 9.01010382690298824038e-05, ++ 8.97925100946232214449e-05, ++ 8.94447155503604388049e-05, ++ 8.90584279515538464710e-05, ++ 8.86344297930203114553e-05, ++ 8.81735122023717546660e-05, ++ 8.76764743956322256668e-05, ++ 8.71441231354561004216e-05, ++ 8.65772721922116491981e-05, ++ 8.59767418081955635050e-05, ++ 8.53433581652348287718e-05, ++ 8.46779528559294970011e-05, ++ 8.39813623587842351167e-05, ++ 8.32544275174723505482e-05, ++ 8.24979930244696123580e-05, ++ 8.17129069092911340059e-05, ++ 8.09000200315580515319e-05, ++ 8.00601855791177764851e-05, ++ 7.91942585714318722121e-05, ++ 7.83030953684469709260e-05, ++ 7.73875531851490379041e-05, ++ 7.64484896120066966278e-05, ++ 7.54867621414943666810e-05, ++ 7.45032277008856680736e-05, ++ 7.34987421914997258445e-05, ++ 7.24741600345781298914e-05, ++ 7.14303337239639759421e-05, ++ 7.03681133857495075701e-05, ++ 6.92883463450485250238e-05, ++ 6.81918767000556897513e-05, ++ 6.70795449035298084342e-05, ++ 6.59521873518545653477e-05, ++ 6.48106359818019012913e-05, ++ 6.36557178751403541801e-05, ++ 6.24882548712000070136e-05, ++ 6.13090631875229413088e-05, ++ 6.01189530487050480105e-05, ++ 5.89187283235398522627e-05, ++ 5.77091861705600261078e-05, ++ 5.64911166920768371556e-05, ++ 5.52653025968012133018e-05, ++ 5.40325188711331935503e-05, ++ 5.27935324591918643858e-05, ++ 5.15491019516612150597e-05, ++ 5.02999772835162253098e-05, ++ 4.90468994406823114189e-05, ++ 4.77906001756943685883e-05, ++ 4.65318017323872241855e-05, ++ 4.52712165796745444508e-05, ++ 4.40095471544385224527e-05, ++ 4.27474856135762158195e-05, ++ 4.14857135952114382585e-05, ++ 4.02249019891050019768e-05, ++ 3.89657107162695045101e-05, ++ 3.77087885178019617646e-05, ++ 3.64547727529321324196e-05, ++ 3.52042892062907349744e-05, ++ 3.39579519043854685862e-05, ++ 3.27163629412759540162e-05, ++ 3.14801123134230239524e-05, ++ 3.02497777637023744978e-05, ++ 2.90259246345387218443e-05, ++ 2.78091057301432964695e-05, ++ 2.65998611878025348972e-05, ++ 2.53987183581919854364e-05, ++ 2.42061916946511448772e-05, ++ 2.30227826513813061706e-05, ++ 2.18489795905047869758e-05, ++ 2.06852576979222047276e-05, ++ 1.95320789079097866306e-05, ++ 1.83898918363816234168e-05, ++ 1.72591317227478167385e-05, ++ 1.61402203802856600485e-05, ++ 1.50335661549492530784e-05, ++ 1.39395638925266073790e-05, ++ 1.28585949140593193966e-05, ++ 1.17910269994264146578e-05, ++ 1.07372143790027249535e-05, ++ 9.69749773328629209753e-06, ++ 8.67220420039572420566e-06, ++ 7.66164739132314657512e-06, ++ 6.66612741284622437347e-06, ++ 5.68593089796976951548e-06, ++ 4.72133104379410701050e-06, ++ 3.77258765668374723169e-06, ++ 2.83994720461857994069e-06, ++ 1.92364287659795633360e-06, ++ 1.02389464897677183691e-06, ++ 1.40909358598783243636e-07, ++-7.25119217400925882488e-07, ++-1.57401027526573751796e-06, ++-2.40559589188401177682e-06, ++-3.21972092580435969379e-06, ++-4.01624291213239929447e-06, ++-4.79503195145223449727e-06, ++-5.55597059291959898474e-06, ++-6.29895371166915398527e-06, ++-7.02388838068995278969e-06, ++-7.73069373730662337714e-06, ++-8.41930084443043260571e-06, ++-9.08965254672049638874e-06, ++-9.74170332181420186798e-06, ++-1.03754191267770145960e-05, ++-1.09907772399306088372e-05, ++-1.15877660982095854786e-05, ++-1.21663851302071818753e-05, ++-1.27266445850638015879e-05, ++-1.32685653573596831328e-05, ++-1.37921788081646564831e-05, ++-1.42975265824070264185e-05, ++-1.47846604227169150120e-05, ++-1.52536419799077777845e-05, ++-1.57045426202454864190e-05, ++-1.61374432296745794440e-05, ++-1.65524340151509907705e-05, ++-1.69496143032443776877e-05, ++-1.73290923361651281922e-05, ++-1.76909850653765942752e-05, ++-1.80354179429455134585e-05, ++-1.83625247107888849940e-05, ++-1.86724471879742999741e-05, ++-1.89653350562250020523e-05, ++-1.92413456437866339777e-05, ++-1.95006437078064384194e-05, ++-1.97434012153796016272e-05, ++-1.99697971234102591856e-05, ++-2.01800171574394671614e-05, ++-2.03742535895865872536e-05, ++-2.05527050157544749519e-05, ++-2.07155761322383869926e-05, ++-2.08630775118898238230e-05, ++-2.09954253799722451970e-05, ++-2.11128413898529763743e-05, ++-2.12155523986690494219e-05, ++-2.13037902431062623279e-05, ++-2.13777915154254429865e-05, ++-2.14377973398712400380e-05, ++-2.14840531495946086989e-05, ++-2.15168084642204138245e-05, ++-2.15363166681862903517e-05, ++-2.15428347899803886579e-05, ++-2.15366232824005027408e-05, ++-2.15179458039577262574e-05, ++-2.14870690015422825217e-05, ++-2.14442622944694083432e-05, ++-2.13897976600211963056e-05, ++-2.13239494205938423077e-05, ++-2.12469940325636042692e-05, ++-2.11592098769767039874e-05, ++-2.10608770521689021838e-05, ++-2.09522771684173563140e-05, ++-2.08336931447246940868e-05, ++-2.07054090078323760555e-05, ++-2.05677096935581607638e-05, ++-2.04208808505498906150e-05, ++-2.02652086465450858026e-05, ++-2.01009795772225878085e-05, ++-1.99284802777307897448e-05, ++-1.97479973369733553508e-05, ++-1.95598171147313057406e-05, ++-1.93642255616965921713e-05, ++-1.91615080424908975211e-05, ++-1.89519491617392180451e-05, ++-1.87358325932659067312e-05, ++-1.85134409124775290410e-05, ++-1.82850554319945745078e-05, ++-1.80509560405904254164e-05, ++-1.78114210454942761765e-05, ++-1.75667270181107023892e-05, ++-1.73171486432067083623e-05, ++-1.70629585716134836285e-05, ++-1.68044272764881711800e-05, ++-1.65418229131769521309e-05, ++-1.62754111827191523261e-05, ++-1.60054551990284544996e-05, ++-1.57322153597849753270e-05, ++-1.54559492210684566130e-05, ++-1.51769113757617390406e-05, ++-1.48953533357483810943e-05, ++-1.46115234179280960335e-05, ++-1.43256666340692667526e-05, ++-1.40380245845161517285e-05, ++-1.37488353557644599467e-05, ++-1.34583334219182035850e-05, ++-1.31667495500361276861e-05, ++-1.28743107093750131593e-05, ++-1.25812399845332226092e-05, ++-1.22877564924967183814e-05, ++-1.19940753035859587103e-05, ++-1.17004073663007361519e-05, ++-1.14069594360560160192e-05, ++-1.11139340078022052344e-05, ++-1.08215292525168970740e-05, ++-1.05299389575568482923e-05, ++-1.02393524708539662493e-05, ++-9.94995464893742348120e-06, ++-9.66192580876271611343e-06, ++-9.37544168332491989210e-06, ++-9.09067338103246418157e-06, ++-8.80778734881422739372e-06, ++-8.52694533893248795902e-06, ++-8.24830437947059051977e-06, ++-7.97201674846333152320e-06, ++-7.69822995163491404110e-06, ++-7.42708670370925303302e-06, ++-7.15872491325360909230e-06, ++-6.89327767101633304933e-06, ++-6.63087324171573705124e-06, ++-6.37163505923899323223e-06, ++-6.11568172520321447157e-06, ++-5.86312701083429459631e-06, ++-5.61407986211404469277e-06, ++-5.36864440814655013182e-06, ++-5.12691997269171846217e-06, ++-4.88900108881444233564e-06, ++-4.65497751659457443244e-06, ++-4.42493426384305196255e-06, ++-4.19895160976678087265e-06, ++-3.97710513152554464493e-06, ++-3.75946573362158312445e-06, ++-3.54609968006129461300e-06, ++-3.33706862922910230812e-06, ++-3.13242967141053148128e-06, ++-2.93223536890220278037e-06, ++-2.73653379864365903313e-06, ++-2.54536859730841838172e-06, ++-2.35877900878616331091e-06, ++-2.17679993399191934131e-06, ++-1.99946198293410626841e-06, ++-1.82679152897453787459e-06, ++-1.65881076521146377169e-06, ++-1.49553776291791911430e-06, ++-1.33698653196547020166e-06, ++-1.18316708316432299485e-06, ++-1.03408549244911473199e-06, ++-8.89743966841013678409e-07, ++-7.50140912114827378233e-07, ++-6.15271002100918799020e-07, ++-4.85125249549975873449e-07, ++-3.59691078491283933177e-07, ++-2.38952398011216803052e-07, ++-1.22889677382464548894e-07, ++ 0 /* Need a final zero coefficient */ ++ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/float_cast.h k3b-r948463.patched/libk3b/plugin/libsamplerate/float_cast.h +--- k3b-r948463/libk3b/plugin/libsamplerate/float_cast.h 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/float_cast.h 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,205 @@ ++/* ++** Copyright (C) 2001-2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++/* Version 1.3 */ ++ ++ ++/*============================================================================ ++** On Intel Pentium processors (especially PIII and probably P4), converting ++** from float to int is very slow. To meet the C specs, the code produced by ++** most C compilers targeting Pentium needs to change the FPU rounding mode ++** before the float to int conversion is performed. ++** ++** Changing the FPU rounding mode causes the FPU pipeline to be flushed. It ++** is this flushing of the pipeline which is so slow. ++** ++** Fortunately the ISO C99 specifications define the functions lrint, lrintf, ++** llrint and llrintf which fix this problem as a side effect. ++** ++** On Unix-like systems, the configure process should have detected the ++** presence of these functions. If they weren't found we have to replace them ++** here with a standard C cast. ++*/ ++ ++/* ++** The C99 prototypes for lrint and lrintf are as follows: ++** ++** long int lrintf (float x) ; ++** long int lrint (double x) ; ++*/ ++ ++#include "config-k3b.h" ++ ++/* ++** The presence of the required functions are detected during the configure ++** process and the values HAVE_LRINT and HAVE_LRINTF are set accordingly in ++** the config.h file. ++*/ ++ ++#define HAVE_LRINT_REPLACEMENT 0 ++ ++#if (HAVE_LRINT && HAVE_LRINTF) ++ ++ /* ++ ** These defines enable functionality introduced with the 1999 ISO C ++ ** standard. They must be defined before the inclusion of math.h to ++ ** engage them. If optimization is enabled, these functions will be ++ ** inlined. With optimization switched off, you have to link in the ++ ** maths library using -lm. ++ */ ++ ++ #define _ISOC9X_SOURCE 1 ++ #define _ISOC99_SOURCE 1 ++ ++ #define __USE_ISOC9X 1 ++ #define __USE_ISOC99 1 ++ ++ #include <math.h> ++ ++#elif (defined (WIN32) || defined (_WIN32)) ++ ++ #undef HAVE_LRINT_REPLACEMENT ++ #define HAVE_LRINT_REPLACEMENT 1 ++ #include <math.h> ++ ++ /* ++ ** Win32 doesn't seem to have these functions. ++ ** Therefore implement inline versions of these functions here. ++ */ ++ ++ __inline long int ++ lrint (double flt) ++ { int intgr; ++ ++ _asm ++ { fld flt ++ fistp intgr ++ } ; ++ ++ return intgr ; ++ } ++ ++ __inline long int ++ lrintf (float flt) ++ { int intgr; ++ ++ _asm ++ { fld flt ++ fistp intgr ++ } ; ++ ++ return intgr ; ++ } ++ ++#elif (defined (__MWERKS__) && defined (macintosh)) ++ ++ /* This MacOS 9 solution was provided by Stephane Letz */ ++ ++ #undef HAVE_LRINT_REPLACEMENT ++ #define HAVE_LRINT_REPLACEMENT 1 ++ #include <math.h> ++ ++ #undef lrint ++ #undef lrintf ++ ++ #define lrint double2int ++ #define lrintf float2int ++ ++ inline int ++ float2int (register float in) ++ { long res [2] ; ++ ++ asm ++ { fctiw in,in ++ stfd in,res ++ } ++ return res [1] ; ++ } /* float2int */ ++ ++ inline int ++ double2int (register double in) ++ { long res [2] ; ++ ++ asm ++ { fctiw in,in ++ stfd in,res ++ } ++ return res [1] ; ++ } /* double2int */ ++ ++#elif (defined (__MACH__) && defined (__APPLE__)) ++ ++ /* For Apple MacOSX. */ ++ ++ #undef HAVE_LRINT_REPLACEMENT ++ #define HAVE_LRINT_REPLACEMENT 1 ++ #include <math.h> ++ ++ #undef lrint ++ #undef lrintf ++ ++ #define lrint double2int ++ #define lrintf float2int ++ ++ inline static long int ++ float2int (register float in) ++ { int res [2] ; ++ ++ __asm__ __volatile__ ++ ( "fctiw %1, %1\n\t" ++ "stfd %1, %0" ++ : "=m" (res) /* Output */ ++ : "f" (in) /* Input */ ++ : "memory" ++ ) ; ++ ++ return res [1] ; ++ } /* lrintf */ ++ ++ inline static long int ++ double2int (register double in) ++ { int res [2] ; ++ ++ __asm__ __volatile__ ++ ( "fctiw %1, %1\n\t" ++ "stfd %1, %0" ++ : "=m" (res) /* Output */ ++ : "f" (in) /* Input */ ++ : "memory" ++ ) ; ++ ++ return res [1] ; ++ } /* lrint */ ++ ++#else ++ #ifndef __sgi ++#ifdef __GNUC__ ++ #warning "Don't have the functions lrint() and lrintf()." ++#endif ++ #warning "Replacing these functions with a standard C cast." ++ #endif ++ ++ #include <math.h> ++ ++ #define lrint(dbl) ((int) (dbl)) ++ #define lrintf(flt) ((int) (flt)) ++ ++#endif ++ ++ ++ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/high_qual_coeffs.h k3b-r948463.patched/libk3b/plugin/libsamplerate/high_qual_coeffs.h +--- k3b-r948463/libk3b/plugin/libsamplerate/high_qual_coeffs.h 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/high_qual_coeffs.h 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,17116 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++/* ++** f = make_filter (65, 128, 100.3) ; ++** Pass band width : 0.0039062 (should be 0.0039062) ++** Stop band atten. : 101.20 dB ++** -3dB band width : 0.846 ++** half length : 17087 ++** increment : 128 ++*/ ++ ++ 9.73822959712628111184e-01, ++ 9.73730227534126968614e-01, ++ 9.73452062795049033461e-01, ++ 9.72988560871685836950e-01, ++ 9.72339880681256651940e-01, ++ 9.71506244617024061760e-01, ++ 9.70487938457503807044e-01, ++ 9.69285311249795999977e-01, ++ 9.67898775167100988703e-01, ++ 9.66328805340476049146e-01, ++ 9.64575939664910952942e-01, ++ 9.62640778579811451365e-01, ++ 9.60523984823974497083e-01, ++ 9.58226283165186876190e-01, ++ 9.55748460104550945360e-01, ++ 9.53091363555660264772e-01, ++ 9.50255902498805649081e-01, ++ 9.47243046610318550904e-01, ++ 9.44053825867236739988e-01, ++ 9.40689330127495004774e-01, ++ 9.37150708685763667027e-01, ++ 9.33439169805209578712e-01, ++ 9.29555980225306610620e-01, ++ 9.25502464645995059911e-01, ++ 9.21280005188352291157e-01, ++ 9.16890040832049391106e-01, ++ 9.12334066829837087020e-01, ++ 9.07613634099317501125e-01, ++ 9.02730348592271192310e-01, ++ 8.97685870641828032035e-01, ++ 8.92481914287746591619e-01, ++ 8.87120246580144211634e-01, ++ 8.81602686861939210949e-01, ++ 8.75931106030353401337e-01, ++ 8.70107425777795429056e-01, ++ 8.64133617812459453589e-01, ++ 8.58011703058984220860e-01, ++ 8.51743750839512703266e-01, ++ 8.45331878035551986805e-01, ++ 8.38778248230970913113e-01, ++ 8.32085070836509732572e-01, ++ 8.25254600196225540643e-01, ++ 8.18289134676235541122e-01, ++ 8.11191015736170029093e-01, ++ 8.03962626983747541409e-01, ++ 7.96606393212902830214e-01, ++ 7.89124779425847022729e-01, ++ 7.81520289839554460620e-01, ++ 7.73795466877067239508e-01, ++ 7.65952890144075193568e-01, ++ 7.57995175391232733908e-01, ++ 7.49924973462656851986e-01, ++ 7.41744969231072803773e-01, ++ 7.33457880520075322650e-01, ++ 7.25066457013996301662e-01, ++ 7.16573479155810266761e-01, ++ 7.07981757033636860399e-01, ++ 6.99294129256251117965e-01, ++ 6.90513461818149987259e-01, ++ 6.81642646954653708136e-01, ++ 6.72684601987533770107e-01, ++ 6.63642268161698578588e-01, ++ 6.54518609473419998857e-01, ++ 6.45316611490632463521e-01, ++ 6.36039280165809350898e-01, ++ 6.26689640641951539735e-01, ++ 6.17270736052177193542e-01, ++ 6.07785626313482429950e-01, ++ 5.98237386915153934730e-01, ++ 5.88629107702400733437e-01, ++ 5.78963891655698170702e-01, ++ 5.69244853666411754212e-01, ++ 5.59475119309209012464e-01, ++ 5.49657823611788054485e-01, ++ 5.39796109822496594788e-01, ++ 5.29893128176318617406e-01, ++ 5.19952034659813655537e-01, ++ 5.09975989775514948477e-01, ++ 4.99968157306331650869e-01, ++ 4.89931703080488667457e-01, ++ 4.79869793737535021982e-01, ++ 4.69785595495954833023e-01, ++ 4.59682272922913082169e-01, ++ 4.49562987706663808041e-01, ++ 4.39430897432148248605e-01, ++ 4.29289154360313895964e-01, ++ 4.19140904211673437363e-01, ++ 4.08989284954621334922e-01, ++ 3.98837425599043837732e-01, ++ 3.88688444995713366925e-01, ++ 3.78545450641997294206e-01, ++ 3.68411537494394758507e-01, ++ 3.58289786788378861182e-01, ++ 3.48183264866087693878e-01, ++ 3.38095022012320112204e-01, ++ 3.28028091299366553191e-01, ++ 3.17985487441129255348e-01, ++ 3.07970205657046469661e-01, ++ 2.97985220546282070231e-01, ++ 2.88033484972657738421e-01, ++ 2.78117928960799731808e-01, ++ 2.68241458603957205753e-01, ++ 2.58406954983961600902e-01, ++ 2.48617273103761360353e-01, ++ 2.38875240832987723039e-01, ++ 2.29183657866993378827e-01, ++ 2.19545294699780346726e-01, ++ 2.09962891611264163005e-01, ++ 2.00439157669269424344e-01, ++ 1.90976769746686869667e-01, ++ 1.81578371554184297976e-01, ++ 1.72246572688870225321e-01, ++ 1.62983947699301107148e-01, ++ 1.53793035167208436143e-01, ++ 1.44676336806320998685e-01, ++ 1.35636316578646581865e-01, ++ 1.26675399828566487281e-01, ++ 1.17795972435093473929e-01, ++ 1.09000379982627515485e-01, ++ 1.00290926950544131979e-01, ++ 9.16698759219308212387e-02, ++ 8.31394468117901269677e-02, ++ 7.47018161150024284645e-02, ++ 6.63591161743508073378e-02, ++ 5.81134344688867474082e-02, ++ 4.99668129229093108123e-02, ++ 4.19212472358281990070e-02, ++ 3.39786862331567796058e-02, ++ 2.61410312388884458201e-02, ++ 1.84101354694814652035e-02, ++ 1.07878034496857889285e-02, ++ 3.27579045041895364904e-03, ++-4.12419805110235924983e-03, ++-1.14105068887806991584e-02, ++-1.85815317024259456236e-02, ++-2.56357194097392264431e-02, ++-3.25715686553301464468e-02, ++-3.93876302366183567161e-02, ++-4.60825075064776670808e-02, ++-5.26548567524927901840e-02, ++-5.91033875527125010518e-02, ++-6.54268631077873363822e-02, ++-7.16241005493989252306e-02, ++-7.76939712248916614090e-02, ++-8.36354009580342477870e-02, ++-8.94473702858456093390e-02, ++-9.51289146714309197250e-02, ++-1.00679124692788404816e-01, ++-1.06097146207554629549e-01, ++-1.11382180493666688159e-01, ++-1.16533484365933040494e-01, ++-1.21550370268516991223e-01, ++-1.26432206343341957400e-01, ++-1.31178416474445280748e-01, ++-1.35788480308313530553e-01, ++-1.40261933250244968940e-01, ++-1.44598366436796466061e-01, ++-1.48797426684381700612e-01, ++-1.52858816414098541703e-01, ++-1.56782293552872986631e-01, ++-1.60567671411021850592e-01, ++-1.64214818536340179111e-01, ++-1.67723658544838616358e-01, ++-1.71094169928257461288e-01, ++-1.74326385838498049141e-01, ++-1.77420393849128360531e-01, ++-1.80376335694119815933e-01, ++-1.83194406983985758064e-01, ++-1.85874856899509832697e-01, ++-1.88417987863249564162e-01, ++-1.90824155189017602430e-01, ++-1.93093766709557357331e-01, ++-1.95227282382623990031e-01, ++-1.97225213875713484279e-01, ++-1.99088124129663118778e-01, ++-2.00816626901390404836e-01, ++-2.02411386286012268121e-01, ++-2.03873116218622224549e-01, ++-2.05202579955993086314e-01, ++-2.06400589538496825881e-01, ++-2.07468005232528396320e-01, ++-2.08405734953734406156e-01, ++-2.09214733671363894985e-01, ++-2.09896002794046132589e-01, ++-2.10450589537331811396e-01, ++-2.10879586273321456558e-01, ++-2.11184129862729524918e-01, ++-2.11365400969725530933e-01, ++-2.11424623359909302778e-01, ++-2.11363063181782606659e-01, ++-2.11182028232088397912e-01, ++-2.10882867205385543530e-01, ++-2.10466968928249342774e-01, ++-2.09935761578479540557e-01, ++-2.09290711889717429006e-01, ++-2.08533324341858283812e-01, ++-2.07665140337684211991e-01, ++-2.06687737366111012882e-01, ++-2.05602728152473046563e-01, ++-2.04411759796272074485e-01, ++-2.03116512896803713684e-01, ++-2.01718700667107064817e-01, ++-2.00220068036660509003e-01, ++-1.98622390743273286029e-01, ++-1.96927474414606312747e-01, ++-1.95137153639780930314e-01, ++-1.93253291031515200826e-01, ++-1.91277776279251604530e-01, ++-1.89212525193726166517e-01, ++-1.87059478743444584925e-01, ++-1.84820602083524743176e-01, ++-1.82497883577372205233e-01, ++-1.80093333811659150889e-01, ++-1.77608984605069908369e-01, ++-1.75046888011289869524e-01, ++-1.72409115316711214483e-01, ++-1.69697756033324376190e-01, ++-1.66914916887274944468e-01, ++-1.64062720803562822613e-01, ++-1.61143305887356008688e-01, ++-1.58158824402401171350e-01, ++-1.55111441747006084668e-01, ++-1.52003335428069458191e-01, ++-1.48836694033641553370e-01, ++-1.45613716204482351868e-01, ++-1.42336609605105829379e-01, ++-1.39007589894771910188e-01, ++-1.35628879698910465024e-01, ++-1.32202707581443923424e-01, ++-1.28731307018481316851e-01, ++-1.25216915373852127891e-01, ++-1.21661772876947515964e-01, ++-1.18068121603333617275e-01, ++-1.14438204458597023172e-01, ++-1.10774264165883040700e-01, ++-1.07078542257586659114e-01, ++-1.03353278071642365465e-01, ++-9.96007077528702211566e-02, ++-9.58230632598184722815e-02, ++-9.20225713775505993475e-02, ++-8.82014527368129436224e-02, ++-8.43619208400154807492e-02, ++-8.05061810944624617337e-02, ++-7.66364298532504761852e-02, ++-7.27548534642616651080e-02, ++-6.88636273276640731300e-02, ++-6.49649149623320182334e-02, ++-6.10608670815911136476e-02, ++-5.71536206786884617981e-02, ++-5.32452981223815041689e-02, ++-4.93380062630371721277e-02, ++-4.54338355496189602589e-02, ++-4.15348591579423748188e-02, ++-3.76431321305677607514e-02, ++-3.37606905286930644716e-02, ++-2.98895505964036217739e-02, ++-2.60317079376298707305e-02, ++-2.21891367061550388862e-02, ++-1.83637888090092127324e-02, ++-1.45575931235783270074e-02, ++-1.07724547287478406021e-02, ++-7.01025415039811198442e-03, ++-3.27284662155273445641e-03, ++ 4.37938642517908310794e-04, ++ 4.12029915395035594566e-03, ++ 7.77245984641533344678e-03, ++ 1.13926737534469080249e-02, ++ 1.49792226707046640527e-02, ++ 1.85304178019153227563e-02, ++ 2.20446003882424183817e-02, ++ 2.55201423208448671676e-02, ++ 2.89554467363942642788e-02, ++ 3.23489485953257979722e-02, ++ 3.56991152426125377128e-02, ++ 3.90044469508545738057e-02, ++ 4.22634774454904785235e-02, ++ 4.54747744119432459331e-02, ++ 4.86369399845229810619e-02, ++ 5.17486112169195516808e-02, ++ 5.48084605341252126265e-02, ++ 5.78151961656372809228e-02, ++ 6.07675625598040544673e-02, ++ 6.36643407791787629968e-02, ++ 6.65043488767638746317e-02, ++ 6.92864422530337364936e-02, ++ 7.20095139936314521112e-02, ++ 7.46724951876515663507e-02, ++ 7.72743552264206767788e-02, ++ 7.98141020827076302924e-02, ++ 8.22907825702981904348e-02, ++ 8.47034825838767768680e-02, ++ 8.70513273191783898408e-02, ++ 8.93334814733681981114e-02, ++ 9.15491494256309712441e-02, ++ 9.36975753979484987655e-02, ++ 9.57780435960658566019e-02, ++ 9.77898783306437036078e-02, ++ 9.97324441186170501661e-02, ++ 1.01605145764776208517e-01, ++ 1.03407428423609545898e-01, ++ 1.05138777641444206012e-01, ++ 1.06798719378940032421e-01, ++ 1.08386820013995285872e-01, ++ 1.09902686325133475131e-01, ++ 1.11345965455456150095e-01, ++ 1.12716344857240108324e-01, ++ 1.14013552217288011148e-01, ++ 1.15237355363129817531e-01, ++ 1.16387562150195578159e-01, ++ 1.17464020330083573906e-01, ++ 1.18466617400054957665e-01, ++ 1.19395280433899547701e-01, ++ 1.20249975894323096748e-01, ++ 1.21030709427012495016e-01, ++ 1.21737525636550936170e-01, ++ 1.22370507844354617366e-01, ++ 1.22929777828819461472e-01, ++ 1.23415495547866391202e-01, ++ 1.23827858844088756207e-01, ++ 1.24167103132708178670e-01, ++ 1.24433501072553173716e-01, ++ 1.24627362220290069383e-01, ++ 1.24749032668130088730e-01, ++ 1.24798894665256510095e-01, ++ 1.24777366223214461471e-01, ++ 1.24684900705517007213e-01, ++ 1.24521986401729317651e-01, ++ 1.24289146086293156301e-01, ++ 1.23986936562369309822e-01, ++ 1.23615948190973698462e-01, ++ 1.23176804405697795652e-01, ++ 1.22670161213299697134e-01, ++ 1.22096706680470845630e-01, ++ 1.21457160407075034914e-01, ++ 1.20752272986177383585e-01, ++ 1.19982825451170740938e-01, ++ 1.19149628710327484815e-01, ++ 1.18253522969096608319e-01, ++ 1.17295377140480550082e-01, ++ 1.16276088243826986046e-01, ++ 1.15196580792372674229e-01, ++ 1.14057806169890793568e-01, ++ 1.12860741996784086361e-01, ++ 1.11606391485979145051e-01, ++ 1.10295782788982596467e-01, ++ 1.08929968332454704671e-01, ++ 1.07510024145666946427e-01, ++ 1.06037049179214082351e-01, ++ 1.04512164615345154450e-01, ++ 1.02936513170294341446e-01, ++ 1.01311258388983055356e-01, ++ 9.96375839324763756810e-02, ++ 9.79166928585712137423e-02, ++ 9.61498068959035084857e-02, ++ 9.43381657119597566430e-02, ++ 9.24830261753778609668e-02, ++ 9.05856616129300240559e-02, ++ 8.86473610615743090602e-02, ++ 8.66694285159709948418e-02, ++ 8.46531821718525673282e-02, ++ 8.25999536656427529868e-02, ++ 8.05110873107188207420e-02, ++ 7.83879393307109761935e-02, ++ 7.62318770902338793682e-02, ++ 7.40442783234440127238e-02, ++ 7.18265303608213723230e-02, ++ 6.95800293545625059277e-02, ++ 6.73061795029863685347e-02, ++ 6.50063922743394223547e-02, ++ 6.26820856303954981881e-02, ++ 6.03346832502406754672e-02, ++ 5.79656137546301838959e-02, ++ 5.55763099313076533448e-02, ++ 5.31682079616711544823e-02, ++ 5.07427466491714163066e-02, ++ 4.83013666498223193102e-02, ++ 4.58455097052048524131e-02, ++ 4.33766178783417805098e-02, ++ 4.08961327928156204159e-02, ++ 3.84054948755038344510e-02, ++ 3.59061426032981009793e-02, ++ 3.33995117541749445000e-02, ++ 3.08870346629779371495e-02, ++ 2.83701394822698481357e-02, ++ 2.58502494486117818939e-02, ++ 2.33287821546176998844e-02, ++ 2.08071488271321346220e-02, ++ 1.82867536118745781237e-02, ++ 1.57689928648852076276e-02, ++ 1.32552544511122961240e-02, ++ 1.07469170504618516393e-02, ++ 8.24534947164058847069e-03, ++ 5.75190997410870291651e-03, ++ 3.26794559845353929303e-03, ++ 7.94791505500461897306e-04, ++-1.66622967554532603295e-03, ++-4.11380848962069559788e-03, ++-6.54664928870115660209e-03, ++-8.96347085478857441565e-03, ++-1.13630070127026094190e-02, ++-1.37440072324107598334e-02, ++-1.61052372206219249207e-02, ++-1.84454795013846463425e-02, ++-2.07635339854373018875e-02, ++-2.30582185280550702733e-02, ++-2.53283694751598974226e-02, ++-2.75728421974516593740e-02, ++-2.97905116123358577884e-02, ++-3.19802726934248146562e-02, ++-3.41410409673992970570e-02, ++-3.62717529980220235175e-02, ++-3.83713668571045649069e-02, ++-4.04388625822339128901e-02, ++-4.24732426210736174754e-02, ++-4.44735322620624928813e-02, ++-4.64387800513385851087e-02, ++-4.83680581957297989204e-02, ++-5.02604629516505974074e-02, ++-5.21151149997620341536e-02, ++-5.39311598052534396652e-02, ++-5.57077679636137287900e-02, ++-5.74441355317703919448e-02, ++-5.91394843444778550712e-02, ++-6.07930623158483146584e-02, ++-6.24041437259244130553e-02, ++-6.39720294922026394557e-02, ++-6.54960474260223579623e-02, ++-6.69755524737441765293e-02, ++-6.84099269426502037961e-02, ++-6.97985807115074213813e-02, ++-7.11409514257386743630e-02, ++-7.24365046771608261933e-02, ++-7.36847341682554390907e-02, ++-7.48851618609372993163e-02, ++-7.60373381098108092058e-02, ++-7.71408417798946782762e-02, ++-7.81952803488157183187e-02, ++-7.92002899934755172362e-02, ++-8.01555356612003028216e-02, ++-8.10607111253977136167e-02, ++-8.19155390257452209468e-02, ++-8.27197708929510444609e-02, ++-8.34731871581248646708e-02, ++-8.41755971468178959549e-02, ++-8.48268390577856662427e-02, ++-8.54267799265437804968e-02, ++-8.59753155737910251810e-02, ++-8.64723705387828583957e-02, ++-8.69178979977427990100e-02, ++-8.73118796674136471436e-02, ++-8.76543256938471931905e-02, ++-8.79452745265522362050e-02, ++-8.81847927781117119084e-02, ++-8.83729750694022264668e-02, ++-8.85099438605464611252e-02, ++-8.85958492677388215197e-02, ++-8.86308688660923243985e-02, ++-8.86152074786611815282e-02, ++-8.85490969517982173809e-02, ++-8.84327959170169153325e-02, ++-8.82665895395295801995e-02, ++-8.80507892536431108210e-02, ++-8.77857324851982756542e-02, ++-8.74717823612454203897e-02, ++-8.71093274071546297410e-02, ++-8.66987812313650407781e-02, ++-8.62405821979837367008e-02, ++-8.57351930874506312774e-02, ++-8.51831007454873639917e-02, ++-8.45848157205629364030e-02, ++-8.39408718901024919479e-02, ++-8.32518260756789918453e-02, ++-8.25182576474303292047e-02, ++-8.17407681179471573563e-02, ++-8.09199807258840636548e-02, ++-8.00565400095505641520e-02, ++-7.91511113707415864260e-02, ++-7.82043806290729365260e-02, ++-7.72170535670915342275e-02, ++-7.61898554664313942819e-02, ++-7.51235306352922710404e-02, ++-7.40188419275257664109e-02, ++-7.28765702536047221827e-02, ++-7.16975140837712299202e-02, ++-7.04824889436477669546e-02, ++-6.92323269026086512978e-02, ++-6.79478760552057331479e-02, ++-6.66299999959486799472e-02, ++-6.52795772877406560442e-02, ++-6.38975009242730290770e-02, ++-6.24846777866859409700e-02, ++-6.10420280948025528733e-02, ++-5.95704848532464525945e-02, ++-5.80709932927548425075e-02, ++-5.65445103069988283528e-02, ++-5.49920038852278469932e-02, ++-5.34144525410520376596e-02, ++-5.18128447376807535485e-02, ++-5.01881783099329334408e-02, ++-4.85414598833405000478e-02, ++-4.68737042906593598390e-02, ++-4.51859339861135078653e-02, ++-4.34791784576844600463e-02, ++-4.17544736377706837693e-02, ++-4.00128613125346824231e-02, ++-3.82553885302546123337e-02, ++-3.64831070090038678266e-02, ++-3.46970725439699687054e-02, ++-3.28983444147356932086e-02, ++-3.10879847928346199348e-02, ++-2.92670581498969371859e-02, ++-2.74366306667012324616e-02, ++-2.55977696434401616465e-02, ++-2.37515429115148085648e-02, ++-2.18990182471639621697e-02, ++-2.00412627872342125057e-02, ++-1.81793424474003748048e-02, ++-1.63143213431318143125e-02, ++-1.44472612137104394064e-02, ++-1.25792208495948080321e-02, ++-1.07112555234262843418e-02, ++-8.84441642496919776251e-03, ++-6.97975010027273440327e-03, ++-5.11829789534247545785e-03, ++-3.26109540460238272672e-03, ++-1.40917192442717876394e-03, ++ 4.36450087979504280662e-04, ++ 2.27475555008947467189e-03, ++ 4.10473728366783034011e-03, ++ 5.92539653824247346953e-03, ++ 7.73574350816149444027e-03, ++ 9.53479784298774321605e-03, ++ 1.13215891509725555958e-02, ++ 1.30951574953684958535e-02, ++ 1.48545538833333903156e-02, ++ 1.65988407471903930135e-02, ++ 1.83270924178097725787e-02, ++ 2.00383955898867233136e-02, ++ 2.17318497788877018628e-02, ++ 2.34065677694524146291e-02, ++ 2.50616760550354221448e-02, ++ 2.66963152685791259289e-02, ++ 2.83096406040205736399e-02, ++ 2.99008222284305145988e-02, ++ 3.14690456845965957355e-02, ++ 3.30135122838646696830e-02, ++ 3.45334394890581680704e-02, ++ 3.60280612873039099431e-02, ++ 3.74966285525929615696e-02, ++ 3.89384093979178655398e-02, ++ 4.03526895168305685391e-02, ++ 4.17387725142676843659e-02, ++ 4.30959802265037661417e-02, ++ 4.44236530300948923022e-02, ++ 4.57211501396783959184e-02, ++ 4.69878498945072997639e-02, ++ 4.82231500336007049001e-02, ++ 4.94264679593977643290e-02, ++ 5.05972409898094652170e-02, ++ 5.17349265985714082405e-02, ++ 5.28390026438036938816e-02, ++ 5.39089675846917554258e-02, ++ 5.49443406862122687984e-02, ++ 5.59446622118279432434e-02, ++ 5.69094936040880627903e-02, ++ 5.78384176530744725797e-02, ++ 5.87310386526413361064e-02, ++ 5.95869825444026307570e-02, ++ 6.04058970494284683261e-02, ++ 6.11874517876177664855e-02, ++ 6.19313383847234916191e-02, ++ 6.26372705670065754724e-02, ++ 6.33049842435138704344e-02, ++ 6.39342375759682501890e-02, ++ 6.45248110362744708990e-02, ++ 6.50765074516480857003e-02, ++ 6.55891520373845793301e-02, ++ 6.60625924172834749770e-02, ++ 6.64966986317623437452e-02, ++ 6.68913631336883612866e-02, ++ 6.72465007719728613544e-02, ++ 6.75620487629735172463e-02, ++ 6.78379666497569006056e-02, ++ 6.80742362492841729393e-02, ++ 6.82708615875821517305e-02, ++ 6.84278688229765230666e-02, ++ 6.85453061574607669382e-02, ++ 6.86232437362914587942e-02, ++ 6.86617735358941577717e-02, ++ 6.86610092401827576403e-02, ++ 6.86210861053920678776e-02, ++ 6.85421608135311638543e-02, ++ 6.84244113145758836581e-02, ++ 6.82680366575164482290e-02, ++ 6.80732568103898511014e-02, ++ 6.78403124694252068760e-02, ++ 6.75694648574412526365e-02, ++ 6.72609955116377500328e-02, ++ 6.69152060609276150283e-02, ++ 6.65324179929640407982e-02, ++ 6.61129724110185862385e-02, ++ 6.56572297808763333249e-02, ++ 6.51655696679120516324e-02, ++ 6.46383904645234791397e-02, ++ 6.40761091080973010925e-02, ++ 6.34791607896909026998e-02, ++ 6.28479986536143592213e-02, ++ 6.21830934881068692066e-02, ++ 6.14849334072996994704e-02, ++ 6.07540235246672929992e-02, ++ 5.99908856181665117724e-02, ++ 5.91960577872764140417e-02, ++ 5.83700941021449495882e-02, ++ 5.75135642450580880647e-02, ++ 5.66270531444532515541e-02, ++ 5.57111606016933366692e-02, ++ 5.47665009108296851892e-02, ++ 5.37937024715815850784e-02, ++ 5.27934073957626870399e-02, ++ 5.17662711073889059143e-02, ++ 5.07129619367031950206e-02, ++ 4.96341607083598743144e-02, ++ 4.85305603240058919257e-02, ++ 4.74028653395071053467e-02, ++ 4.62517915370636301109e-02, ++ 4.50780654924642990022e-02, ++ 4.38824241377281029641e-02, ++ 4.26656143193894568655e-02, ++ 4.14283923526756400757e-02, ++ 4.01715235718370783369e-02, ++ 3.88957818768817381594e-02, ++ 3.76019492769772492591e-02, ++ 3.62908154307766822599e-02, ++ 3.49631771839265942381e-02, ++ 3.36198381040227756156e-02, ++ 3.22616080132712215733e-02, ++ 3.08893025191169512400e-02, ++ 2.95037425431055044811e-02, ++ 2.81057538482372380739e-02, ++ 2.66961665650768086022e-02, ++ 2.52758147168840839603e-02, ++ 2.38455357440239580635e-02, ++ 2.24061700279218310727e-02, ++ 2.09585604148223095256e-02, ++ 1.95035517396166743764e-02, ++ 1.80419903499945237513e-02, ++ 1.65747236311830255240e-02, ++ 1.51025995315297069388e-02, ++ 1.36264660891878813115e-02, ++ 1.21471709601575494908e-02, ++ 1.06655609479410495855e-02, ++ 9.18248153506075540098e-03, ++ 7.69877641669523653245e-03, ++ 6.21528703667832953944e-03, ++ 4.73285212611389023013e-03, ++ 3.25230724484593071086e-03, ++ 1.77448432603104764606e-03, ++ 3.00211224053546050453e-04, ++-1.16968873398075085164e-03, ++-2.63439719293501574751e-03, ++-4.09310121028114842767e-03, ++-5.54499369246326881400e-03, ++-6.98927382675401144552e-03, ++-8.42514750838012187184e-03, ++-9.85182776269834421801e-03, ++-1.12685351622023224166e-02, ++-1.26744982381468297011e-02, ++-1.40689538865774264181e-02, ++-1.54511477685608713400e-02, ++-1.68203347044119586040e-02, ++-1.81757790617144907031e-02, ++-1.95167551369457396848e-02, ++-2.08425475305089903666e-02, ++-2.21524515149872230912e-02, ++-2.34457733964363347623e-02, ++-2.47218308685369890509e-02, ++-2.59799533594318662888e-02, ++-2.72194823710760064328e-02, ++-2.84397718109379513129e-02, ++-2.96401883158870678436e-02, ++-3.08201115681125577261e-02, ++-3.19789346029227747326e-02, ++-3.31160641082781370681e-02, ++-3.42309207159130005071e-02, ++-3.53229392839145145411e-02, ++-3.63915691706218277779e-02, ++-3.74362744997228866217e-02, ++-3.84565344164232020274e-02, ++-3.94518433345735566875e-02, ++-4.04217111746440760367e-02, ++-4.13656635924379983971e-02, ++-4.22832421984465703368e-02, ++-4.31740047677477145616e-02, ++-4.40375254403603463849e-02, ++-4.48733949119690250784e-02, ++-4.56812206149411689782e-02, ++-4.64606268895620885817e-02, ++-4.72112551454219875335e-02, ++-4.79327640128901638628e-02, ++-4.86248294846227807620e-02, ++-4.92871450470508051800e-02, ++-4.99194218018040730689e-02, ++-5.05213885770312357004e-02, ++-5.10927920285815725943e-02, ++-5.16333967310192848421e-02, ++-5.21429852584503056301e-02, ++-5.26213582551397357490e-02, ++-5.30683344959132635710e-02, ++-5.34837509363331325973e-02, ++-5.38674627526497529217e-02, ++-5.42193433715342787416e-02, ++-5.45392844896020398404e-02, ++-5.48271960827455065446e-02, ++-5.50830064052948084607e-02, ++-5.53066619790379757071e-02, ++-5.54981275721307884541e-02, ++-5.56573861679344195075e-02, ++-5.57844389238277491017e-02, ++-5.58793051200398085965e-02, ++-5.59420220985603691699e-02, ++-5.59726451921854703531e-02, ++-5.59712476437655773176e-02, ++-5.59379205157255615655e-02, ++-5.58727725899317365088e-02, ++-5.57759302579874938210e-02, ++-5.56475374020423893540e-02, ++-5.54877552662062720201e-02, ++-5.52967623186622694864e-02, ++-5.50747541045816801919e-02, ++-5.48219430899443069261e-02, ++-5.45385584963738595521e-02, ++-5.42248461271042508924e-02, ++-5.38810681841958433180e-02, ++-5.35075030771247142636e-02, ++-5.31044452228734698007e-02, ++-5.26722048376558060756e-02, ++-5.22111077204129997442e-02, ++-5.17214950282209942611e-02, ++-5.12037230437547910555e-02, ++-5.06581629349584436350e-02, ++-5.00852005070748507176e-02, ++-4.94852359471897595977e-02, ++-4.88586835614527661975e-02, ++-4.82059715051387852047e-02, ++-4.75275415057165098731e-02, ++-4.68238485790967787215e-02, ++-4.60953607392339606563e-02, ++-4.53425587012589517699e-02, ++-4.45659355783224117586e-02, ++-4.37659965723364227652e-02, ++-4.29432586587956896529e-02, ++-4.20982502658717866462e-02, ++-4.12315109479716793150e-02, ++-4.03435910539542696984e-02, ++-3.94350513902031810098e-02, ++-3.85064628787541649024e-02, ++-3.75584062106811000792e-02, ++-3.65914714949422334445e-02, ++-3.56062579028932485459e-02, ++-3.46033733086755293518e-02, ++-3.35834339256887229319e-02, ++-3.25470639393581201437e-02, ++-3.14948951364113841067e-02, ++-3.04275665308768074324e-02, ++-2.93457239870188353603e-02, ++-2.82500198394295444493e-02, ++-2.71411125104896906735e-02, ++-2.60196661254226829785e-02, ++-2.48863501251557692195e-02, ++-2.37418388772132477049e-02, ++-2.25868112848582602847e-02, ++-2.14219503947065334493e-02, ++-2.02479430030328977352e-02, ++-1.90654792609915822721e-02, ++-1.78752522789717531448e-02, ++-1.66779577303104824260e-02, ++-1.54742934545847657390e-02, ++-1.42649590607015902544e-02, ++-1.30506555300084672172e-02, ++-1.18320848196448689948e-02, ++-1.06099494663520910881e-02, ++-9.38495219096077346044e-03, ++-8.15779550377599728395e-03, ++-6.92918131107302364552e-03, ++-5.69981052292132129439e-03, ++-4.47038266255170985142e-03, ++-3.24159547747867194528e-03, ++-2.01414455258872894527e-03, ++-7.88722925405390719311e-04, ++ 4.33979296259515102616e-04, ++ 1.65327531406484059748e-03, ++ 2.86848201610344138643e-03, ++ 4.07892035086573293695e-03, ++ 5.28391569800646006272e-03, ++ 6.48279823571479112132e-03, ++ 7.67490330449144362440e-03, ++ 8.85957176714050748112e-03, ++ 1.00361503647855877797e-02, ++ 1.12039920687220222878e-02, ++ 1.23624564279179102733e-02, ++ 1.35109099119845744302e-02, ++ 1.46487262494354297110e-02, ++ 1.57752867610552773014e-02, ++ 1.68899806882093564409e-02, ++ 1.79922055159205465658e-02, ++ 1.90813672905472929420e-02, ++ 2.01568809318992299418e-02, ++ 2.12181705396309386313e-02, ++ 2.22646696937574897768e-02, ++ 2.32958217491361675722e-02, ++ 2.43110801237692714105e-02, ++ 2.53099085807794131620e-02, ++ 2.62917815039164816382e-02, ++ 2.72561841664596578305e-02, ++ 2.82026129933784439063e-02, ++ 2.91305758166261995201e-02, ++ 3.00395921234366258812e-02, ++ 3.09291932975059961908e-02, ++ 3.17989228529399620138e-02, ++ 3.26483366608550443222e-02, ++ 3.34770031685240748720e-02, ++ 3.42845036109633918842e-02, ++ 3.50704322148587890884e-02, ++ 3.58343963947392735170e-02, ++ 3.65760169413035240993e-02, ++ 3.72949282018151320739e-02, ++ 3.79907782524846540650e-02, ++ 3.86632290627611160949e-02, ++ 3.93119566514606166852e-02, ++ 3.99366512346636878816e-02, ++ 4.05370173653198731523e-02, ++ 4.11127740644999239983e-02, ++ 4.16636549442422551848e-02, ++ 4.21894083219462659451e-02, ++ 4.26897973262660088145e-02, ++ 4.31645999944682140503e-02, ++ 4.36136093612174424727e-02, ++ 4.40366335387612217733e-02, ++ 4.44334957884889164559e-02, ++ 4.48040345838451384286e-02, ++ 4.51481036645831335097e-02, ++ 4.54655720823471248826e-02, ++ 4.57563242375793044481e-02, ++ 4.60202599077495430602e-02, ++ 4.62572942669144740457e-02, ++ 4.64673578966120978673e-02, ++ 4.66503967881086306635e-02, ++ 4.68063723360144789964e-02, ++ 4.69352613232939530619e-02, ++ 4.70370558976949404428e-02, ++ 4.71117635396342340770e-02, ++ 4.71594070215737987128e-02, ++ 4.71800243589305737246e-02, ++ 4.71736687525673714649e-02, ++ 4.71404085229153516079e-02, ++ 4.70803270357842834626e-02, ++ 4.69935226199208050391e-02, ++ 4.68801084763797309973e-02, ++ 4.67402125797770004456e-02, ++ 4.65739775714988368804e-02, ++ 4.63815606449435313685e-02, ++ 4.61631334228796152974e-02, ++ 4.59188818270049037285e-02, ++ 4.56490059397985786793e-02, ++ 4.53537198587595224986e-02, ++ 4.50332515431300858810e-02, ++ 4.46878426532076045152e-02, ++ 4.43177483823498988280e-02, ++ 4.39232372817854738178e-02, ++ 4.35045910783411482470e-02, ++ 4.30621044852065107400e-02, ++ 4.25960850058553150421e-02, ++ 4.21068527312480900271e-02, ++ 4.15947401304457009541e-02, ++ 4.10600918347645213458e-02, ++ 4.05032644156081075848e-02, ++ 3.99246261561139251239e-02, ++ 3.93245568167555487049e-02, ++ 3.87034473950466154091e-02, ++ 3.80616998794914215831e-02, ++ 3.73997269979330568268e-02, ++ 3.67179519604542980993e-02, ++ 3.60168081969824901978e-02, ++ 3.52967390897612337541e-02, ++ 3.45581977008463520074e-02, ++ 3.38016464947914485606e-02, ++ 3.30275570566867723854e-02, ++ 3.22364098057202272396e-02, ++ 3.14286937044311875944e-02, ++ 3.06049059638265272265e-02, ++ 2.97655517445348863359e-02, ++ 2.89111438541742558905e-02, ++ 2.80422024411093630258e-02, ++ 2.71592546847793693543e-02, ++ 2.62628344827749958534e-02, ++ 2.53534821348480460257e-02, ++ 2.44317440240356988090e-02, ++ 2.34981722950843643916e-02, ++ 2.25533245303600957121e-02, ++ 2.15977634234290963300e-02, ++ 2.06320564504986307675e-02, ++ 1.96567755399048478548e-02, ++ 1.86724967398384719686e-02, ++ 1.76797998844943696217e-02, ++ 1.66792682588392839060e-02, ++ 1.56714882621848752842e-02, ++ 1.46570490707573775069e-02, ++ 1.36365422994567421500e-02, ++ 1.26105616629926826217e-02, ++ 1.15797026365911225748e-02, ++ 1.05445621164599462327e-02, ++ 9.50573808020578961409e-03, ++ 8.46382924739110323320e-03, ++ 7.41943474041982693745e-03, ++ 6.37315374594339158210e-03, ++ 5.32558517697237672472e-03, ++ 4.27732733588230377986e-03, ++ 3.22897757850148679412e-03, ++ 2.18113197946379544154e-03, ++ 1.13438499901297824499e-03, ++ 8.93291514401199637785e-05, ++-9.53445324662180308285e-04, ++-1.99335079414908163467e-03, ++-3.02980255089889101774e-03, ++-4.06221914103327592926e-03, ++-5.09002268361045690642e-03, ++-6.11263918861550906853e-03, ++-7.12949887207463706834e-03, ++-8.14003646812562139945e-03, ++-9.14369153787539246103e-03, ++-1.01399087748766797423e-02, ++-1.11281383070643315192e-02, ++-1.21078359949849043153e-02, ++-1.30784637261652115364e-02, ++-1.40394897054589556235e-02, ++-1.49903887412209321783e-02, ++-1.59306425271560810064e-02, ++-1.68597399196934796817e-02, ++-1.77771772107420643338e-02, ++-1.86824583956837868282e-02, ++-1.95750954364632238913e-02, ++-2.04546085196391988492e-02, ++-2.13205263092617232357e-02, ++-2.21723861944465271134e-02, ++-2.30097345315165013879e-02, ++-2.38321268805886041231e-02, ++-2.46391282364846579689e-02, ++-2.54303132538467105417e-02, ++-2.62052664663464558725e-02, ++-2.69635824998752660075e-02, ++-2.77048662796101873018e-02, ++-2.84287332308504510359e-02, ++-2.91348094735277007850e-02, ++-2.98227320102924450818e-02, ++-3.04921489080843266528e-02, ++-3.11427194730996177718e-02, ++-3.17741144190714572271e-02, ++-3.23860160287801970846e-02, ++-3.29781183087202514614e-02, ++-3.35501271368501066683e-02, ++-3.41017604033561905208e-02, ++-3.46327481443660725735e-02, ++-3.51428326685533573559e-02, ++-3.56317686765738189658e-02, ++-3.60993233732840035355e-02, ++-3.65452765726929293399e-02, ++-3.69694207956033291107e-02, ++-3.73715613599018697810e-02, ++-3.77515164634644601049e-02, ++-3.81091172596444149878e-02, ++-3.84442079253161372865e-02, ++-3.87566457214516685292e-02, ++-3.90463010462121923316e-02, ++-3.93130574805393290250e-02, ++-3.95568118262348833447e-02, ++-3.97774741365262002324e-02, ++-3.99749677391120911141e-02, ++-4.01492292516929735746e-02, ++-4.03002085899928502721e-02, ++-4.04278689682822170437e-02, ++-4.05321868924172351578e-02, ++-4.06131521454162341955e-02, ++-4.06707677655930785465e-02, ++-4.07050500172784421316e-02, ++-4.07160283541586343059e-02, ++-4.07037453752667754969e-02, ++-4.06682567736679767556e-02, ++-4.06096312778803508747e-02, ++-4.05279505860795044581e-02, ++-4.04233092931398294012e-02, ++-4.02958148105644620163e-02, ++-4.01455872793672688403e-02, ++-3.99727594759664850432e-02, ++-3.97774767111586519119e-02, ++-3.95598967222433872681e-02, ++-3.93201895583720484328e-02, ++-3.90585374591997241955e-02, ++-3.87751347269212551239e-02, ++-3.84701875917762628476e-02, ++-3.81439140711113400251e-02, ++-3.77965438220935409652e-02, ++-3.74283179881668356948e-02, ++-3.70394890393534528816e-02, ++-3.66303206065006978220e-02, ++-3.62010873095778978881e-02, ++-3.57520745801320274926e-02, ++-3.52835784780144504080e-02, ++-3.47959055024906621645e-02, ++-3.42893723978519651685e-02, ++-3.37643059536492443073e-02, ++-3.32210427996700446984e-02, ++-3.26599291957861484481e-02, ++-3.20813208167984795227e-02, ++-3.14855825324110299990e-02, ++-3.08730881824660075008e-02, ++-3.02442203475766398235e-02, ++-2.95993701152947666366e-02, ++-2.89389368419537100496e-02, ++-2.82633279103284111577e-02, ++-2.75729584832571511521e-02, ++-2.68682512533715799063e-02, ++-2.61496361890828643570e-02, ++-2.54175502769729139141e-02, ++-2.46724372607451357398e-02, ++-2.39147473768850267473e-02, ++-2.31449370871867204924e-02, ++-2.23634688083034216532e-02, ++-2.15708106384762607344e-02, ++-2.07674360816027074594e-02, ++-1.99538237688046717067e-02, ++-1.91304571776571320785e-02, ++-1.82978243492389613944e-02, ++-1.74564176031696584313e-02, ++-1.66067332507972391376e-02, ++-1.57492713066995013160e-02, ++-1.48845351986653506166e-02, ++-1.40130314763233891628e-02, ++-1.31352695185807718387e-02, ++-1.22517612400427650804e-02, ++-1.13630207965765197414e-02, ++-1.04695642901892153193e-02, ++-9.57190947338527192700e-03, ++-8.67057545317061195700e-03, ++-7.76608239487228645126e-03, ++-6.85895122593805847688e-03, ++-5.94970333988319773771e-03, ++-5.03886030055244581866e-03, ++-4.12694354685914054082e-03, ++-3.21447409816993977597e-03, ++-2.30197226049791555877e-03, ++-1.38995733366734314576e-03, ++-4.78947319613120116137e-04, ++ 4.30541368021724365611e-04, ++ 1.33799419283328071238e-03, ++ 2.24289878298409997917e-03, ++ 3.14474521675841243995e-03, ++ 4.04302630618200674328e-03, ++ 4.93723787855436784672e-03, ++ 5.82687905573941924281e-03, ++ 6.71145253105821966433e-03, ++ 7.59046484363825723490e-03, ++ 8.46342665006433181318e-03, ++ 9.32985299318577973593e-03, ++ 1.01892635679366270335e-02, ++ 1.10411829840201432262e-02, ++ 1.18851410253191149685e-02, ++ 1.27206729058918742437e-02, ++ 1.35473195224164386086e-02, ++ 1.43646277029455919638e-02, ++ 1.51721504518438701781e-02, ++ 1.59694471907719792725e-02, ++ 1.67560839955920790056e-02, ++ 1.75316338290704282210e-02, ++ 1.82956767692504761180e-02, ++ 1.90478002333781711031e-02, ++ 1.97875991972636944283e-02, ++ 2.05146764099610016963e-02, ++ 2.12286426036550797403e-02, ++ 2.19291166986495568436e-02, ++ 2.26157260033451115722e-02, ++ 2.32881064091071711408e-02, ++ 2.39459025799248388655e-02, ++ 2.45887681367592640658e-02, ++ 2.52163658364931847489e-02, ++ 2.58283677453865524731e-02, ++ 2.64244554069528701790e-02, ++ 2.70043200041730317718e-02, ++ 2.75676625159635493856e-02, ++ 2.81141938678234649951e-02, ++ 2.86436350765866577783e-02, ++ 2.91557173892062447551e-02, ++ 2.96501824155063799238e-02, ++ 3.01267822548387659287e-02, ++ 3.05852796165800439043e-02, ++ 3.10254479344173710043e-02, ++ 3.14470714743682391856e-02, ++ 3.18499454364842490839e-02, ++ 3.22338760501942114822e-02, ++ 3.25986806632450124011e-02, ++ 3.29441878242012764488e-02, ++ 3.32702373584682215002e-02, ++ 3.35766804378105562789e-02, ++ 3.38633796433344125276e-02, ++ 3.41302090219154988238e-02, ++ 3.43770541360479547910e-02, ++ 3.46038121071011867125e-02, ++ 3.48103916519715006483e-02, ++ 3.49967131131205394512e-02, ++ 3.51627084819939664251e-02, ++ 3.53083214158219776957e-02, ++ 3.54335072478019763587e-02, ++ 3.55382329906705415890e-02, ++ 3.56224773336756214692e-02, ++ 3.56862306329609538236e-02, ++ 3.57294948953816096648e-02, ++ 3.57522837557707126588e-02, ++ 3.57546224476834179073e-02, ++ 3.57365477676438725307e-02, ++ 3.56981080329308309018e-02, ++ 3.56393630329330246553e-02, ++ 3.55603839741180857703e-02, ++ 3.54612534186531380698e-02, ++ 3.53420652167257473564e-02, ++ 3.52029244326149889921e-02, ++ 3.50439472645631341918e-02, ++ 3.48652609585071091014e-02, ++ 3.46670037157273194794e-02, ++ 3.44493245944778661571e-02, ++ 3.42123834056644454682e-02, ++ 3.39563506026385533709e-02, ++ 3.36814071651815385988e-02, ++ 3.33877444777541942944e-02, ++ 3.30755642020896523103e-02, ++ 3.27450781442136518162e-02, ++ 3.23965081159751852602e-02, ++ 3.20300857911755970653e-02, ++ 3.16460525563882003053e-02, ++ 3.12446593565609519183e-02, ++ 3.08261665354972284880e-02, ++ 3.03908436713170998500e-02, ++ 2.99389694069978791469e-02, ++ 2.94708312760984421363e-02, ++ 2.89867255237756110686e-02, ++ 2.84869569232016131566e-02, ++ 2.79718385874915022316e-02, ++ 2.74416917772590980562e-02, ++ 2.68968457039136660258e-02, ++ 2.63376373288174668585e-02, ++ 2.57644111584257248793e-02, ++ 2.51775190355282320331e-02, ++ 2.45773199267213977859e-02, ++ 2.39641797062345729419e-02, ++ 2.33384709362384548670e-02, ++ 2.27005726437677947394e-02, ++ 2.20508700943889204837e-02, ++ 2.13897545627447401018e-02, ++ 2.07176231001132207798e-02, ++ 2.00348782991160503930e-02, ++ 1.93419280557122104380e-02, ++ 1.86391853286192524242e-02, ++ 1.79270678963008890661e-02, ++ 1.72059981116597301987e-02, ++ 1.64764026545822124536e-02, ++ 1.57387122824750626260e-02, ++ 1.49933615789394694695e-02, ++ 1.42407887007263995321e-02, ++ 1.34814351231214504812e-02, ++ 1.27157453839016106739e-02, ++ 1.19441668260144781555e-02, ++ 1.11671493391258293271e-02, ++ 1.03851451001812210978e-02, ++ 9.59860831313457708858e-03, ++ 8.80799494798568949339e-03, ++ 8.01376247928074769700e-03, ++ 7.21636962422106571780e-03, ++ 6.41627608052837850733e-03, ++ 5.61394226421643282449e-03, ++ 4.80982904741692092465e-03, ++ 4.00439749640451800317e-03, ++ 3.19810860997276008924e-03, ++ 2.39142305830572152181e-03, ++ 1.58480092248966769435e-03, ++ 7.78701434814883992376e-04, ++-2.64172799899629922237e-05, ++-8.30098462447035776932e-04, ++-1.63188697479669402902e-03, ++-2.43132955610078941786e-03, ++-3.22797507584321246785e-03, ++-4.02137478588284608128e-03, ++-4.81108257062173427093e-03, ++-5.59665519525267239620e-03, ++-6.37765255194445643272e-03, ++-7.15363790383393653022e-03, ++-7.92417812668915269581e-03, ++-8.68884394811023953731e-03, ++-9.44721018414002543240e-03, ++-1.01988559731527404090e-02, ++-1.09433650068938154165e-02, ++-1.16803257585482624797e-02, ++-1.24093317077095619677e-02, ++-1.31299815621298259644e-02, ++-1.38418794761330250093e-02, ++-1.45446352655703541046e-02, ++-1.52378646192042489088e-02, ++-1.59211893064089386740e-02, ++-1.65942373810739063344e-02, ++-1.72566433816031643278e-02, ++-1.79080485269053901742e-02, ++-1.85481009082684548950e-02, ++-1.91764556770177840850e-02, ++-1.97927752278625780635e-02, ++-2.03967293778293395912e-02, ++-2.09879955406921600569e-02, ++-2.15662588968082193086e-02, ++-2.21312125582700525150e-02, ++-2.26825577292899260851e-02, ++-2.32200038617330316304e-02, ++-2.37432688057198117149e-02, ++-2.42520789552232059194e-02, ++-2.47461693885826818085e-02, ++-2.52252840038678892431e-02, ++-2.56891756490234268728e-02, ++-2.61376062467286660040e-02, ++-2.65703469139121004061e-02, ++-2.69871780758624488228e-02, ++-2.73878895748791845177e-02, ++-2.77722807734117477230e-02, ++-2.81401606516388999579e-02, ++-2.84913478994407130818e-02, ++-2.88256710027211988934e-02, ++-2.91429683240446539549e-02, ++-2.94430881775452554794e-02, ++-2.97258888980813616720e-02, ++-2.99912389046026704731e-02, ++-3.02390167577045836100e-02, ++-3.04691112113477519108e-02, ++-3.06814212587221760153e-02, ++-3.08758561722402014027e-02, ++-3.10523355376465907962e-02, ++-3.12107892822333435334e-02, ++-3.13511576971570726791e-02, ++-3.14733914538524867099e-02, ++-3.15774516145448311266e-02, ++-3.16633096368639233020e-02, ++-3.17309473725677151923e-02, ++-3.17803570603852336696e-02, ++-3.18115413129928040203e-02, ++-3.18245130981409940496e-02, ++-3.18192957139523252552e-02, ++-3.17959227584129339172e-02, ++-3.17544380930855907330e-02, ++-3.16948958010739717528e-02, ++-3.16173601392711264846e-02, ++-3.15219054849285862385e-02, ++-3.14086162765858309398e-02, ++-3.12775869494028441187e-02, ++-3.11289218649403939820e-02, ++-3.09627352354390518452e-02, ++-3.07791510426457977367e-02, ++-3.05783029512460211019e-02, ++-3.03603342169560183605e-02, ++-3.01253975893385171625e-02, ++-2.98736552094041353522e-02, ++-2.96052785020640661651e-02, ++-2.93204480635056198568e-02, ++-2.90193535435597504968e-02, ++-2.87021935231378082232e-02, ++-2.83691753868116139370e-02, ++-2.80205151906207892976e-02, ++-2.76564375251866501060e-02, ++-2.72771753742177547331e-02, ++-2.68829699684970599427e-02, ++-2.64740706354380586629e-02, ++-2.60507346443026310823e-02, ++-2.56132270471758974328e-02, ++-2.51618205157945855344e-02, ++-2.46967951743263178233e-02, ++-2.42184384282035404523e-02, ++-2.37270447891129755702e-02, ++-2.32229156962464287906e-02, ++-2.27063593339205324617e-02, ++-2.21776904456732447402e-02, ++-2.16372301449491780123e-02, ++-2.10853057224852889762e-02, ++-2.05222504505109502870e-02, ++-1.99484033838788939186e-02, ++-1.93641091582448833519e-02, ++-1.87697177854121780016e-02, ++-1.81655844459648781186e-02, ++-1.75520692793087393357e-02, ++-1.69295371712437116296e-02, ++-1.62983575391910488761e-02, ++-1.56589041152024530112e-02, ++-1.50115547268741284653e-02, ++-1.43566910762958008241e-02, ++-1.36946985171622712812e-02, ++-1.30259658301738225072e-02, ++-1.23508849968591849500e-02, ++-1.16698509719491937131e-02, ++-1.09832614544311153726e-02, ++-1.02915166574176798753e-02, ++-9.59501907696169199780e-03, ++-8.89417325994698755587e-03, ++-8.18938557119236638926e-03, ++-7.48106395989599822632e-03, ++-6.76961772555855368499e-03, ++-6.05545728351598779721e-03, ++-5.33899393021318099950e-03, ++-4.62063960835571319735e-03, ++-3.90080667206999139041e-03, ++-3.17990765220415401091e-03, ++-2.45835502190418740687e-03, ++-1.73656096259670639399e-03, ++-1.01493713050778409414e-03, ++-2.93894423852804689834e-04, ++ 4.26157249173980906629e-04, ++ 1.14480920148214617565e-03, ++ 1.86165419710703351590e-03, ++ 2.57628668004443710932e-03, ++ 3.28830300177243139287e-03, ++ 3.99730164732982774095e-03, ++ 4.70288345982820387564e-03, ++ 5.40465186327331818111e-03, ++ 6.10221308357093879249e-03, ++ 6.79517636759518171841e-03, ++ 7.48315420020127710504e-03, ++ 8.16576251905792339925e-03, ++ 8.84262092718743515640e-03, ++ 9.51335290309166317635e-03, ++ 1.01775860083515076043e-02, ++ 1.08349520925866381338e-02, ++ 1.14850874956621031020e-02, ++ 1.21276332470322649459e-02, ++ 1.27622352621157286734e-02, ++ 1.33885445355916270910e-02, ++ 1.40062173315140241908e-02, ++ 1.46149153701442997833e-02, ++ 1.52143060113965177677e-02, ++ 1.58040624348002624322e-02, ++ 1.63838638158842961334e-02, ++ 1.69533954988862062274e-02, ++ 1.75123491656954573259e-02, ++ 1.80604230009418498248e-02, ++ 1.85973218531409432985e-02, ++ 1.91227573918102446149e-02, ++ 1.96364482604763183893e-02, ++ 2.01381202254901497950e-02, ++ 2.06275063205740884220e-02, ++ 2.11043469870254470078e-02, ++ 2.15683902095024221390e-02, ++ 2.20193916473261919187e-02, ++ 2.24571147612263599669e-02, ++ 2.28813309354701996390e-02, ++ 2.32918195953102993845e-02, ++ 2.36883683196934501092e-02, ++ 2.40707729491726543647e-02, ++ 2.44388376889697125915e-02, ++ 2.47923752071377255513e-02, ++ 2.51312067277732788251e-02, ++ 2.54551621192373560276e-02, ++ 2.57640799773376678872e-02, ++ 2.60578077034374286369e-02, ++ 2.63362015774511563915e-02, ++ 2.65991268256962030969e-02, ++ 2.68464576835671930866e-02, ++ 2.70780774530085012464e-02, ++ 2.72938785547578652291e-02, ++ 2.74937625753404746298e-02, ++ 2.76776403087958637605e-02, ++ 2.78454317931197334324e-02, ++ 2.79970663414113134226e-02, ++ 2.81324825677129637669e-02, ++ 2.82516284075390901320e-02, ++ 2.83544611330882809219e-02, ++ 2.84409473631392593906e-02, ++ 2.85110630676332979516e-02, ++ 2.85647935669472025078e-02, ++ 2.86021335258679100522e-02, ++ 2.86230869422767590649e-02, ++ 2.86276671305612032126e-02, ++ 2.86158966997688939127e-02, ++ 2.85878075265257568238e-02, ++ 2.85434407227408461216e-02, ++ 2.84828465981240355753e-02, ++ 2.84060846175463004026e-02, ++ 2.83132233532735408388e-02, ++ 2.82043404321091033260e-02, ++ 2.80795224774836003900e-02, ++ 2.79388650465300265868e-02, ++ 2.77824725621904008999e-02, ++ 2.76104582403968873416e-02, ++ 2.74229440123787519823e-02, ++ 2.72200604421439854019e-02, ++ 2.70019466391913931513e-02, ++ 2.67687501665088492531e-02, ++ 2.65206269439171582469e-02, ++ 2.62577411468211084633e-02, ++ 2.59802651004316341454e-02, ++ 2.56883791695271083977e-02, ++ 2.53822716438199466604e-02, ++ 2.50621386190043350661e-02, ++ 2.47281838735542228158e-02, ++ 2.43806187413515146334e-02, ++ 2.40196619802195698856e-02, ++ 2.36455396364462083758e-02, ++ 2.32584849053751770154e-02, ++ 2.28587379881527788528e-02, ++ 2.24465459447181145403e-02, ++ 2.20221625431206817491e-02, ++ 2.15858481052626192953e-02, ++ 2.11378693491531578774e-02, ++ 2.06784992277722831644e-02, ++ 2.02080167646385595870e-02, ++ 1.97267068861813506253e-02, ++ 1.92348602510139590760e-02, ++ 1.87327730762112433516e-02, ++ 1.82207469606941833973e-02, ++ 1.76990887058239218521e-02, ++ 1.71681101333155360089e-02, ++ 1.66281279005709090035e-02, ++ 1.60794633135482208097e-02, ++ 1.55224421372705916056e-02, ++ 1.49573944040871566891e-02, ++ 1.43846542198004401919e-02, ++ 1.38045595677690705744e-02, ++ 1.32174521111029039805e-02, ++ 1.26236769930632777847e-02, ++ 1.20235826357873512582e-02, ++ 1.14175205374468860531e-02, ++ 1.08058450679664186378e-02, ++ 1.01889132634121089283e-02, ++ 9.56708461917343822023e-03, ++ 8.94072088205428300300e-03, ++ 8.31018584139599399141e-03, ++ 7.67584511934790540699e-03, ++ 7.03806596040880416698e-03, ++ 6.39721702035818493709e-03, ++ 5.75366815469682043455e-03, ++ 5.10779020672127558739e-03, ++ 4.45995479534525007814e-03, ++ 3.81053410279771258631e-03, ++ 3.15990066231072903868e-03, ++ 2.50842714592023827147e-03, ++ 1.85648615250139353144e-03, ++ 1.20444999615454471746e-03, ++ 5.52690495064260415084e-04, ++-9.84212390521464980473e-05, ++-7.48515010783776918966e-04, ++-1.39722175004304473983e-03, ++-2.04417372013348868851e-03, ++-2.68900472475985721083e-03, ++-3.33135031386035986023e-03, ++-3.97084798814866836436e-03, ++-4.60713740224857979527e-03, ++-5.23986056631194768718e-03, ++-5.86866204600630658739e-03, ++-6.49318916075832062301e-03, ++-7.11309218015082015546e-03, ++-7.72802451835431433724e-03, ++-8.33764292649709012895e-03, ++-8.94160768285747094286e-03, ++-9.53958278078098804997e-03, ++-1.01312361142165130445e-02, ++-1.07162396607681370542e-02, ++-1.12942696621660988721e-02, ++-1.18650068020553327297e-02, ++-1.24281363810071557308e-02, ++-1.29833484886548687631e-02, ++-1.35303381728667914546e-02, ++-1.40688056058569672252e-02, ++-1.45984562471500062958e-02, ++-1.51190010033104265535e-02, ++-1.56301563843482677063e-02, ++-1.61316446567209455243e-02, ++-1.66231939928469449330e-02, ++-1.71045386170529077619e-02, ++-1.75754189478743681752e-02, ++-1.80355817366393243739e-02, ++-1.84847802022550938839e-02, ++-1.89227741621333586663e-02, ++-1.93493301591808192219e-02, ++-1.97642215847910959758e-02, ++-2.01672287977736237885e-02, ++-2.05581392391563748390e-02, ++-2.09367475428056254438e-02, ++-2.13028556418044003051e-02, ++-2.16562728705364630766e-02, ++-2.19968160624214870147e-02, ++-2.23243096432573610854e-02, ++-2.26385857201165559272e-02, ++-2.29394841657579208472e-02, ++-2.32268526985093780313e-02, ++-2.35005469575834645413e-02, ++-2.37604305737897300577e-02, ++-2.40063752356104789798e-02, ++-2.42382607506086561466e-02, ++-2.44559751021389444603e-02, ++-2.46594145013394015764e-02, ++-2.48484834343765149944e-02, ++-2.50230947049280248728e-02, ++-2.51831694718824584955e-02, ++-2.53286372822437155783e-02, ++-2.54594360992264553967e-02, ++-2.55755123255348194855e-02, ++-2.56768208218174157076e-02, ++-2.57633249202947785250e-02, ++-2.58349964335584103559e-02, ++-2.58918156585436348704e-02, ++-2.59337713756803804610e-02, ++-2.59608608432293705426e-02, ++-2.59730897868132928896e-02, ++-2.59704723841564268094e-02, ++-2.59530312450472130936e-02, ++-2.59207973865424462501e-02, ++-2.58738102034334269130e-02, ++-2.58121174339979962686e-02, ++-2.57357751210636476191e-02, ++-2.56448475684109972184e-02, ++-2.55394072925489191983e-02, ++-2.54195349698946651551e-02, ++-2.52853193793951269708e-02, ++-2.51368573406296827444e-02, ++-2.49742536474338513997e-02, ++-2.47976209970892889911e-02, ++-2.46070799151258470805e-02, ++-2.44027586757840746212e-02, ++-2.41847932181901530135e-02, ++-2.39533270582963850326e-02, ++-2.37085111966422665275e-02, ++-2.34505040219958535430e-02, ++-2.31794712109343950535e-02, ++-2.28955856234271913630e-02, ++-2.25990271944861188802e-02, ++-2.22899828219497650461e-02, ++-2.19686462504703923504e-02, ++-2.16352179517750840831e-02, ++-2.12899050012748461413e-02, ++-2.09329209510937253036e-02, ++-2.05644856995994759763e-02, ++-2.01848253575104240320e-02, ++-1.97941721106610450664e-02, ++-1.93927640795097180892e-02, ++-1.89808451754700721614e-02, ++-1.85586649541545842257e-02, ++-1.81264784656151936582e-02, ++-1.76845461016740639060e-02, ++-1.72331334404288091799e-02, ++-1.67725110880316378992e-02, ++-1.63029545178296972341e-02, ++-1.58247439069643912324e-02, ++-1.53381639705272194985e-02, ++-1.48435037933645017777e-02, ++-1.43410566596358455410e-02, ++-1.38311198802215200299e-02, ++-1.33139946180815798432e-02, ++-1.27899857116674387641e-02, ++-1.22594014964915645066e-02, ++-1.17225536249535751410e-02, ++-1.11797568845337768478e-02, ++-1.06313290144546303273e-02, ++-1.00775905209177212701e-02, ++-9.51886449102469674177e-03, ++-8.95547640548645211556e-03, ++-8.38775395023088309043e-03, ++-7.81602682701561073120e-03, ++-7.24062656315801675411e-03, ++-6.66188632048521009454e-03, ++-6.08014070362140109788e-03, ++-5.49572556771589591090e-03, ++-4.90897782572374818955e-03, ++-4.32023525535186938423e-03, ++-3.72983630577348361859e-03, ++-3.13811990422953454236e-03, ++-2.54542526261991586267e-03, ++-1.95209168419812327012e-03, ++-1.35845837047655643853e-03, ++-7.64864228454678000274e-04, ++-1.71647678275262160000e-04, ++ 4.20853538580006714207e-04, ++ 1.01230255044841479378e-03, ++ 1.60236354589089790082e-03, ++ 2.19070196323387957060e-03, ++ 2.77698467914542839949e-03, ++ 3.36088019613725542609e-03, ++ 3.94205882888990985502e-03, ++ 4.52019288929302043289e-03, ++ 5.09495687010455642479e-03, ++ 5.66602762711795274880e-03, ++ 6.23308455974283786433e-03, ++ 6.79580978989625592024e-03, ++ 7.35388833910371412378e-03, ++ 7.90700830371526483531e-03, ++ 8.45486102813735630745e-03, ++ 8.99714127598559912369e-03, ++ 9.53354739906401085769e-03, ++ 1.00637815040785765647e-02, ++ 1.05875496169915012112e-02, ++ 1.11045618449284663742e-02, ++ 1.16145325355499640790e-02, ++ 1.21171804337962679687e-02, ++ 1.26122288359273460739e-02, ++ 1.30994057407662432141e-02, ++ 1.35784439980698272421e-02, ++ 1.40490814539434016872e-02, ++ 1.45110610932224059350e-02, ++ 1.49641311787415132173e-02, ++ 1.54080453874216524723e-02, ++ 1.58425629430952868981e-02, ++ 1.62674487460044807363e-02, ++ 1.66824734989000737773e-02, ++ 1.70874138296747413168e-02, ++ 1.74820524104663498066e-02, ++ 1.78661780731680860934e-02, ++ 1.82395859212837498087e-02, ++ 1.86020774380712544671e-02, ++ 1.89534605909168415994e-02, ++ 1.92935499318850137151e-02, ++ 1.96221666943946111694e-02, ++ 1.99391388859692132718e-02, ++ 2.02443013770143460939e-02, ++ 2.05374959855790205354e-02, ++ 2.08185715580545618875e-02, ++ 2.10873840457748047694e-02, ++ 2.13437965774761310989e-02, ++ 2.15876795275838501142e-02, ++ 2.18189105802902433284e-02, ++ 2.20373747893947494192e-02, ++ 2.22429646338771422331e-02, ++ 2.24355800691775179867e-02, ++ 2.26151285741611890456e-02, ++ 2.27815251937450065356e-02, ++ 2.29346925771693951890e-02, ++ 2.30745610118978684844e-02, ++ 2.32010684531324534730e-02, ++ 2.33141605489318240463e-02, ++ 2.34137906609261335633e-02, ++ 2.34999198806205046586e-02, ++ 2.35725170412852368107e-02, ++ 2.36315587254308061282e-02, ++ 2.36770292678692914623e-02, ++ 2.37089207543672679523e-02, ++ 2.37272330158955317703e-02, ++ 2.37319736184848778526e-02, ++ 2.37231578487003234856e-02, ++ 2.37008086947469512329e-02, ++ 2.36649568232238372012e-02, ++ 2.36156405515453339528e-02, ++ 2.35529058160507051567e-02, ++ 2.34768061358264293337e-02, ++ 2.33874025722661145477e-02, ++ 2.32847636843980104748e-02, ++ 2.31689654800100834631e-02, ++ 2.30400913626058086170e-02, ++ 2.28982320742268929958e-02, ++ 2.27434856341802542345e-02, ++ 2.25759572737094099670e-02, ++ 2.23957593666531708243e-02, ++ 2.22030113561352687723e-02, ++ 2.19978396773321642488e-02, ++ 2.17803776763693009155e-02, ++ 2.15507655253935614947e-02, ++ 2.13091501338791566855e-02, ++ 2.10556850562188986598e-02, ++ 2.07905303956600374937e-02, ++ 2.05138527046431831669e-02, ++ 2.02258248816056598884e-02, ++ 1.99266260643129536345e-02, ++ 1.96164415197817541825e-02, ++ 1.92954625308645287551e-02, ++ 1.89638862795599161259e-02, ++ 1.86219157271243600238e-02, ++ 1.82697594910530766721e-02, ++ 1.79076317190069930763e-02, ++ 1.75357519597588440430e-02, ++ 1.71543450312383258249e-02, ++ 1.67636408857523670768e-02, ++ 1.63638744724620595339e-02, ++ 1.59552855971977040894e-02, ++ 1.55381187796942588780e-02, ++ 1.51126231083333045085e-02, ++ 1.46790520924749527676e-02, ++ 1.42376635124681055061e-02, ++ 1.37887192674271304160e-02, ++ 1.33324852208636900064e-02, ++ 1.28692310442640404228e-02, ++ 1.23992300587048714933e-02, ++ 1.19227590745975605552e-02, ++ 1.14400982296555958628e-02, ++ 1.09515308251813669321e-02, ++ 1.04573431607620833533e-02, ++ 9.95782436747753331441e-03, ++ 9.45326623971061603957e-03, ++ 8.94396306566137833105e-03, ++ 8.43021145666009164010e-03, ++ 7.91231017538069313078e-03, ++ 7.39055996305047670919e-03, ++ 6.86526336575661762229e-03, ++ 6.33672455995178390137e-03, ++ 5.80524917725282890713e-03, ++ 5.27114412864063391212e-03, ++ 4.73471742815538901294e-03, ++ 4.19627801619143914885e-03, ++ 3.65613558249144616347e-03, ++ 3.11460038894114266822e-03, ++ 2.57198309226452578868e-03, ++ 2.02859456672282133238e-03, ++ 1.48474572691466213253e-03, ++ 9.40747350779479814438e-04, ++ 3.96909902906757746776e-04, ++-1.46456641755227459385e-04, ++-6.89042973683567970891e-04, ++-1.23054062396519788870e-03, ++-1.77064213877926087543e-03, ++-2.30904125308122910865e-03, ++-2.84543306338863035906e-03, ++-3.37951419957442612471e-03, ++-3.91098299557036087337e-03, ++-4.43953965888237763598e-03, ++-4.96488643882942240482e-03, ++-5.48672779340401636783e-03, ++-6.00477055466794654159e-03, ++-6.51872409258721658559e-03, ++-7.02830047721765636265e-03, ++-7.53321463914807636086e-03, ++-8.03318452811570618555e-03, ++-8.52793126970340098492e-03, ++-9.01717932003300026711e-03, ++-9.50065661837041358639e-03, ++-9.97809473755507415904e-03, ++-1.04492290321770483347e-02, ++-1.09137987844132033910e-02, ++-1.13715473474486038208e-02, ++-1.18222222864012831839e-02, ++-1.22655755166751010560e-02, ++-1.27013634396638160073e-02, ++-1.31293470757343818528e-02, ++-1.35492921944166400117e-02, ++-1.39609694417272556244e-02, ++-1.43641544645633414262e-02, ++-1.47586280320936603927e-02, ++-1.51441761540860777430e-02, ++-1.55205901961063368055e-02, ++-1.58876669915270080091e-02, ++-1.62452089502858505743e-02, ++-1.65930241643379994265e-02, ++-1.69309265097449777870e-02, ++-1.72587357453450260247e-02, ++-1.75762776079578519894e-02, ++-1.78833839040674798249e-02, ++-1.81798925979421467647e-02, ++-1.84656478961397856053e-02, ++-1.87405003283600303521e-02, ++-1.90043068245987142872e-02, ++-1.92569307885670955305e-02, ++-1.94982421673372645354e-02, ++-1.97281175171806696933e-02, ++-1.99464400655660206718e-02, ++-2.01530997692852438530e-02, ++-2.03479933686821802541e-02, ++-2.05310244379545009386e-02, ++-2.07021034315073952647e-02, ++-2.08611477263374693603e-02, ++-2.10080816604267042735e-02, ++-2.11428365671300945439e-02, ++-2.12653508055429402157e-02, ++-2.13755697868347541157e-02, ++-2.14734459965394662573e-02, ++-2.15589390127965130350e-02, ++-2.16320155205337663618e-02, ++-2.16926493215929237779e-02, ++-2.17408213407943202988e-02, ++-2.17765196279432124427e-02, ++-2.17997393557822147225e-02, ++-2.18104828138950025684e-02, ++-2.18087593985702259125e-02, ++-2.17945855986363228041e-02, ++-2.17679849772805522612e-02, ++-2.17289881498666827275e-02, ++-2.16776327577697588977e-02, ++-2.16139634382471537699e-02, ++-2.15380317903683393688e-02, ++-2.14498963370269787876e-02, ++-2.13496224830621826596e-02, ++-2.12372824695176258547e-02, ++-2.11129553240687953264e-02, ++-2.09767268076514190600e-02, ++-2.08286893573265061153e-02, ++-2.06689420254178614356e-02, ++-2.04975904149630808182e-02, ++-2.03147466115173279400e-02, ++-2.01205291113544029735e-02, ++-1.99150627461096366155e-02, ++-1.96984786039120784995e-02, ++-1.94709139470550414430e-02, ++-1.92325121262560613800e-02, ++-1.89834224915587240767e-02, ++-1.87238002999316095754e-02, ++-1.84538066196213920711e-02, ++-1.81736082313160018931e-02, ++-1.78833775261818227198e-02, ++-1.75832924008327562415e-02, ++-1.72735361492968621244e-02, ++-1.69542973520454935688e-02, ++-1.66257697621504420271e-02, ++-1.62881521886383481834e-02, ++-1.59416483771111401613e-02, ++-1.55864668877057875596e-02, ++-1.52228209704614383946e-02, ++-1.48509284381741404196e-02, ++-1.44710115368087768872e-02, ++-1.40832968135484268984e-02, ++-1.36880149825567599964e-02, ++-1.32854007885348044532e-02, ++-1.28756928681500511930e-02, ++-1.24591336094203239404e-02, ++-1.20359690091351341501e-02, ++-1.16064485283965002776e-02, ++-1.11708249463664966578e-02, ++-1.07293542123018670331e-02, ++-1.02822952959679969620e-02, ++-9.82991003651416048181e-03, ++-9.37246298989989796990e-03, ++-8.91022127496175937733e-03, ++-8.44345441820766075269e-03, ++-7.97243419742989060939e-03, ++-7.49743448422606276194e-03, ++-7.01873108552144003153e-03, ++-6.53660158417858263430e-03, ++-6.05132517879274946238e-03, ++-5.56318252275954730490e-03, ++-5.07245556271012591060e-03, ++-4.57942737640496932289e-03, ++-4.08438201018109132978e-03, ++-3.58760431604305358652e-03, ++-3.08937978849174819246e-03, ++-2.58999440118657569057e-03, ++-2.08973444352780410305e-03, ++-1.58888635726068356765e-03, ++-1.08773657318487516898e-03, ++-5.86571348070346666216e-04, ++-8.56766018661410432358e-05, ++ 4.14662244703500838458e-04, ++ 9.14160432062568030845e-04, ++ 1.41253402313765564872e-03, ++ 1.90950006404986844660e-03, ++ 2.40477674405564865318e-03, ++ 2.89808355464306636670e-03, ++ 3.38914144770032432427e-03, ++ 3.87767299266011901057e-03, ++ 4.36340253253783821180e-03, ++ 4.84605633877375780588e-03, ++ 5.32536276479152106272e-03, ++ 5.80105239818985360389e-03, ++ 6.27285821148045302093e-03, ++ 6.74051571128982465742e-03, ++ 7.20376308593877450609e-03, ++ 7.66234135132374139660e-03, ++ 8.11599449501146374963e-03, ++ 8.56446961847351709296e-03, ++ 9.00751707737854762081e-03, ++ 9.44489061986596677156e-03, ++ 9.87634752272530808126e-03, ++ 1.03016487254043390825e-02, ++ 1.07205589617752304610e-02, ++ 1.11328468895841945635e-02, ++ 1.15382852175153500368e-02, ++ 1.19366508297968510616e-02, ++ 1.23277249082861840856e-02, ++ 1.27112930519620286746e-02, ++ 1.30871453937629941139e-02, ++ 1.34550767147076835023e-02, ++ 1.38148865552336977403e-02, ++ 1.41663793236976622014e-02, ++ 1.45093644019762355729e-02, ++ 1.48436562481129210450e-02, ++ 1.51690744959529933561e-02, ++ 1.54854440517186581205e-02, ++ 1.57925951874666216368e-02, ++ 1.60903636313842884897e-02, ++ 1.63785906548734767896e-02, ++ 1.66571231563775630502e-02, ++ 1.69258137419078108499e-02, ++ 1.71845208022262455061e-02, ++ 1.74331085866468830925e-02, ++ 1.76714472734152173994e-02, ++ 1.78994130366322383441e-02, ++ 1.81168881096860183433e-02, ++ 1.83237608451629584161e-02, ++ 1.85199257712043326152e-02, ++ 1.87052836442837197573e-02, ++ 1.88797414983780387221e-02, ++ 1.90432126905080711943e-02, ++ 1.91956169426277314938e-02, ++ 1.93368803798427274510e-02, ++ 1.94669355649397177177e-02, ++ 1.95857215292121362993e-02, ++ 1.96931837995691326471e-02, ++ 1.97892744219159630314e-02, ++ 1.98739519807974267251e-02, ++ 1.99471816152978105585e-02, ++ 2.00089350311917421599e-02, ++ 2.00591905093446473685e-02, ++ 2.00979329103609591356e-02, ++ 2.01251536754834259302e-02, ++ 2.01408508237461286727e-02, ++ 2.01450289453875622248e-02, ++ 2.01376991915322746396e-02, ++ 2.01188792601508376068e-02, ++ 2.00885933783103917682e-02, ++ 2.00468722807307861422e-02, ++ 1.99937531846619727383e-02, ++ 1.99292797611018770998e-02, ++ 1.98535021023752838998e-02, ++ 1.97664766860958553141e-02, ++ 1.96682663355367028102e-02, ++ 1.95589401764357864733e-02, ++ 1.94385735902649521567e-02, ++ 1.93072481639931514685e-02, ++ 1.91650516363770367922e-02, ++ 1.90120778408122484415e-02, ++ 1.88484266447838007263e-02, ++ 1.86742038859517046900e-02, ++ 1.84895213049142380368e-02, ++ 1.82944964746886706841e-02, ++ 1.80892527269562349013e-02, ++ 1.78739190751135354485e-02, ++ 1.76486301341811334387e-02, ++ 1.74135260376162073759e-02, ++ 1.71687523510813504213e-02, ++ 1.69144599832216704915e-02, ++ 1.66508050935038308393e-02, ++ 1.63779489971747002630e-02, ++ 1.60960580673943053076e-02, ++ 1.58053036346042924398e-02, ++ 1.55058618831906466079e-02, ++ 1.51979137455046566657e-02, ++ 1.48816447933020276628e-02, ++ 1.45572451266690657684e-02, ++ 1.42249092604983910781e-02, ++ 1.38848360085833399946e-02, ++ 1.35372283653998979475e-02, ++ 1.31822933856448436252e-02, ++ 1.28202420616024131972e-02, ++ 1.24512891984102161413e-02, ++ 1.20756532873008502055e-02, ++ 1.16935563768882661712e-02, ++ 1.13052239425808411649e-02, ++ 1.09108847541921957086e-02, ++ 1.05107707418293280094e-02, ++ 1.01051168601380188944e-02, ++ 9.69416095097974661599e-03, ++ 9.27814360462589186873e-03, ++ 8.85730801954525207020e-03, ++ 8.43189986086877521498e-03, ++ 8.00216711761173211948e-03, ++ 7.56835995873902413200e-03, ++ 7.13073058815158738327e-03, ++ 6.68953309868379475400e-03, ++ 6.24502332519116971910e-03, ++ 5.79745869681476747037e-03, ++ 5.34709808850850412676e-03, ++ 4.89420167191210314650e-03, ++ 4.43903076565723645613e-03, ++ 3.98184768519108632512e-03, ++ 3.52291559220632970878e-03, ++ 3.06249834375802321845e-03, ++ 2.60086034116042237249e-03, ++ 2.13826637874443706636e-03, ++ 1.67498149256396322397e-03, ++ 1.21127080913929915072e-03, ++ 7.47399394318058719021e-04, ++ 2.83632102346346049587e-04, ++-1.79766574769843468212e-04, ++-6.42532657524515324506e-04, ++-1.10440282870957989618e-03, ++-1.56511458266390263150e-03, ++-2.02440637389199361643e-03, ++-2.48201776496643914185e-03, ++-2.93768957363143169009e-03, ++-3.39116401902536928475e-03, ++-3.84218486693827703318e-03, ++-4.29049757402515802296e-03, ++-4.73584943089246784842e-03, ++-5.17798970397907992042e-03, ++-5.61666977614957031034e-03, ++-6.05164328592657299599e-03, ++-6.48266626527806404806e-03, ++-6.90949727588800570455e-03, ++-7.33189754383248466774e-03, ++-7.74963109258556843290e-03, ++-8.16246487428337087755e-03, ++-8.57016889917199681248e-03, ++-8.97251636316816550409e-03, ++-9.36928377346218227428e-03, ++-9.76025107209459868995e-03, ++-1.01452017574365904035e-02, ++-1.05239230035099728261e-02, ++-1.08962057770798960432e-02, ++-1.12618449524549517349e-02, ++-1.16206394239357687498e-02, ++-1.19723922158460008985e-02, ++-1.23169105900894394756e-02, ++-1.26540061511731961180e-02, ++-1.29834949486409296365e-02, ++-1.33051975768588605364e-02, ++-1.36189392721043061457e-02, ++-1.39245500069003491639e-02, ++-1.42218645815492452517e-02, ++-1.45107227128146703404e-02, ++-1.47909691197041746891e-02, ++-1.50624536063089509152e-02, ++-1.53250311416544826582e-02, ++-1.55785619365223330923e-02, ++-1.58229115171997537781e-02, ++-1.60579507961227489765e-02, ++-1.62835561393713836031e-02, ++-1.64996094309859363258e-02, ++-1.67059981340693386453e-02, ++-1.69026153486439532914e-02, ++-1.70893598662360153562e-02, ++-1.72661362211572987080e-02, ++-1.74328547384603599335e-02, ++-1.75894315785435489952e-02, ++-1.77357887783837660234e-02, ++-1.78718542893771675795e-02, ++-1.79975620117707353629e-02, ++-1.81128518256681338150e-02, ++-1.82176696185966900676e-02, ++-1.83119673096232941922e-02, ++-1.83957028700091167195e-02, ++-1.84688403403957639159e-02, ++-1.85313498445167090800e-02, ++-1.85832075994299093791e-02, ++-1.86243959222697728906e-02, ++-1.86549032335186701359e-02, ++-1.86747240567995964611e-02, ++-1.86838590151944261564e-02, ++-1.86823148240932573882e-02, ++-1.86701042805831954330e-02, ++-1.86472462493857613075e-02, ++-1.86137656453560576542e-02, ++-1.85696934125556128992e-02, ++-1.85150664999163827584e-02, ++-1.84499278335122293693e-02, ++-1.83743262854581951293e-02, ++-1.82883166394587175219e-02, ++-1.81919595530277734829e-02, ++-1.80853215164069915100e-02, ++-1.79684748082077037912e-02, ++-1.78414974478062274277e-02, ++-1.77044731445240056955e-02, ++-1.75574912436227900669e-02, ++-1.74006466691516183121e-02, ++-1.72340398636801027388e-02, ++-1.70577767249556339069e-02, ++-1.68719685395252033677e-02, ++-1.66767319133613971249e-02, ++-1.64721886995365836281e-02, ++-1.62584659229890703125e-02, ++-1.60356957024269768108e-02, ++-1.58040151694183554631e-02, ++-1.55635663847157393325e-02, ++-1.53144962518665349316e-02, ++-1.50569564281600679762e-02, ++-1.47911032329673657743e-02, ++-1.45170975535258116318e-02, ++-1.42351047482265624655e-02, ++-1.39452945474637136913e-02, ++-1.36478409521007416211e-02, ++-1.33429221296188608992e-02, ++-1.30307203080056444033e-02, ++-1.27114216674486905923e-02, ++-1.23852162298968091619e-02, ++-1.20522977465561034055e-02, ++-1.17128635833847836306e-02, ++-1.13671146046554968900e-02, ++-1.10152550546535922538e-02, ++-1.06574924375795083986e-02, ++-1.02940373957274844408e-02, ++-9.92510358600978345733e-03, ++-9.55090755489973984582e-03, ++-9.17166861186629808755e-03, ++-8.78760870137362294641e-03, ++-8.39895227351954501427e-03, ++-8.00592615338992057150e-03, ++-7.60875940920200354023e-03, ++-7.20768321931454427481e-03, ++-6.80293073818321551022e-03, ++-6.39473696133400267699e-03, ++-5.98333858943855649570e-03, ++-5.56897389156482680583e-03, ++-5.15188256768454866386e-03, ++-4.73230561051499881708e-03, ++-4.31048516677632470584e-03, ++-3.88666439794171014385e-03, ++-3.46108734056119323949e-03, ++-3.03399876624102851630e-03, ++-2.60564404135369374893e-03, ++-2.17626898656492900885e-03, ++-1.74611973625276640544e-03, ++-1.31544259790159325310e-03, ++-8.84483911549698064228e-04, ++-4.53489909372157390909e-04, ++-2.27065754763732153979e-05, ++ 4.07620494008173754521e-04, ++ 8.37246230468182989909e-04, ++ 1.26592623189187344218e-03, ++ 1.69341690142426519808e-03, ++ 2.11947558531578586147e-03, ++ 2.54386071017997711027e-03, ++ 2.96633191949158747311e-03, ++ 3.38665020924181978113e-03, ++ 3.80457806267612890991e-03, ++ 4.21987958404042469429e-03, ++ 4.63232063125803249226e-03, ++ 5.04166894746706922836e-03, ++ 5.44769429133779015118e-03, ++ 5.85016856610528698801e-03, ++ 6.24886594723963670339e-03, ++ 6.64356300868360755141e-03, ++ 7.03403884758925946469e-03, ++ 7.42007520748272191013e-03, ++ 7.80145659978820089214e-03, ++ 8.17797042364491223732e-03, ++ 8.54940708395133565356e-03, ++ 8.91556010756844319332e-03, ++ 9.27622625762106536862e-03, ++ 9.63120564583299677841e-03, ++ 9.98030184283307808535e-03, ++ 1.03233219863735226768e-02, ++ 1.06600768874003729025e-02, ++ 1.09903811339163819116e-02, ++ 1.13140531925830963023e-02, ++ 1.16309155080034538898e-02, ++ 1.19407945996319476284e-02, ++ 1.22435211562607008245e-02, ++ 1.25389301280292575491e-02, ++ 1.28268608159079269826e-02, ++ 1.31071569586075614006e-02, ++ 1.33796668168697750756e-02, ++ 1.36442432550884507059e-02, ++ 1.39007438202245533349e-02, ++ 1.41490308179680942396e-02, ++ 1.43889713861080018736e-02, ++ 1.46204375650716145163e-02, ++ 1.48433063655967166505e-02, ++ 1.50574598334992579285e-02, ++ 1.52627851115045704011e-02, ++ 1.54591744981103021428e-02, ++ 1.56465255034476218021e-02, ++ 1.58247409021165554022e-02, ++ 1.59937287829656459015e-02, ++ 1.61534025957906987592e-02, ++ 1.63036811949317031467e-02, ++ 1.64444888797439722761e-02, ++ 1.65757554319247296659e-02, ++ 1.66974161496777871727e-02, ++ 1.68094118786993561299e-02, ++ 1.69116890399709611514e-02, ++ 1.70041996543472719028e-02, ++ 1.70869013639282085748e-02, ++ 1.71597574502064462165e-02, ++ 1.72227368489833373988e-02, ++ 1.72758141620482467971e-02, ++ 1.73189696656185082579e-02, ++ 1.73521893155377665563e-02, ++ 1.73754647492341991744e-02, ++ 1.73887932844398809817e-02, ++ 1.73921779146764994561e-02, ++ 1.73856273015124823678e-02, ++ 1.73691557636001317477e-02, ++ 1.73427832625017742940e-02, ++ 1.73065353853169359710e-02, ++ 1.72604433241233257146e-02, ++ 1.72045438522471921816e-02, ++ 1.71388792973795056618e-02, ++ 1.70634975115566134285e-02, ++ 1.69784518380263448056e-02, ++ 1.68838010750209793764e-02, ++ 1.67796094364609134353e-02, ++ 1.66659465096161037156e-02, ++ 1.65428872097501365734e-02, ++ 1.64105117317781858122e-02, ++ 1.62689054989683147545e-02, ++ 1.61181591087189469980e-02, ++ 1.59583682754456043784e-02, ++ 1.57896337706140629797e-02, ++ 1.56120613599556659623e-02, ++ 1.54257617379032624383e-02, ++ 1.52308504592903026092e-02, ++ 1.50274478683518758482e-02, ++ 1.48156790250726522890e-02, ++ 1.45956736289267492018e-02, ++ 1.43675659400543699606e-02, ++ 1.41314946979236334690e-02, ++ 1.38876030375264993694e-02, ++ 1.36360384031594637777e-02, ++ 1.33769524598382864855e-02, ++ 1.31105010024045141870e-02, ++ 1.28368438623721048408e-02, ++ 1.25561448125739872489e-02, ++ 1.22685714696633887261e-02, ++ 1.19742951945275791920e-02, ++ 1.16734909906738484192e-02, ++ 1.13663374006453127274e-02, ++ 1.10530164005323595922e-02, ++ 1.07337132926358554130e-02, ++ 1.04086165963493543218e-02, ++ 1.00779179373233617606e-02, ++ 9.74181193497532758874e-03, ++ 9.40049608841225445288e-03, ++ 9.05417066083279500899e-03, ++ 8.70303856247552944103e-03, ++ 8.34730523218016502718e-03, ++ 7.98717851763572177226e-03, ++ 7.62286855437785230982e-03, ++ 7.25458764361144089333e-03, ++ 6.88255012892701172750e-03, ++ 6.50697227198192371805e-03, ++ 6.12807212721856470888e-03, ++ 5.74606941569283727334e-03, ++ 5.36118539808457146567e-03, ++ 4.97364274696218688909e-03, ++ 4.58366541837830314410e-03, ++ 4.19147852286664863303e-03, ++ 3.79730819591561500129e-03, ++ 3.40138146799415100677e-03, ++ 3.00392613420201199520e-03, ++ 2.60517062362004749726e-03, ++ 2.20534386843704386522e-03, ++ 1.80467517292383881899e-03, ++ 1.40339408233299683948e-03, ++ 1.00173025179804741150e-03, ++ 5.99913315305479412538e-04, ++ 1.98172754814968598257e-04, ++-2.03262230396802987941e-04, ++-6.04162854095924620711e-04, ++-1.00430087308224437644e-03, ++-1.40344871673197396644e-03, ++-1.80137961602673795508e-03, ++-2.19786773199013999239e-03, ++-2.59268828346089896114e-03, ++-2.98561767413182141753e-03, ++-3.37643361878200423329e-03, ++-3.76491526863040370035e-03, ++-4.15084333574143593548e-03, ++-4.53400021641445216680e-03, ++-4.91417011348194241599e-03, ++-5.29113915745588105771e-03, ++-5.66469552644815847742e-03, ++-6.03462956480155590655e-03, ++-6.40073390036281514998e-03, ++-6.76280356033400701504e-03, ++-7.12063608563857919354e-03, ++-7.47403164373383350344e-03, ++-7.82279313981379918752e-03, ++-8.16672632633589495876e-03, ++-8.50563991081211730194e-03, ++-8.83934566180608928543e-03, ++-9.16765851307686438498e-03, ++-9.49039666581114917110e-03, ++-9.80738168888878152074e-03, ++-1.01184386171277399674e-02, ++-1.04233960474500557403e-02, ++-1.07220862329222184350e-02, ++-1.10143451746142415071e-02, ++-1.13000127112285256303e-02, ++-1.15789326064506051250e-02, ++-1.18509526339738002071e-02, ++-1.21159246601509965058e-02, ++-1.23737047242299964128e-02, ++-1.26241531161297524527e-02, ++-1.28671344517128152796e-02, ++-1.31025177455174803715e-02, ++-1.33301764809086713964e-02, ++-1.35499886776097172580e-02, ++-1.37618369565811367317e-02, ++-1.39656086022109764133e-02, ++-1.41611956217838150934e-02, ++-1.43484948021984325128e-02, ++-1.45274077639039357612e-02, ++-1.46978410120258608934e-02, ++-1.48597059846577242426e-02, ++-1.50129190982918585967e-02, ++-1.51574017903672395718e-02, ++-1.52930805589124932387e-02, ++-1.54198869992662364325e-02, ++-1.55377578378534803027e-02, ++-1.56466349630057406650e-02, ++-1.57464654528072754702e-02, ++-1.58372015999561979727e-02, ++-1.59188009336289001960e-02, ++-1.59912262383383775577e-02, ++-1.60544455697791341175e-02, ++-1.61084322676517156803e-02, ++-1.61531649654640882541e-02, ++-1.61886275973061356803e-02, ++-1.62148094015971411253e-02, ++-1.62317049218069497929e-02, ++-1.62393140041536092333e-02, ++-1.62376417922817130324e-02, ++-1.62266987189277553383e-02, ++-1.62065004945800873737e-02, ++-1.61770680931431522220e-02, ++-1.61384277346172493040e-02, ++-1.60906108648061207944e-02, ++-1.60336541320681771894e-02, ++-1.59675993611263326855e-02, ++-1.58924935239547066024e-02, ++-1.58083887077626328299e-02, ++-1.57153420800955900827e-02, ++-1.56134158510770112288e-02, ++-1.55026772328152578212e-02, ++-1.53831983960010937329e-02, ++-1.52550564237238350102e-02, ++-1.51183332625351458250e-02, ++-1.49731156707911920722e-02, ++-1.48194951643046812090e-02, ++-1.46575679593417048524e-02, ++-1.44874349129977750272e-02, ++-1.43092014609884597698e-02, ++-1.41229775528962445130e-02, ++-1.39288775849084438263e-02, ++-1.37270203300904457960e-02, ++-1.35175288662355702618e-02, ++-1.33005305013339011205e-02, ++-1.30761566967065763489e-02, ++-1.28445429878512040744e-02, ++-1.26058289030446593615e-02, ++-1.23601578797534680798e-02, ++-1.21076771789009329794e-02, ++-1.18485377970418380433e-02, ++-1.15828943764964987367e-02, ++-1.13109051134989493925e-02, ++-1.10327316644120605738e-02, ++-1.07485390500640064226e-02, ++-1.04584955582669985458e-02, ++-1.01627726445692283253e-02, ++-9.86154483130371323218e-03, ++-9.55498960498988268719e-03, ++-9.24328731215033269630e-03, ++-8.92662105360215486771e-03, ++-8.60517657728362625469e-03, ++-8.27914216968341290515e-03, ++-7.94870854592883563372e-03, ++-7.61406873860231547119e-03, ++-7.27541798534921645147e-03, ++-6.93295361534090708033e-03, ++-6.58687493466020984600e-03, ++-6.23738311067596751247e-03, ++-5.88468105547270119854e-03, ++-5.52897330840119299866e-03, ++-5.17046591782320454772e-03, ++-4.80936632211110496465e-03, ++-4.44588322997643489720e-03, ++-4.08022650019468531568e-03, ++-3.71260702079436550813e-03, ++-3.34323658778045351356e-03, ++-2.97232778346277022249e-03, ++-2.60009385445763652536e-03, ++-2.22674858943125442146e-03, ++-1.85250619666033739495e-03, ++-1.47758118147215886107e-03, ++-1.10218822363969577716e-03, ++-7.26542054800227666764e-04, ++-3.50857335965947274205e-04, ++ 2.46514648028058004550e-05, ++ 3.99770194491305848588e-04, ++ 7.74285136923100344129e-04, ++ 1.14798313418393348531e-03, ++ 1.52065170760259482478e-03, ++ 1.89207917822773732594e-03, ++ 2.26205478672706098917e-03, ++ 2.63036881264248683862e-03, ++ 2.99681269293534556161e-03, ++ 3.36117913975389048103e-03, ++ 3.72326225735529307836e-03, ++ 4.08285765811985511958e-03, ++ 4.43976257758913958607e-03, ++ 4.79377598846415613199e-03, ++ 5.14469871350105301122e-03, ++ 5.49233353723946847447e-03, ++ 5.83648531650244987989e-03, ++ 6.17696108960405759064e-03, ++ 6.51357018420694721533e-03, ++ 6.84612432376711325249e-03, ++ 7.17443773250708155542e-03, ++ 7.49832723886042704087e-03, ++ 7.81761237732933426947e-03, ++ 8.13211548869811375051e-03, ++ 8.44166181854820452113e-03, ++ 8.74607961402130464068e-03, ++ 9.04520021877286591050e-03, ++ 9.33885816606978835797e-03, ++ 9.62689126997642689865e-03, ++ 9.90914071458013148708e-03, ++ 1.01854511412086366773e-02, ++ 1.04556707335903883299e-02, ++ 1.07196513009111780990e-02, ++ 1.09772483587224512630e-02, ++ 1.12283212076583951283e-02, ++ 1.14727330099153260884e-02, ++ 1.17103508634570831898e-02, ++ 1.19410458739028241953e-02, ++ 1.21646932240592649255e-02, ++ 1.23811722410611373818e-02, ++ 1.25903664610832344978e-02, ++ 1.27921636915890018366e-02, ++ 1.29864560710836914048e-02, ++ 1.31731401263407224556e-02, ++ 1.33521168270687006635e-02, ++ 1.35232916379940497353e-02, ++ 1.36865745683296211738e-02, ++ 1.38418802186039205382e-02, ++ 1.39891278248280535867e-02, ++ 1.41282412999769145523e-02, ++ 1.42591492727635726218e-02, ++ 1.43817851236876445564e-02, ++ 1.44960870183408006145e-02, ++ 1.46019979379505230460e-02, ++ 1.46994657071504129797e-02, ++ 1.47884430189622918805e-02, ++ 1.48688874569784020702e-02, ++ 1.49407615147348158541e-02, ++ 1.50040326122672287162e-02, ++ 1.50586731098424179975e-02, ++ 1.51046603188603172779e-02, ++ 1.51419765099236949824e-02, ++ 1.51706089180728420640e-02, ++ 1.51905497451859678587e-02, ++ 1.52017961595458175883e-02, ++ 1.52043502925764267841e-02, ++ 1.51982192327537388166e-02, ++ 1.51834150166969984036e-02, ++ 1.51599546174485608208e-02, ++ 1.51278599299513004384e-02, ++ 1.50871577537351683751e-02, ++ 1.50378797728247023263e-02, ++ 1.49800625328825147420e-02, ++ 1.49137474156039364498e-02, ++ 1.48389806103799235665e-02, ++ 1.47558130832480607908e-02, ++ 1.46643005431505314001e-02, ++ 1.45645034055218620950e-02, ++ 1.44564867532300453390e-02, ++ 1.43403202948947962325e-02, ++ 1.42160783206099778503e-02, ++ 1.40838396550982923594e-02, ++ 1.39436876083266405452e-02, ++ 1.37957099236124917929e-02, ++ 1.36399987232554212313e-02, ++ 1.34766504517241942490e-02, ++ 1.33057658164359091102e-02, ++ 1.31274497261638489060e-02, ++ 1.29418112271095040594e-02, ++ 1.27489634366789363756e-02, ++ 1.25490234750032566419e-02, ++ 1.23421123942442402532e-02, ++ 1.21283551057263516704e-02, ++ 1.19078803049420742233e-02, ++ 1.16808203944710996269e-02, ++ 1.14473114048624195760e-02, ++ 1.12074929135256729645e-02, ++ 1.09615079616787580025e-02, ++ 1.07095029694022052941e-02, ++ 1.04516276488501973219e-02, ++ 1.01880349156695994978e-02, ++ 9.91888079867737047779e-03, ++ 9.64432434785405211242e-03, ++ 9.36452754070147760923e-03, ++ 9.07965518702451984678e-03, ++ 8.78987483218966227094e-03, ++ 8.49535665891908500780e-03, ++ 8.19627338767603061398e-03, ++ 7.89280017569949157719e-03, ++ 7.58511451474948479590e-03, ++ 7.27339612761909639488e-03, ++ 6.95782686347547630473e-03, ++ 6.63859059209071476759e-03, ++ 6.31587309702252765881e-03, ++ 5.98986196780740103029e-03, ++ 5.66074649122982193061e-03, ++ 5.32871754172747295192e-03, ++ 4.99396747099837244599e-03, ++ 4.65668999687305143476e-03, ++ 4.31708009151461624686e-03, ++ 3.97533386901183748152e-03, ++ 3.63164847243082006614e-03, ++ 3.28622196038877781299e-03, ++ 2.93925319321392116909e-03, ++ 2.59094171876164420382e-03, ++ 2.24148765794563754883e-03, ++ 1.89109159005432995830e-03, ++ 1.53995443791703993247e-03, ++ 1.18827735298423120720e-03, ++ 8.36261600388259543348e-04, ++ 4.84108444050918994457e-04, ++ 1.32019031902150203511e-04, ++-2.19805718726241933539e-04, ++-5.71165235461442008166e-04, ++-9.21859404947263896997e-04, ++-1.27168868652862017930e-03, ++-1.62045422549978823494e-03, ++-1.96795796585350459343e-03, ++-2.31400276246625583032e-03, ++-2.65839249265560281787e-03, ++-3.00093216704766258679e-03, ++-3.34142803969362210681e-03, ++-3.67968771736809294182e-03, ++-4.01552026799475991758e-03, ++-4.34873632813331280345e-03, ++-4.67914820946864051104e-03, ++-5.00657000424378773040e-03, ++-5.33081768957552153132e-03, ++-5.65170923059745127642e-03, ++-5.96906468236742954181e-03, ++-6.28270629048909966946e-03, ++-6.59245859038667947338e-03, ++-6.89814850517884731868e-03, ++-7.19960544209851966563e-03, ++-7.49666138740393440260e-03, ++-7.78915099972798865430e-03, ++-8.07691170181503576009e-03, ++-8.35978377059490469769e-03, ++-8.63761042554191810217e-03, ++-8.91023791527316942618e-03, ++-9.17751560233688937207e-03, ++-9.43929604614376221994e-03, ++-9.69543508399723329150e-03, ++-9.94579191017774290329e-03, ++-1.01902291530364327854e-02, ++-1.04286129500589536817e-02, ++-1.06608130208563391117e-02, ++-1.08867027380436017653e-02, ++-1.11061591959687958747e-02, ++-1.13190632772547025708e-02, ++-1.15252997171166309681e-02, ++-1.17247571654230976768e-02, ++-1.19173282464660659080e-02, ++-1.21029096164066742036e-02, ++-1.22814020183694711658e-02, ++-1.24527103351532476838e-02, ++-1.26167436395315489539e-02, ++-1.27734152421167899277e-02, ++-1.29226427367628814158e-02, ++-1.30643480434822645969e-02, ++-1.31984574488560428562e-02, ++-1.33249016439166492742e-02, ++-1.34436157594821689004e-02, ++-1.35545393989273295354e-02, ++-1.36576166683727209111e-02, ++-1.37527962042781285584e-02, ++-1.38400311984271696952e-02, ++-1.39192794202912337870e-02, ++-1.39905032367616116717e-02, ++-1.40536696292427546601e-02, ++-1.41087502080980680547e-02, ++-1.41557212244426133818e-02, ++-1.41945635792792845820e-02, ++-1.42252628299752575947e-02, ++-1.42478091940773932134e-02, ++-1.42621975504671379131e-02, ++-1.42684274378570910558e-02, ++-1.42665030506319845394e-02, ++-1.42564332320393345743e-02, ++-1.42382314647362499815e-02, ++-1.42119158586999447952e-02, ++-1.41775091365116089059e-02, ++-1.41350386160245498901e-02, ++-1.40845361904284333693e-02, ++-1.40260383057241797000e-02, ++-1.39595859356245310251e-02, ++-1.38852245538964112065e-02, ++-1.38030041041644433580e-02, ++-1.37129789671941813151e-02, ++-1.36152079256764129561e-02, ++-1.35097541265353955631e-02, ++-1.33966850407841280013e-02, ++-1.32760724209521549510e-02, ++-1.31479922561130030401e-02, ++-1.30125247245378994343e-02, ++-1.28697541440061513640e-02, ++-1.27197689198022458740e-02, ++-1.25626614904315592192e-02, ++-1.23985282710872991158e-02, ++-1.22274695949040924925e-02, ++-1.20495896520329080076e-02, ++-1.18649964265733695590e-02, ++-1.16738016314043534238e-02, ++-1.14761206409479885049e-02, ++-1.12720724219102334807e-02, ++-1.10617794620386598187e-02, ++-1.08453676969394192248e-02, ++-1.06229664349969266796e-02, ++-1.03947082804420436186e-02, ++-1.01607290546128509884e-02, ++-9.92116771545450623626e-03, ++-9.67616627530844784777e-03, ++-9.42586971703506318332e-03, ++-9.17042590852275470159e-03, ++-8.90998551563223703531e-03, ++-8.64470191362698078819e-03, ++-8.37473109714258721892e-03, ++-8.10023158874558640852e-03, ++-7.82136434613948418326e-03, ++-7.53829266806671071527e-03, ++-7.25118209896521460911e-03, ++-6.96020033243441478554e-03, ++-6.66551711356555987714e-03, ++-6.36730414019388325786e-03, ++-6.06573496313063138113e-03, ++-5.76098488543169522103e-03, ++-5.45323086076018610086e-03, ++-5.14265139090599315841e-03, ++-4.82942642251557672367e-03, ++-4.51373724309595599630e-03, ++-4.19576637635184213071e-03, ++-3.87569747691505085002e-03, ++-3.55371522452749104282e-03, ++-3.23000521773942998738e-03, ++-2.90475386718291829144e-03, ++-2.57814828848035217795e-03, ++-2.25037619485449289641e-03, ++-1.92162578949469156631e-03, ++-1.59208565774584761589e-03, ++-1.26194465918040934528e-03, ++-9.31391819614034682621e-04, ++-6.00616223127062396486e-04, ++-2.69806904154944583816e-04, ++ 6.08472602942396962656e-05, ++ 3.91157658230999324359e-04, ++ 7.20936050023826264892e-04, ++ 1.04999467542699867657e-03, ++ 1.37814636023528779528e-03, ++ 1.70520462250435696737e-03, ++ 2.03098377827778953097e-03, ++ 2.35529904676215007600e-03, ++ 2.67796665488591583565e-03, ++ 2.99880394118968215261e-03, ++ 3.31762945898433653930e-03, ++ 3.63426307872031237670e-03, ++ 3.94852608951128981885e-03, ++ 4.26024129975459756037e-03, ++ 4.56923313679098372364e-03, ++ 4.87532774554888699570e-03, ++ 5.17835308611915706711e-03, ++ 5.47813903020093976443e-03, ++ 5.77451745637115685522e-03, ++ 6.06732234411917498856e-03, ++ 6.35638986659726578504e-03, ++ 6.64155848203327753981e-03, ++ 6.92266902375569294359e-03, ++ 7.19956478878218397721e-03, ++ 7.47209162491841317327e-03, ++ 7.74009801632427347357e-03, ++ 8.00343516749617983619e-03, ++ 8.26195708562018661658e-03, ++ 8.51552066125116358108e-03, ++ 8.76398574727313937893e-03, ++ 9.00721523609652845177e-03, ++ 9.24507513505131058029e-03, ++ 9.47743463993477690266e-03, ++ 9.70416620667113177801e-03, ++ 9.92514562104791428498e-03, ++ 1.01402520664879789575e-02, ++ 1.03493681898213143316e-02, ++ 1.05523801650215433984e-02, ++ 1.07491777548722518970e-02, ++ 1.09396543705291681564e-02, ++ 1.11237071289475124292e-02, ++ 1.13012369081435404966e-02, ++ 1.14721484002587425371e-02, ++ 1.16363501624019635705e-02, ++ 1.17937546652395908869e-02, ++ 1.19442783393092378380e-02, ++ 1.20878416190330750107e-02, ++ 1.22243689844071853207e-02, ++ 1.23537890003452277554e-02, ++ 1.24760343536569357631e-02, ++ 1.25910418876418357670e-02, ++ 1.26987526342805939761e-02, ++ 1.27991118440086270452e-02, ++ 1.28920690130565843839e-02, ++ 1.29775779083439509604e-02, ++ 1.30555965899154108323e-02, ++ 1.31260874309076600724e-02, ++ 1.31890171350384308863e-02, ++ 1.32443567516100473014e-02, ++ 1.32920816880211477284e-02, ++ 1.33321717197816842077e-02, ++ 1.33646109980275606260e-02, ++ 1.33893880545334492682e-02, ++ 1.34064958042229027263e-02, ++ 1.34159315451764481197e-02, ++ 1.34176969561404253045e-02, ++ 1.34117980915397661673e-02, ++ 1.33982453740004014281e-02, ++ 1.33770535843872502568e-02, ++ 1.33482418493662668285e-02, ++ 1.33118336264995938689e-02, ++ 1.32678566868845784765e-02, ++ 1.32163430953490413505e-02, ++ 1.31573291882161602651e-02, ++ 1.30908555486537094698e-02, ++ 1.30169669796242129522e-02, ++ 1.29357124744537473754e-02, ++ 1.28471451850375104065e-02, ++ 1.27513223877034967413e-02, ++ 1.26483054467555582068e-02, ++ 1.25381597757181027092e-02, ++ 1.24209547963076202132e-02, ++ 1.22967638951557260707e-02, ++ 1.21656643783110817586e-02, ++ 1.20277374235470257274e-02, ++ 1.18830680305065279623e-02, ++ 1.17317449687113807555e-02, ++ 1.15738607234699020926e-02, ++ 1.14095114397158373110e-02, ++ 1.12387968638101957974e-02, ++ 1.10618202833434337712e-02, ++ 1.08786884649728424201e-02, ++ 1.06895115903328993823e-02, ++ 1.04944031900558870651e-02, ++ 1.02934800759447477037e-02, ++ 1.00868622713343389363e-02, ++ 9.87467293968604525878e-03, ++ 9.65703831145729371666e-03, ++ 9.43408760928757944564e-03, ++ 9.20595297154692439323e-03, ++ 8.97276937429128222667e-03, ++ 8.73467455167086133383e-03, ++ 8.49180891483720598489e-03, ++ 8.24431546939977458188e-03, ++ 7.99233973147535532722e-03, ++ 7.73602964238361088395e-03, ++ 7.47553548203802858269e-03, ++ 7.21100978108041128223e-03, ++ 6.94260723181349802963e-03, ++ 6.67048459797950268196e-03, ++ 6.39480062344236106775e-03, ++ 6.11571593982157112740e-03, ++ 5.83339297313448506416e-03, ++ 5.54799584949982379362e-03, ++ 5.25969029995765075675e-03, ++ 4.96864356445977841531e-03, ++ 4.67502429508827137272e-03, ++ 4.37900245855606801149e-03, ++ 4.08074923804454484794e-03, ++ 3.78043693443984004168e-03, ++ 3.47823886701886190315e-03, ++ 3.17432927364564567915e-03, ++ 2.86888321053426365720e-03, ++ 2.56207645163618802017e-03, ++ 2.25408538770850491381e-03, ++ 1.94508692512463700341e-03, ++ 1.63525838447931698427e-03, ++ 1.32477739905105789536e-03, ++ 1.01382181317911045614e-03, ++ 7.02569580610471595104e-04, ++ 3.91198662877513612512e-04, ++ 7.98869277630744821202e-05, ++-2.31187952088860002205e-04, ++-5.41848600360482837712e-04, ++-8.51918037984115972261e-04, ++-1.16121978375175968247e-03, ++-1.46957795454782155081e-03, ++-1.77681736514933067382e-03, ++-2.08276362753950002732e-03, ++-2.38724324967590261284e-03, ++-2.69008373365854430367e-03, ++-2.99111367324205812759e-03, ++-3.29016285063819195061e-03, ++-3.58706233255040498470e-03, ++-3.88164456539251325612e-03, ++-4.17374346963266494581e-03, ++-4.46319453321069280205e-03, ++-4.74983490397884282330e-03, ++-5.03350348111142233826e-03, ++-5.31404100543327127110e-03, ++-5.59129014861656486318e-03, ++-5.86509560119571633080e-03, ++-6.13530415935167362795e-03, ++-6.40176481041693050400e-03, ++-6.66432881705371002456e-03, ++-6.92284980005934951625e-03, ++-7.17718381975063907108e-03, ++-7.42718945588436395278e-03, ++-7.67272788607022311613e-03, ++-7.91366296262873900047e-03, ++-8.14986128785674147912e-03, ++-8.38119228765579413198e-03, ++-8.60752828348398772718e-03, ++-8.82874456259165676930e-03, ++-9.04471944650279101319e-03, ++-9.25533435770336740389e-03, ++-9.46047388450147082317e-03, ++-9.66002584402477111614e-03, ++-9.85388134331765391805e-03, ++-1.00419348385086572295e-02, ++-1.02240841920141073418e-02, ++-1.04002307277476988001e-02, ++-1.05702792843059330957e-02, ++-1.07341382661022052142e-02, ++-1.08917196924194058932e-02, ++-1.10429392443588056394e-02, ++-1.11877163096573035983e-02, ++-1.13259740253500613971e-02, ++-1.14576393182570599599e-02, ++-1.15826429432718831097e-02, ++-1.17009195194323206701e-02, ++-1.18124075637551975010e-02, ++-1.19170495228175868374e-02, ++-1.20147918020679297935e-02, ++-1.21055847928538372338e-02, ++-1.21893828971518514148e-02, ++-1.22661445499873279080e-02, ++-1.23358322395343555922e-02, ++-1.23984125248859967938e-02, ++-1.24538560514863300838e-02, ++-1.25021375642184340987e-02, ++-1.25432359181423137146e-02, ++-1.25771340868788758516e-02, ++-1.26038191686375488504e-02, ++-1.26232823898858471240e-02, ++-1.26355191066611412948e-02, ++-1.26405288035257891421e-02, ++-1.26383150901686648615e-02, ++-1.26288856956566081235e-02, ++-1.26122524603418419142e-02, ++-1.25884313254311982350e-02, ++-1.25574423202261184485e-02, ++-1.25193095470420810711e-02, ++-1.24740611638184551585e-02, ++-1.24217293644305545874e-02, ++-1.23623503567175385687e-02, ++-1.22959643382403553680e-02, ++-1.22226154697852723574e-02, ++-1.21423518466312625047e-02, ++-1.20552254675984453491e-02, ++-1.19612922018975387228e-02, ++-1.18606117538015195384e-02, ++-1.17532476251614014656e-02, ++-1.16392670757887554955e-02, ++-1.15187410817310965927e-02, ++-1.13917442914640253127e-02, ++-1.12583549800273283181e-02, ++-1.11186550011346148292e-02, ++-1.09727297372832800770e-02, ++-1.08206680478965637515e-02, ++-1.06625622155284947856e-02, ++-1.04985078901642363974e-02, ++-1.03286040316486818491e-02, ++-1.01529528502798636891e-02, ++-9.97165974559921335085e-03, ++-9.78483324341799902413e-03, ++-9.59258493111724702684e-03, ++-9.39502939125761923900e-03, ++-9.19228413354054689488e-03, ++-8.98446952515993303712e-03, ++-8.77170871958610903762e-03, ++-8.55412758382280251357e-03, ++-8.33185462418275894769e-03, ++-8.10502091062164677082e-03, ++-7.87375999967769406307e-03, ++-7.63820785606213713270e-03, ++-7.39850277294432437381e-03, ++-7.15478529097991495372e-03, ++-6.90719811612892573005e-03, ++-6.65588603631140588585e-03, ++-6.40099583694948154333e-03, ++-6.14267621544471731365e-03, ++-5.88107769464080425842e-03, ++-5.61635253532167481177e-03, ++-5.34865464779504806714e-03, ++-5.07813950261468052133e-03, ++-4.80496404049110190093e-03, ++-4.52928658144188898277e-03, ++-4.25126673323850644282e-03, ++-3.97106529919719845184e-03, ++-3.68884418537053504483e-03, ++-3.40476630719170527545e-03, ++-3.11899549562579155026e-03, ++-2.83169640288094461716e-03, ++-2.54303440773591491603e-03, ++-2.25317552053609778881e-03, ++-1.96228628791152723623e-03, ++-1.67053369727637865058e-03, ++-1.37808508115876398453e-03, ++-1.08510802141915333602e-03, ++-7.91770253410941553598e-04, ++-4.98239570138193856204e-04, ++-2.04683726464174046067e-04, ++ 8.87296565722855913767e-05, ++ 3.81833187280424608996e-04, ++ 6.74459798627879405716e-04, ++ 9.66442843278491714280e-04, ++ 1.25761618830957477670e-03, ++ 1.54781430955123577679e-03, ++ 1.83687238549551422676e-03, ++ 2.12462639072184518788e-03, ++ 2.41091318878710377666e-03, ++ 2.69557062452432027663e-03, ++ 2.97843761570351769560e-03, ++ 3.25935424399821128960e-03, ++ 3.53816184520730405566e-03, ++ 3.81470309868363116265e-03, ++ 4.08882211591671436424e-03, ++ 4.36036452822079721725e-03, ++ 4.62917757347863778605e-03, ++ 4.89511018189369654513e-03, ++ 5.15801306069900780682e-03, ++ 5.41773877778122490978e-03, ++ 5.67414184416796703314e-03, ++ 5.92707879533384274229e-03, ++ 6.17640827128176569949e-03, ++ 6.42199109535173794788e-03, ++ 6.66369035171747361307e-03, ++ 6.90137146152226561152e-03, ++ 7.13490225761727499265e-03, ++ 7.36415305785760327534e-03, ++ 7.58899673691662904340e-03, ++ 7.80930879657879342681e-03, ++ 8.02496743447280412587e-03, ++ 8.23585361120545214608e-03, ++ 8.44185111586123922145e-03, ++ 8.64284662983217863430e-03, ++ 8.83872978893951791179e-03, ++ 9.02939324381753054272e-03, ++ 9.21473271852386519032e-03, ++ 9.39464706734555871082e-03, ++ 9.56903832976962673285e-03, ++ 9.73781178358892364477e-03, ++ 9.90087599611340699046e-03, ++ 1.00581428734606900116e-02, ++ 1.02095277078994902537e-02, ++ 1.03549492232184597862e-02, ++ 1.04943296180992785144e-02, ++ 1.06275946074688987242e-02, ++ 1.07546734618099455033e-02, ++ 1.08754990444085344187e-02, ++ 1.09900078465200706085e-02, ++ 1.10981400204346221383e-02, ++ 1.11998394104246661029e-02, ++ 1.12950535815609064139e-02, ++ 1.13837338463788559362e-02, ++ 1.14658352893853201365e-02, ++ 1.15413167893916573242e-02, ++ 1.16101410396627392763e-02, ++ 1.16722745658728050550e-02, ++ 1.17276877418591822522e-02, ++ 1.17763548031668534993e-02, ++ 1.18182538583788306064e-02, ++ 1.18533668982268927672e-02, ++ 1.18816798024796634742e-02, ++ 1.19031823446065308097e-02, ++ 1.19178681942160510920e-02, ++ 1.19257349172696772155e-02, ++ 1.19267839740727354947e-02, ++ 1.19210207150453346286e-02, ++ 1.19084543742781455433e-02, ++ 1.18890980608779301547e-02, ++ 1.18629687481103703039e-02, ++ 1.18300872603478539336e-02, ++ 1.17904782578316710134e-02, ++ 1.17441702192595375659e-02, ++ 1.16911954222092898115e-02, ++ 1.16315899214134987893e-02, ++ 1.15653935248972560695e-02, ++ 1.14926497679962574816e-02, ++ 1.14134058852708338005e-02, ++ 1.13277127803342991114e-02, ++ 1.12356249936141419643e-02, ++ 1.11372006680669592693e-02, ++ 1.10325015128680588988e-02, ++ 1.09215927650972884078e-02, ++ 1.08045431494469181682e-02, ++ 1.06814248359739724648e-02, ++ 1.05523133959240563579e-02, ++ 1.04172877556533635679e-02, ++ 1.02764301486764821764e-02, ++ 1.01298260658689662922e-02, ++ 9.97756420385554482211e-03, ++ 9.81973641161405612354e-03, ++ 9.65643763532623641832e-03, ++ 9.48776586151135747915e-03, ++ 9.31382205847339390836e-03, ++ 9.13471011609818910049e-03, ++ 8.95053678403625804783e-03, ++ 8.76141160830776546953e-03, ++ 8.56744686636650917833e-03, ++ 8.36875750066302069585e-03, ++ 8.16546105074440926874e-03, ++ 7.95767758393019740415e-03, ++ 7.74552962460837469971e-03, ++ 7.52914208218922759858e-03, ++ 7.30864217776142511412e-03, ++ 7.08415936949292109753e-03, ++ 6.85582527682011919762e-03, ++ 6.62377360346902248345e-03, ++ 6.38814005935512633366e-03, ++ 6.14906228140583120678e-03, ++ 5.90667975335047463342e-03, ++ 5.66113372452884365538e-03, ++ 5.41256712776044118796e-03, ++ 5.16112449632528166171e-03, ++ 4.90695188010295546555e-03, ++ 4.65019676091923093997e-03, ++ 4.39100796714859270553e-03, ++ 4.12953558762247860403e-03, ++ 3.86593088489268566291e-03, ++ 3.60034620790024339002e-03, ++ 3.33293490409898975416e-03, ++ 3.06385123108688468482e-03, ++ 2.79325026779358087312e-03, ++ 2.52128782527450854764e-03, ++ 2.24812035716717229308e-03, ++ 1.97390486985574153955e-03, ++ 1.69879883239866091155e-03, ++ 1.42296008626978756108e-03, ++ 1.14654675496503560654e-03, ++ 8.69717153525156449340e-04, ++ 5.92629698028697892917e-04, ++ 3.15442815104587483740e-04, ++ 3.83148515150130003753e-05, ++-2.38596016135179852516e-04, ++-5.15131871516745108372e-04, ++-7.91135148467245652611e-04, ++-1.06644872060530828545e-03, ++-1.34091599061669417524e-03, ++-1.61438097916256320837e-03, ++-1.88668841335719902723e-03, ++-2.15768381476730232091e-03, ++-2.42721358688397208930e-03, ++-2.69512510201327460183e-03, ++-2.96126678754182314640e-03, ++-3.22548821152533965809e-03, ++-3.48764016755303369807e-03, ++-3.74757475883982088538e-03, ++-4.00514548149979391495e-03, ++-4.26020730695223729528e-03, ++-4.51261676341580680871e-03, ++-4.76223201644600246940e-03, ++-5.00891294846663153589e-03, ++-5.25252123725567128532e-03, ++-5.49292043333865411675e-03, ++-5.72997603624744288736e-03, ++-5.96355556960147161621e-03, ++-6.19352865496984421323e-03, ++-6.41976708447395284091e-03, ++-6.64214489208741348802e-03, ++-6.86053842359856183575e-03, ++-7.07482640519247439614e-03, ++-7.28489001061597037101e-03, ++-7.49061292688948335977e-03, ++-7.69188141852844651375e-03, ++-7.88858439023906905796e-03, ++-8.08061344805422777926e-03, ++-8.26786295887581117181e-03, ++-8.45023010839095374547e-03, ++-8.62761495733049832424e-03, ++-8.79992049603937377678e-03, ++-8.96705269732801270310e-03, ++-9.12892056757751840790e-03, ++-9.28543619607121589743e-03, ++-9.43651480252325272624e-03, ++-9.58207478278219441925e-03, ++-9.72203775268269676513e-03, ++-9.85632859002284582306e-03, ++-9.98487547464438525424e-03, ++-1.01076099265952259326e-02, ++-1.02244668423529874723e-02, ++-1.03353845290914767713e-02, ++-1.04403047369727476623e-02, ++-1.05391726894459199226e-02, ++-1.06319371115395251703e-02, ++-1.07185502561315034592e-02, ++-1.07989679281840673941e-02, ++-1.08731495069313705004e-02, ++-1.09410579660090354764e-02, ++-1.10026598915155138930e-02, ++-1.10579254979971536299e-02, ++-1.11068286423497506604e-02, ++-1.11493468356296306782e-02, ++-1.11854612527701267194e-02, ++-1.12151567401993432216e-02, ++-1.12384218213567241285e-02, ++-1.12552487001068551170e-02, ++-1.12656332620508243397e-02, ++-1.12695750737355805671e-02, ++-1.12670773797639463265e-02, ++-1.12581470978087311990e-02, ++-1.12427948115352074887e-02, ++-1.12210347614381672487e-02, ++-1.11928848336002705749e-02, ++-1.11583665463801332690e-02, ++-1.11175050350392178033e-02, ++-1.10703290343182984834e-02, ++-1.10168708589748198801e-02, ++-1.09571663822947782535e-02, ++-1.08912550125919559835e-02, ++-1.08191796677104181551e-02, ++-1.07409867475466505593e-02, ++-1.06567261046078953085e-02, ++-1.05664510126258718442e-02, ++-1.04702181332450312140e-02, ++-1.03680874808063875486e-02, ++-1.02601223852479897514e-02, ++-1.01463894531454990044e-02, ++-1.00269585269162232050e-02, ++-9.90190264221126568989e-03, ++-9.77129798352259666683e-03, ++-9.63522383803080625930e-03, ++-9.49376254772124616998e-03, ++-9.34699945979887078518e-03, ++-9.19502287542989238389e-03, ++-9.03792399684144424910e-03, ++-8.87579687281107691799e-03, ++-8.70873834257845577667e-03, ++-8.53684797821176177823e-03, ++-8.36022802546492783959e-03, ++-8.17898334315863943800e-03, ++-7.99322134112125451399e-03, ++-7.80305191672834696365e-03, ++-7.60858739007534007337e-03, ++-7.40994243782330200970e-03, ++-7.20723402575608202564e-03, ++-7.00058134008851255109e-03, ++-6.79010571756536070176e-03, ++-6.57593057439340850090e-03, ++-6.35818133404676254922e-03, ++-6.13698535398672032765e-03, ++-5.91247185134246861643e-03, ++-5.68477182759180490329e-03, ++-5.45401799228807746683e-03, ++-5.22034468587699671677e-03, ++-4.98388780164810921841e-03, ++-4.74478470686644573928e-03, ++-4.50317416312886326102e-03, ++-4.25919624599436445062e-03, ++-4.01299226392974606181e-03, ++-3.76470467662182433494e-03, ++-3.51447701270230384446e-03, ++-3.26245378693090131231e-03, ++-3.00878041688648536350e-03, ++-2.75360313921323108730e-03, ++-2.49706892547035515587e-03, ++-2.23932539763252707460e-03, ++-1.98052074329282566320e-03, ++-1.72080363061157654535e-03, ++-1.46032312306425922019e-03, ++-1.19922859403635969841e-03, ++-9.37669641312056218428e-04, ++-6.75796001507703134221e-04, ++-4.13757464498088920954e-04, ++-1.51703787884435286606e-04, ++ 1.10215388447121949347e-04, ++ 3.71850627627885114545e-04, ++ 6.33052780921098995522e-04, ++ 8.93673072601122806674e-04, ++ 1.15356318454689905743e-03, ++ 1.41257534050370911136e-03, ++ 1.67056238996633678491e-03, ++ 1.92737789163165596125e-03, ++ 2.18287619637864190730e-03, ++ 2.43691252972557228021e-03, ++ 2.68934307371902769912e-03, ++ 2.94002504820795344462e-03, ++ 3.18881679145808279857e-03, ++ 3.43557784005892952531e-03, ++ 3.68016900808052979666e-03, ++ 3.92245246543618079904e-03, ++ 4.16229181540278981438e-03, ++ 4.39955217126052674365e-03, ++ 4.63410023200553494727e-03, ++ 4.86580435709433288538e-03, ++ 5.09453464017795010221e-03, ++ 5.32016298178517119816e-03, ++ 5.54256316091259002704e-03, ++ 5.76161090548329372224e-03, ++ 5.97718396163549221811e-03, ++ 6.18916216179911122391e-03, ++ 6.39742749152663690154e-03, ++ 6.60186415503853565173e-03, ++ 6.80235863944797080477e-03, ++ 6.99879977762879034592e-03, ++ 7.19107880969246070213e-03, ++ 7.37908944304029295463e-03, ++ 7.56272791095595735972e-03, ++ 7.74189302970967625078e-03, ++ 7.91648625413953442587e-03, ++ 8.08641173168029268881e-03, ++ 8.25157635481136783606e-03, ++ 8.41188981189416006001e-03, ++ 8.56726463637145184415e-03, ++ 8.71761625430204217801e-03, ++ 8.86286303020573928979e-03, ++ 9.00292631119170398690e-03, ++ 9.13773046934988723844e-03, ++ 9.26720294237984125452e-03, ++ 9.39127427243598503215e-03, ++ 9.50987814316970984929e-03, ++ 9.62295141494749588229e-03, ++ 9.73043415822708555873e-03, ++ 9.83226968507381650364e-03, ++ 9.92840457880114421463e-03, ++ 1.00187887217194990935e-02, ++ 1.01033753209798602551e-02, ++ 1.01821209324982810823e-02, ++ 1.02549854829495166314e-02, ++ 1.03219322898189282134e-02, ++ 1.03829280795032750928e-02, ++ 1.04379430034503180302e-02, ++ 1.04869506523312169127e-02, ++ 1.05299280682385320435e-02, ++ 1.05668557549043577726e-02, ++ 1.05977176859349212640e-02, ++ 1.06225013110582688913e-02, ++ 1.06411975603831251286e-02, ++ 1.06538008466682248415e-02, ++ 1.06603090656027660321e-02, ++ 1.06607235940987827433e-02, ++ 1.06550492865989197139e-02, ++ 1.06432944694025734267e-02, ++ 1.06254709330158968877e-02, ++ 1.06015939225314811956e-02, ++ 1.05716821260445053426e-02, ++ 1.05357576611141614403e-02, ++ 1.04938460592794574611e-02, ++ 1.04459762486396531833e-02, ++ 1.03921805345111133156e-02, ++ 1.03324945781732863842e-02, ++ 1.02669573737173662475e-02, ++ 1.01956112230122235285e-02, ++ 1.01185017088040590805e-02, ++ 1.00356776659660425211e-02, ++ 9.94719115091608624413e-03, ++ 9.85309740922234687799e-03, ++ 9.75345484141500011777e-03, ++ 9.64832496702668768185e-03, ++ 9.53777238688333431349e-03, ++ 9.42186474366750112419e-03, ++ 9.30067268077903845647e-03, ++ 9.17426979951779277001e-03, ++ 9.04273261461393390581e-03, ++ 8.90614050813234511828e-03, ++ 8.76457568178037361994e-03, ++ 8.61812310764482544800e-03, ++ 8.46687047738961182097e-03, ++ 8.31090814994421903106e-03, ++ 8.15032909771297095491e-03, ++ 7.98522885133778372035e-03, ++ 7.81570544304719359852e-03, ++ 7.64185934862476878848e-03, ++ 7.46379342803140874429e-03, ++ 7.28161286471641980289e-03, ++ 7.09542510365326374588e-03, ++ 6.90533978813562872995e-03, ++ 6.71146869537252947074e-03, ++ 6.51392567091878173929e-03, ++ 6.31282656197840099516e-03, ++ 6.10828914962330098148e-03, ++ 5.90043307996295039036e-03, ++ 5.68937979430757592714e-03, ++ 5.47525245836473755529e-03, ++ 5.25817589051068290384e-03, ++ 5.03827648917754868096e-03, ++ 4.81568215940014407450e-03, ++ 4.59052223856344730063e-03, ++ 4.36292742139295433579e-03, ++ 4.13302968423510681123e-03, ++ 3.90096220866709446004e-03, ++ 3.66685930448303705129e-03, ++ 3.43085633209993298015e-03, ++ 3.19308962442840099660e-03, ++ 2.95369640825326627495e-03, ++ 2.71281472516826487051e-03, ++ 2.47058335211343968810e-03, ++ 2.22714172155590722779e-03, ++ 1.98262984136404274774e-03, ++ 1.73718821442020768774e-03, ++ 1.49095775801618085979e-03, ++ 1.24407972307950527406e-03, ++ 9.96695613276132701130e-04, ++ 7.48947104035837802997e-04, ++ 5.00975961545737855096e-04, ++ 2.52923961761159811490e-04, ++ 4.93280947509291801083e-06, ++-2.42855942503384357196e-04, ++-4.90300974016580110200e-04, ++-7.37261278027570056415e-04, ++-9.83596240843677242782e-04, ++-1.22916572204938767329e-03, ++-1.47383013410300081451e-03, ++-1.71745052155293964798e-03, ++-1.95988863982576476050e-03, ++-2.20100703354622747807e-03, ++-2.44066911434088866517e-03, ++-2.67873923808214847372e-03, ++-2.91508278153101421312e-03, ++-3.14956621833333222718e-03, ++-3.38205719432752276860e-03, ++-3.61242460212125989991e-03, ++-3.84053865489516728718e-03, ++-4.06627095939203833663e-03, ++-4.28949458805057831645e-03, ++-4.51008415024378109953e-03, ++-4.72791586258040994611e-03, ++-4.94286761823193362270e-03, ++-5.15481905524671577684e-03, ++-5.36365162380991484375e-03, ++-5.56924865241561605628e-03, ++-5.77149541291191014308e-03, ++-5.97027918438345836516e-03, ++-6.16548931583604711143e-03, ++-6.35701728764813140532e-03, ++-6.54475677175619420523e-03, ++-6.72860369053819660362e-03, ++-6.90845627436653328401e-03, ++-7.08421511779518033730e-03, ++-7.25578323435132135910e-03, ++-7.42306610990221913543e-03, ++-7.58597175456684601896e-03, ++-7.74441075314436476462e-03, ++-7.89829631403181527116e-03, ++-8.04754431660486060918e-03, ++-8.19207335703401803850e-03, ++-8.33180479251450362144e-03, ++-8.46666278388312140701e-03, ++-8.59657433660001440989e-03, ++-8.72146934007399753097e-03, ++-8.84128060530934949124e-03, ++-8.95594390085470426488e-03, ++-9.06539798703423320425e-03, ++-9.16958464844403950411e-03, ++-9.26844872469488080535e-03, ++-9.36193813938749827552e-03, ++-9.45000392730357963167e-03, ++-9.53260025979855117606e-03, ++-9.60968446838431425427e-03, ++-9.68121706648877346224e-03, ++-9.74716176938165805577e-03, ++-9.80748551225691343747e-03, ++-9.86215846646274103826e-03, ++-9.91115405387120278202e-03, ++-9.95444895938146258330e-03, ++-9.99202314155041813881e-03, ++-1.00238598413463411013e-02, ++-1.00499455890222209875e-02, ++-1.00702702091063772682e-02, ++-1.00848268235089154332e-02, ++-1.00936118527438327408e-02, ++-1.00966250152679168361e-02, ++-1.00938693249378146077e-02, ++-1.00853510865886227682e-02, ++-1.00710798897381062500e-02, ++-1.00510686004214797040e-02, ++-1.00253333511630630254e-02, ++-9.99389352909173418749e-03, ++-9.95677176220922943717e-03, ++-9.91399390381976150510e-03, ++-9.86558901513197826494e-03, ++-9.81158934604420447656e-03, ++-9.75203031412597010075e-03, ++-9.68695048180868989451e-03, ++-9.61639153180029321311e-03, ++-9.54039824073970449403e-03, ++-9.45901845110641917302e-03, ++-9.37230304140389963719e-03, ++-9.28030589463477509349e-03, ++-9.18308386508685792204e-03, ++-9.08069674345089207501e-03, ++-8.97320722029071662917e-03, ++-8.86068084788880529212e-03, ++-8.74318600048899774446e-03, ++-8.62079383296257897862e-03, ++-8.49357823791978966410e-03, ++-8.36161580129450403287e-03, ++-8.22498575642871369851e-03, ++-8.08376993668271683069e-03, ++-7.93805272660061574108e-03, ++-7.78792101165969724574e-03, ++-7.63346412663362498818e-03, ++-7.47477380259930785505e-03, ++-7.31194411262098796500e-03, ++-7.14507141614020412773e-03, ++-6.97425430210722122754e-03, ++-6.79959353088687573630e-03, ++-6.62119197497169301864e-03, ++-6.43915455853849138385e-03, ++-6.25358819588309883253e-03, ++-6.06460172876989358354e-03, ++-5.87230586273140842124e-03, ++-5.67681310235816811993e-03, ++-5.47823768561213342299e-03, ++-5.27669551720578392656e-03, ++-5.07230410108449637774e-03, ++-4.86518247205038317088e-03, ++-4.65545112656870225393e-03, ++-4.44323195279612039033e-03, ++-4.22864815987201558140e-03, ++-4.01182420651321949151e-03, ++-3.79288572895385015307e-03, ++-3.57195946827177420596e-03, ++-3.34917319714373535808e-03, ++-3.12465564607069309216e-03, ++-2.89853642911835473334e-03, ++-2.67094596921149977573e-03, ++-2.44201542302870371753e-03, ++-2.21187660553990271539e-03, ++-1.98066191422849313675e-03, ++-1.74850425304324988245e-03, ++-1.51553695612283568887e-03, ++-1.28189371133704578531e-03, ++-1.04770848368741461600e-03, ++-8.13115438614004488148e-04, ++-5.78248865247532866513e-04, ++-3.43243099654593679469e-04, ++-1.08232448119056134180e-04, ++ 1.26648889498497872709e-04, ++ 3.61266896277643255724e-04, ++ 5.95487814588576617851e-04, ++ 8.29178222232456471966e-04, ++ 1.06220510832932932450e-03, ++ 1.29443594890761418982e-03, ++ 1.52573878215697851524e-03, ++ 1.75598228329790738422e-03, ++ 1.98503583902642517095e-03, ++ 2.21276962149356305753e-03, ++ 2.43905466177587538015e-03, ++ 2.66376292279626092005e-03, ++ 2.88676737165370449201e-03, ++ 3.10794205132203151670e-03, ++ 3.32716215167451348847e-03, ++ 3.54430407979887786632e-03, ++ 3.75924552955919340572e-03, ++ 3.97186555036659408313e-03, ++ 4.18204461512168643861e-03, ++ 4.38966468728887570377e-03, ++ 4.59460928706578036751e-03, ++ 4.79676355661041737416e-03, ++ 4.99601432429057183693e-03, ++ 5.19225016791701170921e-03, ++ 5.38536147692926601277e-03, ++ 5.57524051349589811616e-03, ++ 5.76178147249606278230e-03, ++ 5.94488054035048445189e-03, ++ 6.12443595266757775941e-03, ++ 6.30034805067354337221e-03, ++ 6.47251933639503632123e-03, ++ 6.64085452656393640525e-03, ++ 6.80526060521449791679e-03, ++ 6.96564687494400421736e-03, ++ 7.12192500680845601291e-03, ++ 7.27400908882688563423e-03, ++ 7.42181567306544106438e-03, ++ 7.56526382127895545560e-03, ++ 7.70427514908233069396e-03, ++ 7.83877386862820088598e-03, ++ 7.96868682976907029281e-03, ++ 8.09394355968027362502e-03, ++ 8.21447630092295155713e-03, ++ 8.33022004792652141780e-03, ++ 8.44111258187129308295e-03, ++ 8.54709450395172223858e-03, ++ 8.64810926700426002567e-03, ++ 8.74410320548165559407e-03, ++ 8.83502556375806609446e-03, ++ 8.92082852275120734287e-03, ++ 9.00146722484649296214e-03, ++ 9.07689979711120281669e-03, ++ 9.14708737278599470777e-03, ++ 9.21199411104400324446e-03, ++ 9.27158721500605589871e-03, ++ 9.32583694800504132971e-03, ++ 9.37471664808996879570e-03, ++ 9.41820274076340252511e-03, ++ 9.45627474994699748767e-03, ++ 9.48891530716929401668e-03, ++ 9.51611015897272857766e-03, ++ 9.53784817253677981441e-03, ++ 9.55412133951539892240e-03, ++ 9.56492477808816750351e-03, ++ 9.57025673322536851728e-03, ++ 9.57011857516825228953e-03, ++ 9.56451479612665210472e-03, ++ 9.55345300519767903769e-03, ++ 9.53694392150929680374e-03, ++ 9.51500136559463131902e-03, ++ 9.48764224900292864329e-03, ++ 9.45488656215475072042e-03, ++ 9.41675736044983967277e-03, ++ 9.37328074863657233207e-03, ++ 9.32448586345385396768e-03, ++ 9.27040485455623772260e-03, ++ 9.21107286373510844579e-03, ++ 9.14652800244862389245e-03, ++ 9.07681132767460333022e-03, ++ 9.00196681610215994340e-03, ++ 8.92204133667740678648e-03, ++ 8.83708462152045341742e-03, ++ 8.74714923523178117248e-03, ++ 8.65229054260652913344e-03, ++ 8.55256667477650479869e-03, ++ 8.44803849380110737088e-03, ++ 8.33876955572694297802e-03, ++ 8.22482607214039367072e-03, ++ 8.10627687023531343091e-03, ++ 7.98319335141973659975e-03, ++ 7.85564944848663425370e-03, ++ 7.72372158137452947957e-03, ++ 7.58748861154383627547e-03, ++ 7.44703179499617545084e-03, ++ 7.30243473396576317502e-03, ++ 7.15378332730893639474e-03, ++ 7.00116571962369673571e-03, ++ 6.84467224912835292550e-03, ++ 6.68439539432962807203e-03, ++ 6.52042971951210560688e-03, ++ 6.35287181908096316302e-03, ++ 6.18182026079089775444e-03, ++ 6.00737552789352719645e-03, ++ 5.82963996023949920094e-03, ++ 5.64871769436637964634e-03, ++ 5.46471460260989760210e-03, ++ 5.27773823127398664101e-03, ++ 5.08789773789389884046e-03, ++ 4.89530382763052763356e-03, ++ 4.70006868883239992823e-03, ++ 4.50230592780280144960e-03, ++ 4.30213050280925293073e-03, ++ 4.09965865737595570178e-03, ++ 3.89500785289395058675e-03, ++ 3.68829670059122758860e-03, ++ 3.47964489290170791991e-03, ++ 3.26917313427090060543e-03, ++ 3.05700307144005523768e-03, ++ 2.84325722324815094444e-03, ++ 2.62805890999240517047e-03, ++ 2.41153218238787615466e-03, ++ 2.19380175016706995342e-03, ++ 1.97499291036058082296e-03, ++ 1.75523147530006872613e-03, ++ 1.53464370038409927272e-03, ++ 1.31335621165009405059e-03, ++ 1.09149593319219089145e-03, ++ 8.69190014465733669022e-04, ++ 6.46565757523822519717e-04, ++ 4.23750544222993737447e-04, ++ 2.00871763442388796871e-04, ++-2.19432616430028802536e-05, ++-2.44567346193297504003e-04, ++-4.66873516198418401623e-04, ++-6.88735080792504629141e-04, ++-9.10025704351406588243e-04, ++-1.13061947832844914008e-03, ++-1.35039099278848459193e-03, ++-1.56921540760134731185e-03, ++-1.78696852325255445618e-03, ++-2.00352685123184786134e-03, ++-2.21876768395961026376e-03, ++-2.43256916421236753928e-03, ++-2.64481035400563951540e-03, ++-2.85537130289943187622e-03, ++-3.06413311568427739612e-03, ++-3.27097801941039290421e-03, ++-3.47578942972392133937e-03, ++-3.67845201647113524343e-03, ++-3.87885176853450686779e-03, ++-4.07687605786403312047e-03, ++-4.27241370266879562367e-03, ++-4.46535502973073768207e-03, ++-4.65559193580989804512e-03, ++-4.84301794810346793868e-03, ++-5.02752828372539546653e-03, ++-5.20901990817508944720e-03, ++-5.38739159276095062184e-03, ++-5.56254397094743408686e-03, ++-5.73437959359436588702e-03, ++-5.90280298305815697563e-03, ++-6.06772068612327578757e-03, ++-6.22904132573793255234e-03, ++-6.38667565152189597305e-03, ++-6.54053658902132174086e-03, ++-6.69053928768123529203e-03, ++-6.83660116751098716203e-03, ++-6.97864196441732535098e-03, ++-7.11658377417776714241e-03, ++-7.25035109503333486530e-03, ++-7.37987086887549603720e-03, ++-7.50507252100559608954e-03, ++-7.62588799844512044840e-03, ++-7.74225180677637174476e-03, ++-7.85410104549275414620e-03, ++-7.96137544184076853537e-03, ++-8.06401738313571557482e-03, ++-8.16197194753211924256e-03, ++-8.25518693323474758716e-03, ++-8.34361288613344465048e-03, ++-8.42720312584763903141e-03, ++-8.50591377016694447089e-03, ++-8.57970375787523234501e-03, ++-8.64853486994612667693e-03, ++-8.71237174909944220302e-03, ++-8.77118191770899502391e-03, ++-8.82493579405169495389e-03, ++-8.87360670689150109192e-03, ++-8.91717090839015333326e-03, ++-8.95560758533894135658e-03, ++-8.98889886870667467744e-03, ++-9.01702984149947012193e-03, ++-9.03998854492910064451e-03, ++-9.05776598288827831940e-03, ++-9.07035612473096330977e-03, ++-9.07775590635802147321e-03, ++-9.07996522960853764961e-03, ++-9.07698695995886803423e-03, ++-9.06882692253164167384e-03, ++-9.05549389641891432079e-03, ++-9.03699960732328583246e-03, ++-9.01335871852335275556e-03, ++-8.98458882016932476600e-03, ++-8.95071041691646723804e-03, ++-8.91174691390494294607e-03, ++-8.86772460109508213477e-03, ++-8.81867263596835572470e-03, ++-8.76462302460546613392e-03, ++-8.70561060115330326292e-03, ++-8.64167300569398770527e-03, ++-8.57285066052993274810e-03, ++-8.49918674489946214534e-03, ++-8.42072716813898301813e-03, ++-8.33752054130776007468e-03, ++-8.24961814729350748077e-03, ++-8.15707390941654633676e-03, ++-8.05994435855085684939e-03, ++-7.95828859878412557538e-03, ++-7.85216827163510294740e-03, ++-7.74164751885155454081e-03, ++-7.62679294381024292654e-03, ++-7.50767357154260520785e-03, ++-7.38436080740939235212e-03, ++-7.25692839445000407311e-03, ++-7.12545236943096498700e-03, ++-6.99001101761916477512e-03, ++-6.85068482630888687945e-03, ++-6.70755643712759620778e-03, ++-6.56071059715018171238e-03, ++-6.41023410885009203158e-03, ++-6.25621577891687877943e-03, ++-6.09874636596976875402e-03, ++-5.93791852719933836713e-03, ++-5.77382676396723509143e-03, ++-5.60656736639539039074e-03, ++-5.43623835697979850695e-03, ++-5.26293943325864543858e-03, ++-5.08677190957020682743e-03, ++-4.90783865793382578085e-03, ++-4.72624404808862780270e-03, ++-4.54209388672411652765e-03, ++-4.35549535594014370493e-03, ++-4.16655695096843255165e-03, ++-3.97538841719484881826e-03, ++-3.78210068651828800954e-03, ++-3.58680581308160571774e-03, ++-3.38961690841329795279e-03, ++-3.19064807601676572041e-03, ++-2.99001434544510355171e-03, ++-2.78783160589872848825e-03, ++-2.58421653938650406832e-03, ++-2.37928655348473936521e-03, ++-2.17315971373707597994e-03, ++-1.96595467573080053339e-03, ++-1.75779061689126871355e-03, ++-1.54878716803180682161e-03, ++-1.33906434469759582327e-03, ++-1.12874247834651849839e-03, ++-9.17942147402158120997e-04, ++-7.06784108220954348026e-04, ++-4.95389226012176797989e-04, ++-2.83878405750408527308e-04, ++-7.23725231191953317922e-05, ++ 1.39007644472942073393e-04, ++ 3.50141486766494293426e-04, ++ 5.60908629376450848514e-04, ++ 7.71189002326557382014e-04, ++ 9.80862908357632698117e-04, ++ 1.18981109096850837074e-03, ++ 1.39791480215185285468e-03, ++ 1.60505586978618446266e-03, ++ 1.81111676464667430489e-03, ++ 2.01598066699498323223e-03, ++ 2.21953153271216372527e-03, ++ 2.42165415893787249260e-03, ++ 2.62223424917535025483e-03, ++ 2.82115847782954658890e-03, ++ 3.01831455413943379809e-03, ++ 3.21359128546936040696e-03, ++ 3.40687863992359188381e-03, ++ 3.59806780824958004350e-03, ++ 3.78705126499338838933e-03, ++ 3.97372282887472824675e-03, ++ 4.15797772234820922632e-03, ++ 4.33971263031428678564e-03, ++ 4.51882575795083032272e-03, ++ 4.69521688763073485884e-03, ++ 4.86878743489439942682e-03, ++ 5.03944050344600283364e-03, ++ 5.20708093914320439138e-03, ++ 5.37161538294856407555e-03, ++ 5.53295232281637763133e-03, ++ 5.69100214448343532520e-03, ++ 5.84567718113605111485e-03, ++ 5.99689176192734485493e-03, ++ 6.14456225931638965604e-03, ++ 6.28860713520388876080e-03, ++ 6.42894698583886935878e-03, ++ 6.56550458547169348000e-03, ++ 6.69820492872941122137e-03, ++ 6.82697527169041310652e-03, ++ 6.95174517163579808177e-03, ++ 7.07244652545614607003e-03, ++ 7.18901360669207869364e-03, ++ 7.30138310118917405883e-03, ++ 7.40949414134865064208e-03, ++ 7.51328833895314410901e-03, ++ 7.61270981655247976766e-03, ++ 7.70770523739102830091e-03, ++ 7.79822383386149457080e-03, ++ 7.88421743446952177914e-03, ++ 7.96564048929547866007e-03, ++ 8.04245009393938191378e-03, ++ 8.11460601193707622980e-03, ++ 8.18207069563602756856e-03, ++ 8.24480930551941583462e-03, ++ 8.30278972796945347046e-03, ++ 8.35598259146062144476e-03, ++ 8.40436128117489321399e-03, ++ 8.44790195203182735229e-03, ++ 8.48658354012752670636e-03, ++ 8.52038777257667530318e-03, ++ 8.54929917575385743544e-03, ++ 8.57330508193055763899e-03, ++ 8.59239563430499141139e-03, ++ 8.60656379042347950692e-03, ++ 8.61580532399272396027e-03, ++ 8.62011882508288869442e-03, ++ 8.61950569872288463458e-03, ++ 8.61397016188992017960e-03, ++ 8.60351923889614116081e-03, ++ 8.58816275517627555902e-03, ++ 8.56791332948142643489e-03, ++ 8.54278636448400040260e-03, ++ 8.51280003580121708007e-03, ++ 8.47797527944401177469e-03, ++ 8.43833577770019410691e-03, ++ 8.39390794346085364341e-03, ++ 8.34472090300016587638e-03, ++ 8.29080647722033568792e-03, ++ 8.23219916137209704876e-03, ++ 8.16893610326531807719e-03, ++ 8.10105707998175217366e-03, ++ 8.02860447310570039814e-03, ++ 7.95162324248711339936e-03, ++ 7.87016089855287724608e-03, ++ 7.78426747318477444543e-03, ++ 7.69399548918007353260e-03, ++ 7.59939992831438169973e-03, ++ 7.50053819802581206444e-03, ++ 7.39747009674054673695e-03, ++ 7.29025777786024634097e-03, ++ 7.17896571243396234424e-03, ++ 7.06366065053597690093e-03, ++ 6.94441158137212768281e-03, ++ 6.82128969214047548714e-03, ++ 6.69436832566827795532e-03, ++ 6.56372293685217843284e-03, ++ 6.42943104792645641482e-03, ++ 6.29157220258638738564e-03, ++ 6.15022791899296188828e-03, ++ 6.00548164168810023889e-03, ++ 5.85741869244729099903e-03, ++ 5.70612622009830997016e-03, ++ 5.55169314933761943315e-03, ++ 5.39421012857201238877e-03, ++ 5.23376947681718652367e-03, ++ 5.07046512968433327889e-03, ++ 4.90439258448602602436e-03, ++ 4.73564884449306690989e-03, ++ 4.56433236237605791802e-03, ++ 4.39054298286334701573e-03, ++ 4.21438188464811746420e-03, ++ 4.03595152158122121716e-03, ++ 3.85535556318054341285e-03, ++ 3.67269883449336575001e-03, ++ 3.48808725534603724164e-03, ++ 3.30162777901616766654e-03, ++ 3.11342833036215701700e-03, ++ 2.92359774344746591729e-03, ++ 2.73224569869404739636e-03, ++ 2.53948265960054347934e-03, ++ 2.34541980906500472509e-03, ++ 2.15016898534491464681e-03, ++ 1.95384261769374848600e-03, ++ 1.75655366171025071990e-03, ++ 1.55841553443768969338e-03, ++ 1.35954204925029724198e-03, ++ 1.16004735056427139318e-03, ++ 9.60045848410695946279e-04, ++ 7.59652152908002432571e-04, ++ 5.58981008670681638398e-04, ++ 3.58147229193453995114e-04, ++ 1.57265631246792758451e-04, ++-4.35490306794674293363e-05, ++-2.44182129843599320107e-04, ++-4.44519232597282950344e-04, ++-6.44446163569028346828e-04, ++-8.43849070649477944230e-04, ++-1.04261448974139812711e-03, ++-1.24062940923833162771e-03, ++-1.43778133419359788019e-03, ++-1.63395835014485757766e-03, ++-1.82904918655875121242e-03, ++-2.02294327985625636140e-03, ++-2.21553083598718210043e-03, ++-2.40670289251588859908e-03, ++-2.59635138018404895352e-03, ++-2.78436918391547104032e-03, ++-2.97065020322924595864e-03, ++-3.15508941202569071979e-03, ++-3.33758291771281195501e-03, ++-3.51802801964081748518e-03, ++-3.69632326680855837625e-03, ++-3.87236851481334142661e-03, ++-4.04606498200982094005e-03, ++-4.21731530484743474818e-03, ++-4.38602359235502371748e-03, ++-4.55209547974291459105e-03, ++-4.71543818109126672972e-03, ++-4.87596054109631048268e-03, ++-5.03357308584660798761e-03, ++-5.18818807259795525266e-03, ++-5.33971953852289266118e-03, ++-5.48808334840551401146e-03, ++-5.63319724125592186798e-03, ++-5.77498087581854776390e-03, ++-5.91335587494941708475e-03, ++-6.04824586883698656764e-03, ++-6.17957653704386423305e-03, ++-6.30727564934618813858e-03, ++-6.43127310534771529787e-03, ++-6.55150097284682483151e-03, ++-6.66789352493667251270e-03, ++-6.78038727581722639598e-03, ++-6.88892101529996712939e-03, ++-6.99343584198691605586e-03, ++-7.09387519510564119873e-03, ++-7.19018488498349497839e-03, ++-7.28231312214434444580e-03, ++-7.37021054501293959582e-03, ++-7.45383024621102448920e-03, ++-7.53312779743236203556e-03, ++-7.60806127288360129618e-03, ++-7.67859127127740528906e-03, ++-7.74468093636805719054e-03, ++-7.80629597601776963056e-03, ++-7.86340467978466871324e-03, ++-7.91597793502309132752e-03, ++-7.96398924148845367699e-03, ++-8.00741472443937570003e-03, ++-8.04623314623062815820e-03, ++-8.08042591639200093179e-03, ++-8.10997710018770794071e-03, ++-8.13487342565317322896e-03, ++-8.15510428910632897970e-03, ++-8.17066175913122756669e-03, ++-8.18154057903300313548e-03, ++-8.18773816776408903950e-03, ++-8.18925461932203113680e-03, ++-8.18609270062076350982e-03, ++-8.17825784783763644337e-03, ++-8.16575816123921681411e-03, ++-8.14860439849041627569e-03, ++-8.12680996645165354408e-03, ++-8.10039091146990027081e-03, ++-8.06936590817051296876e-03, ++-8.03375624675719754442e-03, ++-7.99358581882871586932e-03, ++-7.94888110172140179011e-03, ++-7.89967114138754450403e-03, ++-7.84598753382080051078e-03, ++-7.78786440504017178632e-03, ++-7.72533838964500462615e-03, ++-7.65844860795453739877e-03, ++-7.58723664174604933708e-03, ++-7.51174650860678399383e-03, ++-7.43202463491451133931e-03, ++-7.34811982746492921986e-03, ++-7.26008324376091473962e-03, ++-7.16796836098336151433e-03, ++-7.07183094366188418067e-03, ++-6.97172901006430818793e-03, ++-6.86772279732582834055e-03, ++-6.75987472533817052023e-03, ++-6.64824935942080145340e-03, ++-6.53291337179604837682e-03, ++-6.41393550189129496575e-03, ++-6.29138651549170698635e-03, ++-6.16533916276751359220e-03, ++-6.03586813520128485228e-03, ++-5.90305002144024624361e-03, ++-5.76696326209861012679e-03, ++-5.62768810353925751089e-03, ++-5.48530655065889230504e-03, ++-5.33990231870646887141e-03, ++-5.19156078416207946574e-03, ++-5.04036893470575456805e-03, ++-4.88641531830454143442e-03, ++-4.72978999144895145140e-03, ++-4.57058446656796041330e-03, ++-4.40889165865240156839e-03, ++-4.24480583112071818697e-03, ++-4.07842254095536725644e-03, ++-3.90983858314355049030e-03, ++-3.73915193445415730208e-03, ++-3.56646169658344580969e-03, ++-3.39186803870199487382e-03, ++-3.21547213943741911138e-03, ++-3.03737612832535950474e-03, ++-2.85768302676162435152e-03, ++-2.67649668849279489050e-03, ++-2.49392173967607306759e-03, ++-2.31006351854499665868e-03, ++-2.12502801471515026521e-03, ++-1.93892180816497236052e-03, ++-1.75185200792604364207e-03, ++-1.56392619051968551937e-03, ++-1.37525233817362515544e-03, ++-1.18593877685428585739e-03, ++-9.96094114151082135611e-04, ++-8.05827177048465143755e-04, ++-6.15246949619699455385e-04, ++-4.24462510679590970634e-04, ++-2.33582971431131201836e-04, ++-4.27174131418600218075e-05, ++ 1.48025175115281873829e-04, ++ 3.38535958618741729398e-04, ++ 5.28706319021235741570e-04, ++ 7.18427916200129542020e-04, ++ 9.07592749900823655106e-04, ++ 1.09609322113959862730e-03, ++ 1.28382219332944988964e-03, ++ 1.47067305309492128707e-03, ++ 1.65653977074134688835e-03, ++ 1.84131696034424701021e-03, ++ 2.02489993942486920173e-03, ++ 2.20718478817801639844e-03, ++ 2.38806840821935862512e-03, ++ 2.56744858081750862433e-03, ++ 2.74522402457949956170e-03, ++ 2.92129445255769277026e-03, ++ 3.09556062874293989526e-03, ++ 3.26792442391583577016e-03, ++ 3.43828887082240275061e-03, ++ 3.60655821864397721499e-03, ++ 3.77263798673060360075e-03, ++ 3.93643501756839753886e-03, ++ 4.09785752894968862553e-03, ++ 4.25681516531844095913e-03, ++ 4.41321904826232503521e-03, ++ 4.56698182612100180705e-03, ++ 4.71801772268583795300e-03, ++ 4.86624258496219565945e-03, ++ 5.01157392996826912823e-03, ++ 5.15393099054442353768e-03, ++ 5.29323476014809113366e-03, ++ 5.42940803660817671028e-03, ++ 5.56237546481617214228e-03, ++ 5.69206357833054472223e-03, ++ 5.81840083986934729354e-03, ++ 5.94131768067147035539e-03, ++ 6.06074653870333594774e-03, ++ 6.17662189569052801769e-03, ++ 6.28888031295409682953e-03, ++ 6.39746046603201657527e-03, ++ 6.50230317806734740144e-03, ++ 6.60335145194352116094e-03, ++ 6.70055050115188084031e-03, ++ 6.79384777937258772795e-03, ++ 6.88319300875362728720e-03, ++ 6.96853820687349644752e-03, ++ 7.04983771237240302437e-03, ++ 7.12704820923858520243e-03, ++ 7.20012874973695923136e-03, ++ 7.26904077596829921448e-03, ++ 7.33374814004676342516e-03, ++ 7.39421712288685674397e-03, ++ 7.45041645158874780291e-03, ++ 7.50231731541360375576e-03, ++ 7.54989338034125958415e-03, ++ 7.59312080220247119511e-03, ++ 7.63197823837959577614e-03, ++ 7.66644685807015349721e-03, ++ 7.69651035110831445440e-03, ++ 7.72215493534070089587e-03, ++ 7.74336936255298931286e-03, ++ 7.76014492294555859042e-03, ++ 7.77247544815607566138e-03, ++ 7.78035731282916958457e-03, ++ 7.78378943473276123377e-03, ++ 7.78277327342252397968e-03, ++ 7.77731282745607217788e-03, ++ 7.76741463015983343160e-03, ++ 7.75308774395181993927e-03, ++ 7.73434375322510497819e-03, ++ 7.71119675579651046859e-03, ++ 7.68366335292724762090e-03, ++ 7.65176263792180597761e-03, ++ 7.61551618331250072119e-03, ++ 7.57494802663899804984e-03, ++ 7.53008465483087727904e-03, ++ 7.48095498720392076963e-03, ++ 7.42759035708089564165e-03, ++ 7.37002449204788440129e-03, ++ 7.30829349285897541394e-03, ++ 7.24243581100231150621e-03, ++ 7.17249222494118019583e-03, ++ 7.09850581504455676457e-03, ++ 7.02052193722279248289e-03, ++ 6.93858819528464596665e-03, ++ 6.85275441203157895803e-03, ++ 6.76307259910770459943e-03, ++ 6.66959692562291064227e-03, ++ 6.57238368556857608521e-03, ++ 6.47149126404455293793e-03, ++ 6.36698010231910756229e-03, ++ 6.25891266174058436000e-03, ++ 6.14735338652398939641e-03, ++ 6.03236866543420662684e-03, ++ 5.91402679238786036647e-03, ++ 5.79239792599798089534e-03, ++ 5.66755404808486160789e-03, ++ 5.53956892117803134656e-03, ++ 5.40851804503346585140e-03, ++ 5.27447861219351547823e-03, ++ 5.13752946261299917735e-03, ++ 4.99775103738003996512e-03, ++ 4.85522533155877469846e-03, ++ 4.71003584618005094464e-03, ++ 4.56226753940958736772e-03, ++ 4.41200677692144428016e-03, ++ 4.25934128150591128498e-03, ++ 4.10436008194120516279e-03, ++ 3.94715346115854636561e-03, ++ 3.78781290373112009690e-03, ++ 3.62643104271654281509e-03, ++ 3.46310160588530037765e-03, ++ 3.29791936136483157180e-03, ++ 3.13098006273033763885e-03, ++ 2.96238039357679455374e-03, ++ 2.79221791160092977502e-03, ++ 2.62059099222753267427e-03, ++ 2.44759877181191781020e-03, ++ 2.27334109045146740002e-03, ++ 2.09791843443869838876e-03, ++ 1.92143187839023546828e-03, ++ 1.74398302708383490592e-03, ++ 1.56567395703608109106e-03, ++ 1.38660715785749919481e-03, ++ 1.20688547341501702971e-03, ++ 1.02661204283784578128e-03, ++ 8.45890241399772859106e-04, ++ 6.64823621311828307986e-04, ++ 4.83515852459311156267e-04, ++ 3.02070663116303390200e-04, ++ 1.20591780673772898239e-04, ++-6.08171275885414341889e-05, ++-2.42052513649585246663e-04, ++-4.23011007780704729672e-04, ++-6.03589477433417857279e-04, ++-7.83685085946226591899e-04, ++-9.63195351037734169043e-04, ++-1.14201820305262708236e-03, ++-1.32005204292819870032e-03, ++-1.49719579984629639312e-03, ++-1.67334898854166894480e-03, ++-1.84841176623110319682e-03, ++-2.02228498913186371597e-03, ++-2.19487026853879690913e-03, ++-2.36607002642698479797e-03, ++-2.53578755054913694555e-03, ++-2.70392704899653085748e-03, ++-2.87039370419339950197e-03, ++-3.03509372629227804768e-03, ++-3.19793440594374599878e-03, ++-3.35882416640786475581e-03, ++-3.51767261497890407207e-03, ++-3.67439059369556366569e-03, ++-3.82889022930704356340e-03, ++-3.98108498246762219919e-03, ++-4.13088969613195546721e-03, ++-4.27822064312436464023e-03, ++-4.42299557285530213491e-03, ++-4.56513375715911651903e-03, ++-4.70455603522795286209e-03, ++-4.84118485761577625054e-03, ++-4.97494432928909796621e-03, ++-5.10576025170110612411e-03, ++-5.23356016386354247483e-03, ++-5.35827338239640901113e-03, ++-5.47983104053158340957e-03, ++-5.59816612604972611844e-03, ++-5.71321351812927209768e-03, ++-5.82491002308763421852e-03, ++-5.93319440899438971249e-03, ++-6.03800743913827410447e-03, ++-6.13929190432966741947e-03, ++-6.23699265402067378611e-03, ++-6.33105662622569179826e-03, ++-6.42143287622725950775e-03, ++-6.50807260405082601412e-03, ++-6.59092918069416680571e-03, ++-6.66995817309711056670e-03, ++-6.74511736783881075269e-03, ++-6.81636679354884200688e-03, ++-6.88366874202207389838e-03, ++-6.94698778802482330014e-03, ++-7.00629080778204620106e-03, ++-7.06154699613719197271e-03, ++-7.11272788237445920123e-03, ++-7.15980734469658271213e-03, ++-7.20276162335014690646e-03, ++-7.24156933239256637991e-03, ++-7.27621147009427024499e-03, ++-7.30667142797224253986e-03, ++-7.33293499844991664843e-03, ++-7.35499038114030730118e-03, ++-7.37282818775028547797e-03, ++-7.38644144560350775219e-03, ++-7.39582559978183007310e-03, ++-7.40097851388428658315e-03, ++-7.40190046940486859328e-03, ++-7.39859416373013153989e-03, ++-7.39106470675889026811e-03, ++-7.37931961614715723613e-03, ++-7.36336881118193880419e-03, ++-7.34322460528822728437e-03, ++-7.31890169717512584224e-03, ++-7.29041716062642924934e-03, ++-7.25779043294308163353e-03, ++-7.22104330204492456807e-03, ++-7.18019989224008559070e-03, ++-7.13528664867118991161e-03, ++-7.08633232044840466468e-03, ++-7.03336794247966679700e-03, ++-6.97642681600977102030e-03, ++-6.91554448788011654620e-03, ++-6.85075872852217854225e-03, ++-6.78210950869807035341e-03, ++-6.70963897500246285455e-03, ++-6.63339142414092006877e-03, ++-6.55341327599992442415e-03, ++-6.46975304552541326253e-03, ++-6.38246131342605754061e-03, ++-6.29159069572002467574e-03, ++-6.19719581214200551655e-03, ++-6.09933325343054149464e-03, ++-5.99806154751515805540e-03, ++-5.89344112462262485069e-03, ++-5.78553428132379601867e-03, ++-5.67440514354219504439e-03, ++-5.56011962854616095114e-03, ++-5.44274540594681839611e-03, ++-5.32235185772599213305e-03, ++-5.19901003731562585258e-03, ++-5.07279262775460568907e-03, ++-4.94377389894712446911e-03, ++-4.81202966404692660668e-03, ++-4.67763723499383179960e-03, ++-4.54067537722822531232e-03, ++-4.40122426361012723806e-03, ++-4.25936542756916083213e-03, ++-4.11518171551450429035e-03, ++-3.96875723852973399941e-03, ++-3.82017732338308995885e-03, ++-3.66952846288120431220e-03, ++-3.51689826559387639163e-03, ++-3.36237540498054293669e-03, ++-3.20604956794714058416e-03, ++-3.04801140286350535219e-03, ++-2.88835246707072135566e-03, ++-2.72716517391074315599e-03, ++-2.56454273930563836012e-03, ++-2.40057912792011364511e-03, ++-2.23536899893777120732e-03, ++-2.06900765148108206626e-03, ++-1.90159096970791930900e-03, ++-1.73321536761559679037e-03, ++-1.56397773358425175305e-03, ++-1.39397537469151283109e-03, ++-1.22330596083027954082e-03, ++-1.05206746866192031586e-03, ++-8.80358125436270775623e-04, ++-7.08276352712239277640e-04, ++-5.35920710009009110958e-04, ++-3.63389838422367814508e-04, ++-1.90782404235573607330e-04, ++-1.81970425606722737690e-05, ++ 1.54267698961177570456e-04, ++ 3.26513416366015622218e-04, ++ 4.98441905449340362869e-04, ++ 6.69955217690751999443e-04, ++ 8.40955715991319185942e-04, ++ 1.01134613018985628115e-03, ++ 1.18102961232867528438e-03, ++ 1.34990979163519928159e-03, ++ 1.51789082919096310863e-03, ++ 1.68487747225296133520e-03, ++ 1.85077510820205867401e-03, ++ 2.01548981808303672575e-03, ++ 2.17892842970867023702e-03, ++ 2.34099857029698189825e-03, ++ 2.50160871861258458579e-03, ++ 2.66066825658141034583e-03, ++ 2.81808752035150444221e-03, ++ 2.97377785076984252691e-03, ++ 3.12765164324742489868e-03, ++ 3.27962239698395725818e-03, ++ 3.42960476352574062178e-03, ++ 3.57751459462877022255e-03, ++ 3.72326898939903325192e-03, ++ 3.86678634068614995867e-03, ++ 4.00798638070307827741e-03, ++ 4.14679022584586980810e-03, ++ 4.28312042068948461981e-03, ++ 4.41690098113505479061e-03, ++ 4.54805743668363141041e-03, ++ 4.67651687181444911112e-03, ++ 4.80220796644356944655e-03, ++ 4.92506103544097621760e-03, ++ 5.04500806718418456226e-03, ++ 5.16198276112742483052e-03, ++ 5.27592056436465041414e-03, ++ 5.38675870716774727459e-03, ++ 5.49443623747928808210e-03, ++ 5.59889405434115926957e-03, ++ 5.70007494024133646443e-03, ++ 5.79792359236085651231e-03, ++ 5.89238665270259628914e-03, ++ 5.98341273708859113650e-03, ++ 6.07095246300716831489e-03, ++ 6.15495847629641840842e-03, ++ 6.23538547664926560282e-03, ++ 6.31219024192670834228e-03, ++ 6.38533165126559023456e-03, ++ 6.45477070696955871482e-03, ++ 6.52047055517085416554e-03, ++ 6.58239650525249079399e-03, ++ 6.64051604802040618125e-03, ++ 6.69479887261659797199e-03, ++ 6.74521688216371366476e-03, ++ 6.79174420813415374160e-03, ++ 6.83435722343555315111e-03, ++ 6.87303455420689574096e-03, ++ 6.90775709031867489462e-03, ++ 6.93850799457300902728e-03, ++ 6.96527271059846700418e-03, ++ 6.98803896943703088673e-03, ++ 7.00679679481976212113e-03, ++ 7.02153850712936879186e-03, ++ 7.03225872604836682589e-03, ++ 7.03895437189253850990e-03, ++ 7.04162466562946627591e-03, ++ 7.04027112758361280076e-03, ++ 7.03489757482926060528e-03, ++ 7.02551011727416043623e-03, ++ 7.01211715243688429866e-03, ++ 6.99472935892183310391e-03, ++ 6.97335968859667636177e-03, ++ 6.94802335747783921666e-03, ++ 6.91873783532993662237e-03, ++ 6.88552283398612303966e-03, ++ 6.84840029439715090170e-03, ++ 6.80739437241735696749e-03, ++ 6.76253142333664569730e-03, ++ 6.71383998516838706450e-03, ++ 6.66135076070345499843e-03, ++ 6.60509659834187211336e-03, ++ 6.54511247171371459558e-03, ++ 6.48143545810195200602e-03, ++ 6.41410471568024109779e-03, ++ 6.34316145958003368976e-03, ++ 6.26864893680093449718e-03, ++ 6.19061239997995525763e-03, ++ 6.10909908003542511529e-03, ++ 6.02415815770170753884e-03, ++ 5.93584073397201983369e-03, ++ 5.84419979946794454495e-03, ++ 5.74929020275181338478e-03, ++ 5.65116861760294342948e-03, ++ 5.54989350927625503529e-03, ++ 5.44552509976333788677e-03, ++ 5.33812533207639414862e-03, ++ 5.22775783357706802512e-03, ++ 5.11448787837056554478e-03, ++ 4.99838234878814680062e-03, ++ 4.87950969598033648666e-03, ++ 4.75793989964418302663e-03, ++ 4.63374442690764765801e-03, ++ 4.50699619039651548646e-03, ++ 4.37776950550668349227e-03, ++ 4.24614004690850900536e-03, ++ 4.11218480430692711475e-03, ++ 3.97598203748505876071e-03, ++ 3.83761123065512682953e-03, ++ 3.69715304614688265381e-03, ++ 3.55468927745570878116e-03, ++ 3.41030280168198429019e-03, ++ 3.26407753138687091454e-03, ++ 3.11609836589335845169e-03, ++ 2.96645114206062080267e-03, ++ 2.81522258455971620753e-03, ++ 2.66250025568077076238e-03, ++ 2.50837250469876198167e-03, ++ 2.35292841682855887256e-03, ++ 2.19625776179852754202e-03, ++ 2.03845094207133958539e-03, ++ 1.87959894074250246331e-03, ++ 1.71979326914796590980e-03, ++ 1.55912591420826569452e-03, ++ 1.39768928554081183456e-03, ++ 1.23557616237141834267e-03, ++ 1.07287964027444793387e-03, ++ 9.09693077772073983855e-04, ++ 7.46110042824598817396e-04, ++ 5.82224259240568249411e-04, ++ 4.18129553038750639577e-04, ++ 2.53919798792089188456e-04, ++ 8.96888659844675517445e-05, ++-7.44694345896905772258e-05, ++-2.38461404350935065157e-04, ++-4.02193510356873369562e-04, ++-5.65572438589027263849e-04, ++-7.28505147074144480956e-04, ++-8.90898918810926966801e-04, ++-1.05266141447140325338e-03, ++-1.21370072484502889917e-03, ++-1.37392542300045520862e-03, ++-1.53324461613069552152e-03, ++-1.69156799705494180486e-03, ++-1.84880589534694829770e-03, ++-2.00486932806183924816e-03, ++-2.15967005003114657924e-03, ++-2.31312060369968800280e-03, ++-2.46513436847466778021e-03, ++-2.61562560955978882365e-03, ++-2.76450952624671683969e-03, ++-2.91170229963722427408e-03, ++-3.05712113976792237979e-03, ++-3.20068433211290236454e-03, ++-3.34231128343639950426e-03, ++-3.48192256697167851556e-03, ++-3.61943996689886252766e-03, ++-3.75478652209826086611e-03, ++-3.88788656915454566149e-03, ++-4.01866578458679943320e-03, ++-4.14705122628237707327e-03, ++-4.27297137411052248279e-03, ++-4.39635616969335368820e-03, ++-4.51713705531228693069e-03, ++-4.63524701192860166116e-03, ++-4.75062059629599835880e-03, ++-4.86319397714623982004e-03, ++-4.97290497042671315875e-03, ++-5.07969307357067009767e-03, ++-5.18349949878208187543e-03, ++-5.28426720531614563942e-03, ++-5.38194093073713492048e-03, ++-5.47646722113816729338e-03, ++-5.56779446030545265012e-03, ++-5.65587289781075818612e-03, ++-5.74065467601772051742e-03, ++-5.82209385598695533526e-03, ++-5.90014644226589859283e-03, ++-5.97477040655035752242e-03, ++-6.04592571020508891960e-03, ++-6.11357432563106647366e-03, ++-6.17768025646842598719e-03, ++-6.23820955662453009022e-03, ++-6.29513034811653680867e-03, ++-6.34841283772002301644e-03, ++-6.39802933241444878737e-03, ++-6.44395425361771970879e-03, ++-6.48616415020282759824e-03, ++-6.52463771028981894679e-03, ++-6.55935577180693108607e-03, ++-6.59030133181688366345e-03, ++-6.61745955460281767846e-03, ++-6.64081777851058003420e-03, ++-6.66036552154464483316e-03, ++-6.67609448571504417863e-03, ++-6.68799856013396580579e-03, ++-6.69607382286100619867e-03, ++-6.70031854149736628978e-03, ++-6.70073317252893423113e-03, ++-6.69732035942032649656e-03, ++-6.69008492946125080808e-03, ++-6.67903388936833767447e-03, ++-6.66417641964580503844e-03, ++-6.64552386770900921364e-03, ++-6.62308973977570117353e-03, ++-6.59688969153084895508e-03, ++-6.56694151757089734922e-03, ++-6.53326513963461280587e-03, ++-6.49588259362816715370e-03, ++-6.45481801545267231540e-03, ++-6.41009762564318658074e-03, ++-6.36174971282886698998e-03, ++-6.30980461602472040422e-03, ++-6.25429470576554895345e-03, ++-6.19525436409436129626e-03, ++-6.13271996341689488996e-03, ++-6.06672984423554158967e-03, ++-5.99732429177634272788e-03, ++-5.92454551152269380532e-03, ++-5.84843760367088558172e-03, ++-5.76904653652344102249e-03, ++-5.68642011883526560245e-03, ++-5.60060797112928252656e-03, ++-5.51166149599965557448e-03, ++-5.41963384741940817219e-03, ++-5.32457989907073915570e-03, ++-5.22655621171772520606e-03, ++-5.12562099963942419123e-03, ++-5.02183409614448406089e-03, ++-4.91525691818681109702e-03, ++-4.80595243010374650883e-03, ++-4.69398510649735815209e-03, ++-4.57942089428194781808e-03, ++-4.46232717391857429401e-03, ++-4.34277271986037178425e-03, ++-4.22082766023175893350e-03, ++-4.09656343576443940369e-03, ++-3.97005275801442028549e-03, ++-3.84136956688634241541e-03, ++-3.71058898748600606704e-03, ++-3.57778728632999511172e-03, ++-3.44304182693580453772e-03, ++-3.30643102481900002035e-03, ++-3.16803430192340654270e-03, ++-3.02793204051044796687e-03, ++-2.88620553653542132044e-03, ++-2.74293695253627518860e-03, ++-2.59820927006318425079e-03, ++-2.45210624167601677625e-03, ++-2.30471234253809770590e-03, ++-2.15611272163192388071e-03, ++-2.00639315262918054017e-03, ++-1.85563998443917131317e-03, ++-1.70394009146592178422e-03, ++-1.55138082360318694218e-03, ++-1.39804995599510811267e-03, ++-1.24403563859131600054e-03, ++-1.08942634552675727232e-03, ++-9.34310824353430722893e-04, ++-7.78778045154488265424e-04, ++-6.22917149569355557345e-04, ++-4.66817399759168381000e-04, ++-3.10568127341177748629e-04, ++-1.54258682322715390484e-04, ++ 2.02161793800758804308e-06, ++ 1.58183539713823383393e-04, ++ 3.14137983804192602675e-04, ++ 4.69796036316565991924e-04, ++ 6.25069019303870366394e-04, ++ 7.79868541228004980535e-04, ++ 9.34106547223279145772e-04, ++ 1.08769536912991875675e-03, ++ 1.24054777526851588154e-03, ++ 1.39257701992830692887e-03, ++ 1.54369689254121996921e-03, ++ 1.69382176651257680342e-03, ++ 1.84286664768265498297e-03, ++ 1.99074722239030730067e-03, ++ 2.13737990511212458747e-03, ++ 2.28268188564996954079e-03, ++ 2.42657117584086636994e-03, ++ 2.56896665576163141242e-03, ++ 2.70978811940393539068e-03, ++ 2.84895631979290410787e-03, ++ 2.98639301352399176917e-03, ++ 3.12202100469403682342e-03, ++ 3.25576418820130086482e-03, ++ 3.38754759238860721909e-03, ++ 3.51729742100961384824e-03, ++ 3.64494109449081107530e-03, ++ 3.77040729046844522859e-03, ++ 3.89362598357706262905e-03, ++ 4.01452848446753798178e-03, ++ 4.13304747803329777800e-03, ++ 4.24911706082250345551e-03, ++ 4.36267277761673982761e-03, ++ 4.47365165715500091859e-03, ++ 4.58199224698366443242e-03, ++ 4.68763464741256234702e-03, ++ 4.79052054456022714107e-03, ++ 4.89059324246701558614e-03, ++ 4.98779769426149852812e-03, ++ 5.08208053236177022260e-03, ++ 5.17339009769468647498e-03, ++ 5.26167646791786663280e-03, ++ 5.34689148462896227804e-03, ++ 5.42898877954677526458e-03, ++ 5.50792379965109931556e-03, ++ 5.58365383126675513675e-03, ++ 5.65613802307947735604e-03, ++ 5.72533740807081026336e-03, ++ 5.79121492436091966222e-03, ++ 5.85373543494751170241e-03, ++ 5.91286574633094908632e-03, ++ 5.96857462601572963390e-03, ++ 6.02083281887862576537e-03, ++ 6.06961306239588074124e-03, ++ 6.11489010072096151466e-03, ++ 6.15664069760550429489e-03, ++ 6.19484364815777593938e-03, ++ 6.22947978943221101350e-03, ++ 6.26053200984478218361e-03, ++ 6.28798525741010132240e-03, ++ 6.31182654679610100068e-03, ++ 6.33204496519319988412e-03, ++ 6.34863167699579490633e-03, ++ 6.36157992729387798680e-03, ++ 6.37088504417378069522e-03, ++ 6.37654443982793583956e-03, ++ 6.37855761047346776077e-03, ++ 6.37692613508076319023e-03, ++ 6.37165367291377907760e-03, ++ 6.36274595988404155500e-03, ++ 6.35021080372164415523e-03, ++ 6.33405807796656641212e-03, ++ 6.31429971478498618803e-03, ++ 6.29094969661516800058e-03, ++ 6.26402404664898240089e-03, ++ 6.23354081815498742292e-03, ++ 6.19952008265027120631e-03, ++ 6.16198391692862612601e-03, ++ 6.12095638895326834422e-03, ++ 6.07646354262293339477e-03, ++ 6.02853338142123572341e-03, ++ 5.97719585095891989962e-03, ++ 5.92248282042035986694e-03, ++ 5.86442806292514912103e-03, ++ 5.80306723481761356498e-03, ++ 5.73843785389547937636e-03, ++ 5.67057927659296145267e-03, ++ 5.59953267413014401516e-03, ++ 5.52534100764390679467e-03, ++ 5.44804900231556955836e-03, ++ 5.36770312051036008194e-03, ++ 5.28435153394469885046e-03, ++ 5.19804409489867894761e-03, ++ 5.10883230648978472338e-03, ++ 5.01676929202641425087e-03, ++ 4.92190976345897174271e-03, ++ 4.82430998894739331007e-03, ++ 4.72402775956395210022e-03, ++ 4.62112235515180647810e-03, ++ 4.51565450935827780027e-03, ++ 4.40768637386434840308e-03, ++ 4.29728148183127715148e-03, ++ 4.18450471058511973971e-03, ++ 4.06942224356152213588e-03, ++ 3.95210153153399603582e-03, ++ 3.83261125314650298243e-03, ++ 3.71102127477429544200e-03, ++ 3.58740260973707415088e-03, ++ 3.46182737688722997824e-03, ++ 3.33436875859757829790e-03, ++ 3.20510095817370162935e-03, ++ 3.07409915671442122986e-03, ++ 2.94143946944645578653e-03, ++ 2.80719890155818000560e-03, ++ 2.67145530355801606032e-03, ++ 2.53428732618405597871e-03, ++ 2.39577437488870843840e-03, ++ 2.25599656392876232389e-03, ++ 2.11503467008288762591e-03, ++ 1.97297008602663600726e-03, ++ 1.82988477338951447716e-03, ++ 1.68586121552325774765e-03, ++ 1.54098237000600303548e-03, ++ 1.39533162091338329772e-03, ++ 1.24899273087909832951e-03, ++ 1.10204979297680240487e-03, ++ 9.54587182448630219150e-04, ++ 8.06689508308766145897e-04, ++ 6.58441564849216722996e-04, ++ 5.09928283076855021032e-04, ++ 3.61234682107735086132e-04, ++ 2.12445820547849437534e-04, ++ 6.36467478874062951924e-05, ++-8.50775440627651754989e-05, ++-2.33642169667408998316e-04, ++-3.81962397863639291536e-04, ++-5.29953700435123313019e-04, ++-6.77531800134304070492e-04, ++-8.24612718624688793498e-04, ++-9.71112824217015813653e-04, ++-1.11694887937219939321e-03, ++-1.26203808794284771423e-03, ++-1.40629814212836251781e-03, ++-1.54964726911566716763e-03, ++-1.69200427737972594958e-03, ++-1.83328860261746241604e-03, ++-1.97342035328964800558e-03, ++-2.11232035574377557952e-03, ++-2.24991019889414630914e-03, ++-2.38611227843281599459e-03, ++-2.52084984054647175469e-03, ++-2.65404702511572903115e-03, ++-2.78562890837174507302e-03, ++-2.91552154498523870621e-03, ++-3.04365200956643270486e-03, ++-3.16994843755161225321e-03, ++-3.29434006545274672348e-03, ++-3.41675727044862646842e-03, ++-3.53713160929501439778e-03, ++-3.65539585653244531588e-03, ++-3.77148404196936751220e-03, ++-3.88533148742125408054e-03, ++-3.99687484268407104693e-03, ++-4.10605212072268164342e-03, ++-4.21280273205412725268e-03, ++-4.31706751830841783946e-03, ++-4.41878878494509144681e-03, ++-4.51791033311113327670e-03, ++-4.61437749061991125260e-03, ++-4.70813714203596311164e-03, ++-4.79913775784764073951e-03, ++-4.88732942271308690857e-03, ++-4.97266386276206447808e-03, ++-5.05509447194163030054e-03, ++-5.13457633738856073641e-03, ++-5.21106626381633106920e-03, ++-5.28452279690304685400e-03, ++-5.35490624566773484178e-03, ++-5.42217870382271597413e-03, ++-5.48630407009116985440e-03, ++-5.54724806747858376760e-03, ++-5.60497826148812720165e-03, ++-5.65946407726994771964e-03, ++-5.71067681569638677108e-03, ++-5.75858966835306532173e-03, ++-5.80317773143970965649e-03, ++-5.84441801857288768113e-03, ++-5.88228947248397703723e-03, ++-5.91677297560679570088e-03, ++-5.94785135954983314177e-03, ++-5.97550941344791256699e-03, ++-5.99973389119013312404e-03, ++-6.02051351752001286111e-03, ++-6.03783899300595460619e-03, ++-6.05170299787924879931e-03, ++-6.06210019473904081905e-03, ++-6.06902723012296262811e-03, ++-6.07248273494360914920e-03, ++-6.07246732379158708770e-03, ++-6.06898359310613279977e-03, ++-6.06203611821533403653e-03, ++-6.05163144924839458555e-03, ++-6.03777810592327594807e-03, ++-6.02048657121333555264e-03, ++-5.99976928389753336873e-03, ++-5.97564062999924889424e-03, ++-5.94811693311943397167e-03, ++-5.91721644367056848202e-03, ++-5.88295932701797356923e-03, ++-5.84536765053670151482e-03, ++-5.80446536959165673014e-03, ++-5.76027831244998057142e-03, ++-5.71283416413511518916e-03, ++-5.66216244923269020756e-03, ++-5.60829451365809760616e-03, ++-5.55126350539837404990e-03, ++-5.49110435423857436155e-03, ++-5.42785375048610279486e-03, ++-5.36155012270514343825e-03, ++-5.29223361447536504165e-03, ++-5.21994606018790722329e-03, ++-5.14473095989484690421e-03, ++-5.06663345322490039219e-03, ++-4.98570029238308044806e-03, ++-4.90197981424923389521e-03, ++-4.81552191159239240809e-03, ++-4.72637800341784222735e-03, ++-4.63460100446517250100e-03, ++-4.54024529387421233589e-03, ++-4.44336668303834617794e-03, ++-4.34402238266374564335e-03, ++-4.24227096905429278129e-03, ++-4.13817234964060018387e-03, ++-4.03178772777628563473e-03, ++-3.92317956681902026833e-03, ++-3.81241155351897623854e-03, ++-3.69954856073620007989e-03, ++-3.58465660950824235517e-03, ++-3.46780283048990500827e-03, ++-3.34905542478881141852e-03, ++-3.22848362421805775910e-03, ++-3.10615765099010905648e-03, ++-2.98214867687515662251e-03, ++-2.85652878184750828178e-03, ++-2.72937091224384606111e-03, ++-2.60074883845852087780e-03, ++-2.47073711219897686545e-03, ++-2.33941102332713016590e-03, ++-2.20684655631157985653e-03, ++-2.07312034631475673035e-03, ++-1.93830963494213536630e-03, ++-1.80249222567671618656e-03, ++-1.66574643902788789573e-03, ++-1.52815106741598333122e-03, ++-1.38978532982251450426e-03, ++-1.25072882622996486672e-03, ++-1.11106149187807385498e-03, ++-9.70863551362263440571e-04, ++-8.30215472601808523491e-04, ++-6.89197920702451245073e-04, ++-5.47891711741154406080e-04, ++-4.06377766498845327103e-04, ++-2.64737064168374847291e-04, ++-1.23050596061868546460e-04, ++ 1.86006806518760801038e-05, ++ 1.60135889158271910344e-04, ++ 3.01474279126209918772e-04, ++ 4.42535272731790253753e-04, ++ 5.83238510548296702242e-04, ++ 7.23503897278638991204e-04, ++ 8.63251647300782411557e-04, ++ 1.00240233000493386348e-03, ++ 1.14087691489260295227e-03, ++ 1.27859681641420436932e-03, ++ 1.41548393851902284610e-03, ++ 1.55146071889291931739e-03, ++ 1.68645017285750319601e-03, ++ 1.82037593690758878195e-03, ++ 1.95316231186109341353e-03, ++ 2.08473430559764265693e-03, ++ 2.21501767536104888362e-03, ++ 2.34393896960388269796e-03, ++ 2.47142556934688362516e-03, ++ 2.59740572903363739141e-03, ++ 2.72180861685599774502e-03, ++ 2.84456435452711767914e-03, ++ 2.96560405648055866804e-03, ++ 3.08485986847369889757e-03, ++ 3.20226500557270433653e-03, ++ 3.31775378949923562683e-03, ++ 3.43126168531712261514e-03, ++ 3.54272533743877921647e-03, ++ 3.65208260493136678895e-03, ++ 3.75927259610300519913e-03, ++ 3.86423570235000643155e-03, ++ 3.96691363124569706944e-03, ++ 4.06724943885357868856e-03, ++ 4.16518756124574941052e-03, ++ 4.26067384521043503870e-03, ++ 4.35365557813031326534e-03, ++ 4.44408151701685457530e-03, ++ 4.53190191668225664939e-03, ++ 4.61706855703673899743e-03, ++ 4.69953476949353052966e-03, ++ 4.77925546246841040365e-03, ++ 4.85618714595966241565e-03, ++ 4.93028795519530847746e-03, ++ 5.00151767333411288730e-03, ++ 5.06983775320908342660e-03, ++ 5.13521133810092809957e-03, ++ 5.19760328153088136532e-03, ++ 5.25698016606174298865e-03, ++ 5.31331032109820002030e-03, ++ 5.36656383967527069595e-03, ++ 5.41671259422796692179e-03, ++ 5.46373025133245135421e-03, ++ 5.50759228541199737789e-03, ++ 5.54827599139992924671e-03, ++ 5.58576049635388805631e-03, ++ 5.62002677001447251137e-03, ++ 5.65105763430437738060e-03, ++ 5.67883777176233280753e-03, ++ 5.70335373290816339403e-03, ++ 5.72459394253559995802e-03, ++ 5.74254870493012391924e-03, ++ 5.75721020800935671946e-03, ++ 5.76857252638474007206e-03, ++ 5.77663162334343931875e-03, ++ 5.78138535175009606049e-03, ++ 5.78283345386879782390e-03, ++ 5.78097756010611391053e-03, ++ 5.77582118667672138324e-03, ++ 5.76736973219383122768e-03, ++ 5.75563047318704626432e-03, ++ 5.74061255855102051116e-03, ++ 5.72232700292902695532e-03, ++ 5.70078667903584773713e-03, ++ 5.67600630892513106918e-03, ++ 5.64800245420722570738e-03, ++ 5.61679350522356971021e-03, ++ 5.58239966918474238289e-03, ++ 5.54484295727977402612e-03, ++ 5.50414717076463597123e-03, ++ 5.46033788603883952356e-03, ++ 5.41344243871932310347e-03, ++ 5.36348990672138540431e-03, ++ 5.31051109235732010649e-03, ++ 5.25453850346318130510e-03, ++ 5.19560633356600486132e-03, ++ 5.13375044110239622114e-03, ++ 5.06900832770268514743e-03, ++ 5.00141911555166893133e-03, ++ 4.93102352384138312158e-03, ++ 4.85786384432904984332e-03, ++ 4.78198391601513880800e-03, ++ 4.70342909895635295087e-03, ++ 4.62224624722982427999e-03, ++ 4.53848368106374473741e-03, ++ 4.45219115815146792431e-03, ++ 4.36341984416594753926e-03, ++ 4.27222228249233334368e-03, ++ 4.17865236319510044427e-03, ++ 4.08276529124071765886e-03, ++ 3.98461755399166870500e-03, ++ 3.88426688799294646953e-03, ++ 3.78177224506918985281e-03, ++ 3.67719375775360296163e-03, ++ 3.57059270406730406081e-03, ++ 3.46203147167215485522e-03, ++ 3.35157352141467277523e-03, ++ 3.23928335028530935830e-03, ++ 3.12522645381305575613e-03, ++ 3.00946928791781488297e-03, ++ 2.89207923024227455538e-03, ++ 2.77312454098672077352e-03, ++ 2.65267432326827179087e-03, ++ 2.53079848302840103302e-03, ++ 2.40756768851164678139e-03, ++ 2.28305332933951632760e-03, ++ 2.15732747520132111738e-03, ++ 2.03046283418941569954e-03, ++ 1.90253271079930631401e-03, ++ 1.77361096362036439224e-03, ++ 1.64377196274210417119e-03, ++ 1.51309054689958370071e-03, ++ 1.38164198038311938042e-03, ++ 1.24950190973654160810e-03, ++ 1.11674632027006139751e-03, ++ 9.83451492411185164075e-04, ++ 8.49693957919833188497e-04, ++ 7.15550455992367039418e-04, ++ 5.81097889279802068928e-04, ++ 4.46413279844896004802e-04, ++ 3.11573725084547952131e-04, ++ 1.76656353640993331018e-04, ++ 4.17382813286828151375e-05, ++-9.31034328996876200512e-05, ++-2.27791830921029737336e-04, ++-3.62250099320780654093e-04, ++-4.96401613154530668010e-04, ++-6.30169979571938514672e-04, ++-7.63479081274113916857e-04, ++-8.96253119781942569726e-04, ++-1.02841665849006422100e-03, ++-1.15989466548260746100e-03, ++-1.29061255608525294117e-03, ++-1.42049623513107697685e-03, ++-1.54947213891506270153e-03, ++-1.67746727681411891310e-03, ++-1.80440927254837480201e-03, ++-1.93022640506252275011e-03, ++-2.05484764900032337159e-03, ++-2.17820271475373814299e-03, ++-2.30022208806093461653e-03, ++-2.42083706913298482913e-03, ++-2.53997981128547666713e-03, ++-2.65758335905543320934e-03, ++-2.77358168577903838048e-03, ++-2.88790973061320895704e-03, ++-3.00050343497665914297e-03, ++-3.11129977839202497697e-03, ++-3.22023681370834334581e-03, ++-3.32725370168476981825e-03, ++-3.43229074491519740159e-03, ++-3.53528942107627329461e-03, ++-3.63619241547926243599e-03, ++-3.73494365290821112024e-03, ++-3.83148832872629279550e-03, ++-3.92577293923390257396e-03, ++-4.01774531126125340058e-03, ++-4.10735463097804467947e-03, ++-4.19455147190698693360e-03, ++-4.27928782212313139899e-03, ++-4.36151711062546069975e-03, ++-4.44119423286594081079e-03, ++-4.51827557542231091070e-03, ++-4.59271903980044363808e-03, ++-4.66448406535440850823e-03, ++-4.73353165131090974221e-03, ++-4.79982437788653917843e-03, ++-4.86332642648651045092e-03, ++-4.92400359897397343206e-03, ++-4.98182333599925253331e-03, ++-5.03675473437993799497e-03, ++-5.08876856352186244387e-03, ++-5.13783728087296304166e-03, ++-5.18393504640126713545e-03, ++-5.22703773609024553021e-03, ++-5.26712295444329344635e-03, ++-5.30417004599272740029e-03, ++-5.33816010580571553151e-03, ++-5.36907598898301533646e-03, ++-5.39690231914530423041e-03, ++-5.42162549590326486165e-03, ++-5.44323370130771460457e-03, ++-5.46171690527704530721e-03, ++-5.47706686999947442440e-03, ++-5.48927715330848470243e-03, ++-5.49834311103008545329e-03, ++-5.50426189830165689398e-03, ++-5.50703246986195688040e-03, ++-5.50665557931325801155e-03, ++-5.50313377735658394718e-03, ++-5.49647140900193838936e-03, ++-5.48667460975575324578e-03, ++-5.47375130078852495386e-03, ++-5.45771118308641025457e-03, ++-5.43856573059035668105e-03, ++-5.41632818232791902330e-03, ++-5.39101353354278986507e-03, ++-5.36263852582782342415e-03, ++-5.33122163626806137848e-03, ++-5.29678306560053737545e-03, ++-5.25934472539848259925e-03, ++-5.21893022428794508411e-03, ++-5.17556485320526133559e-03, ++-5.12927556970489868793e-03, ++-5.08009098132678089954e-03, ++-5.02804132803355476738e-03, ++-4.97315846372916019885e-03, ++-4.91547583686848584689e-03, ++-4.85502847017122741990e-03, ++-4.79185293945155309919e-03, ++-4.72598735157650148841e-03, ++-4.65747132156595338576e-03, ++-4.58634594884884446570e-03, ++-4.51265379268859113254e-03, ++-4.43643884679333078136e-03, ++-4.35774651312552125521e-03, ++-4.27662357492689104710e-03, ++-4.19311816897408994737e-03, ++-4.10727975708242813713e-03, ++-4.01915909687342119000e-03, ++-3.92880821182439374240e-03, ++-3.83628036061678823893e-03, ++-3.74163000580234744730e-03, ++-3.64491278180403876011e-03, ++-3.54618546227291209921e-03, ++-3.44550592681680360740e-03, ++-3.34293312712312645080e-03, ++-3.23852705249417973515e-03, ++-3.13234869481537631791e-03, ++-3.02446001297665325452e-03, ++-2.91492389676846486157e-03, ++-2.80380413027231812501e-03, ++-2.69116535476798942814e-03, ++-2.57707303117848647925e-03, ++-2.46159340207523572031e-03, ++-2.34479345326362147856e-03, ++-2.22674087497457245249e-03, ++-2.10750402268079263524e-03, ++-1.98715187756321907606e-03, ++-1.86575400664854376166e-03, ++-1.74338052264242380010e-03, ++-1.62010204348048895799e-03, ++-1.49598965162051219212e-03, ++-1.37111485310015116836e-03, ++-1.24554953638238521431e-03, ++-1.11936593101341890638e-03, ++-9.92636566116329244550e-04, ++-8.65434228744452519431e-04, ++-7.37831922117954900481e-04, ++-6.09902823768643741718e-04, ++-4.81720243615482051399e-04, ++-3.53357581995873909833e-04, ++-2.24888287676710109473e-04, ++-9.63858158682636068570e-05, ++ 3.20764137345539367911e-05, ++ 1.60425058858032064824e-04, ++ 2.88586896482438703439e-04, ++ 4.16488864574161247057e-04, ++ 5.44058103695506324778e-04, ++ 6.71221998467804803826e-04, ++ 7.97908218864774886926e-04, ++ 9.24044761311549125993e-04, ++ 1.04955998956755358967e-03, ++ 1.17438267536891884947e-03, ++ 1.29844203880782817391e-03, ++ 1.42166778842579637730e-03, ++ 1.54399016099864027675e-03, ++ 1.66533996098952152137e-03, ++ 1.78564859964935114707e-03, ++ 1.90484813374091114212e-03, ++ 2.02287130386640369786e-03, ++ 2.13965157237518523517e-03, ++ 2.25512316083227538563e-03, ++ 2.36922108702373405281e-03, ++ 2.48188120148188241104e-03, ++ 2.59304022350648980672e-03, ++ 2.70263577666357253729e-03, ++ 2.81060642374125237153e-03, ++ 2.91689170114364185876e-03, ++ 3.02143215270252868399e-03, ++ 3.12416936288921476272e-03, ++ 3.22504598940713581648e-03, ++ 3.32400579514743541032e-03, ++ 3.42099367948939334788e-03, ++ 3.51595570892898222001e-03, ++ 3.60883914701814589171e-03, ++ 3.69959248359746136620e-03, ++ 3.78816546330745101967e-03, ++ 3.87450911336219023379e-03, ++ 3.95857577056929390430e-03, ++ 4.04031910758215120211e-03, ++ 4.11969415836998739677e-03, ++ 4.19665734289097897003e-03, ++ 4.27116649095604910408e-03, ++ 4.34318086526945621589e-03, ++ 4.41266118363398390095e-03, ++ 4.47956964030860743664e-03, ++ 4.54386992650717726205e-03, ++ 4.60552725002660520714e-03, ++ 4.66450835399471325227e-03, ++ 4.72078153472709621807e-03, ++ 4.77431665868354501020e-03, ++ 4.82508517851539756732e-03, ++ 4.87306014819507884311e-03, ++ 4.91821623721916140887e-03, ++ 4.96052974387923596711e-03, ++ 4.99997860759186524976e-03, ++ 5.03654242028247437629e-03, ++ 5.07020243681679735892e-03, ++ 5.10094158447498870201e-03, ++ 5.12874447146327485519e-03, ++ 5.15359739445947657999e-03, ++ 5.17548834518845573410e-03, ++ 5.19440701602455999486e-03, ++ 5.21034480461868027695e-03, ++ 5.22329481754779667568e-03, ++ 5.23325187298585500772e-03, ++ 5.24021250239507709739e-03, ++ 5.24417495123738995610e-03, ++ 5.24513917870653937486e-03, ++ 5.24310685648145778648e-03, ++ 5.23808136650251530281e-03, ++ 5.23006779777264278752e-03, ++ 5.21907294218578940437e-03, ++ 5.20510528938584581676e-03, ++ 5.18817502065979652137e-03, ++ 5.16829400186912500670e-03, ++ 5.14547577542429773745e-03, ++ 5.11973555130774103661e-03, ++ 5.09109019715092269570e-03, ++ 5.05955822737205133249e-03, ++ 5.02515979138124391917e-03, ++ 4.98791666086073268160e-03, ++ 4.94785221612767823346e-03, ++ 4.90499143158841868773e-03, ++ 4.85936086029322127783e-03, ++ 4.81098861760061516368e-03, ++ 4.75990436396146916753e-03, ++ 4.70613928683348472365e-03, ++ 4.64972608173691136918e-03, ++ 4.59069893246278216276e-03, ++ 4.52909349044612261070e-03, ++ 4.46494685331585636212e-03, ++ 4.39829754263475290049e-03, ++ 4.32918548084257250735e-03, ++ 4.25765196741618740656e-03, ++ 4.18373965426069652218e-03, ++ 4.10749252034667798605e-03, ++ 4.02895584560788132256e-03, ++ 3.94817618411542111539e-03, ++ 3.86520133654418484789e-03, ++ 3.78008032194739225507e-03, ++ 3.69286334885604366693e-03, ++ 3.60360178572117573551e-03, ++ 3.51234813071479813271e-03, ++ 3.41915598090793311503e-03, ++ 3.32408000084427699555e-03, ++ 3.22717589052724015269e-03, ++ 3.12850035283901645525e-03, ++ 3.02811106041162708680e-03, ++ 2.92606662196800764927e-03, ++ 2.82242654815364601290e-03, ++ 2.71725121687837328777e-03, ++ 2.61060183818851918036e-03, ++ 2.50254041868949728133e-03, ++ 2.39312972554039504053e-03, ++ 2.28243325004017514127e-03, ++ 2.17051517082786447205e-03, ++ 2.05744031671671037328e-03, ++ 1.94327412918531700070e-03, ++ 1.82808262454552442576e-03, ++ 1.71193235581180232437e-03, ++ 1.59489037429026681535e-03, ++ 1.47702419091290675264e-03, ++ 1.35840173733748205247e-03, ++ 1.23909132683596356558e-03, ++ 1.11916161499407847656e-03, ++ 9.98681560244074617572e-04, ++ 8.77720384254470167330e-04, ++ 7.56347532198058721681e-04, ++ 6.34632632921996054504e-04, ++ 5.12645459042746680714e-04, ++ 3.90455886987906247536e-04, ++ 2.68133857008314943106e-04, ++ 1.45749333184361831153e-04, ++ 2.33722634472747536666e-05, ++-9.89274603607503039181e-05, ++-2.21080042364225074413e-04, ++-3.43015822447986784560e-04, ++-4.64665315944092405156e-04, ++-5.85959253188382740186e-04, ++-7.06828618925680403524e-04, ++-8.27204691540118683922e-04, ++-9.47019082088787164143e-04, ++-1.06620377311637771697e-03, ++-1.18469115722925682696e-03, ++-1.30241407540605423285e-03, ++-1.41930585502448507011e-03, ++-1.53530034758192469001e-03, ++-1.65033196608840252578e-03, ++-1.76433572211173142659e-03, ++-1.87724726245334949150e-03, ++-1.98900290543319513067e-03, ++-2.09953967676512883930e-03, ++-2.20879534500175757350e-03, ++-2.31670845652815794724e-03, ++-2.42321837008570468985e-03, ++-2.52826529080659367574e-03, ++-2.63179030373909264226e-03, ++-2.73373540684600496026e-03, ++-2.83404354345699518308e-03, ++-2.93265863415691175817e-03, ++-3.02952560809236284833e-03, ++-3.12459043367923185522e-03, ++-3.21780014869336387223e-03, ++-3.30910288972877109082e-03, ++-3.39844792100587331576e-03, ++-3.48578566251492739242e-03, ++-3.57106771747796791425e-03, ++-3.65424689911476559614e-03, ++-3.73527725669808635320e-03, ++-3.81411410088312429617e-03, ++-3.89071402829827646050e-03, ++-3.96503494538289445737e-03, ++-4.03703609145932267727e-03, ++-4.10667806102655782996e-03, ++-4.17392282526347826316e-03, ++-4.23873375272956244564e-03, ++-4.30107562925237472268e-03, ++-4.36091467699083017162e-03, ++-4.41821857266369143885e-03, ++-4.47295646493412607514e-03, ++-4.52509899094063333669e-03, ++-4.57461829196504320139e-03, ++-4.62148802823035640547e-03, ++-4.66568339281999474449e-03, ++-4.70718112471093987764e-03, ++-4.74595952091446966065e-03, ++-4.78199844771800587628e-03, ++-4.81527935102211632201e-03, ++-4.84578526576791637770e-03, ++-4.87350082444968323026e-03, ++-4.89841226470876054538e-03, ++-4.92050743600499964486e-03, ++-4.93977580536274565870e-03, ++-4.95620846218847079662e-03, ++-4.96979812215835037303e-03, ++-4.98053913017405553570e-03, ++-4.98842746238571579237e-03, ++-4.99346072728172954425e-03, ++-4.99563816584549461736e-03, ++-4.99496065077936236831e-03, ++-4.99143068479745467825e-03, ++-4.98505239798852691629e-03, ++-4.97583154425139829319e-03, ++-4.96377549680547796446e-03, ++-4.94889324277973576688e-03, ++-4.93119537688388714231e-03, ++-4.91069409416598247342e-03, ++-4.88740318186142198853e-03, ++-4.86133801033847897516e-03, ++-4.83251552314631609847e-03, ++-4.80095422617195580206e-03, ++-4.76667417591256168535e-03, ++-4.72969696687120574191e-03, ++-4.69004571808321647775e-03, ++-4.64774505878175377138e-03, ++-4.60282111321146884114e-03, ++-4.55530148459956044787e-03, ++-4.50521523829377698589e-03, ++-4.45259288407801132742e-03, ++-4.39746635767579701487e-03, ++-4.33986900145311854660e-03, ++-4.27983554433203870759e-03, ++-4.21740208092733371431e-03, ++-4.15260604991831393240e-03, ++-4.08548621166932371396e-03, ++-4.01608262511158123353e-03, ++-3.94443662390054836098e-03, ++-3.87059079186303405321e-03, ++-3.79458893774812806160e-03, ++-3.71647606929711776455e-03, ++-3.63629836664845860345e-03, ++-3.55410315509214558630e-03, ++-3.46993887719018040405e-03, ++-3.38385506427993278805e-03, ++-3.29590230737648436782e-03, ++-3.20613222749113312843e-03, ++-3.11459744538398987032e-03, ++-3.02135155076756461295e-03, ++-2.92644907097984593655e-03, ++-2.82994543914506487339e-03, ++-2.73189696184072483912e-03, ++-2.63236078628936763860e-03, ++-2.53139486709509815843e-03, ++-2.42905793254300297890e-03, ++-2.32540945048183896743e-03, ++-2.22050959380982104382e-03, ++-2.11441920558280097714e-03, ++-2.00719976376547218355e-03, ++-1.89891334564696082597e-03, ++-1.78962259193952521845e-03, ++-1.67939067058208314070e-03, ++-1.56828124026987358701e-03, ++-1.45635841373061535042e-03, ++-1.34368672076823521266e-03, ++-1.23033107109642224179e-03, ++-1.11635671698205856534e-03, ++-1.00182921572098456581e-03, ++-8.86814391967279472273e-04, ++-7.71378299937657582568e-04, ++-6.55587185513229354222e-04, ++-5.39507448258485936346e-04, ++-4.23205603382631467824e-04, ++-3.06748243661661022710e-04, ++-1.90202001344411987527e-04, ++-7.36335100648440309687e-05, ++ 4.28906332185422347128e-05, ++ 1.59303906234412831922e-04, ++ 2.75539899338800254799e-04, ++ 3.91532353363562794085e-04, ++ 5.07215197350502681149e-04, ++ 6.22522586150107753653e-04, ++ 7.37388937863388033329e-04, ++ 8.51748971105957086540e-04, ++ 9.65537742072175879035e-04, ++ 1.07869068137969592591e-03, ++ 1.19114363067259008272e-03, ++ 1.30283287896230275983e-03, ++ 1.41369519868671613717e-03, ++ 1.52366788146634829677e-03, ++ 1.63268877353659261353e-03, ++ 1.74069631083787878384e-03, ++ 1.84762955374296743323e-03, ++ 1.95342822140135439005e-03, ++ 2.05803272568219793037e-03, ++ 2.16138420469669332441e-03, ++ 2.26342455588016133738e-03, ++ 2.36409646861654226466e-03, ++ 2.46334345638605676718e-03, ++ 2.56110988841841760721e-03, ++ 2.65734102083372766834e-03, ++ 2.75198302725402016780e-03, ++ 2.84498302886748277024e-03, ++ 2.93628912392977997961e-03, ++ 3.02585041668512657459e-03, ++ 3.11361704569121855099e-03, ++ 3.19954021153272608058e-03, ++ 3.28357220390771429100e-03, ++ 3.36566642807112174907e-03, ++ 3.44577743062223634807e-03, ++ 3.52386092462112724549e-03, ++ 3.59987381401977125581e-03, ++ 3.67377421739513865956e-03, ++ 3.74552149097084462886e-03, ++ 3.81507625091497340475e-03, ++ 3.88240039490136924424e-03, ++ 3.94745712292331966259e-03, ++ 4.01021095734782184045e-03, ++ 4.07062776219968818631e-03, ++ 4.12867476166478130500e-03, ++ 4.18432055780340594886e-03, ++ 4.23753514746243783312e-03, ++ 4.28828993837902447406e-03, ++ 4.33655776446637518384e-03, ++ 4.38231290027339768361e-03, ++ 4.42553107461083304608e-03, ++ 4.46618948333678180557e-03, ++ 4.50426680129448111373e-03, ++ 4.53974319339683820423e-03, ++ 4.57260032485135199665e-03, ++ 4.60282137052065234983e-03, ++ 4.63039102341378759620e-03, ++ 4.65529550230404237654e-03, ++ 4.67752255846963938685e-03, ++ 4.69706148155405248112e-03, ++ 4.71390310454339756668e-03, ++ 4.72803980785840502477e-03, ++ 4.73946552255972292089e-03, ++ 4.74817573266493424267e-03, ++ 4.75416747657694122031e-03, ++ 4.75743934762336718319e-03, ++ 4.75799149370748075683e-03, ++ 4.75582561607138833149e-03, ++ 4.75094496717288084647e-03, ++ 4.74335434767782487125e-03, ++ 4.73306010257048929979e-03, ++ 4.72007011638460489966e-03, ++ 4.70439380755864264283e-03, ++ 4.68604212191906475959e-03, ++ 4.66502752529606660309e-03, ++ 4.64136399527643843388e-03, ++ 4.61506701209918757806e-03, ++ 4.58615354869955273859e-03, ++ 4.55464205990770056726e-03, ++ 4.52055247080917176061e-03, ++ 4.48390616427393924603e-03, ++ 4.44472596766223859710e-03, ++ 4.40303613871486330955e-03, ++ 4.35886235063746938639e-03, ++ 4.31223167638676834618e-03, ++ 4.26317257216925812185e-03, ++ 4.21171486016196257307e-03, ++ 4.15788971046581433411e-03, ++ 4.10172962230226281072e-03, ++ 4.04326840446501793724e-03, ++ 3.98254115503794432068e-03, ++ 3.91958424039167124125e-03, ++ 3.85443527347131180763e-03, ++ 3.78713309138849164512e-03, ++ 3.71771773232995421388e-03, ++ 3.64623041179842725945e-03, ++ 3.57271349819778243767e-03, ++ 3.49721048777782827360e-03, ++ 3.41976597895377260397e-03, ++ 3.34042564601502072266e-03, ++ 3.25923621223874176306e-03, ++ 3.17624542242462160752e-03, ++ 3.09150201486607309476e-03, ++ 3.00505569277494284652e-03, ++ 2.91695709517621800527e-03, ++ 2.82725776728985633834e-03, ++ 2.73601013041636529841e-03, ++ 2.64326745134584257038e-03, ++ 2.54908381130463648420e-03, ++ 2.45351407446147209979e-03, ++ 2.35661385600897553202e-03, ++ 2.25843948984021103410e-03, ++ 2.15904799583798876969e-03, ++ 2.05849704679780722699e-03, ++ 1.95684493500119767798e-03, ++ 1.85415053846056882350e-03, ++ 1.75047328685429747983e-03, ++ 1.64587312717267382142e-03, ++ 1.54041048909200266152e-03, ++ 1.43414625010112694974e-03, ++ 1.32714170039615556723e-03, ++ 1.21945850756623999298e-03, ++ 1.11115868108982397341e-03, ++ 1.00230453666194673813e-03, ++ 8.92958660373076220512e-04, ++ 7.83183872760047513316e-04, ++ 6.73043192749742938061e-04, ++ 5.62599801516196619360e-04, ++ 4.51917006271797402298e-04, ++ 3.41058204013367112766e-04, ++ 2.30086845243956402514e-04, ++ 1.19066397690317975016e-04, ++ 8.06031003876342309552e-06, ++-1.02868024292534745090e-04, ++-2.13655303322282262481e-04, ++-3.24238352595229727994e-04, ++-4.34554161172920089696e-04, ++-5.44539917503692838356e-04, ++-6.54133045151543304589e-04, ++-7.63271238365370997651e-04, ++-8.71892497466585482749e-04, ++-9.79935164035776202357e-04, ++-1.08733795587835245164e-03, ++-1.19404000174937055881e-03, ++-1.29998087581786859156e-03, ++-1.40510063185121983863e-03, ++-1.50933983710020702684e-03, ++-1.61263960586564250761e-03, ++-1.71494163272752683097e-03, ++-1.81618822541869504202e-03, ++-1.91632233732264294253e-03, ++-2.01528759957979742429e-03, ++-2.11302835278164621163e-03, ++-2.20948967823741222391e-03, ++-2.30461742879315041599e-03, ++-2.39835825918845125734e-03, ++-2.49065965593134232975e-03, ++-2.58146996667703255632e-03, ++-2.67073842909245186619e-03, ++-2.75841519919107873438e-03, ++-2.84445137912224619431e-03, ++-2.92879904439931598031e-03, ++-3.01141127055178960126e-03, ++-3.09224215918633147174e-03, ++-3.17124686344243166339e-03, ++-3.24838161282851346778e-03, ++-3.32360373742473678635e-03, ++-3.39687169143964044424e-03, ++-3.46814507610627249454e-03, ++-3.53738466190720588292e-03, ++-3.60455241011424683262e-03, ++-3.66961149363298272039e-03, ++-3.73252631713888970155e-03, ++-3.79326253649527652539e-03, ++-3.85178707744242114497e-03, ++-3.90806815354677143659e-03, ++-3.96207528340193453065e-03, ++-4.01377930707108587782e-03, ++-4.06315240176249869997e-03, ++-4.11016809672954883115e-03, ++-4.15480128738748670514e-03, ++-4.19702824863931681781e-03, ++-4.23682664740382061708e-03, ++-4.27417555433919245378e-03, ++-4.30905545475612165168e-03, ++-4.34144825871471493756e-03, ++-4.37133731030028924863e-03, ++-4.39870739607276222544e-03, ++-4.42354475268612757494e-03, ++-4.44583707367407054284e-03, ++-4.46557351539804588125e-03, ++-4.48274470215558658998e-03, ++-4.49734273044633849070e-03, ++-4.50936117239380054866e-03, ++-4.51879507832192439665e-03, ++-4.52564097848520176248e-03, ++-4.52989688395227449447e-03, ++-4.53156228664297524439e-03, ++-4.53063815851947795238e-03, ++-4.52712694993263019272e-03, ++-4.52103258712507720396e-03, ++-4.51236046889318294373e-03, ++-4.50111746241027566029e-03, ++-4.48731189821427022685e-03, ++-4.47095356436308811326e-03, ++-4.45205369976202098431e-03, ++-4.43062498666702171690e-03, ++-4.40668154236938374585e-03, ++-4.38023891006674489373e-03, ++-4.35131404892644905319e-03, ++-4.31992532334727567106e-03, ++-4.28609249142686190431e-03, ++-4.24983669264115699465e-03, ++-4.21118043474420344213e-03, ++-4.17014757989600526322e-03, ++-4.12676333002717343063e-03, ++-4.08105421144885384399e-03, ++-4.03304805871769478376e-03, ++-3.98277399776586060048e-03, ++-3.93026242830538889012e-03, ++-3.87554500551830520202e-03, ++-3.81865462104316469652e-03, ++-3.75962538326934676142e-03, ++-3.69849259695105700083e-03, ++-3.63529274215302917322e-03, ++-3.57006345254048127261e-03, ++-3.50284349302629844855e-03, ++-3.43367273678861842368e-03, ++-3.36259214167245173294e-03, ++-3.28964372598887933724e-03, ++-3.21487054372729570695e-03, ++-3.13831665919360848840e-03, ++-3.06002712109050643147e-03, ++-2.98004793605501560813e-03, ++-2.89842604166773779029e-03, ++-2.81520927895077040931e-03, ++-2.73044636437046704669e-03, ++-2.64418686136011710577e-03, ++-2.55648115138037068314e-03, ++-2.46738040453385034864e-03, ++-2.37693654975105290658e-03, ++-2.28520224456495602700e-03, ++-2.19223084449187820971e-03, ++-2.09807637203635911904e-03, ++-2.00279348533807409136e-03, ++-1.90643744647894558715e-03, ++-1.80906408946890644336e-03, ++-1.71072978792818604712e-03, ++-1.61149142248648530144e-03, ++-1.51140634791550681169e-03, ++-1.41053236001619538946e-03, ++-1.30892766227735197690e-03, ++-1.20665083232744858345e-03, ++-1.10376078819640946992e-03, ++-1.00031675440937460608e-03, ++-8.96378227929317322395e-04, ++-7.92004943969952133684e-04, ++-6.87256841697829728294e-04, ++-5.82194029843374478810e-04, ++-4.76876752240620047432e-04, ++-3.71365353315354857280e-04, ++-2.65720243541443139953e-04, ++-1.60001864885065504330e-04, ++-5.42706562566359684624e-05, ++ 5.14129810098762333082e-05, ++ 1.56988717630401143676e-04, ++ 2.62396330778088919793e-04, ++ 3.67575738403138686013e-04, ++ 4.72467033447351674163e-04, ++ 5.77010517933939639720e-04, ++ 6.81146736911458490320e-04, ++ 7.84816512234211456633e-04, ++ 8.87960976159937634238e-04, ++ 9.90521604744005372892e-04, ++ 1.09244025101365264951e-03, ++ 1.19365917790164059384e-03, ++ 1.29412109092141174894e-03, ++ 1.39376917056518003293e-03, ++ 1.49254710440663968495e-03, ++ 1.59039911889015199951e-03, ++ 1.68727001078853872801e-03, ++ 1.78310517831170383361e-03, ++ 1.87785065184860474295e-03, ++ 1.97145312432514584547e-03, ++ 2.06385998116165444646e-03, ++ 2.15501932981150296637e-03, ++ 2.24488002886593339402e-03, ++ 2.33339171670872728634e-03, ++ 2.42050483970316981583e-03, ++ 2.50617067989698880798e-03, ++ 2.59034138222976727944e-03, ++ 2.67296998122616528970e-03, ++ 2.75401042716228762475e-03, ++ 2.83341761168887876915e-03, ++ 2.91114739289797088209e-03, ++ 2.98715661981875787653e-03, ++ 3.06140315632929442893e-03, ++ 3.13384590447068249811e-03, ++ 3.20444482715097822209e-03, ++ 3.27316097022614747175e-03, ++ 3.33995648394608485657e-03, ++ 3.40479464375383631194e-03, ++ 3.46763987042658736876e-03, ++ 3.52845774954753865424e-03, ++ 3.58721505029781922991e-03, ++ 3.64387974355847871905e-03, ++ 3.69842101931248078139e-03, ++ 3.75080930333746573671e-03, ++ 3.80101627318009003750e-03, ++ 3.84901487340377030863e-03, ++ 3.89477933010077409515e-03, ++ 3.93828516466203197577e-03, ++ 3.97950920679663710383e-03, ++ 4.01842960679405468427e-03, ++ 4.05502584702343085721e-03, ++ 4.08927875266308724772e-03, ++ 4.12117050165479448243e-03, ++ 4.15068463387839852591e-03, ++ 4.17780605954134933583e-03, ++ 4.20252106677934406803e-03, ++ 4.22481732846414353988e-03, ++ 4.24468390821542990859e-03, ++ 4.26211126561366546173e-03, ++ 4.27709126061177457440e-03, ++ 4.28961715714353680751e-03, ++ 4.29968362592737362443e-03, ++ 4.30728674646440722745e-03, ++ 4.31242400823038558866e-03, ++ 4.31509431106120045635e-03, ++ 4.31529796473259855127e-03, ++ 4.31303668773473300457e-03, ++ 4.30831360524300700093e-03, ++ 4.30113324628681858303e-03, ++ 4.29150154011852507513e-03, ++ 4.27942581178534283554e-03, ++ 4.26491477690706718290e-03, ++ 4.24797853566351822641e-03, ++ 4.22862856599543705111e-03, ++ 4.20687771602348218464e-03, ++ 4.18274019569020352044e-03, ++ 4.15623156763024730748e-03, ++ 4.12736873727475445106e-03, ++ 4.09616994219598982985e-03, ++ 4.06265474069904698046e-03, ++ 4.02684399966749852207e-03, ++ 3.98875988167053836808e-03, ++ 3.94842583133988254962e-03, ++ 3.90586656102404668894e-03, ++ 3.86110803572960138361e-03, ++ 3.81417745735749278216e-03, ++ 3.76510324824506480840e-03, ++ 3.71391503402302824294e-03, ++ 3.66064362579748142634e-03, ++ 3.60532100166869413568e-03, ++ 3.54798028759637515753e-03, ++ 3.48865573762383116702e-03, ++ 3.42738271347229261563e-03, ++ 3.36419766351780209421e-03, ++ 3.29913810116290494648e-03, ++ 3.23224258261611266038e-03, ++ 3.16355068409222362283e-03, ++ 3.09310297844691411973e-03, ++ 3.02094101125942446004e-03, ++ 2.94710727637745740354e-03, ++ 2.87164519093818793039e-03, ++ 2.79459906988119548971e-03, ++ 2.71601409996710457459e-03, ++ 2.63593631331708773413e-03, ++ 2.55441256048993380751e-03, ++ 2.47149048311133935976e-03, ++ 2.38721848607121494082e-03, ++ 2.30164570930673547527e-03, ++ 2.21482199918544885378e-03, ++ 2.12679787950668637911e-03, ++ 2.03762452213744876123e-03, ++ 1.94735371729998175613e-03, ++ 1.85603784352819439415e-03, ++ 1.76372983731039952200e-03, ++ 1.67048316243592642229e-03, ++ 1.57635177906330727939e-03, ++ 1.48139011252795978722e-03, ++ 1.38565302190747641209e-03, ++ 1.28919576836194387306e-03, ++ 1.19207398326919835826e-03, ++ 1.09434363617172251450e-03, ++ 9.96061002553666387932e-04, ++ 8.97282631468103723978e-04, ++ 7.98065313031665838489e-04, ++ 6.98466045805186700954e-04, ++ 5.98542004080726075879e-04, ++ 4.98350505091392156909e-04, ++ 3.97948976164492736543e-04, ++ 2.97394921836138706028e-04, ++ 1.96745890946085639616e-04, ++ 9.60594437324946328737e-05, ++-4.60688105713253110850e-06, ++-1.05195599015863548308e-04, ++-2.05649312873547269803e-04, ++-3.05910745218120614427e-04, ++-4.05922771124209050102e-04, ++-5.05628450670332911694e-04, ++-6.04971061326233742333e-04, ++-7.03894130191895397823e-04, ++-8.02341466069983314836e-04, ++-9.00257191353478103575e-04, ++-9.97585773710441469850e-04, ++-1.09427205754784526159e-03, ++-1.19026129523734734011e-03, ++-1.28549917808361388767e-03, ++-1.37993186702002005456e-03, ++-1.47350602301274868564e-03, ++-1.56616883715618676436e-03, ++-1.65786806044407471726e-03, ++-1.74855203319811505248e-03, ++-1.83816971413744510017e-03, ++-1.92667070907424605244e-03, ++-2.01400529921775661019e-03, ++-2.10012446907152346490e-03, ++-2.18497993390813667614e-03, ++-2.26852416680606251351e-03, ++-2.35071042523344675770e-03, ++-2.43149277716405484012e-03, ++-2.51082612671079579217e-03, ++-2.58866623926247820323e-03, ++-2.66496976610981501504e-03, ++-2.73969426854743253880e-03, ++-2.81279824143723829188e-03, ++-2.88424113622183812475e-03, ++-2.95398338337400341927e-03, ++-3.02198641426984970434e-03, ++-3.08821268247472897547e-03, ++-3.15262568442887820136e-03, ++-3.21518997952162247436e-03, ++-3.27587120954407487808e-03, ++-3.33463611750868180184e-03, ++-3.39145256582575700330e-03, ++-3.44628955382705274429e-03, ++-3.49911723462676847382e-03, ++-3.54990693131099601179e-03, ++-3.59863115244673462817e-03, ++-3.64526360690210944615e-03, ++-3.68977921797001727142e-03, ++-3.73215413678737884667e-03, ++-3.77236575504307771953e-03, ++-3.81039271696794737063e-03, ++-3.84621493059991411204e-03, ++-3.87981357831906903399e-03, ++-3.91117112664715865095e-03, ++-3.94027133530578613924e-03, ++-3.96709926552936235911e-03, ++-3.99164128762850064364e-03, ++-4.01388508779965472173e-03, ++-4.03381967417829664230e-03, ++-4.05143538213234219447e-03, ++-4.06672387879341342559e-03, ++-4.07967816682406215351e-03, ++-4.09029258741918071846e-03, ++-4.09856282254066582593e-03, ++-4.10448589638437531107e-03, ++-4.10806017607942119269e-03, ++-4.10928537161966977997e-03, ++-4.10816253502826328470e-03, ++-4.10469405875612397550e-03, ++-4.09888367331595702275e-03, ++-4.09073644415366196453e-03, ++-4.08025876775947385355e-03, ++-4.06745836702175275756e-03, ++-4.05234428582641227623e-03, ++-4.03492688290585550803e-03, ++-4.01521782494141353526e-03, ++-3.99323007892370650251e-03, ++-3.96897790377597620148e-03, ++-3.94247684124562208785e-03, ++-3.91374370606971909436e-03, ++-3.88279657542071584067e-03, ++-3.84965477763883840226e-03, ++-3.81433888025815110920e-03, ++-3.77687067733369942479e-03, ++-3.73727317607745312261e-03, ++-3.69557058281119732435e-03, ++-3.65178828824497432592e-03, ++-3.60595285208962579651e-03, ++-3.55809198701380119054e-03, ++-3.50823454195329457322e-03, ++-3.45641048478445914172e-03, ++-3.40265088437114587849e-03, ++-3.34698789199610203388e-03, ++-3.28945472218769140865e-03, ++-3.23008563295407733276e-03, ++-3.16891590543550479703e-03, ++-3.10598182298758417746e-03, ++-3.04132064970752489380e-03, ++-2.97497060841662606598e-03, ++-2.90697085811037359698e-03, ++-2.83736147089205630045e-03, ++-2.76618340840093044491e-03, ++-2.69347849775016792359e-03, ++-2.61928940698839384654e-03, ++-2.54365962009905433386e-03, ++-2.46663341155241517058e-03, ++-2.38825582042492129409e-03, ++-2.30857262410112847040e-03, ++-2.22763031157348617012e-03, ++-2.14547605635553037887e-03, ++-2.06215768902437597554e-03, ++-1.97772366940784189923e-03, ++-1.89222305843385276043e-03, ++-1.80570548965651076455e-03, ++-1.71822114047665615993e-03, ++-1.62982070307368252966e-03, ++-1.54055535506404249653e-03, ++-1.45047672990482020075e-03, ++-1.35963688705958486193e-03, ++-1.26808828194214899543e-03, ++-1.17588373565714085327e-03, ++-1.08307640455412444898e-03, ++-9.89719749612947034476e-04, ++-8.95867505677916593256e-04, ++-8.01573650558492470548e-04, ++-7.06892374014246962534e-04, ++-6.11878046641902415860e-04, ++-5.16585188682274517973e-04, ++-4.21068438765152331434e-04, ++-3.25382522609281570492e-04, ++-2.29582221697126570396e-04, ++-1.33722341940000448565e-04, ++-3.78576823531001234436e-05, ++ 5.79569962416860487149e-05, ++ 1.53667002468926312949e-04, ++ 2.49217745588539837595e-04, ++ 3.44554766605055051796e-04, ++ 4.39623769277135254159e-04, ++ 5.34370651012117960608e-04, ++ 6.28741533626295430459e-04, ++ 7.22682793954151111819e-04, ++ 8.16141094289066942359e-04, ++ 9.09063412638226858026e-04, ++ 1.00139707277458692852e-03, ++ 1.09308977406887886975e-03, ++ 1.18408962108478813154e-03, ++ 1.27434515292056300961e-03, ++ 1.36380537228036891051e-03, ++ 1.45241977425964634632e-03, ++ 1.54013837482673316033e-03, ++ 1.62691173898619058195e-03, ++ 1.71269100860800766242e-03, ++ 1.79742792990551444876e-03, ++ 1.88107488054797562099e-03, ++ 1.96358489639263892462e-03, ++ 2.04491169781978020942e-03, ++ 2.12500971565807118477e-03, ++ 2.20383411668426208024e-03, ++ 2.28134082868343369618e-03, ++ 2.35748656505591286728e-03, ++ 2.43222884895690980023e-03, ++ 2.50552603695564177905e-03, ++ 2.57733734220062273013e-03, ++ 2.64762285707839271562e-03, ++ 2.71634357535300218975e-03, ++ 2.78346141377399823244e-03, ++ 2.84893923314137337971e-03, ++ 2.91274085881481313576e-03, ++ 2.97483110065697737429e-03, ++ 3.03517577239990551941e-03, ++ 3.09374171042274635074e-03, ++ 3.15049679193164094970e-03, ++ 3.20540995253164491541e-03, ++ 3.25845120318029885659e-03, ++ 3.30959164651485658951e-03, ++ 3.35880349254337635945e-03, ++ 3.40606007369155918199e-03, ++ 3.45133585919722533919e-03, ++ 3.49460646884427843240e-03, ++ 3.53584868602997270254e-03, ++ 3.57504047015665300802e-03, ++ 3.61216096834317094977e-03, ++ 3.64719052644881403663e-03, ++ 3.68011069940423060295e-03, ++ 3.71090426084389433947e-03, ++ 3.73955521203543422501e-03, ++ 3.76604879010044787946e-03, ++ 3.79037147552388660465e-03, ++ 3.81251099894702218107e-03, ++ 3.83245634724140764663e-03, ++ 3.85019776886061934965e-03, ++ 3.86572677846735036217e-03, ++ 3.87903616083361702654e-03, ++ 3.89011997401263057497e-03, ++ 3.89897355178084716390e-03, ++ 3.90559350534943564709e-03, ++ 3.90997772434472940645e-03, ++ 3.91212537705771124658e-03, ++ 3.91203690996272997887e-03, ++ 3.90971404650655458141e-03, ++ 3.90515978516874822171e-03, ++ 3.89837839679519444422e-03, ++ 3.88937542120674139765e-03, ++ 3.87815766308545256322e-03, ++ 3.86473318714143513133e-03, ++ 3.84911131256343097898e-03, ++ 3.83130260675695194506e-03, ++ 3.81131887837403860592e-03, ++ 3.78917316963920574116e-03, ++ 3.76487974797630508064e-03, ++ 3.73845409694197614373e-03, ++ 3.70991290647096740377e-03, ++ 3.67927406243961268098e-03, ++ 3.64655663555414144908e-03, ++ 3.61178086957013007655e-03, ++ 3.57496816885076278136e-03, ++ 3.53614108527169294233e-03, ++ 3.49532330447974940585e-03, ++ 3.45253963151448796734e-03, ++ 3.40781597580096327210e-03, ++ 3.36117933552288828195e-03, ++ 3.31265778138546554757e-03, ++ 3.26228043977774525078e-03, ++ 3.21007747534444651261e-03, ++ 3.15608007297777824404e-03, ++ 3.10032041923983094425e-03, ++ 3.04283168322677004605e-03, ++ 2.98364799688597944274e-03, ++ 2.92280443479772233245e-03, ++ 2.86033699343400974954e-03, ++ 2.79628256990564587336e-03, ++ 2.73067894021140553096e-03, ++ 2.66356473700054630430e-03, ++ 2.59497942686348799513e-03, ++ 2.52496328716229770719e-03, ++ 2.45355738241618799925e-03, ++ 2.38080354025428783324e-03, ++ 2.30674432695083695896e-03, ++ 2.23142302255665983882e-03, ++ 2.15488359564151290768e-03, ++ 2.07717067766201215345e-03, ++ 1.99832953697007134966e-03, ++ 1.91840605247694541945e-03, ++ 1.83744668698823622119e-03, ++ 1.75549846022528331473e-03, ++ 1.67260892154870227308e-03, ++ 1.58882612239931203697e-03, ++ 1.50419858847373826526e-03, ++ 1.41877529164945908116e-03, ++ 1.33260562167547579916e-03, ++ 1.24573935764636829771e-03, ++ 1.15822663927488351057e-03, ++ 1.07011793797963318704e-03, ++ 9.81464027805968499546e-04, ++ 8.92315956194724064533e-04, ++ 8.02725014617197869804e-04, ++ 7.12742709092594579033e-04, ++ 6.22420730605006554577e-04, ++ 5.31810925436872606979e-04, ++ 4.40965265435949780974e-04, ++ 3.49935818232817224746e-04, ++ 2.58774717425973744146e-04, ++ 1.67534132751585059917e-04, ++ 7.62662402549235993827e-05, ++-1.49768075193361299620e-05, ++-1.06142911301720894524e-04, ++-1.97180054818197052647e-04, ++-2.88036334442900109586e-04, ++-3.78659988762671830508e-04, ++-4.68999428038859239934e-04, ++-5.59003263548750505343e-04, ++-6.48620336790735633678e-04, ++-7.37799748534993023869e-04, ++-8.26490887705368343190e-04, ++-9.14643460074474100654e-04, ++-1.00220751675647416767e-03, ++-1.08913348248064457101e-03, ++-1.17537218363183721542e-03, ++-1.26087487603843595614e-03, ++-1.34559327249569936173e-03, ++-1.42947957000680455318e-03, ++-1.51248647672699333688e-03, ++-1.59456723859538701364e-03, ++-1.67567566564024317960e-03, ++-1.75576615794077609337e-03, ++-1.83479373123439024051e-03, ++-1.91271404215155051663e-03, ++-1.98948341306622901448e-03, ++-2.06505885654718109729e-03, ++-2.13939809939708890443e-03, ++-2.21245960626475536570e-03, ++-2.28420260281900038002e-03, ++-2.35458709846996828985e-03, ++-2.42357390862588594968e-03, ++-2.49112467647214820554e-03, ++-2.55720189426249895279e-03, ++-2.62176892410749236631e-03, ++-2.68479001825172808662e-03, ++-2.74623033882684950205e-03, ++-2.80605597707006462066e-03, ++-2.86423397199746590513e-03, ++-2.92073232852189295164e-03, ++-2.97552003500548174764e-03, ++-3.02856708023718085299e-03, ++-3.07984446982606822549e-03, ++-3.12932424200147371596e-03, ++-3.17697948281127698356e-03, ++-3.22278434071057110627e-03, ++-3.26671404053182311278e-03, ++-3.30874489683027862494e-03, ++-3.34885432659656149396e-03, ++-3.38702086132979581640e-03, ++-3.42322415846545938939e-03, ++-3.45744501215092866347e-03, ++-3.48966536336403100604e-03, ++-3.51986830936835840347e-03, ++-3.54803811250142776476e-03, ++-3.57416020829039995585e-03, ++-3.59822121289160232194e-03, ++-3.62020892984994159536e-03, ++-3.64011235617500532313e-03, ++-3.65792168773078438943e-03, ++-3.67362832393644143589e-03, ++-3.68722487177608991560e-03, ++-3.69870514911562918089e-03, ++-3.70806418732541956396e-03, ++-3.71529823320771324796e-03, ++-3.72040475022829665933e-03, ++-3.72338241905218391911e-03, ++-3.72423113738358209715e-03, ++-3.72295201911065475747e-03, ++-3.71954739275624172296e-03, ++-3.71402079923576107501e-03, ++-3.70637698892428832029e-03, ++-3.69662191803482587105e-03, ++-3.68476274431051497790e-03, ++-3.67080782203360296914e-03, ++-3.65476669635465692756e-03, ++-3.63665009694570488807e-03, ++-3.61646993098150822468e-03, ++-3.59423927545334974051e-03, ++-3.56997236882036642416e-03, ++-3.54368460200365923210e-03, ++-3.51539250872874575737e-03, ++-3.48511375522234101432e-03, ++-3.45286712927017321387e-03, ++-3.41867252864195810338e-03, ++-3.38255094889135894329e-03, ++-3.34452447053745815023e-03, ++-3.30461624563659203332e-03, ++-3.26285048375162325951e-03, ++-3.21925243732817121037e-03, ++-3.17384838648557959795e-03, ++-3.12666562323245288482e-03, ++-3.07773243511595077232e-03, ++-3.02707808831462633209e-03, ++-2.97473281018491211153e-03, ++-2.92072777127162135427e-03, ++-2.86509506679312160940e-03, ++-2.80786769761221183597e-03, ++-2.74907955070388763247e-03, ++-2.68876537913161550372e-03, ++-2.62696078154390838186e-03, ++-2.56370218120280770127e-03, ++-2.49902680455817757105e-03, ++-2.43297265937776879124e-03, ++-2.36557851244843493979e-03, ++-2.29688386686014139187e-03, ++-2.22692893888647245465e-03, ++-2.15575463447475546355e-03, ++-2.08340252536062418495e-03, ++-2.00991482481939400667e-03, ++-1.93533436306957584878e-03, ++-1.85970456234225522789e-03, ++-1.78306941163151812420e-03, ++-1.70547344113878836074e-03, ++-1.62696169642893568967e-03, ++-1.54757971231007083503e-03, ++-1.46737348645403320284e-03, ++-1.38638945277216006635e-03, ++-1.30467445456199375615e-03, ++-1.22227571743970366350e-03, ++-1.13924082207588254177e-03, ++-1.05561767674710021286e-03, ++-9.71454489722374482305e-04, ++-8.86799741498446592036e-04, ++-8.01702156900612784851e-04, ++-7.16210677064451489704e-04, ++-6.30374431316047391209e-04, ++-5.44242708964845500752e-04, ++-4.57864931026830763918e-04, ++-3.71290621893513930751e-04, ++-2.84569380963795102567e-04, ++-1.97750854252763154373e-04, ++-1.10884705997269506742e-04, ++-2.40205902709113495357e-05, ++ 6.27918773732192452876e-05, ++ 1.49503148216553689897e-04, ++ 2.36063768629587555480e-04, ++ 3.22424408250847381943e-04, ++ 4.08535888074242200738e-04, ++ 4.94349208428819172911e-04, ++ 5.79815576835024100270e-04, ++ 6.64886435721643610786e-04, ++ 7.49513489987693693958e-04, ++ 8.33648734393532949913e-04, ++ 9.17244480766279870337e-04, ++ 1.00025338500262374157e-03, ++ 1.08262847385585773974e-03, ++ 1.16432317148991437694e-03, ++ 1.24529132578744816673e-03, ++ 1.32548723439501444157e-03, ++ 1.40486567049264701387e-03, ++ 1.48338190827135567480e-03, ++ 1.56099174810615912330e-03, ++ 1.63765154140913405528e-03, ++ 1.71331821514903869137e-03, ++ 1.78794929602366808354e-03, ++ 1.86150293427143464359e-03, ++ 1.93393792710878204520e-03, ++ 2.00521374178037978947e-03, ++ 2.07529053820916823889e-03, ++ 2.14412919123365373897e-03, ++ 2.21169131241997444365e-03, ++ 2.27793927143706215546e-03, ++ 2.34283621698181060769e-03, ++ 2.40634609724435857836e-03, ++ 2.46843367990040021484e-03, ++ 2.52906457162119062410e-03, ++ 2.58820523708867778964e-03, ++ 2.64582301750689681194e-03, ++ 2.70188614859793313494e-03, ++ 2.75636377807397716516e-03, ++ 2.80922598257490408261e-03, ++ 2.86044378406247841104e-03, ++ 2.90998916566214413729e-03, ++ 2.95783508694383865181e-03, ++ 3.00395549863343705108e-03, ++ 3.04832535674689130908e-03, ++ 3.09092063613944411163e-03, ++ 3.13171834346257340134e-03, ++ 3.17069652952171746399e-03, ++ 3.20783430102820335192e-03, ++ 3.24311183173923859094e-03, ++ 3.27651037297958976080e-03, ++ 3.30801226353996018562e-03, ++ 3.33760093894684218077e-03, ++ 3.36526094009848182609e-03, ++ 3.39097792126302451446e-03, ++ 3.41473865743472130771e-03, ++ 3.43653105104400240569e-03, ++ 3.45634413801872283564e-03, ++ 3.47416809319318680913e-03, ++ 3.48999423506242021850e-03, ++ 3.50381502987956103268e-03, ++ 3.51562409509444421737e-03, ++ 3.52541620213190926708e-03, ++ 3.53318727850884806152e-03, ++ 3.53893440928911917967e-03, ++ 3.54265583787610402466e-03, ++ 3.54435096614294726028e-03, ++ 3.54402035390087273917e-03, ++ 3.54166571770637159458e-03, ++ 3.53728992900847680203e-03, ++ 3.53089701163765857378e-03, ++ 3.52249213863829475218e-03, ++ 3.51208162844697177607e-03, ++ 3.49967294041929766896e-03, ++ 3.48527466970839335317e-03, ++ 3.46889654149831836577e-03, ++ 3.45054940459623565863e-03, ++ 3.43024522438756772347e-03, ++ 3.40799707515864217997e-03, ++ 3.38381913179134578146e-03, ++ 3.35772666083566971931e-03, ++ 3.32973601096507977951e-03, ++ 3.29986460282096893265e-03, ++ 3.26813091825231636506e-03, ++ 3.23455448895733962272e-03, ++ 3.19915588453362383092e-03, ++ 3.16195669994496055336e-03, ++ 3.12297954241108925363e-03, ++ 3.08224801772958309845e-03, ++ 3.03978671603739392451e-03, ++ 2.99562119702084100892e-03, ++ 2.94977797458266955549e-03, ++ 2.90228450097598702356e-03, ++ 2.85316915041365507313e-03, ++ 2.80246120216355544194e-03, ++ 2.75019082313949451285e-03, ++ 2.69638904999837305393e-03, ++ 2.64108777075355415781e-03, ++ 2.58431970591592842859e-03, ++ 2.52611838917400372689e-03, ++ 2.46651814762340482884e-03, ++ 2.40555408155839313758e-03, ++ 2.34326204383680314694e-03, ++ 2.27967861883065755005e-03, ++ 2.21484110097475844769e-03, ++ 2.14878747292579150296e-03, ++ 2.08155638334478173060e-03, ++ 2.01318712431581723840e-03, ++ 1.94371960841423544429e-03, ++ 1.87319434543773495790e-03, ++ 1.80165241881343461162e-03, ++ 1.72913546169589605814e-03, ++ 1.65568563276817190023e-03, ++ 1.58134559176179804313e-03, ++ 1.50615847470803379538e-03, ++ 1.43016786893666826216e-03, ++ 1.35341778783496088576e-03, ++ 1.27595264538327276757e-03, ++ 1.19781723048013573688e-03, ++ 1.11905668107298707052e-03, ++ 1.03971645810893640986e-03, ++ 9.59842319320685158357e-04, ++ 8.79480292862680045757e-04, ++ 7.98676650812700722817e-04, ++ 7.17477882554103476610e-04, ++ 6.35930668054020351715e-04, ++ 5.54081851052870642121e-04, ++ 4.71978412180657619888e-04, ++ 3.89667442014872736876e-04, ++ 3.07196114096923401319e-04, ++ 2.24611657920471623987e-04, ++ 1.41961331909191799819e-04, ++ 5.92923963973368171269e-05, ++-2.33479133692958273222e-05, ++-1.05912414198647058736e-04, ++-1.88354001866488713528e-04, ++-2.70625677966048025676e-04, ++-3.52680576676401690700e-04, ++-4.34471991434995103831e-04, ++-5.15953401499023248805e-04, ++-5.97078498380584432939e-04, ++-6.77801212140594598610e-04, ++-7.58075737526550121580e-04, ++-8.37856559939326346609e-04, ++-9.17098481214296688997e-04, ++-9.95756645202195691743e-04, ++-1.07378656313515804741e-03, ++-1.15114413876416595180e-03, ++-1.22778569325242541826e-03, ++-1.30366798981191894975e-03, ++-1.37874825806924973352e-03, ++-1.45298421814578576985e-03, ++-1.52633410443975465511e-03, ++-1.59875668909689456869e-03, ++-1.67021130515527735372e-03, ++-1.74065786935308415041e-03, ++-1.81005690458521380053e-03, ++-1.87836956199671648374e-03, ++-1.94555764270060572822e-03, ++-2.01158361910792719829e-03, ++-2.07641065585818058656e-03, ++-2.14000263033844919519e-03, ++-2.20232415277983682028e-03, ++-2.26334058592000822788e-03, ++-2.32301806422092246146e-03, ++-2.38132351263152302820e-03, ++-2.43822466488363524817e-03, ++-2.49369008131333563458e-03, ++-2.54768916619557087705e-03, ++-2.60019218458394001450e-03, ++-2.65117027864584945199e-03, ++-2.70059548348453026811e-03, ++-2.74844074243833736901e-03, ++-2.79467992185021508675e-03, ++-2.83928782529839322801e-03, ++-2.88224020728095487592e-03, ++-2.92351378634650351657e-03, ++-2.96308625766492647960e-03, ++-3.00093630502965393395e-03, ++-3.03704361228680124254e-03, ++-3.07138887418407363628e-03, ++-3.10395380663392372531e-03, ++-3.13472115638562150164e-03, ++-3.16367471010103352980e-03, ++-3.19079930282948481812e-03, ++-3.21608082587721087059e-03, ++-3.23950623406747337252e-03, ++-3.26106355238757342555e-03, ++-3.28074188201942212179e-03, ++-3.29853140575076496377e-03, ++-3.31442339276444199875e-03, ++-3.32841020280317178778e-03, ++-3.34048528970836431165e-03, ++-3.35064320433112964454e-03, ++-3.35887959681426418596e-03, ++-3.36519121824467148246e-03, ++-3.36957592167543267675e-03, ++-3.37203266251754653349e-03, ++-3.37256149830169856332e-03, ++-3.37116358781047254292e-03, ++-3.36784118958214327699e-03, ++-3.36259765978729266434e-03, ++-3.35543744947994172431e-03, ++-3.34636610122527418040e-03, ++-3.33539024510636330015e-03, ++-3.32251759411259645072e-03, ++-3.30775693891291596924e-03, ++-3.29111814201739957125e-03, ++-3.27261213133083796178e-03, ++-3.25225089310266250384e-03, ++-3.23004746427743008250e-03, ++-3.20601592425105112044e-03, ++-3.18017138603743105413e-03, ++-3.15252998685158682818e-03, ++-3.12310887811450286003e-03, ++-3.09192621488647281444e-03, ++-3.05900114473474978721e-03, ++-3.02435379604281111970e-03, ++-2.98800526576807482307e-03, ++-2.94997760665555814816e-03, ++-2.91029381391519391745e-03, ++-2.86897781137080603100e-03, ++-2.82605443708909163589e-03, ++-2.78154942849715867623e-03, ++-2.73548940699755568570e-03, ++-2.68790186208995533074e-03, ++-2.63881513500899191754e-03, ++-2.58825840188760128782e-03, ++-2.53626165645667129775e-03, ++-2.48285569229048054193e-03, ++-2.42807208460824822810e-03, ++-2.37194317164358134745e-03, ++-2.31450203559181158161e-03, ++-2.25578248314654231793e-03, ++-2.19581902563767547218e-03, ++-2.13464685878131952071e-03, ++-2.07230184205435888356e-03, ++-2.00882047770541138920e-03, ++-1.94423988941450141647e-03, ++-1.87859780061385762441e-03, ++-1.81193251248255946667e-03, ++-1.74428288162779420063e-03, ++-1.67568829746571096480e-03, ++-1.60618865931505343768e-03, ++-1.53582435321696704651e-03, ++-1.46463622849387254017e-03, ++-1.39266557406221786267e-03, ++-1.31995409451166924308e-03, ++-1.24654388596452171158e-03, ++-1.17247741173051502755e-03, ++-1.09779747777003140220e-03, ++-1.02254720797977159512e-03, ++-9.46770019316456627398e-04, ++-8.70509596771090981941e-04, ++-7.93809868209522859206e-04, ++-7.16714979093283142790e-04, ++-6.39269267095267379464e-04, ++-5.61517236624901622949e-04, ++-4.83503533277372383840e-04, ++-4.05272918221601325187e-04, ++-3.26870242541634718064e-04, ++-2.48340421546139789206e-04, ++-1.69728409060813500292e-04, ++-9.10791717177389864102e-05, ++-1.24376632583528602298e-05, ++ 6.61512011385834202077e-05, ++ 1.44642570486082041627e-04, ++ 2.22991683562456983764e-04, ++ 3.01153894413956873654e-04, ++ 3.79084697772648165047e-04, ++ 4.56739754373683643027e-04, ++ 5.34074916159440896482e-04, ++ 6.11046251354811493887e-04, ++ 6.87610069400060091790e-04, ++ 7.63722945726494719700e-04, ++ 8.39341746362165606193e-04, ++ 9.14423652352394037562e-04, ++ 9.88926183981333204245e-04, ++ 1.06280722478213824657e-03, ++ 1.13602504532090125416e-03, ++ 1.20853832674150526647e-03, ++ 1.28030618405801659317e-03, ++ 1.35128818918151915977e-03, ++ 1.42144439366839823308e-03, ++ 1.49073535117733935521e-03, ++ 1.55912213962240372468e-03, ++ 1.62656638300974010561e-03, ++ 1.69303027294565532589e-03, ++ 1.75847658980445606218e-03, ++ 1.82286872354303674040e-03, ++ 1.88617069415219075317e-03, ++ 1.94834717173209578771e-03, ++ 2.00936349618086648045e-03, ++ 2.06918569648611430298e-03, ++ 2.12778050960779879092e-03, ++ 2.18511539894190561298e-03, ++ 2.24115857235570323583e-03, ++ 2.29587899978361603334e-03, ++ 2.34924643037442331187e-03, ++ 2.40123140918023199666e-03, ++ 2.45180529337806233856e-03, ++ 2.50094026801512278949e-03, ++ 2.54860936126915377242e-03, ++ 2.59478645921546943742e-03, ++ 2.63944632009264395014e-03, ++ 2.68256458805902911827e-03, ++ 2.72411780643292029958e-03, ++ 2.76408343040847976832e-03, ++ 2.80243983924151687792e-03, ++ 2.83916634789766180597e-03, ++ 2.87424321815756868281e-03, ++ 2.90765166917223739917e-03, ++ 2.93937388746383842716e-03, ++ 2.96939303636573146555e-03, ++ 2.99769326489773184699e-03, ++ 3.02425971607121193627e-03, ++ 3.04907853462010837095e-03, ++ 3.07213687415372471712e-03, ++ 3.09342290372770093235e-03, ++ 3.11292581382988705480e-03, ++ 3.13063582177805889775e-03, ++ 3.14654417652693004295e-03, ++ 3.16064316288211652126e-03, ++ 3.17292610511905577922e-03, ++ 3.18338737000537549265e-03, ++ 3.19202236922536521438e-03, ++ 3.19882756120557767629e-03, ++ 3.20380045234103065510e-03, ++ 3.20693959762191095619e-03, ++ 3.20824460066048821466e-03, ++ 3.20771611311912148781e-03, ++ 3.20535583353980316201e-03, ++ 3.20116650557659455922e-03, ++ 3.19515191563226816363e-03, ++ 3.18731688990105815895e-03, ++ 3.17766729081954413250e-03, ++ 3.16621001292834072099e-03, ++ 3.15295297814715538495e-03, ++ 3.13790513046660092533e-03, ++ 3.12107643006004570677e-03, ++ 3.10247784681945935892e-03, ++ 3.08212135331927200924e-03, ++ 3.06001991721279766046e-03, ++ 3.03618749306580832173e-03, ++ 3.01063901363274712478e-03, ++ 2.98339038058057295921e-03, ++ 2.95445845466603060347e-03, ++ 2.92386104537267895939e-03, ++ 2.89161690001368777356e-03, ++ 2.85774569230700953987e-03, ++ 2.82226801043036334277e-03, ++ 2.78520534456247253682e-03, ++ 2.74658007391870816194e-03, ++ 2.70641545328861908917e-03, ++ 2.66473559908350773537e-03, ++ 2.62156547490237238143e-03, ++ 2.57693087662487496647e-03, ++ 2.53085841704014631939e-03, ++ 2.48337551002058860156e-03, ++ 2.43451035425012096355e-03, ++ 2.38429191651639985419e-03, ++ 2.33274991457697866704e-03, ++ 2.27991479960949847833e-03, ++ 2.22581773825620892956e-03, ++ 2.17049059427346612006e-03, ++ 2.11396590979692159534e-03, ++ 2.05627688623344091062e-03, ++ 1.99745736479101619609e-03, ++ 1.93754180665763118922e-03, ++ 1.87656527284175219002e-03, ++ 1.81456340368482097088e-03, ++ 1.75157239805861998823e-03, ++ 1.68762899225976484990e-03, ++ 1.62277043861255095177e-03, ++ 1.55703448379367948885e-03, ++ 1.49045934689147926804e-03, ++ 1.42308369721128166394e-03, ++ 1.35494663184088722126e-03, ++ 1.28608765298868091623e-03, ++ 1.21654664510756371255e-03, ++ 1.14636385181799576628e-03, ++ 1.07557985264340023011e-03, ++ 1.00423553957145047719e-03, ++ 9.32372093454700246948e-04, ++ 8.60030960264205842671e-04, ++ 7.87253827209889473632e-04, ++ 7.14082598740849215993e-04, ++ 6.40559372440761354631e-04, ++ 5.66726414830463851718e-04, ++ 4.92626137092837322433e-04, ++ 4.18301070733919581456e-04, ++ 3.43793843193061820010e-04, ++ 2.69147153417339558834e-04, ++ 1.94403747414189487621e-04, ++ 1.19606393795037383994e-04, ++ 4.47978593251173554416e-05, ++-2.99791155070713611101e-05, ++-1.04681840886644762128e-04, ++-1.79267702021634553217e-04, ++-2.53694183430834704039e-04, ++-3.27918893156363931707e-04, ++-4.01899586887169662890e-04, ++-4.75594191979749616409e-04, ++-5.48960831362461866741e-04, ++-6.21957847309750270874e-04, ++-6.94543825073334680428e-04, ++-7.66677616355743358524e-04, ++-8.38318362614142603174e-04, ++-9.09425518181231052305e-04, ++-9.79958873188954042791e-04, ++-1.04987857628321295568e-03, ++-1.11914515711671069299e-03, ++-1.18771954860611567151e-03, ++-1.25556310894265384798e-03, ++-1.32263764334250685968e-03, ++-1.38890542552527339500e-03, ++-1.45432921890835268122e-03, ++-1.51887229750536853490e-03, ++-1.58249846651689705240e-03, ++-1.64517208260199325476e-03, ++-1.70685807381915056156e-03, ++-1.76752195922558370811e-03, ++-1.82712986812380161379e-03, ++-1.88564855894518047276e-03, ++-1.94304543775902804383e-03, ++-1.99928857639786617534e-03, ++-2.05434673018880555040e-03, ++-2.10818935528026517312e-03, ++-2.16078662555535365442e-03, ++-2.21210944912246043961e-03, ++-2.26212948437317816139e-03, ++-2.31081915559989232653e-03, ++-2.35815166816356804741e-03, ++-2.40410102320373414084e-03, ++-2.44864203188258338501e-03, ++-2.49175032915539568928e-03, ++-2.53340238705979841141e-03, ++-2.57357552751657147824e-03, ++-2.61224793463516640271e-03, ++-2.64939866651717941329e-03, ++-2.68500766655144999101e-03, ++-2.71905577419492448452e-03, ++-2.75152473523297344538e-03, ++-2.78239721151426859513e-03, ++-2.81165679015500094215e-03, ++-2.83928799220713222809e-03, ++-2.86527628078656016949e-03, ++-2.88960806865697647852e-03, ++-2.91227072526506090486e-03, ++-2.93325258322398594105e-03, ++-2.95254294424161442545e-03, ++-2.97013208449042583406e-03, ++-2.98601125941669364242e-03, ++-3.00017270798633986159e-03, ++-3.01260965636595103370e-03, ++-3.02331632103655656429e-03, ++-3.03228791133956007003e-03, ++-3.03952063145331409857e-03, ++-3.04501168179985596748e-03, ++-3.04875925988140573583e-03, ++-3.05076256054652829655e-03, ++-3.05102177568631911103e-03, ++-3.04953809336118561099e-03, ++-3.04631369635912632385e-03, ++-3.04135176018685343333e-03, ++-3.03465645049527405624e-03, ++-3.02623291994119940004e-03, ++-3.01608730448767094895e-03, ++-3.00422671914520132003e-03, ++-2.99065925315701369377e-03, ++-2.97539396463139928575e-03, ++-2.95844087462449664011e-03, ++-2.93981096067755893683e-03, ++-2.91951614981275815730e-03, ++-2.89756931099181044148e-03, ++-2.87398424704220179990e-03, ++-2.84877568605616283970e-03, ++-2.82195927226750430117e-03, ++-2.79355155641210087594e-03, ++-2.76356998557781771697e-03, ++-2.73203289255012551212e-03, ++-2.69895948465983821080e-03, ++-2.66436983213977395327e-03, ++-2.62828485599736526648e-03, ++-2.59072631541029923391e-03, ++-2.55171679465334083972e-03, ++-2.51127968956342670012e-03, ++-2.46943919355152629105e-03, ++-2.42622028316987056393e-03, ++-2.38164870324227831086e-03, ++-2.33575095156724138815e-03, ++-2.28855426320279282948e-03, ++-2.24008659434175860792e-03, ++-2.19037660578759365432e-03, ++-2.13945364604031535577e-03, ++-2.08734773400249444888e-03, ++-2.03408954131547529270e-03, ++-1.97971037433622041798e-03, ++-1.92424215576537916382e-03, ++-1.86771740593727280343e-03, ++-1.81016922378279560696e-03, ++-1.75163126747638459545e-03, ++-1.69213773477834518097e-03, ++-1.63172334308366137785e-03, ++-1.57042330918990852978e-03, ++-1.50827332879462073199e-03, ++-1.44530955573546056152e-03, ++-1.38156858098379938318e-03, ++-1.31708741140545613178e-03, ++-1.25190344829938021362e-03, ++-1.18605446572830376673e-03, ++-1.11957858865226037894e-03, ++-1.05251427087881964557e-03, ++-9.84900272842268017723e-04, ++-9.16775639224670039346e-04, ++-8.48179676431708726506e-04, ++-7.79151929936275832941e-04, ++-7.09732161502877071865e-04, ++-6.39960326305943926796e-04, ++-5.69876549955214807899e-04, ++-4.99521105441456947371e-04, ++-4.28934390015275781964e-04, ++-3.58156902013427212109e-04, ++-2.87229217644762195236e-04, ++-2.16191967749079295199e-04, ++-1.45085814543370996213e-04, ++-7.39514283676623567637e-05, ++-2.82946444373383170840e-06, ++ 6.82394603388270838424e-05, ++ 1.39214790597688687322e-04, ++ 2.10056055579472498182e-04, ++ 2.80722892215425577894e-04, ++ 3.51175068097857930472e-04, ++ 4.21372504364276407804e-04, ++ 4.91275298476219653143e-04, ++ 5.60843746879846811494e-04, ++ 6.30038367535434352430e-04, ++ 6.98819922302998017792e-04, ++ 7.67149439171379990757e-04, ++ 8.34988234318114982448e-04, ++ 9.02297933988172430955e-04, ++ 9.69040496177550657667e-04, ++ 1.03517823211224553603e-03, ++ 1.10067382750771766003e-03, ++ 1.16549036359852469825e-03, ++ 1.22959133792568584519e-03, ++ 1.29294068487057216450e-03, ++ 1.35550279592269035112e-03, ++ 1.41724253967147762606e-03, ++ 1.47812528150976737508e-03, ++ 1.53811690303841180558e-03, ++ 1.59718382116064388891e-03, ++ 1.65529300685696286952e-03, ++ 1.71241200362764220237e-03, ++ 1.76850894559496454178e-03, ++ 1.82355257525374002750e-03, ++ 1.87751226086060006570e-03, ++ 1.93035801345242652959e-03, ++ 1.98206050348444977674e-03, ++ 2.03259107707881624474e-03, ++ 2.08192177187458684826e-03, ++ 2.13002533247049928231e-03, ++ 2.17687522545193749141e-03, ++ 2.22244565399375279199e-03, ++ 2.26671157203132793423e-03, ++ 2.30964869799124257813e-03, ++ 2.35123352807515510060e-03, ++ 2.39144334908883470295e-03, ++ 2.43025625080947474746e-03, ++ 2.46765113788514900417e-03, ++ 2.50360774125928499736e-03, ++ 2.53810662911404865891e-03, ++ 2.57112921732736803004e-03, ++ 2.60265777943738526798e-03, ++ 2.63267545610921865559e-03, ++ 2.66116626409909065240e-03, ++ 2.68811510471097300096e-03, ++ 2.71350777174133141537e-03, ++ 2.73733095890790929794e-03, ++ 2.75957226675855411477e-03, ++ 2.78022020905670675522e-03, ++ 2.79926421864012953122e-03, ++ 2.81669465275010289657e-03, ++ 2.83250279782839122292e-03, ++ 2.84668087377948006433e-03, ++ 2.85922203769641003479e-03, ++ 2.87012038704810915068e-03, ++ 2.87937096232720231986e-03, ++ 2.88696974915680091081e-03, ++ 2.89291367985583221592e-03, ++ 2.89720063446215116837e-03, ++ 2.89982944121351280883e-03, ++ 2.90079987648640116524e-03, ++ 2.90011266419314345591e-03, ++ 2.89776947463821947862e-03, ++ 2.89377292283466130279e-03, ++ 2.88812656628207459208e-03, ++ 2.88083490220782285907e-03, ++ 2.87190336427351573453e-03, ++ 2.86133831874895577796e-03, ++ 2.84914706015623872201e-03, ++ 2.83533780638680265804e-03, ++ 2.81991969329480843959e-03, ++ 2.80290276877008005807e-03, ++ 2.78429798629470500945e-03, ++ 2.76411719798695795433e-03, ++ 2.74237314713741920855e-03, ++ 2.71907946024148436046e-03, ++ 2.69425063853359278432e-03, ++ 2.66790204902807304155e-03, ++ 2.64004991507226990932e-03, ++ 2.61071130641776349285e-03, ++ 2.57990412881558845576e-03, ++ 2.54764711314187488125e-03, ++ 2.51395980406045370728e-03, ++ 2.47886254822925330629e-03, ++ 2.44237648205756618242e-03, ++ 2.40452351902155575872e-03, ++ 2.36532633654565121670e-03, ++ 2.32480836245730617881e-03, ++ 2.28299376102392148624e-03, ++ 2.23990741857956789096e-03, ++ 2.19557492874996457166e-03, ++ 2.15002257728523623811e-03, ++ 2.10327732650867141317e-03, ++ 2.05536679939101810111e-03, ++ 2.00631926325935171576e-03, ++ 1.95616361315094399245e-03, ++ 1.90492935482074665296e-03, ++ 1.85264658741337391243e-03, ++ 1.79934598580928591972e-03, ++ 1.74505878265607109780e-03, ++ 1.68981675009393424863e-03, ++ 1.63365218118834728926e-03, ++ 1.57659787107846988304e-03, ++ 1.51868709785361530318e-03, ++ 1.45995360316849881639e-03, ++ 1.40043157260870475105e-03, ++ 1.34015561581719584022e-03, ++ 1.27916074639499105850e-03, ++ 1.21748236158513117693e-03, ++ 1.15515622175421423141e-03, ++ 1.09221842968186999730e-03, ++ 1.02870540967075650360e-03, ++ 9.64653886488606908747e-04, ++ 9.00100864155625344717e-04, ++ 8.35083604587965547955e-04, ++ 7.69639606110740720837e-04, ++ 7.03806581852404870327e-04, ++ 6.37622438033560502181e-04, ++ 5.71125252161062339600e-04, ++ 5.04353251142653142593e-04, ++ 4.37344789331979761672e-04, ++ 3.70138326518233945050e-04, ++ 3.02772405872475636971e-04, ++ 2.35285631863361933882e-04, ++ 1.67716648154917370023e-04, ++ 1.00104115498995325769e-04, ++ 3.24866896350573601776e-05, ++-3.50970007900988141157e-05, ++-1.02608376270067855503e-04, ++-1.70008928441366460871e-04, ++-2.37260242028708613496e-04, ++-3.04324016719330044459e-04, ++-3.71162088955520488940e-04, ++-4.37736453631852389604e-04, ++-5.04009285684787491054e-04, ++-5.69942961563439155249e-04, ++-6.35500080568199678457e-04, ++-7.00643486045153811477e-04, ++-7.65336286425376288202e-04, ++-8.29541876096107381675e-04, ++-8.93223956092492241653e-04, ++-9.56346554598112288600e-04, ++-1.01887404724274391321e-03, ++-1.08077117718591146113e-03, ++-1.14200307497491554062e-03, ++-1.20253527816616481716e-03, ++-1.26233375069880002922e-03, ++-1.32136490200969610419e-03, ++-1.37959560587909771390e-03, ++-1.43699321899669958842e-03, ++-1.49352559923677944212e-03, ++-1.54916112363357523669e-03, ++-1.60386870604548384400e-03, ++-1.65761781449959505821e-03, ++-1.71037848820545417342e-03, ++-1.76212135422995869009e-03, ++-1.81281764382279454370e-03, ++-1.86243920838466956759e-03, ++-1.91095853506853020909e-03, ++-1.95834876200555885878e-03, ++-2.00458369314743039755e-03, ++-2.04963781271666782222e-03, ++-2.09348629925715234990e-03, ++-2.13610503927705698904e-03, ++-2.17747064047668550252e-03, ++-2.21756044455409095234e-03, ++-2.25635253958129250451e-03, ++-2.29382577194474921237e-03, ++-2.32995975784284353738e-03, ++-2.36473489433514528352e-03, ++-2.39813236993652442383e-03, ++-2.43013417475133235504e-03, ++-2.46072311014130552798e-03, ++-2.48988279792284553787e-03, ++-2.51759768908801960866e-03, ++-2.54385307204538875167e-03, ++-2.56863508037586708854e-03, ++-2.59193070009968232204e-03, ++-2.61372777645068558178e-03, ++-2.63401502015447874783e-03, ++-2.65278201320723284670e-03, ++-2.67001921415216522324e-03, ++-2.68571796285115840450e-03, ++-2.69987048474913367627e-03, ++-2.71246989462914107200e-03, ++-2.72351019985639722365e-03, ++-2.73298630310992796480e-03, ++-2.74089400460035331406e-03, ++-2.74723000377341628614e-03, ++-2.75199190049820862497e-03, ++-2.75517819574011687753e-03, ++-2.75678829171838255668e-03, ++-2.75682249154861379672e-03, ++-2.75528199837085348636e-03, ++-2.75216891396407340939e-03, ++-2.74748623684835597061e-03, ++-2.74123785987614347961e-03, ++-2.73342856731443109575e-03, ++-2.72406403141984849309e-03, ++-2.71315080850912087457e-03, ++-2.70069633452742902113e-03, ++-2.68670892011764299301e-03, ++-2.67119774519362050691e-03, ++-2.65417285302107976847e-03, ++-2.63564514380968837812e-03, ++-2.61562636782076193137e-03, ++-2.59412911799431541299e-03, ++-2.57116682210057310998e-03, ++-2.54675373442056615300e-03, ++-2.52090492696093165098e-03, ++-2.49363628020824292311e-03, ++-2.46496447342882049614e-03, ++-2.43490697451945311766e-03, ++-2.40348202941552966175e-03, ++-2.37070865106279527260e-03, ++-2.33660660795969189057e-03, ++-2.30119641227629137537e-03, ++-2.26449930755836560670e-03, ++-2.22653725602254669996e-03, ++-2.18733292545093653547e-03, ++-2.14690967569279187940e-03, ++-2.10529154478122275743e-03, ++-2.06250323467321427379e-03, ++-2.01857009662140480036e-03, ++-1.97351811618623213668e-03, ++-1.92737389789730405483e-03, ++-1.88016464957305564146e-03, ++-1.83191816630788313451e-03, ++-1.78266281413625186578e-03, ++-1.73242751338296301945e-03, ++-1.68124172171028180012e-03, ++-1.62913541687057699184e-03, ++-1.57613907917578230551e-03, ++-1.52228367369270224489e-03, ++-1.46760063217584650445e-03, ++-1.41212183474704526358e-03, ++-1.35587959133381627010e-03, ++-1.29890662287597178325e-03, ++-1.24123604231228925124e-03, ++-1.18290133535796414613e-03, ++-1.12393634108397949545e-03, ++-1.06437523230972224016e-03, ++-1.00425249582011886888e-03, ++-9.43602912418799676629e-04, ++-8.82461536828750689118e-04, ++-8.20863677452122195502e-04, ++-7.58844876000883323576e-04, ++-6.96440887009666122730e-04, ++-6.33687657243661695526e-04, ++-5.70621305011907871928e-04, ++-5.07278099399384235432e-04, ++-4.43694439428299856887e-04, ++-3.79906833162163342851e-04, ++-3.15951876763069777060e-04, ++-2.51866233515757136346e-04, ++-1.87686612828893105692e-04, ++-1.23449749226707587929e-04, ++-5.91923813425564756662e-05, ++ 5.04876907352367874530e-06, ++ 6.92370181212766702379e-05, ++ 1.33335740678748094525e-04, ++ 1.97308391280935971606e-04, ++ 2.61118524936681541647e-04, ++ 3.24729817871949365607e-04, ++ 3.88106088187632042828e-04, ++ 4.51211316420591741425e-04, ++ 5.14009665995129438193e-04, ++ 5.76465503554872784643e-04, ++ 6.38543419161980286940e-04, ++ 7.00208246353774092785e-04, ++ 7.61425082043918786609e-04, ++ 8.22159306257914143483e-04, ++ 8.82376601691744100360e-04, ++ 9.42042973081658576232e-04, ++ 1.00112476637558055551e-03, ++ 1.05958868769426566188e-03, ++ 1.11740182207199128042e-03, ++ 1.17453165196615329918e-03, ++ 1.23094607552536169578e-03, ++ 1.28661342460581668880e-03, ++ 1.34150248252584160767e-03, ++ 1.39558250154863013048e-03, ++ 1.44882322008345787619e-03, ++ 1.50119487959565409141e-03, ++ 1.55266824121634344422e-03, ++ 1.60321460204141557661e-03, ++ 1.65280581111278590707e-03, ++ 1.70141428507094454904e-03, ++ 1.74901302347134422581e-03, ++ 1.79557562375571026954e-03, ++ 1.84107629587033070663e-03, ++ 1.88548987652245613779e-03, ++ 1.92879184306802143982e-03, ++ 1.97095832702225181102e-03, ++ 2.01196612718603342132e-03, ++ 2.05179272238057222588e-03, ++ 2.09041628378424165433e-03, ++ 2.12781568686330919971e-03, ++ 2.16397052289168034464e-03, ++ 2.19886111005235902402e-03, ++ 2.23246850411500585495e-03, ++ 2.26477450868369997727e-03, ++ 2.29576168500963484834e-03, ++ 2.32541336136273067009e-03, ++ 2.35371364195842858874e-03, ++ 2.38064741543364153872e-03, ++ 2.40620036286810995776e-03, ++ 2.43035896534666076563e-03, ++ 2.45311051105864775732e-03, ++ 2.47444310193039576293e-03, ++ 2.49434565978784222526e-03, ++ 2.51280793204573761265e-03, ++ 2.52982049692079043884e-03, ++ 2.54537476816590630541e-03, ++ 2.55946299932366090960e-03, ++ 2.57207828749620934228e-03, ++ 2.58321457663059431131e-03, ++ 2.59286666031753468623e-03, ++ 2.60103018410256332446e-03, ++ 2.60770164730860518412e-03, ++ 2.61287840436931441054e-03, ++ 2.61655866567281477839e-03, ++ 2.61874149791569560408e-03, ++ 2.61942682396747910170e-03, ++ 2.61861542224603579751e-03, ++ 2.61630892560461673912e-03, ++ 2.61250981973162573271e-03, ++ 2.60722144106427262261e-03, ++ 2.60044797421789914901e-03, ++ 2.59219444893257419671e-03, ++ 2.58246673653929684211e-03, ++ 2.57127154594804412449e-03, ++ 2.55861641916043432848e-03, ++ 2.54450972630984205078e-03, ++ 2.52896066023234862910e-03, ++ 2.51197923057173110040e-03, ++ 2.49357625742245613346e-03, ++ 2.47376336451454867035e-03, ++ 2.45255297194462698260e-03, ++ 2.42995828845761051989e-03, ++ 2.40599330328385152544e-03, ++ 2.38067277753669032450e-03, ++ 2.35401223517576205571e-03, ++ 2.32602795354144506468e-03, ++ 2.29673695346632733560e-03, ++ 2.26615698896941598212e-03, ++ 2.23430653653983570320e-03, ++ 2.20120478401572821497e-03, ++ 2.16687161906578855050e-03, ++ 2.13132761727950238717e-03, ++ 2.09459402987411226829e-03, ++ 2.05669277102470907798e-03, ++ 2.01764640482596626161e-03, ++ 1.97747813189227050409e-03, ++ 1.93621177560486024995e-03, ++ 1.89387176801387676663e-03, ++ 1.85048313540364336473e-03, ++ 1.80607148352974512806e-03, ++ 1.76066298253653116292e-03, ++ 1.71428435156398707023e-03, ++ 1.66696284305293466847e-03, ++ 1.61872622675783670206e-03, ++ 1.56960277347651289311e-03, ++ 1.51962123850639114868e-03, ++ 1.46881084483655192582e-03, ++ 1.41720126608627463617e-03, ++ 1.36482260919915132126e-03, ++ 1.31170539690283571681e-03, ++ 1.25788054994554945182e-03, ++ 1.20337936911878791608e-03, ++ 1.14823351707673366670e-03, ++ 1.09247499996376496584e-03, ++ 1.03613614885946750573e-03, ++ 9.79249601052817287769e-04, ++ 9.21848281156024094984e-04, ++ 8.63965382068984373391e-04, ++ 8.05634345805350776497e-04, ++ 7.46888844191288077054e-04, ++ 6.87762759448037191978e-04, ++ 6.28290164669462083795e-04, ++ 5.68505304205851338083e-04, ++ 5.08442573965285464499e-04, ++ 4.48136501643423001973e-04, ++ 3.87621726894541677056e-04, ++ 3.26932981452717592256e-04, ++ 2.66105069217038663586e-04, ++ 2.05172846310758418649e-04, ++ 1.44171201126380563911e-04, ++ 8.31350343675788742547e-05, ++ 2.20992391004467811420e-05, ++-3.89013191759796718742e-05, ++-9.98318224274676811183e-05, ++-1.60657519939763258031e-04, ++-2.21343748119307129384e-04, ++-2.81855950229735626421e-04, ++-3.42159696050412485968e-04, ++-4.02220701448342615129e-04, ++-4.62004847850846784695e-04, ++-5.21478201608437975934e-04, ++-5.80607033236791485534e-04, ++-6.39357836527398360783e-04, ++-6.97697347514598421869e-04, ++-7.55592563290745562223e-04, ++-8.13010760656402635231e-04, ++-8.69919514596503569252e-04, ++-9.26286716571595044288e-04, ++-9.82080592613842522434e-04, ++-1.03726972121798914454e-03, ++-1.09182305101626067265e-03, ++-1.14570991822856215955e-03, ++-1.19890006387727231750e-03, ++-1.25136365075697989814e-03, ++-1.30307128015050440427e-03, ++-1.35399400828092701665e-03, ++-1.40410336249047434758e-03, ++-1.45337135713807666729e-03, ++-1.50177050920588701921e-03, ++-1.54927385360641156620e-03, ++-1.59585495818171090726e-03, ++-1.64148793838632899543e-03, ++-1.68614747164579970896e-03, ++-1.72980881138278994556e-03, ++-1.77244780070314389073e-03, ++-1.81404088573422256521e-03, ++-1.85456512860821833531e-03, ++-1.89399822008349183119e-03, ++-1.93231849179640994586e-03, ++-1.96950492813784778720e-03, ++-2.00553717774697637041e-03, ++-2.04039556461697076800e-03, ++-2.07406109880563802386e-03, ++-2.10651548674606337030e-03, ++-2.13774114115079620635e-03, ++-2.16772119050517375963e-03, ++-2.19643948814392904120e-03, ++-2.22388062090664783907e-03, ++-2.25002991736723010133e-03, ++-2.27487345563314293309e-03, ++-2.29839807071028278881e-03, ++-2.32059136142953635965e-03, ++-2.34144169693150825881e-03, ++-2.36093822270602455432e-03, ++-2.37907086618326232483e-03, ++-2.39583034187382639194e-03, ++-2.41120815605485715877e-03, ++-2.42519661100030125764e-03, ++-2.43778880875283833138e-03, ++-2.44897865443608397581e-03, ++-2.45876085910516064756e-03, ++-2.46713094213460307561e-03, ++-2.47408523314259810866e-03, ++-2.47962087345062007909e-03, ++-2.48373581707827476711e-03, ++-2.48642883127294603979e-03, ++-2.48769949657436095780e-03, ++-2.48754820641444327964e-03, ++-2.48597616625299746435e-03, ++-2.48298539225010744813e-03, ++-2.47857870947639034181e-03, ++-2.47275974966242300529e-03, ++-2.46553294848908619713e-03, ++-2.45690354242066423887e-03, ++-2.44687756508286339413e-03, ++-2.43546184318826561266e-03, ++-2.42266399201183056655e-03, ++-2.40849241041931304286e-03, ++-2.39295627545196452554e-03, ++-2.37606553647086871789e-03, ++-2.35783090886447369364e-03, ++-2.33826386732362018900e-03, ++-2.31737663868781000251e-03, ++-2.29518219436743642001e-03, ++-2.27169424234655459999e-03, ++-2.24692721877107516593e-03, ++-2.22089627912754614472e-03, ++-2.19361728901783497453e-03, ++-2.16510681453538442881e-03, ++-2.13538211224875490099e-03, ++-2.10446111879856838367e-03, ++-2.07236244011410305002e-03, ++-2.03910534025573964012e-03, ++-2.00470972989070942219e-03, ++-1.96919615440774254875e-03, ++-1.93258578167894933507e-03, ++-1.89490038947546677803e-03, ++-1.85616235254462648083e-03, ++-1.81639462935595909568e-03, ++-1.77562074852458812169e-03, ++-1.73386479491910482434e-03, ++-1.69115139546278155785e-03, ++-1.64750570463616328315e-03, ++-1.60295338968996568633e-03, ++-1.55752061557586866242e-03, ++-1.51123402960583901912e-03, ++-1.46412074584717846748e-03, ++-1.41620832926347625658e-03, ++-1.36752477961040201301e-03, ++-1.31809851509572971071e-03, ++-1.26795835581320162112e-03, ++-1.21713350695978428199e-03, ++-1.16565354184613783825e-03, ++-1.11354838471016369394e-03, ++-1.06084829334356697123e-03, ++-1.00758384154156217620e-03, ++-9.53785901385918667879e-04, ++-8.99485625371226915105e-04, ++-8.44714428385682711276e-04, ++-7.89503969555520172287e-04, ++-7.33886133964478507875e-04, ++-6.77893014258843288299e-04, ++-6.21556892147806690219e-04, ++-5.64910219810742480866e-04, ++-5.07985601222065157219e-04, ++-4.50815773403514705956e-04, ++-3.93433587615536740044e-04, ++-3.35871990498167328609e-04, ++-2.78164005172315390892e-04, ++-2.20342712312250957329e-04, ++-1.62441231200158043299e-04, ++-1.04492700773580143945e-04, ++-4.65302606765986506319e-05, ++ 1.14129676744331286925e-05, ++ 6.93038999997214335376e-05, ++ 1.27109508029058849467e-04, ++ 1.84796838327256962358e-04, ++ 2.42333031062709627164e-04, ++ 2.99685338706966609285e-04, ++ 3.56821144656121883639e-04, ++ 4.13707981761937345928e-04, ++ 4.70313550763611239701e-04, ++ 5.26605738608316954405e-04, ++ 5.82552636651546872429e-04, ++ 6.38122558725952955180e-04, ++ 6.93284059068853498672e-04, ++ 7.48005950098214232938e-04, ++ 8.02257320027068118913e-04, ++ 8.56007550306428347843e-04, ++ 9.09226332886875140971e-04, ++ 9.61883687289077828758e-04, ++ 1.01394997747366656139e-03, ++ 1.06539592850096254475e-03, ++ 1.11619264297115245756e-03, ++ 1.16631161723606104411e-03, ++ 1.21572475737255643845e-03, ++ 1.26440439490956338907e-03, ++ 1.31232330229981257463e-03, ++ 1.35945470812689692131e-03, ++ 1.40577231203991388428e-03, ++ 1.45125029940738111550e-03, ++ 1.49586335568145547929e-03, ++ 1.53958668046561540123e-03, ++ 1.58239600127717565045e-03, ++ 1.62426758699731900969e-03, ++ 1.66517826100116947581e-03, ++ 1.70510541396065628053e-03, ++ 1.74402701631310862347e-03, ++ 1.78192163038870358960e-03, ++ 1.81876842219015340089e-03, ++ 1.85454717281811399567e-03, ++ 1.88923828953608337507e-03, ++ 1.92282281646894998711e-03, ++ 1.95528244492883035086e-03, ++ 1.98659952336315047752e-03, ++ 2.01675706691958021854e-03, ++ 2.04573876662207838895e-03, ++ 2.07352899815367369349e-03, ++ 2.10011283024123633634e-03, ++ 2.12547603263724084119e-03, ++ 2.14960508369503545609e-03, ++ 2.17248717753304627920e-03, ++ 2.19411023078435168249e-03, ++ 2.21446288892813546861e-03, ++ 2.23353453219959832005e-03, ++ 2.25131528107543575634e-03, ++ 2.26779600133197476938e-03, ++ 2.28296830867344077709e-03, ++ 2.29682457292811666866e-03, ++ 2.30935792181020602132e-03, ++ 2.32056224424581451771e-03, ++ 2.33043219326110580616e-03, ++ 2.33896318843187242878e-03, ++ 2.34615141789296230077e-03, ++ 2.35199383990705723768e-03, ++ 2.35648818399214129982e-03, ++ 2.35963295160742693446e-03, ++ 2.36142741639763483266e-03, ++ 2.36187162399587079545e-03, ++ 2.36096639138556364801e-03, ++ 2.35871330582219018365e-03, ++ 2.35511472331569049476e-03, ++ 2.35017376667488861117e-03, ++ 2.34389432311526155553e-03, ++ 2.33628104143192337830e-03, ++ 2.32733932873959879425e-03, ++ 2.31707534678196646130e-03, ++ 2.30549600781271638028e-03, ++ 2.29260897005103539067e-03, ++ 2.27842263271448887407e-03, ++ 2.26294613063242897391e-03, ++ 2.24618932844335367563e-03, ++ 2.22816281437991214193e-03, ++ 2.20887789364531414785e-03, ++ 2.18834658138542404587e-03, ++ 2.16658159526062063169e-03, ++ 2.14359634762239202599e-03, ++ 2.11940493729897636022e-03, ++ 2.09402214099534654534e-03, ++ 2.06746340431283176509e-03, ++ 2.03974483239339685059e-03, ++ 2.01088318019464239519e-03, ++ 1.98089584240138030097e-03, ++ 1.94980084297942022308e-03, ++ 1.91761682437821957652e-03, ++ 1.88436303638870564399e-03, ++ 1.85005932466290553585e-03, ++ 1.81472611890221816218e-03, ++ 1.77838442072136338791e-03, ++ 1.74105579119516714129e-03, ++ 1.70276233809558063745e-03, ++ 1.66352670282644788877e-03, ++ 1.62337204706380910935e-03, ++ 1.58232203910926546089e-03, ++ 1.54040083996521471633e-03, ++ 1.49763308913912528489e-03, ++ 1.45404389018587740061e-03, ++ 1.40965879599663345551e-03, ++ 1.36450379384215388784e-03, ++ 1.31860529018035092276e-03, ++ 1.27199009523587059159e-03, ++ 1.22468540736182600857e-03, ++ 1.17671879719162628813e-03, ++ 1.12811819159096510083e-03, ++ 1.07891185741895972300e-03, ++ 1.02912838510792908377e-03, ++ 9.78796672071337260299e-04, ++ 9.27945905949520053434e-04, ++ 8.76605547702895976370e-04, ++ 8.24805314562447990448e-04, ++ 7.72575162847333337356e-04, ++ 7.19945270659597320352e-04, ++ 6.66946020465617123510e-04, ++ 6.13607981575178514436e-04, ++ 5.59961892527424567705e-04, ++ 5.06038643393795593145e-04, ++ 4.51869258009022058478e-04, ++ 3.97484876139576502260e-04, ++ 3.42916735599798760004e-04, ++ 2.88196154326876910479e-04, ++ 2.33354512423656609626e-04, ++ 1.78423234180534077487e-04, ++ 1.23433770086348173567e-04, ++ 6.84175788386079240409e-05, ++ 1.34061093633470900020e-05, ++-4.15692171451308774711e-05, ++-9.64770251543709412689e-05, ++-1.51286002683524126340e-04, ++-2.05964919142553784092e-04, ++-2.60482643110675150724e-04, ++-3.14808160044301459275e-04, ++-3.68910589903529524333e-04, ++-4.22759204688063789518e-04, ++-4.76323445872630008881e-04, ++-5.29572941731087281150e-04, ++-5.82477524540275987987e-04, ++-6.35007247653846472989e-04, ++-6.87132402435543243602e-04, ++-7.38823535043645019879e-04, ++-7.90051463056118570549e-04, ++-8.40787291927532235911e-04, ++-8.91002431268342548823e-04, ++-9.40668610937454570224e-04, ++-9.89757896938941268347e-04, ++-1.03824270711407040668e-03, ++-1.08609582661974403764e-03, ++-1.13329042318477575535e-03, ++-1.17980006213536797732e-03, ++-1.22559872118147396639e-03, ++-1.27066080495571239080e-03, ++-1.31496115929677771621e-03, ++-1.35847508526934588474e-03, ++-1.40117835291272236839e-03, ++-1.44304721471052890651e-03, ++-1.48405841877397026707e-03, ++-1.52418922173162092390e-03, ++-1.56341740131789178406e-03, ++-1.60172126865418262831e-03, ++-1.63907968021530041879e-03, ++-1.67547204947450902382e-03, ++-1.71087835822147623158e-03, ++-1.74527916754618566374e-03, ++-1.77865562848291466208e-03, ++-1.81098949230900328755e-03, ++-1.84226312049221930059e-03, ++-1.87245949428157002978e-03, ++-1.90156222393633397329e-03, ++-1.92955555758831764739e-03, ++-1.95642438973256090409e-03, ++-1.98215426934193923725e-03, ++-2.00673140760134708499e-03, ++-2.03014268525729749126e-03, ++-2.05237565957906665723e-03, ++-2.07341857092785582239e-03, ++-2.09326034893013391766e-03, ++-2.11189061825244484699e-03, ++-2.12929970397441031132e-03, ++-2.14547863655709580497e-03, ++-2.16041915640460824299e-03, ++-2.17411371801621297953e-03, ++-2.18655549372708977660e-03, ++-2.19773837703605891963e-03, ++-2.20765698551850719430e-03, ++-2.21630666332326515741e-03, ++-2.22368348325234152507e-03, ++-2.22978424842263864281e-03, ++-2.23460649350903971591e-03, ++-2.23814848556852345751e-03, ++-2.24040922444509972219e-03, ++-2.24138844275575217432e-03, ++-2.24108660545765600580e-03, ++-2.23950490899731862252e-03, ++-2.23664528004239790415e-03, ++-2.23251037379732560767e-03, ++-2.22710357190395455765e-03, ++-2.22042897992885809519e-03, ++-2.21249142443891893065e-03, ++-2.20329644966735498784e-03, ++-2.19285031377223701976e-03, ++-2.18115998469021890940e-03, ++-2.16823313558786156391e-03, ++-2.15407813991372407841e-03, ++-2.13870406605424102225e-03, ++-2.12212067159678200237e-03, ++-2.10433839720351734126e-03, ++-2.08536836009985638782e-03, ++-2.06522234718151120880e-03, ++-2.04391280774443356502e-03, ++-2.02145284584207300324e-03, ++-1.99785621227463244462e-03, ++-1.97313729621508525403e-03, ++-1.94731111647731430260e-03, ++-1.92039331243139960170e-03, ++-1.89240013457138639766e-03, ++-1.86334843474168982726e-03, ++-1.83325565602760116347e-03, ++-1.80213982231590299880e-03, ++-1.77001952753231455231e-03, ++-1.73691392456148648374e-03, ++-1.70284271385666495340e-03, ++-1.66782613174552775577e-03, ++-1.63188493843921685576e-03, ++-1.59504040575159230717e-03, ++-1.55731430453603003801e-03, ++-1.51872889184707753063e-03, ++-1.47930689783463205529e-03, ++-1.43907151237822393368e-03, ++-1.39804637146942033893e-03, ++-1.35625554334995140730e-03, ++-1.31372351441438970504e-03, ++-1.27047517488496053938e-03, ++-1.22653580426682431471e-03, ++-1.18193105659301824634e-03, ++-1.13668694546695714549e-03, ++-1.09082982891158691320e-03, ++-1.04438639403357878127e-03, ++-9.97383641512322120098e-04, ++-9.49848869921641547967e-04, ++-9.01809659894115857315e-04, ++-8.53293858136809635351e-04, ++-8.04329561308134524146e-04, ++-7.54945099763940303053e-04, ++-7.05169021184243009770e-04, ++-6.55030074088056891990e-04, ++-6.04557191246998305335e-04, ++-5.53779473006872830811e-04, ++-5.02726170526861184003e-04, ++-4.51426668945984269337e-04, ++-3.99910470486500410799e-04, ++-3.48207177503949535848e-04, ++-2.96346475493580014358e-04, ++-2.44358116062887999707e-04, ++-1.92271899880109192792e-04, ++-1.40117659608033219131e-04, ++-8.79252428338516013985e-05, ++-3.57244950035476513677e-05, ++ 1.64547576285501491889e-05, ++ 6.85827250253236744533e-05, ++ 1.20629670358623862633e-04, ++ 1.72565926956682051847e-04, ++ 2.24361915197526828099e-04, ++ 2.75988159339660512649e-04, ++ 3.27415304279563739234e-04, ++ 3.78614132226878525450e-04, ++ 4.29555579287748767834e-04, ++ 4.80210751946913818114e-04, ++ 5.30550943439215389429e-04, ++ 5.80547650001254260735e-04, ++ 6.30172586994006268639e-04, ++ 6.79397704887282211095e-04, ++ 7.28195205096961932327e-04, ++ 7.76537555666397547385e-04, ++ 8.24397506782311470346e-04, ++ 8.71748106117578472167e-04, ++ 9.18562713991485446999e-04, ++ 9.64815018338932312708e-04, ++ 1.01047904948097389682e-03, ++ 1.05552919468725366070e-03, ++ 1.09994021252330666759e-03, ++ 1.14368724697360216180e-03, ++ 1.18674584133354179757e-03, ++ 1.22909195186185872875e-03, ++ 1.27070196118612760081e-03, ++ 1.31155269145389143971e-03, ++ 1.35162141722206191954e-03, ++ 1.39088587807745310380e-03, ++ 1.42932429098146206170e-03, ++ 1.46691536233205330891e-03, ++ 1.50363829973637033906e-03, ++ 1.53947282348746166021e-03, ++ 1.57439917773903939602e-03, ++ 1.60839814137149570566e-03, ++ 1.64145103854408192304e-03, ++ 1.67353974892666301950e-03, ++ 1.70464671760622052225e-03, ++ 1.73475496466189292762e-03, ++ 1.76384809440413852129e-03, ++ 1.79191030427224506048e-03, ++ 1.81892639338610754944e-03, ++ 1.84488177074716187820e-03, ++ 1.86976246308427976328e-03, ++ 1.89355512234033978962e-03, ++ 1.91624703279555906599e-03, ++ 1.93782611782377474016e-03, ++ 1.95828094627808731512e-03, ++ 1.97760073850255548022e-03, ++ 1.99577537196677290074e-03, ++ 2.01279538652043366379e-03, ++ 2.02865198926522683279e-03, ++ 2.04333705904144154533e-03, ++ 2.05684315052714027094e-03, ++ 2.06916349794801935486e-03, ++ 2.08029201839576892777e-03, ++ 2.09022331475368274706e-03, ++ 2.09895267822806817423e-03, ++ 2.10647609048419644576e-03, ++ 2.11279022538611149090e-03, ++ 2.11789245033947156824e-03, ++ 2.12178082723701432605e-03, ++ 2.12445411300643061461e-03, ++ 2.12591175976064054517e-03, ++ 2.12615391455073503985e-03, ++ 2.12518141872201785439e-03, ++ 2.12299580687382158026e-03, ++ 2.11959930542408034673e-03, ++ 2.11499483077969572045e-03, ++ 2.10918598711416641414e-03, ++ 2.10217706375393116602e-03, ++ 2.09397303217547263096e-03, ++ 2.08457954261486583247e-03, ++ 2.07400292029235070942e-03, ++ 2.06225016125420471461e-03, ++ 2.04932892783467367551e-03, ++ 2.03524754374076423044e-03, ++ 2.02001498876324889209e-03, ++ 2.00364089311688611111e-03, ++ 1.98613553141360494464e-03, ++ 1.96750981627234018331e-03, ++ 1.94777529156955181953e-03, ++ 1.92694412533416631859e-03, ++ 1.90502910229207360684e-03, ++ 1.88204361606385760751e-03, ++ 1.85800166102108787677e-03, ++ 1.83291782380585869562e-03, ++ 1.80680727451872601141e-03, ++ 1.77968575758040859630e-03, ++ 1.75156958227263453466e-03, ++ 1.72247561296389362258e-03, ++ 1.69242125902588661998e-03, ++ 1.66142446444668846067e-03, ++ 1.62950369714685090912e-03, ++ 1.59667793800455284220e-03, ++ 1.56296666959689989698e-03, ++ 1.52838986466322470682e-03, ++ 1.49296797429780258443e-03, ++ 1.45672191587891005325e-03, ++ 1.41967306074082186274e-03, ++ 1.38184322159656857235e-03, ++ 1.34325463971886609367e-03, ++ 1.30392997188612789518e-03, ++ 1.26389227710180132407e-03, ++ 1.22316500309457604385e-03, ++ 1.18177197260732505350e-03, ++ 1.13973736948289701074e-03, ++ 1.09708572455475997058e-03, ++ 1.05384190135080434668e-03, ++ 1.01003108161856368016e-03, ++ 9.65678750680322895046e-04, ++ 9.20810682626568323406e-04, ++ 8.75452925356471657603e-04, ++ 8.29631785473724093875e-04, ++ 7.83373813047290703040e-04, ++ 7.36705786244772238558e-04, ++ 6.89654695848395987885e-04, ++ 6.42247729661416769283e-04, ++ 5.94512256815164243616e-04, ++ 5.46475811984593212202e-04, ++ 4.98166079522630966640e-04, ++ 4.49610877521255665294e-04, ++ 4.00838141809322300816e-04, ++ 3.51875909896002484617e-04, ++ 3.02752304869100116388e-04, ++ 2.53495519257492917930e-04, ++ 2.04133798866942952959e-04, ++ 1.54695426598542049934e-04, ++ 1.05208706259043055812e-04, ++ 5.57019463723481029365e-05, ++ 6.20344400145258794332e-06, ++-4.32585314102668224909e-05, ++-9.26557541683200246944e-05, ++-1.41960058418968396079e-04, ++-1.91143354193288721741e-04, ++-2.40177643395536041327e-04, ++-2.89035035725425371294e-04, ++-3.37687764526517215750e-04, ++-3.86108202550481673879e-04, ++-4.34268877629523874194e-04, ++-4.82142488247218933394e-04, ++-5.29701918999288495597e-04, ++-5.76920255935507784832e-04, ++-6.23770801774083051734e-04, ++-6.70227090979901799633e-04, ++-7.16262904698151416615e-04, ++-7.61852285534880065317e-04, ++-8.06969552176199341267e-04, ++-8.51589313837822735331e-04, ++-8.95686484537168122258e-04, ++-9.39236297179238443025e-04, ++-9.82214317449158023227e-04, ++-1.02459645750355089928e-03, ++-1.06635898945237213818e-03, ++-1.10747855862441241769e-03, ++-1.14793219660866787669e-03, ++-1.18769733406468773300e-03, ++-1.22675181329402055441e-03, ++-1.26507390056672754976e-03, ++-1.30264229819540794213e-03, ++-1.33943615635037714499e-03, ++-1.37543508460907315874e-03, ++-1.41061916323427321250e-03, ++-1.44496895417330940836e-03, ++-1.47846551177379173514e-03, ++-1.51109039320902033797e-03, ++-1.54282566860766408127e-03, ++-1.57365393088206863802e-03, ++-1.60355830525010312551e-03, ++-1.63252245844455485396e-03, ++-1.66053060760636725206e-03, ++-1.68756752885559392630e-03, ++-1.71361856553621906898e-03, ++-1.73866963613010581773e-03, ++-1.76270724183600984401e-03, ++-1.78571847380921077363e-03, ++-1.80769102005840930254e-03, ++-1.82861317199587238881e-03, ++-1.84847383063749628497e-03, ++-1.86726251244936523530e-03, ++-1.88496935483824668706e-03, ++-1.90158512128234106521e-03, ++-1.91710120610045944671e-03, ++-1.93150963885675339658e-03, ++-1.94480308839885176336e-03, ++-1.95697486652746934985e-03, ++-1.96801893129561937881e-03, ++-1.97792988993586308158e-03, ++-1.98670300141425048082e-03, ++-1.99433417860976971991e-03, ++-2.00081999011835322613e-03, ++-2.00615766168074291520e-03, ++-2.01034507723373218405e-03, ++-2.01338077958435448037e-03, ++-2.01526397070713597648e-03, ++-2.01599451166439066346e-03, ++-2.01557292214997766863e-03, ++-2.01400037965709585719e-03, ++-2.01127871827083996512e-03, ++-2.00741042708658728663e-03, ++-2.00239864825537024207e-03, ++-1.99624717465765773305e-03, ++-1.98896044720722623214e-03, ++-1.98054355178687831532e-03, ++-1.97100221581815275573e-03, ++-1.96034280446718981242e-03, ++-1.94857231648931650270e-03, ++-1.93569837971491794798e-03, ++-1.92172924617953493238e-03, ++-1.90667378690126333891e-03, ++-1.89054148630866990580e-03, ++-1.87334243632268355843e-03, ++-1.85508733009632424509e-03, ++-1.83578745541577732087e-03, ++-1.81545468776724309642e-03, ++-1.79410148307337815980e-03, ++-1.77174087010420694757e-03, ++-1.74838644256665020488e-03, ++-1.72405235087792502863e-03, ++-1.69875329362731528234e-03, ++-1.67250450873173686292e-03, ++-1.64532176429031608451e-03, ++-1.61722134914345358134e-03, ++-1.58822006314201439985e-03, ++-1.55833520713242958296e-03, ++-1.52758457266367842983e-03, ++-1.49598643142224508110e-03, ++-1.46355952440134539153e-03, ++-1.43032305081079724740e-03, ++-1.39629665673392786875e-03, ++-1.36150042353874842389e-03, ++-1.32595485604938292078e-03, ++-1.28968087048560815441e-03, ++-1.25269978217663175389e-03, ++-1.21503329305731573931e-03, ++-1.17670347895322481742e-03, ++-1.13773277666287834717e-03, ++-1.09814397084380963379e-03, ++-1.05796018071076876506e-03, ++-1.01720484655352786697e-03, ++-9.75901716082224163044e-04, ++-9.34074830608162560291e-04, ++-8.91748511068093702332e-04, ++-8.48947343900121774093e-04, ++-8.05696166779400137388e-04, ++-7.62020054221886175734e-04, ++-7.17944303064517799773e-04, ++-6.73494417830223287419e-04, ++-6.28696095985875375196e-04, ++-5.83575213102809943477e-04, ++-5.38157807926610857671e-04, ++-4.92470067366625467893e-04, ++-4.46538311412741039091e-04, ++-4.00388977988523500975e-04, ++-3.54048607749048280420e-04, ++-3.07543828832976284295e-04, ++-2.60901341576534541618e-04, ++-2.14147903198978289919e-04, ++-1.67310312467942520764e-04, ++-1.20415394353891940199e-04, ++-7.34899846812865148926e-05, ++-2.65609147871840793706e-05, ++ 2.03450038059074316498e-05, ++ 6.72009946930133205637e-05, ++ 1.13980331857172184195e-04, ++ 1.60656354898604009258e-04, ++ 2.07202484214283008147e-04, ++ 2.53592236118117483629e-04, ++ 2.99799237895086720992e-04, ++ 3.45797242778839468078e-04, ++ 3.91560144845429106229e-04, ++ 4.37061993814294241171e-04, ++ 4.82277009748485958104e-04, ++ 5.27179597645008367682e-04, ++ 5.71744361908107438623e-04, ++ 6.15946120696525068264e-04, ++ 6.59759920136990252182e-04, ++ 7.03161048395523806745e-04, ++ 7.46125049599718473056e-04, ++ 7.88627737602340720367e-04, ++ 8.30645209580345455537e-04, ++ 8.72153859460560415377e-04, ++ 9.13130391164877785494e-04, ++ 9.53551831667496553602e-04, ++ 9.93395543856891161116e-04, ++ 1.03263923919528978652e-03, ++ 1.07126099016866677127e-03, ++ 1.10923924252022128127e-03, ++ 1.14655282726058328768e-03, ++ 1.18318097244805918271e-03, ++ 1.21910331473228323099e-03, ++ 1.25429991065521308224e-03, ++ 1.28875124770248187904e-03, ++ 1.32243825509993726680e-03, ++ 1.35534231434853292934e-03, ++ 1.38744526949258163359e-03, ++ 1.41872943711487042515e-03, ++ 1.44917761605398002535e-03, ++ 1.47877309683764539099e-03, ++ 1.50749967082781347223e-03, ++ 1.53534163907186548513e-03, ++ 1.56228382085535594075e-03, ++ 1.58831156195163563510e-03, ++ 1.61341074256387195449e-03, ++ 1.63756778495518346382e-03, ++ 1.66076966076276837624e-03, ++ 1.68300389799214892943e-03, ++ 1.70425858768773869599e-03, ++ 1.72452239027620483382e-03, ++ 1.74378454157939760671e-03, ++ 1.76203485849330421936e-03, ++ 1.77926374433060529266e-03, ++ 1.79546219382350027462e-03, ++ 1.81062179778474288683e-03, ++ 1.82473474742401477189e-03, ++ 1.83779383831785469647e-03, ++ 1.84979247403080490283e-03, ++ 1.86072466938634346195e-03, ++ 1.87058505338575297924e-03, ++ 1.87936887177368445838e-03, ++ 1.88707198924914281921e-03, ++ 1.89369089132102150393e-03, ++ 1.89922268580736391258e-03, ++ 1.90366510397775167036e-03, ++ 1.90701650133855821721e-03, ++ 1.90927585806080512588e-03, ++ 1.91044277905074734968e-03, ++ 1.91051749366339122978e-03, ++ 1.90950085505942339544e-03, ++ 1.90739433920622124437e-03, ++ 1.90420004352378135701e-03, ++ 1.89992068517663812051e-03, ++ 1.89455959901305625789e-03, ++ 1.88812073515295573110e-03, ++ 1.88060865622618881600e-03, ++ 1.87202853426315300560e-03, ++ 1.86238614723965899625e-03, ++ 1.85168787527840192179e-03, ++ 1.83994069650947789270e-03, ++ 1.82715218259254900957e-03, ++ 1.81333049390355882657e-03, ++ 1.79848437438895314942e-03, ++ 1.78262314609068240993e-03, ++ 1.76575670334532712838e-03, ++ 1.74789550666099805648e-03, ++ 1.72905057627572287561e-03, ++ 1.70923348540114126287e-03, ++ 1.68845635315613591676e-03, ++ 1.66673183719381174349e-03, ++ 1.64407312602717807851e-03, ++ 1.62049393105762528852e-03, ++ 1.59600847831119999759e-03, ++ 1.57063149988747046033e-03, ++ 1.54437822512650262292e-03, ++ 1.51726437149865382714e-03, ++ 1.48930613522309045725e-03, ++ 1.46052018162035729919e-03, ++ 1.43092363520500552576e-03, ++ 1.40053406952348629723e-03, ++ 1.36936949674445118327e-03, ++ 1.33744835700646668569e-03, ++ 1.30478950753013271321e-03, ++ 1.27141221150076761358e-03, ++ 1.23733612672830939165e-03, ++ 1.20258129409077482892e-03, ++ 1.16716812576892663492e-03, ++ 1.13111739327765117337e-03, ++ 1.09445021530241268400e-03, ++ 1.05718804534711313843e-03, ++ 1.01935265920083785798e-03, ++ 9.80966142230535508365e-04, ++ 9.42050876507689177730e-04, ++ 9.02629527775573197758e-04, ++ 8.62725032265359496712e-04, ++ 8.22360583368397595437e-04, ++ 7.81559618172762574431e-04, ++ 7.40345803871171343619e-04, ++ 6.98743024048840326648e-04, ++ 6.56775364859214197573e-04, ++ 6.14467101094864410517e-04, ++ 5.71842682162310611722e-04, ++ 5.28926717968548746641e-04, ++ 4.85743964727467576921e-04, ++ 4.42319310694356789340e-04, ++ 3.98677761836690037860e-04, ++ 3.54844427449443563551e-04, ++ 3.10844505723203393555e-04, ++ 2.66703269273363180372e-04, ++ 2.22446050638747323033e-04, ++ 1.78098227757677587350e-04, ++ 1.33685209430572742549e-04, ++ 8.92324207763590298084e-05, ++ 4.47652886917426873583e-05, ++ 3.09227321650505732558e-07, ++-4.41103764515531808835e-05, ++-8.84681774910541152872e-05, ++-1.32738886852529214266e-04, ++-1.76897286187552060842e-04, ++-2.20918242094528819363e-04, ++-2.64776720409321865164e-04, ++-3.08447800427395421845e-04, ++-3.51906689049402091746e-04, ++-3.95128734842202674043e-04, ++-4.38089442007342469865e-04, ++-4.80764484249080186352e-04, ++-5.23129718534129112967e-04, ++-5.65161198735287346670e-04, ++-6.06835189151545676724e-04, ++-6.48128177896318104570e-04, ++-6.89016890147269131690e-04, ++-7.29478301249281038503e-04, ++-7.69489649664180678720e-04, ++-8.09028449758908115366e-04, ++-8.48072504425961999630e-04, ++-8.86599917528026388626e-04, ++-9.24589106160850367731e-04, ++-9.62018812726749862618e-04, ++-9.98868116812330619769e-04, ++-1.03511644686372960081e-03, ++-1.07074359165286784289e-03, ++-1.10572971152834206160e-03, ++-1.14005534944471237715e-03, ++-1.17370144176403299122e-03, ++-1.20664932882368503703e-03, ++-1.23888076526462546922e-03, ++-1.27037793011433868158e-03, ++-1.30112343661913792969e-03, ++-1.33110034181987751598e-03, ++-1.36029215586637268476e-03, ++-1.38868285106535536630e-03, ++-1.41625687065657750174e-03, ++-1.44299913731265943770e-03, ++-1.46889506135814513696e-03, ++-1.49393054870271117275e-03, ++-1.51809200848501517356e-03, ++-1.54136636042246982434e-03, ++-1.56374104186323185060e-03, ++-1.58520401453656292236e-03, ++-1.60574377099796661295e-03, ++-1.62534934076566579299e-03, ++-1.64401029614518693484e-03, ++-1.66171675773892622320e-03, ++-1.67845939963788895466e-03, ++-1.69422945429279826236e-03, ++-1.70901871706225839433e-03, ++-1.72281955043516879847e-03, ++-1.73562488792599364622e-03, ++-1.74742823764018669758e-03, ++-1.75822368550844964838e-03, ++-1.76800589818810072879e-03, ++-1.77677012563024231892e-03, ++-1.78451220331139900031e-03, ++-1.79122855412879207482e-03, ++-1.79691618995835998736e-03, ++-1.80157271287491316247e-03, ++-1.80519631603399109167e-03, ++-1.80778578421531151664e-03, ++-1.80934049402758445960e-03, ++-1.80986041377503045595e-03, ++-1.80934610298588618299e-03, ++-1.80779871160341876896e-03, ++-1.80521997884027364349e-03, ++-1.80161223169698209157e-03, ++-1.79697838314586038136e-03, ++-1.79132192998154664808e-03, ++-1.78464695033966652855e-03, ++-1.77695810088541257706e-03, ++-1.76826061367380709712e-03, ++-1.75856029268379684440e-03, ++-1.74786351002833607871e-03, ++-1.73617720184306720613e-03, ++-1.72350886385598295499e-03, ++-1.70986654664103516175e-03, ++-1.69525885055866825345e-03, ++-1.67969492038625377826e-03, ++-1.66318443964190258721e-03, ++-1.64573762460525812104e-03, ++-1.62736521803862185451e-03, ++-1.60807848261251156753e-03, ++-1.58788919403957031612e-03, ++-1.56680963392096320175e-03, ++-1.54485258230964710331e-03, ++-1.52203130999494277119e-03, ++-1.49835957051309000103e-03, ++-1.47385159188855594317e-03, ++-1.44852206811105200211e-03, ++-1.42238615035335702781e-03, ++-1.39545943793505230687e-03, ++-1.36775796903791223985e-03, ++-1.33929821117795126197e-03, ++-1.31009705144011874209e-03, ++-1.28017178648149091390e-03, ++-1.24954011230838865631e-03, ++-1.21822011383393023938e-03, ++-1.18623025422220701106e-03, ++-1.15358936402481875548e-03, ++-1.12031663011664538339e-03, ++-1.08643158443716956497e-03, ++-1.05195409254393249660e-03, ++-1.01690434198485049264e-03, ++-9.81302830496187097550e-04, ++-9.45170354033052825121e-04, ++-9.08527994639429640512e-04, ++-8.71397108164778015985e-04, ++-8.33799311834413085960e-04, ++-7.95756471680627718197e-04, ++-7.57290689842498644137e-04, ++-7.18424291740831638675e-04, ++-6.79179813136611995432e-04, ++-6.39579987079505734443e-04, ++-5.99647730754900086352e-04, ++-5.59406132236475598166e-04, ++-5.18878437151933970262e-04, ++-4.78088035270234697639e-04, ++-4.37058447017129952060e-04, ++-3.95813309927481478661e-04, ++-3.54376365041849988782e-04, ++-3.12771443255252100824e-04, ++-2.71022451625898674193e-04, ++-2.29153359651793514821e-04, ++-1.87188185523051535668e-04, ++-1.45150982357815703074e-04, ++-1.03065824429653753224e-04, ++-6.09567933943611181980e-05, ++-1.88479645237432815287e-05, ++ 2.32366070450612883841e-05, ++ 6.52729000375716606440e-05, ++ 1.07236940739442618243e-04, ++ 1.49104816654926491124e-04, ++ 1.90852690119197040226e-04, ++ 2.32456811856789096653e-04, ++ 2.73893534477760703088e-04, ++ 3.15139325904901243872e-04, ++ 3.56170782723636393866e-04, ++ 3.96964643447348004834e-04, ++ 4.37497801690561933553e-04, ++ 4.77747319242539513363e-04, ++ 5.17690439033898983090e-04, ++ 5.57304597988927475152e-04, ++ 5.96567439756349820155e-04, ++ 6.35456827311364227072e-04, ++ 6.73950855421827322786e-04, ++ 7.12027862971859829694e-04, ++ 7.49666445135031877037e-04, ++ 7.86845465391861000233e-04, ++ 8.23544067383306889127e-04, ++ 8.59741686594572016369e-04, ++ 8.95418061862311427494e-04, ++ 9.30553246699131696683e-04, ++ 9.65127620428410772438e-04, ++ 9.99121899124090018587e-04, ++ 1.03251714634870848247e-03, ++ 1.06529478368399947198e-03, ++ 1.09743660104794104639e-03, ++ 1.12892476679308227140e-03, ++ 1.15974183757998469332e-03, ++ 1.18987076802038013908e-03, ++ 1.21929492008520171109e-03, ++ 1.24799807227183364583e-03, ++ 1.27596442852571370294e-03, ++ 1.30317862691138467227e-03, ++ 1.32962574802824510904e-03, ++ 1.35529132316640921890e-03, ++ 1.38016134219821656921e-03, ++ 1.40422226120109406612e-03, ++ 1.42746100980768492357e-03, ++ 1.44986499827917236088e-03, ++ 1.47142212429823100381e-03, ++ 1.49212077947745262729e-03, ++ 1.51194985558042080918e-03, ++ 1.53089875045162937886e-03, ++ 1.54895737365219089698e-03, ++ 1.56611615179862813038e-03, ++ 1.58236603360162059878e-03, ++ 1.59769849460209630194e-03, ++ 1.61210554160250824594e-03, ++ 1.62557971679072794415e-03, ++ 1.63811410155455141995e-03, ++ 1.64970231998493792151e-03, ++ 1.66033854206613972274e-03, ++ 1.67001748655128297305e-03, ++ 1.67873442352191011920e-03, ++ 1.68648517663034331823e-03, ++ 1.69326612502385489591e-03, ++ 1.69907420494976057514e-03, ++ 1.70390691104087862832e-03, ++ 1.70776229728072394785e-03, ++ 1.71063897764836807952e-03, ++ 1.71253612644269893883e-03, ++ 1.71345347828618104098e-03, ++ 1.71339132780851089409e-03, ++ 1.71235052901041605485e-03, ++ 1.71033249430839581935e-03, ++ 1.70733919326115121499e-03, ++ 1.70337315097866446277e-03, ++ 1.69843744621518731933e-03, ++ 1.69253570914738513120e-03, ++ 1.68567211883928003494e-03, ++ 1.67785140039562329257e-03, ++ 1.66907882180561645095e-03, ++ 1.65936019047902743109e-03, ++ 1.64870184947697967330e-03, ++ 1.63711067343976380412e-03, ++ 1.62459406421430947211e-03, ++ 1.61115994618396237217e-03, ++ 1.59681676130369741735e-03, ++ 1.58157346384365333700e-03, ++ 1.56543951484419598813e-03, ++ 1.54842487628618539174e-03, ++ 1.53054000497979212497e-03, ++ 1.51179584617556041562e-03, ++ 1.49220382690190903063e-03, ++ 1.47177584903268165312e-03, ++ 1.45052428208925355928e-03, ++ 1.42846195578139154199e-03, ++ 1.40560215229139080610e-03, ++ 1.38195859830608975584e-03, ++ 1.35754545680155853417e-03, ++ 1.33237731858531225151e-03, ++ 1.30646919360115246027e-03, ++ 1.27983650200173999789e-03, ++ 1.25249506499428768340e-03, ++ 1.22446109546453757271e-03, ++ 1.19575118838507522302e-03, ++ 1.16638231101316865689e-03, ++ 1.13637179288388632040e-03, ++ 1.10573731560490210422e-03, ++ 1.07449690245847175561e-03, ++ 1.04266890781677537894e-03, ++ 1.01027200637724160967e-03, ++ 9.77325182223491746580e-04, ++ 9.43847717718836014267e-04, ++ 9.09859182238561756129e-04, ++ 8.75379420747673811856e-04, ++ 8.40428542230697460044e-04, ++ 8.05026907980306420144e-04, ++ 7.69195119751593810696e-04, ++ 7.32954007788833667922e-04, ++ 6.96324618731728513937e-04, ++ 6.59328203408161448926e-04, ++ 6.21986204520240414974e-04, ++ 5.84320244231672147536e-04, ++ 5.46352111662109520517e-04, ++ 5.08103750297240336353e-04, ++ 4.69597245320941603965e-04, ++ 4.30854810877143471967e-04, ++ 3.91898777268710394022e-04, ++ 3.52751578100453573074e-04, ++ 3.13435737374358550089e-04, ++ 2.73973856543509894194e-04, ++ 2.34388601532805235282e-04, ++ 1.94702689733898895181e-04, ++ 1.54938876981224293557e-04, ++ 1.15119944517208389599e-04, ++ 7.52686859541390425104e-05, ++ 3.54078942394808599795e-05, ++-4.43965136725644293991e-06, ++-4.42511982989445055948e-05, ++-8.40040336590952227153e-05, ++-1.23675497166556415483e-04, ++-1.63242994059274422816e-04, ++-2.02684007949782501144e-04, ++-2.41976113625108971150e-04, ++-2.81096989783838162574e-04, ++-3.20024431703046653274e-04, ++-3.58736363828217243860e-04, ++-3.97210852278301535575e-04, ++-4.35426117259783847756e-04, ++-4.73360545382079051305e-04, ++-5.10992701867309432294e-04, ++-5.48301342648169556804e-04, ++-5.85265426346414513459e-04, ++-6.21864126125226549316e-04, ++-6.58076841409443590199e-04, ++-6.93883209466395465582e-04, ++-7.29263116841149562630e-04, ++-7.64196710639690078223e-04, ++-7.98664409653720487083e-04, ++-8.32646915320844871987e-04, ++-8.66125222514040646153e-04, ++-8.99080630154340944109e-04, ++-9.31494751640883481870e-04, ++-9.63349525092406142567e-04, ++-9.94627223394778684981e-04, ++-1.02531046404839951310e-03, ++-1.05538221881074458820e-03, ++-1.08482582312822528441e-03, ++-1.11362498535213291090e-03, ++-1.14176379573408177427e-03, ++-1.16922673519527877718e-03, ++-1.19599868386546836010e-03, ++-1.22206492938624691758e-03, ++-1.24741117497479086888e-03, ++-1.27202354724320165595e-03, ++-1.29588860376930693416e-03, ++-1.31899334041485176428e-03, ++-1.34132519838702510620e-03, ++-1.36287207103959304329e-03, ++-1.38362231040987894090e-03, ++-1.40356473348816814667e-03, ++-1.42268862821608036220e-03, ++-1.44098375921079607451e-03, ++-1.45844037321212166396e-03, ++-1.47504920424929150333e-03, ++-1.49080147852505740143e-03, ++-1.50568891901449236279e-03, ++-1.51970374977587058263e-03, ++-1.53283869997163850300e-03, ++-1.54508700759743169105e-03, ++-1.55644242291698388023e-03, ++-1.56689921160158636589e-03, ++-1.57645215757227954816e-03, ++-1.58509656554349596252e-03, ++-1.59282826326696629569e-03, ++-1.59964360347482673595e-03, ++-1.60553946552108848557e-03, ++-1.61051325672077034167e-03, ++-1.61456291338620840613e-03, ++-1.61768690156018470419e-03, ++-1.61988421744570839506e-03, ++-1.62115438753249706261e-03, ++-1.62149746842027214430e-03, ++-1.62091404633929480651e-03, ++-1.61940523636864598667e-03, ++-1.61697268135293863688e-03, ++-1.61361855051833538548e-03, ++-1.60934553778894714506e-03, ++-1.60415685980480290408e-03, ++-1.59805625364277783043e-03, ++-1.59104797424202554224e-03, ++-1.58313679153566032841e-03, ++-1.57432798729054113616e-03, ++-1.56462735165729103538e-03, ++-1.55404117943255706651e-03, ++-1.54257626603623507200e-03, ++-1.53023990320586564598e-03, ++-1.51703987441107932509e-03, ++-1.50298444999091796934e-03, ++-1.48808238201701193738e-03, ++-1.47234289888582359565e-03, ++-1.45577569964323665606e-03, ++-1.43839094804500198903e-03, ++-1.42019926635660867151e-03, ++-1.40121172889639514399e-03, ++-1.38143985532579059369e-03, ++-1.36089560369062070010e-03, ++-1.33959136321799648049e-03, ++-1.31753994687265748795e-03, ++-1.29475458367754288694e-03, ++-1.27124891080319826590e-03, ++-1.24703696543038513624e-03, ++-1.22213317639110834699e-03, ++-1.19655235559304484218e-03, ++-1.17030968923203648052e-03, ++-1.14342072879827219220e-03, ++-1.11590138188130184350e-03, ++-1.08776790277930086870e-03, ++-1.05903688291816215454e-03, ++-1.02972524108603069419e-03, ++-9.99850213489021427335e-04, ++-9.69429343633939504844e-04, ++-9.38480472043964680448e-04, ++-9.07021725813329186133e-04, ++-8.75071508006883031112e-04, ++-8.42648486911279294594e-04, ++-8.09771585143337466368e-04, ++-7.76459968622407611070e-04, ++-7.42733035413201104179e-04, ++-7.08610404445038041289e-04, ++-6.74111904114616314332e-04, ++-6.39257560778936587825e-04, ++-6.04067587144468801964e-04, ++-5.68562370559859918927e-04, ++-5.32762461218706014771e-04, ++-4.96688560279258763987e-04, ++-4.60361507907912782377e-04, ++-4.23802271253376780860e-04, ++-3.87031932358470730920e-04, ++-3.50071676016493139785e-04, ++-3.12942777579159074532e-04, ++-2.75666590723110279098e-04, ++-2.38264535182076194354e-04, ++-2.00758084451451004676e-04, ++-1.63168753473010485957e-04, ++-1.25518086305888461329e-04, ++-8.78276437918047763126e-05, ++-5.01189912206633324926e-05, ++-1.24136860045527507159e-05, ++ 2.52667346337536352944e-05, ++ 6.29007659498319457100e-05, ++ 1.00466947938114190518e-04, ++ 1.37943877556209900086e-04, ++ 1.75310220906359231921e-04, ++ 2.12544725367042178004e-04, ++ 2.49626231667856310695e-04, ++ 2.86533685900810760391e-04, ++ 3.23246151461219666419e-04, ++ 3.59742820911436455861e-04, ++ 3.96003027760712372068e-04, ++ 4.32006258154472920323e-04, ++ 4.67732162466665663501e-04, ++ 5.03160566788037619604e-04, ++ 5.38271484304469029561e-04, ++ 5.73045126558938025356e-04, ++ 6.07461914590199476491e-04, ++ 6.41502489942463185145e-04, ++ 6.75147725539870118862e-04, ++ 7.08378736419115317274e-04, ++ 7.41176890315008965633e-04, ++ 7.73523818092431607665e-04, ++ 8.05401424019106036527e-04, ++ 8.36791895873423112462e-04, ++ 8.67677714881635517297e-04, ++ 8.98041665478958536263e-04, ++ 9.27866844889067626453e-04, ++ 9.57136672516743498666e-04, ++ 9.85834899148405139485e-04, ++ 1.01394561595543404760e-03, ++ 1.04145326329548363296e-03, ++ 1.06834263930647441546e-03, ++ 1.09459890828899372543e-03, ++ 1.12020760887248218077e-03, ++ 1.14515466196026915839e-03, ++ 1.16942637844957234711e-03, ++ 1.19300946672199316770e-03, ++ 1.21589103990064808375e-03, ++ 1.23805862286953697812e-03, ++ 1.25950015905194477768e-03, ++ 1.28020401694373142133e-03, ++ 1.30015899639822005152e-03, ++ 1.31935433465907368637e-03, ++ 1.33777971213847393650e-03, ++ 1.35542525793661992536e-03, ++ 1.37228155510049436815e-03, ++ 1.38833964561861015856e-03, ++ 1.40359103514923078820e-03, ++ 1.41802769747961950574e-03, ++ 1.43164207871396926761e-03, ++ 1.44442710118785071390e-03, ++ 1.45637616710717282889e-03, ++ 1.46748316190982897207e-03, ++ 1.47774245734831524007e-03, ++ 1.48714891429181411860e-03, ++ 1.49569788524642525128e-03, ++ 1.50338521659217202661e-03, ++ 1.51020725053600747730e-03, ++ 1.51616082677973940986e-03, ++ 1.52124328390220494439e-03, ++ 1.52545246045525904888e-03, ++ 1.52878669577304190583e-03, ++ 1.53124483049437549141e-03, ++ 1.53282620679826551459e-03, ++ 1.53353066835256834737e-03, ++ 1.53335855997613302801e-03, ++ 1.53231072701479021855e-03, ++ 1.53038851443190564161e-03, ++ 1.52759376561413247157e-03, ++ 1.52392882089336643460e-03, ++ 1.51939651578598348275e-03, ++ 1.51400017895056589190e-03, ++ 1.50774362986558999739e-03, ++ 1.50063117622853013297e-03, ++ 1.49266761107828566796e-03, ++ 1.48385820964260146428e-03, ++ 1.47420872591265969889e-03, ++ 1.46372538894702294843e-03, ++ 1.45241489890715028306e-03, ++ 1.44028442282717193852e-03, ++ 1.42734159012037307990e-03, ++ 1.41359448782537428478e-03, ++ 1.39905165559475546354e-03, ++ 1.38372208042934524870e-03, ++ 1.36761519116132632817e-03, ++ 1.35074085268957954850e-03, ++ 1.33310935997071780372e-03, ++ 1.31473143176951009180e-03, ++ 1.29561820417240587851e-03, ++ 1.27578122386814139279e-03, ++ 1.25523244119940383980e-03, ++ 1.23398420298978994322e-03, ++ 1.21204924515017141255e-03, ++ 1.18944068506927815715e-03, ++ 1.16617201379247414916e-03, ++ 1.14225708799397369063e-03, ++ 1.11771012174662520873e-03, ++ 1.09254567809480241866e-03, ++ 1.06677866043477544145e-03, ++ 1.04042430370825892544e-03, ++ 1.01349816541371835939e-03, ++ 9.86016116441160682393e-04, ++ 9.57994331735642526242e-04, ++ 9.29449280794978792072e-04, ++ 9.00397718007248429838e-04, ++ 8.70856672833736898155e-04, ++ 8.40843439843083260109e-04, ++ 8.10375568602425999827e-04, ++ 7.79470853431471315254e-04, ++ 7.48147323025479091436e-04, ++ 7.16423229952991972615e-04, ++ 6.84317040034933634675e-04, ++ 6.51847421610750755311e-04, ++ 6.19033234697776140604e-04, ++ 5.85893520050684464551e-04, ++ 5.52447488126856715678e-04, ++ 5.18714507964034747881e-04, ++ 4.84714095977265707355e-04, ++ 4.50465904680799719868e-04, ++ 4.15989711342059980889e-04, ++ 3.81305406573980180604e-04, ++ 3.46432982872289069957e-04, ++ 3.11392523104614979499e-04, ++ 2.76204188957184101297e-04, ++ 2.40888209347176124927e-04, ++ 2.05464868805964193327e-04, ++ 1.69954495840752130374e-04, ++ 1.34377451281002371951e-04, ++ 9.87541166164100474301e-05, ++ 6.31048823327933465369e-05, ++ 2.74501362534655310964e-05, ++-8.18974810873998083655e-06, ++-4.37944231806596304514e-05, ++-7.93435789334627901382e-05, ++-1.14816954455838874283e-04, ++-1.50194349489415440680e-04, ++-1.85455635919215376531e-04, ++-2.20580769213464333118e-04, ++-2.55549799805626501933e-04, ++-2.90342884412502183315e-04, ++-3.24940297281641648271e-04, ++-3.59322441362583172488e-04, ++-3.93469859394135197499e-04, ++-4.27363244902898627587e-04, ++-4.60983453105939474694e-04, ++-4.94311511711763339541e-04, ++-5.27328631613451729448e-04, ++-5.60016217467949450198e-04, ++-5.92355878155555572520e-04, ++-6.24329437113732110647e-04, ++-6.55918942539445706461e-04, ++-6.87106677454311985491e-04, ++-7.17875169626881314694e-04, ++-7.48207201346719435846e-04, ++-7.78085819044304792189e-04, ++-8.07494342752076792701e-04, ++-8.36416375400828135574e-04, ++-8.64835811946538645517e-04, ++-8.92736848322267452678e-04, ++-9.20103990210890628799e-04, ++-9.46922061632605917975e-04, ++-9.73176213343664533485e-04, ++-9.98851931040956823177e-04, ++-1.02393504336819934561e-03, ++-1.04841172971923139896e-03, ++-1.07226852783420443203e-03, ++-1.09549234118443920144e-03, ++-1.11807044614193923544e-03, ++-1.13999049892964587558e-03, ++-1.16124054234865384944e-03, ++-1.18180901227872168710e-03, ++-1.20168474394853771157e-03, ++-1.22085697797251154818e-03, ++-1.23931536615045907561e-03, ++-1.25704997702758545543e-03, ++-1.27405130121131457410e-03, ++-1.29031025644257271376e-03, ++-1.30581819241839158958e-03, ++-1.32056689536371330701e-03, ++-1.33454859234959002240e-03, ++-1.34775595535592540575e-03, ++-1.36018210507637331112e-03, ++-1.37182061446355658269e-03, ++-1.38266551201276610521e-03, ++-1.39271128478253266095e-03, ++-1.40195288115051316068e-03, ++-1.41038571330337893055e-03, ++-1.41800565945951256505e-03, ++-1.42480906582346297101e-03, ++-1.43079274827126803893e-03, ++-1.43595399376592503145e-03, ++-1.44029056150241801561e-03, ++-1.44380068378189055887e-03, ++-1.44648306661469805943e-03, ++-1.44833689005223324210e-03, ++-1.44936180824753674604e-03, ++-1.44955794924493913504e-03, ++-1.44892591449903443759e-03, ++-1.44746677812355745846e-03, ++-1.44518208587075661954e-03, ++-1.44207385384213272739e-03, ++-1.43814456693148930849e-03, ++-1.43339717700140213338e-03, ++-1.42783510079440463525e-03, ++-1.42146221758030649220e-03, ++-1.41428286654118624127e-03, ++-1.40630184389584447259e-03, ++-1.39752439976549721300e-03, ++-1.38795623478277815703e-03, ++-1.37760349644625219347e-03, ++-1.36647277522266587767e-03, ++-1.35457110039932790077e-03, ++-1.34190593568940877423e-03, ++-1.32848517459267919869e-03, ++-1.31431713551467539529e-03, ++-1.29941055664714501944e-03, ++-1.28377459061317523298e-03, ++-1.26741879887994307423e-03, ++-1.25035314594268138870e-03, ++-1.23258799328333345374e-03, ++-1.21413409310764655244e-03, ++-1.19500258186405750038e-03, ++-1.17520497354900595698e-03, ++-1.15475315280194222242e-03, ++-1.13365936779458078426e-03, ++-1.11193622291853085743e-03, ++-1.08959667127568366092e-03, ++-1.06665400697560715411e-03, ++-1.04312185724514980105e-03, ++-1.01901417435390105257e-03, ++-9.94345227361283657413e-04, ++-9.69129593689562135808e-04, ++-9.43382150527953696438e-04, ++-9.17118066072678981768e-04, ++-8.90352790608596130796e-04, ++-8.63102047436990239826e-04, ++-8.35381823655337134304e-04, ++-8.07208360794198893050e-04, ++-7.78598145316998046898e-04, ++-7.49567898987517377586e-04, ++-7.20134569111909820377e-04, ++-6.90315318659743713467e-04, ++-6.60127516270525181372e-04, ++-6.29588726151278908240e-04, ++-5.98716697871097070296e-04, ++-5.67529356058555788274e-04, ++-5.36044790008002544103e-04, ++-5.04281243200707597792e-04, ++-4.72257102746954785574e-04, ++-4.39990888755171366542e-04, ++-4.07501243634276436468e-04, ++-3.74806921335187493566e-04, ++-3.41926776538259847692e-04, ++-3.08879753792126179272e-04, ++-2.75684876610755174881e-04, ++-2.42361236534725988821e-04, ++-2.08927982163283266397e-04, ++-1.75404308162909107092e-04, ++-1.41809444259267161117e-04, ++-1.08162644218829444537e-04, ++-7.44831748259327543465e-05, ++-4.07903048621291604812e-05, ++-7.10329409388432176530e-06, ++ 2.65586177250463047000e-05, ++ 6.01762218302914552804e-05, ++ 9.37303513963725428056e-05, ++ 1.27201892452491753700e-04, ++ 1.60571794759468988462e-04, ++ 1.93821082639647593359e-04, ++ 2.26930865755815396869e-04, ++ 2.59882349831586946780e-04, ++ 2.92656847307690018770e-04, ++ 3.25235787928080961190e-04, ++ 3.57600729249660839303e-04, ++ 3.89733367070243196494e-04, ++ 4.21615545768098812836e-04, ++ 4.53229268547830762767e-04, ++ 4.84556707586572316029e-04, ++ 5.15580214074757778309e-04, ++ 5.46282328146297608759e-04, ++ 5.76645788691256379679e-04, ++ 6.06653543047546025234e-04, ++ 6.36288756564360792091e-04, ++ 6.65534822032997838703e-04, ++ 6.94375368979479354152e-04, ++ 7.22794272813854533910e-04, ++ 7.50775663831016056536e-04, ++ 7.78303936058092520403e-04, ++ 8.05363755943419535807e-04, ++ 8.31940070882321368144e-04, ++ 8.58018117574883202973e-04, ++ 8.83583430211330928851e-04, ++ 9.08621848479962369513e-04, ++ 9.33119525393878300641e-04, ++ 9.57062934931689960998e-04, ++ 9.80438879488230432754e-04, ++ 1.00323449713107977488e-03, ++ 1.02543726865899926387e-03, ++ 1.04703502445835567626e-03, ++ 1.06801595115381007736e-03, ++ 1.08836859804968565969e-03, ++ 1.10808188335835252139e-03, ++ 1.12714510021262159095e-03, ++ 1.14554792245836578428e-03, ++ 1.16328041022489597940e-03, ++ 1.18033301526926739412e-03, ++ 1.19669658609257542788e-03, ++ 1.21236237282488557888e-03, ++ 1.22732203187633261143e-03, ++ 1.24156763035219172911e-03, ++ 1.25509165022920821282e-03, ++ 1.26788699229131874430e-03, ++ 1.27994697982256044888e-03, ++ 1.29126536205536050946e-03, ++ 1.30183631737235691941e-03, ++ 1.31165445626020235083e-03, ++ 1.32071482401390893208e-03, ++ 1.32901290319023448333e-03, ++ 1.33654461580914787205e-03, ++ 1.34330632530221187430e-03, ++ 1.34929483820697367936e-03, ++ 1.35450740560668671242e-03, ++ 1.35894172431470653187e-03, ++ 1.36259593780313340884e-03, ++ 1.36546863687537654505e-03, ++ 1.36755886008250635531e-03, ++ 1.36886609388332716047e-03, ++ 1.36939027254837260295e-03, ++ 1.36913177780802522952e-03, ++ 1.36809143824524986725e-03, ++ 1.36627052843346185988e-03, ++ 1.36367076782027457811e-03, ++ 1.36029431935798012128e-03, ++ 1.35614378788172988514e-03, ++ 1.35122221823664079472e-03, ++ 1.34553309315501787302e-03, ++ 1.33908033088521731709e-03, ++ 1.33186828257363392043e-03, ++ 1.32390172940159678815e-03, ++ 1.31518587947901410308e-03, ++ 1.30572636449661312261e-03, ++ 1.29552923613923372595e-03, ++ 1.28460096226200824743e-03, ++ 1.27294842283218667331e-03, ++ 1.26057890563882179363e-03, ++ 1.24750010177327374725e-03, ++ 1.23372010088306036796e-03, ++ 1.21924738620211555243e-03, ++ 1.20409082936042593007e-03, ++ 1.18825968497621972837e-03, ++ 1.17176358503399751995e-03, ++ 1.15461253305178279151e-03, ++ 1.13681689804116217886e-03, ++ 1.11838740826359175386e-03, ++ 1.09933514478704010865e-03, ++ 1.07967153484642012021e-03, ++ 1.05940834501207096011e-03, ++ 1.03855767417023879713e-03, ++ 1.01713194631976918542e-03, ++ 9.95143903189260560158e-04, ++ 9.72606596679090784803e-04, ++ 9.49533381132751461845e-04, ++ 9.25937905442090168628e-04, ++ 9.01834104991060562725e-04, ++ 8.77236193442972891042e-04, ++ 8.52158654375306323994e-04, ++ 8.26616232768399242931e-04, ++ 8.00623926351481181481e-04, ++ 7.74196976812098437357e-04, ++ 7.47350860873750573281e-04, ++ 7.20101281246932219647e-04, ++ 6.92464157459100611118e-04, ++ 6.64455616568401037821e-04, ++ 6.36091983767215129672e-04, ++ 6.07389772880511497576e-04, ++ 5.78365676764722234753e-04, ++ 5.49036557612754723412e-04, ++ 5.19419437170334677249e-04, ++ 4.89531486870367453512e-04, ++ 4.59390017889853828105e-04, ++ 4.29012471135610442413e-04, ++ 3.98416407164879030761e-04, ++ 3.67619496046182284588e-04, ++ 3.36639507166480267224e-04, ++ 3.05494298990473505794e-04, ++ 2.74201808777935912304e-04, ++ 2.42780042265004216643e-04, ++ 2.11247063315343980641e-04, ++ 1.79620983547136846585e-04, ++ 1.47919951941878261405e-04, ++ 1.16162144440711673481e-04, ++ 8.43657535348246083538e-05, ++ 5.25489778551051491483e-05, ++ 2.07300117675779430298e-05, ++-1.10729650196668325771e-05, ++-4.28417978320822792019e-05, ++-7.45583673808965783410e-05, ++-1.06204600086071425293e-04, ++-1.37762478364149087246e-04, ++-1.69214050874914927148e-04, ++-2.00541442721614891851e-04, ++-2.31726865598118244574e-04, ++-2.62752627878274269604e-04, ++-2.93601144640412165671e-04, ++-3.24254947622835021804e-04, ++-3.54696695103594577137e-04, ++-3.84909181699200184275e-04, ++-4.14875348077196936039e-04, ++-4.44578290576414924141e-04, ++-4.74001270730014352076e-04, ++-5.03127724685752076780e-04, ++-5.31941272518206861690e-04, ++-5.60425727427743720910e-04, ++-5.88565104821016545078e-04, ++-6.16343631268131183359e-04, ++-6.43745753330938032602e-04, ++-6.70756146258231328826e-04, ++-6.97359722542432612299e-04, ++-7.23541640333268576586e-04, ++-7.49287311703654272145e-04, ++-7.74582410763238315282e-04, ++-7.99412881615075860547e-04, ++-8.23764946151039185139e-04, ++-8.47625111681623221935e-04, ++-8.70980178395970995424e-04, ++-8.93817246647941095888e-04, ++-9.16123724064377706680e-04, ++-9.37887332471280203011e-04, ++-9.59096114634606271634e-04, ++-9.79738440811607448275e-04, ++-9.99803015109290834847e-04, ++-1.01927888164651272128e-03, ++-1.03815543051633853155e-03, ++-1.05642240354548912901e-03, ++-1.07406989984759745557e-03, ++-1.09108838116762723279e-03, ++-1.10746867701414018585e-03, ++-1.12320198957698577993e-03, ++-1.13827989842765417428e-03, ++-1.15269436499997502028e-03, ++-1.16643773684832734866e-03, ++-1.17950275168172556868e-03, ++-1.19188254117136706138e-03, ++-1.20357063452954798910e-03, ++-1.21456096185834725582e-03, ++-1.22484785726622159678e-03, ++-1.23442606175099434812e-03, ++-1.24329072584775926144e-03, ++-1.25143741204040113979e-03, ++-1.25886209693559965317e-03, ++-1.26556117319820459269e-03, ++-1.27153145124719456523e-03, ++-1.27677016071131685555e-03, ++-1.28127495164393639428e-03, ++-1.28504389549651746975e-03, ++-1.28807548585040771913e-03, ++-1.29036863890675851559e-03, ++-1.29192269373445381593e-03, ++-1.29273741227616803182e-03, ++-1.29281297911274461153e-03, ++-1.29215000098622341193e-03, ++-1.29074950608205050485e-03, ++-1.28861294307102769788e-03, ++-1.28574217991181470426e-03, ++-1.28213950241485154062e-03, ++-1.27780761256874805798e-03, ++-1.27274962663027619951e-03, ++-1.26696907297930137261e-03, ++-1.26046988974006066338e-03, ++-1.25325642217039056117e-03, ++-1.24533341982049493464e-03, ++-1.23670603346324884178e-03, ++-1.22737981179783643172e-03, ++-1.21736069792890478670e-03, ++-1.20665502562341490217e-03, ++-1.19526951534740743209e-03, ++-1.18321127008547502014e-03, ++-1.17048777094514431553e-03, ++-1.15710687254899267061e-03, ++-1.14307679821747196908e-03, ++-1.12840613494519497600e-03, ++-1.11310382817380736260e-03, ++-1.09717917636461301072e-03, ++-1.08064182537422016558e-03, ++-1.06350176263660047178e-03, ++-1.04576931115505939590e-03, ++-1.02745512330771390092e-03, ++-1.00857017447020984660e-03, ++-9.89125756459348273036e-04, ++-9.69133470801857087144e-04, ++-9.48605221831876478482e-04, ++-9.27553209621573911299e-04, ++-9.05989922748946536341e-04, ++-8.83928130907113245029e-04, ++-8.61380877359472856523e-04, ++-8.38361471245136369995e-04, ++-8.14883479739194086997e-04, ++-7.90960720072537894904e-04, ++-7.66607251415539741463e-04, ++-7.41837366630958413780e-04, ++-7.16665583900111865384e-04, ++-6.91106638228288503237e-04, ++-6.65175472833141076361e-04, ++-6.38887230421945938666e-04, ++-6.12257244362626436643e-04, ++-5.85301029753312320944e-04, ++-5.58034274396206606862e-04, ++-5.30472829680567778236e-04, ++-5.02632701380270412693e-04, ++-4.74530040371252698900e-04, ++-4.46181133274236403283e-04, ++-4.17602393028139700758e-04, ++-3.88810349399469656114e-04, ++-3.59821639433645487551e-04, ++-3.30652997853107073409e-04, ++-3.01321247408244021881e-04, ++-2.71843289186502834551e-04, ++-2.42236092885274642951e-04, ++-2.12516687054165319707e-04, ++-1.82702149312243965380e-04, ++-1.52809596545888838484e-04, ++-1.22856175092848034355e-04, ++-9.28590509181383036126e-05, ++-6.28353997874044387486e-05, ++-3.28023974433953014970e-05, ++-2.77720979095154411141e-06, ++ 2.72230169033535440140e-05, ++ 5.71811657920477271538e-05, ++ 8.70801592019578094960e-05, ++ 1.16902968358433966434e-04, ++ 1.46632623073032026736e-04, ++ 1.76252221389186882524e-04, ++ 2.05744939180186014712e-04, ++ 2.35094039694530468169e-04, ++ 2.64282883042567088867e-04, ++ 2.93294935619551385558e-04, ++ 3.22113779459532194229e-04, ++ 3.50723121515214011305e-04, ++ 3.79106802857572401221e-04, ++ 4.07248807791192634405e-04, ++ 4.35133272879688717035e-04, ++ 4.62744495875839806538e-04, ++ 4.90066944551884237959e-04, ++ 5.17085265424790572163e-04, ++ 5.43784292371653644321e-04, ++ 5.70149055130390425110e-04, ++ 5.96164787680977456552e-04, ++ 6.21816936502533586587e-04, ++ 6.47091168701626482176e-04, ++ 6.71973380007443560867e-04, ++ 6.96449702628909074476e-04, ++ 7.20506512970012593690e-04, ++ 7.44130439198579488221e-04, ++ 7.67308368664491478525e-04, ++ 7.90027455163207908972e-04, ++ 8.12275126040571966018e-04, ++ 8.34039089134997737793e-04, ++ 8.55307339553189088961e-04, ++ 8.76068166275680644713e-04, ++ 8.96310158588609247332e-04, ++ 9.16022212337969966855e-04, ++ 9.35193536003619163739e-04, ++ 9.53813656588502287864e-04, ++ 9.71872425321206783247e-04, ++ 9.89360023167912576089e-04, ++ 1.00626696615104373536e-03, ++ 1.02258411047174220705e-03, ++ 1.03830265743327931904e-03, ++ 1.05341415816306632411e-03, ++ 1.06791051813036243917e-03, ++ 1.08178400145754450255e-03, ++ 1.09502723502257035167e-03, ++ 1.10763321235048616507e-03, ++ 1.11959529729188916186e-03, ++ 1.13090722748666861440e-03, ++ 1.14156311761065294014e-03, ++ 1.15155746240435427445e-03, ++ 1.16088513948151006439e-03, ++ 1.16954141191641532681e-03, ++ 1.17752193060865497330e-03, ++ 1.18482273642408174330e-03, ++ 1.19144026211101582494e-03, ++ 1.19737133399079663347e-03, ++ 1.20261317342187467987e-03, ++ 1.20716339803685892770e-03, ++ 1.21102002275194891440e-03, ++ 1.21418146054847906831e-03, ++ 1.21664652302620073833e-03, ++ 1.21841442072828740756e-03, ++ 1.21948476323806070595e-03, ++ 1.21985755904754564205e-03, ++ 1.21953321519817120717e-03, ++ 1.21851253669401512168e-03, ++ 1.21679672568812116337e-03, ++ 1.21438738044255738029e-03, ++ 1.21128649406303441106e-03, ++ 1.20749645300896710394e-03, ++ 1.20302003538006298602e-03, ++ 1.19786040898056927312e-03, ++ 1.19202112916260414589e-03, ++ 1.18550613644981912495e-03, ++ 1.17831975394308238227e-03, ++ 1.17046668450985027511e-03, ++ 1.16195200775891173579e-03, ++ 1.15278117680258848643e-03, ++ 1.14296001480831705549e-03, ++ 1.13249471134179986558e-03, ++ 1.12139181850401392637e-03, ++ 1.10965824686446259441e-03, ++ 1.09730126119316579933e-03, ++ 1.08432847599404177941e-03, ++ 1.07074785084228674831e-03, ++ 1.05656768552886740596e-03, ++ 1.04179661501472100617e-03, ++ 1.02644360419797825434e-03, ++ 1.01051794249726128137e-03, ++ 9.94029238254327297819e-04, ++ 9.76987412959428496231e-04, ++ 9.59402695302853094836e-04, ++ 9.41285615056165433402e-04, ++ 9.22646996786851249575e-04, ++ 9.03497953410057892502e-04, ++ 8.83849879581315145925e-04, ++ 8.63714444933994722302e-04, ++ 8.43103587165879497442e-04, ++ 8.22029504978451252585e-04, ++ 8.00504650873420757484e-04, ++ 7.78541723810587853530e-04, ++ 7.56153661731407702139e-04, ++ 7.33353633952590140861e-04, ++ 7.10155033434391397620e-04, ++ 6.86571468927704795654e-04, ++ 6.62616757005092820061e-04, ++ 6.38304913980008450068e-04, ++ 6.13650147719164789327e-04, ++ 5.88666849352420377441e-04, ++ 5.63369584885875388305e-04, ++ 5.37773086722076747342e-04, ++ 5.11892245092671863312e-04, ++ 4.85742099408737208668e-04, ++ 4.59337829533421374787e-04, ++ 4.32694746982132956003e-04, ++ 4.05828286055327270860e-04, ++ 3.78753994909039224618e-04, ++ 3.51487526568311297540e-04, ++ 3.24044629888701042706e-04, ++ 2.96441140471124468109e-04, ++ 2.68692971535064537448e-04, ++ 2.40816104755891792965e-04, ++ 2.12826581070915530529e-04, ++ 1.84740491459934620937e-04, ++ 1.56573967705388389718e-04, ++ 1.28343173137436734367e-04, ++ 1.00064293369274724200e-04, ++ 7.17535270279865756201e-05, ++ 4.34270764862388947451e-05, ++ 1.51011386001131606149e-05, ++-1.32081045416696524620e-05, ++-4.14844948516519899375e-05, ++-6.97119074558447989051e-05, ++-9.78742598787180241452e-05, ++-1.25955521195249200029e-04, ++-1.53939721145969320030e-04, ++-1.81810959208852370795e-04, ++-2.09553413623342002373e-04, ++-2.37151350361132772252e-04, ++-2.64589132039119191708e-04, ++-2.91851226768812584828e-04, ++-3.18922216937715912854e-04, ++-3.45786807917504923019e-04, ++-3.72429836694131806071e-04, ++-3.98836280414924259936e-04, ++-4.24991264848284251536e-04, ++-4.50880072750091832195e-04, ++-4.76488152133843997395e-04, ++-5.01801124438317467692e-04, ++-5.26804792589028771099e-04, ++-5.51485148948722817865e-04, ++-5.75828383152479162180e-04, ++-5.99820889823062712923e-04, ++-6.23449276162207780341e-04, ++-6.46700369413619538528e-04, ++-6.69561224193530326286e-04, ++-6.92019129684716838985e-04, ++-7.14061616690151953514e-04, ++-7.35676464541983651108e-04, ++-7.56851707862541919249e-04, ++-7.77575643173267975865e-04, ++-7.97836835348055277602e-04, ++-8.17624123907448297453e-04, ++-8.36926629150230058478e-04, ++-8.55733758119046612582e-04, ++-8.74035210396826049359e-04, ++-8.91820983730703649786e-04, ++-9.09081379480705491225e-04, ++-9.25807007889788277297e-04, ++-9.41988793172909236878e-04, ++-9.57617978421671824096e-04, ++-9.72686130322748202653e-04, ++-9.87185143686923052483e-04, ++-1.00110724578650659398e-03, ++-1.01444500049902323544e-03, ++-1.02719131225463187161e-03, ++-1.03933942978544770035e-03, ++-1.05088294967471814964e-03, ++-1.06181581970400955479e-03, ++-1.07213234199665663482e-03, ++-1.08182717595588814667e-03, ++-1.09089534099611235214e-03, ++-1.09933221906604130548e-03, ++-1.10713355696224189685e-03, ++-1.11429546843220921015e-03, ++-1.12081443606577282543e-03, ++-1.12668731297399537551e-03, ++-1.13191132425482891832e-03, ++-1.13648406824482742922e-03, ++-1.14040351755644074963e-03, ++-1.14366801990044438496e-03, ++-1.14627629869328028812e-03, ++-1.14822745344909417364e-03, ++-1.14952095995648801048e-03, ++-1.15015667024007182777e-03, ++-1.15013481230698852258e-03, ++-1.14945598967880415094e-03, ++-1.14812118070920518922e-03, ++-1.14613173768805766059e-03, ++-1.14348938573257991221e-03, ++-1.14019622146641639096e-03, ++-1.13625471148757692386e-03, ++-1.13166769062629166132e-03, ++-1.12643835999398341310e-03, ++-1.12057028482466340680e-03, ++-1.11406739211015104116e-03, ++-1.10693396803060797873e-03, ++-1.09917465518223384131e-03, ++-1.09079444960363011567e-03, ++-1.08179869760285343912e-03, ++-1.07219309238717466423e-03, ++-1.06198367049757311231e-03, ++-1.05117680805022224028e-03, ++-1.03977921678728496210e-03, ++-1.02779793993942468629e-03, ++-1.01524034790259534006e-03, ++-1.00211413373173349912e-03, ++-9.88427308454093486029e-04, ++-9.74188196205089573972e-04, ++-9.59405429189479725879e-04, ++-9.44087942471171881302e-04, ++-9.28244968594481583042e-04, ++-9.11886032040267347637e-04, ++-8.95020943520216660794e-04, ++-8.77659794112658803340e-04, ++-8.59812949243432501564e-04, ++-8.41491042515366753467e-04, ++-8.22704969390060901480e-04, ++-8.03465880725650455872e-04, ++-7.83785176174564036933e-04, ++-7.63674497444838786334e-04, ++-7.43145721429159210325e-04, ++-7.22210953206033133382e-04, ++-7.00882518916405724239e-04, ++-6.79172958520581071529e-04, ++-6.57095018439407888011e-04, ++-6.34661644084213061485e-04, ++-6.11885972279487986777e-04, ++-5.88781323583261557639e-04, ++-5.65361194509265800601e-04, ++-5.41639249655565977945e-04, ++-5.17629313744230818220e-04, ++-4.93345363576712316218e-04, ++-4.68801519909265351684e-04, ++-4.44012039254113445412e-04, ++-4.18991305609581871604e-04, ++-3.93753822125390276140e-04, ++-3.68314202707166818418e-04, ++-3.42687163565271075971e-04, ++-3.16887514712763855660e-04, ++-2.90930151417445159289e-04, ++-2.64830045612876889462e-04, ++-2.38602237273343473298e-04, ++-2.12261825757707105287e-04, ++-1.85823961127170580662e-04, ++-1.59303835441746181271e-04, ++-1.32716674040886725835e-04, ++-1.06077726812662281766e-04, ++-7.94022594569434886792e-05, ++-5.27055447474102572785e-05, ++-2.60028537974079832656e-05, ++ 6.90552665357526391948e-07, ++ 2.73594330103061967382e-05, ++ 5.39885733967170351332e-05, ++ 8.05627964425661594961e-05, ++ 1.07066969865010061308e-04, ++ 1.33486015086968664006e-04, ++ 1.59804915805331028064e-04, ++ 1.86008726516105670021e-04, ++ 2.12082580990773740320e-04, ++ 2.38011700700330354344e-04, ++ 2.63781403181116572490e-04, ++ 2.89377110338554649482e-04, ++ 3.14784356683413138554e-04, ++ 3.39988797496425883184e-04, ++ 3.64976216916463994978e-04, ++ 3.89732535947750265582e-04, ++ 4.14243820381606571868e-04, ++ 4.38496288628281076592e-04, ++ 4.62476319454435203307e-04, ++ 4.86170459622126181851e-04, ++ 5.09565431424569481242e-04, ++ 5.32648140115051980069e-04, ++ 5.55405681224405362376e-04, ++ 5.77825347763134713856e-04, ++ 5.99894637304163990538e-04, ++ 6.21601258942250942466e-04, ++ 6.42933140126212003714e-04, ++ 6.63878433360159405340e-04, ++ 6.84425522770043840912e-04, ++ 7.04563030531877763050e-04, ++ 7.24279823158044638691e-04, ++ 7.43565017638393201127e-04, ++ 7.62407987432378152909e-04, ++ 7.80798368309418419284e-04, ++ 7.98726064033930863682e-04, ++ 8.16181251892069835503e-04, ++ 8.33154388057122906319e-04, ++ 8.49636212790671986259e-04, ++ 8.65617755476581307410e-04, ++ 8.81090339485367181512e-04, ++ 8.96045586865937618293e-04, ++ 9.10475422862473118477e-04, ++ 9.24372080253872034986e-04, ++ 9.37728103513655198570e-04, ++ 9.50536352787640661209e-04, ++ 9.62790007687844002875e-04, ++ 9.74482570900335833865e-04, ++ 9.85607871605071426957e-04, ++ 9.96160068706062381411e-04, ++ 1.00613365387018584458e-03, ++ 1.01552345437301723939e-03, ++ 1.02432463575029123783e-03, ++ 1.03253270425362076584e-03, ++ 1.04014350910924206067e-03, ++ 1.04715324457870439731e-03, ++ 1.05355845182046950481e-03, ++ 1.05935602055159754607e-03, ++ 1.06454319050862085752e-03, ++ 1.06911755270714466277e-03, ++ 1.07307705049946027105e-03, ++ 1.07641998042986067850e-03, ++ 1.07914499288730056890e-03, ++ 1.08125109255521835092e-03, ++ 1.08273763865848467007e-03, ++ 1.08360434500746525242e-03, ++ 1.08385127983937892479e-03, ++ 1.08347886545726241128e-03, ++ 1.08248787766686694993e-03, ++ 1.08087944501203837150e-03, ++ 1.07865504780918649262e-03, ++ 1.07581651698158585126e-03, ++ 1.07236603269432462238e-03, ++ 1.06830612279092259861e-03, ++ 1.06363966103263283235e-03, ++ 1.05836986514164428132e-03, ++ 1.05250029464946915324e-03, ++ 1.04603484855193525419e-03, ++ 1.03897776277230035648e-03, ++ 1.03133360743408474848e-03, ++ 1.02310728394540504521e-03, ++ 1.01430402189651124034e-03, ++ 1.00492937577281401564e-03, ++ 9.94989221484924961370e-04, ++ 9.84489752718325020209e-04, ++ 9.73437477104688721023e-04, ++ 9.61839212217239581185e-04, ++ 9.49702081392630992861e-04, ++ 9.37033509381853305618e-04, ++ 9.23841217832837061606e-04, ++ 9.10133220607474814970e-04, ++ 8.95917818935899651529e-04, ++ 8.81203596410921950570e-04, ++ 8.65999413825665684263e-04, ++ 8.50314403857379305478e-04, ++ 8.34157965600880913111e-04, ++ 8.17539758954521347464e-04, ++ 8.00469698862303906568e-04, ++ 7.82957949415445273941e-04, ++ 7.65014917816926143072e-04, ++ 7.46651248212579373396e-04, ++ 7.27877815392361849668e-04, ++ 7.08705718365645193080e-04, ++ 6.89146273814000625765e-04, ++ 6.69211009425744215821e-04, ++ 6.48911657115913286138e-04, ++ 6.28260146135471188311e-04, ++ 6.07268596074486536641e-04, ++ 5.85949309762400622446e-04, ++ 5.64314766070410454152e-04, ++ 5.42377612619488803404e-04, ++ 5.20150658398866173708e-04, ++ 4.97646866298883240425e-04, ++ 4.74879345562723338432e-04, ++ 4.51861344161378882325e-04, ++ 4.28606241096286539726e-04, ++ 4.05127538634095468555e-04, ++ 3.81438854478096842863e-04, ++ 3.57553913880674515205e-04, ++ 3.33486541701773307050e-04, ++ 3.09250654417399727884e-04, ++ 2.84860252083193681537e-04, ++ 2.60329410257538723227e-04, ++ 2.35672271888895488046e-04, ++ 2.10903039172021308919e-04, ++ 1.86035965377764900275e-04, ++ 1.61085346661131244934e-04, ++ 1.36065513852313800395e-04, ++ 1.10990824235409179101e-04, ++ 8.58756533195474008359e-05, ++ 6.07343866069771497630e-05, ++ 3.55814113632548241332e-05, ++ 1.04311083936491137648e-05, ++-1.47021561691009029690e-05, ++-3.98040390611660384779e-05, ++-6.48602280634465855726e-05, ++-8.98564501522054298295e-05, ++-1.14778479619700933784e-04, ++-1.39612146160650535745e-04, ++-1.64343342919338251907e-04, ++-1.88958034493250977151e-04, ++-2.13442264888526227673e-04, ++-2.37782165422681623619e-04, ++-2.61963962570504571396e-04, ++-2.85973985747828166135e-04, ++-3.09798675029788052153e-04, ++-3.33424588798768176210e-04, ++-3.56838411317501760876e-04, ++-3.80026960223441392147e-04, ++-4.02977193940015090100e-04, ++-4.25676219000628282361e-04, ++-4.48111297281314371974e-04, ++-4.70269853137984079287e-04, ++-4.92139480444267647663e-04, ++-5.13707949526006615523e-04, ++-5.34963213988673739162e-04, ++-5.55893417433529703382e-04, ++-5.76486900059300605252e-04, ++-5.96732205145306224443e-04, ++-6.16618085412612730242e-04, ++-6.36133509259657436812e-04, ++-6.55267666868877677634e-04, ++-6.74009976180998601758e-04, ++-6.92350088733664401595e-04, ++-7.10277895361227803138e-04, ++-7.27783531752448681514e-04, ++-7.44857383863318112810e-04, ++-7.61490093181871590539e-04, ++-7.77672561841829005844e-04, ++-7.93395957582958798182e-04, ++-8.08651718554891877494e-04, ++-8.23431557962021757127e-04, ++-8.37727468546858129381e-04, ++-8.51531726909685537062e-04, ++-8.64836897661822056639e-04, ++-8.77635837410563617207e-04, ++-8.89921698573554803210e-04, ++-9.01687933020594461521e-04, ++-9.12928295540940920420e-04, ++-9.23636847134304576554e-04, ++-9.33807958123846902805e-04, ++-9.43436311089422422263e-04, ++-9.52516903619767376157e-04, ++-9.61045050882069389411e-04, ++-9.69016388007670759208e-04, ++-9.76426872292704612667e-04, ++-9.83272785212578647254e-04, ++-9.89550734249325901482e-04, ++-9.95257654530941207952e-04, ++-1.00039081028195663871e-03, ++-1.00494779608456845030e-03, ++-1.00892653794981169979e-03, ++-1.01232529419831556589e-03, ++-1.01514265615029741774e-03, ++-1.01737754862461565394e-03, ++-1.01902923024675272530e-03, ++-1.02009729356571554777e-03, ++-1.02058166497997625417e-03, ++-1.02048260447267446181e-03, ++-1.01980070515639048741e-03, ++-1.01853689262794660890e-03, ++-1.01669242413375375544e-03, ++-1.01426888754638775715e-03, ++-1.01126820015312980997e-03, ++-1.00769260725730729240e-03, ++-1.00354468059351414899e-03, ++-9.98827316557644555306e-04, ++-9.93543734253049580854e-04, ++-9.87697473353981499761e-04, ++-9.81292391787839295494e-04, ++-9.74332663237617449883e-04, ++-9.66822774466185295462e-04, ++-9.58767522464084383411e-04, ++-9.50172011422648630022e-04, ++-9.41041649534305781055e-04, ++-9.31382145622106083493e-04, ++-9.21199505600451087374e-04, ++-9.10500028769397197308e-04, ++-8.99290303944565551711e-04, ++-8.87577205425210550085e-04, ++-8.75367888802800289162e-04, ++-8.62669786612691802744e-04, ++-8.49490603831530729194e-04, ++-8.35838313223061083780e-04, ++-8.21721150535182709787e-04, ++-8.07147609551117617942e-04, ++-7.92126436997654084955e-04, ++-7.76666627313488014232e-04, ++-7.60777417280939101916e-04, ++-7.44468280523723365504e-04, ++-7.27748921874987655251e-04, ++-7.10629271617923522104e-04, ++-6.93119479603028368700e-04, ++-6.75229909245266381526e-04, ++-6.56971131404673501161e-04, ++-6.38353918154137712354e-04, ++-6.19389236437722294319e-04, ++-6.00088241623651132139e-04, ++-5.80462270955458170714e-04, ++-5.60522836905225714695e-04, ++-5.40281620432863491331e-04, ++-5.19750464155060228240e-04, ++-4.98941365428588355299e-04, ++-4.77866469351204028841e-04, ++-4.56538061684547645785e-04, ++-4.34968561703376289593e-04, ++-4.13170514974962768510e-04, ++-3.91156586073003096314e-04, ++-3.68939551230221718554e-04, ++-3.46532290933948842939e-04, ++-3.23947782468940600423e-04, ++-3.01199092411757270073e-04, ++-2.78299369081070745603e-04, ++-2.55261834948078349290e-04, ++-2.32099779011821834730e-04, ++-2.08826549143248190420e-04, ++-1.85455544402832308909e-04, ++-1.62000207336008043239e-04, ++-1.38474016250865456347e-04, ++-1.14890477482541928256e-04, ++-9.12631176487416705644e-05, ++-6.76054759008182519671e-05, ++-4.39310961748295172825e-05, ++-2.02535194471571128164e-05, ++ 3.41372400124625000704e-06, ++ 2.70571223073466086593e-05, ++ 5.06631897304295544804e-05, ++ 7.42184743349819369285e-05, ++ 9.77095656468657952631e-05, ++ 1.21123102278798669873e-04, ++ 1.44445779520586308278e-04, ++ 1.67664356890219484351e-04, ++ 1.90765665640995252163e-04, ++ 2.13736616220833977771e-04, ++ 2.36564205679401197901e-04, ++ 2.59235525018876972973e-04, ++ 2.81737766484226406522e-04, ++ 3.04058230788827618760e-04, ++ 3.26184334271549601202e-04, ++ 3.48103615980852423070e-04, ++ 3.69803744682461728397e-04, ++ 3.91272525786277706496e-04, ++ 4.12497908188799451267e-04, ++ 4.33467991027201371770e-04, ++ 4.54171030341281908426e-04, ++ 4.74595445639567638761e-04, ++ 4.94729826365895158924e-04, ++ 5.14562938262885013335e-04, ++ 5.34083729628744225196e-04, ++ 5.53281337463915729412e-04, ++ 5.72145093504289737989e-04, ++ 5.90664530137289503671e-04, ++ 6.08829386198019386657e-04, ++ 6.26629612641936822176e-04, ++ 6.44055378091031721643e-04, ++ 6.61097074250476457111e-04, ++ 6.77745321192732130128e-04, ++ 6.93990972506254143876e-04, ++ 7.09825120305858456998e-04, ++ 7.25239100102302775876e-04, ++ 7.40224495528040305620e-04, ++ 7.54773142916835191284e-04, ++ 7.68877135734856572910e-04, ++ 7.82528828860328353779e-04, ++ 7.95720842710183188552e-04, ++ 8.08446067210845170301e-04, ++ 8.20697665611487049177e-04, ++ 8.32469078137362318050e-04, ++ 8.43754025481521134980e-04, ++ 8.54546512132969143805e-04, ++ 8.64840829539518206326e-04, ++ 8.74631559103689298733e-04, ++ 8.83913575010109465319e-04, ++ 8.92682046882942626005e-04, ++ 9.00932442271964615751e-04, ++ 9.08660528966120082696e-04, ++ 9.15862377133194608195e-04, ++ 9.22534361284796920223e-04, ++ 9.28673162065495115362e-04, ++ 9.34275767865342418421e-04, ++ 9.39339476254983990131e-04, ++ 9.43861895242741424407e-04, ++ 9.47840944353070817725e-04, ++ 9.51274855525978185397e-04, ++ 9.54162173837028583338e-04, ++ 9.56501758037713121358e-04, ++ 9.58292780916003973483e-04, ++ 9.59534729477142054460e-04, ++ 9.60227404944570409398e-04, ++ 9.60370922581348226629e-04, ++ 9.59965711332194985249e-04, ++ 9.59012513286591154055e-04, ++ 9.57512382963391348902e-04, ++ 9.55466686417531189252e-04, ++ 9.52877100169494421419e-04, ++ 9.49745609958331992936e-04, ++ 9.46074509319091115633e-04, ++ 9.41866397985661216001e-04, ++ 9.37124180120078799534e-04, ++ 9.31851062369440700205e-04, ++ 9.26050551751833660001e-04, ++ 9.19726453372463970473e-04, ++ 9.12882867971548752663e-04, ++ 9.05524189305535872827e-04, ++ 8.97655101363274135137e-04, ++ 8.89280575418887665219e-04, ++ 8.80405866923194158763e-04, ++ 8.71036512235576058406e-04, ++ 8.61178325198361390401e-04, ++ 8.50837393555776847279e-04, ++ 8.40020075219696923594e-04, ++ 8.28732994384399467708e-04, ++ 8.16983037492857960653e-04, ++ 8.04777349056774379821e-04, ++ 7.92123327333073561259e-04, ++ 7.79028619859369530695e-04, ++ 7.65501118851119729744e-04, ++ 7.51548956463218408713e-04, ++ 7.37180499918858086333e-04, ++ 7.22404346508583494919e-04, ++ 7.07229318462486390359e-04, ++ 6.91664457698695713146e-04, ++ 6.75719020451036778314e-04, ++ 6.59402471779397571228e-04, ++ 6.42724479965596788740e-04, ++ 6.25694910798709228936e-04, ++ 6.08323821752458095656e-04, ++ 5.90621456058646517734e-04, ++ 5.72598236680009584250e-04, ++ 5.54264760185757283245e-04, ++ 5.35631790533803520474e-04, ++ 5.16710252763027825043e-04, ++ 4.97511226599373773682e-04, ++ 4.78045939979498718704e-04, ++ 4.58325762495759227340e-04, ++ 4.38362198766371338136e-04, ++ 4.18166881734467700462e-04, ++ 3.97751565900299880723e-04, ++ 3.77128120490046988070e-04, ++ 3.56308522565547207937e-04, ++ 3.35304850078806907388e-04, ++ 3.14129274875331928468e-04, ++ 2.92794055650324276316e-04, ++ 2.71311530861826331624e-04, ++ 2.49694111604887615530e-04, ++ 2.27954274450881122505e-04, ++ 2.06104554256081410344e-04, ++ 1.84157536943679384566e-04, ++ 1.62125852263222448597e-04, ++ 1.40022166532036894350e-04, ++ 1.17859175362270858218e-04, ++ 9.56495963781261012088e-05, ++ 7.34061619272917469060e-05, ++ 5.11416117907757448134e-05, ++ 2.88686858953092775838e-05, ++ 6.60011703245474962544e-06, ++-1.56513764112641267506e-05, ++-3.78730977094623622752e-05, ++-6.00523790315616779367e-05, ++-8.21765886552515715992e-05, ++-1.04233138151800156347e-04, ++-1.26209489539367793924e-04, ++-1.48093162401345972059e-04, ++-1.69871740964736657117e-04, ++-1.91532881135268300563e-04, ++-2.13064317484699505389e-04, ++-2.34453870186744113427e-04, ++-2.55689451897549299090e-04, ++-2.76759074576870677410e-04, ++-2.97650856246099086537e-04, ++-3.18353027679335392423e-04, ++-3.38853939023753682018e-04, ++-3.59142066345504676773e-04, ++-3.79206018097636495413e-04, ++-3.99034541506046805132e-04, ++-4.18616528870369446116e-04, ++-4.37941023775921783445e-04, ++-4.56997227213373118440e-04, ++-4.75774503602719464699e-04, ++-4.94262386718192386383e-04, ++-5.12450585510814218305e-04, ++-5.30328989825377310544e-04, ++-5.47887676008649280625e-04, ++-5.65116912405763628310e-04, ++-5.82007164741549449030e-04, ++-5.98549101384425463745e-04, ++-6.14733598488893004212e-04, ++-6.30551745014977364258e-04, ++-6.45994847621079656963e-04, ++-6.61054435427856318212e-04, ++-6.75722264650496957927e-04, ++-6.89990323096750768871e-04, ++-7.03850834528551736954e-04, ++-7.17296262884492574242e-04, ++-7.30319316361157646819e-04, ++-7.42912951350982778652e-04, ++-7.55070376234532832961e-04, ++-7.66785055025333219143e-04, ++-7.78050710864884066675e-04, ++-7.88861329366501596444e-04, ++-7.99211161806001623743e-04, ++-8.09094728157404166971e-04, ++-8.18506819972308029276e-04, ++-8.27442503101282920627e-04, ++-8.35897120255950105278e-04, ++-8.43866293410389599859e-04, ++-8.51345926040684010221e-04, ++-8.58332205201442922232e-04, ++-8.64821603438301273262e-04, ++-8.70810880535423945462e-04, ++-8.76297085097227715367e-04, ++-8.81277555963454932789e-04, ++-8.85749923457110387506e-04, ++-8.89712110464565414381e-04, ++-8.93162333347438598848e-04, ++-8.96099102685879683565e-04, ++-8.98521223852970446835e-04, ++-9.00427797420107569638e-04, ++-9.01818219393255059504e-04, ++-9.02692181280114911909e-04, ++-9.03049669988348823954e-04, ++-9.02890967555027251605e-04, ++-9.02216650707655248853e-04, ++-9.01027590257164317372e-04, ++-8.99324950323396755253e-04, ++-8.97110187393653770935e-04, ++-8.94385049215033777793e-04, ++-8.91151573521319268802e-04, ++-8.87412086595320399006e-04, ++-8.83169201667640974690e-04, ++-8.78425817152939884119e-04, ++-8.73185114724849367231e-04, ++-8.67450557230792511539e-04, ++-8.61225886448070839484e-04, ++-8.54515120682583636733e-04, ++-8.47322552211840669678e-04, ++-8.39652744573696728503e-04, ++-8.31510529702644309025e-04, ++-8.22901004915378340120e-04, ++-8.13829529747517842198e-04, ++-8.04301722643430768052e-04, ++-7.94323457501185689437e-04, ++-7.83900860074752763550e-04, ++-7.73040304235644501474e-04, ++-7.61748408096249419140e-04, ++-7.50032029997244466084e-04, ++-7.37898264361402087853e-04, ++-7.25354437416511968473e-04, ++-7.12408102789705661648e-04, ++-6.99067036976015396266e-04, ++-6.85339234683824977817e-04, ++-6.71232904059968502400e-04, ++-6.56756461797351536944e-04, ++-6.41918528127957059397e-04, ++-6.26727921704332315012e-04, ++-6.11193654372324123199e-04, ++-5.95324925838475161287e-04, ++-5.79131118235020063596e-04, ++-5.62621790585767769452e-04, ++-5.45806673175928220784e-04, ++-5.28695661829722569208e-04, ++-5.11298812098492927447e-04, ++-4.93626333363000229307e-04, ++-4.75688582853520537230e-04, ++-4.57496059590992946043e-04, ++-4.39059398252854521209e-04, ++-4.20389362967140572426e-04, ++-4.01496841038451060622e-04, ++-3.82392836609444868555e-04, ++-3.63088464261537163542e-04, ++-3.43594942558548969210e-04, ++-3.23923587536901721236e-04, ++-3.04085806146491737303e-04, ++-2.84093089645560742049e-04, ++-2.63957006953748822640e-04, ++-2.43689197967006995066e-04, ++-2.23301366838275436311e-04, ++-2.02805275227777953529e-04, ++-1.82212735526838365925e-04, ++-1.61535604059103902281e-04, ++-1.40785774263093080554e-04, ++-1.19975169859954066938e-04, ++-9.91157380105508263764e-05, ++-7.82194424651331946842e-05, ++-5.72982567107504074688e-05, ++-3.63641571189655019264e-05, ++-1.54291160986802106125e-05, ++ 5.49490474234285622543e-06, ++ 2.63959614233348352161e-05, ++ 4.72621343997122955673e-05, ++ 6.80815353521026694937e-05, ++ 8.88423139508433642357e-05, ++ 1.09532664592484337918e-04, ++ 1.30140833104319903011e-04, ++ 1.50655123413172910328e-04, ++ 1.71063904174602321451e-04, ++ 1.91355615359099600053e-04, ++ 2.11518774790675712300e-04, ++ 2.31541984635477411745e-04, ++ 2.51413937835562545462e-04, ++ 2.71123424484858896975e-04, ++ 2.90659338143525736164e-04, ++ 3.10010682087186043628e-04, ++ 3.29166575487528168323e-04, ++ 3.48116259520795355564e-04, ++ 3.66849103400749643276e-04, ++ 3.85354610332733758284e-04, ++ 4.03622423385466462271e-04, ++ 4.21642331277442610968e-04, ++ 4.39404274074367811459e-04, ++ 4.56898348794905137527e-04, ++ 4.74114814921268088160e-04, ++ 4.91044099811763397334e-04, ++ 5.07676804012220281824e-04, ++ 5.24003706463404693612e-04, ++ 5.40015769601512427185e-04, ++ 5.55704144348954519501e-04, ++ 5.71060174992583653546e-04, ++ 5.86075403946940813073e-04, ++ 6.00741576399512768568e-04, ++ 6.15050644835952228101e-04, ++ 6.28994773442125574073e-04, ++ 6.42566342381337704884e-04, ++ 6.55757951943882421396e-04, ++ 6.68562426566777384153e-04, ++ 6.80972818721725897499e-04, ++ 6.92982412668881352959e-04, ++ 7.04584728074633746646e-04, ++ 7.15773523491389403184e-04, ++ 7.26542799697492522500e-04, ++ 7.36886802895533226179e-04, ++ 7.46800027767298055768e-04, ++ 7.56277220383868350323e-04, ++ 7.65313380969130045012e-04, ++ 7.73903766515502376799e-04, ++ 7.82043893250363385782e-04, ++ 7.89729538951949232121e-04, ++ 7.96956745113565389119e-04, ++ 8.03721818954994393636e-04, ++ 8.10021335280101820522e-04, ++ 8.15852138179731594357e-04, ++ 8.21211342579053417585e-04, ++ 8.26096335628634381720e-04, ++ 8.30504777938583372936e-04, ++ 8.34434604655206872172e-04, ++ 8.37884026379746372007e-04, ++ 8.40851529928737925421e-04, ++ 8.43335878935819161471e-04, ++ 8.45336114294710332107e-04, ++ 8.46851554443294471733e-04, ++ 8.47881795488795693763e-04, ++ 8.48426711174108750049e-04, ++ 8.48486452685477828516e-04, ++ 8.48061448301770160786e-04, ++ 8.47152402885697889713e-04, ++ 8.45760297217433587059e-04, ++ 8.43886387171142548884e-04, ++ 8.41532202735059621686e-04, ++ 8.38699546875822229616e-04, ++ 8.35390494247859852379e-04, ++ 8.31607389748687583081e-04, ++ 8.27352846921140154882e-04, ++ 8.22629746203563960195e-04, ++ 8.17441233029105799972e-04, ++ 8.11790715775362542797e-04, ++ 8.05681863565683954384e-04, ++ 7.99118603923527101411e-04, ++ 7.92105120281344542502e-04, ++ 7.84645849345590325717e-04, ++ 7.76745478319420114104e-04, ++ 7.68408941984943219712e-04, ++ 7.59641419646665534519e-04, ++ 7.50448331938106580861e-04, ++ 7.40835337493533463253e-04, ++ 7.30808329486818254554e-04, ++ 7.20373432039535070703e-04, ++ 7.09536996500486488726e-04, ++ 6.98305597598893957115e-04, ++ 6.86686029473570981770e-04, ++ 6.74685301580476909020e-04, ++ 6.62310634481180966239e-04, ++ 6.49569455514414613798e-04, ++ 6.36469394353982704203e-04, ++ 6.23018278454912912898e-04, ++ 6.09224128391051378099e-04, ++ 5.95095153086705442279e-04, ++ 5.80639744945168250270e-04, ++ 5.65866474877092448525e-04, ++ 5.50784087231426526705e-04, ++ 5.35401494632215197225e-04, ++ 5.19727772724077859492e-04, ++ 5.03772154829525923431e-04, ++ 4.87544026521280851084e-04, ++ 4.71052920112772989698e-04, ++ 4.54308509069835603569e-04, ++ 4.37320602347533553267e-04, ++ 4.20099138654383497463e-04, ++ 4.02654180648284807775e-04, ++ 3.84995909067011564137e-04, ++ 3.67134616796844961539e-04, ++ 3.49080702882780392719e-04, ++ 3.30844666483778653780e-04, ++ 3.12437100776581622944e-04, ++ 2.93868686811618183737e-04, ++ 2.75150187324561020918e-04, ++ 2.56292440507140670877e-04, ++ 2.37306353740675621137e-04, ++ 2.18202897296279266356e-04, ++ 1.98993098004925772883e-04, ++ 1.79688032901358264856e-04, ++ 1.60298822845364506793e-04, ++ 1.40836626124112224753e-04, ++ 1.21312632039215933556e-04, ++ 1.01738054482220324185e-04, ++ 8.21241255021581603984e-05, ++ 6.24820888690072755080e-05, ++ 4.28231936363832337185e-05, ++ 2.31586877076589681926e-05, ++ 3.49981140855670628566e-06, ++-1.61422089292776860909e-05, ++-3.57561673710188603244e-05, ++-5.53308847633998468008e-05, ++-7.48552150979509803470e-05, ++-9.43180518494260796856e-05, ++-1.13708334285348401584e-04, ++-1.33015053743449631566e-04, ++-1.52227259873300292507e-04, ++-1.71334066838623079324e-04, ++-1.90324659476782091653e-04, ++-2.09188299411965425824e-04, ++-2.27914331118587613423e-04, ++-2.46492187931631313944e-04, ++-2.64911398000205382339e-04, ++-2.83161590181416034876e-04, ++-3.01232499870904074039e-04, ++-3.19113974766915017931e-04, ++-3.36795980564636679867e-04, ++-3.54268606577632174954e-04, ++-3.71522071283203947009e-04, ++-3.88546727788614181063e-04, ++-4.05333069215096399290e-04, ++-4.21871733996659933463e-04, ++-4.38153511090731847231e-04, ++-4.54169345097848065496e-04, ++-4.69910341287265624979e-04, ++-4.85367770526103374431e-04, ++-5.00533074108989832485e-04, ++-5.15397868485681603760e-04, ++-5.29953949884007929905e-04, ++-5.44193298825634374886e-04, ++-5.58108084532057653962e-04, ++-5.71690669218670195068e-04, ++-5.84933612274217158006e-04, ++-5.97829674323603708214e-04, ++-6.10371821171734304026e-04, ++-6.22553227626419856781e-04, ++-6.34367281197839366289e-04, ++-6.45807585673186250637e-04, ++-6.56867964564019149454e-04, ++-6.67542464424877488548e-04, ++-6.77825358041074066233e-04, ++-6.87711147484166077093e-04, ++-6.97194567033422758773e-04, ++-7.06270585961741746359e-04, ++-7.14934411184561628694e-04, ++-7.23181489770394637234e-04, ++-7.31007511311650994522e-04, ++-7.38408410154600355381e-04, ++-7.45380367487197487489e-04, ++-7.51919813283889650751e-04, ++-7.58023428106295344038e-04, ++-7.63688144758921860430e-04, ++-7.68911149799110884596e-04, ++-7.73689884900469453805e-04, ++-7.78022048069176852536e-04, ++-7.81905594712582730464e-04, ++-7.85338738559663196610e-04, ++-7.88319952432907605604e-04, ++-7.90847968871373333856e-04, ++-7.92921780604692572579e-04, ++-7.94540640877896479737e-04, ++-7.95704063626980471514e-04, ++-7.96411823505323844020e-04, ++-7.96663955761047642458e-04, ++-7.96460755965521980358e-04, ++-7.95802779593343299035e-04, ++-7.94690841454150087575e-04, ++-7.93126014976744679770e-04, ++-7.91109631346083286806e-04, ++-7.88643278493758549327e-04, ++-7.85728799942701674856e-04, ++-7.82368293506905928061e-04, ++-7.78564109847002514854e-04, ++-7.74318850882812310596e-04, ++-7.69635368063673682044e-04, ++-7.64516760497901438909e-04, ++-7.58966372942442794175e-04, ++-7.52987793654077996498e-04, ++-7.46584852103500504379e-04, ++-7.39761616553728774091e-04, ++-7.32522391504357027643e-04, ++-7.24871715003236934821e-04, ++-7.16814355827273216350e-04, ++-7.08355310534040027645e-04, ++-6.99499800386016380889e-04, ++-6.90253268149437163720e-04, ++-6.80621374769529714592e-04, ++-6.70609995924295360266e-04, ++-6.60225218458873998675e-04, ++-6.49473336702642350601e-04, ++-6.38360848671277059801e-04, ++-6.26894452156058273537e-04, ++-6.15081040702747340251e-04, ++-6.02927699482527735750e-04, ++-5.90441701057256335301e-04, ++-5.77630501041881037026e-04, ++-5.64501733666179588388e-04, ++-5.51063207239021373221e-04, ++-5.37322899517202385612e-04, ++-5.23288952982047124961e-04, ++-5.08969670026456150538e-04, ++-4.94373508055059602412e-04, ++-4.79509074500653401096e-04, ++-4.64385121759629336102e-04, ++-4.49010542049456493497e-04, ++-4.33394362191214064118e-04, ++-4.17545738320244637712e-04, ++-4.01473950527997305165e-04, ++-3.85188397438232619108e-04, ++-3.68698590720627130540e-04, ++-3.52014149545262831995e-04, ++-3.35144794980849110039e-04, ++-3.18100344340219566650e-04, ++-3.00890705476273645578e-04, ++-2.83525871031688149124e-04, ++-2.66015912645737500133e-04, ++-2.48370975121568597112e-04, ++-2.30601270557308229850e-04, ++-2.12717072444391431304e-04, ++-1.94728709736517952358e-04, ++-1.76646560892675731939e-04, ++-1.58481047897534086224e-04, ++-1.40242630262970099540e-04, ++-1.21941799013744982391e-04, ++-1.03589070661107662103e-04, ++-8.51949811676530225713e-05, ++-6.67700799069139572109e-05, ++-4.83249236211274086098e-05, ++-2.98700703807564870525e-05, ++-1.14160735488978414020e-05, ++ 7.02652424554682768497e-06, ++ 2.54471971228236679705e-05, ++ 4.38354419518023738413e-05, ++ 6.21807843308446069313e-05, ++ 8.04727845460066358498e-05, ++ 9.87010435040899136066e-05, ++ 1.16855208636383958460e-04, ++ 1.34924979770344443406e-04, ++ 1.52900114965400754944e-04, ++ 1.70770436309920342057e-04, ++ 1.88525835675920134431e-04, ++ 2.06156280428297997024e-04, ++ 2.23651819085366783272e-04, ++ 2.41002586927498689160e-04, ++ 2.58198811550729352172e-04, ++ 2.75230818362170949389e-04, ++ 2.92089036014278136209e-04, ++ 3.08764001774616207285e-04, ++ 3.25246366828520531121e-04, ++ 3.41526901511388200801e-04, ++ 3.57596500467790591720e-04, ++ 3.73446187734516289129e-04, ++ 3.89067121744707245228e-04, ++ 4.04450600250306482528e-04, ++ 4.19588065160076859831e-04, ++ 4.34471107290538996557e-04, ++ 4.49091471027067759818e-04, ++ 4.63441058892829452643e-04, ++ 4.77511936022862045707e-04, ++ 4.91296334540600198627e-04, ++ 5.04786657835014449663e-04, ++ 5.17975484735516645760e-04, ++ 5.30855573582563605717e-04, ++ 5.43419866191619145568e-04, ++ 5.55661491708522902247e-04, ++ 5.67573770353875343975e-04, ++ 5.79150217054632036016e-04, ++ 5.90384544960849454512e-04, ++ 6.01270668845691608206e-04, ++ 6.11802708386863214850e-04, ++ 6.21974991327834889066e-04, ++ 6.31782056516764687314e-04, ++ 6.41218656822146407942e-04, ++ 6.50279761923036299723e-04, ++ 6.58960560972716405566e-04, ++ 6.67256465134287500389e-04, ++ 6.75163109986891556320e-04, ++ 6.82676357801303567048e-04, ++ 6.89792299683732634992e-04, ++ 6.96507257586713749917e-04, ++ 7.02817786186088130918e-04, ++ 7.08720674623126924326e-04, ++ 7.14212948110944231481e-04, ++ 7.19291869404349885550e-04, ++ 7.23954940132546750399e-04, ++ 7.28199901993943090293e-04, ++ 7.32024737812592227876e-04, ++ 7.35427672455747746989e-04, ++ 7.38407173612188813538e-04, ++ 7.40961952430967151807e-04, ++ 7.43090964020374881993e-04, ++ 7.44793407806954867699e-04, ++ 7.46068727754538611394e-04, ++ 7.46916612443245453087e-04, ++ 7.47336995008605268868e-04, ++ 7.47330052940939869310e-04, ++ 7.46896207745253873714e-04, ++ 7.46036124461981245935e-04, ++ 7.44750711048991790794e-04, ++ 7.43041117625342466269e-04, ++ 7.40908735577333176642e-04, ++ 7.38355196527534156196e-04, ++ 7.35382371167495095879e-04, ++ 7.31992367954923252131e-04, ++ 7.28187531676248857131e-04, ++ 7.23970441875473923535e-04, ++ 7.19343911150391139564e-04, ++ 7.14310983317213688513e-04, ++ 7.08874931444885593435e-04, ++ 7.03039255760210023485e-04, ++ 6.96807681425207193181e-04, ++ 6.90184156188062745106e-04, ++ 6.83172847909139504749e-04, ++ 6.75778141963576887280e-04, ++ 6.68004638522109246875e-04, ++ 6.59857149711750939035e-04, ++ 6.51340696658104286593e-04, ++ 6.42460506411091959722e-04, ++ 6.33222008755997788076e-04, ++ 6.23630832911684193816e-04, ++ 6.13692804118148903594e-04, ++ 6.03413940115261806379e-04, ++ 5.92800447514970491047e-04, ++ 5.81858718069071527597e-04, ++ 5.70595324834820847096e-04, ++ 5.59017018240628819903e-04, ++ 5.47130722054300845832e-04, ++ 5.34943529255999883701e-04, ++ 5.22462697818653785606e-04, ++ 5.09695646398130772746e-04, ++ 4.96649949935782969619e-04, ++ 4.83333335176001986210e-04, ++ 4.69753676101234622468e-04, ++ 4.55918989287601634543e-04, ++ 4.41837429183325480515e-04, ++ 4.27517283312972833521e-04, ++ 4.12966967410454712222e-04, ++ 3.98195020483432121378e-04, ++ 3.83210099812103391695e-04, ++ 3.68020975885298450622e-04, ++ 3.52636527276817995143e-04, ++ 3.37065735465011645077e-04, ++ 3.21317679598622223548e-04, ++ 3.05401531211941905386e-04, ++ 2.89326548892257452619e-04, ++ 2.73102072902946376928e-04, ++ 2.56737519764977252090e-04, ++ 2.40242376800225943771e-04, ++ 2.23626196639659541874e-04, ++ 2.06898591699577582680e-04, ++ 1.90069228629096543095e-04, ++ 1.73147822732087712776e-04, ++ 1.56144132366777384441e-04, ++ 1.39067953326214697627e-04, ++ 1.21929113202958933396e-04, ++ 1.04737465740963099658e-04, ++ 8.75028851780528622514e-05, ++ 7.02352605825545112366e-05, ++ 5.29444901866215451251e-05, ++ 3.56404757200933205497e-05, ++ 1.83331167478597644273e-05, ++ 1.03230501413102183826e-06, ++-1.62520812034707693762e-05, ++-3.35101827263670735968e-05, ++-5.07321650911279374628e-05, ++-6.79082241459080256747e-05, ++-8.50285916240537564164e-05, ++-1.02083540691677796268e-04, ++-1.19063391466316483881e-04, ++-1.35958516502816118129e-04, ++-1.52759346244455719837e-04, ++-1.69456374435215186046e-04, ++-1.86040163490673691061e-04, ++-2.02501349824351403305e-04, ++-2.18830649126511295058e-04, ++-2.35018861592449355329e-04, ++-2.51056877097335180617e-04, ++-2.66935680314695194647e-04, ++-2.82646355775669996281e-04, ++-2.98180092866208153266e-04, ++-3.13528190759385430846e-04, ++-3.28682063280201183005e-04, ++-3.43633243699864576997e-04, ++-3.58373389457262059472e-04, ++-3.72894286804705877604e-04, ++-3.87187855375492433196e-04, ++-4.01246152670716468933e-04, ++-4.15061378462855390652e-04, ++-4.28625879113702864826e-04, ++-4.41932151804175915588e-04, ++-4.54972848673900734286e-04, ++-4.67740780867979507370e-04, ++-4.80228922488919207114e-04, ++-4.92430414451660788955e-04, ++-5.04338568239140645766e-04, ++-5.15946869556969272587e-04, ++-5.27248981884690759263e-04, ++-5.38238749922089398589e-04, ++-5.48910202928370723023e-04, ++-5.59257557952611700225e-04, ++-5.69275222953672071884e-04, ++-5.78957799807889249809e-04, ++-5.88300087202963859455e-04, ++-5.97297083416476414473e-04, ++-6.05943988977575135647e-04, ++-6.14236209210458085871e-04, ++-6.22169356658183671412e-04, ++-6.29739253385739618761e-04, ++-6.36941933161007476510e-04, ++-6.43773643512582892379e-04, ++-6.50230847663354235948e-04, ++-6.56310226338886878658e-04, ++-6.62008679449682451920e-04, ++-6.67323327646487897066e-04, ++-6.72251513747878452071e-04, ++-6.76790804039441285488e-04, ++-6.80938989443917279398e-04, ++-6.84694086561815564058e-04, ++-6.88054338581924984468e-04, ++-6.91018216061473023945e-04, ++-6.93584417575499262779e-04, ++-6.95751870235252118692e-04, ++-6.97519730075439408322e-04, ++-6.98887382310238512544e-04, ++-6.99854441458020392307e-04, ++-7.00420751334910186674e-04, ++-7.00586384917250637808e-04, ++-7.00351644073214348388e-04, ++-6.99717059163839283017e-04, ++-6.98683388513845408767e-04, ++-6.97251617752650001102e-04, ++-6.95422959026119487901e-04, ++-6.93198850079607088379e-04, ++-6.90580953212918528285e-04, ++-6.87571154107985264316e-04, ++-6.84171560529966103770e-04, ++-6.80384500902708982788e-04, ++-6.76212522759481789864e-04, ++-6.71658391069967749057e-04, ++-6.66725086444653041590e-04, ++-6.61415803217692819561e-04, ++-6.55733947409528573555e-04, ++-6.49683134570482436268e-04, ++-6.43267187506764773208e-04, ++-6.36490133890204668257e-04, ++-6.29356203753268024677e-04, ++-6.21869826870875635171e-04, ++-6.14035630030630393862e-04, ++-6.05858434193134814082e-04, ++-5.97343251544118505024e-04, ++-5.88495282440187417530e-04, ++-5.79319912250014150239e-04, ++-5.69822708092951237674e-04, ++-5.60009415476908612407e-04, ++-5.49885954837576801033e-04, ++-5.39458417981255439720e-04, ++-5.28733064433041348440e-04, ++-5.17716317692869828875e-04, ++-5.06414761401502129881e-04, ++-4.94835135418839880059e-04, ++-4.82984331816689843164e-04, ++-4.70869390788640387446e-04, ++-4.58497496479242630431e-04, ++-4.45875972735065601461e-04, ++-4.33012278780107377589e-04, ++-4.19914004818108983763e-04, ++-4.06588867564375744564e-04, ++-3.93044705709642795341e-04, ++-3.79289475318866453699e-04, ++-3.65331245167339706530e-04, ++-3.51178192017081926713e-04, ++-3.36838595836177763076e-04, ++-3.22320834963867378347e-04, ++-3.07633381224204521288e-04, ++-2.92784794991132475261e-04, ++-2.77783720207839526437e-04, ++-2.62638879363297228237e-04, ++-2.47359068428886473296e-04, ++-2.31953151758071922503e-04, ++-2.16430056951960250863e-04, ++-2.00798769693994654060e-04, ++-1.85068328556394910873e-04, ++-1.69247819781622929874e-04, ++-1.53346372041766269151e-04, ++-1.37373151178878973033e-04, ++-1.21337354929306262606e-04, ++-1.05248207635004573535e-04, ++-8.91149549450086627062e-05, ++-7.29468585098004703403e-05, ++-5.67531906719987081617e-05, ++-4.05432291561632574743e-05, ++-2.43262517606341878125e-05, ++-8.11153105499568761387e-06, ++ 8.09167091459697115441e-06, ++ 2.42741079085157292628e-05, ++ 4.04265547626939556413e-05, ++ 5.65398126401744739798e-05, ++ 7.26047142624750100346e-05, ++ 8.86121291176844783554e-05, ++ 1.04552968642355261246e-04, ++ 1.20418191374254643930e-04, ++ 1.36198808073058146538e-04, ++ 1.51885886806070295480e-04, ++ 1.67470557996213817529e-04, ++ 1.82944019429153478633e-04, ++ 1.98297541217112740890e-04, ++ 2.13522470716304618504e-04, ++ 2.28610237395321440291e-04, ++ 2.43552357651734171758e-04, ++ 2.58340439574197757323e-04, ++ 2.72966187647394017187e-04, ++ 2.87421407397178490465e-04, ++ 3.01698009973331443285e-04, ++ 3.15788016667368121211e-04, ++ 3.29683563362888126455e-04, ++ 3.43376904915868638030e-04, ++ 3.56860419462906380220e-04, ++ 3.70126612654194222032e-04, ++ 3.83168121809794538692e-04, ++ 3.95977719996309473864e-04, ++ 4.08548320021925631847e-04, ++ 4.20872978347595460679e-04, ++ 4.32944898912126369117e-04, ++ 4.44757436869292204114e-04, ++ 4.56304102234621905294e-04, ++ 4.67578563440100960016e-04, ++ 4.78574650794741016362e-04, ++ 4.89286359849140845869e-04, ++ 4.99707854662346487480e-04, ++ 5.09833470968881633315e-04, ++ 5.19657719244667921921e-04, ++ 5.29175287669990585850e-04, ++ 5.38381044987819995518e-04, ++ 5.47270043256114818893e-04, ++ 5.55837520492576445640e-04, ++ 5.64078903210458873843e-04, ++ 5.71989808844079565542e-04, ++ 5.79566048062779125977e-04, ++ 5.86803626972093816082e-04, ++ 5.93698749201003678558e-04, ++ 6.00247817874220647612e-04, ++ 6.06447437468376929041e-04, ++ 6.12294415551340506093e-04, ++ 6.17785764403646210467e-04, ++ 6.22918702521296861058e-04, ++ 6.27690655999173577340e-04, ++ 6.32099259794388049390e-04, ++ 6.36142358868971454465e-04, ++ 6.39818009211379277838e-04, ++ 6.43124478736333145788e-04, ++ 6.46060248062606972720e-04, ++ 6.48624011168465121509e-04, ++ 6.50814675924448241516e-04, ++ 6.52631364503392400953e-04, ++ 6.54073413667472913086e-04, ++ 6.55140374932347883084e-04, ++ 6.55832014608344012786e-04, ++ 6.56148313718822465482e-04, ++ 6.56089467795875169558e-04, ++ 6.55655886553618491575e-04, ++ 6.54848193439355763003e-04, ++ 6.53667225063030848942e-04, ++ 6.52114030505376840972e-04, ++ 6.50189870505314443556e-04, ++ 6.47896216527166549613e-04, ++ 6.45234749708334539252e-04, ++ 6.42207359688187111660e-04, ++ 6.38816143318927205305e-04, ++ 6.35063403259281166260e-04, ++ 6.30951646451974345643e-04, ++ 6.26483582485939526248e-04, ++ 6.21662121844317769152e-04, ++ 6.16490374039393236767e-04, ++ 6.10971645635609837167e-04, ++ 6.05109438161931267354e-04, ++ 5.98907445914837149696e-04, ++ 5.92369553653347702404e-04, ++ 5.85499834187430895707e-04, ++ 5.78302545861415578064e-04, ++ 5.70782129933787834436e-04, ++ 5.62943207855098252772e-04, ++ 5.54790578445580164282e-04, ++ 5.46329214974210436787e-04, ++ 5.37564262140980504354e-04, ++ 5.28501032964188142450e-04, ++ 5.19145005574684313687e-04, ++ 5.09501819918850898904e-04, ++ 4.99577274372495932532e-04, ++ 4.89377322267549059315e-04, ++ 4.78908068333559408525e-04, ++ 4.68175765056459951968e-04, ++ 4.57186808956279780707e-04, ++ 4.45947736786433599192e-04, ++ 4.34465221656520647706e-04, ++ 4.22746069081200064391e-04, ++ 4.10797212957284853512e-04, ++ 3.98625711471500149014e-04, ++ 3.86238742941308148531e-04, ++ 3.73643601591243563771e-04, ++ 3.60847693267234983453e-04, ++ 3.47858531091431943082e-04, ++ 3.34683731060088070306e-04, ++ 3.21331007586994784036e-04, ++ 3.07808168995286370300e-04, ++ 2.94123112959944975862e-04, ++ 2.80283821903894213648e-04, ++ 2.66298358350258257497e-04, ++ 2.52174860233517097834e-04, ++ 2.37921536172264099776e-04, ++ 2.23546660706324561889e-04, ++ 2.09058569500978578149e-04, ++ 1.94465654521075659777e-04, ++ 1.79776359177804124882e-04, ++ 1.64999173451064800808e-04, ++ 1.50142628989783814353e-04, ++ 1.35215294193867887652e-04, ++ 1.20225769279667712834e-04, ++ 1.05182681332417253214e-04, ++ 9.00946793482652321869e-05, ++ 7.49704292687580406678e-05, ++ 5.98186090107322883933e-05, ++ 4.46479034941903122767e-05, ++ 2.94669996713655661538e-05, ++ 1.42845815595480592387e-05, ++-8.90674719386678467731e-07, ++-1.60501058898957495679e-05, ++-3.11850664615309880164e-05, ++-4.62869336522098696559e-05, ++-6.13471122938098376541e-05, ++-7.63570397170260420881e-05, ++-9.13081906125804212970e-05, ++-1.06192081866257116186e-04, ++-1.21000277364919335359e-04, ++-1.35724392770807756941e-04, ++-1.50356100261421840461e-04, ++-1.64887133232308251375e-04, ++-1.79309290960107407722e-04, ++-1.93614443223211164184e-04, ++-2.07794534877538741033e-04, ++-2.21841590384600493343e-04, ++-2.35747718289653712892e-04, ++-2.49505115647181735690e-04, ++-2.63106072391320949463e-04, ++-2.76542975648779115836e-04, ++-2.89808313991833633137e-04, ++-3.02894681629039077587e-04, ++-3.15794782531314804225e-04, ++-3.28501434491123775472e-04, ++-3.41007573112413263187e-04, ++-3.53306255729321028528e-04, ++-3.65390665251150495701e-04, ++-3.77254113931894290764e-04, ++-3.88890047061697880296e-04, ++-4.00292046578829127310e-04, ++-4.11453834599746401911e-04, ++-4.22369276865425247180e-04, ++-4.33032386102221345144e-04, ++-4.43437325295184645198e-04, ++-4.53578410872218030017e-04, ++-4.63450115797292723756e-04, ++-4.73047072571043994947e-04, ++-4.82364076137125729737e-04, ++-4.91396086692756878071e-04, ++-5.00138232402001195638e-04, ++-5.08585812010168398199e-04, ++-5.16734297358173813065e-04, ++-5.24579335795330296312e-04, ++-5.32116752489386786451e-04, ++-5.39342552632568559418e-04, ++-5.46252923542469171619e-04, ++-5.52844236656707828902e-04, ++-5.59113049420296060084e-04, ++-5.65056107064770439183e-04, ++-5.70670344278172711819e-04, ++-5.75952886765007470403e-04, ++-5.80901052695480778210e-04, ++-5.85512354043150645873e-04, ++-5.89784497810519033403e-04, ++-5.93715387141844816964e-04, ++-5.97303122322707935599e-04, ++-6.00546001665863931999e-04, ++-6.03442522282995321911e-04, ++-6.05991380742033013650e-04, ++-6.08191473609774341941e-04, ++-6.10041897879654818233e-04, ++-6.11541951284462828586e-04, ++-6.12691132494012132698e-04, ++-6.13489141197734759101e-04, ++-6.13935878072276153793e-04, ++-6.14031444634213687678e-04, ++-6.13776142978129783147e-04, ++-6.13170475400273522204e-04, ++-6.12215143908160716602e-04, ++-6.10911049616502535922e-04, ++-6.09259292029921744813e-04, ++-6.07261168212986615807e-04, ++-6.04918171848152540562e-04, ++-6.02231992182249067230e-04, ++-5.99204512862249404591e-04, ++-5.95837810661095862788e-04, ++-5.92134154094380829765e-04, ++-5.88096001928879556775e-04, ++-5.83726001583780864344e-04, ++-5.79026987425731846405e-04, ++-5.74001978958720709967e-04, ++-5.68654178909981699100e-04, ++-5.62986971213088379512e-04, ++-5.57003918889516810679e-04, ++-5.50708761829973685031e-04, ++-5.44105414476881875038e-04, ++-5.37197963409420707961e-04, ++-5.29990664832675931022e-04, ++-5.22487941972209408471e-04, ++-5.14694382376049554099e-04, ++-5.06614735125277882745e-04, ++-4.98253907955200866543e-04, ++-4.89616964288741747524e-04, ++-4.80709120183835873340e-04, ++-4.71535741196723874168e-04, ++-4.62102339162885156296e-04, ++-4.52414568897704873120e-04, ++-4.42478224818736978665e-04, ++-4.32299237491589249602e-04, ++-4.21883670101533790608e-04, ++-4.11237714852763253538e-04, ++-4.00367689297795705319e-04, ++-3.89280032598777342174e-04, ++-3.77981301723072956981e-04, ++-3.66478167575481482855e-04, ++-3.54777411069201974430e-04, ++-3.42885919137923399647e-04, ++-3.30810680691371770349e-04, ++-3.18558782516682129776e-04, ++-3.06137405127995278469e-04, ++-2.93553818566704544622e-04, ++-2.80815378154804305266e-04, ++-2.67929520203833435379e-04, ++-2.54903757681815789065e-04, ++-2.41745675840952941541e-04, ++-2.28462927808299829519e-04, ++-2.15063230142214405812e-04, ++-2.01554358357060797247e-04, ++-1.87944142418778622041e-04, ++-1.74240462213917245062e-04, ++-1.60451242994757493389e-04, ++-1.46584450803131455471e-04, ++-1.32648087875677540707e-04, ++-1.18650188032929176604e-04, ++-1.04598812055253963184e-04, ++-9.05020430478532816746e-05, ++-7.63679817980816182978e-05, ++-6.22047421270673621006e-05, ++-4.80204462387773454404e-05, ++-3.38232200690939612160e-05, ++-1.96211886373398563383e-05, ++-5.42247140324502025757e-06, ++ 8.76482236824777340069e-06, ++ 2.29325982315957407963e-05, ++ 3.70727811720706265371e-05, ++ 5.11773202013517019616e-05, ++ 6.52381929346686494130e-05, ++ 7.92474101469974555583e-05, ++ 9.31970203054730103771e-05, ++ 1.07079114075787359224e-04, ++ 1.20885828799772198955e-04, ++ 1.34609352941733671338e-04, ++ 1.48241930501015857979e-04, ++ 1.61775865388299365999e-04, ++ 1.75203525763176128777e-04, ++ 1.88517348330553255508e-04, ++ 2.01709842593477496403e-04, ++ 2.14773595059988993677e-04, ++ 2.27701273401630213721e-04, ++ 2.40485630561381157630e-04, ++ 2.53119508808481513077e-04, ++ 2.65595843738193170946e-04, ++ 2.77907668214037251522e-04, ++ 2.90048116250403941428e-04, ++ 3.02010426833358551230e-04, ++ 3.13787947677527593714e-04, ++ 3.25374138916987524356e-04, ++ 3.36762576728041407650e-04, ++ 3.47946956882078583737e-04, ++ 3.58921098226289516687e-04, ++ 3.69678946090518610861e-04, ++ 3.80214575618283698918e-04, ++ 3.90522195020292855420e-04, ++ 4.00596148748304063669e-04, ++ 4.10430920588102858375e-04, ++ 4.20021136669482232032e-04, ++ 4.29361568391889935302e-04, ++ 4.38447135263920031219e-04, ++ 4.47272907655273392787e-04, ++ 4.55834109459644649508e-04, ++ 4.64126120667108176508e-04, ++ 4.72144479844627002613e-04, ++ 4.79884886523366084934e-04, ++ 4.87343203491520887780e-04, ++ 4.94515458991510439488e-04, ++ 5.01397848820237619291e-04, ++ 5.07986738331495536053e-04, ++ 5.14278664339342934768e-04, ++ 5.20270336921509223872e-04, ++ 5.25958641121905003633e-04, ++ 5.31340638551345634602e-04, ++ 5.36413568885707545825e-04, ++ 5.41174851260732862543e-04, ++ 5.45622085562818821651e-04, ++ 5.49753053615153054572e-04, ++ 5.53565720258578693874e-04, ++ 5.57058234326825011708e-04, ++ 5.60228929515402870182e-04, ++ 5.63076325144043553055e-04, ++ 5.65599126812190268823e-04, ++ 5.67796226947321581655e-04, ++ 5.69666705245914757952e-04, ++ 5.71209829006884771928e-04, ++ 5.72425053357448988464e-04, ++ 5.73312021371367866798e-04, ++ 5.73870564079618605650e-04, ++ 5.74100700373610150010e-04, ++ 5.74002636801101105701e-04, ++ 5.73576767255045208427e-04, ++ 5.72823672555648950346e-04, ++ 5.71744119926011510821e-04, ++ 5.70339062361724402107e-04, ++ 5.68609637894926635629e-04, ++ 5.66557168753326501759e-04, ++ 5.64183160414795923689e-04, ++ 5.61489300558173053124e-04, ++ 5.58477457910976646596e-04, ++ 5.55149680994817618443e-04, ++ 5.51508196769305851677e-04, ++ 5.47555409175347492477e-04, ++ 5.43293897578766660054e-04, ++ 5.38726415115223450716e-04, ++ 5.33855886937539434942e-04, ++ 5.28685408366441232306e-04, ++ 5.23218242945951541104e-04, ++ 5.17457820404608101993e-04, ++ 5.11407734523782039546e-04, ++ 5.05071740914395756958e-04, ++ 4.98453754703430222672e-04, ++ 4.91557848131608235084e-04, ++ 4.84388248063773933609e-04, ++ 4.76949333413366201133e-04, ++ 4.69245632482725018135e-04, ++ 4.61281820220592905877e-04, ++ 4.53062715398815335326e-04, ++ 4.44593277709539084434e-04, ++ 4.35878604784927761902e-04, ++ 4.26923929141124992512e-04, ++ 4.17734615048157432570e-04, ++ 4.08316155327850989487e-04, ++ 3.98674168081502775223e-04, ++ 3.88814393349325734903e-04, ++ 3.78742689703628627584e-04, ++ 3.68465030777748246259e-04, ++ 3.57987501732803619064e-04, ++ 3.47316295664270213630e-04, ++ 3.36457709950689946247e-04, ++ 3.25418142546407844398e-04, ++ 3.14204088220705103369e-04, ++ 3.02822134745452705828e-04, ++ 2.91278959033536570707e-04, ++ 2.79581323230313654512e-04, ++ 2.67736070760376913824e-04, ++ 2.55750122331942382741e-04, ++ 2.43630471901182189993e-04, ++ 2.31384182598852114476e-04, ++ 2.19018382621588081956e-04, ++ 2.06540261090263434262e-04, ++ 1.93957063877727543073e-04, ++ 1.81276089408560325388e-04, ++ 1.68504684432981764438e-04, ++ 1.55650239777576011087e-04, ++ 1.42720186075200863515e-04, ++ 1.29721989476556069784e-04, ++ 1.16663147345869003713e-04, ++ 1.03551183943265592683e-04, ++ 9.03936460960799980377e-05, ++ 7.71980988618959664254e-05, ++ 6.39721211855788279756e-05, ++ 5.07233015529098420324e-05, ++ 3.74592336431094660547e-05, ++ 2.41875119832061500670e-05, ++ 1.09157276060909018059e-05, ++-2.34853628469845146187e-06, ++-1.55977086414162786562e-05, ++-2.88242348869596923613e-05, ++-4.20205812159120831802e-05, ++-5.51792388792400324794e-05, ++-6.82927284502260999177e-05, ++-8.13536040692178018903e-05, ++-9.43544576647877523837e-05, ++-1.07287923148899612901e-04, ++-1.20146680583802623705e-04, ++-1.32923460318065689029e-04, ++-1.45611047089732014966e-04, ++-1.58202284094046845058e-04, ++-1.70690077013562770646e-04, ++-1.83067398008342023790e-04, ++-1.95327289664015750449e-04, ++-2.07462868895485753841e-04, ++-2.19467330804082712487e-04, ++-2.31333952486024421909e-04, ++-2.43056096790058889963e-04, ++-2.54627216022116969682e-04, ++-2.66040855595085605489e-04, ++-2.77290657621565787404e-04, ++-2.88370364447411301270e-04, ++-2.99273822124557198864e-04, ++-3.09994983820817795236e-04, ++-3.20527913164946520654e-04, ++-3.30866787525005792182e-04, ++-3.41005901218438382556e-04, ++-3.50939668651816677209e-04, ++-3.60662627388737895996e-04, ++-3.70169441144112937835e-04, ++-3.79454902703223032924e-04, ++-3.88513936763931614412e-04, ++-3.97341602700649319281e-04, ++-4.05933097248160023023e-04, ++-4.14283757104453339952e-04, ++-4.22389061450620915700e-04, ++-4.30244634386746675411e-04, ++-4.37846247282407585646e-04, ++-4.45189821040535387009e-04, ++-4.52271428273436375180e-04, ++-4.59087295389815042927e-04, ++-4.65633804591701605784e-04, ++-4.71907495780237373154e-04, ++-4.77905068369312367293e-04, ++-4.83623383006156549232e-04, ++-4.89059463197895642403e-04, ++-4.94210496843377989837e-04, ++-4.99073837669386272294e-04, ++-5.03647006570560255671e-04, ++-5.07927692852353862910e-04, ++-5.11913755376417790866e-04, ++-5.15603223607854132746e-04, ++-5.18994298563852079348e-04, ++-5.22085353663235022734e-04, ++-5.24874935476607245785e-04, ++-5.27361764376676599858e-04, ++-5.29544735088589781265e-04, ++-5.31422917139951151225e-04, ++-5.32995555210500379477e-04, ++-5.34262069381259826692e-04, ++-5.35222055283147762558e-04, ++-5.35875284145083223553e-04, ++-5.36221702741643767819e-04, ++-5.36261433240417940797e-04, ++-5.35994772949250210085e-04, ++-5.35422193963616460319e-04, ++-5.34544342714442298307e-04, ++-5.33362039416725316164e-04, ++-5.31876277419383609174e-04, ++-5.30088222456788840664e-04, ++-5.27999211802546121117e-04, ++-5.25610753326072018335e-04, ++-5.22924524452632929344e-04, ++-5.19942371027533258195e-04, ++-5.16666306085201390737e-04, ++-5.13098508523981305419e-04, ++-5.09241321687478316720e-04, ++-5.05097251853375752567e-04, ++-5.00668966630677097357e-04, ++-4.95959293266389714822e-04, ++-4.90971216862717439386e-04, ++-4.85707878505841088215e-04, ++-4.80172573307527546498e-04, ++-4.74368748360683557905e-04, ++-4.68300000610171580050e-04, ++-4.61970074640185440762e-04, ++-4.55382860379525326953e-04, ++-4.48542390726171106338e-04, ++-4.41452839092643458969e-04, ++-4.34118516873516094388e-04, ++-4.26543870836773282920e-04, ++-4.18733480440457346301e-04, ++-4.10692055076295619871e-04, ++-4.02424431241824444132e-04, ++-3.93935569642999588221e-04, ++-3.85230552228620710866e-04, ++-3.76314579158696684014e-04, ++-3.67192965708273077411e-04, ++-3.57871139108791979765e-04, ++-3.48354635328699147479e-04, ++-3.38649095795268096840e-04, ++-3.28760264059559039092e-04, ++-3.18693982406488616858e-04, ++-3.08456188411998706057e-04, ++-2.98052911449364968648e-04, ++-2.87490269146621982028e-04, ++-2.76774463797361711895e-04, ++-2.65911778726769776858e-04, ++-2.54908574615198501266e-04, ++-2.43771285781356852364e-04, ++-2.32506416427293309719e-04, ++-2.21120536847362134797e-04, ++-2.09620279603374160817e-04, ++-1.98012335668160057052e-04, ++-1.86303450539779524029e-04, ++-1.74500420328618278693e-04, ++-1.62610087819718690657e-04, ++-1.50639338512448478849e-04, ++-1.38595096639894068595e-04, ++-1.26484321170500490497e-04, ++-1.14314001793776732867e-04, ++-1.02091154892787922296e-04, ++-8.98228195055708475902e-05, ++-7.75160532779040826849e-05, ++-6.51779284095440432020e-05, ++-5.28155275965366106071e-05, ++-4.04359399717151504088e-05, ++-2.80462570457926562079e-05, ++-1.56535686513557642486e-05, ++-3.26495889210444343624e-06, ++ 9.11249790054165639743e-06, ++ 2.14717412006368892899e-05, ++ 3.38057283092167403242e-05, ++ 4.61074383610954739352e-05, ++ 5.83698763150761234034e-05, ++ 7.05860769251900996464e-05, ++ 8.27491086907310743719e-05, ++ 9.48520777828465352357e-05, ++ 1.06888131945465347230e-04, ++ 1.18850464368359115953e-04, ++ 1.30732317530151336904e-04, ++ 1.42526987009093485245e-04, ++ 1.54227825259548495572e-04, ++ 1.65828245351846937858e-04, ++ 1.77321724673696056200e-04, ++ 1.88701808590856294186e-04, ++ 1.99962114065118143997e-04, ++ 2.11096333227541019164e-04, ++ 2.22098236904959408719e-04, ++ 2.32961678097786452921e-04, ++ 2.43680595407194330610e-04, ++ 2.54249016409682922994e-04, ++ 2.64661060977358164950e-04, ++ 2.74910944541823074223e-04, ++ 2.84992981300038268795e-04, ++ 2.94901587360451048966e-04, ++ 3.04631283827309126255e-04, ++ 3.14176699821949083694e-04, ++ 3.23532575438972966244e-04, ++ 3.32693764636005074025e-04, ++ 3.41655238055194434080e-04, ++ 3.50412085775090025464e-04, ++ 3.58959519991325229707e-04, ++ 3.67292877624660627292e-04, ++ 3.75407622854972045263e-04, ++ 3.83299349579812611254e-04, ++ 3.90963783796212480549e-04, ++ 3.98396785904493201929e-04, ++ 4.05594352932717237652e-04, ++ 4.12552620680778098922e-04, ++ 4.19267865782840679426e-04, ++ 4.25736507687102228546e-04, ++ 4.31955110551815945567e-04, ++ 4.37920385056580596227e-04, ++ 4.43629190127953329428e-04, ++ 4.49078534578485372587e-04, ++ 4.54265578658337963736e-04, ++ 4.59187635518681089644e-04, ++ 4.63842172586124870497e-04, ++ 4.68226812847528570376e-04, ++ 4.72339336044462119145e-04, ++ 4.76177679776842175188e-04, ++ 4.79739940515123866431e-04, ++ 4.83024374520600813590e-04, ++ 4.86029398673382302676e-04, ++ 4.88753591207665154424e-04, ++ 4.91195692353966193756e-04, ++ 4.93354604888095117816e-04, ++ 4.95229394586578497428e-04, ++ 4.96819290588439285358e-04, ++ 4.98123685663175381003e-04, ++ 4.99142136384935733613e-04, ++ 4.99874363212820149900e-04, ++ 5.00320250477433235529e-04, ++ 5.00479846273746572204e-04, ++ 5.00353362260458648866e-04, ++ 4.99941173366037620342e-04, ++ 4.99243817401748952133e-04, ++ 4.98261994581954289173e-04, ++ 4.96996566952077824426e-04, ++ 4.95448557724650537858e-04, ++ 4.93619150523917594661e-04, ++ 4.91509688539529211379e-04, ++ 4.89121673589913252660e-04, ++ 4.86456765095920123584e-04, ++ 4.83516778965485997076e-04, ++ 4.80303686389979968101e-04, ++ 4.76819612553058206749e-04, ++ 4.73066835252845254919e-04, ++ 4.69047783438315086732e-04, ++ 4.64765035660812749103e-04, ++ 4.60221318441676426666e-04, ++ 4.55419504556999951966e-04, ++ 4.50362611240582178668e-04, ++ 4.45053798306218380970e-04, ++ 4.39496366190426988700e-04, ++ 4.33693753916839246001e-04, ++ 4.27649536983611762604e-04, ++ 4.21367425174935209421e-04, ++ 4.14851260298147500507e-04, ++ 4.08105013847745185657e-04, ++ 4.01132784597763502807e-04, ++ 3.93938796123864838888e-04, ++ 3.86527394256778707507e-04, ++ 3.78903044468504332596e-04, ++ 3.71070329192896123955e-04, ++ 3.63033945082216335121e-04, ++ 3.54798700201316714441e-04, ++ 3.46369511160995113223e-04, ++ 3.37751400192573319938e-04, ++ 3.28949492164903488020e-04, ++ 3.19969011546054665687e-04, ++ 3.10815279311211242839e-04, ++ 3.01493709798685276691e-04, ++ 2.92009807515892561881e-04, ++ 2.82369163897162314333e-04, ++ 2.72577454015293597824e-04, ++ 2.62640433248783711044e-04, ++ 2.52563933906683622723e-04, ++ 2.42353861813065601894e-04, ++ 2.32016192853029426611e-04, ++ 2.21556969482438587647e-04, ++ 2.10982297203188133052e-04, ++ 2.00298341006229532702e-04, ++ 1.89511321784351343799e-04, ++ 1.78627512716812605594e-04, ++ 1.67653235627924536433e-04, ++ 1.56594857321689550278e-04, ++ 1.45458785894609618538e-04, ++ 1.34251467028869596798e-04, ++ 1.22979380267843285647e-04, ++ 1.11649035276331349935e-04, ++ 1.00266968087514806969e-04, ++ 8.88397373387060364193e-05, ++ 7.73739204984463118959e-05, ++ 6.58761100865689746284e-05, ++ 5.43529098898822812845e-05, ++ 4.28109311752722368678e-05, ++ 3.12567889026958147750e-05, ++ 1.96970979400246795697e-05, ++ 8.13846928198325526361e-06, ++-3.41249372467339250558e-06, ++-1.49491991475911624329e-05, ++-2.64650702247123145554e-05, ++-3.79535491074849259605e-05, ++-4.94081005893409459882e-05, ++-6.08222158171220890705e-05, ++-7.21894159836215413640e-05, ++-8.35032559989468706153e-05, ++-9.47573281387071252556e-05, ++-1.05945265666950816461e-04, ++-1.17060746431808460001e-04, ++-1.28097496431813168485e-04, ++-1.39049293350893167628e-04, ++-1.49909970060043025702e-04, ++-1.60673418083712545501e-04, ++-1.71333591028951604061e-04, ++-1.81884507975470710237e-04, ++-1.92320256824521286943e-04, ++-2.02634997604990462535e-04, ++-2.12822965734663506043e-04, ++-2.22878475234921188562e-04, ++-2.32795921897065518930e-04, ++-2.42569786398529724757e-04, ++-2.52194637367171917153e-04, ++-2.61665134392132306407e-04, ++-2.70976030979354039815e-04, ++-2.80122177450312201570e-04, ++-2.89098523782284854127e-04, ++-2.97900122388595328931e-04, ++-3.06522130837423188374e-04, ++-3.14959814507391293315e-04, ++-3.23208549178839786662e-04, ++-3.31263823559207256243e-04, ++-3.39121241741069823911e-04, ++-3.46776525591634588071e-04, ++-3.54225517072336341072e-04, ++-3.61464180487291921601e-04, ++-3.68488604659406027153e-04, ++-3.75295005032959282966e-04, ++-3.81879725701552677659e-04, ++-3.88239241360328717068e-04, ++-3.94370159181469716065e-04, ++-4.00269220611873847385e-04, ++-4.05933303092217750898e-04, ++-4.11359421696386878559e-04, ++-4.16544730690475114351e-04, ++-4.21486525010528862399e-04, ++-4.26182241658291949011e-04, ++-4.30629461014228067349e-04, ++-4.34825908067166936634e-04, ++-4.38769453559957806933e-04, ++-4.42458115050543214063e-04, ++-4.45890057887998378632e-04, ++-4.49063596103017892164e-04, ++-4.51977193212385814410e-04, ++-4.54629462937196024159e-04, ++-4.57019169834384534831e-04, ++-4.59145229841358777558e-04, ++-4.61006710733478388374e-04, ++-4.62602832494264496789e-04, ++-4.63932967598159218692e-04, ++-4.64996641205815024796e-04, ++-4.65793531271870616534e-04, ++-4.66323468565258629059e-04, ++-4.66586436602117857111e-04, ++-4.66582571491450407916e-04, ++-4.66312161693693675614e-04, ++-4.65775647692456124232e-04, ++-4.64973621579678497197e-04, ++-4.63906826554567289656e-04, ++-4.62576156336664179227e-04, ++-4.60982654493493390190e-04, ++-4.59127513683252981222e-04, ++-4.57012074813076816290e-04, ++-4.54637826113443851636e-04, ++-4.52006402129344277314e-04, ++-4.49119582628882253825e-04, ++-4.45979291430018782647e-04, ++-4.42587595146185029237e-04, ++-4.38946701851662950556e-04, ++-4.35058959667485500768e-04, ++-4.30926855268744430933e-04, ++-4.26553012314354973531e-04, ++-4.21940189800147375659e-04, ++-4.17091280336356255796e-04, ++-4.12009308350574096971e-04, ++-4.06697428217259312686e-04, ++-4.01158922314968034977e-04, ++-3.95397199012481159307e-04, ++-3.89415790585079821338e-04, ++-3.83218351062148158623e-04, ++-3.76808654007610018769e-04, ++-3.70190590234281159936e-04, ++-3.63368165453703019507e-04, ++-3.56345497862799480068e-04, ++-3.49126815668818354065e-04, ++-3.41716454554033186291e-04, ++-3.34118855081727756696e-04, ++-3.26338560045002091647e-04, ++-3.18380211759965842631e-04, ++-3.10248549305032668161e-04, ++-3.01948405707699765559e-04, ++-2.93484705080720911091e-04, ++-2.84862459709394287826e-04, ++-2.76086767091391477574e-04, ++-2.67162806931154044997e-04, ++-2.58095838090502502794e-04, ++-2.48891195497272449746e-04, ++-2.39554287013787821662e-04, ++-2.30090590267009276020e-04, ++-2.20505649442205787147e-04, ++-2.10805072042026829309e-04, ++-2.00994525612865481291e-04, ++-1.91079734440417233063e-04, ++-1.81066476216359793653e-04, ++-1.70960578678090068449e-04, ++-1.60767916223468677233e-04, ++-1.50494406502535882537e-04, ++-1.40146006988172149195e-04, ++-1.29728711527686151094e-04, ++-1.19248546877326160043e-04, ++-1.08711569221710101099e-04, ++-9.81238606801850763708e-05, ++-8.74915258021262919313e-05, ++-7.68206880531919903462e-05, ++-6.61174862945537560044e-05, ++-5.53880712571479811158e-05, ++-4.46386020128183616507e-05, ++-3.38752424447514053707e-05, ++-2.31041577187158825475e-05, ++-1.23315107575055638581e-05, ++-1.56345872044351334759e-06, ++ 9.19385051001696058297e-06, ++ 1.99342818325943639068e-05, ++ 3.06517164204148291097e-05, ++ 4.13400552010434981019e-05, ++ 5.19932223217173526989e-05, ++ 6.26051685973046974495e-05, ++ 7.31698749393950269174e-05, ++ 8.36813557645763278318e-05, ++ 9.41336623796225205937e-05, ++ 1.04520886342181746720e-04, ++ 1.14837162794693847952e-04, ++ 1.25076673769810187576e-04, ++ 1.35233651465430277944e-04, ++ 1.45302381487516881669e-04, ++ 1.55277206058868723132e-04, ++ 1.65152527192051468401e-04, ++ 1.74922809824715685349e-04, ++ 1.84582584915542787917e-04, ++ 1.94126452499097224393e-04, ++ 2.03549084697879242812e-04, ++ 2.12845228689902707473e-04, ++ 2.22009709630148407153e-04, ++ 2.31037433524272298050e-04, ++ 2.39923390052979132632e-04, ++ 2.48662655345496428575e-04, ++ 2.57250394700618317985e-04, ++ 2.65681865253823213443e-04, ++ 2.73952418588994082733e-04, ++ 2.82057503293309968541e-04, ++ 2.89992667453910593113e-04, ++ 2.97753561094963236852e-04, ++ 3.05335938553796587460e-04, ++ 3.12735660794901402029e-04, ++ 3.19948697660284706902e-04, ++ 3.26971130055313046695e-04, ++ 3.33799152068596993118e-04, ++ 3.40429073024882096823e-04, ++ 3.46857319469846304971e-04, ++ 3.53080437085642826617e-04, ++ 3.59095092536410422437e-04, ++ 3.64898075242447582529e-04, ++ 3.70486299082366027022e-04, ++ 3.75856804022209637847e-04, ++ 3.81006757670713364344e-04, ++ 3.85933456759954328450e-04, ++ 3.90634328550441736316e-04, ++ 3.95106932160183021464e-04, ++ 3.99348959816850238372e-04, ++ 4.03358238032495769118e-04, ++ 4.07132728700219297200e-04, ++ 4.10670530112230828569e-04, ++ 4.13969877898831897789e-04, ++ 4.17029145887845879240e-04, ++ 4.19846846884104163249e-04, ++ 4.22421633368623200468e-04, ++ 4.24752298117164013222e-04, ++ 4.26837774737901984833e-04, ++ 4.28677138127993610176e-04, ++ 4.30269604848864133020e-04, ++ 4.31614533420087809028e-04, ++ 4.32711424531789182885e-04, ++ 4.33559921175517891476e-04, ++ 4.34159808693626808693e-04, ++ 4.34511014747204218304e-04, ++ 4.34613609202668001435e-04, ++ 4.34467803937177638515e-04, ++ 4.34073952563060591527e-04, ++ 4.33432550071505902529e-04, ++ 4.32544232395796221600e-04, ++ 4.31409775894451988712e-04, ++ 4.30030096754630268997e-04, ++ 4.28406250316232413682e-04, ++ 4.26539430317180844748e-04, ++ 4.24430968060405871753e-04, ++ 4.22082331503046044325e-04, ++ 4.19495124268545250320e-04, ++ 4.16671084582238100344e-04, ++ 4.13612084131137220516e-04, ++ 4.10320126848655590979e-04, ++ 4.06797347625035990524e-04, ++ 4.03046010944322816681e-04, ++ 3.99068509448671923049e-04, ++ 3.94867362431040608978e-04, ++ 3.90445214257016648927e-04, ++ 3.85804832716899566078e-04, ++ 3.80949107308997192770e-04, ++ 3.75881047455209468464e-04, ++ 3.70603780649984598967e-04, ++ 3.65120550543784417111e-04, ++ 3.59434714962230262691e-04, ++ 3.53549743862119564622e-04, ++ 3.47469217225564457226e-04, ++ 3.41196822893517369337e-04, ++ 3.34736354339987610389e-04, ++ 3.28091708388290057355e-04, ++ 3.21266882870694259894e-04, ++ 3.14265974232871717151e-04, ++ 3.07093175084575183576e-04, ++ 2.99752771698005490968e-04, ++ 2.92249141455357803153e-04, ++ 2.84586750247056946388e-04, ++ 2.76770149822231086197e-04, ++ 2.68803975092983104406e-04, ++ 2.60692941394056651970e-04, ++ 2.52441841699531203946e-04, ++ 2.44055543798067387786e-04, ++ 2.35538987428655314377e-04, ++ 2.26897181378157982660e-04, ++ 2.18135200542623168421e-04, ++ 2.09258182954089169475e-04, ++ 2.00271326774336208163e-04, ++ 1.91179887257744631369e-04, ++ 1.81989173684729625387e-04, ++ 1.72704546267654705490e-04, ++ 1.63331413031008576943e-04, ++ 1.53875226667652081989e-04, ++ 1.44341481372964688425e-04, ++ 1.34735709658744315766e-04, ++ 1.25063479148570258709e-04, ++ 1.15330389356819486019e-04, ++ 1.05542068452749301325e-04, ++ 9.57041700118449787478e-05, ++ 8.58223697561741577077e-05, ++ 7.59023622856443207175e-05, ++ 6.59498578020433471767e-05, ++ 5.59705788277444033440e-05, ++ 4.59702569209572621425e-05, ++ 3.59546293894085665843e-05, ++ 2.59294360043086512160e-05, ++ 1.59004157166498285290e-05, ++ 5.87330337721188446920e-06, ++-4.14617353701999446564e-06, ++-1.41522981889934754151e-05, ++-2.41393676379234885633e-05, ++-3.41016960841382575317e-05, ++-4.40336181005696522257e-05, ++-5.39294918490548975433e-05, ++-6.37837022796263207513e-05, ++-7.35906643109786139231e-05, ++-8.33448259903158111123e-05, ++-9.30406716307915674464e-05, ++-1.02672724924753142484e-04, ++-1.12235552031169472749e-04, ++-1.21723764635187306645e-04, ++-1.31132022978417295961e-04, ++-1.40455038858246640358e-04, ++-1.49687578594178148693e-04, ++-1.58824465959857513524e-04, ++-1.67860585079007983188e-04, ++-1.76790883283683004619e-04, ++-1.85610373933242124578e-04, ++-1.94314139192479492721e-04, ++-2.02897332767363176810e-04, ++-2.11355182596845939808e-04, ++-2.19682993499378809155e-04, ++-2.27876149772357342645e-04, ++-2.35930117743474312237e-04, ++-2.43840448272265441099e-04, ++-2.51602779200596157229e-04, ++-2.59212837750722130490e-04, ++-2.66666442869611193447e-04, ++-2.73959507518241514052e-04, ++-2.81088040904634635809e-04, ++-2.88048150659414798139e-04, ++-2.94836044952623201488e-04, ++-3.01448034550882504670e-04, ++-3.07880534813461108779e-04, ++-3.14130067626494494971e-04, ++-3.20193263274004568698e-04, ++-3.26066862245033475126e-04, ++-3.31747716975704792786e-04, ++-3.37232793525372445079e-04, ++-3.42519173185958092365e-04, ++-3.47604054023637506869e-04, ++-3.52484752352054538874e-04, ++-3.57158704136308719976e-04, ++-3.61623466326981902238e-04, ++-3.65876718123521590606e-04, ++-3.69916262166333537249e-04, ++-3.73740025656983437721e-04, ++-3.77346061405942046450e-04, ++-3.80732548807360233426e-04, ++-3.83897794740389560527e-04, ++-3.86840234396619738182e-04, ++-3.89558432033239830650e-04, ++-3.92051081651568350539e-04, ++-3.94317007600659507997e-04, ++-3.96355165105705619343e-04, ++-3.98164640721032441449e-04, ++-3.99744652707502629626e-04, ++-4.01094551334191251613e-04, ++-4.02213819104267004522e-04, ++-4.03102070904986001763e-04, ++-4.03759054081854400035e-04, ++-4.04184648436960245865e-04, ++-4.04378866151571740410e-04, ++-4.04341851633132352058e-04, ++-4.04073881286819201839e-04, ++-4.03575363211878201074e-04, ++-4.02846836823000703422e-04, ++-4.01888972397027575446e-04, ++-4.00702570545332346658e-04, ++-3.99288561612268872933e-04, ++-3.97648005000088408580e-04, ++-3.95782088420835174210e-04, ++-3.93692127075682019467e-04, ++-3.91379562762282434078e-04, ++-3.88845962910724810089e-04, ++-3.86093019548719798301e-04, ++-3.83122548196679628581e-04, ++-3.79936486693416947905e-04, ++-3.76536893953195608929e-04, ++-3.72925948654929972394e-04, ++-3.69105947864348422904e-04, ++-3.65079305589995940784e-04, ++-3.60848551273959680056e-04, ++-3.56416328218264332091e-04, ++-3.51785391947902702746e-04, ++-3.46958608511509539966e-04, ++-3.41938952720719716982e-04, ++-3.36729506329282559166e-04, ++-3.31333456153044218079e-04, ++-3.25754092131937047095e-04, ++-3.19994805335147892728e-04, ++-3.14059085910667681873e-04, ++-3.07950520980461819095e-04, ++-3.01672792482518580589e-04, ++-2.95229674961088311026e-04, ++-2.88625033306340523283e-04, ++-2.81862820445018204176e-04, ++-2.74947074983157644778e-04, ++-2.67881918802505628041e-04, ++-2.60671554611964777660e-04, ++-2.53320263455520278562e-04, ++-2.45832402178220821125e-04, ++-2.38212400851451575621e-04, ++-2.30464760159363048859e-04, ++-2.22594048747734558165e-04, ++-2.14604900536931233329e-04, ++-2.06502012000535557258e-04, ++-1.98290139411133950476e-04, ++-1.89974096055152907262e-04, ++-1.81558749417992085131e-04, ++-1.73049018341384308823e-04, ++-1.64449870154523194316e-04, ++-1.55766317780646929318e-04, ++-1.47003416820761271481e-04, ++-1.38166262616194393661e-04, ++-1.29259987291687318631e-04, ++-1.20289756780731966232e-04, ++-1.11260767834878675090e-04, ++-1.02178245018739763763e-04, ++-9.30474376924268498914e-05, ++-8.38736169831565017523e-05, ++-7.46620727477739890053e-05, ++-6.54181105279376081448e-05, ++-5.61470484997162090244e-05, ++-4.68542144193485576007e-05, ++-3.75449425669173780990e-05, ++-2.82245706896867571811e-05, ++-1.88984369468525752515e-05, ++-9.57187685745089512619e-06, ++-2.50220253166946479370e-07, ++ 9.06121176221840221013e-06, ++ 1.83571098449908816895e-05, ++ 2.76321794336816537255e-05, ++ 3.68811437592135666556e-05, ++ 4.60987468417495339684e-05, ++ 5.52797564722329147621e-05, ++ 6.44189671769343854841e-05, ++ 7.35112031636342259672e-05, ++ 8.25513212473374231003e-05, ++ 9.15342137542006137590e-05, ++ 1.00454811401901069581e-04, ++ 1.09308086154850524381e-04, ++ 1.18089054052647829071e-04, ++ 1.26792778010161884652e-04, ++ 1.35414370587798690198e-04, ++ 1.43948996730092746744e-04, ++ 1.52391876471503188604e-04, ++ 1.60738287607595838752e-04, ++ 1.68983568330243670531e-04, ++ 1.77123119825359898573e-04, ++ 1.85152408831718565856e-04, ++ 1.93066970159443514676e-04, ++ 2.00862409166768096517e-04, ++ 2.08534404193699878438e-04, ++ 2.16078708951240975071e-04, ++ 2.23491154864851335540e-04, ++ 2.30767653370864866047e-04, ++ 2.37904198164594560738e-04, ++ 2.44896867398899378224e-04, ++ 2.51741825832007637496e-04, ++ 2.58435326923423880699e-04, ++ 2.64973714876783311267e-04, ++ 2.71353426628539464403e-04, ++ 2.77570993781410069266e-04, ++ 2.83623044481539374282e-04, ++ 2.89506305238360116608e-04, ++ 2.95217602686185913181e-04, ++ 3.00753865286583336493e-04, ++ 3.06112124970612023683e-04, ++ 3.11289518720129045667e-04, ++ 3.16283290087134808400e-04, ++ 3.21090790650627329848e-04, ++ 3.25709481409937177433e-04, ++ 3.30136934114071980105e-04, ++ 3.34370832526131541752e-04, ++ 3.38408973622323120626e-04, ++ 3.42249268724889273759e-04, ++ 3.45889744568388601224e-04, ++ 3.49328544298793523294e-04, ++ 3.52563928404906736999e-04, ++ 3.55594275581636054019e-04, ++ 3.58418083524750480211e-04, ++ 3.61033969656628290525e-04, ++ 3.63440671782813055999e-04, ++ 3.65637048678958849739e-04, ++ 3.67622080607960151355e-04, ++ 3.69394869767037141092e-04, ++ 3.70954640664598411879e-04, ++ 3.72300740426744327174e-04, ++ 3.73432639033317674820e-04, ++ 3.74349929483439925783e-04, ++ 3.75052327890526104696e-04, ++ 3.75539673506779519020e-04, ++ 3.75811928677284036969e-04, ++ 3.75869178723718091930e-04, ++ 3.75711631757917824750e-04, ++ 3.75339618425418329768e-04, ++ 3.74753591579224973156e-04, ++ 3.73954125884068270050e-04, ++ 3.72941917351453974382e-04, ++ 3.71717782805840797795e-04, ++ 3.70282659282345936666e-04, ++ 3.68637603356378044158e-04, ++ 3.66783790405674587840e-04, ++ 3.64722513805233164354e-04, ++ 3.62455184055677408564e-04, ++ 3.59983327845599923502e-04, ++ 3.57308587048594551976e-04, ++ 3.54432717655444305162e-04, ++ 3.51357588642338164626e-04, ++ 3.48085180775715128960e-04, ++ 3.44617585354531092562e-04, ++ 3.40957002890739319448e-04, ++ 3.37105741728795874762e-04, ++ 3.33066216605056779430e-04, ++ 3.28840947147959132123e-04, ++ 3.24432556319903108322e-04, ++ 3.19843768801808070543e-04, ++ 3.15077409321264686852e-04, ++ 3.10136400925462669617e-04, ++ 3.05023763199732222788e-04, ++ 2.99742610432934862910e-04, ++ 2.94296149730754368415e-04, ++ 2.88687679078032178367e-04, ++ 2.82920585351309613817e-04, ++ 2.76998342282779573022e-04, ++ 2.70924508376842870794e-04, ++ 2.64702724780600893301e-04, ++ 2.58336713109347953805e-04, ++ 2.51830273228646013463e-04, ++ 2.45187280994006067195e-04, ++ 2.38411685949818300109e-04, ++ 2.31507508988586837694e-04, ++ 2.24478839972069534785e-04, ++ 2.17329835315641735263e-04, ++ 2.10064715537319865631e-04, ++ 2.02687762772885523210e-04, ++ 1.95203318258571319535e-04, ++ 1.87615779782783292061e-04, ++ 1.79929599108352478208e-04, ++ 1.72149279366823641443e-04, ++ 1.64279372426300712944e-04, ++ 1.56324476234388271998e-04, ++ 1.48289232137772291394e-04, ++ 1.40178322180001724197e-04, ++ 1.31996466379041452969e-04, ++ 1.23748419986174359531e-04, ++ 1.15438970727843310919e-04, ++ 1.07072936032028641199e-04, ++ 9.86551602407646912674e-05, ++ 9.01905118104061922493e-05, ++ 8.16838805012586526922e-05, ++ 7.31401745581928999611e-05, ++ 6.45643178838649969007e-05, ++ 5.59612472061890399498e-05, ++ 4.73359092415654616050e-05, ++ 3.86932578557977460893e-05, ++ 3.00382512239181022112e-05, ++ 2.13758489908508619718e-05, ++ 1.27110094344164514346e-05, ++ 4.04868663231493498654e-06, ++-4.60617236531486804862e-06, ++-1.32486303560268950814e-05, ++-2.18737627965935988274e-05, ++-3.04766606039162663141e-05, ++-3.90524329440386771335e-05, ++-4.75962100075382721592e-05, ++-5.61031457698656416577e-05, ++-6.45684207347658160750e-05, ++-7.29872446596370569490e-05, ++-8.13548592609855323026e-05, ++-8.96665408985710283294e-05, ++-9.79176032367135154100e-05, ++-1.06103399881264301701e-04, ++-1.14219326990759500518e-04, ++-1.22260825860294306986e-04, ++-1.30223385476667787367e-04, ++-1.38102545043372279022e-04, ++-1.45893896474014590726e-04, ++-1.53593086852781251627e-04, ++-1.61195820860575358014e-04, ++-1.68697863165478154166e-04, ++-1.76095040776206332271e-04, ++-1.83383245357263575124e-04, ++-1.90558435504502971490e-04, ++-1.97616638979844499871e-04, ++-2.04553954903916496199e-04, ++-2.11366555905413412665e-04, ++-2.18050690225988521003e-04, ++-2.24602683779532712486e-04, ++-2.31018942164689760873e-04, ++-2.37295952629612913335e-04, ++-2.43430285987647672136e-04, ++-2.49418598483226250720e-04, ++-2.55257633606716517576e-04, ++-2.60944223857345624935e-04, ++-2.66475292453244793581e-04, ++-2.71847854987617462523e-04, ++-2.77059021030343338027e-04, ++-2.82105995673898740650e-04, ++-2.86986081022970918215e-04, ++-2.91696677626899613517e-04, ++-2.96235285854203533526e-04, ++-3.00599507208460371525e-04, ++-3.04787045584920001685e-04, ++-3.08795708467034170797e-04, ++-3.12623408062509989137e-04, ++-3.16268162378132073644e-04, ++-3.19728096232883450198e-04, ++-3.23001442208842737963e-04, ++-3.26086541539376013193e-04, ++-3.28981844934199483665e-04, ++-3.31685913340901627425e-04, ++-3.34197418642568527033e-04, ++-3.36515144291180958672e-04, ++-3.38637985876496302052e-04, ++-3.40564951630163302489e-04, ++-3.42295162864854200010e-04, ++-3.43827854348234302102e-04, ++-3.45162374611635318009e-04, ++-3.46298186193322516443e-04, ++-3.47234865816296292464e-04, ++-3.47972104500599249514e-04, ++-3.48509707610135627091e-04, ++-3.48847594834057013122e-04, ++-3.48985800102794084098e-04, ++-3.48924471438857429929e-04, ++-3.48663870742568846994e-04, ++-3.48204373512918418428e-04, ++-3.47546468503779780370e-04, ++-3.46690757315755763122e-04, ++-3.45637953923957387536e-04, ++-3.44388884142068690732e-04, ++-3.42944485023055438931e-04, ++-3.41305804196959756622e-04, ++-3.39473999146208769290e-04, ++-3.37450336418937347962e-04, ++-3.35236190780833392174e-04, ++-3.32833044306071442267e-04, ++-3.30242485407915102851e-04, ++-3.27466207809625300430e-04, ++-3.24506009456285323105e-04, ++-3.21363791368333459424e-04, ++-3.18041556437396186544e-04, ++-3.14541408165269157499e-04, ++-3.10865549346798478083e-04, ++-3.07016280697481171256e-04, ++-3.02995999426636253033e-04, ++-2.98807197757022834691e-04, ++-2.94452461391812403239e-04, ++-2.89934467929851976634e-04, ++-2.85255985230187464677e-04, ++-2.80419869726833046429e-04, ++-2.75429064694814387804e-04, ++-2.70286598468527671825e-04, ++-2.64995582613490349589e-04, ++-2.59559210052583209764e-04, ++-2.53980753147903693268e-04, ++-2.48263561739382960028e-04, ++-2.42411061141333119629e-04, ++-2.36426750098121530837e-04, ++-2.30314198700187072744e-04, ++-2.24077046261636817458e-04, ++-2.17718999160677065480e-04, ++-2.11243828644175747709e-04, ++-2.04655368597559766909e-04, ++-1.97957513281590559125e-04, ++-1.91154215037028974876e-04, ++-1.84249481958865466954e-04, ++-1.77247375541147338725e-04, ++-1.70152008294119155233e-04, ++-1.62967541334830558729e-04, ++-1.55698181952718529668e-04, ++-1.48348181151564014997e-04, ++-1.40921831169260738459e-04, ++-1.33423462976836989169e-04, ++-1.25857443758204442640e-04, ++-1.18228174371988047249e-04, ++-1.10540086797179302569e-04, ++-1.02797641563733886216e-04, ++-9.50053251698690202779e-05, ++-8.71676474874451848130e-05, ++-7.92891391569480421435e-05, ++-7.13743489735723545724e-05, ++-6.34278412659133373520e-05, ++-5.54541932687728470635e-05, ++-4.74579924915896622650e-05, ++-3.94438340839858202430e-05, ++-3.14163182000519927554e-05, ++-2.33800473626161515084e-05, ++-1.53396238292672757364e-05, ++-7.29964696164099043725e-06, ++ 7.35289400800058785423e-07, ++ 8.76059956072690135676e-06, ++ 1.67717085752691440334e-05, ++ 2.47640548591994233581e-05, ++ 3.27330927774992179306e-05, ++ 4.06742952258349121995e-05, ++ 4.85831561974826067188e-05, ++ 5.64551933352481954465e-05, ++ 6.42859504669411802903e-05, ++ 7.20710001229515570022e-05, ++ 7.98059460346407204163e-05, ++ 8.74864256117493171517e-05, ++ 9.51081123980788522947e-05, ++ 1.02666718503417308400e-04, ++ 1.10157997010735983186e-04, ++ 1.17577744357177826798e-04, ++ 1.24921802687524364020e-04, ++ 1.32186062178827283932e-04, ++ 1.39366463334907178051e-04, ++ 1.46458999249442900882e-04, ++ 1.53459717836390693510e-04, ++ 1.60364724026482917364e-04, ++ 1.67170181928681389327e-04, ++ 1.73872316955147449263e-04, ++ 1.80467417908883949636e-04, ++ 1.86951839032647022755e-04, ++ 1.93322002018104301428e-04, ++ 1.99574397974115166953e-04, ++ 2.05705589353056221948e-04, ++ 2.11712211834139661399e-04, ++ 2.17590976162706123713e-04, ++ 2.23338669944412427466e-04, ++ 2.28952159393546036611e-04, ++ 2.34428391034224761335e-04, ++ 2.39764393353856245438e-04, ++ 2.44957278407680664051e-04, ++ 2.50004243373813900102e-04, ++ 2.54902572057763023537e-04, ++ 2.59649636345685814673e-04, ++ 2.64242897605613895860e-04, ++ 2.68679908035895302198e-04, ++ 2.72958311960145715448e-04, ++ 2.77075847068031439532e-04, ++ 2.81030345601230668959e-04, ++ 2.84819735483968607473e-04, ++ 2.88442041397530505187e-04, ++ 2.91895385798214199429e-04, ++ 2.95177989878195508062e-04, ++ 2.98288174468830185292e-04, ++ 3.01224360885935828203e-04, ++ 3.03985071716642170879e-04, ++ 3.06568931547421675947e-04, ++ 3.08974667632958628800e-04, ++ 3.11201110505533425424e-04, ++ 3.13247194524650732217e-04, ++ 3.15111958366658898717e-04, ++ 3.16794545454155058485e-04, ++ 3.18294204324996645328e-04, ++ 3.19610288940773337035e-04, ++ 3.20742258934658165670e-04, ++ 3.21689679798506877016e-04, ++ 3.22452223009245763068e-04, ++ 3.23029666094488715922e-04, ++ 3.23421892637434677410e-04, ++ 3.23628892221117367076e-04, ++ 3.23650760312099662532e-04, ++ 3.23487698083753741091e-04, ++ 3.23140012179301756075e-04, ++ 3.22608114414811391040e-04, ++ 3.21892521422396742613e-04, ++ 3.20993854233888264126e-04, ++ 3.19912837805281418183e-04, ++ 3.18650300482314343883e-04, ++ 3.17207173407532596471e-04, ++ 3.15584489869251980446e-04, ++ 3.13783384592866167444e-04, ++ 3.11805092974967040537e-04, ++ 3.09650950260776226895e-04, ++ 3.07322390665431383582e-04, ++ 3.04820946439691672133e-04, ++ 3.02148246880660359404e-04, ++ 2.99306017288154683001e-04, ++ 2.96296077867383965149e-04, ++ 2.93120342578621461815e-04, ++ 2.89780817934593706246e-04, ++ 2.86279601746334145390e-04, ++ 2.82618881818277357942e-04, ++ 2.78800934593397952560e-04, ++ 2.74828123749229578238e-04, ++ 2.70702898745622138645e-04, ++ 2.66427793325122298871e-04, ++ 2.62005423966893218578e-04, ++ 2.57438488295109720125e-04, ++ 2.52729763442789332178e-04, ++ 2.47882104372053313750e-04, ++ 2.42898442151831685893e-04, ++ 2.37781782193984719039e-04, ++ 2.32535202449068816293e-04, ++ 2.27161851562591142212e-04, ++ 2.21664946993031298540e-04, ++ 2.16047773092666164701e-04, ++ 2.10313679152429068835e-04, ++ 2.04466077411766494580e-04, ++ 1.98508441034933119868e-04, ++ 1.92444302054725852134e-04, ++ 1.86277249284949120503e-04, ++ 1.80010926202826978225e-04, ++ 1.73649028802625680088e-04, ++ 1.67195303421656588962e-04, ++ 1.60653544540157914395e-04, ++ 1.54027592556047951671e-04, ++ 1.47321331536073504842e-04, ++ 1.40538686944578018788e-04, ++ 1.33683623351231527059e-04, ++ 1.26760142119053490503e-04, ++ 1.19772279074078399062e-04, ++ 1.12724102158015825103e-04, ++ 1.05619709065267838215e-04, ++ 9.84632248656736166819e-05, ++ 9.12587996143574470059e-05, ++ 8.40106059500621168935e-05, ++ 7.67228366833554533723e-05, ++ 6.93997023760999396736e-05, ++ 6.20454289135817277541e-05, ++ 5.46642550706949160956e-05, ++ 4.72604300735806080519e-05, ++ 3.98382111581210927170e-05, ++ 3.24018611266886229260e-05, ++ 2.49556459045488985800e-05, ++ 1.75038320973170900537e-05, ++ 1.00506845508623119789e-05, ++ 2.60046391505357440467e-06, ++-4.84257578724628453024e-06, ++-1.22741895846601957513e-05, ++-1.96901439736055691699e-05, ++-2.70862193254132534745e-05, ++-3.44582122826427863452e-05, ++-4.18019381432365520865e-05, ++-4.91132332314092313582e-05, ++-5.63879572535800466628e-05, ++-6.36219956382819091861e-05, ++-7.08112618586212363026e-05, ++-7.79516997359988795179e-05, ++-8.50392857237956806661e-05, ++-9.20700311697229486791e-05, ++-9.90399845556698052700e-05, ++-1.05945233713539423387e-04, ++-1.12781908016172197095e-04, ++-1.19546180541878292172e-04, ++-1.26234270211473149090e-04, ++-1.32842443896610563079e-04, ++-1.39367018498237036110e-04, ++-1.45804362994017441780e-04, ++-1.52150900453594729216e-04, ++-1.58403110020568740251e-04, ++-1.64557528860099149893e-04, ++-1.70610754071058763354e-04, ++-1.76559444561685330907e-04, ++-1.82400322887701021131e-04, ++-1.88130177051889265882e-04, ++-1.93745862264151107917e-04, ++-1.99244302661073536273e-04, ++-2.04622492984076230016e-04, ++-2.09877500215226739464e-04, ++-2.15006465169834002022e-04, ++-2.20006604044963781320e-04, ++-2.24875209923037860070e-04, ++-2.29609654229712996506e-04, ++-2.34207388145253733377e-04, ++-2.38665943968643126617e-04, ++-2.42982936433764040154e-04, ++-2.47156063976803242084e-04, ++-2.51183109954370624526e-04, ++-2.55061943811678553534e-04, ++-2.58790522200035065601e-04, ++-2.62366890043213652015e-04, ++-2.65789181552087544740e-04, ++-2.69055621187019552206e-04, ++-2.72164524567514133028e-04, ++-2.75114299328679378503e-04, ++-2.77903445924066144594e-04, ++-2.80530558374482365432e-04, ++-2.82994324962458426113e-04, ++-2.85293528871928667081e-04, ++-2.87427048772961131386e-04, ++-2.89393859351164052952e-04, ++-2.91193031781574363133e-04, ++-2.92823734146810019888e-04, ++-2.94285231799317132436e-04, ++-2.95576887667566815150e-04, ++-2.96698162506095247833e-04, ++-2.97648615089306386138e-04, ++-2.98427902348986473068e-04, ++-2.99035779455541356198e-04, ++-2.99472099842951298022e-04, ++-2.99736815177487569105e-04, ++-2.99829975270314748326e-04, ++-2.99751727934055112266e-04, ++-2.99502318783477473017e-04, ++-2.99082090980496079820e-04, ++-2.98491484923676638277e-04, ++-2.97731037882504939382e-04, ++-2.96801383576682481068e-04, ++-2.95703251700761983022e-04, ++-2.94437467394450386442e-04, ++-2.93004950658959568456e-04, ++-2.91406715719765864719e-04, ++-2.89643870336288734163e-04, ++-2.87717615058818976508e-04, ++-2.85629242433306474672e-04, ++-2.83380136154447051858e-04, ++-2.80971770167645455707e-04, ++-2.78405707720416845195e-04, ++-2.75683600363831927699e-04, ++-2.72807186904635450876e-04, ++-2.69778292308697948982e-04, ++-2.66598826556476689500e-04, ++-2.63270783451207898707e-04, ++-2.59796239380568065765e-04, ++-2.56177352032518543517e-04, ++-2.52416359066249054721e-04, ++-2.48515576738865041385e-04, ++-2.44477398488780056640e-04, ++-2.40304293476628925757e-04, ++-2.35998805084586303973e-04, ++-2.31563549375006809058e-04, ++-2.27001213509300385799e-04, ++-2.22314554128057417478e-04, ++-2.17506395693240964359e-04, ++-2.12579628793644199699e-04, ++-2.07537208414486720482e-04, ++-2.02382152172165928486e-04, ++-1.97117538515386705664e-04, ++-1.91746504893500153760e-04, ++-1.86272245893312135556e-04, ++-1.80698011345398386069e-04, ++-1.75027104401053194751e-04, ++-1.69262879581007170742e-04, ++-1.63408740797064619410e-04, ++-1.57468139347822794899e-04, ++-1.51444571889650255424e-04, ++-1.45341578384115073432e-04, ++-1.39162740023062326405e-04, ++-1.32911677132557424445e-04, ++-1.26592047056915218929e-04, ++-1.20207542024052590340e-04, ++-1.13761886993405384643e-04, ++-1.07258837487659783316e-04, ++-1.00702177409562164813e-04, ++-9.40957168450681270561e-05, ++-8.74432898541086471968e-05, ++-8.07487522502475194583e-05, ++-7.40159793705156095938e-05, ++-6.72488638367082234085e-05, ++-6.04513133094537063756e-05, ++-5.36272482362472248819e-05, ++-4.67805995949890251378e-05, ++-3.99153066340006816592e-05, ++-3.30353146100565781473e-05, ++-2.61445725256313035213e-05, ++-1.92470308666743191849e-05, ++-1.23466393421882220175e-05, ++-5.44734462700067394256e-06, ++ 1.44691189122907742152e-06, ++ 8.33219635915731991185e-06, ++ 1.52045846980238205263e-05, ++ 2.20601648356691710140e-05, ++ 2.88950389290342959231e-05, ++ 3.57053255759800123258e-05, ++ 4.24871620149298346875e-05, ++ 4.92367063114172048323e-05, ++ 5.59501395300588034607e-05, ++ 6.26236678908249482520e-05, ++ 6.92535249083772849656e-05, ++ 7.58359735132689484916e-05, ++ 8.23673081538160148027e-05, ++ 8.88438568774603065845e-05, ++ 9.52619833904571407419e-05, ++ 1.01618089094736445996e-04, ++ 1.07908615100796547912e-04, ++ 1.14130044215511548540e-04, ++ 1.20278902903740668169e-04, ++ 1.26351763222651335486e-04, ++ 1.32345244727680633103e-04, ++ 1.38256016349078191072e-04, ++ 1.44080798237992946907e-04, ++ 1.49816363581082602745e-04, ++ 1.55459540382645440516e-04, ++ 1.61007213213293658063e-04, ++ 1.66456324924208517568e-04, ++ 1.71803878326033914858e-04, ++ 1.77046937831481864629e-04, ++ 1.82182631060826721089e-04, ++ 1.87208150409221387497e-04, ++ 1.92120754575244299164e-04, ++ 1.96917770049651416229e-04, ++ 2.01596592563618655673e-04, ++ 2.06154688495617809162e-04, ++ 2.10589596236331749735e-04, ++ 2.14898927510659952262e-04, ++ 2.19080368656271521873e-04, ++ 2.23131681857964108947e-04, ++ 2.27050706337181441982e-04, ++ 2.30835359496065032096e-04, ++ 2.34483638015429345178e-04, ++ 2.37993618906142247269e-04, ++ 2.41363460513226320541e-04, ++ 2.44591403472347386668e-04, ++ 2.47675771618061590050e-04, ++ 2.50614972843412405108e-04, ++ 2.53407499910435565511e-04, ++ 2.56051931211167507936e-04, ++ 2.58546931478778998018e-04, ++ 2.60891252448485638522e-04, ++ 2.63083733467921166392e-04, ++ 2.65123302056677822517e-04, ++ 2.67008974414759331969e-04, ++ 2.68739855879716155965e-04, ++ 2.70315141332255878728e-04, ++ 2.71734115550168267312e-04, ++ 2.72996153510415167677e-04, ++ 2.74100720639277955180e-04, ++ 2.75047373010480411190e-04, ++ 2.75835757491237044091e-04, ++ 2.76465611836200725413e-04, ++ 2.76936764729322759931e-04, ++ 2.77249135773662686282e-04, ++ 2.77402735429210095530e-04, ++ 2.77397664898823418430e-04, ++ 2.77234115962408846773e-04, ++ 2.76912370759493020253e-04, ++ 2.76432801520381165802e-04, ++ 2.75795870246112379866e-04, ++ 2.75002128337457571201e-04, ++ 2.74052216173225097421e-04, ++ 2.72946862638190302849e-04, ++ 2.71686884600967171015e-04, ++ 2.70273186342183185330e-04, ++ 2.68706758933346897579e-04, ++ 2.66988679566817544743e-04, ++ 2.65120110837324977557e-04, ++ 2.63102299975484803154e-04, ++ 2.60936578033862389640e-04, ++ 2.58624359026030797588e-04, ++ 2.56167139019227189586e-04, ++ 2.53566495181161690939e-04, ++ 2.50824084781579728989e-04, ++ 2.47941644149205875185e-04, ++ 2.44920987584716133307e-04, ++ 2.41764006230414186041e-04, ++ 2.38472666897310341073e-04, ++ 2.35049010850323818796e-04, ++ 2.31495152552345612000e-04, ++ 2.27813278367987374863e-04, ++ 2.24005645227630785727e-04, ++ 2.20074579252881860408e-04, ++ 2.16022474343967573742e-04, ++ 2.11851790730109416395e-04, ++ 2.07565053483680750195e-04, ++ 2.03164850999056984188e-04, ++ 1.98653833437066455227e-04, ++ 1.94034711135973993255e-04, ++ 1.89310252989946878202e-04, ++ 1.84483284795969022882e-04, ++ 1.79556687570185045640e-04, ++ 1.74533395834689777828e-04, ++ 1.69416395875703968332e-04, ++ 1.64208723974330704888e-04, ++ 1.58913464610781706397e-04, ++ 1.53533748643116163459e-04, ++ 1.48072751461745600373e-04, ++ 1.42533691120615488420e-04, ++ 1.36919826446232244851e-04, ++ 1.31234455125635378044e-04, ++ 1.25480911774428335794e-04, ++ 1.19662565986003067314e-04, ++ 1.13782820363092171140e-04, ++ 1.07845108532812357350e-04, ++ 1.01852893146268084785e-04, ++ 9.58096638640913071758e-05, ++ 8.97189353288038125020e-05, ++ 8.35842451253892703041e-05, ++ 7.74091517311708171871e-05, ++ 7.11972324561945549498e-05, ++ 6.49520813753084395436e-05, ++ 5.86773072531284785184e-05, ++ 5.23765314630894333252e-05, ++ 4.60533859017605735615e-05, ++ 3.97115108997169615726e-05, ++ 3.33545531299399012877e-05, ++ 2.69861635152601212417e-05, ++ 2.06099951357281601966e-05, ++ 1.42297011374239464445e-05, ++ 7.84893264358421670118e-06, ++ 1.47133666946563786569e-06, ++-4.89944595795788563131e-06, ++-1.12597826742650033679e-05, ++-1.76060512446440944824e-05, ++-2.39346418225641322213e-05, ++-3.02419589988916038355e-05, ++-3.65244238402926538526e-05, ++-4.27784759157675114065e-05, ++-4.90005753101717809908e-05, ++-5.51872046235883968062e-05, ++-6.13348709554239443801e-05, ++-6.74401078721121943153e-05, ++-7.34994773573187349476e-05, ++-7.95095717435526355005e-05, ++-8.54670156241022589347e-05, ++-9.13684677442247916886e-05, ++-9.72106228705329827259e-05, ++-1.02990213637535249144e-04, ++-1.08704012370301582183e-04, ++-1.14348832882239030933e-04, ++-1.19921532246967561266e-04, ++-1.25419012543391523258e-04, ++-1.30838222572801670578e-04, ++-1.36176159547326554701e-04, ++-1.41429870748598893225e-04, ++-1.46596455155808636037e-04, ++-1.51673065042229072161e-04, ++-1.56656907539345593332e-04, ++-1.61545246167741111346e-04, ++-1.66335402333829893021e-04, ++-1.71024756791804714243e-04, ++-1.75610751069764359483e-04, ++-1.80090888859417295109e-04, ++-1.84462737368601463689e-04, ++-1.88723928635743296543e-04, ++-1.92872160805764557030e-04, ++-1.96905199366593993164e-04, ++-2.00820878345682555252e-04, ++-2.04617101465884017146e-04, ++-2.08291843260079455108e-04, ++-2.11843150143963964045e-04, ++-2.15269141446432097026e-04, ++-2.18568010397017243587e-04, ++-2.21738025069880467571e-04, ++-2.24777529283855221449e-04, ++-2.27684943458087584887e-04, ++-2.30458765422837560640e-04, ++-2.33097571185028482272e-04, ++-2.35600015648165144258e-04, ++-2.37964833286258476731e-04, ++-2.40190838771433997885e-04, ++-2.42276927554912959329e-04, ++-2.44222076401095133848e-04, ++-2.46025343874493635128e-04, ++-2.47685870779298261159e-04, ++-2.49202880551373695713e-04, ++-2.50575679602528446788e-04, ++-2.51803657616905742379e-04, ++-2.52886287799411761581e-04, ++-2.53823127076041447393e-04, ++-2.54613816246114423730e-04, ++-2.55258080086343225150e-04, ++-2.55755727406747662873e-04, ++-2.56106651058446010017e-04, ++-2.56310827893362850466e-04, ++-2.56368318675959138472e-04, ++-2.56279267947061176278e-04, ++-2.56043903839951736412e-04, ++-2.55662537848869153827e-04, ++-2.55135564550115290575e-04, ++-2.54463461275976690883e-04, ++-2.53646787741720056760e-04, ++-2.52686185625914012682e-04, ++-2.51582378104383988602e-04, ++-2.50336169338122934043e-04, ++-2.48948443915500688007e-04, ++-2.47420166249151312829e-04, ++-2.45752379927938354159e-04, ++-2.43946207024417992780e-04, ++-2.42002847358256754223e-04, ++-2.39923577716073371238e-04, ++-2.37709751028206703414e-04, ++-2.35362795502931025464e-04, ++-2.32884213718665853896e-04, ++-2.30275581674753719499e-04, ++-2.27538547801391219296e-04, ++-2.24674831929338742875e-04, ++-2.21686224220039661921e-04, ++-2.18574584056813192318e-04, ++-2.15341838897799910417e-04, ++-2.11989983091363462259e-04, ++-2.08521076654672306251e-04, ++-2.04937244016203435910e-04, ++-2.01240672722932391033e-04, ++-1.97433612112999371446e-04, ++-1.93518371954601639930e-04, ++-1.89497321052062165161e-04, ++-1.85372885819735596941e-04, ++-1.81147548824731936421e-04, ++-1.76823847299330738289e-04, ++-1.72404371623836980172e-04, ++-1.67891763780981287087e-04, ++-1.63288715782630906338e-04, ++-1.58597968069809712021e-04, ++-1.53822307886959517469e-04, ++-1.48964567631409072149e-04, ++-1.44027623179032189917e-04, ++-1.39014392187015984161e-04, ++-1.33927832374908250841e-04, ++-1.28770939784726684953e-04, ++-1.23546747021317972074e-04, ++-1.18258321473934703560e-04, ++-1.12908763520077224328e-04, ++-1.07501204712651167732e-04, ++-1.02038805951497883089e-04, ++-9.65247556403633775101e-05, ++-9.09622678303766927241e-05, ++-8.53545803511158610944e-05, ++-7.97049529303493834971e-05, ++-7.40166653035361572950e-05, ++-6.82930153141845771095e-05, ++-6.25373170061634808944e-05, ++-5.67528987090696620090e-05, ++-5.09431011177533815009e-05, ++-4.51112753671087087165e-05, ++-3.92607811032360062451e-05, ++-3.33949845520835634973e-05, ++-2.75172565866769451451e-05, ++-2.16309707940438413821e-05, ++-1.57395015429393948119e-05, ++-9.84622205347808669251e-06, ++-3.95450246978667291299e-06, ++ 1.93229206330573338499e-06, ++ 7.81080331823583281971e-06, ++ 1.36776818965353001598e-05, ++ 1.95295891331412940274e-05, ++ 2.53631989924010254722e-05, ++ 3.11751999544031924995e-05, ++ 3.69622968907776241966e-05, ++ 4.27212129288199275452e-05, ++ 4.84486913029018664584e-05, ++ 5.41414971921248957621e-05, ++ 5.97964195431813658947e-05, ++ 6.54102728773860912868e-05, ++ 7.09798990809431715968e-05, ++ 7.65021691772440931741e-05, ++ 8.19739850804731076412e-05, ++ 8.73922813293384121618e-05, ++ 9.27540268000407564604e-05, ++ 9.80562263975138116018e-05, ++ 1.03295922723993288585e-04, ++ 1.08470197723987624161e-04, ++ 1.13576174304741347185e-04, ++ 1.18611017931288513657e-04, ++ 1.23571938195231626964e-04, ++ 1.28456190356295279348e-04, ++ 1.33261076856053907241e-04, ++ 1.37983948802590338087e-04, ++ 1.42622207425680382412e-04, ++ 1.47173305501465306920e-04, ++ 1.51634748745910018621e-04, ++ 1.56004097176282787189e-04, ++ 1.60278966439910032374e-04, ++ 1.64457029109492771420e-04, ++ 1.68536015944279398771e-04, ++ 1.72513717116415843562e-04, ++ 1.76387983401819222569e-04, ++ 1.80156727334917880767e-04, ++ 1.83817924326707803767e-04, ++ 1.87369613745391966429e-04, ++ 1.90809899959169668648e-04, ++ 1.94136953340610880553e-04, ++ 1.97349011231975375721e-04, ++ 2.00444378871088047271e-04, ++ 2.03421430277243321921e-04, ++ 2.06278609096683117384e-04, ++ 2.09014429407214987486e-04, ++ 2.11627476481567565469e-04, ++ 2.14116407509085294883e-04, ++ 2.16479952275410651545e-04, ++ 2.18716913799805800578e-04, ++ 2.20826168929834235413e-04, ++ 2.22806668893034610273e-04, ++ 2.24657439805431047601e-04, ++ 2.26377583136560162113e-04, ++ 2.27966276130837073623e-04, ++ 2.29422772185062839910e-04, ++ 2.30746401181916479780e-04, ++ 2.31936569779289853983e-04, ++ 2.32992761655362052436e-04, ++ 2.33914537709302807530e-04, ++ 2.34701536217598021733e-04, ++ 2.35353472945890507175e-04, ++ 2.35870141216392695174e-04, ++ 2.36251411930833043378e-04, ++ 2.36497233549024313271e-04, ++ 2.36607632023086867507e-04, ++ 2.36582710687435922303e-04, ++ 2.36422650104641229310e-04, ++ 2.36127707867309972372e-04, ++ 2.35698218356151145605e-04, ++ 2.35134592454421556497e-04, ++ 2.34437317218964954776e-04, ++ 2.33606955508089235429e-04, ++ 2.32644145566544174094e-04, ++ 2.31549600567894977307e-04, ++ 2.30324108114598991807e-04, ++ 2.28968529696129264976e-04, ++ 2.27483800105504667616e-04, ++ 2.25870926814611687646e-04, ++ 2.24130989308722247937e-04, ++ 2.22265138380645918331e-04, ++ 2.20274595384963348642e-04, ++ 2.18160651452820167134e-04, ++ 2.15924666667776987477e-04, ++ 2.13568069203236673070e-04, ++ 2.11092354421993914264e-04, ++ 2.08499083938437130724e-04, ++ 2.05789884644064712763e-04, ++ 2.02966447696813575728e-04, ++ 2.00030527474900313590e-04, ++ 1.96983940495784002342e-04, ++ 1.93828564300923292208e-04, ++ 1.90566336307002704526e-04, ++ 1.87199252624317116680e-04, ++ 1.83729366843086441233e-04, ++ 1.80158788788307001969e-04, ++ 1.76489683244053914514e-04, ++ 1.72724268647881387890e-04, ++ 1.68864815756162396296e-04, ++ 1.64913646281104273863e-04, ++ 1.60873131500388584026e-04, ++ 1.56745690840089552413e-04, ++ 1.52533790431842698147e-04, ++ 1.48239941645072722306e-04, ++ 1.43866699595155821557e-04, ++ 1.39416661628403223006e-04, ++ 1.34892465784759241557e-04, ++ 1.30296789239119602255e-04, ++ 1.25632346722192602372e-04, ++ 1.20901888921826961877e-04, ++ 1.16108200865747232967e-04, ++ 1.11254100286645201583e-04, ++ 1.06342435970584441723e-04, ++ 1.01376086089681932472e-04, ++ 9.63579565200426416864e-05, ++ 9.12909791459249860338e-05, ++ 8.61781101511258242455e-05, ++ 8.10223282985787361839e-05, ++ 7.58266331991632841188e-05, ++ 7.05940435707285904570e-05, ++ 6.53275954883418709775e-05, ++ 6.00303406267707601431e-05, ++ 5.47053444962296712734e-05, ++ 4.93556846723300390086e-05, ++ 4.39844490214451387493e-05, ++ 3.85947339222574980089e-05, ++ 3.31896424847004075168e-05, ++ 2.77722827672396915886e-05, ++ 2.23457659935181742969e-05, ++ 1.69132047694604267319e-05, ++ 1.14777113016647637858e-05, ++ 6.04239561835710224983e-06, ++ 6.10363793728645020518e-07, ++-4.81528382325380808311e-06, ++-1.02314543745700456363e-05, ++-1.56350642523847494154e-05, ++-2.10230408508807413534e-05, ++-2.63923243095009231191e-05, ++-3.17398692468697033722e-05, ++-3.70626464842205185883e-05, ++-4.23576447574330595914e-05, ++-4.76218724167029767991e-05, ++-5.28523591128858801825e-05, ++-5.80461574695681123935e-05, ++-6.32003447399251964056e-05, ++-6.83120244474383017403e-05, ++-7.33783280095512028618e-05, ++-7.83964163433584703636e-05, ++-8.33634814524302451963e-05, ++-8.82767479938875655916e-05, ++-9.31334748248567243206e-05, ++-9.79309565274441714503e-05, ++-1.02666524911384672157e-04, ++-1.07337550493532478228e-04, ++-1.11941443953376520482e-04, ++-1.16475657563775984358e-04, ++-1.20937686596131455368e-04, ++-1.25325070699215711592e-04, ++-1.29635395250910385187e-04, ++-1.33866292682098157263e-04, ++-1.38015443772047713324e-04, ++-1.42080578914434722728e-04, ++-1.46059479353512834980e-04, ++-1.49949978389612786304e-04, ++-1.53749962553389324382e-04, ++-1.57457372748113794830e-04, ++-1.61070205359542604606e-04, ++-1.64586513332575895248e-04, ++-1.68004407214276350055e-04, ++-1.71322056162632199933e-04, ++-1.74537688920543577207e-04, ++-1.77649594754509306677e-04, ++-1.80656124357563160031e-04, ++-1.83555690715879498342e-04, ++-1.86346769938744346575e-04, ++-1.89027902051352861886e-04, ++-1.91597691750067656950e-04, ++-1.94054809119746906601e-04, ++-1.96397990312779409513e-04, ++-1.98626038189485975725e-04, ++-2.00737822919565348781e-04, ++-2.02732282544295099209e-04, ++-2.04608423499208415697e-04, ++-2.06365321097002875567e-04, ++-2.08002119970448036889e-04, ++-2.09518034475094608749e-04, ++-2.10912349051600370295e-04, ++-2.12184418547517878980e-04, ++-2.13333668498409933503e-04, ++-2.14359595368183043079e-04, ++-2.15261766748550323726e-04, ++-2.16039821517564244657e-04, ++-2.16693469957175179064e-04, ++-2.17222493829804320963e-04, ++-2.17626746413933055187e-04, ++-2.17906152498744288149e-04, ++-2.18060708337866669768e-04, ++-2.18090481562302831997e-04, ++-2.17995611052633665597e-04, ++-2.17776306770636030692e-04, ++-2.17432849550450564774e-04, ++-2.16965590849471163170e-04, ++-2.16374952459152508069e-04, ++-2.15661426175948502115e-04, ++-2.14825573432618965528e-04, ++-2.13868024890168464437e-04, ++-2.12789479990694880424e-04, ++-2.11590706471458399373e-04, ++-2.10272539840493795068e-04, ++-2.08835882814101080193e-04, ++-2.07281704716627822619e-04, ++-2.05611040842872101015e-04, ++-2.03824991783563389154e-04, ++-2.01924722714337458607e-04, ++-1.99911462648656409243e-04, ++-1.97786503655151527006e-04, ++-1.95551200039875640226e-04, ++-1.93206967493983087581e-04, ++-1.90755282207361699176e-04, ++-1.88197679948765912066e-04, ++-1.85535755113050746619e-04, ++-1.82771159736013454056e-04, ++-1.79905602477525801202e-04, ++-1.76940847573584393148e-04, ++-1.73878713757827938272e-04, ++-1.70721073153264649115e-04, ++-1.67469850134842302650e-04, ++-1.64127020163558210364e-04, ++-1.60694608592805399886e-04, ++-1.57174689447680583382e-04, ++-1.53569384177978999996e-04, ++-1.49880860385627755508e-04, ++-1.46111330527314676282e-04, ++-1.42263050593096474329e-04, ++-1.38338318761709250845e-04, ++-1.34339474033567067698e-04, ++-1.30268894841948973309e-04, ++-1.26128997643502378410e-04, ++-1.21922235488716284571e-04, ++-1.17651096573263047097e-04, ++-1.13318102771055339347e-04, ++-1.08925808149881126548e-04, ++-1.04476797470485840437e-04, ++-9.99736846699831026861e-05, ++-9.54191113304803323683e-05, ++-9.08157451338251561638e-05, ++-8.61662783033089883962e-05, ++-8.14734260333982814777e-05, ++-7.67399249081906023075e-05, ++-7.19685313096766739269e-05, ++-6.71620198166663929249e-05, ++-6.23231815953190427171e-05, ++-5.74548227822070198159e-05, ++-5.25597628608498169912e-05, ++-4.76408330326411294346e-05, ++-4.27008745831808004092e-05, ++-3.77427372447754268139e-05, ++-3.27692775562946159791e-05, ++-2.77833572210794834225e-05, ++-2.27878414640919380344e-05, ++-1.77855973889981053694e-05, ++-1.27794923363028358154e-05, ++-7.77239224340285758588e-06, ++-2.76716000750597664943e-06, ++ 2.23334614765047225155e-06, ++ 7.22627430035223622482e-06, ++ 1.22087804538059595082e-05, ++ 1.71780301524608407758e-05, ++ 2.21312000908374962855e-05, ++ 2.70654797139531880809e-05, ++ 3.19780728084379127691e-05, ++ 3.68661990834432147361e-05, ++ 4.17270957404514982554e-05, ++ 4.65580190311022323554e-05, ++ 5.13562458021581016814e-05, ++ 5.61190750267443480906e-05, ++ 6.08438293210010258259e-05, ++ 6.55278564453003783789e-05, ++ 7.01685307891888973997e-05, ++ 7.47632548392249471477e-05, ++ 7.93094606288941272312e-05, ++ 8.38046111697948801871e-05, ++ 8.82462018632895745093e-05, ++ 9.26317618918994384889e-05, ++ 9.69588555895161487196e-05, ++ 1.01225083789883730243e-04, ++ 1.05428085152447302661e-04, ++ 1.09565537464902931428e-04, ++ 1.13635158921721518338e-04, ++ 1.17634709377956067329e-04, ++ 1.21561991577586462265e-04, ++ 1.25414852355879225454e-04, ++ 1.29191183814908515468e-04, ++ 1.32888924471751327088e-04, ++ 1.36506060378661892669e-04, ++ 1.40040626214685270945e-04, ++ 1.43490706347988396978e-04, ++ 1.46854435868515841024e-04, ++ 1.50130001590280805039e-04, ++ 1.53315643022813413417e-04, ++ 1.56409653311238074644e-04, ++ 1.59410380144482617453e-04, ++ 1.62316226631138655961e-04, ++ 1.65125652142516246785e-04, ++ 1.67837173122445686060e-04, ++ 1.70449363863413175593e-04, ++ 1.72960857248622345769e-04, ++ 1.75370345459602272869e-04, ++ 1.77676580649003228304e-04, ++ 1.79878375578234217958e-04, ++ 1.81974604219625616178e-04, ++ 1.83964202322818494873e-04, ++ 1.85846167945095638082e-04, ++ 1.87619561945405119441e-04, ++ 1.89283508441830545512e-04, ++ 1.90837195232300557094e-04, ++ 1.92279874178338393460e-04, ++ 1.93610861551680866121e-04, ++ 1.94829538343613950903e-04, ++ 1.95935350536894948301e-04, ++ 1.96927809340166344414e-04, ++ 1.97806491384736336846e-04, ++ 1.98571038883713909618e-04, ++ 1.99221159753417060602e-04, ++ 1.99756627697045236825e-04, ++ 2.00177282250609553729e-04, ++ 2.00483028791162594395e-04, ++ 2.00673838507340500988e-04, ++ 2.00749748332303471193e-04, ++ 2.00710860839155866373e-04, ++ 2.00557344098951099076e-04, ++ 2.00289431501410645185e-04, ++ 1.99907421538506638011e-04, ++ 1.99411677551082736374e-04, ++ 1.98802627438700833676e-04, ++ 1.98080763332926219986e-04, ++ 1.97246641234288935590e-04, ++ 1.96300880613169869337e-04, ++ 1.95244163974890567017e-04, ++ 1.94077236389296096204e-04, ++ 1.92800904985150346445e-04, ++ 1.91416038409673633282e-04, ++ 1.89923566253578820747e-04, ++ 1.88324478441976569726e-04, ++ 1.86619824591544307586e-04, ++ 1.84810713334366470651e-04, ++ 1.82898311608877559096e-04, ++ 1.80883843918355590027e-04, ++ 1.78768591557429662019e-04, ++ 1.76553891807085754475e-04, ++ 1.74241137098672801628e-04, ++ 1.71831774147425040116e-04, ++ 1.69327303056034789413e-04, ++ 1.66729276388829827970e-04, ++ 1.64039298217118011776e-04, ++ 1.61259023136285878450e-04, ++ 1.58390155255254730902e-04, ++ 1.55434447158867309821e-04, ++ 1.52393698843932419136e-04, ++ 1.49269756629439789971e-04, ++ 1.46064512041690788922e-04, ++ 1.42779900675020699667e-04, ++ 1.39417901028690864249e-04, ++ 1.35980533320795114868e-04, ++ 1.32469858279776427946e-04, ++ 1.28887975914319409792e-04, ++ 1.25237024262341641208e-04, ++ 1.21519178119826532425e-04, ++ 1.17736647750260424580e-04, ++ 1.13891677575382762027e-04, ++ 1.09986544848155620062e-04, ++ 1.06023558308557749072e-04, ++ 1.02005056823126766924e-04, ++ 9.79334080089949563690e-05, ++ 9.38110068432369283674e-05, ++ 8.96402742583390368340e-05, ++ 8.54236557246172082802e-05, ++ 8.11636198204074375134e-05, ++ 7.68626567908638934834e-05, ++ 7.25232770962033334184e-05, ++ 6.81480099502408253210e-05, ++ 6.37394018500648417607e-05, ++ 5.93000150977037791236e-05, ++ 5.48324263146410183461e-05, ++ 5.03392249500377099197e-05, ++ 4.58230117835234620669e-05, ++ 4.12863974234202202882e-05, ++ 3.67320008012637997784e-05, ++ 3.21624476634885960824e-05, ++ 2.75803690611435845046e-05, ++ 2.29883998385047982199e-05, ++ 1.83891771214516705382e-05, ++ 1.37853388064824855514e-05, ++ 9.17952205116795011679e-06, ++ 4.57436176706797238011e-06, ++-2.75108842579818438910e-08, ++-4.62346999106136241029e-06, ++-9.21089638641225220430e-06, ++-1.37871791373255400920e-05, ++-1.83497170273250301319e-05, ++-2.28959200315399970119e-05, ++-2.74232107835103849100e-05, ++-3.19290260328724777978e-05, ++-3.64108180931019818124e-05, ++-4.08660562784996536732e-05, ++-4.52922283295994015603e-05, ++-4.96868418262625327142e-05, ++-5.40474255875064181487e-05, ++-5.83715310574944550438e-05, ++-6.26567336767544860471e-05, ++-6.69006342379224212954e-05, ++-7.11008602252454944507e-05, ++-7.52550671370984356097e-05, ++-7.93609397907785223342e-05, ++-8.34161936088556751033e-05, ++-8.74185758863736857033e-05, ++-9.13658670381457783342e-05, ++-9.52558818255899069152e-05, ++-9.90864705622930764172e-05, ++-1.02855520297645628824e-04, ++-1.06560955978024466816e-04, ++-1.10200741584761408303e-04, ++-1.13772881248329986426e-04, ++-1.17275420338133038616e-04, ++-1.20706446527301793710e-04, ++-1.24064090831927222123e-04, ++-1.27346528624161774851e-04, ++-1.30551980618646957209e-04, ++-1.33678713831734421146e-04, ++-1.36725042512981202628e-04, ++-1.39689329048471762296e-04, ++-1.42569984835333479116e-04, ++-1.45365471127236698399e-04, ++-1.48074299850179806918e-04, ++-1.50695034388278933371e-04, ++-1.53226290339108047649e-04, ++-1.55666736238194213047e-04, ++-1.58015094252302533938e-04, ++-1.60270140841145748061e-04, ++-1.62430707387187727537e-04, ++-1.64495680793215953231e-04, ++-1.66464004047380415832e-04, ++-1.68334676755447923760e-04, ++-1.70106755639931378401e-04, ++-1.71779355005955645377e-04, ++-1.73351647173555225515e-04, ++-1.74822862876237544423e-04, ++-1.76192291625613234839e-04, ++-1.77459282041936094012e-04, ++-1.78623242150403258857e-04, ++-1.79683639643093680336e-04, ++-1.80640002106423656165e-04, ++-1.81491917214075620078e-04, ++-1.82239032885274609931e-04, ++-1.82881057408414176473e-04, ++-1.83417759529990343371e-04, ++-1.83848968508822530749e-04, ++-1.84174574135603265346e-04, ++-1.84394526717789769034e-04, ++-1.84508837029895376297e-04, ++-1.84517576229257786137e-04, ++-1.84420875737372863242e-04, ++-1.84218927086907938075e-04, ++-1.83911981734526851434e-04, ++-1.83500350839676173650e-04, ++-1.82984405009505745514e-04, ++-1.82364574010110863959e-04, ++-1.81641346444305146679e-04, ++-1.80815269396154251801e-04, ++-1.79886948042512636280e-04, ++-1.78857045231831964091e-04, ++-1.77726281030521376285e-04, ++-1.76495432237164907125e-04, ++-1.75165331864910952826e-04, ++-1.73736868592374774480e-04, ++-1.72210986183407241141e-04, ++-1.70588682876102914121e-04, ++-1.68871010741435372948e-04, ++-1.67059075011932430324e-04, ++-1.65154033380787864348e-04, ++-1.63157095271909268353e-04, ++-1.61069521081280296517e-04, ++-1.58892621390163224591e-04, ++-1.56627756150609387950e-04, ++-1.54276333843780973348e-04, ++-1.51839810611594959108e-04, ++-1.49319689362255997572e-04, ++-1.46717518850139323847e-04, ++-1.44034892730693565204e-04, ++-1.41273448590855218087e-04, ++-1.38434866955593221692e-04, ++-1.35520870271185604229e-04, ++-1.32533221865797814620e-04, ++-1.29473724888089073738e-04, ++-1.26344221224348324251e-04, ++-1.23146590394907499066e-04, ++-1.19882748430450496667e-04, ++-1.16554646728892494570e-04, ++-1.13164270893511021972e-04, ++-1.09713639553016026698e-04, ++-1.06204803164258788938e-04, ++-1.02639842798286093709e-04, ++-9.90208689104574309690e-05, ++-9.53500200953488063907e-05, ++-9.16294618271747146219e-05, ++-8.78613851864693950078e-05, ++-8.40480055737724741525e-05, ++-8.01915614110729224086e-05, ++-7.62943128317693849017e-05, ++-7.23585403599120898779e-05, ++-6.83865435794958062077e-05, ++-6.43806397945781601344e-05, ++-6.03431626810021750013e-05, ++-5.62764609305052045107e-05, ++-5.21828968880001095782e-05, ++-4.80648451828273766406e-05, ++-4.39246913547101223052e-05, ++-3.97648304753519063080e-05, ++-3.55876657662771198705e-05, ++-3.13956072138546100360e-05, ++-2.71910701822341436737e-05, ++-2.29764740250598643260e-05, ++-1.87542406966089186175e-05, ++-1.45267933633486321363e-05, ++-1.02965550165577958658e-05, ++-6.06594708686369126855e-06, ++-1.83738806147565725218e-06, ++ 2.38670789508730654728e-06, ++ 6.60393231605029799332e-06, ++ 1.08118838022856526365e-05, ++ 1.50081693864890804819e-05, ++ 1.91904058907051211296e-05, ++ 2.33562212764937420536e-05, ++ 2.75032559869653701879e-05, ++ 3.16291642799266015692e-05, ++ 3.57316155513857358346e-05, ++ 3.98082956486727347189e-05, ++ 4.38569081724363369137e-05, ++ 4.78751757667874686011e-05, ++ 5.18608413968659121744e-05, ++ 5.58116696131162758521e-05, ++ 5.97254478015662288413e-05, ++ 6.35999874194105038012e-05, ++ 6.74331252152119678313e-05, ++ 7.12227244330430300963e-05, ++ 7.49666759998972407220e-05, ++ 7.86628996957159043685e-05, ++ 8.23093453053795327638e-05, ++ 8.59039937520326019873e-05, ++ 8.94448582111133600001e-05, ++ 9.29299852044797151680e-05, ++ 9.63574556740282402905e-05, ++ 9.97253860342133961791e-05, ++ 1.03031929202938195831e-04, ++ 1.06275275610134644190e-04, ++ 1.09453654183648506066e-04, ++ 1.12565333311777745389e-04, ++ 1.15608621781949924361e-04, ++ 1.18581869695136337068e-04, ++ 1.21483469355360853659e-04, ++ 1.24311856133939833708e-04, ++ 1.27065509307947152248e-04, ++ 1.29742952872464735155e-04, ++ 1.32342756326188934566e-04, ++ 1.34863535429971070998e-04, ++ 1.37303952937931089294e-04, ++ 1.39662719300668973499e-04, ++ 1.41938593340331764125e-04, ++ 1.44130382897093850406e-04, ++ 1.46236945446754414840e-04, ++ 1.48257188689131702477e-04, ++ 1.50190071106954631209e-04, ++ 1.52034602494970392606e-04, ++ 1.53789844459004473734e-04, ++ 1.55454910884727745025e-04, ++ 1.57028968375900465160e-04, ++ 1.58511236661886526942e-04, ++ 1.59900988974221943979e-04, ++ 1.61197552392132844234e-04, ++ 1.62400308156727989691e-04, ++ 1.63508691953843704383e-04, ++ 1.64522194165353128834e-04, ++ 1.65440360088857943638e-04, ++ 1.66262790125675229700e-04, ++ 1.66989139937054223255e-04, ++ 1.67619120568575667371e-04, ++ 1.68152498542703266729e-04, ++ 1.68589095919475644722e-04, ++ 1.68928790325348127024e-04, ++ 1.69171514950206333802e-04, ++ 1.69317258512600938907e-04, ++ 1.69366065193253035638e-04, ++ 1.69318034536926169398e-04, ++ 1.69173321322751827635e-04, ++ 1.68932135403124315375e-04, ++ 1.68594741511303550284e-04, ++ 1.68161459037872361389e-04, ++ 1.67632661776220571190e-04, ++ 1.67008777637239416583e-04, ++ 1.66290288333431385444e-04, ++ 1.65477729032657161099e-04, ++ 1.64571687981757684184e-04, ++ 1.63572806100295385775e-04, ++ 1.62481776544717680536e-04, ++ 1.61299344243187993495e-04, ++ 1.60026305401423106544e-04, ++ 1.58663506979840374144e-04, ++ 1.57211846142359855600e-04, ++ 1.55672269677209203047e-04, ++ 1.54045773390101885464e-04, ++ 1.52333401470171580496e-04, ++ 1.50536245829059009979e-04, ++ 1.48655445413586417922e-04, ++ 1.46692185492392439651e-04, ++ 1.44647696917026745639e-04, ++ 1.42523255357962074646e-04, ++ 1.40320180515933701443e-04, ++ 1.38039835309150310440e-04, ++ 1.35683625036847225554e-04, ++ 1.33252996519696450227e-04, ++ 1.30749437217595669385e-04, ++ 1.28174474325369749201e-04, ++ 1.25529673846935238340e-04, ++ 1.22816639648479919303e-04, ++ 1.20037012491233243219e-04, ++ 1.17192469044403129027e-04, ++ 1.14284720878873418933e-04, ++ 1.11315513442261188005e-04, ++ 1.08286625015946468605e-04, ++ 1.05199865654693577497e-04, ++ 1.02057076109495512093e-04, ++ 9.88601267342783304043e-05, ++ 9.56109163771139760083e-05, ++ 9.23113712565947120868e-05, ++ 8.89634438240340108539e-05, ++ 8.55691116121616991534e-05, ++ 8.21303760709912982884e-05, ++ 7.86492613915423208508e-05, ++ 7.51278133181146123365e-05, ++ 7.15680979497604612561e-05, ++ 6.79722005317787153359e-05, ++ 6.43422242377698607113e-05, ++ 6.06802889430856936094e-05, ++ 5.69885299903377532185e-05, ++ 5.32690969476886882583e-05, ++ 4.95241523606481209006e-05, ++ 4.57558704980855863662e-05, ++ 4.19664360932403064002e-05, ++ 3.81580430803206248217e-05, ++ 3.43328933276007924294e-05, ++ 3.04931953676192458200e-05, ++ 2.66411631252087834044e-05, ++ 2.27790146442161646153e-05, ++ 1.89089708134602095535e-05, ++ 1.50332540927946444229e-05, ++ 1.11540872399499682495e-05, ++ 7.27369203889113503421e-06, ++ 3.39428803041684083773e-06, ++-4.81908754276311450070e-07, ++-4.35268705634372629675e-06, ++-8.21584164763919663841e-06, ++-1.20691745839433958802e-05, ++-1.59104964523640528653e-05, ++-1.97376276122016780436e-05, ++-2.35483994285795049709e-05, ++-2.73406554981410021381e-05, ++-3.11122528661240456025e-05, ++-3.48610632341272955897e-05, ++-3.85849741578888450833e-05, ++-4.22818902344056668941e-05, ++-4.59497342777289552842e-05, ++-4.95864484827761740015e-05, ++-5.31899955765110986849e-05, ++-5.67583599558492673393e-05, ++-6.02895488116546415976e-05, ++-6.37815932381954160072e-05, ++-6.72325493274930760176e-05, ++-7.06404992478322041284e-05, ++-7.40035523060039669620e-05, ++-7.73198459925695190907e-05, ++-8.05875470096189763401e-05, ++-8.38048522804609266092e-05, ++-8.69699899406400548209e-05, ++-9.00812203098600702616e-05, ++-9.31368368441220313616e-05, ++-9.61351670676795016460e-05, ++-9.90745734842556015267e-05, ++-1.01953454467028386448e-04, ++-1.04770245126946709891e-04, ++-1.07523418158803123158e-04, ++-1.10211484664747875421e-04, ++-1.12832994954700652560e-04, ++-1.15386539323270961746e-04, ++-1.17870748802769852344e-04, ++-1.20284295891912211356e-04, ++-1.22625895259826191760e-04, ++-1.24894304424997594233e-04, ++-1.27088324408796619729e-04, ++-1.29206800363245279464e-04, ++-1.31248622172700554062e-04, ++-1.33212725029144128013e-04, ++-1.35098089980784487676e-04, ++-1.36903744453693149413e-04, ++-1.38628762746211502523e-04, ++-1.40272266495882424152e-04, ++-1.41833425118677113443e-04, ++-1.43311456220300168993e-04, ++-1.44705625979375639015e-04, ++-1.46015249502334635862e-04, ++-1.47239691149835216733e-04, ++-1.48378364834568840904e-04, ++-1.49430734290319368980e-04, ++-1.50396313312156941142e-04, ++-1.51274665967682871333e-04, ++-1.52065406779206268055e-04, ++-1.52768200876835928996e-04, ++-1.53382764122401261215e-04, ++-1.53908863204188484618e-04, ++-1.54346315702462519998e-04, ++-1.54694990125800718034e-04, ++-1.54954805918226855375e-04, ++-1.55125733437199472397e-04, ++-1.55207793902502094903e-04, ++-1.55201059316101394776e-04, ++-1.55105652353058453673e-04, ++-1.54921746223595071862e-04, ++-1.54649564506431944988e-04, ++-1.54289380953534071422e-04, ++-1.53841519266410082720e-04, ++-1.53306352844135500117e-04, ++-1.52684304503277075687e-04, ++-1.51975846169923051046e-04, ++-1.51181498544025521777e-04, ++-1.50301830736287767064e-04, ++-1.49337459877842251886e-04, ++-1.48289050702975444508e-04, ++-1.47157315105178143448e-04, ++-1.45943011666808031192e-04, ++-1.44646945162670226758e-04, ++-1.43269966037836245969e-04, ++-1.41812969860030777154e-04, ++-1.40276896746939125880e-04, ++-1.38662730768791489120e-04, ++-1.36971499326602120161e-04, ++-1.35204272506452450198e-04, ++-1.33362162410215011723e-04, ++-1.31446322463141056745e-04, ++-1.29457946698729233501e-04, ++-1.27398269021328599442e-04, ++-1.25268562446894228622e-04, ++-1.23070138322430765393e-04, ++-1.20804345524507650679e-04, ++-1.18472569637393813956e-04, ++-1.16076232111318126267e-04, ++-1.13616789401283968986e-04, ++-1.11095732087066782702e-04, ++-1.08514583974842290402e-04, ++-1.05874901181016539101e-04, ++-1.03178271198800118515e-04, ++-1.00426311948084758256e-04, ++-9.76206708091875252457e-05, ++-9.47630236410444991074e-05, ++-9.18550737843973141112e-05, ++-8.88985510506610496001e-05, ++-8.58952106969416680562e-05, ++-8.28468323879038561972e-05, ++-7.97552191450655496591e-05, ++-7.66221962841397250411e-05, ++-7.34496103410512394703e-05, ++-7.02393279872563352237e-05, ++-6.69932349350013444994e-05, ++-6.37132348331598941495e-05, ++-6.04012481542852742197e-05, ++-5.70592110735821189476e-05, ++-5.36890743402856300114e-05, ++-5.02928021423770289528e-05, ++-4.68723709650220007926e-05, ++-4.34297684435565900540e-05, ++-3.99669922116305890969e-05, ++-3.64860487451815660126e-05, ++-3.29889522029066755543e-05, ++-2.94777232639011821304e-05, ++-2.59543879631318446101e-05, ++-2.24209765254152845900e-05, ++-1.88795221985704670439e-05, ++-1.53320600864227232015e-05, ++-1.17806259822765688943e-05, ++-8.22725520364250435790e-06, ++-4.67398142876525914271e-06, ++-1.12283553561652046528e-06, ++ 2.42415555586849744280e-06, ++ 5.96497003777039182297e-06, ++ 9.49759236367494958416e-06, ++ 1.30200143930290886731e-05, ++ 1.65302365297154976124e-05, ++ 2.00262688542018995176e-05, ++ 2.35061322486258601641e-05, ++ 2.69678595141725338990e-05, ++ 3.04094964801652475677e-05, ++ 3.38291031041225136330e-05, ++ 3.72247545623280811614e-05, ++ 4.05945423301795488562e-05, ++ 4.39365752517605946421e-05, ++ 4.72489805980300616090e-05, ++ 5.05299051130391751476e-05, ++ 5.37775160475925401854e-05, ++ 5.69900021797799109010e-05, ++ 6.01655748218186950589e-05, ++ 6.33024688126045798455e-05, ++ 6.63989434955355209119e-05, ++ 6.94532836809095877094e-05, ++ 7.24638005925247566689e-05, ++ 7.54288327978053365708e-05, ++ 7.83467471210983574734e-05, ++ 8.12159395395303644084e-05, ++ 8.40348360609798490086e-05, ++ 8.68018935836787020261e-05, ++ 8.95156007369763171777e-05, ++ 9.21744787028109000904e-05, ++ 9.47770820174428766953e-05, ++ 9.73219993530192951838e-05, ++ 9.98078542785484291089e-05, ++ 1.02233305999877626346e-04, ++ 1.04597050078279252879e-04, ++ 1.06897819127260571481e-04, ++ 1.09134383487232477302e-04, ++ 1.11305551877675454743e-04, ++ 1.13410172026465080842e-04, ++ 1.15447131276023696555e-04, ++ 1.17415357165986388734e-04, ++ 1.19313817992076323833e-04, ++ 1.21141523340904152650e-04, ++ 1.22897524600417128735e-04, ++ 1.24580915445738179192e-04, ++ 1.26190832300148298968e-04, ++ 1.27726454771003749460e-04, ++ 1.29187006060312931576e-04, ++ 1.30571753349855405749e-04, ++ 1.31880008160592337128e-04, ++ 1.33111126686225034448e-04, ++ 1.34264510100741093525e-04, ++ 1.35339604839805301758e-04, ++ 1.36335902855876962966e-04, ++ 1.37252941846921911991e-04, ++ 1.38090305458667854995e-04, ++ 1.38847623460269244903e-04, ++ 1.39524571893355508502e-04, ++ 1.40120873194398874121e-04, ++ 1.40636296290376592178e-04, ++ 1.41070656667688923902e-04, ++ 1.41423816414358241448e-04, ++ 1.41695684235501812628e-04, ++ 1.41886215442108465281e-04, ++ 1.41995411913169058797e-04, ++ 1.42023322031210527672e-04, ++ 1.41970040591311803596e-04, ++ 1.41835708683687403576e-04, ++ 1.41620513549942957229e-04, ++ 1.41324688413120390503e-04, ++ 1.40948512281664279549e-04, ++ 1.40492309727460512516e-04, ++ 1.39956450638105661232e-04, ++ 1.39341349943586742142e-04, ++ 1.38647467317560966387e-04, ++ 1.37875306853443076616e-04, ++ 1.37025416715516460461e-04, ++ 1.36098388765306077238e-04, ++ 1.35094858163456845238e-04, ++ 1.34015502947381628333e-04, ++ 1.32861043584951986655e-04, ++ 1.31632242504520034906e-04, ++ 1.30329903601576123319e-04, ++ 1.28954871722338328469e-04, ++ 1.27508032124644551074e-04, ++ 1.25990309916430414392e-04, ++ 1.24402669472184333093e-04, ++ 1.22746113827731657530e-04, ++ 1.21021684053717931608e-04, ++ 1.19230458608205958028e-04, ++ 1.17373552668725822899e-04, ++ 1.15452117444264388342e-04, ++ 1.13467339467561269067e-04, ++ 1.11420439868162524316e-04, ++ 1.09312673626677319912e-04, ++ 1.07145328810660439892e-04, ++ 1.04919725792656324940e-04, ++ 1.02637216450778944853e-04, ++ 1.00299183352382616555e-04, ++ 9.79070389212828459625e-05, ++ 9.54622245890343021661e-05, ++ 9.29662099307709859563e-05, ++ 9.04204917861251337118e-05, ++ 8.78265933657491361646e-05, ++ 8.51860633439697795440e-05, ++ 8.25004749381152567740e-05, ++ 7.97714249750583101993e-05, ++ 7.70005329455285302594e-05, ++ 7.41894400467507647698e-05, ++ 7.13398082139749418204e-05, ++ 6.84533191414649809991e-05, ++ 6.55316732935233309948e-05, ++ 6.25765889061299349127e-05, ++ 5.95898009797798930746e-05, ++ 5.65730602641084840982e-05, ++ 5.35281322348962640303e-05, ++ 5.04567960640498228923e-05, ++ 4.73608435831570034977e-05, ++ 4.42420782412198123029e-05, ++ 4.11023140571756856096e-05, ++ 3.79433745677702796120e-05, ++ 3.47670917715006306549e-05, ++ 3.15753050690913554294e-05, ++ 2.83698602012252819608e-05, ++ 2.51526081840889388815e-05, ++ 2.19254042433976171740e-05, ++ 1.86901067473987712679e-05, ++ 1.54485761396172072233e-05, ++ 1.22026738718400676369e-05, ++ 8.95426133799693216720e-06, ++ 5.70519880953679468414e-06, ++ 2.45734437291689684403e-06, ++-7.87447130237725029692e-07, ++-4.02732515958524032887e-06, ++-7.26044452868275316679e-06, ++-1.04849664530539972413e-05, ++-1.36990595931614081774e-05, ++-1.69009010916851591059e-05, ++-2.00886776045228981175e-05, ++-2.32605863249292218813e-05, ++-2.64148360002174825494e-05, ++-2.95496479404527710906e-05, ++-3.26632570185692985083e-05, ++-3.57539126613519710695e-05, ++-3.88198798307268989525e-05, ++-4.18594399948131874701e-05, ++-4.48708920881937505377e-05, ++-4.78525534608703297839e-05, ++-5.08027608153759224091e-05, ++-5.37198711315230623370e-05, ++-5.66022625782771395811e-05, ++-5.94483354122496957970e-05, ++-6.22565128623159649065e-05, ++-6.50252419998696961625e-05, ++-6.77529945942363268996e-05, ++-7.04382679527763058127e-05, ++-7.30795857452109842494e-05, ++-7.56754988117607863083e-05, ++-7.82245859545587472750e-05, ++-8.07254547120429588646e-05, ++-8.31767421157772956445e-05, ++-8.55771154294189502010e-05, ++-8.79252728693081722763e-05, ++-9.02199443063830727177e-05, ++-9.24598919490082272500e-05, ++-9.46439110063570436353e-05, ++-9.67708303319964480843e-05, ++-9.88395130473318793462e-05, ++-1.00848857144579225412e-04, ++-1.02797796068976429913e-04, ++-1.04685299279854606281e-04, ++-1.06510372790377650341e-04, ++-1.08272059685596318680e-04, ++-1.09969440618577611341e-04, ++-1.11601634284353844629e-04, ++-1.13167797871448837341e-04, ++-1.14667127490753893888e-04, ++-1.16098858581540945157e-04, ++-1.17462266294409572748e-04, ++-1.18756665850985608014e-04, ++-1.19981412880174577386e-04, ++-1.21135903730876983027e-04, ++-1.22219575760907419324e-04, ++-1.23231907602096356184e-04, ++-1.24172419401388892416e-04, ++-1.25040673037858960726e-04, ++-1.25836272315542666532e-04, ++-1.26558863132016492748e-04, ++-1.27208133622654898272e-04, ++-1.27783814280521123164e-04, ++-1.28285678051853307665e-04, ++-1.28713540407127574909e-04, ++-1.29067259387689078475e-04, ++-1.29346735627960067851e-04, ++-1.29551912353247712954e-04, ++-1.29682775353174970954e-04, ++-1.29739352930806405104e-04, ++-1.29721715827507011074e-04, ++-1.29629977123626777182e-04, ++-1.29464292115094922872e-04, ++-1.29224858166029714888e-04, ++-1.28911914537480141833e-04, ++-1.28525742192432532911e-04, ++-1.28066663577224341096e-04, ++-1.27535042379524224485e-04, ++-1.26931283263051979506e-04, ++-1.26255831579210470172e-04, ++-1.25509173055851516688e-04, ++-1.24691833463355639632e-04, ++-1.23804378258269496800e-04, ++-1.22847412204727150179e-04, ++-1.21821578973907172273e-04, ++-1.20727560721779606824e-04, ++-1.19566077645420637825e-04, ++-1.18337887518172143108e-04, ++-1.17043785203959168793e-04, ++-1.15684602151032309364e-04, ++-1.14261205865508758540e-04, ++-1.12774499364983135674e-04, ++-1.11225420612612888125e-04, ++-1.09614941931962398339e-04, ++-1.07944069403014051949e-04, ++-1.06213842239701207601e-04, ++-1.04425332149347485926e-04, ++-1.02579642674402744655e-04, ++-1.00677908516879591628e-04, ++-9.87212948458993696643e-05, ++-9.67109965887680804323e-05, ++-9.46482377060114694195e-05, ++-9.25342704508053923206e-05, ++-9.03703746132478017740e-05, ++-8.81578567499270010759e-05, ++-8.58980493992450127834e-05, ++-8.35923102829684219880e-05, ++-8.12420214944795825900e-05, ++-7.88485886742140853296e-05, ++-7.64134401727725140778e-05, ++-7.39380262022039087908e-05, ++-7.14238179759623244237e-05, ++-6.88723068380450985934e-05, ++-6.62850033818259808810e-05, ++-6.36634365591029851607e-05, ++-6.10091527798890391780e-05, ++-5.83237150034378014633e-05, ++-5.56087018211295729380e-05, ++-5.28657065316302825957e-05, ++-5.00963362089557252181e-05, ++-4.73022107639477868909e-05, ++-4.44849619997154997839e-05, ++-4.16462326615831018211e-05, ++-3.87876754821360727392e-05, ++-3.59109522218197118487e-05, ++-3.30177327057781363410e-05, ++-3.01096938573906879706e-05, ++-2.71885187291101264469e-05, ++-2.42558955311136346803e-05, ++-2.13135166584285751863e-05, ++-1.83630777169545625609e-05, ++-1.54062765490442216251e-05, ++-1.24448122591593738538e-05, ++-9.48038424016769929749e-06, ++-6.51469120083589183379e-06, ++-3.54943019507466532529e-06, ++-5.86295653488527638405e-07, ++ 2.37302158221821148760e-06, ++ 5.32683522143069861928e-06, ++ 8.27346448286191381023e-06, ++ 1.12112350482972268184e-05, ++ 1.41384800113054187414e-05, ++ 1.70535408203802065375e-05, ++ 1.99547682159801403000e-05, ++ 2.28405231609389523773e-05, ++ 2.57091777637233010942e-05, ++ 2.85591161940189065772e-05, ++ 3.13887355901324983888e-05, ++ 3.41964469577007317870e-05, ++ 3.69806760592044563105e-05, ++ 3.97398642937916670619e-05, ++ 4.24724695669193537460e-05, ++ 4.51769671493239000906e-05, ++ 4.78518505248824157702e-05, ++ 5.04956322267979359933e-05, ++ 5.31068446617757945380e-05, ++ 5.56840409216389250861e-05, ++ 5.82257955819805972353e-05, ++ 6.07307054873712566403e-05, ++ 6.31973905227825399032e-05, ++ 6.56244943706810369847e-05, ++ 6.80106852534736013504e-05, ++ 7.03546566608603151554e-05, ++ 7.26551280617074665301e-05, ++ 7.49108456000490471188e-05, ++ 7.71205827748727728481e-05, ++ 7.92831411032435707121e-05, ++ 8.13973507665162628304e-05, ++ 8.34620712392105025155e-05, ++ 8.54761919002437216665e-05, ++ 8.74386326261934136023e-05, ++ 8.93483443662723540333e-05, ++ 9.12043096987145523709e-05, ++ 9.30055433682796324664e-05, ++ 9.47510928045935062712e-05, ++ 9.64400386210567564342e-05, ++ 9.80714950940618610149e-05, ++ 9.96446106222721028753e-05, ++ 1.01158568165728382656e-04, ++ 1.02612585664560169562e-04, ++ 1.04005916437090132763e-04, ++ 1.05337849557132784027e-04, ++ 1.06607710210300974068e-04, ++ 1.07814860029146553436e-04, ++ 1.08958697406971076818e-04, ++ 1.10038657790159221262e-04, ++ 1.11054213948895991334e-04, ++ 1.12004876226144938888e-04, ++ 1.12890192764771252285e-04, ++ 1.13709749712725811358e-04, ++ 1.14463171406168479332e-04, ++ 1.15150120530503418228e-04, ++ 1.15770298259229445850e-04, ++ 1.16323444370574466855e-04, ++ 1.16809337341866760875e-04, ++ 1.17227794421640891544e-04, ++ 1.17578671679441387104e-04, ++ 1.17861864033347977262e-04, ++ 1.18077305255228525620e-04, ++ 1.18224967953752292129e-04, ++ 1.18304863535199995448e-04, ++ 1.18317042142129913288e-04, ++ 1.18261592569961779611e-04, ++ 1.18138642161559509242e-04, ++ 1.17948356679904758004e-04, ++ 1.17690940158963789036e-04, ++ 1.17366634732863803995e-04, ++ 1.16975720443508680781e-04, ++ 1.16518515026772340008e-04, ++ 1.15995373677425865329e-04, ++ 1.15406688792958039944e-04, ++ 1.14752889696471350382e-04, ++ 1.14034442338837080757e-04, ++ 1.13251848980312161972e-04, ++ 1.12405647851827392831e-04, ++ 1.11496412796171015655e-04, ++ 1.10524752889300383963e-04, ++ 1.09491312042027578609e-04, ++ 1.08396768582333136470e-04, ++ 1.07241834818576963558e-04, ++ 1.06027256583881440439e-04, ++ 1.04753812761974128402e-04, ++ 1.03422314794789343279e-04, ++ 1.02033606172135439690e-04, ++ 1.00588561903744460506e-04, ++ 9.90880879740364323887e-05, ++ 9.75331207799133901139e-05, ++ 9.59246265519796495209e-05, ++ 9.42636007594733522788e-05, ++ 9.25510674993434647893e-05, ++ 9.07880788697715116788e-05, ++ 8.89757143285934223474e-05, ++ 8.71150800369563193095e-05, ++ 8.52073081886286283915e-05, ++ 8.32535563253643403313e-05, ++ 8.12550066387327429764e-05, ++ 7.92128652588326546708e-05, ++ 7.71283615303221291911e-05, ++ 7.50027472761658441352e-05, ++ 7.28372960496142743273e-05, ++ 7.06333023747593316630e-05, ++ 6.83920809761930819422e-05, ++ 6.61149659981945323883e-05, ++ 6.38033102139136647918e-05, ++ 6.14584842250172271472e-05, ++ 5.90818756522692805321e-05, ++ 5.66748883175234417645e-05, ++ 5.42389414176053005876e-05, ++ 5.17754686905652722838e-05, ++ 4.92859175748246270223e-05, ++ 4.67717483616246192265e-05, ++ 4.42344333413538523341e-05, ++ 4.16754559442534589821e-05, ++ 3.90963098759170062319e-05, ++ 3.64984982481686095644e-05, ++ 3.38835327057898264913e-05, ++ 3.12529325496060770987e-05, ++ 2.86082238564397440281e-05, ++ 2.59509385964386121227e-05, ++ 2.32826137482886975970e-05, ++ 2.06047904128203539622e-05, ++ 1.79190129255183850797e-05, ++ 1.52268279684512867372e-05, ++ 1.25297836820848089342e-05, ++ 9.82942877762201860177e-06, ++ 7.12731165015420239825e-06, ++ 4.42497949335259697511e-06, ++ 1.72397741607120027234e-06, ++-9.74152438591300545820e-07, ++-3.66787177127622279055e-06, ++-6.35564700089772787053e-06, ++-9.03595013522811150888e-06, ++-1.17072596370426850940e-05, ++-1.43680612853348429033e-05, ++-1.70168490311088741731e-05, ++-1.96521258473063757481e-05, ++-2.22724045722929874815e-05, ++-2.48762087465587318491e-05, ++-2.74620734420669071810e-05, ++-3.00285460838262985587e-05, ++-3.25741872632199556503e-05, ++-3.50975715426378017596e-05, ++-3.75972882509638620259e-05, ++-4.00719422694826037015e-05, ++-4.25201548077314798470e-05, ++-4.49405641689601653135e-05, ++-4.73318265046533437649e-05, ++-4.96926165577844057412e-05, ++-5.20216283943892467806e-05, ++-5.43175761229789356922e-05, ++-5.65791946015099025133e-05, ++-5.88052401314395777510e-05, ++-6.09944911385232351646e-05, ++-6.31457488399748983641e-05, ++-6.52578378976302012505e-05, ++-6.73296070567570273304e-05, ++-6.93599297701697614779e-05, ++-7.13477048073084426077e-05, ++-7.32918568479592438987e-05, ++-7.51913370602950043584e-05, ++-7.70451236629288198831e-05, ++-7.88522224706823078241e-05, ++-8.06116674237784532151e-05, ++-8.23225211001796784195e-05, ++-8.39838752108034195757e-05, ++-8.55948510773545134279e-05, ++-8.71546000925265052688e-05, ++-8.86623041623341395616e-05, ++-9.01171761303480768493e-05, ++-9.15184601836167176863e-05, ++-9.28654322400672107207e-05, ++-9.41574003171887131567e-05, ++-9.53937048818311668537e-05, ++-9.65737191809003779359e-05, ++-9.76968495528504664652e-05, ++-9.87625357197741252134e-05, ++-9.97702510599723062104e-05, ++-1.00719502860870411881e-04, ++-1.01609832552167786510e-04, ++-1.02440815919101530407e-04, ++-1.03212063295764626164e-04, ++-1.03923219738351186561e-04, ++-1.04573965178293452004e-04, ++-1.05164014555214358751e-04, ++-1.05693117929663829482e-04, ++-1.06161060575574886056e-04, ++-1.06567663052451822372e-04, ++-1.06912781257252219227e-04, ++-1.07196306455972030416e-04, ++-1.07418165294943403058e-04, ++-1.07578319791868081681e-04, ++-1.07676767306620711079e-04, ++-1.07713540491867520218e-04, ++-1.07688707223558459772e-04, ++-1.07602370511359431062e-04, ++-1.07454668389108225495e-04, ++-1.07245773785382550523e-04, ++-1.06975894374283873184e-04, ++-1.06645272406552399651e-04, ++-1.06254184521135326192e-04, ++-1.05802941537346746376e-04, ++-1.05291888227765690245e-04, ++-1.04721403072029775822e-04, ++-1.04091897991691806000e-04, ++-1.03403818066321226388e-04, ++-1.02657641231036926891e-04, ++-1.01853877955673766901e-04, ++-1.00993070905791316192e-04, ++-1.00075794585747357554e-04, ++-9.91026549640561086902e-05, ++-9.80742890812979042133e-05, ++-9.69913646407931124161e-05, ++-9.58545795823286168359e-05, ++-9.46646616391909589408e-05, ++-9.34223678787874924024e-05, ++-9.21284842271553308570e-05, ++-9.07838249776128224534e-05, ++-8.93892322839143330148e-05, ++-8.79455756381782092872e-05, ++-8.64537513339248380991e-05, ++-8.49146819145573397919e-05, ++-8.33293156075965769404e-05, ++-8.16986257450709826454e-05, ++-8.00236101703410545325e-05, ++-7.83052906317712431187e-05, ++-7.65447121635933332108e-05, ++-7.47429424543394473968e-05, ++-7.29010712032219468804e-05, ++-7.10202094648487806125e-05, ++-6.91014889826641889262e-05, ++-6.71460615115136803116e-05, ++-6.51550981297363063834e-05, ++-6.31297885411947681941e-05, ++-6.10713403676550390092e-05, ++-5.89809784319366008933e-05, ++-5.68599440322564117804e-05, ++-5.47094942081945308492e-05, ++-5.25309009987145816302e-05, ++-5.03254506926742041614e-05, ++-4.80944430722666716100e-05, ++-4.58391906498364391982e-05, ++-4.35610178985148694948e-05, ++-4.12612604771267081670e-05, ++-3.89412644498179452723e-05, ++-3.66023855008608539076e-05, ++-3.42459881450970870078e-05, ++-3.18734449344449372976e-05, ++-2.94861356610133087193e-05, ++-2.70854465571730438690e-05, ++-2.46727694931252419688e-05, ++-2.22495011724306296223e-05, ++-1.98170423258837072170e-05, ++-1.73767969043094321503e-05, ++-1.49301712706606661907e-05, ++-1.24785733919144050828e-05, ++-1.00234120312237155384e-05, ++-7.56609594078786384176e-06, ++-5.10803305590721484829e-06, ++-2.65062969064796876903e-06, ++-1.95289735662093879841e-07, ++ 2.25658614149781538763e-06, ++ 4.70360129302714707189e-06, ++ 7.14436388406460956736e-06, ++ 9.57748768197934699769e-06, ++ 1.20015928413035928855e-05, ++ 1.44153066838678001481e-05, ++ 1.68172644736985684973e-05, ++ 1.92061101862432256275e-05, ++ 2.15804972714890652230e-05, ++ 2.39390894105489946330e-05, ++ 2.62805612652901807722e-05, ++ 2.86035992205861757688e-05, ++ 3.09069021187789754650e-05, ++ 3.31891819859409621185e-05, ++ 3.54491647495335673412e-05, ++ 3.76855909470640991661e-05, ++ 3.98972164253476286417e-05, ++ 4.20828130299881090571e-05, ++ 4.42411692846974037292e-05, ++ 4.63710910600786401664e-05, ++ 4.84714022315057565344e-05, ++ 5.05409453257393869504e-05, ++ 5.25785821559190830470e-05, ++ 5.45831944446160030582e-05, ++ 5.65536844345369244078e-05, ++ 5.84889754866179482624e-05, ++ 6.03880126651817544857e-05, ++ 6.22497633097759614507e-05, ++ 6.40732175934516200036e-05, ++ 6.58573890671531589130e-05, ++ 6.76013151899331594073e-05, ++ 6.93040578447094631495e-05, ++ 7.09647038392890094557e-05, ++ 7.25823653923957063478e-05, ++ 7.41561806044386303671e-05, ++ 7.56853139127996218504e-05, ++ 7.71689565313425266486e-05, ++ 7.86063268739927838722e-05, ++ 7.99966709621114031078e-05, ++ 8.13392628154750729503e-05, ++ 8.26334048266602784602e-05, ++ 8.38784281186408519097e-05, ++ 8.50736928854174478216e-05, ++ 8.62185887155113381969e-05, ++ 8.73125348981630282396e-05, ++ 8.83549807120687932067e-05, ++ 8.93454056965571380595e-05, ++ 9.02833199050315720431e-05, ++ 9.11682641405671851135e-05, ++ 9.19998101735852404819e-05, ++ 9.27775609414710033911e-05, ++ 9.35011507300643465376e-05, ++ 9.41702453369411529019e-05, ++ 9.47845422164207620109e-05, ++ 9.53437706062401266714e-05, ++ 9.58476916358535753569e-05, ++ 9.62960984163175226676e-05, ++ 9.66888161117409645909e-05, ++ 9.70257019922829883106e-05, ++ 9.73066454687029886274e-05, ++ 9.75315681084497403076e-05, ++ 9.77004236333403651774e-05, ++ 9.78131978988259413559e-05, ++ 9.78699088548996316969e-05, ++ 9.78706064886931931908e-05, ++ 9.78153727488194655671e-05, ++ 9.77043214515344428731e-05, ++ 9.75375981687954049385e-05, ++ 9.73153800983090819503e-05, ++ 9.70378759156690566361e-05, ++ 9.67053256086932366224e-05, ++ 9.63180002940841964183e-05, ++ 9.58762020165379531865e-05, ++ 9.53802635304530459226e-05, ++ 9.48305480643773406665e-05, ++ 9.42274490683603826915e-05, ++ 9.35713899443812172551e-05, ++ 9.28628237600275093996e-05, ++ 9.21022329456168908045e-05, ++ 9.12901289749561102105e-05, ++ 9.04270520299548278501e-05, ++ 8.95135706492842500494e-05, ++ 8.85502813613394572714e-05, ++ 8.75378083017155033231e-05, ++ 8.64768028154355933648e-05, ++ 8.53679430442136669664e-05, ++ 8.42119334989644183860e-05, ++ 8.30095046178623384566e-05, ++ 8.17614123102081163550e-05, ++ 8.04684374863896741690e-05, ++ 7.91313855742244295563e-05, ++ 7.77510860219827716839e-05, ++ 7.63283917883946329882e-05, ++ 7.48641788199511630389e-05, ++ 7.33593455158201108654e-05, ++ 7.18148121806984416748e-05, ++ 7.02315204659344010599e-05, ++ 6.86104327992547092423e-05, ++ 6.69525318034425696596e-05, ++ 6.52588197043136263292e-05, ++ 6.35303177283451494866e-05, ++ 6.17680654903193261922e-05, ++ 5.99731203713451578997e-05, ++ 5.81465568876299857470e-05, ++ 5.62894660503753302872e-05, ++ 5.44029547171763266846e-05, ++ 5.24881449353098910931e-05, ++ 5.05461732772982176055e-05, ++ 4.85781901691450268576e-05, ++ 4.65853592116120024023e-05, ++ 4.45688564950032751967e-05, ++ 4.25298699077687427554e-05, ++ 4.04695984393985014349e-05, ++ 3.83892514779906950887e-05, ++ 3.62900481029001826128e-05, ++ 3.41732163729119983926e-05, ++ 3.20399926102781816627e-05, ++ 2.98916206811338720545e-05, ++ 2.77293512726352792174e-05, ++ 2.55544411672685861127e-05, ++ 2.33681525147488944956e-05, ++ 2.11717521018997930282e-05, ++ 1.89665106210108342917e-05, ++ 1.67537019369919437987e-05, ++ 1.45346023538229485151e-05, ++ 1.23104898806885715561e-05, ++ 1.00826434982246897416e-05, ++ 7.85234242529587054475e-06, ++ 5.62086538672328424332e-06, ++ 3.38948988238076994443e-06, ++ 1.15949145807567223944e-06, ++-1.06785702137072707871e-06, ++-3.29128609643022805093e-06, ++-5.50953043415126442282e-06, ++-7.72132954601048490098e-06, ++-9.92542850192639466761e-06, ++-1.21205786400318798465e-05, ++-1.43055382718054505098e-05, ++-1.64790733821644087950e-05, ++-1.86399583241264707630e-05, ++-2.07869765076501085866e-05, ++-2.29189210822677048591e-05, ++-2.50345956131302830444e-05, ++-2.71328147500858357817e-05, ++-2.92124048894140672726e-05, ++-3.12722048278788822620e-05, ++-3.33110664086613662642e-05, ++-3.53278551589146714283e-05, ++-3.73214509185134290983e-05, ++-3.92907484596808479252e-05, ++-4.12346580971520483842e-05, ++-4.31521062885095992652e-05, ++-4.50420362244331414815e-05, ++-4.69034084084459727392e-05, ++-4.87352012259119438489e-05, ++-5.05364115019466182167e-05, ++-5.23060550479419978189e-05, ++-5.40431671964060976313e-05, ++-5.57468033238534737064e-05, ++-5.74160393614016982132e-05, ++-5.90499722928839986262e-05, ++-6.06477206401485110371e-05, ++-6.22084249353098108415e-05, ++-6.37312481796986922324e-05, ++-6.52153762892660273948e-05, ++-6.66600185262068023343e-05, ++-6.80644079165767824100e-05, ++-6.94278016536845402323e-05, ++-7.07494814870478466295e-05, ++-7.20287540967148501693e-05, ++-7.32649514527553767347e-05, ++-7.44574311597405420022e-05, ++-7.56055767860350496235e-05, ++-7.67087981777354925789e-05, ++-7.77665317570998471846e-05, ++-7.87782408053171710489e-05, ++-7.97434157294830232507e-05, ++-8.06615743136474125027e-05, ++-8.15322619538178135472e-05, ++-8.23550518768057822480e-05, ++-8.31295453428154712148e-05, ++-8.38553718316820378541e-05, ++-8.45321892126865308053e-05, ++-8.51596838978487685485e-05, ++-8.57375709786715794677e-05, ++-8.62655943462551288645e-05, ++-8.67435267947428979536e-05, ++-8.71711701080811815620e-05, ++-8.75483551300409708427e-05, ++-8.78749418175082112241e-05, ++-8.81508192770273922871e-05, ++-8.83759057846058285928e-05, ++-8.85501487887902459777e-05, ++-8.86735248970403253620e-05, ++-8.87460398454319876341e-05, ++-8.87677284517321478442e-05, ++-8.87386545518955844984e-05, ++-8.86589109200488812183e-05, ++-8.85286191720270214433e-05, ++-8.83479296525471903935e-05, ++-8.81170213061050432417e-05, ++-8.78361015316937552991e-05, ++-8.75054060214538136477e-05, ++-8.71251985833677709175e-05, ++-8.66957709481281274576e-05, ++-8.62174425603089747113e-05, ++-8.56905603539940554595e-05, ++-8.51154985129900034952e-05, ++-8.44926582158212472655e-05, ++-8.38224673656400427703e-05, ++-8.31053803052506274724e-05, ++-8.23418775174244912257e-05, ++-8.15324653107033707304e-05, ++-8.06776754908900028181e-05, ++-7.97780650184373106007e-05, ++-7.88342156519530526523e-05, ++-7.78467335780445683635e-05, ++-7.68162490277368720107e-05, ++-7.57434158797055202611e-05, ++-7.46289112505573565791e-05, ++-7.34734350724463647960e-05, ++-7.22777096582538457334e-05, ++-7.10424792545960120905e-05, ++-6.97685095829731762810e-05, ++-6.84565873693016984378e-05, ++-6.71075198621341007877e-05, ++-6.57221343398554209113e-05, ++-6.43012776071557890780e-05, ++-6.28458154810835923102e-05, ++-6.13566322669881414808e-05, ++-5.98346302246723383829e-05, ++-5.82807290250536745514e-05, ++-5.66958651977116231350e-05, ++-5.50809915695821473340e-05, ++-5.34370766951852471703e-05, ++-5.17651042787056485015e-05, ++-5.00660725882709159050e-05, ++-4.83409938627764752253e-05, ++-4.65908937116066385552e-05, ++-4.48168105076074261466e-05, ++-4.30197947736637000340e-05, ++-4.12009085632678118496e-05, ++-3.93612248353795128467e-05, ++-3.75018268240328908462e-05, ++-3.56238074029696449125e-05, ++-3.37282684457607440684e-05, ++-3.18163201816986404395e-05, ++-2.98890805479001212680e-05, ++-2.79476745379709999822e-05, ++-2.59932335476144176260e-05, ++-2.40268947175631300377e-05, ++-2.20498002742151532848e-05, ++-2.00630968683545589837e-05, ++-1.80679349123383810435e-05, ++-1.60654679161321810180e-05, ++-1.40568518225757011658e-05, ++-1.20432443422608051199e-05, ++-1.00258042884029404491e-05, ++-8.00569091208727099719e-06, ++-5.98406323826935972361e-06, ++-3.96207940290984570201e-06, ++-1.94089599162064887166e-06, ++ 7.83326198005747898907e-08, ++ 2.09445492257301924948e-06, ++ 4.10632292949940006763e-06, ++ 6.11279282652582891513e-06, ++ 8.11272562092629197044e-06, ++ 1.01049877857409114437e-05, ++ 1.20884519001330790116e-05, ++ 1.40619972852336154977e-05, ++ 1.60245106352098204275e-05, ++ 1.79748866431337342073e-05, ++ 1.99120286213276946629e-05, ++ 2.18348491158356895975e-05, ++ 2.37422705146771266798e-05, ++ 2.56332256495490372664e-05, ++ 2.75066583906145059298e-05, ++ 2.93615242341154332678e-05, ++ 3.11967908823933051383e-05, ++ 3.30114388160605143471e-05, ++ 3.48044618580061525877e-05, ++ 3.65748677288642252687e-05, ++ 3.83216785937263849210e-05, ++ 4.00439315997342949434e-05, ++ 4.17406794042833988461e-05, ++ 4.34109906935455636926e-05, ++ 4.50539506910283595867e-05, ++ 4.66686616558951677231e-05, ++ 4.82542433707754188257e-05, ++ 4.98098336188025105076e-05, ++ 5.13345886496223527710e-05, ++ 5.28276836341212981227e-05, ++ 5.42883131076322484254e-05, ++ 5.57156914013806444015e-05, ++ 5.71090530619421132309e-05, ++ 5.84676532584898041777e-05, ++ 5.97907681776162523235e-05, ++ 6.10776954055230943694e-05, ++ 6.23277542973780997616e-05, ++ 6.35402863336491786732e-05, ++ 6.47146554632286333470e-05, ++ 6.58502484331734486145e-05, ++ 6.69464751048926757886e-05, ++ 6.80027687566194964435e-05, ++ 6.90185863720170044832e-05, ++ 6.99934089147837939756e-05, ++ 7.09267415890902172158e-05, ++ 7.18181140857647161381e-05, ++ 7.26670808140748066949e-05, ++ 7.34732211190075503587e-05, ++ 7.42361394839436268501e-05, ++ 7.49554657186243128170e-05, ++ 7.56308551323502581193e-05, ++ 7.62619886923002242643e-05, ++ 7.68485731669290054405e-05, ++ 7.73903412543740319013e-05, ++ 7.78870516958209856877e-05, ++ 7.83384893737935715909e-05, ++ 7.87444653953147782324e-05, ++ 7.91048171599420551657e-05, ++ 7.94194084126392720741e-05, ++ 7.96881292814878859675e-05, ++ 7.99108963002358391528e-05, ++ 8.00876524156968731425e-05, ++ 8.02183669800153831232e-05, ++ 8.03030357278285665534e-05, ++ 8.03416807383593541874e-05, ++ 8.03343503824849146247e-05, ++ 8.02811192548356472283e-05, ++ 8.01820880909844978159e-05, ++ 8.00373836697980867074e-05, ++ 7.98471587010282266798e-05, ++ 7.96115916982296047740e-05, ++ 7.93308868371003252356e-05, ++ 7.90052737993477842459e-05, ++ 7.86350076021916034787e-05, ++ 7.82203684136235352425e-05, ++ 7.77616613535522615110e-05, ++ 7.72592162809664708160e-05, ++ 7.67133875672632579209e-05, ++ 7.61245538558890809302e-05, ++ 7.54931178084552014299e-05, ++ 7.48195058374859282803e-05, ++ 7.41041678259918263445e-05, ++ 7.33475768340236086891e-05, ++ 7.25502287924132663235e-05, ++ 7.17126421838883761507e-05, ++ 7.08353577117746115253e-05, ++ 6.99189379564657824580e-05, ++ 6.89639670199154882456e-05, ++ 6.79710501583437364317e-05, ++ 6.69408134033987737470e-05, ++ 6.58739031720058094803e-05, ++ 6.47709858651478100500e-05, ++ 6.36327474558071720916e-05, ++ 6.24598930663620521917e-05, ++ 6.12531465356429315541e-05, ++ 6.00132499759513726788e-05, ++ 5.87409633202952744489e-05, ++ 5.74370638601181475024e-05, ++ 5.61023457738005077431e-05, ++ 5.47376196462178894200e-05, ++ 5.33437119796454611961e-05, ++ 5.19214646963013157221e-05, ++ 5.04717346328268796885e-05, ++ 4.89953930270064014403e-05, ++ 4.74933249970308410371e-05, ++ 4.59664290136169696407e-05, ++ 4.44156163652937726011e-05, ++ 4.28418106171734954413e-05, ++ 4.12459470635278838894e-05, ++ 3.96289721744912600845e-05, ++ 3.79918430372181689441e-05, ++ 3.63355267918223325723e-05, ++ 3.46610000624296407993e-05, ++ 3.29692483836776077948e-05, ++ 3.12612656229971128227e-05, ++ 2.95380533990134290555e-05, ++ 2.78006204964105713487e-05, ++ 2.60499822775738051233e-05, ++ 2.42871600914147949164e-05, ++ 2.25131806796356132906e-05, ++ 2.07290755808621738894e-05, ++ 1.89358805329046950760e-05, ++ 1.71346348735776756247e-05, ++ 1.53263809403626031776e-05, ++ 1.35121634692837809516e-05, ++ 1.16930289933384643446e-05, ++ 9.87002524082706459254e-06, ++ 8.04420053392769432833e-06, ++ 6.21660318786371497718e-06, ++ 4.38828091098144307670e-06, ++ 2.56028020614524101076e-06, ++ 7.33645773704159215729e-07, ++-1.09058008356538882663e-06, ++-2.91135805322907028961e-06, ++-4.72765240333595687151e-06, ++-6.53843156959771685090e-06, ++-8.34266873927393720254e-06, ++-1.01393424314343474083e-05, ++-1.19274370732709349764e-05, ++-1.37059435721405858846e-05, ++-1.54738598829871196378e-05, ++-1.72301915709141233841e-05, ++-1.89739523684456172069e-05, ++-2.07041647273114594839e-05, ++-2.24198603643615891102e-05, ++-2.41200808013344202745e-05, ++-2.58038778981763044563e-05, ++-2.74703143796157200874e-05, ++-2.91184643547017321143e-05, ++-3.07474138290197399233e-05, ++-3.23562612093023567895e-05, ++-3.39441178001584614038e-05, ++-3.55101082926439871944e-05, ++-3.70533712444301888567e-05, ++-3.85730595512544287501e-05, ++-4.00683409094500665032e-05, ++-4.15383982693033816007e-05, ++-4.29824302789406134098e-05, ++-4.43996517185575042359e-05, ++-4.57892939247349858053e-05, ++-4.71506052046175686584e-05, ++-4.84828512397324982693e-05, ++-4.97853154792346060619e-05, ++-5.10572995223683090350e-05, ++-5.22981234899434565362e-05, ++-5.35071263846277400461e-05, ++-5.46836664398836234187e-05, ++-5.58271214573224499331e-05, ++-5.69368891323614851295e-05, ++-5.80123873679696164230e-05, ++-5.90530545763586015842e-05, ++-6.00583499684634902521e-05, ++-6.10277538310640554767e-05, ++-6.19607677914099007560e-05, ++-6.28569150692159534649e-05, ++-6.37157407158944321529e-05, ++-6.45368118409359687801e-05, ++-6.53197178252850279385e-05, ++-6.60640705216541051321e-05, ++-6.67695044416362863812e-05, ++-6.74356769295752540719e-05, ++-6.80622683230799142623e-05, ++-6.86489821001279852154e-05, ++-6.91955450126904592642e-05, ++-6.97017072068230802637e-05, ++-7.01672423291767658176e-05, ++-7.05919476198861947256e-05, ++-7.09756439918057140982e-05, ++-7.13181760960681986961e-05, ++-7.16194123739501793333e-05, ++-7.18792450950348377767e-05, ++-7.20975903816736135316e-05, ++-7.22743882197516537879e-05, ++-7.24096024557741556067e-05, ++-7.25032207802958942548e-05, ++-7.25552546977243766621e-05, ++-7.25657394825357868065e-05, ++-7.25347341219498558274e-05, ++-7.24623212451169996162e-05, ++-7.23486070388806753713e-05, ++-7.21937211501822589683e-05, ++-7.19978165751875085875e-05, ++-7.17610695352167158104e-05, ++-7.14836793395702676862e-05, ++-7.11658682353526731877e-05, ++-7.08078812443949090743e-05, ++-7.04099859873934258306e-05, ++-6.99724724953850081566e-05, ++-6.94956530086853716552e-05, ++-6.89798617634244460098e-05, ++-6.84254547658288183589e-05, ++-6.78328095543798148277e-05, ++-6.72023249500277669805e-05, ++-6.65344207946062419579e-05, ++-6.58295376776219041525e-05, ++-6.50881366515859591205e-05, ++-6.43106989360903185575e-05, ++-6.34977256107851671055e-05, ++-6.26497372974739176162e-05, ++-6.17672738315155477485e-05, ++-6.08508939227416309091e-05, ++-5.99011748060970076221e-05, ++-5.89187118822223946605e-05, ++-5.79041183481987132707e-05, ++-5.68580248186811984187e-05, ++-5.57810789376551931251e-05, ++-5.46739449810503702100e-05, ++-5.35373034504554770174e-05, ++-5.23718506581807131213e-05, ++-5.11782983039181917171e-05, ++-4.99573730432570882465e-05, ++-4.87098160483125057073e-05, ++-4.74363825607329001348e-05, ++-4.61378414373535389293e-05, ++-4.48149746887680454615e-05, ++-4.34685770110934173059e-05, ++-4.20994553112074291123e-05, ++-4.07084282257405295205e-05, ++-3.92963256341110296946e-05, ++-3.78639881658720183844e-05, ++-3.64122667027106395048e-05, ++-3.49420218753273198247e-05, ++-3.34541235555410240970e-05, ++-3.19494503438986083817e-05, ++-3.04288890530928917170e-05, ++-2.88933341874874255505e-05, ++-2.73436874190750308462e-05, ++-2.57808570601205806739e-05, ++-2.42057575328682884756e-05, ++-2.26193088365677101494e-05, ++-2.10224360121490399698e-05, ++-1.94160686048590696543e-05, ++-1.78011401251455341182e-05, ++-1.61785875081583371295e-05, ++-1.45493505721038791060e-05, ++-1.29143714758213699049e-05, ++-1.12745941758700444585e-05, ++-9.63096388344320252515e-06, ++-7.98442652142029617504e-06, ++-6.33592818186786765829e-06, ++-4.68641458429933138496e-06, ++-3.03683053500296397801e-06, ++-1.38811938774586377356e-06, ++ 2.58777493839178202322e-07, ++ 1.90292127187864929960e-06, ++ 3.54337616759140759028e-06, ++ 5.17920999202801067562e-06, ++ 6.80949467391633912354e-06, ++ 8.43330678431570807498e-06, ++ 1.00497280577839181130e-05, ++ 1.16578459097642718917e-05, ++ 1.32567539499020862689e-05, ++ 1.48455524910031115056e-05, ++ 1.64233490533491062295e-05, ++ 1.79892588640891236808e-05, ++ 1.95424053514245014756e-05, ++ 2.10819206333345681716e-05, ++ 2.26069460005168742459e-05, ++ 2.41166323933478058403e-05, ++ 2.56101408725446344061e-05, ++ 2.70866430832949805965e-05, ++ 2.85453217125733007859e-05, ++ 2.99853709394462142215e-05, ++ 3.14059968780488809876e-05, ++ 3.28064180130436779592e-05, ++ 3.41858656273021432946e-05, ++ 3.55435842215810670545e-05, ++ 3.68788319259649065773e-05, ++ 3.81908809028492260114e-05, ++ 3.94790177412656769699e-05, ++ 4.07425438422898093392e-05, ++ 4.19807757953880351259e-05, ++ 4.31930457454549954818e-05, ++ 4.43787017503647075972e-05, ++ 4.55371081288425238044e-05, ++ 4.66676457984745168698e-05, ++ 4.77697126036755268658e-05, ++ 4.88427236334443488387e-05, ++ 4.98861115287400902485e-05, ++ 5.08993267793200968442e-05, ++ 5.18818380098863440766e-05, ++ 5.28331322553930322872e-05, ++ 5.37527152253746494555e-05, ++ 5.46401115571613411491e-05, ++ 5.54948650578534959663e-05, ++ 5.63165389349345359561e-05, ++ 5.71047160154089449252e-05, ++ 5.78589989533570669814e-05, ++ 5.85790104258065492428e-05, ++ 5.92643933168274041653e-05, ++ 5.99148108897627355894e-05, ++ 6.05299469475165509511e-05, ++ 6.11095059808236870788e-05, ++ 6.16532133044444885040e-05, ++ 6.21608151812043867963e-05, ++ 6.26320789338565816822e-05, ++ 6.30667930446937390586e-05, ++ 6.34647672428986905826e-05, ++ 6.38258325795768347542e-05, ++ 6.41498414904665125455e-05, ++ 6.44366678463023396118e-05, ++ 6.46862069908247323737e-05, ++ 6.48983757664325786518e-05, ++ 6.50731125274843654437e-05, ++ 6.52103771412599882238e-05, ++ 6.53101509766035163464e-05, ++ 6.53724368802683817540e-05, ++ 6.53972591410049980528e-05, ++ 6.53846634414262362599e-05, ++ 6.53347167976985163280e-05, ++ 6.52475074871135241571e-05, ++ 6.51231449636010796761e-05, ++ 6.49617597612497395644e-05, ++ 6.47635033859116657304e-05, ++ 6.45285481949697814485e-05, ++ 6.42570872653582068207e-05, ++ 6.39493342499302042841e-05, ++ 6.36055232222692201391e-05, ++ 6.32259085100558739911e-05, ++ 6.28107645171077595475e-05, ++ 6.23603855342008971162e-05, ++ 6.18750855388094879363e-05, ++ 6.13551979838913776489e-05, ++ 6.08010755758598702586e-05, ++ 6.02130900418846006969e-05, ++ 5.95916318866736676439e-05, ++ 5.89371101388912814706e-05, ++ 5.82499520873748857785e-05, ++ 5.75306030073172492193e-05, ++ 5.67795258765894393974e-05, ++ 5.59972010823701890950e-05, ++ 5.51841261183018495025e-05, ++ 5.43408152723015371618e-05, ++ 5.34677993052802834643e-05, ++ 5.25656251209348160261e-05, ++ 5.16348554268246720794e-05, ++ 5.06760683869446402865e-05, ++ 4.96898572660009552938e-05, ++ 4.86768300656121986501e-05, ++ 4.76376091526542401900e-05, ++ 4.65728308799746458426e-05, ++ 4.54831451997094723732e-05, ++ 4.43692152694205702067e-05, ++ 4.32317170513272638010e-05, ++ 4.20713389048248215750e-05, ++ 4.08887811725691820543e-05, ++ 3.96847557603624830438e-05, ++ 3.84599857110910642592e-05, ++ 3.72152047729705208619e-05, ++ 3.59511569623536525052e-05, ++ 3.46685961213579385467e-05, ++ 3.33682854705920874040e-05, ++ 3.20509971572010551400e-05, ++ 3.07175117985585750834e-05, ++ 2.93686180218123159854e-05, ++ 2.80051119996170835922e-05, ++ 2.66277969822622470077e-05, ++ 2.52374828265144898710e-05, ++ 2.38349855214322459531e-05, ++ 2.24211267114313739257e-05, ++ 2.09967332168798777813e-05, ++ 1.95626365525002586521e-05, ++ 1.81196724438590493929e-05, ++ 1.66686803422232323734e-05, ++ 1.52105029380648706125e-05, ++ 1.37459856734939339152e-05, ++ 1.22759762539012447631e-05, ++ 1.08013241590919135580e-05, ++ 9.32288015419072379738e-06, ++ 7.84149580059962841079e-06, ++ 6.35802296728773956217e-06, ++ 4.87331334269314813773e-06, ++ 3.38821794751525819401e-06, ++ 1.90358664867536025810e-06, ++ 4.20267674722007678397e-07, ++-1.06089286704349063181e-06, ++-2.53905147144755971960e-06, ++-4.01336771405853671665e-06, ++-5.48300472726051319248e-06, ++-6.94712967353908428204e-06, ++-8.40491421565995491089e-06, ++-9.85553498354600196257e-06, ++-1.12981740375379932287e-05, ++-1.27320193278005813889e-05, ++-1.41562651496129757108e-05, ++-1.55701125942935366840e-05, ++-1.69727699954863943171e-05, ++-1.83634533706132413357e-05, ++-1.97413868571768872317e-05, ++-2.11058031437259111299e-05, ++-2.24559438952188090413e-05, ++-2.37910601725753876787e-05, ++-2.51104128461361075818e-05, ++-2.64132730028669993332e-05, ++-2.76989223470385161768e-05, ++-2.89666535941785825052e-05, ++-3.02157708580817170672e-05, ++-3.14455900306639634365e-05, ++-3.26554391544575276863e-05, ++-3.38446587875432448227e-05, ++-3.50126023607246299988e-05, ++-3.61586365267507298072e-05, ++-3.72821415014014433467e-05, ++-3.83825113962520523994e-05, ++-3.94591545429407643156e-05, ++-4.05114938087662831479e-05, ++-4.15389669034495396562e-05, ++-4.25410266768976613630e-05, ++-4.35171414078138610380e-05, ++-4.44667950830035220650e-05, ++-4.53894876672311637202e-05, ++-4.62847353634881464551e-05, ++-4.71520708635396170122e-05, ++-4.79910435886203451676e-05, ++-4.88012199201597561809e-05, ++-4.95821834204167205301e-05, ++-5.03335350429265633945e-05, ++-5.10548933326265304408e-05, ++-5.17458946156012646414e-05, ++-5.24061931783268363742e-05, ++-5.30354614363393909939e-05, ++-5.36333900922485962647e-05, ++-5.41996882830139510762e-05, ++-5.47340837164388594079e-05, ++-5.52363227967925824054e-05, ++-5.57061707395272917836e-05, ++-5.61434116750343203787e-05, ++-5.65478487413978341881e-05, ++-5.69193041661166998697e-05, ++-5.72576193367504884379e-05, ++-5.75626548604881785863e-05, ++-5.78342906126072504132e-05, ++-5.80724257738199440486e-05, ++-5.82769788565022921634e-05, ++-5.84478877198096668589e-05, ++-5.85851095736871960683e-05, ++-5.86886209717912786239e-05, ++-5.87584177933450407718e-05, ++-5.87945152139549069526e-05, ++-5.87969476654236840492e-05, ++-5.87657687846015756232e-05, ++-5.87010513513210692091e-05, ++-5.86028872154704082165e-05, ++-5.84713872132640056231e-05, ++-5.83066810727762474998e-05, ++-5.81089173088098371331e-05, ++-5.78782631071765932274e-05, ++-5.76149041984740298956e-05, ++-5.73190447214473209757e-05, ++-5.69909070760322414208e-05, ++-5.66307317661793541358e-05, ++-5.62387772325672526141e-05, ++-5.58153196753171827195e-05, ++-5.53606528668218819548e-05, ++-5.48750879548260181830e-05, ++-5.43589532558681387997e-05, ++-5.38125940392313040217e-05, ++-5.32363723015430049873e-05, ++-5.26306665321520585781e-05, ++-5.19958714694554905247e-05, ++-5.13323978483126871185e-05, ++-5.06406721387124545189e-05, ++-4.99211362758563274877e-05, ++-4.91742473818266735545e-05, ++-4.84004774790149961978e-05, ++-4.76003131954764758258e-05, ++-4.67742554624208601633e-05, ++-4.59228192039893781543e-05, ++-4.50465330195347888644e-05, ++-4.41459388585886764659e-05, ++-4.32215916887159588432e-05, ++-4.22740591564579529368e-05, ++-4.13039212415705373426e-05, ++-4.03117699047655450996e-05, ++-3.92982087291690829157e-05, ++-3.82638525557110084044e-05, ++-3.72093271126660717248e-05, ++-3.61352686395672686765e-05, ++-3.50423235057168379857e-05, ++-3.39311478235224090556e-05, ++-3.28024070568877919004e-05, ++-3.16567756248915059525e-05, ++-3.04949365009877199171e-05, ++-2.93175808079664161425e-05, ++-2.81254074089120697057e-05, ++-2.69191224944017248270e-05, ++-2.56994391661852553642e-05, ++-2.44670770175918836234e-05, ++-2.32227617109122020126e-05, ++-2.19672245519847623529e-05, ++-2.07012020622797709220e-05, ++-1.94254355486677272565e-05, ++-1.81406706711849960521e-05, ++-1.68476570089850853130e-05, ++-1.55471476247899104671e-05, ++-1.42398986280482303988e-05, ++-1.29266687370718316063e-05, ++-1.16082188403988693324e-05, ++-1.02853115576371897586e-05, ++-8.95871080003975092416e-06, ++-7.62918133106494951846e-06, ++-6.29748832717637000583e-06, ++-4.96439693911456911849e-06, ++-3.63067185393867396159e-06, ++-2.29707685802459498842e-06, ++-9.64374401315848450426e-07, ++ 3.66674836944231519952e-07, ++ 1.69531238074935703441e-06, ++ 3.02078238789119312040e-06, ++ 4.34233207830084875904e-06, ++ 5.65921215992918806928e-06, ++ 6.97067725192901449440e-06, ++ 8.27598630488246552004e-06, ++ 9.57440301788133736832e-06, ++ 1.08651962521827093731e-05, ++ 1.21476404412087555200e-05, ++ 1.34210159967052598768e-05, ++ 1.46846097107889237831e-05, ++ 1.59377151536783862637e-05, ++ 1.71796330668853545218e-05, ++ 1.84096717516477081152e-05, ++ 1.96271474523901250152e-05, ++ 2.08313847350004374291e-05, ++ 2.20217168597138741371e-05, ++ 2.31974861483999769760e-05, ++ 2.43580443460485478093e-05, ++ 2.55027529762765186715e-05, ++ 2.66309836906033699266e-05, ++ 2.77421186114023531077e-05, ++ 2.88355506682450058473e-05, ++ 2.99106839275143976181e-05, ++ 3.09669339150908589178e-05, ++ 3.20037279319387916966e-05, ++ 3.30205053624261607144e-05, ++ 3.40167179752114232517e-05, ++ 3.49918302165381128787e-05, ++ 3.59453194957816331854e-05, ++ 3.68766764630972321086e-05, ++ 3.77854052790209193153e-05, ++ 3.86710238758958244651e-05, ++ 3.95330642109541764121e-05, ++ 4.03710725109682755916e-05, ++ 4.11846095083103026020e-05, ++ 4.19732506683146705116e-05, ++ 4.27365864078233130617e-05, ++ 4.34742223048040452049e-05, ++ 4.41857792989385563150e-05, ++ 4.48708938830692915926e-05, ++ 4.55292182854370863364e-05, ++ 4.61604206425851002231e-05, ++ 4.67641851628709925696e-05, ++ 4.73402122805066265026e-05, ++ 4.78882188000329483382e-05, ++ 4.84079380311931386409e-05, ++ 4.88991199141192096943e-05, ++ 4.93615311347864993397e-05, ++ 4.97949552306842973051e-05, ++ 5.01991926866579958816e-05, ++ 5.05740610208843503087e-05, ++ 5.09193948609473228035e-05, ++ 5.12350460099867614349e-05, ++ 5.15208835028994156444e-05, ++ 5.17767936525754493993e-05, ++ 5.20026800861617919140e-05, ++ 5.21984637713472843972e-05, ++ 5.23640830326715540628e-05, ++ 5.24994935578649676486e-05, ++ 5.26046683942319904669e-05, ++ 5.26795979350977647813e-05, ++ 5.27242898963412381865e-05, ++ 5.27387692830453080699e-05, ++ 5.27230783462991780706e-05, ++ 5.26772765301947225270e-05, ++ 5.26014404090633305310e-05, ++ 5.24956636150047901762e-05, ++ 5.23600567557668073533e-05, ++ 5.21947473230388830738e-05, ++ 5.19998795912271193358e-05, ++ 5.17756145067857189357e-05, ++ 5.15221295681833840827e-05, ++ 5.12396186965899134232e-05, ++ 5.09282920973702621955e-05, ++ 5.05883761124873977634e-05, ++ 5.02201130639010932745e-05, ++ 4.98237610880825857601e-05, ++ 4.93995939617437136368e-05, ++ 4.89479009189001211121e-05, ++ 4.84689864593871208814e-05, ++ 4.79631701489468674927e-05, ++ 4.74307864110306472431e-05, ++ 4.68721843104290958456e-05, ++ 4.62877273288830334104e-05, ++ 4.56777931328110654310e-05, ++ 4.50427733333015571236e-05, ++ 4.43830732385187975314e-05, ++ 4.36991115986785094998e-05, ++ 4.29913203437512904219e-05, ++ 4.22601443140560245420e-05, ++ 4.15060409839102542823e-05, ++ 4.07294801785067884332e-05, ++ 3.99309437841909614544e-05, ++ 3.91109254523149503578e-05, ++ 3.82699302968499331071e-05, ++ 3.74084745859401725113e-05, ++ 3.65270854275851831246e-05, ++ 3.56263004496409294844e-05, ++ 3.47066674743320204575e-05, ++ 3.37687441874715604177e-05, ++ 3.28130978025864834921e-05, ++ 3.18403047201496259048e-05, ++ 3.08509501821220885999e-05, ++ 2.98456279220141111716e-05, ++ 2.88249398106583463292e-05, ++ 2.77894954979411405727e-05, ++ 2.67399120506568739174e-05, ++ 2.56768135867345998077e-05, ++ 2.46008309060387078085e-05, ++ 2.35126011179608967452e-05, ++ 2.24127672660373206972e-05, ++ 2.13019779497730199318e-05, ++ 2.01808869439458528371e-05, ++ 1.90501528155745074983e-05, ++ 1.79104385387887921337e-05, ++ 1.67624111078244624493e-05, ++ 1.56067411483699600464e-05, ++ 1.44441025274743162915e-05, ++ 1.32751719622829946729e-05, ++ 1.21006286277736464400e-05, ++ 1.09211537637588811984e-05, ++ 9.73743028136644528262e-06, ++ 8.55014236922561691437e-06, ++ 7.35997509958635033394e-06, ++ 6.16761403459692181825e-06, ++ 4.97374483296533837542e-06, ++ 3.77905285722950647743e-06, ++ 2.58422278186008839003e-06, ++ 1.38993820241930683239e-06, ++ 1.96881245997903772338e-07, ++-9.94267816848598569217e-07, ++-2.18283095844447963890e-06, ++-3.36813277840069707876e-06, ++-4.54950088586700000424e-06, ++-5.72626627941386950107e-06, ++-6.89776372433048807836e-06, ++-8.06333212712694707145e-06, ++-9.22231490703067589279e-06, ++-1.03740603642693244191e-05, ++-1.15179220449344173161e-05, ++-1.26532591022196861730e-05, ++-1.37794366538495711072e-05, ++-1.48958261354584999990e-05, ++-1.60018056497799296184e-05, ++-1.70967603114136951952e-05, ++-1.81800825869820380861e-05, ++-1.92511726305242952264e-05, ++-2.03094386138927829864e-05, ++-2.13542970520092069756e-05, ++-2.23851731227873900821e-05, ++-2.34015009815511875976e-05, ++-2.44027240697762211102e-05, ++-2.53882954179860686225e-05, ++-2.63576779426533689202e-05, ++-2.73103447369098503218e-05, ++-2.82457793549575378290e-05, ++-2.91634760899918437553e-05, ++-3.00629402455041167019e-05, ++-3.09436883998153130820e-05, ++-3.18052486637019455554e-05, ++-3.26471609309779970515e-05, ++-3.34689771219005548241e-05, ++-3.42702614192727262341e-05, ++-3.50505904971203557973e-05, ++-3.58095537418260222574e-05, ++-3.65467534655933827146e-05, ++-3.72618051121717498101e-05, ++-3.79543374546707974228e-05, ++-3.86239927854306394216e-05, ++-3.92704270978131317837e-05, ++-3.98933102598363287456e-05, ++-4.04923261795653974715e-05, ++-4.10671729621785269976e-05, ++-4.16175630586323642046e-05, ++-4.21432234058559141441e-05, ++-4.26438955584067616068e-05, ++-4.31193358115292238756e-05, ++-4.35693153155569312869e-05, ++-4.39936201816156069303e-05, ++-4.43920515785651946397e-05, ++-4.47644258211561343495e-05, ++-4.51105744493632472049e-05, ++-4.54303442988531914885e-05, ++-4.57235975625737596506e-05, ++-4.59902118434391446694e-05, ++-4.62300801980975147932e-05, ++-4.64431111717703053654e-05, ++-4.66292288241590738816e-05, ++-4.67883727464197082162e-05, ++-4.69204980692097139592e-05, ++-4.70255754618213880035e-05, ++-4.71035911224101212042e-05, ++-4.71545467593474220552e-05, ++-4.71784595637180143891e-05, ++-4.71753621729942670049e-05, ++-4.71453026259235373810e-05, ++-4.70883443086696765927e-05, ++-4.70045658922535814004e-05, ++-4.68940612613444625227e-05, ++-4.67569394344568726790e-05, ++-4.65933244756150703129e-05, ++-4.64033553975471216042e-05, ++-4.61871860564808808737e-05, ++-4.59449850386188616159e-05, ++-4.56769355383655138421e-05, ++-4.53832352283949652812e-05, ++-4.50640961216473178623e-05, ++-4.47197444253447825278e-05, ++-4.43504203871267281252e-05, ++-4.39563781334040550529e-05, ++-4.35378855000395927045e-05, ++-4.30952238554646824297e-05, ++-4.26286879163457669119e-05, ++-4.21385855559199974771e-05, ++-4.16252376051221437895e-05, ++-4.10889776466288376587e-05, ++-4.05301518019508379771e-05, ++-3.99491185117068837215e-05, ++-3.93462483092169100062e-05, ++-3.87219235875561562329e-05, ++-3.80765383602142771309e-05, ++-3.74104980155082837679e-05, ++-3.67242190649002693526e-05, ++-3.60181288853753334362e-05, ++-3.52926654560366292231e-05, ++-3.45482770890794257056e-05, ++-3.37854221553090375610e-05, ++-3.30045688043594255523e-05, ++-3.22061946798075831645e-05, ++-3.13907866293216945321e-05, ++-3.05588404100427330412e-05, ++-2.97108603893675688823e-05, ++-2.88473592413132615716e-05, ++-2.79688576386454084658e-05, ++-2.70758839409515568225e-05, ++-2.61689738788582883049e-05, ++-2.52486702345479146949e-05, ++-2.43155225188067227653e-05, ++-2.33700866447662229544e-05, ++-2.24129245985293835562e-05, ++-2.14446041069073238181e-05, ++-2.04656983024178883341e-05, ++-1.94767853857754148804e-05, ++-1.84784482860567825561e-05, ++-1.74712743187444023349e-05, ++-1.64558548418461311194e-05, ++-1.54327849102923173909e-05, ++-1.44026629288111792759e-05, ++-1.33660903034842037365e-05, ++-1.23236710921832843933e-05, ++-1.12760116540923691986e-05, ++-1.02237202985157386555e-05, ++-9.16740693317562989567e-06, ++-8.10768271220163393815e-06, ++-7.04515968401436206049e-06, ++-5.98045043930514029506e-06, ++-4.91416775931360371891e-06, ++-3.84692426460422025455e-06, ++-2.77933206454218416435e-06, ++-1.71200240766848139346e-06, ++-6.45545333172962557628e-07, ++ 4.19430676336646794336e-07, ++ 1.48231904057302648397e-06, ++ 2.54251542561663930372e-06, ++ 3.59941808609308168670e-06, ++ 4.65242820524958869112e-06, ++ 5.70095023278988534811e-06, ++ 6.74439222023971488674e-06, ++ 7.78216615367016922942e-06, ++ 8.81368828359270617260e-06, ++ 9.83837945182666922020e-06, ++ 1.08556654151943217460e-05, ++ 1.18649771658138885200e-05, ++ 1.28657512478499302136e-05, ++ 1.38574300705307268156e-05, ++ 1.48394622172600090695e-05, ++ 1.58113027506664198453e-05, ++ 1.67724135133877546580e-05, ++ 1.77222634244721200859e-05, ++ 1.86603287711980042802e-05, ++ 1.95860934961685117974e-05, ++ 2.04990494795206747223e-05, ++ 2.13986968160965711628e-05, ++ 2.22845440874262652991e-05, ++ 2.31561086283755511721e-05, ++ 2.40129167883148332595e-05, ++ 2.48545041866689361690e-05, ++ 2.56804159627113593367e-05, ++ 2.64902070194693860814e-05, ++ 2.72834422616106000525e-05, ++ 2.80596968271851059942e-05, ++ 2.88185563131008925446e-05, ++ 2.95596169942142674564e-05, ++ 3.02824860359208226652e-05, ++ 3.09867817001359949951e-05, ++ 3.16721335445593264431e-05, ++ 3.23381826151192079948e-05, ++ 3.29845816314999765108e-05, ++ 3.36109951656569510029e-05, ++ 3.42170998132293449818e-05, ++ 3.48025843577636647915e-05, ++ 3.53671499276745119299e-05, ++ 3.59105101458437678133e-05, ++ 3.64323912718148200060e-05, ++ 3.69325323364901809465e-05, ++ 3.74106852692794952407e-05, ++ 3.78666150176288244058e-05, ++ 3.83000996588942581029e-05, ++ 3.87109305044850893402e-05, ++ 3.90989121962477274223e-05, ++ 3.94638627950426708552e-05, ++ 3.98056138614771284553e-05, ++ 4.01240105287611420687e-05, ++ 4.04189115676629857573e-05, ++ 4.06901894435291198787e-05, ++ 4.09377303653654542282e-05, ++ 4.11614343269538722871e-05, ++ 4.13612151399990495742e-05, ++ 4.15370004592994877942e-05, ++ 4.16887317999427647820e-05, ++ 4.18163645465287068582e-05, ++ 4.19198679544291165572e-05, ++ 4.19992251430971813499e-05, ++ 4.20544330814450761122e-05, ++ 4.20855025653108131916e-05, ++ 4.20924581870419940027e-05, ++ 4.20753382972270773108e-05, ++ 4.20341949586107831312e-05, ++ 4.19690938922323789214e-05, ++ 4.18801144158325268558e-05, ++ 4.17673493745770476031e-05, ++ 4.16309050641507942731e-05, ++ 4.14709011462787672121e-05, ++ 4.12874705567371297560e-05, ++ 4.10807594059191025335e-05, ++ 4.08509268720259451839e-05, ++ 4.05981450869582284656e-05, ++ 4.03225990149817188125e-05, ++ 4.00244863242588127953e-05, ++ 3.97040172513205211744e-05, ++ 3.93614144585763300172e-05, ++ 3.89969128849576671548e-05, ++ 3.86107595897814662080e-05, ++ 3.82032135899500682069e-05, ++ 3.77745456905820574433e-05, ++ 3.73250383091862464823e-05, ++ 3.68549852934909236125e-05, ++ 3.63646917330434846769e-05, ++ 3.58544737646997589589e-05, ++ 3.53246583721261741586e-05, ++ 3.47755831794332366546e-05, ++ 3.42075962390870128276e-05, ++ 3.36210558142060423280e-05, ++ 3.30163301553966777682e-05, ++ 3.23937972722568060207e-05, ++ 3.17538446996900900290e-05, ++ 3.10968692591733985816e-05, ++ 3.04232768151230764501e-05, ++ 2.97334820265093258108e-05, ++ 2.90279080938678783936e-05, ++ 2.83069865018621188567e-05, ++ 2.75711567575615524813e-05, ++ 2.68208661245598943643e-05, ++ 2.60565693531506030998e-05, ++ 2.52787284066631597003e-05, ++ 2.44878121841591343355e-05, ++ 2.36842962396411912224e-05, ++ 2.28686624979444416434e-05, ++ 2.20413989674784742564e-05, ++ 2.12029994499905229957e-05, ++ 2.03539632475213441687e-05, ++ 1.94947948667270345394e-05, ++ 1.86260037207404863615e-05, ++ 1.77481038287503190129e-05, ++ 1.68616135134610017573e-05, ++ 1.59670550966399525954e-05, ++ 1.50649545929016600080e-05, ++ 1.41558414019059438765e-05, ++ 1.32402479991802029098e-05, ++ 1.23187096257152244321e-05, ++ 1.13917639765278494500e-05, ++ 1.04599508883682767454e-05, ++ 9.52381202675309655368e-06, ++ 8.58389057250431938178e-06, ++ 7.64073090797513138387e-06, ++ 6.69487830314289765184e-06, ++ 5.74687860175188295145e-06, ++ 4.79727790767192774363e-06, ++ 3.84662227168647334824e-06, ++ 2.89545737884364760088e-06, ++ 1.94432823658253304009e-06, ++ 9.93778863798429985474e-07, ++ 4.43519810261418219453e-08, ++-9.03411298083134494987e-07, ++-1.84897177381668332505e-06, ++-2.79179246581568572222e-06, ++-3.73133891666547724968e-06, ++-4.66707949352351104895e-06, ++-5.59848568756837193684e-06, ++-6.52503241114909488603e-06, ++-7.44619829242155147390e-06, ++-8.36146596735429801020e-06, ++-9.27032236890755496482e-06, ++-1.01722590132379665735e-05, ++-1.10667722827682534897e-05, ++-1.19533637059645449316e-05, ++-1.28315402336673929602e-05, ++-1.37008145118236726118e-05, ++-1.45607051504696124636e-05, ++-1.54107369888173211751e-05, ++-1.62504413562997488372e-05, ++-1.70793563294315240981e-05, ++-1.78970269843458541098e-05, ++-1.87030056448704560027e-05, ++-1.94968521260079873374e-05, ++-2.02781339726898497515e-05, ++-2.10464266936743830125e-05, ++-2.18013139904647730040e-05, ++-2.25423879811231864039e-05, ++-2.32692494188629845134e-05, ++-2.39815079053020545374e-05, ++-2.46787820982652636209e-05, ++-2.53606999140241696946e-05, ++-2.60268987238786572637e-05, ++-2.66770255449520642306e-05, ++-2.73107372251350898203e-05, ++-2.79277006220566396152e-05, ++-2.85275927760007770367e-05, ++-2.91101010766786506953e-05, ++-2.96749234237720292370e-05, ++-3.02217683811674436194e-05, ++-3.07503553247967688486e-05, ++-3.12604145840304585829e-05, ++-3.17516875765274536082e-05, ++-3.22239269364954619744e-05, ++-3.26768966362916865294e-05, ++-3.31103721013135404044e-05, ++-3.35241403181086740208e-05, ++-3.39179999356772221173e-05, ++-3.42917613599035768068e-05, ++-3.46452468410814200988e-05, ++-3.49782905544949971623e-05, ++-3.52907386740210617191e-05, ++-3.55824494387227893157e-05, ++-3.58532932124095292024e-05, ++-3.61031525361412189944e-05, ++-3.63319221736595660043e-05, ++-3.65395091497331203439e-05, ++-3.67258327814061905970e-05, ++-3.68908247021470958485e-05, ++-3.70344288788946495372e-05, ++-3.71566016220048470271e-05, ++-3.72573115881061459097e-05, ++-3.73365397758733679086e-05, ++-3.73942795147359094356e-05, ++-3.74305364465390174970e-05, ++-3.74453285001817191228e-05, ++-3.74386858592581299020e-05, ++-3.74106509227334344111e-05, ++-3.73612782586900054964e-05, ++-3.72906345511812774523e-05, ++-3.71987985402384284698e-05, ++-3.70858609550741078051e-05, ++-3.69519244405358592356e-05, ++-3.67971034768620346741e-05, ++-3.66215242927991649845e-05, ++-3.64253247721413610217e-05, ++-3.62086543537608289011e-05, ++-3.59716739251909398806e-05, ++-3.57145557098436036985e-05, ++-3.54374831479307815388e-05, ++-3.51406507711717790501e-05, ++-3.48242640713705212661e-05, ++-3.44885393629439755150e-05, ++-3.41337036395026344345e-05, ++-3.37599944245618602615e-05, ++-3.33676596164906268116e-05, ++-3.29569573277930418366e-05, ++-3.25281557188254321234e-05, ++-3.20815328260544299979e-05, ++-3.16173763849646847373e-05, ++-3.11359836477270585640e-05, ++-3.06376611957413178553e-05, ++-3.01227247471705252121e-05, ++-2.95914989595860117668e-05, ++-2.90443172278450244467e-05, ++-2.84815214773259415084e-05, ++-2.79034619526477284249e-05, ++-2.73104970020026914545e-05, ++-2.67029928572347473455e-05, ++-2.60813234097965965382e-05, ++-2.54458699827217350983e-05, ++-2.47970210987495716533e-05, ++-2.41351722447432573014e-05, ++-2.34607256325420285845e-05, ++-2.27740899563922217575e-05, ++-2.20756801471030884767e-05, ++-2.13659171230650388217e-05, ++-2.06452275383031910749e-05, ++-1.99140435276834237366e-05, ++-1.91728024494465332597e-05, ++-1.84219466252117046706e-05, ++-1.76619230776150628139e-05, ++-1.68931832657115450086e-05, ++-1.61161828183312975558e-05, ++-1.53313812655206427630e-05, ++-1.45392417682358304494e-05, ++-1.37402308464459345215e-05, ++-1.29348181058055242533e-05, ++-1.21234759630454037166e-05, ++-1.13066793702690812049e-05, ++-1.04849055382779459772e-05, ++-9.65863365911334948940e-06, ++-8.82834462796514155621e-06, ++-7.99452076460905629502e-06, ++-7.15764553453369098759e-06, ++-6.31820326991743474922e-06, ++-5.47667889061570897704e-06, ++-4.63355762531863929758e-06, ++-3.78932473303858924915e-06, ++-2.94446522508681059839e-06, ++-2.09946358769777104725e-06, ++-1.25480350545903780141e-06, ++-4.10967585703884757521e-07, ++ 4.31562915977009008788e-07, ++ 1.27230836894944277571e-06, ++ 2.11079103932071460005e-06, ++ 2.94653536014252898618e-06, ++ 3.77906819987967961097e-06, ++ 4.60791912899369108820e-06, ++ 5.43262068449194016279e-06, ++ 6.25270863229422647450e-06, ++ 7.06772222727031654239e-06, ++ 7.87720447080152108251e-06, ++ 8.68070236573491179038e-06, ++ 9.47776716855934883059e-06, ++ 1.02679546387046329188e-05, ++ 1.10508252847855289948e-05, ++ 1.18259446076950094435e-05, ++ 1.25928833403731488022e-05, ++ 1.33512176841488130493e-05, ++ 1.41005295415132480126e-05, ++ 1.48404067452006041290e-05, ++ 1.55704432834508311935e-05, ++ 1.62902395213322402135e-05, ++ 1.69994024180030318645e-05, ++ 1.76975457398040286305e-05, ++ 1.83842902690431043002e-05, ++ 1.90592640083929755197e-05, ++ 1.97221023807678906147e-05, ++ 2.03724484245830909945e-05, ++ 2.10099529842914574005e-05, ++ 2.16342748960969371002e-05, ++ 2.22450811687472009364e-05, ++ 2.28420471593103576108e-05, ++ 2.34248567438443574510e-05, ++ 2.39932024828722749476e-05, ++ 2.45467857815675249479e-05, ++ 2.50853170445967065243e-05, ++ 2.56085158254919929746e-05, ++ 2.61161109705264067420e-05, ++ 2.66078407569898643540e-05, ++ 2.70834530258070006151e-05, ++ 2.75427053084297310910e-05, ++ 2.79853649479419435960e-05, ++ 2.84112092143175989727e-05, ++ 2.88200254137772721131e-05, ++ 2.92116109921902309310e-05, ++ 2.95857736324748295058e-05, ++ 2.99423313459514552895e-05, ++ 3.02811125576063902359e-05, ++ 3.06019561852344731414e-05, ++ 3.09047117124088772445e-05, ++ 3.11892392552770306917e-05, ++ 3.14554096231257185974e-05, ++ 3.17031043727105386106e-05, ++ 3.19322158563235434462e-05, ++ 3.21426472635838068469e-05, ++ 3.23343126569389799764e-05, ++ 3.25071370008686157485e-05, ++ 3.26610561847839823827e-05, ++ 3.27960170396232209987e-05, ++ 3.29119773481435616428e-05, ++ 3.30089058489176179569e-05, ++ 3.30867822340391137381e-05, ++ 3.31455971405566354542e-05, ++ 3.31853521356474453628e-05, ++ 3.32060596955532425618e-05, ++ 3.32077431783010264656e-05, ++ 3.31904367902360999997e-05, ++ 3.31541855463981258254e-05, ++ 3.30990452247738323123e-05, ++ 3.30250823144645263966e-05, ++ 3.29323739578086778848e-05, ++ 3.28210078865044069620e-05, ++ 3.26910823517787598727e-05, ++ 3.25427060486570274289e-05, ++ 3.23759980343831654933e-05, ++ 3.21910876410516532862e-05, ++ 3.19881143825098785360e-05, ++ 3.17672278555962777865e-05, ++ 3.15285876357804020743e-05, ++ 3.12723631672755098660e-05, ++ 3.09987336476968641276e-05, ++ 3.07078879073422307631e-05, ++ 3.04000242831731254834e-05, ++ 3.00753504875796523151e-05, ++ 2.97340834720133863225e-05, ++ 2.93764492855759244065e-05, ++ 2.90026829286541534467e-05, ++ 2.86130282016945522135e-05, ++ 2.82077375492130921937e-05, ++ 2.77870718991382409868e-05, ++ 2.73513004975885902525e-05, ++ 2.69007007391876059731e-05, ++ 2.64355579930219527422e-05, ++ 2.59561654243505824063e-05, ++ 2.54628238121749757804e-05, ++ 2.49558413627831115046e-05, ++ 2.44355335193822060570e-05, ++ 2.39022227679302646662e-05, ++ 2.33562384393019751726e-05, ++ 2.27979165078862079359e-05, ++ 2.22275993867542926926e-05, ++ 2.16456357195166269815e-05, ++ 2.10523801689935258924e-05, ++ 2.04481932028270123260e-05, ++ 1.98334408761695914203e-05, ++ 1.92084946115600319473e-05, ++ 1.85737309761447836221e-05, ++ 1.79295314563576179442e-05, ++ 1.72762822302007563351e-05, ++ 1.66143739372523043473e-05, ++ 1.59442014465590105223e-05, ++ 1.52661636225209913461e-05, ++ 1.45806630889290942863e-05, ++ 1.38881059912848947536e-05, ++ 1.31889017575441241904e-05, ++ 1.24834628574239182218e-05, ++ 1.17722045604144076358e-05, ++ 1.10555446926362083376e-05, ++ 1.03339033926850970682e-05, ++ 9.60770286660610835401e-06, ++ 8.87736714213917295769e-06, ++ 8.14332182237846214528e-06, ++ 7.40599383898811708220e-06, ++ 6.66581120511662847053e-06, ++ 5.92320276815220692627e-06, ++ 5.17859796246125674333e-06, ++ 4.43242656225190390784e-06, ++ 3.68511843470406844027e-06, ++ 2.93710329350725519965e-06, ++ 2.18881045294667824256e-06, ++ 1.44066858267776568184e-06, ++ 6.93105463328498643878e-07, ++-5.34522569318000109946e-08, ++-7.98579304717572919173e-07, ++-1.54185202251970832288e-06, ++-2.28284860840320051088e-06, ++-3.02114935421031389665e-06, ++-3.75633688210878496775e-06, ++-4.48799637936313885382e-06, ++-5.21571583119760455970e-06, ++-5.93908625161027179838e-06, ++-6.65770191203593872154e-06, ++-7.37116056769570928293e-06, ++-8.07906368153382318078e-06, ++-8.78101664560747212731e-06, ++-9.47662899980729766419e-06, ++-1.01655146477980716876e-05, ++-1.08472920700360401147e-05, ++-1.15215845337792326716e-05, ++-1.21880202999511892778e-05, ++-1.28462328267551614196e-05, ++-1.34958609699263177819e-05, ++-1.41365491795134746316e-05, ++-1.47679476930840737262e-05, ++-1.53897127252478330606e-05, ++-1.60015066533978296873e-05, ++-1.66029981995690071228e-05, ++-1.71938626083174473280e-05, ++-1.77737818205255124692e-05, ++-1.83424446430409821820e-05, ++-1.88995469140607142496e-05, ++-1.94447916641716418988e-05, ++-1.99778892729651633619e-05, ++-2.04985576211432968317e-05, ++-2.10065222380378098066e-05, ++-2.15015164444660525898e-05, ++-2.19832814908509086081e-05, ++-2.24515666905336362430e-05, ++-2.29061295482131846272e-05, ++-2.33467358834453286897e-05, ++-2.37731599491474201167e-05, ++-2.41851845450333852378e-05, ++-2.45826011259452240434e-05, ++-2.49652099050124548756e-05, ++-2.53328199515970210081e-05, ++-2.56852492839710685329e-05, ++-2.60223249566979663422e-05, ++-2.63438831426579298076e-05, ++-2.66497692096954663589e-05, ++-2.69398377918485816931e-05, ++-2.72139528551308018016e-05, ++-2.74719877578380960005e-05, ++-2.77138253053556592794e-05, ++-2.79393577994475523249e-05, ++-2.81484870820020636713e-05, ++-2.83411245732301139656e-05, ++-2.85171913042964311541e-05, ++-2.86766179443786176822e-05, ++-2.88193448221488309965e-05, ++-2.89453219416760952935e-05, ++-2.90545089927504981216e-05, ++-2.91468753556345132793e-05, ++-2.92224001002483448552e-05, ++-2.92810719798009543599e-05, ++-2.93228894188808181459e-05, ++-2.93478604960236810328e-05, ++-2.93560029207774113129e-05, ++-2.93473440052880433669e-05, ++-2.93219206304335843936e-05, ++-2.92797792065350247323e-05, ++-2.92209756286776301080e-05, ++-2.91455752266783351279e-05, ++-2.90536527097378728982e-05, ++-2.89452921058199178666e-05, ++-2.88205866958015281636e-05, ++-2.86796389424427922371e-05, ++-2.85225604142267152093e-05, ++-2.83494717041206751521e-05, ++-2.81605023433202391432e-05, ++-2.79557907100283667510e-05, ++-2.77354839333381227289e-05, ++-2.74997377922758771290e-05, ++-2.72487166100799959093e-05, ++-2.69825931437795252883e-05, ++-2.67015484691465684885e-05, ++-2.64057718610977712947e-05, ++-2.60954606696212069907e-05, ++-2.57708201913090847589e-05, ++-2.54320635365780473264e-05, ++-2.50794114926622185510e-05, ++-2.47130923824611631432e-05, ++-2.43333419193429083098e-05, ++-2.39404030579782670638e-05, ++-2.35345258413101434184e-05, ++-2.31159672437494752078e-05, ++-2.26849910106949353332e-05, ++-2.22418674944758635930e-05, ++-2.17868734868193039472e-05, ++-2.13202920479438652059e-05, ++-2.08424123323838041491e-05, ++-2.03535294116561999106e-05, ++-1.98539440938636343103e-05, ++-1.93439627403565497755e-05, ++-1.88238970795673100412e-05, ++-1.82940640181116715769e-05, ++-1.77547854492869263538e-05, ++-1.72063880590754648210e-05, ++-1.66492031297704090782e-05, ++-1.60835663413408166554e-05, ++-1.55098175706546329380e-05, ++-1.49283006886787883053e-05, ++-1.43393633557766034665e-05, ++-1.37433568152237134072e-05, ++-1.31406356850657396885e-05, ++-1.25315577484303698698e-05, ++-1.19164837424470248790e-05, ++-1.12957771458482026110e-05, ++-1.06698039654265613285e-05, ++-1.00389325214426427445e-05, ++-9.40353323211844157182e-06, ++-8.76397839734067131087e-06, ++-8.12064198169950727862e-06, ++-7.47389939698852350989e-06, ++-6.82412728429159437049e-06, ++-6.17170329578283326645e-06, ++-5.51700587636662085001e-06, ++-4.86041404527424057491e-06, ++-4.20230717776569626185e-06, ++-3.54306478703081491720e-06, ++-2.88306630643768218789e-06, ++-2.22269087224340068095e-06, ++-1.56231710689249263685e-06, ++-9.02322903026265212716e-07, ++-2.43085208325657879777e-07, ++ 4.15020188692070241853e-07, ++ 1.07161887179235378480e-06, ++ 1.72633800896124487047e-06, ++ 2.37880656301163715107e-06, ++ 3.02865550076134820403e-06, ++ 3.67551800066570465779e-06, ++ 4.31902965876675653769e-06, ++ 4.95882869287509108695e-06, ++ 5.59455614484735050385e-06, ++ 6.22585608085616216224e-06, ++ 6.85237578953995891761e-06, ++ 7.47376597792307623553e-06, ++ 8.08968096499781815715e-06, ++ 8.69977887286206749402e-06, ++ 9.30372181530736666231e-06, ++ 9.90117608375414723029e-06, ++ 1.04918123304324667667e-05, ++ 1.10753057487085165546e-05, ++ 1.16513362504588705059e-05, ++ 1.22195886403962862164e-05, ++ 1.27797527872529815987e-05, ++ 1.33315237917292095805e-05, ++ 1.38746021511168710365e-05, ++ 1.44086939205101016335e-05, ++ 1.49335108705172178858e-05, ++ 1.54487706413894936150e-05, ++ 1.59541968934863105428e-05, ++ 1.64495194539962877323e-05, ++ 1.69344744598370269687e-05, ++ 1.74088044966656047203e-05, ++ 1.78722587339096677364e-05, ++ 1.83245930557734450217e-05, ++ 1.87655701881329496747e-05, ++ 1.91949598212630230727e-05, ++ 1.96125387283323720589e-05, ++ 2.00180908796079946171e-05, ++ 2.04114075523055411008e-05, ++ 2.07922874360462036562e-05, ++ 2.11605367338478548244e-05, ++ 2.15159692586163032817e-05, ++ 2.18584065250839677179e-05, ++ 2.21876778371520620508e-05, ++ 2.25036203706003066312e-05, ++ 2.28060792511126929382e-05, ++ 2.30949076276010261842e-05, ++ 2.33699667407799707231e-05, ++ 2.36311259869688547377e-05, ++ 2.38782629770920889936e-05, ++ 2.41112635908534832393e-05, ++ 2.43300220260626135784e-05, ++ 2.45344408430947687194e-05, ++ 2.47244310044678461521e-05, ++ 2.48999119095234487111e-05, ++ 2.50608114242014547006e-05, ++ 2.52070659059005263759e-05, ++ 2.53386202234201725390e-05, ++ 2.54554277719819088525e-05, ++ 2.55574504833309083937e-05, ++ 2.56446588309218829473e-05, ++ 2.57170318301951886415e-05, ++ 2.57745570339536455825e-05, ++ 2.58172305228509982138e-05, ++ 2.58450568910080320990e-05, ++ 2.58580492267732674574e-05, ++ 2.58562290886494391582e-05, ++ 2.58396264764083687885e-05, ++ 2.58082797974207070447e-05, ++ 2.57622358282285832381e-05, ++ 2.57015496713930713401e-05, ++ 2.56262847076503301675e-05, ++ 2.55365125434126198959e-05, ++ 2.54323129536535378888e-05, ++ 2.53137738202205607126e-05, ++ 2.51809910656159463322e-05, ++ 2.50340685822968625073e-05, ++ 2.48731181575412977117e-05, ++ 2.46982593939325721589e-05, ++ 2.45096196255167505238e-05, ++ 2.43073338296873121584e-05, ++ 2.40915445348619378086e-05, ++ 2.38624017240045997246e-05, ++ 2.36200627340624288075e-05, ++ 2.33646921513807236321e-05, ++ 2.30964617031644264128e-05, ++ 2.28155501450558444859e-05, ++ 2.25221431449012520778e-05, ++ 2.22164331627798575491e-05, ++ 2.18986193273720365431e-05, ++ 2.15689073087443379398e-05, ++ 2.12275091876318188378e-05, ++ 2.08746433212990305033e-05, ++ 2.05105342060640502609e-05, ++ 2.01354123365703269947e-05, ++ 1.97495140618939641253e-05, ++ 1.93530814385750261550e-05, ++ 1.89463620806633047968e-05, ++ 1.85296090068704985814e-05, ++ 1.81030804849221997979e-05, ++ 1.76670398732044751401e-05, ++ 1.72217554598013985296e-05, ++ 1.67675002990209279609e-05, ++ 1.63045520455078192621e-05, ++ 1.58331927860449225669e-05, ++ 1.53537088691371193265e-05, ++ 1.48663907324963997689e-05, ++ 1.43715327285100159978e-05, ++ 1.38694329478100649496e-05, ++ 1.33603930410508834665e-05, ++ 1.28447180389832295180e-05, ++ 1.23227161709552708244e-05, ++ 1.17946986819301291035e-05, ++ 1.12609796481351171312e-05, ++ 1.07218757914499571946e-05, ++ 1.01777062926427738516e-05, ++ 9.62879260356504592831e-06, ++ 9.07545825840731586903e-06, ++ 8.51802868414534395823e-06, ++ 7.95683101026131923061e-06, ++ 7.39219387787010935662e-06, ++ 6.82444724835357750922e-06, ++ 6.25392221161505916386e-06, ++ 5.68095079406488222078e-06, ++ 5.10586576644759276318e-06, ++ 4.52900045162168937197e-06, ++ 3.95068853240210902949e-06, ++ 3.37126385957580590002e-06, ++ 2.79106026020026960787e-06, ++ 2.21041134629440781136e-06, ++ 1.62965032403097053739e-06, ++ 1.04910980353893797621e-06, ++ 4.69121609423969816268e-07, ++-1.09983407885784446779e-07, ++-6.87875559861819363080e-07, ++-1.26422650655941540912e-06, ++-1.83870944215866707785e-06, ++-2.41099927925814251037e-06, ++-2.98077283181781552669e-06, ++-3.54770899664894408157e-06, ++-4.11148893334953399492e-06, ++-4.67179624258384839990e-06, ++-5.22831714261491216074e-06, ++-5.78074064397335153019e-06, ++-6.32875872218480591626e-06, ++-6.87206648846043886310e-06, ++-7.41036235823793521568e-06, ++-7.94334821749933495355e-06, ++-8.47072958676628828367e-06, ++-8.99221578268483114820e-06, ++-9.50752007711151433478e-06, ++-1.00163598536144939110e-05, ++-1.05184567613050262248e-05, ++-1.10135368659148606880e-05, ++-1.15013307980458232298e-05, ++-1.19815738984936175071e-05, ++-1.24540063605928145280e-05, ++-1.29183733694884611521e-05, ++-1.33744252382685912655e-05, ++-1.38219175408834683421e-05, ++-1.42606112417824770782e-05, ++-1.46902728222004355977e-05, ++-1.51106744030272206920e-05, ++-1.55215938641985491263e-05, ++-1.59228149605396966692e-05, ++-1.63141274340170367916e-05, ++-1.66953271223259263928e-05, ++-1.70662160637601778752e-05, ++-1.74266025983238355662e-05, ++-1.77763014650210005691e-05, ++-1.81151338952815387428e-05, ++-1.84429277024754141470e-05, ++-1.87595173674722256573e-05, ++-1.90647441202047199617e-05, ++-1.93584560171974732774e-05, ++-1.96405080150238890778e-05, ++-1.99107620396580777466e-05, ++-2.01690870516893970240e-05, ++-2.04153591073708575137e-05, ++-2.06494614154744169461e-05, ++-2.08712843899290058163e-05, ++-2.10807256982194106203e-05, ++-2.12776903055268819069e-05, ++-2.14620905145943367527e-05, ++-2.16338460013017256061e-05, ++-2.17928838459405791773e-05, ++-2.19391385601769272338e-05, ++-2.20725521096971615139e-05, ++-2.21930739325313472097e-05, ++-2.23006609530529530257e-05, ++-2.23952775916547660337e-05, ++-2.24768957701059413827e-05, ++-2.25454949125917081373e-05, ++-2.26010619424491719610e-05, ++-2.26435912746056351556e-05, ++-2.26730848037337861828e-05, ++-2.26895518881395304210e-05, ++-2.26930093293992605151e-05, ++-2.26834813477678370105e-05, ++-2.26609995533789395977e-05, ++-2.26256029132635929800e-05, ++-2.25773377142134946906e-05, ++-2.25162575215193229503e-05, ++-2.24424231336153037980e-05, ++-2.23559025326656501465e-05, ++-2.22567708311276078921e-05, ++-2.21451102143313804113e-05, ++-2.20210098791169147888e-05, ++-2.18845659685713447666e-05, ++-2.17358815029120373732e-05, ++-2.15750663065627956596e-05, ++-2.14022369314727249265e-05, ++-2.12175165767294450026e-05, ++-2.10210350045200421447e-05, ++-2.08129284524956139116e-05, ++-2.05933395425968121279e-05, ++-2.03624171863999439073e-05, ++-2.01203164870448847703e-05, ++-1.98671986378080534994e-05, ++-1.96032308173856533286e-05, ++-1.93285860819534852074e-05, ++-1.90434432540722883950e-05, ++-1.87479868085084750535e-05, ++-1.84424067550420635135e-05, ++-1.81268985183354106028e-05, ++-1.78016628149372209476e-05, ++-1.74669055274989030828e-05, ++-1.71228375762811146975e-05, ++-1.67696747880257406472e-05, ++-1.64076377622852373006e-05, ++-1.60369517352758793533e-05, ++-1.56578464413495735093e-05, ++-1.52705559721640566414e-05, ++-1.48753186336378656238e-05, ++-1.44723768007754817841e-05, ++-1.40619767704562352530e-05, ++-1.36443686122615369144e-05, ++-1.32198060174485617084e-05, ++-1.27885461461470160532e-05, ++-1.23508494728771689751e-05, ++-1.19069796304737485969e-05, ++-1.14572032525241123438e-05, ++-1.10017898143939981797e-05, ++-1.05410114729497751473e-05, ++-1.00751429050663908628e-05, ++-9.60446114501671036024e-06, ++-9.12924542083821511740e-06, ++-8.64977698977298705156e-06, ++-8.16633897287741896158e-06, ++-7.67921618889827246499e-06, ++-7.18869498751202211574e-06, ++-6.69506308202449553879e-06, ++-6.19860938162804727016e-06, ++-5.69962382331348281457e-06, ++-5.19839720353396213883e-06, ++-4.69522100971802372742e-06, ++-4.19038725172889743185e-06, ++-3.68418829336696433132e-06, ++-3.17691668401197745318e-06, ++-2.66886499050160637978e-06, ++-2.16032562934221739981e-06, ++-1.65159069934772865291e-06, ++-1.14295181480165719692e-06, ++-6.34699939237223993940e-07, ++-1.27125219930865964068e-07, ++ 3.79483176804446976763e-07, ++ 8.84837229415048084051e-07, ++ 1.38865022392344135295e-06, ++ 1.89063691565660948537e-06, ++ 2.39051368980350543056e-06, ++ 2.88799872070356053645e-06, ++ 3.38281212979515968504e-06, ++ 3.87467614211226955731e-06, ++ 4.36331524126018218350e-06, ++ 4.84845632277730857507e-06, ++ 5.32982884579943108584e-06, ++ 5.80716498294156890627e-06, ++ 6.28019976832197123205e-06, ++ 6.74867124362975824505e-06, ++ 7.21232060217923931738e-06, ++ 7.67089233085512087109e-06, ++ 8.12413434987819258522e-06, ++ 8.57179815031460507597e-06, ++ 9.01363892925431026452e-06, ++ 9.44941572258580350576e-06, ++ 9.87889153529582866875e-06, ++ 1.03018334692242354077e-05, ++ 1.07180128482058532928e-05, ++ 1.11272053405328737749e-05, ++ 1.15291910786727369798e-05, ++ 1.19237547761785921742e-05, ++ 1.23106858417307881825e-05, ++ 1.26897784902497355293e-05, ++ 1.30608318510224895531e-05, ++ 1.34236500727868487704e-05, ++ 1.37780424257190294344e-05, ++ 1.41238234002725815088e-05, ++ 1.44608128028181916441e-05, ++ 1.47888358480361837552e-05, ++ 1.51077232480150609343e-05, ++ 1.54173112980111264947e-05, ++ 1.57174419588311981054e-05, ++ 1.60079629357866409767e-05, ++ 1.62887277541956994331e-05, ++ 1.65595958313870623361e-05, ++ 1.68204325451708860712e-05, ++ 1.70711092987549151222e-05, ++ 1.73115035820617087312e-05, ++ 1.75414990294297246641e-05, ++ 1.77609854736682751155e-05, ++ 1.79698589964435695681e-05, ++ 1.81680219749743536840e-05, ++ 1.83553831250179843454e-05, ++ 1.85318575401295563383e-05, ++ 1.86973667271814836071e-05, ++ 1.88518386381246428555e-05, ++ 1.89952076979892261869e-05, ++ 1.91274148291101984921e-05, ++ 1.92484074715740798728e-05, ++ 1.93581395998826688587e-05, ++ 1.94565717358317040323e-05, ++ 1.95436709576050705363e-05, ++ 1.96194109050871230563e-05, ++ 1.96837717813977941246e-05, ++ 1.97367403506575926565e-05, ++ 1.97783099319904582180e-05, ++ 1.98084803897790467670e-05, ++ 1.98272581201802304074e-05, ++ 1.98346560339216278375e-05, ++ 1.98306935353937785049e-05, ++ 1.98153964980584857704e-05, ++ 1.97887972361948640476e-05, ++ 1.97509344730071558156e-05, ++ 1.97018533051198989033e-05, ++ 1.96416051634883520843e-05, ++ 1.95702477707543367439e-05, ++ 1.94878450950789703635e-05, ++ 1.93944673004863832040e-05, ++ 1.92901906937534684103e-05, ++ 1.91750976678850051373e-05, ++ 1.90492766422124609142e-05, ++ 1.89128219991563888266e-05, ++ 1.87658340176993620855e-05, ++ 1.86084188036114926950e-05, ++ 1.84406882164763881947e-05, ++ 1.82627597935659933724e-05, ++ 1.80747566706147357355e-05, ++ 1.78768074995447826664e-05, ++ 1.76690463631958512617e-05, ++ 1.74516126871156478269e-05, ++ 1.72246511484645271060e-05, ++ 1.69883115820999146554e-05, ++ 1.67427488838910094079e-05, ++ 1.64881229113318102759e-05, ++ 1.62245983815127213317e-05, ++ 1.59523447665149745417e-05, ++ 1.56715361862937387256e-05, ++ 1.53823512991161662699e-05, ++ 1.50849731896229228884e-05, ++ 1.47795892545813357618e-05, ++ 1.44663910864051258596e-05, ++ 1.41455743545015973133e-05, ++ 1.38173386845338111450e-05, ++ 1.34818875356564122405e-05, ++ 1.31394280758153236577e-05, ++ 1.27901710551714238936e-05, ++ 1.24343306777357970924e-05, ++ 1.20721244712898652016e-05, ++ 1.17037731556691947766e-05, ++ 1.13295005094903200078e-05, ++ 1.09495332354001166718e-05, ++ 1.05641008239284915968e-05, ++ 1.01734354160254741075e-05, ++ 9.77777166436417707733e-06, ++ 9.37734659349238440105e-06, ++ 8.97239945891504566951e-06, ++ 8.56317160519109046130e-06, ++ 8.14990632312829315351e-06, ++ 7.73284870615977176810e-06, ++ 7.31224550598672419900e-06, ++ 6.88834498757161637657e-06, ++ 6.46139678356662984916e-06, ++ 6.03165174826215254474e-06, ++ 5.59936181114026503485e-06, ++ 5.16477983011814751843e-06, ++ 4.72815944456637594131e-06, ++ 4.28975492818819883339e-06, ++ 3.84982104183822503198e-06, ++ 3.40861288638080421604e-06, ++ 2.96638575565200338164e-06, ++ 2.52339498962473315831e-06, ++ 2.07989582785497810255e-06, ++ 1.63614326329362652845e-06, ++ 1.19239189654723987055e-06, ++ 7.48895790669445095407e-07, ++ 3.05908326571625776241e-07, ++-1.36317940881114572753e-07, ++-5.77531425986414698518e-07, ++-1.01748165446873717438e-06, ++-1.45591940480376818372e-06, ++-1.89259684853121109570e-06, ++-2.32726768946181945073e-06, ++-2.75968730172187791391e-06, ++-3.18961286654260444098e-06, ++-3.61680350772475395115e-06, ++-4.04102042570235190153e-06, ++-4.46202703013145677961e-06, ++-4.87958907093086315863e-06, ++-5.29347476770270431638e-06, ++-5.70345493746202430210e-06, ++-6.10930312060542652779e-06, ++-6.51079570505022606116e-06, ++-6.90771204847647766264e-06, ++-7.29983459860577372710e-06, ++-7.68694901145177016447e-06, ++-8.06884426747877637565e-06, ++-8.44531278560606176982e-06, ++-8.81615053499690261524e-06, ++-9.18115714457292360416e-06, ++-9.54013601019537525608e-06, ++-9.89289439945689410725e-06, ++-1.02392435540285157503e-05, ++-1.05789987895082151180e-05, ++-1.09119795927181496489e-05, ++-1.12380097164049367058e-05, ++-1.15569172712818179387e-05, ++-1.18685348153817650919e-05, ++-1.21726994406635834228e-05, ++-1.24692528568320288901e-05, ++-1.27580414723287455134e-05, ++-1.30389164724542902805e-05, ++-1.33117338945781214641e-05, ++-1.35763547004100975057e-05, ++-1.38326448452840637915e-05, ++-1.40804753444306167702e-05, ++-1.43197223362026314689e-05, ++-1.45502671422277009592e-05, ++-1.47719963244507672032e-05, ++-1.49848017390525759050e-05, ++-1.51885805872105738001e-05, ++-1.53832354626835289546e-05, ++-1.55686743961984593867e-05, ++-1.57448108966214301034e-05, ++-1.59115639888950593595e-05, ++-1.60688582487281346781e-05, ++-1.62166238340240249699e-05, ++-1.63547965130369332254e-05, ++-1.64833176892467266300e-05, ++-1.66021344229449986304e-05, ++-1.67111994495269690472e-05, ++-1.68104711944856884120e-05, ++-1.68999137851070388113e-05, ++-1.69794970588658022861e-05, ++-1.70491965685248872658e-05, ++-1.71089935839418872147e-05, ++-1.71588750905891277256e-05, ++-1.71988337847946457871e-05, ++-1.72288680657142012447e-05, ++-1.72489820240458028352e-05, ++-1.72591854275000641512e-05, ++-1.72594937030417242213e-05, ++-1.72499279159197036566e-05, ++-1.72305147455039143491e-05, ++-1.72012864579503712398e-05, ++-1.71622808757165273689e-05, ++-1.71135413439511928759e-05, ++-1.70551166937853976150e-05, ++-1.69870612025510246137e-05, ++-1.69094345509577617692e-05, ++-1.68223017772587667151e-05, ++-1.67257332284380452606e-05, ++-1.66198045084538685654e-05, ++-1.65045964235747666643e-05, ++-1.63801949248439752678e-05, ++-1.62466910477154159362e-05, ++-1.61041808488969476394e-05, ++-1.59527653404471681951e-05, ++-1.57925504211673684571e-05, ++-1.56236468053350227754e-05, ++-1.54461699488246402123e-05, ++-1.52602399726646910730e-05, ++-1.50659815840795875837e-05, ++-1.48635239950677219589e-05, ++-1.46530008385678102385e-05, ++-1.44345500822663306819e-05, ++-1.42083139401014696147e-05, ++-1.39744387815186386459e-05, ++-1.37330750385350818741e-05, ++-1.34843771106714372927e-05, ++-1.32285032678095108182e-05, ++-1.29656155510367461763e-05, ++-1.26958796715383549959e-05, ++-1.24194649075998671690e-05, ++-1.21365439997829936740e-05, ++-1.18472930443392576808e-05, ++-1.15518913849262173693e-05, ++-1.12505215026924608397e-05, ++-1.09433689047985292748e-05, ++-1.06306220114370569618e-05, ++-1.03124720414310326811e-05, ++-9.98911289646390806746e-06, ++-9.66074104402634771841e-06, ++-9.32755539913410898457e-06, ++-8.98975720490331666607e-06, ++-8.64754991204318386249e-06, ++-8.30113905734212395051e-06, ++-7.95073214121866026069e-06, ++-7.59653850440942178638e-06, ++-7.23876920386707314615e-06, ++-6.87763688794204854321e-06, ++-6.51335567091628095621e-06, ++-6.14614100697516552689e-06, ++-5.77620956367455239778e-06, ++-5.40377909498920278296e-06, ++-5.02906831401159492038e-06, ++-4.65229676537581108160e-06, ++-4.27368469748049481391e-06, ++-3.89345293458471427688e-06, ++-3.51182274885061115744e-06, ++-3.12901573240642411555e-06, ++-2.74525366950255710500e-06, ++-2.36075840884032086628e-06, ++-1.97575173612730443720e-06, ++-1.59045524696390774673e-06, ++-1.20509022010166682739e-06, ++-8.19877491164466545524e-07, ++-4.35037326897878480005e-07, ++-5.07893000186937941852e-08, ++ 3.32647835264701963937e-07, ++ 7.15056266991011401958e-07, ++ 1.09621924837422310365e-06, ++ 1.47592121985241872538e-06, ++ 1.85394793018892599705e-06, ++ 2.23008655655825313813e-06, ++ 2.60412582354907889203e-06, ++ 2.97585612102449336496e-06, ++ 3.34506962075543128396e-06, ++ 3.71156039179419859137e-06, ++ 4.07512451449323400283e-06, ++ 4.43556019312523663384e-06, ++ 4.79266786703672172316e-06, ++ 5.14625032027519291555e-06, ++ 5.49611278963019283487e-06, ++ 5.84206307102959016220e-06, ++ 6.18391162423353208402e-06, ++ 6.52147167576954129561e-06, ++ 6.85455932005260181654e-06, ++ 7.18299361864097611125e-06, ++ 7.50659669756249047314e-06, ++ 7.82519384267587422464e-06, ++ 8.13861359300433846395e-06, ++ 8.44668783199705641891e-06, ++ 8.74925187666988167100e-06, ++ 9.04614456457850991435e-06, ++ 9.33720833857896873390e-06, ++ 9.62228932933213677251e-06, ++ 9.90123743550565465295e-06, ++ 1.01739064016425803086e-05, ++ 1.04401538936425447330e-05, ++ 1.06998415718315421479e-05, ++ 1.09528351615697443715e-05, ++ 1.11990045213757959499e-05, ++ 1.14382237085241558977e-05, ++ 1.16703710420870291280e-05, ++ 1.18953291633899048006e-05, ++ 1.21129850938512417829e-05, ++ 1.23232302901790470909e-05, ++ 1.25259606968983349296e-05, ++ 1.27210767961849803022e-05, ++ 1.29084836549834598316e-05, ++ 1.30880909693871328668e-05, ++ 1.32598131062616946208e-05, ++ 1.34235691420937951136e-05, ++ 1.35792828990487302932e-05, ++ 1.37268829782224906786e-05, ++ 1.38663027900751689578e-05, ++ 1.39974805820346134686e-05, ++ 1.41203594632604494623e-05, ++ 1.42348874265606466504e-05, ++ 1.43410173674542311574e-05, ++ 1.44387071003753392044e-05, ++ 1.45279193720158173131e-05, ++ 1.46086218718049036649e-05, ++ 1.46807872395258838879e-05, ++ 1.47443930700731856367e-05, ++ 1.47994219153501084768e-05, ++ 1.48458612833167961215e-05, ++ 1.48837036341919119975e-05, ++ 1.49129463738179148723e-05, ++ 1.49335918441997313264e-05, ++ 1.49456473112284446691e-05, ++ 1.49491249496032089275e-05, ++ 1.49440418249668886146e-05, ++ 1.49304198732706183515e-05, ++ 1.49082858773864185118e-05, ++ 1.48776714409868946381e-05, ++ 1.48386129597128356167e-05, ++ 1.47911515896521751179e-05, ++ 1.47353332131532132959e-05, ++ 1.46712084019985736114e-05, ++ 1.45988323779665271851e-05, ++ 1.45182649708080687578e-05, ++ 1.44295705736699748613e-05, ++ 1.43328180959947710691e-05, ++ 1.42280809139304630388e-05, ++ 1.41154368182840922366e-05, ++ 1.39949679600544020416e-05, ++ 1.38667607935803263323e-05, ++ 1.37309060173433526632e-05, ++ 1.35874985124628946476e-05, ++ 1.34366372789253006354e-05, ++ 1.32784253695879846650e-05, ++ 1.31129698220019766261e-05, ++ 1.29403815880963342583e-05, ++ 1.27607754617702922906e-05, ++ 1.25742700044388885011e-05, ++ 1.23809874685797173814e-05, ++ 1.21810537193292244224e-05, ++ 1.19745981541777892090e-05, ++ 1.17617536208142295677e-05, ++ 1.15426563331714449024e-05, ++ 1.13174457857225807409e-05, ++ 1.10862646660882621001e-05, ++ 1.08492587659991565309e-05, ++ 1.06065768906759967075e-05, ++ 1.03583707666798818434e-05, ++ 1.01047949482890619580e-05, ++ 9.84600672246289829138e-06, ++ 9.58216601244215827264e-06, ++ 9.31343528005553203603e-06, ++ 9.03997942678299933766e-06, ++ 8.76196569363900174996e-06, ++ 8.47956355993590845071e-06, ++ 8.19294464098436757177e-06, ++ 7.90228258480172436834e-06, ++ 7.60775296787702002085e-06, ++ 7.30953319006439522813e-06, ++ 7.00780236866348362574e-06, ++ 6.70274123175005229701e-06, ++ 6.39453201082003652993e-06, ++ 6.08335833281021253502e-06, ++ 5.76940511155902288967e-06, ++ 5.45285843877125582177e-06, ++ 5.13390547455034551393e-06, ++ 4.81273433756231556671e-06, ++ 4.48953399489534794848e-06, ++ 4.16449415167896653590e-06, ++ 3.83780514052692429906e-06, ++ 3.50965781086775528301e-06, ++ 3.18024341822695296120e-06, ++ 2.84975351352448496748e-06, ++ 2.51837983245139741199e-06, ++ 2.18631418498888039782e-06, ++ 1.85374834513309478132e-06, ++ 1.52087394088868180660e-06, ++ 1.18788234459368242750e-06, ++ 8.54964563638969000998e-07, ++ 5.22311131639455979077e-07, ++ 1.90112000130503982774e-07, ++-1.41443569165127144841e-07, ++-4.72167111427258322109e-07, ++-8.01871065130554529929e-07, ++-1.13036887767394417904e-06, ++-1.45747511019990077643e-06, ++-1.78300554152943349745e-06, ++-2.10677727116673305869e-06, ++-2.42860882131162050769e-06, ++-2.74832023782412414206e-06, ++-3.06573319008543263771e-06, ++-3.38067106969957008626e-06, ++-3.69295908798608184869e-06, ++-4.00242437219907550613e-06, ++-4.30889606043524369669e-06, ++-4.61220539516788939752e-06, ++-4.91218581536073784053e-06, ++-5.20867304711107137976e-06, ++-5.50150519277325040547e-06, ++-5.79052281851486924603e-06, ++-6.07556904025867903059e-06, ++-6.35648960796446912367e-06, ++-6.63313298820617108662e-06, ++-6.90535044500056127508e-06, ++-7.17299611884493175119e-06, ++-7.43592710392244173663e-06, ++-7.69400352343472750019e-06, ++-7.94708860302274787185e-06, ++-8.19504874223798014101e-06, ++-8.43775358402712548757e-06, ++-8.67507608219503231826e-06, ++-8.90689256681143526513e-06, ++-9.13308280752864666172e-06, ++-9.35353007477842320907e-06, ++-9.56812119881768913406e-06, ++-9.77674662659346799308e-06, ++-9.97930047640225587741e-06, ++-1.01756805903098395061e-05, ++-1.03657885843171664226e-05, ++-1.05495298962378540402e-05, ++-1.07268138312754163948e-05, ++-1.08975536052689632541e-05, ++-1.10616663855950794401e-05, ++-1.12190733297047288709e-05, ++-1.13696996212789541697e-05, ++-1.15134745039878948566e-05, ++-1.16503313128391599354e-05, ++-1.17802075031027646805e-05, ++-1.19030446768033701643e-05, ++-1.20187886067651972661e-05, ++-1.21273892582080803395e-05, ++-1.22288008078826377517e-05, ++-1.23229816607413100770e-05, ++-1.24098944641409426887e-05, ++-1.24895061195742445941e-05, ++-1.25617877919291833080e-05, ++-1.26267149162764970278e-05, ++-1.26842672021870910226e-05, ++-1.27344286355826809563e-05, ++-1.27771874781232745640e-05, ++-1.28125362641396452218e-05, ++-1.28404717951158474197e-05, ++-1.28609951317310474550e-05, ++-1.28741115834723465414e-05, ++-1.28798306958283372134e-05, ++-1.28781662350772487912e-05, ++-1.28691361706835918807e-05, ++-1.28527626553190634970e-05, ++-1.28290720025245128650e-05, ++-1.27980946620313942489e-05, ++-1.27598651927620886218e-05, ++-1.27144222335301226119e-05, ++-1.26618084714623414664e-05, ++-1.26020706081659076143e-05, ++-1.25352593236666657602e-05, ++-1.24614292381415428035e-05, ++-1.23806388714751623682e-05, ++-1.22929506006672047076e-05, ++-1.21984306151204884824e-05, ++-1.20971488698402506546e-05, ++-1.19891790365764339750e-05, ++-1.18745984529418113659e-05, ++-1.17534880695398776456e-05, ++-1.16259323951374368445e-05, ++-1.14920194399183685165e-05, ++-1.13518406568538079223e-05, ++-1.12054908812311493295e-05, ++-1.10530682683752438347e-05, ++-1.08946742296059593923e-05, ++-1.07304133664714714479e-05, ++-1.05603934032992665185e-05, ++-1.03847251181075779763e-05, ++-1.02035222719208779302e-05, ++-1.00169015365332405226e-05, ++-9.82498242076738657132e-06, ++-9.62788719526892533595e-06, ++-9.42574081589087935042e-06, ++-9.21867084571004267567e-06, ++-9.00680737572287916197e-06, ++-8.79028294427637022824e-06, ++-8.56923245527351259271e-06, ++-8.34379309521075756921e-06, ++-8.11410424909460554577e-06, ++-7.88030741528924488369e-06, ++-7.64254611934633504094e-06, ++-7.40096582686917382960e-06, ++-7.15571385546351836380e-06, ++-6.90693928582781290984e-06, ++-6.65479287203611895166e-06, ++-6.39942695106712918212e-06, ++-6.14099535163319854876e-06, ++-5.87965330236342373891e-06, ++-5.61555733939511250274e-06, ++-5.34886521342830269742e-06, ++-5.07973579629795705422e-06, ++-4.80832898711880610677e-06, ++-4.53480561805786592893e-06, ++-4.25932735978965902460e-06, ++-3.98205662668941065763e-06, ++-3.70315648181929639785e-06, ++-3.42279054176300851270e-06, ++-3.14112288136435437299e-06, ++-2.85831793842106375632e-06, ++-2.57454041839861196264e-06, ++-2.28995519920570692832e-06, ++-2.00472723609599568439e-06, ++-1.71902146674648263972e-06, ++-1.43300271656756140053e-06, ++-1.14683560429862268911e-06, ++-8.60684447942252036623e-07, ++-5.74713171094427766504e-07, ++-2.89085209713597664617e-07, ++-3.96341939478251296110e-09, ++ 2.80490016808534609067e-07, ++ 5.64113679962953421250e-07, ++ 8.46747006173344896037e-07, ++ 1.12823037680340410583e-06, ++ 1.40840520793811109215e-06, ++ 1.68711403904242672689e-06, ++ 1.96420062076637285675e-06, ++ 2.23951000184795544334e-06, ++ 2.51288861506598641053e-06, ++ 2.78418436219555765417e-06, ++ 3.05324669791958273155e-06, ++ 3.31992671265051673821e-06, ++ 3.58407721421717316118e-06, ++ 3.84555280837218626654e-06, ++ 4.10420997807660228022e-06, ++ 4.35990716151877168199e-06, ++ 4.61250482882560770565e-06, ++ 4.86186555742507531383e-06, ++ 5.10785410601973079235e-06, ++ 5.35033748713194356707e-06, ++ 5.58918503818238221671e-06, ++ 5.82426849106429956731e-06, ++ 6.05546204017706400874e-06, ++ 6.28264240888338113098e-06, ++ 6.50568891435568739365e-06, ++ 6.72448353077756515444e-06, ++ 6.93891095087089373919e-06, ++ 7.14885864570919282062e-06, ++ 7.35421692279753319929e-06, ++ 7.55487898238148465092e-06, ++ 7.75074097196019129528e-06, ++ 7.94170203897623056888e-06, ++ 8.12766438165342534124e-06, ++ 8.30853329796486298722e-06, ++ 8.48421723269773222391e-06, ++ 8.65462782259947107971e-06, ++ 8.81967993958106861606e-06, ++ 8.97929173195711876623e-06, ++ 9.13338466370594821242e-06, ++ 9.28188355172597093559e-06, ++ 9.42471660107943996656e-06, ++ 9.56181543820204782021e-06, ++ 9.69311514206661032516e-06, ++ 9.81855427328706617540e-06, ++ 9.93807490115107773816e-06, ++ 1.00516226285705943843e-05, ++ 1.01591466149406832020e-05, ++ 1.02605995968987750983e-05, ++ 1.03559379069769316912e-05, ++ 1.04451214901417424743e-05, ++ 1.05281139182170699055e-05, ++ 1.06048824021864677416e-05, ++ 1.06753978023731855288e-05, ++ 1.07396346364968783339e-05, ++ 1.07975710856074994448e-05, ++ 1.08491889978979006982e-05, ++ 1.08944738903980051003e-05, ++ 1.09334149485546700144e-05, ++ 1.09660050237023010909e-05, ++ 1.09922406284309627094e-05, ++ 1.10121219298593066863e-05, ++ 1.10256527408215773174e-05, ++ 1.10328405089781558080e-05, ++ 1.10336963038616736523e-05, ++ 1.10282348018699333952e-05, ++ 1.10164742692203395746e-05, ++ 1.09984365428796701980e-05, ++ 1.09741470094854162102e-05, ++ 1.09436345822753026573e-05, ++ 1.09069316760433128688e-05, ++ 1.08640741801411637853e-05, ++ 1.08151014295454121441e-05, ++ 1.07600561740116316219e-05, ++ 1.06989845453377939037e-05, ++ 1.06319360227604537122e-05, ++ 1.05589633965072819227e-05, ++ 1.04801227295333686110e-05, ++ 1.03954733174649689091e-05, ++ 1.03050776467800735478e-05, ++ 1.02090013512532056038e-05, ++ 1.01073131666939828753e-05, ++ 1.00000848840093901980e-05, ++ 9.88739130062094606394e-06, ++ 9.76931017026862892453e-06, ++ 9.64592215123430269373e-06, ++ 9.51731075301832287069e-06, ++ 9.38356228150362642153e-06, ++ 9.24476578264260636546e-06, ++ 9.10101298470273608427e-06, ++ 8.95239823910756736568e-06, ++ 8.79901845991063759865e-06, ++ 8.64097306194044156673e-06, ++ 8.47836389765517216299e-06, ++ 8.31129519274676613631e-06, ++ 8.13987348053439576051e-06, ++ 7.96420753518800302127e-06, ++ 7.78440830382320983472e-06, ++ 7.60058883750940706770e-06, ++ 7.41286422123340111201e-06, ++ 7.22135150286187937354e-06, ++ 7.02616962114339291517e-06, ++ 6.82743933279976089379e-06, ++ 6.62528313874512338812e-06, ++ 6.41982520947684842004e-06, ++ 6.21119130968985121773e-06, ++ 5.99950872215320453294e-06, ++ 5.78490617089735561883e-06, ++ 5.56751374375751685266e-06, ++ 5.34746281431924760940e-06, ++ 5.12488596331278031701e-06, ++ 4.89991689950258687289e-06, ++ 4.67269038011961418454e-06, ++ 4.44334213087987709952e-06, ++ 4.21200876564441589159e-06, ++ 3.97882770575729567648e-06, ++ 3.74393709911667144121e-06, ++ 3.50747573902317319374e-06, ++ 3.26958298285330172902e-06, ++ 3.03039867060520659957e-06, ++ 2.79006304336402052000e-06, ++ 2.54871666173396763366e-06, ++ 2.30650032428370582201e-06, ++ 2.06355498605534895103e-06, ++ 1.82002167717590069487e-06, ++ 1.57604142162576490206e-06, ++ 1.33175515621080687286e-06, ++ 1.08730364977607694810e-06, ++ 8.42827422715224723608e-07, ++ 5.98466666817798730862e-07, ++ 3.54361165500383015065e-07, ++ 1.10650214466601145526e-07, ++-1.32527457159341769654e-07, ++-3.75033765181279387019e-07, ++-6.16731348117982223764e-07, ++-8.57483644384870604974e-07, ++-1.09715496882697242401e-06, ++-1.33561058856459451812e-06, ++-1.57271679809768592289e-06, ++-1.80834099364739390638e-06, ++-2.04235174667385346287e-06, ++-2.27461887654183985059e-06, ++-2.50501352229047160599e-06, ++-2.73340821346838846000e-06, ++-2.95967693999581947631e-06, ++-3.18369522101568454449e-06, ++-3.40534017269651038867e-06, ++-3.62449057495060442016e-06, ++-3.84102693703176620771e-06, ++-4.05483156197683158547e-06, ++-4.26578860985994465493e-06, ++-4.47378415981817885059e-06, ++-4.67870627082610431870e-06, ++-4.88044504117963632650e-06, ++-5.07889266666103897304e-06, ++-5.27394349735436316360e-06, ++-5.46549409308178958515e-06, ++-5.65344327743282125745e-06, ++-5.83769219035584263823e-06, ++-6.01814433929215356056e-06, ++-6.19470564881734900520e-06, ++-6.36728450877158616566e-06, ++-6.53579182085452806356e-06, ++-6.70014104365581900433e-06, ++-6.86024823610766216613e-06, ++-7.01603209933177423939e-06, ++-7.16741401686316151218e-06, ++-7.31431809323110943569e-06, ++-7.45667119087909145226e-06, ++-7.59440296540647431485e-06, ++-7.72744589911581192265e-06, ++-7.85573533285050310242e-06, ++-7.97920949610866873263e-06, ++-8.09780953542020220872e-06, ++-8.21147954097478835185e-06, ++-8.32016657148992507269e-06, ++-8.42382067730890197923e-06, ++-8.52239492171977940256e-06, ++-8.61584540048746502295e-06, ++-8.70413125959197291938e-06, ++-8.78721471116717128705e-06, ++-8.86506104763514668932e-06, ++-8.93763865403249516855e-06, ++-9.00491901852594998912e-06, ++-9.06687674111571462719e-06, ++-9.12348954052592163661e-06, ++-9.17473825928260702616e-06, ++-9.22060686698159047512e-06, ++-9.26108246174664932824e-06, ++-9.29615526988461694400e-06, ++-9.32581864373973304274e-06, ++-9.35006905775386307602e-06, ++-9.36890610273917822759e-06, ++-9.38233247837104300938e-06, ++-9.39035398390946727946e-06, ++-9.39297950715976480397e-06, ++-9.39022101168187463889e-06, ++-9.38209352226113891724e-06, ++-9.36861510865258015606e-06, ++-9.34980686761262702199e-06, ++-9.32569290323271860845e-06, ++-9.29630030559048952147e-06, ++-9.26165912773481235900e-06, ++-9.22180236102228707016e-06, ++-9.17676590882337654416e-06, ++-9.12658855861738727770e-06, ++-9.07131195249644772880e-06, ++-9.01098055609939421230e-06, ++-8.94564162599733138977e-06, ++-8.87534517555361527068e-06, ++-8.80014393928162666969e-06, ++-8.72009333572471611652e-06, ++-8.63525142888329921994e-06, ++-8.54567888821502508222e-06, ++-8.45143894723457394103e-06, ++-8.35259736074052112995e-06, ++-8.24922236069722452712e-06, ++-8.14138461080064133836e-06, ++-8.02915715975743407074e-06, ++-7.91261539330765898304e-06, ++-7.79183698502164539547e-06, ++-7.66690184590263985908e-06, ++-7.53789207282747358732e-06, ++-7.40489189585616646447e-06, ++-7.26798762444797763775e-06, ++-7.12726759261192169612e-06, ++-6.98282210303029636403e-06, ++-6.83474337018834747465e-06, ++-6.68312546254524426573e-06, ++-6.52806424378415029071e-06, ++-6.36965731317252602944e-06, ++-6.20800394507595081702e-06, ++-6.04320502765754885186e-06, ++-5.87536300080224453186e-06, ++-5.70458179330339185380e-06, ++-5.53096675935019674964e-06, ++-5.35462461435186519118e-06, ++-5.17566337014321141424e-06, ++-4.99419226960263364762e-06, ++-4.81032172072758387396e-06, ++-4.62416323020455543279e-06, ++-4.43582933651357265599e-06, ++-4.24543354260686772332e-06, ++-4.05309024820171368161e-06, ++-3.85891468172737918331e-06, ++-3.66302283196632931856e-06, ++-3.46553137942988627687e-06, ++-3.26655762750855510455e-06, ++-3.06621943343732231445e-06, ++-2.86463513911618343607e-06, ++-2.66192350182618693409e-06, ++-2.45820362488117562057e-06, ++-2.25359488825541727446e-06, ++-2.04821687922720013799e-06, ++-1.84218932307831247064e-06, ++-1.63563201388926604866e-06, ++-1.42866474546994879804e-06, ++-1.22140724246515182631e-06, ++-1.01397909167432569799e-06, ++-8.06499673625078029042e-07, ++-5.99088094436327444290e-07, ++-3.91863118017023242330e-07, ++-1.84943098628889751524e-07, ++ 2.15540861419684426667e-08, ++ 2.27511101966967466315e-07, ++ 4.32811223880043209387e-07, ++ 6.37338401859019189379e-07, ++ 8.40977325854192905002e-07, ++ 1.04361349022508806704e-06, ++ 1.24513325755019998089e-06, ++ 1.44542392177450216890e-06, ++ 1.64437377065950114052e-06, ++ 1.84187214750444789869e-06, ++ 2.03780951209777257423e-06, ++ 2.23207750087511452161e-06, ++ 2.42456898624406490649e-06, ++ 2.61517813504639618351e-06, ++ 2.80380046612576570131e-06, ++ 2.99033290696995661509e-06, ++ 3.17467384939732300976e-06, ++ 3.35672320425774437633e-06, ++ 3.53638245511906924553e-06, ++ 3.71355471091059317744e-06, ++ 3.88814475749635763264e-06, ++ 4.06005910814819412596e-06, ++ 4.22920605290116388692e-06, ++ 4.39549570675089384069e-06, ++ 4.55884005668278723919e-06, ++ 4.71915300750006533998e-06, ++ 4.87635042643024103849e-06, ++ 5.03035018648692755928e-06, ++ 5.18107220856522701196e-06, ++ 5.32843850224952383525e-06, ++ 5.47237320531358473132e-06, ++ 5.61280262189333594894e-06, ++ 5.74965525931381193962e-06, ++ 5.88286186355211838841e-06, ++ 6.01235545332134090329e-06, ++ 6.13807135275468517243e-06, ++ 6.25994722267931996977e-06, ++ 6.37792309046513804878e-06, ++ 6.49194137843068450202e-06, ++ 6.60194693079779326846e-06, ++ 6.70788703918137587323e-06, ++ 6.80971146660357458814e-06, ++ 6.90737247002230281208e-06, ++ 7.00082482136491290685e-06, ++ 7.09002582705877526905e-06, ++ 7.17493534605098864026e-06, ++ 7.25551580631220637360e-06, ++ 7.33173221981546288786e-06, ++ 7.40355219598984530240e-06, ++ 7.47094595364170035832e-06, ++ 7.53388633134188754210e-06, ++ 7.59234879627670417821e-06, ++ 7.64631145156141268828e-06, ++ 7.69575504201604814413e-06, ++ 7.74066295840411851953e-06, ++ 7.78102124013589340075e-06, ++ 7.81681857643788967132e-06, ++ 7.84804630599365161535e-06, ++ 7.87469841505748138885e-06, ++ 7.89677153404848565748e-06, ++ 7.91426493262873480251e-06, ++ 7.92718051327426929855e-06, ++ 7.93552280334505359466e-06, ++ 7.93929894566308982874e-06, ++ 7.93851868760764620798e-06, ++ 7.93319436873791183408e-06, ++ 7.92334090695392168925e-06, ++ 7.90897578320756958670e-06, ++ 7.89011902477623500857e-06, ++ 7.86679318711244252764e-06, ++ 7.83902333428366876954e-06, ++ 7.80683701801724535304e-06, ++ 7.77026425536612447970e-06, ++ 7.72933750501182780370e-06, ++ 7.68409164222195630977e-06, ++ 7.63456393248006921998e-06, ++ 7.58079400380666152174e-06, ++ 7.52282381779056517397e-06, ++ 7.46069763935092151688e-06, ++ 7.39446200525034590259e-06, ++ 7.32416569138081104189e-06, ++ 7.24985967884426853560e-06, ++ 7.17159711885090219710e-06, ++ 7.08943329645732147265e-06, ++ 7.00342559317115033967e-06, ++ 6.91363344844324002262e-06, ++ 6.82011832007511287137e-06, ++ 6.72294364356627759040e-06, ++ 6.62217479042785679954e-06, ++ 6.51787902548926013278e-06, ++ 6.41012546322492830867e-06, ++ 6.29898502313035979733e-06, ++ 6.18453038417209923617e-06, ++ 6.06683593834504205765e-06, ++ 5.94597774336311937993e-06, ++ 5.82203347451249516448e-06, ++ 5.69508237570125013232e-06, ++ 5.56520520973042217313e-06, ++ 5.43248420782122392469e-06, ++ 5.29700301842786852943e-06, ++ 5.15884665536775968036e-06, ++ 5.01810144530070211867e-06, ++ 4.87485497458916059279e-06, ++ 4.72919603557198831207e-06, ++ 4.58121457228396545999e-06, ++ 4.43100162565413800605e-06, ++ 4.27864927821586065842e-06, ++ 4.12425059836174341351e-06, ++ 3.96789958417691884638e-06, ++ 3.80969110688415655311e-06, ++ 3.64972085393445999985e-06, ++ 3.48808527177698559195e-06, ++ 3.32488150834214283460e-06, ++ 3.16020735527182339492e-06, ++ 2.99416118993082249565e-06, ++ 2.82684191723347329501e-06, ++ 2.65834891131958394095e-06, ++ 2.48878195711375767025e-06, ++ 2.31824119180212634826e-06, ++ 2.14682704626095390252e-06, ++ 1.97464018646858031233e-06, ++ 1.80178145494066620423e-06, ++ 1.62835181221444846777e-06, ++ 1.45445227842166370380e-06, ++ 1.28018387498127474226e-06, ++ 1.10564756644572971662e-06, ++ 9.30944202533528893967e-07, ++ 7.56174460383558706575e-07, ++ 5.81438787057772137935e-07, ++ 4.06837342332995493781e-07, ++ 2.32469941807973572217e-07, ++ 5.84360003605464838908e-08, ++-1.15165524016196481795e-07, ++-2.88236185961157478515e-07, ++-4.60678108053030918551e-07, ++-6.32394035641693353382e-07, ++-8.03287391175248576365e-07, ++-9.73262327992278866677e-07, ++-1.14222378354964966348e-06, ++-1.31007753205661820651e-06, ++-1.47673023648642007660e-06, ++-1.64208949993695062100e-06, ++-1.80606391631259277593e-06, ++-1.96856312029973079598e-06, ++-2.12949783660893906853e-06, ++-2.28877992845738131554e-06, ++-2.44632244526540991875e-06, ++-2.60203966954189995785e-06, ++-2.75584716293343213363e-06, ++-2.90766181141288047594e-06, ++-3.05740186958367351418e-06, ++-3.20498700407640839933e-06, ++-3.35033833601523650274e-06, ++-3.49337848253191377853e-06, ++-3.63403159730610840275e-06, ++-3.77222341011111343188e-06, ++-3.90788126534447433042e-06, ++-4.04093415952591392912e-06, ++-4.17131277773873497690e-06, ++-4.29894952900307645335e-06, ++-4.42377858055843327302e-06, ++-4.54573589104088312044e-06, ++-4.66475924253666648223e-06, ++-4.78078827150107880212e-06, ++-4.89376449852186315914e-06, ++-5.00363135691748540988e-06, ++-5.11033422015512990528e-06, ++-5.21382042807596778544e-06, ++-5.31403931191554123584e-06, ++-5.41094221810950165016e-06, ++-5.50448253087047069913e-06, ++-5.59461569353127499173e-06, ++-5.68129922864175650784e-06, ++-5.76449275681243674909e-06, ++-5.84415801429719277657e-06, ++-5.92025886930820698860e-06, ++-5.99276133705720719759e-06, ++-6.06163359351762427620e-06, ++-6.12684598790327211872e-06, ++-6.18837105385967135374e-06, ++-6.24618351936512419082e-06, ++-6.30026031533919750782e-06, ++-6.35058058295712848316e-06, ++-6.39712567966953613306e-06, ++-6.43987918392721429004e-06, ++-6.47882689861198942782e-06, ++-6.51395685317499943250e-06, ++-6.54525930448471249620e-06, ++-6.57272673638766514792e-06, ++-6.59635385798559469776e-06, ++-6.61613760063350534395e-06, ++-6.63207711366379757420e-06, ++-6.64417375884241211495e-06, ++-6.65243110356349872368e-06, ++-6.65685491279031274194e-06, ++-6.65745313974966963219e-06, ++-6.65423591538958656902e-06, ++-6.64721553660889651050e-06, ++-6.63640645326926765439e-06, ++-6.62182525400028480084e-06, ++-6.60349065080916732668e-06, ++-6.58142346250719060277e-06, ++-6.55564659696565526196e-06, ++-6.52618503221475609801e-06, ++-6.49306579639951552747e-06, ++-6.45631794660739462695e-06, ++-6.41597254658263945040e-06, ++-6.37206264334415081952e-06, ++-6.32462324272206488792e-06, ++-6.27369128383118030161e-06, ++-6.21930561249836743221e-06, ++-6.16150695366234792122e-06, ++-6.10033788276449535378e-06, ++-6.03584279615001515287e-06, ++-5.96806788049923278545e-06, ++-5.89706108130940631553e-06, ++-5.82287207044756658384e-06, ++-5.74555221279694319542e-06, ++-5.66515453201526036843e-06, ++-5.58173367543274885226e-06, ++-5.49534587810695348729e-06, ++-5.40604892606070708310e-06, ++-5.31390211872570004752e-06, ++-5.21896623061564390400e-06, ++-5.12130347225329365013e-06, ++-5.02097745037598523939e-06, ++-4.91805312744465109411e-06, ++-4.81259678048159588907e-06, ++-4.70467595926274513780e-06, ++-4.59435944389046620792e-06, ++-4.48171720177175865495e-06, ++-4.36682034403174463086e-06, ++-4.24974108138584086476e-06, ++-4.13055267949739200956e-06, ++-4.00932941385171509125e-06, ++-3.88614652417032873467e-06, ++-3.76108016839454787432e-06, ++-3.63420737626596489757e-06, ++-3.50560600253174686132e-06, ++-3.37535467980288975763e-06, ++-3.24353277109359282678e-06, ++-3.11022032207008786392e-06, ++-2.97549801303766165317e-06, ++-2.83944711069247344591e-06, ++-2.70214941967136185736e-06, ++-2.56368723392205452038e-06, ++-2.42414328792700028154e-06, ++-2.28360070780758763959e-06, ++-2.14214296233768618929e-06, ++-1.99985381389505311643e-06, ++-1.85681726937918172971e-06, ++-1.71311753112369806511e-06, ++-1.56883894783374962087e-06, ++-1.42406596557164193617e-06, ++-1.27888307882598605392e-06, ++-1.13337478168536349648e-06, ++-9.87625519151570836163e-07, ++-8.41719638613064665786e-07, ++-6.95741341511352204364e-07, ++-5.49774635225687810111e-07, ++-4.03903285203652358387e-07, ++-2.58210767364619000791e-07, ++-1.12780220802875344963e-07, ++ 3.23055991830684097878e-08, ++ 1.76964367708724778855e-07, ++ 3.21114236543438189078e-07, ++ 4.64673879946063572873e-07, ++ 6.07562540071123210426e-07, ++ 7.49700071920371749061e-07, ++ 8.91006987815025860095e-07, ++ 1.03140450136427425456e-06, ++ 1.17081457090602433941e-06, ++ 1.30915994239623084851e-06, ++ 1.44636419172353368897e-06, ++ 1.58235176642631552541e-06, ++ 1.71704802678972351765e-06, ++ 1.85037928630060069746e-06, ++ 1.98227285143870244472e-06, ++ 2.11265706078306988520e-06, ++ 2.24146132341246485419e-06, ++ 2.36861615658157347906e-06, ++ 2.49405322264845444755e-06, ++ 2.61770536524023275885e-06, ++ 2.73950664463357572141e-06, ++ 2.85939237233350266468e-06, ++ 2.97729914483249884479e-06, ++ 3.09316487653266211920e-06, ++ 3.20692883181446816197e-06, ++ 3.31853165623432036477e-06, ++ 3.42791540683944990220e-06, ++ 3.53502358157950725138e-06, ++ 3.63980114780429875857e-06, ++ 3.74219456983363037592e-06, ++ 3.84215183558227767505e-06, ++ 3.93962248223251686305e-06, ++ 4.03455762093816806731e-06, ++ 4.12690996055009787897e-06, ++ 4.21663383035196559137e-06, ++ 4.30368520179581453395e-06, ++ 4.38802170922777651609e-06, ++ 4.46960266959470585012e-06, ++ 4.54838910112321163730e-06, ++ 4.62434374096319227585e-06, ++ 4.69743106178853688561e-06, ++ 4.76761728734836138144e-06, ++ 4.83487040696272629773e-06, ++ 4.89916018895741111830e-06, ++ 4.96045819303296106926e-06, ++ 5.01873778156387963061e-06, ++ 5.07397412982442447456e-06, ++ 5.12614423513811590729e-06, ++ 5.17522692494871317675e-06, ++ 5.22120286381103742548e-06, ++ 5.26405455930064433061e-06, ++ 5.30376636684197204255e-06, ++ 5.34032449345513637005e-06, ++ 5.37371700042290210606e-06, ++ 5.40393380487774409700e-06, ++ 5.43096668031327048978e-06, ++ 5.45480925602115842708e-06, ++ 5.47545701545760188074e-06, ++ 5.49290729354319507956e-06, ++ 5.50715927290080433390e-06, ++ 5.51821397903640711657e-06, ++ 5.52607427446940615412e-06, ++ 5.53074485181774806004e-06, ++ 5.53223222584567817618e-06, ++ 5.53054472448127380454e-06, ++ 5.52569247881201016526e-06, ++ 5.51768741206704879188e-06, ++ 5.50654322759543274221e-06, ++ 5.49227539585013617960e-06, ++ 5.47490114038823605808e-06, ++ 5.45443942289814534188e-06, ++ 5.43091092726536726806e-06, ++ 5.40433804268870449940e-06, ++ 5.37474484585942960917e-06, ++ 5.34215708221641970028e-06, ++ 5.30660214629070434828e-06, ++ 5.26810906115345203946e-06, ++ 5.22670845698185819179e-06, ++ 5.18243254875779933987e-06, ++ 5.13531511311474995156e-06, ++ 5.08539146434873193589e-06, ++ 5.03269842960957088606e-06, ++ 4.97727432328926165021e-06, ++ 4.91915892062447536855e-06, ++ 4.85839343053077035771e-06, ++ 4.79502046768650205761e-06, ++ 4.72908402388465426040e-06, ++ 4.66062943867137881228e-06, ++ 4.58970336929019699759e-06, ++ 4.51635375995152054556e-06, ++ 4.44062981044616933641e-06, ++ 4.36258194412544737627e-06, ++ 4.28226177526485068410e-06, ++ 4.19972207583456497138e-06, ++ 4.11501674169647542961e-06, ++ 4.02820075825028238263e-06, ++ 3.93933016554731602391e-06, ++ 3.84846202289762216335e-06, ++ 3.75565437298938188386e-06, ++ 3.66096620554404999308e-06, ++ 3.56445742052937107578e-06, ++ 3.46618879095310788465e-06, ++ 3.36622192525887642755e-06, ++ 3.26461922935039320666e-06, ++ 3.16144386826273460570e-06, ++ 3.05675972750716587302e-06, ++ 2.95063137411155366322e-06, ++ 2.84312401738004221383e-06, ++ 2.73430346939548900412e-06, ++ 2.62423610528835733665e-06, ++ 2.51298882329570483720e-06, ++ 2.40062900463402164141e-06, ++ 2.28722447320975292833e-06, ++ 2.17284345519123839340e-06, ++ 2.05755453846596430753e-06, ++ 1.94142663200690945903e-06, ++ 1.82452892517181498007e-06, ++ 1.70693084695912356741e-06, ++ 1.58870202524435859482e-06, ++ 1.46991224602059460634e-06, ++ 1.35063141266662197534e-06, ++ 1.23092950526634752769e-06, ++ 1.11087654000282617921e-06, ++ 9.90542528650260827215e-07, ++ 8.69997438187136635693e-07, ++ 7.49311150553558232788e-07, ++ 6.28553422575956171735e-07, ++ 5.07793846080199777306e-07, ++ 3.87101808219950752071e-07, ++ 2.66546452036637359768e-07, ++ 1.46196637279211919523e-07, ++ 2.61209014996513097622e-08, ++-9.36125785480710641559e-08, ++-2.12936025188332329408e-07, ++-3.31782097760571907408e-07, ++-4.50083930191668236211e-07, ++-5.67775168183275709294e-07, ++-6.84790005993688176635e-07, ++-8.01063222793833814618e-07, ++-9.16530218579230311038e-07, ++-1.03112704961422672079e-06, ++-1.14479046339492176093e-06, ++-1.25745793310772014899e-06, ++-1.36906769156673085052e-06, ++-1.47955876461155409369e-06, ++-1.58887100394770566988e-06, ++-1.69694511941227368702e-06, ++-1.80372271064780189541e-06, ++-1.90914629816775581196e-06, ++-2.01315935379763895325e-06, ++-2.11570633047440601331e-06, ++-2.21673269139235624129e-06, ++-2.31618493847693730396e-06, ++-2.41401064017204397923e-06, ++-2.51015845853012064279e-06, ++-2.60457817558802397410e-06, ++-2.69722071901685094830e-06, ++-2.78803818703287373008e-06, ++-2.87698387255719700099e-06, ++-2.96401228661247619401e-06, ++-3.04907918094525491427e-06, ++-3.13214156986324088414e-06, ++-3.21315775127703456810e-06, ++-3.29208732693637732224e-06, ++-3.36889122185290401895e-06, ++-3.44353170289642487268e-06, ++-3.51597239656325077098e-06, ++-3.58617830590191733468e-06, ++-3.65411582659302460743e-06, ++-3.71975276217506551713e-06, ++-3.78305833841012117849e-06, ++-3.84400321678365093078e-06, ++-3.90255950713312254181e-06, ++-3.95870077940074512301e-06, ++-4.01240207450610770714e-06, ++-4.06363991433488812364e-06, ++-4.11239231084125285599e-06, ++-4.15863877425935865654e-06, ++-4.20236032042448446743e-06, ++-4.24353947720017342875e-06, ++-4.28216029001119185047e-06, ++-4.31820832648155806497e-06, ++-4.35167068017766995946e-06, ++-4.38253597345699451516e-06, ++-4.41079435942349164690e-06, ++-4.43643752299069560910e-06, ++-4.45945868105587513408e-06, ++-4.47985258178600159821e-06, ++-4.49761550302029909350e-06, ++-4.51274524979143300062e-06, ++-4.52524115097084023650e-06, ++-4.53510405504175193850e-06, ++-4.54233632500539397060e-06, ++-4.54694183242584894293e-06, ++-4.54892595061959283142e-06, ++-4.54829554699628510261e-06, ++-4.54505897455774022598e-06, ++-4.53922606256257512138e-06, ++-4.53080810636444806448e-06, ++-4.51981785643228738179e-06, ++-4.50626950656128519675e-06, ++-4.49017868128402610519e-06, ++-4.47156242249136545128e-06, ++-4.45043917527324955132e-06, ++-4.42682877299008102390e-06, ++-4.40075242158549665903e-06, ++-4.37223268315208425070e-06, ++-4.34129345876175116439e-06, ++-4.30795997057291989114e-06, ++-4.27225874322715952063e-06, ++-4.23421758454818478526e-06, ++-4.19386556555651685739e-06, ++-4.15123299981356679695e-06, ++-4.10635142210863573125e-06, ++-4.05925356650451797034e-06, ++-4.00997334375461245165e-06, ++-3.95854581810788347368e-06, ++-3.90500718351647261954e-06, ++-3.84939473926163028560e-06, ++-3.79174686501394100978e-06, ++-3.73210299534384178129e-06, ++-3.67050359369971365087e-06, ++-3.60699012586834896589e-06, ++-3.54160503293725947090e-06, ++-3.47439170377438781006e-06, ++-3.40539444704242567051e-06, ++-3.33465846276757226665e-06, ++-3.26222981347759901722e-06, ++-3.18815539492950643052e-06, ++-3.11248290644416109035e-06, ++-3.03526082086643820009e-06, ++-2.95653835416947222251e-06, ++-2.87636543472176765438e-06, ++-2.79479267223601303066e-06, ++-2.71187132641859964837e-06, ++-2.62765327533899515464e-06, ++-2.54219098353815390706e-06, ++-2.45553746989530186833e-06, ++-2.36774627527249690158e-06, ++-2.27887142995641191922e-06, ++-2.18896742091688744107e-06, ++-2.09808915890182256402e-06, ++-2.00629194538800892082e-06, ++-1.91363143940754862785e-06, ++-1.82016362426948875164e-06, ++-1.72594477419635162234e-06, ++-1.63103142089514905451e-06, ++-1.53548032008255493308e-06, ++-1.43934841798375985031e-06, ++-1.34269281782482158857e-06, ++-1.24557074633660619018e-06, ++-1.14803952029313359972e-06, ++-1.05015651309915032019e-06, ++-9.51979121449571438300e-07, ++-8.53564732078559276071e-07, ++-7.54970688617303580583e-07, ++-6.56254258580785667422e-07, ++-5.57472600498841932364e-07, ++-4.58682731214803567250e-07, ++-3.59941493366721268602e-07, ++-2.61305523070885236846e-07, ++-1.62831217825798099669e-07, ++-6.45747046531622918148e-08, ++ 3.34081915028460607542e-08, ++ 1.31061979105115269233e-07, ++ 2.28331531061093047517e-07, ++ 3.25162115452506418290e-07, ++ 4.21499425940175324931e-07, ++ 5.17289611827256223732e-07, ++ 6.12479307764515172907e-07, ++ 7.07015663081470306902e-07, ++ 8.00846370727535963142e-07, ++ 8.93919695807548723643e-07, ++ 9.86184503696360592316e-07, ++ 1.07759028771747680805e-06, ++ 1.16808719637099324993e-06, ++ 1.25762606009643313325e-06, ++ 1.34615841755636422783e-06, ++ 1.43363654142701431353e-06, ++ 1.52001346368244521319e-06, ++ 1.60524300035914707475e-06, ++ 1.68927977578831839769e-06, ++ 1.77207924628335479643e-06, ++ 1.85359772327053896192e-06, ++ 1.93379239585117203927e-06, ++ 2.01262135278386203690e-06, ++ 2.09004360387575857427e-06, ++ 2.16601910077334100819e-06, ++ 2.24050875713967010219e-06, ++ 2.31347446821209968128e-06, ++ 2.38487912972836386475e-06, ++ 2.45468665621208123303e-06, ++ 2.52286199861151334042e-06, ++ 2.58937116127982583862e-06, ++ 2.65418121829169547439e-06, ++ 2.71726032908779813765e-06, ++ 2.77857775344037205028e-06, ++ 2.83810386573328862561e-06, ++ 2.89581016855032907358e-06, ++ 2.95166930556685687487e-06, ++ 3.00565507373729543829e-06, ++ 3.05774243477661226693e-06, ++ 3.10790752592901346437e-06, ++ 3.15612767002082679062e-06, ++ 3.20238138479374552623e-06, ++ 3.24664839151536307337e-06, ++ 3.28890962286420223838e-06, ++ 3.32914723008697677049e-06, ++ 3.36734458942622126102e-06, ++ 3.40348630781685071737e-06, ++ 3.43755822785064014868e-06, ++ 3.46954743200808672055e-06, ++ 3.49944224615744907365e-06, ++ 3.52723224232133607687e-06, ++ 3.55290824071145572597e-06, ++ 3.57646231103275916171e-06, ++ 3.59788777305844983311e-06, ++ 3.61717919647792329573e-06, ++ 3.63433240001992844556e-06, ++ 3.64934444985388431064e-06, ++ 3.66221365727246736405e-06, ++ 3.67293957565916496310e-06, ++ 3.68152299674478401627e-06, ++ 3.68796594615754264255e-06, ++ 3.69227167827109476069e-06, ++ 3.69444467035641090999e-06, ++ 3.69449061604251067923e-06, ++ 3.69241641809255407447e-06, ++ 3.68823018050121809172e-06, ++ 3.68194119992049474706e-06, ++ 3.67355995642082701168e-06, ++ 3.66309810359520425440e-06, ++ 3.65056845801397982505e-06, ++ 3.63598498803867909083e-06, ++ 3.61936280200335549955e-06, ++ 3.60071813577239656246e-06, ++ 3.58006833968386969076e-06, ++ 3.55743186488838466342e-06, ++ 3.53282824909282608752e-06, ++ 3.50627810171953317514e-06, ++ 3.47780308849131654283e-06, ++ 3.44742591545312398587e-06, ++ 3.41517031244148100487e-06, ++ 3.38106101601311265410e-06, ++ 3.34512375184437054455e-06, ++ 3.30738521661340731931e-06, ++ 3.26787305937770838069e-06, ++ 3.22661586245842979003e-06, ++ 3.18364312184520498148e-06, ++ 3.13898522713461071050e-06, ++ 3.09267344101413714559e-06, ++ 3.04473987830630518563e-06, ++ 2.99521748458606001315e-06, ++ 2.94414001438530427212e-06, ++ 2.89154200899865406331e-06, ++ 2.83745877390457421898e-06, ++ 2.78192635581631105178e-06, ++ 2.72498151937718603862e-06, ++ 2.66666172351495323772e-06, ++ 2.60700509747023960325e-06, ++ 2.54605041651313995614e-06, ++ 2.48383707736592921508e-06, ++ 2.42040507334248784649e-06, ++ 2.35579496922448726218e-06, ++ 2.29004787588705505843e-06, ++ 2.22320542469039954603e-06, ++ 2.15530974165298533032e-06, ++ 2.08640342142196774357e-06, ++ 2.01652950105673072815e-06, ++ 1.94573143364140580303e-06, ++ 1.87405306174228235695e-06, ++ 1.80153859072609659169e-06, ++ 1.72823256195534356335e-06, ++ 1.65417982587563572154e-06, ++ 1.57942551501363361584e-06, ++ 1.50401501689824875799e-06, ++ 1.42799394692362609795e-06, ++ 1.35140812116891807883e-06, ++ 1.27430352919099175392e-06, ++ 1.19672630680600165567e-06, ++ 1.11872270887555548908e-06, ++ 1.04033908211438514454e-06, ++ 9.61621837932593595614e-07, ++ 8.82617425331797973857e-07, ++ 8.03372303868260350135e-07, ++ 7.23932916698523442543e-07, ++ 6.44345663725568065214e-07, ++ 5.64656874857124303848e-07, ++ 4.84912783394116915736e-07, ++ 4.05159499563223062539e-07, ++ 3.25442984208674460614e-07, ++ 2.45809022658112731786e-07, ++ 1.66303198777160306628e-07, ++ 8.69708692272027903669e-08, ++ 7.85713794072117322522e-09, ++-7.09931691716676215865e-08, ++-1.49535529268482347680e-07, ++-2.27725747365171486868e-07, ++-3.05519980848837318375e-07, ++-3.82874763706501346521e-07, ++-4.59747030453731194650e-07, ++-5.36094139750675601478e-07, ++-6.11873897692766847291e-07, ++-6.87044580763594041777e-07, ++-7.61564958437679165913e-07, ++-8.35394315421141605512e-07, ++-9.08492473518483241836e-07, ++-9.80819813113976304058e-07, ++-1.05233729425625164956e-06, ++-1.12300647733612530584e-06, ++-1.19278954334437999738e-06, ++-1.26164931370253481165e-06, ++-1.32954926965386881663e-06, ++-1.39645357120588546386e-06, ++-1.46232707561449405058e-06, ++-1.52713535540064995902e-06, ++-1.59084471589067184708e-06, ++-1.65342221227063001310e-06, ++-1.71483566614886781052e-06, ++-1.77505368161545113680e-06, ++-1.83404566079325564072e-06, ++-1.89178181887221348355e-06, ++-1.94823319862069280282e-06, ++-2.00337168436514229084e-06, ++-2.05717001543450264187e-06, ++-2.10960179906117775394e-06, ++-2.16064152273371070425e-06, ++-2.21026456599565581941e-06, ++-2.25844721168562965249e-06, ++-2.30516665661384152826e-06, ++-2.35040102167078548251e-06, ++-2.39412936136406383631e-06, ++-2.43633167277975945574e-06, ++-2.47698890396499016471e-06, ++-2.51608296172876497540e-06, ++-2.55359671885850362846e-06, ++-2.58951402074998920553e-06, ++-2.62381969144887382413e-06, ++-2.65649953910217082780e-06, ++-2.68754036081854804860e-06, ++-2.71692994693660306132e-06, ++-2.74465708470059315127e-06, ++-2.77071156134348277634e-06, ++-2.79508416657755373943e-06, ++-2.81776669449305452715e-06, ++-2.83875194486578497579e-06, ++-2.85803372387518624004e-06, ++-2.87560684423360267943e-06, ++-2.89146712472987382482e-06, ++-2.90561138918856466730e-06, ++-2.91803746484780862573e-06, ++-2.92874418015865453993e-06, ++-2.93773136200894074995e-06, ++-2.94499983237584587605e-06, ++-2.95055140441023676853e-06, ++-2.95438887795761926909e-06, ++-2.95651603451999344031e-06, ++-2.95693763166347438543e-06, ++-2.95565939687693110985e-06, ++-2.95268802088687215850e-06, ++-2.94803115043462330338e-06, ++-2.94169738052167357241e-06, ++-2.93369624612953431959e-06, ++-2.92403821342084482528e-06, ++-2.91273467042851974806e-06, ++-2.89979791724021359437e-06, ++-2.88524115568552475564e-06, ++-2.86907847853367548813e-06, ++-2.85132485820962740443e-06, ++-2.83199613503694229294e-06, ++-2.81110900501579379722e-06, ++-2.78868100714493697984e-06, ++-2.76473051029656053377e-06, ++-2.73927669965326065288e-06, ++-2.71233956271653185119e-06, ++-2.68393987489646478775e-06, ++-2.65409918469246439721e-06, ++-2.62283979847510613493e-06, ++-2.59018476487935021233e-06, ++-2.55615785881960940799e-06, ++-2.52078356513729817673e-06, ++-2.48408706189168983184e-06, ++-2.44609420330517115589e-06, ++-2.40683150237354884389e-06, ++-2.36632611315396292482e-06, ++-2.32460581274025857810e-06, ++-2.28169898293852692147e-06, ++-2.23763459165468254892e-06, ++-2.19244217400458949748e-06, ++-2.14615181316064773556e-06, ++-2.09879412094551363500e-06, ++-2.05040021818578316432e-06, ++-2.00100171483782110160e-06, ++-1.95063068989816435785e-06, ++-1.89931967111113481318e-06, ++-1.84710161448549238660e-06, ++-1.79400988363453340540e-06, ++-1.74007822895002694472e-06, ++-1.68534076662445773069e-06, ++-1.62983195753369262521e-06, ++-1.57358658599301992021e-06, ++-1.51663973839943020132e-06, ++-1.45902678177302702247e-06, ++-1.40078334221047426768e-06, ++-1.34194528326338093541e-06, ++-1.28254868425455118572e-06, ++-1.22262981854484770803e-06, ++-1.16222513176453179750e-06, ++-1.10137122001903489497e-06, ++-1.04010480808683832089e-06, ++-9.78462727617415689625e-07, ++-9.16481895344879420621e-07, ++-8.54199291329082445989e-07, ++-7.91651937236919995967e-07, ++-7.28876874676428218509e-07, ++-6.65911143596146899220e-07, ++-6.02791760762178925358e-07, ++-5.39555698325257482511e-07, ++-4.76239862490052774988e-07, ++-4.12881072298987595103e-07, ++-3.49516038541690854304e-07, ++-2.86181342804064272744e-07, ++-2.22913416666661733927e-07, ++-1.59748521064022687018e-07, ++-9.67227258185584328684e-08, ++-3.38718893582766938970e-08, ++ 2.87683613695412570172e-08, ++ 9.11626507777930940099e-08, ++ 1.53275874301229528026e-07, ++ 2.15073217829609376242e-07, ++ 2.76520176901766833620e-07, ++ 3.37582575650052953442e-07, ++ 3.98226585485819280378e-07, ++ 4.58418743513730979390e-07, ++ 5.18125970668006750755e-07, ++ 5.77315589558766536398e-07, ++ 6.35955342019936643428e-07, ++ 6.94013406349350241498e-07, ++ 7.51458414232049067549e-07, ++ 8.08259467337988365555e-07, ++ 8.64386153585596963575e-07, ++ 9.19808563062980821321e-07, ++ 9.74497303597860849836e-07, ++ 1.02842351597027310336e-06, ++ 1.08155888875847427063e-06, ++ 1.13387567281072351305e-06, ++ 1.18534669533762647095e-06, ++ 1.23594537361629275206e-06, ++ 1.28564572830046089292e-06, ++ 1.33442239633006842733e-06, ++ 1.38225064343414957853e-06, ++ 1.42910637622117390762e-06, ++ 1.47496615385122660710e-06, ++ 1.51980719928470874307e-06, ++ 1.56360741010246000211e-06, ++ 1.60634536889251227715e-06, ++ 1.64800035319896004223e-06, ++ 1.68855234502865835288e-06, ++ 1.72798203991181336901e-06, ++ 1.76627085551270775016e-06, ++ 1.80340093978719079100e-06, ++ 1.83935517868373362992e-06, ++ 1.87411720338522404077e-06, ++ 1.90767139708889131071e-06, ++ 1.94000290132205409853e-06, ++ 1.97109762179168084047e-06, ++ 2.00094223376600235736e-06, ++ 2.02952418698673586018e-06, ++ 2.05683171011063731075e-06, ++ 2.08285381467995650348e-06, ++ 2.10758029862004405122e-06, ++ 2.13100174926526816907e-06, ++ 2.15310954591206726866e-06, ++ 2.17389586189977999014e-06, ++ 2.19335366621972616361e-06, ++ 2.21147672465324978376e-06, ++ 2.22825960043981455305e-06, ++ 2.24369765447650766928e-06, ++ 2.25778704505024781826e-06, ++ 2.27052472710528124541e-06, ++ 2.28190845104710389511e-06, ++ 2.29193676108612702237e-06, ++ 2.30060899312292095007e-06, ++ 2.30792527217872156528e-06, ++ 2.31388650937382493307e-06, ++ 2.31849439845752497517e-06, ++ 2.32175141189321189097e-06, ++ 2.32366079650259840000e-06, ++ 2.32422656867321367902e-06, ++ 2.32345350913359285878e-06, ++ 2.32134715730082542021e-06, ++ 2.31791380520532445909e-06, ++ 2.31316049099797609704e-06, ++ 2.30709499204498586449e-06, ++ 2.29972581761599807363e-06, ++ 2.29106220117129925082e-06, ++ 2.28111409225408822216e-06, ++ 2.26989214799404362660e-06, ++ 2.25740772422860767231e-06, ++ 2.24367286624860951035e-06, ++ 2.22870029917506208745e-06, ++ 2.21250341797413235839e-06, ++ 2.19509627711749353150e-06, ++ 2.17649357989546114511e-06, ++ 2.15671066739044013289e-06, ++ 2.13576350711850353347e-06, ++ 2.11366868134673037600e-06, ++ 2.09044337509497678252e-06, ++ 2.06610536382953460056e-06, ++ 2.04067300085759004675e-06, ++ 2.01416520443082648289e-06, ++ 1.98660144456682630719e-06, ++ 1.95800172959701842290e-06, ++ 1.92838659245047678824e-06, ++ 1.89777707668168250577e-06, ++ 1.86619472225263513379e-06, ++ 1.83366155107768614062e-06, ++ 1.80020005234090271963e-06, ++ 1.76583316759495554916e-06, ++ 1.73058427565218490126e-06, ++ 1.69447717727606724807e-06, ++ 1.65753607968390744685e-06, ++ 1.61978558087014416989e-06, ++ 1.58125065376022968674e-06, ++ 1.54195663020503578884e-06, ++ 1.50192918482580689152e-06, ++ 1.46119431871970167741e-06, ++ 1.41977834303604934816e-06, ++ 1.37770786243346328062e-06, ++ 1.33500975842797161234e-06, ++ 1.29171117264239797330e-06, ++ 1.24783948996719974604e-06, ++ 1.20342232164300215316e-06, ++ 1.15848748827509167059e-06, ++ 1.11306300279010028919e-06, ++ 1.06717705334514073476e-06, ++ 1.02085798619962035772e-06, ++ 9.74134288559960768089e-07, ++ 9.27034571407410057516e-07, ++ 8.79587552319131062115e-07, ++ 8.31822038292692897728e-07, ++ 7.83766908584062082816e-07, ++ 7.35451097569259232492e-07, ++ 6.86903577639007368221e-07, ++ 6.38153342137989641187e-07, ++ 5.89229388356360835835e-07, ++ 5.40160700585000643775e-07, ++ 4.90976233243457187642e-07, ++ 4.41704894091038422500e-07, ++ 3.92375527528903780770e-07, ++ 3.43016898004928283419e-07, ++ 2.93657673529008577219e-07, ++ 2.44326409308779522962e-07, ++ 1.95051531514807551777e-07, ++ 1.45861321184445247206e-07, ++ 9.67838982725986303713e-08, ++ 4.78472058599844523217e-08, ++-9.21005474744702503668e-10, ++-4.94931931086882342167e-08, ++-9.78420376464564573501e-08, ++-1.45940458001584575920e-07, ++-1.93761626279445676683e-07, ++-2.41278982453654766505e-07, ++-2.88466248828108414775e-07, ++-3.35297444276962340684e-07, ++-3.81746898255006320598e-07, ++-4.27789264571066302430e-07, ++-4.73399534917222114972e-07, ++-5.18553052146814792709e-07, ++-5.63225523294378261140e-07, ++-6.07393032330819015965e-07, ++-6.51032052647343771201e-07, ++-6.94119459261828810033e-07, ++-7.36632540741495661135e-07, ++-7.78549010835974351873e-07, ++-8.19847019815002990540e-07, ++-8.60505165505228740834e-07, ++-9.00502504020766893004e-07, ++-9.39818560182277438796e-07, ++-9.78433337620207624330e-07, ++-1.01632732855600549368e-06, ++-1.05348152325874204263e-06, ++-1.08987741917143933322e-06, ++-1.12549702970306422209e-06, ++-1.16032289268355194760e-06, ++-1.19433807847637408471e-06, ++-1.22752619774656060195e-06, ++-1.25987140888039317136e-06, ++-1.29135842505383920910e-06, ++-1.32197252094692572073e-06, ++-1.35169953910148305289e-06, ++-1.38052589591981443812e-06, ++-1.40843858730261145449e-06, ++-1.43542519392307942238e-06, ++-1.46147388613708025001e-06, ++-1.48657342852669403075e-06, ++-1.51071318407641715728e-06, ++-1.53388311798088013959e-06, ++-1.55607380108330755062e-06, ++-1.57727641294412167073e-06, ++-1.59748274453934551225e-06, ++-1.61668520058867329841e-06, ++-1.63487680151331660552e-06, ++-1.65205118502362447400e-06, ++-1.66820260733800235944e-06, ++-1.68332594403215350657e-06, ++-1.69741669052133461662e-06, ++-1.71047096217573973425e-06, ++-1.72248549407075639464e-06, ++-1.73345764037363372509e-06, ++-1.74338537336835821088e-06, ++-1.75226728212076132235e-06, ++-1.76010257078606954751e-06, ++-1.76689105656130685063e-06, ++-1.77263316728519251133e-06, ++-1.77732993868832065915e-06, ++-1.78098301129675234904e-06, ++-1.78359462699196298197e-06, ++-1.78516762523086079262e-06, ++-1.78570543892935940332e-06, ++-1.78521209001314350987e-06, ++-1.78369218463975973750e-06, ++-1.78115090809610287207e-06, ++-1.77759401937562411090e-06, ++-1.77302784543973451412e-06, ++-1.76745927516809092517e-06, ++-1.76089575300256703723e-06, ++-1.75334527228990434716e-06, ++-1.74481636832821328595e-06, ++-1.73531811112254267233e-06, ++-1.72486009785515407010e-06, ++-1.71345244507588775535e-06, ++-1.70110578061850780769e-06, ++-1.68783123524888313502e-06, ++-1.67364043405101201273e-06, ++-1.65854548755706267844e-06, ++-1.64255898262770882562e-06, ++-1.62569397308913031908e-06, ++-1.60796397013341495032e-06, ++-1.58938293248850158598e-06, ++-1.56996525636511224694e-06, ++-1.54972576518680987152e-06, ++-1.52867969911091771475e-06, ++-1.50684270434656038082e-06, ++-1.48423082227753830000e-06, ++-1.46086047839705183582e-06, ++-1.43674847106163933866e-06, ++-1.41191196007170637922e-06, ++-1.38636845508614875617e-06, ++-1.36013580387858669546e-06, ++-1.33323218044282189100e-06, ++-1.30567607295518684662e-06, ++-1.27748627160150214245e-06, ++-1.24868185627640912946e-06, ++-1.21928218416289764874e-06, ++-1.18930687719987378282e-06, ++-1.15877580944566389195e-06, ++-1.12770909434537172875e-06, ++-1.09612707191003274157e-06, ++-1.06405029581553169958e-06, ++-1.03149952042926247822e-06, ++-9.98495687772529807701e-07, ++-9.65059914426676481838e-07, ++-9.31213478390952664649e-07, ++-8.96977805900184483883e-07, ++-8.62374458209779445916e-07, ++-8.27425118357190793336e-07, ++-7.92151577906262162004e-07, ++-7.56575723683538659993e-07, ++-7.20719524513991164460e-07, ++-6.84605017964106205270e-07, ++-6.48254297100182736997e-07, ++-6.11689497269627655389e-07, ++-5.74932782912928941364e-07, ++-5.38006334414506664360e-07, ++-5.00932334998829214645e-07, ++-4.63732957681074963406e-07, ++-4.26430352278680451037e-07, ++-3.89046632491231587593e-07, ++-3.51603863057291967577e-07, ++-3.14124046993758822385e-07, ++-2.76629112926271202933e-07, ++-2.39140902517306048575e-07, ++-2.01681157999109538668e-07, ++-1.64271509818435231461e-07, ++-1.26933464399964462611e-07, ++-8.96883920351864315859e-08, ++-5.25575149034115698627e-08, ++-1.55618952314867990895e-08, ++ 2.12775764013299585065e-08, ++ 5.79401926069906488081e-08, ++ 9.44054405745448819568e-08, ++ 1.30653013292186337421e-07, ++ 1.66662820599558795692e-07, ++ 2.02415000063943526019e-07, ++ 2.37889927675723810546e-07, ++ 2.73068228356823773127e-07, ++ 3.07930786275391611075e-07, ++ 3.42458754964303537689e-07, ++ 3.76633567235821728614e-07, ++ 4.10436944888391124100e-07, ++ 4.43850908200505621429e-07, ++ 4.76857785206895217304e-07, ++ 5.09440220752432540740e-07, ++ 5.41581185319310635908e-07, ++ 5.73263983623200237778e-07, ++ 6.04472262974243596559e-07, ++ 6.35190021398912689916e-07, ++ 6.65401615518975020092e-07, ++ 6.95091768183470321082e-07, ++ 7.24245575851318119156e-07, ++ 7.52848515719723294374e-07, ++ 7.80886452596346764020e-07, ++ 8.08345645511779781934e-07, ++ 8.35212754069576196438e-07, ++ 8.61474844531168266227e-07, ++ 8.87119395633187721666e-07, ++ 9.12134304134851931249e-07, ++ 9.36507890093278214952e-07, ++ 9.60228901864740647514e-07, ++ 9.83286520829949339681e-07, ++ 1.00567036584242141413e-06, ++ 1.02737049739676264377e-06, ++ 1.04837742151761943520e-06, ++ 1.06868209336723852610e-06, ++ 1.08827592057027628516e-06, ++ 1.10715076625582966250e-06, ++ 1.12529895181575091329e-06, ++ 1.14271325937887085896e-06, ++ 1.15938693400089711674e-06, ++ 1.17531368556989454737e-06, ++ 1.19048769042744956491e-06, ++ 1.20490359270577919489e-06, ++ 1.21855650538120670311e-06, ++ 1.23144201104462276445e-06, ++ 1.24355616238968221938e-06, ++ 1.25489548241968085992e-06, ++ 1.26545696437420174112e-06, ++ 1.27523807137680262633e-06, ++ 1.28423673580516101703e-06, ++ 1.29245135838526580120e-06, ++ 1.29988080701139087871e-06, ++ 1.30652441529377014066e-06, ++ 1.31238198083599927004e-06, ++ 1.31745376324439163689e-06, ++ 1.32174048187173134272e-06, ++ 1.32524331329766233412e-06, ++ 1.32796388854876269223e-06, ++ 1.32990429006080199844e-06, ++ 1.33106704838625078829e-06, ++ 1.33145513865011407038e-06, ++ 1.33107197675730615317e-06, ++ 1.32992141535492971224e-06, ++ 1.32800773955295289713e-06, ++ 1.32533566240690744947e-06, ++ 1.32191032016635722368e-06, ++ 1.31773726729301165080e-06, ++ 1.31282247125248552902e-06, ++ 1.30717230708382066220e-06, ++ 1.30079355175099455860e-06, ++ 1.29369337828076866856e-06, ++ 1.28587934969133494247e-06, ++ 1.27735941271630673508e-06, ++ 1.26814189132872078392e-06, ++ 1.25823548006989592576e-06, ++ 1.24764923718779050332e-06, ++ 1.23639257759010710187e-06, ++ 1.22447526561697376243e-06, ++ 1.21190740763842257076e-06, ++ 1.19869944448191002670e-06, ++ 1.18486214369488304102e-06, ++ 1.17040659164850020835e-06, ++ 1.15534418548697581979e-06, ++ 1.13968662492878543633e-06, ++ 1.12344590392501977927e-06, ++ 1.10663430218058598693e-06, ++ 1.08926437654394660522e-06, ++ 1.07134895227114512445e-06, ++ 1.05290111416989715657e-06, ++ 1.03393419762981751439e-06, ++ 1.01446177954410255975e-06, ++ 9.94497669129371662775e-07, ++ 9.74055898649058925340e-07, ++ 9.53150714046586472362e-07, ++ 9.31796565494312280840e-07, ++ 9.10008097864302267693e-07, ++ 8.87800141127001133190e-07, ++ 8.65187700683895514984e-07, ++ 8.42185947640272748656e-07, ++ 8.18810209024182236434e-07, ++ 7.95075957957726542799e-07, ++ 7.70998803786799171281e-07, ++ 7.46594482175384812077e-07, ++ 7.21878845170593542560e-07, ++ 6.96867851244202251346e-07, ++ 6.71577555317616239466e-07, ++ 6.46024098775229858276e-07, ++ 6.20223699473059009471e-07, ++ 5.94192641748351015229e-07, ++ 5.67947266436226132378e-07, ++ 5.41503960899324198661e-07, ++ 5.14879149076390935720e-07, ++ 4.88089281555710163631e-07, ++ 4.61150825679230424805e-07, ++ 4.34080255683209686411e-07, ++ 4.06894042881135298369e-07, ++ 3.79608645894640438035e-07, ++ 3.52240500938070933540e-07, ++ 3.24806012162310247429e-07, ++ 2.97321542063398880870e-07, ++ 2.69803401961428131034e-07, ++ 2.42267842555118836346e-07, ++ 2.14731044557422131870e-07, ++ 1.87209109417413194962e-07, ++ 1.59718050133666455064e-07, ++ 1.32273782164225461408e-07, ++ 1.04892114438199221113e-07, ++ 7.75887404739308462697e-08, ++ 5.03792296086632588358e-08, ++ 2.32790183440865896232e-08, ++-3.69659818658931578941e-09, ++-3.05324746267394544896e-08, ++-5.72136236741530471848e-08, ++-8.37252242245850243792e-08, ++-1.10052629376678321428e-07, ++-1.36181374294073481367e-07, ++-1.62097183920627326452e-07, ++-1.87785980544769814165e-07, ++-2.13233891209139598521e-07, ++-2.38427254961746979659e-07, ++-2.63352629945029146904e-07, ++-2.87996800319276546365e-07, ++-3.12346783017024135980e-07, ++-3.36389834325182185351e-07, ++-3.60113456291384048568e-07, ++-3.83505402952390790727e-07, ++-4.06553686380447893525e-07, ++-4.29246582545680592520e-07, ++-4.51572636991498591533e-07, ++-4.73520670320518712649e-07, ++-4.95079783488583814637e-07, ++-5.16239362904583738092e-07, ++-5.36989085333807117288e-07, ++-5.57318922603415019422e-07, ++-5.77219146106557435187e-07, ++-5.96680331105458410703e-07, ++-6.15693360830245960493e-07, ++-6.34249430372643094367e-07, ++-6.52340050373084766760e-07, ++-6.69957050499727724785e-07, ++-6.87092582718938420602e-07, ++-7.03739124355339611445e-07, ++-7.19889480941261699077e-07, ++-7.35536788854606509566e-07, ++-7.50674517744575483077e-07, ++-7.65296472744807734602e-07, ++-7.79396796473609713033e-07, ++-7.92969970821073911788e-07, ++-8.06010818523039620686e-07, ++-8.18514504521946435161e-07, ++-8.30476537114796092696e-07, ++-8.41892768888536356313e-07, ++-8.52759397443332283837e-07, ++-8.63072965904298430121e-07, ++-8.72830363222411219091e-07, ++-8.82028824265426919197e-07, ++-8.90665929699767875244e-07, ++-8.98739605664438117104e-07, ++-9.06248123238310469019e-07, ++-9.13190097701748130089e-07, ++-9.19564487594497149126e-07, ++-9.25370593571038710503e-07, ++-9.30608057055225739965e-07, ++-9.35276858695977623270e-07, ++-9.39377316625935791305e-07, ++-9.42910084525095898317e-07, ++-9.45876149491550481034e-07, ++-9.48276829721570430580e-07, ++-9.50113772001370499672e-07, ++-9.51388949013003911569e-07, ++-9.52104656456936804630e-07, ++-9.52263509993941125969e-07, ++-9.51868442009069101583e-07, ++-9.50922698200532126112e-07, ++-9.49429833996434605628e-07, ++-9.47393710802382531800e-07, ++-9.44818492083089586131e-07, ++-9.41708639281177158997e-07, ++-9.38068907576461653450e-07, ++-9.33904341489098676729e-07, ++-9.29220270330045943147e-07, ++-9.24022303502344510841e-07, ++-9.18316325656801089995e-07, ++-9.12108491705894399878e-07, ++-9.05405221699414408662e-07, ++-8.98213195565829804566e-07, ++-8.90539347723179252958e-07, ++-8.82390861563444624379e-07, ++-8.73775163814392542299e-07, ++-8.64699918782943232475e-07, ++-8.55173022484167478071e-07, ++-8.45202596660064471297e-07, ++-8.34796982692334232859e-07, ++-8.23964735413379340429e-07, ++-8.12714616819815811869e-07, ++-8.01055589692947371830e-07, ++-7.88996811130245460602e-07, ++-7.76547625992668790471e-07, ++-7.63717560271924312522e-07, ++-7.50516314382267606353e-07, ++-7.36953756381291203872e-07, ++-7.23039915124214685738e-07, ++-7.08784973356202141615e-07, ++-6.94199260747239361661e-07, ++-6.79293246874135843310e-07, ++-6.64077534154205262483e-07, ++-6.48562850735273878957e-07, ++-6.32760043346189360169e-07, ++-6.16680070113397994562e-07, ++-6.00333993346826913225e-07, ++-5.83732972300828602773e-07, ++-5.66888255913847209443e-07, ++-5.49811175532121660261e-07, ++-5.32513137621453772346e-07, ++-5.15005616471779758539e-07, ++-4.97300146899023921939e-07, ++-4.79408316948729425562e-07, ++-4.61341760605933600647e-07, ++-4.43112150515734081304e-07, ++-4.24731190718963677602e-07, ++-4.06210609407354576801e-07, ++-3.87562151702548692569e-07, ++-3.68797572463265930466e-07, ++-3.49928629124907727258e-07, ++-3.30967074575835952180e-07, ++-3.11924650074512148172e-07, ++-2.92813078211650909737e-07, ++-2.73644055921480525304e-07, ++-2.54429247546160283934e-07, ++-2.35180277957349847825e-07, ++-2.15908725738868123295e-07, ++-1.96626116434371227810e-07, ++-1.77343915863602168094e-07, ++-1.58073523511642661593e-07, ++-1.38826265993976471359e-07, ++-1.19613390601659479034e-07, ++-1.00446058929897965640e-07, ++-8.13353405935726935918e-08, ++-6.22922070331324441674e-08, ++-4.33275254142092293362e-08, ++-2.44520526242285169324e-08, ++ 0 /* Need a final zero coefficient */ ++ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/mid_qual_coeffs.h k3b-r948463.patched/libk3b/plugin/libsamplerate/mid_qual_coeffs.h +--- k3b-r948463/libk3b/plugin/libsamplerate/mid_qual_coeffs.h 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/mid_qual_coeffs.h 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,5315 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++ ++/* ++** f = make_filter (19, 128, 100.2) ; ++** Pass band width : 0.0039063 (should be 0.0039062) ++** Stop band atten. : 100.35 dB ++** -3dB band width : 0.665 ++** half length : 5285 ++** increment : 128 ++*/ ++ ++ 9.20381425342432724079e-01, ++ 9.20302993473144703707e-01, ++ 9.20067721990720843728e-01, ++ 9.19675683262634269255e-01, ++ 9.19126997871811179941e-01, ++ 9.18421834572361261984e-01, ++ 9.17560410227629907887e-01, ++ 9.16542989730570578644e-01, ++ 9.15369885906517022356e-01, ++ 9.14041459398341027409e-01, ++ 9.12558118534084750095e-01, ++ 9.10920319177104365060e-01, ++ 9.09128564558774221460e-01, ++ 9.07183405093831884969e-01, ++ 9.05085438178449441793e-01, ++ 9.02835307971073142141e-01, ++ 9.00433705156164609917e-01, ++ 8.97881366690907456451e-01, ++ 8.95179075534992096941e-01, ++ 8.92327660363587904513e-01, ++ 8.89327995263616055688e-01, ++ 8.86180999413433867495e-01, ++ 8.82887636746086057471e-01, ++ 8.79448915596223401714e-01, ++ 8.75865888330860098421e-01, ++ 8.72139650964099621966e-01, ++ 8.68271342755988384532e-01, ++ 8.64262145795659297853e-01, ++ 8.60113284568922442652e-01, ++ 8.55826025510500576488e-01, ++ 8.51401676541053253899e-01, ++ 8.46841586589208494829e-01, ++ 8.42147145098761318316e-01, ++ 8.37319781521271289115e-01, ++ 8.32360964794223279206e-01, ++ 8.27272202804994805092e-01, ++ 8.22055041840814237908e-01, ++ 8.16711066024966680921e-01, ++ 8.11241896739414047879e-01, ++ 8.05649192034131989004e-01, ++ 7.99934646023336304310e-01, ++ 7.94099988268876399999e-01, ++ 7.88146983151028934778e-01, ++ 7.82077429226948894758e-01, ++ 7.75893158577014574462e-01, ++ 7.69596036139359007677e-01, ++ 7.63187959032822549332e-01, ++ 7.56670855868614267159e-01, ++ 7.50046686050942712498e-01, ++ 7.43317439066910390366e-01, ++ 7.36485133765944488538e-01, ++ 7.29551817629036647439e-01, ++ 7.22519566028118842560e-01, ++ 7.15390481475825179558e-01, ++ 7.08166692865972891013e-01, ++ 7.00850354705043199210e-01, ++ 6.93443646334978125445e-01, ++ 6.85948771147587565977e-01, ++ 6.78367955790895149626e-01, ++ 6.70703449367723969488e-01, ++ 6.62957522626846706970e-01, ++ 6.55132467147013564102e-01, ++ 6.47230594514182855370e-01, ++ 6.39254235492288658271e-01, ++ 6.31205739187853498429e-01, ++ 6.23087472208794013184e-01, ++ 6.14901817817740559136e-01, ++ 6.06651175080214377644e-01, ++ 5.98337958007979286990e-01, ++ 5.89964594697926170141e-01, ++ 5.81533526466822769940e-01, ++ 5.73047206982255086238e-01, ++ 5.64508101390120198282e-01, ++ 5.55918685439004245374e-01, ++ 5.47281444601789957005e-01, ++ 5.38598873194839455891e-01, ++ 5.29873473495091729113e-01, ++ 5.21107754855426819063e-01, ++ 5.12304232818644900149e-01, ++ 5.03465428230393974296e-01, ++ 4.94593866351407229764e-01, ++ 4.85692075969380243627e-01, ++ 4.76762588510854068424e-01, ++ 4.67807937153435049460e-01, ++ 4.58830655938690934459e-01, ++ 4.49833278886094922733e-01, ++ 4.40818339108329071419e-01, ++ 4.31788367928309491095e-01, ++ 4.22745893998278443604e-01, ++ 4.13693442421281976085e-01, ++ 4.04633533875401296687e-01, ++ 3.95568683741051418945e-01, ++ 3.86501401231698737959e-01, ++ 3.77434188528326886036e-01, ++ 3.68369539917981492216e-01, ++ 3.59309940936731631034e-01, ++ 3.50257867517365428789e-01, ++ 3.41215785142159444554e-01, ++ 3.32186148001037462318e-01, ++ 3.23171398155436717659e-01, ++ 3.14173964708215069930e-01, ++ 3.05196262979898602641e-01, ++ 2.96240693691587786418e-01, ++ 2.87309642154843669637e-01, ++ 2.78405477468841422439e-01, ++ 2.69530551725107592187e-01, ++ 2.60687199220140719547e-01, ++ 2.51877735676207303861e-01, ++ 2.43104457470603635416e-01, ++ 2.34369640873684476068e-01, ++ 2.25675541295929371621e-01, ++ 2.17024392544335781308e-01, ++ 2.08418406088417329514e-01, ++ 1.99859770336071163044e-01, ++ 1.91350649919593329695e-01, ++ 1.82893184992099055997e-01, ++ 1.74489490534610131034e-01, ++ 1.66141655674062554970e-01, ++ 1.57851743012483253237e-01, ++ 1.49621787967589486845e-01, ++ 1.41453798125033586297e-01, ++ 1.33349752602548832225e-01, ++ 1.25311601426208646393e-01, ++ 1.17341264919035181968e-01, ++ 1.09440633102170670199e-01, ++ 1.01611565108827309190e-01, ++ 9.38558886112234730392e-02, ++ 8.61753992607110774760e-02, ++ 7.85718601412871003875e-02, ++ 7.10470012366834768880e-02, ++ 6.36025189112217892440e-02, ++ 5.62400754046094436545e-02, ++ 4.89612983408535609731e-02, ++ 4.17677802514581156257e-02, ++ 3.46610781130688300200e-02, ++ 2.76427128997189970605e-02, ++ 2.07141691498255002546e-02, ++ 1.38768945480800508230e-02, ++ 7.13229952237052523822e-03, ++ 4.81756855863834190269e-04, ++-6.07339868562557089193e-03, ++-1.25318707108654243260e-02, ++-1.88924015449200635719e-02, ++-2.51537725552469157431e-02, ++-3.13148044620756293988e-02, ++-3.73743576329800403224e-02, ++-4.33313323615558548818e-02, ++-4.91846691301275826258e-02, ++-5.49333488564130167919e-02, ++-6.05763931240776432041e-02, ++-6.61128643971268664670e-02, ++-7.15418662180770936754e-02, ++-7.68625433898662002719e-02, ++-8.20740821414635834952e-02, ++-8.71757102771481412473e-02, ++-9.21666973094307923065e-02, ++-9.70463545756019146937e-02, ++-1.01814035337895597566e-01, ++-1.06469134867262671396e-01, ++-1.11011090510758053673e-01, ++-1.15439381742549487808e-01, ++-1.19753530198565633080e-01, ++-1.23953099694804141917e-01, ++-1.28037696229327896402e-01, ++-1.32006967967990523904e-01, ++-1.35860605213926149970e-01, ++-1.39598340360859801690e-01, ++-1.43219947830287880342e-01, ++-1.46725243992595816289e-01, ++-1.50114087072177021520e-01, ++-1.53386377036633686499e-01, ++-1.56542055470133889550e-01, ++-1.59581105431021136321e-01, ++-1.62503551293762121821e-01, ++-1.65309458575341239328e-01, ++-1.67998933746201201123e-01, ++-1.70572124025848675943e-01, ++-1.73029217163238657751e-01, ++-1.75370441202067656183e-01, ++-1.77596064231102662712e-01, ++-1.79706394119684198518e-01, ++-1.81701778238549410682e-01, ++-1.83582603166114660675e-01, ++-1.85349294380384888026e-01, ++-1.87002315936635632454e-01, ++-1.88542170131047126524e-01, ++-1.89969397150449442746e-01, ++-1.91284574708360660678e-01, ++-1.92488317667500768993e-01, ++-1.93581277648966099125e-01, ++-1.94564142628253139433e-01, ++-1.95437636518337454206e-01, ++-1.96202518740000220188e-01, ++-1.96859583779614849552e-01, ++-1.97409660734602421250e-01, ++-1.97853612846778603718e-01, ++-1.98192337023800152496e-01, ++-1.98426763348949375398e-01, ++-1.98557854579480330681e-01, ++-1.98586605633759266665e-01, ++-1.98514043067442053081e-01, ++-1.98341224538922389353e-01, ++-1.98069238264312830200e-01, ++-1.97699202462185225082e-01, ++-1.97232264788348182760e-01, ++-1.96669601760900314424e-01, ++-1.96012418175829317146e-01, ++-1.95261946513421102978e-01, ++-1.94419446335739987131e-01, ++-1.93486203675455742390e-01, ++-1.92463530416288858271e-01, ++-1.91352763665352892941e-01, ++-1.90155265117664590280e-01, ++-1.88872420413116609561e-01, ++-1.87505638486184761371e-01, ++-1.86056350908662238020e-01, ++-1.84526011225710412367e-01, ++-1.82916094285511643402e-01, ++-1.81228095562823987574e-01, ++-1.79463530476726945695e-01, ++-1.77623933702856395822e-01, ++-1.75710858480429804596e-01, ++-1.73725875914355953888e-01, ++-1.71670574272733023058e-01, ++-1.69546558280039033617e-01, ++-1.67355448406313112031e-01, ++-1.65098880152636018348e-01, ++-1.62778503333212087867e-01, ++-1.60395981354360589455e-01, ++-1.57952990490720118766e-01, ++-1.55451219158974890400e-01, ++-1.52892367189410044448e-01, ++-1.50278145095599335868e-01, ++-1.47610273342536069130e-01, ++-1.44890481613516919346e-01, ++-1.42120508076075402482e-01, ++-1.39302098647282379673e-01, ++-1.36437006258713466877e-01, ++-1.33526990121390659594e-01, ++-1.30573814991000874963e-01, ++-1.27579250433698415668e-01, ++-1.24545070092789769700e-01, ++-1.21473050956605960193e-01, ++-1.18364972627860873255e-01, ++-1.15222616594794866063e-01, ++-1.12047765504399418623e-01, ++-1.08842202438021534716e-01, ++-1.05607710189640782716e-01, ++-1.02346070547107481641e-01, ++-9.90590635766376431670e-02, ++-9.57484669108492753020e-02, ++-9.24160550406251946054e-02, ++-8.90635986110882432731e-02, ++-8.56928637219669248060e-02, ++-8.23056112326309707861e-02, ++-7.89035960720733398066e-02, ++-7.54885665541076555929e-02, ++-7.20622636980560449249e-02, ++-6.86264205551892075841e-02, ++-6.51827615411845612270e-02, ++-6.17330017748623643969e-02, ++-5.82788464234569522637e-02, ++-5.48219900546751473525e-02, ++-5.13641159957934842484e-02, ++-4.79068957000384210154e-02, ++-4.44519881204940292552e-02, ++-4.10010390917734252048e-02, ++-3.75556807196898087553e-02, ++-3.41175307791583073969e-02, ++-3.06881921205520574736e-02, ++-2.72692520847377800619e-02, ++-2.38622819270072061837e-02, ++-2.04688362501167613050e-02, ++-1.70904524466470482402e-02, ++-1.37286501508831742385e-02, ++-1.03849307004176948793e-02, ++-7.06077660767133897385e-03, ++-3.75765104151932821316e-03, ++-4.76997319211794638602e-04, ++ 2.77976159123423990222e-03, ++ 6.01122355799481745270e-03, ++ 9.21600776157955291212e-03, ++ 1.23927551599897541740e-02, ++ 1.55401289427332476439e-02, ++ 1.86568149735395066857e-02, ++ 2.17415222216296409596e-02, ++ 2.47929831813923952366e-02, ++ 2.78099542803314468686e-02, ++ 3.07912162751492260448e-02, ++ 3.37355746358383862260e-02, ++ 3.66418599176616260893e-02, ++ 3.95089281209001219608e-02, ++ 4.23356610382612519317e-02, ++ 4.51209665898422082608e-02, ++ 4.78637791455433780907e-02, ++ 5.05630598348475110426e-02, ++ 5.32177968438652948535e-02, ++ 5.58270056995735716732e-02, ++ 5.83897295411673830645e-02, ++ 6.09050393784494881189e-02, ++ 6.33720343372027039575e-02, ++ 6.57898418914746596631e-02, ++ 6.81576180827297012366e-02, ++ 7.04745477258180152980e-02, ++ 7.27398446017178401668e-02, ++ 7.49527516370186164263e-02, ++ 7.71125410701128527480e-02, ++ 7.92185146040738086270e-02, ++ 8.12700035461998010478e-02, ++ 8.32663689342140606042e-02, ++ 8.52070016491116299928e-02, ++ 8.70913225146551783773e-02, ++ 8.89187823835221463620e-02, ++ 9.06888622101164748601e-02, ++ 9.24010731100602389354e-02, ++ 9.40549564063880572107e-02, ++ 9.56500836624715466971e-02, ++ 9.71860567017110571486e-02, ++ 9.86625076140278250980e-02, ++ 1.00079098749209560726e-01, ++ 1.01435522697153571170e-01, ++ 1.02731502255068357643e-01, ++ 1.03966790381692222867e-01, ++ 1.05141170138599651662e-01, ++ 1.06254454618664812005e-01, ++ 1.07306486861763028529e-01, ++ 1.08297139757793273174e-01, ++ 1.09226315937109075271e-01, ++ 1.10093947648453857613e-01, ++ 1.10899996624498939357e-01, ++ 1.11644453935089996155e-01, ++ 1.12327339828307448677e-01, ++ 1.12948703559463028978e-01, ++ 1.13508623208143408223e-01, ++ 1.14007205483430296145e-01, ++ 1.14444585517425839738e-01, ++ 1.14820926647215854066e-01, ++ 1.15136420185409663053e-01, ++ 1.15391285179401628658e-01, ++ 1.15585768159497587204e-01, ++ 1.15720142876065593129e-01, ++ 1.15794710025859670655e-01, ++ 1.15809796967682440694e-01, ++ 1.15765757427549992320e-01, ++ 1.15662971193527863711e-01, ++ 1.15501843800413089847e-01, ++ 1.15282806204434651320e-01, ++ 1.15006314448161270358e-01, ++ 1.14672849315791761104e-01, ++ 1.14282915979024457531e-01, ++ 1.13837043633692902578e-01, ++ 1.13335785127364224723e-01, ++ 1.12779716578100402957e-01, ++ 1.12169436984582482353e-01, ++ 1.11505567827804186187e-01, ++ 1.10788752664543674320e-01, ++ 1.10019656712822919142e-01, ++ 1.09198966429570901160e-01, ++ 1.08327389080707270352e-01, ++ 1.07405652303864840302e-01, ++ 1.06434503663973611953e-01, ++ 1.05414710201933409239e-01, ++ 1.04347057976597171192e-01, ++ 1.03232351600300586991e-01, ++ 1.02071413768162977398e-01, ++ 1.00865084781397620906e-01, ++ 9.96142220648654208581e-02, ++ 9.83196996791074473432e-02, ++ 9.69824078270985767691e-02, ++ 9.56032523559593450102e-02, ++ 9.41831542538692501054e-02, ++ 9.27230491424269054335e-02, ++ 9.12238867646961854030e-02, ++ 8.96866304691910365410e-02, ++ 8.81122566900391923639e-02, ++ 8.65017544235756330462e-02, ++ 8.48561247016157149670e-02, ++ 8.31763800616522747111e-02, ++ 8.14635440142294359189e-02, ++ 7.97186505077449730772e-02, ++ 7.79427433909263833733e-02, ++ 7.61368758732360317865e-02, ++ 7.43021099834537401829e-02, ++ 7.24395160266886328770e-02, ++ 7.05501720400689841250e-02, ++ 6.86351632473627820685e-02, ++ 6.66955815127786150187e-02, ++ 6.47325247941935855156e-02, ++ 6.27470965960619936341e-02, ++ 6.07404054222478104186e-02, ++ 5.87135642290347939398e-02, ++ 5.66676898785539728820e-02, ++ 5.46039025928778953833e-02, ++ 5.25233254090291187821e-02, ++ 5.04270836351378148876e-02, ++ 4.83163043079990264794e-02, ++ 4.61921156522659484556e-02, ++ 4.40556465415169601352e-02, ++ 4.19080259614387148903e-02, ++ 3.97503824753536946779e-02, ++ 3.75838436923350352470e-02, ++ 3.54095357381316658274e-02, ++ 3.32285827291374860626e-02, ++ 3.10421062496353539206e-02, ++ 2.88512248325339532018e-02, ++ 2.66570534438272561950e-02, ++ 2.44607029709929951755e-02, ++ 2.22632797155504665032e-02, ++ 2.00658848899928875242e-02, ++ 1.78696141193047525197e-02, ++ 1.56755569472778119589e-02, ++ 1.34847963478305701845e-02, ++ 1.12984082415343196903e-02, ++ 9.11746101754993230892e-03, ++ 6.94301506117043099736e-03, ++ 4.77612228716621078223e-03, ++ 2.61782567912160601259e-03, ++ 4.69158834953931199938e-04, ++-1.66885448120184334310e-03, ++-3.79520078056328966087e-03, ++-5.90887728454510350456e-03, ++-8.00889235270581950621e-03, ++-1.00942659036281096735e-02, ++-1.21640298285631744818e-02, ++-1.42172283976795769261e-02, ++-1.62529186587560860178e-02, ++-1.82701708281667977996e-02, ++-2.02680686740044913030e-02, ++-2.22457098911984715861e-02, ++-2.42022064684845883420e-02, ++-2.61366850470883434199e-02, ++-2.80482872709881952966e-02, ++-2.99361701286294627777e-02, ++-3.17995062859638480401e-02, ++-3.36374844106955839251e-02, ++-3.54493094876133021942e-02, ++-3.72342031249025678941e-02, ++-3.89914038513265101549e-02, ++-4.07201674041748756805e-02, ++-4.24197670078825320172e-02, ++-4.40894936432238218615e-02, ++-4.57286563069958726380e-02, ++-4.73365822621031329120e-02, ++-4.89126172779674045499e-02, ++-5.04561258611889093539e-02, ++-5.19664914763842064604e-02, ++-5.34431167571409876382e-02, ++-5.48854237070259126652e-02, ++-5.62928538905927214331e-02, ++-5.76648686143374361590e-02, ++-5.90009490975559047765e-02, ++-6.03005966330638770723e-02, ++-6.15633327377404851455e-02, ++-6.27886992928659848356e-02, ++-6.39762586742271682771e-02, ++-6.51255938719669663639e-02, ++-6.62363086001636625078e-02, ++-6.73080273961252362191e-02, ++-6.83403957093936531564e-02, ++-6.93330799804545011567e-02, ++-7.02857677091563298744e-02, ++-7.11981675128459667867e-02, ++-7.20700091742300513742e-02, ++-7.29010436789823551562e-02, ++-7.36910432431144429843e-02, ++-7.44398013301399846808e-02, ++-7.51471326580581411303e-02, ++-7.58128731961966451092e-02, ++-7.64368801519491603003e-02, ++-7.70190319474562123947e-02, ++-7.75592281862732546571e-02, ++-7.80573896100858338754e-02, ++-7.85134580455219832640e-02, ++-7.89273963411314394278e-02, ++-7.92991882945930925963e-02, ++-7.96288385702248469045e-02, ++-7.99163726068679303172e-02, ++-8.01618365162299895132e-02, ++-8.03652969717648935077e-02, ++-8.05268410881816582014e-02, ++-8.06465762916719064446e-02, ++-8.07246301809524391402e-02, ++-8.07611503792237672705e-02, ++-8.07563043771459543319e-02, ++-8.07102793669422780010e-02, ++-8.06232820677405676024e-02, ++-8.04955385422673613816e-02, ++-8.03272940050135386691e-02, ++-8.01188126219958829388e-02, ++-7.98703773022373386681e-02, ++-7.95822894810978148650e-02, ++-7.92548688955872077111e-02, ++-7.88884533517974217975e-02, ++-7.84833984845913629202e-02, ++-7.80400775096937587838e-02, ++-7.75588809683271651618e-02, ++-7.70402164645424963885e-02, ++-7.64845083953963472689e-02, ++-7.58921976741284420864e-02, ++-7.52637414464975562645e-02, ++-7.45996128004335623540e-02, ++-7.39003004691712872543e-02, ++-7.31663085280282593503e-02, ++-7.23981560849959182580e-02, ++-7.15963769653113479841e-02, ++-7.07615193901859063086e-02, ++-6.98941456498595042879e-02, ++-6.89948317711622932658e-02, ++-6.80641671797573843961e-02, ++-6.71027543572484258538e-02, ++-6.61112084933319216207e-02, ++-6.50901571331780198770e-02, ++-6.40402398202278705375e-02, ++-6.29621077345897672828e-02, ++-6.18564233272276414732e-02, ++-6.07238599501278633608e-02, ++-5.95651014826367106170e-02, ++-5.83808419541620299276e-02, ++-5.71717851634284957019e-02, ++-5.59386442944868889082e-02, ++-5.46821415296654678162e-02, ++-5.34030076596649916354e-02, ++-5.21019816909916097525e-02, ++-5.07798104509243897198e-02, ++-4.94372481902171159729e-02, ++-4.80750561837304871138e-02, ++-4.66940023291949543593e-02, ++-4.52948607443019804486e-02, ++-4.38784113623226362799e-02, ++-4.24454395264523623443e-02, ++-4.09967355830820473495e-02, ++-3.95330944741913298257e-02, ++-3.80553153290659820773e-02, ++-3.65642010555344981748e-02, ++-3.50605579309238787888e-02, ++-3.35451951929296859900e-02, ++-3.20189246305989869135e-02, ++-3.04825601756209853266e-02, ++-2.89369174941192380812e-02, ++-2.73828135791425071599e-02, ++-2.58210663440446019923e-02, ++-2.42524942169475357656e-02, ++-2.26779157364765740490e-02, ++-2.10981491489598167732e-02, ++-1.95140120072784944982e-02, ++-1.79263207715556205368e-02, ++-1.63358904118689959861e-02, ++-1.47435340131725541729e-02, ++-1.31500623826066934119e-02, ++-1.15562836593809201841e-02, ++-9.96300292740478522779e-03, ++-8.37102183084635804999e-03, ++-6.78113819279113280714e-03, ++-5.19414563717416049443e-03, ++-3.61083321415951816885e-03, ++-2.03198502912982836496e-03, ++-4.58379875457016528785e-04, ++ 1.10920912878408159559e-03, ++ 2.67001489999788748156e-03, ++ 4.22327674398739229267e-03, ++ 5.76824070645192907292e-03, ++ 7.30415991891262585123e-03, ++ 8.83029493991307340428e-03, ++ 1.03459140913472139728e-02, ++ 1.18502937897689078484e-02, ++ 1.33427188725394711699e-02, ++ 1.48224829186761088151e-02, ++ 1.62888885642629918649e-02, ++ 1.77412478122899279487e-02, ++ 1.91788823367922064977e-02, ++ 2.06011237811589489888e-02, ++ 2.20073140504912223570e-02, ++ 2.33968055978847275234e-02, ++ 2.47689617045220474012e-02, ++ 2.61231567534600458980e-02, ++ 2.74587764969989392427e-02, ++ 2.87752183175302503337e-02, ++ 3.00718914817559267172e-02, ++ 3.13482173881795972425e-02, ++ 3.26036298077741898416e-02, ++ 3.38375751177299316508e-02, ++ 3.50495125281968383790e-02, ++ 3.62389143019323234363e-02, ++ 3.74052659667742509741e-02, ++ 3.85480665208594169835e-02, ++ 3.96668286305130596281e-02, ++ 4.07610788207384555637e-02, ++ 4.18303576582400582495e-02, ++ 4.28742199269152648999e-02, ++ 4.38922347957571498678e-02, ++ 4.48839859791098777508e-02, ++ 4.58490718892284668251e-02, ++ 4.67871057810912635566e-02, ++ 4.76977158894239181008e-02, ++ 4.85805455578927625204e-02, ++ 4.94352533604324947958e-02, ++ 5.02615132146747092823e-02, ++ 5.10590144874505449946e-02, ++ 5.18274620923405288098e-02, ++ 5.25665765792536696099e-02, ++ 5.32760942160161940495e-02, ++ 5.39557670619600152073e-02, ++ 5.46053630334999498541e-02, ++ 5.52246659616954863048e-02, ++ 5.58134756417962285546e-02, ++ 5.63716078747732926568e-02, ++ 5.68988945008435942352e-02, ++ 5.73951834249974424118e-02, ++ 5.78603386345437897820e-02, ++ 5.82942402086913807890e-02, ++ 5.86967843201876629533e-02, ++ 5.90678832290408364902e-02, ++ 5.94074652683551154841e-02, ++ 5.97154748223121395467e-02, ++ 5.99918722963358186373e-02, ++ 6.02366340794795798730e-02, ++ 6.04497524990822918123e-02, ++ 6.06312357677402588574e-02, ++ 6.07811079226447462109e-02, ++ 6.08994087573431347460e-02, ++ 6.09861937459786132565e-02, ++ 6.10415339600735781800e-02, ++ 6.10655159779199541159e-02, ++ 6.10582417866455048894e-02, ++ 6.10198286770287368075e-02, ++ 6.09504091311373757955e-02, ++ 6.08501307028684462752e-02, ++ 6.07191558914731074892e-02, ++ 6.05576620081493127712e-02, ++ 6.03658410357920463540e-02, ++ 6.01438994819913433365e-02, ++ 5.98920582253712890930e-02, ++ 5.96105523553696475814e-02, ++ 5.92996310055547357076e-02, ++ 5.89595571805846263569e-02, ++ 5.85906075769135961662e-02, ++ 5.81930723973530239501e-02, ++ 5.77672551595985947492e-02, ++ 5.73134724988377947108e-02, ++ 5.68320539645518138516e-02, ++ 5.63233418116318024227e-02, ++ 5.57876907859301829351e-02, ++ 5.52254679043691909524e-02, ++ 5.46370522297332239514e-02, ++ 5.40228346402717510277e-02, ++ 5.33832175942438452720e-02, ++ 5.27186148895339920517e-02, ++ 5.20294514184751963337e-02, ++ 5.13161629180133513350e-02, ++ 5.05791957153526455793e-02, ++ 4.98190064692186004858e-02, ++ 4.90360619068817560340e-02, ++ 4.82308385570846126500e-02, ++ 4.74038224790149093080e-02, ++ 4.65555089874726130139e-02, ++ 4.56864023743756911267e-02, ++ 4.47970156267560870589e-02, ++ 4.38878701413918104191e-02, ++ 4.29594954362301426065e-02, ++ 4.20124288587509150950e-02, ++ 4.10472152914242438548e-02, ++ 4.00644068544164441703e-02, ++ 3.90645626056996611575e-02, ++ 3.80482482387188569728e-02, ++ 3.70160357777762072384e-02, ++ 3.59685032712854929615e-02, ++ 3.49062344830574772248e-02, ++ 3.38298185817733007563e-02, ++ 3.27398498288028888537e-02, ++ 3.16369272645302956892e-02, ++ 3.05216543933420694779e-02, ++ 2.93946388674391281826e-02, ++ 2.82564921696314662325e-02, ++ 2.71078292952747976208e-02, ++ 2.59492684335090040282e-02, ++ 2.47814306479556094309e-02, ++ 2.36049395570361274233e-02, ++ 2.24204210140672086093e-02, ++ 2.12285027872915685321e-02, ++ 2.00298142400041241651e-02, ++ 1.88249860109280658937e-02, ++ 1.76146496949991550329e-02, ++ 1.63994375247131611573e-02, ++ 1.51799820521929199751e-02, ++ 1.39569158321288973312e-02, ++ 1.27308711057459132687e-02, ++ 1.15024794859493635635e-02, ++ 1.02723716438034538834e-02, ++ 9.04117699648874194318e-03, ++ 7.80952339689281599400e-03, ++ 6.57803682497710377058e-03, ++ 5.34734108107065390925e-03, ++ 4.11805748123311807923e-03, ++ 2.89080455483250748500e-03, ++ 1.66619774448026097997e-03, ++ 4.44849108462394484276e-04, ++-7.72632974192619353775e-04, ++-1.98564409587129479459e-03, ++-3.19358410962515939027e-03, ++-4.39585741537518604610e-03, ++-5.59187324294384193596e-03, ++-6.78104593178024354222e-03, ++-7.96279520725374188872e-03, ++-9.13654645338901789942e-03, ++-1.03017309819179135599e-02, ++-1.14577862975281108415e-02, ++-1.26041563591888523127e-02, ++-1.37402918374362748022e-02, ++-1.48656503675044012608e-02, ++-1.59796967981878784704e-02, ++-1.70819034363291870349e-02, ++-1.81717502868205364741e-02, ++-1.92487252880175659098e-02, ++-2.03123245424604338683e-02, ++-2.13620525428040268501e-02, ++-2.23974223928605567502e-02, ++-2.34179560236593246880e-02, ++-2.44231844044319607034e-02, ++-2.54126477484353970049e-02, ++-2.63858957135253285875e-02, ++-2.73424875973971651111e-02, ++-2.82819925274152735029e-02, ++-2.92039896449517132060e-02, ++-3.01080682841611060874e-02, ++-3.09938281451182656712e-02, ++-3.18608794612527251866e-02, ++-3.27088431610126698090e-02, ++-3.35373510236956218211e-02, ++-3.43460458293886189418e-02, ++-3.51345815029584646050e-02, ++-3.59026232520415142235e-02, ++-3.66498476989806504234e-02, ++-3.73759430066653228208e-02, ++-3.80806089982259413085e-02, ++-3.87635572705481989964e-02, ++-3.94245113015637763110e-02, ++-4.00632065512871449187e-02, ++-4.06793905565660182666e-02, ++-4.12728230195161804872e-02, ++-4.18432758896181006270e-02, ++-4.23905334394521562946e-02, ++-4.29143923340550431655e-02, ++-4.34146616938810431252e-02, ++-4.38911631513571320884e-02, ++-4.43437309010235244933e-02, ++-4.47722117432520008706e-02, ++-4.51764651215424140052e-02, ++-4.55563631533957985598e-02, ++-4.59117906547691981278e-02, ++-4.62426451581186420681e-02, ++-4.65488369240420196693e-02, ++-4.68302889465325583584e-02, ++-4.70869369518625499604e-02, ++-4.73187293911136036551e-02, ++-4.75256274263797934276e-02, ++-4.77076049106652452791e-02, ++-4.78646483615089088359e-02, ++-4.79967569283660938639e-02, ++-4.81039423537813551346e-02, ++-4.81862289283918193705e-02, ++-4.82436534398009986280e-02, ++-4.82762651153660765635e-02, ++-4.82841255589469900422e-02, ++-4.82673086816636301433e-02, ++-4.82259006267171733140e-02, ++-4.81599996883273831494e-02, ++-4.80697162248445095112e-02, ++-4.79551725660972635867e-02, ++-4.78165029150386111656e-02, ++-4.76538532437557615928e-02, ++-4.74673811839129988766e-02, ++-4.72572559116971463444e-02, ++-4.70236580273407853148e-02, ++-4.67667794292976057857e-02, ++-4.64868231831488537553e-02, ++-4.61840033853220879867e-02, ++-4.58585450217043055776e-02, ++-4.55106838212354786188e-02, ++-4.51406661045703067048e-02, ++-4.47487486278967949715e-02, ++-4.43351984220053674246e-02, ++-4.39002926267011706063e-02, ++-4.34443183206557337339e-02, ++-4.29675723467968784242e-02, ++-4.24703611333365343983e-02, ++-4.19530005105376649355e-02, ++-4.14158155233245728333e-02, ++-4.08591402398425090903e-02, ++-4.02833175560728118381e-02, ++-3.96886989966125647289e-02, ++-3.90756445117304562764e-02, ++-3.84445222708086342678e-02, ++-3.77957084522856853748e-02, ++-3.71295870302152039577e-02, ++-3.64465495575560030628e-02, ++-3.57469949463106728693e-02, ++-3.50313292446328208851e-02, ++-3.42999654110217877534e-02, ++-3.35533230857262762536e-02, ++-3.27918283594781714840e-02, ++-3.20159135396808763874e-02, ++-3.12260169141751545152e-02, ++-3.04225825127068701115e-02, ++-2.96060598662241068746e-02, ++-2.87769037641279583351e-02, ++-2.79355740096046620269e-02, ++-2.70825351731674365818e-02, ++-2.62182563445339765484e-02, ++-2.53432108829716763732e-02, ++-2.44578761662360491536e-02, ++-2.35627333382326387134e-02, ++-2.26582670555346976649e-02, ++-2.17449652328813719526e-02, ++-2.08233187877915476571e-02, ++-1.98938213844193738378e-02, ++-1.89569691767836438767e-02, ++-1.80132605515005567165e-02, ++-1.70631958701489179486e-02, ++-1.61072772113989640119e-02, ++-1.51460081130329674015e-02, ++-1.41798933139869222375e-02, ++-1.32094384965426719925e-02, ++-1.22351500287977872639e-02, ++-1.12575347075429474386e-02, ++-1.02770995016708190789e-02, ++-9.29435129624720662855e-03, ++-8.30979663736668323903e-03, ++-7.32394147791955510418e-03, ++-6.33729092439597792991e-03, ++-5.35034898484767259402e-03, ++-4.36361831813259892082e-03, ++-3.37759998456233596562e-03, ++-2.39279319807447028376e-03, ++-1.40969508004874419758e-03, ++-4.28800414884481764701e-04, ++ 5.49398592542026499921e-04, ++ 1.52441255742493384819e-03, ++ 2.49575515346705124192e-03, ++ 3.46294334909421361660e-03, ++ 4.42549764133481383921e-03, ++ 5.38294228725484918269e-03, ++ 6.33480553283812409388e-03, ++ 7.28061983920614500670e-03, ++ 8.21992210606954480656e-03, ++ 9.15225389230991427658e-03, ++ 1.00771616335884814375e-02, ++ 1.09941968568804098599e-02, ++ 1.19029163918370119862e-02, ++ 1.28028825788794285712e-02, ++ 1.36936634739278067369e-02, ++ 1.45748330496734655737e-02, ++ 1.54459713933036285605e-02, ++ 1.63066649005877105372e-02, ++ 1.71565064662418664820e-02, ++ 1.79950956704824222010e-02, ++ 1.88220389616893905849e-02, ++ 1.96369498350979915235e-02, ++ 2.04394490074384753420e-02, ++ 2.12291645874509368741e-02, ++ 2.20057322421993752093e-02, ++ 2.27687953591133446229e-02, ++ 2.35180052036899414625e-02, ++ 2.42530210727860510989e-02, ++ 2.49735104434401083973e-02, ++ 2.56791491171582640651e-02, ++ 2.63696213596067048635e-02, ++ 2.70446200356534542653e-02, ++ 2.77038467397033236206e-02, ++ 2.83470119212748915272e-02, ++ 2.89738350057704117935e-02, ++ 2.95840445103900430424e-02, ++ 3.01773781551470283990e-02, ++ 3.07535829689405612597e-02, ++ 3.13124153906489052779e-02, ++ 3.18536413652031544230e-02, ++ 3.23770364346098321606e-02, ++ 3.28823858238901367557e-02, ++ 3.33694845219050725826e-02, ++ 3.38381373570426913222e-02, ++ 3.42881590677418662816e-02, ++ 3.47193743678329280744e-02, ++ 3.51316180066747196786e-02, ++ 3.55247348240743179848e-02, ++ 3.58985797999757036414e-02, ++ 3.62530180989057912444e-02, ++ 3.65879251091717136446e-02, ++ 3.69031864768026920953e-02, ++ 3.71986981342348130286e-02, ++ 3.74743663237384755371e-02, ++ 3.77301076155911810361e-02, ++ 3.79658489210015839821e-02, ++ 3.81815274997910139576e-02, ++ 3.83770909628457501661e-02, ++ 3.85524972693506232102e-02, ++ 3.87077147188212219997e-02, ++ 3.88427219379517477127e-02, ++ 3.89575078623010107037e-02, ++ 3.90520717128378727634e-02, ++ 3.91264229673738417326e-02, ++ 3.91805813269093319851e-02, ++ 3.92145766769267448137e-02, ++ 3.92284490436606639308e-02, ++ 3.92222485453833716318e-02, ++ 3.91960353387427393179e-02, ++ 3.91498795601925853038e-02, ++ 3.90838612625587153437e-02, ++ 3.89980703467861372635e-02, ++ 3.88926064889137598768e-02, ++ 3.87675790623278684888e-02, ++ 3.86231070553441427351e-02, ++ 3.84593189841744911850e-02, ++ 3.82763528013330134314e-02, ++ 3.80743557995419576456e-02, ++ 3.78534845111941978257e-02, ++ 3.76139046034402041441e-02, ++ 3.73557907689583551525e-02, ++ 3.70793266124797640804e-02, ++ 3.67847045331337260676e-02, ++ 3.64721256026843687614e-02, ++ 3.61417994397318920186e-02, ++ 3.57939440799517269443e-02, ++ 3.54287858424472551500e-02, ++ 3.50465591922946295700e-02, ++ 3.46475065993586336943e-02, ++ 3.42318783934602438590e-02, ++ 3.37999326159794388769e-02, ++ 3.33519348679760310739e-02, ++ 3.28881581549163512501e-02, ++ 3.24088827280907126882e-02, ++ 3.19143959228117141125e-02, ++ 3.14049919934835039537e-02, ++ 3.08809719456320137809e-02, ++ 3.03426433649902835277e-02, ++ 2.97903202437320435703e-02, ++ 2.92243228039485228309e-02, ++ 2.86449773184645310742e-02, ++ 2.80526159290918272737e-02, ++ 2.74475764624171579553e-02, ++ 2.68302022432251076334e-02, ++ 2.62008419056547099679e-02, ++ 2.55598492021924458828e-02, ++ 2.49075828106016076979e-02, ++ 2.42444061388931500489e-02, ++ 2.35706871284384854304e-02, ++ 2.28867980553310382263e-02, ++ 2.21931153300989475463e-02, ++ 2.14900192958749729211e-02, ++ 2.07778940251304410081e-02, ++ 2.00571271150767407865e-02, ++ 1.93281094818433703264e-02, ++ 1.85912351535375483524e-02, ++ 1.78469010622939669442e-02, ++ 1.70955068354214992365e-02, ++ 1.63374545857532041393e-02, ++ 1.55731487013095522970e-02, ++ 1.48029956343801779445e-02, ++ 1.40274036901342491479e-02, ++ 1.32467828148644800601e-02, ++ 1.24615443839752523814e-02, ++ 1.16721009898197274068e-02, ++ 1.08788662294939664221e-02, ++ 1.00822544926967554851e-02, ++ 9.28268074975848594965e-03, ++ 8.48056033994836096224e-03, ++ 7.67630876016376067356e-03, ++ 6.87034145410842303492e-03, ++ 6.06307360206417237519e-03, ++ 5.25491991135924960826e-03, ++ 4.44629440763854959229e-03, ++ 3.63761022703795386390e-03, ++ 2.82927940936458007654e-03, ++ 2.02171269238637712692e-03, ++ 1.21531930732854268409e-03, ++ 4.10506775680379075531e-04, ++-3.92319292591773477897e-04, ++-1.19275539932616717227e-03, ++-1.99040035684389668771e-03, ++-2.78485548493010359392e-03, ++-3.57572480602225085608e-03, ++-4.36261523851058825862e-03, ++-5.14513678806150041162e-03, ++-5.92290273686880194143e-03, ++-6.69552983074627079685e-03, ++-7.46263846397084845696e-03, ++-8.22385286178995214557e-03, ++-8.97880126050735853649e-03, ++-9.72711608506233310623e-03, ++-1.04684341240196421979e-02, ++-1.12023967018896625919e-02, ++-1.19286498486973670946e-02, ++-1.26468444667234853479e-02, ++-1.33566364943390990250e-02, ++-1.40576870668614704873e-02, ++-1.47496626743549175825e-02, ++-1.54322353163073335003e-02, ++-1.61050826531120676310e-02, ++-1.67678881542855998110e-02, ++-1.74203412433571909468e-02, ++-1.80621374393645714451e-02, ++-1.86929784948938332301e-02, ++-1.93125725306022809347e-02, ++-1.99206341661660978060e-02, ++-2.05168846475965727105e-02, ++-2.11010519708690891250e-02, ++-2.16728710018125117487e-02, ++-2.22320835922093923420e-02, ++-2.27784386920556920775e-02, ++-2.33116924579366280312e-02, ++-2.38316083574713066806e-02, ++-2.43379572697852361585e-02, ++-2.48305175819705514773e-02, ++-2.53090752814938702020e-02, ++-2.57734240445178890144e-02, ++-2.62233653201022591517e-02, ++-2.66587084102499136118e-02, ++-2.70792705457725754736e-02, ++-2.74848769579453880429e-02, ++-2.78753609459266790682e-02, ++-2.82505639399193153594e-02, ++-2.86103355600531468472e-02, ++-2.89545336709700236455e-02, ++-2.92830244320940215330e-02, ++-2.95956823435738237971e-02, ++-2.98923902878850261677e-02, ++-3.01730395670819218079e-02, ++-3.04375299356923270655e-02, ++-3.06857696292481205158e-02, ++-3.09176753884519220361e-02, ++-3.11331724789744579418e-02, ++-3.13321947068878961518e-02, ++-3.15146844297364905896e-02, ++-3.16805925632501414468e-02, ++-3.18298785837100445262e-02, ++-3.19625105259753808373e-02, ++-3.20784649771835711496e-02, ++-3.21777270661380843109e-02, ++-3.22602904484012090180e-02, ++-3.23261572871092819903e-02, ++-3.23753382295313973938e-02, ++-3.24078523793953007792e-02, ++-3.24237272650036850719e-02, ++-3.24229988031694352224e-02, ++-3.24057112589975146455e-02, ++-3.23719172015455164404e-02, ++-3.23216774553950619842e-02, ++-3.22550610481695601561e-02, ++-3.21721451540349229203e-02, ++-3.20730150332222269105e-02, ++-3.19577639676131355917e-02, ++-3.18264931924307492572e-02, ++-3.16793118240798893259e-02, ++-3.15163367841841124406e-02, ++-3.13376927198667984409e-02, ++-3.11435119203261716325e-02, ++-3.09339342297566856355e-02, ++-3.07091069566692957682e-02, ++-3.04691847796660503223e-02, ++-3.02143296497258302680e-02, ++-2.99447106890591077666e-02, ++-2.96605040865920502324e-02, ++-2.93618929901409558836e-02, ++-2.90490673953408620744e-02, ++-2.87222240313914564669e-02, ++-2.83815662436870431995e-02, ++-2.80273038733983362314e-02, ++-2.76596531340728875314e-02, ++-2.72788364853265505316e-02, ++-2.68850825036951179836e-02, ++-2.64786257507202589523e-02, ++-2.60597066383420963853e-02, ++-2.56285712916748155410e-02, ++-2.51854714092403474124e-02, ++-2.47306641207374125480e-02, ++-2.42644118424243347698e-02, ++-2.37869821301946587910e-02, ++-2.32986475304263404573e-02, ++-2.27996854286841091342e-02, ++-2.22903778963591883699e-02, ++-2.17710115353269804961e-02, ++-2.12418773207074841614e-02, ++-2.07032704418132450230e-02, ++-2.01554901413684046940e-02, ++-1.95988395530860316784e-02, ++-1.90336255376889230961e-02, ++-1.84601585174617617569e-02, ++-1.78787523094215382302e-02, ++-1.72897239571940322667e-02, ++-1.66933935616846752803e-02, ++-1.60900841106333160335e-02, ++-1.54801213071404045879e-02, ++-1.48638333972560768986e-02, ++-1.42415509967192804169e-02, ++-1.36136069169392123768e-02, ++-1.29803359903072849241e-02, ++-1.23420748949298001579e-02, ++-1.16991619788734471652e-02, ++-1.10519370840110493781e-02, ++-1.04007413695592701441e-02, ++-9.74591713539885336204e-03, ++-9.08780764526554395155e-03, ++-8.42675694990374125892e-03, ++-7.76310971027038485004e-03, ++-7.09721102088000169172e-03, ++-6.42940623337920000302e-03, ++-5.76004078043931225933e-03, ++-5.08946000005612835676e-03, ++-4.41800896034429992076e-03, ++-3.74603228491338785533e-03, ++-3.07387397891339432532e-03, ++-2.40187725583507205585e-03, ++-1.73038436515272897598e-03, ++-1.05973642089167863906e-03, ++-3.90273231208217510901e-04, ++ 2.77666870936983212030e-04, ++ 9.43747195927376416637e-04, ++ 1.60763286437934816049e-03, ++ 2.26899097268967123858e-03, ++ 2.92749075716241266912e-03, ++ 3.58280375663248612170e-03, ++ 4.23460397351204959754e-03, ++ 4.88256803317746110316e-03, ++ 5.52637534162357668688e-03, ++ 6.16570824130805751617e-03, ++ 6.80025216511182754170e-03, ++ 7.42969578834302112058e-03, ++ 8.05373117871052007777e-03, ++ 8.67205394419879975476e-03, ++ 9.28436337877218062498e-03, ++ 9.89036260584076794278e-03, ++ 1.04897587194219873291e-02, ++ 1.10822629229305347903e-02, ++ 1.16675906655330941658e-02, ++ 1.22454617760050857300e-02, ++ 1.28156005940266576326e-02, ++ 1.33777360988594062191e-02, ++ 1.39316020353439252305e-02, ++ 1.44769370371622355803e-02, ++ 1.50134847473070466572e-02, ++ 1.55409939357074259464e-02, ++ 1.60592186139547725421e-02, ++ 1.65679181470810912846e-02, ++ 1.70668573623377166359e-02, ++ 1.75558066549289203129e-02, ++ 1.80345420906532633021e-02, ++ 1.85028455054086320153e-02, ++ 1.89605046015185567387e-02, ++ 1.94073130408384669776e-02, ++ 1.98430705346031681369e-02, ++ 2.02675829299774241943e-02, ++ 2.06806622932754168021e-02, ++ 2.10821269898129222409e-02, ++ 2.14718017603625459244e-02, ++ 2.18495177941796202281e-02, ++ 2.22151127985720682478e-02, ++ 2.25684310649855168762e-02, ++ 2.29093235315810418717e-02, ++ 2.32376478422810298086e-02, ++ 2.35532684022618996056e-02, ++ 2.38560564298757396551e-02, ++ 2.41458900049817716538e-02, ++ 2.44226541136732810955e-02, ++ 2.46862406893853837675e-02, ++ 2.49365486503724774481e-02, ++ 2.51734839335446165809e-02, ++ 2.53969595246556420487e-02, ++ 2.56068954848354853049e-02, ++ 2.58032189734641453915e-02, ++ 2.59858642673822630431e-02, ++ 2.61547727764399259853e-02, ++ 2.63098930553838268598e-02, ++ 2.64511808120856638238e-02, ++ 2.65785989121172516736e-02, ++ 2.66921173796784670651e-02, ++ 2.67917133948867500215e-02, ++ 2.68773712874392570193e-02, ++ 2.69490825266583827746e-02, ++ 2.70068457079358954787e-02, ++ 2.70506665355911626869e-02, ++ 2.70805578021602322281e-02, ++ 2.70965393641366091015e-02, ++ 2.70986381141830531827e-02, ++ 2.70868879498386908034e-02, ++ 2.70613297387449595888e-02, ++ 2.70220112804171637422e-02, ++ 2.69689872645891524916e-02, ++ 2.69023192261612989484e-02, ++ 2.68220754967820745884e-02, ++ 2.67283311530973760606e-02, ++ 2.66211679617003732501e-02, ++ 2.65006743208199592454e-02, ++ 2.63669451987833119988e-02, ++ 2.62200820692939373657e-02, ++ 2.60601928435633990733e-02, ++ 2.58873917993413214800e-02, ++ 2.57017995068857182939e-02, ++ 2.55035427519193710899e-02, ++ 2.52927544556184984159e-02, ++ 2.50695735916821975386e-02, ++ 2.48341451005307974065e-02, ++ 2.45866198006852616775e-02, ++ 2.43271542973778100161e-02, ++ 2.40559108884488212499e-02, ++ 2.37730574675824729569e-02, ++ 2.34787674249385819314e-02, ++ 2.31732195452361150467e-02, ++ 2.28565979033475072391e-02, ++ 2.25290917574611608554e-02, ++ 2.21908954398750551951e-02, ++ 2.18422082454798119344e-02, ++ 2.14832343179954671220e-02, ++ 2.11141825340238932507e-02, ++ 2.07352663849828984521e-02, ++ 2.03467038569848726604e-02, ++ 1.99487173087274823058e-02, ++ 1.95415333474632871291e-02, ++ 1.91253827031149341298e-02, ++ 1.87005001006056471857e-02, ++ 1.82671241304729649324e-02, ++ 1.78254971178373536334e-02, ++ 1.73758649897937239581e-02, ++ 1.69184771412996537432e-02, ++ 1.64535862996303787475e-02, ++ 1.59814483874737844893e-02, ++ 1.55023223847373312068e-02, ++ 1.50164701891417791402e-02, ++ 1.45241564756737676078e-02, ++ 1.40256485549719173145e-02, ++ 1.35212162307227472952e-02, ++ 1.30111316561379447565e-02, ++ 1.24956691895912394563e-02, ++ 1.19751052494878589688e-02, ++ 1.14497181684445926975e-02, ++ 1.09197880468538122134e-02, ++ 1.03855966059087159725e-02, ++ 9.84742704016562143965e-03, ++ 9.30556386971926295659e-03, ++ 8.76029279206604755137e-03, ++ 8.21190053373426452621e-03, ++ 7.66067470175298657897e-03, ++ 7.10690363503945106427e-03, ++ 6.55087625577790554771e-03, ++ 5.99288192086684483317e-03, ++ 5.43321027350959859931e-03, ++ 4.87215109502278989617e-03, ++ 4.30999415693893248719e-03, ++ 3.74702907347534584434e-03, ++ 3.18354515444554302464e-03, ++ 2.61983125868587608809e-03, ++ 2.05617564807023672779e-03, ++ 1.49286584218635853295e-03, ++ 9.30188473745678081825e-04, ++ 3.68429144797911432754e-04, ++-1.92127716177123029819e-04, ++-7.51198996231790326432e-04, ++-1.30850303889562991251e-03, ++-1.86375978403549190029e-03, ++-2.41669090655965632108e-03, ++-2.96701995390177180115e-03, ++-3.51447248221491799144e-03, ++-4.05877619121137057229e-03, ++-4.59966105758124674252e-03, ++-5.13685946692752325171e-03, ++-5.67010634415242211620e-03, ++-6.19913928223347811958e-03, ++-6.72369866932763082107e-03, ++-7.24352781414225668777e-03, ++-7.75837306951438713393e-03, ++-8.26798395413882135363e-03, ++-8.77211327238880053669e-03, ++-9.27051723217174085401e-03, ++-9.76295556076584719607e-03, ++-1.02491916185828580571e-02, ++-1.07289925108050229752e-02, ++-1.12021291968433227976e-02, ++-1.16683765975679858140e-02, ++-1.21275137002619763649e-02, ++-1.25793236612475982372e-02, ++-1.30235939061431136438e-02, ++-1.34601162277011333901e-02, ++-1.38886868811863382206e-02, ++-1.43091066772499612286e-02, ++-1.47211810722588463257e-02, ++-1.51247202560407922184e-02, ++-1.55195392370066180543e-02, ++-1.59054579246123636849e-02, ++-1.62823012091269786472e-02, ++-1.66498990386690776111e-02, ++-1.70080864934834194435e-02, ++-1.73567038574233001302e-02, ++-1.76955966866107171354e-02, ++-1.80246158752456059338e-02, ++-1.83436177185377254084e-02, ++-1.86524639727363474029e-02, ++-1.89510219122339153286e-02, ++-1.92391643837212557300e-02, ++-1.95167698573757708580e-02, ++-1.97837224750605396306e-02, ++-2.00399120955206018480e-02, ++-2.02852343365580237156e-02, ++-2.05195906141726648608e-02, ++-2.07428881786561915279e-02, ++-2.09550401476275363621e-02, ++-2.11559655360012838221e-02, ++-2.13455892828807378137e-02, ++-2.15238422753686667321e-02, ++-2.16906613692930197446e-02, ++-2.18459894068418723767e-02, ++-2.19897752311081634558e-02, ++-2.21219736975437064608e-02, ++-2.22425456823232385595e-02, ++-2.23514580876230314899e-02, ++-2.24486838438175441424e-02, ++-2.25342019086016941143e-02, ++-2.26079972630452222249e-02, ++-2.26700609045897422122e-02, ++-2.27203898369985682337e-02, ++-2.27589870572722542674e-02, ++-2.27858615395436989171e-02, ++-2.28010282159679666947e-02, ++-2.28045079546240481161e-02, ++-2.27963275344472623973e-02, ++-2.27765196172116414497e-02, ++-2.27451227165837051303e-02, ++-2.27021811642711575374e-02, ++-2.26477450732895796426e-02, ++-2.25818702983737081003e-02, ++-2.25046183935598033410e-02, ++-2.24160565669674592681e-02, ++-2.23162576328110422164e-02, ++-2.22052999606712764269e-02, ++-2.20832674220598039472e-02, ++-2.19502493343100429923e-02, ++-2.18063404018299551723e-02, ++-2.16516406547519850434e-02, ++-2.14862553850184781479e-02, ++-2.13102950799411924865e-02, ++-2.11238753532740700103e-02, ++-2.09271168738412970123e-02, ++-2.07201452917621688210e-02, ++-2.05030911623162483137e-02, ++-2.02760898674933312535e-02, ++-2.00392815352738624946e-02, ++-1.97928109566855824075e-02, ++-1.95368275006852568088e-02, ++-1.92714850269127511984e-02, ++-1.89969417963674683247e-02, ++-1.87133603800582019872e-02, ++-1.84209075656767175266e-02, ++-1.81197542623479680712e-02, ++-1.78100754035098000905e-02, ++-1.74920498479764381650e-02, ++-1.71658602792400527548e-02, ++-1.68316931030659776292e-02, ++-1.64897383434381879230e-02, ++-1.61401895369109177336e-02, ++-1.57832436254263346054e-02, ++-1.54191008476533275573e-02, ++-1.50479646289087866384e-02, ++-1.46700414697199573583e-02, ++-1.42855408330877838713e-02, ++-1.38946750305117498053e-02, ++-1.34976591068377456406e-02, ++-1.30947107239892130554e-02, ++-1.26860500436455827383e-02, ++-1.22718996089274719891e-02, ++-1.18524842251538416876e-02, ++-1.14280308397327317466e-02, ++-1.09987684212486756113e-02, ++-1.05649278378112127658e-02, ++-1.01267417347274506223e-02, ++-9.68444441156269923698e-03, ++-9.23827169865409740523e-03, ++-8.78846083313997161746e-03, ++-8.33525033457069991494e-03, ++-7.87887988016375100109e-03, ++-7.41959017977004194749e-03, ++-6.95762285061261864794e-03, ++-6.49322029186454475341e-03, ++-6.02662555912889408988e-03, ++-5.55808223888622741915e-03, ++-5.08783432297227420499e-03, ++-4.61612608315053844776e-03, ++-4.14320194584339666216e-03, ++-3.66930636708468534829e-03, ++-3.19468370775774284862e-03, ++-2.71957810918098006822e-03, ++-2.24423336910424412252e-03, ++-1.76889281817741881794e-03, ++-1.29379919695378617014e-03, ++-8.19194533489142270866e-04, ++-3.45320021597831196877e-04, ++ 1.27584100174339069422e-04, ++ 5.99278668799195350127e-04, ++ 1.06952571617924155171e-03, ++ 1.53808858766556200148e-03, ++ 2.00473205962055367468e-03, ++ 2.46922245597071959855e-03, ++ 2.93132776369034713654e-03, ++ 3.39081774716058033034e-03, ++ 3.84746406134854872921e-03, ++ 4.30104036375060765768e-03, ++ 4.75132242504706578390e-03, ++ 5.19808823841395525878e-03, ++ 5.64111812743960539668e-03, ++ 6.08019485259521982184e-03, ++ 6.51510371620631252576e-03, ++ 6.94563266587837867261e-03, ++ 7.37157239632470640683e-03, ++ 7.79271644955021464130e-03, ++ 8.20886131334327799614e-03, ++ 8.61980651802961989061e-03, ++ 9.02535473144288127867e-03, ++ 9.42531185206835209200e-03, ++ 9.81948710031542437715e-03, ++ 1.02076931078787062901e-02, ++ 1.05897460051441894696e-02, ++ 1.09654655066032842570e-02, ++ 1.13346749942337312461e-02, ++ 1.16972015988115480428e-02, ++ 1.20528762791150233225e-02, ++ 1.24015338989890838706e-02, ++ 1.27430133022312791491e-02, ++ 1.30771573852710050467e-02, ++ 1.34038131676064240644e-02, ++ 1.37228318599705717551e-02, ++ 1.40340689301969769737e-02, ++ 1.43373841667557219703e-02, ++ 1.46326417399349796578e-02, ++ 1.49197102606399897157e-02, ++ 1.51984628367875466287e-02, ++ 1.54687771272712503573e-02, ++ 1.57305353934761547874e-02, ++ 1.59836245483238222065e-02, ++ 1.62279362028255533246e-02, ++ 1.64633667101300000535e-02, ++ 1.66898172070444779369e-02, ++ 1.69071936530182861946e-02, ++ 1.71154068665722303155e-02, ++ 1.73143725591620549487e-02, ++ 1.75040113664655661019e-02, ++ 1.76842488770822502120e-02, ++ 1.78550156586383436397e-02, ++ 1.80162472812886650941e-02, ++ 1.81678843386109678537e-02, ++ 1.83098724658869831117e-02, ++ 1.84421623557678958372e-02, ++ 1.85647097713225045501e-02, ++ 1.86774755564665419227e-02, ++ 1.87804256437758242126e-02, ++ 1.88735310596836944330e-02, ++ 1.89567679270675991388e-02, ++ 1.90301174652290280842e-02, ++ 1.90935659872729333875e-02, ++ 1.91471048948949201796e-02, ++ 1.91907306705839213190e-02, ++ 1.92244448672513647269e-02, ++ 1.92482540952976406701e-02, ++ 1.92621700071291257483e-02, ++ 1.92662092791390723856e-02, ++ 1.92603935911679381709e-02, ++ 1.92447496034597632930e-02, ++ 1.92193089311317975854e-02, ++ 1.91841081161766568997e-02, ++ 1.91391885970173640519e-02, ++ 1.90845966756356746896e-02, ++ 1.90203834822977521646e-02, ++ 1.89466049378990836205e-02, ++ 1.88633217139549183572e-02, ++ 1.87705991902617184974e-02, ++ 1.86685074102564685372e-02, ++ 1.85571210341025014112e-02, ++ 1.84365192895308768750e-02, ++ 1.83067859204682249763e-02, ++ 1.81680091334814851345e-02, ++ 1.80202815420731528306e-02, ++ 1.78637001088602434540e-02, ++ 1.76983660856705124487e-02, ++ 1.75243849515933046435e-02, ++ 1.73418663490196370280e-02, ++ 1.71509240177099529789e-02, ++ 1.69516757269280171627e-02, ++ 1.67442432056789658468e-02, ++ 1.65287520710933055756e-02, ++ 1.63053317549959643495e-02, ++ 1.60741154287042248283e-02, ++ 1.58352399260948337179e-02, ++ 1.55888456649855098451e-02, ++ 1.53350765668743439091e-02, ++ 1.50740799750810755553e-02, ++ 1.48060065713376716456e-02, ++ 1.45310102908721653497e-02, ++ 1.42492482360351419013e-02, ++ 1.39608805885138576031e-02, ++ 1.36660705201842418155e-02, ++ 1.33649841026482960049e-02, ++ 1.30577902155067059053e-02, ++ 1.27446604534163440703e-02, ++ 1.24257690319823609071e-02, ++ 1.21012926925372719250e-02, ++ 1.17714106058561026463e-02, ++ 1.14363042748611334204e-02, ++ 1.10961574363676110377e-02, ++ 1.07511559619219848605e-02, ++ 1.04014877577871447251e-02, ++ 1.00473426641261246589e-02, ++ 9.68891235343915212253e-03, ++ 9.32639022830554151322e-03, ++ 8.95997131848667513476e-03, ++ 8.58985217744295814768e-03, ++ 8.21623077831776238433e-03, ++ 7.83930640944576623275e-03, ++ 7.45927956943647635368e-03, ++ 7.07635186189118064320e-03, ++ 6.69072588980388575225e-03, ++ 6.30260514970595094736e-03, ++ 5.91219392560345287368e-03, ++ 5.51969718276637197341e-03, ++ 5.12532046142244023662e-03, ++ 4.72926977040892190796e-03, ++ 4.33175148083997027526e-03, ++ 3.93297221983980160170e-03, ++ 3.53313876439927251547e-03, ++ 3.13245793540825817960e-03, ++ 2.73113649191582047102e-03, ++ 2.32938102567640907548e-03, ++ 1.92739785602901348045e-03, ++ 1.52539292516795199454e-03, ++ 1.12357169385324685146e-03, ++ 7.22139037616026076630e-04, ++ 3.21299143509566089132e-04, ++-7.87445925439102364842e-05, ++-4.77789667756481134173e-04, ++-8.75634573781077039240e-04, ++-1.27207889726797546831e-03, ++-1.66692341962379432171e-03, ++-2.05997021592245954311e-03, ++-2.45102275292159678052e-03, ++-2.83988598613405971924e-03, ++-3.22636645590845556192e-03, ++-3.61027238247302534671e-03, ++-3.99141375989387706819e-03, ++-4.36960244890573310667e-03, ++-4.74465226856734742511e-03, ++-5.11637908669945132983e-03, ++-5.48460090906132020916e-03, ++-5.84913796722293360258e-03, ++-6.20981280509260748224e-03, ++-6.56645036405622325310e-03, ++-6.91887806669126605857e-03, ++-7.26692589901343100750e-03, ++-7.61042649121839841903e-03, ++-7.94921519688219710420e-03, ++-8.28313017058056322295e-03, ++-8.61201244389523008771e-03, ++-8.93570599976736823500e-03, ++-9.25405784516927093497e-03, ++-9.56691808205707705515e-03, ++-9.87413997657404438058e-03, ++-1.01755800264738422573e-02, ++-1.04710980267316584175e-02, ++-1.07605571333162300385e-02, ++-1.10438239250919990192e-02, ++-1.13207684638271209587e-02, ++-1.15912643522783440769e-02, ++-1.18551887903295075782e-02, ++-1.21124226291589674048e-02, ++-1.23628504234125462247e-02, ++-1.26063604813613176076e-02, ++-1.28428449130213884893e-02, ++-1.30721996762182875867e-02, ++-1.32943246205750771616e-02, ++-1.35091235294078314266e-02, ++-1.37165041595128135710e-02, ++-1.39163782788270101731e-02, ++-1.41086617019519286464e-02, ++-1.42932743235239592683e-02, ++-1.44701401494216879556e-02, ++-1.46391873257979802936e-02, ++-1.48003481659278162547e-02, ++-1.49535591748633858722e-02, ++-1.50987610718883325661e-02, ++-1.52358988107658115813e-02, ++-1.53649215977745036421e-02, ++-1.54857829075290397841e-02, ++-1.55984404965814546506e-02, ++-1.57028564148030853886e-02, ++-1.57989970145448431482e-02, ++-1.58868329575775346640e-02, ++-1.59663392198137396583e-02, ++-1.60374950938135772682e-02, ++-1.61002841890790400481e-02, ++-1.61546944301414231726e-02, ++-1.62007180524483263007e-02, ++-1.62383515960572676062e-02, ++-1.62675958971449409474e-02, ++-1.62884560773407099932e-02, ++-1.63009415308956705226e-02, ++-1.63050659096987474173e-02, ++-1.63008471061523926848e-02, ++-1.62883072339218455682e-02, ++-1.62674726065730329561e-02, ++-1.62383737141145109706e-02, ++-1.62010451974609233361e-02, ++-1.61555258208356707084e-02, ++-1.61018584421316855726e-02, ++-1.60400899812505326469e-02, ++-1.59702713864408145372e-02, ++-1.58924575986573272945e-02, ++-1.58067075139647107707e-02, ++-1.57130839440085059988e-02, ++-1.56116535745792449352e-02, ++-1.55024869222944727820e-02, ++-1.53856582894260490724e-02, ++-1.52612457168996174667e-02, ++-1.51293309354949591372e-02, ++-1.49899993152762481957e-02, ++-1.48433398132821487564e-02, ++-1.46894449195070758013e-02, ++-1.45284106012046419082e-02, ++-1.43603362455460986657e-02, ++-1.41853246006673119201e-02, ++-1.40034817151370259009e-02, ++-1.38149168758828280734e-02, ++-1.36197425446084856987e-02, ++-1.34180742927401692316e-02, ++-1.32100307349369578552e-02, ++-1.29957334612042334221e-02, ++-1.27753069676474068084e-02, ++-1.25488785859041301896e-02, ++-1.23165784112953900081e-02, ++-1.20785392297338319001e-02, ++-1.18348964434312736022e-02, ++-1.15857879954438421077e-02, ++-1.13313542930994892027e-02, ++-1.10717381303457890890e-02, ++-1.08070846090634192782e-02, ++-1.05375410593865573988e-02, ++-1.02632569590727744380e-02, ++-9.98438385196800254340e-03, ++-9.70107526560752726763e-03, ++-9.41348662799971515336e-03, ++-9.12177518363594015682e-03, ++-8.82609990877025046840e-03, ++-8.52662142601712247370e-03, ++-8.22350191830830204442e-03, ++-7.91690504225831676033e-03, ++-7.60699584098104789748e-03, ++-7.29394065640553979080e-03, ++-6.97790704113636535422e-03, ++-6.65906366990342071799e-03, ++-6.33758025065010895116e-03, ++-6.01362743530314651508e-03, ++-5.68737673027295675271e-03, ++-5.35900040672940281006e-03, ++-5.02867141070039921913e-03, ++-4.69656327303835750137e-03, ++-4.36285001930248206997e-03, ++-4.02770607960259777180e-03, ++-3.69130619844926536818e-03, ++-3.35382534465939949331e-03, ++-3.01543862135967731183e-03, ++-2.67632117613655082580e-03, ++-2.33664811137678819775e-03, ++-1.99659439484433081508e-03, ++-1.65633477053923894307e-03, ++-1.31604366988200688349e-03, ++-9.75895123270567642695e-04, ++-6.36062672051197525343e-04, ++-2.96719280950014205507e-04, ++ 4.19627489923029214371e-05, ++ 3.79811866940293777015e-04, ++ 7.16657358192283769176e-04, ++ 1.05232942947910620979e-03, ++ 1.38665929358586822832e-03, ++ 1.71947925326047606175e-03, ++ 2.05062278436349190031e-03, ++ 2.37992461822022008389e-03, ++ 2.70722082313579063065e-03, ++ 3.03234888503091078518e-03, ++ 3.35514778716229861502e-03, ++ 3.67545808888595972735e-03, ++ 3.99312200342836869094e-03, ++ 4.30798347462560838467e-03, ++ 4.61988825259515914490e-03, ++ 4.92868396830371639783e-03, ++ 5.23422020699498662111e-03, ++ 5.53634858044424124635e-03, ++ 5.83492279800282634405e-03, ++ 6.12979873640210736613e-03, ++ 6.42083450828168002950e-03, ++ 6.70789052941064140034e-03, ++ 6.99082958457222531506e-03, ++ 7.26951689207744420479e-03, ++ 7.54382016688265842619e-03, ++ 7.81360968227803008579e-03, ++ 8.07875833012169572434e-03, ++ 8.33914167959036965738e-03, ++ 8.59463803442023742407e-03, ++ 8.84512848861381158205e-03, ++ 9.09049698058539933088e-03, ++ 9.33063034572383098730e-03, ++ 9.56541836734724204572e-03, ++ 9.79475382602876601390e-03, ++ 1.00185325472712388750e-02, ++ 1.02366534475112885144e-02, ++ 1.04490185784319629392e-02, ++ 1.06555331695659429025e-02, ++ 1.08561056691723126222e-02, ++ 1.10506477833681605177e-02, ++ 1.12390745135014444300e-02, ++ 1.14213041917481192972e-02, ++ 1.15972585149209383992e-02, ++ 1.17668625764762845715e-02, ++ 1.19300448967066957673e-02, ++ 1.20867374511089888806e-02, ++ 1.22368756969161197878e-02, ++ 1.23803985977854972417e-02, ++ 1.25172486466337395256e-02, ++ 1.26473718866117884607e-02, ++ 1.27707179302137523863e-02, ++ 1.28872399765134221933e-02, ++ 1.29968948265256969976e-02, ++ 1.30996428966874464001e-02, ++ 1.31954482304573617740e-02, ++ 1.32842785080317399987e-02, ++ 1.33661050541768675060e-02, ++ 1.34409028441777739227e-02, ++ 1.35086505079049911532e-02, ++ 1.35693303320018558017e-02, ++ 1.36229282601955156012e-02, ++ 1.36694338917359037994e-02, ++ 1.37088404779683696588e-02, ++ 1.37411449170452750618e-02, ++ 1.37663477467847624597e-02, ++ 1.37844531356839973546e-02, ++ 1.37954688720959822018e-02, ++ 1.37994063515802581343e-02, ++ 1.37962805624378334612e-02, ++ 1.37861100694423310831e-02, ++ 1.37689169957797372806e-02, ++ 1.37447270032107649734e-02, ++ 1.37135692704694871907e-02, ++ 1.36754764699141325573e-02, ++ 1.36304847424457160204e-02, ++ 1.35786336707117930717e-02, ++ 1.35199662506130090928e-02, ++ 1.34545288611307815863e-02, ++ 1.33823712324960784892e-02, ++ 1.33035464127193650552e-02, ++ 1.32181107325021699600e-02, ++ 1.31261237685532539815e-02, ++ 1.30276483053305639631e-02, ++ 1.29227502952338896280e-02, ++ 1.28114988172704970942e-02, ++ 1.26939660342200184157e-02, ++ 1.25702271483237072724e-02, ++ 1.24403603555233947114e-02, ++ 1.23044467982784695020e-02, ++ 1.21625705169872422307e-02, ++ 1.20148184000413785211e-02, ++ 1.18612801325425308574e-02, ++ 1.17020481437095178606e-02, ++ 1.15372175530077808459e-02, ++ 1.13668861150298707019e-02, ++ 1.11911541631600167795e-02, ++ 1.10101245520525005406e-02, ++ 1.08239025989581676146e-02, ++ 1.06325960239305756377e-02, ++ 1.04363148889449076223e-02, ++ 1.02351715359647547215e-02, ++ 1.00292805239893083324e-02, ++ 9.81875856511689806827e-03, ++ 9.60372445965929077971e-03, ++ 9.38429903034274093265e-03, ++ 9.16060505563077998037e-03, ++ 8.93276720220602567235e-03, ++ 8.70091195664717161062e-03, ++ 8.46516755633743532561e-03, ++ 8.22566391964303297857e-03, ++ 7.98253257539762242634e-03, ++ 7.73590659173173638558e-03, ++ 7.48592050428459592631e-03, ++ 7.23271024383650030370e-03, ++ 6.97641306340083741655e-03, ++ 6.71716746481300884530e-03, ++ 6.45511312485713174836e-03, ++ 6.19039082096706390346e-03, ++ 5.92314235654277116555e-03, ++ 5.65351048592053172237e-03, ++ 5.38163883903518876911e-03, ++ 5.10767184581618297751e-03, ++ 4.83175466035329001513e-03, ++ 4.55403308487579983055e-03, ++ 4.27465349357983477596e-03, ++ 3.99376275634679561710e-03, ++ 3.71150816239089074641e-03, ++ 3.42803734387406560530e-03, ++ 3.14349819952992014238e-03, ++ 2.85803881833283880340e-03, ++ 2.57180740325433027441e-03, ++ 2.28495219514192630592e-03, ++ 1.99762139676367333693e-03, ++ 1.70996309705198873234e-03, ++ 1.42212519558894585903e-03, ++ 1.13425532736955879051e-03, ++ 8.46500787880119249379e-04, ++ 5.59008458531536360676e-04, ++ 2.71924732482213711831e-04, ++-1.46045591101362367902e-05, ++-3.00434220371862336588e-04, ++-5.85419763496916080447e-04, ++-8.69417480990889736912e-04, ++-1.15228451734444565895e-03, ++-1.43387894009652252202e-03, ++-1.71405981025574941264e-03, ++-1.99268725204318009406e-03, ++-2.26962252192313383714e-03, ++-2.54472807688939806764e-03, ++-2.81786764197139655633e-03, ++-3.08890627693018818625e-03, ++-3.35771044210986593925e-03, ++-3.62414806341412312415e-03, ++-3.88808859637569193338e-03, ++-4.14940308928948755479e-03, ++-4.40796424537761438733e-03, ++-4.66364648395760274940e-03, ++-4.91632600058568031837e-03, ++-5.16588082614466512915e-03, ++-5.41219088485122776233e-03, ++-5.65513805115323408418e-03, ++-5.89460620549208617197e-03, ++-6.13048128890366673949e-03, ++-6.36265135643233371854e-03, ++-6.59100662933489230694e-03, ++-6.81543954604840913902e-03, ++-7.03584481190112302068e-03, ++-7.25211944754226237736e-03, ++-7.46416283606952078722e-03, ++-7.67187676883409296058e-03, ++-7.87516548990104849060e-03, ++-8.07393573914804915659e-03, ++-8.26809679398036317943e-03, ++-8.45756050964779383661e-03, ++-8.64224135814309693537e-03, ++-8.82205646566693382771e-03, ++-8.99692564864382551826e-03, ++-9.16677144827266789096e-03, ++-9.33151916359954529401e-03, ++-9.49109688309758385560e-03, ++-9.64543551474287760850e-03, ++-9.79446881457346311961e-03, ++-9.93813341372091867132e-03, ++-1.00763688439045248635e-02, ++-1.02091175613780275888e-02, ++-1.03363249693213758024e-02, ++-1.04579394386685748525e-02, ++-1.05739123273658041507e-02, ++-1.06841979980529435540e-02, ++-1.07887538341634794947e-02, ++-1.08875402544387003823e-02, ++-1.09805207258518982422e-02, ++-1.10676617749403266577e-02, ++-1.11489329975425002783e-02, ++-1.12243070669403085388e-02, ++-1.12937597404047310179e-02, ++-1.13572698641464103764e-02, ++-1.14148193766721185033e-02, ++-1.14663933105489043718e-02, ++-1.15119797925795526450e-02, ++-1.15515700423923072665e-02, ++-1.15851583694501700239e-02, ++-1.16127421684842080385e-02, ++-1.16343219133579756086e-02, ++-1.16499011493693144931e-02, ++-1.16594864839973874626e-02, ++-1.16630875761035632254e-02, ++-1.16607171235953484961e-02, ++-1.16523908495632707444e-02, ++-1.16381274869015692575e-02, ++-1.16179487614245235960e-02, ++-1.15918793734899987224e-02, ++-1.15599469781440481603e-02, ++-1.15221821637996792859e-02, ++-1.14786184294645918214e-02, ++-1.14292921605328150897e-02, ++-1.13742426031563578781e-02, ++-1.13135118372134652748e-02, ++-1.12471447478901080685e-02, ++-1.11751889958936409530e-02, ++-1.10976949863161849369e-02, ++-1.10147158361676694022e-02, ++-1.09263073405979870001e-02, ++-1.08325279378290572491e-02, ++-1.07334386728172945930e-02, ++-1.06291031596689976302e-02, ++-1.05195875428303799864e-02, ++-1.04049604570749746474e-02, ++-1.02852929863124966520e-02, ++-1.01606586212423712773e-02, ++-1.00311332158768314049e-02, ++-9.89679494295862653697e-03, ++-9.75772424829860450524e-03, ++-9.61400380405963254915e-03, ++-9.46571846101251432315e-03, ++-9.31295519979207127303e-03, ++-9.15580308117954107250e-03, ++-8.99435319544003054892e-03, ++-8.82869861074311521043e-03, ++-8.65893432069447625821e-03, ++-8.48515719100898131722e-03, ++-8.30746590535331487504e-03, ++-8.12596091038898099557e-03, ++-7.94074436004471931327e-03, ++-7.75192005904976402797e-03, ++-7.55959340575841978738e-03, ++-7.36387133429604930773e-03, ++-7.16486225605968488073e-03, ++-6.96267600060247564275e-03, ++-6.75742375593618195551e-03, ++-6.54921800828115602267e-03, ++-6.33817248129906873205e-03, ++-6.12440207483747056649e-03, ++-5.90802280322155672770e-03, ++-5.68915173312445864029e-03, ++-5.46790692104878739421e-03, ++-5.24440735045367430189e-03, ++-5.01877286855873742250e-03, ++-4.79112412285956183744e-03, ++-4.56158249738753112518e-03, ++-4.33027004874617267582e-03, ++-4.09730944195998200014e-03, ++-3.86282388616571940171e-03, ++-3.62693707018273397286e-03, ++-3.38977309799298612628e-03, ++-3.15145642416600349836e-03, ++-2.91211178926129628936e-03, ++-2.67186415524058896998e-03, ++-2.43083864092491410552e-03, ++-2.18916045752724818321e-03, ++-1.94695484429555434880e-03, ++-1.70434700429766003774e-03, ++-1.46146204038146722802e-03, ++-1.21842489134170429109e-03, ++-9.75360268326885652967e-04, ++-7.32392591517812274748e-04, ++-4.89645927108687487733e-04, ++-2.47243924624317883750e-04, ++-5.30975460243512911756e-06, ++ 2.36033953325794955153e-04, ++ 4.76665171927515821017e-04, ++ 7.16462537401301477295e-04, ++ 9.55305409921098193718e-04, ++ 1.19307393366231218393e-03, ++ 1.42964909627860559810e-03, ++ 1.66491278780242935725e-03, ++ 1.89874785893865663695e-03, ++ 2.13103817872366176761e-03, ++ 2.36166869152246855501e-03, ++ 2.59052547333455795292e-03, ++ 2.81749578738373649203e-03, ++ 3.04246813896196085722e-03, ++ 3.26533232950441303435e-03, ++ 3.48597950986718595895e-03, ++ 3.70430223278326144556e-03, ++ 3.92019450447253243325e-03, ++ 4.13355183537975935659e-03, ++ 4.34427129001856843216e-03, ++ 4.55225153589615232075e-03, ++ 4.75739289149763357190e-03, ++ 4.95959737330627960239e-03, ++ 5.15876874183868530666e-03, ++ 5.35481254667346043274e-03, ++ 5.54763617045254779636e-03, ++ 5.73714887183583450297e-03, ++ 5.92326182738835572278e-03, ++ 6.10588817238264490450e-03, ++ 6.28494304049680499458e-03, ++ 6.46034360239086408867e-03, ++ 6.63200910314530080181e-03, ++ 6.79986089854376415248e-03, ++ 6.96382249018552904052e-03, ++ 7.12381955941148153205e-03, ++ 7.27978000003043010380e-03, ++ 7.43163394983032809388e-03, ++ 7.57931382086227036637e-03, ++ 7.72275432848473775138e-03, ++ 7.86189251915526618464e-03, ++ 7.99666779695973849174e-03, ++ 8.12702194886731447976e-03, ++ 8.25289916870263103033e-03, ++ 8.37424607982448221399e-03, ++ 8.49101175650416456486e-03, ++ 8.60314774399449817832e-03, ++ 8.71060807728277902706e-03, ++ 8.81334929852170718967e-03, ++ 8.91133047313173894122e-03, ++ 9.00451320457064906255e-03, ++ 9.09286164776551726618e-03, ++ 9.17634252120343510417e-03, ++ 9.25492511767886209817e-03, ++ 9.32858131369380602638e-03, ++ 9.39728557751129400799e-03, ++ 9.46101497585938137902e-03, ++ 9.51974917928707746462e-03, ++ 9.57347046617182048656e-03, ++ 9.62216372537993622216e-03, ++ 9.66581645758253331369e-03, ++ 9.70441877522852311411e-03, ++ 9.73796340117899505984e-03, ++ 9.76644566600631813813e-03, ++ 9.78986350396279965402e-03, ++ 9.80821744762437608411e-03, ++ 9.82151062121512652414e-03, ++ 9.82974873261935853941e-03, ++ 9.83294006408857654278e-03, ++ 9.83109546165142171581e-03, ++ 9.82422832323481126648e-03, ++ 9.81235458550605912920e-03, ++ 9.79549270944552429030e-03, ++ 9.77366366466025406068e-03, ++ 9.74689091245018769671e-03, ++ 9.71520038763806249860e-03, ++ 9.67862047917591658552e-03, ++ 9.63718200954081366527e-03, ++ 9.59091821293355135947e-03, ++ 9.53986471229417709594e-03, ++ 9.48405949514947999024e-03, ++ 9.42354288830722815196e-03, ++ 9.35835753141333638594e-03, ++ 9.28854834938808680833e-03, ++ 9.21416252375845123979e-03, ++ 9.13524946290390424397e-03, ++ 9.05186077123359793262e-03, ++ 8.96405021731353467140e-03, ++ 8.87187370096227494176e-03, ++ 8.77538921933519559804e-03, ++ 8.67465683201655221590e-03, ++ 8.56973862514041548333e-03, ++ 8.46069867456020023588e-03, ++ 8.34760300808964732233e-03, ++ 8.23051956683512782320e-03, ++ 8.10951816564266063370e-03, ++ 7.98467045268167613381e-03, ++ 7.85604986818807735083e-03, ++ 7.72373160239066269828e-03, ++ 7.58779255264339144021e-03, ++ 7.44831127978854735938e-03, ++ 7.30536796377457674917e-03, ++ 7.15904435855267175237e-03, ++ 7.00942374627864812214e-03, ++ 6.85659089084312764473e-03, ++ 6.70063199075772355368e-03, ++ 6.54163463142106230142e-03, ++ 6.37968773679228450674e-03, ++ 6.21488152049734249999e-03, ++ 6.04730743639451170240e-03, ++ 5.87705812862679335268e-03, ++ 5.70422738118673677138e-03, ++ 5.52891006702203955531e-03, ++ 5.35120209670836722432e-03, ++ 5.17120036671731789918e-03, ++ 4.98900270730638639716e-03, ++ 4.80470783005945180355e-03, ++ 4.61841527510534633622e-03, ++ 4.43022535804147177957e-03, ++ 4.24023911659228945614e-03, ++ 4.04855825702851463560e-03, ++ 3.85528510037712974709e-03, ++ 3.66052252844891639130e-03, ++ 3.46437392971235937414e-03, ++ 3.26694314504209770700e-03, ++ 3.06833441336932816884e-03, ++ 2.86865231726372458751e-03, ++ 2.66800172847322068781e-03, ++ 2.46648775345124351629e-03, ++ 2.26421567889880867575e-03, ++ 2.06129091734864790947e-03, ++ 1.85781895282100093132e-03, ++ 1.65390528657631021014e-03, ++ 1.44965538299551312262e-03, ++ 1.24517461561208316219e-03, ++ 1.04056821332572727035e-03, ++ 8.35941206823879187984e-04, ++ 6.31398375237409098873e-04, ++ 4.27044193058938911355e-04, ++ 2.22982777348387794809e-04, ++ 1.93178352541883997372e-05, ++-1.83847388125652280721e-04, ++-3.86410161515063485180e-04, ++-5.88268318839344113436e-04, ++-7.89320310186791547317e-04, ++-9.89465252327087745748e-04, ++-1.18860297876262669368e-03, ++-1.38663408928657127910e-03, ++-1.58345999902536368857e-03, ++-1.77898298694016492559e-03, ++-1.97310624376432260790e-03, ++-2.16573391935423681734e-03, ++-2.35677116942951958567e-03, ++-2.54612420168103805937e-03, ++-2.73370032122395708804e-03, ++-2.91940797537506343401e-03, ++-3.10315679773186291548e-03, ++-3.28485765153320842871e-03, ++-3.46442267228143797181e-03, ++-3.64176530960461748362e-03, ++-3.81680036834099439130e-03, ++-3.98944404882473329516e-03, ++-4.15961398635617159159e-03, ++-4.32722928983605027026e-03, ++-4.49221057954843436960e-03, ++-4.65448002407309498196e-03, ++-4.81396137631140419444e-03, ++-4.97058000860978871360e-03, ++-5.12426294696375662918e-03, ++-5.27493890428890055411e-03, ++-5.42253831274242328875e-03, ++-5.56699335508204027484e-03, ++-5.70823799504863171883e-03, ++-5.84620800675817245406e-03, ++-5.98084100309233864662e-03, ++-6.11207646307366722627e-03, ++-6.23985575821544256880e-03, ++-6.36412217783412659938e-03, ++-6.48482095331432296242e-03, ++-6.60189928131710984660e-03, ++-6.71530634592089337165e-03, ++-6.82499333968801785016e-03, ++-6.93091348364723199016e-03, ++-7.03302204618568189975e-03, ++-7.13127636084264718980e-03, ++-7.22563584299942916062e-03, ++-7.31606200545875488828e-03, ++-7.40251847290886687281e-03, ++-7.48497099526800394043e-03, ++-7.56338745990427392674e-03, ++-7.63773790272863697948e-03, ++-7.70799451815705905650e-03, ++-7.77413166794023880596e-03, ++-7.83612588885893024404e-03, ++-7.89395589928373019040e-03, ++-7.94760260459900953756e-03, ++-7.99704910149071600267e-03, ++-8.04228068109907878735e-03, ++-8.08328483103710852820e-03, ++-8.12005123627678772336e-03, ++-8.15257177890556759825e-03, ++-8.18084053675576655662e-03, ++-8.20485378091061375028e-03, ++-8.22460997209095365235e-03, ++-8.24010975592739773610e-03, ++-8.25135595712299906024e-03, ++-8.25835357251225588016e-03, ++-8.26110976302289051754e-03, ++-8.25963384454711686822e-03, ++-8.25393727773001892323e-03, ++-8.24403365668276502665e-03, ++-8.22993869662941301968e-03, ++-8.21167022049609611478e-03, ++-8.18924814445231435966e-03, ++-8.16269446241428900390e-03, ++-8.13203322952094770359e-03, ++-8.09729054459370524433e-03, ++-8.05849453159142650738e-03, ++-8.01567532007289515472e-03, ++-7.96886502467894497492e-03, ++-7.91809772364769626218e-03, ++-7.86340943637591806292e-03, ++-7.80483810004095092394e-03, ++-7.74242354529683460967e-03, ++-7.67620747106049876318e-03, ++-7.60623341840202440295e-03, ++-7.53254674355573021483e-03, ++-7.45519459006761028158e-03, ++-7.37422586009548602926e-03, ++-7.28969118487934625988e-03, ++-7.20164289439836468459e-03, ++-7.11013498623295006618e-03, ++-7.01522309364934187198e-03, ++-6.91696445292533119292e-03, ++-6.81541786993564071423e-03, ++-6.71064368601629723105e-03, ++-6.60270374312706912617e-03, ++-6.49166134833155817480e-03, ++-6.37758123761547179170e-03, ++-6.26052953906250375660e-03, ++-6.14057373540916311833e-03, ++-6.01778262599883193018e-03, ++-5.89222628815630304622e-03, ++-5.76397603800424263021e-03, ++-5.63310439074257793962e-03, ++-5.49968502041355174204e-03, ++-5.36379271917321667762e-03, ++-5.22550335609255588165e-03, ++-5.08489383551021401769e-03, ++-4.94204205495888618943e-03, ++-4.79702686268924927138e-03, ++-4.64992801481256979451e-03, ++-4.50082613208717050024e-03, ++-4.34980265636943953800e-03, ++-4.19693980675457916502e-03, ++-4.04232053542952999431e-03, ++-3.88602848326117904232e-03, ++-3.72814793514442046479e-03, ++-3.56876377513224178270e-03, ++-3.40796144137293617951e-03, ++-3.24582688087653560907e-03, ++-3.08244650413554361137e-03, ++-2.91790713962266495818e-03, ++-2.75229598818970896956e-03, ++-2.58570057739144132034e-03, ++-2.41820871575722370558e-03, ++-2.24990844703554021197e-03, ++-2.08088800443330694187e-03, ++-1.91123576487488202463e-03, ++-1.74104020330362123901e-03, ++-1.57038984704899425675e-03, ++-1.39937323028345179249e-03, ++-1.22807884859140337835e-03, ++-1.05659511367403743075e-03, ++-8.85010308212021861753e-04, ++-7.13412540909905373669e-04, ++-5.41889701744388552207e-04, ++-3.70529417438410636591e-04, ++-1.99419007184688332895e-04, ++-2.86454386391723757354e-05, ++ 1.41704715791932274720e-04, ++ 3.11545322351527997646e-04, ++ 4.80790728994517078173e-04, ++ 6.49355808093498481151e-04, ++ 8.17155998766742235409e-04, ++ 9.84107348806230984584e-04, ++ 1.15012655618750773805e-03, ++ 1.31513101013778751017e-03, ++ 1.47903883174614527579e-03, ++ 1.64176891409281364154e-03, ++ 1.80324096188044400921e-03, ++ 1.96337553054683720821e-03, ++ 2.12209406484084378217e-03, ++ 2.27931893684354004020e-03, ++ 2.43497348341521844400e-03, ++ 2.58898204305202080458e-03, ++ 2.74126999213337996242e-03, ++ 2.89176378054382390501e-03, ++ 3.04039096665289229962e-03, ++ 3.18708025163550725742e-03, ++ 3.33176151311842744587e-03, ++ 3.47436583813595005824e-03, ++ 3.61482555538014498075e-03, ++ 3.75307426673132269943e-03, ++ 3.88904687805323055413e-03, ++ 4.02267962924054024026e-03, ++ 4.15391012350339004777e-03, ++ 4.28267735587738347658e-03, ++ 4.40892174094537157153e-03, ++ 4.53258513975950821928e-03, ++ 4.65361088595093140563e-03, ++ 4.77194381101678308937e-03, ++ 4.88753026877269871470e-03, ++ 5.00031815896078389583e-03, ++ 5.11025695000340892532e-03, ++ 5.21729770089245179637e-03, ++ 5.32139308220599526605e-03, ++ 5.42249739624305147206e-03, ++ 5.52056659626851391892e-03, ++ 5.61555830486112211863e-03, ++ 5.70743183135652247528e-03, ++ 5.79614818837954730302e-03, ++ 5.88167010745905063929e-03, ++ 5.96396205371965346109e-03, ++ 6.04299023964566684591e-03, ++ 6.11872263791200451943e-03, ++ 6.19112899327779828834e-03, ++ 6.26018083353982283945e-03, ++ 6.32585147954144774024e-03, ++ 6.38811605423505318724e-03, ++ 6.44695149079576538403e-03, ++ 6.50233653978409681384e-03, ++ 6.55425177535713839039e-03, ++ 6.60267960052677606309e-03, ++ 6.64760425146517907463e-03, ++ 6.68901180085764834188e-03, ++ 6.72689016030344512365e-03, ++ 6.76122908176596693758e-03, ++ 6.79202015807388054941e-03, ++ 6.81925682247539518416e-03, ++ 6.84293434724847406819e-03, ++ 6.86304984136987261678e-03, ++ 6.87960224724697578386e-03, ++ 6.89259233651607575860e-03, ++ 6.90202270491214152359e-03, ++ 6.90789776621477530361e-03, ++ 6.91022374527592089799e-03, ++ 6.90900867013538935724e-03, ++ 6.90426236323048170274e-03, ++ 6.89599643170657299052e-03, ++ 6.88422425683606498820e-03, ++ 6.86896098255334458527e-03, ++ 6.85022350311395231137e-03, ++ 6.82803044988653656810e-03, ++ 6.80240217728674077119e-03, ++ 6.77336074786231978617e-03, ++ 6.74092991653942995994e-03, ++ 6.70513511404041261804e-03, ++ 6.66600342948348283806e-03, ++ 6.62356359217582818522e-03, ++ 6.57784595261113724102e-03, ++ 6.52888246268356915031e-03, ++ 6.47670665513047465189e-03, ++ 6.42135362221612788353e-03, ++ 6.36285999366974046321e-03, ++ 6.30126391389077868121e-03, ++ 6.23660501843537051769e-03, ++ 6.16892440979760654785e-03, ++ 6.09826463250009130623e-03, ++ 6.02466964750847117777e-03, ++ 5.94818480598439686818e-03, ++ 5.86885682239295450313e-03, ++ 5.78673374697901473501e-03, ++ 5.70186493762921998985e-03, ++ 5.61430103113523277375e-03, ++ 5.52409391387439444726e-03, ++ 5.43129669192503241465e-03, ++ 5.33596366063239947036e-03, ++ 5.23815027364322050724e-03, ++ 5.13791311142524926431e-03, ++ 5.03530984929013124274e-03, ++ 4.93039922493699201561e-03, ++ 4.82324100553432541516e-03, ++ 4.71389595435920891187e-03, ++ 4.60242579701116046043e-03, ++ 4.48889318721965805553e-03, ++ 4.37336167226419578885e-03, ++ 4.25589565802507278913e-03, ++ 4.13656037368400047310e-03, ++ 4.01542183609403160321e-03, ++ 3.89254681383765111652e-03, ++ 3.76800279099204432978e-03, ++ 3.64185793062176202395e-03, ++ 3.51418103801726458557e-03, ++ 3.38504152369975422690e-03, ++ 3.25450936621163181353e-03, ++ 3.12265507471182202082e-03, ++ 2.98954965139678783756e-03, ++ 2.85526455376563029209e-03, ++ 2.71987165675057146821e-03, ++ 2.58344321473122102290e-03, ++ 2.44605182345362590079e-03, ++ 2.30777038187338556438e-03, ++ 2.16867205394239955310e-03, ++ 2.02883023036007446166e-03, ++ 1.88831849030696359050e-03, ++ 1.74721056318321156346e-03, ++ 1.60558029036844077814e-03, ++ 1.46350158702526116430e-03, ++ 1.32104840396417614300e-03, ++ 1.17829468959044993299e-03, ++ 1.03531435195189738287e-03, ++ 8.92181220906407453086e-04, ++ 7.48969010429437957559e-04, ++ 6.05751281079198837520e-04, ++ 4.62601402639519420582e-04, ++ 3.19592516958703328628e-04, ++ 1.76797501002548605557e-04, ++ 3.42889301410700559898e-05, ++-1.07860958314116714895e-04, ++-2.49580301302545907224e-04, ++-3.90797645920318444633e-04, ++-5.31441985020897648614e-04, ++-6.71442792492634734323e-04, ++-8.10730058197295030964e-04, ++-9.49234322550691531593e-04, ++-1.08688671073021991820e-03, ++-1.22361896649146595362e-03, ++-1.35936348557852870918e-03, ++-1.49405334871076226656e-03, ++-1.62762235413136985458e-03, ++-1.76000504970118200505e-03, ++-1.89113676452272319942e-03, ++-2.02095364007995759864e-03, ++-2.14939266087792180127e-03, ++-2.27639168456901649570e-03, ++-2.40188947155079574047e-03, ++-2.52582571402181800535e-03, ++-2.64814106448245725756e-03, ++-2.76877716366639818613e-03, ++-2.88767666789123715262e-03, ++-3.00478327581455654377e-03, ++-3.12004175458374362687e-03, ++-3.23339796536792432186e-03, ++-3.34479888826014811615e-03, ++-3.45419264653828387429e-03, ++-3.56152853027508903283e-03, ++-3.66675701928568381627e-03, ++-3.76982980540296712391e-03, ++-3.87069981407154629915e-03, ++-3.96932122525004045521e-03, ++-4.06564949361390860078e-03, ++-4.15964136804923296370e-03, ++-4.25125491042980478001e-03, ++-4.34044951367000032827e-03, ++-4.42718591904522635466e-03, ++-4.51142623277396223602e-03, ++-4.59313394185401763226e-03, ++-4.67227392914710930316e-03, ++-4.74881248770633347667e-03, ++-4.82271733434034600985e-03, ++-4.89395762241020149813e-03, ++-4.96250395385362200878e-03, ++-5.02832839043272725871e-03, ++-5.09140446420189209803e-03, ++-5.15170718719160612709e-03, ++-5.20921306030622689037e-03, ++-5.26390008143260215712e-03, ++-5.31574775275780748302e-03, ++-5.36473708729396422251e-03, ++-5.41085061460937211120e-03, ++-5.45407238576448103601e-03, ++-5.49438797745297521219e-03, ++-5.53178449534730623527e-03, ++-5.56625057664943048014e-03, ++-5.59777639184752800333e-03, ++-5.62635364567968653676e-03, ++-5.65197557730641106377e-03, ++-5.67463695969378130457e-03, ++-5.69433409820978980731e-03, ++-5.71106482843655206827e-03, ++-5.72482851320176878984e-03, ++-5.73562603883285941631e-03, ++-5.74345981063785135379e-03, ++-5.74833374761739290815e-03, ++-5.75025327641265435880e-03, ++-5.74922532449426235829e-03, ++-5.74525831259774157761e-03, ++-5.73836214641150563903e-03, ++-5.72854820752343851104e-03, ++-5.71582934363289423690e-03, ++-5.70021985803501312490e-03, ++-5.68173549838472177059e-03, ++-5.66039344474815377811e-03, ++-5.63621229694941539706e-03, ++-5.60921206122125953764e-03, ++-5.57941413616825417771e-03, ++-5.54684129805165914567e-03, ++-5.51151768540501883070e-03, ++-5.47346878299080803754e-03, ++-5.43272140510751410519e-03, ++-5.38930367825777700136e-03, ++-5.34324502318837303572e-03, ++-5.29457613631248175806e-03, ++-5.24332897052591333231e-03, ++-5.18953671542863627375e-03, ++-5.13323377696330972880e-03, ++-5.07445575648276473585e-03, ++-5.01323942925907713175e-03, ++-4.94962272244652261993e-03, ++-4.88364469251110090015e-03, ++-4.81534550214015970304e-03, ++-4.74476639664476486369e-03, ++-4.67194967986881478511e-03, ++-4.59693868961848651350e-03, ++-4.51977777262569171968e-03, ++-4.44051225906016977518e-03, ++-4.35918843660393785094e-03, ++-4.27585352410331936968e-03, ++-4.19055564481250319292e-03, ++-4.10334379924411681712e-03, ++-4.01426783764161857621e-03, ++-3.92337843208837196152e-03, ++-3.83072704826951850737e-03, ++-3.73636591690094466492e-03, ++-3.64034800484260446379e-03, ++-3.54272698590992135906e-03, ++-3.44355721140094522825e-03, ++-3.34289368035381060859e-03, ++-3.24079200955149126021e-03, ++-3.13730840328953165461e-03, ++-3.03249962292274259992e-03, ++-2.92642295620787733917e-03, ++-2.81913618645769506812e-03, ++-2.71069756152355744588e-03, ++-2.60116576262271661374e-03, ++-2.49059987302636997100e-03, ++-2.37905934662592955658e-03, ++-2.26660397639284923177e-03, ++-2.15329386274948570215e-03, ++-2.03918938186720523700e-03, ++-1.92435115390780829905e-03, ++-1.80884001122574964056e-03, ++-1.69271696654636218636e-03, ++-1.57604318113799030283e-03, ++-1.45887993299307315576e-03, ++-1.34128858503558523983e-03, ++-1.22333055337022866653e-03, ++-1.10506727559064096139e-03, ++-9.86560179161664061245e-04, ++-8.67870649892684017067e-04, ++-7.49060000517653913794e-04, ++-6.30189439397319385409e-04, ++-5.11320039360376723744e-04, ++-3.92512706698102461101e-04, ++-2.73828150328942268588e-04, ++-1.55326851148111989192e-04, ++-3.70690315771187548660e-05, ++ 8.08853746707290755880e-05, ++ 1.98476752594946217068e-04, ++ 3.15645835666873892950e-04, ++ 4.32333735328772883737e-04, ++ 5.48481970218807931942e-04, ++ 6.64032495107181436854e-04, ++ 7.78927729529055225960e-04, ++ 8.93110586101435741449e-04, ++ 1.00652449850903457675e-03, ++ 1.11911344914620018882e-03, ++ 1.23082199640186964844e-03, ++ 1.34159530157362035657e-03, ++ 1.45137915539899904453e-03, ++ 1.56012000419063017430e-03, ++ 1.66776497556303743633e-03, ++ 1.77426190373947069608e-03, ++ 1.87955935442584700854e-03, ++ 1.98360664924133621098e-03, ++ 2.08635388969323877853e-03, ++ 2.18775198068548414054e-03, ++ 2.28775265355017198149e-03, ++ 2.38630848859077522237e-03, ++ 2.48337293712776532861e-03, ++ 2.57890034303572641614e-03, ++ 2.67284596376264485876e-03, ++ 2.76516599082240414204e-03, ++ 2.85581756975021973724e-03, ++ 2.94475881951346621368e-03, ++ 3.03194885136837165643e-03, ++ 3.11734778715522806505e-03, ++ 3.20091677702330967489e-03, ++ 3.28261801657889207284e-03, ++ 3.36241476344812956906e-03, ++ 3.44027135324883812095e-03, ++ 3.51615321496371192184e-03, ++ 3.59002688570913630964e-03, ++ 3.66186002489374750821e-03, ++ 3.73162142776055534565e-03, ++ 3.79928103830806575963e-03, ++ 3.86480996158482074943e-03, ++ 3.92818047535295911815e-03, ++ 3.98936604111683416202e-03, ++ 4.04834131451196205242e-03, ++ 4.10508215505163594206e-03, ++ 4.15956563522717256282e-03, ++ 4.21177004895932887568e-03, ++ 4.26167491939793193628e-03, ++ 4.30926100606804449861e-03, ++ 4.35451031136011804806e-03, ++ 4.39740608636303952073e-03, ++ 4.43793283603874291060e-03, ++ 4.47607632373735360443e-03, ++ 4.51182357505270758419e-03, ++ 4.54516288101758283297e-03, ++ 4.57608380063932208837e-03, ++ 4.60457716277592760817e-03, ++ 4.63063506735364276146e-03, ++ 4.65425088592728592590e-03, ++ 4.67541926158465074442e-03, ++ 4.69413610819694772369e-03, ++ 4.71039860901748680400e-03, ++ 4.72420521463094104236e-03, ++ 4.73555564025632692166e-03, ++ 4.74445086240650633347e-03, ++ 4.75089311490801708554e-03, ++ 4.75488588428478291259e-03, ++ 4.75643390451007622849e-03, ++ 4.75554315113093165057e-03, ++ 4.75222083476989180795e-03, ++ 4.74647539400918638819e-03, ++ 4.73831648766260323663e-03, ++ 4.72775498644069803317e-03, ++ 4.71480296401554071356e-03, ++ 4.69947368749087587836e-03, ++ 4.68178160728457970485e-03, ++ 4.66174234643011633356e-03, ++ 4.63937268930397338912e-03, ++ 4.61469056978682824754e-03, ++ 4.58771505886557909998e-03, ++ 4.55846635168473662131e-03, ++ 4.52696575405490270194e-03, ++ 4.49323566842705062613e-03, ++ 4.45729957934127077324e-03, ++ 4.41918203835877602265e-03, ++ 4.37890864848652049124e-03, ++ 4.33650604810387890753e-03, ++ 4.29200189440092326476e-03, ++ 4.24542484633809186906e-03, ++ 4.19680454713776754372e-03, ++ 4.14617160631750546196e-03, ++ 4.09355758127592610218e-03, ++ 4.03899495844180136256e-03, ++ 3.98251713399709519198e-03, ++ 3.92415839418544434153e-03, ++ 3.86395389521696766208e-03, ++ 3.80193964278122088427e-03, ++ 3.73815247117977034197e-03, ++ 3.67263002209005122098e-03, ++ 3.60541072297290579943e-03, ++ 3.53653376513536534670e-03, ++ 3.46603908146142026050e-03, ++ 3.39396732382294752731e-03, ++ 3.32035984018316321711e-03, ++ 3.24525865140575702286e-03, ++ 3.16870642778174132007e-03, ++ 3.09074646528776763449e-03, ++ 3.01142266158806225576e-03, ++ 2.93077949179369311866e-03, ++ 2.84886198399182102511e-03, ++ 2.76571569455873623317e-03, ++ 2.68138668326939897182e-03, ++ 2.59592148821740460393e-03, ++ 2.50936710055862152030e-03, ++ 2.42177093909172859790e-03, ++ 2.33318082468986958203e-03, ++ 2.24364495459622101392e-03, ++ 2.15321187659778126924e-03, ++ 2.06193046309074068043e-03, ++ 1.96984988505084042051e-03, ++ 1.87701958592308018950e-03, ++ 1.78348925544364851972e-03, ++ 1.68930880340843595812e-03, ++ 1.59452833340149326656e-03, ++ 1.49919811649695529192e-03, ++ 1.40336856494826384134e-03, ++ 1.30709020587860356294e-03, ++ 1.21041365498514362324e-03, ++ 1.11338959027166444805e-03, ++ 1.01606872582251793642e-03, ++ 9.18501785631088349393e-04, ++ 8.20739477496859018597e-04, ++ 7.22832467003395990300e-04, ++ 6.24831351591239583451e-04, ++ 5.26786634738466547599e-04, ++ 4.28748700261665177755e-04, ++ 3.30767786750949313850e-04, ++ 2.32893962150942354693e-04, ++ 1.35177098501164551355e-04, ++ 3.76668468481058423122e-05, ++-5.95873876588743519559e-05, ++-1.56536470474729711095e-04, ++-2.53131562157722037748e-04, ++-3.49324142647419787298e-04, ++-4.45066035310075810549e-04, ++-5.40309430740103734635e-04, ++-6.35006910305014118934e-04, ++-7.29111469423506203084e-04, ++-8.22576540564630594166e-04, ++-9.15356015957640898294e-04, ++-1.00740427000084128463e-03, ++-1.09867618135961594636e-03, ++-1.18912715474222760448e-03, ++-1.27871314234389459909e-03, ++-1.36739066494837155016e-03, ++-1.45511683267735177083e-03, ++-1.54184936537829454448e-03, ++-1.62754661264047644116e-03, ++-1.71216757343079406702e-03, ++-1.79567191533962417817e-03, ++-1.87801999342815861480e-03, ++-1.95917286866888803315e-03, ++-2.03909232597019587571e-03, ++-2.11774089177778042717e-03, ++-2.19508185124423979562e-03, ++-2.27107926495981587295e-03, ++-2.34569798523625184378e-03, ++-2.41890367193748701338e-03, ++-2.49066280784942736815e-03, ++-2.56094271358263403382e-03, ++-2.62971156200168766290e-03, ++-2.69693839217458606120e-03, ++-2.76259312283697608739e-03, ++-2.82664656536508410861e-03, ++-2.88907043625251033769e-03, ++-2.94983736908550680730e-03, ++-3.00892092601204481916e-03, ++-3.06629560870052934873e-03, ++-3.12193686878331445531e-03, ++-3.17582111778177576464e-03, ++-3.22792573650879186659e-03, ++-3.27822908394535990351e-03, ++-3.32671050558861836413e-03, ++-3.37335034126782541686e-03, ++-3.41812993242640843911e-03, ++-3.46103162886747485125e-03, ++-3.50203879496072990885e-03, ++-3.54113581530953033458e-03, ++-3.57830809987640932265e-03, ++-3.61354208856588636489e-03, ++-3.64682525526394910736e-03, ++-3.67814611133359227815e-03, ++-3.70749420856602597552e-03, ++-3.73486014158783824479e-03, ++-3.76023554972410066835e-03, ++-3.78361311831824139590e-03, ++-3.80498657950949356263e-03, ++-3.82435071246891309174e-03, ++-3.84170134309564249159e-03, ++-3.85703534317483227867e-03, ++-3.87035062899941184958e-03, ++-3.88164615945781315415e-03, ++-3.89092193359018290177e-03, ++-3.89817898761586753217e-03, ++-3.90341939143522623223e-03, ++-3.90664624460901419717e-03, ++-3.90786367181894002398e-03, ++-3.90707681781324485393e-03, ++-3.90429184184126710708e-03, ++-3.89951591158146492616e-03, ++-3.89275719656733548701e-03, ++-3.88402486111620462786e-03, ++-3.87332905676572971168e-03, ++-3.86068091422367464308e-03, ++-3.84609253483633988652e-03, ++-3.82957698158139896172e-03, ++-3.81114826959133828205e-03, ++-3.79082135621343309026e-03, ++-3.76861213061301580582e-03, ++-3.74453740292646350060e-03, ++-3.71861489297091191847e-03, ++-3.69086321851783442580e-03, ++-3.66130188313754665122e-03, ++-3.62995126362247863203e-03, ++-3.59683259699652849509e-03, ++-3.56196796711877707378e-03, ++-3.52538029088927777621e-03, ++-3.48709330406542271710e-03, ++-3.44713154669716278014e-03, ++-3.40552034818984500006e-03, ++-3.36228581200323853317e-03, ++-3.31745479999584480524e-03, ++-3.27105491642360043589e-03, ++-3.22311449160199306810e-03, ++-3.17366256524132884023e-03, ++-3.12272886946435550976e-03, ++-3.07034381151609402430e-03, ++-3.01653845617577253541e-03, ++-2.96134450788043245700e-03, ++-2.90479429257073850854e-03, ++-2.84692073926870632683e-03, ++-2.78775736139794984292e-03, ++-2.72733823785672839513e-03, ++-2.66569799385409870324e-03, ++-2.60287178151993913236e-03, ++-2.53889526029965357373e-03, ++-2.47380457714372692726e-03, ++-2.40763634650355490621e-03, ++-2.34042763014413865083e-03, ++-2.27221591678447533066e-03, ++-2.20303910157702452152e-03, ++-2.13293546543681959357e-03, ++-2.06194365423175264909e-03, ++-1.99010265784496783933e-03, ++-1.91745178912041433321e-03, ++-1.84403066270314016858e-03, ++-1.76987917378504866148e-03, ++-1.69503747676780160310e-03, ++-1.61954596385395933195e-03, ++-1.54344524357734455208e-03, ++-1.46677611928450082716e-03, ++-1.38957956757772282952e-03, ++-1.31189671673156917249e-03, ++-1.23376882509377769348e-03, ++-1.15523725948148982788e-03, ++-1.07634347358468449377e-03, ++-9.97128986387143959394e-04, ++-9.17635360616648500243e-04, ++-8.37904181234895789956e-04, ++-7.57977033978787513406e-04, ++-6.77895483963235779418e-04, ++-5.97701054357152421204e-04, ++-5.17435205142649512489e-04, ++-4.37139311968777596797e-04, ++-3.56854645110210024969e-04, ++-2.76622348541154185371e-04, ++-1.96483419135612727945e-04, ++-1.16478686003570469231e-04, ++-3.66487899740422618075e-05, ++ 4.29658367651341511670e-05, ++ 1.22324990860946911401e-04, ++ 2.01388717811737909388e-04, ++ 2.80117331797544979934e-04, ++ 3.58471435313892643378e-04, ++ 4.36411938600040889922e-04, ++ 5.13900078851591240840e-04, ++ 5.90897439209055901944e-04, ++ 6.67365967512406946770e-04, ++ 7.43267994812951346417e-04, ++ 8.18566253633950927961e-04, ++ 8.93223895970637264512e-04, ++ 9.67204511021861590946e-04, ++ 1.04047214264425358192e-03, ++ 1.11299130652140420249e-03, ++ 1.18472700703946731866e-03, ++ 1.25564475386154045418e-03, ++ 1.32571057819342382096e-03, ++ 1.39489104873262805863e-03, ++ 1.46315328729405358735e-03, ++ 1.53046498410463441449e-03, ++ 1.59679441276025036248e-03, ++ 1.66211044483838841015e-03, ++ 1.72638256415947395801e-03, ++ 1.78958088069116868016e-03, ++ 1.85167614408905580742e-03, ++ 1.91263975686785663195e-03, ++ 1.97244378719760738577e-03, ++ 2.03106098131931389963e-03, ++ 2.08846477557452425353e-03, ++ 2.14462930804391795764e-03, ++ 2.19952942979019039696e-03, ++ 2.25314071570019555310e-03, ++ 2.30543947492238164229e-03, ++ 2.35640276089497556142e-03, ++ 2.40600838096100867747e-03, ++ 2.45423490556669890092e-03, ++ 2.50106167703914496897e-03, ++ 2.54646881794065452556e-03, ++ 2.59043723899601840976e-03, ++ 2.63294864659046256791e-03, ++ 2.67398554983521103204e-03, ++ 2.71353126719851020857e-03, ++ 2.75156993270003411012e-03, ++ 2.78808650166653335112e-03, ++ 2.82306675604716231925e-03, ++ 2.85649730928709153985e-03, ++ 2.88836561075816750793e-03, ++ 2.91865994974546466220e-03, ++ 2.94736945898928888107e-03, ++ 2.97448411778179853254e-03, ++ 2.99999475461813899443e-03, ++ 3.02389304940205334848e-03, ++ 3.04617153520601608579e-03, ++ 3.06682359958635559691e-03, ++ 3.08584348545404892755e-03, ++ 3.10322629150200672218e-03, ++ 3.11896797218987227585e-03, ++ 3.13306533728775369815e-03, ++ 3.14551605098039102626e-03, ++ 3.15631863053354591933e-03, ++ 3.16547244452441024071e-03, ++ 3.17297771063858400492e-03, ++ 3.17883549303571563346e-03, ++ 3.18304769928660826611e-03, ++ 3.18561707688456985377e-03, ++ 3.18654720933417290318e-03, ++ 3.18584251182050994661e-03, ++ 3.18350822646264360050e-03, ++ 3.17955041715474407901e-03, ++ 3.17397596399888754642e-03, ++ 3.16679255733362226624e-03, ++ 3.15800869136252529770e-03, ++ 3.14763365738724267343e-03, ++ 3.13567753664971719460e-03, ++ 3.12215119278838691003e-03, ++ 3.10706626391348732577e-03, ++ 3.09043515430657261128e-03, ++ 3.07227102574976181429e-03, ++ 3.05258778849025729646e-03, ++ 3.03140009184578061371e-03, ++ 3.00872331445699433758e-03, ++ 2.98457355419296660459e-03, ++ 2.95896761771581541176e-03, ++ 2.93192300971099667137e-03, ++ 2.90345792178986830678e-03, ++ 2.87359122107115833381e-03, ++ 2.84234243844815569202e-03, ++ 2.80973175654865899714e-03, ++ 2.77577999739489662823e-03, ++ 2.74050860977057735360e-03, ++ 2.70393965630238552328e-03, ++ 2.66609580026378606421e-03, ++ 2.62700029210837524354e-03, ++ 2.58667695574077254050e-03, ++ 2.54515017453282822377e-03, ++ 2.50244487709332368713e-03, ++ 2.45858652279897166651e-03, ++ 2.41360108709495107052e-03, ++ 2.36751504657360840878e-03, ++ 2.32035536383917847733e-03, ++ 2.27214947216734537011e-03, ++ 2.22292525996793232518e-03, ++ 2.17271105505975571301e-03, ++ 2.12153560876561335380e-03, ++ 2.06942807983705873154e-03, ++ 2.01641801821680422338e-03, ++ 1.96253534864859182849e-03, ++ 1.90781035414268307880e-03, ++ 1.85227365930619859540e-03, ++ 1.79595621354771339470e-03, ++ 1.73888927416449511586e-03, ++ 1.68110438932177089048e-03, ++ 1.62263338093348468728e-03, ++ 1.56350832745304072283e-03, ++ 1.50376154658367453161e-03, ++ 1.44342557791726690958e-03, ++ 1.38253316551135724960e-03, ++ 1.32111724041281413007e-03, ++ 1.25921090313770521994e-03, ++ 1.19684740611688275949e-03, ++ 1.13406013611574898320e-03, ++ 1.07088259663794954646e-03, ++ 1.00734839032173340879e-03, ++ 9.43491201338451197442e-04, ++ 8.79344777802133358187e-04, ++ 8.14942914198997676867e-04, ++ 7.50319433846045077789e-04, ++ 6.85508171388117602645e-04, ++ 6.20542955341616764633e-04, ++ 5.55457590694125209752e-04, ++ 4.90285841569116395515e-04, ++ 4.25061413963795440944e-04, ++ 3.59817938569106346609e-04, ++ 2.94588953680933085706e-04, ++ 2.29407888210245771441e-04, ++ 1.64308044801349289110e-04, ++ 9.93225830661220992091e-05, ++ 3.44845029432159748818e-05, ++-3.01733718103322993271e-05, ++-9.46184099865878051579e-05, ++-1.58818189144901994068e-04, ++-2.22740511673599295237e-04, ++-2.86353420686933518319e-04, ++-3.49625215749474168095e-04, ++-4.12524468420490651472e-04, ++-4.75020037611034338584e-04, ++-5.37081084745966554420e-04, ++-5.98677088724102000189e-04, ++-6.59777860668749548644e-04, ++-7.20353558462378845868e-04, ++-7.80374701058222453379e-04, ++-8.39812182561741876058e-04, ++-8.98637286076072534964e-04, ++-9.56821697304657218380e-04, ++-1.01433751790445296839e-03, ++-1.07115727858425125243e-03, ++-1.12725395194157021125e-03, ++-1.18260096503265514645e-03, ++-1.23717221166938983953e-03, ++-1.29094206443821453087e-03, ++-1.34388538643541812813e-03, ++-1.39597754271321623266e-03, ++-1.44719441143244622640e-03, ++-1.49751239471598309415e-03, ++-1.54690842919921311277e-03, ++-1.59535999627203944548e-03, ++-1.64284513200888535912e-03, ++-1.68934243678199938477e-03, ++-1.73483108455441971917e-03, ++-1.77929083184826127527e-03, ++-1.82270202638530284291e-03, ++-1.86504561539608984359e-03, ++-1.90630315359404723698e-03, ++-1.94645681081197273812e-03, ++-1.98548937929780454012e-03, ++-2.02338428066662365593e-03, ++-2.06012557250690765687e-03, ++-2.09569795463821536424e-03, ++-2.13008677501847496286e-03, ++-2.16327803529848140124e-03, ++-2.19525839602226170363e-03, ++-2.22601518147149193827e-03, ++-2.25553638415244925991e-03, ++-2.28381066892440051305e-03, ++-2.31082737676846549160e-03, ++-2.33657652819600639496e-03, ++-2.36104882629574550773e-03, ++-2.38423565941946538627e-03, ++-2.40612910350581450311e-03, ++-2.42672192404203967281e-03, ++-2.44600757766397268814e-03, ++-2.46398021339438002067e-03, ++-2.48063467352028057047e-03, ++-2.49596649410964519650e-03, ++-2.50997190516864723125e-03, ++-2.52264783044025284534e-03, ++-2.53399188684540720151e-03, ++-2.54400238356825665262e-03, ++-2.55267832078691359055e-03, ++-2.56001938805160448795e-03, ++-2.56602596231194192769e-03, ++-2.57069910559561132235e-03, ++-2.57404056234069840772e-03, ++-2.57605275638400242275e-03, ++-2.57673878760806066013e-03, ++-2.57610242824962915389e-03, ++-2.57414811887259368725e-03, ++-2.57088096400836900457e-03, ++-2.56630672746716416779e-03, ++-2.56043182732341697075e-03, ++-2.55326333057917390437e-03, ++-2.54480894750897836121e-03, ++-2.53507702569032763312e-03, ++-2.52407654372365647388e-03, ++-2.51181710464612895778e-03, ++-2.49830892904353337597e-03, ++-2.48356284786475705814e-03, ++-2.46759029494360467016e-03, ++-2.45040329923257435216e-03, ++-2.43201447675357512387e-03, ++-2.41243702227060758184e-03, ++-2.39168470068965325834e-03, ++-2.36977183819085321370e-03, ++-2.34671331309871259233e-03, ++-2.32252454649548413859e-03, ++-2.29722149258377488293e-03, ++-2.27082062880380698353e-03, ++-2.24333894571130537665e-03, ++-2.21479393662223902547e-03, ++-2.18520358703003540410e-03, ++-2.15458636380176215414e-03, ++-2.12296120415960722083e-03, ++-2.09034750445369690852e-03, ++-2.05676510873303809365e-03, ++-2.02223429712087166693e-03, ++-1.98677577400132665889e-03, ++-1.95041065602380068143e-03, ++-1.91316045993188566660e-03, ++-1.87504709022398054208e-03, ++-1.83609282665202818569e-03, ++-1.79632031156571974305e-03, ++-1.75575253710894539118e-03, ++-1.71441283227574312563e-03, ++-1.67232484983291908656e-03, ++-1.62951255311622692640e-03, ++-1.58600020270752910083e-03, ++-1.54181234300042021082e-03, ++-1.49697378866114633872e-03, ++-1.45150961099237444871e-03, ++-1.40544512420743054025e-03, ++-1.35880587162187237323e-03, ++-1.31161761177006727826e-03, ++-1.26390630445442453227e-03, ++-1.21569809673418671551e-03, ++-1.16701930886166653674e-03, ++-1.11789642017300181083e-03, ++-1.06835605494137557414e-03, ++-1.01842496819956130141e-03, ++-9.68130031539442812739e-04, ++-9.17498218896290623249e-04, ++-8.66556592324564493868e-04, ++-8.15332287772978616183e-04, ++-7.63852500866257408917e-04, ++-7.12144472700820384964e-04, ++-6.60235475661517237297e-04, ++-6.08152799267011124132e-04, ++-5.55923736050680200420e-04, ++-5.03575567484773503439e-04, ++-4.51135549954315671906e-04, ++-3.98630900788171399930e-04, ++-3.46088784354618185513e-04, ++-2.93536298227804867602e-04, ++-2.41000459432347881880e-04, ++-1.88508190773214112049e-04, ++-1.36086307257084302303e-04, ++-8.37615026124415208318e-05, ++-3.15603359146758591044e-05, ++ 2.04907816767023618287e-05, ++ 7.23656000628412833693e-05, ++ 1.24038043225600054433e-04, ++ 1.75482222116205200833e-04, ++ 2.26672447407071596913e-04, ++ 2.77583242099614419147e-04, ++ 3.28189353983021332804e-04, ++ 3.78465767937005519422e-04, ++ 4.28387718073507952569e-04, ++ 4.77930699711027453993e-04, ++ 5.27070481176294264314e-04, ++ 5.75783115427220041314e-04, ++ 6.24044951492278227381e-04, ++ 6.71832645720683982113e-04, ++ 7.19123172837888647094e-04, ++ 7.65893836801815361230e-04, ++ 8.12122281454607207463e-04, ++ 8.57786500964706813931e-04, ++ 9.02864850055145489773e-04, ++ 9.47336054012924352885e-04, ++ 9.91179218475344821562e-04, ++ 1.03437383898850724685e-03, ++ 1.07689981033424705438e-03, ++ 1.11873743562118156160e-03, ++ 1.15986743513579325555e-03, ++ 1.20027095494985164281e-03, ++ 1.23992957528063201672e-03, ++ 1.27882531860024116835e-03, ++ 1.31694065749045157408e-03, ++ 1.35425852224024464987e-03, ++ 1.39076230818266951932e-03, ++ 1.42643588276789089024e-03, ++ 1.46126359237003949389e-03, ++ 1.49523026882479484305e-03, ++ 1.52832123569547530945e-03, ++ 1.56052231426488533308e-03, ++ 1.59181982925111196493e-03, ++ 1.62220061424500194142e-03, ++ 1.65165201686719317030e-03, ++ 1.68016190364333106375e-03, ++ 1.70771866459552704512e-03, ++ 1.73431121754877184786e-03, ++ 1.75992901215076880984e-03, ++ 1.78456203360429659956e-03, ++ 1.80820080611094821665e-03, ++ 1.83083639602529585529e-03, ++ 1.85246041471891220720e-03, ++ 1.87306502115368290161e-03, ++ 1.89264292416397640097e-03, ++ 1.91118738444732896159e-03, ++ 1.92869221626372814270e-03, ++ 1.94515178884347187879e-03, ++ 1.96056102750367033591e-03, ++ 1.97491541447399011552e-03, ++ 1.98821098943195847739e-03, ++ 2.00044434974860733945e-03, ++ 2.01161265044509608366e-03, ++ 2.02171360386141883703e-03, ++ 2.03074547903829647627e-03, ++ 2.03870710081329245544e-03, ++ 2.04559784863279697439e-03, ++ 2.05141765508121132200e-03, ++ 2.05616700412915255278e-03, ++ 2.05984692910230610119e-03, ++ 2.06245901037309994214e-03, ++ 2.06400537277705341602e-03, ++ 2.06448868275625058155e-03, ++ 2.06391214523207744413e-03, ++ 2.06227950020990537586e-03, ++ 2.05959501911819184081e-03, ++ 2.05586350088483903534e-03, ++ 2.05109026775365885925e-03, ++ 2.04528116084394225374e-03, ++ 2.03844253545626581670e-03, ++ 2.03058125612778830188e-03, ++ 2.02170469144040887075e-03, ++ 2.01182070858521491047e-03, ++ 2.00093766768695948202e-03, ++ 1.98906441589210680049e-03, ++ 1.97621028122438920777e-03, ++ 1.96238506621177182659e-03, ++ 1.94759904128888393197e-03, ++ 1.93186293797900990321e-03, ++ 1.91518794185986402506e-03, ++ 1.89758568531769714928e-03, ++ 1.87906824009385019746e-03, ++ 1.85964810962852347687e-03, ++ 1.83933822120627122297e-03, ++ 1.81815191790804173144e-03, ++ 1.79610295037441560807e-03, ++ 1.77320546838494034515e-03, ++ 1.74947401225873200130e-03, ++ 1.72492350408103120758e-03, ++ 1.69956923876105037673e-03, ++ 1.67342687492632539309e-03, ++ 1.64651242565860508361e-03, ++ 1.61884224907680703345e-03, ++ 1.59043303877220510226e-03, ++ 1.56130181410158168538e-03, ++ 1.53146591034349164456e-03, ++ 1.50094296872333799256e-03, ++ 1.46975092631300560328e-03, ++ 1.43790800581038743892e-03, ++ 1.40543270520465083014e-03, ++ 1.37234378733301696889e-03, ++ 1.33866026933477191320e-03, ++ 1.30440141200818598630e-03, ++ 1.26958670907636713213e-03, ++ 1.23423587636767762184e-03, ++ 1.19836884091695044206e-03, ++ 1.16200572999298904278e-03, ++ 1.12516686005846404395e-03, ++ 1.08787272566834868938e-03, ++ 1.05014398831246302812e-03, ++ 1.01200146520824866246e-03, ++ 9.73466118049983288388e-04, ++ 9.34559041719948196611e-04, ++ 8.95301452967915711335e-04, ++ 8.55714679064593008659e-04, ++ 8.15820146435422468428e-04, ++ 7.75639369280203805866e-04, ++ 7.35193938184691589237e-04, ++ 6.94505508730360781103e-04, ++ 6.53595790107610935191e-04, ++ 6.12486533739071471218e-04, ++ 5.71199521918073420228e-04, ++ 5.29756556468897262142e-04, ++ 4.88179447433947737416e-04, ++ 4.46490001794050709802e-04, ++ 4.04710012227305993091e-04, ++ 3.62861245912609686835e-04, ++ 3.20965433382992511909e-04, ++ 2.79044257434640438631e-04, ++ 2.37119342097372800019e-04, ++ 1.95212241671636533603e-04, ++ 1.53344429837704167947e-04, ++ 1.11537288842718541599e-04, ++ 6.98120987704314377789e-05, ++ 2.81900268993452554395e-05, ++-1.33078828458379828427e-05, ++-5.46607203438825674300e-05, ++-9.58477196232063128950e-05, ++-1.36848269099311073286e-04, ++-1.77641921698430010380e-04, ++-2.18208404862630192013e-04, ++-2.58527630431676846631e-04, ++-2.98579704396867049668e-04, ++-3.38344936521953437280e-04, ++-3.77803849827058782322e-04, ++-4.16937189930904319925e-04, ++-4.55725934246739843459e-04, ++-4.94151301028182598010e-04, ++-5.32194758260364701556e-04, ++-5.69838032392598397777e-04, ++-6.07063116908156791794e-04, ++-6.43852280727741713151e-04, ++-6.80188076442613171781e-04, ++-7.16053348373450011463e-04, ++-7.51431240451819475352e-04, ++-7.86305203920363614614e-04, ++-8.20659004848588277854e-04, ++-8.54476731460626398769e-04, ++-8.87742801272211191736e-04, ++-9.20441968033579760618e-04, ++-9.52559328475276884118e-04, ++-9.84080328854130366098e-04, ++-1.01499077129671671886e-03, ++-1.04527681993767346084e-03, ++-1.07492500685012399610e-03, ++-1.10392223776622968451e-03, ++-1.13225579758538573774e-03, ++-1.15991335566776048067e-03, ++-1.18688297091152023324e-03, ++-1.21315309661150744040e-03, ++-1.23871258509778933189e-03, ++-1.26355069215218973264e-03, ++-1.28765708120147479195e-03, ++-1.31102182728572635648e-03, ++-1.33363542080036233568e-03, ++-1.35548877101096445358e-03, ++-1.37657320933958870861e-03, ++-1.39688049242180935793e-03, ++-1.41640280493340441764e-03, ++-1.43513276218638474030e-03, ++-1.45306341249334513427e-03, ++-1.47018823930013145355e-03, ++-1.48650116308605430814e-03, ++-1.50199654303180877256e-03, ++-1.51666917845484855790e-03, ++-1.53051431001215848537e-03, ++-1.54352762067077827791e-03, ++-1.55570523644627803014e-03, ++-1.56704372690943645810e-03, ++-1.57754010546188694168e-03, ++-1.58719182938115940286e-03, ++-1.59599679963599232028e-03, ++-1.60395336047266818397e-03, ++-1.61106029877347285521e-03, ++-1.61731684318832920691e-03, ++-1.62272266304074063749e-03, ++-1.62727786700950075895e-03, ++-1.63098300158752559583e-03, ++-1.63383904931938927878e-03, ++-1.63584742681915007098e-03, ++-1.63700998257036147918e-03, ++-1.63732899451001076216e-03, ++-1.63680716739846910703e-03, ++-1.63544762997745404300e-03, ++-1.63325393191824947553e-03, ++-1.63023004056244216753e-03, ++-1.62638033745757639228e-03, ++-1.62170961469021174955e-03, ++-1.61622307101895478811e-03, ++-1.60992630781018361379e-03, ++-1.60282532477918769794e-03, ++-1.59492651553961163439e-03, ++-1.58623666296416683703e-03, ++-1.57676293435965995428e-03, ++-1.56651287645941865272e-03, ++-1.55549441023637930251e-03, ++-1.54371582554013535814e-03, ++-1.53118577556127515200e-03, ++-1.51791327112649242562e-03, ++-1.50390767482801038582e-03, ++-1.48917869499094052133e-03, ++-1.47373637948217746547e-03, ++-1.45759110936466060836e-03, ++-1.44075359240074425682e-03, ++-1.42323485640868073465e-03, ++-1.40504624247599204864e-03, ++-1.38619939803382081524e-03, ++-1.36670626979641294217e-03, ++-1.34657909656966815262e-03, ++-1.32583040193301449593e-03, ++-1.30447298679896685550e-03, ++-1.28251992185438013459e-03, ++-1.25998453988795662377e-03, ++-1.23688042800817435581e-03, ++-1.21322141975630610686e-03, ++-1.18902158711867676766e-03, ++-1.16429523244280098797e-03, ++-1.13905688026204581637e-03, ++-1.11332126903301116203e-03, ++-1.08710334279067352171e-03, ++-1.06041824272541424130e-03, ++-1.03328129868704887868e-03, ++-1.00570802062011207742e-03, ++-9.77714089935322180555e-04, ++-9.49315350821759501229e-04, ++-9.20527801504691478400e-04, ++-8.91367585453492765508e-04, ++-8.61850982544499480062e-04, ++-8.31994400183724228809e-04, ++-8.01814364393843201882e-04, ++-7.71327510870362977047e-04, ++-7.40550576011879011992e-04, ++-7.09500387928816301369e-04, ++-6.78193857435692871310e-04, ++-6.46647969031396334730e-04, ++-6.14879771872516131710e-04, ++-5.82906370744061324771e-04, ++-5.50744917032461615489e-04, ++-5.18412599705563741960e-04, ++-4.85926636304230086336e-04, ++-4.53304263950078342206e-04, ++-4.20562730374023118537e-04, ++-3.87719284970423796848e-04, ++-3.54791169881019867287e-04, ++-3.21795611113349097968e-04, ++-2.88749809698345409788e-04, ++-2.55670932891157169815e-04, ++-2.22576105419946933131e-04, ++-1.89482400786797724242e-04, ++-1.56406832625384566377e-04, ++-1.23366346119315335164e-04, ++-9.03778094855688048136e-05, ++-5.74580055274082543144e-05, ++-2.46236232605249242254e-05, ++ 8.10875038316639484403e-06, ++ 4.07226387702898438674e-05, ++ 7.32016836950174766508e-05, ++ 1.05529653418793463730e-04, ++ 1.37690450616703013997e-04, ++ 1.69668120226623675949e-04, ++ 2.01446857197505152211e-04, ++ 2.33011014133184106998e-04, ++ 2.64345108828066273181e-04, ++ 2.95433831690941053547e-04, ++ 3.26262053053821875562e-04, ++ 3.56814830362236329840e-04, ++ 3.87077415243466558745e-04, ++ 4.17035260449873101951e-04, ++ 4.46674026673809685620e-04, ++ 4.75979589231274630330e-04, ++ 5.04938044610982032269e-04, ++ 5.33535716886269443388e-04, ++ 5.61759163986835612092e-04, ++ 5.89595183827354429873e-04, ++ 6.17030820290651992738e-04, ++ 6.44053369062530110985e-04, ++ 6.70650383315962803771e-04, ++ 6.96809679241917109133e-04, ++ 7.22519341424928177552e-04, ++ 7.47767728060641924219e-04, ++ 7.72543476013702731450e-04, ++ 7.96835505713403631674e-04, ++ 8.20633025885535226200e-04, ++ 8.43925538118381487161e-04, ++ 8.66702841260924973336e-04, ++ 8.88955035651854165446e-04, ++ 9.10672527177615212350e-04, ++ 9.31846031157871484973e-04, ++ 9.52466576057239681409e-04, ++ 9.72525507021732124775e-04, ++ 9.92014489238877755425e-04, ++ 1.01092551112014119447e-03, ++ 1.02925088730489687483e-03, ++ 1.04698326148487523037e-03, ++ 1.06411560904814419225e-03, ++ 1.08064123954212140503e-03, ++ 1.09655379895474709012e-03, ++ 1.11184727181350227060e-03, ++ 1.12651598310145530275e-03, ++ 1.14055459999043234086e-03, ++ 1.15395813339070935251e-03, ++ 1.16672193931725690953e-03, ++ 1.17884172007230573521e-03, ++ 1.19031352524443380207e-03, ++ 1.20113375252423222606e-03, ++ 1.21129914833666986994e-03, ++ 1.22080680829065105208e-03, ++ 1.22965417744607123825e-03, ++ 1.23783905039882846655e-03, ++ 1.24535957118451323482e-03, ++ 1.25221423300135711529e-03, ++ 1.25840187775329488164e-03, ++ 1.26392169541390537828e-03, ++ 1.26877322321232639292e-03, ++ 1.27295634464211107444e-03, ++ 1.27647128829414154005e-03, ++ 1.27931862651490548498e-03, ++ 1.28149927389138891531e-03, ++ 1.28301448556399880392e-03, ++ 1.28386585536898346210e-03, ++ 1.28405531381196435364e-03, ++ 1.28358512587416814105e-03, ++ 1.28245788865312404514e-03, ++ 1.28067652883962455890e-03, ++ 1.27824430003284665244e-03, ++ 1.27516477989559045420e-03, ++ 1.27144186715168476705e-03, ++ 1.26707977842766580760e-03, ++ 1.26208304494093768826e-03, ++ 1.25645650903666696377e-03, ++ 1.25020532057574596321e-03, ++ 1.24333493317623205304e-03, ++ 1.23585110031071486285e-03, ++ 1.22775987126220184967e-03, ++ 1.21906758694106096864e-03, ++ 1.20978087556570016413e-03, ++ 1.19990664820977745338e-03, ++ 1.18945209421860830651e-03, ++ 1.17842467649774342194e-03, ++ 1.16683212667649549056e-03, ++ 1.15468244014949755240e-03, ++ 1.14198387099919015063e-03, ++ 1.12874492680236585690e-03, ++ 1.11497436332383317165e-03, ++ 1.10068117910044980384e-03, ++ 1.08587460991860403070e-03, ++ 1.07056412318845268865e-03, ++ 1.05475941221827552129e-03, ++ 1.03847039039213777552e-03, ++ 1.02170718525430208670e-03, ++ 1.00448013250386408712e-03, ++ 9.86799769902908796571e-04, ++ 9.68676831101775311604e-04, ++ 9.50122239384842536686e-04, ++ 9.31147101340516931967e-04, ++ 9.11762700458799784341e-04, ++ 8.91980490660106628206e-04, ++ 8.71812089758989324645e-04, ++ 8.51269272866356447108e-04, ++ 8.30363965733769732354e-04, ++ 8.09108238043540397427e-04, ++ 7.87514296648406260902e-04, ++ 7.65594478764287304610e-04, ++ 7.43361245119910263486e-04, ++ 7.20827173067144330761e-04, ++ 6.98004949655533580080e-04, ++ 6.74907364674943543829e-04, ++ 6.51547303669901115876e-04, ++ 6.27937740929578719871e-04, ++ 6.04091732456894250046e-04, ++ 5.80022408920566161228e-04, ++ 5.55742968593996586671e-04, ++ 5.31266670284408345712e-04, ++ 5.06606826256191336046e-04, ++ 4.81776795151971288286e-04, ++ 4.56789974915332633570e-04, ++ 4.31659795718581772855e-04, ++ 4.06399712899354833857e-04, ++ 3.81023199909761244551e-04, ++ 3.55543741281616379035e-04, ++ 3.29974825611307478416e-04, ++ 3.04329938567904757871e-04, ++ 2.78622555928232935440e-04, ++ 2.52866136642138929734e-04, ++ 2.27074115931597155090e-04, ++ 2.01259898427254919819e-04, ++ 1.75436851345555256277e-04, ++ 1.49618297710086417540e-04, ++ 1.23817509620332964109e-04, ++ 9.80477015714136803867e-05, ++ 7.23220238277867656044e-05, ++ 4.66535558543199922808e-05, ++ 2.10552998080745397132e-05, ++-4.45982590633637267685e-06, ++-2.98789930144383005840e-05, ++-5.51894696797388301145e-05, ++-8.03786267385361320997e-05, ++-1.05433943858796803006e-04, ++-1.30343015620240231141e-04, ++-1.55093557512704107414e-04, ++-1.79673411849813922459e-04, ++-2.04070553595469639328e-04, ++-2.28273096100298591472e-04, ++-2.52269296745275168909e-04, ++-2.76047562490193821964e-04, ++-2.99596455324310003560e-04, ++-3.22904697616543522477e-04, ++-3.45961177363105203825e-04, ++-3.68754953329960058744e-04, ++-3.91275260088006534946e-04, ++-4.13511512938510329696e-04, ++-4.35453312726917203881e-04, ++-4.57090450542803317623e-04, ++-4.78412912303817451296e-04, ++-4.99410883221915679296e-04, ++-5.20074752149766658671e-04, ++-5.40395115805737333292e-04, ++-5.60362782875298238647e-04, ++-5.79968777987699369778e-04, ++-5.99204345565891864818e-04, ++-6.18060953548384053174e-04, ++-6.36530296981365232775e-04, ++-6.54604301479925370678e-04, ++-6.72275126556943374879e-04, ++-6.89535168818290744586e-04, ++-7.06377065023390971615e-04, ++-7.22793695009926024340e-04, ++-7.38778184481572101731e-04, ++-7.54323907658020135873e-04, ++-7.69424489786242268852e-04, ++-7.84073809512324942927e-04, ++-7.98266001112985629749e-04, ++-8.11995456586320977881e-04, ++-8.25256827601124256372e-04, ++-8.38045027304191287275e-04, ++-8.50355231985365717443e-04, ++-8.62182882599891249782e-04, ++-8.73523686147764872115e-04, ++-8.84373616909959786754e-04, ++-8.94728917541413090037e-04, ++-9.04586100020679756244e-04, ++-9.13941946456355816704e-04, ++-9.22793509750267264627e-04, ++-9.31138114117751138944e-04, ++-9.38973355465201283722e-04, ++-9.46297101625169024067e-04, ++-9.53107492449534513500e-04, ++-9.59402939761150449702e-04, ++-9.65182127164483996684e-04, ++-9.70444009715949393313e-04, ++-9.75187813454562795953e-04, ++-9.79413034793723616400e-04, ++-9.83119439774883139768e-04, ++-9.86307063184082167401e-04, ++-9.88976207532291833394e-04, ++-9.91127441900544869230e-04, ++-9.92761600651050806279e-04, ++-9.93879782005378667811e-04, ++-9.94483346490992797459e-04, ++-9.94573915257405570187e-04, ++-9.94153368263331295093e-04, ++-9.93223842336246652909e-04, ++-9.91787729105850180897e-04, ++-9.89847672812951264940e-04, ++-9.87406567995411906316e-04, ++-9.84467557052782528404e-04, ++-9.81034027691367847834e-04, ++-9.77109610251477699733e-04, ++-9.72698174918703792335e-04, ++-9.67803828821115733234e-04, ++-9.62430913014279427325e-04, ++-9.56583999356122919276e-04, ++-9.50267887273650141942e-04, ++-9.43487600423628257514e-04, ++-9.36248383249343269982e-04, ++-9.28555697435622562526e-04, ++-9.20415218264345998470e-04, ++-9.11832830872733794518e-04, ++-9.02814626416679100358e-04, ++-8.93366898141493941121e-04, ++-8.83496137362504399722e-04, ++-8.73209029357859358757e-04, ++-8.62512449176020662943e-04, ++-8.51413457360529739998e-04, ++-8.39919295594453380396e-04, ++-8.28037382267176572288e-04, ++-8.15775307966064137412e-04, ++-8.03140830895733765817e-04, ++-7.90141872227454497395e-04, ++-7.76786511381427125823e-04, ++-7.63082981244709722575e-04, ++-7.49039663327390583050e-04, ++-7.34665082859875225377e-04, ++-7.19967903833961626534e-04, ++-7.04956923990644160512e-04, ++-6.89641069757283018196e-04, ++-6.74029391137054853869e-04, ++-6.58131056553546409972e-04, ++-6.41955347653322514097e-04, ++-6.25511654069284880192e-04, ++-6.08809468147721304272e-04, ++-5.91858379642030605315e-04, ++-5.74668070375839888306e-04, ++-5.57248308878482566560e-04, ++-5.39608944995842118066e-04, ++-5.21759904479256251923e-04, ++-5.03711183555554655941e-04, ++-4.85472843480994986718e-04, ++-4.67055005082172224832e-04, ++-4.48467843286585717087e-04, ++-4.29721581645848931235e-04, ++-4.10826486854523479156e-04, ++-3.91792863267230776457e-04, ++-3.72631047417096349181e-04, ++-3.53351402538234474118e-04, ++-3.33964313095238879339e-04, ++-3.14480179322441726845e-04, ++-2.94909411775696268711e-04, ++-2.75262425899514299663e-04, ++-2.55549636612443630684e-04, ++-2.35781452913229664075e-04, ++-2.15968272510589943134e-04, ++-1.96120476479425779204e-04, ++-1.76248423945933802622e-04, ++-1.56362446804383454146e-04, ++-1.36472844468305155993e-04, ++-1.16589878658458767635e-04, ++-9.67237682303544415822e-05, ++-7.68846840437216406863e-05, ++-5.70827438766376965410e-05, ++-3.73280073865603565495e-05, ++-1.76304711208225556719e-05, ++ 1.99993642088864226016e-06, ++ 2.15533596699292954036e-05, ++ 4.10200208154242509364e-05, ++ 6.03902245722433725860e-05, ++ 7.96543628875890849517e-05, ++ 9.88029195844659414733e-05, ++ 1.17826474939476195025e-04, ++ 1.36715710193023647035e-04, ++ 1.55461411989631342456e-04, ++ 1.74054476746553134919e-04, ++ 1.92485914948569894868e-04, ++ 2.10746855366906229437e-04, ++ 2.28828549200575789499e-04, ++ 2.46722374138184409598e-04, ++ 2.64419838338276027342e-04, ++ 2.81912584326679917842e-04, ++ 2.99192392808960154656e-04, ++ 3.16251186396444155819e-04, ++ 3.33081033244039836395e-04, ++ 3.49674150598494463179e-04, ++ 3.66022908255491080231e-04, ++ 3.82119831924034101915e-04, ++ 3.97957606496917735885e-04, ++ 4.13529079225828470872e-04, ++ 4.28827262799762372065e-04, ++ 4.43845338325564724331e-04, ++ 4.58576658209470361914e-04, ++ 4.73014748938412597258e-04, ++ 4.87153313760160528844e-04, ++ 5.00986235261103489760e-04, ++ 5.14507577840937952753e-04, ++ 5.27711590083254872101e-04, ++ 5.40592707021128712937e-04, ++ 5.53145552297087950144e-04, ++ 5.65364940216665540391e-04, ++ 5.77245877694797693454e-04, ++ 5.88783566094626962042e-04, ++ 5.99973402958039613193e-04, ++ 6.10810983627539487439e-04, ++ 6.21292102758916895203e-04, ++ 6.31412755724494408928e-04, ++ 6.41169139906554250846e-04, ++ 6.50557655880656818606e-04, ++ 6.59574908488803728079e-04, ++ 6.68217707802125100019e-04, ++ 6.76483069973211437013e-04, ++ 6.84368217977891248049e-04, ++ 6.91870582246639927691e-04, ++ 6.98987801185634960270e-04, ++ 7.05717721587660520161e-04, ++ 7.12058398933015208009e-04, ++ 7.18008097580767590783e-04, ++ 7.23565290850654123378e-04, ++ 7.28728660995954687085e-04, ++ 7.33497099067867354590e-04, ++ 7.37869704671835252748e-04, ++ 7.41845785616332496076e-04, ++ 7.45424857454791262544e-04, ++ 7.48606642921267949158e-04, ++ 7.51391071260577316469e-04, ++ 7.53778277453638493114e-04, ++ 7.55768601338868977087e-04, ++ 7.57362586630487056617e-04, ++ 7.58560979834606492235e-04, ++ 7.59364729064121901821e-04, ++ 7.59774982753388386167e-04, ++ 7.59793088273752925850e-04, ++ 7.59420590451042459845e-04, ++ 7.58659229986178283191e-04, ++ 7.57510941780111337653e-04, ++ 7.55977853164323059486e-04, ++ 7.54062282038194995303e-04, ++ 7.51766734914572948463e-04, ++ 7.49093904874909206383e-04, ++ 7.46046669435407165151e-04, ++ 7.42628088325620098163e-04, ++ 7.38841401181018265533e-04, ++ 7.34690025151058076665e-04, ++ 7.30177552424332988561e-04, ++ 7.25307747672431467334e-04, ++ 7.20084545414128533031e-04, ++ 7.14512047301645285974e-04, ++ 7.08594519330652482768e-04, ++ 7.02336388975790940938e-04, ++ 6.95742242253507572024e-04, ++ 6.88816820714019178648e-04, ++ 6.81565018364235775117e-04, ++ 6.73991878523528100201e-04, ++ 6.66102590614281019760e-04, ++ 6.57902486889110115278e-04, ++ 6.49397039096706574744e-04, ++ 6.40591855088354865909e-04, ++ 6.31492675367040820315e-04, ++ 6.22105369581239602515e-04, ++ 6.12435932965378496476e-04, ++ 6.02490482729133372541e-04, ++ 5.92275254397530565020e-04, ++ 5.81796598104019854238e-04, ++ 5.71060974838680235344e-04, ++ 5.60074952653592437156e-04, ++ 5.48845202827616417997e-04, ++ 5.37378495992671769733e-04, ++ 5.25681698223757196999e-04, ++ 5.13761767094866308656e-04, ++ 5.01625747702958151193e-04, ++ 4.89280768662212254237e-04, ++ 4.76734038070840296462e-04, ++ 4.63992839452548365767e-04, ++ 4.51064527674926475653e-04, ++ 4.37956524847056961718e-04, ++ 4.24676316198432479525e-04, ++ 4.11231445941475173573e-04, ++ 3.97629513119952544397e-04, ++ 3.83878167445365014142e-04, ++ 3.69985105123653247247e-04, ++ 3.55958064674343052560e-04, ++ 3.41804822744478146133e-04, ++ 3.27533189919382002140e-04, ++ 3.13151006532530441166e-04, ++ 2.98666138476795246359e-04, ++ 2.84086473019086157080e-04, ++ 2.69419914620704385386e-04, ++ 2.54674380765407412045e-04, ++ 2.39857797797613132851e-04, ++ 2.24978096772516947353e-04, ++ 2.10043209320515654199e-04, ++ 1.95061063527882452839e-04, ++ 1.80039579835930709352e-04, ++ 1.64986666960563460723e-04, ++ 1.49910217834334317253e-04, ++ 1.34818105573139893332e-04, ++ 1.19718179469376976285e-04, ++ 1.04618261013640937926e-04, ++ 8.95261399470057895635e-05, ++ 7.44495703456539838043e-05, ++ 5.93962667399166655609e-05, ++ 4.43739002695007426613e-05, ++ 2.93900948769175320138e-05, ++ 1.44524235407680616859e-05, ++-4.31595449223615991972e-07, ++-1.52545021735661563586e-05, ++-3.00088987191676871767e-05, ++-4.46874527685018162865e-05, ++-5.92829011400601544354e-05, ++-7.37880532784749535325e-05, ++-8.81957946927382018627e-05, ++-1.02499090340838023227e-04, ++-1.16690987959360069175e-04, ++-1.30764621336392747363e-04, ++-1.44713213526426610466e-04, ++-1.58530080005720515508e-04, ++-1.72208631766646892702e-04, ++-1.85742378349807455221e-04, ++-1.99124930812504506716e-04, ++-2.12350004632196330849e-04, ++-2.25411422543850048289e-04, ++-2.38303117309836905331e-04, ++-2.51019134421297284484e-04, ++-2.63553634729709143104e-04, ++-2.75900897007725623075e-04, ++-2.88055320438154207046e-04, ++-3.00011427029988502792e-04, ++-3.11763863960725555544e-04, ++-3.23307405843803333592e-04, ++-3.34636956920517840506e-04, ++-3.45747553175349475393e-04, ++-3.56634364374105745227e-04, ++-3.67292696023986241921e-04, ++-3.77717991254969290369e-04, ++-3.87905832621729396159e-04, ++-3.97851943825608877700e-04, ++-4.07552191355998907722e-04, ++-4.17002586050548289687e-04, ++-4.26199284573830689850e-04, ++-4.35138590813964924123e-04, ++-4.43816957196747625784e-04, ++-4.52230985917061883723e-04, ++-4.60377430087148228118e-04, ++-4.68253194801565195918e-04, ++-4.75855338118517359660e-04, ++-4.83181071957494603746e-04, ++-4.90227762913035460673e-04, ++-4.96992932984516386924e-04, ++-5.03474260221955485957e-04, ++-5.09669579287852308157e-04, ++-5.15576881935093001182e-04, ++-5.21194317400982664451e-04, ++-5.26520192717613616691e-04, ++-5.31552972938706402850e-04, ++-5.36291281283125418830e-04, ++-5.40733899195399727276e-04, ++-5.44879766323496587781e-04, ++-5.48727980414253735213e-04, ++-5.52277797126791330021e-04, ++-5.55528629764419335478e-04, ++-5.58480048925468798571e-04, ++-5.61131782073551080119e-04, ++-5.63483713027851970505e-04, ++-5.65535881373998238451e-04, ++-5.67288481796187900146e-04, ++-5.68741863331195915583e-04, ++-5.69896528545036479795e-04, ++-5.70753132632961161612e-04, ++-5.71312482443646482352e-04, ++-5.71575535428334754844e-04, ++-5.71543398515829263219e-04, ++-5.71217326914227299835e-04, ++-5.70598722840296476537e-04, ++-5.69689134177503594091e-04, ++-5.68490253063648432949e-04, ++-5.67003914409159020388e-04, ++-5.65232094347102977452e-04, ++-5.63176908616005544687e-04, ++-5.60840610876602073745e-04, ++-5.58225590963675973900e-04, ++-5.55334373074175820066e-04, ++-5.52169613892796438438e-04, ++-5.48734100656311134595e-04, ++-5.45030749157866334711e-04, ++-5.41062601692576870642e-04, ++-5.36832824945712001018e-04, ++-5.32344707824832300003e-04, ++-5.27601659237243400015e-04, ++-5.22607205814143416754e-04, ++-5.17364989582876229866e-04, ++-5.11878765588764158417e-04, ++-5.06152399467916375153e-04, ++-5.00189864972510559588e-04, ++-4.93995241450078683386e-04, ++-4.87572711278240109554e-04, ++-4.80926557256444178138e-04, ++-4.74061159956301635728e-04, ++-4.66980995031984519490e-04, ++-4.59690630492344271939e-04, ++-4.52194723936275402073e-04, ++-4.44498019752993822097e-04, ++-4.36605346288767746325e-04, ++-4.28521612981757975790e-04, ++-4.20251807466636860457e-04, ++-4.11800992650551039072e-04, ++-4.03174303762152705464e-04, ++-3.94376945375264067670e-04, ++-3.85414188409003615268e-04, ++-3.76291367105835428391e-04, ++-3.67013875989376269545e-04, ++-3.57587166803538351878e-04, ++-3.48016745434793248019e-04, ++-3.38308168819116130647e-04, ++-3.28467041835364367049e-04, ++-3.18499014186804374482e-04, ++-3.08409777272385283997e-04, ++-2.98205061049476030047e-04, ++-2.87890630889810130322e-04, ++-2.77472284430191329634e-04, ++-2.66955848419733049459e-04, ++-2.56347175565217071970e-04, ++-2.45652141376338599681e-04, ++-2.34876641012365765249e-04, ++-2.24026586131914569105e-04, ++-2.13107901747536509227e-04, ++-2.02126523086630768746e-04, ++-1.91088392460356650080e-04, ++-1.79999456142178738786e-04, ++-1.68865661257607132476e-04, ++-1.57692952686686938598e-04, ++-1.46487269980864699605e-04, ++-1.35254544295716316437e-04, ++-1.24000695341184972607e-04, ++-1.12731628350718165836e-04, ++-1.01453231070878122327e-04, ++-9.01713707729724520340e-05, ++-7.88918912880573160781e-05, ++-6.76206100668247551966e-05, ++-5.63633152658752571273e-05, ++-4.51257628616542845251e-05, ++-3.39136737935608547517e-05, ++-2.27327311375149941554e-05, ++-1.15885773114489628905e-05, ++-4.86811313915871210201e-07, ++ 1.05670140028143166991e-05, ++ 2.15673946238210968425e-05, ++ 3.25088780256781116596e-05, ++ 4.33860657922279085714e-05, ++ 5.41936161910015515536e-05, ++ 6.49262467088870516650e-05, ++ 7.55787365460706083136e-05, ++ 8.61459290670060090240e-05, ++ 9.66227342073920110596e-05, ++ 1.07004130835977286562e-04, ++ 1.17285169070277186945e-04, ++ 1.27460972545122102045e-04, ++ 1.37526740632994235337e-04, ++ 1.47477750615313961575e-04, ++ 1.57309359803685470123e-04, ++ 1.67017007610150564068e-04, ++ 1.76596217565703518526e-04, ++ 1.86042599286130139018e-04, ++ 1.95351850384440511605e-04, ++ 2.04519758329024586505e-04, ++ 2.13542202246907178919e-04, ++ 2.22415154671328456478e-04, ++ 2.31134683232958544662e-04, ++ 2.39696952294124378952e-04, ++ 2.48098224525461843754e-04, ++ 2.56334862424394095085e-04, ++ 2.64403329774836909783e-04, ++ 2.72300193047718441016e-04, ++ 2.80022122741781036813e-04, ++ 2.87565894664178829838e-04, ++ 2.94928391150552234555e-04, ++ 3.02106602224121655823e-04, ++ 3.09097626693513312206e-04, ++ 3.15898673188933149566e-04, ++ 3.22507061136495965393e-04, ++ 3.28920221670429965485e-04, ++ 3.35135698482898333403e-04, ++ 3.41151148611357961198e-04, ++ 3.46964343163231182625e-04, ++ 3.52573167977838467131e-04, ++ 3.57975624225448146778e-04, ++ 3.63169828943500801448e-04, ++ 3.68154015509882480677e-04, ++ 3.72926534053389822573e-04, ++ 3.77485851801332371845e-04, ++ 3.81830553364452182901e-04, ++ 3.85959340959241372672e-04, ++ 3.89871034567797159973e-04, ++ 3.93564572035445218046e-04, ++ 3.97039009106330996121e-04, ++ 4.00293519397200458273e-04, ++ 4.03327394309708944353e-04, ++ 4.06140042881526601437e-04, ++ 4.08730991576614218711e-04, ++ 4.11099884015009905264e-04, ++ 4.13246480642570374747e-04, ++ 4.15170658341088754176e-04, ++ 4.16872409979225850337e-04, ++ 4.18351843904797517006e-04, ++ 4.19609183378898695574e-04, ++ 4.20644765952442063056e-04, ++ 4.21459042785672199482e-04, ++ 4.22052577911266981522e-04, ++ 4.22426047441667507944e-04, ++ 4.22580238721291740270e-04, ++ 4.22516049424304497659e-04, ++ 4.22234486598678352993e-04, ++ 4.21736665657268593004e-04, ++ 4.21023809316662376602e-04, ++ 4.20097246484596811584e-04, ++ 4.18958411096749831423e-04, ++ 4.17608840903733937334e-04, ++ 4.16050176209156481050e-04, ++ 4.14284158559614175323e-04, ++ 4.12312629387525297810e-04, ++ 4.10137528607722027553e-04, ++ 4.07760893168739989995e-04, ++ 4.05184855559753253750e-04, ++ 4.02411642274163466621e-04, ++ 3.99443572230806823956e-04, ++ 3.96283055153818239771e-04, ++ 3.92932589912160215497e-04, ++ 3.89394762819913727372e-04, ++ 3.85672245898332176350e-04, ++ 3.81767795100792530199e-04, ++ 3.77684248501704115941e-04, ++ 3.73424524450519546449e-04, ++ 3.68991619691936916479e-04, ++ 3.64388607453439920380e-04, ++ 3.59618635501351871335e-04, ++ 3.54684924166520241986e-04, ++ 3.49590764340821041987e-04, ++ 3.44339515445693598438e-04, ++ 3.38934603373838513624e-04, ++ 3.33379518405329915154e-04, ++ 3.27677813099311473176e-04, ++ 3.21833100162536569697e-04, ++ 3.15849050295926377270e-04, ++ 3.09729390020389752213e-04, ++ 3.03477899483178554640e-04, ++ 2.97098410245953236785e-04, ++ 2.90594803055835239260e-04, ++ 2.83971005600701430303e-04, ++ 2.77230990249963083708e-04, ++ 2.70378771782053405493e-04, ++ 2.63418405099919501929e-04, ++ 2.56353982935728650153e-04, ++ 2.49189633546102382294e-04, ++ 2.41929518399063687127e-04, ++ 2.34577829853976687832e-04, ++ 2.27138788835770893786e-04, ++ 2.19616642504623810770e-04, ++ 2.12015661922379533436e-04, ++ 2.04340139716986798554e-04, ++ 1.96594387746109900425e-04, ++ 1.88782734761210285561e-04, ++ 1.80909524073276134666e-04, ++ 1.72979111221486337802e-04, ++ 1.64995861645938764022e-04, ++ 1.56964148365684399598e-04, ++ 1.48888349663314485498e-04, ++ 1.40772846777168322190e-04, ++ 1.32622021602487612625e-04, ++ 1.24440254402532454779e-04, ++ 1.16231921530969174315e-04, ++ 1.08001393166544268506e-04, ++ 9.97530310612700842022e-05, ++ 9.14911863031805467012e-05, ++ 8.32201970948494534723e-05, ++ 7.49443865486733659534e-05, ++ 6.66680605000458429647e-05, ++ 5.83955053395394390486e-05, ++ 5.01309858650572228258e-05, ++ 4.18787431550387222699e-05, ++ 3.36429924637896997147e-05, ++ 2.54279211398450498503e-05, ++ 1.72376865684373168860e-05, ++ 9.07641413898224680109e-06, ++ 9.48195238618905657624e-07, ++-7.14291472735570851774e-06, ++-1.51928982871868691030e-05, ++-2.31977778255819772578e-05, ++-3.11536174769894797995e-05, ++-3.90565249883959565128e-05, ++-4.69026535507838503733e-05, ++-5.46882035983796400101e-05, ++-6.24094245749816497679e-05, ++-7.00626166665431140837e-05, ++-7.76441324992083051551e-05, ++-8.51503788021582837904e-05, ++-9.25778180344744060573e-05, ++-9.99229699753842974660e-05, ++-1.07182413277143970569e-04, ++-1.14352786980001299723e-04, ++-1.21430791988570707662e-04, ++-1.28413192508978856029e-04, ++-1.35296817446291592216e-04, ++-1.42078561761593261028e-04, ++-1.48755387788243690359e-04, ++-1.55324326506731677858e-04, ++-1.61782478777755279195e-04, ++-1.68127016532938305905e-04, ++-1.74355183922886855866e-04, ++-1.80464298422043775347e-04, ++-1.86451751890066126042e-04, ++-1.92315011589316994193e-04, ++-1.98051621158110087483e-04, ++-2.03659201539461954481e-04, ++-2.09135451865034778822e-04, ++-2.14478150293975007752e-04, ++-2.19685154806484236054e-04, ++-2.24754403951855035284e-04, ++-2.29683917550825442361e-04, ++-2.34471797352042666748e-04, ++-2.39116227642561802579e-04, ++-2.43615475812239792083e-04, ++-2.47967892871911476695e-04, ++-2.52171913925349226639e-04, ++-2.56226058594915238626e-04, ++-2.60128931400936235906e-04, ++-2.63879222094777748236e-04, ++-2.67475705945676030771e-04, ++-2.70917243981398745550e-04, ++-2.74202783182808239749e-04, ++-2.77331356632420174182e-04, ++-2.80302083617130378106e-04, ++-2.83114169685247407150e-04, ++-2.85766906657990832612e-04, ++-2.88259672595703273380e-04, ++-2.90591931718978374165e-04, ++-2.92763234284938700901e-04, ++-2.94773216418979381367e-04, ++-2.96621599902229947550e-04, ++-2.98308191915087070681e-04, ++-2.99832884737117537181e-04, ++-3.01195655403731915589e-04, ++-3.02396565319990604306e-04, ++-3.03435759831933548735e-04, ++-3.04313467755884059594e-04, ++-3.05030000866147890746e-04, ++-3.05585753341585221812e-04, ++-3.05981201171519584091e-04, ++-3.06216901521509134165e-04, ++-3.06293492059487573384e-04, ++-3.06211690242816218007e-04, ++-3.05972292566802656771e-04, ++-3.05576173775270109809e-04, ++-3.05024286033762090722e-04, ++-3.04317658065994024481e-04, ++-3.03457394254183585730e-04, ++-3.02444673703895100005e-04, ++-3.01280749274062569550e-04, ++-2.99966946572861902810e-04, ++-2.98504662920123960135e-04, ++-2.96895366276984148252e-04, ++-2.95140594143503544149e-04, ++-2.93241952424972839204e-04, ++-2.91201114267648395687e-04, ++-2.89019818864694969657e-04, ++-2.86699870233074851408e-04, ++-2.84243135962187955679e-04, ++-2.81651545935045764021e-04, ++-2.78927091022785277833e-04, ++-2.76071821753329086409e-04, ++-2.73087846955029312987e-04, ++-2.69977332376105608885e-04, ++-2.66742499280753122669e-04, ++-2.63385623022735818576e-04, ++-2.59909031597333319095e-04, ++-2.56315104172533353259e-04, ++-2.52606269600299821604e-04, ++-2.48785004908817504021e-04, ++-2.44853833776614545140e-04, ++-2.40815324989414303834e-04, ++-2.36672090880646487053e-04, ++-2.32426785756489917047e-04, ++-2.28082104306388832628e-04, ++-2.23640779999901656528e-04, ++-2.19105583470820145051e-04, ++-2.14479320889489653368e-04, ++-2.09764832324187768019e-04, ++-2.04964990092551698191e-04, ++-2.00082697103893516945e-04, ++-1.95120885193399471553e-04, ++-1.90082513449059745374e-04, ++-1.84970566532296863812e-04, ++-1.79788052993171517313e-04, ++-1.74538003581126675585e-04, ++-1.69223469552129467206e-04, ++-1.63847520973145840571e-04, ++-1.58413245024881097671e-04, ++-1.52923744303641519389e-04, ++-1.47382135123237027838e-04, ++-1.41791545817854290970e-04, ++-1.36155115046730930926e-04, ++-1.30475990101566258683e-04, ++-1.24757325217510580588e-04, ++-1.19002279888661194524e-04, ++-1.13214017188868415280e-04, ++-1.07395702098746854882e-04, ++-1.01550499839754549119e-04, ++-9.56815742161736681884e-05, ++-8.97920859658150297307e-05, ++-8.38851911202858713332e-05, ++-7.79640393756770905178e-05, ++-7.20317724744152869908e-05, ++-6.60915225991128571850e-05, ++-6.01464107792394842228e-05, ++-5.41995453113256703899e-05, ++-4.82540201935260191645e-05, ++-4.23129135752554075560e-05, ++-3.63792862227040107682e-05, ++-3.04561800008946262114e-05, ++-2.45466163730380569304e-05, ++-1.86535949179281487331e-05, ++-1.27800918660038342780e-05, ++-6.92905865481930068159e-06, ++-1.10342050454853296994e-06, ++ 4.69392498575835322107e-06, ++ 1.04601092206202085443e-05, ++ 1.61922939685309686330e-05, ++ 2.18876726998310187900e-05, ++ 2.75434719013333585431e-05, ++ 3.31569523672128619587e-05, ++ 3.87254104655551669952e-05, ++ 4.42461793799820151014e-05, ++ 4.97166303258813707623e-05, ++ 5.51341737406907975117e-05, ++ 6.04962604476992873623e-05, ++ 6.58003827929482047439e-05, ++ 7.10440757547033927043e-05, ++ 7.62249180250887078177e-05, ++ 8.13405330633888576592e-05, ++ 8.63885901206668644324e-05, ++ 9.13668052352641340674e-05, ++ 9.62729421987680101039e-05, ++ 1.01104813492143344174e-04, ++ 1.05860281191625613681e-04, ++ 1.10537257844079884095e-04, ++ 1.15133707311478630493e-04, ++ 1.19647645584220456037e-04, ++ 1.24077141563022885209e-04, ++ 1.28420317809117991549e-04, ++ 1.32675351262483061940e-04, ++ 1.36840473927932757339e-04, ++ 1.40913973528841685815e-04, ++ 1.44894194128284206635e-04, ++ 1.48779536717473748154e-04, ++ 1.52568459771325131390e-04, ++ 1.56259479770980684197e-04, ++ 1.59851171693240460712e-04, ++ 1.63342169466755023468e-04, ++ 1.66731166394932026195e-04, ++ 1.70016915545461323039e-04, ++ 1.73198230106457167626e-04, ++ 1.76273983709174160992e-04, ++ 1.79243110717270954634e-04, ++ 1.82104606482673126973e-04, ++ 1.84857527568029053264e-04, ++ 1.87500991935841927272e-04, ++ 1.90034179104279262861e-04, ++ 1.92456330269822776862e-04, ++ 1.94766748396794513220e-04, ++ 1.96964798273908584360e-04, ++ 1.99049906537954266611e-04, ++ 2.01021561664790589848e-04, ++ 2.02879313927801336551e-04, ++ 2.04622775323984274973e-04, ++ 2.06251619467897348657e-04, ++ 2.07765581453663538119e-04, ++ 2.09164457685255029832e-04, ++ 2.10448105675328230946e-04, ++ 2.11616443812851108683e-04, ++ 2.12669451099812634523e-04, ++ 2.13607166857295168675e-04, ++ 2.14429690401230681543e-04, ++ 2.15137180688158456340e-04, ++ 2.15729855931309154023e-04, ++ 2.16207993187385875055e-04, ++ 2.16571927914393662145e-04, ++ 2.16822053500895369719e-04, ++ 2.16958820767090094714e-04, ++ 2.16982737438119145310e-04, ++ 2.16894367590011544417e-04, ++ 2.16694331068704375103e-04, ++ 2.16383302882573573273e-04, ++ 2.15962012568937173273e-04, ++ 2.15431243534988864970e-04, ++ 2.14791832373643112571e-04, ++ 2.14044668154778804569e-04, ++ 2.13190691692375993652e-04, ++ 2.12230894788062836786e-04, ++ 2.11166319451582256295e-04, ++ 2.09998057098713050445e-04, ++ 2.08727247727178962314e-04, ++ 2.07355079071098812689e-04, ++ 2.05882785734526249080e-04, ++ 2.04311648304645308329e-04, ++ 2.02642992445200404404e-04, ++ 2.00878187970725529407e-04, ++ 1.99018647902181230460e-04, ++ 1.97065827504565370225e-04, ++ 1.95021223307131414326e-04, ++ 1.92886372106789062567e-04, ++ 1.90662849955323298245e-04, ++ 1.88352271131035512233e-04, ++ 1.85956287095443860338e-04, ++ 1.83476585435658924713e-04, ++ 1.80914888793067202884e-04, ++ 1.78272953778979965879e-04, ++ 1.75552569877858596036e-04, ++ 1.72755558338776385452e-04, ++ 1.69883771055775014205e-04, ++ 1.66939089437739287235e-04, ++ 1.63923423268464666259e-04, ++ 1.60838709557554023410e-04, ++ 1.57686911382826176059e-04, ++ 1.54470016724860052760e-04, ++ 1.51190037294350436165e-04, ++ 1.47849007352938516474e-04, ++ 1.44448982528168725411e-04, ++ 1.40992038623224621736e-04, ++ 1.37480270422103131650e-04, ++ 1.33915790490908510934e-04, ++ 1.30300727975883427756e-04, ++ 1.26637227398848910710e-04, ++ 1.22927447450726668463e-04, ++ 1.19173559783751544113e-04, ++ 1.15377747803056433318e-04, ++ 1.11542205458248867627e-04, ++ 1.07669136035655032668e-04, ++ 1.03760750951825973841e-04, ++ 9.98192685489614168559e-05, ++ 9.58469128929003691322e-05, ++ 9.18459125742597699837e-05, ++ 8.78184995133790156831e-05, ++ 8.37669077696560454268e-05, ++ 7.96933723559265666005e-05, ++ 7.56001280584259725565e-05, ++ 7.14894082630083944159e-05, ++ 6.73634437881340204573e-05, ++ 6.32244617252882825861e-05, ++ 5.90746842873461779663e-05, ++ 5.49163276654787824009e-05, ++ 5.07516008951872145687e-05, ++ 4.65827047319741682405e-05, ++ 4.24118305372229097931e-05, ++ 3.82411591748462793188e-05, ++ 3.40728599191875283292e-05, ++ 2.99090893747361998109e-05, ++ 2.57519904081409751117e-05, ++ 2.16036910930649429937e-05, ++ 1.74663036683280136440e-05, ++ 1.33419235098453462380e-05, ++ 9.23262811685928130563e-06, ++ 5.14047611288089638620e-06, ++ 1.06750626183722631479e-06, ++-2.98426350016022994691e-06, ++-7.01283701696614740918e-06, ++-1.10162408480615069031e-05, ++-1.49925251873214083662e-05, ++-1.89397647644820879499e-05, ++-2.28560597288927702187e-05, ++-2.67395365152196406880e-05, ++-3.05883486907130078530e-05, ++-3.44006777836602540958e-05, ++-3.81747340927275210175e-05, ++-4.19087574768357373853e-05, ++-4.56010181252311126428e-05, ++-4.92498173074900873615e-05, ++-5.28534881031252298821e-05, ++-5.64103961105393312886e-05, ++-5.99189401350206662131e-05, ++-6.33775528555675324869e-05, ++-6.67847014702764807609e-05, ++-7.01388883200425772204e-05, ++-7.34386514903965126506e-05, ++-7.66825653912348156535e-05, ++-7.98692413142890845568e-05, ++-8.29973279680875074835e-05, ++-8.60655119903289004060e-05, ++-8.90725184374467171371e-05, ++-9.20171112512619700620e-05, ++-9.48980937025603441979e-05, ++-9.77143088115187759442e-05, ++-1.00464639744859388255e-04, ++-1.03148010189625194497e-04, ++-1.05763384703536859194e-04, ++-1.08309769041847384465e-04, ++-1.10786210460631133696e-04, ++-1.13191797996501934058e-04, ++-1.15525662722708351705e-04, ++-1.17786977981613268270e-04, ++-1.19974959593534190815e-04, ++-1.22088866041986484267e-04, ++-1.24127998635342794240e-04, ++-1.26091701644931496271e-04, ++-1.27979362419654144924e-04, ++-1.29790411477168272404e-04, ++-1.31524322571708625470e-04, ++-1.33180612738637493483e-04, ++-1.34758842315833984394e-04, ++-1.36258614942015598460e-04, ++-1.37679577532133398362e-04, ++-1.39021420229953017716e-04, ++-1.40283876337992947491e-04, ++-1.41466722224963323403e-04, ++-1.42569777210869091466e-04, ++-1.43592903429972301504e-04, ++-1.44536005671797138268e-04, ++-1.45399031200369268681e-04, ++-1.46181969551921958151e-04, ++-1.46884852311272975705e-04, ++-1.47507752867118645777e-04, ++-1.48050786146473433835e-04, ++-1.48514108328523704045e-04, ++-1.48897916538148837292e-04, ++-1.49202448519377127998e-04, ++-1.49427982289073205905e-04, ++-1.49574835771129388594e-04, ++-1.49643366411473540236e-04, ++-1.49633970774193841890e-04, ++-1.49547084119100584043e-04, ++-1.49383179961047775483e-04, ++-1.49142769611348204603e-04, ++-1.48826401701621687922e-04, ++-1.48434661690425537565e-04, ++-1.47968171353023028678e-04, ++-1.47427588254649171362e-04, ++-1.46813605207650059491e-04, ++-1.46126949712865211208e-04, ++-1.45368383385638768636e-04, ++-1.44538701366849164877e-04, ++-1.43638731719351636813e-04, ++-1.42669334810229859632e-04, ++-1.41631402679272359055e-04, ++-1.40525858394075560832e-04, ++-1.39353655392192250567e-04, ++-1.38115776810750613777e-04, ++-1.36813234803965936073e-04, ++-1.35447069848972789655e-04, ++-1.34018350040412986173e-04, ++-1.32528170374222436503e-04, ++-1.30977652021046207277e-04, ++-1.29367941589733019114e-04, ++-1.27700210381360810966e-04, ++-1.25975653634228948810e-04, ++-1.24195489760284478228e-04, ++-1.22360959573421820921e-04, ++-1.20473325510130619526e-04, ++-1.18533870842929396042e-04, ++-1.16543898887054415644e-04, ++-1.14504732200871589131e-04, ++-1.12417711780453782031e-04, ++-1.10284196248804102999e-04, ++-1.08105561040170155152e-04, ++-1.05883197579935365976e-04, ++-1.03618512460517512327e-04, ++-1.01312926613771452371e-04, ++-9.89678744803231588006e-05, ++-9.65848031763287176834e-05, ++-9.41651716580904694746e-05, ++-9.17104498849975562341e-05, ++-8.92221179812627604834e-05, ++-8.67016653968825132086e-05, ++-8.41505900682881210822e-05, ++-8.15703975791493105397e-05, ++-7.89626003217504745472e-05, ++-7.63287166594104368560e-05, ++-7.36702700903663770804e-05, ++-7.09887884135877711683e-05, ++-6.82858028969257033506e-05, ++-6.55628474480432515319e-05, ++-6.28214577885690295556e-05, ++-6.00631706318681429140e-05, ++-5.72895228648756703262e-05, ++-5.45020507343892520119e-05, ++-5.17022890382489225453e-05, ++-4.88917703218011553620e-05, ++-4.60720240800406300981e-05, ++-4.32445759658305523042e-05, ++-4.04109470046085756875e-05, ++-3.75726528159311059401e-05, ++-3.47312028422512456081e-05, ++-3.18880995853173453093e-05, ++-2.90448378505280945666e-05, ++-2.62029039996194488388e-05, ++-2.33637752120533564114e-05, ++-2.05289187554215721418e-05, ++-1.76997912652334544591e-05, ++-1.48778380343994300278e-05, ++-1.20644923127652564947e-05, ++-9.26117461698225729130e-06, ++-6.46929205104167329041e-06, ++-3.69023763779291335841e-06, ++-9.25389661709245930119e-07, ++ 1.82388897678174475935e-06, ++ 4.55625139514285705999e-06, ++ 7.27036735044587330100e-06, ++ 9.96492384873170706833e-06, ++ 1.26386257417392112551e-05, ++ 1.52901963107384078629e-05, ++ 1.79183778372582360025e-05, ++ 2.05219321604610694255e-05, ++ 2.30996412209251530034e-05, ++ 2.56503075906517305266e-05, ++ 2.81727549890619002719e-05, ++ 3.06658287848128515438e-05, ++ 3.31283964832040277388e-05, ++ 3.55593481990333369126e-05, ++ 3.79575971147140200598e-05, ++ 4.03220799234941648030e-05, ++ 4.26517572576077638367e-05, ++ 4.49456141012434531802e-05, ++ 4.72026601881682524812e-05, ++ 4.94219303839001843038e-05, ++ 5.16024850522865696258e-05, ++ 5.37434104064078973302e-05, ++ 5.58438188436953509251e-05, ++ 5.79028492651570688234e-05, ++ 5.99196673786599580684e-05, ++ 6.18934659861721192748e-05, ++ 6.38234652549182388762e-05, ++ 6.57089129723729151135e-05, ++ 6.75490847850720971908e-05, ++ 6.93432844211934012709e-05, ++ 7.10908438968675459669e-05, ++ 7.27911237062255626245e-05, ++ 7.44435129951590121491e-05, ++ 7.60474297187843856823e-05, ++ 7.76023207826402985129e-05, ++ 7.91076621676173416964e-05, ++ 8.05629590386577253093e-05, ++ 8.19677458372435649003e-05, ++ 8.33215863577352583002e-05, ++ 8.46240738076027652209e-05, ++ 8.58748308515986194002e-05, ++ 8.70735096399619166833e-05, ++ 8.82197918207153089585e-05, ++ 8.93133885361372406803e-05, ++ 9.03540404035136604684e-05, ++ 9.13415174802592236660e-05, ++ 9.22756192135239819386e-05, ++ 9.31561743743901176599e-05, ++ 9.39830409767967284683e-05, ++ 9.47561061813165863036e-05, ++ 9.54752861839191087042e-05, ++ 9.61405260898756268200e-05, ++ 9.67517997729504849579e-05, ++ 9.73091097200465650948e-05, ++ 9.78124868614685578656e-05, ++ 9.82619903869737118746e-05, ++ 9.86577075477993088205e-05, ++ 9.89997534448505824923e-05, ++ 9.92882708032377870244e-05, ++ 9.95234297333714079334e-05, ++ 9.97054274788150226867e-05, ++ 9.98344881511112553288e-05, ++ 9.99108624517949686465e-05, ++ 9.99348273818228400017e-05, ++ 9.99066859386446587009e-05, ++ 9.98267668011501124433e-05, ++ 9.96954240027345068914e-05, ++ 9.95130365927253445271e-05, ++ 9.92800082864197933671e-05, ++ 9.89967671039888494865e-05, ++ 9.86637649985053661076e-05, ++ 9.82814774733607114231e-05, ++ 9.78504031893375142773e-05, ++ 9.73710635616093991710e-05, ++ 9.68440023469432334675e-05, ++ 9.62697852213858742314e-05, ++ 9.56489993487133770321e-05, ++ 9.49822529399337749968e-05, ++ 9.42701748041285732824e-05, ++ 9.35134138909305995691e-05, ++ 9.27126388249273401896e-05, ++ 9.18685374322917528561e-05, ++ 9.09818162599413001162e-05, ++ 9.00532000875254733281e-05, ++ 8.90834314325462917842e-05, ++ 8.80732700489246370709e-05, ++ 8.70234924193121910140e-05, ++ 8.59348912414666484460e-05, ++ 8.48082749089950011304e-05, ++ 8.36444669867888660050e-05, ++ 8.24443056814470995493e-05, ++ 8.12086433070261377561e-05, ++ 7.99383457464084788138e-05, ++ 7.86342919086182418845e-05, ++ 7.72973731824044141140e-05, ++ 7.59284928863964466827e-05, ++ 7.45285657161542757073e-05, ++ 7.30985171884366598380e-05, ++ 7.16392830829906657707e-05, ++ 7.01518088821840928807e-05, ++ 6.86370492088033058069e-05, ++ 6.70959672623157418921e-05, ++ 6.55295342539230995203e-05, ++ 6.39387288407061954269e-05, ++ 6.23245365591873072856e-05, ++ 6.06879492586022889272e-05, ++ 5.90299645341966667546e-05, ++ 5.73515851608610711097e-05, ++ 5.56538185273922726215e-05, ++ 5.39376760716902238437e-05, ++ 5.22041727171985520334e-05, ++ 5.04543263108674547410e-05, ++ 4.86891570629490461476e-05, ++ 4.69096869889039770705e-05, ++ 4.51169393537250871997e-05, ++ 4.33119381189441731090e-05, ++ 4.14957073926132242688e-05, ++ 3.96692708825496971343e-05, ++ 3.78336513531005402778e-05, ++ 3.59898700857156045134e-05, ++ 3.41389463435847715115e-05, ++ 3.22818968406223129981e-05, ++ 3.04197352150379130334e-05, ++ 2.85534715077610400016e-05, ++ 2.66841116459819329256e-05, ++ 2.48126569320371454517e-05, ++ 2.29401035378939945552e-05, ++ 2.10674420054833346785e-05, ++ 1.91956567530948109463e-05, ++ 1.73257255880832701685e-05, ++ 1.54586192260933851384e-05, ++ 1.35953008170508304306e-05, ++ 1.17367254781075038266e-05, ++ 9.88383983376396622401e-06, ++ 8.03758156337068200962e-06, ++ 6.19887895622111748366e-06, ++ 4.36865047440966400299e-06, ++ 2.54780432366209949829e-06, ++ 7.37238032308926373124e-07, ++-1.06216196140181903275e-06, ++-2.84952071350109670505e-06, ++-4.62397516982719811819e-06, ++-6.38467455271440543276e-06, ++-8.13078073870770317037e-06, ++-9.86146862713564825958e-06, ++-1.15759264994108745933e-05, ++-1.32733563689023272133e-05, ++-1.49529743212684799525e-05, ++-1.66140108451148118640e-05, ++-1.82557111528464673220e-05, ++-1.98773354916211406247e-05, ++-2.14781594442844695424e-05, ++-2.30574742201769104257e-05, ++-2.46145869357362549322e-05, ++-2.61488208847895399478e-05, ++-2.76595157984633117411e-05, ++-2.91460280946186709296e-05, ++-3.06077311167595817127e-05, ++-3.20440153623401097595e-05, ++-3.34542887004032530218e-05, ++-3.48379765785163355760e-05, ++-3.61945222189482393904e-05, ++-3.75233868040389463073e-05, ++-3.88240496507459911801e-05, ++-4.00960083743247562354e-05, ++-4.13387790411311751020e-05, ++-4.25518963105175459442e-05, ++-4.37349135658282231866e-05, ++-4.48874030344820757594e-05, ++-4.60089558971416373264e-05, ++-4.70991823859845203494e-05, ++-4.81577118720843649186e-05, ++-4.91841929419274583989e-05, ++-5.01782934630889257735e-05, ++-5.11397006390924718810e-05, ++-5.20681210535034743074e-05, ++-5.29632807032923507936e-05, ++-5.38249250215106612256e-05, ++-5.46528188893461618547e-05, ++-5.54467466376069967565e-05, ++-5.62065120377057097340e-05, ++-5.69319382822057842072e-05, ++-5.76228679550160513534e-05, ++-5.82791629913088267694e-05, ++-5.89007046272428875285e-05, ++-5.94873933395923440545e-05, ++-6.00391487753712058541e-05, ++-6.05559096715516123285e-05, ++-6.10376337649892107507e-05, ++-6.14842976926593108057e-05, ++-6.18958968823238233226e-05, ++-6.22724454337409338497e-05, ++-6.26139759905511322129e-05, ++-6.29205396029612726468e-05, ++-6.31922055813587270996e-05, ++-6.34290613409973911456e-05, ++-6.36312122378911084342e-05, ++-6.37987813960626292450e-05, ++-6.39319095262928170339e-05, ++-6.40307547365266211065e-05, ++-6.40954923340890131856e-05, ++-6.41263146198697370432e-05, ++-6.41234306746411955895e-05, ++-6.40870661376762528177e-05, ++-6.40174629778308577552e-05, ++-6.39148792572699500983e-05, ++-6.37795888880064606964e-05, ++-6.36118813814352140369e-05, ++-6.34120615910403414867e-05, ++-6.31804494484613599157e-05, ++-6.29173796931019454690e-05, ++-6.26232015954722085176e-05, ++-6.22982786744524704445e-05, ++-6.19429884086736173409e-05, ++-6.15577219422070999163e-05, ++-6.11428837847619450737e-05, ++-6.06988915065878725514e-05, ++-6.02261754282833389803e-05, ++-5.97251783057105978649e-05, ++-5.91963550102224186499e-05, ++-5.86401722044022619997e-05, ++-5.80571080135254614690e-05, ++-5.74476516929463732093e-05, ++-5.68123032916220525477e-05, ++-5.61515733119774190850e-05, ++-5.54659823663211952113e-05, ++-5.47560608300273307289e-05, ++-5.40223484916846797155e-05, ++-5.32653942004291476500e-05, ++-5.24857555106721337967e-05, ++-5.16839983244288007024e-05, ++-5.08606965314631670927e-05, ++-5.00164316474561513313e-05, ++-4.91517924504131009438e-05, ++-4.82673746155130051357e-05, ++-4.73637803486131881954e-05, ++-4.64416180186217908985e-05, ++-4.55015017889379735677e-05, ++-4.45440512481755157082e-05, ++-4.35698910403685871315e-05, ++-4.25796504948757788397e-05, ++-4.15739632561744871879e-05, ++-4.05534669137558035886e-05, ++-3.95188026323245935744e-05, ++-3.84706147824963234157e-05, ++-3.74095505721943694328e-05, ++-3.63362596789495190404e-05, ++-3.52513938832865674302e-05, ++-3.41556067034013181253e-05, ++-3.30495530313091846969e-05, ++-3.19338887706706398895e-05, ++-3.08092704764648499791e-05, ++-2.96763549967042926164e-05, ++-2.85357991163705457791e-05, ++-2.73882592037593264182e-05, ++-2.62343908594002619289e-05, ++-2.50748485677371487745e-05, ++-2.39102853517339171191e-05, ++-2.27413524305865331410e-05, ++-2.15686988806957918462e-05, ++-2.03929713000709965051e-05, ++-1.92148134763324269733e-05, ++-1.80348660584579070906e-05, ++-1.68537662324394557363e-05, ++-1.56721474009943186837e-05, ++-1.44906388674901791041e-05, ++-1.33098655242168735925e-05, ++-1.21304475451532646111e-05, ++-1.09530000833746117339e-05, ++-9.77813297322283117563e-06, ++-8.60645043737828595960e-06, ++-7.43855079896758336784e-06, ++-6.27502619881871961423e-06, ++-5.11646231799598331854e-06, ++-3.96343810572348692644e-06, ++-2.81652551282231002175e-06, ++-1.67628923075757107106e-06, ++-5.43286436407872494914e-07, ++ 5.81933457334323180159e-07, ++ 1.69882904504591760570e-06, ++ 2.80686716623920578712e-06, ++ 3.90552313671397189482e-06, ++ 4.99428097372263609408e-06, ++ 6.07263361485467176461e-06, ++ 7.14008313057028191911e-06, ++ 8.19614093029787374922e-06, ++ 9.24032796203801469698e-06, ++ 1.02721749054007427328e-05, ++ 1.12912223580112092028e-05, ++ 1.22970210152323833412e-05, ++ 1.32891318431440794091e-05, ++ 1.42671262447347562611e-05, ++ 1.52305862192577593330e-05, ++ 1.61791045147036835158e-05, ++ 1.71122847733627428900e-05, ++ 1.80297416704377348772e-05, ++ 1.89311010456723673200e-05, ++ 1.98160000279815890877e-05, ++ 2.06840871530521841883e-05, ++ 2.15350224739038173570e-05, ++ 2.23684776643877086669e-05, ++ 2.31841361156243059649e-05, ++ 2.39816930253700516258e-05, ++ 2.47608554803058473310e-05, ++ 2.55213425312606982502e-05, ++ 2.62628852613713497754e-05, ++ 2.69852268471835885421e-05, ++ 2.76881226127196124491e-05, ++ 2.83713400765207057253e-05, ++ 2.90346589916937132319e-05, ++ 2.96778713789779565021e-05, ++ 3.03007815528719345064e-05, ++ 3.09032061408479746811e-05, ++ 3.14849740956869842052e-05, ++ 3.20459267009823244011e-05, ++ 3.25859175698492306789e-05, ++ 3.31048126368919349237e-05, ++ 3.36024901434722378835e-05, ++ 3.40788406163417342690e-05, ++ 3.45337668396904437789e-05, ++ 3.49671838206697444440e-05, ++ 3.53790187484598781464e-05, ++ 3.57692109469451898635e-05, ++ 3.61377118210646532115e-05, ++ 3.64844847969168087159e-05, ++ 3.68095052556900961707e-05, ++ 3.71127604615011769638e-05, ++ 3.73942494832178994610e-05, ++ 3.76539831103605689643e-05, ++ 3.78919837631567116656e-05, ++ 3.81082853968511798366e-05, ++ 3.83029334003578804196e-05, ++ 3.84759844893473848450e-05, ++ 3.86275065938727009992e-05, ++ 3.87575787406301688963e-05, ++ 3.88662909299569613790e-05, ++ 3.89537440076727901374e-05, ++ 3.90200495318706458425e-05, ++ 3.90653296347647622198e-05, ++ 3.90897168797087779285e-05, ++ 3.90933541134949965766e-05, ++ 3.90763943140510594358e-05, ++ 3.90390004336481431357e-05, ++ 3.89813452377418961383e-05, ++ 3.89036111395635601957e-05, ++ 3.88059900305833037435e-05, ++ 3.86886831069694882507e-05, ++ 3.85519006921667821723e-05, ++ 3.83958620557194456086e-05, ++ 3.82207952284667728518e-05, ++ 3.80269368142381611136e-05, ++ 3.78145317981768458210e-05, ++ 3.75838333518232266695e-05, ++ 3.73351026350875769854e-05, ++ 3.70686085952445174832e-05, ++ 3.67846277630824283257e-05, ++ 3.64834440463398959695e-05, ++ 3.61653485205640830985e-05, ++ 3.58306392175243310777e-05, ++ 3.54796209113175163119e-05, ++ 3.51126049022988697399e-05, ++ 3.47299087989734188192e-05, ++ 3.43318562979863894208e-05, ++ 3.39187769623452468762e-05, ++ 3.34910059980102160423e-05, ++ 3.30488840289914551757e-05, ++ 3.25927568710847293757e-05, ++ 3.21229753043848019326e-05, ++ 3.16398948447075694127e-05, ++ 3.11438755140624220878e-05, ++ 3.06352816103032127987e-05, ++ 3.01144814760946232977e-05, ++ 2.95818472673267157311e-05, ++ 2.90377547211135299580e-05, ++ 2.84825829235031577303e-05, ++ 2.79167140770347614077e-05, ++ 2.73405332682701918481e-05, ++ 2.67544282354346262150e-05, ++ 2.61587891362891606750e-05, ++ 2.55540083163661297088e-05, ++ 2.49404800776966532080e-05, ++ 2.43186004481496464925e-05, ++ 2.36887669515123128053e-05, ++ 2.30513783784305334912e-05, ++ 2.24068345583368003357e-05, ++ 2.17555361324791958683e-05, ++ 2.10978843281734282551e-05, ++ 2.04342807343983282075e-05, ++ 1.97651270788443597626e-05, ++ 1.90908250065320015982e-05, ++ 1.84117758601161542057e-05, ++ 1.77283804619801040644e-05, ++ 1.70410388982337398535e-05, ++ 1.63501503047186065565e-05, ++ 1.56561126551311619623e-05, ++ 1.49593225513600180476e-05, ++ 1.42601750161419401356e-05, ++ 1.35590632881392743862e-05, ++ 1.28563786195291532370e-05, ++ 1.21525100762025804540e-05, ++ 1.14478443406703827613e-05, ++ 1.07427655177589017509e-05, ++ 1.00376549431903564451e-05, ++ 9.33289099512935430329e-06, ++ 8.62884890878591384318e-06, ++ 7.92590059414905157801e-06, ++ 7.22441445693406108369e-06, ++ 6.52475522282227181239e-06, ++ 5.82728376506354903543e-06, ++ 5.13235693551778566856e-06, ++ 4.44032739920081165146e-06, ++ 3.75154347240349402752e-06, ++ 3.06634896445295587704e-06, ++ 2.38508302317038128695e-06, ++ 1.70807998408878326806e-06, ++ 1.03566922349157826689e-06, ++ 3.68175015318385312927e-07, ++-2.94083608003316195796e-07, ++-9.50792990756428532175e-07, ++-1.60164498510903015186e-06, ++-2.24633707822957432882e-06, ++-2.88457251529725585548e-06, ++-3.51606041836507742817e-06, ++-4.14051590104719538038e-06, ++-4.75766017899043685381e-06, ++-5.36722067610390392149e-06, ++-5.96893112651196722918e-06, ++-6.56253167221256118968e-06, ++-7.14776895641407462845e-06, ++-7.72439621252695393942e-06, ++-8.29217334879925126829e-06, ++-8.85086702857723481774e-06, ++-9.40025074617520820593e-06, ++-9.94010489835155732234e-06, ++-1.04702168513777000056e-05, ++-1.09903810036992033189e-05, ++-1.15003988441811452764e-05, ++-1.20000790059446446682e-05, ++-1.24892373157938542529e-05, ++-1.29676968392356399312e-05, ++-1.34352879211056542826e-05, ++-1.38918482218078280619e-05, ++-1.43372227491767596487e-05, ++-1.47712638859842104608e-05, ++-1.51938314131016376365e-05, ++-1.56047925283423453849e-05, ++-1.60040218609994824601e-05, ++-1.63914014821137958761e-05, ++-1.67668209104843766012e-05, ++-1.71301771144641440945e-05, ++-1.74813745095637493407e-05, ++-1.78203249518961361498e-05, ++-1.81469477275017576168e-05, ++-1.84611695375891659296e-05, ++-1.87629244797279366534e-05, ++-1.90521540250400636825e-05, ++-1.93288069914307297748e-05, ++-1.95928395129016073037e-05, ++-1.98442150049985344194e-05, ++-2.00829041264385711751e-05, ++-2.03088847369703611226e-05, ++-2.05221418515166891200e-05, ++-2.07226675906578703594e-05, ++-2.09104611275098419107e-05, ++-2.10855286310533183536e-05, ++-2.12478832059765801270e-05, ++-2.13975448290907599989e-05, ++-2.15345402823791832330e-05, ++-2.16589030827471214040e-05, ++-2.17706734085350807535e-05, ++-2.18698980228635944017e-05, ++-2.19566301938759495123e-05, ++-2.20309296119498917597e-05, ++-2.20928623039478315611e-05, ++-2.21425005445764114633e-05, ++-2.21799227649298888801e-05, ++-2.22052134582895725366e-05, ++-2.22184630832555388114e-05, ++-2.22197679642845197419e-05, ++-2.22092301897129874779e-05, ++-2.21869575073414682510e-05, ++-2.21530632176585956473e-05, ++-2.21076660647849037526e-05, ++-2.20508901252157237687e-05, ++-2.19828646944432693725e-05, ++-2.19037241715403474508e-05, ++-2.18136079417860268177e-05, ++-2.17126602574166129554e-05, ++-2.16010301165839486721e-05, ++-2.14788711406044598715e-05, ++-2.13463414495824367763e-05, ++-2.12036035364909901271e-05, ++-2.10508241397952941727e-05, ++-2.08881741147017592605e-05, ++-2.07158283031179152496e-05, ++-2.05339654024071466103e-05, ++-2.03427678330234534560e-05, ++-2.01424216051101083219e-05, ++-1.99331161841466409333e-05, ++-1.97150443557298639234e-05, ++-1.94884020895712982066e-05, ++-1.92533884027966296513e-05, ++-1.90102052226298810192e-05, ++-1.87590572485473988781e-05, ++-1.85001518139830994003e-05, ++-1.82336987476685074346e-05, ++-1.79599102346913299191e-05, ++-1.76790006773522863739e-05, ++-1.73911865559027042601e-05, ++-1.70966862892450109082e-05, ++-1.67957200956739338487e-05, ++-1.64885098537402634234e-05, ++-1.61752789633142813903e-05, ++-1.58562522069297573337e-05, ++-1.55316556114829399716e-05, ++-1.52017163103647922620e-05, ++-1.48666624061033995360e-05, ++-1.45267228335893107877e-05, ++-1.41821272239584706039e-05, ++-1.38331057692081632425e-05, ++-1.34798890876143142534e-05, ++-1.31227080900243395635e-05, ++-1.27617938470932148766e-05, ++-1.23973774575348411156e-05, ++-1.20296899174529279452e-05, ++-1.16589619908198458004e-05, ++-1.12854240811699317332e-05, ++-1.09093061045693789425e-05, ++-1.05308373639278654549e-05, ++-1.01502464247116462527e-05, ++-9.76776099211927309387e-06, ++-9.38360778978138410360e-06, ++-8.99801244003842426661e-06, ++-8.61119934585468618966e-06, ++-8.22339157442569339263e-06, ++-7.83481074252833694781e-06, ++-7.44567690366960780872e-06, ++-7.05620843708181691813e-06, ++-6.66662193861726721860e-06, ++-6.27713211358587016620e-06, ++-5.88795167158394612084e-06, ++-5.49929122336098261949e-06, ++-5.11135917976332167136e-06, ++-4.72436165279991700163e-06, ++-4.33850235886762889933e-06, ++-3.95398252417811778438e-06, ++-3.57100079241896547341e-06, ++-3.18975313468634483958e-06, ++-2.81043276172503517281e-06, ++-2.43323003850372685734e-06, ++-2.05833240115816176063e-06, ++-1.68592427633299744872e-06, ++-1.31618700294525707091e-06, ++-9.49298756398597503033e-07, ++-5.85434475269598042740e-07, ++-2.24765790491995588430e-07, ++ 1.32539042944795253329e-07, ++ 4.86315211761806101974e-07, ++ 8.36401407601896179804e-07, ++ 1.18263988767470755612e-06, ++ 1.52487653281902728484e-06, ++ 1.86296090296814218483e-06, ++ 2.19674629001149769367e-06, ++ 2.52608976803993208671e-06, ++ 2.85085224096945087408e-06, ++ 3.17089848753367322990e-06, ++ 3.48609720364736703897e-06, ++ 3.79632104212865399887e-06, ++ 4.10144664978819417086e-06, ++ 4.40135470188026015846e-06, ++ 4.69592993391712774085e-06, ++ 4.98506117085352237869e-06, ++ 5.26864135364426027284e-06, ++ 5.54656756317971894038e-06, ++ 5.81874104161062011015e-06, ++ 6.08506721106972112904e-06, ++ 6.34545568979961026893e-06, ++ 6.59982030570251321293e-06, ++ 6.84807910732276385433e-06, ++ 7.09015437227939167509e-06, ++ 7.32597261316240703008e-06, ++ 7.55546458091406095787e-06, ++ 7.77856526571271897894e-06, ++ 7.99521389537842829865e-06, ++ 8.20535393132500495055e-06, ++ 8.40893306208027325446e-06, ++ 8.60590319439752568476e-06, ++ 8.79622044198663719764e-06, ++ 8.97984511188937595011e-06, ++ 9.15674168852855148177e-06, ++ 9.32687881545792753647e-06, ++ 9.49022927484590670408e-06, ++ 9.64676996472301928230e-06, ++ 9.79648187402453286072e-06, ++ 9.93935005546419846816e-06, ++ 1.00753635962716102202e-05, ++ 1.02045155868300701406e-05, ++ 1.03268030872496085793e-05, ++ 1.04422270919149080961e-05, ++ 1.05507924920450241771e-05, ++ 1.06525080363035427313e-05, ++ 1.07473862895008009574e-05, ++ 1.08354435894281464503e-05, ++ 1.09167000018650293508e-05, ++ 1.09911792738028123146e-05, ++ 1.10589087849281107333e-05, ++ 1.11199194974072203387e-05, ++ 1.11742459040198995155e-05, ++ 1.12219259746838584705e-05, ++ 1.12630011014179261237e-05, ++ 1.12975160417893515888e-05, ++ 1.13255188608912239713e-05, ++ 1.13470608718986725231e-05, ++ 1.13621965752502408455e-05, ++ 1.13709835965033970314e-05, ++ 1.13734826229117897745e-05, ++ 1.13697573387741017237e-05, ++ 1.13598743596030994434e-05, ++ 1.13439031651642332040e-05, ++ 1.13219160314340630866e-05, ++ 1.12939879615281848059e-05, ++ 1.12601966156488724434e-05, ++ 1.12206222401028280833e-05, ++ 1.11753475954396282394e-05, ++ 1.11244578837614569632e-05, ++ 1.10680406752547680398e-05, ++ 1.10061858339946508134e-05, ++ 1.09389854430727538072e-05, ++ 1.08665337290993678862e-05, ++ 1.07889269861304655274e-05, ++ 1.07062634990703402997e-05, ++ 1.06186434666001975772e-05, ++ 1.05261689236834371503e-05, ++ 1.04289436636973722826e-05, ++ 1.03270731602417616547e-05, ++ 1.02206644886739122943e-05, ++ 1.01098262474197981978e-05, ++ 9.99466847911029713993e-06, ++ 9.87530259159213775891e-06, ++ 9.75184127886138886650e-06, ++ 9.62439844196833259673e-06, ++ 9.49308910994118403798e-06, ++ 9.35802936077670613891e-06, ++ 9.21933624254407122552e-06, ++ 9.07712769464878633412e-06, ++ 8.93152246930307774312e-06, ++ 8.78264005324776636302e-06, ++ 8.63060058977119588699e-06, ++ 8.47552480106907815021e-06, ++ 8.31753391098935562125e-06, ++ 8.15674956820603695338e-06, ++ 7.99329376986349665764e-06, ++ 7.82728878573373623468e-06, ++ 7.65885708292866533933e-06, ++ 7.48812125120667820171e-06, ++ 7.31520392891465129538e-06, ++ 7.14022772960352193400e-06, ++ 6.96331516935741928119e-06, ++ 6.78458859487234582688e-06, ++ 6.60417011232208535555e-06, ++ 6.42218151704836629878e-06, ++ 6.23874422410881874162e-06, ++ 6.05397919971873245333e-06, ++ 5.86800689361913014930e-06, ++ 5.68094717240549469965e-06, ++ 5.49291925384726654124e-06, ++ 5.30404164223008170432e-06, ++ 5.11443206475166292147e-06, ++ 4.92420740899910160668e-06, ++ 4.73348366153649160803e-06, ++ 4.54237584763147922608e-06, ++ 4.35099797214519011545e-06, ++ 4.15946296161273383862e-06, ++ 3.96788260753767942779e-06, ++ 3.77636751092580240556e-06, ++ 3.58502702807880729068e-06, ++ 3.39396921767065449759e-06, ++ 3.20330078912824216524e-06, ++ 3.01312705233424288917e-06, ++ 2.82355186867183291849e-06, ++ 2.63467760343009042062e-06, ++ 2.44660507958478551702e-06, ++ 2.25943353297212192994e-06, ++ 2.07326056886889636990e-06, ++ 1.88818211999486711094e-06, ++ 1.70429240594666796266e-06, ++ 1.52168389407997070498e-06, ++ 1.34044726184580192320e-06, ++ 1.16067136059360877587e-06, ++ 9.82443180850182688139e-07, ++ 8.05847819080474491893e-07, ++ 6.30968445938113515307e-07, ++ 4.57886276012498259056e-07, ++ 2.86680539075394581232e-07, ++ 1.17428452831952805658e-07, ++-4.97948028199512061526e-08, ++-2.14916110022078276637e-07, ++-3.77864435677151772163e-07, ++-5.38570852660314438457e-07, ++-6.96968559519905157610e-07, ++-8.52992898671310133264e-07, ++-1.00658137308563959240e-06, ++-1.15767366147595502125e-06, ++-1.30621163198739205903e-06, ++-1.45213935439566631263e-06, ++-1.59540311081938818504e-06, ++-1.73595140495523324136e-06, ++-1.87373496984242769148e-06, ++-2.00870677416657680066e-06, ++-2.14082202711105138891e-06, ++-2.27003818176825526611e-06, ++-2.39631493712127321177e-06, ++-2.51961423860721225935e-06, ++-2.63990027727692722499e-06, ++-2.75713948756333368392e-06, ++-2.87130054367384340272e-06, ++-2.98235435462072420536e-06, ++-3.09027405790690176183e-06, ++-3.19503501188302714502e-06, ++-3.29661478679241666049e-06, ++-3.39499315452328387347e-06, ++-3.49015207708610277043e-06, ++-3.58207569383478124936e-06, ++-3.67075030745277205795e-06, ++-3.75616436872432333914e-06, ++-3.83830846011024974469e-06, ++-3.91717527815298500760e-06, ++-3.99275961473000555479e-06, ++-4.06505833718047160103e-06, ++-4.13407036732752447398e-06, ++-4.19979665941946242550e-06, ++-4.26224017701520252964e-06, ++-4.32140586883761345266e-06, ++-4.37730064362061373922e-06, ++-4.42993334397458008860e-06, ++-4.47931471929707665449e-06, ++-4.52545739775462975901e-06, ++-4.56837585736176623178e-06, ++-4.60808639618528355489e-06, ++-4.64460710170019533535e-06, ++-4.67795781932549308073e-06, ++-4.70816012016700297387e-06, ++-4.73523726799615031957e-06, ++-4.75921418549265574824e-06, ++-4.78011741977943205404e-06, ++-4.79797510727910759225e-06, ++-4.81281693792077799724e-06, ++-4.82467411872585649209e-06, ++-4.83357933680284597292e-06, ++-4.83956672177992600872e-06, ++-4.84267180770512457676e-06, ++-4.84293149444327853537e-06, ++-4.84038400859978304718e-06, ++-4.83506886400059992306e-06, ++-4.82702682175797029301e-06, ++-4.81629984995190550901e-06, ++-4.80293108295687288677e-06, ++-4.78696478044319962005e-06, ++-4.76844628608297569874e-06, ++-4.74742198598980721643e-06, ++-4.72393926692184768618e-06, ++-4.69804647427729357874e-06, ++-4.66979286991168869255e-06, ++-4.63922858980587374532e-06, ++-4.60640460161349042157e-06, ++-4.57137266211669161266e-06, ++-4.53418527461856474313e-06, ++-4.49489564630047438049e-06, ++-4.45355764557232873177e-06, ++-4.41022575944365265741e-06, ++-4.36495505094285770681e-06, ++-4.31780111661199634214e-06, ++-4.26882004410400630158e-06, ++-4.21806836990897163306e-06, ++-4.16560303723581088566e-06, ++-4.11148135407525745674e-06, ++-4.05576095146995474136e-06, ++-3.99849974201671793024e-06, ++-3.93975587862589741230e-06, ++-3.87958771356253902739e-06, ++-3.81805375779311230168e-06, ++-3.75521264066174805207e-06, ++-3.69112306991899966841e-06, ++-3.62584379212629908306e-06, ++-3.55943355345803456996e-06, ++-3.49195106092336089756e-06, ++-3.42345494402936616337e-06, ++-3.35400371690614687047e-06, ++-3.28365574091441607464e-06, ++-3.21246918775588953681e-06, ++-3.14050200310536497332e-06, ++-3.06781187078386562419e-06, ++-2.99445617749091577548e-06, ++-2.92049197811430259292e-06, ++-2.84597596163407434304e-06, ++-2.77096441763784568063e-06, ++-2.69551320346391274513e-06, ++-2.61967771198731242738e-06, ++-2.54351284006417954935e-06, ++-2.46707295764927670231e-06, ++-2.39041187760002226610e-06, ++-2.31358282618092573712e-06, ++-2.23663841428083219829e-06, ++-2.15963060935584024358e-06, ++-2.08261070810834870857e-06, ++-2.00562930991492076031e-06, ++-1.92873629101175331357e-06, ++-1.85198077944850633880e-06, ++-1.77541113081986172875e-06, ++-1.69907490478282910220e-06, ++-1.62301884236816257159e-06, ++-1.54728884409369261285e-06, ++-1.47192994888573774293e-06, ++-1.39698631381516495750e-06, ++-1.32250119465412662692e-06, ++-1.24851692725776004904e-06, ++-1.17507490977594879706e-06, ++-1.10221558569852023006e-06, ++-1.02997842773779330541e-06, ++-9.58401922550402422422e-07, ++-8.87523556300846598974e-07, ++-8.17379801068637194395e-07, ++-7.48006102099267160073e-07, ++-6.79436865899721901669e-07, ++-6.11705449178669713405e-07, ++-5.44844148629825548117e-07, ++-4.78884191557767192135e-07, ++-4.13855727343869051617e-07, ++-3.49787819750522529807e-07, ++-2.86708440059940296556e-07, ++-2.24644461044386128961e-07, ++-1.63621651764123018711e-07, ++-1.03664673187799380991e-07, ++-4.47970746308059675830e-08, ++ 0 /* Need a final zero coefficient */ ++ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/samplerate.c k3b-r948463.patched/libk3b/plugin/libsamplerate/samplerate.c +--- k3b-r948463/libk3b/plugin/libsamplerate/samplerate.c 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/samplerate.c 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,301 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "config-k3b.h" ++ ++#include "samplerate.h" ++#include "common.h" ++ ++SRC_STATE * ++src_new (int converter_type, int channels, int *error) ++{ SRC_PRIVATE *psrc ; ++ ++ if (error) ++ *error = SRC_ERR_NO_ERROR ; ++ ++ if (channels < 1) ++ { if (error) ++ *error = SRC_ERR_BAD_CHANNEL_COUNT ; ++ return NULL ; ++ } ; ++ ++ if ((psrc = calloc (1, sizeof (*psrc))) == NULL) ++ { if (error) ++ *error = SRC_ERR_MALLOC_FAILED ; ++ return NULL ; ++ } ; ++ ++ psrc->channels = channels ; ++ ++ if (sinc_set_converter (psrc, converter_type) != SRC_ERR_NO_ERROR && ++ zoh_set_converter (psrc, converter_type) != SRC_ERR_NO_ERROR && ++ linear_set_converter (psrc, converter_type) != SRC_ERR_NO_ERROR) ++ { if (error) ++ *error = SRC_ERR_BAD_CONVERTER ; ++ free (psrc) ; ++ psrc = NULL ; ++ } ; ++ ++ src_reset ((SRC_STATE*) psrc) ; ++ ++ return (SRC_STATE*) psrc ; ++} /* src_new */ ++ ++SRC_STATE * ++src_delete (SRC_STATE *state) ++{ SRC_PRIVATE *psrc ; ++ ++ psrc = (SRC_PRIVATE*) state ; ++ if (psrc) ++ { if (psrc->private_data) ++ free (psrc->private_data) ; ++ memset (psrc, 0, sizeof (SRC_PRIVATE)) ; ++ free (psrc) ; ++ } ; ++ ++ return NULL ; ++} /* src_state */ ++ ++int ++src_process (SRC_STATE *state, SRC_DATA *data) ++{ SRC_PRIVATE *psrc ; ++ int error ; ++ ++ psrc = (SRC_PRIVATE*) state ; ++ ++ if (psrc == NULL) ++ return SRC_ERR_BAD_STATE ; ++ if (psrc->process == NULL) ++ return SRC_ERR_BAD_PROC_PTR ; ++ ++ /* Check for valid SRC_DATA first. */ ++ if (data == NULL) ++ return SRC_ERR_BAD_DATA ; ++ /* Check src_ratio is in range. */ ++ if (data->src_ratio < (1.0 / SRC_MAX_RATIO) || data->src_ratio > (1.0 * SRC_MAX_RATIO)) ++ return SRC_ERR_BAD_SRC_RATIO ; ++ ++ /* And that data_in and data_out are valid. */ ++ if (data->data_in == NULL || data->data_out == NULL) ++ return SRC_ERR_BAD_DATA_PTR ; ++ ++ if (data->data_in == NULL) ++ data->input_frames = 0 ; ++ ++ if (data->data_in < data->data_out) ++ { if (data->data_in + data->input_frames * psrc->channels > data->data_out) ++ { /*-printf ("data_in: %p data_out: %p\n", ++ data->data_in + data->input_frames * psrc->channels, data->data_out) ;-*/ ++ return SRC_ERR_DATA_OVERLAP ; ++ } ; ++ } ++ else if (data->data_out + data->output_frames * psrc->channels > data->data_in) ++ { /*-printf ("data_out: %p (%p) data_in: %p\n", data->data_out, ++ data->data_out + data->output_frames * psrc->channels, data->data_in) ;-*/ ++ return SRC_ERR_DATA_OVERLAP ; ++ } ; ++ ++ if (data->input_frames < 0) ++ data->input_frames = 0 ; ++ if (data->output_frames < 0) ++ data->output_frames = 0 ; ++ ++ /* Set the input and output counts to zero. */ ++ data->input_frames_used = 0 ; ++ data->output_frames_gen = 0 ; ++ ++ /* Special case for when last_ratio has not been set. */ ++ if (psrc->last_ratio < (1.0 / SRC_MAX_RATIO)) ++ psrc->last_ratio = data->src_ratio ; ++ ++ /* Now process. */ ++ error = psrc->process (psrc, data) ; ++ ++ return error ; ++} /* src_process */ ++ ++int ++src_set_ratio (SRC_STATE *state, double new_ratio) ++{ SRC_PRIVATE *psrc ; ++ ++ psrc = (SRC_PRIVATE*) state ; ++ ++ if (psrc == NULL) ++ return SRC_ERR_BAD_STATE ; ++ if (psrc->process == NULL) ++ return SRC_ERR_BAD_PROC_PTR ; ++ ++ psrc->last_ratio = new_ratio ; ++ ++ return SRC_ERR_NO_ERROR ; ++} /* src_set_ratio */ ++ ++int ++src_reset (SRC_STATE *state) ++{ SRC_PRIVATE *psrc ; ++ ++ if ((psrc = (SRC_PRIVATE*) state) == NULL) ++ return SRC_ERR_BAD_STATE ; ++ ++ if (psrc->reset != NULL) ++ psrc->reset (psrc) ; ++ ++ psrc->last_position = 0.0 ; ++ psrc->last_ratio = 0.0 ; ++ ++ psrc->error = SRC_ERR_NO_ERROR ; ++ ++ return SRC_ERR_NO_ERROR ; ++} /* src_reset */ ++ ++/*============================================================================== ++** Control functions. ++*/ ++ ++const char * ++src_get_name (int converter_type) ++{ const char *desc ; ++ ++ if ((desc = sinc_get_name (converter_type)) != NULL) ++ return desc ; ++ ++ if ((desc = zoh_get_name (converter_type)) != NULL) ++ return desc ; ++ ++ if ((desc = linear_get_name (converter_type)) != NULL) ++ return desc ; ++ ++ return NULL ; ++} /* src_get_name */ ++ ++const char * ++src_get_description (int converter_type) ++{ const char *desc ; ++ ++ if ((desc = sinc_get_description (converter_type)) != NULL) ++ return desc ; ++ ++ if ((desc = zoh_get_description (converter_type)) != NULL) ++ return desc ; ++ ++ if ((desc = linear_get_description (converter_type)) != NULL) ++ return desc ; ++ ++ return NULL ; ++} /* src_get_description */ ++ ++const char * ++src_get_version (void) ++{ return "libsamplerate-k3b";/*PACKAGE "-" VERSION ;*/ ++} /* src_get_version */ ++ ++int ++src_is_valid_ratio (double ratio) ++{ ++ if (ratio < (1.0 / SRC_MAX_RATIO) || ratio > (1.0 * SRC_MAX_RATIO)) ++ return SRC_FALSE ; ++ ++ return SRC_TRUE ; ++} /* src_is_valid_ratio */ ++ ++/*============================================================================== ++** Error reporting functions. ++*/ ++ ++int ++src_error (SRC_STATE *state) ++{ if (state) ++ return ((SRC_PRIVATE*) state)->error ; ++ return SRC_ERR_NO_ERROR ; ++} /* src_error */ ++ ++const char* ++src_strerror (int error) ++{ ++ switch (error) ++ { case SRC_ERR_NO_ERROR : ++ return "No error" ; ++ case SRC_ERR_MALLOC_FAILED : ++ return "Malloc failed." ; ++ case SRC_ERR_BAD_STATE : ++ return "SRC_STATE pointer is NULL." ; ++ case SRC_ERR_BAD_DATA : ++ return "SRC_DATA pointer is NULL." ; ++ case SRC_ERR_BAD_DATA_PTR : ++ return "SRC_DATA->data_out is NULL." ; ++ case SRC_ERR_NO_PRIVATE : ++ return "Internal error. No private data." ; ++ case SRC_ERR_BAD_SRC_RATIO : ++ return "SRC ratio outside [-12, 12] range." ; ++ case SRC_ERR_BAD_SINC_STATE : ++ return "src_process() called without reset after end_of_input." ; ++ case SRC_ERR_BAD_PROC_PTR : ++ return "Internal error. No process pointer." ; ++ case SRC_ERR_SHIFT_BITS : ++ return "Internal error. SHIFT_BITS too large." ; ++ case SRC_ERR_FILTER_LEN : ++ return "Internal error. Filter length too large." ; ++ case SRC_ERR_BAD_CONVERTER : ++ return "Bad converter number." ; ++ case SRC_ERR_BAD_CHANNEL_COUNT : ++ return "Channel count must be >= 1." ; ++ case SRC_ERR_SINC_BAD_BUFFER_LEN : ++ return "Internal error. Bad buffer length. Please report this." ; ++ case SRC_ERR_SIZE_INCOMPATIBILITY : ++ return "Internal error. Input data / internal buffer size difference. Please report this." ; ++ case SRC_ERR_BAD_PRIV_PTR : ++ return "Internal error. Private pointer is NULL. Please report this." ; ++ ++ case SRC_ERR_DATA_OVERLAP : ++ return "Input and output data arrays overlap." ; ++ ++ case SRC_ERR_MAX_ERROR : ++ return "Placeholder. No error defined for this error number." ; ++ ++ default : break ; ++ } ++ ++ return NULL ; ++} /* src_strerror */ ++ ++/*============================================================================== ++** Simple interface for performing a single conversion from input buffer to ++** output buffer at a fixed conversion ratio. ++*/ ++ ++int ++src_simple (SRC_DATA *src_data, int converter, int channels) ++{ SRC_STATE *src_state ; ++ int error ; ++ ++ if ((src_state = src_new (converter, channels, &error)) == NULL) ++ return error ; ++ ++ src_data->end_of_input = 1 ; /* Only one buffer worth of input. */ ++ ++ error = src_process (src_state, src_data) ; ++ ++ src_state = src_delete (src_state) ; ++ ++ return error ; ++} /* src_simple */ ++ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/samplerate.h k3b-r948463.patched/libk3b/plugin/libsamplerate/samplerate.h +--- k3b-r948463/libk3b/plugin/libsamplerate/samplerate.h 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/samplerate.h 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,138 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++/* ++** API documentation is available here: ++** http://www.mega-nerd.com/SRC/api.html ++*/ ++ ++#ifndef SAMPLERATE_H ++#define SAMPLERATE_H ++ ++#ifdef __cplusplus ++extern "C" { ++#endif /* __cplusplus */ ++ ++typedef struct SRC_STATE_tag SRC_STATE ; ++ ++typedef struct ++{ float *data_in, *data_out ; ++ ++ long input_frames, output_frames ; ++ long input_frames_used, output_frames_gen ; ++ ++ int end_of_input ; ++ ++ double src_ratio ; ++} SRC_DATA ; ++ ++/* ++** Simple interface for performing a single conversion from input buffer to ++** output buffer at a fixed conversion ratio. ++*/ ++int src_simple (SRC_DATA *data, int converter_type, int channels) ; ++ ++/* ++** Initialisation function : return an anonymous pointer to the internal state ++** of the converter. Choose a converter from the enums below. ++*/ ++ ++SRC_STATE* src_new (int converter_type, int channels, int *error) ; ++ ++/* ++** Cleanup all internal allocations. ++** Always returns NULL. ++*/ ++ ++SRC_STATE* src_delete (SRC_STATE *state) ; ++ ++/* ++** This library contains a number of different sample rate converters, ++** numbered 0 through N. ++** ++** Return a string giving either a name or a more full description of each ++** sample rate converter or NULL if no sample rate converter exists for ++** the given value. The converters are sequentially numbered from 0 to N. ++*/ ++ ++const char *src_get_name (int converter_type) ; ++const char *src_get_description (int converter_type) ; ++const char *src_get_version (void) ; ++ ++/* ++** Processing function. ++** Returns non zero on error. ++*/ ++ ++int src_process (SRC_STATE *state, SRC_DATA *data) ; ++ ++/* ++** Set a new SRC ratio. This allows step responses ++** in the conversion ratio. ++** Returns non zero on error. ++*/ ++ ++int src_set_ratio (SRC_STATE *state, double new_ratio) ; ++ ++/* ++** Reset the internal SRC state. ++** Does not modify the quality settings. ++** Does not free any memory allocations. ++** Returns non zero on error. ++*/ ++ ++int src_reset (SRC_STATE *state) ; ++ ++/* ++** Return TRUE if ratio is a valid conversion ratio, FALSE ++** otherwise. ++*/ ++ ++int src_is_valid_ratio (double ratio) ; ++ ++/* ++** Return an error number. ++*/ ++ ++int src_error (SRC_STATE *state) ; ++ ++/* ++** Convert the error number into a string. ++*/ ++const char* src_strerror (int error) ; ++ ++/* ++** The following enums can be used to set the interpolator type ++** using the function src_set_converter(). ++*/ ++ ++enum ++{ ++ SRC_SINC_BEST_QUALITY = 0, ++ SRC_SINC_MEDIUM_QUALITY = 1, ++ SRC_SINC_FASTEST = 2, ++ SRC_ZERO_ORDER_HOLD = 3, ++ SRC_LINEAR = 4 ++} ; ++ ++ ++#ifdef __cplusplus ++} /* extern "C" */ ++#endif /* __cplusplus */ ++ ++#endif /* SAMPLERATE_H */ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/src_linear.c k3b-r948463.patched/libk3b/plugin/libsamplerate/src_linear.c +--- k3b-r948463/libk3b/plugin/libsamplerate/src_linear.c 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/src_linear.c 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,194 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "config-k3b.h" ++#include "float_cast.h" ++#include "common.h" ++ ++static void linear_reset (SRC_PRIVATE *psrc) ; ++ ++/*======================================================================================== ++*/ ++ ++#define LINEAR_MAGIC_MARKER MAKE_MAGIC('l','i','n','e','a','r') ++ ++typedef struct ++{ int linear_magic_marker ; ++ int channels ; ++ long in_count, in_used ; ++ long out_count, out_gen ; ++ float last_value [1] ; ++} LINEAR_DATA ; ++ ++/*---------------------------------------------------------------------------------------- ++*/ ++int ++linear_process (SRC_PRIVATE *psrc, SRC_DATA *data) ++{ LINEAR_DATA *linear ; ++ double src_ratio, input_index ; ++ int ch ; ++ ++ if (psrc->private_data == NULL) ++ return SRC_ERR_NO_PRIVATE ; ++ ++ linear = (LINEAR_DATA*) psrc->private_data ; ++ ++ linear->in_count = data->input_frames * linear->channels ; ++ linear->out_count = data->output_frames * linear->channels ; ++ linear->in_used = linear->out_gen = 0 ; ++ ++ src_ratio = psrc->last_ratio ; ++ input_index = psrc->last_position ; ++ ++ /* Calculate samples before first sample in input array. */ ++ while (input_index > 0.0 && input_index < 1.0 && linear->out_gen < linear->out_count) ++ { ++ if (linear->in_used + input_index > linear->in_count) ++ break ; ++ ++ if (fabs (psrc->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF) ++ src_ratio = psrc->last_ratio + linear->out_gen * (data->src_ratio - psrc->last_ratio) / (linear->out_count - 1) ; ++ ++ for (ch = 0 ; ch < linear->channels ; ch++) ++ { data->data_out [linear->out_gen] = linear->last_value [ch] + input_index * ++ (data->data_in [ch] - linear->last_value [ch]) ; ++ linear->out_gen ++ ; ++ } ; ++ ++ /* Figure out the next index. */ ++ input_index += 1.0 / src_ratio ; ++ } ; ++ ++ /* Main processing loop. */ ++ while (linear->out_gen < linear->out_count) ++ { ++ linear->in_used += linear->channels * lrint (floor (input_index)) ; ++ input_index -= floor (input_index) ; ++ ++ if (linear->in_used + input_index > linear->in_count) ++ break ; ++ ++ if (fabs (psrc->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF) ++ src_ratio = psrc->last_ratio + linear->out_gen * (data->src_ratio - psrc->last_ratio) / (linear->out_count - 1) ; ++ ++ for (ch = 0 ; ch < linear->channels ; ch++) ++ { data->data_out [linear->out_gen] = data->data_in [linear->in_used + ch] + input_index * ++ (data->data_in [linear->in_used + linear->channels + ch] - data->data_in [linear->in_used + ch]) ; ++ linear->out_gen ++ ; ++ } ; ++ ++ /* Figure out the next index. */ ++ input_index += 1.0 / src_ratio ; ++ } ; ++ ++/*- if (input_index > linear->in_count - linear->in_used) ++ { input_index -= linear->in_count - linear->in_used ; ++ linear->in_used = linear->in_count ; ++ puts ("XXXXXXXXXX") ; /+*-exit (1) ;-*+/ ++ } ; ++-*/ ++ ++ psrc->last_position = input_index ; ++ ++ for (ch = 0 ; ch < linear->channels ; ch++) ++ { linear->last_value [ch] = data->data_in [linear->in_used - linear->channels + ch] ; ++ ++/*- data->data_out [0 + ch] = -0.9 ; ++ data->data_out [linear->out_gen - linear->channels + ch] = 0.9 ; -*/ ++ } ; ++ ++ /* Save current ratio rather then target ratio. */ ++ psrc->last_ratio = src_ratio ; ++ ++ data->input_frames_used = linear->in_used / linear->channels ; ++ data->output_frames_gen = linear->out_gen / linear->channels ; ++ ++ return SRC_ERR_NO_ERROR ; ++} /* linear_process */ ++ ++/*------------------------------------------------------------------------------ ++*/ ++ ++const char* ++linear_get_name (int src_enum) ++{ ++ if (src_enum == SRC_LINEAR) ++ return "Linear Interpolator" ; ++ ++ return NULL ; ++} /* linear_get_name */ ++ ++const char* ++linear_get_description (int src_enum) ++{ ++ if (src_enum == SRC_LINEAR) ++ return "Linear interpolator, very fast, poor quality." ; ++ ++ return NULL ; ++} /* linear_get_descrition */ ++ ++int ++linear_set_converter (SRC_PRIVATE *psrc, int src_enum) ++{ LINEAR_DATA *linear ; ++ ++ if (src_enum != SRC_LINEAR) ++ return SRC_ERR_BAD_CONVERTER ; ++ ++ if (psrc->private_data != NULL) ++ { linear = (LINEAR_DATA*) psrc->private_data ; ++ if (linear->linear_magic_marker != LINEAR_MAGIC_MARKER) ++ { free (psrc->private_data) ; ++ psrc->private_data = NULL ; ++ } ; ++ } ; ++ ++ if (psrc->private_data == NULL) ++ { linear = calloc (1, sizeof (*linear) + psrc->channels * sizeof (float)) ; ++ if (linear == NULL) ++ return SRC_ERR_MALLOC_FAILED ; ++ psrc->private_data = linear ; ++ } ; ++ ++ linear->linear_magic_marker = LINEAR_MAGIC_MARKER ; ++ linear->channels = psrc->channels ; ++ ++ psrc->process = linear_process ; ++ psrc->reset = linear_reset ; ++ ++ linear_reset (psrc) ; ++ ++ return SRC_ERR_NO_ERROR ; ++} /* linear_set_converter */ ++ ++/*=================================================================================== ++*/ ++ ++static void ++linear_reset (SRC_PRIVATE *psrc) ++{ LINEAR_DATA *linear ; ++ ++ linear = (LINEAR_DATA*) psrc->private_data ; ++ if (linear == NULL) ++ return ; ++ ++ memset (linear->last_value, 0, sizeof (linear->last_value [0]) * linear->channels) ; ++} /* linear_reset */ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/src_sinc.c k3b-r948463.patched/libk3b/plugin/libsamplerate/src_sinc.c +--- k3b-r948463/libk3b/plugin/libsamplerate/src_sinc.c 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/src_sinc.c 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,471 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "config-k3b.h" ++#include "float_cast.h" ++#include "common.h" ++ ++#define SINC_MAGIC_MARKER MAKE_MAGIC(' ','s','i','n','c',' ') ++ ++#define ARRAY_LEN(x) ((int) (sizeof (x) / sizeof ((x) [0]))) ++ ++/*======================================================================================== ++** Macros for handling the index into the array for the filter. ++** Double precision floating point is not accurate enough so use a 64 bit ++** fixed point value instead. SHIFT_BITS (current value of 48) is the number ++** of bits to the right of the decimal point. ++** The rest of the macros are for retrieving the fractional and integer parts ++** and for converting floats and ints to the fixed point format or from the ++** fixed point type back to integers and floats. ++*/ ++ ++#define MAKE_INCREMENT_T(x) ((increment_t) (x)) ++ ++#define SHIFT_BITS 16 ++#define FP_ONE ((double) (((increment_t) 1) << SHIFT_BITS)) ++ ++#define DOUBLE_TO_FP(x) (lrint ((x) * FP_ONE)) ++#define INT_TO_FP(x) (((increment_t) (x)) << SHIFT_BITS) ++ ++#define FP_FRACTION_PART(x) ((x) & ((((increment_t) 1) << SHIFT_BITS) - 1)) ++#define FP_INTEGER_PART(x) ((x) & (((increment_t) -1) << SHIFT_BITS)) ++ ++#define FP_TO_INT(x) (((x) >> SHIFT_BITS)) ++#define FP_TO_DOUBLE(x) (FP_FRACTION_PART (x) / FP_ONE) ++ ++/*======================================================================================== ++*/ ++ ++typedef int32_t increment_t ; ++typedef float coeff_t ; ++ ++enum ++{ ++ STATE_BUFFER_START = 101, ++ STATE_DATA_CONTINUE = 102, ++ STATE_BUFFER_END = 103, ++ STATE_FINISHED ++} ; ++ ++typedef struct ++{ int sinc_magic_marker ; ++ ++ int channels ; ++ long in_count, in_used ; ++ long out_count, out_gen ; ++ ++ int coeff_half_len, index_inc ; ++ int has_diffs ; ++ ++ double src_ratio, input_index ; ++ ++ int coeff_len ; ++ coeff_t const *coeffs ; ++ ++ int b_current, b_end, b_real_end, b_len ; ++ float *pdata ; ++ float buffer [1] ; ++} SINC_FILTER ; ++ ++static double calc_output (SINC_FILTER *filter, increment_t increment, increment_t start_filter_index, int ch) ; ++ ++static void prepare_data (SINC_FILTER *filter, SRC_DATA *data, int half_filter_chan_len) ; ++ ++static void sinc_reset (SRC_PRIVATE *psrc) ; ++ ++static coeff_t const high_qual_coeffs [] = ++{ ++#include "high_qual_coeffs.h" ++} ; /* high_qual_coeffs */ ++ ++static coeff_t const mid_qual_coeffs [] = ++{ ++#include "mid_qual_coeffs.h" ++} ; /* mid_qual_coeffs */ ++ ++static coeff_t const fastest_coeffs [] = ++{ ++#include "fastest_coeffs.h" ++} ; /* fastest_coeffs */ ++ ++/*---------------------------------------------------------------------------------------- ++*/ ++ ++const char* ++sinc_get_name (int src_enum) ++{ ++ switch (src_enum) ++ { case SRC_SINC_BEST_QUALITY : ++ return "Best Sinc Interpolator" ; ++ ++ case SRC_SINC_MEDIUM_QUALITY : ++ return "Medium Sinc Interpolator" ; ++ ++ case SRC_SINC_FASTEST : ++ return "Fastest Sinc Interpolator" ; ++ } ; ++ ++ return NULL ; ++} /* sinc_get_descrition */ ++ ++const char* ++sinc_get_description (int src_enum) ++{ ++ switch (src_enum) ++ { case SRC_SINC_BEST_QUALITY : ++ return "Band limitied sinc interpolation, best quality, 97dB SNR, 96% BW." ; ++ ++ case SRC_SINC_MEDIUM_QUALITY : ++ return "Band limitied sinc interpolation, medium quality, 97dB SNR, 90% BW." ; ++ ++ case SRC_SINC_FASTEST : ++ return "Band limitied sinc interpolation, fastest, 97dB SNR, 80% BW." ; ++ } ; ++ ++ return NULL ; ++} /* sinc_get_descrition */ ++ ++int ++sinc_set_converter (SRC_PRIVATE *psrc, int src_enum) ++{ SINC_FILTER *filter, temp_filter ; ++ int count ; ++ ++ /* Quick sanity check. */ ++ if (SHIFT_BITS >= sizeof (increment_t) * 8 - 1) ++ return SRC_ERR_SHIFT_BITS ; ++ ++ if (psrc->private_data != NULL) ++ { filter = (SINC_FILTER*) psrc->private_data ; ++ if (filter->sinc_magic_marker != SINC_MAGIC_MARKER) ++ { free (psrc->private_data) ; ++ psrc->private_data = NULL ; ++ } ; ++ } ; ++ ++ memset (&temp_filter, 0, sizeof (temp_filter)) ; ++ ++ temp_filter.sinc_magic_marker = SINC_MAGIC_MARKER ; ++ temp_filter.channels = psrc->channels ; ++ ++ psrc->process = sinc_process ; ++ psrc->reset = sinc_reset ; ++ ++ switch (src_enum) ++ { case SRC_SINC_BEST_QUALITY : ++ temp_filter.coeffs = high_qual_coeffs ; ++ temp_filter.coeff_half_len = (sizeof (high_qual_coeffs) / sizeof (coeff_t)) - 1 ; ++ temp_filter.index_inc = 128 ; ++ temp_filter.has_diffs = SRC_FALSE ; ++ temp_filter.coeff_len = sizeof (high_qual_coeffs) / sizeof (coeff_t) ; ++ break ; ++ ++ case SRC_SINC_MEDIUM_QUALITY : ++ temp_filter.coeffs = mid_qual_coeffs ; ++ temp_filter.coeff_half_len = (sizeof (mid_qual_coeffs) / sizeof (coeff_t)) - 1 ; ++ temp_filter.index_inc = 128 ; ++ temp_filter.has_diffs = SRC_FALSE ; ++ temp_filter.coeff_len = sizeof (mid_qual_coeffs) / sizeof (coeff_t) ; ++ break ; ++ ++ case SRC_SINC_FASTEST : ++ temp_filter.coeffs = fastest_coeffs ; ++ temp_filter.coeff_half_len = (sizeof (fastest_coeffs) / sizeof (coeff_t)) - 1 ; ++ temp_filter.index_inc = 128 ; ++ temp_filter.has_diffs = SRC_FALSE ; ++ temp_filter.coeff_len = sizeof (fastest_coeffs) / sizeof (coeff_t) ; ++ break ; ++ ++ default : ++ return SRC_ERR_BAD_CONVERTER ; ++ } ; ++ ++ /* ++ ** FIXME : This needs to be looked at more closely to see if there is ++ ** a better way. Need to look at prepare_data () at the same time. ++ */ ++ ++ temp_filter.b_len = 1000 + 2 * lrint (ceil (temp_filter.coeff_len / (temp_filter.index_inc * 1.0) * SRC_MAX_RATIO)) ; ++ temp_filter.b_len *= temp_filter.channels ; ++ ++ if ((filter = calloc (1, sizeof (SINC_FILTER) + sizeof (filter->buffer [0]) * (temp_filter.b_len + temp_filter.channels))) == NULL) ++ return SRC_ERR_MALLOC_FAILED ; ++ ++ *filter = temp_filter ; ++ memset (&temp_filter, 0xEE, sizeof (temp_filter)) ; ++ ++ psrc->private_data = filter ; ++ ++ sinc_reset (psrc) ; ++ ++ count = (filter->coeff_half_len * INT_TO_FP (1)) / FP_ONE ; ++ ++ if (abs (count - filter->coeff_half_len) >= 1) ++ return SRC_ERR_FILTER_LEN ; ++ ++ return SRC_ERR_NO_ERROR ; ++} /* sinc_set_converter */ ++ ++static void ++sinc_reset (SRC_PRIVATE *psrc) ++{ SINC_FILTER *filter ; ++ ++ filter = (SINC_FILTER*) psrc->private_data ; ++ if (filter == NULL) ++ return ; ++ ++ filter->b_current = filter->b_end = 0 ; ++ filter->b_real_end = -1 ; ++ ++ filter->src_ratio = filter->input_index = 0.0 ; ++ ++ memset (filter->buffer, 0, filter->b_len * sizeof (filter->buffer [0])) ; ++ ++ /* Set this for a sanity check */ ++ memset (filter->buffer + filter->b_len, 0xAA, filter->channels * sizeof (filter->buffer [0])) ; ++} /* sinc_reset */ ++ ++/*======================================================================================== ++** Beware all ye who dare pass this point. There be dragons here. ++*/ ++ ++int ++sinc_process (SRC_PRIVATE *psrc, SRC_DATA *data) ++{ SINC_FILTER *filter ; ++ double input_index, src_ratio, count, float_increment, terminate ; ++ increment_t increment, start_filter_index ; ++ int half_filter_chan_len, samples_in_hand, ch ; ++ ++ if (psrc->private_data == NULL) ++ return SRC_ERR_NO_PRIVATE ; ++ ++ filter = (SINC_FILTER*) psrc->private_data ; ++ ++ /* If there is not a problem, this will be optimised out. */ ++ if (sizeof (filter->buffer [0]) != sizeof (data->data_in [0])) ++ return SRC_ERR_SIZE_INCOMPATIBILITY ; ++ ++ filter->in_count = data->input_frames * filter->channels ; ++ filter->out_count = data->output_frames * filter->channels ; ++ filter->in_used = filter->out_gen = 0 ; ++ ++ src_ratio = psrc->last_ratio ; ++ ++ /* Check the sample rate ratio wrt the buffer len. */ ++ count = (filter->coeff_half_len + 2.0) / filter->index_inc ; ++ if (MIN (psrc->last_ratio, data->src_ratio) < 1.0) ++ count /= MIN (psrc->last_ratio, data->src_ratio) ; ++ count = lrint (ceil (count)) ; ++ ++ /* Maximum coefficientson either side of center point. */ ++ half_filter_chan_len = filter->channels * (lrint (count) + 1) ; ++ ++ input_index = psrc->last_position ; ++ if (input_index >= 1.0) ++ { filter->b_current = (filter->b_current + filter->channels * lrint (floor (input_index))) % filter->b_len ; ++ input_index -= floor (input_index) ; ++ } ; ++ ++ float_increment = filter->index_inc ; ++ ++ filter->b_current = (filter->b_current + filter->channels * lrint (floor (input_index))) % filter->b_len ; ++ input_index -= floor (input_index) ; ++ ++ terminate = 1.0 / src_ratio + 1e-20 ; ++ ++ /* Main processing loop. */ ++ while (filter->out_gen < filter->out_count) ++ { ++ /* Need to reload buffer? */ ++ samples_in_hand = (filter->b_end - filter->b_current + filter->b_len) % filter->b_len ; ++ ++ if (samples_in_hand <= half_filter_chan_len) ++ { prepare_data (filter, data, half_filter_chan_len) ; ++ ++ samples_in_hand = (filter->b_end - filter->b_current + filter->b_len) % filter->b_len ; ++ if (samples_in_hand <= half_filter_chan_len) ++ break ; ++ } ; ++ ++ /* This is the termination condition. */ ++ if (filter->b_real_end >= 0) ++ { if (filter->b_current + input_index + terminate >= filter->b_real_end) ++ break ; ++ } ; ++ ++ if (fabs (psrc->last_ratio - data->src_ratio) > 1e-10) ++ src_ratio = psrc->last_ratio + filter->out_gen * (data->src_ratio - psrc->last_ratio) / (filter->out_count - 1) ; ++ ++ float_increment = filter->index_inc * 1.0 ; ++ if (src_ratio < 1.0) ++ float_increment = filter->index_inc * src_ratio ; ++ ++ increment = DOUBLE_TO_FP (float_increment) ; ++ ++ start_filter_index = DOUBLE_TO_FP (input_index * float_increment) ; ++ ++ for (ch = 0 ; ch < filter->channels ; ch++) ++ { data->data_out [filter->out_gen] = (float_increment / filter->index_inc) * ++ calc_output (filter, increment, start_filter_index, ch) ; ++ filter->out_gen ++ ; ++ } ; ++ ++ /* Figure out the next index. */ ++ input_index += 1.0 / src_ratio ; ++ ++ filter->b_current = (filter->b_current + filter->channels * lrint (floor (input_index))) % filter->b_len ; ++ input_index -= floor (input_index) ; ++ } ; ++ ++ psrc->last_position = input_index ; ++ ++ /* Save current ratio rather then target ratio. */ ++ psrc->last_ratio = src_ratio ; ++ ++ data->input_frames_used = filter->in_used / filter->channels ; ++ data->output_frames_gen = filter->out_gen / filter->channels ; ++ ++ return SRC_ERR_NO_ERROR ; ++} /* sinc_process */ ++ ++/*---------------------------------------------------------------------------------------- ++*/ ++ ++static void ++prepare_data (SINC_FILTER *filter, SRC_DATA *data, int half_filter_chan_len) ++{ int len = 0 ; ++ ++ if (filter->b_real_end >= 0) ++ return ; /* This doesn't make sense, so return. */ ++ ++ if (filter->b_current == 0) ++ { /* Initial state. Set up zeros at the start of the buffer and ++ ** then load new data after that. ++ */ ++ len = filter->b_len - 2 * half_filter_chan_len ; ++ ++ filter->b_current = filter->b_end = half_filter_chan_len ; ++ } ++ else if (filter->b_end + half_filter_chan_len + filter->channels < filter->b_len) ++ { /* Load data at current end position. */ ++ len = MAX (filter->b_len - filter->b_current - half_filter_chan_len, 0) ; ++ } ++ else ++ { /* Move data at end of buffer back to the start of the buffer. */ ++ len = filter->b_end - filter->b_current ; ++ memmove (filter->buffer, filter->buffer + filter->b_current - half_filter_chan_len, ++ (half_filter_chan_len + len) * sizeof (filter->buffer [0])) ; ++ ++ filter->b_current = half_filter_chan_len ; ++ filter->b_end = filter->b_current + len ; ++ ++ /* Now load data at current end of buffer. */ ++ len = MAX (filter->b_len - filter->b_current - half_filter_chan_len, 0) ; ++ } ; ++ ++ len = MIN (filter->in_count - filter->in_used, len) ; ++ len -= (len % filter->channels) ; ++ ++ memcpy (filter->buffer + filter->b_end, data->data_in + filter->in_used, ++ len * sizeof (filter->buffer [0])) ; ++ ++ filter->b_end += len ; ++ filter->in_used += len ; ++ ++ if (filter->in_used == filter->in_count && ++ filter->b_end - filter->b_current < 2 * half_filter_chan_len && data->end_of_input) ++ { /* Handle the case where all data in the current buffer has been ++ ** consumed and this is the last buffer. ++ */ ++ ++ if (filter->b_len - filter->b_end < half_filter_chan_len + 5) ++ { /* If necessary, move data down to the start of the buffer. */ ++ len = filter->b_end - filter->b_current ; ++ memmove (filter->buffer, filter->buffer + filter->b_current - half_filter_chan_len, ++ (half_filter_chan_len + len) * sizeof (filter->buffer [0])) ; ++ ++ filter->b_current = half_filter_chan_len ; ++ filter->b_end = filter->b_current + len ; ++ } ; ++ ++ filter->b_real_end = filter->b_end ; ++ len = half_filter_chan_len + 5 ; ++ ++ memset (filter->buffer + filter->b_end, 0, len * sizeof (filter->buffer [0])) ; ++ filter->b_end += len ; ++ } ; ++ ++ return ; ++} /* prepare_data */ ++ ++ ++static double ++calc_output (SINC_FILTER *filter, increment_t increment, increment_t start_filter_index, int ch) ++{ double fraction, left, right, icoeff ; ++ increment_t filter_index, max_filter_index ; ++ int data_index, coeff_count, indx ; ++ ++ /* Convert input parameters into fixed point. */ ++ max_filter_index = INT_TO_FP (filter->coeff_half_len) ; ++ ++ /* First apply the left half of the filter. */ ++ filter_index = start_filter_index ; ++ coeff_count = (max_filter_index - filter_index) / increment ; ++ filter_index = filter_index + coeff_count * increment ; ++ data_index = filter->b_current - filter->channels * coeff_count ; ++ ++ left = 0.0 ; ++ do ++ { fraction = FP_TO_DOUBLE (filter_index) ; ++ indx = FP_TO_INT (filter_index) ; ++ ++ icoeff = filter->coeffs [indx] + fraction * (filter->coeffs [indx + 1] - filter->coeffs [indx]) ; ++ ++ left += icoeff * filter->buffer [data_index + ch] ; ++ ++ filter_index -= increment ; ++ data_index = data_index + filter->channels ; ++ } ++ while (filter_index >= MAKE_INCREMENT_T (0)) ; ++ ++ /* Now apply the right half of the filter. */ ++ filter_index = increment - start_filter_index ; ++ coeff_count = (max_filter_index - filter_index) / increment ; ++ filter_index = filter_index + coeff_count * increment ; ++ data_index = filter->b_current + filter->channels * (1 + coeff_count) ; ++ ++ right = 0.0 ; ++ do ++ { fraction = FP_TO_DOUBLE (filter_index) ; ++ indx = FP_TO_INT (filter_index) ; ++ ++ icoeff = filter->coeffs [indx] + fraction * (filter->coeffs [indx + 1] - filter->coeffs [indx]) ; ++ ++ right += icoeff * filter->buffer [data_index + ch] ; ++ ++ filter_index -= increment ; ++ data_index = data_index - filter->channels ; ++ } ++ while (filter_index > MAKE_INCREMENT_T (0)) ; ++ ++ return (left + right) ; ++} /* calc_output */ ++ +diff -r -u --new-file k3b-r948463/libk3b/plugin/libsamplerate/src_zoh.c k3b-r948463.patched/libk3b/plugin/libsamplerate/src_zoh.c +--- k3b-r948463/libk3b/plugin/libsamplerate/src_zoh.c 1969-12-31 18:00:00.000000000 -0600 ++++ k3b-r948463.patched/libk3b/plugin/libsamplerate/src_zoh.c 2009-04-03 14:00:42.000000000 -0500 +@@ -0,0 +1,186 @@ ++/* ++** Copyright (C) 2002,2003 Erik de Castro Lopo <erikd@mega-nerd.com> ++** ++** This program is free software; you can redistribute it and/or modify ++** it under the terms of the GNU General Public License as published by ++** the Free Software Foundation; either version 2 of the License, or ++** (at your option) any later version. ++** ++** This program is distributed in the hope that it will be useful, ++** but WITHOUT ANY WARRANTY; without even the implied warranty of ++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++** GNU General Public License for more details. ++** ++** You should have received a copy of the GNU General Public License ++** along with this program; if not, write to the Free Software ++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++*/ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++ ++#include "config-k3b.h" ++#include "float_cast.h" ++#include "common.h" ++ ++static void zoh_reset (SRC_PRIVATE *psrc) ; ++ ++/*======================================================================================== ++*/ ++ ++#define ZOH_MAGIC_MARKER MAKE_MAGIC('s','r','c','z','o','h') ++ ++typedef struct ++{ int zoh_magic_marker ; ++ int channels ; ++ long in_count, in_used ; ++ long out_count, out_gen ; ++ float last_value [1] ; ++} ZOH_DATA ; ++ ++/*---------------------------------------------------------------------------------------- ++*/ ++ ++int ++zoh_process (SRC_PRIVATE *psrc, SRC_DATA *data) ++{ ZOH_DATA *zoh ; ++ double src_ratio, input_index ; ++ int ch ; ++ ++ if (psrc->private_data == NULL) ++ return SRC_ERR_NO_PRIVATE ; ++ ++ zoh = (ZOH_DATA*) psrc->private_data ; ++ ++ zoh->in_count = data->input_frames * zoh->channels ; ++ zoh->out_count = data->output_frames * zoh->channels ; ++ zoh->in_used = zoh->out_gen = 0 ; ++ ++ src_ratio = psrc->last_ratio ; ++ input_index = psrc->last_position ; ++ ++ /* Calculate samples before first sample in input array. */ ++ while (input_index > 0.0 && input_index < 1.0 && zoh->out_gen < zoh->out_count) ++ { ++ if (zoh->in_used + input_index >= zoh->in_count) ++ break ; ++ ++ if (fabs (psrc->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF) ++ src_ratio = psrc->last_ratio + zoh->out_gen * (data->src_ratio - psrc->last_ratio) / (zoh->out_count - 1) ; ++ ++ for (ch = 0 ; ch < zoh->channels ; ch++) ++ { data->data_out [zoh->out_gen] = zoh->last_value [ch] ; ++ zoh->out_gen ++ ; ++ } ; ++ ++ /* Figure out the next index. */ ++ input_index += 1.0 / src_ratio ; ++ } ; ++ ++ zoh->in_used += zoh->channels * lrint (floor (input_index)) ; ++ input_index -= floor (input_index) ; ++ ++ /* Main processing loop. */ ++ while (zoh->out_gen < zoh->out_count && zoh->in_used + input_index < zoh->in_count) ++ { ++ if (fabs (psrc->last_ratio - data->src_ratio) > SRC_MIN_RATIO_DIFF) ++ src_ratio = psrc->last_ratio + zoh->out_gen * (data->src_ratio - psrc->last_ratio) / (zoh->out_count - 1) ; ++ ++ for (ch = 0 ; ch < zoh->channels ; ch++) ++ { data->data_out [zoh->out_gen] = data->data_in [zoh->in_used + ch] ; ++ zoh->out_gen ++ ; ++ } ; ++ ++ /* Figure out the next index. */ ++ input_index += 1.0 / src_ratio ; ++ ++ zoh->in_used += zoh->channels * lrint (floor (input_index)) ; ++ input_index -= floor (input_index) ; ++ } ; ++ ++ psrc->last_position = input_index ; ++ ++ if (zoh->in_used > 0) ++ for (ch = 0 ; ch < zoh->channels ; ch++) ++ zoh->last_value [ch] = data->data_in [zoh->in_used - zoh->channels + ch] ; ++ ++ /* Save current ratio rather then target ratio. */ ++ psrc->last_ratio = src_ratio ; ++ ++ data->input_frames_used = zoh->in_used / zoh->channels ; ++ data->output_frames_gen = zoh->out_gen / zoh->channels ; ++ ++ return SRC_ERR_NO_ERROR ; ++} /* zoh_process */ ++ ++/*------------------------------------------------------------------------------ ++*/ ++ ++const char* ++zoh_get_name (int src_enum) ++{ ++ if (src_enum == SRC_ZERO_ORDER_HOLD) ++ return "ZOH Interpolator" ; ++ ++ return NULL ; ++} /* zoh_get_name */ ++ ++const char* ++zoh_get_description (int src_enum) ++{ ++ if (src_enum == SRC_ZERO_ORDER_HOLD) ++ return "Zero order hold interpolator, very fast, poor quality." ; ++ ++ return NULL ; ++} /* zoh_get_descrition */ ++ ++int ++zoh_set_converter (SRC_PRIVATE *psrc, int src_enum) ++{ ZOH_DATA *zoh = NULL; ++ ++ if (src_enum != SRC_ZERO_ORDER_HOLD) ++ return SRC_ERR_BAD_CONVERTER ; ++ ++ if (psrc->private_data != NULL) ++ { zoh = (ZOH_DATA*) psrc->private_data ; ++ if (zoh->zoh_magic_marker != ZOH_MAGIC_MARKER) ++ { free (psrc->private_data) ; ++ psrc->private_data = NULL ; ++ } ; ++ } ; ++ ++ if (psrc->private_data == NULL) ++ { zoh = calloc (1, sizeof (*zoh) + psrc->channels * sizeof (float)) ; ++ if (zoh == NULL) ++ return SRC_ERR_MALLOC_FAILED ; ++ psrc->private_data = zoh ; ++ } ; ++ ++ zoh->zoh_magic_marker = ZOH_MAGIC_MARKER ; ++ zoh->channels = psrc->channels ; ++ ++ psrc->process = zoh_process ; ++ psrc->reset = zoh_reset ; ++ ++ zoh_reset (psrc) ; ++ ++ return SRC_ERR_NO_ERROR ; ++} /* zoh_set_converter */ ++ ++/*=================================================================================== ++*/ ++ ++static void ++zoh_reset (SRC_PRIVATE *psrc) ++{ ZOH_DATA *zoh ; ++ ++ zoh = (ZOH_DATA*) psrc->private_data ; ++ if (zoh == NULL) ++ return ; ++ ++ zoh->channels = psrc->channels ; ++ memset (zoh->last_value, 0, sizeof (zoh->last_value [0]) * zoh->channels) ; ++ ++ return ; ++} /* zoh_reset */ +diff -r -u --new-file k3b-r948463/plugins/decoder/wave/k3bwavedecoder.cpp k3b-r948463.patched/plugins/decoder/wave/k3bwavedecoder.cpp +--- k3b-r948463/plugins/decoder/wave/k3bwavedecoder.cpp 2009-04-03 01:16:04.000000000 -0500 ++++ k3b-r948463.patched/plugins/decoder/wave/k3bwavedecoder.cpp 2009-04-03 14:00:42.000000000 -0500 +@@ -344,7 +344,7 @@ + else if( name == i18n("Sampling Rate") ) + return i18n("%1 Hz",d->sampleRate); + else if( name == i18n("Sample Size") ) +- return i18np("1 bit","%1 bits",d->sampleSize); ++ return i18n("%1 bits",d->sampleSize); + else + return QString(); + } diff --git a/source/kde/k3b/local.options b/source/kde/k3b/local.options new file mode 100644 index 000000000..6122f1141 --- /dev/null +++ b/source/kde/k3b/local.options @@ -0,0 +1 @@ +VERSION=1.66.0 diff --git a/source/kde/k3b/slack-desc b/source/kde/k3b/slack-desc new file mode 100644 index 000000000..032bbb8a4 --- /dev/null +++ b/source/kde/k3b/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +k3b: k3b (The CD Creator) +k3b: +k3b: K3b makes writing cds under Linux easy. It has an easy to use +k3b: interface and supports CD burning (including on-the-fly), copying, +k3b: erasing, ripping, and more. +k3b: +k3b: K3b was written by Sebastian Trueg, Thomas Froescher, +k3b: Christian Kvasny, and Klaus-Dieter Krannich. +k3b: +k3b: For more information, visit: http://www.k3b.org +k3b: diff --git a/source/kde/kaudiocreator/doinst.sh b/source/kde/kaudiocreator/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kaudiocreator/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kaudiocreator/kaudiocreator.SlackBuild b/source/kde/kaudiocreator/kaudiocreator.SlackBuild new file mode 100755 index 000000000..c54d53eb8 --- /dev/null +++ b/source/kde/kaudiocreator/kaudiocreator.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kaudiocreator + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib/qt ]; then + QTDIR=/usr/lib/qt +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +echo "Building kaudiocreator-$VERSION..." +tar xvf $CWD/../src/extragear/kaudiocreator-$VERSION.tar.?z* || exit 1 +cd kaudiocreator-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + . +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kaudiocreator-$VERSION +cp -a COPYING* TODO $PKG/usr/doc/kaudiocreator-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n /tmp/kaudiocreator-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kaudiocreator/local.options b/source/kde/kaudiocreator/local.options new file mode 100644 index 000000000..977577b09 --- /dev/null +++ b/source/kde/kaudiocreator/local.options @@ -0,0 +1 @@ +VERSION=r1008583 diff --git a/source/kde/kaudiocreator/slack-desc b/source/kde/kaudiocreator/slack-desc new file mode 100644 index 000000000..607c15fde --- /dev/null +++ b/source/kde/kaudiocreator/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------| +kaudiocreator: kaudiocreator (CD ripper and audio encoder) +kaudiocreator: +kaudiocreator: kaudiocreater is a kde frontend for ripping and encoding audio +kaudiocreator: to/from optical media. +kaudiocreator: +kaudiocreator: +kaudiocreator: +kaudiocreator: +kaudiocreator: +kaudiocreator: +kaudiocreator: diff --git a/source/kde/kdeaccessibility/doinst.sh b/source/kde/kdeaccessibility/doinst.sh new file mode 100644 index 000000000..22d4849bc --- /dev/null +++ b/source/kde/kdeaccessibility/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdeaccessibility/kdeaccessibility.SlackBuild b/source/kde/kdeaccessibility/kdeaccessibility.SlackBuild new file mode 100755 index 000000000..96b5247f1 --- /dev/null +++ b/source/kde/kdeaccessibility/kdeaccessibility.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdeaccessibility + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdeaccessibility-$VERSION..." +tar xvf $CWD/../src/kdeaccessibility-$VERSION.tar.?z* || exit 1 +cd kdeaccessibility-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdeaccessibility-$VERSION +cp -a COPYING* $PKG/usr/doc/kdeaccessibility-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdeaccessibility-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdeaccessibility/slack-desc b/source/kde/kdeaccessibility/slack-desc new file mode 100644 index 000000000..dd06f475c --- /dev/null +++ b/source/kde/kdeaccessibility/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdeaccessibility: kdeaccessibility +kdeaccessibility: +kdeaccessibility: KDE accessibility programs, including kmag (a screen magnifier), +kdeaccessibility: kmousetool (clicks the mouse for you), and kmouth (a speech +kdeaccessibility: synthesizer frontend). +kdeaccessibility: +kdeaccessibility: +kdeaccessibility: +kdeaccessibility: +kdeaccessibility: +kdeaccessibility: +kdeaccessibility: diff --git a/source/kde/kdeadmin/doinst.sh b/source/kde/kdeadmin/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdeadmin/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdeadmin/kdeadmin.SlackBuild b/source/kde/kdeadmin/kdeadmin.SlackBuild new file mode 100755 index 000000000..43a41da35 --- /dev/null +++ b/source/kde/kdeadmin/kdeadmin.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdeadmin + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdeadmin-$VERSION..." +tar xvf $CWD/../src/kdeadmin-$VERSION.tar.?z* || exit 1 +cd kdeadmin-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdeadmin-$VERSION +cp -a AUTHORS COPYING* README $PKG/usr/doc/kdeadmin-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdeadmin-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdeadmin/slack-desc b/source/kde/kdeadmin/slack-desc new file mode 100644 index 000000000..644f44e5c --- /dev/null +++ b/source/kde/kdeadmin/slack-desc @@ -0,0 +1,20 @@ + +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler---------------------------------------------------| +kdeadmin: kdeadmin +kdeadmin: +kdeadmin: KDE system administration tools. +kdeadmin: +kdeadmin: +kdeadmin: +kdeadmin: +kdeadmin: +kdeadmin: +kdeadmin: +kdeadmin: diff --git a/source/kde/kdeartwork/doinst.sh b/source/kde/kdeartwork/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdeartwork/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdeartwork/kdeartwork.SlackBuild b/source/kde/kdeartwork/kdeartwork.SlackBuild new file mode 100755 index 000000000..4000569a4 --- /dev/null +++ b/source/kde/kdeartwork/kdeartwork.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdeartwork + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdeartwork-$VERSION..." +tar xvf $CWD/../src/kdeartwork-$VERSION.tar.?z* || exit 1 +cd kdeartwork-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdeartwork-$VERSION +cp -a COPYING* README $PKG/usr/doc/kdeartwork-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdeartwork-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdeartwork/slack-desc b/source/kde/kdeartwork/slack-desc new file mode 100644 index 000000000..005f4aeab --- /dev/null +++ b/source/kde/kdeartwork/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------| +kdeartwork: kdeartwork +kdeartwork: +kdeartwork: Additional themes, screensavers, sounds, wallpapers, and window +kdeartwork: styles. +kdeartwork: +kdeartwork: +kdeartwork: +kdeartwork: +kdeartwork: +kdeartwork: +kdeartwork: diff --git a/source/kde/kdebase-runtime/doinst.sh b/source/kde/kdebase-runtime/doinst.sh new file mode 100644 index 000000000..22d4849bc --- /dev/null +++ b/source/kde/kdebase-runtime/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdebase-runtime/kdebase-runtime-text-render-969192.diff b/source/kde/kdebase-runtime/kdebase-runtime-text-render-969192.diff new file mode 100644 index 000000000..811f922e3 --- /dev/null +++ b/source/kde/kdebase-runtime/kdebase-runtime-text-render-969192.diff @@ -0,0 +1,14 @@ +Index: trunk/KDE/kdebase/runtime/kstyles/oxygen/oxygen.cpp +=================================================================== +--- trunk/KDE/kdebase/runtime/kstyles/oxygen/oxygen.cpp (revision 969191) ++++ trunk/KDE/kdebase/runtime/kstyles/oxygen/oxygen.cpp (revision 969192) +@@ -3067,7 +3067,8 @@ + + if (const QStyleOptionToolButton* tbOpt = qstyleoption_cast<const QStyleOptionToolButton*>(option)) { + if ((!tbOpt->icon.isNull()) && (!tbOpt->text.isEmpty()) && tbOpt->toolButtonStyle == Qt::ToolButtonTextUnderIcon) +- size.setHeight(size.height()-9); ++ // TODO: Make this font size dependent ++ size.setHeight(size.height()-5); + } + + // We want to avoid super-skiny buttons, for things like "up" when icons + text diff --git a/source/kde/kdebase-runtime/kdebase-runtime.SlackBuild b/source/kde/kdebase-runtime/kdebase-runtime.SlackBuild new file mode 100755 index 000000000..90b25549d --- /dev/null +++ b/source/kde/kdebase-runtime/kdebase-runtime.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdebase-runtime + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdebase-runtime-$VERSION..." +tar xvf $CWD/../src/kdebase-runtime-$VERSION.tar.?z* || exit 1 +cd kdebase-runtime-$VERSION + +# Fix a bug where the top and bottom of text is improperly cropped: +zcat $CWD/kdebase-runtime-text-render-969192.diff.gz | patch -p4 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +# Create a symlink in /usr/bin to the kdesu binary +( cd $PKG/usr/bin ; ln -s /usr/lib${LIBDIRSUFFIX}/kde4/libexec/kdesu . ) + +# Remove the hicolor icon theme index.theme so it doesn't clobber the real one +rm -f $PKG/usr/share/icons/hicolor/index.theme + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdebase-runtime-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdebase-runtime/local.options b/source/kde/kdebase-runtime/local.options new file mode 100644 index 000000000..aae3c765c --- /dev/null +++ b/source/kde/kdebase-runtime/local.options @@ -0,0 +1 @@ +BUILD=2 diff --git a/source/kde/kdebase-runtime/slack-desc b/source/kde/kdebase-runtime/slack-desc new file mode 100644 index 000000000..0b8de17be --- /dev/null +++ b/source/kde/kdebase-runtime/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + |-----handy-ruler------------------------------------------------------| +kdebase-runtime: kdebase-runtime +kdebase-runtime: +kdebase-runtime: This package contains core components of the KDE base runtime module. +kdebase-runtime: +kdebase-runtime: +kdebase-runtime: +kdebase-runtime: +kdebase-runtime: +kdebase-runtime: +kdebase-runtime: +kdebase-runtime: diff --git a/source/kde/kdebase-workspace/config/Xsession b/source/kde/kdebase-workspace/config/Xsession new file mode 100644 index 000000000..736f5d5c2 --- /dev/null +++ b/source/kde/kdebase-workspace/config/Xsession @@ -0,0 +1,88 @@ +#! /bin/sh +# Xsession - run as user + +# Merged in parts of the old Xsession to load defaults from +# Xresources and Xmodmap files, 2006-02-09 volkerdi +# Merged with the new Xsession (original) from KDE4, 20071220 rworkman + + session=$1 + +# This section is borrowed from the old X11 Xsession file: +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/usr/lib/X11/xinit/.Xresources +sysmodmap=/usr/lib/X11/xinit/.Xmodmap +# merge in defaults and keymaps +if [ -r $sysresources ]; then + /usr/bin/xrdb -merge $sysresources +fi +if [ -r $sysmodmap ]; then + /usr/bin/xmodmap $sysmodmap +fi +if [ -r $userresources ]; then + /usr/bin/xrdb -merge $userresources +fi +if [ -r $usermodmap ]; then + /usr/bin/xmodmap $usermodmap +fi + +# Note that the respective logout scripts are not sourced. +case $SHELL in + */bash) + [ -z "$BASH" ] && exec $SHELL $0 "$@" + set +o posix + [ -f /etc/profile ] && . /etc/profile + if [ -f $HOME/.bash_profile ]; then + . $HOME/.bash_profile + elif [ -f $HOME/.bash_login ]; then + . $HOME/.bash_login + elif [ -f $HOME/.profile ]; then + . $HOME/.profile + fi + ;; + */zsh) + [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@" + emulate -R zsh + [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc + zhome=${ZDOTDIR:-$HOME} + # zshenv is always sourced automatically. + [ -f $zdir/zprofile ] && . $zdir/zprofile + [ -f $zhome/.zprofile ] && . $zhome/.zprofile + [ -f $zdir/zlogin ] && . $zdir/zlogin + [ -f $zhome/.zlogin ] && . $zhome/.zlogin + ;; + */csh|*/tcsh) + # [t]cshrc is always sourced automatically. + # Note that sourcing csh.login after .cshrc is non-standard. + xsess_tmp=`mktemp /tmp/xsess-env-XXXXXX` + $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; /bin/sh -c export -p >! $xsess_tmp" + . $xsess_tmp + rm -f $xsess_tmp + ;; + *) # Plain sh, ksh, and anything we do not know. + [ -f /etc/profile ] && . /etc/profile + [ -f $HOME/.profile ] && . $HOME/.profile + ;; +esac + +[ -f /etc/xprofile ] && . /etc/xprofile +[ -f $HOME/.xprofile ] && . $HOME/.xprofile + +case $session in + "") + exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session." + ;; + failsafe) + exec xterm -geometry 80x24-0-0 + ;; + custom) + exec $HOME/.xsession + ;; + default) + exec /usr/bin/startkde + ;; + *) + eval exec "$session" + ;; +esac +exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute $session. Check $DESKTOP_SESSION.desktop." diff --git a/source/kde/kdebase-workspace/config/Xsession.orig b/source/kde/kdebase-workspace/config/Xsession.orig new file mode 100644 index 000000000..43d78b8d9 --- /dev/null +++ b/source/kde/kdebase-workspace/config/Xsession.orig @@ -0,0 +1,65 @@ +#! /bin/sh +# Xsession - run as user + +session=$1 + +# Note that the respective logout scripts are not sourced. +case $SHELL in + */bash) + [ -z "$BASH" ] && exec $SHELL $0 "$@" + set +o posix + [ -f /etc/profile ] && . /etc/profile + if [ -f $HOME/.bash_profile ]; then + . $HOME/.bash_profile + elif [ -f $HOME/.bash_login ]; then + . $HOME/.bash_login + elif [ -f $HOME/.profile ]; then + . $HOME/.profile + fi + ;; + */zsh) + [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@" + emulate -R zsh + [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc + zhome=${ZDOTDIR:-$HOME} + # zshenv is always sourced automatically. + [ -f $zdir/zprofile ] && . $zdir/zprofile + [ -f $zhome/.zprofile ] && . $zhome/.zprofile + [ -f $zdir/zlogin ] && . $zdir/zlogin + [ -f $zhome/.zlogin ] && . $zhome/.zlogin + ;; + */csh|*/tcsh) + # [t]cshrc is always sourced automatically. + # Note that sourcing csh.login after .cshrc is non-standard. + xsess_tmp=`mktemp /tmp/xsess-env-XXXXXX` + $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; /bin/sh -c export -p >! $xsess_tmp" + . $xsess_tmp + rm -f $xsess_tmp + ;; + *) # Plain sh, ksh, and anything we do not know. + [ -f /etc/profile ] && . /etc/profile + [ -f $HOME/.profile ] && . $HOME/.profile + ;; +esac + +[ -f /etc/xprofile ] && . /etc/xprofile +[ -f $HOME/.xprofile ] && . $HOME/.xprofile + +case $session in + "") + exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session." + ;; + failsafe) + exec xterm -geometry 80x24-0-0 + ;; + custom) + exec $HOME/.xsession + ;; + default) + exec /usr/bin/startkde + ;; + *) + eval exec "$session" + ;; +esac +exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute $session. Check $DESKTOP_SESSION.desktop." diff --git a/source/kde/kdebase-workspace/doinst.sh b/source/kde/kdebase-workspace/doinst.sh new file mode 100644 index 000000000..793bae742 --- /dev/null +++ b/source/kde/kdebase-workspace/doinst.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/kde/kdm/backgroundrc.new +config etc/kde/kdm/kdmrc.new + +if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi + +if [ -x usr/bin/update-mime-database ]; then + usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + diff --git a/source/kde/kdebase-workspace/kdebase-workspace.SlackBuild b/source/kde/kdebase-workspace/kdebase-workspace.SlackBuild new file mode 100755 index 000000000..63e5b2512 --- /dev/null +++ b/source/kde/kdebase-workspace/kdebase-workspace.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdebase-workspace + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdebase-workspace-$VERSION..." +tar xvf $CWD/../src/kdebase-workspace-$VERSION.tar.?z* || exit 1 +cd kdebase-workspace-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/etc/X11/xinit +cat $CWD/xinit/xinitrc.kde > $PKG/etc/X11/xinit/xinitrc.kde +chmod 0755 $PKG/etc/X11/xinit/xinitrc.kde + +# Setup config files for KDM: +$PKG/usr/bin/genkdmconf --no-old --no-old-scripts --no-backup --in $PKG/usr/share/config/kdm + +# Not allowing root to login at the console is just plain silly. If they +# have physical access to the machine, what's the point of trying to stop +# this? Even the kdmrc file says this is supposed to be the default. +sed -i 's/AllowRootLogin=false/AllowRootLogin=true/' \ + $PKG/usr/share/config/kdm/kdmrc +mv $PKG/usr/share/config/kdm/kdmrc $PKG/usr/share/config/kdm/kdmrc.new + +cp -a $PKG/usr/share/config/kdm/Xsession $PKG/usr/share/config/kdm/Xsession.orig +cat $CWD/config/Xsession | sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" \ + > $PKG/usr/share/config/kdm/Xsession +mv $PKG/usr/share/config/kdm/backgroundrc $PKG/usr/share/config/kdm/backgroundrc.new + +# Move the KDM files someplace FHS compliant: +mkdir -p $PKG/etc/kde +mv $PKG/usr/share/config/kdm $PKG/etc/kde +( cd $PKG/usr/share/config ; ln -sf ../../../etc/kde/kdm . ) + +# This is fubar: +rm -f $PKG/usr/share/icons/hicolor/index.theme + +mkdir -p $PKG/usr/doc/kdebase-workspace-$VERSION +cp -a COPYING* README $PKG/usr/doc/kdebase-workspace-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdebase-workspace-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdebase-workspace/slack-desc b/source/kde/kdebase-workspace/slack-desc new file mode 100644 index 000000000..e828d208f --- /dev/null +++ b/source/kde/kdebase-workspace/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +kdebase-workspace: kdebase-workspace - the KDE Workspace +kdebase-workspace: +kdebase-workspace: The KDE Workspace (kdebase-workspace) package consists of what is +kdebase-workspace: essentially the KDE workspace presented to the user. +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: +kdebase-workspace: diff --git a/source/kde/kdebase-workspace/xinit/xinitrc.kde b/source/kde/kdebase-workspace/xinit/xinitrc.kde new file mode 100755 index 000000000..2fda1fab2 --- /dev/null +++ b/source/kde/kdebase-workspace/xinit/xinitrc.kde @@ -0,0 +1,28 @@ +#!/bin/sh +# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f $userresources ]; then + xrdb -merge $userresources +fi + +if [ -f $usermodmap ]; then + xmodmap $usermodmap +fi + +# Start the window manager: +startkde diff --git a/source/kde/kdebase/config/kdeglobals b/source/kde/kdebase/config/kdeglobals new file mode 100644 index 000000000..25d446110 --- /dev/null +++ b/source/kde/kdebase/config/kdeglobals @@ -0,0 +1,4 @@ +[General] +XftAntialias=true +XftHintStyle=hintmedium +XftSubPixel=none diff --git a/source/kde/kdebase/doinst.sh b/source/kde/kdebase/doinst.sh new file mode 100644 index 000000000..85ff4d866 --- /dev/null +++ b/source/kde/kdebase/doinst.sh @@ -0,0 +1,4 @@ +#!/bin/sh +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi diff --git a/source/kde/kdebase/kdebase.SlackBuild b/source/kde/kdebase/kdebase.SlackBuild new file mode 100755 index 000000000..54a01f2a7 --- /dev/null +++ b/source/kde/kdebase/kdebase.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdebase + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdebase-$VERSION..." +tar xvf $CWD/../src/kdebase-$VERSION.tar.?z* || exit 1 +cd kdebase-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +# Add profile scripts +mkdir -p $PKG/etc/profile.d +cat $CWD/profile.d/kde.sh | sed -e "s#/lib/#/lib${LIBDIRSUFFIX}/#" \ + > $PKG/etc/profile.d/kde.sh +cat $CWD/profile.d/kde.csh | sed -e "s#/lib/#/lib${LIBDIRSUFFIX}/#" \ + > $PKG/etc/profile.d/kde.csh +chmod 0755 $PKG/etc/profile.d/* + +# "konsole -ls" is no longer valid syntax for konsole, even though it's +# still documented in the help manual. Here's a way to get the same +# thing, and it works here, but I honestly don't know how it will act +# everywhere with every shell. I just know it works with bash and ksh +sed -i 's/Exec=konsole/Exec=konsole -e $SHELL -l/' \ + $PKG/usr/share/applications/kde4/konsole.desktop + +## I find this a little bit too bright... <change by pjv> +## Change the konsole defaults to look like the real Linux console: +#sed -i 's/ColorScheme=Linux/ColorScheme=WhiteOnBlack/' \ +# $PKG/usr/share/apps/konsole/Shell.profile + +mkdir -p $PKG/usr/doc/kdebase-$VERSION +cp -a AUTHORS COPYING* README $PKG/usr/doc/kdebase-$VERSION || true + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdebase-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdebase/profile.d/kde.csh b/source/kde/kdebase/profile.d/kde.csh new file mode 100755 index 000000000..a09579bf1 --- /dev/null +++ b/source/kde/kdebase/profile.d/kde.csh @@ -0,0 +1,12 @@ +#!/bin/csh +# KDE additions: +if ( ! $?KDEDIRS ) then + setenv KDEDIRS /usr +endif +setenv PATH ${PATH}:/usr/lib/kde4/libexec + +if ( $?XDG_CONFIG_DIRS ) then + setenv XDG_CONFIG_DIRS ${XDG_CONFIG_DIRS}:/etc/kde/xdg +else + setenv XDG_CONFIG_DIRS /etc/xdg:/etc/kde/xdg +endif diff --git a/source/kde/kdebase/profile.d/kde.sh b/source/kde/kdebase/profile.d/kde.sh new file mode 100755 index 000000000..6f0199e2d --- /dev/null +++ b/source/kde/kdebase/profile.d/kde.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# KDE additions: +KDEDIRS=/usr +export KDEDIRS +PATH="$PATH:/usr/lib/kde4/libexec" +export PATH +if [ ! "$XDG_CONFIG_DIRS" = "" ]; then + XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:/etc/kde/xdg +else + XDG_CONFIG_DIRS=/etc/xdg:/etc/kde/xdg +fi +export XDG_CONFIG_DIRS + diff --git a/source/kde/kdebase/slack-desc b/source/kde/kdebase/slack-desc new file mode 100644 index 000000000..34e3c5d08 --- /dev/null +++ b/source/kde/kdebase/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdebase: kdebase (KDE base package) +kdebase: +kdebase: kdebase is the second mandatory package (besides kdelibs) for the +kdebase: K Desktop Environment. Here we have various applications and +kdebase: infrastructure files and libraries. +kdebase: +kdebase: +kdebase: +kdebase: +kdebase: +kdebase: diff --git a/source/kde/kdebindings/kdebindings.SlackBuild b/source/kde/kdebindings/kdebindings.SlackBuild new file mode 100755 index 000000000..a31407b91 --- /dev/null +++ b/source/kde/kdebindings/kdebindings.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdebindings + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdebindings-$VERSION..." +tar xvf $CWD/../src/kdebindings-$VERSION.tar.?z* || exit 1 +cd kdebindings-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# -DENABLE_PYKDE4:BOOL=OFF \ +mkdir -p build +cd build + #-DCMAKE_BACKWARDS_COMPATIBILITY:STRING="2.2" \ + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DENABLE_PHONON:BOOL=OFF \ + -DENABLE_PHONON_SMOKE:BOOL=OFF \ + -DENABLE_QYOTO:BOOL=OFF \ + -DENABLE_QSCINTILLA_SHARP:BOOL=OFF \ + -DENABLE_KIMONO:BOOL=OFF \ + -DBUILD_csharp:BOOL=OFF \ + -DENABLE_KHTML:BOOL=OFF \ + -DENABLE_PHONON_RUBY:BOOL=OFF \ + .. + # kdebindings has (in the past, on several occasions) barfed on multijobs, so no $NUMJOBS here: + make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdebindings-$VERSION +cp -a AUTHORS COPYING* INSTALL NEWS README \ + $PKG/usr/doc/kdebindings-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdebindings-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdebindings/slack-desc b/source/kde/kdebindings/slack-desc new file mode 100644 index 000000000..753edde91 --- /dev/null +++ b/source/kde/kdebindings/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdebindings: kdebindings +kdebindings: +kdebindings: KDE and most KDE applications are implemented using the C++ +kdebindings: programming language, but that doesn't mean you don't have a choice. +kdebindings: This package contains a number of bindings to other languages, +kdebindings: including scripting languages and other systems' programming +kdebindings: languages. +kdebindings: +kdebindings: +kdebindings: +kdebindings: diff --git a/source/kde/kdeedu/doinst.sh b/source/kde/kdeedu/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdeedu/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdeedu/kdeedu.SlackBuild b/source/kde/kdeedu/kdeedu.SlackBuild new file mode 100755 index 000000000..100212971 --- /dev/null +++ b/source/kde/kdeedu/kdeedu.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdeedu + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdeedu-$VERSION..." +tar xvf $CWD/../src/kdeedu-$VERSION.tar.?z* || exit 1 +cd kdeedu-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdeedu-$VERSION +cp -a COPYING* INSTALL README $PKG/usr/doc/kdeedu-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdeedu-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdeedu/slack-desc b/source/kde/kdeedu/slack-desc new file mode 100644 index 000000000..10b045bce --- /dev/null +++ b/source/kde/kdeedu/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdeedu: kdeedu +kdeedu: +kdeedu: Educational applications for KDE. +kdeedu: +kdeedu: +kdeedu: +kdeedu: +kdeedu: +kdeedu: +kdeedu: +kdeedu: diff --git a/source/kde/kdegames/doinst.sh b/source/kde/kdegames/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdegames/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdegames/kdegames.SlackBuild b/source/kde/kdegames/kdegames.SlackBuild new file mode 100755 index 000000000..71ed91ce7 --- /dev/null +++ b/source/kde/kdegames/kdegames.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdegames + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdegames-$VERSION..." +tar xvf $CWD/../src/kdegames-$VERSION.tar.?z* || exit 1 +cd kdegames-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdegames-$VERSION +cp -a AUTHORS COPYING* INSTALL README $PKG/usr/doc/kdegames-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdegames-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdegames/slack-desc b/source/kde/kdegames/slack-desc new file mode 100644 index 000000000..48ef0ea6b --- /dev/null +++ b/source/kde/kdegames/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdegames: kdegames +kdegames: +kdegames: A collection of games for the K Desktop Environment. +kdegames: +kdegames: +kdegames: +kdegames: +kdegames: +kdegames: +kdegames: +kdegames: diff --git a/source/kde/kdegraphics/doinst.sh b/source/kde/kdegraphics/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdegraphics/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdegraphics/kdegraphics.SlackBuild b/source/kde/kdegraphics/kdegraphics.SlackBuild new file mode 100755 index 000000000..50447b3f6 --- /dev/null +++ b/source/kde/kdegraphics/kdegraphics.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdegraphics + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdegraphics-$VERSION..." +tar xvf $CWD/../src/kdegraphics-$VERSION.tar.?z* || exit 1 +cd kdegraphics-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdegraphics-$VERSION +cp -a AUTHORS COPYING* INSTALL README \ + $PKG/usr/doc/kdegraphics-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdegraphics-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdegraphics/slack-desc b/source/kde/kdegraphics/slack-desc new file mode 100644 index 000000000..a06b949e3 --- /dev/null +++ b/source/kde/kdegraphics/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdegraphics: kdegraphics (KDE graphics programs) +kdegraphics: +kdegraphics: Graphics programs for KDE, including gwenview, kcolorchooser, +kdegraphics: kbackgroundsnapshot, kolourpaint, kruler, ksnapshot, okular, and +kdegraphics: xf86gammacfg. +kdegraphics: +kdegraphics: +kdegraphics: +kdegraphics: +kdegraphics: +kdegraphics: diff --git a/source/kde/kdelibs/doinst.sh b/source/kde/kdelibs/doinst.sh new file mode 100644 index 000000000..d7006c70a --- /dev/null +++ b/source/kde/kdelibs/doinst.sh @@ -0,0 +1,9 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + +if [ -x usr/bin/update-mime-database ]; then + /usr/bin/update-mime-database /usr/share/mime >/dev/null 2>&1 +fi + diff --git a/source/kde/kdelibs/fixPopupForPlasmaboard.diff b/source/kde/kdelibs/fixPopupForPlasmaboard.diff new file mode 100644 index 000000000..cf6dec7ca --- /dev/null +++ b/source/kde/kdelibs/fixPopupForPlasmaboard.diff @@ -0,0 +1,43 @@ +Index: kdelibs/plasma/popupapplet.cpp +=================================================================== +--- kdelibs/plasma/popupapplet.cpp (Revision 976120) ++++ kdelibs/plasma/popupapplet.cpp (Arbeitskopie) +@@ -275,11 +275,7 @@ + //stuff out of your Dialog (extenders). Monitor WindowDeactivate events so we can + //emulate the same kind of behavior as Qt::Popup (close when you click somewhere + //else. +- dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); +- updateDialogFlags(); +- KWindowSystem::setState(dialog->winId(), NET::SkipTaskbar | NET::SkipPager); +- dialog->installEventFilter(q); +- ++ + q->setMinimumSize(QSize(0, 0)); + if (gWidget) { + Corona *corona = qobject_cast<Corona *>(gWidget->scene()); +@@ -289,14 +285,25 @@ + corona->addOffscreenWidget(gWidget); + dialog->setGraphicsWidget(gWidget); + } ++ ++ dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | (gWidget->windowFlags() & Qt::X11BypassWindowManagerHint)); + } else if (qWidget) { + QVBoxLayout *l_layout = new QVBoxLayout(dialog); + l_layout->setSpacing(0); + l_layout->setMargin(0); + l_layout->addWidget(qWidget); + dialog->adjustSize(); ++ ++ dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | (qWidget->windowFlags() & Qt::X11BypassWindowManagerHint)); + } ++ else { ++ dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); ++ } ++ updateDialogFlags(); ++ KWindowSystem::setState(dialog->winId(), NET::SkipTaskbar | NET::SkipPager); ++ dialog->installEventFilter(q); + ++ + QObject::connect(dialog, SIGNAL(dialogResized()), q, SLOT(dialogSizeChanged())); + QObject::connect(dialog, SIGNAL(dialogVisible(bool)), q, SLOT(dialogStatusChanged(bool))); + } diff --git a/source/kde/kdelibs/kdelibs.SlackBuild b/source/kde/kdelibs/kdelibs.SlackBuild new file mode 100755 index 000000000..656ee6678 --- /dev/null +++ b/source/kde/kdelibs/kdelibs.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdelibs + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdelibs-$VERSION..." +tar xvf $CWD/../src/kdelibs-$VERSION.tar.?z* || exit 1 +cd kdelibs-$VERSION + +zcat $CWD/fixPopupForPlasmaboard.diff.gz | patch -p1 --verbose || exit 1 +( cd kdesu + zcat $CWD/kdesu-allow_NOPASS_in_suauth.patch.gz | patch -p1 --verbose || exit 1 +) || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DKDE_DISTRIBUTION_TEXT="volkerdi@slackware.com" \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdelibs-$VERSION +cp -a AUTHORS COPYING* DEBUG INSTALL README TODO \ + $PKG/usr/doc/kdelibs-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdelibs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdelibs/kdesu-allow_NOPASS_in_suauth.patch b/source/kde/kdelibs/kdesu-allow_NOPASS_in_suauth.patch new file mode 100644 index 000000000..8d2168c3a --- /dev/null +++ b/source/kde/kdelibs/kdesu-allow_NOPASS_in_suauth.patch @@ -0,0 +1,94 @@ +diff -Naur kdesu/stub.cpp kdesu.new/stub.cpp +--- kdesu/stub.cpp 2008-05-21 08:08:55.000000000 -0300 ++++ kdesu.new/stub.cpp 2009-08-06 04:06:43.000000000 -0300 +@@ -111,7 +111,7 @@ + if (line.isNull()) + return -1; + +- if (line == "kdesu_stub") ++ if ((line == "kdesu_stub")||(line == "Password authentication bypassed.")) + { + // This makes parsing a lot easier. + enableLocalEcho(false); +diff -Naur kdesu/su.cpp kdesu.new/su.cpp +--- kdesu/su.cpp 2008-05-21 08:08:55.000000000 -0300 ++++ kdesu.new/su.cpp 2009-08-06 04:10:55.000000000 -0300 +@@ -163,7 +163,7 @@ + } + // kDebug(900) << k_lineinfo << "Done StubProcess::exec()"; + +- SuErrors ret = (SuErrors) ConverseSU(password); ++ SuErrors ret = (SuErrors) ConverseSU(password,check); + // kDebug(900) << k_lineinfo << "Conversation returned " << ret; + + if (ret == error) +@@ -172,6 +172,7 @@ + kError(900) << k_lineinfo << "Conversation with su failed\n"; + return ret; + } ++ + if (check == NeedPassword) + { + if (ret == killme) +@@ -235,10 +236,10 @@ + + /* + * Conversation with su: feed the password. +-* Return values: -1 = error, 0 = ok, 1 = kill me, 2 not authorized ++* Return values: -1 = error, 0 = ok, 1 = kill me, 2 = not authorized + */ + +-int SuProcess::ConverseSU(const char *password) ++int SuProcess::ConverseSU(const char *password, int check) + { + enum { WaitForPrompt, CheckStar, HandleStub } state = WaitForPrompt; + int colon; +@@ -265,6 +266,27 @@ + return ok; + } + ++ if (line == "Password authentication bypassed.") ++ { ++ if (check == 2) ++ { ++ unreadLine(line); ++ return ok; ++ } ++ else ++ { ++ if (checkPid(m_Pid)) ++ { ++ state=HandleStub; ++ } ++ else ++ { ++ return error; ++ } ++ } ++ break; ++ } ++ + while(waitMS(fd(),100)>0) + { + // There is more output available, so the previous line +@@ -293,7 +315,7 @@ + } + if ((colon == 1) && (line[j] == ':')) + { +- if (password == 0L) ++ if (password == 0L) + return killme; + if (!checkPid(m_Pid)) + { +diff -Naur kdesu/su.h kdesu.new/su.h +--- kdesu/su.h 2008-05-21 08:08:55.000000000 -0300 ++++ kdesu.new/su.h 2009-08-06 02:50:02.000000000 -0300 +@@ -62,7 +62,7 @@ + + private: + enum SuErrors { error=-1, ok=0, killme=1, notauthorized=2 } ; +- int ConverseSU(const char *password); ++ int ConverseSU(const char *password, int check=NoCheck); + + protected: + virtual void virtual_hook( int id, void* data ); diff --git a/source/kde/kdelibs/local.options b/source/kde/kdelibs/local.options new file mode 100644 index 000000000..a837340db --- /dev/null +++ b/source/kde/kdelibs/local.options @@ -0,0 +1 @@ +BUILD=3 diff --git a/source/kde/kdelibs/slack-desc b/source/kde/kdelibs/slack-desc new file mode 100644 index 000000000..a07f7efff --- /dev/null +++ b/source/kde/kdelibs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdelibs: kdelibs (KDE libraries) +kdelibs: +kdelibs: System libraries and other resources required by KDE. +kdelibs: +kdelibs: +kdelibs: +kdelibs: +kdelibs: +kdelibs: +kdelibs: +kdelibs: diff --git a/source/kde/kdemultimedia/doinst.sh b/source/kde/kdemultimedia/doinst.sh new file mode 100644 index 000000000..22d4849bc --- /dev/null +++ b/source/kde/kdemultimedia/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdemultimedia/kdemultimedia.SlackBuild b/source/kde/kdemultimedia/kdemultimedia.SlackBuild new file mode 100755 index 000000000..6878e632c --- /dev/null +++ b/source/kde/kdemultimedia/kdemultimedia.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdemultimedia + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdemultimedia-$VERSION..." +tar xvf $CWD/../src/kdemultimedia-$VERSION.tar.?z* || exit 1 +cd kdemultimedia-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdemultimedia-$VERSION +cp -a AUTHORS COPYING* INSTALL README $PKG/usr/doc/kdemultimedia-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdemultimedia-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdemultimedia/slack-desc b/source/kde/kdemultimedia/slack-desc new file mode 100644 index 000000000..f8c47eadf --- /dev/null +++ b/source/kde/kdemultimedia/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdemultimedia: kdemultimedia +kdemultimedia: +kdemultimedia: Multimedia applications for KDE including: +kdemultimedia: * noatun: a multimedia player for sound and movies +kdemultimedia: * kmix: the audio mixer as a standalone program and Kicker applet +kdemultimedia: * kscd: A CD player with an interface to the internet CDDB database +kdemultimedia: * phonon-xine: A Phonon backend based on Xine +kdemultimedia: +kdemultimedia: +kdemultimedia: +kdemultimedia: diff --git a/source/kde/kdenetwork/doinst.sh b/source/kde/kdenetwork/doinst.sh new file mode 100644 index 000000000..22d4849bc --- /dev/null +++ b/source/kde/kdenetwork/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdenetwork/kdenetwork.SlackBuild b/source/kde/kdenetwork/kdenetwork.SlackBuild new file mode 100755 index 000000000..6939ad4c7 --- /dev/null +++ b/source/kde/kdenetwork/kdenetwork.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdenetwork + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdenetwork-$VERSION..." +tar xvf $CWD/../src/kdenetwork-$VERSION.tar.?z* || exit 1 +cd kdenetwork-$VERSION + +zcat $CWD/kopete-r986796.diff.gz | patch -p4 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdenetwork-$VERSION +cp -a COPYING* INSTALL README $PKG/usr/doc/kdenetwork-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdenetwork-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdenetwork/kopete-r986796.diff b/source/kde/kdenetwork/kopete-r986796.diff new file mode 100644 index 000000000..a251b3288 --- /dev/null +++ b/source/kde/kdenetwork/kopete-r986796.diff @@ -0,0 +1,396 @@ +Index: branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.h +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.h (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.h (revision 986796) +@@ -26,7 +26,13 @@ + + class QString; + class YMSGTransfer; ++class KJob; + ++namespace KIO ++{ ++ class Job; ++} ++ + /** + @author Duncan Mac-Vicar + */ +@@ -58,6 +64,15 @@ + void sendAuthResp_pre_0x0b(const QString &sn, const QString &seed); + void handleAuthResp(YMSGTransfer *transfer); + void parseCookies( YMSGTransfer *transfer ); ++ void sendAuthSixteenStage1(const QString& sn, const QString& seed); ++ void sendAuthSixteenStage2(const QString& token); ++ void sendAuthSixteenStage3(const QString& cryptString); ++protected Q_SLOTS: ++ void handleAuthSixteenStage1Data(KIO::Job*, const QByteArray& data); ++ void handleAuthSixteenStage1Result(KJob*); ++ void handleAuthSixteenStage2Data(KIO::Job*, const QByteArray& data); ++ void handleAuthSixteenStage2Result(KJob*); ++ + signals: + void haveSessionID( uint ); + void haveCookies(); +@@ -71,6 +86,10 @@ + QString m_cCookie; + QString m_loginCookie; + QString m_verificationWord; ++ QString m_stage1Data; ++ QString m_stage2Data; ++ QString m_challengeString; ++ uint m_sessionID; + }; + + #endif +Index: branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.cpp +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.cpp (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/libkyahoo/logintask.cpp (revision 986796) +@@ -3,10 +3,10 @@ + Handles logging into to the Yahoo service + + Copyright (c) 2004 Duncan Mac-Vicar P. <duncan@kde.org> +- + Copyright (c) 2005-2006 André Duffeck <duffeck@kde.org> ++ Copyright 2009 Matt Rogers <mattr@kde.org> + +- Kopete (c) 2002-2006 by the Kopete developers <kopete-devel@kde.org> ++ Kopete (c) 2002-2009 by the Kopete developers <kopete-devel@kde.org> + + ************************************************************************* + * * +@@ -28,6 +28,10 @@ + #include <qstring.h> + #include <kdebug.h> + #include <stdlib.h> ++ ++#include <QCryptographicHash> ++#include <KDE/KJob> ++#include <KDE/KIO/Job> + extern "C" + { + #include "libyahoo.h" +@@ -177,52 +181,197 @@ + + QString sn = t->firstParam( 1 ); + QString seed = t->firstParam( 94 ); ++ m_challengeString = seed; + QString version_s = t->firstParam( 13 ); +- uint sessionID = t->id(); ++ m_sessionID = t->id(); + int version = version_s.toInt(); + + switch (version) + { + case 0: +- kDebug(YAHOO_RAW_DEBUG) << " Version pre 0x0b "<< version_s; +- break; ++ case 1: ++ case 2: ++ kDebug(YAHOO_RAW_DEBUG) << "Using version 16 authorization" << endl; ++ sendAuthSixteenStage1(sn, seed); ++ break; + default: +- kDebug(YAHOO_RAW_DEBUG) << " Version 0x0b "<< version_s; +- sendAuthResp_0x0b(sn, seed, sessionID); ++ kWarning(YAHOO_RAW_DEBUG) << "Unknown authentication method used!" ++ << "Attempting current authentication anyways"; ++ sendAuthSixteenStage1(sn, seed); + break; + } + mState = SentAuthResp; + +- emit haveSessionID( sessionID ); ++ emit haveSessionID( m_sessionID ); + } + +-void LoginTask::sendAuthResp_0x0b(const QString &sn, const QString &seed, uint sessionID) ++void LoginTask::sendAuthSixteenStage1(const QString& sn, const QString& seed) + { +- kDebug(YAHOO_RAW_DEBUG) << " with seed " << seed; +- char *resp_6 = (char *) malloc(100); +- char *resp_96 = (char *) malloc(100); +- authresp_0x0b(seed.toLatin1(), sn.toLatin1(), (client()->password()).toLatin1(), resp_6, resp_96); +- kDebug(YAHOO_RAW_DEBUG) << "resp_6: " << resp_6 << " resp_69: " << resp_96; ++ const QString YahooTokenUrl = "https://login.yahoo.com/config/pwtoken_get?src=ymsgr&ts=&login=%1&passwd=%2&chal=%3"; ++ kDebug(YAHOO_RAW_DEBUG) << "seed:" << seed; ++ m_stage1Data.clear(); ++ /* construct a URL from the seed and request tokens */ ++ QByteArray encodedUrl; ++ QString fullUrl = YahooTokenUrl.arg(sn, client()->password(), seed); ++ KUrl tokenUrl(fullUrl); ++ KIO::Job* job = KIO::get(tokenUrl, KIO::Reload, KIO::HideProgressInfo); ++ connect(job, SIGNAL(data(KIO::Job*, const QByteArray&)), ++ this, SLOT(handleAuthSixteenStage1Data(KIO::Job*, const QByteArray&))); ++ connect(job, SIGNAL(result(KJob*)), ++ this, SLOT(handleAuthSixteenStage1Result(KJob*))); ++} ++ ++void LoginTask::handleAuthSixteenStage1Data(KIO::Job* job, const QByteArray& data) ++{ ++ kDebug(YAHOO_RAW_DEBUG) << "data:" << data; ++ m_stage1Data.append(data); ++} ++ ++void LoginTask::handleAuthSixteenStage1Result(KJob* job) ++{ ++ int responseNumber = -1; ++ QString token; ++ int error = job->error(); ++ kDebug(YAHOO_RAW_DEBUG) << "error:" << error; ++ if (error == 0) ++ { ++ QStringList responses = m_stage1Data.split("\r\n"); ++ if (responses.count() >= 3) ++ { ++ responseNumber = responses[0].toInt(); ++ token = responses[1]; ++ token.remove("ymsgr="); ++ kDebug(YAHOO_RAW_DEBUG) << "response is:" << responseNumber; ++ kDebug(YAHOO_RAW_DEBUG) << "token is:" << token; ++ } ++ ++ if (responseNumber != 0) ++ { ++ switch(responseNumber) ++ { ++ case -1: ++ /* error in the received stream */ ++ emit loginResponse(Yahoo::LoginSock, QString()); ++ kDebug(YAHOO_RAW_DEBUG) << "unknown error logging in"; ++ break; ++ case 1212: ++ /* password incorrect */ ++ emit loginResponse(Yahoo::LoginPasswd, QString()); ++ kDebug(YAHOO_RAW_DEBUG) << "password incorrect"; ++ break; ++ case 1213: ++ /* security lock */ ++ emit loginResponse(Yahoo::LoginLock, QString()); ++ break; ++ case 1235: ++ /* username does not exist */ ++ emit loginResponse(Yahoo::LoginUname, QString()); ++ kDebug(YAHOO_RAW_DEBUG) << "user does not exist"; ++ break; ++ case 1214: ++ case 1236: ++ emit loginResponse(Yahoo::LoginVerify, QString()); ++ break; ++ case 100: /* username or password missing */ ++ /*FIXME handle this */ ++ break; ++ default: ++ /* FIXME unknown error. handle it! */ ++ break; ++ } ++ } ++ else ++ { ++ /* start stage 2 here */ ++ sendAuthSixteenStage2(token); ++ } ++ } ++} ++ ++void LoginTask::sendAuthSixteenStage2(const QString& token) ++{ ++ const QString YahooLoginUrl = "https://login.yahoo.com/config/pwtoken_login?src=ymsgr&ts=&token=%1"; ++ kDebug(YAHOO_RAW_DEBUG) << "token:" << token; ++ m_stage2Data.clear(); ++ QString fullUrl = YahooLoginUrl.arg(token); ++ KUrl loginUrl(fullUrl); ++ KIO::Job* job = KIO::get(loginUrl, KIO::Reload, KIO::HideProgressInfo); ++ connect(job, SIGNAL(data(KIO::Job*, const QByteArray&)), ++ this, SLOT(handleAuthSixteenStage2Data(KIO::Job*, const QByteArray&))); ++ connect(job, SIGNAL(result(KJob*)), ++ this, SLOT(handleAuthSixteenStage2Result(KJob*))); ++} ++ ++void LoginTask::handleAuthSixteenStage2Data(KIO::Job*, const QByteArray& data) ++{ ++ kDebug(YAHOO_RAW_DEBUG) << "data:" << data; ++ m_stage2Data.append(data); ++} ++ ++void LoginTask::handleAuthSixteenStage2Result(KJob* job) ++{ ++ QString crumb; ++ int responseNumber = -1; ++ int error = job->error(); ++ kDebug(YAHOO_RAW_DEBUG) << "error:" << error; ++ if (error == 0) ++ { ++ QStringList responses = m_stage2Data.split("\r\n"); ++ kDebug(YAHOO_RAW_DEBUG) << responses; ++ responseNumber = responses[0].toInt(); ++ if (responseNumber == 0) ++ { ++ crumb = responses[1]; ++ crumb.remove("crumb="); ++ m_yCookie = responses[2].remove(0,2); /* remove Y= */ ++ m_tCookie = responses[3].remove(0,2); /* remove T= */ ++ } ++ ++ if (responseNumber != 0) ++ { ++ switch(responseNumber) ++ { ++ case -1: ++ emit loginResponse(Yahoo::LoginSock, QString()); ++ break; ++ case 100: ++ emit loginResponse(Yahoo::LoginSock, QString()); ++ break; ++ default: /* try to login anyways */ ++ break; ++ } ++ } ++ else ++ { ++ QString cryptString = crumb; ++ cryptString.append(m_challengeString); ++ sendAuthSixteenStage3(cryptString); ++ } ++ } ++} ++ ++void LoginTask::sendAuthSixteenStage3(const QString& cryptString) ++{ ++ kDebug(YAHOO_RAW_DEBUG) << " with crypt string" << cryptString; ++ QByteArray cryptStringHash = QCryptographicHash::hash( cryptString.toAscii(), ++ QCryptographicHash::Md5 ); ++ cryptStringHash = cryptStringHash.toBase64(); ++ cryptStringHash = cryptStringHash.replace('+', '.'); ++ cryptStringHash = cryptStringHash.replace('/', '_'); ++ cryptStringHash = cryptStringHash.replace('=', '-'); ++ + YMSGTransfer *t = new YMSGTransfer(Yahoo::ServiceAuthResp, m_stateOnConnect); +- t->setId( sessionID ); +- t->setParam( 0 , sn.toLocal8Bit()); +- t->setParam( 2 , sn.toLocal8Bit()); ++ t->setId( m_sessionID ); ++ t->setParam( 1, client()->userId().toLocal8Bit()); ++ t->setParam( 0 , client()->userId().toLocal8Bit()); ++ t->setParam( 277, m_yCookie.toLocal8Bit() ); ++ t->setParam( 278, m_tCookie.toLocal8Bit() ); ++ t->setParam( 307, cryptStringHash ); ++ t->setParam( 244, 2097087 ); ++ t->setParam( 2 , client()->userId().toLocal8Bit()); + t->setParam( 2, 1 ); // Both parameter 2s wind up in the packet +- t->setParam( 6 , resp_6); +- t->setParam( 1, sn.toLocal8Bit()); +- t->setParam( 244, 2097087 ); + t->setParam( 135, YMSG_PROGRAM_VERSION_STRING ); +- t->setParam( 148, 480 ); +- t->setParam( 59 , "B\\tfckeert1kk1nl&b=2" ); // ??? + +- if( !m_verificationWord.isEmpty() ) +- { +- t->setParam( 227 , m_verificationWord.toLocal8Bit() ); +- m_verificationWord.clear(); +- } +- +- free(resp_6); +- free(resp_96); + send(t); + + } +Index: branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooeditaccount.cpp +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooeditaccount.cpp (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooeditaccount.cpp (revision 986796) +@@ -63,9 +63,9 @@ + mAutoConnect->setChecked(acct->excludeConnect()); + mPasswordWidget->load( &acct->password() ); + +- QString pagerServer = account()->configGroup()->readEntry("Server", "scs.msg.yahoo.com"); ++ QString pagerServer = account()->configGroup()->readEntry("Server", "scsa.msg.yahoo.com"); + int pagerPort = account()->configGroup()->readEntry("Port", 5050); +- if( pagerServer != "scs.msg.yahoo.com" || pagerPort != 5050 ) ++ if( pagerServer != "scsa.msg.yahoo.com" || pagerPort != 5050 ) + optionOverrideServer->setChecked( true ); + else + optionOverrideServer->setChecked( false ); +@@ -133,7 +133,7 @@ + } + else + { +- yahooAccount->setServer( "scs.msg.yahoo.com" ); ++ yahooAccount->setServer( "scsa.msg.yahoo.com" ); + yahooAccount->setPort( 5050 ); + } + +Index: branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/protocols/yahoo/yahooaccount.cpp (revision 986796) +@@ -539,7 +539,7 @@ + return; + } + +- QString server = configGroup()->readEntry( "Server", "scs.msg.yahoo.com" ); ++ QString server = configGroup()->readEntry( "Server", "scsa.msg.yahoo.com" ); + int port = configGroup()->readEntry( "Port", 5050 ); + + initConnectionSignals( MakeConnections ); +Index: branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.upd +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.upd (revision 0) ++++ branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.upd (revision 986796) +@@ -0,0 +1,4 @@ ++Id=kopete-update-yahoo-server/r1 ++File=kopeterc ++Options=overwrite ++Script=kopete-update_yahoo_server.pl,perl +Index: branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.pl +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.pl (revision 0) ++++ branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.pl (revision 986796) +@@ -0,0 +1,20 @@ ++#!/usr/bin/perl ++ ++# Rename the old Gaim style to Pidgin ++ ++my $inYahoo = 0; ++foreach (<>) { ++ $inYahoo = 1 if (/^\[Account_YahooProtocol_.*$/); ++ if ($inYahoo) { ++ if (/^Server\=(.*)/) { ++ my $oldServer = $1; ++ if ($oldServer =~ m/\.yahoo\.com$/) { ++ print "Server=scsa.msg.yahoo.com\n"; ++ $inYahoo = 0; ++ next; ++ } ++ } ++ } ++ ++ print $_; ++} + +Property changes on: branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/kopete-update_yahoo_server.pl +___________________________________________________________________ +Added: svn:executable + + * + +Index: branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/CMakeLists.txt +=================================================================== +--- branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/CMakeLists.txt (revision 986795) ++++ branches/KDE/4.2/kdenetwork/kopete/kopete/kconf_update/CMakeLists.txt (revision 986796) +@@ -4,10 +4,11 @@ + endif(NOT WIN32) + + +-install( FILES kopete-pluginloader.upd kopete-nameTracking.upd kopete-initialstatus.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) ++install( FILES kopete-pluginloader.upd kopete-nameTracking.upd kopete-initialstatus.upd kopete-update_yahoo_server.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) + +-install( PROGRAMS kopete-pluginloader.pl +- kopete-account-0.10.pl kopete-initialstatus.pl DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) ++install( PROGRAMS kopete-pluginloader.pl kopete-update_yahoo_server.pl ++ kopete-account-0.10.pl kopete-initialstatus.pl ++ DESTINATION ${KCONF_UPDATE_INSTALL_DIR}) + + + #TODO kconf_program ? diff --git a/source/kde/kdenetwork/local.options b/source/kde/kdenetwork/local.options new file mode 100644 index 000000000..aae3c765c --- /dev/null +++ b/source/kde/kdenetwork/local.options @@ -0,0 +1 @@ +BUILD=2 diff --git a/source/kde/kdenetwork/slack-desc b/source/kde/kdenetwork/slack-desc new file mode 100644 index 000000000..03fdd8fd9 --- /dev/null +++ b/source/kde/kdenetwork/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdenetwork: kdenetwork (network utilities for KDE) +kdenetwork: +kdenetwork: Network related utilities for the K Desktop Environment. +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: +kdenetwork: diff --git a/source/kde/kdepim/doinst.sh b/source/kde/kdepim/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdepim/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdepim/kdepim.SlackBuild b/source/kde/kdepim/kdepim.SlackBuild new file mode 100755 index 000000000..ea4c5d8f8 --- /dev/null +++ b/source/kde/kdepim/kdepim.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdepim + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdepim-$VERSION..." +tar xvf $CWD/../src/kdepim-$VERSION.tar.?z* || exit 1 +cd kdepim-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdepim-$VERSION +cp -a COPYING* MAINTAINERS README* $PKG/usr/doc/kdepim-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdepim-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdepim/slack-desc b/source/kde/kdepim/slack-desc new file mode 100644 index 000000000..9427ca458 --- /dev/null +++ b/source/kde/kdepim/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +kdepim: kdepim +kdepim: +kdepim: The KDE-PIM project aims to bring together those who wish to help +kdepim: design, implement, test, etc. anything that's to do with personal +kdepim: information management. +kdepim: +kdepim: This rather broad scope encompasses mail clients, addressbooks, +kdepim: usenet news, scheduling, and even sticky notes. +kdepim: +kdepim: +kdepim: diff --git a/source/kde/kdepimlibs/kdepimlibs.SlackBuild b/source/kde/kdepimlibs/kdepimlibs.SlackBuild new file mode 100755 index 000000000..e8c760c1e --- /dev/null +++ b/source/kde/kdepimlibs/kdepimlibs.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdepimlibs + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdepimlibs-$VERSION..." +tar xvf $CWD/../src/kdepimlibs-$VERSION.tar.?z* || exit 1 +cd kdepimlibs-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdepimlibs-$VERSION +cp -a COPYING* DEBUG HACKING MAINTAINERS PLAN POLICIES README* \ + $PKG/usr/doc/kdepimlibs-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdepimlibs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdepimlibs/slack-desc b/source/kde/kdepimlibs/slack-desc new file mode 100644 index 000000000..b858aed65 --- /dev/null +++ b/source/kde/kdepimlibs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdepimlibs: kdepimlibs +kdepimlibs: +kdepimlibs: This module includes libraries that are central to the development and +kdepimlibs: execution of a KDE-PIM application. +kdepimlibs: +kdepimlibs: +kdepimlibs: +kdepimlibs: +kdepimlibs: +kdepimlibs: +kdepimlibs: diff --git a/source/kde/kdeplasma-addons/doinst.sh b/source/kde/kdeplasma-addons/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdeplasma-addons/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdeplasma-addons/kdeplasma-addons.SlackBuild b/source/kde/kdeplasma-addons/kdeplasma-addons.SlackBuild new file mode 100755 index 000000000..9a1158f29 --- /dev/null +++ b/source/kde/kdeplasma-addons/kdeplasma-addons.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdeplasma-addons + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdeplasma-addons-$VERSION..." +tar xvf $CWD/../src/kdeplasma-addons-$VERSION.tar.?z* || exit 1 +cd kdeplasma-addons-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdeplasma-addons-$VERSION +cp -a COPYING* $PKG/usr/doc/kdeplasma-addons-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdeplasma-addons-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdeplasma-addons/slack-desc b/source/kde/kdeplasma-addons/slack-desc new file mode 100644 index 000000000..be77dc019 --- /dev/null +++ b/source/kde/kdeplasma-addons/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdeplasma-addons: kdeplasma-addons (Plasma addons for KDE) +kdeplasma-addons: +kdeplasma-addons: Plasmoids (or widgets) for the KDE 4 Plasma desktop shell. +kdeplasma-addons: +kdeplasma-addons: +kdeplasma-addons: +kdeplasma-addons: +kdeplasma-addons: +kdeplasma-addons: +kdeplasma-addons: +kdeplasma-addons: diff --git a/source/kde/kdesdk/doinst.sh b/source/kde/kdesdk/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdesdk/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdesdk/kdesdk.SlackBuild b/source/kde/kdesdk/kdesdk.SlackBuild new file mode 100755 index 000000000..4730478e9 --- /dev/null +++ b/source/kde/kdesdk/kdesdk.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdesdk + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdesdk-$VERSION..." +tar xvf $CWD/../src/kdesdk-$VERSION.tar.?z* || exit 1 +cd kdesdk-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdesdk-$VERSION +cp -a COPYING* README $PKG/usr/doc/kdesdk-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdesdk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdesdk/slack-desc b/source/kde/kdesdk/slack-desc new file mode 100644 index 000000000..97aee6f28 --- /dev/null +++ b/source/kde/kdesdk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +kdesdk: kdesdk +kdesdk: +kdesdk: KDE Software Development Kit. This is a collection of applications +kdesdk: and tools used by KDE developers. It also has example code for use +kdesdk: in learning KDE programming or starting a new KDE application. +kdesdk: +kdesdk: +kdesdk: +kdesdk: +kdesdk: +kdesdk: diff --git a/source/kde/kdetoys/doinst.sh b/source/kde/kdetoys/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdetoys/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdetoys/kdetoys.SlackBuild b/source/kde/kdetoys/kdetoys.SlackBuild new file mode 100755 index 000000000..c086ea506 --- /dev/null +++ b/source/kde/kdetoys/kdetoys.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdetoys + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdetoys-$VERSION..." +tar xvf $CWD/../src/kdetoys-$VERSION.tar.?z* || exit 1 +cd kdetoys-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdetoys-$VERSION +cp -a AUTHORS COPYING* README $PKG/usr/doc/kdetoys-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdetoys-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdetoys/slack-desc b/source/kde/kdetoys/slack-desc new file mode 100644 index 000000000..b08036be0 --- /dev/null +++ b/source/kde/kdetoys/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdetoys: kdetoys (toys for KDE) +kdetoys: +kdetoys: Some toys for use with KDE such as amor, kteatime, ktux, +kdetoys: kweatherreport, and kweatherservice. +kdetoys: +kdetoys: +kdetoys: +kdetoys: +kdetoys: +kdetoys: +kdetoys: diff --git a/source/kde/kdeutils/doinst.sh b/source/kde/kdeutils/doinst.sh new file mode 100644 index 000000000..22d4849bc --- /dev/null +++ b/source/kde/kdeutils/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdeutils/kdeutils.SlackBuild b/source/kde/kdeutils/kdeutils.SlackBuild new file mode 100755 index 000000000..91f0a0280 --- /dev/null +++ b/source/kde/kdeutils/kdeutils.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdeutils + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdeutils-$VERSION..." +tar xvf $CWD/../src/kdeutils-$VERSION.tar.?z* || exit 1 +cd kdeutils-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdeutils-$VERSION +cp -a AUTHORS COPYING* INSTALL README $PKG/usr/doc/kdeutils-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdeutils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdeutils/slack-desc b/source/kde/kdeutils/slack-desc new file mode 100644 index 000000000..9b0cd18c9 --- /dev/null +++ b/source/kde/kdeutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler---------------------------------------------------| +kdeutils: kdeutils +kdeutils: +kdeutils: This package includes various utilities for KDE such as ark, kcalc, +kdeutils: kcharselect, kdessh, kdf, kfloppy, kgpg, ktimer, kwalletmanager, +kdeutils: kwikdisk, okteta, superkaramba, and sweeper. +kdeutils: +kdeutils: +kdeutils: +kdeutils: +kdeutils: +kdeutils: diff --git a/source/kde/kdevelop/doinst.sh b/source/kde/kdevelop/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdevelop/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdevelop/kdevelop.SlackBuild b/source/kde/kdevelop/kdevelop.SlackBuild new file mode 100755 index 000000000..8ae15058e --- /dev/null +++ b/source/kde/kdevelop/kdevelop.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdevelop + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdevelop-$VERSION..." +tar xvf $CWD/../src/kdevelop-$VERSION.tar.?z* || exit 1 +cd kdevelop-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdevelop-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog HACKING* NEWS README* TODO \ + $PKG/usr/doc/kdevelop-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdevelop-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdevelop/local.options b/source/kde/kdevelop/local.options new file mode 100644 index 000000000..6cd6aa66b --- /dev/null +++ b/source/kde/kdevelop/local.options @@ -0,0 +1 @@ +VERSION=3.9.91 diff --git a/source/kde/kdevelop/slack-desc b/source/kde/kdevelop/slack-desc new file mode 100644 index 000000000..bdf047d5f --- /dev/null +++ b/source/kde/kdevelop/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdevelop: kdevelop (KDE development environment) +kdevelop: +kdevelop: The KDevelop integrated C/C++ application development environment. +kdevelop: +kdevelop: +kdevelop: +kdevelop: +kdevelop: +kdevelop: +kdevelop: +kdevelop: diff --git a/source/kde/kdevplatform/doinst.sh b/source/kde/kdevplatform/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdevplatform/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdevplatform/kdevplatform.SlackBuild b/source/kde/kdevplatform/kdevplatform.SlackBuild new file mode 100755 index 000000000..870c29a84 --- /dev/null +++ b/source/kde/kdevplatform/kdevplatform.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdevplatform + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building kdevplatform-$VERSION..." +tar xvf $CWD/../src/kdevplatform-$VERSION.tar.?z* || exit 1 +cd kdevplatform-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdevplatform-$VERSION +cp -a \ + COPYING* ChangeLog NEWS README TODO \ + $PKG/usr/doc/kdevplatform-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdevplatform-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdevplatform/local.options b/source/kde/kdevplatform/local.options new file mode 100644 index 000000000..210f53e4d --- /dev/null +++ b/source/kde/kdevplatform/local.options @@ -0,0 +1 @@ +VERSION=0.9.91 diff --git a/source/kde/kdevplatform/slack-desc b/source/kde/kdevplatform/slack-desc new file mode 100644 index 000000000..04fe68c9e --- /dev/null +++ b/source/kde/kdevplatform/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kdevplatform: kdevplatform (KDE development platform) +kdevplatform: +kdevplatform: This KDE module provides libraries used by kdevelop. +kdevplatform: +kdevplatform: +kdevplatform: +kdevplatform: +kdevplatform: +kdevplatform: +kdevplatform: +kdevplatform: diff --git a/source/kde/kdewebdev/doinst.sh b/source/kde/kdewebdev/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/kdewebdev/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/kdewebdev/kde4-kdewebdev-findtidy.diff b/source/kde/kdewebdev/kde4-kdewebdev-findtidy.diff new file mode 100644 index 000000000..b3789bdd3 --- /dev/null +++ b/source/kde/kdewebdev/kde4-kdewebdev-findtidy.diff @@ -0,0 +1,24 @@ +--- cmake/modules/FindLibTidy.cmake.old 2008-07-25 21:47:38.156473750 +0200 ++++ cmake/modules/FindLibTidy.cmake 2008-07-25 21:47:50.709258250 +0200 +@@ -17,7 +17,7 @@ + set(LibTidy_FIND_QUIETLY TRUE) + endif (LIBTIDY_INCLUDE_DIR) + +-FIND_PATH(LIBTIDY_INCLUDE_DIR tidy.h) ++FIND_PATH(LIBTIDY_INCLUDE_DIR tidy/tidy.h tidy.h) + + + FIND_LIBRARY(LIBTIDY_LIBRARIES NAMES tidy) +--- klinkstatus/src/tidy/tidyx.h.old 2008-07-25 21:48:23.151285750 +0200 ++++ klinkstatus/src/tidy/tidyx.h 2008-07-25 21:48:36.464117750 +0200 +@@ -48,8 +48,8 @@ + Created 2002-07-11 by Charles Reitzel + */ + +-#include <tidy.h> +-#include <buffio.h> ++#include <tidy/tidy.h> ++#include <tidy/buffio.h> + + #include <config-tidy.h> + diff --git a/source/kde/kdewebdev/kdewebdev.SlackBuild b/source/kde/kdewebdev/kdewebdev.SlackBuild new file mode 100755 index 000000000..457536297 --- /dev/null +++ b/source/kde/kdewebdev/kdewebdev.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-kdewebdev + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr + +# First, build and install Tidy: +cd tidy + echo "Building htmltidy..." + ARCH=$ARCH sh ./tidy.build $PKG +cd - + +cd $TMP +echo "Building kdewebdev-$VERSION..." +tar xvf $CWD/../src/kdewebdev-$VERSION.tar.?z* || exit 1 +cd kdewebdev-$VERSION + +zcat $CWD/kde4-kdewebdev-findtidy.diff.gz | patch -p0 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Maybe we won't need this again... +# -DWITH_RUBY:BOOL=OFF \ + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DLIBTIDY_INCLUDE_DIR=$PKG/usr/include \ + -DLIBTIDY_LIBRARIES=$PKG/usr/lib${LIBDIRSUFFIX}/libtidy.so \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/kdewebdev-$VERSION +cp -a AUTHORS COPYING* INSTALL* NEWS PACKAGING README TODO VERSION \ + $PKG/usr/doc/kdewebdev-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/kdewebdev-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdewebdev/slack-desc b/source/kde/kdewebdev/slack-desc new file mode 100644 index 000000000..a082d057a --- /dev/null +++ b/source/kde/kdewebdev/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------| +kdewebdev: kdewebdev (web development package for the K Desktop Environment) +kdewebdev: +kdewebdev: The kdewebdev package contains Quanta Plus and other applications +kdewebdev: which are useful for web development. +kdewebdev: +kdewebdev: +kdewebdev: +kdewebdev: +kdewebdev: +kdewebdev: +kdewebdev: diff --git a/source/kde/kdewebdev/tidy/get-tidy-cvs.sh b/source/kde/kdewebdev/tidy/get-tidy-cvs.sh new file mode 100755 index 000000000..e4fb4b20d --- /dev/null +++ b/source/kde/kdewebdev/tidy/get-tidy-cvs.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# Copyright 2006, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. +# + +# Fetch the latest CVS of Tidy. +# Clean the download location: +rm -rf tidy +cvs -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy login +CVS_VERSION=$(date +%Y%m%dT%R | tr -d :) +# Doubtful that these will exist, but... +rm -f tidy-${CVS_VERSION}.tar tidy-${CVS_VERSION}.tar.xz +cvs -z3 -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy co -P tidy +# Rid ourselves of cruft: +( cd tidy ; find . -type d -name CVS -exec rm -rf {} \; 2> /dev/null ) +# Make tarball "release": +tar cf tidy-${CVS_VERSION}.tar tidy +xz -9 tidy-${CVS_VERSION}.tar +# Clean up: +rm -rf tidy diff --git a/source/kde/kdewebdev/tidy/tidy.SlackBuild b/source/kde/kdewebdev/tidy/tidy.SlackBuild new file mode 100755 index 000000000..e487d95eb --- /dev/null +++ b/source/kde/kdewebdev/tidy/tidy.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This file is an example, so feel free to fix it if it gets out of date. :-) + +PKGNAM=tidy +VERSION=${VERSION:-20090604T2303} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ${PKGNAM} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* + +cd ${PKGNAM} + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +# Prepare autoconf: +sh build/gnuauto/setup.sh + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --disable-static \ + $ARCH-slackware-linux + +# Build and install: +make -j4 || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +# The Makefile evidently contains the package's license... +cp -a Makefile htmldoc $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/kdewebdev/tidy/tidy.build b/source/kde/kdewebdev/tidy/tidy.build new file mode 100755 index 000000000..ee7b821f4 --- /dev/null +++ b/source/kde/kdewebdev/tidy/tidy.build @@ -0,0 +1,80 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman <rworkman@slackware.com> 20071221 +# for new cvs pull and changed include directory for kde4's kdewebdev +# New cvs version - 20080502 + +PKGNAM=tidy +VERSION=20090604T2303 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} + +PKG=$1 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM} +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Prepare autoconf: +sh build/gnuauto/setup.sh + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include/tidy \ + --disable-static \ + --build=$ARCH-slackware-linux + +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a htmldoc/* $PKG/usr/doc/${PKGNAM}-$VERSION + diff --git a/source/kde/koffice/doinst.sh b/source/kde/koffice/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/koffice/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/koffice/koffice.SlackBuild b/source/kde/koffice/koffice.SlackBuild new file mode 100755 index 000000000..1945b990d --- /dev/null +++ b/source/kde/koffice/koffice.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-koffice + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $PKG/usr +cd $TMP +echo "Building koffice-$VERSION..." +tar xvf $CWD/../src/koffice-$VERSION.tar.?z* || exit 1 +cd koffice-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/koffice-$VERSION +cp -a AUTHORS COPYING* README* $PKG/usr/doc/koffice-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/koffice-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/koffice/local.options b/source/kde/koffice/local.options new file mode 100644 index 000000000..ccb0cb13a --- /dev/null +++ b/source/kde/koffice/local.options @@ -0,0 +1 @@ +VERSION=2.0.2 diff --git a/source/kde/koffice/slack-desc b/source/kde/koffice/slack-desc new file mode 100644 index 000000000..6863e914a --- /dev/null +++ b/source/kde/koffice/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice: koffice (KDE office productivity suite) +koffice: +koffice: KOffice office productivity applications. Included are a word +koffice: processor, spreadsheet, presentation program, chart and graph creator, +koffice: vector graphics tool, database report creator, flowcharting program, +koffice: integrated data management program, a pixel graphics editor, +koffice: a mathematical formula editor, and KOffice Workspace +koffice: (a combination of all of the above). +koffice: +koffice: +koffice: diff --git a/source/kde/konq-plugins/konq-plugins.SlackBuild b/source/kde/konq-plugins/konq-plugins.SlackBuild new file mode 100755 index 000000000..8dc20cc99 --- /dev/null +++ b/source/kde/konq-plugins/konq-plugins.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-konq-plugins + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +echo "Building konq-plugins-$VERSION..." +tar xvf $CWD/../src/extragear/konq-plugins-$VERSION.tar.?z* || exit 1 +cd konq-plugins-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/konq-plugins-$VERSION +cp -a konq-plugins/COPYING* konq-plugins/README* \ + $PKG/usr/doc/konq-plugins-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/konq-plugins-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/konq-plugins/slack-desc b/source/kde/konq-plugins/slack-desc new file mode 100644 index 000000000..e31991068 --- /dev/null +++ b/source/kde/konq-plugins/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +konq-plugins: konq-plugins (Plugins to extend Konqueror) +konq-plugins: +konq-plugins: This module contains plugins that interact with Konqueror. Some of +konq-plugins: the plugins included are babelfish, dirfilter, domtreeviewer, +konq-plugins: htmlvalidator, cssvalidator, khtmlsettingsplugin, kimgalleryplugin, +konq-plugins: uachanger, kuick, smbmounter, autorefresh, sidebar, +konq-plugins: sidebar/mediaplayer, fsview, akregator, mediarealfolder, +konq-plugins: and minitools. +konq-plugins: +konq-plugins: +konq-plugins: diff --git a/source/kde/ktorrent/doinst.sh b/source/kde/ktorrent/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/ktorrent/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/ktorrent/ktorrent.SlackBuild b/source/kde/ktorrent/ktorrent.SlackBuild new file mode 100755 index 000000000..acebafd2a --- /dev/null +++ b/source/kde/ktorrent/ktorrent.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ktorrent + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +echo "Building ktorrent-$VERSION..." +tar xvf $CWD/../src/extragear/ktorrent-$VERSION.tar.?z* || exit 1 +cd ktorrent-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/ktorrent-$VERSION +cp -a COPYING* ChangeLog \ + $PKG/usr/doc/ktorrent-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ktorrent-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/ktorrent/local.options b/source/kde/ktorrent/local.options new file mode 100644 index 000000000..17ea83467 --- /dev/null +++ b/source/kde/ktorrent/local.options @@ -0,0 +1 @@ +VERSION=3.2.2 diff --git a/source/kde/ktorrent/slack-desc b/source/kde/ktorrent/slack-desc new file mode 100644 index 000000000..486e33d38 --- /dev/null +++ b/source/kde/ktorrent/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ktorrent: ktorrent (BitTorrent program for KDE) +ktorrent: +ktorrent: KTorrent is a BitTorrent program for KDE with many features: +ktorrent: Download torrent files (of course :-), upload and download speed +ktorrent: capping, Internet searching, UDP trackers, port forwarding with UPnP, +ktorrent: IP blocking, importing of partially or fully downloaded files, +ktorrent: support for distributed hash tables, protocol encryption, +ktorrent: bandwidth scheduling, and much more. +ktorrent: +ktorrent: KTorrent's developers are Joris Guisson and Ivan Vasic. +ktorrent: KTorrent is released under the GPL. diff --git a/source/kde/mplayerthumbs/mplayerthumbs.SlackBuild b/source/kde/mplayerthumbs/mplayerthumbs.SlackBuild new file mode 100755 index 000000000..959802729 --- /dev/null +++ b/source/kde/mplayerthumbs/mplayerthumbs.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/sh +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) + +PKGNAM=mplayerthumbs +VERSION=${VERSION:-1.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} +NUMJOBS=${NUMJOBS:--j4} + +if [ "$TMP" = "" ]; then + TMP=/tmp +fi +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $PKG + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + .. + make $NUMJOBS || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS README* TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +makepkg -l y -c n ../${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/kde/mplayerthumbs/slack-desc b/source/kde/mplayerthumbs/slack-desc new file mode 100644 index 000000000..78f3cd032 --- /dev/null +++ b/source/kde/mplayerthumbs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mplayerthumbs: mplayerthumbs (media thumbnailer for KDE) +mplayerthumbs: +mplayerthumbs: MPlayerThumbs is a thumbnail generator for KDE file managers +mplayerthumbs: including Konqueror and Dolphin. It uses MPlayer to create +mplayerthumbs: thumbnails for all supported media types. +mplayerthumbs: +mplayerthumbs: MPlayerThumbs was written by Marco Gulino. +mplayerthumbs: +mplayerthumbs: +mplayerthumbs: +mplayerthumbs: diff --git a/source/kde/skanlite/doinst.sh b/source/kde/skanlite/doinst.sh new file mode 100644 index 000000000..e376b59af --- /dev/null +++ b/source/kde/skanlite/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database /usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/kde/skanlite/local.options b/source/kde/skanlite/local.options new file mode 100644 index 000000000..5d5991bf0 --- /dev/null +++ b/source/kde/skanlite/local.options @@ -0,0 +1 @@ +VERSION=0.3-kde4.2.4 diff --git a/source/kde/skanlite/skanlite.SlackBuild b/source/kde/skanlite/skanlite.SlackBuild new file mode 100755 index 000000000..759a5eac7 --- /dev/null +++ b/source/kde/skanlite/skanlite.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-skanlite + +# Set the config option variables if they are not already set: +if [ -r ../KDE.options ]; then + . ../KDE.options +fi + +# The global options may be overridden here (if needed): +if [ -r ./local.options ]; then + . ./local.options +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +echo "Building skanlite-$VERSION..." +tar xvf $CWD/../src/extragear/skanlite-$VERSION.tar.?z* || exit 1 +cd skanlite-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + . +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/skanlite-$VERSION +cp -a COPYING* $PKG/usr/doc/skanlite-$VERSION + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/skanlite-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/kde/skanlite/slack-desc b/source/kde/skanlite/slack-desc new file mode 100644 index 000000000..b4e994dae --- /dev/null +++ b/source/kde/skanlite/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +skanlite: skanlite (a scanning program) +skanlite: +skanlite: Skanlite is a light-weight scanning application based on libksane. +skanlite: +skanlite: +skanlite: +skanlite: +skanlite: +skanlite: +skanlite: +skanlite: diff --git a/source/kdei/kde-l10n.SlackBuild b/source/kdei/kde-l10n.SlackBuild new file mode 100755 index 000000000..f8e7ad8cd --- /dev/null +++ b/source/kdei/kde-l10n.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2008 Robby Workman Northport, AL, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# This script should build any of the language packs if run with (for example): +# PKGLANG=de ./kde-l10n.SlackBuild +# You should be able to build all of them with something like this: +# for i in $(cat languages) ; do PKGLANG=$i ./kde-l10n.SlackBuild ; done +# If ./languages is missing and this script is called without options, the +# default is to create an up-to-date ./languages list and build all the +# language packs. + +if [ ! -r ./languages ]; then + for file in kde-l10n*bz2 ; do + echo $file | cut -f 3 -d - >> ./languages + done +fi + +[ -z $VERSION ] && export VERSION=4.2.4 +[ -z $ARCH ] && export ARCH=noarch +[ -z $BUILD ] && export BUILD=1 + +# Use this as CFLAGS and CXXFLAGS: +if [ -z "$SLKCFLAGS" ]; then + if [ "$ARCH" = "i486" ]; then + export SLKCFLAGS="-O2 -march=i486 -mtune=i686" + elif [ "$ARCH" = "s390" ]; then + export SLKCFLAGS="-O2" + elif [ "$ARCH" = "x86_64" ]; then + export SLKCFLAGS="-O2 -fPIC" + fi +fi + +# Get the kde environment variables +[ -d kdebase ] && . ./kdebase/profile.d/kde.sh + +# Set the config option variables if they are not already set: +[ -r ../KDE.options ] && . ../KDE.options + +CWD=$(pwd) +TMP=${TMP:-/tmp} + +make_language_pack() { +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +cd $PKGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc/slack-desc.kde-l10n-$PKGLANG > $PKG/install/slack-desc +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz +} + +if [ -z $PKGLANG ]; then + for PKGLANG in $(cat languages) ; do + PKGNAM=kde-l10n-$PKGLANG + PKG=$TMP/package-kde-l10n-$PKGLANG + # The global options may be overridden here (if needed): + [ -r ./local.options/$PKGLANG ] && . ./local.options/$PKGLANG + make_language_pack; + done +else + PKGNAM=kde-l10n-$PKGLANG + PKG=$TMP/package-kde-l10n-$PKGLANG + # The global options may be overridden here (if needed): + [ -r ./local.options/$PKGLANG ] && . ./local.options/$PKGLANG + make_language_pack; +fi + diff --git a/source/kdei/koffice/koffice-l10n.SlackBuild b/source/kdei/koffice/koffice-l10n.SlackBuild new file mode 100755 index 000000000..03645f2ff --- /dev/null +++ b/source/kdei/koffice/koffice-l10n.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2008 Robby Workman Northport, AL, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# This script should build any of the language packs if run with (for example): +# PKGLANG=de ./koffice-l10n.SlackBuild +# You should be able to build all of them with something like this: +# for i in $(cat languages) ; do PKGLANG=$i ./koffice-l10n.SlackBuild ; done +# If ./languages is missing and this script is called without options, the +# default is to create an up-to-date ./languages list and build all the +# language packs. + +if [ ! -r ./languages ]; then + for file in koffice-l10n*bz2 ; do + echo $file | cut -f 3 -d - >> ./languages + done +fi + +[ -z $VERSION ] && export VERSION=2.0.2 +[ -z $ARCH ] && export ARCH=noarch +[ -z $BUILD ] && export BUILD=1 + +# Use this as CFLAGS and CXXFLAGS: +if [ -z "$SLKCFLAGS" ]; then + if [ "$ARCH" = "i486" ]; then + export SLKCFLAGS="-O2 -march=i486 -mtune=i686" + elif [ "$ARCH" = "s390" ]; then + export SLKCFLAGS="-O2" + elif [ "$ARCH" = "x86_64" ]; then + export SLKCFLAGS="-O2 -fPIC" + fi +fi + +# Get the kde environment variables +[ -d kdebase ] && . ./kdebase/profile.d/kde.sh + +# Set the config option variables if they are not already set: +[ -r ../KDE.options ] && . ../KDE.options + +CWD=$(pwd) +TMP=${TMP:-/tmp} + +make_language_pack() { +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +cd $PKGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc/slack-desc.koffice-l10n-$PKGLANG > $PKG/install/slack-desc +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz +} + +if [ -z $PKGLANG ]; then + for PKGLANG in $(cat languages) ; do + PKGNAM=koffice-l10n-$PKGLANG + PKG=$TMP/package-koffice-l10n-$PKGLANG + # The global options may be overridden here (if needed): + [ -r ./local.options/$PKGLANG ] && . ./local.options/$PKGLANG + make_language_pack; + done +else + PKGNAM=koffice-l10n-$PKGLANG + PKG=$TMP/package-koffice-l10n-$PKGLANG + # The global options may be overridden here (if needed): + [ -r ./local.options/$PKGLANG ] && . ./local.options/$PKGLANG + make_language_pack; +fi + diff --git a/source/kdei/koffice/languages b/source/kdei/koffice/languages new file mode 100644 index 000000000..5449c176a --- /dev/null +++ b/source/kdei/koffice/languages @@ -0,0 +1,27 @@ +ca +cs +da +de +el +en_GB +es +et +fr +fy +gl +hi +it +ja +kk +nb +nds +nl +pl +pt +pt_BR +sv +tr +uk +wa +zh_CN +zh_TW diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-af b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-af new file mode 100644 index 000000000..2159ffe9b --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-af @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-af: koffice-l10n-af +koffice-l10n-af: +koffice-l10n-af: Afrikaans language support for KOffice. +koffice-l10n-af: +koffice-l10n-af: +koffice-l10n-af: +koffice-l10n-af: +koffice-l10n-af: +koffice-l10n-af: +koffice-l10n-af: +koffice-l10n-af: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ar b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ar new file mode 100644 index 000000000..f11353418 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ar @@ -0,0 +1,11 @@ +koffice-l10n-ar: koffice-l10n-ar +koffice-l10n-ar: +koffice-l10n-ar: Arabic language support for KOffice. +koffice-l10n-ar: +koffice-l10n-ar: +koffice-l10n-ar: +koffice-l10n-ar: +koffice-l10n-ar: +koffice-l10n-ar: +koffice-l10n-ar: +koffice-l10n-ar: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-az b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-az new file mode 100644 index 000000000..e7b49933b --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-az @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-az: koffice-l10n-az +koffice-l10n-az: +koffice-l10n-az: Azerbaijani language support for KOffice. +koffice-l10n-az: +koffice-l10n-az: +koffice-l10n-az: +koffice-l10n-az: +koffice-l10n-az: +koffice-l10n-az: +koffice-l10n-az: +koffice-l10n-az: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-bg b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-bg new file mode 100644 index 000000000..a45db37dd --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-bg @@ -0,0 +1,11 @@ +koffice-l10n-bg: koffice-l10n-bg +koffice-l10n-bg: +koffice-l10n-bg: Bulgarian language support for KOffice. +koffice-l10n-bg: +koffice-l10n-bg: +koffice-l10n-bg: +koffice-l10n-bg: +koffice-l10n-bg: +koffice-l10n-bg: +koffice-l10n-bg: +koffice-l10n-bg: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-br b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-br new file mode 100644 index 000000000..51dde2652 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-br @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-br: koffice-l10n-br +koffice-l10n-br: +koffice-l10n-br: Breton language support for KOffice. +koffice-l10n-br: +koffice-l10n-br: +koffice-l10n-br: +koffice-l10n-br: +koffice-l10n-br: +koffice-l10n-br: +koffice-l10n-br: +koffice-l10n-br: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-bs b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-bs new file mode 100644 index 000000000..668883765 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-bs @@ -0,0 +1,11 @@ +koffice-l10n-bs: koffice-l10n-bs +koffice-l10n-bs: +koffice-l10n-bs: Bosnian language support for KOffice. +koffice-l10n-bs: +koffice-l10n-bs: +koffice-l10n-bs: +koffice-l10n-bs: +koffice-l10n-bs: +koffice-l10n-bs: +koffice-l10n-bs: +koffice-l10n-bs: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ca b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ca new file mode 100644 index 000000000..29cf70d67 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ca @@ -0,0 +1,11 @@ +koffice-l10n-ca: koffice-l10n-ca +koffice-l10n-ca: +koffice-l10n-ca: Catalan language support for KOffice. +koffice-l10n-ca: +koffice-l10n-ca: +koffice-l10n-ca: +koffice-l10n-ca: +koffice-l10n-ca: +koffice-l10n-ca: +koffice-l10n-ca: +koffice-l10n-ca: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-cs b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-cs new file mode 100644 index 000000000..3a26b06ec --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-cs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-cs: koffice-l10n-cs +koffice-l10n-cs: +koffice-l10n-cs: Czech language support for KOffice. +koffice-l10n-cs: +koffice-l10n-cs: +koffice-l10n-cs: +koffice-l10n-cs: +koffice-l10n-cs: +koffice-l10n-cs: +koffice-l10n-cs: +koffice-l10n-cs: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-cy b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-cy new file mode 100644 index 000000000..7e62677fb --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-cy @@ -0,0 +1,11 @@ +koffice-l10n-cy: koffice-l10n-cy +koffice-l10n-cy: +koffice-l10n-cy: Welsh language support for KOffice. +koffice-l10n-cy: +koffice-l10n-cy: +koffice-l10n-cy: +koffice-l10n-cy: +koffice-l10n-cy: +koffice-l10n-cy: +koffice-l10n-cy: +koffice-l10n-cy: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-da b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-da new file mode 100644 index 000000000..4727b0488 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-da @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-da: koffice-l10n-da +koffice-l10n-da: +koffice-l10n-da: Danish language support for KOffice. +koffice-l10n-da: +koffice-l10n-da: +koffice-l10n-da: +koffice-l10n-da: +koffice-l10n-da: +koffice-l10n-da: +koffice-l10n-da: +koffice-l10n-da: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-de b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-de new file mode 100644 index 000000000..f24cbd9fe --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-de @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-de: koffice-l10n-de +koffice-l10n-de: +koffice-l10n-de: German language support for KOffice. +koffice-l10n-de: +koffice-l10n-de: +koffice-l10n-de: +koffice-l10n-de: +koffice-l10n-de: +koffice-l10n-de: +koffice-l10n-de: +koffice-l10n-de: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-el b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-el new file mode 100644 index 000000000..f7e3f21c4 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-el @@ -0,0 +1,11 @@ +koffice-l10n-el: koffice-l10n-el +koffice-l10n-el: +koffice-l10n-el: Greek language support for KOffice. +koffice-l10n-el: +koffice-l10n-el: +koffice-l10n-el: +koffice-l10n-el: +koffice-l10n-el: +koffice-l10n-el: +koffice-l10n-el: +koffice-l10n-el: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-en_GB b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-en_GB new file mode 100644 index 000000000..529c204f7 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-en_GB @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-en_GB: koffice-l10n-en_GB +koffice-l10n-en_GB: +koffice-l10n-en_GB: English (UK) language support for KOffice. +koffice-l10n-en_GB: +koffice-l10n-en_GB: +koffice-l10n-en_GB: +koffice-l10n-en_GB: +koffice-l10n-en_GB: +koffice-l10n-en_GB: +koffice-l10n-en_GB: +koffice-l10n-en_GB: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-eo b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-eo new file mode 100644 index 000000000..4cb444f95 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-eo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-eo: koffice-l10n-eo +koffice-l10n-eo: +koffice-l10n-eo: Esperanto language support for KOffice. +koffice-l10n-eo: +koffice-l10n-eo: +koffice-l10n-eo: +koffice-l10n-eo: +koffice-l10n-eo: +koffice-l10n-eo: +koffice-l10n-eo: +koffice-l10n-eo: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-es b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-es new file mode 100644 index 000000000..da24c7cc8 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-es @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-es: koffice-l10n-es +koffice-l10n-es: +koffice-l10n-es: Spanish language support for KOffice. +koffice-l10n-es: +koffice-l10n-es: +koffice-l10n-es: +koffice-l10n-es: +koffice-l10n-es: +koffice-l10n-es: +koffice-l10n-es: +koffice-l10n-es: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-et b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-et new file mode 100644 index 000000000..e5f433b9d --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-et @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-et: koffice-l10n-et +koffice-l10n-et: +koffice-l10n-et: Estonian language support for KOffice. +koffice-l10n-et: +koffice-l10n-et: +koffice-l10n-et: +koffice-l10n-et: +koffice-l10n-et: +koffice-l10n-et: +koffice-l10n-et: +koffice-l10n-et: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-eu b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-eu new file mode 100644 index 000000000..993f3aced --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-eu @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makeu it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lineu for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-eu: koffice-l10n-eu +koffice-l10n-eu: +koffice-l10n-eu: Basque language support for KOffice. +koffice-l10n-eu: +koffice-l10n-eu: +koffice-l10n-eu: +koffice-l10n-eu: +koffice-l10n-eu: +koffice-l10n-eu: +koffice-l10n-eu: +koffice-l10n-eu: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fa b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fa new file mode 100644 index 000000000..82521df0c --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fa @@ -0,0 +1,11 @@ +koffice-l10n-fa: koffice-l10n-fa +koffice-l10n-fa: +koffice-l10n-fa: Persian (Farsi) language support for KOffice. +koffice-l10n-fa: +koffice-l10n-fa: +koffice-l10n-fa: +koffice-l10n-fa: +koffice-l10n-fa: +koffice-l10n-fa: +koffice-l10n-fa: +koffice-l10n-fa: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fi b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fi new file mode 100644 index 000000000..f28aaa04f --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fi @@ -0,0 +1,11 @@ +koffice-l10n-fi: koffice-l10n-fi +koffice-l10n-fi: +koffice-l10n-fi: Finnish language support for KOffice. +koffice-l10n-fi: +koffice-l10n-fi: +koffice-l10n-fi: +koffice-l10n-fi: +koffice-l10n-fi: +koffice-l10n-fi: +koffice-l10n-fi: +koffice-l10n-fi: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fr b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fr new file mode 100644 index 000000000..f05abb623 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-fr: koffice-l10n-fr +koffice-l10n-fr: +koffice-l10n-fr: French language support for KOffice. +koffice-l10n-fr: +koffice-l10n-fr: +koffice-l10n-fr: +koffice-l10n-fr: +koffice-l10n-fr: +koffice-l10n-fr: +koffice-l10n-fr: +koffice-l10n-fr: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fy b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fy new file mode 100644 index 000000000..6ca3bd258 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-fy @@ -0,0 +1,11 @@ +koffice-l10n-fy: koffice-l10n-fy +koffice-l10n-fy: +koffice-l10n-fy: Abkhasysk language support for KOffice. +koffice-l10n-fy: +koffice-l10n-fy: +koffice-l10n-fy: +koffice-l10n-fy: +koffice-l10n-fy: +koffice-l10n-fy: +koffice-l10n-fy: +koffice-l10n-fy: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ga b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ga new file mode 100644 index 000000000..4f0e492b5 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ga @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makeu it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lineu for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-ga: koffice-l10n-ga +koffice-l10n-ga: +koffice-l10n-ga: Irish Gaelic language support for KOffice. +koffice-l10n-ga: +koffice-l10n-ga: +koffice-l10n-ga: +koffice-l10n-ga: +koffice-l10n-ga: +koffice-l10n-ga: +koffice-l10n-ga: +koffice-l10n-ga: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-gl b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-gl new file mode 100644 index 000000000..10005a9a0 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-gl @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-gl: koffice-l10n-gl +koffice-l10n-gl: +koffice-l10n-gl: Galician language support for KOffice. +koffice-l10n-gl: +koffice-l10n-gl: +koffice-l10n-gl: +koffice-l10n-gl: +koffice-l10n-gl: +koffice-l10n-gl: +koffice-l10n-gl: +koffice-l10n-gl: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-he b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-he new file mode 100644 index 000000000..40f3eeeae --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-he @@ -0,0 +1,11 @@ +koffice-l10n-he: koffice-l10n-he +koffice-l10n-he: +koffice-l10n-he: Hebrew language support for KOffice. +koffice-l10n-he: +koffice-l10n-he: +koffice-l10n-he: +koffice-l10n-he: +koffice-l10n-he: +koffice-l10n-he: +koffice-l10n-he: +koffice-l10n-he: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hi b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hi new file mode 100644 index 000000000..712c9a635 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hi @@ -0,0 +1,11 @@ +koffice-l10n-hi: koffice-l10n-hi +koffice-l10n-hi: +koffice-l10n-hi: Hindi language support for KOffice. +koffice-l10n-hi: +koffice-l10n-hi: +koffice-l10n-hi: +koffice-l10n-hi: +koffice-l10n-hi: +koffice-l10n-hi: +koffice-l10n-hi: +koffice-l10n-hi: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hsb b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hsb new file mode 100644 index 000000000..ea1bcb7f8 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hsb @@ -0,0 +1,11 @@ +koffice-l10n-hsb: koffice-l10n-hsb +koffice-l10n-hsb: +koffice-l10n-hsb: Upper Sorbian language support for KOffice. +koffice-l10n-hsb: +koffice-l10n-hsb: +koffice-l10n-hsb: +koffice-l10n-hsb: +koffice-l10n-hsb: +koffice-l10n-hsb: +koffice-l10n-hsb: +koffice-l10n-hsb: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hu b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hu new file mode 100644 index 000000000..251091b9d --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-hu @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-hu: koffice-l10n-hu +koffice-l10n-hu: +koffice-l10n-hu: Hungarian language support for KOffice. +koffice-l10n-hu: +koffice-l10n-hu: +koffice-l10n-hu: +koffice-l10n-hu: +koffice-l10n-hu: +koffice-l10n-hu: +koffice-l10n-hu: +koffice-l10n-hu: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-is b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-is new file mode 100644 index 000000000..4a11c148f --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-is @@ -0,0 +1,11 @@ +koffice-l10n-is: koffice-l10n-is +koffice-l10n-is: +koffice-l10n-is: Icelandic language support for KOffice. +koffice-l10n-is: +koffice-l10n-is: +koffice-l10n-is: +koffice-l10n-is: +koffice-l10n-is: +koffice-l10n-is: +koffice-l10n-is: +koffice-l10n-is: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-it b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-it new file mode 100644 index 000000000..85fa5c7b4 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-it @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-it: koffice-l10n-it +koffice-l10n-it: +koffice-l10n-it: Italian language support for KOffice. +koffice-l10n-it: +koffice-l10n-it: +koffice-l10n-it: +koffice-l10n-it: +koffice-l10n-it: +koffice-l10n-it: +koffice-l10n-it: +koffice-l10n-it: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ja b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ja new file mode 100644 index 000000000..4da23a0de --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ja @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-ja: koffice-l10n-ja +koffice-l10n-ja: +koffice-l10n-ja: Japanese language support for KOffice. +koffice-l10n-ja: +koffice-l10n-ja: +koffice-l10n-ja: +koffice-l10n-ja: +koffice-l10n-ja: +koffice-l10n-ja: +koffice-l10n-ja: +koffice-l10n-ja: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-kk b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-kk new file mode 100644 index 000000000..4014fdfb9 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-kk @@ -0,0 +1,11 @@ +koffice-l10n-kk: koffice-l10n-kk +koffice-l10n-kk: +koffice-l10n-kk: Kazakh language support for KOffice. +koffice-l10n-kk: +koffice-l10n-kk: +koffice-l10n-kk: +koffice-l10n-kk: +koffice-l10n-kk: +koffice-l10n-kk: +koffice-l10n-kk: +koffice-l10n-kk: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-km b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-km new file mode 100644 index 000000000..4caa9431e --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-km @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-km: koffice-l10n-km +koffice-l10n-km: +koffice-l10n-km: Khmer language support for KOffice. +koffice-l10n-km: +koffice-l10n-km: +koffice-l10n-km: +koffice-l10n-km: +koffice-l10n-km: +koffice-l10n-km: +koffice-l10n-km: +koffice-l10n-km: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lo b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lo new file mode 100644 index 000000000..ff2f1ea95 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lo @@ -0,0 +1,11 @@ +koffice-l10n-lo: koffice-l10n-lo +koffice-l10n-lo: +koffice-l10n-lo: Lao language support for KOffice. +koffice-l10n-lo: +koffice-l10n-lo: +koffice-l10n-lo: +koffice-l10n-lo: +koffice-l10n-lo: +koffice-l10n-lo: +koffice-l10n-lo: +koffice-l10n-lo: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lt b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lt new file mode 100644 index 000000000..14d3fdb0c --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lt @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-lt: koffice-l10n-lt +koffice-l10n-lt: +koffice-l10n-lt: Lithuanian language support for KOffice. +koffice-l10n-lt: +koffice-l10n-lt: +koffice-l10n-lt: +koffice-l10n-lt: +koffice-l10n-lt: +koffice-l10n-lt: +koffice-l10n-lt: +koffice-l10n-lt: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lv b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lv new file mode 100644 index 000000000..a6bdadd30 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-lv @@ -0,0 +1,11 @@ +koffice-l10n-lv: koffice-l10n-lv +koffice-l10n-lv: +koffice-l10n-lv: Latvian language support for KOffice. +koffice-l10n-lv: +koffice-l10n-lv: +koffice-l10n-lv: +koffice-l10n-lv: +koffice-l10n-lv: +koffice-l10n-lv: +koffice-l10n-lv: +koffice-l10n-lv: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-mk b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-mk new file mode 100644 index 000000000..af7d02c49 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-mk @@ -0,0 +1,11 @@ +koffice-l10n-mk: koffice-l10n-mk +koffice-l10n-mk: +koffice-l10n-mk: Macedonian language support for KOffice. +koffice-l10n-mk: +koffice-l10n-mk: +koffice-l10n-mk: +koffice-l10n-mk: +koffice-l10n-mk: +koffice-l10n-mk: +koffice-l10n-mk: +koffice-l10n-mk: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ms b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ms new file mode 100644 index 000000000..74868e07f --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ms @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-ms: koffice-l10n-ms +koffice-l10n-ms: +koffice-l10n-ms: Malay language support for KOffice. +koffice-l10n-ms: +koffice-l10n-ms: +koffice-l10n-ms: +koffice-l10n-ms: +koffice-l10n-ms: +koffice-l10n-ms: +koffice-l10n-ms: +koffice-l10n-ms: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-mt b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-mt new file mode 100644 index 000000000..1b35b1688 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-mt @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-mt: koffice-l10n-mt +koffice-l10n-mt: +koffice-l10n-mt: Maltese language support for KOffice. +koffice-l10n-mt: +koffice-l10n-mt: +koffice-l10n-mt: +koffice-l10n-mt: +koffice-l10n-mt: +koffice-l10n-mt: +koffice-l10n-mt: +koffice-l10n-mt: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nb b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nb new file mode 100644 index 000000000..bb8c5889a --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nb @@ -0,0 +1,11 @@ +koffice-l10n-nb: koffice-l10n-nb +koffice-l10n-nb: +koffice-l10n-nb: Norwegian (Bokmaal) language support for KOffice. +koffice-l10n-nb: +koffice-l10n-nb: +koffice-l10n-nb: +koffice-l10n-nb: +koffice-l10n-nb: +koffice-l10n-nb: +koffice-l10n-nb: +koffice-l10n-nb: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nds b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nds new file mode 100644 index 000000000..5f26d82fc --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nds @@ -0,0 +1,11 @@ +koffice-l10n-nds: koffice-l10n-nds +koffice-l10n-nds: +koffice-l10n-nds: Low Saxon language support for KOffice. +koffice-l10n-nds: +koffice-l10n-nds: +koffice-l10n-nds: +koffice-l10n-nds: +koffice-l10n-nds: +koffice-l10n-nds: +koffice-l10n-nds: +koffice-l10n-nds: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ne b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ne new file mode 100644 index 000000000..811d8eebb --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ne @@ -0,0 +1,11 @@ +koffice-l10n-ne: koffice-l10n-ne +koffice-l10n-ne: +koffice-l10n-ne: Nepali language support for KOffice. +koffice-l10n-ne: +koffice-l10n-ne: +koffice-l10n-ne: +koffice-l10n-ne: +koffice-l10n-ne: +koffice-l10n-ne: +koffice-l10n-ne: +koffice-l10n-ne: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nl b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nl new file mode 100644 index 000000000..716987898 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nl @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-nl: koffice-l10n-nl +koffice-l10n-nl: +koffice-l10n-nl: Dutch language support for KOffice. +koffice-l10n-nl: +koffice-l10n-nl: +koffice-l10n-nl: +koffice-l10n-nl: +koffice-l10n-nl: +koffice-l10n-nl: +koffice-l10n-nl: +koffice-l10n-nl: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nn b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nn new file mode 100644 index 000000000..d2c0b3006 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-nn @@ -0,0 +1,11 @@ +koffice-l10n-nn: koffice-l10n-nn +koffice-l10n-nn: +koffice-l10n-nn: Norwegian (Nynorsk) language support for KOffice. +koffice-l10n-nn: +koffice-l10n-nn: +koffice-l10n-nn: +koffice-l10n-nn: +koffice-l10n-nn: +koffice-l10n-nn: +koffice-l10n-nn: +koffice-l10n-nn: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-no b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-no new file mode 100644 index 000000000..df9e73ce1 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-no @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-no: koffice-l10n-no +koffice-l10n-no: +koffice-l10n-no: Norwegian (Bokmaal) language support for KOffice. +koffice-l10n-no: +koffice-l10n-no: +koffice-l10n-no: +koffice-l10n-no: +koffice-l10n-no: +koffice-l10n-no: +koffice-l10n-no: +koffice-l10n-no: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-no_NY b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-no_NY new file mode 100644 index 000000000..e86be3ba8 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-no_NY @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-no_NY: koffice-l10n-no_NY +koffice-l10n-no_NY: +koffice-l10n-no_NY: Norwegian (Nynorsk) language support for KOffice. +koffice-l10n-no_NY: +koffice-l10n-no_NY: +koffice-l10n-no_NY: +koffice-l10n-no_NY: +koffice-l10n-no_NY: +koffice-l10n-no_NY: +koffice-l10n-no_NY: +koffice-l10n-no_NY: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pl b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pl new file mode 100644 index 000000000..1ba2d5606 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pl @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-pl: koffice-l10n-pl +koffice-l10n-pl: +koffice-l10n-pl: Polish language support for KOffice. +koffice-l10n-pl: +koffice-l10n-pl: +koffice-l10n-pl: +koffice-l10n-pl: +koffice-l10n-pl: +koffice-l10n-pl: +koffice-l10n-pl: +koffice-l10n-pl: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pt b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pt new file mode 100644 index 000000000..871f589e8 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pt @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-pt: koffice-l10n-pt +koffice-l10n-pt: +koffice-l10n-pt: Portuguese language support for KOffice. +koffice-l10n-pt: +koffice-l10n-pt: +koffice-l10n-pt: +koffice-l10n-pt: +koffice-l10n-pt: +koffice-l10n-pt: +koffice-l10n-pt: +koffice-l10n-pt: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pt_BR b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pt_BR new file mode 100644 index 000000000..68adcd397 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-pt_BR @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-pt_BR: koffice-l10n-pt_BR +koffice-l10n-pt_BR: +koffice-l10n-pt_BR: Brazil portuguese language support for KOffice. +koffice-l10n-pt_BR: +koffice-l10n-pt_BR: +koffice-l10n-pt_BR: +koffice-l10n-pt_BR: +koffice-l10n-pt_BR: +koffice-l10n-pt_BR: +koffice-l10n-pt_BR: +koffice-l10n-pt_BR: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ro b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ro new file mode 100644 index 000000000..3e67a3a8f --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ro @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-ro: koffice-l10n-ro +koffice-l10n-ro: +koffice-l10n-ro: Romanian language support for KOffice. +koffice-l10n-ro: +koffice-l10n-ro: +koffice-l10n-ro: +koffice-l10n-ro: +koffice-l10n-ro: +koffice-l10n-ro: +koffice-l10n-ro: +koffice-l10n-ro: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ru b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ru new file mode 100644 index 000000000..8d72bd4b1 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ru @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-ru: koffice-l10n-ru +koffice-l10n-ru: +koffice-l10n-ru: Russian language support for KOffice. +koffice-l10n-ru: +koffice-l10n-ru: +koffice-l10n-ru: +koffice-l10n-ru: +koffice-l10n-ru: +koffice-l10n-ru: +koffice-l10n-ru: +koffice-l10n-ru: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-se b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-se new file mode 100644 index 000000000..1798892e1 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-se @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-se: koffice-l10n-se +koffice-l10n-se: +koffice-l10n-se: Northern Sami language support for KOffice. +koffice-l10n-se: +koffice-l10n-se: +koffice-l10n-se: +koffice-l10n-se: +koffice-l10n-se: +koffice-l10n-se: +koffice-l10n-se: +koffice-l10n-se: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sk b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sk new file mode 100644 index 000000000..d259bbc57 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sk @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-sk: koffice-l10n-sk +koffice-l10n-sk: +koffice-l10n-sk: Slovak language support for KOffice. +koffice-l10n-sk: +koffice-l10n-sk: +koffice-l10n-sk: +koffice-l10n-sk: +koffice-l10n-sk: +koffice-l10n-sk: +koffice-l10n-sk: +koffice-l10n-sk: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sl b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sl new file mode 100644 index 000000000..79d9786c0 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sl @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-sl: koffice-l10n-sl +koffice-l10n-sl: +koffice-l10n-sl: Slovenian language support for KOffice. +koffice-l10n-sl: +koffice-l10n-sl: +koffice-l10n-sl: +koffice-l10n-sl: +koffice-l10n-sl: +koffice-l10n-sl: +koffice-l10n-sl: +koffice-l10n-sl: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sr b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sr new file mode 100644 index 000000000..97b2d1add --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-sr: koffice-l10n-sr +koffice-l10n-sr: +koffice-l10n-sr: Serbian language support for KOffice. +koffice-l10n-sr: +koffice-l10n-sr: +koffice-l10n-sr: +koffice-l10n-sr: +koffice-l10n-sr: +koffice-l10n-sr: +koffice-l10n-sr: +koffice-l10n-sr: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sr@Latn b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sr@Latn new file mode 100644 index 000000000..7c90acc37 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sr@Latn @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-sr@Latn: koffice-l10n-sr@Latn +koffice-l10n-sr@Latn: +koffice-l10n-sr@Latn: Serbian in Latin script language support for KOffice. +koffice-l10n-sr@Latn: +koffice-l10n-sr@Latn: +koffice-l10n-sr@Latn: +koffice-l10n-sr@Latn: +koffice-l10n-sr@Latn: +koffice-l10n-sr@Latn: +koffice-l10n-sr@Latn: +koffice-l10n-sr@Latn: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sv b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sv new file mode 100644 index 000000000..01be9831a --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-sv @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-sv: koffice-l10n-sv +koffice-l10n-sv: +koffice-l10n-sv: Swedish language support for KOffice. +koffice-l10n-sv: +koffice-l10n-sv: +koffice-l10n-sv: +koffice-l10n-sv: +koffice-l10n-sv: +koffice-l10n-sv: +koffice-l10n-sv: +koffice-l10n-sv: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ta b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ta new file mode 100644 index 000000000..bb8a36d20 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ta @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-ta: koffice-l10n-ta +koffice-l10n-ta: +koffice-l10n-ta: Tamil language support for KOffice. +koffice-l10n-ta: +koffice-l10n-ta: +koffice-l10n-ta: +koffice-l10n-ta: +koffice-l10n-ta: +koffice-l10n-ta: +koffice-l10n-ta: +koffice-l10n-ta: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-tg b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-tg new file mode 100644 index 000000000..f5b5913b5 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-tg @@ -0,0 +1,11 @@ +koffice-l10n-tg: koffice-l10n-tg +koffice-l10n-tg: +koffice-l10n-tg: Tajik language support for KOffice. +koffice-l10n-tg: +koffice-l10n-tg: +koffice-l10n-tg: +koffice-l10n-tg: +koffice-l10n-tg: +koffice-l10n-tg: +koffice-l10n-tg: +koffice-l10n-tg: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-th b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-th new file mode 100644 index 000000000..58e1e3b0a --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-th @@ -0,0 +1,11 @@ +koffice-l10n-th: koffice-l10n-th +koffice-l10n-th: +koffice-l10n-th: Thai language support for KOffice. +koffice-l10n-th: +koffice-l10n-th: +koffice-l10n-th: +koffice-l10n-th: +koffice-l10n-th: +koffice-l10n-th: +koffice-l10n-th: +koffice-l10n-th: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-tr b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-tr new file mode 100644 index 000000000..e7543d626 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-tr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-tr: koffice-l10n-tr +koffice-l10n-tr: +koffice-l10n-tr: Turkish language support for KOffice. +koffice-l10n-tr: +koffice-l10n-tr: +koffice-l10n-tr: +koffice-l10n-tr: +koffice-l10n-tr: +koffice-l10n-tr: +koffice-l10n-tr: +koffice-l10n-tr: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-uk b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-uk new file mode 100644 index 000000000..87103eadc --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-uk @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-uk: koffice-l10n-uk +koffice-l10n-uk: +koffice-l10n-uk: Ukrainian language support for KOffice. +koffice-l10n-uk: +koffice-l10n-uk: +koffice-l10n-uk: +koffice-l10n-uk: +koffice-l10n-uk: +koffice-l10n-uk: +koffice-l10n-uk: +koffice-l10n-uk: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-uz b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-uz new file mode 100644 index 000000000..d2d7cedb3 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-uz @@ -0,0 +1,11 @@ +koffice-l10n-uz: koffice-l10n-uz +koffice-l10n-uz: +koffice-l10n-uz: Uzbek language support for KOffice. +koffice-l10n-uz: +koffice-l10n-uz: +koffice-l10n-uz: +koffice-l10n-uz: +koffice-l10n-uz: +koffice-l10n-uz: +koffice-l10n-uz: +koffice-l10n-uz: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ven b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ven new file mode 100644 index 000000000..bd67d4370 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-ven @@ -0,0 +1,11 @@ +koffice-l10n-ven: koffice-l10n-ven +koffice-l10n-ven: +koffice-l10n-ven: Venda language support for KOffice. +koffice-l10n-ven: +koffice-l10n-ven: +koffice-l10n-ven: +koffice-l10n-ven: +koffice-l10n-ven: +koffice-l10n-ven: +koffice-l10n-ven: +koffice-l10n-ven: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-wa b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-wa new file mode 100644 index 000000000..e88ee5e32 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-wa @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +koffice-l10n-wa: koffice-l10n-wa +koffice-l10n-wa: +koffice-l10n-wa: Walloon language support for KOffice. +koffice-l10n-wa: +koffice-l10n-wa: +koffice-l10n-wa: +koffice-l10n-wa: +koffice-l10n-wa: +koffice-l10n-wa: +koffice-l10n-wa: +koffice-l10n-wa: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-xh b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-xh new file mode 100644 index 000000000..5bd52a1df --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-xh @@ -0,0 +1,11 @@ +koffice-l10n-xh: koffice-l10n-xh +koffice-l10n-xh: +koffice-l10n-xh: Xhosa language support for KOffice. +koffice-l10n-xh: +koffice-l10n-xh: +koffice-l10n-xh: +koffice-l10n-xh: +koffice-l10n-xh: +koffice-l10n-xh: +koffice-l10n-xh: +koffice-l10n-xh: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zh_CN b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zh_CN new file mode 100644 index 000000000..52bf87706 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zh_CN @@ -0,0 +1,11 @@ +koffice-l10n-zh_CN: koffice-l10n-zh_CN +koffice-l10n-zh_CN: +koffice-l10n-zh_CN: Simplified Chinese language support for KOffice. +koffice-l10n-zh_CN: +koffice-l10n-zh_CN: +koffice-l10n-zh_CN: +koffice-l10n-zh_CN: +koffice-l10n-zh_CN: +koffice-l10n-zh_CN: +koffice-l10n-zh_CN: +koffice-l10n-zh_CN: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zh_TW b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zh_TW new file mode 100644 index 000000000..233fb2f9b --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zh_TW @@ -0,0 +1,11 @@ +koffice-l10n-zh_TW: koffice-l10n-zh_TW +koffice-l10n-zh_TW: +koffice-l10n-zh_TW: Chinese language support for KOffice. +koffice-l10n-zh_TW: +koffice-l10n-zh_TW: +koffice-l10n-zh_TW: +koffice-l10n-zh_TW: +koffice-l10n-zh_TW: +koffice-l10n-zh_TW: +koffice-l10n-zh_TW: +koffice-l10n-zh_TW: diff --git a/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zu b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zu new file mode 100644 index 000000000..72828f016 --- /dev/null +++ b/source/kdei/koffice/slack-desc/slack-desc.koffice-l10n-zu @@ -0,0 +1,11 @@ +koffice-l10n-zu: koffice-l10n-zu +koffice-l10n-zu: +koffice-l10n-zu: Zulu language support for KOffice. +koffice-l10n-zu: +koffice-l10n-zu: +koffice-l10n-zu: +koffice-l10n-zu: +koffice-l10n-zu: +koffice-l10n-zu: +koffice-l10n-zu: +koffice-l10n-zu: diff --git a/source/kdei/languages b/source/kdei/languages new file mode 100644 index 000000000..e77d8cf89 --- /dev/null +++ b/source/kdei/languages @@ -0,0 +1,56 @@ +ar +bg +bn_IN +ca +cs +csb +da +de +el +en_GB +es +et +eu +fi +fr +ga +gl +gu +he +hi +hu +is +it +ja +kk +km +kn +ko +ku +lt +lv +mai +mk +ml +mr +nb +nds +nl +nn +pa +pl +pt +pt_BR +ro +ru +sk +sl +sr +sv +tg +th +tr +uk +wa +zh_CN +zh_TW diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ar b/source/kdei/slack-desc/slack-desc.kde-l10n-ar new file mode 100644 index 000000000..c1850ab65 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ar @@ -0,0 +1,11 @@ +kde-l10n-ar: kde-l10n-ar +kde-l10n-ar: +kde-l10n-ar: Arabic language support for KDE. +kde-l10n-ar: +kde-l10n-ar: +kde-l10n-ar: +kde-l10n-ar: +kde-l10n-ar: +kde-l10n-ar: +kde-l10n-ar: +kde-l10n-ar: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-bg b/source/kdei/slack-desc/slack-desc.kde-l10n-bg new file mode 100644 index 000000000..4210b1fbf --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-bg @@ -0,0 +1,11 @@ +kde-l10n-bg: kde-l10n-bg +kde-l10n-bg: +kde-l10n-bg: Bulgarian language support for KDE. +kde-l10n-bg: +kde-l10n-bg: +kde-l10n-bg: +kde-l10n-bg: +kde-l10n-bg: +kde-l10n-bg: +kde-l10n-bg: +kde-l10n-bg: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-bn_IN b/source/kdei/slack-desc/slack-desc.kde-l10n-bn_IN new file mode 100644 index 000000000..2f7c7c03b --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-bn_IN @@ -0,0 +1,11 @@ +kde-l10n-bn_IN: kde-l10n-bn_IN +kde-l10n-bn_IN: +kde-l10n-bn_IN: Bengali language support for KDE. +kde-l10n-bn_IN: +kde-l10n-bn_IN: +kde-l10n-bn_IN: +kde-l10n-bn_IN: +kde-l10n-bn_IN: +kde-l10n-bn_IN: +kde-l10n-bn_IN: +kde-l10n-bn_IN: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ca b/source/kdei/slack-desc/slack-desc.kde-l10n-ca new file mode 100644 index 000000000..0642c7453 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ca @@ -0,0 +1,11 @@ +kde-l10n-ca: kde-l10n-ca +kde-l10n-ca: +kde-l10n-ca: Catalan language support for KDE. +kde-l10n-ca: +kde-l10n-ca: +kde-l10n-ca: +kde-l10n-ca: +kde-l10n-ca: +kde-l10n-ca: +kde-l10n-ca: +kde-l10n-ca: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-cs b/source/kdei/slack-desc/slack-desc.kde-l10n-cs new file mode 100644 index 000000000..a9ff293c5 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-cs @@ -0,0 +1,11 @@ +kde-l10n-cs: kde-l10n-cs +kde-l10n-cs: +kde-l10n-cs: Czech language support for KDE. +kde-l10n-cs: +kde-l10n-cs: +kde-l10n-cs: +kde-l10n-cs: +kde-l10n-cs: +kde-l10n-cs: +kde-l10n-cs: +kde-l10n-cs: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-csb b/source/kdei/slack-desc/slack-desc.kde-l10n-csb new file mode 100644 index 000000000..a430c78e0 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-csb @@ -0,0 +1,11 @@ +kde-l10n-csb: kde-l10n-csb +kde-l10n-csb: +kde-l10n-csb: Kashubian language support for KDE. +kde-l10n-csb: +kde-l10n-csb: +kde-l10n-csb: +kde-l10n-csb: +kde-l10n-csb: +kde-l10n-csb: +kde-l10n-csb: +kde-l10n-csb: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-da b/source/kdei/slack-desc/slack-desc.kde-l10n-da new file mode 100644 index 000000000..9cdb27d9f --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-da @@ -0,0 +1,11 @@ +kde-l10n-da: kde-l10n-da +kde-l10n-da: +kde-l10n-da: Danish language support for KDE. +kde-l10n-da: +kde-l10n-da: +kde-l10n-da: +kde-l10n-da: +kde-l10n-da: +kde-l10n-da: +kde-l10n-da: +kde-l10n-da: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-de b/source/kdei/slack-desc/slack-desc.kde-l10n-de new file mode 100644 index 000000000..e90b9624e --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-de @@ -0,0 +1,11 @@ +kde-l10n-de: kde-l10n-de +kde-l10n-de: +kde-l10n-de: German language support for KDE. +kde-l10n-de: +kde-l10n-de: +kde-l10n-de: +kde-l10n-de: +kde-l10n-de: +kde-l10n-de: +kde-l10n-de: +kde-l10n-de: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-el b/source/kdei/slack-desc/slack-desc.kde-l10n-el new file mode 100644 index 000000000..3e6b56e3d --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-el @@ -0,0 +1,11 @@ +kde-l10n-el: kde-l10n-el +kde-l10n-el: +kde-l10n-el: Greek language support for KDE. +kde-l10n-el: +kde-l10n-el: +kde-l10n-el: +kde-l10n-el: +kde-l10n-el: +kde-l10n-el: +kde-l10n-el: +kde-l10n-el: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-en_GB b/source/kdei/slack-desc/slack-desc.kde-l10n-en_GB new file mode 100644 index 000000000..7bd1861a2 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-en_GB @@ -0,0 +1,11 @@ +kde-l10n-en_GB: kde-l10n-en_GB +kde-l10n-en_GB: +kde-l10n-en_GB: English (UK) language support for KDE. +kde-l10n-en_GB: +kde-l10n-en_GB: +kde-l10n-en_GB: +kde-l10n-en_GB: +kde-l10n-en_GB: +kde-l10n-en_GB: +kde-l10n-en_GB: +kde-l10n-en_GB: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-eo b/source/kdei/slack-desc/slack-desc.kde-l10n-eo new file mode 100644 index 000000000..70a4484a8 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-eo @@ -0,0 +1,11 @@ +kde-l10n-eo: kde-l10n-eo +kde-l10n-eo: +kde-l10n-eo: Esperanto language support for KDE. +kde-l10n-eo: +kde-l10n-eo: +kde-l10n-eo: +kde-l10n-eo: +kde-l10n-eo: +kde-l10n-eo: +kde-l10n-eo: +kde-l10n-eo: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-es b/source/kdei/slack-desc/slack-desc.kde-l10n-es new file mode 100644 index 000000000..333cf6421 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-es @@ -0,0 +1,11 @@ +kde-l10n-es: kde-l10n-es +kde-l10n-es: +kde-l10n-es: Spanish language support for KDE. +kde-l10n-es: +kde-l10n-es: +kde-l10n-es: +kde-l10n-es: +kde-l10n-es: +kde-l10n-es: +kde-l10n-es: +kde-l10n-es: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-et b/source/kdei/slack-desc/slack-desc.kde-l10n-et new file mode 100644 index 000000000..ac801ed02 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-et @@ -0,0 +1,11 @@ +kde-l10n-et: kde-l10n-et +kde-l10n-et: +kde-l10n-et: Estonian language support for KDE. +kde-l10n-et: +kde-l10n-et: +kde-l10n-et: +kde-l10n-et: +kde-l10n-et: +kde-l10n-et: +kde-l10n-et: +kde-l10n-et: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-eu b/source/kdei/slack-desc/slack-desc.kde-l10n-eu new file mode 100644 index 000000000..3576364a5 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-eu @@ -0,0 +1,11 @@ +kde-l10n-eu: kde-l10n-eu +kde-l10n-eu: +kde-l10n-eu: Basque language support for KDE. +kde-l10n-eu: +kde-l10n-eu: +kde-l10n-eu: +kde-l10n-eu: +kde-l10n-eu: +kde-l10n-eu: +kde-l10n-eu: +kde-l10n-eu: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-fi b/source/kdei/slack-desc/slack-desc.kde-l10n-fi new file mode 100644 index 000000000..74ed56f04 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-fi @@ -0,0 +1,11 @@ +kde-l10n-fi: kde-l10n-fi +kde-l10n-fi: +kde-l10n-fi: Finnish language support for KDE. +kde-l10n-fi: +kde-l10n-fi: +kde-l10n-fi: +kde-l10n-fi: +kde-l10n-fi: +kde-l10n-fi: +kde-l10n-fi: +kde-l10n-fi: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-fr b/source/kdei/slack-desc/slack-desc.kde-l10n-fr new file mode 100644 index 000000000..8a70d56de --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-fr @@ -0,0 +1,11 @@ +kde-l10n-fr: kde-l10n-fr +kde-l10n-fr: +kde-l10n-fr: French language support for KDE. +kde-l10n-fr: +kde-l10n-fr: +kde-l10n-fr: +kde-l10n-fr: +kde-l10n-fr: +kde-l10n-fr: +kde-l10n-fr: +kde-l10n-fr: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-fy b/source/kdei/slack-desc/slack-desc.kde-l10n-fy new file mode 100644 index 000000000..93195d0f5 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-fy @@ -0,0 +1,11 @@ +kde-l10n-fy: kde-l10n-fy +kde-l10n-fy: +kde-l10n-fy: Abkhasysk language support for KDE. +kde-l10n-fy: +kde-l10n-fy: +kde-l10n-fy: +kde-l10n-fy: +kde-l10n-fy: +kde-l10n-fy: +kde-l10n-fy: +kde-l10n-fy: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ga b/source/kdei/slack-desc/slack-desc.kde-l10n-ga new file mode 100644 index 000000000..fc07a274a --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ga @@ -0,0 +1,11 @@ +kde-l10n-ga: kde-l10n-ga +kde-l10n-ga: +kde-l10n-ga: Irish language support for KDE. +kde-l10n-ga: +kde-l10n-ga: +kde-l10n-ga: +kde-l10n-ga: +kde-l10n-ga: +kde-l10n-ga: +kde-l10n-ga: +kde-l10n-ga: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-gl b/source/kdei/slack-desc/slack-desc.kde-l10n-gl new file mode 100644 index 000000000..58eaca77f --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-gl @@ -0,0 +1,11 @@ +kde-l10n-gl: kde-l10n-gl +kde-l10n-gl: +kde-l10n-gl: Galician language support for KDE. +kde-l10n-gl: +kde-l10n-gl: +kde-l10n-gl: +kde-l10n-gl: +kde-l10n-gl: +kde-l10n-gl: +kde-l10n-gl: +kde-l10n-gl: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-gu b/source/kdei/slack-desc/slack-desc.kde-l10n-gu new file mode 100644 index 000000000..79c5ae5a8 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-gu @@ -0,0 +1,11 @@ +kde-l10n-gu: kde-l10n-gu +kde-l10n-gu: +kde-l10n-gu: Gujarati language support for KDE. +kde-l10n-gu: +kde-l10n-gu: +kde-l10n-gu: +kde-l10n-gu: +kde-l10n-gu: +kde-l10n-gu: +kde-l10n-gu: +kde-l10n-gu: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-he b/source/kdei/slack-desc/slack-desc.kde-l10n-he new file mode 100644 index 000000000..3ab491b7e --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-he @@ -0,0 +1,11 @@ +kde-l10n-he: kde-l10n-he +kde-l10n-he: +kde-l10n-he: Hebrew language support for KDE. +kde-l10n-he: +kde-l10n-he: +kde-l10n-he: +kde-l10n-he: +kde-l10n-he: +kde-l10n-he: +kde-l10n-he: +kde-l10n-he: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-hi b/source/kdei/slack-desc/slack-desc.kde-l10n-hi new file mode 100644 index 000000000..7575bb963 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-hi @@ -0,0 +1,11 @@ +kde-l10n-hi: kde-l10n-hi +kde-l10n-hi: +kde-l10n-hi: Hindi language support for KDE. +kde-l10n-hi: +kde-l10n-hi: +kde-l10n-hi: +kde-l10n-hi: +kde-l10n-hi: +kde-l10n-hi: +kde-l10n-hi: +kde-l10n-hi: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-hu b/source/kdei/slack-desc/slack-desc.kde-l10n-hu new file mode 100644 index 000000000..1ecc0c424 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-hu @@ -0,0 +1,11 @@ +kde-l10n-hu: kde-l10n-hu +kde-l10n-hu: +kde-l10n-hu: Hungarian language support for KDE. +kde-l10n-hu: +kde-l10n-hu: +kde-l10n-hu: +kde-l10n-hu: +kde-l10n-hu: +kde-l10n-hu: +kde-l10n-hu: +kde-l10n-hu: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-is b/source/kdei/slack-desc/slack-desc.kde-l10n-is new file mode 100644 index 000000000..a9fa3c209 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-is @@ -0,0 +1,11 @@ +kde-l10n-is: kde-l10n-is +kde-l10n-is: +kde-l10n-is: Icelandic language support for KDE. +kde-l10n-is: +kde-l10n-is: +kde-l10n-is: +kde-l10n-is: +kde-l10n-is: +kde-l10n-is: +kde-l10n-is: +kde-l10n-is: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-it b/source/kdei/slack-desc/slack-desc.kde-l10n-it new file mode 100644 index 000000000..a90d4ec0c --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-it @@ -0,0 +1,11 @@ +kde-l10n-it: kde-l10n-it +kde-l10n-it: +kde-l10n-it: Italian language support for KDE. +kde-l10n-it: +kde-l10n-it: +kde-l10n-it: +kde-l10n-it: +kde-l10n-it: +kde-l10n-it: +kde-l10n-it: +kde-l10n-it: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ja b/source/kdei/slack-desc/slack-desc.kde-l10n-ja new file mode 100644 index 000000000..ba28704cb --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ja @@ -0,0 +1,11 @@ +kde-l10n-ja: kde-l10n-ja +kde-l10n-ja: +kde-l10n-ja: Japanese language support for KDE. +kde-l10n-ja: +kde-l10n-ja: +kde-l10n-ja: +kde-l10n-ja: +kde-l10n-ja: +kde-l10n-ja: +kde-l10n-ja: +kde-l10n-ja: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-kk b/source/kdei/slack-desc/slack-desc.kde-l10n-kk new file mode 100644 index 000000000..82f5143dc --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-kk @@ -0,0 +1,11 @@ +kde-l10n-kk: kde-l10n-kk +kde-l10n-kk: +kde-l10n-kk: Kazakh language support for KDE. +kde-l10n-kk: +kde-l10n-kk: +kde-l10n-kk: +kde-l10n-kk: +kde-l10n-kk: +kde-l10n-kk: +kde-l10n-kk: +kde-l10n-kk: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-km b/source/kdei/slack-desc/slack-desc.kde-l10n-km new file mode 100644 index 000000000..8f137c027 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-km @@ -0,0 +1,11 @@ +kde-l10n-km: kde-l10n-km +kde-l10n-km: +kde-l10n-km: Khmer language support for KDE. +kde-l10n-km: +kde-l10n-km: +kde-l10n-km: +kde-l10n-km: +kde-l10n-km: +kde-l10n-km: +kde-l10n-km: +kde-l10n-km: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-kn b/source/kdei/slack-desc/slack-desc.kde-l10n-kn new file mode 100644 index 000000000..571e643c1 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-kn @@ -0,0 +1,11 @@ +kde-l10n-kn: kde-l10n-kn +kde-l10n-kn: +kde-l10n-kn: Kannada language support for KDE. +kde-l10n-kn: +kde-l10n-kn: +kde-l10n-kn: +kde-l10n-kn: +kde-l10n-kn: +kde-l10n-kn: +kde-l10n-kn: +kde-l10n-kn: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ko b/source/kdei/slack-desc/slack-desc.kde-l10n-ko new file mode 100644 index 000000000..935283b02 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ko @@ -0,0 +1,11 @@ +kde-l10n-ko: kde-l10n-ko +kde-l10n-ko: +kde-l10n-ko: Korean language support for KDE. +kde-l10n-ko: +kde-l10n-ko: +kde-l10n-ko: +kde-l10n-ko: +kde-l10n-ko: +kde-l10n-ko: +kde-l10n-ko: +kde-l10n-ko: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ku b/source/kdei/slack-desc/slack-desc.kde-l10n-ku new file mode 100644 index 000000000..b4a2ff031 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ku @@ -0,0 +1,11 @@ +kde-l10n-ku: kde-l10n-ku +kde-l10n-ku: +kde-l10n-ku: Kurdish language support for KDE. +kde-l10n-ku: +kde-l10n-ku: +kde-l10n-ku: +kde-l10n-ku: +kde-l10n-ku: +kde-l10n-ku: +kde-l10n-ku: +kde-l10n-ku: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-lt b/source/kdei/slack-desc/slack-desc.kde-l10n-lt new file mode 100644 index 000000000..733bc0a37 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-lt @@ -0,0 +1,11 @@ +kde-l10n-lt: kde-l10n-lt +kde-l10n-lt: +kde-l10n-lt: Lithuanian language support for KDE. +kde-l10n-lt: +kde-l10n-lt: +kde-l10n-lt: +kde-l10n-lt: +kde-l10n-lt: +kde-l10n-lt: +kde-l10n-lt: +kde-l10n-lt: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-lv b/source/kdei/slack-desc/slack-desc.kde-l10n-lv new file mode 100644 index 000000000..e65b3521d --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-lv @@ -0,0 +1,11 @@ +kde-l10n-lv: kde-l10n-lv +kde-l10n-lv: +kde-l10n-lv: Latvian language support for KDE. +kde-l10n-lv: +kde-l10n-lv: +kde-l10n-lv: +kde-l10n-lv: +kde-l10n-lv: +kde-l10n-lv: +kde-l10n-lv: +kde-l10n-lv: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-mai b/source/kdei/slack-desc/slack-desc.kde-l10n-mai new file mode 100644 index 000000000..c6b883615 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-mai @@ -0,0 +1,11 @@ +kde-l10n-mai: kde-l10n-mai +kde-l10n-mai: +kde-l10n-mai: Maithili language support for KDE. +kde-l10n-mai: +kde-l10n-mai: +kde-l10n-mai: +kde-l10n-mai: +kde-l10n-mai: +kde-l10n-mai: +kde-l10n-mai: +kde-l10n-mai: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-mk b/source/kdei/slack-desc/slack-desc.kde-l10n-mk new file mode 100644 index 000000000..4d65fb774 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-mk @@ -0,0 +1,11 @@ +kde-l10n-mk: kde-l10n-mk +kde-l10n-mk: +kde-l10n-mk: Macedonian language support for KDE. +kde-l10n-mk: +kde-l10n-mk: +kde-l10n-mk: +kde-l10n-mk: +kde-l10n-mk: +kde-l10n-mk: +kde-l10n-mk: +kde-l10n-mk: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ml b/source/kdei/slack-desc/slack-desc.kde-l10n-ml new file mode 100644 index 000000000..6ff4b3c39 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ml @@ -0,0 +1,11 @@ +kde-l10n-ml: kde-l10n-ml +kde-l10n-ml: +kde-l10n-ml: Malayalam language support for KDE. +kde-l10n-ml: +kde-l10n-ml: +kde-l10n-ml: +kde-l10n-ml: +kde-l10n-ml: +kde-l10n-ml: +kde-l10n-ml: +kde-l10n-ml: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-mr b/source/kdei/slack-desc/slack-desc.kde-l10n-mr new file mode 100644 index 000000000..39a721baa --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-mr @@ -0,0 +1,11 @@ +kde-l10n-mr: kde-l10n-mr +kde-l10n-mr: +kde-l10n-mr: Marathi language support for KDE. +kde-l10n-mr: +kde-l10n-mr: +kde-l10n-mr: +kde-l10n-mr: +kde-l10n-mr: +kde-l10n-mr: +kde-l10n-mr: +kde-l10n-mr: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-nb b/source/kdei/slack-desc/slack-desc.kde-l10n-nb new file mode 100644 index 000000000..cee273ca0 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-nb @@ -0,0 +1,11 @@ +kde-l10n-nb: kde-l10n-nb +kde-l10n-nb: +kde-l10n-nb: Norwegian (Bokmaal) language support for KDE. +kde-l10n-nb: +kde-l10n-nb: +kde-l10n-nb: +kde-l10n-nb: +kde-l10n-nb: +kde-l10n-nb: +kde-l10n-nb: +kde-l10n-nb: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-nds b/source/kdei/slack-desc/slack-desc.kde-l10n-nds new file mode 100644 index 000000000..6d0dfa72a --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-nds @@ -0,0 +1,11 @@ +kde-l10n-nds: kde-l10n-nds +kde-l10n-nds: +kde-l10n-nds: Low Saxon language support for KDE. +kde-l10n-nds: +kde-l10n-nds: +kde-l10n-nds: +kde-l10n-nds: +kde-l10n-nds: +kde-l10n-nds: +kde-l10n-nds: +kde-l10n-nds: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-nl b/source/kdei/slack-desc/slack-desc.kde-l10n-nl new file mode 100644 index 000000000..753364755 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-nl @@ -0,0 +1,11 @@ +kde-l10n-nl: kde-l10n-nl +kde-l10n-nl: +kde-l10n-nl: Dutch language support for KDE. +kde-l10n-nl: +kde-l10n-nl: +kde-l10n-nl: +kde-l10n-nl: +kde-l10n-nl: +kde-l10n-nl: +kde-l10n-nl: +kde-l10n-nl: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-nn b/source/kdei/slack-desc/slack-desc.kde-l10n-nn new file mode 100644 index 000000000..f3c10b1a6 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-nn @@ -0,0 +1,11 @@ +kde-l10n-nn: kde-l10n-nn +kde-l10n-nn: +kde-l10n-nn: Norwegian (Nynorsk) language support for KDE. +kde-l10n-nn: +kde-l10n-nn: +kde-l10n-nn: +kde-l10n-nn: +kde-l10n-nn: +kde-l10n-nn: +kde-l10n-nn: +kde-l10n-nn: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-pa b/source/kdei/slack-desc/slack-desc.kde-l10n-pa new file mode 100644 index 000000000..9b7b20091 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-pa @@ -0,0 +1,11 @@ +kde-l10n-pa: kde-l10n-pa +kde-l10n-pa: +kde-l10n-pa: Punjabi language support for KDE. +kde-l10n-pa: +kde-l10n-pa: +kde-l10n-pa: +kde-l10n-pa: +kde-l10n-pa: +kde-l10n-pa: +kde-l10n-pa: +kde-l10n-pa: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-pl b/source/kdei/slack-desc/slack-desc.kde-l10n-pl new file mode 100644 index 000000000..e5515a214 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-pl @@ -0,0 +1,11 @@ +kde-l10n-pl: kde-l10n-pl +kde-l10n-pl: +kde-l10n-pl: Polish language support for KDE. +kde-l10n-pl: +kde-l10n-pl: +kde-l10n-pl: +kde-l10n-pl: +kde-l10n-pl: +kde-l10n-pl: +kde-l10n-pl: +kde-l10n-pl: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-pt b/source/kdei/slack-desc/slack-desc.kde-l10n-pt new file mode 100644 index 000000000..f71c7ee7c --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-pt @@ -0,0 +1,11 @@ +kde-l10n-pt: kde-l10n-pt +kde-l10n-pt: +kde-l10n-pt: Portuguese language support for KDE. +kde-l10n-pt: +kde-l10n-pt: +kde-l10n-pt: +kde-l10n-pt: +kde-l10n-pt: +kde-l10n-pt: +kde-l10n-pt: +kde-l10n-pt: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-pt_BR b/source/kdei/slack-desc/slack-desc.kde-l10n-pt_BR new file mode 100644 index 000000000..fd8609787 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-pt_BR @@ -0,0 +1,11 @@ +kde-l10n-pt_BR: kde-l10n-pt_BR +kde-l10n-pt_BR: +kde-l10n-pt_BR: Brazilian Portuguese language support for KDE. +kde-l10n-pt_BR: +kde-l10n-pt_BR: +kde-l10n-pt_BR: +kde-l10n-pt_BR: +kde-l10n-pt_BR: +kde-l10n-pt_BR: +kde-l10n-pt_BR: +kde-l10n-pt_BR: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ro b/source/kdei/slack-desc/slack-desc.kde-l10n-ro new file mode 100644 index 000000000..7eea0dd78 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ro @@ -0,0 +1,11 @@ +kde-l10n-ro: kde-l10n-ro +kde-l10n-ro: +kde-l10n-ro: Romanian language support for KDE. +kde-l10n-ro: +kde-l10n-ro: +kde-l10n-ro: +kde-l10n-ro: +kde-l10n-ro: +kde-l10n-ro: +kde-l10n-ro: +kde-l10n-ro: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ru b/source/kdei/slack-desc/slack-desc.kde-l10n-ru new file mode 100644 index 000000000..e857af46d --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ru @@ -0,0 +1,11 @@ +kde-l10n-ru: kde-l10n-ru +kde-l10n-ru: +kde-l10n-ru: Russian language support for KDE. +kde-l10n-ru: +kde-l10n-ru: +kde-l10n-ru: +kde-l10n-ru: +kde-l10n-ru: +kde-l10n-ru: +kde-l10n-ru: +kde-l10n-ru: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-sk b/source/kdei/slack-desc/slack-desc.kde-l10n-sk new file mode 100644 index 000000000..65f1e8cee --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-sk @@ -0,0 +1,11 @@ +kde-l10n-sk: kde-l10n-sk +kde-l10n-sk: +kde-l10n-sk: Slovak language support for KDE. +kde-l10n-sk: +kde-l10n-sk: +kde-l10n-sk: +kde-l10n-sk: +kde-l10n-sk: +kde-l10n-sk: +kde-l10n-sk: +kde-l10n-sk: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-sl b/source/kdei/slack-desc/slack-desc.kde-l10n-sl new file mode 100644 index 000000000..8c341085a --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-sl @@ -0,0 +1,11 @@ +kde-l10n-sl: kde-l10n-sl +kde-l10n-sl: +kde-l10n-sl: Slovenian language support for KDE. +kde-l10n-sl: +kde-l10n-sl: +kde-l10n-sl: +kde-l10n-sl: +kde-l10n-sl: +kde-l10n-sl: +kde-l10n-sl: +kde-l10n-sl: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-sr b/source/kdei/slack-desc/slack-desc.kde-l10n-sr new file mode 100644 index 000000000..732a5c935 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-sr @@ -0,0 +1,11 @@ +kde-l10n-sr: kde-l10n-sr +kde-l10n-sr: +kde-l10n-sr: Serbian language support for KDE. +kde-l10n-sr: +kde-l10n-sr: +kde-l10n-sr: +kde-l10n-sr: +kde-l10n-sr: +kde-l10n-sr: +kde-l10n-sr: +kde-l10n-sr: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-sv b/source/kdei/slack-desc/slack-desc.kde-l10n-sv new file mode 100644 index 000000000..8c4838feb --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-sv @@ -0,0 +1,11 @@ +kde-l10n-sv: kde-l10n-sv +kde-l10n-sv: +kde-l10n-sv: Swedish language support for KDE. +kde-l10n-sv: +kde-l10n-sv: +kde-l10n-sv: +kde-l10n-sv: +kde-l10n-sv: +kde-l10n-sv: +kde-l10n-sv: +kde-l10n-sv: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-ta b/source/kdei/slack-desc/slack-desc.kde-l10n-ta new file mode 100644 index 000000000..795d799fc --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-ta @@ -0,0 +1,11 @@ +kde-l10n-ta: kde-l10n-ta +kde-l10n-ta: +kde-l10n-ta: Tamil language support for KDE. +kde-l10n-ta: +kde-l10n-ta: +kde-l10n-ta: +kde-l10n-ta: +kde-l10n-ta: +kde-l10n-ta: +kde-l10n-ta: +kde-l10n-ta: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-tg b/source/kdei/slack-desc/slack-desc.kde-l10n-tg new file mode 100644 index 000000000..e8b7456cc --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-tg @@ -0,0 +1,11 @@ +kde-l10n-tg: kde-l10n-tg +kde-l10n-tg: +kde-l10n-tg: Tajik language support for KDE. +kde-l10n-tg: +kde-l10n-tg: +kde-l10n-tg: +kde-l10n-tg: +kde-l10n-tg: +kde-l10n-tg: +kde-l10n-tg: +kde-l10n-tg: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-th b/source/kdei/slack-desc/slack-desc.kde-l10n-th new file mode 100644 index 000000000..0c9a65c3e --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-th @@ -0,0 +1,11 @@ +kde-l10n-th: kde-l10n-th +kde-l10n-th: +kde-l10n-th: Thai language support for KDE. +kde-l10n-th: +kde-l10n-th: +kde-l10n-th: +kde-l10n-th: +kde-l10n-th: +kde-l10n-th: +kde-l10n-th: +kde-l10n-th: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-tr b/source/kdei/slack-desc/slack-desc.kde-l10n-tr new file mode 100644 index 000000000..9ba72ec35 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-tr @@ -0,0 +1,11 @@ +kde-l10n-tr: kde-l10n-tr +kde-l10n-tr: +kde-l10n-tr: Turkish language support for KDE. +kde-l10n-tr: +kde-l10n-tr: +kde-l10n-tr: +kde-l10n-tr: +kde-l10n-tr: +kde-l10n-tr: +kde-l10n-tr: +kde-l10n-tr: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-uk b/source/kdei/slack-desc/slack-desc.kde-l10n-uk new file mode 100644 index 000000000..f918327ef --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-uk @@ -0,0 +1,11 @@ +kde-l10n-uk: kde-l10n-uk +kde-l10n-uk: +kde-l10n-uk: Ukrainian language support for KDE. +kde-l10n-uk: +kde-l10n-uk: +kde-l10n-uk: +kde-l10n-uk: +kde-l10n-uk: +kde-l10n-uk: +kde-l10n-uk: +kde-l10n-uk: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-wa b/source/kdei/slack-desc/slack-desc.kde-l10n-wa new file mode 100644 index 000000000..3bcc46c47 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-wa @@ -0,0 +1,11 @@ +kde-l10n-wa: kde-l10n-wa +kde-l10n-wa: +kde-l10n-wa: Walloon language support for KDE. +kde-l10n-wa: +kde-l10n-wa: +kde-l10n-wa: +kde-l10n-wa: +kde-l10n-wa: +kde-l10n-wa: +kde-l10n-wa: +kde-l10n-wa: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-zh_CN b/source/kdei/slack-desc/slack-desc.kde-l10n-zh_CN new file mode 100644 index 000000000..93632055b --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-zh_CN @@ -0,0 +1,11 @@ +kde-l10n-zh_CN: kde-l10n-zh_CN +kde-l10n-zh_CN: +kde-l10n-zh_CN: Simplified Chinese language support for KDE. +kde-l10n-zh_CN: +kde-l10n-zh_CN: +kde-l10n-zh_CN: +kde-l10n-zh_CN: +kde-l10n-zh_CN: +kde-l10n-zh_CN: +kde-l10n-zh_CN: +kde-l10n-zh_CN: diff --git a/source/kdei/slack-desc/slack-desc.kde-l10n-zh_TW b/source/kdei/slack-desc/slack-desc.kde-l10n-zh_TW new file mode 100644 index 000000000..8b173b9e8 --- /dev/null +++ b/source/kdei/slack-desc/slack-desc.kde-l10n-zh_TW @@ -0,0 +1,11 @@ +kde-l10n-zh_TW: kde-l10n-zh_TW +kde-l10n-zh_TW: +kde-l10n-zh_TW: Chinese language support for KDE. +kde-l10n-zh_TW: +kde-l10n-zh_TW: +kde-l10n-zh_TW: +kde-l10n-zh_TW: +kde-l10n-zh_TW: +kde-l10n-zh_TW: +kde-l10n-zh_TW: +kde-l10n-zh_TW: diff --git a/source/l/M2Crypto/M2Crypto.SlackBuild b/source/l/M2Crypto/M2Crypto.SlackBuild new file mode 100755 index 000000000..5affbbcc9 --- /dev/null +++ b/source/l/M2Crypto/M2Crypto.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright 2009 Robby Workman, Northport, Alabama, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=0.19.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=${PKG:-$TMP/package-M2Crypto} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf M2Crypto-$VERSION +tar xvf $CWD/M2Crypto-$VERSION.tar.bz2 +cd M2Crypto-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +python setup.py install --root=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/M2Crypto-$VERSION +cp -a \ + CHANGES INSTALL LICENCE PKG-INFO README doc/* \ + $PKG/usr/doc/M2Crypto-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/M2Crypto-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/M2Crypto/slack-desc b/source/l/M2Crypto/slack-desc new file mode 100644 index 000000000..ffc9eee06 --- /dev/null +++ b/source/l/M2Crypto/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +M2Crypto: M2Crypto (cryptography toolkit for Python) +M2Crypto: +M2Crypto: M2Crypto is a crypto and SSL toolkit for Python. It includes: +M2Crypto: - RSA, DSA, DH, HMACs, message digests, symmetric ciphers (e.g. AES) +M2Crypto: - SSL functionality to implement clients and servers +M2Crypto: - HTTPS extensions to Python's httplib, urllib, and xmlrpclib +M2Crypto: - Unforgeable HMAC'ing AuthCookies for web session management +M2Crypto: - FTP/TLS client and server, S/MIME v2, ZServerSSL, ZSmime +M2Crypto: +M2Crypto: Website: http://wiki.osafoundation.org/bin/view/Projects/MeTooCrypto +M2Crypto: diff --git a/source/l/PyQt/PyQt.SlackBuild b/source/l/PyQt/PyQt.SlackBuild new file mode 100755 index 000000000..4232d5f46 --- /dev/null +++ b/source/l/PyQt/PyQt.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Slackware build script for PyQt + +# Copyright 2008 Aleksandar Samardzic <asamardzic@gmail.com> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman <rworkman@slackware.com> + +VERSION=${VERSION:-4.4.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-PyQt + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf PyQt-$VERSION +tar xvf $CWD/PyQt-x11-gpl-$VERSION.tar.bz2 || exit 1 +cd PyQt-x11-gpl-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo "yes" | \ + python configure.py \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/PyQt-$VERSION +cp -a \ + GPL_EXCEPTION*.TXT LICENSE.* NEWS OPENSOURCE-NOTICE.TXT README THANKS doc/* \ + $PKG/usr/doc/PyQt-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/PyQt-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/PyQt/PyQt.info b/source/l/PyQt/PyQt.info new file mode 100644 index 000000000..f041f25b7 --- /dev/null +++ b/source/l/PyQt/PyQt.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://www.riverbankcomputing.co.uk/software/pyqt/" +DOWNLOAD="http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-4.4.2.tar.gz" diff --git a/source/l/PyQt/slack-desc b/source/l/PyQt/slack-desc new file mode 100644 index 000000000..036065434 --- /dev/null +++ b/source/l/PyQt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +PyQt: PyQt (Python bindings for Qt) +PyQt: +PyQt: PyQt is a set of Python bindings for Trolltech's Qt application +PyQt: framework and runs on all platforms supported by Qt. +PyQt: +PyQt: Homepage: http://www.riverbankcomputing.co.uk/software/PyQt/ +PyQt: +PyQt: +PyQt: +PyQt: +PyQt: diff --git a/source/l/QScintilla/QScintilla.SlackBuild b/source/l/QScintilla/QScintilla.SlackBuild new file mode 100755 index 000000000..3625a067c --- /dev/null +++ b/source/l/QScintilla/QScintilla.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Slackware build script for QScintilla + +# Copyright 2008 Robby Workman <rworkman@slackware.com> Northport, AL, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +VERSION=${VERSION:-2.3.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-QScintilla + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf QScintilla-gpl-$VERSION +tar xvf $CWD/QScintilla-gpl-$VERSION.tar.bz2 || exit 1 +cd QScintilla-gpl-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cd Qt4 + qmake -unix -o Makefile qscintilla.pro + make + make install INSTALL_ROOT=$PKG + # Yes, we'll spam the dev environment so we can build the other parts. + make install +cd - + +cd designer-Qt4 + qmake -unix -o Makefile designer.pro + make + make install INSTALL_ROOT=$PKG +cd - + +cd Python + python configure.py -p 4 + make + make install DESTDIR=$PKG +cd - + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/QScintilla-$VERSION +cp -a \ + *GPL* COPYING* NEWS OPENSOURCE-NOTICE.TXT README* doc/html-Qt4 doc/Scintilla \ + $PKG/usr/doc/QScintilla-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/QScintilla-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/QScintilla/QScintilla.info b/source/l/QScintilla/QScintilla.info new file mode 100644 index 000000000..f7b71c771 --- /dev/null +++ b/source/l/QScintilla/QScintilla.info @@ -0,0 +1,8 @@ +PRGNAM="QScintilla" +VERSION="2.2" +HOMEPAGE="http://www.riverbankcomputing.co.uk/software/qscintilla/" +DOWNLOAD="http://www.riverbankcomputing.co.uk/static/Downloads/QScintilla2/QScintilla-gpl-2.2.tar.gz" +MD5SUM="a6056c444494f3f849020d241f86c286" +MAINTAINER="Robby Workman" +EMAIL="rw@rlworkman.net" +APPROVED="" diff --git a/source/l/QScintilla/slack-desc b/source/l/QScintilla/slack-desc new file mode 100644 index 000000000..f6edc094a --- /dev/null +++ b/source/l/QScintilla/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------| +QScintilla: QScintilla (Qt port of the Scintilla C++ editor control) +QScintilla: +QScintilla: QScintilla includes features especially useful when editing and +QScintilla: debugging source code. These include support for syntax styling, +QScintilla: error indicators, code completion, and call tips. The selection +QScintilla: margin can contain markers like those used in debuggers to +QScintilla: indicate breakpoints and the current line. Styling choices are +QScintilla: more open than with many editors, allowing the use of +QScintilla: proportional fonts, bold and italics, multiple foreground and +QScintilla: background colours, and multiple fonts. +QScintilla: diff --git a/source/l/aalib/aalib.SlackBuild b/source/l/aalib/aalib.SlackBuild new file mode 100755 index 000000000..120d8433f --- /dev/null +++ b/source/l/aalib/aalib.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=aalib +VERSION=1.4rc5 +SRCVER=1.4.0 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-${SRCVER} || exit 1 +# Compensate for modern times: +cp /usr/share/libtool/config.{guess,sub} . +sed -i -e "s# -lslang# -lslang1#" configure + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ANNOUNCE AUTHORS COPYING ChangeLog INSTALL NEWS README README.OS2 \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/aalib/slack-desc b/source/l/aalib/slack-desc new file mode 100644 index 000000000..fed222b05 --- /dev/null +++ b/source/l/aalib/slack-desc @@ -0,0 +1,21 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +aalib: aalib (ASCII Art library) _1l1vlvlvlvlvlvlvlvlvvl=. +aalib: __111llvl+' __...._ +1lv11=. +aalib: AA-lib is an ASCII art graphics _11vllvlv+ =vlvlvl1= /1vlvv1i=_ +aalib: library. Internally, the AA-lib _vvllvlvlv= -+vlvlvlvlvlvlvlvdvl=_ +aalib: API is similar to other graphics _:lvlvlvlvlv=. --^-^1lvlvlrlvv1s +aalib: libraries, but it renders the =llvlvvlvlvv11lvl=.... -lvlevlvlvv +aalib: the output into ASCII art (like =lvlvlvlvll-^+1vv11111v_ vlkllvllvl +aalib: the example to the right :^) =lvlvlvlvl1 +1vv1v1lv _llvlvlvlvl +aalib: The developers of AA-lib are +1lv |vlvl' -^-^- _1olvlvlvlv' +aalib: Jan Hubicka, Thomas A. K. Kjaer, -1vl |lvlvlvlvlvlvlvlvv1vlvlvlvlv+. +aalib: Tim Newsome, and Kamil Toman. +1 ^^^^^^^^^^^^^^^^^^^^^^^^vlv- +aalib: -+uvlvlvlvlvlvlvlvlvlvlvlvl+_ +aalib: -vlvlvlvlvlvlvlvllvlvl-' diff --git a/source/l/aalib/slack-desc.11line b/source/l/aalib/slack-desc.11line new file mode 100644 index 000000000..9a9a14777 --- /dev/null +++ b/source/l/aalib/slack-desc.11line @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +aalib: aalib (ASCII Art library) __111llvl+' __...._ +1lv11=. +aalib: _11vllvlv+ =vlvlvl1= /1vlvv1i=_ +aalib: AA-lib is an ASCII art graphics _vvllvlvlv= -+vlvlvlvlvlvlvlvdvl=_ +aalib: library. Internally, the AA-lib _:lvlvlvlvlv=. --^-^1lvlvlrlvv1s +aalib: API is similar to other graphics =llvlvvlvlvv11lvl=.... -lvlevlvlvv +aalib: libraries, but it renders the =lvlvlvlvll-^+1vv11111v_ vlkllvllvl +aalib: the output into ASCII art (like =lvlvlvlvl1 +1vv1v1lv _llvlvlvlvl +aalib: the example to the right :^) +1lv |vlvl' -^-^- _1olvlvlvlv' +aalib: The developers of AA-lib are -1vl |lvlvlvlvlvlvlvlvv1vlvlvlvlv+. +aalib: Jan Hubicka, Thomas A. K. Kjaer, +1 ^^^^^^^^^^^^^^^^^^^^^^^^vlv- +aalib: Tim Newsome, and Kamil Toman. -+uvlvlvlvlvlvlvlvlvlvlvlvl+_ diff --git a/source/l/akonadi/akonadi.SlackBuild b/source/l/akonadi/akonadi.SlackBuild new file mode 100755 index 000000000..5fdd980b6 --- /dev/null +++ b/source/l/akonadi/akonadi.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Slackware build script for akonadi + +# Copyright 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.1.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-akonadi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +tar xvf $CWD/akonadi-$VERSION.tar.bz2 || exit 1 +cd akonadi-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +if [ -d $PKG/usr/man ]; then + gzip -9 $PKG/usr/man/man?/* +fi + +mkdir -p $PKG/usr/doc/akonadi-$VERSION +cp -a \ + AUTHORS INSTALL README lgpl-license \ + $PKG/usr/doc/akonadi-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/akonadi-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/akonadi/doinst.sh b/source/l/akonadi/doinst.sh new file mode 100644 index 000000000..aab1b9e3c --- /dev/null +++ b/source/l/akonadi/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x /usr/bin/update-mime-database ]; then + /usr/bin/update-mime-database ./usr/share/mime >/dev/null 2>&1 +fi + diff --git a/source/l/akonadi/slack-desc b/source/l/akonadi/slack-desc new file mode 100644 index 000000000..d0c26bb62 --- /dev/null +++ b/source/l/akonadi/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +akonadi: akonadi (PIM storage service) +akonadi: +akonadi: akonadi is an extensible cross-desktop storage service for PIM data +akonadi: and meta data providing concurrent read, write, and query access. +akonadi: It will provide a unique desktop wide object identification and +akonadi: retrieval. +akonadi: +akonadi: Homepage: http://www.kdepim.org/akonadi/ +akonadi: +akonadi: +akonadi: diff --git a/source/l/alsa-lib/alsa-lib.SlackBuild b/source/l/alsa-lib/alsa-lib.SlackBuild new file mode 100755 index 000000000..f88d84550 --- /dev/null +++ b/source/l/alsa-lib/alsa-lib.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.0.18 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-alsa-lib + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf alsa-lib-$VERSION +tar xvf $CWD/alsa-lib-$VERSION.tar.bz2 || exit 1 +cd alsa-lib-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ + ./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# TODO? +# ( cd src/pcm/ext +# make jack +# make jack-install ) + +mkdir -p $PKG/usr/doc/alsa-lib-$VERSION +cp -a \ + INSTALL MEMORY-LEAK NOTES TODO \ + $PKG/usr/doc/alsa-lib-$VERSION +cp -a COPYING $PKG/usr/doc/alsa-lib-$VERSION/COPYING.lib +cp -a aserver/COPYING $PKG/usr/doc/alsa-lib-$VERSION/COPYING.aserver + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/alsa-lib-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/alsa-lib/slack-desc b/source/l/alsa-lib/slack-desc new file mode 100644 index 000000000..11afb8366 --- /dev/null +++ b/source/l/alsa-lib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +alsa-lib: alsa-lib (Advanced Linux Sound Architecture library) +alsa-lib: +alsa-lib: The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI +alsa-lib: functionality to the Linux operating system. This is the ALSA library +alsa-lib: (libasound) which is used by audio applications. +alsa-lib: +alsa-lib: For more information, see http://alsa-project.org +alsa-lib: +alsa-lib: +alsa-lib: +alsa-lib: diff --git a/source/l/alsa-oss/alsa-oss.SlackBuild b/source/l/alsa-oss/alsa-oss.SlackBuild new file mode 100755 index 000000000..058a87a1f --- /dev/null +++ b/source/l/alsa-oss/alsa-oss.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.0.17 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=1 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-alsa-oss +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf alsa-oss-$VERSION +tar xjvf $CWD/alsa-oss-$VERSION.tar.bz2 || exit 1 +cd alsa-oss-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG + +gzip -9 $PKG/usr/man/man?/*.? +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/usr/doc/alsa-oss-$VERSION +cp -a \ + COPYING \ + $PKG/usr/doc/alsa-oss-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/alsa-oss-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/alsa-oss/slack-desc b/source/l/alsa-oss/slack-desc new file mode 100644 index 000000000..0a1258e3a --- /dev/null +++ b/source/l/alsa-oss/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +alsa-oss: alsa-oss (library/wrapper to use OSS programs with ALSA) +alsa-oss: +alsa-oss: The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI +alsa-oss: functionality to the Linux operating system. OSS (Open Sound System) +alsa-oss: is an older sound system for Linux that ALSA is replacing. Using +alsa-oss: the aoss wrapper you can use programs that only support OSS with ALSA +alsa-oss: without having to load the OSS compatibility kernel modules. +alsa-oss: +alsa-oss: +alsa-oss: +alsa-oss: diff --git a/source/l/apr-util/apr-util.SlackBuild b/source/l/apr-util/apr-util.SlackBuild new file mode 100755 index 000000000..a109d75bc --- /dev/null +++ b/source/l/apr-util/apr-util.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-1.3.9} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-apr-util + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf apr-util-$VERSION +tar xvf $CWD/apr-util-$VERSION.tar.bz2 || exit 1 +cd apr-util-$VERSION + +# For now, this isn't working with svn (here, anyway) and is probably +# more trouble than it's worth. Could be a grey area in regards to +# licensing, too -- the Apache people say it's fine for third parties +# to link this and distribute the result, but there are usually some +# differing opinions when it comes to this sort of thing... +#( cd dbd ; lftpget http://apache.webthing.com/svn/apache/apr/apr_dbd_mysql.c ) +# --with-mysql=/usr \ +# + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-apr=/usr \ + --with-dbm=db44 \ + --with-berkeley-db \ + --disable-util-dso \ + --without-gdbm \ + --with-ldap \ + --disable-static \ + --without-sqlite2 \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make dox || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/apr-util-$VERSION +cp -a \ + CHANGES INSTALL.MySQL LICENSE NOTICE \ + $PKG/usr/doc/apr-util-$VERSION + +# This just seems like way too much stuff... +#mv docs/dox/html $PKG/usr/doc/apr-util-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/apr-util-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/apr-util/slack-desc b/source/l/apr-util/slack-desc new file mode 100644 index 000000000..cec19063e --- /dev/null +++ b/source/l/apr-util/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +apr-util: apr-util (Apache Portable Runtime utilities) +apr-util: +apr-util: The mission of the Apache Portable Runtime (APR) is to provide a +apr-util: free library of C data structures and routines, forming a system +apr-util: portability layer to as many operating systems as possible. +apr-util: +apr-util: This package contains additional utility interfaces for APR; +apr-util: including support for XML, LDAP, database interfaces, URI parsing, +apr-util: and more. +apr-util: +apr-util: diff --git a/source/l/apr/apr.SlackBuild b/source/l/apr/apr.SlackBuild new file mode 100755 index 000000000..b6f2237e1 --- /dev/null +++ b/source/l/apr/apr.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-1.3.8} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-apr + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf apr-$VERSION +tar xvf $CWD/apr-$VERSION.tar.bz2 || exit 1 +cd apr-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-installbuilddir=/usr/lib${LIBDIRSUFFIX}/apr-${VERSION}/build-1 \ + --disable-static \ + --with-devrandom=/dev/urandom \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make dox || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/apr-$VERSION +cp -a \ + CHANGES LICENSE NOTICE README.dev \ + $PKG/usr/doc/apr-$VERSION + +# This just seems like way too much stuff... +#mv docs/dox/html $PKG/usr/doc/apr-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/apr-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/apr/slack-desc b/source/l/apr/slack-desc new file mode 100644 index 000000000..2e52660d5 --- /dev/null +++ b/source/l/apr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +apr: apr (Apache Portable Runtime) +apr: +apr: The mission of the Apache Portable Runtime (APR) is to provide a +apr: free library of C data structures and routines, forming a system +apr: portability layer to as many operating systems as possible. +apr: +apr: +apr: +apr: +apr: +apr: diff --git a/source/l/aspell-dict/aspell-dict.SlackBuild b/source/l/aspell-dict/aspell-dict.SlackBuild new file mode 100755 index 000000000..4d9cb2f12 --- /dev/null +++ b/source/l/aspell-dict/aspell-dict.SlackBuild @@ -0,0 +1,63 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-aspell-dict + +BUILD=${BUILD:-4} + +for file in aspell*bz2 ; do + NAME=$(echo $file | cut -f 1-2 -d -)-$(echo $file | cut -f 3- -d - | rev | cut -b9- | rev | tr '[\-]' '[_]') + rm -rf $PKG + mkdir -p $TMP $PKG + cd $TMP + tar xjf $CWD/$file + cd $(basename $file .tar.bz2) + chown -R root:root . + ./configure + make + make install DESTDIR=$PKG + # Use a uniform package name. + NAME=$(echo $NAME | sed 's/aspell5/aspell/' | sed 's/aspell6/aspell/') + mkdir -p $PKG/usr/doc/${NAME} + cp -a \ + README Copyright \ + $PKG/usr/doc/${NAME} + chmod 644 $PKG/usr/doc/${NAME}/* + mkdir $PKG/install + SLACKDESC=$(echo $NAME | cut -f 1-2 -d -) + echo "${SLACKDESC}: ${SLACKDESC}" > $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + echo "${SLACKDESC}: $(head -n 1 README)." >> $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + echo "${SLACKDESC}:" >> $PKG/install/slack-desc + cd $PKG + makepkg -l y -c n $TMP/${NAME}-noarch-$BUILD.txz +done diff --git a/source/l/aspell/aspell.SlackBuild b/source/l/aspell/aspell.SlackBuild new file mode 100755 index 000000000..9aa5d6fa3 --- /dev/null +++ b/source/l/aspell/aspell.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.60.5 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-aspell + +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf aspell-$VERSION +tar xjvf $CWD/aspell-$VERSION.tar.bz2 || exit 1 +cd aspell-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-pkgdatadir=/usr/lib${LIBDIRSUFFIX}/aspell \ + --enable-data-dir=/usr/lib${LIBDIRSUFFIX}/aspell \ + --enable-pkglibdir=/usr/lib${LIBDIRSUFFIX}/aspell \ + --enable-dict-dir=/usr/lib${LIBDIRSUFFIX}/aspell \ + --build=$ARCH-slackware-linux +make $NUMJOBS || exit 1 +make install +ldconfig +make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded +) +## This looks like crap clutter to me +## ... turns out to be required. How ugly... +#rm -f $PKG/usr/bin/pre* +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/usr/doc/aspell-$VERSION +cp -a \ + COPYING README TODO \ + $PKG/usr/doc/aspell-$VERSION +mv $PKG/usr/share/doc/aspell/*html $PKG/usr/doc/aspell-$VERSION +rm -rf $PKG/usr/share/doc +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/aspell-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/aspell/slack-desc b/source/l/aspell/slack-desc new file mode 100644 index 000000000..abd31522e --- /dev/null +++ b/source/l/aspell/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +aspell: aspell (spell checker) +aspell: +aspell: GNU Aspell is a spell checker designed to eventually replace Ispell. +aspell: It can either be used as a library or as an independent spell checker. +aspell: +aspell: +aspell: +aspell: +aspell: +aspell: +aspell: diff --git a/source/l/atk/atk.SlackBuild b/source/l/atk/atk.SlackBuild new file mode 100755 index 000000000..6cea42737 --- /dev/null +++ b/source/l/atk/atk.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.26.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-atk + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG/usr +cd $TMP +rm -rf atk-$VERSION +tar xvf $CWD/atk-$VERSION.tar.bz2 || exit 1 +cd atk-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +#gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/usr/doc/atk-$VERSION +cp -a \ + AUTHORS COPYING NEWS README TODO \ + $PKG/usr/doc/atk-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/atk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/atk/slack-desc b/source/l/atk/slack-desc new file mode 100644 index 000000000..a52cc81eb --- /dev/null +++ b/source/l/atk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +atk: atk (accessibility functions library) +atk: +atk: atk is a library of accessibility functions that is used by the +atk: GTK+-2 toolkit. +atk: +atk: +atk: +atk: +atk: +atk: +atk: diff --git a/source/l/audiofile/audiofile.SlackBuild b/source/l/audiofile/audiofile.SlackBuild new file mode 100755 index 000000000..492292f5b --- /dev/null +++ b/source/l/audiofile/audiofile.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=audiofile +VERSION=${VERSION:-0.2.6} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING TODO README ChangeLog \ + docs/* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/audiofile/slack-desc b/source/l/audiofile/slack-desc new file mode 100644 index 000000000..5ef0b37d0 --- /dev/null +++ b/source/l/audiofile/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +audiofile: audiofile (audio support library) +audiofile: +audiofile: Audiofile is a library to handle various audio file formats, and is +audiofile: used by the esound daemon. You can also use it to develop your own +audiofile: audiofile applications. +audiofile: +audiofile: +audiofile: +audiofile: +audiofile: +audiofile: diff --git a/source/l/automoc4/automoc4.SlackBuild b/source/l/automoc4/automoc4.SlackBuild new file mode 100755 index 000000000..2d898de90 --- /dev/null +++ b/source/l/automoc4/automoc4.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.9.88 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-automoc4 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +tar xvf $CWD/automoc4-$VERSION.tar.bz2 || exit 1 +cd automoc4-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DCMAKE_INSTALL_PREFIX=/usr \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/automoc4-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/automoc4/slack-desc b/source/l/automoc4/slack-desc new file mode 100644 index 000000000..e4fbc8a23 --- /dev/null +++ b/source/l/automoc4/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +automoc4: automoc4 (automatic moc for Qt4) +automoc4: +automoc4: This package contains the automoc4 binary which is used to run moc +automoc4: on the right source files in a Qt 4 or KDE 4 application. +automoc4: Moc is the meta object compiler which is a widely used tool with Qt +automoc4: and creates standard C++ files to provide syntactic sugar of the +automoc4: signal/slots mechanism. +automoc4: +automoc4: +automoc4: See also http://www.kde.org +automoc4: diff --git a/source/l/babl/babl.SlackBuild b/source/l/babl/babl.SlackBuild new file mode 100755 index 000000000..d646e0d2c --- /dev/null +++ b/source/l/babl/babl.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009 Robby Workman, Northport, Alabama, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.0.22 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-babl + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf babl-$VERSION +tar xvf $CWD/babl-$VERSION.tar.bz2 || exit 1 +cd babl-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# I'm not sure about --enable-sse +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --docdir=/usr/doc/babl-$VERSION \ + --enable-mmx \ + --disable-sse \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/babl-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README TODO \ + $PKG/usr/doc/babl-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/babl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/babl/slack-desc b/source/l/babl/slack-desc new file mode 100644 index 000000000..1fa63fb58 --- /dev/null +++ b/source/l/babl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler---------------------------------------------------------| +babl: babl (pixel format translation library) +babl: +babl: babl is a dynamic, any to any, pixel format translation library. +babl: +babl: It allows converting between different methods of storing pixels known +babl: as pixel formats that have with different bitdepths and other data +babl: representations, color models and component permutations. +babl: +babl: A vocabulary to formulate new pixel formats from existing primitives is +babl: provided as well as the framework to add new color models and data types. +babl: diff --git a/source/l/boost/boost.SlackBuild b/source/l/boost/boost.SlackBuild new file mode 100755 index 000000000..bb9e8e8fb --- /dev/null +++ b/source/l/boost/boost.SlackBuild @@ -0,0 +1,143 @@ +#!/bin/sh + +# Copyright 2007, 2008 Eric Hameleers, Eindhoven, NL +# Copyright 2007-2008 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED ''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 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. + +# bjam-build system mostly taken from SlackBuild by Eric Hameleers +# Script modified by Robby Workman - no copyright claims or added terms + +VERSION=1_38_0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-boost + +ICU=${ICU:-no} +PKG_VERSION=$(echo $VERSION | tr _ .) # Leave this alone + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf boost_$VERSION +tar xvf $CWD/boost_$VERSION.tar.bz2 || exit 1 +cd boost_$VERSION || exit 1 + +zcat $CWD/boost.ifdef_placement.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Apply Hotfixes from: +# http://svn.boost.org/trac/boost/wiki/ReleasePractices/HotFixes +# +# (none currently for this $VERSION) + +# This is the python we build against: +PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]') +PYTHON_FLAGS="-sPYTHON_ROOT=/usr -sPYTHON_VERSION=$PYTHON_VERSION" + +# First build bjam, the boost build system: +cd tools/jam/src + CFLAGS="$SLKCFLAGS -fno-strict-aliasing" CC=gcc ./build.sh cc +cd - + +BJAM=$(find tools/jam/src/ -name bjam -a -type f) + +# Create build subdirectory +mkdir obj + +# Change the build options from 'minimal' to what we want, since adding +# "-sBUILD=<optimization>speed <inlining>full <threading>single/multi +# <link>shared <runtime-link>shared" to $BJAM command no longer seems to work. +FLAGS="<threading>multi <threading>single <optimization>speed <inlining>full" +sed -i "s/ <threading>multi/ $FLAGS/" Jamroot +# Disable static libraries ( the only software that *requires* the static libs, +# is Microsoft's CW compiler (CW or Comega is an experimental language which +# extends C# ) +sed -i "s/<link>shared <link>static/<link>shared/" Jamroot + +# Next, we build boost using bjam +$BJAM \ + release \ + "-sNO_COMPRESSION=0" \ + "-sZLIB_INCLUDE=/usr/include" \ + "-sZLIB_LIBPATH=/usr/lib${LIBDIRSUFFIX}" \ + "-sBZIP2_INCLUDE=/usr/include" \ + "-sBZIP2_LIBPATH=/usr/lib${LIBDIRSUFFIX}" \ + "-sEXPAT_INCLUDE=/usr/include" \ + "-sEXPAT_LIBPATH=/usr/lib${LIBDIRSUFFIX}" \ + --toolset=gcc \ + --layout=system \ + --builddir=obj \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build-type=minimal \ + $PYTHON_FLAGS \ + stage + +# And then install boost.. +mkdir -p $PKG/usr/{lib$LIBDIRSUFFIX,include} + +$BJAM \ + release \ + "-sEXPAT_INCLUDE=/usr/include" \ + "-sEXPAT_LIBPATH=/usr/lib${LIBDIRSUFFIX}" \ + --toolset=gcc \ + --layout=system \ + --builddir=obj \ + --prefix=$PKG/usr \ + --libdir=$PKG/usr/lib${LIBDIRSUFFIX} \ + --build-type=minimal \ + $PYTHON_FLAGS \ + install + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/boost-$PKG_VERSION +# Do not copy 44MB of developer 'doc/html' into our package... +cp -a LICENSE_1_0.txt $PKG/usr/doc/boost-$PKG_VERSION +find $PKG/usr/doc -type f -exec chmod 0644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n /tmp/boost-$PKG_VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/boost/boost.ifdef_placement.diff b/source/l/boost/boost.ifdef_placement.diff new file mode 100644 index 000000000..92dd6b55c --- /dev/null +++ b/source/l/boost/boost.ifdef_placement.diff @@ -0,0 +1,14 @@ +--- ./boost/function/function_template.hpp.orig 2008-10-16 08:21:50.000000000 -0500 ++++ ./boost/function/function_template.hpp 2009-08-24 20:45:28.000000000 -0500 +@@ -950,10 +950,10 @@ + f.vtable->manager(f.functor, this->functor, + boost::detail::function::move_functor_tag); + f.vtable = 0; +-#if !defined(BOOST_NO_EXCEPTIONS) + } else { + clear(); + } ++#if !defined(BOOST_NO_EXCEPTIONS) + } catch (...) { + vtable = 0; + throw; diff --git a/source/l/boost/slack-desc b/source/l/boost/slack-desc new file mode 100644 index 000000000..1b3142ace --- /dev/null +++ b/source/l/boost/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +boost: boost (Boost C++ Libraries) +boost: +boost: Boost provides free peer-reviewed portable C++ source libraries. +boost: The emphasis is on libraries that work well with the C++ Standard +boost: Library. One goal is to establish "existing practice" and provide +boost: reference implementations so that the Boost libraries are suitable +boost: for eventual standardization. +boost: +boost: Homepage: http://www.boost.org/ +boost: +boost: diff --git a/source/l/cairo/cairo.SlackBuild b/source/l/cairo/cairo.SlackBuild new file mode 100755 index 000000000..a6ddc3447 --- /dev/null +++ b/source/l/cairo/cairo.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.8.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cairo +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf cairo-$VERSION +tar xvf $CWD/cairo-$VERSION.tar.bz2 || exit 1 +cd cairo-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Time to try leaving this out again? +# --disable-xcb + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --disable-gtk-doc \ + --disable-glitz \ + --disable-quartz \ + --disable-static \ + --disable-win32 +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/cairo-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README TODO \ + $PKG/usr/doc/cairo-$VERSION +( cd $PKG/usr/doc/cairo-$VERSION ; ln -sf /usr/share/gtk-doc/html/cairo html ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/cairo-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/cairo/slack-desc b/source/l/cairo/slack-desc new file mode 100644 index 000000000..b70ae035b --- /dev/null +++ b/source/l/cairo/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cairo: cairo (graphics library used by GTK+) +cairo: +cairo: Cairo is a vector graphics library designed to provide high-quality +cairo: display and print output. Cairo is designed to produce +cairo: identical output on all output media while taking advantage of display +cairo: hardware acceleration when available (eg. through the X Render +cairo: Extension or OpenGL). +cairo: +cairo: +cairo: +cairo: + diff --git a/source/l/chmlib/chmlib.SlackBuild b/source/l/chmlib/chmlib.SlackBuild new file mode 100755 index 000000000..252dc53b4 --- /dev/null +++ b/source/l/chmlib/chmlib.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2007-2008 Robby Workman, Northport, Alabama, 35475 +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=0.39 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-chmlib + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf chmlib-$VERSION +tar xvf $CWD/chmlib-$VERSION.tar.bz2 || exit 1 +cd chmlib-$VERSION || exit 1 || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --docdir=/usr/doc/chmlib-$VERSION \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rmdir $PKG/usr/bin # Kill unused directory + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/chmlib-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README \ + $PKG/usr/doc/chmlib-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/chmlib-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/chmlib/chmlib.info b/source/l/chmlib/chmlib.info new file mode 100644 index 000000000..6bd5005c1 --- /dev/null +++ b/source/l/chmlib/chmlib.info @@ -0,0 +1,5 @@ +PRGNAM=chmlib +VERSION=0.39 +HOMEPAGE=http://www.jedrea.com/chmlib/ +DOWNLOAD=http://www.jedrea.com/chmlib/chmlib-0.39.tar.bz2 +MD5SUM=debed1a0bdded7a12d3d967e497cea9c diff --git a/source/l/chmlib/slack-desc b/source/l/chmlib/slack-desc new file mode 100644 index 000000000..9ec72723e --- /dev/null +++ b/source/l/chmlib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler----------------------------------------------------| +chmlib: chmlib (library for accessing CHM files) +chmlib: +chmlib: chmlib is a small library designed for accessing MS ITSS files. +chmlib: The ITSS file format is used for Microsoft Html Help files (.chm), +chmlib: which have been the predominant medium for software documentation +chmlib: from Microsoft during the past several years, having superceded +chmlib: the previously used .hlp file format. +chmlib: +chmlib: Homepage: http://www.jedrea.com/chmlib/ +chmlib: +chmlib: diff --git a/source/l/clucene/clucene.SlackBuild b/source/l/clucene/clucene.SlackBuild new file mode 100755 index 000000000..fc4d4d4a4 --- /dev/null +++ b/source/l/clucene/clucene.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2007 Heinz Wiesinger <hmwiesinger@gmx.at> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman <rworkman@slackware.com> +# No added terms or copyright claims + + +VERSION=0.9.21b +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-clucene + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf clucene-core-$VERSION +tar xvf $CWD/clucene-core-$VERSION.tar.bz2 || exit 1 +cd clucene-core-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/clucene-$VERSION +cp -a \ + APACHE.license AUTHORS COPYING* HACKING INSTALL \ + LGPL.license NEWS README REQUESTS \ + $PKG/usr/doc/clucene-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/clucene-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/clucene/clucene.info b/source/l/clucene/clucene.info new file mode 100644 index 000000000..52478e81b --- /dev/null +++ b/source/l/clucene/clucene.info @@ -0,0 +1,5 @@ +PRGNAM="clucene" +VERSION="0.9.20" +HOMEPAGE="http://clucene.sourceforge.net" +DOWNLOAD="http://downloads.sourceforge.net/clucene/clucene-core-0.9.20.tar.bz2" +MD5SUM="da62da5d23b17fec67f0175481a603b8" diff --git a/source/l/clucene/slack-desc b/source/l/clucene/slack-desc new file mode 100644 index 000000000..5d1d1a277 --- /dev/null +++ b/source/l/clucene/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler----------------------------------------------------| +clucene: clucene (Text-Search Engine) +clucene: +clucene: CLucene is a C++ port of Lucene. It is a high-performance, +clucene: full-featured text search engine written in C++. +clucene: +clucene: Homepage: http://clucene.sourceforge.net +clucene: +clucene: +clucene: +clucene: +clucene: diff --git a/source/l/db42/db42.SlackBuild b/source/l/db42/db42.SlackBuild new file mode 100755 index 000000000..21f5a50aa --- /dev/null +++ b/source/l/db42/db42.SlackBuild @@ -0,0 +1,140 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.2.52 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-db42 +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + CONFIGURE_ARGS="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + CONFIGURE_ARGS="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + # Needed as a workaround for: + # "architecture lacks fast mutexes: applications cannot be threaded" + CONFIGURE_ARGS="--with-mutex=x86/gcc-assembly" +fi + +cd $TMP +rm -rf db-$VERSION +tar xjvf $CWD/db-$VERSION.tar.bz2 +cd db-$VERSION +zcat $CWD/patch.4.2.52.1.gz | patch -p0 --verbose || exit 1 +zcat $CWD/patch.4.2.52.2.gz | patch -p0 --verbose || exit 1 +zcat $CWD/patch.4.2.52.3.gz | patch -p0 --verbose || exit 1 +zcat $CWD/patch.4.2.52.4.gz | patch -p0 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +rm -rf build-dir +mkdir build-dir +cd build-dir +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +../dist/configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-shared \ + --enable-rpc \ + --enable-compat185 \ + $CONFIGURE_ARGS \ + $ARCH-slackware-linux +make -j3 +make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +# Remove WAY TOO LARGE (and misplaced) docs: +rm -rf $PKG/usr/docs +mkdir -p $PKG/usr/doc/db-$VERSION +cp -a \ + ../LICENSE ../README \ + $PKG/usr/doc/db-$VERSION +cat << EOF > $PKG/usr/doc/db-$VERSION/README-DOCS + + For a ton of additional documentation (too large to include + here) on writing source code that uses libdb42, please see + the source tarball db-$VERSION.tar.bz2, which can be found + in the Slackware source tree in source/l/db42/, or on + Sleepycat's web site: http://www.sleepycat.com. + +EOF + +# Put libdb-4.2.so into /lib${LIBDIRSUFFIX} since it might be needed +# before /usr is mounted. +mkdir -p $PKG/lib${LIBDIRSUFFIX} +mv $PKG/usr/lib${LIBDIRSUFFIX}/libdb-4.2.so $PKG/lib${LIBDIRSUFFIX}/libdb-4.2.so +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf /lib${LIBDIRSUFFIX}/libdb-4.2.so . +) + +( cd $PKG/usr/include + chmod 644 * + mkdir db42 + mv db.h db_185.h db_cxx.h db42 + # Not any more... db-4.2 is on the way out. + #ln -sf db42/db.h . + #ln -sf db42/db_185.h . + #ln -sf db42/db_cxx.h . +) + +chmod 755 $PKG/usr/bin/* + +( cd $PKG/usr/bin + mv berkeley_db_svc berkeley_db42_svc + for file in db_* ; do + mv $file db42_`echo $file | cut -f 2- -d _` + done +) + +# Not the default DB version: +rm -f $PKG/usr/include/{db.h,db_185.h,db_cxx.h} +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libdb-4.so +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libdb.{a,so} +# We will not be linking statically against this, either. +# If you need to do that, drag up an old package from the Slackware 10.2 era... +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/db42-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/db42/patch.4.2.52.1 b/source/l/db42/patch.4.2.52.1 new file mode 100644 index 000000000..474cb8751 --- /dev/null +++ b/source/l/db42/patch.4.2.52.1 @@ -0,0 +1,36 @@ +*** mp/mp_fget.c.orig 25 Sep 2003 02:15:16 -0000 11.81 +--- mp/mp_fget.c 9 Dec 2003 19:06:28 -0000 11.82 +*************** +*** 440,446 **** + c_mp->stat.st_pages--; + alloc_bhp = NULL; + R_UNLOCK(dbenv, &dbmp->reginfo[n_cache]); +- MUTEX_LOCK(dbenv, &hp->hash_mutex); + + /* + * We can't use the page we found in the pool if DB_MPOOL_NEW +--- 440,445 ---- +*************** +*** 455,460 **** +--- 454,462 ---- + b_incr = 0; + goto alloc; + } ++ ++ /* We can use the page -- get the bucket lock. */ ++ MUTEX_LOCK(dbenv, &hp->hash_mutex); + break; + case SECOND_MISS: + /* +*** mp/mp_fput.c.orig 30 Sep 2003 17:12:00 -0000 11.48 +--- mp/mp_fput.c 13 Dec 2003 00:08:29 -0000 11.49 +*************** +*** 285,290 **** +--- 285,291 ---- + bhp != NULL; bhp = SH_TAILQ_NEXT(bhp, hq, __bh)) + if (bhp->priority != UINT32_T_MAX && + bhp->priority > MPOOL_BASE_DECREMENT) ++ bhp->priority -= MPOOL_BASE_DECREMENT; + MUTEX_UNLOCK(dbenv, &hp->hash_mutex); + } + } diff --git a/source/l/db42/patch.4.2.52.2 b/source/l/db42/patch.4.2.52.2 new file mode 100644 index 000000000..3dc13c172 --- /dev/null +++ b/source/l/db42/patch.4.2.52.2 @@ -0,0 +1,45 @@ +*** lock/lock.c.save 2004-01-30 10:48:33.000000000 -0800 +--- lock/lock.c 2004-01-30 10:55:58.000000000 -0800 +*************** +*** 2216,2226 **** + dp = (u_int8_t *)dp + \ + sizeof(db_pgno_t); \ + } while (0) +! #define COPY_OBJ(dp, obj) do { \ +! memcpy(dp, obj->data, obj->size); \ +! dp = (u_int8_t *)dp + \ +! ALIGN(obj->size, \ +! sizeof(u_int32_t)); \ + } while (0) + + #define GET_COUNT(dp, count) do { \ +--- 2216,2227 ---- + dp = (u_int8_t *)dp + \ + sizeof(db_pgno_t); \ + } while (0) +! #define COPY_OBJ(dp, obj) do { \ +! memcpy(dp, \ +! (obj)->data, (obj)->size); \ +! dp = (u_int8_t *)dp + \ +! ALIGN((obj)->size, \ +! sizeof(u_int32_t)); \ + } while (0) + + #define GET_COUNT(dp, count) do { \ +*************** +*** 2339,2345 **** + for (i = 0; i < nlocks; i = j) { + PUT_PCOUNT(dp, obj[i].ulen); + PUT_SIZE(dp, obj[i].size); +! COPY_OBJ(dp, obj); + lock = (DB_LOCK_ILOCK *)obj[i].data; + for (j = i + 1; j <= i + obj[i].ulen; j++) { + lock = (DB_LOCK_ILOCK *)obj[j].data; +--- 2340,2346 ---- + for (i = 0; i < nlocks; i = j) { + PUT_PCOUNT(dp, obj[i].ulen); + PUT_SIZE(dp, obj[i].size); +! COPY_OBJ(dp, &obj[i]); + lock = (DB_LOCK_ILOCK *)obj[i].data; + for (j = i + 1; j <= i + obj[i].ulen; j++) { + lock = (DB_LOCK_ILOCK *)obj[j].data; diff --git a/source/l/db42/patch.4.2.52.3 b/source/l/db42/patch.4.2.52.3 new file mode 100644 index 000000000..9e82423c2 --- /dev/null +++ b/source/l/db42/patch.4.2.52.3 @@ -0,0 +1,247 @@ +--- java/src/com/sleepycat/db/DbEnv.java 2003-12-03 16:26:27.000000000 -0500 ++++ java/src/com/sleepycat/db/DbEnv.java 2004-03-18 15:15:42.000000000 -0500 +@@ -61,7 +61,7 @@ + // Internally, the JNI layer creates a global reference to each DbEnv, + // which can potentially be different to this. We keep a copy here so + // we can clean up after destructors. +- private Object dbenv_ref; ++ private long dbenv_ref; + private DbAppDispatch app_dispatch_handler; + private DbEnvFeedbackHandler env_feedback_handler; + private DbErrorHandler error_handler; +@@ -94,7 +94,7 @@ + void cleanup() { + swigCPtr = 0; + db_java.deleteRef0(dbenv_ref); +- dbenv_ref = null; ++ dbenv_ref = 0L; + } + + +--- java/src/com/sleepycat/db/Db.java 2003-12-03 16:26:25.000000000 -0500 ++++ java/src/com/sleepycat/db/Db.java 2004-03-18 15:15:55.000000000 -0500 +@@ -57,7 +57,7 @@ + // Internally, the JNI layer creates a global reference to each Db, + // which can potentially be different to this. We keep a copy here so + // we can clean up after destructors. +- private Object db_ref; ++ private long db_ref; + private DbEnv dbenv; + private boolean private_dbenv; + private DbAppendRecno append_recno_handler; +@@ -84,7 +84,7 @@ + private void cleanup() { + swigCPtr = 0; + db_java.deleteRef0(db_ref); +- db_ref = null; ++ db_ref = 0L; + if (private_dbenv) { + dbenv.cleanup(); + } +--- java/src/com/sleepycat/db/db_java.java 2003-12-03 16:10:54.000000000 -0500 ++++ java/src/com/sleepycat/db/db_java.java 2004-03-18 15:17:24.000000000 -0500 +@@ -14,15 +14,15 @@ + db_javaJNI.DbEnv_lock_vec(DbEnv.getCPtr(dbenv), locker, flags, list, offset, nlist); + } + +- static Object initDbEnvRef0(DbEnv self, Object handle) { ++ static long initDbEnvRef0(DbEnv self, Object handle) { + return db_javaJNI.initDbEnvRef0(DbEnv.getCPtr(self), handle); + } + +- static Object initDbRef0(Db self, Object handle) { ++ static long initDbRef0(Db self, Object handle) { + return db_javaJNI.initDbRef0(Db.getCPtr(self), handle); + } + +- static void deleteRef0(Object ref) { ++ static void deleteRef0(long ref) { + db_javaJNI.deleteRef0(ref); + } + +--- java/src/com/sleepycat/db/db_javaJNI.java 2003-12-03 16:10:55.000000000 -0500 ++++ java/src/com/sleepycat/db/db_javaJNI.java 2004-03-18 15:16:18.000000000 -0500 +@@ -45,9 +45,9 @@ + static native final void initialize(); + + public final static native void DbEnv_lock_vec(long jarg1, int jarg2, int jarg3, DbLockRequest[] jarg4, int jarg5, int jarg6) throws DbException; +- final static native Object initDbEnvRef0(long jarg1, Object jarg2); +- final static native Object initDbRef0(long jarg1, Object jarg2); +- final static native void deleteRef0(Object jarg1); ++ final static native long initDbEnvRef0(long jarg1, Object jarg2); ++ final static native long initDbRef0(long jarg1, Object jarg2); ++ final static native void deleteRef0(long jarg1); + final static native long getDbEnv0(long jarg1); + public final static native long new_Db(long jarg1, int jarg2) throws DbException; + public final static native void Db_associate(long jarg1, long jarg2, long jarg3, DbSecondaryKeyCreate jarg4, int jarg5) throws DbException; +--- libdb_java/db_java.i 2003-11-17 15:00:52.000000000 -0500 ++++ libdb_java/db_java.i 2004-03-18 09:21:14.000000000 -0500 +@@ -53,7 +53,7 @@ + // Internally, the JNI layer creates a global reference to each DbEnv, + // which can potentially be different to this. We keep a copy here so + // we can clean up after destructors. +- private Object dbenv_ref; ++ private long dbenv_ref; + private DbAppDispatch app_dispatch_handler; + private DbEnvFeedbackHandler env_feedback_handler; + private DbErrorHandler error_handler; +@@ -76,7 +76,7 @@ + void cleanup() { + swigCPtr = 0; + db_java.deleteRef0(dbenv_ref); +- dbenv_ref = null; ++ dbenv_ref = 0L; + } + + public synchronized void close(int flags) throws DbException { +@@ -220,7 +220,7 @@ + // Internally, the JNI layer creates a global reference to each Db, + // which can potentially be different to this. We keep a copy here so + // we can clean up after destructors. +- private Object db_ref; ++ private long db_ref; + private DbEnv dbenv; + private boolean private_dbenv; + private DbAppendRecno append_recno_handler; +@@ -245,7 +245,7 @@ + private void cleanup() { + swigCPtr = 0; + db_java.deleteRef0(db_ref); +- db_ref = null; ++ db_ref = 0L; + if (private_dbenv) + dbenv.cleanup(); + dbenv = null; +@@ -503,46 +503,42 @@ + } + %} + +-%native(initDbEnvRef0) jobject initDbEnvRef0(DB_ENV *self, void *handle); +-%native(initDbRef0) jobject initDbRef0(DB *self, void *handle); +-%native(deleteRef0) void deleteRef0(jobject ref); ++%native(initDbEnvRef0) jlong initDbEnvRef0(DB_ENV *self, void *handle); ++%native(initDbRef0) jlong initDbRef0(DB *self, void *handle); ++%native(deleteRef0) void deleteRef0(jlong ref); + %native(getDbEnv0) DB_ENV *getDbEnv0(DB *self); + + %{ +-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0( ++JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0( + JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { + DB_ENV *self = *(DB_ENV **)&jarg1; ++ jlong ret; + COMPQUIET(jcls, NULL); + + DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2); + self->set_errpfx(self, (const char*)self); +- return (jobject)DB_ENV_INTERNAL(self); ++ *(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self); ++ return (ret); + } + +-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0( ++JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0( + JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { + DB *self = *(DB **)&jarg1; ++ jlong ret; + COMPQUIET(jcls, NULL); + + DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2); +- return (jobject)DB_INTERNAL(self); ++ *(jobject *)&ret = (jobject)DB_INTERNAL(self); ++ return (ret); + } + + JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0( +- JNIEnv *jenv, jclass jcls, jobject jref) { +- COMPQUIET(jcls, NULL); +- +- if (jref != NULL) +- (*jenv)->DeleteGlobalRef(jenv, jref); +-} +- +-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0( + JNIEnv *jenv, jclass jcls, jlong jarg1) { +- DB *self = *(DB **)&jarg1; ++ jobject jref = *(jobject *)&jarg1; + COMPQUIET(jcls, NULL); +- COMPQUIET(jenv, NULL); + +- return (jobject)DB_INTERNAL(self); ++ if (jref != 0L) ++ (*jenv)->DeleteGlobalRef(jenv, jref); + } + + JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0( +@@ -554,7 +550,7 @@ + COMPQUIET(jcls, NULL); + + *(DB_ENV **)&env_cptr = self->dbenv; +- return env_cptr; ++ return (env_cptr); + } + + JNIEXPORT jboolean JNICALL +--- libdb_java/db_java_wrap.c 2003-12-03 16:10:36.000000000 -0500 ++++ libdb_java/db_java_wrap.c 2004-03-18 12:18:58.000000000 -0500 +@@ -1192,40 +1192,36 @@ + } + + +-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0( ++JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0( + JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { + DB_ENV *self = *(DB_ENV **)&jarg1; ++ jlong ret; + COMPQUIET(jcls, NULL); + + DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2); + self->set_errpfx(self, (const char*)self); +- return (jobject)DB_ENV_INTERNAL(self); ++ *(jobject *)&ret = (jobject)DB_ENV_INTERNAL(self); ++ return (ret); + } + +-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0( ++JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0( + JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) { + DB *self = *(DB **)&jarg1; ++ jlong ret; + COMPQUIET(jcls, NULL); + + DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2); +- return (jobject)DB_INTERNAL(self); ++ *(jobject *)&ret = (jobject)DB_INTERNAL(self); ++ return (ret); + } + + JNIEXPORT void JNICALL Java_com_sleepycat_db_db_1javaJNI_deleteRef0( +- JNIEnv *jenv, jclass jcls, jobject jref) { +- COMPQUIET(jcls, NULL); +- +- if (jref != NULL) +- (*jenv)->DeleteGlobalRef(jenv, jref); +-} +- +-JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0( + JNIEnv *jenv, jclass jcls, jlong jarg1) { +- DB *self = *(DB **)&jarg1; ++ jobject jref = *(jobject *)&jarg1; + COMPQUIET(jcls, NULL); +- COMPQUIET(jenv, NULL); + +- return (jobject)DB_INTERNAL(self); ++ if (jref != 0L) ++ (*jenv)->DeleteGlobalRef(jenv, jref); + } + + JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0( +@@ -1237,7 +1233,7 @@ + COMPQUIET(jcls, NULL); + + *(DB_ENV **)&env_cptr = self->dbenv; +- return env_cptr; ++ return (env_cptr); + } + + JNIEXPORT jboolean JNICALL diff --git a/source/l/db42/patch.4.2.52.4 b/source/l/db42/patch.4.2.52.4 new file mode 100644 index 000000000..4ba773bbc --- /dev/null +++ b/source/l/db42/patch.4.2.52.4 @@ -0,0 +1,36 @@ +*** btree/bt_rec.c.orig Tue Mar 22 09:41:49 2005 +--- btree/bt_rec.c Tue Mar 22 09:42:11 2005 +*************** +*** 222,228 **** + * previous-page pointer updated to our new page. The next + * page must exist because we're redoing the operation. + */ +! if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) { + if ((ret = + __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) { + ret = __db_pgerr(file_dbp, argp->npgno, ret); +--- 222,228 ---- + * previous-page pointer updated to our new page. The next + * page must exist because we're redoing the operation. + */ +! if (!rootsplit && argp->npgno != PGNO_INVALID) { + if ((ret = + __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) { + ret = __db_pgerr(file_dbp, argp->npgno, ret); +*************** +*** 294,300 **** + * possible that the next-page never existed, we ignore it as + * if there's nothing to undo. + */ +! if (!rootsplit && !IS_ZERO_LSN(argp->nlsn)) { + if ((ret = + __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) { + np = NULL; +--- 294,300 ---- + * possible that the next-page never existed, we ignore it as + * if there's nothing to undo. + */ +! if (!rootsplit && argp->npgno != PGNO_INVALID) { + if ((ret = + __memp_fget(mpf, &argp->npgno, 0, &np)) != 0) { + np = NULL; diff --git a/source/l/db42/slack-desc b/source/l/db42/slack-desc new file mode 100644 index 000000000..2e40e09c4 --- /dev/null +++ b/source/l/db42/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +db42: db42 (Berkeley database library version 4.2.x) +db42: +db42: The Berkeley Database (Berkeley DB) library provides embedded database +db42: support for both traditional and client/server applications. +db42: +db42: This package should be installed if compatibility is needed with +db42: databases created with the Berkeley DB version 4.2.x. +db42: +db42: +db42: +db42: diff --git a/source/l/db44/db44.SlackBuild b/source/l/db44/db44.SlackBuild new file mode 100755 index 000000000..321af9c85 --- /dev/null +++ b/source/l/db44/db44.SlackBuild @@ -0,0 +1,135 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.4.20 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-db44 +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf db-$VERSION +tar xjvf $CWD/db-$VERSION.tar.bz2 +cd db-$VERSION + +# Official patches: +zcat $CWD/patch.4.4.20.1.gz | patch -p0 --verbose +zcat $CWD/patch.4.4.20.2.gz | patch -p0 --verbose + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +rm -rf build-dir +mkdir build-dir +cd build-dir +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +../dist/configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-shared \ + --enable-rpc \ + --enable-cxx \ + --enable-compat185 \ + $ARCH-slackware-linux + +make -j3 +make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +# Remove WAY TOO LARGE (and misplaced) docs: +rm -rf $PKG/usr/docs +mkdir -p $PKG/usr/doc/db-$VERSION +cp -a \ + ../LICENSE ../README \ + $PKG/usr/doc/db-$VERSION +cat << EOF > $PKG/usr/doc/db-$VERSION/README-DOCS + + For a ton of additional documentation (too large to include + here) on writing source code that uses libdb44, please see + the source tarball db-$VERSION.tar.bz2, which can be found + in the Slackware source tree in source/l/db44/, or on + Sleepycat's web site: http://www.sleepycat.com. + +EOF + +# Move include files: +( cd $PKG/usr/include + mkdir db44 + mv *.h db44 + for file in db44/* ; do + ln -sf $file . + done + # Better add this symlink, too, just to be safe... + ln -sf db44 db4 +) + +# Put libdb-4.4.so into /lib${LIBDIRSUFFIX} since it might be needed +# before /usr is mounted (eg, nsswitch.conf can be set up to +# use databases instead of flat files) +mkdir -p $PKG/lib${LIBDIRSUFFIX} +mv $PKG/usr/lib${LIBDIRSUFFIX}/libdb-4.4.so $PKG/lib${LIBDIRSUFFIX}/libdb-4.4.so +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf /lib${LIBDIRSUFFIX}/libdb-4.4.so . +) + +# Some things might look for these libraries by other names. +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf libdb-4.4.a libdb-4.a + ln -sf libdb-4.4.a libdb4.a + ln -sf libdb-4.4.a libdb.a + ln -sf libdb_cxx-4.4.a libdb_cxx-4.a + ln -sf libdb_cxx-4.4.a libdb_cxx.a + ln -sf libdb-4.4.so libdb4.so + ln -sf libdb-4.4.so libdb.so +) + +chmod 755 $PKG/usr/bin/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/db44-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/db44/patch.4.4.20.1 b/source/l/db44/patch.4.4.20.1 new file mode 100644 index 000000000..f6877290f --- /dev/null +++ b/source/l/db44/patch.4.4.20.1 @@ -0,0 +1,27 @@ +*** qam/qam_files.c.orig 2005-10-20 11:57:12.000000000 -0700 +--- qam/qam_files.c 2006-01-27 13:38:38.000000000 -0800 +*************** +*** 411,416 **** +--- 411,422 ---- + DB_APP_DATA, buf, 0, NULL, &real_name)) != 0) + goto err; + #endif ++ ++ mpf = array->mpfarray[offset].mpf; ++ /* This extent my already be marked for delete and closed. */ ++ if (mpf == NULL) ++ goto err; ++ + /* + * The log must be flushed before the file is deleted. We depend on + * the log record of the last delete to recreate the file if we crash. +*************** +*** 418,424 **** + if (LOGGING_ON(dbenv) && (ret = __log_flush(dbenv, NULL)) != 0) + goto err; + +- mpf = array->mpfarray[offset].mpf; + (void)__memp_set_flags(mpf, DB_MPOOL_UNLINK, 1); + /* Someone could be real slow, let them close it down. */ + if (array->mpfarray[offset].pinref != 0) +--- 424,429 ---- diff --git a/source/l/db44/patch.4.4.20.2 b/source/l/db44/patch.4.4.20.2 new file mode 100644 index 000000000..0231ec711 --- /dev/null +++ b/source/l/db44/patch.4.4.20.2 @@ -0,0 +1,29 @@ +*** txn/txn.c.orig Tue Nov 1 06:50:03 2005 +--- txn/txn.c Tue Jan 31 15:05:13 2006 +*************** +*** 1049,1060 **** +--- 1049,1062 ---- + return (ret); + memcpy(txn->name, name, len); + ++ TXN_SYSTEM_LOCK(dbenv); + if (td->name != INVALID_ROFF) { + __db_shalloc_free( + &mgr->reginfo, R_ADDR(&mgr->reginfo, td->name)); + td->name = INVALID_ROFF; + } + if ((ret = __db_shalloc(&mgr->reginfo, len, 0, &p)) != 0) { ++ TXN_SYSTEM_UNLOCK(dbenv); + __db_err(dbenv, + "Unable to allocate memory for transaction name"); + +*************** +*** 1063,1068 **** +--- 1065,1071 ---- + + return (ret); + } ++ TXN_SYSTEM_UNLOCK(dbenv); + td->name = R_OFFSET(&mgr->reginfo, p); + memcpy(p, name, len); + diff --git a/source/l/db44/slack-desc b/source/l/db44/slack-desc new file mode 100644 index 000000000..fcb8418ca --- /dev/null +++ b/source/l/db44/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +db44: db4 (Berkeley database library version 4.4.x) +db44: +db44: The Berkeley Database (Berkeley DB) library provides embedded database +db44: support for both traditional and client/server applications. +db44: +db44: This package should be installed if compatibility is needed with +db44: databases created with the Berkeley DB version 4.4.x. +db44: +db44: +db44: +db44: diff --git a/source/l/dbus-glib/dbus-glib.SlackBuild b/source/l/dbus-glib/dbus-glib.SlackBuild new file mode 100755 index 000000000..6c242f78d --- /dev/null +++ b/source/l/dbus-glib/dbus-glib.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008 Robby Workman http://rlworkman.net +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=dbus-glib +VERSION=0.80 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-shared=yes \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* HACKING INSTALL NEWS README* \ + $PKG/usr/doc/$PRGNAM-$VERSION +( cd $PKG/usr/doc/$PRGNAM-$VERSION + ln -s ../../share/gtk-doc/html/dbus-glib/ html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/dbus-glib/slack-desc b/source/l/dbus-glib/slack-desc new file mode 100644 index 000000000..b1688f698 --- /dev/null +++ b/source/l/dbus-glib/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + |-----handy-ruler------------------------------------------------------| +dbus-glib: dbus-glib (Glib bindings for dbus) +dbus-glib: +dbus-glib: This package includes the glib bindings for the dbus IPC library. +dbus-glib: +dbus-glib: +dbus-glib: +dbus-glib: +dbus-glib: +dbus-glib: +dbus-glib: +dbus-glib: diff --git a/source/l/dbus-python/dbus-python.SlackBuild b/source/l/dbus-python/dbus-python.SlackBuild new file mode 100755 index 000000000..d3a0dbeff --- /dev/null +++ b/source/l/dbus-python/dbus-python.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# http://dbus.freedesktop.org/releases/dbus-python/ + + +PRGNAM=dbus-python +VERSION=${VERSION:-0.83.0} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-shared=yes \ + --enable-static=no \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README* \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/dbus-python/slack-desc b/source/l/dbus-python/slack-desc new file mode 100644 index 000000000..14042b78c --- /dev/null +++ b/source/l/dbus-python/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------| +dbus-python: dbus-python (Python bindings for dbus) +dbus-python: +dbus-python: This package includes python bindings for the D-Bus messagebus. +dbus-python: +dbus-python: +dbus-python: +dbus-python: +dbus-python: +dbus-python: +dbus-python: +dbus-python: diff --git a/source/l/desktop-file-utils/desktop-file-utils.SlackBuild b/source/l/desktop-file-utils/desktop-file-utils.SlackBuild new file mode 100755 index 000000000..86d62f239 --- /dev/null +++ b/source/l/desktop-file-utils/desktop-file-utils.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=desktop-file-utils +VERSION=${VERSION:-0.15} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ + --disable-static \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/var/log/setup +cat << EOF > $PKG/var/log/setup/setup.07.update-desktop-database +#BLURB="Run update-desktop-database." +chroot . /usr/bin/update-desktop-database /usr/share/applications 1> /dev/null 2> /dev/null +EOF +chmod 0755 $PKG/var/log/setup/setup.07.update-desktop-database + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/desktop-file-utils/doinst.sh b/source/l/desktop-file-utils/doinst.sh new file mode 100644 index 000000000..2de8e140e --- /dev/null +++ b/source/l/desktop-file-utils/doinst.sh @@ -0,0 +1,4 @@ +if [ -x /usr/bin/update-desktop-database ]; then + chroot . /usr/bin/update-desktop-database /usr/share/applications 1> /dev/null 2>/dev/null +fi + diff --git a/source/l/desktop-file-utils/slack-desc b/source/l/desktop-file-utils/slack-desc new file mode 100644 index 000000000..5b92e4dcf --- /dev/null +++ b/source/l/desktop-file-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +desktop-file-utils: desktop-file-utils (Utilities for manipulating desktop files) +desktop-file-utils: +desktop-file-utils: Some utilities from freedesktop.org for handling .desktop files: +desktop-file-utils: +desktop-file-utils: desktop-file-validate: validates a desktop file and prints +desktop-file-utils: warnings/errors about spec violations. +desktop-file-utils: desktop-file-install: installs a desktop file to the applications +desktop-file-utils: directory, optionally munging it a bit in transit. +desktop-file-utils: desktop-menu-tool: loads .vfolder-info and .menu files and does +desktop-file-utils: operations on them. +desktop-file-utils: diff --git a/source/l/djvulibre/djvulibre.SlackBuild b/source/l/djvulibre/djvulibre.SlackBuild new file mode 100755 index 000000000..ece718070 --- /dev/null +++ b/source/l/djvulibre/djvulibre.SlackBuild @@ -0,0 +1,116 @@ +#!/bin/sh + +# Copyright 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=djvulibre +VERSION=${VERSION:-3.5.21} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# The qt stuff really isn't needed here, as the viewer won't build +# with qt4 (and djview4 is now a separate package). +# It won't matter, as we only need the headers and libs +# anyway for okular to use, so ignore the warnings... :) + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --with-qt=/usr/lib${LIBDIRSUFFIX}/qt \ + --build=$ARCH-slackware-linux + +make depend || exit 1 +make || exit 1 # This isn't fully compatible with threaded make +make install DESTDIR=$PKG || exit 1 + +# This plugin *should* work with Mozilla-based browsers +if [ -d $PKG/usr/lib${LIBDIRSUFFIX}/netscape ]; then + mv $PKG/usr/lib${LIBDIRSUFFIX}/{netscape,mozilla} +fi + +mkdir -p $PKG/usr/share/mime/packages +cp $PKG/usr/share/djvu/osi/desktop/djvulibre-mime.xml \ + $PKG/usr/share/mime/packages + +if [ -x $PKG/usr/bin/djview3 ]; then + mkdir -p $PKG/usr/share/{applications,pixmaps} + cp $PKG/usr/share/djvu/djview3/desktop/*.desktop \ + $PKG/usr/share/applications + cp $PKG/usr/share/djvu/djview3/desktop/hi32-djview3.png \ + $PKG/usr/share/pixmaps/djvulibre-djview3.png +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + COPYING* COPYRIGHT INSTALL NEWS README* TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/djvulibre/djvulibre.info b/source/l/djvulibre/djvulibre.info new file mode 100644 index 000000000..fe3a1f254 --- /dev/null +++ b/source/l/djvulibre/djvulibre.info @@ -0,0 +1,8 @@ +PRGNAM="djvulibre" +VERSION="3.5.20" +HOMEPAGE="http://djvu.sourceforge.net/" +DOWNLOAD="http://downloads.sourceforge.net/djvu/djvulibre-3.5.20-5.tar.gz" +MD5SUM="33cf30382c0408ac29391d7bebf781b0" +MAINTAINER="Robby Workman" +EMAIL="rw@rlworkman.net" +APPROVED="" diff --git a/source/l/djvulibre/doinst.sh b/source/l/djvulibre/doinst.sh new file mode 100644 index 000000000..de571c45b --- /dev/null +++ b/source/l/djvulibre/doinst.sh @@ -0,0 +1,9 @@ + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database ./usr/share/applications >/dev/null 2>&1 +fi + +if [ -x /usr/bin/update-mime-database ]; then + /usr/bin/update-mime-database ./usr/share/mime >/dev/null 2>&1 +fi + diff --git a/source/l/djvulibre/slack-desc b/source/l/djvulibre/slack-desc new file mode 100644 index 000000000..f0b3291ad --- /dev/null +++ b/source/l/djvulibre/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler----------------------------------------------------| +djvulibre: djvulibre (web-centric document and image format) +djvulibre: +djvulibre: DjVu is a web-centric format and software platform for distributing +djvulibre: documents and images. DjVu content downloads faster, displays and +djvulibre: renders faster, looks nicer on a screen, and consume less client +djvulibre: resources than competing formats. DjVu was originally developed at +djvulibre: AT&T Labs-Research by Leon Bottou, Yann LeCun, Patrick Haffner, and +djvulibre: many others. +djvulibre: +djvulibre: Homepage: http://djvu.sourceforge.net +djvulibre: diff --git a/source/l/eigen2/eigen2.SlackBuild b/source/l/eigen2/eigen2.SlackBuild new file mode 100755 index 000000000..4477b13cf --- /dev/null +++ b/source/l/eigen2/eigen2.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2007, 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=r948353 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-eigen2 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf eigen2-$VERSION +tar xvf $CWD/eigen2-$VERSION.tar.bz2 || exit 1 +cd eigen2-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt \ + PATH=$QTDIR/bin:$PATH \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + .. + make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/eigen2-$VERSION +cp -a COPYING* $PKG/usr/doc/eigen2-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n /tmp/eigen2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/eigen2/slack-desc b/source/l/eigen2/slack-desc new file mode 100644 index 000000000..fab941031 --- /dev/null +++ b/source/l/eigen2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler----------------------------------------------------| +eigen2: Eigen2 (c++ math library) +eigen2: +eigen2: Eigen 2 is a lightweight C++ template library for vector and matrix +eigen2: math, a.k.a. linear algebra. +eigen2: +eigen2: See the website: http://eigen.tuxfamily.org +eigen2: +eigen2: +eigen2: +eigen2: +eigen2: diff --git a/source/l/enchant/enchant.SlackBuild b/source/l/enchant/enchant.SlackBuild new file mode 100755 index 000000000..bcd2cd7e9 --- /dev/null +++ b/source/l/enchant/enchant.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2007 Alex Elliott <alex@alex-elliott.co.uk> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman <rworkman at slackware.com> + + +VERSION=1.4.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:-" -j6 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-enchant + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf enchant-$VERSION +tar xvf $CWD/enchant-$VERSION.tar.bz2 || exit 1 +cd enchant-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --with-aspell-prefix=/usr \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/enchant-$VERSION +cp -a AUTHORS BUGS COPYING* HACKING MAINTAINERS NEWS README TODO \ + $PKG/usr/doc/enchant-$VERSION || true + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/enchant-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/enchant/enchant.info b/source/l/enchant/enchant.info new file mode 100644 index 000000000..6dd8406fd --- /dev/null +++ b/source/l/enchant/enchant.info @@ -0,0 +1,2 @@ +http://www.abisource.com/projects/enchant/ +http://www.abisource.com/downloads/enchant/1.4.2/enchant-1.4.2.tar.gz diff --git a/source/l/enchant/slack-desc b/source/l/enchant/slack-desc new file mode 100644 index 000000000..e973fcb44 --- /dev/null +++ b/source/l/enchant/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |---handy-ruler------------------------------------------------------| +enchant: Enchant (a wrapper for spellcheck libraries) +enchant: +enchant: Enchant supports: +enchant: * Aspell/Pspell +enchant: * Ispell +enchant: * MySpell/HunSpell +enchant: * Uspell (Yiddish, Hebrew and Eastern European languages) +enchant: * Hspell (Hebrew) and others +enchant: +enchant: http://www.abisource.com/projects/enchant/ +enchant: diff --git a/source/l/esound/doinst.sh b/source/l/esound/doinst.sh new file mode 100644 index 000000000..9d4956827 --- /dev/null +++ b/source/l/esound/doinst.sh @@ -0,0 +1,14 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/esd.conf.new + diff --git a/source/l/esound/esound.SlackBuild b/source/l/esound/esound.SlackBuild new file mode 100755 index 000000000..d26ddaeac --- /dev/null +++ b/source/l/esound/esound.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=esound +VERSION=${VERSION:-0.2.41} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Don't clobber an existing esd.conf +mv $PKG/etc/esd.conf $PKG/etc/esd.conf.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README TIPS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION +rm -rf $PKG/usr/share/doc + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/esound/slack-desc b/source/l/esound/slack-desc new file mode 100644 index 000000000..74da12178 --- /dev/null +++ b/source/l/esound/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +esound: esound (Enlightened Sound Daemon) +esound: +esound: EsounD, the Enlightened Sound Daemon, is a server process that mixes +esound: several audio streams for playback by a single audio device. For +esound: example, if you're listening to music on a CD and you receive a +esound: sound-related event from ICQ, the two applications won't have to +esound: jockey for the use of your sound card. Install esound if you'd like +esound: to let sound applications share your audio device. +esound: +esound: +esound: diff --git a/source/l/exiv2/exiv2.SlackBuild b/source/l/exiv2/exiv2.SlackBuild new file mode 100755 index 000000000..783fd7c57 --- /dev/null +++ b/source/l/exiv2/exiv2.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2007 Frank Caraballo <fecaraballo{at}gmail{dot}com> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman <rworkman at slackware.com> + + +VERSION=0.18.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-exiv2 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf exiv2-$VERSION +tar xvf $CWD/exiv2-$VERSION.tar.?z* || exit 1 +cd exiv2-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --enable-shared=yes \ + --enable-static=no \ + --enable-xmp \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/exiv2-$VERSION +cp -a COPYING* README doc/{templates,COPYING-XMPSDK,README-XMP,cmd.txt,cmdxmp.txt} $PKG/usr/doc/exiv2-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/exiv2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/exiv2/slack-desc b/source/l/exiv2/slack-desc new file mode 100644 index 000000000..2d8be6851 --- /dev/null +++ b/source/l/exiv2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +exiv2: Exiv2 (Exif and IPTC Metadata Library and Tools) +exiv2: +exiv2: Exiv2 is a C++ library and a command line utility to read and write +exiv2: Exif and IPTC image metadata. +exiv2: +exiv2: Homepage: http://www.exiv2.org/ +exiv2: +exiv2: +exiv2: +exiv2: +exiv2: diff --git a/source/l/expat/expat.SlackBuild b/source/l/expat/expat.SlackBuild new file mode 100755 index 000000000..8c972bb67 --- /dev/null +++ b/source/l/expat/expat.SlackBuild @@ -0,0 +1,72 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.0.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-expat + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf expat-$VERSION +tar xzvf $CWD/expat-$VERSION.tar.gz || exit 1 +cd expat-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux +make -j4 || exit 1 +make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/usr/doc/expat-$VERSION +cp -a \ + COPYING Changes README doc/reference.html \ + $PKG/usr/doc/expat-$VERSION +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/expat-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/expat/slack-desc b/source/l/expat/slack-desc new file mode 100644 index 000000000..348df3c3b --- /dev/null +++ b/source/l/expat/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +expat: expat (C library for parsing XML) +expat: +expat: This is Expat, a C library for parsing XML, written by James Clark. +expat: Expat is a stream-oriented XML parser used by Python, GNOME, Xft2, +expat: and other things. +expat: +expat: +expat: +expat: +expat: +expat: diff --git a/source/l/freetype/freetype.SlackBuild b/source/l/freetype/freetype.SlackBuild new file mode 100755 index 000000000..69c3f844b --- /dev/null +++ b/source/l/freetype/freetype.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.3.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-freetype +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf freetype-$VERSION +tar xvf $CWD/freetype-$VERSION.tar.bz2 || exit 1 +cd freetype-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This breaks far too many things. Freetype2 developers will have to get their +# punishment on someone else's distribution. +zcat $CWD/freetype.illadvisederror.diff.gz | patch -p1 --verbose || exit 1 + +# The line below enables code patented by Apple, so don't uncomment it +# unless you have a license to use the code and take all legal responsibility +# for doing so. +# Please see this web site for more details: +# http://www.freetype.org/patents.html +#zcat $CWD/freetype.bytecode.interpreter.diff.gz | patch -p1 --verbose || exit 1 + +# The line below enables code patented by Microsoft, so don't uncomment it +# unless you have a license to use the code and take all legal responsibility +# for doing so. +# Please see this web site for more details: +# http://www.freetype.org/patents.html +#zcat $CWD/freetype.subpixel.rendering.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +CFLAGS="$SLKCFLAGS" make setup CFG="--prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} $ARCH-slackware-linux" +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# This shouldn't be needed (apps should pick up -I/usr/include/freetype2 from +# `freetype-config --cflags` while compiling), but it's so often reported as +# a bug that I'll give in to the point. Now that Freetype1 is pretty much gone +# having this link shouldn't hurt anything. Try not to rely on it, though. +mkdir -p $PKG/usr/include +( cd $PKG/usr/include + rm -rf freetype + ln -sf freetype2/freetype . +) + +# Can't imagine a lot of use for this: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/freetype-$VERSION +cp -a \ + docs \ + README \ + $PKG/usr/doc/freetype-$VERSION +# too much +rm -rf $PKG/usr/doc/freetype-$VERSION/docs/reference + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/freetype-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/freetype/freetype.bytecode.interpreter.diff b/source/l/freetype/freetype.bytecode.interpreter.diff new file mode 100644 index 000000000..3861d6e2d --- /dev/null +++ b/source/l/freetype/freetype.bytecode.interpreter.diff @@ -0,0 +1,11 @@ +--- ./include/freetype/config/ftoption.h.orig 2007-04-21 17:42:39.000000000 +0200 ++++ ./include/freetype/config/ftoption.h 2007-04-21 17:43:39.000000000 +0200 +@@ -456,7 +456,7 @@ + /* Do not #undef this macro here, since the build system might */ + /* define it for certain configurations only. */ + /* */ +-/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ ++#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER + + + /*************************************************************************/ diff --git a/source/l/freetype/freetype.illadvisederror.diff b/source/l/freetype/freetype.illadvisederror.diff new file mode 100644 index 000000000..0afdcdfa7 --- /dev/null +++ b/source/l/freetype/freetype.illadvisederror.diff @@ -0,0 +1,31 @@ +diff -u -r freetype-2.1.7.orig/include/freetype/freetype.h freetype-2.1.7/include/freetype/freetype.h +--- freetype-2.1.7.orig/include/freetype/freetype.h 2003-11-09 00:38:13.000000000 -0800 ++++ freetype-2.1.7/include/freetype/freetype.h 2004-06-05 13:43:55.000000000 -0700 +@@ -16,13 +16,20 @@ + /***************************************************************************/ + + +-#ifndef FT_FREETYPE_H +-#error "`ft2build.h' hasn't been included yet!" +-#error "Please always use macros to include FreeType header files." +-#error "Example:" +-#error " #include <ft2build.h>" +-#error " #include FT_FREETYPE_H" +-#endif ++/***************************************************************************/ ++/* */ ++/* If you think breaking almost 100% of all source that links with */ ++/* freetype (anything using a configure file for sure) is a good idea, */ ++/* then feel free to uncomment this block. */ ++/* */ ++/* #ifndef FT_FREETYPE_H */ ++/* #error "`ft2build.h' hasn't been included yet!" */ ++/* #error "Please always use macros to include FreeType header files." */ ++/* #error "Example:" */ ++/* #error " #include <ft2build.h>" */ ++/* #error " #include FT_FREETYPE_H" */ ++/* #endif */ ++/***************************************************************************/ + + + #ifndef __FREETYPE_H__ diff --git a/source/l/freetype/freetype.subpixel.rendering.diff b/source/l/freetype/freetype.subpixel.rendering.diff new file mode 100644 index 000000000..e4bd9e1ee --- /dev/null +++ b/source/l/freetype/freetype.subpixel.rendering.diff @@ -0,0 +1,11 @@ +--- ./include/freetype/config/ftoption.h.orig 2007-01-05 10:18:45.000000000 -0600 ++++ ./include/freetype/config/ftoption.h 2007-04-21 15:07:04.000000000 -0500 +@@ -92,7 +92,7 @@ + /* This is done to allow FreeType clients to run unmodified, forcing */ + /* them to display normal gray-level anti-aliased glyphs. */ + /* */ +-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ ++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING + + + /*************************************************************************/ diff --git a/source/l/freetype/slack-desc b/source/l/freetype/slack-desc new file mode 100644 index 000000000..0d179401f --- /dev/null +++ b/source/l/freetype/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +freetype: freetype (A Free, High-Quality, and Portable Font Engine) +freetype: +freetype: The FreeType engine is a free and portable TrueType font rendering +freetype: engine. It has been developed to provide TrueType support to a +freetype: great variety of platforms and environments. +freetype: +freetype: +freetype: +freetype: +freetype: +freetype: diff --git a/source/l/fribidi/fribidi.SlackBuild b/source/l/fribidi/fribidi.SlackBuild new file mode 100755 index 000000000..8917b8f22 --- /dev/null +++ b/source/l/fribidi/fribidi.SlackBuild @@ -0,0 +1,75 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.10.9 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/tmp/package-fribidi +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf fribidi-$VERSION +tar xjvf $CWD/fribidi-$VERSION.tar.bz2 || exit 1 +cd fribidi-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-pic +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +strip -g $PKG/usr/lib/libfribidi.a +mkdir -p $PKG/usr/doc/fribidi-$VERSION +cp -a \ + AUTHORS COPYING NEWS README THANKS TODO \ + $PKG/usr/doc/fribidi-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/fribidi-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/fribidi/slack-desc b/source/l/fribidi/slack-desc new file mode 100644 index 000000000..eb9fe325b --- /dev/null +++ b/source/l/fribidi/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fribidi: fribidi (Unicode BiDirectional algorithm library) +fribidi: +fribidi: This library implements the Unicode BiDirectional algorithm, which +fribidi: is needed in order to support right-to-left languages such as Arabic +fribidi: and Hebrew. It is used in display software like KDE's SVG modules. +fribidi: +fribidi: +fribidi: +fribidi: +fribidi: +fribidi: diff --git a/source/l/fuse/doinst.sh b/source/l/fuse/doinst.sh new file mode 100644 index 000000000..cbb956244 --- /dev/null +++ b/source/l/fuse/doinst.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.fuse.new: +if [ -e etc/rc.d/rc.fuse ]; then + cp -a etc/rc.d/rc.fuse etc/rc.d/rc.fuse.new.incoming + cat etc/rc.d/rc.fuse.new > etc/rc.d/rc.fuse.new.incoming + mv etc/rc.d/rc.fuse.new.incoming etc/rc.d/rc.fuse.new +fi + +config etc/rc.d/rc.fuse.new + diff --git a/source/l/fuse/fuse.SlackBuild b/source/l/fuse/fuse.SlackBuild new file mode 100755 index 000000000..96569eeab --- /dev/null +++ b/source/l/fuse/fuse.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright (c) 2008, Antonio Hernandez Blas <hba.nihilismus@gmail.com> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# 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. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman <rworkman@slackware.com> +# Modified by Eric Hameleers <alien@slackware.com> + +PRGNAM=fuse +VERSION=2.7.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --sbindir=/sbin \ + --libdir=/lib${LIBDIRSUFFIX} \ + --with-pkgconfigdir=/usr/lib${LIBDIRSUFFIX}/pkgconfig \ + --includedir=/usr/include \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-lib \ + --enable-util \ + --disable-static \ + --disable-kernel-module \ + --build=${ARCH}-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Move the start|stop script of fuse to the right place. +mv $PKG/etc/init.d $PKG/etc/rc.d +mv $PKG/etc/rc.d/fuse $PKG/etc/rc.d/rc.fuse.new + +# udev handles device node creation +rm -rf $PKG/dev + +# Move the udev rules to the correct location +mkdir -p $PKG/lib +mv $PKG/etc/udev $PKG/lib + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING COPYING.LIB FAQ Filesystems INSTALL NEWS README \ + README.NFS doc/how-fuse-works doc/kernel.txt \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/fuse/slack-desc b/source/l/fuse/slack-desc new file mode 100644 index 000000000..0241a29bf --- /dev/null +++ b/source/l/fuse/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fuse: FUSE (Filesystem in Userspace) +fuse: +fuse: FUSE is a simple interface for userspace programs to export a virtual +fuse: filesystem to the Linux kernel. FUSE also aims to provide a secure +fuse: method for non privileged users to create and mount their own +fuse: filesystem implementations. +fuse: +fuse: The FUSE web site can be found here: http://fuse.sourceforge.net +fuse: +fuse: +fuse: diff --git a/source/l/gamin/gamin.SlackBuild b/source/l/gamin/gamin.SlackBuild new file mode 100755 index 000000000..8fbeae5f6 --- /dev/null +++ b/source/l/gamin/gamin.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2006,2007,2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=gamin +VERSION=0.1.10 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-shared=yes \ + --enable-static=no \ + --enable-inotify \ + --disable-dnotify \ + --enable-docs \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html +cp -a \ + AUTHORS COPYING Copyright NEWS README TODO doc/*.txt \ + $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + doc/*.html doc/*.gif \ + $PKG/usr/doc/$PRGNAM-$VERSION/html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gamin/slack-desc b/source/l/gamin/slack-desc new file mode 100644 index 000000000..35774907e --- /dev/null +++ b/source/l/gamin/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gamin: gamin (A minimalist FAM replacement) +gamin: +gamin: Gamin is a file and directory monitoring system defined to be a subset +gamin: of the FAM (File Alteration Monitor) system. +gamin: +gamin: The homepage for Gamin is: http://www.gnome.org/~veillard/gamin/ +gamin: +gamin: +gamin: +gamin: +gamin: diff --git a/source/l/gd/gd.SlackBuild b/source/l/gd/gd.SlackBuild new file mode 100755 index 000000000..a367412bc --- /dev/null +++ b/source/l/gd/gd.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=gd +VERSION=${VERSION:-2.0.35} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add pkgconfig file: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig +cat $CWD/gdlib.pc | sed -e "s/@VERSION@/$VERSION/" \ + | sed -e "s#/lib#/lib${LIBDIRSUFFIX}#g" \ + > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/gdlib.pc + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING INSTALL README-JPEG.TXT README.TXT index.html \ + $PKG/usr/doc/${PKGNAM}-$VERSION +# Fix stupid permissions: +chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gd/gdlib.pc b/source/l/gd/gdlib.pc new file mode 100644 index 000000000..7bd439b63 --- /dev/null +++ b/source/l/gd/gdlib.pc @@ -0,0 +1,14 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include +bindir=${exec_prefix}/bin +ldflags= -L/usr/lib -L/usr/X11R6/lib + + +Name: gd-devel +Description: A graphics library for quick creation of PNG or JPEG images +Version: @VERSION@ +Requires: +Libs: -lXpm -lX11 -ljpeg -lfontconfig -lfreetype -lpng12 -lz -lm +Cflags: -I${prefix}/include diff --git a/source/l/gd/slack-desc b/source/l/gd/slack-desc new file mode 100644 index 000000000..8285aa934 --- /dev/null +++ b/source/l/gd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gd: gd (a graphics library) +gd: +gd: gd is a graphics library. It allows your code to quickly draw images +gd: complete with lines, arcs, text, multiple colors, cut and paste from +gd: other images, and flood fills, and write out the result as a PNG or +gd: JPEG file. This is particularly useful in web applications, where +gd: PNG and JPEG are two of the formats accepted for inline images by +gd: most browsers. +gd: +gd: The gd library was written by Thomas Boutell. +gd: diff --git a/source/l/gdbm/gdbm.SlackBuild b/source/l/gdbm/gdbm.SlackBuild new file mode 100755 index 000000000..aeb91618a --- /dev/null +++ b/source/l/gdbm/gdbm.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Build gdbm-$VERSION for Slackware +# by volkerdi@slackware.com, 2/2001 + + +VERSION=1.8.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gdbm +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf gdbm-$VERSION +tar xzvf $CWD/gdbm-$VERSION.tar.gz +cd gdbm-$VERSION +chown -R root:root . +find . -perm 700 -exec chmod 755 {} \; +find . -perm 600 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux +make -j4 || exit 1 +make install INSTALL_ROOT=$PKG + +# I'm not sure what out there would need the "libgdbm_compat" library, +# but it causes versions of ndbm.h and dbm.h to be installed that break +# compiling nearly everything with any dbm support (like python's dbm.so, +# and mod_ssl). Putting 'em in /usr/include/gdbm/ doesn't isolate them +# enough, either. File this one under "not worth it". +#make install-compat INSTALL_ROOT=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/usr/doc/gdbm-$VERSION +cp -a \ + COPYING ChangeLog NEWS README \ + $PKG/usr/doc/gdbm-$VERSION +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/gdbm.info +gzip -9 $PKG/usr/man/man3/gdbm.3 +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/gdbm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gdbm/slack-desc b/source/l/gdbm/slack-desc new file mode 100644 index 000000000..d668d9544 --- /dev/null +++ b/source/l/gdbm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gdbm: gdbm (GNU database routines) +gdbm: +gdbm: GNU dbm is a set of database routines that work similar to the +gdbm: standard UNIX dbm routines. +gdbm: +gdbm: +gdbm: +gdbm: +gdbm: +gdbm: +gdbm: diff --git a/source/l/gegl/gegl.SlackBuild b/source/l/gegl/gegl.SlackBuild new file mode 100755 index 000000000..cc5855224 --- /dev/null +++ b/source/l/gegl/gegl.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009 Robby Workman, Northport, Alabama, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=0.0.22 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gegl + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf gegl-$VERSION +tar xvf $CWD/gegl-$VERSION.tar.bz2 || exit 1 +cd gegl-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# I'm not sure about --enable-sse +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --docdir=/usr/doc/gegl-$VERSION \ + --enable-gtk-doc \ + --enable-mmx \ + --disable-sse \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/gegl-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README TODO \ + $PKG/usr/doc/gegl-$VERSION +( cd $PKG/usr/doc/gegl-$VERSION ; ln -s /usr/share/gtk-doc/html/gegl/ html ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gegl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gegl/slack-desc b/source/l/gegl/slack-desc new file mode 100644 index 000000000..0d7e598b7 --- /dev/null +++ b/source/l/gegl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------------| +gegl: GEGL (Generic Graphics Library) +gegl: +gegl: GEGL (Generic Graphics Library) is a graph based image processing +gegl: framework. +gegl: +gegl: GEGL provides infratructure to do demand based cached non destructive +gegl: image editing on larger than RAM buffers. Through babl it provides +gegl: support for a wide range of color models and pixel storage formats for +gegl: input and output. +gegl: +gegl: diff --git a/source/l/glib/glib.SlackBuild b/source/l/glib/glib.SlackBuild new file mode 100755 index 000000000..14a254b99 --- /dev/null +++ b/source/l/glib/glib.SlackBuild @@ -0,0 +1,118 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=glib +VERSION=${VERSION:-1.2.10} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +bzcat $CWD/glib1.2_1.2.10-17.diff.bz2 | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 CFLAGS="$SLKCFLAGS" || exit 1 +make CFLAGS="$SLKCFLAGS" install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/glib/glib1.2_1.2.10-17.diff b/source/l/glib/glib1.2_1.2.10-17.diff new file mode 100644 index 000000000..efd7dc668 --- /dev/null +++ b/source/l/glib/glib1.2_1.2.10-17.diff @@ -0,0 +1,19776 @@ +--- glib1.2-1.2.10.orig/tests/Makefile.in ++++ glib1.2-1.2.10/tests/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -62,8 +62,10 @@ + AS = @AS@ + CC = @CC@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ + ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@ + ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@ ++EXEEXT = @EXEEXT@ + GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ + GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ + GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ +@@ -88,8 +90,10 @@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + RANLIB = @RANLIB@ ++STRIP = @STRIP@ + VERSION = @VERSION@ + + INCLUDES = -I$(top_srcdir) +@@ -116,6 +120,10 @@ + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = ../config.h + CONFIG_CLEAN_FILES = ++noinst_PROGRAMS = array-test$(EXEEXT) dirname-test$(EXEEXT) \ ++hash-test$(EXEEXT) list-test$(EXEEXT) node-test$(EXEEXT) \ ++relation-test$(EXEEXT) slist-test$(EXEEXT) string-test$(EXEEXT) \ ++strfunc-test$(EXEEXT) tree-test$(EXEEXT) type-test$(EXEEXT) + PROGRAMS = $(noinst_PROGRAMS) + + +@@ -124,47 +132,47 @@ + LDFLAGS = @LDFLAGS@ + LIBS = @LIBS@ + array_test_SOURCES = array-test.c +-array_test_OBJECTS = array-test.o ++array_test_OBJECTS = array-test.$(OBJEXT) + array_test_DEPENDENCIES = $(top_builddir)/libglib.la + array_test_LDFLAGS = + dirname_test_SOURCES = dirname-test.c +-dirname_test_OBJECTS = dirname-test.o ++dirname_test_OBJECTS = dirname-test.$(OBJEXT) + dirname_test_DEPENDENCIES = $(top_builddir)/libglib.la + dirname_test_LDFLAGS = + hash_test_SOURCES = hash-test.c +-hash_test_OBJECTS = hash-test.o ++hash_test_OBJECTS = hash-test.$(OBJEXT) + hash_test_DEPENDENCIES = $(top_builddir)/libglib.la + hash_test_LDFLAGS = + list_test_SOURCES = list-test.c +-list_test_OBJECTS = list-test.o ++list_test_OBJECTS = list-test.$(OBJEXT) + list_test_DEPENDENCIES = $(top_builddir)/libglib.la + list_test_LDFLAGS = + node_test_SOURCES = node-test.c +-node_test_OBJECTS = node-test.o ++node_test_OBJECTS = node-test.$(OBJEXT) + node_test_DEPENDENCIES = $(top_builddir)/libglib.la + node_test_LDFLAGS = + relation_test_SOURCES = relation-test.c +-relation_test_OBJECTS = relation-test.o ++relation_test_OBJECTS = relation-test.$(OBJEXT) + relation_test_DEPENDENCIES = $(top_builddir)/libglib.la + relation_test_LDFLAGS = + slist_test_SOURCES = slist-test.c +-slist_test_OBJECTS = slist-test.o ++slist_test_OBJECTS = slist-test.$(OBJEXT) + slist_test_DEPENDENCIES = $(top_builddir)/libglib.la + slist_test_LDFLAGS = + string_test_SOURCES = string-test.c +-string_test_OBJECTS = string-test.o ++string_test_OBJECTS = string-test.$(OBJEXT) + string_test_DEPENDENCIES = $(top_builddir)/libglib.la + string_test_LDFLAGS = + strfunc_test_SOURCES = strfunc-test.c +-strfunc_test_OBJECTS = strfunc-test.o ++strfunc_test_OBJECTS = strfunc-test.$(OBJEXT) + strfunc_test_DEPENDENCIES = $(top_builddir)/libglib.la + strfunc_test_LDFLAGS = + tree_test_SOURCES = tree-test.c +-tree_test_OBJECTS = tree-test.o ++tree_test_OBJECTS = tree-test.$(OBJEXT) + tree_test_DEPENDENCIES = $(top_builddir)/libglib.la + tree_test_LDFLAGS = + type_test_SOURCES = type-test.c +-type_test_OBJECTS = type-test.o ++type_test_OBJECTS = type-test.$(OBJEXT) + type_test_DEPENDENCIES = $(top_builddir)/libglib.la + type_test_LDFLAGS = + CFLAGS = @CFLAGS@ +@@ -177,14 +185,14 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + SOURCES = array-test.c dirname-test.c hash-test.c list-test.c node-test.c relation-test.c slist-test.c string-test.c strfunc-test.c tree-test.c type-test.c +-OBJECTS = array-test.o dirname-test.o hash-test.o list-test.o node-test.o relation-test.o slist-test.o string-test.o strfunc-test.o tree-test.o type-test.o ++OBJECTS = array-test.$(OBJEXT) dirname-test.$(OBJEXT) hash-test.$(OBJEXT) list-test.$(OBJEXT) node-test.$(OBJEXT) relation-test.$(OBJEXT) slist-test.$(OBJEXT) string-test.$(OBJEXT) strfunc-test.$(OBJEXT) tree-test.$(OBJEXT) type-test.$(OBJEXT) + + all: all-redirect + .SUFFIXES: +-.SUFFIXES: .S .c .lo .o .s ++.SUFFIXES: .S .c .lo .o .obj .s + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps tests/Makefile + +@@ -205,6 +213,11 @@ + .c.o: + $(COMPILE) -c $< + ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ + .s.o: + $(COMPILE) -c $< + +@@ -213,6 +226,7 @@ + + mostlyclean-compile: + -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) + + clean-compile: + +@@ -240,48 +254,48 @@ + + maintainer-clean-libtool: + +-array-test: $(array_test_OBJECTS) $(array_test_DEPENDENCIES) +- @rm -f array-test ++array-test$(EXEEXT): $(array_test_OBJECTS) $(array_test_DEPENDENCIES) ++ @rm -f array-test$(EXEEXT) + $(LINK) $(array_test_LDFLAGS) $(array_test_OBJECTS) $(array_test_LDADD) $(LIBS) + +-dirname-test: $(dirname_test_OBJECTS) $(dirname_test_DEPENDENCIES) +- @rm -f dirname-test ++dirname-test$(EXEEXT): $(dirname_test_OBJECTS) $(dirname_test_DEPENDENCIES) ++ @rm -f dirname-test$(EXEEXT) + $(LINK) $(dirname_test_LDFLAGS) $(dirname_test_OBJECTS) $(dirname_test_LDADD) $(LIBS) + +-hash-test: $(hash_test_OBJECTS) $(hash_test_DEPENDENCIES) +- @rm -f hash-test ++hash-test$(EXEEXT): $(hash_test_OBJECTS) $(hash_test_DEPENDENCIES) ++ @rm -f hash-test$(EXEEXT) + $(LINK) $(hash_test_LDFLAGS) $(hash_test_OBJECTS) $(hash_test_LDADD) $(LIBS) + +-list-test: $(list_test_OBJECTS) $(list_test_DEPENDENCIES) +- @rm -f list-test ++list-test$(EXEEXT): $(list_test_OBJECTS) $(list_test_DEPENDENCIES) ++ @rm -f list-test$(EXEEXT) + $(LINK) $(list_test_LDFLAGS) $(list_test_OBJECTS) $(list_test_LDADD) $(LIBS) + +-node-test: $(node_test_OBJECTS) $(node_test_DEPENDENCIES) +- @rm -f node-test ++node-test$(EXEEXT): $(node_test_OBJECTS) $(node_test_DEPENDENCIES) ++ @rm -f node-test$(EXEEXT) + $(LINK) $(node_test_LDFLAGS) $(node_test_OBJECTS) $(node_test_LDADD) $(LIBS) + +-relation-test: $(relation_test_OBJECTS) $(relation_test_DEPENDENCIES) +- @rm -f relation-test ++relation-test$(EXEEXT): $(relation_test_OBJECTS) $(relation_test_DEPENDENCIES) ++ @rm -f relation-test$(EXEEXT) + $(LINK) $(relation_test_LDFLAGS) $(relation_test_OBJECTS) $(relation_test_LDADD) $(LIBS) + +-slist-test: $(slist_test_OBJECTS) $(slist_test_DEPENDENCIES) +- @rm -f slist-test ++slist-test$(EXEEXT): $(slist_test_OBJECTS) $(slist_test_DEPENDENCIES) ++ @rm -f slist-test$(EXEEXT) + $(LINK) $(slist_test_LDFLAGS) $(slist_test_OBJECTS) $(slist_test_LDADD) $(LIBS) + +-string-test: $(string_test_OBJECTS) $(string_test_DEPENDENCIES) +- @rm -f string-test ++string-test$(EXEEXT): $(string_test_OBJECTS) $(string_test_DEPENDENCIES) ++ @rm -f string-test$(EXEEXT) + $(LINK) $(string_test_LDFLAGS) $(string_test_OBJECTS) $(string_test_LDADD) $(LIBS) + +-strfunc-test: $(strfunc_test_OBJECTS) $(strfunc_test_DEPENDENCIES) +- @rm -f strfunc-test ++strfunc-test$(EXEEXT): $(strfunc_test_OBJECTS) $(strfunc_test_DEPENDENCIES) ++ @rm -f strfunc-test$(EXEEXT) + $(LINK) $(strfunc_test_LDFLAGS) $(strfunc_test_OBJECTS) $(strfunc_test_LDADD) $(LIBS) + +-tree-test: $(tree_test_OBJECTS) $(tree_test_DEPENDENCIES) +- @rm -f tree-test ++tree-test$(EXEEXT): $(tree_test_OBJECTS) $(tree_test_DEPENDENCIES) ++ @rm -f tree-test$(EXEEXT) + $(LINK) $(tree_test_LDFLAGS) $(tree_test_OBJECTS) $(tree_test_LDADD) $(LIBS) + +-type-test: $(type_test_OBJECTS) $(type_test_DEPENDENCIES) +- @rm -f type-test ++type-test$(EXEEXT): $(type_test_OBJECTS) $(type_test_DEPENDENCIES) ++ @rm -f type-test$(EXEEXT) + $(LINK) $(type_test_LDFLAGS) $(type_test_OBJECTS) $(type_test_LDADD) $(LIBS) + + tags: TAGS +@@ -302,7 +316,7 @@ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ +- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + + mostlyclean-tags: + +@@ -328,18 +342,6 @@ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +-array-test.o: array-test.c ../glib.h ../glibconfig.h +-dirname-test.o: dirname-test.c ../glib.h ../glibconfig.h +-hash-test.o: hash-test.c ../config.h ../glib.h ../glibconfig.h +-list-test.o: list-test.c ../glib.h ../glibconfig.h +-node-test.o: node-test.c ../config.h ../glib.h ../glibconfig.h +-relation-test.o: relation-test.c ../glib.h ../glibconfig.h +-slist-test.o: slist-test.c ../glib.h ../glibconfig.h +-strfunc-test.o: strfunc-test.c ../glib.h ../glibconfig.h +-string-test.o: string-test.c ../glib.h ../glibconfig.h +-tree-test.o: tree-test.c ../glib.h ../glibconfig.h +-type-test.o: type-test.c ../glib.h ../glibconfig.h +- + check-TESTS: $(TESTS) + @failed=0; all=0; \ + srcdir=$(srcdir); export srcdir; \ +--- glib1.2-1.2.10.orig/configure ++++ glib1.2-1.2.10/configure +@@ -38,9 +38,170 @@ + --enable-fast-install[=PKGS] optimize for fast installation [default=yes]" + ac_help="$ac_help + --with-gnu-ld assume the C compiler uses GNU ld [default=no]" ++ ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++ ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ++ ;; ++esac ++ ++echo=${ECHO-echo} ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++ ++EOF ++ exit 0 ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++if test -z "$ECHO"; then ++if test "X${echo_test_string+set}" != Xset; then ++# find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if (echo_test_string="`eval $cmd`") 2>/dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null ++ then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} ++ else ++ # Try using printf. ++ echo='printf %s\n' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "$0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++ECHO=$echo ++if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ++ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" ++fi ++ ++ + ac_help="$ac_help + --disable-libtool-lock avoid locking (might break parallel builds)" + ac_help="$ac_help ++ --with-pic try to use only PIC/non-PIC objects [default=use both]" ++ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then +@@ -618,6 +779,7 @@ + ac_config_sub=$ac_aux_dir/config.sub + ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + ++am__api_version="1.4" + # Find a good install program. We prefer a C program (faster), + # so one script is as good as another. But avoid the broken or + # incompatible versions: +@@ -630,7 +792,7 @@ + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" + # ./install, which can be erroneously created by make from ./install.sh. + echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +-echo "configure:634: checking for a BSD compatible install" >&5 ++echo "configure:796: checking for a BSD compatible install" >&5 + if test -z "$INSTALL"; then + if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -683,7 +845,7 @@ + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +-echo "configure:687: checking whether build environment is sane" >&5 ++echo "configure:849: checking whether build environment is sane" >&5 + # Just in case + sleep 1 + echo timestamp > conftestfile +@@ -740,7 +902,7 @@ + test "$program_transform_name" = "" && program_transform_name="s,x,x," + + echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +-echo "configure:744: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++echo "configure:906: checking whether ${MAKE-make} sets \${MAKE}" >&5 + set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -778,21 +940,21 @@ + + + missing_dir=`cd $ac_aux_dir && pwd` +-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +-echo "configure:783: checking for working aclocal" >&5 ++echo $ac_n "checking for working aclocal-${am__api_version}""... $ac_c" 1>&6 ++echo "configure:945: checking for working aclocal-${am__api_version}" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +-if (aclocal --version) < /dev/null > /dev/null 2>&1; then +- ACLOCAL=aclocal ++if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ++ ACLOCAL=aclocal-${am__api_version} + echo "$ac_t""found" 1>&6 + else +- ACLOCAL="$missing_dir/missing aclocal" ++ ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +-echo "configure:796: checking for working autoconf" >&5 ++echo "configure:958: checking for working autoconf" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -804,21 +966,21 @@ + echo "$ac_t""missing" 1>&6 + fi + +-echo $ac_n "checking for working automake""... $ac_c" 1>&6 +-echo "configure:809: checking for working automake" >&5 ++echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 ++echo "configure:971: checking for working automake-${am__api_version}" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +-if (automake --version) < /dev/null > /dev/null 2>&1; then +- AUTOMAKE=automake ++if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ++ AUTOMAKE=automake-${am__api_version} + echo "$ac_t""found" 1>&6 + else +- AUTOMAKE="$missing_dir/missing automake" ++ AUTOMAKE="$missing_dir/missing automake-${am__api_version}" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +-echo "configure:822: checking for working autoheader" >&5 ++echo "configure:984: checking for working autoheader" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -831,7 +993,7 @@ + fi + + echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +-echo "configure:835: checking for working makeinfo" >&5 ++echo "configure:997: checking for working makeinfo" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -871,11 +1033,164 @@ + EOF + + ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++ ++echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ++echo "configure:1049: checking for Cygwin environment" >&5 ++if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 1054 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++#ifndef __CYGWIN__ ++#define __CYGWIN__ __CYGWIN32__ ++#endif ++return __CYGWIN__; ++; return 0; } ++EOF ++if { (eval echo configure:1065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_cygwin=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_cygwin=no ++fi ++rm -f conftest* ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_cygwin" 1>&6 ++CYGWIN= ++test "$ac_cv_cygwin" = yes && CYGWIN=yes ++echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ++echo "configure:1082: checking for mingw32 environment" >&5 ++if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 1087 "configure" ++#include "confdefs.h" ++ ++int main() { ++return __MINGW32__; ++; return 0; } ++EOF ++if { (eval echo configure:1094: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_mingw32=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_mingw32=no ++fi ++rm -f conftest* ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_mingw32" 1>&6 ++MINGW32= ++test "$ac_cv_mingw32" = yes && MINGW32=yes ++echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ++echo "configure:1111: checking how to run the C preprocessor" >&5 ++# On Suns, sometimes $CPP names a directory. ++if test -n "$CPP" && test -d "$CPP"; then ++ CPP= ++fi ++if test -z "$CPP"; then ++if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # This must be in double quotes, not single quotes, because CPP may get ++ # substituted into the Makefile and "${CC-cc}" will confuse make. ++ CPP="${CC-cc} -E" ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. ++ cat > conftest.$ac_ext <<EOF ++#line 1126 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1132: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP="${CC-cc} -E -traditional-cpp" ++ cat > conftest.$ac_ext <<EOF ++#line 1143 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP="${CC-cc} -nologo -E" ++ cat > conftest.$ac_ext <<EOF ++#line 1160 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1166: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP=/lib/cpp ++fi ++rm -f conftest* ++fi ++rm -f conftest* ++fi ++rm -f conftest* ++ ac_cv_prog_CPP="$CPP" ++fi ++ CPP="$ac_cv_prog_CPP" ++else ++ ac_cv_prog_CPP="$CPP" ++fi ++echo "$ac_t""$CPP" 1>&6 ++ + # Check whether --enable-shared or --disable-shared was given. + if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) +@@ -898,7 +1213,7 @@ + if test "${enable_static+set}" = set; then + enableval="$enable_static" + p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) +@@ -921,7 +1236,7 @@ + if test "${enable_fast_install+set}" = set; then + enableval="$enable_fast_install" + p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) +@@ -947,7 +1262,7 @@ + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 +-echo "configure:951: checking host system type" >&5 ++echo "configure:1266: checking host system type" >&5 + + host_alias=$host + case "$host_alias" in +@@ -968,7 +1283,7 @@ + echo "$ac_t""$host" 1>&6 + + echo $ac_n "checking build system type""... $ac_c" 1>&6 +-echo "configure:972: checking build system type" >&5 ++echo "configure:1287: checking build system type" >&5 + + build_alias=$build + case "$build_alias" in +@@ -985,40 +1300,10 @@ + build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + echo "$ac_t""$build" 1>&6 + +-# Extract the first word of "ranlib", so it can be a program name with args. +-set dummy ranlib; ac_word=$2 +-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:992: checking for $ac_word" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- if test -n "$RANLIB"; then +- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +-else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +- ac_dummy="$PATH" +- for ac_dir in $ac_dummy; do +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/$ac_word; then +- ac_cv_prog_RANLIB="ranlib" +- break +- fi +- done +- IFS="$ac_save_ifs" +- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +-fi +-fi +-RANLIB="$ac_cv_prog_RANLIB" +-if test -n "$RANLIB"; then +- echo "$ac_t""$RANLIB" 1>&6 +-else +- echo "$ac_t""no" 1>&6 +-fi +- + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1022: checking for $ac_word" >&5 ++echo "configure:1307: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1048,7 +1333,7 @@ + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1052: checking for $ac_word" >&5 ++echo "configure:1337: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1099,7 +1384,7 @@ + # Extract the first word of "cl", so it can be a program name with args. + set dummy cl; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1103: checking for $ac_word" >&5 ++echo "configure:1388: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1131,7 +1416,7 @@ + fi + + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1135: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++echo "configure:1420: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +@@ -1142,12 +1427,12 @@ + + cat > conftest.$ac_ext << EOF + +-#line 1146 "configure" ++#line 1431 "configure" + #include "confdefs.h" + + main(){return(0);} + EOF +-if { (eval echo configure:1151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then +@@ -1173,12 +1458,12 @@ + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } + fi + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:1177: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "configure:1462: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 + echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 + cross_compiling=$ac_cv_prog_cc_cross + + echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +-echo "configure:1182: checking whether we are using GNU C" >&5 ++echo "configure:1467: checking whether we are using GNU C" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1187,7 +1472,7 @@ + yes; + #endif + EOF +-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes + else + ac_cv_prog_gcc=no +@@ -1206,7 +1491,7 @@ + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:1210: checking whether ${CC-cc} accepts -g" >&5 ++echo "configure:1495: checking whether ${CC-cc} accepts -g" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1246,12 +1531,18 @@ + fi + + ac_prog=ld +-if test "$ac_cv_prog_gcc" = yes; then ++if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 +-echo "configure:1253: checking for ld used by GCC" >&5 +- ac_prog=`($CC -print-prog-name=ld) 2>&5` +- case "$ac_prog" in ++echo "configure:1538: checking for ld used by GCC" >&5 ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' +@@ -1273,24 +1564,24 @@ + esac + elif test "$with_gnu_ld" = yes; then + echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 +-echo "configure:1277: checking for GNU ld" >&5 ++echo "configure:1568: checking for GNU ld" >&5 + else + echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 +-echo "configure:1280: checking for non-GNU ld" >&5 ++echo "configure:1571: checking for non-GNU ld" >&5 + fi +-if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then ++if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + if test -z "$LD"; then +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then +- ac_cv_path_LD="$ac_dir/$ac_prog" ++ lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. +- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break +@@ -1299,11 +1590,11 @@ + done + IFS="$ac_save_ifs" + else +- ac_cv_path_LD="$LD" # Let the user override the test with a path. ++ lt_cv_path_LD="$LD" # Let the user override the test with a path. + fi + fi + +-LD="$ac_cv_path_LD" ++LD="$lt_cv_path_LD" + if test -n "$LD"; then + echo "$ac_t""$LD" 1>&6 + else +@@ -1311,245 +1602,3880 @@ + fi + test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } + echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 +-echo "configure:1315: checking if the linker ($LD) is GNU ld" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then ++echo "configure:1606: checking if the linker ($LD) is GNU ld" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. + if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then +- ac_cv_prog_gnu_ld=yes ++ lt_cv_prog_gnu_ld=yes + else +- ac_cv_prog_gnu_ld=no ++ lt_cv_prog_gnu_ld=no + fi + fi + +-echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 ++echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6 ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++ ++echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ++echo "configure:1623: checking for $LD option to reload object files" >&5 ++if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_ld_reload_flag='-r' ++fi + ++echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6 ++reload_flag=$lt_cv_ld_reload_flag ++test -n "$reload_flag" && reload_flag=" $reload_flag" + + echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 +-echo "configure:1331: checking for BSD-compatible nm" >&5 +-if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then ++echo "configure:1635: checking for BSD-compatible nm" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + if test -n "$NM"; then + # Let the user override the test. +- ac_cv_path_NM="$NM" ++ lt_cv_path_NM="$NM" + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then ++ tmp_nm=$ac_dir/${ac_tool_prefix}nm ++ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored +- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then +- ac_cv_path_NM="$ac_dir/nm -B" ++ # Tru64's nm complains that /dev/null is an invalid object file ++ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -B" + break +- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then +- ac_cv_path_NM="$ac_dir/nm -p" ++ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -p" + break + else +- ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" +- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm ++ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm ++fi ++fi ++ ++NM="$lt_cv_path_NM" ++echo "$ac_t""$NM" 1>&6 ++ ++echo $ac_n "checking for a sed that does not truncate output""... $ac_c" 1>&6 ++echo "configure:1673: checking for a sed that does not truncate output" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_SED'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_executable_p="test -f" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++ ++ # Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++: ${TMPDIR=/tmp} ++{ ++ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=$TMPDIR/sed$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ++ { (exit 1); exit 1; } ++} ++ _max=0 ++ _count=0 ++ # Add /usr/xpg4/bin/sed as it is typically found on Solaris ++ # along with /bin/sed that truncates output. ++ for _sed in $_sed_list /usr/xpg4/bin/sed; do ++ test ! -f ${_sed} && break ++ cat /dev/null > "$tmp/sed.in" ++ _count=0 ++ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ++ # Check for GNU sed and select it if it is found. ++ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ++ lt_cv_path_SED=${_sed} ++ break ++ fi ++ while true; do ++ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ++ mv "$tmp/sed.tmp" "$tmp/sed.in" ++ cp "$tmp/sed.in" "$tmp/sed.nl" ++ echo >>"$tmp/sed.nl" ++ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ++ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ++ # 40000 chars as input seems more than enough ++ test $_count -gt 10 && break ++ _count=`expr $_count + 1` ++ if test $_count -gt $_max; then ++ _max=$_count ++ lt_cv_path_SED=$_sed ++ fi ++ done ++ done ++ rm -rf "$tmp" ++ ++fi ++ ++if test "X$SED" != "X"; then ++ lt_cv_path_SED=$SED ++else ++ SED=$lt_cv_path_SED ++fi ++echo "$ac_t""$SED" 1>&6 ++ ++echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ++echo "configure:1757: checking whether ln -s works" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ rm -f conftestdata ++if ln -s X conftestdata 2>/dev/null ++then ++ rm -f conftestdata ++ ac_cv_prog_LN_S="ln -s" ++else ++ ac_cv_prog_LN_S=ln + fi + fi ++LN_S="$ac_cv_prog_LN_S" ++if test "$ac_cv_prog_LN_S" = "ln -s"; then ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++echo $ac_n "checking how to recognise dependent libraries""... $ac_c" 1>&6 ++echo "configure:1778: checking how to recognise dependent libraries" >&5 ++if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix4* | aix5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++bsdi4*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ case "$host_os" in ++ rhapsody* | darwin1.[012]) ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ ;; ++ *) # Darwin 1.3 on ++ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ++ ;; ++ esac ++ ;; ++ ++freebsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20*|hpux11*) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ irix5* | nonstopux*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" ++ ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*|kfreebsd*-gnu) ++ case $host_cpu in ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ++ lt_cv_deplibs_check_method=pass_all ;; ++ *) ++ # glibc up to 2.1.1 does not perform some relocations on ARM ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++openbsd*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' ++ else ++ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ ++sysv5uw[78]* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6 ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++ ++echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ++echo "configure:1964: checking for object suffix" >&5 ++if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ rm -f conftest* ++echo 'int i = 1;' > conftest.$ac_ext ++if { (eval echo configure:1970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ for ac_file in conftest.*; do ++ case $ac_file in ++ *.c) ;; ++ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;; ++ esac ++ done ++else ++ { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; } ++fi ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_objext" 1>&6 ++OBJEXT=$ac_cv_objext ++ac_objext=$ac_cv_objext ++ ++ ++ ++echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ++echo "configure:1990: checking for executable suffix" >&5 ++if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then ++ ac_cv_exeext=.exe ++else ++ rm -f conftest* ++ echo 'int main () { return 0; }' > conftest.$ac_ext ++ ac_cv_exeext= ++ if { (eval echo configure:2000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then ++ for file in conftest.*; do ++ case $file in ++ *.$ac_ext | *.c | *.o | *.obj) ;; ++ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; ++ esac ++ done ++ else ++ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } ++ fi ++ rm -f conftest* ++ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no ++fi ++fi ++ ++EXEEXT="" ++test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} ++echo "$ac_t""${ac_cv_exeext}" 1>&6 ++ac_exeext=$EXEEXT ++ ++if test $host != $build; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++ ++ ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6 ++echo "configure:2031: checking command to parse $NM output" >&5 ++if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[BCDEGRST]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[BCDT]' ++ ;; ++cygwin* | mingw* | pw32*) ++ symcode='[ABCDGISTW]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ;; ++irix* | nonstopux*) ++ symcode='[BCDEGRST]' ++ ;; ++osf*) ++ symcode='[BCDEGQRST]' ++ ;; ++solaris* | sysv5*) ++ symcode='[BDT]' ++ ;; ++sysv4) ++ symcode='[DFNSTU]' ++ ;; ++esac ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $host_os in ++mingw*) ++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[ABCDGISTW]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ rm -f conftest* ++ cat > conftest.$ac_ext <<EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++EOF ++ ++ if { (eval echo configure:2114: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if { (eval echo configure:2117: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<EOF > conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ++ ++ cat <<EOF >> conftest.$ac_ext ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[] = ++{ ++EOF ++ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ++ cat <<\EOF >> conftest.$ac_ext ++ {0, (lt_ptr) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if { (eval echo configure:2168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&5 ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&5 ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 ++ fi ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -f conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++ ++fi ++ ++global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++ global_symbol_to_c_name_address= ++else ++ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ++ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ++fi ++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ++then ++ echo "$ac_t""failed" 1>&6 ++else ++ echo "$ac_t""ok" 1>&6 ++fi ++ ++for ac_hdr in dlfcn.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:2217: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 2222 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:2227: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ ++ ++ ++ ++ ++# Only perform the check for file, if the check method requires it ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ++echo "configure:2263: checking for ${ac_tool_prefix}file" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="/usr/bin:$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/${ac_tool_prefix}file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ echo "$ac_t""$MAGIC_CMD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ echo $ac_n "checking for file""... $ac_c" 1>&6 ++echo "configure:2325: checking for file" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="/usr/bin:$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ echo "$ac_t""$MAGIC_CMD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ else ++ MAGIC_CMD=: ++ fi ++fi ++ ++ fi ++ ;; ++esac ++ ++# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2396: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++if test -z "$ac_cv_prog_RANLIB"; then ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2428: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" ++fi ++fi ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++else ++ RANLIB=":" ++fi ++fi ++ ++# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2463: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++STRIP="$ac_cv_prog_STRIP" ++if test -n "$STRIP"; then ++ echo "$ac_t""$STRIP" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++if test -z "$ac_cv_prog_STRIP"; then ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2495: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_STRIP="strip" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":" ++fi ++fi ++STRIP="$ac_cv_prog_STRIP" ++if test -n "$STRIP"; then ++ echo "$ac_t""$STRIP" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++else ++ STRIP=":" ++fi ++fi ++ ++ ++enable_dlopen=no ++enable_win32_dll=no ++ ++# Check whether --enable-libtool-lock or --disable-libtool-lock was given. ++if test "${enable_libtool_lock+set}" = set; then ++ enableval="$enable_libtool_lock" ++ : ++fi ++ ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '#line 2544 "configure"' > conftest.$ac_ext ++ if { (eval echo configure:2545: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ++echo "configure:2566: checking whether the C compiler needs -belf" >&5 ++if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++ ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++ cat > conftest.$ac_ext <<EOF ++#line 2579 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2586: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ lt_cv_cc_needs_belf=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ lt_cv_cc_needs_belf=no ++fi ++rm -f conftest* ++ ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++fi ++ ++echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++ ++ ++esac ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Constants: ++rm="rm -f" ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++libext=a ++ltmain="$ac_aux_dir/ltmain.sh" ++ofile="$default_ofile" ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++need_locks="$enable_libtool_lock" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$AS" && AS=as ++test -z "$CC" && CC=cc ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$LD" && LD=ld ++test -z "$LN_S" && LN_S="ln -s" ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++test -z "$NM" && NM=nm ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$RANLIB" && RANLIB=: ++test -z "$STRIP" && STRIP=: ++test -z "$ac_objext" && ac_objext=o ++ ++if test x"$host" != x"$build"; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case $host_os in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ++ ;; ++ *) ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="$2" ++ ++echo $ac_n "checking for objdir""... $ac_c" 1>&6 ++echo "configure:2706: checking for objdir" >&5 ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++echo "$ac_t""$objdir" 1>&6 ++ ++ ++# Check whether --with-pic or --without-pic was given. ++if test "${with_pic+set}" = set; then ++ withval="$with_pic" ++ pic_mode="$withval" ++else ++ pic_mode=default ++fi ++ ++test -z "$pic_mode" && pic_mode=default ++ ++# We assume here that the value for lt_cv_prog_cc_pic will not be cached ++# in isolation, and that seeing it set (from the cache) indicates that ++# the associated values are set (in the cache) correctly too. ++echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6 ++echo "configure:2733: checking for $compiler option to produce PIC" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_cc_pic'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_shlib= ++ lt_cv_prog_cc_wl= ++ lt_cv_prog_cc_static= ++ lt_cv_prog_cc_no_builtin= ++ lt_cv_prog_cc_can_build_shared=$can_build_shared ++ ++ if test "$GCC" = yes; then ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-static' ++ ++ case $host_os in ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # not sure about C++ programs. ++ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_cv_prog_cc_pic='-fno-common' ++ ;; ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_cv_prog_cc_pic=-Kconform_pic ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for PIC flags for the system compiler. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ lt_cv_prog_cc_wl='-Wl,' ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_cv_prog_cc_static='-Bstatic' ++ else ++ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ++ lt_cv_prog_cc_pic='+Z' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ ++ newsos6) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ lt_cv_prog_cc_pic='-Kpic' ++ lt_cv_prog_cc_static='-dn' ++ lt_cv_prog_cc_shlib='-belf' ++ ;; ++ ++ solaris*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ lt_cv_prog_cc_pic='-PIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ uts4*) ++ lt_cv_prog_cc_pic='-pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_cv_prog_cc_pic='-Kconform_pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ fi ++ ;; ++ ++ *) ++ lt_cv_prog_cc_can_build_shared=no ++ ;; ++ esac ++ fi ++ ++fi ++ ++if test -z "$lt_cv_prog_cc_pic"; then ++ echo "$ac_t""none" 1>&6 ++else ++ echo "$ac_t""$lt_cv_prog_cc_pic" 1>&6 ++ ++ # Check to make sure the pic_flag actually works. ++ echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6 ++echo "configure:2881: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 ++ if eval "test \"`echo '$''{'lt_cv_prog_cc_pic_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ++ cat > conftest.$ac_ext <<EOF ++#line 2888 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2895: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ case $host_os in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then ++ # they create non-PIC objects. So, if there were any warnings, we ++ # assume that PIC is not supported. ++ if test -s conftest.err; then ++ lt_cv_prog_cc_pic_works=no ++ else ++ lt_cv_prog_cc_pic_works=yes ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic_works=yes ++ ;; ++ esac ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ lt_cv_prog_cc_pic_works=no ++ ++fi ++rm -f conftest* ++ CFLAGS="$save_CFLAGS" ++ ++fi ++ ++ ++ if test "X$lt_cv_prog_cc_pic_works" = Xno; then ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_can_build_shared=no ++ else ++ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ++ fi ++ ++ echo "$ac_t""$lt_cv_prog_cc_pic_works" 1>&6 ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$lt_cv_prog_cc_shlib"; then ++ echo "configure: warning: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" 1>&2 ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : ++ else ++ echo "configure: warning: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2 ++ lt_cv_prog_cc_can_build_shared=no ++ fi ++fi ++ ++echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6 ++echo "configure:2947: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_cc_static_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_prog_cc_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ++ cat > conftest.$ac_ext <<EOF ++#line 2955 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ lt_cv_prog_cc_static_works=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ LDFLAGS="$save_LDFLAGS" ++ ++fi ++ ++ ++# Belt *and* braces to stop my trousers falling down: ++test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ++echo "$ac_t""$lt_cv_prog_cc_static_works" 1>&6 ++ ++pic_flag="$lt_cv_prog_cc_pic" ++special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ++wl="$lt_cv_prog_cc_wl" ++link_static_flag="$lt_cv_prog_cc_static" ++no_builtin_flag="$lt_cv_prog_cc_no_builtin" ++can_build_shared="$lt_cv_prog_cc_can_build_shared" ++ ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6 ++echo "configure:2989: checking if $compiler supports -c -o file.$ac_objext" >&5 ++if eval "test \"`echo '$''{'lt_cv_compiler_c_o'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++echo "int some_variable = 0;" > conftest.$ac_ext ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ++compiler_c_o=no ++if { (eval echo configure:3008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ lt_cv_compiler_c_o=no ++ else ++ lt_cv_compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&5 ++ lt_cv_compiler_c_o=no ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++ ++fi ++ ++compiler_c_o=$lt_cv_compiler_c_o ++echo "$ac_t""$compiler_c_o" 1>&6 ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6 ++echo "configure:3037: checking if $compiler supports -c -o file.lo" >&5 ++ if eval "test \"`echo '$''{'lt_cv_compiler_o_lo'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++ lt_cv_compiler_o_lo=no ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ save_objext="$ac_objext" ++ ac_objext=lo ++ cat > conftest.$ac_ext <<EOF ++#line 3048 "configure" ++#include "confdefs.h" ++ ++int main() { ++int some_variable = 0; ++; return 0; } ++EOF ++if { (eval echo configure:3055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ lt_cv_compiler_o_lo=no ++ else ++ lt_cv_compiler_o_lo=yes ++ fi ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ ac_objext="$save_objext" ++ CFLAGS="$save_CFLAGS" ++ ++fi ++ ++ compiler_o_lo=$lt_cv_compiler_o_lo ++ echo "$ac_t""$compiler_o_lo" 1>&6 ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6 ++echo "configure:3086: checking if we can lock with hard links" >&5 ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ echo "$ac_t""$hard_links" 1>&6 ++ if test "$hard_links" = no; then ++ echo "configure: warning: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" 1>&2 ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$GCC" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6 ++echo "configure:3105: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ++ compiler_rtti_exceptions=no ++ cat > conftest.$ac_ext <<EOF ++#line 3111 "configure" ++#include "confdefs.h" ++ ++int main() { ++int some_variable = 0; ++; return 0; } ++EOF ++if { (eval echo configure:3118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ compiler_rtti_exceptions=no ++ else ++ compiler_rtti_exceptions=yes ++ fi ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ CFLAGS="$save_CFLAGS" ++ echo "$ac_t""$compiler_rtti_exceptions" 1>&6 ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++fi ++ ++# See if the linker supports building shared libraries. ++echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6 ++echo "configure:3145: checking whether the linker ($LD) supports shared libraries" >&5 ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++old_archive_from_expsyms_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_into_libs=no ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++link_all_deplibs=unknown ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++extract_expsyms_cmds= ++ ++case $host_os in ++cygwin* | mingw* | pw32*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ # On AIX, the GNU linker is very broken ++ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ++ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ++ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ++ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ++ else $CC -o impgen impgen.c ; fi)~ ++ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ++ ++ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ++ ++ # cygwin and mingw dlls have different entry points and sets of symbols ++ # to exclude. ++ # FIXME: what about values for MSVC? ++ dll_entry=__cygwin_dll_entry@12 ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ++ case $host_os in ++ mingw*) ++ # mingw values ++ dll_entry=_DllMainCRTStartup@12 ++ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ++ ;; ++ esac ++ ++ # mingw and cygwin differ, and it's simplest to just exclude the union ++ # of the two symbol sets. ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one (in ltdll.c) ++ if test "x$lt_cv_need_dllmain" = "xyes"; then ++ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ++ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ++ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ++ else ++ ltdll_obj= ++ ltdll_cmds= ++ fi ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left be newer dlltools. ++ export_symbols_cmds="$ltdll_cmds"' ++ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ++ ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is. ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname-def; ++ else ++ echo EXPORTS > $output_objdir/$soname-def; ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \$# in ++ 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ++ 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ++ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done; ++ fi~ ++ '"$ltdll_cmds"' ++ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ++ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ++ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw* | pw32*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4* | aix5*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[23]|aix4.[23].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ hardcode_direct=yes ++ archive_cmds='' ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[012]|aix4.[012].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ esac ++ ++ shared_flag='-shared' ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ shared_flag='${wl}-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ # It seems that -bexpall can do strange things, so it is better to ++ # generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ++ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ++ else ++ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='${wl}-berok' ++ # This is a bit strange, but is similar to how AIX traditionally builds ++ # it's shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ ;; ++ ++ darwin* | rhapsody*) ++ case "$host_os" in ++ rhapsody* | darwin1.[012]) ++ allow_undefined_flag='-undefined suppress' ++ ;; ++ *) # Darwin 1.3 on ++ allow_undefined_flag='-flat_namespace -undefined suppress' ++ ;; ++ esac ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. Also zsh mangles ++ # `"' quotes if we put them in here... so don't! ++ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ++ # We need to add '_' to the symbols in $export_symbols first ++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ whole_archive_flag_spec='-all_load $convenience' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case $host_os in ++ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case "$host_os" in ++ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ++ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ++ ++ #Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ ;; ++ ++ solaris*) ++ # gcc --version < 3.0 without binutils cannot create self contained ++ # shared libraries reliably, requiring libgcc.a to resolve some of ++ # the object symbols generated in some cases. Libraries that use ++ # assert need libgcc.a to resolve __eprintf, for example. Linking ++ # a copy of libgcc.a into every shared library to guarantee resolving ++ # such symbols causes other problems: According to Tim Van Holder ++ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate ++ # (to the application) exception stack for one thing. ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ case `$CC --version 2>/dev/null` in ++ [12].*) ++ cat <<EOF 1>&2 ++ ++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably ++*** create self contained shared libraries on Solaris systems, without ++*** introducing a dependency on libgcc.a. Therefore, libtool is disabling ++*** -no-undefined support, which will at least allow you to build shared ++*** libraries. However, you may find that when you link such libraries ++*** into an application without using GCC, you have to manually add ++*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ++*** upgrade to a newer version of GCC. Another option is to rebuild your ++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ++ ++EOF ++ no_undefined_flag= ++ ;; ++ esac ++ fi ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ sysv5uw7* | unixware7*) ++ no_undefined_flag='${wl}-z ${wl}text' ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++echo "$ac_t""$ld_shlibs" 1>&6 ++test "$ld_shlibs" = no && can_build_shared=no ++ ++# Check hardcoding attributes. ++echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6 ++echo "configure:3844: checking how to hardcode library paths into programs" >&5 ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++echo "$ac_t""$hardcode_action" 1>&6 ++ ++striplib= ++old_striplib= ++echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6 ++echo "configure:3872: checking whether stripping libraries is possible" >&5 ++if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++# PORTME Fill in your ld.so characteristics ++echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6 ++echo "configure:3886: checking dynamic linker characteristics" >&5 ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4* | aix5*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[01] | aix4.[01].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can ++ # not hardcode correct soname into executable. Probably we can ++ # add versioning support to collect2, so additional links can ++ # be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib<name>.so ++ # instead of lib<name>.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}.so$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ hardcode_into_libs=yes ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ case $GCC,$host_os in ++ yes,cygwin*) ++ library_names_spec='$libname.dll.a' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog .libs/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $rm \$dlpath' ++ ;; ++ yes,mingw*) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ++ ;; ++ yes,pw32*) ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' ++ ;; ++ *) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. ++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) version_type=irix ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*|kfreebsd*-gnu) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case "$host_os" in ++ openbsd2.[89] | openbsd2.[89].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ need_lib_prefix=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ hardcode_into_libs=yes ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++echo "$ac_t""$dynamic_linker" 1>&6 ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6 ++echo "configure:4310: checking if libtool supports shared libraries" >&5 ++echo "$ac_t""$can_build_shared" 1>&6 ++ ++echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6 ++echo "configure:4314: checking whether to build shared libraries" >&5 ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++esac ++echo "$ac_t""$enable_shared" 1>&6 ++ ++echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6 ++echo "configure:4337: checking whether to build static libraries" >&5 ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++echo "$ac_t""$enable_static" 1>&6 ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ *) ++ echo $ac_n "checking for shl_load""... $ac_c" 1>&6 ++echo "configure:4378: checking for shl_load" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 4383 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char shl_load(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shl_load(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_shl_load) || defined (__stub___shl_load) ++choke me ++#else ++shl_load(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 ++echo "configure:4424: checking for shl_load in -ldld" >&5 ++ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4432 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shl_load(); ++ ++int main() { ++shl_load() ++; return 0; } ++EOF ++if { (eval echo configure:4443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen""... $ac_c" 1>&6 ++echo "configure:4462: checking for dlopen" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 4467 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char dlopen(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_dlopen) || defined (__stub___dlopen) ++choke me ++#else ++dlopen(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ++echo "configure:4508: checking for dlopen in -ldl" >&5 ++ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldl $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4516 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++dlopen() ++; return 0; } ++EOF ++if { (eval echo configure:4527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6 ++echo "configure:4546: checking for dlopen in -lsvld" >&5 ++ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-lsvld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4554 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++dlopen() ++; return 0; } ++EOF ++if { (eval echo configure:4565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 ++echo "configure:4584: checking for dld_link in -ldld" >&5 ++ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4592 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dld_link(); ++ ++int main() { ++dld_link() ++; return 0; } ++EOF ++if { (eval echo configure:4603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 ++echo "configure:4659: checking whether a program can dlopen itself" >&5 ++if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++#line 4669 "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++} ++EOF ++ if { (eval echo configure:4730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_unknown|x*) lt_cv_dlopen_self=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self" 1>&6 ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 ++echo "configure:4753: checking whether a statically linked program can dlopen itself" >&5 ++if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self_static=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++#line 4763 "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++} ++EOF ++ if { (eval echo configure:4824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self_static=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++ ++if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6 ++echo "configure:4873: checking whether -lc should be explicitly linked in" >&5 ++ if eval "test \"`echo '$''{'lt_cv_archive_cmds_need_lc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ $rm conftest* ++ echo 'static int dummy;' > conftest.$ac_ext ++ ++ if { (eval echo configure:4880: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_cv_prog_cc_wl ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if { (eval echo configure:4893: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; } ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++fi ++ ++ echo "$ac_t""$lt_cv_archive_cmds_need_lc" 1>&6 ++ ;; ++ esac ++fi ++need_lc=${lt_cv_archive_cmds_need_lc-yes} ++ ++# The second clause should only fire when bootstrapping the ++# libtool distribution, otherwise you forgot to ship ltmain.sh ++# with your package, and you will get complaints that there are ++# no rules to generate ltmain.sh. ++if test -f "$ltmain"; then ++ : ++else ++ # If there is no Makefile yet, we rely on a make rule to execute ++ # `config.status --recheck' to rerun these tests and create the ++ # libtool script then. ++ test -f Makefile && make "$ltmain" ++fi ++ ++if test -f "$ltmain"; then ++ trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ++ $rm -f "${ofile}T" ++ ++ echo creating $ofile ++ ++ # Now quote all the things that may contain metacharacters while being ++ # careful not to overquote the AC_SUBSTed values. We take copies of the ++ # variables and quote the copies for generation of the libtool script. ++ for var in echo old_CC old_CFLAGS SED \ ++ AR AR_FLAGS CC LD LN_S NM SHELL \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ++ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ++ old_striplib striplib file_magic_cmd export_symbols_cmds \ ++ deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ global_symbol_to_c_name_address \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case $var in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ cat <<__EOF__ > "${ofile}T" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996-2000 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# A sed that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="${SED} -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$need_lc ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$lt_echo ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# The default C compiler. ++CC=$lt_CC ++ ++# Is the compiler the GNU C compiler? ++with_gcc=$GCC ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Whether we need hard or soft links. ++LN_S=$lt_LN_S ++ ++# A BSD-compatible nm program. ++NM=$lt_NM ++ ++# A symbol stripping program ++STRIP=$STRIP ++ ++# Used to examine libraries when file_magic_cmd begins "file" ++MAGIC_CMD=$MAGIC_CMD ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_wl ++ ++# Object file suffix (normally "o"). ++objext="$ac_objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_pic_flag ++pic_mode=$pic_mode ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$lt_compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$lt_need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$lt_thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$lt_RANLIB ++old_archive_cmds=$lt_old_archive_cmds ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +-NM="$ac_cv_path_NM" +-echo "$ac_t""$NM" 1>&6 ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 +-echo "configure:1367: checking whether ln -s works" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- rm -f conftestdata +-if ln -s X conftestdata 2>/dev/null +-then +- rm -f conftestdata +- ac_cv_prog_LN_S="ln -s" +-else +- ac_cv_prog_LN_S=ln +-fi +-fi +-LN_S="$ac_cv_prog_LN_S" +-if test "$ac_cv_prog_LN_S" = "ln -s"; then +- echo "$ac_t""yes" 1>&6 +-else +- echo "$ac_t""no" 1>&6 +-fi ++# Commands used to build and install a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++postinstall_cmds=$lt_postinstall_cmds ++postuninstall_cmds=$lt_postuninstall_cmds + ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib + +-case "$target" in +-NONE) lt_target="$host" ;; +-*) lt_target="$target" ;; +-esac ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method + +-# Check for any special flags to pass to ltconfig. +-libtool_flags="--cache-file=$cache_file" +-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" +-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" +-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" +-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" +-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$lt_file_magic_cmd + ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag + +-# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +-if test "${enable_libtool_lock+set}" = set; then +- enableval="$enable_libtool_lock" +- : +-fi ++# Flag that forces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag + +-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" +-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds + +-# Some flags need to be propagated to the compiler or linker for good +-# libtool support. +-case "$lt_target" in +-*-*-irix6*) +- # Find out which ABI we are using. +- echo '#line 1416 "configure"' > conftest.$ac_ext +- if { (eval echo configure:1417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +- case "`/usr/bin/file conftest.o`" in +- *32-bit*) +- LD="${LD-ld} -32" +- ;; +- *N32*) +- LD="${LD-ld} -n32" +- ;; +- *64-bit*) +- LD="${LD-ld} -64" +- ;; +- esac +- fi +- rm -rf conftest* +- ;; ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$lt_finish_eval + +-*-*-sco3.2v5*) +- # On SCO OpenServer 5, we need -belf to get full-featured binaries. +- SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS -belf" +- echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 +-echo "configure:1438: checking whether the C compiler needs -belf" >&5 +-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <<EOF +-#line 1443 "configure" +-#include "confdefs.h" ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_global_symbol_pipe + +-int main() { ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$lt_global_symbol_to_cdecl + +-; return 0; } +-EOF +-if { (eval echo configure:1450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- lt_cv_cc_needs_belf=yes +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- lt_cv_cc_needs_belf=no +-fi +-rm -f conftest* +-fi ++# Transform the output of nm in a C name address pair ++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address + +-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 +- if test x"$lt_cv_cc_needs_belf" != x"yes"; then +- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf +- CFLAGS="$SAVE_CFLAGS" +- fi +- ;; ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var + ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var + +-esac ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath + ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action + +-# Save cache, so that ltconfig can load it +-cat > confcache <<\EOF +-# This file is a shell script that caches the results of configure +-# tests run on this system so they can be shared between configure +-# scripts and configure runs. It is not useful on other systems. +-# If it contains results you don't want to keep, you may remove or edit it. ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at relink time. ++variables_saved_for_relink="$variables_saved_for_relink" ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# ### END LIBTOOL CONFIG ++ ++__EOF__ ++ ++ case $host_os in ++ aix3*) ++ cat <<\EOF >> "${ofile}T" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ cat <<'EOF' >> "${ofile}T" ++ # This is a source program that is used to create dlls on Windows ++ # Don't remove nor modify the starting and closing comments ++# /* ltdll.c starts here */ ++# #define WIN32_LEAN_AND_MEAN ++# #include <windows.h> ++# #undef WIN32_LEAN_AND_MEAN ++# #include <stdio.h> + # +-# By default, configure uses ./config.cache as the cache file, +-# creating it if it does not exist already. You can give configure +-# the --cache-file=FILE option to use a different cache file; that is +-# what configure does when it calls configure scripts in +-# subdirectories, so they share the cache. +-# Giving --cache-file=/dev/null disables caching, for debugging configure. +-# config.status only pays attention to the cache file if you give it the +-# --recheck option to rerun configure. ++# #ifndef __CYGWIN__ ++# # ifdef __CYGWIN32__ ++# # define __CYGWIN__ __CYGWIN32__ ++# # endif ++# #endif ++# ++# #ifdef __cplusplus ++# extern "C" { ++# #endif ++# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ++# #ifdef __cplusplus ++# } ++# #endif ++# ++# #ifdef __CYGWIN__ ++# #include <cygwin/cygwin_dll.h> ++# DECLARE_CYGWIN_DLL( DllMain ); ++# #endif ++# HINSTANCE __hDllInstance_base; ++# ++# BOOL APIENTRY ++# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ++# { ++# __hDllInstance_base = hInst; ++# return TRUE; ++# } ++# /* ltdll.c ends here */ ++ # This is a source program that is used to create import libraries ++ # on Windows for dlls which lack them. Don't remove nor modify the ++ # starting and closing comments ++# /* impgen.c starts here */ ++# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ++# ++# This file is part of GNU libtool. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# */ ++# ++# #include <stdio.h> /* for printf() */ ++# #include <unistd.h> /* for open(), lseek(), read() */ ++# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ ++# #include <string.h> /* for strdup() */ ++# ++# /* O_BINARY isn't required (or even defined sometimes) under Unix */ ++# #ifndef O_BINARY ++# #define O_BINARY 0 ++# #endif ++# ++# static unsigned int ++# pe_get16 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[2]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 2); ++# return b[0] + (b[1]<<8); ++# } ++# ++# static unsigned int ++# pe_get32 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[4]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 4); ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# static unsigned int ++# pe_as32 (ptr) ++# void *ptr; ++# { ++# unsigned char *b = ptr; ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# int ++# main (argc, argv) ++# int argc; ++# char *argv[]; ++# { ++# int dll; ++# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ++# unsigned long export_rva, export_size, nsections, secptr, expptr; ++# unsigned long name_rvas, nexp; ++# unsigned char *expdata, *erva; ++# char *filename, *dll_name; ++# ++# filename = argv[1]; ++# ++# dll = open(filename, O_RDONLY|O_BINARY); ++# if (dll < 1) ++# return 1; ++# ++# dll_name = filename; ++# ++# for (i=0; filename[i]; i++) ++# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ++# dll_name = filename + i +1; ++# ++# pe_header_offset = pe_get32 (dll, 0x3c); ++# opthdr_ofs = pe_header_offset + 4 + 20; ++# num_entries = pe_get32 (dll, opthdr_ofs + 92); + # ++# if (num_entries < 1) /* no exports */ ++# return 1; ++# ++# export_rva = pe_get32 (dll, opthdr_ofs + 96); ++# export_size = pe_get32 (dll, opthdr_ofs + 100); ++# nsections = pe_get16 (dll, pe_header_offset + 4 +2); ++# secptr = (pe_header_offset + 4 + 20 + ++# pe_get16 (dll, pe_header_offset + 4 + 16)); ++# ++# expptr = 0; ++# for (i = 0; i < nsections; i++) ++# { ++# char sname[8]; ++# unsigned long secptr1 = secptr + 40 * i; ++# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ++# unsigned long vsize = pe_get32 (dll, secptr1 + 16); ++# unsigned long fptr = pe_get32 (dll, secptr1 + 20); ++# lseek(dll, secptr1, SEEK_SET); ++# read(dll, sname, 8); ++# if (vaddr <= export_rva && vaddr+vsize > export_rva) ++# { ++# expptr = fptr + (export_rva - vaddr); ++# if (export_rva + export_size > vaddr + vsize) ++# export_size = vsize - (export_rva - vaddr); ++# break; ++# } ++# } ++# ++# expdata = (unsigned char*)malloc(export_size); ++# lseek (dll, expptr, SEEK_SET); ++# read (dll, expdata, export_size); ++# erva = expdata - export_rva; ++# ++# nexp = pe_as32 (expdata+24); ++# name_rvas = pe_as32 (expdata+32); ++# ++# printf ("EXPORTS\n"); ++# for (i = 0; i<nexp; i++) ++# { ++# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); ++# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); ++# } ++# ++# return 0; ++# } ++# /* impgen.c ends here */ ++ + EOF +-# The following way of writing the cache mishandles newlines in values, +-# but we know of no workaround that is simple, portable, and efficient. +-# So, don't put newlines in cache variables' values. +-# Ultrix sh set writes to stderr and can't be redirected directly, +-# and sets the high bit in the cache file unless we assign to the vars. +-(set) 2>&1 | +- case `(ac_space=' '; set | grep ac_space) 2>&1` in +- *ac_space=\ *) +- # `set' does not quote correctly, so add quotes (double-quote substitution +- # turns \\\\ into \\, and sed turns \\ into \). +- sed -n \ +- -e "s/'/'\\\\''/g" \ +- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" +- ;; +- *) +- # `set' quotes correctly as required by POSIX, so do not add quotes. +- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; +- esac >> confcache +-if cmp -s $cache_file confcache; then +- : +-else +- if test -w $cache_file; then +- echo "updating cache $cache_file" +- cat confcache > $cache_file +- else +- echo "not updating unwritable cache $cache_file" +- fi ++ esac ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ++ ++ mv -f "${ofile}T" "$ofile" || \ ++ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ++ chmod +x "$ofile" + fi +-rm -f confcache + + +-# Actually configure libtool. ac_aux_dir is where install-sh is found. +-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ +-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ +-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \ +-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \ +-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ +-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \ +-|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; } + +-# Reload cache, that may have been modified by ltconfig +-if test -r "$cache_file"; then +- echo "loading cache $cache_file" +- . $cache_file +-else +- echo "creating cache $cache_file" +- > $cache_file +-fi + + + # This can be used to rebuild libtool when needed +-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh" ++LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +-# Redirect the config.log output again, so that the ltconfig log is not +-# clobbered by the next message. +-exec 5>>./config.log ++# Prevent multiple expansion ++ + + + echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +-echo "configure:1553: checking whether to enable maintainer-specific portions of Makefiles" >&5 ++echo "configure:5479: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. + if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" +@@ -1579,7 +5505,7 @@ + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 +-echo "configure:1583: checking host system type" >&5 ++echo "configure:5509: checking host system type" >&5 + + host_alias=$host + case "$host_alias" in +@@ -1649,7 +5575,7 @@ + mem_warn=false + + echo $ac_n "checking whether to enable memory checking""... $ac_c" 1>&6 +-echo "configure:1653: checking whether to enable memory checking" >&5 ++echo "configure:5579: checking whether to enable memory checking" >&5 + if test "x$enable_mem_check" = "xyes"; then + cat >> confdefs.h <<\EOF + #define ENABLE_MEM_CHECK 1 +@@ -1663,7 +5589,7 @@ + fi + + echo $ac_n "checking whether to enable memory profiling""... $ac_c" 1>&6 +-echo "configure:1667: checking whether to enable memory profiling" >&5 ++echo "configure:5593: checking whether to enable memory profiling" >&5 + if test "x$enable_mem_profile" = "xyes"; then + cat >> confdefs.h <<\EOF + #define ENABLE_MEM_PROFILE 1 +@@ -1711,7 +5637,7 @@ + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1715: checking for $ac_word" >&5 ++echo "configure:5641: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1741,7 +5667,7 @@ + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1745: checking for $ac_word" >&5 ++echo "configure:5671: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1792,7 +5718,7 @@ + # Extract the first word of "cl", so it can be a program name with args. + set dummy cl; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1796: checking for $ac_word" >&5 ++echo "configure:5722: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1824,7 +5750,7 @@ + fi + + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1828: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++echo "configure:5754: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +@@ -1835,12 +5761,12 @@ + + cat > conftest.$ac_ext << EOF + +-#line 1839 "configure" ++#line 5765 "configure" + #include "confdefs.h" + + main(){return(0);} + EOF +-if { (eval echo configure:1844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:5770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then +@@ -1866,12 +5792,12 @@ + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } + fi + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:1870: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "configure:5796: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 + echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 + cross_compiling=$ac_cv_prog_cc_cross + + echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +-echo "configure:1875: checking whether we are using GNU C" >&5 ++echo "configure:5801: checking whether we are using GNU C" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1880,7 +5806,7 @@ + yes; + #endif + EOF +-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1884: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:5810: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes + else + ac_cv_prog_gcc=no +@@ -1899,7 +5825,7 @@ + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:1903: checking whether ${CC-cc} accepts -g" >&5 ++echo "configure:5829: checking whether ${CC-cc} accepts -g" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1934,7 +5860,7 @@ + + + echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 +-echo "configure:1938: checking for ${CC-cc} option to accept ANSI C" >&5 ++echo "configure:5864: checking for ${CC-cc} option to accept ANSI C" >&5 + if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1950,7 +5876,7 @@ + do + CC="$ac_save_CC $ac_arg" + cat > conftest.$ac_ext <<EOF +-#line 1954 "configure" ++#line 5880 "configure" + #include "confdefs.h" + #include <stdarg.h> + #include <stdio.h> +@@ -1987,7 +5913,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:1991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:5917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + am_cv_prog_cc_stdc="$ac_arg"; break + else +@@ -2022,7 +5948,7 @@ + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" + # ./install, which can be erroneously created by make from ./install.sh. + echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +-echo "configure:2026: checking for a BSD compatible install" >&5 ++echo "configure:5952: checking for a BSD compatible install" >&5 + if test -z "$INSTALL"; then + if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -2095,19 +6021,19 @@ + fi + + echo $ac_n "checking for extra flags to get ANSI library prototypes""... $ac_c" 1>&6 +-echo "configure:2099: checking for extra flags to get ANSI library prototypes" >&5 ++echo "configure:6025: checking for extra flags to get ANSI library prototypes" >&5 + glib_save_LIBS=$LIBS + LIBS="$LIBS -lm" + if test "$cross_compiling" = yes; then + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2106 "configure" ++#line 6032 "configure" + #include "confdefs.h" + #include <math.h> + int main (void) { return (log(1) != log(1.)); } + EOF +-if { (eval echo configure:2111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + echo "$ac_t""none needed" 1>&6 + else +@@ -2120,12 +6046,12 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2124 "configure" ++#line 6050 "configure" + #include "confdefs.h" + #include <math.h> + int main (void) { return (log(1) != log(1.)); } + EOF +-if { (eval echo configure:2129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + echo "$ac_t""-std1" 1>&6 + else +@@ -2148,16 +6074,16 @@ + LIBS=$glib_save_LIBS + + echo $ac_n "checking for extra flags for POSIX compliance""... $ac_c" 1>&6 +-echo "configure:2152: checking for extra flags for POSIX compliance" >&5 ++echo "configure:6078: checking for extra flags for POSIX compliance" >&5 + cat > conftest.$ac_ext <<EOF +-#line 2154 "configure" ++#line 6080 "configure" + #include "confdefs.h" + #include <dirent.h> + int main() { + DIR *dir; + ; return 0; } + EOF +-if { (eval echo configure:2161: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""none needed" 1>&6 + else +@@ -2167,14 +6093,14 @@ + glib_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -posix" + cat > conftest.$ac_ext <<EOF +-#line 2171 "configure" ++#line 6097 "configure" + #include "confdefs.h" + #include <dirent.h> + int main() { + DIR *dir; + ; return 0; } + EOF +-if { (eval echo configure:2178: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6104: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""-posix" 1>&6 + else +@@ -2190,93 +6116,13 @@ + rm -f conftest* + + # Checks for header files. +-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +-echo "configure:2195: checking how to run the C preprocessor" >&5 +-# On Suns, sometimes $CPP names a directory. +-if test -n "$CPP" && test -d "$CPP"; then +- CPP= +-fi +-if test -z "$CPP"; then +-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- # This must be in double quotes, not single quotes, because CPP may get +- # substituted into the Makefile and "${CC-cc}" will confuse make. +- CPP="${CC-cc} -E" +- # On the NeXT, cc -E runs the code through the compiler's parser, +- # not just through cpp. +- cat > conftest.$ac_ext <<EOF +-#line 2210 "configure" +-#include "confdefs.h" +-#include <assert.h> +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2216: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then +- : +-else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP="${CC-cc} -E -traditional-cpp" +- cat > conftest.$ac_ext <<EOF +-#line 2227 "configure" +-#include "confdefs.h" +-#include <assert.h> +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then +- : +-else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP="${CC-cc} -nologo -E" +- cat > conftest.$ac_ext <<EOF +-#line 2244 "configure" +-#include "confdefs.h" +-#include <assert.h> +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then +- : +-else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP=/lib/cpp +-fi +-rm -f conftest* +-fi +-rm -f conftest* +-fi +-rm -f conftest* +- ac_cv_prog_CPP="$CPP" +-fi +- CPP="$ac_cv_prog_CPP" +-else +- ac_cv_prog_CPP="$CPP" +-fi +-echo "$ac_t""$CPP" 1>&6 +- + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +-echo "configure:2275: checking for ANSI C header files" >&5 ++echo "configure:6121: checking for ANSI C header files" >&5 + if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2280 "configure" ++#line 6126 "configure" + #include "confdefs.h" + #include <stdlib.h> + #include <stdarg.h> +@@ -2284,7 +6130,7 @@ + #include <float.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2288: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:6134: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2301,7 +6147,7 @@ + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 2305 "configure" ++#line 6151 "configure" + #include "confdefs.h" + #include <string.h> + EOF +@@ -2319,7 +6165,7 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 2323 "configure" ++#line 6169 "configure" + #include "confdefs.h" + #include <stdlib.h> + EOF +@@ -2340,7 +6186,7 @@ + : + else + cat > conftest.$ac_ext <<EOF +-#line 2344 "configure" ++#line 6190 "configure" + #include "confdefs.h" + #include <ctype.h> + #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +@@ -2351,7 +6197,7 @@ + exit (0); } + + EOF +-if { (eval echo configure:2355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -2377,12 +6223,12 @@ + + # Checks for library functions. + echo $ac_n "checking for vprintf""... $ac_c" 1>&6 +-echo "configure:2381: checking for vprintf" >&5 ++echo "configure:6227: checking for vprintf" >&5 + if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2386 "configure" ++#line 6232 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char vprintf(); below. */ +@@ -2405,7 +6251,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_vprintf=yes" + else +@@ -2429,12 +6275,12 @@ + + if test "$ac_cv_func_vprintf" != yes; then + echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 +-echo "configure:2433: checking for _doprnt" >&5 ++echo "configure:6279: checking for _doprnt" >&5 + if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2438 "configure" ++#line 6284 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _doprnt(); below. */ +@@ -2457,7 +6303,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func__doprnt=yes" + else +@@ -2485,12 +6331,12 @@ + for ac_func in atexit on_exit + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:2489: checking for $ac_func" >&5 ++echo "configure:6335: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2494 "configure" ++#line 6340 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -2513,7 +6359,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -2539,7 +6385,7 @@ + + + echo $ac_n "checking size of char""... $ac_c" 1>&6 +-echo "configure:2543: checking size of char" >&5 ++echo "configure:6389: checking size of char" >&5 + if eval "test \"`echo '$''{'ac_cv_sizeof_char'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2547,9 +6393,10 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2551 "configure" ++#line 6397 "configure" + #include "confdefs.h" + #include <stdio.h> ++#include <sys/types.h> + main() + { + FILE *f=fopen("conftestval", "w"); +@@ -2558,7 +6405,7 @@ + exit(0); + } + EOF +-if { (eval echo configure:2562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_sizeof_char=`cat conftestval` + else +@@ -2578,7 +6425,7 @@ + + + echo $ac_n "checking size of short""... $ac_c" 1>&6 +-echo "configure:2582: checking size of short" >&5 ++echo "configure:6429: checking size of short" >&5 + if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2586,9 +6433,10 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2590 "configure" ++#line 6437 "configure" + #include "confdefs.h" + #include <stdio.h> ++#include <sys/types.h> + main() + { + FILE *f=fopen("conftestval", "w"); +@@ -2597,7 +6445,7 @@ + exit(0); + } + EOF +-if { (eval echo configure:2601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_sizeof_short=`cat conftestval` + else +@@ -2617,7 +6465,7 @@ + + + echo $ac_n "checking size of long""... $ac_c" 1>&6 +-echo "configure:2621: checking size of long" >&5 ++echo "configure:6469: checking size of long" >&5 + if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2625,9 +6473,10 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2629 "configure" ++#line 6477 "configure" + #include "confdefs.h" + #include <stdio.h> ++#include <sys/types.h> + main() + { + FILE *f=fopen("conftestval", "w"); +@@ -2636,7 +6485,7 @@ + exit(0); + } + EOF +-if { (eval echo configure:2640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_sizeof_long=`cat conftestval` + else +@@ -2656,7 +6505,7 @@ + + + echo $ac_n "checking size of int""... $ac_c" 1>&6 +-echo "configure:2660: checking size of int" >&5 ++echo "configure:6509: checking size of int" >&5 + if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2664,9 +6513,10 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2668 "configure" ++#line 6517 "configure" + #include "confdefs.h" + #include <stdio.h> ++#include <sys/types.h> + main() + { + FILE *f=fopen("conftestval", "w"); +@@ -2675,7 +6525,7 @@ + exit(0); + } + EOF +-if { (eval echo configure:2679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_sizeof_int=`cat conftestval` + else +@@ -2695,7 +6545,7 @@ + + + echo $ac_n "checking size of void *""... $ac_c" 1>&6 +-echo "configure:2699: checking size of void *" >&5 ++echo "configure:6549: checking size of void *" >&5 + if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2703,9 +6553,10 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2707 "configure" ++#line 6557 "configure" + #include "confdefs.h" + #include <stdio.h> ++#include <sys/types.h> + main() + { + FILE *f=fopen("conftestval", "w"); +@@ -2714,7 +6565,7 @@ + exit(0); + } + EOF +-if { (eval echo configure:2718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_sizeof_void_p=`cat conftestval` + else +@@ -2734,7 +6585,7 @@ + + + echo $ac_n "checking size of long long""... $ac_c" 1>&6 +-echo "configure:2738: checking size of long long" >&5 ++echo "configure:6589: checking size of long long" >&5 + if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2742,9 +6593,10 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2746 "configure" ++#line 6597 "configure" + #include "confdefs.h" + #include <stdio.h> ++#include <sys/types.h> + main() + { + FILE *f=fopen("conftestval", "w"); +@@ -2753,7 +6605,7 @@ + exit(0); + } + EOF +-if { (eval echo configure:2757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_sizeof_long_long=`cat conftestval` + else +@@ -2774,12 +6626,12 @@ + + + echo $ac_n "checking for working const""... $ac_c" 1>&6 +-echo "configure:2778: checking for working const" >&5 ++echo "configure:6630: checking for working const" >&5 + if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2783 "configure" ++#line 6635 "configure" + #include "confdefs.h" + + int main() { +@@ -2828,7 +6680,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2832: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6684: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes + else +@@ -2850,7 +6702,7 @@ + + + echo $ac_n "checking for __inline""... $ac_c" 1>&6 +-echo "configure:2854: checking for __inline" >&5 ++echo "configure:6706: checking for __inline" >&5 + if eval "test \"`echo '$''{'glib_cv_has__inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2859,14 +6711,14 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2863 "configure" ++#line 6715 "configure" + #include "confdefs.h" + + __inline int foo () { return 0; } + int main () { return foo (); } + + EOF +-if { (eval echo configure:2870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_has__inline=yes + +@@ -2891,7 +6743,7 @@ + + esac + echo $ac_n "checking for __inline__""... $ac_c" 1>&6 +-echo "configure:2895: checking for __inline__" >&5 ++echo "configure:6747: checking for __inline__" >&5 + if eval "test \"`echo '$''{'glib_cv_has__inline__'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2900,14 +6752,14 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2904 "configure" ++#line 6756 "configure" + #include "confdefs.h" + + __inline__ int foo () { return 0; } + int main () { return foo (); } + + EOF +-if { (eval echo configure:2911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_has__inline__=yes + +@@ -2932,7 +6784,7 @@ + + esac + echo $ac_n "checking for inline""... $ac_c" 1>&6 +-echo "configure:2936: checking for inline" >&5 ++echo "configure:6788: checking for inline" >&5 + if eval "test \"`echo '$''{'glib_cv_hasinline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2941,14 +6793,14 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 2945 "configure" ++#line 6797 "configure" + #include "confdefs.h" + + inline int foo () { return 0; } + int main () { return foo (); } + + EOF +-if { (eval echo configure:2952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_hasinline=yes + +@@ -2974,14 +6826,14 @@ + esac + + echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 +-echo "configure:2978: checking whether byte ordering is bigendian" >&5 ++echo "configure:6830: checking whether byte ordering is bigendian" >&5 + if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_cv_c_bigendian=unknown + # See if sys/param.h defines the BYTE_ORDER macro. + cat > conftest.$ac_ext <<EOF +-#line 2985 "configure" ++#line 6837 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/param.h> +@@ -2992,11 +6844,11 @@ + #endif + ; return 0; } + EOF +-if { (eval echo configure:2996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + # It does; now see whether it defined to BIG_ENDIAN or not. + cat > conftest.$ac_ext <<EOF +-#line 3000 "configure" ++#line 6852 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <sys/param.h> +@@ -3007,7 +6859,7 @@ + #endif + ; return 0; } + EOF +-if { (eval echo configure:3011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_bigendian=yes + else +@@ -3027,7 +6879,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 3031 "configure" ++#line 6883 "configure" + #include "confdefs.h" + main () { + /* Are we little or big endian? From Harbison&Steele. */ +@@ -3040,7 +6892,7 @@ + exit (u.c[sizeof (long) - 1] == 1); + } + EOF +-if { (eval echo configure:3044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_c_bigendian=no + else +@@ -3068,17 +6920,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3072: checking for $ac_hdr" >&5 ++echo "configure:6924: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3077 "configure" ++#line 6929 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3082: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:6934: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3111,17 +6963,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3115: checking for $ac_hdr" >&5 ++echo "configure:6967: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3120 "configure" ++#line 6972 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:6977: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3154,17 +7006,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3158: checking for $ac_hdr" >&5 ++echo "configure:7010: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3163 "configure" ++#line 7015 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3168: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7020: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3197,17 +7049,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3201: checking for $ac_hdr" >&5 ++echo "configure:7053: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3206 "configure" ++#line 7058 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3211: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7063: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3240,17 +7092,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3244: checking for $ac_hdr" >&5 ++echo "configure:7096: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3249 "configure" ++#line 7101 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3254: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7106: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3283,17 +7135,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3287: checking for $ac_hdr" >&5 ++echo "configure:7139: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3292 "configure" ++#line 7144 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7149: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3326,17 +7178,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3330: checking for $ac_hdr" >&5 ++echo "configure:7182: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3335 "configure" ++#line 7187 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3340: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3369,17 +7221,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3373: checking for $ac_hdr" >&5 ++echo "configure:7225: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3378 "configure" ++#line 7230 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3383: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3412,17 +7264,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3416: checking for $ac_hdr" >&5 ++echo "configure:7268: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3421 "configure" ++#line 7273 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7278: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3455,17 +7307,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3459: checking for $ac_hdr" >&5 ++echo "configure:7311: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3464 "configure" ++#line 7316 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3469: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7321: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3499,12 +7351,12 @@ + for ac_func in lstat strerror strsignal memmove vsnprintf strcasecmp strncasecmp poll + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3503: checking for $ac_func" >&5 ++echo "configure:7355: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3508 "configure" ++#line 7360 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3527,7 +7379,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7383: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3554,9 +7406,9 @@ + + # Check for sys_errlist + echo $ac_n "checking for sys_errlist""... $ac_c" 1>&6 +-echo "configure:3558: checking for sys_errlist" >&5 ++echo "configure:7410: checking for sys_errlist" >&5 + cat > conftest.$ac_ext <<EOF +-#line 3560 "configure" ++#line 7412 "configure" + #include "confdefs.h" + + int main() { +@@ -3567,7 +7419,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + glib_ok=yes + else +@@ -3587,9 +7439,9 @@ + + # Check for sys_siglist + echo $ac_n "checking for sys_siglist""... $ac_c" 1>&6 +-echo "configure:3591: checking for sys_siglist" >&5 ++echo "configure:7443: checking for sys_siglist" >&5 + cat > conftest.$ac_ext <<EOF +-#line 3593 "configure" ++#line 7445 "configure" + #include "confdefs.h" + + int main() { +@@ -3599,7 +7451,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + glib_ok=yes + else +@@ -3619,9 +7471,9 @@ + + # Check for sys_siglist decl (see Tue Jan 19 00:44:24 1999 in changelog) + echo $ac_n "checking for sys_siglist declaration""... $ac_c" 1>&6 +-echo "configure:3623: checking for sys_siglist declaration" >&5 ++echo "configure:7475: checking for sys_siglist declaration" >&5 + cat > conftest.$ac_ext <<EOF +-#line 3625 "configure" ++#line 7477 "configure" + #include "confdefs.h" + #include <signal.h> + int main() { +@@ -3630,7 +7482,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3634: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:7486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + glib_ok=yes + else +@@ -3650,16 +7502,16 @@ + + # Check if <sys/select.h> needs to be included for fd_set + echo $ac_n "checking for fd_set""... $ac_c" 1>&6 +-echo "configure:3654: checking for fd_set" >&5 ++echo "configure:7506: checking for fd_set" >&5 + cat > conftest.$ac_ext <<EOF +-#line 3656 "configure" ++#line 7508 "configure" + #include "confdefs.h" + #include <sys/types.h> + int main() { + fd_set readMask, writeMask; + ; return 0; } + EOF +-if { (eval echo configure:3663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:7515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + gtk_ok=yes + else +@@ -3673,7 +7525,7 @@ + echo "$ac_t""yes, found in sys/types.h" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3677 "configure" ++#line 7529 "configure" + #include "confdefs.h" + #include <sys/select.h> + EOF +@@ -3707,14 +7559,14 @@ + # Check for wchar.h + + echo $ac_n "checking for wchar.h""... $ac_c" 1>&6 +-echo "configure:3711: checking for wchar.h" >&5 ++echo "configure:7563: checking for wchar.h" >&5 + cat > conftest.$ac_ext <<EOF +-#line 3713 "configure" ++#line 7565 "configure" + #include "confdefs.h" + #include <wchar.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3718: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7570: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3738,14 +7590,14 @@ + # Check for wctype.h (for iswalnum) + + echo $ac_n "checking for wctype.h""... $ac_c" 1>&6 +-echo "configure:3742: checking for wctype.h" >&5 ++echo "configure:7594: checking for wctype.h" >&5 + cat > conftest.$ac_ext <<EOF +-#line 3744 "configure" ++#line 7596 "configure" + #include "confdefs.h" + #include <wctype.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7601: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3769,12 +7621,12 @@ + oLIBS="$LIBS" + # in Solaris 2.5, `iswalnum' is in -lw + echo $ac_n "checking for iswalnum""... $ac_c" 1>&6 +-echo "configure:3773: checking for iswalnum" >&5 ++echo "configure:7625: checking for iswalnum" >&5 + if eval "test \"`echo '$''{'ac_cv_func_iswalnum'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3778 "configure" ++#line 7630 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char iswalnum(); below. */ +@@ -3797,7 +7649,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_iswalnum=yes" + else +@@ -3815,7 +7667,7 @@ + else + echo "$ac_t""no" 1>&6 + echo $ac_n "checking for iswalnum in -lw""... $ac_c" 1>&6 +-echo "configure:3819: checking for iswalnum in -lw" >&5 ++echo "configure:7671: checking for iswalnum in -lw" >&5 + ac_lib_var=`echo w'_'iswalnum | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -3823,7 +7675,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lw $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 3827 "configure" ++#line 7679 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -3834,7 +7686,7 @@ + iswalnum() + ; return 0; } + EOF +-if { (eval echo configure:3838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -3866,9 +7718,9 @@ + + # The following is necessary for Linux libc-5.4.38 + echo $ac_n "checking if iswalnum() and friends are properly defined""... $ac_c" 1>&6 +-echo "configure:3870: checking if iswalnum() and friends are properly defined" >&5 ++echo "configure:7722: checking if iswalnum() and friends are properly defined" >&5 + cat > conftest.$ac_ext <<EOF +-#line 3872 "configure" ++#line 7724 "configure" + #include "confdefs.h" + #include <stdlib.h> + int main() { +@@ -3888,7 +7740,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + glib_working_wctype=yes + else +@@ -3909,7 +7761,7 @@ + echo "$ac_t""$glib_working_wctype" 1>&6 + + echo $ac_n "checking whether realloc (NULL,) will work""... $ac_c" 1>&6 +-echo "configure:3913: checking whether realloc (NULL,) will work" >&5 ++echo "configure:7765: checking whether realloc (NULL,) will work" >&5 + if eval "test \"`echo '$''{'glib_cv_sane_realloc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3918,7 +7770,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 3922 "configure" ++#line 7774 "configure" + #include "confdefs.h" + + #include <stdlib.h> +@@ -3926,7 +7778,7 @@ + return realloc (0, sizeof (int)) == 0; + } + EOF +-if { (eval echo configure:3930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:7782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_sane_realloc=yes + cat >> confdefs.h <<\EOF +@@ -3951,7 +7803,7 @@ + + + echo $ac_n "checking for an implementation of va_copy()""... $ac_c" 1>&6 +-echo "configure:3955: checking for an implementation of va_copy()" >&5 ++echo "configure:7807: checking for an implementation of va_copy()" >&5 + if eval "test \"`echo '$''{'glib_cv_va_copy'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3960,7 +7812,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 3964 "configure" ++#line 7816 "configure" + #include "confdefs.h" + + #include <stdarg.h> +@@ -3977,7 +7829,7 @@ + return 0; + } + EOF +-if { (eval echo configure:3981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:7833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_va_copy=yes + +@@ -3996,7 +7848,7 @@ + + echo "$ac_t""$glib_cv_va_copy" 1>&6 + echo $ac_n "checking for an implementation of __va_copy()""... $ac_c" 1>&6 +-echo "configure:4000: checking for an implementation of __va_copy()" >&5 ++echo "configure:7852: checking for an implementation of __va_copy()" >&5 + if eval "test \"`echo '$''{'glib_cv___va_copy'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4005,7 +7857,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 4009 "configure" ++#line 7861 "configure" + #include "confdefs.h" + + #include <stdarg.h> +@@ -4022,7 +7874,7 @@ + return 0; + } + EOF +-if { (eval echo configure:4026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:7878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv___va_copy=yes + +@@ -4041,7 +7893,7 @@ + + echo "$ac_t""$glib_cv___va_copy" 1>&6 + echo $ac_n "checking whether va_lists can be copied by value""... $ac_c" 1>&6 +-echo "configure:4045: checking whether va_lists can be copied by value" >&5 ++echo "configure:7897: checking whether va_lists can be copied by value" >&5 + if eval "test \"`echo '$''{'glib_cv_va_val_copy'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4050,7 +7902,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 4054 "configure" ++#line 7906 "configure" + #include "confdefs.h" + + #include <stdarg.h> +@@ -4067,7 +7919,7 @@ + return 0; + } + EOF +-if { (eval echo configure:4071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:7923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_va_val_copy=yes + +@@ -4112,12 +7964,12 @@ + G_MODULE_HAVE_DLERROR=0 + if test -z "$G_MODULE_IMPL"; then + echo $ac_n "checking for dlopen""... $ac_c" 1>&6 +-echo "configure:4116: checking for dlopen" >&5 ++echo "configure:7968: checking for dlopen" >&5 + if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4121 "configure" ++#line 7973 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen(); below. */ +@@ -4140,7 +7992,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_dlopen=yes" + else +@@ -4155,12 +8007,12 @@ + if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for dlsym""... $ac_c" 1>&6 +-echo "configure:4159: checking for dlsym" >&5 ++echo "configure:8011: checking for dlsym" >&5 + if eval "test \"`echo '$''{'ac_cv_func_dlsym'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4164 "configure" ++#line 8016 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlsym(); below. */ +@@ -4183,7 +8035,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_dlsym=yes" + else +@@ -4211,7 +8063,7 @@ + fi + if test -z "$G_MODULE_IMPL"; then + echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 +-echo "configure:4215: checking for dlopen in -ldl" >&5 ++echo "configure:8067: checking for dlopen in -ldl" >&5 + ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4219,7 +8071,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-ldl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4223 "configure" ++#line 8075 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4230,7 +8082,7 @@ + dlopen() + ; return 0; } + EOF +-if { (eval echo configure:4234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4246,7 +8098,7 @@ + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for dlsym in -ldl""... $ac_c" 1>&6 +-echo "configure:4250: checking for dlsym in -ldl" >&5 ++echo "configure:8102: checking for dlsym in -ldl" >&5 + ac_lib_var=`echo dl'_'dlsym | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4254,7 +8106,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-ldl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4258 "configure" ++#line 8110 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4265,7 +8117,7 @@ + dlsym() + ; return 0; } + EOF +-if { (eval echo configure:4269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4295,18 +8147,18 @@ + fi + if test -z "$G_MODULE_IMPL"; then + echo $ac_n "checking how to export all symbols""... $ac_c" 1>&6 +-echo "configure:4299: checking how to export all symbols" >&5 ++echo "configure:8151: checking how to export all symbols" >&5 + SAVED_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-E" + cat > conftest.$ac_ext <<EOF +-#line 4303 "configure" ++#line 8155 "configure" + #include "confdefs.h" + + int main() { + return 0; + ; return 0; } + EOF +-if { (eval echo configure:4310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + G_MODULE_LDFLAGS="-Wl,-E" + else +@@ -4316,14 +8168,14 @@ + + LDFLAGS="$SAVED_LDFLAGS -bexpall" + cat > conftest.$ac_ext <<EOF +-#line 4320 "configure" ++#line 8172 "configure" + #include "confdefs.h" + + int main() { + return 0; + ; return 0; } + EOF +-if { (eval echo configure:4327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + G_MODULE_LDFLAGS="-bexpall" + else +@@ -4343,7 +8195,7 @@ + G_MODULE_LDFLAGS= + fi + echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 +-echo "configure:4347: checking for shl_load in -ldld" >&5 ++echo "configure:8199: checking for shl_load in -ldld" >&5 + ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4351,7 +8203,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-ldld $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4355 "configure" ++#line 8207 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4362,7 +8214,7 @@ + shl_load() + ; return 0; } + EOF +-if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4396,7 +8248,7 @@ + LIBS="$LIBS $G_MODULE_LIBS" + LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS" + echo $ac_n "checking for RTLD_GLOBAL brokenness""... $ac_c" 1>&6 +-echo "configure:4400: checking for RTLD_GLOBAL brokenness" >&5 ++echo "configure:8252: checking for RTLD_GLOBAL brokenness" >&5 + if eval "test \"`echo '$''{'glib_cv_rtldglobal_broken'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4405,7 +8257,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 4409 "configure" ++#line 8261 "configure" + #include "confdefs.h" + + #include <dlfcn.h> +@@ -4425,7 +8277,7 @@ + return global == local; + } + EOF +-if { (eval echo configure:4429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:8281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_rtldglobal_broken=no + else +@@ -4448,7 +8300,7 @@ + G_MODULE_BROKEN_RTLD_GLOBAL=0 + fi + echo $ac_n "checking for preceeding underscore in symbols""... $ac_c" 1>&6 +-echo "configure:4452: checking for preceeding underscore in symbols" >&5 ++echo "configure:8304: checking for preceeding underscore in symbols" >&5 + if eval "test \"`echo '$''{'glib_cv_uscore'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4457,7 +8309,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 4461 "configure" ++#line 8313 "configure" + #include "confdefs.h" + + #include <dlfcn.h> +@@ -4471,7 +8323,7 @@ + } return (!f2 || f1); + } + EOF +-if { (eval echo configure:4475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:8327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_uscore=yes + else +@@ -4496,12 +8348,12 @@ + + LDFLAGS="$LDFLAGS_orig" + echo $ac_n "checking for dlerror""... $ac_c" 1>&6 +-echo "configure:4500: checking for dlerror" >&5 ++echo "configure:8352: checking for dlerror" >&5 + if eval "test \"`echo '$''{'ac_cv_func_dlerror'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4505 "configure" ++#line 8357 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlerror(); below. */ +@@ -4524,7 +8376,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_dlerror=yes" + else +@@ -4608,7 +8460,7 @@ + case $host in + *-*-solaris*) + echo $ac_n "checking for cond_init in -lthread""... $ac_c" 1>&6 +-echo "configure:4612: checking for cond_init in -lthread" >&5 ++echo "configure:8464: checking for cond_init in -lthread" >&5 + ac_lib_var=`echo thread'_'cond_init | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4616,7 +8468,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lthread $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4620 "configure" ++#line 8472 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4627,7 +8479,7 @@ + cond_init() + ; return 0; } + EOF +-if { (eval echo configure:4631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4654,17 +8506,17 @@ + if test "x$have_threads" = xnone; then + ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for pthread.h""... $ac_c" 1>&6 +-echo "configure:4658: checking for pthread.h" >&5 ++echo "configure:8510: checking for pthread.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4663 "configure" ++#line 8515 "configure" + #include "confdefs.h" + #include <pthread.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:4668: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:8520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -4690,7 +8542,7 @@ + if test "x$want_threads" = xyes || test "x$want_threads" = xnspr; then + if test "x$have_threads" = xnone; then + echo $ac_n "checking for PRP_NewNakedCondVar in -lnspr21""... $ac_c" 1>&6 +-echo "configure:4694: checking for PRP_NewNakedCondVar in -lnspr21" >&5 ++echo "configure:8546: checking for PRP_NewNakedCondVar in -lnspr21" >&5 + ac_lib_var=`echo nspr21'_'PRP_NewNakedCondVar | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4698,7 +8550,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lnspr21 $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4702 "configure" ++#line 8554 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4709,7 +8561,7 @@ + PRP_NewNakedCondVar() + ; return 0; } + EOF +-if { (eval echo configure:4713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4733,7 +8585,7 @@ + fi + + echo $ac_n "checking for thread implementation""... $ac_c" 1>&6 +-echo "configure:4737: checking for thread implementation" >&5 ++echo "configure:8589: checking for thread implementation" >&5 + + if test "x$have_threads" = xnone && test "x$want_threads" != xno; then + echo "$ac_t""none available" 1>&6 +@@ -4752,7 +8604,7 @@ + posix) + G_THREAD_LIBS=error + echo $ac_n "checking for pthread_attr_init in -lpthread""... $ac_c" 1>&6 +-echo "configure:4756: checking for pthread_attr_init in -lpthread" >&5 ++echo "configure:8608: checking for pthread_attr_init in -lpthread" >&5 + ac_lib_var=`echo pthread'_'pthread_attr_init | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4760,7 +8612,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lpthread $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4764 "configure" ++#line 8616 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4771,7 +8623,7 @@ + pthread_attr_init() + ; return 0; } + EOF +-if { (eval echo configure:4775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4793,7 +8645,7 @@ + + if test "x$G_THREAD_LIBS" = xerror; then + echo $ac_n "checking for pthread_attr_init in -lpthreads""... $ac_c" 1>&6 +-echo "configure:4797: checking for pthread_attr_init in -lpthreads" >&5 ++echo "configure:8649: checking for pthread_attr_init in -lpthreads" >&5 + ac_lib_var=`echo pthreads'_'pthread_attr_init | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4801,7 +8653,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lpthreads $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4805 "configure" ++#line 8657 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4812,7 +8664,7 @@ + pthread_attr_init() + ; return 0; } + EOF +-if { (eval echo configure:4816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4835,7 +8687,7 @@ + fi + if test "x$G_THREAD_LIBS" = xerror; then + echo $ac_n "checking for pthread_attr_init in -lthread""... $ac_c" 1>&6 +-echo "configure:4839: checking for pthread_attr_init in -lthread" >&5 ++echo "configure:8691: checking for pthread_attr_init in -lthread" >&5 + ac_lib_var=`echo thread'_'pthread_attr_init | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4843,7 +8695,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lthread $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4847 "configure" ++#line 8699 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4854,7 +8706,7 @@ + pthread_attr_init() + ; return 0; } + EOF +-if { (eval echo configure:4858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4877,7 +8729,7 @@ + fi + if test "x$G_THREAD_LIBS" = xerror; then + echo $ac_n "checking for pthread_attr_init in -lc_r""... $ac_c" 1>&6 +-echo "configure:4881: checking for pthread_attr_init in -lc_r" >&5 ++echo "configure:8733: checking for pthread_attr_init in -lc_r" >&5 + ac_lib_var=`echo c_r'_'pthread_attr_init | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4885,7 +8737,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lc_r $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4889 "configure" ++#line 8741 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4896,7 +8748,7 @@ + pthread_attr_init() + ; return 0; } + EOF +-if { (eval echo configure:4900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4919,12 +8771,12 @@ + fi + if test "x$G_THREAD_LIBS" = xerror; then + echo $ac_n "checking for pthread_attr_init""... $ac_c" 1>&6 +-echo "configure:4923: checking for pthread_attr_init" >&5 ++echo "configure:8775: checking for pthread_attr_init" >&5 + if eval "test \"`echo '$''{'ac_cv_func_pthread_attr_init'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4928 "configure" ++#line 8780 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char pthread_attr_init(); below. */ +@@ -4947,7 +8799,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_pthread_attr_init=yes" + else +@@ -4969,7 +8821,7 @@ + fi + if test "x$G_THREAD_LIBS" = xerror; then + echo $ac_n "checking for __d10_pthread_attr_init in -lthread""... $ac_c" 1>&6 +-echo "configure:4973: checking for __d10_pthread_attr_init in -lthread" >&5 ++echo "configure:8825: checking for __d10_pthread_attr_init in -lthread" >&5 + ac_lib_var=`echo thread'_'__d10_pthread_attr_init | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4977,7 +8829,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lthread $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4981 "configure" ++#line 8833 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4988,7 +8840,7 @@ + __d10_pthread_attr_init() + ; return 0; } + EOF +-if { (eval echo configure:4992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5012,7 +8864,7 @@ + fi + if test "x$G_THREAD_LIBS" = xerror; then + echo $ac_n "checking for __pthread_attr_init_system in -lpthread""... $ac_c" 1>&6 +-echo "configure:5016: checking for __pthread_attr_init_system in -lpthread" >&5 ++echo "configure:8868: checking for __pthread_attr_init_system in -lpthread" >&5 + ac_lib_var=`echo pthread'_'__pthread_attr_init_system | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5020,7 +8872,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lpthread $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5024 "configure" ++#line 8876 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5031,7 +8883,7 @@ + __pthread_attr_init_system() + ; return 0; } + EOF +-if { (eval echo configure:5035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5061,7 +8913,7 @@ + solaris) + G_THREAD_LIBS=error + echo $ac_n "checking for cond_init in -lthread""... $ac_c" 1>&6 +-echo "configure:5065: checking for cond_init in -lthread" >&5 ++echo "configure:8917: checking for cond_init in -lthread" >&5 + ac_lib_var=`echo thread'_'cond_init | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5069,7 +8921,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lthread $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5073 "configure" ++#line 8925 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5080,7 +8932,7 @@ + cond_init() + ; return 0; } + EOF +-if { (eval echo configure:5084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5108,7 +8960,7 @@ + ;; + nspr) + echo $ac_n "checking for PRP_NewNakedCondVar in -lnspr21""... $ac_c" 1>&6 +-echo "configure:5112: checking for PRP_NewNakedCondVar in -lnspr21" >&5 ++echo "configure:8964: checking for PRP_NewNakedCondVar in -lnspr21" >&5 + ac_lib_var=`echo nspr21'_'PRP_NewNakedCondVar | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5116,7 +8968,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lnspr21 $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5120 "configure" ++#line 8972 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5127,7 +8979,7 @@ + PRP_NewNakedCondVar() + ; return 0; } + EOF +-if { (eval echo configure:5131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5163,7 +9015,7 @@ + fi + + echo $ac_n "checking necessary linker options""... $ac_c" 1>&6 +-echo "configure:5167: checking necessary linker options" >&5 ++echo "configure:9019: checking necessary linker options" >&5 + echo "$ac_t""$G_THREAD_LIBS" 1>&6 + + +@@ -5191,7 +9043,7 @@ + old_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS" + cat > conftest.$ac_ext <<EOF +-#line 5195 "configure" ++#line 9047 "configure" + #include "confdefs.h" + #include <time.h> + EOF +@@ -5208,7 +9060,7 @@ + CPPFLAGS=$old_CPPFLAGS + + echo $ac_n "checking necessary compiler options""... $ac_c" 1>&6 +-echo "configure:5212: checking necessary compiler options" >&5 ++echo "configure:9064: checking necessary compiler options" >&5 + + echo "$ac_t""$G_THREAD_CFLAGS" 1>&6 + else +@@ -5226,12 +9078,12 @@ + for ac_func in localtime_r rand_r + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:5230: checking for $ac_func" >&5 ++echo "configure:9082: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 5235 "configure" ++#line 9087 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -5254,7 +9106,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:5258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -5280,7 +9132,7 @@ + + if test "$ac_cv_header_pwd_h" = "yes"; then + echo $ac_n "checking for getpwuid_r""... $ac_c" 1>&6 +-echo "configure:5284: checking for getpwuid_r" >&5 ++echo "configure:9136: checking for getpwuid_r" >&5 + if eval "test \"`echo '$''{'ac_cv_func_getpwuid_r'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -5288,7 +9140,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 5292 "configure" ++#line 9144 "configure" + #include "confdefs.h" + #include <errno.h> + int main () { char buffer[10000], *pointer; +@@ -5300,7 +9152,7 @@ + sizeof (buffer), &pointer); + return errno == ENOSYS || error == ENOSYS;} + EOF +-if { (eval echo configure:5304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_getpwuid_r=yes + else +@@ -5325,11 +9177,11 @@ + fi + if test "$ac_cv_func_getpwuid_r" = "yes"; then + echo $ac_n "checking whether getpwuid_r is posix like""... $ac_c" 1>&6 +-echo "configure:5329: checking whether getpwuid_r is posix like" >&5 ++echo "configure:9181: checking whether getpwuid_r is posix like" >&5 + # The signature for the POSIX version is: + # int getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **) + cat > conftest.$ac_ext <<EOF +-#line 5333 "configure" ++#line 9185 "configure" + #include "confdefs.h" + #include <pwd.h> + #include <sys/types.h> +@@ -5338,7 +9190,7 @@ + getpwuid_r((uid_t)0, NULL, NULL, (size_t)0, NULL); + ; return 0; } + EOF +-if { (eval echo configure:5342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:9194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cat >> confdefs.h <<\EOF + #define HAVE_GETPWUID_R_POSIX 1 +@@ -5357,17 +9209,17 @@ + if test x"$have_threads" = xposix; then + LIBS="$LIBS $G_THREAD_LIBS" + echo $ac_n "checking whether pthread_getspecific is posix like""... $ac_c" 1>&6 +-echo "configure:5361: checking whether pthread_getspecific is posix like" >&5 ++echo "configure:9213: checking whether pthread_getspecific is posix like" >&5 + # PCThreads has pthread_getspecific(pthread_key_t, void **); + cat > conftest.$ac_ext <<EOF +-#line 5364 "configure" ++#line 9216 "configure" + #include "confdefs.h" + #include <pthread.h> + int main() { + pthread_getspecific(0,NULL); + ; return 0; } + EOF +-if { (eval echo configure:5371: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:9223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""no" 1>&6 + else +@@ -5382,20 +9234,20 @@ + fi + rm -f conftest* + echo $ac_n "checking whether pthread_mutex_trylock is posix like""... $ac_c" 1>&6 +-echo "configure:5386: checking whether pthread_mutex_trylock is posix like" >&5 ++echo "configure:9238: checking whether pthread_mutex_trylock is posix like" >&5 + # DCE Threads return 1 as success, posix 0. what a mess. + if test "$cross_compiling" = yes; then + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 5392 "configure" ++#line 9244 "configure" + #include "confdefs.h" + #include <pthread.h> + pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; + int main () { + return !pthread_mutex_trylock (&mutex); } + EOF +-if { (eval echo configure:5399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + echo "$ac_t""no" 1>&6 + else +@@ -5412,13 +9264,13 @@ + fi + + echo $ac_n "checking whether pthread_cond_timedwait is posix like""... $ac_c" 1>&6 +-echo "configure:5416: checking whether pthread_cond_timedwait is posix like" >&5 ++echo "configure:9268: checking whether pthread_cond_timedwait is posix like" >&5 + # DCE Threads return -1 as failure, posix ETIMEDOUT. + if test "$cross_compiling" = yes; then + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 5422 "configure" ++#line 9274 "configure" + #include "confdefs.h" + #include <pthread.h> + int main () { +@@ -5432,7 +9284,7 @@ + return pthread_cond_timedwait (&cond,&mutex,&tspec) + != -1;} + EOF +-if { (eval echo configure:5436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + echo "$ac_t""no" 1>&6 + else +@@ -5475,7 +9327,7 @@ + case "$mutex_has_default" in + "yes") + echo $ac_n "checking size of $mutex_default_type""... $ac_c" 1>&6 +-echo "configure:5479: checking size of $mutex_default_type" >&5 ++echo "configure:9331: checking size of $mutex_default_type" >&5 + if eval "test \"`echo '$''{'glib_cv_sizeof_gmutex'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -5483,7 +9335,7 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 5487 "configure" ++#line 9339 "configure" + #include "confdefs.h" + #include <stdio.h> + #include <$mutex_header_file> +@@ -5495,7 +9347,7 @@ + exit(0); + } + EOF +-if { (eval echo configure:5499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_sizeof_gmutex=`cat conftestval` + else +@@ -5515,7 +9367,7 @@ + + + echo $ac_n "checking byte contents of $mutex_default_type""... $ac_c" 1>&6 +-echo "configure:5519: checking byte contents of $mutex_default_type" >&5 ++echo "configure:9371: checking byte contents of $mutex_default_type" >&5 + if eval "test \"`echo '$''{'glib_cv_byte_contents_gmutex'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -5523,7 +9375,7 @@ + glib_cv_byte_contents_gmutex=0 + else + cat > conftest.$ac_ext <<EOF +-#line 5527 "configure" ++#line 9379 "configure" + #include "confdefs.h" + #include <stdio.h> + #include <$mutex_header_file> +@@ -5540,7 +9392,7 @@ + exit(0); + } + EOF +-if { (eval echo configure:5544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + glib_cv_byte_contents_gmutex=`cat conftestval` + else +@@ -5576,7 +9428,7 @@ + glib_nl='\n' + fi + echo $ac_n "checking system definitions for $glib_sysdef_msg""... $ac_c" 1>&6 +-echo "configure:5580: checking system definitions for $glib_sysdef_msg" >&5 ++echo "configure:9432: checking system definitions for $glib_sysdef_msg" >&5 + cat >confrun.c <<_______EOF + #include <stdio.h> + #include <sys/types.h> +@@ -5603,11 +9455,11 @@ + { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } + else + cat > conftest.$ac_ext <<EOF +-#line 5607 "configure" ++#line 9459 "configure" + #include "confdefs.h" + `cat confrun.c` + EOF +-if { (eval echo configure:5611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + echo "$ac_t""done" 1>&6 + else +@@ -5813,16 +9665,20 @@ + s%@build_cpu@%$build_cpu%g + s%@build_vendor@%$build_vendor%g + s%@build_os@%$build_os%g +-s%@RANLIB@%$RANLIB%g + s%@CC@%$CC%g + s%@LN_S@%$LN_S%g ++s%@OBJEXT@%$OBJEXT%g ++s%@EXEEXT@%$EXEEXT%g ++s%@ECHO@%$ECHO%g ++s%@RANLIB@%$RANLIB%g ++s%@STRIP@%$STRIP%g ++s%@CPP@%$CPP%g + s%@LIBTOOL@%$LIBTOOL%g + s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g + s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g + s%@MAINT@%$MAINT%g + s%@ENABLE_MEM_CHECK@%$ENABLE_MEM_CHECK%g + s%@ENABLE_MEM_PROFILE@%$ENABLE_MEM_PROFILE%g +-s%@CPP@%$CPP%g + s%@G_MODULE_IMPL@%$G_MODULE_IMPL%g + s%@G_MODULE_LIBS@%$G_MODULE_LIBS%g + s%@G_MODULE_LDFLAGS@%$G_MODULE_LDFLAGS%g +--- glib1.2-1.2.10.orig/gmodule/Makefile.in ++++ glib1.2-1.2.10/gmodule/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -62,8 +62,10 @@ + AS = @AS@ + CC = @CC@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ + ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@ + ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@ ++EXEEXT = @EXEEXT@ + GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ + GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ + GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ +@@ -88,8 +90,10 @@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + RANLIB = @RANLIB@ ++STRIP = @STRIP@ + VERSION = @VERSION@ + + INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/gmodule -DG_LOG_DOMAIN=\"GModule\" @GLIB_DEBUG_FLAGS@ +@@ -112,17 +116,17 @@ + libgmodule_la_LDFLAGS = @G_MODULE_LDFLAGS@ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -release $(LT_RELEASE) -export-dynamic + + +-libgmodule_la_LIBADD = @G_MODULE_LIBS@ # $(libglib) ++libgmodule_la_LIBADD = @G_MODULE_LIBS@ $(libglib) + # we should really depend on $(libglib) for libgmodule.la, but libtool has a + # problem with this ;( + + libgplugin_a_la_SOURCES = libgplugin_a.c + libgplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module +-libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ # $(libglib) ++libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ $(libglib) + + libgplugin_b_la_SOURCES = libgplugin_b.c + libgplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module +-libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ # $(libglib) ++libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ $(libglib) + + noinst_PROGRAMS = testgmodule + testgmodule_LDFLAGS = @G_MODULE_LDFLAGS@ +@@ -143,10 +147,11 @@ + libgplugin_a_la_OBJECTS = libgplugin_a.lo + libgplugin_b_la_DEPENDENCIES = + libgplugin_b_la_OBJECTS = libgplugin_b.lo ++noinst_PROGRAMS = testgmodule$(EXEEXT) + PROGRAMS = $(noinst_PROGRAMS) + + testgmodule_SOURCES = testgmodule.c +-testgmodule_OBJECTS = testgmodule.o ++testgmodule_OBJECTS = testgmodule.$(OBJEXT) + testgmodule_DEPENDENCIES = libgmodule.la $(top_builddir)/libglib.la + CFLAGS = @CFLAGS@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@@ -161,14 +166,14 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + SOURCES = $(libgmodule_la_SOURCES) $(libgplugin_a_la_SOURCES) $(libgplugin_b_la_SOURCES) testgmodule.c +-OBJECTS = $(libgmodule_la_OBJECTS) $(libgplugin_a_la_OBJECTS) $(libgplugin_b_la_OBJECTS) testgmodule.o ++OBJECTS = $(libgmodule_la_OBJECTS) $(libgplugin_a_la_OBJECTS) $(libgplugin_b_la_OBJECTS) testgmodule.$(OBJEXT) + + all: all-redirect + .SUFFIXES: +-.SUFFIXES: .S .c .lo .o .s ++.SUFFIXES: .S .c .lo .o .obj .s + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps gmodule/Makefile + +@@ -197,6 +202,11 @@ + .c.o: + $(COMPILE) -c $< + ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ + .s.o: + $(COMPILE) -c $< + +@@ -205,6 +215,7 @@ + + mostlyclean-compile: + -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) + + clean-compile: + +@@ -250,8 +261,8 @@ + + maintainer-clean-noinstPROGRAMS: + +-testgmodule: $(testgmodule_OBJECTS) $(testgmodule_DEPENDENCIES) +- @rm -f testgmodule ++testgmodule$(EXEEXT): $(testgmodule_OBJECTS) $(testgmodule_DEPENDENCIES) ++ @rm -f testgmodule$(EXEEXT) + $(LINK) $(testgmodule_LDFLAGS) $(testgmodule_OBJECTS) $(testgmodule_LDADD) $(LIBS) + + install-glibincludeHEADERS: $(glibinclude_HEADERS) +@@ -287,7 +298,7 @@ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ +- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + + mostlyclean-tags: + +@@ -313,15 +324,6 @@ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +-gmodule.lo gmodule.o : gmodule.c gmodule.h ../glib.h ../glibconfig.h \ +- gmoduleconf.h gmodule-dl.c +-libgplugin_a.lo libgplugin_a.o : libgplugin_a.c gmodule.h ../glib.h \ +- ../glibconfig.h +-libgplugin_b.lo libgplugin_b.o : libgplugin_b.c gmodule.h ../glib.h \ +- ../glibconfig.h +-testgmodule.o: testgmodule.c gmodule.h ../glib.h ../glibconfig.h \ +- gmoduleconf.h +- + info-am: + info: info-am + dvi-am: +--- glib1.2-1.2.10.orig/gmodule/Makefile.am ++++ glib1.2-1.2.10/gmodule/Makefile.am +@@ -29,17 +29,17 @@ + -release $(LT_RELEASE) \ + -export-dynamic + +-libgmodule_la_LIBADD = @G_MODULE_LIBS@ # $(libglib) ++libgmodule_la_LIBADD = @G_MODULE_LIBS@ $(libglib) + # we should really depend on $(libglib) for libgmodule.la, but libtool has a + # problem with this ;( + + libgplugin_a_la_SOURCES = libgplugin_a.c + libgplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module +-libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ # $(libglib) ++libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ $(libglib) + + libgplugin_b_la_SOURCES = libgplugin_b.c + libgplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module +-libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ # $(libglib) ++libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ $(libglib) + + noinst_PROGRAMS = testgmodule + testgmodule_LDFLAGS += @G_MODULE_LDFLAGS@ +--- glib1.2-1.2.10.orig/config.sub ++++ glib1.2-1.2.10/config.sub +@@ -1,6 +1,11 @@ + #! /bin/sh +-# Configuration validation subroutine script, version 1.1. +-# Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc. ++# Configuration validation subroutine script. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, ++# Inc. ++ ++timestamp='2006-09-20' ++ + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software + # can handle that machine. It does not imply ALL GNU software can. +@@ -17,14 +22,18 @@ + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, +-# Boston, MA 02111-1307, USA. +- ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. ++# + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + ++ ++# Please send patches to <config-patches@gnu.org>. Submit a context ++# diff and a properly formatted ChangeLog entry. ++# + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with code 1. +@@ -45,30 +54,75 @@ + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + +-if [ x$1 = x ] +-then +- echo Configuration name missing. 1>&2 +- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 +- echo "or $0 ALIAS" 1>&2 +- echo where ALIAS is a recognized configuration type. 1>&2 +- exit 1 +-fi ++me=`echo "$0" | sed -e 's,.*/,,'` + +-# First pass through any local machine types. +-case $1 in +- *local*) +- echo $1 +- exit 0 +- ;; +- *) +- ;; ++usage="\ ++Usage: $0 [OPTION] CPU-MFR-OPSYS ++ $0 [OPTION] ALIAS ++ ++Canonicalize a configuration name. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.sub ($timestamp) ++ ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" ++ exit 1 ;; ++ ++ *local*) ++ # First pass through any local machine types. ++ echo $1 ++ exit ;; ++ ++ * ) ++ break ;; ++ esac ++done ++ ++case $# in ++ 0) echo "$me: missing argument$help" >&2 ++ exit 1;; ++ 1) ;; ++ *) echo "$me: too many arguments$help" >&2 ++ exit 1;; + esac + + # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- linux-gnu*) ++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ ++ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -94,7 +148,7 @@ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple) ++ -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; +@@ -108,9 +162,21 @@ + os=-vxworks + basic_machine=$1 + ;; ++ -chorusos*) ++ os=-chorusos ++ basic_machine=$1 ++ ;; ++ -chorusrdb) ++ os=-chorusrdb ++ basic_machine=$1 ++ ;; + -hiux*) + os=-hiuxwe2 + ;; ++ -sco6) ++ os=-sco5v6 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +@@ -127,6 +193,10 @@ + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +@@ -166,27 +236,74 @@ + case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. +- tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ +- | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \ +- | 580 | i960 | h8300 \ +- | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ +- | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \ +- | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \ +- | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \ +- | mips64orion | mips64orionel | mipstx39 | mipstx39el \ +- | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ +- | mips64vr5000 | miprs64vr5000el | mcore \ +- | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \ +- | thumb | d10v | fr30) ++ 1750a | 580 \ ++ | a29k \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | bfin \ ++ | c4x | clipper \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | fr30 | frv \ ++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | i370 | i860 | i960 | ia64 \ ++ | ip2k | iq2000 \ ++ | m32c | m32r | m32rle | m68000 | m68k | m88k \ ++ | maxq | mb | microblaze | mcore \ ++ | mips | mipsbe | mipseb | mipsel | mipsle \ ++ | mips16 \ ++ | mips64 | mips64el \ ++ | mips64vr | mips64vrel \ ++ | mips64orion | mips64orionel \ ++ | mips64vr4100 | mips64vr4100el \ ++ | mips64vr4300 | mips64vr4300el \ ++ | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ ++ | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64sb1 | mipsisa64sb1el \ ++ | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipstx39 | mipstx39el \ ++ | mn10200 | mn10300 \ ++ | mt \ ++ | msp430 \ ++ | nios | nios2 \ ++ | ns16k | ns32k \ ++ | or32 \ ++ | pdp10 | pdp11 | pj | pjl \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | pyramid \ ++ | score \ ++ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ ++ | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | spu | strongarm \ ++ | tahoe | thumb | tic4x | tic80 | tron \ ++ | v850 | v850e \ ++ | we32k \ ++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | z8k) + basic_machine=$basic_machine-unknown + ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl) ++ m6811 | m68hc11 | m6812 | m68hc12) ++ # Motorola 68HC11/12. ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ++ ;; ++ ms1) ++ basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. +- i[34567]86) ++ i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. +@@ -195,24 +312,66 @@ + exit 1 + ;; + # Recognize the basic CPU types with company name. +- # FIXME: clean up the formatting here. +- vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ +- | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ +- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ +- | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ +- | xmp-* | ymp-* \ +- | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \ +- | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \ +- | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ +- | clipper-* | orion-* \ +- | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ +- | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \ +- | mips64el-* | mips64orion-* | mips64orionel-* \ +- | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ +- | mipstx39-* | mipstx39el-* | mcore-* \ +- | f301-* | armv*-* | t3e-* \ +- | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ +- | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* ) ++ 580-* \ ++ | a29k-* \ ++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ ++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ ++ | avr-* | avr32-* \ ++ | bfin-* | bs2000-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ++ | clipper-* | craynv-* | cydra-* \ ++ | d10v-* | d30v-* | dlx-* \ ++ | elxsi-* \ ++ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ ++ | h8300-* | h8500-* \ ++ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | i*86-* | i860-* | i960-* | ia64-* \ ++ | ip2k-* | iq2000-* \ ++ | m32c-* | m32r-* | m32rle-* \ ++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* \ ++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ ++ | mips16-* \ ++ | mips64-* | mips64el-* \ ++ | mips64vr-* | mips64vrel-* \ ++ | mips64orion-* | mips64orionel-* \ ++ | mips64vr4100-* | mips64vr4100el-* \ ++ | mips64vr4300-* | mips64vr4300el-* \ ++ | mips64vr5000-* | mips64vr5000el-* \ ++ | mips64vr5900-* | mips64vr5900el-* \ ++ | mipsisa32-* | mipsisa32el-* \ ++ | mipsisa32r2-* | mipsisa32r2el-* \ ++ | mipsisa64-* | mipsisa64el-* \ ++ | mipsisa64r2-* | mipsisa64r2el-* \ ++ | mipsisa64sb1-* | mipsisa64sb1el-* \ ++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipstx39-* | mipstx39el-* \ ++ | mmix-* \ ++ | mt-* \ ++ | msp430-* \ ++ | nios-* | nios2-* \ ++ | none-* | np1-* | ns16k-* | ns32k-* \ ++ | orion-* \ ++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | pyramid-* \ ++ | romp-* | rs6000-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ ++ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ ++ | sparclite-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ ++ | tahoe-* | thumb-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tron-* \ ++ | v850-* | v850e-* | vax-* \ ++ | we32k-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | xstormy16-* | xtensa-* \ ++ | ymp-* \ ++ | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +@@ -230,6 +389,9 @@ + basic_machine=a29k-amd + os=-udi + ;; ++ abacus) ++ basic_machine=abacus-unknown ++ ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout +@@ -244,19 +406,25 @@ + basic_machine=a29k-none + os=-bsd + ;; ++ amd64) ++ basic_machine=x86_64-pc ++ ;; ++ amd64-*) ++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + ;; + amigaos | amigados) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) +@@ -275,6 +443,10 @@ + basic_machine=ns32k-sequent + os=-dynix + ;; ++ c90) ++ basic_machine=c90-cray ++ os=-unicos ++ ;; + convex-c1) + basic_machine=c1-convex + os=-bsd +@@ -295,27 +467,45 @@ + basic_machine=c38-convex + os=-bsd + ;; +- cray | ymp) +- basic_machine=ymp-cray ++ cray | j90) ++ basic_machine=j90-cray + os=-unicos + ;; +- cray2) +- basic_machine=cray2-cray +- os=-unicos ++ craynv) ++ basic_machine=craynv-cray ++ os=-unicosmp + ;; +- [ctj]90-cray) +- basic_machine=c90-cray +- os=-unicos ++ cr16c) ++ basic_machine=cr16c-unknown ++ os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; ++ crisv32 | crisv32-* | etraxfs*) ++ basic_machine=crisv32-axis ++ ;; ++ cris | cris-* | etrax*) ++ basic_machine=cris-axis ++ ;; ++ crx) ++ basic_machine=crx-unknown ++ os=-elf ++ ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; ++ decsystem10* | dec10*) ++ basic_machine=pdp10-dec ++ os=-tops10 ++ ;; ++ decsystem20* | dec20*) ++ basic_machine=pdp10-dec ++ os=-tops20 ++ ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola +@@ -324,6 +514,10 @@ + basic_machine=m88k-motorola + os=-sysv3 + ;; ++ djgpp) ++ basic_machine=i586-pc ++ os=-msdosdjgpp ++ ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx +@@ -357,6 +551,10 @@ + basic_machine=tron-gmicro + os=-sysv + ;; ++ go32) ++ basic_machine=i386-pc ++ os=-go32 ++ ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 +@@ -432,19 +630,19 @@ + basic_machine=i370-ibm + ;; + # I'm not sure what "Sysv32" means. Should this be sysv3.2? +- i[34567]86v32) ++ i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; +- i[34567]86v4*) ++ i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; +- i[34567]86v) ++ i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; +- i[34567]86sol2) ++ i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; +@@ -456,17 +654,6 @@ + basic_machine=i386-unknown + os=-vsta + ;; +- i386-go32 | go32) +- basic_machine=i386-unknown +- os=-go32 +- ;; +- i386-mingw32 | mingw32) +- basic_machine=i386-unknown +- os=-mingw32 +- ;; +- i386-qnx | qnx) +- basic_machine=i386-qnx +- ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in +@@ -492,6 +679,10 @@ + basic_machine=ns32k-utek + os=-sysv + ;; ++ mingw32) ++ basic_machine=i386-pc ++ os=-mingw32 ++ ;; + miniframe) + basic_machine=m68000-convergent + ;; +@@ -499,14 +690,6 @@ + basic_machine=m68k-atari + os=-mint + ;; +- mipsel*-linux*) +- basic_machine=mipsel-unknown +- os=-linux-gnu +- ;; +- mips*-linux*) +- basic_machine=mips-unknown +- os=-linux-gnu +- ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; +@@ -517,10 +700,17 @@ + basic_machine=m68k-rom68k + os=-coff + ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ os=-morphos ++ ;; + msdos) +- basic_machine=i386-unknown ++ basic_machine=i386-pc + os=-msdos + ;; ++ ms1-*) ++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ++ ;; + mvs) + basic_machine=i370-ibm + os=-mvs +@@ -582,13 +772,27 @@ + basic_machine=i960-intel + os=-mon960 + ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ os=-nonstopux ++ ;; + np1) + basic_machine=np1-gould + ;; ++ nsr-tandem) ++ basic_machine=nsr-tandem ++ ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; ++ openrisc | openrisc-*) ++ basic_machine=or32-unknown ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ os=-os400 ++ ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose +@@ -611,45 +815,75 @@ + pbb) + basic_machine=m68k-tti + ;; +- pc532 | pc532-*) ++ pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; +- pentium | p5 | k5 | k6 | nexen) ++ pc98) ++ basic_machine=i386-pc ++ ;; ++ pc98-*) ++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; +- pentiumpro | p6 | 6x86) ++ pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; +- pentiumii | pentium2) ++ pentiumii | pentium2 | pentiumiii | pentium3) ++ basic_machine=i686-pc ++ ;; ++ pentium4) + basic_machine=i786-pc + ;; +- pentium-* | p5-* | k5-* | k6-* | nexen-*) ++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; +- pentiumpro-* | p6-* | 6x86-*) ++ pentiumpro-* | p6-* | 6x86-* | athlon-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; +- pentiumii-* | pentium2-*) ++ pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; +- power) basic_machine=rs6000-ibm ++ power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown +- ;; ++ ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown +- ;; ++ ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; ++ ppc64) basic_machine=powerpc64-unknown ++ ;; ++ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64le | powerpc64little | ppc64-le | powerpc64-little) ++ basic_machine=powerpc64le-unknown ++ ;; ++ ppc64le-* | powerpc64little-*) ++ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + ps2) + basic_machine=i386-ibm + ;; ++ pw32) ++ basic_machine=i586-unknown ++ os=-pw32 ++ ;; ++ rdos) ++ basic_machine=i386-pc ++ os=-rdos ++ ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff +@@ -660,10 +894,30 @@ + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; ++ s390 | s390-*) ++ basic_machine=s390-ibm ++ ;; ++ s390x | s390x-*) ++ basic_machine=s390x-ibm ++ ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; ++ sb1) ++ basic_machine=mipsisa64sb1-unknown ++ ;; ++ sb1el) ++ basic_machine=mipsisa64sb1el-unknown ++ ;; ++ sde) ++ basic_machine=mipsisa32-sde ++ os=-elf ++ ;; ++ sei) ++ basic_machine=mips-sei ++ os=-seiux ++ ;; + sequent) + basic_machine=i386-sequent + ;; +@@ -671,7 +925,10 @@ + basic_machine=sh-hitachi + os=-hms + ;; +- sparclite-wrs) ++ sh64) ++ basic_machine=sh64-unknown ++ ;; ++ sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; +@@ -729,23 +986,51 @@ + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; ++ sv1) ++ basic_machine=sv1-cray ++ os=-unicos ++ ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) +- basic_machine=t3e-cray ++ basic_machine=alphaev5-cray ++ os=-unicos ++ ;; ++ t90) ++ basic_machine=t90-cray + os=-unicos + ;; ++ tic54x | c54x*) ++ basic_machine=tic54x-unknown ++ os=-coff ++ ;; ++ tic55x | c55x*) ++ basic_machine=tic55x-unknown ++ os=-coff ++ ;; ++ tic6x | c6x*) ++ basic_machine=tic6x-unknown ++ os=-coff ++ ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ os=-tops20 ++ ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; ++ tpf) ++ basic_machine=s390x-ibm ++ os=-tpf ++ ;; + udi29k) + basic_machine=a29k-amd + os=-udi +@@ -767,8 +1052,8 @@ + os=-vms + ;; + vpp*|vx|vx-*) +- basic_machine=f301-fujitsu +- ;; ++ basic_machine=f301-fujitsu ++ ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks +@@ -789,13 +1074,17 @@ + basic_machine=hppa1.1-winbond + os=-proelf + ;; +- xmp) +- basic_machine=xmp-cray +- os=-unicos ++ xbox) ++ basic_machine=i686-pc ++ os=-mingw32 + ;; +- xps | xps100) ++ xps | xps100) + basic_machine=xps100-honeywell + ;; ++ ymp) ++ basic_machine=ymp-cray ++ os=-unicos ++ ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim +@@ -816,32 +1105,35 @@ + op60c) + basic_machine=hppa1.1-oki + ;; +- mips) +- if [ x$os = x-linux-gnu ]; then +- basic_machine=mips-unknown +- else +- basic_machine=mips-mips +- fi +- ;; + romp) + basic_machine=romp-ibm + ;; ++ mmix) ++ basic_machine=mmix-knuth ++ ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; ++ pdp10) ++ # there are many clones, so DEC is not a safe bet ++ basic_machine=pdp10-unknown ++ ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; +- sparc | sparcv9) ++ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) ++ basic_machine=sh-unknown ++ ;; ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; +- cydra) ++ cydra) + basic_machine=cydra-cydrome + ;; + orion) +@@ -856,9 +1148,8 @@ + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; +- c4x*) +- basic_machine=c4x-none +- os=-coff ++ *-unknown) ++ # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 +@@ -912,22 +1203,49 @@ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ +- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ +- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ ++ | -openbsd* | -solidbsd* \ ++ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ ++ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ ++ | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ +- | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*) ++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ ++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ ++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ ++ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ ++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ ++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ ++ | -skyos* | -haiku* | -rdos* | -toppers*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; ++ -qnx*) ++ case $basic_machine in ++ x86-* | i*86-*) ++ ;; ++ *) ++ os=-nto$os ++ ;; ++ esac ++ ;; ++ -nto-qnx*) ++ ;; ++ -nto*) ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` ++ ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ +- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ +- | -macos* | -mpw* | -magic* | -mon960* | -lnews*) ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ ++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; ++ -linux-dietlibc) ++ os=-linux-dietlibc ++ ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; +@@ -940,6 +1258,12 @@ + -opened*) + os=-openedition + ;; ++ -os400*) ++ os=-os400 ++ ;; ++ -wince*) ++ os=-wince ++ ;; + -osfrose*) + os=-osfrose + ;; +@@ -955,14 +1279,26 @@ + -acis*) + os=-aos + ;; ++ -atheos*) ++ os=-atheos ++ ;; ++ -syllable*) ++ os=-syllable ++ ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; ++ -nova*) ++ os=-rtmk-nova ++ ;; + -ns2 ) +- os=-nextstep2 ++ os=-nextstep2 ++ ;; ++ -nsk*) ++ os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) +@@ -971,15 +1307,15 @@ + -sinix*) + os=-sysv4 + ;; ++ -tpf*) ++ os=-tpf ++ ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; +- -qnx) +- os=-qnx4 +- ;; + -svr4) + os=-sysv4 + ;; +@@ -1001,8 +1337,17 @@ + -xenix) + os=-xenix + ;; +- -*mint | -*MiNT) +- os=-mint ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ os=-mint ++ ;; ++ -aros*) ++ os=-aros ++ ;; ++ -kaos*) ++ os=-kaos ++ ;; ++ -zvmoe) ++ os=-zvmoe + ;; + -none) + ;; +@@ -1026,6 +1371,12 @@ + # system, and we'll never get to this point. + + case $basic_machine in ++ score-*) ++ os=-elf ++ ;; ++ spu-*) ++ os=-elf ++ ;; + *-acorn) + os=-riscix1.2 + ;; +@@ -1035,7 +1386,14 @@ + arm*-semi) + os=-aout + ;; +- pdp11-*) ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ # This must come before the *-dec entry. ++ pdp10-*) ++ os=-tops20 ++ ;; ++ pdp11-*) + os=-none + ;; + *-dec | vax-*) +@@ -1062,6 +1420,9 @@ + mips*-*) + os=-elf + ;; ++ or32-*) ++ os=-coff ++ ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; +@@ -1071,9 +1432,15 @@ + *-be) + os=-beos + ;; ++ *-haiku) ++ os=-haiku ++ ;; + *-ibm) + os=-aix + ;; ++ *-knuth) ++ os=-mmixware ++ ;; + *-wec) + os=-proelf + ;; +@@ -1125,25 +1492,25 @@ + *-next) + os=-nextstep3 + ;; +- *-gould) ++ *-gould) + os=-sysv + ;; +- *-highlevel) ++ *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; +- *-sgi) ++ *-sgi) + os=-irix + ;; +- *-siemens) ++ *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; +- f301-fujitsu) ++ f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) +@@ -1206,10 +1573,16 @@ + -mvs* | -opened*) + vendor=ibm + ;; ++ -os400*) ++ vendor=ibm ++ ;; + -ptx*) + vendor=sequent + ;; +- -vxsim* | -vxworks*) ++ -tpf*) ++ vendor=ibm ++ ;; ++ -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) +@@ -1221,12 +1594,23 @@ + -mpw* | -macos*) + vendor=apple + ;; +- -*mint | -*MiNT) ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; ++ -vos*) ++ vendor=stratus ++ ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + + echo $basic_machine$os ++exit ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +--- glib1.2-1.2.10.orig/config.guess ++++ glib1.2-1.2.10/config.guess +@@ -1,8 +1,11 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 +-# Free Software Foundation, Inc. +-# ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, ++# Inc. ++ ++timestamp='2006-07-02' ++ + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 2 of the License, or +@@ -15,159 +18,293 @@ + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + +-# Written by Per Bothner <bothner@cygnus.com>. +-# The master version of this file is at the FSF in /home/gd/gnu/lib. +-# Please send patches to <autoconf-patches@gnu.org>. ++ ++# Originally written by Per Bothner <per@bothner.com>. ++# Please send patches to <config-patches@gnu.org>. Submit a context ++# diff and a properly formatted ChangeLog entry. + # + # This script attempts to guess a canonical system name similar to + # config.sub. If it succeeds, it prints the system name on stdout, and + # exits with 0. Otherwise, it exits with 1. + # + # The plan is that this can be called by configure scripts if you +-# don't specify an explicit system type (host/target name). +-# +-# Only a few systems have been added to this list; please add others +-# (but try to keep the structure clean). +-# ++# don't specify an explicit build system type. + +-# Use $HOST_CC if defined. $CC may point to a cross-compiler +-if test x"$CC_FOR_BUILD" = x; then +- if test x"$HOST_CC" != x; then +- CC_FOR_BUILD="$HOST_CC" +- else +- if test x"$CC" != x; then +- CC_FOR_BUILD="$CC" +- else +- CC_FOR_BUILD=cc +- fi +- fi ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] ++ ++Output the configuration name of the system \`$me' is run on. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.guess ($timestamp) ++ ++Originally written by Per Bothner. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" >&2 ++ exit 1 ;; ++ * ) ++ break ;; ++ esac ++done ++ ++if test $# != 0; then ++ echo "$me: too many arguments$help" >&2 ++ exit 1 + fi + ++trap 'exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a ++# compiler to aid in system detection is discouraged as it requires ++# temporary files to be created and, as you can see below, it is a ++# headache to deal with in a portable fashion. ++ ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++# Portable tmp directory creation inspired by the Autoconf team. ++ ++set_cc_for_build=' ++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ++: ${TMPDIR=/tmp} ; ++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || ++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ++dummy=$tmp/dummy ; ++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int x;" > $dummy.c ; ++ for c in cc gcc c89 c99 ; do ++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then ++ CC_FOR_BUILD="$c"; break ; ++ fi ; ++ done ; ++ if test x"$CC_FOR_BUILD" = x ; then ++ CC_FOR_BUILD=no_compiler_found ; ++ fi ++ ;; ++ ,,*) CC_FOR_BUILD=$CC ;; ++ ,*,*) CC_FOR_BUILD=$HOST_CC ;; ++esac ; set_cc_for_build= ;' + + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. +-# (ghazi@noc.rutgers.edu 8/24/94.) ++# (ghazi@noc.rutgers.edu 1994-08-24) + if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH + fi + + UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown + UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +-dummy=dummy-$$ +-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15 +- + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++ *:NetBSD:*:*) ++ # NetBSD (nbsd) targets should (where applicable) match one or ++ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently ++ # switched to ELF, *-*-netbsd* would select the old ++ # object file format. This provides both forward ++ # compatibility and a consistent mechanism for selecting the ++ # object file format. ++ # ++ # Note: NetBSD doesn't particularly care about the vendor ++ # portion of the name. We always set it to "unknown". ++ sysctl="sysctl -n hw.machine_arch" ++ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ case "${UNAME_MACHINE_ARCH}" in ++ armeb) machine=armeb-unknown ;; ++ arm*) machine=arm-unknown ;; ++ sh3el) machine=shl-unknown ;; ++ sh3eb) machine=sh-unknown ;; ++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE_ARCH}" in ++ arm*|i386|m68k|ns32k|sh3*|sparc|vax) ++ eval $set_cc_for_build ++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep __ELF__ >/dev/null ++ then ++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). ++ # Return netbsd for either. FIX? ++ os=netbsd ++ else ++ os=netbsdelf ++ fi ++ ;; ++ *) ++ os=netbsd ++ ;; ++ esac ++ # The OS release ++ # Debian GNU/NetBSD machines have a different userland, and ++ # thus, need a distinct triplet. However, they do not need ++ # kernel version information, so it can be replaced with a ++ # suitable tag, in the style of linux-gnu. ++ case "${UNAME_VERSION}" in ++ Debian*) ++ release='-gnu' ++ ;; ++ *) ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ ;; ++ esac ++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: ++ # contains redundant information, the shorter form: ++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. ++ echo "${machine}-${os}${release}" ++ exit ;; ++ *:OpenBSD:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; ++ *:ekkoBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ++ exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; ++ macppc:MirBSD:*:*) ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ *:MirBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; + alpha:OSF1:*:*) +- if test $UNAME_RELEASE = "V4.0"; then ++ case $UNAME_RELEASE in ++ *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` +- fi ++ ;; ++ *5.*) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ ;; ++ esac ++ # According to Compaq, /usr/sbin/psrinfo has been available on ++ # OSF/1 and Tru64 systems produced since 1995. I hope that ++ # covers most systems running today. This code pipes the CPU ++ # types through head -n 1, so we only detect the type of CPU 0. ++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ++ case "$ALPHA_CPU_TYPE" in ++ "EV4 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "EV4.5 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "LCA4 (21066/21068)") ++ UNAME_MACHINE="alpha" ;; ++ "EV5 (21164)") ++ UNAME_MACHINE="alphaev5" ;; ++ "EV5.6 (21164A)") ++ UNAME_MACHINE="alphaev56" ;; ++ "EV5.6 (21164PC)") ++ UNAME_MACHINE="alphapca56" ;; ++ "EV5.7 (21164PC)") ++ UNAME_MACHINE="alphapca57" ;; ++ "EV6 (21264)") ++ UNAME_MACHINE="alphaev6" ;; ++ "EV6.7 (21264A)") ++ UNAME_MACHINE="alphaev67" ;; ++ "EV6.8CB (21264C)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8AL (21264B)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8CX (21264D)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.9A (21264/EV69A)") ++ UNAME_MACHINE="alphaev69" ;; ++ "EV7 (21364)") ++ UNAME_MACHINE="alphaev7" ;; ++ "EV7.9 (21364A)") ++ UNAME_MACHINE="alphaev79" ;; ++ esac ++ # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. +- cat <<EOF >$dummy.s +- .globl main +- .ent main +-main: +- .frame \$30,0,\$26,0 +- .prologue 0 +- .long 0x47e03d80 # implver $0 +- lda \$2,259 +- .long 0x47e20c21 # amask $2,$1 +- srl \$1,8,\$2 +- sll \$2,2,\$2 +- sll \$0,3,\$0 +- addl \$1,\$0,\$0 +- addl \$2,\$0,\$0 +- ret \$31,(\$26),1 +- .end main +-EOF +- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null +- if test "$?" = 0 ; then +- ./$dummy +- case "$?" in +- 7) +- UNAME_MACHINE="alpha" +- ;; +- 15) +- UNAME_MACHINE="alphaev5" +- ;; +- 14) +- UNAME_MACHINE="alphaev56" +- ;; +- 10) +- UNAME_MACHINE="alphapca56" +- ;; +- 16) +- UNAME_MACHINE="alphaev6" +- ;; +- esac +- fi +- rm -f $dummy.s $dummy +- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit 0 ;; ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix +- exit 0 ;; ++ exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 +- exit 0 ;; ++ exit ;; + Amiga*:UNIX_System_V:4.0:*) +- echo m68k-cbm-sysv4 +- exit 0;; +- amiga:NetBSD:*:*) +- echo m68k-cbm-netbsd${UNAME_RELEASE} +- exit 0 ;; +- amiga:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-unknown-sysv4 ++ exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos +- exit 0 ;; +- arc64:OpenBSD:*:*) +- echo mips64el-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- arc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- hkmips:OpenBSD:*:*) +- echo mips-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- pmax:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- sgi:OpenBSD:*:*) +- echo mips-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- wgrisc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ *:[Mm]orph[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-morphos ++ exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition +- exit 0 ;; ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; ++ *:OS400:*:*) ++ echo powerpc-ibm-os400 ++ exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} +- exit 0;; +- arm32:NetBSD:*:*) +- echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` +- exit 0 ;; +- SR2?01:HI-UX/MPP:*:*) ++ exit ;; ++ arm:riscos:*:*|arm:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp +- exit 0;; ++ exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then +@@ -175,25 +312,32 @@ + else + echo pyramid-pyramid-bsd + fi +- exit 0 ;; ++ exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 +- exit 0 ;; ++ exit ;; ++ DRS?6000:unix:4.0:6*) ++ echo sparc-icl-nx6 ++ exit ;; ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) ++ case `/usr/bin/uname -p` in ++ sparc) echo sparc-icl-nx7; exit ;; ++ esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) +@@ -202,12 +346,12 @@ + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` +- exit 0 ;; ++ exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + sun*:*:4.2BSD:*) +- UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) +@@ -217,19 +361,13 @@ + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac +- exit 0 ;; ++ exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} +- exit 0 ;; +- atari*:NetBSD:*:*) +- echo m68k-atari-netbsd${UNAME_RELEASE} +- exit 0 ;; +- atari*:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not +- # "atarist" or "atariste" at least should have a processor ++ # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not +@@ -237,61 +375,45 @@ + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} +- exit 0 ;; +- sun3*:NetBSD:*:*) +- echo m68k-sun-netbsd${UNAME_RELEASE} +- exit 0 ;; +- sun3*:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mac68k:NetBSD:*:*) +- echo m68k-apple-netbsd${UNAME_RELEASE} +- exit 0 ;; +- mac68k:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvme68k:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvme88k:OpenBSD:*:*) +- echo m88k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ m68k:machten:*:*) ++ echo m68k-apple-machten${UNAME_RELEASE} ++ exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} +- exit 0 ;; +- macppc:NetBSD:*:*) +- echo powerpc-apple-netbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 +- exit 0 ;; ++ exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) ++ eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ + int main (int argc, char *argv[]) { + #else + int main (argc, argv) int argc; char *argv[]; { +@@ -310,28 +432,37 @@ + exit (-1); + } + EOF +- $CC_FOR_BUILD $dummy.c -o $dummy \ +- && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ +- && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit ;; ++ Motorola:*:4.3:PL8-*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) ++ echo powerpc-harris-powermax ++ exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix +- exit 0 ;; ++ exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 +- exit 0 ;; ++ exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 +- exit 0 ;; ++ exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 +- exit 0 ;; ++ exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` +- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110] ++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] +@@ -343,31 +474,40 @@ + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit 0 ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 +- exit 0 ;; ++ exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 +- exit 0 ;; ++ exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 +- exit 0 ;; ++ exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd +- exit 0 ;; ++ exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` +- exit 0 ;; ++ exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. +- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id +- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' +- i?86:AIX:*:*) ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ i*86:AIX:*:*) + echo i386-ibm-aix +- exit 0 ;; ++ exit ;; ++ ia64:AIX:*:*) ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ++ exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ++ eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + +@@ -379,18 +519,21 @@ + exit(0); + } + EOF +- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy +- echo rs6000-ibm-aix3.2.5 ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi +- exit 0 ;; +- *:AIX:*:4) +- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` +- if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then ++ exit ;; ++ *:AIX:*:[45]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` ++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc +@@ -398,37 +541,56 @@ + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else +- IBM_REV=4.${UNAME_RELEASE} ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} +- exit 0 ;; ++ exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix +- exit 0 ;; ++ exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 +- exit 0 ;; +- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and ++ exit ;; ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to +- exit 0 ;; # report: romp-ibm BSD 4.3 ++ exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx +- exit 0 ;; ++ exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 +- exit 0 ;; ++ exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd +- exit 0 ;; ++ exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 +- exit 0 ;; ++ exit ;; + 9000/[34678]??:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) +- sed 's/^ //' << EOF >$dummy.c ++ if [ -x /usr/bin/getconf ]; then ++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; ++ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 ++ esac ;; ++ esac ++ fi ++ if [ "${HP_ARCH}" = "" ]; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + +@@ -459,13 +621,39 @@ + exit (0); + } + EOF +- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` +- rm -f $dummy.c $dummy ++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ++ test -z "$HP_ARCH" && HP_ARCH=hppa ++ fi ;; + esac +- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ if [ ${HP_ARCH} = "hppa2.0w" ] ++ then ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=cc ./config.guess ++ # => hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess ++ # => hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep __LP64__ >/dev/null ++ then ++ HP_ARCH="hppa2.0w" ++ else ++ HP_ARCH="hppa64" ++ fi ++ fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} +- exit 0 ;; ++ exit ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit ;; + 3050*:HI-UX:*:*) ++ eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int +@@ -491,434 +679,475 @@ + exit (0); + } + EOF +- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 +- exit 0 ;; ++ exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd +- exit 0 ;; ++ exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd +- exit 0 ;; +- *9??*:MPE/iX:*:*) ++ exit ;; ++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix +- exit 0 ;; ++ exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf +- exit 0 ;; ++ exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf +- exit 0 ;; +- i?86:OSF1:*:*) ++ exit ;; ++ i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi +- exit 0 ;; ++ exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites +- exit 0 ;; +- hppa*:OpenBSD:*:*) +- echo hppa-unknown-openbsd +- exit 0 ;; ++ exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit 0 ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit 0 ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit 0 ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit 0 ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit 0 ;; +- CRAY*X-MP:*:*:*) +- echo xmp-cray-unicos +- exit 0 ;; ++ exit ;; + CRAY*Y-MP:*:*:*) +- echo ymp-cray-unicos${UNAME_RELEASE} +- exit 0 ;; ++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ +- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ +- exit 0 ;; ++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ ++ -e 's/\.[^.]*$/.X/' ++ exit ;; + CRAY*TS:*:*:*) +- echo t90-cray-unicos${UNAME_RELEASE} +- exit 0 ;; ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; + CRAY*T3E:*:*:*) +- echo alpha-cray-unicosmk${UNAME_RELEASE} +- exit 0 ;; +- CRAY-2:*:*:*) +- echo cray2-cray-unicos +- exit 0 ;; +- F300:UNIX_System_V:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ *:UNICOS/mp:*:*) ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) ++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit 0 ;; +- F301:UNIX_System_V:*:*) +- echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` +- exit 0 ;; +- hp3[0-9][05]:NetBSD:*:*) +- echo m68k-hp-netbsd${UNAME_RELEASE} +- exit 0 ;; +- hp300:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- i?86:BSD/386:*:* | i?86:BSD/OS:*:*) ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ 5000:UNIX_System_V:4.*:*) ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:FreeBSD:*:*) +- if test -x /usr/bin/objformat; then +- if test "elf" = "`/usr/bin/objformat`"; then +- echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'` +- exit 0 +- fi +- fi +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` +- exit 0 ;; +- *:NetBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'` +- exit 0 ;; +- *:OpenBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` +- exit 0 ;; ++ case ${UNAME_MACHINE} in ++ pc98) ++ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ *) ++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ esac ++ exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin +- exit 0 ;; ++ exit ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 +- exit 0 ;; ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit ;; ++ x86:Interix*:[3456]*) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ EM64T:Interix*:[3456]*) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ++ echo i${UNAME_MACHINE}-pc-mks ++ exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? +- echo i386-pc-interix +- exit 0 ;; ++ echo i586-pc-interix ++ exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin +- exit 0 ;; ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin +- exit 0 ;; ++ exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + *:GNU:*:*) ++ # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` +- exit 0 ;; +- *:Linux:*:*) +- ++ exit ;; ++ *:GNU/*:*:*) ++ # other systems with GNU libc and userland ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ exit ;; ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit ;; ++ arm*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ avr32*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ cris:Linux:*:*) ++ echo cris-axis-linux-gnu ++ exit ;; ++ crisv32:Linux:*:*) ++ echo crisv32-axis-linux-gnu ++ exit ;; ++ frv:Linux:*:*) ++ echo frv-unknown-linux-gnu ++ exit ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ mips:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips ++ #undef mipsel ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mipsel ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ mips64:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips64 ++ #undef mips64el ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mips64el ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips64 ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ or32:Linux:*:*) ++ echo or32-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++ PA7*) echo hppa1.1-unknown-linux-gnu ;; ++ PA8*) echo hppa2.0-unknown-linux-gnu ;; ++ *) echo hppa-unknown-linux-gnu ;; ++ esac ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux ++ exit ;; ++ sh64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-gnu ++ exit ;; ++ x86_64:Linux:*:*) ++ echo x86_64-unknown-linux-gnu ++ exit ;; ++ i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. +- ld_help_string=`cd /; ld --help 2>&1` +- ld_supported_emulations=`echo $ld_help_string \ +- | sed -ne '/supported emulations:/!d ++ # Set LC_ALL=C to ensure ld outputs messages in English. ++ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ ++ | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g +- s/.*supported emulations: *// ++ s/.*supported targets: *// + s/ .*// + p'` +- case "$ld_supported_emulations" in +- *ia64) +- echo "${UNAME_MACHINE}-unknown-linux" +- exit 0 ++ case "$ld_supported_targets" in ++ elf32-i386) ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; +- i?86linux) ++ a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" +- exit 0 +- ;; +- i?86coff) ++ exit ;; ++ coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" +- exit 0 +- ;; +- sparclinux) +- echo "${UNAME_MACHINE}-unknown-linux-gnuaout" +- exit 0 +- ;; +- armlinux) +- echo "${UNAME_MACHINE}-unknown-linux-gnuaout" +- exit 0 +- ;; +- elf32arm*) +- echo "${UNAME_MACHINE}-unknown-linux-gnu" +- exit 0 +- ;; +- armelf_linux*) +- echo "${UNAME_MACHINE}-unknown-linux-gnu" +- exit 0 +- ;; +- m68klinux) +- echo "${UNAME_MACHINE}-unknown-linux-gnuaout" +- exit 0 +- ;; +- elf32ppc) +- # Determine Lib Version +- cat >$dummy.c <<EOF +-#include <features.h> +-#if defined(__GLIBC__) +-extern char __libc_version[]; +-extern char __libc_release[]; +-#endif +-main(argc, argv) +- int argc; +- char *argv[]; +-{ +-#if defined(__GLIBC__) +- printf("%s %s\n", __libc_version, __libc_release); +-#else +- printf("unkown\n"); +-#endif +- return 0; +-} +-EOF +- LIBC="" +- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null +- if test "$?" = 0 ; then +- ./$dummy | grep 1\.99 > /dev/null +- if test "$?" = 0 ; then +- LIBC="libc1" +- fi +- fi +- rm -f $dummy.c $dummy +- echo powerpc-unknown-linux-gnu${LIBC} +- exit 0 +- ;; ++ exit ;; ++ "") ++ # Either a pre-BFD a.out linker (linux-gnuoldld) or ++ # one that does not give us useful --help. ++ echo "${UNAME_MACHINE}-pc-linux-gnuoldld" ++ exit ;; + esac +- +- if test "${UNAME_MACHINE}" = "alpha" ; then +- sed 's/^ //' <<EOF >$dummy.s +- .globl main +- .ent main +- main: +- .frame \$30,0,\$26,0 +- .prologue 0 +- .long 0x47e03d80 # implver $0 +- lda \$2,259 +- .long 0x47e20c21 # amask $2,$1 +- srl \$1,8,\$2 +- sll \$2,2,\$2 +- sll \$0,3,\$0 +- addl \$1,\$0,\$0 +- addl \$2,\$0,\$0 +- ret \$31,(\$26),1 +- .end main +-EOF +- LIBC="" +- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null +- if test "$?" = 0 ; then +- ./$dummy +- case "$?" in +- 7) +- UNAME_MACHINE="alpha" +- ;; +- 15) +- UNAME_MACHINE="alphaev5" +- ;; +- 14) +- UNAME_MACHINE="alphaev56" +- ;; +- 10) +- UNAME_MACHINE="alphapca56" +- ;; +- 16) +- UNAME_MACHINE="alphaev6" +- ;; +- esac +- +- objdump --private-headers $dummy | \ +- grep ld.so.1 > /dev/null +- if test "$?" = 0 ; then +- LIBC="libc1" +- fi +- fi +- rm -f $dummy.s $dummy +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 +- elif test "${UNAME_MACHINE}" = "mips" ; then +- cat >$dummy.c <<EOF +-#ifdef __cplusplus +- int main (int argc, char *argv[]) { +-#else +- int main (argc, argv) int argc; char *argv[]; { +-#endif +-#ifdef __MIPSEB__ +- printf ("%s-unknown-linux-gnu\n", argv[1]); +-#endif +-#ifdef __MIPSEL__ +- printf ("%sel-unknown-linux-gnu\n", argv[1]); +-#endif +- return 0; +-} +-EOF +- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy +- else +- # Either a pre-BFD a.out linker (linux-gnuoldld) +- # or one that does not give us useful --help. +- # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. +- # If ld does not provide *any* "supported emulations:" +- # that means it is gnuoldld. +- echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" +- test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 +- +- case "${UNAME_MACHINE}" in +- i?86) +- VENDOR=pc; +- ;; +- *) +- VENDOR=unknown; +- ;; +- esac +- # Determine whether the default compiler is a.out or elf +- cat >$dummy.c <<EOF +-#include <features.h> +-#ifdef __cplusplus +- int main (int argc, char *argv[]) { +-#else +- int main (argc, argv) int argc; char *argv[]; { +-#endif +-#ifdef __ELF__ +-# ifdef __GLIBC__ +-# if __GLIBC__ >= 2 +- printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +-# else +- printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +-# endif +-# else +- printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +-# endif +-#else +- printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); +-#endif +- return 0; +-} ++ # Determine whether the default compiler is a.out or elf ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <features.h> ++ #ifdef __ELF__ ++ # ifdef __GLIBC__ ++ # if __GLIBC__ >= 2 ++ LIBC=gnu ++ # else ++ LIBC=gnulibc1 ++ # endif ++ # else ++ LIBC=gnulibc1 ++ # endif ++ #else ++ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) ++ LIBC=gnu ++ #else ++ LIBC=gnuaout ++ #endif ++ #endif ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif + EOF +- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy +- fi ;; +-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions +-# are messed up and put the nodename in both sysname and nodename. +- i?86:DYNIX/ptx:4*:*) ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^LIBC/{ ++ s: ::g ++ p ++ }'`" ++ test x"${LIBC}" != x && { ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ exit ++ } ++ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ++ ;; ++ i*86:DYNIX/ptx:4*:*) ++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. ++ # earlier versions are messed up and put the nodename in both ++ # sysname and nodename. + echo i386-sequent-sysv4 +- exit 0 ;; +- i?86:UNIX_SV:4.2MP:2.*) ++ exit ;; ++ i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} +- exit 0 ;; +- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) ++ exit ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit ;; ++ i*86:XTS-300:*:STOP) ++ echo ${UNAME_MACHINE}-unknown-stop ++ exit ;; ++ i*86:atheos:*:*) ++ echo ${UNAME_MACHINE}-unknown-atheos ++ exit ;; ++ i*86:syllable:*:*) ++ echo ${UNAME_MACHINE}-pc-syllable ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ echo i386-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit ;; ++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi +- exit 0 ;; +- i?86:*:5:7*) +- # Fixed at (any) Pentium or better +- UNAME_MACHINE=i586 +- if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then +- echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} +- else +- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} +- fi +- exit 0 ;; +- i?86:*:3.2:*) ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ case `/bin/uname -X | grep "^Machine"` in ++ *486*) UNAME_MACHINE=i486 ;; ++ *Pentium) UNAME_MACHINE=i586 ;; ++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;; ++ esac ++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ++ exit ;; ++ i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + elif /bin/uname -X 2>/dev/null >/dev/null ; then +- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` +- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 +- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ ++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` ++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 ++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 +- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ ++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 +- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ ++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi +- exit 0 ;; ++ exit ;; + pc:*:*:*) ++ # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp +- exit 0 ;; ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 +- exit 0 ;; ++ exit ;; + paragon:*:*:*) + echo i860-intel-osf1 +- exit 0 ;; ++ exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi +- exit 0 ;; ++ exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv +- exit 0 ;; +- M68*:*:R3V[567]*:*) +- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; +- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) ++ exit ;; ++ mc68k:UNIX:SYSTEM5:3.51m) ++ echo m68k-convergent-sysv ++ exit ;; ++ M680?0:D-NIX:5.3:*) ++ echo m68k-diab-dnix ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ +- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && echo i486-ncr-sysv4 && exit 0 ;; +- m68*:LynxOS:2.*:*) ++ && { echo i486-ncr-sysv4; exit; } ;; ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 +- exit 0 ;; +- i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*) +- echo i386-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; +- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) ++ exit ;; ++ rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 +- exit 0 ;; ++ exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 +- exit 0 ;; ++ exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` +@@ -926,62 +1155,155 @@ + else + echo ns32k-sni-sysv + fi +- exit 0 ;; +- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says <Richard.M.Bartel@ccMail.Census.GOV> ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 +- exit 0 ;; ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 +- exit 0 ;; ++ exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 +- exit 0 ;; ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; ++ *:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo hppa1.1-stratus-vos ++ exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} +- exit 0 ;; +- news*:NEWS-OS:*:6*) ++ exit ;; ++ news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 +- exit 0 ;; ++ exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit 0 ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos +- exit 0 ;; ++ exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos +- exit 0 ;; ++ exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos +- exit 0 ;; ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ SX-6:SUPER-UX:*:*) ++ echo sx6-nec-superux${UNAME_RELEASE} ++ exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ *:Darwin:*:*) ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ case $UNAME_PROCESSOR in ++ unknown) UNAME_PROCESSOR=powerpc ;; ++ esac ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ++ exit ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ UNAME_PROCESSOR=`uname -p` ++ if test "$UNAME_PROCESSOR" = "x86"; then ++ UNAME_PROCESSOR=i386 ++ UNAME_MACHINE=pc ++ fi ++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ++ exit ;; + *:QNX:*:4*) +- echo i386-qnx-qnx${UNAME_VERSION} +- exit 0 ;; ++ echo i386-pc-qnx ++ exit ;; ++ NSE-?:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSR-?:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit ;; ++ *:Plan9:*:*) ++ # "uname -m" is not consistent, so use $cputype instead. 386 ++ # is converted to i386 for consistency with other x86 ++ # operating systems. ++ if test "$cputype" = "386"; then ++ UNAME_MACHINE=i386 ++ else ++ UNAME_MACHINE="$cputype" ++ fi ++ echo ${UNAME_MACHINE}-unknown-plan9 ++ exit ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit ;; ++ SEI:*:*:SEIUX) ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; ++ *:DragonFly:*:*) ++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 + #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + ++eval $set_cc_for_build + cat >$dummy.c <<EOF + #ifdef _SEQUENT_ + # include <sys/types.h> +@@ -1007,7 +1329,7 @@ + #endif + + #if defined (__arm) && defined (__acorn) && defined (__unix) +- printf ("arm-acorn-riscix"); exit (0); ++ printf ("arm-acorn-riscix\n"); exit (0); + #endif + + #if defined (hp300) && !defined (hpux) +@@ -1068,11 +1390,24 @@ + #endif + + #if defined (vax) +-#if !defined (ultrix) +- printf ("vax-dec-bsd\n"); exit (0); +-#else +- printf ("vax-dec-ultrix\n"); exit (0); +-#endif ++# if !defined (ultrix) ++# include <sys/param.h> ++# if defined (BSD) ++# if BSD == 43 ++ printf ("vax-dec-bsd4.3\n"); exit (0); ++# else ++# if BSD == 199006 ++ printf ("vax-dec-bsd4.3reno\n"); exit (0); ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# endif ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# else ++ printf ("vax-dec-ultrix\n"); exit (0); ++# endif + #endif + + #if defined (alliant) && defined (i860) +@@ -1083,12 +1418,12 @@ + } + EOF + +-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0 +-rm -f $dummy.c $dummy ++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } + + # Apollos put the system type in the environment. + +-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } ++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + + # Convex versions that predate uname can use getsysinfo(1) + +@@ -1097,25 +1432,69 @@ + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd +- exit 0 ;; ++ exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit 0 ;; ++ exit ;; + c34*) + echo c34-convex-bsd +- exit 0 ;; ++ exit ;; + c38*) + echo c38-convex-bsd +- exit 0 ;; ++ exit ;; + c4*) + echo c4-convex-bsd +- exit 0 ;; ++ exit ;; + esac + fi + +-#echo '(Unable to guess system type)' 1>&2 ++cat >&2 <<EOF ++$0: unable to guess system type ++ ++This script, last modified $timestamp, has failed to recognize ++the operating system you are using. It is advised that you ++download the most up to date version of the config scripts from ++ ++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess ++and ++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub ++ ++If the version you run ($0) is already up to date, please ++send the following data and any information you think might be ++pertinent to <config-patches@gnu.org> in order to provide the needed ++information to handle your system. ++ ++config.guess timestamp = $timestamp ++ ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null` ++ ++hostinfo = `(hostinfo) 2>/dev/null` ++/bin/universe = `(/bin/universe) 2>/dev/null` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` ++/bin/arch = `(/bin/arch) 2>/dev/null` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` ++ ++UNAME_MACHINE = ${UNAME_MACHINE} ++UNAME_RELEASE = ${UNAME_RELEASE} ++UNAME_SYSTEM = ${UNAME_SYSTEM} ++UNAME_VERSION = ${UNAME_VERSION} ++EOF + + exit 1 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +--- glib1.2-1.2.10.orig/stamp-gc-h ++++ glib1.2-1.2.10/stamp-gc-h +@@ -0,0 +1 @@ ++timestamp +--- glib1.2-1.2.10.orig/docs/Makefile.in ++++ glib1.2-1.2.10/docs/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -62,8 +62,10 @@ + AS = @AS@ + CC = @CC@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ + ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@ + ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@ ++EXEEXT = @EXEEXT@ + GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ + GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ + GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ +@@ -88,8 +90,10 @@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + RANLIB = @RANLIB@ ++STRIP = @STRIP@ + VERSION = @VERSION@ + + info_TEXINFOS = glib.texi +@@ -114,7 +118,7 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + all: all-redirect + .SUFFIXES: +@@ -208,7 +212,7 @@ + else ii=; fi; \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ +- test -z "$ii" \ ++ test -z "$$ii" \ + || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ + done + @$(NORMAL_UNINSTALL) +--- glib1.2-1.2.10.orig/ltconfig ++++ glib1.2-1.2.10/ltconfig +@@ -1957,7 +1957,7 @@ + ;; + + # This must be Linux ELF. +-linux-gnu*) ++linux-gnu*|kfreebsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no +--- glib1.2-1.2.10.orig/patch ++++ glib1.2-1.2.10/patch +@@ -0,0 +1,47 @@ ++diff -urN ../tmp-orig/glib1.2-1.2.10/gstrfuncs.c ./gstrfuncs.c ++--- ../tmp-orig/glib1.2-1.2.10/gstrfuncs.c 2001-02-27 07:00:22.000000000 +0100 +++++ ./gstrfuncs.c 2004-08-02 21:35:44.323958675 +0200 ++@@ -867,8 +867,8 @@ ++ /* beware of positional parameters ++ */ ++ case '$': ++- g_warning (G_GNUC_PRETTY_FUNCTION ++- "(): unable to handle positional parameters (%%n$)"); +++ g_warning ("%s(): unable to handle positional parameters (%%n$)", +++ G_GNUC_PRETTY_FUNCTION ); ++ len += 1024; /* try adding some safety padding */ ++ break; ++ ++@@ -1034,8 +1034,8 @@ ++ /* n . dddddddddddddddddddddddd E +- eeee */ ++ conv_len += 1 + 1 + MAX (24, spec.precision) + 1 + 1 + 4; ++ if (spec.mod_extra_long) ++- g_warning (G_GNUC_PRETTY_FUNCTION ++- "(): unable to handle long double, collecting double only"); +++ g_warning ("%s(): unable to handle long double, collecting double only", +++ G_GNUC_PRETTY_FUNCTION); ++ #ifdef HAVE_LONG_DOUBLE ++ #error need to implement special handling for long double ++ #endif ++@@ -1077,8 +1077,8 @@ ++ conv_done = TRUE; ++ if (spec.mod_long) ++ { ++- g_warning (G_GNUC_PRETTY_FUNCTION ++- "(): unable to handle wide char strings"); +++ g_warning ("%s(): unable to handle wide char strings", +++ G_GNUC_PRETTY_FUNCTION); ++ len += 1024; /* try adding some safety padding */ ++ } ++ break; ++@@ -1108,8 +1108,8 @@ ++ conv_len += format - spec_start; ++ break; ++ default: ++- g_warning (G_GNUC_PRETTY_FUNCTION ++- "(): unable to handle `%c' while parsing format", +++ g_warning ("%s(): unable to handle `%c' while parsing format", +++ G_GNUC_PRETTY_FUNCTION, ++ c); ++ break; ++ } +--- glib1.2-1.2.10.orig/Makefile.in ++++ glib1.2-1.2.10/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -64,8 +64,10 @@ + AS = @AS@ + CC = @CC@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ + ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@ + ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@ ++EXEEXT = @EXEEXT@ + GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ + GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ + GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ +@@ -90,8 +92,10 @@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + RANLIB = @RANLIB@ ++STRIP = @STRIP@ + VERSION = @VERSION@ + + AUTOMAKE_OPTIONS = 1.4 +@@ -154,18 +158,20 @@ + gmain.lo gmem.lo gmessages.lo gmutex.lo gnode.lo gprimes.lo grel.lo \ + gscanner.lo gslist.lo gstrfuncs.lo gstring.lo gtimer.lo gtree.lo \ + gutils.lo ++noinst_PROGRAMS = testglib$(EXEEXT) testgdate$(EXEEXT) \ ++testgdateparser$(EXEEXT) + PROGRAMS = $(noinst_PROGRAMS) + + testglib_SOURCES = testglib.c +-testglib_OBJECTS = testglib.o ++testglib_OBJECTS = testglib.$(OBJEXT) + testglib_DEPENDENCIES = libglib.la + testglib_LDFLAGS = + testgdate_SOURCES = testgdate.c +-testgdate_OBJECTS = testgdate.o ++testgdate_OBJECTS = testgdate.$(OBJEXT) + testgdate_DEPENDENCIES = libglib.la + testgdate_LDFLAGS = + testgdateparser_SOURCES = testgdateparser.c +-testgdateparser_OBJECTS = testgdateparser.o ++testgdateparser_OBJECTS = testgdateparser.$(OBJEXT) + testgdateparser_DEPENDENCIES = libglib.la + testgdateparser_LDFLAGS = + SCRIPTS = $(bin_SCRIPTS) +@@ -180,22 +186,22 @@ + HEADERS = $(glibinclude_HEADERS) + + DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \ +-Makefile.am Makefile.in NEWS acconfig.h acinclude.m4 aclocal.m4 \ +-config.guess config.h.in config.sub configure configure.in \ +-glib-config.in glib.pc.in glib.spec.in gmodule.pc.in gthread.pc.in \ +-install-sh ltconfig ltmain.sh missing mkinstalldirs ++Makefile.am Makefile.in NEWS acconfig.h aclocal.m4 config.guess \ ++config.h.in config.sub configure configure.in glib-config.in glib.pc.in \ ++glib.spec.in gmodule.pc.in gthread.pc.in install-sh ltmain.sh missing \ ++mkinstalldirs + + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + SOURCES = $(libglib_la_SOURCES) testglib.c testgdate.c testgdateparser.c +-OBJECTS = $(libglib_la_OBJECTS) testglib.o testgdate.o testgdateparser.o ++OBJECTS = $(libglib_la_OBJECTS) testglib.$(OBJEXT) testgdate.$(OBJEXT) testgdateparser.$(OBJEXT) + + all: all-redirect + .SUFFIXES: +-.SUFFIXES: .S .c .lo .o .s ++.SUFFIXES: .S .c .lo .o .obj .s + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile + +@@ -203,7 +209,7 @@ + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in + cd $(srcdir) && $(ACLOCAL) + + config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) +@@ -277,6 +283,11 @@ + .c.o: + $(COMPILE) -c $< + ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ + .s.o: + $(COMPILE) -c $< + +@@ -285,6 +296,7 @@ + + mostlyclean-compile: + -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) + + clean-compile: + +@@ -324,16 +336,16 @@ + + maintainer-clean-noinstPROGRAMS: + +-testglib: $(testglib_OBJECTS) $(testglib_DEPENDENCIES) +- @rm -f testglib ++testglib$(EXEEXT): $(testglib_OBJECTS) $(testglib_DEPENDENCIES) ++ @rm -f testglib$(EXEEXT) + $(LINK) $(testglib_LDFLAGS) $(testglib_OBJECTS) $(testglib_LDADD) $(LIBS) + +-testgdate: $(testgdate_OBJECTS) $(testgdate_DEPENDENCIES) +- @rm -f testgdate ++testgdate$(EXEEXT): $(testgdate_OBJECTS) $(testgdate_DEPENDENCIES) ++ @rm -f testgdate$(EXEEXT) + $(LINK) $(testgdate_LDFLAGS) $(testgdate_OBJECTS) $(testgdate_LDADD) $(LIBS) + +-testgdateparser: $(testgdateparser_OBJECTS) $(testgdateparser_DEPENDENCIES) +- @rm -f testgdateparser ++testgdateparser$(EXEEXT): $(testgdateparser_OBJECTS) $(testgdateparser_DEPENDENCIES) ++ @rm -f testgdateparser$(EXEEXT) + $(LINK) $(testgdateparser_LDFLAGS) $(testgdateparser_OBJECTS) $(testgdateparser_LDADD) $(LIBS) + + install-binSCRIPTS: $(bin_SCRIPTS) +@@ -463,7 +475,7 @@ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ +- test "$$subdir" = "." && dot_seen=yes; \ ++ test "$$subdir" != "." || dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ +@@ -505,7 +517,7 @@ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ +- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)) + + mostlyclean-tags: + +@@ -575,35 +587,6 @@ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook +-garray.lo garray.o : garray.c glib.h glibconfig.h +-gcache.lo gcache.o : gcache.c glib.h glibconfig.h +-gcompletion.lo gcompletion.o : gcompletion.c glib.h glibconfig.h +-gdataset.lo gdataset.o : gdataset.c glib.h glibconfig.h +-gdate.lo gdate.o : gdate.c config.h glib.h glibconfig.h +-gerror.lo gerror.o : gerror.c config.h glib.h glibconfig.h +-ghash.lo ghash.o : ghash.c glib.h glibconfig.h +-ghook.lo ghook.o : ghook.c glib.h glibconfig.h +-giochannel.lo giochannel.o : giochannel.c config.h glib.h glibconfig.h +-giounix.lo giounix.o : giounix.c glib.h glibconfig.h +-glist.lo glist.o : glist.c glib.h glibconfig.h +-gmain.lo gmain.o : gmain.c config.h glib.h glibconfig.h +-gmem.lo gmem.o : gmem.c config.h glib.h glibconfig.h +-gmessages.lo gmessages.o : gmessages.c config.h glib.h glibconfig.h +-gmutex.lo gmutex.o : gmutex.c glib.h glibconfig.h +-gnode.lo gnode.o : gnode.c glib.h glibconfig.h +-gprimes.lo gprimes.o : gprimes.c glib.h glibconfig.h +-grel.lo grel.o : grel.c glib.h glibconfig.h +-gscanner.lo gscanner.o : gscanner.c config.h glib.h glibconfig.h +-gslist.lo gslist.o : gslist.c glib.h glibconfig.h +-gstrfuncs.lo gstrfuncs.o : gstrfuncs.c config.h glib.h glibconfig.h +-gstring.lo gstring.o : gstring.c glib.h glibconfig.h +-gtimer.lo gtimer.o : gtimer.c config.h glib.h glibconfig.h +-gtree.lo gtree.o : gtree.c glib.h glibconfig.h +-gutils.lo gutils.o : gutils.c config.h glibconfig.h glib.h +-testgdate.o: testgdate.c glib.h glibconfig.h +-testgdateparser.o: testgdateparser.c glib.h glibconfig.h +-testglib.o: testglib.c glib.h glibconfig.h +- + info-am: + info: info-recursive + dvi-am: +--- glib1.2-1.2.10.orig/gthread/Makefile.in ++++ glib1.2-1.2.10/gthread/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -62,8 +62,10 @@ + AS = @AS@ + CC = @CC@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ + ENABLE_MEM_CHECK = @ENABLE_MEM_CHECK@ + ENABLE_MEM_PROFILE = @ENABLE_MEM_PROFILE@ ++EXEEXT = @EXEEXT@ + GLIB_BINARY_AGE = @GLIB_BINARY_AGE@ + GLIB_DEBUG_FLAGS = @GLIB_DEBUG_FLAGS@ + GLIB_INTERFACE_AGE = @GLIB_INTERFACE_AGE@ +@@ -88,8 +90,10 @@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + RANLIB = @RANLIB@ ++STRIP = @STRIP@ + VERSION = @VERSION@ + + INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/gthread -DG_LOG_DOMAIN=\"GThread\" +@@ -105,7 +109,7 @@ + libgthread_la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -release $(LT_RELEASE) -export-dynamic + + +-libgthread_la_LIBADD = @G_THREAD_LIBS@ ++libgthread_la_LIBADD = @G_THREAD_LIBS@ $(libglib) + + noinst_PROGRAMS = testgthread + testgthread_LDADD = ../libglib.la libgthread.la +@@ -121,10 +125,11 @@ + LIBS = @LIBS@ + libgthread_la_DEPENDENCIES = + libgthread_la_OBJECTS = gthread.lo ++noinst_PROGRAMS = testgthread$(EXEEXT) + PROGRAMS = $(noinst_PROGRAMS) + + testgthread_SOURCES = testgthread.c +-testgthread_OBJECTS = testgthread.o ++testgthread_OBJECTS = testgthread.$(OBJEXT) + testgthread_DEPENDENCIES = ../libglib.la libgthread.la + testgthread_LDFLAGS = + CFLAGS = @CFLAGS@ +@@ -137,14 +142,14 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + SOURCES = $(libgthread_la_SOURCES) testgthread.c +-OBJECTS = $(libgthread_la_OBJECTS) testgthread.o ++OBJECTS = $(libgthread_la_OBJECTS) testgthread.$(OBJEXT) + + all: all-redirect + .SUFFIXES: +-.SUFFIXES: .S .c .lo .o .s ++.SUFFIXES: .S .c .lo .o .obj .s + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps gthread/Makefile + +@@ -181,6 +186,11 @@ + .c.o: + $(COMPILE) -c $< + ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ + .s.o: + $(COMPILE) -c $< + +@@ -189,6 +199,7 @@ + + mostlyclean-compile: + -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) + + clean-compile: + +@@ -228,8 +239,8 @@ + + maintainer-clean-noinstPROGRAMS: + +-testgthread: $(testgthread_OBJECTS) $(testgthread_DEPENDENCIES) +- @rm -f testgthread ++testgthread$(EXEEXT): $(testgthread_OBJECTS) $(testgthread_DEPENDENCIES) ++ @rm -f testgthread$(EXEEXT) + $(LINK) $(testgthread_LDFLAGS) $(testgthread_OBJECTS) $(testgthread_LDADD) $(LIBS) + + tags: TAGS +@@ -250,7 +261,7 @@ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ +- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + + mostlyclean-tags: + +@@ -276,11 +287,6 @@ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +-gthread.lo gthread.o : gthread.c ../config.h ../glib.h ../glibconfig.h \ +- gthread-posix.c +-testgthread.o: testgthread.c ../config.h ../testglib.c ../glib.h \ +- ../glibconfig.h +- + info-am: + info: info-am + dvi-am: +--- glib1.2-1.2.10.orig/gthread/Makefile.am ++++ glib1.2-1.2.10/gthread/Makefile.am +@@ -19,7 +19,7 @@ + -release $(LT_RELEASE) \ + -export-dynamic + +-libgthread_la_LIBADD = @G_THREAD_LIBS@ ++libgthread_la_LIBADD = @G_THREAD_LIBS@ $(libglib) + + noinst_PROGRAMS = testgthread + testgthread_LDADD = ../libglib.la libgthread.la +--- glib1.2-1.2.10.orig/glibconfig.h ++++ glib1.2-1.2.10/glibconfig.h +@@ -0,0 +1,131 @@ ++/* glibconfig.h ++ * ++ * This is a generated file. Please modify `configure.in' ++ */ ++ ++#ifndef GLIBCONFIG_H ++#define GLIBCONFIG_H ++ ++#include <limits.h> ++#include <float.h> ++#define GLIB_HAVE_SYS_POLL_H ++ ++#ifdef __cplusplus ++extern "C" { ++#endif /* __cplusplus */ ++ ++#define G_MINFLOAT FLT_MIN ++#define G_MAXFLOAT FLT_MAX ++#define G_MINDOUBLE DBL_MIN ++#define G_MAXDOUBLE DBL_MAX ++#define G_MINSHORT SHRT_MIN ++#define G_MAXSHORT SHRT_MAX ++#define G_MININT INT_MIN ++#define G_MAXINT INT_MAX ++#define G_MINLONG LONG_MIN ++#define G_MAXLONG LONG_MAX ++ ++typedef signed char gint8; ++typedef unsigned char guint8; ++typedef signed short gint16; ++typedef unsigned short guint16; ++typedef signed int gint32; ++typedef unsigned int guint32; ++ ++#if defined (__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)) ++# define G_GNUC_EXTENSION __extension__ ++#else ++# define G_GNUC_EXTENSION ++#endif ++ ++#define G_HAVE_GINT64 1 ++ ++G_GNUC_EXTENSION typedef signed long long gint64; ++G_GNUC_EXTENSION typedef unsigned long long guint64; ++ ++#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL)) ++ ++#define GPOINTER_TO_INT(p) ((gint) (p)) ++#define GPOINTER_TO_UINT(p) ((guint) (p)) ++ ++#define GINT_TO_POINTER(i) ((gpointer) (i)) ++#define GUINT_TO_POINTER(u) ((gpointer) (u)) ++ ++#ifdef NeXT /* @#%@! NeXTStep */ ++# define g_ATEXIT(proc) (!atexit (proc)) ++#else ++# define g_ATEXIT(proc) (atexit (proc)) ++#endif ++ ++#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END ++ ++#define GLIB_MAJOR_VERSION 1 ++#define GLIB_MINOR_VERSION 2 ++#define GLIB_MICRO_VERSION 10 ++ ++ ++#define G_VA_COPY __va_copy ++ ++#ifdef __cplusplus ++#define G_HAVE_INLINE 1 ++#else /* !__cplusplus */ ++#define G_HAVE_INLINE 1 ++#define G_HAVE___INLINE 1 ++#define G_HAVE___INLINE__ 1 ++#endif /* !__cplusplus */ ++ ++#define G_THREADS_ENABLED ++#define G_THREADS_IMPL_POSIX ++typedef struct _GStaticMutex GStaticMutex; ++struct _GStaticMutex ++{ ++ struct _GMutex *runtime_mutex; ++ union { ++ char pad[24]; ++ double dummy_double; ++ void *dummy_pointer; ++ long dummy_long; ++ } aligned_pad_u; ++}; ++#define G_STATIC_MUTEX_INIT { NULL, { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} } } ++#define g_static_mutex_get_mutex(mutex) (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex))) ++ ++#define GINT16_TO_LE(val) ((gint16) (val)) ++#define GUINT16_TO_LE(val) ((guint16) (val)) ++#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) ++#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) ++#define GINT32_TO_LE(val) ((gint32) (val)) ++#define GUINT32_TO_LE(val) ((guint32) (val)) ++#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) ++#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) ++#define GINT64_TO_LE(val) ((gint64) (val)) ++#define GUINT64_TO_LE(val) ((guint64) (val)) ++#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) ++#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) ++#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val)) ++#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val)) ++#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val)) ++#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val)) ++#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) ++#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) ++#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) ++#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) ++#define G_BYTE_ORDER G_LITTLE_ENDIAN ++ ++#define GLIB_SYSDEF_POLLIN =1 ++#define GLIB_SYSDEF_POLLOUT =4 ++#define GLIB_SYSDEF_POLLPRI =2 ++#define GLIB_SYSDEF_POLLERR =8 ++#define GLIB_SYSDEF_POLLHUP =16 ++#define GLIB_SYSDEF_POLLNVAL =32 ++ ++ ++#define G_HAVE_WCHAR_H 1 ++#define G_HAVE_WCTYPE_H 1 ++ ++ ++#ifdef __cplusplus ++} ++#endif /* __cplusplus */ ++ ++#endif /* GLIBCONFIG_H */ +--- glib1.2-1.2.10.orig/glib.m4 ++++ glib1.2-1.2.10/glib.m4 +@@ -5,7 +5,7 @@ + dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or + dnl gthread is specified in MODULES, pass to glib-config + dnl +-AC_DEFUN(AM_PATH_GLIB, ++AC_DEFUN([AM_PATH_GLIB], + [dnl + dnl Get the cflags and libraries from the glib-config script + dnl +--- glib1.2-1.2.10.orig/ltmain.sh ++++ glib1.2-1.2.10/ltmain.sh +@@ -1,7 +1,8 @@ + # ltmain.sh - Provide generalized library-building support services. +-# NOTE: Changing this file will not affect anything until you rerun ltconfig. ++# NOTE: Changing this file will not affect anything until you rerun configure. + # +-# Copyright (C) 1996-1999 Free Software Foundation, Inc. ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. + # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + # + # This program is free software; you can redistribute it and/or modify +@@ -48,14 +49,14 @@ + fi + + # The name of this program. +-progname=`$echo "$0" | sed 's%^.*/%%'` ++progname=`$echo "$0" | ${SED} 's%^.*/%%'` + modename="$progname" + + # Constants. + PROGRAM=ltmain.sh + PACKAGE=libtool +-VERSION=1.3.4 +-TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)" ++VERSION=1.4.3 ++TIMESTAMP=" (1.922.2.111 2002/10/23 02:54:36)" + + default_mode= + help="Try \`$progname --help' for more information." +@@ -66,10 +67,19 @@ + + # Sed substitution that helps us do robust quoting. It backslashifies + # metacharacters that are still active within double-quoted strings. +-Xsed='sed -e 1s/^X//' ++Xsed="${SED}"' -e 1s/^X//' + sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' +-SP2NL='tr \040 \012' +-NL2SP='tr \015\012 \040\040' ++# test EBCDIC or ASCII ++case `echo A|od -x` in ++ *[Cc]1*) # EBCDIC based system ++ SP2NL="tr '\100' '\n'" ++ NL2SP="tr '\r\n' '\100\100'" ++ ;; ++ *) # Assume ASCII based system ++ SP2NL="tr '\040' '\012'" ++ NL2SP="tr '\015\012' '\040\040'" ++ ;; ++esac + + # NLS nuisances. + # Only set LANG and LC_ALL to C if already set. +@@ -83,11 +93,8 @@ + save_LANG="$LANG"; LANG=C; export LANG + fi + +-if test "$LTCONFIG_VERSION" != "$VERSION"; then +- echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 +- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 +- exit 1 +-fi ++# Make sure IFS has a sensible default ++: ${IFS=" "} + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + echo "$modename: not configured to build any kind of library" 1>&2 +@@ -113,16 +120,16 @@ + arg="$1" + shift + +- case "$arg" in ++ case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then +- case "$prev" in ++ case $prev in + execute_dlfiles) +- eval "$prev=\"\$$prev \$arg\"" ++ execute_dlfiles="$execute_dlfiles $arg" + ;; + *) + eval "$prev=\$arg" +@@ -135,7 +142,7 @@ + fi + + # Have we seen a non-optional argument yet? +- case "$arg" in ++ case $arg in + --help) + show_help=yes + ;; +@@ -146,7 +153,7 @@ + ;; + + --config) +- sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0 ++ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 + exit 0 + ;; + +@@ -179,6 +186,8 @@ + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + ++ --preserve-dup-deps) duplicate_deps="yes" ;; ++ + --quiet | --silent) + show=: + ;; +@@ -207,16 +216,21 @@ + exit 1 + fi + ++# If this variable is set in any of the actions, the command in it ++# will be execed at the end. This prevents here-documents from being ++# left over by shells. ++exec_cmd= ++ + if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then +- case "$nonopt" in +- *cc | *++ | gcc* | *-gcc*) ++ case $nonopt in ++ *cc | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do +- case "$arg" in ++ case $arg in + -c) + mode=compile + break +@@ -261,12 +275,13 @@ + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. +- case "$mode" in ++ case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= ++ prev= + lastarg= + srcfile="$nonopt" + suppress_output= +@@ -274,8 +289,34 @@ + user_target=no + for arg + do ++ case $prev in ++ "") ;; ++ xcompiler) ++ # Aesthetically quote the previous argument. ++ prev= ++ lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ ++ case $arg in ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ++ # Add the previous argument to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; ++ esac ++ + # Accept any command-line options. +- case "$arg" in ++ case $arg in + -o) + if test "$user_target" != "no"; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 +@@ -288,9 +329,53 @@ + build_old_libs=yes + continue + ;; ++ ++ -prefer-pic) ++ pic_mode=yes ++ continue ++ ;; ++ ++ -prefer-non-pic) ++ pic_mode=no ++ continue ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` ++ lastarg= ++ save_ifs="$IFS"; IFS=',' ++ for arg in $args; do ++ IFS="$save_ifs" ++ ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ lastarg="$lastarg $arg" ++ done ++ IFS="$save_ifs" ++ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` ++ ++ # Add the arguments to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; + esac + +- case "$user_target" in ++ case $user_target in + next) + # The next one is the -o target name + user_target=yes +@@ -316,10 +401,10 @@ + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + # Double-quote args containing other shell metacharacters. +- # Many Bourne shells cannot handle close brackets correctly in scan +- # sets, so we specify it separately. +- case "$lastarg" in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $lastarg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac +@@ -332,7 +417,7 @@ + fi + done + +- case "$user_target" in ++ case $user_target in + set) + ;; + no) +@@ -348,7 +433,7 @@ + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSfmso]' +- case "$libobj" in ++ case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; +@@ -363,7 +448,7 @@ + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + +- case "$libobj" in ++ case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 +@@ -387,10 +472,21 @@ + $run $rm $removelist + trap "$run $rm $removelist; exit 1" 1 2 15 + ++ # On Cygwin there's no "real" PIC flag so we must build both object types ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ pic_mode=default ++ ;; ++ esac ++ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then ++ # non-PIC code in shared libraries is not supported ++ pic_mode=default ++ fi ++ + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then +- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext} ++ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit 1" 1 2 15 +@@ -402,7 +498,7 @@ + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then +- until ln "$0" "$lockfile" 2>/dev/null; do ++ until $run ln "$0" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done +@@ -434,8 +530,13 @@ + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + +- # All platforms use -DPIC, to notify preprocessed assembler code. +- command="$base_compile $srcfile $pic_flag -DPIC" ++ if test "$pic_mode" != no; then ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ else ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ fi + if test "$build_old_libs" = yes; then + lo_libobj="$libobj" + dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` +@@ -506,7 +607,8 @@ + fi + + # If we have no pic_flag, then copy the object into place and finish. +- if test -z "$pic_flag" && test "$build_old_libs" = yes; then ++ if (test -z "$pic_flag" || test "$pic_mode" != default) && ++ test "$build_old_libs" = yes; then + # Rename the .lo from within objdir to obj + if test -f $obj; then + $show $rm $obj +@@ -532,6 +634,10 @@ + # Now arrange that obj and lo_libobj become the same file + $show "(cd $xdir && $LN_S $baseobj $libobj)" + if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then ++ # Unlock the critical section if it was locked ++ if test "$need_locks" != no; then ++ $run $rm "$lockfile" ++ fi + exit 0 + else + error=$? +@@ -546,7 +652,13 @@ + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then +- command="$base_compile $srcfile" ++ if test "$pic_mode" != yes; then ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ else ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ fi + if test "$compiler_c_o" = yes; then + command="$command -o $obj" + output_obj="$obj" +@@ -612,17 +724,17 @@ + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then +- $rm "$lockfile" ++ $run $rm "$lockfile" + fi + + exit 0 + ;; + + # libtool link mode +- link) ++ link | relink) + modename="$modename: link" +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2*) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra +@@ -635,179 +747,12 @@ + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes +- +- # This is a source program that is used to create dlls on Windows +- # Don't remove nor modify the starting and closing comments +-# /* ltdll.c starts here */ +-# #define WIN32_LEAN_AND_MEAN +-# #include <windows.h> +-# #undef WIN32_LEAN_AND_MEAN +-# #include <stdio.h> +-# +-# #ifndef __CYGWIN__ +-# # ifdef __CYGWIN32__ +-# # define __CYGWIN__ __CYGWIN32__ +-# # endif +-# #endif +-# +-# #ifdef __cplusplus +-# extern "C" { +-# #endif +-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +-# #ifdef __cplusplus +-# } +-# #endif +-# +-# #ifdef __CYGWIN__ +-# #include <cygwin/cygwin_dll.h> +-# DECLARE_CYGWIN_DLL( DllMain ); +-# #endif +-# HINSTANCE __hDllInstance_base; +-# +-# BOOL APIENTRY +-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +-# { +-# __hDllInstance_base = hInst; +-# return TRUE; +-# } +-# /* ltdll.c ends here */ +- # This is a source program that is used to create import libraries +- # on Windows for dlls which lack them. Don't remove nor modify the +- # starting and closing comments +-# /* impgen.c starts here */ +-# /* Copyright (C) 1999 Free Software Foundation, Inc. +-# +-# This file is part of GNU libtool. +-# +-# This program is free software; you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or +-# (at your option) any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. +-# +-# You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +-# */ +-# +-# #include <stdio.h> /* for printf() */ +-# #include <unistd.h> /* for open(), lseek(), read() */ +-# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ +-# #include <string.h> /* for strdup() */ +-# +-# static unsigned int +-# pe_get16 (fd, offset) +-# int fd; +-# int offset; +-# { +-# unsigned char b[2]; +-# lseek (fd, offset, SEEK_SET); +-# read (fd, b, 2); +-# return b[0] + (b[1]<<8); +-# } +-# +-# static unsigned int +-# pe_get32 (fd, offset) +-# int fd; +-# int offset; +-# { +-# unsigned char b[4]; +-# lseek (fd, offset, SEEK_SET); +-# read (fd, b, 4); +-# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +-# } +-# +-# static unsigned int +-# pe_as32 (ptr) +-# void *ptr; +-# { +-# unsigned char *b = ptr; +-# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +-# } +-# +-# int +-# main (argc, argv) +-# int argc; +-# char *argv[]; +-# { +-# int dll; +-# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; +-# unsigned long export_rva, export_size, nsections, secptr, expptr; +-# unsigned long name_rvas, nexp; +-# unsigned char *expdata, *erva; +-# char *filename, *dll_name; +-# +-# filename = argv[1]; +-# +-# dll = open(filename, O_RDONLY|O_BINARY); +-# if (!dll) +-# return 1; +-# +-# dll_name = filename; +-# +-# for (i=0; filename[i]; i++) +-# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') +-# dll_name = filename + i +1; +-# +-# pe_header_offset = pe_get32 (dll, 0x3c); +-# opthdr_ofs = pe_header_offset + 4 + 20; +-# num_entries = pe_get32 (dll, opthdr_ofs + 92); +-# +-# if (num_entries < 1) /* no exports */ +-# return 1; +-# +-# export_rva = pe_get32 (dll, opthdr_ofs + 96); +-# export_size = pe_get32 (dll, opthdr_ofs + 100); +-# nsections = pe_get16 (dll, pe_header_offset + 4 +2); +-# secptr = (pe_header_offset + 4 + 20 + +-# pe_get16 (dll, pe_header_offset + 4 + 16)); +-# +-# expptr = 0; +-# for (i = 0; i < nsections; i++) +-# { +-# char sname[8]; +-# unsigned long secptr1 = secptr + 40 * i; +-# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); +-# unsigned long vsize = pe_get32 (dll, secptr1 + 16); +-# unsigned long fptr = pe_get32 (dll, secptr1 + 20); +-# lseek(dll, secptr1, SEEK_SET); +-# read(dll, sname, 8); +-# if (vaddr <= export_rva && vaddr+vsize > export_rva) +-# { +-# expptr = fptr + (export_rva - vaddr); +-# if (export_rva + export_size > vaddr + vsize) +-# export_size = vsize - (export_rva - vaddr); +-# break; +-# } +-# } +-# +-# expdata = (unsigned char*)malloc(export_size); +-# lseek (dll, expptr, SEEK_SET); +-# read (dll, expdata, export_size); +-# erva = expdata - export_rva; +-# +-# nexp = pe_as32 (expdata+24); +-# name_rvas = pe_as32 (expdata+32); +-# +-# printf ("EXPORTS\n"); +-# for (i = 0; i<nexp; i++) +-# { +-# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); +-# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); +-# } +-# +-# return 0; +-# } +-# /* impgen.c ends here */ + ;; + *) + allow_undefined=yes + ;; + esac ++ libtool_args="$nonopt" + compile_command="$nonopt" + finalize_command="$nonopt" + +@@ -818,18 +763,13 @@ + convenience= + old_convenience= + deplibs= +- linkopts= ++ old_deplibs= ++ compiler_flags= ++ linker_flags= ++ dllsearchpath= ++ lib_search_path=`pwd` ++ inst_prefix_dir= + +- if test -n "$shlibpath_var"; then +- # get the directories listed in $shlibpath_var +- eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` +- else +- lib_search_path= +- fi +- # now prepend the system-specific ones +- eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\" +- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" +- + avoid_version=no + dlfiles= + dlprefiles= +@@ -839,9 +779,9 @@ + export_symbols_regex= + generated= + libobjs= +- link_against_libtool_libs= + ltlibs= + module=no ++ no_install=no + objs= + prefer_static_libs=no + preload=no +@@ -858,7 +798,7 @@ + # We need to know -static, to get the right output filenames. + for arg + do +- case "$arg" in ++ case $arg in + -all-static | -static) + if test "X$arg" = "X-all-static"; then + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then +@@ -887,17 +827,24 @@ + while test $# -gt 0; do + arg="$1" + shift ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ++ ;; ++ *) qarg=$arg ;; ++ esac ++ libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then +- case "$prev" in ++ case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + +- case "$prev" in ++ case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. +@@ -905,7 +852,7 @@ + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi +- case "$arg" in ++ case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then +@@ -934,6 +881,7 @@ + dlprefiles="$dlprefiles $arg" + fi + prev= ++ continue + ;; + esac + ;; +@@ -951,6 +899,11 @@ + prev= + continue + ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; + release) + release="-$arg" + prev= +@@ -958,7 +911,7 @@ + ;; + rpath | xrpath) + # We need an absolute path. +- case "$arg" in ++ case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 +@@ -979,17 +932,32 @@ + prev= + continue + ;; ++ xcompiler) ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ compile_command="$compile_command $qarg" ++ finalize_command="$finalize_command $qarg" ++ continue ++ ;; ++ xlinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $wl$qarg" ++ prev= ++ compile_command="$compile_command $wl$qarg" ++ finalize_command="$finalize_command $wl$qarg" ++ continue ++ ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac +- fi ++ fi # test -n $prev + + prevarg="$arg" + +- case "$arg" in ++ case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" +@@ -1026,7 +994,7 @@ + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then +- $echo "$modename: not more than one -exported-symbols argument allowed" ++ $echo "$modename: more than one -exported-symbols argument is not allowed" + exit 1 + fi + if test "X$arg" = "X-export-symbols"; then +@@ -1037,58 +1005,81 @@ + continue + ;; + ++ -inst-prefix-dir) ++ prev=inst_prefix ++ continue ++ ;; ++ ++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* ++ # so, if we see these flags be careful not to treat them like -L ++ -L[A-Z][A-Z]*:*) ++ case $with_gcc/$host in ++ no/*-*-irix* | no/*-*-nonstopux*) ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ ;; ++ esac ++ continue ++ ;; ++ + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. +- case "$dir" in ++ case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then +- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 +- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 +- absdir="$dir" ++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ++ exit 1 + fi + dir="$absdir" + ;; + esac +- case " $deplibs " in +- *" $arg "*) ;; +- *) deplibs="$deplibs $arg";; +- esac +- case " $lib_search_path " in +- *" $dir "*) ;; +- *) lib_search_path="$lib_search_path $dir";; ++ case "$deplibs " in ++ *" -L$dir "*) ;; ++ *) ++ deplibs="$deplibs -L$dir" ++ lib_search_path="$lib_search_path $dir" ++ ;; + esac +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2*) +- dllsearchdir=`cd "$dir" && pwd || echo "$dir"` +- case ":$dllsearchpath:" in +- ::) dllsearchpath="$dllsearchdir";; +- *":$dllsearchdir:"*) ;; +- *) dllsearchpath="$dllsearchpath:$dllsearchdir";; ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$dir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$dir";; + esac + ;; + esac ++ continue + ;; + + -l*) +- if test "$arg" = "-lc"; then +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*) +- # These systems don't actually have c library (as such) ++ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then ++ case $host in ++ *-*-cygwin* | *-*-pw32* | *-*-beos*) ++ # These systems don't actually have a C or math library (as such) + continue + ;; ++ *-*-mingw* | *-*-os2*) ++ # These systems don't actually have a C library (as such) ++ test "X$arg" = "X-lc" && continue ++ ;; ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc due to us having libc/libc_r. ++ test "X$arg" = "X-lc" && continue ++ ;; + esac +- elif test "$arg" = "-lm"; then +- case "$host" in +- *-*-cygwin* | *-*-beos*) +- # These systems don't actually have math library (as such) ++ elif test "X$arg" = "X-lc_r"; then ++ case $host in ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" ++ continue + ;; + + -module) +@@ -1096,6 +1087,25 @@ + continue + ;; + ++ -no-fast-install) ++ fast_install=no ++ continue ++ ;; ++ ++ -no-install) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ # The PATH hackery in wrapper scripts is required on Windows ++ # in order for the loader to find any dlls it needs. ++ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 ++ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 ++ fast_install=no ++ ;; ++ *) no_install=yes ;; ++ esac ++ continue ++ ;; ++ + -no-undefined) + allow_undefined=no + continue +@@ -1121,7 +1131,7 @@ + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. +- case "$dir" in ++ case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 +@@ -1136,11 +1146,11 @@ + ;; + + -static) +- # If we have no pic_flag, then this is the same as -all-static. +- if test -z "$pic_flag" && test -n "$link_static_flag"; then +- compile_command="$compile_command $link_static_flag" +- finalize_command="$finalize_command $link_static_flag" +- fi ++ # The effects of -static are defined in a previous loop. ++ # We used to do the same as -all-static on platforms that ++ # didn't have a PIC flag, but the assumption that the effects ++ # would be equivalent was wrong. It would break on at least ++ # Digital Unix and AIX. + continue + ;; + +@@ -1154,28 +1164,71 @@ + continue + ;; + ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Wl,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $wl$flag" ++ linker_flags="$linker_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Xlinker) ++ prev=xlinker ++ continue ++ ;; ++ + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + +- *.o | *.obj | *.a | *.lib) +- # A standard object. +- objs="$objs $arg" +- ;; +- +- *.lo) +- # A library object. ++ *.lo | *.$objext) ++ # A library or standard object. + if test "$prev" = dlfiles; then +- dlfiles="$dlfiles $arg" +- if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then ++ # This file was specified with -dlopen. ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $arg" + prev= + continue + else +@@ -1188,357 +1241,917 @@ + # Preload the old-style object. + dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` + prev= ++ else ++ case $arg in ++ *.lo) libobjs="$libobjs $arg" ;; ++ *) objs="$objs $arg" ;; ++ esac + fi +- libobjs="$libobjs $arg" ++ ;; ++ ++ *.$libext) ++ # An archive. ++ deplibs="$deplibs $arg" ++ old_deplibs="$old_deplibs $arg" ++ continue + ;; + + *.la) + # A libtool-controlled library. + +- dlname= +- libdir= +- library_names= +- old_library= +- +- # Check to see that this really is a libtool archive. +- if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ if test "$prev" = dlfiles; then ++ # This library was specified with -dlopen. ++ dlfiles="$dlfiles $arg" ++ prev= ++ elif test "$prev" = dlprefiles; then ++ # The library was specified with -dlpreopen. ++ dlprefiles="$dlprefiles $arg" ++ prev= + else +- $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 +- exit 1 ++ deplibs="$deplibs $arg" + fi ++ continue ++ ;; + +- # If the library was installed with an old release of libtool, +- # it will not redefine variable installed. +- installed=yes +- +- # Read the .la file +- # If there is no directory component, then add one. +- case "$arg" in +- */* | *\\*) . $arg ;; +- *) . ./$arg ;; ++ # Some other compiler argument. ++ *) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; + esac ++ ;; ++ esac # arg + +- # Get the name of the library we link against. +- linklib= +- for l in $old_library $library_names; do +- linklib="$l" +- done +- +- if test -z "$linklib"; then +- $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 +- exit 1 +- fi +- +- # Find the relevant object directory and library name. +- name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` +- +- if test "X$installed" = Xyes; then +- dir="$libdir" +- else +- dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$dir" = "X$arg"; then +- dir="$objdir" +- else +- dir="$dir/$objdir" +- fi +- fi ++ # Now actually substitute the argument into the commands. ++ if test -n "$arg"; then ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi ++ done # argument parsing loop + +- if test -n "$dependency_libs"; then +- # Extract -R and -L from dependency_libs +- temp_deplibs= +- for deplib in $dependency_libs; do +- case "$deplib" in +- -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'` +- case " $rpath $xrpath " in +- *" $temp_xrpath "*) ;; +- *) xrpath="$xrpath $temp_xrpath";; +- esac;; +- -L*) case "$compile_command $temp_deplibs " in +- *" $deplib "*) ;; +- *) temp_deplibs="$temp_deplibs $deplib";; +- esac +- temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'` +- case " $lib_search_path " in +- *" $temp_dir "*) ;; +- *) lib_search_path="$lib_search_path $temp_dir";; +- esac +- ;; +- *) temp_deplibs="$temp_deplibs $deplib";; +- esac +- done +- dependency_libs="$temp_deplibs" +- fi ++ if test -n "$prev"; then ++ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi + +- if test -z "$libdir"; then +- # It is a libtool convenience library, so add in its objects. +- convenience="$convenience $dir/$old_library" +- old_convenience="$old_convenience $dir/$old_library" +- deplibs="$deplibs$dependency_libs" +- compile_command="$compile_command $dir/$old_library$dependency_libs" +- finalize_command="$finalize_command $dir/$old_library$dependency_libs" +- continue +- fi ++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then ++ eval arg=\"$export_dynamic_flag_spec\" ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi + +- # This library was specified with -dlopen. +- if test "$prev" = dlfiles; then +- dlfiles="$dlfiles $arg" +- if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then +- # If there is no dlname, no dlopen support or we're linking statically, +- # we need to preload. +- prev=dlprefiles +- else +- # We should not create a dependency on this library, but we +- # may need any libraries it requires. +- compile_command="$compile_command$dependency_libs" +- finalize_command="$finalize_command$dependency_libs" +- prev= +- continue +- fi +- fi ++ # calculate the name of the file, without its directory ++ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` ++ libobjs_save="$libobjs" + +- # The library was specified with -dlpreopen. +- if test "$prev" = dlprefiles; then +- # Prefer using a static library (so that no silly _DYNAMIC symbols +- # are required to link). +- if test -n "$old_library"; then +- dlprefiles="$dlprefiles $dir/$old_library" +- else +- dlprefiles="$dlprefiles $dir/$linklib" +- fi +- prev= +- fi ++ if test -n "$shlibpath_var"; then ++ # get the directories listed in $shlibpath_var ++ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ else ++ shlib_search_path= ++ fi ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + +- if test -n "$library_names" && +- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then +- link_against_libtool_libs="$link_against_libtool_libs $arg" +- if test -n "$shlibpath_var"; then +- # Make sure the rpath contains only unique directories. +- case "$temp_rpath " in +- *" $dir "*) ;; +- *) temp_rpath="$temp_rpath $dir" ;; +- esac +- fi ++ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$output_objdir" = "X$output"; then ++ output_objdir="$objdir" ++ else ++ output_objdir="$output_objdir/$objdir" ++ fi ++ # Create the object directory. ++ if test ! -d $output_objdir; then ++ $show "$mkdir $output_objdir" ++ $run $mkdir $output_objdir ++ status=$? ++ if test $status -ne 0 && test ! -d $output_objdir; then ++ exit $status ++ fi ++ fi + +- # We need an absolute path. +- case "$dir" in +- [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;; +- *) +- absdir=`cd "$dir" && pwd` +- if test -z "$absdir"; then +- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 +- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 +- absdir="$dir" +- fi +- ;; +- esac +- +- # This is the magic to use -rpath. +- # Skip directories that are in the system default run-time +- # search path, unless they have been requested with -R. +- case " $sys_lib_dlsearch_path " in +- *" $absdir "*) ;; +- *) +- case "$compile_rpath " in +- *" $absdir "*) ;; +- *) compile_rpath="$compile_rpath $absdir" +- esac +- ;; +- esac ++ # Determine the type of output ++ case $output in ++ "") ++ $echo "$modename: you must specify an output file" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ *.$libext) linkmode=oldlib ;; ++ *.lo | *.$objext) linkmode=obj ;; ++ *.la) linkmode=lib ;; ++ *) linkmode=prog ;; # Anything else should be a program. ++ esac + +- case " $sys_lib_dlsearch_path " in +- *" $libdir "*) ;; ++ specialdeplibs= ++ libs= ++ # Find all interdependent deplibs by searching for libraries ++ # that are linked more than once (e.g. -la -lb -la) ++ for deplib in $deplibs; do ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ libs="$libs $deplib" ++ done ++ deplibs= ++ newdependency_libs= ++ newlib_search_path= ++ need_relink=no # whether we're linking any uninstalled libtool libraries ++ notinst_deplibs= # not-installed libtool libraries ++ notinst_path= # paths that contain not-installed libtool libraries ++ case $linkmode in ++ lib) ++ passes="conv link" ++ for file in $dlfiles $dlprefiles; do ++ case $file in ++ *.la) ;; + *) +- case "$finalize_rpath " in +- *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" +- esac ++ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 ++ exit 1 + ;; + esac +- +- lib_linked=yes +- case "$hardcode_action" in +- immediate | unsupported) +- if test "$hardcode_direct" = no; then +- compile_command="$compile_command $dir/$linklib" +- deplibs="$deplibs $dir/$linklib" +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2*) +- dllsearchdir=`cd "$dir" && pwd || echo "$dir"` +- if test -n "$dllsearchpath"; then +- dllsearchpath="$dllsearchpath:$dllsearchdir" +- else +- dllsearchpath="$dllsearchdir" +- fi +- ;; +- esac +- elif test "$hardcode_minus_L" = no; then +- case "$host" in +- *-*-sunos*) +- compile_shlibpath="$compile_shlibpath$dir:" +- ;; +- esac +- case "$compile_command " in +- *" -L$dir "*) ;; +- *) compile_command="$compile_command -L$dir";; +- esac +- compile_command="$compile_command -l$name" +- deplibs="$deplibs -L$dir -l$name" +- elif test "$hardcode_shlibpath_var" = no; then +- case ":$compile_shlibpath:" in +- *":$dir:"*) ;; +- *) compile_shlibpath="$compile_shlibpath$dir:";; +- esac +- compile_command="$compile_command -l$name" +- deplibs="$deplibs -l$name" ++ done ++ ;; ++ prog) ++ compile_deplibs= ++ finalize_deplibs= ++ alldeplibs=no ++ newdlfiles= ++ newdlprefiles= ++ passes="conv scan dlopen dlpreopen link" ++ ;; ++ *) passes="conv" ++ ;; ++ esac ++ for pass in $passes; do ++ if test $linkmode = prog; then ++ # Determine which files to process ++ case $pass in ++ dlopen) ++ libs="$dlfiles" ++ save_deplibs="$deplibs" # Collect dlpreopened libraries ++ deplibs= ++ ;; ++ dlpreopen) libs="$dlprefiles" ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ esac ++ fi ++ for deplib in $libs; do ++ lib= ++ found=no ++ case $deplib in ++ -l*) ++ if test $linkmode = oldlib && test $linkmode = obj; then ++ $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 ++ continue ++ fi ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` ++ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ # Search the libtool library ++ lib="$searchdir/lib${name}.la" ++ if test -f "$lib"; then ++ found=yes ++ break ++ fi ++ done ++ if test "$found" != yes; then ++ # deplib doesn't seem to be a libtool library ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" + else +- lib_linked=no ++ deplibs="$deplib $deplibs" ++ test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" + fi ++ continue ++ fi ++ ;; # -l ++ -L*) ++ case $linkmode in ++ lib) ++ deplibs="$deplib $deplibs" ++ test $pass = conv && continue ++ newdependency_libs="$deplib $newdependency_libs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; +- +- relink) +- if test "$hardcode_direct" = yes; then +- compile_command="$compile_command $absdir/$linklib" +- deplibs="$deplibs $absdir/$linklib" +- elif test "$hardcode_minus_L" = yes; then +- case "$compile_command " in +- *" -L$absdir "*) ;; +- *) compile_command="$compile_command -L$absdir";; +- esac +- compile_command="$compile_command -l$name" +- deplibs="$deplibs -L$absdir -l$name" +- elif test "$hardcode_shlibpath_var" = yes; then +- case ":$compile_shlibpath:" in +- *":$absdir:"*) ;; +- *) compile_shlibpath="$compile_shlibpath$absdir:";; +- esac +- compile_command="$compile_command -l$name" +- deplibs="$deplibs -l$name" ++ prog) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ if test $pass = scan; then ++ deplibs="$deplib $deplibs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + else +- lib_linked=no ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" + fi + ;; +- + *) +- lib_linked=no ++ $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 + ;; +- esac ++ esac # linkmode ++ continue ++ ;; # -L ++ -R*) ++ if test $pass = link; then ++ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` ++ # Make sure the xrpath contains only unique directories. ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ fi ++ deplibs="$deplib $deplibs" ++ continue ++ ;; ++ *.la) lib="$deplib" ;; ++ *.$libext) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ case $linkmode in ++ lib) ++ if test "$deplibs_check_method" != pass_all; then ++ echo ++ echo "*** Warning: Trying to link with static lib archive $deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because the file extensions .$libext of this argument makes me believe" ++ echo "*** that it is just a static archive that I should not used here." ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the" ++ echo "*** static library $deplib is not portable!" ++ deplibs="$deplib $deplibs" ++ fi ++ continue ++ ;; ++ prog) ++ if test $pass != link; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ continue ++ ;; ++ esac # linkmode ++ ;; # *.$libext ++ *.lo | *.$objext) ++ if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlopen support or we're linking statically, ++ # we need to preload. ++ newdlprefiles="$newdlprefiles $deplib" ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ newdlfiles="$newdlfiles $deplib" ++ fi ++ continue ++ ;; ++ %DEPLIBS%) ++ alldeplibs=yes ++ continue ++ ;; ++ esac # case $deplib ++ if test $found = yes || test -f "$lib"; then : ++ else ++ $echo "$modename: cannot find the library \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # Check to see that this really is a libtool archive. ++ if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ ++ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$ladir" = "X$lib" && ladir="." ++ ++ dlname= ++ dlopen= ++ dlpreopen= ++ libdir= ++ library_names= ++ old_library= ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variable installed. ++ installed=yes ++ ++ # Read the .la file ++ case $lib in ++ */* | *\\*) . $lib ;; ++ *) . ./$lib ;; ++ esac ++ ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan" || ++ { test $linkmode = oldlib && test $linkmode = obj; }; then ++ # Add dl[pre]opened files of deplib ++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen" ++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ fi + +- if test "$lib_linked" != yes; then +- $echo "$modename: configuration error: unsupported hardcode properties" ++ if test $pass = conv; then ++ # Only check for convenience libraries ++ deplibs="$lib $deplibs" ++ if test -z "$libdir"; then ++ if test -z "$old_library"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ # It is a libtool convenience library, so add in its objects. ++ convenience="$convenience $ladir/$objdir/$old_library" ++ old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ elif test $linkmode != prog && test $linkmode != lib; then ++ $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit 1 + fi ++ continue ++ fi # $pass = conv + +- # Finalize command for both is simple: just hardcode it. +- if test "$hardcode_direct" = yes; then +- finalize_command="$finalize_command $libdir/$linklib" +- elif test "$hardcode_minus_L" = yes; then +- case "$finalize_command " in +- *" -L$libdir "*) ;; +- *) finalize_command="$finalize_command -L$libdir";; +- esac +- finalize_command="$finalize_command -l$name" +- elif test "$hardcode_shlibpath_var" = yes; then +- case ":$finalize_shlibpath:" in +- *":$libdir:"*) ;; +- *) finalize_shlibpath="$finalize_shlibpath$libdir:";; +- esac +- finalize_command="$finalize_command -l$name" ++ # Get the name of the library we link against. ++ linklib= ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ if test -z "$linklib"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # This library was specified with -dlopen. ++ if test $pass = dlopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 ++ exit 1 ++ fi ++ if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlname, no dlopen support or we're linking ++ # statically, we need to preload. ++ dlprefiles="$dlprefiles $lib" + else +- # We cannot seem to hardcode it, guess we'll fake it. +- case "$finalize_command " in +- *" -L$dir "*) ;; +- *) finalize_command="$finalize_command -L$libdir";; +- esac +- finalize_command="$finalize_command -l$name" ++ newdlfiles="$newdlfiles $lib" ++ fi ++ continue ++ fi # $pass = dlopen ++ ++ # We need an absolute path. ++ case $ladir in ++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; ++ *) ++ abs_ladir=`cd "$ladir" && pwd` ++ if test -z "$abs_ladir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 ++ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 ++ abs_ladir="$ladir" ++ fi ++ ;; ++ esac ++ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ ++ # Find the relevant object directory and library name. ++ if test "X$installed" = Xyes; then ++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ $echo "$modename: warning: library \`$lib' was moved." 1>&2 ++ dir="$ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ else ++ dir="$libdir" ++ absdir="$libdir" + fi + else +- # Transform directly to old archives if we don't build new libraries. +- if test -n "$pic_flag" && test -z "$old_library"; then +- $echo "$modename: cannot find static library for \`$arg'" 1>&2 ++ dir="$ladir/$objdir" ++ absdir="$abs_ladir/$objdir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ fi # $installed = yes ++ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ ++ # This library was specified with -dlpreopen. ++ if test $pass = dlpreopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit 1 + fi ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ newdlprefiles="$newdlprefiles $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ newdlprefiles="$newdlprefiles $dir/$dlname" ++ else ++ newdlprefiles="$newdlprefiles $dir/$linklib" ++ fi ++ fi # $pass = dlpreopen + +- # Here we assume that one of hardcode_direct or hardcode_minus_L +- # is not unsupported. This is valid on all known static and +- # shared platforms. +- if test "$hardcode_direct" != unsupported; then +- test -n "$old_library" && linklib="$old_library" +- compile_command="$compile_command $dir/$linklib" +- finalize_command="$finalize_command $dir/$linklib" ++ if test -z "$libdir"; then ++ # Link the convenience library ++ if test $linkmode = lib; then ++ deplibs="$dir/$old_library $deplibs" ++ elif test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$dir/$old_library $compile_deplibs" ++ finalize_deplibs="$dir/$old_library $finalize_deplibs" + else +- case "$compile_command " in +- *" -L$dir "*) ;; +- *) compile_command="$compile_command -L$dir";; ++ deplibs="$lib $deplibs" ++ fi ++ continue ++ fi ++ ++ if test $linkmode = prog && test $pass != link; then ++ newlib_search_path="$newlib_search_path $ladir" ++ deplibs="$lib $deplibs" ++ ++ linkalldeplibs=no ++ if test "$link_all_deplibs" != no || test -z "$library_names" || ++ test "$build_libtool_libs" = no; then ++ linkalldeplibs=yes ++ fi ++ ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac +- compile_command="$compile_command -l$name" +- case "$finalize_command " in +- *" -L$dir "*) ;; +- *) finalize_command="$finalize_command -L$dir";; ++ # Need to link against all dependency_libs? ++ if test $linkalldeplibs = yes; then ++ deplibs="$deplib $deplibs" ++ else ++ # Need to hardcode shared library paths ++ # or/and link against static libraries ++ newdependency_libs="$deplib $newdependency_libs" ++ fi ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done # for deplib ++ continue ++ fi # $linkmode = prog... ++ ++ link_static=no # Whether the deplib will be linked statically ++ if test -n "$library_names" && ++ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then ++ # Link against this shared library ++ ++ if test "$linkmode,$pass" = "prog,link" || ++ { test $linkmode = lib && test $hardcode_into_libs = yes; }; then ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) compile_rpath="$compile_rpath $absdir" ++ esac ++ ;; + esac +- finalize_command="$finalize_command -l$name" ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ++ esac ++ ;; ++ esac ++ if test $linkmode = prog; then ++ # We need to hardcode the library path ++ if test -n "$shlibpath_var"; then ++ # Make sure the rpath contains only unique directories. ++ case "$temp_rpath " in ++ *" $dir "*) ;; ++ *" $absdir "*) ;; ++ *) temp_rpath="$temp_rpath $dir" ;; ++ esac ++ fi ++ fi ++ fi # $linkmode,$pass = prog,link... ++ ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue + fi +- fi + +- # Add in any libraries that this one depends upon. +- compile_command="$compile_command$dependency_libs" +- finalize_command="$finalize_command$dependency_libs" +- continue +- ;; ++ if test "$installed" = no; then ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=yes ++ fi ++ ++ if test -n "$old_archive_from_expsyms_cmds"; then ++ # figure out the soname ++ set dummy $library_names ++ realname="$2" ++ shift; shift ++ libname=`eval \\$echo \"$libname_spec\"` ++ # use dlname if we got it. it's perfectly good, no? ++ if test -n "$dlname"; then ++ soname="$dlname" ++ elif test -n "$soname_spec"; then ++ # bleh windows ++ case $host in ++ *cygwin*) ++ major=`expr $current - $age` ++ versuffix="-$major" ++ ;; ++ esac ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi + +- # Some other compiler argument. +- *) +- # Unknown arguments in both finalize_command and compile_command need +- # to be aesthetically quoted because they are evaled later. +- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) +- arg="\"$arg\"" +- ;; +- esac +- ;; +- esac ++ # Make a new name for the extract_expsyms_cmds to use ++ soroot="$soname" ++ soname=`echo $soroot | ${SED} -e 's/^.*\///'` ++ newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + +- # Now actually substitute the argument into the commands. +- if test -n "$arg"; then +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- fi +- done ++ # If the library has no export list, then create one now ++ if test -f "$output_objdir/$soname-def"; then : ++ else ++ $show "extracting exported symbol list from \`$soname'" ++ save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$extract_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi + +- if test -n "$prev"; then +- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 +- $echo "$help" 1>&2 +- exit 1 +- fi ++ # Create $newlib ++ if test -f "$output_objdir/$newlib"; then :; else ++ $show "generating import library for \`$soname'" ++ save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$old_archive_from_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ # make sure the library variables are pointing to the new library ++ dir=$output_objdir ++ linklib=$newlib ++ fi # test -n $old_archive_from_expsyms_cmds ++ ++ if test $linkmode = prog || test "$mode" != relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ lib_linked=yes ++ case $hardcode_action in ++ immediate | unsupported) ++ if test "$hardcode_direct" = no; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = no; then ++ case $host in ++ *-*-sunos*) add_shlibpath="$dir" ;; ++ esac ++ add_dir="-L$dir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = no; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ relink) ++ if test "$hardcode_direct" = yes; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$dir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ *) lib_linked=no ;; ++ esac + +- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then +- eval arg=\"$export_dynamic_flag_spec\" +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- fi ++ if test "$lib_linked" != yes; then ++ $echo "$modename: configuration error: unsupported hardcode properties" ++ exit 1 ++ fi + +- oldlibs= +- # calculate the name of the file, without its directory +- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` +- libobjs_save="$libobjs" ++ if test -n "$add_shlibpath"; then ++ case :$compile_shlibpath: in ++ *":$add_shlibpath:"*) ;; ++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ esac ++ fi ++ if test $linkmode = prog; then ++ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" ++ test -n "$add" && compile_deplibs="$add $compile_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ if test "$hardcode_direct" != yes && \ ++ test "$hardcode_minus_L" != yes && \ ++ test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ fi ++ fi ++ fi + +- case "$output" in +- "") +- $echo "$modename: you must specify an output file" 1>&2 +- $echo "$help" 1>&2 +- exit 1 +- ;; ++ if test $linkmode = prog || test "$mode" = relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ # Finalize command for both is simple: just hardcode it. ++ if test "$hardcode_direct" = yes; then ++ add="$libdir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$libdir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ add="-l$name" ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ add_dir="-L$libdir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ fi + +- *.a | *.lib) +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link libtool libraries into archives" 1>&2 +- exit 1 ++ if test $linkmode = prog; then ++ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" ++ test -n "$add" && finalize_deplibs="$add $finalize_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ fi ++ fi ++ elif test $linkmode = prog; then ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ ++ # Try to link the static library ++ # Here we assume that one of hardcode_direct or hardcode_minus_L ++ # is not unsupported. This is valid on all known static and ++ # shared platforms. ++ if test "$hardcode_direct" != unsupported; then ++ test -n "$old_library" && linklib="$old_library" ++ compile_deplibs="$dir/$linklib $compile_deplibs" ++ finalize_deplibs="$dir/$linklib $finalize_deplibs" ++ else ++ compile_deplibs="-l$name -L$dir $compile_deplibs" ++ finalize_deplibs="-l$name -L$dir $finalize_deplibs" ++ fi ++ elif test "$build_libtool_libs" = yes; then ++ # Not a shared library ++ if test "$deplibs_check_method" != pass_all; then ++ # We're trying link a shared library against a static one ++ # but the system doesn't support it. ++ ++ # Just print a warning and add the library to dependency_libs so ++ # that the program can be linked against the static library. ++ echo ++ echo "*** Warning: This system can not link to static lib archive $lib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ if test "$module" = yes; then ++ echo "*** But as you try to build a module library, libtool will still create " ++ echo "*** a static module, that should work as long as the dlopening application" ++ echo "*** is linked with the -dlopen flag to resolve symbols at runtime." ++ if test -z "$global_symbol_pipe"; then ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ else ++ convenience="$convenience $dir/$old_library" ++ old_convenience="$old_convenience $dir/$old_library" ++ deplibs="$dir/$old_library $deplibs" ++ link_static=yes ++ fi ++ fi # link shared/static library? ++ ++ if test $linkmode = lib; then ++ if test -n "$dependency_libs" && ++ { test $hardcode_into_libs != yes || test $build_old_libs = yes || ++ test $link_static = yes; }; then ++ # Extract -R from dependency_libs ++ temp_deplibs= ++ for libdir in $dependency_libs; do ++ case $libdir in ++ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` ++ case " $xrpath " in ++ *" $temp_xrpath "*) ;; ++ *) xrpath="$xrpath $temp_xrpath";; ++ esac;; ++ *) temp_deplibs="$temp_deplibs $libdir";; ++ esac ++ done ++ dependency_libs="$temp_deplibs" ++ fi ++ ++ newlib_search_path="$newlib_search_path $absdir" ++ # Link against this library ++ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" ++ # ... and its dependency_libs ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ newdependency_libs="$deplib $newdependency_libs" ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ ++ if test $link_all_deplibs != no; then ++ # Add the search paths of all dependency libraries ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) path="$deplib" ;; ++ *.la) ++ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$deplib" && dir="." ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 ++ absdir="$dir" ++ fi ++ ;; ++ esac ++ if grep "^installed=no" $deplib > /dev/null; then ++ path="-L$absdir/$objdir" ++ else ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ if test "$absdir" != "$libdir"; then ++ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 ++ fi ++ path="-L$absdir" ++ fi ++ ;; ++ *) continue ;; ++ esac ++ case " $deplibs " in ++ *" $path "*) ;; ++ *) deplibs="$deplibs $path" ;; ++ esac ++ done ++ fi # link_all_deplibs != no ++ fi # linkmode = lib ++ done # for deplib in $libs ++ if test $pass = dlpreopen; then ++ # Link the dlpreopened libraries before other libraries ++ for deplib in $save_deplibs; do ++ deplibs="$deplib $deplibs" ++ done + fi ++ if test $pass != dlopen; then ++ test $pass != scan && dependency_libs="$newdependency_libs" ++ if test $pass != conv; then ++ # Make sure lib_search_path contains only unique directories. ++ lib_search_path= ++ for dir in $newlib_search_path; do ++ case "$lib_search_path " in ++ *" $dir "*) ;; ++ *) lib_search_path="$lib_search_path $dir" ;; ++ esac ++ done ++ newlib_search_path= ++ fi + +- if test -n "$deplibs"; then +- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ++ if test "$linkmode,$pass" != "prog,link"; then ++ vars="deplibs" ++ else ++ vars="compile_deplibs finalize_deplibs" ++ fi ++ for var in $vars dependency_libs; do ++ # Add libraries to $var in reverse order ++ eval tmp_libs=\"\$$var\" ++ new_libs= ++ for deplib in $tmp_libs; do ++ case $deplib in ++ -L*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $specialdeplibs " in ++ *" $deplib "*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$deplib $new_libs" ;; ++ esac ++ ;; ++ esac ++ ;; ++ esac ++ done ++ tmp_libs= ++ for deplib in $new_libs; do ++ case $deplib in ++ -L*) ++ case " $tmp_libs " in ++ *" $deplib "*) ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ done ++ eval $var=\"$tmp_libs\" ++ done # for var + fi ++ if test "$pass" = "conv" && ++ { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then ++ libs="$deplibs" # reset libs ++ deplibs= ++ fi ++ done # for pass ++ if test $linkmode = prog; then ++ dlfiles="$newdlfiles" ++ dlprefiles="$newdlprefiles" ++ fi + ++ case $linkmode in ++ oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi +@@ -1566,11 +2179,12 @@ + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" ++ objs="$objs$old_deplibs" + ;; + +- *.la) ++ lib) + # Make sure we only generate libraries of the form `libNAME.la'. +- case "$outputname" in ++ case $outputname in + lib*) + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval libname=\"$libname_spec\" +@@ -1591,26 +2205,20 @@ + ;; + esac + +- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$output_objdir" = "X$output"; then +- output_objdir="$objdir" +- else +- output_objdir="$output_objdir/$objdir" +- fi +- + if test -n "$objs"; then +- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 +- exit 1 +- fi +- +- # How the heck are we supposed to write a wrapper for a shared library? +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2 +- exit 1 ++ if test "$deplibs_check_method" != pass_all; then ++ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 ++ exit 1 ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the non-libtool" ++ echo "*** objects $objs is not portable!" ++ libobjs="$libobjs $objs" ++ fi + fi + +- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then +- $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2 ++ if test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 + fi + + set dummy $rpath +@@ -1628,7 +2236,6 @@ + build_libtool_libs=convenience + build_old_libs=yes + fi +- dependency_libs="$deplibs" + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 +@@ -1640,7 +2247,7 @@ + else + + # Parse the version information argument. +- IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' ++ save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + +@@ -1655,8 +2262,8 @@ + age="$4" + + # Check that each of the things are valid numbers. +- case "$current" in +- 0 | [1-9] | [1-9][0-9]*) ;; ++ case $current in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +@@ -1664,8 +2271,8 @@ + ;; + esac + +- case "$revision" in +- 0 | [1-9] | [1-9][0-9]*) ;; ++ case $revision in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +@@ -1673,8 +2280,8 @@ + ;; + esac + +- case "$age" in +- 0 | [1-9] | [1-9][0-9]*) ;; ++ case $age in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +@@ -1692,21 +2299,49 @@ + major= + versuffix= + verstring= +- case "$version_type" in ++ case $version_type in + none) ;; + +- irix) ++ darwin) ++ # Like Linux, but with the current version available in ++ # verstring for coding it into the library header ++ major=.`expr $current - $age` ++ versuffix="$major.$age.$revision" ++ # Darwin ld doesn't like 0 for these options... ++ minor_current=`expr $current + 1` ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ++ ;; ++ ++ freebsd-aout) ++ major=".$current" ++ versuffix=".$current.$revision"; ++ ;; ++ ++ freebsd-elf) ++ major=".$current" ++ versuffix=".$current"; ++ ;; ++ ++ irix | nonstopux) + major=`expr $current - $age + 1` +- versuffix="$major.$revision" +- verstring="sgi$major.$revision" ++ ++ case $version_type in ++ nonstopux) verstring_prefix=nonstopux ;; ++ *) verstring_prefix=sgi ;; ++ esac ++ verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test $loop != 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` +- verstring="sgi$major.$iface:$verstring" ++ verstring="$verstring_prefix$major.$iface:$verstring" + done ++ ++ # Before this point, $major must not contain `.'. ++ major=.$major ++ versuffix="$major.$revision" + ;; + + linux) +@@ -1715,7 +2350,7 @@ + ;; + + osf) +- major=`expr $current - $age` ++ major=.`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + +@@ -1736,21 +2371,11 @@ + versuffix=".$current.$revision" + ;; + +- freebsd-aout) +- major=".$current" +- versuffix=".$current.$revision"; +- ;; +- +- freebsd-elf) +- major=".$current" +- versuffix=".$current"; +- ;; +- + windows) +- # Like Linux, but with '-' rather than '.', since we only +- # want one extension on Windows 95. ++ # Use '-' rather than '.', since we only want one ++ # extension on DOS 8.3 filesystems. + major=`expr $current - $age` +- versuffix="-$major-$age-$revision" ++ versuffix="-$major" + ;; + + *) +@@ -1764,6 +2389,16 @@ + if test -z "$vinfo" && test -n "$release"; then + major= + verstring="0.0" ++ case $version_type in ++ darwin) ++ # we can't check for "0.0" in archive_cmds due to quoting ++ # problems, so we reset it completely ++ verstring="" ++ ;; ++ *) ++ verstring="0.0" ++ ;; ++ esac + if test "$need_version" = no; then + versuffix= + else +@@ -1777,7 +2412,7 @@ + versuffix= + verstring="" + fi +- ++ + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then +@@ -1785,34 +2420,16 @@ + build_libtool_libs=no + build_old_libs=yes + fi +- else +- # Don't allow undefined symbols. +- allow_undefined_flag="$no_undefined_flag" +- fi +- +- dependency_libs="$deplibs" +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*) +- # these systems don't actually have a c library (as such)! +- ;; +- *) +- # Add libc to deplibs on all other systems. +- deplibs="$deplibs -lc" +- ;; +- esac ++ else ++ # Don't allow undefined symbols. ++ allow_undefined_flag="$no_undefined_flag" ++ fi + fi + +- # Create the output directory, or remove our outputs if we need to. +- if test -d $output_objdir; then ++ if test "$mode" != relink; then ++ # Remove our outputs. + $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" + $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* +- else +- $show "$mkdir $output_objdir" +- $run $mkdir $output_objdir +- status=$? +- if test $status -ne 0 && test ! -d $output_objdir; then +- exit $status +- fi + fi + + # Now set the variables for building old libraries. +@@ -1823,7 +2440,73 @@ + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + ++ # Eliminate all temporary directories. ++ for path in $notinst_path; do ++ lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` ++ deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` ++ dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` ++ done ++ ++ if test -n "$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ temp_xrpath= ++ for libdir in $xrpath; do ++ temp_xrpath="$temp_xrpath -R$libdir" ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ if test $hardcode_into_libs != yes || test $build_old_libs = yes; then ++ dependency_libs="$temp_xrpath $dependency_libs" ++ fi ++ fi ++ ++ # Make sure dlfiles contains only unique files that won't be dlpreopened ++ old_dlfiles="$dlfiles" ++ dlfiles= ++ for lib in $old_dlfiles; do ++ case " $dlprefiles $dlfiles " in ++ *" $lib "*) ;; ++ *) dlfiles="$dlfiles $lib" ;; ++ esac ++ done ++ ++ # Make sure dlprefiles contains only unique files ++ old_dlprefiles="$dlprefiles" ++ dlprefiles= ++ for lib in $old_dlprefiles; do ++ case "$dlprefiles " in ++ *" $lib "*) ;; ++ *) dlprefiles="$dlprefiles $lib" ;; ++ esac ++ done ++ + if test "$build_libtool_libs" = yes; then ++ if test -n "$rpath"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) ++ # these systems don't actually have a c library (as such)! ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C library is in the System framework ++ deplibs="$deplibs -framework System" ++ ;; ++ *-*-netbsd*) ++ # Don't link with libc until the a.out ld.so is fixed. ++ ;; ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc due to us having libc/libc_r. ++ ;; ++ *) ++ # Add libc to deplibs on all other systems if necessary. ++ if test $build_libtool_need_lc = "yes"; then ++ deplibs="$deplibs -lc" ++ fi ++ ;; ++ esac ++ fi ++ + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname +@@ -1838,7 +2521,7 @@ + major="" + newdeplibs= + droppeddeps=no +- case "$deplibs_check_method" in ++ case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check +@@ -1863,7 +2546,7 @@ + for i in $deplibs; do + name="`expr $i : '-l\(.*\)'`" + # If $name is empty we are operating on a -L argument. +- if test "$name" != "" ; then ++ if test -n "$name" && test "$name" != "0"; then + libname=`eval \\$echo \"$libname_spec\"` + deplib_matches=`eval \\$echo \"$library_names_spec\"` + set dummy $deplib_matches +@@ -1873,22 +2556,24 @@ + else + droppeddeps=yes + echo +- echo "*** Warning: This library needs some functionality provided by $i." ++ echo "*** Warning: dynamic linker does not accept needed library $i." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have." ++ echo "*** shared version of the library, which I believe you do not have" ++ echo "*** because a test_compile did reveal that the linker did not use it for" ++ echo "*** its dynamic dependency list that programs get resolved with at runtime." + fi + else + newdeplibs="$newdeplibs $i" + fi + done + else +- # Error occured in the first compile. Let's try to salvage the situation: +- # Compile a seperate program for each library. ++ # Error occured in the first compile. Let's try to salvage ++ # the situation: Compile a separate program for each library. + for i in $deplibs; do + name="`expr $i : '-l\(.*\)'`" + # If $name is empty we are operating on a -L argument. +- if test "$name" != "" ; then ++ if test -n "$name" && test "$name" != "0"; then + $rm conftest + $CC -o conftest conftest.c $i + # Did it work? +@@ -1903,10 +2588,12 @@ + else + droppeddeps=yes + echo +- echo "*** Warning: This library needs some functionality provided by $i." ++ echo "*** Warning: dynamic linker does not accept needed library $i." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have." ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because a test_compile did reveal that the linker did not use this one" ++ echo "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + else + droppeddeps=yes +@@ -1924,19 +2611,19 @@ + ;; + file_magic*) + set dummy $deplibs_check_method +- file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`" ++ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name="`expr $a_deplib : '-l\(.*\)'`" + # If $name is empty we are operating on a -L argument. +- if test "$name" != "" ; then ++ if test -n "$name" && test "$name" != "0"; then + libname=`eval \\$echo \"$libname_spec\"` +- for i in $lib_search_path; do ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null \ + | grep " -> " >/dev/null; then +- continue ++ continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. +@@ -1945,14 +2632,14 @@ + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do +- potliblink=`ls -ld $potlib | sed 's/.* -> //'` +- case "$potliblink" in ++ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` ++ case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ +- | sed 10q \ ++ | ${SED} 10q \ + | egrep "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" +@@ -1963,10 +2650,59 @@ + if test -n "$a_deplib" ; then + droppeddeps=yes + echo +- echo "*** Warning: This library needs some functionality provided by $a_deplib." ++ echo "*** Warning: linker path does not have real file for library $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ echo "*** with $libname but no candidates were found. (...for file magic test)" ++ else ++ echo "*** with $libname and none of the candidates passed a file format test" ++ echo "*** using a file magic. Last file checked: $potlib" ++ fi ++ fi ++ else ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ fi ++ done # Gone through all deplibs. ++ ;; ++ match_pattern*) ++ set dummy $deplibs_check_method ++ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` ++ for a_deplib in $deplibs; do ++ name="`expr $a_deplib : '-l\(.*\)'`" ++ # If $name is empty we are operating on a -L argument. ++ if test -n "$name" && test "$name" != "0"; then ++ libname=`eval \\$echo \"$libname_spec\"` ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ for potent_lib in $potential_libs; do ++ potlib="$potent_lib" # see symlink-check below in file_magic test ++ if eval echo \"$potent_lib\" 2>/dev/null \ ++ | ${SED} 10q \ ++ | egrep "$match_pattern_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ echo ++ echo "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have." ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ echo "*** with $libname but no candidates were found. (...for regex pattern test)" ++ else ++ echo "*** with $libname and none of the candidates passed a file format test" ++ echo "*** using a regex pattern. Last file checked: $potlib" ++ fi + fi + else + # Add a -L argument. +@@ -1996,6 +2732,13 @@ + libname=$libname_save + name=$name_save + ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ ;; ++ esac ++ + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo +@@ -2021,6 +2764,21 @@ + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." ++ ++ if test $allow_undefined = no; then ++ echo ++ echo "*** Since this library must not contain undefined symbols," ++ echo "*** because either the platform does not support them or" ++ echo "*** it was explicitly requested with -no-undefined," ++ echo "*** libtool will only create a static version of it." ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi + fi + fi + # Done checking deplibs! +@@ -2031,9 +2789,64 @@ + library_names= + old_library= + dlname= +- ++ + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then ++ if test $hardcode_into_libs = yes; then ++ # Hardcode the library paths ++ hardcode_libdirs= ++ dep_rpath= ++ rpath="$finalize_rpath" ++ test "$mode" != relink && rpath="$compile_rpath$rpath" ++ for libdir in $rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ dep_rpath="$dep_rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval dep_rpath=\"$hardcode_libdir_flag_spec\" ++ fi ++ if test -n "$runpath_var" && test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" ++ fi ++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" ++ fi ++ ++ shlibpath="$finalize_shlibpath" ++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ if test -n "$shlibpath"; then ++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" ++ fi ++ + # Get the real and link names of the library. + eval library_names=\"$library_names_spec\" + set dummy $library_names +@@ -2045,6 +2858,7 @@ + else + soname="$realname" + fi ++ test -z "$dlname" && dlname=$soname + + lib="$output_objdir/$realname" + for link +@@ -2079,7 +2893,7 @@ + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + eval cmds=\"$export_symbols_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -2116,7 +2930,7 @@ + + for xlib in $convenience; do + # Extract the objects. +- case "$xlib" in ++ case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac +@@ -2141,16 +2955,32 @@ + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" +- linkopts="$linkopts $flag" ++ linker_flags="$linker_flags $flag" ++ fi ++ ++ # Make a backup of the uninstalled library when relinking ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval cmds=\"$archive_expsym_cmds\" + else ++ save_deplibs="$deplibs" ++ for conv in $convenience; do ++ tmp_deplibs= ++ for test_deplib in $deplibs; do ++ if test "$test_deplib" != "$conv"; then ++ tmp_deplibs="$tmp_deplibs $test_deplib" ++ fi ++ done ++ deplibs="$tmp_deplibs" ++ done + eval cmds=\"$archive_cmds\" ++ deplibs="$save_deplibs" + fi +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -2158,6 +2988,12 @@ + done + IFS="$save_ifs" + ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? ++ exit 0 ++ fi ++ + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then +@@ -2174,12 +3010,7 @@ + fi + ;; + +- *.lo | *.o | *.obj) +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link libtool libraries into objects" 1>&2 +- exit 1 +- fi +- ++ obj) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 + fi +@@ -2204,9 +3035,9 @@ + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + +- case "$output" in ++ case $output in + *.lo) +- if test -n "$objs"; then ++ if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit 1 + fi +@@ -2230,7 +3061,7 @@ + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec +- wl= ++ wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then +@@ -2249,7 +3080,7 @@ + + for xlib in $convenience; do + # Extract the objects. +- case "$xlib" in ++ case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac +@@ -2273,11 +3104,11 @@ + fi + + # Create the old-style object. +- reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ++ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + eval cmds=\"$reload_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -2308,12 +3139,12 @@ + exit 0 + fi + +- if test -n "$pic_flag"; then ++ if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + eval cmds=\"$reload_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -2344,8 +3175,10 @@ + exit 0 + ;; + +- # Anything else should be a program. +- *) ++ prog) ++ case $host in ++ *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; ++ esac + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 + fi +@@ -2355,20 +3188,34 @@ + fi + + if test "$preload" = yes; then +- if test "$dlopen" = unknown && test "$dlopen_self" = unknown && ++ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && + test "$dlopen_self_static" = unknown; then + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." +- fi ++ fi + fi +- ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ case $host in ++ *darwin*) ++ # Don't allow lazy linking, it breaks C++ global constructors ++ compile_command="$compile_command ${wl}-bind_at_load" ++ finalize_command="$finalize_command ${wl}-bind_at_load" ++ ;; ++ esac ++ ;; ++ esac ++ ++ compile_command="$compile_command $compile_deplibs" ++ finalize_command="$finalize_command $finalize_deplibs" ++ + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. +- case "$compile_rpath " in +- *" $libdir "*) ;; +- *) compile_rpath="$compile_rpath $libdir" ;; +- esac + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; +@@ -2386,7 +3233,7 @@ + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. +- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +@@ -2404,6 +3251,14 @@ + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$libdir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$libdir";; ++ esac ++ ;; ++ esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && +@@ -2422,7 +3277,7 @@ + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. +- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +@@ -2449,23 +3304,6 @@ + fi + finalize_rpath="$rpath" + +- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$output_objdir" = "X$output"; then +- output_objdir="$objdir" +- else +- output_objdir="$output_objdir/$objdir" +- fi +- +- # Create the binary in the object directory, then wrap it. +- if test ! -d $output_objdir; then +- $show "$mkdir $output_objdir" +- $run $mkdir $output_objdir +- status=$? +- if test $status -ne 0 && test ! -d $output_objdir; then +- exit $status +- fi +- fi +- + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` +@@ -2482,7 +3320,7 @@ + fi + + if test -n "$dlsyms"; then +- case "$dlsyms" in ++ case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. +@@ -2514,7 +3352,7 @@ + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. +- progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" +@@ -2524,7 +3362,7 @@ + $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi +- ++ + if test -n "$export_symbols_regex"; then + $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' +@@ -2534,9 +3372,9 @@ + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$output.exp" + $run $rm $export_symbols +- $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ++ $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + else +- $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' ++ $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' + $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + fi +@@ -2544,7 +3382,7 @@ + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" +- name=`echo "$arg" | sed -e 's%^.*/%%'` ++ name=`echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval 'echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done +@@ -2559,7 +3397,13 @@ + fi + + # Try sorting and uniquifying the output. +- if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then ++ if grep -v "^: " < "$nlist" | ++ if sort -k 3 </dev/null >/dev/null 2>&1; then ++ sort -k 3 ++ else ++ sort +2 ++ fi | ++ uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S +@@ -2576,27 +3420,25 @@ + #undef lt_preloaded_symbols + + #if defined (__STDC__) && __STDC__ +-# define lt_ptr_t void * ++# define lt_ptr void * + #else +-# define lt_ptr_t char * ++# define lt_ptr char * + # define const + #endif + + /* The mapping between symbol names and symbols. */ + const struct { + const char *name; +- lt_ptr_t address; ++ lt_ptr address; + } + lt_preloaded_symbols[] = + {\ + " + +- sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \ +- -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \ +- < "$nlist" >> "$output_objdir/$dlsyms" ++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ +- {0, (lt_ptr_t) 0} ++ {0, (lt_ptr) 0} + }; + + /* This works around a problem in FreeBSD linker */ +@@ -2613,13 +3455,13 @@ + fi + + pic_flag_for_symtable= +- case "$host" in ++ case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. +- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) ++ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; +@@ -2658,7 +3500,7 @@ + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi + +- if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then ++ if test $need_relink = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" +@@ -2667,7 +3509,7 @@ + $show "$link_command" + $run eval "$link_command" + status=$? +- ++ + # Delete the generated files. + if test -n "$dlsyms"; then + $show "$rm $output_objdir/${outputname}S.${objext}" +@@ -2681,7 +3523,7 @@ + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do +- case "$dir" in ++ case $dir in + [\\/]* | [A-Za-z]:[\\/]*) + # Absolute path. + rpath="$rpath$dir:" +@@ -2723,11 +3565,24 @@ + fi + fi + ++ if test "$no_install" = yes; then ++ # We don't need to create a wrapper script. ++ link_command="$compile_var$compile_command$compile_rpath" ++ # Replace the output file specification. ++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ # Delete the old output file. ++ $run $rm $output ++ # Link the executable and exit ++ $show "$link_command" ++ $run eval "$link_command" || exit $? ++ exit 0 ++ fi ++ + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" +- ++ + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 + $echo "$modename: \`$output' will be relinked during installation" 1>&2 + else +@@ -2747,7 +3602,7 @@ + + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` +- ++ + # Delete the old output files. + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + +@@ -2759,12 +3614,24 @@ + + # Quote the relink command for shipping. + if test -n "$relink_command"; then ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ relink_command="(cd `pwd`; $relink_command)" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + fi + + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $0 --fallback-echo"; then +- case "$0" in ++ case $0 in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; + *) qecho="$SHELL `pwd`/$0 --fallback-echo";; + esac +@@ -2778,7 +3645,12 @@ + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in +- *.exe) output=`echo $output|sed 's,.exe$,,'` ;; ++ *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; ++ esac ++ # test for cygwin because mv fails w/o .exe extensions ++ case $host in ++ *cygwin*) exeext=.exe ;; ++ *) exeext= ;; + esac + $rm $output + trap "$rm $output; exit 1" 1 2 15 +@@ -2797,7 +3669,7 @@ + + # Sed substitution that helps us do robust quoting. It backslashifies + # metacharacters that are still active within double-quoted strings. +-Xsed='sed -e 1s/^X//' ++Xsed="${SED}"' -e 1s/^X//' + sed_quote_subst='$sed_quote_subst' + + # The HP-UX ksh and POSIX shell print the target directory to stdout +@@ -2809,7 +3681,7 @@ + # This environment variable determines our operation mode. + if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: +- link_against_libtool_libs='$link_against_libtool_libs' ++ notinst_deplibs='$notinst_deplibs' + else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then +@@ -2835,20 +3707,20 @@ + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. +- file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` ++ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in +- [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;; ++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` +- file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. +@@ -2858,11 +3730,11 @@ + + if test "$fast_install" = yes; then + echo >> $output "\ +- program=lt-'$outputname' ++ program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" +- ++ + if test ! -f \"\$progdir/\$program\" || \\ +- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\ ++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" +@@ -2877,8 +3749,9 @@ + + # relink executable if necessary + if test -n \"\$relink_command\"; then +- if (cd \"\$thisdir\" && eval \$relink_command); then : ++ if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else ++ $echo \"\$relink_command_output\" >&2 + $rm \"\$progdir/\$file\" + exit 1 + fi +@@ -2907,7 +3780,7 @@ + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var +- # The second colon is a workaround for a bug in BeOS R4 sed ++ # The second colon is a workaround for a bug in BeOS R4 ${SED} + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +@@ -2927,13 +3800,21 @@ + # Run the actual program with our arguments. + " + case $host in +- *-*-cygwin* | *-*-mingw | *-*-os2*) +- # win32 systems need to use the prog path for dll +- # lookup to work ++ # win32 systems need to use the prog path for dll ++ # lookup to work ++ *-*-cygwin* | *-*-pw32*) ++ $echo >> $output "\ ++ exec \$progdir/\$program \${1+\"\$@\"} ++" ++ ;; ++ ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \$progdir\\\\\$program \${1+\"\$@\"} + " + ;; ++ + *) + $echo >> $output "\ + # Export the path to the program. +@@ -2975,7 +3856,7 @@ + oldobjs="$libobjs_save" + build_libtool_libs=no + else +- oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` ++ oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` + fi + addlibs="$old_convenience" + fi +@@ -2991,11 +3872,11 @@ + exit $status + fi + generated="$generated $gentop" +- ++ + # Add in members from convenience archives. + for xlib in $addlibs; do + # Extract the objects. +- case "$xlib" in ++ case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac +@@ -3041,7 +3922,7 @@ + + eval cmds=\"$old_archive_cmds\" + fi +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -3056,19 +3937,26 @@ + fi + + # Now create the libtool archive. +- case "$output" in ++ case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + +- if test -n "$xrpath"; then +- temp_xrpath= +- for libdir in $xrpath; do +- temp_xrpath="$temp_xrpath -R$libdir" +- done +- dependency_libs="$temp_xrpath $dependency_libs" +- fi ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ # Quote the link command for shipping. ++ relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" ++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + + # Only create the output if not a dry run. + if test -z "$run"; then +@@ -3078,8 +3966,52 @@ + break + fi + output="$output_objdir/$outputname"i ++ # Replace all uninstalled libtool libraries with the installed ones ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ *.la) ++ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdependency_libs="$newdependency_libs $libdir/$name" ++ ;; ++ *) newdependency_libs="$newdependency_libs $deplib" ;; ++ esac ++ done ++ dependency_libs="$newdependency_libs" ++ newdlfiles= ++ for lib in $dlfiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlfiles="$newdlfiles $libdir/$name" ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlprefiles="$newdlprefiles $libdir/$name" ++ done ++ dlprefiles="$newdlprefiles" + fi + $rm $output ++ # place dlname in correct position for cygwin ++ tdlname=$dlname ++ case $host,$output,$installed,$module,$dlname in ++ *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; ++ esac + $echo > $output "\ + # $outputname - a libtool library file + # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +@@ -3088,7 +4020,7 @@ + # It is necessary for linking the library. + + # The name that we can dlopen(3). +-dlname='$dlname' ++dlname='$tdlname' + + # Names of this library. + library_names='$library_names' +@@ -3107,16 +4039,23 @@ + # Is this an already installed library? + installed=$installed + ++# Files to dlopen/dlpreopen ++dlopen='$dlfiles' ++dlpreopen='$dlprefiles' ++ + # Directory that this library needs to be installed in: +-libdir='$install_libdir'\ +-" ++libdir='$install_libdir'" ++ if test "$installed" = no && test $need_relink = yes; then ++ $echo >> $output "\ ++relink_command=\"$relink_command\"" ++ fi + done + fi + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" +- $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $? ++ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? + ;; + esac + exit 0 +@@ -3128,10 +4067,12 @@ + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). +- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then ++ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || ++ # Allow the use of GNU shtool's install command. ++ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in ++ case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; +@@ -3147,7 +4088,7 @@ + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in ++ case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; +@@ -3170,7 +4111,7 @@ + continue + fi + +- case "$arg" in ++ case $arg in + -d) isdir=yes ;; + -f) prev="-f" ;; + -g) prev="-g" ;; +@@ -3195,7 +4136,7 @@ + + # Aesthetically quote the argument. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in ++ case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; +@@ -3246,11 +4187,11 @@ + exit 1 + fi + fi +- case "$destdir" in ++ case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do +- case "$file" in ++ case $file in + *.lo) ;; + *) + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 +@@ -3272,15 +4213,15 @@ + for file in $files; do + + # Do each installation. +- case "$file" in +- *.a | *.lib) ++ case $file in ++ *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. +- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 +@@ -3289,8 +4230,9 @@ + + library_names= + old_library= ++ relink_command= + # If there is no directory component, then add one. +- case "$file" in ++ case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac +@@ -3309,10 +4251,38 @@ + esac + fi + +- dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + ++ if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ if test "$inst_prefix_dir" = "$destdir"; then ++ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` ++ fi ++ ++ $echo "$modename: warning: relinking \`$file'" 1>&2 ++ $show "$relink_command" ++ if $run eval "$relink_command"; then : ++ else ++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ exit 1 ++ fi ++ fi ++ + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then +@@ -3320,9 +4290,16 @@ + shift + shift + ++ srcname="$realname" ++ test -n "$relink_command" && srcname="$realname"T ++ + # Install the shared library and build the symlinks. +- $show "$install_prog $dir/$realname $destdir/$realname" +- $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? ++ $show "$install_prog $dir/$srcname $destdir/$realname" ++ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$striplib $destdir/$realname" ++ $run eval "$striplib $destdir/$realname" || exit $? ++ fi + + if test $# -gt 0; then + # Delete the old symlinks, and create new ones. +@@ -3338,7 +4315,7 @@ + # Do each command in the postinstall commands. + lib="$destdir/$realname" + eval cmds=\"$postinstall_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -3369,11 +4346,11 @@ + fi + + # Deduce the name of the destination old-style object file. +- case "$destfile" in ++ case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; +- *.o | *.obj) ++ *.$objext) + staticdest="$destfile" + destfile= + ;; +@@ -3411,40 +4388,55 @@ + fi + + # Do a test to see if this is really a libtool program. +- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then +- link_against_libtool_libs= ++ case $host in ++ *cygwin*|*mingw*) ++ wrapper=`echo $file | ${SED} -e 's,.exe$,,'` ++ ;; ++ *) ++ wrapper=$file ++ ;; ++ esac ++ if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then ++ notinst_deplibs= + relink_command= + + # If there is no directory component, then add one. +- case "$file" in +- */* | *\\*) . $file ;; +- *) . ./$file ;; ++ case $file in ++ */* | *\\*) . $wrapper ;; ++ *) . ./$wrapper ;; + esac + + # Check the variables that should have been set. +- if test -z "$link_against_libtool_libs"; then +- $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 ++ if test -z "$notinst_deplibs"; then ++ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit 1 + fi + + finalize=yes +- for lib in $link_against_libtool_libs; do ++ for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. +- case "$lib" in ++ case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi +- libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" ++ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + ++ relink_command= ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $wrapper ;; ++ *) . ./$wrapper ;; ++ esac ++ + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + if test "$finalize" = yes && test -z "$run"; then +@@ -3456,6 +4448,7 @@ + $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 + continue + fi ++ file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` +@@ -3477,6 +4470,23 @@ + fi + fi + ++ # remove .exe since cygwin /usr/bin/install will append another ++ # one anyways ++ case $install_prog,$host in ++ /usr/bin/install*,*cygwin*) ++ case $file:$destfile in ++ *.exe:*.exe) ++ # this is ok ++ ;; ++ *.exe:*) ++ destfile=$destfile.exe ++ ;; ++ *:*.exe) ++ destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` ++ ;; ++ esac ++ ;; ++ esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" +@@ -3493,9 +4503,14 @@ + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$old_striplib $oldlib" ++ $run eval "$old_striplib $oldlib" || exit $? ++ fi ++ + # Do each command in the postinstall commands. + eval cmds=\"$old_postinstall_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -3511,11 +4526,10 @@ + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" +- exec $SHELL $0 --finish$current_libdirs +- exit 1 ++ exec_cmd='$SHELL $0 --finish$current_libdirs' ++ else ++ exit 0 + fi +- +- exit 0 + ;; + + # libtool finish mode +@@ -3534,7 +4548,7 @@ + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + eval cmds=\"$finish_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -3553,7 +4567,7 @@ + fi + + # Exit here if they wanted silent mode. +- test "$show" = : && exit 0 ++ test "$show" = ":" && exit 0 + + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" +@@ -3563,7 +4577,7 @@ + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" +- echo "specify the full pathname of the library, or use \`-LLIBDIR'" ++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" +@@ -3613,10 +4627,10 @@ + fi + + dir= +- case "$file" in ++ case $file in + *.la) + # Check to see that this really is a libtool archive. +- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 +@@ -3628,7 +4642,7 @@ + library_names= + + # If there is no directory component, then add one. +- case "$file" in ++ case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac +@@ -3683,13 +4697,13 @@ + args= + for file + do +- case "$file" in ++ case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. +- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + # If there is no directory component, then add one. +- case "$file" in ++ case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac +@@ -3706,8 +4720,8 @@ + + if test -z "$run"; then + if test -n "$shlibpath_var"; then +- # Export the shlibpath_var. +- eval "export $shlibpath_var" ++ # Export the shlibpath_var. ++ eval "export $shlibpath_var" + fi + + # Restore saved enviroment variables +@@ -3718,31 +4732,35 @@ + LANG="$save_LANG"; export LANG + fi + +- # Now actually exec the command. +- eval "exec \$cmd$args" +- +- $echo "$modename: cannot exec \$cmd$args" +- exit 1 ++ # Now prepare to actually exec the command. ++ exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then +- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" +- $echo "export $shlibpath_var" ++ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" ++ $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit 0 + fi + ;; + +- # libtool uninstall mode +- uninstall) +- modename="$modename: uninstall" ++ # libtool clean and uninstall mode ++ clean | uninstall) ++ modename="$modename: $mode" + rm="$nonopt" + files= ++ rmforce= ++ exit_status=0 ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" + + for arg + do +- case "$arg" in ++ case $arg in ++ -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac +@@ -3754,53 +4772,86 @@ + exit 1 + fi + ++ rmdirs= ++ + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` +- test "X$dir" = "X$file" && dir=. ++ if test "X$dir" = "X$file"; then ++ dir=. ++ objdir="$objdir" ++ else ++ objdir="$dir/$objdir" ++ fi + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ test $mode = uninstall && objdir="$dir" ++ ++ # Remember objdir for removal later, being careful to avoid duplicates ++ if test $mode = clean; then ++ case " $rmdirs " in ++ *" $objdir "*) ;; ++ *) rmdirs="$rmdirs $objdir" ;; ++ esac ++ fi ++ ++ # Don't error if the file doesn't exist and rm -f was used. ++ if (test -L "$file") >/dev/null 2>&1 \ ++ || (test -h "$file") >/dev/null 2>&1 \ ++ || test -f "$file"; then ++ : ++ elif test -d "$file"; then ++ exit_status=1 ++ continue ++ elif test "$rmforce" = yes; then ++ continue ++ fi + + rmfiles="$file" + +- case "$name" in ++ case $name in + *.la) + # Possibly a libtool archive, so verify it. +- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do +- rmfiles="$rmfiles $dir/$n" ++ rmfiles="$rmfiles $objdir/$n" + done +- test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" ++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + +- $show "$rm $rmfiles" +- $run $rm $rmfiles +- +- if test -n "$library_names"; then +- # Do each command in the postuninstall commands. +- eval cmds=\"$postuninstall_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do ++ if test $mode = uninstall; then ++ if test -n "$library_names"; then ++ # Do each command in the postuninstall commands. ++ eval cmds=\"$postuninstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done + IFS="$save_ifs" +- $show "$cmd" +- $run eval "$cmd" +- done +- IFS="$save_ifs" +- fi ++ fi + +- if test -n "$old_library"; then +- # Do each command in the old_postuninstall commands. +- eval cmds=\"$old_postuninstall_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do ++ if test -n "$old_library"; then ++ # Do each command in the old_postuninstall commands. ++ eval cmds=\"$old_postuninstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done + IFS="$save_ifs" +- $show "$cmd" +- $run eval "$cmd" +- done +- IFS="$save_ifs" ++ fi ++ # FIXME: should reinstall the best remaining shared library. + fi +- +- # FIXME: should reinstall the best remaining shared library. + fi + ;; + +@@ -3809,17 +4860,35 @@ + oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` + rmfiles="$rmfiles $dir/$oldobj" + fi +- $show "$rm $rmfiles" +- $run $rm $rmfiles + ;; + + *) +- $show "$rm $rmfiles" +- $run $rm $rmfiles ++ # Do a test to see if this is a libtool program. ++ if test $mode = clean && ++ (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ relink_command= ++ . $dir/$file ++ ++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ if test "$fast_install" = yes && test -n "$relink_command"; then ++ rmfiles="$rmfiles $objdir/lt-$name" ++ fi ++ fi + ;; + esac ++ $show "$rm $rmfiles" ++ $run $rm $rmfiles || exit_status=1 + done +- exit 0 ++ ++ # Try to remove the ${objdir}s in the directories where we deleted files ++ for dir in $rmdirs; do ++ if test -d "$dir"; then ++ $show "rmdir $dir" ++ $run rmdir $dir >/dev/null 2>&1 ++ fi ++ done ++ ++ exit $exit_status + ;; + + "") +@@ -3829,13 +4898,20 @@ + ;; + esac + +- $echo "$modename: invalid operation mode \`$mode'" 1>&2 +- $echo "$generic_help" 1>&2 +- exit 1 ++ if test -z "$exec_cmd"; then ++ $echo "$modename: invalid operation mode \`$mode'" 1>&2 ++ $echo "$generic_help" 1>&2 ++ exit 1 ++ fi + fi # test -z "$show_help" + ++if test -n "$exec_cmd"; then ++ eval exec $exec_cmd ++ exit 1 ++fi ++ + # We need to display help for each of the modes. +-case "$mode" in ++case $mode in + "") $echo \ + "Usage: $modename [OPTION]... [MODE-ARG]... + +@@ -3854,6 +4930,7 @@ + + MODE must be one of the following: + ++ clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries +@@ -3866,6 +4943,20 @@ + exit 0 + ;; + ++clean) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... ++ ++Remove files from the build directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, object or program, all the files associated ++with it are deleted. Otherwise, only FILE itself is deleted using RM." ++ ;; ++ + compile) + $echo \ + "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE +@@ -3875,6 +4966,8 @@ + This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE ++ -prefer-pic try to building PIC objects only ++ -prefer-non-pic try to building non-PIC objects only + -static always build a \`.o' file suitable for static linking + + COMPILE-COMMAND is a command to be used in creating a \`standard' object file +@@ -3954,6 +5047,8 @@ + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened ++ -no-fast-install disable the fast-install mode ++ -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -release RELEASE specify package release information +--- glib1.2-1.2.10.orig/aclocal.m4 ++++ glib1.2-1.2.10/aclocal.m4 +@@ -1,6 +1,6 @@ +-dnl aclocal.m4 generated automatically by aclocal 1.4 ++dnl aclocal.m4 generated automatically by aclocal 1.4-p6 + +-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. +@@ -10,135 +10,3114 @@ + dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A + dnl PARTICULAR PURPOSE. + ++# Do all the work for Automake. This macro actually does too much -- ++# some checks are only needed if your package does certain things. ++# But this isn't really a big deal. + +-# serial 40 AC_PROG_LIBTOOL +-AC_DEFUN(AC_PROG_LIBTOOL, +-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl ++# serial 1 ++ ++dnl Usage: ++dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ++ ++AC_DEFUN([AM_INIT_AUTOMAKE], ++[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl ++AC_REQUIRE([AC_PROG_INSTALL]) ++PACKAGE=[$1] ++AC_SUBST(PACKAGE) ++VERSION=[$2] ++AC_SUBST(VERSION) ++dnl test to see if srcdir already configured ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then ++ AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) ++fi ++ifelse([$3],, ++AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) ++AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) ++AC_REQUIRE([AM_SANITY_CHECK]) ++AC_REQUIRE([AC_ARG_PROGRAM]) ++dnl FIXME This is truly gross. ++missing_dir=`cd $ac_aux_dir && pwd` ++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) ++AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) ++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) ++AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) ++AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) ++AC_REQUIRE([AC_PROG_MAKE_SET])]) ++ ++# Copyright 2002 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++ ++# AM_AUTOMAKE_VERSION(VERSION) ++# ---------------------------- ++# Automake X.Y traces this macro to ensure aclocal.m4 has been ++# generated from the m4 files accompanying Automake X.Y. ++AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) ++ ++# AM_SET_CURRENT_AUTOMAKE_VERSION ++# ------------------------------- ++# Call AM_AUTOMAKE_VERSION so it can be traced. ++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. ++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], ++ [AM_AUTOMAKE_VERSION([1.4-p6])]) ++ ++# ++# Check to make sure that the build environment is sane. ++# ++ ++AC_DEFUN([AM_SANITY_CHECK], ++[AC_MSG_CHECKING([whether build environment is sane]) ++# Just in case ++sleep 1 ++echo timestamp > conftestfile ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` ++ if test "[$]*" = "X"; then ++ # -L didn't work. ++ set X `ls -t $srcdir/configure conftestfile` ++ fi ++ if test "[$]*" != "X $srcdir/configure conftestfile" \ ++ && test "[$]*" != "X conftestfile $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken ++alias in your environment]) ++ fi ++ ++ test "[$]2" = conftestfile ++ ) ++then ++ # Ok. ++ : ++else ++ AC_MSG_ERROR([newly created file is older than distributed files! ++Check your system clock]) ++fi ++rm -f conftest* ++AC_MSG_RESULT(yes)]) ++ ++dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) ++dnl The program must properly implement --version. ++AC_DEFUN([AM_MISSING_PROG], ++[AC_MSG_CHECKING(for working $2) ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if ($2 --version) < /dev/null > /dev/null 2>&1; then ++ $1=$2 ++ AC_MSG_RESULT(found) ++else ++ $1="$3/missing $2" ++ AC_MSG_RESULT(missing) ++fi ++AC_SUBST($1)]) ++ ++# Like AC_CONFIG_HEADER, but automatically create stamp file. ++ ++AC_DEFUN([AM_CONFIG_HEADER], ++[AC_PREREQ([2.12]) ++AC_CONFIG_HEADER([$1]) ++dnl When config.status generates a header, we must update the stamp-h file. ++dnl This file resides in the same directory as the config header ++dnl that is generated. We must strip everything past the first ":", ++dnl and everything past the last "/". ++AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl ++ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, ++<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, ++<<am_indx=1 ++for am_file in <<$1>>; do ++ case " <<$>>CONFIG_HEADERS " in ++ *" <<$>>am_file "*<<)>> ++ echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ++ ;; ++ esac ++ am_indx=`expr "<<$>>am_indx" + 1` ++done<<>>dnl>>) ++changequote([,]))]) + +-# Save cache, so that ltconfig can load it +-AC_CACHE_SAVE ++# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*- + +-# Actually configure libtool. ac_aux_dir is where install-sh is found. +-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ +-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ +-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \ +-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \ +-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ +-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \ +-|| AC_MSG_ERROR([libtool configure failed]) ++# serial 46 AC_PROG_LIBTOOL + +-# Reload cache, that may have been modified by ltconfig +-AC_CACHE_LOAD ++AC_DEFUN([AC_PROG_LIBTOOL], ++[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl + + # This can be used to rebuild libtool when needed +-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh" ++LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + AC_SUBST(LIBTOOL)dnl + +-# Redirect the config.log output again, so that the ltconfig log is not +-# clobbered by the next message. +-exec 5>>./config.log ++# Prevent multiple expansion ++define([AC_PROG_LIBTOOL], []) + ]) + +-AC_DEFUN(AC_LIBTOOL_SETUP, ++AC_DEFUN([AC_LIBTOOL_SETUP], + [AC_PREREQ(2.13)dnl + AC_REQUIRE([AC_ENABLE_SHARED])dnl + AC_REQUIRE([AC_ENABLE_STATIC])dnl + AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([AC_CANONICAL_BUILD])dnl +-AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_PROG_LD])dnl ++AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl + AC_REQUIRE([AC_PROG_NM])dnl ++AC_REQUIRE([LT_AC_PROG_SED])dnl ++ + AC_REQUIRE([AC_PROG_LN_S])dnl ++AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl ++AC_REQUIRE([AC_OBJEXT])dnl ++AC_REQUIRE([AC_EXEEXT])dnl + dnl + +-case "$target" in +-NONE) lt_target="$host" ;; +-*) lt_target="$target" ;; ++_LT_AC_PROG_ECHO_BACKSLASH ++# Only perform the check for file, if the check method requires it ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ AC_PATH_MAGIC ++ fi ++ ;; + esac + +-# Check for any special flags to pass to ltconfig. +-libtool_flags="--cache-file=$cache_file" +-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" +-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" +-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" +-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" +-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" +-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], +-[libtool_flags="$libtool_flags --enable-dlopen"]) ++AC_CHECK_TOOL(RANLIB, ranlib, :) ++AC_CHECK_TOOL(STRIP, strip, :) ++ ++ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) + ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], +-[libtool_flags="$libtool_flags --enable-win32-dll"]) ++enable_win32_dll=yes, enable_win32_dll=no) ++ + AC_ARG_ENABLE(libtool-lock, + [ --disable-libtool-lock avoid locking (might break parallel builds)]) +-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" +-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '[#]line __oline__ "configure"' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, ++ [AC_LANG_SAVE ++ AC_LANG_C ++ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) ++ AC_LANG_RESTORE]) ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++ ++ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], ++[*-*-cygwin* | *-*-mingw* | *-*-pw32*) ++ AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++ AC_CHECK_TOOL(AS, as, false) ++ AC_CHECK_TOOL(OBJDUMP, objdump, false) ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one ++ AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, ++ [AC_TRY_LINK([], ++ [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); ++ DllMain (0, 0, 0);], ++ [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) ++ ++ case $host/$CC in ++ *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) ++ # old mingw systems require "-dll" to link a DLL, while more recent ones ++ # require "-mdll" ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -mdll" ++ AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, ++ [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) ++ CFLAGS="$SAVE_CFLAGS" ;; ++ *-*-cygwin* | *-*-pw32*) ++ # cygwin systems need to pass --dll to the linker, and not link ++ # crt.o which will require a WinMain@16 definition. ++ lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; ++ esac ++ ;; ++ ]) ++esac ++ ++_LT_AC_LTCONFIG_HACK ++ ++]) ++ ++# AC_LIBTOOL_HEADER_ASSERT ++# ------------------------ ++AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], ++[AC_CACHE_CHECK([whether $CC supports assert without backlinking], ++ [lt_cv_func_assert_works], ++ [case $host in ++ *-*-solaris*) ++ if test "$GCC" = yes && test "$with_gnu_ld" != yes; then ++ case `$CC --version 2>/dev/null` in ++ [[12]].*) lt_cv_func_assert_works=no ;; ++ *) lt_cv_func_assert_works=yes ;; ++ esac ++ fi ++ ;; ++ esac]) ++ ++if test "x$lt_cv_func_assert_works" = xyes; then ++ AC_CHECK_HEADERS(assert.h) ++fi ++])# AC_LIBTOOL_HEADER_ASSERT ++ ++# _LT_AC_CHECK_DLFCN ++# -------------------- ++AC_DEFUN([_LT_AC_CHECK_DLFCN], ++[AC_CHECK_HEADERS(dlfcn.h) ++])# _LT_AC_CHECK_DLFCN ++ ++# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ++# --------------------------------- ++AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], ++[AC_REQUIRE([AC_CANONICAL_HOST]) ++AC_REQUIRE([AC_PROG_NM]) ++AC_REQUIRE([AC_OBJEXT]) ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++AC_MSG_CHECKING([command to parse $NM output]) ++AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[[BCDEGRST]]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[[BCDT]]' ++ ;; ++cygwin* | mingw* | pw32*) ++ symcode='[[ABCDGISTW]]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ;; ++irix* | nonstopux*) ++ symcode='[[BCDEGRST]]' ++ ;; ++osf*) ++ symcode='[[BCDEGQRST]]' ++ ;; ++solaris* | sysv5*) ++ symcode='[[BDT]]' ++ ;; ++sysv4) ++ symcode='[[DFNSTU]]' ++ ;; ++esac ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $host_os in ++mingw*) ++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[[ABCDGISTW]]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ rm -f conftest* ++ cat > conftest.$ac_ext <<EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++EOF ++ ++ if AC_TRY_EVAL(ac_compile); then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<EOF > conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ++ ++ cat <<EOF >> conftest.$ac_ext ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[[]] = ++{ ++EOF ++ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ++ cat <<\EOF >> conftest.$ac_ext ++ {0, (lt_ptr) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&AC_FD_CC ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&AC_FD_CC ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC ++ fi ++ else ++ echo "$progname: failed program was:" >&AC_FD_CC ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -f conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++]) ++global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++ global_symbol_to_c_name_address= ++else ++ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ++ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ++fi ++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ++then ++ AC_MSG_RESULT(failed) ++else ++ AC_MSG_RESULT(ok) ++fi ++]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ++ ++# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++# --------------------------------- ++AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], ++[# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++ ++# _LT_AC_PROG_ECHO_BACKSLASH ++# -------------------------- ++# Add some code to the start of the generated configure script which ++# will find an echo command which doesn't interpret backslashes. ++AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], ++[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], ++ [AC_DIVERT_PUSH(NOTICE)]) ++_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ++ ;; ++esac ++ ++echo=${ECHO-echo} ++if test "X[$]1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X[$]1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} ++fi ++ ++if test "X[$]1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++$* ++EOF ++ exit 0 ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++if test -z "$ECHO"; then ++if test "X${echo_test_string+set}" != Xset; then ++# find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if (echo_test_string="`eval $cmd`") 2>/dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null ++ then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} ++ else ++ # Try using printf. ++ echo='printf %s\n' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL [$]0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$CONFIG_SHELL [$]0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "[$]0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++ECHO=$echo ++if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ++ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" ++fi ++ ++AC_SUBST(ECHO) ++AC_DIVERT_POP ++])# _LT_AC_PROG_ECHO_BACKSLASH ++ ++# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, ++# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) ++# ------------------------------------------------------------------ ++AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], ++[if test "$cross_compiling" = yes; then : ++ [$4] ++else ++ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++[#line __oline__ "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++}] ++EOF ++ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) $1 ;; ++ x$lt_dlneed_uscore) $2 ;; ++ x$lt_unknown|x*) $3 ;; ++ esac ++ else : ++ # compilation failed ++ $3 ++ fi ++fi ++rm -fr conftest* ++])# _LT_AC_TRY_DLOPEN_SELF ++ ++# AC_LIBTOOL_DLOPEN_SELF ++# ------------------- ++AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], ++[if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ *) ++ AC_CHECK_FUNC([shl_load], ++ [lt_cv_dlopen="shl_load"], ++ [AC_CHECK_LIB([dld], [shl_load], ++ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], ++ [AC_CHECK_FUNC([dlopen], ++ [lt_cv_dlopen="dlopen"], ++ [AC_CHECK_LIB([dl], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], ++ [AC_CHECK_LIB([svld], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], ++ [AC_CHECK_LIB([dld], [dld_link], ++ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ AC_CACHE_CHECK([whether a program can dlopen itself], ++ lt_cv_dlopen_self, [dnl ++ _LT_AC_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, ++ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ++ ]) ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ AC_CACHE_CHECK([whether a statically linked program can dlopen itself], ++ lt_cv_dlopen_self_static, [dnl ++ _LT_AC_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, ++ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ++ ]) ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++])# AC_LIBTOOL_DLOPEN_SELF ++ ++AC_DEFUN([_LT_AC_LTCONFIG_HACK], ++[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Constants: ++rm="rm -f" ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++libext=a ++ltmain="$ac_aux_dir/ltmain.sh" ++ofile="$default_ofile" ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++need_locks="$enable_libtool_lock" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$AS" && AS=as ++test -z "$CC" && CC=cc ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$LD" && LD=ld ++test -z "$LN_S" && LN_S="ln -s" ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++test -z "$NM" && NM=nm ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$RANLIB" && RANLIB=: ++test -z "$STRIP" && STRIP=: ++test -z "$ac_objext" && ac_objext=o ++ ++if test x"$host" != x"$build"; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case $host_os in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ++ ;; ++ *) ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="[$]2" ++ ++AC_MSG_CHECKING([for objdir]) ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++AC_MSG_RESULT($objdir) ++ ++ ++AC_ARG_WITH(pic, ++[ --with-pic try to use only PIC/non-PIC objects [default=use both]], ++pic_mode="$withval", pic_mode=default) ++test -z "$pic_mode" && pic_mode=default ++ ++# We assume here that the value for lt_cv_prog_cc_pic will not be cached ++# in isolation, and that seeing it set (from the cache) indicates that ++# the associated values are set (in the cache) correctly too. ++AC_MSG_CHECKING([for $compiler option to produce PIC]) ++AC_CACHE_VAL(lt_cv_prog_cc_pic, ++[ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_shlib= ++ lt_cv_prog_cc_wl= ++ lt_cv_prog_cc_static= ++ lt_cv_prog_cc_no_builtin= ++ lt_cv_prog_cc_can_build_shared=$can_build_shared ++ ++ if test "$GCC" = yes; then ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-static' ++ ++ case $host_os in ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # not sure about C++ programs. ++ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_cv_prog_cc_pic='-fno-common' ++ ;; ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_cv_prog_cc_pic=-Kconform_pic ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for PIC flags for the system compiler. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ lt_cv_prog_cc_wl='-Wl,' ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_cv_prog_cc_static='-Bstatic' ++ else ++ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ++ lt_cv_prog_cc_pic='+Z' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ ++ newsos6) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ lt_cv_prog_cc_pic='-Kpic' ++ lt_cv_prog_cc_static='-dn' ++ lt_cv_prog_cc_shlib='-belf' ++ ;; ++ ++ solaris*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ lt_cv_prog_cc_pic='-PIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ uts4*) ++ lt_cv_prog_cc_pic='-pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_cv_prog_cc_pic='-Kconform_pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ fi ++ ;; ++ ++ *) ++ lt_cv_prog_cc_can_build_shared=no ++ ;; ++ esac ++ fi ++]) ++if test -z "$lt_cv_prog_cc_pic"; then ++ AC_MSG_RESULT([none]) ++else ++ AC_MSG_RESULT([$lt_cv_prog_cc_pic]) ++ ++ # Check to make sure the pic_flag actually works. ++ AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) ++ AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ++ AC_TRY_COMPILE([], [], [dnl ++ case $host_os in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then ++ # they create non-PIC objects. So, if there were any warnings, we ++ # assume that PIC is not supported. ++ if test -s conftest.err; then ++ lt_cv_prog_cc_pic_works=no ++ else ++ lt_cv_prog_cc_pic_works=yes ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic_works=yes ++ ;; ++ esac ++ ], [dnl ++ lt_cv_prog_cc_pic_works=no ++ ]) ++ CFLAGS="$save_CFLAGS" ++ ]) ++ ++ if test "X$lt_cv_prog_cc_pic_works" = Xno; then ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_can_build_shared=no ++ else ++ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ++ fi ++ ++ AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$lt_cv_prog_cc_shlib"; then ++ AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : ++ else ++ AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) ++ lt_cv_prog_cc_can_build_shared=no ++ fi ++fi ++ ++AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) ++AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl ++ lt_cv_prog_cc_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ++ AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) ++ LDFLAGS="$save_LDFLAGS" ++]) ++ ++# Belt *and* braces to stop my trousers falling down: ++test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ++AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) ++ ++pic_flag="$lt_cv_prog_cc_pic" ++special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ++wl="$lt_cv_prog_cc_wl" ++link_static_flag="$lt_cv_prog_cc_static" ++no_builtin_flag="$lt_cv_prog_cc_no_builtin" ++can_build_shared="$lt_cv_prog_cc_can_build_shared" ++ ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) ++AC_CACHE_VAL([lt_cv_compiler_c_o], [ ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++echo "int some_variable = 0;" > conftest.$ac_ext ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ++compiler_c_o=no ++if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ lt_cv_compiler_c_o=no ++ else ++ lt_cv_compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&AC_FD_CC ++ lt_cv_compiler_c_o=no ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++]) ++compiler_c_o=$lt_cv_compiler_c_o ++AC_MSG_RESULT([$compiler_c_o]) ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) ++ AC_CACHE_VAL([lt_cv_compiler_o_lo], [ ++ lt_cv_compiler_o_lo=no ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ save_objext="$ac_objext" ++ ac_objext=lo ++ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ lt_cv_compiler_o_lo=no ++ else ++ lt_cv_compiler_o_lo=yes ++ fi ++ ]) ++ ac_objext="$save_objext" ++ CFLAGS="$save_CFLAGS" ++ ]) ++ compiler_o_lo=$lt_cv_compiler_o_lo ++ AC_MSG_RESULT([$compiler_o_lo]) ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ AC_MSG_CHECKING([if we can lock with hard links]) ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ AC_MSG_RESULT([$hard_links]) ++ if test "$hard_links" = no; then ++ AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe]) ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$GCC" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ++ compiler_rtti_exceptions=no ++ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ compiler_rtti_exceptions=no ++ else ++ compiler_rtti_exceptions=yes ++ fi ++ ]) ++ CFLAGS="$save_CFLAGS" ++ AC_MSG_RESULT([$compiler_rtti_exceptions]) ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++fi ++ ++# See if the linker supports building shared libraries. ++AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++old_archive_from_expsyms_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_into_libs=no ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++link_all_deplibs=unknown ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++extract_expsyms_cmds= ++ ++case $host_os in ++cygwin* | mingw* | pw32*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ # On AIX, the GNU linker is very broken ++ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ++ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ++ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ++ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ++ else $CC -o impgen impgen.c ; fi)~ ++ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ++ ++ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ++ ++ # cygwin and mingw dlls have different entry points and sets of symbols ++ # to exclude. ++ # FIXME: what about values for MSVC? ++ dll_entry=__cygwin_dll_entry@12 ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ++ case $host_os in ++ mingw*) ++ # mingw values ++ dll_entry=_DllMainCRTStartup@12 ++ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ++ ;; ++ esac ++ ++ # mingw and cygwin differ, and it's simplest to just exclude the union ++ # of the two symbol sets. ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one (in ltdll.c) ++ if test "x$lt_cv_need_dllmain" = "xyes"; then ++ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ++ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ++ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ++ else ++ ltdll_obj= ++ ltdll_cmds= ++ fi ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left be newer dlltools. ++ export_symbols_cmds="$ltdll_cmds"' ++ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ++ ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is. ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname-def; ++ else ++ echo EXPORTS > $output_objdir/$soname-def; ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \[$]# in ++ 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ++ 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ++ *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done; ++ fi~ ++ '"$ltdll_cmds"' ++ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ++ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ++ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw* | pw32*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4* | aix5*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ hardcode_direct=yes ++ archive_cmds='' ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[[012]]|aix4.[[012]].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ esac ++ ++ shared_flag='-shared' ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ shared_flag='${wl}-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ # It seems that -bexpall can do strange things, so it is better to ++ # generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ++ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ++ else ++ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='${wl}-berok' ++ # This is a bit strange, but is similar to how AIX traditionally builds ++ # it's shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ ;; ++ ++ darwin* | rhapsody*) ++ case "$host_os" in ++ rhapsody* | darwin1.[[012]]) ++ allow_undefined_flag='-undefined suppress' ++ ;; ++ *) # Darwin 1.3 on ++ allow_undefined_flag='-flat_namespace -undefined suppress' ++ ;; ++ esac ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. Also zsh mangles ++ # `"' quotes if we put them in here... so don't! ++ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ++ # We need to add '_' to the symbols in $export_symbols first ++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ whole_archive_flag_spec='-all_load $convenience' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case $host_os in ++ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case "$host_os" in ++ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ++ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ++ ++ #Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ ;; ++ ++ solaris*) ++ # gcc --version < 3.0 without binutils cannot create self contained ++ # shared libraries reliably, requiring libgcc.a to resolve some of ++ # the object symbols generated in some cases. Libraries that use ++ # assert need libgcc.a to resolve __eprintf, for example. Linking ++ # a copy of libgcc.a into every shared library to guarantee resolving ++ # such symbols causes other problems: According to Tim Van Holder ++ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate ++ # (to the application) exception stack for one thing. ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ case `$CC --version 2>/dev/null` in ++ [[12]].*) ++ cat <<EOF 1>&2 ++ ++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably ++*** create self contained shared libraries on Solaris systems, without ++*** introducing a dependency on libgcc.a. Therefore, libtool is disabling ++*** -no-undefined support, which will at least allow you to build shared ++*** libraries. However, you may find that when you link such libraries ++*** into an application without using GCC, you have to manually add ++*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ++*** upgrade to a newer version of GCC. Another option is to rebuild your ++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ++ ++EOF ++ no_undefined_flag= ++ ;; ++ esac ++ fi ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ sysv5uw7* | unixware7*) ++ no_undefined_flag='${wl}-z ${wl}text' ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++AC_MSG_RESULT([$ld_shlibs]) ++test "$ld_shlibs" = no && can_build_shared=no ++ ++# Check hardcoding attributes. ++AC_MSG_CHECKING([how to hardcode library paths into programs]) ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++AC_MSG_RESULT([$hardcode_action]) ++ ++striplib= ++old_striplib= ++AC_MSG_CHECKING([whether stripping libraries is possible]) ++if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ AC_MSG_RESULT([yes]) ++else ++ AC_MSG_RESULT([no]) ++fi ++ ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++# PORTME Fill in your ld.so characteristics ++AC_MSG_CHECKING([dynamic linker characteristics]) ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4* | aix5*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[[01]] | aix4.[[01]].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can ++ # not hardcode correct soname into executable. Probably we can ++ # add versioning support to collect2, so additional links can ++ # be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib<name>.so ++ # instead of lib<name>.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}.so$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ hardcode_into_libs=yes ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ case $GCC,$host_os in ++ yes,cygwin*) ++ library_names_spec='$libname.dll.a' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ++ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog .libs/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $rm \$dlpath' ++ ;; ++ yes,mingw*) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ++ ;; ++ yes,pw32*) ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ ;; ++ *) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. ++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) version_type=irix ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*|kfreebsd*-gnu) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case "$host_os" in ++ openbsd2.[[89]] | openbsd2.[[89]].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ need_lib_prefix=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ hardcode_into_libs=yes ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++AC_MSG_RESULT([$dynamic_linker]) ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++AC_MSG_CHECKING([if libtool supports shared libraries]) ++AC_MSG_RESULT([$can_build_shared]) ++ ++AC_MSG_CHECKING([whether to build shared libraries]) ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++esac ++AC_MSG_RESULT([$enable_shared]) ++ ++AC_MSG_CHECKING([whether to build static libraries]) ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++AC_MSG_RESULT([$enable_static]) ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++AC_LIBTOOL_DLOPEN_SELF ++ ++if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ AC_MSG_CHECKING([whether -lc should be explicitly linked in]) ++ AC_CACHE_VAL([lt_cv_archive_cmds_need_lc], ++ [$rm conftest* ++ echo 'static int dummy;' > conftest.$ac_ext ++ ++ if AC_TRY_EVAL(ac_compile); then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_cv_prog_cc_wl ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi]) ++ AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) ++ ;; ++ esac ++fi ++need_lc=${lt_cv_archive_cmds_need_lc-yes} ++ ++# The second clause should only fire when bootstrapping the ++# libtool distribution, otherwise you forgot to ship ltmain.sh ++# with your package, and you will get complaints that there are ++# no rules to generate ltmain.sh. ++if test -f "$ltmain"; then ++ : ++else ++ # If there is no Makefile yet, we rely on a make rule to execute ++ # `config.status --recheck' to rerun these tests and create the ++ # libtool script then. ++ test -f Makefile && make "$ltmain" ++fi ++ ++if test -f "$ltmain"; then ++ trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ++ $rm -f "${ofile}T" ++ ++ echo creating $ofile ++ ++ # Now quote all the things that may contain metacharacters while being ++ # careful not to overquote the AC_SUBSTed values. We take copies of the ++ # variables and quote the copies for generation of the libtool script. ++ for var in echo old_CC old_CFLAGS SED \ ++ AR AR_FLAGS CC LD LN_S NM SHELL \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ++ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ++ old_striplib striplib file_magic_cmd export_symbols_cmds \ ++ deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ global_symbol_to_c_name_address \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case $var in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ cat <<__EOF__ > "${ofile}T" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996-2000 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# A sed that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="${SED} -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$need_lc ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$lt_echo ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# The default C compiler. ++CC=$lt_CC ++ ++# Is the compiler the GNU C compiler? ++with_gcc=$GCC ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Whether we need hard or soft links. ++LN_S=$lt_LN_S ++ ++# A BSD-compatible nm program. ++NM=$lt_NM ++ ++# A symbol stripping program ++STRIP=$STRIP ++ ++# Used to examine libraries when file_magic_cmd begins "file" ++MAGIC_CMD=$MAGIC_CMD ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_wl ++ ++# Object file suffix (normally "o"). ++objext="$ac_objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_pic_flag ++pic_mode=$pic_mode ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$lt_compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$lt_need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$lt_thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$lt_RANLIB ++old_archive_cmds=$lt_old_archive_cmds ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++postinstall_cmds=$lt_postinstall_cmds ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$lt_file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$lt_finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$lt_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair ++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at relink time. ++variables_saved_for_relink="$variables_saved_for_relink" ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# ### END LIBTOOL CONFIG ++ ++__EOF__ ++ ++ case $host_os in ++ aix3*) ++ cat <<\EOF >> "${ofile}T" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ cat <<'EOF' >> "${ofile}T" ++ # This is a source program that is used to create dlls on Windows ++ # Don't remove nor modify the starting and closing comments ++# /* ltdll.c starts here */ ++# #define WIN32_LEAN_AND_MEAN ++# #include <windows.h> ++# #undef WIN32_LEAN_AND_MEAN ++# #include <stdio.h> ++# ++# #ifndef __CYGWIN__ ++# # ifdef __CYGWIN32__ ++# # define __CYGWIN__ __CYGWIN32__ ++# # endif ++# #endif ++# ++# #ifdef __cplusplus ++# extern "C" { ++# #endif ++# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ++# #ifdef __cplusplus ++# } ++# #endif ++# ++# #ifdef __CYGWIN__ ++# #include <cygwin/cygwin_dll.h> ++# DECLARE_CYGWIN_DLL( DllMain ); ++# #endif ++# HINSTANCE __hDllInstance_base; ++# ++# BOOL APIENTRY ++# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ++# { ++# __hDllInstance_base = hInst; ++# return TRUE; ++# } ++# /* ltdll.c ends here */ ++ # This is a source program that is used to create import libraries ++ # on Windows for dlls which lack them. Don't remove nor modify the ++ # starting and closing comments ++# /* impgen.c starts here */ ++# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ++# ++# This file is part of GNU libtool. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# */ ++# ++# #include <stdio.h> /* for printf() */ ++# #include <unistd.h> /* for open(), lseek(), read() */ ++# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ ++# #include <string.h> /* for strdup() */ ++# ++# /* O_BINARY isn't required (or even defined sometimes) under Unix */ ++# #ifndef O_BINARY ++# #define O_BINARY 0 ++# #endif ++# ++# static unsigned int ++# pe_get16 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[2]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 2); ++# return b[0] + (b[1]<<8); ++# } ++# ++# static unsigned int ++# pe_get32 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[4]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 4); ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# static unsigned int ++# pe_as32 (ptr) ++# void *ptr; ++# { ++# unsigned char *b = ptr; ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# int ++# main (argc, argv) ++# int argc; ++# char *argv[]; ++# { ++# int dll; ++# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ++# unsigned long export_rva, export_size, nsections, secptr, expptr; ++# unsigned long name_rvas, nexp; ++# unsigned char *expdata, *erva; ++# char *filename, *dll_name; ++# ++# filename = argv[1]; ++# ++# dll = open(filename, O_RDONLY|O_BINARY); ++# if (dll < 1) ++# return 1; ++# ++# dll_name = filename; ++# ++# for (i=0; filename[i]; i++) ++# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ++# dll_name = filename + i +1; ++# ++# pe_header_offset = pe_get32 (dll, 0x3c); ++# opthdr_ofs = pe_header_offset + 4 + 20; ++# num_entries = pe_get32 (dll, opthdr_ofs + 92); ++# ++# if (num_entries < 1) /* no exports */ ++# return 1; ++# ++# export_rva = pe_get32 (dll, opthdr_ofs + 96); ++# export_size = pe_get32 (dll, opthdr_ofs + 100); ++# nsections = pe_get16 (dll, pe_header_offset + 4 +2); ++# secptr = (pe_header_offset + 4 + 20 + ++# pe_get16 (dll, pe_header_offset + 4 + 16)); ++# ++# expptr = 0; ++# for (i = 0; i < nsections; i++) ++# { ++# char sname[8]; ++# unsigned long secptr1 = secptr + 40 * i; ++# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ++# unsigned long vsize = pe_get32 (dll, secptr1 + 16); ++# unsigned long fptr = pe_get32 (dll, secptr1 + 20); ++# lseek(dll, secptr1, SEEK_SET); ++# read(dll, sname, 8); ++# if (vaddr <= export_rva && vaddr+vsize > export_rva) ++# { ++# expptr = fptr + (export_rva - vaddr); ++# if (export_rva + export_size > vaddr + vsize) ++# export_size = vsize - (export_rva - vaddr); ++# break; ++# } ++# } ++# ++# expdata = (unsigned char*)malloc(export_size); ++# lseek (dll, expptr, SEEK_SET); ++# read (dll, expdata, export_size); ++# erva = expdata - export_rva; ++# ++# nexp = pe_as32 (expdata+24); ++# name_rvas = pe_as32 (expdata+32); ++# ++# printf ("EXPORTS\n"); ++# for (i = 0; i<nexp; i++) ++# { ++# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); ++# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); ++# } ++# ++# return 0; ++# } ++# /* impgen.c ends here */ + +-# Some flags need to be propagated to the compiler or linker for good +-# libtool support. +-case "$lt_target" in +-*-*-irix6*) +- # Find out which ABI we are using. +- echo '[#]line __oline__ "configure"' > conftest.$ac_ext +- if AC_TRY_EVAL(ac_compile); then +- case "`/usr/bin/file conftest.o`" in +- *32-bit*) +- LD="${LD-ld} -32" +- ;; +- *N32*) +- LD="${LD-ld} -n32" +- ;; +- *64-bit*) +- LD="${LD-ld} -64" +- ;; +- esac +- fi +- rm -rf conftest* +- ;; ++EOF ++ ;; ++ esac + +-*-*-sco3.2v5*) +- # On SCO OpenServer 5, we need -belf to get full-featured binaries. +- SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS -belf" +- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, +- [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])]) +- if test x"$lt_cv_cc_needs_belf" != x"yes"; then +- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf +- CFLAGS="$SAVE_CFLAGS" +- fi +- ;; ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ++ ++ mv -f "${ofile}T" "$ofile" || \ ++ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ++ chmod +x "$ofile" ++fi + +-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], +-[*-*-cygwin* | *-*-mingw*) +- AC_CHECK_TOOL(DLLTOOL, dlltool, false) +- AC_CHECK_TOOL(AS, as, false) +- AC_CHECK_TOOL(OBJDUMP, objdump, false) +- ;; +-]) +-esac +-]) ++])# _LT_AC_LTCONFIG_HACK + + # AC_LIBTOOL_DLOPEN - enable checks for dlopen support +-AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) ++AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) + + # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's +-AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) ++AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) + + # AC_ENABLE_SHARED - implement the --enable-shared flag + # Usage: AC_ENABLE_SHARED[(DEFAULT)] + # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to + # `yes'. +-AC_DEFUN(AC_ENABLE_SHARED, [dnl +-define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_DEFUN([AC_ENABLE_SHARED], ++[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE(shared, + changequote(<<, >>)dnl + << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], + changequote([, ])dnl + [p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) +@@ -157,21 +3136,22 @@ + ]) + + # AC_DISABLE_SHARED - set the default shared flag to --disable-shared +-AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_DEFUN([AC_DISABLE_SHARED], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_ENABLE_SHARED(no)]) + + # AC_ENABLE_STATIC - implement the --enable-static flag + # Usage: AC_ENABLE_STATIC[(DEFAULT)] + # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to + # `yes'. +-AC_DEFUN(AC_ENABLE_STATIC, [dnl +-define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_DEFUN([AC_ENABLE_STATIC], ++[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE(static, + changequote(<<, >>)dnl + << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], + changequote([, ])dnl + [p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) +@@ -190,7 +3170,8 @@ + ]) + + # AC_DISABLE_STATIC - set the default static flag to --disable-static +-AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_DEFUN([AC_DISABLE_STATIC], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_ENABLE_STATIC(no)]) + + +@@ -198,14 +3179,14 @@ + # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] + # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to + # `yes'. +-AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl +-define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_DEFUN([AC_ENABLE_FAST_INSTALL], ++[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE(fast-install, + changequote(<<, >>)dnl + << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], + changequote([, ])dnl + [p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) +@@ -223,29 +3204,120 @@ + enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl + ]) + +-# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install +-AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install ++AC_DEFUN([AC_DISABLE_FAST_INSTALL], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_ENABLE_FAST_INSTALL(no)]) + ++# AC_LIBTOOL_PICMODE - implement the --with-pic flag ++# Usage: AC_LIBTOOL_PICMODE[(MODE)] ++# Where MODE is either `yes' or `no'. If omitted, it defaults to ++# `both'. ++AC_DEFUN([AC_LIBTOOL_PICMODE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++pic_mode=ifelse($#,1,$1,default)]) ++ ++ ++# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library ++AC_DEFUN([AC_PATH_TOOL_PREFIX], ++[AC_MSG_CHECKING([for $1]) ++AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, ++[case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++dnl $ac_dummy forces splitting on constant user-supplied paths. ++dnl POSIX.2 word splitting is done only on the output of word expansions, ++dnl not every word. This closes a longstanding sh security hole. ++ ac_dummy="ifelse([$2], , $PATH, [$2])" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$1; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/$1" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac]) ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ AC_MSG_RESULT($MAGIC_CMD) ++else ++ AC_MSG_RESULT(no) ++fi ++]) ++ ++ ++# AC_PATH_MAGIC - find a file program which can recognise a shared library ++AC_DEFUN([AC_PATH_MAGIC], ++[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl ++AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) ++ else ++ MAGIC_CMD=: ++ fi ++fi ++]) ++ ++ + # AC_PROG_LD - find the path to the GNU or non-GNU linker +-AC_DEFUN(AC_PROG_LD, ++AC_DEFUN([AC_PROG_LD], + [AC_ARG_WITH(gnu-ld, + [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], + test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl + ac_prog=ld +-if test "$ac_cv_prog_gcc" = yes; then ++if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) +- ac_prog=`($CC -print-prog-name=ld) 2>&5` +- case "$ac_prog" in ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in + # Accept absolute paths. +-changequote(,)dnl +- [\\/]* | [A-Za-z]:[\\/]*) +- re_direlt='/[^/][^/]*/\.\./' +-changequote([,])dnl ++ [[\\/]]* | [[A-Za-z]]:[[\\/]]*) ++ re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do +@@ -267,17 +3339,17 @@ + else + AC_MSG_CHECKING([for non-GNU ld]) + fi +-AC_CACHE_VAL(ac_cv_path_LD, ++AC_CACHE_VAL(lt_cv_path_LD, + [if test -z "$LD"; then +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then +- ac_cv_path_LD="$ac_dir/$ac_prog" ++ lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. +- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break +@@ -286,9 +3358,9 @@ + done + IFS="$ac_save_ifs" + else +- ac_cv_path_LD="$LD" # Let the user override the test with a path. ++ lt_cv_path_LD="$LD" # Let the user override the test with a path. + fi]) +-LD="$ac_cv_path_LD" ++LD="$lt_cv_path_LD" + if test -n "$LD"; then + AC_MSG_RESULT($LD) + else +@@ -298,56 +3370,255 @@ + AC_PROG_LD_GNU + ]) + +-AC_DEFUN(AC_PROG_LD_GNU, +-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, ++# AC_PROG_LD_GNU - ++AC_DEFUN([AC_PROG_LD_GNU], ++[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, + [# I'd rather use --version here, but apparently some GNU ld's only accept -v. + if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then +- ac_cv_prog_gnu_ld=yes ++ lt_cv_prog_gnu_ld=yes + else +- ac_cv_prog_gnu_ld=no ++ lt_cv_prog_gnu_ld=no + fi]) ++with_gnu_ld=$lt_cv_prog_gnu_ld ++]) ++ ++# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker ++# -- PORTME Some linkers may need a different reload flag. ++AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], ++[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, ++[lt_cv_ld_reload_flag='-r']) ++reload_flag=$lt_cv_ld_reload_flag ++test -n "$reload_flag" && reload_flag=" $reload_flag" ++]) ++ ++# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies ++# -- PORTME fill in with the dynamic library characteristics ++AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], ++[AC_CACHE_CHECK([how to recognise dependent libraries], ++lt_cv_deplibs_check_method, ++[lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix4* | aix5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++bsdi4*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ case "$host_os" in ++ rhapsody* | darwin1.[[012]]) ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ ;; ++ *) # Darwin 1.3 on ++ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ++ ;; ++ esac ++ ;; ++ ++freebsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20*|hpux11*) ++ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ irix5* | nonstopux*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" ++ ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*|kfreebsd*-gnu) ++ case $host_cpu in ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ++ lt_cv_deplibs_check_method=pass_all ;; ++ *) ++ # glibc up to 2.1.1 does not perform some relocations on ARM ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++openbsd*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' ++ else ++ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ ++sysv5uw[[78]]* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++esac + ]) ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++]) ++ + + # AC_PROG_NM - find the path to a BSD-compatible name lister +-AC_DEFUN(AC_PROG_NM, +-[AC_MSG_CHECKING([for BSD-compatible nm]) +-AC_CACHE_VAL(ac_cv_path_NM, ++AC_DEFUN([AC_PROG_NM], ++[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ++AC_MSG_CHECKING([for BSD-compatible nm]) ++AC_CACHE_VAL(lt_cv_path_NM, + [if test -n "$NM"; then + # Let the user override the test. +- ac_cv_path_NM="$NM" ++ lt_cv_path_NM="$NM" + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then ++ tmp_nm=$ac_dir/${ac_tool_prefix}nm ++ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored +- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then +- ac_cv_path_NM="$ac_dir/nm -B" ++ # Tru64's nm complains that /dev/null is an invalid object file ++ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -B" + break +- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then +- ac_cv_path_NM="$ac_dir/nm -p" ++ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -p" + break + else +- ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" +- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm ++ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm + fi]) +-NM="$ac_cv_path_NM" ++NM="$lt_cv_path_NM" + AC_MSG_RESULT([$NM]) + ]) + + # AC_CHECK_LIBM - check for math library +-AC_DEFUN(AC_CHECK_LIBM, ++AC_DEFUN([AC_CHECK_LIBM], + [AC_REQUIRE([AC_CANONICAL_HOST])dnl + LIBM= +-case "$lt_target" in +-*-*-beos* | *-*-cygwin*) ++case $host in ++*-*-beos* | *-*-cygwin* | *-*-pw32*) + # These system don't have libm + ;; + *-ncr-sysv4.3*) +@@ -361,33 +3632,41 @@ + ]) + + # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for +-# the libltdl convenience library, adds --enable-ltdl-convenience to +-# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor +-# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed +-# to be `${top_builddir}/libltdl'. Make sure you start DIR with +-# '${top_builddir}/' (note the single quotes!) if your package is not +-# flat, and, if you're not using automake, define top_builddir as +-# appropriate in the Makefiles. +-AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +- case "$enable_ltdl_convenience" in ++# the libltdl convenience library and LTDLINCL to the include flags for ++# the libltdl header and adds --enable-ltdl-convenience to the ++# configure arguments. Note that LIBLTDL and LTDLINCL are not ++# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not ++# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed ++# with '${top_builddir}/' and LTDLINCL will be prefixed with ++# '${top_srcdir}/' (note the single quotes!). If your package is not ++# flat and you're not using automake, define top_builddir and ++# top_srcdir appropriately in the Makefiles. ++AC_DEFUN([AC_LIBLTDL_CONVENIENCE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++ case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac +- LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la +- INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) ++ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la ++ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ++ # For backwards non-gettext consistent compatibility... ++ INCLTDL="$LTDLINCL" + ]) + + # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for +-# the libltdl installable library, and adds --enable-ltdl-install to +-# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor +-# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed +-# to be `${top_builddir}/libltdl'. Make sure you start DIR with +-# '${top_builddir}/' (note the single quotes!) if your package is not +-# flat, and, if you're not using automake, define top_builddir as +-# appropriate in the Makefiles. ++# the libltdl installable library and LTDLINCL to the include flags for ++# the libltdl header and adds --enable-ltdl-install to the configure ++# arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is ++# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed ++# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will ++# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed ++# with '${top_srcdir}/' (note the single quotes!). If your package is ++# not flat and you're not using automake, define top_builddir and ++# top_srcdir appropriately in the Makefiles. + # In the future, this macro may have to be called after AC_PROG_LIBTOOL. +-AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_DEFUN([AC_LIBLTDL_INSTALLABLE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, main, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then +@@ -398,148 +3677,124 @@ + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" +- LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la +- INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) ++ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la ++ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" +- INCLTDL= ++ LTDLINCL= + fi ++ # For backwards non-gettext consistent compatibility... ++ INCLTDL="$LTDLINCL" + ]) + +-dnl old names +-AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl +-AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl +-AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl +-AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl +-AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl +-AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl +-AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl +- +-dnl This is just to silence aclocal about the macro not being used +-ifelse([AC_DISABLE_FAST_INSTALL])dnl +- +-# Do all the work for Automake. This macro actually does too much -- +-# some checks are only needed if your package does certain things. +-# But this isn't really a big deal. +- +-# serial 1 +- +-dnl Usage: +-dnl AM_INIT_AUTOMAKE(package,version, [no-define]) +- +-AC_DEFUN(AM_INIT_AUTOMAKE, +-[AC_REQUIRE([AC_PROG_INSTALL]) +-PACKAGE=[$1] +-AC_SUBST(PACKAGE) +-VERSION=[$2] +-AC_SUBST(VERSION) +-dnl test to see if srcdir already configured +-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then +- AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +-fi +-ifelse([$3],, +-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +-AC_REQUIRE([AM_SANITY_CHECK]) +-AC_REQUIRE([AC_ARG_PROGRAM]) +-dnl FIXME This is truly gross. +-missing_dir=`cd $ac_aux_dir && pwd` +-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +-AC_REQUIRE([AC_PROG_MAKE_SET])]) +- +-# +-# Check to make sure that the build environment is sane. +-# +- +-AC_DEFUN(AM_SANITY_CHECK, +-[AC_MSG_CHECKING([whether build environment is sane]) +-# Just in case +-sleep 1 +-echo timestamp > conftestfile +-# Do `set' in a subshell so we don't clobber the current shell's +-# arguments. Must try -L first in case configure is actually a +-# symlink; some systems play weird games with the mod time of symlinks +-# (eg FreeBSD returns the mod time of the symlink's containing +-# directory). +-if ( +- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` +- if test "[$]*" = "X"; then +- # -L didn't work. +- set X `ls -t $srcdir/configure conftestfile` +- fi +- if test "[$]*" != "X $srcdir/configure conftestfile" \ +- && test "[$]*" != "X conftestfile $srcdir/configure"; then +- +- # If neither matched, then we have a broken ls. This can happen +- # if, for instance, CONFIG_SHELL is bash and it inherits a +- # broken ls alias from the environment. This has actually +- # happened. Such a system could not be considered "sane". +- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +-alias in your environment]) +- fi ++# old names ++AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) ++AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) ++AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) ++AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) ++AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) ++AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) ++AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) ++ ++# This is just to silence aclocal about the macro not being used ++ifelse([AC_DISABLE_FAST_INSTALL]) ++ ++# NOTE: This macro has been submitted for inclusion into # ++# GNU Autoconf as AC_PROG_SED. When it is available in # ++# a released version of Autoconf we should remove this # ++# macro and use it instead. # ++# LT_AC_PROG_SED ++# -------------- ++# Check for a fully-functional sed program, that truncates ++# as few characters as possible. Prefer GNU sed if found. ++AC_DEFUN([LT_AC_PROG_SED], ++[AC_MSG_CHECKING([for a sed that does not truncate output]) ++AC_CACHE_VAL(lt_cv_path_SED, ++[# Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_executable_p="test -f" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done + +- test "[$]2" = conftestfile +- ) +-then +- # Ok. +- : +-else +- AC_MSG_ERROR([newly created file is older than distributed files! +-Check your system clock]) +-fi +-rm -f conftest* +-AC_MSG_RESULT(yes)]) ++ # Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} + +-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +-dnl The program must properly implement --version. +-AC_DEFUN(AM_MISSING_PROG, +-[AC_MSG_CHECKING(for working $2) +-# Run test in a subshell; some versions of sh will print an error if +-# an executable is not found, even if stderr is redirected. +-# Redirect stdin to placate older versions of autoconf. Sigh. +-if ($2 --version) < /dev/null > /dev/null 2>&1; then +- $1=$2 +- AC_MSG_RESULT(found) ++# Create a (secure) tmp directory for tmp files. ++: ${TMPDIR=/tmp} ++{ ++ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=$TMPDIR/sed$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ++ { (exit 1); exit 1; } ++} ++ _max=0 ++ _count=0 ++ # Add /usr/xpg4/bin/sed as it is typically found on Solaris ++ # along with /bin/sed that truncates output. ++ for _sed in $_sed_list /usr/xpg4/bin/sed; do ++ test ! -f ${_sed} && break ++ cat /dev/null > "$tmp/sed.in" ++ _count=0 ++ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ++ # Check for GNU sed and select it if it is found. ++ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ++ lt_cv_path_SED=${_sed} ++ break ++ fi ++ while true; do ++ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ++ mv "$tmp/sed.tmp" "$tmp/sed.in" ++ cp "$tmp/sed.in" "$tmp/sed.nl" ++ echo >>"$tmp/sed.nl" ++ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ++ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ++ # 40000 chars as input seems more than enough ++ test $_count -gt 10 && break ++ _count=`expr $_count + 1` ++ if test $_count -gt $_max; then ++ _max=$_count ++ lt_cv_path_SED=$_sed ++ fi ++ done ++ done ++ rm -rf "$tmp" ++]) ++if test "X$SED" != "X"; then ++ lt_cv_path_SED=$SED + else +- $1="$3/missing $2" +- AC_MSG_RESULT(missing) ++ SED=$lt_cv_path_SED + fi +-AC_SUBST($1)]) +- +-# Like AC_CONFIG_HEADER, but automatically create stamp file. +- +-AC_DEFUN(AM_CONFIG_HEADER, +-[AC_PREREQ([2.12]) +-AC_CONFIG_HEADER([$1]) +-dnl When config.status generates a header, we must update the stamp-h file. +-dnl This file resides in the same directory as the config header +-dnl that is generated. We must strip everything past the first ":", +-dnl and everything past the last "/". +-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl +-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, +-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, +-<<am_indx=1 +-for am_file in <<$1>>; do +- case " <<$>>CONFIG_HEADERS " in +- *" <<$>>am_file "*<<)>> +- echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx +- ;; +- esac +- am_indx=`expr "<<$>>am_indx" + 1` +-done<<>>dnl>>) +-changequote([,]))]) ++AC_MSG_RESULT([$SED]) ++]) + + # Add --enable-maintainer-mode option to configure. + # From Jim Meyering + + # serial 1 + +-AC_DEFUN(AM_MAINTAINER_MODE, ++AC_DEFUN([AM_MAINTAINER_MODE], + [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +@@ -556,7 +3811,7 @@ + + # Define a conditional. + +-AC_DEFUN(AM_CONDITIONAL, ++AC_DEFUN([AM_CONDITIONAL], + [AC_SUBST($1_TRUE) + AC_SUBST($1_FALSE) + if $2; then +@@ -585,7 +3840,7 @@ + # program @code{ansi2knr}, which comes with Ghostscript. + # @end defmac + +-AC_DEFUN(AM_PROG_CC_STDC, ++AC_DEFUN([AM_PROG_CC_STDC], + [AC_REQUIRE([AC_PROG_CC]) + AC_BEFORE([$0], [AC_C_INLINE]) + AC_BEFORE([$0], [AC_C_CONST]) +--- glib1.2-1.2.10.orig/gstrfuncs.c ++++ glib1.2-1.2.10/gstrfuncs.c +@@ -867,8 +867,8 @@ + /* beware of positional parameters + */ + case '$': +- g_warning (G_GNUC_PRETTY_FUNCTION +- "(): unable to handle positional parameters (%%n$)"); ++ g_warning ("%s(): unable to handle positional parameters (%%n$)", ++ G_GNUC_PRETTY_FUNCTION ); + len += 1024; /* try adding some safety padding */ + break; + +@@ -1034,8 +1034,8 @@ + /* n . dddddddddddddddddddddddd E +- eeee */ + conv_len += 1 + 1 + MAX (24, spec.precision) + 1 + 1 + 4; + if (spec.mod_extra_long) +- g_warning (G_GNUC_PRETTY_FUNCTION +- "(): unable to handle long double, collecting double only"); ++ g_warning ("%s(): unable to handle long double, collecting double only", ++ G_GNUC_PRETTY_FUNCTION); + #ifdef HAVE_LONG_DOUBLE + #error need to implement special handling for long double + #endif +@@ -1047,7 +1047,7 @@ + gint exp = u_double.mpn.biased_exponent; + + exp -= G_IEEE754_DOUBLE_BIAS; +- exp = exp * G_LOG_2_BASE_10 + 1; ++ exp = abs(exp * G_LOG_2_BASE_10) + 1; + conv_len += exp; + } + /* some printf() implementations require extra padding for rounding */ +@@ -1077,8 +1077,8 @@ + conv_done = TRUE; + if (spec.mod_long) + { +- g_warning (G_GNUC_PRETTY_FUNCTION +- "(): unable to handle wide char strings"); ++ g_warning ("%s(): unable to handle wide char strings", ++ G_GNUC_PRETTY_FUNCTION); + len += 1024; /* try adding some safety padding */ + } + break; +@@ -1108,8 +1108,8 @@ + conv_len += format - spec_start; + break; + default: +- g_warning (G_GNUC_PRETTY_FUNCTION +- "(): unable to handle `%c' while parsing format", ++ g_warning ("%s(): unable to handle `%c' while parsing format", ++ G_GNUC_PRETTY_FUNCTION, + c); + break; + } +--- glib1.2-1.2.10.orig/debian/libglib1.2-dev.doc-base ++++ glib1.2-1.2.10/debian/libglib1.2-dev.doc-base +@@ -0,0 +1,11 @@ ++Document: libglib1.2-dev ++Title: GLib C library documentation ++Author: Gregory McLean ++Abstract: Library reference for GLib C library of useful functions ++ This document goes into detail on each function of the GLib C library of useful ++ functions to deal with common structures like lists, trees, et cetera. ++Section: Apps/Programming ++ ++Format: HTML ++Index: /usr/share/doc/libglib1.2-dev/glib_toc.html ++Files: /usr/share/doc/libglib1.2-dev/glib.html +--- glib1.2-1.2.10.orig/debian/libglib1.2-dbg.docs ++++ glib1.2-1.2.10/debian/libglib1.2-dbg.docs +@@ -0,0 +1,2 @@ ++AUTHORS ++NEWS +--- glib1.2-1.2.10.orig/debian/watch ++++ glib1.2-1.2.10/debian/watch +@@ -0,0 +1,4 @@ ++# watch control file for uscan ++ ++version=3 ++http://ftp.gnome.org/pub/gnome/sources/glib/1.2/glib-(.*)\.tar\.gz +--- glib1.2-1.2.10.orig/debian/libglib1.2-dev.install ++++ glib1.2-1.2.10/debian/libglib1.2-dev.install +@@ -0,0 +1,10 @@ ++/usr/bin ++/usr/include/* ++/usr/lib/*.a ++/usr/lib/*.la ++/usr/lib/*.so ++/usr/lib/glib ++/usr/lib/pkgconfig/* ++/usr/share/aclocal ++/usr/share/info ++/usr/share/man +--- glib1.2-1.2.10.orig/debian/copyright ++++ glib1.2-1.2.10/debian/copyright +@@ -0,0 +1,31 @@ ++This package was first debianized by Ben Gertzfield <che@debian.org> on ++Mon, 27 Jul 1998 14:11:04 -0700. ++ ++It was downloaded from <http://ftp.gnome.org/pub/gnome/sources/glib/1.2/>. ++ ++Copyright Holder: Peter Mattis <petm@xcf.berkeley.edu>, ++ Spencer Kimball <spencer@xcf.berkeley.edu>, ++ Josh MacDonald <jmacd@xcf.berkeley.edu>. ++ ++License: ++ ++ Copyright (C) Peter Mattis <petm@xcf.berkeley.edu> ++ Copyright (C) Spencer Kimball <spencer@xcf.berkeley.edu> ++ Copyright (C) Josh MacDonald <jmacd@xcf.berkeley.edu> ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2 of the License, or (at your option) any later version. ++ ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ ++On Debian systems, the complete text of the GNU Lesser General Public License ++can be found in /usr/share/common-licenses/LGPL file. +--- glib1.2-1.2.10.orig/debian/libglib1.2.install ++++ glib1.2-1.2.10/debian/libglib1.2.install +@@ -0,0 +1 @@ ++/usr/lib/*.so.* +--- glib1.2-1.2.10.orig/debian/compat ++++ glib1.2-1.2.10/debian/compat +@@ -0,0 +1 @@ ++5 +--- glib1.2-1.2.10.orig/debian/libglib1.2.docs ++++ glib1.2-1.2.10/debian/libglib1.2.docs +@@ -0,0 +1,2 @@ ++AUTHORS ++NEWS +--- glib1.2-1.2.10.orig/debian/control ++++ glib1.2-1.2.10/debian/control +@@ -0,0 +1,37 @@ ++Source: glib1.2 ++Section: oldlibs ++Priority: optional ++Maintainer: Daniel Baumann <daniel@debian.org> ++Build-Depends: debhelper (>= 5), autotools-dev ++Standards-Version: 3.7.2 ++ ++Package: libglib1.2 ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: The GLib library of C routines ++ GLib is a library containing many useful C routines for things such as trees, ++ hashes, and lists. GLib was previously distributed with the GTK+ toolkit, but ++ has been split off as of version 1.1.0. ++ ++Package: libglib1.2-dev ++Architecture: any ++Depends: libglib1.2 (= ${Source-Version}), pkg-config ++Conflicts: libglib1.2-doc ++Replaces: libglib1.2-doc ++Provides: libglib-dev ++Description: The GLib library of C routines (development) ++ GLib is a library containing many useful C routines for things such as trees, ++ hashes, and lists. GLib was previously distributed with the GTK+ toolkit, but ++ has been split off as of version 1.1.0. ++ . ++ This package contains the development files. ++ ++Package: libglib1.2-dbg ++Priority: extra ++Architecture: any ++Description: The GLib library of C routines (debug) ++ GLib is a library containing many useful C routines for things such as trees, ++ hashes, and lists. GLib was previously distributed with the GTK+ toolkit, but ++ has been split off as of version 1.1.0. ++ . ++ This package contains the debug symbols. +--- glib1.2-1.2.10.orig/debian/rules ++++ glib1.2-1.2.10/debian/rules +@@ -0,0 +1,85 @@ ++#!/usr/bin/make -f ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++ ++CFLAGS = -Wall -g ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ ++config.status: configure ++ dh_testdir ++ ++ # Configuring package ++ CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --enable-debug=yes ++ ++build: build-stamp ++build-stamp: config.status ++ dh_testdir ++ ++ # Building package ++ $(MAKE) ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ ++ # Cleaning package ++ -$(MAKE) distclean ++ifneq "$(wildcard /usr/share/misc/config.sub)" "" ++ cp -f /usr/share/misc/config.sub config.sub ++endif ++ifneq "$(wildcard /usr/share/misc/config.guess)" "" ++ cp -f /usr/share/misc/config.guess config.guess ++endif ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Installing package ++ $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp ++ ++ # Installing lintian overrides ++ for LINTIAN in debian/lintian/*; \ ++ do \ ++ install -D -m 0644 $$LINTIAN debian/`basename $$LINTIAN`/usr/share/lintian/overrides/`basename $$LINTIAN` || exit 1; \ ++ done ++ ++binary-indep: build install ++ ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installchangelogs ChangeLog ++ dh_installdocs ++ dh_install --sourcedir=debian/tmp ++ dh_link ++ dh_strip --dbg-package=libglib1.2-dbg ++ dh_compress ++ dh_fixperms ++ dh_makeshlibs ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- glib1.2-1.2.10.orig/debian/lintian/libglib1.2 ++++ glib1.2-1.2.10/debian/lintian/libglib1.2 +@@ -0,0 +1 @@ ++libglib1.2: package-name-doesnt-match-sonames libgmodule-1.2-0 libglib-1.2-0 libgthread-1.2-0 +--- glib1.2-1.2.10.orig/debian/libglib1.2.shlibs ++++ glib1.2-1.2.10/debian/libglib1.2.shlibs +@@ -0,0 +1,3 @@ ++libglib-1.2 0 libglib1.2 (>= 1.2.0) ++libgmodule-1.2 0 libglib1.2 (>= 1.2.0) ++libgthread-1.2 0 libglib1.2 (>= 1.2.0) +--- glib1.2-1.2.10.orig/debian/changelog ++++ glib1.2-1.2.10/debian/changelog +@@ -0,0 +1,365 @@ ++glib1.2 (1.2.10-17) unstable; urgency=low ++ ++ * Added patch from Petr Salinger <Petr.Salinger@seznam.cz> for proper ++ libtoolizing (Closes: #261315). ++ * Moved sections to oldlib. ++ ++ -- Daniel Baumann <daniel@debian.org> Fri, 1 Dec 2006 10:01:00 +0100 ++ ++glib1.2 (1.2.10-16) unstable; urgency=low ++ ++ * Fixed underquoted glib.m4 (Closes: #396667). ++ ++ -- Daniel Baumann <daniel@debian.org> Wed, 29 Nov 2006 09:33:00 +0100 ++ ++glib1.2 (1.2.10-15) unstable; urgency=low ++ ++ * Relibtoolized in order to make it build on kfreebsd (Closes: #261315). ++ ++ -- Daniel Baumann <daniel@debian.org> Tue, 28 Nov 2006 17:29:00 +0100 ++ ++glib1.2 (1.2.10-14) unstable; urgency=medium ++ ++ * Added patch from Roland Stigge <stigge@antcom.de> to add check for ++ negative values in g_printf_string_upper_bound() (Closes: #387582). ++ ++ -- Daniel Baumann <daniel@debian.org> Sun, 29 Oct 2006 15:43:00 +0200 ++ ++glib1.2 (1.2.10-13) unstable; urgency=low ++ ++ * Readded temporary libglib-dev provides to libglib1.2-dev (Closes: #391239). ++ ++ -- Daniel Baumann <daniel@debian.org> Thu, 5 Oct 2006 21:01:00 +0200 ++ ++glib1.2 (1.2.10-12) unstable; urgency=low ++ ++ * New maintainer (Closes: #390845). ++ * Acknoledge NMU (Closes: #222892, #263042, #323511). ++ * Redone debian directory based on current debhelper templates, additionally: ++ - added lintian overrides. ++ - dropping useless README.Debian. ++ - fixed conflicts (Closes: #356895). ++ - merged libglib1.2-doc into libglib1.2-dev (useless micropackaging for two ++ html files; no other package has a relation to libglib1.2-doc). ++ - removed pre-sarge conflicts/replaces. ++ ++ -- Daniel Baumann <daniel@debian.org> Tue, 3 Oct 2006 15:14:00 +0200 ++ ++glib1.2 (1.2.10-11) unstable; urgency=low ++ ++ * Orphan this package. ++ ++ -- Akira TAGOH <tagoh@debian.org> Tue, 3 Oct 2006 18:50:20 +0900 ++ ++glib1.2 (1.2.10-10.1) unstable; urgency=high ++ ++ * Non-maintainer upload. ++ * High-urgency upload for RC bugfix. ++ * Remove __const__ from __asm__ declarations in glib.h. This makes gcc ++ happier and should make gabber buildable; thanks to Tollef Fog Heen for ++ the patch. Closes: #323511. ++ ++ -- Steve Langasek <vorlon@debian.org> Wed, 11 Jan 2006 03:06:34 -0800 ++ ++glib1.2 (1.2.10-10) unstable; urgency=low ++ ++ * gstrfuncs.c: ++ - patch from Andreas Jochens <aj@andaco.de> to fix the build with gcc4 ++ (Closes: #263042). ++ ++ -- Sebastien Bacher <seb128@debian.org> Wed, 4 May 2005 12:10:14 +0200 ++ ++glib1.2 (1.2.10-9) unstable; urgency=low ++ ++ * debian/control: ++ - bumped Standards-Version to 3.5.10.0. ++ - changed the sections for libglib1.2-dev and libglib1.2-dbg to libdevel. ++ * debian/compat: ++ - use it instead of DH_COMPAT. ++ * gmodule/Makefile.in, gthread/Makefile.in: ++ fix the undefined non-weak symbols. (closes: Bug#193347) ++ ++ -- Akira TAGOH <tagoh@debian.org> Sun, 18 May 2003 00:00:17 +0900 ++ ++glib1.2 (1.2.10-8) unstable; urgency=low ++ ++ * Fixed libtool issue on mispel. (closes: Bug#183793) ++ * acinclude.m4, ltconfig: ++ - removed. it contained the old libtool stuff. ++ ++ -- Akira TAGOH <tagoh@debian.org> Tue, 11 Mar 2003 23:36:10 +0900 ++ ++glib1.2 (1.2.10-7) unstable; urgency=low ++ ++ * debian/rules: ++ - fix twice modified the maintainer script for dh_installdocs. ++ - support DEB_HOST_GNU_TYPE and DEB_BUILD_GNU_TYPE. ++ - support noopt and nostrip for DEB_BUILD_OPTIONS. ++ - copy the latest config.sub and config.guess. (closes: Bug#181942) ++ - don't call ldconfig for -dbg package. ++ * debian/control: ++ - bumped Standards-Version to 3.5.8. ++ - updated Build-Depends. ++ - split the documentation files into libglib1.2-doc. ++ * debian/libglib1.2-doc.info: add glib.info. (closes: Bug#159677) ++ ++ -- Akira TAGOH <tagoh@debian.org> Thu, 27 Feb 2003 00:12:39 +0900 ++ ++glib1.2 (1.2.10-6) unstable; urgency=low ++ ++ * debian/control: ++ - removed libc6-dev from Build-Depends. ++ - changed libc6-dev to libc6-dev | libc-dev in -dev's Depends. ++ ++ -- Akira TAGOH <tagoh@debian.org> Thu, 22 Aug 2002 02:02:32 +0900 ++ ++glib1.2 (1.2.10-5) unstable; urgency=low ++ ++ * debian/control: add libc6-dev to Depends for -dev (closes: Bug#147653) ++ ++ -- Akira TAGOH <tagoh@debian.org> Wed, 22 May 2002 23:58:14 +0900 ++ ++glib1.2 (1.2.10-4) unstable; urgency=low ++ ++ * debian/control: Fixed build-depends for NetBSD/i386 (closes: Bug#133443) ++ ++ -- Akira TAGOH <tagoh@debian.org> Wed, 13 Feb 2002 02:22:20 +0900 ++ ++glib1.2 (1.2.10-3) unstable; urgency=low ++ ++ * Closed a NMU bug. (closes: Bug#93932) ++ * Fixed description typo (closes: Bug#102988) ++ * -dbg package contains shared libraries for debugging. so if you ++ need static link, add -static to compiler option and use ++ static libraries which is included in libglib1.2-dev. ++ ++ -- Akira TAGOH <tagoh@debian.org> Sat, 24 Nov 2001 20:54:25 +0900 ++ ++glib1.2 (1.2.10-2) unstable; urgency=low ++ ++ * I took over this package from Ben. ++ * Closed a bug because it is already fixed in the latest release. ++ (closes: Bug#62463) ++ ++ -- Akira TAGOH <tagoh@debian.org> Sat, 10 Nov 2001 19:49:14 +0900 ++ ++glib1.2 (1.2.10-1.2) unstable; urgency=low ++ ++ * Non-Maintainer Upload, approved by Ben. ++ * Updated config.sub and config.guess for ia64 (closes: #93932). ++ * If -dev's postinst fails at install-info, have a look at Bug#99816. ++ ++ -- Jordi Mallach <jordi@debian.org> Sat, 23 Jun 2001 05:28:15 +0200 ++ ++glib1.2 (1.2.10-1.1) unstable; urgency=low ++ ++ * Binary-only rebuild because of gcc 2.95 atexit() problem on i386. ++ (Closes: #93052) ++ ++ -- Ben Gertzfield <che@debian.org> Wed, 11 Apr 2001 19:46:27 -0700 ++ ++glib1.2 (1.2.10-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Patch config.sub for s390 architecture. (Closes: #88553) ++ ++ -- Ben Gertzfield <che@debian.org> Sun, 1 Apr 2001 21:44:47 -0700 ++ ++glib1.2 (1.2.9-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Include upstream changelog. (Closes: #59744) ++ * Note that the include files have been moved (according to ++ upstream) to /usr/include/glib-1.2/, but this should not be a ++ problem for anything using glib-config. Please, PLEASE, don't ++ submit bugs on my poor packages because your program isn't using ++ glib-config! ++ * Fix bashisms in debian/rules. (Hah, caught 'em on my own..) ++ ++ -- Ben Gertzfield <che@debian.org> Fri, 2 Mar 2001 16:18:36 -0800 ++ ++glib1.2 (1.2.8-2) unstable; urgency=low ++ ++ * Bump Standards-Version to 3.2.1. ++ ++ -- Ben Gertzfield <che@debian.org> Sat, 23 Dec 2000 01:31:39 -0800 ++ ++glib1.2 (1.2.8-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Wed, 24 May 2000 19:41:54 -0700 ++ ++glib1.2 (1.2.7-2) frozen unstable; urgency=medium ++ ++ * Fix "guard code" in configure.in that tests for gcc version ++ greater than 2.8 (will fail when 3.0 comes out.) This fixes ++ *half* of the release-critical bug report #55246. ++ * The other half of RC bug #55246 is not really a glib problem; ++ G_GNUC_EXTENSION arguably should be defined on all platforms, but ++ that's up to upstream to change this. It's been reported upstream as ++ gnome bug #6328, http://bugs.gnome.org/db/63/6328.html. In any case, ++ gentoo should be using G_GINT64_CONSTANT(12345) for portably declaring ++ 64-bit constants, instead of the undocumented, internal, ++ not-defined-on-all-platforms G_GNUC_EXTENSION. I will be reassigning ++ the remainder of RC bug #55246 to gentoo. ++ ++ -- Ben Gertzfield <che@debian.org> Mon, 28 Feb 2000 12:33:57 -0800 ++ ++glib1.2 (1.2.7-1) frozen unstable; urgency=low ++ ++ * To fix i18n problems with GTK+, glib 1.2.7 and gtk+ 1.2.7 ++ must both make it into frozen. ++ * (New upstream version, too. :) ++ ++ -- Ben Gertzfield <che@debian.org> Thu, 17 Feb 2000 09:12:20 -0800 ++ ++glib1.2 (1.2.6-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Make sure docs are in /usr/share/doc/libglib1.2 etc. ++ ++ -- Ben Gertzfield <che@debian.org> Fri, 15 Oct 1999 09:44:19 -0700 ++ ++glib1.2 (1.2.5-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Fri, 24 Sep 1999 09:27:25 -0700 ++ ++glib1.2 (1.2.4-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Tue, 24 Aug 1999 11:10:11 -0700 ++ ++glib1.2 (1.2.3-2) unstable; urgency=low ++ ++ * Erg. Make sure -dev depends on exact version of lib, and -dbg ++ depends on exact version of -dev and lib. ++ ++ -- Ben Gertzfield <che@debian.org> Tue, 27 Jul 1999 15:24:33 -0700 ++ ++glib1.2 (1.2.3-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Tue, 11 May 1999 20:55:00 -0700 ++ ++glib1.2 (1.2.2-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Mon, 26 Apr 1999 18:15:06 -0700 ++ ++glib1.2 (1.2.1-2) unstable; urgency=low ++ ++ * Recompile with GNU libc 2.1. ++ ++ -- Ben Gertzfield <che@debian.org> Thu, 15 Apr 1999 13:26:50 -0700 ++ ++glib1.2 (1.2.1-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Make the shlibs looser; now packages depend on libglib1.2 (>= 1.2.0) ++ ++ -- Ben Gertzfield <che@debian.org> Thu, 25 Mar 1999 10:33:26 -0800 ++ ++glib1.2 (1.2.0-1) unstable; urgency=low ++ ++ * Hallelujah! :) We made it. ++ ++ -- Ben Gertzfield <che@debian.org> Thu, 25 Feb 1999 22:17:36 -0800 ++ ++glib1.1.16 (1.1.16-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Tue, 16 Feb 1999 16:55:07 -0800 ++ ++glib1.1.13 (1.1.13-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Wed, 20 Jan 1999 18:25:48 -0800 ++ ++glib1.1.12 (1.1.12-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Mon, 4 Jan 1999 14:13:59 -0800 ++ ++glib1.1.11 (1.1.11-1) unstable; urgency=low ++ ++ * New upstream version. (They skipped .10.) ++ ++ -- Ben Gertzfield <che@debian.org> Wed, 30 Dec 1998 21:46:40 -0800 ++ ++glib1.1.9 (1.1.9-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Now debian/rules uses a $(version) variable to make my life easier. ++ ++ -- Ben Gertzfield <che@debian.org> Thu, 17 Dec 1998 10:36:27 -0800 ++ ++glib1.1.6 (1.1.6-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Tue, 8 Dec 1998 20:54:59 -0800 ++ ++glib1.1.5 (1.1.5-2) unstable; urgency=low ++ ++ * Now libglib1.1.5-dev Provides: libglib-dev and libglib1.1-dev. ++ ++ -- Ben Gertzfield <che@debian.org> Sun, 29 Nov 1998 17:59:52 -0800 ++ ++glib1.1.5 (1.1.5-1) unstable; urgency=low ++ ++ * Now the source and binary packages *all* specifically have the version ++ number in them. This is so a new release of glib or gtk+ does not break ++ all apps dependant upon glib or gtk+'s unstable branch. ++ * Removed --enable-debug=no from libglib1.1 build; it was causing problems ++ ++ -- Ben Gertzfield <che@debian.org> Tue, 24 Nov 1998 14:25:15 -0800 ++ ++glib (1.1.4-1) unstable; urgency=low ++ ++ * New upstream version. ++ * debian/control: libglib-dev and libglib-dbg now depend on ${Source-Version} ++ of libglib1.1 to make upgrades force you to have one version of the library ++ and -dev and -dbg, no more multiple versions allowed. ++ ++ -- Ben Gertzfield <che@debian.org> Thu, 5 Nov 1998 10:50:03 -0800 ++ ++glib (1.1.3-2) unstable; urgency=low ++ ++ * Rebuild with new clean-dbg target to fix my error helped along by ++ an old broken debhelper. ++ ++ -- Ben Gertzfield <che@debian.org> Tue, 29 Sep 1998 13:01:24 -0700 ++ ++glib (1.1.3-1) unstable; urgency=low ++ ++ * New upstream version. ++ * New libglib-dbg package. ++ ++ -- Ben Gertzfield <che@debian.org> Mon, 21 Sep 1998 22:30:46 -0700 ++ ++glib (1.1.2-1) unstable; urgency=low ++ ++ * New upstream version (that was fast!). ++ ++ -- Ben Gertzfield <che@debian.org> Wed, 5 Aug 1998 12:13:59 -0700 ++ ++glib (1.1.1-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield <che@debian.org> Tue, 4 Aug 1998 22:42:09 -0700 ++ ++glib (1.1.0-1) unstable; urgency=low ++ ++ * Split off of GTK+ package upstream. New package. ++ ++ -- Ben Gertzfield <che@debian.org> Mon, 27 Jul 1998 14:11:04 -0700 +--- glib1.2-1.2.10.orig/debian/libglib1.2-dev.docs ++++ glib1.2-1.2.10/debian/libglib1.2-dev.docs +@@ -0,0 +1,4 @@ ++AUTHORS ++NEWS ++docs/*.html ++docs/*.texi +--- glib1.2-1.2.10.orig/glibconfig-sysdefs.h ++++ glib1.2-1.2.10/glibconfig-sysdefs.h +@@ -0,0 +1,6 @@ ++#define GLIB_SYSDEF_POLLIN =1 ++#define GLIB_SYSDEF_POLLOUT =4 ++#define GLIB_SYSDEF_POLLPRI =2 ++#define GLIB_SYSDEF_POLLERR =8 ++#define GLIB_SYSDEF_POLLHUP =16 ++#define GLIB_SYSDEF_POLLNVAL =32 +--- glib1.2-1.2.10.orig/glib.h ++++ glib1.2-1.2.10/glib.h +@@ -535,7 +535,7 @@ + if (__builtin_constant_p (val)) \ + __v = GUINT16_SWAP_LE_BE_CONSTANT (val); \ + else \ +- __asm__ __const__ ("rorw $8, %w0" \ ++ __asm__ ("rorw $8, %w0" \ + : "=r" (__v) \ + : "0" ((guint16) (val))); \ + __v; })) +@@ -548,7 +548,7 @@ + if (__builtin_constant_p (val)) \ + __v = GUINT32_SWAP_LE_BE_CONSTANT (val); \ + else \ +- __asm__ __const__ ("rorw $8, %w0\n\t" \ ++ __asm__ ("rorw $8, %w0\n\t" \ + "rorl $16, %0\n\t" \ + "rorw $8, %w0" \ + : "=r" (__v) \ +@@ -561,7 +561,7 @@ + if (__builtin_constant_p (val)) \ + __v = GUINT32_SWAP_LE_BE_CONSTANT (val); \ + else \ +- __asm__ __const__ ("bswap %0" \ ++ __asm__ ("bswap %0" \ + : "=r" (__v) \ + : "0" ((guint32) (val))); \ + __v; })) diff --git a/source/l/glib/slack-desc b/source/l/glib/slack-desc new file mode 100644 index 000000000..12c64008e --- /dev/null +++ b/source/l/glib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glib: glib (library of C routines, version 1.x) +glib: +glib: GLib is a library which includes support routines for C such as lists, +glib: trees, hashes, memory allocation, and many other things. +glib: +glib: GLib is required by nearly everything that uses GTK+ version 1.x. +glib: +glib: +glib: +glib: +glib: diff --git a/source/l/glib2/doinst.sh b/source/l/glib2/doinst.sh new file mode 100644 index 000000000..60a19898e --- /dev/null +++ b/source/l/glib2/doinst.sh @@ -0,0 +1,27 @@ +# Handle the incoming configuration files: +config() { + for infile in $1; do + NEW="$infile" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} + +# Prepare the new configuration files +for file in etc/profile.d/libglib2.csh.new etc/profile.d/libglib2.sh.new ; do + if test -e $(dirname $file)/$(basename $file .new) ; then + if [ ! -x $(dirname $file)/$(basename $file .new) ]; then + chmod 644 $file + else + chmod 755 $file + fi + fi + config $file +done diff --git a/source/l/glib2/glib-CVE-2008-4316.diff b/source/l/glib2/glib-CVE-2008-4316.diff new file mode 100644 index 000000000..5d9bddee1 --- /dev/null +++ b/source/l/glib2/glib-CVE-2008-4316.diff @@ -0,0 +1,62 @@ +--- trunk/glib/gbase64.c 2009/02/23 04:30:06 7897 ++++ trunk/glib/gbase64.c 2009/03/12 13:30:55 7973 +@@ -54,8 +54,9 @@ + * + * The output buffer must be large enough to fit all the data that will + * be written to it. Due to the way base64 encodes you will need +- * at least: @len * 4 / 3 + 6 bytes. If you enable line-breaking you will +- * need at least: @len * 4 / 3 + @len * 4 / (3 * 72) + 7 bytes. ++ * at least: (@len / 3 + 1) * 4 + 4 bytes (+ 4 may be needed in case of ++ * non-zero state). If you enable line-breaking you will need at least: ++ * ((@len / 3 + 1) * 4 + 4) / 72 + 1 bytes of extra space. + * + * @break_lines is typically used when putting base64-encoded data in emails. + * It breaks the lines at 72 columns instead of putting all of the text on +@@ -233,8 +234,14 @@ + g_return_val_if_fail (data != NULL, NULL); + g_return_val_if_fail (len > 0, NULL); + +- /* We can use a smaller limit here, since we know the saved state is 0 */ +- out = g_malloc (len * 4 / 3 + 4); ++ /* We can use a smaller limit here, since we know the saved state is 0, ++ +1 is needed for trailing \0, also check for unlikely integer overflow */ ++ if (len >= ((G_MAXSIZE - 1) / 4 - 1) * 3) ++ g_error("%s: input too large for Base64 encoding (%"G_GSIZE_FORMAT" chars)", ++ G_STRLOC, len); ++ ++ out = g_malloc ((len / 3 + 1) * 4 + 1); ++ + outlen = g_base64_encode_step (data, len, FALSE, out, &state, &save); + outlen += g_base64_encode_close (FALSE, out + outlen, &state, &save); + out[outlen] = '\0'; +@@ -275,7 +282,8 @@ + * + * The output buffer must be large enough to fit all the data that will + * be written to it. Since base64 encodes 3 bytes in 4 chars you need +- * at least: @len * 3 / 4 bytes. ++ * at least: (@len / 4) * 3 + 3 bytes (+ 3 may be needed in case of non-zero ++ * state). + * + * Return value: The number of bytes of output that was written + * +@@ -358,7 +366,8 @@ + gsize *out_len) + { + guchar *ret; +- gint input_length, state = 0; ++ gsize input_length; ++ gint state = 0; + guint save = 0; + + g_return_val_if_fail (text != NULL, NULL); +@@ -368,7 +377,9 @@ + + g_return_val_if_fail (input_length > 1, NULL); + +- ret = g_malloc0 (input_length * 3 / 4); ++ /* We can use a smaller limit here, since we know the saved state is 0, ++ +1 used to avoid calling g_malloc0(0), and hence retruning NULL */ ++ ret = g_malloc0 ((input_length / 4) * 3 + 1); + + *out_len = g_base64_decode_step (text, input_length, ret, &state, &save); + diff --git a/source/l/glib2/glib2.SlackBuild b/source/l/glib2/glib2.SlackBuild new file mode 100755 index 000000000..23211af80 --- /dev/null +++ b/source/l/glib2/glib2.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.18.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-glib2 +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf glib-$VERSION +tar xvf $CWD/glib-$VERSION.tar.bz2 || exit 1 +cd glib-$VERSION + +zcat $CWD/glib-CVE-2008-4316.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Install profile scripts: +mkdir -p $PKG/etc/profile.d/ +cp -a $CWD/libglib2.{csh,sh} $PKG/etc/profile.d/ +chown root:root $PKG/etc/profile.d/* +chmod 755 $PKG/etc/profile.d/* +mv $PKG/etc/profile.d/libglib2.csh $PKG/etc/profile.d/libglib2.csh.new +mv $PKG/etc/profile.d/libglib2.sh $PKG/etc/profile.d/libglib2.sh.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/glib-$VERSION +cp -a \ + AUTHORS COPYING NEWS README \ + $PKG/usr/doc/glib-$VERSION +( cd $PKG/usr/doc/glib-$VERSION ; ln -s /usr/share/gtk-doc/html/gobject html ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/glib2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/glib2/libglib2.csh b/source/l/glib2/libglib2.csh new file mode 100644 index 000000000..584f06bf7 --- /dev/null +++ b/source/l/glib2/libglib2.csh @@ -0,0 +1,27 @@ +#!/bin/csh +# +# Description: This script sets the environment variables G_FILENAME_ENCODING +# and G_BROKEN_FILENAMES for the glib-2.0 library. +# +# G_FILENAME_ENCODING +# This environment variable can be set to a comma-separated list of +# character set names. GLib assumes that filenames are encoded in the +# first character set from that list rather than in UTF-8. The special +# token "@locale" can be used to specify the character set for the +# current locale. +# +# G_BROKEN_FILENAMES +# If this environment variable is set, GLib assumes that filenames are +# in the locale encoding rather than in UTF-8. + +# If the LANG you have set contains any form of "UTF", we will guess you are +# using a UTF-8 locale. Hopefully we're correct. +echo $LANG | grep -iq UTF +if ($status == 0) then + export G_FILENAME_ENCODING="@locale" +endif + +# It doesn't hurt to export this since G_FILENAME_ENCODING takes priority +# over G_BROKEN_FILENAMES: +setenv G_BROKEN_FILENAMES 1 + diff --git a/source/l/glib2/libglib2.sh b/source/l/glib2/libglib2.sh new file mode 100644 index 000000000..9b9fdc69f --- /dev/null +++ b/source/l/glib2/libglib2.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Description: This script sets the environment variables G_FILENAME_ENCODING +# and G_BROKEN_FILENAMES for the glib-2.0 library. +# +# G_FILENAME_ENCODING +# This environment variable can be set to a comma-separated list of +# character set names. GLib assumes that filenames are encoded in the +# first character set from that list rather than in UTF-8. The special +# token "@locale" can be used to specify the character set for the +# current locale. +# +# G_BROKEN_FILENAMES +# If this environment variable is set, GLib assumes that filenames are +# in the locale encoding rather than in UTF-8. + +# If the LANG you have set contains any form of "UTF", we will guess you are +# using a UTF-8 locale. Hopefully we're correct. +if echo $LANG | grep -iq UTF ; then + export G_FILENAME_ENCODING="@locale" +fi + +# It doesn't hurt to export this since G_FILENAME_ENCODING takes priority +# over G_BROKEN_FILENAMES: +export G_BROKEN_FILENAMES=1 + diff --git a/source/l/glib2/slack-desc b/source/l/glib2/slack-desc new file mode 100644 index 000000000..1633f2f7a --- /dev/null +++ b/source/l/glib2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glib2: glib2 (library of C routines) +glib2: +glib2: GLib is a library which includes support routines for C such as lists, +glib2: trees, hashes, memory allocation, and many other things. +glib2: +glib2: +glib2: +glib2: +glib2: +glib2: +glib2: diff --git a/source/l/glibc/doinst.sh-glibc b/source/l/glibc/doinst.sh-glibc new file mode 100644 index 000000000..e85810f7a --- /dev/null +++ b/source/l/glibc/doinst.sh-glibc @@ -0,0 +1,193 @@ +#!/bin/sh +# Copyright (C) 2002, 2005 Slackware Linux, Inc. +# Copyright 2005, 2006, 2007 Patrick J. Volkerding, Sebeka, Minnesota, USA +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Swap glibc on the fly. +# +# If we're on a running system we have to handle this _very_ carefully. :-) +# The tricks involved here get trickier every time... + +# OK, now we have to be sure of a few things. First, you do have a 2.6 +# kernel running, right? + +if [ -r /proc/ksyms ]; then + echo "FATAL: you need to be running a 2.6.x kernel in order to upgrade" + echo "to this version of glibc." + echo + sleep 999 + exit 1 +fi + +# Next, stop using the /lib/ntpl libraries. These are now obsolete and +# will break the installation if present: +if [ -d lib/tls ]; then + mkdir -p lib/obsolete + mv lib/tls lib/obsolete +fi +if [ -x sbin/ldconfig ]; then + sbin/ldconfig -r . +fi + +# Install NPTL glibc libraries: +if [ -x /sbin/ldconfig -a -d lib/incoming ]; then # swap on the fly + # First create copies of the incoming libraries: + ( cd lib/incoming + for file in * ; do + if [ ! -r ../${file}.incoming ]; then + cp -a $file ../${file}.incoming + fi + done + ) + # Then switch to them all at once: + /sbin/ldconfig -l lib/*.incoming 2> /dev/null + # Finally, rename them and clean up: + ( cd lib + for file in *.incoming ; do + rm -f `basename $file .incoming` + cp -a $file `basename $file .incoming` + /sbin/ldconfig -l `basename $file .incoming` + rm -f $file + done + ) +else # no ldconfig? Good, it's safe to just jam it on home (and make links below): + ( cd lib/incoming + for file in * ; do + cp -a $file .. + done + ) +fi +# Now, get rid of the temporary directory: +rm -rf lib/incoming +# Done installing NPTL glibc libraries. + +# Timezone stuff: +if [ -L etc/localtime -a ! -r etc/localtime-copied-from ]; then + mv etc/localtime etc/localtime-copied-from + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi +# Add the default timezone in /etc, if none exists: +if [ ! -r etc/localtime ]; then + ( cd etc ; rm -rf localtime localtime-copied-from ) + ( cd etc ; ln -sf /usr/share/zoneinfo/Factory localtime-copied-from ) + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi +# Add the default link in /usr/share/zoneinfo, if none exists: +if [ ! -L usr/share/zoneinfo/localtime ]; then + ( cd usr/share/zoneinfo ; rm -rf localtime ) + ( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime ) +fi +( cd usr/share/zoneinfo ; rm -rf timeconfig ) +( cd usr/share/zoneinfo ; ln -sf /usr/sbin/timeconfig timeconfig ) + +# Handle config files: +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/nscd.conf.new +config etc/profile.d/glibc.csh.new +config etc/profile.d/glibc.sh.new +# Clearly you already decided this issue. :-) +rm -f etc/profile.d/glibc.csh.new +rm -f etc/profile.d/glibc.sh.new + +# In case there's no ldconfig, make the links manually: +if [ ! -x /sbin/ldconfig ]; then +# linuxthreads: +( cd lib ; rm -rf libnss_nis.so.2 ) +( cd lib ; ln -sf libnss_nis-2.9.so libnss_nis.so.2 ) +( cd lib ; rm -rf libm.so.6 ) +( cd lib ; ln -sf libm-2.9.so libm.so.6 ) +( cd lib ; rm -rf libnss_files.so.2 ) +( cd lib ; ln -sf libnss_files-2.9.so libnss_files.so.2 ) +( cd lib ; rm -rf libresolv.so.2 ) +( cd lib ; ln -sf libresolv-2.9.so libresolv.so.2 ) +( cd lib ; rm -rf libnsl.so.1 ) +( cd lib ; ln -sf libnsl-2.9.so libnsl.so.1 ) +( cd lib ; rm -rf libutil.so.1 ) +( cd lib ; ln -sf libutil-2.9.so libutil.so.1 ) +( cd lib ; rm -rf libnss_compat.so.2 ) +( cd lib ; ln -sf libnss_compat-2.9.so libnss_compat.so.2 ) +( cd lib ; rm -rf libthread_db.so.1 ) +( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 ) +( cd lib ; rm -rf libnss_hesiod.so.2 ) +( cd lib ; ln -sf libnss_hesiod-2.9.so libnss_hesiod.so.2 ) +( cd lib ; rm -rf libanl.so.1 ) +( cd lib ; ln -sf libanl-2.9.so libanl.so.1 ) +( cd lib ; rm -rf libcrypt.so.1 ) +( cd lib ; ln -sf libcrypt-2.9.so libcrypt.so.1 ) +( cd lib ; rm -rf libBrokenLocale.so.1 ) +( cd lib ; ln -sf libBrokenLocale-2.9.so libBrokenLocale.so.1 ) +( cd lib ; rm -rf ld-linux.so.2 ) +( cd lib ; ln -sf ld-2.9.so ld-linux.so.2 ) +( cd lib ; rm -rf libdl.so.2 ) +( cd lib ; ln -sf libdl-2.9.so libdl.so.2 ) +( cd lib ; rm -rf libnss_dns.so.2 ) +( cd lib ; ln -sf libnss_dns-2.9.so libnss_dns.so.2 ) +( cd lib ; rm -rf libpthread.so.0 ) +( cd lib ; ln -sf libpthread-2.9.so libpthread.so.0 ) +( cd lib ; rm -rf libnss_nisplus.so.2 ) +( cd lib ; ln -sf libnss_nisplus-2.9.so libnss_nisplus.so.2 ) +( cd lib ; rm -rf libc.so.6 ) +( cd lib ; ln -sf libc-2.9.so libc.so.6 ) +( cd lib ; rm -rf librt.so.1 ) +( cd lib ; ln -sf librt-2.9.so librt.so.1 ) +fi + +# More links: +( cd usr/lib ; rm -rf libnss_nisplus.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_nisplus.so.2 libnss_nisplus.so ) +# This is now a linker script: +#( cd usr/lib ; rm -rf libpthread.so ) +#( cd usr/lib ; ln -sf ../../lib/libpthread.so.0 libpthread.so ) +( cd usr/lib ; rm -rf libresolv.so ) +( cd usr/lib ; ln -sf ../../lib/libresolv.so.2 libresolv.so ) +( cd usr/lib ; rm -rf libnsl.so ) +( cd usr/lib ; ln -sf ../../lib/libnsl.so.1 libnsl.so ) +( cd usr/lib ; rm -rf libnss_hesiod.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_hesiod.so.2 libnss_hesiod.so ) +( cd usr/lib ; rm -rf libnss_files.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_files.so.2 libnss_files.so ) +( cd usr/lib ; rm -rf libm.so ) +( cd usr/lib ; ln -sf ../../lib/libm.so.6 libm.so ) +( cd usr/lib ; rm -rf libutil.so ) +( cd usr/lib ; ln -sf ../../lib/libutil.so.1 libutil.so ) +( cd usr/lib ; rm -rf libnss_compat.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_compat.so.2 libnss_compat.so ) +( cd usr/lib ; rm -rf libthread_db.so ) +( cd usr/lib ; ln -sf ../../lib/libthread_db.so.1 libthread_db.so ) +( cd usr/lib ; rm -rf libcrypt.so ) +( cd usr/lib ; ln -sf ../../lib/libcrypt.so.1 libcrypt.so ) +( cd usr/lib ; rm -rf libBrokenLocale.so ) +( cd usr/lib ; ln -sf ../../lib/libBrokenLocale.so.1 libBrokenLocale.so ) +( cd usr/lib ; rm -rf libdl.so ) +( cd usr/lib ; ln -sf ../../lib/libdl.so.2 libdl.so ) +( cd usr/lib ; rm -rf libnss_dns.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_dns.so.2 libnss_dns.so ) +( cd usr/lib ; rm -rf librt.so ) +( cd usr/lib ; ln -sf ../../lib/librt.so.1 librt.so ) +( cd usr/lib ; rm -rf libanl.so ) +( cd usr/lib ; ln -sf ../../lib/libanl.so.1 libanl.so ) +( cd usr/lib ; rm -rf libnss_nis.so ) +( cd usr/lib ; ln -sf ../../lib/libnss_nis.so.2 libnss_nis.so ) +( cd usr/share/zoneinfo ; rm -rf localtime ) +( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime ) +( cd bin ; rm -rf sln ) +( cd bin ; ln -sf /sbin/sln sln ) diff --git a/source/l/glibc/doinst.sh-glibc-solibs b/source/l/glibc/doinst.sh-glibc-solibs new file mode 100644 index 000000000..bfc7ad85c --- /dev/null +++ b/source/l/glibc/doinst.sh-glibc-solibs @@ -0,0 +1,132 @@ +#!/bin/sh +# Copyright (C) 2002, 2005 Slackware Linux, Inc. +# Copyright 2005, 2006 Patrick J. Volkerding, Sebeka, Minnesota, USA +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Swap glibc on the fly. +# +# If we're on a running system we have to handle this _very_ carefully. :-) +# The tricks involved here get trickier every time... + +# OK, now we have to be sure of a few things. First, you do have a 2.6 +# kernel running, right? + +if [ -r /proc/ksyms ]; then + echo "FATAL: you need to be running a 2.6.x kernel in order to upgrade" + echo "to this version of glibc." + echo + sleep 999 + exit 1 +fi + +# Next, stop using the /lib/ntpl libraries. These are now obsolete and +# will break the installation if present: +if [ -d lib/tls ]; then + mkdir -p lib/obsolete + mv lib/tls lib/obsolete +fi +if [ -x sbin/ldconfig ]; then + sbin/ldconfig -r . +fi + +# Install NPTL glibc libraries: +if [ -x /sbin/ldconfig -a -d lib/incoming ]; then # swap on the fly + # First create copies of the incoming libraries: + ( cd lib/incoming + for file in * ; do + if [ ! -r ../${file}.incoming ]; then + cp -a $file ../${file}.incoming + fi + done + ) + # Then switch to them all at once: + /sbin/ldconfig -l lib/*.incoming 2> /dev/null + # Finally, rename them and clean up: + ( cd lib + for file in *.incoming ; do + rm -f `basename $file .incoming` + cp -a $file `basename $file .incoming` + /sbin/ldconfig -l `basename $file .incoming` + rm -f $file + done + ) +else # no ldconfig? Good, it's safe to just jam it on home (and make links below): + ( cd lib/incoming + for file in * ; do + cp -a $file .. + done + ) +fi +# Now, get rid of the temporary directory: +rm -rf lib/incoming +# Done installing NPTL glibc libraries. + +# Handle config files: +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/profile.d/glibc.csh.new +config etc/profile.d/glibc.sh.new +# Clearly you already decided this issue. :-) +rm -f etc/profile.d/glibc.csh.new +rm -f etc/profile.d/glibc.sh.new + +# In case there's no ldconfig, make the links manually: +if [ ! -x /sbin/ldconfig ]; then +# linuxthreads: +( cd lib ; rm -rf libnss_nis.so.2 ) +( cd lib ; ln -sf libnss_nis-2.9.so libnss_nis.so.2 ) +( cd lib ; rm -rf libm.so.6 ) +( cd lib ; ln -sf libm-2.9.so libm.so.6 ) +( cd lib ; rm -rf libnss_files.so.2 ) +( cd lib ; ln -sf libnss_files-2.9.so libnss_files.so.2 ) +( cd lib ; rm -rf libresolv.so.2 ) +( cd lib ; ln -sf libresolv-2.9.so libresolv.so.2 ) +( cd lib ; rm -rf libnsl.so.1 ) +( cd lib ; ln -sf libnsl-2.9.so libnsl.so.1 ) +( cd lib ; rm -rf libutil.so.1 ) +( cd lib ; ln -sf libutil-2.9.so libutil.so.1 ) +( cd lib ; rm -rf libnss_compat.so.2 ) +( cd lib ; ln -sf libnss_compat-2.9.so libnss_compat.so.2 ) +( cd lib ; rm -rf libthread_db.so.1 ) +( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 ) +( cd lib ; rm -rf libnss_hesiod.so.2 ) +( cd lib ; ln -sf libnss_hesiod-2.9.so libnss_hesiod.so.2 ) +( cd lib ; rm -rf libanl.so.1 ) +( cd lib ; ln -sf libanl-2.9.so libanl.so.1 ) +( cd lib ; rm -rf libcrypt.so.1 ) +( cd lib ; ln -sf libcrypt-2.9.so libcrypt.so.1 ) +( cd lib ; rm -rf libBrokenLocale.so.1 ) +( cd lib ; ln -sf libBrokenLocale-2.9.so libBrokenLocale.so.1 ) +( cd lib ; rm -rf ld-linux.so.2 ) +( cd lib ; ln -sf ld-2.9.so ld-linux.so.2 ) +( cd lib ; rm -rf libdl.so.2 ) +( cd lib ; ln -sf libdl-2.9.so libdl.so.2 ) +( cd lib ; rm -rf libnss_dns.so.2 ) +( cd lib ; ln -sf libnss_dns-2.9.so libnss_dns.so.2 ) +( cd lib ; rm -rf libpthread.so.0 ) +( cd lib ; ln -sf libpthread-2.9.so libpthread.so.0 ) +( cd lib ; rm -rf libnss_nisplus.so.2 ) +( cd lib ; ln -sf libnss_nisplus-2.9.so libnss_nisplus.so.2 ) +( cd lib ; rm -rf libc.so.6 ) +( cd lib ; ln -sf libc-2.9.so libc.so.6 ) +( cd lib ; rm -rf librt.so.1 ) +( cd lib ; ln -sf librt-2.9.so librt.so.1 ) +fi diff --git a/source/l/glibc/doinst.sh-glibc-zoneinfo b/source/l/glibc/doinst.sh-glibc-zoneinfo new file mode 100644 index 000000000..7afabf898 --- /dev/null +++ b/source/l/glibc/doinst.sh-glibc-zoneinfo @@ -0,0 +1,23 @@ +# Prep the library links: +ldconfig -r . +# Fix existing old style /etc/localtime symlink: +if [ -L etc/localtime -a ! -r etc/localtime-copied-from ]; then + mv etc/localtime etc/localtime-copied-from + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi +# Add the default timezone in /etc, if none exists: +if [ ! -r etc/localtime ]; then + ( cd etc ; rm -rf localtime localtime-copied-from ) + ( cd etc ; ln -sf /usr/share/zoneinfo/Factory localtime-copied-from ) + chroot . /bin/cp etc/localtime-copied-from etc/localtime +fi +# Add the default link in /usr/share/zoneinfo, if none exists: +if [ ! -L usr/share/zoneinfo/localtime ]; then + ( cd usr/share/zoneinfo ; rm -rf localtime ) + ( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime ) +fi +# Make sure /etc/localtime is updated: +chroot . /bin/cp etc/localtime-copied-from etc/localtime +( cd usr/share/zoneinfo ; rm -rf timeconfig ) +( cd usr/share/zoneinfo ; ln -sf /usr/sbin/timeconfig timeconfig ) +### Make the rest of the symbolic links in the zoneinfo database: diff --git a/source/l/glibc/glibc-2.10-dns-no-gethostbyname4.diff b/source/l/glibc/glibc-2.10-dns-no-gethostbyname4.diff new file mode 100644 index 000000000..3fa365afa --- /dev/null +++ b/source/l/glibc/glibc-2.10-dns-no-gethostbyname4.diff @@ -0,0 +1,26 @@ +The gethostbyname4() lookup method is problematic since it fires out both +the A and AAAA DNS queries in parallel and over the same socket. This +should work in theory, but it turns out that many cheap DSL modems and +similar devices have buggy DNS servers - if the AAAA query arrives too +quickly after the A query, the server will generate only a single reply +with the A query id but returning an error for the AAAA query; we get +stuck waiting for the second reply. + +For gethostbyname4() users affected, disabling IPv6 in the system might +work around the issue, unfortunately it only helps with applications +using AI_ADDRCONFIG (e.g. Firefox); some (notably e.g. Pidgin) neglect +to do that. + +Real fix should be using separate ports for the A and AAAA queries. + +--- resolv/Versions 2008-08-02 10:26:09.000000000 +0200 ++++ resolv/Versions 2008-12-08 12:51:53.000000000 +0100 +@@ -102,7 +102,7 @@ libnss_dns { + _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; + _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r; + _nss_dns_gethostbyaddr2_r; +- _nss_dns_gethostbyname4_r; ++# _nss_dns_gethostbyname4_r; + } + } + diff --git a/source/l/glibc/glibc-cvs-checkout.sh b/source/l/glibc/glibc-cvs-checkout.sh new file mode 100755 index 000000000..022d0117b --- /dev/null +++ b/source/l/glibc/glibc-cvs-checkout.sh @@ -0,0 +1,3 @@ +echo "The password below is \"anoncvs\":" +cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc login +cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc co libc diff --git a/source/l/glibc/glibc.SlackBuild b/source/l/glibc/glibc.SlackBuild new file mode 100755 index 000000000..bf49bdce5 --- /dev/null +++ b/source/l/glibc/glibc.SlackBuild @@ -0,0 +1,450 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +## build glibc-$VERSION for Slackware + + +VERSION=${VERSION:-2.9} +CHECKOUT=${CHECKOUT:--20090316} +BUILD=${BUILD:-3} +# $ARCH may be preset, otherwise i486 compatibility with i686 binary +# structuring is the Slackware default, since this is what gcc-3.2+ +# requires for binary compatibility with previous releases. +ARCH=${ARCH:-x86_64} + +CVSVER=${VERSION}${CHECKOUT} + +# NOTE!!! glibc needs to be built against the sanitized kernel headers, +# which will be installed under /usr/include by the kernel-headers package. +# Be sure the correct version of the headers package is installed BEFORE +# building glibc! + +CWD=$(pwd) +# Temporary build location. This should not be a directory +# path a non-root user could create later... +TMP=${TMP:-/glibc-tmp-$(mcookie)} +mkdir -p $TMP + +# Sanity check on the version number in the install scripts: +if ! grep -vq libutil-$VERSION}.so $CWD/doinst.sh-glibc ; then + echo "FATAL: doinst.sh scripts have wrong version numbers." + exit 1 +fi + +case $ARCH in + x86_64) + TARGET=${TARGET:-x86_64} + ;; + i486) + # This should be i486 for all 32-bit x86 arch: + TARGET=${TARGET:-i486} + ;; +esac + +# This function fixes a doinst.sh file for x86_64. +# With thanks to Fred Emmott. +fix_doinst() { + if [ "x$LIBDIRSUFFIX" = "x" ]; then + return; + fi; + # Fix "( cd usr/lib ;" occurrences + sed -i "s#lib ;#lib${LIBDIRSUFFIX} ;#" install/doinst.sh + # Fix "lib/" occurrences + sed -i "s#lib/#lib${LIBDIRSUFFIX}/#g" install/doinst.sh + # Fix "( cd lib" occurrences + sed -i "s#( cd lib\$#( cd lib${LIBDIRSUFFIX}#" install/doinst.sh + + if [ "$ARCH" = "x86_64" ]; then + sed -i 's#ld-linux.so.2#ld-linux-x86-64.so.2#' install/doinst.sh + fi +} + +# This is a patch function to put all glibc patches in the build script +# up near the top. +apply_patches() { + # Use old-style locale directories rather than a single (and strangely + # formatted) /usr/lib/locale/locale-archive file: + zcat $CWD/glibc.locale.no-archive.diff.gz | patch -p1 --verbose || exit 1 + # The is_IS locale is causing a strange error about the "echn" command + # not existing. This patch reverts is_IS to the version shipped in + # glibc-2.5: + zcat $CWD/is_IS.diff.gz | patch -p1 --verbose || exit 1 + # Fix NIS netgroups: + zcat $CWD/glibc.nis-netgroups.diff.gz | patch -p1 --verbose || exit 1 + # Support ru_RU.CP1251 locale: + zcat $CWD/glibc.ru_RU.CP1251.diff.gz | patch -p1 --verbose || exit 1 + # Fix missing MAX macro in getcwd.c: + zcat $CWD/glibc.getcwd.max.macro.diff.gz | patch -p1 --verbose || exit 1 + # Fix resolver problem with glibc-2.9: + zcat $CWD/glibc-2.10-dns-no-gethostbyname4.diff.gz | patch -p0 --verbose || exit 1 + # This reverts a patch that was made to glibc to fix "namespace leakage", + # which seems to cause some build failures (e.g. with conntrack): + zcat $CWD/glibc.revert.to.fix.build.breakages.diff.gz | patch -p1 --verbose || exit 1 + # Update the timezone information. + ( cd timezone + tar xzf $CWD/tzdata2009d.tar.gz + chown root:root * + mv yearistype.sh yearistype + chmod 644 * + chmod 755 yearistype + mkdir tzcode + cd tzcode + tar xzf $CWD/tzcode2009d.tar.gz + chown -R root:root . + chmod 644 * + cp -a *.c *.h .. + ) +} + +# I'll break this out as an option for fun :-) +case $ARCH in + i386) + OPTIMIZ="-O3 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" + ;; + i486) + OPTIMIZ="-O3 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ;; + i586) + OPTIMIZ="-O3 -march=i586" + LIBDIRSUFFIX="" + ;; + i686) + OPTIMIZ="-O3 -march=i686" + LIBDIRSUFFIX="" + ;; + athlon) + OPTIMIZ="-O3 -march=athlon" + LIBDIRSUFFIX="" + ;; + s390) + OPTIMIZ="-O3" + LIBDIRSUFFIX="" + ;; + x86_64) + OPTIMIZ="-O3 -fPIC" + LIBDIRSUFFIX="64" + ;; + *) + OPTIMIZ="-O3" + LIBDIRSUFFIX="" + ;; +esac + +# This is going to be the initial $DESTDIR: +export PKG=$TMP/package-glibc-incoming-tree +PGLIBC=$TMP/package-glibc +PSOLIBS=$TMP/package-glibc-solibs +PZONE=$TMP/package-glibc-zoneinfo +PI18N=$TMP/package-glibc-i18n +PPROFILE=$TMP/package-glibc-profile +PDEBUG=$TMP/package-glibc-debug + +# Empty these locations first: +for dir in $PKG $PGLIBC $PSOLIBS $PZONE $PI18N $PPROFILE $PDEBUG ; do + if [ -d $dir ]; then + rm -rf $dir + fi + mkdir -p $dir +done +if [ -d $TMP/glibc-$VERSION ]; then + rm -rf $TMP/glibc-$VERSION +fi + +# Create an incoming directory structure for glibc to be built into: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +mkdir -p $PKG/sbin +mkdir -p $PKG/usr/bin +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +mkdir -p $PKG/usr/sbin +mkdir -p $PKG/usr/include +mkdir -p $PKG/usr/doc +mkdir -p $PKG/usr/man +mkdir -p $PKG/usr/share +mkdir -p $PKG/var/db/nscd +mkdir -p $PKG/var/run/nscd + +# Begin extract/compile: +cd $TMP +rm -rf glibc-$CVSVER +tar xjvf $CWD/glibc-$CVSVER.tar.bz2 +cd glibc-$CVSVER + +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +# Clean up leftover CVS directories: +find . -type d -name CVS -exec rm -r {} \; 2> /dev/null + +# Apply patches; exit if any fail. +apply_patches +if [ ! $? = 0 ]; then + exit 1 +fi + +# Make build directory: +mkdir build-glibc-$VERSION +cd build-glibc-$VERSION + +echo "BUILDING DAS NPTL GLIBC" +CFLAGS="-g $OPTIMIZ" \ +../configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-kernel=2.6.18 \ + --with-headers=/usr/include \ + --enable-add-ons=libidn,nptl \ + --enable-profile \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --with-tls \ + --with-__thread \ + --without-cvs \ + $TARGET-slackware-linux + +make -j4 || exit 1 +make install install_root=$PKG || exit 1 +make localedata/install-locales install_root=$PKG || exit 1 + +# The prevailing standard seems to be putting unstripped libraries in +# /usr/lib/debug/ and stripping the debugging symbols from all the other +# libraries. +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/debug +cp -a $PKG/lib${LIBDIRSUFFIX}/l*.so* $PKG/usr/lib${LIBDIRSUFFIX}/debug +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/*.a $PKG/usr/lib${LIBDIRSUFFIX}/debug +# Don't need debug+profile: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/debug ; rm -f *_p.* ) +# NOTE: Is there really a reason for the glibc-debug package? +# If you're debugging glibc, you can also compile it, right? + +## COMMENTED OUT: There's no reason for profile libs to include -g information. +## Put back unstripped profiling libraries: +#mv $PKG/usr/lib${LIBDIRSUFFIX}/debug/*_p.a $PKG/usr/lib${LIBDIRSUFFIX} +# It might be best to put the unstripped and profiling libraries in glibc-debug and glibc-profile. + +# I don't think "strip -g" causes the pthread problems. It's --strip-unneeded that does. +strip -g $PKG/lib${LIBDIRSUFFIX}/l*.so* +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/l*.so* +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/lib*.a + +# Back to the sources dir to add some files/docs: +cd $TMP/glibc-$CVSVER + +# We'll automatically install the config file for the Name Server Cache Daemon. +# Perhaps this should also have some commented-out startup code in rc.inet2... +mkdir -p $PKG/etc +cat nscd/nscd.conf > $PKG/etc/nscd.conf.new + +# Install some scripts to help select a timezone: +mkdir -p $PKG/var/log/setup +cp -a $CWD/timezone-scripts/setup.timeconfig $PKG/var/log/setup +chown root:root $PKG/var/log/setup/setup.timeconfig +chmod 755 $PKG/var/log/setup/setup.timeconfig +mkdir -p $PKG/usr/sbin +cp -a $CWD/timezone-scripts/timeconfig $PKG/usr/sbin +chown root:root $PKG/usr/sbin/timeconfig +chmod 755 $PKG/usr/sbin/timeconfig + +## Install docs: +( mkdir -p $PKG/usr/doc/glibc-$VERSION + cp -a \ + BUGS CONFORMANCE COPYING COPYING.LIB FAQ INSTALL LICENSES NAMESPACE \ + NEWS NOTES PROJECTS README README.libm \ + $PKG/usr/doc/glibc-$VERSION +) + +# Don't forget to add the /usr/share/zoneinfo/localtime -> /etc/localtime symlink! :) +if [ ! -r $PKG/usr/share/zoneinfo/localtime ]; then + ( cd $PKG/usr/share/zoneinfo ; ln -sf /etc/localtime . ) +fi + +# OK, there are some very old Linux standards that say that any binaries in a /bin or +# /sbin directory (and the directories themselves) should be group bin rather than +# group root, unless a specific group is really needed for some reason. +# +# I can't find any mention of this in more recent standards docs, and always thought +# that it was pretty cosmetic anyway (hey, if there's a reason -- fill me in!), so +# it's possible that this ownership change won't be followed in the near future +# (it's a PITA, and causes many bug reports when the perms change is occasionally +# forgotten). +# +# But, it's hard to get me to break old habits, so we'll continue the tradition here: +# +# No, no we won't. You know how we love to break traditions. + +# Strip most binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null +) + +# Fix info dir: +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +# This is junk +rm $PKG/etc/ld.so.cache +( cd $PKG + find . -name "*.orig" -exec rm {} \; +) + +################################## +# OK, time to make some packages # +################################## + +# glibc-zoneinfo. We will start with an easy one to avoid breaking a sweat. ;-) +cd $PZONE +# Install some scripts to help select a timezone: +mkdir -p $PZONE/var/log/setup +cp -a $CWD/timezone-scripts/setup.timeconfig $PZONE/var/log/setup +chown root:root $PZONE/var/log/setup/setup.timeconfig +chmod 755 $PZONE/var/log/setup/setup.timeconfig +mkdir -p $PZONE/usr/sbin +cp -a $CWD/timezone-scripts/timeconfig $PZONE/usr/sbin +chown root:root $PZONE/usr/sbin/timeconfig +chmod 755 $PZONE/usr/sbin/timeconfig +mkdir $PZONE/install +cat $CWD/doinst.sh-glibc-zoneinfo > $PZONE/install/doinst.sh +cat $CWD/slack-desc.glibc-zoneinfo > $PZONE/install/slack-desc +mkdir -p $PZONE/usr/share +cd $PZONE/usr/share +cp -a --verbose $PKG/usr/share/zoneinfo . +cd $PZONE +mkdir -p $PZONE/etc +# This is already hard-coded into doinst.sh (like it'll be there anyway ;-): +rm -f etc/localtime +# Wrap it up: +makepkg -l y -c n $TMP/glibc-zoneinfo-$VERSION-noarch-$BUILD.txz + +# glibc-profile: +cd $PPROFILE +mkdir -p usr/lib${LIBDIRSUFFIX} +# Might as well just grab these with 'mv' to simplify things later: +mv $PKG/usr/lib${LIBDIRSUFFIX}/lib*_p.a usr/lib${LIBDIRSUFFIX} +# Profile libs should be stripped. Use the debug libs to debug... +( cd usr/lib${LIBDIRSUFFIX} ; strip -g *.a ) +mkdir install +cp -a $CWD/slack-desc.glibc-profile install/slack-desc +makepkg -l y -c n $TMP/glibc-profile-$VERSION-$ARCH-$BUILD.txz + +# THIS IS NO LONGER PACKAGED (or is it? might be better to let it be made, and then ship it or not...) +# glibc-debug: +cd $PDEBUG +mkdir -p usr/lib${LIBDIRSUFFIX} +# Might as well just grab these with 'mv' to simplify things later: +mv $PKG/usr/lib${LIBDIRSUFFIX}/debug usr/lib${LIBDIRSUFFIX} +mkdir install +cp -a $CWD/slack-desc.glibc-debug install/slack-desc +makepkg -l y -c n $TMP/glibc-debug-$VERSION-$ARCH-$BUILD.txz +## INSTEAD, NUKE THESE LIBS +#rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/debug + +# glibc-i18n: +cd $PI18N +mkdir -p usr/lib${LIBDIRSUFFIX} +rm -rf usr/lib${LIBDIRSUFFIX}/locale +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/locale usr/lib${LIBDIRSUFFIX} +mkdir -p usr/share +cp -a $PKG/usr/share/i18n usr/share +cp -a $PKG/usr/share/locale usr/share +mkdir install +cp -a $CWD/slack-desc.glibc-i18n install/slack-desc +makepkg -l y -c n $TMP/glibc-i18n-$VERSION-$ARCH-$BUILD.txz + +# glibc-solibs: +cd $PSOLIBS +mkdir -p etc/profile.d +cp -a $CWD/profile.d/* etc/profile.d +chown -R root:root etc +chmod 755 etc/profile.d/* +mkdir -p lib${LIBDIRSUFFIX} +cp -a $PKG/lib${LIBDIRSUFFIX}/* lib${LIBDIRSUFFIX} +( cd lib${LIBDIRSUFFIX} + mkdir incoming + mv *so* incoming + mv incoming/libSegFault.so . +) +mkdir -p usr +cp -a $PKG/usr/bin usr +mv usr/bin/ldd . +rm usr/bin/* +mv ldd usr/bin +mkdir -p usr/lib${LIBDIRSUFFIX} +# The gconv directory has a lot of stuff, but including it here will save some problems. +# Seems standard elsewhere. +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/gconv usr/lib${LIBDIRSUFFIX} +# Another manpage abandoned by GNU... +#mkdir -p usr/man/man1 +#cp -a $PKG/usr/man/man1/ldd.1.gz usr/man/man1 +mkdir -p usr/libexec +cp -a $PKG/usr/libexec/pt_chown usr/libexec +# Same usr.bin deal: +cp -a $PKG/sbin . +mv sbin/ldconfig . +rm sbin/* +mv ldconfig sbin +mkdir install +cp -a $CWD/slack-desc.glibc-solibs install/slack-desc +cp -a $CWD/doinst.sh-glibc-solibs install/doinst.sh +fix_doinst +# Ditch links: +find . -type l -exec rm {} \; +# Build the package: +makepkg -l y -c n $TMP/glibc-solibs-$VERSION-$ARCH-$BUILD.txz + +# And finally, the complete "all-in-one" glibc package is created +# from whatever was leftover: +cd $PGLIBC +mv $PKG/* . +mkdir -p etc/profile.d +cp -a $CWD/profile.d/* etc/profile.d +chown -R root:root etc +chmod 755 etc/profile.d/* +# Ditch links (these are in doinst.sh-glibc): +find . -type l -exec rm {} \; +mkdir install +cp -a $CWD/slack-desc.glibc install/slack-desc +cp -a $CWD/doinst.sh-glibc install/doinst.sh +fix_doinst +( cd lib${LIBDIRSUFFIX} + mkdir incoming + mv *so* incoming + mv incoming/libSegFault.so . +) +# Build the package: +makepkg -l y -c n $TMP/glibc-$VERSION-$ARCH-$BUILD.txz + +# Done! +echo +echo "glibc packages built in $TMP!" + diff --git a/source/l/glibc/glibc.getcwd.max.macro.diff b/source/l/glibc/glibc.getcwd.max.macro.diff new file mode 100644 index 000000000..e26e14d95 --- /dev/null +++ b/source/l/glibc/glibc.getcwd.max.macro.diff @@ -0,0 +1,10 @@ +--- ./sysdeps/unix/sysv/linux/getcwd.c.orig 2006-04-02 12:58:28.000000000 -0500 ++++ ./sysdeps/unix/sysv/linux/getcwd.c 2006-10-10 22:11:02.000000000 -0500 +@@ -28,6 +28,7 @@ + #include <sysdep.h> + #include <sys/syscall.h> + #include <bp-checks.h> ++#include <sys/param.h> + + #include <kernel-features.h> + diff --git a/source/l/glibc/glibc.locale.no-archive.diff b/source/l/glibc/glibc.locale.no-archive.diff new file mode 100644 index 000000000..bf1a83b71 --- /dev/null +++ b/source/l/glibc/glibc.locale.no-archive.diff @@ -0,0 +1,10 @@ +--- ./localedata/Makefile.orig 2003-11-20 15:31:38.000000000 -0800 ++++ ./localedata/Makefile 2004-08-03 17:20:54.000000000 -0700 +@@ -222,6 +222,7 @@ + echo -n '...'; \ + input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ + $(LOCALEDEF) --alias-file=../intl/locale.alias \ ++ --no-archive \ + -i locales/$$input -c -f charmaps/$$charset \ + $(addprefix --prefix=,$(install_root)) $$locale; \ + echo ' done'; \ diff --git a/source/l/glibc/glibc.nis-netgroups.diff b/source/l/glibc/glibc.nis-netgroups.diff new file mode 100644 index 000000000..2473e9766 --- /dev/null +++ b/source/l/glibc/glibc.nis-netgroups.diff @@ -0,0 +1,12 @@ +--- ./nis/nss_nis/nis-netgrp.c.orig 2006-04-08 21:08:28.000000000 -0500 ++++ ./nis/nss_nis/nis-netgrp.c 2006-10-10 20:49:11.000000000 -0500 +@@ -72,7 +72,8 @@ + and the last byte is filled with NUL. So we can simply + use that buffer. */ + assert (len >= 0); +- assert (malloc_usable_size (netgrp->data) >= len + 1); ++ /* The next line break NIS netgroups on non-PAM systems, so we will comment it out */ ++ /* assert (malloc_usable_size (netgrp->data) >= len + 1); */ + assert (netgrp->data[len] == '\0'); + + netgrp->data_size = len; diff --git a/source/l/glibc/glibc.revert.to.fix.build.breakages.diff b/source/l/glibc/glibc.revert.to.fix.build.breakages.diff new file mode 100644 index 000000000..9c8e93b9b --- /dev/null +++ b/source/l/glibc/glibc.revert.to.fix.build.breakages.diff @@ -0,0 +1,13 @@ +--- ./sysdeps/unix/sysv/linux/bits/socket.h.orig 2008-07-27 03:25:30.000000000 -0500 ++++ ./sysdeps/unix/sysv/linux/bits/socket.h 2009-02-24 17:38:52.000000000 -0600 +@@ -26,8 +26,9 @@ + #endif + + #define __need_size_t ++#define __need_NULL + #include <stddef.h> +- ++#include <limits.h> + #include <sys/types.h> + + /* Type for length arguments in socket calls. */ diff --git a/source/l/glibc/glibc.ru_RU.CP1251.diff b/source/l/glibc/glibc.ru_RU.CP1251.diff new file mode 100644 index 000000000..376cf76a7 --- /dev/null +++ b/source/l/glibc/glibc.ru_RU.CP1251.diff @@ -0,0 +1,10 @@ +--- ./localedata/SUPPORTED.orig 2005-07-17 20:50:35.000000000 -0500 ++++ ./localedata/SUPPORTED 2006-08-22 01:33:09.000000000 -0500 +@@ -270,6 +270,7 @@ + ro_RO/ISO-8859-2 \ + ru_RU.KOI8-R/KOI8-R \ + ru_RU.UTF-8/UTF-8 \ ++ru_RU.CP1251/CP1251 \ + ru_RU/ISO-8859-5 \ + ru_UA.UTF-8/UTF-8 \ + ru_UA/KOI8-U \ diff --git a/source/l/glibc/is_IS.diff b/source/l/glibc/is_IS.diff new file mode 100644 index 000000000..52a99696c --- /dev/null +++ b/source/l/glibc/is_IS.diff @@ -0,0 +1,19 @@ +--- ./localedata/locales/is_IS.orig 2007-09-30 17:30:17.000000000 -0500 ++++ ./localedata/locales/is_IS 2006-07-30 17:19:43.000000000 -0500 +@@ -947,6 +947,7 @@ + <UE00D> IGNORE;IGNORE;IGNORE;<UE00D> + <UE00E> IGNORE;IGNORE;IGNORE;<UE00E> + <UE00F> IGNORE;IGNORE;IGNORE;<UE00F> ++<"=> IGNORE;IGNORE;IGNORE;<"=> + <UE011> IGNORE;IGNORE;IGNORE;<UE011> + <UE012> IGNORE;IGNORE;IGNORE;<UE012> + <UE013> IGNORE;IGNORE;IGNORE;<UE013> +@@ -955,6 +956,8 @@ + <UE017> IGNORE;IGNORE;IGNORE;<UE017> + <UE018> IGNORE;IGNORE;IGNORE;<UE018> + <UE019> IGNORE;IGNORE;IGNORE;<UE019> ++<Mc> IGNORE;IGNORE;IGNORE;<Mc> ++<Fl> IGNORE;IGNORE;IGNORE;<Fl> + UNDEFINED IGNORE;IGNORE;IGNORE + + <U0030> <U0030>;<U0030>;IGNORE;IGNORE diff --git a/source/l/glibc/profile.d/glibc.csh.new b/source/l/glibc/profile.d/glibc.csh.new new file mode 100755 index 000000000..adcc4060b --- /dev/null +++ b/source/l/glibc/profile.d/glibc.csh.new @@ -0,0 +1,9 @@ +#!/bin/csh +# Set more relaxed (glibc-2.3.5 like) malloc() checking. +# +# This relaxes the default paranoia level so that it reports +# bugs, but does not kill the questionable process. You can +# get away with running broken programs with this setting, +# but at a possible performance and security cost. +# +#setenv MALLOC_CHECK_=1 diff --git a/source/l/glibc/profile.d/glibc.sh.new b/source/l/glibc/profile.d/glibc.sh.new new file mode 100755 index 000000000..979f4879e --- /dev/null +++ b/source/l/glibc/profile.d/glibc.sh.new @@ -0,0 +1,8 @@ +#!/bin/sh +# Set more relaxed (glibc-2.3.5 like) malloc() checking. +# +# This relaxes the default paranoia level so that it reports +# bugs, but does not kill the questionable process. You can +# get away with running broken programs with this setting, +# but at a possible performance and security cost. +#export MALLOC_CHECK_=1 diff --git a/source/l/glibc/slack-desc.glibc b/source/l/glibc/slack-desc.glibc new file mode 100644 index 000000000..c9c35c2da --- /dev/null +++ b/source/l/glibc/slack-desc.glibc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc: glibc (GNU C libraries) +glibc: +glibc: This package contains the GNU C libraries and header files. The GNU +glibc: C library was written originally by Roland McGrath, and is currently +glibc: maintained by Ulrich Drepper. Some parts of the library were +glibc: contributed or worked on by other people. +glibc: +glibc: You'll need this package to compile programs. +glibc: +glibc: +glibc: diff --git a/source/l/glibc/slack-desc.glibc-debug b/source/l/glibc/slack-desc.glibc-debug new file mode 100644 index 000000000..79398d0b6 --- /dev/null +++ b/source/l/glibc/slack-desc.glibc-debug @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-debug: glibc-debug (GNU C libraries with debugging symbols) +glibc-debug: +glibc-debug: This package contains versions of the GNU C libraries with debugging +glibc-debug: information. These are needed only if you wish to be able to step +glibc-debug: through C library routines while debugging programs. Most debugging +glibc-debug: efforts will not require these. +glibc-debug: To use these libraries, set LD_LIBRARY_PATH when calling the debugger: +glibc-debug: LD_LIBRARY_PATH=/usr/lib/debug gdb <executable> +glibc-debug: +glibc-debug: Or, use this approach if you need to debug a setuid binary: +glibc-debug: su user -c "LD_LIBRARY_PATH=/usr/lib/debug gdb <executable>" diff --git a/source/l/glibc/slack-desc.glibc-i18n b/source/l/glibc/slack-desc.glibc-i18n new file mode 100644 index 000000000..71f5336c0 --- /dev/null +++ b/source/l/glibc/slack-desc.glibc-i18n @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-i18n: glibc-i18n (locale files from glibc) +glibc-i18n: +glibc-i18n: These files go in /usr/lib/locale and /usr/share/i18n/ to provide +glibc-i18n: internationalization support. You'll need this package unless you +glibc-i18n: will be using US English only. +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: +glibc-i18n: diff --git a/source/l/glibc/slack-desc.glibc-profile b/source/l/glibc/slack-desc.glibc-profile new file mode 100644 index 000000000..8c873fd92 --- /dev/null +++ b/source/l/glibc/slack-desc.glibc-profile @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-profile: glibc-profile (GNU C libraries with profiling support) +glibc-profile: +glibc-profile: This package contains static versions of the GNU C libraries with +glibc-profile: support for profiling binaries using gprof. gprof calculates how +glibc-profile: much time a program spends in each routine which can suggest where +glibc-profile: to concentrate efforts to improve performance. +glibc-profile: +glibc-profile: See the gprof man page for more details. +glibc-profile: +glibc-profile: +glibc-profile: diff --git a/source/l/glibc/slack-desc.glibc-solibs b/source/l/glibc/slack-desc.glibc-solibs new file mode 100644 index 000000000..807df645a --- /dev/null +++ b/source/l/glibc/slack-desc.glibc-solibs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-solibs: glibc-solibs (shared GNU C libraries) +glibc-solibs: +glibc-solibs: This package contains the shared libraries, binaries, and support +glibc-solibs: files required to run most Linux applications linked with glibc. +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: +glibc-solibs: diff --git a/source/l/glibc/slack-desc.glibc-solibs-linuxthreads b/source/l/glibc/slack-desc.glibc-solibs-linuxthreads new file mode 100644 index 000000000..9efe3bf1d --- /dev/null +++ b/source/l/glibc/slack-desc.glibc-solibs-linuxthreads @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-solibs-linuxthreads: glibc-solibs-linuxthreads (LinuxThreads shared GNU C libraries) +glibc-solibs-linuxthreads: +glibc-solibs-linuxthreads: This package contains the shared libraries for glibc that uses +glibc-solibs-linuxthreads: LinuxThreads, the threading implementation in Linux 2.4.x and +glibc-solibs-linuxthreads: earlier kernels. In some cases you'll need to use these libraries +glibc-solibs-linuxthreads: to run old binaries by setting these environment variables: +glibc-solibs-linuxthreads: export LD_ASSUME_KERNEL=2.4.33 +glibc-solibs-linuxthreads: export LD_LIBRARY_PATH=/lib/obsolete/linuxthreads +glibc-solibs-linuxthreads: old-program +glibc-solibs-linuxthreads: Most users should have no need for this package. Recompile. :-) diff --git a/source/l/glibc/slack-desc.glibc-zoneinfo b/source/l/glibc/slack-desc.glibc-zoneinfo new file mode 100644 index 000000000..24dfd0e9f --- /dev/null +++ b/source/l/glibc/slack-desc.glibc-zoneinfo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glibc-zoneinfo: glibc-zoneinfo (timezone database) +glibc-zoneinfo: +glibc-zoneinfo: This package allows you to configure your time zone. +glibc-zoneinfo: +glibc-zoneinfo: This timezone database comes from the tzdata and tzcode packages by +glibc-zoneinfo: Arthur David Olson et.al. The latest version and more information +glibc-zoneinfo: may be found at ftp://elsie.nci.nih.gov/pub/ +glibc-zoneinfo: +glibc-zoneinfo: Use the timeconfig utility to set your local time zone. +glibc-zoneinfo: +glibc-zoneinfo: diff --git a/source/l/glibc/timezone-scripts/output-updated-timeconfig.sh b/source/l/glibc/timezone-scripts/output-updated-timeconfig.sh new file mode 100644 index 000000000..5d1ade37d --- /dev/null +++ b/source/l/glibc/timezone-scripts/output-updated-timeconfig.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# Copyright 2006 Patrick J. Volkerding, Sebeka, MN, USA. +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +if [ ! "$(basename "$1")" = "zoneinfo" -o ! -d "$1" ]; then + echo " Usage: output-updated-timeconfig.sh <zoneinfo directory>" + exit 1 +fi + +CWD=$(pwd) +cat $CWD/parts/00 +# Sorry, I'd rather not be US-centric but some people here have a hard +# time finding things. ;-) +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep "^US/" | while read zone ; do + echo "\"${zone}\" \" \" \\" + done +) +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep -v "^US/" | while read zone ; do + echo "\"${zone}\" \" \" \\" + done +) +cat $CWD/parts/02 +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep "^US/" | while read zone ; do + echo "${zone}" + done +) +( cd $1 + find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep -v "^US/" | while read zone ; do + echo "${zone}" + done +) +cat $CWD/parts/04 diff --git a/source/l/glibc/timezone-scripts/parts/00 b/source/l/glibc/timezone-scripts/parts/00 new file mode 100644 index 000000000..9344c5099 --- /dev/null +++ b/source/l/glibc/timezone-scripts/parts/00 @@ -0,0 +1,129 @@ +#!/bin/sh +# +# timeconfig Slackware Linux timezone configuration utility. +# +# Author: Patrick Volkerding <volkerdi@slackware.com> +# Modified by: David Cantrell <david@slackware.com>, 06-Oct-2000 +# +# ChangeLog: +# 2008-03-10: Updated timezones from tzdata2008a. <pjv> +# 2007-12-21: Updated timezones from tzdata2007j. <pjv> +# 2006-12-03: Updated timezones from tzdata2006p. <pjv> +# 2006-09-14: Updated timezones from tzdata2006k. <pjv> +# 2006-08-22: Updated timezones from tzdata2006j. +# 2006-08-13: Updated timezones from tzdata2006g. +# 2006-03-13: Updated timezones from tzdata2006c. +# 19-Feb-2001 Add new timezones from glibc-2.2.2. +# 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing +# the hardwareclock file to the root disk and not your dest +# partition. Changed the HWCLOCK_CONF variable to be +# $T_PX/etc/hardwareclock to fix this. Thanks to David L. +# Dickman <softbear@optonline.net> for finding this and +# submitting a patch. +# +# 15-Mar-2000 Added the writeconf function to write out the +# /etc/hardwareclock file which tells what the hardware clock +# is set to (UTC or localtime). +# +# 03-Mar-2000 Reorganized script. Made one timezone set block, added +# stage that asks the user if the hardware clock is set to +# UTC. + +# setup our temp locations and variables +TMP=/var/log/setup/tmp +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$!" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi + +# the hardware clock configuration file +HWCLOCK_CONF=$T_PX/etc/hardwareclock + +# setzone( $TIMEZONE ) +# +# This function accepts a time zone as the only parameter and sets it as +# the default system time zone. +setzone() +{ + TZ=$1 + + cd $T_PX/etc + if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \ + -r /var/log/mount/usr/share/zoneinfo/$TZ -o \ + -L $T_PX/usr/share/zoneinfo/$TZ -o \ + -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then + ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from + rm -f localtime + cd .. + chroot . cp etc/localtime-copied-from etc/localtime + fi +} + +# writeconf( $CLOCK_SET_TO ) +# +# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock +# value is stored. +writeconf() +{ + echo "# /etc/hardwareclock" > $HWCLOCK_CONF + echo "#" >> $HWCLOCK_CONF + echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF + echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF + echo >> $HWCLOCK_CONF + echo $1 >> $HWCLOCK_CONF +} + +# ask the user if the hardware clock is set for UTC/GMT +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \ +to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \ +hardware clock is set to the current local time (this is how most PCs are set \ +up), then say NO here. If you are not sure what this is, you should answer NO \ +here." 13 60 2 \ + "NO" "Hardware clock is set to local time" \ + "YES" "Hardware clock is set to UTC" \ + 2> $TMP/utc + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/utc + exit + fi + if [ "`cat $TMP/utc`" = "YES" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else # must be NO + writeconf "localtime" + fi + rm -f $TMP/utc +else + ### + ### use text prompts + ### + echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?" + echo "If it is, select 'y' here. If the hardware clock is set to the" + echo "current local time (this is how most PCs are set up), then say 'n'" + echo "here. If you are not sure what this is, you should answer 'n' here." + echo + echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? " + read HEJAZ + + if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else + # default to localtime + writeconf "localtime" + fi +fi + +# Now set the correct timezone link: +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \ diff --git a/source/l/glibc/timezone-scripts/parts/01 b/source/l/glibc/timezone-scripts/parts/01 new file mode 100644 index 000000000..139094470 --- /dev/null +++ b/source/l/glibc/timezone-scripts/parts/01 @@ -0,0 +1,1657 @@ +"US/Alaska" " " \ +"US/Aleutian" " " \ +"US/Arizona" " " \ +"US/Central" " " \ +"US/East-Indiana" " " \ +"US/Eastern" " " \ +"US/Hawaii" " " \ +"US/Indiana-Starke" " " \ +"US/Michigan" " " \ +"US/Mountain" " " \ +"US/Pacific" " " \ +"US/Samoa" " " \ +"Africa/Abidjan" " " \ +"Africa/Accra" " " \ +"Africa/Addis_Ababa" " " \ +"Africa/Algiers" " " \ +"Africa/Asmera" " " \ +"Africa/Bamako" " " \ +"Africa/Bangui" " " \ +"Africa/Banjul" " " \ +"Africa/Bissau" " " \ +"Africa/Blantyre" " " \ +"Africa/Brazzaville" " " \ +"Africa/Bujumbura" " " \ +"Africa/Cairo" " " \ +"Africa/Casablanca" " " \ +"Africa/Ceuta" " " \ +"Africa/Conakry" " " \ +"Africa/Dakar" " " \ +"Africa/Dar_es_Salaam" " " \ +"Africa/Djibouti" " " \ +"Africa/Douala" " " \ +"Africa/El_Aaiun" " " \ +"Africa/Freetown" " " \ +"Africa/Gaborone" " " \ +"Africa/Harare" " " \ +"Africa/Johannesburg" " " \ +"Africa/Kampala" " " \ +"Africa/Khartoum" " " \ +"Africa/Kigali" " " \ +"Africa/Kinshasa" " " \ +"Africa/Lagos" " " \ +"Africa/Libreville" " " \ +"Africa/Lome" " " \ +"Africa/Luanda" " " \ +"Africa/Lubumbashi" " " \ +"Africa/Lusaka" " " \ +"Africa/Malabo" " " \ +"Africa/Maputo" " " \ +"Africa/Maseru" " " \ +"Africa/Mbabane" " " \ +"Africa/Mogadishu" " " \ +"Africa/Monrovia" " " \ +"Africa/Nairobi" " " \ +"Africa/Ndjamena" " " \ +"Africa/Niamey" " " \ +"Africa/Nouakchott" " " \ +"Africa/Ouagadougou" " " \ +"Africa/Porto-Novo" " " \ +"Africa/Sao_Tome" " " \ +"Africa/Timbuktu" " " \ +"Africa/Tripoli" " " \ +"Africa/Tunis" " " \ +"Africa/Windhoek" " " \ +"America/Adak" " " \ +"America/Anchorage" " " \ +"America/Anguilla" " " \ +"America/Antigua" " " \ +"America/Araguaina" " " \ +"America/Argentina/Buenos_Aires" " " \ +"America/Argentina/Catamarca" " " \ +"America/Argentina/ComodRivadavia" " " \ +"America/Argentina/Cordoba" " " \ +"America/Argentina/Jujuy" " " \ +"America/Argentina/La_Rioja" " " \ +"America/Argentina/Mendoza" " " \ +"America/Argentina/Rio_Gallegos" " " \ +"America/Argentina/San_Juan" " " \ +"America/Argentina/Tucuman" " " \ +"America/Argentina/Ushuaia" " " \ +"America/Aruba" " " \ +"America/Asuncion" " " \ +"America/Atikokan" " " \ +"America/Atka" " " \ +"America/Bahia" " " \ +"America/Barbados" " " \ +"America/Belem" " " \ +"America/Belize" " " \ +"America/Blanc-Sablon" " " \ +"America/Boa_Vista" " " \ +"America/Bogota" " " \ +"America/Boise" " " \ +"America/Buenos_Aires" " " \ +"America/Cambridge_Bay" " " \ +"America/Campo_Grande" " " \ +"America/Cancun" " " \ +"America/Caracas" " " \ +"America/Catamarca" " " \ +"America/Cayenne" " " \ +"America/Cayman" " " \ +"America/Chicago" " " \ +"America/Chihuahua" " " \ +"America/Coral_Harbour" " " \ +"America/Cordoba" " " \ +"America/Costa_Rica" " " \ +"America/Cuiaba" " " \ +"America/Curacao" " " \ +"America/Danmarkshavn" " " \ +"America/Dawson" " " \ +"America/Dawson_Creek" " " \ +"America/Denver" " " \ +"America/Detroit" " " \ +"America/Dominica" " " \ +"America/Edmonton" " " \ +"America/Eirunepe" " " \ +"America/El_Salvador" " " \ +"America/Ensenada" " " \ +"America/Fort_Wayne" " " \ +"America/Fortaleza" " " \ +"America/Glace_Bay" " " \ +"America/Godthab" " " \ +"America/Goose_Bay" " " \ +"America/Grand_Turk" " " \ +"America/Grenada" " " \ +"America/Guadeloupe" " " \ +"America/Guatemala" " " \ +"America/Guayaquil" " " \ +"America/Guyana" " " \ +"America/Halifax" " " \ +"America/Havana" " " \ +"America/Hermosillo" " " \ +"America/Indiana/Indianapolis" " " \ +"America/Indiana/Knox" " " \ +"America/Indiana/Marengo" " " \ +"America/Indiana/Petersburg" " " \ +"America/Indiana/Tell_City" " " \ +"America/Indiana/Vevay" " " \ +"America/Indiana/Vincennes" " " \ +"America/Indianapolis" " " \ +"America/Inuvik" " " \ +"America/Iqaluit" " " \ +"America/Jamaica" " " \ +"America/Jujuy" " " \ +"America/Juneau" " " \ +"America/Kentucky/Louisville" " " \ +"America/Kentucky/Monticello" " " \ +"America/Knox_IN" " " \ +"America/La_Paz" " " \ +"America/Lima" " " \ +"America/Los_Angeles" " " \ +"America/Louisville" " " \ +"America/Maceio" " " \ +"America/Managua" " " \ +"America/Manaus" " " \ +"America/Martinique" " " \ +"America/Mazatlan" " " \ +"America/Mendoza" " " \ +"America/Menominee" " " \ +"America/Merida" " " \ +"America/Mexico_City" " " \ +"America/Miquelon" " " \ +"America/Moncton" " " \ +"America/Monterrey" " " \ +"America/Montevideo" " " \ +"America/Montreal" " " \ +"America/Montserrat" " " \ +"America/Nassau" " " \ +"America/New_York" " " \ +"America/Nipigon" " " \ +"America/Nome" " " \ +"America/Noronha" " " \ +"America/North_Dakota/Center" " " \ +"America/North_Dakota/New_Salem" " " \ +"America/Panama" " " \ +"America/Pangnirtung" " " \ +"America/Paramaribo" " " \ +"America/Phoenix" " " \ +"America/Port-au-Prince" " " \ +"America/Port_of_Spain" " " \ +"America/Porto_Acre" " " \ +"America/Porto_Velho" " " \ +"America/Puerto_Rico" " " \ +"America/Rainy_River" " " \ +"America/Rankin_Inlet" " " \ +"America/Recife" " " \ +"America/Regina" " " \ +"America/Rio_Branco" " " \ +"America/Rosario" " " \ +"America/Santiago" " " \ +"America/Santo_Domingo" " " \ +"America/Sao_Paulo" " " \ +"America/Scoresbysund" " " \ +"America/Shiprock" " " \ +"America/St_Johns" " " \ +"America/St_Kitts" " " \ +"America/St_Lucia" " " \ +"America/St_Thomas" " " \ +"America/St_Vincent" " " \ +"America/Swift_Current" " " \ +"America/Tegucigalpa" " " \ +"America/Thule" " " \ +"America/Thunder_Bay" " " \ +"America/Tijuana" " " \ +"America/Toronto" " " \ +"America/Tortola" " " \ +"America/Vancouver" " " \ +"America/Virgin" " " \ +"America/Whitehorse" " " \ +"America/Winnipeg" " " \ +"America/Yakutat" " " \ +"America/Yellowknife" " " \ +"Antarctica/Casey" " " \ +"Antarctica/Davis" " " \ +"Antarctica/DumontDUrville" " " \ +"Antarctica/Mawson" " " \ +"Antarctica/McMurdo" " " \ +"Antarctica/Palmer" " " \ +"Antarctica/Rothera" " " \ +"Antarctica/South_Pole" " " \ +"Antarctica/Syowa" " " \ +"Antarctica/Vostok" " " \ +"Arctic/Longyearbyen" " " \ +"Asia/Aden" " " \ +"Asia/Almaty" " " \ +"Asia/Amman" " " \ +"Asia/Anadyr" " " \ +"Asia/Aqtau" " " \ +"Asia/Aqtobe" " " \ +"Asia/Ashgabat" " " \ +"Asia/Ashkhabad" " " \ +"Asia/Baghdad" " " \ +"Asia/Bahrain" " " \ +"Asia/Baku" " " \ +"Asia/Bangkok" " " \ +"Asia/Beirut" " " \ +"Asia/Bishkek" " " \ +"Asia/Brunei" " " \ +"Asia/Calcutta" " " \ +"Asia/Choibalsan" " " \ +"Asia/Chongqing" " " \ +"Asia/Chungking" " " \ +"Asia/Colombo" " " \ +"Asia/Dacca" " " \ +"Asia/Damascus" " " \ +"Asia/Dhaka" " " \ +"Asia/Dili" " " \ +"Asia/Dubai" " " \ +"Asia/Dushanbe" " " \ +"Asia/Gaza" " " \ +"Asia/Harbin" " " \ +"Asia/Hong_Kong" " " \ +"Asia/Hovd" " " \ +"Asia/Irkutsk" " " \ +"Asia/Istanbul" " " \ +"Asia/Jakarta" " " \ +"Asia/Jayapura" " " \ +"Asia/Jerusalem" " " \ +"Asia/Kabul" " " \ +"Asia/Kamchatka" " " \ +"Asia/Karachi" " " \ +"Asia/Kashgar" " " \ +"Asia/Katmandu" " " \ +"Asia/Krasnoyarsk" " " \ +"Asia/Kuala_Lumpur" " " \ +"Asia/Kuching" " " \ +"Asia/Kuwait" " " \ +"Asia/Macao" " " \ +"Asia/Macau" " " \ +"Asia/Magadan" " " \ +"Asia/Makassar" " " \ +"Asia/Manila" " " \ +"Asia/Muscat" " " \ +"Asia/Nicosia" " " \ +"Asia/Novosibirsk" " " \ +"Asia/Omsk" " " \ +"Asia/Oral" " " \ +"Asia/Phnom_Penh" " " \ +"Asia/Pontianak" " " \ +"Asia/Pyongyang" " " \ +"Asia/Qatar" " " \ +"Asia/Qyzylorda" " " \ +"Asia/Rangoon" " " \ +"Asia/Riyadh" " " \ +"Asia/Riyadh87" " " \ +"Asia/Riyadh88" " " \ +"Asia/Riyadh89" " " \ +"Asia/Saigon" " " \ +"Asia/Sakhalin" " " \ +"Asia/Samarkand" " " \ +"Asia/Seoul" " " \ +"Asia/Shanghai" " " \ +"Asia/Singapore" " " \ +"Asia/Taipei" " " \ +"Asia/Tashkent" " " \ +"Asia/Tbilisi" " " \ +"Asia/Tehran" " " \ +"Asia/Tel_Aviv" " " \ +"Asia/Thimbu" " " \ +"Asia/Thimphu" " " \ +"Asia/Tokyo" " " \ +"Asia/Ujung_Pandang" " " \ +"Asia/Ulaanbaatar" " " \ +"Asia/Ulan_Bator" " " \ +"Asia/Urumqi" " " \ +"Asia/Vientiane" " " \ +"Asia/Vladivostok" " " \ +"Asia/Yakutsk" " " \ +"Asia/Yekaterinburg" " " \ +"Asia/Yerevan" " " \ +"Atlantic/Azores" " " \ +"Atlantic/Bermuda" " " \ +"Atlantic/Canary" " " \ +"Atlantic/Cape_Verde" " " \ +"Atlantic/Faeroe" " " \ +"Atlantic/Jan_Mayen" " " \ +"Atlantic/Madeira" " " \ +"Atlantic/Reykjavik" " " \ +"Atlantic/South_Georgia" " " \ +"Atlantic/St_Helena" " " \ +"Atlantic/Stanley" " " \ +"Australia/ACT" " " \ +"Australia/Adelaide" " " \ +"Australia/Brisbane" " " \ +"Australia/Broken_Hill" " " \ +"Australia/Canberra" " " \ +"Australia/Currie" " " \ +"Australia/Darwin" " " \ +"Australia/Hobart" " " \ +"Australia/LHI" " " \ +"Australia/Lindeman" " " \ +"Australia/Lord_Howe" " " \ +"Australia/Melbourne" " " \ +"Australia/NSW" " " \ +"Australia/North" " " \ +"Australia/Perth" " " \ +"Australia/Queensland" " " \ +"Australia/South" " " \ +"Australia/Sydney" " " \ +"Australia/Tasmania" " " \ +"Australia/Victoria" " " \ +"Australia/West" " " \ +"Australia/Yancowinna" " " \ +"Brazil/Acre" " " \ +"Brazil/DeNoronha" " " \ +"Brazil/East" " " \ +"Brazil/West" " " \ +"CET" " " \ +"CST6CDT" " " \ +"Canada/Atlantic" " " \ +"Canada/Central" " " \ +"Canada/East-Saskatchewan" " " \ +"Canada/Eastern" " " \ +"Canada/Mountain" " " \ +"Canada/Newfoundland" " " \ +"Canada/Pacific" " " \ +"Canada/Saskatchewan" " " \ +"Canada/Yukon" " " \ +"Chile/Continental" " " \ +"Chile/EasterIsland" " " \ +"Cuba" " " \ +"EET" " " \ +"EST" " " \ +"EST5EDT" " " \ +"Egypt" " " \ +"Eire" " " \ +"Etc/GMT" " " \ +"Etc/GMT+0" " " \ +"Etc/GMT+1" " " \ +"Etc/GMT+10" " " \ +"Etc/GMT+11" " " \ +"Etc/GMT+12" " " \ +"Etc/GMT+2" " " \ +"Etc/GMT+3" " " \ +"Etc/GMT+4" " " \ +"Etc/GMT+5" " " \ +"Etc/GMT+6" " " \ +"Etc/GMT+7" " " \ +"Etc/GMT+8" " " \ +"Etc/GMT+9" " " \ +"Etc/GMT-0" " " \ +"Etc/GMT-1" " " \ +"Etc/GMT-10" " " \ +"Etc/GMT-11" " " \ +"Etc/GMT-12" " " \ +"Etc/GMT-13" " " \ +"Etc/GMT-14" " " \ +"Etc/GMT-2" " " \ +"Etc/GMT-3" " " \ +"Etc/GMT-4" " " \ +"Etc/GMT-5" " " \ +"Etc/GMT-6" " " \ +"Etc/GMT-7" " " \ +"Etc/GMT-8" " " \ +"Etc/GMT-9" " " \ +"Etc/GMT0" " " \ +"Etc/Greenwich" " " \ +"Etc/UCT" " " \ +"Etc/UTC" " " \ +"Etc/Universal" " " \ +"Etc/Zulu" " " \ +"Europe/Amsterdam" " " \ +"Europe/Andorra" " " \ +"Europe/Athens" " " \ +"Europe/Belfast" " " \ +"Europe/Belgrade" " " \ +"Europe/Berlin" " " \ +"Europe/Bratislava" " " \ +"Europe/Brussels" " " \ +"Europe/Bucharest" " " \ +"Europe/Budapest" " " \ +"Europe/Chisinau" " " \ +"Europe/Copenhagen" " " \ +"Europe/Dublin" " " \ +"Europe/Gibraltar" " " \ +"Europe/Guernsey" " " \ +"Europe/Helsinki" " " \ +"Europe/Isle_of_Man" " " \ +"Europe/Istanbul" " " \ +"Europe/Jersey" " " \ +"Europe/Kaliningrad" " " \ +"Europe/Kiev" " " \ +"Europe/Lisbon" " " \ +"Europe/Ljubljana" " " \ +"Europe/London" " " \ +"Europe/Luxembourg" " " \ +"Europe/Madrid" " " \ +"Europe/Malta" " " \ +"Europe/Mariehamn" " " \ +"Europe/Minsk" " " \ +"Europe/Monaco" " " \ +"Europe/Moscow" " " \ +"Europe/Nicosia" " " \ +"Europe/Oslo" " " \ +"Europe/Paris" " " \ +"Europe/Podgorica" " " \ +"Europe/Prague" " " \ +"Europe/Riga" " " \ +"Europe/Rome" " " \ +"Europe/Samara" " " \ +"Europe/San_Marino" " " \ +"Europe/Sarajevo" " " \ +"Europe/Simferopol" " " \ +"Europe/Skopje" " " \ +"Europe/Sofia" " " \ +"Europe/Stockholm" " " \ +"Europe/Tallinn" " " \ +"Europe/Tirane" " " \ +"Europe/Tiraspol" " " \ +"Europe/Uzhgorod" " " \ +"Europe/Vaduz" " " \ +"Europe/Vatican" " " \ +"Europe/Vienna" " " \ +"Europe/Vilnius" " " \ +"Europe/Volgograd" " " \ +"Europe/Warsaw" " " \ +"Europe/Zagreb" " " \ +"Europe/Zaporozhye" " " \ +"Europe/Zurich" " " \ +"Factory" " " \ +"GB" " " \ +"GB-Eire" " " \ +"GMT" " " \ +"GMT+0" " " \ +"GMT-0" " " \ +"GMT0" " " \ +"Greenwich" " " \ +"HST" " " \ +"Hongkong" " " \ +"Iceland" " " \ +"Indian/Antananarivo" " " \ +"Indian/Chagos" " " \ +"Indian/Christmas" " " \ +"Indian/Cocos" " " \ +"Indian/Comoro" " " \ +"Indian/Kerguelen" " " \ +"Indian/Mahe" " " \ +"Indian/Maldives" " " \ +"Indian/Mauritius" " " \ +"Indian/Mayotte" " " \ +"Indian/Reunion" " " \ +"Iran" " " \ +"Israel" " " \ +"Jamaica" " " \ +"Japan" " " \ +"Kwajalein" " " \ +"Libya" " " \ +"MET" " " \ +"MST" " " \ +"MST7MDT" " " \ +"Mexico/BajaNorte" " " \ +"Mexico/BajaSur" " " \ +"Mexico/General" " " \ +"Mideast/Riyadh87" " " \ +"Mideast/Riyadh88" " " \ +"Mideast/Riyadh89" " " \ +"NZ" " " \ +"NZ-CHAT" " " \ +"Navajo" " " \ +"PRC" " " \ +"PST8PDT" " " \ +"Pacific/Apia" " " \ +"Pacific/Auckland" " " \ +"Pacific/Chatham" " " \ +"Pacific/Easter" " " \ +"Pacific/Efate" " " \ +"Pacific/Enderbury" " " \ +"Pacific/Fakaofo" " " \ +"Pacific/Fiji" " " \ +"Pacific/Funafuti" " " \ +"Pacific/Galapagos" " " \ +"Pacific/Gambier" " " \ +"Pacific/Guadalcanal" " " \ +"Pacific/Guam" " " \ +"Pacific/Honolulu" " " \ +"Pacific/Johnston" " " \ +"Pacific/Kiritimati" " " \ +"Pacific/Kosrae" " " \ +"Pacific/Kwajalein" " " \ +"Pacific/Majuro" " " \ +"Pacific/Marquesas" " " \ +"Pacific/Midway" " " \ +"Pacific/Nauru" " " \ +"Pacific/Niue" " " \ +"Pacific/Norfolk" " " \ +"Pacific/Noumea" " " \ +"Pacific/Pago_Pago" " " \ +"Pacific/Palau" " " \ +"Pacific/Pitcairn" " " \ +"Pacific/Ponape" " " \ +"Pacific/Port_Moresby" " " \ +"Pacific/Rarotonga" " " \ +"Pacific/Saipan" " " \ +"Pacific/Samoa" " " \ +"Pacific/Tahiti" " " \ +"Pacific/Tarawa" " " \ +"Pacific/Tongatapu" " " \ +"Pacific/Truk" " " \ +"Pacific/Wake" " " \ +"Pacific/Wallis" " " \ +"Pacific/Yap" " " \ +"Poland" " " \ +"Portugal" " " \ +"ROC" " " \ +"ROK" " " \ +"Singapore" " " \ +"Turkey" " " \ +"UCT" " " \ +"UTC" " " \ +"Universal" " " \ +"W-SU" " " \ +"WET" " " \ +"Zulu" " " \ +"posix/Africa/Abidjan" " " \ +"posix/Africa/Accra" " " \ +"posix/Africa/Addis_Ababa" " " \ +"posix/Africa/Algiers" " " \ +"posix/Africa/Asmera" " " \ +"posix/Africa/Bamako" " " \ +"posix/Africa/Bangui" " " \ +"posix/Africa/Banjul" " " \ +"posix/Africa/Bissau" " " \ +"posix/Africa/Blantyre" " " \ +"posix/Africa/Brazzaville" " " \ +"posix/Africa/Bujumbura" " " \ +"posix/Africa/Cairo" " " \ +"posix/Africa/Casablanca" " " \ +"posix/Africa/Ceuta" " " \ +"posix/Africa/Conakry" " " \ +"posix/Africa/Dakar" " " \ +"posix/Africa/Dar_es_Salaam" " " \ +"posix/Africa/Djibouti" " " \ +"posix/Africa/Douala" " " \ +"posix/Africa/El_Aaiun" " " \ +"posix/Africa/Freetown" " " \ +"posix/Africa/Gaborone" " " \ +"posix/Africa/Harare" " " \ +"posix/Africa/Johannesburg" " " \ +"posix/Africa/Kampala" " " \ +"posix/Africa/Khartoum" " " \ +"posix/Africa/Kigali" " " \ +"posix/Africa/Kinshasa" " " \ +"posix/Africa/Lagos" " " \ +"posix/Africa/Libreville" " " \ +"posix/Africa/Lome" " " \ +"posix/Africa/Luanda" " " \ +"posix/Africa/Lubumbashi" " " \ +"posix/Africa/Lusaka" " " \ +"posix/Africa/Malabo" " " \ +"posix/Africa/Maputo" " " \ +"posix/Africa/Maseru" " " \ +"posix/Africa/Mbabane" " " \ +"posix/Africa/Mogadishu" " " \ +"posix/Africa/Monrovia" " " \ +"posix/Africa/Nairobi" " " \ +"posix/Africa/Ndjamena" " " \ +"posix/Africa/Niamey" " " \ +"posix/Africa/Nouakchott" " " \ +"posix/Africa/Ouagadougou" " " \ +"posix/Africa/Porto-Novo" " " \ +"posix/Africa/Sao_Tome" " " \ +"posix/Africa/Timbuktu" " " \ +"posix/Africa/Tripoli" " " \ +"posix/Africa/Tunis" " " \ +"posix/Africa/Windhoek" " " \ +"posix/America/Adak" " " \ +"posix/America/Anchorage" " " \ +"posix/America/Anguilla" " " \ +"posix/America/Antigua" " " \ +"posix/America/Araguaina" " " \ +"posix/America/Argentina/Buenos_Aires" " " \ +"posix/America/Argentina/Catamarca" " " \ +"posix/America/Argentina/ComodRivadavia" " " \ +"posix/America/Argentina/Cordoba" " " \ +"posix/America/Argentina/Jujuy" " " \ +"posix/America/Argentina/La_Rioja" " " \ +"posix/America/Argentina/Mendoza" " " \ +"posix/America/Argentina/Rio_Gallegos" " " \ +"posix/America/Argentina/San_Juan" " " \ +"posix/America/Argentina/Tucuman" " " \ +"posix/America/Argentina/Ushuaia" " " \ +"posix/America/Aruba" " " \ +"posix/America/Asuncion" " " \ +"posix/America/Atikokan" " " \ +"posix/America/Atka" " " \ +"posix/America/Bahia" " " \ +"posix/America/Barbados" " " \ +"posix/America/Belem" " " \ +"posix/America/Belize" " " \ +"posix/America/Blanc-Sablon" " " \ +"posix/America/Boa_Vista" " " \ +"posix/America/Bogota" " " \ +"posix/America/Boise" " " \ +"posix/America/Buenos_Aires" " " \ +"posix/America/Cambridge_Bay" " " \ +"posix/America/Campo_Grande" " " \ +"posix/America/Cancun" " " \ +"posix/America/Caracas" " " \ +"posix/America/Catamarca" " " \ +"posix/America/Cayenne" " " \ +"posix/America/Cayman" " " \ +"posix/America/Chicago" " " \ +"posix/America/Chihuahua" " " \ +"posix/America/Coral_Harbour" " " \ +"posix/America/Cordoba" " " \ +"posix/America/Costa_Rica" " " \ +"posix/America/Cuiaba" " " \ +"posix/America/Curacao" " " \ +"posix/America/Danmarkshavn" " " \ +"posix/America/Dawson" " " \ +"posix/America/Dawson_Creek" " " \ +"posix/America/Denver" " " \ +"posix/America/Detroit" " " \ +"posix/America/Dominica" " " \ +"posix/America/Edmonton" " " \ +"posix/America/Eirunepe" " " \ +"posix/America/El_Salvador" " " \ +"posix/America/Ensenada" " " \ +"posix/America/Fort_Wayne" " " \ +"posix/America/Fortaleza" " " \ +"posix/America/Glace_Bay" " " \ +"posix/America/Godthab" " " \ +"posix/America/Goose_Bay" " " \ +"posix/America/Grand_Turk" " " \ +"posix/America/Grenada" " " \ +"posix/America/Guadeloupe" " " \ +"posix/America/Guatemala" " " \ +"posix/America/Guayaquil" " " \ +"posix/America/Guyana" " " \ +"posix/America/Halifax" " " \ +"posix/America/Havana" " " \ +"posix/America/Hermosillo" " " \ +"posix/America/Indiana/Indianapolis" " " \ +"posix/America/Indiana/Knox" " " \ +"posix/America/Indiana/Marengo" " " \ +"posix/America/Indiana/Petersburg" " " \ +"posix/America/Indiana/Tell_City" " " \ +"posix/America/Indiana/Vevay" " " \ +"posix/America/Indiana/Vincennes" " " \ +"posix/America/Indianapolis" " " \ +"posix/America/Inuvik" " " \ +"posix/America/Iqaluit" " " \ +"posix/America/Jamaica" " " \ +"posix/America/Jujuy" " " \ +"posix/America/Juneau" " " \ +"posix/America/Kentucky/Louisville" " " \ +"posix/America/Kentucky/Monticello" " " \ +"posix/America/Knox_IN" " " \ +"posix/America/La_Paz" " " \ +"posix/America/Lima" " " \ +"posix/America/Los_Angeles" " " \ +"posix/America/Louisville" " " \ +"posix/America/Maceio" " " \ +"posix/America/Managua" " " \ +"posix/America/Manaus" " " \ +"posix/America/Martinique" " " \ +"posix/America/Mazatlan" " " \ +"posix/America/Mendoza" " " \ +"posix/America/Menominee" " " \ +"posix/America/Merida" " " \ +"posix/America/Mexico_City" " " \ +"posix/America/Miquelon" " " \ +"posix/America/Moncton" " " \ +"posix/America/Monterrey" " " \ +"posix/America/Montevideo" " " \ +"posix/America/Montreal" " " \ +"posix/America/Montserrat" " " \ +"posix/America/Nassau" " " \ +"posix/America/New_York" " " \ +"posix/America/Nipigon" " " \ +"posix/America/Nome" " " \ +"posix/America/Noronha" " " \ +"posix/America/North_Dakota/Center" " " \ +"posix/America/North_Dakota/New_Salem" " " \ +"posix/America/Panama" " " \ +"posix/America/Pangnirtung" " " \ +"posix/America/Paramaribo" " " \ +"posix/America/Phoenix" " " \ +"posix/America/Port-au-Prince" " " \ +"posix/America/Port_of_Spain" " " \ +"posix/America/Porto_Acre" " " \ +"posix/America/Porto_Velho" " " \ +"posix/America/Puerto_Rico" " " \ +"posix/America/Rainy_River" " " \ +"posix/America/Rankin_Inlet" " " \ +"posix/America/Recife" " " \ +"posix/America/Regina" " " \ +"posix/America/Rio_Branco" " " \ +"posix/America/Rosario" " " \ +"posix/America/Santiago" " " \ +"posix/America/Santo_Domingo" " " \ +"posix/America/Sao_Paulo" " " \ +"posix/America/Scoresbysund" " " \ +"posix/America/Shiprock" " " \ +"posix/America/St_Johns" " " \ +"posix/America/St_Kitts" " " \ +"posix/America/St_Lucia" " " \ +"posix/America/St_Thomas" " " \ +"posix/America/St_Vincent" " " \ +"posix/America/Swift_Current" " " \ +"posix/America/Tegucigalpa" " " \ +"posix/America/Thule" " " \ +"posix/America/Thunder_Bay" " " \ +"posix/America/Tijuana" " " \ +"posix/America/Toronto" " " \ +"posix/America/Tortola" " " \ +"posix/America/Vancouver" " " \ +"posix/America/Virgin" " " \ +"posix/America/Whitehorse" " " \ +"posix/America/Winnipeg" " " \ +"posix/America/Yakutat" " " \ +"posix/America/Yellowknife" " " \ +"posix/Antarctica/Casey" " " \ +"posix/Antarctica/Davis" " " \ +"posix/Antarctica/DumontDUrville" " " \ +"posix/Antarctica/Mawson" " " \ +"posix/Antarctica/McMurdo" " " \ +"posix/Antarctica/Palmer" " " \ +"posix/Antarctica/Rothera" " " \ +"posix/Antarctica/South_Pole" " " \ +"posix/Antarctica/Syowa" " " \ +"posix/Antarctica/Vostok" " " \ +"posix/Arctic/Longyearbyen" " " \ +"posix/Asia/Aden" " " \ +"posix/Asia/Almaty" " " \ +"posix/Asia/Amman" " " \ +"posix/Asia/Anadyr" " " \ +"posix/Asia/Aqtau" " " \ +"posix/Asia/Aqtobe" " " \ +"posix/Asia/Ashgabat" " " \ +"posix/Asia/Ashkhabad" " " \ +"posix/Asia/Baghdad" " " \ +"posix/Asia/Bahrain" " " \ +"posix/Asia/Baku" " " \ +"posix/Asia/Bangkok" " " \ +"posix/Asia/Beirut" " " \ +"posix/Asia/Bishkek" " " \ +"posix/Asia/Brunei" " " \ +"posix/Asia/Calcutta" " " \ +"posix/Asia/Choibalsan" " " \ +"posix/Asia/Chongqing" " " \ +"posix/Asia/Chungking" " " \ +"posix/Asia/Colombo" " " \ +"posix/Asia/Dacca" " " \ +"posix/Asia/Damascus" " " \ +"posix/Asia/Dhaka" " " \ +"posix/Asia/Dili" " " \ +"posix/Asia/Dubai" " " \ +"posix/Asia/Dushanbe" " " \ +"posix/Asia/Gaza" " " \ +"posix/Asia/Harbin" " " \ +"posix/Asia/Hong_Kong" " " \ +"posix/Asia/Hovd" " " \ +"posix/Asia/Irkutsk" " " \ +"posix/Asia/Istanbul" " " \ +"posix/Asia/Jakarta" " " \ +"posix/Asia/Jayapura" " " \ +"posix/Asia/Jerusalem" " " \ +"posix/Asia/Kabul" " " \ +"posix/Asia/Kamchatka" " " \ +"posix/Asia/Karachi" " " \ +"posix/Asia/Kashgar" " " \ +"posix/Asia/Katmandu" " " \ +"posix/Asia/Krasnoyarsk" " " \ +"posix/Asia/Kuala_Lumpur" " " \ +"posix/Asia/Kuching" " " \ +"posix/Asia/Kuwait" " " \ +"posix/Asia/Macao" " " \ +"posix/Asia/Macau" " " \ +"posix/Asia/Magadan" " " \ +"posix/Asia/Makassar" " " \ +"posix/Asia/Manila" " " \ +"posix/Asia/Muscat" " " \ +"posix/Asia/Nicosia" " " \ +"posix/Asia/Novosibirsk" " " \ +"posix/Asia/Omsk" " " \ +"posix/Asia/Oral" " " \ +"posix/Asia/Phnom_Penh" " " \ +"posix/Asia/Pontianak" " " \ +"posix/Asia/Pyongyang" " " \ +"posix/Asia/Qatar" " " \ +"posix/Asia/Qyzylorda" " " \ +"posix/Asia/Rangoon" " " \ +"posix/Asia/Riyadh" " " \ +"posix/Asia/Riyadh87" " " \ +"posix/Asia/Riyadh88" " " \ +"posix/Asia/Riyadh89" " " \ +"posix/Asia/Saigon" " " \ +"posix/Asia/Sakhalin" " " \ +"posix/Asia/Samarkand" " " \ +"posix/Asia/Seoul" " " \ +"posix/Asia/Shanghai" " " \ +"posix/Asia/Singapore" " " \ +"posix/Asia/Taipei" " " \ +"posix/Asia/Tashkent" " " \ +"posix/Asia/Tbilisi" " " \ +"posix/Asia/Tehran" " " \ +"posix/Asia/Tel_Aviv" " " \ +"posix/Asia/Thimbu" " " \ +"posix/Asia/Thimphu" " " \ +"posix/Asia/Tokyo" " " \ +"posix/Asia/Ujung_Pandang" " " \ +"posix/Asia/Ulaanbaatar" " " \ +"posix/Asia/Ulan_Bator" " " \ +"posix/Asia/Urumqi" " " \ +"posix/Asia/Vientiane" " " \ +"posix/Asia/Vladivostok" " " \ +"posix/Asia/Yakutsk" " " \ +"posix/Asia/Yekaterinburg" " " \ +"posix/Asia/Yerevan" " " \ +"posix/Atlantic/Azores" " " \ +"posix/Atlantic/Bermuda" " " \ +"posix/Atlantic/Canary" " " \ +"posix/Atlantic/Cape_Verde" " " \ +"posix/Atlantic/Faeroe" " " \ +"posix/Atlantic/Jan_Mayen" " " \ +"posix/Atlantic/Madeira" " " \ +"posix/Atlantic/Reykjavik" " " \ +"posix/Atlantic/South_Georgia" " " \ +"posix/Atlantic/St_Helena" " " \ +"posix/Atlantic/Stanley" " " \ +"posix/Australia/ACT" " " \ +"posix/Australia/Adelaide" " " \ +"posix/Australia/Brisbane" " " \ +"posix/Australia/Broken_Hill" " " \ +"posix/Australia/Canberra" " " \ +"posix/Australia/Currie" " " \ +"posix/Australia/Darwin" " " \ +"posix/Australia/Hobart" " " \ +"posix/Australia/LHI" " " \ +"posix/Australia/Lindeman" " " \ +"posix/Australia/Lord_Howe" " " \ +"posix/Australia/Melbourne" " " \ +"posix/Australia/NSW" " " \ +"posix/Australia/North" " " \ +"posix/Australia/Perth" " " \ +"posix/Australia/Queensland" " " \ +"posix/Australia/South" " " \ +"posix/Australia/Sydney" " " \ +"posix/Australia/Tasmania" " " \ +"posix/Australia/Victoria" " " \ +"posix/Australia/West" " " \ +"posix/Australia/Yancowinna" " " \ +"posix/Brazil/Acre" " " \ +"posix/Brazil/DeNoronha" " " \ +"posix/Brazil/East" " " \ +"posix/Brazil/West" " " \ +"posix/CET" " " \ +"posix/CST6CDT" " " \ +"posix/Canada/Atlantic" " " \ +"posix/Canada/Central" " " \ +"posix/Canada/East-Saskatchewan" " " \ +"posix/Canada/Eastern" " " \ +"posix/Canada/Mountain" " " \ +"posix/Canada/Newfoundland" " " \ +"posix/Canada/Pacific" " " \ +"posix/Canada/Saskatchewan" " " \ +"posix/Canada/Yukon" " " \ +"posix/Chile/Continental" " " \ +"posix/Chile/EasterIsland" " " \ +"posix/Cuba" " " \ +"posix/EET" " " \ +"posix/EST" " " \ +"posix/EST5EDT" " " \ +"posix/Egypt" " " \ +"posix/Eire" " " \ +"posix/Etc/GMT" " " \ +"posix/Etc/GMT+0" " " \ +"posix/Etc/GMT+1" " " \ +"posix/Etc/GMT+10" " " \ +"posix/Etc/GMT+11" " " \ +"posix/Etc/GMT+12" " " \ +"posix/Etc/GMT+2" " " \ +"posix/Etc/GMT+3" " " \ +"posix/Etc/GMT+4" " " \ +"posix/Etc/GMT+5" " " \ +"posix/Etc/GMT+6" " " \ +"posix/Etc/GMT+7" " " \ +"posix/Etc/GMT+8" " " \ +"posix/Etc/GMT+9" " " \ +"posix/Etc/GMT-0" " " \ +"posix/Etc/GMT-1" " " \ +"posix/Etc/GMT-10" " " \ +"posix/Etc/GMT-11" " " \ +"posix/Etc/GMT-12" " " \ +"posix/Etc/GMT-13" " " \ +"posix/Etc/GMT-14" " " \ +"posix/Etc/GMT-2" " " \ +"posix/Etc/GMT-3" " " \ +"posix/Etc/GMT-4" " " \ +"posix/Etc/GMT-5" " " \ +"posix/Etc/GMT-6" " " \ +"posix/Etc/GMT-7" " " \ +"posix/Etc/GMT-8" " " \ +"posix/Etc/GMT-9" " " \ +"posix/Etc/GMT0" " " \ +"posix/Etc/Greenwich" " " \ +"posix/Etc/UCT" " " \ +"posix/Etc/UTC" " " \ +"posix/Etc/Universal" " " \ +"posix/Etc/Zulu" " " \ +"posix/Europe/Amsterdam" " " \ +"posix/Europe/Andorra" " " \ +"posix/Europe/Athens" " " \ +"posix/Europe/Belfast" " " \ +"posix/Europe/Belgrade" " " \ +"posix/Europe/Berlin" " " \ +"posix/Europe/Bratislava" " " \ +"posix/Europe/Brussels" " " \ +"posix/Europe/Bucharest" " " \ +"posix/Europe/Budapest" " " \ +"posix/Europe/Chisinau" " " \ +"posix/Europe/Copenhagen" " " \ +"posix/Europe/Dublin" " " \ +"posix/Europe/Gibraltar" " " \ +"posix/Europe/Guernsey" " " \ +"posix/Europe/Helsinki" " " \ +"posix/Europe/Isle_of_Man" " " \ +"posix/Europe/Istanbul" " " \ +"posix/Europe/Jersey" " " \ +"posix/Europe/Kaliningrad" " " \ +"posix/Europe/Kiev" " " \ +"posix/Europe/Lisbon" " " \ +"posix/Europe/Ljubljana" " " \ +"posix/Europe/London" " " \ +"posix/Europe/Luxembourg" " " \ +"posix/Europe/Madrid" " " \ +"posix/Europe/Malta" " " \ +"posix/Europe/Mariehamn" " " \ +"posix/Europe/Minsk" " " \ +"posix/Europe/Monaco" " " \ +"posix/Europe/Moscow" " " \ +"posix/Europe/Nicosia" " " \ +"posix/Europe/Oslo" " " \ +"posix/Europe/Paris" " " \ +"posix/Europe/Podgorica" " " \ +"posix/Europe/Prague" " " \ +"posix/Europe/Riga" " " \ +"posix/Europe/Rome" " " \ +"posix/Europe/Samara" " " \ +"posix/Europe/San_Marino" " " \ +"posix/Europe/Sarajevo" " " \ +"posix/Europe/Simferopol" " " \ +"posix/Europe/Skopje" " " \ +"posix/Europe/Sofia" " " \ +"posix/Europe/Stockholm" " " \ +"posix/Europe/Tallinn" " " \ +"posix/Europe/Tirane" " " \ +"posix/Europe/Tiraspol" " " \ +"posix/Europe/Uzhgorod" " " \ +"posix/Europe/Vaduz" " " \ +"posix/Europe/Vatican" " " \ +"posix/Europe/Vienna" " " \ +"posix/Europe/Vilnius" " " \ +"posix/Europe/Volgograd" " " \ +"posix/Europe/Warsaw" " " \ +"posix/Europe/Zagreb" " " \ +"posix/Europe/Zaporozhye" " " \ +"posix/Europe/Zurich" " " \ +"posix/Factory" " " \ +"posix/GB" " " \ +"posix/GB-Eire" " " \ +"posix/GMT" " " \ +"posix/GMT+0" " " \ +"posix/GMT-0" " " \ +"posix/GMT0" " " \ +"posix/Greenwich" " " \ +"posix/HST" " " \ +"posix/Hongkong" " " \ +"posix/Iceland" " " \ +"posix/Indian/Antananarivo" " " \ +"posix/Indian/Chagos" " " \ +"posix/Indian/Christmas" " " \ +"posix/Indian/Cocos" " " \ +"posix/Indian/Comoro" " " \ +"posix/Indian/Kerguelen" " " \ +"posix/Indian/Mahe" " " \ +"posix/Indian/Maldives" " " \ +"posix/Indian/Mauritius" " " \ +"posix/Indian/Mayotte" " " \ +"posix/Indian/Reunion" " " \ +"posix/Iran" " " \ +"posix/Israel" " " \ +"posix/Jamaica" " " \ +"posix/Japan" " " \ +"posix/Kwajalein" " " \ +"posix/Libya" " " \ +"posix/MET" " " \ +"posix/MST" " " \ +"posix/MST7MDT" " " \ +"posix/Mexico/BajaNorte" " " \ +"posix/Mexico/BajaSur" " " \ +"posix/Mexico/General" " " \ +"posix/Mideast/Riyadh87" " " \ +"posix/Mideast/Riyadh88" " " \ +"posix/Mideast/Riyadh89" " " \ +"posix/NZ" " " \ +"posix/NZ-CHAT" " " \ +"posix/Navajo" " " \ +"posix/PRC" " " \ +"posix/PST8PDT" " " \ +"posix/Pacific/Apia" " " \ +"posix/Pacific/Auckland" " " \ +"posix/Pacific/Chatham" " " \ +"posix/Pacific/Easter" " " \ +"posix/Pacific/Efate" " " \ +"posix/Pacific/Enderbury" " " \ +"posix/Pacific/Fakaofo" " " \ +"posix/Pacific/Fiji" " " \ +"posix/Pacific/Funafuti" " " \ +"posix/Pacific/Galapagos" " " \ +"posix/Pacific/Gambier" " " \ +"posix/Pacific/Guadalcanal" " " \ +"posix/Pacific/Guam" " " \ +"posix/Pacific/Honolulu" " " \ +"posix/Pacific/Johnston" " " \ +"posix/Pacific/Kiritimati" " " \ +"posix/Pacific/Kosrae" " " \ +"posix/Pacific/Kwajalein" " " \ +"posix/Pacific/Majuro" " " \ +"posix/Pacific/Marquesas" " " \ +"posix/Pacific/Midway" " " \ +"posix/Pacific/Nauru" " " \ +"posix/Pacific/Niue" " " \ +"posix/Pacific/Norfolk" " " \ +"posix/Pacific/Noumea" " " \ +"posix/Pacific/Pago_Pago" " " \ +"posix/Pacific/Palau" " " \ +"posix/Pacific/Pitcairn" " " \ +"posix/Pacific/Ponape" " " \ +"posix/Pacific/Port_Moresby" " " \ +"posix/Pacific/Rarotonga" " " \ +"posix/Pacific/Saipan" " " \ +"posix/Pacific/Samoa" " " \ +"posix/Pacific/Tahiti" " " \ +"posix/Pacific/Tarawa" " " \ +"posix/Pacific/Tongatapu" " " \ +"posix/Pacific/Truk" " " \ +"posix/Pacific/Wake" " " \ +"posix/Pacific/Wallis" " " \ +"posix/Pacific/Yap" " " \ +"posix/Poland" " " \ +"posix/Portugal" " " \ +"posix/ROC" " " \ +"posix/ROK" " " \ +"posix/Singapore" " " \ +"posix/Turkey" " " \ +"posix/UCT" " " \ +"posix/US/Alaska" " " \ +"posix/US/Aleutian" " " \ +"posix/US/Arizona" " " \ +"posix/US/Central" " " \ +"posix/US/East-Indiana" " " \ +"posix/US/Eastern" " " \ +"posix/US/Hawaii" " " \ +"posix/US/Indiana-Starke" " " \ +"posix/US/Michigan" " " \ +"posix/US/Mountain" " " \ +"posix/US/Pacific" " " \ +"posix/US/Samoa" " " \ +"posix/UTC" " " \ +"posix/Universal" " " \ +"posix/W-SU" " " \ +"posix/WET" " " \ +"posix/Zulu" " " \ +"posixrules" " " \ +"right/Africa/Abidjan" " " \ +"right/Africa/Accra" " " \ +"right/Africa/Addis_Ababa" " " \ +"right/Africa/Algiers" " " \ +"right/Africa/Asmera" " " \ +"right/Africa/Bamako" " " \ +"right/Africa/Bangui" " " \ +"right/Africa/Banjul" " " \ +"right/Africa/Bissau" " " \ +"right/Africa/Blantyre" " " \ +"right/Africa/Brazzaville" " " \ +"right/Africa/Bujumbura" " " \ +"right/Africa/Cairo" " " \ +"right/Africa/Casablanca" " " \ +"right/Africa/Ceuta" " " \ +"right/Africa/Conakry" " " \ +"right/Africa/Dakar" " " \ +"right/Africa/Dar_es_Salaam" " " \ +"right/Africa/Djibouti" " " \ +"right/Africa/Douala" " " \ +"right/Africa/El_Aaiun" " " \ +"right/Africa/Freetown" " " \ +"right/Africa/Gaborone" " " \ +"right/Africa/Harare" " " \ +"right/Africa/Johannesburg" " " \ +"right/Africa/Kampala" " " \ +"right/Africa/Khartoum" " " \ +"right/Africa/Kigali" " " \ +"right/Africa/Kinshasa" " " \ +"right/Africa/Lagos" " " \ +"right/Africa/Libreville" " " \ +"right/Africa/Lome" " " \ +"right/Africa/Luanda" " " \ +"right/Africa/Lubumbashi" " " \ +"right/Africa/Lusaka" " " \ +"right/Africa/Malabo" " " \ +"right/Africa/Maputo" " " \ +"right/Africa/Maseru" " " \ +"right/Africa/Mbabane" " " \ +"right/Africa/Mogadishu" " " \ +"right/Africa/Monrovia" " " \ +"right/Africa/Nairobi" " " \ +"right/Africa/Ndjamena" " " \ +"right/Africa/Niamey" " " \ +"right/Africa/Nouakchott" " " \ +"right/Africa/Ouagadougou" " " \ +"right/Africa/Porto-Novo" " " \ +"right/Africa/Sao_Tome" " " \ +"right/Africa/Timbuktu" " " \ +"right/Africa/Tripoli" " " \ +"right/Africa/Tunis" " " \ +"right/Africa/Windhoek" " " \ +"right/America/Adak" " " \ +"right/America/Anchorage" " " \ +"right/America/Anguilla" " " \ +"right/America/Antigua" " " \ +"right/America/Araguaina" " " \ +"right/America/Argentina/Buenos_Aires" " " \ +"right/America/Argentina/Catamarca" " " \ +"right/America/Argentina/ComodRivadavia" " " \ +"right/America/Argentina/Cordoba" " " \ +"right/America/Argentina/Jujuy" " " \ +"right/America/Argentina/La_Rioja" " " \ +"right/America/Argentina/Mendoza" " " \ +"right/America/Argentina/Rio_Gallegos" " " \ +"right/America/Argentina/San_Juan" " " \ +"right/America/Argentina/Tucuman" " " \ +"right/America/Argentina/Ushuaia" " " \ +"right/America/Aruba" " " \ +"right/America/Asuncion" " " \ +"right/America/Atikokan" " " \ +"right/America/Atka" " " \ +"right/America/Bahia" " " \ +"right/America/Barbados" " " \ +"right/America/Belem" " " \ +"right/America/Belize" " " \ +"right/America/Blanc-Sablon" " " \ +"right/America/Boa_Vista" " " \ +"right/America/Bogota" " " \ +"right/America/Boise" " " \ +"right/America/Buenos_Aires" " " \ +"right/America/Cambridge_Bay" " " \ +"right/America/Campo_Grande" " " \ +"right/America/Cancun" " " \ +"right/America/Caracas" " " \ +"right/America/Catamarca" " " \ +"right/America/Cayenne" " " \ +"right/America/Cayman" " " \ +"right/America/Chicago" " " \ +"right/America/Chihuahua" " " \ +"right/America/Coral_Harbour" " " \ +"right/America/Cordoba" " " \ +"right/America/Costa_Rica" " " \ +"right/America/Cuiaba" " " \ +"right/America/Curacao" " " \ +"right/America/Danmarkshavn" " " \ +"right/America/Dawson" " " \ +"right/America/Dawson_Creek" " " \ +"right/America/Denver" " " \ +"right/America/Detroit" " " \ +"right/America/Dominica" " " \ +"right/America/Edmonton" " " \ +"right/America/Eirunepe" " " \ +"right/America/El_Salvador" " " \ +"right/America/Ensenada" " " \ +"right/America/Fort_Wayne" " " \ +"right/America/Fortaleza" " " \ +"right/America/Glace_Bay" " " \ +"right/America/Godthab" " " \ +"right/America/Goose_Bay" " " \ +"right/America/Grand_Turk" " " \ +"right/America/Grenada" " " \ +"right/America/Guadeloupe" " " \ +"right/America/Guatemala" " " \ +"right/America/Guayaquil" " " \ +"right/America/Guyana" " " \ +"right/America/Halifax" " " \ +"right/America/Havana" " " \ +"right/America/Hermosillo" " " \ +"right/America/Indiana/Indianapolis" " " \ +"right/America/Indiana/Knox" " " \ +"right/America/Indiana/Marengo" " " \ +"right/America/Indiana/Petersburg" " " \ +"right/America/Indiana/Tell_City" " " \ +"right/America/Indiana/Vevay" " " \ +"right/America/Indiana/Vincennes" " " \ +"right/America/Indianapolis" " " \ +"right/America/Inuvik" " " \ +"right/America/Iqaluit" " " \ +"right/America/Jamaica" " " \ +"right/America/Jujuy" " " \ +"right/America/Juneau" " " \ +"right/America/Kentucky/Louisville" " " \ +"right/America/Kentucky/Monticello" " " \ +"right/America/Knox_IN" " " \ +"right/America/La_Paz" " " \ +"right/America/Lima" " " \ +"right/America/Los_Angeles" " " \ +"right/America/Louisville" " " \ +"right/America/Maceio" " " \ +"right/America/Managua" " " \ +"right/America/Manaus" " " \ +"right/America/Martinique" " " \ +"right/America/Mazatlan" " " \ +"right/America/Mendoza" " " \ +"right/America/Menominee" " " \ +"right/America/Merida" " " \ +"right/America/Mexico_City" " " \ +"right/America/Miquelon" " " \ +"right/America/Moncton" " " \ +"right/America/Monterrey" " " \ +"right/America/Montevideo" " " \ +"right/America/Montreal" " " \ +"right/America/Montserrat" " " \ +"right/America/Nassau" " " \ +"right/America/New_York" " " \ +"right/America/Nipigon" " " \ +"right/America/Nome" " " \ +"right/America/Noronha" " " \ +"right/America/North_Dakota/Center" " " \ +"right/America/North_Dakota/New_Salem" " " \ +"right/America/Panama" " " \ +"right/America/Pangnirtung" " " \ +"right/America/Paramaribo" " " \ +"right/America/Phoenix" " " \ +"right/America/Port-au-Prince" " " \ +"right/America/Port_of_Spain" " " \ +"right/America/Porto_Acre" " " \ +"right/America/Porto_Velho" " " \ +"right/America/Puerto_Rico" " " \ +"right/America/Rainy_River" " " \ +"right/America/Rankin_Inlet" " " \ +"right/America/Recife" " " \ +"right/America/Regina" " " \ +"right/America/Rio_Branco" " " \ +"right/America/Rosario" " " \ +"right/America/Santiago" " " \ +"right/America/Santo_Domingo" " " \ +"right/America/Sao_Paulo" " " \ +"right/America/Scoresbysund" " " \ +"right/America/Shiprock" " " \ +"right/America/St_Johns" " " \ +"right/America/St_Kitts" " " \ +"right/America/St_Lucia" " " \ +"right/America/St_Thomas" " " \ +"right/America/St_Vincent" " " \ +"right/America/Swift_Current" " " \ +"right/America/Tegucigalpa" " " \ +"right/America/Thule" " " \ +"right/America/Thunder_Bay" " " \ +"right/America/Tijuana" " " \ +"right/America/Toronto" " " \ +"right/America/Tortola" " " \ +"right/America/Vancouver" " " \ +"right/America/Virgin" " " \ +"right/America/Whitehorse" " " \ +"right/America/Winnipeg" " " \ +"right/America/Yakutat" " " \ +"right/America/Yellowknife" " " \ +"right/Antarctica/Casey" " " \ +"right/Antarctica/Davis" " " \ +"right/Antarctica/DumontDUrville" " " \ +"right/Antarctica/Mawson" " " \ +"right/Antarctica/McMurdo" " " \ +"right/Antarctica/Palmer" " " \ +"right/Antarctica/Rothera" " " \ +"right/Antarctica/South_Pole" " " \ +"right/Antarctica/Syowa" " " \ +"right/Antarctica/Vostok" " " \ +"right/Arctic/Longyearbyen" " " \ +"right/Asia/Aden" " " \ +"right/Asia/Almaty" " " \ +"right/Asia/Amman" " " \ +"right/Asia/Anadyr" " " \ +"right/Asia/Aqtau" " " \ +"right/Asia/Aqtobe" " " \ +"right/Asia/Ashgabat" " " \ +"right/Asia/Ashkhabad" " " \ +"right/Asia/Baghdad" " " \ +"right/Asia/Bahrain" " " \ +"right/Asia/Baku" " " \ +"right/Asia/Bangkok" " " \ +"right/Asia/Beirut" " " \ +"right/Asia/Bishkek" " " \ +"right/Asia/Brunei" " " \ +"right/Asia/Calcutta" " " \ +"right/Asia/Choibalsan" " " \ +"right/Asia/Chongqing" " " \ +"right/Asia/Chungking" " " \ +"right/Asia/Colombo" " " \ +"right/Asia/Dacca" " " \ +"right/Asia/Damascus" " " \ +"right/Asia/Dhaka" " " \ +"right/Asia/Dili" " " \ +"right/Asia/Dubai" " " \ +"right/Asia/Dushanbe" " " \ +"right/Asia/Gaza" " " \ +"right/Asia/Harbin" " " \ +"right/Asia/Hong_Kong" " " \ +"right/Asia/Hovd" " " \ +"right/Asia/Irkutsk" " " \ +"right/Asia/Istanbul" " " \ +"right/Asia/Jakarta" " " \ +"right/Asia/Jayapura" " " \ +"right/Asia/Jerusalem" " " \ +"right/Asia/Kabul" " " \ +"right/Asia/Kamchatka" " " \ +"right/Asia/Karachi" " " \ +"right/Asia/Kashgar" " " \ +"right/Asia/Katmandu" " " \ +"right/Asia/Krasnoyarsk" " " \ +"right/Asia/Kuala_Lumpur" " " \ +"right/Asia/Kuching" " " \ +"right/Asia/Kuwait" " " \ +"right/Asia/Macao" " " \ +"right/Asia/Macau" " " \ +"right/Asia/Magadan" " " \ +"right/Asia/Makassar" " " \ +"right/Asia/Manila" " " \ +"right/Asia/Muscat" " " \ +"right/Asia/Nicosia" " " \ +"right/Asia/Novosibirsk" " " \ +"right/Asia/Omsk" " " \ +"right/Asia/Oral" " " \ +"right/Asia/Phnom_Penh" " " \ +"right/Asia/Pontianak" " " \ +"right/Asia/Pyongyang" " " \ +"right/Asia/Qatar" " " \ +"right/Asia/Qyzylorda" " " \ +"right/Asia/Rangoon" " " \ +"right/Asia/Riyadh" " " \ +"right/Asia/Riyadh87" " " \ +"right/Asia/Riyadh88" " " \ +"right/Asia/Riyadh89" " " \ +"right/Asia/Saigon" " " \ +"right/Asia/Sakhalin" " " \ +"right/Asia/Samarkand" " " \ +"right/Asia/Seoul" " " \ +"right/Asia/Shanghai" " " \ +"right/Asia/Singapore" " " \ +"right/Asia/Taipei" " " \ +"right/Asia/Tashkent" " " \ +"right/Asia/Tbilisi" " " \ +"right/Asia/Tehran" " " \ +"right/Asia/Tel_Aviv" " " \ +"right/Asia/Thimbu" " " \ +"right/Asia/Thimphu" " " \ +"right/Asia/Tokyo" " " \ +"right/Asia/Ujung_Pandang" " " \ +"right/Asia/Ulaanbaatar" " " \ +"right/Asia/Ulan_Bator" " " \ +"right/Asia/Urumqi" " " \ +"right/Asia/Vientiane" " " \ +"right/Asia/Vladivostok" " " \ +"right/Asia/Yakutsk" " " \ +"right/Asia/Yekaterinburg" " " \ +"right/Asia/Yerevan" " " \ +"right/Atlantic/Azores" " " \ +"right/Atlantic/Bermuda" " " \ +"right/Atlantic/Canary" " " \ +"right/Atlantic/Cape_Verde" " " \ +"right/Atlantic/Faeroe" " " \ +"right/Atlantic/Jan_Mayen" " " \ +"right/Atlantic/Madeira" " " \ +"right/Atlantic/Reykjavik" " " \ +"right/Atlantic/South_Georgia" " " \ +"right/Atlantic/St_Helena" " " \ +"right/Atlantic/Stanley" " " \ +"right/Australia/ACT" " " \ +"right/Australia/Adelaide" " " \ +"right/Australia/Brisbane" " " \ +"right/Australia/Broken_Hill" " " \ +"right/Australia/Canberra" " " \ +"right/Australia/Currie" " " \ +"right/Australia/Darwin" " " \ +"right/Australia/Hobart" " " \ +"right/Australia/LHI" " " \ +"right/Australia/Lindeman" " " \ +"right/Australia/Lord_Howe" " " \ +"right/Australia/Melbourne" " " \ +"right/Australia/NSW" " " \ +"right/Australia/North" " " \ +"right/Australia/Perth" " " \ +"right/Australia/Queensland" " " \ +"right/Australia/South" " " \ +"right/Australia/Sydney" " " \ +"right/Australia/Tasmania" " " \ +"right/Australia/Victoria" " " \ +"right/Australia/West" " " \ +"right/Australia/Yancowinna" " " \ +"right/Brazil/Acre" " " \ +"right/Brazil/DeNoronha" " " \ +"right/Brazil/East" " " \ +"right/Brazil/West" " " \ +"right/CET" " " \ +"right/CST6CDT" " " \ +"right/Canada/Atlantic" " " \ +"right/Canada/Central" " " \ +"right/Canada/East-Saskatchewan" " " \ +"right/Canada/Eastern" " " \ +"right/Canada/Mountain" " " \ +"right/Canada/Newfoundland" " " \ +"right/Canada/Pacific" " " \ +"right/Canada/Saskatchewan" " " \ +"right/Canada/Yukon" " " \ +"right/Chile/Continental" " " \ +"right/Chile/EasterIsland" " " \ +"right/Cuba" " " \ +"right/EET" " " \ +"right/EST" " " \ +"right/EST5EDT" " " \ +"right/Egypt" " " \ +"right/Eire" " " \ +"right/Etc/GMT" " " \ +"right/Etc/GMT+0" " " \ +"right/Etc/GMT+1" " " \ +"right/Etc/GMT+10" " " \ +"right/Etc/GMT+11" " " \ +"right/Etc/GMT+12" " " \ +"right/Etc/GMT+2" " " \ +"right/Etc/GMT+3" " " \ +"right/Etc/GMT+4" " " \ +"right/Etc/GMT+5" " " \ +"right/Etc/GMT+6" " " \ +"right/Etc/GMT+7" " " \ +"right/Etc/GMT+8" " " \ +"right/Etc/GMT+9" " " \ +"right/Etc/GMT-0" " " \ +"right/Etc/GMT-1" " " \ +"right/Etc/GMT-10" " " \ +"right/Etc/GMT-11" " " \ +"right/Etc/GMT-12" " " \ +"right/Etc/GMT-13" " " \ +"right/Etc/GMT-14" " " \ +"right/Etc/GMT-2" " " \ +"right/Etc/GMT-3" " " \ +"right/Etc/GMT-4" " " \ +"right/Etc/GMT-5" " " \ +"right/Etc/GMT-6" " " \ +"right/Etc/GMT-7" " " \ +"right/Etc/GMT-8" " " \ +"right/Etc/GMT-9" " " \ +"right/Etc/GMT0" " " \ +"right/Etc/Greenwich" " " \ +"right/Etc/UCT" " " \ +"right/Etc/UTC" " " \ +"right/Etc/Universal" " " \ +"right/Etc/Zulu" " " \ +"right/Europe/Amsterdam" " " \ +"right/Europe/Andorra" " " \ +"right/Europe/Athens" " " \ +"right/Europe/Belfast" " " \ +"right/Europe/Belgrade" " " \ +"right/Europe/Berlin" " " \ +"right/Europe/Bratislava" " " \ +"right/Europe/Brussels" " " \ +"right/Europe/Bucharest" " " \ +"right/Europe/Budapest" " " \ +"right/Europe/Chisinau" " " \ +"right/Europe/Copenhagen" " " \ +"right/Europe/Dublin" " " \ +"right/Europe/Gibraltar" " " \ +"right/Europe/Guernsey" " " \ +"right/Europe/Helsinki" " " \ +"right/Europe/Isle_of_Man" " " \ +"right/Europe/Istanbul" " " \ +"right/Europe/Jersey" " " \ +"right/Europe/Kaliningrad" " " \ +"right/Europe/Kiev" " " \ +"right/Europe/Lisbon" " " \ +"right/Europe/Ljubljana" " " \ +"right/Europe/London" " " \ +"right/Europe/Luxembourg" " " \ +"right/Europe/Madrid" " " \ +"right/Europe/Malta" " " \ +"right/Europe/Mariehamn" " " \ +"right/Europe/Minsk" " " \ +"right/Europe/Monaco" " " \ +"right/Europe/Moscow" " " \ +"right/Europe/Nicosia" " " \ +"right/Europe/Oslo" " " \ +"right/Europe/Paris" " " \ +"right/Europe/Podgorica" " " \ +"right/Europe/Prague" " " \ +"right/Europe/Riga" " " \ +"right/Europe/Rome" " " \ +"right/Europe/Samara" " " \ +"right/Europe/San_Marino" " " \ +"right/Europe/Sarajevo" " " \ +"right/Europe/Simferopol" " " \ +"right/Europe/Skopje" " " \ +"right/Europe/Sofia" " " \ +"right/Europe/Stockholm" " " \ +"right/Europe/Tallinn" " " \ +"right/Europe/Tirane" " " \ +"right/Europe/Tiraspol" " " \ +"right/Europe/Uzhgorod" " " \ +"right/Europe/Vaduz" " " \ +"right/Europe/Vatican" " " \ +"right/Europe/Vienna" " " \ +"right/Europe/Vilnius" " " \ +"right/Europe/Volgograd" " " \ +"right/Europe/Warsaw" " " \ +"right/Europe/Zagreb" " " \ +"right/Europe/Zaporozhye" " " \ +"right/Europe/Zurich" " " \ +"right/Factory" " " \ +"right/GB" " " \ +"right/GB-Eire" " " \ +"right/GMT" " " \ +"right/GMT+0" " " \ +"right/GMT-0" " " \ +"right/GMT0" " " \ +"right/Greenwich" " " \ +"right/HST" " " \ +"right/Hongkong" " " \ +"right/Iceland" " " \ +"right/Indian/Antananarivo" " " \ +"right/Indian/Chagos" " " \ +"right/Indian/Christmas" " " \ +"right/Indian/Cocos" " " \ +"right/Indian/Comoro" " " \ +"right/Indian/Kerguelen" " " \ +"right/Indian/Mahe" " " \ +"right/Indian/Maldives" " " \ +"right/Indian/Mauritius" " " \ +"right/Indian/Mayotte" " " \ +"right/Indian/Reunion" " " \ +"right/Iran" " " \ +"right/Israel" " " \ +"right/Jamaica" " " \ +"right/Japan" " " \ +"right/Kwajalein" " " \ +"right/Libya" " " \ +"right/MET" " " \ +"right/MST" " " \ +"right/MST7MDT" " " \ +"right/Mexico/BajaNorte" " " \ +"right/Mexico/BajaSur" " " \ +"right/Mexico/General" " " \ +"right/Mideast/Riyadh87" " " \ +"right/Mideast/Riyadh88" " " \ +"right/Mideast/Riyadh89" " " \ +"right/NZ" " " \ +"right/NZ-CHAT" " " \ +"right/Navajo" " " \ +"right/PRC" " " \ +"right/PST8PDT" " " \ +"right/Pacific/Apia" " " \ +"right/Pacific/Auckland" " " \ +"right/Pacific/Chatham" " " \ +"right/Pacific/Easter" " " \ +"right/Pacific/Efate" " " \ +"right/Pacific/Enderbury" " " \ +"right/Pacific/Fakaofo" " " \ +"right/Pacific/Fiji" " " \ +"right/Pacific/Funafuti" " " \ +"right/Pacific/Galapagos" " " \ +"right/Pacific/Gambier" " " \ +"right/Pacific/Guadalcanal" " " \ +"right/Pacific/Guam" " " \ +"right/Pacific/Honolulu" " " \ +"right/Pacific/Johnston" " " \ +"right/Pacific/Kiritimati" " " \ +"right/Pacific/Kosrae" " " \ +"right/Pacific/Kwajalein" " " \ +"right/Pacific/Majuro" " " \ +"right/Pacific/Marquesas" " " \ +"right/Pacific/Midway" " " \ +"right/Pacific/Nauru" " " \ +"right/Pacific/Niue" " " \ +"right/Pacific/Norfolk" " " \ +"right/Pacific/Noumea" " " \ +"right/Pacific/Pago_Pago" " " \ +"right/Pacific/Palau" " " \ +"right/Pacific/Pitcairn" " " \ +"right/Pacific/Ponape" " " \ +"right/Pacific/Port_Moresby" " " \ +"right/Pacific/Rarotonga" " " \ +"right/Pacific/Saipan" " " \ +"right/Pacific/Samoa" " " \ +"right/Pacific/Tahiti" " " \ +"right/Pacific/Tarawa" " " \ +"right/Pacific/Tongatapu" " " \ +"right/Pacific/Truk" " " \ +"right/Pacific/Wake" " " \ +"right/Pacific/Wallis" " " \ +"right/Pacific/Yap" " " \ +"right/Poland" " " \ +"right/Portugal" " " \ +"right/ROC" " " \ +"right/ROK" " " \ +"right/Singapore" " " \ +"right/Turkey" " " \ +"right/UCT" " " \ +"right/US/Alaska" " " \ +"right/US/Aleutian" " " \ +"right/US/Arizona" " " \ +"right/US/Central" " " \ +"right/US/East-Indiana" " " \ +"right/US/Eastern" " " \ +"right/US/Hawaii" " " \ +"right/US/Indiana-Starke" " " \ +"right/US/Michigan" " " \ +"right/US/Mountain" " " \ +"right/US/Pacific" " " \ +"right/US/Samoa" " " \ +"right/UTC" " " \ +"right/Universal" " " \ +"right/W-SU" " " \ +"right/WET" " " \ +"right/Zulu" " " \ diff --git a/source/l/glibc/timezone-scripts/parts/02 b/source/l/glibc/timezone-scripts/parts/02 new file mode 100644 index 000000000..bd5a50bb0 --- /dev/null +++ b/source/l/glibc/timezone-scripts/parts/02 @@ -0,0 +1,28 @@ + 2> $TMP/tz + + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/tz + exit + fi + + TIMEZONE="`cat $TMP/tz`" + rm -f $TMP/tz + + setzone $TIMEZONE + exit +else + ### + ### use text prompts + ### + while [ 0 ]; do + echo -n "Would you like to configure your timezone ([y]es, [n]o)? " + read TIMECONF; + echo + + if [ "$TIMECONF" = "n" ]; then + break + fi + + cat << EOF +Select one of these timezones: + diff --git a/source/l/glibc/timezone-scripts/parts/03 b/source/l/glibc/timezone-scripts/parts/03 new file mode 100644 index 000000000..9993c3487 --- /dev/null +++ b/source/l/glibc/timezone-scripts/parts/03 @@ -0,0 +1,1657 @@ +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/East-Indiana +US/Eastern +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Samoa +Africa/Abidjan +Africa/Accra +Africa/Addis_Ababa +Africa/Algiers +Africa/Asmera +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Bissau +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/El_Aaiun +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Johannesburg +Africa/Kampala +Africa/Khartoum +Africa/Kigali +Africa/Kinshasa +Africa/Lagos +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maputo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +Africa/Sao_Tome +Africa/Timbuktu +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Anguilla +America/Antigua +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/ComodRivadavia +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/San_Juan +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Aruba +America/Asuncion +America/Atikokan +America/Atka +America/Bahia +America/Barbados +America/Belem +America/Belize +America/Blanc-Sablon +America/Boa_Vista +America/Bogota +America/Boise +America/Buenos_Aires +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Catamarca +America/Cayenne +America/Cayman +America/Chicago +America/Chihuahua +America/Coral_Harbour +America/Cordoba +America/Costa_Rica +America/Cuiaba +America/Curacao +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Dominica +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Ensenada +America/Fort_Wayne +America/Fortaleza +America/Glace_Bay +America/Godthab +America/Goose_Bay +America/Grand_Turk +America/Grenada +America/Guadeloupe +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indianapolis +America/Inuvik +America/Iqaluit +America/Jamaica +America/Jujuy +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/Knox_IN +America/La_Paz +America/Lima +America/Los_Angeles +America/Louisville +America/Maceio +America/Managua +America/Manaus +America/Martinique +America/Mazatlan +America/Mendoza +America/Menominee +America/Merida +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/Montreal +America/Montserrat +America/Nassau +America/New_York +America/Nipigon +America/Nome +America/Noronha +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Panama +America/Pangnirtung +America/Paramaribo +America/Phoenix +America/Port-au-Prince +America/Port_of_Spain +America/Porto_Acre +America/Porto_Velho +America/Puerto_Rico +America/Rainy_River +America/Rankin_Inlet +America/Recife +America/Regina +America/Rio_Branco +America/Rosario +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Shiprock +America/St_Johns +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Thunder_Bay +America/Tijuana +America/Toronto +America/Tortola +America/Vancouver +America/Virgin +America/Whitehorse +America/Winnipeg +America/Yakutat +America/Yellowknife +Antarctica/Casey +Antarctica/Davis +Antarctica/DumontDUrville +Antarctica/Mawson +Antarctica/McMurdo +Antarctica/Palmer +Antarctica/Rothera +Antarctica/South_Pole +Antarctica/Syowa +Antarctica/Vostok +Arctic/Longyearbyen +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Ashkhabad +Asia/Baghdad +Asia/Bahrain +Asia/Baku +Asia/Bangkok +Asia/Beirut +Asia/Bishkek +Asia/Brunei +Asia/Calcutta +Asia/Choibalsan +Asia/Chongqing +Asia/Chungking +Asia/Colombo +Asia/Dacca +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Gaza +Asia/Harbin +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Istanbul +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kashgar +Asia/Katmandu +Asia/Krasnoyarsk +Asia/Kuala_Lumpur +Asia/Kuching +Asia/Kuwait +Asia/Macao +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Muscat +Asia/Nicosia +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Phnom_Penh +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qyzylorda +Asia/Rangoon +Asia/Riyadh +Asia/Riyadh87 +Asia/Riyadh88 +Asia/Riyadh89 +Asia/Saigon +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Tel_Aviv +Asia/Thimbu +Asia/Thimphu +Asia/Tokyo +Asia/Ujung_Pandang +Asia/Ulaanbaatar +Asia/Ulan_Bator +Asia/Urumqi +Asia/Vientiane +Asia/Vladivostok +Asia/Yakutsk +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faeroe +Atlantic/Jan_Mayen +Atlantic/Madeira +Atlantic/Reykjavik +Atlantic/South_Georgia +Atlantic/St_Helena +Atlantic/Stanley +Australia/ACT +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Canberra +Australia/Currie +Australia/Darwin +Australia/Hobart +Australia/LHI +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/NSW +Australia/North +Australia/Perth +Australia/Queensland +Australia/South +Australia/Sydney +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +CET +CST6CDT +Canada/Atlantic +Canada/Central +Canada/East-Saskatchewan +Canada/Eastern +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +Chile/Continental +Chile/EasterIsland +Cuba +EET +EST +EST5EDT +Egypt +Eire +Etc/GMT +Etc/GMT+0 +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT-0 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/GMT0 +Etc/Greenwich +Etc/UCT +Etc/UTC +Etc/Universal +Etc/Zulu +Europe/Amsterdam +Europe/Andorra +Europe/Athens +Europe/Belfast +Europe/Belgrade +Europe/Berlin +Europe/Bratislava +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Chisinau +Europe/Copenhagen +Europe/Dublin +Europe/Gibraltar +Europe/Guernsey +Europe/Helsinki +Europe/Isle_of_Man +Europe/Istanbul +Europe/Jersey +Europe/Kaliningrad +Europe/Kiev +Europe/Lisbon +Europe/Ljubljana +Europe/London +Europe/Luxembourg +Europe/Madrid +Europe/Malta +Europe/Mariehamn +Europe/Minsk +Europe/Monaco +Europe/Moscow +Europe/Nicosia +Europe/Oslo +Europe/Paris +Europe/Podgorica +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/San_Marino +Europe/Sarajevo +Europe/Simferopol +Europe/Skopje +Europe/Sofia +Europe/Stockholm +Europe/Tallinn +Europe/Tirane +Europe/Tiraspol +Europe/Uzhgorod +Europe/Vaduz +Europe/Vatican +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zagreb +Europe/Zaporozhye +Europe/Zurich +Factory +GB +GB-Eire +GMT +GMT+0 +GMT-0 +GMT0 +Greenwich +HST +Hongkong +Iceland +Indian/Antananarivo +Indian/Chagos +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Maldives +Indian/Mauritius +Indian/Mayotte +Indian/Reunion +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +MST +MST7MDT +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +Mideast/Riyadh87 +Mideast/Riyadh88 +Mideast/Riyadh89 +NZ +NZ-CHAT +Navajo +PRC +PST8PDT +Pacific/Apia +Pacific/Auckland +Pacific/Chatham +Pacific/Easter +Pacific/Efate +Pacific/Enderbury +Pacific/Fakaofo +Pacific/Fiji +Pacific/Funafuti +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Johnston +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Majuro +Pacific/Marquesas +Pacific/Midway +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Ponape +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Saipan +Pacific/Samoa +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +Pacific/Truk +Pacific/Wake +Pacific/Wallis +Pacific/Yap +Poland +Portugal +ROC +ROK +Singapore +Turkey +UCT +UTC +Universal +W-SU +WET +Zulu +posix/Africa/Abidjan +posix/Africa/Accra +posix/Africa/Addis_Ababa +posix/Africa/Algiers +posix/Africa/Asmera +posix/Africa/Bamako +posix/Africa/Bangui +posix/Africa/Banjul +posix/Africa/Bissau +posix/Africa/Blantyre +posix/Africa/Brazzaville +posix/Africa/Bujumbura +posix/Africa/Cairo +posix/Africa/Casablanca +posix/Africa/Ceuta +posix/Africa/Conakry +posix/Africa/Dakar +posix/Africa/Dar_es_Salaam +posix/Africa/Djibouti +posix/Africa/Douala +posix/Africa/El_Aaiun +posix/Africa/Freetown +posix/Africa/Gaborone +posix/Africa/Harare +posix/Africa/Johannesburg +posix/Africa/Kampala +posix/Africa/Khartoum +posix/Africa/Kigali +posix/Africa/Kinshasa +posix/Africa/Lagos +posix/Africa/Libreville +posix/Africa/Lome +posix/Africa/Luanda +posix/Africa/Lubumbashi +posix/Africa/Lusaka +posix/Africa/Malabo +posix/Africa/Maputo +posix/Africa/Maseru +posix/Africa/Mbabane +posix/Africa/Mogadishu +posix/Africa/Monrovia +posix/Africa/Nairobi +posix/Africa/Ndjamena +posix/Africa/Niamey +posix/Africa/Nouakchott +posix/Africa/Ouagadougou +posix/Africa/Porto-Novo +posix/Africa/Sao_Tome +posix/Africa/Timbuktu +posix/Africa/Tripoli +posix/Africa/Tunis +posix/Africa/Windhoek +posix/America/Adak +posix/America/Anchorage +posix/America/Anguilla +posix/America/Antigua +posix/America/Araguaina +posix/America/Argentina/Buenos_Aires +posix/America/Argentina/Catamarca +posix/America/Argentina/ComodRivadavia +posix/America/Argentina/Cordoba +posix/America/Argentina/Jujuy +posix/America/Argentina/La_Rioja +posix/America/Argentina/Mendoza +posix/America/Argentina/Rio_Gallegos +posix/America/Argentina/San_Juan +posix/America/Argentina/Tucuman +posix/America/Argentina/Ushuaia +posix/America/Aruba +posix/America/Asuncion +posix/America/Atikokan +posix/America/Atka +posix/America/Bahia +posix/America/Barbados +posix/America/Belem +posix/America/Belize +posix/America/Blanc-Sablon +posix/America/Boa_Vista +posix/America/Bogota +posix/America/Boise +posix/America/Buenos_Aires +posix/America/Cambridge_Bay +posix/America/Campo_Grande +posix/America/Cancun +posix/America/Caracas +posix/America/Catamarca +posix/America/Cayenne +posix/America/Cayman +posix/America/Chicago +posix/America/Chihuahua +posix/America/Coral_Harbour +posix/America/Cordoba +posix/America/Costa_Rica +posix/America/Cuiaba +posix/America/Curacao +posix/America/Danmarkshavn +posix/America/Dawson +posix/America/Dawson_Creek +posix/America/Denver +posix/America/Detroit +posix/America/Dominica +posix/America/Edmonton +posix/America/Eirunepe +posix/America/El_Salvador +posix/America/Ensenada +posix/America/Fort_Wayne +posix/America/Fortaleza +posix/America/Glace_Bay +posix/America/Godthab +posix/America/Goose_Bay +posix/America/Grand_Turk +posix/America/Grenada +posix/America/Guadeloupe +posix/America/Guatemala +posix/America/Guayaquil +posix/America/Guyana +posix/America/Halifax +posix/America/Havana +posix/America/Hermosillo +posix/America/Indiana/Indianapolis +posix/America/Indiana/Knox +posix/America/Indiana/Marengo +posix/America/Indiana/Petersburg +posix/America/Indiana/Tell_City +posix/America/Indiana/Vevay +posix/America/Indiana/Vincennes +posix/America/Indianapolis +posix/America/Inuvik +posix/America/Iqaluit +posix/America/Jamaica +posix/America/Jujuy +posix/America/Juneau +posix/America/Kentucky/Louisville +posix/America/Kentucky/Monticello +posix/America/Knox_IN +posix/America/La_Paz +posix/America/Lima +posix/America/Los_Angeles +posix/America/Louisville +posix/America/Maceio +posix/America/Managua +posix/America/Manaus +posix/America/Martinique +posix/America/Mazatlan +posix/America/Mendoza +posix/America/Menominee +posix/America/Merida +posix/America/Mexico_City +posix/America/Miquelon +posix/America/Moncton +posix/America/Monterrey +posix/America/Montevideo +posix/America/Montreal +posix/America/Montserrat +posix/America/Nassau +posix/America/New_York +posix/America/Nipigon +posix/America/Nome +posix/America/Noronha +posix/America/North_Dakota/Center +posix/America/North_Dakota/New_Salem +posix/America/Panama +posix/America/Pangnirtung +posix/America/Paramaribo +posix/America/Phoenix +posix/America/Port-au-Prince +posix/America/Port_of_Spain +posix/America/Porto_Acre +posix/America/Porto_Velho +posix/America/Puerto_Rico +posix/America/Rainy_River +posix/America/Rankin_Inlet +posix/America/Recife +posix/America/Regina +posix/America/Rio_Branco +posix/America/Rosario +posix/America/Santiago +posix/America/Santo_Domingo +posix/America/Sao_Paulo +posix/America/Scoresbysund +posix/America/Shiprock +posix/America/St_Johns +posix/America/St_Kitts +posix/America/St_Lucia +posix/America/St_Thomas +posix/America/St_Vincent +posix/America/Swift_Current +posix/America/Tegucigalpa +posix/America/Thule +posix/America/Thunder_Bay +posix/America/Tijuana +posix/America/Toronto +posix/America/Tortola +posix/America/Vancouver +posix/America/Virgin +posix/America/Whitehorse +posix/America/Winnipeg +posix/America/Yakutat +posix/America/Yellowknife +posix/Antarctica/Casey +posix/Antarctica/Davis +posix/Antarctica/DumontDUrville +posix/Antarctica/Mawson +posix/Antarctica/McMurdo +posix/Antarctica/Palmer +posix/Antarctica/Rothera +posix/Antarctica/South_Pole +posix/Antarctica/Syowa +posix/Antarctica/Vostok +posix/Arctic/Longyearbyen +posix/Asia/Aden +posix/Asia/Almaty +posix/Asia/Amman +posix/Asia/Anadyr +posix/Asia/Aqtau +posix/Asia/Aqtobe +posix/Asia/Ashgabat +posix/Asia/Ashkhabad +posix/Asia/Baghdad +posix/Asia/Bahrain +posix/Asia/Baku +posix/Asia/Bangkok +posix/Asia/Beirut +posix/Asia/Bishkek +posix/Asia/Brunei +posix/Asia/Calcutta +posix/Asia/Choibalsan +posix/Asia/Chongqing +posix/Asia/Chungking +posix/Asia/Colombo +posix/Asia/Dacca +posix/Asia/Damascus +posix/Asia/Dhaka +posix/Asia/Dili +posix/Asia/Dubai +posix/Asia/Dushanbe +posix/Asia/Gaza +posix/Asia/Harbin +posix/Asia/Hong_Kong +posix/Asia/Hovd +posix/Asia/Irkutsk +posix/Asia/Istanbul +posix/Asia/Jakarta +posix/Asia/Jayapura +posix/Asia/Jerusalem +posix/Asia/Kabul +posix/Asia/Kamchatka +posix/Asia/Karachi +posix/Asia/Kashgar +posix/Asia/Katmandu +posix/Asia/Krasnoyarsk +posix/Asia/Kuala_Lumpur +posix/Asia/Kuching +posix/Asia/Kuwait +posix/Asia/Macao +posix/Asia/Macau +posix/Asia/Magadan +posix/Asia/Makassar +posix/Asia/Manila +posix/Asia/Muscat +posix/Asia/Nicosia +posix/Asia/Novosibirsk +posix/Asia/Omsk +posix/Asia/Oral +posix/Asia/Phnom_Penh +posix/Asia/Pontianak +posix/Asia/Pyongyang +posix/Asia/Qatar +posix/Asia/Qyzylorda +posix/Asia/Rangoon +posix/Asia/Riyadh +posix/Asia/Riyadh87 +posix/Asia/Riyadh88 +posix/Asia/Riyadh89 +posix/Asia/Saigon +posix/Asia/Sakhalin +posix/Asia/Samarkand +posix/Asia/Seoul +posix/Asia/Shanghai +posix/Asia/Singapore +posix/Asia/Taipei +posix/Asia/Tashkent +posix/Asia/Tbilisi +posix/Asia/Tehran +posix/Asia/Tel_Aviv +posix/Asia/Thimbu +posix/Asia/Thimphu +posix/Asia/Tokyo +posix/Asia/Ujung_Pandang +posix/Asia/Ulaanbaatar +posix/Asia/Ulan_Bator +posix/Asia/Urumqi +posix/Asia/Vientiane +posix/Asia/Vladivostok +posix/Asia/Yakutsk +posix/Asia/Yekaterinburg +posix/Asia/Yerevan +posix/Atlantic/Azores +posix/Atlantic/Bermuda +posix/Atlantic/Canary +posix/Atlantic/Cape_Verde +posix/Atlantic/Faeroe +posix/Atlantic/Jan_Mayen +posix/Atlantic/Madeira +posix/Atlantic/Reykjavik +posix/Atlantic/South_Georgia +posix/Atlantic/St_Helena +posix/Atlantic/Stanley +posix/Australia/ACT +posix/Australia/Adelaide +posix/Australia/Brisbane +posix/Australia/Broken_Hill +posix/Australia/Canberra +posix/Australia/Currie +posix/Australia/Darwin +posix/Australia/Hobart +posix/Australia/LHI +posix/Australia/Lindeman +posix/Australia/Lord_Howe +posix/Australia/Melbourne +posix/Australia/NSW +posix/Australia/North +posix/Australia/Perth +posix/Australia/Queensland +posix/Australia/South +posix/Australia/Sydney +posix/Australia/Tasmania +posix/Australia/Victoria +posix/Australia/West +posix/Australia/Yancowinna +posix/Brazil/Acre +posix/Brazil/DeNoronha +posix/Brazil/East +posix/Brazil/West +posix/CET +posix/CST6CDT +posix/Canada/Atlantic +posix/Canada/Central +posix/Canada/East-Saskatchewan +posix/Canada/Eastern +posix/Canada/Mountain +posix/Canada/Newfoundland +posix/Canada/Pacific +posix/Canada/Saskatchewan +posix/Canada/Yukon +posix/Chile/Continental +posix/Chile/EasterIsland +posix/Cuba +posix/EET +posix/EST +posix/EST5EDT +posix/Egypt +posix/Eire +posix/Etc/GMT +posix/Etc/GMT+0 +posix/Etc/GMT+1 +posix/Etc/GMT+10 +posix/Etc/GMT+11 +posix/Etc/GMT+12 +posix/Etc/GMT+2 +posix/Etc/GMT+3 +posix/Etc/GMT+4 +posix/Etc/GMT+5 +posix/Etc/GMT+6 +posix/Etc/GMT+7 +posix/Etc/GMT+8 +posix/Etc/GMT+9 +posix/Etc/GMT-0 +posix/Etc/GMT-1 +posix/Etc/GMT-10 +posix/Etc/GMT-11 +posix/Etc/GMT-12 +posix/Etc/GMT-13 +posix/Etc/GMT-14 +posix/Etc/GMT-2 +posix/Etc/GMT-3 +posix/Etc/GMT-4 +posix/Etc/GMT-5 +posix/Etc/GMT-6 +posix/Etc/GMT-7 +posix/Etc/GMT-8 +posix/Etc/GMT-9 +posix/Etc/GMT0 +posix/Etc/Greenwich +posix/Etc/UCT +posix/Etc/UTC +posix/Etc/Universal +posix/Etc/Zulu +posix/Europe/Amsterdam +posix/Europe/Andorra +posix/Europe/Athens +posix/Europe/Belfast +posix/Europe/Belgrade +posix/Europe/Berlin +posix/Europe/Bratislava +posix/Europe/Brussels +posix/Europe/Bucharest +posix/Europe/Budapest +posix/Europe/Chisinau +posix/Europe/Copenhagen +posix/Europe/Dublin +posix/Europe/Gibraltar +posix/Europe/Guernsey +posix/Europe/Helsinki +posix/Europe/Isle_of_Man +posix/Europe/Istanbul +posix/Europe/Jersey +posix/Europe/Kaliningrad +posix/Europe/Kiev +posix/Europe/Lisbon +posix/Europe/Ljubljana +posix/Europe/London +posix/Europe/Luxembourg +posix/Europe/Madrid +posix/Europe/Malta +posix/Europe/Mariehamn +posix/Europe/Minsk +posix/Europe/Monaco +posix/Europe/Moscow +posix/Europe/Nicosia +posix/Europe/Oslo +posix/Europe/Paris +posix/Europe/Podgorica +posix/Europe/Prague +posix/Europe/Riga +posix/Europe/Rome +posix/Europe/Samara +posix/Europe/San_Marino +posix/Europe/Sarajevo +posix/Europe/Simferopol +posix/Europe/Skopje +posix/Europe/Sofia +posix/Europe/Stockholm +posix/Europe/Tallinn +posix/Europe/Tirane +posix/Europe/Tiraspol +posix/Europe/Uzhgorod +posix/Europe/Vaduz +posix/Europe/Vatican +posix/Europe/Vienna +posix/Europe/Vilnius +posix/Europe/Volgograd +posix/Europe/Warsaw +posix/Europe/Zagreb +posix/Europe/Zaporozhye +posix/Europe/Zurich +posix/Factory +posix/GB +posix/GB-Eire +posix/GMT +posix/GMT+0 +posix/GMT-0 +posix/GMT0 +posix/Greenwich +posix/HST +posix/Hongkong +posix/Iceland +posix/Indian/Antananarivo +posix/Indian/Chagos +posix/Indian/Christmas +posix/Indian/Cocos +posix/Indian/Comoro +posix/Indian/Kerguelen +posix/Indian/Mahe +posix/Indian/Maldives +posix/Indian/Mauritius +posix/Indian/Mayotte +posix/Indian/Reunion +posix/Iran +posix/Israel +posix/Jamaica +posix/Japan +posix/Kwajalein +posix/Libya +posix/MET +posix/MST +posix/MST7MDT +posix/Mexico/BajaNorte +posix/Mexico/BajaSur +posix/Mexico/General +posix/Mideast/Riyadh87 +posix/Mideast/Riyadh88 +posix/Mideast/Riyadh89 +posix/NZ +posix/NZ-CHAT +posix/Navajo +posix/PRC +posix/PST8PDT +posix/Pacific/Apia +posix/Pacific/Auckland +posix/Pacific/Chatham +posix/Pacific/Easter +posix/Pacific/Efate +posix/Pacific/Enderbury +posix/Pacific/Fakaofo +posix/Pacific/Fiji +posix/Pacific/Funafuti +posix/Pacific/Galapagos +posix/Pacific/Gambier +posix/Pacific/Guadalcanal +posix/Pacific/Guam +posix/Pacific/Honolulu +posix/Pacific/Johnston +posix/Pacific/Kiritimati +posix/Pacific/Kosrae +posix/Pacific/Kwajalein +posix/Pacific/Majuro +posix/Pacific/Marquesas +posix/Pacific/Midway +posix/Pacific/Nauru +posix/Pacific/Niue +posix/Pacific/Norfolk +posix/Pacific/Noumea +posix/Pacific/Pago_Pago +posix/Pacific/Palau +posix/Pacific/Pitcairn +posix/Pacific/Ponape +posix/Pacific/Port_Moresby +posix/Pacific/Rarotonga +posix/Pacific/Saipan +posix/Pacific/Samoa +posix/Pacific/Tahiti +posix/Pacific/Tarawa +posix/Pacific/Tongatapu +posix/Pacific/Truk +posix/Pacific/Wake +posix/Pacific/Wallis +posix/Pacific/Yap +posix/Poland +posix/Portugal +posix/ROC +posix/ROK +posix/Singapore +posix/Turkey +posix/UCT +posix/US/Alaska +posix/US/Aleutian +posix/US/Arizona +posix/US/Central +posix/US/East-Indiana +posix/US/Eastern +posix/US/Hawaii +posix/US/Indiana-Starke +posix/US/Michigan +posix/US/Mountain +posix/US/Pacific +posix/US/Samoa +posix/UTC +posix/Universal +posix/W-SU +posix/WET +posix/Zulu +posixrules +right/Africa/Abidjan +right/Africa/Accra +right/Africa/Addis_Ababa +right/Africa/Algiers +right/Africa/Asmera +right/Africa/Bamako +right/Africa/Bangui +right/Africa/Banjul +right/Africa/Bissau +right/Africa/Blantyre +right/Africa/Brazzaville +right/Africa/Bujumbura +right/Africa/Cairo +right/Africa/Casablanca +right/Africa/Ceuta +right/Africa/Conakry +right/Africa/Dakar +right/Africa/Dar_es_Salaam +right/Africa/Djibouti +right/Africa/Douala +right/Africa/El_Aaiun +right/Africa/Freetown +right/Africa/Gaborone +right/Africa/Harare +right/Africa/Johannesburg +right/Africa/Kampala +right/Africa/Khartoum +right/Africa/Kigali +right/Africa/Kinshasa +right/Africa/Lagos +right/Africa/Libreville +right/Africa/Lome +right/Africa/Luanda +right/Africa/Lubumbashi +right/Africa/Lusaka +right/Africa/Malabo +right/Africa/Maputo +right/Africa/Maseru +right/Africa/Mbabane +right/Africa/Mogadishu +right/Africa/Monrovia +right/Africa/Nairobi +right/Africa/Ndjamena +right/Africa/Niamey +right/Africa/Nouakchott +right/Africa/Ouagadougou +right/Africa/Porto-Novo +right/Africa/Sao_Tome +right/Africa/Timbuktu +right/Africa/Tripoli +right/Africa/Tunis +right/Africa/Windhoek +right/America/Adak +right/America/Anchorage +right/America/Anguilla +right/America/Antigua +right/America/Araguaina +right/America/Argentina/Buenos_Aires +right/America/Argentina/Catamarca +right/America/Argentina/ComodRivadavia +right/America/Argentina/Cordoba +right/America/Argentina/Jujuy +right/America/Argentina/La_Rioja +right/America/Argentina/Mendoza +right/America/Argentina/Rio_Gallegos +right/America/Argentina/San_Juan +right/America/Argentina/Tucuman +right/America/Argentina/Ushuaia +right/America/Aruba +right/America/Asuncion +right/America/Atikokan +right/America/Atka +right/America/Bahia +right/America/Barbados +right/America/Belem +right/America/Belize +right/America/Blanc-Sablon +right/America/Boa_Vista +right/America/Bogota +right/America/Boise +right/America/Buenos_Aires +right/America/Cambridge_Bay +right/America/Campo_Grande +right/America/Cancun +right/America/Caracas +right/America/Catamarca +right/America/Cayenne +right/America/Cayman +right/America/Chicago +right/America/Chihuahua +right/America/Coral_Harbour +right/America/Cordoba +right/America/Costa_Rica +right/America/Cuiaba +right/America/Curacao +right/America/Danmarkshavn +right/America/Dawson +right/America/Dawson_Creek +right/America/Denver +right/America/Detroit +right/America/Dominica +right/America/Edmonton +right/America/Eirunepe +right/America/El_Salvador +right/America/Ensenada +right/America/Fort_Wayne +right/America/Fortaleza +right/America/Glace_Bay +right/America/Godthab +right/America/Goose_Bay +right/America/Grand_Turk +right/America/Grenada +right/America/Guadeloupe +right/America/Guatemala +right/America/Guayaquil +right/America/Guyana +right/America/Halifax +right/America/Havana +right/America/Hermosillo +right/America/Indiana/Indianapolis +right/America/Indiana/Knox +right/America/Indiana/Marengo +right/America/Indiana/Petersburg +right/America/Indiana/Tell_City +right/America/Indiana/Vevay +right/America/Indiana/Vincennes +right/America/Indianapolis +right/America/Inuvik +right/America/Iqaluit +right/America/Jamaica +right/America/Jujuy +right/America/Juneau +right/America/Kentucky/Louisville +right/America/Kentucky/Monticello +right/America/Knox_IN +right/America/La_Paz +right/America/Lima +right/America/Los_Angeles +right/America/Louisville +right/America/Maceio +right/America/Managua +right/America/Manaus +right/America/Martinique +right/America/Mazatlan +right/America/Mendoza +right/America/Menominee +right/America/Merida +right/America/Mexico_City +right/America/Miquelon +right/America/Moncton +right/America/Monterrey +right/America/Montevideo +right/America/Montreal +right/America/Montserrat +right/America/Nassau +right/America/New_York +right/America/Nipigon +right/America/Nome +right/America/Noronha +right/America/North_Dakota/Center +right/America/North_Dakota/New_Salem +right/America/Panama +right/America/Pangnirtung +right/America/Paramaribo +right/America/Phoenix +right/America/Port-au-Prince +right/America/Port_of_Spain +right/America/Porto_Acre +right/America/Porto_Velho +right/America/Puerto_Rico +right/America/Rainy_River +right/America/Rankin_Inlet +right/America/Recife +right/America/Regina +right/America/Rio_Branco +right/America/Rosario +right/America/Santiago +right/America/Santo_Domingo +right/America/Sao_Paulo +right/America/Scoresbysund +right/America/Shiprock +right/America/St_Johns +right/America/St_Kitts +right/America/St_Lucia +right/America/St_Thomas +right/America/St_Vincent +right/America/Swift_Current +right/America/Tegucigalpa +right/America/Thule +right/America/Thunder_Bay +right/America/Tijuana +right/America/Toronto +right/America/Tortola +right/America/Vancouver +right/America/Virgin +right/America/Whitehorse +right/America/Winnipeg +right/America/Yakutat +right/America/Yellowknife +right/Antarctica/Casey +right/Antarctica/Davis +right/Antarctica/DumontDUrville +right/Antarctica/Mawson +right/Antarctica/McMurdo +right/Antarctica/Palmer +right/Antarctica/Rothera +right/Antarctica/South_Pole +right/Antarctica/Syowa +right/Antarctica/Vostok +right/Arctic/Longyearbyen +right/Asia/Aden +right/Asia/Almaty +right/Asia/Amman +right/Asia/Anadyr +right/Asia/Aqtau +right/Asia/Aqtobe +right/Asia/Ashgabat +right/Asia/Ashkhabad +right/Asia/Baghdad +right/Asia/Bahrain +right/Asia/Baku +right/Asia/Bangkok +right/Asia/Beirut +right/Asia/Bishkek +right/Asia/Brunei +right/Asia/Calcutta +right/Asia/Choibalsan +right/Asia/Chongqing +right/Asia/Chungking +right/Asia/Colombo +right/Asia/Dacca +right/Asia/Damascus +right/Asia/Dhaka +right/Asia/Dili +right/Asia/Dubai +right/Asia/Dushanbe +right/Asia/Gaza +right/Asia/Harbin +right/Asia/Hong_Kong +right/Asia/Hovd +right/Asia/Irkutsk +right/Asia/Istanbul +right/Asia/Jakarta +right/Asia/Jayapura +right/Asia/Jerusalem +right/Asia/Kabul +right/Asia/Kamchatka +right/Asia/Karachi +right/Asia/Kashgar +right/Asia/Katmandu +right/Asia/Krasnoyarsk +right/Asia/Kuala_Lumpur +right/Asia/Kuching +right/Asia/Kuwait +right/Asia/Macao +right/Asia/Macau +right/Asia/Magadan +right/Asia/Makassar +right/Asia/Manila +right/Asia/Muscat +right/Asia/Nicosia +right/Asia/Novosibirsk +right/Asia/Omsk +right/Asia/Oral +right/Asia/Phnom_Penh +right/Asia/Pontianak +right/Asia/Pyongyang +right/Asia/Qatar +right/Asia/Qyzylorda +right/Asia/Rangoon +right/Asia/Riyadh +right/Asia/Riyadh87 +right/Asia/Riyadh88 +right/Asia/Riyadh89 +right/Asia/Saigon +right/Asia/Sakhalin +right/Asia/Samarkand +right/Asia/Seoul +right/Asia/Shanghai +right/Asia/Singapore +right/Asia/Taipei +right/Asia/Tashkent +right/Asia/Tbilisi +right/Asia/Tehran +right/Asia/Tel_Aviv +right/Asia/Thimbu +right/Asia/Thimphu +right/Asia/Tokyo +right/Asia/Ujung_Pandang +right/Asia/Ulaanbaatar +right/Asia/Ulan_Bator +right/Asia/Urumqi +right/Asia/Vientiane +right/Asia/Vladivostok +right/Asia/Yakutsk +right/Asia/Yekaterinburg +right/Asia/Yerevan +right/Atlantic/Azores +right/Atlantic/Bermuda +right/Atlantic/Canary +right/Atlantic/Cape_Verde +right/Atlantic/Faeroe +right/Atlantic/Jan_Mayen +right/Atlantic/Madeira +right/Atlantic/Reykjavik +right/Atlantic/South_Georgia +right/Atlantic/St_Helena +right/Atlantic/Stanley +right/Australia/ACT +right/Australia/Adelaide +right/Australia/Brisbane +right/Australia/Broken_Hill +right/Australia/Canberra +right/Australia/Currie +right/Australia/Darwin +right/Australia/Hobart +right/Australia/LHI +right/Australia/Lindeman +right/Australia/Lord_Howe +right/Australia/Melbourne +right/Australia/NSW +right/Australia/North +right/Australia/Perth +right/Australia/Queensland +right/Australia/South +right/Australia/Sydney +right/Australia/Tasmania +right/Australia/Victoria +right/Australia/West +right/Australia/Yancowinna +right/Brazil/Acre +right/Brazil/DeNoronha +right/Brazil/East +right/Brazil/West +right/CET +right/CST6CDT +right/Canada/Atlantic +right/Canada/Central +right/Canada/East-Saskatchewan +right/Canada/Eastern +right/Canada/Mountain +right/Canada/Newfoundland +right/Canada/Pacific +right/Canada/Saskatchewan +right/Canada/Yukon +right/Chile/Continental +right/Chile/EasterIsland +right/Cuba +right/EET +right/EST +right/EST5EDT +right/Egypt +right/Eire +right/Etc/GMT +right/Etc/GMT+0 +right/Etc/GMT+1 +right/Etc/GMT+10 +right/Etc/GMT+11 +right/Etc/GMT+12 +right/Etc/GMT+2 +right/Etc/GMT+3 +right/Etc/GMT+4 +right/Etc/GMT+5 +right/Etc/GMT+6 +right/Etc/GMT+7 +right/Etc/GMT+8 +right/Etc/GMT+9 +right/Etc/GMT-0 +right/Etc/GMT-1 +right/Etc/GMT-10 +right/Etc/GMT-11 +right/Etc/GMT-12 +right/Etc/GMT-13 +right/Etc/GMT-14 +right/Etc/GMT-2 +right/Etc/GMT-3 +right/Etc/GMT-4 +right/Etc/GMT-5 +right/Etc/GMT-6 +right/Etc/GMT-7 +right/Etc/GMT-8 +right/Etc/GMT-9 +right/Etc/GMT0 +right/Etc/Greenwich +right/Etc/UCT +right/Etc/UTC +right/Etc/Universal +right/Etc/Zulu +right/Europe/Amsterdam +right/Europe/Andorra +right/Europe/Athens +right/Europe/Belfast +right/Europe/Belgrade +right/Europe/Berlin +right/Europe/Bratislava +right/Europe/Brussels +right/Europe/Bucharest +right/Europe/Budapest +right/Europe/Chisinau +right/Europe/Copenhagen +right/Europe/Dublin +right/Europe/Gibraltar +right/Europe/Guernsey +right/Europe/Helsinki +right/Europe/Isle_of_Man +right/Europe/Istanbul +right/Europe/Jersey +right/Europe/Kaliningrad +right/Europe/Kiev +right/Europe/Lisbon +right/Europe/Ljubljana +right/Europe/London +right/Europe/Luxembourg +right/Europe/Madrid +right/Europe/Malta +right/Europe/Mariehamn +right/Europe/Minsk +right/Europe/Monaco +right/Europe/Moscow +right/Europe/Nicosia +right/Europe/Oslo +right/Europe/Paris +right/Europe/Podgorica +right/Europe/Prague +right/Europe/Riga +right/Europe/Rome +right/Europe/Samara +right/Europe/San_Marino +right/Europe/Sarajevo +right/Europe/Simferopol +right/Europe/Skopje +right/Europe/Sofia +right/Europe/Stockholm +right/Europe/Tallinn +right/Europe/Tirane +right/Europe/Tiraspol +right/Europe/Uzhgorod +right/Europe/Vaduz +right/Europe/Vatican +right/Europe/Vienna +right/Europe/Vilnius +right/Europe/Volgograd +right/Europe/Warsaw +right/Europe/Zagreb +right/Europe/Zaporozhye +right/Europe/Zurich +right/Factory +right/GB +right/GB-Eire +right/GMT +right/GMT+0 +right/GMT-0 +right/GMT0 +right/Greenwich +right/HST +right/Hongkong +right/Iceland +right/Indian/Antananarivo +right/Indian/Chagos +right/Indian/Christmas +right/Indian/Cocos +right/Indian/Comoro +right/Indian/Kerguelen +right/Indian/Mahe +right/Indian/Maldives +right/Indian/Mauritius +right/Indian/Mayotte +right/Indian/Reunion +right/Iran +right/Israel +right/Jamaica +right/Japan +right/Kwajalein +right/Libya +right/MET +right/MST +right/MST7MDT +right/Mexico/BajaNorte +right/Mexico/BajaSur +right/Mexico/General +right/Mideast/Riyadh87 +right/Mideast/Riyadh88 +right/Mideast/Riyadh89 +right/NZ +right/NZ-CHAT +right/Navajo +right/PRC +right/PST8PDT +right/Pacific/Apia +right/Pacific/Auckland +right/Pacific/Chatham +right/Pacific/Easter +right/Pacific/Efate +right/Pacific/Enderbury +right/Pacific/Fakaofo +right/Pacific/Fiji +right/Pacific/Funafuti +right/Pacific/Galapagos +right/Pacific/Gambier +right/Pacific/Guadalcanal +right/Pacific/Guam +right/Pacific/Honolulu +right/Pacific/Johnston +right/Pacific/Kiritimati +right/Pacific/Kosrae +right/Pacific/Kwajalein +right/Pacific/Majuro +right/Pacific/Marquesas +right/Pacific/Midway +right/Pacific/Nauru +right/Pacific/Niue +right/Pacific/Norfolk +right/Pacific/Noumea +right/Pacific/Pago_Pago +right/Pacific/Palau +right/Pacific/Pitcairn +right/Pacific/Ponape +right/Pacific/Port_Moresby +right/Pacific/Rarotonga +right/Pacific/Saipan +right/Pacific/Samoa +right/Pacific/Tahiti +right/Pacific/Tarawa +right/Pacific/Tongatapu +right/Pacific/Truk +right/Pacific/Wake +right/Pacific/Wallis +right/Pacific/Yap +right/Poland +right/Portugal +right/ROC +right/ROK +right/Singapore +right/Turkey +right/UCT +right/US/Alaska +right/US/Aleutian +right/US/Arizona +right/US/Central +right/US/East-Indiana +right/US/Eastern +right/US/Hawaii +right/US/Indiana-Starke +right/US/Michigan +right/US/Mountain +right/US/Pacific +right/US/Samoa +right/UTC +right/Universal +right/W-SU +right/WET +right/Zulu diff --git a/source/l/glibc/timezone-scripts/parts/04 b/source/l/glibc/timezone-scripts/parts/04 new file mode 100644 index 000000000..ec36338b1 --- /dev/null +++ b/source/l/glibc/timezone-scripts/parts/04 @@ -0,0 +1,32 @@ + +Type it at the prompt below exactly as it appears above. (NOTE: If you don't +see your timezone, use "timeconfig" again after booting for the verbose list) + +EOF + echo -n "Timezone? " + read TIMEZONE; + echo + + if [ -r $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -r /var/log/mount/usr/share/zoneinfo/$TIMEZONE -o \ + -L $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -L /var/log/mount/usr/share/zoneinfo/$TIMEZONE ]; then + echo "Creating link from $TIMEZONE to localtime in /etc..." + echo + setzone $TIMEZONE + exit + else + cat << EOF + +Timezone $TIMEZONE could not be found. You may try again if you wish. +Make sure you type the name exactly as it appears - this configuration script +is case sensitive. + +Press [enter] to continue. + +EOF + read JUNK; + fi + done +fi + diff --git a/source/l/glibc/timezone-scripts/parts/README b/source/l/glibc/timezone-scripts/parts/README new file mode 100644 index 000000000..80d5cf5b4 --- /dev/null +++ b/source/l/glibc/timezone-scripts/parts/README @@ -0,0 +1,2 @@ +Files 01 and 03 are samples, showing the format, and are +not necessarily up to date... diff --git a/source/l/glibc/timezone-scripts/setup.timeconfig b/source/l/glibc/timezone-scripts/setup.timeconfig new file mode 100644 index 000000000..81ff7055f --- /dev/null +++ b/source/l/glibc/timezone-scripts/setup.timeconfig @@ -0,0 +1,3 @@ +#!/bin/sh +#BLURB="Select your timezone" +sh usr/sbin/timeconfig $* diff --git a/source/l/glibc/timezone-scripts/timeconfig b/source/l/glibc/timezone-scripts/timeconfig new file mode 100644 index 000000000..33dc89d46 --- /dev/null +++ b/source/l/glibc/timezone-scripts/timeconfig @@ -0,0 +1,3581 @@ +#!/bin/sh +# +# timeconfig Slackware Linux timezone configuration utility. +# +# Author: Patrick Volkerding <volkerdi@slackware.com> +# Modified by: David Cantrell <david@slackware.com>, 06-Oct-2000 +# +# ChangeLog: +# 2008-03-10: Updated timezones from tzdata2008a. <pjv> +# 2007-12-21: Updated timezones from tzdata2007j. <pjv> +# 2006-12-03: Updated timezones from tzdata2006p. <pjv> +# 2006-09-14: Updated timezones from tzdata2006k. <pjv> +# 2006-08-22: Updated timezones from tzdata2006j. +# 2006-08-13: Updated timezones from tzdata2006g. +# 2006-03-13: Updated timezones from tzdata2006c. +# 19-Feb-2001 Add new timezones from glibc-2.2.2. +# 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing +# the hardwareclock file to the root disk and not your dest +# partition. Changed the HWCLOCK_CONF variable to be +# $T_PX/etc/hardwareclock to fix this. Thanks to David L. +# Dickman <softbear@optonline.net> for finding this and +# submitting a patch. +# +# 15-Mar-2000 Added the writeconf function to write out the +# /etc/hardwareclock file which tells what the hardware clock +# is set to (UTC or localtime). +# +# 03-Mar-2000 Reorganized script. Made one timezone set block, added +# stage that asks the user if the hardware clock is set to +# UTC. + +# setup our temp locations and variables +TMP=/var/log/setup/tmp +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$!" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi + +# the hardware clock configuration file +HWCLOCK_CONF=$T_PX/etc/hardwareclock + +# setzone( $TIMEZONE ) +# +# This function accepts a time zone as the only parameter and sets it as +# the default system time zone. +setzone() +{ + TZ=$1 + + cd $T_PX/etc + if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \ + -r /var/log/mount/usr/share/zoneinfo/$TZ -o \ + -L $T_PX/usr/share/zoneinfo/$TZ -o \ + -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then + ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from + rm -f localtime + cd .. + chroot . cp etc/localtime-copied-from etc/localtime + fi +} + +# writeconf( $CLOCK_SET_TO ) +# +# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock +# value is stored. +writeconf() +{ + echo "# /etc/hardwareclock" > $HWCLOCK_CONF + echo "#" >> $HWCLOCK_CONF + echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF + echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF + echo >> $HWCLOCK_CONF + echo $1 >> $HWCLOCK_CONF +} + +# ask the user if the hardware clock is set for UTC/GMT +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \ +to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \ +hardware clock is set to the current local time (this is how most PCs are set \ +up), then say NO here. If you are not sure what this is, you should answer NO \ +here." 13 60 2 \ + "NO" "Hardware clock is set to local time" \ + "YES" "Hardware clock is set to UTC" \ + 2> $TMP/utc + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/utc + exit + fi + if [ "`cat $TMP/utc`" = "YES" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else # must be NO + writeconf "localtime" + fi + rm -f $TMP/utc +else + ### + ### use text prompts + ### + echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?" + echo "If it is, select 'y' here. If the hardware clock is set to the" + echo "current local time (this is how most PCs are set up), then say 'n'" + echo "here. If you are not sure what this is, you should answer 'n' here." + echo + echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? " + read HEJAZ + + if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then + # yes, the hardware clock is UTC + writeconf "UTC" + else + # default to localtime + writeconf "localtime" + fi +fi + +# Now set the correct timezone link: +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then + ### + ### use color menus here + ### + dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \ +"US/Alaska" " " \ +"US/Aleutian" " " \ +"US/Arizona" " " \ +"US/Central" " " \ +"US/East-Indiana" " " \ +"US/Eastern" " " \ +"US/Hawaii" " " \ +"US/Indiana-Starke" " " \ +"US/Michigan" " " \ +"US/Mountain" " " \ +"US/Pacific" " " \ +"US/Samoa" " " \ +"Africa/Abidjan" " " \ +"Africa/Accra" " " \ +"Africa/Addis_Ababa" " " \ +"Africa/Algiers" " " \ +"Africa/Asmara" " " \ +"Africa/Asmera" " " \ +"Africa/Bamako" " " \ +"Africa/Bangui" " " \ +"Africa/Banjul" " " \ +"Africa/Bissau" " " \ +"Africa/Blantyre" " " \ +"Africa/Brazzaville" " " \ +"Africa/Bujumbura" " " \ +"Africa/Cairo" " " \ +"Africa/Casablanca" " " \ +"Africa/Ceuta" " " \ +"Africa/Conakry" " " \ +"Africa/Dakar" " " \ +"Africa/Dar_es_Salaam" " " \ +"Africa/Djibouti" " " \ +"Africa/Douala" " " \ +"Africa/El_Aaiun" " " \ +"Africa/Freetown" " " \ +"Africa/Gaborone" " " \ +"Africa/Harare" " " \ +"Africa/Johannesburg" " " \ +"Africa/Kampala" " " \ +"Africa/Khartoum" " " \ +"Africa/Kigali" " " \ +"Africa/Kinshasa" " " \ +"Africa/Lagos" " " \ +"Africa/Libreville" " " \ +"Africa/Lome" " " \ +"Africa/Luanda" " " \ +"Africa/Lubumbashi" " " \ +"Africa/Lusaka" " " \ +"Africa/Malabo" " " \ +"Africa/Maputo" " " \ +"Africa/Maseru" " " \ +"Africa/Mbabane" " " \ +"Africa/Mogadishu" " " \ +"Africa/Monrovia" " " \ +"Africa/Nairobi" " " \ +"Africa/Ndjamena" " " \ +"Africa/Niamey" " " \ +"Africa/Nouakchott" " " \ +"Africa/Ouagadougou" " " \ +"Africa/Porto-Novo" " " \ +"Africa/Sao_Tome" " " \ +"Africa/Timbuktu" " " \ +"Africa/Tripoli" " " \ +"Africa/Tunis" " " \ +"Africa/Windhoek" " " \ +"America/Adak" " " \ +"America/Anchorage" " " \ +"America/Anguilla" " " \ +"America/Antigua" " " \ +"America/Araguaina" " " \ +"America/Argentina/Buenos_Aires" " " \ +"America/Argentina/Catamarca" " " \ +"America/Argentina/ComodRivadavia" " " \ +"America/Argentina/Cordoba" " " \ +"America/Argentina/Jujuy" " " \ +"America/Argentina/La_Rioja" " " \ +"America/Argentina/Mendoza" " " \ +"America/Argentina/Rio_Gallegos" " " \ +"America/Argentina/Salta" " " \ +"America/Argentina/San_Juan" " " \ +"America/Argentina/San_Luis" " " \ +"America/Argentina/Tucuman" " " \ +"America/Argentina/Ushuaia" " " \ +"America/Aruba" " " \ +"America/Asuncion" " " \ +"America/Atikokan" " " \ +"America/Atka" " " \ +"America/Bahia" " " \ +"America/Barbados" " " \ +"America/Belem" " " \ +"America/Belize" " " \ +"America/Blanc-Sablon" " " \ +"America/Boa_Vista" " " \ +"America/Bogota" " " \ +"America/Boise" " " \ +"America/Buenos_Aires" " " \ +"America/Cambridge_Bay" " " \ +"America/Campo_Grande" " " \ +"America/Cancun" " " \ +"America/Caracas" " " \ +"America/Catamarca" " " \ +"America/Cayenne" " " \ +"America/Cayman" " " \ +"America/Chicago" " " \ +"America/Chihuahua" " " \ +"America/Coral_Harbour" " " \ +"America/Cordoba" " " \ +"America/Costa_Rica" " " \ +"America/Cuiaba" " " \ +"America/Curacao" " " \ +"America/Danmarkshavn" " " \ +"America/Dawson" " " \ +"America/Dawson_Creek" " " \ +"America/Denver" " " \ +"America/Detroit" " " \ +"America/Dominica" " " \ +"America/Edmonton" " " \ +"America/Eirunepe" " " \ +"America/El_Salvador" " " \ +"America/Ensenada" " " \ +"America/Fort_Wayne" " " \ +"America/Fortaleza" " " \ +"America/Glace_Bay" " " \ +"America/Godthab" " " \ +"America/Goose_Bay" " " \ +"America/Grand_Turk" " " \ +"America/Grenada" " " \ +"America/Guadeloupe" " " \ +"America/Guatemala" " " \ +"America/Guayaquil" " " \ +"America/Guyana" " " \ +"America/Halifax" " " \ +"America/Havana" " " \ +"America/Hermosillo" " " \ +"America/Indiana/Indianapolis" " " \ +"America/Indiana/Knox" " " \ +"America/Indiana/Marengo" " " \ +"America/Indiana/Petersburg" " " \ +"America/Indiana/Tell_City" " " \ +"America/Indiana/Vevay" " " \ +"America/Indiana/Vincennes" " " \ +"America/Indiana/Winamac" " " \ +"America/Indianapolis" " " \ +"America/Inuvik" " " \ +"America/Iqaluit" " " \ +"America/Jamaica" " " \ +"America/Jujuy" " " \ +"America/Juneau" " " \ +"America/Kentucky/Louisville" " " \ +"America/Kentucky/Monticello" " " \ +"America/Knox_IN" " " \ +"America/La_Paz" " " \ +"America/Lima" " " \ +"America/Los_Angeles" " " \ +"America/Louisville" " " \ +"America/Maceio" " " \ +"America/Managua" " " \ +"America/Manaus" " " \ +"America/Marigot" " " \ +"America/Martinique" " " \ +"America/Mazatlan" " " \ +"America/Mendoza" " " \ +"America/Menominee" " " \ +"America/Merida" " " \ +"America/Mexico_City" " " \ +"America/Miquelon" " " \ +"America/Moncton" " " \ +"America/Monterrey" " " \ +"America/Montevideo" " " \ +"America/Montreal" " " \ +"America/Montserrat" " " \ +"America/Nassau" " " \ +"America/New_York" " " \ +"America/Nipigon" " " \ +"America/Nome" " " \ +"America/Noronha" " " \ +"America/North_Dakota/Center" " " \ +"America/North_Dakota/New_Salem" " " \ +"America/Panama" " " \ +"America/Pangnirtung" " " \ +"America/Paramaribo" " " \ +"America/Phoenix" " " \ +"America/Port-au-Prince" " " \ +"America/Port_of_Spain" " " \ +"America/Porto_Acre" " " \ +"America/Porto_Velho" " " \ +"America/Puerto_Rico" " " \ +"America/Rainy_River" " " \ +"America/Rankin_Inlet" " " \ +"America/Recife" " " \ +"America/Regina" " " \ +"America/Resolute" " " \ +"America/Rio_Branco" " " \ +"America/Rosario" " " \ +"America/Santarem" " " \ +"America/Santiago" " " \ +"America/Santo_Domingo" " " \ +"America/Sao_Paulo" " " \ +"America/Scoresbysund" " " \ +"America/Shiprock" " " \ +"America/St_Barthelemy" " " \ +"America/St_Johns" " " \ +"America/St_Kitts" " " \ +"America/St_Lucia" " " \ +"America/St_Thomas" " " \ +"America/St_Vincent" " " \ +"America/Swift_Current" " " \ +"America/Tegucigalpa" " " \ +"America/Thule" " " \ +"America/Thunder_Bay" " " \ +"America/Tijuana" " " \ +"America/Toronto" " " \ +"America/Tortola" " " \ +"America/Vancouver" " " \ +"America/Virgin" " " \ +"America/Whitehorse" " " \ +"America/Winnipeg" " " \ +"America/Yakutat" " " \ +"America/Yellowknife" " " \ +"Antarctica/Casey" " " \ +"Antarctica/Davis" " " \ +"Antarctica/DumontDUrville" " " \ +"Antarctica/Mawson" " " \ +"Antarctica/McMurdo" " " \ +"Antarctica/Palmer" " " \ +"Antarctica/Rothera" " " \ +"Antarctica/South_Pole" " " \ +"Antarctica/Syowa" " " \ +"Antarctica/Vostok" " " \ +"Arctic/Longyearbyen" " " \ +"Asia/Aden" " " \ +"Asia/Almaty" " " \ +"Asia/Amman" " " \ +"Asia/Anadyr" " " \ +"Asia/Aqtau" " " \ +"Asia/Aqtobe" " " \ +"Asia/Ashgabat" " " \ +"Asia/Ashkhabad" " " \ +"Asia/Baghdad" " " \ +"Asia/Bahrain" " " \ +"Asia/Baku" " " \ +"Asia/Bangkok" " " \ +"Asia/Beirut" " " \ +"Asia/Bishkek" " " \ +"Asia/Brunei" " " \ +"Asia/Calcutta" " " \ +"Asia/Choibalsan" " " \ +"Asia/Chongqing" " " \ +"Asia/Chungking" " " \ +"Asia/Colombo" " " \ +"Asia/Dacca" " " \ +"Asia/Damascus" " " \ +"Asia/Dhaka" " " \ +"Asia/Dili" " " \ +"Asia/Dubai" " " \ +"Asia/Dushanbe" " " \ +"Asia/Gaza" " " \ +"Asia/Harbin" " " \ +"Asia/Ho_Chi_Minh" " " \ +"Asia/Hong_Kong" " " \ +"Asia/Hovd" " " \ +"Asia/Irkutsk" " " \ +"Asia/Istanbul" " " \ +"Asia/Jakarta" " " \ +"Asia/Jayapura" " " \ +"Asia/Jerusalem" " " \ +"Asia/Kabul" " " \ +"Asia/Kamchatka" " " \ +"Asia/Karachi" " " \ +"Asia/Kashgar" " " \ +"Asia/Kathmandu" " " \ +"Asia/Katmandu" " " \ +"Asia/Kolkata" " " \ +"Asia/Krasnoyarsk" " " \ +"Asia/Kuala_Lumpur" " " \ +"Asia/Kuching" " " \ +"Asia/Kuwait" " " \ +"Asia/Macao" " " \ +"Asia/Macau" " " \ +"Asia/Magadan" " " \ +"Asia/Makassar" " " \ +"Asia/Manila" " " \ +"Asia/Muscat" " " \ +"Asia/Nicosia" " " \ +"Asia/Novosibirsk" " " \ +"Asia/Omsk" " " \ +"Asia/Oral" " " \ +"Asia/Phnom_Penh" " " \ +"Asia/Pontianak" " " \ +"Asia/Pyongyang" " " \ +"Asia/Qatar" " " \ +"Asia/Qyzylorda" " " \ +"Asia/Rangoon" " " \ +"Asia/Riyadh" " " \ +"Asia/Riyadh87" " " \ +"Asia/Riyadh88" " " \ +"Asia/Riyadh89" " " \ +"Asia/Saigon" " " \ +"Asia/Sakhalin" " " \ +"Asia/Samarkand" " " \ +"Asia/Seoul" " " \ +"Asia/Shanghai" " " \ +"Asia/Singapore" " " \ +"Asia/Taipei" " " \ +"Asia/Tashkent" " " \ +"Asia/Tbilisi" " " \ +"Asia/Tehran" " " \ +"Asia/Tel_Aviv" " " \ +"Asia/Thimbu" " " \ +"Asia/Thimphu" " " \ +"Asia/Tokyo" " " \ +"Asia/Ujung_Pandang" " " \ +"Asia/Ulaanbaatar" " " \ +"Asia/Ulan_Bator" " " \ +"Asia/Urumqi" " " \ +"Asia/Vientiane" " " \ +"Asia/Vladivostok" " " \ +"Asia/Yakutsk" " " \ +"Asia/Yekaterinburg" " " \ +"Asia/Yerevan" " " \ +"Atlantic/Azores" " " \ +"Atlantic/Bermuda" " " \ +"Atlantic/Canary" " " \ +"Atlantic/Cape_Verde" " " \ +"Atlantic/Faeroe" " " \ +"Atlantic/Faroe" " " \ +"Atlantic/Jan_Mayen" " " \ +"Atlantic/Madeira" " " \ +"Atlantic/Reykjavik" " " \ +"Atlantic/South_Georgia" " " \ +"Atlantic/St_Helena" " " \ +"Atlantic/Stanley" " " \ +"Australia/ACT" " " \ +"Australia/Adelaide" " " \ +"Australia/Brisbane" " " \ +"Australia/Broken_Hill" " " \ +"Australia/Canberra" " " \ +"Australia/Currie" " " \ +"Australia/Darwin" " " \ +"Australia/Eucla" " " \ +"Australia/Hobart" " " \ +"Australia/LHI" " " \ +"Australia/Lindeman" " " \ +"Australia/Lord_Howe" " " \ +"Australia/Melbourne" " " \ +"Australia/NSW" " " \ +"Australia/North" " " \ +"Australia/Perth" " " \ +"Australia/Queensland" " " \ +"Australia/South" " " \ +"Australia/Sydney" " " \ +"Australia/Tasmania" " " \ +"Australia/Victoria" " " \ +"Australia/West" " " \ +"Australia/Yancowinna" " " \ +"Brazil/Acre" " " \ +"Brazil/DeNoronha" " " \ +"Brazil/East" " " \ +"Brazil/West" " " \ +"CET" " " \ +"CST6CDT" " " \ +"Canada/Atlantic" " " \ +"Canada/Central" " " \ +"Canada/East-Saskatchewan" " " \ +"Canada/Eastern" " " \ +"Canada/Mountain" " " \ +"Canada/Newfoundland" " " \ +"Canada/Pacific" " " \ +"Canada/Saskatchewan" " " \ +"Canada/Yukon" " " \ +"Chile/Continental" " " \ +"Chile/EasterIsland" " " \ +"Cuba" " " \ +"EET" " " \ +"EST" " " \ +"EST5EDT" " " \ +"Egypt" " " \ +"Eire" " " \ +"Etc/GMT" " " \ +"Etc/GMT+0" " " \ +"Etc/GMT+1" " " \ +"Etc/GMT+10" " " \ +"Etc/GMT+11" " " \ +"Etc/GMT+12" " " \ +"Etc/GMT+2" " " \ +"Etc/GMT+3" " " \ +"Etc/GMT+4" " " \ +"Etc/GMT+5" " " \ +"Etc/GMT+6" " " \ +"Etc/GMT+7" " " \ +"Etc/GMT+8" " " \ +"Etc/GMT+9" " " \ +"Etc/GMT-0" " " \ +"Etc/GMT-1" " " \ +"Etc/GMT-10" " " \ +"Etc/GMT-11" " " \ +"Etc/GMT-12" " " \ +"Etc/GMT-13" " " \ +"Etc/GMT-14" " " \ +"Etc/GMT-2" " " \ +"Etc/GMT-3" " " \ +"Etc/GMT-4" " " \ +"Etc/GMT-5" " " \ +"Etc/GMT-6" " " \ +"Etc/GMT-7" " " \ +"Etc/GMT-8" " " \ +"Etc/GMT-9" " " \ +"Etc/GMT0" " " \ +"Etc/Greenwich" " " \ +"Etc/UCT" " " \ +"Etc/UTC" " " \ +"Etc/Universal" " " \ +"Etc/Zulu" " " \ +"Europe/Amsterdam" " " \ +"Europe/Andorra" " " \ +"Europe/Athens" " " \ +"Europe/Belfast" " " \ +"Europe/Belgrade" " " \ +"Europe/Berlin" " " \ +"Europe/Bratislava" " " \ +"Europe/Brussels" " " \ +"Europe/Bucharest" " " \ +"Europe/Budapest" " " \ +"Europe/Chisinau" " " \ +"Europe/Copenhagen" " " \ +"Europe/Dublin" " " \ +"Europe/Gibraltar" " " \ +"Europe/Guernsey" " " \ +"Europe/Helsinki" " " \ +"Europe/Isle_of_Man" " " \ +"Europe/Istanbul" " " \ +"Europe/Jersey" " " \ +"Europe/Kaliningrad" " " \ +"Europe/Kiev" " " \ +"Europe/Lisbon" " " \ +"Europe/Ljubljana" " " \ +"Europe/London" " " \ +"Europe/Luxembourg" " " \ +"Europe/Madrid" " " \ +"Europe/Malta" " " \ +"Europe/Mariehamn" " " \ +"Europe/Minsk" " " \ +"Europe/Monaco" " " \ +"Europe/Moscow" " " \ +"Europe/Nicosia" " " \ +"Europe/Oslo" " " \ +"Europe/Paris" " " \ +"Europe/Podgorica" " " \ +"Europe/Prague" " " \ +"Europe/Riga" " " \ +"Europe/Rome" " " \ +"Europe/Samara" " " \ +"Europe/San_Marino" " " \ +"Europe/Sarajevo" " " \ +"Europe/Simferopol" " " \ +"Europe/Skopje" " " \ +"Europe/Sofia" " " \ +"Europe/Stockholm" " " \ +"Europe/Tallinn" " " \ +"Europe/Tirane" " " \ +"Europe/Tiraspol" " " \ +"Europe/Uzhgorod" " " \ +"Europe/Vaduz" " " \ +"Europe/Vatican" " " \ +"Europe/Vienna" " " \ +"Europe/Vilnius" " " \ +"Europe/Volgograd" " " \ +"Europe/Warsaw" " " \ +"Europe/Zagreb" " " \ +"Europe/Zaporozhye" " " \ +"Europe/Zurich" " " \ +"Factory" " " \ +"GB" " " \ +"GB-Eire" " " \ +"GMT" " " \ +"GMT+0" " " \ +"GMT-0" " " \ +"GMT0" " " \ +"Greenwich" " " \ +"HST" " " \ +"Hongkong" " " \ +"Iceland" " " \ +"Indian/Antananarivo" " " \ +"Indian/Chagos" " " \ +"Indian/Christmas" " " \ +"Indian/Cocos" " " \ +"Indian/Comoro" " " \ +"Indian/Kerguelen" " " \ +"Indian/Mahe" " " \ +"Indian/Maldives" " " \ +"Indian/Mauritius" " " \ +"Indian/Mayotte" " " \ +"Indian/Reunion" " " \ +"Iran" " " \ +"Israel" " " \ +"Jamaica" " " \ +"Japan" " " \ +"Kwajalein" " " \ +"Libya" " " \ +"MET" " " \ +"MST" " " \ +"MST7MDT" " " \ +"Mexico/BajaNorte" " " \ +"Mexico/BajaSur" " " \ +"Mexico/General" " " \ +"Mideast/Riyadh87" " " \ +"Mideast/Riyadh88" " " \ +"Mideast/Riyadh89" " " \ +"NZ" " " \ +"NZ-CHAT" " " \ +"Navajo" " " \ +"PRC" " " \ +"PST8PDT" " " \ +"Pacific/Apia" " " \ +"Pacific/Auckland" " " \ +"Pacific/Chatham" " " \ +"Pacific/Easter" " " \ +"Pacific/Efate" " " \ +"Pacific/Enderbury" " " \ +"Pacific/Fakaofo" " " \ +"Pacific/Fiji" " " \ +"Pacific/Funafuti" " " \ +"Pacific/Galapagos" " " \ +"Pacific/Gambier" " " \ +"Pacific/Guadalcanal" " " \ +"Pacific/Guam" " " \ +"Pacific/Honolulu" " " \ +"Pacific/Johnston" " " \ +"Pacific/Kiritimati" " " \ +"Pacific/Kosrae" " " \ +"Pacific/Kwajalein" " " \ +"Pacific/Majuro" " " \ +"Pacific/Marquesas" " " \ +"Pacific/Midway" " " \ +"Pacific/Nauru" " " \ +"Pacific/Niue" " " \ +"Pacific/Norfolk" " " \ +"Pacific/Noumea" " " \ +"Pacific/Pago_Pago" " " \ +"Pacific/Palau" " " \ +"Pacific/Pitcairn" " " \ +"Pacific/Ponape" " " \ +"Pacific/Port_Moresby" " " \ +"Pacific/Rarotonga" " " \ +"Pacific/Saipan" " " \ +"Pacific/Samoa" " " \ +"Pacific/Tahiti" " " \ +"Pacific/Tarawa" " " \ +"Pacific/Tongatapu" " " \ +"Pacific/Truk" " " \ +"Pacific/Wake" " " \ +"Pacific/Wallis" " " \ +"Pacific/Yap" " " \ +"Poland" " " \ +"Portugal" " " \ +"ROC" " " \ +"ROK" " " \ +"Singapore" " " \ +"Turkey" " " \ +"UCT" " " \ +"UTC" " " \ +"Universal" " " \ +"W-SU" " " \ +"WET" " " \ +"Zulu" " " \ +"posix/Africa/Abidjan" " " \ +"posix/Africa/Accra" " " \ +"posix/Africa/Addis_Ababa" " " \ +"posix/Africa/Algiers" " " \ +"posix/Africa/Asmara" " " \ +"posix/Africa/Asmera" " " \ +"posix/Africa/Bamako" " " \ +"posix/Africa/Bangui" " " \ +"posix/Africa/Banjul" " " \ +"posix/Africa/Bissau" " " \ +"posix/Africa/Blantyre" " " \ +"posix/Africa/Brazzaville" " " \ +"posix/Africa/Bujumbura" " " \ +"posix/Africa/Cairo" " " \ +"posix/Africa/Casablanca" " " \ +"posix/Africa/Ceuta" " " \ +"posix/Africa/Conakry" " " \ +"posix/Africa/Dakar" " " \ +"posix/Africa/Dar_es_Salaam" " " \ +"posix/Africa/Djibouti" " " \ +"posix/Africa/Douala" " " \ +"posix/Africa/El_Aaiun" " " \ +"posix/Africa/Freetown" " " \ +"posix/Africa/Gaborone" " " \ +"posix/Africa/Harare" " " \ +"posix/Africa/Johannesburg" " " \ +"posix/Africa/Kampala" " " \ +"posix/Africa/Khartoum" " " \ +"posix/Africa/Kigali" " " \ +"posix/Africa/Kinshasa" " " \ +"posix/Africa/Lagos" " " \ +"posix/Africa/Libreville" " " \ +"posix/Africa/Lome" " " \ +"posix/Africa/Luanda" " " \ +"posix/Africa/Lubumbashi" " " \ +"posix/Africa/Lusaka" " " \ +"posix/Africa/Malabo" " " \ +"posix/Africa/Maputo" " " \ +"posix/Africa/Maseru" " " \ +"posix/Africa/Mbabane" " " \ +"posix/Africa/Mogadishu" " " \ +"posix/Africa/Monrovia" " " \ +"posix/Africa/Nairobi" " " \ +"posix/Africa/Ndjamena" " " \ +"posix/Africa/Niamey" " " \ +"posix/Africa/Nouakchott" " " \ +"posix/Africa/Ouagadougou" " " \ +"posix/Africa/Porto-Novo" " " \ +"posix/Africa/Sao_Tome" " " \ +"posix/Africa/Timbuktu" " " \ +"posix/Africa/Tripoli" " " \ +"posix/Africa/Tunis" " " \ +"posix/Africa/Windhoek" " " \ +"posix/America/Adak" " " \ +"posix/America/Anchorage" " " \ +"posix/America/Anguilla" " " \ +"posix/America/Antigua" " " \ +"posix/America/Araguaina" " " \ +"posix/America/Argentina/Buenos_Aires" " " \ +"posix/America/Argentina/Catamarca" " " \ +"posix/America/Argentina/ComodRivadavia" " " \ +"posix/America/Argentina/Cordoba" " " \ +"posix/America/Argentina/Jujuy" " " \ +"posix/America/Argentina/La_Rioja" " " \ +"posix/America/Argentina/Mendoza" " " \ +"posix/America/Argentina/Rio_Gallegos" " " \ +"posix/America/Argentina/Salta" " " \ +"posix/America/Argentina/San_Juan" " " \ +"posix/America/Argentina/San_Luis" " " \ +"posix/America/Argentina/Tucuman" " " \ +"posix/America/Argentina/Ushuaia" " " \ +"posix/America/Aruba" " " \ +"posix/America/Asuncion" " " \ +"posix/America/Atikokan" " " \ +"posix/America/Atka" " " \ +"posix/America/Bahia" " " \ +"posix/America/Barbados" " " \ +"posix/America/Belem" " " \ +"posix/America/Belize" " " \ +"posix/America/Blanc-Sablon" " " \ +"posix/America/Boa_Vista" " " \ +"posix/America/Bogota" " " \ +"posix/America/Boise" " " \ +"posix/America/Buenos_Aires" " " \ +"posix/America/Cambridge_Bay" " " \ +"posix/America/Campo_Grande" " " \ +"posix/America/Cancun" " " \ +"posix/America/Caracas" " " \ +"posix/America/Catamarca" " " \ +"posix/America/Cayenne" " " \ +"posix/America/Cayman" " " \ +"posix/America/Chicago" " " \ +"posix/America/Chihuahua" " " \ +"posix/America/Coral_Harbour" " " \ +"posix/America/Cordoba" " " \ +"posix/America/Costa_Rica" " " \ +"posix/America/Cuiaba" " " \ +"posix/America/Curacao" " " \ +"posix/America/Danmarkshavn" " " \ +"posix/America/Dawson" " " \ +"posix/America/Dawson_Creek" " " \ +"posix/America/Denver" " " \ +"posix/America/Detroit" " " \ +"posix/America/Dominica" " " \ +"posix/America/Edmonton" " " \ +"posix/America/Eirunepe" " " \ +"posix/America/El_Salvador" " " \ +"posix/America/Ensenada" " " \ +"posix/America/Fort_Wayne" " " \ +"posix/America/Fortaleza" " " \ +"posix/America/Glace_Bay" " " \ +"posix/America/Godthab" " " \ +"posix/America/Goose_Bay" " " \ +"posix/America/Grand_Turk" " " \ +"posix/America/Grenada" " " \ +"posix/America/Guadeloupe" " " \ +"posix/America/Guatemala" " " \ +"posix/America/Guayaquil" " " \ +"posix/America/Guyana" " " \ +"posix/America/Halifax" " " \ +"posix/America/Havana" " " \ +"posix/America/Hermosillo" " " \ +"posix/America/Indiana/Indianapolis" " " \ +"posix/America/Indiana/Knox" " " \ +"posix/America/Indiana/Marengo" " " \ +"posix/America/Indiana/Petersburg" " " \ +"posix/America/Indiana/Tell_City" " " \ +"posix/America/Indiana/Vevay" " " \ +"posix/America/Indiana/Vincennes" " " \ +"posix/America/Indiana/Winamac" " " \ +"posix/America/Indianapolis" " " \ +"posix/America/Inuvik" " " \ +"posix/America/Iqaluit" " " \ +"posix/America/Jamaica" " " \ +"posix/America/Jujuy" " " \ +"posix/America/Juneau" " " \ +"posix/America/Kentucky/Louisville" " " \ +"posix/America/Kentucky/Monticello" " " \ +"posix/America/Knox_IN" " " \ +"posix/America/La_Paz" " " \ +"posix/America/Lima" " " \ +"posix/America/Los_Angeles" " " \ +"posix/America/Louisville" " " \ +"posix/America/Maceio" " " \ +"posix/America/Managua" " " \ +"posix/America/Manaus" " " \ +"posix/America/Marigot" " " \ +"posix/America/Martinique" " " \ +"posix/America/Mazatlan" " " \ +"posix/America/Mendoza" " " \ +"posix/America/Menominee" " " \ +"posix/America/Merida" " " \ +"posix/America/Mexico_City" " " \ +"posix/America/Miquelon" " " \ +"posix/America/Moncton" " " \ +"posix/America/Monterrey" " " \ +"posix/America/Montevideo" " " \ +"posix/America/Montreal" " " \ +"posix/America/Montserrat" " " \ +"posix/America/Nassau" " " \ +"posix/America/New_York" " " \ +"posix/America/Nipigon" " " \ +"posix/America/Nome" " " \ +"posix/America/Noronha" " " \ +"posix/America/North_Dakota/Center" " " \ +"posix/America/North_Dakota/New_Salem" " " \ +"posix/America/Panama" " " \ +"posix/America/Pangnirtung" " " \ +"posix/America/Paramaribo" " " \ +"posix/America/Phoenix" " " \ +"posix/America/Port-au-Prince" " " \ +"posix/America/Port_of_Spain" " " \ +"posix/America/Porto_Acre" " " \ +"posix/America/Porto_Velho" " " \ +"posix/America/Puerto_Rico" " " \ +"posix/America/Rainy_River" " " \ +"posix/America/Rankin_Inlet" " " \ +"posix/America/Recife" " " \ +"posix/America/Regina" " " \ +"posix/America/Resolute" " " \ +"posix/America/Rio_Branco" " " \ +"posix/America/Rosario" " " \ +"posix/America/Santarem" " " \ +"posix/America/Santiago" " " \ +"posix/America/Santo_Domingo" " " \ +"posix/America/Sao_Paulo" " " \ +"posix/America/Scoresbysund" " " \ +"posix/America/Shiprock" " " \ +"posix/America/St_Barthelemy" " " \ +"posix/America/St_Johns" " " \ +"posix/America/St_Kitts" " " \ +"posix/America/St_Lucia" " " \ +"posix/America/St_Thomas" " " \ +"posix/America/St_Vincent" " " \ +"posix/America/Swift_Current" " " \ +"posix/America/Tegucigalpa" " " \ +"posix/America/Thule" " " \ +"posix/America/Thunder_Bay" " " \ +"posix/America/Tijuana" " " \ +"posix/America/Toronto" " " \ +"posix/America/Tortola" " " \ +"posix/America/Vancouver" " " \ +"posix/America/Virgin" " " \ +"posix/America/Whitehorse" " " \ +"posix/America/Winnipeg" " " \ +"posix/America/Yakutat" " " \ +"posix/America/Yellowknife" " " \ +"posix/Antarctica/Casey" " " \ +"posix/Antarctica/Davis" " " \ +"posix/Antarctica/DumontDUrville" " " \ +"posix/Antarctica/Mawson" " " \ +"posix/Antarctica/McMurdo" " " \ +"posix/Antarctica/Palmer" " " \ +"posix/Antarctica/Rothera" " " \ +"posix/Antarctica/South_Pole" " " \ +"posix/Antarctica/Syowa" " " \ +"posix/Antarctica/Vostok" " " \ +"posix/Arctic/Longyearbyen" " " \ +"posix/Asia/Aden" " " \ +"posix/Asia/Almaty" " " \ +"posix/Asia/Amman" " " \ +"posix/Asia/Anadyr" " " \ +"posix/Asia/Aqtau" " " \ +"posix/Asia/Aqtobe" " " \ +"posix/Asia/Ashgabat" " " \ +"posix/Asia/Ashkhabad" " " \ +"posix/Asia/Baghdad" " " \ +"posix/Asia/Bahrain" " " \ +"posix/Asia/Baku" " " \ +"posix/Asia/Bangkok" " " \ +"posix/Asia/Beirut" " " \ +"posix/Asia/Bishkek" " " \ +"posix/Asia/Brunei" " " \ +"posix/Asia/Calcutta" " " \ +"posix/Asia/Choibalsan" " " \ +"posix/Asia/Chongqing" " " \ +"posix/Asia/Chungking" " " \ +"posix/Asia/Colombo" " " \ +"posix/Asia/Dacca" " " \ +"posix/Asia/Damascus" " " \ +"posix/Asia/Dhaka" " " \ +"posix/Asia/Dili" " " \ +"posix/Asia/Dubai" " " \ +"posix/Asia/Dushanbe" " " \ +"posix/Asia/Gaza" " " \ +"posix/Asia/Harbin" " " \ +"posix/Asia/Ho_Chi_Minh" " " \ +"posix/Asia/Hong_Kong" " " \ +"posix/Asia/Hovd" " " \ +"posix/Asia/Irkutsk" " " \ +"posix/Asia/Istanbul" " " \ +"posix/Asia/Jakarta" " " \ +"posix/Asia/Jayapura" " " \ +"posix/Asia/Jerusalem" " " \ +"posix/Asia/Kabul" " " \ +"posix/Asia/Kamchatka" " " \ +"posix/Asia/Karachi" " " \ +"posix/Asia/Kashgar" " " \ +"posix/Asia/Kathmandu" " " \ +"posix/Asia/Katmandu" " " \ +"posix/Asia/Kolkata" " " \ +"posix/Asia/Krasnoyarsk" " " \ +"posix/Asia/Kuala_Lumpur" " " \ +"posix/Asia/Kuching" " " \ +"posix/Asia/Kuwait" " " \ +"posix/Asia/Macao" " " \ +"posix/Asia/Macau" " " \ +"posix/Asia/Magadan" " " \ +"posix/Asia/Makassar" " " \ +"posix/Asia/Manila" " " \ +"posix/Asia/Muscat" " " \ +"posix/Asia/Nicosia" " " \ +"posix/Asia/Novosibirsk" " " \ +"posix/Asia/Omsk" " " \ +"posix/Asia/Oral" " " \ +"posix/Asia/Phnom_Penh" " " \ +"posix/Asia/Pontianak" " " \ +"posix/Asia/Pyongyang" " " \ +"posix/Asia/Qatar" " " \ +"posix/Asia/Qyzylorda" " " \ +"posix/Asia/Rangoon" " " \ +"posix/Asia/Riyadh" " " \ +"posix/Asia/Riyadh87" " " \ +"posix/Asia/Riyadh88" " " \ +"posix/Asia/Riyadh89" " " \ +"posix/Asia/Saigon" " " \ +"posix/Asia/Sakhalin" " " \ +"posix/Asia/Samarkand" " " \ +"posix/Asia/Seoul" " " \ +"posix/Asia/Shanghai" " " \ +"posix/Asia/Singapore" " " \ +"posix/Asia/Taipei" " " \ +"posix/Asia/Tashkent" " " \ +"posix/Asia/Tbilisi" " " \ +"posix/Asia/Tehran" " " \ +"posix/Asia/Tel_Aviv" " " \ +"posix/Asia/Thimbu" " " \ +"posix/Asia/Thimphu" " " \ +"posix/Asia/Tokyo" " " \ +"posix/Asia/Ujung_Pandang" " " \ +"posix/Asia/Ulaanbaatar" " " \ +"posix/Asia/Ulan_Bator" " " \ +"posix/Asia/Urumqi" " " \ +"posix/Asia/Vientiane" " " \ +"posix/Asia/Vladivostok" " " \ +"posix/Asia/Yakutsk" " " \ +"posix/Asia/Yekaterinburg" " " \ +"posix/Asia/Yerevan" " " \ +"posix/Atlantic/Azores" " " \ +"posix/Atlantic/Bermuda" " " \ +"posix/Atlantic/Canary" " " \ +"posix/Atlantic/Cape_Verde" " " \ +"posix/Atlantic/Faeroe" " " \ +"posix/Atlantic/Faroe" " " \ +"posix/Atlantic/Jan_Mayen" " " \ +"posix/Atlantic/Madeira" " " \ +"posix/Atlantic/Reykjavik" " " \ +"posix/Atlantic/South_Georgia" " " \ +"posix/Atlantic/St_Helena" " " \ +"posix/Atlantic/Stanley" " " \ +"posix/Australia/ACT" " " \ +"posix/Australia/Adelaide" " " \ +"posix/Australia/Brisbane" " " \ +"posix/Australia/Broken_Hill" " " \ +"posix/Australia/Canberra" " " \ +"posix/Australia/Currie" " " \ +"posix/Australia/Darwin" " " \ +"posix/Australia/Eucla" " " \ +"posix/Australia/Hobart" " " \ +"posix/Australia/LHI" " " \ +"posix/Australia/Lindeman" " " \ +"posix/Australia/Lord_Howe" " " \ +"posix/Australia/Melbourne" " " \ +"posix/Australia/NSW" " " \ +"posix/Australia/North" " " \ +"posix/Australia/Perth" " " \ +"posix/Australia/Queensland" " " \ +"posix/Australia/South" " " \ +"posix/Australia/Sydney" " " \ +"posix/Australia/Tasmania" " " \ +"posix/Australia/Victoria" " " \ +"posix/Australia/West" " " \ +"posix/Australia/Yancowinna" " " \ +"posix/Brazil/Acre" " " \ +"posix/Brazil/DeNoronha" " " \ +"posix/Brazil/East" " " \ +"posix/Brazil/West" " " \ +"posix/CET" " " \ +"posix/CST6CDT" " " \ +"posix/Canada/Atlantic" " " \ +"posix/Canada/Central" " " \ +"posix/Canada/East-Saskatchewan" " " \ +"posix/Canada/Eastern" " " \ +"posix/Canada/Mountain" " " \ +"posix/Canada/Newfoundland" " " \ +"posix/Canada/Pacific" " " \ +"posix/Canada/Saskatchewan" " " \ +"posix/Canada/Yukon" " " \ +"posix/Chile/Continental" " " \ +"posix/Chile/EasterIsland" " " \ +"posix/Cuba" " " \ +"posix/EET" " " \ +"posix/EST" " " \ +"posix/EST5EDT" " " \ +"posix/Egypt" " " \ +"posix/Eire" " " \ +"posix/Etc/GMT" " " \ +"posix/Etc/GMT+0" " " \ +"posix/Etc/GMT+1" " " \ +"posix/Etc/GMT+10" " " \ +"posix/Etc/GMT+11" " " \ +"posix/Etc/GMT+12" " " \ +"posix/Etc/GMT+2" " " \ +"posix/Etc/GMT+3" " " \ +"posix/Etc/GMT+4" " " \ +"posix/Etc/GMT+5" " " \ +"posix/Etc/GMT+6" " " \ +"posix/Etc/GMT+7" " " \ +"posix/Etc/GMT+8" " " \ +"posix/Etc/GMT+9" " " \ +"posix/Etc/GMT-0" " " \ +"posix/Etc/GMT-1" " " \ +"posix/Etc/GMT-10" " " \ +"posix/Etc/GMT-11" " " \ +"posix/Etc/GMT-12" " " \ +"posix/Etc/GMT-13" " " \ +"posix/Etc/GMT-14" " " \ +"posix/Etc/GMT-2" " " \ +"posix/Etc/GMT-3" " " \ +"posix/Etc/GMT-4" " " \ +"posix/Etc/GMT-5" " " \ +"posix/Etc/GMT-6" " " \ +"posix/Etc/GMT-7" " " \ +"posix/Etc/GMT-8" " " \ +"posix/Etc/GMT-9" " " \ +"posix/Etc/GMT0" " " \ +"posix/Etc/Greenwich" " " \ +"posix/Etc/UCT" " " \ +"posix/Etc/UTC" " " \ +"posix/Etc/Universal" " " \ +"posix/Etc/Zulu" " " \ +"posix/Europe/Amsterdam" " " \ +"posix/Europe/Andorra" " " \ +"posix/Europe/Athens" " " \ +"posix/Europe/Belfast" " " \ +"posix/Europe/Belgrade" " " \ +"posix/Europe/Berlin" " " \ +"posix/Europe/Bratislava" " " \ +"posix/Europe/Brussels" " " \ +"posix/Europe/Bucharest" " " \ +"posix/Europe/Budapest" " " \ +"posix/Europe/Chisinau" " " \ +"posix/Europe/Copenhagen" " " \ +"posix/Europe/Dublin" " " \ +"posix/Europe/Gibraltar" " " \ +"posix/Europe/Guernsey" " " \ +"posix/Europe/Helsinki" " " \ +"posix/Europe/Isle_of_Man" " " \ +"posix/Europe/Istanbul" " " \ +"posix/Europe/Jersey" " " \ +"posix/Europe/Kaliningrad" " " \ +"posix/Europe/Kiev" " " \ +"posix/Europe/Lisbon" " " \ +"posix/Europe/Ljubljana" " " \ +"posix/Europe/London" " " \ +"posix/Europe/Luxembourg" " " \ +"posix/Europe/Madrid" " " \ +"posix/Europe/Malta" " " \ +"posix/Europe/Mariehamn" " " \ +"posix/Europe/Minsk" " " \ +"posix/Europe/Monaco" " " \ +"posix/Europe/Moscow" " " \ +"posix/Europe/Nicosia" " " \ +"posix/Europe/Oslo" " " \ +"posix/Europe/Paris" " " \ +"posix/Europe/Podgorica" " " \ +"posix/Europe/Prague" " " \ +"posix/Europe/Riga" " " \ +"posix/Europe/Rome" " " \ +"posix/Europe/Samara" " " \ +"posix/Europe/San_Marino" " " \ +"posix/Europe/Sarajevo" " " \ +"posix/Europe/Simferopol" " " \ +"posix/Europe/Skopje" " " \ +"posix/Europe/Sofia" " " \ +"posix/Europe/Stockholm" " " \ +"posix/Europe/Tallinn" " " \ +"posix/Europe/Tirane" " " \ +"posix/Europe/Tiraspol" " " \ +"posix/Europe/Uzhgorod" " " \ +"posix/Europe/Vaduz" " " \ +"posix/Europe/Vatican" " " \ +"posix/Europe/Vienna" " " \ +"posix/Europe/Vilnius" " " \ +"posix/Europe/Volgograd" " " \ +"posix/Europe/Warsaw" " " \ +"posix/Europe/Zagreb" " " \ +"posix/Europe/Zaporozhye" " " \ +"posix/Europe/Zurich" " " \ +"posix/Factory" " " \ +"posix/GB" " " \ +"posix/GB-Eire" " " \ +"posix/GMT" " " \ +"posix/GMT+0" " " \ +"posix/GMT-0" " " \ +"posix/GMT0" " " \ +"posix/Greenwich" " " \ +"posix/HST" " " \ +"posix/Hongkong" " " \ +"posix/Iceland" " " \ +"posix/Indian/Antananarivo" " " \ +"posix/Indian/Chagos" " " \ +"posix/Indian/Christmas" " " \ +"posix/Indian/Cocos" " " \ +"posix/Indian/Comoro" " " \ +"posix/Indian/Kerguelen" " " \ +"posix/Indian/Mahe" " " \ +"posix/Indian/Maldives" " " \ +"posix/Indian/Mauritius" " " \ +"posix/Indian/Mayotte" " " \ +"posix/Indian/Reunion" " " \ +"posix/Iran" " " \ +"posix/Israel" " " \ +"posix/Jamaica" " " \ +"posix/Japan" " " \ +"posix/Kwajalein" " " \ +"posix/Libya" " " \ +"posix/MET" " " \ +"posix/MST" " " \ +"posix/MST7MDT" " " \ +"posix/Mexico/BajaNorte" " " \ +"posix/Mexico/BajaSur" " " \ +"posix/Mexico/General" " " \ +"posix/Mideast/Riyadh87" " " \ +"posix/Mideast/Riyadh88" " " \ +"posix/Mideast/Riyadh89" " " \ +"posix/NZ" " " \ +"posix/NZ-CHAT" " " \ +"posix/Navajo" " " \ +"posix/PRC" " " \ +"posix/PST8PDT" " " \ +"posix/Pacific/Apia" " " \ +"posix/Pacific/Auckland" " " \ +"posix/Pacific/Chatham" " " \ +"posix/Pacific/Easter" " " \ +"posix/Pacific/Efate" " " \ +"posix/Pacific/Enderbury" " " \ +"posix/Pacific/Fakaofo" " " \ +"posix/Pacific/Fiji" " " \ +"posix/Pacific/Funafuti" " " \ +"posix/Pacific/Galapagos" " " \ +"posix/Pacific/Gambier" " " \ +"posix/Pacific/Guadalcanal" " " \ +"posix/Pacific/Guam" " " \ +"posix/Pacific/Honolulu" " " \ +"posix/Pacific/Johnston" " " \ +"posix/Pacific/Kiritimati" " " \ +"posix/Pacific/Kosrae" " " \ +"posix/Pacific/Kwajalein" " " \ +"posix/Pacific/Majuro" " " \ +"posix/Pacific/Marquesas" " " \ +"posix/Pacific/Midway" " " \ +"posix/Pacific/Nauru" " " \ +"posix/Pacific/Niue" " " \ +"posix/Pacific/Norfolk" " " \ +"posix/Pacific/Noumea" " " \ +"posix/Pacific/Pago_Pago" " " \ +"posix/Pacific/Palau" " " \ +"posix/Pacific/Pitcairn" " " \ +"posix/Pacific/Ponape" " " \ +"posix/Pacific/Port_Moresby" " " \ +"posix/Pacific/Rarotonga" " " \ +"posix/Pacific/Saipan" " " \ +"posix/Pacific/Samoa" " " \ +"posix/Pacific/Tahiti" " " \ +"posix/Pacific/Tarawa" " " \ +"posix/Pacific/Tongatapu" " " \ +"posix/Pacific/Truk" " " \ +"posix/Pacific/Wake" " " \ +"posix/Pacific/Wallis" " " \ +"posix/Pacific/Yap" " " \ +"posix/Poland" " " \ +"posix/Portugal" " " \ +"posix/ROC" " " \ +"posix/ROK" " " \ +"posix/Singapore" " " \ +"posix/Turkey" " " \ +"posix/UCT" " " \ +"posix/US/Alaska" " " \ +"posix/US/Aleutian" " " \ +"posix/US/Arizona" " " \ +"posix/US/Central" " " \ +"posix/US/East-Indiana" " " \ +"posix/US/Eastern" " " \ +"posix/US/Hawaii" " " \ +"posix/US/Indiana-Starke" " " \ +"posix/US/Michigan" " " \ +"posix/US/Mountain" " " \ +"posix/US/Pacific" " " \ +"posix/US/Samoa" " " \ +"posix/UTC" " " \ +"posix/Universal" " " \ +"posix/W-SU" " " \ +"posix/WET" " " \ +"posix/Zulu" " " \ +"posixrules" " " \ +"right/Africa/Abidjan" " " \ +"right/Africa/Accra" " " \ +"right/Africa/Addis_Ababa" " " \ +"right/Africa/Algiers" " " \ +"right/Africa/Asmara" " " \ +"right/Africa/Asmera" " " \ +"right/Africa/Bamako" " " \ +"right/Africa/Bangui" " " \ +"right/Africa/Banjul" " " \ +"right/Africa/Bissau" " " \ +"right/Africa/Blantyre" " " \ +"right/Africa/Brazzaville" " " \ +"right/Africa/Bujumbura" " " \ +"right/Africa/Cairo" " " \ +"right/Africa/Casablanca" " " \ +"right/Africa/Ceuta" " " \ +"right/Africa/Conakry" " " \ +"right/Africa/Dakar" " " \ +"right/Africa/Dar_es_Salaam" " " \ +"right/Africa/Djibouti" " " \ +"right/Africa/Douala" " " \ +"right/Africa/El_Aaiun" " " \ +"right/Africa/Freetown" " " \ +"right/Africa/Gaborone" " " \ +"right/Africa/Harare" " " \ +"right/Africa/Johannesburg" " " \ +"right/Africa/Kampala" " " \ +"right/Africa/Khartoum" " " \ +"right/Africa/Kigali" " " \ +"right/Africa/Kinshasa" " " \ +"right/Africa/Lagos" " " \ +"right/Africa/Libreville" " " \ +"right/Africa/Lome" " " \ +"right/Africa/Luanda" " " \ +"right/Africa/Lubumbashi" " " \ +"right/Africa/Lusaka" " " \ +"right/Africa/Malabo" " " \ +"right/Africa/Maputo" " " \ +"right/Africa/Maseru" " " \ +"right/Africa/Mbabane" " " \ +"right/Africa/Mogadishu" " " \ +"right/Africa/Monrovia" " " \ +"right/Africa/Nairobi" " " \ +"right/Africa/Ndjamena" " " \ +"right/Africa/Niamey" " " \ +"right/Africa/Nouakchott" " " \ +"right/Africa/Ouagadougou" " " \ +"right/Africa/Porto-Novo" " " \ +"right/Africa/Sao_Tome" " " \ +"right/Africa/Timbuktu" " " \ +"right/Africa/Tripoli" " " \ +"right/Africa/Tunis" " " \ +"right/Africa/Windhoek" " " \ +"right/America/Adak" " " \ +"right/America/Anchorage" " " \ +"right/America/Anguilla" " " \ +"right/America/Antigua" " " \ +"right/America/Araguaina" " " \ +"right/America/Argentina/Buenos_Aires" " " \ +"right/America/Argentina/Catamarca" " " \ +"right/America/Argentina/ComodRivadavia" " " \ +"right/America/Argentina/Cordoba" " " \ +"right/America/Argentina/Jujuy" " " \ +"right/America/Argentina/La_Rioja" " " \ +"right/America/Argentina/Mendoza" " " \ +"right/America/Argentina/Rio_Gallegos" " " \ +"right/America/Argentina/Salta" " " \ +"right/America/Argentina/San_Juan" " " \ +"right/America/Argentina/San_Luis" " " \ +"right/America/Argentina/Tucuman" " " \ +"right/America/Argentina/Ushuaia" " " \ +"right/America/Aruba" " " \ +"right/America/Asuncion" " " \ +"right/America/Atikokan" " " \ +"right/America/Atka" " " \ +"right/America/Bahia" " " \ +"right/America/Barbados" " " \ +"right/America/Belem" " " \ +"right/America/Belize" " " \ +"right/America/Blanc-Sablon" " " \ +"right/America/Boa_Vista" " " \ +"right/America/Bogota" " " \ +"right/America/Boise" " " \ +"right/America/Buenos_Aires" " " \ +"right/America/Cambridge_Bay" " " \ +"right/America/Campo_Grande" " " \ +"right/America/Cancun" " " \ +"right/America/Caracas" " " \ +"right/America/Catamarca" " " \ +"right/America/Cayenne" " " \ +"right/America/Cayman" " " \ +"right/America/Chicago" " " \ +"right/America/Chihuahua" " " \ +"right/America/Coral_Harbour" " " \ +"right/America/Cordoba" " " \ +"right/America/Costa_Rica" " " \ +"right/America/Cuiaba" " " \ +"right/America/Curacao" " " \ +"right/America/Danmarkshavn" " " \ +"right/America/Dawson" " " \ +"right/America/Dawson_Creek" " " \ +"right/America/Denver" " " \ +"right/America/Detroit" " " \ +"right/America/Dominica" " " \ +"right/America/Edmonton" " " \ +"right/America/Eirunepe" " " \ +"right/America/El_Salvador" " " \ +"right/America/Ensenada" " " \ +"right/America/Fort_Wayne" " " \ +"right/America/Fortaleza" " " \ +"right/America/Glace_Bay" " " \ +"right/America/Godthab" " " \ +"right/America/Goose_Bay" " " \ +"right/America/Grand_Turk" " " \ +"right/America/Grenada" " " \ +"right/America/Guadeloupe" " " \ +"right/America/Guatemala" " " \ +"right/America/Guayaquil" " " \ +"right/America/Guyana" " " \ +"right/America/Halifax" " " \ +"right/America/Havana" " " \ +"right/America/Hermosillo" " " \ +"right/America/Indiana/Indianapolis" " " \ +"right/America/Indiana/Knox" " " \ +"right/America/Indiana/Marengo" " " \ +"right/America/Indiana/Petersburg" " " \ +"right/America/Indiana/Tell_City" " " \ +"right/America/Indiana/Vevay" " " \ +"right/America/Indiana/Vincennes" " " \ +"right/America/Indiana/Winamac" " " \ +"right/America/Indianapolis" " " \ +"right/America/Inuvik" " " \ +"right/America/Iqaluit" " " \ +"right/America/Jamaica" " " \ +"right/America/Jujuy" " " \ +"right/America/Juneau" " " \ +"right/America/Kentucky/Louisville" " " \ +"right/America/Kentucky/Monticello" " " \ +"right/America/Knox_IN" " " \ +"right/America/La_Paz" " " \ +"right/America/Lima" " " \ +"right/America/Los_Angeles" " " \ +"right/America/Louisville" " " \ +"right/America/Maceio" " " \ +"right/America/Managua" " " \ +"right/America/Manaus" " " \ +"right/America/Marigot" " " \ +"right/America/Martinique" " " \ +"right/America/Mazatlan" " " \ +"right/America/Mendoza" " " \ +"right/America/Menominee" " " \ +"right/America/Merida" " " \ +"right/America/Mexico_City" " " \ +"right/America/Miquelon" " " \ +"right/America/Moncton" " " \ +"right/America/Monterrey" " " \ +"right/America/Montevideo" " " \ +"right/America/Montreal" " " \ +"right/America/Montserrat" " " \ +"right/America/Nassau" " " \ +"right/America/New_York" " " \ +"right/America/Nipigon" " " \ +"right/America/Nome" " " \ +"right/America/Noronha" " " \ +"right/America/North_Dakota/Center" " " \ +"right/America/North_Dakota/New_Salem" " " \ +"right/America/Panama" " " \ +"right/America/Pangnirtung" " " \ +"right/America/Paramaribo" " " \ +"right/America/Phoenix" " " \ +"right/America/Port-au-Prince" " " \ +"right/America/Port_of_Spain" " " \ +"right/America/Porto_Acre" " " \ +"right/America/Porto_Velho" " " \ +"right/America/Puerto_Rico" " " \ +"right/America/Rainy_River" " " \ +"right/America/Rankin_Inlet" " " \ +"right/America/Recife" " " \ +"right/America/Regina" " " \ +"right/America/Resolute" " " \ +"right/America/Rio_Branco" " " \ +"right/America/Rosario" " " \ +"right/America/Santarem" " " \ +"right/America/Santiago" " " \ +"right/America/Santo_Domingo" " " \ +"right/America/Sao_Paulo" " " \ +"right/America/Scoresbysund" " " \ +"right/America/Shiprock" " " \ +"right/America/St_Barthelemy" " " \ +"right/America/St_Johns" " " \ +"right/America/St_Kitts" " " \ +"right/America/St_Lucia" " " \ +"right/America/St_Thomas" " " \ +"right/America/St_Vincent" " " \ +"right/America/Swift_Current" " " \ +"right/America/Tegucigalpa" " " \ +"right/America/Thule" " " \ +"right/America/Thunder_Bay" " " \ +"right/America/Tijuana" " " \ +"right/America/Toronto" " " \ +"right/America/Tortola" " " \ +"right/America/Vancouver" " " \ +"right/America/Virgin" " " \ +"right/America/Whitehorse" " " \ +"right/America/Winnipeg" " " \ +"right/America/Yakutat" " " \ +"right/America/Yellowknife" " " \ +"right/Antarctica/Casey" " " \ +"right/Antarctica/Davis" " " \ +"right/Antarctica/DumontDUrville" " " \ +"right/Antarctica/Mawson" " " \ +"right/Antarctica/McMurdo" " " \ +"right/Antarctica/Palmer" " " \ +"right/Antarctica/Rothera" " " \ +"right/Antarctica/South_Pole" " " \ +"right/Antarctica/Syowa" " " \ +"right/Antarctica/Vostok" " " \ +"right/Arctic/Longyearbyen" " " \ +"right/Asia/Aden" " " \ +"right/Asia/Almaty" " " \ +"right/Asia/Amman" " " \ +"right/Asia/Anadyr" " " \ +"right/Asia/Aqtau" " " \ +"right/Asia/Aqtobe" " " \ +"right/Asia/Ashgabat" " " \ +"right/Asia/Ashkhabad" " " \ +"right/Asia/Baghdad" " " \ +"right/Asia/Bahrain" " " \ +"right/Asia/Baku" " " \ +"right/Asia/Bangkok" " " \ +"right/Asia/Beirut" " " \ +"right/Asia/Bishkek" " " \ +"right/Asia/Brunei" " " \ +"right/Asia/Calcutta" " " \ +"right/Asia/Choibalsan" " " \ +"right/Asia/Chongqing" " " \ +"right/Asia/Chungking" " " \ +"right/Asia/Colombo" " " \ +"right/Asia/Dacca" " " \ +"right/Asia/Damascus" " " \ +"right/Asia/Dhaka" " " \ +"right/Asia/Dili" " " \ +"right/Asia/Dubai" " " \ +"right/Asia/Dushanbe" " " \ +"right/Asia/Gaza" " " \ +"right/Asia/Harbin" " " \ +"right/Asia/Ho_Chi_Minh" " " \ +"right/Asia/Hong_Kong" " " \ +"right/Asia/Hovd" " " \ +"right/Asia/Irkutsk" " " \ +"right/Asia/Istanbul" " " \ +"right/Asia/Jakarta" " " \ +"right/Asia/Jayapura" " " \ +"right/Asia/Jerusalem" " " \ +"right/Asia/Kabul" " " \ +"right/Asia/Kamchatka" " " \ +"right/Asia/Karachi" " " \ +"right/Asia/Kashgar" " " \ +"right/Asia/Kathmandu" " " \ +"right/Asia/Katmandu" " " \ +"right/Asia/Kolkata" " " \ +"right/Asia/Krasnoyarsk" " " \ +"right/Asia/Kuala_Lumpur" " " \ +"right/Asia/Kuching" " " \ +"right/Asia/Kuwait" " " \ +"right/Asia/Macao" " " \ +"right/Asia/Macau" " " \ +"right/Asia/Magadan" " " \ +"right/Asia/Makassar" " " \ +"right/Asia/Manila" " " \ +"right/Asia/Muscat" " " \ +"right/Asia/Nicosia" " " \ +"right/Asia/Novosibirsk" " " \ +"right/Asia/Omsk" " " \ +"right/Asia/Oral" " " \ +"right/Asia/Phnom_Penh" " " \ +"right/Asia/Pontianak" " " \ +"right/Asia/Pyongyang" " " \ +"right/Asia/Qatar" " " \ +"right/Asia/Qyzylorda" " " \ +"right/Asia/Rangoon" " " \ +"right/Asia/Riyadh" " " \ +"right/Asia/Riyadh87" " " \ +"right/Asia/Riyadh88" " " \ +"right/Asia/Riyadh89" " " \ +"right/Asia/Saigon" " " \ +"right/Asia/Sakhalin" " " \ +"right/Asia/Samarkand" " " \ +"right/Asia/Seoul" " " \ +"right/Asia/Shanghai" " " \ +"right/Asia/Singapore" " " \ +"right/Asia/Taipei" " " \ +"right/Asia/Tashkent" " " \ +"right/Asia/Tbilisi" " " \ +"right/Asia/Tehran" " " \ +"right/Asia/Tel_Aviv" " " \ +"right/Asia/Thimbu" " " \ +"right/Asia/Thimphu" " " \ +"right/Asia/Tokyo" " " \ +"right/Asia/Ujung_Pandang" " " \ +"right/Asia/Ulaanbaatar" " " \ +"right/Asia/Ulan_Bator" " " \ +"right/Asia/Urumqi" " " \ +"right/Asia/Vientiane" " " \ +"right/Asia/Vladivostok" " " \ +"right/Asia/Yakutsk" " " \ +"right/Asia/Yekaterinburg" " " \ +"right/Asia/Yerevan" " " \ +"right/Atlantic/Azores" " " \ +"right/Atlantic/Bermuda" " " \ +"right/Atlantic/Canary" " " \ +"right/Atlantic/Cape_Verde" " " \ +"right/Atlantic/Faeroe" " " \ +"right/Atlantic/Faroe" " " \ +"right/Atlantic/Jan_Mayen" " " \ +"right/Atlantic/Madeira" " " \ +"right/Atlantic/Reykjavik" " " \ +"right/Atlantic/South_Georgia" " " \ +"right/Atlantic/St_Helena" " " \ +"right/Atlantic/Stanley" " " \ +"right/Australia/ACT" " " \ +"right/Australia/Adelaide" " " \ +"right/Australia/Brisbane" " " \ +"right/Australia/Broken_Hill" " " \ +"right/Australia/Canberra" " " \ +"right/Australia/Currie" " " \ +"right/Australia/Darwin" " " \ +"right/Australia/Eucla" " " \ +"right/Australia/Hobart" " " \ +"right/Australia/LHI" " " \ +"right/Australia/Lindeman" " " \ +"right/Australia/Lord_Howe" " " \ +"right/Australia/Melbourne" " " \ +"right/Australia/NSW" " " \ +"right/Australia/North" " " \ +"right/Australia/Perth" " " \ +"right/Australia/Queensland" " " \ +"right/Australia/South" " " \ +"right/Australia/Sydney" " " \ +"right/Australia/Tasmania" " " \ +"right/Australia/Victoria" " " \ +"right/Australia/West" " " \ +"right/Australia/Yancowinna" " " \ +"right/Brazil/Acre" " " \ +"right/Brazil/DeNoronha" " " \ +"right/Brazil/East" " " \ +"right/Brazil/West" " " \ +"right/CET" " " \ +"right/CST6CDT" " " \ +"right/Canada/Atlantic" " " \ +"right/Canada/Central" " " \ +"right/Canada/East-Saskatchewan" " " \ +"right/Canada/Eastern" " " \ +"right/Canada/Mountain" " " \ +"right/Canada/Newfoundland" " " \ +"right/Canada/Pacific" " " \ +"right/Canada/Saskatchewan" " " \ +"right/Canada/Yukon" " " \ +"right/Chile/Continental" " " \ +"right/Chile/EasterIsland" " " \ +"right/Cuba" " " \ +"right/EET" " " \ +"right/EST" " " \ +"right/EST5EDT" " " \ +"right/Egypt" " " \ +"right/Eire" " " \ +"right/Etc/GMT" " " \ +"right/Etc/GMT+0" " " \ +"right/Etc/GMT+1" " " \ +"right/Etc/GMT+10" " " \ +"right/Etc/GMT+11" " " \ +"right/Etc/GMT+12" " " \ +"right/Etc/GMT+2" " " \ +"right/Etc/GMT+3" " " \ +"right/Etc/GMT+4" " " \ +"right/Etc/GMT+5" " " \ +"right/Etc/GMT+6" " " \ +"right/Etc/GMT+7" " " \ +"right/Etc/GMT+8" " " \ +"right/Etc/GMT+9" " " \ +"right/Etc/GMT-0" " " \ +"right/Etc/GMT-1" " " \ +"right/Etc/GMT-10" " " \ +"right/Etc/GMT-11" " " \ +"right/Etc/GMT-12" " " \ +"right/Etc/GMT-13" " " \ +"right/Etc/GMT-14" " " \ +"right/Etc/GMT-2" " " \ +"right/Etc/GMT-3" " " \ +"right/Etc/GMT-4" " " \ +"right/Etc/GMT-5" " " \ +"right/Etc/GMT-6" " " \ +"right/Etc/GMT-7" " " \ +"right/Etc/GMT-8" " " \ +"right/Etc/GMT-9" " " \ +"right/Etc/GMT0" " " \ +"right/Etc/Greenwich" " " \ +"right/Etc/UCT" " " \ +"right/Etc/UTC" " " \ +"right/Etc/Universal" " " \ +"right/Etc/Zulu" " " \ +"right/Europe/Amsterdam" " " \ +"right/Europe/Andorra" " " \ +"right/Europe/Athens" " " \ +"right/Europe/Belfast" " " \ +"right/Europe/Belgrade" " " \ +"right/Europe/Berlin" " " \ +"right/Europe/Bratislava" " " \ +"right/Europe/Brussels" " " \ +"right/Europe/Bucharest" " " \ +"right/Europe/Budapest" " " \ +"right/Europe/Chisinau" " " \ +"right/Europe/Copenhagen" " " \ +"right/Europe/Dublin" " " \ +"right/Europe/Gibraltar" " " \ +"right/Europe/Guernsey" " " \ +"right/Europe/Helsinki" " " \ +"right/Europe/Isle_of_Man" " " \ +"right/Europe/Istanbul" " " \ +"right/Europe/Jersey" " " \ +"right/Europe/Kaliningrad" " " \ +"right/Europe/Kiev" " " \ +"right/Europe/Lisbon" " " \ +"right/Europe/Ljubljana" " " \ +"right/Europe/London" " " \ +"right/Europe/Luxembourg" " " \ +"right/Europe/Madrid" " " \ +"right/Europe/Malta" " " \ +"right/Europe/Mariehamn" " " \ +"right/Europe/Minsk" " " \ +"right/Europe/Monaco" " " \ +"right/Europe/Moscow" " " \ +"right/Europe/Nicosia" " " \ +"right/Europe/Oslo" " " \ +"right/Europe/Paris" " " \ +"right/Europe/Podgorica" " " \ +"right/Europe/Prague" " " \ +"right/Europe/Riga" " " \ +"right/Europe/Rome" " " \ +"right/Europe/Samara" " " \ +"right/Europe/San_Marino" " " \ +"right/Europe/Sarajevo" " " \ +"right/Europe/Simferopol" " " \ +"right/Europe/Skopje" " " \ +"right/Europe/Sofia" " " \ +"right/Europe/Stockholm" " " \ +"right/Europe/Tallinn" " " \ +"right/Europe/Tirane" " " \ +"right/Europe/Tiraspol" " " \ +"right/Europe/Uzhgorod" " " \ +"right/Europe/Vaduz" " " \ +"right/Europe/Vatican" " " \ +"right/Europe/Vienna" " " \ +"right/Europe/Vilnius" " " \ +"right/Europe/Volgograd" " " \ +"right/Europe/Warsaw" " " \ +"right/Europe/Zagreb" " " \ +"right/Europe/Zaporozhye" " " \ +"right/Europe/Zurich" " " \ +"right/Factory" " " \ +"right/GB" " " \ +"right/GB-Eire" " " \ +"right/GMT" " " \ +"right/GMT+0" " " \ +"right/GMT-0" " " \ +"right/GMT0" " " \ +"right/Greenwich" " " \ +"right/HST" " " \ +"right/Hongkong" " " \ +"right/Iceland" " " \ +"right/Indian/Antananarivo" " " \ +"right/Indian/Chagos" " " \ +"right/Indian/Christmas" " " \ +"right/Indian/Cocos" " " \ +"right/Indian/Comoro" " " \ +"right/Indian/Kerguelen" " " \ +"right/Indian/Mahe" " " \ +"right/Indian/Maldives" " " \ +"right/Indian/Mauritius" " " \ +"right/Indian/Mayotte" " " \ +"right/Indian/Reunion" " " \ +"right/Iran" " " \ +"right/Israel" " " \ +"right/Jamaica" " " \ +"right/Japan" " " \ +"right/Kwajalein" " " \ +"right/Libya" " " \ +"right/MET" " " \ +"right/MST" " " \ +"right/MST7MDT" " " \ +"right/Mexico/BajaNorte" " " \ +"right/Mexico/BajaSur" " " \ +"right/Mexico/General" " " \ +"right/Mideast/Riyadh87" " " \ +"right/Mideast/Riyadh88" " " \ +"right/Mideast/Riyadh89" " " \ +"right/NZ" " " \ +"right/NZ-CHAT" " " \ +"right/Navajo" " " \ +"right/PRC" " " \ +"right/PST8PDT" " " \ +"right/Pacific/Apia" " " \ +"right/Pacific/Auckland" " " \ +"right/Pacific/Chatham" " " \ +"right/Pacific/Easter" " " \ +"right/Pacific/Efate" " " \ +"right/Pacific/Enderbury" " " \ +"right/Pacific/Fakaofo" " " \ +"right/Pacific/Fiji" " " \ +"right/Pacific/Funafuti" " " \ +"right/Pacific/Galapagos" " " \ +"right/Pacific/Gambier" " " \ +"right/Pacific/Guadalcanal" " " \ +"right/Pacific/Guam" " " \ +"right/Pacific/Honolulu" " " \ +"right/Pacific/Johnston" " " \ +"right/Pacific/Kiritimati" " " \ +"right/Pacific/Kosrae" " " \ +"right/Pacific/Kwajalein" " " \ +"right/Pacific/Majuro" " " \ +"right/Pacific/Marquesas" " " \ +"right/Pacific/Midway" " " \ +"right/Pacific/Nauru" " " \ +"right/Pacific/Niue" " " \ +"right/Pacific/Norfolk" " " \ +"right/Pacific/Noumea" " " \ +"right/Pacific/Pago_Pago" " " \ +"right/Pacific/Palau" " " \ +"right/Pacific/Pitcairn" " " \ +"right/Pacific/Ponape" " " \ +"right/Pacific/Port_Moresby" " " \ +"right/Pacific/Rarotonga" " " \ +"right/Pacific/Saipan" " " \ +"right/Pacific/Samoa" " " \ +"right/Pacific/Tahiti" " " \ +"right/Pacific/Tarawa" " " \ +"right/Pacific/Tongatapu" " " \ +"right/Pacific/Truk" " " \ +"right/Pacific/Wake" " " \ +"right/Pacific/Wallis" " " \ +"right/Pacific/Yap" " " \ +"right/Poland" " " \ +"right/Portugal" " " \ +"right/ROC" " " \ +"right/ROK" " " \ +"right/Singapore" " " \ +"right/Turkey" " " \ +"right/UCT" " " \ +"right/US/Alaska" " " \ +"right/US/Aleutian" " " \ +"right/US/Arizona" " " \ +"right/US/Central" " " \ +"right/US/East-Indiana" " " \ +"right/US/Eastern" " " \ +"right/US/Hawaii" " " \ +"right/US/Indiana-Starke" " " \ +"right/US/Michigan" " " \ +"right/US/Mountain" " " \ +"right/US/Pacific" " " \ +"right/US/Samoa" " " \ +"right/UTC" " " \ +"right/Universal" " " \ +"right/W-SU" " " \ +"right/WET" " " \ +"right/Zulu" " " \ + 2> $TMP/tz + + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/tz + exit + fi + + TIMEZONE="`cat $TMP/tz`" + rm -f $TMP/tz + + setzone $TIMEZONE + exit +else + ### + ### use text prompts + ### + while [ 0 ]; do + echo -n "Would you like to configure your timezone ([y]es, [n]o)? " + read TIMECONF; + echo + + if [ "$TIMECONF" = "n" ]; then + break + fi + + cat << EOF +Select one of these timezones: + +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/East-Indiana +US/Eastern +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Samoa +Africa/Abidjan +Africa/Accra +Africa/Addis_Ababa +Africa/Algiers +Africa/Asmara +Africa/Asmera +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Bissau +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/El_Aaiun +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Johannesburg +Africa/Kampala +Africa/Khartoum +Africa/Kigali +Africa/Kinshasa +Africa/Lagos +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maputo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +Africa/Sao_Tome +Africa/Timbuktu +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Anguilla +America/Antigua +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/ComodRivadavia +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/Salta +America/Argentina/San_Juan +America/Argentina/San_Luis +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Aruba +America/Asuncion +America/Atikokan +America/Atka +America/Bahia +America/Barbados +America/Belem +America/Belize +America/Blanc-Sablon +America/Boa_Vista +America/Bogota +America/Boise +America/Buenos_Aires +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Catamarca +America/Cayenne +America/Cayman +America/Chicago +America/Chihuahua +America/Coral_Harbour +America/Cordoba +America/Costa_Rica +America/Cuiaba +America/Curacao +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Dominica +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Ensenada +America/Fort_Wayne +America/Fortaleza +America/Glace_Bay +America/Godthab +America/Goose_Bay +America/Grand_Turk +America/Grenada +America/Guadeloupe +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indiana/Winamac +America/Indianapolis +America/Inuvik +America/Iqaluit +America/Jamaica +America/Jujuy +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/Knox_IN +America/La_Paz +America/Lima +America/Los_Angeles +America/Louisville +America/Maceio +America/Managua +America/Manaus +America/Marigot +America/Martinique +America/Mazatlan +America/Mendoza +America/Menominee +America/Merida +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/Montreal +America/Montserrat +America/Nassau +America/New_York +America/Nipigon +America/Nome +America/Noronha +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Panama +America/Pangnirtung +America/Paramaribo +America/Phoenix +America/Port-au-Prince +America/Port_of_Spain +America/Porto_Acre +America/Porto_Velho +America/Puerto_Rico +America/Rainy_River +America/Rankin_Inlet +America/Recife +America/Regina +America/Resolute +America/Rio_Branco +America/Rosario +America/Santarem +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Shiprock +America/St_Barthelemy +America/St_Johns +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Thunder_Bay +America/Tijuana +America/Toronto +America/Tortola +America/Vancouver +America/Virgin +America/Whitehorse +America/Winnipeg +America/Yakutat +America/Yellowknife +Antarctica/Casey +Antarctica/Davis +Antarctica/DumontDUrville +Antarctica/Mawson +Antarctica/McMurdo +Antarctica/Palmer +Antarctica/Rothera +Antarctica/South_Pole +Antarctica/Syowa +Antarctica/Vostok +Arctic/Longyearbyen +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Ashkhabad +Asia/Baghdad +Asia/Bahrain +Asia/Baku +Asia/Bangkok +Asia/Beirut +Asia/Bishkek +Asia/Brunei +Asia/Calcutta +Asia/Choibalsan +Asia/Chongqing +Asia/Chungking +Asia/Colombo +Asia/Dacca +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Gaza +Asia/Harbin +Asia/Ho_Chi_Minh +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Istanbul +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kashgar +Asia/Kathmandu +Asia/Katmandu +Asia/Kolkata +Asia/Krasnoyarsk +Asia/Kuala_Lumpur +Asia/Kuching +Asia/Kuwait +Asia/Macao +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Muscat +Asia/Nicosia +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Phnom_Penh +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qyzylorda +Asia/Rangoon +Asia/Riyadh +Asia/Riyadh87 +Asia/Riyadh88 +Asia/Riyadh89 +Asia/Saigon +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Tel_Aviv +Asia/Thimbu +Asia/Thimphu +Asia/Tokyo +Asia/Ujung_Pandang +Asia/Ulaanbaatar +Asia/Ulan_Bator +Asia/Urumqi +Asia/Vientiane +Asia/Vladivostok +Asia/Yakutsk +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faeroe +Atlantic/Faroe +Atlantic/Jan_Mayen +Atlantic/Madeira +Atlantic/Reykjavik +Atlantic/South_Georgia +Atlantic/St_Helena +Atlantic/Stanley +Australia/ACT +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Canberra +Australia/Currie +Australia/Darwin +Australia/Eucla +Australia/Hobart +Australia/LHI +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/NSW +Australia/North +Australia/Perth +Australia/Queensland +Australia/South +Australia/Sydney +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +CET +CST6CDT +Canada/Atlantic +Canada/Central +Canada/East-Saskatchewan +Canada/Eastern +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +Chile/Continental +Chile/EasterIsland +Cuba +EET +EST +EST5EDT +Egypt +Eire +Etc/GMT +Etc/GMT+0 +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT-0 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/GMT0 +Etc/Greenwich +Etc/UCT +Etc/UTC +Etc/Universal +Etc/Zulu +Europe/Amsterdam +Europe/Andorra +Europe/Athens +Europe/Belfast +Europe/Belgrade +Europe/Berlin +Europe/Bratislava +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Chisinau +Europe/Copenhagen +Europe/Dublin +Europe/Gibraltar +Europe/Guernsey +Europe/Helsinki +Europe/Isle_of_Man +Europe/Istanbul +Europe/Jersey +Europe/Kaliningrad +Europe/Kiev +Europe/Lisbon +Europe/Ljubljana +Europe/London +Europe/Luxembourg +Europe/Madrid +Europe/Malta +Europe/Mariehamn +Europe/Minsk +Europe/Monaco +Europe/Moscow +Europe/Nicosia +Europe/Oslo +Europe/Paris +Europe/Podgorica +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/San_Marino +Europe/Sarajevo +Europe/Simferopol +Europe/Skopje +Europe/Sofia +Europe/Stockholm +Europe/Tallinn +Europe/Tirane +Europe/Tiraspol +Europe/Uzhgorod +Europe/Vaduz +Europe/Vatican +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zagreb +Europe/Zaporozhye +Europe/Zurich +Factory +GB +GB-Eire +GMT +GMT+0 +GMT-0 +GMT0 +Greenwich +HST +Hongkong +Iceland +Indian/Antananarivo +Indian/Chagos +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Maldives +Indian/Mauritius +Indian/Mayotte +Indian/Reunion +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +MST +MST7MDT +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +Mideast/Riyadh87 +Mideast/Riyadh88 +Mideast/Riyadh89 +NZ +NZ-CHAT +Navajo +PRC +PST8PDT +Pacific/Apia +Pacific/Auckland +Pacific/Chatham +Pacific/Easter +Pacific/Efate +Pacific/Enderbury +Pacific/Fakaofo +Pacific/Fiji +Pacific/Funafuti +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Johnston +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Majuro +Pacific/Marquesas +Pacific/Midway +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Ponape +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Saipan +Pacific/Samoa +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +Pacific/Truk +Pacific/Wake +Pacific/Wallis +Pacific/Yap +Poland +Portugal +ROC +ROK +Singapore +Turkey +UCT +UTC +Universal +W-SU +WET +Zulu +posix/Africa/Abidjan +posix/Africa/Accra +posix/Africa/Addis_Ababa +posix/Africa/Algiers +posix/Africa/Asmara +posix/Africa/Asmera +posix/Africa/Bamako +posix/Africa/Bangui +posix/Africa/Banjul +posix/Africa/Bissau +posix/Africa/Blantyre +posix/Africa/Brazzaville +posix/Africa/Bujumbura +posix/Africa/Cairo +posix/Africa/Casablanca +posix/Africa/Ceuta +posix/Africa/Conakry +posix/Africa/Dakar +posix/Africa/Dar_es_Salaam +posix/Africa/Djibouti +posix/Africa/Douala +posix/Africa/El_Aaiun +posix/Africa/Freetown +posix/Africa/Gaborone +posix/Africa/Harare +posix/Africa/Johannesburg +posix/Africa/Kampala +posix/Africa/Khartoum +posix/Africa/Kigali +posix/Africa/Kinshasa +posix/Africa/Lagos +posix/Africa/Libreville +posix/Africa/Lome +posix/Africa/Luanda +posix/Africa/Lubumbashi +posix/Africa/Lusaka +posix/Africa/Malabo +posix/Africa/Maputo +posix/Africa/Maseru +posix/Africa/Mbabane +posix/Africa/Mogadishu +posix/Africa/Monrovia +posix/Africa/Nairobi +posix/Africa/Ndjamena +posix/Africa/Niamey +posix/Africa/Nouakchott +posix/Africa/Ouagadougou +posix/Africa/Porto-Novo +posix/Africa/Sao_Tome +posix/Africa/Timbuktu +posix/Africa/Tripoli +posix/Africa/Tunis +posix/Africa/Windhoek +posix/America/Adak +posix/America/Anchorage +posix/America/Anguilla +posix/America/Antigua +posix/America/Araguaina +posix/America/Argentina/Buenos_Aires +posix/America/Argentina/Catamarca +posix/America/Argentina/ComodRivadavia +posix/America/Argentina/Cordoba +posix/America/Argentina/Jujuy +posix/America/Argentina/La_Rioja +posix/America/Argentina/Mendoza +posix/America/Argentina/Rio_Gallegos +posix/America/Argentina/Salta +posix/America/Argentina/San_Juan +posix/America/Argentina/San_Luis +posix/America/Argentina/Tucuman +posix/America/Argentina/Ushuaia +posix/America/Aruba +posix/America/Asuncion +posix/America/Atikokan +posix/America/Atka +posix/America/Bahia +posix/America/Barbados +posix/America/Belem +posix/America/Belize +posix/America/Blanc-Sablon +posix/America/Boa_Vista +posix/America/Bogota +posix/America/Boise +posix/America/Buenos_Aires +posix/America/Cambridge_Bay +posix/America/Campo_Grande +posix/America/Cancun +posix/America/Caracas +posix/America/Catamarca +posix/America/Cayenne +posix/America/Cayman +posix/America/Chicago +posix/America/Chihuahua +posix/America/Coral_Harbour +posix/America/Cordoba +posix/America/Costa_Rica +posix/America/Cuiaba +posix/America/Curacao +posix/America/Danmarkshavn +posix/America/Dawson +posix/America/Dawson_Creek +posix/America/Denver +posix/America/Detroit +posix/America/Dominica +posix/America/Edmonton +posix/America/Eirunepe +posix/America/El_Salvador +posix/America/Ensenada +posix/America/Fort_Wayne +posix/America/Fortaleza +posix/America/Glace_Bay +posix/America/Godthab +posix/America/Goose_Bay +posix/America/Grand_Turk +posix/America/Grenada +posix/America/Guadeloupe +posix/America/Guatemala +posix/America/Guayaquil +posix/America/Guyana +posix/America/Halifax +posix/America/Havana +posix/America/Hermosillo +posix/America/Indiana/Indianapolis +posix/America/Indiana/Knox +posix/America/Indiana/Marengo +posix/America/Indiana/Petersburg +posix/America/Indiana/Tell_City +posix/America/Indiana/Vevay +posix/America/Indiana/Vincennes +posix/America/Indiana/Winamac +posix/America/Indianapolis +posix/America/Inuvik +posix/America/Iqaluit +posix/America/Jamaica +posix/America/Jujuy +posix/America/Juneau +posix/America/Kentucky/Louisville +posix/America/Kentucky/Monticello +posix/America/Knox_IN +posix/America/La_Paz +posix/America/Lima +posix/America/Los_Angeles +posix/America/Louisville +posix/America/Maceio +posix/America/Managua +posix/America/Manaus +posix/America/Marigot +posix/America/Martinique +posix/America/Mazatlan +posix/America/Mendoza +posix/America/Menominee +posix/America/Merida +posix/America/Mexico_City +posix/America/Miquelon +posix/America/Moncton +posix/America/Monterrey +posix/America/Montevideo +posix/America/Montreal +posix/America/Montserrat +posix/America/Nassau +posix/America/New_York +posix/America/Nipigon +posix/America/Nome +posix/America/Noronha +posix/America/North_Dakota/Center +posix/America/North_Dakota/New_Salem +posix/America/Panama +posix/America/Pangnirtung +posix/America/Paramaribo +posix/America/Phoenix +posix/America/Port-au-Prince +posix/America/Port_of_Spain +posix/America/Porto_Acre +posix/America/Porto_Velho +posix/America/Puerto_Rico +posix/America/Rainy_River +posix/America/Rankin_Inlet +posix/America/Recife +posix/America/Regina +posix/America/Resolute +posix/America/Rio_Branco +posix/America/Rosario +posix/America/Santarem +posix/America/Santiago +posix/America/Santo_Domingo +posix/America/Sao_Paulo +posix/America/Scoresbysund +posix/America/Shiprock +posix/America/St_Barthelemy +posix/America/St_Johns +posix/America/St_Kitts +posix/America/St_Lucia +posix/America/St_Thomas +posix/America/St_Vincent +posix/America/Swift_Current +posix/America/Tegucigalpa +posix/America/Thule +posix/America/Thunder_Bay +posix/America/Tijuana +posix/America/Toronto +posix/America/Tortola +posix/America/Vancouver +posix/America/Virgin +posix/America/Whitehorse +posix/America/Winnipeg +posix/America/Yakutat +posix/America/Yellowknife +posix/Antarctica/Casey +posix/Antarctica/Davis +posix/Antarctica/DumontDUrville +posix/Antarctica/Mawson +posix/Antarctica/McMurdo +posix/Antarctica/Palmer +posix/Antarctica/Rothera +posix/Antarctica/South_Pole +posix/Antarctica/Syowa +posix/Antarctica/Vostok +posix/Arctic/Longyearbyen +posix/Asia/Aden +posix/Asia/Almaty +posix/Asia/Amman +posix/Asia/Anadyr +posix/Asia/Aqtau +posix/Asia/Aqtobe +posix/Asia/Ashgabat +posix/Asia/Ashkhabad +posix/Asia/Baghdad +posix/Asia/Bahrain +posix/Asia/Baku +posix/Asia/Bangkok +posix/Asia/Beirut +posix/Asia/Bishkek +posix/Asia/Brunei +posix/Asia/Calcutta +posix/Asia/Choibalsan +posix/Asia/Chongqing +posix/Asia/Chungking +posix/Asia/Colombo +posix/Asia/Dacca +posix/Asia/Damascus +posix/Asia/Dhaka +posix/Asia/Dili +posix/Asia/Dubai +posix/Asia/Dushanbe +posix/Asia/Gaza +posix/Asia/Harbin +posix/Asia/Ho_Chi_Minh +posix/Asia/Hong_Kong +posix/Asia/Hovd +posix/Asia/Irkutsk +posix/Asia/Istanbul +posix/Asia/Jakarta +posix/Asia/Jayapura +posix/Asia/Jerusalem +posix/Asia/Kabul +posix/Asia/Kamchatka +posix/Asia/Karachi +posix/Asia/Kashgar +posix/Asia/Kathmandu +posix/Asia/Katmandu +posix/Asia/Kolkata +posix/Asia/Krasnoyarsk +posix/Asia/Kuala_Lumpur +posix/Asia/Kuching +posix/Asia/Kuwait +posix/Asia/Macao +posix/Asia/Macau +posix/Asia/Magadan +posix/Asia/Makassar +posix/Asia/Manila +posix/Asia/Muscat +posix/Asia/Nicosia +posix/Asia/Novosibirsk +posix/Asia/Omsk +posix/Asia/Oral +posix/Asia/Phnom_Penh +posix/Asia/Pontianak +posix/Asia/Pyongyang +posix/Asia/Qatar +posix/Asia/Qyzylorda +posix/Asia/Rangoon +posix/Asia/Riyadh +posix/Asia/Riyadh87 +posix/Asia/Riyadh88 +posix/Asia/Riyadh89 +posix/Asia/Saigon +posix/Asia/Sakhalin +posix/Asia/Samarkand +posix/Asia/Seoul +posix/Asia/Shanghai +posix/Asia/Singapore +posix/Asia/Taipei +posix/Asia/Tashkent +posix/Asia/Tbilisi +posix/Asia/Tehran +posix/Asia/Tel_Aviv +posix/Asia/Thimbu +posix/Asia/Thimphu +posix/Asia/Tokyo +posix/Asia/Ujung_Pandang +posix/Asia/Ulaanbaatar +posix/Asia/Ulan_Bator +posix/Asia/Urumqi +posix/Asia/Vientiane +posix/Asia/Vladivostok +posix/Asia/Yakutsk +posix/Asia/Yekaterinburg +posix/Asia/Yerevan +posix/Atlantic/Azores +posix/Atlantic/Bermuda +posix/Atlantic/Canary +posix/Atlantic/Cape_Verde +posix/Atlantic/Faeroe +posix/Atlantic/Faroe +posix/Atlantic/Jan_Mayen +posix/Atlantic/Madeira +posix/Atlantic/Reykjavik +posix/Atlantic/South_Georgia +posix/Atlantic/St_Helena +posix/Atlantic/Stanley +posix/Australia/ACT +posix/Australia/Adelaide +posix/Australia/Brisbane +posix/Australia/Broken_Hill +posix/Australia/Canberra +posix/Australia/Currie +posix/Australia/Darwin +posix/Australia/Eucla +posix/Australia/Hobart +posix/Australia/LHI +posix/Australia/Lindeman +posix/Australia/Lord_Howe +posix/Australia/Melbourne +posix/Australia/NSW +posix/Australia/North +posix/Australia/Perth +posix/Australia/Queensland +posix/Australia/South +posix/Australia/Sydney +posix/Australia/Tasmania +posix/Australia/Victoria +posix/Australia/West +posix/Australia/Yancowinna +posix/Brazil/Acre +posix/Brazil/DeNoronha +posix/Brazil/East +posix/Brazil/West +posix/CET +posix/CST6CDT +posix/Canada/Atlantic +posix/Canada/Central +posix/Canada/East-Saskatchewan +posix/Canada/Eastern +posix/Canada/Mountain +posix/Canada/Newfoundland +posix/Canada/Pacific +posix/Canada/Saskatchewan +posix/Canada/Yukon +posix/Chile/Continental +posix/Chile/EasterIsland +posix/Cuba +posix/EET +posix/EST +posix/EST5EDT +posix/Egypt +posix/Eire +posix/Etc/GMT +posix/Etc/GMT+0 +posix/Etc/GMT+1 +posix/Etc/GMT+10 +posix/Etc/GMT+11 +posix/Etc/GMT+12 +posix/Etc/GMT+2 +posix/Etc/GMT+3 +posix/Etc/GMT+4 +posix/Etc/GMT+5 +posix/Etc/GMT+6 +posix/Etc/GMT+7 +posix/Etc/GMT+8 +posix/Etc/GMT+9 +posix/Etc/GMT-0 +posix/Etc/GMT-1 +posix/Etc/GMT-10 +posix/Etc/GMT-11 +posix/Etc/GMT-12 +posix/Etc/GMT-13 +posix/Etc/GMT-14 +posix/Etc/GMT-2 +posix/Etc/GMT-3 +posix/Etc/GMT-4 +posix/Etc/GMT-5 +posix/Etc/GMT-6 +posix/Etc/GMT-7 +posix/Etc/GMT-8 +posix/Etc/GMT-9 +posix/Etc/GMT0 +posix/Etc/Greenwich +posix/Etc/UCT +posix/Etc/UTC +posix/Etc/Universal +posix/Etc/Zulu +posix/Europe/Amsterdam +posix/Europe/Andorra +posix/Europe/Athens +posix/Europe/Belfast +posix/Europe/Belgrade +posix/Europe/Berlin +posix/Europe/Bratislava +posix/Europe/Brussels +posix/Europe/Bucharest +posix/Europe/Budapest +posix/Europe/Chisinau +posix/Europe/Copenhagen +posix/Europe/Dublin +posix/Europe/Gibraltar +posix/Europe/Guernsey +posix/Europe/Helsinki +posix/Europe/Isle_of_Man +posix/Europe/Istanbul +posix/Europe/Jersey +posix/Europe/Kaliningrad +posix/Europe/Kiev +posix/Europe/Lisbon +posix/Europe/Ljubljana +posix/Europe/London +posix/Europe/Luxembourg +posix/Europe/Madrid +posix/Europe/Malta +posix/Europe/Mariehamn +posix/Europe/Minsk +posix/Europe/Monaco +posix/Europe/Moscow +posix/Europe/Nicosia +posix/Europe/Oslo +posix/Europe/Paris +posix/Europe/Podgorica +posix/Europe/Prague +posix/Europe/Riga +posix/Europe/Rome +posix/Europe/Samara +posix/Europe/San_Marino +posix/Europe/Sarajevo +posix/Europe/Simferopol +posix/Europe/Skopje +posix/Europe/Sofia +posix/Europe/Stockholm +posix/Europe/Tallinn +posix/Europe/Tirane +posix/Europe/Tiraspol +posix/Europe/Uzhgorod +posix/Europe/Vaduz +posix/Europe/Vatican +posix/Europe/Vienna +posix/Europe/Vilnius +posix/Europe/Volgograd +posix/Europe/Warsaw +posix/Europe/Zagreb +posix/Europe/Zaporozhye +posix/Europe/Zurich +posix/Factory +posix/GB +posix/GB-Eire +posix/GMT +posix/GMT+0 +posix/GMT-0 +posix/GMT0 +posix/Greenwich +posix/HST +posix/Hongkong +posix/Iceland +posix/Indian/Antananarivo +posix/Indian/Chagos +posix/Indian/Christmas +posix/Indian/Cocos +posix/Indian/Comoro +posix/Indian/Kerguelen +posix/Indian/Mahe +posix/Indian/Maldives +posix/Indian/Mauritius +posix/Indian/Mayotte +posix/Indian/Reunion +posix/Iran +posix/Israel +posix/Jamaica +posix/Japan +posix/Kwajalein +posix/Libya +posix/MET +posix/MST +posix/MST7MDT +posix/Mexico/BajaNorte +posix/Mexico/BajaSur +posix/Mexico/General +posix/Mideast/Riyadh87 +posix/Mideast/Riyadh88 +posix/Mideast/Riyadh89 +posix/NZ +posix/NZ-CHAT +posix/Navajo +posix/PRC +posix/PST8PDT +posix/Pacific/Apia +posix/Pacific/Auckland +posix/Pacific/Chatham +posix/Pacific/Easter +posix/Pacific/Efate +posix/Pacific/Enderbury +posix/Pacific/Fakaofo +posix/Pacific/Fiji +posix/Pacific/Funafuti +posix/Pacific/Galapagos +posix/Pacific/Gambier +posix/Pacific/Guadalcanal +posix/Pacific/Guam +posix/Pacific/Honolulu +posix/Pacific/Johnston +posix/Pacific/Kiritimati +posix/Pacific/Kosrae +posix/Pacific/Kwajalein +posix/Pacific/Majuro +posix/Pacific/Marquesas +posix/Pacific/Midway +posix/Pacific/Nauru +posix/Pacific/Niue +posix/Pacific/Norfolk +posix/Pacific/Noumea +posix/Pacific/Pago_Pago +posix/Pacific/Palau +posix/Pacific/Pitcairn +posix/Pacific/Ponape +posix/Pacific/Port_Moresby +posix/Pacific/Rarotonga +posix/Pacific/Saipan +posix/Pacific/Samoa +posix/Pacific/Tahiti +posix/Pacific/Tarawa +posix/Pacific/Tongatapu +posix/Pacific/Truk +posix/Pacific/Wake +posix/Pacific/Wallis +posix/Pacific/Yap +posix/Poland +posix/Portugal +posix/ROC +posix/ROK +posix/Singapore +posix/Turkey +posix/UCT +posix/US/Alaska +posix/US/Aleutian +posix/US/Arizona +posix/US/Central +posix/US/East-Indiana +posix/US/Eastern +posix/US/Hawaii +posix/US/Indiana-Starke +posix/US/Michigan +posix/US/Mountain +posix/US/Pacific +posix/US/Samoa +posix/UTC +posix/Universal +posix/W-SU +posix/WET +posix/Zulu +posixrules +right/Africa/Abidjan +right/Africa/Accra +right/Africa/Addis_Ababa +right/Africa/Algiers +right/Africa/Asmara +right/Africa/Asmera +right/Africa/Bamako +right/Africa/Bangui +right/Africa/Banjul +right/Africa/Bissau +right/Africa/Blantyre +right/Africa/Brazzaville +right/Africa/Bujumbura +right/Africa/Cairo +right/Africa/Casablanca +right/Africa/Ceuta +right/Africa/Conakry +right/Africa/Dakar +right/Africa/Dar_es_Salaam +right/Africa/Djibouti +right/Africa/Douala +right/Africa/El_Aaiun +right/Africa/Freetown +right/Africa/Gaborone +right/Africa/Harare +right/Africa/Johannesburg +right/Africa/Kampala +right/Africa/Khartoum +right/Africa/Kigali +right/Africa/Kinshasa +right/Africa/Lagos +right/Africa/Libreville +right/Africa/Lome +right/Africa/Luanda +right/Africa/Lubumbashi +right/Africa/Lusaka +right/Africa/Malabo +right/Africa/Maputo +right/Africa/Maseru +right/Africa/Mbabane +right/Africa/Mogadishu +right/Africa/Monrovia +right/Africa/Nairobi +right/Africa/Ndjamena +right/Africa/Niamey +right/Africa/Nouakchott +right/Africa/Ouagadougou +right/Africa/Porto-Novo +right/Africa/Sao_Tome +right/Africa/Timbuktu +right/Africa/Tripoli +right/Africa/Tunis +right/Africa/Windhoek +right/America/Adak +right/America/Anchorage +right/America/Anguilla +right/America/Antigua +right/America/Araguaina +right/America/Argentina/Buenos_Aires +right/America/Argentina/Catamarca +right/America/Argentina/ComodRivadavia +right/America/Argentina/Cordoba +right/America/Argentina/Jujuy +right/America/Argentina/La_Rioja +right/America/Argentina/Mendoza +right/America/Argentina/Rio_Gallegos +right/America/Argentina/Salta +right/America/Argentina/San_Juan +right/America/Argentina/San_Luis +right/America/Argentina/Tucuman +right/America/Argentina/Ushuaia +right/America/Aruba +right/America/Asuncion +right/America/Atikokan +right/America/Atka +right/America/Bahia +right/America/Barbados +right/America/Belem +right/America/Belize +right/America/Blanc-Sablon +right/America/Boa_Vista +right/America/Bogota +right/America/Boise +right/America/Buenos_Aires +right/America/Cambridge_Bay +right/America/Campo_Grande +right/America/Cancun +right/America/Caracas +right/America/Catamarca +right/America/Cayenne +right/America/Cayman +right/America/Chicago +right/America/Chihuahua +right/America/Coral_Harbour +right/America/Cordoba +right/America/Costa_Rica +right/America/Cuiaba +right/America/Curacao +right/America/Danmarkshavn +right/America/Dawson +right/America/Dawson_Creek +right/America/Denver +right/America/Detroit +right/America/Dominica +right/America/Edmonton +right/America/Eirunepe +right/America/El_Salvador +right/America/Ensenada +right/America/Fort_Wayne +right/America/Fortaleza +right/America/Glace_Bay +right/America/Godthab +right/America/Goose_Bay +right/America/Grand_Turk +right/America/Grenada +right/America/Guadeloupe +right/America/Guatemala +right/America/Guayaquil +right/America/Guyana +right/America/Halifax +right/America/Havana +right/America/Hermosillo +right/America/Indiana/Indianapolis +right/America/Indiana/Knox +right/America/Indiana/Marengo +right/America/Indiana/Petersburg +right/America/Indiana/Tell_City +right/America/Indiana/Vevay +right/America/Indiana/Vincennes +right/America/Indiana/Winamac +right/America/Indianapolis +right/America/Inuvik +right/America/Iqaluit +right/America/Jamaica +right/America/Jujuy +right/America/Juneau +right/America/Kentucky/Louisville +right/America/Kentucky/Monticello +right/America/Knox_IN +right/America/La_Paz +right/America/Lima +right/America/Los_Angeles +right/America/Louisville +right/America/Maceio +right/America/Managua +right/America/Manaus +right/America/Marigot +right/America/Martinique +right/America/Mazatlan +right/America/Mendoza +right/America/Menominee +right/America/Merida +right/America/Mexico_City +right/America/Miquelon +right/America/Moncton +right/America/Monterrey +right/America/Montevideo +right/America/Montreal +right/America/Montserrat +right/America/Nassau +right/America/New_York +right/America/Nipigon +right/America/Nome +right/America/Noronha +right/America/North_Dakota/Center +right/America/North_Dakota/New_Salem +right/America/Panama +right/America/Pangnirtung +right/America/Paramaribo +right/America/Phoenix +right/America/Port-au-Prince +right/America/Port_of_Spain +right/America/Porto_Acre +right/America/Porto_Velho +right/America/Puerto_Rico +right/America/Rainy_River +right/America/Rankin_Inlet +right/America/Recife +right/America/Regina +right/America/Resolute +right/America/Rio_Branco +right/America/Rosario +right/America/Santarem +right/America/Santiago +right/America/Santo_Domingo +right/America/Sao_Paulo +right/America/Scoresbysund +right/America/Shiprock +right/America/St_Barthelemy +right/America/St_Johns +right/America/St_Kitts +right/America/St_Lucia +right/America/St_Thomas +right/America/St_Vincent +right/America/Swift_Current +right/America/Tegucigalpa +right/America/Thule +right/America/Thunder_Bay +right/America/Tijuana +right/America/Toronto +right/America/Tortola +right/America/Vancouver +right/America/Virgin +right/America/Whitehorse +right/America/Winnipeg +right/America/Yakutat +right/America/Yellowknife +right/Antarctica/Casey +right/Antarctica/Davis +right/Antarctica/DumontDUrville +right/Antarctica/Mawson +right/Antarctica/McMurdo +right/Antarctica/Palmer +right/Antarctica/Rothera +right/Antarctica/South_Pole +right/Antarctica/Syowa +right/Antarctica/Vostok +right/Arctic/Longyearbyen +right/Asia/Aden +right/Asia/Almaty +right/Asia/Amman +right/Asia/Anadyr +right/Asia/Aqtau +right/Asia/Aqtobe +right/Asia/Ashgabat +right/Asia/Ashkhabad +right/Asia/Baghdad +right/Asia/Bahrain +right/Asia/Baku +right/Asia/Bangkok +right/Asia/Beirut +right/Asia/Bishkek +right/Asia/Brunei +right/Asia/Calcutta +right/Asia/Choibalsan +right/Asia/Chongqing +right/Asia/Chungking +right/Asia/Colombo +right/Asia/Dacca +right/Asia/Damascus +right/Asia/Dhaka +right/Asia/Dili +right/Asia/Dubai +right/Asia/Dushanbe +right/Asia/Gaza +right/Asia/Harbin +right/Asia/Ho_Chi_Minh +right/Asia/Hong_Kong +right/Asia/Hovd +right/Asia/Irkutsk +right/Asia/Istanbul +right/Asia/Jakarta +right/Asia/Jayapura +right/Asia/Jerusalem +right/Asia/Kabul +right/Asia/Kamchatka +right/Asia/Karachi +right/Asia/Kashgar +right/Asia/Kathmandu +right/Asia/Katmandu +right/Asia/Kolkata +right/Asia/Krasnoyarsk +right/Asia/Kuala_Lumpur +right/Asia/Kuching +right/Asia/Kuwait +right/Asia/Macao +right/Asia/Macau +right/Asia/Magadan +right/Asia/Makassar +right/Asia/Manila +right/Asia/Muscat +right/Asia/Nicosia +right/Asia/Novosibirsk +right/Asia/Omsk +right/Asia/Oral +right/Asia/Phnom_Penh +right/Asia/Pontianak +right/Asia/Pyongyang +right/Asia/Qatar +right/Asia/Qyzylorda +right/Asia/Rangoon +right/Asia/Riyadh +right/Asia/Riyadh87 +right/Asia/Riyadh88 +right/Asia/Riyadh89 +right/Asia/Saigon +right/Asia/Sakhalin +right/Asia/Samarkand +right/Asia/Seoul +right/Asia/Shanghai +right/Asia/Singapore +right/Asia/Taipei +right/Asia/Tashkent +right/Asia/Tbilisi +right/Asia/Tehran +right/Asia/Tel_Aviv +right/Asia/Thimbu +right/Asia/Thimphu +right/Asia/Tokyo +right/Asia/Ujung_Pandang +right/Asia/Ulaanbaatar +right/Asia/Ulan_Bator +right/Asia/Urumqi +right/Asia/Vientiane +right/Asia/Vladivostok +right/Asia/Yakutsk +right/Asia/Yekaterinburg +right/Asia/Yerevan +right/Atlantic/Azores +right/Atlantic/Bermuda +right/Atlantic/Canary +right/Atlantic/Cape_Verde +right/Atlantic/Faeroe +right/Atlantic/Faroe +right/Atlantic/Jan_Mayen +right/Atlantic/Madeira +right/Atlantic/Reykjavik +right/Atlantic/South_Georgia +right/Atlantic/St_Helena +right/Atlantic/Stanley +right/Australia/ACT +right/Australia/Adelaide +right/Australia/Brisbane +right/Australia/Broken_Hill +right/Australia/Canberra +right/Australia/Currie +right/Australia/Darwin +right/Australia/Eucla +right/Australia/Hobart +right/Australia/LHI +right/Australia/Lindeman +right/Australia/Lord_Howe +right/Australia/Melbourne +right/Australia/NSW +right/Australia/North +right/Australia/Perth +right/Australia/Queensland +right/Australia/South +right/Australia/Sydney +right/Australia/Tasmania +right/Australia/Victoria +right/Australia/West +right/Australia/Yancowinna +right/Brazil/Acre +right/Brazil/DeNoronha +right/Brazil/East +right/Brazil/West +right/CET +right/CST6CDT +right/Canada/Atlantic +right/Canada/Central +right/Canada/East-Saskatchewan +right/Canada/Eastern +right/Canada/Mountain +right/Canada/Newfoundland +right/Canada/Pacific +right/Canada/Saskatchewan +right/Canada/Yukon +right/Chile/Continental +right/Chile/EasterIsland +right/Cuba +right/EET +right/EST +right/EST5EDT +right/Egypt +right/Eire +right/Etc/GMT +right/Etc/GMT+0 +right/Etc/GMT+1 +right/Etc/GMT+10 +right/Etc/GMT+11 +right/Etc/GMT+12 +right/Etc/GMT+2 +right/Etc/GMT+3 +right/Etc/GMT+4 +right/Etc/GMT+5 +right/Etc/GMT+6 +right/Etc/GMT+7 +right/Etc/GMT+8 +right/Etc/GMT+9 +right/Etc/GMT-0 +right/Etc/GMT-1 +right/Etc/GMT-10 +right/Etc/GMT-11 +right/Etc/GMT-12 +right/Etc/GMT-13 +right/Etc/GMT-14 +right/Etc/GMT-2 +right/Etc/GMT-3 +right/Etc/GMT-4 +right/Etc/GMT-5 +right/Etc/GMT-6 +right/Etc/GMT-7 +right/Etc/GMT-8 +right/Etc/GMT-9 +right/Etc/GMT0 +right/Etc/Greenwich +right/Etc/UCT +right/Etc/UTC +right/Etc/Universal +right/Etc/Zulu +right/Europe/Amsterdam +right/Europe/Andorra +right/Europe/Athens +right/Europe/Belfast +right/Europe/Belgrade +right/Europe/Berlin +right/Europe/Bratislava +right/Europe/Brussels +right/Europe/Bucharest +right/Europe/Budapest +right/Europe/Chisinau +right/Europe/Copenhagen +right/Europe/Dublin +right/Europe/Gibraltar +right/Europe/Guernsey +right/Europe/Helsinki +right/Europe/Isle_of_Man +right/Europe/Istanbul +right/Europe/Jersey +right/Europe/Kaliningrad +right/Europe/Kiev +right/Europe/Lisbon +right/Europe/Ljubljana +right/Europe/London +right/Europe/Luxembourg +right/Europe/Madrid +right/Europe/Malta +right/Europe/Mariehamn +right/Europe/Minsk +right/Europe/Monaco +right/Europe/Moscow +right/Europe/Nicosia +right/Europe/Oslo +right/Europe/Paris +right/Europe/Podgorica +right/Europe/Prague +right/Europe/Riga +right/Europe/Rome +right/Europe/Samara +right/Europe/San_Marino +right/Europe/Sarajevo +right/Europe/Simferopol +right/Europe/Skopje +right/Europe/Sofia +right/Europe/Stockholm +right/Europe/Tallinn +right/Europe/Tirane +right/Europe/Tiraspol +right/Europe/Uzhgorod +right/Europe/Vaduz +right/Europe/Vatican +right/Europe/Vienna +right/Europe/Vilnius +right/Europe/Volgograd +right/Europe/Warsaw +right/Europe/Zagreb +right/Europe/Zaporozhye +right/Europe/Zurich +right/Factory +right/GB +right/GB-Eire +right/GMT +right/GMT+0 +right/GMT-0 +right/GMT0 +right/Greenwich +right/HST +right/Hongkong +right/Iceland +right/Indian/Antananarivo +right/Indian/Chagos +right/Indian/Christmas +right/Indian/Cocos +right/Indian/Comoro +right/Indian/Kerguelen +right/Indian/Mahe +right/Indian/Maldives +right/Indian/Mauritius +right/Indian/Mayotte +right/Indian/Reunion +right/Iran +right/Israel +right/Jamaica +right/Japan +right/Kwajalein +right/Libya +right/MET +right/MST +right/MST7MDT +right/Mexico/BajaNorte +right/Mexico/BajaSur +right/Mexico/General +right/Mideast/Riyadh87 +right/Mideast/Riyadh88 +right/Mideast/Riyadh89 +right/NZ +right/NZ-CHAT +right/Navajo +right/PRC +right/PST8PDT +right/Pacific/Apia +right/Pacific/Auckland +right/Pacific/Chatham +right/Pacific/Easter +right/Pacific/Efate +right/Pacific/Enderbury +right/Pacific/Fakaofo +right/Pacific/Fiji +right/Pacific/Funafuti +right/Pacific/Galapagos +right/Pacific/Gambier +right/Pacific/Guadalcanal +right/Pacific/Guam +right/Pacific/Honolulu +right/Pacific/Johnston +right/Pacific/Kiritimati +right/Pacific/Kosrae +right/Pacific/Kwajalein +right/Pacific/Majuro +right/Pacific/Marquesas +right/Pacific/Midway +right/Pacific/Nauru +right/Pacific/Niue +right/Pacific/Norfolk +right/Pacific/Noumea +right/Pacific/Pago_Pago +right/Pacific/Palau +right/Pacific/Pitcairn +right/Pacific/Ponape +right/Pacific/Port_Moresby +right/Pacific/Rarotonga +right/Pacific/Saipan +right/Pacific/Samoa +right/Pacific/Tahiti +right/Pacific/Tarawa +right/Pacific/Tongatapu +right/Pacific/Truk +right/Pacific/Wake +right/Pacific/Wallis +right/Pacific/Yap +right/Poland +right/Portugal +right/ROC +right/ROK +right/Singapore +right/Turkey +right/UCT +right/US/Alaska +right/US/Aleutian +right/US/Arizona +right/US/Central +right/US/East-Indiana +right/US/Eastern +right/US/Hawaii +right/US/Indiana-Starke +right/US/Michigan +right/US/Mountain +right/US/Pacific +right/US/Samoa +right/UTC +right/Universal +right/W-SU +right/WET +right/Zulu + +Type it at the prompt below exactly as it appears above. (NOTE: If you don't +see your timezone, use "timeconfig" again after booting for the verbose list) + +EOF + echo -n "Timezone? " + read TIMEZONE; + echo + + if [ -r $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -r /var/log/mount/usr/share/zoneinfo/$TIMEZONE -o \ + -L $T_PX/usr/share/zoneinfo/$TIMEZONE -o \ + -L /var/log/mount/usr/share/zoneinfo/$TIMEZONE ]; then + echo "Creating link from $TIMEZONE to localtime in /etc..." + echo + setzone $TIMEZONE + exit + else + cat << EOF + +Timezone $TIMEZONE could not be found. You may try again if you wish. +Make sure you type the name exactly as it appears - this configuration script +is case sensitive. + +Press [enter] to continue. + +EOF + read JUNK; + fi + done +fi + diff --git a/source/l/gmime/gmime.SlackBuild b/source/l/gmime/gmime.SlackBuild new file mode 100755 index 000000000..6f3d0f111 --- /dev/null +++ b/source/l/gmime/gmime.SlackBuild @@ -0,0 +1,116 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=gmime +VERSION=${VERSION:-2.2.23} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var/lib \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS PORTING README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gmime/slack-desc b/source/l/gmime/slack-desc new file mode 100644 index 000000000..f61c6e04a --- /dev/null +++ b/source/l/gmime/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gmime: gmime (MIME parsing library) +gmime: +gmime: GMime is a set of utilities for parsing and creating messages using +gmime: the Multipurpose Internet Mail Extension (MIME) as defined by many +gmime: Internet RFCs. +gmime: +gmime: Jeffrey Stedfast is the author of GMime. +gmime: +gmime: +gmime: +gmime: diff --git a/source/l/gmm/gmm.SlackBuild b/source/l/gmm/gmm.SlackBuild new file mode 100755 index 000000000..c5ee5ce92 --- /dev/null +++ b/source/l/gmm/gmm.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2008 Heinz Wiesinger <hmwiesinger@gmx.at> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman <rworkman@slackware.com> + + +PRGNAM=gmm +VERSION=3.1 +ARCH=noarch +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gmm/gmm.info b/source/l/gmm/gmm.info new file mode 100644 index 000000000..0d193be21 --- /dev/null +++ b/source/l/gmm/gmm.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://home.gna.org/getfem/gmm_intro.html" +DOWNLOAD="http://download.gna.org/getfem/stable/gmm-3.0.tar.gz" diff --git a/source/l/gmm/slack-desc b/source/l/gmm/slack-desc new file mode 100644 index 000000000..af0b80903 --- /dev/null +++ b/source/l/gmm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------------| +gmm: gmm (C++ generic matrix template library) +gmm: +gmm: Gmm++ is a generic C++ template library for sparse, dense and skyline +gmm: matrices. It is built as a set of generic algorithms (mult, add, copy, +gmm: sub-matrices, dense and sparse solvers, etc.) for any interfaced vector +gmm: type or matrix type. It can be viewed as a glue library that allows +gmm: cooperation between several vector and matrix types. However, basic +gmm: sparse, dense and skyline matrix/vector types are built in Gmm++, so +gmm: it can be used as a standalone linear algebra library. +gmm: +gmm: diff --git a/source/l/gmp/gmp.SlackBuild b/source/l/gmp/gmp.SlackBuild new file mode 100755 index 000000000..147cabe35 --- /dev/null +++ b/source/l/gmp/gmp.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.2.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/$TMP/package-gmp +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf gmp-$VERSION +tar xvf $CWD/gmp-$VERSION.tar.bz2 || exit 1 +cd gmp-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-gnu-ld \ + --enable-cxx \ + --enable-mpbsd \ + --enable-mpfr \ + --build=$ARCH-slackware-linux-gnu + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/gmp-$VERSION +cp -a \ + AUTHORS COPYING COPYING.LIB NEWS README \ + $PKG/usr/doc/gmp-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd /$TMP/package-gmp +/sbin/makepkg -l y -c n $TMP/gmp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gmp/slack-desc b/source/l/gmp/slack-desc new file mode 100644 index 000000000..503e0ff16 --- /dev/null +++ b/source/l/gmp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gmp: gmp (GNU multiple precision arithmetic library) +gmp: +gmp: GNU MP is a library for arbitrary precision arithmetic, operating on +gmp: signed integers, rational numbers, and floating point numbers. It has +gmp: a rich set of functions, and the functions have a regular interface. +gmp: +gmp: +gmp: +gmp: +gmp: +gmp: diff --git a/source/l/gnome-icon-theme/doinst.sh b/source/l/gnome-icon-theme/doinst.sh new file mode 100644 index 000000000..35fc874cb --- /dev/null +++ b/source/l/gnome-icon-theme/doinst.sh @@ -0,0 +1,6 @@ +if [ -e /usr/share/icons/gnome/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache /usr/share/icons/gnome 1> /dev/null 2> /dev/null + fi +fi + diff --git a/source/l/gnome-icon-theme/gnome-icon-theme.SlackBuild b/source/l/gnome-icon-theme/gnome-icon-theme.SlackBuild new file mode 100755 index 000000000..d8855c64f --- /dev/null +++ b/source/l/gnome-icon-theme/gnome-icon-theme.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.26.0 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gnome-icon-theme + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf gnome-icon-theme-$VERSION +tar xvf $CWD/gnome-icon-theme-$VERSION.tar.?z* || exit 1 +cd gnome-icon-theme-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Use the "old" /usr/lib/pkgconfig instead of the /usr/share/pkgconfig +zcat $CWD/gnome-icon-theme.pkgconfig.path.diff.gz | patch -p1 --verbose || exit 1 + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --enable-icon-mapping \ + --localstatedir=/var/lib + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/gnome-icon-theme-$VERSION +cp -a \ + AUTHORS COPYING NEWS README TODO \ + $PKG/usr/doc/gnome-icon-theme-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gnome-icon-theme-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gnome-icon-theme/gnome-icon-theme.pkgconfig.path.diff b/source/l/gnome-icon-theme/gnome-icon-theme.pkgconfig.path.diff new file mode 100644 index 000000000..0b93f2cf7 --- /dev/null +++ b/source/l/gnome-icon-theme/gnome-icon-theme.pkgconfig.path.diff @@ -0,0 +1,12 @@ +diff -Nur gnome-icon-theme-2.20.0.orig/Makefile.in gnome-icon-theme-2.20.0/Makefile.in +--- gnome-icon-theme-2.20.0.orig/Makefile.in 2007-09-17 15:07:53.000000000 -0500 ++++ gnome-icon-theme-2.20.0/Makefile.in 2008-02-09 19:56:18.425736840 -0600 +@@ -218,7 +218,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + SUBDIRS = 8x8 16x16 22x22 24x24 32x32 48x48 scalable po +-pkgconfigdir = $(datadir)/pkgconfig ++pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = gnome-icon-theme.pc + THEME_IN_FILES = index.theme.in + theme_DATA = index.theme diff --git a/source/l/gnome-icon-theme/slack-desc b/source/l/gnome-icon-theme/slack-desc new file mode 100644 index 000000000..0ebf69c21 --- /dev/null +++ b/source/l/gnome-icon-theme/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnome-icon-theme: gnome-icon-theme (default icons used by GTK+) +gnome-icon-theme: +gnome-icon-theme: A set of default icons used by many GTK+ applications. +gnome-icon-theme: +gnome-icon-theme: +gnome-icon-theme: +gnome-icon-theme: +gnome-icon-theme: +gnome-icon-theme: +gnome-icon-theme: +gnome-icon-theme: diff --git a/source/l/gst-plugins-base/gst-plugins-base.SlackBuild b/source/l/gst-plugins-base/gst-plugins-base.SlackBuild new file mode 100755 index 000000000..ccb118726 --- /dev/null +++ b/source/l/gst-plugins-base/gst-plugins-base.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2008 Michiel van Wessem <michiel@slackbuilds.org> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT +# OWNER 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. + + +PRGNAM=gst-plugins-base +VERSION=0.10.23 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-debug \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* RELEASE REQUIREMENTS \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gst-plugins-base/slack-desc b/source/l/gst-plugins-base/slack-desc new file mode 100644 index 000000000..de737776f --- /dev/null +++ b/source/l/gst-plugins-base/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler---------------------------------------------| +gst-plugins-base: gst-plugins-base (base set of GStreamer plugins) +gst-plugins-base: +gst-plugins-base: GStreamer Base Plug-ins is a well-groomed and well-maintained +gst-plugins-base: collection of GStreamer plug-ins and elements, spanning the +gst-plugins-base: range of possible types of elements one would want to write +gst-plugins-base: for GStreamer. It also contains helper libraries and base +gst-plugins-base: classes useful for writing elements. A wide range of video +gst-plugins-base: and audio decoders, encoders, and filters are included. +gst-plugins-base: +gst-plugins-base: +gst-plugins-base: diff --git a/source/l/gstreamer/gstreamer.SlackBuild b/source/l/gstreamer/gstreamer.SlackBuild new file mode 100755 index 000000000..2fcc04e71 --- /dev/null +++ b/source/l/gstreamer/gstreamer.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Copyright 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008 Michiel van Wessem <michiel@slackbuilds.org> +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=gstreamer +VERSION=0.10.23 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --with-cachedir=/var/cache/$PRGNAM \ + --disable-static \ + --disable-debug \ + --build=$ARCH-slackware-linux + +# --disable-gst-debug was always used before, but now the option prevents +# gstreamer (10.22) from compiling. Check again with future releases. + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Create the cache directory +mkdir -p $PKG/var/cache/gstreamer + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL MAINTAINERS NEWS README* RELEASE TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gstreamer/slack-desc b/source/l/gstreamer/slack-desc new file mode 100644 index 000000000..eeb1592f3 --- /dev/null +++ b/source/l/gstreamer/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler----------------------------------------------------| +gstreamer: GStreamer (streaming multimedia framework) +gstreamer: +gstreamer: GStreamer is a library that allows the construction of graphs of a +gstreamer: media-handling components, ranging from simple Ogg/Vorbis playback +gstreamer: to complex audio (mixing) and video (non-linear editing) processing. +gstreamer: Applications can take advantage of advances in codec and filter +gstreamer: technology transparently. Developers can add new codecs and filters +gstreamer: by writing a simple plugin with a clean, generic interface. +gstreamer: +gstreamer: GStreamer is released under the LGPL. +gstreamer: diff --git a/source/l/gtk+/gtk+.SlackBuild b/source/l/gtk+/gtk+.SlackBuild new file mode 100755 index 000000000..8133e2dac --- /dev/null +++ b/source/l/gtk+/gtk+.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=gtk+ +VERSION=${VERSION:-1.2.10} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-5} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +bzcat $CWD/gtk+1.2_1.2.10-18.diff.bz2 | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# The original config.{guess,sub} do not work on x86_64 +cp -p /usr/share/libtool/config.{guess,sub} . + +# Configure: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --with-glib-prefix=/usr \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING HACKING INSTALL NEWS \ + README README.cvs-commits TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gtk+/gtk+1.2_1.2.10-18.diff b/source/l/gtk+/gtk+1.2_1.2.10-18.diff new file mode 100644 index 000000000..e3e71deb9 --- /dev/null +++ b/source/l/gtk+/gtk+1.2_1.2.10-18.diff @@ -0,0 +1,29031 @@ +--- gtk+1.2-1.2.10.orig/Makefile.in ++++ gtk+1.2-1.2.10/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -66,6 +66,8 @@ + CC = @CC@ + DATADIRNAME = @DATADIRNAME@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ + GDK_WLIBS = @GDK_WLIBS@ + GENCAT = @GENCAT@ + GLIB_CFLAGS = @GLIB_CFLAGS@ +@@ -101,12 +103,14 @@ + MAKEINFO = @MAKEINFO@ + MKINSTALLDIRS = @MKINSTALLDIRS@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + PERL = @PERL@ + POFILES = @POFILES@ + POSUB = @POSUB@ + RANLIB = @RANLIB@ + REBUILD = @REBUILD@ ++STRIP = @STRIP@ + STRIP_BEGIN = @STRIP_BEGIN@ + STRIP_DUMMY = @STRIP_DUMMY@ + STRIP_END = @STRIP_END@ +@@ -125,6 +129,8 @@ + x_libs = @x_libs@ + xinput_progs = @xinput_progs@ + ++CONFIGURE_DEPENDENCIES = acgtk.m4 ++ + SRC_SUBDIRS = gdk gtk + SUBDIRS = po $(SRC_SUBDIRS) docs + +@@ -133,7 +139,7 @@ + # require automake 1.4 + AUTOMAKE_OPTIONS = 1.4 + +-EXTRA_DIST = HACKING gtk+.spec.in gtk.m4 makecopyright TODO NEWS.pre-1-0 ChangeLog.pre-1-0 README.cvs-commits intl/libgettext.h intl/po2tbl.sed.in examples/aspectframe/Makefile examples/aspectframe/aspectframe.c examples/Makefile examples/README.1ST examples/extract.awk examples/extract.sh examples/base/Makefile examples/base/base.c examples/buttons/Makefile examples/buttons/buttons.c examples/buttons/info.xpm examples/calendar/Makefile examples/calendar/calendar.c examples/clist/Makefile examples/clist/clist.c examples/entry/Makefile examples/entry/entry.c examples/eventbox/Makefile examples/eventbox/eventbox.c examples/filesel/Makefile examples/filesel/filesel.c examples/gtkdial/Makefile examples/gtkdial/dial_test.c examples/gtkdial/gtkdial.c examples/gtkdial/gtkdial.h examples/helloworld/Makefile examples/helloworld/helloworld.c examples/helloworld2/Makefile examples/helloworld2/helloworld2.c examples/list/Makefile examples/list/list.c examples/menu/Makefile examples/menu/menu.c examples/menu/itemfactory.c examples/notebook/Makefile examples/notebook/notebook.c examples/packbox/Makefile examples/packbox/packbox.c examples/packer/Makefile examples/packer/pack.c examples/paned/Makefile examples/paned/paned.c examples/pixmap/Makefile examples/pixmap/pixmap.c examples/progressbar/Makefile examples/progressbar/progressbar.c examples/radiobuttons/Makefile examples/radiobuttons/radiobuttons.c examples/rangewidgets/Makefile examples/rangewidgets/rangewidgets.c examples/rulers/Makefile examples/rulers/rulers.c examples/scribble-simple/Makefile examples/scribble-simple/scribble-simple.c examples/scrolledwin/Makefile examples/scrolledwin/scrolledwin.c examples/selection/Makefile examples/selection/gettargets.c examples/selection/setselection.c examples/statusbar/Makefile examples/statusbar/statusbar.c examples/table/Makefile examples/table/table.c examples/text/Makefile examples/text/text.c examples/tictactoe/Makefile examples/tictactoe/tictactoe.c examples/tictactoe/tictactoe.h examples/tictactoe/ttt_test.c examples/tree/Makefile examples/tree/tree.c examples/wheelbarrow/Makefile examples/wheelbarrow/wheelbarrow.c examples/fixed/fixed.c examples/fixed/Makefile examples/frame/frame.c examples/frame/Makefile examples/spinbutton/spinbutton.c examples/spinbutton/Makefile examples/find-examples.sh gdk.pc.in gtk+.pc.in ++EXTRA_DIST = HACKING gtk+.spec.in acgtk.m4 gtk.m4 makecopyright TODO NEWS.pre-1-0 ChangeLog.pre-1-0 README.cvs-commits intl/libgettext.h intl/po2tbl.sed.in examples/aspectframe/Makefile examples/aspectframe/aspectframe.c examples/Makefile examples/README.1ST examples/extract.awk examples/extract.sh examples/base/Makefile examples/base/base.c examples/buttons/Makefile examples/buttons/buttons.c examples/buttons/info.xpm examples/calendar/Makefile examples/calendar/calendar.c examples/clist/Makefile examples/clist/clist.c examples/entry/Makefile examples/entry/entry.c examples/eventbox/Makefile examples/eventbox/eventbox.c examples/filesel/Makefile examples/filesel/filesel.c examples/gtkdial/Makefile examples/gtkdial/dial_test.c examples/gtkdial/gtkdial.c examples/gtkdial/gtkdial.h examples/helloworld/Makefile examples/helloworld/helloworld.c examples/helloworld2/Makefile examples/helloworld2/helloworld2.c examples/list/Makefile examples/list/list.c examples/menu/Makefile examples/menu/menu.c examples/menu/itemfactory.c examples/notebook/Makefile examples/notebook/notebook.c examples/packbox/Makefile examples/packbox/packbox.c examples/packer/Makefile examples/packer/pack.c examples/paned/Makefile examples/paned/paned.c examples/pixmap/Makefile examples/pixmap/pixmap.c examples/progressbar/Makefile examples/progressbar/progressbar.c examples/radiobuttons/Makefile examples/radiobuttons/radiobuttons.c examples/rangewidgets/Makefile examples/rangewidgets/rangewidgets.c examples/rulers/Makefile examples/rulers/rulers.c examples/scribble-simple/Makefile examples/scribble-simple/scribble-simple.c examples/scrolledwin/Makefile examples/scrolledwin/scrolledwin.c examples/selection/Makefile examples/selection/gettargets.c examples/selection/setselection.c examples/statusbar/Makefile examples/statusbar/statusbar.c examples/table/Makefile examples/table/table.c examples/text/Makefile examples/text/text.c examples/tictactoe/Makefile examples/tictactoe/tictactoe.c examples/tictactoe/tictactoe.h examples/tictactoe/ttt_test.c examples/tree/Makefile examples/tree/tree.c examples/wheelbarrow/Makefile examples/wheelbarrow/wheelbarrow.c examples/fixed/fixed.c examples/fixed/Makefile examples/frame/frame.c examples/frame/Makefile examples/spinbutton/spinbutton.c examples/spinbutton/Makefile examples/find-examples.sh gdk.pc.in gtk+.pc.in + + + pkgconfigdir = $(libdir)/pkgconfig +@@ -150,26 +156,26 @@ + DATA = $(m4data_DATA) $(pkgconfig_DATA) + + DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \ +-INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h acinclude.m4 \ +-aclocal.m4 config.guess config.h.in config.sub configure configure.in \ +-gdk.pc.in gtk+.pc.in gtk+.spec.in gtk-config.in install-sh ltconfig \ +-ltmain.sh missing mkinstalldirs ++INSTALL Makefile.am Makefile.in NEWS TODO acconfig.h aclocal.m4 \ ++config.guess config.h.in config.sub configure configure.in gdk.pc.in \ ++gtk+.pc.in gtk+.spec.in gtk-config.in install-sh ltmain.sh missing \ ++mkinstalldirs + + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + all: all-redirect + .SUFFIXES: + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile ++ cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile + +-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in + cd $(srcdir) && $(ACLOCAL) + + config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) +@@ -306,7 +312,7 @@ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ +- test "$$subdir" = "." && dot_seen=yes; \ ++ test "$$subdir" != "." || dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ +@@ -348,7 +354,7 @@ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ +- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS) ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)) + + mostlyclean-tags: + +@@ -397,6 +403,11 @@ + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile + $(mkinstalldirs) $(distdir)/examples $(distdir)/examples/aspectframe \ + $(distdir)/examples/base $(distdir)/examples/buttons \ + $(distdir)/examples/calendar $(distdir)/examples/clist \ +--- gtk+1.2-1.2.10.orig/intl/po2tbl.sed ++++ gtk+1.2-1.2.10/intl/po2tbl.sed +@@ -0,0 +1,60 @@ ++1 { ++ i\ ++/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\ ++\ ++#if HAVE_CONFIG_H\ ++# include <config.h>\ ++#endif\ ++\ ++#include "libgettext.h"\ ++\ ++const struct _msg_ent _msg_tbl[] = { ++ h ++ s/.*/0/ ++ x ++} ++/^msgid/ { ++ s/msgid[ ]*\(".*"\)/ {\1/ ++ tb ++ :b ++ N ++ s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/ ++ ta ++ s/\(.*\)\n.*/\1/ ++ bc ++ :a ++ s/\(.*\)\(\n.*\)/\1\\\2/ ++ P ++ s/.*\n\(.*\)/\1/ ++ tb ++ :c ++ x ++ td ++ :d ++ s/9\(_*\)$/_\1/ ++ td ++ s/^\(_*\)$/0\1/ ++ s/8\(_*\)$/9\1/ ++ s/7\(_*\)$/8\1/ ++ s/6\(_*\)$/7\1/ ++ s/5\(_*\)$/6\1/ ++ s/4\(_*\)$/5\1/ ++ s/3\(_*\)$/4\1/ ++ s/2\(_*\)$/3\1/ ++ s/1\(_*\)$/2\1/ ++ s/0\(_*\)$/1\1/ ++ s/_/0/g ++ x ++ G ++ s/\(.*\)\n\([0-9]*\)/\1, \2},/ ++ s/\(.*\)"$/\1/ ++ p ++} ++$ { ++ i\ ++};\ ++ ++ g ++ s/0*\(.*\)/int _msg_tbl_length = \1;/p ++} ++d +--- gtk+1.2-1.2.10.orig/Makefile.am ++++ gtk+1.2-1.2.10/Makefile.am +@@ -1,5 +1,7 @@ + ## Makefile.am for GTK+ + ++CONFIGURE_DEPENDENCIES = acgtk.m4 ++ + SRC_SUBDIRS = gdk gtk + SUBDIRS = po $(SRC_SUBDIRS) docs + +@@ -11,6 +13,7 @@ + EXTRA_DIST = \ + HACKING \ + gtk+.spec.in \ ++ acgtk.m4 \ + gtk.m4 \ + makecopyright \ + TODO \ +--- gtk+1.2-1.2.10.orig/acconfig.h ++++ gtk+1.2-1.2.10/acconfig.h +@@ -28,6 +28,7 @@ + #undef HAVE_SHAPE_EXT + #undef HAVE_SYS_SELECT_H + #undef HAVE_XCONVERTCASE ++#undef HAVE_CODESET + + #undef NO_FD_SET + +--- gtk+1.2-1.2.10.orig/aclocal.m4 ++++ gtk+1.2-1.2.10/aclocal.m4 +@@ -1,6 +1,6 @@ +-dnl aclocal.m4 generated automatically by aclocal 1.4 ++dnl aclocal.m4 generated automatically by aclocal 1.4-p6 + +-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. +@@ -10,81 +10,217 @@ + dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A + dnl PARTICULAR PURPOSE. + ++# Do all the work for Automake. This macro actually does too much -- ++# some checks are only needed if your package does certain things. ++# But this isn't really a big deal. + +-# serial 40 AC_PROG_LIBTOOL +-AC_DEFUN(AC_PROG_LIBTOOL, +-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl ++# serial 1 ++ ++dnl Usage: ++dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ++ ++AC_DEFUN([AM_INIT_AUTOMAKE], ++[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl ++AC_REQUIRE([AC_PROG_INSTALL]) ++PACKAGE=[$1] ++AC_SUBST(PACKAGE) ++VERSION=[$2] ++AC_SUBST(VERSION) ++dnl test to see if srcdir already configured ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then ++ AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) ++fi ++ifelse([$3],, ++AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) ++AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) ++AC_REQUIRE([AM_SANITY_CHECK]) ++AC_REQUIRE([AC_ARG_PROGRAM]) ++dnl FIXME This is truly gross. ++missing_dir=`cd $ac_aux_dir && pwd` ++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) ++AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) ++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) ++AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) ++AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) ++AC_REQUIRE([AC_PROG_MAKE_SET])]) ++ ++# Copyright 2002 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++ ++# AM_AUTOMAKE_VERSION(VERSION) ++# ---------------------------- ++# Automake X.Y traces this macro to ensure aclocal.m4 has been ++# generated from the m4 files accompanying Automake X.Y. ++AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) ++ ++# AM_SET_CURRENT_AUTOMAKE_VERSION ++# ------------------------------- ++# Call AM_AUTOMAKE_VERSION so it can be traced. ++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. ++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], ++ [AM_AUTOMAKE_VERSION([1.4-p6])]) ++ ++# ++# Check to make sure that the build environment is sane. ++# ++ ++AC_DEFUN([AM_SANITY_CHECK], ++[AC_MSG_CHECKING([whether build environment is sane]) ++# Just in case ++sleep 1 ++echo timestamp > conftestfile ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` ++ if test "[$]*" = "X"; then ++ # -L didn't work. ++ set X `ls -t $srcdir/configure conftestfile` ++ fi ++ if test "[$]*" != "X $srcdir/configure conftestfile" \ ++ && test "[$]*" != "X conftestfile $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken ++alias in your environment]) ++ fi ++ ++ test "[$]2" = conftestfile ++ ) ++then ++ # Ok. ++ : ++else ++ AC_MSG_ERROR([newly created file is older than distributed files! ++Check your system clock]) ++fi ++rm -f conftest* ++AC_MSG_RESULT(yes)]) ++ ++dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) ++dnl The program must properly implement --version. ++AC_DEFUN([AM_MISSING_PROG], ++[AC_MSG_CHECKING(for working $2) ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if ($2 --version) < /dev/null > /dev/null 2>&1; then ++ $1=$2 ++ AC_MSG_RESULT(found) ++else ++ $1="$3/missing $2" ++ AC_MSG_RESULT(missing) ++fi ++AC_SUBST($1)]) ++ ++# Like AC_CONFIG_HEADER, but automatically create stamp file. ++ ++AC_DEFUN([AM_CONFIG_HEADER], ++[AC_PREREQ([2.12]) ++AC_CONFIG_HEADER([$1]) ++dnl When config.status generates a header, we must update the stamp-h file. ++dnl This file resides in the same directory as the config header ++dnl that is generated. We must strip everything past the first ":", ++dnl and everything past the last "/". ++AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl ++ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, ++<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, ++<<am_indx=1 ++for am_file in <<$1>>; do ++ case " <<$>>CONFIG_HEADERS " in ++ *" <<$>>am_file "*<<)>> ++ echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ++ ;; ++ esac ++ am_indx=`expr "<<$>>am_indx" + 1` ++done<<>>dnl>>) ++changequote([,]))]) + +-# Save cache, so that ltconfig can load it +-AC_CACHE_SAVE ++# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*- + +-# Actually configure libtool. ac_aux_dir is where install-sh is found. +-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ +-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ +-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \ +-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \ +-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ +-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \ +-|| AC_MSG_ERROR([libtool configure failed]) ++# serial 46 AC_PROG_LIBTOOL + +-# Reload cache, that may have been modified by ltconfig +-AC_CACHE_LOAD ++AC_DEFUN([AC_PROG_LIBTOOL], ++[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl + + # This can be used to rebuild libtool when needed +-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh" ++LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + AC_SUBST(LIBTOOL)dnl + +-# Redirect the config.log output again, so that the ltconfig log is not +-# clobbered by the next message. +-exec 5>>./config.log ++# Prevent multiple expansion ++define([AC_PROG_LIBTOOL], []) + ]) + +-AC_DEFUN(AC_LIBTOOL_SETUP, ++AC_DEFUN([AC_LIBTOOL_SETUP], + [AC_PREREQ(2.13)dnl + AC_REQUIRE([AC_ENABLE_SHARED])dnl + AC_REQUIRE([AC_ENABLE_STATIC])dnl + AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([AC_CANONICAL_BUILD])dnl +-AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_PROG_LD])dnl ++AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl + AC_REQUIRE([AC_PROG_NM])dnl ++AC_REQUIRE([LT_AC_PROG_SED])dnl ++ + AC_REQUIRE([AC_PROG_LN_S])dnl ++AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl ++AC_REQUIRE([AC_OBJEXT])dnl ++AC_REQUIRE([AC_EXEEXT])dnl + dnl + +-case "$target" in +-NONE) lt_target="$host" ;; +-*) lt_target="$target" ;; ++_LT_AC_PROG_ECHO_BACKSLASH ++# Only perform the check for file, if the check method requires it ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ AC_PATH_MAGIC ++ fi ++ ;; + esac + +-# Check for any special flags to pass to ltconfig. +-libtool_flags="--cache-file=$cache_file" +-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" +-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" +-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" +-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" +-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" +-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], +-[libtool_flags="$libtool_flags --enable-dlopen"]) ++AC_CHECK_TOOL(RANLIB, ranlib, :) ++AC_CHECK_TOOL(STRIP, strip, :) ++ ++ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) + ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], +-[libtool_flags="$libtool_flags --enable-win32-dll"]) ++enable_win32_dll=yes, enable_win32_dll=no) ++ + AC_ARG_ENABLE(libtool-lock, + [ --disable-libtool-lock avoid locking (might break parallel builds)]) +-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" +-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + + # Some flags need to be propagated to the compiler or linker for good + # libtool support. +-case "$lt_target" in ++case $host in + *-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then +- case "`/usr/bin/file conftest.o`" in ++ case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; +@@ -99,46 +235,2889 @@ + rm -rf conftest* + ;; + +-*-*-sco3.2v5*) +- # On SCO OpenServer 5, we need -belf to get full-featured binaries. +- SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS -belf" +- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, +- [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])]) +- if test x"$lt_cv_cc_needs_belf" != x"yes"; then +- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf +- CFLAGS="$SAVE_CFLAGS" +- fi +- ;; ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, ++ [AC_LANG_SAVE ++ AC_LANG_C ++ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) ++ AC_LANG_RESTORE]) ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++ ++ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], ++[*-*-cygwin* | *-*-mingw* | *-*-pw32*) ++ AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++ AC_CHECK_TOOL(AS, as, false) ++ AC_CHECK_TOOL(OBJDUMP, objdump, false) ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one ++ AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, ++ [AC_TRY_LINK([], ++ [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); ++ DllMain (0, 0, 0);], ++ [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) ++ ++ case $host/$CC in ++ *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) ++ # old mingw systems require "-dll" to link a DLL, while more recent ones ++ # require "-mdll" ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -mdll" ++ AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, ++ [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) ++ CFLAGS="$SAVE_CFLAGS" ;; ++ *-*-cygwin* | *-*-pw32*) ++ # cygwin systems need to pass --dll to the linker, and not link ++ # crt.o which will require a WinMain@16 definition. ++ lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; ++ esac ++ ;; ++ ]) ++esac ++ ++_LT_AC_LTCONFIG_HACK ++ ++]) ++ ++# AC_LIBTOOL_HEADER_ASSERT ++# ------------------------ ++AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], ++[AC_CACHE_CHECK([whether $CC supports assert without backlinking], ++ [lt_cv_func_assert_works], ++ [case $host in ++ *-*-solaris*) ++ if test "$GCC" = yes && test "$with_gnu_ld" != yes; then ++ case `$CC --version 2>/dev/null` in ++ [[12]].*) lt_cv_func_assert_works=no ;; ++ *) lt_cv_func_assert_works=yes ;; ++ esac ++ fi ++ ;; ++ esac]) ++ ++if test "x$lt_cv_func_assert_works" = xyes; then ++ AC_CHECK_HEADERS(assert.h) ++fi ++])# AC_LIBTOOL_HEADER_ASSERT ++ ++# _LT_AC_CHECK_DLFCN ++# -------------------- ++AC_DEFUN([_LT_AC_CHECK_DLFCN], ++[AC_CHECK_HEADERS(dlfcn.h) ++])# _LT_AC_CHECK_DLFCN ++ ++# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ++# --------------------------------- ++AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], ++[AC_REQUIRE([AC_CANONICAL_HOST]) ++AC_REQUIRE([AC_PROG_NM]) ++AC_REQUIRE([AC_OBJEXT]) ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++AC_MSG_CHECKING([command to parse $NM output]) ++AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[[BCDEGRST]]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[[BCDT]]' ++ ;; ++cygwin* | mingw* | pw32*) ++ symcode='[[ABCDGISTW]]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ;; ++irix* | nonstopux*) ++ symcode='[[BCDEGRST]]' ++ ;; ++osf*) ++ symcode='[[BCDEGQRST]]' ++ ;; ++solaris* | sysv5*) ++ symcode='[[BDT]]' ++ ;; ++sysv4) ++ symcode='[[DFNSTU]]' ++ ;; ++esac ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $host_os in ++mingw*) ++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[[ABCDGISTW]]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ rm -f conftest* ++ cat > conftest.$ac_ext <<EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++EOF ++ ++ if AC_TRY_EVAL(ac_compile); then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<EOF > conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ++ ++ cat <<EOF >> conftest.$ac_ext ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[[]] = ++{ ++EOF ++ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ++ cat <<\EOF >> conftest.$ac_ext ++ {0, (lt_ptr) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&AC_FD_CC ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&AC_FD_CC ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC ++ fi ++ else ++ echo "$progname: failed program was:" >&AC_FD_CC ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -f conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++]) ++global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++ global_symbol_to_c_name_address= ++else ++ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ++ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ++fi ++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ++then ++ AC_MSG_RESULT(failed) ++else ++ AC_MSG_RESULT(ok) ++fi ++]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ++ ++# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++# --------------------------------- ++AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], ++[# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++ ++# _LT_AC_PROG_ECHO_BACKSLASH ++# -------------------------- ++# Add some code to the start of the generated configure script which ++# will find an echo command which doesn't interpret backslashes. ++AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], ++[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], ++ [AC_DIVERT_PUSH(NOTICE)]) ++_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ++ ;; ++esac ++ ++echo=${ECHO-echo} ++if test "X[$]1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X[$]1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} ++fi ++ ++if test "X[$]1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++$* ++EOF ++ exit 0 ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++if test -z "$ECHO"; then ++if test "X${echo_test_string+set}" != Xset; then ++# find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if (echo_test_string="`eval $cmd`") 2>/dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null ++ then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} ++ else ++ # Try using printf. ++ echo='printf %s\n' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL [$]0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$CONFIG_SHELL [$]0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "[$]0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++ECHO=$echo ++if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ++ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" ++fi ++ ++AC_SUBST(ECHO) ++AC_DIVERT_POP ++])# _LT_AC_PROG_ECHO_BACKSLASH ++ ++# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, ++# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) ++# ------------------------------------------------------------------ ++AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], ++[if test "$cross_compiling" = yes; then : ++ [$4] ++else ++ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++[#line __oline__ "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++}] ++EOF ++ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) $1 ;; ++ x$lt_dlneed_uscore) $2 ;; ++ x$lt_unknown|x*) $3 ;; ++ esac ++ else : ++ # compilation failed ++ $3 ++ fi ++fi ++rm -fr conftest* ++])# _LT_AC_TRY_DLOPEN_SELF ++ ++# AC_LIBTOOL_DLOPEN_SELF ++# ------------------- ++AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], ++[if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ *) ++ AC_CHECK_FUNC([shl_load], ++ [lt_cv_dlopen="shl_load"], ++ [AC_CHECK_LIB([dld], [shl_load], ++ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], ++ [AC_CHECK_FUNC([dlopen], ++ [lt_cv_dlopen="dlopen"], ++ [AC_CHECK_LIB([dl], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], ++ [AC_CHECK_LIB([svld], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], ++ [AC_CHECK_LIB([dld], [dld_link], ++ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ AC_CACHE_CHECK([whether a program can dlopen itself], ++ lt_cv_dlopen_self, [dnl ++ _LT_AC_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, ++ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ++ ]) ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ AC_CACHE_CHECK([whether a statically linked program can dlopen itself], ++ lt_cv_dlopen_self_static, [dnl ++ _LT_AC_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, ++ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ++ ]) ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++])# AC_LIBTOOL_DLOPEN_SELF ++ ++AC_DEFUN([_LT_AC_LTCONFIG_HACK], ++[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Constants: ++rm="rm -f" ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++libext=a ++ltmain="$ac_aux_dir/ltmain.sh" ++ofile="$default_ofile" ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++need_locks="$enable_libtool_lock" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$AS" && AS=as ++test -z "$CC" && CC=cc ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$LD" && LD=ld ++test -z "$LN_S" && LN_S="ln -s" ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++test -z "$NM" && NM=nm ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$RANLIB" && RANLIB=: ++test -z "$STRIP" && STRIP=: ++test -z "$ac_objext" && ac_objext=o ++ ++if test x"$host" != x"$build"; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case $host_os in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ++ ;; ++ *) ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="[$]2" ++ ++AC_MSG_CHECKING([for objdir]) ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++AC_MSG_RESULT($objdir) ++ ++ ++AC_ARG_WITH(pic, ++[ --with-pic try to use only PIC/non-PIC objects [default=use both]], ++pic_mode="$withval", pic_mode=default) ++test -z "$pic_mode" && pic_mode=default ++ ++# We assume here that the value for lt_cv_prog_cc_pic will not be cached ++# in isolation, and that seeing it set (from the cache) indicates that ++# the associated values are set (in the cache) correctly too. ++AC_MSG_CHECKING([for $compiler option to produce PIC]) ++AC_CACHE_VAL(lt_cv_prog_cc_pic, ++[ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_shlib= ++ lt_cv_prog_cc_wl= ++ lt_cv_prog_cc_static= ++ lt_cv_prog_cc_no_builtin= ++ lt_cv_prog_cc_can_build_shared=$can_build_shared ++ ++ if test "$GCC" = yes; then ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-static' ++ ++ case $host_os in ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # not sure about C++ programs. ++ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_cv_prog_cc_pic='-fno-common' ++ ;; ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_cv_prog_cc_pic=-Kconform_pic ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for PIC flags for the system compiler. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ lt_cv_prog_cc_wl='-Wl,' ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_cv_prog_cc_static='-Bstatic' ++ else ++ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ++ lt_cv_prog_cc_pic='+Z' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ ++ newsos6) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ lt_cv_prog_cc_pic='-Kpic' ++ lt_cv_prog_cc_static='-dn' ++ lt_cv_prog_cc_shlib='-belf' ++ ;; ++ ++ solaris*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ lt_cv_prog_cc_pic='-PIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ uts4*) ++ lt_cv_prog_cc_pic='-pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_cv_prog_cc_pic='-Kconform_pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ fi ++ ;; ++ ++ *) ++ lt_cv_prog_cc_can_build_shared=no ++ ;; ++ esac ++ fi ++]) ++if test -z "$lt_cv_prog_cc_pic"; then ++ AC_MSG_RESULT([none]) ++else ++ AC_MSG_RESULT([$lt_cv_prog_cc_pic]) ++ ++ # Check to make sure the pic_flag actually works. ++ AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) ++ AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ++ AC_TRY_COMPILE([], [], [dnl ++ case $host_os in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then ++ # they create non-PIC objects. So, if there were any warnings, we ++ # assume that PIC is not supported. ++ if test -s conftest.err; then ++ lt_cv_prog_cc_pic_works=no ++ else ++ lt_cv_prog_cc_pic_works=yes ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic_works=yes ++ ;; ++ esac ++ ], [dnl ++ lt_cv_prog_cc_pic_works=no ++ ]) ++ CFLAGS="$save_CFLAGS" ++ ]) ++ ++ if test "X$lt_cv_prog_cc_pic_works" = Xno; then ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_can_build_shared=no ++ else ++ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ++ fi ++ ++ AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$lt_cv_prog_cc_shlib"; then ++ AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : ++ else ++ AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) ++ lt_cv_prog_cc_can_build_shared=no ++ fi ++fi ++ ++AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) ++AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl ++ lt_cv_prog_cc_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ++ AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) ++ LDFLAGS="$save_LDFLAGS" ++]) ++ ++# Belt *and* braces to stop my trousers falling down: ++test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ++AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) ++ ++pic_flag="$lt_cv_prog_cc_pic" ++special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ++wl="$lt_cv_prog_cc_wl" ++link_static_flag="$lt_cv_prog_cc_static" ++no_builtin_flag="$lt_cv_prog_cc_no_builtin" ++can_build_shared="$lt_cv_prog_cc_can_build_shared" ++ ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) ++AC_CACHE_VAL([lt_cv_compiler_c_o], [ ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++echo "int some_variable = 0;" > conftest.$ac_ext ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ++compiler_c_o=no ++if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ lt_cv_compiler_c_o=no ++ else ++ lt_cv_compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&AC_FD_CC ++ lt_cv_compiler_c_o=no ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++]) ++compiler_c_o=$lt_cv_compiler_c_o ++AC_MSG_RESULT([$compiler_c_o]) ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) ++ AC_CACHE_VAL([lt_cv_compiler_o_lo], [ ++ lt_cv_compiler_o_lo=no ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ save_objext="$ac_objext" ++ ac_objext=lo ++ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ lt_cv_compiler_o_lo=no ++ else ++ lt_cv_compiler_o_lo=yes ++ fi ++ ]) ++ ac_objext="$save_objext" ++ CFLAGS="$save_CFLAGS" ++ ]) ++ compiler_o_lo=$lt_cv_compiler_o_lo ++ AC_MSG_RESULT([$compiler_o_lo]) ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ AC_MSG_CHECKING([if we can lock with hard links]) ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ AC_MSG_RESULT([$hard_links]) ++ if test "$hard_links" = no; then ++ AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe]) ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$GCC" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ++ compiler_rtti_exceptions=no ++ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ compiler_rtti_exceptions=no ++ else ++ compiler_rtti_exceptions=yes ++ fi ++ ]) ++ CFLAGS="$save_CFLAGS" ++ AC_MSG_RESULT([$compiler_rtti_exceptions]) ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++fi ++ ++# See if the linker supports building shared libraries. ++AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++old_archive_from_expsyms_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_into_libs=no ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++link_all_deplibs=unknown ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++extract_expsyms_cmds= ++ ++case $host_os in ++cygwin* | mingw* | pw32*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ # On AIX, the GNU linker is very broken ++ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ++ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ++ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ++ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ++ else $CC -o impgen impgen.c ; fi)~ ++ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ++ ++ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ++ ++ # cygwin and mingw dlls have different entry points and sets of symbols ++ # to exclude. ++ # FIXME: what about values for MSVC? ++ dll_entry=__cygwin_dll_entry@12 ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ++ case $host_os in ++ mingw*) ++ # mingw values ++ dll_entry=_DllMainCRTStartup@12 ++ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ++ ;; ++ esac ++ ++ # mingw and cygwin differ, and it's simplest to just exclude the union ++ # of the two symbol sets. ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one (in ltdll.c) ++ if test "x$lt_cv_need_dllmain" = "xyes"; then ++ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ++ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ++ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ++ else ++ ltdll_obj= ++ ltdll_cmds= ++ fi ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left be newer dlltools. ++ export_symbols_cmds="$ltdll_cmds"' ++ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ++ ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is. ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname-def; ++ else ++ echo EXPORTS > $output_objdir/$soname-def; ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \[$]# in ++ 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ++ 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ++ *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done; ++ fi~ ++ '"$ltdll_cmds"' ++ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ++ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ++ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw* | pw32*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4* | aix5*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ hardcode_direct=yes ++ archive_cmds='' ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[[012]]|aix4.[[012]].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ esac ++ ++ shared_flag='-shared' ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ shared_flag='${wl}-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ # It seems that -bexpall can do strange things, so it is better to ++ # generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ++ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ++ else ++ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='${wl}-berok' ++ # This is a bit strange, but is similar to how AIX traditionally builds ++ # it's shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ ;; ++ ++ darwin* | rhapsody*) ++ case "$host_os" in ++ rhapsody* | darwin1.[[012]]) ++ allow_undefined_flag='-undefined suppress' ++ ;; ++ *) # Darwin 1.3 on ++ allow_undefined_flag='-flat_namespace -undefined suppress' ++ ;; ++ esac ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. Also zsh mangles ++ # `"' quotes if we put them in here... so don't! ++ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ++ # We need to add '_' to the symbols in $export_symbols first ++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ whole_archive_flag_spec='-all_load $convenience' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case $host_os in ++ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case "$host_os" in ++ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ++ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ++ ++ #Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ ;; ++ ++ solaris*) ++ # gcc --version < 3.0 without binutils cannot create self contained ++ # shared libraries reliably, requiring libgcc.a to resolve some of ++ # the object symbols generated in some cases. Libraries that use ++ # assert need libgcc.a to resolve __eprintf, for example. Linking ++ # a copy of libgcc.a into every shared library to guarantee resolving ++ # such symbols causes other problems: According to Tim Van Holder ++ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate ++ # (to the application) exception stack for one thing. ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ case `$CC --version 2>/dev/null` in ++ [[12]].*) ++ cat <<EOF 1>&2 ++ ++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably ++*** create self contained shared libraries on Solaris systems, without ++*** introducing a dependency on libgcc.a. Therefore, libtool is disabling ++*** -no-undefined support, which will at least allow you to build shared ++*** libraries. However, you may find that when you link such libraries ++*** into an application without using GCC, you have to manually add ++*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ++*** upgrade to a newer version of GCC. Another option is to rebuild your ++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ++ ++EOF ++ no_undefined_flag= ++ ;; ++ esac ++ fi ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ sysv5uw7* | unixware7*) ++ no_undefined_flag='${wl}-z ${wl}text' ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++AC_MSG_RESULT([$ld_shlibs]) ++test "$ld_shlibs" = no && can_build_shared=no ++ ++# Check hardcoding attributes. ++AC_MSG_CHECKING([how to hardcode library paths into programs]) ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++AC_MSG_RESULT([$hardcode_action]) ++ ++striplib= ++old_striplib= ++AC_MSG_CHECKING([whether stripping libraries is possible]) ++if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ AC_MSG_RESULT([yes]) ++else ++ AC_MSG_RESULT([no]) ++fi ++ ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++# PORTME Fill in your ld.so characteristics ++AC_MSG_CHECKING([dynamic linker characteristics]) ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4* | aix5*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[[01]] | aix4.[[01]].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can ++ # not hardcode correct soname into executable. Probably we can ++ # add versioning support to collect2, so additional links can ++ # be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib<name>.so ++ # instead of lib<name>.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}.so$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ hardcode_into_libs=yes ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ case $GCC,$host_os in ++ yes,cygwin*) ++ library_names_spec='$libname.dll.a' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ++ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog .libs/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $rm \$dlpath' ++ ;; ++ yes,mingw*) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ++ ;; ++ yes,pw32*) ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ ;; ++ *) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. ++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) version_type=irix ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case "$host_os" in ++ openbsd2.[[89]] | openbsd2.[[89]].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ need_lib_prefix=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ hardcode_into_libs=yes ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++AC_MSG_RESULT([$dynamic_linker]) ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++AC_MSG_CHECKING([if libtool supports shared libraries]) ++AC_MSG_RESULT([$can_build_shared]) ++ ++AC_MSG_CHECKING([whether to build shared libraries]) ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++esac ++AC_MSG_RESULT([$enable_shared]) ++ ++AC_MSG_CHECKING([whether to build static libraries]) ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++AC_MSG_RESULT([$enable_static]) ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++AC_LIBTOOL_DLOPEN_SELF ++ ++if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ AC_MSG_CHECKING([whether -lc should be explicitly linked in]) ++ AC_CACHE_VAL([lt_cv_archive_cmds_need_lc], ++ [$rm conftest* ++ echo 'static int dummy;' > conftest.$ac_ext ++ ++ if AC_TRY_EVAL(ac_compile); then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_cv_prog_cc_wl ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi]) ++ AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) ++ ;; ++ esac ++fi ++need_lc=${lt_cv_archive_cmds_need_lc-yes} ++ ++# The second clause should only fire when bootstrapping the ++# libtool distribution, otherwise you forgot to ship ltmain.sh ++# with your package, and you will get complaints that there are ++# no rules to generate ltmain.sh. ++if test -f "$ltmain"; then ++ : ++else ++ # If there is no Makefile yet, we rely on a make rule to execute ++ # `config.status --recheck' to rerun these tests and create the ++ # libtool script then. ++ test -f Makefile && make "$ltmain" ++fi ++ ++if test -f "$ltmain"; then ++ trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ++ $rm -f "${ofile}T" ++ ++ echo creating $ofile ++ ++ # Now quote all the things that may contain metacharacters while being ++ # careful not to overquote the AC_SUBSTed values. We take copies of the ++ # variables and quote the copies for generation of the libtool script. ++ for var in echo old_CC old_CFLAGS SED \ ++ AR AR_FLAGS CC LD LN_S NM SHELL \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ++ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ++ old_striplib striplib file_magic_cmd export_symbols_cmds \ ++ deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ global_symbol_to_c_name_address \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case $var in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ cat <<__EOF__ > "${ofile}T" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996-2000 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# A sed that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="${SED} -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$need_lc ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$lt_echo ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# The default C compiler. ++CC=$lt_CC ++ ++# Is the compiler the GNU C compiler? ++with_gcc=$GCC ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Whether we need hard or soft links. ++LN_S=$lt_LN_S ++ ++# A BSD-compatible nm program. ++NM=$lt_NM ++ ++# A symbol stripping program ++STRIP=$STRIP ++ ++# Used to examine libraries when file_magic_cmd begins "file" ++MAGIC_CMD=$MAGIC_CMD ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_wl ++ ++# Object file suffix (normally "o"). ++objext="$ac_objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_pic_flag ++pic_mode=$pic_mode ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$lt_compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$lt_need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$lt_thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$lt_RANLIB ++old_archive_cmds=$lt_old_archive_cmds ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++postinstall_cmds=$lt_postinstall_cmds ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$lt_file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$lt_finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$lt_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair ++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at relink time. ++variables_saved_for_relink="$variables_saved_for_relink" ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# ### END LIBTOOL CONFIG ++ ++__EOF__ ++ ++ case $host_os in ++ aix3*) ++ cat <<\EOF >> "${ofile}T" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ cat <<'EOF' >> "${ofile}T" ++ # This is a source program that is used to create dlls on Windows ++ # Don't remove nor modify the starting and closing comments ++# /* ltdll.c starts here */ ++# #define WIN32_LEAN_AND_MEAN ++# #include <windows.h> ++# #undef WIN32_LEAN_AND_MEAN ++# #include <stdio.h> ++# ++# #ifndef __CYGWIN__ ++# # ifdef __CYGWIN32__ ++# # define __CYGWIN__ __CYGWIN32__ ++# # endif ++# #endif ++# ++# #ifdef __cplusplus ++# extern "C" { ++# #endif ++# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ++# #ifdef __cplusplus ++# } ++# #endif ++# ++# #ifdef __CYGWIN__ ++# #include <cygwin/cygwin_dll.h> ++# DECLARE_CYGWIN_DLL( DllMain ); ++# #endif ++# HINSTANCE __hDllInstance_base; ++# ++# BOOL APIENTRY ++# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ++# { ++# __hDllInstance_base = hInst; ++# return TRUE; ++# } ++# /* ltdll.c ends here */ ++ # This is a source program that is used to create import libraries ++ # on Windows for dlls which lack them. Don't remove nor modify the ++ # starting and closing comments ++# /* impgen.c starts here */ ++# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ++# ++# This file is part of GNU libtool. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# */ ++# ++# #include <stdio.h> /* for printf() */ ++# #include <unistd.h> /* for open(), lseek(), read() */ ++# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ ++# #include <string.h> /* for strdup() */ ++# ++# /* O_BINARY isn't required (or even defined sometimes) under Unix */ ++# #ifndef O_BINARY ++# #define O_BINARY 0 ++# #endif ++# ++# static unsigned int ++# pe_get16 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[2]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 2); ++# return b[0] + (b[1]<<8); ++# } ++# ++# static unsigned int ++# pe_get32 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[4]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 4); ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# static unsigned int ++# pe_as32 (ptr) ++# void *ptr; ++# { ++# unsigned char *b = ptr; ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# int ++# main (argc, argv) ++# int argc; ++# char *argv[]; ++# { ++# int dll; ++# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ++# unsigned long export_rva, export_size, nsections, secptr, expptr; ++# unsigned long name_rvas, nexp; ++# unsigned char *expdata, *erva; ++# char *filename, *dll_name; ++# ++# filename = argv[1]; ++# ++# dll = open(filename, O_RDONLY|O_BINARY); ++# if (dll < 1) ++# return 1; ++# ++# dll_name = filename; ++# ++# for (i=0; filename[i]; i++) ++# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ++# dll_name = filename + i +1; ++# ++# pe_header_offset = pe_get32 (dll, 0x3c); ++# opthdr_ofs = pe_header_offset + 4 + 20; ++# num_entries = pe_get32 (dll, opthdr_ofs + 92); ++# ++# if (num_entries < 1) /* no exports */ ++# return 1; ++# ++# export_rva = pe_get32 (dll, opthdr_ofs + 96); ++# export_size = pe_get32 (dll, opthdr_ofs + 100); ++# nsections = pe_get16 (dll, pe_header_offset + 4 +2); ++# secptr = (pe_header_offset + 4 + 20 + ++# pe_get16 (dll, pe_header_offset + 4 + 16)); ++# ++# expptr = 0; ++# for (i = 0; i < nsections; i++) ++# { ++# char sname[8]; ++# unsigned long secptr1 = secptr + 40 * i; ++# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ++# unsigned long vsize = pe_get32 (dll, secptr1 + 16); ++# unsigned long fptr = pe_get32 (dll, secptr1 + 20); ++# lseek(dll, secptr1, SEEK_SET); ++# read(dll, sname, 8); ++# if (vaddr <= export_rva && vaddr+vsize > export_rva) ++# { ++# expptr = fptr + (export_rva - vaddr); ++# if (export_rva + export_size > vaddr + vsize) ++# export_size = vsize - (export_rva - vaddr); ++# break; ++# } ++# } ++# ++# expdata = (unsigned char*)malloc(export_size); ++# lseek (dll, expptr, SEEK_SET); ++# read (dll, expdata, export_size); ++# erva = expdata - export_rva; ++# ++# nexp = pe_as32 (expdata+24); ++# name_rvas = pe_as32 (expdata+32); ++# ++# printf ("EXPORTS\n"); ++# for (i = 0; i<nexp; i++) ++# { ++# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); ++# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); ++# } ++# ++# return 0; ++# } ++# /* impgen.c ends here */ ++ ++EOF ++ ;; ++ esac + +-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], +-[*-*-cygwin* | *-*-mingw*) +- AC_CHECK_TOOL(DLLTOOL, dlltool, false) +- AC_CHECK_TOOL(AS, as, false) +- AC_CHECK_TOOL(OBJDUMP, objdump, false) +- ;; +-]) +-esac +-]) ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ++ ++ mv -f "${ofile}T" "$ofile" || \ ++ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ++ chmod +x "$ofile" ++fi ++ ++])# _LT_AC_LTCONFIG_HACK + + # AC_LIBTOOL_DLOPEN - enable checks for dlopen support +-AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) ++AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) + + # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's +-AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) ++AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) + + # AC_ENABLE_SHARED - implement the --enable-shared flag + # Usage: AC_ENABLE_SHARED[(DEFAULT)] + # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to + # `yes'. +-AC_DEFUN(AC_ENABLE_SHARED, [dnl +-define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_DEFUN([AC_ENABLE_SHARED], ++[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE(shared, + changequote(<<, >>)dnl + << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], + changequote([, ])dnl + [p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) +@@ -157,21 +3136,22 @@ + ]) + + # AC_DISABLE_SHARED - set the default shared flag to --disable-shared +-AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_DEFUN([AC_DISABLE_SHARED], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_ENABLE_SHARED(no)]) + + # AC_ENABLE_STATIC - implement the --enable-static flag + # Usage: AC_ENABLE_STATIC[(DEFAULT)] + # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to + # `yes'. +-AC_DEFUN(AC_ENABLE_STATIC, [dnl +-define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_DEFUN([AC_ENABLE_STATIC], ++[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE(static, + changequote(<<, >>)dnl + << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], + changequote([, ])dnl + [p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) +@@ -190,7 +3170,8 @@ + ]) + + # AC_DISABLE_STATIC - set the default static flag to --disable-static +-AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_DEFUN([AC_DISABLE_STATIC], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_ENABLE_STATIC(no)]) + + +@@ -198,14 +3179,14 @@ + # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] + # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to + # `yes'. +-AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl +-define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_DEFUN([AC_ENABLE_FAST_INSTALL], ++[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE(fast-install, + changequote(<<, >>)dnl + << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], + changequote([, ])dnl + [p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) +@@ -223,29 +3204,120 @@ + enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl + ]) + +-# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install +-AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install ++AC_DEFUN([AC_DISABLE_FAST_INSTALL], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_ENABLE_FAST_INSTALL(no)]) + ++# AC_LIBTOOL_PICMODE - implement the --with-pic flag ++# Usage: AC_LIBTOOL_PICMODE[(MODE)] ++# Where MODE is either `yes' or `no'. If omitted, it defaults to ++# `both'. ++AC_DEFUN([AC_LIBTOOL_PICMODE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++pic_mode=ifelse($#,1,$1,default)]) ++ ++ ++# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library ++AC_DEFUN([AC_PATH_TOOL_PREFIX], ++[AC_MSG_CHECKING([for $1]) ++AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, ++[case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++dnl $ac_dummy forces splitting on constant user-supplied paths. ++dnl POSIX.2 word splitting is done only on the output of word expansions, ++dnl not every word. This closes a longstanding sh security hole. ++ ac_dummy="ifelse([$2], , $PATH, [$2])" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$1; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/$1" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac]) ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ AC_MSG_RESULT($MAGIC_CMD) ++else ++ AC_MSG_RESULT(no) ++fi ++]) ++ ++ ++# AC_PATH_MAGIC - find a file program which can recognise a shared library ++AC_DEFUN([AC_PATH_MAGIC], ++[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl ++AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) ++ else ++ MAGIC_CMD=: ++ fi ++fi ++]) ++ ++ + # AC_PROG_LD - find the path to the GNU or non-GNU linker +-AC_DEFUN(AC_PROG_LD, ++AC_DEFUN([AC_PROG_LD], + [AC_ARG_WITH(gnu-ld, + [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], + test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl + ac_prog=ld +-if test "$ac_cv_prog_gcc" = yes; then ++if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) +- ac_prog=`($CC -print-prog-name=ld) 2>&5` +- case "$ac_prog" in ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in + # Accept absolute paths. +-changequote(,)dnl +- [\\/]* | [A-Za-z]:[\\/]*) +- re_direlt='/[^/][^/]*/\.\./' +-changequote([,])dnl ++ [[\\/]]* | [[A-Za-z]]:[[\\/]]*) ++ re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do +@@ -267,17 +3339,17 @@ + else + AC_MSG_CHECKING([for non-GNU ld]) + fi +-AC_CACHE_VAL(ac_cv_path_LD, ++AC_CACHE_VAL(lt_cv_path_LD, + [if test -z "$LD"; then +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then +- ac_cv_path_LD="$ac_dir/$ac_prog" ++ lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. +- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break +@@ -286,9 +3358,9 @@ + done + IFS="$ac_save_ifs" + else +- ac_cv_path_LD="$LD" # Let the user override the test with a path. ++ lt_cv_path_LD="$LD" # Let the user override the test with a path. + fi]) +-LD="$ac_cv_path_LD" ++LD="$lt_cv_path_LD" + if test -n "$LD"; then + AC_MSG_RESULT($LD) + else +@@ -298,56 +3370,255 @@ + AC_PROG_LD_GNU + ]) + +-AC_DEFUN(AC_PROG_LD_GNU, +-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, ++# AC_PROG_LD_GNU - ++AC_DEFUN([AC_PROG_LD_GNU], ++[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, + [# I'd rather use --version here, but apparently some GNU ld's only accept -v. + if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then +- ac_cv_prog_gnu_ld=yes ++ lt_cv_prog_gnu_ld=yes + else +- ac_cv_prog_gnu_ld=no ++ lt_cv_prog_gnu_ld=no + fi]) ++with_gnu_ld=$lt_cv_prog_gnu_ld ++]) ++ ++# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker ++# -- PORTME Some linkers may need a different reload flag. ++AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], ++[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, ++[lt_cv_ld_reload_flag='-r']) ++reload_flag=$lt_cv_ld_reload_flag ++test -n "$reload_flag" && reload_flag=" $reload_flag" ++]) ++ ++# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies ++# -- PORTME fill in with the dynamic library characteristics ++AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], ++[AC_CACHE_CHECK([how to recognise dependent libraries], ++lt_cv_deplibs_check_method, ++[lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix4* | aix5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++bsdi4*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ case "$host_os" in ++ rhapsody* | darwin1.[[012]]) ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ ;; ++ *) # Darwin 1.3 on ++ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ++ ;; ++ esac ++ ;; ++ ++freebsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20*|hpux11*) ++ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ irix5* | nonstopux*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" ++ ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ case $host_cpu in ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | arm* | m68k) ++ lt_cv_deplibs_check_method=pass_all ;; ++ *) ++ # glibc up to 2.1.1 does not perform some relocations on ARM ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++openbsd*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' ++ else ++ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ ++sysv5uw[[78]]* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++esac ++]) ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method + ]) + ++ + # AC_PROG_NM - find the path to a BSD-compatible name lister +-AC_DEFUN(AC_PROG_NM, +-[AC_MSG_CHECKING([for BSD-compatible nm]) +-AC_CACHE_VAL(ac_cv_path_NM, ++AC_DEFUN([AC_PROG_NM], ++[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ++AC_MSG_CHECKING([for BSD-compatible nm]) ++AC_CACHE_VAL(lt_cv_path_NM, + [if test -n "$NM"; then + # Let the user override the test. +- ac_cv_path_NM="$NM" ++ lt_cv_path_NM="$NM" + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then ++ tmp_nm=$ac_dir/${ac_tool_prefix}nm ++ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored +- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then +- ac_cv_path_NM="$ac_dir/nm -B" ++ # Tru64's nm complains that /dev/null is an invalid object file ++ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -B" + break +- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then +- ac_cv_path_NM="$ac_dir/nm -p" ++ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -p" + break + else +- ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" +- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm ++ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm + fi]) +-NM="$ac_cv_path_NM" ++NM="$lt_cv_path_NM" + AC_MSG_RESULT([$NM]) + ]) + + # AC_CHECK_LIBM - check for math library +-AC_DEFUN(AC_CHECK_LIBM, ++AC_DEFUN([AC_CHECK_LIBM], + [AC_REQUIRE([AC_CANONICAL_HOST])dnl + LIBM= +-case "$lt_target" in +-*-*-beos* | *-*-cygwin*) ++case $host in ++*-*-beos* | *-*-cygwin* | *-*-pw32*) + # These system don't have libm + ;; + *-ncr-sysv4.3*) +@@ -361,33 +3632,41 @@ + ]) + + # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for +-# the libltdl convenience library, adds --enable-ltdl-convenience to +-# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor +-# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed +-# to be `${top_builddir}/libltdl'. Make sure you start DIR with +-# '${top_builddir}/' (note the single quotes!) if your package is not +-# flat, and, if you're not using automake, define top_builddir as +-# appropriate in the Makefiles. +-AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +- case "$enable_ltdl_convenience" in ++# the libltdl convenience library and LTDLINCL to the include flags for ++# the libltdl header and adds --enable-ltdl-convenience to the ++# configure arguments. Note that LIBLTDL and LTDLINCL are not ++# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not ++# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed ++# with '${top_builddir}/' and LTDLINCL will be prefixed with ++# '${top_srcdir}/' (note the single quotes!). If your package is not ++# flat and you're not using automake, define top_builddir and ++# top_srcdir appropriately in the Makefiles. ++AC_DEFUN([AC_LIBLTDL_CONVENIENCE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++ case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac +- LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la +- INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) ++ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la ++ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ++ # For backwards non-gettext consistent compatibility... ++ INCLTDL="$LTDLINCL" + ]) + + # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for +-# the libltdl installable library, and adds --enable-ltdl-install to +-# the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor +-# is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed +-# to be `${top_builddir}/libltdl'. Make sure you start DIR with +-# '${top_builddir}/' (note the single quotes!) if your package is not +-# flat, and, if you're not using automake, define top_builddir as +-# appropriate in the Makefiles. ++# the libltdl installable library and LTDLINCL to the include flags for ++# the libltdl header and adds --enable-ltdl-install to the configure ++# arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is ++# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed ++# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will ++# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed ++# with '${top_srcdir}/' (note the single quotes!). If your package is ++# not flat and you're not using automake, define top_builddir and ++# top_srcdir appropriately in the Makefiles. + # In the future, this macro may have to be called after AC_PROG_LIBTOOL. +-AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_DEFUN([AC_LIBLTDL_INSTALLABLE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, main, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then +@@ -398,27 +3677,266 @@ + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" +- LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la +- INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl']) ++ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la ++ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" +- INCLTDL= ++ LTDLINCL= + fi ++ # For backwards non-gettext consistent compatibility... ++ INCLTDL="$LTDLINCL" ++]) ++ ++# old names ++AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) ++AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) ++AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) ++AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) ++AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) ++AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) ++AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) ++ ++# This is just to silence aclocal about the macro not being used ++ifelse([AC_DISABLE_FAST_INSTALL]) ++ ++# NOTE: This macro has been submitted for inclusion into # ++# GNU Autoconf as AC_PROG_SED. When it is available in # ++# a released version of Autoconf we should remove this # ++# macro and use it instead. # ++# LT_AC_PROG_SED ++# -------------- ++# Check for a fully-functional sed program, that truncates ++# as few characters as possible. Prefer GNU sed if found. ++AC_DEFUN([LT_AC_PROG_SED], ++[AC_MSG_CHECKING([for a sed that does not truncate output]) ++AC_CACHE_VAL(lt_cv_path_SED, ++[# Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_executable_p="test -f" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++ ++ # Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++: ${TMPDIR=/tmp} ++{ ++ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=$TMPDIR/sed$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ++ { (exit 1); exit 1; } ++} ++ _max=0 ++ _count=0 ++ # Add /usr/xpg4/bin/sed as it is typically found on Solaris ++ # along with /bin/sed that truncates output. ++ for _sed in $_sed_list /usr/xpg4/bin/sed; do ++ test ! -f ${_sed} && break ++ cat /dev/null > "$tmp/sed.in" ++ _count=0 ++ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ++ # Check for GNU sed and select it if it is found. ++ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ++ lt_cv_path_SED=${_sed} ++ break ++ fi ++ while true; do ++ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ++ mv "$tmp/sed.tmp" "$tmp/sed.in" ++ cp "$tmp/sed.in" "$tmp/sed.nl" ++ echo >>"$tmp/sed.nl" ++ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ++ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ++ # 40000 chars as input seems more than enough ++ test $_count -gt 10 && break ++ _count=`expr $_count + 1` ++ if test $_count -gt $_max; then ++ _max=$_count ++ lt_cv_path_SED=$_sed ++ fi ++ done ++ done ++ rm -rf "$tmp" ++]) ++if test "X$SED" != "X"; then ++ lt_cv_path_SED=$SED ++else ++ SED=$lt_cv_path_SED ++fi ++AC_MSG_RESULT([$SED]) ++]) ++ ++# Add --enable-maintainer-mode option to configure. ++# From Jim Meyering ++ ++# serial 1 ++ ++AC_DEFUN([AM_MAINTAINER_MODE], ++[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) ++ dnl maintainer-mode is disabled by default ++ AC_ARG_ENABLE(maintainer-mode, ++[ --enable-maintainer-mode enable make rules and dependencies not useful ++ (and sometimes confusing) to the casual installer], ++ USE_MAINTAINER_MODE=$enableval, ++ USE_MAINTAINER_MODE=no) ++ AC_MSG_RESULT($USE_MAINTAINER_MODE) ++ AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) ++ MAINT=$MAINTAINER_MODE_TRUE ++ AC_SUBST(MAINT)dnl ++] ++) ++ ++# Define a conditional. ++ ++AC_DEFUN([AM_CONDITIONAL], ++[AC_SUBST($1_TRUE) ++AC_SUBST($1_FALSE) ++if $2; then ++ $1_TRUE= ++ $1_FALSE='#' ++else ++ $1_TRUE='#' ++ $1_FALSE= ++fi]) ++ ++# isc-posix.m4 serial 2 (gettext-0.11.2) ++dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. ++dnl This file is free software, distributed under the terms of the GNU ++dnl General Public License. As a special exception to the GNU General ++dnl Public License, this file may be distributed as part of a program ++dnl that contains a configuration script generated by Autoconf, under ++dnl the same distribution terms as the rest of that program. ++ ++# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. ++ ++# This test replaces the one in autoconf. ++# Currently this macro should have the same name as the autoconf macro ++# because gettext's gettext.m4 (distributed in the automake package) ++# still uses it. Otherwise, the use in gettext.m4 makes autoheader ++# give these diagnostics: ++# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX ++# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX ++ ++undefine([AC_ISC_POSIX]) ++ ++AC_DEFUN([AC_ISC_POSIX], ++ [ ++ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. ++ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ++ ] ++) ++ ++ ++# serial 1 ++ ++# @defmac AC_PROG_CC_STDC ++# @maindex PROG_CC_STDC ++# @ovindex CC ++# If the C compiler in not in ANSI C mode by default, try to add an option ++# to output variable @code{CC} to make it so. This macro tries various ++# options that select ANSI C on some system or another. It considers the ++# compiler to be in ANSI C mode if it handles function prototypes correctly. ++# ++# If you use this macro, you should check after calling it whether the C ++# compiler has been set to accept ANSI C; if not, the shell variable ++# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source ++# code in ANSI C, you can make an un-ANSIfied copy of it by using the ++# program @code{ansi2knr}, which comes with Ghostscript. ++# @end defmac ++ ++AC_DEFUN([AM_PROG_CC_STDC], ++[AC_REQUIRE([AC_PROG_CC]) ++AC_BEFORE([$0], [AC_C_INLINE]) ++AC_BEFORE([$0], [AC_C_CONST]) ++dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require ++dnl a magic option to avoid problems with ANSI preprocessor commands ++dnl like #elif. ++dnl FIXME: can't do this because then AC_AIX won't work due to a ++dnl circular dependency. ++dnl AC_BEFORE([$0], [AC_PROG_CPP]) ++AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) ++AC_CACHE_VAL(am_cv_prog_cc_stdc, ++[am_cv_prog_cc_stdc=no ++ac_save_CC="$CC" ++# Don't try gcc -ansi; that turns off useful extensions and ++# breaks some systems' header files. ++# AIX -qlanglvl=ansi ++# Ultrix and OSF/1 -std1 ++# HP-UX -Aa -D_HPUX_SOURCE ++# SVR4 -Xc -D__EXTENSIONS__ ++for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ++do ++ CC="$ac_save_CC $ac_arg" ++ AC_TRY_COMPILE( ++[#include <stdarg.h> ++#include <stdio.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ++struct buf { int x; }; ++FILE * (*rcsopen) (struct buf *, struct stat *, int); ++static char *e (p, i) ++ char **p; ++ int i; ++{ ++ return p[i]; ++} ++static char *f (char * (*g) (char **, int), char **p, ...) ++{ ++ char *s; ++ va_list v; ++ va_start (v,p); ++ s = g (p, va_arg (v,int)); ++ va_end (v); ++ return s; ++} ++int test (int i, double x); ++struct s1 {int (*f) (int a);}; ++struct s2 {int (*f) (double a);}; ++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ++int argc; ++char **argv; ++], [ ++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++], ++[am_cv_prog_cc_stdc="$ac_arg"; break]) ++done ++CC="$ac_save_CC" ++]) ++if test -z "$am_cv_prog_cc_stdc"; then ++ AC_MSG_RESULT([none needed]) ++else ++ AC_MSG_RESULT($am_cv_prog_cc_stdc) ++fi ++case "x$am_cv_prog_cc_stdc" in ++ x|xno) ;; ++ *) CC="$CC $am_cv_prog_cc_stdc" ;; ++esac + ]) + +-dnl old names +-AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl +-AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl +-AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl +-AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl +-AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl +-AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl +-AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl +- +-dnl This is just to silence aclocal about the macro not being used +-ifelse([AC_DISABLE_FAST_INSTALL])dnl +- + # Macro to add for using GNU gettext. + # Ulrich Drepper <drepper@cygnus.com>, 1995. + # +@@ -756,20 +4274,31 @@ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + ++# progtest.m4 serial 2 (gettext-0.10.40) ++dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. ++dnl This file is free software, distributed under the terms of the GNU ++dnl General Public License. As a special exception to the GNU General ++dnl Public License, this file may be distributed as part of a program ++dnl that contains a configuration script generated by Autoconf, under ++dnl the same distribution terms as the rest of that program. ++dnl ++dnl This file can can be used in projects which are not available under ++dnl the GNU General Public License or the GNU Library General Public ++dnl License but which still want to provide support for the GNU gettext ++dnl functionality. ++dnl Please note that the actual code of the GNU gettext library is covered ++dnl by the GNU Library General Public License, and the rest of the GNU ++dnl gettext package package is covered by the GNU General Public License. ++dnl They are *not* in the public domain. + +-# Search path for a program which passes the given test. +-# Ulrich Drepper <drepper@cygnus.com>, 1996. +-# +-# This file can be copied and used freely without restrictions. It can +-# be used in projects which are not available under the GNU Public License +-# but which still want to provide support for the GNU gettext functionality. +-# Please note that the actual code is *not* freely available. ++dnl Authors: ++dnl Ulrich Drepper <drepper@cygnus.com>, 1996. + +-# serial 1 ++# Search path for a program which passes the given test. + + dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, + dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +-AC_DEFUN(AM_PATH_PROG_WITH_TEST, ++AC_DEFUN([AM_PATH_PROG_WITH_TEST], + [# Extract the first word of "$2", so it can be a program name with args. + set dummy $2; ac_word=[$]2 + AC_MSG_CHECKING([for $ac_word]) +@@ -797,7 +4326,7 @@ + ;; + esac])dnl + $1="$ac_cv_path_$1" +-if test -n "[$]$1"; then ++if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) + else + AC_MSG_RESULT(no) +@@ -805,260 +4334,37 @@ + AC_SUBST($1)dnl + ]) + +-# Check whether LC_MESSAGES is available in <locale.h>. +-# Ulrich Drepper <drepper@cygnus.com>, 1995. +-# +-# This file can be copied and used freely without restrictions. It can +-# be used in projects which are not available under the GNU Public License +-# but which still want to provide support for the GNU gettext functionality. +-# Please note that the actual code is *not* freely available. +- +-# serial 1 +- +-AC_DEFUN(AM_LC_MESSAGES, +- [if test $ac_cv_header_locale_h = yes; then +- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, +- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], +- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) +- if test $am_cv_val_LC_MESSAGES = yes; then +- AC_DEFINE(HAVE_LC_MESSAGES) +- fi +- fi]) +- +-# Do all the work for Automake. This macro actually does too much -- +-# some checks are only needed if your package does certain things. +-# But this isn't really a big deal. +- +-# serial 1 +- +-dnl Usage: +-dnl AM_INIT_AUTOMAKE(package,version, [no-define]) +- +-AC_DEFUN(AM_INIT_AUTOMAKE, +-[AC_REQUIRE([AC_PROG_INSTALL]) +-PACKAGE=[$1] +-AC_SUBST(PACKAGE) +-VERSION=[$2] +-AC_SUBST(VERSION) +-dnl test to see if srcdir already configured +-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then +- AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +-fi +-ifelse([$3],, +-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +-AC_REQUIRE([AM_SANITY_CHECK]) +-AC_REQUIRE([AC_ARG_PROGRAM]) +-dnl FIXME This is truly gross. +-missing_dir=`cd $ac_aux_dir && pwd` +-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +-AC_REQUIRE([AC_PROG_MAKE_SET])]) +- +-# +-# Check to make sure that the build environment is sane. +-# +- +-AC_DEFUN(AM_SANITY_CHECK, +-[AC_MSG_CHECKING([whether build environment is sane]) +-# Just in case +-sleep 1 +-echo timestamp > conftestfile +-# Do `set' in a subshell so we don't clobber the current shell's +-# arguments. Must try -L first in case configure is actually a +-# symlink; some systems play weird games with the mod time of symlinks +-# (eg FreeBSD returns the mod time of the symlink's containing +-# directory). +-if ( +- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` +- if test "[$]*" = "X"; then +- # -L didn't work. +- set X `ls -t $srcdir/configure conftestfile` +- fi +- if test "[$]*" != "X $srcdir/configure conftestfile" \ +- && test "[$]*" != "X conftestfile $srcdir/configure"; then +- +- # If neither matched, then we have a broken ls. This can happen +- # if, for instance, CONFIG_SHELL is bash and it inherits a +- # broken ls alias from the environment. This has actually +- # happened. Such a system could not be considered "sane". +- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +-alias in your environment]) +- fi +- +- test "[$]2" = conftestfile +- ) +-then +- # Ok. +- : +-else +- AC_MSG_ERROR([newly created file is older than distributed files! +-Check your system clock]) +-fi +-rm -f conftest* +-AC_MSG_RESULT(yes)]) +- +-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +-dnl The program must properly implement --version. +-AC_DEFUN(AM_MISSING_PROG, +-[AC_MSG_CHECKING(for working $2) +-# Run test in a subshell; some versions of sh will print an error if +-# an executable is not found, even if stderr is redirected. +-# Redirect stdin to placate older versions of autoconf. Sigh. +-if ($2 --version) < /dev/null > /dev/null 2>&1; then +- $1=$2 +- AC_MSG_RESULT(found) +-else +- $1="$3/missing $2" +- AC_MSG_RESULT(missing) +-fi +-AC_SUBST($1)]) +- +-# Like AC_CONFIG_HEADER, but automatically create stamp file. +- +-AC_DEFUN(AM_CONFIG_HEADER, +-[AC_PREREQ([2.12]) +-AC_CONFIG_HEADER([$1]) +-dnl When config.status generates a header, we must update the stamp-h file. +-dnl This file resides in the same directory as the config header +-dnl that is generated. We must strip everything past the first ":", +-dnl and everything past the last "/". +-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl +-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, +-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, +-<<am_indx=1 +-for am_file in <<$1>>; do +- case " <<$>>CONFIG_HEADERS " in +- *" <<$>>am_file "*<<)>> +- echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx +- ;; +- esac +- am_indx=`expr "<<$>>am_indx" + 1` +-done<<>>dnl>>) +-changequote([,]))]) +- +-# Add --enable-maintainer-mode option to configure. +-# From Jim Meyering +- +-# serial 1 +- +-AC_DEFUN(AM_MAINTAINER_MODE, +-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) +- dnl maintainer-mode is disabled by default +- AC_ARG_ENABLE(maintainer-mode, +-[ --enable-maintainer-mode enable make rules and dependencies not useful +- (and sometimes confusing) to the casual installer], +- USE_MAINTAINER_MODE=$enableval, +- USE_MAINTAINER_MODE=no) +- AC_MSG_RESULT($USE_MAINTAINER_MODE) +- AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) +- MAINT=$MAINTAINER_MODE_TRUE +- AC_SUBST(MAINT)dnl +-] +-) +- +-# Define a conditional. +- +-AC_DEFUN(AM_CONDITIONAL, +-[AC_SUBST($1_TRUE) +-AC_SUBST($1_FALSE) +-if $2; then +- $1_TRUE= +- $1_FALSE='#' +-else +- $1_TRUE='#' +- $1_FALSE= +-fi]) +- ++# lcmessage.m4 serial 3 (gettext-0.11.3) ++dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. ++dnl This file is free software, distributed under the terms of the GNU ++dnl General Public License. As a special exception to the GNU General ++dnl Public License, this file may be distributed as part of a program ++dnl that contains a configuration script generated by Autoconf, under ++dnl the same distribution terms as the rest of that program. ++dnl ++dnl This file can can be used in projects which are not available under ++dnl the GNU General Public License or the GNU Library General Public ++dnl License but which still want to provide support for the GNU gettext ++dnl functionality. ++dnl Please note that the actual code of the GNU gettext library is covered ++dnl by the GNU Library General Public License, and the rest of the GNU ++dnl gettext package package is covered by the GNU General Public License. ++dnl They are *not* in the public domain. + +-# serial 1 ++dnl Authors: ++dnl Ulrich Drepper <drepper@cygnus.com>, 1995. + +-# @defmac AC_PROG_CC_STDC +-# @maindex PROG_CC_STDC +-# @ovindex CC +-# If the C compiler in not in ANSI C mode by default, try to add an option +-# to output variable @code{CC} to make it so. This macro tries various +-# options that select ANSI C on some system or another. It considers the +-# compiler to be in ANSI C mode if it handles function prototypes correctly. +-# +-# If you use this macro, you should check after calling it whether the C +-# compiler has been set to accept ANSI C; if not, the shell variable +-# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source +-# code in ANSI C, you can make an un-ANSIfied copy of it by using the +-# program @code{ansi2knr}, which comes with Ghostscript. +-# @end defmac ++# Check whether LC_MESSAGES is available in <locale.h>. + +-AC_DEFUN(AM_PROG_CC_STDC, +-[AC_REQUIRE([AC_PROG_CC]) +-AC_BEFORE([$0], [AC_C_INLINE]) +-AC_BEFORE([$0], [AC_C_CONST]) +-dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require +-dnl a magic option to avoid problems with ANSI preprocessor commands +-dnl like #elif. +-dnl FIXME: can't do this because then AC_AIX won't work due to a +-dnl circular dependency. +-dnl AC_BEFORE([$0], [AC_PROG_CPP]) +-AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C) +-AC_CACHE_VAL(am_cv_prog_cc_stdc, +-[am_cv_prog_cc_stdc=no +-ac_save_CC="$CC" +-# Don't try gcc -ansi; that turns off useful extensions and +-# breaks some systems' header files. +-# AIX -qlanglvl=ansi +-# Ultrix and OSF/1 -std1 +-# HP-UX -Aa -D_HPUX_SOURCE +-# SVR4 -Xc -D__EXTENSIONS__ +-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +-do +- CC="$ac_save_CC $ac_arg" +- AC_TRY_COMPILE( +-[#include <stdarg.h> +-#include <stdio.h> +-#include <sys/types.h> +-#include <sys/stat.h> +-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +-struct buf { int x; }; +-FILE * (*rcsopen) (struct buf *, struct stat *, int); +-static char *e (p, i) +- char **p; +- int i; +-{ +- return p[i]; +-} +-static char *f (char * (*g) (char **, int), char **p, ...) +-{ +- char *s; +- va_list v; +- va_start (v,p); +- s = g (p, va_arg (v,int)); +- va_end (v); +- return s; +-} +-int test (int i, double x); +-struct s1 {int (*f) (int a);}; +-struct s2 {int (*f) (double a);}; +-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +-int argc; +-char **argv; +-], [ +-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +-], +-[am_cv_prog_cc_stdc="$ac_arg"; break]) +-done +-CC="$ac_save_CC" +-]) +-if test -z "$am_cv_prog_cc_stdc"; then +- AC_MSG_RESULT([none needed]) +-else +- AC_MSG_RESULT($am_cv_prog_cc_stdc) +-fi +-case "x$am_cv_prog_cc_stdc" in +- x|xno) ;; +- *) CC="$CC $am_cv_prog_cc_stdc" ;; +-esac ++AC_DEFUN([AM_LC_MESSAGES], ++[ ++ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, ++ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], ++ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) ++ if test $am_cv_val_LC_MESSAGES = yes; then ++ AC_DEFINE(HAVE_LC_MESSAGES, 1, ++ [Define if your <locale.h> file defines LC_MESSAGES.]) ++ fi + ]) + + # Configure paths for GLIB +--- gtk+1.2-1.2.10.orig/config.guess ++++ gtk+1.2-1.2.10/config.guess +@@ -1,8 +1,10 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 +-# Free Software Foundation, Inc. +-# ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ++ ++timestamp='2005-08-03' ++ + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 2 of the License, or +@@ -15,159 +17,290 @@ + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + +-# Written by Per Bothner <bothner@cygnus.com>. +-# The master version of this file is at the FSF in /home/gd/gnu/lib. +-# Please send patches to <autoconf-patches@gnu.org>. ++ ++# Originally written by Per Bothner <per@bothner.com>. ++# Please send patches to <config-patches@gnu.org>. Submit a context ++# diff and a properly formatted ChangeLog entry. + # + # This script attempts to guess a canonical system name similar to + # config.sub. If it succeeds, it prints the system name on stdout, and + # exits with 0. Otherwise, it exits with 1. + # + # The plan is that this can be called by configure scripts if you +-# don't specify an explicit system type (host/target name). +-# +-# Only a few systems have been added to this list; please add others +-# (but try to keep the structure clean). +-# ++# don't specify an explicit build system type. + +-# Use $HOST_CC if defined. $CC may point to a cross-compiler +-if test x"$CC_FOR_BUILD" = x; then +- if test x"$HOST_CC" != x; then +- CC_FOR_BUILD="$HOST_CC" +- else +- if test x"$CC" != x; then +- CC_FOR_BUILD="$CC" +- else +- CC_FOR_BUILD=cc +- fi +- fi ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] ++ ++Output the configuration name of the system \`$me' is run on. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.guess ($timestamp) ++ ++Originally written by Per Bothner. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" >&2 ++ exit 1 ;; ++ * ) ++ break ;; ++ esac ++done ++ ++if test $# != 0; then ++ echo "$me: too many arguments$help" >&2 ++ exit 1 + fi + ++trap 'exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a ++# compiler to aid in system detection is discouraged as it requires ++# temporary files to be created and, as you can see below, it is a ++# headache to deal with in a portable fashion. ++ ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++# Portable tmp directory creation inspired by the Autoconf team. ++ ++set_cc_for_build=' ++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ++: ${TMPDIR=/tmp} ; ++ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || ++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ++dummy=$tmp/dummy ; ++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int x;" > $dummy.c ; ++ for c in cc gcc c89 c99 ; do ++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then ++ CC_FOR_BUILD="$c"; break ; ++ fi ; ++ done ; ++ if test x"$CC_FOR_BUILD" = x ; then ++ CC_FOR_BUILD=no_compiler_found ; ++ fi ++ ;; ++ ,,*) CC_FOR_BUILD=$CC ;; ++ ,*,*) CC_FOR_BUILD=$HOST_CC ;; ++esac ; set_cc_for_build= ;' + + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. +-# (ghazi@noc.rutgers.edu 8/24/94.) ++# (ghazi@noc.rutgers.edu 1994-08-24) + if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH + fi + + UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown + UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +-dummy=dummy-$$ +-trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15 +- + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++ *:NetBSD:*:*) ++ # NetBSD (nbsd) targets should (where applicable) match one or ++ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently ++ # switched to ELF, *-*-netbsd* would select the old ++ # object file format. This provides both forward ++ # compatibility and a consistent mechanism for selecting the ++ # object file format. ++ # ++ # Note: NetBSD doesn't particularly care about the vendor ++ # portion of the name. We always set it to "unknown". ++ sysctl="sysctl -n hw.machine_arch" ++ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ case "${UNAME_MACHINE_ARCH}" in ++ armeb) machine=armeb-unknown ;; ++ arm*) machine=arm-unknown ;; ++ sh3el) machine=shl-unknown ;; ++ sh3eb) machine=sh-unknown ;; ++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE_ARCH}" in ++ arm*|i386|m68k|ns32k|sh3*|sparc|vax) ++ eval $set_cc_for_build ++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep __ELF__ >/dev/null ++ then ++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). ++ # Return netbsd for either. FIX? ++ os=netbsd ++ else ++ os=netbsdelf ++ fi ++ ;; ++ *) ++ os=netbsd ++ ;; ++ esac ++ # The OS release ++ # Debian GNU/NetBSD machines have a different userland, and ++ # thus, need a distinct triplet. However, they do not need ++ # kernel version information, so it can be replaced with a ++ # suitable tag, in the style of linux-gnu. ++ case "${UNAME_VERSION}" in ++ Debian*) ++ release='-gnu' ++ ;; ++ *) ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ ;; ++ esac ++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: ++ # contains redundant information, the shorter form: ++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. ++ echo "${machine}-${os}${release}" ++ exit ;; ++ *:OpenBSD:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; ++ *:ekkoBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ++ exit ;; ++ macppc:MirBSD:*:*) ++ echo powerppc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ *:MirBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; + alpha:OSF1:*:*) +- if test $UNAME_RELEASE = "V4.0"; then ++ case $UNAME_RELEASE in ++ *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` +- fi ++ ;; ++ *5.*) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ ;; ++ esac ++ # According to Compaq, /usr/sbin/psrinfo has been available on ++ # OSF/1 and Tru64 systems produced since 1995. I hope that ++ # covers most systems running today. This code pipes the CPU ++ # types through head -n 1, so we only detect the type of CPU 0. ++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ++ case "$ALPHA_CPU_TYPE" in ++ "EV4 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "EV4.5 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "LCA4 (21066/21068)") ++ UNAME_MACHINE="alpha" ;; ++ "EV5 (21164)") ++ UNAME_MACHINE="alphaev5" ;; ++ "EV5.6 (21164A)") ++ UNAME_MACHINE="alphaev56" ;; ++ "EV5.6 (21164PC)") ++ UNAME_MACHINE="alphapca56" ;; ++ "EV5.7 (21164PC)") ++ UNAME_MACHINE="alphapca57" ;; ++ "EV6 (21264)") ++ UNAME_MACHINE="alphaev6" ;; ++ "EV6.7 (21264A)") ++ UNAME_MACHINE="alphaev67" ;; ++ "EV6.8CB (21264C)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8AL (21264B)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8CX (21264D)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.9A (21264/EV69A)") ++ UNAME_MACHINE="alphaev69" ;; ++ "EV7 (21364)") ++ UNAME_MACHINE="alphaev7" ;; ++ "EV7.9 (21364A)") ++ UNAME_MACHINE="alphaev79" ;; ++ esac ++ # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. +- cat <<EOF >$dummy.s +- .globl main +- .ent main +-main: +- .frame \$30,0,\$26,0 +- .prologue 0 +- .long 0x47e03d80 # implver $0 +- lda \$2,259 +- .long 0x47e20c21 # amask $2,$1 +- srl \$1,8,\$2 +- sll \$2,2,\$2 +- sll \$0,3,\$0 +- addl \$1,\$0,\$0 +- addl \$2,\$0,\$0 +- ret \$31,(\$26),1 +- .end main +-EOF +- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null +- if test "$?" = 0 ; then +- ./$dummy +- case "$?" in +- 7) +- UNAME_MACHINE="alpha" +- ;; +- 15) +- UNAME_MACHINE="alphaev5" +- ;; +- 14) +- UNAME_MACHINE="alphaev56" +- ;; +- 10) +- UNAME_MACHINE="alphapca56" +- ;; +- 16) +- UNAME_MACHINE="alphaev6" +- ;; +- esac +- fi +- rm -f $dummy.s $dummy +- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit 0 ;; ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix +- exit 0 ;; ++ exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 +- exit 0 ;; ++ exit ;; + Amiga*:UNIX_System_V:4.0:*) +- echo m68k-cbm-sysv4 +- exit 0;; +- amiga:NetBSD:*:*) +- echo m68k-cbm-netbsd${UNAME_RELEASE} +- exit 0 ;; +- amiga:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ echo m68k-unknown-sysv4 ++ exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos +- exit 0 ;; +- arc64:OpenBSD:*:*) +- echo mips64el-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- arc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- hkmips:OpenBSD:*:*) +- echo mips-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- pmax:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- sgi:OpenBSD:*:*) +- echo mips-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- wgrisc:OpenBSD:*:*) +- echo mipsel-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ *:[Mm]orph[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-morphos ++ exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition +- exit 0 ;; ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; ++ *:OS400:*:*) ++ echo powerpc-ibm-os400 ++ exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} +- exit 0;; +- arm32:NetBSD:*:*) +- echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` +- exit 0 ;; +- SR2?01:HI-UX/MPP:*:*) ++ exit ;; ++ arm:riscos:*:*|arm:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp +- exit 0;; ++ exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then +@@ -175,25 +308,32 @@ + else + echo pyramid-pyramid-bsd + fi +- exit 0 ;; ++ exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 +- exit 0 ;; ++ exit ;; ++ DRS?6000:unix:4.0:6*) ++ echo sparc-icl-nx6 ++ exit ;; ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) ++ case `/usr/bin/uname -p` in ++ sparc) echo sparc-icl-nx7; exit ;; ++ esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) +@@ -202,12 +342,12 @@ + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` +- exit 0 ;; ++ exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + sun*:*:4.2BSD:*) +- UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) +@@ -217,19 +357,13 @@ + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac +- exit 0 ;; ++ exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} +- exit 0 ;; +- atari*:NetBSD:*:*) +- echo m68k-atari-netbsd${UNAME_RELEASE} +- exit 0 ;; +- atari*:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not +- # "atarist" or "atariste" at least should have a processor ++ # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not +@@ -237,61 +371,45 @@ + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} +- exit 0 ;; +- sun3*:NetBSD:*:*) +- echo m68k-sun-netbsd${UNAME_RELEASE} +- exit 0 ;; +- sun3*:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mac68k:NetBSD:*:*) +- echo m68k-apple-netbsd${UNAME_RELEASE} +- exit 0 ;; +- mac68k:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvme68k:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- mvme88k:OpenBSD:*:*) +- echo m88k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ m68k:machten:*:*) ++ echo m68k-apple-machten${UNAME_RELEASE} ++ exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} +- exit 0 ;; +- macppc:NetBSD:*:*) +- echo powerpc-apple-netbsd${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 +- exit 0 ;; ++ exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) ++ eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __cplusplus ++#include <stdio.h> /* for printf() prototype */ + int main (int argc, char *argv[]) { + #else + int main (argc, argv) int argc; char *argv[]; { +@@ -310,28 +428,37 @@ + exit (-1); + } + EOF +- $CC_FOR_BUILD $dummy.c -o $dummy \ +- && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ +- && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit ;; ++ Motorola:*:4.3:PL8-*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) ++ echo powerpc-harris-powermax ++ exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix +- exit 0 ;; ++ exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 +- exit 0 ;; ++ exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 +- exit 0 ;; ++ exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 +- exit 0 ;; ++ exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` +- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110] ++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] +@@ -343,31 +470,40 @@ + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit 0 ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 +- exit 0 ;; ++ exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 +- exit 0 ;; ++ exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 +- exit 0 ;; ++ exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd +- exit 0 ;; ++ exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` +- exit 0 ;; ++ exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. +- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id +- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' +- i?86:AIX:*:*) ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ i*86:AIX:*:*) + echo i386-ibm-aix +- exit 0 ;; ++ exit ;; ++ ia64:AIX:*:*) ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ++ exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ++ eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + +@@ -379,18 +515,21 @@ + exit(0); + } + EOF +- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy +- echo rs6000-ibm-aix3.2.5 ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi +- exit 0 ;; +- *:AIX:*:4) +- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` +- if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then ++ exit ;; ++ *:AIX:*:[45]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` ++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc +@@ -398,37 +537,56 @@ + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else +- IBM_REV=4.${UNAME_RELEASE} ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} +- exit 0 ;; ++ exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix +- exit 0 ;; ++ exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 +- exit 0 ;; +- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and ++ exit ;; ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to +- exit 0 ;; # report: romp-ibm BSD 4.3 ++ exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx +- exit 0 ;; ++ exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 +- exit 0 ;; ++ exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd +- exit 0 ;; ++ exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 +- exit 0 ;; ++ exit ;; + 9000/[34678]??:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) +- sed 's/^ //' << EOF >$dummy.c ++ if [ -x /usr/bin/getconf ]; then ++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; ++ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 ++ esac ;; ++ esac ++ fi ++ if [ "${HP_ARCH}" = "" ]; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + +@@ -459,13 +617,39 @@ + exit (0); + } + EOF +- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` +- rm -f $dummy.c $dummy ++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ++ test -z "$HP_ARCH" && HP_ARCH=hppa ++ fi ;; + esac +- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ if [ ${HP_ARCH} = "hppa2.0w" ] ++ then ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=cc ./config.guess ++ # => hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess ++ # => hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep __LP64__ >/dev/null ++ then ++ HP_ARCH="hppa2.0w" ++ else ++ HP_ARCH="hppa64" ++ fi ++ fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} +- exit 0 ;; ++ exit ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit ;; + 3050*:HI-UX:*:*) ++ eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int +@@ -491,434 +675,447 @@ + exit (0); + } + EOF +- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 +- exit 0 ;; ++ exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd +- exit 0 ;; ++ exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd +- exit 0 ;; +- *9??*:MPE/iX:*:*) ++ exit ;; ++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix +- exit 0 ;; ++ exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf +- exit 0 ;; ++ exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf +- exit 0 ;; +- i?86:OSF1:*:*) ++ exit ;; ++ i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi +- exit 0 ;; ++ exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites +- exit 0 ;; +- hppa*:OpenBSD:*:*) +- echo hppa-unknown-openbsd +- exit 0 ;; ++ exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit 0 ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit 0 ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit 0 ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit 0 ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit 0 ;; +- CRAY*X-MP:*:*:*) +- echo xmp-cray-unicos +- exit 0 ;; ++ exit ;; + CRAY*Y-MP:*:*:*) +- echo ymp-cray-unicos${UNAME_RELEASE} +- exit 0 ;; ++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ +- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ +- exit 0 ;; ++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ ++ -e 's/\.[^.]*$/.X/' ++ exit ;; + CRAY*TS:*:*:*) +- echo t90-cray-unicos${UNAME_RELEASE} +- exit 0 ;; ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; + CRAY*T3E:*:*:*) +- echo alpha-cray-unicosmk${UNAME_RELEASE} +- exit 0 ;; +- CRAY-2:*:*:*) +- echo cray2-cray-unicos +- exit 0 ;; +- F300:UNIX_System_V:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ *:UNICOS/mp:*:*) ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) ++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit 0 ;; +- F301:UNIX_System_V:*:*) +- echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` +- exit 0 ;; +- hp3[0-9][05]:NetBSD:*:*) +- echo m68k-hp-netbsd${UNAME_RELEASE} +- exit 0 ;; +- hp300:OpenBSD:*:*) +- echo m68k-unknown-openbsd${UNAME_RELEASE} +- exit 0 ;; +- i?86:BSD/386:*:* | i?86:BSD/OS:*:*) ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ 5000:UNIX_System_V:4.*:*) ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:FreeBSD:*:*) +- if test -x /usr/bin/objformat; then +- if test "elf" = "`/usr/bin/objformat`"; then +- echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'` +- exit 0 +- fi +- fi + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` +- exit 0 ;; +- *:NetBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'` +- exit 0 ;; +- *:OpenBSD:*:*) +- echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` +- exit 0 ;; ++ exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin +- exit 0 ;; ++ exit ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 +- exit 0 ;; ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit ;; ++ x86:Interix*:[34]*) ++ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' ++ exit ;; ++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ++ echo i${UNAME_MACHINE}-pc-mks ++ exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? +- echo i386-pc-interix +- exit 0 ;; ++ echo i586-pc-interix ++ exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin +- exit 0 ;; ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin +- exit 0 ;; ++ exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` +- exit 0 ;; ++ exit ;; + *:GNU:*:*) ++ # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` +- exit 0 ;; +- *:Linux:*:*) +- ++ exit ;; ++ *:GNU/*:*:*) ++ # other systems with GNU libc and userland ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ exit ;; ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit ;; ++ arm*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ cris:Linux:*:*) ++ echo cris-axis-linux-gnu ++ exit ;; ++ crisv32:Linux:*:*) ++ echo crisv32-axis-linux-gnu ++ exit ;; ++ frv:Linux:*:*) ++ echo frv-unknown-linux-gnu ++ exit ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ mips:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips ++ #undef mipsel ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mipsel ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ mips64:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips64 ++ #undef mips64el ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mips64el ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips64 ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ or32:Linux:*:*) ++ echo or32-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++ PA7*) echo hppa1.1-unknown-linux-gnu ;; ++ PA8*) echo hppa2.0-unknown-linux-gnu ;; ++ *) echo hppa-unknown-linux-gnu ;; ++ esac ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux ++ exit ;; ++ sh64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ x86_64:Linux:*:*) ++ echo x86_64-unknown-linux-gnu ++ exit ;; ++ i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. +- ld_help_string=`cd /; ld --help 2>&1` +- ld_supported_emulations=`echo $ld_help_string \ +- | sed -ne '/supported emulations:/!d ++ # Set LC_ALL=C to ensure ld outputs messages in English. ++ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ ++ | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g +- s/.*supported emulations: *// ++ s/.*supported targets: *// + s/ .*// + p'` +- case "$ld_supported_emulations" in +- *ia64) +- echo "${UNAME_MACHINE}-unknown-linux" +- exit 0 ++ case "$ld_supported_targets" in ++ elf32-i386) ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; +- i?86linux) ++ a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" +- exit 0 +- ;; +- i?86coff) ++ exit ;; ++ coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" +- exit 0 +- ;; +- sparclinux) +- echo "${UNAME_MACHINE}-unknown-linux-gnuaout" +- exit 0 +- ;; +- armlinux) +- echo "${UNAME_MACHINE}-unknown-linux-gnuaout" +- exit 0 +- ;; +- elf32arm*) +- echo "${UNAME_MACHINE}-unknown-linux-gnu" +- exit 0 +- ;; +- armelf_linux*) +- echo "${UNAME_MACHINE}-unknown-linux-gnu" +- exit 0 +- ;; +- m68klinux) +- echo "${UNAME_MACHINE}-unknown-linux-gnuaout" +- exit 0 +- ;; +- elf32ppc) +- # Determine Lib Version +- cat >$dummy.c <<EOF +-#include <features.h> +-#if defined(__GLIBC__) +-extern char __libc_version[]; +-extern char __libc_release[]; +-#endif +-main(argc, argv) +- int argc; +- char *argv[]; +-{ +-#if defined(__GLIBC__) +- printf("%s %s\n", __libc_version, __libc_release); +-#else +- printf("unkown\n"); +-#endif +- return 0; +-} +-EOF +- LIBC="" +- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null +- if test "$?" = 0 ; then +- ./$dummy | grep 1\.99 > /dev/null +- if test "$?" = 0 ; then +- LIBC="libc1" +- fi +- fi +- rm -f $dummy.c $dummy +- echo powerpc-unknown-linux-gnu${LIBC} +- exit 0 +- ;; ++ exit ;; ++ "") ++ # Either a pre-BFD a.out linker (linux-gnuoldld) or ++ # one that does not give us useful --help. ++ echo "${UNAME_MACHINE}-pc-linux-gnuoldld" ++ exit ;; + esac +- +- if test "${UNAME_MACHINE}" = "alpha" ; then +- sed 's/^ //' <<EOF >$dummy.s +- .globl main +- .ent main +- main: +- .frame \$30,0,\$26,0 +- .prologue 0 +- .long 0x47e03d80 # implver $0 +- lda \$2,259 +- .long 0x47e20c21 # amask $2,$1 +- srl \$1,8,\$2 +- sll \$2,2,\$2 +- sll \$0,3,\$0 +- addl \$1,\$0,\$0 +- addl \$2,\$0,\$0 +- ret \$31,(\$26),1 +- .end main +-EOF +- LIBC="" +- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null +- if test "$?" = 0 ; then +- ./$dummy +- case "$?" in +- 7) +- UNAME_MACHINE="alpha" +- ;; +- 15) +- UNAME_MACHINE="alphaev5" +- ;; +- 14) +- UNAME_MACHINE="alphaev56" +- ;; +- 10) +- UNAME_MACHINE="alphapca56" +- ;; +- 16) +- UNAME_MACHINE="alphaev6" +- ;; +- esac +- +- objdump --private-headers $dummy | \ +- grep ld.so.1 > /dev/null +- if test "$?" = 0 ; then +- LIBC="libc1" +- fi +- fi +- rm -f $dummy.s $dummy +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 +- elif test "${UNAME_MACHINE}" = "mips" ; then +- cat >$dummy.c <<EOF +-#ifdef __cplusplus +- int main (int argc, char *argv[]) { +-#else +- int main (argc, argv) int argc; char *argv[]; { +-#endif +-#ifdef __MIPSEB__ +- printf ("%s-unknown-linux-gnu\n", argv[1]); +-#endif +-#ifdef __MIPSEL__ +- printf ("%sel-unknown-linux-gnu\n", argv[1]); +-#endif +- return 0; +-} +-EOF +- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy +- else +- # Either a pre-BFD a.out linker (linux-gnuoldld) +- # or one that does not give us useful --help. +- # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. +- # If ld does not provide *any* "supported emulations:" +- # that means it is gnuoldld. +- echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" +- test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 +- +- case "${UNAME_MACHINE}" in +- i?86) +- VENDOR=pc; +- ;; +- *) +- VENDOR=unknown; +- ;; +- esac +- # Determine whether the default compiler is a.out or elf +- cat >$dummy.c <<EOF +-#include <features.h> +-#ifdef __cplusplus +- int main (int argc, char *argv[]) { +-#else +- int main (argc, argv) int argc; char *argv[]; { +-#endif +-#ifdef __ELF__ +-# ifdef __GLIBC__ +-# if __GLIBC__ >= 2 +- printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); +-# else +- printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +-# endif +-# else +- printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); +-# endif +-#else +- printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); +-#endif +- return 0; +-} ++ # Determine whether the default compiler is a.out or elf ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include <features.h> ++ #ifdef __ELF__ ++ # ifdef __GLIBC__ ++ # if __GLIBC__ >= 2 ++ LIBC=gnu ++ # else ++ LIBC=gnulibc1 ++ # endif ++ # else ++ LIBC=gnulibc1 ++ # endif ++ #else ++ #ifdef __INTEL_COMPILER ++ LIBC=gnu ++ #else ++ LIBC=gnuaout ++ #endif ++ #endif ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif + EOF +- $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 +- rm -f $dummy.c $dummy +- fi ;; +-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions +-# are messed up and put the nodename in both sysname and nodename. +- i?86:DYNIX/ptx:4*:*) ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` ++ test x"${LIBC}" != x && { ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ exit ++ } ++ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ++ ;; ++ i*86:DYNIX/ptx:4*:*) ++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. ++ # earlier versions are messed up and put the nodename in both ++ # sysname and nodename. + echo i386-sequent-sysv4 +- exit 0 ;; +- i?86:UNIX_SV:4.2MP:2.*) ++ exit ;; ++ i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} +- exit 0 ;; +- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) ++ exit ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit ;; ++ i*86:XTS-300:*:STOP) ++ echo ${UNAME_MACHINE}-unknown-stop ++ exit ;; ++ i*86:atheos:*:*) ++ echo ${UNAME_MACHINE}-unknown-atheos ++ exit ;; ++ i*86:syllable:*:*) ++ echo ${UNAME_MACHINE}-pc-syllable ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ echo i386-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit ;; ++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi +- exit 0 ;; +- i?86:*:5:7*) +- # Fixed at (any) Pentium or better +- UNAME_MACHINE=i586 +- if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then +- echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} +- else +- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} +- fi +- exit 0 ;; +- i?86:*:3.2:*) ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ case `/bin/uname -X | grep "^Machine"` in ++ *486*) UNAME_MACHINE=i486 ;; ++ *Pentium) UNAME_MACHINE=i586 ;; ++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;; ++ esac ++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ++ exit ;; ++ i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + elif /bin/uname -X 2>/dev/null >/dev/null ; then +- UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` +- (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 +- (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ ++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` ++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 ++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 +- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ ++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 +- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ ++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi +- exit 0 ;; ++ exit ;; + pc:*:*:*) ++ # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp +- exit 0 ;; ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 +- exit 0 ;; ++ exit ;; + paragon:*:*:*) + echo i860-intel-osf1 +- exit 0 ;; ++ exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi +- exit 0 ;; ++ exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv +- exit 0 ;; +- M68*:*:R3V[567]*:*) +- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; +- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) ++ exit ;; ++ mc68k:UNIX:SYSTEM5:3.51m) ++ echo m68k-convergent-sysv ++ exit ;; ++ M680?0:D-NIX:5.3:*) ++ echo m68k-diab-dnix ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && echo i486-ncr-sysv4.3${OS_REL} && exit 0 ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ +- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && echo i486-ncr-sysv4 && exit 0 ;; +- m68*:LynxOS:2.*:*) ++ && { echo i486-ncr-sysv4; exit; } ;; ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 +- exit 0 ;; +- i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*) +- echo i386-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; +- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) ++ exit ;; ++ rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 +- exit 0 ;; ++ exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 +- exit 0 ;; ++ exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` +@@ -926,62 +1123,153 @@ + else + echo ns32k-sni-sysv + fi +- exit 0 ;; +- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says <Richard.M.Bartel@ccMail.Census.GOV> ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 +- exit 0 ;; ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 +- exit 0 ;; ++ exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 +- exit 0 ;; ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; ++ *:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo hppa1.1-stratus-vos ++ exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} +- exit 0 ;; +- news*:NEWS-OS:*:6*) ++ exit ;; ++ news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 +- exit 0 ;; ++ exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit 0 ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos +- exit 0 ;; ++ exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos +- exit 0 ;; ++ exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos +- exit 0 ;; ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ SX-6:SUPER-UX:*:*) ++ echo sx6-nec-superux${UNAME_RELEASE} ++ exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} +- exit 0 ;; ++ exit ;; ++ *:Darwin:*:*) ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ case $UNAME_PROCESSOR in ++ *86) UNAME_PROCESSOR=i686 ;; ++ unknown) UNAME_PROCESSOR=powerpc ;; ++ esac ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ++ exit ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ UNAME_PROCESSOR=`uname -p` ++ if test "$UNAME_PROCESSOR" = "x86"; then ++ UNAME_PROCESSOR=i386 ++ UNAME_MACHINE=pc ++ fi ++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ++ exit ;; + *:QNX:*:4*) +- echo i386-qnx-qnx${UNAME_VERSION} +- exit 0 ;; ++ echo i386-pc-qnx ++ exit ;; ++ NSE-?:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSR-?:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit ;; ++ *:Plan9:*:*) ++ # "uname -m" is not consistent, so use $cputype instead. 386 ++ # is converted to i386 for consistency with other x86 ++ # operating systems. ++ if test "$cputype" = "386"; then ++ UNAME_MACHINE=i386 ++ else ++ UNAME_MACHINE="$cputype" ++ fi ++ echo ${UNAME_MACHINE}-unknown-plan9 ++ exit ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit ;; ++ SEI:*:*:SEIUX) ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; ++ *:DragonFly:*:*) ++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ exit ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 + #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + ++eval $set_cc_for_build + cat >$dummy.c <<EOF + #ifdef _SEQUENT_ + # include <sys/types.h> +@@ -1007,7 +1295,7 @@ + #endif + + #if defined (__arm) && defined (__acorn) && defined (__unix) +- printf ("arm-acorn-riscix"); exit (0); ++ printf ("arm-acorn-riscix\n"); exit (0); + #endif + + #if defined (hp300) && !defined (hpux) +@@ -1068,11 +1356,24 @@ + #endif + + #if defined (vax) +-#if !defined (ultrix) +- printf ("vax-dec-bsd\n"); exit (0); +-#else +- printf ("vax-dec-ultrix\n"); exit (0); +-#endif ++# if !defined (ultrix) ++# include <sys/param.h> ++# if defined (BSD) ++# if BSD == 43 ++ printf ("vax-dec-bsd4.3\n"); exit (0); ++# else ++# if BSD == 199006 ++ printf ("vax-dec-bsd4.3reno\n"); exit (0); ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# endif ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# else ++ printf ("vax-dec-ultrix\n"); exit (0); ++# endif + #endif + + #if defined (alliant) && defined (i860) +@@ -1083,12 +1384,12 @@ + } + EOF + +-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0 +-rm -f $dummy.c $dummy ++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } + + # Apollos put the system type in the environment. + +-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } ++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + + # Convex versions that predate uname can use getsysinfo(1) + +@@ -1097,25 +1398,69 @@ + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd +- exit 0 ;; ++ exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit 0 ;; ++ exit ;; + c34*) + echo c34-convex-bsd +- exit 0 ;; ++ exit ;; + c38*) + echo c38-convex-bsd +- exit 0 ;; ++ exit ;; + c4*) + echo c4-convex-bsd +- exit 0 ;; ++ exit ;; + esac + fi + +-#echo '(Unable to guess system type)' 1>&2 ++cat >&2 <<EOF ++$0: unable to guess system type ++ ++This script, last modified $timestamp, has failed to recognize ++the operating system you are using. It is advised that you ++download the most up to date version of the config scripts from ++ ++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess ++and ++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub ++ ++If the version you run ($0) is already up to date, please ++send the following data and any information you think might be ++pertinent to <config-patches@gnu.org> in order to provide the needed ++information to handle your system. ++ ++config.guess timestamp = $timestamp ++ ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null` ++ ++hostinfo = `(hostinfo) 2>/dev/null` ++/bin/universe = `(/bin/universe) 2>/dev/null` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` ++/bin/arch = `(/bin/arch) 2>/dev/null` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` ++ ++UNAME_MACHINE = ${UNAME_MACHINE} ++UNAME_RELEASE = ${UNAME_RELEASE} ++UNAME_SYSTEM = ${UNAME_SYSTEM} ++UNAME_VERSION = ${UNAME_VERSION} ++EOF + + exit 1 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +--- gtk+1.2-1.2.10.orig/config.h.in ++++ gtk+1.2-1.2.10/config.h.in +@@ -1,4 +1,4 @@ +-/* config.h.in. Generated automatically from configure.in by autoheader. */ ++/* config.h.in. Generated automatically from configure.in by autoheader 2.13. */ + + /* Define if using alloca.c. */ + #undef C_ALLOCA +@@ -28,9 +28,6 @@ + /* Define to `long' if <sys/types.h> doesn't define. */ + #undef off_t + +-/* Define if you need to in order for stat and other things to work. */ +-#undef _POSIX_SOURCE +- + /* Define as the return type of signal handlers (int or void). */ + #undef RETSIGTYPE + +@@ -69,6 +66,7 @@ + #undef HAVE_SHAPE_EXT + #undef HAVE_SYS_SELECT_H + #undef HAVE_XCONVERTCASE ++#undef HAVE_CODESET + + #undef NO_FD_SET + +@@ -134,6 +132,9 @@ + /* Define if you have the <argz.h> header file. */ + #undef HAVE_ARGZ_H + ++/* Define if you have the <dlfcn.h> header file. */ ++#undef HAVE_DLFCN_H ++ + /* Define if you have the <limits.h> header file. */ + #undef HAVE_LIMITS_H + +@@ -158,6 +159,12 @@ + /* Define if you have the i library (-li). */ + #undef HAVE_LIBI + ++/* Define if your <locale.h> file defines LC_MESSAGES. */ ++#undef HAVE_LC_MESSAGES ++ ++/* Have nl_langinfo (CODESET) */ ++#undef HAVE_CODESET ++ + /* Define if wchar.h exists */ + #undef HAVE_WCHAR_H + +--- gtk+1.2-1.2.10.orig/config.sub ++++ gtk+1.2-1.2.10/config.sub +@@ -1,6 +1,10 @@ + #! /bin/sh +-# Configuration validation subroutine script, version 1.1. +-# Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc. ++# Configuration validation subroutine script. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ++ ++timestamp='2005-07-08' ++ + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software + # can handle that machine. It does not imply ALL GNU software can. +@@ -17,14 +21,18 @@ + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, +-# Boston, MA 02111-1307, USA. +- ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. ++# + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + ++ ++# Please send patches to <config-patches@gnu.org>. Submit a context ++# diff and a properly formatted ChangeLog entry. ++# + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with code 1. +@@ -45,30 +53,74 @@ + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # It is wrong to echo any other type of specification. + +-if [ x$1 = x ] +-then +- echo Configuration name missing. 1>&2 +- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 +- echo "or $0 ALIAS" 1>&2 +- echo where ALIAS is a recognized configuration type. 1>&2 +- exit 1 +-fi ++me=`echo "$0" | sed -e 's,.*/,,'` + +-# First pass through any local machine types. +-case $1 in +- *local*) +- echo $1 +- exit 0 +- ;; +- *) +- ;; ++usage="\ ++Usage: $0 [OPTION] CPU-MFR-OPSYS ++ $0 [OPTION] ALIAS ++ ++Canonicalize a configuration name. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to <config-patches@gnu.org>." ++ ++version="\ ++GNU config.sub ($timestamp) ++ ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" ++ exit 1 ;; ++ ++ *local*) ++ # First pass through any local machine types. ++ echo $1 ++ exit ;; ++ ++ * ) ++ break ;; ++ esac ++done ++ ++case $# in ++ 0) echo "$me: missing argument$help" >&2 ++ exit 1;; ++ 1) ;; ++ *) echo "$me: too many arguments$help" >&2 ++ exit 1;; + esac + + # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- linux-gnu*) ++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ ++ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -94,7 +146,7 @@ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple) ++ -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; +@@ -108,6 +160,14 @@ + os=-vxworks + basic_machine=$1 + ;; ++ -chorusos*) ++ os=-chorusos ++ basic_machine=$1 ++ ;; ++ -chorusrdb) ++ os=-chorusrdb ++ basic_machine=$1 ++ ;; + -hiux*) + os=-hiuxwe2 + ;; +@@ -166,27 +226,71 @@ + case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. +- tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ +- | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \ +- | 580 | i960 | h8300 \ +- | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ +- | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \ +- | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \ +- | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \ +- | mips64orion | mips64orionel | mipstx39 | mipstx39el \ +- | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ +- | mips64vr5000 | miprs64vr5000el | mcore \ +- | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \ +- | thumb | d10v | fr30) ++ 1750a | 580 \ ++ | a29k \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ ++ | bfin \ ++ | c4x | clipper \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | fr30 | frv \ ++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | i370 | i860 | i960 | ia64 \ ++ | ip2k | iq2000 \ ++ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ ++ | mips | mipsbe | mipseb | mipsel | mipsle \ ++ | mips16 \ ++ | mips64 | mips64el \ ++ | mips64vr | mips64vrel \ ++ | mips64orion | mips64orionel \ ++ | mips64vr4100 | mips64vr4100el \ ++ | mips64vr4300 | mips64vr4300el \ ++ | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ ++ | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64sb1 | mipsisa64sb1el \ ++ | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipstx39 | mipstx39el \ ++ | mn10200 | mn10300 \ ++ | ms1 \ ++ | msp430 \ ++ | ns16k | ns32k \ ++ | or32 \ ++ | pdp10 | pdp11 | pj | pjl \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | pyramid \ ++ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ ++ | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b \ ++ | strongarm \ ++ | tahoe | thumb | tic4x | tic80 | tron \ ++ | v850 | v850e \ ++ | we32k \ ++ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | z8k) + basic_machine=$basic_machine-unknown + ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl) ++ m32c) ++ basic_machine=$basic_machine-unknown ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12) ++ # Motorola 68HC11/12. ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. +- i[34567]86) ++ i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. +@@ -195,24 +299,67 @@ + exit 1 + ;; + # Recognize the basic CPU types with company name. +- # FIXME: clean up the formatting here. +- vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ +- | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ +- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ +- | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ +- | xmp-* | ymp-* \ +- | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \ +- | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \ +- | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ +- | clipper-* | orion-* \ +- | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ +- | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \ +- | mips64el-* | mips64orion-* | mips64orionel-* \ +- | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ +- | mipstx39-* | mipstx39el-* | mcore-* \ +- | f301-* | armv*-* | t3e-* \ +- | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ +- | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* ) ++ 580-* \ ++ | a29k-* \ ++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ ++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ ++ | avr-* \ ++ | bfin-* | bs2000-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ++ | clipper-* | craynv-* | cydra-* \ ++ | d10v-* | d30v-* | dlx-* \ ++ | elxsi-* \ ++ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ ++ | h8300-* | h8500-* \ ++ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | i*86-* | i860-* | i960-* | ia64-* \ ++ | ip2k-* | iq2000-* \ ++ | m32r-* | m32rle-* \ ++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* \ ++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ ++ | mips16-* \ ++ | mips64-* | mips64el-* \ ++ | mips64vr-* | mips64vrel-* \ ++ | mips64orion-* | mips64orionel-* \ ++ | mips64vr4100-* | mips64vr4100el-* \ ++ | mips64vr4300-* | mips64vr4300el-* \ ++ | mips64vr5000-* | mips64vr5000el-* \ ++ | mips64vr5900-* | mips64vr5900el-* \ ++ | mipsisa32-* | mipsisa32el-* \ ++ | mipsisa32r2-* | mipsisa32r2el-* \ ++ | mipsisa64-* | mipsisa64el-* \ ++ | mipsisa64r2-* | mipsisa64r2el-* \ ++ | mipsisa64sb1-* | mipsisa64sb1el-* \ ++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipstx39-* | mipstx39el-* \ ++ | mmix-* \ ++ | ms1-* \ ++ | msp430-* \ ++ | none-* | np1-* | ns16k-* | ns32k-* \ ++ | orion-* \ ++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | pyramid-* \ ++ | romp-* | rs6000-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ ++ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ ++ | sparclite-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ ++ | tahoe-* | thumb-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tron-* \ ++ | v850-* | v850e-* | vax-* \ ++ | we32k-* \ ++ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | xstormy16-* | xtensa-* \ ++ | ymp-* \ ++ | z8k-*) ++ ;; ++ m32c-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +@@ -230,6 +377,9 @@ + basic_machine=a29k-amd + os=-udi + ;; ++ abacus) ++ basic_machine=abacus-unknown ++ ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout +@@ -244,19 +394,25 @@ + basic_machine=a29k-none + os=-bsd + ;; ++ amd64) ++ basic_machine=x86_64-pc ++ ;; ++ amd64-*) ++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + ;; + amigaos | amigados) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) +- basic_machine=m68k-cbm ++ basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) +@@ -275,6 +431,10 @@ + basic_machine=ns32k-sequent + os=-dynix + ;; ++ c90) ++ basic_machine=c90-cray ++ os=-unicos ++ ;; + convex-c1) + basic_machine=c1-convex + os=-bsd +@@ -295,27 +455,45 @@ + basic_machine=c38-convex + os=-bsd + ;; +- cray | ymp) +- basic_machine=ymp-cray ++ cray | j90) ++ basic_machine=j90-cray + os=-unicos + ;; +- cray2) +- basic_machine=cray2-cray +- os=-unicos ++ craynv) ++ basic_machine=craynv-cray ++ os=-unicosmp + ;; +- [ctj]90-cray) +- basic_machine=c90-cray +- os=-unicos ++ cr16c) ++ basic_machine=cr16c-unknown ++ os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; ++ crisv32 | crisv32-* | etraxfs*) ++ basic_machine=crisv32-axis ++ ;; ++ cris | cris-* | etrax*) ++ basic_machine=cris-axis ++ ;; ++ crx) ++ basic_machine=crx-unknown ++ os=-elf ++ ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; ++ decsystem10* | dec10*) ++ basic_machine=pdp10-dec ++ os=-tops10 ++ ;; ++ decsystem20* | dec20*) ++ basic_machine=pdp10-dec ++ os=-tops20 ++ ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola +@@ -324,6 +502,10 @@ + basic_machine=m88k-motorola + os=-sysv3 + ;; ++ djgpp) ++ basic_machine=i586-pc ++ os=-msdosdjgpp ++ ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx +@@ -357,6 +539,10 @@ + basic_machine=tron-gmicro + os=-sysv + ;; ++ go32) ++ basic_machine=i386-pc ++ os=-go32 ++ ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 +@@ -432,19 +618,19 @@ + basic_machine=i370-ibm + ;; + # I'm not sure what "Sysv32" means. Should this be sysv3.2? +- i[34567]86v32) ++ i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; +- i[34567]86v4*) ++ i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; +- i[34567]86v) ++ i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; +- i[34567]86sol2) ++ i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; +@@ -456,17 +642,6 @@ + basic_machine=i386-unknown + os=-vsta + ;; +- i386-go32 | go32) +- basic_machine=i386-unknown +- os=-go32 +- ;; +- i386-mingw32 | mingw32) +- basic_machine=i386-unknown +- os=-mingw32 +- ;; +- i386-qnx | qnx) +- basic_machine=i386-qnx +- ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in +@@ -492,6 +667,10 @@ + basic_machine=ns32k-utek + os=-sysv + ;; ++ mingw32) ++ basic_machine=i386-pc ++ os=-mingw32 ++ ;; + miniframe) + basic_machine=m68000-convergent + ;; +@@ -499,14 +678,6 @@ + basic_machine=m68k-atari + os=-mint + ;; +- mipsel*-linux*) +- basic_machine=mipsel-unknown +- os=-linux-gnu +- ;; +- mips*-linux*) +- basic_machine=mips-unknown +- os=-linux-gnu +- ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; +@@ -517,8 +688,12 @@ + basic_machine=m68k-rom68k + os=-coff + ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ os=-morphos ++ ;; + msdos) +- basic_machine=i386-unknown ++ basic_machine=i386-pc + os=-msdos + ;; + mvs) +@@ -582,13 +757,27 @@ + basic_machine=i960-intel + os=-mon960 + ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ os=-nonstopux ++ ;; + np1) + basic_machine=np1-gould + ;; ++ nsr-tandem) ++ basic_machine=nsr-tandem ++ ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; ++ openrisc | openrisc-*) ++ basic_machine=or32-unknown ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ os=-os400 ++ ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose +@@ -611,45 +800,65 @@ + pbb) + basic_machine=m68k-tti + ;; +- pc532 | pc532-*) ++ pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; +- pentium | p5 | k5 | k6 | nexen) ++ pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; +- pentiumpro | p6 | 6x86) ++ pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; +- pentiumii | pentium2) ++ pentiumii | pentium2 | pentiumiii | pentium3) ++ basic_machine=i686-pc ++ ;; ++ pentium4) + basic_machine=i786-pc + ;; +- pentium-* | p5-* | k5-* | k6-* | nexen-*) ++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; +- pentiumpro-* | p6-* | 6x86-*) ++ pentiumpro-* | p6-* | 6x86-* | athlon-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; +- pentiumii-* | pentium2-*) ++ pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; +- power) basic_machine=rs6000-ibm ++ power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown +- ;; ++ ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown +- ;; ++ ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; ++ ppc64) basic_machine=powerpc64-unknown ++ ;; ++ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64le | powerpc64little | ppc64-le | powerpc64-little) ++ basic_machine=powerpc64le-unknown ++ ;; ++ ppc64le-* | powerpc64little-*) ++ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + ps2) + basic_machine=i386-ibm + ;; ++ pw32) ++ basic_machine=i586-unknown ++ os=-pw32 ++ ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff +@@ -660,10 +869,26 @@ + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; ++ s390 | s390-*) ++ basic_machine=s390-ibm ++ ;; ++ s390x | s390x-*) ++ basic_machine=s390x-ibm ++ ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; ++ sb1) ++ basic_machine=mipsisa64sb1-unknown ++ ;; ++ sb1el) ++ basic_machine=mipsisa64sb1el-unknown ++ ;; ++ sei) ++ basic_machine=mips-sei ++ os=-seiux ++ ;; + sequent) + basic_machine=i386-sequent + ;; +@@ -671,7 +896,10 @@ + basic_machine=sh-hitachi + os=-hms + ;; +- sparclite-wrs) ++ sh64) ++ basic_machine=sh64-unknown ++ ;; ++ sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; +@@ -729,23 +957,51 @@ + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; ++ sv1) ++ basic_machine=sv1-cray ++ os=-unicos ++ ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) +- basic_machine=t3e-cray ++ basic_machine=alphaev5-cray ++ os=-unicos ++ ;; ++ t90) ++ basic_machine=t90-cray + os=-unicos + ;; ++ tic54x | c54x*) ++ basic_machine=tic54x-unknown ++ os=-coff ++ ;; ++ tic55x | c55x*) ++ basic_machine=tic55x-unknown ++ os=-coff ++ ;; ++ tic6x | c6x*) ++ basic_machine=tic6x-unknown ++ os=-coff ++ ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ os=-tops20 ++ ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; ++ tpf) ++ basic_machine=s390x-ibm ++ os=-tpf ++ ;; + udi29k) + basic_machine=a29k-amd + os=-udi +@@ -767,8 +1023,8 @@ + os=-vms + ;; + vpp*|vx|vx-*) +- basic_machine=f301-fujitsu +- ;; ++ basic_machine=f301-fujitsu ++ ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks +@@ -789,13 +1045,17 @@ + basic_machine=hppa1.1-winbond + os=-proelf + ;; +- xmp) +- basic_machine=xmp-cray +- os=-unicos ++ xbox) ++ basic_machine=i686-pc ++ os=-mingw32 + ;; +- xps | xps100) ++ xps | xps100) + basic_machine=xps100-honeywell + ;; ++ ymp) ++ basic_machine=ymp-cray ++ os=-unicos ++ ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim +@@ -816,32 +1076,35 @@ + op60c) + basic_machine=hppa1.1-oki + ;; +- mips) +- if [ x$os = x-linux-gnu ]; then +- basic_machine=mips-unknown +- else +- basic_machine=mips-mips +- fi +- ;; + romp) + basic_machine=romp-ibm + ;; ++ mmix) ++ basic_machine=mmix-knuth ++ ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; ++ pdp10) ++ # there are many clones, so DEC is not a safe bet ++ basic_machine=pdp10-unknown ++ ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; +- sparc | sparcv9) ++ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) ++ basic_machine=sh-unknown ++ ;; ++ sparc | sparcv8 | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; +- cydra) ++ cydra) + basic_machine=cydra-cydrome + ;; + orion) +@@ -856,9 +1119,8 @@ + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; +- c4x*) +- basic_machine=c4x-none +- os=-coff ++ *-unknown) ++ # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 +@@ -912,22 +1174,47 @@ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ +- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ +- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ ++ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ ++ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ ++ | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ +- | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*) ++ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ ++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ ++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ ++ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ ++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ ++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ ++ | -skyos* | -haiku*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; ++ -qnx*) ++ case $basic_machine in ++ x86-* | i*86-*) ++ ;; ++ *) ++ os=-nto$os ++ ;; ++ esac ++ ;; ++ -nto-qnx*) ++ ;; ++ -nto*) ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` ++ ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ +- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ +- | -macos* | -mpw* | -magic* | -mon960* | -lnews*) ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ ++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; ++ -linux-dietlibc) ++ os=-linux-dietlibc ++ ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; +@@ -940,6 +1227,12 @@ + -opened*) + os=-openedition + ;; ++ -os400*) ++ os=-os400 ++ ;; ++ -wince*) ++ os=-wince ++ ;; + -osfrose*) + os=-osfrose + ;; +@@ -955,14 +1248,26 @@ + -acis*) + os=-aos + ;; ++ -atheos*) ++ os=-atheos ++ ;; ++ -syllable*) ++ os=-syllable ++ ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; ++ -nova*) ++ os=-rtmk-nova ++ ;; + -ns2 ) +- os=-nextstep2 ++ os=-nextstep2 ++ ;; ++ -nsk*) ++ os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) +@@ -971,15 +1276,15 @@ + -sinix*) + os=-sysv4 + ;; ++ -tpf*) ++ os=-tpf ++ ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; +- -qnx) +- os=-qnx4 +- ;; + -svr4) + os=-sysv4 + ;; +@@ -1001,8 +1306,17 @@ + -xenix) + os=-xenix + ;; +- -*mint | -*MiNT) +- os=-mint ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ os=-mint ++ ;; ++ -aros*) ++ os=-aros ++ ;; ++ -kaos*) ++ os=-kaos ++ ;; ++ -zvmoe) ++ os=-zvmoe + ;; + -none) + ;; +@@ -1035,7 +1349,14 @@ + arm*-semi) + os=-aout + ;; +- pdp11-*) ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ # This must come before the *-dec entry. ++ pdp10-*) ++ os=-tops20 ++ ;; ++ pdp11-*) + os=-none + ;; + *-dec | vax-*) +@@ -1062,6 +1383,9 @@ + mips*-*) + os=-elf + ;; ++ or32-*) ++ os=-coff ++ ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; +@@ -1071,9 +1395,15 @@ + *-be) + os=-beos + ;; ++ *-haiku) ++ os=-haiku ++ ;; + *-ibm) + os=-aix + ;; ++ *-knuth) ++ os=-mmixware ++ ;; + *-wec) + os=-proelf + ;; +@@ -1125,25 +1455,25 @@ + *-next) + os=-nextstep3 + ;; +- *-gould) ++ *-gould) + os=-sysv + ;; +- *-highlevel) ++ *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; +- *-sgi) ++ *-sgi) + os=-irix + ;; +- *-siemens) ++ *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; +- f301-fujitsu) ++ f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) +@@ -1206,10 +1536,16 @@ + -mvs* | -opened*) + vendor=ibm + ;; ++ -os400*) ++ vendor=ibm ++ ;; + -ptx*) + vendor=sequent + ;; +- -vxsim* | -vxworks*) ++ -tpf*) ++ vendor=ibm ++ ;; ++ -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) +@@ -1221,12 +1557,23 @@ + -mpw* | -macos*) + vendor=apple + ;; +- -*mint | -*MiNT) ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; ++ -vos*) ++ vendor=stratus ++ ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + + echo $basic_machine$os ++exit ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +--- gtk+1.2-1.2.10.orig/configure ++++ gtk+1.2-1.2.10/configure +@@ -34,9 +34,170 @@ + --enable-fast-install[=PKGS] optimize for fast installation [default=yes]" + ac_help="$ac_help + --with-gnu-ld assume the C compiler uses GNU ld [default=no]" ++ ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++ ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ++ ;; ++esac ++ ++echo=${ECHO-echo} ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<EOF ++ ++EOF ++ exit 0 ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++if test -z "$ECHO"; then ++if test "X${echo_test_string+set}" != Xset; then ++# find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if (echo_test_string="`eval $cmd`") 2>/dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null ++ then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} ++ else ++ # Try using printf. ++ echo='printf %s\n' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "$0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++ECHO=$echo ++if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ++ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" ++fi ++ ++ + ac_help="$ac_help + --disable-libtool-lock avoid locking (might break parallel builds)" + ac_help="$ac_help ++ --with-pic try to use only PIC/non-PIC objects [default=use both]" ++ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + if test `expr $GTK_MINOR_VERSION \% 2` = 1 ; then +@@ -587,6 +748,7 @@ + + + ++ + # In the following, there are a the following variants + # of GLib cflags and libs variables + # +@@ -645,6 +807,7 @@ + ac_config_sub=$ac_aux_dir/config.sub + ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + ++am__api_version="1.4" + # Find a good install program. We prefer a C program (faster), + # so one script is as good as another. But avoid the broken or + # incompatible versions: +@@ -657,7 +820,7 @@ + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" + # ./install, which can be erroneously created by make from ./install.sh. + echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +-echo "configure:661: checking for a BSD compatible install" >&5 ++echo "configure:824: checking for a BSD compatible install" >&5 + if test -z "$INSTALL"; then + if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -710,7 +873,7 @@ + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +-echo "configure:714: checking whether build environment is sane" >&5 ++echo "configure:877: checking whether build environment is sane" >&5 + # Just in case + sleep 1 + echo timestamp > conftestfile +@@ -767,7 +930,7 @@ + test "$program_transform_name" = "" && program_transform_name="s,x,x," + + echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +-echo "configure:771: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++echo "configure:934: checking whether ${MAKE-make} sets \${MAKE}" >&5 + set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -805,21 +968,21 @@ + + + missing_dir=`cd $ac_aux_dir && pwd` +-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +-echo "configure:810: checking for working aclocal" >&5 ++echo $ac_n "checking for working aclocal-${am__api_version}""... $ac_c" 1>&6 ++echo "configure:973: checking for working aclocal-${am__api_version}" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +-if (aclocal --version) < /dev/null > /dev/null 2>&1; then +- ACLOCAL=aclocal ++if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ++ ACLOCAL=aclocal-${am__api_version} + echo "$ac_t""found" 1>&6 + else +- ACLOCAL="$missing_dir/missing aclocal" ++ ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +-echo "configure:823: checking for working autoconf" >&5 ++echo "configure:986: checking for working autoconf" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -831,21 +994,21 @@ + echo "$ac_t""missing" 1>&6 + fi + +-echo $ac_n "checking for working automake""... $ac_c" 1>&6 +-echo "configure:836: checking for working automake" >&5 ++echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 ++echo "configure:999: checking for working automake-${am__api_version}" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +-if (automake --version) < /dev/null > /dev/null 2>&1; then +- AUTOMAKE=automake ++if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ++ AUTOMAKE=automake-${am__api_version} + echo "$ac_t""found" 1>&6 + else +- AUTOMAKE="$missing_dir/missing automake" ++ AUTOMAKE="$missing_dir/missing automake-${am__api_version}" + echo "$ac_t""missing" 1>&6 + fi + + echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +-echo "configure:849: checking for working autoheader" >&5 ++echo "configure:1012: checking for working autoheader" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -858,7 +1021,7 @@ + fi + + echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +-echo "configure:862: checking for working makeinfo" >&5 ++echo "configure:1025: checking for working makeinfo" >&5 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. +@@ -877,11 +1040,164 @@ + + + ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++ ++echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ++echo "configure:1056: checking for Cygwin environment" >&5 ++if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 1061 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++#ifndef __CYGWIN__ ++#define __CYGWIN__ __CYGWIN32__ ++#endif ++return __CYGWIN__; ++; return 0; } ++EOF ++if { (eval echo configure:1072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_cygwin=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_cygwin=no ++fi ++rm -f conftest* ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_cygwin" 1>&6 ++CYGWIN= ++test "$ac_cv_cygwin" = yes && CYGWIN=yes ++echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ++echo "configure:1089: checking for mingw32 environment" >&5 ++if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 1094 "configure" ++#include "confdefs.h" ++ ++int main() { ++return __MINGW32__; ++; return 0; } ++EOF ++if { (eval echo configure:1101: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_mingw32=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_mingw32=no ++fi ++rm -f conftest* ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_mingw32" 1>&6 ++MINGW32= ++test "$ac_cv_mingw32" = yes && MINGW32=yes ++echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ++echo "configure:1118: checking how to run the C preprocessor" >&5 ++# On Suns, sometimes $CPP names a directory. ++if test -n "$CPP" && test -d "$CPP"; then ++ CPP= ++fi ++if test -z "$CPP"; then ++if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # This must be in double quotes, not single quotes, because CPP may get ++ # substituted into the Makefile and "${CC-cc}" will confuse make. ++ CPP="${CC-cc} -E" ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. ++ cat > conftest.$ac_ext <<EOF ++#line 1133 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP="${CC-cc} -E -traditional-cpp" ++ cat > conftest.$ac_ext <<EOF ++#line 1150 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1156: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP="${CC-cc} -nologo -E" ++ cat > conftest.$ac_ext <<EOF ++#line 1167 "configure" ++#include "confdefs.h" ++#include <assert.h> ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1173: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP=/lib/cpp ++fi ++rm -f conftest* ++fi ++rm -f conftest* ++fi ++rm -f conftest* ++ ac_cv_prog_CPP="$CPP" ++fi ++ CPP="$ac_cv_prog_CPP" ++else ++ ac_cv_prog_CPP="$CPP" ++fi ++echo "$ac_t""$CPP" 1>&6 ++ + # Check whether --enable-shared or --disable-shared was given. + if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) +@@ -904,7 +1220,7 @@ + if test "${enable_static+set}" = set; then + enableval="$enable_static" + p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) +@@ -927,7 +1243,7 @@ + if test "${enable_fast_install+set}" = set; then + enableval="$enable_fast_install" + p=${PACKAGE-default} +-case "$enableval" in ++case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) +@@ -953,7 +1269,7 @@ + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 +-echo "configure:957: checking host system type" >&5 ++echo "configure:1273: checking host system type" >&5 + + host_alias=$host + case "$host_alias" in +@@ -974,7 +1290,7 @@ + echo "$ac_t""$host" 1>&6 + + echo $ac_n "checking build system type""... $ac_c" 1>&6 +-echo "configure:978: checking build system type" >&5 ++echo "configure:1294: checking build system type" >&5 + + build_alias=$build + case "$build_alias" in +@@ -991,40 +1307,10 @@ + build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + echo "$ac_t""$build" 1>&6 + +-# Extract the first word of "ranlib", so it can be a program name with args. +-set dummy ranlib; ac_word=$2 +-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:998: checking for $ac_word" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- if test -n "$RANLIB"; then +- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +-else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +- ac_dummy="$PATH" +- for ac_dir in $ac_dummy; do +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/$ac_word; then +- ac_cv_prog_RANLIB="ranlib" +- break +- fi +- done +- IFS="$ac_save_ifs" +- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +-fi +-fi +-RANLIB="$ac_cv_prog_RANLIB" +-if test -n "$RANLIB"; then +- echo "$ac_t""$RANLIB" 1>&6 +-else +- echo "$ac_t""no" 1>&6 +-fi +- + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1028: checking for $ac_word" >&5 ++echo "configure:1314: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1054,7 +1340,7 @@ + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1058: checking for $ac_word" >&5 ++echo "configure:1344: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1105,7 +1391,7 @@ + # Extract the first word of "cl", so it can be a program name with args. + set dummy cl; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1109: checking for $ac_word" >&5 ++echo "configure:1395: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1137,7 +1423,7 @@ + fi + + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1141: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++echo "configure:1427: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +@@ -1148,12 +1434,12 @@ + + cat > conftest.$ac_ext << EOF + +-#line 1152 "configure" ++#line 1438 "configure" + #include "confdefs.h" + + main(){return(0);} + EOF +-if { (eval echo configure:1157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then +@@ -1179,12 +1465,12 @@ + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } + fi + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:1183: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "configure:1469: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 + echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 + cross_compiling=$ac_cv_prog_cc_cross + + echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +-echo "configure:1188: checking whether we are using GNU C" >&5 ++echo "configure:1474: checking whether we are using GNU C" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1193,7 +1479,7 @@ + yes; + #endif + EOF +-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1197: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1483: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes + else + ac_cv_prog_gcc=no +@@ -1212,7 +1498,7 @@ + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:1216: checking whether ${CC-cc} accepts -g" >&5 ++echo "configure:1502: checking whether ${CC-cc} accepts -g" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1252,12 +1538,18 @@ + fi + + ac_prog=ld +-if test "$ac_cv_prog_gcc" = yes; then ++if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 +-echo "configure:1259: checking for ld used by GCC" >&5 +- ac_prog=`($CC -print-prog-name=ld) 2>&5` +- case "$ac_prog" in ++echo "configure:1545: checking for ld used by GCC" >&5 ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' +@@ -1279,24 +1571,24 @@ + esac + elif test "$with_gnu_ld" = yes; then + echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 +-echo "configure:1283: checking for GNU ld" >&5 ++echo "configure:1575: checking for GNU ld" >&5 + else + echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 +-echo "configure:1286: checking for non-GNU ld" >&5 ++echo "configure:1578: checking for non-GNU ld" >&5 + fi +-if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then ++if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + if test -z "$LD"; then +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then +- ac_cv_path_LD="$ac_dir/$ac_prog" ++ lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. +- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break +@@ -1305,11 +1597,11 @@ + done + IFS="$ac_save_ifs" + else +- ac_cv_path_LD="$LD" # Let the user override the test with a path. ++ lt_cv_path_LD="$LD" # Let the user override the test with a path. + fi + fi + +-LD="$ac_cv_path_LD" ++LD="$lt_cv_path_LD" + if test -n "$LD"; then + echo "$ac_t""$LD" 1>&6 + else +@@ -1317,59 +1609,158 @@ + fi + test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } + echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 +-echo "configure:1321: checking if the linker ($LD) is GNU ld" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then ++echo "configure:1613: checking if the linker ($LD) is GNU ld" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. + if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then +- ac_cv_prog_gnu_ld=yes ++ lt_cv_prog_gnu_ld=yes + else +- ac_cv_prog_gnu_ld=no ++ lt_cv_prog_gnu_ld=no + fi + fi + +-echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 ++echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6 ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++ ++echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ++echo "configure:1630: checking for $LD option to reload object files" >&5 ++if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_ld_reload_flag='-r' ++fi + ++echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6 ++reload_flag=$lt_cv_ld_reload_flag ++test -n "$reload_flag" && reload_flag=" $reload_flag" + + echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 +-echo "configure:1337: checking for BSD-compatible nm" >&5 +-if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then ++echo "configure:1642: checking for BSD-compatible nm" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + if test -n "$NM"; then + # Let the user override the test. +- ac_cv_path_NM="$NM" ++ lt_cv_path_NM="$NM" + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then ++ tmp_nm=$ac_dir/${ac_tool_prefix}nm ++ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored +- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then +- ac_cv_path_NM="$ac_dir/nm -B" ++ # Tru64's nm complains that /dev/null is an invalid object file ++ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -B" + break +- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then +- ac_cv_path_NM="$ac_dir/nm -p" ++ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -p" + break + else +- ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + fi + fi + done + IFS="$ac_save_ifs" +- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm ++ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm + fi + fi + +-NM="$ac_cv_path_NM" ++NM="$lt_cv_path_NM" + echo "$ac_t""$NM" 1>&6 + ++echo $ac_n "checking for a sed that does not truncate output""... $ac_c" 1>&6 ++echo "configure:1680: checking for a sed that does not truncate output" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_SED'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_executable_p="test -f" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++ ++ # Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++: ${TMPDIR=/tmp} ++{ ++ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=$TMPDIR/sed$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ++ { (exit 1); exit 1; } ++} ++ _max=0 ++ _count=0 ++ # Add /usr/xpg4/bin/sed as it is typically found on Solaris ++ # along with /bin/sed that truncates output. ++ for _sed in $_sed_list /usr/xpg4/bin/sed; do ++ test ! -f ${_sed} && break ++ cat /dev/null > "$tmp/sed.in" ++ _count=0 ++ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ++ # Check for GNU sed and select it if it is found. ++ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ++ lt_cv_path_SED=${_sed} ++ break ++ fi ++ while true; do ++ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ++ mv "$tmp/sed.tmp" "$tmp/sed.in" ++ cp "$tmp/sed.in" "$tmp/sed.nl" ++ echo >>"$tmp/sed.nl" ++ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ++ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ++ # 40000 chars as input seems more than enough ++ test $_count -gt 10 && break ++ _count=`expr $_count + 1` ++ if test $_count -gt $_max; then ++ _max=$_count ++ lt_cv_path_SED=$_sed ++ fi ++ done ++ done ++ rm -rf "$tmp" ++ ++fi ++ ++if test "X$SED" != "X"; then ++ lt_cv_path_SED=$SED ++else ++ SED=$lt_cv_path_SED ++fi ++echo "$ac_t""$SED" 1>&6 ++ + echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 +-echo "configure:1373: checking whether ln -s works" >&5 ++echo "configure:1764: checking whether ln -s works" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1389,173 +1780,3709 @@ + echo "$ac_t""no" 1>&6 + fi + ++echo $ac_n "checking how to recognise dependent libraries""... $ac_c" 1>&6 ++echo "configure:1785: checking how to recognise dependent libraries" >&5 ++if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix4* | aix5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; + +-case "$target" in +-NONE) lt_target="$host" ;; +-*) lt_target="$target" ;; +-esac +- +-# Check for any special flags to pass to ltconfig. +-libtool_flags="--cache-file=$cache_file" +-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" +-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" +-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install" +-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" +-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; + ++bsdi4*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; + +-# Check whether --enable-libtool-lock or --disable-libtool-lock was given. +-if test "${enable_libtool_lock+set}" = set; then +- enableval="$enable_libtool_lock" +- : +-fi ++cygwin* | mingw* | pw32*) ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; + +-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock" +-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ case "$host_os" in ++ rhapsody* | darwin1.[012]) ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ ;; ++ *) # Darwin 1.3 on ++ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ++ ;; ++ esac ++ ;; + +-# Some flags need to be propagated to the compiler or linker for good +-# libtool support. +-case "$lt_target" in +-*-*-irix6*) +- # Find out which ABI we are using. +- echo '#line 1422 "configure"' > conftest.$ac_ext +- if { (eval echo configure:1423: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +- case "`/usr/bin/file conftest.o`" in +- *32-bit*) +- LD="${LD-ld} -32" +- ;; +- *N32*) +- LD="${LD-ld} -n32" +- ;; +- *64-bit*) +- LD="${LD-ld} -64" ++freebsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac ++ else ++ lt_cv_deplibs_check_method=pass_all + fi +- rm -rf conftest* + ;; + +-*-*-sco3.2v5*) +- # On SCO OpenServer 5, we need -belf to get full-featured binaries. +- SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS -belf" +- echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 +-echo "configure:1444: checking whether the C compiler needs -belf" >&5 +-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <<EOF +-#line 1449 "configure" +-#include "confdefs.h" ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20*|hpux11*) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ irix5* | nonstopux*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" ++ ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ case $host_cpu in ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | arm* | m68k) ++ lt_cv_deplibs_check_method=pass_all ;; ++ *) ++ # glibc up to 2.1.1 does not perform some relocations on ARM ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++openbsd*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' ++ else ++ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ ++sysv5uw[78]* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6 ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++ ++echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ++echo "configure:1971: checking for object suffix" >&5 ++if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ rm -f conftest* ++echo 'int i = 1;' > conftest.$ac_ext ++if { (eval echo configure:1977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ for ac_file in conftest.*; do ++ case $ac_file in ++ *.c) ;; ++ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;; ++ esac ++ done ++else ++ { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; } ++fi ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_objext" 1>&6 ++OBJEXT=$ac_cv_objext ++ac_objext=$ac_cv_objext ++ ++ ++ ++echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ++echo "configure:1997: checking for executable suffix" >&5 ++if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then ++ ac_cv_exeext=.exe ++else ++ rm -f conftest* ++ echo 'int main () { return 0; }' > conftest.$ac_ext ++ ac_cv_exeext= ++ if { (eval echo configure:2007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then ++ for file in conftest.*; do ++ case $file in ++ *.$ac_ext | *.c | *.o | *.obj) ;; ++ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; ++ esac ++ done ++ else ++ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } ++ fi ++ rm -f conftest* ++ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no ++fi ++fi ++ ++EXEEXT="" ++test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} ++echo "$ac_t""${ac_cv_exeext}" 1>&6 ++ac_exeext=$EXEEXT ++ ++if test $host != $build; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++ ++ ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6 ++echo "configure:2038: checking command to parse $NM output" >&5 ++if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[BCDEGRST]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[BCDT]' ++ ;; ++cygwin* | mingw* | pw32*) ++ symcode='[ABCDGISTW]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ;; ++irix* | nonstopux*) ++ symcode='[BCDEGRST]' ++ ;; ++osf*) ++ symcode='[BCDEGQRST]' ++ ;; ++solaris* | sysv5*) ++ symcode='[BDT]' ++ ;; ++sysv4) ++ symcode='[DFNSTU]' ++ ;; ++esac ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $host_os in ++mingw*) ++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[ABCDGISTW]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ rm -f conftest* ++ cat > conftest.$ac_ext <<EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++EOF ++ ++ if { (eval echo configure:2121: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if { (eval echo configure:2124: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<EOF > conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ++ ++ cat <<EOF >> conftest.$ac_ext ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[] = ++{ ++EOF ++ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ++ cat <<\EOF >> conftest.$ac_ext ++ {0, (lt_ptr) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if { (eval echo configure:2175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&5 ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&5 ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 ++ fi ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -f conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++ ++fi ++ ++global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++ global_symbol_to_c_name_address= ++else ++ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ++ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ++fi ++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ++then ++ echo "$ac_t""failed" 1>&6 ++else ++ echo "$ac_t""ok" 1>&6 ++fi ++ ++for ac_hdr in dlfcn.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:2224: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 2229 "configure" ++#include "confdefs.h" ++#include <$ac_hdr> ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:2234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <<EOF ++#define $ac_tr_hdr 1 ++EOF ++ ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ ++ ++ ++ ++ ++# Only perform the check for file, if the check method requires it ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ++echo "configure:2270: checking for ${ac_tool_prefix}file" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="/usr/bin:$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/${ac_tool_prefix}file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ echo "$ac_t""$MAGIC_CMD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ echo $ac_n "checking for file""... $ac_c" 1>&6 ++echo "configure:2332: checking for file" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="/usr/bin:$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ echo "$ac_t""$MAGIC_CMD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ else ++ MAGIC_CMD=: ++ fi ++fi ++ ++ fi ++ ;; ++esac ++ ++# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2403: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++if test -z "$ac_cv_prog_RANLIB"; then ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2435: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" ++fi ++fi ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++else ++ RANLIB=":" ++fi ++fi ++ ++# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2470: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++STRIP="$ac_cv_prog_STRIP" ++if test -n "$STRIP"; then ++ echo "$ac_t""$STRIP" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++if test -z "$ac_cv_prog_STRIP"; then ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2502: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_STRIP="strip" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":" ++fi ++fi ++STRIP="$ac_cv_prog_STRIP" ++if test -n "$STRIP"; then ++ echo "$ac_t""$STRIP" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++else ++ STRIP=":" ++fi ++fi ++ ++ ++enable_dlopen=no ++enable_win32_dll=no ++ ++# Check whether --enable-libtool-lock or --disable-libtool-lock was given. ++if test "${enable_libtool_lock+set}" = set; then ++ enableval="$enable_libtool_lock" ++ : ++fi ++ ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '#line 2551 "configure"' > conftest.$ac_ext ++ if { (eval echo configure:2552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ++echo "configure:2573: checking whether the C compiler needs -belf" >&5 ++if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++ ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++ cat > conftest.$ac_ext <<EOF ++#line 2586 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ lt_cv_cc_needs_belf=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ lt_cv_cc_needs_belf=no ++fi ++rm -f conftest* ++ ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++fi ++ ++echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++ ++ ++esac ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Constants: ++rm="rm -f" ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++libext=a ++ltmain="$ac_aux_dir/ltmain.sh" ++ofile="$default_ofile" ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++need_locks="$enable_libtool_lock" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$AS" && AS=as ++test -z "$CC" && CC=cc ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$LD" && LD=ld ++test -z "$LN_S" && LN_S="ln -s" ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++test -z "$NM" && NM=nm ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$RANLIB" && RANLIB=: ++test -z "$STRIP" && STRIP=: ++test -z "$ac_objext" && ac_objext=o ++ ++if test x"$host" != x"$build"; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case $host_os in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ++ ;; ++ *) ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="$2" ++ ++echo $ac_n "checking for objdir""... $ac_c" 1>&6 ++echo "configure:2713: checking for objdir" >&5 ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++echo "$ac_t""$objdir" 1>&6 ++ ++ ++# Check whether --with-pic or --without-pic was given. ++if test "${with_pic+set}" = set; then ++ withval="$with_pic" ++ pic_mode="$withval" ++else ++ pic_mode=default ++fi ++ ++test -z "$pic_mode" && pic_mode=default ++ ++# We assume here that the value for lt_cv_prog_cc_pic will not be cached ++# in isolation, and that seeing it set (from the cache) indicates that ++# the associated values are set (in the cache) correctly too. ++echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6 ++echo "configure:2740: checking for $compiler option to produce PIC" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_cc_pic'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_shlib= ++ lt_cv_prog_cc_wl= ++ lt_cv_prog_cc_static= ++ lt_cv_prog_cc_no_builtin= ++ lt_cv_prog_cc_can_build_shared=$can_build_shared ++ ++ if test "$GCC" = yes; then ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-static' ++ ++ case $host_os in ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # not sure about C++ programs. ++ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_cv_prog_cc_pic='-fno-common' ++ ;; ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_cv_prog_cc_pic=-Kconform_pic ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for PIC flags for the system compiler. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ lt_cv_prog_cc_wl='-Wl,' ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_cv_prog_cc_static='-Bstatic' ++ else ++ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ++ lt_cv_prog_cc_pic='+Z' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ ++ newsos6) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ lt_cv_prog_cc_pic='-Kpic' ++ lt_cv_prog_cc_static='-dn' ++ lt_cv_prog_cc_shlib='-belf' ++ ;; ++ ++ solaris*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ lt_cv_prog_cc_pic='-PIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ uts4*) ++ lt_cv_prog_cc_pic='-pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_cv_prog_cc_pic='-Kconform_pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ fi ++ ;; ++ ++ *) ++ lt_cv_prog_cc_can_build_shared=no ++ ;; ++ esac ++ fi ++ ++fi ++ ++if test -z "$lt_cv_prog_cc_pic"; then ++ echo "$ac_t""none" 1>&6 ++else ++ echo "$ac_t""$lt_cv_prog_cc_pic" 1>&6 ++ ++ # Check to make sure the pic_flag actually works. ++ echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6 ++echo "configure:2888: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 ++ if eval "test \"`echo '$''{'lt_cv_prog_cc_pic_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ++ cat > conftest.$ac_ext <<EOF ++#line 2895 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ case $host_os in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then ++ # they create non-PIC objects. So, if there were any warnings, we ++ # assume that PIC is not supported. ++ if test -s conftest.err; then ++ lt_cv_prog_cc_pic_works=no ++ else ++ lt_cv_prog_cc_pic_works=yes ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic_works=yes ++ ;; ++ esac ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ lt_cv_prog_cc_pic_works=no ++ ++fi ++rm -f conftest* ++ CFLAGS="$save_CFLAGS" ++ ++fi ++ ++ ++ if test "X$lt_cv_prog_cc_pic_works" = Xno; then ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_can_build_shared=no ++ else ++ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ++ fi ++ ++ echo "$ac_t""$lt_cv_prog_cc_pic_works" 1>&6 ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$lt_cv_prog_cc_shlib"; then ++ echo "configure: warning: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" 1>&2 ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : ++ else ++ echo "configure: warning: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2 ++ lt_cv_prog_cc_can_build_shared=no ++ fi ++fi ++ ++echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6 ++echo "configure:2954: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_cc_static_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_prog_cc_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ++ cat > conftest.$ac_ext <<EOF ++#line 2962 "configure" ++#include "confdefs.h" ++ ++int main() { ++ ++; return 0; } ++EOF ++if { (eval echo configure:2969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ lt_cv_prog_cc_static_works=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ LDFLAGS="$save_LDFLAGS" ++ ++fi ++ ++ ++# Belt *and* braces to stop my trousers falling down: ++test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ++echo "$ac_t""$lt_cv_prog_cc_static_works" 1>&6 ++ ++pic_flag="$lt_cv_prog_cc_pic" ++special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ++wl="$lt_cv_prog_cc_wl" ++link_static_flag="$lt_cv_prog_cc_static" ++no_builtin_flag="$lt_cv_prog_cc_no_builtin" ++can_build_shared="$lt_cv_prog_cc_can_build_shared" ++ ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6 ++echo "configure:2996: checking if $compiler supports -c -o file.$ac_objext" >&5 ++if eval "test \"`echo '$''{'lt_cv_compiler_c_o'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++echo "int some_variable = 0;" > conftest.$ac_ext ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ++compiler_c_o=no ++if { (eval echo configure:3015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ lt_cv_compiler_c_o=no ++ else ++ lt_cv_compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&5 ++ lt_cv_compiler_c_o=no ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++ ++fi ++ ++compiler_c_o=$lt_cv_compiler_c_o ++echo "$ac_t""$compiler_c_o" 1>&6 ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6 ++echo "configure:3044: checking if $compiler supports -c -o file.lo" >&5 ++ if eval "test \"`echo '$''{'lt_cv_compiler_o_lo'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++ lt_cv_compiler_o_lo=no ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ save_objext="$ac_objext" ++ ac_objext=lo ++ cat > conftest.$ac_ext <<EOF ++#line 3055 "configure" ++#include "confdefs.h" ++ ++int main() { ++int some_variable = 0; ++; return 0; } ++EOF ++if { (eval echo configure:3062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ lt_cv_compiler_o_lo=no ++ else ++ lt_cv_compiler_o_lo=yes ++ fi ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ ac_objext="$save_objext" ++ CFLAGS="$save_CFLAGS" ++ ++fi ++ ++ compiler_o_lo=$lt_cv_compiler_o_lo ++ echo "$ac_t""$compiler_o_lo" 1>&6 ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6 ++echo "configure:3093: checking if we can lock with hard links" >&5 ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ echo "$ac_t""$hard_links" 1>&6 ++ if test "$hard_links" = no; then ++ echo "configure: warning: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" 1>&2 ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$GCC" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6 ++echo "configure:3112: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ++ compiler_rtti_exceptions=no ++ cat > conftest.$ac_ext <<EOF ++#line 3118 "configure" ++#include "confdefs.h" ++ ++int main() { ++int some_variable = 0; ++; return 0; } ++EOF ++if { (eval echo configure:3125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ compiler_rtti_exceptions=no ++ else ++ compiler_rtti_exceptions=yes ++ fi ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ CFLAGS="$save_CFLAGS" ++ echo "$ac_t""$compiler_rtti_exceptions" 1>&6 ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++fi ++ ++# See if the linker supports building shared libraries. ++echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6 ++echo "configure:3152: checking whether the linker ($LD) supports shared libraries" >&5 ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++old_archive_from_expsyms_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_into_libs=no ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++link_all_deplibs=unknown ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++extract_expsyms_cmds= ++ ++case $host_os in ++cygwin* | mingw* | pw32*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ # On AIX, the GNU linker is very broken ++ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ++ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ++ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ++ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ++ else $CC -o impgen impgen.c ; fi)~ ++ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ++ ++ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ++ ++ # cygwin and mingw dlls have different entry points and sets of symbols ++ # to exclude. ++ # FIXME: what about values for MSVC? ++ dll_entry=__cygwin_dll_entry@12 ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ++ case $host_os in ++ mingw*) ++ # mingw values ++ dll_entry=_DllMainCRTStartup@12 ++ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ++ ;; ++ esac ++ ++ # mingw and cygwin differ, and it's simplest to just exclude the union ++ # of the two symbol sets. ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one (in ltdll.c) ++ if test "x$lt_cv_need_dllmain" = "xyes"; then ++ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ++ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ++ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ++ else ++ ltdll_obj= ++ ltdll_cmds= ++ fi ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left be newer dlltools. ++ export_symbols_cmds="$ltdll_cmds"' ++ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ++ ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is. ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname-def; ++ else ++ echo EXPORTS > $output_objdir/$soname-def; ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \$# in ++ 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ++ 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ++ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done; ++ fi~ ++ '"$ltdll_cmds"' ++ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ++ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ++ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw* | pw32*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4* | aix5*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[23]|aix4.[23].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ hardcode_direct=yes ++ archive_cmds='' ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[012]|aix4.[012].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ esac ++ ++ shared_flag='-shared' ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ shared_flag='${wl}-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ # It seems that -bexpall can do strange things, so it is better to ++ # generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ++ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ++ else ++ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='${wl}-berok' ++ # This is a bit strange, but is similar to how AIX traditionally builds ++ # it's shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ ;; ++ ++ darwin* | rhapsody*) ++ case "$host_os" in ++ rhapsody* | darwin1.[012]) ++ allow_undefined_flag='-undefined suppress' ++ ;; ++ *) # Darwin 1.3 on ++ allow_undefined_flag='-flat_namespace -undefined suppress' ++ ;; ++ esac ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. Also zsh mangles ++ # `"' quotes if we put them in here... so don't! ++ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ++ # We need to add '_' to the symbols in $export_symbols first ++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ whole_archive_flag_spec='-all_load $convenience' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case $host_os in ++ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case "$host_os" in ++ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ++ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ++ ++ #Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ ;; ++ ++ solaris*) ++ # gcc --version < 3.0 without binutils cannot create self contained ++ # shared libraries reliably, requiring libgcc.a to resolve some of ++ # the object symbols generated in some cases. Libraries that use ++ # assert need libgcc.a to resolve __eprintf, for example. Linking ++ # a copy of libgcc.a into every shared library to guarantee resolving ++ # such symbols causes other problems: According to Tim Van Holder ++ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate ++ # (to the application) exception stack for one thing. ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ case `$CC --version 2>/dev/null` in ++ [12].*) ++ cat <<EOF 1>&2 ++ ++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably ++*** create self contained shared libraries on Solaris systems, without ++*** introducing a dependency on libgcc.a. Therefore, libtool is disabling ++*** -no-undefined support, which will at least allow you to build shared ++*** libraries. However, you may find that when you link such libraries ++*** into an application without using GCC, you have to manually add ++*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ++*** upgrade to a newer version of GCC. Another option is to rebuild your ++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ++ ++EOF ++ no_undefined_flag= ++ ;; ++ esac ++ fi ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ sysv5uw7* | unixware7*) ++ no_undefined_flag='${wl}-z ${wl}text' ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++echo "$ac_t""$ld_shlibs" 1>&6 ++test "$ld_shlibs" = no && can_build_shared=no ++ ++# Check hardcoding attributes. ++echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6 ++echo "configure:3851: checking how to hardcode library paths into programs" >&5 ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++echo "$ac_t""$hardcode_action" 1>&6 ++ ++striplib= ++old_striplib= ++echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6 ++echo "configure:3879: checking whether stripping libraries is possible" >&5 ++if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++# PORTME Fill in your ld.so characteristics ++echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6 ++echo "configure:3893: checking dynamic linker characteristics" >&5 ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4* | aix5*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[01] | aix4.[01].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can ++ # not hardcode correct soname into executable. Probably we can ++ # add versioning support to collect2, so additional links can ++ # be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib<name>.so ++ # instead of lib<name>.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}.so$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ hardcode_into_libs=yes ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ case $GCC,$host_os in ++ yes,cygwin*) ++ library_names_spec='$libname.dll.a' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog .libs/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $rm \$dlpath' ++ ;; ++ yes,mingw*) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ++ ;; ++ yes,pw32*) ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' ++ ;; ++ *) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. ++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) version_type=irix ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case "$host_os" in ++ openbsd2.[89] | openbsd2.[89].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ need_lib_prefix=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ hardcode_into_libs=yes ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++echo "$ac_t""$dynamic_linker" 1>&6 ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6 ++echo "configure:4317: checking if libtool supports shared libraries" >&5 ++echo "$ac_t""$can_build_shared" 1>&6 ++ ++echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6 ++echo "configure:4321: checking whether to build shared libraries" >&5 ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++esac ++echo "$ac_t""$enable_shared" 1>&6 ++ ++echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6 ++echo "configure:4344: checking whether to build static libraries" >&5 ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++echo "$ac_t""$enable_static" 1>&6 ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ *) ++ echo $ac_n "checking for shl_load""... $ac_c" 1>&6 ++echo "configure:4385: checking for shl_load" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 4390 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char shl_load(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shl_load(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_shl_load) || defined (__stub___shl_load) ++choke me ++#else ++shl_load(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 ++echo "configure:4431: checking for shl_load in -ldld" >&5 ++ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4439 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shl_load(); ++ ++int main() { ++shl_load() ++; return 0; } ++EOF ++if { (eval echo configure:4450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen""... $ac_c" 1>&6 ++echo "configure:4469: checking for dlopen" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <<EOF ++#line 4474 "configure" ++#include "confdefs.h" ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char dlopen(); below. */ ++#include <assert.h> ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_dlopen) || defined (__stub___dlopen) ++choke me ++#else ++dlopen(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ++echo "configure:4515: checking for dlopen in -ldl" >&5 ++ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldl $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4523 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++dlopen() ++; return 0; } ++EOF ++if { (eval echo configure:4534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6 ++echo "configure:4553: checking for dlopen in -lsvld" >&5 ++ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-lsvld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4561 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++dlopen() ++; return 0; } ++EOF ++if { (eval echo configure:4572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 ++echo "configure:4591: checking for dld_link in -ldld" >&5 ++ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 4599 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dld_link(); ++ ++int main() { ++dld_link() ++; return 0; } ++EOF ++if { (eval echo configure:4610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 ++echo "configure:4666: checking whether a program can dlopen itself" >&5 ++if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++#line 4676 "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++} ++EOF ++ if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_unknown|x*) lt_cv_dlopen_self=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self" 1>&6 ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 ++echo "configure:4760: checking whether a statically linked program can dlopen itself" >&5 ++if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self_static=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<EOF ++#line 4770 "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include <dlfcn.h> ++#endif ++ ++#include <stdio.h> ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++} ++EOF ++ if { (eval echo configure:4831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self_static=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++ ++if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6 ++echo "configure:4880: checking whether -lc should be explicitly linked in" >&5 ++ if eval "test \"`echo '$''{'lt_cv_archive_cmds_need_lc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ $rm conftest* ++ echo 'static int dummy;' > conftest.$ac_ext ++ ++ if { (eval echo configure:4887: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_cv_prog_cc_wl ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if { (eval echo configure:4900: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; } ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++fi ++ ++ echo "$ac_t""$lt_cv_archive_cmds_need_lc" 1>&6 ++ ;; ++ esac ++fi ++need_lc=${lt_cv_archive_cmds_need_lc-yes} ++ ++# The second clause should only fire when bootstrapping the ++# libtool distribution, otherwise you forgot to ship ltmain.sh ++# with your package, and you will get complaints that there are ++# no rules to generate ltmain.sh. ++if test -f "$ltmain"; then ++ : ++else ++ # If there is no Makefile yet, we rely on a make rule to execute ++ # `config.status --recheck' to rerun these tests and create the ++ # libtool script then. ++ test -f Makefile && make "$ltmain" ++fi ++ ++if test -f "$ltmain"; then ++ trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ++ $rm -f "${ofile}T" ++ ++ echo creating $ofile ++ ++ # Now quote all the things that may contain metacharacters while being ++ # careful not to overquote the AC_SUBSTed values. We take copies of the ++ # variables and quote the copies for generation of the libtool script. ++ for var in echo old_CC old_CFLAGS SED \ ++ AR AR_FLAGS CC LD LN_S NM SHELL \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ++ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ++ old_striplib striplib file_magic_cmd export_symbols_cmds \ ++ deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ global_symbol_to_c_name_address \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case $var in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ cat <<__EOF__ > "${ofile}T" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996-2000 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# A sed that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="${SED} -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$need_lc ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$lt_echo ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# The default C compiler. ++CC=$lt_CC ++ ++# Is the compiler the GNU C compiler? ++with_gcc=$GCC ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Whether we need hard or soft links. ++LN_S=$lt_LN_S ++ ++# A BSD-compatible nm program. ++NM=$lt_NM ++ ++# A symbol stripping program ++STRIP=$STRIP ++ ++# Used to examine libraries when file_magic_cmd begins "file" ++MAGIC_CMD=$MAGIC_CMD ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_wl ++ ++# Object file suffix (normally "o"). ++objext="$ac_objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_pic_flag ++pic_mode=$pic_mode ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$lt_compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$lt_need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$lt_thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$lt_RANLIB ++old_archive_cmds=$lt_old_archive_cmds ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++postinstall_cmds=$lt_postinstall_cmds ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$lt_file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$lt_finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$lt_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair ++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at relink time. ++variables_saved_for_relink="$variables_saved_for_relink" ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds + +-int main() { ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds + +-; return 0; } +-EOF +-if { (eval echo configure:1456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- lt_cv_cc_needs_belf=yes +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- lt_cv_cc_needs_belf=no +-fi +-rm -f conftest* +-fi ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms + +-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 +- if test x"$lt_cv_cc_needs_belf" != x"yes"; then +- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf +- CFLAGS="$SAVE_CFLAGS" +- fi +- ;; ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms + ++# ### END LIBTOOL CONFIG + +-esac ++__EOF__ + ++ case $host_os in ++ aix3*) ++ cat <<\EOF >> "${ofile}T" + +-# Save cache, so that ltconfig can load it +-cat > confcache <<\EOF +-# This file is a shell script that caches the results of configure +-# tests run on this system so they can be shared between configure +-# scripts and configure runs. It is not useful on other systems. +-# If it contains results you don't want to keep, you may remove or edit it. ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ cat <<'EOF' >> "${ofile}T" ++ # This is a source program that is used to create dlls on Windows ++ # Don't remove nor modify the starting and closing comments ++# /* ltdll.c starts here */ ++# #define WIN32_LEAN_AND_MEAN ++# #include <windows.h> ++# #undef WIN32_LEAN_AND_MEAN ++# #include <stdio.h> + # +-# By default, configure uses ./config.cache as the cache file, +-# creating it if it does not exist already. You can give configure +-# the --cache-file=FILE option to use a different cache file; that is +-# what configure does when it calls configure scripts in +-# subdirectories, so they share the cache. +-# Giving --cache-file=/dev/null disables caching, for debugging configure. +-# config.status only pays attention to the cache file if you give it the +-# --recheck option to rerun configure. ++# #ifndef __CYGWIN__ ++# # ifdef __CYGWIN32__ ++# # define __CYGWIN__ __CYGWIN32__ ++# # endif ++# #endif ++# ++# #ifdef __cplusplus ++# extern "C" { ++# #endif ++# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ++# #ifdef __cplusplus ++# } ++# #endif ++# ++# #ifdef __CYGWIN__ ++# #include <cygwin/cygwin_dll.h> ++# DECLARE_CYGWIN_DLL( DllMain ); ++# #endif ++# HINSTANCE __hDllInstance_base; ++# ++# BOOL APIENTRY ++# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ++# { ++# __hDllInstance_base = hInst; ++# return TRUE; ++# } ++# /* ltdll.c ends here */ ++ # This is a source program that is used to create import libraries ++ # on Windows for dlls which lack them. Don't remove nor modify the ++ # starting and closing comments ++# /* impgen.c starts here */ ++# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ++# ++# This file is part of GNU libtool. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# */ ++# ++# #include <stdio.h> /* for printf() */ ++# #include <unistd.h> /* for open(), lseek(), read() */ ++# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ ++# #include <string.h> /* for strdup() */ ++# ++# /* O_BINARY isn't required (or even defined sometimes) under Unix */ ++# #ifndef O_BINARY ++# #define O_BINARY 0 ++# #endif ++# ++# static unsigned int ++# pe_get16 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[2]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 2); ++# return b[0] + (b[1]<<8); ++# } ++# ++# static unsigned int ++# pe_get32 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[4]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 4); ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# static unsigned int ++# pe_as32 (ptr) ++# void *ptr; ++# { ++# unsigned char *b = ptr; ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# int ++# main (argc, argv) ++# int argc; ++# char *argv[]; ++# { ++# int dll; ++# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ++# unsigned long export_rva, export_size, nsections, secptr, expptr; ++# unsigned long name_rvas, nexp; ++# unsigned char *expdata, *erva; ++# char *filename, *dll_name; ++# ++# filename = argv[1]; ++# ++# dll = open(filename, O_RDONLY|O_BINARY); ++# if (dll < 1) ++# return 1; ++# ++# dll_name = filename; + # ++# for (i=0; filename[i]; i++) ++# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ++# dll_name = filename + i +1; ++# ++# pe_header_offset = pe_get32 (dll, 0x3c); ++# opthdr_ofs = pe_header_offset + 4 + 20; ++# num_entries = pe_get32 (dll, opthdr_ofs + 92); ++# ++# if (num_entries < 1) /* no exports */ ++# return 1; ++# ++# export_rva = pe_get32 (dll, opthdr_ofs + 96); ++# export_size = pe_get32 (dll, opthdr_ofs + 100); ++# nsections = pe_get16 (dll, pe_header_offset + 4 +2); ++# secptr = (pe_header_offset + 4 + 20 + ++# pe_get16 (dll, pe_header_offset + 4 + 16)); ++# ++# expptr = 0; ++# for (i = 0; i < nsections; i++) ++# { ++# char sname[8]; ++# unsigned long secptr1 = secptr + 40 * i; ++# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ++# unsigned long vsize = pe_get32 (dll, secptr1 + 16); ++# unsigned long fptr = pe_get32 (dll, secptr1 + 20); ++# lseek(dll, secptr1, SEEK_SET); ++# read(dll, sname, 8); ++# if (vaddr <= export_rva && vaddr+vsize > export_rva) ++# { ++# expptr = fptr + (export_rva - vaddr); ++# if (export_rva + export_size > vaddr + vsize) ++# export_size = vsize - (export_rva - vaddr); ++# break; ++# } ++# } ++# ++# expdata = (unsigned char*)malloc(export_size); ++# lseek (dll, expptr, SEEK_SET); ++# read (dll, expdata, export_size); ++# erva = expdata - export_rva; ++# ++# nexp = pe_as32 (expdata+24); ++# name_rvas = pe_as32 (expdata+32); ++# ++# printf ("EXPORTS\n"); ++# for (i = 0; i<nexp; i++) ++# { ++# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); ++# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); ++# } ++# ++# return 0; ++# } ++# /* impgen.c ends here */ ++ + EOF +-# The following way of writing the cache mishandles newlines in values, +-# but we know of no workaround that is simple, portable, and efficient. +-# So, don't put newlines in cache variables' values. +-# Ultrix sh set writes to stderr and can't be redirected directly, +-# and sets the high bit in the cache file unless we assign to the vars. +-(set) 2>&1 | +- case `(ac_space=' '; set | grep ac_space) 2>&1` in +- *ac_space=\ *) +- # `set' does not quote correctly, so add quotes (double-quote substitution +- # turns \\\\ into \\, and sed turns \\ into \). +- sed -n \ +- -e "s/'/'\\\\''/g" \ +- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" +- ;; +- *) +- # `set' quotes correctly as required by POSIX, so do not add quotes. +- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; +- esac >> confcache +-if cmp -s $cache_file confcache; then +- : +-else +- if test -w $cache_file; then +- echo "updating cache $cache_file" +- cat confcache > $cache_file +- else +- echo "not updating unwritable cache $cache_file" +- fi ++ esac ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ++ ++ mv -f "${ofile}T" "$ofile" || \ ++ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ++ chmod +x "$ofile" + fi +-rm -f confcache + + +-# Actually configure libtool. ac_aux_dir is where install-sh is found. +-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ +-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ +-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \ +-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \ +-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ +-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \ +-|| { echo "configure: error: libtool configure failed" 1>&2; exit 1; } + +-# Reload cache, that may have been modified by ltconfig +-if test -r "$cache_file"; then +- echo "loading cache $cache_file" +- . $cache_file +-else +- echo "creating cache $cache_file" +- > $cache_file +-fi + + + # This can be used to rebuild libtool when needed +-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh" ++LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +-# Redirect the config.log output again, so that the ltconfig log is not +-# clobbered by the next message. +-exec 5>>./config.log ++# Prevent multiple expansion ++ + + + echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +-echo "configure:1559: checking whether to enable maintainer-specific portions of Makefiles" >&5 ++echo "configure:5486: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. + if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" +@@ -1585,7 +5512,7 @@ + fi + + echo $ac_n "checking host system type""... $ac_c" 1>&6 +-echo "configure:1589: checking host system type" >&5 ++echo "configure:5516: checking host system type" >&5 + + host_alias=$host + case "$host_alias" in +@@ -1701,7 +5628,7 @@ + + # Build time sanity check... + echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +-echo "configure:1705: checking whether build environment is sane" >&5 ++echo "configure:5632: checking whether build environment is sane" >&5 + # Just in case + sleep 1 + echo timestamp > conftestfile +@@ -1743,7 +5670,7 @@ + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1747: checking for $ac_word" >&5 ++echo "configure:5674: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1773,7 +5700,7 @@ + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1777: checking for $ac_word" >&5 ++echo "configure:5704: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1824,7 +5751,7 @@ + # Extract the first word of "cl", so it can be a program name with args. + set dummy cl; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1828: checking for $ac_word" >&5 ++echo "configure:5755: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1856,7 +5783,7 @@ + fi + + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1860: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++echo "configure:5787: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +@@ -1867,12 +5794,12 @@ + + cat > conftest.$ac_ext << EOF + +-#line 1871 "configure" ++#line 5798 "configure" + #include "confdefs.h" + + main(){return(0);} + EOF +-if { (eval echo configure:1876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:5803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then +@@ -1898,12 +5825,12 @@ + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } + fi + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:1902: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "configure:5829: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 + echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 + cross_compiling=$ac_cv_prog_cc_cross + + echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +-echo "configure:1907: checking whether we are using GNU C" >&5 ++echo "configure:5834: checking whether we are using GNU C" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1912,7 +5839,7 @@ + yes; + #endif + EOF +-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1916: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:5843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes + else + ac_cv_prog_gcc=no +@@ -1931,7 +5858,7 @@ + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:1935: checking whether ${CC-cc} accepts -g" >&5 ++echo "configure:5862: checking whether ${CC-cc} accepts -g" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1962,32 +5889,54 @@ + fi + fi + +-echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 +-echo "configure:1967: checking for POSIXized ISC" >&5 +-if test -d /etc/conf/kconfig.d && +- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 +-then +- echo "$ac_t""yes" 1>&6 +- ISC=yes # If later tests want to check for ISC. +- cat >> confdefs.h <<\EOF +-#define _POSIX_SOURCE 1 ++ ++ echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 ++echo "configure:5895: checking for strerror in -lcposix" >&5 ++ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-lcposix $LIBS" ++cat > conftest.$ac_ext <<EOF ++#line 5903 "configure" ++#include "confdefs.h" ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char strerror(); ++ ++int main() { ++strerror() ++; return 0; } + EOF ++if { (eval echo configure:5914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" + +- if test "$GCC" = yes; then +- CC="$CC -posix" +- else +- CC="$CC -Xp" +- fi ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ LIBS="$LIBS -lcposix" + else + echo "$ac_t""no" 1>&6 +- ISC= + fi + ++ ++ + + + + echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 +-echo "configure:1991: checking for ${CC-cc} option to accept ANSI C" >&5 ++echo "configure:5940: checking for ${CC-cc} option to accept ANSI C" >&5 + if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2003,7 +5952,7 @@ + do + CC="$ac_save_CC $ac_arg" + cat > conftest.$ac_ext <<EOF +-#line 2007 "configure" ++#line 5956 "configure" + #include "confdefs.h" + #include <stdarg.h> + #include <stdio.h> +@@ -2040,7 +5989,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2044: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:5993: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + am_cv_prog_cc_stdc="$ac_arg"; break + else +@@ -2075,7 +6024,7 @@ + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" + # ./install, which can be erroneously created by make from ./install.sh. + echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +-echo "configure:2079: checking for a BSD compatible install" >&5 ++echo "configure:6028: checking for a BSD compatible install" >&5 + if test -z "$INSTALL"; then + if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -2128,7 +6077,7 @@ + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +-echo "configure:2132: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++echo "configure:6081: checking whether ${MAKE-make} sets \${MAKE}" >&5 + set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -2180,12 +6129,12 @@ + # define a MAINT-like variable REBUILD which is set if Perl + # and awk are found, so autogenerated sources can be rebuilt + +-for ac_prog in gawk mawk nawk awk ++for ac_prog in mawk gawk nawk awk + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2189: checking for $ac_word" >&5 ++echo "configure:6138: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2219,7 +6168,7 @@ + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2223: checking for $ac_word" >&5 ++echo "configure:6172: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2253,7 +6202,7 @@ + # Extract the first word of "indent", so it can be a program name with args. + set dummy indent; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2257: checking for $ac_word" >&5 ++echo "configure:6206: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_INDENT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2290,7 +6239,7 @@ + + + echo $ac_n "checking whether make is GNU Make""... $ac_c" 1>&6 +-echo "configure:2294: checking whether make is GNU Make" >&5 ++echo "configure:6243: checking whether make is GNU Make" >&5 + STRIP_BEGIN= + STRIP_END= + if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then +@@ -2307,93 +6256,43 @@ + + # i18n stuff + ALL_LINGUAS="az ca cs da de el es et eu fi fr ga gl hr hu it ja ko lt nl no nn pl pt pt_BR ro ru sk sl sp sr sv tr uk vi wa zh_CN.GB2312 zh_TW.Big5" +-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +-echo "configure:2312: checking how to run the C preprocessor" >&5 +-# On Suns, sometimes $CPP names a directory. +-if test -n "$CPP" && test -d "$CPP"; then +- CPP= +-fi +-if test -z "$CPP"; then +-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then ++# Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:6263: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +- # This must be in double quotes, not single quotes, because CPP may get +- # substituted into the Makefile and "${CC-cc}" will confuse make. +- CPP="${CC-cc} -E" +- # On the NeXT, cc -E runs the code through the compiler's parser, +- # not just through cpp. +- cat > conftest.$ac_ext <<EOF +-#line 2327 "configure" +-#include "confdefs.h" +-#include <assert.h> +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2333: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then +- : +-else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP="${CC-cc} -E -traditional-cpp" +- cat > conftest.$ac_ext <<EOF +-#line 2344 "configure" +-#include "confdefs.h" +-#include <assert.h> +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2350: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then +- : +-else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP="${CC-cc} -nologo -E" +- cat > conftest.$ac_ext <<EOF +-#line 2361 "configure" +-#include "confdefs.h" +-#include <assert.h> +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2367: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then +- : ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. + else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP=/lib/cpp +-fi +-rm -f conftest* +-fi +-rm -f conftest* ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" + fi +-rm -f conftest* +- ac_cv_prog_CPP="$CPP" + fi +- CPP="$ac_cv_prog_CPP" ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 + else +- ac_cv_prog_CPP="$CPP" ++ echo "$ac_t""no" 1>&6 + fi +-echo "$ac_t""$CPP" 1>&6 + + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +-echo "configure:2392: checking for ANSI C header files" >&5 ++echo "configure:6291: checking for ANSI C header files" >&5 + if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2397 "configure" ++#line 6296 "configure" + #include "confdefs.h" + #include <stdlib.h> + #include <stdarg.h> +@@ -2401,7 +6300,7 @@ + #include <float.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:6304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2418,7 +6317,7 @@ + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 2422 "configure" ++#line 6321 "configure" + #include "confdefs.h" + #include <string.h> + EOF +@@ -2436,7 +6335,7 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 2440 "configure" ++#line 6339 "configure" + #include "confdefs.h" + #include <stdlib.h> + EOF +@@ -2457,7 +6356,7 @@ + : + else + cat > conftest.$ac_ext <<EOF +-#line 2461 "configure" ++#line 6360 "configure" + #include "confdefs.h" + #include <ctype.h> + #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +@@ -2468,7 +6367,7 @@ + exit (0); } + + EOF +-if { (eval echo configure:2472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -2492,12 +6391,12 @@ + fi + + echo $ac_n "checking for working const""... $ac_c" 1>&6 +-echo "configure:2496: checking for working const" >&5 ++echo "configure:6395: checking for working const" >&5 + if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2501 "configure" ++#line 6400 "configure" + #include "confdefs.h" + + int main() { +@@ -2546,7 +6445,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2550: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6449: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes + else +@@ -2567,21 +6466,21 @@ + fi + + echo $ac_n "checking for inline""... $ac_c" 1>&6 +-echo "configure:2571: checking for inline" >&5 ++echo "configure:6470: checking for inline" >&5 + if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + ac_cv_c_inline=no + for ac_kw in inline __inline__ __inline; do + cat > conftest.$ac_ext <<EOF +-#line 2578 "configure" ++#line 6477 "configure" + #include "confdefs.h" + + int main() { + } $ac_kw foo() { + ; return 0; } + EOF +-if { (eval echo configure:2585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:6484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_inline=$ac_kw; break + else +@@ -2607,12 +6506,12 @@ + esac + + echo $ac_n "checking for off_t""... $ac_c" 1>&6 +-echo "configure:2611: checking for off_t" >&5 ++echo "configure:6510: checking for off_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2616 "configure" ++#line 6515 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2640,12 +6539,12 @@ + fi + + echo $ac_n "checking for size_t""... $ac_c" 1>&6 +-echo "configure:2644: checking for size_t" >&5 ++echo "configure:6543: checking for size_t" >&5 + if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2649 "configure" ++#line 6548 "configure" + #include "confdefs.h" + #include <sys/types.h> + #if STDC_HEADERS +@@ -2675,19 +6574,19 @@ + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works + # for constant arguments. Useless! + echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 +-echo "configure:2679: checking for working alloca.h" >&5 ++echo "configure:6578: checking for working alloca.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2684 "configure" ++#line 6583 "configure" + #include "confdefs.h" + #include <alloca.h> + int main() { + char *p = alloca(2 * sizeof(int)); + ; return 0; } + EOF +-if { (eval echo configure:2691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_header_alloca_h=yes + else +@@ -2708,12 +6607,12 @@ + fi + + echo $ac_n "checking for alloca""... $ac_c" 1>&6 +-echo "configure:2712: checking for alloca" >&5 ++echo "configure:6611: checking for alloca" >&5 + if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2717 "configure" ++#line 6616 "configure" + #include "confdefs.h" + + #ifdef __GNUC__ +@@ -2741,7 +6640,7 @@ + char *p = (char *) alloca(1); + ; return 0; } + EOF +-if { (eval echo configure:2745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_func_alloca_works=yes + else +@@ -2773,12 +6672,12 @@ + + + echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 +-echo "configure:2777: checking whether alloca needs Cray hooks" >&5 ++echo "configure:6676: checking whether alloca needs Cray hooks" >&5 + if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2782 "configure" ++#line 6681 "configure" + #include "confdefs.h" + #if defined(CRAY) && ! defined(CRAY2) + webecray +@@ -2803,12 +6702,12 @@ + if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:2807: checking for $ac_func" >&5 ++echo "configure:6706: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2812 "configure" ++#line 6711 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -2831,7 +6730,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -2858,7 +6757,7 @@ + fi + + echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 +-echo "configure:2862: checking stack direction for C alloca" >&5 ++echo "configure:6761: checking stack direction for C alloca" >&5 + if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2866,7 +6765,7 @@ + ac_cv_c_stack_direction=0 + else + cat > conftest.$ac_ext <<EOF +-#line 2870 "configure" ++#line 6769 "configure" + #include "confdefs.h" + find_stack_direction () + { +@@ -2885,7 +6784,7 @@ + exit (find_stack_direction() < 0); + } + EOF +-if { (eval echo configure:2889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:6788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_c_stack_direction=1 + else +@@ -2910,17 +6809,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:2914: checking for $ac_hdr" >&5 ++echo "configure:6813: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2919 "configure" ++#line 6818 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:2924: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:6823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -2949,12 +6848,12 @@ + for ac_func in getpagesize + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:2953: checking for $ac_func" >&5 ++echo "configure:6852: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 2958 "configure" ++#line 6857 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -2977,7 +6876,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:2981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:6880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3002,7 +6901,7 @@ + done + + echo $ac_n "checking for working mmap""... $ac_c" 1>&6 +-echo "configure:3006: checking for working mmap" >&5 ++echo "configure:6905: checking for working mmap" >&5 + if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3010,7 +6909,7 @@ + ac_cv_func_mmap_fixed_mapped=no + else + cat > conftest.$ac_ext <<EOF +-#line 3014 "configure" ++#line 6913 "configure" + #include "confdefs.h" + + /* Thanks to Mike Haertel and Jim Avera for this test. +@@ -3150,7 +7049,7 @@ + } + + EOF +-if { (eval echo configure:3154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:7053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_mmap_fixed_mapped=yes + else +@@ -3178,17 +7077,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:3182: checking for $ac_hdr" >&5 ++echo "configure:7081: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3187 "configure" ++#line 7086 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7091: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3218,12 +7117,12 @@ + strdup __argz_count __argz_stringify __argz_next + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3222: checking for $ac_func" >&5 ++echo "configure:7121: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3227 "configure" ++#line 7126 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3246,7 +7145,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3275,12 +7174,12 @@ + for ac_func in stpcpy + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3279: checking for $ac_func" >&5 ++echo "configure:7178: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3284 "configure" ++#line 7183 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3303,7 +7202,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3335,21 +7234,21 @@ + + fi + +- if test $ac_cv_header_locale_h = yes; then +- echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 +-echo "configure:3341: checking for LC_MESSAGES" >&5 ++ ++ echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 ++echo "configure:7240: checking for LC_MESSAGES" >&5 + if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3346 "configure" ++#line 7245 "configure" + #include "confdefs.h" + #include <locale.h> + int main() { + return LC_MESSAGES + ; return 0; } + EOF +-if { (eval echo configure:3353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + am_cv_val_LC_MESSAGES=yes + else +@@ -3362,15 +7261,15 @@ + fi + + echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6 +- if test $am_cv_val_LC_MESSAGES = yes; then +- cat >> confdefs.h <<\EOF ++ if test $am_cv_val_LC_MESSAGES = yes; then ++ cat >> confdefs.h <<\EOF + #define HAVE_LC_MESSAGES 1 + EOF + +- fi + fi ++ + echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 +-echo "configure:3374: checking whether NLS is requested" >&5 ++echo "configure:7273: checking whether NLS is requested" >&5 + # Check whether --enable-nls or --disable-nls was given. + if test "${enable_nls+set}" = set; then + enableval="$enable_nls" +@@ -3402,17 +7301,17 @@ + + ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 +-echo "configure:3406: checking for libintl.h" >&5 ++echo "configure:7305: checking for libintl.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3411 "configure" ++#line 7310 "configure" + #include "confdefs.h" + #include <libintl.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:3416: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7315: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -3429,19 +7328,19 @@ + if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for dgettext in libc""... $ac_c" 1>&6 +-echo "configure:3433: checking for dgettext in libc" >&5 ++echo "configure:7332: checking for dgettext in libc" >&5 + if eval "test \"`echo '$''{'gt_cv_func_dgettext_libc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3438 "configure" ++#line 7337 "configure" + #include "confdefs.h" + #include <libintl.h> + int main() { + return (int) dgettext ("","") + ; return 0; } + EOF +-if { (eval echo configure:3445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + gt_cv_func_dgettext_libc=yes + else +@@ -3457,7 +7356,7 @@ + + if test "$gt_cv_func_dgettext_libc" != "yes"; then + echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 +-echo "configure:3461: checking for bindtextdomain in -lintl" >&5 ++echo "configure:7360: checking for bindtextdomain in -lintl" >&5 + ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -3465,7 +7364,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 3469 "configure" ++#line 7368 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -3476,7 +7375,7 @@ + bindtextdomain() + ; return 0; } + EOF +-if { (eval echo configure:3480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -3492,12 +7391,12 @@ + if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + echo $ac_n "checking for dgettext in libintl""... $ac_c" 1>&6 +-echo "configure:3496: checking for dgettext in libintl" >&5 ++echo "configure:7395: checking for dgettext in libintl" >&5 + if eval "test \"`echo '$''{'gt_cv_func_dgettext_libintl'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + echo $ac_n "checking for dgettext in -lintl""... $ac_c" 1>&6 +-echo "configure:3501: checking for dgettext in -lintl" >&5 ++echo "configure:7400: checking for dgettext in -lintl" >&5 + ac_lib_var=`echo intl'_'dgettext | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -3505,7 +7404,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lintl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 3509 "configure" ++#line 7408 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -3516,7 +7415,7 @@ + dgettext() + ; return 0; } + EOF +-if { (eval echo configure:3520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -3559,7 +7458,7 @@ + # Extract the first word of "msgfmt", so it can be a program name with args. + set dummy msgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3563: checking for $ac_word" >&5 ++echo "configure:7462: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3584,7 +7483,7 @@ + esac + fi + MSGFMT="$ac_cv_path_MSGFMT" +-if test -n "$MSGFMT"; then ++if test "$MSGFMT" != "no"; then + echo "$ac_t""$MSGFMT" 1>&6 + else + echo "$ac_t""no" 1>&6 +@@ -3593,12 +7492,12 @@ + for ac_func in dcgettext + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:3597: checking for $ac_func" >&5 ++echo "configure:7496: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3602 "configure" ++#line 7501 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -3621,7 +7520,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -3648,7 +7547,7 @@ + # Extract the first word of "gmsgfmt", so it can be a program name with args. + set dummy gmsgfmt; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3652: checking for $ac_word" >&5 ++echo "configure:7551: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3684,7 +7583,7 @@ + # Extract the first word of "xgettext", so it can be a program name with args. + set dummy xgettext; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3688: checking for $ac_word" >&5 ++echo "configure:7587: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3709,14 +7608,14 @@ + esac + fi + XGETTEXT="$ac_cv_path_XGETTEXT" +-if test -n "$XGETTEXT"; then ++if test "$XGETTEXT" != ":"; then + echo "$ac_t""$XGETTEXT" 1>&6 + else + echo "$ac_t""no" 1>&6 + fi + + cat > conftest.$ac_ext <<EOF +-#line 3720 "configure" ++#line 7619 "configure" + #include "confdefs.h" + + int main() { +@@ -3724,7 +7623,7 @@ + return _nl_msg_cat_cntr + ; return 0; } + EOF +-if { (eval echo configure:3728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + CATOBJEXT=.gmo + DATADIRNAME=share +@@ -3754,7 +7653,7 @@ + + if test "$CATOBJEXT" = "NONE"; then + echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6 +-echo "configure:3758: checking whether catgets can be used" >&5 ++echo "configure:7657: checking whether catgets can be used" >&5 + # Check whether --with-catgets or --without-catgets was given. + if test "${with_catgets+set}" = set; then + withval="$with_catgets" +@@ -3767,7 +7666,7 @@ + + if test "$nls_cv_use_catgets" = "yes"; then + echo $ac_n "checking for main in -li""... $ac_c" 1>&6 +-echo "configure:3771: checking for main in -li" >&5 ++echo "configure:7670: checking for main in -li" >&5 + ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -3775,14 +7674,14 @@ + ac_save_LIBS="$LIBS" + LIBS="-li $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 3779 "configure" ++#line 7678 "configure" + #include "confdefs.h" + + int main() { + main() + ; return 0; } + EOF +-if { (eval echo configure:3786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -3810,12 +7709,12 @@ + fi + + echo $ac_n "checking for catgets""... $ac_c" 1>&6 +-echo "configure:3814: checking for catgets" >&5 ++echo "configure:7713: checking for catgets" >&5 + if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 3819 "configure" ++#line 7718 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char catgets(); below. */ +@@ -3838,7 +7737,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:3842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:7741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_catgets=yes" + else +@@ -3860,7 +7759,7 @@ + # Extract the first word of "gencat", so it can be a program name with args. + set dummy gencat; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3864: checking for $ac_word" >&5 ++echo "configure:7763: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4000,7 +7899,7 @@ + LINGUAS= + else + echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 +-echo "configure:4004: checking for catalogs to be installed" >&5 ++echo "configure:7903: checking for catalogs to be installed" >&5 + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in +@@ -4028,17 +7927,17 @@ + if test "$CATOBJEXT" = ".cat"; then + ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 +-echo "configure:4032: checking for linux/version.h" >&5 ++echo "configure:7931: checking for linux/version.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4037 "configure" ++#line 7936 "configure" + #include "confdefs.h" + #include <linux/version.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:4042: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:7941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -4109,8 +8008,34 @@ + gtklocaledir='${prefix}/${DATADIRNAME}/locale' + + ++echo $ac_n "checking for nl_langinfo (CODESET)""... $ac_c" 1>&6 ++echo "configure:8013: checking for nl_langinfo (CODESET)" >&5 ++cat > conftest.$ac_ext <<EOF ++#line 8015 "configure" ++#include "confdefs.h" ++#include <langinfo.h> ++int main() { ++char *codeset = nl_langinfo (CODESET); ++; return 0; } ++EOF ++if { (eval echo configure:8022: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ cat >> confdefs.h <<\EOF ++#define HAVE_CODESET 1 ++EOF ++ ++ have_codeset=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ have_codeset=no ++fi ++rm -f conftest* ++echo "$ac_t""$have_codeset" 1>&6 ++ + echo $ac_n "checking for extra flags to get ANSI library prototypes""... $ac_c" 1>&6 +-echo "configure:4114: checking for extra flags to get ANSI library prototypes" >&5 ++echo "configure:8039: checking for extra flags to get ANSI library prototypes" >&5 + + gtk_save_LIBS=$LIBS + LIBS="$LIBS -lm" +@@ -4119,12 +8044,12 @@ + + else + cat > conftest.$ac_ext <<EOF +-#line 4123 "configure" ++#line 8048 "configure" + #include "confdefs.h" + #include <math.h> + int main (void) { return (log(1) != log(1.)); } + EOF +-if { (eval echo configure:4128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:8053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + echo "$ac_t""none needed" 1>&6 + else +@@ -4138,12 +8063,12 @@ + + else + cat > conftest.$ac_ext <<EOF +-#line 4142 "configure" ++#line 8067 "configure" + #include "confdefs.h" + #include <math.h> + int main (void) { return (log(1) != log(1.)); } + EOF +-if { (eval echo configure:4147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:8072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + echo "$ac_t""-std1" 1>&6 + else +@@ -4164,16 +8089,16 @@ + LIBS=$gtk_save_LIBS + + echo $ac_n "checking for extra flags for POSIX compliance""... $ac_c" 1>&6 +-echo "configure:4168: checking for extra flags for POSIX compliance" >&5 ++echo "configure:8093: checking for extra flags for POSIX compliance" >&5 + cat > conftest.$ac_ext <<EOF +-#line 4170 "configure" ++#line 8095 "configure" + #include "confdefs.h" + #include <dirent.h> + int main() { + DIR *dir; + ; return 0; } + EOF +-if { (eval echo configure:4177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:8102: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""none needed" 1>&6 + else +@@ -4183,14 +8108,14 @@ + gtk_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -posix" + cat > conftest.$ac_ext <<EOF +-#line 4187 "configure" ++#line 8112 "configure" + #include "confdefs.h" + #include <dirent.h> + int main() { + DIR *dir; + ; return 0; } + EOF +-if { (eval echo configure:4194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:8119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""-posix" 1>&6 + else +@@ -4266,7 +8191,7 @@ + # Extract the first word of "glib-config", so it can be a program name with args. + set dummy glib-config; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4270: checking for $ac_word" >&5 ++echo "configure:8195: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_path_GLIB_CONFIG'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4301,7 +8226,7 @@ + + min_glib_version=1.2.8 + echo $ac_n "checking for GLIB - version >= $min_glib_version""... $ac_c" 1>&6 +-echo "configure:4305: checking for GLIB - version >= $min_glib_version" >&5 ++echo "configure:8230: checking for GLIB - version >= $min_glib_version" >&5 + no_glib="" + if test "$GLIB_CONFIG" = "no" ; then + no_glib=yes +@@ -4324,7 +8249,7 @@ + echo $ac_n "cross compiling; assumed OK... $ac_c" + else + cat > conftest.$ac_ext <<EOF +-#line 4328 "configure" ++#line 8253 "configure" + #include "confdefs.h" + + #include <glib.h> +@@ -4400,7 +8325,7 @@ + } + + EOF +-if { (eval echo configure:4404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:8329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -4434,7 +8359,7 @@ + CFLAGS="$CFLAGS $GLIB_CFLAGS" + LIBS="$LIBS $GLIB_LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4438 "configure" ++#line 8363 "configure" + #include "confdefs.h" + + #include <glib.h> +@@ -4444,7 +8369,7 @@ + return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); + ; return 0; } + EOF +-if { (eval echo configure:4448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GLIB or finding the wrong" +@@ -4540,7 +8465,7 @@ + # Uses ac_ vars as temps to allow command line to override cache and checks. + # --without-x overrides everything else, but does not touch the cache. + echo $ac_n "checking for X""... $ac_c" 1>&6 +-echo "configure:4544: checking for X" >&5 ++echo "configure:8469: checking for X" >&5 + + # Check whether --with-x or --without-x was given. + if test "${with_x+set}" = set; then +@@ -4602,12 +8527,12 @@ + + # First, try using that file with no special directory specified. + cat > conftest.$ac_ext <<EOF +-#line 4606 "configure" ++#line 8531 "configure" + #include "confdefs.h" + #include <$x_direct_test_include> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:4611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:8536: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -4676,14 +8601,14 @@ + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4680 "configure" ++#line 8605 "configure" + #include "confdefs.h" + + int main() { + ${x_direct_test_function}() + ; return 0; } + EOF +-if { (eval echo configure:4687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + LIBS="$ac_save_LIBS" + # We can link X programs with no special library path. +@@ -4789,17 +8714,17 @@ + case "`(uname -sr) 2>/dev/null`" in + "SunOS 5"*) + echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 +-echo "configure:4793: checking whether -R must be followed by a space" >&5 ++echo "configure:8718: checking whether -R must be followed by a space" >&5 + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" + cat > conftest.$ac_ext <<EOF +-#line 4796 "configure" ++#line 8721 "configure" + #include "confdefs.h" + + int main() { + + ; return 0; } + EOF +-if { (eval echo configure:4803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_nospace=yes + else +@@ -4815,14 +8740,14 @@ + else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat > conftest.$ac_ext <<EOF +-#line 4819 "configure" ++#line 8744 "configure" + #include "confdefs.h" + + int main() { + + ; return 0; } + EOF +-if { (eval echo configure:4826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_space=yes + else +@@ -4854,7 +8779,7 @@ + # libraries were built with DECnet support. And karl@cs.umb.edu says + # the Alpha needs dnet_stub (dnet does not exist). + echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 +-echo "configure:4858: checking for dnet_ntoa in -ldnet" >&5 ++echo "configure:8783: checking for dnet_ntoa in -ldnet" >&5 + ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4862,7 +8787,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-ldnet $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4866 "configure" ++#line 8791 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4873,7 +8798,7 @@ + dnet_ntoa() + ; return 0; } + EOF +-if { (eval echo configure:4877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8802: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4895,7 +8820,7 @@ + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 +-echo "configure:4899: checking for dnet_ntoa in -ldnet_stub" >&5 ++echo "configure:8824: checking for dnet_ntoa in -ldnet_stub" >&5 + ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -4903,7 +8828,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-ldnet_stub $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 4907 "configure" ++#line 8832 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -4914,7 +8839,7 @@ + dnet_ntoa() + ; return 0; } + EOF +-if { (eval echo configure:4918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -4943,12 +8868,12 @@ + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to dickey@clark.net. + echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 +-echo "configure:4947: checking for gethostbyname" >&5 ++echo "configure:8872: checking for gethostbyname" >&5 + if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 4952 "configure" ++#line 8877 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname(); below. */ +@@ -4971,7 +8896,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:4975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_gethostbyname=yes" + else +@@ -4992,7 +8917,7 @@ + + if test $ac_cv_func_gethostbyname = no; then + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +-echo "configure:4996: checking for gethostbyname in -lnsl" >&5 ++echo "configure:8921: checking for gethostbyname in -lnsl" >&5 + ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5000,7 +8925,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lnsl $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5004 "configure" ++#line 8929 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5011,7 +8936,7 @@ + gethostbyname() + ; return 0; } + EOF +-if { (eval echo configure:5015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5041,12 +8966,12 @@ + # -lsocket must be given before -lnsl if both are needed. + # We assume that if connect needs -lnsl, so does gethostbyname. + echo $ac_n "checking for connect""... $ac_c" 1>&6 +-echo "configure:5045: checking for connect" >&5 ++echo "configure:8970: checking for connect" >&5 + if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 5050 "configure" ++#line 8975 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char connect(); below. */ +@@ -5069,7 +8994,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:5073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:8998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_connect=yes" + else +@@ -5090,7 +9015,7 @@ + + if test $ac_cv_func_connect = no; then + echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 +-echo "configure:5094: checking for connect in -lsocket" >&5 ++echo "configure:9019: checking for connect in -lsocket" >&5 + ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5098,7 +9023,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lsocket $X_EXTRA_LIBS $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5102 "configure" ++#line 9027 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5109,7 +9034,7 @@ + connect() + ; return 0; } + EOF +-if { (eval echo configure:5113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5133,12 +9058,12 @@ + + # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. + echo $ac_n "checking for remove""... $ac_c" 1>&6 +-echo "configure:5137: checking for remove" >&5 ++echo "configure:9062: checking for remove" >&5 + if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 5142 "configure" ++#line 9067 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char remove(); below. */ +@@ -5161,7 +9086,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:5165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_remove=yes" + else +@@ -5182,7 +9107,7 @@ + + if test $ac_cv_func_remove = no; then + echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 +-echo "configure:5186: checking for remove in -lposix" >&5 ++echo "configure:9111: checking for remove in -lposix" >&5 + ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5190,7 +9115,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lposix $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5194 "configure" ++#line 9119 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5201,7 +9126,7 @@ + remove() + ; return 0; } + EOF +-if { (eval echo configure:5205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5225,12 +9150,12 @@ + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + echo $ac_n "checking for shmat""... $ac_c" 1>&6 +-echo "configure:5229: checking for shmat" >&5 ++echo "configure:9154: checking for shmat" >&5 + if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 5234 "configure" ++#line 9159 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shmat(); below. */ +@@ -5253,7 +9178,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:5257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_shmat=yes" + else +@@ -5274,7 +9199,7 @@ + + if test $ac_cv_func_shmat = no; then + echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 +-echo "configure:5278: checking for shmat in -lipc" >&5 ++echo "configure:9203: checking for shmat in -lipc" >&5 + ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5282,7 +9207,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lipc $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5286 "configure" ++#line 9211 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5293,7 +9218,7 @@ + shmat() + ; return 0; } + EOF +-if { (eval echo configure:5297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5326,7 +9251,7 @@ + # libraries we check for below, so use a different variable. + # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. + echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 +-echo "configure:5330: checking for IceConnectionNumber in -lICE" >&5 ++echo "configure:9255: checking for IceConnectionNumber in -lICE" >&5 + ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5334,7 +9259,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lICE $X_EXTRA_LIBS $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5338 "configure" ++#line 9263 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5345,7 +9270,7 @@ + IceConnectionNumber() + ; return 0; } + EOF +-if { (eval echo configure:5349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5389,7 +9314,7 @@ + # Checks for libraries. + # Check for the X11 library + echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 +-echo "configure:5393: checking for XOpenDisplay in -lX11" >&5 ++echo "configure:9318: checking for XOpenDisplay in -lX11" >&5 + ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5397,7 +9322,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lX11 $X_EXTRA_LIBS $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5401 "configure" ++#line 9326 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5408,7 +9333,7 @@ + XOpenDisplay() + ; return 0; } + EOF +-if { (eval echo configure:5412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5433,7 +9358,7 @@ + if test "x$enable_shm" = "xyes"; then + # Check for the Xext library (needed for XShm extention) + echo $ac_n "checking for XShmAttach in -lXext""... $ac_c" 1>&6 +-echo "configure:5437: checking for XShmAttach in -lXext" >&5 ++echo "configure:9362: checking for XShmAttach in -lXext" >&5 + ac_lib_var=`echo Xext'_'XShmAttach | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5441,7 +9366,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lXext $x_libs $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5445 "configure" ++#line 9370 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5452,7 +9377,7 @@ + XShmAttach() + ; return 0; } + EOF +-if { (eval echo configure:5456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5472,7 +9397,7 @@ + echo "$ac_t""no" 1>&6 + # On AIX, it is in XextSam instead, but we still need -lXext + echo $ac_n "checking for XShmAttach in -lXextSam""... $ac_c" 1>&6 +-echo "configure:5476: checking for XShmAttach in -lXextSam" >&5 ++echo "configure:9401: checking for XShmAttach in -lXextSam" >&5 + ac_lib_var=`echo XextSam'_'XShmAttach | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5480,7 +9405,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lXextSam $x_libs $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5484 "configure" ++#line 9409 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5491,7 +9416,7 @@ + XShmAttach() + ; return 0; } + EOF +-if { (eval echo configure:5495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5519,7 +9444,7 @@ + # Check for shaped window extension + + echo $ac_n "checking for XShapeCombineMask in -lXext""... $ac_c" 1>&6 +-echo "configure:5523: checking for XShapeCombineMask in -lXext" >&5 ++echo "configure:9448: checking for XShapeCombineMask in -lXext" >&5 + ac_lib_var=`echo Xext'_'XShapeCombineMask | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5527,7 +9452,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lXext $x_libs $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5531 "configure" ++#line 9456 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5538,7 +9463,7 @@ + XShapeCombineMask() + ; return 0; } + EOF +-if { (eval echo configure:5542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5568,7 +9493,7 @@ + # Check for XConvertCase (X11R6 specific) + + echo $ac_n "checking for XConvertCase in -lX11""... $ac_c" 1>&6 +-echo "configure:5572: checking for XConvertCase in -lX11" >&5 ++echo "configure:9497: checking for XConvertCase in -lX11" >&5 + ac_lib_var=`echo X11'_'XConvertCase | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5576,7 +9501,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lX11 $x_libs $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5580 "configure" ++#line 9505 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5587,7 +9512,7 @@ + XConvertCase() + ; return 0; } + EOF +-if { (eval echo configure:5591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5614,7 +9539,7 @@ + # Check for XIM support. + + echo $ac_n "checking for XUnregisterIMInstantiateCallback in -lX11""... $ac_c" 1>&6 +-echo "configure:5618: checking for XUnregisterIMInstantiateCallback in -lX11" >&5 ++echo "configure:9543: checking for XUnregisterIMInstantiateCallback in -lX11" >&5 + ac_lib_var=`echo X11'_'XUnregisterIMInstantiateCallback | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -5622,7 +9547,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lX11 $x_libs $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 5626 "configure" ++#line 9551 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -5633,7 +9558,7 @@ + XUnregisterIMInstantiateCallback() + ; return 0; } + EOF +-if { (eval echo configure:5637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:9562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -5721,17 +9646,17 @@ + # Check for shared memory + ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6 +-echo "configure:5725: checking for sys/ipc.h" >&5 ++echo "configure:9650: checking for sys/ipc.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 5730 "configure" ++#line 9655 "configure" + #include "confdefs.h" + #include <sys/ipc.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:5735: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:9660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -5758,17 +9683,17 @@ + + ac_safe=`echo "sys/shm.h" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for sys/shm.h""... $ac_c" 1>&6 +-echo "configure:5762: checking for sys/shm.h" >&5 ++echo "configure:9687: checking for sys/shm.h" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 5767 "configure" ++#line 9692 "configure" + #include "confdefs.h" + #include <sys/shm.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:5772: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:9697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -5796,7 +9721,7 @@ + + # Check for the X shared memory extension header file + echo $ac_n "checking X11/extensions/XShm.h""... $ac_c" 1>&6 +-echo "configure:5800: checking X11/extensions/XShm.h" >&5 ++echo "configure:9725: checking X11/extensions/XShm.h" >&5 + if test "x$no_xext_lib" = "xyes"; then + echo "$ac_t""no" 1>&6 + no_xshm=yes +@@ -5817,13 +9742,13 @@ + # Check if X_LOCALE definition is necessary + + echo $ac_n "checking need -DX_LOCALE""... $ac_c" 1>&6 +-echo "configure:5821: checking need -DX_LOCALE" >&5 ++echo "configure:9746: checking need -DX_LOCALE" >&5 + + if test "$cross_compiling" = yes; then + need_x_locale=no + else + cat > conftest.$ac_ext <<EOF +-#line 5827 "configure" ++#line 9752 "configure" + #include "confdefs.h" + + #include <stdio.h> +@@ -5835,7 +9760,7 @@ + return setlocale (LC_ALL, "${with_locale}") == NULL; + } + EOF +-if { (eval echo configure:5839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + need_x_locale=no + else +@@ -5855,10 +9780,10 @@ + else + if test x$with_native_locale = xyes ; then + echo $ac_n "checking functioning locale support""... $ac_c" 1>&6 +-echo "configure:5859: checking functioning locale support" >&5 ++echo "configure:9784: checking functioning locale support" >&5 + + cat > conftest.$ac_ext <<EOF +-#line 5862 "configure" ++#line 9787 "configure" + #include "confdefs.h" + #include <stdlib.h> + int main() { +@@ -5870,7 +9795,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:5874: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:9799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + use_native_locale=yes + else +@@ -5885,13 +9810,13 @@ + + if test x$use_native_locale = xyes ; then + echo $ac_n "checking if sizeof(wchar_t) == 4""... $ac_c" 1>&6 +-echo "configure:5889: checking if sizeof(wchar_t) == 4" >&5 ++echo "configure:9814: checking if sizeof(wchar_t) == 4" >&5 + + if test "$cross_compiling" = yes; then + : + else + cat > conftest.$ac_ext <<EOF +-#line 5895 "configure" ++#line 9820 "configure" + #include "confdefs.h" + + #include <stdlib.h> +@@ -5902,7 +9827,7 @@ + return (sizeof(wchar_t) == 4) ? 0 : 1; + } + EOF +-if { (eval echo configure:5906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -5926,12 +9851,12 @@ + + # Checks for header files. + echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +-echo "configure:5930: checking for ANSI C header files" >&5 ++echo "configure:9855: checking for ANSI C header files" >&5 + if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 5935 "configure" ++#line 9860 "configure" + #include "confdefs.h" + #include <stdlib.h> + #include <stdarg.h> +@@ -5939,7 +9864,7 @@ + #include <float.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:5943: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:9868: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -5956,7 +9881,7 @@ + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 5960 "configure" ++#line 9885 "configure" + #include "confdefs.h" + #include <string.h> + EOF +@@ -5974,7 +9899,7 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat > conftest.$ac_ext <<EOF +-#line 5978 "configure" ++#line 9903 "configure" + #include "confdefs.h" + #include <stdlib.h> + EOF +@@ -5995,7 +9920,7 @@ + : + else + cat > conftest.$ac_ext <<EOF +-#line 5999 "configure" ++#line 9924 "configure" + #include "confdefs.h" + #include <ctype.h> + #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +@@ -6006,7 +9931,7 @@ + exit (0); } + + EOF +-if { (eval echo configure:6010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:9935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + : + else +@@ -6032,12 +9957,12 @@ + + # Checks for typedefs, structures, and compiler characteristics. + echo $ac_n "checking for working const""... $ac_c" 1>&6 +-echo "configure:6036: checking for working const" >&5 ++echo "configure:9961: checking for working const" >&5 + if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6041 "configure" ++#line 9966 "configure" + #include "confdefs.h" + + int main() { +@@ -6086,7 +10011,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6090: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:10015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_c_const=yes + else +@@ -6109,12 +10034,12 @@ + + # Checks for library functions. + echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +-echo "configure:6113: checking return type of signal handlers" >&5 ++echo "configure:10038: checking return type of signal handlers" >&5 + if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6118 "configure" ++#line 10043 "configure" + #include "confdefs.h" + #include <sys/types.h> + #include <signal.h> +@@ -6131,7 +10056,7 @@ + int i; + ; return 0; } + EOF +-if { (eval echo configure:6135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:10060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void + else +@@ -6153,17 +10078,17 @@ + do + ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` + echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:6157: checking for $ac_hdr" >&5 ++echo "configure:10082: checking for $ac_hdr" >&5 + if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6162 "configure" ++#line 10087 "configure" + #include "confdefs.h" + #include <$ac_hdr> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:6167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:10092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -6192,12 +10117,12 @@ + for ac_func in getpagesize + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:6196: checking for $ac_func" >&5 ++echo "configure:10121: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6201 "configure" ++#line 10126 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -6220,7 +10145,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:10149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -6245,7 +10170,7 @@ + done + + echo $ac_n "checking for working mmap""... $ac_c" 1>&6 +-echo "configure:6249: checking for working mmap" >&5 ++echo "configure:10174: checking for working mmap" >&5 + if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -6253,7 +10178,7 @@ + ac_cv_func_mmap_fixed_mapped=no + else + cat > conftest.$ac_ext <<EOF +-#line 6257 "configure" ++#line 10182 "configure" + #include "confdefs.h" + + /* Thanks to Mike Haertel and Jim Avera for this test. +@@ -6393,7 +10318,7 @@ + } + + EOF +-if { (eval echo configure:6397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++if { (eval echo configure:10322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null + then + ac_cv_func_mmap_fixed_mapped=yes + else +@@ -6419,12 +10344,12 @@ + for ac_func in getresuid + do + echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:6423: checking for $ac_func" >&5 ++echo "configure:10348: checking for $ac_func" >&5 + if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6428 "configure" ++#line 10353 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +@@ -6447,7 +10372,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:10376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" + else +@@ -6472,12 +10397,12 @@ + done + + echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 +-echo "configure:6476: checking for uid_t in sys/types.h" >&5 ++echo "configure:10401: checking for uid_t in sys/types.h" >&5 + if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6481 "configure" ++#line 10406 "configure" + #include "confdefs.h" + #include <sys/types.h> + EOF +@@ -6508,16 +10433,16 @@ + + # Check if <sys/select.h> needs to be included for fd_set + echo $ac_n "checking for fd_set""... $ac_c" 1>&6 +-echo "configure:6512: checking for fd_set" >&5 ++echo "configure:10437: checking for fd_set" >&5 + cat > conftest.$ac_ext <<EOF +-#line 6514 "configure" ++#line 10439 "configure" + #include "confdefs.h" + #include <sys/types.h> + int main() { + fd_set readMask, writeMask; + ; return 0; } + EOF +-if { (eval echo configure:6521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:10446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + gtk_ok=yes + else +@@ -6531,7 +10456,7 @@ + echo "$ac_t""yes, found in sys/types.h" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6535 "configure" ++#line 10460 "configure" + #include "confdefs.h" + #include <sys/select.h> + EOF +@@ -6560,14 +10485,14 @@ + # Duplicate `widechar' tests from `glib'. + # Check for wchar.h + echo $ac_n "checking for wchar.h""... $ac_c" 1>&6 +-echo "configure:6564: checking for wchar.h" >&5 ++echo "configure:10489: checking for wchar.h" >&5 + cat > conftest.$ac_ext <<EOF +-#line 6566 "configure" ++#line 10491 "configure" + #include "confdefs.h" + #include <wchar.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:6571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:10496: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -6590,14 +10515,14 @@ + + # Check for wctype.h (for iswalnum) + echo $ac_n "checking for wctype.h""... $ac_c" 1>&6 +-echo "configure:6594: checking for wctype.h" >&5 ++echo "configure:10519: checking for wctype.h" >&5 + cat > conftest.$ac_ext <<EOF +-#line 6596 "configure" ++#line 10521 "configure" + #include "confdefs.h" + #include <wctype.h> + EOF + ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:6601: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++{ (eval echo configure:10526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } + ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` + if test -z "$ac_err"; then + rm -rf conftest* +@@ -6621,12 +10546,12 @@ + # in Solaris 2.5, `iswalnum' is in -lw + GDK_WLIBS= + echo $ac_n "checking for iswalnum""... $ac_c" 1>&6 +-echo "configure:6625: checking for iswalnum" >&5 ++echo "configure:10550: checking for iswalnum" >&5 + if eval "test \"`echo '$''{'ac_cv_func_iswalnum'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else + cat > conftest.$ac_ext <<EOF +-#line 6630 "configure" ++#line 10555 "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char iswalnum(); below. */ +@@ -6649,7 +10574,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:10578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_iswalnum=yes" + else +@@ -6667,7 +10592,7 @@ + else + echo "$ac_t""no" 1>&6 + echo $ac_n "checking for iswalnum in -lw""... $ac_c" 1>&6 +-echo "configure:6671: checking for iswalnum in -lw" >&5 ++echo "configure:10596: checking for iswalnum in -lw" >&5 + ac_lib_var=`echo w'_'iswalnum | sed 'y%./+-%__p_%'` + if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +@@ -6675,7 +10600,7 @@ + ac_save_LIBS="$LIBS" + LIBS="-lw $LIBS" + cat > conftest.$ac_ext <<EOF +-#line 6679 "configure" ++#line 10604 "configure" + #include "confdefs.h" + /* Override any gcc2 internal prototype to avoid an error. */ + /* We use char because int might match the return type of a gcc2 +@@ -6686,7 +10611,7 @@ + iswalnum() + ; return 0; } + EOF +-if { (eval echo configure:6690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:10615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" + else +@@ -6713,9 +10638,9 @@ + oLIBS="$LIBS" + LIBS="$LIBS $GDK_WLIBS" + echo $ac_n "checking if iswalnum() and friends are properly defined""... $ac_c" 1>&6 +-echo "configure:6717: checking if iswalnum() and friends are properly defined" >&5 ++echo "configure:10642: checking if iswalnum() and friends are properly defined" >&5 + cat > conftest.$ac_ext <<EOF +-#line 6719 "configure" ++#line 10644 "configure" + #include "confdefs.h" + #include <stdlib.h> + int main() { +@@ -6735,7 +10660,7 @@ + + ; return 0; } + EOF +-if { (eval echo configure:6739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:10664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + gtk_ok=yes + else +@@ -6937,9 +10862,14 @@ + s%@build_cpu@%$build_cpu%g + s%@build_vendor@%$build_vendor%g + s%@build_os@%$build_os%g +-s%@RANLIB@%$RANLIB%g + s%@CC@%$CC%g + s%@LN_S@%$LN_S%g ++s%@OBJEXT@%$OBJEXT%g ++s%@EXEEXT@%$EXEEXT%g ++s%@ECHO@%$ECHO%g ++s%@RANLIB@%$RANLIB%g ++s%@STRIP@%$STRIP%g ++s%@CPP@%$CPP%g + s%@LIBTOOL@%$LIBTOOL%g + s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g + s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +@@ -6951,7 +10881,6 @@ + s%@STRIP_DUMMY@%$STRIP_DUMMY%g + s%@STRIP_BEGIN@%$STRIP_BEGIN%g + s%@STRIP_END@%$STRIP_END%g +-s%@CPP@%$CPP%g + s%@ALLOCA@%$ALLOCA%g + s%@USE_NLS@%$USE_NLS%g + s%@MSGFMT@%$MSGFMT%g +--- gtk+1.2-1.2.10.orig/configure.in ++++ gtk+1.2-1.2.10/configure.in +@@ -1,5 +1,7 @@ + # Process this file with autoconf to produce a configure script. ++ + AC_INIT(gdk/gdktypes.h) ++AC_PREREQ(2.13) + + # In the following, there are a the following variants + # of GLib cflags and libs variables +@@ -192,6 +194,15 @@ + gtklocaledir='${prefix}/${DATADIRNAME}/locale' + AC_SUBST(gtklocaledir) + ++dnl Check for nl_langinfo and CODESET ++AC_MSG_CHECKING([for nl_langinfo (CODESET)]) ++AC_TRY_COMPILE([#include <langinfo.h>], ++ [char *codeset = nl_langinfo (CODESET);], ++ AC_DEFINE(HAVE_CODESET,1,[Have nl_langinfo (CODESET)]) ++ have_codeset=yes, ++ have_codeset=no) ++AC_MSG_RESULT($have_codeset) ++ + dnl The DU4 header files don't provide library prototypes unless + dnl -std1 is given to the native cc. + AC_MSG_CHECKING([for extra flags to get ANSI library prototypes]) +--- gtk+1.2-1.2.10.orig/ltmain.sh ++++ gtk+1.2-1.2.10/ltmain.sh +@@ -1,7 +1,8 @@ + # ltmain.sh - Provide generalized library-building support services. +-# NOTE: Changing this file will not affect anything until you rerun ltconfig. ++# NOTE: Changing this file will not affect anything until you rerun configure. + # +-# Copyright (C) 1996-1999 Free Software Foundation, Inc. ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. + # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + # + # This program is free software; you can redistribute it and/or modify +@@ -48,14 +49,14 @@ + fi + + # The name of this program. +-progname=`$echo "$0" | sed 's%^.*/%%'` ++progname=`$echo "$0" | ${SED} 's%^.*/%%'` + modename="$progname" + + # Constants. + PROGRAM=ltmain.sh + PACKAGE=libtool +-VERSION=1.3.4 +-TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)" ++VERSION=1.4.3 ++TIMESTAMP=" (1.922.2.111 2002/10/23 02:54:36)" + + default_mode= + help="Try \`$progname --help' for more information." +@@ -66,10 +67,19 @@ + + # Sed substitution that helps us do robust quoting. It backslashifies + # metacharacters that are still active within double-quoted strings. +-Xsed='sed -e 1s/^X//' ++Xsed="${SED}"' -e 1s/^X//' + sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' +-SP2NL='tr \040 \012' +-NL2SP='tr \015\012 \040\040' ++# test EBCDIC or ASCII ++case `echo A|od -x` in ++ *[Cc]1*) # EBCDIC based system ++ SP2NL="tr '\100' '\n'" ++ NL2SP="tr '\r\n' '\100\100'" ++ ;; ++ *) # Assume ASCII based system ++ SP2NL="tr '\040' '\012'" ++ NL2SP="tr '\015\012' '\040\040'" ++ ;; ++esac + + # NLS nuisances. + # Only set LANG and LC_ALL to C if already set. +@@ -83,11 +93,8 @@ + save_LANG="$LANG"; LANG=C; export LANG + fi + +-if test "$LTCONFIG_VERSION" != "$VERSION"; then +- echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 +- echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 +- exit 1 +-fi ++# Make sure IFS has a sensible default ++: ${IFS=" "} + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + echo "$modename: not configured to build any kind of library" 1>&2 +@@ -113,16 +120,16 @@ + arg="$1" + shift + +- case "$arg" in ++ case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then +- case "$prev" in ++ case $prev in + execute_dlfiles) +- eval "$prev=\"\$$prev \$arg\"" ++ execute_dlfiles="$execute_dlfiles $arg" + ;; + *) + eval "$prev=\$arg" +@@ -135,7 +142,7 @@ + fi + + # Have we seen a non-optional argument yet? +- case "$arg" in ++ case $arg in + --help) + show_help=yes + ;; +@@ -146,7 +153,7 @@ + ;; + + --config) +- sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0 ++ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 + exit 0 + ;; + +@@ -179,6 +186,8 @@ + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + ++ --preserve-dup-deps) duplicate_deps="yes" ;; ++ + --quiet | --silent) + show=: + ;; +@@ -207,16 +216,21 @@ + exit 1 + fi + ++# If this variable is set in any of the actions, the command in it ++# will be execed at the end. This prevents here-documents from being ++# left over by shells. ++exec_cmd= ++ + if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then +- case "$nonopt" in +- *cc | *++ | gcc* | *-gcc*) ++ case $nonopt in ++ *cc | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do +- case "$arg" in ++ case $arg in + -c) + mode=compile + break +@@ -261,12 +275,13 @@ + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. +- case "$mode" in ++ case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= ++ prev= + lastarg= + srcfile="$nonopt" + suppress_output= +@@ -274,8 +289,34 @@ + user_target=no + for arg + do ++ case $prev in ++ "") ;; ++ xcompiler) ++ # Aesthetically quote the previous argument. ++ prev= ++ lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ ++ case $arg in ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ++ # Add the previous argument to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; ++ esac ++ + # Accept any command-line options. +- case "$arg" in ++ case $arg in + -o) + if test "$user_target" != "no"; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 +@@ -288,9 +329,53 @@ + build_old_libs=yes + continue + ;; ++ ++ -prefer-pic) ++ pic_mode=yes ++ continue ++ ;; ++ ++ -prefer-non-pic) ++ pic_mode=no ++ continue ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` ++ lastarg= ++ save_ifs="$IFS"; IFS=',' ++ for arg in $args; do ++ IFS="$save_ifs" ++ ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ lastarg="$lastarg $arg" ++ done ++ IFS="$save_ifs" ++ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` ++ ++ # Add the arguments to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; + esac + +- case "$user_target" in ++ case $user_target in + next) + # The next one is the -o target name + user_target=yes +@@ -316,10 +401,10 @@ + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + # Double-quote args containing other shell metacharacters. +- # Many Bourne shells cannot handle close brackets correctly in scan +- # sets, so we specify it separately. +- case "$lastarg" in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $lastarg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac +@@ -332,7 +417,7 @@ + fi + done + +- case "$user_target" in ++ case $user_target in + set) + ;; + no) +@@ -348,7 +433,7 @@ + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSfmso]' +- case "$libobj" in ++ case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; +@@ -363,7 +448,7 @@ + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + +- case "$libobj" in ++ case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 +@@ -387,10 +472,21 @@ + $run $rm $removelist + trap "$run $rm $removelist; exit 1" 1 2 15 + ++ # On Cygwin there's no "real" PIC flag so we must build both object types ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ pic_mode=default ++ ;; ++ esac ++ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then ++ # non-PIC code in shared libraries is not supported ++ pic_mode=default ++ fi ++ + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then +- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext} ++ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit 1" 1 2 15 +@@ -402,7 +498,7 @@ + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then +- until ln "$0" "$lockfile" 2>/dev/null; do ++ until $run ln "$0" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done +@@ -434,8 +530,13 @@ + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + +- # All platforms use -DPIC, to notify preprocessed assembler code. +- command="$base_compile $srcfile $pic_flag -DPIC" ++ if test "$pic_mode" != no; then ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ else ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ fi + if test "$build_old_libs" = yes; then + lo_libobj="$libobj" + dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` +@@ -506,7 +607,8 @@ + fi + + # If we have no pic_flag, then copy the object into place and finish. +- if test -z "$pic_flag" && test "$build_old_libs" = yes; then ++ if (test -z "$pic_flag" || test "$pic_mode" != default) && ++ test "$build_old_libs" = yes; then + # Rename the .lo from within objdir to obj + if test -f $obj; then + $show $rm $obj +@@ -532,6 +634,10 @@ + # Now arrange that obj and lo_libobj become the same file + $show "(cd $xdir && $LN_S $baseobj $libobj)" + if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then ++ # Unlock the critical section if it was locked ++ if test "$need_locks" != no; then ++ $run $rm "$lockfile" ++ fi + exit 0 + else + error=$? +@@ -546,7 +652,13 @@ + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then +- command="$base_compile $srcfile" ++ if test "$pic_mode" != yes; then ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ else ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ fi + if test "$compiler_c_o" = yes; then + command="$command -o $obj" + output_obj="$obj" +@@ -612,17 +724,17 @@ + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then +- $rm "$lockfile" ++ $run $rm "$lockfile" + fi + + exit 0 + ;; + + # libtool link mode +- link) ++ link | relink) + modename="$modename: link" +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2*) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra +@@ -635,179 +747,12 @@ + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes +- +- # This is a source program that is used to create dlls on Windows +- # Don't remove nor modify the starting and closing comments +-# /* ltdll.c starts here */ +-# #define WIN32_LEAN_AND_MEAN +-# #include <windows.h> +-# #undef WIN32_LEAN_AND_MEAN +-# #include <stdio.h> +-# +-# #ifndef __CYGWIN__ +-# # ifdef __CYGWIN32__ +-# # define __CYGWIN__ __CYGWIN32__ +-# # endif +-# #endif +-# +-# #ifdef __cplusplus +-# extern "C" { +-# #endif +-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +-# #ifdef __cplusplus +-# } +-# #endif +-# +-# #ifdef __CYGWIN__ +-# #include <cygwin/cygwin_dll.h> +-# DECLARE_CYGWIN_DLL( DllMain ); +-# #endif +-# HINSTANCE __hDllInstance_base; +-# +-# BOOL APIENTRY +-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +-# { +-# __hDllInstance_base = hInst; +-# return TRUE; +-# } +-# /* ltdll.c ends here */ +- # This is a source program that is used to create import libraries +- # on Windows for dlls which lack them. Don't remove nor modify the +- # starting and closing comments +-# /* impgen.c starts here */ +-# /* Copyright (C) 1999 Free Software Foundation, Inc. +-# +-# This file is part of GNU libtool. +-# +-# This program is free software; you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or +-# (at your option) any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. +-# +-# You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +-# */ +-# +-# #include <stdio.h> /* for printf() */ +-# #include <unistd.h> /* for open(), lseek(), read() */ +-# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ +-# #include <string.h> /* for strdup() */ +-# +-# static unsigned int +-# pe_get16 (fd, offset) +-# int fd; +-# int offset; +-# { +-# unsigned char b[2]; +-# lseek (fd, offset, SEEK_SET); +-# read (fd, b, 2); +-# return b[0] + (b[1]<<8); +-# } +-# +-# static unsigned int +-# pe_get32 (fd, offset) +-# int fd; +-# int offset; +-# { +-# unsigned char b[4]; +-# lseek (fd, offset, SEEK_SET); +-# read (fd, b, 4); +-# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +-# } +-# +-# static unsigned int +-# pe_as32 (ptr) +-# void *ptr; +-# { +-# unsigned char *b = ptr; +-# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); +-# } +-# +-# int +-# main (argc, argv) +-# int argc; +-# char *argv[]; +-# { +-# int dll; +-# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; +-# unsigned long export_rva, export_size, nsections, secptr, expptr; +-# unsigned long name_rvas, nexp; +-# unsigned char *expdata, *erva; +-# char *filename, *dll_name; +-# +-# filename = argv[1]; +-# +-# dll = open(filename, O_RDONLY|O_BINARY); +-# if (!dll) +-# return 1; +-# +-# dll_name = filename; +-# +-# for (i=0; filename[i]; i++) +-# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') +-# dll_name = filename + i +1; +-# +-# pe_header_offset = pe_get32 (dll, 0x3c); +-# opthdr_ofs = pe_header_offset + 4 + 20; +-# num_entries = pe_get32 (dll, opthdr_ofs + 92); +-# +-# if (num_entries < 1) /* no exports */ +-# return 1; +-# +-# export_rva = pe_get32 (dll, opthdr_ofs + 96); +-# export_size = pe_get32 (dll, opthdr_ofs + 100); +-# nsections = pe_get16 (dll, pe_header_offset + 4 +2); +-# secptr = (pe_header_offset + 4 + 20 + +-# pe_get16 (dll, pe_header_offset + 4 + 16)); +-# +-# expptr = 0; +-# for (i = 0; i < nsections; i++) +-# { +-# char sname[8]; +-# unsigned long secptr1 = secptr + 40 * i; +-# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); +-# unsigned long vsize = pe_get32 (dll, secptr1 + 16); +-# unsigned long fptr = pe_get32 (dll, secptr1 + 20); +-# lseek(dll, secptr1, SEEK_SET); +-# read(dll, sname, 8); +-# if (vaddr <= export_rva && vaddr+vsize > export_rva) +-# { +-# expptr = fptr + (export_rva - vaddr); +-# if (export_rva + export_size > vaddr + vsize) +-# export_size = vsize - (export_rva - vaddr); +-# break; +-# } +-# } +-# +-# expdata = (unsigned char*)malloc(export_size); +-# lseek (dll, expptr, SEEK_SET); +-# read (dll, expdata, export_size); +-# erva = expdata - export_rva; +-# +-# nexp = pe_as32 (expdata+24); +-# name_rvas = pe_as32 (expdata+32); +-# +-# printf ("EXPORTS\n"); +-# for (i = 0; i<nexp; i++) +-# { +-# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); +-# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); +-# } +-# +-# return 0; +-# } +-# /* impgen.c ends here */ + ;; + *) + allow_undefined=yes + ;; + esac ++ libtool_args="$nonopt" + compile_command="$nonopt" + finalize_command="$nonopt" + +@@ -818,18 +763,13 @@ + convenience= + old_convenience= + deplibs= +- linkopts= ++ old_deplibs= ++ compiler_flags= ++ linker_flags= ++ dllsearchpath= ++ lib_search_path=`pwd` ++ inst_prefix_dir= + +- if test -n "$shlibpath_var"; then +- # get the directories listed in $shlibpath_var +- eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` +- else +- lib_search_path= +- fi +- # now prepend the system-specific ones +- eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\" +- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" +- + avoid_version=no + dlfiles= + dlprefiles= +@@ -839,9 +779,9 @@ + export_symbols_regex= + generated= + libobjs= +- link_against_libtool_libs= + ltlibs= + module=no ++ no_install=no + objs= + prefer_static_libs=no + preload=no +@@ -858,7 +798,7 @@ + # We need to know -static, to get the right output filenames. + for arg + do +- case "$arg" in ++ case $arg in + -all-static | -static) + if test "X$arg" = "X-all-static"; then + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then +@@ -887,17 +827,24 @@ + while test $# -gt 0; do + arg="$1" + shift ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ++ ;; ++ *) qarg=$arg ;; ++ esac ++ libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then +- case "$prev" in ++ case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + +- case "$prev" in ++ case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. +@@ -905,7 +852,7 @@ + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi +- case "$arg" in ++ case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then +@@ -934,6 +881,7 @@ + dlprefiles="$dlprefiles $arg" + fi + prev= ++ continue + ;; + esac + ;; +@@ -951,6 +899,11 @@ + prev= + continue + ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; + release) + release="-$arg" + prev= +@@ -958,7 +911,7 @@ + ;; + rpath | xrpath) + # We need an absolute path. +- case "$arg" in ++ case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 +@@ -979,17 +932,32 @@ + prev= + continue + ;; ++ xcompiler) ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ compile_command="$compile_command $qarg" ++ finalize_command="$finalize_command $qarg" ++ continue ++ ;; ++ xlinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $wl$qarg" ++ prev= ++ compile_command="$compile_command $wl$qarg" ++ finalize_command="$finalize_command $wl$qarg" ++ continue ++ ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac +- fi ++ fi # test -n $prev + + prevarg="$arg" + +- case "$arg" in ++ case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" +@@ -1026,7 +994,7 @@ + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then +- $echo "$modename: not more than one -exported-symbols argument allowed" ++ $echo "$modename: more than one -exported-symbols argument is not allowed" + exit 1 + fi + if test "X$arg" = "X-export-symbols"; then +@@ -1037,58 +1005,81 @@ + continue + ;; + ++ -inst-prefix-dir) ++ prev=inst_prefix ++ continue ++ ;; ++ ++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* ++ # so, if we see these flags be careful not to treat them like -L ++ -L[A-Z][A-Z]*:*) ++ case $with_gcc/$host in ++ no/*-*-irix* | no/*-*-nonstopux*) ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ ;; ++ esac ++ continue ++ ;; ++ + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. +- case "$dir" in ++ case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then +- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 +- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 +- absdir="$dir" ++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ++ exit 1 + fi + dir="$absdir" + ;; + esac +- case " $deplibs " in +- *" $arg "*) ;; +- *) deplibs="$deplibs $arg";; +- esac +- case " $lib_search_path " in +- *" $dir "*) ;; +- *) lib_search_path="$lib_search_path $dir";; ++ case "$deplibs " in ++ *" -L$dir "*) ;; ++ *) ++ deplibs="$deplibs -L$dir" ++ lib_search_path="$lib_search_path $dir" ++ ;; + esac +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2*) +- dllsearchdir=`cd "$dir" && pwd || echo "$dir"` +- case ":$dllsearchpath:" in +- ::) dllsearchpath="$dllsearchdir";; +- *":$dllsearchdir:"*) ;; +- *) dllsearchpath="$dllsearchpath:$dllsearchdir";; ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$dir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$dir";; + esac + ;; + esac ++ continue + ;; + + -l*) +- if test "$arg" = "-lc"; then +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*) +- # These systems don't actually have c library (as such) ++ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then ++ case $host in ++ *-*-cygwin* | *-*-pw32* | *-*-beos*) ++ # These systems don't actually have a C or math library (as such) + continue + ;; ++ *-*-mingw* | *-*-os2*) ++ # These systems don't actually have a C library (as such) ++ test "X$arg" = "X-lc" && continue ++ ;; ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc due to us having libc/libc_r. ++ test "X$arg" = "X-lc" && continue ++ ;; + esac +- elif test "$arg" = "-lm"; then +- case "$host" in +- *-*-cygwin* | *-*-beos*) +- # These systems don't actually have math library (as such) ++ elif test "X$arg" = "X-lc_r"; then ++ case $host in ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" ++ continue + ;; + + -module) +@@ -1096,6 +1087,25 @@ + continue + ;; + ++ -no-fast-install) ++ fast_install=no ++ continue ++ ;; ++ ++ -no-install) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ # The PATH hackery in wrapper scripts is required on Windows ++ # in order for the loader to find any dlls it needs. ++ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 ++ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 ++ fast_install=no ++ ;; ++ *) no_install=yes ;; ++ esac ++ continue ++ ;; ++ + -no-undefined) + allow_undefined=no + continue +@@ -1121,7 +1131,7 @@ + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. +- case "$dir" in ++ case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 +@@ -1136,11 +1146,11 @@ + ;; + + -static) +- # If we have no pic_flag, then this is the same as -all-static. +- if test -z "$pic_flag" && test -n "$link_static_flag"; then +- compile_command="$compile_command $link_static_flag" +- finalize_command="$finalize_command $link_static_flag" +- fi ++ # The effects of -static are defined in a previous loop. ++ # We used to do the same as -all-static on platforms that ++ # didn't have a PIC flag, but the assumption that the effects ++ # would be equivalent was wrong. It would break on at least ++ # Digital Unix and AIX. + continue + ;; + +@@ -1154,28 +1164,71 @@ + continue + ;; + ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Wl,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $wl$flag" ++ linker_flags="$linker_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Xlinker) ++ prev=xlinker ++ continue ++ ;; ++ + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + +- *.o | *.obj | *.a | *.lib) +- # A standard object. +- objs="$objs $arg" +- ;; +- +- *.lo) +- # A library object. ++ *.lo | *.$objext) ++ # A library or standard object. + if test "$prev" = dlfiles; then +- dlfiles="$dlfiles $arg" +- if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then ++ # This file was specified with -dlopen. ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $arg" + prev= + continue + else +@@ -1188,357 +1241,917 @@ + # Preload the old-style object. + dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` + prev= ++ else ++ case $arg in ++ *.lo) libobjs="$libobjs $arg" ;; ++ *) objs="$objs $arg" ;; ++ esac + fi +- libobjs="$libobjs $arg" ++ ;; ++ ++ *.$libext) ++ # An archive. ++ deplibs="$deplibs $arg" ++ old_deplibs="$old_deplibs $arg" ++ continue + ;; + + *.la) + # A libtool-controlled library. + +- dlname= +- libdir= +- library_names= +- old_library= +- +- # Check to see that this really is a libtool archive. +- if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ if test "$prev" = dlfiles; then ++ # This library was specified with -dlopen. ++ dlfiles="$dlfiles $arg" ++ prev= ++ elif test "$prev" = dlprefiles; then ++ # The library was specified with -dlpreopen. ++ dlprefiles="$dlprefiles $arg" ++ prev= + else +- $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 +- exit 1 ++ deplibs="$deplibs $arg" + fi ++ continue ++ ;; + +- # If the library was installed with an old release of libtool, +- # it will not redefine variable installed. +- installed=yes +- +- # Read the .la file +- # If there is no directory component, then add one. +- case "$arg" in +- */* | *\\*) . $arg ;; +- *) . ./$arg ;; ++ # Some other compiler argument. ++ *) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; + esac ++ ;; ++ esac # arg + +- # Get the name of the library we link against. +- linklib= +- for l in $old_library $library_names; do +- linklib="$l" +- done +- +- if test -z "$linklib"; then +- $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 +- exit 1 +- fi +- +- # Find the relevant object directory and library name. +- name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` +- +- if test "X$installed" = Xyes; then +- dir="$libdir" +- else +- dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$dir" = "X$arg"; then +- dir="$objdir" +- else +- dir="$dir/$objdir" +- fi +- fi ++ # Now actually substitute the argument into the commands. ++ if test -n "$arg"; then ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi ++ done # argument parsing loop + +- if test -n "$dependency_libs"; then +- # Extract -R and -L from dependency_libs +- temp_deplibs= +- for deplib in $dependency_libs; do +- case "$deplib" in +- -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'` +- case " $rpath $xrpath " in +- *" $temp_xrpath "*) ;; +- *) xrpath="$xrpath $temp_xrpath";; +- esac;; +- -L*) case "$compile_command $temp_deplibs " in +- *" $deplib "*) ;; +- *) temp_deplibs="$temp_deplibs $deplib";; +- esac +- temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'` +- case " $lib_search_path " in +- *" $temp_dir "*) ;; +- *) lib_search_path="$lib_search_path $temp_dir";; +- esac +- ;; +- *) temp_deplibs="$temp_deplibs $deplib";; +- esac +- done +- dependency_libs="$temp_deplibs" +- fi ++ if test -n "$prev"; then ++ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi + +- if test -z "$libdir"; then +- # It is a libtool convenience library, so add in its objects. +- convenience="$convenience $dir/$old_library" +- old_convenience="$old_convenience $dir/$old_library" +- deplibs="$deplibs$dependency_libs" +- compile_command="$compile_command $dir/$old_library$dependency_libs" +- finalize_command="$finalize_command $dir/$old_library$dependency_libs" +- continue +- fi ++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then ++ eval arg=\"$export_dynamic_flag_spec\" ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi + +- # This library was specified with -dlopen. +- if test "$prev" = dlfiles; then +- dlfiles="$dlfiles $arg" +- if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then +- # If there is no dlname, no dlopen support or we're linking statically, +- # we need to preload. +- prev=dlprefiles +- else +- # We should not create a dependency on this library, but we +- # may need any libraries it requires. +- compile_command="$compile_command$dependency_libs" +- finalize_command="$finalize_command$dependency_libs" +- prev= +- continue +- fi +- fi ++ # calculate the name of the file, without its directory ++ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` ++ libobjs_save="$libobjs" + +- # The library was specified with -dlpreopen. +- if test "$prev" = dlprefiles; then +- # Prefer using a static library (so that no silly _DYNAMIC symbols +- # are required to link). +- if test -n "$old_library"; then +- dlprefiles="$dlprefiles $dir/$old_library" +- else +- dlprefiles="$dlprefiles $dir/$linklib" +- fi +- prev= +- fi ++ if test -n "$shlibpath_var"; then ++ # get the directories listed in $shlibpath_var ++ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ else ++ shlib_search_path= ++ fi ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + +- if test -n "$library_names" && +- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then +- link_against_libtool_libs="$link_against_libtool_libs $arg" +- if test -n "$shlibpath_var"; then +- # Make sure the rpath contains only unique directories. +- case "$temp_rpath " in +- *" $dir "*) ;; +- *) temp_rpath="$temp_rpath $dir" ;; +- esac +- fi ++ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$output_objdir" = "X$output"; then ++ output_objdir="$objdir" ++ else ++ output_objdir="$output_objdir/$objdir" ++ fi ++ # Create the object directory. ++ if test ! -d $output_objdir; then ++ $show "$mkdir $output_objdir" ++ $run $mkdir $output_objdir ++ status=$? ++ if test $status -ne 0 && test ! -d $output_objdir; then ++ exit $status ++ fi ++ fi + +- # We need an absolute path. +- case "$dir" in +- [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;; +- *) +- absdir=`cd "$dir" && pwd` +- if test -z "$absdir"; then +- $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 +- $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 +- absdir="$dir" +- fi +- ;; +- esac +- +- # This is the magic to use -rpath. +- # Skip directories that are in the system default run-time +- # search path, unless they have been requested with -R. +- case " $sys_lib_dlsearch_path " in +- *" $absdir "*) ;; +- *) +- case "$compile_rpath " in +- *" $absdir "*) ;; +- *) compile_rpath="$compile_rpath $absdir" +- esac +- ;; +- esac ++ # Determine the type of output ++ case $output in ++ "") ++ $echo "$modename: you must specify an output file" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ *.$libext) linkmode=oldlib ;; ++ *.lo | *.$objext) linkmode=obj ;; ++ *.la) linkmode=lib ;; ++ *) linkmode=prog ;; # Anything else should be a program. ++ esac + +- case " $sys_lib_dlsearch_path " in +- *" $libdir "*) ;; ++ specialdeplibs= ++ libs= ++ # Find all interdependent deplibs by searching for libraries ++ # that are linked more than once (e.g. -la -lb -la) ++ for deplib in $deplibs; do ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ libs="$libs $deplib" ++ done ++ deplibs= ++ newdependency_libs= ++ newlib_search_path= ++ need_relink=no # whether we're linking any uninstalled libtool libraries ++ notinst_deplibs= # not-installed libtool libraries ++ notinst_path= # paths that contain not-installed libtool libraries ++ case $linkmode in ++ lib) ++ passes="conv link" ++ for file in $dlfiles $dlprefiles; do ++ case $file in ++ *.la) ;; + *) +- case "$finalize_rpath " in +- *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" +- esac ++ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 ++ exit 1 + ;; + esac +- +- lib_linked=yes +- case "$hardcode_action" in +- immediate | unsupported) +- if test "$hardcode_direct" = no; then +- compile_command="$compile_command $dir/$linklib" +- deplibs="$deplibs $dir/$linklib" +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2*) +- dllsearchdir=`cd "$dir" && pwd || echo "$dir"` +- if test -n "$dllsearchpath"; then +- dllsearchpath="$dllsearchpath:$dllsearchdir" +- else +- dllsearchpath="$dllsearchdir" +- fi +- ;; +- esac +- elif test "$hardcode_minus_L" = no; then +- case "$host" in +- *-*-sunos*) +- compile_shlibpath="$compile_shlibpath$dir:" +- ;; +- esac +- case "$compile_command " in +- *" -L$dir "*) ;; +- *) compile_command="$compile_command -L$dir";; +- esac +- compile_command="$compile_command -l$name" +- deplibs="$deplibs -L$dir -l$name" +- elif test "$hardcode_shlibpath_var" = no; then +- case ":$compile_shlibpath:" in +- *":$dir:"*) ;; +- *) compile_shlibpath="$compile_shlibpath$dir:";; +- esac +- compile_command="$compile_command -l$name" +- deplibs="$deplibs -l$name" ++ done ++ ;; ++ prog) ++ compile_deplibs= ++ finalize_deplibs= ++ alldeplibs=no ++ newdlfiles= ++ newdlprefiles= ++ passes="conv scan dlopen dlpreopen link" ++ ;; ++ *) passes="conv" ++ ;; ++ esac ++ for pass in $passes; do ++ if test $linkmode = prog; then ++ # Determine which files to process ++ case $pass in ++ dlopen) ++ libs="$dlfiles" ++ save_deplibs="$deplibs" # Collect dlpreopened libraries ++ deplibs= ++ ;; ++ dlpreopen) libs="$dlprefiles" ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ esac ++ fi ++ for deplib in $libs; do ++ lib= ++ found=no ++ case $deplib in ++ -l*) ++ if test $linkmode = oldlib && test $linkmode = obj; then ++ $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 ++ continue ++ fi ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` ++ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ # Search the libtool library ++ lib="$searchdir/lib${name}.la" ++ if test -f "$lib"; then ++ found=yes ++ break ++ fi ++ done ++ if test "$found" != yes; then ++ # deplib doesn't seem to be a libtool library ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" + else +- lib_linked=no ++ deplibs="$deplib $deplibs" ++ test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" + fi ++ continue ++ fi ++ ;; # -l ++ -L*) ++ case $linkmode in ++ lib) ++ deplibs="$deplib $deplibs" ++ test $pass = conv && continue ++ newdependency_libs="$deplib $newdependency_libs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; +- +- relink) +- if test "$hardcode_direct" = yes; then +- compile_command="$compile_command $absdir/$linklib" +- deplibs="$deplibs $absdir/$linklib" +- elif test "$hardcode_minus_L" = yes; then +- case "$compile_command " in +- *" -L$absdir "*) ;; +- *) compile_command="$compile_command -L$absdir";; +- esac +- compile_command="$compile_command -l$name" +- deplibs="$deplibs -L$absdir -l$name" +- elif test "$hardcode_shlibpath_var" = yes; then +- case ":$compile_shlibpath:" in +- *":$absdir:"*) ;; +- *) compile_shlibpath="$compile_shlibpath$absdir:";; +- esac +- compile_command="$compile_command -l$name" +- deplibs="$deplibs -l$name" ++ prog) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ if test $pass = scan; then ++ deplibs="$deplib $deplibs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + else +- lib_linked=no ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" + fi + ;; +- + *) +- lib_linked=no ++ $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 + ;; +- esac ++ esac # linkmode ++ continue ++ ;; # -L ++ -R*) ++ if test $pass = link; then ++ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` ++ # Make sure the xrpath contains only unique directories. ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ fi ++ deplibs="$deplib $deplibs" ++ continue ++ ;; ++ *.la) lib="$deplib" ;; ++ *.$libext) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ case $linkmode in ++ lib) ++ if test "$deplibs_check_method" != pass_all; then ++ echo ++ echo "*** Warning: Trying to link with static lib archive $deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because the file extensions .$libext of this argument makes me believe" ++ echo "*** that it is just a static archive that I should not used here." ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the" ++ echo "*** static library $deplib is not portable!" ++ deplibs="$deplib $deplibs" ++ fi ++ continue ++ ;; ++ prog) ++ if test $pass != link; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ continue ++ ;; ++ esac # linkmode ++ ;; # *.$libext ++ *.lo | *.$objext) ++ if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlopen support or we're linking statically, ++ # we need to preload. ++ newdlprefiles="$newdlprefiles $deplib" ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ newdlfiles="$newdlfiles $deplib" ++ fi ++ continue ++ ;; ++ %DEPLIBS%) ++ alldeplibs=yes ++ continue ++ ;; ++ esac # case $deplib ++ if test $found = yes || test -f "$lib"; then : ++ else ++ $echo "$modename: cannot find the library \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # Check to see that this really is a libtool archive. ++ if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ ++ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$ladir" = "X$lib" && ladir="." ++ ++ dlname= ++ dlopen= ++ dlpreopen= ++ libdir= ++ library_names= ++ old_library= ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variable installed. ++ installed=yes ++ ++ # Read the .la file ++ case $lib in ++ */* | *\\*) . $lib ;; ++ *) . ./$lib ;; ++ esac ++ ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan" || ++ { test $linkmode = oldlib && test $linkmode = obj; }; then ++ # Add dl[pre]opened files of deplib ++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen" ++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ fi + +- if test "$lib_linked" != yes; then +- $echo "$modename: configuration error: unsupported hardcode properties" ++ if test $pass = conv; then ++ # Only check for convenience libraries ++ deplibs="$lib $deplibs" ++ if test -z "$libdir"; then ++ if test -z "$old_library"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ # It is a libtool convenience library, so add in its objects. ++ convenience="$convenience $ladir/$objdir/$old_library" ++ old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ elif test $linkmode != prog && test $linkmode != lib; then ++ $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit 1 + fi ++ continue ++ fi # $pass = conv + +- # Finalize command for both is simple: just hardcode it. +- if test "$hardcode_direct" = yes; then +- finalize_command="$finalize_command $libdir/$linklib" +- elif test "$hardcode_minus_L" = yes; then +- case "$finalize_command " in +- *" -L$libdir "*) ;; +- *) finalize_command="$finalize_command -L$libdir";; +- esac +- finalize_command="$finalize_command -l$name" +- elif test "$hardcode_shlibpath_var" = yes; then +- case ":$finalize_shlibpath:" in +- *":$libdir:"*) ;; +- *) finalize_shlibpath="$finalize_shlibpath$libdir:";; +- esac +- finalize_command="$finalize_command -l$name" ++ # Get the name of the library we link against. ++ linklib= ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ if test -z "$linklib"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # This library was specified with -dlopen. ++ if test $pass = dlopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 ++ exit 1 ++ fi ++ if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlname, no dlopen support or we're linking ++ # statically, we need to preload. ++ dlprefiles="$dlprefiles $lib" + else +- # We cannot seem to hardcode it, guess we'll fake it. +- case "$finalize_command " in +- *" -L$dir "*) ;; +- *) finalize_command="$finalize_command -L$libdir";; +- esac +- finalize_command="$finalize_command -l$name" ++ newdlfiles="$newdlfiles $lib" ++ fi ++ continue ++ fi # $pass = dlopen ++ ++ # We need an absolute path. ++ case $ladir in ++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; ++ *) ++ abs_ladir=`cd "$ladir" && pwd` ++ if test -z "$abs_ladir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 ++ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 ++ abs_ladir="$ladir" ++ fi ++ ;; ++ esac ++ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ ++ # Find the relevant object directory and library name. ++ if test "X$installed" = Xyes; then ++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ $echo "$modename: warning: library \`$lib' was moved." 1>&2 ++ dir="$ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ else ++ dir="$libdir" ++ absdir="$libdir" + fi + else +- # Transform directly to old archives if we don't build new libraries. +- if test -n "$pic_flag" && test -z "$old_library"; then +- $echo "$modename: cannot find static library for \`$arg'" 1>&2 ++ dir="$ladir/$objdir" ++ absdir="$abs_ladir/$objdir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ fi # $installed = yes ++ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ ++ # This library was specified with -dlpreopen. ++ if test $pass = dlpreopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit 1 + fi ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ newdlprefiles="$newdlprefiles $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ newdlprefiles="$newdlprefiles $dir/$dlname" ++ else ++ newdlprefiles="$newdlprefiles $dir/$linklib" ++ fi ++ fi # $pass = dlpreopen + +- # Here we assume that one of hardcode_direct or hardcode_minus_L +- # is not unsupported. This is valid on all known static and +- # shared platforms. +- if test "$hardcode_direct" != unsupported; then +- test -n "$old_library" && linklib="$old_library" +- compile_command="$compile_command $dir/$linklib" +- finalize_command="$finalize_command $dir/$linklib" ++ if test -z "$libdir"; then ++ # Link the convenience library ++ if test $linkmode = lib; then ++ deplibs="$dir/$old_library $deplibs" ++ elif test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$dir/$old_library $compile_deplibs" ++ finalize_deplibs="$dir/$old_library $finalize_deplibs" + else +- case "$compile_command " in +- *" -L$dir "*) ;; +- *) compile_command="$compile_command -L$dir";; ++ deplibs="$lib $deplibs" ++ fi ++ continue ++ fi ++ ++ if test $linkmode = prog && test $pass != link; then ++ newlib_search_path="$newlib_search_path $ladir" ++ deplibs="$lib $deplibs" ++ ++ linkalldeplibs=no ++ if test "$link_all_deplibs" != no || test -z "$library_names" || ++ test "$build_libtool_libs" = no; then ++ linkalldeplibs=yes ++ fi ++ ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac +- compile_command="$compile_command -l$name" +- case "$finalize_command " in +- *" -L$dir "*) ;; +- *) finalize_command="$finalize_command -L$dir";; ++ # Need to link against all dependency_libs? ++ if test $linkalldeplibs = yes; then ++ deplibs="$deplib $deplibs" ++ else ++ # Need to hardcode shared library paths ++ # or/and link against static libraries ++ newdependency_libs="$deplib $newdependency_libs" ++ fi ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done # for deplib ++ continue ++ fi # $linkmode = prog... ++ ++ link_static=no # Whether the deplib will be linked statically ++ if test -n "$library_names" && ++ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then ++ # Link against this shared library ++ ++ if test "$linkmode,$pass" = "prog,link" || ++ { test $linkmode = lib && test $hardcode_into_libs = yes; }; then ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) compile_rpath="$compile_rpath $absdir" ++ esac ++ ;; + esac +- finalize_command="$finalize_command -l$name" ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ++ esac ++ ;; ++ esac ++ if test $linkmode = prog; then ++ # We need to hardcode the library path ++ if test -n "$shlibpath_var"; then ++ # Make sure the rpath contains only unique directories. ++ case "$temp_rpath " in ++ *" $dir "*) ;; ++ *" $absdir "*) ;; ++ *) temp_rpath="$temp_rpath $dir" ;; ++ esac ++ fi ++ fi ++ fi # $linkmode,$pass = prog,link... ++ ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue + fi +- fi + +- # Add in any libraries that this one depends upon. +- compile_command="$compile_command$dependency_libs" +- finalize_command="$finalize_command$dependency_libs" +- continue +- ;; ++ if test "$installed" = no; then ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=yes ++ fi ++ ++ if test -n "$old_archive_from_expsyms_cmds"; then ++ # figure out the soname ++ set dummy $library_names ++ realname="$2" ++ shift; shift ++ libname=`eval \\$echo \"$libname_spec\"` ++ # use dlname if we got it. it's perfectly good, no? ++ if test -n "$dlname"; then ++ soname="$dlname" ++ elif test -n "$soname_spec"; then ++ # bleh windows ++ case $host in ++ *cygwin*) ++ major=`expr $current - $age` ++ versuffix="-$major" ++ ;; ++ esac ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi + +- # Some other compiler argument. +- *) +- # Unknown arguments in both finalize_command and compile_command need +- # to be aesthetically quoted because they are evaled later. +- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in +- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) +- arg="\"$arg\"" +- ;; +- esac +- ;; +- esac ++ # Make a new name for the extract_expsyms_cmds to use ++ soroot="$soname" ++ soname=`echo $soroot | ${SED} -e 's/^.*\///'` ++ newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + +- # Now actually substitute the argument into the commands. +- if test -n "$arg"; then +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- fi +- done ++ # If the library has no export list, then create one now ++ if test -f "$output_objdir/$soname-def"; then : ++ else ++ $show "extracting exported symbol list from \`$soname'" ++ save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$extract_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi + +- if test -n "$prev"; then +- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 +- $echo "$help" 1>&2 +- exit 1 +- fi ++ # Create $newlib ++ if test -f "$output_objdir/$newlib"; then :; else ++ $show "generating import library for \`$soname'" ++ save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$old_archive_from_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ # make sure the library variables are pointing to the new library ++ dir=$output_objdir ++ linklib=$newlib ++ fi # test -n $old_archive_from_expsyms_cmds ++ ++ if test $linkmode = prog || test "$mode" != relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ lib_linked=yes ++ case $hardcode_action in ++ immediate | unsupported) ++ if test "$hardcode_direct" = no; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = no; then ++ case $host in ++ *-*-sunos*) add_shlibpath="$dir" ;; ++ esac ++ add_dir="-L$dir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = no; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ relink) ++ if test "$hardcode_direct" = yes; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$dir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ *) lib_linked=no ;; ++ esac + +- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then +- eval arg=\"$export_dynamic_flag_spec\" +- compile_command="$compile_command $arg" +- finalize_command="$finalize_command $arg" +- fi ++ if test "$lib_linked" != yes; then ++ $echo "$modename: configuration error: unsupported hardcode properties" ++ exit 1 ++ fi + +- oldlibs= +- # calculate the name of the file, without its directory +- outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` +- libobjs_save="$libobjs" ++ if test -n "$add_shlibpath"; then ++ case :$compile_shlibpath: in ++ *":$add_shlibpath:"*) ;; ++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ esac ++ fi ++ if test $linkmode = prog; then ++ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" ++ test -n "$add" && compile_deplibs="$add $compile_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ if test "$hardcode_direct" != yes && \ ++ test "$hardcode_minus_L" != yes && \ ++ test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ fi ++ fi ++ fi + +- case "$output" in +- "") +- $echo "$modename: you must specify an output file" 1>&2 +- $echo "$help" 1>&2 +- exit 1 +- ;; ++ if test $linkmode = prog || test "$mode" = relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ # Finalize command for both is simple: just hardcode it. ++ if test "$hardcode_direct" = yes; then ++ add="$libdir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$libdir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ add="-l$name" ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ add_dir="-L$libdir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ fi + +- *.a | *.lib) +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link libtool libraries into archives" 1>&2 +- exit 1 ++ if test $linkmode = prog; then ++ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" ++ test -n "$add" && finalize_deplibs="$add $finalize_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ fi ++ fi ++ elif test $linkmode = prog; then ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ ++ # Try to link the static library ++ # Here we assume that one of hardcode_direct or hardcode_minus_L ++ # is not unsupported. This is valid on all known static and ++ # shared platforms. ++ if test "$hardcode_direct" != unsupported; then ++ test -n "$old_library" && linklib="$old_library" ++ compile_deplibs="$dir/$linklib $compile_deplibs" ++ finalize_deplibs="$dir/$linklib $finalize_deplibs" ++ else ++ compile_deplibs="-l$name -L$dir $compile_deplibs" ++ finalize_deplibs="-l$name -L$dir $finalize_deplibs" ++ fi ++ elif test "$build_libtool_libs" = yes; then ++ # Not a shared library ++ if test "$deplibs_check_method" != pass_all; then ++ # We're trying link a shared library against a static one ++ # but the system doesn't support it. ++ ++ # Just print a warning and add the library to dependency_libs so ++ # that the program can be linked against the static library. ++ echo ++ echo "*** Warning: This system can not link to static lib archive $lib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ if test "$module" = yes; then ++ echo "*** But as you try to build a module library, libtool will still create " ++ echo "*** a static module, that should work as long as the dlopening application" ++ echo "*** is linked with the -dlopen flag to resolve symbols at runtime." ++ if test -z "$global_symbol_pipe"; then ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ else ++ convenience="$convenience $dir/$old_library" ++ old_convenience="$old_convenience $dir/$old_library" ++ deplibs="$dir/$old_library $deplibs" ++ link_static=yes ++ fi ++ fi # link shared/static library? ++ ++ if test $linkmode = lib; then ++ if test -n "$dependency_libs" && ++ { test $hardcode_into_libs != yes || test $build_old_libs = yes || ++ test $link_static = yes; }; then ++ # Extract -R from dependency_libs ++ temp_deplibs= ++ for libdir in $dependency_libs; do ++ case $libdir in ++ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` ++ case " $xrpath " in ++ *" $temp_xrpath "*) ;; ++ *) xrpath="$xrpath $temp_xrpath";; ++ esac;; ++ *) temp_deplibs="$temp_deplibs $libdir";; ++ esac ++ done ++ dependency_libs="$temp_deplibs" ++ fi ++ ++ newlib_search_path="$newlib_search_path $absdir" ++ # Link against this library ++ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" ++ # ... and its dependency_libs ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ newdependency_libs="$deplib $newdependency_libs" ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ ++ if test $link_all_deplibs != no; then ++ # Add the search paths of all dependency libraries ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) path="$deplib" ;; ++ *.la) ++ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$deplib" && dir="." ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 ++ absdir="$dir" ++ fi ++ ;; ++ esac ++ if grep "^installed=no" $deplib > /dev/null; then ++ path="-L$absdir/$objdir" ++ else ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ if test "$absdir" != "$libdir"; then ++ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 ++ fi ++ path="-L$absdir" ++ fi ++ ;; ++ *) continue ;; ++ esac ++ case " $deplibs " in ++ *" $path "*) ;; ++ *) deplibs="$deplibs $path" ;; ++ esac ++ done ++ fi # link_all_deplibs != no ++ fi # linkmode = lib ++ done # for deplib in $libs ++ if test $pass = dlpreopen; then ++ # Link the dlpreopened libraries before other libraries ++ for deplib in $save_deplibs; do ++ deplibs="$deplib $deplibs" ++ done + fi ++ if test $pass != dlopen; then ++ test $pass != scan && dependency_libs="$newdependency_libs" ++ if test $pass != conv; then ++ # Make sure lib_search_path contains only unique directories. ++ lib_search_path= ++ for dir in $newlib_search_path; do ++ case "$lib_search_path " in ++ *" $dir "*) ;; ++ *) lib_search_path="$lib_search_path $dir" ;; ++ esac ++ done ++ newlib_search_path= ++ fi + +- if test -n "$deplibs"; then +- $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ++ if test "$linkmode,$pass" != "prog,link"; then ++ vars="deplibs" ++ else ++ vars="compile_deplibs finalize_deplibs" ++ fi ++ for var in $vars dependency_libs; do ++ # Add libraries to $var in reverse order ++ eval tmp_libs=\"\$$var\" ++ new_libs= ++ for deplib in $tmp_libs; do ++ case $deplib in ++ -L*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $specialdeplibs " in ++ *" $deplib "*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$deplib $new_libs" ;; ++ esac ++ ;; ++ esac ++ ;; ++ esac ++ done ++ tmp_libs= ++ for deplib in $new_libs; do ++ case $deplib in ++ -L*) ++ case " $tmp_libs " in ++ *" $deplib "*) ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ done ++ eval $var=\"$tmp_libs\" ++ done # for var + fi ++ if test "$pass" = "conv" && ++ { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then ++ libs="$deplibs" # reset libs ++ deplibs= ++ fi ++ done # for pass ++ if test $linkmode = prog; then ++ dlfiles="$newdlfiles" ++ dlprefiles="$newdlprefiles" ++ fi + ++ case $linkmode in ++ oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi +@@ -1566,11 +2179,12 @@ + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" ++ objs="$objs$old_deplibs" + ;; + +- *.la) ++ lib) + # Make sure we only generate libraries of the form `libNAME.la'. +- case "$outputname" in ++ case $outputname in + lib*) + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval libname=\"$libname_spec\" +@@ -1591,26 +2205,20 @@ + ;; + esac + +- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$output_objdir" = "X$output"; then +- output_objdir="$objdir" +- else +- output_objdir="$output_objdir/$objdir" +- fi +- + if test -n "$objs"; then +- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 +- exit 1 +- fi +- +- # How the heck are we supposed to write a wrapper for a shared library? +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2 +- exit 1 ++ if test "$deplibs_check_method" != pass_all; then ++ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 ++ exit 1 ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the non-libtool" ++ echo "*** objects $objs is not portable!" ++ libobjs="$libobjs $objs" ++ fi + fi + +- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then +- $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2 ++ if test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 + fi + + set dummy $rpath +@@ -1628,7 +2236,6 @@ + build_libtool_libs=convenience + build_old_libs=yes + fi +- dependency_libs="$deplibs" + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 +@@ -1640,7 +2247,7 @@ + else + + # Parse the version information argument. +- IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' ++ save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + +@@ -1655,8 +2262,8 @@ + age="$4" + + # Check that each of the things are valid numbers. +- case "$current" in +- 0 | [1-9] | [1-9][0-9]*) ;; ++ case $current in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +@@ -1664,8 +2271,8 @@ + ;; + esac + +- case "$revision" in +- 0 | [1-9] | [1-9][0-9]*) ;; ++ case $revision in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +@@ -1673,8 +2280,8 @@ + ;; + esac + +- case "$age" in +- 0 | [1-9] | [1-9][0-9]*) ;; ++ case $age in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 +@@ -1692,21 +2299,49 @@ + major= + versuffix= + verstring= +- case "$version_type" in ++ case $version_type in + none) ;; + +- irix) ++ darwin) ++ # Like Linux, but with the current version available in ++ # verstring for coding it into the library header ++ major=.`expr $current - $age` ++ versuffix="$major.$age.$revision" ++ # Darwin ld doesn't like 0 for these options... ++ minor_current=`expr $current + 1` ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ++ ;; ++ ++ freebsd-aout) ++ major=".$current" ++ versuffix=".$current.$revision"; ++ ;; ++ ++ freebsd-elf) ++ major=".$current" ++ versuffix=".$current"; ++ ;; ++ ++ irix | nonstopux) + major=`expr $current - $age + 1` +- versuffix="$major.$revision" +- verstring="sgi$major.$revision" ++ ++ case $version_type in ++ nonstopux) verstring_prefix=nonstopux ;; ++ *) verstring_prefix=sgi ;; ++ esac ++ verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test $loop != 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` +- verstring="sgi$major.$iface:$verstring" ++ verstring="$verstring_prefix$major.$iface:$verstring" + done ++ ++ # Before this point, $major must not contain `.'. ++ major=.$major ++ versuffix="$major.$revision" + ;; + + linux) +@@ -1715,7 +2350,7 @@ + ;; + + osf) +- major=`expr $current - $age` ++ major=.`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + +@@ -1736,21 +2371,11 @@ + versuffix=".$current.$revision" + ;; + +- freebsd-aout) +- major=".$current" +- versuffix=".$current.$revision"; +- ;; +- +- freebsd-elf) +- major=".$current" +- versuffix=".$current"; +- ;; +- + windows) +- # Like Linux, but with '-' rather than '.', since we only +- # want one extension on Windows 95. ++ # Use '-' rather than '.', since we only want one ++ # extension on DOS 8.3 filesystems. + major=`expr $current - $age` +- versuffix="-$major-$age-$revision" ++ versuffix="-$major" + ;; + + *) +@@ -1764,6 +2389,16 @@ + if test -z "$vinfo" && test -n "$release"; then + major= + verstring="0.0" ++ case $version_type in ++ darwin) ++ # we can't check for "0.0" in archive_cmds due to quoting ++ # problems, so we reset it completely ++ verstring="" ++ ;; ++ *) ++ verstring="0.0" ++ ;; ++ esac + if test "$need_version" = no; then + versuffix= + else +@@ -1777,7 +2412,7 @@ + versuffix= + verstring="" + fi +- ++ + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then +@@ -1785,34 +2420,16 @@ + build_libtool_libs=no + build_old_libs=yes + fi +- else +- # Don't allow undefined symbols. +- allow_undefined_flag="$no_undefined_flag" +- fi +- +- dependency_libs="$deplibs" +- case "$host" in +- *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*) +- # these systems don't actually have a c library (as such)! +- ;; +- *) +- # Add libc to deplibs on all other systems. +- deplibs="$deplibs -lc" +- ;; +- esac ++ else ++ # Don't allow undefined symbols. ++ allow_undefined_flag="$no_undefined_flag" ++ fi + fi + +- # Create the output directory, or remove our outputs if we need to. +- if test -d $output_objdir; then ++ if test "$mode" != relink; then ++ # Remove our outputs. + $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" + $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* +- else +- $show "$mkdir $output_objdir" +- $run $mkdir $output_objdir +- status=$? +- if test $status -ne 0 && test ! -d $output_objdir; then +- exit $status +- fi + fi + + # Now set the variables for building old libraries. +@@ -1823,7 +2440,73 @@ + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + ++ # Eliminate all temporary directories. ++ for path in $notinst_path; do ++ lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` ++ deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` ++ dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` ++ done ++ ++ if test -n "$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ temp_xrpath= ++ for libdir in $xrpath; do ++ temp_xrpath="$temp_xrpath -R$libdir" ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ if test $hardcode_into_libs != yes || test $build_old_libs = yes; then ++ dependency_libs="$temp_xrpath $dependency_libs" ++ fi ++ fi ++ ++ # Make sure dlfiles contains only unique files that won't be dlpreopened ++ old_dlfiles="$dlfiles" ++ dlfiles= ++ for lib in $old_dlfiles; do ++ case " $dlprefiles $dlfiles " in ++ *" $lib "*) ;; ++ *) dlfiles="$dlfiles $lib" ;; ++ esac ++ done ++ ++ # Make sure dlprefiles contains only unique files ++ old_dlprefiles="$dlprefiles" ++ dlprefiles= ++ for lib in $old_dlprefiles; do ++ case "$dlprefiles " in ++ *" $lib "*) ;; ++ *) dlprefiles="$dlprefiles $lib" ;; ++ esac ++ done ++ + if test "$build_libtool_libs" = yes; then ++ if test -n "$rpath"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) ++ # these systems don't actually have a c library (as such)! ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C library is in the System framework ++ deplibs="$deplibs -framework System" ++ ;; ++ *-*-netbsd*) ++ # Don't link with libc until the a.out ld.so is fixed. ++ ;; ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc due to us having libc/libc_r. ++ ;; ++ *) ++ # Add libc to deplibs on all other systems if necessary. ++ if test $build_libtool_need_lc = "yes"; then ++ deplibs="$deplibs -lc" ++ fi ++ ;; ++ esac ++ fi ++ + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname +@@ -1838,7 +2521,7 @@ + major="" + newdeplibs= + droppeddeps=no +- case "$deplibs_check_method" in ++ case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check +@@ -1863,7 +2546,7 @@ + for i in $deplibs; do + name="`expr $i : '-l\(.*\)'`" + # If $name is empty we are operating on a -L argument. +- if test "$name" != "" ; then ++ if test -n "$name" && test "$name" != "0"; then + libname=`eval \\$echo \"$libname_spec\"` + deplib_matches=`eval \\$echo \"$library_names_spec\"` + set dummy $deplib_matches +@@ -1873,22 +2556,24 @@ + else + droppeddeps=yes + echo +- echo "*** Warning: This library needs some functionality provided by $i." ++ echo "*** Warning: dynamic linker does not accept needed library $i." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have." ++ echo "*** shared version of the library, which I believe you do not have" ++ echo "*** because a test_compile did reveal that the linker did not use it for" ++ echo "*** its dynamic dependency list that programs get resolved with at runtime." + fi + else + newdeplibs="$newdeplibs $i" + fi + done + else +- # Error occured in the first compile. Let's try to salvage the situation: +- # Compile a seperate program for each library. ++ # Error occured in the first compile. Let's try to salvage ++ # the situation: Compile a separate program for each library. + for i in $deplibs; do + name="`expr $i : '-l\(.*\)'`" + # If $name is empty we are operating on a -L argument. +- if test "$name" != "" ; then ++ if test -n "$name" && test "$name" != "0"; then + $rm conftest + $CC -o conftest conftest.c $i + # Did it work? +@@ -1903,10 +2588,12 @@ + else + droppeddeps=yes + echo +- echo "*** Warning: This library needs some functionality provided by $i." ++ echo "*** Warning: dynamic linker does not accept needed library $i." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have." ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because a test_compile did reveal that the linker did not use this one" ++ echo "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + else + droppeddeps=yes +@@ -1924,19 +2611,19 @@ + ;; + file_magic*) + set dummy $deplibs_check_method +- file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`" ++ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name="`expr $a_deplib : '-l\(.*\)'`" + # If $name is empty we are operating on a -L argument. +- if test "$name" != "" ; then ++ if test -n "$name" && test "$name" != "0"; then + libname=`eval \\$echo \"$libname_spec\"` +- for i in $lib_search_path; do ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null \ + | grep " -> " >/dev/null; then +- continue ++ continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. +@@ -1945,14 +2632,14 @@ + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do +- potliblink=`ls -ld $potlib | sed 's/.* -> //'` +- case "$potliblink" in ++ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` ++ case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ +- | sed 10q \ ++ | ${SED} 10q \ + | egrep "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" +@@ -1963,10 +2650,59 @@ + if test -n "$a_deplib" ; then + droppeddeps=yes + echo +- echo "*** Warning: This library needs some functionality provided by $a_deplib." ++ echo "*** Warning: linker path does not have real file for library $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ echo "*** with $libname but no candidates were found. (...for file magic test)" ++ else ++ echo "*** with $libname and none of the candidates passed a file format test" ++ echo "*** using a file magic. Last file checked: $potlib" ++ fi ++ fi ++ else ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ fi ++ done # Gone through all deplibs. ++ ;; ++ match_pattern*) ++ set dummy $deplibs_check_method ++ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` ++ for a_deplib in $deplibs; do ++ name="`expr $a_deplib : '-l\(.*\)'`" ++ # If $name is empty we are operating on a -L argument. ++ if test -n "$name" && test "$name" != "0"; then ++ libname=`eval \\$echo \"$libname_spec\"` ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ for potent_lib in $potential_libs; do ++ potlib="$potent_lib" # see symlink-check below in file_magic test ++ if eval echo \"$potent_lib\" 2>/dev/null \ ++ | ${SED} 10q \ ++ | egrep "$match_pattern_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ echo ++ echo "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" +- echo "*** shared version of the library, which you do not appear to have." ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ echo "*** with $libname but no candidates were found. (...for regex pattern test)" ++ else ++ echo "*** with $libname and none of the candidates passed a file format test" ++ echo "*** using a regex pattern. Last file checked: $potlib" ++ fi + fi + else + # Add a -L argument. +@@ -1996,6 +2732,13 @@ + libname=$libname_save + name=$name_save + ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ ;; ++ esac ++ + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo +@@ -2021,6 +2764,21 @@ + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." ++ ++ if test $allow_undefined = no; then ++ echo ++ echo "*** Since this library must not contain undefined symbols," ++ echo "*** because either the platform does not support them or" ++ echo "*** it was explicitly requested with -no-undefined," ++ echo "*** libtool will only create a static version of it." ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi + fi + fi + # Done checking deplibs! +@@ -2031,9 +2789,64 @@ + library_names= + old_library= + dlname= +- ++ + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then ++ if test $hardcode_into_libs = yes; then ++ # Hardcode the library paths ++ hardcode_libdirs= ++ dep_rpath= ++ rpath="$finalize_rpath" ++ test "$mode" != relink && rpath="$compile_rpath$rpath" ++ for libdir in $rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ dep_rpath="$dep_rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval dep_rpath=\"$hardcode_libdir_flag_spec\" ++ fi ++ if test -n "$runpath_var" && test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" ++ fi ++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" ++ fi ++ ++ shlibpath="$finalize_shlibpath" ++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ if test -n "$shlibpath"; then ++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" ++ fi ++ + # Get the real and link names of the library. + eval library_names=\"$library_names_spec\" + set dummy $library_names +@@ -2045,6 +2858,7 @@ + else + soname="$realname" + fi ++ test -z "$dlname" && dlname=$soname + + lib="$output_objdir/$realname" + for link +@@ -2079,7 +2893,7 @@ + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + eval cmds=\"$export_symbols_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -2116,7 +2930,7 @@ + + for xlib in $convenience; do + # Extract the objects. +- case "$xlib" in ++ case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac +@@ -2141,16 +2955,32 @@ + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" +- linkopts="$linkopts $flag" ++ linker_flags="$linker_flags $flag" ++ fi ++ ++ # Make a backup of the uninstalled library when relinking ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval cmds=\"$archive_expsym_cmds\" + else ++ save_deplibs="$deplibs" ++ for conv in $convenience; do ++ tmp_deplibs= ++ for test_deplib in $deplibs; do ++ if test "$test_deplib" != "$conv"; then ++ tmp_deplibs="$tmp_deplibs $test_deplib" ++ fi ++ done ++ deplibs="$tmp_deplibs" ++ done + eval cmds=\"$archive_cmds\" ++ deplibs="$save_deplibs" + fi +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -2158,6 +2988,12 @@ + done + IFS="$save_ifs" + ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? ++ exit 0 ++ fi ++ + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then +@@ -2174,12 +3010,7 @@ + fi + ;; + +- *.lo | *.o | *.obj) +- if test -n "$link_against_libtool_libs"; then +- $echo "$modename: error: cannot link libtool libraries into objects" 1>&2 +- exit 1 +- fi +- ++ obj) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 + fi +@@ -2204,9 +3035,9 @@ + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + +- case "$output" in ++ case $output in + *.lo) +- if test -n "$objs"; then ++ if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit 1 + fi +@@ -2230,7 +3061,7 @@ + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec +- wl= ++ wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then +@@ -2249,7 +3080,7 @@ + + for xlib in $convenience; do + # Extract the objects. +- case "$xlib" in ++ case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac +@@ -2273,11 +3104,11 @@ + fi + + # Create the old-style object. +- reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ++ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + eval cmds=\"$reload_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -2308,12 +3139,12 @@ + exit 0 + fi + +- if test -n "$pic_flag"; then ++ if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + eval cmds=\"$reload_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -2344,8 +3175,10 @@ + exit 0 + ;; + +- # Anything else should be a program. +- *) ++ prog) ++ case $host in ++ *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; ++ esac + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 + fi +@@ -2355,20 +3188,34 @@ + fi + + if test "$preload" = yes; then +- if test "$dlopen" = unknown && test "$dlopen_self" = unknown && ++ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && + test "$dlopen_self_static" = unknown; then + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." +- fi ++ fi + fi +- ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ case $host in ++ *darwin*) ++ # Don't allow lazy linking, it breaks C++ global constructors ++ compile_command="$compile_command ${wl}-bind_at_load" ++ finalize_command="$finalize_command ${wl}-bind_at_load" ++ ;; ++ esac ++ ;; ++ esac ++ ++ compile_command="$compile_command $compile_deplibs" ++ finalize_command="$finalize_command $finalize_deplibs" ++ + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. +- case "$compile_rpath " in +- *" $libdir "*) ;; +- *) compile_rpath="$compile_rpath $libdir" ;; +- esac + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; +@@ -2386,7 +3233,7 @@ + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. +- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +@@ -2404,6 +3251,14 @@ + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$libdir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$libdir";; ++ esac ++ ;; ++ esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && +@@ -2422,7 +3277,7 @@ + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. +- case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +@@ -2449,23 +3304,6 @@ + fi + finalize_rpath="$rpath" + +- output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` +- if test "X$output_objdir" = "X$output"; then +- output_objdir="$objdir" +- else +- output_objdir="$output_objdir/$objdir" +- fi +- +- # Create the binary in the object directory, then wrap it. +- if test ! -d $output_objdir; then +- $show "$mkdir $output_objdir" +- $run $mkdir $output_objdir +- status=$? +- if test $status -ne 0 && test ! -d $output_objdir; then +- exit $status +- fi +- fi +- + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` +@@ -2482,7 +3320,7 @@ + fi + + if test -n "$dlsyms"; then +- case "$dlsyms" in ++ case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. +@@ -2514,7 +3352,7 @@ + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. +- progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" +@@ -2524,7 +3362,7 @@ + $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi +- ++ + if test -n "$export_symbols_regex"; then + $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' +@@ -2534,9 +3372,9 @@ + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$output.exp" + $run $rm $export_symbols +- $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ++ $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + else +- $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' ++ $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' + $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + fi +@@ -2544,7 +3382,7 @@ + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" +- name=`echo "$arg" | sed -e 's%^.*/%%'` ++ name=`echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval 'echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done +@@ -2559,7 +3397,13 @@ + fi + + # Try sorting and uniquifying the output. +- if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then ++ if grep -v "^: " < "$nlist" | ++ if sort -k 3 </dev/null >/dev/null 2>&1; then ++ sort -k 3 ++ else ++ sort +2 ++ fi | ++ uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S +@@ -2576,27 +3420,25 @@ + #undef lt_preloaded_symbols + + #if defined (__STDC__) && __STDC__ +-# define lt_ptr_t void * ++# define lt_ptr void * + #else +-# define lt_ptr_t char * ++# define lt_ptr char * + # define const + #endif + + /* The mapping between symbol names and symbols. */ + const struct { + const char *name; +- lt_ptr_t address; ++ lt_ptr address; + } + lt_preloaded_symbols[] = + {\ + " + +- sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \ +- -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \ +- < "$nlist" >> "$output_objdir/$dlsyms" ++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ +- {0, (lt_ptr_t) 0} ++ {0, (lt_ptr) 0} + }; + + /* This works around a problem in FreeBSD linker */ +@@ -2613,13 +3455,13 @@ + fi + + pic_flag_for_symtable= +- case "$host" in ++ case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. +- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) ++ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; +@@ -2658,7 +3500,7 @@ + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi + +- if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then ++ if test $need_relink = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" +@@ -2667,7 +3509,7 @@ + $show "$link_command" + $run eval "$link_command" + status=$? +- ++ + # Delete the generated files. + if test -n "$dlsyms"; then + $show "$rm $output_objdir/${outputname}S.${objext}" +@@ -2681,7 +3523,7 @@ + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do +- case "$dir" in ++ case $dir in + [\\/]* | [A-Za-z]:[\\/]*) + # Absolute path. + rpath="$rpath$dir:" +@@ -2723,11 +3565,24 @@ + fi + fi + ++ if test "$no_install" = yes; then ++ # We don't need to create a wrapper script. ++ link_command="$compile_var$compile_command$compile_rpath" ++ # Replace the output file specification. ++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ # Delete the old output file. ++ $run $rm $output ++ # Link the executable and exit ++ $show "$link_command" ++ $run eval "$link_command" || exit $? ++ exit 0 ++ fi ++ + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" +- ++ + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 + $echo "$modename: \`$output' will be relinked during installation" 1>&2 + else +@@ -2747,7 +3602,7 @@ + + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` +- ++ + # Delete the old output files. + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + +@@ -2759,12 +3614,24 @@ + + # Quote the relink command for shipping. + if test -n "$relink_command"; then ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ relink_command="(cd `pwd`; $relink_command)" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + fi + + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $0 --fallback-echo"; then +- case "$0" in ++ case $0 in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; + *) qecho="$SHELL `pwd`/$0 --fallback-echo";; + esac +@@ -2778,7 +3645,12 @@ + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in +- *.exe) output=`echo $output|sed 's,.exe$,,'` ;; ++ *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; ++ esac ++ # test for cygwin because mv fails w/o .exe extensions ++ case $host in ++ *cygwin*) exeext=.exe ;; ++ *) exeext= ;; + esac + $rm $output + trap "$rm $output; exit 1" 1 2 15 +@@ -2797,7 +3669,7 @@ + + # Sed substitution that helps us do robust quoting. It backslashifies + # metacharacters that are still active within double-quoted strings. +-Xsed='sed -e 1s/^X//' ++Xsed="${SED}"' -e 1s/^X//' + sed_quote_subst='$sed_quote_subst' + + # The HP-UX ksh and POSIX shell print the target directory to stdout +@@ -2809,7 +3681,7 @@ + # This environment variable determines our operation mode. + if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: +- link_against_libtool_libs='$link_against_libtool_libs' ++ notinst_deplibs='$notinst_deplibs' + else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then +@@ -2835,20 +3707,20 @@ + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. +- file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` ++ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in +- [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;; ++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` +- file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. +@@ -2858,11 +3730,11 @@ + + if test "$fast_install" = yes; then + echo >> $output "\ +- program=lt-'$outputname' ++ program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" +- ++ + if test ! -f \"\$progdir/\$program\" || \\ +- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\ ++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" +@@ -2877,8 +3749,9 @@ + + # relink executable if necessary + if test -n \"\$relink_command\"; then +- if (cd \"\$thisdir\" && eval \$relink_command); then : ++ if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else ++ $echo \"\$relink_command_output\" >&2 + $rm \"\$progdir/\$file\" + exit 1 + fi +@@ -2907,7 +3780,7 @@ + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var +- # The second colon is a workaround for a bug in BeOS R4 sed ++ # The second colon is a workaround for a bug in BeOS R4 ${SED} + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +@@ -2927,13 +3800,21 @@ + # Run the actual program with our arguments. + " + case $host in +- *-*-cygwin* | *-*-mingw | *-*-os2*) +- # win32 systems need to use the prog path for dll +- # lookup to work ++ # win32 systems need to use the prog path for dll ++ # lookup to work ++ *-*-cygwin* | *-*-pw32*) ++ $echo >> $output "\ ++ exec \$progdir/\$program \${1+\"\$@\"} ++" ++ ;; ++ ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \$progdir\\\\\$program \${1+\"\$@\"} + " + ;; ++ + *) + $echo >> $output "\ + # Export the path to the program. +@@ -2975,7 +3856,7 @@ + oldobjs="$libobjs_save" + build_libtool_libs=no + else +- oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` ++ oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` + fi + addlibs="$old_convenience" + fi +@@ -2991,11 +3872,11 @@ + exit $status + fi + generated="$generated $gentop" +- ++ + # Add in members from convenience archives. + for xlib in $addlibs; do + # Extract the objects. +- case "$xlib" in ++ case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac +@@ -3041,7 +3922,7 @@ + + eval cmds=\"$old_archive_cmds\" + fi +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -3056,19 +3937,26 @@ + fi + + # Now create the libtool archive. +- case "$output" in ++ case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + +- if test -n "$xrpath"; then +- temp_xrpath= +- for libdir in $xrpath; do +- temp_xrpath="$temp_xrpath -R$libdir" +- done +- dependency_libs="$temp_xrpath $dependency_libs" +- fi ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ # Quote the link command for shipping. ++ relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" ++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + + # Only create the output if not a dry run. + if test -z "$run"; then +@@ -3078,8 +3966,52 @@ + break + fi + output="$output_objdir/$outputname"i ++ # Replace all uninstalled libtool libraries with the installed ones ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ *.la) ++ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdependency_libs="$newdependency_libs $libdir/$name" ++ ;; ++ *) newdependency_libs="$newdependency_libs $deplib" ;; ++ esac ++ done ++ dependency_libs="$newdependency_libs" ++ newdlfiles= ++ for lib in $dlfiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlfiles="$newdlfiles $libdir/$name" ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlprefiles="$newdlprefiles $libdir/$name" ++ done ++ dlprefiles="$newdlprefiles" + fi + $rm $output ++ # place dlname in correct position for cygwin ++ tdlname=$dlname ++ case $host,$output,$installed,$module,$dlname in ++ *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; ++ esac + $echo > $output "\ + # $outputname - a libtool library file + # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +@@ -3088,7 +4020,7 @@ + # It is necessary for linking the library. + + # The name that we can dlopen(3). +-dlname='$dlname' ++dlname='$tdlname' + + # Names of this library. + library_names='$library_names' +@@ -3107,16 +4039,23 @@ + # Is this an already installed library? + installed=$installed + ++# Files to dlopen/dlpreopen ++dlopen='$dlfiles' ++dlpreopen='$dlprefiles' ++ + # Directory that this library needs to be installed in: +-libdir='$install_libdir'\ +-" ++libdir='$install_libdir'" ++ if test "$installed" = no && test $need_relink = yes; then ++ $echo >> $output "\ ++relink_command=\"$relink_command\"" ++ fi + done + fi + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" +- $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $? ++ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? + ;; + esac + exit 0 +@@ -3128,10 +4067,12 @@ + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). +- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then ++ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || ++ # Allow the use of GNU shtool's install command. ++ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in ++ case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; +@@ -3147,7 +4088,7 @@ + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in ++ case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; +@@ -3170,7 +4111,7 @@ + continue + fi + +- case "$arg" in ++ case $arg in + -d) isdir=yes ;; + -f) prev="-f" ;; + -g) prev="-g" ;; +@@ -3195,7 +4136,7 @@ + + # Aesthetically quote the argument. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +- case "$arg" in ++ case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; +@@ -3246,11 +4187,11 @@ + exit 1 + fi + fi +- case "$destdir" in ++ case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do +- case "$file" in ++ case $file in + *.lo) ;; + *) + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 +@@ -3272,15 +4213,15 @@ + for file in $files; do + + # Do each installation. +- case "$file" in +- *.a | *.lib) ++ case $file in ++ *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. +- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 +@@ -3289,8 +4230,9 @@ + + library_names= + old_library= ++ relink_command= + # If there is no directory component, then add one. +- case "$file" in ++ case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac +@@ -3309,10 +4251,38 @@ + esac + fi + +- dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + ++ if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ if test "$inst_prefix_dir" = "$destdir"; then ++ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` ++ fi ++ ++ $echo "$modename: warning: relinking \`$file'" 1>&2 ++ $show "$relink_command" ++ if $run eval "$relink_command"; then : ++ else ++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ exit 1 ++ fi ++ fi ++ + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then +@@ -3320,9 +4290,16 @@ + shift + shift + ++ srcname="$realname" ++ test -n "$relink_command" && srcname="$realname"T ++ + # Install the shared library and build the symlinks. +- $show "$install_prog $dir/$realname $destdir/$realname" +- $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? ++ $show "$install_prog $dir/$srcname $destdir/$realname" ++ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$striplib $destdir/$realname" ++ $run eval "$striplib $destdir/$realname" || exit $? ++ fi + + if test $# -gt 0; then + # Delete the old symlinks, and create new ones. +@@ -3338,7 +4315,7 @@ + # Do each command in the postinstall commands. + lib="$destdir/$realname" + eval cmds=\"$postinstall_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -3369,11 +4346,11 @@ + fi + + # Deduce the name of the destination old-style object file. +- case "$destfile" in ++ case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; +- *.o | *.obj) ++ *.$objext) + staticdest="$destfile" + destfile= + ;; +@@ -3411,40 +4388,55 @@ + fi + + # Do a test to see if this is really a libtool program. +- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then +- link_against_libtool_libs= ++ case $host in ++ *cygwin*|*mingw*) ++ wrapper=`echo $file | ${SED} -e 's,.exe$,,'` ++ ;; ++ *) ++ wrapper=$file ++ ;; ++ esac ++ if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then ++ notinst_deplibs= + relink_command= + + # If there is no directory component, then add one. +- case "$file" in +- */* | *\\*) . $file ;; +- *) . ./$file ;; ++ case $file in ++ */* | *\\*) . $wrapper ;; ++ *) . ./$wrapper ;; + esac + + # Check the variables that should have been set. +- if test -z "$link_against_libtool_libs"; then +- $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 ++ if test -z "$notinst_deplibs"; then ++ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit 1 + fi + + finalize=yes +- for lib in $link_against_libtool_libs; do ++ for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. +- case "$lib" in ++ case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi +- libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" ++ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + ++ relink_command= ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $wrapper ;; ++ *) . ./$wrapper ;; ++ esac ++ + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + if test "$finalize" = yes && test -z "$run"; then +@@ -3456,6 +4448,7 @@ + $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 + continue + fi ++ file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` +@@ -3477,6 +4470,23 @@ + fi + fi + ++ # remove .exe since cygwin /usr/bin/install will append another ++ # one anyways ++ case $install_prog,$host in ++ /usr/bin/install*,*cygwin*) ++ case $file:$destfile in ++ *.exe:*.exe) ++ # this is ok ++ ;; ++ *.exe:*) ++ destfile=$destfile.exe ++ ;; ++ *:*.exe) ++ destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` ++ ;; ++ esac ++ ;; ++ esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" +@@ -3493,9 +4503,14 @@ + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$old_striplib $oldlib" ++ $run eval "$old_striplib $oldlib" || exit $? ++ fi ++ + # Do each command in the postinstall commands. + eval cmds=\"$old_postinstall_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -3511,11 +4526,10 @@ + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" +- exec $SHELL $0 --finish$current_libdirs +- exit 1 ++ exec_cmd='$SHELL $0 --finish$current_libdirs' ++ else ++ exit 0 + fi +- +- exit 0 + ;; + + # libtool finish mode +@@ -3534,7 +4548,7 @@ + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + eval cmds=\"$finish_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" +@@ -3553,7 +4567,7 @@ + fi + + # Exit here if they wanted silent mode. +- test "$show" = : && exit 0 ++ test "$show" = ":" && exit 0 + + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" +@@ -3563,7 +4577,7 @@ + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" +- echo "specify the full pathname of the library, or use \`-LLIBDIR'" ++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" +@@ -3613,10 +4627,10 @@ + fi + + dir= +- case "$file" in ++ case $file in + *.la) + # Check to see that this really is a libtool archive. +- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 +@@ -3628,7 +4642,7 @@ + library_names= + + # If there is no directory component, then add one. +- case "$file" in ++ case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac +@@ -3683,13 +4697,13 @@ + args= + for file + do +- case "$file" in ++ case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. +- if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + # If there is no directory component, then add one. +- case "$file" in ++ case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac +@@ -3706,8 +4720,8 @@ + + if test -z "$run"; then + if test -n "$shlibpath_var"; then +- # Export the shlibpath_var. +- eval "export $shlibpath_var" ++ # Export the shlibpath_var. ++ eval "export $shlibpath_var" + fi + + # Restore saved enviroment variables +@@ -3718,31 +4732,35 @@ + LANG="$save_LANG"; export LANG + fi + +- # Now actually exec the command. +- eval "exec \$cmd$args" +- +- $echo "$modename: cannot exec \$cmd$args" +- exit 1 ++ # Now prepare to actually exec the command. ++ exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then +- eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" +- $echo "export $shlibpath_var" ++ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" ++ $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit 0 + fi + ;; + +- # libtool uninstall mode +- uninstall) +- modename="$modename: uninstall" ++ # libtool clean and uninstall mode ++ clean | uninstall) ++ modename="$modename: $mode" + rm="$nonopt" + files= ++ rmforce= ++ exit_status=0 ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" + + for arg + do +- case "$arg" in ++ case $arg in ++ -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac +@@ -3754,53 +4772,86 @@ + exit 1 + fi + ++ rmdirs= ++ + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` +- test "X$dir" = "X$file" && dir=. ++ if test "X$dir" = "X$file"; then ++ dir=. ++ objdir="$objdir" ++ else ++ objdir="$dir/$objdir" ++ fi + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ test $mode = uninstall && objdir="$dir" ++ ++ # Remember objdir for removal later, being careful to avoid duplicates ++ if test $mode = clean; then ++ case " $rmdirs " in ++ *" $objdir "*) ;; ++ *) rmdirs="$rmdirs $objdir" ;; ++ esac ++ fi ++ ++ # Don't error if the file doesn't exist and rm -f was used. ++ if (test -L "$file") >/dev/null 2>&1 \ ++ || (test -h "$file") >/dev/null 2>&1 \ ++ || test -f "$file"; then ++ : ++ elif test -d "$file"; then ++ exit_status=1 ++ continue ++ elif test "$rmforce" = yes; then ++ continue ++ fi + + rmfiles="$file" + +- case "$name" in ++ case $name in + *.la) + # Possibly a libtool archive, so verify it. +- if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do +- rmfiles="$rmfiles $dir/$n" ++ rmfiles="$rmfiles $objdir/$n" + done +- test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" ++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + +- $show "$rm $rmfiles" +- $run $rm $rmfiles +- +- if test -n "$library_names"; then +- # Do each command in the postuninstall commands. +- eval cmds=\"$postuninstall_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do ++ if test $mode = uninstall; then ++ if test -n "$library_names"; then ++ # Do each command in the postuninstall commands. ++ eval cmds=\"$postuninstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done + IFS="$save_ifs" +- $show "$cmd" +- $run eval "$cmd" +- done +- IFS="$save_ifs" +- fi ++ fi + +- if test -n "$old_library"; then +- # Do each command in the old_postuninstall commands. +- eval cmds=\"$old_postuninstall_cmds\" +- IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do ++ if test -n "$old_library"; then ++ # Do each command in the old_postuninstall commands. ++ eval cmds=\"$old_postuninstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done + IFS="$save_ifs" +- $show "$cmd" +- $run eval "$cmd" +- done +- IFS="$save_ifs" ++ fi ++ # FIXME: should reinstall the best remaining shared library. + fi +- +- # FIXME: should reinstall the best remaining shared library. + fi + ;; + +@@ -3809,17 +4860,35 @@ + oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` + rmfiles="$rmfiles $dir/$oldobj" + fi +- $show "$rm $rmfiles" +- $run $rm $rmfiles + ;; + + *) +- $show "$rm $rmfiles" +- $run $rm $rmfiles ++ # Do a test to see if this is a libtool program. ++ if test $mode = clean && ++ (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ relink_command= ++ . $dir/$file ++ ++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ if test "$fast_install" = yes && test -n "$relink_command"; then ++ rmfiles="$rmfiles $objdir/lt-$name" ++ fi ++ fi + ;; + esac ++ $show "$rm $rmfiles" ++ $run $rm $rmfiles || exit_status=1 + done +- exit 0 ++ ++ # Try to remove the ${objdir}s in the directories where we deleted files ++ for dir in $rmdirs; do ++ if test -d "$dir"; then ++ $show "rmdir $dir" ++ $run rmdir $dir >/dev/null 2>&1 ++ fi ++ done ++ ++ exit $exit_status + ;; + + "") +@@ -3829,13 +4898,20 @@ + ;; + esac + +- $echo "$modename: invalid operation mode \`$mode'" 1>&2 +- $echo "$generic_help" 1>&2 +- exit 1 ++ if test -z "$exec_cmd"; then ++ $echo "$modename: invalid operation mode \`$mode'" 1>&2 ++ $echo "$generic_help" 1>&2 ++ exit 1 ++ fi + fi # test -z "$show_help" + ++if test -n "$exec_cmd"; then ++ eval exec $exec_cmd ++ exit 1 ++fi ++ + # We need to display help for each of the modes. +-case "$mode" in ++case $mode in + "") $echo \ + "Usage: $modename [OPTION]... [MODE-ARG]... + +@@ -3854,6 +4930,7 @@ + + MODE must be one of the following: + ++ clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries +@@ -3866,6 +4943,20 @@ + exit 0 + ;; + ++clean) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... ++ ++Remove files from the build directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, object or program, all the files associated ++with it are deleted. Otherwise, only FILE itself is deleted using RM." ++ ;; ++ + compile) + $echo \ + "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE +@@ -3875,6 +4966,8 @@ + This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE ++ -prefer-pic try to building PIC objects only ++ -prefer-non-pic try to building non-PIC objects only + -static always build a \`.o' file suitable for static linking + + COMPILE-COMMAND is a command to be used in creating a \`standard' object file +@@ -3954,6 +5047,8 @@ + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened ++ -no-fast-install disable the fast-install mode ++ -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -release RELEASE specify package release information +--- gtk+1.2-1.2.10.orig/gtk.m4 ++++ gtk+1.2-1.2.10/gtk.m4 +@@ -4,7 +4,7 @@ + dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) + dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS + dnl +-AC_DEFUN(AM_PATH_GTK, ++AC_DEFUN([AM_PATH_GTK], + [dnl + dnl Get the cflags and libraries from the gtk-config script + dnl +--- gtk+1.2-1.2.10.orig/po/gtk+.pot ++++ gtk+1.2-1.2.10/po/gtk+.pot +@@ -6,13 +6,13 @@ + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" +-"POT-Creation-Date: 2001-03-28 16:12-0500\n" ++"POT-Creation-Date: 2002-04-30 02:21+0900\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" + "Language-Team: LANGUAGE <LL@li.org>\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=CHARSET\n" +-"Content-Transfer-Encoding: ENCODING\n" ++"Content-Transfer-Encoding: 8bit\n" + + #: gtk/gtkcolorsel.c:221 + msgid "Hue:" +@@ -43,14 +43,14 @@ + msgstr "" + + #. The OK button +-#: gtk/gtkcolorsel.c:1727 gtk/gtkfilesel.c:481 gtk/gtkfontsel.c:3501 ++#: gtk/gtkcolorsel.c:1727 gtk/gtkfilesel.c:482 gtk/gtkfontsel.c:3503 + #: gtk/gtkgamma.c:416 + msgid "OK" + msgstr "" + + #. The Cancel button +-#: gtk/gtkcolorsel.c:1733 gtk/gtkfilesel.c:488 gtk/gtkfilesel.c:868 +-#: gtk/gtkfilesel.c:968 gtk/gtkfilesel.c:1083 gtk/gtkfontsel.c:3514 ++#: gtk/gtkcolorsel.c:1733 gtk/gtkfilesel.c:489 gtk/gtkfilesel.c:869 ++#: gtk/gtkfilesel.c:969 gtk/gtkfilesel.c:1085 gtk/gtkfontsel.c:3516 + #: gtk/gtkgamma.c:424 + msgid "Cancel" + msgstr "" +@@ -60,29 +60,29 @@ + msgstr "" + + #. The directories clist +-#: gtk/gtkfilesel.c:430 ++#: gtk/gtkfilesel.c:431 + msgid "Directories" + msgstr "" + + #. The files clist +-#: gtk/gtkfilesel.c:449 ++#: gtk/gtkfilesel.c:450 + msgid "Files" + msgstr "" + +-#: gtk/gtkfilesel.c:519 gtk/gtkfilesel.c:1478 ++#: gtk/gtkfilesel.c:520 gtk/gtkfilesel.c:1466 + #, c-format + msgid "Directory unreadable: %s" + msgstr "" + +-#: gtk/gtkfilesel.c:551 ++#: gtk/gtkfilesel.c:552 + msgid "Create Dir" + msgstr "" + +-#: gtk/gtkfilesel.c:562 gtk/gtkfilesel.c:937 ++#: gtk/gtkfilesel.c:563 gtk/gtkfilesel.c:938 + msgid "Delete File" + msgstr "" + +-#: gtk/gtkfilesel.c:573 gtk/gtkfilesel.c:1041 ++#: gtk/gtkfilesel.c:574 gtk/gtkfilesel.c:1043 + msgid "Rename File" + msgstr "" + +@@ -91,39 +91,39 @@ + #. (GtkSignalFunc) gtk_file_selection_fileop_destroy, + #. (gpointer) fs); + #. +-#: gtk/gtkfilesel.c:734 ++#: gtk/gtkfilesel.c:735 + msgid "Error" + msgstr "" + + #. close button +-#: gtk/gtkfilesel.c:757 gtk/gtkinputdialog.c:354 ++#: gtk/gtkfilesel.c:758 gtk/gtkinputdialog.c:354 + msgid "Close" + msgstr "" + +-#: gtk/gtkfilesel.c:832 ++#: gtk/gtkfilesel.c:833 + msgid "Create Directory" + msgstr "" + +-#: gtk/gtkfilesel.c:846 ++#: gtk/gtkfilesel.c:847 + msgid "Directory name:" + msgstr "" + + #. buttons +-#: gtk/gtkfilesel.c:859 ++#: gtk/gtkfilesel.c:860 + msgid "Create" + msgstr "" + + #. buttons +-#: gtk/gtkfilesel.c:959 ++#: gtk/gtkfilesel.c:960 + msgid "Delete" + msgstr "" + + #. buttons +-#: gtk/gtkfilesel.c:1074 ++#: gtk/gtkfilesel.c:1076 + msgid "Rename" + msgstr "" + +-#: gtk/gtkfilesel.c:1457 ++#: gtk/gtkfilesel.c:1444 + msgid "Selection: " + msgstr "" + +@@ -197,7 +197,7 @@ + msgid "Font" + msgstr "" + +-#: gtk/gtkfontsel.c:504 gtk/gtkfontsel.c:2180 gtk/gtkfontsel.c:2410 ++#: gtk/gtkfontsel.c:504 gtk/gtkfontsel.c:2182 gtk/gtkfontsel.c:2412 + msgid "Font:" + msgstr "" + +@@ -280,23 +280,23 @@ + msgid "regular" + msgstr "" + +-#: gtk/gtkfontsel.c:1220 gtk/gtkfontsel.c:1972 ++#: gtk/gtkfontsel.c:1220 gtk/gtkfontsel.c:1974 + msgid "italic" + msgstr "" + +-#: gtk/gtkfontsel.c:1221 gtk/gtkfontsel.c:1973 ++#: gtk/gtkfontsel.c:1221 gtk/gtkfontsel.c:1975 + msgid "oblique" + msgstr "" + +-#: gtk/gtkfontsel.c:1222 gtk/gtkfontsel.c:1974 ++#: gtk/gtkfontsel.c:1222 gtk/gtkfontsel.c:1976 + msgid "reverse italic" + msgstr "" + +-#: gtk/gtkfontsel.c:1223 gtk/gtkfontsel.c:1975 ++#: gtk/gtkfontsel.c:1223 gtk/gtkfontsel.c:1977 + msgid "reverse oblique" + msgstr "" + +-#: gtk/gtkfontsel.c:1224 gtk/gtkfontsel.c:1976 ++#: gtk/gtkfontsel.c:1224 gtk/gtkfontsel.c:1978 + msgid "other" + msgstr "" + +@@ -308,51 +308,51 @@ + msgid "[C]" + msgstr "" + +-#: gtk/gtkfontsel.c:1792 ++#: gtk/gtkfontsel.c:1794 + msgid "The selected font is not available." + msgstr "" + +-#: gtk/gtkfontsel.c:1798 ++#: gtk/gtkfontsel.c:1800 + msgid "The selected font is not a valid font." + msgstr "" + +-#: gtk/gtkfontsel.c:1856 ++#: gtk/gtkfontsel.c:1858 + msgid "This is a 2-byte font and may not be displayed correctly." + msgstr "" + +-#: gtk/gtkfontsel.c:1960 gtk/gtkinputdialog.c:607 ++#: gtk/gtkfontsel.c:1962 gtk/gtkinputdialog.c:607 + msgid "(unknown)" + msgstr "" + +-#: gtk/gtkfontsel.c:1971 ++#: gtk/gtkfontsel.c:1973 + msgid "roman" + msgstr "" + +-#: gtk/gtkfontsel.c:1983 ++#: gtk/gtkfontsel.c:1985 + msgid "proportional" + msgstr "" + +-#: gtk/gtkfontsel.c:1984 ++#: gtk/gtkfontsel.c:1986 + msgid "monospaced" + msgstr "" + +-#: gtk/gtkfontsel.c:1985 ++#: gtk/gtkfontsel.c:1987 + msgid "char cell" + msgstr "" + +-#: gtk/gtkfontsel.c:2185 ++#: gtk/gtkfontsel.c:2187 + msgid "Font: (Filter Applied)" + msgstr "" + +-#: gtk/gtkfontsel.c:2661 ++#: gtk/gtkfontsel.c:2663 + msgid "MAX_FONTS exceeded. Some fonts may be missing." + msgstr "" + +-#: gtk/gtkfontsel.c:3508 ++#: gtk/gtkfontsel.c:3510 + msgid "Apply" + msgstr "" + +-#: gtk/gtkfontsel.c:3530 ++#: gtk/gtkfontsel.c:3532 + msgid "Font Selection" + msgstr "" + +@@ -447,12 +447,12 @@ + msgid "Page %u" + msgstr "" + +-#: gtk/gtkrc.c:1703 ++#: gtk/gtkrc.c:1759 + #, c-format + msgid "Unable to locate image file in pixmap_path: \"%s\" line %d" + msgstr "" + +-#: gtk/gtkrc.c:1706 ++#: gtk/gtkrc.c:1762 + #, c-format + msgid "Unable to locate image file in pixmap_path: \"%s\"" + msgstr "" +--- gtk+1.2-1.2.10.orig/po/ca.po ++++ gtk+1.2-1.2.10/po/ca.po +@@ -1,16 +1,18 @@ +-# +-# Ivan Vilata i Balaguer <al011097@alumail.uji.es>, 1999-2000 +-# Softcatala <linux@softcatala.org>, 2000 ++# Catalan translation of GTK+ 1.2. ++# Copyright © 1999, 2000, 2005 Free Software Foundation, Inc. ++# Ivan Vilata i Balaguer <al011097@alumail.uji.es>, 1999, 2000. ++# Softcatala <linux@softcatala.org>, 2000. ++# Jordi Mallach <jordi@sindominio.net>, 2005. + # + msgid "" + msgstr "" + "Project-Id-Version: gtk+ 1.2.6\n" + "POT-Creation-Date: 2001-03-28 16:12-0500\n" +-"PO-Revision-Date: 1999-11-18 21:11+01:00\n" +-"Last-Translator: Softcatala <linux@softcatala.org>\n" +-"Language-Team: linux-ca@chanae.alphanet.ch\n" ++"PO-Revision-Date: 2005-09-21 18:19+0200\n" ++"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n" ++"Language-Team: Catalan <tradgnome@softcatala.org>\n" + "MIME-Version: 1.0\n" +-"Content-Type: text/plain; charset=iso-8859-1\n" ++"Content-Type: text/plain; charset=ISO-8859-1\n" + "Content-Transfer-Encoding: 8bit\n" + + #: gtk/gtkcolorsel.c:221 +@@ -41,86 +43,94 @@ + msgid "Opacity:" + msgstr "Opacitat:" + +-#. The OK button +-#: gtk/gtkcolorsel.c:1727 gtk/gtkfilesel.c:481 gtk/gtkfontsel.c:3501 ++# The OK button ++#: gtk/gtkcolorsel.c:1727 ++#: gtk/gtkfilesel.c:481 ++#: gtk/gtkfontsel.c:3501 + #: gtk/gtkgamma.c:416 + msgid "OK" +-msgstr "Val" ++msgstr "D'acord" + +-#. The Cancel button +-#: gtk/gtkcolorsel.c:1733 gtk/gtkfilesel.c:488 gtk/gtkfilesel.c:868 +-#: gtk/gtkfilesel.c:968 gtk/gtkfilesel.c:1083 gtk/gtkfontsel.c:3514 ++# The Cancel button ++#: gtk/gtkcolorsel.c:1733 ++#: gtk/gtkfilesel.c:488 ++#: gtk/gtkfilesel.c:868 ++#: gtk/gtkfilesel.c:968 ++#: gtk/gtkfilesel.c:1083 ++#: gtk/gtkfontsel.c:3514 + #: gtk/gtkgamma.c:424 + msgid "Cancel" +-msgstr "Cancel·lar" ++msgstr "Cancel·la" + + #: gtk/gtkcolorsel.c:1738 + msgid "Help" + msgstr "Ajuda" + +-#. The directories clist ++# The directories clist + #: gtk/gtkfilesel.c:430 + msgid "Directories" + msgstr "Directoris" + +-#. The files clist ++# The files clist + #: gtk/gtkfilesel.c:449 + msgid "Files" + msgstr "Fitxers" + +-#: gtk/gtkfilesel.c:519 gtk/gtkfilesel.c:1478 ++#: gtk/gtkfilesel.c:519 ++#: gtk/gtkfilesel.c:1478 + #, c-format + msgid "Directory unreadable: %s" +-msgstr "El directori no és legible: %s" ++msgstr "El directori no és llegible: %s" + + #: gtk/gtkfilesel.c:551 + msgid "Create Dir" +-msgstr "Crear directori" ++msgstr "Crea un directori" + +-#: gtk/gtkfilesel.c:562 gtk/gtkfilesel.c:937 ++#: gtk/gtkfilesel.c:562 ++#: gtk/gtkfilesel.c:937 + msgid "Delete File" +-msgstr "Esborrar fitxer" ++msgstr "Suprimeix el fitxer" + +-#: gtk/gtkfilesel.c:573 gtk/gtkfilesel.c:1041 ++#: gtk/gtkfilesel.c:573 ++#: gtk/gtkfilesel.c:1041 + msgid "Rename File" +-msgstr "Reanomenar fitxer" ++msgstr "Reanomena el fitxer" + +-#. +-#. gtk_signal_connect (GTK_OBJECT (dialog), "destroy", +-#. (GtkSignalFunc) gtk_file_selection_fileop_destroy, +-#. (gpointer) fs); +-#. ++# gtk_signal_connect (GTK_OBJECT (dialog), "destroy", ++# (GtkSignalFunc) gtk_file_selection_fileop_destroy, ++# (gpointer) fs); + #: gtk/gtkfilesel.c:734 + msgid "Error" + msgstr "Error" + +-#. close button +-#: gtk/gtkfilesel.c:757 gtk/gtkinputdialog.c:354 ++# close button ++#: gtk/gtkfilesel.c:757 ++#: gtk/gtkinputdialog.c:354 + msgid "Close" +-msgstr "Tancar" ++msgstr "Tanca" + + #: gtk/gtkfilesel.c:832 + msgid "Create Directory" +-msgstr "Crear directori" ++msgstr "Crea un directori" + + #: gtk/gtkfilesel.c:846 + msgid "Directory name:" + msgstr "Nom del directori:" + +-#. buttons ++# buttons + #: gtk/gtkfilesel.c:859 + msgid "Create" +-msgstr "Crear" ++msgstr "Crea" + + #. buttons + #: gtk/gtkfilesel.c:959 + msgid "Delete" +-msgstr "Esborrar" ++msgstr "Suprimeix" + + #. buttons + #: gtk/gtkfilesel.c:1074 + msgid "Rename" +-msgstr "Reanomenar" ++msgstr "Reanomena" + + #: gtk/gtkfilesel.c:1457 + msgid "Selection: " +@@ -144,19 +154,19 @@ + + #: gtk/gtkfontsel.c:214 + msgid "Set Width:" +-msgstr "Establir amplària:" ++msgstr "Estableix l'amplada:" + + #: gtk/gtkfontsel.c:215 + msgid "Add Style:" +-msgstr "Afegir estil:" ++msgstr "Afegeix un estil:" + + #: gtk/gtkfontsel.c:216 + msgid "Pixel Size:" +-msgstr "Tamany del píxel:" ++msgstr "Mida del píxel:" + + #: gtk/gtkfontsel.c:217 + msgid "Point Size:" +-msgstr "Tamany del punt:" ++msgstr "Mida del punt:" + + #: gtk/gtkfontsel.c:218 + msgid "Resolution X:" +@@ -172,14 +182,14 @@ + + #: gtk/gtkfontsel.c:221 + msgid "Average Width:" +-msgstr "Amplària mitjana:" ++msgstr "Amplada mitjana:" + + #: gtk/gtkfontsel.c:222 + msgid "Charset:" + msgstr "Joc de caràcters:" + +-#. Number of internationalized titles here must match number +-#. of NULL initializers above ++# Number of internationalized titles here must match number ++# of NULL initializers above + #: gtk/gtkfontsel.c:459 + msgid "Font Property" + msgstr "Propietats de la font" +@@ -196,7 +206,9 @@ + msgid "Font" + msgstr "Font" + +-#: gtk/gtkfontsel.c:504 gtk/gtkfontsel.c:2180 gtk/gtkfontsel.c:2410 ++#: gtk/gtkfontsel.c:504 ++#: gtk/gtkfontsel.c:2180 ++#: gtk/gtkfontsel.c:2410 + msgid "Font:" + msgstr "Font:" + +@@ -206,11 +218,12 @@ + + #: gtk/gtkfontsel.c:514 + msgid "Size:" +-msgstr "Tamany:" ++msgstr "Mida:" + +-#: gtk/gtkfontsel.c:646 gtk/gtkfontsel.c:868 ++#: gtk/gtkfontsel.c:646 ++#: gtk/gtkfontsel.c:868 + msgid "Reset Filter" +-msgstr "Reiniciar filtre" ++msgstr "Reinicia el filtre" + + #: gtk/gtkfontsel.c:660 + msgid "Metric:" +@@ -224,7 +237,7 @@ + msgid "Pixels" + msgstr "Píxels" + +-#. create the text entry widget ++# create the text entry widget + #: gtk/gtkfontsel.c:687 + msgid "Preview:" + msgstr "Vista prèvia:" +@@ -270,7 +283,7 @@ + msgid "*" + msgstr "*" + +-#. Convert '(nil)' weights to 'regular', since it looks nicer. ++# Convert '(nil)' weights to 'regular', since it looks nicer. + #: gtk/gtkfontsel.c:1215 + msgid "(nil)" + msgstr "(nul)" +@@ -279,23 +292,28 @@ + msgid "regular" + msgstr "regular" + +-#: gtk/gtkfontsel.c:1220 gtk/gtkfontsel.c:1972 ++#: gtk/gtkfontsel.c:1220 ++#: gtk/gtkfontsel.c:1972 + msgid "italic" + msgstr "itàlica" + +-#: gtk/gtkfontsel.c:1221 gtk/gtkfontsel.c:1973 ++#: gtk/gtkfontsel.c:1221 ++#: gtk/gtkfontsel.c:1973 + msgid "oblique" +-msgstr "oblíqua" ++msgstr "obliqua" + +-#: gtk/gtkfontsel.c:1222 gtk/gtkfontsel.c:1974 ++#: gtk/gtkfontsel.c:1222 ++#: gtk/gtkfontsel.c:1974 + msgid "reverse italic" + msgstr "itàlica inversa" + +-#: gtk/gtkfontsel.c:1223 gtk/gtkfontsel.c:1975 ++#: gtk/gtkfontsel.c:1223 ++#: gtk/gtkfontsel.c:1975 + msgid "reverse oblique" +-msgstr "oblíqua inversa" ++msgstr "obliqua inversa" + +-#: gtk/gtkfontsel.c:1224 gtk/gtkfontsel.c:1976 ++#: gtk/gtkfontsel.c:1224 ++#: gtk/gtkfontsel.c:1976 + msgid "other" + msgstr "altra" + +@@ -317,9 +335,10 @@ + + #: gtk/gtkfontsel.c:1856 + msgid "This is a 2-byte font and may not be displayed correctly." +-msgstr "Aquesta font és de 2 octets i potser no es veja correctament." ++msgstr "Aquesta font és de 2 bytes i potser no es veurà correctament." + +-#: gtk/gtkfontsel.c:1960 gtk/gtkinputdialog.c:607 ++#: gtk/gtkfontsel.c:1960 ++#: gtk/gtkinputdialog.c:607 + msgid "(unknown)" + msgstr "(desconegut)" + +@@ -349,7 +368,7 @@ + + #: gtk/gtkfontsel.c:3508 + msgid "Apply" +-msgstr "Aplicar" ++msgstr "Aplica" + + #: gtk/gtkfontsel.c:3530 + msgid "Font Selection" +@@ -363,7 +382,7 @@ + msgid "Gamma value" + msgstr "Valor de gamma" + +-#. shell and main vbox ++# shell and main vbox + #: gtk/gtkinputdialog.c:200 + msgid "Input" + msgstr "Entrada" +@@ -392,21 +411,21 @@ + msgid "Mode: " + msgstr "Mode: " + +-#. The axis listbox ++# The axis listbox + #: gtk/gtkinputdialog.c:307 + msgid "Axes" + msgstr "Eixos" + +-#. Keys listbox ++# Keys listbox + #: gtk/gtkinputdialog.c:323 + msgid "Keys" + msgstr "Tecles" + +-#. We create the save button in any case, so that clients can +-#. connect to it, without paying attention to whether it exits ++# We create the save button in any case, so that clients can ++# connect to it, without paying attention to whether it exits + #: gtk/gtkinputdialog.c:345 + msgid "Save" +-msgstr "Guardar" ++msgstr "Desa" + + #: gtk/gtkinputdialog.c:500 + msgid "X" +@@ -432,16 +451,18 @@ + msgid "none" + msgstr "cap" + +-#: gtk/gtkinputdialog.c:578 gtk/gtkinputdialog.c:614 ++#: gtk/gtkinputdialog.c:578 ++#: gtk/gtkinputdialog.c:614 + msgid "(disabled)" + msgstr "(desactivat)" + +-#. and clear button ++# and clear button + #: gtk/gtkinputdialog.c:692 + msgid "clear" +-msgstr "esborrar" ++msgstr "neteja" + +-#: gtk/gtknotebook.c:2059 gtk/gtknotebook.c:4131 ++#: gtk/gtknotebook.c:2059 ++#: gtk/gtknotebook.c:4131 + #, c-format + msgid "Page %u" + msgstr "Pàgina %u" +@@ -464,3 +485,4 @@ + #: gtk/gtktipsquery.c:180 + msgid "--- No Tip ---" + msgstr "-- Sense pista --" ++ +--- gtk+1.2-1.2.10.orig/gdk/Makefile.in ++++ gtk+1.2-1.2.10/gdk/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -66,6 +66,8 @@ + CC = @CC@ + DATADIRNAME = @DATADIRNAME@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ + GDK_WLIBS = @GDK_WLIBS@ + GENCAT = @GENCAT@ + GLIB_CFLAGS = @GLIB_CFLAGS@ +@@ -101,12 +103,14 @@ + MAKEINFO = @MAKEINFO@ + MKINSTALLDIRS = @MKINSTALLDIRS@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + PERL = @PERL@ + POFILES = @POFILES@ + POSUB = @POSUB@ + RANLIB = @RANLIB@ + REBUILD = @REBUILD@ ++STRIP = @STRIP@ + STRIP_BEGIN = @STRIP_BEGIN@ + STRIP_DUMMY = @STRIP_DUMMY@ + STRIP_END = @STRIP_END@ +@@ -185,9 +189,10 @@ + gdkimage.lo gdkinput.lo gdkpixmap.lo gdkproperty.lo gdkrgb.lo \ + gdkrectangle.lo gdkregion.lo gdkselection.lo gdkvisual.lo gdkwindow.lo \ + gdkxid.lo gxid_lib.lo ++bin_PROGRAMS = @xinput_progs@ + PROGRAMS = $(bin_PROGRAMS) + +-gxid_OBJECTS = gxid.o ++gxid_OBJECTS = gxid.$(OBJEXT) + gxid_DEPENDENCIES = + gxid_LDFLAGS = + CFLAGS = @CFLAGS@ +@@ -202,18 +207,25 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best ++DEP_FILES = .deps/gdk.P .deps/gdkcc.P .deps/gdkcolor.P \ ++.deps/gdkcursor.P .deps/gdkdnd.P .deps/gdkdraw.P .deps/gdkevents.P \ ++.deps/gdkfont.P .deps/gdkgc.P .deps/gdkglobals.P .deps/gdkim.P \ ++.deps/gdkimage.P .deps/gdkinput.P .deps/gdkpixmap.P .deps/gdkproperty.P \ ++.deps/gdkrectangle.P .deps/gdkregion.P .deps/gdkrgb.P \ ++.deps/gdkselection.P .deps/gdkvisual.P .deps/gdkwindow.P .deps/gdkxid.P \ ++.deps/gxid.P .deps/gxid_lib.P + SOURCES = $(libgdk_la_SOURCES) $(gxid_SOURCES) + OBJECTS = $(libgdk_la_OBJECTS) $(gxid_OBJECTS) + + all: all-redirect + .SUFFIXES: +-.SUFFIXES: .S .c .lo .o .s ++.SUFFIXES: .S .c .lo .o .obj .s + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps gdk/Makefile ++ cd $(top_srcdir) && $(AUTOMAKE) --gnu gdk/Makefile + +-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +@@ -243,8 +255,10 @@ + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ + done + +-.c.o: +- $(COMPILE) -c $< ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` + + .s.o: + $(COMPILE) -c $< +@@ -254,6 +268,7 @@ + + mostlyclean-compile: + -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) + + clean-compile: + +@@ -262,9 +277,6 @@ + + maintainer-clean-compile: + +-.c.lo: +- $(LIBTOOL) --mode=compile $(COMPILE) -c $< +- + .s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +@@ -309,8 +321,8 @@ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +-gxid: $(gxid_OBJECTS) $(gxid_DEPENDENCIES) +- @rm -f gxid ++gxid$(EXEEXT): $(gxid_OBJECTS) $(gxid_DEPENDENCIES) ++ @rm -f gxid$(EXEEXT) + $(LINK) $(gxid_LDFLAGS) $(gxid_OBJECTS) $(gxid_LDADD) $(LIBS) + + install-libgdkincludeHEADERS: $(libgdkinclude_HEADERS) +@@ -346,7 +358,7 @@ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ +- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + + mostlyclean-tags: + +@@ -362,6 +374,11 @@ + subdir = gdk + + distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu gdk/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +@@ -372,55 +389,38 @@ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +-gdk.lo gdk.o : gdk.c ../config.h gdk.h gdktypes.h gdkcursors.h gdkrgb.h \ +- gdkprivate.h gdkinput.h gdkx.h gdkprivate.h gdki18n.h \ +- gdkkeysyms.h +-gdkcc.lo gdkcc.o : gdkcc.c gdk.h gdktypes.h gdkcursors.h gdkrgb.h \ +- gdkprivate.h gdkx.h gdkprivate.h +-gdkcolor.lo gdkcolor.o : gdkcolor.c gdk.h gdktypes.h gdkcursors.h \ +- gdkrgb.h gdkprivate.h gdkx.h gdkprivate.h +-gdkcursor.lo gdkcursor.o : gdkcursor.c gdk.h gdktypes.h gdkcursors.h \ +- gdkrgb.h gdkprivate.h +-gdkdnd.lo gdkdnd.o : gdkdnd.c gdkx.h gdkprivate.h gdktypes.h \ +- gdkcursors.h gdk.h gdkrgb.h +-gdkdraw.lo gdkdraw.o : gdkdraw.c gdk.h gdktypes.h gdkcursors.h gdkrgb.h \ +- gdkprivate.h +-gdkevents.lo gdkevents.o : gdkevents.c gdk.h gdktypes.h gdkcursors.h \ +- gdkrgb.h gdkx.h gdkprivate.h gdkprivate.h gdkkeysyms.h \ +- ../config.h gdkinput.h +-gdkfont.lo gdkfont.o : gdkfont.c gdk.h gdktypes.h gdkcursors.h gdkrgb.h \ +- gdkprivate.h ../config.h +-gdkgc.lo gdkgc.o : gdkgc.c gdk.h gdktypes.h gdkcursors.h gdkrgb.h \ +- gdkprivate.h +-gdkglobals.lo gdkglobals.o : gdkglobals.c gdktypes.h gdkcursors.h \ +- gdkprivate.h gdktypes.h ../config.h +-gdkim.lo gdkim.o : gdkim.c gdk.h gdktypes.h gdkcursors.h gdkrgb.h \ +- gdkprivate.h gdki18n.h gdkx.h gdkprivate.h ../config.h +-gdkimage.lo gdkimage.o : gdkimage.c ../config.h gdk.h gdktypes.h \ +- gdkcursors.h gdkrgb.h gdkprivate.h +-gdkinput.lo gdkinput.o : gdkinput.c ../config.h gdk.h gdktypes.h \ +- gdkcursors.h gdkrgb.h gdkx.h gdkprivate.h gdkprivate.h \ +- gdkinput.h gdkinputnone.h gdkinputcommon.h gdkinputxfree.h \ +- gdkinputgxi.h +-gdkpixmap.lo gdkpixmap.o : gdkpixmap.c ../config.h gdk.h gdktypes.h \ +- gdkcursors.h gdkrgb.h gdkprivate.h +-gdkproperty.lo gdkproperty.o : gdkproperty.c gdk.h gdktypes.h \ +- gdkcursors.h gdkrgb.h gdkprivate.h +-gdkrectangle.lo gdkrectangle.o : gdkrectangle.c gdk.h gdktypes.h \ +- gdkcursors.h gdkrgb.h +-gdkregion.lo gdkregion.o : gdkregion.c gdk.h gdktypes.h gdkcursors.h \ +- gdkrgb.h gdkprivate.h +-gdkrgb.lo gdkrgb.o : gdkrgb.c ../config.h gdk.h gdktypes.h gdkcursors.h \ +- gdkrgb.h gdkprivate.h gdkrgb.h +-gdkselection.lo gdkselection.o : gdkselection.c gdk.h gdktypes.h \ +- gdkcursors.h gdkrgb.h gdkprivate.h gdkx.h gdkprivate.h +-gdkvisual.lo gdkvisual.o : gdkvisual.c gdk.h gdktypes.h gdkcursors.h \ +- gdkrgb.h gdkprivate.h gdkx.h gdkprivate.h +-gdkwindow.lo gdkwindow.o : gdkwindow.c gdk.h gdktypes.h gdkcursors.h \ +- gdkrgb.h ../config.h gdkinput.h gdkprivate.h MwmUtil.h +-gdkxid.lo gdkxid.o : gdkxid.c gdkprivate.h gdktypes.h gdkcursors.h +-gxid_lib.lo gxid_lib.o : gxid_lib.c ../config.h gxid_lib.h gxid_proto.h + ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp + info-am: + info: info-am + dvi-am: +@@ -462,19 +462,19 @@ + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \ + mostlyclean-libtool mostlyclean-binPROGRAMS \ +- mostlyclean-tags mostlyclean-generic ++ mostlyclean-tags mostlyclean-depend mostlyclean-generic + + mostlyclean: mostlyclean-am + + clean-am: clean-libLTLIBRARIES clean-compile clean-libtool \ +- clean-binPROGRAMS clean-tags clean-generic \ ++ clean-binPROGRAMS clean-tags clean-depend clean-generic \ + mostlyclean-am + + clean: clean-am + + distclean-am: distclean-libLTLIBRARIES distclean-compile \ + distclean-libtool distclean-binPROGRAMS distclean-tags \ +- distclean-generic clean-am ++ distclean-depend distclean-generic clean-am + -rm -f libtool + + distclean: distclean-am +@@ -482,7 +482,8 @@ + maintainer-clean-am: maintainer-clean-libLTLIBRARIES \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-binPROGRAMS maintainer-clean-tags \ +- maintainer-clean-generic distclean-am ++ maintainer-clean-depend maintainer-clean-generic \ ++ distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +@@ -497,12 +498,13 @@ + clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \ + install-binPROGRAMS uninstall-libgdkincludeHEADERS \ + install-libgdkincludeHEADERS tags mostlyclean-tags distclean-tags \ +-clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +-check-am installcheck-am installcheck install-exec-am install-exec \ +-install-data-am install-data install-am install uninstall-am uninstall \ +-all-redirect all-am all installdirs mostlyclean-generic \ +-distclean-generic clean-generic maintainer-clean-generic clean \ +-mostlyclean distclean maintainer-clean ++clean-tags maintainer-clean-tags distdir mostlyclean-depend \ ++distclean-depend clean-depend maintainer-clean-depend info-am info \ ++dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ ++install-exec install-data-am install-data install-am install \ ++uninstall-am uninstall all-redirect all-am all installdirs \ ++mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + + # +--- gtk+1.2-1.2.10.orig/gdk/gdk.c ++++ gtk+1.2-1.2.10/gdk/gdk.c +@@ -989,7 +989,7 @@ + void + gdk_beep (void) + { +- XBell(gdk_display, 100); ++ XBell(gdk_display, 0); + } + + /* +--- gtk+1.2-1.2.10.orig/gdk/gdkevents.c ++++ gtk+1.2-1.2.10/gdk/gdkevents.c +@@ -383,6 +383,7 @@ + struct _GdkExposeInfo + { + Window window; ++ GdkWindowPrivate *toplevel_window; + gboolean seen_nonmatching; + }; + +@@ -400,10 +401,21 @@ + * we'll get a whole bunch of them interspersed with + * expose events. + */ +- if (xevent->xany.type != Expose && +- xevent->xany.type != GravityNotify) ++ switch (xevent->xany.type) + { ++ case Expose: ++ case GravityNotify: ++ break; ++ case ConfigureNotify: ++ if (xevent->xconfigure.window != info->toplevel_window->xwindow) ++ break; ++ if (xevent->xconfigure.width == info->toplevel_window->width && ++ xevent->xconfigure.height == info->toplevel_window->height) ++ break; ++ /* Fall through */ ++ default: + info->seen_nonmatching = TRUE; ++ break; + } + + if (info->seen_nonmatching || +@@ -429,6 +441,7 @@ + GdkEvent event; + + info.window = xevent->xany.window; ++ info.toplevel_window = (GdkWindowPrivate *) gdk_window_get_toplevel (window); + info.seen_nonmatching = FALSE; + + rect1.x = xevent->xexpose.x; +--- gtk+1.2-1.2.10.orig/gdk/gdkfont.c ++++ gtk+1.2-1.2.10/gdk/gdkfont.c +@@ -26,6 +26,8 @@ + + #include <X11/Xlib.h> + #include <X11/Xos.h> ++#include <locale.h> ++#include <langinfo.h> + #include "gdk.h" + #include "gdkprivate.h" + +@@ -173,9 +175,24 @@ + if (missing_charset_count) + { + gint i; +- g_warning ("Missing charsets in FontSet creation\n"); +- for (i=0;i<missing_charset_count;i++) +- g_warning (" %s\n", missing_charset_list[i]); ++ const char *codeset; ++ ++ codeset = nl_langinfo (CODESET); ++ ++ /* Hack - UTF-8 is likely to be rendered with a list of ++ * possible legacy fallback charsets, so a failure here ++ * shouldn't be warned about. But we don't want to suppress ++ * this warning in general, since for other charcter sets ++ * it gives a useful indication of what went wrong. ++ */ ++ if (g_strcasecmp (codeset, "utf-8") != 0 && ++ g_strcasecmp (codeset, "utf8") != 0) { ++ g_printerr ("The font \"%s\" does not support all the required character sets for the current locale \"%s\"\n", ++ fontset_name, setlocale (LC_ALL, NULL)); ++ for (i=0;i<missing_charset_count;i++) ++ g_printerr (" (Missing character set \"%s\")\n", ++ missing_charset_list[i]); ++ } + XFreeStringList (missing_charset_list); + } + +@@ -445,7 +462,6 @@ + GdkFontPrivate *private; + XCharStruct *chars; + gint width; +- guint ch = character & 0xff; /* get rid of sign-extension */ + XFontStruct *xfont; + XFontSet fontset; + +@@ -458,21 +474,7 @@ + case GDK_FONT_FONT: + /* only 8 bits characters are considered here */ + xfont = (XFontStruct *) private->xfont; +- if ((xfont->min_byte1 == 0) && +- (xfont->max_byte1 == 0) && +- (ch >= xfont->min_char_or_byte2) && +- (ch <= xfont->max_char_or_byte2)) +- { +- chars = xfont->per_char; +- if (chars) +- width = chars[ch - xfont->min_char_or_byte2].width; +- else +- width = xfont->min_bounds.width; +- } +- else +- { +- width = XTextWidth (xfont, &character, 1); +- } ++ width = XTextWidth (xfont, &character, 1); + break; + case GDK_FONT_FONTSET: + fontset = (XFontSet) private->xfont; +--- gtk+1.2-1.2.10.orig/gdk/gdkselection.c ++++ gtk+1.2-1.2.10/gdk/gdkselection.c +@@ -191,73 +191,6 @@ + gdk_send_xevent (requestor, False, NoEventMask, (XEvent*) &xevent); + } + +- +-/* The output of XmbTextPropertyToTextList may include stuff not valid +- * for COMPOUND_TEXT. This routine tries to correct this by: +- * +- * a) Canonicalizing CR LF and CR to LF +- * b) Stripping out all other non-allowed control characters +- * +- * See the COMPOUND_TEXT spec distributed with X for explanations +- * what is allowed. +- */ +-static gchar * +-sanitize_ctext (const char *str, +- gint *length) +-{ +- gchar *result = g_malloc (*length + 1); +- gint out_length = 0; +- gint i; +- const guchar *ustr = (const guchar *)str; +- +- for (i=0; i < *length; i++) +- { +- guchar c = ustr[i]; +- +- if (c == '\r') +- { +- result[out_length++] = '\n'; +- if (i + 1 < *length && ustr[i + 1] == '\n') +- i++; +- } +- else if (c == 27 /* ESC */) +- { +- /* Check for "extended segments, which can contain arbitrary +- * octets. See CTEXT spec, section 6. +- */ +- +- if (i + 5 < *length && +- ustr[i + 1] == '%' && +- ustr[i + 2] == '/' && +- (ustr[i + 3] >= 48 && ustr[i + 3] <= 52) && +- ustr[i + 4] >= 128 && +- ustr[i + 5] >= 128) +- { +- int extra_len = 6 + (ustr[i + 4] - 128) * 128 + ustr[i + 5] - 128; +- extra_len = MAX (extra_len, *length - i); +- +- memcpy (result + out_length, ustr + i, extra_len); +- out_length += extra_len; +- i += extra_len - 1; +- } +- else +- result[out_length++] = c; +- } +- else if (c == '\n' || c == '\t' || c == 27 /* ESC */ || +- (c >= 32 && c <= 127) || /* GL */ +- c == 155 /* CONTROL SEQUENCE INTRODUCER */ || +- (c >= 160 && c <= 255)) /* GR */ +- { +- result[out_length++] = c; +- } +- } +- +- result[out_length] = '\0'; +- *length = out_length; +- +- return result; +-} +- + gint + gdk_text_property_to_text_list (GdkAtom encoding, gint format, + guchar *text, gint length, +@@ -266,32 +199,16 @@ + XTextProperty property; + gint count = 0; + gint res; +- gchar *sanitized_text = NULL; + + if (!list) + return 0; + + property.encoding = encoding; + property.format = format; +- +- if (encoding == gdk_atom_intern ("COMPOUND_TEXT", FALSE) && format == 8) +- { +- gint sanitized_text_length = length; +- +- property.value = sanitized_text = sanitize_ctext (text, &sanitized_text_length); +- property.nitems = sanitized_text_length; +- } +- else +- { +- property.value = text; +- property.nitems = length; +- } +- ++ property.value = text; ++ property.nitems = length; + res = XmbTextPropertyToTextList (GDK_DISPLAY(), &property, list, &count); + +- if (sanitized_text) +- g_free (sanitized_text); +- + if (res == XNoMemory || res == XLocaleNotSupported || + res == XConverterNotFound) + return 0; +@@ -314,8 +231,6 @@ + { + gint res; + XTextProperty property; +- gint sanitized_text_length; +- gchar *sanitized_text; + + res = XmbTextListToTextProperty (GDK_DISPLAY(), + (char **)&str, 1, XCompoundTextStyle, +@@ -334,17 +249,10 @@ + *encoding = property.encoding; + if (format) + *format = property.format; +- +- sanitized_text_length = property.nitems; +- sanitized_text = sanitize_ctext (property.value, &sanitized_text_length); +- + if (ctext) +- *ctext = sanitized_text; +- else +- g_free (sanitized_text); +- ++ *ctext = g_strdup (property.value); + if (length) +- *length = sanitized_text_length; ++ *length = property.nitems; + + if (property.value) + XFree (property.value); +--- gtk+1.2-1.2.10.orig/gtk/Makefile.in ++++ gtk+1.2-1.2.10/gtk/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -66,6 +66,8 @@ + CC = @CC@ + DATADIRNAME = @DATADIRNAME@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ + GDK_WLIBS = @GDK_WLIBS@ + GENCAT = @GENCAT@ + GLIB_CFLAGS = @GLIB_CFLAGS@ +@@ -101,12 +103,14 @@ + MAKEINFO = @MAKEINFO@ + MKINSTALLDIRS = @MKINSTALLDIRS@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + PERL = @PERL@ + POFILES = @POFILES@ + POSUB = @POSUB@ + RANLIB = @RANLIB@ + REBUILD = @REBUILD@ ++STRIP = @STRIP@ + STRIP_BEGIN = @STRIP_BEGIN@ + STRIP_DUMMY = @STRIP_DUMMY@ + STRIP_END = @STRIP_END@ +@@ -135,9 +139,8 @@ + + # libtool stuff: set version and export symbols for resolving + libgtkincludedir = $(includedir)/gtk-1.2/gtk +-libgtk_la_LDFLAGS = @STRIP_BEGIN@ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -release $(LT_RELEASE) -export-dynamic @GLIB_DEPLIBS@ @x_ldflags@ @x_libs@ -lm @STRIP_END@ ++libgtk_la_LDFLAGS = @STRIP_BEGIN@ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -release $(LT_RELEASE) -export-dynamic @GLIB_DEPLIBS@ @x_ldflags@ @x_libs@ -lm $(top_builddir)/gdk/libgdk.la @STRIP_END@ + +-# $(top_builddir)/gdk/libgdk.la + + # + # setup source file variables +@@ -191,7 +194,7 @@ + CLEANFILES = $(gen_sources) + + gtkconfdir = $(sysconfdir)/gtk +-gtkconf_DATA = gtkrc.az gtkrc.el gtkrc.eo gtkrc.he gtkrc.hy gtkrc.ja gtkrc.ko gtkrc.ru gtkrc.tr gtkrc.th gtkrc.uk gtkrc.iso-8859-2 gtkrc.iso-8859-5 gtkrc.iso-8859-13 gtkrc.iso-8859-14 gtkrc.iso-8859-15 gtkrc.zh_CN gtkrc.zh_TW.big5 gtkrc.ka_GE.georgianacademy gtkrc.ka_GE.georgianps gtkrc.vi_VN.tcvn gtkrc.vi_VN.viscii gtkrc.cp1251 gtkrc.cp1255 ++gtkconf_DATA = gtkrc.az gtkrc.he gtkrc.hy gtkrc.ja gtkrc.ko gtkrc.ru gtkrc.th gtkrc.uk gtkrc.utf-8 gtkrc.iso-8859-2 gtkrc.iso-8859-3 gtkrc.iso-8859-5 gtkrc.iso-8859-7 gtkrc.iso-8859-9 gtkrc.iso-8859-13 gtkrc.iso-8859-14 gtkrc.iso-8859-15 gtkrc.zh_CN gtkrc.zh_TW gtkrc.ka_GE.georgianacademy gtkrc.ka_GE.georgianps gtkrc.vi_VN.tcvn gtkrc.vi_VN.viscii gtkrc.cp1251 gtkrc.cp1255 + + + # +@@ -252,25 +255,28 @@ + gtktooltips.lo gtktree.lo gtktreeitem.lo gtktypeutils.lo gtkvbbox.lo \ + gtkvbox.lo gtkviewport.lo gtkvpaned.lo gtkvruler.lo gtkvscale.lo \ + gtkvscrollbar.lo gtkvseparator.lo gtkwidget.lo gtkwindow.lo fnmatch.lo ++noinst_PROGRAMS = testgtk$(EXEEXT) testinput$(EXEEXT) \ ++testselection$(EXEEXT) testrgb$(EXEEXT) testdnd$(EXEEXT) \ ++simple$(EXEEXT) + PROGRAMS = $(noinst_PROGRAMS) + + testgtk_SOURCES = testgtk.c +-testgtk_OBJECTS = testgtk.o ++testgtk_OBJECTS = testgtk.$(OBJEXT) + testgtk_LDFLAGS = + testinput_SOURCES = testinput.c +-testinput_OBJECTS = testinput.o ++testinput_OBJECTS = testinput.$(OBJEXT) + testinput_LDFLAGS = + testselection_SOURCES = testselection.c +-testselection_OBJECTS = testselection.o ++testselection_OBJECTS = testselection.$(OBJEXT) + testselection_LDFLAGS = + testrgb_SOURCES = testrgb.c +-testrgb_OBJECTS = testrgb.o ++testrgb_OBJECTS = testrgb.$(OBJEXT) + testrgb_LDFLAGS = + testdnd_SOURCES = testdnd.c +-testdnd_OBJECTS = testdnd.o ++testdnd_OBJECTS = testdnd.$(OBJEXT) + testdnd_LDFLAGS = + simple_SOURCES = simple.c +-simple_OBJECTS = simple.o ++simple_OBJECTS = simple.$(OBJEXT) + simple_LDFLAGS = + CFLAGS = @CFLAGS@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@@ -286,18 +292,52 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best ++DEP_FILES = .deps/fnmatch.P .deps/gtkaccelgroup.P .deps/gtkaccellabel.P \ ++.deps/gtkadjustment.P .deps/gtkalignment.P .deps/gtkarg.P \ ++.deps/gtkarrow.P .deps/gtkaspectframe.P .deps/gtkbbox.P .deps/gtkbin.P \ ++.deps/gtkbindings.P .deps/gtkbox.P .deps/gtkbutton.P \ ++.deps/gtkcalendar.P .deps/gtkcheckbutton.P .deps/gtkcheckmenuitem.P \ ++.deps/gtkclist.P .deps/gtkcolorsel.P .deps/gtkcombo.P \ ++.deps/gtkcontainer.P .deps/gtkctree.P .deps/gtkcurve.P .deps/gtkdata.P \ ++.deps/gtkdialog.P .deps/gtkdnd.P .deps/gtkdrawingarea.P \ ++.deps/gtkeditable.P .deps/gtkentry.P .deps/gtkeventbox.P \ ++.deps/gtkfilesel.P .deps/gtkfixed.P .deps/gtkfontsel.P .deps/gtkframe.P \ ++.deps/gtkgamma.P .deps/gtkgc.P .deps/gtkhandlebox.P .deps/gtkhbbox.P \ ++.deps/gtkhbox.P .deps/gtkhpaned.P .deps/gtkhruler.P .deps/gtkhscale.P \ ++.deps/gtkhscrollbar.P .deps/gtkhseparator.P .deps/gtkimage.P \ ++.deps/gtkinputdialog.P .deps/gtkinvisible.P .deps/gtkitem.P \ ++.deps/gtkitemfactory.P .deps/gtklabel.P .deps/gtklayout.P \ ++.deps/gtklist.P .deps/gtklistitem.P .deps/gtkmain.P .deps/gtkmarshal.P \ ++.deps/gtkmenu.P .deps/gtkmenubar.P .deps/gtkmenufactory.P \ ++.deps/gtkmenuitem.P .deps/gtkmenushell.P .deps/gtkmisc.P \ ++.deps/gtknotebook.P .deps/gtkobject.P .deps/gtkoptionmenu.P \ ++.deps/gtkpacker.P .deps/gtkpaned.P .deps/gtkpixmap.P .deps/gtkplug.P \ ++.deps/gtkpreview.P .deps/gtkprogress.P .deps/gtkprogressbar.P \ ++.deps/gtkradiobutton.P .deps/gtkradiomenuitem.P .deps/gtkrange.P \ ++.deps/gtkrc.P .deps/gtkruler.P .deps/gtkscale.P .deps/gtkscrollbar.P \ ++.deps/gtkscrolledwindow.P .deps/gtkselection.P .deps/gtkseparator.P \ ++.deps/gtksignal.P .deps/gtksocket.P .deps/gtkspinbutton.P \ ++.deps/gtkstatusbar.P .deps/gtkstyle.P .deps/gtktable.P \ ++.deps/gtktearoffmenuitem.P .deps/gtktext.P .deps/gtkthemes.P \ ++.deps/gtktipsquery.P .deps/gtktogglebutton.P .deps/gtktoolbar.P \ ++.deps/gtktooltips.P .deps/gtktree.P .deps/gtktreeitem.P \ ++.deps/gtktypeutils.P .deps/gtkvbbox.P .deps/gtkvbox.P \ ++.deps/gtkviewport.P .deps/gtkvpaned.P .deps/gtkvruler.P \ ++.deps/gtkvscale.P .deps/gtkvscrollbar.P .deps/gtkvseparator.P \ ++.deps/gtkwidget.P .deps/gtkwindow.P .deps/simple.P .deps/testdnd.P \ ++.deps/testgtk.P .deps/testinput.P .deps/testrgb.P .deps/testselection.P + SOURCES = $(libgtk_la_SOURCES) testgtk.c testinput.c testselection.c testrgb.c testdnd.c simple.c +-OBJECTS = $(libgtk_la_OBJECTS) testgtk.o testinput.o testselection.o testrgb.o testdnd.o simple.o ++OBJECTS = $(libgtk_la_OBJECTS) testgtk.$(OBJEXT) testinput.$(OBJEXT) testselection.$(OBJEXT) testrgb.$(OBJEXT) testdnd.$(OBJEXT) simple.$(OBJEXT) + + all: all-redirect + .SUFFIXES: +-.SUFFIXES: .S .c .lo .o .s ++.SUFFIXES: .S .c .lo .o .obj .s + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps gtk/Makefile ++ cd $(top_srcdir) && $(AUTOMAKE) --gnu gtk/Makefile + +-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +@@ -329,8 +369,10 @@ + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ + done + +-.c.o: +- $(COMPILE) -c $< ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` + + .s.o: + $(COMPILE) -c $< +@@ -340,6 +382,7 @@ + + mostlyclean-compile: + -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) + + clean-compile: + +@@ -348,9 +391,6 @@ + + maintainer-clean-compile: + +-.c.lo: +- $(LIBTOOL) --mode=compile $(COMPILE) -c $< +- + .s.lo: + $(LIBTOOL) --mode=compile $(COMPILE) -c $< + +@@ -379,28 +419,28 @@ + + maintainer-clean-noinstPROGRAMS: + +-testgtk: $(testgtk_OBJECTS) $(testgtk_DEPENDENCIES) +- @rm -f testgtk ++testgtk$(EXEEXT): $(testgtk_OBJECTS) $(testgtk_DEPENDENCIES) ++ @rm -f testgtk$(EXEEXT) + $(LINK) $(testgtk_LDFLAGS) $(testgtk_OBJECTS) $(testgtk_LDADD) $(LIBS) + +-testinput: $(testinput_OBJECTS) $(testinput_DEPENDENCIES) +- @rm -f testinput ++testinput$(EXEEXT): $(testinput_OBJECTS) $(testinput_DEPENDENCIES) ++ @rm -f testinput$(EXEEXT) + $(LINK) $(testinput_LDFLAGS) $(testinput_OBJECTS) $(testinput_LDADD) $(LIBS) + +-testselection: $(testselection_OBJECTS) $(testselection_DEPENDENCIES) +- @rm -f testselection ++testselection$(EXEEXT): $(testselection_OBJECTS) $(testselection_DEPENDENCIES) ++ @rm -f testselection$(EXEEXT) + $(LINK) $(testselection_LDFLAGS) $(testselection_OBJECTS) $(testselection_LDADD) $(LIBS) + +-testrgb: $(testrgb_OBJECTS) $(testrgb_DEPENDENCIES) +- @rm -f testrgb ++testrgb$(EXEEXT): $(testrgb_OBJECTS) $(testrgb_DEPENDENCIES) ++ @rm -f testrgb$(EXEEXT) + $(LINK) $(testrgb_LDFLAGS) $(testrgb_OBJECTS) $(testrgb_LDADD) $(LIBS) + +-testdnd: $(testdnd_OBJECTS) $(testdnd_DEPENDENCIES) +- @rm -f testdnd ++testdnd$(EXEEXT): $(testdnd_OBJECTS) $(testdnd_DEPENDENCIES) ++ @rm -f testdnd$(EXEEXT) + $(LINK) $(testdnd_LDFLAGS) $(testdnd_OBJECTS) $(testdnd_LDADD) $(LIBS) + +-simple: $(simple_OBJECTS) $(simple_DEPENDENCIES) +- @rm -f simple ++simple$(EXEEXT): $(simple_OBJECTS) $(simple_DEPENDENCIES) ++ @rm -f simple$(EXEEXT) + $(LINK) $(simple_LDFLAGS) $(simple_OBJECTS) $(simple_LDADD) $(LIBS) + + install-gtkconfDATA: $(gtkconf_DATA) +@@ -455,7 +495,7 @@ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ +- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) + + mostlyclean-tags: + +@@ -471,6 +511,11 @@ + subdir = gtk + + distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu gtk/Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ +@@ -481,866 +526,38 @@ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +-fnmatch.lo fnmatch.o : fnmatch.c ../config.h fnmatch.h +-gtkaccelgroup.lo gtkaccelgroup.o : gtkaccelgroup.c gtkaccelgroup.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h ../gdk/gdkkeysyms.h \ +- gtksignal.h gtkmarshal.h gtkwidget.h gtkaccelgroup.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h +-gtkaccellabel.lo gtkaccellabel.o : gtkaccellabel.c gtkmain.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkwidget.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtksignal.h gtkmarshal.h \ +- gtkaccellabel.h gtklabel.h gtkmisc.h +-gtkadjustment.lo gtkadjustment.o : gtkadjustment.c gtkadjustment.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkdata.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtksignal.h \ +- gtkmarshal.h +-gtkalignment.lo gtkalignment.o : gtkalignment.c gtkalignment.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkbin.h gtkcontainer.h gtkenums.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h +-gtkarg.lo gtkarg.o : gtkarg.c gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkargcollector.c +-gtkarrow.lo gtkarrow.o : gtkarrow.c gtkarrow.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkmisc.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h +-gtkaspectframe.lo gtkaspectframe.o : gtkaspectframe.c gtkaspectframe.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkbin.h gtkcontainer.h gtkenums.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkframe.h +-gtkbbox.lo gtkbbox.o : gtkbbox.c gtkbbox.h gtkbox.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkbin.lo gtkbin.o : gtkbin.c gtkbin.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkcontainer.h gtkenums.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h +-gtkbindings.lo gtkbindings.o : gtkbindings.c gtkbindings.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtksignal.h gtkmarshal.h gtkwidget.h \ +- gtkaccelgroup.h gtkadjustment.h gtkdata.h gtkstyle.h gtkrc.h \ +- gtkwidget.h +-gtkbox.lo gtkbox.o : gtkbox.c gtkbox.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkcontainer.h gtkenums.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h +-gtkbutton.lo gtkbutton.o : gtkbutton.c gtkbutton.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtklabel.h \ +- gtkmisc.h gtkmain.h gtksignal.h gtkmarshal.h +-gtkcalendar.lo gtkcalendar.o : gtkcalendar.c gtkcalendar.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtksignal.h gtkenums.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkmarshal.h gtkwidget.h \ +- gtkaccelgroup.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- ../gdk/gdkkeysyms.h +-gtkcheckbutton.lo gtkcheckbutton.o : gtkcheckbutton.c gtkcheckbutton.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtktogglebutton.h gtkbutton.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtklabel.h \ +- gtkmisc.h +-gtkcheckmenuitem.lo gtkcheckmenuitem.o : gtkcheckmenuitem.c \ +- gtkcheckmenuitem.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkmenuitem.h gtkitem.h \ +- gtkbin.h gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtkaccellabel.h \ +- gtklabel.h gtkmisc.h gtksignal.h gtkmarshal.h +-gtkclist.lo gtkclist.o : gtkclist.c ../config.h gtkmain.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkclist.h gtksignal.h gtkmarshal.h \ +- gtkalignment.h gtkbin.h gtkcontainer.h gtklabel.h gtkmisc.h \ +- gtkbutton.h gtkhscrollbar.h gtkscrollbar.h gtkrange.h \ +- gtkvscrollbar.h gtkbindings.h gtkdnd.h gtkselection.h \ +- gtkwindow.h ../gdk/gdkx.h ../gdk/gdkprivate.h \ +- ../gdk/gdkkeysyms.h +-gtkcolorsel.lo gtkcolorsel.o : gtkcolorsel.c ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkcolorsel.h gtkwindow.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h gtkbin.h \ +- gtkcontainer.h gtkwidget.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtkvbox.h gtkbox.h gtkframe.h gtkpreview.h gtkbutton.h \ +- gtkentry.h gtkeditable.h gtkhbox.h gtklabel.h gtkmisc.h \ +- gtkmain.h gtksignal.h gtkmarshal.h gtkrange.h gtkscale.h \ +- gtkhscale.h gtktable.h gtkeventbox.h gtkwindow.h gtkhbbox.h \ +- gtkbbox.h gtkintl.h ../config.h gtkdnd.h gtkselection.h \ +- gtkselection.h +-gtkcombo.lo gtkcombo.o : gtkcombo.c gtkarrow.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkmisc.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtklabel.h gtklist.h gtkcontainer.h \ +- gtklistitem.h gtkitem.h gtkbin.h gtkentry.h gtkeditable.h \ +- gtkeventbox.h gtkbutton.h gtklistitem.h gtkscrolledwindow.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkviewport.h gtkmain.h gtksignal.h gtkmarshal.h gtkwindow.h \ +- ../gdk/gdkkeysyms.h gtkcombo.h gtkhbox.h gtkbox.h gtkframe.h +-gtkcontainer.lo gtkcontainer.o : gtkcontainer.c gtkcontainer.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtkprivate.h \ +- gtksignal.h gtkmarshal.h gtkmain.h +-gtkctree.lo gtkctree.o : gtkctree.c gtkctree.h gtkclist.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtksignal.h gtkenums.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkmarshal.h gtkalignment.h \ +- gtkbin.h gtkcontainer.h gtkwidget.h gtkaccelgroup.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtklabel.h gtkmisc.h \ +- gtkbutton.h gtkhscrollbar.h gtkscrollbar.h gtkrange.h \ +- gtkvscrollbar.h gtkbindings.h gtkmain.h gtkdnd.h gtkselection.h \ +- ../gdk/gdkx.h ../gdk/gdkprivate.h ../gdk/gdkkeysyms.h +-gtkcurve.lo gtkcurve.o : gtkcurve.c gtkcurve.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkdrawingarea.h gtkwidget.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkdrawingarea.h gtkmain.h \ +- gtkradiobutton.h gtkcheckbutton.h gtktogglebutton.h gtkbutton.h \ +- gtkbin.h gtkcontainer.h gtksignal.h gtkmarshal.h gtktable.h +-gtkdata.lo gtkdata.o : gtkdata.c gtkdata.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtksignal.h gtkmarshal.h +-gtkdialog.lo gtkdialog.o : gtkdialog.c gtkbutton.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtkdialog.h \ +- gtkwindow.h gtkhbox.h gtkbox.h gtkhseparator.h gtkseparator.h \ +- gtkvbox.h +-gtkdnd.lo gtkdnd.o : gtkdnd.c ../gdk/gdkx.h ../gdk/gdkprivate.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkkeysyms.h \ +- gtkdnd.h ../gdk/gdk.h ../gdk/gdkrgb.h gtkenums.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkselection.h gtkinvisible.h gtkbin.h \ +- gtkcontainer.h gtkmain.h gtksignal.h gtkmarshal.h gtkwindow.h +-gtkdrawingarea.lo gtkdrawingarea.o : gtkdrawingarea.c gtkdrawingarea.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkwidget.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h +-gtkeditable.lo gtkeditable.o : gtkeditable.c ../gdk/gdkx.h \ +- ../gdk/gdkprivate.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkkeysyms.h ../gdk/gdki18n.h gtkeditable.h ../gdk/gdk.h \ +- ../gdk/gdkrgb.h gtkwidget.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkmain.h gtkselection.h \ +- gtksignal.h gtkmarshal.h +-gtkentry.lo gtkentry.o : gtkentry.c ../gdk/gdkkeysyms.h ../gdk/gdki18n.h \ +- gtkentry.h ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkeditable.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtkmain.h gtkselection.h gtksignal.h gtkmarshal.h gtkstyle.h +-gtkeventbox.lo gtkeventbox.o : gtkeventbox.c gtksignal.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkmarshal.h gtkeventbox.h \ +- gtkbin.h gtkcontainer.h gtkwidget.h gtkaccelgroup.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h +-gtkfilesel.lo gtkfilesel.o : gtkfilesel.c fnmatch.h ../gdk/gdkkeysyms.h \ +- gtkbutton.h ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkbin.h gtkcontainer.h gtkenums.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkentry.h gtkeditable.h gtkfilesel.h gtkwindow.h \ +- gtkhbox.h gtkbox.h gtkhbbox.h gtkbbox.h gtklabel.h gtkmisc.h \ +- gtklist.h gtklistitem.h gtkitem.h gtklistitem.h gtkmain.h \ +- gtkscrolledwindow.h gtkhscrollbar.h gtkscrollbar.h gtkrange.h \ +- gtkvscrollbar.h gtkviewport.h gtksignal.h gtkmarshal.h \ +- gtkvbox.h gtkmenu.h gtkmenushell.h gtkmenuitem.h \ +- gtkoptionmenu.h gtkbutton.h gtkclist.h gtksignal.h \ +- gtkalignment.h gtklabel.h gtkdialog.h gtkintl.h ../config.h +-gtkfixed.lo gtkfixed.o : gtkfixed.c gtkfixed.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkfontsel.lo gtkfontsel.o : gtkfontsel.c ../gdk/gdkx.h \ +- ../gdk/gdkprivate.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkkeysyms.h gtkbutton.h ../gdk/gdk.h ../gdk/gdkrgb.h \ +- gtkbin.h gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtkcheckbutton.h gtktogglebutton.h gtkbutton.h gtkclist.h \ +- gtksignal.h gtkmarshal.h gtkalignment.h gtklabel.h gtkmisc.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkentry.h gtkeditable.h gtkfontsel.h gtkwindow.h gtknotebook.h \ +- gtkframe.h gtkhbbox.h gtkbbox.h gtkbox.h gtkhbox.h gtklabel.h \ +- gtknotebook.h gtkradiobutton.h gtkcheckbutton.h gtksignal.h \ +- gtktable.h gtkvbox.h gtkscrolledwindow.h gtkviewport.h \ +- gtkintl.h ../config.h +-gtkframe.lo gtkframe.o : gtkframe.c gtkframe.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkgamma.lo gtkgamma.o : gtkgamma.c gtkgamma.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkvbox.h \ +- gtkbox.h gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtkcurve.h \ +- gtkdrawingarea.h gtkdialog.h gtkwindow.h gtkbin.h \ +- gtkdrawingarea.h gtkentry.h gtkeditable.h gtkhbox.h gtklabel.h \ +- gtkmisc.h gtkmain.h gtkpixmap.h gtkradiobutton.h \ +- gtkcheckbutton.h gtktogglebutton.h gtkbutton.h gtksignal.h \ +- gtkmarshal.h gtktable.h gtkvbox.h gtkwindow.h gtkintl.h \ +- ../config.h +-gtkgc.lo gtkgc.o : gtkgc.c gtkgc.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h +-gtkhandlebox.lo gtkhandlebox.o : gtkhandlebox.c ../gdk/gdkx.h \ +- ../gdk/gdkprivate.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- gtkhandlebox.h ../gdk/gdk.h ../gdk/gdkrgb.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtkinvisible.h \ +- gtkmain.h gtksignal.h gtkmarshal.h gtkwindow.h +-gtkhbbox.lo gtkhbbox.o : gtkhbbox.c gtkhbbox.h gtkbbox.h gtkbox.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkcontainer.h gtkenums.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h +-gtkhbox.lo gtkhbox.o : gtkhbox.c gtkhbox.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbox.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkhpaned.lo gtkhpaned.o : gtkhpaned.c gtkhpaned.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkpaned.h gtkcontainer.h gtkenums.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkmain.h gtksignal.h gtkmarshal.h +-gtkhruler.lo gtkhruler.o : gtkhruler.c gtkhruler.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkruler.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h +-gtkhscale.lo gtkhscale.o : gtkhscale.c gtkhscale.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkscale.h gtkrange.h gtkadjustment.h gtkdata.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkwidget.h gtkaccelgroup.h gtkstyle.h gtksignal.h gtkmarshal.h \ +- ../gdk/gdkkeysyms.h +-gtkhscrollbar.lo gtkhscrollbar.o : gtkhscrollbar.c gtkhscrollbar.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkscrollbar.h gtkrange.h gtkadjustment.h \ +- gtkdata.h gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkwidget.h gtkaccelgroup.h gtkstyle.h \ +- gtksignal.h gtkmarshal.h ../gdk/gdkkeysyms.h +-gtkhseparator.lo gtkhseparator.o : gtkhseparator.c gtkhseparator.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkseparator.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkimage.lo gtkimage.o : gtkimage.c gtkcontainer.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkimage.h gtkmisc.h +-gtkinputdialog.lo gtkinputdialog.o : gtkinputdialog.c \ +- ../gdk/gdkkeysyms.h gtkbutton.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbin.h gtkcontainer.h \ +- gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkentry.h gtkeditable.h gtkhbox.h \ +- gtkbox.h gtkhseparator.h gtkseparator.h gtkinputdialog.h \ +- gtkdialog.h gtkwindow.h gtklabel.h gtkmisc.h gtklistitem.h \ +- gtkitem.h gtkmain.h gtkmenu.h gtkmenushell.h gtkmenuitem.h \ +- gtknotebook.h gtkoptionmenu.h gtkbutton.h gtkscrolledwindow.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkviewport.h gtksignal.h gtkmarshal.h gtktable.h gtkvbox.h \ +- gtkintl.h ../config.h +-gtkinvisible.lo gtkinvisible.o : gtkinvisible.c gtksignal.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkmarshal.h gtkinvisible.h \ +- gtkbin.h gtkcontainer.h gtkwidget.h gtkaccelgroup.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h +-gtkitem.lo gtkitem.o : gtkitem.c gtkitem.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtksignal.h \ +- gtkmarshal.h +-gtkitemfactory.lo gtkitemfactory.o : gtkitemfactory.c gtkitemfactory.h \ +- gtkwidget.h ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkmenufactory.h \ +- gtkbindings.h gtksignal.h gtkmarshal.h gtkoptionmenu.h \ +- gtkbutton.h gtkbin.h gtkcontainer.h gtkmenubar.h gtkmenushell.h \ +- gtkmenu.h gtkmenuitem.h gtkitem.h gtkradiomenuitem.h \ +- gtkcheckmenuitem.h gtktearoffmenuitem.h gtkaccellabel.h \ +- gtklabel.h gtkmisc.h ../gdk/gdkkeysyms.h +-gtklabel.lo gtklabel.o : gtklabel.c gtklabel.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkmisc.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h ../gdk/gdkkeysyms.h ../gdk/gdki18n.h +-gtklayout.lo gtklayout.o : gtklayout.c gtklayout.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtksignal.h \ +- gtkmarshal.h gtkprivate.h ../gdk/gdkx.h ../gdk/gdkprivate.h +-gtklist.lo gtklist.o : gtklist.c gtklist.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkcontainer.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtklistitem.h \ +- gtkitem.h gtkbin.h gtklistitem.h gtkmain.h gtksignal.h \ +- gtkmarshal.h gtklabel.h gtkmisc.h +-gtklistitem.lo gtklistitem.o : gtklistitem.c gtkbindings.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtklabel.h gtkmisc.h gtkwidget.h \ +- gtkaccelgroup.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtklistitem.h gtkitem.h gtkbin.h gtkcontainer.h gtklist.h \ +- gtklistitem.h gtksignal.h gtkmarshal.h ../gdk/gdkkeysyms.h +-gtkmain.lo gtkmain.o : gtkmain.c gtkbutton.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtkdnd.h \ +- gtkselection.h gtkfeatures.h gtkhscrollbar.h gtkscrollbar.h \ +- gtkrange.h gtkhseparator.h gtkseparator.h gtkmain.h \ +- gtkpreview.h gtkrc.h gtkscrolledwindow.h gtkhscrollbar.h \ +- gtkvscrollbar.h gtkviewport.h gtkselection.h gtksignal.h \ +- gtkmarshal.h gtktable.h gtktext.h gtkeditable.h gtkvbox.h \ +- gtkbox.h gtkvscrollbar.h gtkwidget.h gtkwindow.h gtkprivate.h \ +- ../gdk/gdki18n.h ../config.h gtkdebug.h gtkintl.h +-gtkmarshal.lo gtkmarshal.o : gtkmarshal.c gtkmarshal.h gtktypeutils.h \ +- gtktypebuiltins.h gtkobject.h gtkarg.h gtkenums.h gtkdebug.h +-gtkmenu.lo gtkmenu.o : gtkmenu.c ../gdk/gdkkeysyms.h gtkbindings.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtklabel.h gtkmisc.h \ +- gtkwidget.h gtkaccelgroup.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkmain.h gtkmenu.h gtkmenushell.h gtkcontainer.h \ +- gtkmenuitem.h gtkitem.h gtkbin.h gtksignal.h gtkmarshal.h \ +- gtkwindow.h +-gtkmenubar.lo gtkmenubar.o : gtkmenubar.c ../gdk/gdkkeysyms.h \ +- gtkbindings.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkmain.h gtkwidget.h gtkaccelgroup.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkmenubar.h gtkmenushell.h gtkcontainer.h \ +- gtkmenuitem.h gtkitem.h gtkbin.h +-gtkmenufactory.lo gtkmenufactory.o : gtkmenufactory.c gtkcheckmenuitem.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkmenuitem.h gtkitem.h gtkbin.h gtkcontainer.h \ +- gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkmenu.h gtkmenushell.h gtkmenubar.h \ +- gtkmenufactory.h gtkmenuitem.h gtksignal.h gtkmarshal.h +-gtkmenuitem.lo gtkmenuitem.o : gtkmenuitem.c gtkaccellabel.h gtklabel.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkmisc.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtkmain.h gtkmenu.h gtkmenushell.h gtkcontainer.h gtkmenubar.h \ +- gtkmenuitem.h gtkitem.h gtkbin.h gtksignal.h gtkmarshal.h +-gtkmenushell.lo gtkmenushell.o : gtkmenushell.c ../gdk/gdkkeysyms.h \ +- gtkbindings.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkmain.h gtkwidget.h gtkaccelgroup.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkmenuitem.h gtkitem.h gtkbin.h gtkcontainer.h \ +- gtktearoffmenuitem.h gtkmenuitem.h gtkmenushell.h gtksignal.h \ +- gtkmarshal.h +-gtkmisc.lo gtkmisc.o : gtkmisc.c gtkcontainer.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkmisc.h +-gtknotebook.lo gtknotebook.o : gtknotebook.c gtknotebook.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtksignal.h \ +- gtkmarshal.h gtkmain.h gtkmenu.h gtkmenushell.h gtkmenuitem.h \ +- gtkitem.h gtkbin.h gtklabel.h gtkmisc.h ../gdk/gdkkeysyms.h \ +- gtkintl.h ../config.h +-gtkobject.lo gtkobject.o : gtkobject.c gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtksignal.h ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkobject.h gtkmarshal.h +-gtkoptionmenu.lo gtkoptionmenu.o : gtkoptionmenu.c gtkmenu.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkmenushell.h gtkcontainer.h gtkwidget.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkmenuitem.h gtkitem.h gtkbin.h \ +- gtkoptionmenu.h gtkbutton.h gtksignal.h gtkmarshal.h \ +- ../gdk/gdkkeysyms.h +-gtkpacker.lo gtkpacker.o : gtkpacker.c gtkpacker.h gtkcontainer.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkpaned.lo gtkpaned.o : gtkpaned.c gtkpaned.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtkhpaned.h \ +- gtkpaned.h +-gtkpixmap.lo gtkpixmap.o : gtkpixmap.c gtkcontainer.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkpixmap.h gtkmisc.h +-gtkplug.lo gtkplug.o : gtkplug.c ../gdk/gdkx.h ../gdk/gdkprivate.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkkeysyms.h \ +- gtkplug.h ../gdk/gdk.h ../gdk/gdkrgb.h gtkwindow.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkbin.h gtkcontainer.h \ +- gtkwidget.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkpreview.lo gtkpreview.o : gtkpreview.c ../gdk/gdkx.h \ +- ../gdk/gdkprivate.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkpreview.h gtkwidget.h ../gdk/gdk.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtksignal.h gtkmarshal.h +-gtkprogress.lo gtkprogress.o : gtkprogress.c gtkprogress.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtksignal.h gtkmarshal.h +-gtkprogressbar.lo gtkprogressbar.o : gtkprogressbar.c ../config.h \ +- gtkprogressbar.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkprogress.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtksignal.h gtkmarshal.h +-gtkradiobutton.lo gtkradiobutton.o : gtkradiobutton.c gtklabel.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkmisc.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtkradiobutton.h gtkcheckbutton.h gtktogglebutton.h gtkbutton.h \ +- gtkbin.h gtkcontainer.h gtksignal.h gtkmarshal.h +-gtkradiomenuitem.lo gtkradiomenuitem.o : gtkradiomenuitem.c \ +- gtkaccellabel.h gtklabel.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkmisc.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkradiomenuitem.h gtkcheckmenuitem.h \ +- gtkmenuitem.h gtkitem.h gtkbin.h gtkcontainer.h +-gtkrange.lo gtkrange.o : gtkrange.c gtkmain.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkrange.h gtksignal.h gtkmarshal.h +-gtkrc.lo gtkrc.o : gtkrc.c gtkrc.h gtkstyle.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkbindings.h gtkthemes.h gtkintl.h ../config.h +-gtkruler.lo gtkruler.o : gtkruler.c gtkruler.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h +-gtkscale.lo gtkscale.o : gtkscale.c gtkcontainer.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkscale.h gtkrange.h +-gtkscrollbar.lo gtkscrollbar.o : gtkscrollbar.c gtkscrollbar.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkrange.h gtkadjustment.h gtkdata.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkwidget.h gtkaccelgroup.h gtkstyle.h +-gtkscrolledwindow.lo gtkscrolledwindow.o : gtkscrolledwindow.c \ +- gtkscrolledwindow.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkhscrollbar.h \ +- gtkscrollbar.h gtkrange.h gtkadjustment.h gtkdata.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkwidget.h gtkaccelgroup.h gtkstyle.h gtkvscrollbar.h \ +- gtkviewport.h gtkbin.h gtkcontainer.h gtksignal.h gtkmarshal.h +-gtkselection.lo gtkselection.o : gtkselection.c ../gdk/gdkx.h \ +- ../gdk/gdkprivate.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- gtkmain.h ../gdk/gdk.h ../gdk/gdkrgb.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkselection.h gtksignal.h gtkmarshal.h +-gtkseparator.lo gtkseparator.o : gtkseparator.c gtkseparator.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkwidget.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h +-gtksignal.lo gtksignal.o : gtksignal.c gtksignal.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkmarshal.h gtkargcollector.c +-gtksocket.lo gtksocket.o : gtksocket.c ../gdk/gdkx.h ../gdk/gdkprivate.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkkeysyms.h \ +- gtkwindow.h ../gdk/gdk.h ../gdk/gdkrgb.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkbin.h gtkcontainer.h gtkwidget.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtksignal.h gtkmarshal.h \ +- gtksocket.h gtkdnd.h gtkselection.h +-gtkspinbutton.lo gtkspinbutton.o : gtkspinbutton.c ../gdk/gdkkeysyms.h \ +- gtkspinbutton.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkentry.h gtkeditable.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkmain.h gtksignal.h gtkmarshal.h +-gtkstatusbar.lo gtkstatusbar.o : gtkstatusbar.c gtkframe.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtklabel.h \ +- gtkmisc.h gtksignal.h gtkmarshal.h gtkstatusbar.h gtkhbox.h \ +- gtkbox.h +-gtkstyle.lo gtkstyle.o : gtkstyle.c gtkgc.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkrc.h \ +- gtkstyle.h gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkwidget.h gtkthemes.h \ +- ../gdk/gdkprivate.h +-gtktable.lo gtktable.o : gtktable.c gtktable.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtktearoffmenuitem.lo gtktearoffmenuitem.o : gtktearoffmenuitem.c \ +- gtkmenu.h ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkmenushell.h gtkcontainer.h gtkwidget.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtksignal.h gtkmarshal.h \ +- gtktearoffmenuitem.h gtkmenuitem.h gtkitem.h gtkbin.h +-gtktext.lo gtktext.o : gtktext.c ../gdk/gdkkeysyms.h ../gdk/gdki18n.h \ +- gtkmain.h ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkwidget.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkselection.h gtksignal.h \ +- gtkmarshal.h gtktext.h gtkeditable.h line-wrap.xbm \ +- line-arrow.xbm +-gtkthemes.lo gtkthemes.o : gtkthemes.c gtkthemes.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkstyle.h gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkmain.h gtkrc.h gtkselection.h \ +- gtksignal.h gtkmarshal.h gtkwidget.h ../config.h gtkintl.h +-gtktipsquery.lo gtktipsquery.o : gtktipsquery.c gtktipsquery.h \ +- gtklabel.h ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkmisc.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtksignal.h gtkmarshal.h gtktooltips.h gtkmain.h gtkintl.h \ +- ../config.h +-gtktogglebutton.lo gtktogglebutton.o : gtktogglebutton.c gtklabel.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkmisc.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtkmain.h gtksignal.h gtkmarshal.h gtktogglebutton.h \ +- gtkbutton.h gtkbin.h gtkcontainer.h +-gtktoolbar.lo gtktoolbar.o : gtktoolbar.c gtkbutton.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbin.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtktogglebutton.h gtkbutton.h gtkradiobutton.h gtkcheckbutton.h \ +- gtktogglebutton.h gtklabel.h gtkmisc.h gtkvbox.h gtkbox.h \ +- gtktoolbar.h gtkpixmap.h gtksignal.h gtkmarshal.h gtktooltips.h +-gtktooltips.lo gtktooltips.o : gtktooltips.c gtkmain.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkwidget.h gtkwindow.h gtkbin.h \ +- gtkcontainer.h gtksignal.h gtkmarshal.h gtkstyle.h \ +- gtktooltips.h +-gtktree.lo gtktree.o : gtktree.c gtktree.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h gtktreeitem.h \ +- gtkitem.h gtkbin.h gtkmain.h gtksignal.h gtkmarshal.h gtklist.h \ +- gtklistitem.h +-gtktreeitem.lo gtktreeitem.o : gtktreeitem.c gtklabel.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkmisc.h \ +- gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkenums.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtktree.h gtkcontainer.h gtktreeitem.h \ +- gtkitem.h gtkbin.h gtkeventbox.h gtkpixmap.h gtkmain.h \ +- gtksignal.h gtkmarshal.h tree_plus.xpm tree_minus.xpm +-gtktypeutils.lo gtktypeutils.o : gtktypeutils.c gtktypeutils.h \ +- gtktypebuiltins.h makeenums.h ../gdk/gdkprivate.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdk.h \ +- ../gdk/gdkrgb.h gtk.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtkenums.h gtkdebug.h gtkaccellabel.h gtklabel.h \ +- gtkmisc.h gtkwidget.h gtkadjustment.h gtkdata.h gtkstyle.h \ +- gtkalignment.h gtkbin.h gtkcontainer.h gtkaspectframe.h \ +- gtkframe.h gtkarrow.h gtkbindings.h gtkbox.h gtkbbox.h \ +- gtkbutton.h gtkcalendar.h gtksignal.h gtkmarshal.h \ +- gtkcheckbutton.h gtktogglebutton.h gtkcheckmenuitem.h \ +- gtkmenuitem.h gtkitem.h gtkclist.h gtkhscrollbar.h \ +- gtkscrollbar.h gtkrange.h gtkvscrollbar.h gtkcolorsel.h \ +- gtkwindow.h gtkvbox.h gtkpreview.h gtkentry.h gtkeditable.h \ +- gtkhbox.h gtkmain.h gtkscale.h gtkhscale.h gtktable.h \ +- gtkeventbox.h gtkcombo.h gtkcompat.h gtkctree.h gtkcurve.h \ +- gtkdrawingarea.h gtkdialog.h gtkdnd.h gtkselection.h \ +- gtkfeatures.h gtkfilesel.h gtkfixed.h gtkfontsel.h \ +- gtknotebook.h gtkgamma.h gtkgc.h gtkhandlebox.h gtkhbbox.h \ +- gtkhpaned.h gtkpaned.h gtkhruler.h gtkruler.h gtkhseparator.h \ +- gtkseparator.h gtkimage.h gtkinputdialog.h gtkitemfactory.h \ +- gtkmenufactory.h gtklayout.h gtklist.h gtklistitem.h gtkmenu.h \ +- gtkmenushell.h gtkmenubar.h gtkoptionmenu.h gtkpacker.h \ +- gtkpixmap.h gtkplug.h gtkprogress.h gtkprogressbar.h \ +- gtkradiobutton.h gtkradiomenuitem.h gtkrc.h gtkscrolledwindow.h \ +- gtkviewport.h gtksocket.h gtkspinbutton.h gtkstatusbar.h \ +- gtktearoffmenuitem.h gtktext.h gtkthemes.h gtktipsquery.h \ +- gtktoolbar.h gtktooltips.h gtktree.h gtktreeitem.h gtkvbbox.h \ +- gtkvpaned.h gtkvruler.h gtkvscale.h gtkvseparator.h \ +- gtkprivate.h gtktypebuiltins_vars.c gtktypebuiltins_evals.c \ +- gtktypebuiltins_ids.c +-gtkvbbox.lo gtkvbbox.o : gtkvbbox.c gtkvbbox.h gtkbbox.h gtkbox.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkcontainer.h gtkenums.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h +-gtkvbox.lo gtkvbox.o : gtkvbox.c gtkvbox.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkbox.h \ +- gtkcontainer.h gtkenums.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkviewport.lo gtkviewport.o : gtkviewport.c gtksignal.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkmarshal.h gtkviewport.h \ +- gtkadjustment.h gtkdata.h gtkbin.h gtkcontainer.h gtkwidget.h \ +- gtkaccelgroup.h gtkstyle.h +-gtkvpaned.lo gtkvpaned.o : gtkvpaned.c gtkvpaned.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkpaned.h gtkcontainer.h gtkenums.h gtkwidget.h \ +- gtkaccelgroup.h gtkobject.h gtkarg.h gtktypeutils.h \ +- gtktypebuiltins.h gtkdebug.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkmain.h gtksignal.h gtkmarshal.h +-gtkvruler.lo gtkvruler.o : gtkvruler.c gtkvruler.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkruler.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h +-gtkvscale.lo gtkvscale.o : gtkvscale.c gtkvscale.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkscale.h gtkrange.h gtkadjustment.h gtkdata.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkwidget.h gtkaccelgroup.h gtkstyle.h gtksignal.h gtkmarshal.h \ +- ../gdk/gdkkeysyms.h +-gtkvscrollbar.lo gtkvscrollbar.o : gtkvscrollbar.c gtkvscrollbar.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkscrollbar.h gtkrange.h gtkadjustment.h \ +- gtkdata.h gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkwidget.h gtkaccelgroup.h gtkstyle.h \ +- gtksignal.h gtkmarshal.h ../gdk/gdkkeysyms.h +-gtkvseparator.lo gtkvseparator.o : gtkvseparator.c gtkvseparator.h \ +- ../gdk/gdk.h ../gdk/gdktypes.h ../gdk/gdkcursors.h \ +- ../gdk/gdkrgb.h gtkseparator.h gtkwidget.h gtkaccelgroup.h \ +- gtkobject.h gtkarg.h gtktypeutils.h gtktypebuiltins.h \ +- gtkenums.h gtkdebug.h gtkadjustment.h gtkdata.h gtkstyle.h +-gtkwidget.lo gtkwidget.o : gtkwidget.c gtkcontainer.h ../gdk/gdk.h \ +- ../gdk/gdktypes.h ../gdk/gdkcursors.h ../gdk/gdkrgb.h \ +- gtkenums.h gtkwidget.h gtkaccelgroup.h gtkobject.h gtkarg.h \ +- gtktypeutils.h gtktypebuiltins.h gtkdebug.h gtkadjustment.h \ +- gtkdata.h gtkstyle.h gtkmain.h gtkrc.h gtkselection.h \ +- gtksignal.h gtkmarshal.h gtkwidget.h gtkwindow.h gtkbin.h \ +- gtkcontainer.h gtkbindings.h gtkprivate.h ../gdk/gdkx.h \ +- ../gdk/gdkprivate.h +-gtkwindow.lo gtkwindow.o : gtkwindow.c ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h ../gdk/gdkkeysyms.h \ +- ../gdk/gdkx.h ../gdk/gdkprivate.h gtkprivate.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkwidget.h gtkaccelgroup.h gtkadjustment.h gtkdata.h \ +- gtkstyle.h gtkrc.h gtksignal.h gtkmarshal.h gtkwindow.h \ +- gtkbin.h gtkcontainer.h gtkbindings.h gtkmain.h +-simple.o: simple.c gtk.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkaccellabel.h gtklabel.h gtkmisc.h gtkwidget.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkalignment.h gtkbin.h \ +- gtkcontainer.h gtkaspectframe.h gtkframe.h gtkarrow.h \ +- gtkbindings.h gtkbox.h gtkbbox.h gtkbutton.h gtkcalendar.h \ +- gtksignal.h gtkmarshal.h gtkcheckbutton.h gtktogglebutton.h \ +- gtkcheckmenuitem.h gtkmenuitem.h gtkitem.h gtkclist.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkcolorsel.h gtkwindow.h gtkvbox.h gtkpreview.h gtkentry.h \ +- gtkeditable.h gtkhbox.h gtkmain.h gtkscale.h gtkhscale.h \ +- gtktable.h gtkeventbox.h gtkcombo.h gtkcompat.h gtkctree.h \ +- gtkcurve.h gtkdrawingarea.h gtkdialog.h gtkdnd.h gtkselection.h \ +- gtkfeatures.h gtkfilesel.h gtkfixed.h gtkfontsel.h \ +- gtknotebook.h gtkgamma.h gtkgc.h gtkhandlebox.h gtkhbbox.h \ +- gtkhpaned.h gtkpaned.h gtkhruler.h gtkruler.h gtkhseparator.h \ +- gtkseparator.h gtkimage.h gtkinputdialog.h gtkitemfactory.h \ +- gtkmenufactory.h gtklayout.h gtklist.h gtklistitem.h gtkmenu.h \ +- gtkmenushell.h gtkmenubar.h gtkoptionmenu.h gtkpacker.h \ +- gtkpixmap.h gtkplug.h gtkprogress.h gtkprogressbar.h \ +- gtkradiobutton.h gtkradiomenuitem.h gtkrc.h gtkscrolledwindow.h \ +- gtkviewport.h gtksocket.h gtkspinbutton.h gtkstatusbar.h \ +- gtktearoffmenuitem.h gtktext.h gtkthemes.h gtktipsquery.h \ +- gtktoolbar.h gtktooltips.h gtktree.h gtktreeitem.h gtkvbbox.h \ +- gtkvpaned.h gtkvruler.h gtkvscale.h gtkvseparator.h \ +- ../gdk/gdkprivate.h +-testdnd.o: testdnd.c gtk.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkaccellabel.h gtklabel.h gtkmisc.h gtkwidget.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkalignment.h gtkbin.h \ +- gtkcontainer.h gtkaspectframe.h gtkframe.h gtkarrow.h \ +- gtkbindings.h gtkbox.h gtkbbox.h gtkbutton.h gtkcalendar.h \ +- gtksignal.h gtkmarshal.h gtkcheckbutton.h gtktogglebutton.h \ +- gtkcheckmenuitem.h gtkmenuitem.h gtkitem.h gtkclist.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkcolorsel.h gtkwindow.h gtkvbox.h gtkpreview.h gtkentry.h \ +- gtkeditable.h gtkhbox.h gtkmain.h gtkscale.h gtkhscale.h \ +- gtktable.h gtkeventbox.h gtkcombo.h gtkcompat.h gtkctree.h \ +- gtkcurve.h gtkdrawingarea.h gtkdialog.h gtkdnd.h gtkselection.h \ +- gtkfeatures.h gtkfilesel.h gtkfixed.h gtkfontsel.h \ +- gtknotebook.h gtkgamma.h gtkgc.h gtkhandlebox.h gtkhbbox.h \ +- gtkhpaned.h gtkpaned.h gtkhruler.h gtkruler.h gtkhseparator.h \ +- gtkseparator.h gtkimage.h gtkinputdialog.h gtkitemfactory.h \ +- gtkmenufactory.h gtklayout.h gtklist.h gtklistitem.h gtkmenu.h \ +- gtkmenushell.h gtkmenubar.h gtkoptionmenu.h gtkpacker.h \ +- gtkpixmap.h gtkplug.h gtkprogress.h gtkprogressbar.h \ +- gtkradiobutton.h gtkradiomenuitem.h gtkrc.h gtkscrolledwindow.h \ +- gtkviewport.h gtksocket.h gtkspinbutton.h gtkstatusbar.h \ +- gtktearoffmenuitem.h gtktext.h gtkthemes.h gtktipsquery.h \ +- gtktoolbar.h gtktooltips.h gtktree.h gtktreeitem.h gtkvbbox.h \ +- gtkvpaned.h gtkvruler.h gtkvscale.h gtkvseparator.h +-testgtk.o: testgtk.c gtk.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkaccellabel.h gtklabel.h gtkmisc.h gtkwidget.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkalignment.h gtkbin.h \ +- gtkcontainer.h gtkaspectframe.h gtkframe.h gtkarrow.h \ +- gtkbindings.h gtkbox.h gtkbbox.h gtkbutton.h gtkcalendar.h \ +- gtksignal.h gtkmarshal.h gtkcheckbutton.h gtktogglebutton.h \ +- gtkcheckmenuitem.h gtkmenuitem.h gtkitem.h gtkclist.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkcolorsel.h gtkwindow.h gtkvbox.h gtkpreview.h gtkentry.h \ +- gtkeditable.h gtkhbox.h gtkmain.h gtkscale.h gtkhscale.h \ +- gtktable.h gtkeventbox.h gtkcombo.h gtkcompat.h gtkctree.h \ +- gtkcurve.h gtkdrawingarea.h gtkdialog.h gtkdnd.h gtkselection.h \ +- gtkfeatures.h gtkfilesel.h gtkfixed.h gtkfontsel.h \ +- gtknotebook.h gtkgamma.h gtkgc.h gtkhandlebox.h gtkhbbox.h \ +- gtkhpaned.h gtkpaned.h gtkhruler.h gtkruler.h gtkhseparator.h \ +- gtkseparator.h gtkimage.h gtkinputdialog.h gtkitemfactory.h \ +- gtkmenufactory.h gtklayout.h gtklist.h gtklistitem.h gtkmenu.h \ +- gtkmenushell.h gtkmenubar.h gtkoptionmenu.h gtkpacker.h \ +- gtkpixmap.h gtkplug.h gtkprogress.h gtkprogressbar.h \ +- gtkradiobutton.h gtkradiomenuitem.h gtkrc.h gtkscrolledwindow.h \ +- gtkviewport.h gtksocket.h gtkspinbutton.h gtkstatusbar.h \ +- gtktearoffmenuitem.h gtktext.h gtkthemes.h gtktipsquery.h \ +- gtktoolbar.h gtktooltips.h gtktree.h gtktreeitem.h gtkvbbox.h \ +- gtkvpaned.h gtkvruler.h gtkvscale.h gtkvseparator.h \ +- ../gdk/gdkx.h ../gdk/gdkprivate.h ../gdk/gdkkeysyms.h \ +- circles.xbm +-testinput.o: testinput.c gtk.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkaccellabel.h gtklabel.h gtkmisc.h gtkwidget.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkalignment.h gtkbin.h \ +- gtkcontainer.h gtkaspectframe.h gtkframe.h gtkarrow.h \ +- gtkbindings.h gtkbox.h gtkbbox.h gtkbutton.h gtkcalendar.h \ +- gtksignal.h gtkmarshal.h gtkcheckbutton.h gtktogglebutton.h \ +- gtkcheckmenuitem.h gtkmenuitem.h gtkitem.h gtkclist.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkcolorsel.h gtkwindow.h gtkvbox.h gtkpreview.h gtkentry.h \ +- gtkeditable.h gtkhbox.h gtkmain.h gtkscale.h gtkhscale.h \ +- gtktable.h gtkeventbox.h gtkcombo.h gtkcompat.h gtkctree.h \ +- gtkcurve.h gtkdrawingarea.h gtkdialog.h gtkdnd.h gtkselection.h \ +- gtkfeatures.h gtkfilesel.h gtkfixed.h gtkfontsel.h \ +- gtknotebook.h gtkgamma.h gtkgc.h gtkhandlebox.h gtkhbbox.h \ +- gtkhpaned.h gtkpaned.h gtkhruler.h gtkruler.h gtkhseparator.h \ +- gtkseparator.h gtkimage.h gtkinputdialog.h gtkitemfactory.h \ +- gtkmenufactory.h gtklayout.h gtklist.h gtklistitem.h gtkmenu.h \ +- gtkmenushell.h gtkmenubar.h gtkoptionmenu.h gtkpacker.h \ +- gtkpixmap.h gtkplug.h gtkprogress.h gtkprogressbar.h \ +- gtkradiobutton.h gtkradiomenuitem.h gtkrc.h gtkscrolledwindow.h \ +- gtkviewport.h gtksocket.h gtkspinbutton.h gtkstatusbar.h \ +- gtktearoffmenuitem.h gtktext.h gtkthemes.h gtktipsquery.h \ +- gtktoolbar.h gtktooltips.h gtktree.h gtktreeitem.h gtkvbbox.h \ +- gtkvpaned.h gtkvruler.h gtkvscale.h gtkvseparator.h +-testrgb.o: testrgb.c gtk.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkaccellabel.h gtklabel.h gtkmisc.h gtkwidget.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkalignment.h gtkbin.h \ +- gtkcontainer.h gtkaspectframe.h gtkframe.h gtkarrow.h \ +- gtkbindings.h gtkbox.h gtkbbox.h gtkbutton.h gtkcalendar.h \ +- gtksignal.h gtkmarshal.h gtkcheckbutton.h gtktogglebutton.h \ +- gtkcheckmenuitem.h gtkmenuitem.h gtkitem.h gtkclist.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkcolorsel.h gtkwindow.h gtkvbox.h gtkpreview.h gtkentry.h \ +- gtkeditable.h gtkhbox.h gtkmain.h gtkscale.h gtkhscale.h \ +- gtktable.h gtkeventbox.h gtkcombo.h gtkcompat.h gtkctree.h \ +- gtkcurve.h gtkdrawingarea.h gtkdialog.h gtkdnd.h gtkselection.h \ +- gtkfeatures.h gtkfilesel.h gtkfixed.h gtkfontsel.h \ +- gtknotebook.h gtkgamma.h gtkgc.h gtkhandlebox.h gtkhbbox.h \ +- gtkhpaned.h gtkpaned.h gtkhruler.h gtkruler.h gtkhseparator.h \ +- gtkseparator.h gtkimage.h gtkinputdialog.h gtkitemfactory.h \ +- gtkmenufactory.h gtklayout.h gtklist.h gtklistitem.h gtkmenu.h \ +- gtkmenushell.h gtkmenubar.h gtkoptionmenu.h gtkpacker.h \ +- gtkpixmap.h gtkplug.h gtkprogress.h gtkprogressbar.h \ +- gtkradiobutton.h gtkradiomenuitem.h gtkrc.h gtkscrolledwindow.h \ +- gtkviewport.h gtksocket.h gtkspinbutton.h gtkstatusbar.h \ +- gtktearoffmenuitem.h gtktext.h gtkthemes.h gtktipsquery.h \ +- gtktoolbar.h gtktooltips.h gtktree.h gtktreeitem.h gtkvbbox.h \ +- gtkvpaned.h gtkvruler.h gtkvscale.h gtkvseparator.h +-testselection.o: testselection.c gtk.h ../gdk/gdk.h ../gdk/gdktypes.h \ +- ../gdk/gdkcursors.h ../gdk/gdkrgb.h gtkaccelgroup.h gtkobject.h \ +- gtkarg.h gtktypeutils.h gtktypebuiltins.h gtkenums.h gtkdebug.h \ +- gtkaccellabel.h gtklabel.h gtkmisc.h gtkwidget.h \ +- gtkadjustment.h gtkdata.h gtkstyle.h gtkalignment.h gtkbin.h \ +- gtkcontainer.h gtkaspectframe.h gtkframe.h gtkarrow.h \ +- gtkbindings.h gtkbox.h gtkbbox.h gtkbutton.h gtkcalendar.h \ +- gtksignal.h gtkmarshal.h gtkcheckbutton.h gtktogglebutton.h \ +- gtkcheckmenuitem.h gtkmenuitem.h gtkitem.h gtkclist.h \ +- gtkhscrollbar.h gtkscrollbar.h gtkrange.h gtkvscrollbar.h \ +- gtkcolorsel.h gtkwindow.h gtkvbox.h gtkpreview.h gtkentry.h \ +- gtkeditable.h gtkhbox.h gtkmain.h gtkscale.h gtkhscale.h \ +- gtktable.h gtkeventbox.h gtkcombo.h gtkcompat.h gtkctree.h \ +- gtkcurve.h gtkdrawingarea.h gtkdialog.h gtkdnd.h gtkselection.h \ +- gtkfeatures.h gtkfilesel.h gtkfixed.h gtkfontsel.h \ +- gtknotebook.h gtkgamma.h gtkgc.h gtkhandlebox.h gtkhbbox.h \ +- gtkhpaned.h gtkpaned.h gtkhruler.h gtkruler.h gtkhseparator.h \ +- gtkseparator.h gtkimage.h gtkinputdialog.h gtkitemfactory.h \ +- gtkmenufactory.h gtklayout.h gtklist.h gtklistitem.h gtkmenu.h \ +- gtkmenushell.h gtkmenubar.h gtkoptionmenu.h gtkpacker.h \ +- gtkpixmap.h gtkplug.h gtkprogress.h gtkprogressbar.h \ +- gtkradiobutton.h gtkradiomenuitem.h gtkrc.h gtkscrolledwindow.h \ +- gtkviewport.h gtksocket.h gtkspinbutton.h gtkstatusbar.h \ +- gtktearoffmenuitem.h gtktext.h gtkthemes.h gtktipsquery.h \ +- gtktoolbar.h gtktooltips.h gtktree.h gtktreeitem.h gtkvbbox.h \ +- gtkvpaned.h gtkvruler.h gtkvscale.h gtkvseparator.h + ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp + info-am: + info: info-am + dvi-am: +@@ -1384,19 +601,20 @@ + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \ + mostlyclean-libtool mostlyclean-noinstPROGRAMS \ +- mostlyclean-tags mostlyclean-generic ++ mostlyclean-tags mostlyclean-depend mostlyclean-generic + + mostlyclean: mostlyclean-am + + clean-am: clean-libLTLIBRARIES clean-compile clean-libtool \ +- clean-noinstPROGRAMS clean-tags clean-generic \ +- mostlyclean-am ++ clean-noinstPROGRAMS clean-tags clean-depend \ ++ clean-generic mostlyclean-am + + clean: clean-am + + distclean-am: distclean-libLTLIBRARIES distclean-compile \ + distclean-libtool distclean-noinstPROGRAMS \ +- distclean-tags distclean-generic clean-am ++ distclean-tags distclean-depend distclean-generic \ ++ clean-am + -rm -f libtool + + distclean: distclean-am +@@ -1404,7 +622,8 @@ + maintainer-clean-am: maintainer-clean-libLTLIBRARIES \ + maintainer-clean-compile maintainer-clean-libtool \ + maintainer-clean-noinstPROGRAMS maintainer-clean-tags \ +- maintainer-clean-generic distclean-am ++ maintainer-clean-depend maintainer-clean-generic \ ++ distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +@@ -1420,10 +639,11 @@ + maintainer-clean-noinstPROGRAMS uninstall-gtkconfDATA \ + install-gtkconfDATA uninstall-libgtkincludeHEADERS \ + install-libgtkincludeHEADERS tags mostlyclean-tags distclean-tags \ +-clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +-check-am installcheck-am installcheck install-exec-am install-exec \ +-install-data-local install-data-am install-data install-am install \ +-uninstall-local uninstall-am uninstall all-redirect all-am all \ ++clean-tags maintainer-clean-tags distdir mostlyclean-depend \ ++distclean-depend clean-depend maintainer-clean-depend info-am info \ ++dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ ++install-exec install-data-local install-data-am install-data install-am \ ++install uninstall-local uninstall-am uninstall all-redirect all-am all \ + installdirs mostlyclean-generic distclean-generic clean-generic \ + maintainer-clean-generic clean mostlyclean distclean maintainer-clean + +--- gtk+1.2-1.2.10.orig/gtk/Makefile.am ++++ gtk+1.2-1.2.10/gtk/Makefile.am +@@ -31,8 +31,8 @@ + @x_ldflags@ \ + @x_libs@ \ + -lm \ ++ $(top_builddir)/gdk/libgdk.la \ + @STRIP_END@ +-# $(top_builddir)/gdk/libgdk.la + + + # +@@ -374,10 +374,12 @@ + + + gtkconfdir = $(sysconfdir)/gtk +-gtkconf_DATA = gtkrc.az gtkrc.el gtkrc.eo gtkrc.he gtkrc.hy gtkrc.ja \ +- gtkrc.ko gtkrc.ru gtkrc.tr gtkrc.th gtkrc.uk gtkrc.iso-8859-2 \ +- gtkrc.iso-8859-5 gtkrc.iso-8859-13 gtkrc.iso-8859-14 \ +- gtkrc.iso-8859-15 gtkrc.zh_CN gtkrc.zh_TW.big5 \ ++gtkconf_DATA = gtkrc.az gtkrc.he gtkrc.hy gtkrc.ja \ ++ gtkrc.ko gtkrc.ru gtkrc.th gtkrc.uk \ ++ gtkrc.utf-8 gtkrc.iso-8859-2 \ ++ gtkrc.iso-8859-3 gtkrc.iso-8859-5 gtkrc.iso-8859-7 \ ++ gtkrc.iso-8859-9 gtkrc.iso-8859-13 gtkrc.iso-8859-14 \ ++ gtkrc.iso-8859-15 gtkrc.zh_CN gtkrc.zh_TW \ + gtkrc.ka_GE.georgianacademy gtkrc.ka_GE.georgianps \ + gtkrc.vi_VN.tcvn gtkrc.vi_VN.viscii gtkrc.cp1251 gtkrc.cp1255 + +--- gtk+1.2-1.2.10.orig/gtk/gtkentry.c ++++ gtk+1.2-1.2.10/gtk/gtkentry.c +@@ -2280,11 +2280,13 @@ + gint start, + gint end) + { +- gint length = GTK_ENTRY (editable)->text_length; ++ gint length; + + g_return_if_fail (editable != NULL); + g_return_if_fail (GTK_IS_ENTRY (editable)); + ++ length = GTK_ENTRY (editable)->text_length; ++ + if (end < 0) + end = length; + +--- gtk+1.2-1.2.10.orig/gtk/gtkfilesel.c ++++ gtk+1.2-1.2.10/gtk/gtkfilesel.c +@@ -325,7 +325,8 @@ + + static void gtk_file_selection_populate (GtkFileSelection *fs, + gchar *rel_path, +- gint try_complete); ++ gboolean try_complete, ++ gboolean reset_entry); + static void gtk_file_selection_abort (GtkFileSelection *fs); + + static void gtk_file_selection_update_history_menu (GtkFileSelection *fs, +@@ -522,7 +523,7 @@ + } + else + { +- gtk_file_selection_populate (filesel, "", FALSE); ++ gtk_file_selection_populate (filesel, "", FALSE, TRUE); + } + + gtk_widget_grab_focus (filesel->selection_entry); +@@ -637,7 +638,7 @@ + name = last_slash + 1; + } + +- gtk_file_selection_populate (filesel, buf, FALSE); ++ gtk_file_selection_populate (filesel, buf, FALSE, TRUE); + + if (filesel->selection_entry) + gtk_entry_set_text (GTK_ENTRY (filesel->selection_entry), name); +@@ -673,7 +674,7 @@ + + if (filesel->selection_entry) + gtk_entry_set_text (GTK_ENTRY (filesel->selection_entry), pattern); +- gtk_file_selection_populate (filesel, (gchar*) pattern, TRUE); ++ gtk_file_selection_populate (filesel, (gchar*) pattern, TRUE, TRUE); + } + + static void +@@ -806,7 +807,7 @@ + g_free (full_path); + + gtk_widget_destroy (fs->fileop_dialog); +- gtk_file_selection_populate (fs, "", FALSE); ++ gtk_file_selection_populate (fs, "", FALSE, FALSE); + } + + static void +@@ -903,7 +904,7 @@ + g_free (full_path); + + gtk_widget_destroy (fs->fileop_dialog); +- gtk_file_selection_populate (fs, "", FALSE); ++ gtk_file_selection_populate (fs, "", FALSE, TRUE); + } + + static void +@@ -1009,8 +1010,9 @@ + g_free (new_filename); + g_free (old_filename); + ++ gtk_file_selection_populate (fs, "", FALSE, FALSE); ++ gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), file); + gtk_widget_destroy (fs->fileop_dialog); +- gtk_file_selection_populate (fs, "", FALSE); + } + + static void +@@ -1112,7 +1114,7 @@ + + text = g_strdup (text); + +- gtk_file_selection_populate (fs, text, TRUE); ++ gtk_file_selection_populate (fs, text, TRUE, TRUE); + + g_free (text); + +@@ -1124,7 +1126,6 @@ + return FALSE; + } + +- + static void + gtk_file_selection_history_callback (GtkWidget *widget, gpointer data) + { +@@ -1142,7 +1143,7 @@ + + if (callback_arg->menu_item == widget) + { +- gtk_file_selection_populate (fs, callback_arg->directory, FALSE); ++ gtk_file_selection_populate (fs, callback_arg->directory, FALSE, FALSE); + break; + } + +@@ -1272,7 +1273,7 @@ + gpointer user_data) + { + GtkFileSelection *fs = NULL; +- gchar *filename, *temp = NULL; ++ gchar *filename = NULL; + + g_return_if_fail (GTK_IS_CLIST (widget)); + +@@ -1280,39 +1281,23 @@ + g_return_if_fail (fs != NULL); + g_return_if_fail (GTK_IS_FILE_SELECTION (fs)); + +- gtk_clist_get_text (GTK_CLIST (fs->dir_list), row, 0, &temp); +- filename = g_strdup (temp); +- +- if (filename) +- { +- if (bevent) +- switch (bevent->type) +- { +- case GDK_2BUTTON_PRESS: +- gtk_file_selection_populate (fs, filename, FALSE); +- break; +- +- default: +- gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); +- break; +- } +- else +- gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); +- +- g_free (filename); +- } ++ gtk_clist_get_text (GTK_CLIST (fs->dir_list), row, 0, &filename); ++ ++ if (filename && bevent && bevent->type == GDK_2BUTTON_PRESS) ++ gtk_file_selection_populate (fs, filename, FALSE, FALSE); + } + + static void + gtk_file_selection_populate (GtkFileSelection *fs, + gchar *rel_path, +- gint try_complete) ++ gboolean try_complete, ++ gboolean reset_entry) + { + CompletionState *cmpl_state; + PossibleCompletion* poss; + gchar* filename; + gint row; +- gchar* rem_path = rel_path; ++ gchar* rem_path; + gchar* sel_text; + gchar* text[2]; + gint did_recurse = FALSE; +@@ -1323,6 +1308,8 @@ + + g_return_if_fail (fs != NULL); + g_return_if_fail (GTK_IS_FILE_SELECTION (fs)); ++ ++ rem_path = rel_path = g_strdup (rel_path); + + cmpl_state = (CompletionState*) fs->cmpl_state; + poss = cmpl_completion_matches (rel_path, &rem_path, cmpl_state); +@@ -1422,7 +1409,7 @@ + + did_recurse = TRUE; + +- gtk_file_selection_populate (fs, dir_name, TRUE); ++ gtk_file_selection_populate (fs, dir_name, FALSE, TRUE); + + g_free (dir_name); + } +@@ -1441,7 +1428,7 @@ + gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), rem_path); + } + } +- else ++ else if (reset_entry) + { + if (fs->selection_entry) + gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), ""); +@@ -1466,8 +1453,9 @@ + { + gtk_file_selection_update_history_menu (fs, cmpl_reference_position (cmpl_state)); + } +- + } ++ ++ g_free (rel_path); + } + + static void +--- gtk+1.2-1.2.10.orig/gtk/gtkfontsel.c ++++ gtk+1.2-1.2.10/gtk/gtkfontsel.c +@@ -1609,9 +1609,11 @@ + + if (found) + { +- fontsel->size = best_size; +- gtk_clist_moveto(GTK_CLIST(fontsel->size_clist), best_row, -1, 0.5, 0); +- gtk_clist_select_row(GTK_CLIST(fontsel->size_clist), best_row, 0); ++ if (best_size != fontsel->selected_size) { ++ fontsel->size = best_size; ++ gtk_clist_moveto(GTK_CLIST(fontsel->size_clist), best_row, -1, 0.5, 0); ++ gtk_clist_select_row(GTK_CLIST(fontsel->size_clist), best_row, 0); ++ } + } + else + { +--- gtk+1.2-1.2.10.orig/gtk/gtkrc.c ++++ gtk+1.2-1.2.10/gtk/gtkrc.c +@@ -24,6 +24,7 @@ + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + */ + ++#include <config.h> + #include <X11/Xlocale.h> /* so we get the right setlocale */ + #include <ctype.h> + #include <unistd.h> +@@ -33,6 +34,9 @@ + #include <string.h> + #include <stdio.h> + #include <stdlib.h> ++#ifdef HAVE_CODESET ++#include <langinfo.h> ++#endif + + #include "gtkrc.h" + #include "gtkbindings.h" +@@ -440,7 +444,7 @@ + void + gtk_rc_init (void) + { +- static gchar *locale_suffixes[3]; ++ static gchar *locale_suffixes[8]; + static gint n_locale_suffixes = 0; + + gint i, j; +@@ -449,9 +453,7 @@ + + if (!initted) + { +- gint length; +- +- char *locale = setlocale (LC_CTYPE, NULL); ++ char *locale = g_strdup (setlocale (LC_CTYPE, NULL)); + char *p; + + initted = TRUE; +@@ -470,39 +472,93 @@ + * We normalize the charset into a standard form, + * which has all '-' and '_' characters removed, + * and is lowercase. ++ * ++ * the search is done in that order: ++ * gtkrc.ll_cc.lowercasecodeset ++ * gtkrc.ll_cc.normalizedcodeset ++ * gtkrc.ll.lowercasecodeset ++ * gtkrc.ll.normalizedcodeset ++ * gtkrc.lowercasecodeset ++ * gtkrc.normalizedcodeset ++ * gtkrc.ll_cc ++ * gtkrc.ll ++ * + */ +- gchar *normalized_locale; ++ char *codeset = NULL; ++ char *normalized_codeset = NULL; ++ char *cc = NULL; ++ char *ll; ++ char *tmp = NULL; + + p = strchr (locale, '@'); +- length = p ? (p -locale) : strlen (locale); ++ if (p) ++ *p = '\0'; + ++#ifdef HAVE_CODESET ++ codeset = nl_langinfo (CODESET); ++#endif + p = strchr (locale, '.'); ++ if ((codeset==NULL) && (p)) ++ codeset = p+1; + if (p) +- { +- gchar *tmp1 = g_strndup (locale, p - locale + 1); +- gchar *tmp2 = _gtk_normalize_codeset (p + 1, length - (p - locale + 1)); +- +- normalized_locale = g_strconcat (tmp1, tmp2, NULL); +- g_free (tmp1); +- g_free (tmp2); +- +- locale_suffixes[n_locale_suffixes++] = g_strdup (normalized_locale); +- length = p - locale; +- } +- else +- normalized_locale = g_strndup (locale, length); ++ *p = '\0'; + +- p = strchr (normalized_locale, '_'); +- if (p) ++ if (codeset) + { +- locale_suffixes[n_locale_suffixes++] = g_strndup (normalized_locale, length); +- length = p - normalized_locale; ++ /* if codeset is the result of nl_langinfo() it is ++ * read-only so we need to copy it to a rw place */ ++ tmp = g_strdup(codeset); ++ p = tmp; ++ ++ while (*p) ++ { ++ /* tolower not used, because some locales are not ++ * compatible with C locale in lowercasing ascii */ ++ if (*p >= 'A' && *p <= 'Z') ++ *p = (*p)-'A'+'a'; ++ p++; ++ } ++ codeset = tmp; ++ normalized_codeset = ++ _gtk_normalize_codeset(codeset, strlen(codeset)); ++ if (strcmp(normalized_codeset,codeset) == 0) ++ normalized_codeset = NULL; + } +- +- locale_suffixes[n_locale_suffixes++] = g_strndup (normalized_locale, length); + +- g_free (normalized_locale); ++ p = strchr (locale, '_'); ++ if (p) { ++ cc = p+1; ++ *p = '\0'; ++ } ++ ++ ll = locale; ++ ++ if (cc && codeset) ++ locale_suffixes[n_locale_suffixes++] = ++ g_strdup ( g_strconcat(ll,"_",cc,".",codeset,NULL)); ++ if (cc && normalized_codeset) ++ locale_suffixes[n_locale_suffixes++] = ++ g_strdup ( g_strconcat(ll,"_",cc,".",normalized_codeset,NULL)); ++ if (codeset) ++ locale_suffixes[n_locale_suffixes++] = ++ g_strdup ( g_strconcat(ll,".",codeset,NULL)); ++ if (normalized_codeset) ++ locale_suffixes[n_locale_suffixes++] = ++ g_strdup ( g_strconcat(ll,".",normalized_codeset,NULL)); ++ if (codeset) ++ locale_suffixes[n_locale_suffixes++] = ++ g_strdup ( codeset ); ++ if (normalized_codeset) ++ locale_suffixes[n_locale_suffixes++] = ++ g_strdup ( normalized_codeset ); ++ if (cc) ++ locale_suffixes[n_locale_suffixes++] = ++ g_strdup ( g_strconcat(ll,"_",cc,NULL)); ++ locale_suffixes[n_locale_suffixes++] = g_strdup ( ll ); ++ ++ if (tmp) g_free (tmp); + } ++ g_free (locale); + } + + i = 0; +--- gtk+1.2-1.2.10.orig/gtk/gtkstyle.c ++++ gtk+1.2-1.2.10/gtk/gtkstyle.c +@@ -348,8 +348,9 @@ + new_style->bg[i] = style->bg[i]; + new_style->text[i] = style->text[i]; + new_style->base[i] = style->base[i]; +- +- new_style->bg_pixmap[i] = style->bg_pixmap[i]; ++ ++ if (style->bg_pixmap[i] && !(style->rc_style && style->rc_style->bg_pixmap_name[i])) ++ new_style->bg_pixmap[i] = gdk_pixmap_ref (style->bg_pixmap[i]); + } + + gdk_font_unref (new_style->font); +--- gtk+1.2-1.2.10.orig/gtk/gtkwindow.c ++++ gtk+1.2-1.2.10/gtk/gtkwindow.c +@@ -859,13 +859,60 @@ + GTK_OBJECT_CLASS(parent_class)->finalize (object); + } + ++ ++static void ++reread_rc_files () ++{ ++ if (gtk_rc_reparse_all ()) ++ { ++ /* If the above returned true, some of our RC files are out ++ * of date, so we need to reset all our widgets. Our other ++ * toplevel windows will also get the message, but by ++ * then, the RC file will up to date, so we have to tell ++ * them now. ++ */ ++ GList *toplevels; ++ ++ toplevels = gtk_container_get_toplevels(); ++ while (toplevels) ++ { ++ gtk_widget_reset_rc_styles (toplevels->data); ++ toplevels = toplevels->next; ++ } ++ } ++} ++ + static void + gtk_window_show (GtkWidget *widget) + { + GtkWindow *window = GTK_WINDOW (widget); + GtkContainer *container = GTK_CONTAINER (window); + gboolean need_resize; ++ GList *toplevels; ++ gboolean had_visible = FALSE; + ++ /* If we have no windows shown at this point, then check for ++ * theme changes before showing the window. We really should ++ * be checking realized, not shown, but shown => realized, ++ * and checking in realize might cause reentrancy problems. ++ * ++ * Plus, this allows us to get the new size right before ++ * realizing. ++ */ ++ toplevels = gtk_container_get_toplevels (); ++ while (toplevels) ++ { ++ if (GTK_WIDGET_VISIBLE (toplevels->data)) ++ { ++ had_visible = TRUE; ++ break; ++ } ++ toplevels = toplevels->next; ++ } ++ ++ if (!had_visible) ++ reread_rc_files (); ++ + GTK_WIDGET_SET_FLAGS (widget, GTK_VISIBLE); + + need_resize = container->need_resize || !GTK_WIDGET_REALIZED (widget); +@@ -985,7 +1032,13 @@ + break; + case EnterNotify: + case LeaveNotify: +- if (xev->xcrossing.detail != NotifyInferior && ++ /* We only track the actual destination of keyboard events for real ++ * toplevels, not for embedded toplevels such as GtkPlug. The reason for ++ * this is that GtkPlug redirects events so the widget may effectively not ++ * have the focus even if it actually has the focus. ++ */ ++ if (gdk_window_get_parent (GTK_WIDGET (window)->window) == GDK_ROOT_PARENT () && ++ xev->xcrossing.detail != NotifyInferior && + xev->xcrossing.focus && !window->window_has_focus) + { + window->window_has_pointer_focus = (xev->xany.type == EnterNotify) ? TRUE : FALSE; +@@ -1474,23 +1527,7 @@ + } + } + +- if (gtk_rc_reparse_all ()) +- { +- /* If the above returned true, some of our RC files are out +- * of date, so we need to reset all our widgets. Our other +- * toplevel windows will also get the message, but by +- * then, the RC file will up to date, so we have to tell +- * them now. +- */ +- GList *toplevels; +- +- toplevels = gtk_container_get_toplevels(); +- while (toplevels) +- { +- gtk_widget_reset_rc_styles (toplevels->data); +- toplevels = toplevels->next; +- } +- } ++ reread_rc_files (); + } + + static gint +--- gtk+1.2-1.2.10.orig/gtk/gtkrc.zh_CN ++++ gtk+1.2-1.2.10/gtk/gtkrc.zh_CN +@@ -7,7 +7,7 @@ + # + + style "gtk-default-zh-cn" { +- fontset = "-adobe-helvetica-medium-r-normal--16-*-*-*-*-*-iso8859-1,\ ++ fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-*-medium-r-normal--16-*-*-*-*-*-gb2312.1980-0,*-r-*" + } + class "GtkWidget" style "gtk-default-zh-cn" +--- gtk+1.2-1.2.10.orig/gtk/gtkrc.zh_TW ++++ gtk+1.2-1.2.10/gtk/gtkrc.zh_TW +@@ -0,0 +1,18 @@ ++# $(gtkconfigdir)/gtkrc.zh_TW ++# ++# This file defines the fontsets for Chinese language (ch) using ++# the traditional chinese Big5 encoding as used in Taiwan (TW) ++# ++# 1999, Pablo Saratxaga <pablo@mandrakesoft.com> ++# ++ ++# IMPORTANT NOTE: The name of this file *MUST* be "gtkrc.zh_TW.big5" ++# the lowercasing of "big5" is done on purpose, if you change it it won't work ++ ++style "gtk-default-zh-tw" { ++ fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ ++ -taipei-*-medium-r-normal--*-*-*-*-*-*-big5-0,\ ++ -*-*-medium-r-normal--16-*-*-*-*-*-big5-0,*-r-*" ++} ++class "GtkWidget" style "gtk-default-zh-tw" ++ +--- gtk+1.2-1.2.10.orig/gtk/gtkrc.utf-8 ++++ gtk+1.2-1.2.10/gtk/gtkrc.utf-8 +@@ -0,0 +1,7 @@ ++style "default-text" { ++ fontset = "-*-arial-medium-r-normal--*-120-*-*-*-*-iso10646-1,\ ++ -*-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" ++} ++ ++class "GtkWidget" style "default-text" ++ +--- gtk+1.2-1.2.10.orig/gtk/gtkrc.iso-8859-3 ++++ gtk+1.2-1.2.10/gtk/gtkrc.iso-8859-3 +@@ -0,0 +1,8 @@ ++style "gtk-default-eo" { ++ fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ ++ -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ ++ -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-3,\ ++ -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-3,*-r-*" ++} ++class "GtkWidget" style "gtk-default-eo" ++ +--- gtk+1.2-1.2.10.orig/gtk/gtkrc.iso-8859-7 ++++ gtk+1.2-1.2.10/gtk/gtkrc.iso-8859-7 +@@ -0,0 +1,8 @@ ++style "gtk-default-el" { ++ fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ ++ -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ ++ -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-7,\ ++ -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-7,*-r-*" ++} ++class "GtkWidget" style "gtk-default-el" ++ +--- gtk+1.2-1.2.10.orig/gtk/gtkrc.iso-8859-9 ++++ gtk+1.2-1.2.10/gtk/gtkrc.iso-8859-9 +@@ -0,0 +1,8 @@ ++style "gtk-default-tr" { ++ fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ ++ -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ ++ -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-9,\ ++ -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-9,*-r-*" ++} ++class "GtkWidget" style "gtk-default-tr" ++ +--- gtk+1.2-1.2.10.orig/docs/Makefile.in ++++ gtk+1.2-1.2.10/docs/Makefile.in +@@ -1,6 +1,6 @@ +-# Makefile.in generated automatically by automake 1.4 from Makefile.am ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am + +-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -66,6 +66,8 @@ + CC = @CC@ + DATADIRNAME = @DATADIRNAME@ + DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ + GDK_WLIBS = @GDK_WLIBS@ + GENCAT = @GENCAT@ + GLIB_CFLAGS = @GLIB_CFLAGS@ +@@ -101,12 +103,14 @@ + MAKEINFO = @MAKEINFO@ + MKINSTALLDIRS = @MKINSTALLDIRS@ + OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ + PACKAGE = @PACKAGE@ + PERL = @PERL@ + POFILES = @POFILES@ + POSUB = @POSUB@ + RANLIB = @RANLIB@ + REBUILD = @REBUILD@ ++STRIP = @STRIP@ + STRIP_BEGIN = @STRIP_BEGIN@ + STRIP_DUMMY = @STRIP_DUMMY@ + STRIP_END = @STRIP_END@ +@@ -138,7 +142,7 @@ + TUTORIAL_IT_FILES = html/gtk_tut_it.html html/gtk_tut_it-1.html html/gtk_tut_it-2.html html/gtk_tut_it-3.html html/gtk_tut_it-4.html html/gtk_tut_it-5.html html/gtk_tut_it-6.html html/gtk_tut_it-7.html html/gtk_tut_it-8.html html/gtk_tut_it-9.html html/gtk_tut_it-10.html html/gtk_tut_it-11.html html/gtk_tut_it-12.html html/gtk_tut_it-13.html html/gtk_tut_it-14.html html/gtk_tut_it-15.html html/gtk_tut_it-16.html html/gtk_tut_it-17.html html/gtk_tut_it-18.html html/gtk_tut_it-19.html html/gtk_tut_it-20.html html/gtk_tut_it-21.html html/gtk_tut_it-22.html html/gtk_tut_it-23.html html/gtk_tut_it-24.html text/gtk_tut_it.txt + + +-FAQ_FILES = html/gtkfaq.html html/gtkfaq-1.html html/gtkfaq-2.html html/gtkfaq-3.html html/gtkfaq-4.html html/gtkfaq-5.html html/gtkfaq-6.html html/gtkfaq-7.html text/gtkfaq.txt ++FAQ_FILES = html/gtkfaq.html html/gtkfaq-1.html html/gtkfaq-2.html html/gtkfaq-3.html html/gtkfaq-4.html html/gtkfaq-5.html html/gtkfaq-6.html html/gtkfaq-7.html html/gtkfaq-8.html html/gtkfaq-9.html text/gtkfaq.txt + + + EXTRA_DIST = Changes-1.2.txt debugging.txt developers.txt refcounting.txt styles.txt text_widget.txt widget_system.txt generation.txt gtk-config.txt gtk-config.1.in texinfo.tex macros.texi gtkdocs_fix gtkfaq.sgml gtk_tut.sgml gtk_tut_it.sgml gtk_tut_fr.sgml gtk_tut_packbox1.gif gtk_tut_packbox2.gif html/gtk_tut_table.gif html/gtk_tut_packbox1.gif html/gtk_tut_packbox2.gif gtk_tut_table.gif $(TUTORIAL_FILES) $(TUTORIAL_FR_FILES) $(TUTORIAL_IT_FILES) $(FAQ_FILES) +@@ -159,15 +163,15 @@ + + DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +-TAR = gtar ++TAR = tar + GZIP_ENV = --best + all: all-redirect + .SUFFIXES: + .SUFFIXES: .dvi .info .ps .texi .texinfo .txi + $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) +- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps docs/Makefile ++ cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile + +-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +@@ -257,7 +261,7 @@ + else ii=; fi; \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ +- test -z "$ii" \ ++ test -z "$$ii" \ + || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ + done + @$(NORMAL_UNINSTALL) +@@ -343,6 +347,11 @@ + subdir = docs + + distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu docs/Makefile + $(mkinstalldirs) $(distdir)/html $(distdir)/text + @for file in $(DISTFILES); do \ + d=$(srcdir); \ +--- gtk+1.2-1.2.10.orig/docs/html/gtk_tut-13.html ++++ gtk+1.2-1.2.10/docs/html/gtk_tut-13.html +@@ -84,7 +84,7 @@ + gtk_menu_new and a "menu item" as created by the gtk_menu_item_new + functions. The menu item will be an actual button with an associated + action, whereas a menu will be a container holding menu items. +-<P>The gtk_menu_new_with_label and gtk_menu_new functions are just as ++<P>The gtk_menu_item_new_with_label and gtk_menu_item_new functions are just as + you'd expect after reading about the buttons. One creates a new menu + item with a label already packed into it, and the other just creates a + blank menu item. +--- gtk+1.2-1.2.10.orig/docs/html/gtkfaq-5.html ++++ gtk+1.2-1.2.10/docs/html/gtkfaq-5.html +@@ -553,12 +553,12 @@ + <BLOCKQUOTE><CODE> + <PRE> + gint +-signal_handler_event(GtkWiget *widget, GdkEvenButton *event, gpointer func_data) ++signal_handler_event(GtkWidget *widget, GdkEventButton *event, gpointer func_data) + { + if (GTK_IS_LIST_ITEM(widget) && + (event->type==GDK_2BUTTON_PRESS || + event->type==GDK_3BUTTON_PRESS) ) { +- printf("I feel %s clicked on button %d\", ++ printf("I feel %s clicked on button %d\n", + event->type==GDK_2BUTTON_PRESS ? "double" : "triple", + event->button); + } +--- gtk+1.2-1.2.10.orig/docs/html/gtkfaq-8.html ++++ gtk+1.2-1.2.10/docs/html/gtkfaq-8.html +@@ -0,0 +1,413 @@ ++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> ++<HTML> ++<HEAD> ++ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21"> ++ <TITLE>GTK+ FAQ: About GLib ++ ++ ++ ++ ++ ++Next ++Previous ++Contents ++
++

8. About GLib

++ ++

8.1 What is GLib? ++

++ ++

GLib is a library of useful functions and definitions available for use ++when creating GDK and GTK applications. It provides replacements for some ++standard libc functions, such as malloc, which are buggy on some systems.

++

It also provides routines for handling: ++

    ++
  • Doubly Linked Lists
  • ++
  • Singly Linked Lists
  • ++
  • Timers
  • ++
  • String Handling
  • ++
  • A Lexical Scanner
  • ++
  • Error Functions
  • ++
++

++ ++

8.2 How can I use the doubly linked lists? ++

++ ++

The GList object is defined as:

++

++

++
++typedef struct _GList GList;
++
++struct _GList
++{
++  gpointer data;
++  GList *next;
++  GList *prev;
++};
++
++
++

++

To use the GList objects, simply :

++

++

++
++GList   *list = NULL;
++GList   *listrunner;
++gint    array[] = { 1, 2, 3, 4, 5, 6 };
++gint    pos;
++gint    *value;
++
++/* add data to the list */
++for (pos=0;pos < sizeof array; pos++) {
++  list = g_list_append(list, (gpointer)&array[pos]);
++}
++
++/* run through the list */
++listrunner = g_list_first(list);
++while (listrunner) {
++  value = (gint *)listrunner->data;
++  printf("%d\n", *value);
++  listrunner = g_list_next(listrunner);
++}
++
++/* removing datas from the list */
++listrunner = g_list_first(list);
++list = g_list_remove_link(list, listrunner);
++list = g_list_remove(list, &array[4]);
++
++
++

++

The same code is usable with singly linked lists (GSList objects) by replacing ++g_list_* functions with the relevant g_slist_* ones (g_slist_append, ++g_slist_remove, ...). Just remember that since you can't go backward in a singly ++linked list, there is no g_slist_first function - you'll need to keep a ++reference on the first node of the list.

++ ++ ++

8.3 Memory does not seem to be released when I free the list nodes I've allocated ++

++ ++

GLib tries to be "intelligent" on this special issue: it assumes that ++you are likely to reuse the objects, so caches the allocated memory. ++If you do not want to use this behavior, you'll probably want to set ++up a special allocator.

++

To quote Tim Janik: ++

++If you have a certain portion of code that uses *lots* of GLists or ++GNodes, and you know you'd better want to release all of them after a ++short while, you'd want to use a GAllocator. Pushing an allocator into ++g_list will make all subsequent glist operations private to that ++allocator's memory pool (and thus you have to take care to pop the ++allocator again, before making any external calls): ++
++

++

++

++
++GAllocator *allocator;
++GList *list = NULL;
++guint i;
++
++/* set a new allocation pool for GList nodes */
++allocator = g_allocator_new ("list heap", 1024);
++g_list_push_allocator (allocator);
++
++/* do some list operations */
++for (i = 0; i < 4096; i++)
++  list = g_list_prepend (list, NULL);
++list = g_list_reverse (list);
++
++/* beware to pop allocator befor calling external functions */
++g_list_pop_allocator ();
++gtk_label_set_text (GTK_LABEL (some_label), "some text");
++
++/* and set our private glist pool again */
++g_list_push_allocator (allocator);
++
++/* do some list operations */
++g_list_free (list);
++list = NULL;
++for (i = 0; i < 4096; i++)
++  list = g_list_prepend (list, NULL);
++  
++/* and back out (while freeing all of the list nodes in our pool) */
++g_list_pop_allocator ();
++g_allocator_free (allocator);
++
++
++

++ ++

8.4 Why use g_print, g_malloc, g_strdup and fellow glib functions? ++

++ ++

Thanks to Tim Janik who wrote to gtk-list: (slightly modified) ++

++Regarding g_malloc(), g_free() and siblings, these functions are much ++safer than their libc equivalents. For example, g_free() just returns ++if called with NULL. Also, if USE_DMALLOC is defined, the definition ++for these functions changes (in glib.h) to use MALLOC(), FREE() etc... ++If MEM_PROFILE or MEM_CHECK are defined, there are even small ++statistics made counting the used block sizes (shown by ++g_mem_profile() / g_mem_check()). ++

Considering the fact that glib provides an interface for memory chunks ++to save space if you have lots of blocks that are always the same size ++and to mark them ALLOC_ONLY if needed, it is just straight forward to ++create a small saver (debug able) wrapper around the normal malloc/free ++stuff as well - just like gdk covers Xlib. ;)

++

Using g_error() and g_warning() inside of applications like the GIMP ++that fully rely on gtk even gives the opportunity to pop up a window ++showing the messages inside of a gtk window with your own handler ++(by using g_set_error_handler()) along the lines of gtk_print() ++(inside of gtkmain.c).

++
++

++ ++

8.5 What's a GScanner and how do I use one? ++

++ ++

A GScanner will tokenize your text, that is, it'll return an integer ++for every word or number that appears in its input stream, following ++certain (customizable) rules to perform this translation. ++You still need to write the parsing functions on your own though.

++

Here's a little test program supplied by Tim Janik that will parse

++

++

++<SYMBOL> = <OPTIONAL-MINUS> <NUMBER> ;
++
++

++

constructs, while skipping "#\n" and "/**/" style comments.

++

++

++#include <glib.h>
++
++/* some test text to be fed into the scanner */
++static const gchar *test_text =
++( "ping = 5;\n"
++  "/* slide in some \n"
++  " * comments, just for the\n"
++  " * fun of it \n"
++  " */\n"
++  "pong = -6; \n"
++  "\n"
++  "# the next value is a float\n"
++  "zonk = 0.7;\n"
++  "# redefine ping\n"
++  "ping = - 0.5;\n" );
++
++/* define enumeration values to be returned for specific symbols */
++enum {
++  SYMBOL_PING = G_TOKEN_LAST + 1,
++  SYMBOL_PONG = G_TOKEN_LAST + 2,
++  SYMBOL_ZONK = G_TOKEN_LAST + 3
++};
++
++/* symbol array */
++static const struct {
++  gchar *symbol_name;
++  guint  symbol_token;
++} symbols[] = {
++  { "ping", SYMBOL_PING, },
++  { "pong", SYMBOL_PONG, },
++  { "zonk", SYMBOL_ZONK, },
++  { NULL, 0, },
++}, *symbol_p = symbols;
++
++static gfloat ping = 0;
++static gfloat pong = 0;
++static gfloat zonk = 0;
++
++static guint
++parse_symbol (GScanner *scanner)
++{
++  guint symbol;
++  gboolean negate = FALSE;
++
++  /* expect a valid symbol */
++  g_scanner_get_next_token (scanner);
++  symbol = scanner->token;
++  if (symbol < SYMBOL_PING ||
++      symbol > SYMBOL_ZONK)
++    return G_TOKEN_SYMBOL;
++
++  /* expect '=' */
++  g_scanner_get_next_token (scanner);
++  if (scanner->token != '=')
++    return '=';
++
++  /* feature optional '-' */
++  g_scanner_peek_next_token (scanner);
++  if (scanner->next_token == '-')
++    {
++      g_scanner_get_next_token (scanner);
++      negate = !negate;
++    }
++
++  /* expect a float (ints are converted to floats on the fly) */
++  g_scanner_get_next_token (scanner);
++  if (scanner->token != G_TOKEN_FLOAT)
++    return G_TOKEN_FLOAT;
++
++  /* make sure the next token is a ';' */
++  if (g_scanner_peek_next_token (scanner) != ';')
++    {
++      /* not so, eat up the non-semicolon and error out */
++      g_scanner_get_next_token (scanner);
++      return ';';
++    }
++
++  /* assign value, eat the semicolon and exit successfully */
++  switch (symbol)
++    {
++    case SYMBOL_PING:
++      ping = negate ? - scanner->value.v_float : scanner->value.v_float;
++      break;
++    case SYMBOL_PONG:
++      pong = negate ? - scanner->value.v_float : scanner->value.v_float;
++      break;
++    case SYMBOL_ZONK:
++      zonk = negate ? - scanner->value.v_float : scanner->value.v_float;
++      break;
++    }
++  g_scanner_get_next_token (scanner);
++
++  return G_TOKEN_NONE;
++}
++
++int
++main (int argc, char *argv[])
++{
++  GScanner *scanner;
++  guint expected_token;
++
++  scanner = g_scanner_new (NULL);
++
++  /* adjust lexing behaviour to suit our needs
++   */
++  /* convert non-floats (octal values, hex values...) to G_TOKEN_INT */
++  scanner->config->numbers_2_int = TRUE;
++  /* convert G_TOKEN_INT to G_TOKEN_FLOAT */
++  scanner->config->int_2_float = TRUE;
++  /* don't return G_TOKEN_SYMBOL, but the symbol's value */
++  scanner->config->symbol_2_token = TRUE;
++
++  /* load symbols into the scanner */
++  while (symbol_p->symbol_name)
++    {
++      g_scanner_add_symbol (scanner,
++                            symbol_p->symbol_name,
++                            GINT_TO_POINTER (symbol_p->symbol_token));
++      symbol_p++;
++    }
++
++  /* feed in the text */
++  g_scanner_input_text (scanner, test_text, strlen (test_text));
++
++  /* give the error handler an idea on how the input is named */
++  scanner->input_name = "test text";
++
++  /* scanning loop, we parse the input until its end is reached,
++   * the scanner encountered a lexing error, or our sub routine came
++   * across invalid syntax
++   */
++  do
++    {
++      expected_token = parse_symbol (scanner);
++      
++      g_scanner_peek_next_token (scanner);
++    }
++  while (expected_token == G_TOKEN_NONE &&
++         scanner->next_token != G_TOKEN_EOF &&
++         scanner->next_token != G_TOKEN_ERROR);
++
++  /* give an error message upon syntax errors */
++  if (expected_token != G_TOKEN_NONE)
++    g_scanner_unexp_token (scanner, expected_token, NULL, "symbol", NULL, NULL, TRUE);
++
++  /* finsish parsing */
++  g_scanner_destroy (scanner);
++
++  /* print results */
++  g_print ("ping: %f\n", ping);
++  g_print ("pong: %f\n", pong);
++  g_print ("zonk: %f\n", zonk);
++  
++  return 0;
++}
++
++

++

You need to understand that the scanner will parse its input and ++tokenize it, it is up to you to interpret these tokens, not define ++their types before they get parsed, e.g. watch gscanner parse a ++string:

++

++

++"hi i am 17"
++ |  | |  |
++ |  | |  v
++ |  | v  TOKEN_INT, value: 17
++ |  v TOKEN_IDENTIFIER, value: "am"
++ v  TOKEN_CHAR, value: 'i'
++TOKEN_IDENTIFIER, value: "hi"
++
++

++

If you configure the scanner with: ++

++scanner->config->int_2_float = TRUE;
++scanner->config->char_2_token = TRUE;
++scanner->config->scan_symbols = TRUE;
++
++

++

and add "am" as a symbol with ++

++g_scanner_add_symbol (scanner, "am", "symbol value");
++
++

++

GScanner will parse it as

++

++

++"hi i am 17"
++ |  | |  |
++ |  | |  v
++ |  | v  TOKEN_FLOAT, value: 17.0  (automatic int->float conversion)
++ |  | TOKEN_SYMBOL, value: "symbol value"  (a successfull hash table lookup
++ |  |                                       turned a TOKEN_IDENTIFIER into a
++ |  |                                       TOKEN_SYMBOL and took over the
++ |  v                                       symbol's value)
++ v  'i'  ('i' can be a valid token as well, as all chars >0 and <256)
++TOKEN_IDENTIFIER, value: "hi"
++
++

++

You need to match the token sequence with your code, and if you encounter ++something that you don't want, you error out:

++

++

++/* expect an identifier ("hi") */
++g_scanner_get_next_token (scanner);
++if (scanner->token != G_TOKEN_IDENTIFIER)
++  return G_TOKEN_IDENTIFIER;
++/* expect a token 'i' */
++g_scanner_get_next_token (scanner);
++if (scanner->token != 'i')
++  return 'i';
++/* expect a symbol ("am") */
++g_scanner_get_next_token (scanner);
++if (scanner->token != G_TOKEN_SYMBOL)
++  return G_TOKEN_SYMBOL;
++/* expect a float (17.0) */
++g_scanner_get_next_token (scanner);
++if (scanner->token != G_TOKEN_FLOAT)
++  return G_TOKEN_FLOAT;
++
++

++

If you got past here, you have parsed "hi i am 17" and would have ++accepted "dooh i am 42" and "bah i am 0.75" as well, but you would ++have not accepted "hi 7 am 17" or "hi i hi 17".

++ ++
++Next ++Previous ++Contents ++ ++ +--- gtk+1.2-1.2.10.orig/docs/html/gtkfaq-9.html ++++ gtk+1.2-1.2.10/docs/html/gtkfaq-9.html +@@ -0,0 +1,59 @@ ++ ++ ++ ++ ++ GTK+ FAQ: GTK+ FAQ Contributions, Maintainers and Copyright ++ ++ ++ ++ ++Next ++Previous ++Contents ++
++

9. GTK+ FAQ Contributions, Maintainers and Copyright

++ ++

If you would like to make a contribution to the FAQ, send either one ++of us an e-mail message with the exact text you think should be ++included (question and answer). With your help, this document can grow ++and become more useful!

++

This document is maintained by ++Tony Gale ++<gale@gtk.org> ++Nathan Froyd ++<maestrox@geocities.com>, ++and ++Emmanuel Deloget ++<logout@free.fr>. ++This FAQ was created by Shawn T. Amundson ++<amundson@gimp.org> who continues to provide support.

++

Contributions should be sent to Tony Gale ++<gale@gtk.org>

++

The GTK+ FAQ is Copyright (C) 1997-2000 by Shawn T. Amundson, ++Tony Gale, Emmanuel Deloget and Nathan Froyd.

++

Permission is granted to make and distribute verbatim copies of this ++manual provided the copyright notice and this permission notice are ++preserved on all copies.

++

Permission is granted to copy and distribute modified versions of this ++document under the conditions for verbatim copying, provided that this ++copyright notice is included exactly as in the original, and that the ++entire resulting derived work is distributed under the terms of a ++permission notice identical to this one.

++

Permission is granted to copy and distribute translations of this ++document into another language, under the above conditions for ++modified versions.

++

If you are intending to incorporate this document into a published ++work, please contact one of the maintainers, and we will make an ++effort to ensure that you have the most up to date information ++available.

++

There is no guarentee that this document lives up to its intended ++purpose. This is simply provided as a free resource. As such, the ++authors and maintainers of the information provided within can not ++make any guarentee that the information is even accurate.

++ ++
++Next ++Previous ++Contents ++ ++ +--- gtk+1.2-1.2.10.orig/docs/Makefile.am ++++ gtk+1.2-1.2.10/docs/Makefile.am +@@ -99,6 +99,8 @@ + html/gtkfaq-5.html \ + html/gtkfaq-6.html \ + html/gtkfaq-7.html \ ++ html/gtkfaq-8.html \ ++ html/gtkfaq-9.html \ + text/gtkfaq.txt + + .PHONY: html htmldir faq tutorial tutorial_it tutorial_fr files +--- gtk+1.2-1.2.10.orig/docs/gtkfaq.sgml ++++ gtk+1.2-1.2.10/docs/gtkfaq.sgml +@@ -1418,12 +1418,12 @@ + + + gint +-signal_handler_event(GtkWiget *widget, GdkEvenButton *event, gpointer func_data) ++signal_handler_event(GtkWidget *widget, GdkEventButton *event, gpointer func_data) + { + if (GTK_IS_LIST_ITEM(widget) && + (event->type==GDK_2BUTTON_PRESS || + event->type==GDK_3BUTTON_PRESS) ) { +- printf("I feel %s clicked on button %d\", ++ printf("I feel %s clicked on button %d\n", + event->type==GDK_2BUTTON_PRESS ? "double" : "triple", + event->button); + } +--- gtk+1.2-1.2.10.orig/docs/gtk_tut.sgml ++++ gtk+1.2-1.2.10/docs/gtk_tut.sgml +@@ -9995,7 +9995,7 @@ + functions. The menu item will be an actual button with an associated + action, whereas a menu will be a container holding menu items. + +-The gtk_menu_new_with_label and gtk_menu_new functions are just as ++The gtk_menu_item_new_with_label and gtk_menu_item_new functions are just as + you'd expect after reading about the buttons. One creates a new menu + item with a label already packed into it, and the other just creates a + blank menu item. +--- gtk+1.2-1.2.10.orig/debian/docs ++++ gtk+1.2-1.2.10/debian/docs +@@ -0,0 +1,5 @@ ++NEWS ++README ++TODO ++ChangeLog.pre-1-0 ++debian/FAQ.Debian +--- gtk+1.2-1.2.10.orig/debian/FAQ.Debian ++++ gtk+1.2-1.2.10/debian/FAQ.Debian +@@ -0,0 +1,90 @@ ++GTK+ FAQ for Debian ++--------------------- ++ ++Q. the following message is output. gtk+ doesn't provide it. ++ ++The font "XLFD" does not support all the required character sets for the ++current locale "LOCALE" ++ (Missing character set "CHARSET") ++ ++A1. Check if you have installed the *-transcoded packages ++ (xfonts-base-transcoded, xfonts-75dpi-transcoded and ++ xfonts-100dpi-transcoded). If not, try installing them. If your problem ++ persists, read on. ++ ++A2. This means an application specified XLFD, but that font has no CHARSET ++ LOCALE needs. ++ If it's GTK+ application, you may specify invalid font on gtkrc. ++ GTK+ will find gtkrc with the rules as the following: ++ ++ 1. gtkrc.ll_cc.lowercasecodeset ++ 2. gtkrc.ll_cc.normalizedcodeset ++ 3. gtkrc.ll.lowercasecodeset ++ 4. gtkrc.ll.normalizedcodeset ++ 5. gtkrc.lowercasecodeset ++ 6. gtkrc.normalizedcodeset ++ 7. gtkrc.ll_cc ++ 8. gtkrc.ll ++ ++ normalize the charset into a standard form, which has all '-' and '_' ++ characters removed. ++ ++ Also GTK+ affect your locale. you can check that by the following code: ++ ++ #include ++ #include ++ #include ++ ++ int main (void) ++ { ++ setlocale (LC_CTYPE, ""); ++ printf ("%s\n", nl_langinfo (CODESET)); ++ return 0; ++ } ++ ++ for example, your /etc/locale.gen has: ++ es_ES ISO-8859-1 ++ es_ES@euro ISO-8859-15 ++ ++ and if you set es_ES@euro to LC_CTYPE, result of that program should be: ++ $ LC_CTYPE=es_ES@euro ./test ++ ISO-8859-15 ++ ++ GTK+ use this value for lowercasecodeset and normalizedcodeset. ++ ++ And GTK+ will find gtkrc in order of path as the following: ++ ++ 1. /etc/gtk ++ 2. ~/ ++ ++ Thus, you need to find invalid font according to the above rules. ++ ++ ++ If you can't find invalid font or that isn't GTK+ app, but that is GNOME ++ app, try to find gtkrc: ++ ++ 1. If you don't have strace, runs apt-get install strace. ++ 2. strace |& grep gtkrc | grep open ++ 3. If you get something, check the files found. invalid font should be ++ specified in the files. ++ ++ If you are still unable to find invalid font, try to check app's ++ preferences and runs xlsfonts with XLFD. ++ ++ ++Q. the following warning is output. ++ ++Gdk-WARNING **: locale not supported by C library. ++ ++A. You has no your locale data. check your locale and /etc/locale.gen and ++ /usr/lib/locale/. ++ ++ ++Q. the following warning is output. ++ ++Gdk-WARNING **: locale not supported by Xlib, locale set to C. ++ ++A. This means your locale supports by libc, but not Xlib. In most cases, ++ you may specify invalid locale or Xlib has no aliases for the locale ++ you specified. ++ +--- gtk+1.2-1.2.10.orig/debian/README.Debian ++++ gtk+1.2-1.2.10/debian/README.Debian +@@ -0,0 +1,18 @@ ++libgtk1.2 for Debian ++---------------------- ++ ++The GIMP Tool Kit (gtk) is a set of widgets to help you program ++programs for the X Windowing System easily and powerfully. ++ ++gtk is the moving force behind The GNU Image Manipulation Program (The ++GIMP) -- the number one freely-available image editing and creation ++program available. ++ ++gtk is rapidly under development, and the source tree has officially ++been separated from The GIMP now, as other teams of programmers ++are beginning to write software using its great widget set -- like ++GNOME, a desktop interface for X, and gzilla, a freely available ++web browser for X. ++ ++Ben Gertzfield , Mon, 29 Sep 1997 13:11:45 -0700 ++ +--- gtk+1.2-1.2.10.orig/debian/copyright ++++ gtk+1.2-1.2.10/debian/copyright +@@ -0,0 +1,8 @@ ++This package was debianized by Ben Gertzfield ++on Fri Oct 15 10:36:58 PDT 1999. ++ ++The source may be fetched from http://www.gtk.org/ . ++ ++It may be redistributed under the terms of the GNU LGPL, Version 2 or ++later, found on Debian systems in the file /usr/share/common-licenses/LGPL-2. ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-doc.doc-base.gtk-faq ++++ gtk+1.2-1.2.10/debian/libgtk1.2-doc.doc-base.gtk-faq +@@ -0,0 +1,17 @@ ++Document: gtk-faq ++Title: GTK+ Frequently Asked Questions ++Author: Nathan Froyd, Tony Gale, Shawn T. Amundson. ++Abstract: This document is intended to answer questions that are ++ likely to be frequently asked by programmers using GTK+ or people who ++ are just looking at using GTK+. ++Section: Apps/Programming ++ ++Format: linuxdoc-sgml ++Files: /usr/share/doc/libgtk1.2-doc/sgml/gtkfaq.sgml.gz ++ ++Format: text ++Files: /usr/share/doc/libgtk1.2-doc/gtkfaq.txt.gz ++ ++Format: HTML ++Index: /usr/share/doc/libgtk1.2-doc/faq-html/gtkfaq.html ++Files: /usr/share/doc/libgtk1.2-doc/faq-html/*.html +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-common.dirs ++++ gtk+1.2-1.2.10/debian/libgtk1.2-common.dirs +@@ -0,0 +1,4 @@ ++usr/share/locale ++usr/share/themes ++etc/gtk ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-common.files ++++ gtk+1.2-1.2.10/debian/libgtk1.2-common.files +@@ -0,0 +1,3 @@ ++usr/share/locale/* ++usr/share/themes/* ++etc/gtk/* +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-common.postrm ++++ gtk+1.2-1.2.10/debian/libgtk1.2-common.postrm +@@ -0,0 +1,29 @@ ++#! /bin/sh ++# postrm script for #PACKAGE# ++# ++# see: dh_installdeb(1) ++ ++set -e ++ ++# summary of how this script can be called: ++# * `remove' ++# * `purge' ++# * `upgrade' ++# * `failed-upgrade' ++# * `abort-install' ++# * `abort-install' ++# * `abort-upgrade' ++# * `disappear' overwrit>r> ++# for details, see /usr/share/doc/packaging-manual/ ++ ++if [ "$1" = "purge" ]; ++then ++ rm -rf /etc/gtk/ ++fi ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-common.preinst ++++ gtk+1.2-1.2.10/debian/libgtk1.2-common.preinst +@@ -0,0 +1,20 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "upgrade" ]; ++then ++ if test -L /usr/share/doc/libgtk1.2-common; ++ then ++ rm /usr/share/doc/libgtk1.2-common ++ fi ++fi ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++exit 0 ++ ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-dbg.dirs ++++ gtk+1.2-1.2.10/debian/libgtk1.2-dbg.dirs +@@ -0,0 +1 @@ ++usr/lib/debug +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-dbg.files ++++ gtk+1.2-1.2.10/debian/libgtk1.2-dbg.files +@@ -0,0 +1 @@ ++usr/lib/debug/*.so* +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-dbg.preinst ++++ gtk+1.2-1.2.10/debian/libgtk1.2-dbg.preinst +@@ -0,0 +1,20 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ "$1" = "upgrade" ]; ++then ++ if [ -d /usr/share/doc/libgtk1.2-dbg -a ! -L /usr/share/doc/libgtk1.2-dbg ] ++ then ++ rm -rf /usr/share/doc/libgtk1.2-dbg ++ fi ++fi ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++exit 0 ++ ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-dev.dirs ++++ gtk+1.2-1.2.10/debian/libgtk1.2-dev.dirs +@@ -0,0 +1,2 @@ ++usr/lib ++usr/include +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-dev.examples ++++ gtk+1.2-1.2.10/debian/libgtk1.2-dev.examples +@@ -0,0 +1,5 @@ ++examples/* ++gtk/test*.c ++gtk/testgtkrc* ++gtk/test.xpm ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-dev.files ++++ gtk+1.2-1.2.10/debian/libgtk1.2-dev.files +@@ -0,0 +1,7 @@ ++usr/bin/gtk-config ++usr/include/* ++usr/lib/lib*.{so,la,a} ++usr/lib/pkgconfig/*.pc ++usr/share/aclocal/*.m4 ++usr/share/man/man1/gtk-config.1* ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-doc.dirs ++++ gtk+1.2-1.2.10/debian/libgtk1.2-doc.dirs +@@ -0,0 +1,7 @@ ++usr/share/doc/libgtk1.2-doc/faq-html ++usr/share/doc/libgtk1.2-doc/gtk-tutorial-html ++usr/share/doc/libgtk1.2-doc/gtk-tutorial-it-html ++usr/share/doc/libgtk1.2-doc/gtk-tutorial-fr-html ++usr/share/doc/libgtk1.2-doc/sgml ++usr/share/doc/libgtk1.2-doc/texinfo ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-doc.doc-base.gtk-tutorial-fr ++++ gtk+1.2-1.2.10/debian/libgtk1.2-doc.doc-base.gtk-tutorial-fr +@@ -0,0 +1,16 @@ ++Document: gtk-tutorial-fr ++Title: GTK+ Tutorial in French ++Author: Tony Gale and Ian Main ++Abstract: This is a tutorial, in French, on how to use GTK (the GIMP Toolkit) ++ through its C interface. ++Section: Apps/Programming ++ ++Format: linuxdoc-sgml ++Files: /usr/share/doc/libgtk1.2-doc/sgml/gtk_tut_fr.sgml.gz ++ ++Format: text ++Files: /usr/share/doc/libgtk1.2-doc/gtk_tut_fr.txt.gz ++ ++Format: HTML ++Index: /usr/share/doc/libgtk1.2-doc/gtk-tutorial-fr-html/gtk_tut_fr.html ++Files: /usr/share/doc/libgtk1.2-doc/gtk-tutorial-fr-html/*.html +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-doc.doc-base.gtk-tutorial ++++ gtk+1.2-1.2.10/debian/libgtk1.2-doc.doc-base.gtk-tutorial +@@ -0,0 +1,16 @@ ++Document: gtk-tutorial ++Title: GTK+ Tutorial ++Author: Tony Gale and Ian Main ++Abstract: This is a tutorial on how to use GTK (the GIMP Toolkit) ++ through its C interface. ++Section: Apps/Programming ++ ++Format: linuxdoc-sgml ++Files: /usr/share/doc/libgtk1.2-doc/sgml/gtk_tut.sgml.gz ++ ++Format: text ++Files: /usr/share/doc/libgtk1.2-doc/gtk_tut.txt.gz ++ ++Format: HTML ++Index: /usr/share/doc/libgtk1.2-doc/gtk-tutorial-html/gtk_tut.html ++Files: /usr/share/doc/libgtk1.2-doc/gtk-tutorial-html/*.html +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-common.postinst ++++ gtk+1.2-1.2.10/debian/libgtk1.2-common.postinst +@@ -0,0 +1,54 @@ ++#! /bin/sh ++# postinst script for #PACKAGE# ++# ++# see: dh_installdeb(1) ++ ++set -e ++ ++# summary of how this script can be called: ++# * `configure' ++# * `abort-upgrade' ++# * `abort-remove' `in-favour' ++# ++# * `abort-deconfigure' `in-favour' ++# `removing' ++# ++# for details, see http://www.debian.org/doc/debian-policy/ or ++# the debian-policy package ++# ++# quoting from the policy: ++# Any necessary prompting should almost always be confined to the ++# post-installation script, and should be protected with a conditional ++# so that unnecessary prompting doesn't happen if a package's ++# installation fails and the `postinst' is called with `abort-upgrade', ++# `abort-remove' or `abort-deconfigure'. ++ ++case "$1" in ++ configure) ++ # remove unnecessary gtkrc files ++ for i in gtkrc.el gtkrc.eo gtkrc.tr; do \ ++ if test -f /etc/gtkrc/$i; then \ ++ echo "Removing unnecessary $i" \ ++ rm -f /etc/gtkrc/$i; \ ++ fi \ ++ done ++ ;; ++ ++ abort-upgrade|abort-remove|abort-deconfigure) ++ ++ ;; ++ ++ *) ++ echo "postinst called with unknown argument \`$1'" >&2 ++ exit 1 ++ ;; ++esac ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++exit 0 ++ ++ +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-doc.doc-base.gtk-tutorial-it ++++ gtk+1.2-1.2.10/debian/libgtk1.2-doc.doc-base.gtk-tutorial-it +@@ -0,0 +1,16 @@ ++Document: gtk-tutorial-it ++Title: GTK+ Tutorial in Italian ++Author: Tony Gale and Ian Main ++Abstract: This is a tutorial, in Italian, on how to use GTK (the GIMP Toolkit) ++ through its C interface. ++Section: Apps/Programming ++ ++Format: linuxdoc-sgml ++Files: /usr/share/doc/libgtk1.2-doc/sgml/gtk_tut_it.sgml.gz ++ ++Format: text ++Files: /usr/share/doc/libgtk1.2-doc/gtk_tut_it.txt.gz ++ ++Format: HTML ++Index: /usr/share/doc/libgtk1.2-doc/gtk-tutorial-it-html/gtk_tut_it.html ++Files: /usr/share/doc/libgtk1.2-doc/gtk-tutorial-it-html/*.html +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-doc.files ++++ gtk+1.2-1.2.10/debian/libgtk1.2-doc.files +@@ -0,0 +1 @@ ++usr/share/info/* +--- gtk+1.2-1.2.10.orig/debian/libgtk1.2-doc.info ++++ gtk+1.2-1.2.10/debian/libgtk1.2-doc.info +@@ -0,0 +1,2 @@ ++docs/gtk.info ++docs/gdk.info +--- gtk+1.2-1.2.10.orig/debian/compat ++++ gtk+1.2-1.2.10/debian/compat +@@ -0,0 +1 @@ ++4 +--- gtk+1.2-1.2.10.orig/debian/fixed-ltmain.sh ++++ gtk+1.2-1.2.10/debian/fixed-ltmain.sh +@@ -0,0 +1,4997 @@ ++# ltmain.sh - Provide generalized library-building support services. ++# NOTE: Changing this file will not affect anything until you rerun configure. ++# ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit , 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# Check that we have a working $echo. ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell, and then maybe $echo will work. ++ exec $SHELL "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <&2 ++ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ++ exit 1 ++fi ++ ++# Global variables. ++mode=$default_mode ++nonopt= ++prev= ++prevopt= ++run= ++show="$echo" ++show_help= ++execute_dlfiles= ++lo2o="s/\\.lo\$/.${objext}/" ++o2lo="s/\\.${objext}\$/.lo/" ++ ++# Parse our command line options once, thoroughly. ++while test $# -gt 0 ++do ++ arg="$1" ++ shift ++ ++ case $arg in ++ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) optarg= ;; ++ esac ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ execute_dlfiles) ++ execute_dlfiles="$execute_dlfiles $arg" ++ ;; ++ *) ++ eval "$prev=\$arg" ++ ;; ++ esac ++ ++ prev= ++ prevopt= ++ continue ++ fi ++ ++ # Have we seen a non-optional argument yet? ++ case $arg in ++ --help) ++ show_help=yes ++ ;; ++ ++ --version) ++ echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" ++ exit 0 ++ ;; ++ ++ --config) ++ sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 ++ exit 0 ++ ;; ++ ++ --debug) ++ echo "$progname: enabling shell trace mode" ++ set -x ++ ;; ++ ++ --dry-run | -n) ++ run=: ++ ;; ++ ++ --features) ++ echo "host: $host" ++ if test "$build_libtool_libs" = yes; then ++ echo "enable shared libraries" ++ else ++ echo "disable shared libraries" ++ fi ++ if test "$build_old_libs" = yes; then ++ echo "enable static libraries" ++ else ++ echo "disable static libraries" ++ fi ++ exit 0 ++ ;; ++ ++ --finish) mode="finish" ;; ++ ++ --mode) prevopt="--mode" prev=mode ;; ++ --mode=*) mode="$optarg" ;; ++ ++ --quiet | --silent) ++ show=: ++ ;; ++ ++ -dlopen) ++ prevopt="-dlopen" ++ prev=execute_dlfiles ++ ;; ++ ++ -*) ++ $echo "$modename: unrecognized option \`$arg'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ ++ *) ++ nonopt="$arg" ++ break ++ ;; ++ esac ++done ++ ++if test -n "$prevopt"; then ++ $echo "$modename: option \`$prevopt' requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++fi ++ ++if test -z "$show_help"; then ++ ++ # Infer the operation mode. ++ if test -z "$mode"; then ++ case $nonopt in ++ *cc | *++ | gcc* | *-gcc*) ++ mode=link ++ for arg ++ do ++ case $arg in ++ -c) ++ mode=compile ++ break ++ ;; ++ esac ++ done ++ ;; ++ *db | *dbx | *strace | *truss) ++ mode=execute ++ ;; ++ *install*|cp|mv) ++ mode=install ++ ;; ++ *rm) ++ mode=uninstall ++ ;; ++ *) ++ # If we have no mode, but dlfiles were specified, then do execute mode. ++ test -n "$execute_dlfiles" && mode=execute ++ ++ # Just use the default operation mode. ++ if test -z "$mode"; then ++ if test -n "$nonopt"; then ++ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 ++ else ++ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 ++ fi ++ fi ++ ;; ++ esac ++ fi ++ ++ # Only execute mode is allowed to have -dlopen flags. ++ if test -n "$execute_dlfiles" && test "$mode" != execute; then ++ $echo "$modename: unrecognized option \`-dlopen'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Change the help message to a mode-specific one. ++ generic_help="$help" ++ help="Try \`$modename --help --mode=$mode' for more information." ++ ++ # These modes are in order of execution frequency so that they run quickly. ++ case $mode in ++ # libtool compile mode ++ compile) ++ modename="$modename: compile" ++ # Get the compilation command and the source file. ++ base_compile= ++ prev= ++ lastarg= ++ srcfile="$nonopt" ++ suppress_output= ++ ++ user_target=no ++ for arg ++ do ++ case $prev in ++ "") ;; ++ xcompiler) ++ # Aesthetically quote the previous argument. ++ prev= ++ lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ ++ case $arg in ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ++ # Add the previous argument to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; ++ esac ++ ++ # Accept any command-line options. ++ case $arg in ++ -o) ++ if test "$user_target" != "no"; then ++ $echo "$modename: you cannot specify \`-o' more than once" 1>&2 ++ exit 1 ++ fi ++ user_target=next ++ ;; ++ ++ -static) ++ build_old_libs=yes ++ continue ++ ;; ++ ++ -prefer-pic) ++ pic_mode=yes ++ continue ++ ;; ++ ++ -prefer-non-pic) ++ pic_mode=no ++ continue ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` ++ lastarg= ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' ++ for arg in $args; do ++ IFS="$save_ifs" ++ ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ lastarg="$lastarg $arg" ++ done ++ IFS="$save_ifs" ++ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` ++ ++ # Add the arguments to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; ++ esac ++ ++ case $user_target in ++ next) ++ # The next one is the -o target name ++ user_target=yes ++ continue ++ ;; ++ yes) ++ # We got the output file ++ user_target=set ++ libobj="$arg" ++ continue ++ ;; ++ esac ++ ++ # Accept the current argument as the source file. ++ lastarg="$srcfile" ++ srcfile="$arg" ++ ++ # Aesthetically quote the previous argument. ++ ++ # Backslashify any backslashes, double quotes, and dollar signs. ++ # These are the only characters that are still specially ++ # interpreted inside of double-quoted scrings. ++ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` ++ ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $lastarg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ lastarg="\"$lastarg\"" ++ ;; ++ esac ++ ++ # Add the previous argument to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ done ++ ++ case $user_target in ++ set) ++ ;; ++ no) ++ # Get the name of the library object. ++ libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ++ ;; ++ *) ++ $echo "$modename: you must specify a target with \`-o'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Recognize several different file suffixes. ++ # If the user specifies -o file.o, it is replaced with file.lo ++ xform='[cCFSfmso]' ++ case $libobj in ++ *.ada) xform=ada ;; ++ *.adb) xform=adb ;; ++ *.ads) xform=ads ;; ++ *.asm) xform=asm ;; ++ *.c++) xform=c++ ;; ++ *.cc) xform=cc ;; ++ *.cpp) xform=cpp ;; ++ *.cxx) xform=cxx ;; ++ *.f90) xform=f90 ;; ++ *.for) xform=for ;; ++ esac ++ ++ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` ++ ++ case $libobj in ++ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; ++ *) ++ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ if test -z "$base_compile"; then ++ $echo "$modename: you must specify a compilation command" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Delete any leftover library objects. ++ if test "$build_old_libs" = yes; then ++ removelist="$obj $libobj" ++ else ++ removelist="$libobj" ++ fi ++ ++ $run $rm $removelist ++ trap "$run $rm $removelist; exit 1" 1 2 15 ++ ++ # On Cygwin there's no "real" PIC flag so we must build both object types ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ pic_mode=default ++ ;; ++ esac ++ if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then ++ # non-PIC code in shared libraries is not supported ++ pic_mode=default ++ fi ++ ++ # Calculate the filename of the output object if compiler does ++ # not support -o with -c ++ if test "$compiler_c_o" = no; then ++ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} ++ lockfile="$output_obj.lock" ++ removelist="$removelist $output_obj $lockfile" ++ trap "$run $rm $removelist; exit 1" 1 2 15 ++ else ++ need_locks=no ++ lockfile= ++ fi ++ ++ # Lock this critical section if it is needed ++ # We use this script file to make the link, it avoids creating a new file ++ if test "$need_locks" = yes; then ++ until $run ln "$0" "$lockfile" 2>/dev/null; do ++ $show "Waiting for $lockfile to be removed" ++ sleep 2 ++ done ++ elif test "$need_locks" = warn; then ++ if test -f "$lockfile"; then ++ echo "\ ++*** ERROR, $lockfile exists and contains: ++`cat $lockfile 2>/dev/null` ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ echo $srcfile > "$lockfile" ++ fi ++ ++ if test -n "$fix_srcfile_path"; then ++ eval srcfile=\"$fix_srcfile_path\" ++ fi ++ ++ # Only build a PIC object if we are building libtool libraries. ++ if test "$build_libtool_libs" = yes; then ++ # Without this assignment, base_compile gets emptied. ++ fbsd_hideous_sh_bug=$base_compile ++ ++ if test "$pic_mode" != no; then ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ else ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ fi ++ if test "$build_old_libs" = yes; then ++ lo_libobj="$libobj" ++ dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$dir" = "X$libobj"; then ++ dir="$objdir" ++ else ++ dir="$dir/$objdir" ++ fi ++ libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` ++ ++ if test -d "$dir"; then ++ $show "$rm $libobj" ++ $run $rm $libobj ++ else ++ $show "$mkdir $dir" ++ $run $mkdir $dir ++ status=$? ++ if test $status -ne 0 && test ! -d $dir; then ++ exit $status ++ fi ++ fi ++ fi ++ if test "$compiler_o_lo" = yes; then ++ output_obj="$libobj" ++ command="$command -o $output_obj" ++ elif test "$compiler_c_o" = yes; then ++ output_obj="$obj" ++ command="$command -o $output_obj" ++ fi ++ ++ $run $rm "$output_obj" ++ $show "$command" ++ if $run eval "$command"; then : ++ else ++ test -n "$output_obj" && $run $rm $removelist ++ exit 1 ++ fi ++ ++ if test "$need_locks" = warn && ++ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then ++ echo "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ # Just move the object if needed, then go on to compile the next one ++ if test x"$output_obj" != x"$libobj"; then ++ $show "$mv $output_obj $libobj" ++ if $run $mv $output_obj $libobj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # If we have no pic_flag, then copy the object into place and finish. ++ if (test -z "$pic_flag" || test "$pic_mode" != default) && ++ test "$build_old_libs" = yes; then ++ # Rename the .lo from within objdir to obj ++ if test -f $obj; then ++ $show $rm $obj ++ $run $rm $obj ++ fi ++ ++ $show "$mv $libobj $obj" ++ if $run $mv $libobj $obj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ ++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$obj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` ++ libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` ++ # Now arrange that obj and lo_libobj become the same file ++ $show "(cd $xdir && $LN_S $baseobj $libobj)" ++ if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then ++ exit 0 ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # Allow error messages only from the first compilation. ++ suppress_output=' >/dev/null 2>&1' ++ fi ++ ++ # Only build a position-dependent object if we build old libraries. ++ if test "$build_old_libs" = yes; then ++ if test "$pic_mode" != yes; then ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ else ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ fi ++ if test "$compiler_c_o" = yes; then ++ command="$command -o $obj" ++ output_obj="$obj" ++ fi ++ ++ # Suppress compiler output if we already did a PIC compilation. ++ command="$command$suppress_output" ++ $run $rm "$output_obj" ++ $show "$command" ++ if $run eval "$command"; then : ++ else ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ if test "$need_locks" = warn && ++ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then ++ echo "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ # Just move the object if needed ++ if test x"$output_obj" != x"$obj"; then ++ $show "$mv $output_obj $obj" ++ if $run $mv $output_obj $obj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # Create an invalid libtool object if no PIC, so that we do not ++ # accidentally link it into a program. ++ if test "$build_libtool_libs" != yes; then ++ $show "echo timestamp > $libobj" ++ $run eval "echo timestamp > \$libobj" || exit $? ++ else ++ # Move the .lo from within objdir ++ $show "$mv $libobj $lo_libobj" ++ if $run $mv $libobj $lo_libobj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ fi ++ ++ # Unlock the critical section if it was locked ++ if test "$need_locks" != no; then ++ $run $rm "$lockfile" ++ fi ++ ++ exit 0 ++ ;; ++ ++ # libtool link mode ++ link | relink) ++ modename="$modename: link" ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ # It is impossible to link a dll without this setting, and ++ # we shouldn't force the makefile maintainer to figure out ++ # which system we are compiling for in order to pass an extra ++ # flag for every libtool invokation. ++ # allow_undefined=no ++ ++ # FIXME: Unfortunately, there are problems with the above when trying ++ # to make a dll which has undefined symbols, in which case not ++ # even a static library is built. For now, we need to specify ++ # -no-undefined on the libtool link line when we can be certain ++ # that all symbols are satisfied, otherwise we get a static library. ++ allow_undefined=yes ++ ;; ++ *) ++ allow_undefined=yes ++ ;; ++ esac ++ libtool_args="$nonopt" ++ compile_command="$nonopt" ++ finalize_command="$nonopt" ++ ++ compile_rpath= ++ finalize_rpath= ++ compile_shlibpath= ++ finalize_shlibpath= ++ convenience= ++ old_convenience= ++ deplibs= ++ old_deplibs= ++ compiler_flags= ++ linker_flags= ++ dllsearchpath= ++ lib_search_path=`pwd` ++ inst_prefix_dir= ++ ++ avoid_version=no ++ dlfiles= ++ dlprefiles= ++ dlself=no ++ export_dynamic=no ++ export_symbols= ++ export_symbols_regex= ++ generated= ++ libobjs= ++ ltlibs= ++ module=no ++ no_install=no ++ objs= ++ prefer_static_libs=no ++ preload=no ++ prev= ++ prevarg= ++ release= ++ rpath= ++ xrpath= ++ perm_rpath= ++ temp_rpath= ++ thread_safe=no ++ vinfo= ++ ++ # We need to know -static, to get the right output filenames. ++ for arg ++ do ++ case $arg in ++ -all-static | -static) ++ if test "X$arg" = "X-all-static"; then ++ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then ++ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 ++ fi ++ if test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ else ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ fi ++ build_libtool_libs=no ++ build_old_libs=yes ++ prefer_static_libs=yes ++ break ++ ;; ++ esac ++ done ++ ++ # See if our shared archives depend on static archives. ++ test -n "$old_archive_from_new_cmds" && build_old_libs=yes ++ ++ # Go through the arguments, transforming them on the way. ++ while test $# -gt 0; do ++ arg="$1" ++ shift ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ++ ;; ++ *) qarg=$arg ;; ++ esac ++ libtool_args="$libtool_args $qarg" ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ output) ++ compile_command="$compile_command @OUTPUT@" ++ finalize_command="$finalize_command @OUTPUT@" ++ ;; ++ esac ++ ++ case $prev in ++ dlfiles|dlprefiles) ++ if test "$preload" = no; then ++ # Add the symbol object into the linking commands. ++ compile_command="$compile_command @SYMFILE@" ++ finalize_command="$finalize_command @SYMFILE@" ++ preload=yes ++ fi ++ case $arg in ++ *.la | *.lo) ;; # We handle these cases below. ++ force) ++ if test "$dlself" = no; then ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ self) ++ if test "$prev" = dlprefiles; then ++ dlself=yes ++ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then ++ dlself=yes ++ else ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ *) ++ if test "$prev" = dlfiles; then ++ dlfiles="$dlfiles $arg" ++ else ++ dlprefiles="$dlprefiles $arg" ++ fi ++ prev= ++ continue ++ ;; ++ esac ++ ;; ++ expsyms) ++ export_symbols="$arg" ++ if test ! -f "$arg"; then ++ $echo "$modename: symbol file \`$arg' does not exist" ++ exit 1 ++ fi ++ prev= ++ continue ++ ;; ++ expsyms_regex) ++ export_symbols_regex="$arg" ++ prev= ++ continue ++ ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; ++ release) ++ release="-$arg" ++ prev= ++ continue ++ ;; ++ rpath | xrpath) ++ # We need an absolute path. ++ case $arg in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ $echo "$modename: only absolute run-paths are allowed" 1>&2 ++ exit 1 ++ ;; ++ esac ++ if test "$prev" = rpath; then ++ case "$rpath " in ++ *" $arg "*) ;; ++ *) rpath="$rpath $arg" ;; ++ esac ++ else ++ case "$xrpath " in ++ *" $arg "*) ;; ++ *) xrpath="$xrpath $arg" ;; ++ esac ++ fi ++ prev= ++ continue ++ ;; ++ xcompiler) ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ compile_command="$compile_command $qarg" ++ finalize_command="$finalize_command $qarg" ++ continue ++ ;; ++ xlinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $wl$qarg" ++ prev= ++ compile_command="$compile_command $wl$qarg" ++ finalize_command="$finalize_command $wl$qarg" ++ continue ++ ;; ++ *) ++ eval "$prev=\"\$arg\"" ++ prev= ++ continue ++ ;; ++ esac ++ fi # test -n $prev ++ ++ prevarg="$arg" ++ ++ case $arg in ++ -all-static) ++ if test -n "$link_static_flag"; then ++ compile_command="$compile_command $link_static_flag" ++ finalize_command="$finalize_command $link_static_flag" ++ fi ++ continue ++ ;; ++ ++ -allow-undefined) ++ # FIXME: remove this flag sometime in the future. ++ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 ++ continue ++ ;; ++ ++ -avoid-version) ++ avoid_version=yes ++ continue ++ ;; ++ ++ -dlopen) ++ prev=dlfiles ++ continue ++ ;; ++ ++ -dlpreopen) ++ prev=dlprefiles ++ continue ++ ;; ++ ++ -export-dynamic) ++ export_dynamic=yes ++ continue ++ ;; ++ ++ -export-symbols | -export-symbols-regex) ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ $echo "$modename: more than one -exported-symbols argument is not allowed" ++ exit 1 ++ fi ++ if test "X$arg" = "X-export-symbols"; then ++ prev=expsyms ++ else ++ prev=expsyms_regex ++ fi ++ continue ++ ;; ++ ++ -inst-prefix-dir) ++ prev=inst_prefix ++ continue ++ ;; ++ ++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* ++ # so, if we see these flags be careful not to treat them like -L ++ -L[A-Z][A-Z]*:*) ++ case $with_gcc/$host in ++ no/*-*-irix*) ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ ;; ++ esac ++ continue ++ ;; ++ ++ -L*) ++ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ++ exit 1 ++ fi ++ dir="$absdir" ++ ;; ++ esac ++ case "$deplibs " in ++ *" -L$dir "*) ;; ++ *) ++ deplibs="$deplibs -L$dir" ++ lib_search_path="$lib_search_path $dir" ++ ;; ++ esac ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$dir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$dir";; ++ esac ++ ;; ++ esac ++ continue ++ ;; ++ ++ -l*) ++ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then ++ case $host in ++ *-*-cygwin* | *-*-pw32* | *-*-beos*) ++ # These systems don't actually have a C or math library (as such) ++ continue ++ ;; ++ *-*-mingw* | *-*-os2*) ++ # These systems don't actually have a C library (as such) ++ test "X$arg" = "X-lc" && continue ++ ;; ++ esac ++ fi ++ deplibs="$deplibs $arg" ++ continue ++ ;; ++ ++ -module) ++ module=yes ++ continue ++ ;; ++ ++ -no-fast-install) ++ fast_install=no ++ continue ++ ;; ++ ++ -no-install) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ # The PATH hackery in wrapper scripts is required on Windows ++ # in order for the loader to find any dlls it needs. ++ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 ++ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 ++ fast_install=no ++ ;; ++ *) no_install=yes ;; ++ esac ++ continue ++ ;; ++ ++ -no-undefined) ++ allow_undefined=no ++ continue ++ ;; ++ ++ -o) prev=output ;; ++ ++ -release) ++ prev=release ++ continue ++ ;; ++ ++ -rpath) ++ prev=rpath ++ continue ++ ;; ++ ++ -R) ++ prev=xrpath ++ continue ++ ;; ++ ++ -R*) ++ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ $echo "$modename: only absolute run-paths are allowed" 1>&2 ++ exit 1 ++ ;; ++ esac ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ continue ++ ;; ++ ++ -static) ++ # The effects of -static are defined in a previous loop. ++ # We used to do the same as -all-static on platforms that ++ # didn't have a PIC flag, but the assumption that the effects ++ # would be equivalent was wrong. It would break on at least ++ # Digital Unix and AIX. ++ continue ++ ;; ++ ++ -thread-safe) ++ thread_safe=yes ++ continue ++ ;; ++ ++ -version-info) ++ prev=vinfo ++ continue ++ ;; ++ ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` ++ arg= ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Wl,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` ++ arg= ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $wl$flag" ++ linker_flags="$linker_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Xlinker) ++ prev=xlinker ++ continue ++ ;; ++ ++ # Some other compiler flag. ++ -* | +*) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ;; ++ ++ *.lo | *.$objext) ++ # A library or standard object. ++ if test "$prev" = dlfiles; then ++ # This file was specified with -dlopen. ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $arg" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi ++ ++ if test "$prev" = dlprefiles; then ++ # Preload the old-style object. ++ dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` ++ prev= ++ else ++ case $arg in ++ *.lo) libobjs="$libobjs $arg" ;; ++ *) objs="$objs $arg" ;; ++ esac ++ fi ++ ;; ++ ++ *.$libext) ++ # An archive. ++ deplibs="$deplibs $arg" ++ old_deplibs="$old_deplibs $arg" ++ continue ++ ;; ++ ++ *.la) ++ # A libtool-controlled library. ++ ++ if test "$prev" = dlfiles; then ++ # This library was specified with -dlopen. ++ dlfiles="$dlfiles $arg" ++ prev= ++ elif test "$prev" = dlprefiles; then ++ # The library was specified with -dlpreopen. ++ dlprefiles="$dlprefiles $arg" ++ prev= ++ else ++ deplibs="$deplibs $arg" ++ fi ++ continue ++ ;; ++ ++ # Some other compiler argument. ++ *) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ;; ++ esac # arg ++ ++ # Now actually substitute the argument into the commands. ++ if test -n "$arg"; then ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi ++ done # argument parsing loop ++ ++ if test -n "$prev"; then ++ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then ++ eval arg=\"$export_dynamic_flag_spec\" ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi ++ ++ # calculate the name of the file, without its directory ++ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` ++ libobjs_save="$libobjs" ++ ++ if test -n "$shlibpath_var"; then ++ # get the directories listed in $shlibpath_var ++ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ else ++ shlib_search_path= ++ fi ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" ++ ++ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$output_objdir" = "X$output"; then ++ output_objdir="$objdir" ++ else ++ output_objdir="$output_objdir/$objdir" ++ fi ++ # Create the object directory. ++ if test ! -d $output_objdir; then ++ $show "$mkdir $output_objdir" ++ $run $mkdir $output_objdir ++ status=$? ++ if test $status -ne 0 && test ! -d $output_objdir; then ++ exit $status ++ fi ++ fi ++ ++ # Determine the type of output ++ case $output in ++ "") ++ $echo "$modename: you must specify an output file" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ *.$libext) linkmode=oldlib ;; ++ *.lo | *.$objext) linkmode=obj ;; ++ *.la) linkmode=lib ;; ++ *) linkmode=prog ;; # Anything else should be a program. ++ esac ++ ++ specialdeplibs= ++ libs= ++ # Find all interdependent deplibs by searching for libraries ++ # that are linked more than once (e.g. -la -lb -la) ++ for deplib in $deplibs; do ++ case "$libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ libs="$libs $deplib" ++ done ++ deplibs= ++ newdependency_libs= ++ newlib_search_path= ++ need_relink=no # whether we're linking any uninstalled libtool libraries ++ notinst_deplibs= # not-installed libtool libraries ++ notinst_path= # paths that contain not-installed libtool libraries ++ case $linkmode in ++ lib) ++ passes="conv link" ++ for file in $dlfiles $dlprefiles; do ++ case $file in ++ *.la) ;; ++ *) ++ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ;; ++ prog) ++ compile_deplibs= ++ finalize_deplibs= ++ alldeplibs=no ++ newdlfiles= ++ newdlprefiles= ++ passes="conv scan dlopen dlpreopen link" ++ ;; ++ *) passes="conv" ++ ;; ++ esac ++ for pass in $passes; do ++ if test $linkmode = prog; then ++ # Determine which files to process ++ case $pass in ++ dlopen) ++ libs="$dlfiles" ++ save_deplibs="$deplibs" # Collect dlpreopened libraries ++ deplibs= ++ ;; ++ dlpreopen) libs="$dlprefiles" ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ esac ++ fi ++ for deplib in $libs; do ++ lib= ++ found=no ++ case $deplib in ++ -l*) ++ if test $linkmode = oldlib && test $linkmode = obj; then ++ $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 ++ continue ++ fi ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` ++ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ # Search the libtool library ++ lib="$searchdir/lib${name}.la" ++ if test -f "$lib"; then ++ found=yes ++ break ++ fi ++ done ++ if test "$found" != yes; then ++ # deplib doesn't seem to be a libtool library ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" ++ fi ++ continue ++ fi ++ ;; # -l ++ -L*) ++ case $linkmode in ++ lib) ++ deplibs="$deplib $deplibs" ++ test $pass = conv && continue ++ newdependency_libs="$deplib $newdependency_libs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ++ ;; ++ prog) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ if test $pass = scan; then ++ deplibs="$deplib $deplibs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ ;; ++ *) ++ $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 ++ ;; ++ esac # linkmode ++ continue ++ ;; # -L ++ -R*) ++ if test $pass = link; then ++ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` ++ # Make sure the xrpath contains only unique directories. ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ fi ++ deplibs="$deplib $deplibs" ++ continue ++ ;; ++ *.la) lib="$deplib" ;; ++ *.$libext) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ case $linkmode in ++ lib) ++ if test "$deplibs_check_method" != pass_all; then ++ echo ++ echo "*** Warning: This library needs some functionality provided by $deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the" ++ echo "*** static library $deplib is not portable!" ++ deplibs="$deplib $deplibs" ++ fi ++ continue ++ ;; ++ prog) ++ if test $pass != link; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ continue ++ ;; ++ esac # linkmode ++ ;; # *.$libext ++ *.lo | *.$objext) ++ if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlopen support or we're linking statically, ++ # we need to preload. ++ newdlprefiles="$newdlprefiles $deplib" ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ newdlfiles="$newdlfiles $deplib" ++ fi ++ continue ++ ;; ++ %DEPLIBS%) ++ alldeplibs=yes ++ continue ++ ;; ++ esac # case $deplib ++ if test $found = yes || test -f "$lib"; then : ++ else ++ $echo "$modename: cannot find the library \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # Check to see that this really is a libtool archive. ++ if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ ++ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$ladir" = "X$lib" && ladir="." ++ ++ dlname= ++ dlopen= ++ dlpreopen= ++ libdir= ++ library_names= ++ old_library= ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variable installed. ++ installed=yes ++ ++ # Read the .la file ++ case $lib in ++ */* | *\\*) . $lib ;; ++ *) . ./$lib ;; ++ esac ++ ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan" || ++ { test $linkmode = oldlib && test $linkmode = obj; }; then ++ # Add dl[pre]opened files of deplib ++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen" ++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ fi ++ ++ if test $pass = conv; then ++ # Only check for convenience libraries ++ deplibs="$lib $deplibs" ++ if test -z "$libdir"; then ++ if test -z "$old_library"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ # It is a libtool convenience library, so add in its objects. ++ convenience="$convenience $ladir/$objdir/$old_library" ++ old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ tmp_libs="$tmp_libs $deplib" ++ done ++ elif test $linkmode != prog && test $linkmode != lib; then ++ $echo "$modename: \`$lib' is not a convenience library" 1>&2 ++ exit 1 ++ fi ++ continue ++ fi # $pass = conv ++ ++ # Get the name of the library we link against. ++ linklib= ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ if test -z "$linklib"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # This library was specified with -dlopen. ++ if test $pass = dlopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 ++ exit 1 ++ fi ++ if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlname, no dlopen support or we're linking ++ # statically, we need to preload. ++ dlprefiles="$dlprefiles $lib" ++ else ++ newdlfiles="$newdlfiles $lib" ++ fi ++ continue ++ fi # $pass = dlopen ++ ++ # We need an absolute path. ++ case $ladir in ++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; ++ *) ++ abs_ladir=`cd "$ladir" && pwd` ++ if test -z "$abs_ladir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 ++ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 ++ abs_ladir="$ladir" ++ fi ++ ;; ++ esac ++ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ ++ # Find the relevant object directory and library name. ++ if test "X$installed" = Xyes; then ++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ $echo "$modename: warning: library \`$lib' was moved." 1>&2 ++ dir="$ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ else ++ dir="$libdir" ++ absdir="$libdir" ++ fi ++ else ++ dir="$ladir/$objdir" ++ absdir="$abs_ladir/$objdir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ fi # $installed = yes ++ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ ++ # This library was specified with -dlpreopen. ++ if test $pass = dlpreopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 ++ exit 1 ++ fi ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ newdlprefiles="$newdlprefiles $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ newdlprefiles="$newdlprefiles $dir/$dlname" ++ else ++ newdlprefiles="$newdlprefiles $dir/$linklib" ++ fi ++ fi # $pass = dlpreopen ++ ++ if test -z "$libdir"; then ++ # Link the convenience library ++ if test $linkmode = lib; then ++ deplibs="$dir/$old_library $deplibs" ++ elif test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$dir/$old_library $compile_deplibs" ++ finalize_deplibs="$dir/$old_library $finalize_deplibs" ++ else ++ deplibs="$lib $deplibs" ++ fi ++ continue ++ fi ++ ++ if test $linkmode = prog && test $pass != link; then ++ newlib_search_path="$newlib_search_path $ladir" ++ deplibs="$lib $deplibs" ++ ++ linkalldeplibs=no ++ if test "$link_all_deplibs" != no || test -z "$library_names" || ++ test "$build_libtool_libs" = no; then ++ linkalldeplibs=yes ++ fi ++ ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test ++ esac ++ # Need to link against all dependency_libs? ++ if test $linkalldeplibs = yes; then ++ deplibs="$deplib $deplibs" ++ else ++ # Need to hardcode shared library paths ++ # or/and link against static libraries ++ newdependency_libs="$deplib $newdependency_libs" ++ fi ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ tmp_libs="$tmp_libs $deplib" ++ done # for deplib ++ continue ++ fi # $linkmode = prog... ++ ++ link_static=no # Whether the deplib will be linked statically ++ if test -n "$library_names" && ++ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then ++ # Link against this shared library ++ ++ if test "$linkmode,$pass" = "prog,link" || ++ { test $linkmode = lib && test $hardcode_into_libs = yes; }; then ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) compile_rpath="$compile_rpath $absdir" ++ esac ++ ;; ++ esac ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ++ esac ++ ;; ++ esac ++ if test $linkmode = prog; then ++ # We need to hardcode the library path ++ if test -n "$shlibpath_var"; then ++ # Make sure the rpath contains only unique directories. ++ case "$temp_rpath " in ++ *" $dir "*) ;; ++ *" $absdir "*) ;; ++ *) temp_rpath="$temp_rpath $dir" ;; ++ esac ++ fi ++ fi ++ fi # $linkmode,$pass = prog,link... ++ ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ ++ if test "$installed" = no; then ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=no ++ fi ++ ++ if test -n "$old_archive_from_expsyms_cmds"; then ++ # figure out the soname ++ set dummy $library_names ++ realname="$2" ++ shift; shift ++ libname=`eval \\$echo \"$libname_spec\"` ++ # use dlname if we got it. it's perfectly good, no? ++ if test -n "$dlname"; then ++ soname="$dlname" ++ elif test -n "$soname_spec"; then ++ # bleh windows ++ case $host in ++ *cygwin*) ++ major=`expr $current - $age` ++ versuffix="-$major" ++ ;; ++ esac ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ ++ # Make a new name for the extract_expsyms_cmds to use ++ soroot="$soname" ++ soname=`echo $soroot | sed -e 's/^.*\///'` ++ newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a" ++ ++ # If the library has no export list, then create one now ++ if test -f "$output_objdir/$soname-def"; then : ++ else ++ $show "extracting exported symbol list from \`$soname'" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$extract_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ ++ # Create $newlib ++ if test -f "$output_objdir/$newlib"; then :; else ++ $show "generating import library for \`$soname'" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$old_archive_from_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ # make sure the library variables are pointing to the new library ++ dir=$output_objdir ++ linklib=$newlib ++ fi # test -n $old_archive_from_expsyms_cmds ++ ++ if test $linkmode = prog || test "$mode" != relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ lib_linked=yes ++ case $hardcode_action in ++ immediate | unsupported) ++ if test "$hardcode_direct" = no; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = no; then ++ case $host in ++ *-*-sunos*) add_shlibpath="$dir" ;; ++ esac ++ add_dir="-L$dir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = no; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ relink) ++ if test "$hardcode_direct" = yes; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$dir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ *) lib_linked=no ;; ++ esac ++ ++ if test "$lib_linked" != yes; then ++ $echo "$modename: configuration error: unsupported hardcode properties" ++ exit 1 ++ fi ++ ++ if test -n "$add_shlibpath"; then ++ case :$compile_shlibpath: in ++ *":$add_shlibpath:"*) ;; ++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ esac ++ fi ++ if test $linkmode = prog; then ++ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" ++ test -n "$add" && compile_deplibs="$add $compile_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ if test "$hardcode_direct" != yes && \ ++ test "$hardcode_minus_L" != yes && \ ++ test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ fi ++ fi ++ fi ++ ++ if test $linkmode = prog || test "$mode" = relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ # Finalize command for both is simple: just hardcode it. ++ if test "$hardcode_direct" = yes; then ++ add="$libdir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ # Try looking first in the location we're being installed to. ++ add_dir= ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\\/]*) ++ add_dir="-L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ add_dir="$add_dir -L$libdir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ add="-l$name" ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ # Try looking first in the location we're being installed to. ++ add_dir= ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\\/]*) ++ add_dir="-L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ add_dir="$add_dir -L$libdir" ++ add="-l$name" ++ fi ++ ++ if test $linkmode = prog; then ++ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" ++ test -n "$add" && finalize_deplibs="$add $finalize_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ fi ++ fi ++ elif test $linkmode = prog; then ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ ++ # Try to link the static library ++ # Here we assume that one of hardcode_direct or hardcode_minus_L ++ # is not unsupported. This is valid on all known static and ++ # shared platforms. ++ if test "$hardcode_direct" != unsupported; then ++ test -n "$old_library" && linklib="$old_library" ++ compile_deplibs="$dir/$linklib $compile_deplibs" ++ finalize_deplibs="$dir/$linklib $finalize_deplibs" ++ else ++ compile_deplibs="-l$name -L$dir $compile_deplibs" ++ finalize_deplibs="-l$name -L$dir $finalize_deplibs" ++ fi ++ elif test "$build_libtool_libs" = yes; then ++ # Not a shared library ++ if test "$deplibs_check_method" != pass_all; then ++ # We're trying link a shared library against a static one ++ # but the system doesn't support it. ++ ++ # Just print a warning and add the library to dependency_libs so ++ # that the program can be linked against the static library. ++ echo ++ echo "*** Warning: This library needs some functionality provided by $lib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ if test "$module" = yes; then ++ echo "*** Therefore, libtool will create a static module, that should work " ++ echo "*** as long as the dlopening application is linked with the -dlopen flag." ++ if test -z "$global_symbol_pipe"; then ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ else ++ convenience="$convenience $dir/$old_library" ++ old_convenience="$old_convenience $dir/$old_library" ++ deplibs="$dir/$old_library $deplibs" ++ link_static=yes ++ fi ++ fi # link shared/static library? ++ ++ if test $linkmode = lib; then ++ if test -n "$dependency_libs" && ++ { test $hardcode_into_libs != yes || test $build_old_libs = yes || ++ test $link_static = yes; }; then ++ # Extract -R from dependency_libs ++ temp_deplibs= ++ for libdir in $dependency_libs; do ++ case $libdir in ++ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` ++ case " $xrpath " in ++ *" $temp_xrpath "*) ;; ++ *) xrpath="$xrpath $temp_xrpath";; ++ esac;; ++ *) temp_deplibs="$temp_deplibs $libdir";; ++ esac ++ done ++ dependency_libs="$temp_deplibs" ++ fi ++ ++ newlib_search_path="$newlib_search_path $absdir" ++ # Link against this library ++ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" ++ # ... and its dependency_libs ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ newdependency_libs="$deplib $newdependency_libs" ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ tmp_libs="$tmp_libs $deplib" ++ done ++ ++ if test $link_all_deplibs != no; then ++ # Add the search paths of all dependency libraries ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) path="$deplib" ;; ++ *.la) ++ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$deplib" && dir="." ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 ++ absdir="$dir" ++ fi ++ ;; ++ esac ++ if grep "^installed=no" $deplib > /dev/null; then ++ path="-L$absdir/$objdir" ++ else ++ eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ if test "$absdir" != "$libdir"; then ++ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 ++ fi ++ path="-L$absdir" ++ fi ++ ;; ++ *) continue ;; ++ esac ++ case " $deplibs " in ++ *" $path "*) ;; ++ *) deplibs="$deplibs $path" ;; ++ esac ++ done ++ fi # link_all_deplibs != no ++ fi # linkmode = lib ++ done # for deplib in $libs ++ if test $pass = dlpreopen; then ++ # Link the dlpreopened libraries before other libraries ++ for deplib in $save_deplibs; do ++ deplibs="$deplib $deplibs" ++ done ++ fi ++ if test $pass != dlopen; then ++ test $pass != scan && dependency_libs="$newdependency_libs" ++ if test $pass != conv; then ++ # Make sure lib_search_path contains only unique directories. ++ lib_search_path= ++ for dir in $newlib_search_path; do ++ case "$lib_search_path " in ++ *" $dir "*) ;; ++ *) lib_search_path="$lib_search_path $dir" ;; ++ esac ++ done ++ newlib_search_path= ++ fi ++ ++ if test "$linkmode,$pass" != "prog,link"; then ++ vars="deplibs" ++ else ++ vars="compile_deplibs finalize_deplibs" ++ fi ++ for var in $vars dependency_libs; do ++ # Add libraries to $var in reverse order ++ eval tmp_libs=\"\$$var\" ++ new_libs= ++ for deplib in $tmp_libs; do ++ case $deplib in ++ -L*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $specialdeplibs " in ++ *" $deplib "*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$deplib $new_libs" ;; ++ esac ++ ;; ++ esac ++ ;; ++ esac ++ done ++ tmp_libs= ++ for deplib in $new_libs; do ++ case $deplib in ++ -L*) ++ case " $tmp_libs " in ++ *" $deplib "*) ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ done ++ eval $var=\"$tmp_libs\" ++ done # for var ++ fi ++ if test "$pass" = "conv" && ++ { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then ++ libs="$deplibs" # reset libs ++ deplibs= ++ fi ++ done # for pass ++ if test $linkmode = prog; then ++ dlfiles="$newdlfiles" ++ dlprefiles="$newdlprefiles" ++ fi ++ ++ case $linkmode in ++ oldlib) ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$rpath"; then ++ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$xrpath"; then ++ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 ++ fi ++ ++ # Now set the variables for building old libraries. ++ build_libtool_libs=no ++ oldlibs="$output" ++ objs="$objs$old_deplibs" ++ ;; ++ ++ lib) ++ # Make sure we only generate libraries of the form `libNAME.la'. ++ case $outputname in ++ lib*) ++ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ eval libname=\"$libname_spec\" ++ ;; ++ *) ++ if test "$module" = no; then ++ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ if test "$need_lib_prefix" != no; then ++ # Add the "lib" prefix for modules if required ++ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` ++ eval libname=\"$libname_spec\" ++ else ++ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` ++ fi ++ ;; ++ esac ++ ++ if test -n "$objs"; then ++ if test "$deplibs_check_method" != pass_all; then ++ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 ++ exit 1 ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the non-libtool" ++ echo "*** objects $objs is not portable!" ++ libobjs="$libobjs $objs" ++ fi ++ fi ++ ++ if test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 ++ fi ++ ++ set dummy $rpath ++ if test $# -gt 2; then ++ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 ++ fi ++ install_libdir="$2" ++ ++ oldlibs= ++ if test -z "$rpath"; then ++ if test "$build_libtool_libs" = yes; then ++ # Building a libtool convenience library. ++ libext=al ++ oldlibs="$output_objdir/$libname.$libext $oldlibs" ++ build_libtool_libs=convenience ++ build_old_libs=yes ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 ++ fi ++ else ++ ++ # Parse the version information argument. ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' ++ set dummy $vinfo 0 0 0 ++ IFS="$save_ifs" ++ ++ if test -n "$8"; then ++ $echo "$modename: too many parameters to \`-version-info'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ current="$2" ++ revision="$3" ++ age="$4" ++ ++ # Check that each of the things are valid numbers. ++ case $current in ++ [0-9]*) ;; ++ *) ++ $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ case $revision in ++ [0-9]*) ;; ++ *) ++ $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ case $age in ++ [0-9]*) ;; ++ *) ++ $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ if test $age -gt $current; then ++ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ fi ++ ++ # Calculate the version variables. ++ major= ++ versuffix= ++ verstring= ++ case $version_type in ++ none) ;; ++ ++ darwin) ++ # Like Linux, but with the current version available in ++ # verstring for coding it into the library header ++ major=.`expr $current - $age` ++ versuffix="$major.$age.$revision" ++ # Darwin ld doesn't like 0 for these options... ++ minor_current=`expr $current + 1` ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ++ ;; ++ ++ freebsd-aout) ++ major=".$current" ++ versuffix=".$current.$revision"; ++ ;; ++ ++ freebsd-elf) ++ major=".$current" ++ versuffix=".$current"; ++ ;; ++ ++ irix) ++ major=`expr $current - $age + 1` ++ verstring="sgi$major.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$revision ++ while test $loop != 0; do ++ iface=`expr $revision - $loop` ++ loop=`expr $loop - 1` ++ verstring="sgi$major.$iface:$verstring" ++ done ++ ++ # Before this point, $major must not contain `.'. ++ major=.$major ++ versuffix="$major.$revision" ++ ;; ++ ++ linux) ++ major=.`expr $current - $age` ++ versuffix="$major.$age.$revision" ++ ;; ++ ++ osf) ++ major=`expr $current - $age` ++ versuffix=".$current.$age.$revision" ++ verstring="$current.$age.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$age ++ while test $loop != 0; do ++ iface=`expr $current - $loop` ++ loop=`expr $loop - 1` ++ verstring="$verstring:${iface}.0" ++ done ++ ++ # Make executables depend on our current version. ++ verstring="$verstring:${current}.0" ++ ;; ++ ++ sunos) ++ major=".$current" ++ versuffix=".$current.$revision" ++ ;; ++ ++ windows) ++ # Use '-' rather than '.', since we only want one ++ # extension on DOS 8.3 filesystems. ++ major=`expr $current - $age` ++ versuffix="-$major" ++ ;; ++ ++ *) ++ $echo "$modename: unknown library version type \`$version_type'" 1>&2 ++ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Clear the version info if we defaulted, and they specified a release. ++ if test -z "$vinfo" && test -n "$release"; then ++ major= ++ verstring="0.0" ++ if test "$need_version" = no; then ++ versuffix= ++ else ++ versuffix=".0.0" ++ fi ++ fi ++ ++ # Remove version info from name if versioning should be avoided ++ if test "$avoid_version" = yes && test "$need_version" = no; then ++ major= ++ versuffix= ++ verstring="" ++ fi ++ ++ # Check to see if the archive will have undefined symbols. ++ if test "$allow_undefined" = yes; then ++ if test "$allow_undefined_flag" = unsupported; then ++ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 ++ build_libtool_libs=no ++ build_old_libs=yes ++ fi ++ else ++ # Don't allow undefined symbols. ++ allow_undefined_flag="$no_undefined_flag" ++ fi ++ fi ++ ++ if test "$mode" != relink; then ++ # Remove our outputs. ++ $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" ++ $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* ++ fi ++ ++ # Now set the variables for building old libraries. ++ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then ++ oldlibs="$oldlibs $output_objdir/$libname.$libext" ++ ++ # Transform .lo files to .o files. ++ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` ++ fi ++ ++ # Eliminate all temporary directories. ++ for path in $notinst_path; do ++ lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'` ++ deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'` ++ dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'` ++ done ++ ++ if test -n "$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ temp_xrpath= ++ for libdir in $xrpath; do ++ temp_xrpath="$temp_xrpath -R$libdir" ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ if test $hardcode_into_libs != yes || test $build_old_libs = yes; then ++ dependency_libs="$temp_xrpath $dependency_libs" ++ fi ++ fi ++ ++ # Make sure dlfiles contains only unique files that won't be dlpreopened ++ old_dlfiles="$dlfiles" ++ dlfiles= ++ for lib in $old_dlfiles; do ++ case " $dlprefiles $dlfiles " in ++ *" $lib "*) ;; ++ *) dlfiles="$dlfiles $lib" ;; ++ esac ++ done ++ ++ # Make sure dlprefiles contains only unique files ++ old_dlprefiles="$dlprefiles" ++ dlprefiles= ++ for lib in $old_dlprefiles; do ++ case "$dlprefiles " in ++ *" $lib "*) ;; ++ *) dlprefiles="$dlprefiles $lib" ;; ++ esac ++ done ++ ++ if test "$build_libtool_libs" = yes; then ++ if test -n "$rpath"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) ++ # these systems don't actually have a c library (as such)! ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C library is in the System framework ++ deplibs="$deplibs -framework System" ++ ;; ++ *-*-netbsd*) ++ # Don't link with libc until the a.out ld.so is fixed. ++ ;; ++ *) ++ # Add libc to deplibs on all other systems if necessary. ++ if test $build_libtool_need_lc = "yes"; then ++ deplibs="$deplibs -lc" ++ fi ++ ;; ++ esac ++ fi ++ ++ # Transform deplibs into only deplibs that can be linked in shared. ++ name_save=$name ++ libname_save=$libname ++ release_save=$release ++ versuffix_save=$versuffix ++ major_save=$major ++ # I'm not sure if I'm treating the release correctly. I think ++ # release should show up in the -l (ie -lgmp5) so we don't want to ++ # add it in twice. Is that correct? ++ release="" ++ versuffix="" ++ major="" ++ newdeplibs= ++ droppeddeps=no ++ case $deplibs_check_method in ++ pass_all) ++ # Don't check for shared/static. Everything works. ++ # This might be a little naive. We might want to check ++ # whether the library exists or not. But this is on ++ # osf3 & osf4 and I'm not really sure... Just ++ # implementing what was already the behaviour. ++ newdeplibs=$deplibs ++ ;; ++ test_compile) ++ # This code stresses the "libraries are programs" paradigm to its ++ # limits. Maybe even breaks it. We compile a program, linking it ++ # against the deplibs as a proxy for the library. Then we can check ++ # whether they linked in statically or dynamically with ldd. ++ $rm conftest.c ++ cat > conftest.c </dev/null` ++ for potent_lib in $potential_libs; do ++ # Follow soft links. ++ if ls -lLd "$potent_lib" 2>/dev/null \ ++ | grep " -> " >/dev/null; then ++ continue ++ fi ++ # The statement above tries to avoid entering an ++ # endless loop below, in case of cyclic links. ++ # We might still enter an endless loop, since a link ++ # loop can be closed while we follow links, ++ # but so what? ++ potlib="$potent_lib" ++ while test -h "$potlib" 2>/dev/null; do ++ potliblink=`ls -ld $potlib | sed 's/.* -> //'` ++ case $potliblink in ++ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; ++ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; ++ esac ++ done ++ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ ++ | sed 10q \ ++ | egrep "$file_magic_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ echo ++ echo "*** Warning: This library needs some functionality provided by $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ fi ++ else ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ fi ++ done # Gone through all deplibs. ++ ;; ++ match_pattern*) ++ set dummy $deplibs_check_method ++ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` ++ for a_deplib in $deplibs; do ++ name="`expr $a_deplib : '-l\(.*\)'`" ++ # If $name is empty we are operating on a -L argument. ++ if test -n "$name" && test "$name" != "0"; then ++ libname=`eval \\$echo \"$libname_spec\"` ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ for potent_lib in $potential_libs; do ++ if eval echo \"$potent_lib\" 2>/dev/null \ ++ | sed 10q \ ++ | egrep "$match_pattern_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ echo ++ echo "*** Warning: This library needs some functionality provided by $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ fi ++ else ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ fi ++ done # Gone through all deplibs. ++ ;; ++ none | unknown | *) ++ newdeplibs="" ++ if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ ++ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | ++ grep . >/dev/null; then ++ echo ++ if test "X$deplibs_check_method" = "Xnone"; then ++ echo "*** Warning: inter-library dependencies are not supported in this platform." ++ else ++ echo "*** Warning: inter-library dependencies are not known to be supported." ++ fi ++ echo "*** All declared inter-library dependencies are being dropped." ++ droppeddeps=yes ++ fi ++ ;; ++ esac ++ versuffix=$versuffix_save ++ major=$major_save ++ release=$release_save ++ libname=$libname_save ++ name=$name_save ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ ;; ++ esac ++ ++ if test "$droppeddeps" = yes; then ++ if test "$module" = yes; then ++ echo ++ echo "*** Warning: libtool could not satisfy all declared inter-library" ++ echo "*** dependencies of module $libname. Therefore, libtool will create" ++ echo "*** a static module, that should work as long as the dlopening" ++ echo "*** application is linked with the -dlopen flag." ++ if test -z "$global_symbol_pipe"; then ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ else ++ echo "*** The inter-library dependencies that have been dropped here will be" ++ echo "*** automatically added whenever a program is linked with this library" ++ echo "*** or is declared to -dlopen it." ++ ++ if test $allow_undefined = no; then ++ echo ++ echo "*** Since this library must not contain undefined symbols," ++ echo "*** because either the platform does not support them or" ++ echo "*** it was explicitly requested with -no-undefined," ++ echo "*** libtool will only create a static version of it." ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ fi ++ fi ++ # Done checking deplibs! ++ deplibs=$newdeplibs ++ fi ++ ++ # All the library-specific variables (install_libdir is set above). ++ library_names= ++ old_library= ++ dlname= ++ ++ # Test again, we may have decided not to build it any more ++ if test "$build_libtool_libs" = yes; then ++ if test $hardcode_into_libs = yes; then ++ # Hardcode the library paths ++ hardcode_libdirs= ++ dep_rpath= ++ rpath="$finalize_rpath" ++ test "$mode" != relink && rpath="$compile_rpath$rpath" ++ for libdir in $rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ dep_rpath="$dep_rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval dep_rpath=\"$hardcode_libdir_flag_spec\" ++ fi ++ if test -n "$runpath_var" && test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" ++ fi ++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" ++ fi ++ ++ shlibpath="$finalize_shlibpath" ++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ if test -n "$shlibpath"; then ++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" ++ fi ++ ++ # Get the real and link names of the library. ++ eval library_names=\"$library_names_spec\" ++ set dummy $library_names ++ realname="$2" ++ shift; shift ++ ++ if test -n "$soname_spec"; then ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ test -z "$dlname" && dlname=$soname ++ ++ lib="$output_objdir/$realname" ++ for link ++ do ++ linknames="$linknames $link" ++ done ++ ++ # Ensure that we have .o objects for linkers which dislike .lo ++ # (e.g. aix) in case we are running --disable-static ++ for obj in $libobjs; do ++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$obj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` ++ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` ++ if test ! -f $xdir/$oldobj; then ++ $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" ++ $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? ++ fi ++ done ++ ++ # Use standard objects if they are pic ++ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then ++ $show "generating symbol list for \`$libname.la'" ++ export_symbols="$output_objdir/$libname.exp" ++ $run $rm $export_symbols ++ eval cmds=\"$export_symbols_cmds\" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ if test -n "$export_symbols_regex"; then ++ $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" ++ $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ $show "$mv \"${export_symbols}T\" \"$export_symbols\"" ++ $run eval '$mv "${export_symbols}T" "$export_symbols"' ++ fi ++ fi ++ fi ++ ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' ++ fi ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ else ++ gentop="$output_objdir/${outputname}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ for xlib in $convenience; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ fi ++ ++ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then ++ eval flag=\"$thread_safe_flag_spec\" ++ linker_flags="$linker_flags $flag" ++ fi ++ ++ # Make a backup of the uninstalled library when relinking ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? ++ fi ++ ++ # Do each of the archive commands. ++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ++ eval cmds=\"$archive_expsym_cmds\" ++ else ++ eval cmds=\"$archive_cmds\" ++ fi ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? ++ exit 0 ++ fi ++ ++ # Create links to the real library. ++ for linkname in $linknames; do ++ if test "$realname" != "$linkname"; then ++ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" ++ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? ++ fi ++ done ++ ++ # If -module or -export-dynamic was specified, set the dlname. ++ if test "$module" = yes || test "$export_dynamic" = yes; then ++ # On all known operating systems, these are identical. ++ dlname="$soname" ++ fi ++ fi ++ ;; ++ ++ obj) ++ if test -n "$deplibs"; then ++ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$rpath"; then ++ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$xrpath"; then ++ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 ++ fi ++ ++ case $output in ++ *.lo) ++ if test -n "$objs$old_deplibs"; then ++ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 ++ exit 1 ++ fi ++ libobj="$output" ++ obj=`$echo "X$output" | $Xsed -e "$lo2o"` ++ ;; ++ *) ++ libobj= ++ obj="$output" ++ ;; ++ esac ++ ++ # Delete the old objects. ++ $run $rm $obj $libobj ++ ++ # Objects from convenience libraries. This assumes ++ # single-version convenience libraries. Whenever we create ++ # different ones for PIC/non-PIC, this we'll have to duplicate ++ # the extraction. ++ reload_conv_objs= ++ gentop= ++ # reload_cmds runs $LD directly, so let us get rid of ++ # -Wl from whole_archive_flag_spec ++ wl= ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" ++ else ++ gentop="$output_objdir/${obj}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ for xlib in $convenience; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ fi ++ ++ # Create the old-style object. ++ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test ++ ++ output="$obj" ++ eval cmds=\"$reload_cmds\" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ ++ # Exit if we aren't doing a library object file. ++ if test -z "$libobj"; then ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ exit 0 ++ fi ++ ++ if test "$build_libtool_libs" != yes; then ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ # Create an invalid libtool object if no PIC, so that we don't ++ # accidentally link it into a program. ++ $show "echo timestamp > $libobj" ++ $run eval "echo timestamp > $libobj" || exit $? ++ exit 0 ++ fi ++ ++ if test -n "$pic_flag" || test "$pic_mode" != default; then ++ # Only do commands if we really have different PIC objects. ++ reload_objs="$libobjs $reload_conv_objs" ++ output="$libobj" ++ eval cmds=\"$reload_cmds\" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ else ++ # Just create a symlink. ++ $show $rm $libobj ++ $run $rm $libobj ++ xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$libobj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` ++ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` ++ $show "(cd $xdir && $LN_S $oldobj $baseobj)" ++ $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? ++ fi ++ ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ exit 0 ++ ;; ++ ++ prog) ++ case $host in ++ *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;; ++ esac ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 ++ fi ++ ++ if test "$preload" = yes; then ++ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && ++ test "$dlopen_self_static" = unknown; then ++ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." ++ fi ++ fi ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ ;; ++ esac ++ ++ compile_command="$compile_command $compile_deplibs" ++ finalize_command="$finalize_command $finalize_deplibs" ++ ++ if test -n "$rpath$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ for libdir in $rpath $xrpath; do ++ # This is the magic to use -rpath. ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ fi ++ ++ # Now hardcode the library paths ++ rpath= ++ hardcode_libdirs= ++ for libdir in $compile_rpath $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath="$rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$libdir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$libdir";; ++ esac ++ ;; ++ esac ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ compile_rpath="$rpath" ++ ++ rpath= ++ hardcode_libdirs= ++ for libdir in $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath="$rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$finalize_perm_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ finalize_rpath="$rpath" ++ ++ if test -n "$libobjs" && test "$build_old_libs" = yes; then ++ # Transform all the library objects into standard objects. ++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ fi ++ ++ dlsyms= ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ if test -n "$NM" && test -n "$global_symbol_pipe"; then ++ dlsyms="${outputname}S.c" ++ else ++ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 ++ fi ++ fi ++ ++ if test -n "$dlsyms"; then ++ case $dlsyms in ++ "") ;; ++ *.c) ++ # Discover the nlist of each of the dlfiles. ++ nlist="$output_objdir/${outputname}.nm" ++ ++ $show "$rm $nlist ${nlist}S ${nlist}T" ++ $run $rm "$nlist" "${nlist}S" "${nlist}T" ++ ++ # Parse the name list into a source file. ++ $show "creating $output_objdir/$dlsyms" ++ ++ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ ++/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ ++/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ ++ ++#ifdef __cplusplus ++extern \"C\" { ++#endif ++ ++/* Prevent the only kind of declaration conflicts we can make. */ ++#define lt_preloaded_symbols some_other_symbol ++ ++/* External symbol declarations for the compiler. */\ ++" ++ ++ if test "$dlself" = yes; then ++ $show "generating symbol list for \`$output'" ++ ++ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" ++ ++ # Add our own program objects to the symbol list. ++ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ for arg in $progfiles; do ++ $show "extracting global C symbols from \`$arg'" ++ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -n "$exclude_expsyms"; then ++ $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' ++ $run eval '$mv "$nlist"T "$nlist"' ++ fi ++ ++ if test -n "$export_symbols_regex"; then ++ $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' ++ $run eval '$mv "$nlist"T "$nlist"' ++ fi ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ export_symbols="$output_objdir/$output.exp" ++ $run $rm $export_symbols ++ $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ++ else ++ $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' ++ $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' ++ $run eval 'mv "$nlist"T "$nlist"' ++ fi ++ fi ++ ++ for arg in $dlprefiles; do ++ $show "extracting global C symbols from \`$arg'" ++ name=`echo "$arg" | sed -e 's%^.*/%%'` ++ $run eval 'echo ": $name " >> "$nlist"' ++ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -z "$run"; then ++ # Make sure we have at least an empty file. ++ test -f "$nlist" || : > "$nlist" ++ ++ if test -n "$exclude_expsyms"; then ++ egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T ++ $mv "$nlist"T "$nlist" ++ fi ++ ++ # Try sorting and uniquifying the output. ++ if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then ++ : ++ else ++ grep -v "^: " < "$nlist" > "$nlist"S ++ fi ++ ++ if test -f "$nlist"S; then ++ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' ++ else ++ echo '/* NONE */' >> "$output_objdir/$dlsyms" ++ fi ++ ++ $echo >> "$output_objdir/$dlsyms" "\ ++ ++#undef lt_preloaded_symbols ++ ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr_t void * ++#else ++# define lt_ptr_t char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr_t address; ++} ++lt_preloaded_symbols[] = ++{\ ++" ++ ++ sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \ ++ -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \ ++ < "$nlist" >> "$output_objdir/$dlsyms" ++ ++ $echo >> "$output_objdir/$dlsyms" "\ ++ {0, (lt_ptr_t) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif\ ++" ++ fi ++ ++ pic_flag_for_symtable= ++ case $host in ++ # compiling the symbol table file with pic_flag works around ++ # a FreeBSD bug that causes programs to crash when -lm is ++ # linked before any other PIC object. But we must not use ++ # pic_flag when linking with -static. The problem exists in ++ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. ++ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; ++ esac;; ++ *-*-hpux*) ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) pic_flag_for_symtable=" $pic_flag -DPIC";; ++ esac ++ esac ++ ++ # Now compile the dynamic symbol file. ++ $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" ++ $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? ++ ++ # Clean up the generated files. ++ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" ++ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" ++ ++ # Transform the symbol file into the correct name. ++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ++ ;; ++ *) ++ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ else ++ # We keep going just in case the user didn't refer to ++ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe ++ # really was required. ++ ++ # Nullify the symbol file. ++ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` ++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` ++ fi ++ ++ if test $need_relink = no || test "$build_libtool_libs" != yes; then ++ # Replace the output file specification. ++ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ link_command="$compile_command$compile_rpath" ++ ++ # We have no uninstalled library dependencies, so finalize right now. ++ $show "$link_command" ++ $run eval "$link_command" ++ status=$? ++ ++ # Delete the generated files. ++ if test -n "$dlsyms"; then ++ $show "$rm $output_objdir/${outputname}S.${objext}" ++ $run $rm "$output_objdir/${outputname}S.${objext}" ++ fi ++ ++ exit $status ++ fi ++ ++ if test -n "$shlibpath_var"; then ++ # We should set the shlibpath_var ++ rpath= ++ for dir in $temp_rpath; do ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ++ # Absolute path. ++ rpath="$rpath$dir:" ++ ;; ++ *) ++ # Relative path: add a thisdir entry. ++ rpath="$rpath\$thisdir/$dir:" ++ ;; ++ esac ++ done ++ temp_rpath="$rpath" ++ fi ++ ++ if test -n "$compile_shlibpath$finalize_shlibpath"; then ++ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" ++ fi ++ if test -n "$finalize_shlibpath"; then ++ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" ++ fi ++ ++ compile_var= ++ finalize_var= ++ if test -n "$runpath_var"; then ++ if test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ compile_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ if test -n "$finalize_perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $finalize_perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ fi ++ ++ if test "$no_install" = yes; then ++ # We don't need to create a wrapper script. ++ link_command="$compile_var$compile_command$compile_rpath" ++ # Replace the output file specification. ++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ # Delete the old output file. ++ $run $rm $output ++ # Link the executable and exit ++ $show "$link_command" ++ $run eval "$link_command" || exit $? ++ exit 0 ++ fi ++ ++ if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" ++ ++ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 ++ $echo "$modename: \`$output' will be relinked during installation" 1>&2 ++ else ++ if test "$fast_install" != no; then ++ link_command="$finalize_var$compile_command$finalize_rpath" ++ if test "$fast_install" = yes; then ++ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` ++ else ++ # fast_install is set to needless ++ relink_command= ++ fi ++ else ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" ++ fi ++ fi ++ ++ # Replace the output file specification. ++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ ++ # Delete the old output files. ++ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname ++ ++ $show "$link_command" ++ $run eval "$link_command" || exit $? ++ ++ # Now create the wrapper script. ++ $show "creating $output" ++ ++ # Quote the relink command for shipping. ++ if test -n "$relink_command"; then ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ relink_command="cd `pwd`; $relink_command" ++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Quote $echo for shipping. ++ if test "X$echo" = "X$SHELL $0 --fallback-echo"; then ++ case $0 in ++ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; ++ *) qecho="$SHELL `pwd`/$0 --fallback-echo";; ++ esac ++ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` ++ else ++ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Only actually do things if our run command is non-null. ++ if test -z "$run"; then ++ # win32 will think the script is a binary if it has ++ # a .exe suffix, so we strip it off here. ++ case $output in ++ *.exe) output=`echo $output|sed 's,.exe$,,'` ;; ++ esac ++ # test for cygwin because mv fails w/o .exe extensions ++ case $host in ++ *cygwin*) exeext=.exe ;; ++ *) exeext= ;; ++ esac ++ $rm $output ++ trap "$rm $output; exit 1" 1 2 15 ++ ++ $echo > $output "\ ++#! $SHELL ++ ++# $output - temporary wrapper script for $objdir/$outputname ++# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP ++# ++# The $output program cannot be directly executed until all the libtool ++# libraries that it depends on are installed. ++# ++# This wrapper script should never be moved out of the build directory. ++# If it is, it will not operate correctly. ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e 1s/^X//' ++sed_quote_subst='$sed_quote_subst' ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi ++ ++relink_command=\"$relink_command\" ++ ++# This environment variable determines our operation mode. ++if test \"\$libtool_install_magic\" = \"$magic\"; then ++ # install mode needs the following variable: ++ notinst_deplibs='$notinst_deplibs' ++else ++ # When we are sourced in execute mode, \$file and \$echo are already set. ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ echo=\"$qecho\" ++ file=\"\$0\" ++ # Make sure echo works. ++ if test \"X\$1\" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then ++ # Yippee, \$echo works! ++ : ++ else ++ # Restart under the correct shell, and then maybe \$echo will work. ++ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} ++ fi ++ fi\ ++" ++ $echo >> $output "\ ++ ++ # Find the directory that this script lives in. ++ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` ++ test \"x\$thisdir\" = \"x\$file\" && thisdir=. ++ ++ # Follow symbolic links until we get to the real thisdir. ++ file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` ++ while test -n \"\$file\"; do ++ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` ++ ++ # If there was a directory component, then change thisdir. ++ if test \"x\$destdir\" != \"x\$file\"; then ++ case \"\$destdir\" in ++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; ++ *) thisdir=\"\$thisdir/\$destdir\" ;; ++ esac ++ fi ++ ++ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` ++ done ++ ++ # Try to get the absolute directory name. ++ absdir=\`cd \"\$thisdir\" && pwd\` ++ test -n \"\$absdir\" && thisdir=\"\$absdir\" ++" ++ ++ if test "$fast_install" = yes; then ++ echo >> $output "\ ++ program=lt-'$outputname'$exeext ++ progdir=\"\$thisdir/$objdir\" ++ ++ if test ! -f \"\$progdir/\$program\" || \\ ++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\ ++ test \"X\$file\" != \"X\$progdir/\$program\"; }; then ++ ++ file=\"\$\$-\$program\" ++ ++ if test ! -d \"\$progdir\"; then ++ $mkdir \"\$progdir\" ++ else ++ $rm \"\$progdir/\$file\" ++ fi" ++ ++ echo >> $output "\ ++ ++ # relink executable if necessary ++ if test -n \"\$relink_command\"; then ++ if (eval \$relink_command); then : ++ else ++ $rm \"\$progdir/\$file\" ++ exit 1 ++ fi ++ fi ++ ++ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || ++ { $rm \"\$progdir/\$program\"; ++ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } ++ $rm \"\$progdir/\$file\" ++ fi" ++ else ++ echo >> $output "\ ++ program='$outputname' ++ progdir=\"\$thisdir/$objdir\" ++" ++ fi ++ ++ echo >> $output "\ ++ ++ if test -f \"\$progdir/\$program\"; then" ++ ++ # Export our shlibpath_var if we have one. ++ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then ++ $echo >> $output "\ ++ # Add our own library path to $shlibpath_var ++ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" ++ ++ # Some systems cannot cope with colon-terminated $shlibpath_var ++ # The second colon is a workaround for a bug in BeOS R4 sed ++ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` ++ ++ export $shlibpath_var ++" ++ fi ++ ++ # fixup the dll searchpath if we need to. ++ if test -n "$dllsearchpath"; then ++ $echo >> $output "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" ++ fi ++ ++ $echo >> $output "\ ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ # Run the actual program with our arguments. ++" ++ case $host in ++ # win32 systems need to use the prog path for dll ++ # lookup to work ++ *-*-cygwin* | *-*-pw32*) ++ $echo >> $output "\ ++ exec \$progdir/\$program \${1+\"\$@\"} ++" ++ ;; ++ ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2*) ++ $echo >> $output "\ ++ exec \$progdir\\\\\$program \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $echo >> $output "\ ++ # Export the path to the program. ++ PATH=\"\$progdir:\$PATH\" ++ export PATH ++ ++ exec \$program \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $echo >> $output "\ ++ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" ++ exit 1 ++ fi ++ else ++ # The program doesn't exist. ++ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 ++ \$echo \"This script is just a wrapper for \$program.\" 1>&2 ++ echo \"See the $PACKAGE documentation for more information.\" 1>&2 ++ exit 1 ++ fi ++fi\ ++" ++ chmod +x $output ++ fi ++ exit 0 ++ ;; ++ esac ++ ++ # See if we need to build an old-fashioned archive. ++ for oldlib in $oldlibs; do ++ ++ if test "$build_libtool_libs" = convenience; then ++ oldobjs="$libobjs_save" ++ addlibs="$convenience" ++ build_libtool_libs=no ++ else ++ if test "$build_libtool_libs" = module; then ++ oldobjs="$libobjs_save" ++ build_libtool_libs=no ++ else ++ oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` ++ fi ++ addlibs="$old_convenience" ++ fi ++ ++ if test -n "$addlibs"; then ++ gentop="$output_objdir/${outputname}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ # Add in members from convenience archives. ++ for xlib in $addlibs; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ ++ # Do each command in the archive commands. ++ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then ++ eval cmds=\"$old_archive_from_new_cmds\" ++ else ++ # Ensure that we have .o objects in place in case we decided ++ # not to build a shared library, and have fallen back to building ++ # static libs even though --disable-static was passed! ++ for oldobj in $oldobjs; do ++ if test ! -f $oldobj; then ++ xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$oldobj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` ++ obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` ++ $show "(cd $xdir && ${LN_S} $obj $baseobj)" ++ $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? ++ fi ++ done ++ ++ eval cmds=\"$old_archive_cmds\" ++ fi ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ done ++ ++ if test -n "$generated"; then ++ $show "${rm}r$generated" ++ $run ${rm}r$generated ++ fi ++ ++ # Now create the libtool archive. ++ case $output in ++ *.la) ++ old_library= ++ test "$build_old_libs" = yes && old_library="$libname.$libext" ++ $show "creating $output" ++ ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ # Quote the link command for shipping. ++ relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@" ++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ ++ # Only create the output if not a dry run. ++ if test -z "$run"; then ++ for installed in no yes; do ++ if test "$installed" = yes; then ++ if test -z "$install_libdir"; then ++ break ++ fi ++ output="$output_objdir/$outputname"i ++ # Replace all uninstalled libtool libraries with the installed ones ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ *.la) ++ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdependency_libs="$newdependency_libs $libdir/$name" ++ ;; ++ *) newdependency_libs="$newdependency_libs $deplib" ;; ++ esac ++ done ++ dependency_libs="$newdependency_libs" ++ newdlfiles= ++ for lib in $dlfiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlfiles="$newdlfiles $libdir/$name" ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlprefiles="$newdlprefiles $libdir/$name" ++ done ++ dlprefiles="$newdlprefiles" ++ fi ++ $rm $output ++ # place dlname in correct position for cygwin ++ tdlname=$dlname ++ case $host,$output,$installed,$module,$dlname in ++ *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; ++ esac ++ $echo > $output "\ ++# $outputname - a libtool library file ++# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. ++ ++# The name that we can dlopen(3). ++dlname='$tdlname' ++ ++# Names of this library. ++library_names='$library_names' ++ ++# The name of the static archive. ++old_library='$old_library' ++ ++# Libraries that this one depends upon. ++dependency_libs='$dependency_libs' ++ ++# Version information for $libname. ++current=$current ++age=$age ++revision=$revision ++ ++# Is this an already installed library? ++installed=$installed ++ ++# Files to dlopen/dlpreopen ++dlopen='$dlfiles' ++dlpreopen='$dlprefiles' ++ ++# Directory that this library needs to be installed in: ++libdir='$install_libdir'" ++ if test "$installed" = no && test $need_relink = yes; then ++ $echo >> $output "\ ++relink_command=\"$relink_command\"" ++ fi ++ done ++ fi ++ ++ # Do a symbolic link so that the libtool archive can be found in ++ # LD_LIBRARY_PATH before the program is installed. ++ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" ++ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ++ ;; ++ esac ++ exit 0 ++ ;; ++ ++ # libtool install mode ++ install) ++ modename="$modename: install" ++ ++ # There may be an optional sh(1) argument at the beginning of ++ # install_prog (especially on Windows NT). ++ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || ++ # Allow the use of GNU shtool's install command. ++ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then ++ # Aesthetically quote it. ++ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$arg " ++ arg="$1" ++ shift ++ else ++ install_prog= ++ arg="$nonopt" ++ fi ++ ++ # The real first argument should be the name of the installation program. ++ # Aesthetically quote it. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$install_prog$arg" ++ ++ # We need to accept at least all the BSD install flags. ++ dest= ++ files= ++ opts= ++ prev= ++ install_type= ++ isdir=no ++ stripme= ++ for arg ++ do ++ if test -n "$dest"; then ++ files="$files $dest" ++ dest="$arg" ++ continue ++ fi ++ ++ case $arg in ++ -d) isdir=yes ;; ++ -f) prev="-f" ;; ++ -g) prev="-g" ;; ++ -m) prev="-m" ;; ++ -o) prev="-o" ;; ++ -s) ++ stripme=" -s" ++ continue ++ ;; ++ -*) ;; ++ ++ *) ++ # If the previous option needed an argument, then skip it. ++ if test -n "$prev"; then ++ prev= ++ else ++ dest="$arg" ++ continue ++ fi ++ ;; ++ esac ++ ++ # Aesthetically quote the argument. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$install_prog $arg" ++ done ++ ++ if test -z "$install_prog"; then ++ $echo "$modename: you must specify an install program" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$prev"; then ++ $echo "$modename: the \`$prev' option requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test -z "$files"; then ++ if test -z "$dest"; then ++ $echo "$modename: no file or destination specified" 1>&2 ++ else ++ $echo "$modename: you must specify a destination" 1>&2 ++ fi ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Strip any trailing slash from the destination. ++ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` ++ ++ # Check to see that the destination is a directory. ++ test -d "$dest" && isdir=yes ++ if test "$isdir" = yes; then ++ destdir="$dest" ++ destname= ++ else ++ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$destdir" = "X$dest" && destdir=. ++ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` ++ ++ # Not a directory, so check to see that there is only one file specified. ++ set dummy $files ++ if test $# -gt 2; then ++ $echo "$modename: \`$dest' is not a directory" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ fi ++ case $destdir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ for file in $files; do ++ case $file in ++ *.lo) ;; ++ *) ++ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ;; ++ esac ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" ++ ++ staticlibs= ++ future_libdirs= ++ current_libdirs= ++ for file in $files; do ++ ++ # Do each installation. ++ case $file in ++ *.$libext) ++ # Do the static libraries later. ++ staticlibs="$staticlibs $file" ++ ;; ++ ++ *.la) ++ # Check to see that this really is a libtool archive. ++ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ library_names= ++ old_library= ++ relink_command= ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Add the libdir to current_libdirs if it is the destination. ++ if test "X$destdir" = "X$libdir"; then ++ case "$current_libdirs " in ++ *" $libdir "*) ;; ++ *) current_libdirs="$current_libdirs $libdir" ;; ++ esac ++ else ++ # Note the libdir as a future libdir. ++ case "$future_libdirs " in ++ *" $libdir "*) ;; ++ *) future_libdirs="$future_libdirs $libdir" ;; ++ esac ++ fi ++ ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ ++ test "X$dir" = "X$file/" && dir= ++ dir="$dir$objdir" ++ ++ if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ if test "$inst_prefix_dir" = "$destdir"; then ++ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` ++ fi ++ ++ $echo "$modename: warning: relinking \`$file'" 1>&2 ++ $show "$relink_command" ++ if $run eval "$relink_command"; then : ++ else ++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ exit 1 ++ fi ++ fi ++ ++ # See the names of the shared library. ++ set dummy $library_names ++ if test -n "$2"; then ++ realname="$2" ++ shift ++ shift ++ ++ srcname="$realname" ++ test -n "$relink_command" && srcname="$realname"T ++ ++ # Install the shared library and build the symlinks. ++ $show "$install_prog $dir/$srcname $destdir/$realname" ++ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$striplib $destdir/$realname" ++ $run eval "$striplib $destdir/$realname" || exit $? ++ fi ++ ++ if test $# -gt 0; then ++ # Delete the old symlinks, and create new ones. ++ for linkname ++ do ++ if test "$linkname" != "$realname"; then ++ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" ++ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" ++ fi ++ done ++ fi ++ ++ # Do each command in the postinstall commands. ++ lib="$destdir/$realname" ++ eval cmds=\"$postinstall_cmds\" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ ++ # Install the pseudo-library for information purposes. ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ instname="$dir/$name"i ++ $show "$install_prog $instname $destdir/$name" ++ $run eval "$install_prog $instname $destdir/$name" || exit $? ++ ++ # Maybe install the static library, too. ++ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ++ ;; ++ ++ *.lo) ++ # Install (i.e. copy) a libtool object. ++ ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ destfile="$destdir/$destfile" ++ fi ++ ++ # Deduce the name of the destination old-style object file. ++ case $destfile in ++ *.lo) ++ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ++ ;; ++ *.$objext) ++ staticdest="$destfile" ++ destfile= ++ ;; ++ *) ++ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Install the libtool object if requested. ++ if test -n "$destfile"; then ++ $show "$install_prog $file $destfile" ++ $run eval "$install_prog $file $destfile" || exit $? ++ fi ++ ++ # Install the old object if enabled. ++ if test "$build_old_libs" = yes; then ++ # Deduce the name of the old-style object file. ++ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` ++ ++ $show "$install_prog $staticobj $staticdest" ++ $run eval "$install_prog \$staticobj \$staticdest" || exit $? ++ fi ++ exit 0 ++ ;; ++ ++ *) ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ destfile="$destdir/$destfile" ++ fi ++ ++ # Do a test to see if this is really a libtool program. ++ if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ notinst_deplibs= ++ relink_command= ++ ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Check the variables that should have been set. ++ if test -z "$notinst_deplibs"; then ++ $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 ++ exit 1 ++ fi ++ ++ finalize=yes ++ for lib in $notinst_deplibs; do ++ # Check to see that each library is installed. ++ libdir= ++ if test -f "$lib"; then ++ # If there is no directory component, then add one. ++ case $lib in ++ */* | *\\*) . $lib ;; ++ *) . ./$lib ;; ++ esac ++ fi ++ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test ++ if test -n "$libdir" && test ! -f "$libfile"; then ++ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 ++ finalize=no ++ fi ++ done ++ ++ relink_command= ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ outputname= ++ if test "$fast_install" = no && test -n "$relink_command"; then ++ if test "$finalize" = yes && test -z "$run"; then ++ tmpdir="/tmp" ++ test -n "$TMPDIR" && tmpdir="$TMPDIR" ++ tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null` ++ if test $? = 0 ; then : ++ else ++ tmpdir="$tmpdir/libtool-$$" ++ fi ++ if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : ++ else ++ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 ++ continue ++ fi ++ file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ outputname="$tmpdir/$file" ++ # Replace the output file specification. ++ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` ++ ++ $show "$relink_command" ++ if $run eval "$relink_command"; then : ++ else ++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ ${rm}r "$tmpdir" ++ continue ++ fi ++ file="$outputname" ++ else ++ $echo "$modename: warning: cannot relink \`$file'" 1>&2 ++ fi ++ else ++ # Install the binary that we compiled earlier. ++ file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` ++ fi ++ fi ++ ++ # remove .exe since cygwin /usr/bin/install will append another ++ # one anyways ++ case $install_prog,$host in ++ /usr/bin/install*,*cygwin*) ++ case $file:$destfile in ++ *.exe:*.exe) ++ # this is ok ++ ;; ++ *.exe:*) ++ destfile=$destfile.exe ++ ;; ++ *:*.exe) ++ destfile=`echo $destfile | sed -e 's,.exe$,,'` ++ ;; ++ esac ++ ;; ++ esac ++ $show "$install_prog$stripme $file $destfile" ++ $run eval "$install_prog\$stripme \$file \$destfile" || exit $? ++ test -n "$outputname" && ${rm}r "$tmpdir" ++ ;; ++ esac ++ done ++ ++ for file in $staticlibs; do ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ ++ # Set up the ranlib parameters. ++ oldlib="$destdir/$name" ++ ++ $show "$install_prog $file $oldlib" ++ $run eval "$install_prog \$file \$oldlib" || exit $? ++ ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$old_striplib $oldlib" ++ $run eval "$old_striplib $oldlib" || exit $? ++ fi ++ ++ # Do each command in the postinstall commands. ++ eval cmds=\"$old_postinstall_cmds\" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ done ++ ++ if test -n "$future_libdirs"; then ++ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 ++ fi ++ ++ if test -n "$current_libdirs"; then ++ # Maybe just do a dry run. ++ test -n "$run" && current_libdirs=" -n$current_libdirs" ++ exec $SHELL $0 --finish$current_libdirs ++ exit 1 ++ fi ++ ++ exit 0 ++ ;; ++ ++ # libtool finish mode ++ finish) ++ modename="$modename: finish" ++ libdirs="$nonopt" ++ admincmds= ++ ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ for dir ++ do ++ libdirs="$libdirs $dir" ++ done ++ ++ for libdir in $libdirs; do ++ if test -n "$finish_cmds"; then ++ # Do each command in the finish commands. ++ eval cmds=\"$finish_cmds\" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || admincmds="$admincmds ++ $cmd" ++ done ++ IFS="$save_ifs" ++ fi ++ if test -n "$finish_eval"; then ++ # Do the single finish_eval. ++ eval cmds=\"$finish_eval\" ++ $run eval "$cmds" || admincmds="$admincmds ++ $cmds" ++ fi ++ done ++ fi ++ ++ # Exit here if they wanted silent mode. ++ test "$show" = ":" && exit 0 ++ ++ echo "----------------------------------------------------------------------" ++ echo "Libraries have been installed in:" ++ for libdir in $libdirs; do ++ echo " $libdir" ++ done ++ echo ++ echo "If you ever happen to want to link against installed libraries" ++ echo "in a given directory, LIBDIR, you must either use libtool, and" ++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" ++ echo "flag during linking and do at least one of the following:" ++ if test -n "$shlibpath_var"; then ++ echo " - add LIBDIR to the \`$shlibpath_var' environment variable" ++ echo " during execution" ++ fi ++ if test -n "$runpath_var"; then ++ echo " - add LIBDIR to the \`$runpath_var' environment variable" ++ echo " during linking" ++ fi ++ if test -n "$hardcode_libdir_flag_spec"; then ++ libdir=LIBDIR ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ ++ echo " - use the \`$flag' linker flag" ++ fi ++ if test -n "$admincmds"; then ++ echo " - have your system administrator run these commands:$admincmds" ++ fi ++ if test -f /etc/ld.so.conf; then ++ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ++ fi ++ echo ++ echo "See any operating system documentation about shared libraries for" ++ echo "more information, such as the ld(1) and ld.so(8) manual pages." ++ echo "----------------------------------------------------------------------" ++ exit 0 ++ ;; ++ ++ # libtool execute mode ++ execute) ++ modename="$modename: execute" ++ ++ # The first argument is the command name. ++ cmd="$nonopt" ++ if test -z "$cmd"; then ++ $echo "$modename: you must specify a COMMAND" 1>&2 ++ $echo "$help" ++ exit 1 ++ fi ++ ++ # Handle -dlopen flags immediately. ++ for file in $execute_dlfiles; do ++ if test ! -f "$file"; then ++ $echo "$modename: \`$file' is not a file" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ dir= ++ case $file in ++ *.la) ++ # Check to see that this really is a libtool archive. ++ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Read the libtool library. ++ dlname= ++ library_names= ++ ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Skip this library if it cannot be dlopened. ++ if test -z "$dlname"; then ++ # Warn if it was a shared library. ++ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" ++ continue ++ fi ++ ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$file" && dir=. ++ ++ if test -f "$dir/$objdir/$dlname"; then ++ dir="$dir/$objdir" ++ else ++ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 ++ exit 1 ++ fi ++ ;; ++ ++ *.lo) ++ # Just add the directory containing the .lo file. ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$file" && dir=. ++ ;; ++ ++ *) ++ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 ++ continue ++ ;; ++ esac ++ ++ # Get the absolute pathname. ++ absdir=`cd "$dir" && pwd` ++ test -n "$absdir" && dir="$absdir" ++ ++ # Now add the directory to shlibpath_var. ++ if eval "test -z \"\$$shlibpath_var\""; then ++ eval "$shlibpath_var=\"\$dir\"" ++ else ++ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" ++ fi ++ done ++ ++ # This variable tells wrapper scripts just to set shlibpath_var ++ # rather than running their programs. ++ libtool_execute_magic="$magic" ++ ++ # Check if any of the arguments is a wrapper script. ++ args= ++ for file ++ do ++ case $file in ++ -*) ;; ++ *) ++ # Do a test to see if this is really a libtool program. ++ if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Transform arg to wrapped name. ++ file="$progdir/$program" ++ fi ++ ;; ++ esac ++ # Quote arguments (to preserve shell metacharacters). ++ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` ++ args="$args \"$file\"" ++ done ++ ++ if test -z "$run"; then ++ if test -n "$shlibpath_var"; then ++ # Export the shlibpath_var. ++ eval "export $shlibpath_var" ++ fi ++ ++ # Restore saved enviroment variables ++ if test "${save_LC_ALL+set}" = set; then ++ LC_ALL="$save_LC_ALL"; export LC_ALL ++ fi ++ if test "${save_LANG+set}" = set; then ++ LANG="$save_LANG"; export LANG ++ fi ++ ++ # Now actually exec the command. ++ eval "exec \$cmd$args" ++ ++ $echo "$modename: cannot exec \$cmd$args" ++ exit 1 ++ else ++ # Display what would be done. ++ if test -n "$shlibpath_var"; then ++ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" ++ $echo "export $shlibpath_var" ++ fi ++ $echo "$cmd$args" ++ exit 0 ++ fi ++ ;; ++ ++ # libtool clean and uninstall mode ++ clean | uninstall) ++ modename="$modename: $mode" ++ rm="$nonopt" ++ files= ++ rmforce= ++ exit_status=0 ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" ++ ++ for arg ++ do ++ case $arg in ++ -f) rm="$rm $arg"; rmforce=yes ;; ++ -*) rm="$rm $arg" ;; ++ *) files="$files $arg" ;; ++ esac ++ done ++ ++ if test -z "$rm"; then ++ $echo "$modename: you must specify an RM program" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ rmdirs= ++ ++ for file in $files; do ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$dir" = "X$file"; then ++ dir=. ++ objdir="$objdir" ++ else ++ objdir="$dir/$objdir" ++ fi ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ test $mode = uninstall && objdir="$dir" ++ ++ # Remember objdir for removal later, being careful to avoid duplicates ++ if test $mode = clean; then ++ case " $rmdirs " in ++ *" $objdir "*) ;; ++ *) rmdirs="$rmdirs $objdir" ;; ++ esac ++ fi ++ ++ # Don't error if the file doesn't exist and rm -f was used. ++ if (test -L "$file") >/dev/null 2>&1 \ ++ || (test -h "$file") >/dev/null 2>&1 \ ++ || test -f "$file"; then ++ : ++ elif test -d "$file"; then ++ exit_status=1 ++ continue ++ elif test "$rmforce" = yes; then ++ continue ++ fi ++ ++ rmfiles="$file" ++ ++ case $name in ++ *.la) ++ # Possibly a libtool archive, so verify it. ++ if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ . $dir/$name ++ ++ # Delete the libtool libraries and symlinks. ++ for n in $library_names; do ++ rmfiles="$rmfiles $objdir/$n" ++ done ++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ++ ++ if test $mode = uninstall; then ++ if test -n "$library_names"; then ++ # Do each command in the postuninstall commands. ++ eval cmds=\"$postuninstall_cmds\" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done ++ IFS="$save_ifs" ++ fi ++ ++ if test -n "$old_library"; then ++ # Do each command in the old_postuninstall commands. ++ eval cmds=\"$old_postuninstall_cmds\" ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done ++ IFS="$save_ifs" ++ fi ++ # FIXME: should reinstall the best remaining shared library. ++ fi ++ fi ++ ;; ++ ++ *.lo) ++ if test "$build_old_libs" = yes; then ++ oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` ++ rmfiles="$rmfiles $dir/$oldobj" ++ fi ++ ;; ++ ++ *) ++ # Do a test to see if this is a libtool program. ++ if test $mode = clean && ++ (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ relink_command= ++ . $dir/$file ++ ++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ if test "$fast_install" = yes && test -n "$relink_command"; then ++ rmfiles="$rmfiles $objdir/lt-$name" ++ fi ++ fi ++ ;; ++ esac ++ $show "$rm $rmfiles" ++ $run $rm $rmfiles || exit_status=1 ++ done ++ ++ # Try to remove the ${objdir}s in the directories where we deleted files ++ for dir in $rmdirs; do ++ if test -d "$dir"; then ++ $show "rmdir $dir" ++ $run rmdir $dir >/dev/null 2>&1 ++ fi ++ done ++ ++ exit $exit_status ++ ;; ++ ++ "") ++ $echo "$modename: you must specify a MODE" 1>&2 ++ $echo "$generic_help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ $echo "$modename: invalid operation mode \`$mode'" 1>&2 ++ $echo "$generic_help" 1>&2 ++ exit 1 ++fi # test -z "$show_help" ++ ++# We need to display help for each of the modes. ++case $mode in ++"") $echo \ ++"Usage: $modename [OPTION]... [MODE-ARG]... ++ ++Provide generalized library-building support services. ++ ++ --config show all configuration variables ++ --debug enable verbose shell tracing ++-n, --dry-run display commands without modifying any files ++ --features display basic configuration information and exit ++ --finish same as \`--mode=finish' ++ --help display this help message and exit ++ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] ++ --quiet same as \`--silent' ++ --silent don't print informational messages ++ --version print version information ++ ++MODE must be one of the following: ++ ++ clean remove files from the build directory ++ compile compile a source file into a libtool object ++ execute automatically set library path, then run a program ++ finish complete the installation of libtool libraries ++ install install libraries or executables ++ link create a library or an executable ++ uninstall remove libraries from an installed directory ++ ++MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for ++a more detailed description of MODE." ++ exit 0 ++ ;; ++ ++clean) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... ++ ++Remove files from the build directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, object or program, all the files associated ++with it are deleted. Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++compile) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE ++ ++Compile a source file into a libtool library object. ++ ++This mode accepts the following additional options: ++ ++ -o OUTPUT-FILE set the output file name to OUTPUT-FILE ++ -prefer-pic try to building PIC objects only ++ -prefer-non-pic try to building non-PIC objects only ++ -static always build a \`.o' file suitable for static linking ++ ++COMPILE-COMMAND is a command to be used in creating a \`standard' object file ++from the given SOURCEFILE. ++ ++The output file name is determined by removing the directory component from ++SOURCEFILE, then substituting the C source code suffix \`.c' with the ++library object suffix, \`.lo'." ++ ;; ++ ++execute) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... ++ ++Automatically set library path, then run a program. ++ ++This mode accepts the following additional options: ++ ++ -dlopen FILE add the directory containing FILE to the library path ++ ++This mode sets the library path environment variable according to \`-dlopen' ++flags. ++ ++If any of the ARGS are libtool executable wrappers, then they are translated ++into their corresponding uninstalled binary, and any of their required library ++directories are added to the library path. ++ ++Then, COMMAND is executed, with ARGS as arguments." ++ ;; ++ ++finish) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... ++ ++Complete the installation of libtool libraries. ++ ++Each LIBDIR is a directory that contains libtool libraries. ++ ++The commands that this mode executes may require superuser privileges. Use ++the \`--dry-run' option if you just want to see what would be executed." ++ ;; ++ ++install) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... ++ ++Install executables or libraries. ++ ++INSTALL-COMMAND is the installation command. The first component should be ++either the \`install' or \`cp' program. ++ ++The rest of the components are interpreted as arguments to that command (only ++BSD-compatible install options are recognized)." ++ ;; ++ ++link) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... ++ ++Link object files or libraries together to form another library, or to ++create an executable program. ++ ++LINK-COMMAND is a command using the C compiler that you would use to create ++a program from several object files. ++ ++The following components of LINK-COMMAND are treated specially: ++ ++ -all-static do not do any dynamic linking at all ++ -avoid-version do not add a version suffix if possible ++ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime ++ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols ++ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) ++ -export-symbols SYMFILE ++ try to export only the symbols listed in SYMFILE ++ -export-symbols-regex REGEX ++ try to export only the symbols matching REGEX ++ -LLIBDIR search LIBDIR for required installed libraries ++ -lNAME OUTPUT-FILE requires the installed library libNAME ++ -module build a library that can dlopened ++ -no-fast-install disable the fast-install mode ++ -no-install link a not-installable executable ++ -no-undefined declare that a library does not refer to external symbols ++ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects ++ -release RELEASE specify package release information ++ -rpath LIBDIR the created library will eventually be installed in LIBDIR ++ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries ++ -static do not do any dynamic linking of libtool libraries ++ -version-info CURRENT[:REVISION[:AGE]] ++ specify library version info [each variable defaults to 0] ++ ++All other options (arguments beginning with \`-') are ignored. ++ ++Every other argument is treated as a filename. Files ending in \`.la' are ++treated as uninstalled libtool libraries, other files are standard or library ++object files. ++ ++If the OUTPUT-FILE ends in \`.la', then a libtool library is created, ++only library objects (\`.lo' files) may be specified, and \`-rpath' is ++required, except when creating a convenience library. ++ ++If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created ++using \`ar' and \`ranlib', or on Windows using \`lib'. ++ ++If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file ++is created, otherwise an executable program is created." ++ ;; ++ ++uninstall) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... ++ ++Remove libraries from an installation directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, all the files associated with it are deleted. ++Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++*) ++ $echo "$modename: invalid operation mode \`$mode'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++echo ++$echo "Try \`$modename --help' for more information about other modes." ++ ++exit 0 ++ ++# Local Variables: ++# mode:shell-script ++# sh-indentation:2 ++# End: +--- gtk+1.2-1.2.10.orig/debian/rules ++++ gtk+1.2-1.2.10/debian/rules +@@ -0,0 +1,185 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. ++# GNU copyright 1997 to 1999 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# These are used for cross-compiling and for saving the configure script ++# from having to guess our platform (since we know it already) ++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++DEB_BUILD_GNU_CPU ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU) ++DEB_BUILD_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM) ++ ++ifeq ($(DEB_BUILD_GNU_SYSTEM),kfreebsd-gnu) ++DEB_BUILD_GNU_TYPE = $(DEB_BUILD_GNU_CPU)-gnu ++DEB_HOST_GNU_TYPE = $(DEB_HOST_GNU_CPU)-gnu ++endif ++ifeq ($(DEB_BUILD_GNU_SYSTEM),knetbsd-gnu) ++DEB_BUILD_GNU_TYPE = $(DEB_BUILD_GNU_CPU)-gnu ++DEB_HOST_GNU_TYPE = $(DEB_HOST_GNU_CPU)-gnu ++endif ++ ++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) ++ CFLAGS += -O0 ++else ++ CFLAGS += -O2 ++endif ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ INSTALL_PROGRAM += -s ++endif ++ ++## ++version=$(shell dpkg-parsechangelog | grep '^Version: ' | sed -e 's/^Version: //' | sed -e 's/-.*//') ++ ++__configure_options := --host=$(DEB_HOST_GNU_TYPE) \ ++ --build=$(DEB_BUILD_GNU_TYPE) \ ++ --prefix=/usr \ ++ --mandir=\$${prefix}/share/man \ ++ --infodir=\$${prefix}/share/info \ ++ --sysconfdir=/etc \ ++ --localstatedir=/var \ ++ --with-xinput=xfree ++libpath=$(CURDIR)/gdk/.libs:$(CURDIR)/gtk/.libs ++ ++config.status: configure ++ dh_testdir ++ ++ # When install the shared libraries, don't relink it ++ cp debian/fixed-ltmain.sh $(CURDIR)/ltmain.sh ++ ++ # Add here commands to configure the package. ++ # so it avoid gcc bug for Alpha. ++ifeq ("x$(DEB_BUILD_ARCH)","xalpha") ++ CFLAGS="-g -O0 -Wall" ./configure $(__configure_options) ++else ++ ./configure $(__configure_options) ++endif ++ ++ sed < libtool > libtool-2 \ ++ -e 's/^hardcode_libdir_flag_spec.*$$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/' \ ++ -e '/^archive_cmds="/s/"$$/ \\$$deplibs"/' && \ ++ mv libtool-2 libtool ++ ++ touch $@ ++ ++build: build-stamp ++build-stamp: config.status ++ dh_testdir ++ ++ # Add here commands to compile the package. ++ $(MAKE) LD_LIBRARY_PATH=$(libpath):$(LD_LIBRARY_PATH) ++ ++ touch $@ ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ ++ # Add here commands to clean up after the build process. ++ -$(MAKE) distclean ++ -test -r /usr/share/misc/config.sub && \ ++ cp -f /usr/share/misc/config.sub config.sub ++ -test -r /usr/share/misc/config.guess && \ ++ cp -f /usr/share/misc/config.guess config.guess ++ ++ rm -rf po/ca.gmo ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/tmp ++ $(MAKE) install \ ++ prefix=$(CURDIR)/debian/libgtk1.2/usr \ ++ sysconfdir=$(CURDIR)/debian/libgtk1.2/etc \ ++ localstatedir=$(CURDIR)/debian/libgtk1.2/var \ ++ LD_LIBRARY_PATH=$(libpath):$(LD_LIBRARY_PATH) ++ ++ # for -dbg ++ mkdir -p $(CURDIR)/debian/libgtk1.2/usr/lib/debug ++ for l in `find $(CURDIR)/debian/libgtk1.2/usr/lib -name '*.so*'`; do \ ++ cp -vdf $$l \ ++ $(CURDIR)/debian/libgtk1.2/usr/lib/debug/; \ ++ done ++ ++ # for -doc ++ cp docs/*.sgml $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/sgml/ ++ cp docs/text/*.txt $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/ ++ cp docs/*.texi $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/texinfo/ ++ cp docs/html/gtkfaq*.html $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/faq-html ++ cp docs/html/gtk_tut-*.html $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/gtk-tutorial-html ++ cp docs/html/*.gif $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/gtk-tutorial-html ++ cp docs/html/gtk_tut.html $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/gtk-tutorial-html ++ cp docs/html/gtk_tut_it*.html $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/gtk-tutorial-it-html ++ cp docs/html/*.gif $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/gtk-tutorial-it-html ++ cp docs/html/gtk_tut_fr*.html $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/gtk-tutorial-fr-html ++ cp docs/html/*.gif $(CURDIR)/debian/libgtk1.2-doc/usr/share/doc/libgtk1.2-doc/gtk-tutorial-fr-html ++ ++ dh_movefiles --sourcedir=debian/libgtk1.2 ++ -find $(CURDIR)/debian/libgtk1.2 -type d -empty | xargs rmdir -p 2>&1 > /dev/null ++ ++# Build architecture-independent files here. ++binary-indep: build install ++ dh_testdir -i ++ dh_testroot -i ++ ++ dh_installdocs -i ++ dh_installdocs -plibgtk1.2-common -A debian/README.Debian ++ dh_installdocs -plibgtk1.2-doc docs/debugging.txt docs/developers.txt docs/styles.txt docs/text_widget.txt docs/widget_system.txt docs/gtk-config.txt docs/refcounting.txt docs/Changes-1.2.txt docs/generation.txt ++ ++ dh_installexamples -i ++ dh_installmenu -i ++ dh_installinfo -i ++ dh_installchangelogs -i ChangeLog ++ dh_compress -i ++ dh_fixperms -i ++ dh_installdeb -i ++ dh_gencontrol -i ++ dh_md5sums -i ++ dh_builddeb -i ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir -a ++ dh_testroot -a ++ ++# dh_installdebconf -a ++ dh_installdocs -a ++ ++ rm -rf $(CURDIR)/debian/libgtk1.2-dbg/usr/share/doc/libgtk1.2-dbg ++ dh_link -plibgtk1.2-dbg usr/share/doc/libgtk1.2 usr/share/doc/libgtk1.2-dbg ++ ++ dh_installexamples -a ++ ++ rm $(CURDIR)/debian/libgtk1.2-dev/usr/share/doc/libgtk1.2-dev/examples/find-examples.sh ++ ++ dh_installmenu -a ++# dh_installlogrotate -a ++# dh_installemacsen -a ++# dh_installpam -a ++# dh_installmime -a ++# dh_installinit -a ++# dh_installcron -a ++ dh_installman -a ++ dh_installinfo -a ++ dh_installchangelogs -a ChangeLog ++ dh_strip -a -Nlibgtk1.2-dbg ++ dh_compress -a ++ dh_fixperms -a ++ dh_makeshlibs -plibgtk1.2 -V "libgtk1.2 (>= ${version}-4)" -l$(libpath) ++ dh_installdeb -a ++# dh_perl -a ++ dh_shlibdeps -a ++ dh_gencontrol -a ++ dh_md5sums -a ++ dh_builddeb -a ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install configure +--- gtk+1.2-1.2.10.orig/debian/changelog ++++ gtk+1.2-1.2.10/debian/changelog +@@ -0,0 +1,745 @@ ++gtk+1.2 (1.2.10-18) unstable; urgency=low ++ ++ * GNOME team upload. ++ * Add a static list of Uploaders for the GNOME team. ++ * Update Catalan translation. ++ * Cloak k*bsd-gnu systems as gnu to enable building on GNU/k*BSD. Normal ++ updating of libtool appears to be troublesome (thanks Robert Millan; ++ closes: #195921). ++ * Patch gtk.m4 and acgtk.m4 to silence newer aclocal versions ++ (closes: #267815). ++ * Patch the file selector to do file autocompletion like every other ++ application (thanks, Matt Zimmerman, even if you don't care at all ++ only because the patch is 3 years old and everyone is using GTK2 ++ anyway :) closes: #148565). ++ ++ -- Jordi Mallach Thu, 6 Oct 2005 11:42:08 +0200 ++ ++gtk+1.2 (1.2.10-17) unstable; urgency=low ++ ++ * debian/control: ++ - updated the build-depends for the separated xlibs-dev. ++ (closes: Bug#241781) ++ - updated the Depends of libgtk1.2-dev for the separated xlibs-dev. ++ (closes: Bug#254694, 241507) ++ ++ -- Akira TAGOH Wed, 23 Jun 2004 22:18:58 +0900 ++ ++gtk+1.2 (1.2.10-16) unstable; urgency=low ++ ++ * updated libtool stuff. (closes: Bug#195827) ++ - acgtk.m4: moved some m4 macros from acinclude.m4. ++ - acinclude.m4: removed. ++ - configure.in: add AC_PREREQ(2.13) ++ - ltconfig: removed. ++ ++ -- Akira TAGOH Thu, 5 Jun 2003 12:54:52 +0900 ++ ++gtk+1.2 (1.2.10-15) unstable; urgency=low ++ ++ * debian/control: ++ - bumped Standards-Version to 3.5.10.0. ++ - depends on versioned libgtk1.2-common. ++ - changed the sections for libgtk1.2-dev and libgtk1.2-dbg to libdevel. ++ * debian/compat: ++ - use it instead of DH_COMPAT. ++ * debian/rules: ++ - support noopt for DEB_BUILD_OPTIONS. ++ * debian/FAQ.Debian: ++ - add xfonts-*-transcoded stuff. Thanks to Kovacs Baldvin ++ ++ * debian/libgtk1.2-common.postinst: ++ - do remove the unnecessary gtkrc files. (closes: Bug#159817) ++ * gtk/Makefile.in: ++ - fix the undefined non-weak symbols. (closes: Bug#187351) ++ * gdk/gdkfont.c: ++ - fix possibly unnecessary missing fontset warning on UTF-8 locale. ++ (closes: Bug#186025) ++ ++ -- Akira TAGOH Sun, 1 Jun 2003 10:59:28 +0900 ++ ++gtk+1.2 (1.2.10-14) unstable; urgency=low ++ ++ * debian/control: s/Recommends/Suggests/ for devhelp-book-gtk. ++ ++ -- Akira TAGOH Thu, 22 Aug 2002 19:33:00 +0900 ++ ++gtk+1.2 (1.2.10-13) unstable; urgency=low ++ ++ * debian/control: add devhelp-book-gtk to Recommends. (closes: Bug#148354) ++ * gtk/gtkentry.c: applied a patch to fix a segfault bug in ++ gtk_entry_set_selection(). Thanks Jan Gregor. ++ * gtk/gtkrc.zh_{CN,TW}: changed a font size for iso8859-1 to 12 Geoffrey Lee ++ suggested. (closes: Bug#157739) ++ ++ -- Akira TAGOH Thu, 22 Aug 2002 02:50:14 +0900 ++ ++gtk+1.2 (1.2.10-12) unstable; urgency=low ++ ++ * Applied some patches from RH. ++ - gdk/gdkselection.c: don't screw up CTEXT for UTF-8 locales. ++ - gtk/gtkfilesel.c: fix delete-filename-on-dir-change problem. (closes: ++ Bug#106897) ++ - gdk/gdkevents.c: improve expose compression. ++ - gdk/gdkfont.c: fix problem with width computation for missing ++ characters. ++ - gdk/gdkfont.c: improve warning for missing fontset elements. ++ - gtk/gtkstyle.c: fix refcounting problem in gtk_style_copy() that might ++ affect theme switching. ++ - gtk/gtkwindow.c: fix for theme switching. ++ * debian/FAQ.Debian: update. ++ ++ -- Akira TAGOH Mon, 13 May 2002 03:47:10 +0900 ++ ++gtk+1.2 (1.2.10-11) unstable; urgency=low ++ ++ * Add gtkfaq-[89].html (closes: Bug#142682) ++ ++ -- Akira TAGOH Mon, 15 Apr 2002 02:19:49 +0900 ++ ++gtk+1.2 (1.2.10-10) unstable; urgency=low ++ ++ * Fixed typo in FAQ (closes: Bug#30034) ++ * Fixed typo in tutorial (closes: Bug#113079) ++ * debian/FAQ.Debian: Added. ++ * debian/libgtk1.2-doc.info: added. fix running install-info on postinst ++ (closes: Bug#135981) ++ * debian/rules: changed as the following: ++ - support DEB_HOST_GNU_TYPE and DEB_BUILD_GNU_TYPE. ++ - support debug and nostrip for DEB_BUILD_OPTIONS. ++ - copying the latest config.sub and config.guess. ++ * gtkrc.utf-8: add arial font. (closes: Bug#135354) ++ ++ -- Akira TAGOH Fri, 22 Mar 2002 08:32:55 +0900 ++ ++gtk+1.2 (1.2.10-9) unstable; urgency=medium ++ ++ * Fixed the duplicate conffiles. ++ * Fixed symlink transition for -dbg. (closes: Bug#125596) ++ * Fixed Gtk?Paned widget misdisplayed on Alpha again... ++ (closes: Bug#123579) ++ * Fixed a correct entry for gtkrc.utf-8. (closes: Bug#114934) ++ ++ -- Akira TAGOH Thu, 20 Dec 2001 01:48:29 +0900 ++ ++gtk+1.2 (1.2.10-8) unstable; urgency=low ++ ++ * Fixed fails to purge cleanly (closes: Bug#122745) ++ * Note: Don't use --enable-debug=yes. ++ it give us any strange problem. ++ ++ -- Akira TAGOH Fri, 7 Dec 2001 16:41:39 +0900 ++ ++gtk+1.2 (1.2.10-7) unstable; urgency=low ++ ++ * Fixed remove obsolates conffiles by purge. ++ * Fixed incorrect handling pointer in back-ported patch of gtkrc. ++ (closes: Bug#122603) ++ * Fixed search order for gtkrc again... (closes: Bug#121467) ++ * Hmm I'm not sure, but pull down --enable-debug=minimum because ++ make sure the cause of strange problem. so it's a default value. ++ ++ -- Akira TAGOH Thu, 6 Dec 2001 23:52:12 +0900 ++ ++gtk+1.2 (1.2.10-6) unstable; urgency=low ++ ++ * Fixed uninstallable problem (closes: Bug#122208) ++ ++ -- Akira TAGOH Tue, 4 Dec 2001 00:48:16 +0900 ++ ++gtk+1.2 (1.2.10-5) unstable; urgency=low ++ ++ * Applied back-ported patch from CVS. ++ fix search order for gtkrc. (closes: Bug#121467) ++ * Applied back-ported patch from CVS. ++ fix focus problem (closes: Bug#108099) ++ * Removed duplicate info files. (closes: Bug#121734) ++ * Closed these bugs because it already fixed in the latest version. ++ (closes: Bug#94698, Bug#29661, Bug#35039, Bug#46541, Bug#64728) ++ * Added Depends: pkg-config for -dev. ++ ++ -- Akira TAGOH Sun, 2 Dec 2001 19:54:49 +0900 ++ ++gtk+1.2 (1.2.10-4) unstable; urgency=low ++ ++ * Fixed missing files (closes: Bug#56912) ++ * Closed this bug because it already fixed in the latest version. ++ (closes: Bug#72585, Bug#28148, Bug#69409, Bug#117990) ++ * re-created debian/ (closes: Bug#44913) ++ * -dbg package contains shared libraries for debugging. so if you ++ need static link, add -static to compiler option and use ++ static libraries which is included in libgtk1.2-dev. ++ (closes: Bug#98349) ++ * Moved pkg-config files to -dev (closes: Bug#103199) ++ * Fixed GtkHPaned widget are misdisplayed on Alpha. ++ (closes: Bug#115315) ++ * Includes example codes on -dev. (closes: Bug#112347) ++ ++ -- Akira TAGOH Sat, 24 Nov 2001 21:40:38 +0900 ++ ++gtk+1.2 (1.2.10-3) unstable; urgency=low ++ ++ * Fixed a problem where fractional sizes caused infinite loop. ++ (closes: Bug#100678) ++ * Closed NMU fix (closes: Bug#114923, Bug#109808, Bug#48129, Bug#53524, ++ Bug#67903) ++ * Fixed some lintian error. ++ * I took over this package from Ben. ++ ++ -- Akira TAGOH Sat, 17 Nov 2001 10:55:55 +0900 ++ ++gtk+1.2 (1.2.10-2.1) unstable; urgency=low ++ ++ * NMU ++ * Re-run libtoolize & aclocal for new arch support. Closes: #114923. ++ ++ -- LaMont Jones Sun, 21 Oct 2001 11:20:07 -0600 ++ ++gtk+1.2 (1.2.10-2) unstable; urgency=low ++ ++ * It looks like --with-native-locale=yes (change made in 1.2.10-1) ++ broke Swedish support. I guess it doesn't work. Removed. ++ (Closes: #108441) ++ * Patch to not override X's beep level. (Closes: #94081, #110961) ++ ++ -- Ben Gertzfield Mon, 8 Oct 2001 09:56:37 +0900 ++ ++gtk+1.2 (1.2.10-1) unstable; urgency=low ++ ++ * New upstream version. ++ * This new version fixes all locale-related bugs recently ++ reported. Note that if you don't want high ASCII characters to ++ be silently munched with glibc 2.2, at least set LANG=en_US to ++ get it away from the default to C, which no longer allows high ++ ASCII characters. (Closes: #74796, #77263, #89379, #90776, #89125, ++ #89129, #89806) ++ * Build with --with-native-locale=yes. Should fix all locales-related ++ segfaults recently reported. (But if you want high ASCII chars ++ to appear when using libc 2.2, you should set LANG=en_US at least, ++ or it'll default to LANG=C and filter all high ASCII characters!) ++ (Closes: #89125, #89129) ++ * Add support in debian/rules for adding -g and not stripping if ++ DEB_BUILD_OPTIONS contains "debug" or "nostrip", respectively. ++ (Closes: #33952, #34007) ++ * Remove dependancy on gconv-modules. (Closes: #89082) ++ ++ -- Ben Gertzfield Sun, 1 Apr 2001 21:58:04 -0700 ++ ++gtk+1.2 (1.2.9-2) unstable; urgency=medium ++ ++ * Bump Build-Depends to require libglib1.2 (>= 1.2.9-1). ++ ++ -- Ben Gertzfield Tue, 6 Mar 2001 08:54:13 -0800 ++ ++gtk+1.2 (1.2.9-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Include Changes-1.2.txt in libgtk1.2-doc. (Closes: #48129) ++ * Fixed bashisms in debian/rules long ago. (Closes: #69409) ++ * Note: include files have been moved into /usr/include/gtk-1-2/ ++ to allow parallel installation with gtk+ 2.0. Remember to ++ use gtk-config to compile programs! ++ * A note from upstream says that there were a lot of locale fixes ++ in this release. Let's hope so! ++ * Setuid/setgid GTK+ programs will now refuse to initialize. Remember ++ to drop all setuid/setgid privileges before initializing GTK+! ++ * Several out-of-date documents were removed upstream: gdk-tutorial ++ and gtk-manual are available online now. ++ * About the FAQ missing page bugs: the pages just don't seem to ++ get generated from the SGML no matter what I do; I'm not ++ removing them by hand or anything. I'll spend more time looking ++ into this later.. ++ ++ -- Ben Gertzfield Fri, 2 Mar 2001 16:39:36 -0800 ++ ++gtk+1.2 (1.2.8-4) unstable; urgency=low ++ ++ * Change dependancy for libgtk1.2-dev to xlibs-dev. Closes: #80744 ++ * Fixed in 1.2.8-2 (dpkg 1.6.8 issue) Closes: #63081 ++ * It's perfectly easy to make a binary-only upload of gtk+1.2. ++ There are no weird dependancies between the Arch: all package ++ (libgtk1.2-doc) and the others; libgtk1.2-dev and libgtk1.2-dbg ++ merely Suggest: libgtk1.2-doc. Wichert, please supply more context ++ with your bug reports next time! Closes: #77462 ++ * I can set LANG=fr_FR no problem with gtk+ 1.2.8 if I've uncommented ++ the line in /etc/locale.gen and run locale-gen. Not a bug. ++ Closes: #83636 ++ * Not a bug. (the packages are not corrupt on any mirrors I've ++ seen.) Closes: #81406 ++ * Previously fixed bugs: Closes: #67996, #66867, #81406 ++ ++ -- Ben Gertzfield Wed, 28 Feb 2001 10:37:42 -0800 ++ ++gtk+1.2 (1.2.8-3) unstable; urgency=low ++ ++ * D'oh. Add Source-Depends on libglib1.2-dev (>= 1.2.8). ++ Closes: #81201 ++ ++ -- Ben Gertzfield Thu, 4 Jan 2001 10:28:22 -0800 ++ ++gtk+1.2 (1.2.8-2) unstable; urgency=low ++ ++ * Bump Standards-Version to 3.2.1. ++ * Fix bashism in debian/rules. Closes: #79384 ++ * Workaround for lack of MAXPATHLEN on hurd. Closes: #72312 ++ * Add Pre-Depends and preinst check for dpkg 1.6.8 for multiple ++ Conflicts/Replaces. ++ ++ -- Ben Gertzfield Sat, 23 Dec 2000 14:37:40 -0800 ++ ++gtk+1.2 (1.2.8-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Wed, 24 May 2000 19:55:03 -0700 ++ ++gtk+1.2 (1.2.7-1) frozen unstable; urgency=HIGH ++ ++ * New upstream version *must* make it into frozen, as it fixes ++ RC i18n bugs. ++ * i18n bugs fixed: #56503, #57805, #57498, #57403 ++ ++ -- Ben Gertzfield Thu, 17 Feb 2000 09:34:04 -0800 ++ ++gtk+1.2 (1.2.6-2) frozen unstable; urgency=HIGH ++ ++ * Change dependancy from gconv-modules | libc6 (<< 2.1) to just ++ gconv-modules to fix upgrade path. (Otherwise apt gets very ++ very confused.) Closes: #56477, #56528, #56530, #56535, #56857 ++ ++ -- Ben Gertzfield Wed, 2 Feb 2000 08:28:46 -0800 ++ ++gtk+1.2 (1.2.6-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Move docs and info to /usr/share/{doc,info}. ++ ++ -- Ben Gertzfield Fri, 15 Oct 1999 10:35:06 -0700 ++ ++gtk+1.2 (1.2.5-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Fri, 24 Sep 1999 09:36:27 -0700 ++ ++gtk+1.2 (1.2.4-3) unstable; urgency=low ++ ++ * Change Depends: for libgtk1.2 to depend on gconv-modules | libc6 (<< 2.1) ++ (Closes: #44442) ++ ++ -- Ben Gertzfield Wed, 8 Sep 1999 07:05:25 -0700 ++ ++gtk+1.2 (1.2.4-2) unstable; urgency=low ++ ++ * Add Depends: on gconv-modules to fix locales ++ problems. (Closes: #40704, #43800) ++ ++ -- Ben Gertzfield Tue, 31 Aug 1999 09:31:55 -0700 ++ ++gtk+1.2 (1.2.4-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Tue, 24 Aug 1999 13:00:44 -0700 ++ ++gtk+1.2 (1.2.3-2) unstable; urgency=low ++ ++ * Fix depends of -dev and -dbg to always depend on exact version of lib. ++ ++ -- Ben Gertzfield Tue, 27 Jul 1999 15:30:25 -0700 ++ ++gtk+1.2 (1.2.3-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Make shlibs stricter, as binary interface has changed. ++ * Register docs with doc-base. ++ * Reorganize docs in libgtk1.2-doc, include texinfo and sgml formats. ++ * Wow. I never included the actual GTK+ manual in HTML or text forms ++ before.. ++ ++ -- Ben Gertzfield Tue, 11 May 1999 22:04:15 -0700 ++ ++gtk+1.2 (1.2.2-1) unstable; urgency=low ++ ++ * New upstream version. (Note that the 1.2.2-2 uploaded originally ++ was a typo) ++ ++ -- Ben Gertzfield Tue, 27 Apr 1999 11:32:07 -0700 ++ ++gtk+1.2 (1.2.1-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Loosen up shlibs; now programs compiled against GTK+ 1.2 depend on ++ libgtk1.2 (>= 1.2.0). ++ ++ -- Ben Gertzfield Thu, 25 Mar 1999 10:43:35 -0800 ++ ++gtk+1.2 (1.2.0-1) unstable; urgency=low ++ ++ * New stable upstream version. Woo woo! ++ ++ -- Ben Gertzfield Thu, 25 Feb 1999 23:46:11 -0800 ++ ++gtk+1.1.16 (1.1.16-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Defaults to debug being on now. Normal libgtk1.1.16 packages will ++ be built with --enable-debug=minimum. ++ ++ -- Ben Gertzfield Tue, 16 Feb 1999 17:11:00 -0800 ++ ++gtk+1.1.15 (1.1.15-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Mon, 8 Feb 1999 17:08:36 -0800 ++ ++gtk+1.1.14 (1.1.14-1) unstable; urgency=low ++ ++ * Okay, *this* is GTK+ 1.1.14 upstream release. Sheesh. ++ ++ -- Ben Gertzfield Sat, 30 Jan 1999 18:16:19 -0800 ++ ++gtk+1.1.13 (1:1.1.13-1) unstable; urgency=low ++ ++ * Crap, crap, crap. The GTK+ folks had told me that 1.1.14 was binary- ++ compatible with 1.1.13. It's not. It doesn't even have the same soname; ++ I shouldn't have trusted them. :) This is really version 1.1.13 again. ++ ++ -- Ben Gertzfield Sat, 30 Jan 1999 17:28:29 -0800 ++ ++gtk+1.1.13 (1.1.14-1) unstable; urgency=low ++ ++ * New upstream version. Note source name did not change, as the ++ soname is still .13, because .14 and .13 are binary compatible. ++ * Make absolutely sure the postinst for libgtk1.1.13 only calls ++ ldconfig on 'configure' calls ++ ++ -- Ben Gertzfield Fri, 29 Jan 1999 21:11:44 -0800 ++ ++gtk+1.1.13 (1.1.13-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Now libgtk1.1.x-dev Depends: on xlib6g-dev ++ ++ -- Ben Gertzfield Wed, 20 Jan 1999 18:34:15 -0800 ++ ++gtk+1.1.12 (1.1.12-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Mon, 4 Jan 1999 14:27:45 -0800 ++ ++gtk+1.1.11 (1.1.11-1) unstable; urgency=low ++ ++ * New upstream version. (They skipped 1.1.10.) ++ ++ -- Ben Gertzfield Wed, 30 Dec 1998 22:27:43 -0800 ++ ++gtk+1.1.9 (1.1.9-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Now debian/rules uses $(version) variable to make my life easier. ++ * debian/doc-postinst debian/doc-prerm: new files, which are copied ++ to the versioned names for debhelper goodness from debian/rules ++ and cleaned in debian/rules clean ++ ++ -- Ben Gertzfield Thu, 17 Dec 1998 11:24:44 -0800 ++ ++gtk+1.1.6 (1.1.6-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Wed, 9 Dec 1998 08:06:44 -0800 ++ ++gtk+1.1.5 (1.1.5-3) unstable; urgency=low ++ ++ * Rebuild to fix bug #30459 ++ ++ -- Ben Gertzfield Mon, 7 Dec 1998 12:58:05 -0800 ++ ++gtk+1.1.5 (1.1.5-2) unstable; urgency=low ++ ++ * Now libgtk1.1.5-dev Provides: libgtk-dev and libgtk1.1-dev. ++ ++ -- Ben Gertzfield Sun, 29 Nov 1998 18:51:05 -0800 ++ ++gtk+1.1.5 (1.1.5-1) unstable; urgency=low ++ ++ * Now the source and binary packages *all* specifically have the version ++ number in them. This is so a new release of glib or gtk+ does not break ++ all apps dependant upon glib or gtk+'s unstable branch. ++ * Removed --enable-debug=no from libgtk1.1 build; it was causing problems ++ * Now includes themes support! Yay! ++ ++ -- Ben Gertzfield Tue, 24 Nov 1998 14:28:06 -0800 ++ ++gtk+1.1 (1:1.1.3-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Now libgtk1.1-dev and libgtk1.1-dbg depend on ${Source-Version} of ++ libgtk1.1/libgtk1.1-dev as libglib1.1 does. ++ ++ -- Ben Gertzfield Thu, 5 Nov 1998 10:59:43 -0800 ++ ++gtk+1.1 (1:1.1.2-2) unstable; urgency=low ++ ++ * Same change as to gtk+_1.0.6-2 -- new clean-dbg target to deal ++ with my brain-fart that was helped along by an old broken ++ debhelper. ++ ++ -- Ben Gertzfield Tue, 29 Sep 1998 12:28:31 -0700 ++ ++gtk+1.1 (1:1.1.2-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Now depends upon instead of recommends glib1.1/glib-dev. ++ * New libgtk1.1-dbg package. ++ ++ -- Ben Gertzfield Mon, 21 Sep 1998 23:16:53 -0700 ++ ++gtk+1.1 (1:1.1.1-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Tue, 4 Aug 1998 22:45:02 -0700 ++ ++gtk+1.1 (1:1.1.0-1) unstable; urgency=low ++ ++ * New packages for the unstable development branch of GTK+, 1.1. ++ ++ -- Ben Gertzfield Mon, 27 Jul 1998 14:04:40 -0700 ++ ++gtk+ (1:1.0.5-1) unstable; urgency=low ++ ++ * New upstream version: ++ * - Minor documentation fixups ++ * - Fixes for clist (pixmap clipping), notebook, optionmenu, spinbutton ++ and text widgets. ++ * - Minor fixup about base class initializations in the type system. ++ * - Fix for a major bug in the signal code that would cause random crashes. ++ ++ -- Ben Gertzfield Mon, 27 Jul 1998 11:34:53 -0700 ++ ++gtk+ (1:1.0.4-1) frozen unstable; urgency=low ++ ++ * This is the final release of gtk+ that, along with GIMP, will be ++ released into Debian 2.0. ++ ++ -- Ben Gertzfield Mon, 1 Jun 1998 22:10:33 -0700 ++ ++gtk+ (1:1.0.3-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Tue, 26 May 1998 17:20:26 -0700 ++ ++gtk+ (1:1.0.2-2) frozen unstable; urgency=low ++ ++ * Added 'Replaces: libgtk-dev (<< 1.0.2)' to control for libgtk1. ++ Fixes bug #22842. ++ ++ -- Ben Gertzfield Tue, 26 May 1998 12:49:49 -0700 ++ ++gtk+ (1:1.0.2-1) frozen unstable; urgency=low ++ ++ * New stable upstream version. ++ ++ -- Ben Gertzfield Mon, 18 May 1998 12:17:52 -0700 ++ ++gtk+ (1:1.0.1-1) frozen unstable; urgency=low ++ ++ * This is a bug-fix-only upstream release. ++ ++ -- Ben Gertzfield Mon, 4 May 1998 21:50:01 -0700 ++ ++gtk+ (1:1.0.0-1) frozen unstable; urgency=low ++ ++ * Hooray! Version 1.0.0 has been released! This will hopefully ++ be the final Debian version of gtk+ for hamm. ++ * .gifs added to libgtk-doc, fixes bug #20720. ++ ++ -- Ben Gertzfield Mon, 13 Apr 1998 20:32:06 -0700 ++ ++gtk+ (1:0.99.10-1) frozen unstable; urgency=low ++ ++ * New upstream version, lots more bugfixes. ++ * Built without .deps directories. ++ * Renamed ChangeLog.gz to changelog.gz in libgtk-doc, fixes lintian ++ error. ++ ++ -- Ben Gertzfield Tue, 7 Apr 1998 23:42:36 -0700 ++ ++gtk+ (1:0.99.9-1) frozen unstable; urgency=low ++ ++ * New upstream version, fixes many bugs with color displays. ++ * Hopefully fixed all lintian warnings. ++ ++ -- Ben Gertzfield Sun, 29 Mar 1998 13:46:25 -0800 ++ ++gtk+ (1:0.99.8-1) unstable; urgency=low ++ ++ * New upstream version. ++ * New file included in libgtk-dev: /usr/share/aclocal/gtk.m4, ++ to help autoconf/automake developers use gtk and gtk-config ++ more easily. ++ * New file included in libgtk-doc: /usr/doc/libgtk-doc/gtk-config.txt ++ Please refer to this doc when developing for gtk or compiling ++ and running into odd path-related errors. ++ ++ -- Ben Gertzfield Thu, 19 Mar 1998 19:58:53 -0800 ++ ++gtk+ (1:0.99.7-4) frozen unstable; urgency=low ++ ++ * Rebuild with native Debian libtool to have libraries properly ++ linked with libc and libX et al. ++ ++ -- Ben Gertzfield Tue, 17 Mar 1998 16:05:13 -0800 ++ ++gtk+ (1:0.99.7-3) frozen unstable; urgency=low ++ ++ * Accidentally included all the html docs in /usr/doc/libgtk-doc/faq-html; ++ moved the tutorial into /usr/doc/libgtk-doc/tutorial-html. ++ * Included the Italian Gtk+ Tutorial in ++ /usr/doc/libgtk-doc/italian-tutorial-html. ++ ++ -- Ben Gertzfield Mon, 16 Mar 1998 22:39:57 -0800 ++ ++gtk+ (1:0.99.7-2) unstable; urgency=low ++ ++ * Upstream source added a /usr/lib/glib/ directory that I didn't ++ notice; included this directory in libgtk-dev. ++ * Realized that Xinput support was broken because I was doing ++ ./configure --enable-xinput=xfree instead of ./configure ++ --with-xinput=xfree. Fixed. ++ ++ -- Ben Gertzfield Sun, 15 Mar 1998 19:17:05 -0800 ++ ++gtk+ (1:0.99.7-1) unstable; urgency=low ++ ++ * New upstream release -- THIS IS INCOMPATIBLE WITH OLDER RELEASES! ++ All Gtk-using packages *will* need patches to work with this Gtk! ++ * Upstream release includes 'gtk-config' script to check installed ++ version of Gtk; included said script in libgtk-dev in /usr/bin. ++ ++ -- Ben Gertzfield Sun, 15 Mar 1998 11:03:03 -0800 ++ ++gtk+ (1:0.99.5-2) unstable; urgency=low ++ ++ * Modified libgtk-doc to Replace: libgtk-dev (<< 1:0.99.4) to ++ deal with both packages including the same .info files. ++ Fixes bug #19533. ++ * Also noticed that libgtk-dev depended on libgtk1 without ++ an epoch! Fixed. ++ ++ -- Ben Gertzfield Thu, 12 Mar 1998 13:37:11 -0800 ++ ++gtk+ (1:0.99.5-1) unstable; urgency=low ++ ++ * Wow, that was quick, a new upstream version. ++ ++ -- Ben Gertzfield Mon, 9 Mar 1998 22:08:08 -0800 ++ ++gtk+ (1:0.99.4-3) unstable; urgency=low ++ ++ * Recompiled with --enable-xinput=xfree to enable Wacom pads ++ and other physical input devices. ++ ++ -- Ben Gertzfield Mon, 9 Mar 1998 21:26:07 -0800 ++ ++gtk+ (1:0.99.4-2) unstable; urgency=MEDIUM ++ ++ * Ack! The shlibs file makes things depend on libgtk1 (>= 0.99.4) ++ rather than (>= 1:0.99.4)! Fixes bug #19134. ++ ++ -- Ben Gertzfield Sat, 7 Mar 1998 23:57:33 -0800 ++ ++gtk+ (1:0.99.4-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Recompiled with new debhelper to remove du warnings. ++ * Upstream source is named gtk+, not libgtk1. Changed source name. ++ * Removed --disable-xim in hopes that xim is no longer broken. ++ * Removed testgtk at the behest of the Gtk developers until I can ++ come up with a better solution, probably related to: ++ * the new libgtk-doc package! :) libgtk-doc contains the Gtk FAQ, ++ the Gtk Tutorial, and the Gtk info files. ++ ++ -- Ben Gertzfield Tue, 3 Mar 1998 22:23:47 -0800 ++ ++libgtk1 (1:0.99.3-2) unstable; urgency=low ++ ++ * Created manpage for testgtk program. ++ * Fixed copyright mention to LGPL.gz to be just LGPL. ++ * This fixes all known lintian errors. ++ ++ -- Ben Gertzfield Wed, 11 Feb 1998 14:07:17 -0800 ++ ++libgtk1 (1:0.99.3-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Include the testgtk binary in libgtk-dev. ++ ++ -- Ben Gertzfield Sat, 24 Jan 1998 15:30:09 -0800 ++ ++libgtk1 (1:0.99.2-2) unstable; urgency=low ++ ++ * Fixed shlibs file to specify version >=1:0.99.2. ++ * Renamed debian/postinst.libgtk1 to debian/postinst, so debhelper ++ would actually install it. ++ ++ -- Ben Gertzfield Mon, 5 Jan 1998 12:22:46 -0800 ++ ++libgtk1 (1:0.99.2-1) unstable; urgency=low ++ ++ * New upstream version. ++ ++ -- Ben Gertzfield Sun, 4 Jan 1998 00:21:21 -0800 ++ ++libgtk1 (1:0.99.0-1) unstable; urgency=medium ++ ++ * New upstream version with new numbering scheme, went to epoch :1 ++ correspondingly. ++ * Hopefully fixed entry-field bug. ++ * Converted to use debhelper. ++ ++ -- Ben Gertzfield Mon, 15 Dec 1997 12:02:25 -0800 ++ ++libgtk1 (971201-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Fixed copyright to say LGPL, not GPL. (bug #14867) ++ * Re-added postinst ldconfig call. (bug #14213) ++ * Info files should be correct now. (bugs #14773, #15143) ++ ++ -- Ben Gertzfield Mon, 1 Dec 1997 16:41:50 -0800 ++ ++libgtk1 (971109-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Name is really 'GIMP Tool Kit', not 'General Tool Kit'. ++ ++ -- Ben Gertzfield Mon, 10 Nov 1997 16:15:27 -0800 ++ ++libgtk1 (970925-3) unstable; urgency=low ++ ++ * Moved the include files to /usr/include/{gtk,gdk}. ++ * Removed postinst/postrm ldconfig calls, fixes old gimp bug #13773. ++ ++ -- Ben Gertzfield Fri, 17 Oct 1997 17:06:10 -0700 ++ ++libgtk1 (970925-2) unstable; urgency=low ++ ++ * Added the shlibs file. ++ * Removed the postinst/postrm calls to ldconfig, fixes bug #13733. ++ ++ -- Ben Gertzfield Fri, 10 Oct 1997 17:55:39 -0700 ++ ++libgtk1 (970925-1) unstable; urgency=low ++ ++ * New upstream version. ++ * Split off source tree from gimp's source tree. ++ ++ -- Ben Gertzfield Mon, 29 Sep 1997 13:14:45 -0700 ++ ++ +--- gtk+1.2-1.2.10.orig/debian/control ++++ gtk+1.2-1.2.10/debian/control +@@ -0,0 +1,79 @@ ++Source: gtk+1.2 ++Priority: optional ++Section: libs ++Maintainer: Akira TAGOH ++Uploaders: Debian GNOME Maintainers , Andreas Rottmann , Andrew Lau , Emil Soleyman-Zomalan , Gustavo Noronha Silva , J.H.M. Dassen (Ray) , Jose Carlos Garcia Sogo , Josselin Mouette , Jordi Mallach , Marc 'HE' Brockschmidt , OndÅ™ej Surý , Rob Bradford , Robert McQueen , Ross Burton , Sebastien Bacher , Sjoerd Simons , Takuo KITAME ++Standards-Version: 3.5.10.0 ++Build-Depends: debhelper (>> 4.0.0), gettext, libx11-dev, libxext-dev, libxi-dev, libxmu-dev, x-dev, libglib1.2-dev (>= 1.2.9), autotools-dev ++ ++Package: libgtk1.2 ++Architecture: any ++Section: libs ++Pre-Depends: dpkg (>= 1.6.8) ++Depends: libgtk1.2-common (>= ${Source-Version}), ${shlibs:Depends} ++Conflicts: libgtk-dev (<< 1:1.0.2) ++Replaces: libgtk1.1.5, libgtk1.1.6, libgtk1.1.9, libgtk1.1.11, libgtk1.1.12, libgtk1.1.13, libgtk1.1.14, libgtk1.1.15, libgtk1.1.16 ++Description: The GIMP Toolkit set of widgets for X ++ The GIMP Toolkit is a freely available set of widgets for X. ++ GTK is easy to use, and has been implemented in such projects as ++ The GNU Image Manipulation Program (The GIMP), GNOME, a GNU ++ desktop set of utilities for X, and gzilla, a GNU web-browser. ++ ++Package: libgtk1.2-dev ++Architecture: any ++Section: libdevel ++Pre-Depends: dpkg (>= 1.6.8) ++Depends: libgtk1.2 (= ${Source-Version}), libglib1.2-dev, libx11-dev, libxext-dev, libxi-dev, pkg-config ++Suggests: libgtk1.2-doc ++Conflicts: libgtk1 (<< 1:1.0.4), libgtk-dev, libgtk1.1.5-dev, libgtk1.1.6-dev, libgtk1.1.7-dev, libgtk1.1.8-dev, libgtk1.1.9-dev, libgtk1.1.11-dev, libgtk1.1.12-dev, libgtk1.1.13-dev, libgtk1.1.14-dev, libgtk1.1.15-dev, libgtk1.1.16-dev, libgtk1.2 (<< 1.2.10-4) ++Provides: libgtk-dev, libgtk1.1-dev ++Replaces: libgtk-dev, libgtk1.1-dev, libgtk1.1.5-dev, libgtk1.1.6-dev, libgtk1.1.9-dev, libgtk1.1.11-dev, libgtk1.1.12-dev, libgtk1.1.13-dev, libgtk1.1.14-dev, libgtk1.1.16-dev, libgtk1.2 (<< 1.2.10-4) ++Description: Development files for the GIMP Toolkit ++ This package contains the header files and static libraries for the ++ GIMP Toolkit set of widgets for X. ++ . ++ Install this package if you wish to develop your own X programs using ++ the GIMP Toolkit 1.2, or if you wish to compile your own plug-ins for ++ The GIMP. ++ ++Package: libgtk1.2-doc ++Architecture: all ++Section: doc ++Pre-Depends: dpkg (>= 1.6.8) ++Conflicts: libgtk-dev (<< 1:0.99.4), libgtk-doc, libgtk1.1-doc, libgtk1.1.5-doc, libgtk1.1.6-doc, libgtk1.1.7-doc, libgtk1.1.8-doc, libgtk1.1.9-doc, libgtk1.1.11-doc, libgtk1.1.12-doc, libgtk1.1.13-doc, libgtk1.1.14-doc, libgtk1.1.15-doc, libgtk1.1.16-doc ++Replaces: libgtk-doc, libgtk1.1-doc, libgtk1.1.5-doc, libgtk1.1.6-doc, libgtk1.1.9-doc, libgtk1.1.11-doc, libgtk1.1.12-doc, libgtk1.1.13-doc, libgtk1.1.14-doc, libgtk1.1.15-doc, libgtk1.1.16-doc ++Suggests: devhelp-book-gtk ++Description: Documentation for the GIMP Toolkit ++ This package contains lots of info-files, HTML docs, FAQs, and ++ other handy documentation about the GIMP Toolkit set of widgets ++ for X. ++ . ++ Install this package if you want to have lots of info about the ++ GIMP toolkit when you're programming. ++ ++Package: libgtk1.2-common ++Architecture: all ++Section: misc ++Replaces: libgtk1.2 (<< 1.2.10-4) ++Description: Common files for the GTK+ library ++ The GIMP Toolkit is a freely available set of widgets for X. ++ GTK is easy to use, and has been implemented in such projects as ++ The GNU Image Manipulation Program (The GIMP), GNOME, a GNU ++ desktop set of utilities for X, and gzilla, a GNU web-browser. ++ . ++ This package contains the common files which the runtime libraries ++ need. ++ ++Package: libgtk1.2-dbg ++Architecture: any ++Section: libdevel ++Priority: extra ++Pre-Depends: dpkg (>= 1.6.8) ++Depends: libgtk1.2 (= ${Source-Version}) ++Description: Debugging files for the GIMP Toolkit ++ This package contains the debugging static libraries for the ++ GIMP Toolkit set of widgets for X. ++ . ++ Install this package if you wish to debug your own X programs using ++ the GIMP Toolkit 1.2, or if you wish to debug your own plug-ins for ++ The GIMP. +--- gtk+1.2-1.2.10.orig/acgtk.m4 ++++ gtk+1.2-1.2.10/acgtk.m4 +@@ -0,0 +1,336 @@ ++# Macro to add for using GNU gettext. ++# Ulrich Drepper , 1995. ++# ++# Modified to never use included libintl. ++# Owen Taylor , 12/15/1998 ++# ++# ++# This file can be copied and used freely without restrictions. It can ++# be used in projects which are not available under the GNU Public License ++# but which still want to provide support for the GNU gettext functionality. ++# Please note that the actual code is *not* freely available. ++ ++# serial 5 ++ ++AC_DEFUN([AM_GTK_WITH_NLS], ++ [AC_MSG_CHECKING([whether NLS is requested]) ++ dnl Default is enabled NLS ++ AC_ARG_ENABLE(nls, ++ [ --disable-nls do not use Native Language Support], ++ USE_NLS=$enableval, USE_NLS=yes) ++ AC_MSG_RESULT($USE_NLS) ++ AC_SUBST(USE_NLS) ++ ++ USE_INCLUDED_LIBINTL=no ++ ++ dnl If we use NLS figure out what method ++ if test "$USE_NLS" = "yes"; then ++# AC_DEFINE(ENABLE_NLS) ++# AC_MSG_CHECKING([whether included gettext is requested]) ++# AC_ARG_WITH(included-gettext, ++# [ --with-included-gettext use the GNU gettext library included here], ++# nls_cv_force_use_gnu_gettext=$withval, ++# nls_cv_force_use_gnu_gettext=no) ++# AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) ++ nls_cv_force_use_gnu_gettext="no" ++ ++ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" ++ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ++ dnl User does not insist on using GNU NLS library. Figure out what ++ dnl to use. If gettext or catgets are available (in this order) we ++ dnl use this. Else we have to fall back to GNU NLS library. ++ dnl catgets is only used if permitted by option --with-catgets. ++ nls_cv_header_intl= ++ nls_cv_header_libgt= ++ CATOBJEXT=NONE ++ ++ AC_CHECK_HEADER(libintl.h, ++ [AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, ++ [AC_TRY_LINK([#include ], [return (int) dgettext ("","")], ++ gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no)]) ++ ++ if test "$gt_cv_func_dgettext_libc" != "yes"; then ++ AC_CHECK_LIB(intl, bindtextdomain, ++ [AC_CACHE_CHECK([for dgettext in libintl], ++ gt_cv_func_dgettext_libintl, ++ [AC_CHECK_LIB(intl, dgettext, ++ gt_cv_func_dgettext_libintl=yes, ++ gt_cv_func_dgettext_libintl=no)], ++ gt_cv_func_dgettext_libintl=no)]) ++ fi ++ ++ if test "$gt_cv_func_dgettext_libintl" = "yes"; then ++ LIBS="$LIBS -lintl"; ++ fi ++ ++ if test "$gt_cv_func_dgettext_libc" = "yes" \ ++ || test "$gt_cv_func_dgettext_libintl" = "yes"; then ++ AC_DEFINE(HAVE_GETTEXT) ++ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, ++ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl ++ if test "$MSGFMT" != "no"; then ++ AC_CHECK_FUNCS(dcgettext) ++ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) ++ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, ++ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) ++ AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; ++ return _nl_msg_cat_cntr], ++ [CATOBJEXT=.gmo ++ DATADIRNAME=share], ++ [CATOBJEXT=.mo ++ DATADIRNAME=lib]) ++ INSTOBJEXT=.mo ++ fi ++ fi ++ ++ # Added by Martin Baulig 12/15/98 for libc5 systems ++ if test "$gt_cv_func_dgettext_libc" != "yes" \ ++ && test "$gt_cv_func_dgettext_libintl" = "yes"; then ++ INTLLIBS=-lintl ++ LIBS=`echo $LIBS | sed -e 's/-lintl//'` ++ fi ++ ]) ++ ++ if test "$CATOBJEXT" = "NONE"; then ++ AC_MSG_CHECKING([whether catgets can be used]) ++ AC_ARG_WITH(catgets, ++ [ --with-catgets use catgets functions if available], ++ nls_cv_use_catgets=$withval, nls_cv_use_catgets=no) ++ AC_MSG_RESULT($nls_cv_use_catgets) ++ ++ if test "$nls_cv_use_catgets" = "yes"; then ++ dnl No gettext in C library. Try catgets next. ++ AC_CHECK_LIB(i, main) ++ AC_CHECK_FUNC(catgets, ++ [AC_DEFINE(HAVE_CATGETS) ++ INTLOBJS="\$(CATOBJS)" ++ AC_PATH_PROG(GENCAT, gencat, no)dnl ++# if test "$GENCAT" != "no"; then ++# AC_PATH_PROG(GMSGFMT, gmsgfmt, no) ++# if test "$GMSGFMT" = "no"; then ++# AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt, ++# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no) ++# fi ++# AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, ++# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) ++# USE_INCLUDED_LIBINTL=yes ++# CATOBJEXT=.cat ++# INSTOBJEXT=.cat ++# DATADIRNAME=lib ++# INTLDEPS='$(top_builddir)/intl/libintl.a' ++# INTLLIBS=$INTLDEPS ++# LIBS=`echo $LIBS | sed -e 's/-lintl//'` ++# nls_cv_header_intl=intl/libintl.h ++# nls_cv_header_libgt=intl/libgettext.h ++# fi ++ ]) ++ fi ++ fi ++ ++ if test "$CATOBJEXT" = "NONE"; then ++ dnl Neither gettext nor catgets in included in the C library. ++ dnl Fall back on GNU gettext library. ++ nls_cv_use_gnu_gettext=yes ++ fi ++ fi ++ ++ if test "$nls_cv_use_gnu_gettext" != "yes"; then ++ AC_DEFINE(ENABLE_NLS) ++ else ++ # Unset this variable since we use the non-zero value as a flag. ++ CATOBJEXT= ++# dnl Mark actions used to generate GNU NLS library. ++# INTLOBJS="\$(GETTOBJS)" ++# AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, ++# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt) ++# AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) ++# AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, ++# [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) ++# AC_SUBST(MSGFMT) ++# USE_INCLUDED_LIBINTL=yes ++# CATOBJEXT=.gmo ++# INSTOBJEXT=.mo ++# DATADIRNAME=share ++# INTLDEPS='$(top_builddir)/intl/libintl.a' ++# INTLLIBS=$INTLDEPS ++# LIBS=`echo $LIBS | sed -e 's/-lintl//'` ++# nls_cv_header_intl=intl/libintl.h ++# nls_cv_header_libgt=intl/libgettext.h ++ fi ++ ++ dnl Test whether we really found GNU xgettext. ++ if test "$XGETTEXT" != ":"; then ++ dnl If it is no GNU xgettext we define it as : so that the ++ dnl Makefiles still can work. ++ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then ++ : ; ++ else ++ AC_MSG_RESULT( ++ [found xgettext program is not GNU xgettext; ignore it]) ++ XGETTEXT=":" ++ fi ++ fi ++ ++ # We need to process the po/ directory. ++ POSUB=po ++ else ++ DATADIRNAME=share ++ nls_cv_header_intl=intl/libintl.h ++ nls_cv_header_libgt=intl/libgettext.h ++ fi ++ AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl) ++ AC_OUTPUT_COMMANDS( ++ [case "$CONFIG_FILES" in *po/Makefile.in*) ++ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile ++ esac]) ++ ++ ++# # If this is used in GNU gettext we have to set USE_NLS to `yes' ++# # because some of the sources are only built for this goal. ++# if test "$PACKAGE" = gettext; then ++# USE_NLS=yes ++# USE_INCLUDED_LIBINTL=yes ++# fi ++ ++ dnl These rules are solely for the distribution goal. While doing this ++ dnl we only have to keep exactly one list of the available catalogs ++ dnl in configure.in. ++ for lang in $ALL_LINGUAS; do ++ GMOFILES="$GMOFILES $lang.gmo" ++ POFILES="$POFILES $lang.po" ++ done ++ ++ dnl Make all variables we use known to autoconf. ++ AC_SUBST(USE_INCLUDED_LIBINTL) ++ AC_SUBST(CATALOGS) ++ AC_SUBST(CATOBJEXT) ++ AC_SUBST(DATADIRNAME) ++ AC_SUBST(GMOFILES) ++ AC_SUBST(INSTOBJEXT) ++ AC_SUBST(INTLDEPS) ++ AC_SUBST(INTLLIBS) ++ AC_SUBST(INTLOBJS) ++ AC_SUBST(POFILES) ++ AC_SUBST(POSUB) ++ ]) ++ ++AC_DEFUN([AM_GTK_GNU_GETTEXT], ++ [AC_REQUIRE([AC_PROG_MAKE_SET])dnl ++ AC_REQUIRE([AC_PROG_CC])dnl ++ AC_REQUIRE([AC_PROG_RANLIB])dnl ++ AC_REQUIRE([AC_ISC_POSIX])dnl ++ AC_REQUIRE([AC_HEADER_STDC])dnl ++ AC_REQUIRE([AC_C_CONST])dnl ++ AC_REQUIRE([AC_C_INLINE])dnl ++ AC_REQUIRE([AC_TYPE_OFF_T])dnl ++ AC_REQUIRE([AC_TYPE_SIZE_T])dnl ++ AC_REQUIRE([AC_FUNC_ALLOCA])dnl ++ AC_REQUIRE([AC_FUNC_MMAP])dnl ++ ++ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \ ++unistd.h sys/param.h]) ++ AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ ++strdup __argz_count __argz_stringify __argz_next]) ++ ++ if test "${ac_cv_func_stpcpy+set}" != "set"; then ++ AC_CHECK_FUNCS(stpcpy) ++ fi ++ if test "${ac_cv_func_stpcpy}" = "yes"; then ++ AC_DEFINE(HAVE_STPCPY) ++ fi ++ ++ AM_LC_MESSAGES ++ AM_GTK_WITH_NLS ++ ++ if test "x$CATOBJEXT" != "x"; then ++ if test "x$ALL_LINGUAS" = "x"; then ++ LINGUAS= ++ else ++ AC_MSG_CHECKING(for catalogs to be installed) ++ NEW_LINGUAS= ++ for lang in ${LINGUAS=$ALL_LINGUAS}; do ++ case "$ALL_LINGUAS" in ++ *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; ++ esac ++ done ++ LINGUAS=$NEW_LINGUAS ++ AC_MSG_RESULT($LINGUAS) ++ fi ++ ++ dnl Construct list of names of catalog files to be constructed. ++ if test -n "$LINGUAS"; then ++ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done ++ fi ++ fi ++ ++ dnl The reference to in the installed file ++ dnl must be resolved because we cannot expect the users of this ++ dnl to define HAVE_LOCALE_H. ++ if test $ac_cv_header_locale_h = yes; then ++ INCLUDE_LOCALE_H="#include " ++ else ++ INCLUDE_LOCALE_H="\ ++/* The system does not provide the header . Take care yourself. */" ++ fi ++ AC_SUBST(INCLUDE_LOCALE_H) ++ ++ dnl Determine which catalog format we have (if any is needed) ++ dnl For now we know about two different formats: ++ dnl Linux libc-5 and the normal X/Open format ++ test -d intl || mkdir intl ++ if test "$CATOBJEXT" = ".cat"; then ++ AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen) ++ ++ dnl Transform the SED scripts while copying because some dumb SEDs ++ dnl cannot handle comments. ++ sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed ++ fi ++ dnl po2tbl.sed is always needed. ++ sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \ ++ $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed ++ ++ dnl In the intl/Makefile.in we have a special dependency which makes ++ dnl only sense for gettext. We comment this out for non-gettext ++ dnl packages. ++ if test "$PACKAGE" = "gettext"; then ++ GT_NO="#NO#" ++ GT_YES= ++ else ++ GT_NO= ++ GT_YES="#YES#" ++ fi ++ AC_SUBST(GT_NO) ++ AC_SUBST(GT_YES) ++ ++ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly ++ dnl find the mkinstalldirs script in another subdir but ($top_srcdir). ++ dnl Try to locate is. ++ MKINSTALLDIRS= ++ if test -n "$ac_aux_dir"; then ++ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ++ fi ++ if test -z "$MKINSTALLDIRS"; then ++ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" ++ fi ++ AC_SUBST(MKINSTALLDIRS) ++ ++ dnl *** For now the libtool support in intl/Makefile is not for real. ++ l= ++ AC_SUBST(l) ++ ++ dnl Generate list of files to be processed by xgettext which will ++ dnl be included in po/Makefile. ++ test -d po || mkdir po ++ if test "x$srcdir" != "x."; then ++ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then ++ posrcprefix="$srcdir/" ++ else ++ posrcprefix="../$srcdir/" ++ fi ++ else ++ posrcprefix="../" ++ fi ++ rm -f po/POTFILES ++ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ ++ < $srcdir/po/POTFILES.in > po/POTFILES ++ ]) diff --git a/source/l/gtk+/slack-desc b/source/l/gtk+/slack-desc new file mode 100644 index 000000000..88cf14b69 --- /dev/null +++ b/source/l/gtk+/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gtk+: gtk+ (graphical user interface toolkit, version 1.x) +gtk+: +gtk+: GTK+, which stands for the Gimp ToolKit, is a library for creating +gtk+: graphical user interfaces for the X Window System. +gtk+: +gtk+: This library has been largely replaced by GTK+ version 2, but there +gtk+: are still some good programs that require it. +gtk+: +gtk+: +gtk+: +gtk+: diff --git a/source/l/gtk+2/doinst.sh b/source/l/gtk+2/doinst.sh new file mode 100644 index 000000000..1122e0cd7 --- /dev/null +++ b/source/l/gtk+2/doinst.sh @@ -0,0 +1,41 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +if [ -d etc/gtk-2.0/$(uname -m)-slackware-linux ]; then + config etc/gtk-2.0/$(uname -m)-slackware-linux/im-multipress.conf.new +elif [ -d etc/gtk-2.0/i486-slackware-linux ]; then + config etc/gtk-2.0/i486-slackware-linux/im-multipress.conf.new +elif [ -d etc/gtk-2.0/*-slackware-linux ]; then + config etc/gtk-2.0/*-slackware-linux/im-multipress.conf.new +fi + +# Since the use of icon caching is optional, and has to be kept in sync +# somehow (like a "registry" through a cron job, or whatever, I tend to +# think the user should be the one to choose if they really want to set +# this up or not: +# +# Example: +#for dir in /usr/share/icons/* ; do +# if [ -d $dir ]; then +# /usr/bin/gtk-update-icon-cache -f -t $dir 1> /dev/null 2> /dev/null +# fi +#done +mkdir -p etc/gtk-2.0 + +chroot . rm -f /usr/share/icons/*/icon-theme.cache 1> /dev/null 2> /dev/null + +# Run this if we are on an installed system. Otherwise it will be +# handled on first boot. +if [ -x /usr/bin/update-gtk-immodules-2.0 ]; then + /usr/bin/update-gtk-immodules +fi + diff --git a/source/l/gtk+2/gtk+2.SlackBuild b/source/l/gtk+2/gtk+2.SlackBuild new file mode 100755 index 000000000..0c4e043a7 --- /dev/null +++ b/source/l/gtk+2/gtk+2.SlackBuild @@ -0,0 +1,183 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.14.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gtk2 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG/usr +cd $TMP +rm -rf gtk+-$VERSION +tar xvf $CWD/gtk+-$VERSION.tar.bz2 || exit 1 +cd gtk+-$VERSION + +# There's been this long standing debate about PNG and -lz +# and this patch is the workaround. ;-) +zcat $CWD/gtk.pnglz.diff.gz | patch -p1 --verbose || exit 1 +# Fix Flash in Konquoror: +zcat $CWD/gtk.nsplugin.diff.gz | patch -p1 --verbose || exit 1 + +## Fix for x86_64 (does not hurt the other archs but note that we will start +## using /etc/gtk-2.0/$host instead of /etc/gtk-2.0/ now): + sed -i "s/GTK_SYSCONFDIR, \\\"gtk-2\\.0\\\"/GTK_SYSCONFDIR, \\\"gtk-2\\.0\\\", HOST/g" ./gtk/gtkrc.c ./gdk-pixbuf/gdk-pixbuf-io.c + sed -i 's/sysconfdir)\\"/& \\\n\t-DHOST=\\\"$(host_triplet)\\\"/g' \ + gdk-pixbuf/Makefile.am \ + gtk/Makefile.am \ + modules/input/Makefile.am + +# The original config.{guess,sub} do not work on x86_64 +cp -p /usr/share/libtool/config.{guess,sub} . + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +libtoolize --force +autoreconf -vif + +# Autoconf changes linux to linux-gnu. +# Our host is $ARCH-slackware-linux not $ARCH-slackware-linux-gnu: +sed -i -e 's#linux|linux-gnu|#linux|linux|#' config.sub + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --with-xinput=yes \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +# Check the host value that is passed to the compile to the one in this script: +host="$ARCH-slackware-linux" +compile_host=$(grep 'host_triplet =' gtk/Makefile | sed -e "s/.* = //") +if [ "x$compile_host" != "x$host" ]; then + echo "Host mismatch: compile='$compile_host', SlackBuild='$host'" && exit 1 +fi + +make install DESTDIR=$PKG \ + RUN_QUERY_IMMODULES_TEST=false RUN_QUERY_LOADER_TEST=false \ + || exit 1 + +# I'm spamming your root partition because /etc/gtk-2.0 won't install to $DESTDIR +make install || exit 1 +cp -a /etc/gtk-2.0/* $PKG/etc/gtk-2.0/ || exit 1 +rm -rf $PKG/etc/gtk-2.0/$host +mkdir -p $PKG/etc/gtk-2.0/$host +mv $PKG/etc/gtk-2.0/* $PKG/etc/gtk-2.0/$host/ + +mv $PKG/etc/gtk-2.0/$host/im-multipress.conf $PKG/etc/gtk-2.0/$host/im-multipress.conf.new || exit 1 + +# We need to have separate 32-bit and 64-bit binaries +# for places where we have two copies of the GTK+ package installed. +# (we might have x86_64 and i486 packages on the same system, for example.) +case "$host" in + s390x*|x86_64*) + mv $PKG/usr/bin/gtk-query-immodules-2.0{,-64} + mv $PKG/usr/bin/gdk-pixbuf-query-loaders{,-64} + ( cd $PKG/usr/bin + ln -sf gtk-query-immodules-2.0-64 gtk-query-immodules-2.0 + ln -sf gdk-pixbuf-query-loaders-64 gdk-pixbuf-query-loaders + ) + ;; + *) + mv $PKG/usr/bin/gtk-query-immodules-2.0{,-32} + mv $PKG/usr/bin/gdk-pixbuf-query-loaders{,-32} + ( cd $PKG/usr/bin + ln -sf gtk-query-immodules-2.0-32 gtk-query-immodules-2.0 + ln -sf gdk-pixbuf-query-loaders-32 gdk-pixbuf-query-loaders + ) + ;; +esac + +# Install wrappers for the binaries: +cp $CWD/update-gdk-pixbuf-loaders $PKG/usr/bin/update-gdk-pixbuf-loaders +cp $CWD/update-gtk-immodules $PKG/usr/bin/update-gtk-immodules +chmod 0755 $PKG/usr/bin/update-* + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/gtk+-$VERSION +cp -a \ + AUTHORS COPYING NEWS README TODO \ + $PKG/usr/doc/gtk+-$VERSION +( cd $PKG/usr/doc/gtk+-$VERSION + ln -s /usr/share/gtk-doc/html/gail-libgail-util . + ln -s /usr/share/gtk-doc/html/gdk . + ln -s /usr/share/gtk-doc/html/gdk-pixbuf . + ln -s /usr/share/gtk-doc/html/gtk . +) + +# I'm almost inclined to think this stuff is obsolete but I don't know for sure. +# I do know that leaving it in doesn't hurt (aside from a few wasted bytes, but +# probably less than the comments here waste ;-) +mkdir -p $PKG/etc/profile.d +cp -a $CWD/profile.d/* $PKG/etc/profile.d +chmod 755 $PKG/etc/profile.d/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gtk+2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gtk+2/gtk.nsplugin.diff b/source/l/gtk+2/gtk.nsplugin.diff new file mode 100644 index 000000000..3e0932dec --- /dev/null +++ b/source/l/gtk+2/gtk.nsplugin.diff @@ -0,0 +1,11 @@ +diff -Nur gtk+-2.14.6.orig/gtk/gtkclipboard.c gtk+-2.14.6/gtk/gtkclipboard.c +--- gtk+-2.14.6.orig/gtk/gtkclipboard.c 2008-12-15 12:38:44.000000000 -0600 ++++ gtk+-2.14.6/gtk/gtkclipboard.c 2008-12-16 21:33:21.079854023 -0600 +@@ -299,6 +299,7 @@ + gtk_clipboard_get_for_display (GdkDisplay *display, + GdkAtom selection) + { ++ g_return_val_if_fail (display != NULL, NULL); + g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); + g_return_val_if_fail (!display->closed, NULL); + diff --git a/source/l/gtk+2/gtk.pnglz.diff b/source/l/gtk+2/gtk.pnglz.diff new file mode 100644 index 000000000..13020c242 --- /dev/null +++ b/source/l/gtk+2/gtk.pnglz.diff @@ -0,0 +1,12 @@ +diff -Nur gtk+-2.14.6.orig/gdk-pixbuf/Makefile.in gtk+-2.14.6/gdk-pixbuf/Makefile.in +--- gtk+-2.14.6.orig/gdk-pixbuf/Makefile.in 2008-12-15 12:42:35.000000000 -0600 ++++ gtk+-2.14.6/gdk-pixbuf/Makefile.in 2008-12-16 21:36:45.393854353 -0600 +@@ -245,7 +245,7 @@ + LIBJASPER = @LIBJASPER@ + LIBJPEG = @LIBJPEG@ + LIBOBJS = @LIBOBJS@ +-LIBPNG = @LIBPNG@ ++LIBPNG = @LIBPNG@ -lz + LIBS = @LIBS@ + LIBTIFF = @LIBTIFF@ + LIBTOOL = @LIBTOOL@ diff --git a/source/l/gtk+2/profile.d/gtk+.csh b/source/l/gtk+2/profile.d/gtk+.csh new file mode 100755 index 000000000..c9ea5acb5 --- /dev/null +++ b/source/l/gtk+2/profile.d/gtk+.csh @@ -0,0 +1,2 @@ +#!/bin/csh +setenv GDK_USE_XFT 1 diff --git a/source/l/gtk+2/profile.d/gtk+.sh b/source/l/gtk+2/profile.d/gtk+.sh new file mode 100755 index 000000000..40b910ad9 --- /dev/null +++ b/source/l/gtk+2/profile.d/gtk+.sh @@ -0,0 +1,3 @@ +#!/bin/sh +GDK_USE_XFT=1 +export GDK_USE_XFT diff --git a/source/l/gtk+2/slack-desc b/source/l/gtk+2/slack-desc new file mode 100644 index 000000000..bd800ade8 --- /dev/null +++ b/source/l/gtk+2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gtk+2: GTK+ version 2 (multi-platform GUI toolkit) +gtk+2: +gtk+2: This is GTK+, a multi-platform toolkit for creating graphical user +gtk+2: interfaces. Offering a complete set of widgets, GTK+ is suitable for +gtk+2: projects ranging from small one-off projects to complete application +gtk+2: suites. +gtk+2: +gtk+2: +gtk+2: +gtk+2: +gtk+2: diff --git a/source/l/gtk+2/update-gdk-pixbuf-loaders b/source/l/gtk+2/update-gdk-pixbuf-loaders new file mode 100644 index 000000000..942ca1862 --- /dev/null +++ b/source/l/gtk+2/update-gdk-pixbuf-loaders @@ -0,0 +1,86 @@ +#! /bin/sh +# Updates the gdk-pixbuf.loaders in /etc/gtk-2.0/$host + +umask 022 + +# Get the machine type from uname: +host=$(uname -m)-slackware-linux + +# Fix $host for arm arch: +case "$host" in + arm*) host=arm-slackware-linux-gnueabi ;; +esac + +# Deriving /etc/gtk-2.0/$host location +# +# We have had problems in the past with build systems +# changing host from i386 to i686 and appending/dropping +# the -gnu suffix, so try to match up the $host we got +# with whats actually there. +if [ ! -d /etc/gtk-2.0/$host ]; then + case "$host" in + i?86*) + for d in $(ls -d /etc/gtk-2.0/i?86*); do + host=$(basename $d) + break + done + ;; + esac +fi + +FILE=/etc/gtk-2.0/$host/gdk-pixbuf.loaders + +case "$host" in + s390x*|x86_64*) + if [ -x /usr/bin/gdk-pixbuf-query-loaders-64 ]; then + if [ "$1" = "--verbose" ]; then + echo "Updating gdk-pixbuf.loaders for ${host}:" + echo " /usr/bin/gdk-pixbuf-query-loaders-64 \\" + echo " > $FILE" + fi + /usr/bin/gdk-pixbuf-query-loaders-64 > $FILE + # Check for x86_64 multilib: + if ls -d /etc/gtk-2.0/i?86* 1> /dev/null 2> /dev/null ; then + for d in $(ls -d /etc/gtk-2.0/i?86*); do + mlhost=$(basename $d) + break + done + if [ -r /etc/gtk-2.0/$mlhost/gdk-pixbuf.loaders -a \ + -x /usr/bin/gdk-pixbuf-query-loaders-32 ]; then + FILE=/etc/gtk-2.0/$mlhost/gdk-pixbuf.loaders + if [ "$1" = "--verbose" ]; then + echo "Updating gdk-pixbuf.loaders for ${mlhost}:" + echo " /usr/bin/gdk-pixbuf-query-loaders-32 \\" + echo " > $FILE" + fi + /usr/bin/gdk-pixbuf-query-loaders-32 > $FILE + fi + fi + else + if [ "$1" = "--verbose" ]; then + echo "Updating gdk-pixbuf.loaders for ${host}:" + echo " /usr/bin/gdk-pixbuf-query-loaders \\" + echo " > $FILE" + fi + /usr/bin/gdk-pixbuf-query-loaders > $FILE + fi + ;; + *) + if [ -x /usr/bin/gdk-pixbuf-query-loaders-32 ]; then + if [ "$1" = "--verbose" ]; then + echo "Updating gdk-pixbuf.loaders for ${host}:" + echo " /usr/bin/gdk-pixbuf-query-loaders-32 \\" + echo " > $FILE" + fi + /usr/bin/gdk-pixbuf-query-loaders-32 > $FILE + else + if [ "$1" = "--verbose" ]; then + echo "Updating gdk-pixbuf.loaders for ${host}:" + echo " /usr/bin/gdk-pixbuf-query-loaders \\" + echo " > $FILE" + fi + /usr/bin/gdk-pixbuf-query-loaders > $FILE + fi + ;; +esac + diff --git a/source/l/gtk+2/update-gtk-immodules b/source/l/gtk+2/update-gtk-immodules new file mode 100644 index 000000000..d913f69f4 --- /dev/null +++ b/source/l/gtk+2/update-gtk-immodules @@ -0,0 +1,86 @@ +#! /bin/sh +# Updates the immodules in /etc/gtk-2.0/$host + +umask 022 + +# Get the machine type from uname: +host=$(uname -m)-slackware-linux + +# Fix $host for arm arch: +case "$host" in + arm*) host=arm-slackware-linux-gnueabi ;; +esac + +# Deriving /etc/gtk-2.0/$host location +# +# We have had problems in the past with build systems +# changing host from i386 to i686 and appending/dropping +# the -gnu suffix, so try to match up the $host we got +# with whats actually there. +if [ ! -d /etc/gtk-2.0/$host ]; then + case "$host" in + i?86*) + for d in $(ls -d /etc/gtk-2.0/i?86*); do + host=$(basename $d) + break + done + ;; + esac +fi + +FILE=/etc/gtk-2.0/$host/gtk.immodules + +case "$host" in + s390x*|x86_64*) + if [ -x /usr/bin/gtk-query-immodules-2.0-64 ]; then + if [ "$1" = "--verbose" ]; then + echo "Updating gtk.immodules for ${host}:" + echo " /usr/bin/gtk-query-immodules-2.0-64 \\" + echo " > $FILE" + fi + /usr/bin/gtk-query-immodules-2.0-64 > $FILE + # Check for x86_64 multilib: + if ls -d /etc/gtk-2.0/i?86* 1> /dev/null 2> /dev/null ; then + for d in $(ls -d /etc/gtk-2.0/i?86*); do + mlhost=$(basename $d) + break + done + if [ -r /etc/gtk-2.0/$mlhost/gtk.immodules -a \ + -x /usr/bin/gtk-query-immodules-2.0-32 ]; then + FILE=/etc/gtk-2.0/$mlhost/gtk.immodules + if [ "$1" = "--verbose" ]; then + echo "Updating gtk.immodules for ${mlhost}:" + echo " /usr/bin/gtk-query-immodules-2.0-32 \\" + echo " > $FILE" + fi + /usr/bin/gtk-query-immodules-2.0-32 > $FILE + fi + fi + else + if [ "$1" = "--verbose" ]; then + echo "Updating gtk.immodules for ${host}:" + echo " /usr/bin/gtk-query-immodules-2.0 \\" + echo " > $FILE" + fi + /usr/bin/gtk-query-immodules-2.0 > $FILE + fi + ;; + *) + if [ -x /usr/bin/gtk-query-immodules-2.0-32 ]; then + if [ "$1" = "--verbose" ]; then + echo "Updating gtk.immodules for ${host}:" + echo " /usr/bin/gtk-query-immodules-2.0-32 \\" + echo " > $FILE" + fi + /usr/bin/gtk-query-immodules-2.0-32 > $FILE + else + if [ "$1" = "--verbose" ]; then + echo "Updating gtk.immodules for ${host}:" + echo " /usr/bin/gtk-query-immodules-2.0 \\" + echo " > $FILE" + fi + /usr/bin/gtk-query-immodules-2.0 > $FILE + fi + ;; +esac + diff --git a/source/l/gtkspell/gtkspell.SlackBuild b/source/l/gtkspell/gtkspell.SlackBuild new file mode 100755 index 000000000..88e66548e --- /dev/null +++ b/source/l/gtkspell/gtkspell.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=gtkspell +VERSION=${VERSION:-$(echo $(basename $(echo $PRGNAM-*.tar.bz2 | cut -f 2 -d -) .tar.bz2) | cut -f 2 -d -)} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/gtkspell/slack-desc b/source/l/gtkspell/slack-desc new file mode 100644 index 000000000..93fa8af8e --- /dev/null +++ b/source/l/gtkspell/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gtkspell: gtkspell (GTK2 spell checker interface library) +gtkspell: +gtkspell: GtkSpell provides MSWord/MacOSX-style highlighting of misspelled words +gtkspell: in a GtkTextView widget. Right-clicking a misspelled word pops up a +gtkspell: menu of suggested replacements. +gtkspell: +gtkspell: +gtkspell: +gtkspell: +gtkspell: +gtkspell: diff --git a/source/l/hal-info/hal-info.SlackBuild b/source/l/hal-info/hal-info.SlackBuild new file mode 100755 index 000000000..fa61d8bea --- /dev/null +++ b/source/l/hal-info/hal-info.SlackBuild @@ -0,0 +1,65 @@ +#!/bin/sh + +# Copyright 2007, 2008 Robby Workman, Northport, AL, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=hal-info +VERSION=${VERSION:-20090716} +ARCH=noarch +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + || exit 1 + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* HACKING INSTALL NEWS README* \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/hal-info/slack-desc b/source/l/hal-info/slack-desc new file mode 100644 index 000000000..0de313531 --- /dev/null +++ b/source/l/hal-info/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +hal-info: hal-info (device information for HAL) +hal-info: +hal-info: The hal-info package contains device information for HAL, a Hardware +hal-info: Abstraction Layer. +hal-info: +hal-info: For more info, see: http://www.freedesktop.org/Software/hal +hal-info: +hal-info: +hal-info: +hal-info: +hal-info: diff --git a/source/l/hal/doinst.sh b/source/l/hal/doinst.sh new file mode 100644 index 000000000..ec123d59c --- /dev/null +++ b/source/l/hal/doinst.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.hald.new: +if [ -e etc/rc.d/rc.hald ]; then + cp -a etc/rc.d/rc.hald etc/rc.d/rc.hald.new.incoming + cat etc/rc.d/rc.hald.new > etc/rc.d/rc.hald.new.incoming + mv etc/rc.d/rc.hald.new.incoming etc/rc.d/rc.hald.new +fi + +config etc/rc.d/rc.hald.new +config etc/dbus-1/system.d/hal.conf.new + diff --git a/source/l/hal/hal.SlackBuild b/source/l/hal/hal.SlackBuild new file mode 100755 index 000000000..a797b2523 --- /dev/null +++ b/source/l/hal/hal.SlackBuild @@ -0,0 +1,153 @@ +#!/bin/sh + +# Copyright 2007 Ole Andre Rodlie +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +PRGNAM=hal +VERSION=0.5.11 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-6} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Restore Xorg's Zap'ing behavior by default and make it +# clearer to the user how to edit and/or get back old behavior +zcat $CWD/patches/10-keymap.fdi-restore_zap.diff.gz | patch -p1 || exit 1 +# Hide some invalid partition types +zcat $CWD/patches/hide_more_invalid_partitions.diff.gz | patch -p1 || exit 1 +# Allow uid/gid options with ntfs-3g filesystems +zcat $CWD/patches/allow_uid_gid_ntfs.diff.gz | patch -p1 || exit 1 +# Check UDI's properly so that we don't cause dbus errors +zcat $CWD/patches/check_udi_properly.diff.gz | patch -p1 || exit 1 +# Prevent crash on newer kernels during resume operations +zcat $CWD/patches/fix_led_crash.diff.gz | patch -p1 || exit 1 +# Fix a crash when assembling md devices +zcat $CWD/patches/fix_md_crash.diff.gz | patch -p1 || exit 1 +# Fix another segfault in mdraid handling +zcat $CWD/patches/fix_segfault_in_mdraid.diff.gz | patch -p1 || exit 1 +# Strip trailing "/" characters from UDI strings to prevent dbus errors +zcat $CWD/patches/fixup_udi_strings.diff.gz | patch -p1 || exit 1 +# Ignore duplicate events (e.g. run udevadm trigger on a running system) +zcat $CWD/patches/ignore_dupe_add_events.diff.gz | patch -p1 || exit 1 +# Use direct hal connection to set the X keymap +zcat $CWD/patches/set_X_keymap_properly.diff.gz | patch -p1 || exit 1 +# Instead of dying, regenerate the fdi cache if it's zero-byte +zcat $CWD/patches/regen_fdi_cache_if_zero_size.diff.gz | patch -p1 || exit 1 +# We need to use "udevadm info" now instead of "udevinfo" +zcat $CWD/patches/use_udevadm_not_udevinfo.patch.gz | patch -p1 || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --enable-docbook-docs \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --with-pid-file=/var/run/hald/pid \ + --enable-parted \ + --disable-policy-kit \ + --disable-console-kit \ + --disable-acl-management \ + --enable-umount-helper \ + --enable-sonypic \ + --build=$ARCH-slackware-linux \ + || exit 1 +# These were merged into the 2.6.22 kernels +# --enable-acpi-ibm --enable-acpi-toshiba + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +# Let's put the udev rules in the right place +mkdir -p $PKG/lib +mv $PKG/etc/udev $PKG/lib + +# Install init script for hal +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.hald.gz > $PKG/etc/rc.d/rc.hald.new +# Make HAL run by default: +chmod 0755 $PKG/etc/rc.d/rc.hald.new + +# Make the HAL access controls suitable for us +# Big thanks to Richard Hughes for feedback on this :-) +# First, move the one installed by the system to the docs directory +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +mv $PKG/etc/dbus-1/system.d/hal.conf \ + $PKG/usr/doc/$PRGNAM-$VERSION/hal.conf.orig +# Don't clobber an existing config file in case custom changes have been made +zcat $CWD/hal.conf.gz > $PKG/etc/dbus-1/system.d/hal.conf.new + +# Install docs (directory was created above) +cp -a \ + AUTHORS COPYING* HACKING INSTALL NEWS README* \ + $PKG/usr/doc/$PRGNAM-$VERSION +( cd $PKG/usr/doc/$PRGNAM-$VERSION + ln -s ../../share/gtk-doc/html/libhal libhal + ln -s ../../share/gtk-doc/html/libhal-storage libhal-storage +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/hal/hal.conf b/source/l/hal/hal.conf new file mode 100644 index 000000000..03c75353b --- /dev/null +++ b/source/l/hal/hal.conf @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/l/hal/patches/10-keymap.fdi-restore_zap.diff b/source/l/hal/patches/10-keymap.fdi-restore_zap.diff new file mode 100644 index 000000000..5958aae2b --- /dev/null +++ b/source/l/hal/patches/10-keymap.fdi-restore_zap.diff @@ -0,0 +1,62 @@ +diff -Nur hal-0.5.11.orig/fdi/policy/10osvendor/10-keymap.fdi hal-0.5.11/fdi/policy/10osvendor/10-keymap.fdi +--- hal-0.5.11.orig/fdi/policy/10osvendor/10-keymap.fdi 2008-05-07 18:21:16.000000000 -0500 ++++ hal-0.5.11/fdi/policy/10osvendor/10-keymap.fdi 2009-07-21 00:06:11.779152226 -0500 +@@ -1,4 +1,8 @@ + ++ ++ ++ + + + +@@ -6,18 +10,41 @@ + + + +- base + +- +- keyboard +- +- evdev +- ++ ++ terminate:ctrl_alt_bksp + ++ ++ base ++ evdev + us + ++ + + + ++ ++ ++ diff --git a/source/l/hal/patches/allow_uid_gid_ntfs.diff b/source/l/hal/patches/allow_uid_gid_ntfs.diff new file mode 100644 index 000000000..0997fff8a --- /dev/null +++ b/source/l/hal/patches/allow_uid_gid_ntfs.diff @@ -0,0 +1,20 @@ +Author: Michael Biebl +Date: Mon Nov 10 13:33:48 2008 +0100 + + allow uid/gid mount option for ntfs + + Allow uid/gid mount option for ntfs, as reported in + http://bugs.debian.org/427109. + +diff -Nur hal-0.5.11.orig/tools/hal-storage-mount.c hal-0.5.11/tools/hal-storage-mount.c +--- hal-0.5.11.orig/tools/hal-storage-mount.c 2008-05-07 18:24:23.000000000 -0500 ++++ hal-0.5.11/tools/hal-storage-mount.c 2009-07-16 16:13:12.544551085 -0500 +@@ -720,6 +720,8 @@ + * (since these doesn't contain uid/gid bits) + */ + if (strcmp (libhal_volume_get_fstype (volume), "vfat") != 0 && ++ strcmp (libhal_volume_get_fstype (volume), "ntfs") != 0 && ++ strcmp (libhal_volume_get_fstype (volume), "ntfs-3g") != 0 && + strcmp (libhal_volume_get_fstype (volume), "iso9660") != 0 && + strcmp (libhal_volume_get_fstype (volume), "hfs") != 0 && + strcmp (libhal_volume_get_fstype (volume), "udf") != 0) { diff --git a/source/l/hal/patches/check_udi_properly.diff b/source/l/hal/patches/check_udi_properly.diff new file mode 100644 index 000000000..cd474abc5 --- /dev/null +++ b/source/l/hal/patches/check_udi_properly.diff @@ -0,0 +1,41 @@ +Author: Richard Hughes +Date: Thu Jan 29 08:33:00 2009 +0000 + + check udi in hal-get-property + + We are not checking if a UDI is valid in hal-get-property + which means getting a horrible DBUS error if the entry + is not a valid DBUS path. + +diff --git a/tools/hal_get_property.c b/tools/hal_get_property.c +index ecaa6ce..d31261a 100644 +--- a/tools/hal_get_property.c ++++ b/tools/hal_get_property.c +@@ -84,6 +84,7 @@ main (int argc, char *argv[]) + dbus_bool_t is_hex = FALSE; + dbus_bool_t is_verbose = FALSE; + dbus_bool_t is_version = FALSE; ++ dbus_bool_t udi_exists; + char *str; + DBusError error; + +@@ -168,6 +169,19 @@ main (int argc, char *argv[]) + return 1; + } + ++ /* check UDI exists */ ++ udi_exists = libhal_device_exists (hal_ctx, udi, &error); ++ if (!udi_exists) { ++ fprintf (stderr, "error: UDI %s does not exist\n", udi); ++ return 1; ++ } ++ if (dbus_error_is_set(&error)) { ++ fprintf (stderr, "error: libhal_device_exists: %s: %s\n", error.name, error.message); ++ LIBHAL_FREE_DBUS_ERROR (&error); ++ return 1; ++ } ++ ++ /* get type */ + type = libhal_device_get_property_type (hal_ctx, udi, key, &error); + if (type == LIBHAL_PROPERTY_TYPE_INVALID) { + fprintf (stderr, "error: libhal_device_get_property_type: %s: %s\n", error.name, error.message); diff --git a/source/l/hal/patches/fix_led_crash.diff b/source/l/hal/patches/fix_led_crash.diff new file mode 100644 index 000000000..3b50bbca4 --- /dev/null +++ b/source/l/hal/patches/fix_led_crash.diff @@ -0,0 +1,26 @@ +commit aec7c567419a1b8c33be1d08f962eea31a53e317 +Author: Andrey Borzenkov +Date: Tue Jul 14 21:34:07 2009 +0200 + + work aroud crash caused by LED device handling + + During suspend led device is removed; during resume it is recreated. + Apparently removing led device cause hald-addon- leds to exit + (thus disconnecting D-Bus connection); and sometimes next "add" event + comes too early, before hald had chance to notice missing addon. + + Adds extra check to hald_singleton_device_added() to ensure we do not + abort on disconnected D-Bus connection. + +diff -Nur hal-0.5.11.orig/hald/hald_dbus.c hal-0.5.11/hald/hald_dbus.c +--- hal-0.5.11.orig/hald/hald_dbus.c 2008-05-07 18:23:29.000000000 -0500 ++++ hal-0.5.11/hald/hald_dbus.c 2009-07-16 16:19:04.629624258 -0500 +@@ -3432,7 +3432,7 @@ + if (dbus_connection_send_with_reply (connection, + message, + &pending_call, +- /*-1*/ 8000)) { ++ /*-1*/ 8000) && pending_call) { + /*HAL_INFO (("connection=%x message=%x", connection, message));*/ + dbus_pending_call_set_notify (pending_call, + reply_from_singleton_device_changed, diff --git a/source/l/hal/patches/fix_md_crash.diff b/source/l/hal/patches/fix_md_crash.diff new file mode 100644 index 000000000..8a404c77f --- /dev/null +++ b/source/l/hal/patches/fix_md_crash.diff @@ -0,0 +1,45 @@ +Backported from b35bf1fbfc000749010a27f3f35a95ddf6bb0b07 Mon Sep 17 00:00:00 2001 +From: Chris Coulson +Subject: fix crash when assembling certain MD devices + +Don't assume that the parent of a volume has storage capability; e. g. +if we are an MD partition then this is the case as we were re-parented +to the root computer device object earlier. + +FD#21603 + +--- a/hald/linux/blockdev.c 2008-05-08 01:23:41.000000000 +0200 ++++ b/hald/linux/blockdev.c 2009-06-04 12:48:31.000000000 +0200 +@@ -1392,10 +1392,15 @@ hotplug_event_begin_add_blockdev (const + hal_device_property_set_bool (d, "volume.is_mounted", FALSE); + hal_device_property_set_bool (d, "volume.is_mounted_read_only", FALSE); + hal_device_property_set_bool (d, "volume.linux.is_device_mapper", is_device_mapper); +- hal_device_property_set_bool ( +- d, "volume.is_disc", +- strcmp (hal_device_property_get_string (parent, "storage.drive_type"), "cdrom") == 0); +- ++ /* Don't assume that the parent has storage capability, eg ++ * if we are an MD partition then this is the case as we were ++ * re-parented to the root computer device object earlier. ++ */ ++ if (hal_device_has_property(parent, "storage.drive_type")) { ++ hal_device_property_set_bool (d, "volume.is_disc", strcmp (hal_device_property_get_string (parent, "storage.drive_type"), "cdrom") == 0); ++ } else { ++ hal_device_property_set_bool (d, "volume.is_disc", FALSE); ++ } + + is_physical_partition = TRUE; + if (is_fakevolume || is_device_mapper) +@@ -1404,8 +1409,10 @@ hotplug_event_begin_add_blockdev (const + hal_device_property_set_bool (d, "volume.is_partition", is_physical_partition); + + hal_device_property_set_string (d, "info.category", "volume"); +- if (strcmp(hal_device_property_get_string (parent, "storage.drive_type"), "cdrom") == 0) { +- hal_device_add_capability (d, "volume.disc"); ++ if (hal_device_has_property(parent, "storage.drive_type")) { ++ if (strcmp(hal_device_property_get_string (parent, "storage.drive_type"), "cdrom") == 0) { ++ hal_device_add_capability (d, "volume.disc"); ++ } + } + hal_device_add_capability (d, "volume"); + hal_device_add_capability (d, "block"); diff --git a/source/l/hal/patches/fix_segfault_in_mdraid.diff b/source/l/hal/patches/fix_segfault_in_mdraid.diff new file mode 100644 index 000000000..88e5eaf63 --- /dev/null +++ b/source/l/hal/patches/fix_segfault_in_mdraid.diff @@ -0,0 +1,36 @@ +Author: Martin Poole +Date: Wed Jul 29 14:20:45 2009 +0100 + + Fix a segfault in the mdraid code -- see rh#507782 for more info + + Signed-off-by: Richard Hughes + +diff -Nur hal-0.5.11.orig/hald/linux/blockdev.c hal-0.5.11/hald/linux/blockdev.c +--- hal-0.5.11.orig/hald/linux/blockdev.c 2008-05-07 18:23:41.000000000 -0500 ++++ hal-0.5.11/hald/linux/blockdev.c 2009-07-30 16:22:40.624837902 -0500 +@@ -851,7 +851,7 @@ + } + + +-void ++ + hotplug_event_begin_add_blockdev (const gchar *sysfs_path, const gchar *device_file, gboolean is_partition, + HalDevice *parent, void *end_token) + { +@@ -865,6 +865,7 @@ + gboolean is_device_mapper; + gboolean is_md_device; + int md_number; ++ char tc; + + is_device_mapper = FALSE; + is_fakevolume = FALSE; +@@ -882,7 +883,7 @@ + HAL_INFO (("Handling %s as fakevolume - sysfs_path_real=%s", device_file, sysfs_path_real)); + is_fakevolume = TRUE; + sysfs_path_real = hal_util_get_parent_path (sysfs_path); +- } else if (sscanf (hal_util_get_last_element (sysfs_path), "md%d", &md_number) == 1) { ++ } else if (sscanf (hal_util_get_last_element (sysfs_path), "md%d%c", &md_number, &tc) == 1) { + HAL_INFO (("Handling %s as MD device", device_file)); + is_md_device = TRUE; + sysfs_path_real = g_strdup (sysfs_path); diff --git a/source/l/hal/patches/fixup_udi_strings.diff b/source/l/hal/patches/fixup_udi_strings.diff new file mode 100644 index 000000000..03549ec1d --- /dev/null +++ b/source/l/hal/patches/fixup_udi_strings.diff @@ -0,0 +1,69 @@ +Author: Danny Kukawka +Date: Mon Oct 13 12:55:48 2008 +0200 + + fix udi: replace '/' in the last part of the udi + + Fixed udi handling. DBus forbids a '/' after the base path + (in case of HAL: '/org/freedesktop/Hal/devices/) of a DBus + path. Replace all not allowed chars in the last part of the + UDI (everything but _a-zA-Z0-9) with a '_'. + + This fixes also fd.o#16040. + +diff --git a/hald/hald.c b/hald/hald.c +index a28d22e..051b33b 100644 +--- a/hald/hald.c ++++ b/hald/hald.c +@@ -265,6 +265,8 @@ hald_compute_udi (gchar *dst, gsize dstsize, const gchar *format, ...) + hal_util_compute_udi_valist (hald_get_gdl (), dst, dstsize, format, args); + va_end (args); + ++ hal_util_validate_udi (dst, dstsize); ++ + if (hal_device_store_find (hald_get_gdl (), dst) == NULL && + hal_device_store_find (hald_get_tdl (), dst) == NULL) + goto out; +diff --git a/hald/util.c b/hald/util.c +index 901e64f..81060e4 100644 +--- a/hald/util.c ++++ b/hald/util.c +@@ -422,6 +422,26 @@ hal_util_compute_udi (HalDeviceStore *store, gchar *dst, gsize dstsize, const gc + va_end (args); + } + ++void ++hal_util_validate_udi (gchar *udi, gsize size) { ++ ++ char end[size]; ++ ++ if (sscanf (udi, "/org/freedesktop/Hal/devices/%s", end) == 1) { ++ if (strstr(end, "/") != NULL) { ++ HAL_DEBUG (("UDI end contains invalid char '/': '%s'", udi)); ++ ++ g_strcanon (end, "_" ++ "abcdefghijklmnopqrstuvwxyz" ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ++ "1234567890", '_'); ++ g_snprintf (udi, size, "/org/freedesktop/Hal/devices/%s", end); ++ ++ HAL_DEBUG (("Fixed UDI, replaced '/', new UDI: %s", udi)); ++ } ++ } ++} ++ + + gboolean + hal_util_path_ascend (gchar *path) +diff --git a/hald/util.h b/hald/util.h +index 510c36c..5377e35 100644 +--- a/hald/util.h ++++ b/hald/util.h +@@ -70,6 +70,8 @@ void hal_util_compute_udi_valist (HalDeviceStore *store, gchar *dst, gsize dstsi + + void hal_util_compute_udi (HalDeviceStore *store, gchar *dst, gsize dstsize, const gchar *format, ...); + ++void hal_util_validate_udi (gchar *udi, gsize size); ++ + gboolean hal_util_path_ascend (gchar *path); + + void hal_util_grep_discard_existing_data (void); diff --git a/source/l/hal/patches/hide_more_invalid_partitions.diff b/source/l/hal/patches/hide_more_invalid_partitions.diff new file mode 100644 index 000000000..a4437d29a --- /dev/null +++ b/source/l/hal/patches/hide_more_invalid_partitions.diff @@ -0,0 +1,66 @@ +Author: Danny Kukawka +Date: Sat Jul 18 11:18:53 2009 +0200 + + hide more MBR, bootstrap and other partitions from desktop + + Hide more MBR, bootstrap and other partitions from desktop. + Info taken from DeviceKit-disk/udev. + +Author: Frederic Crozat +Date: Fri Jul 24 15:11:41 2009 +0200 + + hide Windows recovery partitions on pre-installed Futjisu laptops + + Hide Windows recovery partitions on pre-installed Futjisu laptops. + +diff -Nur hal-0.5.11.orig/fdi/policy/10osvendor/20-storage-methods.fdi hal-0.5.11/fdi/policy/10osvendor/20-storage-methods.fdi +--- hal-0.5.11.orig/fdi/policy/10osvendor/20-storage-methods.fdi 2008-05-07 18:21:16.000000000 -0500 ++++ hal-0.5.11/fdi/policy/10osvendor/20-storage-methods.fdi 2009-07-30 16:16:49.822172103 -0500 +@@ -130,6 +130,10 @@ + + true + ++ ++ ++ true ++ + + + +@@ -146,6 +150,11 @@ + true + + ++ ++ ++ true ++ ++ + + + +@@ -154,6 +163,24 @@ + + + ++ ++ ++ ++ true ++ ++ ++ ++ ++ ++ ++ true ++ ++ ++ + org.freedesktop.Hal.Device.Volume + + Mount diff --git a/source/l/hal/patches/ignore_dupe_add_events.diff b/source/l/hal/patches/ignore_dupe_add_events.diff new file mode 100644 index 000000000..0056d8f96 --- /dev/null +++ b/source/l/hal/patches/ignore_dupe_add_events.diff @@ -0,0 +1,40 @@ +Author: Danny Kukawka +Date: Wed Mar 18 17:30:53 2009 +0100 + + ignore ADD events if there is already a device with same sysfs_path + + Ignore ADD events if there is already a device with the same + syfs_path available in the GDL or TDL. This should prevent + problems getting duplicated devices from calling 'udevadm trigger' + (fd.o#18861) or from some other rare cases (see: + http://lists.freedesktop.org/archives/hal/2009-February/012954.html). + + TODO: Check if it make sense to call a refresh for the already + existing device instead of ignoring the event completely. + +diff -Nur hal-0.5.11.orig/hald/linux/device.c hal-0.5.11/hald/linux/device.c +--- hal-0.5.11.orig/hald/linux/device.c 2008-05-07 18:23:42.000000000 -0500 ++++ hal-0.5.11/hald/linux/device.c 2009-07-16 16:21:36.619979288 -0500 +@@ -4423,11 +4423,22 @@ + handler = dev_handlers[i]; + if (strcmp (handler->subsystem, subsystem) == 0) { + HalDevice *d; ++ HalDevice *check; + + if (strcmp (subsystem, "scsi") == 0) + if (missing_scsi_host (sysfs_path, (HotplugEvent *)end_token, HOTPLUG_ACTION_ADD)) + goto out; + ++ /* check if there is already a device with this sysfs_path in the system */ ++ if ((check = hal_device_store_match_key_value_string (hald_get_gdl (), "linux.sysfs_path", sysfs_path)) != NULL || ++ (check = hal_device_store_match_key_value_string (hald_get_tdl (), "linux.sysfs_path", sysfs_path)) != NULL) { ++ HAL_WARNING(("Have already a device with sysfs_path='%s' and udi='%s'. Ignore new add event for now.", ++ sysfs_path, hal_device_get_udi(check))); ++ /* maybe we should do a refresh on the found device ??? */ ++ hotplug_event_end (end_token); ++ goto out; ++ } ++ + /* attempt to add the device */ + d = handler->add (sysfs_path, device_file, parent_dev, parent_path); + if (d == NULL) { diff --git a/source/l/hal/patches/regen_fdi_cache_if_zero_size.diff b/source/l/hal/patches/regen_fdi_cache_if_zero_size.diff new file mode 100644 index 000000000..ab3987488 --- /dev/null +++ b/source/l/hal/patches/regen_fdi_cache_if_zero_size.diff @@ -0,0 +1,24 @@ +Author: Richard Hughes +Date: Thu Mar 5 09:40:10 2009 +0000 + + regenerate cache if it's zero sized + + Sometimes when systems go a bit haywire, the cache file is + written out as a zero byte file. We're still debugging this, + but in the case of a zero byte cache, just regenerate it anyway + +diff --git a/hald/mmap_cache.c b/hald/mmap_cache.c +index 6125cf0..cc1ffa5 100644 +--- a/hald/mmap_cache.c ++++ b/hald/mmap_cache.c +@@ -265,6 +265,10 @@ di_cache_coherency_check (gboolean setup_watches) + HAL_INFO(("Cache needs update")); + regen_cache(); + did_regen = TRUE; ++ } else if (st.st_size == 0) { ++ HAL_INFO(("Cache zero size, so regenerating")); ++ regen_cache(); ++ did_regen = TRUE; + } + } else { + regen_cache(); diff --git a/source/l/hal/patches/set_X_keymap_properly.diff b/source/l/hal/patches/set_X_keymap_properly.diff new file mode 100644 index 000000000..933bcfa3f --- /dev/null +++ b/source/l/hal/patches/set_X_keymap_properly.diff @@ -0,0 +1,96 @@ +diff --git a/tools/hal_set_property.c b/tools/hal_set_property.c +index a99b059..3ab38bb 100644 +--- a/tools/hal_set_property.c ++++ b/tools/hal_set_property.c +@@ -66,7 +66,7 @@ usage (int argc, char *argv[]) + " (--int | --string | --bool |\n" + " --strlist-pre | --strlist-post |\n" + " --strlist-rem | --double | --remove)\n" +- " [--help] [--version]\n"); ++ " [--direct] [--help] [--version]\n"); + fprintf (stderr, + "\n" " --udi Unique Device Id\n" + " --key Key of the property to set\n" +@@ -81,6 +81,7 @@ usage (int argc, char *argv[]) + " --strlist-post Append a string to a list\n" + " --strlist-rem Remove a string from a list\n" + " --remove Indicates that the property should be removed\n" ++ " --direct Use direct HAL connection\n" + " --version Show version and exit\n" + " --help Show this information and exit\n" + "\n" +@@ -114,6 +115,7 @@ main (int argc, char *argv[]) + dbus_bool_t is_version = FALSE; + int type = PROP_INVALID; + DBusError error; ++ dbus_bool_t direct = FALSE; + + if (argc <= 1) { + usage (argc, argv); +@@ -135,6 +137,7 @@ main (int argc, char *argv[]) + {"strlist-pre", 1, NULL, 0}, + {"strlist-post", 1, NULL, 0}, + {"strlist-rem", 1, NULL, 0}, ++ {"direct", 0, NULL, 0}, + {"remove", 0, NULL, 0}, + {"version", 0, NULL, 0}, + {"help", 0, NULL, 0}, +@@ -188,6 +191,8 @@ main (int argc, char *argv[]) + type = PROP_STRLIST_REM; + } else if (strcmp (opt, "remove") == 0) { + remove = TRUE; ++ } else if (strcmp (opt, "direct") == 0) { ++ direct = TRUE; + } else if (strcmp (opt, "udi") == 0) { + udi = strdup (optarg); + } else if (strcmp (opt, "version") == 0) { +@@ -215,24 +220,32 @@ main (int argc, char *argv[]) + + fprintf (stderr, "\n"); + +- dbus_error_init (&error); +- if ((hal_ctx = libhal_ctx_new ()) == NULL) { +- fprintf (stderr, "error: libhal_ctx_new\n"); +- return 1; +- } +- if (!libhal_ctx_set_dbus_connection (hal_ctx, dbus_bus_get (DBUS_BUS_SYSTEM, &error))) { +- fprintf (stderr, "error: libhal_ctx_set_dbus_connection: %s: %s\n", error.name, error.message); +- LIBHAL_FREE_DBUS_ERROR (&error); +- return 1; +- } +- if (!libhal_ctx_init (hal_ctx, &error)) { +- if (dbus_error_is_set(&error)) { +- fprintf (stderr, "error: libhal_ctx_init: %s: %s\n", error.name, error.message); +- dbus_error_free (&error); ++ dbus_error_init (&error); ++ if (direct) { ++ if ((hal_ctx = libhal_ctx_init_direct (&error)) == NULL) { ++ fprintf (stderr, "error: libhal_ctx_init_direct\n"); ++ LIBHAL_FREE_DBUS_ERROR (&error); ++ return 1; ++ } ++ } else { ++ if ((hal_ctx = libhal_ctx_new ()) == NULL) { ++ fprintf (stderr, "error: libhal_ctx_new\n"); ++ return 1; ++ } ++ if (!libhal_ctx_set_dbus_connection (hal_ctx, dbus_bus_get (DBUS_BUS_SYSTEM, &error))) { ++ fprintf (stderr, "error: libhal_ctx_set_dbus_connection: %s: %s\n", error.name, error.message); ++ LIBHAL_FREE_DBUS_ERROR (&error); ++ return 1; ++ } ++ if (!libhal_ctx_init (hal_ctx, &error)) { ++ if (dbus_error_is_set(&error)) { ++ fprintf (stderr, "error: libhal_ctx_init: %s: %s\n", error.name, error.message); ++ dbus_error_free (&error); ++ } ++ fprintf (stderr, "Could not initialise connection to hald.\n" ++ "Normally this means the HAL daemon (hald) is not running or not ready.\n"); ++ return 1; + } +- fprintf (stderr, "Could not initialise connection to hald.\n" +- "Normally this means the HAL daemon (hald) is not running or not ready.\n"); +- return 1; + } + + if (remove) { diff --git a/source/l/hal/patches/use_udevadm_not_udevinfo.patch b/source/l/hal/patches/use_udevadm_not_udevinfo.patch new file mode 100644 index 000000000..09f709e0b --- /dev/null +++ b/source/l/hal/patches/use_udevadm_not_udevinfo.patch @@ -0,0 +1,36 @@ +From: Danny Kukawka +Date: Wed, 27 Aug 2008 19:24:33 +0000 (+0200) +Subject: use udevadm instead of (deprecated) udevinfo +X-Git-Url: http://gitweb.freedesktop.org/?p=hal.git;a=commitdiff;h=f6af40c1e7ea54e6 + +use udevadm instead of (deprecated) udevinfo + +Use udevadm instead of (deprecated) udevinfo. Adapted/fixed version +of a patch contributed by Lucas Hazel via HAL ML. + +diff -Nur hal-0.5.11.orig/hald/linux/blockdev.c hal-0.5.11/hald/linux/blockdev.c +--- hal-0.5.11.orig/hald/linux/blockdev.c 2008-05-07 18:23:41.000000000 -0500 ++++ hal-0.5.11/hald/linux/blockdev.c 2009-07-16 16:16:58.051983413 -0500 +@@ -1750,7 +1750,7 @@ + char *ret; + char *u_stdout; + int u_exit_status; +- const char *argv[] = {"/usr/bin/udevinfo", "--root", "--query", "name", "--path", NULL, NULL}; ++ const char *argv[] = {"/sbin/udevadm", "info", "--root", "--query", "name", "--path", NULL, NULL}; + GError *g_error; + + ret = NULL; +diff -Nur hal-0.5.11.orig/hald/linux/coldplug.c hal-0.5.11/hald/linux/coldplug.c +--- hal-0.5.11.orig/hald/linux/coldplug.c 2008-05-07 18:23:32.000000000 -0500 ++++ hal-0.5.11/hald/linux/coldplug.c 2009-07-16 16:16:58.051983413 -0500 +@@ -149,8 +149,8 @@ + static gboolean + hal_util_init_sysfs_to_udev_map (void) + { +- char *udevdb_export_argv[] = { "/usr/bin/udevinfo", "-e", NULL }; +- char *udevroot_argv[] = { "/usr/bin/udevinfo", "-r", NULL }; ++ char *udevdb_export_argv[] = { "/sbin/udevadm", "info", "-e", NULL }; ++ char *udevroot_argv[] = { "/sbin/udevadm", "info", "-r", NULL }; + int udevinfo_exitcode; + UdevInfo *info = NULL; + char *p; diff --git a/source/l/hal/rc.hald b/source/l/hal/rc.hald new file mode 100644 index 000000000..7516de2b6 --- /dev/null +++ b/source/l/hal/rc.hald @@ -0,0 +1,49 @@ +#!/bin/sh +# Start/stop/restart the hal daemon: + +PIDFILE=/var/run/hald/pid + +hal_start() { + if [ -x /usr/sbin/hald ]; then + if ! ps axc | grep -q dbus-daemon ; then + if [ -r /etc/rc.d/rc.messagebus ]; then + sh /etc/rc.d/rc.messagebus start + sleep 1 + else + echo "FATAL: Can't start HAL daemon without dbus package." + sleep 5 + exit 1 + fi + fi + echo "Starting HAL daemon: /usr/sbin/hald --daemon=yes" + /usr/sbin/hald --daemon=yes + fi +} + +hal_stop() { + if [ -e "$PIDFILE" ]; then + kill $(cat $PIDFILE) + rm -f $PIDFILE + fi + # Just in case: + killall hald 1> /dev/null 2> /dev/null +} + +# See how we were called. +case "$1" in + start) + hal_start + ;; + stop) + hal_stop + ;; + restart) + hal_stop + sleep 1 + hal_start + ;; + *) + echo $"Usage: $0 {start|stop|restart}" + ;; +esac + diff --git a/source/l/hal/slack-desc b/source/l/hal/slack-desc new file mode 100644 index 000000000..c01fd8a68 --- /dev/null +++ b/source/l/hal/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +hal: hal (The HAL Hardware Abstraction Layer) +hal: +hal: HAL is a piece of software that provides a view of the various +hal: hardware attached to a system. HAL keeps detailed metadata for each +hal: piece of hardware and provides hooks so that system and desktop +hal: software can react to changes in the hardware configuration (such as +hal: the insertion of a DVD, or a USB flash memory stick). Users in the +hal: "plugdev" or "cdrom" group will be able to use such devices on the +hal: desktop without the need to mount/umount them manually. +hal: +hal: For more info, see: http://hal.freedesktop.org/ diff --git a/source/l/hicolor-icon-theme/doinst.sh b/source/l/hicolor-icon-theme/doinst.sh new file mode 100644 index 000000000..46e76c00a --- /dev/null +++ b/source/l/hicolor-icon-theme/doinst.sh @@ -0,0 +1,25 @@ +# Since the use of icon caching is optional, and has to be kept in sync +# somehow (like a "registry" through a cron job, or whatever, I tend to +# think the user should be the one to choose if they really want to set +# this up or not: + +# Using an absolute path (/usr/bin/gtk-update-icon-cache) will make +# this script function only on a running system. Otherwise an end-of- +# install script will take care of this job. + +# Don't make a global cache in /usr/share/icons. Not only is it huge, +# but it causes problems if it isn't constantly updated. +# |>@&^^ registries... ;-) +# +# /usr/share/icons isn't really a "theme" anyway and shouldn't have a +# icon-theme.cache file there. +# +# If there already is a global cache, rm it: +rm -f usr/share/icons/icon-theme.cache + +# Update hicolor theme cache: +if [ -d usr/share/icons/hicolor ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + chroot . /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor 1> /dev/null 2> /dev/null + fi +fi diff --git a/source/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild b/source/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild new file mode 100755 index 000000000..7d887d684 --- /dev/null +++ b/source/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-0.10} +ARCH=noarch +BUILD=${BUILD:-5} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-hicolor-icon-theme + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf hicolor-icon-theme-$VERSION +tar xvf $CWD/hicolor-icon-theme-$VERSION.tar.gz || exit 1 +cd hicolor-icon-theme-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/var/log/setup +cat $CWD/setup.08.gtk-update-icon-cache > $PKG/var/log/setup/setup.08.gtk-update-icon-cache +chmod 755 $PKG/var/log/setup/setup.08.gtk-update-icon-cache + +mkdir -p $PKG/usr/doc/hicolor-icon-theme-$VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/hicolor-icon-theme-$VERSION +chmod 644 $PKG/usr/doc/hicolor-icon-theme-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/hicolor-icon-theme-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/hicolor-icon-theme/setup.08.gtk-update-icon-cache b/source/l/hicolor-icon-theme/setup.08.gtk-update-icon-cache new file mode 100644 index 000000000..a1b220b73 --- /dev/null +++ b/source/l/hicolor-icon-theme/setup.08.gtk-update-icon-cache @@ -0,0 +1,14 @@ +#BLURB="Run gtk-update-icon-cache for hicolor theme." + +# This is needed since XFce adds a few hicolor icons that would +# not otherwise be cached. Really, I'm not sure the idea of +# caching icons is a good one -- the use of gtk-update-icon-cache +# could disappear from future install scripts. + +# Update hicolor theme cache: +if [ -d usr/share/icons/hicolor ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + chroot . /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor 1> /dev/null 2> /dev/null + fi +fi + diff --git a/source/l/hicolor-icon-theme/slack-desc b/source/l/hicolor-icon-theme/slack-desc new file mode 100644 index 000000000..4f40b1fab --- /dev/null +++ b/source/l/hicolor-icon-theme/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +hicolor-icon-theme: hicolor-icon-theme (default icon theme) +hicolor-icon-theme: +hicolor-icon-theme: This is the default fallback theme used by implementations of the icon +hicolor-icon-theme: theme specification. +hicolor-icon-theme: +hicolor-icon-theme: The specification is available at: +hicolor-icon-theme: http://www.freedesktop.org/standards/icon-theme-spec/ +hicolor-icon-theme: +hicolor-icon-theme: +hicolor-icon-theme: +hicolor-icon-theme: diff --git a/source/l/icon-naming-utils/icon-naming-utils.SlackBuild b/source/l/icon-naming-utils/icon-naming-utils.SlackBuild new file mode 100755 index 000000000..7db3da907 --- /dev/null +++ b/source/l/icon-naming-utils/icon-naming-utils.SlackBuild @@ -0,0 +1,73 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.8.90 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-icon-naming-utils + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf icon-naming-utils-$VERSION +tar xvf $CWD/icon-naming-utils-$VERSION.tar.gz || exit 1 +cd icon-naming-utils-$VERSION || exit 1 + +zcat $CWD/icon-naming-utils.pkgconfigdir.diff.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/icon-naming-utils-$VERSION +cp -a \ + AUTHORS COPYING NEWS README TODO \ + $PKG/usr/doc/icon-naming-utils-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/icon-naming-utils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/icon-naming-utils/icon-naming-utils.pkgconfigdir.diff b/source/l/icon-naming-utils/icon-naming-utils.pkgconfigdir.diff new file mode 100644 index 000000000..55075f610 --- /dev/null +++ b/source/l/icon-naming-utils/icon-naming-utils.pkgconfigdir.diff @@ -0,0 +1,11 @@ +--- ./Makefile.in.orig 2009-02-20 21:40:00.000000000 -0600 ++++ ./Makefile.in 2009-03-05 16:05:46.000000000 -0600 +@@ -149,7 +149,7 @@ + pkgconfig_in_files = \ + icon-naming-utils.pc.in + +-pkgconfigdir = $(datadir)/pkgconfig ++pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = $(pkgconfig_in_files:.pc.in=.pc) + dtddir = $(datadir)/dtds + dtd_DATA = legacy-icon-mapping.dtd diff --git a/source/l/icon-naming-utils/slack-desc b/source/l/icon-naming-utils/slack-desc new file mode 100644 index 000000000..c4fb3cb2c --- /dev/null +++ b/source/l/icon-naming-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------| +icon-naming-utils: icon-naming-utils (generate icon files for your DE) +icon-naming-utils: +icon-naming-utils: It is a script for maintaining backwards compatibility +icon-naming-utils: with current desktop icon themes, while migrating to +icon-naming-utils: the names specified in the Icon Naming Specification. +icon-naming-utils: +icon-naming-utils: Homepage: http://tango.freedesktop.org +icon-naming-utils: +icon-naming-utils: +icon-naming-utils: +icon-naming-utils: diff --git a/source/l/ilmbase/ilmbase.SlackBuild b/source/l/ilmbase/ilmbase.SlackBuild new file mode 100755 index 000000000..2426d84bb --- /dev/null +++ b/source/l/ilmbase/ilmbase.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2007 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman + + +PRGNAM=ilmbase +VERSION=1.0.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL LICENSE NEWS README* \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/ilmbase/ilmbase.info b/source/l/ilmbase/ilmbase.info new file mode 100644 index 000000000..d31e3da49 --- /dev/null +++ b/source/l/ilmbase/ilmbase.info @@ -0,0 +1,3 @@ +HOMEPAGE="http://www.openexr.org/" +DOWNLOAD="http://download.savannah.nongnu.org/releases/openexr/ilmbase-1.0.1.tar.gz" +MD5SUM="f76f094e69a6079b0beb93d97e2a217e" diff --git a/source/l/ilmbase/slack-desc b/source/l/ilmbase/slack-desc new file mode 100644 index 000000000..4d5931128 --- /dev/null +++ b/source/l/ilmbase/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ilmbase: ilmbase (Industrial Light & Magic base libraries) +ilmbase: +ilmbase: ilmbase currently includes: +ilmbase: +ilmbase: IlmThread - a thread abstraction library +ilmbase: Imath - a math function library +ilmbase: Iex - an excpetion-handling library +ilmbase: Half - Ilm's 16 bit floating point format library +ilmbase: +ilmbase: Homepage: http://www.openexr.org/ +ilmbase: diff --git a/source/l/imlib/imlib.SlackBuild b/source/l/imlib/imlib.SlackBuild new file mode 100755 index 000000000..73c60d0a0 --- /dev/null +++ b/source/l/imlib/imlib.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.9.15 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-5} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-imlib + +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf imlib-$VERSION +tar xvf $CWD/imlib-$VERSION.tar.bz2 || exit 1 +cd imlib-$VERSION +zcat $CWD/imlib.mitshm.render.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man1/* + +mkdir -p $PKG/usr/doc/imlib-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* ChangeLog INSTALL NEWS README \ + doc \ + $PKG/usr/doc/imlib-$VERSION +rm -f $PKG/usr/doc/imlib-$VERSION/doc/Makefile* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/imlib-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/imlib/imlib.mitshm.render.diff b/source/l/imlib/imlib.mitshm.render.diff new file mode 100644 index 000000000..f1c0ef111 --- /dev/null +++ b/source/l/imlib/imlib.mitshm.render.diff @@ -0,0 +1,92 @@ +diff -up -ru imlib-1.9.15.orig/gdk_imlib/misc.c imlib-1.9.15/gdk_imlib/misc.c +--- imlib-1.9.15.orig/gdk_imlib/misc.c 2002-03-04 18:06:32.000000000 +0100 ++++ imlib-1.9.15/gdk_imlib/misc.c 2007-10-28 14:00:04.000000000 +0100 +@@ -674,6 +674,10 @@ gdk_imlib_init_params(GdkImlibInitParams + visual = gdk_rgb_get_visual(); + id->x.visual = GDK_VISUAL_XVISUAL(visual); /* the visual type */ + id->x.depth = visual->depth; /* the depth of the screen in bpp */ ++ ++ id->x.shm = 0; ++ id->x.shmp = 0; ++ id->max_shm = 0; + #ifdef HAVE_SHM + if (XShmQueryExtension(id->x.disp)) + { +@@ -689,17 +693,14 @@ gdk_imlib_init_params(GdkImlibInitParams + id->x.last_xim = NULL; + id->x.last_sxim = NULL; + id->max_shm = 0x7fffffff; +- if (XShmPixmapFormat(id->x.disp) == ZPixmap) ++ if ((XShmPixmapFormat(id->x.disp) == ZPixmap) && ++ (pm == True)) + id->x.shmp = 1; + } + } + } +- else + #endif +- { +- id->x.shm = 0; +- id->x.shmp = 0; +- } ++ + id->cache.on_image = 0; + id->cache.size_image = 0; + id->cache.num_image = 0; +@@ -935,8 +936,8 @@ gdk_imlib_init_params(GdkImlibInitParams + } + if (p->flags & PARAMS_SHAREDPIXMAPS) + { +- if (id->x.shm) +- id->x.shmp = p->sharedpixmaps; ++ if (!p->sharedpixmaps) ++ id->x.shmp = 0; + } + if (p->flags & PARAMS_PALETTEOVERRIDE) + override = p->paletteoverride; +diff -up -ru imlib-1.9.15.orig/Imlib/misc.c imlib-1.9.15/Imlib/misc.c +--- imlib-1.9.15.orig/Imlib/misc.c 2004-09-21 02:22:59.000000000 +0200 ++++ imlib-1.9.15/Imlib/misc.c 2007-10-28 14:00:23.000000000 +0100 +@@ -675,6 +675,10 @@ Imlib_init_with_params(Display * disp, I + id->x.root = DefaultRootWindow(disp); /* the root window id */ + id->x.visual = DefaultVisual(disp, id->x.screen); /* the visual type */ + id->x.depth = DefaultDepth(disp, id->x.screen); /* the depth of the screen in bpp */ ++ ++ id->x.shm = 0; ++ id->x.shmp = 0; ++ id->max_shm = 0; + #ifdef HAVE_SHM + if (XShmQueryExtension(id->x.disp)) + { +@@ -690,17 +694,14 @@ Imlib_init_with_params(Display * disp, I + id->x.last_xim = NULL; + id->x.last_sxim = NULL; + id->max_shm = 0x7fffffff; +- if (XShmPixmapFormat(id->x.disp) == ZPixmap) ++ if ((XShmPixmapFormat(id->x.disp) == ZPixmap && ++ (pm == True))) + id->x.shmp = 1; + } + } + } +- else + #endif +- { +- id->x.shm = 0; +- id->x.shmp = 0; +- } ++ + id->cache.on_image = 0; + id->cache.size_image = 0; + id->cache.num_image = 0; +@@ -952,8 +953,8 @@ Imlib_init_with_params(Display * disp, I + } + if (p->flags & PARAMS_SHAREDPIXMAPS) + { +- if (id->x.shm) +- id->x.shmp = p->sharedpixmaps; ++ if (!p->sharedpixmaps) ++ id->x.shmp = 0; + } + if (p->flags & PARAMS_PALETTEOVERRIDE) + override = p->paletteoverride; diff --git a/source/l/imlib/slack-desc b/source/l/imlib/slack-desc new file mode 100644 index 000000000..7f0645514 --- /dev/null +++ b/source/l/imlib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +imlib: imlib (image loading and rendering library) +imlib: +imlib: Imlib is a display depth-independent image loading and rendering +imlib: library. Imlib is designed to simplify and speed up the process of +imlib: loading images and obtaining X Window System drawables. Imlib +imlib: provides many simple manipulation routines which can be used for +imlib: common operations. +imlib: +imlib: +imlib: +imlib: diff --git a/source/l/iso-codes/iso-codes.SlackBuild b/source/l/iso-codes/iso-codes.SlackBuild new file mode 100755 index 000000000..ccf423dc8 --- /dev/null +++ b/source/l/iso-codes/iso-codes.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2008 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=iso-codes +VERSION=3.8 +ARCH=${ARCH:-noarch} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ChangeLog INSTALL LICENSE README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/iso-codes/iso-codes.info b/source/l/iso-codes/iso-codes.info new file mode 100644 index 000000000..e17632c74 --- /dev/null +++ b/source/l/iso-codes/iso-codes.info @@ -0,0 +1,5 @@ +PRGNAM="iso-codes" +VERSION="3.3" +HOMEPAGE="http://pkg-isocodes.alioth.debian.org/" +DOWNLOAD="ftp://pkg-isocodes.alioth.debian.org/pub/pkg-isocodes/iso-codes-3.3.tar.bz2" +MD5SUM="2fb4f5400f28923d679d7b98fd7f3ab8" diff --git a/source/l/iso-codes/slack-desc b/source/l/iso-codes/slack-desc new file mode 100644 index 000000000..984a17838 --- /dev/null +++ b/source/l/iso-codes/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler---------------------------------------------------| +iso-codes: iso-codes (ISO-standard lists) +iso-codes: +iso-codes: This package provides lists of various ISO standards (e.g. +iso-codes: country, language, language scripts, and currency names) in one +iso-codes: place, rather than repeated in many programs throughout the system. +iso-codes: +iso-codes: Homepage: http://pkg-isocodes.alioth.debian.org/ +iso-codes: +iso-codes: +iso-codes: +iso-codes: diff --git a/source/l/jasper/jasper.SlackBuild b/source/l/jasper/jasper.SlackBuild new file mode 100755 index 000000000..45b0b0768 --- /dev/null +++ b/source/l/jasper/jasper.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2007, 2008 Eric Hameleers, Eijdhoven, NL +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. + + +PRGNAM=jasper +VERSION=${VERSION:-1.900.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + LIBDIRSUFFIX="" + ;; +esac + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-shared \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make || exit 1 +make DESTDIR=$PKG install + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + COPYRIGHT INSTALL LICENSE NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; +for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/l/jasper/slack-desc b/source/l/jasper/slack-desc new file mode 100644 index 000000000..a489f75ea --- /dev/null +++ b/source/l/jasper/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +jasper: jasper (free implementation of the JPEG-2000 standard) +jasper: +jasper: The JasPer Project is an open-source initiative to provide a free +jasper: software-based reference implementation of the codec specified in the +jasper: JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1).jasper: +jasper: +jasper: +jasper: +jasper: jasper home: http://www.ece.uvic.ca/~mdadams/jasper/ +jasper: diff --git a/source/l/jre/COPYRIGHT b/source/l/jre/COPYRIGHT new file mode 100644 index 000000000..2ae212072 --- /dev/null +++ b/source/l/jre/COPYRIGHT @@ -0,0 +1,74 @@ +Copyright © 2009 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +California 95054, U.S.A. All rights reserved. + +Sun Microsystems, Inc. has intellectual property rights relating to +technology embodied in the product that is described in this document. +In particular, and without limitation, these intellectual property +rights may include one or more of the U.S. patents listed at +http://www.sun.com/patents and one or more additional patents or pending +patent applications in the U.S. and in other countries. + +THIS PRODUCT CONTAINS CONFIDENTIAL INFORMATION AND TRADE SECRETS OF SUN +MICROSYSTEMS, INC. USE, DISCLOSURE OR REPRODUCTION IS PROHIBITED +WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SUN MICROSYSTEMS, INC. + +U.S. Government Rights - Commercial software. Government users are +subject to the Sun Microsystems, Inc. standard license agreement and +applicable provisions of the FAR and its supplements. + +Use is subject to license terms. + +This distribution may include materials developed by third parties. + +Sun, Sun Microsystems, the Sun logo, Java and Java SE are trademarks or +registered trademarks of Sun Microsystems, Inc. in the U.S. and other +countries. + +This product is covered and controlled by U.S. Export Control laws and +may be subject to the export or import laws in other countries. +Nuclear, missile, chemical biological weapons or nuclear maritime end +uses or end users, whether direct or indirect, are strictly prohibited. +Export or reexport to countries subject to U.S. embargo or to entities +identified on U.S. export exclusion lists, including, but not limited +to, the denied persons and specially designated nationals lists is +strictly prohibited. + +Copyright © 2009 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +California 95054, Etats-Unis. Tous droits rservs. + +Sun Microsystems, Inc. dtient les droits de proprit intellectuele +relatifs la technologie incorpore dans le produit qui est dcrit dans ce +document. En particulier, et ce sans limitation, ces droits de proprit +intellectuelle peuvent inclure un ou plusieurs des brevets amricains +lists l'adresse suivante: http://www.sun.com/patents et un ou +plusieures de brevet en attente aux Etats - Unis et dans les autres +pays. + +CE PRODUIT CONTIENT DES INFORMATIONS CONFIDENTIELLES ET DES SECRETS +COMMERCIAUX DE SUN MICROSYSTEMS, INC. SON UTILISATION, SA DIVULGATION +ET SA REPRODUCTION SONT INTERDITES SANS L AUTORISATION EXPRESSE, ECRITE +ET PREALABLE DE SUN MICROSYSTEMS, INC. + +L'utilisation est soumise aux termes du contract de licence. + +Cette distributions peut inclure des elements dvelopps par des tiers. + +Sun, Sun Microsystems, le logo Sun, Java et Java SE sont des marques de +fabrique ou des marques dposes de Sun Microsystems, Inc. aux Etats-Unis +et dans d'autres pays. + +Ce produit est soumis la lgislation amricaine en matire de contrle des +exportations et peut tre soumis la rglementation en vigueur dans +d'autres pays dans le domaine des exportations et importations. Les +utilisations finales, ou utilisateurs finaux, pour des armes +nuclaires,des missiles, des armes biologiques et chimiques ou du +nuclaire maritime, directement ou indirectement, sont strictement +interdites. Les exportations ou rexportations vers les pays sous +embargo amricain, ou vers des entits figurant sur les listes d'exclusion +d'exportation des produits ou des services qui sont regis parla +legislation amricaines, y compris, mais de manire non exhaustive, la +liste de personnes qui font objet d'un ordre de ne pas participer, d'une +faon directe ou indirecte, aux exportations des produits ou des services +qui sont rgis par la lgislation amricaine sur le contrle des +exportations et la liste de ressortissants spcifiquement dsigns, sont +rigoureusement interdites. diff --git a/source/l/jre/LICENSE b/source/l/jre/LICENSE new file mode 100644 index 000000000..46280da2d --- /dev/null +++ b/source/l/jre/LICENSE @@ -0,0 +1,261 @@ +Sun Microsystems, Inc. Binary Code License Agreement + +for the JAVA SE RUNTIME ENVIRONMENT (JRE) VERSION 6 and +JAVAFX RUNTIME VERSION 1 + +SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE +SOFTWARE IDENTIFIED BELOW TO YOU ONLY UPON THE CONDITION +THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY +CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS +(COLLECTIVELY "AGREEMENT"). PLEASE READ THE AGREEMENT +CAREFULLY. BY USING THE SOFTWARE YOU ACKNOWLEDGE THAT +YOU HAVE READ THE TERMS AND AGREE TO THEM. IF YOU ARE +AGREEING TO THESE TERMS ON BEHALF OF A COMPANY OR OTHER +LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE LEGAL +AUTHORITY TO BIND THE LEGAL ENTITY TO THESE TERMS. IF +YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT WISH +TO BE BOUND BY THE TERMS, THEN YOU MUST NOT USE THE +SOFTWARE ON THIS SITE OR ANY OTHER MEDIA ON WHICH THE +SOFTWARE IS CONTAINED. + +1. DEFINITIONS. "Software" means the identified above in +binary form, any other machine readable materials +(including, but not limited to, libraries, source files, +header files, and data files), any updates or error +corrections provided by Sun, and any user manuals, +programming guides and other documentation provided to you +by Sun under this Agreement. "General Purpose Desktop +Computers and Servers" means computers, including desktop +and laptop computers, or servers, used for general +computing functions under end user control (such as but not +specifically limited to email, general purpose Internet +browsing, and office suite productivity tools). The use of +Software in systems and solutions that provide dedicated +functionality (other than as mentioned above) or designed +for use in embedded or function-specific software +applications, for example but not limited to: Software +embedded in or bundled with industrial control systems, +wireless mobile telephones, wireless handheld devices, +netbooks, kiosks, TV/STB, Blu-ray Disc devices, telematics +and network control switching equipment, printers and +storage management systems, and other related systems are +excluded from this definition and not licensed under this +Agreement. "Programs" means (a) Java technology applets and +applications intended to run on the Java Platform Standard +Edition (Java SE) platform on Java-enabled General Purpose +Desktop Computers and Servers, and (b) JavaFX technology +applications intended to run on the JavaFX Runtime on +JavaFX-enabled General Purpose Desktop Computers and +Servers. + +2. LICENSE TO USE. Subject to the terms and conditions of +this Agreement, including, but not limited to the Java +Technology Restrictions of the Supplemental License Terms, +Sun grants you a non-exclusive, non-transferable, limited +license without license fees to reproduce and use internally +Software complete and unmodified for the sole purpose of +running Programs. Additional licenses for developers and/or +publishers are granted in the Supplemental License Terms. + +3. RESTRICTIONS. Software is confidential and copyrighted. +Title to Software and all associated intellectual property +rights is retained by Sun and/or its licensors. Unless +enforcement is prohibited by applicable law, you may not +modify, decompile, or reverse engineer Software. You +acknowledge that Licensed Software is not designed or +intended for use in the design, construction, operation or +maintenance of any nuclear facility. Sun Microsystems, Inc. +disclaims any express or implied warranty of fitness for +such uses. No right, title or interest in or to any +trademark, service mark, logo or trade name of Sun or its +licensors is granted under this Agreement. Additional +restrictions for developers and/or publishers licenses are +set forth in the Supplemental License Terms. + +4. LIMITED WARRANTY. Sun warrants to you that for a period +of ninety (90) days from the date of purchase, as evidenced +by a copy of the receipt, the media on which Software is +furnished (if any) will be free of defects in materials and +workmanship under normal use. Except for the foregoing, +Software is provided "AS IS". Your exclusive remedy and +Sun's entire liability under this limited warranty will be +at Sun's option to replace Software media or refund the fee +paid for Software. Any implied warranties on the Software +are limited to 90 days. Some states do not allow +limitations on duration of an implied warranty, so the above +may not apply to you. This limited warranty gives you +specific legal rights. You may have others, which vary from +state to state. + +5. DISCLAIMER OF WARRANTY. UNLESS SPECIFIED IN THIS +AGREEMENT, ALL EXPRESS OR IMPLIED CONDITIONS, +REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED +WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE OR NON-INFRINGEMENT ARE DISCLAIMED, EXCEPT TO THE +EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY +INVALID. + +6. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED +BY LAW, IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR +ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, +CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER +CAUSED REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF +OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, EVEN +IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +In no event will Sun's liability to you, whether in +contract, tort (including negligence), or otherwise, exceed +the amount paid by you for Software under this Agreement. +The foregoing limitations will apply even if the above +stated warranty fails of its essential purpose. Some states +do not allow the exclusion of incidental or consequential +damages, so some of the terms above may not be applicable to +you. + +7. TERMINATION. This Agreement is effective until +terminated. You may terminate this Agreement at any time by +destroying all copies of Software. This Agreement will +terminate immediately without notice from Sun if you fail to +comply with any provision of this Agreement. Either party +may terminate this Agreement immediately should any Software +become, or in either party's opinion be likely to become, +the subject of a claim of infringement of any intellectual +property right. Upon Termination, you must destroy all +copies of Software. + +8. EXPORT REGULATIONS. All Software and technical data +delivered under this Agreement are subject to US export +control laws and may be subject to export or import +regulations in other countries. You agree to comply +strictly with all such laws and regulations and acknowledge +that you have the responsibility to obtain such licenses to +export, re-export, or import as may be required after +delivery to you. + +9. TRADEMARKS AND LOGOS. You acknowledge and agree as +between you and Sun that Sun owns the SUN, SOLARIS, JAVA, +JINI, FORTE, and iPLANET trademarks and all SUN, SOLARIS, +JAVA, JINI, FORTE, and iPLANET-related trademarks, service +marks, logos and other brand designations ("Sun Marks"), and +you agree to comply with the Sun Trademark and Logo Usage +Requirements currently located at +http://www.sun.com/policies/trademarks. Any use you make of +the Sun Marks inures to Sun's benefit. + +10. U.S. GOVERNMENT RESTRICTED RIGHTS. If Software is +being acquired by or on behalf of the U.S. Government or by +a U.S. Government prime contractor or subcontractor (at any +tier), then the Government's rights in Software and +accompanying documentation will be only as set forth in this +Agreement; this is in accordance with 48 CFR 227.7201 +through 227.7202-4 (for Department of Defense (DOD) +acquisitions) and with 48 CFR 2.101 and 12.212 (for non-DOD +acquisitions). + +11. GOVERNING LAW. Any action related to this Agreement +will be governed by California law and controlling U.S. +federal law. No choice of law rules of any jurisdiction +will apply. + +12. SEVERABILITY. If any provision of this Agreement is +held to be unenforceable, this Agreement will remain in +effect with the provision omitted, unless omission would +frustrate the intent of the parties, in which case this +Agreement will immediately terminate. + +13. INTEGRATION. This Agreement is the entire agreement +between you and Sun relating to its subject matter. It +supersedes all prior or contemporaneous oral or written +communications, proposals, representations and warranties +and prevails over any conflicting or additional terms of any +quote, order, acknowledgment, or other communication between +the parties relating to its subject matter during the term +of this Agreement. No modification of this Agreement will +be binding, unless in writing and signed by an authorized +representative of each party. + +SUPPLEMENTAL LICENSE TERMS + +These Supplemental License Terms add to or modify the terms +of the Binary Code License Agreement. Capitalized terms not +defined in these Supplemental Terms shall have the same +meanings ascribed to them in the Binary Code License +Agreement . These Supplemental Terms shall supersede any +inconsistent or conflicting terms in the Binary Code License +Agreement, or in any license contained within the Software. + +A. Software Internal Use and Development License Grant. +Subject to the terms and conditions of this Agreement and +restrictions and exceptions set forth in the Software +"README" file incorporated herein by reference, including, +but not limited to the Java Technology Restrictions of these +Supplemental Terms, Sun grants you a non-exclusive, +non-transferable, limited license without fees to reproduce +internally and use internally the Software complete and +unmodified for the purpose of designing, developing, and +testing your Programs. + +B. License to Distribute Software. Subject to the terms +and conditions of this Agreement and restrictions and +exceptions set forth in the Software README file, including, +but not limited to the Java Technology Restrictions of these +Supplemental Terms, Sun grants you a non-exclusive, +non-transferable, limited license without fees to reproduce +and distribute the Software (except for the JavaFX Runtime), +provided that (i) you distribute the Software complete and +unmodified and only bundled as part of, and for the sole +purpose of running, your Programs, (ii) the Programs add +significant and primary functionality to the Software, (iii) +you do not distribute additional software intended to +replace any component(s) of the Software, (iv) you do not +remove or alter any proprietary legends or notices contained +in the Software, (v) you only distribute the Software +subject to a license agreement that protects Sun's interests +consistent with the terms contained in this Agreement, and +(vi) you agree to defend and indemnify Sun and its licensors +from and against any damages, costs, liabilities, settlement +amounts and/or expenses (including attorneys' fees) incurred +in connection with any claim, lawsuit or action by any third +party that arises or results from the use or distribution of +any and all Programs and/or Software. + +C. Java Technology Restrictions. You may not create, +modify, or change the behavior of, or authorize your +licensees to create, modify, or change the behavior of, +classes, interfaces, or subpackages that are in any way +identified as "java", "javax", "sun" or similar convention +as specified by Sun in any naming convention designation. + +D. Source Code. Software may contain source code that, +unless expressly licensed for other purposes, is provided +solely for reference purposes pursuant to the terms of this +Agreement. Source code may not be redistributed unless +expressly provided for in this Agreement. + +E. Third Party Code. Additional copyright notices and +license terms applicable to portions of the Software are set +forth in the THIRDPARTYLICENSEREADME.txt file. In addition +to any terms and conditions of any third party +opensource/freeware license identified in the +THIRDPARTYLICENSEREADME.txt file, the disclaimer of warranty +and limitation of liability provisions in paragraphs 5 and 6 +of the Binary Code License Agreement shall apply to all +Software in this distribution. + +F. Termination for Infringement. Either party may +terminate this Agreement immediately should any Software +become, or in either party's opinion be likely to become, +the subject of a claim of infringement of any intellectual +property right. + +G. Installation and Auto-Update. The Software's +installation and auto-update processes transmit a limited +amount of data to Sun (or its service provider) about those +specific processes to help Sun understand and optimize them. +Sun does not associate the data with personally identifiable +information. You can find more information about the data +Sun collects at http://java.com/data/. + +For inquiries please contact: Sun Microsystems, Inc., 4150 +Network Circle, Santa Clara, California 95054, U.S.A. + + diff --git a/source/l/jre/README b/source/l/jre/README new file mode 100644 index 000000000..079eb00dc --- /dev/null +++ b/source/l/jre/README @@ -0,0 +1,376 @@ + README + + Java(TM) Platform, Standard Edition + Runtime Environment + Version 6 + + +The Java(TM) Platform, Standard Edition Runtime Environment (JRE(TM)), +excluding the JavaFX(TM) runtime, is intended for software developers +and vendors to redistribute with their applications. + +The Java SE Runtime Environment contains the Java virtual machine, +runtime class libraries, and Java application launcher that are +necessary to run programs written in the Java programming language. +It is not a development environment and does not contain development +tools such as compilers or debuggers. For development tools, see the +Java SE Development Kit (JDK(TM)). The JRE installation triggers the +download of the JavaFX runtime. The JavaFX runtime is also available +separately, and is not part of the JRE. For information on JavaFX, and +how to make changes, go to: http://java.com/javafx + + +======================================================================= + Deploying Applications with the Java SE Runtime Environment +======================================================================= + +When you deploy an application written in the Java programming +language, your software bundle will probably consist of the following +parts: + + Your own class, resource, and data files. + The Java SE Runtime Environment. + An installation procedure or program. + +You already have the first part, of course. The remainder of this +document covers the other two parts. See also the Notes for Developers +page on the Java Software website: + + http://java.sun.com/javase/6/webnotes/runtime.html + +----------------------------------------------------------------------- +Java Platform, Standard Edition Runtime Environment (JRE) +----------------------------------------------------------------------- + +To run your application, a user needs the Java SE Runtime Environment, +which is freely available from Sun. Or, you can redistribute the +Java SE Runtime Environment for free with your application, according +to the terms of the Java SE Platform Runtime Environment's license. The +JavaFX runtime is only required to run applications written in the +JavaFX scripting language; it is freely available from Sun, and must +not be redistributed with your application. + +The final step in the deployment process occurs when the software is +installed on an individual user's system. Installation consists of copying +software onto the user's system, then configuring the user's system +to support that software. You should ensure that your installation +procedure does not overwrite existing JRE installations, as they may +be required by other applications. + + +======================================================================= + Redistribution of the Java SE Runtime Environment (JRE) +======================================================================= + + -------------------------------------------------------- + NOTE - The license for this software does not allow the + redistribution of beta and other pre-release versions. + -------------------------------------------------------- + +Subject to the terms and conditions of the Software License +Agreement and the obligations, restrictions, and exceptions set +forth below, You may reproduce and distribute the Software (and +also portions of Software identified below as Redistributable), +provided that: + +(a) you distribute the Software complete and unmodified and only + bundled as part of your applets and applications ("Programs"), + +(b) your Programs add significant and primary functionality to the + Software, + +(c) your Programs are only intended to run on Java-enabled general + purpose desktop computers and servers, + +(d) you distribute Software for the sole purpose of running your + Programs, + +(e) you do not distribute additional software intended to replace + any component(s) of the Software, + +(f) you do not remove or alter any proprietary legends or notices + contained in or on the Software, + +(g) you only distribute the Software subject to a license agreement + that protects Sun's interests consistent with the terms + contained in this Agreement, and + +(h) you agree to defend and indemnify Sun and its licensors from + and against any damages, costs, liabilities, settlement amounts + and/or expenses (including attorneys' fees) incurred in + connection with any claim, lawsuit or action by any third party + that arises or results from the use or distribution of any and + all Programs and/or Software. + +The term "vendors" used here refers to licensees, developers, and +independent software vendors (ISVs) who license and distribute the +Java SE Runtime Environment with their programs. + +Vendors must follow the terms of the Java SE Runtime Environment Binary +Code License agreement. + +----------------------------------------------------------------------- +Required vs. Optional Files +----------------------------------------------------------------------- + +The files that make up the Java SE Runtime Environment are divided into +two categories: required and optional. Optional files may be excluded +from redistributions of the Java SE Runtime Environment at the +vendor's discretion. + +The following section contains a list of the files and directories that +may optionally be omitted from redistributions with the Java SE Runtime +Environment. All files not in these lists of optional files must be +included in redistributions of the runtime environment. + +----------------------------------------------------------------------- +Optional Files and Directories +----------------------------------------------------------------------- + +The following files may be optionally excluded from redistributions. +These files are located in the jre1.6.0_ directory, where + is the update version number. Solaris and Linux filenames +and separators are shown. Windows executables have the ".exe" suffix. +Corresponding files with _g in the name can also be excluded. +The corresponding man pages should be excluded for any excluded +executables (with paths listed below beginning with bin/ , +for the Solaris(TM) Operating System and Linux). + + lib/charsets.jar + Character conversion classes + lib/ext/ + sunjce_provider.jar - the SunJCE provider for Java + Cryptography APIs + localedata.jar - contains many of the resources + needed for non US English locales + ldapsec.jar - contains security features supported + by the LDAP service provider + dnsns.jar - for the InetAddress wrapper of JNDI DNS provider + bin/rmid + Java RMI Activation System Daemon + bin/rmiregistry + Java Remote Object Registry + bin/tnameserv + Java IDL Name Server + bin/keytool + Key and Certificate Management Tool + bin/kinit + Used to obtain and cache Kerberos ticket-granting tickets + bin/klist + Kerberos display entries in credentials cache and keytab + bin/ktab + Kerberos key table manager + bin/policytool + Policy File Creation and Management Tool + bin/orbd + Object Request Broker Daemon + bin/servertool + Java IDL Server Tool + bin/javaws, lib/javaws/ and lib/javaws.jar + Java Web Start + +When redistributing the JRE on Microsoft Windows as a private +application runtime (not accessible by other applications) +with a custom launcher, the following files are also +optional. These are libraries and executables that are used +for Java support in Internet Explorer and Mozilla family browsers; +these files are not needed in a private JRE redistribution. + + bin\java.exe + bin\javaw.exe + bin\javaws.exe + bin\javacpl.exe + bin\jucheck.exe + bin\jusched.exe + + bin\wsdetect.dll + bin\NPJPI*.dll (The filename changes in every release) + bin\NPJava11.dll + bin\NPJava12.dll + bin\NPJava13.dll + bin\NPJava14.dll + bin\NPJava32.dll + bin\NPOJI610.dll + bin\RegUtils.dll + bin\axbridge.dll + bin\deploy.dll + bin\jpicom.dll + bin\javacpl.cpl + bin\jpiexp.dll + bin\jpinscp.dll + bin\jpioji.dll + bin\jpishare.dll + lib\deploy.jar + lib\plugin.jar + lib\javaws.jar + lib\javaws\messages.properties + lib\javaws\messages_de.properties + lib\javaws\messages_es.properties + lib\javaws\messages_fr.properties + lib\javaws\messages_it.properties + lib\javaws\messages_ja.properties + lib\javaws\messages_ko.properties + lib\javaws\messages_sv.properties + lib\javaws\messages_zh_CN.properties + lib\javaws\messages_zh_HK.properties + lib\javaws\messages_zh_TW.properties + lib\javaws\miniSplash.jpg + + +----------------------------------------------------------------------- +Redistributable JDK(TM) Files +----------------------------------------------------------------------- + +The limited set of files from the Java SE Development Kit (JDK) +listed below may be included in vendor redistributions of the Java SE +Runtime Environment. All paths are relative to the top-level +directory of the JDK. The corresponding man pages should be included for +any included executables (with paths listed below beginning with bin/ , +for the Solaris(TM) Operating System and Linux). + + jre/lib/cmm/PYCC.pf + Color profile. This file is required only if one wishes to + convert between the PYCC color space and another color space. + + All .ttf font files in the jre/lib/fonts directory. + Note that the LucidaSansRegular.ttf font is already contained + in the Java SE Runtime Environment, so there is no need to + bring that file over from the JDK. + + jre/lib/audio/soundbank.gm + This MIDI soundbank is present in the JDK, but it has + been removed from the Java SE Runtime Environment in order to + reduce the size of the Runtime Environment's download bundle. + However, a soundbank file is necessary for MIDI playback, and + therefore the JDK's soundbank.gm file may be included in + redistributions of the Runtime Environment at the vendor's + discretion. Several versions of enhanced MIDI soundbanks are + available from the Java Sound web site: + http://java.sun.com/products/java-media/sound/ + These alternative soundbanks may be included in redistributions + of the Java SE Runtime Environment. + + The javac bytecode compiler, consisting of the following files: + bin/javac [Solaris(TM) Operating System + and Linux] + bin/sparcv9/javac [Solaris Operating System + (SPARC(R) Platform Edition)] + bin/amd64/javac [Solaris Operating System (AMD)] + bin/javac.exe [Microsoft Windows] + lib/tools.jar [All platforms] + + The Annotation Processing Tool, consisting of the following files: + lib/tools.jar [All platforms] + bin/apt [Solaris(TM) Operating System + and Linux] + bin/sparcv9/apt [Solaris Operating System + (SPARC(R) Platform Edition)] + bin/amd64/apt [Solaris Operating System (AMD)] + bin/apt.exe [Microsoft Windows] + + lib/jconsole.jar + The Jconsole application. NOTE: The Jconsole application requires + the dynamic attach mechanism. + + The dynamic attach mechanism consisting of the following files: + lib/tools.jar [All platforms] + jre/lib/sparc/libattach.so + [Solaris(TM) Operating System (SPARC(R) Platform Edition) and Linux] + jre/lib/sparcv9/libattach.so + [Solaris(TM) Operating System (SPARC(R) Platform Edition) and Linux] + jre/lib/i386/libattach.so + [Solaris(TM) Operating System (x86) and Linux] + jre/lib/amd64/libattach.so + [Solaris(TM) Operating System (AMD) and Linux] + jre\bin\attach.dll [Microsoft Windows] + + The Java Platform Debugger Architecture implementation consisting of the + files shown in the dynamic attach section above, and the following files: + lib/tools.jar [All platforms] + lib/sa-jdi.jar [All platforms] + jre/lib/sparc/libsaproc.so + [Solaris(TM) Operating System (SPARC(R) Platform Edition) and Linux] + jre/lib/sparcv9/libsaproc.so + [Solaris(TM) Operating System (SPARC(R) Platform Edition) and Linux] + jre/lib/i386/libsaproc.so + [Solaris(TM) Operating System (x86) and Linux] + jre/lib/amd64/libsaproc.so + [Solaris(TM) Operating System (AMD) and Linux] + + jre\bin\server\ + On Microsoft Windows platforms, the JDK includes both + the Java HotSpot(TM) Server VM and Java HotSpot Client VM. + However, the Java SE Runtime Environment for Microsoft Windows + platforms includes only the Java HotSpot Client VM. Those wishing + to use the Java HotSpot Server VM with the Java SE Runtime + Environment may copy the JDK's jre\bin\server folder to a + bin\server directory in the Java SE Runtime Environment. Software + vendors may redistribute the Java HotSpot Server VM with their + redistributions of the Java SE Runtime Environment. + + +----------------------------------------------------------------------- +Unlimited Strength Java Cryptography Extension +----------------------------------------------------------------------- + +Due to import control restrictions for some countries, the Java +Cryptography Extension (JCE) policy files shipped with the Java SE +Development Kit and the Java SE Runtime Environment allow strong but +limited cryptography to be used. These files are located at + + /lib/security/local_policy.jar + /lib/security/US_export_policy.jar + +where is the jre directory of the JDK or the +top-level directory of the Java SE Runtime Environment. + +An unlimited strength version of these files indicating no restrictions +on cryptographic strengths is available on the JDK web site for +those living in eligible countries. Those living in eligible countries +may download the unlimited strength version and replace the strong +cryptography jar files with the unlimited strength files. + +----------------------------------------------------------------------- +The cacerts Certificates File +----------------------------------------------------------------------- + +Root CA certificates may be added to or removed from the Java SE +certificate file located at + + /lib/security/cacerts + +For more information, see The cacerts Certificates File section +in the keytool documentation at: + +http://java.sun.com/javase/6/docs/tooldocs/solaris/keytool.html#cacerts + +======================================================================= +Endorsed Standards Override Mechanism +======================================================================= + +From time to time it is necessary to update the Java platform in order +to incorporate newer versions of standards that are created outside of +the Java Community Process(SM) (JCP(SM) http://www.jcp.org/) (Endorsed +Standards), or in order to update the version of a technology included +in the platform to correspond to a later standalone version of that +technology (Standalone Technologies). + +The Endorsed Standards Override Mechanism provides a means whereby +later versions of classes and interfaces that implement Endorsed +Standards or Standalone Technologies may be incorporated into the Java +Platform. + +For more information on the Endorsed Standards Override Mechanism, +including the list of platform packages that it may be used to +override, see + + http://java.sun.com/javase/6/docs/technotes/guides/standards/ + +----------------------------------------------------------------------- +The Java(TM) Runtime Environment (JRE) and the JavaFX(TM) runtime are +products of Sun Microsystems(TM), Inc. + +Copyright © 2009 Sun Microsystems, Inc. +4150 Network Circle, Santa Clara, California 95054, U.S.A. +All rights reserved. + diff --git a/source/l/jre/THIRDPARTYLICENSEREADME.txt b/source/l/jre/THIRDPARTYLICENSEREADME.txt new file mode 100644 index 000000000..05bfc24d4 --- /dev/null +++ b/source/l/jre/THIRDPARTYLICENSEREADME.txt @@ -0,0 +1,3011 @@ +DO NOT TRANSLATE OR LOCALIZE. + +%% The following software may be included in this product: CS CodeViewer v1.0; Use of any of this software is governed by the terms of the license below: +Copyright 1999 by CoolServlets.com. + +Any errors or suggested improvements to this class can be reported as instructed on CoolServlets.com. We hope you enjoy this program... your comments will encourage further development! +This software is distributed under the terms of the BSD License. +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. +Neither name of CoolServlets.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY COOLSERVLETS.COM 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 INANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +%% The following software may be included in this product: Crimson v1.1.1 ; Use of any of this software is governed by the terms of the license below: +/* +* The Apache Software License, Version 1.1 +* +* +* Copyright (c) 1999-2000 The Apache Software Foundation. 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. +* +* 3. The end-user documentation included with the redistribution, +* if any, must include the following acknowledgment: +* "This product includes software developed by the +* Apache Software Foundation (http://www.apache.org/)." +* Alternately, this acknowledgment may appear in the software itself, +* if and wherever such third-party acknowledgments normally appear. +* +* 4. The names "Crimson" and "Apache Software Foundation" must +* not be used to endorse or promote products derived from this +* software without prior written permission. For written +* permission, please contact apache@apache.org. +* +* 5. Products derived from this software may not be called "Apache", +* nor may "Apache" appear in their name, without prior written +* permission of the Apache Software Foundation. +* +* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR +* ITS 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. +* ====================================================================* +* This software consists of voluntary contributions made by many +* individuals on behalf of the Apache Software Foundation and was +* originally based on software copyright (c) 1999, International +* Business Machines, Inc., http://www.ibm.com. For more +* information on the Apache Software Foundation, please see +* . +*/ + + +%% The following software may be included in this product: Xalan J2; Use of any of this software is governed by the terms of the license below: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owneror by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use,reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer,and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + +%% The following software may be included in this product: NSIS 1.0j; Use of any of this software is governed by the terms of the license below: +Copyright (C) 1999-2000 Nullsoft, Inc. +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. Justin Frankel justin@nullsoft.com" + +%% Some Portions licensed from IBM are available at: +http://www.ibm.com/software/globalization/icu/ + +%% Portions Copyright Eastman Kodak Company 1992 + +%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the U.S. and other countries. + +%% Portions licensed from Taligent, Inc. + +%% The following software may be included in this product:IAIK PKCS Wrapper; Use of any of this software is governed by the terms of the license below: + +Copyright (c) 2002 Graz University of Technology. 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. + +3. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: + + "This product includes software developed by IAIK of Graz University of Technology." + + Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. + +4. The names "Graz University of Technology" and "IAIK of Graz University of Technology" must not be used to endorse or promote products derived from this software without prior written permission. + +5. Products derived from this software may not be called "IAIK PKCS Wrapper", nor may "IAIK" appear in their name, without prior written permission of Graz University of Technology. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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 LICENSOR 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. + +%% The following software may be included in this product: Document Object Model (DOM) v. Level 3; Use of any of this software is governed by the terms of the license below: +W3C SOFTWARE NOTICE AND LICENSE + +http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This work (and included software, documentation such as READMEs, or other related items) is being provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. + +Permission to copy, modify, and distribute this software and its documentation, with or without modification, for +any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies +of the software and documentation or portions thereof, including modifications: + 1.The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. + 2.Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the + W3C Software Short Notice should be included (hypertext is preferred, text is permitted) within the body + of any redistributed or derivative code. + 3.Notice of any changes or modifications to the files, including the date changes were made. (We + recommend you provide URIs to the location from which the code is derived.) +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKENO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THEUSE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the +software without specific, written prior permission. Title to copyright in this software and any associated +documentation will at all times remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on December 31 2002. This version removes the +copyright ownership notice such that this license can be used with materials other than those owned by the +W3C, reflects that ERCIM is now a host of the W3C, includes references to this specific dated version of the +license, and removes the ambiguous grant of "use". Otherwise, this version is the same as the previous +version and is written so as to preserve the Free Software Foundation's assessment of GPL compatibility and +OSI's certification under the Open Source Definition. Please see our Copyright FAQ for common questions +about using materials from our site, including specific terms and conditions for packages like libwww, Amaya, +and Jigsaw. Other questions about this notice can be directed to +site-policy@w3.org. + +%% The following software may be included in this product: Xalan, Xerces; Use of any of this software is governed by the terms of the license below: /* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999-2003 The Apache Software Foundation. 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. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Xerces" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR + * ITS 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. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 1999, International + * Business Machines, Inc., http://www.ibm.com. For more + * information on the Apache Software Foundation, please see http://www.apache.org + * + +%% The following software may be included in this product: W3C XML Conformance Test Suites v. 20020606; Use of any of this software is governed by the terms of the license below: +W3C SOFTWARE NOTICE AND LICENSE +Copyright 1994-2002 World Wide Web Consortium, (Massachusetts Institute ofTechnology, Institut National de Recherche en Informatique et en Automatique,Keio University). All Rights Reserved. http://www.w3.org/Consortium/Legal/ +This W3C work (including software, documents, or other related items) is beingprovided by the copyright holders under the following license. By obtaining,using and/or copying this work, you (the licensee) agree that you have read,understood, and will comply with the following terms and conditions: + +Permission to use, copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose and without fee orroyalty is hereby granted, provided that you include the following on ALL copiesof the software and documentation or portions thereof, including modifications,that you make: + + 1. The full text of this NOTICE in a location viewable to users of theredistributed or derivative work. + 2. Any pre-existing intellectual property disclaimers, notices, or terms andconditions. If none exist, a short notice of the following form (hypertext ispreferred, text is permitted) should be used within the body of any +redistributed or derivative code: "Copyright ýý [$date-of-software] World WideWeb Consortium, (Massachusetts Institute of Technology, Institut National deRecherche en Informatique et en Automatique, Keio University). All RightsReserved. http://www.w3.org/Consortium/Legal/" + 3. Notice of any changes or modifications to the W3C files, including thedate changes were made. (We recommend you provide URIs to the location fromwhich the code is derived.) + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKENO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITEDTO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THATTHE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTYPATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. +The name and trademarks of copyright holders may NOT be used in advertising orpublicity pertaining to the software without specific, written prior permission.Title to copyright in this software and any associated documentation will at alltimes remain with copyright holders. + +____________________________________ + +This formulation of W3C's notice and license became active on August 14 1998 soas to improve compatibility with GPL. This version ensures that W3C softwarelicensing terms are no more restrictive than GPL and consequently W3C softwaremay be distributed in GPL packages. See the older formulation for the policyprior to this date. Please see our Copyright FAQ for common questions aboutusing materials from our site, including specific terms and conditions forpackages like libwww, Amaya, and Jigsaw. Other questions about this notice canbe directed to site-policy@w3.org. + +%% The following software may be included in this product: W3C XML Schema Test Collection v. 1.16.2; Use of any of this software is governed by the terms of the license below: W3C DOCUMENT NOTICE AND LICENSE +Copyright 1994-2002 World Wide Web Consortium, (Massachusetts Institute ofTechnology, Institut National de Recherche en Informatique et en Automatique,Keio University). All Rights Reserved. +http://www.w3.org/Consortium/Legal/ + +Public documents on the W3C site are provided by the copyright holders under thefollowing license. The software or Document Type Definitions (DTDs) associatedwith W3C specifications are governed by the Software Notice. By using and/orcopying this document, or the W3C document from which this statement is linked,you (the licensee) agree that you have read, understood, and will comply withthe following terms and conditions: + +Permission to use, copy, and distribute the contents of this document, or theW3C document from which this statement is linked, in any medium for any purposeand without fee or royalty is hereby granted, provided that you include thefollowing on ALL copies of the document, or portions thereof, that you use: + 1. A link or URL to the original W3C document. + 2. The pre-existing copyright notice of the original author, or if it doesn'texist, a notice of the form: "Copyright [$date-of-document] World Wide WebConsortium, (Massachusetts Institute of Technology, Institut National deRecherche en Informatique et en Automatique, Keio University). All RightsReserved. http://www.w3.org/Consortium/Legal/" (Hypertext is preferred, but atextual representation is permitted.) + 3. If it exists, the STATUS of the W3C document. + +When space permits, inclusion of the full text of this NOTICE should beprovided. We request that authorship attribution be provided in any software,documents, or other items or products that you create pursuant to the +implementation of the contents of this document, or any portion thereof. +No right to create modifications or derivatives of W3C documents is grantedpursuant to this license. However, if additional requirements (documented in theCopyright FAQ) are satisfied, the right to create modifications or derivativesis sometimes granted by the W3C to individuals complying with those requirements. +THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONSOR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THEIMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCEOR IMPLEMENTATION OF THE CONTENTS THEREOF. + +The name and trademarks of copyright holders may NOT be used in advertising orpublicity pertaining to this document or its contents without specific, writtenprior permission. Title to copyright in this document will at all times remainwith copyright holders. + +---------------------------------------------------------------------------- +This formulation of W3C's notice and license became active on April 05 1999 soas to account for the treatment of DTDs, schema's and bindings. See the olderformulation for the policy prior to this date. Please see our Copyright FAQ forcommon questions about using materials from our site, including specific termsand conditions for packages like libwww, Amaya, and Jigsaw. Other questionsabout this notice can be directed to site-policy@w3.org. +webmaster +(last updated by reagle on 1999/04/99.) + + + +%% The following software may be included in this product: Mesa 3-D graphics library v. 5; Use of any of this software is governed by the terms of the license below: +core Mesa code include/GL/gl.h Brian Paul +Mesa GLX driver include/GL/glx.h Brian Paul +Mesa Ext registry include/GL/glext.h SGI +SGI Free B include/GL/glxext.h + +Mesa license: + +The Mesa distribution consists of several components. Different copyrights andlicenses apply to different components. For example, GLUT is copyrighted by MarkKilgard, some demo programs are copyrighted by SGI, some of the Mesa devicedrivers are copyrighted by their authors. See below for a list of Mesa'scomponents and the copyright/license for each. + +The core Mesa library is licensed according to the terms of the XFree86copyright (an MIT-style license). This allows integration with the XFree86/DRIproject. Unless otherwise stated, the Mesa source code and documentation islicensed as follows: + +Copyright (C) 1999-2003 Brian Paul All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining acopy of this software and associated documentation files (the "Software"),to deal in the Software without restriction, including without limitationthe rights to use, copy, modify, merge, publish, distribute, sublicense,and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be includedin all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALLBRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER INAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +SGI FREE SOFTWARE LICENSE B (Version 1.1 [02/22/2000]) +1. Definitions. +1.1 "Additional Notice Provisions" means such additional provisions as appear in the Notice in Original Code under the heading "Additional Notice Provisions." +1.2 "Covered Code" means the Original Code or Modifications, or any combination thereof. +1.3 "Hardware" means any physical device that accepts input, processes input, stores the results of processing, and/or provides output. +1.4 "Larger Work" means a work that combines Covered Code or portions thereof with code not governed by the terms of this License. +1.5 "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. +1.6 "License" means this document. +1.7 "Licensed Patents" means patent claims Licensable by SGI that are infringed by the use or sale of Original Code or any Modifications provided by SGI, or any combination thereof. +1.8 "Modifications" means any addition to or deletion from the substance or structure of the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to the contents of a file containing Original Code and/or addition to or deletion from the contents of a file containing previous Modifications.B. Any new file that contains any part of the Original Code or previous Modifications. +1.9 "Notice" means any notice in Original Code or Covered Code, as required by and in compliance with this License. +1.10 "Original Code" means source code of computer software code that is described in the source code Notice required by Exhibit A as Original Code, and updates and error corrections specifically thereto. +1.11 "Recipient" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 8. For legal entities, "Recipient" includes any entity that controls, is controlled by, or is under common control with Recipient. For purposes of this definition, "control" of an entity means (a) the power, direct or indirect, to direct or manage such entity, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity. +1.12 "Recipient Patents" means patent claims Licensable by a Recipient that are infringed by the use or sale of Original Code or any Modifications provided by SGI, or any combination thereof. +1.13 "SGI" means Silicon Graphics, Inc. +1.14 "SGI Patents" means patent claims Licensable by SGI other than the Licensed Patents.2. License Grant and Restrictions. +2.1 SGI License Grant. Subject to the terms of this License and any third party intellectual property claims, for the duration of intellectual property protections inherent in the Original Code, SGI hereby grants Recipient a worldwide, royalty-free, non-exclusive license, to do the following: (i) under copyrights Licensable by SGI, to reproduce, distribute, create derivative works from, and, to the extent applicable, display and perform the Original Code and/or any Modifications provided by SGI alone and/or as part of a Larger Work; and (ii) under any Licensable Patents, to make, have made, use, sell, offer for sale, import and/or otherwise transfer the Original Code and/or any Modifications provided by SGI. Recipient accepts the terms and conditions of this License by undertaking any of the aforementioned actions. The patent license shall apply to the Covered Code if, at the time any related Modification is added, such addition of the Modification causes such combination to be covered by the Licensed Patents. The patent license in Section 2.1(ii) shall not apply to any other combinations that include the Modification. No patent license is provided under SGI Patents for infringements of SGI Patents by Modifications not provided by SGI or combinations of Original Code and Modifications not provided by SGI. 2.2 Recipient License Grant. Subject to the terms of this License and any third party intellectual property claims, Recipient hereby grants SGI and any other Recipients a worldwide, royalty-free, non-exclusive license, under any Recipient Patents, to make, have made, use, sell, offer for sale, import and/or otherwise transfer the Original Code and/or any Modifications provided by SGI. +2.3 No License For Hardware Implementations. The licenses granted in Section 2.1 and 2.2 are not applicable to implementation in Hardware of the algorithms embodied in the Original Code or any Modifications provided by SGI . +3. Redistributions. +3.1 Retention of Notice/Copy of License. The Notice set forth in Exhibit A, below, must be conspicuously retained or included in any and all redistributions of Covered Code. For distributions of the Covered Code in source code form, the Notice must appear in every file that can include a text comments field; in executable form, the Notice and a copy of this License must appear in related documentation or collateral where the Recipient's rights relating to Covered Code are described. Any Additional Notice Provisions which actually appears in the Original Code must also be retained or included in any and all redistributions of Covered Code. +3.2 Alternative License. Provided that Recipient is in compliance with the terms of this License, Recipient may, so long as without derogation of any of SGI's rights in and to the Original Code, distribute the source code and/or executable version(s) of Covered Code under (1) this License; (2) a license identical to this License but for only such changes as are necessary in order to clarify Recipient's role as licensor of Modifications; and/or (3) a license of Recipient's choosing, containing terms different from this License, provided that the license terms include this Section 3 and Sections 4, 6, 7, 10, 12, and 13, which terms may not be modified or superseded by any other terms of such license. If Recipient elects to use any license other than this License, Recipient must make it absolutely clear that any of its terms which differ from this License are offered by Recipient alone, and not by SGI. It is emphasized that this License is a limited license, and, regardless of the license form employed by Recipient in accordance with this Section 3.2, Recipient may relicense only such rights, in Original Code and Modifications by SGI, as it has actually been granted by SGI in this License. +3.3 Indemnity. Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as a result of any such alternative license terms Recipient offers. +4. Termination. This License and the rights granted hereunder will terminate automatically if Recipient breaches any term herein and fails to cure such breach within 30 days thereof. Any sublicense to the Covered Code that is properly granted shall survive any termination of this License, absent termination by the terms of such sublicense. Provisions that, by their nature, must remain in effect beyond the termination of this License, shall survive. +5. No Trademark Or Other Rights. This License does not grant any rights to: (i) any software apart from the Covered Code, nor shall any other rights or licenses not expressly granted hereunder arise by implication, estoppel or otherwise with respect to the Covered Code; (ii) any trade name, trademark or service mark whatsoever, including without limitation any related right for purposes of endorsement or promotion of products derived from the Covered Code, without prior written permission of SGI; or (iii) any title to or ownership of the Original Code, which shall at all times remains with SGI. All rights in the Original Code not expressly granted under this License are reserved. +6. Compliance with Laws; Non-Infringement. There are various worldwide laws, regulations, and executive orders applicable to dispositions of Covered Code, including without limitation export, re-export, and import control laws, regulations, and executive orders, of the U.S. government and other countries, and Recipient is reminded it is obliged to obey such laws, regulations, and executive orders. Recipient may not distribute Covered Code that (i) in any way infringes (directly or contributorily) any intellectual property rights of any kind of any other person or entity or (ii) breaches any representation or warranty, express, implied or statutory, to which, under any applicable law, it might be deemed to have been subject. +7. Claims of Infringement. If Recipient learns of any third party claim that any disposition of Covered Code and/or functionality wholly or partially infringes the third party's intellectual property rights, Recipient will promptly notify SGI of such claim. +8. Versions of the License. SGI may publish revised and/or new versions of the License from time to time, each with a distinguishing version number. Once Covered Code has been published under a particular version of the License, Recipient may, for the duration of the license, continue to use it under the terms of that version, or choose to use such Covered Code under the terms of any subsequent version published by SGI. Subject to the provisions of Sections 3 and 4 of this License, only SGI may modify the terms applicable to Covered Code created under this License. +9. DISCLAIMER OF WARRANTY. COVERED CODE IS PROVIDED "AS IS." ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. SGI ASSUMES NO RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY IS AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT SUBJECT TO THIS DISCLAIMER. +10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES NOR LEGAL THEORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT. +11. Indemnity. Recipient shall be solely responsible for damages arising, directly or indirectly, out of its utilization of rights under this License. Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from and against any loss, liability, damages, costs or expenses (including the payment of reasonable attorneys fees) arising out of Recipient's use, modification, reproduction and distribution of the Covered Code or out of any representation or warranty made by Recipient. +12. U.S. Government End Users. The Covered Code is a "commercial item" consisting of "commercial computer software" as such terms are defined in title 48 of the Code of Federal Regulations and all U.S. Government End Users acquire only the rights set forth in this License and are subject to the terms of this License. +13. Miscellaneous. This License represents the complete agreement concerning the its subject matter. If any provision of this License is held to be unenforceable, such provision shall be reformed so as to achieve as nearly as possible the same legal and economic effect as the original provision and the remainder of this License will remain in effect. This License shall be governed by and construed in accordance with the laws of the United States and the State of California as applied to agreements entered into and to be performed entirely within California between California residents. Any litigation relating to this License shall be subject to the exclusive jurisdiction of the Federal Courts of the Northern District of California (or, absent subject matter jurisdiction in such courts, the courts of the State of California), with venue lying exclusively in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation that provides that the language of a contract shall be construed against the drafter shall not apply to this License. +Exhibit A +License Applicability. Except to the extent portions of this file are made subject to an alternative license as permitted in the SGI Free Software License B, Version 1.1 (the "License"), the contents of this file are subject only to the provisions of the License. You may not use this file except in compliance with the License. You may obtain a copy of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: http://oss.sgi.com/projects/FreeB +Note that, as provided in the License, the Software is distributed on an "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.Original Code. The Original Code is: [name of software, version number, and release date], developed by Silicon Graphics, Inc. The Original Code is Copyright (c) [dates of first publication, as appearing in the Notice in the Original Code] Silicon Graphics, Inc. Copyright in any portions created by third parties is as indicated elsewhere herein. All Rights Reserved.Additional Notice Provisions: [such additional provisions, if any, as appear in the Notice in the Original Code under the heading "Additional Notice Provisions"] + +%% The following software may be included in this product: Byte Code Engineering Library (BCEL) v. 5; Use of any of this software is governed by the terms of the license below: +Apache Software License + +/ +==================================================================== +The Apache Software License, Version 1.1 + +Copyright (c) 2001 The Apache Software Foundation. Allrights reserved. + +Redistribution and use in source and binary forms, withor without modification, are permitted provided that the followingconditions are met: + +1. Redistributions of source code must retain the abovecopyright notice, this list of conditions and the followingdisclaimer. + +2. Redistributions in binary form must reproduce theabove copyright notice, this list of conditions and the followingdisclaimer in the documentation and/or other materials providedwith the distribution. + +3. The end-user documentation included with theredistribution, if any, must include the following acknowledgment: +"This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in thesoftware itself, if and wherever such third-party acknowledgmentsnormally appear. + +4. The names "Apache" and "Apache Software Foundation"and "Apache BCEL" must not be used to endorse or promoteproducts derived from this software without prior writtenpermission. For written permission, please contact apache@apache.org. + +5. Products derived from this software may not be called"Apache", "Apache BCEL", nor may "Apache" appear in their name,without prior written permission of the Apache SoftwareFoundation. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED ORIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWAREFOUNDATION OR ITS 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) HOWEVERCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING INANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE. +==================================================================== + +This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache Software Foundation, please see http://www.apache.org. / + + + +%% The following software may be included in this product: Regexp, Regular Expression Package v. 1.2; Use of any of this software is governed by the terms of the license below: The Apache Software License, Version 1.1 +Copyright (c) 2001 The Apache Software Foundation. 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. + +3. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: +"This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. + +4. The names "Apache" and "Apache Software Foundation" and "Apache Turbine" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org. + +5. Products derived from this software may not be called "Apache", "Apache Turbine", nor may "Apache" appear in their name, without prior written permission of the Apache Software Foundation. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR ITS 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. + +==================================================================== +This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache Software Foundation, please see http://www.apache.org. + +%% The following software may be included in this product: CUP Parser Generator for Java v. 0.10k; Use of any of this software is governed by the terms of the license below: CUP Parser Generator Copyright Notice, License, and Disclaimer + +Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian +Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided thatthe above copyright notice appear in all copies and that both the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation, and that the names of the authors or their employersnot be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. + +The authors and their employers disclaim all warranties with regard to thissoftware, including all implied warranties of merchantability and fitness. In no event shall the authors or their employers be liable for anyspecial, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract,negligence or other tortious action, arising out of or in connection withthe use or performance of this software. + +%% The following software may be included in this product: JLex: A Lexical Analyzer Generator for Java v. 1.2.5; Use of any of this software is governed by the terms of the license below: JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER. + +Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian + +Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright noticeappear in all copies and that both the copyright notice and this permission notice and warrantydisclaimer appear in supporting documentation, and that the name of the authors or their employersnot be used in advertising or publicity pertaining to distribution of the software withoutspecific, written prior permission. + +The authors and their employers disclaim all warranties with regard to thissoftware, including all implied warranties of merchantability and fitness. In no event shall the authorsor their employers be liable for any special, indirect or consequential damages or any damageswhatsoever resulting from loss of use, data or profits, whether in an action of contract, negligenceor other tortious action, arising out of or in connection with the use or performance of thissoftware. + +Java is a trademark of Sun Microsystems, Inc. References to the Java programminglanguage in relation to JLex are not meant to imply that Sun endorses this product. + +%% The following software may be included in this product: SAX v. 2.0.1; Use of any of this software is governed by the terms of the license below: Copyright Status + +SAX is free! + +In fact, it's not possible to own a license to SAX, since it's been placed in the public domain. + +No Warranty + +Because SAX is released to the public domain, there is no warranty for the design or for the software implementation, to the extent permitted by applicable law. Except when otherwise stated in writing the copyright holders and/or other parties provide SAX "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of SAX is with you. Should SAX prove defective, you assume the cost of all necessary servicing, repair or correction. + +In no event unless required by applicable law or agreed to in writing will any copyright holder, or any other party who may modify and/or redistribute SAX, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use SAX (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the SAX to operate with any other programs), even if such holder or other party has been advised of the possibility of such damages. + +Copyright Disclaimers + +This page includes statements to that effect by David Megginson, who would have been able to claim copyright for the original work. + +SAX 1.0 + +Version 1.0 of the Simple API for XML (SAX), created collectively by the membership of the XML-DEV mailing list, is hereby released into the public domain. + +No one owns SAX: you may use it freely in both commercial and non-commercial applications, bundle it with your software distribution, include it on a CD-ROM, list the source code in a book, mirror the documentation at your own web site, or use it in any other way you see fit. + +David Megginson, sax@megginson.com +1998-05-11 + +SAX 2.0 + +I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and release all of the SAX 2.0 source code, compiled code, and documentation contained in this distribution into the Public Domain. SAX comes with NO WARRANTY or guarantee of fitness for any purpose. + +David Megginson, david@megginson.com +2000-05-05 + +%% The following software may be included in this product: Cryptix; Use of any of this software is governed by the terms of the license below: +Cryptix General License + +Copyright © 1995-2003 The Cryptix Foundation Limited. All rights reserved. +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions aremet: + +1.Redistributions of source code must retain the 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 CRYPTIX FOUNDATION LIMITED AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS ORIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FORA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) 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 OFTHE POSSIBILITY OF SUCH DAMAGE. + +%% The following software may be included in this product: W3C XML Schema Test Collection; Use of any of this software is governed by the terms of the license below: +W3C® DOCUMENT NOTICE AND LICENSE +Copyright © 1994-2002 World Wide Web Consortium, (Massachusetts Institute ofTechnology, Institut National de Recherche en Informatique et en Automatique,Keio University). All Rights Reserved. +http://www.w3.org/Consortium/Legal/ + +Public documents on the W3C site are provided by the copyright holders under thefollowing license. The software or Document Type Definitions (DTDs) associatedwith W3C specifications are governed by the Software Notice. By using and/orcopying this document, or the W3C document from which this statement is linked,you (the licensee) agree that you have read, understood, and will comply withthe following terms and conditions: + +Permission to use, copy, and distribute the contents of this document, or theW3C document from which this statement is linked, in any medium for any purposeand without fee or royalty is hereby granted, provided that you include thefollowing on ALL copies of the document, or portions thereof, that you use: + 1. A link or URL to the original W3C document. + 2. The pre-existing copyright notice of the original author, or if it doesn'texist, a notice of the form: "Copyright © [$date-of-document] World Wide WebConsortium, (Massachusetts Institute of Technology, Institut National deRecherche en Informatique et en Automatique, Keio University). All RightsReserved. http://www.w3.org/Consortium/Legal/" (Hypertext is preferred, but atextual representation is permitted.) + 3. If it exists, the STATUS of the W3C document. + +When space permits, inclusion of the full text of this NOTICE should beprovided. We request that authorship attribution be provided in any software,documents, or other items or products that you create pursuant to the +implementation of the contents of this document, or any portion thereof. +No right to create modifications or derivatives of W3C documents is grantedpursuant to this license. However, if additional requirements (documented in theCopyright FAQ) are satisfied, the right to create modifications or derivativesis sometimes granted by the W3C to individuals complying with those requirements. +THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONSOR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THEIMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL ORCONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCEOR IMPLEMENTATION OF THE CONTENTS THEREOF. + +The name and trademarks of copyright holders may NOT be used in advertising orpublicity pertaining to this document or its contents without specific, writtenprior permission. Title to copyright in this document will at all times remainwith copyright holders. + +---------------------------------------------------------------------------- +This formulation of W3C's notice and license became active on April 05 1999 soas to account for the treatment of DTDs, schema's and bindings. See the olderformulation for the policy prior to this date. Please see our Copyright FAQ forcommon questions about using materials from our site, including specific termsand conditions for packages like libwww, Amaya, and Jigsaw. Other questionsabout this notice can be directed to site-policy@w3.org. +webmaster +(last updated by reagle on 1999/04/99.) + +%% The following software may be included in this product: Stax API; Use of any of this software is governed by the terms of the license below: +Streaming API for XML (JSR-173) Specification +Reference Implementation +License Agreement + +READ THE TERMS OF THIS (THE "AGREEMENT") CAREFULLY BEFORE VIEWING OR USING THESOFTWARE LICENSED HEREUNDER. BY VIEWING OR USING THE SOFTWARE, YOU AGREE TO THE TERMS OF THISAGREEMENT. IF YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, INDICATE YOUR ACCEPTANCE OF THESETERMS BY SELECTING THE "ACCEPT" BUTTON AT THE END OF THIS AGREEMENT. IF YOU DO NOT AGREE TOALL THESE TERMS, PROMPTLY RETURN THE UNUSED SOFTWARE TO ORIGINAL CONTRIBUTOR, DEFINED HEREIN. +1.0 DEFINITIONS. + +1.1. "BEA" means BEA Systems, Inc., the licensor of the Original Code. +1.2. "Contributor" means BEA and each entity that creates or contributes to thecreation of Modifications. + +1.3. "Covered Code" means the Original Code or Modifications or the combinationof the Original Code and Modifications, in each case including portions thereof and corresponding documentation released with the source code. + +1.4. "Executable" means Covered Code in any form other than Source Code. +1.5. "FCS" means first commercial shipment of a product. + +1.6. "Modifications" means any addition to or deletion from the substance orstructure of either the Original Code or any previous Modifications. When Covered Code isreleased as a series of files, a Modification is: + +(a) Any addition to or deletion from the contents of a file containing OriginalCode or previous Modifications. + +(b) Any new file that contains any part of the Original Code or previousModifications. + +1.7. "Original Code" means Source Code of computer software code ReferenceImplementation. + +1.8. "Patent Claims" means any patent claim(s), now owned or hereafter acquired,including without limitation, method, process, and apparatus claims, in any patent for whichthe grantor has the right to grant a license. + +1.9. "Reference Implementation" means the prototype or "proof of concept"implementaÂtion of the Specification developed and made available for license by or on behalf of BEA. +1.10. "Source Code" means the preferred form of the Covered Code for makingmodifications to it, including all modules it contains, plus any associated documentation,interface definition files, scripts used to control compilation and installation of an Executable, orsource code differential comparisons against either the Original Code or another well known,available Covered Code of the Contributor's choice. + +1.11. "Specification" means the written specification for the Streaming API forXML , Java technology developed pursuant to the Java Community Process. +1.12. "Technology Compatibility Kit" or "TCK" means the documentation, testingtools and test suites associated with the Specification as may be revised by BEA from time totime, that is provided so that an implementer of the SpecifiÂcation may determine if itsimplementation is compliant with the Specification. + +1.13. "You" (or "Your") means an individual or a legal entity exercising rightsunder, and complying with all of the terms of, this Agreement or a future version of thisAgreement issued under Section 6.1. For legal entities, "You" includes any entity which controls,is controlled by, or is under common control with You. For purposes of this definition,"control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of theoutstanding shares or beneficial ownership of such entity. + +2.0 SOURCE CODE LICENSE. + +2.1. Copyright Grant. Subject to the terms of this Agreement, each Contributorhereby grants You a non-exclusive, worldwide, royalty-free copyright license to reproduce,prepare derivative works of, publicly display, publicly perform, distribute and sublicense theCovered Code of such Contributor, if any, and such derivative works, in Source Code andExecutable form. + +2.2. Patent Grant. Subject to the terms of this Agreement, each Contributorhereby grants You a non-exclusive, worldwide, royalty-free patent license under the PatentClaims to make, use, sell, offer to sell, import and otherwise transfer the Covered Code preparedand provided by such Contributor, if any, in Source Code and Executable form. This patentlicense shall apply to the Covered Code if, at the time a Modification is added by the Contributor,such addition of the Modification causes such combination to be covered by the Patent Claims.The patent license shall not apply to any other combinations which include the Modification. +2.3. Conditions to Grants. You understand that although each Contributorgrants the licenses to the Covered Code prepared by it, no assurances are provided by anyContributor that the Covered Code does not infringe the patent or other intellectual property rights ofany other entity. Each Contributor disclaims any liability to You for claims brought by anyother entity based on infringement of intellectual property rights or otherwise. As a conditionto exercising the rights and licenses granted hereunder, You hereby assume sole responsibility to secure any other intellectual property rights needed, if any. For example, if a thirdparty patent license is required to allow You to distribute Covered Code, it is Your responsibility to acquire that license before distributing such code. + +2.4. Contributors' Representation. Each Contributor represents that to itsknowledge it has sufficient copyright rights in the Covered Code it provides , if any, to grantthe copyright license set forth in this Agreement. + +3.0 DISTRIBUION RESTRICTIONS. + +3.1. Application of Agreement. + +The Modifications which You create or to which You contribute are governed bythe terms of this Agreement, including without limitation Section 2.0. The Source Code versionof Covered Code may be distributed only under the terms of this Agreement or a future versionof this Agreement released under Section 6.1, and You must include a copy of this Agreementwith every copy of the Source Code You distribute. You may not offer or impose any terms on anySource Code version that alters or restricts the applicable version of this Agreement or therecipients' rights hereunder. However, You may include an additional document offering theadditional rights described in Section 3.3. + +3.2. Description of Modifications. + +You must cause all Covered Code to which You contribute to contain a filedocumenting the changes You made to create that Covered Code and the date of any change. You mustinclude a prominent statement that the Modification is derived, directly or indirectly, fromOriginal Code provided by BEA and including the name of BEA in (a) the Source Code, and (b) inany notice in an Executable version or related documentation in which You describe the origin orownership ofthe Covered Code. + +%% The following software may be included in this product: X Window System; Use of any of this software is governed by the terms of the license below: +Copyright The Open Group + +Permission to use, copy, modify, distribute, and sell this software and itsdocumentation for any purpose is hereby granted without fee, provided that theabove copyright notice appear in all copies and that both that copyright noticeand this permission notice appear in supporting documentation. + +The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUPBE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OFCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THESOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be usedin advertising or otherwise to promote the sale, use or other dealings in thisSoftware without prior written authorization from The Open Group. + +Portions also covered by other licenses as noted in the above URL. + +%% The following software may be included in this product: dom4j v. 1.6; Use of any of this software is governed by the terms of the license below: +Redistribution and use of this software and associated documentation +("Software"), with or without modification, are permitted provided that thefollowing conditions are met: + + 1. Redistributions of source code must retain copyright statements andnotices. Redistributions must also contain a copy of this document. + 2. Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentation and/orother materials provided with the distribution. + 3. The name "DOM4J" must not be used to endorse or promote products derivedfrom this Software without prior written permission of MetaStuff, Ltd. Forwritten permission, please contact dom4j-info@metastuff.com. + 4. Products derived from this Software may not be called "DOM4J" nor may"DOM4J" appear in their names without prior written permission of MetaStuff,Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. + 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org +THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND ANYEXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FORANY 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 ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. + +%% The following software may be included in this product: Retroweaver; Use of any of this software is governed by the terms of the license below: +Copyright (c) February 2004, Toby Reyelts +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +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. +Neither the name of Toby Reyelts nor the names of his contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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, STRICTLIABILITY, 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. + +%% The following software may be included in this product: stripper; Use of any of this software is governed by the terms of the license below: +Stripper : debug information stripper +Copyright (c) 2003 Kohsuke Kawaguchi +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. +3. Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived fromthis software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + + +%% The following software may be included in this product: libpng official PNG reference library; Use of any of this software is governed by the terms of the license below: +This copy of the libpng notices is provided for your convenience. In case ofany discrepancy between this copy and the notices in the file png.h that isincluded in the libpng distribution, the latter shall prevail. + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + +If you modify libpng you may insert additional notices immediately followingthis sentence. + +libpng version 1.2.6, December 3, 2004, is Copyright (c) 2004 Glenn Randers-Pehrson, and is distributed according to the same disclaimer and license as libpng-1.2.5with the following individual added to the list of Contributing Authors + Cosmin Truta + +libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals added to the list of Contributing Authors + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the library or against infringement. There is no warranty that our efforts or the library will fulfill any of your particular purposes or needs. This library is provided with all faults, and the entire risk of satisfactory quality, performance, accuracy, and effort is with the user. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, areCopyright (c) 1998, 1999 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-0.96,with the following individuals added to the list of Contributing Authors: + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are Copyright (c) 1996, 1997 Andreas Dilger +Distributed according to the same disclaimer and license as libpng-0.88, with the following individuals added to the list of Contributing Authors: + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +libpng versions 0.5, May 1995, through 0.88, January 1996, are Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors"is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing Authorsand Group 42, Inc. disclaim all warranties, expressed or implied, including, without limitation, the warranties of merchantability and offitness for any purpose. The Contributing Authors and Group 42, Inc. assume no liability for direct, indirect, incidental, special, exemplary,or consequential damages, which may result from the use of the PNG Reference Library, even if advised of the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute thissource code, or portions hereof, for any purpose, without fee, subjectto the following restrictions: + +1. The origin of this source code must not be misrepresented. + +2. Altered versions must be plainly marked as such and must not be misrepresented as being the original source. + +3. This Copyright notice may not be removed or altered from any source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, withoutfee, and encourage the use of this source code as a component to supporting the PNG file format in commercial products. If you use thissource code in a product, acknowledgment is not required but would be appreciated. + + +A "png_get_copyright" function is available, for convenient use in "about"boxes and the like: + + printf("%s",png_get_copyright(NULL)); + +Also, the PNG logo (in PNG format, of course) is supplied in the files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is acertification mark of the Open Source Initiative. + +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +December 3, 2004 + +%% The following software may be included in this product: Libungif - An uncompressed GIF library; Use of any of this software is governed by the terms of the license below: +The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond + +Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE. + + +%% The following software may be included in this product: Ant; Use of any of this software is governed by the terms of the license below: +License +The Apache Software License Version 2.0 + +The Apache Software License Version 2.0 applies to all releases of Ant startingwith ant 1.6.1 + +/* + * Apache License + * Version 2.0, January 2004 + * http://www.apache.org/licenses/ + * + * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + * + * 1. Definitions. + * + * "License" shall mean the terms and conditions for use, reproduction, + * and distribution as defined by Sections 1 through 9 of this document. + * + * "Licensor" shall mean the copyright owner or entity authorized by + * the copyright owner that is granting the License. + * + * "Legal Entity" shall mean the union of the acting entity and all + * other entities that control, are controlled by, or are under common + * control with that entity. For the purposes of this definition, + * "control" means (i) the power, direct or indirect, to cause the + * direction or management of such entity, whether by contract or + * otherwise, or (ii) ownership of fifty percent (50%) or more of the + * outstanding shares, or (iii) beneficial ownership of such entity. + * + * "You" (or "Your") shall mean an individual or Legal Entity + * exercising permissions granted by this License. + * + * "Source" form shall mean the preferred form for making modifications, + * including but not limited to software source code, documentation + * source, and configuration files. + * + * "Object" form shall mean any form resulting from mechanical + * transformation or translation of a Source form, including but + * not limited to compiled object code, generated documentation, + * and conversions to other media types. + * + * "Work" shall mean the work of authorship, whether in Source or + * Object form, made available under the License, as indicated by a + * copyright notice that is included in or attached to the work + * (an example is provided in the Appendix below). + * + * "Derivative Works" shall mean any work, whether in Source or Object + * form, that is based on (or derived from) the Work and for which the + * editorial revisions, annotations, elaborations, or other modifications + * represent, as a whole, an original work of authorship. For the purposes + * of this License, Derivative Works shall not include works that remain + * separable from, or merely link (or bind by name) to the interfaces of, + * the Work and Derivative Works thereof. + * + * "Contribution" shall mean any work of authorship, including + * the original version of the Work and any modifications or additions + * to that Work or Derivative Works thereof, that is intentionally + * submitted to Licensor for inclusion in the Work by the copyright owner + * or by an individual or Legal Entity authorized to submit on behalf of + * the copyright owner. For the purposes of this definition, "submitted" + * means any form of electronic, verbal, or written communication sent + * to the Licensor or its representatives, including but not limited to + * communication on electronic mailing lists, source code control systems, + * and issue tracking systems that are managed by, or on behalf of, the + * Licensor for the purpose of discussing and improving the Work, but + * excluding communication that is conspicuously marked or otherwise + * designated in writing by the copyright owner as "Not a Contribution." + * + * "Contributor" shall mean Licensor and any individual or Legal Entity + * on behalf of whom a Contribution has been received by Licensor and + * subsequently incorporated within the Work. + * + * 2. Grant of Copyright License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * copyright license to reproduce, prepare Derivative Works of, + * publicly display, publicly perform, sublicense, and distribute the + * Work and such Derivative Works in Source or Object form. + * + * 3. Grant of Patent License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * (except as stated in this section) patent license to make, have made, + * use, offer to sell, sell, import, and otherwise transfer the Work, + * where such license applies only to those patent claims licensable + * by such Contributor that are necessarily infringed by their + * Contribution(s) alone or by combination of their Contribution(s) + * with the Work to which such Contribution(s) was submitted. If You + * institute patent litigation against any entity (including a + * cross-claim or counterclaim in a lawsuit) alleging that the Work + * or a Contribution incorporated within the Work constitutes direct + * or contributory patent infringement, then any patent licenses + * granted to You under this License for that Work shall terminate + * as of the date such litigation is filed. + * + * 4. Redistribution. You may reproduce and distribute copies of the + * Work or Derivative Works thereof in any medium, with or without + * modifications, and in Source or Object form, provided that You + * meet the following conditions: + * + * (a) You must give any other recipients of the Work or + * Derivative Works a copy of this License; and + * + * (b) You must cause any modified files to carry prominent notices + * stating that You changed the files; and + * + * (c) You must retain, in the Source form of any Derivative Works + * that You distribute, all copyright, patent, trademark, and + * attribution notices from the Source form of the Work, + * excluding those notices that do not pertain to any part of + * the Derivative Works; and + * + * (d) If the Work includes a "NOTICE" text file as part of its + * distribution, then any Derivative Works that You distribute must + * include a readable copy of the attribution notices contained + * within such NOTICE file, excluding those notices that do not + * pertain to any part of the Derivative Works, in at least one + * of the following places: within a NOTICE text file distributed + * as part of the Derivative Works; within the Source form or + * documentation, if provided along with the Derivative Works; or, + * within a display generated by the Derivative Works, if and + * wherever such third-party notices normally appear. The contents + * of the NOTICE file are for informational purposes only and + * do not modify the License. You may add Your own attribution + * notices within Derivative Works that You distribute, alongside + * or as an addendum to the NOTICE text from the Work, provided + * that such additional attribution notices cannot be construed + * as modifying the License. + * + * You may add Your own copyright statement to Your modifications and + * may provide additional or different license terms and conditions + * for use, reproduction, or distribution of Your modifications, or + * for any such Derivative Works as a whole, provided Your use, + * reproduction, and distribution of the Work otherwise complies with + * the conditions stated in this License. + * + * 5. Submission of Contributions. Unless You explicitly state otherwise, + * any Contribution intentionally submitted for inclusion in the Work + * by You to the Licensor shall be under the terms and conditions of + * this License, without any additional terms or conditions. + * Notwithstanding the above, nothing herein shall supersede or modify + * the terms of any separate license agreement you may have executed + * with Licensor regarding such Contributions. + * + * 6. Trademarks. This License does not grant permission to use the trade + * names, trademarks, service marks, or product names of the Licensor, + * except as required for reasonable and customary use in describing the + * origin of the Work and reproducing the content of the NOTICE file. + * + * 7. Disclaimer of Warranty. Unless required by applicable law or + * agreed to in writing, Licensor provides the Work (and each + * Contributor provides its Contributions) on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied, including, without limitation, any warranties or conditions + * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + * PARTICULAR PURPOSE. You are solely responsible for determining the + * appropriateness of using or redistributing the Work and assume any + * risks associated with Your exercise of permissions under this License. + * + * 8. Limitation of Liability. In no event and under no legal theory, + * whether in tort (including negligence), contract, or otherwise, + * unless required by applicable law (such as deliberate and grossly + * negligent acts) or agreed to in writing, shall any Contributor be + * liable to You for damages, including any direct, indirect, special, + * incidental, or consequential damages of any character arising as a + * result of this License or out of the use or inability to use the + * Work (including but not limited to damages for loss of goodwill, + * work stoppage, computer failure or malfunction, or any and all + * other commercial damages or losses), even if such Contributor + * has been advised of the possibility of such damages. + * + * 9. Accepting Warranty or Additional Liability. While redistributing + * the Work or Derivative Works thereof, You may choose to offer, + * and charge a fee for, acceptance of support, warranty, indemnity, + * or other liability obligations and/or rights consistent with this + * License. However, in accepting such obligations, You may act only + * on Your own behalf and on Your sole responsibility, not on behalf + * of any other Contributor, and only if You agree to indemnify, + * defend, and hold each Contributor harmless for any liability + * incurred by, or claims asserted against, such Contributor by reason + * of your accepting any such warranty or additional liability. + * + * END OF TERMS AND CONDITIONS + * + * APPENDIX: How to apply the Apache License to your work. + * + * To apply the Apache License to your work, attach the following + * boilerplate notice, with the fields enclosed by brackets "[]" + * replaced with your own identifying information. (Don't include + * the brackets!) The text should be enclosed in the appropriate + * comment syntax for the file format. We also recommend that a + * file or class name and description of purpose be included on the + * same "printed page" as the copyright notice for easier + * identification within third-party archives. + * + * Copyright [yyyy] Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +You can download the original license file here. + +The License is accompanied by a NOTICE + + ========================================================================= + == NOTICE file corresponding to the section 4 d of == + == the Apache License, Version 2.0, == + == in this case for the Apache Ant distribution. == + ========================================================================= + This product includes software developed by + The Apache Software Foundation (http://www.apache.org/). + + This product includes also software developed by : + - the W3C consortium (http://www.w3c.org) , + - the SAX project (http://www.saxproject.org) + + Please read the different LICENSE files present in the root directory of this distribution. + + The names "Ant" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org. + +The Apache Software License, Version 1.1 + +The Apache Software License, Version 1.1, applies to all versions of up to ant1.6.0 included. + +/* + * ============================================================================ + * The Apache Software License, Version 1.1 + * ============================================================================ + * + * Copyright (C) 2000-2003 The Apache Software Foundation. All + * rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifica- + * tion, 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. + * + * 3. The end-user documentation included with the redistribution, if any, must + * include the following acknowledgment: "This product includes software + * developed by the Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, if + * and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Ant" and "Apache Software Foundation" must not be used to + * endorse or promote products derived from this software without prior + * written permission. For written permission, please contact + * apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", nor may + * "Apache" appear in their name, without prior written permission of the + * Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 + * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- + * DING, 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. + * + * This software consists of voluntary contributions made by many individuals + * on behalf of the Apache Software Foundation. For more information on the + * Apache Software Foundation, please see http://www.apache.org. + * + */ + + +%% The following software may be included in this product: XML Resolver library; Use of any of this software is governed by the terms of the license below: + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + +%% The following software may be included in this product: ICU4J; Use of any of this software is governed by the terms of the license below: +ICU License - ICU 1.8.1 and later COPYRIGHT AND PERMISSION NOTICE Cop +yright (c) +1995-2003 International Business Machines Corporation and others All rightsreserved. Permission is hereby granted, free of charge, to any person obtaininga copy of this software and associated documentation files (the "Software"), todeal in the Software without restriction, including without limitation therights to use, copy, modify, merge, publish, distribute, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,provided that the above copyright notice(s) and this permission notice appear inall copies of the Software and that both the above copyright notice(s) and thispermission notice appear in supporting documentation. THE SOFTWARE IS PROVIDED"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOTLIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSEAND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHTHOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANYSPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTINGFROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCEOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE ORPERFORMANCE OF THIS SOFTWARE. Except as contained in this notice, the name of acopyright holder shall not be used in advertising or otherwise to promote thesale, use or other dealings in this Software without prior written authorizationof the copyright holder. + + +%% The following software may be included in this product: NekoHTML; Use of any of this software is governed by the terms of the license below: +The CyberNeko Software License, Version 1.0 + + +(C) Copyright 2002,2003, Andy Clark. 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. + +3. The end-user documentation included with the redistribution, + if any, must include the following acknowledgment: + "This product includes software developed by Andy Clark." + Alternately, this acknowledgment may appear in the software itself, + if and wherever such third-party acknowledgments normally appear. + +4. The names "CyberNeko" and "NekoHTML" must not be used to endorse + or promote products derived from this software without prior + written permission. For written permission, please contact + andy@cyberneko.net. + +5. Products derived from this software may not be called "CyberNeko", + nor may "CyberNeko" appear in their name, without prior written + permission of the author. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 OTHER 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. + +==================================================================== +This license is based on the Apache Software License, version 1.1 + + +%% The following software may be included in this product: Jing; Use of any of this software is governed by the terms of the license below: +Jing Copying Conditions + +Copyright (c) 2001-2003 Thai Open Source Software Center Ltd +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification,are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice,this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentation and/orother materials provided with the distribution. + * Neither the name of the Thai Open Source Software Center Ltd nor the namesof its contributors may be used to endorse or promote products derived from thissoftware without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ANDANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANYDIRECT, 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 ONANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +%% The following software may be included in this product: RelaxNGCC; Use of any of this software is governed by the terms of the license below: +Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi. +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. + +3. The end-user documentation included with the redistribution, if +any, must include the following acknowledgment: + + "This product includes software developed by Daisuke Okajima + and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)." + +Alternately, this acknowledgment may appear in the software itself, +if and wherever such third-party acknowledgments normally appear. + +4. The names of the copyright holders must not be used to endorse or +promote products derived from this software without prior written +permission. For written permission, please contact the copyright +holders. + +5. Products derived from this software may not be called "RELAXNGCC", +nor may "RELAXNGCC" appear in their name, without prior written +permission of the copyright holders. + +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR ITS 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. + +%% The following software may be included in this product: RELAX NG Object Model/Parser; Use of any of this software is governed by the terms of the license below: +The MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy ofthis software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,subject to the following conditions: + +The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESSFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS ORCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHERIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR INCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +%% The following software may be included in this product: XFree86-VidMode Extension; Use of any of this software is governed by the terms of the license below: +Version 1.1 of ProjectLicence. + + Copyright (C) 1994-2004 The Project, Inc. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to deal inthe Software without restriction, including without limitation the rights touse, copy, modify, merge, publish, distribute, sublicence, and/or sell copies ofthe Software, and to permit persons to whom the Software is furnished to do so,subject to the following conditions: + + 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 copyrightnotice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution, and in thesame place and form as other copyright, license and disclaimer information. 3. The end-user documentation included with the redistribution, if any,must include the following acknowledgment: "This product includes softwaredeveloped by The XFree86 Project, Inc (http://www.xfree86.org/) and itscontributors", in the same place and form as other third-party acknowledgments.Alternately, this acknowledgment may appear in the software itself, in the sameform and location as other such third-party acknowledgments. + 4. Except as contained in this notice, the name of The XFree86 Project,Inc shall not be used in advertising or otherwise to promote the sale, use orother dealings in this Software without prior written authorization from TheXFree86 Project, Inc. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ANDFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE XFREE86PROJECT, INC OR ITS 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; ORBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISINGIN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITYOF SUCH DAMAGE. + + +%% The following software may be included in this product: RelaxNGCC; Use of any of this software is governed by the terms of the license below: +This is version 2003-May-08 of the Info-ZIP copyright and license. +The definitive version of this document should be available at +ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely. + + +Copyright (c) 1990-2003 Info-ZIP. All rights reserved. + +For the purposes of this copyright and license, "Info-ZIP" is defined asthe following set of individuals: + + Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, Jean-loup Gailly, Hunter Goatley, Ian Gorman, Chris Herborth, Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, Kai Uwe Rommel, Steve Salisbury, Dave Smith, Christian Spieler, Antoine Verheijen, + Paul von Behren, Rich Wales, Mike White + +This software is provided "as is," without warranty of any kind, expressor implied. In no event shall Info-ZIP or its contributors be held liablefor any direct, indirect, incidental, special or consequential damagesarising out of the use of or inability to use this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute itfreely, subject to the following restrictions: + + 1. Redistributions of source code must retain the above copyright notice, definition, disclaimer, and this list of conditions. + + 2. Redistributions in binary form (compiled executables) must reproduce the above copyright notice, definition, disclaimer, and this list of conditions in documentation and/or other materials provided with the distribution. The sole exception to this condition is redistribution of a standard UnZipSFX binary (including SFXWiz) as part of a self-extracting archive; that is permitted without inclusion of this license, as long as the normal SFX banner has not been removed from the binary or disabled. + + 3. Altered versions--including, but not limited to, ports to new operating systems, existing ports with new graphical interfaces, and dynamic, shared, or static library versions--must be plainly marked as such and must not be misrepresented as being the original source. Such altered versions also must not be misrepresented as being Info-ZIP releases--including, but not limited to, labeling of the altered versions with the names "Info-ZIP" (or any variation thereof, including, but not limited to, different capitalizations), "Pocket UnZip," "WiZ" or "MacZip" without the explicit permission of Info-ZIP. Such altered versions are further prohibited from misrepresentative use of the Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s). + 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its own source and binary releases. + + +%% The following software may be included in this product: XML Security; Use of any of this software is governed by the terms of the license below: + The Apache Software License, +Version 1.1 +PDF + +Copyright (C) 2002 The Apache SoftwareFoundation. +All rights reserved. Redistribution anduse in source and binary forms, with or withoutmodifica- +tion, are permitted provided that thefollowing conditions are met: +1. Redistributions ofsource code must retain the above copyrightnotice, this list of conditions and the followingdisclaimer. +2. Redistributions in binary form mustreproduce the above copyright notice, this list of conditions and the following disclaimerin the documentation and/or other materialsprovided with the distribution. +3. The end-userdocumentation included with the redistribution, if any,must include the following acknowledgment:"This product includes software developed bythe Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment mayappear in the software itself, if and wherever suchthird-party acknowledgments normally appear. +4. The names"Apache Forrest" and "Apache SoftwareFoundation" must not be used to endorse or promoteproducts +derived from this software without priorwritten permission. For written permission,please contact apache@apache.org. 5. Products derivedfrom this software may not be called "Apache", normay "Apache" appear in their name, without prior written permission of the Apache Software Foundation. +THIS SOFTWARE IS PROVIDED``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ORSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANYTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, 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. +This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache SoftwareFoundation, please see http://www.apache.org. + + +%% The following software may be included in this product: Regexp, Regular Expression Package v. 1.2; Use of any of this software is governed by the terms of the license below: The Apache Software License, Version 1.1 +Copyright (c) 2001 The Apache Software Foundation. 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. + +3. The end-user documentation included with the redistribution, if any, must include the following acknowledgment: +"This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. + +4. The names "Apache" and "Apache Software Foundation" and "Apache Turbine" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org. + +5. Products derived from this software may not be called "Apache", "Apache Turbine", nor may "Apache" appear in their name, without prior written permission of the Apache Software Foundation. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 APACHE SOFTWARE FOUNDATION OR ITS 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. + +==================================================================== +This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache Software Foundation, please see http://www.apache.org. + + +%% The following software may be included in this product: Visual Studio. Use of any of this software is governed by the terms of the license below: + +END-USER LICENSE AGREEMENT FOR MICROSOFT SOFTWARE +IMPORTANT-READ CAREFULLY: This End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Microsoft Corporation ("Microsoft) for the Microsoft software that accompanies this EULA, which includes computer software and may include associated media, printed materials, "online" or electronic documentation, and Internet-based services ("Software"). An amendment or addendum to this EULA may accompany the Software. YOU AGREE TO BE BOUND BY THE TERMS OF THIS EULA BY INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE. IF YOU DO NOT AGREE, DO NOT INSTALL, COPY, OR USE THE SOFTWARE; YOU MAY RETURN IT TO YOUR PLACE OF PURCHASE (IF APPLICABLE) FOR A FULL REFUND. + +MICROSOFT SOFTWARE LICENSE + +1. GRANTS OF LICENSE. Microsoft grants you the rights described in this EULA provided that you comply with all terms and conditions of this EULA. NOTE: Microsoft is not licensing to you any rights with respect to Crystal Reports for Microsoft Visual Studio .NET; your use of Crystal Reports for Microsoft Visual Studio .NET is subject to your acceptance of the terms and conditions of the enclosed (hard copy) end user license agreement from Crystal +Decisions for that product. +1.1 General License Grant. Microsoft grants to you as an individual, a personal, nonexclusive license to use the Software, and to make and use copies of the Software for the purposes of designing, developing, testing, and demonstrating your software product(s), provided that you are the only individual using the Software. If you are an entity, Microsoft grants to you a personal, nonexclusive license to use the Software, and to make and use copies of the Software, provided that for each individual using the Software within your organization, you have acquired a separate and valid license for each such individual. +1.2 Documentation. You may make and use an unlimited number of copies of any documentation, provided that such copies shall be used only for personal purposes and are not to be republished or distributed (either in hard copy or electronic form) beyond your premises. +1.3 Storage/Network Use. You may also store or install a copy of the Software on a storage device, such as a network server, used only to install or run the Software on computers used by licensed end users in accordance with Section 1.1. A single license for the Software may not be shared or used concurrently by multiple end users. +1.4 Visual Studio—Effect of EULA. As a suite of development tools and other Microsoft software programs (each such tool or software program, a "Component"), Components that you receive as part of the Software may include a separate end-user license agreement (each, a "Component EULA"). Except as provided in Section 4 ("Prerelease Code"), in the event of inconsistencies between this EULA and any Component EULA, the terms of this EULA shall control. The Software may also contain third-party software programs. Any such software is provided for your use as a convenience and your use is subject to the terms and conditions of any license agreement contained in that software. +2. ADDITIONAL LICENSE RIGHTS -- REDISTRIBUTABLE CODE. In addition to the rights granted in Section 1, certain portions of the Software, as described in this Section 2, are provided to you with additional license rights. These additional license rights are conditioned +Everett VSPro 1 +Final 11.04.02 +upon your compliance with the distribution requirements and license limitations described in +Section 3. +2.1 Sample Code. Microsoft grants you a limited, nonexclusive, royalty-free license +to: (a) use and modify the source code version of those portions of the Software identified as +"Samples" in REDIST.TXT or elsewhere in the Software ("Sample Code") for the sole purposes +of designing, developing, and testing your software product(s), and (b) reproduce and +distribute the Sample Code, along with any modifications thereof, in object and/or source code +form. For applicable redistribution requirements for Sample Code, see Section 3.1 below. +2.2 Redistributable Code—General. Microsoft grants you a limited, nonexclusive, +royalty-free license to reproduce and distribute the object code form of any portion of the +Software listed in REDIST.TXT ("Redistributable Code"). For general redistribution +requirements for Redistributable Code, see Section 3.1 below. +2.3 Redistributable Code—Microsoft Merge Modules ("MSM"). Microsoft grants +you a limited, nonexclusive, royalty-free license to reproduce and distribute the content of MSM +file(s) listed in REDIST.TXT in the manner described in the Software documentation only so +long as you redistribute such content in its entirety and do not modify such content in any way. +For all other applicable redistribution requirements for MSM files, see Section 3.1 below. +2.4 Redistributable Code—Microsoft Foundation Classes (MFC), Active Template +Libraries (ATL), and C runtimes (CRTs). In addition to the rights granted in Section 1, +Microsoft grants you a license to use and modify the source code version of those portions of +the Software that are identified as MFC, ATL, or CRTs (collectively, the "VC Redistributables"), +for the sole purposes of designing, developing, and testing your software product(s). Provided +you comply with Section 3.1 and you rename any files created by you that are included in the +Licensee Software (defined below), Microsoft grants you a limited, nonexclusive, royalty-free +license to reproduce and distribute the object code version of the VC Redistributables, including +any modifications you make. For purposes of this section, "modifications" shall mean +enhancements to the functionality of the VC Redistributables. For all other applicable +redistribution requirements for VC Redistributables, see Section 3.1 below. +3. DISTRIBUTION REQUIREMENTS AND OTHER LICENSE RIGHTS AND +LIMITATIONS. If you choose to exercise your rights under Section 2, any redistribution by +you is subject to your compliance with Section 3.1; some of the Redistributable Code has +additional limited use rights described in Section 3.2. +3.1 General Distribution Requirements. +(a) If you choose to redistribute Sample Code, or Redistributable Code +(collectively, the "Redistributables") as described in Section 2, you agree: (i) except as otherwise +noted in Section 2.1 (Sample Code), to distribute the Redistributables only in object code form +and in conjunction with and as a part of a software application product developed by you that +adds significant and primary functionality to the Redistributables ("Licensee Software"); +(ii) that the Redistributables only operate in conjunction with Microsoft Windows platforms; +(iii) that if the Licensee Software is distributed beyond Licensee's premises or externally from +Licensee's organization, to distribute the Licensee Software containing the Redistributables +pursuant to an end user license agreement (which may be "break-the-seal", "click-wrap" or +signed), with terms no less protective than those contained in this EULA; (iv) not to use +Microsoft's name, logo, or trademarks to market the Licensee Software; (v) to display your own +valid copyright notice which shall be sufficient to protect Microsoft's copyright in the Software; +Everett VSPro 2 +Final 11.04.02 +(vi) not to remove or obscure any copyright, trademark or patent notices that appear on the +Software as delivered to you; (vii) to indemnify, hold harmless, and defend Microsoft from and +against any claims or lawsuits, including attorney's fees, that arise or result from the use or +distribution of the Licensee Software; (viii) to otherwise comply with the terms of this EULA; +and (ix) agree that Microsoft reserves all rights not expressly granted. +You also agree not to permit further distribution of the Redistributables by your +end users except you may permit further redistribution of the Redistributables by your +distributors to your end-user customers if your distributors only distribute the Redistributables +in conjunction with, and as part of, the Licensee Software, you comply with all other terms of +this EULA, and your distributors comply with all restrictions of this EULA that are applicable +to you. + +(b) If you use the Redistributables, then in addition to your compliance with +the applicable distribution requirements described for the Redistributables, the following also +applies. Your license rights to the Redistributables are conditioned upon your not (i) creating +derivative works of the Redistributables in any manner that would cause the Redistributables in +whole or in part to become subject to any of the terms of an Excluded License; or (ii) +distributing the Redistributables (or derivative works thereof) in any manner that would cause +the Redistributables to become subject to any of the terms of an Excluded License. An +"Excluded License" is any license that requires as a condition of use, modification and/or +distribution of software subject to the Excluded License, that such software or other software +combined and/or distributed with such software be (x) disclosed or distributed in source code +form; (y) licensed for the purpose of making derivative works; or (z) redistributable at no +charge. +3.2 Additional Distribution Requirements for Certain Redistributable Code. +If you choose to redistribute the files discussed in this Section, then in addition to the terms of +Section 3.1, you must ALSO comply with the following. +(a) Microsoft SQL Server Desktop Engine ("MSDE"). If you redistribute +MSDE you agree to comply with the following additional requirements: (a) Licensee +Software shall not substantially duplicate the capabilities of Microsoft Access or, in the +reasonable opinion of Microsoft, compete with same; and (b) unless Licensee Software +requires your customers to license Microsoft Access in order to operate, you shall not +reproduce or use MSDE for commercial distribution in conjunction with a general +purpose word processing, spreadsheet or database management software product, or an +integrated work or product suite whose components include a general purpose word +processing, spreadsheet, or database management software product except for the +exclusive use of importing data to the various formats supported by Microsoft Access. +A product that includes limited word processing, spreadsheet or database components +along with other components which provide significant and primary value, such as an +accounting product with limited spreadsheet capability, is not considered to be a +"general purpose" product. +(b) Microsoft Data Access Components. If you redistribute the Microsoft +Data Access Component file identified as MDAC_TYP.EXE, you also agree to +redistribute such file in object code only in conjunction with and as a part of a Licensee +Software developed by you with a Microsoft development tool product that adds +significant and primary functionality to MDAC_TYP.EXE. +Everett VSPro 3 +Final 11.04.02 +3.3 Separation of Components. The Software is licensed as a single product. Its +component parts may not be separated for use by more than one user. +3.4 Benchmark Testing. The Software may contain the Microsoft .NET Framework. +You may not disclose the results of any benchmark test of the .NET Framework component of +the Software to any third party without Microsoft's prior written approval. +4. PRERELEASE CODE. Portions of the Software may be identified as prerelease code +("Prerelease Code"). Such Prerelease Code is not at the level of performance and compatibility +of the final, generally available product offering. The Prerelease Code may not operate correctly +and may be substantially modified prior to first commercial shipment. Microsoft is not +obligated to make this or any later version of the Prerelease Code commercially available. The +grant of license to use Prerelease Code expires upon availability of a commercial release of the +Prerelease Code from Microsoft. NOTE: In the event that Prerelease Code contains a separate +end-user license agreement, the terms and conditions of such end-user license agreement shall +govern your use of the corresponding Prerelease Code. +5. RESERVATION OF RIGHTS AND OWNERSHIP. Microsoft reserves all rights not +expressly granted to you in this EULA. The Software is protected by copyright and other +intellectual property laws and treaties. Microsoft or its suppliers own the title, copyright, and +other intellectual property rights in the Software. The Software is licensed, not sold. +6. LIMITATIONS ON REVERSE ENGINEERING, DECOMPILATION, AND +DISASSEMBLY. You may not reverse engineer, decompile, or disassemble the Software, +except and only to the extent that such activity is expressly permitted by applicable law +notwithstanding this limitation. +7. NO RENTAL/COMMERCIAL HOSTING. You may not rent, lease, lend or provide +commercial hosting services with the Software. +8. CONSENT TO USE OF DATA. You agree that Microsoft and its affiliates may collect +and use technical information gathered as part of the product support services provided to you, +if any, related to the Software. Microsoft may use this information solely to improve our +products or to provide customized services or technologies to you and will not disclose this +information in a form that personally identifies you. +9. LINKS TO THIRD PARTY SITES. You may link to third party sites through the use of +the Software. The third party sites are not under the control of Microsoft, and Microsoft is not +responsible for the contents of any third party sites, any links contained in third party sites, or +any changes or updates to third party sites. Microsoft is not responsible for webcasting or any +other form of transmission received from any third party sites. Microsoft is providing these +links to third party sites to you only as a convenience, and the inclusion of any link does not +imply an endorsement by Microsoft of the third party site. +10. ADDITIONAL SOFTWARE/SERVICES. This EULA applies to updates, supplements, +add-on components, or Internet-based services components, of the Software that Microsoft may +provide to you or make available to you after the date you obtain your initial copy of the +Software, unless we provide other terms along with the update, supplement, add-on +component, or Internet-based services component. Microsoft reserves the right to discontinue +any Internet-based services provided to you or made available to you through the use of the +Software. +11. UPGRADES/DOWNGRADES +Everett VSPro 4 +Final 11.04.02 +11.1 Upgrades. To use a version of the Software identified as an upgrade, you must +first be licensed for the software identified by Microsoft as eligible for the upgrade. After +upgrading, you may no longer use the software that formed the basis for your upgrade +eligibility. +11.2 Downgrades. Instead of installing and using the Software, you may install and +use copies of an earlier version of the Software, provided that you completely remove such +earlier version and install the current version of the Software within a reasonable time. Your +use of such earlier version shall be governed by this EULA, and your rights to use such earlier +version shall terminate when you install the Software. +11.3 Special Terms for Version 2003 Upgrade Editions of the Software. If the +Software accompanying this EULA is the version 2003 edition of the Software and you have +acquired it as an upgrade from the corresponding "2002" edition of the Microsoft software +product with the same product name as the Software (the "Qualifying Software"), then +Section 11.1 does not apply to you. Instead, you may continue to use the Qualifying Software +AND the version 2003 upgrade for so long as you continue to comply with the terms of this +EULA and the EULA governing your use of the Qualifying Software. Qualifying Software does +not include non-Microsoft software products. +12. NOT FOR RESALE SOFTWARE. Software identified as "Not For Resale" or "NFR," +may not be sold or otherwise transfered for value, or used for any purpose other than +demonstration, test or evaluation. +13. ACADEMIC EDITION SOFTWARE. To use Software identified as "Academic +Edition" or "AE," you must be a "Qualified Educational User." For qualification-related +questions, please contact the Microsoft Sales Information Center/One Microsoft +Way/Redmond, WA 98052-6399 or the Microsoft subsidiary serving your country. +14. EXPORT RESTRICTIONS. You acknowledge that the Software is subject to U.S. export +jurisdiction. You agree to comply with all applicable international and national laws that apply +to the Software, including the U.S. Export Administration Regulations, as well as end-user, end- +use, and destination restrictions issued by U.S. and other governments. For additional +information see . +15. SOFTWARE TRANSFER. The initial user of the Software may make a one-time +permanent transfer of this EULA and Software to another end user, provided the initial user +retains no copies of the Software. This transfer must include all of the Software (including all +component parts, the media and printed materials, any upgrades (including any Qualifying +Software as defined in Section 11.3), this EULA, and, if applicable, the Certificate of +Authenticity). The transfer may not be an indirect transfer, such as a consignment. Prior to the +transfer, the end user receiving the Software must agree to all the EULA terms. +16. TERMINATION. Without prejudice to any other rights, Microsoft may terminate this +EULA if you fail to comply with the terms and conditions of this EULA. In such event, you +must destroy all copies of the Software and all of its component parts. +Everett VSPro 5 +Final 11.04.02 +17. LIMITED WARRANTY FOR SOFTWARE ACQUIRED IN THE US AND CANADA. +Except for the "Redistributables," which are provided AS IS without warranty of any kind, +Microsoft warrants that the Software will perform substantially in accordance with the +accompanying materials for a period of ninety (90) days from the date of receipt. + +If an implied warranty or condition is created by your state/jurisdiction and federal or +state/provincial law prohibits disclaimer of it, you also have an implied warranty or condition, +BUT ONLY AS TO DEFECTS DISCOVERED DURING THE PERIOD OF THIS LIMITED +WARRANTY (NINETY DAYS). AS TO ANY DEFECTS DISCOVERED AFTER THE +NINETY-DAY PERIOD, THERE IS NO WARRANTY OR CONDITION OF ANY KIND. + +Some states/jurisdictions do not allow limitations on how long an implied warranty or + + +condition lasts, so the above limitation may not apply to you. +Any supplements or updates to the Software, including without limitation, any (if any) service +packs or hot fixes provided to you after the expiration of the ninety day Limited Warranty +period are not covered by any warranty or condition, express, implied or statutory. + + +LIMITATION ON REMEDIES; NO CONSEQUENTIAL OR OTHER DAMAGES. Your +exclusive remedy for any breach of this Limited Warranty is as set forth below. Except for any +refund elected by Microsoft, YOU ARE NOT ENTITLED TO ANY DAMAGES, +INCLUDING BUT NOT LIMITED TO CONSEQUENTIAL DAMAGES, if the Software does +not meet Microsoft's Limited Warranty, and, to the maximum extent allowed by applicable  +law, even if any remedy fails of its essential purpose. The terms of Section 19 ("Exclusion of +Incidental, Consequential and Certain Other Damages") are also incorporated into this Limited +Warranty. Some states/jurisdictions do not allow the exclusion or limitation of incidental or +consequential damages, so the above limitation or exclusion may not apply to you. This +Limited Warranty gives you specific legal rights. You may have other rights which vary from +state/jurisdiction to state/jurisdiction. YOUR EXCLUSIVE REMEDY. Microsoft's and its +suppliers' entire liability and your exclusive remedy for any breach of this Limited Warranty or +for any other breach of this EULA or for any other liability relating to the Software shall be, at +Microsoft's option from time to time exercised subject to applicable law, (a) return of the +amount paid (if any) for the Software, or (b) repair or replacement of the Software, that does not +meet this Limited Warranty and that is returned to Microsoft with a copy of your receipt. You +will receive the remedy elected by Microsoft without charge, except that you are responsible for +any expenses you may incur (e.g. cost of shipping the Software to Microsoft). This Limited +Warranty is void if failure of the Software has resulted from accident, abuse, misapplication, +  +abnormal use or a virus. Any replacement Software will be warranted for the remainder of the +original warranty period or thirty (30) days, whichever is longer, and Microsoft will use +commercially reasonable efforts to provide your remedy within a commercially reasonable time +of your compliance with Microsoft's warranty remedy procedures. Outside the United States or +Canada, neither these remedies nor any product support services offered by Microsoft are +available without proof of purchase from an authorized international source. To exercise your +remedy, contact: Microsoft, Attn. Microsoft Sales Information Center/One Microsoft +Way/Redmond, WA 98052-6399, or the Microsoft subsidiary serving your country. +    + +18. DISCLAIMER OF WARRANTIES. The Limited Warranty that appears above is the +only express warranty made to you and is provided in lieu of any other express warranties or +similar obligations (if any) created by any advertising, documentation, packaging, or other +communications. EXCEPT FOR THE LIMITED WARRANTY AND TO THE MAXIMUM +Everett VSPro 6 +Final 11.04.02 +EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND ITS SUPPLIERS +PROVIDE THE SOFTWARE AND SUPPORT SERVICES (IF ANY) AS IS AND WITH ALL +FAULTS, AND HEREBY DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS, +WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, +ANY (IF ANY) IMPLIED WARRANTIES, DUTIES OR CONDITIONS OF +MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF RELIABILITY +OR AVAILABILITY, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF +RESULTS, OF WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF +NEGLIGENCE, ALL WITH REGARD TO THE SOFTWARE, AND THE PROVISION OF OR +FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, INFORMATION, SOFTWARE, +AND RELATED CONTENT THROUGH THE SOFTWARE OR OTHERWISE ARISING +OUT OF THE USE OF THE SOFTWARE. ALSO, THERE IS NO WARRANTY OR +CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, +CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO +THE SOFTWARE. + +19. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER +DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO +EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, +INCIDENTAL, PUNITIVE, INDIRECT, OR CONSEQUENTIAL DAMAGES +WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF +PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS +INTERRUPTION, FOR PERSONAL INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO +MEET ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE, FOR +NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS WHATSOEVER) +ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE +THE SOFTWARE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR +OTHER SERVICES, INFORMATION, SOFTWARE, AND RELATED CONTENT +THROUGH THE SOFTWARE OR OTHERWISE ARISING OUT OF THE USE OF THE +SOFTWARE, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION +OF THIS EULA, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING +NEGLIGENCE), MISREPRESENTATION, STRICT LIABILITY, BREACH OF CONTRACT +OR BREACH OF WARRANTY OF MICROSOFT OR ANY SUPPLIER, AND EVEN IF +MICROSOFT OR ANY SUPPLIER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. +20. LIMITATION OF LIABILITY AND REMEDIES. NOTWITHSTANDING ANY +DAMAGES THAT YOU MIGHT INCUR FOR ANY REASON WHATSOEVER +(INCLUDING, WITHOUT LIMITATION, ALL DAMAGES REFERENCED HEREIN AND +ALL DIRECT OR GENERAL DAMAGES IN CONTRACT OR ANYTHING ELSE), THE +ENTIRE LIABILITY OF MICROSOFT AND ANY OF ITS SUPPLIERS UNDER ANY +PROVISION OF THIS EULA AND YOUR EXCLUSIVE REMEDY HEREUNDER (EXCEPT +FOR ANY REMEDY OF REPAIR OR REPLACEMENT ELECTED BY MICROSOFT WITH +RESPECT TO ANY BREACH OF THE LIMITED WARRANTY) SHALL BE LIMITED TO +THE GREATER OF THE ACTUAL DAMAGES YOU INCUR IN REASONABLE RELIANCE +ON THE SOFTWARE UP TO THE AMOUNT ACTUALLY PAID BY YOU FOR THE +SOFTWARE OR US$5.00. THE FOREGOING LIMITATIONS, EXCLUSIONS AND +DISCLAIMERS (INCLUDING SECTIONS 17, 18, AND 19) SHALL APPLY TO THE +MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS +ITS ESSENTIAL PURPOSE. +Everett VSPro 7 +Final 11.04.02 +21. U.S. GOVERNMENT LICENSE RIGHTS. All Software provided to the U.S. +Government pursuant to solicitations issued on or after December 1, 1995 is provided with the +commercial license rights and restrictions described elsewhere herein. All Software provided to +the U.S. Government pursuant to solicitations issued prior to December 1, 1995 is provided with +"Restricted Rights" as provided for in FAR, 48 CFR 52.227-14 (JUNE 1987) or DFAR, 48 CFR +252.227-7013 (OCT 1988), as applicable. +22. APPLICABLE LAW. If you acquired this Software in the United States, this EULA is +governed by the laws of the State of Washington. If you acquired this Software in Canada, +unless expressly prohibited by local law, this EULA is governed by the laws in force in the +Province of Ontario, Canada; and, in respect of any dispute which may arise hereunder, you +consent to the jurisdiction of the federal and provincial courts sitting in Toronto, Ontario. If you +acquired this Software in the European Union, Iceland, Norway, or Switzerland, then local law +applies. If you acquired this Software in any other country, then local law may apply. +23. ENTIRE AGREEMENT; SEVERABILITY. This EULA (including any addendum or +amendment to this EULA which is included with the Software) are the entire agreement +between you and Microsoft relating to the Software and the support services (if any) and they +supersede all prior or contemporaneous oral or written communications, proposals and +representations with respect to the Software or any other subject matter covered by this EULA. +To the extent the terms of any Microsoft policies or programs for support services conflict with +the terms of this EULA, the terms of this EULA shall control. If any provision of this EULA is +held to be void, invalid, unenforceable or illegal, the other provisions shall continue in full force +and effect. +Si vous avez acquis votre produit Microsoft au CANADA, la garantie limitée suivante +s'applique : + +GARANTIE LIMITÉE + +Sauf pur celles du "Redistributables," qui sont fournies "comme telles," Microsoft garantit que +le Logiciel fonctionnera conformément aux documents inclus pendant une période de 90 jours +suivant la date de réception. + +Si une garantie ou condition implicite est créée par votre État ou votre territoire et qu'une loifédérale ou provinciale ou d'un État en interdit le déni, vous jouissez également d'une +garantie ou condition implicite, MAIS UNIQUEMENT POUR LES DÉFAUTS DÉCOUVERTS +DURANT LA PÉRIODE DE LA PRÉSENTE GARANTIE LIMITÉE (QUATRE-VINGT-DIX +JOURS). IL N'Y A AUCUNE GARANTIE OU CONDITION DE QUELQUE NATURE QUECE SOIT QUANT AUX DÉFAUTS DÉCOUVERTS APRÈS CETTE PÉRIODE DE QUATRE- +VINGT-DIX JOURS. Certains États ou territoires ne permettent pas de limiter la durée d'une +garantie ou condition implicite de sorte que la limitation ci-dessus peut ne pas s'appliquer à +vous. + +Tous les suppléments ou toutes les mises à jour relatifs au Logiciel, notamment, les ensembles +de services ou les réparations à chaud (le cas échéant) qui vous sont fournis après l'expiration +de la période de quatre-vingt-dix jours de la garantie limitée ne sont pas couverts par quelque +garantie ou condition que ce soit, expresse, implicite ou en vertu de la loi. + +LIMITATION DES RECOURS; ABSENCE DE DOMMAGES INDIRECTS OU AUTRES. + +Votre recours exclusif pour toute violation de la présente garantie limitée est décrit ci-après. + +Sauf pour tout remboursement au choix de Microsoft, si le Logiciel ne respecte pas la + +Everett VSPro 8 +Final 11.04.02 + +garantie limitée de Microsoft et, dans la mesure maximale permise par les lois applicables, +même si tout recours n'atteint pas son but essentiel, VOUS N'AVEZ DROIT À AUCUNS +DOMMAGES, NOTAMMENT DES DOMMAGES INDIRECTS. Les termes de la +clause «Exclusion des dommages accessoires, indirects et de certains autres dommages » sontégalement intégrées à la présente garantie limitée. Certains États ou territoires ne permettent +pas l'exclusion ou la limitation des dommages indirects ou accessoires de sorte que la limitation +ou l'exclusion ci-dessus peut ne pas s'appliquer à vous. La présente garantie limitée vous donne +des droits légaux spécifiques. Vous pouvez avoir d'autres droits qui peuvent varier d'unterritoire ou d'un État à un autre. VOTRE RECOURS EXCLUSIF. La seule responsabilité +obligation de Microsoft et de ses fournisseurs et votre recours exclusif pour toute violation de +la présente garantie limitée ou pour toute autre violation du présent contrat ou pour toute autre +responsabilité relative au Logiciel seront, selon le choix de Microsoft exercé de temps à autre +sous réserve de toute loi applicable, a) le remboursement du prix payé, le cas échéant, pour le +Logiciel ou b) la réparation ou le remplacement du Logiciel qui ne respecte pas la présente +garantie limitée et qui est retourné à Microsoft avec une copie de votre reçu. Vous recevrez la +compensation choisie par Microsoft, sans frais, sauf que vous êtes responsable des dépenses que +vous pourriez engager (p. ex., les frais d'envoi du Logiciel à Microsoft). La présente garantie +limitée est nulle si la défectuosité du Logiciel est causée par un accident, un usage abusif, une +mauvaise application, un usage anormal ou un virus. Tout Logiciel de remplacement sera +garanti pour le reste de la période initiale de la garantie ou pendant trente (30) jours, selon la +plus longue entre ces deux périodes. À l'extérieur des États-Unis ou du Canada, ces recours ou +l'un quelconque des services de soutien technique offerts par Microsoft ne sont pas disponibles +sans preuve d'achat d'une source internationale autorisée. Pour exercer votre recours, vous +devez communiquer avec Microsoft et vous adresser au Microsoft Sales Information +Center/One Microsoft Way/Redmond, WA 98052-6399, ou à la filiale de Microsoft de votre +pays. + +DÉNI DE GARANTIES. La garantie limitée qui apparaît ci-dessus constitue la seule garantie +expresse qui vous est donnée et remplace toutes autres garanties expresses (s'il en est) crées par +une publicité, un document, un emballage ou une autre communication. SAUF EN CE QUI A +TRAIT À LA GARANTIE LIMITÉE ET DANS LA MESURE MAXIMALE PERMISE PAR +LES LOIS APPLICABLES, LE LOGICIEL ET LES SERVICES DE SOUTIEN TECHNIQUE +(LE CAS ÉCHÉANT) SONT FOURNIS TELS QUELS ET AVEC TOUS LES DÉFAUTS PAR +MICROSOFT ET SES FOURNISSEURS, LESQUELS PAR LES PRÉSENTES DÉNIENT +TOUTES AUTRES GARANTIES ET CONDITIONS EXPRESSES, IMPLICITES OU EN +VERTU DE LA LOI, NOTAMMENT, MAIS SANS LIMITATION, (LE CAS ÉCHÉANT) LESGARANTIES, DEVOIRS OU CONDITIONS IMPLICITES DE QUALITÉ MARCHANDE, +D'ADAPTATION À UNE FIN PARTICULIÈRE, DE FIABILITÉ OU DE DISPONIBILITÉ, +D'EXACTITUDE OU D'EXHAUSTIVITÉ DES RÉPONSES, DES RÉSULTATS, DES +EFFORTS DÉPLOYÉS SELON LES RÈGLES DE L'ART, D'ABSENCE DE VIRUS ET +D'ABSENCE DE NÉGLIGENCE, LE TOUT À L'ÉGARD DU LOGICIEL ET DE LA +PRESTATION OU DE L'OMISSION DE LA PRESTATION DES SERVICES DE SOUTIEN +TECHNIQUE OU À L'ÉGARD DE LA FOURNITURE OU DE L'OMISSION DE LA +FOURNITURE DE TOUS AUTRES SERVICES, RENSEIGNEMENTS, LOGICIELS, ET +CONTENU QUI S'Y RAPPORTE GRÂCE AU LOGICIEL OU PROVENANT AUTREMENT +DE L'UTILISATION DU LOGICIEL . PAR AILLEURS, IL N'Y A AUCUNE GARANTIE OU +CONDITION QUANT AU TITRE DE PROPRIÉTÉ, À LA JOUISSANCE OU LA +POSSESSION PAISIBLE, À LA CONCORDANCE À UNE DESCRIPTION NI QUANT À +UNE ABSENCE DE CONTREFAÇON CONCERNANT LE LOGICIEL. + +EXCLUSION DES DOMMAGES ACCESSOIRES, INDIRECTS ET DE CERTAINS AUTRES +DOMMAGES. DANS LA MESURE MAXIMALE PERMISE PAR LES LOIS APPLICABLES, +EN AUCUN CAS MICROSOFT OU SES FOURNISSEURS NE SERONT RESPONSABLES +DES DOMMAGES SPÉCIAUX, CONSÉCUTIFS, ACCESSOIRES OU INDIRECTS DE + +Everett VSPro 9 +Final 11.04.02 + +QUELQUE NATURE QUE CE SOIT (NOTAMMENT, LES DOMMAGES À L'ÉGARD DUMANQUE À GAGNER OU DE LA DIVULGATION DE RENSEIGNEMENTS +CONFIDENTIELS OU AUTRES, DE LA PERTE D'EXPLOITATION, DE BLESSURES +CORPORELLES, DE LA VIOLATION DE LA VIE PRIVÉE, DE L'OMISSION DE REMPLIR +TOUT DEVOIR, Y COMPRIS D'AGIR DE BONNE FOI OU D'EXERCER UN SOIN +RAISONNABLE, DE LA NÉGLIGENCE ET DE TOUTE AUTRE PERTE PÉCUNIAIRE OU +AUTRE PERTE DE QUELQUE NATURE QUE CE SOIT) SE RAPPORTANT DE QUELQUEMANIÈRE QUE CE SOIT À L'UTILISATION DU LOGICIEL OU À L'INCAPACITÉ DE +S'EN SERVIR, À LA PRESTATION OU À L'OMISSION DE LA PRESTATION DE +SERVICES DE SOUTIEN TECHNIQUE OU À LA FOURNITURE OU À L'OMISSION DE +LA FOURNITURE DE TOUS AUTRES SERVICES, RENSEIGNEMENTS, LOGICIELS, ET +CONTENU QUI S'Y RAPPORTE GRÂCE AU LOGICIEL OU PROVENANT AUTREMENT +DE L'UTILISATION DU LOGICIEL OU AUTREMENT AUX TERMES DE TOUTE +DISPOSITION DE LA PRÉSENTE CONVENTION OU RELATIVEMENT À UNE TELLE +DISPOSITION, MÊME EN CAS DE FAUTE, DE DÉLIT CIVIL (Y COMPRIS LANÉGLIGENCE), DE RESPONSABILITÉ STRICTE, DE VIOLATION DE CONTRAT OU DEVIOLATION DE GARANTIE DE MICROSOFT OU DE TOUT FOURNISSEUR ET MÊME +SI MICROSOFT OU TOUT FOURNISSEUR A ÉTÉ AVISÉ DE LA POSSIBILITÉ DE TELS +DOMMAGES. + +LIMITATION DE RESPONSABILITÉ ET RECOURS. MALGRÉ LES DOMMAGES QUE +VOUS PUISSIEZ SUBIR POUR QUELQUE MOTIF QUE CE SOIT (NOTAMMENT, MAISSANS LIMITATION, TOUS LES DOMMAGES SUSMENTIONNÉS ET TOUS LES +DOMMAGES DIRECTS OU GÉNÉRAUX OU AUTRES), LA SEULE RESPONSABILITÉ DE +MICROSOFT ET DE L'UN OU L'AUTRE DE SES FOURNISSEURS AUX TERMES DE +TOUTE DISPOSITION DE LA PRÉSENTE CONVENTION ET VOTRE RECOURS +EXCLUSIF À L'ÉGARD DE TOUT CE QUI PRÉCÈDE (SAUF EN CE QUI CONCERNETOUT RECOURS DE RÉPARATION OU DE REMPLACEMENT CHOISI PAR +MICROSOFT À L'ÉGARD DE TOUT MANQUEMENT À LA GARANTIE LIMITÉE) SELIMITE AU PLUS ÉLEVÉ ENTRE LES MONTANTS SUIVANTS : LE MONTANT QUE +VOUS AVEZ RÉELLEMENT PAYÉ POUR LE LOGICIEL OU 5,00 $US. LES LIMITES, +EXCLUSIONS ET DÉNIS QUI PRÉCÈDENT (Y COMPRIS LES CLAUSES CI-DESSUS), +S'APPLIQUENT DANS LA MESURE MAXIMALE PERMISE PAR LES LOIS +APPLICABLES, MÊME SI TOUT RECOURS N'ATTEINT PAS SON BUT ESSENTIEL. + +À moins que cela ne soit prohibé par le droit local applicable, la présente Convention est régie +par les lois de la province d'Ontario, Canada. Vous consentez à la compétence des tribunaux +fédéraux et provinciaux siégeant à Toronto, dans la province d'Ontario. + +Au cas où vous auriez des questions concernant cette licence ou que vous désiriez vous mettre +en rapport avec Microsoft pour quelque raison que ce soit, veuillez utiliser l'information +contenue dans le Logiciel pour contacter la filiale de Microsoft desservant votre pays, ou visitez +Microsoft sur le World Wide Web à http://www.microsoft.com. + +The following MICROSOFT GUARANTEE applies to you if you acquired this Software in +any other country: + +Statutory rights not affected -The following guarantee is not restricted to any territory and does +not affect any statutory rights that you may have from your reseller or from Microsoft if you +acquired the Software directly from Microsoft. If you acquired the Software or any support +services in Australia, New Zealand or Malaysia, please see the "Consumer rights" section +below. + +Everett VSPro 10 +Final 11.04.02 + +The guarantee -The Software is designed and offered as a general-purpose software, not for any +user's particular purpose. You accept that no Software is error free and you are strongly +advised to back-up your files regularly. Provided that you have a valid license, Microsoft +guarantees that a) for a period of 90 days from the date of receipt of your license to use the +Software or the shortest period permitted by applicable law it will perform substantially in +accordance with the written materials that accompany the Software; and b) any support services +provided by Microsoft shall be substantially as described in applicable written materials +provided to you by Microsoft and Microsoft support engineers will use reasonable efforts, care +and skill to solve any problem issues. In the event that the Software fails to comply with this +guarantee, Microsoft will either (a) repair or replace the Software or (b) return the price you +paid. This guarantee is void if failure of the Software results from accident, abuse or +misapplication. Any replacement Software will be guaranteed for the remainder of the original +guarantee period or 30 days, whichever period is longer. You agree that the above guarantee is +your sole guarantee in relation to the Software and any support services. + +Exclusion of All Other Terms -To the maximum extent permitted by applicable law and subject to +the guarantee above, Microsoft disclaims all warranties, conditions and other terms, either +express or implied (whether by statute, common law, collaterally or otherwise) including but +not limited to implied warranties of satisfactory quality and fitness for particular purpose with +respect to the Software and the written materials that accompany the Software. Any implied +warranties that cannot be excluded are limited to 90 days or to the shortest period permitted by +applicable law, whichever is greater. + +Limitation of Liability -To the maximum extent permitted by applicable law and except as +provided in the Microsoft Guarantee, Microsoft and its suppliers shall not be liable for any +damages whatsoever (including without limitation, damages for loss of business profits, +business interruption, loss of business information or other pecuniary loss) arising out of the +use or inability to use the Software, even if Microsoft has been advised of the possibility of such +damages. In any case Microsoft's entire liability under any provision of this Agreement shall be +limited to the amount actually paid by you for the Software. These limitations do not apply to +any liabilities that cannot be excluded or limited by applicable laws. + +Consumer rights -Consumers in Australia, New Zealand or Malaysia may have the benefit of +certain rights and remedies by reason of the Trade Practices Act and similar state and territory +laws in Australia, the Consumer Guarantees Act in New Zealand and the Consumer Protection +Act in Malaysia in respect of which liability cannot lawfully be modified or excluded. If you +acquired the Software in New Zealand for the purposes of a business, you confirm that the +Consumer Guarantees Act does not apply. If you acquired the Software in Australia and if +Microsoft breaches a condition or warranty implied under any law which cannot lawfully be +modified or excluded by this agreement then, to the extent permitted by law, Microsoft's +liability is limited, at Microsoft's option, to: (i) in the case of the Software: a) repairing or +replacing the Software; or b) the cost of such repair or replacement; and (ii) in the case of +support services: a) re-supply of the services; or b) the cost of having the services supplied +again. + +Everett VSPro 11 +Final 11.04.02 + +Should you have any questions concerning this EULA, or if you desire to contact Microsoft for +any reason, please use the address information enclosed in this Software to contact the +Microsoft subsidiary serving your country or visit Microsoft on the World Wide Web at +http://www.microsoft.com. + +Everett VSPro 12 +Final 11.04.02 + +%% The following software may be included in this product: zlib; Use of any of this software is governed by the terms of the license below: + +zlib.h -- interface of the 'zlib' general purpose compression library + version 1.1.3, July 9th, 1998 + + Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format + + +%% The following software may be included in this product: Mozilla Rhino. Use of any of this software is governed by the terms of the license below: + + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Rhino code, released + * May 6, 1999. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1997-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + * Kemal Bayram + * Patrick Beard + * Norris Boyd + * Igor Bukanov, igor@mir2.org + * Brendan Eich + * Ethan Hugg + * Roger Lawrence + * Terry Lucas + * Mike McCabe + * Milen Nankov + * Attila Szegedi, szegedia@freemail.hu + * Ian D. Stewart + * Andi Vajda + * Andrew Wason + */ + +%% The following software may be included in this product: Apache Derby. Use of any of this software is governed by the terms of the license below: + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +%% The following software may be included in this product: 7-Zip. Use of any of this software is governed by the terms of the license below: + + ~~~~~ + License for use and distribution + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + 7-Zip Copyright (C) 1999-2007 Igor Pavlov. + + Licenses for files are: + + 1) 7z.dll: GNU LGPL + AES code license + unRAR restriction + 2) 7za.exe, 7z.sfx and 7zCon.sfx: GNU LGPL + AES code license + 3) All other files: GNU LGPL + + The GNU LGPL + AES code license + unRAR restriction means that you must follow + GNU LGPL rules, AES code license rules and unRAR restriction rules. + + The GNU LGPL + AES code license means that you must follow both GNU LGPL rules + and AES code license rules. + + + Note: + You can use 7-Zip on any computer, including a computer in a commercial + organization. You don't need to register or pay for 7-Zip. + + + GNU LGPL information + -------------------- + +GNU Lesser General Public License + +Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + [This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + +Preamble + +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. + +This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. + +When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. + +To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. + +For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. + +We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. + +To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. + +Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. + +Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. + +When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. + +We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. + +For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. + +In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. + +Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. + +The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". + +A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. + +The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) + +"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. + +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. + +1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. + +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. + + (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) + + These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. + + In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. + +3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. + +Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. + +This option is useful when you wish to copy part of the code of the Library into a program that is not a library. + +4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. + +If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. + +5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. + +However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. + +When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. + +If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) + +Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. + +6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. + +You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: + + a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. + + e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. + +For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. + +It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. + +7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. + + b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. + +8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. + +9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. + +10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. + +11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. + +12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. + +13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. + +14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +END OF TERMS AND CONDITIONS +How to Apply These Terms to Your New Libraries + +If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). + +To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in + the library `Frob' (a library for tweaking knobs) written + by James Random Hacker. + + signature of Ty Coon, 1 April 1990 + + Ty Coon, President of Vice + +That's all there is to it! + + + unRAR restriction + ----------------- + + The unRAR sources cannot be used to re-create the RAR compression +algorithm, + which is proprietary. Distribution of modified unRAR sources in separate +form + or as a part of other software is permitted, provided that it is clearly + stated in the documentation and source comments that the code may + not be used to develop a RAR (WinRAR) compatible archiver. + + + AES code license + ---------------- + + Copyright (c) 2001, Dr Brian Gladman + + LICENSE TERMS + + The free distribution and use of this software in both source and binary + form is allowed (with or without changes) provided that: + + 1. distributions of this source code include the above copyright + notice, this list of conditions and the following disclaimer; + + 2. distributions in binary form include the above copyright + notice, this list of conditions and the following disclaimer + in the documentation and/or other associated materials; + + 3. the copyright holder's name is not used to endorse products + built using this software without specific written permission. + + DISCLAIMER + + This software is provided 'as is' with no explicit or implied warranties + in respect of its properties, including, but not limited to, correctness + and fitness for purpose. + + +*************************************************************************** + +%%The following software may be included in this product: +UPX + +Use of any of this software is governed by the terms of the license below: + +-----BEGIN PGP SIGNED MESSAGE----- + + + ooooo ooo ooooooooo. ooooooo ooooo + `888' `8' `888 `Y88. `8888 d8' + 888 8 888 .d88' Y888..8P + 888 8 888ooo88P' `8888' + 888 8 888 .8PY888. + `88. .8' 888 d8' `888b + `YbodP' o888o o888o o88888o + + + The Ultimate Packer for eXecutables + Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar + http://wildsau.idv.uni-linz.ac.at/mfx/upx.html + http://www.nexus.hu/upx + http://upx.tsx.org + + +PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN +TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION. + + +ABSTRACT +======== + + UPX and UCL are copyrighted software distributed under the terms + of the GNU General Public License (hereinafter the "GPL"). + + The stub which is imbedded in each UPX compressed program is part + of UPX and UCL, and contains code that is under our copyright. The + terms of the GNU General Public License still apply as compressing + a program is a special form of linking with our stub. + + As a special exception we grant the free usage of UPX for all + executables, including commercial programs. + See below for details and restrictions. + + +COPYRIGHT +========= + + UPX and UCL are copyrighted software. All rights remain with the authors. + + UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer + UPX is Copyright (C) 1996-2000 Laszlo Molnar + + UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer + + +GNU GENERAL PUBLIC LICENSE +========================== + + UPX and the UCL library are free software; you can redistribute them + and/or modify them under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + UPX and UCL are distributed in the hope that they will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. + + +SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES +============================================ + + The stub which is imbedded in each UPX compressed program is part + of UPX and UCL, and contains code that is under our copyright. The + terms of the GNU General Public License still apply as compressing + a program is a special form of linking with our stub. + + Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special + permission to freely use and distribute all UPX compressed programs + (including commercial ones), subject to the following restrictions: + + 1. You must compress your program with a completely unmodified UPX + version; either with our precompiled version, or (at your option) + with a self compiled version of the unmodified UPX sources as + distributed by us. + 2. This also implies that the UPX stub must be completely unmodfied, i.e. + the stub imbedded in your compressed program must be byte-identical + to the stub that is produced by the official unmodified UPX version. + 3. The decompressor and any other code from the stub must exclusively get + used by the unmodified UPX stub for decompressing your program at + program startup. No portion of the stub may get read, copied, + called or otherwise get used or accessed by your program. + + +ANNOTATIONS +=========== + + - You can use a modified UPX version or modified UPX stub only for + programs that are compatible with the GNU General Public License. + + - We grant you special permission to freely use and distribute all UPX + compressed programs. But any modification of the UPX stub (such as, + but not limited to, removing our copyright string or making your + program non-decompressible) will immediately revoke your right to + use and distribute a UPX compressed program. + + - UPX is not a software protection tool; by requiring that you use + the unmodified UPX version for your proprietary programs we + make sure that any user can decompress your program. This protects + both you and your users as nobody can hide malicious code - + any program that cannot be decompressed is highly suspicious + by definition. + + - You can integrate all or part of UPX and UCL into projects that + are compatible with the GNU GPL, but obviously you cannot grant + any special exceptions beyond the GPL for our code in your project. + + - We want to actively support manufacturers of virus scanners and + similar security software. Please contact us if you would like to + incorporate parts of UPX or UCL into such a product. + + + +Markus F.X.J. Oberhumer Laszlo Molnar +markus.oberhumer@jk.uni-linz.ac.at ml1050@cdata.tvnet.hu + +Linz, Austria, 25 Feb 2000 + +Additional License(s) + +The UPX license file is at http://upx.sourceforge.net/upx-license.html. + +*************************************************************************** + +%%The following software may be included in this product: +LZMA Software Development Kit + +Use of any of this software is governed by the terms of the license below: + +License + +LZMA SDK is available under any of the following licenses: + + 1. GNU Lesser General Public License (GNU LGPL) + 2. Common Public License (CPL) + 3. Simplified license for unmodified code (read SPECIAL EXCEPTION) + 4. Proprietary license + +This means that you can select one of these four options and follow rules of that license. + +SPECIAL EXCEPTION: Igor Pavlov, as the author of this code, expressly permit you statically or dynamically to link your code (or bind by name) to the files from LZMA SDK without subjecting your linked code to the terms of the CPL or GNU LGPL. Any modification or addition to any file in the LZMA SDK, however, is subject to the GNU LGPL or CPL terms. + +This SPECIAL EXCEPTION allows you to use LZMA SDK in applications with proprietary code, provided you keep the LZMA SDK code unmodified. + +SPECIAL EXCEPTION #2: Igor Pavlov, as the author of this code, expressly permits you to use LZMA SDK 4.43 under the same terms and conditions contained in the License Agreement you have for any previous version of LZMA SDK developed by Igor Pavlov. + +SPECIAL EXCEPTION #2 allows holders of proprietary licenses to use latest version of LZMA SDK as update for previous versions. + +GNU LGPL and CPL are pretty similar and both these licenses are classified as free software licenses at http://www.gnu.org/ and OSI-approved at http://www.opensource.org/. + +LZMA SDK also is available under a proprietary license which can include: + + 1. The right to modify code from the LZMA SDK without subjecting the modified code to the terms of the CPL or GNU LGPL + 2. Technical support for LZMA SDK via email + +To request such a proprietary license, or for any additional consultations, send an email message, using the 7-Zip support page: Send message to LZMA developer + +The source code of 7-Zip is released under the terms of the GNU LGPL. You can download the source code of 7-Zip at 7-Zip's Source Forge Page + +Additional License(s) + +The license included with the software differs slightly from the version posted on the website. Specifically it includes SPECIAL EXCEPTION #3, which is not present in the license on the website. The license from the software archive follows: + +LICENSE +------- + +LZMA SDK is available under any of the following licenses: + +1) GNU Lesser General Public License (GNU LGPL) +2) Common Public License (CPL) +3) Simplified license for unmodified code (read SPECIAL EXCEPTION) +4) Proprietary license + +It means that you can select one of these four options and follow rules of that license. + + +1,2) GNU LGPL and CPL licenses are pretty similar and both these licenses are classified as + - "Free software licenses" at http://www.gnu.org/ + - "OSI-approved" at http://www.opensource.org/ + + +3) SPECIAL EXCEPTION + +Igor Pavlov, as the author of this code, expressly permits you to statically or dynamically link your code (or bind by name) to the files from LZMA SDK without subjecting your linked code to the terms of the CPL or GNU LGPL. Any modifications or additions to files from LZMA SDK, however, +are subject to the GNU LGPL or CPL terms. + +SPECIAL EXCEPTION allows you to use LZMA SDK in applications with +closed code, +while you keep LZMA SDK code unmodified. + + +SPECIAL EXCEPTION #2: Igor Pavlov, as the author of this code, expressly permits you to use this code under the same terms and conditions contained in the License Agreement you have for any previous version of LZMA SDK developed by Igor Pavlov. + +SPECIAL EXCEPTION #2 allows owners of proprietary licenses to use latest version of LZMA SDK as update for previous versions. + + +SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits you to use code of the following files: BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp, LzmaAlone.cs, LzmaAlone.java as public domain code. + + +4) Proprietary license + +LZMA SDK also can be available under a proprietary license which +can include: + +1) Right to modify code without subjecting modified code to the terms of the CPL or GNU LGPL +2) Technical support for code + +To request such proprietary license or any additional consultations, send email message from that page:http://www.7-zip.org/support.html + + +You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +You should have received a copy of the Common Public License along with this library. + +*************************************************************************** + +%%The following software may be included in this product: +Active Template Library (ATL) + +Use of any of this software is governed by the terms of the license below: + +(note: search for "ATL") + +Visual Studio 2005 EULA + MICROSOFT SOFTWARE LICENSE TERMS +MICROSOFT VISUAL STUDIO 2005 PROFESSIONAL EDITION + +These license terms are an agreement between Microsoft Corporation (or based on +where you live, one of its affiliates) and you. Please read them. They apply +to the software named above, which includes the media on which you received it, +if any. The terms also apply to any Microsoft + • updates, + • supplements, + • Internet-based services, and + • support services +for this software, unless other terms accompany those items. If so, those terms +apply. + +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO +NOT USE THE SOFTWARE. INSTEAD, RETURN IT TO THE RETAILER FOR A REFUND OR +CREDIT. If you cannot obtain a refund there, contact Microsoft or the Microsoft +affiliate serving your country for information about Microsoft’s refund +policies. See www.microsoft.com/worldwide. In the United States and Canada, +call (800) MICROSOFT or see www.microsoft.com/info/nareturns.htm. +AS DESCRIBED BELOW, USING SOME FEATURES ALSO OPERATES AS YOUR CONSENT TO THE +TRANSMISSION OF CERTAIN STANDARD COMPUTER INFORMATION FOR INTERNET-BASED SERVICES. + +NOTICE: APPLICATIONS AND SERVICES BUILT WITH MICROSOFT VISUAL J# 2005 WILL RUN +ONLY IN THE MICROSOFT .NET FRAMEWORK. VISUAL J# 2005 HAS BEEN INDEPENDENTLY +DEVELOPED BY MICROSOFT. IT IS NOT ENDORSED OR APPROVED BY SUN MICROSYSTEMS, INC. +------------------------------ +IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW FOR EACH +LICENSE YOU ACQUIRE. + +1. OVERVIEW. + +a. Software. The software includes development tools, software programs and +documentation. + +b. License Model. The software is licensed on a per user basis. + +2. INSTALLATION AND USE RIGHTS. + +a. General. One user may install and use copies of the software to design, +develop, test and demonstrate your programs. Testing does not include staging +on a server in a production environment, such as loading content prior to +production use. + +b. Included Microsoft Programs. These license terms apply to all Microsoft +programs included with the software. If the license terms with any of those +programs give you other rights that do not expressly conflict with these license +terms, you also have those rights. + +c. Third Party Programs. The software contains third party programs. The +license terms with those programs apply to your use of them. + +3. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. + +a. User Testing. Your end users may access the software to perform acceptance +tests on your programs. + +b. Distributable Code. The software contains code that you are permitted to +distribute in programs you develop if you comply with the terms below. + +i. Right to Use and Distribute. The code and text files listed below are +“Distributable Code.” + • REDIST.TXT Files. You may copy and distribute the object code form of code +listed in REDIST.TXT files. + • Sample Code. You may modify, copy, and distribute the source and object +code form of code marked as “sample.” + • Microsoft Merge Modules. You may copy and distribute the unmodified output +of Microsoft Merge Modules. + • MFCs, ATLs and CRTs. You may modify the source code form of Microsoft +Foundation Classes (MFCs), Active Template Libraries (ATLs), and C runtimes +(CRTs) to design, develop and test your programs, and copy and distribute the +object code form of your modified files under a new name. + • MDAC. You may copy and distribute the object code form of the MDAC_TYP.EXE +file. + • Image Library. You may copy and distribute images and animations in the +Image Library as described in the software documentation. You may also modify +that content. If you modify the content, it must be for use that is consistent +with the permitted use of the unmodified content. + • Third Party Distribution. You may permit distributors of your programs to +copy and distribute the Distributable Code as part of those programs. + +ii. Distribution Requirements. For any Distributable Code you distribute, you must + • add significant primary functionality to it in your programs; + • require distributors and external end users to agree to terms that protect +it at least as much as this agreement; + • display your valid copyright notice on your programs; and + • indemnify, defend, and hold harmless Microsoft from any claims, including +attorneys’ fees, related to the distribution or use of your programs. + +iii. Distribution Restrictions. You may not + • alter any copyright, trademark or patent notice in the Distributable Code; + • use Microsoft’s trademarks in your programs’ names or in a way that suggests +your programs come from or are endorsed by Microsoft; + • distribute Distributable Code, other than code listed in OTHER-DIST.TXT +files, to run on a platform other than the Windows platform; + • include Distributable Code in malicious, deceptive or unlawful programs; or + • modify or distribute the source code of any Distributable Code so that any +part of it becomes subject to an Excluded License. An Excluded License is one +that requires, as a condition of use, modification or distribution, that + • the code be disclosed or distributed in source code form; or + • others have the right to modify it. + +c. Additional Functionality. Microsoft may provide additional functionality for +the software. Other license terms and fees may apply. + +4. INTERNET-BASED SERVICES. Microsoft provides Internet-based services with the +software. It may change or cancel them at any time. + +a. Consent for Internet-Based Services. The software feature described below +connects to Microsoft or service provider computer systems over the Internet. +In some cases, you will not receive a separate notice when they connect. You +may switch off this feature or not use it. For more information about this +feature, see the software documentation. BY USING THIS FEATURE, YOU CONSENT TO +THE TRANSMISSION OF THIS INFORMATION. Microsoft does not use the information to +identify or contact you. + +Computer Information. The following feature uses Internet protocols, which send +to the appropriate systems computer information, such as your Internet protocol +address, the type of operating system, browser and name and version of the +software you are using, and the language code of the device where you installed +the software. Microsoft uses this information to make the Internet-based +service available to you. + • Digital Certificates. The software uses digital certificates. These +digital certificates confirm the identity of Internet users sending X.509 +standard encrypted information. The software retrieves certificates and updates +certificate revocation lists. These security features operate only when you use +the Internet. + +b. Misuse of Internet-based Services. You may not use this service in any way +that could harm it or impair anyone else’s use of it. You may not use the +service to try to gain unauthorized access to any service, data, account or +network by any means. + +5. TIME-SENSITIVE SOFTWARE. If the version of the software is a trial version, +the software will stop running either ninety days or one hundred eighty days +after you install it, depending on the trial version you have. You will receive +notice before it stops running. You may not be able to access data used with +the software when it stops running. + +6. PRODUCT KEYS. The software requires a key to install or access it. You are +responsible for the use of keys assigned to you. You should not share the keys +with third parties. + +7. MICROSOFT WINDOWS SOFTWARE. The software contains the Microsoft .NET +Framework 2.0 and Microsoft Data Access Component 2.8 SP1 software. These +software are part of Windows. The license terms for Windows apply to your use +of the .NET Framework 2.0 and Microsoft Data Access Component software. + +8. SQL SERVER BENCHMARK TESTING. You must obtain Microsoft’s prior written +approval to disclose to a third party the results of any benchmark test of the +SQL Server software that accompanies this software. + +9. MICROSOFT .NET FRAMEWORK BENCHMARK TESTING. The software includes the .NET +Framework component of the Windows operating systems (“.NET Component”). You +may conduct internal benchmark testing of the .NET Component. You may disclose +the results of any benchmark test of the .NET Component, provided that you +comply with the following terms: (1) you must disclose all the information +necessary for replication of the tests, including complete and accurate details +of your benchmark testing methodology, the test scripts/cases, tuning +parameters applied, hardware and software platforms tested, the name and version +number of any third party testing tool used to conduct the testing, and complete +source code for the benchmark suite/harness that is developed by or for you and +used to test both the .NET Component and the competing implementation(s); (2) +you must disclose the date (s) that you conducted the benchmark tests, along +with specific version information for all Microsoft software products tested, +including the .NET Component; (3) your benchmark testing was performed using all +performance tuning and best practice guidance set forth in the product +documentation and/or on Microsoft’s support web sites, and uses the latest +updates, patches and fixes available for the .NET Component and the relevant +Microsoft operating system; (4) it shall be sufficient if you make the +disclosures provided for above at a publicly available location such as a +website, so long as every public disclosure of the results of your benchmark +test expressly identifies the public site containing all required disclosures; +and (5) nothing in this provision shall be deemed to waive any other right that +you may have to conduct benchmark testing. The foregoing obligations shall not +apply to your disclosure of the results of any customized benchmark test of the +.NET Component, whereby such disclosure is made under confidentiality in +conjunction with a bid request by a prospective customer, such customer’s +application(s) are specifically tested and the results are only disclosed to +such specific customer. Notwithstanding any other agreement you may have with +Microsoft, if you disclose such benchmark test results, Microsoft shall have the +right to disclose the results of benchmark tests it conducts of your products +that compete with the .NET Component, provided it complies with the same +conditions above. + +10. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only +gives you some rights to use the software. Microsoft reserves all other rights. + Unless applicable law gives you more rights despite this limitation, you may +use the software only as expressly permitted in this agreement. In doing so, +you must comply with any technical limitations in the software that only allow +you to use it in certain ways. For more information, see +www.microsoft.com/licensing/userights. You may not + • work around any technical limitations in the software; + • reverse engineer, decompile or disassemble the software, except and only to +the extent that applicable law expressly permits, despite this limitation; + • make more copies of the software than specified in this agreement or allowed +by applicable law, despite this limitation; + • publish the software for others to copy; + • rent, lease or lend the software; or + • use the software for commercial software hosting services. + +11. BACKUP COPY. You may make one backup copy of the software. You may use it +only to reinstall the software. + +12. DOCUMENTATION. Any person that has valid access to your computer or +internal network may copy and use the documentation for your internal, reference +purposes. + +13. NOT FOR RESALE SOFTWARE. You may not sell software marked as “NFR” or “Not +for Resale.” + +14. ACADEMIC EDITION SOFTWARE. You must be a “Qualified Educational User” to +use software marked as “Academic Edition” or “AE.” If you do not know whether +you are a Qualified Educational User, visit www.microsoft.com/education or +contact the Microsoft affiliate serving your country. + +15. UPGRADE. If this software is marked as an upgrade version, you may use it +only if you have a license to use the software eligible for upgrade. If you +upgrade, this software takes the place of the earlier version, and this +agreement takes the place of the agreement for that earlier version. You may +use the earlier version only as permitted in the Downgrade clause below. + +16. DOWNGRADE. You may install and use this version and an earlier version of +the software at the same time. This agreement applies to your use of the +earlier version. If the earlier version includes different components, any + +terms for those components in the agreement that comes with the earlier version +apply to your use of them. Microsoft is not obligated to supply earlier +versions to you. + +17. TRANSFER TO A THIRD PARTY. The first user of the software may transfer it, +and this agreement, directly to a third party. Before the transfer, that party +must agree that this agreement applies to the transfer and use of the software. + The first user must uninstall the software before transferring it separately +from the device. The first user may not retain any copies. + +18. EXPORT RESTRICTIONS. The software is subject to United States export laws +and regulations. You must comply with all domestic and international export +laws and regulations that apply to the software. These laws include +restrictions on destinations, end users and end use. For additional +information, see www.microsoft.com/exporting. + +19. SUPPORT SERVICES. Microsoft provides support services for the software as +described at www.support.microsoft.com/common/international.aspx. + +20. ENTIRE AGREEMENT. This agreement (including the warranty below), and the +terms for supplements, updates, Internet-based services and support services +that you use, are the entire agreement for the software and support services. + +21. APPLICABLE LAW. + +a. United States. If you acquired the software in the United States, Washington +state law governs the interpretation of this agreement and applies to claims for +breach of it, regardless of conflict of laws principles. The laws of the state +where you live govern all other claims, including claims under state consumer +protection laws, unfair competition laws, and in tort. + +b. Outside the United States. If you acquired the software in any other +country, the laws of that country apply. + +22. LEGAL EFFECT. This agreement describes certain legal rights. You may have +other rights under the laws of your state or country. You may also have rights +with respect to the party from whom you acquired the software. This agreement +does not change your rights under the laws of your state or country if the laws +of your state or country do not permit it to do so. + +23. LIMITATION ON AND EXCLUSION OF DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND +ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO THE AMOUNT YOU PAID FOR THE SOFTWARE. +YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, +SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. +This limitation applies to + • anything related to the software, services, content (including code) on +third party Internet sites, or third party programs; and + • claims for breach of contract, breach of warranty, guarantee or condition, +strict liability, negligence, or other tort to the extent permitted by +applicable law. + +It also applies even if + • repair, replacement or a refund for the software does not fully compensate +you for any losses; or + • Microsoft knew or should have known about the possibility of the damages. + +Some states do not allow the exclusion or limitation of incidental or +consequential damages, so the above limitation or exclusion may not apply to +you. They also may not apply to you because your country may not allow the +exclusion or limitation of incidental, consequential or other damages. + +************************************************************************************** +LIMITED WARRANTY +A. LIMITED WARRANTY. If you follow the instructions, the software will perform +substantially as described in the Microsoft materials that you receive in or +with the software. + +B. TERM OF WARRANTY; WARRANTY RECIPIENT; LENGTH OF ANY IMPLIED WARRANTIES. THE +LIMITED WARRANTY COVERS THE SOFTWARE FOR ONE YEAR AFTER ACQUIRED BY THE FIRST +USER. IF YOU RECEIVE SUPPLEMENTS, UPDATES, OR REPLACEMENT SOFTWARE DURING THAT +YEAR, THEY WILL BE COVERED FOR THE REMAINDER OF THE WARRANTY OR 30 DAYS, +WHICHEVER IS LONGER. If the first user transfers the software, the remainder of +the warranty will apply to the recipient. +TO THE EXTENT PERMITTED BY LAW, ANY IMPLIED WARRANTIES, GUARANTEES OR CONDITIONS +LAST ONLY DURING THE TERM OF THE LIMITED WARRANTY. Some states do not allow +limitations on how long an implied warranty lasts, so these limitations may not +apply to you. They also might not apply to you because some countries may not +allow limitations on how long an implied warranty, guarantee or condition lasts. + +C. EXCLUSIONS FROM WARRANTY. This warranty does not cover problems caused by +your acts (or failures to act), the acts of others, or events beyond Microsoft’s +reasonable control. + +D. REMEDY FOR BREACH OF WARRANTY. MICROSOFT WILL REPAIR OR REPLACE THE SOFTWARE +AT NO CHARGE. IF MICROSOFT CANNOT REPAIR OR REPLACE IT, MICROSOFT WILL REFUND +THE AMOUNT SHOWN ON YOUR RECEIPT FOR THE SOFTWARE. IT WILL ALSO REPAIR OR +REPLACE SUPPLEMENTS, UPDATES AND REPLACEMENT SOFTWARE AT NO CHARGE. IF +MICROSOFT CANNOT REPAIR OR REPLACE THEM, IT WILL REFUND THE AMOUNT YOU PAID FOR +THEM, IF ANY. YOU MUST UNINSTALL THE SOFTWARE AND RETURN ANY MEDIA AND OTHER +ASSOCIATED MATERIALS TO MICROSOFT WITH PROOF OF PURCHASE TO OBTAIN A REFUND. +THESE ARE YOUR ONLY REMEDIES FOR BREACH OF THE LIMITED WARRANTY. + +E. CONSUMER RIGHTS NOT AFFECTED. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER +YOUR LOCAL LAWS, WHICH THIS AGREEMENT CANNOT CHANGE. + +F. WARRANTY PROCEDURES. You need proof of purchase for warranty service. + +1. United States and Canada. For warranty service or information about how to +obtain a refund for software acquired in the United States and Canada, contact +Microsoft at + • (800) MICROSOFT; + • Microsoft Customer Service and Support, One Microsoft Way, Redmond, WA +98052-6399; or + • visit www.microsoft.com/info/nareturns.htm. + +2. Europe, Middle East and Africa. If you acquired the software in Europe, the +Middle East or Africa, Microsoft Ireland Operations Limited makes this limited +warranty. To make a claim under this warranty, you should contact either + • Microsoft Ireland Operations Limited, Customer Care Centre, Atrium Building +Block B, Carmanhall Road, Sandyford Industrial Estate, Dublin 18, Ireland; or + • the Microsoft affiliate serving your country (see www.microsoft.com/worldwide). + +3. Outside United States, Canada, Europe, Middle East and Africa. If you +acquired the software outside the United States, Canada, Europe, the Middle East +and Africa, contact the Microsoft affiliate serving your country (see +www.microsoft.com/worldwide). + +G. NO OTHER WARRANTIES. THE LIMITED WARRANTY IS THE ONLY DIRECT WARRANTY FROM +MICROSOFT. MICROSOFT GIVES NO OTHER EXPRESS WARRANTIES, GUARANTEES OR +CONDITIONS. WHERE ALLOWED BY YOUR LOCAL LAWS, MICROSOFT EXCLUDES IMPLIED +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT. If your local laws give you any implied warranties, +guarantees or conditions, despite this exclusion, your remedies are described in +the Remedy for Breach of Warranty clause above, to the extent permitted by your +local laws. + +H. LIMITATION ON AND EXCLUSION OF DAMAGES FOR BREACH OF WARRANTY. THE +LIMITATION ON AND EXCLUSION OF DAMAGES CLAUSE ABOVE APPLIES TO BREACHES OF THIS +LIMITED WARRANTY. + +THIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS, AND YOU MAY ALSO HAVE OTHER +RIGHTS WHICH VARY FROM STATE TO STATE. YOU MAY ALSO HAVE OTHER RIGHTS WHICH +VARY FROM COUNTRY TO COUNTRY. + +Please note: As this software is distributed in Quebec, Canada, some of the +clauses in this agreement are provided below in French. + +Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses +dans ce contrat sont fournies ci-dessous en français. + +GARANTIE LIMITÉE + +A. GARANTIE LIMITÉE. Si vous suivez les instructions, le logiciel fonctionnera +dans son ensemble comme il est décrit dans la documentation de Microsoft reçue +avec ou dans le logiciel. + +B. DURÉE DE LA GARANTIE ; BÉNÉFICIAIRE DE LA GARANTIE ; DURÉE DE TOUTE GARANTIE +IMPLICITE. La garantie limitée couvre le logiciel pendant un an après son +acquisition par le premier utilisateur. Si vous recevez des compléments, des +mises à jour ou un logiciel de remplacement au cours de cette année, ils seront +couverts par la garantie pendant la durée restante ou pendant 30 jours, la +période la plus longue étant retenue. Si le premier utilisateur transfère le +logiciel, la durée restante de la garantie s’applique au destinataire. +Dans la limite autorisée par la loi en vigueur, toute garantie ou condition +implicite dont vous bénéficiez prendra fin au terme de la garantie limitée. +Certains États n’autorisent pas les limitations portant sur la durée d’une +garantie implicite, de sorte que les limitations ci-dessus peuvent ne pas vous +être applicables. Elles peuvent également ne pas vous être applicables, car +certains pays n’autorisent pas les limitations portant sur la durée d’une +garantie ou condition implicite. + +C. EXCLUSIONS DE LA GARANTIE. Cette garantie ne couvre pas les problèmes +engendrés par vos propres actes (ou absences d’actes), ceux de tiers ou tout +autre événement indépendant de la volonté de Microsoft. + +D. RECOURS DANS LE CADRE DE LA VIOLATION DE GARANTIE. Nous nous engageons à +réparer ou à remplacer le logiciel gratuitement. Si nous ne pouvons pas le +réparer ni le remplacer, nous rembourserons le montant que vous avez payé pour +le logiciel figurant sur le reçu. Nous nous engageons à réparer ou à remplacer +les compléments, les mises à jour et le logiciel de remplacement gratuitement. +Si nous ne pouvons pas les réparer ni les remplacer, nous rembourserons le +montant que vous avez payé pour ces composants, le cas échéant. Vous devez +désinstaller le logiciel et le renvoyer à Microsoft avec une preuve d’achat pour +vous faire rembourser. Ces recours sont les seuls dont vous disposez dans le +cadre de la violation de garantie limitée. + +E. DROITS DES CONSOMMATEURS NON AFFECTÉS. Vous pouvez bénéficier de droits des +consommateurs supplémentaires dans le cadre du droit local, que ce contrat ne +peut modifier. + +F. PROCÉDURES RELATIVES AUX RÉCLAMATIONS DANS LE CADRE DE LA GARANTIE. Vous +devrez fournir une preuve d’achat pour obtenir de l’aide en matière de garantie. + +1. États-Unis et Canada. Pour obtenir de l’aide en matière de garantie ou des +informations sur la procédure à suivre pour vous faire rembourser un logiciel +acquis aux États-Unis et au Canada, mettez-vous en rapport avec Microsoft + • (800) MICROSOFT ; + • Microsoft Customer Service and Support, One Microsoft Way, Redmond, WA +98052-6399 ; ou + • en visitant www.microsoft.com/info/nareturns.htm. + +2. Europe, Moyen-Orient et Afrique. Si vous avez acquis le logiciel en Europe, +au Moyen-Orient ou en Afrique, Microsoft Ireland Operations Limited offre cette +garantie limitée. Pour faire une réclamation au titre de cette garantie, vous +devez vous mettre en rapport avec + • Microsoft Ireland Operations Limited, Customer Care Centre, Atrium Building +Block B, Carmanhall Road, Sandyford Industrial Estate, Dublin 18, Irlande ; ou + • votre filiale nationale de Microsoft (visitez le site +www.microsoft.com/worldwide). + +3. En dehors des États-Unis, du Canada, de l’Europe, du Moyen-Orient et de +l’Afrique. Si vous avez acquis le logiciel en dehors des États-Unis, du Canada, +de l’Europe, du Moyen-Orient et de l’Afrique, mettez-vous en rapport avec votre +filiale nationale de Microsoft (visitez le site www.microsoft.com/worldwide). + +G. AUCUNE AUTRE GARANTIE. La garantie limitée est la seule garantie directe de +Microsoft. Nous n’accordons aucune autre garantie ou condition expresse. Dans +toute la mesure permise par le droit local, les garanties implicites de qualité +marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont +exclues. Si le droit local vous accorde des garanties ou conditions implicites, +nonobstant la présente exclusion, les recours dont vous disposez sont ceux +présentés dans la clause de recours dans le cadre de la violation de garantie +ci-dessus, dans la limite autorisée par le droit local. + +H. LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ DANS LE CADRE +DE LA VIOLATION DE GARANTIE. La clause de limitation des dommages-intérêts et +exclusion de responsabilité ci-dessous s’applique aux violations de cette +garantie limitée. + +La présente garantie vous confère des droits légaux spécifiques et vous pouvez +également bénéficier d’autres droits qui varient d’un État à l’autre. Vous +pouvez également bénéficier d’autres droits qui varient d’un pays à l’autre. + +LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES +DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une +indemnisation en cas de dommages directs uniquement à hauteur du montant que +vous avez payé pour le logiciel. Vous ne pouvez prétendre à aucune indemnisation +pour les autres dommages, y compris les dommages spéciaux, indirects ou +accessoires et pertes de bénéfices. + +Cette limitation concerne + • toute affaire liée au logiciel, aux services ou au contenu (y compris le +code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et + • les réclamations au titre de violation de contrat ou de garantie ou +condition, ou au titre de responsabilité stricte, de négligence ou d’une autre +faute dans la limite autorisée par la loi en vigueur. + +Elle s’applique également, même si + • la réparation, le remplacement ou le remboursement du logiciel ne compense +pas intégralement toute perte subie ; ou + • Microsoft connaissait l’éventualité d’un tel dommage. + +Certains États n’autorisent pas l’exclusion ou la limitation de responsabilité +pour les dommages indirects ou accessoires, de sorte que la limitation ou +l’exclusion ci-dessus peut ne pas vous être applicable. Elles peuvent également +ne pas vous être applicables, car votre pays n’autorise pas l’exclusion ou la +limitation de responsabilité pour les dommages indirects, accessoires ou de +quelque nature que ce soit. + +EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous +pourriez avoir d’autres droits prévus par les lois de votre État ou pays. Vous +pourriez également avoir des droits à l’égard de la partie de qui vous avez +acquis de logiciel. Le présent contrat ne modifie pas les droits que vous +confèrent les lois de votre État ou pays si celles ci ne le permettent pas. + +*************************************************************************** diff --git a/source/l/jre/Welcome.html b/source/l/jre/Welcome.html new file mode 100644 index 000000000..c55c68a6f --- /dev/null +++ b/source/l/jre/Welcome.html @@ -0,0 +1,26 @@ + + + +Welcome to the Java(TM) Platform + + + + +

Welcome to the JavaTM Platform

+

Welcome to the JavaTM Standard Edition Runtime + Environment. This provides complete runtime support for Java applications. +

The runtime environment includes the JavaTM + Plug-in product which supports the Java environment inside web browsers. +

References

+

+See the Java Plug-in product +documentation for more information on using the Java Plug-in product. +

See the Java Platform web site for + more information on the Java Platform. +


+Copyright 2009 Sun Microsystems, Inc., 4150 Network Circle, Santa +Clara, California 95054, U.S.A.
+All rights reserved.
+

+ + diff --git a/source/l/jre/jre.SlackBuild b/source/l/jre/jre.SlackBuild new file mode 100755 index 000000000..260c6176a --- /dev/null +++ b/source/l/jre/jre.SlackBuild @@ -0,0 +1,130 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# Note that the slack-desc file mentions the JRE version (edit when upgrading)! + +VERSION=6u16 +DVER=1.6.0_16 +ARCH=x86_64 +BUILD=${BUILD:-1} + +# As of jre-6u12 a 64bit plugin is available. +# SUN says: +# Please note that the 64-bit JRE only works with the 64-bit browser plug-in, +# while the 32-bit JRE only works with 32-bit browser plug-in. +# If you use both 32-bit and 64-bit browsers interchangeably, you will need to +# have both 32-bit and 64-bit JRE's installed on your machine. +JAVA_ARCH=${JAVA_ARCH:-x64} # or i586 if you want the 32bit version + +if [ "$JAVA_ARCH" = "x64" ]; then + LIB_ARCH=amd64 +else + LIB_ARCH=i386 +fi + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-jre +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $PKG +mkdir -p usr/lib${LIBDIRSUFFIX} +cd usr/lib${LIBDIRSUFFIX} +yes yes | sh $( ls --indicator-style none $CWD/jre-${VERSION}-linux-${JAVA_ARCH}*.bin | tail -1) || exit 1 +mkdir -p $PKG/etc/profile.d +for file in $(ls $CWD/profile.d/*) ; do + cat $file | sed -e "s#lib/java#lib${LIBDIRSUFFIX}/java#" \ + > $PKG/etc/profile.d/$(basename $file) +done +chown -R root:root $PKG +( cd $PKG + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +) +chmod 755 $PKG/etc/profile.d/* +( cd $PKG/usr/lib${LIBDIRSUFFIX} + mv jre${DVER} java || exit 1 + ln -sf java jre${DVER} +) || exit 1 +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins +( cd $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins + ln -sf /usr/lib${LIBDIRSUFFIX}/java/lib/${LIB_ARCH}/libnpjp2.so libnpjp2.so +) +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf ./java/lib/${LIB_ARCH}/server/libjvm.so . +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cat << EOF > $PKG/install/doinst.sh +# Clean up a potential upgrade mess caused by changing the +# installation directory to /usr/lib${LIBDIRSUFFIX}/java/: +if [ -L usr/lib${LIBDIRSUFFIX}/java ]; then + rm -rf usr/lib${LIBDIRSUFFIX}/java + mkdir -p usr/lib${LIBDIRSUFFIX}/java/man + mkdir -p usr/lib${LIBDIRSUFFIX}/java/lib/${LIB_ARCH}/server + mkdir -p usr/lib/java/lib${LIBDIRSUFFIX}/${LIB_ARCH}/client + mkdir -p usr/lib${LIBDIRSUFFIX}/java/javaws + mkdir -p usr/lib${LIBDIRSUFFIX}/java/bin + mkdir -p usr/lib${LIBDIRSUFFIX}/mozilla/plugins +fi +if [ -L ControlPanel ]; then + rm -f ControlPanel +fi +if [ -L ja ]; then + rm -f ja +fi +if [ -L javaws ]; then + rm -f javaws +fi +if [ -L libjsig.so ]; then + rm -f libjsig.so +fi +# End cleanup. +EOF + +# Install the desktop/mime files: +mkdir -p $PKG/usr/share/{applications,icons,mime} +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/lib/desktop/applications/* \ + $PKG/usr/share/applications/ +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/lib/desktop/icons/hicolor \ + $PKG/usr/share/icons/ +cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/lib/desktop/mime/packages \ + $PKG/usr/share/mime/ + +# We ship the package unmodified, so we do not compress manpages. + +cd $PKG +/sbin/makepkg -l y -c n $TMP/jre-$(echo $VERSION | tr - _)-${ARCH}-$BUILD.txz + diff --git a/source/l/jre/profile.d/jre.csh b/source/l/jre/profile.d/jre.csh new file mode 100755 index 000000000..2beb66ecc --- /dev/null +++ b/source/l/jre/profile.d/jre.csh @@ -0,0 +1,4 @@ +#!/bin/csh +setenv JAVA_HOME /usr/lib/java +setenv MANPATH ${MANPATH}:${JAVA_HOME}/man +setenv PATH ${PATH}:${JAVA_HOME}/bin diff --git a/source/l/jre/profile.d/jre.sh b/source/l/jre/profile.d/jre.sh new file mode 100755 index 000000000..227c15cb7 --- /dev/null +++ b/source/l/jre/profile.d/jre.sh @@ -0,0 +1,4 @@ +#!/bin/sh +export JAVA_HOME=/usr/lib/java +export MANPATH="${MANPATH}:${JAVA_HOME}/man" +export PATH="${PATH}:${JAVA_HOME}/bin" diff --git a/source/l/jre/slack-desc b/source/l/jre/slack-desc new file mode 100644 index 000000000..20df6be84 --- /dev/null +++ b/source/l/jre/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + |-----handy-ruler------------------------------------------------------| +jre: Java(TM) 2 Platform Standard Edition Runtime Environment, +jre: Version 6.0 update 16. +jre: +jre: The J2SE(TM) Runtime Environment (JRE) is intended for software +jre: developers and vendors to redistribute with their applications. +jre: It contains the Java virtual machine, runtime class libraries, and +jre: Java application launcher that are necessary to run programs written +jre: in the Java programming language. +jre: +jre: If you need development tools, obtain the jdk from /extra, or see the +jre: Sun Microsystems web page: http://java.sun.com/ diff --git a/source/l/lcms/lcms.SlackBuild b/source/l/lcms/lcms.SlackBuild new file mode 100755 index 000000000..4510d2cf4 --- /dev/null +++ b/source/l/lcms/lcms.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.18 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lcms + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf lcms-$VERSION +tar xvf $CWD/lcms-$VERSION.tar.bz2 || exit 1 +cd lcms-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/usr/doc/lcms-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README* doc \ + $PKG/usr/doc/lcms-$VERSION +find $PKG/usr/doc/lcms-$VERSION -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/lcms-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/lcms/slack-desc b/source/l/lcms/slack-desc new file mode 100644 index 000000000..f06e2b578 --- /dev/null +++ b/source/l/lcms/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lcms: lcms (little cms engine) +lcms: +lcms: Little cms is a small, speed optimized color management engine. +lcms: +lcms: lcms was written by Marti Maria . +lcms: +lcms: +lcms: +lcms: +lcms: +lcms: diff --git a/source/l/lesstif/doinst.sh b/source/l/lesstif/doinst.sh new file mode 100644 index 000000000..5eba7c290 --- /dev/null +++ b/source/l/lesstif/doinst.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# Add the LessTif stuff to host.def if it isn't already there: +mkdir -p usr/lib/X11/config +touch usr/lib/X11/config/host.def +if ! grep LessTif usr/lib/X11/config/host.def 1> /dev/null 2> /dev/null ; then + cat usr/lib/LessTif/config/host.def >> usr/lib/X11/config/host.def +fi +# Standard symlink creation section begins: diff --git a/source/l/lesstif/lesstif.Makefile.in.patch b/source/l/lesstif/lesstif.Makefile.in.patch new file mode 100644 index 000000000..19cd54bb5 --- /dev/null +++ b/source/l/lesstif/lesstif.Makefile.in.patch @@ -0,0 +1,27 @@ +# Fix for installing Dt on x86_64 + +diff -u --recursive lesstif-0.95.0-orig/clients/Motif-2.1/mwm/Makefile.in lesstif-0.95.0/clients/Motif-2.1/mwm/Makefile.in +--- lesstif-0.95.0-orig/clients/Motif-2.1/mwm/Makefile.in 2006-06-10 11:35:34.000000000 +0200 ++++ lesstif-0.95.0/clients/Motif-2.1/mwm/Makefile.in 2006-08-23 00:27:05.000000000 +0200 +@@ -301,7 +301,7 @@ + $(X_LIBS) $(XPLIB) -lXt $(X_PRE_LIBS) -lXext -lX11 $(X_EXTRA_LIBS) + + appdir = $(libdir)/X11/app-defaults +-mwmddir = $(libdir)/X11/mwm ++mwmddir = $(sysconfdir)/mwm + mwmd_DATA = system.mwmrc alt.map README + AM_YFLAGS = -d + all: all-am +diff -u --recursive lesstif-0.95.0-orig/lib/Dt/Makefile.in lesstif-0.95.0/lib/Dt/Makefile.in +--- lesstif-0.95.0-orig/lib/Dt/Makefile.in 2006-06-10 11:35:38.000000000 +0200 ++++ lesstif-0.95.0/lib/Dt/Makefile.in 2006-08-23 00:28:39.000000000 +0200 +@@ -248,7 +248,8 @@ + infodir = @infodir@ + install_sh = @install_sh@ + lib_version_suffix = @lib_version_suffix@ +-libdir = $(exec_prefix)/lib ++#libdir = $(exec_prefix)/lib ++libdir = @libdir@ + libexecdir = @libexecdir@ + localstatedir = @localstatedir@ + man2html_cmd = @man2html_cmd@ diff --git a/source/l/lesstif/lesstif.PutPixel32.patch b/source/l/lesstif/lesstif.PutPixel32.patch new file mode 100644 index 000000000..4098dc58e --- /dev/null +++ b/source/l/lesstif/lesstif.PutPixel32.patch @@ -0,0 +1,55 @@ +* Mon Jun 16 2008 Hans de Goede 0.95.0-25 +- Fix PutPixel32 crashing on 64 bit (bz 437133) + +diff -up lesstif-0.95.0/lib/Xm-2.1/Xpmcreate.c~ lesstif-0.95.0/lib/Xm-2.1/Xpmcreate.c +--- lesstif-0.95.0/lib/Xm-2.1/Xpmcreate.c~ 2008-06-16 22:22:43.000000000 +0200 ++++ lesstif-0.95.0/lib/Xm-2.1/Xpmcreate.c 2008-06-16 22:22:43.000000000 +0200 +@@ -179,9 +179,7 @@ LFUNC(PutImagePixels1, void, (XImage *im + + LFUNC(PutPixel1, int, (XImage *ximage, int x, int y, unsigned long pixel)); + LFUNC(PutPixel, int, (XImage *ximage, int x, int y, unsigned long pixel)); +-#if !defined(WORD64) && !defined(LONG64) + LFUNC(PutPixel32, int, (XImage *ximage, int x, int y, unsigned long pixel)); +-#endif + LFUNC(PutPixel32MSB, int, (XImage *ximage, int x, int y, unsigned long pixel)); + LFUNC(PutPixel32LSB, int, (XImage *ximage, int x, int y, unsigned long pixel)); + LFUNC(PutPixel16MSB, int, (XImage *ximage, int x, int y, unsigned long pixel)); +@@ -1879,7 +1877,6 @@ PutPixel(ximage, x, y, pixel) + return 1; + } + +-#if !defined(WORD64) && !defined(LONG64) + static int + PutPixel32(ximage, x, y, pixel) + register XImage *ximage; +@@ -1893,10 +1890,9 @@ PutPixel32(ximage, x, y, pixel) + return 0; + + addr = &((unsigned char *)ximage->data) [ZINDEX32(x, y, ximage)]; +- *((unsigned long *)addr) = pixel; ++ *((unsigned int *)addr) = pixel; + return 1; + } +-#endif + + static int + PutPixel32MSB(ximage, x, y, pixel) +@@ -2211,15 +2207,12 @@ xpmParseDataAndCreate(display, data, ima + else + ximage->f.put_pixel = PutPixel16LSB; + else if (ximage->bits_per_pixel == 32) +-#if !defined(WORD64) && !defined(LONG64) + if (*((char *)&byteorderpixel) == ximage->byte_order) + ximage->f.put_pixel = PutPixel32; ++ else if (ximage->bitmap_bit_order == MSBFirst) ++ ximage->f.put_pixel = PutPixel32MSB; + else +-#endif +- if (ximage->bitmap_bit_order == MSBFirst) +- ximage->f.put_pixel = PutPixel32MSB; +- else +- ximage->f.put_pixel = PutPixel32LSB; ++ ximage->f.put_pixel = PutPixel32LSB; + else if ((ximage->bits_per_pixel | ximage->depth) == 1) + ximage->f.put_pixel = PutPixel1; + else diff --git a/source/l/lesstif/lesstif.SlackBuild b/source/l/lesstif/lesstif.SlackBuild new file mode 100755 index 000000000..cb169ad7f --- /dev/null +++ b/source/l/lesstif/lesstif.SlackBuild @@ -0,0 +1,136 @@ +#!/bin/sh + +# Copyright 2006-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=lesstif +VERSION=${VERSION:-0.95.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-5} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/lesstif.Makefile.in.patch.gz | patch -p1 --verbose || exit 1 + zcat $CWD/lesstif.PutPixel32.patch.gz | patch -p1 --verbose || exit 1 + zcat $CWD/lesstif.x86_64.patch.gz | patch -p1 --verbose || exit 1 +fi + +zcat $CWD/lesstif.gcc42.diff.gz | patch -p1 --verbose || exit 1 + +# Check for NULL w in RenderTable.c to prevent possible crashes in +# "experimental" code path: +zcat $CWD/lesstif.rendertable.check.diff.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc/X11 \ + --enable-shared \ + --enable-static \ + --enable-build-21 \ + --enable-build-Xlt \ + --enable-build-Xbae \ + --enable-xbae-24bit \ + --enable-xbae-row-heights \ + --disable-debug \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Move LessTif's Imake files into place: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/X11 +mv $PKG/usr/lib${LIBDIRSUFFIX}/LessTif/config $PKG/usr/lib${LIBDIRSUFFIX}/X11 +rmdir $PKG/usr/lib${LIBDIRSUFFIX}/LessTif + +# Fix misplaced items: +( cd $PKG/usr/LessTif + mv * doc + mkdir $PKG/usr/doc + mv doc $PKG/usr/doc/lesstif-${VERSION} +) +rmdir $PKG/usr/LessTif +mkdir -p $PKG/etc/X11 +mv $PKG/usr/lib${LIBDIRSUFFIX}/X11/app-defaults $PKG/etc/X11 +mv $PKG/usr/lib${LIBDIRSUFFIX}/X11/mwm $PKG/etc/X11 +( cd $PKG/usr/lib${LIBDIRSUFFIX}/X11 ; ln -sf ../../../etc/X11/mwm . ) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz | sed -e "s#lib/#lib${LIBDIRSUFFIX}/#g" \ + > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/lesstif/lesstif.gcc42.diff b/source/l/lesstif/lesstif.gcc42.diff new file mode 100644 index 000000000..5c3bf12ad --- /dev/null +++ b/source/l/lesstif/lesstif.gcc42.diff @@ -0,0 +1,23 @@ +--- ./include/Motif-2.1/Xm/VendorSP.h.orig 2004-08-28 14:23:27.000000000 -0500 ++++ ./include/Motif-2.1/Xm/VendorSP.h 2009-03-16 15:29:38.000000000 -0500 +@@ -30,10 +30,6 @@ + #include + #include + +-#ifdef __cplusplus +-extern "C" { +-#endif +- + XMLIBEXPORT extern Cardinal _XmFilterResources(XtResource *resources, + Cardinal numResources, + WidgetClass filterClass, +@@ -57,9 +53,4 @@ + + XMLIBEXPORT extern VendorShellClassRec vendorShellClassRec; + +- +-#ifdef __cplusplus +-} +-#endif +- + #endif /* _XM_VENDORSP_H */ diff --git a/source/l/lesstif/lesstif.rendertable.check.diff b/source/l/lesstif/lesstif.rendertable.check.diff new file mode 100644 index 000000000..49f877e97 --- /dev/null +++ b/source/l/lesstif/lesstif.rendertable.check.diff @@ -0,0 +1,11 @@ +--- ./lib/Xm-2.1/RenderTable.c.orig 2005-06-24 06:36:03.000000000 -0500 ++++ ./lib/Xm-2.1/RenderTable.c 2009-03-23 16:34:48.000000000 -0500 +@@ -465,7 +465,7 @@ + DEBUGOUT(_LtDebug(__FILE__, w, "_XmRenderTableFinaliseTag(%s)\n", tag)); + #if 1 + /* Experimental start */ +- if (r->dpy == 0) ++ if (r->dpy == 0 && w) + r->dpy = XtDisplay(w); + /* Experimental end */ + #endif diff --git a/source/l/lesstif/lesstif.x86_64.patch b/source/l/lesstif/lesstif.x86_64.patch new file mode 100644 index 000000000..774a9df0d --- /dev/null +++ b/source/l/lesstif/lesstif.x86_64.patch @@ -0,0 +1,39 @@ +diff -up lesstif-0.95.0/scripts/motif-config.in.multilib lesstif-0.95.0/scripts/motif-config.in +--- lesstif-0.95.0/scripts/motif-config.in.multilib 2005-01-14 20:36:00.000000000 +0100 ++++ lesstif-0.95.0/scripts/motif-config.in 2007-10-21 13:52:43.000000000 +0200 +@@ -2,14 +2,16 @@ + # + # $Header: /stuff/slackware/non-public/alien/slackware64/source/l/lesstif/RCS/lesstif-0.95.0-x86_64.patch,v 1.1 2008/10/17 20:29:26 eha Exp eha $ + # +-L="@prefix@" + XC="@X_CFLAGS@" +-XL="@X_LIBS@" +-XR="@XRENDER_LIBS@" ++X_PRE_LIBS="@X_PRE_LIBS@" ++X_LIBS="@X_LIBS@" ++X_EXTRA_LIBS="@X_EXTRA_LIBS@" + V="@PACKAGE_NAME@ @PACKAGE_VERSION@" + +-prefix=$L +-exec_prefix=$L ++prefix="@prefix@" ++exec_prefix="@exec_prefix@" ++libdir="@libdir@" ++includedir="@includedir@" + exec_prefix_set=no + + usage() +@@ -80,10 +82,10 @@ if test "$echo_exec_prefix" = "yes"; the + fi + + if test "$echo_cflags" = "yes"; then +- echo "-I$L/include $XC" ++ echo "-I$includedir $XC" + fi + + if test "$echo_libs" = "yes"; then +- echo "-L$L/lib -L/usr/X11R6/lib -lXm -lXt $my_glib_libs $XR -lXext -lX11" ++ echo "-L$libdir ${X_LIBS} -lXm -lXt ${X_PRE_LIBS} -lX11 ${X_EXTRA_LIBS}" + fi + + diff --git a/source/l/lesstif/slack-desc b/source/l/lesstif/slack-desc new file mode 100644 index 000000000..0736326ab --- /dev/null +++ b/source/l/lesstif/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lesstif: lesstif (a free replacement for OSF/Motif(R)) +lesstif: +lesstif: LessTif is the Hungry Programmers' (www.hungry.com) free clone of +lesstif: Motif(R). It aims to be source compatible with OSF/Motif(R) meaning +lesstif: that the same source code should compile with both and work exactly +lesstif: the same. This package contains the libraries and header files to +lesstif: be able to run and compile Motif applications, along with the lesstif +lesstif: version of mwm, the Motif window manager. +lesstif: +lesstif: +lesstif: diff --git a/source/l/libaio/libaio.SlackBuild b/source/l/libaio/libaio.SlackBuild new file mode 100755 index 000000000..be3c1a1c3 --- /dev/null +++ b/source/l/libaio/libaio.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libaio +VERSION=${VERSION:-0.3.106} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Build and install: +make $NUMJOBS || make || exit 1 +make prefix=$PKG/usr libdir=$PKG/usr/lib${LIBDIRSUFFIX} install || exit 1 + +mkdir $PKG/lib${LIBDIRSUFFIX} +mv $PKG/usr/lib${LIBDIRSUFFIX}/* $PKG/lib${LIBDIRSUFFIX} +rm -f $PKG/lib${LIBDIRSUFFIX}/libaio.so +# I'm on a strict diet. +rm -f $PKG/lib${LIBDIRSUFFIX}/libaio.a +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/libaio.so.1.?.* libaio.so +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING ChangeLog INSTALL TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libaio/slack-desc b/source/l/libaio/slack-desc new file mode 100644 index 000000000..68c90fe32 --- /dev/null +++ b/source/l/libaio/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libaio: libaio (asynchronous I/O library) +libaio: +libaio: The Linux-native asynchronous I/O facility ("async I/O", or "aio") +libaio: has a richer API and capability set than the simple POSIX async I/O +libaio: facility. This library provides the Linux-native API for async I/O. +libaio: The POSIX async I/O facility requires this library in order to +libaio: provide kernel-accelerated async I/O capabilities, as do applications +libaio: which require the Linux-native async I/O API. +libaio: +libaio: +libaio: diff --git a/source/l/libao/libao.SlackBuild b/source/l/libao/libao.SlackBuild new file mode 100755 index 000000000..0ad669cb7 --- /dev/null +++ b/source/l/libao/libao.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.8.8 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libao + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libao-$VERSION +tar xvf $CWD/libao-$VERSION.tar.gz +cd libao-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +#zcat $CWD/libao.use_new_alsa_api.diff.gz | patch -p1 --verbose +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/man $PKG/usr +gzip -9 $PKG/usr/man/man?/*.? + +mv $PKG/usr/share/doc $PKG/usr +cp -a \ + AUTHORS COPYING README TODO \ + $PKG/usr/doc/libao-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libao-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libao/slack-desc b/source/l/libao/slack-desc new file mode 100644 index 000000000..7f52948c3 --- /dev/null +++ b/source/l/libao/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libao: libao (Audio Output library) +libao: +libao: Libao is a cross-platform audio library, and is required by many +libao: programs and other libraries that use audio (some examples include +libao: ogg123, GAIM, and the Ogg Vorbis libraries). This package provides +libao: plugins for OSS, ESD, aRts, and ALSA. You will need to install the +libao: supporting libraries for any plugins you want to use. +libao: +libao: +libao: +libao: diff --git a/source/l/libarchive/libarchive.SlackBuild b/source/l/libarchive/libarchive.SlackBuild new file mode 100755 index 000000000..976b3841d --- /dev/null +++ b/source/l/libarchive/libarchive.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman + + +PRGNAM=libarchive +VERSION=2.6.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a COPYING INSTALL NEWS README $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libarchive/libarchive.info b/source/l/libarchive/libarchive.info new file mode 100644 index 000000000..53405885b --- /dev/null +++ b/source/l/libarchive/libarchive.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://people.freebsd.org/~kientzle/libarchive/" +DOWNLOAD="http://people.freebsd.org/~kientzle/libarchive/src/libarchive-2.5.5.tar.gz" diff --git a/source/l/libarchive/slack-desc b/source/l/libarchive/slack-desc new file mode 100644 index 000000000..545983735 --- /dev/null +++ b/source/l/libarchive/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------| +libarchive: libarchive (archive reading library) +libarchive: +libarchive: Libarchive is a programming library that can create and read +libarchive: several different streaming archive formats, including most +libarchive: popular TAR variants and several CPIO formats. It can also +libarchive: write SHAR archives. +libarchive: +libarchive: Homepage: http://libarchive.googlecode.com +libarchive: +libarchive: +libarchive: diff --git a/source/l/libart_lgpl/libart_lgpl.SlackBuild b/source/l/libart_lgpl/libart_lgpl.SlackBuild new file mode 100755 index 000000000..e0f710677 --- /dev/null +++ b/source/l/libart_lgpl/libart_lgpl.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.3.20 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libart_lgpl +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf libart_lgpl-$VERSION +tar xvf $CWD/libart_lgpl-$VERSION.tar.bz2 || exit 1 +cd libart_lgpl-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libart_lgpl-$VERSION +cp -a \ + AUTHORS COPYING NEWS README \ + $PKG/usr/doc/libart_lgpl-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libart_lgpl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libart_lgpl/slack-desc b/source/l/libart_lgpl/slack-desc new file mode 100644 index 000000000..90b613dda --- /dev/null +++ b/source/l/libart_lgpl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libart_lgpl: libart_lgpl (graphics library) +libart_lgpl: +libart_lgpl: Libart is a library for high-performance 2D graphics. It is used by +libart_lgpl: both KDE and GNOME. This is the LGPL'd component of the library. +libart_lgpl: +libart_lgpl: Raph Levien is the author of libart. +libart_lgpl: +libart_lgpl: +libart_lgpl: +libart_lgpl: +libart_lgpl: diff --git a/source/l/libcaca/libcaca.SlackBuild b/source/l/libcaca/libcaca.SlackBuild new file mode 100755 index 000000000..2803f484f --- /dev/null +++ b/source/l/libcaca/libcaca.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libcaca +VERSION=${VERSION:-0.99.beta16} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --disable-imlib2 \ + --enable-slang \ + --enable-ncurses \ + --enable-x11 \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* NEWS NOTES README THANKS \ + $PKG/usr/doc/${PKGNAM}-$VERSION +rm -rf $PKG/usr/share/doc + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libcaca/slack-desc b/source/l/libcaca/slack-desc new file mode 100644 index 000000000..03c370b0f --- /dev/null +++ b/source/l/libcaca/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libcaca: libcaca (Colour AsCii Art library) +libcaca: +libcaca: The libcaca library is a graphics library that outputs text instead +libcaca: of pixels, so that it can work on older video cards or text terminals. +libcaca: It is not unlike the famous AAlib library. +libcaca: +libcaca: Sam Hocevar is the main author of libcaca. +libcaca: +libcaca: +libcaca: +libcaca: diff --git a/source/l/libcap/README.SLACKWARE b/source/l/libcap/README.SLACKWARE new file mode 100644 index 000000000..5942189b3 --- /dev/null +++ b/source/l/libcap/README.SLACKWARE @@ -0,0 +1,15 @@ +This file contains some links to additional sources of documentation +available on libcap usage. + +POSIX 1e and 2c drafts: +http://wt.xpilot.org/publications/posix.1e/download.html + +Olaf Kirch's article: +http://www.lst.de/~okir/blackhats/node125.html + +Serge E. Hallyn' article: +POSIX file capabilities: Parceling the power of root +http://www.ibm.com/developerworks/linux/library/l-posixcap.html?ca=dgr-lnxw06LinuxPOSIX + +Active development of libcap v2 is in filesystem capabilities, see: +http://www.kernel.org/pub/linux/libs/security/linux-privs/README diff --git a/source/l/libcap/capfaq-0.2.txt b/source/l/libcap/capfaq-0.2.txt new file mode 100644 index 000000000..e3e272be4 --- /dev/null +++ b/source/l/libcap/capfaq-0.2.txt @@ -0,0 +1,264 @@ +This is the Linux kernel capabilities FAQ + +Its history, to the extent that I am able to reconstruct it is that +v2.0 was posted to the Linux kernel list on 1999/04/02 by Boris +Tobotras. Thanks to Denis Ducamp for forwarding me a copy. + +Cheers + +Andrew + +Linux Capabilities FAQ 0.2 +========================== + +1) What is a capability? + +The name "capabilities" as used in the Linux kernel can be confusing. +First there are Capabilities as defined in computer science. A +capability is a token used by a process to prove that it is allowed to +do an operation on an object. The capability identifies the object +and the operations allowed on that object. A file descriptor is a +capability. You create the file descriptor with the "open" call and +request read or write permissions. Later, when doing a read or write +operation, the kernel uses the file descriptor as an index into a +data structure that indicates what operations are allowed. This is an +efficient way to check permissions. The necessary data structures are +created once during the "open" call. Later read and write calls only +have to do a table lookup. Operations on capabilities include copying +capabilities, transferring capabilities between processes, modifying a +capability, and revoking a capability. Modifying a capability can be +something like taking a read-write filedescriptor and making it +read-only. A capability often has a notion of an "owner" which is +able to invalidate all copies and derived versions of a capability. +Entire OSes are based on this "capability" model, with varying degrees +of purity. There are other ways of implementing capabilities than the +file descriptor model - traditionally special hardware has been used, +but modern systems also use the memory management unit of the CPU. + +Then there is something quite different called "POSIX capabilities" +which is what Linux uses. These capabilities are a partitioning of +the all powerful root privilege into a set of distinct privileges (but +look at securelevel emulation to find out that this isn't necessary +the whole truth). Users familiar with VMS or "Trusted" versions of +other UNIX variants will know this under the name "privileges". The +name "capabilities" comes from the now defunct POSIX draft 1003.1e +which used this name. + +2) So what is a "POSIX capability"? + +A process has three sets of bitmaps called the inheritable(I), +permitted(P), and effective(E) capabilities. Each capability is +implemented as a bit in each of these bitmaps which is either set or +unset. When a process tries to do a privileged operation, the +operating system will check the appropriate bit in the effective set +of the process (instead of checking whether the effective uid of the +process i 0 as is normally done). For example, when a process tries +to set the clock, the Linux kernel will check that the process has the +CAP_SYS_TIME bit (which is currently bit 25) set in its effective set. + +The permitted set of the process indicates the capabilities the +process can use. The process can have capabilities set in the +permitted set that are not in the effective set. This indicates that +the process has temporarily disabled this capability. A process is +allowed to set a bit in its effective set only if it is available in +the permitted set. The distinction between effective and permitted +exists so that processes can "bracket" operations that need privilege. + +The inheritable capabilities are the capabilities of the current +process that should be inherited by a program executed by the current +process. The permitted set of a process is masked against the +inheritable set during exec(). Nothing special happens during fork() +or clone(). Child processes and threads are given an exact copy of +the capabilities of the parent process. + +3) What about other entities in the system? Users, Groups, Files? + +Files have capabilities. Conceptually they have the same three +bitmaps that processes have, but to avoid confusion we call them by +other names. Only executable files have capabilities, libraries don't +have capabilities (yet). The three sets are called the allowed set, +the forced set, and the effective set. + +The allowed set indicates what capabilities the executable is allowed +to receive from an execing process. This means that during exec(), +the capabilities of the old process are first masked against a set +which indicates what the process gives away (the inheritable set of +the process), and then they are masked against a set which indicates +what capabilities the new process image is allowed to receive (the +allowed set of the executable). + +The forced set is a set of capabilities created out of thin air and +given to the process after execing the executable. The forced set is +similar in nature to the setuid feature. In fact, the setuid bit from +the filesystem is "read" as a full forced set by the kernel. + +The effective set indicates which bits in the permitted set of the new +process should be transferred to the effective set of the new process. +The effective set is best thought of as a "capability aware" set. It +should consist of only 1s if the executable is capability-dumb, or +only 0s if the executable is capability-smart. Since the effective +set consists of only 0s or only 1s, the filesystem can implement this +set using a single bit. + +NOTE: Filesystem support for capabilities is not part of Linux 2.2. + +Users and Groups don't have associated capabilities from the kernel's +point of view, but it is entirely reasonable to associate users or +groups with capabilities. By letting the "login" program set some +capabilities it is possible to make role users such as a backup user +that will have the CAP_DAC_READ_SEARCH capability and be able to do +backups. This could also be implemented as a PAM module, but nobody +has implemented one yet. + +4) What capabilities exist? + +The capabilities available in Linux are listed and documented in the +file /usr/src/linux/include/linux/capability.h. + +5) Are Linux capabilities hierarchical? + +No, you cannot make a "subcapability" out of a Linux capability as in +capability-based OSes. + +6) How can I use capabilities to make sure Mr. Evil Luser (eluser) +can't exploit my "suid" programs? + +This is the general outline of how this works given filesystem +capability support exists. First, you have a PAM module that sets the +inheritable capabilities of the login-shell of eluser. Then for all +"suid" programs on the system, you decide what capabilities they need +and set the _allowed_ set of the executable to that set of +capabilities. The capability rules + + new permitted = forced | (allowed & inheritable) + +means that you should be careful about setting forced capabilities on +executables. In a few cases, this can be useful though. For example +the login program needs to set the inheritable set of the new user and +therefore needs an almost full permitted set. So if you want eluser +to be able to run login and log in as a different user, you will have +to set some forced bits on that executable. + +7) What about passing capabilities between processes? + +Currently this is done by the system call "setcap" which can set the +capabilities of another process. This requires the CAP_SETPCAP +capability which you really only want to grant a _few_ processes. +CAP_SETPCAP was originally intended as a workaround to be able to +implement filesystem support for capabilities using a daemon outside +the kernel. + +There has been discussions about implementing socket-level capability +passing. This means that you can pass a capability over a socket. No +support for this exists in the official kernel yet. + +8) I see securelevel has been removed from 2.2 and are superceeded by +capabilities. How do I emulate securelevel using capabilities? + +The setcap system call can remove a capability from _all_ processes on +the system in one atomic operation. The setcap utility from the +libcap distribution will do this for you. The utility requires the +CAP_SETPCAP privilege to do this. The CAP_SETPCAP capability is not +enabled by default. + +libcap is available from +ftp://ftp.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.2/ + +9) I noticed that the capability.h file lacks some capabilities that +are needed to fully emulate 2.0 securelevel. Is there a patch for +this? + +Actually yes - funny you should ask :-). The problem with 2.0 +securelevel is that they for example stop root from accessing block +devices. At the same time they restrict the use of iopl. These two +changes are fundamentally different. Blocking access to block devices +means restricting something that usually isn't restricted. +Restricting access to the use of iopl on the other hand means +restricting (blocking) access to something that is already blocked. +Emulating the parts of 2.0 securelevel that restricts things that are +normally not restricted means that the capabilites in the kernel has +to have a set of capabilities that are usually _on_ for a normal +process (note that this breaks the explanation that capabilities are a +partitioning of the root privileges). There is an experimental patch at + +ftp://ftp.guardian.no/pub/free/linux/capabilities/patch-cap-exp-1 + +which implements a set of capabilities with the "CAP_USER" prefix: + +cap_user_sock - allowed to use socket() +cap_user_dev - allowed to open char/block devices +cap_user_fifo - allowed to use pipes + +These should be enough to emulate 2.0 securelevel (tell me if we need +something more). + +10) Seems I need a CAP_SETPCAP capability that I don't have to make use +of capabilities. How do I enable this capability? + +Change the definition of CAP_INIT_EFF_SET and CAP_INIT_INH_SET to the +following in include/linux/capability.h: + +#define CAP_INIT_EFF_SET { ~0 } +#define CAP_INIT_INH_SET { ~0 } + +This will start init with a full capability set and not with +CAP_SETPCAP removed. + +11) How do I start a process with a limited set of capabilities? + +Get the libcap library and use the execcap utility. The following +example starts the update daemon with only the CAP_SYS_ADMIN +capability. + +execcap 'cap_sys_admin=eip' update + +12) How do I start a process with a limited set of capabilities under +another uid? + +Use the sucap utility which changes uid from root without loosing any +capabilities. Normally all capabilities are cleared when changing uid +from root. The sucap utility requires the CAP_SETPCAP capability. +The following example starts updated under uid updated and gid updated +with CAP_SYS_ADMIN raised in the Effective set. + +sucap updated updated execcap 'cap_sys_admin=eip' update + +[ Sucap is currently available from +ftp://ftp.guardian.no/pub/free/linux/capabilities/sucap.c. Put it in +the progs directory of libcap to compile.] + +13) What are the "capability rules" + +The capability rules are the rules used to set the capabilities of the +new process image after an exec. They work like this: + + pI' = pI + (***) pP' = fP | (fI & pI) + pE' = pP' & fE [NB. fE is 0 or ~0] + + I=Inheritable, P=Permitted, E=Effective // p=process, f=file + ' indicates post-exec(). + +Now to make sense of the equations think of fP as the Forced set of +the executable, and fI as the Allowed set of the executable. Notice +how the Inheritable set isn't touched at all during exec(). + +14) What are the laws for setting capability bits in the Inheritable, +Permitted, and Effective sets? + +Bits can be transferred from Permitted to either Effective or +Inheritable set. + +Bits can be removed from all sets. + +15) Where is the standard on which the Linux capabilities are based? + +There used to be a POSIX draft called POSIX.6 and later POSIX 1003.1e. +However after the committee had spent over 10 years, POSIX decided +that enough is enough and dropped the draft. There will therefore not +be a POSIX standard covering security anytime soon. This may lead to +that the POSIX draft is available for free, however. + +-- + Best regards, -- Boris. + diff --git a/source/l/libcap/libcap-2.16.tar.bz2.sign b/source/l/libcap/libcap-2.16.tar.bz2.sign new file mode 100644 index 000000000..d4925d762 --- /dev/null +++ b/source/l/libcap/libcap-2.16.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBJN4JLyGugalF9Dw4RAiqLAJ9L42xfkqkbmmTyQJulpL8VoRjurwCeJkLj +oLAyJMYhVE31Kumb66LU5c8= +=UTrX +-----END PGP SIGNATURE----- diff --git a/source/l/libcap/libcap.SlackBuild b/source/l/libcap/libcap.SlackBuild new file mode 100755 index 000000000..e7603570e --- /dev/null +++ b/source/l/libcap/libcap.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Originally written by Menno Duursma + + +PRGNAM=libcap +VERSION=${VERSION:-2.16} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 + +zcat $CWD/libcap.capability.h.fix.broken.includes.diff.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Set the CFLAGS +sed -i.orig "s/^\(DEBUG =\).*/\1$SLKCFLAGS/" Make.Rules + +make DYNAMIC=yes $NUMJOBS || make DYNAMIC=yes || exit 1 +make install FAKEROOT=$PKG man_prefix=/usr || exit 1 +chmod 755 $PKG/lib/libcap.so* + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add included scripts +( cd contrib || exit 1 + for file in pcaps4convenience pcaps4server pcaps4suid0 ; do + install -m 0755 -D $file $PKG/usr/sbin/$file + done +) + +# glibc already has the capget/capset manpage +rm -rf $PKG/usr/man/man2 + +# Compress the man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + CHANGELOG License README License pgp.keys.asc doc/capability.notes \ + progs/quicktest.sh $CWD/capfaq-0.2.txt $CWD/README.SLACKWARE \ + $PKG/usr/doc/$PRGNAM-$VERSION +chown -R root:root $PKG/usr/doc +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libcap/libcap.capability.h.fix.broken.includes.diff b/source/l/libcap/libcap.capability.h.fix.broken.includes.diff new file mode 100644 index 000000000..5a4fcbcf5 --- /dev/null +++ b/source/l/libcap/libcap.capability.h.fix.broken.includes.diff @@ -0,0 +1,11 @@ +--- ./libcap/include/sys/capability.h.orig 2008-07-10 01:18:40.000000000 -0500 ++++ ./libcap/include/sys/capability.h 2009-04-11 13:19:33.000000000 -0500 +@@ -19,7 +19,7 @@ + * information for the user library. + */ + +-#include ++#include + #include + + /* diff --git a/source/l/libcap/slack-desc b/source/l/libcap/slack-desc new file mode 100644 index 000000000..018686355 --- /dev/null +++ b/source/l/libcap/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libcap: libcap (get/set POSIX capabilities) +libcap: +libcap: This is a library for getting and setting POSIX.1e (formerly POSIX 6) +libcap: draft 15 capabilities. +libcap: +libcap: Libcap was written by Andrew G. Morgan; however, it would not +libcap: have been possible without the help of Aleph1, Roland Buresund, +libcap: Andrew Main, and Alexander Kjeldaas. +libcap: +libcap: +libcap: diff --git a/source/l/libcddb/libcddb.SlackBuild b/source/l/libcddb/libcddb.SlackBuild new file mode 100755 index 000000000..3785576e3 --- /dev/null +++ b/source/l/libcddb/libcddb.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libcddb +VERSION=${VERSION:-$(echo $(basename $(echo $PRGNAM-*.tar.bz2 | cut -f 2 -d -) .tar.bz2) | cut -f 2 -d -)} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libcddb/slack-desc b/source/l/libcddb/slack-desc new file mode 100644 index 000000000..7e437d016 --- /dev/null +++ b/source/l/libcddb/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libcddb: libcddb (An online CD database library) +libcddb: +libcddb: Libcddb is a library that implements the different protocols (CDDBP, +libcddb: HTTP, SMTP) to access data on a CDDB server (http://freedb.org). +libcddb: +libcddb: Visit the project at: http://libcddb.sourceforge.net/ +libcddb: +libcddb: +libcddb: +libcddb: +libcddb: diff --git a/source/l/libcdio/libcdio.SlackBuild b/source/l/libcdio/libcdio.SlackBuild new file mode 100755 index 000000000..dc4f891b8 --- /dev/null +++ b/source/l/libcdio/libcdio.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libcdio +VERSION=${VERSION:-$(echo $(basename $(echo $PRGNAM-*.tar.bz2 | cut -f 2 -d -) .tar.bz2) | cut -f 2 -d -)} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL MSVC NEWS README README.libcdio THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libcdio/slack-desc b/source/l/libcdio/slack-desc new file mode 100644 index 000000000..3f1ccc5d4 --- /dev/null +++ b/source/l/libcdio/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libcdio: libcdio (GNU CD access library) +libcdio: +libcdio: The libcdio package contains a library for CD-ROM and CD image access. +libcdio: Applications wishing to be oblivious of the OS and device-dependent +libcdio: properties of a CD-ROM or of the specific details of various CD-image +libcdio: formats may benefit from using this library. A library for working +libcdio: with ISO-9660 filesystems libiso9660 is included. A generic interface +libcdio: for issuing MMC (multimedia commands) is also part of the libcdio +libcdio: library. +libcdio: +libcdio: diff --git a/source/l/libdvdread/libdvdread.SlackBuild b/source/l/libdvdread/libdvdread.SlackBuild new file mode 100755 index 000000000..13e33849a --- /dev/null +++ b/source/l/libdvdread/libdvdread.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=libdvdread +VERSION=4.1.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +[ ! -x configure ] && ./autogen.sh +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS ChangeLog COPYING DEVELOPMENT-POLICY.txt INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libdvdread/slack-desc b/source/l/libdvdread/slack-desc new file mode 100644 index 000000000..d1ddba952 --- /dev/null +++ b/source/l/libdvdread/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + |-----handy-ruler------------------------------------------------------| +libdvdread: libdvdread (library for reading DVDs) +libdvdread: +libdvdread: libdvdread provides a simple foundation for reading DVD video +libdvdread: disks. It provides the functionality that is required to access +libdvdread: many DVDs. It parses IFO files, reads NAV-blocks, and performs +libdvdread: CSS authentication and descrambling. +libdvdread: +libdvdread: +libdvdread: +libdvdread: +libdvdread: diff --git a/source/l/libexif/libexif.SlackBuild b/source/l/libexif/libexif.SlackBuild new file mode 100755 index 000000000..db9f6f4c6 --- /dev/null +++ b/source/l/libexif/libexif.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.6.16 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libexif + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libexif-$VERSION +tar xvf $CWD/libexif-$VERSION.tar.bz2 || exit 1 +cd libexif-$VERSION +zcat $CWD/libexif.pc.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --disable-static \ + --localstatedir=/var/lib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +strip -g $PKG/usr/lib/*.a + +rm -rf $PKG/usr/share/doc +mkdir -p $PKG/usr/doc/libexif-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING NEWS README \ + $PKG/usr/doc/libexif-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libexif-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libexif/libexif.pc.diff b/source/l/libexif/libexif.pc.diff new file mode 100644 index 000000000..283a412e0 --- /dev/null +++ b/source/l/libexif/libexif.pc.diff @@ -0,0 +1,8 @@ +--- ./libexif.pc.in.orig 2005-03-17 09:58:18.000000000 -0600 ++++ ./libexif.pc.in 2007-05-28 12:50:35.000000000 -0500 +@@ -8,4 +8,4 @@ + Requires: + Version: @VERSION@ + Libs: -L${libdir} -lexif -lm +-Cflags: -I${includedir} ++Cflags: -I${includedir}/libexif diff --git a/source/l/libexif/slack-desc b/source/l/libexif/slack-desc new file mode 100644 index 000000000..992e1915d --- /dev/null +++ b/source/l/libexif/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libexif: libexif (Exchangeable Image File Format library) +libexif: +libexif: EXIF stands for Exchangeable Image File Format, which is a format used +libexif: to store extra information in images such as the JPEG files produced +libexif: by digital cameras. The libexif library allows programs such as +libexif: gthumb to parse, edit, and save EXIF data. +libexif: +libexif: +libexif: +libexif: +libexif: diff --git a/source/l/libglade/libglade.SlackBuild b/source/l/libglade/libglade.SlackBuild new file mode 100755 index 000000000..c9153b506 --- /dev/null +++ b/source/l/libglade/libglade.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=${VERSION:-2.6.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libglade + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +tar xvf $CWD/libglade-$VERSION.tar.bz2 || exit 1 +cd libglade-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var/lib \ + --docdir=/usr/doc/libglade-$VERSION \ + --enable-gtk-doc \ + --enable-static=no \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Hello! --enable-static=no seemed to mean something when ./configure ran... +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libglade*.a + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libglade-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* \ + $PKG/usr/doc/libglade-$VERSION +( cd $PKG/usr/doc/libglade-$VERSION + ln -s /usr/share/gtk-doc/html/libglade html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libglade-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libglade/slack-desc b/source/l/libglade/slack-desc new file mode 100644 index 000000000..0cd2cc418 --- /dev/null +++ b/source/l/libglade/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libglade: libglade (GLADE library) +libglade: +libglade: The GLADE library allows loading user interfaces which are stored +libglade: externally into a program. This allows the interface to be changed +libglade: without recompiling the program. The interfaces can also be edited +libglade: with GLADE. +libglade: +libglade: +libglade: +libglade: +libglade: diff --git a/source/l/libgphoto2/libgphoto2.SlackBuild b/source/l/libgphoto2/libgphoto2.SlackBuild new file mode 100755 index 000000000..fec05df70 --- /dev/null +++ b/source/l/libgphoto2/libgphoto2.SlackBuild @@ -0,0 +1,144 @@ +#!/bin/sh + +# Copyright 2007-2008 Frank Caraballo +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=libgphoto2 +VERSION=2.4.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --with-doc-dir=/usr/doc/$PRGNAM-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +# Make sure udev helper scripts are put in the right place and +# install the other utilities to /usr/bin instead of /usr/lib/libgphoto2/ +make $NUMJOBS \ + udevscriptdir=/lib/udev \ + utilsdir=/usr/bin \ + || make \ + udevscriptdir=/lib/udev \ + utilsdir=/usr/bin \ + || exit 1 +make \ + udevscriptdir=/lib/udev \ + utilsdir=/usr/bin \ + install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Generate udev rules and hal device information files +# First, we'll have to set (and export) some important variables +LD_LIBRARY_PATH=$PKG/usr/lib${LIBDIRSUFFIX} +CAMLIBS=$PKG/usr/lib${LIBDIRSUFFIX}/$PRGNAM/$VERSION +LIBDIR=$PKG/usr/lib${LIBDIRSUFFIX} +export LD_LIBRARY_PATH CAMLIBS LIBDIR +# Generate udev rules +mkdir -p $PKG/lib/udev/rules.d +$PKG/usr/bin/print-camera-list udev-rules mode 0660 owner root group plugdev \ + > $PKG/lib/udev/rules.d/90-libgphoto2.rules +# Generate fdi files +mkdir -p $PKG/usr/share/hal/fdi/information/20thirdparty +$PKG/usr/bin/print-camera-list hal-fdi \ + > $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi +$PKG/usr/bin/print-camera-list hal-fdi-device \ + > $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi +unset LD_LIBRARY_PATH CAMLIBS LIBDIR # Unset these just in case + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* HACKING INSTALL MAINTAINERS \ + NEWS README* TESTERS \ + $PKG/usr/doc/$PRGNAM-$VERSION +# The entire ChangeLog is excessive for most users: +cat $PKG/usr/doc/$PRGNAM-$VERSION/ChangeLog | head -n 1000 > $PKG/usr/doc/$PRGNAM-$VERSION/CL +mv $PKG/usr/doc/$PRGNAM-$VERSION/CL $PKG/usr/doc/$PRGNAM-$VERSION/ChangeLog +# The apidocs are huge, and probably only of interest to developers who will +# very likely use the source code as a reference: +rm -r $PKG/usr/doc/$PRGNAM-$VERSION/apidocs.html +cat << EOF > $PKG/usr/doc/$PRGNAM-$VERSION/apidocs.html/README +The complete API documentation may be found in the +libgphoto2 source code archive. +EOF + +# This library is not built, but it is useful for users to know why that is: +cp -a camlibs/jl2005a/README.jl2005a $PKG/usr/doc/$PRGNAM-$VERSION/camlibs +chmod 644 $PKG/usr/doc/$PRGNAM-$VERSION/camlibs/README.jl2005a +chown root:root $PKG/usr/doc/$PRGNAM-$VERSION/camlibs/README.jl2005a + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libgphoto2/slack-desc b/source/l/libgphoto2/slack-desc new file mode 100644 index 000000000..9de29cbeb --- /dev/null +++ b/source/l/libgphoto2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------| +libgphoto2: libgphoto2 (Digital Camera Library) +libgphoto2: +libgphoto2: libgphoto2 is a library that can be used by +libgphoto2: applications to access various digital cameras. +libgphoto2: +libgphoto2: Homepage: http://www.gphoto.org/ +libgphoto2: +libgphoto2: +libgphoto2: +libgphoto2: +libgphoto2: diff --git a/source/l/libgpod/libgpod.SlackBuild b/source/l/libgpod/libgpod.SlackBuild new file mode 100755 index 000000000..013b18161 --- /dev/null +++ b/source/l/libgpod/libgpod.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libgpod +VERSION=${VERSION:-0.7.2} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --enable-eject-command \ + --enable-unmount-command \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Hey ./configure, I wasn't joking: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libgpod.a + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +# Usually I no longer install bloated ChangeLogs (unless I wrote them ;-), +# or empty doc stubs, but if they are small, they don't hurt. And someday +# the above mentioned files may contain something useful! :-) +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README* TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libgpod/slack-desc b/source/l/libgpod/slack-desc new file mode 100644 index 000000000..b1ccdf4fe --- /dev/null +++ b/source/l/libgpod/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgpod: libgpod (A library for connecting to some sort of media device ;-) +libgpod: +libgpod: libgpod for accessing iPod content. It provides an easy to use way +libgpod: to retrieve the list of files and playlist stored on an iPod, to +libgpod: modify them and to save them back to the iPod. +libgpod: +libgpod: If you decide to make improvements please contact us so we can work +libgpod: together. Just drop a mail to: Gtkpod-devel@lists.sourceforge.net +libgpod: (you may ask to be CC in the answer). +libgpod: +libgpod: diff --git a/source/l/libgsf/libgsf.SlackBuild b/source/l/libgsf/libgsf.SlackBuild new file mode 100755 index 000000000..004a3b1fd --- /dev/null +++ b/source/l/libgsf/libgsf.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.14.15 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libgsf +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf libgsf-$VERSION +tar xvf $CWD/libgsf-$VERSION.tar.bz2 || exit 1 +cd libgsf-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --with-html-dir=/usr/share/gtk-doc/html \ + --mandir=/usr/man \ + --disable-static \ + --without-gnome-vfs \ + --without-gio \ + --without-bonobo \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# This is useless, describing a command that's not installed: +rm -f $PKG/usr/man/man1/gsf-office-thumbnailer.1 +rmdir $PKG/usr/man/man1 2> /dev/null +rmdir $PKG/usr/man 2> /dev/null + +# And this, more simple removal is about what libgsf deserves if it ignores +# the --mandir option to configure, which is more than likely... +rm -rf $PKG/usr/share/man + +# In the remote chance that any other man page was installed, and to the +# requested directory too, then let's gzip it. Probably send the error +# output from this one to /dev/null, because gzip won't find anything. +gzip -9 $PKG/usr/man/man?/*.? 2> /dev/null + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libgsf-$VERSION +cp -a \ + AUTHORS BUGS COPYING* HACKING NEWS README TODO \ + $PKG/usr/doc/libgsf-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libgsf-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libgsf/slack-desc b/source/l/libgsf/slack-desc new file mode 100644 index 000000000..a8775609d --- /dev/null +++ b/source/l/libgsf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgsf: libgsf (structured file I/O library) +libgsf: +libgsf: libgsf aims to provide an efficient extensible I/O abstraction for +libgsf: dealing with different structured file formats. +libgsf: +libgsf: libgsf is used by libwv2, which is used by various word processors +libgsf: to import .doc format files. +libgsf: +libgsf: +libgsf: +libgsf: diff --git a/source/l/libgtkhtml/libgtkhtml.SlackBuild b/source/l/libgtkhtml/libgtkhtml.SlackBuild new file mode 100755 index 000000000..c22966fd3 --- /dev/null +++ b/source/l/libgtkhtml/libgtkhtml.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libgtkhtml +VERSION=${VERSION:-2.11.1} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --mandir=/usr/man \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --disable-accessibility \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING.LIB INSTALL NEWS README TODO docs/IDEAS \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libgtkhtml/slack-desc b/source/l/libgtkhtml/slack-desc new file mode 100644 index 000000000..22d68c5b3 --- /dev/null +++ b/source/l/libgtkhtml/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgtkhtml: libgtkhtml (lightweight HTML engine) +libgtkhtml: +libgtkhtml: GtkHTML is a lightweight HTML rendering/printing/editing engine. It +libgtkhtml: was originally based on KHTMLW, part of the KDE project. +libgtkhtml: +libgtkhtml: libgtkhtml is used by the GIMP help browser. +libgtkhtml: +libgtkhtml: +libgtkhtml: +libgtkhtml: +libgtkhtml: diff --git a/source/l/libical/README b/source/l/libical/README new file mode 100644 index 000000000..6075373a9 --- /dev/null +++ b/source/l/libical/README @@ -0,0 +1,9 @@ +libical is an Open Source (MPL/LGPL) implementation of the IETF's +iCalendar Calendaring and Scheduling protocols. (RFC 2445, 2446, and +2447). It parses iCal components and provides C/C++/Python/Java APIs +for manipulating the component properties, parameters, and +subcomponents. + +By default c++ and python bindings are enabled. Java bindings can be +enabled by passing JAVA=yes to the script but require the jdk from +/extra to be installed. \ No newline at end of file diff --git a/source/l/libical/libical.SlackBuild b/source/l/libical/libical.SlackBuild new file mode 100755 index 000000000..9a54405e0 --- /dev/null +++ b/source/l/libical/libical.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Copyright 2008 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=libical +VERSION=0.43 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +JAVA=${JAVA:-no} + +if [ "$JAVA" = "no" ]; then + do_java="dis" +else + do_java="en" +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --enable-cxx \ + --enable-python \ + --${do_java}able-java \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +for FILE in \ + AUTHORS ChangeLog COPYING INSTALL LICENSE NEWS README TEST THANKS TODO +do + zcat $FILE.gz > $PKG/usr/doc/$PRGNAM-$VERSION/$FILE +done + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libical/libical.info b/source/l/libical/libical.info new file mode 100644 index 000000000..500e53ebd --- /dev/null +++ b/source/l/libical/libical.info @@ -0,0 +1,8 @@ +PRGNAM="libical" +VERSION="0.41" +HOMEPAGE="http://freeassociation.sourceforge.net/" +DOWNLOAD="http://downloads.sourceforge.net/freeassociation/libical-0.41.tar.gz" +MD5SUM="981731f5618c7f1944e0262babdcc910" +MAINTAINER="ppr:kut" +EMAIL="pprkut@liwjatan.at" +APPROVED="dsomero" diff --git a/source/l/libical/slack-desc b/source/l/libical/slack-desc new file mode 100644 index 000000000..6b760123e --- /dev/null +++ b/source/l/libical/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +libical: libical (iCAL protocol implementation) +libical: +libical: libical is an Open Source (MPL/LGPL) implementation of the IETF's +libical: iCalendar Calendaring and Scheduling protocols. (RFC 2445, 2446, and +libical: 2447). It parses iCal components and provides C/C++/Python/Java APIs +libical: for manipulating the component properties, parameters, and +libical: subcomponents. +libical: +libical: Homepage: http://freeassociation.sourceforge.net/ +libical: +libical: diff --git a/source/l/libid3tag/id3tag.pc b/source/l/libid3tag/id3tag.pc new file mode 100644 index 000000000..5b4fe5ad7 --- /dev/null +++ b/source/l/libid3tag/id3tag.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: id3tag +Description: ID3 tag reading library +Requires: +Version: 0.15.1b +Libs: -L${libdir} -lid3tag -lz +Cflags: -I${includedir} diff --git a/source/l/libid3tag/libid3tag-0.15.1b.tar.gz.sign b/source/l/libid3tag/libid3tag-0.15.1b.tar.gz.sign new file mode 100644 index 000000000..23c71faee --- /dev/null +++ b/source/l/libid3tag/libid3tag-0.15.1b.tar.gz.sign @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.4 (GNU/Linux) + +iD8DBQBAMtKyLOIDa0vzijMRAnqJAKCf47AUQLQnftXgGFbwdH7SH8/8wACeIhAE +DPgWj9Hen2IXZf36b+AF81k= +=LD8t +-----END PGP SIGNATURE----- diff --git a/source/l/libid3tag/libid3tag.SlackBuild b/source/l/libid3tag/libid3tag.SlackBuild new file mode 100755 index 000000000..c05badae4 --- /dev/null +++ b/source/l/libid3tag/libid3tag.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libid3tag +VERSION=${VERSION:-0.15.1b} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --disable-debugging \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Someone, somewhere, decided that id3tag.pc was "missing", and +# now software is starting to think it's a standard feature. +# Bah! +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig +cat $CWD/id3tag.pc > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/id3tag.pc + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES COPYING COPYRIGHT CREDITS README TODO VERSION \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libid3tag/slack-desc b/source/l/libid3tag/slack-desc new file mode 100644 index 000000000..7906bbd9f --- /dev/null +++ b/source/l/libid3tag/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libid3tag: libid3tag (ID3 tag manipulation library) +libid3tag: +libid3tag: libid3tag is a library for reading and (eventually) writing ID3 tags, +libid3tag: both ID3v1 and the various versions of ID3v2. +libid3tag: +libid3tag: libid3tag was written by Robert Leslie. +libid3tag: +libid3tag: +libid3tag: +libid3tag: +libid3tag: diff --git a/source/l/libidl/libidl.SlackBuild b/source/l/libidl/libidl.SlackBuild new file mode 100755 index 000000000..f2ea33988 --- /dev/null +++ b/source/l/libidl/libidl.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.8.10 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libIDL + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libIDL-$VERSION +tar xvf $CWD/libIDL-$VERSION.tar.bz2 || exit 1 +cd libIDL-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-static=no \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --localstatedir=/var/lib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libIDL-$VERSION +cp -a \ + AUTHORS BUGS COPYING HACKING MAINTAINERS NEWS README \ + $PKG/usr/doc/libIDL-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libidl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libidl/slack-desc b/source/l/libidl/slack-desc new file mode 100644 index 000000000..fc753249c --- /dev/null +++ b/source/l/libidl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libidl: libIDL (IDL library) +libidl: +libidl: libIDL is a library licensed under the GNU LGPL for creating trees of +libidl: CORBA Interface Definition Language (IDL) files, which is a +libidl: specification for defining portable interfaces. +libidl: +libidl: libIDL is used by SeaMonkey and the Mozilla Suite. +libidl: +libidl: +libidl: +libidl: diff --git a/source/l/libidn/libidn.SlackBuild b/source/l/libidn/libidn.SlackBuild new file mode 100755 index 000000000..570a3e098 --- /dev/null +++ b/source/l/libidn/libidn.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.5 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libidn + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libidn-$VERSION +tar xvf $CWD/libidn-$VERSION.tar.bz2 || exit 1 +cd libidn-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/libidn-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* FAQ INSTALL NEWS README* THANKS TODO \ + contrib \ + libidn/libidn.html \ + $PKG/usr/doc/libidn-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libidn-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libidn/slack-desc b/source/l/libidn/slack-desc new file mode 100644 index 000000000..99cca3a78 --- /dev/null +++ b/source/l/libidn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libidn: libidn (GNU Internationalized Domain Name library) +libidn: +libidn: GNU Libidn is an implementation of the Stringprep, Punycode and IDNA +libidn: specifications defined by the IETF Internationalized Domain Names +libidn: (IDN) working group, used for internationalized domain names. +libidn: +libidn: +libidn: +libidn: +libidn: +libidn: diff --git a/source/l/libieee1284/libieee1284.SlackBuild b/source/l/libieee1284/libieee1284.SlackBuild new file mode 100755 index 000000000..342fbfd81 --- /dev/null +++ b/source/l/libieee1284/libieee1284.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libieee1284 +VERSION=${VERSION:-0.2.11} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libieee1284/slack-desc b/source/l/libieee1284/slack-desc new file mode 100644 index 000000000..1f9d38bb5 --- /dev/null +++ b/source/l/libieee1284/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libieee1284: libieee1284 (parallel port library) +libieee1284: +libieee1284: This library is intended to be used by applications that need to +libieee1284: communicate with (or at least identify) devices that are attached via +libieee1284: a parallel port. For example, SANE uses it to identify scanners. +libieee1284: +libieee1284: +libieee1284: +libieee1284: +libieee1284: +libieee1284: diff --git a/source/l/libjpeg/jpeg-6b.diff b/source/l/libjpeg/jpeg-6b.diff new file mode 100644 index 000000000..8ad8bb5db --- /dev/null +++ b/source/l/libjpeg/jpeg-6b.diff @@ -0,0 +1,59 @@ +--- makefile.cfg.orig Sat Mar 21 13:08:57 1998 ++++ makefile.cfg Tue Oct 6 19:15:26 1998 +@@ -21,6 +21,8 @@ + + # The name of your C compiler: + CC= @CC@ ++SONAME=libjpeg.so.62 ++SHLIBNAME=libjpeg.so.62.0.0 + + # You may need to adjust these cc options: + CFLAGS= @CFLAGS@ @CPPFLAGS@ @INCLUDEFLAGS@ +@@ -125,6 +127,7 @@ + jdsample.$(O) jdcolor.$(O) jquant1.$(O) jquant2.$(O) jdmerge.$(O) + # These objectfiles are included in libjpeg.a + LIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS) ++SHLIBOBJECTS= $(LIBOBJECTS:%.o=%.so) + # object files for sample applications (excluding library files) + COBJECTS= cjpeg.$(O) rdppm.$(O) rdgif.$(O) rdtarga.$(O) rdrle.$(O) \ + rdbmp.$(O) rdswitch.$(O) cdjpeg.$(O) +@@ -133,7 +136,7 @@ + TROBJECTS= jpegtran.$(O) rdswitch.$(O) cdjpeg.$(O) transupp.$(O) + + +-all: @A2K_DEPS@ libjpeg.$(A) cjpeg djpeg jpegtran rdjpgcom wrjpgcom ++all: @A2K_DEPS@ libjpeg.$(A) $(SHLIBNAME) cjpeg djpeg jpegtran rdjpgcom wrjpgcom + + # Special compilation rules to support ansi2knr and libtool. + .SUFFIXES: .lo .la +@@ -171,6 +174,11 @@ + $(LIBTOOL) --mode=link $(CC) -o libjpeg.la $(LIBOBJECTS) \ + -rpath $(libdir) -version-info $(JPEG_LIB_VERSION) + ++# shared library ++ ++$(SHLIBNAME): @A2K_DEPS@ $(SHLIBOBJECTS) ++ gcc -o $(SHLIBNAME) -Wl,-soname,$(SONAME) -shared $(SHLIBOBJECTS) ++ + # sample programs: + + cjpeg: $(COBJECTS) libjpeg.$(A) +@@ -214,7 +222,7 @@ + clean: + $(RM) *.o *.lo libjpeg.a libjpeg.la + $(RM) cjpeg djpeg jpegtran rdjpgcom wrjpgcom +- $(RM) ansi2knr core testout* config.log config.status ++ $(RM) ansi2knr core testout* config.log config.status $(SHLIBNAME) + $(RM) -r knr .libs _libs + + distclean: clean +@@ -289,6 +297,9 @@ + jidctfst.$(O): jidctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h + jidctint.$(O): jidctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h + jidctred.$(O): jidctred.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h ++ ++%.so : %.c ++ $(CC) -c -fPIC $(CFLAGS) $(CPPFLAGS) $< -o $@ + jquant1.$(O): jquant1.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h + jquant2.$(O): jquant2.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h + jutils.$(O): jutils.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h diff --git a/source/l/libjpeg/libjpeg.SlackBuild b/source/l/libjpeg/libjpeg.SlackBuild new file mode 100755 index 000000000..5ec9f0164 --- /dev/null +++ b/source/l/libjpeg/libjpeg.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-6b} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-5} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libjpeg + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_libjpeg.tar.gz +if [ "$ARCH" = "x86_64" ]; then + mv usr/lib usr/lib${LIBDIRSUFFIX} + sed -i -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" install/doinst.sh +fi + +cd $TMP +rm -rf jpeg-6b +tar xzvf $CWD/jpegsrc.v6b.tar.gz +cd jpeg-6b +chown -R root:root . +zcat $CWD/jpeg-6b.diff.gz | patch -p0 -E +export CFLAGS="$SLKCFLAGS" +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} +make -j3 || exit 1 +strip cjpeg djpeg rdjpgcom wrjpgcom jpegtran +cat cjpeg > $PKG/usr/bin/cjpeg +cat djpeg > $PKG/usr/bin/djpeg +cat jpegtran > $PKG/usr/bin/jpegtran +cat rdjpgcom > $PKG/usr/bin/rdjpgcom +cat wrjpgcom > $PKG/usr/bin/wrjpgcom +for page in cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +strip --strip-unneeded libjpeg.so.62.0.0 +cat libjpeg.so.62.0.0 > $PKG/usr/lib${LIBDIRSUFFIX}/libjpeg.so.62.0.0 +cat libjpeg.a > $PKG/usr/lib${LIBDIRSUFFIX}/libjpeg.a +cp -a jconfig.h jpeglib.h jmorecfg.h jerror.h $PKG/usr/include +# KDE includes this complete header list, but the libjpeg source doesn't +# suggest it, and we trust them. :) +#for file in jchuff.h jdhuff.h jdct.h jerror.h jinclude.h jmemsys.h \ +# jmorecfg.h jpegint.h jpeglib.h jversion.h cdjpeg.h cderror.h jconfig.h ; do +# cp -a $file $PKG/usr/include +#done +mkdir -p $PKG/usr/doc/libjpeg-$VERSION +cp -a README *.doc $PKG/usr/doc/libjpeg-$VERSION +chmod 644 $PKG/usr/doc/libjpeg-$VERSION/* +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -c y -l y $TMP/libjpeg-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libjpeg/slack-desc b/source/l/libjpeg/slack-desc new file mode 100644 index 000000000..d1add7fdf --- /dev/null +++ b/source/l/libjpeg/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libjpeg: libjpeg (Independent JPEG Group's JPEG software) +libjpeg: +libjpeg: Software to implement JPEG image compression and decompression. JPEG +libjpeg: (pronounced 'jay-peg') is a standardized compression method for +libjpeg: full-color and gray-scale images. JPEG is intended for compressing +libjpeg: 'real-world' scenes; cartoons and other non-realistic images are not +libjpeg: its strong suit. JPEG is lossy, however, on typical images of +libjpeg: real-world scenes, very good compression levels can be obtained with +libjpeg: no visible change, and amazingly high compression levels are possible +libjpeg: if you can tolerate a low-quality image. +libjpeg: diff --git a/source/l/libkarma/libkarma.SlackBuild b/source/l/libkarma/libkarma.SlackBuild new file mode 100755 index 000000000..fb17404f1 --- /dev/null +++ b/source/l/libkarma/libkarma.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libkarma +VERSION=${VERSION:-0.1.1} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Build and install: +make $NUMJOBS PREFIX=/usr || make PREFIX=/usr || exit 1 +make install PREFIX=$PKG/usr || exit 1 + +if [ "$ARCH" = "x86_64" ]; then + mv $PKG/usr/lib $PKG/usr/lib${LIBDIRSUFFIX} +fi +rm $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +mv $PKG/usr/share/man $PKG/usr +rm -r $PKG/usr/share/doc +rmdir $PKG/usr/share + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING ChangeLog INSTALL THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + cp -a tools/TODO $PKG/usr/doc/${PKGNAM}-$VERSION/TODO.tools + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libkarma/slack-desc b/source/l/libkarma/slack-desc new file mode 100644 index 000000000..ddbb0728b --- /dev/null +++ b/source/l/libkarma/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libkarma: libkarma (library for accessing the Rio Karma music player) +libkarma: +libkarma: This is a library for accessing the Rio Karma, a small media player +libkarma: which supports the music formats ogg vorbis, flac, mp3, wave and wma. +libkarma: +libkarma: libkarma was mostly written by Frank Zschockelt. +libkarma: +libkarma: +libkarma: +libkarma: +libkarma: diff --git a/source/l/libmad/libmad-0.15.1b.tar.gz.sign b/source/l/libmad/libmad-0.15.1b.tar.gz.sign new file mode 100644 index 000000000..3917229a4 --- /dev/null +++ b/source/l/libmad/libmad-0.15.1b.tar.gz.sign @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.4 (GNU/Linux) + +iD8DBQBAMtLOLOIDa0vzijMRAsYTAKDrlBGedxkKiGQe4dFSEgZqDAGoHgCfVat8 +HWL+a6uuup3z2MCxShlboYE= +=B7VH +-----END PGP SIGNATURE----- diff --git a/source/l/libmad/libmad.SlackBuild b/source/l/libmad/libmad.SlackBuild new file mode 100755 index 000000000..648b07170 --- /dev/null +++ b/source/l/libmad/libmad.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libmad +VERSION=${VERSION:-0.15.1b} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --disable-debugging \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# This is what happens when every distro makes up its own standards +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig +sed -e "s#/lib#/lib${LIBDIRSUFFIX}#" $CWD/mad.pc \ + > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/mad.pc + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES COPYING COPYRIGHT CREDITS README TODO VERSION \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libmad/mad.pc b/source/l/libmad/mad.pc new file mode 100644 index 000000000..2adebe064 --- /dev/null +++ b/source/l/libmad/mad.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: mad +Description: MPEG audio decoder +Requires: +Version: 0.15.1b +Libs: -L${libdir} -lmad +Cflags: -I${includedir} diff --git a/source/l/libmad/slack-desc b/source/l/libmad/slack-desc new file mode 100644 index 000000000..ecb740d38 --- /dev/null +++ b/source/l/libmad/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libmad: libmad (high-quality MPEG audio library) +libmad: +libmad: MAD (libmad) is a high-quality MPEG audio decoder. It currently +libmad: supports MPEG-1 and the MPEG-2 extension to Lower Sampling +libmad: Frequencies, as well as the so-called MPEG 2.5 format. All three +libmad: audio layers (Layer I, Layer II, and Layer III a.k.a. MP3) are +libmad: fully implemented. Because MAD provides full 24-bit PCM output, +libmad: applications using MAD are able to produce high quality audio. +libmad: MAD is distributed under the terms of the GPL. +libmad: +libmad: MAD (libmad) was written by Robert Leslie. + diff --git a/source/l/libmcrypt/libmcrypt.SlackBuild b/source/l/libmcrypt/libmcrypt.SlackBuild new file mode 100755 index 000000000..91d0b6599 --- /dev/null +++ b/source/l/libmcrypt/libmcrypt.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libmcrypt +VERSION=${VERSION:-2.5.8} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $PKG $TMP + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-shared=yes \ + --enable-static=no \ + --disable-posix-threads \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libmcrypt/slack-desc b/source/l/libmcrypt/slack-desc new file mode 100644 index 000000000..6523614b5 --- /dev/null +++ b/source/l/libmcrypt/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +libmcrypt: libmcrypt (MCrypt encryption library) +libmcrypt: +libmcrypt: Libmcrypt is a data encryption library. The library is thread safe +libmcrypt: and provides encryption and decryption functions. This version of +libmcrypt: the library supports many encryption algorithms and encryption modes. +libmcrypt: Some algorithms which are supported: SERPENT, RIJNDAEL, 3DES, GOST, +libmcrypt: SAFER+, CAST-256, RC2, XTEA, 3WAY, TWOFISH, BLOWFISH, ARCFOUR, WAKE, +libmcrypt: and more. +libmcrypt: +libmcrypt: Homepage: http://mcrypt.sourceforge.net +libmcrypt: diff --git a/source/l/libmcs/libmcs.SlackBuild b/source/l/libmcs/libmcs.SlackBuild new file mode 100755 index 000000000..7bea5ec94 --- /dev/null +++ b/source/l/libmcs/libmcs.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libmcs +VERSION=${VERSION:-0.7.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-gconf \ + --disable-kconfig \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* Mercurial-Access README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libmcs/slack-desc b/source/l/libmcs/slack-desc new file mode 100644 index 000000000..ce7950ca1 --- /dev/null +++ b/source/l/libmcs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libmcs: libmcs (A library for managing configuration settings) +libmcs: +libmcs: mcs is a library and set of userland tools which abstract the +libmcs: storage of configuration settings away from userland applications. +libmcs: +libmcs: It is hoped that by using mcs, that the applications which use it +libmcs: will generally have a more congruent feeling in regards to settings. +libmcs: +libmcs: Because mcs is licenced under the BSD license, it is hoped that +libmcs: many applications will adopt its use. +libmcs: diff --git a/source/l/libmng/libmng.SlackBuild b/source/l/libmng/libmng.SlackBuild new file mode 100755 index 000000000..129c347c4 --- /dev/null +++ b/source/l/libmng/libmng.SlackBuild @@ -0,0 +1,118 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libmng +VERSION=${VERSION:-1.0.10} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +cat unmaintained/autogen.sh | tr -d \\r > autogen.sh +sh ./autogen.sh +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES LICENSE README* doc/libmng.txt doc/Plan1.png doc/Plan2.png \ + $PKG/usr/doc/${PKGNAM}-$VERSION +chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libmng/slack-desc b/source/l/libmng/slack-desc new file mode 100644 index 000000000..4cd82c46a --- /dev/null +++ b/source/l/libmng/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libmng: libmng (Multiple-image Network Graphics library) +libmng: +libmng: This is libmng, the MNG reference library. MNG (pronounced 'ming'), +libmng: is short for Multiple-image Network Graphics. Designed with the same +libmng: modular philosophy as PNG and by many of the same people, MNG is +libmng: intended to provide a home for all of the multi-image (animation) +libmng: capabilities that have no place in PNG. +libmng: +libmng: libmng was written by Gerard Juyn. +libmng: +libmng: diff --git a/source/l/libmowgli/libmowgli.SlackBuild b/source/l/libmowgli/libmowgli.SlackBuild new file mode 100755 index 000000000..213d43bb9 --- /dev/null +++ b/source/l/libmowgli/libmowgli.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libmowgli +VERSION=${VERSION:-0.6.0} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --enable-eject-command \ + --enable-unmount-command \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Hey ./configure, I wasn't joking: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libgpod.a + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +# Usually I no longer install bloated ChangeLogs (unless I wrote them ;-), +# or empty doc stubs, but if they are small, they don't hurt. And someday +# the above mentioned files may contain something useful! :-) +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS README* TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libmowgli/slack-desc b/source/l/libmowgli/slack-desc new file mode 100644 index 000000000..59f837134 --- /dev/null +++ b/source/l/libmowgli/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libmowgli: libmowgli (A useful collection of routines for programming) +libmowgli: +libmowgli: libmowgli is a class library containing performance and usability +libmowgli: oriented extensions to C. +libmowgli: +libmowgli: libmowgli was written by Patrick McFarland, William Pitcock, +libmowgli: Jonathan Schleifer, Pippijn van Steenhoven, and Jilles Tjoelker. +libmowgli: +libmowgli: +libmowgli: +libmowgli: diff --git a/source/l/libmsn/libmsn.SlackBuild b/source/l/libmsn/libmsn.SlackBuild new file mode 100755 index 000000000..06b98185e --- /dev/null +++ b/source/l/libmsn/libmsn.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Slackware build script for libmsn + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=libmsn +VERSION=r96 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +cd $PKGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd .. + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a COPYING README THANKS TODO doc/OVERVIEW $PKG/usr/doc/$PKGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION |tr - _)-$ARCH-$BUILD.txz + diff --git a/source/l/libmsn/slack-desc b/source/l/libmsn/slack-desc new file mode 100644 index 000000000..0875c42ac --- /dev/null +++ b/source/l/libmsn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +libmsn: libmsn (implementation of the MSN Messenger service protocol) +libmsn: +libmsn: Libmsn is a reusable, open-source, fully documented library for +libmsn: connecting to Microsoft's MSN Messenger service. +libmsn: +libmsn: +libmsn: +libmsn: Homepage: http://sourceforge.net/projects/libmsn/ +libmsn: +libmsn: +libmsn: diff --git a/source/l/libmtp/libmtp.SlackBuild b/source/l/libmtp/libmtp.SlackBuild new file mode 100755 index 000000000..748682d55 --- /dev/null +++ b/source/l/libmtp/libmtp.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libmtp +VERSION=${VERSION:-0.3.6} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/${PKGNAM}-$VERSION \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Add udev rules: +mkdir -p $PKG/lib/udev/rules.d +sed -e 's/MODE="666"/GROUP="audio", MODE="0660"/' libmtp.rules \ + > $PKG/lib/udev/rules.d/90-libmtp.rules +# Add device information for HAL: +mkdir -p $PKG/usr/share/hal/fdi/information/20thirdparty/ +cat libmtp.fdi > $PKG/usr/share/hal/fdi/information/20thirdparty/10-libmtp.fdi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Why even bother to support --docdir if you can't make it work? +mkdir -p $PKG/usr/doc +mv $PKG/usr/share/doc/${PKGNAM}-$VERSION $PKG/usr/doc +rmdir $PKG/usr/share/doc + +# We don't need these here +rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/libmtp.{rules,sh,usermap} + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libmtp/slack-desc b/source/l/libmtp/slack-desc new file mode 100644 index 000000000..5bc514e20 --- /dev/null +++ b/source/l/libmtp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libmtp: libmtp (A library for MTP media devices) +libmtp: +libmtp: libmtp is a library that attempts to support Microsoft's Media +libmtp: Transfer Protocol (MTP). It was initially based the great libptp2 +libmtp: library by Mariusz Woloszyn now maintained by Marcus Meissners, and +libmtp: Hubert Figuere's libgphoto2 work based on libptp2 (or is libptp2 +libmtp: based on libgphoto?). It is like a master DJ has remixed all of +libmtp: these tracks and then added a new API adapted for portable media +libmtp: players. :-) +libmtp: +libmtp: For the latest info, check out: http://libmtp.sourceforge.net diff --git a/source/l/libnjb/80-libnjb.rules b/source/l/libnjb/80-libnjb.rules new file mode 100644 index 000000000..5908d8b52 --- /dev/null +++ b/source/l/libnjb/80-libnjb.rules @@ -0,0 +1,34 @@ +SUBSYSTEM!="usb_device", ACTION!="add", GOTO="libnjb_rules_end" + +# Creative Nomad Jukebox +ATTR{idVendor}=="0471", ATTR{idProduct}=="0222", MODE="660", GROUP="audio" +# Creative Nomad Jukebox 2 +ATTR{idVendor}=="041e", ATTR{idProduct}=="4100", MODE="660", GROUP="audio" +# Creative Nomad Jukebox 3 +ATTR{idVendor}=="041e", ATTR{idProduct}=="4101", MODE="660", GROUP="audio" +# Creative Nomad Jukebox Zen +ATTR{idVendor}=="041e", ATTR{idProduct}=="4108", MODE="660", GROUP="audio" +# Creative Nomad Jukebox Zen USB 2.0 +ATTR{idVendor}=="041e", ATTR{idProduct}=="410b", MODE="660", GROUP="audio" +# Creative Nomad Jukebox Zen NX +ATTR{idVendor}=="041e", ATTR{idProduct}=="4109", MODE="660", GROUP="audio" +# Creative Nomad Jukebox Zen Xtra +ATTR{idVendor}=="041e", ATTR{idProduct}=="4110", MODE="660", GROUP="audio" +# Dell Digital Jukebox +ATTR{idVendor}=="041e", ATTR{idProduct}=="4111", MODE="660", GROUP="audio" +# Creative Nomad Jukebox Zen Touch +ATTR{idVendor}=="041e", ATTR{idProduct}=="411b", MODE="660", GROUP="audio" +# Creative Zen (Zen Micro variant) +ATTR{idVendor}=="041e", ATTR{idProduct}=="411d", MODE="660", GROUP="audio" +# Creative Nomad Jukebox Zen Micro +ATTR{idVendor}=="041e", ATTR{idProduct}=="411e", MODE="660", GROUP="audio" +# Second Generation Dell Digital Jukebox +ATTR{idVendor}=="041e", ATTR{idProduct}=="4126", MODE="660", GROUP="audio" +# Dell Pocket DJ +ATTR{idVendor}=="041e", ATTR{idProduct}=="4127", MODE="660", GROUP="audio" +# Creative Zen Sleek +ATTR{idVendor}=="041e", ATTR{idProduct}=="4136", MODE="660", GROUP="audio" +# Third Generation Dell Digital Jukebox +ATTR{idVendor}=="041e", ATTR{idProduct}=="412f", MODE="660", GROUP="audio" + +LABEL="libnjb_rules_end" diff --git a/source/l/libnjb/libnjb.SlackBuild b/source/l/libnjb/libnjb.SlackBuild new file mode 100755 index 000000000..285526078 --- /dev/null +++ b/source/l/libnjb/libnjb.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libnjb +VERSION=${VERSION:-2.2.6} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-4} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --docdir=/usr/doc/${PKGNAM}-$VERSION \ + --disable-static \ + --enable-hotplugging \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Hotplug is obsolete: +if [ -d $PKG/etc/hotplug ]; then + rm -rf $PKG/etc/hotplug +fi + +# Add udev rules: +mkdir -p $PKG/lib/udev/rules.d +cat $CWD/80-libnjb.rules > $PKG/lib/udev/rules.d/80-libnjb.rules + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Move the documentation directory: +mkdir -p $PKG/usr/doc +mv $PKG/usr/share/doc/${PKGNAM}-$VERSION $PKG/usr/doc/${PKGNAM}-$VERSION +rmdir $PKG/usr/share/doc +rmdir $PKG/usr/share +# Yes I know about '-p' :-) + +# Usually I no longer install bloated ChangeLogs (unless I wrote them ;-), +# or empty doc stubs, but if they are small, they don't hurt. And someday +# the above mentioned files may contain something useful! :-) +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS ChangeLog FAQ HACKING INSTALL LICENSE Makefile.in README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libnjb/slack-desc b/source/l/libnjb/slack-desc new file mode 100644 index 000000000..41f19c68a --- /dev/null +++ b/source/l/libnjb/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libnjb: libnjb (A library for Creative Nomad related media devices) +libnjb: +libnjb: libnjb is a C library and API for communicating with the Creative +libnjb: Nomad JukeBox and Dell DJ digital audio players under BSD, Linux, +libnjb: Mac OS X, and Windows. The protocol these devices use is presumably +libnjb: called PDE (Portable Digital Entertainment protocol) at Creative. +libnjb: Newer devices using the Microsoft MTP (Media Transfer Protocol) +libnjb: are NOT supported. +libnjb: +libnjb: Home page: http://libnjb.sourceforge.net +libnjb: diff --git a/source/l/libnl/libnl-include_limits.h.patch b/source/l/libnl/libnl-include_limits.h.patch new file mode 100644 index 000000000..b2171551d --- /dev/null +++ b/source/l/libnl/libnl-include_limits.h.patch @@ -0,0 +1,11 @@ +diff -Nur libnl-1.1.orig/include/netlink-local.h libnl-1.1/include/netlink-local.h +--- libnl-1.1.orig/include/netlink-local.h 2008-01-14 09:48:45.000000000 -0600 ++++ libnl-1.1/include/netlink-local.h 2009-02-22 18:08:38.242219028 -0600 +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include + #include diff --git a/source/l/libnl/libnl.SlackBuild b/source/l/libnl/libnl.SlackBuild new file mode 100755 index 000000000..2c8ad4032 --- /dev/null +++ b/source/l/libnl/libnl.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2007 Andrew Psaltis, Vienna, VA, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Roberto Neri +# Modified by Robby Workman for inclusion + +PRGNAM=libnl +VERSION=1.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +NUMJOBS=${NUMJOBS:--j6} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$SRC_VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/libnl-include_limits.h.patch.gz | patch -p1 || exit 1 + +CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-gnu-ld \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libnl* + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + COPYING \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libnl/libnl.info b/source/l/libnl/libnl.info new file mode 100644 index 000000000..fafac745d --- /dev/null +++ b/source/l/libnl/libnl.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://people.suug.ch/~tgr/libnl/" +DOWNLOAD="http://people.suug.ch/~tgr/libnl/files/libnl-1.1.tar.gz" diff --git a/source/l/libnl/slack-desc b/source/l/libnl/slack-desc new file mode 100644 index 000000000..6351f5650 --- /dev/null +++ b/source/l/libnl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libnl: libnl (netlink socket library) +libnl: +libnl: libnl is a library for applications dealing with netlink sockets. +libnl: The library provides an interface for raw netlink messaging and +libnl: various netlink family specific interfaces. +libnl: +libnl: Homepage: http://people.suug.ch/~tgr/libnl/ +libnl: +libnl: +libnl: +libnl: diff --git a/source/l/libogg/libogg.SlackBuild b/source/l/libogg/libogg.SlackBuild new file mode 100755 index 000000000..b6fcc4283 --- /dev/null +++ b/source/l/libogg/libogg.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.1.3 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libogg + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf libogg-$VERSION +tar xvf $CWD/libogg-$VERSION.tar.bz2 || exit 1 +cd libogg-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/doc $PKG/usr +cp -a \ + AUTHORS CHANGES COPYING README \ + $PKG/usr/doc/libogg-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libogg-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libogg/slack-desc b/source/l/libogg/slack-desc new file mode 100644 index 000000000..e5d3280eb --- /dev/null +++ b/source/l/libogg/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libogg: libogg (Ogg Bitstream library) +libogg: +libogg: Libogg is a library for manipulating ogg bitstreams. It handles +libogg: both making ogg bitstreams and getting packets from ogg bitstreams. +libogg: +libogg: libogg is needed to use the Ogg Vorbis audio format. +libogg: +libogg: +libogg: +libogg: +libogg: diff --git a/source/l/liboil/liboil.SlackBuild b/source/l/liboil/liboil.SlackBuild new file mode 100755 index 000000000..2005a547f --- /dev/null +++ b/source/l/liboil/liboil.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2008 Michiel van Wessem +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT +# OWNER 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. + +# Slackware build script for liboil + +# Modified by Robby Workman + + +PRGNAM=liboil +VERSION=0.3.16 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:--j7} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --enable-shared=yes \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS BUG-REPORTING COPYING* HACKING NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/liboil/slack-desc b/source/l/liboil/slack-desc new file mode 100644 index 000000000..c66fb6df0 --- /dev/null +++ b/source/l/liboil/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +liboil: liboil (a library of simple functions) +liboil: +liboil: Liboil is a library of simple functions that are optimized for +liboil: various CPUs. These functions are generally loops implementing +liboil: simple algorithms, such as converting an array of N integers to +liboil: floating-point numbers or multiplying and summing an array of N +liboil: numbers. Such functions are candidates for significant optimization +liboil: using various techniques, especially by using extended instructions +liboil: provided by modern CPUs (Altivec, MMX, SSE, etc.). +liboil: +liboil: diff --git a/source/l/libpng/libpng.SlackBuild b/source/l/libpng/libpng.SlackBuild new file mode 100755 index 000000000..adf477bb3 --- /dev/null +++ b/source/l/libpng/libpng.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.37 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libpng +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf libpng-$VERSION +tar xjvf $CWD/libpng-$VERSION.tar.bz2 || exit 1 +cd libpng-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Might as well link to -lz -lm, since the ./configure seems +# to be doing it that way now... finally. That'll prevent +# a couple of emails a week. :-) +zcat $CWD/libpng.libs.diff.gz | patch -p1 --verbose || exit 1 + +# Need this to substitute macros, but we'll keep using the +# pre-built Makefile for now anyway... +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} + +# Link the custom makefile: +ln -sf scripts/makefile.linux ./Makefile + +make -j4 prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} || exit 1 +make install prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} DESTDIR=$PKG + +# This symlink is needed to keep old applications running: +# I guess the real lib used the major number 3, then 0 for +# a short while, and now .3 again. Hopefully it will stay +# this way as it was .3 in Slackware 10.2. One can hope. +( cd $PKG/usr/lib${LIBDIRSUFFIX} + if [ ! -e libpng.so.0 -a -e libpng.so.3 ]; then + ln -sf libpng.so.3 libpng.so.0 + fi +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/usr/doc/libpng-$VERSION +cp -a \ + ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \ + libpng*.txt example.c \ + $PKG/usr/doc/libpng-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libpng-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libpng/libpng.libs.diff b/source/l/libpng/libpng.libs.diff new file mode 100644 index 000000000..814365f6f --- /dev/null +++ b/source/l/libpng/libpng.libs.diff @@ -0,0 +1,18 @@ +diff -ruN libpng-1.2.12/scripts/makefile.linux libpng-1.2.12-ldhack/scripts/makefile.linux +--- libpng-1.2.12/scripts/makefile.linux 2006-06-27 22:22:40.000000000 +0200 ++++ libpng-1.2.12-ldhack/scripts/makefile.linux 2006-08-25 14:27:08.000000000 +0200 +@@ -110,12 +110,12 @@ + $(LN_SF) $(LIBSOVER) $(LIBSOMAJ) + + $(LIBSOVER): $(OBJSDLL) +- $(CC) -shared -Wl,-soname,$(LIBSOMAJ) -o $(LIBSOVER) $(OBJSDLL) ++ $(CC) -shared -Wl,-soname,$(LIBSOMAJ) -o $(LIBSOVER) $(OBJSDLL) -lm -lz + + $(OLDSOVER): $(OBJSDLL) + $(CC) -shared -Wl,-soname,$(OLDSOMAJ) \ + -o $(OLDSOVER) \ +- $(OBJSDLL) ++ $(OBJSDLL) -lm -lz + + pngtest: pngtest.o $(LIBSO) + $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) diff --git a/source/l/libpng/slack-desc b/source/l/libpng/slack-desc new file mode 100644 index 000000000..54d1d0f92 --- /dev/null +++ b/source/l/libpng/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libpng: libpng (Portable Network Graphics library) +libpng: +libpng: PNG (Portable Network Graphics) is an extensible file format for the +libpng: lossless, portable, well-compressed storage of raster images. PNG +libpng: provides a patent-free replacement for GIF and can also replace many +libpng: common uses of TIFF. Indexed-color, grayscale, and truecolor images +libpng: are supported, plus an optional alpha channel. Sample depths range +libpng: from 1 to 16 bits. +libpng: +libpng: +libpng: diff --git a/source/l/libraw1394/README b/source/l/libraw1394/README new file mode 100644 index 000000000..6f09d29a4 --- /dev/null +++ b/source/l/libraw1394/README @@ -0,0 +1,3 @@ +libraw1394 provides direct access to the IEEE 1394 bus through +the Linux 1394 subsystem's raw1394 user space interface. +You will need to load the raw1394 module to use the resulting package. diff --git a/source/l/libraw1394/libraw1394.SlackBuild b/source/l/libraw1394/libraw1394.SlackBuild new file mode 100755 index 000000000..7b274c814 --- /dev/null +++ b/source/l/libraw1394/libraw1394.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2007 Pierre Cazenave +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman + +VERSION=2.0.0 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:--j7} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" + elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libraw1394 +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $TMP/libraw1394-$VERSION +tar xvf $CWD/libraw1394-$VERSION.tar.bz2 || exit 1 +cd libraw1394-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/libraw1394-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README \ + $PKG/usr/doc/libraw1394-$VERSION +find $PKG/usr/doc/libraw1394-$VERSION -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libraw1394-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libraw1394/libraw1394.info b/source/l/libraw1394/libraw1394.info new file mode 100644 index 000000000..c1657c5b3 --- /dev/null +++ b/source/l/libraw1394/libraw1394.info @@ -0,0 +1,5 @@ +PRGNAM=libraw1394 +VERSION=1.3.0 +HOMEPAGE=www.linux1394.org/ +DOWNLOAD=http://www.linux1394.org/dl/libraw1394-1.3.0.tar.gz +MD5SUM=c5d9ab62bd25dba96af010b3471e816a diff --git a/source/l/libraw1394/slack-desc b/source/l/libraw1394/slack-desc new file mode 100644 index 000000000..7e93533ff --- /dev/null +++ b/source/l/libraw1394/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------| +libraw1394: libraw1394 (user space IEEE 1394 driver) +libraw1394: +libraw1394: libraw1394 provides direct access to the IEEE 1394 bus through +libraw1394: the Linux 1394 subsystem's raw1394 user space interface. +libraw1394: +libraw1394: Homepage: http://www.linux1394.org/ +libraw1394: +libraw1394: +libraw1394: +libraw1394: +libraw1394: diff --git a/source/l/librsvg/librsvg.SlackBuild b/source/l/librsvg/librsvg.SlackBuild new file mode 100755 index 000000000..556a54cf1 --- /dev/null +++ b/source/l/librsvg/librsvg.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Slackware build script for librsvg + + +VERSION=2.26.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-librsvg + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf librsvg-$VERSION +tar xvf $CWD/librsvg-$VERSION.tar.bz2 || exit 1 +cd librsvg-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Patch configure to detect seamonkey-config or mozilla-config +zcat $CWD/librsvg_seamonkey-config.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --mandir=/usr/man \ + --enable-static=no \ + --with-svgz \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/librsvg-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* TODO \ + $PKG/usr/doc/librsvg-$VERSION +( cd $PKG/usr/doc/librsvg-$VERSION ; ln -s /usr/share/gtk-doc/html/rsvg html ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/librsvg-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/librsvg/librsvg_seamonkey-config.diff b/source/l/librsvg/librsvg_seamonkey-config.diff new file mode 100644 index 000000000..48f830e76 --- /dev/null +++ b/source/l/librsvg/librsvg_seamonkey-config.diff @@ -0,0 +1,12 @@ +diff -Nur librsvg-2.22.3.orig/configure librsvg-2.22.3/configure +--- librsvg-2.22.3.orig/configure 2008-09-22 19:54:49.000000000 -0500 ++++ librsvg-2.22.3/configure 2008-10-05 17:10:04.772100035 -0500 +@@ -24636,7 +24636,7 @@ + + if test "x$test_mozilla_plugin" != "xno"; then + if test -z "$MOZILLA_CONFIG"; then +- for ac_prog in mozilla-config firefox-config xulrunner-config ++ for ac_prog in mozilla-config firefox-config xulrunner-config seamonkey-config + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 diff --git a/source/l/librsvg/slack-desc b/source/l/librsvg/slack-desc new file mode 100644 index 000000000..1c1a3a80b --- /dev/null +++ b/source/l/librsvg/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +librsvg: librsvg (SVG library) +librsvg: +librsvg: Library for handling SVG (Scalable Vector Graphics). +librsvg: +librsvg: +librsvg: +librsvg: +librsvg: +librsvg: +librsvg: +librsvg: diff --git a/source/l/libspectre/libspectre.SlackBuild b/source/l/libspectre/libspectre.SlackBuild new file mode 100755 index 000000000..e8dcdca93 --- /dev/null +++ b/source/l/libspectre/libspectre.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=libspectre +VERSION=0.2.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README* TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libspectre/slack-desc b/source/l/libspectre/slack-desc new file mode 100644 index 000000000..c0341aac8 --- /dev/null +++ b/source/l/libspectre/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------| +libspectre: libspectre (ghostscript wrapper library) +libspectre: +libspectre: libspectre is a small wrapper library for ghostscript, which is +libspectre: used for rendering Postscript documents. The goal of libspectre +libspectre: is to provide a convenient, easy to use API for writing programs +libspectre: which handle and render Postscript documents. +libspectre: +libspectre: +libspectre: +libspectre: +libspectre: diff --git a/source/l/libtermcap/libtermcap.SlackBuild b/source/l/libtermcap/libtermcap.SlackBuild new file mode 100755 index 000000000..d306fe66a --- /dev/null +++ b/source/l/libtermcap/libtermcap.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-7} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libtermcap + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xzvf $CWD/termcap-compat_$VERSION.tar.gz +cd termcap-compat-$VERSION +chown -R root.root . +zcat $CWD/termcap-compat_$VERSION.diff.gz | patch -p1 --verbose --backup --suffix=.orig +zcat $CWD/termcap.h.diff.gz | patch -p0 --verbose --backup --suffix=.orig +zcat $CWD/termcap.bufsize.diff.gz | patch -p1 --verbose --backup --suffix=.orig + +make + +# Install stuff manually: +mkdir -p $PKG/lib${LIBDIRSUFFIX} $PKG/usr/lib${LIBDIRSUFFIX} \ + $PKG/usr/{include,info} +install -m755 libtermcap.so.* $PKG/lib${LIBDIRSUFFIX}/ +install -m644 libtermcap.a $PKG/usr/lib${LIBDIRSUFFIX}/ +install -m644 termcap.h $PKG/usr/include/ +install -m644 termcap.info* $PKG/usr/info/ + +( cd $PKG/lib${LIBDIRSUFFIX} ; ldconfig -n . ; chown root:root libtermcap* ) +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libermcap.so* + ln -sf /lib${LIBDIRSUFFIX}/$(basename $(find $PKG/lib${LIBDIRSUFFIX} -type f)) libtermcap.so +) + +# Save docs: +mkdir -p $PKG/usr/doc/termcap-$VERSION +cp -a ChangeLog debian/changelog README $PKG/usr/doc/termcap-$VERSION + +# Compress the info pages: +( cd $PKG/usr/info ; gzip -9f *.info* ) + +# Add the package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/libtermcap-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/libtermcap/slack-desc b/source/l/libtermcap/slack-desc new file mode 100644 index 000000000..8a5b9bb6f --- /dev/null +++ b/source/l/libtermcap/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libtermcap: libtermcap (GNU termcap library) +libtermcap: +libtermcap: This is the GNU termcap library -- a library of C functions that +libtermcap: enable programs to send control strings to terminals in a way +libtermcap: independent of the terminal type. Most of this package is also +libtermcap: distributed with GNU Emacs, but it is available in this separate +libtermcap: distribution to make it easier to install as -ltermcap. +libtermcap: +libtermcap: +libtermcap: +libtermcap: diff --git a/source/l/libtermcap/termcap-compat_1.2.3.diff b/source/l/libtermcap/termcap-compat_1.2.3.diff new file mode 100644 index 000000000..4c7cdea85 --- /dev/null +++ b/source/l/libtermcap/termcap-compat_1.2.3.diff @@ -0,0 +1,12 @@ +--- ./tparam.c.orig Thu Feb 14 17:10:50 2002 ++++ ./tparam.c Thu Feb 14 17:11:13 2002 +@@ -24,9 +24,6 @@ + #undef STDC_HEADERS + #define STDC_HEADERS + #define HAVE_UNISTD_H +-#if defined(HAVE_STRING_H) || defined(STDC_HEADERS) +-#define bcopy(s, d, n) memcpy ((d), (s), (n)) +-#endif + #endif + + #ifdef STDC_HEADERS diff --git a/source/l/libtermcap/termcap-compat_1.2.3.dsc b/source/l/libtermcap/termcap-compat_1.2.3.dsc new file mode 100644 index 000000000..7e5cb0523 --- /dev/null +++ b/source/l/libtermcap/termcap-compat_1.2.3.dsc @@ -0,0 +1,22 @@ +-----BEGIN PGP SIGNED MESSAGE----- + +Source: termcap-compat +Version: 1.2.3 +Binary: termcap-compat +Maintainer: Christian Hudon +Architecture: i386 +Standards-Version: 3.1.1.1 +Build-Depends: altgcc, libc5-altdev +Files: + 698f1e510845b8c0f15ea8c3010c35ed 552156 termcap-compat_1.2.3.tar.gz + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.0.1 (GNU/Linux) +Comment: For info see http://www.gnupg.org + +iQCVAwUBOJpLoo4/+LDuJkz5AQFJkgP9FUqc1PSkQLfcukMK3rdeIDmoiCjX7MxW +xi5A6D/PV0R4K/USchVgj6Q1haf0hf3tQ4TrMFQ4XmapPppcb0gMlDrr33QxN6Hk +u9AWalxPwK3eqQPcuJhZUZvbTQqt2wp5CH5ooQCaPNHBlIo2EvFVnmGcz9Fz5Nty +BoG1ICSAAw8= +=JWZJ +-----END PGP SIGNATURE----- diff --git a/source/l/libtermcap/termcap.bufsize.diff b/source/l/libtermcap/termcap.bufsize.diff new file mode 100644 index 000000000..59835d165 --- /dev/null +++ b/source/l/libtermcap/termcap.bufsize.diff @@ -0,0 +1,11 @@ +--- ./termcap.c.orig 1999-10-26 19:44:37.000000000 -0700 ++++ ./termcap.c 2003-01-03 14:22:13.000000000 -0800 +@@ -43,7 +43,7 @@ + speed_t ospeed; + int tputs_baud_rate; + char PC; +-int tgetent_bufsize = 1024; ++int tgetent_bufsize = 4096; + + /* We store a terminal description in a linked list. */ + struct tc_ent { diff --git a/source/l/libtermcap/termcap.h.diff b/source/l/libtermcap/termcap.h.diff new file mode 100644 index 000000000..bbcb4a619 --- /dev/null +++ b/source/l/libtermcap/termcap.h.diff @@ -0,0 +1,29 @@ +--- termcap.h.orig Tue May 9 18:54:56 2000 ++++ termcap.h Tue May 9 19:25:08 2000 +@@ -34,7 +34,11 @@ + + __BEGIN_DECLS + ++#if defined(__PMT) /* XXX glibc-2.1 wants this */ ++typedef int (*outfuntype) __PMT((int)); ++#else + typedef int (*outfuntype) __P((int)); ++#endif + + extern int tgetent __P((void *__buffer, __const char *__termtype)); + extern int tgetflag __P((__const char *__name)); +@@ -44,8 +48,14 @@ + int __vpos)); + extern char *tparam __P((__const char *__ctlstring, void *__buffer, + int __size, ...)); ++ ++#if defined(__PMT) /* XXX glibc-2.1 wants this */ ++extern void tputs __P((__const char *__string, int __nlines, ++ int (*) __PMT((int)))); ++#else + extern void tputs __P((__const char *__string, int __nlines, + int (*) __P((int)))); ++#endif + + __END_DECLS + diff --git a/source/l/libtheora/libtheora.SlackBuild b/source/l/libtheora/libtheora.SlackBuild new file mode 100755 index 000000000..b7e22b7ba --- /dev/null +++ b/source/l/libtheora/libtheora.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libtheora +VERSION=${VERSION:-1.0} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Use the source, Luke. +rm -rf $PKG/usr/share/doc +rmdir $PKG/usr/share + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS CHANGES COPYING LICENSE README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +cat << EOF > $PKG/usr/doc/${PKGNAM}-$VERSION/more-docs-in-source.txt +See the docs directory in the source archive for more detailed +technical documention. +EOF + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libtheora/slack-desc b/source/l/libtheora/slack-desc new file mode 100644 index 000000000..114ad64ac --- /dev/null +++ b/source/l/libtheora/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libtheora: libtheora (Theora video codec library) +libtheora: +libtheora: Theora is Xiph.Org's first publicly released video codec, intended +libtheora: for use within the Foundation's Ogg multimedia streaming system. +libtheora: +libtheora: The Theora bitstream format was frozen after the alpha3 release. This +libtheora: means that files produced by the alpha3 encoder will always be +libtheora: playable according to the Theora I specification. Traditionally +libtheora: alpha means a proof of concept, not a production-ready release. +libtheora: However the code is very robust, ready for and indeed in general use. +libtheora: diff --git a/source/l/libtiff/libtiff.SlackBuild b/source/l/libtiff/libtiff.SlackBuild new file mode 100755 index 000000000..9eb3e5a4e --- /dev/null +++ b/source/l/libtiff/libtiff.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.8.2 +ARCH=${ARCH:-x86_64} +BUILD=3 + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libtiff + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf tiff-$VERSION +tar xjvf $CWD/tiff-$VERSION.tar.bz2 +cd tiff-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/tiff-3.8.2.goo-sec.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/tiff-3.8.2.tiffsplit.commandline.overflow.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --program-prefix="" \ + --program-suffix="" \ + $ARCH-slackware-linux + +make -j3 || exit 1 +make install DESTDIR=$PKG || exit 1 +rm -r $PKG/usr/share +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/lib*.a +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libtiff*.so.* +mkdir -p $PKG/usr/doc/libtiff-$VERSION +cp -a \ + COPYRIGHT README RELEASE-DATE TODO VERSION \ + $PKG/usr/doc/libtiff-$VERSION + +mv $PKG/usr/local/man $PKG/usr +rmdir $PKG/usr/local + +# I'd use that shiny new manpage script here but all the +# .3 manpages end with '.3tiff'. +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/libtiff-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libtiff/slack-desc b/source/l/libtiff/slack-desc new file mode 100644 index 000000000..42c79f47d --- /dev/null +++ b/source/l/libtiff/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libtiff: libtiff (a library for reading and writing TIFF files) +libtiff: +libtiff: This package provides support for the Tag Image File Format (TIFF), +libtiff: a widely used format for storing image data. Included is the libtiff +libtiff: library (for reading and writing TIFF files), and a collection of +libtiff: tools for working with TIFF images. +libtiff: +libtiff: +libtiff: +libtiff: +libtiff: diff --git a/source/l/libtiff/tiff-3.8.2.goo-sec.diff b/source/l/libtiff/tiff-3.8.2.goo-sec.diff new file mode 100644 index 000000000..a5f9e6d5a --- /dev/null +++ b/source/l/libtiff/tiff-3.8.2.goo-sec.diff @@ -0,0 +1,661 @@ +--- ./libtiff/tif_read.c.orig 2005-12-21 06:33:56.000000000 -0600 ++++ ./libtiff/tif_read.c 2006-08-17 22:02:40.000000000 -0500 +@@ -31,6 +31,8 @@ + #include "tiffiop.h" + #include + ++#include ++ + int TIFFFillStrip(TIFF*, tstrip_t); + int TIFFFillTile(TIFF*, ttile_t); + static int TIFFStartStrip(TIFF*, tstrip_t); +@@ -272,7 +274,13 @@ + if ((tif->tif_flags & TIFF_MYBUFFER) && tif->tif_rawdata) + _TIFFfree(tif->tif_rawdata); + tif->tif_flags &= ~TIFF_MYBUFFER; +- if ( td->td_stripoffset[strip] + bytecount > tif->tif_size) { ++ /* ++ * This sanity check could potentially overflow, causing an OOB read. ++ * verify that offset + bytecount is > offset. ++ * -- taviso@google.com 14 Jun 2006 ++ */ ++ if ( td->td_stripoffset[strip] + bytecount > tif->tif_size || ++ bytecount > (UINT_MAX - td->td_stripoffset[strip])) { + /* + * This error message might seem strange, but it's + * what would happen if a read were done instead. +@@ -470,7 +478,13 @@ + if ((tif->tif_flags & TIFF_MYBUFFER) && tif->tif_rawdata) + _TIFFfree(tif->tif_rawdata); + tif->tif_flags &= ~TIFF_MYBUFFER; +- if ( td->td_stripoffset[tile] + bytecount > tif->tif_size) { ++ /* ++ * We must check this calculation doesnt overflow, potentially ++ * causing an OOB read. ++ * -- taviso@google.com 15 Jun 2006 ++ */ ++ if (td->td_stripoffset[tile] + bytecount > tif->tif_size || ++ bytecount > (UINT_MAX - td->td_stripoffset[tile])) { + tif->tif_curtile = NOTILE; + return (0); + } +--- ./libtiff/tif_next.c.orig 2005-12-21 06:33:56.000000000 -0600 ++++ ./libtiff/tif_next.c 2006-08-17 22:02:40.000000000 -0500 +@@ -105,11 +105,16 @@ + * as codes of the form + * until we've filled the scanline. + */ ++ /* ++ * Ensure the run does not exceed the scanline ++ * bounds, potentially resulting in a security issue. ++ * -- taviso@google.com 14 Jun 2006. ++ */ + op = row; + for (;;) { + grey = (n>>6) & 0x3; + n &= 0x3f; +- while (n-- > 0) ++ while (n-- > 0 && npixels < imagewidth) + SETPIXEL(op, grey); + if (npixels >= (int) imagewidth) + break; +--- ./libtiff/tif_jpeg.c.orig 2006-03-21 10:42:50.000000000 -0600 ++++ ./libtiff/tif_jpeg.c 2006-08-17 22:02:40.000000000 -0500 +@@ -722,15 +722,31 @@ + segment_width = TIFFhowmany(segment_width, sp->h_sampling); + segment_height = TIFFhowmany(segment_height, sp->v_sampling); + } +- if (sp->cinfo.d.image_width != segment_width || +- sp->cinfo.d.image_height != segment_height) { ++ if (sp->cinfo.d.image_width < segment_width || ++ sp->cinfo.d.image_height < segment_height) { + TIFFWarningExt(tif->tif_clientdata, module, + "Improper JPEG strip/tile size, expected %dx%d, got %dx%d", + segment_width, + segment_height, + sp->cinfo.d.image_width, + sp->cinfo.d.image_height); ++ } ++ ++ if (sp->cinfo.d.image_width > segment_width || ++ sp->cinfo.d.image_height > segment_height) { ++ /* ++ * This case could be dangerous, if the strip or tile size has been ++ * reported as less than the amount of data jpeg will return, some ++ * potential security issues arise. Catch this case and error out. ++ * -- taviso@google.com 14 Jun 2006 ++ */ ++ TIFFErrorExt(tif->tif_clientdata, module, ++ "JPEG strip/tile size exceeds expected dimensions," ++ "expected %dx%d, got %dx%d", segment_width, segment_height, ++ sp->cinfo.d.image_width, sp->cinfo.d.image_height); ++ return (0); + } ++ + if (sp->cinfo.d.num_components != + (td->td_planarconfig == PLANARCONFIG_CONTIG ? + td->td_samplesperpixel : 1)) { +@@ -761,6 +777,22 @@ + sp->cinfo.d.comp_info[0].v_samp_factor, + sp->h_sampling, sp->v_sampling); + ++ /* ++ * There are potential security issues here for decoders that ++ * have already allocated buffers based on the expected sampling ++ * factors. Lets check the sampling factors dont exceed what ++ * we were expecting. ++ * -- taviso@google.com 14 June 2006 ++ */ ++ if (sp->cinfo.d.comp_info[0].h_samp_factor > sp->h_sampling || ++ sp->cinfo.d.comp_info[0].v_samp_factor > sp->v_sampling) { ++ TIFFErrorExt(tif->tif_clientdata, module, ++ "Cannot honour JPEG sampling factors that" ++ " exceed those specified."); ++ return (0); ++ } ++ ++ + /* + * XXX: Files written by the Intergraph software + * has different sampling factors stored in the +@@ -1521,15 +1553,18 @@ + { + JPEGState *sp = JState(tif); + +- assert(sp != 0); ++ /* assert(sp != 0); */ + + tif->tif_tagmethods.vgetfield = sp->vgetparent; + tif->tif_tagmethods.vsetfield = sp->vsetparent; + +- if( sp->cinfo_initialized ) +- TIFFjpeg_destroy(sp); /* release libjpeg resources */ +- if (sp->jpegtables) /* tag value */ +- _TIFFfree(sp->jpegtables); ++ if (sp != NULL) { ++ if( sp->cinfo_initialized ) ++ TIFFjpeg_destroy(sp); /* release libjpeg resources */ ++ if (sp->jpegtables) /* tag value */ ++ _TIFFfree(sp->jpegtables); ++ } ++ + _TIFFfree(tif->tif_data); /* release local state */ + tif->tif_data = NULL; + +@@ -1541,6 +1576,7 @@ + { + JPEGState* sp = JState(tif); + TIFFDirectory* td = &tif->tif_dir; ++ const TIFFFieldInfo* fip; + uint32 v32; + + assert(sp != NULL); +@@ -1606,7 +1642,13 @@ + default: + return (*sp->vsetparent)(tif, tag, ap); + } +- TIFFSetFieldBit(tif, _TIFFFieldWithTag(tif, tag)->field_bit); ++ ++ if ((fip = _TIFFFieldWithTag(tif, tag))) { ++ TIFFSetFieldBit(tif, fip->field_bit); ++ } else { ++ return (0); ++ } ++ + tif->tif_flags |= TIFF_DIRTYDIRECT; + return (1); + } +@@ -1726,7 +1768,11 @@ + { + JPEGState* sp = JState(tif); + +- assert(sp != NULL); ++ /* assert(sp != NULL); */ ++ if (sp == NULL) { ++ TIFFWarningExt(tif->tif_clientdata, "JPEGPrintDir", "Unknown JPEGState"); ++ return; ++ } + + (void) flags; + if (TIFFFieldSet(tif,FIELD_JPEGTABLES)) +--- ./libtiff/tif_dir.c.orig 2006-03-21 10:42:50.000000000 -0600 ++++ ./libtiff/tif_dir.c 2006-08-17 22:02:40.000000000 -0500 +@@ -122,6 +122,7 @@ + { + static const char module[] = "_TIFFVSetField"; + ++ const TIFFFieldInfo* fip = _TIFFFindFieldInfo(tif, tag, TIFF_ANY); + TIFFDirectory* td = &tif->tif_dir; + int status = 1; + uint32 v32, i, v; +@@ -195,10 +196,12 @@ + break; + case TIFFTAG_ORIENTATION: + v = va_arg(ap, uint32); ++ const TIFFFieldInfo* fip; + if (v < ORIENTATION_TOPLEFT || ORIENTATION_LEFTBOT < v) { ++ fip = _TIFFFieldWithTag(tif, tag); + TIFFWarningExt(tif->tif_clientdata, tif->tif_name, + "Bad value %lu for \"%s\" tag ignored", +- v, _TIFFFieldWithTag(tif, tag)->field_name); ++ v, fip ? fip->field_name : "Unknown"); + } else + td->td_orientation = (uint16) v; + break; +@@ -387,11 +390,15 @@ + * happens, for example, when tiffcp is used to convert between + * compression schemes and codec-specific tags are blindly copied. + */ ++ /* ++ * better not dereference fip if it is NULL. ++ * -- taviso@google.com 15 Jun 2006 ++ */ + if(fip == NULL || fip->field_bit != FIELD_CUSTOM) { + TIFFErrorExt(tif->tif_clientdata, module, + "%s: Invalid %stag \"%s\" (not supported by codec)", + tif->tif_name, isPseudoTag(tag) ? "pseudo-" : "", +- _TIFFFieldWithTag(tif, tag)->field_name); ++ fip ? fip->field_name : "Unknown"); + status = 0; + break; + } +@@ -468,7 +475,7 @@ + if (fip->field_type == TIFF_ASCII) + _TIFFsetString((char **)&tv->value, va_arg(ap, char *)); + else { +- tv->value = _TIFFmalloc(tv_size * tv->count); ++ tv->value = _TIFFCheckMalloc(tif, tv_size, tv->count, "Tag Value"); + if (!tv->value) { + status = 0; + goto end; +@@ -563,7 +570,7 @@ + } + } + if (status) { +- TIFFSetFieldBit(tif, _TIFFFieldWithTag(tif, tag)->field_bit); ++ TIFFSetFieldBit(tif, fip->field_bit); + tif->tif_flags |= TIFF_DIRTYDIRECT; + } + +@@ -572,12 +579,12 @@ + return (status); + badvalue: + TIFFErrorExt(tif->tif_clientdata, module, "%s: Bad value %d for \"%s\"", +- tif->tif_name, v, _TIFFFieldWithTag(tif, tag)->field_name); ++ tif->tif_name, v, fip ? fip->field_name : "Unknown"); + va_end(ap); + return (0); + badvalue32: + TIFFErrorExt(tif->tif_clientdata, module, "%s: Bad value %ld for \"%s\"", +- tif->tif_name, v32, _TIFFFieldWithTag(tif, tag)->field_name); ++ tif->tif_name, v32, fip ? fip->field_name : "Unknown"); + va_end(ap); + return (0); + } +@@ -813,12 +820,16 @@ + * If the client tries to get a tag that is not valid + * for the image's codec then we'll arrive here. + */ ++ /* ++ * dont dereference fip if it's NULL. ++ * -- taviso@google.com 15 Jun 2006 ++ */ + if( fip == NULL || fip->field_bit != FIELD_CUSTOM ) + { + TIFFErrorExt(tif->tif_clientdata, "_TIFFVGetField", + "%s: Invalid %stag \"%s\" (not supported by codec)", + tif->tif_name, isPseudoTag(tag) ? "pseudo-" : "", +- _TIFFFieldWithTag(tif, tag)->field_name); ++ fip ? fip->field_name : "Unknown"); + ret_val = 0; + break; + } +--- ./libtiff/tif_pixarlog.c.orig 2006-03-21 10:42:50.000000000 -0600 ++++ ./libtiff/tif_pixarlog.c 2006-08-17 22:02:40.000000000 -0500 +@@ -768,7 +768,19 @@ + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabArrayOfShort(up, nsamples); + +- for (i = 0; i < nsamples; i += llen, up += llen) { ++ /* ++ * if llen is not an exact multiple of nsamples, the decode operation ++ * may overflow the output buffer, so truncate it enough to prevent that ++ * but still salvage as much data as possible. ++ * -- taviso@google.com 14th June 2006 ++ */ ++ if (nsamples % llen) ++ TIFFWarningExt(tif->tif_clientdata, module, ++ "%s: stride %lu is not a multiple of sample count, " ++ "%lu, data truncated.", tif->tif_name, llen, nsamples); ++ ++ ++ for (i = 0; i < nsamples - (nsamples % llen); i += llen, up += llen) { + switch (sp->user_datafmt) { + case PIXARLOGDATAFMT_FLOAT: + horizontalAccumulateF(up, llen, sp->stride, +--- ./libtiff/tif_dirread.c.orig 2006-03-21 10:42:50.000000000 -0600 ++++ ./libtiff/tif_dirread.c 2006-08-17 22:02:40.000000000 -0500 +@@ -29,6 +29,9 @@ + * + * Directory Read Support Routines. + */ ++ ++#include ++ + #include "tiffiop.h" + + #define IGNORE 0 /* tag placeholder used below */ +@@ -81,6 +84,7 @@ + uint16 dircount; + toff_t nextdiroff; + int diroutoforderwarning = 0; ++ int compressionknown = 0; + toff_t* new_dirlist; + + tif->tif_diroff = tif->tif_nextdiroff; +@@ -147,13 +151,20 @@ + } else { + toff_t off = tif->tif_diroff; + +- if (off + sizeof (uint16) > tif->tif_size) { +- TIFFErrorExt(tif->tif_clientdata, module, +- "%s: Can not read TIFF directory count", +- tif->tif_name); +- return (0); ++ /* ++ * Check for integer overflow when validating the dir_off, otherwise ++ * a very high offset may cause an OOB read and crash the client. ++ * -- taviso@google.com, 14 Jun 2006. ++ */ ++ if (off + sizeof (uint16) > tif->tif_size || ++ off > (UINT_MAX - sizeof(uint16))) { ++ TIFFErrorExt(tif->tif_clientdata, module, ++ "%s: Can not read TIFF directory count", ++ tif->tif_name); ++ return (0); + } else +- _TIFFmemcpy(&dircount, tif->tif_base + off, sizeof (uint16)); ++ _TIFFmemcpy(&dircount, tif->tif_base + off, ++ sizeof (uint16)); + off += sizeof (uint16); + if (tif->tif_flags & TIFF_SWAB) + TIFFSwabShort(&dircount); +@@ -254,6 +265,7 @@ + while (fix < tif->tif_nfields && + tif->tif_fieldinfo[fix]->field_tag < dp->tdir_tag) + fix++; ++ + if (fix >= tif->tif_nfields || + tif->tif_fieldinfo[fix]->field_tag != dp->tdir_tag) { + +@@ -264,17 +276,23 @@ + dp->tdir_tag, + dp->tdir_tag, + dp->tdir_type); +- +- TIFFMergeFieldInfo(tif, +- _TIFFCreateAnonFieldInfo(tif, +- dp->tdir_tag, +- (TIFFDataType) dp->tdir_type), +- 1 ); ++ /* ++ * creating anonymous fields prior to knowing the compression ++ * algorithm (ie, when the field info has been merged) could cause ++ * crashes with pathological directories. ++ * -- taviso@google.com 15 Jun 2006 ++ */ ++ if (compressionknown) ++ TIFFMergeFieldInfo(tif, _TIFFCreateAnonFieldInfo(tif, dp->tdir_tag, ++ (TIFFDataType) dp->tdir_type), 1 ); ++ else goto ignore; ++ + fix = 0; + while (fix < tif->tif_nfields && + tif->tif_fieldinfo[fix]->field_tag < dp->tdir_tag) + fix++; + } ++ + /* + * Null out old tags that we ignore. + */ +@@ -326,6 +344,7 @@ + dp->tdir_type, dp->tdir_offset); + if (!TIFFSetField(tif, dp->tdir_tag, (uint16)v)) + goto bad; ++ else compressionknown++; + break; + /* XXX: workaround for broken TIFFs */ + } else if (dp->tdir_type == TIFF_LONG) { +@@ -540,6 +559,7 @@ + * Attempt to deal with a missing StripByteCounts tag. + */ + if (!TIFFFieldSet(tif, FIELD_STRIPBYTECOUNTS)) { ++ const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, TIFFTAG_STRIPBYTECOUNTS); + /* + * Some manufacturers violate the spec by not giving + * the size of the strips. In this case, assume there +@@ -556,7 +576,7 @@ + "%s: TIFF directory is missing required " + "\"%s\" field, calculating from imagelength", + tif->tif_name, +- _TIFFFieldWithTag(tif,TIFFTAG_STRIPBYTECOUNTS)->field_name); ++ fip ? fip->field_name : "Unknown"); + if (EstimateStripByteCounts(tif, dir, dircount) < 0) + goto bad; + /* +@@ -580,6 +600,7 @@ + } else if (td->td_nstrips == 1 + && td->td_stripoffset[0] != 0 + && BYTECOUNTLOOKSBAD) { ++ const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, TIFFTAG_STRIPBYTECOUNTS); + /* + * XXX: Plexus (and others) sometimes give a value of zero for + * a tag when they don't know what the correct value is! Try +@@ -589,13 +610,14 @@ + TIFFWarningExt(tif->tif_clientdata, module, + "%s: Bogus \"%s\" field, ignoring and calculating from imagelength", + tif->tif_name, +- _TIFFFieldWithTag(tif,TIFFTAG_STRIPBYTECOUNTS)->field_name); ++ fip ? fip->field_name : "Unknown"); + if(EstimateStripByteCounts(tif, dir, dircount) < 0) + goto bad; + } else if (td->td_planarconfig == PLANARCONFIG_CONTIG + && td->td_nstrips > 2 + && td->td_compression == COMPRESSION_NONE + && td->td_stripbytecount[0] != td->td_stripbytecount[1]) { ++ const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, TIFFTAG_STRIPBYTECOUNTS); + /* + * XXX: Some vendors fill StripByteCount array with absolutely + * wrong values (it can be equal to StripOffset array, for +@@ -604,7 +626,7 @@ + TIFFWarningExt(tif->tif_clientdata, module, + "%s: Wrong \"%s\" field, ignoring and calculating from imagelength", + tif->tif_name, +- _TIFFFieldWithTag(tif,TIFFTAG_STRIPBYTECOUNTS)->field_name); ++ fip ? fip->field_name : "Unknown"); + if (EstimateStripByteCounts(tif, dir, dircount) < 0) + goto bad; + } +@@ -870,7 +892,13 @@ + + register TIFFDirEntry *dp; + register TIFFDirectory *td = &tif->tif_dir; +- uint16 i; ++ ++ /* i is used to iterate over td->td_nstrips, so must be ++ * at least the same width. ++ * -- taviso@google.com 15 Jun 2006 ++ */ ++ ++ uint32 i; + + if (td->td_stripbytecount) + _TIFFfree(td->td_stripbytecount); +@@ -947,16 +975,18 @@ + static int + CheckDirCount(TIFF* tif, TIFFDirEntry* dir, uint32 count) + { ++ const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, dir->tdir_tag); ++ + if (count > dir->tdir_count) { + TIFFWarningExt(tif->tif_clientdata, tif->tif_name, + "incorrect count for field \"%s\" (%lu, expecting %lu); tag ignored", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name, ++ fip ? fip->field_name : "Unknown", + dir->tdir_count, count); + return (0); + } else if (count < dir->tdir_count) { + TIFFWarningExt(tif->tif_clientdata, tif->tif_name, + "incorrect count for field \"%s\" (%lu, expecting %lu); tag trimmed", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name, ++ fip ? fip->field_name : "Unknown", + dir->tdir_count, count); + return (1); + } +@@ -970,6 +1000,7 @@ + TIFFFetchData(TIFF* tif, TIFFDirEntry* dir, char* cp) + { + int w = TIFFDataWidth((TIFFDataType) dir->tdir_type); ++ const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, dir->tdir_tag); + tsize_t cc = dir->tdir_count * w; + + /* Check for overflow. */ +@@ -1013,7 +1044,7 @@ + bad: + TIFFErrorExt(tif->tif_clientdata, tif->tif_name, + "Error fetching data for field \"%s\"", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); ++ fip ? fip->field_name : "Unknown"); + return (tsize_t) 0; + } + +@@ -1039,10 +1070,12 @@ + static int + cvtRational(TIFF* tif, TIFFDirEntry* dir, uint32 num, uint32 denom, float* rv) + { ++ const TIFFFieldInfo* fip; + if (denom == 0) { ++ fip = _TIFFFieldWithTag(tif, dir->tdir_tag); + TIFFErrorExt(tif->tif_clientdata, tif->tif_name, + "%s: Rational with zero denominator (num = %lu)", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name, num); ++ fip ? fip->field_name : "Unknown", num); + return (0); + } else { + if (dir->tdir_type == TIFF_RATIONAL) +@@ -1159,6 +1192,20 @@ + static int + TIFFFetchShortPair(TIFF* tif, TIFFDirEntry* dir) + { ++ /* ++ * Prevent overflowing the v stack arrays below by performing a sanity ++ * check on tdir_count, this should never be greater than two. ++ * -- taviso@google.com 14 Jun 2006. ++ */ ++ if (dir->tdir_count > 2) { ++ const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, dir->tdir_tag); ++ TIFFWarningExt(tif->tif_clientdata, tif->tif_name, ++ "unexpected count for field \"%s\", %lu, expected 2; ignored.", ++ fip ? fip->field_name : "Unknown", ++ dir->tdir_count); ++ return 0; ++ } ++ + switch (dir->tdir_type) { + case TIFF_BYTE: + case TIFF_SBYTE: +@@ -1329,14 +1376,15 @@ + case TIFF_DOUBLE: + return (TIFFFetchDoubleArray(tif, dir, (double*) v)); + default: ++ { const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, dir->tdir_tag); + /* TIFF_NOTYPE */ + /* TIFF_ASCII */ + /* TIFF_UNDEFINED */ + TIFFErrorExt(tif->tif_clientdata, tif->tif_name, + "cannot read TIFF_ANY type %d for field \"%s\"", + dir->tdir_type, +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); +- return (0); ++ fip ? fip->field_name : "Unknown"); ++ return (0); } + } + return (1); + } +@@ -1351,6 +1399,9 @@ + int ok = 0; + const TIFFFieldInfo* fip = _TIFFFieldWithTag(tif, dp->tdir_tag); + ++ if (fip == NULL) { ++ return (0); ++ } + if (dp->tdir_count > 1) { /* array of values */ + char* cp = NULL; + +@@ -1493,6 +1544,7 @@ + TIFFFetchPerSampleShorts(TIFF* tif, TIFFDirEntry* dir, uint16* pl) + { + uint16 samples = tif->tif_dir.td_samplesperpixel; ++ const TIFFFieldInfo* fip; + int status = 0; + + if (CheckDirCount(tif, dir, (uint32) samples)) { +@@ -1510,9 +1562,10 @@ + + for (i = 1; i < check_count; i++) + if (v[i] != v[0]) { ++ fip = _TIFFFieldWithTag(tif, dir->tdir_tag); + TIFFErrorExt(tif->tif_clientdata, tif->tif_name, + "Cannot handle different per-sample values for field \"%s\"", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); ++ fip ? fip->field_name : "Unknown"); + goto bad; + } + *pl = v[0]; +@@ -1534,6 +1587,7 @@ + TIFFFetchPerSampleLongs(TIFF* tif, TIFFDirEntry* dir, uint32* pl) + { + uint16 samples = tif->tif_dir.td_samplesperpixel; ++ const TIFFFieldInfo* fip; + int status = 0; + + if (CheckDirCount(tif, dir, (uint32) samples)) { +@@ -1551,9 +1605,10 @@ + check_count = samples; + for (i = 1; i < check_count; i++) + if (v[i] != v[0]) { ++ fip = _TIFFFieldWithTag(tif, dir->tdir_tag); + TIFFErrorExt(tif->tif_clientdata, tif->tif_name, + "Cannot handle different per-sample values for field \"%s\"", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); ++ fip ? fip->field_name : "Unknown"); + goto bad; + } + *pl = v[0]; +@@ -1574,6 +1629,7 @@ + TIFFFetchPerSampleAnys(TIFF* tif, TIFFDirEntry* dir, double* pl) + { + uint16 samples = tif->tif_dir.td_samplesperpixel; ++ const TIFFFieldInfo* fip; + int status = 0; + + if (CheckDirCount(tif, dir, (uint32) samples)) { +@@ -1591,9 +1647,10 @@ + + for (i = 1; i < check_count; i++) + if (v[i] != v[0]) { ++ fip = _TIFFFieldWithTag(tif, dir->tdir_tag); + TIFFErrorExt(tif->tif_clientdata, tif->tif_name, + "Cannot handle different per-sample values for field \"%s\"", +- _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name); ++ fip ? fip->field_name : "Unknown"); + goto bad; + } + *pl = v[0]; +--- ./libtiff/tif_dirinfo.c.orig 2006-02-07 07:51:03.000000000 -0600 ++++ ./libtiff/tif_dirinfo.c 2006-08-17 22:02:40.000000000 -0500 +@@ -775,7 +775,8 @@ + TIFFErrorExt(tif->tif_clientdata, "TIFFFieldWithTag", + "Internal error, unknown tag 0x%x", + (unsigned int) tag); +- assert(fip != NULL); ++ /* assert(fip != NULL); */ ++ + /*NOTREACHED*/ + } + return (fip); +@@ -789,7 +790,8 @@ + if (!fip) { + TIFFErrorExt(tif->tif_clientdata, "TIFFFieldWithName", + "Internal error, unknown tag %s", field_name); +- assert(fip != NULL); ++ /* assert(fip != NULL); */ ++ + /*NOTREACHED*/ + } + return (fip); +--- ./libtiff/tif_fax3.c.orig 2006-03-21 10:42:50.000000000 -0600 ++++ ./libtiff/tif_fax3.c 2006-08-17 22:02:40.000000000 -0500 +@@ -1136,6 +1136,7 @@ + Fax3VSetField(TIFF* tif, ttag_t tag, va_list ap) + { + Fax3BaseState* sp = Fax3State(tif); ++ const TIFFFieldInfo* fip; + + assert(sp != 0); + assert(sp->vsetparent != 0); +@@ -1181,7 +1182,13 @@ + default: + return (*sp->vsetparent)(tif, tag, ap); + } +- TIFFSetFieldBit(tif, _TIFFFieldWithTag(tif, tag)->field_bit); ++ ++ if ((fip = _TIFFFieldWithTag(tif, tag))) { ++ TIFFSetFieldBit(tif, fip->field_bit); ++ } else { ++ return (0); ++ } ++ + tif->tif_flags |= TIFF_DIRTYDIRECT; + return (1); + } diff --git a/source/l/libtiff/tiff-3.8.2.tiffsplit.commandline.overflow.diff b/source/l/libtiff/tiff-3.8.2.tiffsplit.commandline.overflow.diff new file mode 100644 index 000000000..feb693fab --- /dev/null +++ b/source/l/libtiff/tiff-3.8.2.tiffsplit.commandline.overflow.diff @@ -0,0 +1,22 @@ +--- ./tools/tiffsplit.c.orig 2005-12-07 03:48:33.000000000 -0600 ++++ ./tools/tiffsplit.c 2006-08-17 22:03:36.000000000 -0500 +@@ -60,14 +60,16 @@ + fprintf(stderr, "usage: tiffsplit input.tif [prefix]\n"); + return (-3); + } +- if (argc > 2) +- strcpy(fname, argv[2]); ++ if (argc > 2) { ++ strncpy(fname, argv[2], 1024); ++ fname[1024] = '\0'; ++ } + in = TIFFOpen(argv[1], "r"); + if (in != NULL) { + do { + char path[1024+1]; + newfilename(); +- strcpy(path, fname); ++ strncpy(path, fname, 1020); + strcat(path, ".tif"); + out = TIFFOpen(path, TIFFIsBigEndian(in)?"wb":"wl"); + if (out == NULL) diff --git a/source/l/libungif/libungif.SlackBuild b/source/l/libungif/libungif.SlackBuild new file mode 100755 index 000000000..5e9ff8c06 --- /dev/null +++ b/source/l/libungif/libungif.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.1.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-4} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libungif +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf libungif-$VERSION +tar xvf $CWD/libungif-$VERSION.tar.bz2 || exit 1 +cd libungif-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-x=no \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/libungif-$VERSION +cp -a \ + AUTHORS BUGS COPYING ChangeLog INSTALL NEWS ONEWS README TODO \ + UNCOMPRESSED_GIF doc \ + $PKG/usr/doc/libungif-$VERSION +rm $PKG/usr/doc/libungif-$VERSION/doc/Makefile* + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +## I don't believe we need all this slop. Correct me if I'm wrong. +# I've been corrected... +#rm -rf $PKG/usr/bin + +( cd $PKG/usr/lib${LIBDIRSUFFIX} + SOVER=$(/bin/ls libungif.so.*.*.* | cut -f 3-5 -d .) + ln -sf libungif.so.$SOVER libgif.so.$SOVER + ln -sf libgif.so.$SOVER libgif.so.4 + ln -sf libgif.so.4 libgif.so + ln -sf libungif.a libgif.a ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libungif-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libungif/slack-desc b/source/l/libungif/slack-desc new file mode 100644 index 000000000..144ee02a9 --- /dev/null +++ b/source/l/libungif/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libungif: libungif (GIF image format library) +libungif: +libungif: A library to load and save (uncompressed only) images using GIF, +libungif: or Graphics Interchange Format. GIF was introduced by CompuServe +libungif: in 1987, but is still widely used today (especially on web pages.) +libungif: +libungif: +libungif: +libungif: +libungif: +libungif: diff --git a/source/l/libusb/libusb.SlackBuild b/source/l/libusb/libusb.SlackBuild new file mode 100755 index 000000000..90db52ffa --- /dev/null +++ b/source/l/libusb/libusb.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-0.1.12} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libusb + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf libusb-$VERSION +tar xzvf $CWD/libusb-$VERSION.tar.gz +cd libusb-$VERSION + +# We used to apply a Debian patch here, and it's possible +# that other archs need it still, but vanilla upstream is +# working on ia32 just fine. +#zcat $CWD/libusb_0.1.12-2.diff.gz | patch -p1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} + +make -j3 || exit 1 +make install DESTDIR=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/libusb-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL.libusb LICENSE NEWS README \ + doc/html \ + $PKG/usr/doc/libusb-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/libusb-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libusb/slack-desc b/source/l/libusb/slack-desc new file mode 100644 index 000000000..df9a5b252 --- /dev/null +++ b/source/l/libusb/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libusb: libusb (USB library) +libusb: +libusb: This is libusb, a library which allows userspace application access +libusb: to USB devices. It is used to connect to USB devices like scanners. +libusb: +libusb: +libusb: +libusb: +libusb: +libusb: +libusb: diff --git a/source/l/libvisual-plugins/libvisual-plugins.SlackBuild b/source/l/libvisual-plugins/libvisual-plugins.SlackBuild new file mode 100755 index 000000000..e22ddc0c0 --- /dev/null +++ b/source/l/libvisual-plugins/libvisual-plugins.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libvisual-plugins +VERSION=${VERSION:-0.4.0} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/libvisual-plugins.gstreamer.diff.gz | patch -p1 || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libvisual-plugins/libvisual-plugins.gstreamer.diff b/source/l/libvisual-plugins/libvisual-plugins.gstreamer.diff new file mode 100644 index 000000000..060cef30b --- /dev/null +++ b/source/l/libvisual-plugins/libvisual-plugins.gstreamer.diff @@ -0,0 +1,73 @@ +--- ./configure.orig 2006-03-20 12:48:36.000000000 -0600 ++++ ./configure 2008-09-12 00:08:19.000000000 -0500 +@@ -23466,11 +23466,11 @@ + if test "$HAVE_GTK" = "yes"; then + build_actor_plugins="$build_actor_plugins gdkpixbuf" + else +- { echo "$as_me:$LINENO: WARNING: *** GTK+ >= ${2.0} is not found. ++ { echo "$as_me:$LINENO: WARNING: *** GTK+ >= 2.0 is not found. + The libvisual GdkPixbuf image loader plugin won't be build. + GdkPixbuf is included within gtk-2.0 and newer, which can be + downloaded at http://www.gtk.org/" >&5 +-echo "$as_me: WARNING: *** GTK+ >= ${2.0} is not found. ++echo "$as_me: WARNING: *** GTK+ >= 2.0 is not found. + The libvisual GdkPixbuf image loader plugin won't be build. + GdkPixbuf is included within gtk-2.0 and newer, which can be + downloaded at http://www.gtk.org/" >&2;} +@@ -23496,12 +23496,12 @@ + pkg_cv_GSTREAMER_CFLAGS="$GSTREAMER_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ +- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.8 >= 0.8\"") >&5 +- ($PKG_CONFIG --exists --print-errors "gstreamer-0.8 >= 0.8") 2>&5 ++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.10 >= 0.10\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "gstreamer-0.10 >= 0.10") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- pkg_cv_GSTREAMER_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-0.8 >= 0.8" 2>/dev/null` ++ pkg_cv_GSTREAMER_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-0.10 >= 0.10" 2>/dev/null` + else + pkg_failed=yes + fi +@@ -23514,12 +23514,12 @@ + pkg_cv_GSTREAMER_LIBS="$GSTREAMER_LIBS" + else + if test -n "$PKG_CONFIG" && \ +- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.8 >= 0.8\"") >&5 +- ($PKG_CONFIG --exists --print-errors "gstreamer-0.8 >= 0.8") 2>&5 ++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gstreamer-0.10 >= 0.10\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "gstreamer-0.10 >= 0.10") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- pkg_cv_GSTREAMER_LIBS=`$PKG_CONFIG --libs "gstreamer-0.8 >= 0.8" 2>/dev/null` ++ pkg_cv_GSTREAMER_LIBS=`$PKG_CONFIG --libs "gstreamer-0.10 >= 0.10" 2>/dev/null` + else + pkg_failed=yes + fi +@@ -23538,9 +23538,9 @@ + _pkg_short_errors_supported=no + fi + if test $_pkg_short_errors_supported = yes; then +- GSTREAMER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gstreamer-0.8 >= 0.8"` ++ GSTREAMER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gstreamer-0.10 >= 0.10"` + else +- GSTREAMER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-0.8 >= 0.8"` ++ GSTREAMER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-0.10 >= 0.10"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GSTREAMER_PKG_ERRORS" >&5 +@@ -23559,10 +23559,10 @@ + if test "$HAVE_GSTREAMER" = "yes"; then + build_actor_plugins="$build_actor_plugins gstreamer" + else +- { echo "$as_me:$LINENO: WARNING: *** GStreamer >= ${0.8} is not found. ++ { echo "$as_me:$LINENO: WARNING: *** GStreamer >= 0.10 is not found. + The libvisual GStreamer viewer plugin won't be build. + GStreamer can be downloaded from http://www.gstreamer.org/" >&5 +-echo "$as_me: WARNING: *** GStreamer >= ${0.8} is not found. ++ echo "$as_me: WARNING: *** GStreamer >= 0.10 is not found. + The libvisual GStreamer viewer plugin won't be build. + GStreamer can be downloaded from http://www.gstreamer.org/" >&2;} + fi diff --git a/source/l/libvisual-plugins/slack-desc b/source/l/libvisual-plugins/slack-desc new file mode 100644 index 000000000..abd94a61d --- /dev/null +++ b/source/l/libvisual-plugins/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libvisual-plugins: libvisual-plugins (plugins for the libvisual library) +libvisual-plugins: +libvisual-plugins: By itself, libvisual only provides a framework to build upon. The +libvisual-plugins: plugins in this package are designed to work with libvisual to allow +libvisual-plugins: it to actually do all sorts of interesting visualizations based on +libvisual-plugins: metrics gathered as players process audio information data. Plugins +libvisual-plugins: can be mixed (more than one run at a time), or morphed from one to +libvisual-plugins: another. Other special effects are possible as well. +libvisual-plugins: +libvisual-plugins: Several authors have contributed libvisual-plugins under the GPL. +libvisual-plugins: diff --git a/source/l/libvisual/libvisual.SlackBuild b/source/l/libvisual/libvisual.SlackBuild new file mode 100755 index 000000000..9b248ffa4 --- /dev/null +++ b/source/l/libvisual/libvisual.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=libvisual +VERSION=${VERSION:-0.4.0} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING NEWS README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libvisual/slack-desc b/source/l/libvisual/slack-desc new file mode 100644 index 000000000..2e95a1621 --- /dev/null +++ b/source/l/libvisual/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libvisual: libvisual (audio visualization library) +libvisual: +libvisual: Libvisual is an audio visualization library that acts as a middle +libvisual: layer between audio visualization plugins and applications. Any +libvisual: application written with libvisual support included will be able to +libvisual: make use of all the plugins that are written for libvisual. +libvisual: Libvisual also contains a whole set of facilities to ease the +libvisual: development of plugins. +libvisual: +libvisual: Libvisual was written by Dennis Smit. +libvisual: diff --git a/source/l/libvncserver/libvncserver.SlackBuild b/source/l/libvncserver/libvncserver.SlackBuild new file mode 100755 index 000000000..b73d8e77c --- /dev/null +++ b/source/l/libvncserver/libvncserver.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2007 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman + + +VERSION=0.9.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libvncserver + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf LibVNCServer-$VERSION +tar xvf $CWD/LibVNCServer-$VERSION.tar.bz2 || exit 1 +cd LibVNCServer-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Add SDLvncviewer +#install -D -m0755 ./client_examples/SDLvncviewer $PKG/usr/bin/SDLvncviewer +make install -C client_examples DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libvncserver-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README TODO \ + $PKG/usr/doc/libvncserver-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libvncserver-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libvncserver/libvncserver.info b/source/l/libvncserver/libvncserver.info new file mode 100644 index 000000000..11fc89f02 --- /dev/null +++ b/source/l/libvncserver/libvncserver.info @@ -0,0 +1,5 @@ +PRGNAM="libvncserver" +VERSION="0.9.1" +HOMEPAGE="http://libvncserver.sourceforge.net/" +DOWNLOAD="http://downloads.sourceforge.net/libvncserver/LibVNCServer-0.9.1.tar.gz" +MD5SUM="aa00efc3dabde82fde9509bfbab0aba4" diff --git a/source/l/libvncserver/slack-desc b/source/l/libvncserver/slack-desc new file mode 100644 index 000000000..d3924fcae --- /dev/null +++ b/source/l/libvncserver/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------| +libvncserver: libvncserver (VNC Server Library) +libvncserver: +libvncserver: LibVNCServer makes writing a VNC server (or more correctly, +libvncserver: a program exporting a framebuffer via the Remote Frame Buffer +libvncserver: protocol) easy. +libvncserver: +libvncserver: Homepage: http://libvncserver.sourceforge.net/ +libvncserver: +libvncserver: +libvncserver: +libvncserver: diff --git a/source/l/libvorbis/libvorbis.SlackBuild b/source/l/libvorbis/libvorbis.SlackBuild new file mode 100755 index 000000000..9196270a4 --- /dev/null +++ b/source/l/libvorbis/libvorbis.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libvorbis + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libvorbis-$VERSION +tar xvf $CWD/libvorbis-$VERSION.tar.bz2 || exit 1 +cd libvorbis-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/doc $PKG/usr +cp -a \ + AUTHORS COPYING HACKING README \ + $PKG/usr/doc/libvorbis-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libvorbis-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libvorbis/slack-desc b/source/l/libvorbis/slack-desc new file mode 100644 index 000000000..b523d9995 --- /dev/null +++ b/source/l/libvorbis/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libvorbis: libvorbis (Ogg Vorbis library) +libvorbis: +libvorbis: This library supports the Vorbis General Audio Compression Codec +libvorbis: (commonly known as Ogg Vorbis). Ogg Vorbis is a fully open, +libvorbis: non-proprietary, patent-and-royalty-free, general-purpose compressed +libvorbis: audio format for audio and music at fixed and variable bitrates. +libvorbis: +libvorbis: The libvorbis library requires libao and libogg. You'll find some +libvorbis: basic tools for creating and using Ogg Vorbis files in the +libvorbis: vorbis-tools package. +libvorbis: diff --git a/source/l/libwmf/libwmf.SlackBuild b/source/l/libwmf/libwmf.SlackBuild new file mode 100755 index 000000000..c9428e23c --- /dev/null +++ b/source/l/libwmf/libwmf.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.2.8.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-4} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} + +PKG1=$TMP/package-libwmf +PKG2=$TMP/package-libwmf-docs + +rm -rf $PKG1 $PKG2 +mkdir -p $PKG1 $PKG2 + +cd $TMP +rm -rf libwmf-$VERSION +tar xvf $CWD/libwmf-$VERSION.tar.bz2 || exit 1 +cd libwmf-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG1 || exit 1 + +find $PKG1 | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG2/usr/doc +mv $PKG1/usr/share/doc/libwmf $PKG2/usr/doc/libwmf-$VERSION +rmdir $PKG1/usr/share/doc +cp -a \ + AUTHORS BUILDING COPYING CREDITS NEWS README TODO \ + $PKG1/usr/doc/libwmf-$VERSION + +mkdir -p $PKG1/install +cat $CWD/slack-desc > $PKG1/install/slack-desc +mkdir -p $PKG2/install +cat $CWD/slack-desc-docs > $PKG2/install/slack-desc + +cd $PKG1 +/sbin/makepkg -l y -c n $TMP/libwmf-$VERSION-$ARCH-$BUILD.txz +cd $PKG2 +/sbin/makepkg -l y -c n $TMP/libwmf-docs-$VERSION-noarch-$BUILD.txz + diff --git a/source/l/libwmf/slack-desc b/source/l/libwmf/slack-desc new file mode 100644 index 000000000..2ce12aebe --- /dev/null +++ b/source/l/libwmf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libwmf: libwmf (WMF graphics format library) +libwmf: +libwmf: libwmf is a library for interpreting metafile images and either +libwmf: displaying them using X or converting them to standard formats such +libwmf: as PNG, JPEG, PS, EPS and SVG. +libwmf: +libwmf: +libwmf: +libwmf: +libwmf: +libwmf: diff --git a/source/l/libwmf/slack-desc-docs b/source/l/libwmf/slack-desc-docs new file mode 100644 index 000000000..280af308e --- /dev/null +++ b/source/l/libwmf/slack-desc-docs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libwmf-docs: libwmf-docs (extra documentation for libwmf) +libwmf-docs: +libwmf-docs: This package contains extra documentation useful for programming with +libwmf-docs: the libwmf (metafile graphics format) library. +libwmf-docs: +libwmf-docs: +libwmf-docs: +libwmf-docs: +libwmf-docs: +libwmf-docs: +libwmf-docs: diff --git a/source/l/libwnck/libwnck.SlackBuild b/source/l/libwnck/libwnck.SlackBuild new file mode 100755 index 000000000..fef9b01c0 --- /dev/null +++ b/source/l/libwnck/libwnck.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.26.1 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libwnck + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libwnck-$VERSION +tar xvf $CWD/libwnck-$VERSION.tar.bz2 || exit 1 +cd libwnck-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libwnck-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README \ + $PKG/usr/doc/libwnck-$VERSION + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libwnck-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libwnck/slack-desc b/source/l/libwnck/slack-desc new file mode 100644 index 000000000..54a03a6d8 --- /dev/null +++ b/source/l/libwnck/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libwnck: libwnck (Window Navigator Construction Kit library) +libwnck: +libwnck: libwnck is the Window Navigator Construction Kit, a library for use +libwnck: in writing pagers, tasklists, and more generally applications that +libwnck: are dealing with window management. It tries hard to respect the +libwnck: Extended Window Manager Hints specification (EWMH). +libwnck: +libwnck: libwnck is used by compiz to provide the gtk-window-decorator program. +libwnck: +libwnck: +libwnck: diff --git a/source/l/libwpd/libwpd.SlackBuild b/source/l/libwpd/libwpd.SlackBuild new file mode 100755 index 000000000..78b4a1ef1 --- /dev/null +++ b/source/l/libwpd/libwpd.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.8.14 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libwpd +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf libwpd-$VERSION +tar xvf $CWD/libwpd-$VERSION.tar.bz2 || exit 1 +cd libwpd-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libwpd-$VERSION +cp -a \ + CHANGES COPYING CREDITS HACKING INSTALL README TODO \ + $PKG/usr/doc/libwpd-$VERSION + +# Developers may find these docs in the source interesting, but most users won't: +rm -rf $PKG/usr/share/doc +rmdir $PKG/usr/share + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libwpd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libwpd/slack-desc b/source/l/libwpd/slack-desc new file mode 100644 index 000000000..4619b32a8 --- /dev/null +++ b/source/l/libwpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libwpd: libwpd (WordPerfect document format library) +libwpd: +libwpd: This package contains a library (libwpd) and tools to transform +libwpd: WordPerfect documents into other formats such as HTML, text, and raw. +libwpd: +libwpd: +libwpd: libwpd is used by word processors such as KWord. +libwpd: +libwpd: +libwpd: +libwpd: diff --git a/source/l/libxklavier/libxklavier.SlackBuild b/source/l/libxklavier/libxklavier.SlackBuild new file mode 100755 index 000000000..5b7bc76b1 --- /dev/null +++ b/source/l/libxklavier/libxklavier.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2007-2008 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman + + +VERSION=3.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libxklavier + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libxklavier-$VERSION +tar xvf $CWD/libxklavier-$VERSION.tar.bz2 || exit 1 +cd libxklavier-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/libxklavier-$VERSION +cp -a \ + AUTHORS ChangeLog COPYING* CREDITS INSTALL NEWS README \ + $PKG/usr/doc/libxklavier-$VERSION +( cd $PKG/usr/doc/libxklavier-$VERSION + ln -s /usr/share/gtk-doc/html/libxklavier html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libxklavier-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libxklavier/slack-desc b/source/l/libxklavier/slack-desc new file mode 100644 index 000000000..9d02b12dc --- /dev/null +++ b/source/l/libxklavier/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------| +libxklavier: libxklavier (XKB Library) +libxklavier: +libxklavier: libxklavier is a utility library to make XKB stuff easier. +libxklavier: +libxklavier: Homepage: http://www.freedesktop.org/wiki/Software/LibXklavier +libxklavier: +libxklavier: +libxklavier: +libxklavier: +libxklavier: +libxklavier: diff --git a/source/l/libxml2/libxml2.SlackBuild b/source/l/libxml2/libxml2.SlackBuild new file mode 100755 index 000000000..27c2b80a6 --- /dev/null +++ b/source/l/libxml2/libxml2.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.7.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libxml2 +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf libxml2-$VERSION +tar xvf $CWD/libxml2-$VERSION.tar.?z* || exit 1 +cd libxml2-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +#echo +#echo "Only the python bindings in /usr/lib/python__/site-packages/ should" +#echo "be kept... toss the other stuff" +#echo + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/doc $PKG/usr +mv $PKG/usr/doc/libxml2-python-$VERSION $PKG/usr/doc/libxml2-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README \ + $PKG/usr/doc/libxml2-$VERSION +find $PKG/usr/doc/libxml2-$VERSION -type f | xargs chmod 644 + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +# Be sure to clobber any .pyc files that might have been generated so that +# the new .py files will be used instead of the already compiled copies +cat << EOF > $PKG/install/doinst.sh +rm -f /usr/lib${LIBDIRSUFFIX}/python26/site-packages/libxml2.pyc +rm -f /usr/lib${LIBDIRSUFFIX}/python26/site-packages/drv_libxml2.pyc +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libxml2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libxml2/slack-desc b/source/l/libxml2/slack-desc new file mode 100644 index 000000000..dfbc38dc3 --- /dev/null +++ b/source/l/libxml2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxml2: libxml2 (XML parser library) +libxml2: +libxml2: Libxml2 is the XML C parser library and toolkit. XML itself is a +libxml2: metalanguage to design markup languages -- i.e. a text language where +libxml2: structures are added to the content using extra "markup" information +libxml2: enclosed between angle brackets. HTML is the most well-known markup +libxml2: language. Though the library is written in C, a variety of language +libxml2: bindings make it available in other environments. +libxml2: +libxml2: +libxml2: diff --git a/source/l/libxslt/libxslt.SlackBuild b/source/l/libxslt/libxslt.SlackBuild new file mode 100755 index 000000000..0c7e050c8 --- /dev/null +++ b/source/l/libxslt/libxslt.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.1.24 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libxslt +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf libxslt-$VERSION +tar xvf $CWD/libxslt-$VERSION.tar.bz2 || exit 1 +cd libxslt-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/usr/share/doc $PKG/usr +mv $PKG/usr/doc/libxslt-python-$VERSION $PKG/usr/doc/libxslt-$VERSION +cp -a \ + AUTHORS COPYING* Copyright FEATURES INSTALL IPR NEWS README TODO libxslt.spec \ + $PKG/usr/doc/libxslt-$VERSION +find $PKG/usr/doc/libxslt-$VERSION -type f | xargs chmod 644 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +#echo +#echo "Only the python bindings in /usr/lib/python__/site-packages/ should" +#echo "be kept... toss the other stuff" +#echo + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libxslt-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libxslt/slack-desc b/source/l/libxslt/slack-desc new file mode 100644 index 000000000..d758d08d3 --- /dev/null +++ b/source/l/libxslt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxslt: libxslt (XML transformation library) +libxslt: +libxslt: XSLT support for libxml2. (XSLT is a language used for transforming +libxslt: XML documents) +libxslt: +libxslt: +libxslt: +libxslt: +libxslt: +libxslt: +libxslt: diff --git a/source/l/libzip/libzip.SlackBuild b/source/l/libzip/libzip.SlackBuild new file mode 100755 index 000000000..a8eb72a6c --- /dev/null +++ b/source/l/libzip/libzip.SlackBuild @@ -0,0 +1,118 @@ +#!/bin/sh + +# Copyright 2007 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman + + +VERSION=0.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-libzip + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf libzip-$VERSION +tar xvf $CWD/libzip-$VERSION.tar.bz2 || exit 1 +cd libzip-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# This installs hardlinked manpages, bleh! +( cd $PKG/usr/man/man3 + # Break links by duplicating the files. + for file in *.3 ; do + cp -a $file tmp + rm $file + mv tmp $file + done +) +# Make symlinks instead: +( cd $PKG/usr/man/man3 + rm -rf zip_strerror.3 + ln -sf zip_file_strerror.3 zip_strerror.3 + rm -rf zip_replace.3 + ln -sf zip_add.3 zip_replace.3 + rm -rf zip_stat_index.3 + ln -sf zip_stat.3 zip_stat_index.3 + rm -rf zip_fopen_index.3 + ln -sf zip_fopen.3 zip_fopen_index.3 + rm -rf zip_file_error_get.3 + ln -sf zip_error_get.3 zip_file_error_get.3 + rm -rf zip_file_error_clear.3 + ln -sf zip_error_clear.3 zip_file_error_clear.3 +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/libzip-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/libzip-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/libzip-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/libzip/libzip.info b/source/l/libzip/libzip.info new file mode 100644 index 000000000..419b34ac3 --- /dev/null +++ b/source/l/libzip/libzip.info @@ -0,0 +1,5 @@ +PRGNAM="libzip" +VERSION="0.8" +HOMEPAGE="http://www.nih.at/libzip/" +DOWNLOAD="http://www.nih.at/libzip/libzip-0.8.tar.gz" +MD5SUM="b0087c2a12b312f8ec2df1052b2acb4f" diff --git a/source/l/libzip/slack-desc b/source/l/libzip/slack-desc new file mode 100644 index 000000000..16d8a0bfc --- /dev/null +++ b/source/l/libzip/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------| +libzip: libzip (A library to read, create, and modify Zip archives) +libzip: +libzip: This is libzip, a C library for reading, creating, and modifying +libzip: zip archives. Files can be added from data buffers, files, or +libzip: compressed data copied directly from other zip archives. Changes +libzip: made without closing the archive can be reverted. +libzip: +libzip: Homepage: http://www.nih.at/libzip/ +libzip: +libzip: +libzip: diff --git a/source/l/lzo/.lzo.info b/source/l/lzo/.lzo.info new file mode 100644 index 000000000..27564cc0c --- /dev/null +++ b/source/l/lzo/.lzo.info @@ -0,0 +1,8 @@ +PRGNAM=lzo +VERSION=2.0.2 +HOMEPAGE=http://www.oberhumer.com/opensource/lzo/ +DOWNLOAD=http://www.oberhumer.com/opensource/lzo/download/lzo-2.02.tar.gz +MD5SUM=6760e5819f4238328709bf93bf10071c +AUTHOR=Ricardson Williams +EMAIL=ricardsonwilliams@yahoo.com.br +APPROVED=Alan Hicks,robw810 diff --git a/source/l/lzo/lzo.SlackBuild b/source/l/lzo/lzo.SlackBuild new file mode 100755 index 000000000..e4be9d214 --- /dev/null +++ b/source/l/lzo/lzo.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2006 Ricardson Williams +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by the SlackBuilds.org project + +PRGNAM=lzo +VERSION=2.02 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar -xvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --enable-shared \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make check || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +# while the examples are somewhat interesting, due to autoconf they are +# rather hard to use outside of the actual source tree... +cp -a \ + AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README THANKS \ + doc \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/lzo/slack-desc b/source/l/lzo/slack-desc new file mode 100644 index 000000000..71b61d6e0 --- /dev/null +++ b/source/l/lzo/slack-desc @@ -0,0 +1,20 @@ + +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lzo: lzo (LZO Compression Library) +lzo: +lzo: LZO is a portable lossless data compression library written in ANSI C. +lzo: It offers pretty fast compression and very fast decompression. +lzo: +lzo: Homepage: http://www.oberhumer.com/opensource/lzo/ +lzo: +lzo: +lzo: +lzo: +lzo: diff --git a/source/l/mhash/mhash.SlackBuild b/source/l/mhash/mhash.SlackBuild new file mode 100755 index 000000000..0b9d90707 --- /dev/null +++ b/source/l/mhash/mhash.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.9.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mhash + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf mhash-$VERSION +tar xvf $CWD/mhash-$VERSION.tar.bz2 || exit 1 +cd mhash-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --program-prefix="" \ + --program-suffix="" \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/mhash-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/mhash-$VERSION + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mhash-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/mhash/slack-desc b/source/l/mhash/slack-desc new file mode 100644 index 000000000..cbfcb3f81 --- /dev/null +++ b/source/l/mhash/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mhash: mhash (Thread-safe hash library) +mhash: +mhash: mhash is a thread-safe hash library, implemented in C, and provides a +mhash: uniform interface to a large number of hash algorithms (MD5, SHA-1, +mhash: HAVAL, RIPEMD128, RIPEMD160, TIGER, GOST). These algorithms can be +mhash: used to compute checksums, message digests, and other signatures. +mhash: The HMAC support implements the basics for message authentication, +mhash: following RFC 2104. +mhash: +mhash: +mhash: diff --git a/source/l/mm/mm.SlackBuild b/source/l/mm/mm.SlackBuild new file mode 100755 index 000000000..a0a107c3a --- /dev/null +++ b/source/l/mm/mm.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=mm +VERSION=${VERSION:-1.4.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-static \ + --enable-shared \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make test || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Make sure the shared library is executable: +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libmm.so.* +# 99% of these are also executable, but I don't think it matters. +# Personally, I think they should be chmod 644, but what do I know? +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libmm*.la + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ChangeLog INSTALL LICENSE PORTING README THANKS \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/mm/slack-desc b/source/l/mm/slack-desc new file mode 100644 index 000000000..6aa2f0bf7 --- /dev/null +++ b/source/l/mm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mm: mm (Shared Memory Allocation library) +mm: +mm: OSSP mm is a 2-layer abstraction library which simplifies the usage of +mm: shared memory between forked processes. On the first layer it hides +mm: all platform dependent implementation details (allocation and locking) +mm: when dealing with shared memory segments and on the second layer it +mm: provides a high-level malloc(3)-style API to work with data inside +mm: those shared memory segments. Apache, PHP, and other projects use mm. +mm: +mm: The mm library was written by Ralf S. Engelschall. +mm: diff --git a/source/l/mpfr/mpfr.SlackBuild b/source/l/mpfr/mpfr.SlackBuild new file mode 100755 index 000000000..588962bdb --- /dev/null +++ b/source/l/mpfr/mpfr.SlackBuild @@ -0,0 +1,95 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.3.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mpfr +rm -rf $PKG +mkdir -p $TMP $PKG + +# Determine patchlevel: +PATCHLEVEL=$(/bin/ls $CWD/patches/* 2> /dev/null | rev | cut -f 1 -d / | cut -b4- | rev | cut -b6- | tail -n 1 ) +if [ ! "$PATCHLEVEL" = "" ]; then + PATCHLEVEL="p${PATCHLEVEL}" +fi + +cd $TMP +rm -rf mpfr-$VERSION +tar xvf $CWD/mpfr-$VERSION.tar.bz2 || exit 1 +cd mpfr-$VERSION +chown -R root:root . +for file in $CWD/patches/* ; do + ( zcat $file 2> /dev/null | patch -p1 --verbose --batch 1> /dev/null 2> /dev/null || exit 1 ) + if [ ! $? = 0 ]; then + exit 1 + fi +done +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --enable-static=yes \ + --enable-shared=yes \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Hardly a savings doing this... +#strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/mpfr-$VERSION +cp -a \ + AUTHORS BUGS COPYING COPYING.LIB FAQ.html INSTALL NEWS README TODO VERSION \ + $PKG/usr/doc/mpfr-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mpfr-${VERSION}${PATCHLEVEL}-${ARCH}-${BUILD}.txz + diff --git a/source/l/mpfr/slack-desc b/source/l/mpfr/slack-desc new file mode 100644 index 000000000..23b433145 --- /dev/null +++ b/source/l/mpfr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mpfr: mpfr (Multiple-Precision Floating-Point Reliable Library) +mpfr: +mpfr: The MPFR library is a C library for multiple-precision floating-point +mpfr: computations with exact rounding (also called correct rounding). +mpfr: It is based on the GMP multiple-precision library. +mpfr: The main goal of MPFR is to provide a library for multiple-precision +mpfr: floating-point computation which is both efficient and has +mpfr: well-defined semantics. It copies the good ideas from the +mpfr: ANSI/IEEE-754 standard for double-precision floating-point arithmetic +mpfr: (53-bit mantissa). +mpfr: diff --git a/source/l/ncurses/Eterm.ti b/source/l/ncurses/Eterm.ti new file mode 100644 index 000000000..b711cb923 --- /dev/null +++ b/source/l/ncurses/Eterm.ti @@ -0,0 +1,150 @@ +# Eterm terminfo file + +Eterm|Eterm Terminal Emulator (X11 Window System), +# FIXME: xterm does not specify bce, bw, eo, or xon. Should we? + am, bw, bce, km, mir, msgr, xenl, xon, eo, mc5i, + cols#80, lines#24, it#8, lm#0, btns#5, + cr=\r, bel=^G, + colors#8, pairs#64, + +# Scroll text down/up one line + ind=\n, ri=\eM, + +# Clear entire screen (home, then clear to EOS), EOS, EOL, BOL + clear=\e[H\e[2J, ed=\e[J, el=\e[K, el1=\e[1K, + +# Change scrolling region to lines $1+1 to $2+1 +# %i means add one to params 1 and 2; convert from 0-based to +# 1-based counting. + csr=\e[%i%p1%d;%p2%dr, + +# Move cursor to row $1+1, column $2+1. Can end with H or f + cup=\e[%i%p1%d;%p2%dH, +# Move cursor to column n, same row; or row n, same column + hpa=\e[%i%p1%dG, vpa=\e[%i%p1%dd, +# Move cursor up/down/forward/back by n chars + cuu=\e[%p1%dA, cud=\e[%p1%dB, cuf=\e[%p1%dC, cub=\e[%p1%dD, +# Move cursor up/down/forward/back by 1 char + cuu1=\e[A, cud1=\e[B, cuf1=\e[C, cub1=\b, +# Home cursor (row 1, col 1). Was \e[1;1H but 1's are redundant + home=\e[H, + +# Enter/leave insert mode + smir=\e[4h, rmir=\e[4l, + +# Set tab stops, clear tab stops, tab character + hts=\eH, tbc=\e[3g, ht=\t, + +# Turn on/off auto margins + smam=\e[?7h, rmam=\e[?7l, +# Make cursor invisible, normal (bold cursor cvvis not supported) + civis=\e[?25l, cnorm=\e[?25h, +# Save/restore cursor position + sc=\e7, rc=\e8, + +# Alternate character set (line drawing), enable/enter/exit ACS + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +# The line below is used by some vtXXX emulators, but I don't think it's right for us. +# acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, + enacs=\e)0, smacs=^N, rmacs=^O, + +# Delete/insert n chars, 1 char + dch=\e[%p1%dP, ich=\e[%p1%d@, dch1=\e[P, ich1=\e[@, +# Delete/insert n lines, 1 line + dl=\e[%p1%dM, il=\e[%p1%dL, dl1=\e[M, il1=\e[L, +# Erase next n chars + ech=\e[%p1%dX, + +# Activate SGR mode: bold, reverse video, blink (bright bg color) + bold=\e[1m, rev=\e[7m, blink=\e[5m, +# Start/stop underline, standout (reverse video) + smul=\e[4m, rmul=\e[24m, smso=\e[7m, rmso=\e[27m, +# Turn off all attributes (exit_attribute_mode) + sgr0=\e[m^O, +# Flash the screen (sets and resets reverse video for the whole screen) + flash=\e[?5h\e[?5l, + +# Enter/leave application keypad mode. We always send the ANSI values +# because that seems to be the most portable solution. The valid escape +# sequences are here but are commented out for this reason. The 1st set +# is for keypad cursor keys, the second is for application cursor key +# mode. The third is what gets sent by default. +## smkx=\e=, rmkx=\e>, + smkx=, rmkx=, +## kcuu1=\e[Ox, kcud1=\e[Or, kcuf1=\e[Ov, kcub1=\e[Ot, +## kcuu1=\eOA, kcud1=\eOB, kcuf1=\eOC, kcub1=\eOD, + kcuu1=\e[A, kcud1=\e[B, kcuf1=\e[C, kcub1=\e[D, + +# Keypad 7, 9, 5, 1, and 3. The 1st set are the appl. keypad mode +# sequences. The 2nd set are the values for Home/End/PgUp/PgDn. +# The 5 key is the same either way. +## ka1=\eOw, ka3=\eOy, kb2=\eOu, kc1=\eOq, kc3=\eOs, + ka1=\e[7~, ka3=\e[5~, kb2=\eOu, kc1=\e[8~, kc3=\e[6~, + +# Function keys + kf1=\e[11~, kf2=\e[12~, kf3=\e[13~, kf4=\e[14~, kf5=\e[15~, + kf6=\e[17~, kf7=\e[18~, kf8=\e[19~, kf9=\e[20~, kf10=\e[21~, + kf11=\e[23~, kf12=\e[24~, kf13=\e[25~, kf14=\e[26~, kf15=\e[28~, + kf16=\e[29~, kf17=\e[31~, kf18=\e[32~, kf19=\e[33~, kf20=\e[34~, + +# Find, Insert, Delete, Select, Prior (PgUp), Next (PgDn). The first set of +# sequences are accurate. The second set lets Find/Select act like Home/End. + kfnd=\e[1~, kich1=\e[2~, kdch1=\e[3~, kslt=\e[4~, kpp=\e[5~, knp=\e[6~, +## kfnd=\e[7~, kich1=\e[2~, kdch1=\e[3~, kslt=\e[8~, kpp=\e[5~, knp=\e[6~, + +# Home (vt100 may use khome=\e[H), End, Backspace, Keypad Enter, Shift-Tab +# The 1st set is the default. The 2nd set is based on Linux console/vt220 +# settings for Home/End and Backspace sending Delete (^?). The 3rd set gives +# xterm's settings for Home/End. + khome=\e[7~, kend=\e[8~, kbs=\010, kent=\eOM, kcbt=\e[Z, +## khome=\e[1~, kend=\e[4~, kbs=\177, kent=\eOM, kcbt=\e[Z, +## khome=\e[H, kend=\e[F, kbs=\010, kent=\eOM, kcbt=\e[Z, + +# Help and Begin keys + khlp=\e[28~, kbeg=\eOu, +# "Shifted" right and left (actually Ctrl, not Shift) + kRIT=\e[c, kLFT=\e[d, +# Shift-Prior/Next (PgUp/PgDn). Usually, these key combos scroll. + kPRV=\e[5$, kNXT=\e[6$, +# Shift-Delete/Home/End and Ctrl-End. It's a $ instead of a ~ for +# Shift-, a ^ for Ctrl-, and @ for Ctrl-Shift-. + kDC=\e[3$, kHOM=\e[7$, kEND=\e[8$, kel=\e[8\^, + +# Reset terminal, turn off all attributes + rs1=\e>\e[1;3;4;5;6l\e[?7h\e[m\e[r\e[2J\e[H, + rs2=\e[r\e[m\e[2J\e[H\e[?7h\e[?1;3;4;6l\e[4l\e>, +# Init terminal + is1=\e[?47l\e>\e[?1l, + is2=\e[r\e[m\e[2J\e[H\e[?7h\e[?1;3;4;6l\e[4l, + +# Enter/leave cursor address mode. The 1st set uses the +# secondary screen. The 2nd one doesn't. + smcup=\e7\e[?47h, rmcup=\e[2J\e[?47l\e8, +## smcup=\e7, rmcup=\e8, + +# Start/stop redirection to the printpipe + mc4=\e[4i, mc5=\e[5i, + +# User-defined string capabilities +# Cursor Position Report (CPR) + u6=\e[%i%d;%dR, +# Report current screen position (DSR 6) (replies with u6) + u7=\e[6n, +# vt100 answerback + u8=\e[?1;2c, +# Request identity (replies with u8) If VT100_ANS is enabled, use +# the first value. If ENQ_ANS is enabled, use the second value. + u9=\e[c, +## u9=^E, + +# Add ANSI color support + sgr=\e[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t^N%e^O%;, +## sgr=\e[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, + +# Mouse info packet introducer + kmous=\e[M, + +# Revert to the original foreground/background pair + op=\e[39;49m, +# Set foreground color, background color + setaf=\e[3%p1%dm, setab=\e[4%p1%dm, diff --git a/source/l/ncurses/ncurses.SlackBuild b/source/l/ncurses/ncurses.SlackBuild new file mode 100755 index 000000000..9da59f1ee --- /dev/null +++ b/source/l/ncurses/ncurses.SlackBuild @@ -0,0 +1,165 @@ +#!/bin/sh + +# Copyright 2000-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=5.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ncurses + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + X86_64OPTS=" --with-chtype=long --with-mmask-t=long " + LIBDIRSUFFIX="64" +fi + +ncurses_configure() { +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-gpm \ + --disable-termcap \ + --with-normal \ + --with-shared \ + --enable-symlinks \ + --without-debug \ + --without-profile \ + --without-ada \ + $X86_64OPTS \ + --program-suffix="" \ + --program-prefix="" \ + $WIDEC \ + $ARCH-slackware-linux +} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ncurses-$VERSION +tar xvf $CWD/ncurses-$VERSION.tar.gz || exit 1 +cd ncurses-$VERSION || exit 1 +chown -R root:root . +if [ ! -z "$(ls $CWD/patches/ncurses*bz2)" ]; then + bzcat $CWD/patches/ncurses*bz2 > tmp-patch.sh + bash tmp-patch.sh || exit 1 +fi +for file in $CWD/patches/ncurses-$VERSION-2*.patch.gz ; do + zcat $file | patch -p1 --verbose || exit 1 +done +zcat $CWD/ncurses.mkhashsize.diff.gz | patch -p1 --verbose || exit 1 +ncurses_configure +make -j4 || exit 1 +# Spamming the partition. +# Sorry, but it's about the only way to get a good 'tic'. +make install +# Install the package: +make install DESTDIR=$PKG + +# Build/install again with wide character support: +make clean +WIDEC=--enable-widec +ncurses_configure +make -j4 || exit 1 +make install +make install DESTDIR=$PKG + +if [ ! -d $PKG/usr/include/ncursesw -a ! -L $PKG/usr/include/ncursesw ]; then + ( cd $PKG/usr/include ; ln -sf ncurses ncursesw ) +fi + +# Strip stuff: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Move the include files from /usr/include into +# /usr/include/ncurses, then make symlinks back +# into /usr/include. +( cd $PKG/usr/include + rm -rf ncurses + mkdir ncurses + mv *.h ncurses + for file in ncurses/* ; do + ln -sf $file . + done + # This shouldn't clobber the real one: + mv termcap.h termcap-ncurses.h +) + +# Move the ncurses libraries into /lib, since they're important: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + chmod 755 *.so + chmod 644 *.a + mv libncurses.so.5* $PKG/lib${LIBDIRSUFFIX} + mv libncursesw.so.5* $PKG/lib${LIBDIRSUFFIX} + rm -f libncurses.so + ln -sf /lib${LIBDIRSUFFIX}/libncurses.so.5 libncurses.so + rm -f libncursesw.so + ln -sf /lib${LIBDIRSUFFIX}/libncursesw.so.5 libncursesw.so + # Olde obsolete names, just in case + rm -f libcurses.so + ln -sf libncurses.so libcurses.so + rm -f libcursesw.so + ln -sf libncursesw.so libcursesw.so +) + +# Set TERMINFO to point to the package: +export TERMINFO=$PKG/usr/share/terminfo +# Fix the xterm, screen, rxvt, and Eterm entries: +for tfile in $CWD/xterm.terminfo $CWD/screeninfo.src $CWD/rxvt.terminfo $CWD/Eterm.ti ; do + if [ -r $tfile ]; then + progs/tic -v $tfile + fi +done +unset TERMINFO + +# Then, add /usr/doc/ncurses-xxxxx with appropriate files. +mkdir -p $PKG/usr/doc/ncurses-$VERSION +cp -a \ + ANNOUNCE INSTALL MANIFEST NEWS README* TO-DO \ + $PKG/usr/doc/ncurses-$VERSION +mkdir -p $PKG/usr/doc/ncurses-$VERSION/c++ +cp -a \ + c++/NEWS c++/PROBLEMS c++/README-first \ + $PKG/usr/doc/ncurses-$VERSION/c++ +if [ -r $PKG/usr/man/man1/tack.1 ]; then + gzip -9 --force $PKG/usr/man/man1/tack.1 +fi + +# desc file: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ncurses-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/ncurses/ncurses.mkhashsize.diff b/source/l/ncurses/ncurses.mkhashsize.diff new file mode 100644 index 000000000..7694a39d2 --- /dev/null +++ b/source/l/ncurses/ncurses.mkhashsize.diff @@ -0,0 +1,11 @@ +--- ./include/MKhashsize.sh.orig 2006-10-21 19:45:39.000000000 -0500 ++++ ./include/MKhashsize.sh 2006-12-27 17:21:06.000000000 -0600 +@@ -35,7 +35,7 @@ + echo " */" + + CAPS="${1-Caps}" +-TABSIZE=`grep -v '^[ #]' $CAPS | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | wc -l` ++TABSIZE=$(grep -v '^[ #]' $CAPS | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | wc -l) + + echo "" + echo "#define CAPTABSIZE ${TABSIZE}" diff --git a/source/l/ncurses/rxvt.terminfo b/source/l/ncurses/rxvt.terminfo new file mode 100644 index 000000000..cda901821 --- /dev/null +++ b/source/l/ncurses/rxvt.terminfo @@ -0,0 +1,55 @@ +# From: Thomas Dickey 04 Oct 1997 +# Updated: Özgür Kesim 02 Nov 1997 +# Notes: +# rxvt 2.21b uses +# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O, +# but some applications don't work with that. +# It also has an AIX extension +# box2=lqkxjmwuvtn, +# and +# ech=\E[%p1%dX, +# but the latter does not work correctly. +# +# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM. +# Since rxvt is not really compatible with xterm, it should be configured as +# "rxvt-basic" (monochrom) and "rxvt" +rxvt-basic|rxvt terminal base (X Window System), + am, bce, eo, km, msgr, xenl, xon, + cols#80, it#8, lines#24, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, + clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, + csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, + cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, + cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, + dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, + flash=\E[?5h\E[?5l, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, + hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, + ind=^J, is1=\E[?47l\E=\E[?1l, + is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, + kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$, + kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H, + kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, + kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^, + kend=\E[8~, kent=\EOM, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~, + kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, + kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, + kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, + kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, + kf9=\E[20~, kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, + kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, + rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[?47l\E8, + rmkx=\E>, rmso=\E[27m, rmul=\E[24m, + rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, + rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>, + s0ds=\E(B, s1ds=\E(0, sc=\E7, + sgr0=\E[m\017, + smacs=^N, smcup=\E7\E[?47h, + smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, + vpa=\E[%i%p1%dd, +rxvt|rxvt terminal emulator (X Window System), + colors#8, pairs#64, + op=\E[39;49m, setab=\E[%p1%{40}%+%dm, + setaf=\E[%p1%{30}%+%dm, + use=rxvt-basic, diff --git a/source/l/ncurses/screeninfo.src b/source/l/ncurses/screeninfo.src new file mode 100644 index 000000000..c6ca4d95f --- /dev/null +++ b/source/l/ncurses/screeninfo.src @@ -0,0 +1,73 @@ +screen|VT 100/ANSI X3.64 virtual terminal, + am, km, mir, msgr, xenl, + cols#80, it#8, lines#24, colors#8, pairs#64, + bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, + clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n, + cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, + dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, + enacs=\E(B\E)0, home=\E[H, + ht=\t, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, + ind=\n, is2=\E)0, kcub1=\EOD, kcud1=\EOB, + kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\EOP, + kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, + kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~, + kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kend=\E[4~, + kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=\EE, + rc=\E8, rev=\E[7m, ri=\EM, rmcup=\E[?1049l, rmir=\E[4l, + rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7, + sgr0=\E[m, smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=, + smso=\E[3m, smul=\E[4m, tbc=\E[3g, smacs=^N, rmacs=^O, flash=\Eg, + civis=\E[?25l, cnorm=\E[34h\E[?25h, cvvis=\E[34l, + op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00, +screen-bce|VT 100/ANSI X3.64 virtual terminal with bce, + am, bce, km, mir, msgr, xenl, + cols#80, it#8, lines#24, colors#8, pairs#64, + bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, + clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n, + cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, + dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, + enacs=\E(B\E)0, home=\E[H, + ht=\t, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, + ind=\n, is2=\E)0, kcub1=\EOD, kcud1=\EOB, + kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\EOP, + kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, + kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~, + kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kend=\E[4~, + kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=\EE, + rc=\E8, rev=\E[7m, ri=\EM, rmcup=\E[?1049l, rmir=\E[4l, + rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7, + sgr0=\E[m, smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=, + smso=\E[3m, smul=\E[4m, tbc=\E[3g, smacs=^N, rmacs=^O, flash=\Eg, + civis=\E[?25l, cnorm=\E[34h\E[?25h, cvvis=\E[34l, + op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00, +screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line, + am, bce, km, mir, msgr, xenl, + cols#80, it#8, lines#24, colors#8, pairs#64, + bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, + clear=\E[H\E[J, cr=\r, csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, cub1=\b, cud=\E[%p1%dB, cud1=\n, + cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, + dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, + enacs=\E(B\E)0, home=\E[H, + ht=\t, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, + ind=\n, is2=\E)0, kcub1=\EOD, kcud1=\EOB, + kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\EOP, + kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, + kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~, + kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kend=\E[4~, + kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=\EE, + rc=\E8, rev=\E[7m, ri=\EM, rmcup=\E[?1049l, rmir=\E[4l, + rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m, rs2=\Ec, sc=\E7, + sgr0=\E[m, smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=, + smso=\E[3m, smul=\E[4m, tbc=\E[3g, smacs=^N, rmacs=^O, flash=\Eg, + tsl=\E_, fsl=\E\\, dsl=\E_\E\\, + civis=\E[?25l, cnorm=\E[34h\E[?25h, cvvis=\E[34l, + op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++\054\054hhII00, diff --git a/source/l/ncurses/slack-desc b/source/l/ncurses/slack-desc new file mode 100644 index 000000000..c24cc25b9 --- /dev/null +++ b/source/l/ncurses/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ncurses: ncurses (CRT screen handling and optimization package) +ncurses: +ncurses: The ncurses (new curses) library is a free software emulation of +ncurses: curses in System V Release 4.0, and more. It uses terminfo format, +ncurses: supports pads and color and multiple highlights and forms characters +ncurses: and function-key mapping, and has all the other SYSV-curses +ncurses: enhancements over BSD curses. +ncurses: +ncurses: +ncurses: +ncurses: diff --git a/source/l/ncurses/xterm.terminfo b/source/l/ncurses/xterm.terminfo new file mode 100644 index 000000000..88bee44f1 --- /dev/null +++ b/source/l/ncurses/xterm.terminfo @@ -0,0 +1,1939 @@ +# $XTermId: terminfo,v 1.155 2007/11/11 23:26:52 tom Exp $ +# +# $XFree86: xc/programs/xterm/terminfo,v 3.59 2006/02/13 01:14:59 dickey Exp $ +# +# Updates/notes/new entries (e.g., xterm-8bit, xterm-16color, xterm-256color) +# - Thomas E. Dickey +# +#------------------------------------------------------------------------------ +# Copyright 1996-2006,2007 by Thomas E. Dickey +# +# All Rights Reserved +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name(s) of the above copyright +# holders shall not be used in advertising or otherwise to promote the +# sale, use or other dealings in this Software without prior written +# authorization. +#------------------------------------------------------------------------------ +# +# Special Capabilities: +# -------------------- +# ich has a corresponding capability that inserts a single blank. We could +# have used ich1=\E[@, which works with ncurses, but that is not standard +# behavior. If it is set, then SVr4 vi (e.g., Solaris 2.6) emits both +# smir/rmir and ich1. +# meml locks memory above the cursor; memu unlocks (ala HP terminals). This +# is not recognized by some older (e.g., SVr3) tic programs, but none +# do more than warn about it. Ignore the warning. +# smcup clears memory before switching to the alternate screen. The older +# (deprecated) \E[?47h did not do this, requiring applications to +# embed a \E[2J in the rmcup string. However, that behavior cannot +# be disabled via titeInhibit, making that resource not function as +# intended on systems with terminfo. +# rs2/is2 are shorter with XFree86 xterm because it supports DECSTR. We +# use the shorter sequence for compatibility with the termcap, which +# is trimmed to keep it shorter than 1023 characters. It (escape \E[!p) +# replaces these in the conventional vt100 reset-string: +# \E7 - save cursor (fixes origin-mode side-effect) +# \E[r - reset scrolling margins +# \E[m - reset SGR (including color) +# \E[?7h - reset wraparound mode (DECAWM) +# \E[?1l - reset application cursor keys (DECCKM) +# \E[?6l - reset origin mode (DECOM) +# \E8 - restore cursor +# DECSTR is recognized by XFree86 xterm even in vt52 mode. +# +# Editing Keypad: +# -------------- +# XFree86 xterm emulates vt220 if the decTerminalID resource is set to 200 or +# higher. Otherwise it emulates a vt100 or vt52 depending on the value of the +# resource. When emulating a vt220, we support the editing keypad. Sun and PC +# keyboards have an editing keypad which is similar to the vt220: +# +# VT220 editing keypad +# ---------------------------- +# Find Insert Remove +# Select Prev Next +# ---------------------------- +# +# Sun/PC editing keypad +# ---------------------------- +# Insert Home PageUp +# Delete End PageDn +# ---------------------------- +# +# If the sunKeyboard resource is true, we map it this way (adjusting the values +# of Home, End and Delete): +# VT220 Sun/PC +# ---------------------------- +# Find Home +# Select End +# Insert Insert +# Remove Delete +# Prev PageUp +# Next PageDn +# ---------------------------- +# +# Note that all of the keys on the editing keypad transmit escape sequences. A +# vt220 does this only when in vt220 mode; when emulating a vt100 the editing +# keypad is inactive. +# +# Alternative keycodes: +# -------------------- +# Several of the function keys have alternative names, depending on the type of +# host which your xterm is connected to. DEC (i.e., the VMS system) uses F15 +# as the HELP key, F16 as the DO key. Unix applications generally do not do +# this. Curses applications in particular, assign a unique keycode to each +# capability string. These terminal descriptions do not have conflicting +# definitions, to ensure that Unix curses applications use a consistent set of +# keycodes. To get a VMS-bias, make these substitutions: +# 1. change khome to kfnd +# 2. change kend to kslt +# The original xterm-r6 entry does in fact have a VMS bias. +# +# Some legacy applications using the termcap emulation may expect kll where +# we have specified kend. +# +# Function keys with modifiers (Sun/PC): +# ------------------------------------- +# Shift-Fx - kf{12+x} +# Control-Fx - kf{24+x} +# Shift-Control-Fx - kf{36+x} +# +# The terminfo defines some special keys which are documented as "shifted", +# e.g., kDC is shifted-delete-character. +# +# Note however, that even though the terminfo says a key might be sent, there +# may be conflicts which prevent this. For example, it is common to use +# shifted pageup and pagedown for window manager functions. The default +# translation for xterm since X11R4 has overridden shifted Insert, Select, +# PageUp and PageDown, which correspond to terminfo kIC, kEND, kPRV and kNXT +# respectively. +# +xterm-new|modern xterm terminal emulator, + npc, + indn=\E[%p1%dS, + kb2=\EOE, + kcbt=\E[Z, + kent=\EOM, + rin=\E[%p1%dT, + use=xterm+pcfkeys, + use=xterm-basic, +# +# Encode modifiers using parameters (see "Xterm Control Sequences" ctlseqs.ms). +# Note that this is unrelated to PCTERM. +# +# Some names are extensions allowed by ncurses, e.g., +# kDN, kDN5, kDN6, kLFT5, kLFT6, kRIT5, kRIT6, kUP, kUP5, kUP6 +# +# The uppercase names are made up, since there are no standards that apply. +# If they were limited to two characters, they could in principle be translated +# to termcap. However, termcap sizes are limited to 1023 bytes, so there is +# little point in ensuring that extended key names can be translated to +# termcap. A terminfo file can be up to 4096 bytes; using all extended keys +# that xterm can generate would in fact exceed that limit. +# +# The numbers correspond to the modifier parameters documented in Xterm +# Control Sequences: +# +# 2 Shift +# 3 Alt +# 4 Shift + Alt +# 5 Control +# 6 Shift + Control +# 7 Alt + Control +# 8 Shift + Alt + Control +# +# X/Open Curses defines some shift combinations, which are also used here +# where applicable. Since it does define some shift combinations, no number +# (2) is used for suffixing the made-up names. Some combinations are not +# useful, e.g., they may reboot your computer, or they may require too many +# fingers. I stopped at modifier 7, just to keep things simple -TD +# +# XTerm resources: +# --------------- +# The xterm+pcfn, xterm+pcf0, xterm+pcf1, xterm+pcf2 and xterm+pcf3 fragments +# correspond to default resource settings for xterm on a 104-key PC keyboard +# with 12 function-keys: +# +# *sunKeyboard:false +# *oldXtermFKeys:false +# *modifyCursorKeys:2 +# *modifyFunctionKeys:2 +# *ctrlFKeys:10 +# +# The key numbers are computed based on the modifiers: +# +# kf1-kf12 are F1-F12 +# kf13-kf24 are shift F1-F12 +# kf25-kf36 are control F1-F12 +# kf37-kf48 are control+shift F1-F12 +# kf49-kf60 are alt F1-F12 +# kf61-kf63 are shift-alt F1-F3 +# +# Note that ncurses would allow definition of kf64 and beyond, if there were +# an application that required it. +# +xterm+pcfkeys|fragment for PC-style keys, + use=xterm+app, + use=xterm+pcf2, + use=xterm+pce2, + use=xterm+pcc2, +# +# The ctrlFKeys resource is only relevant to the xterm+pcfn and xterm+pcfN +# entries, since the modifyFunctionKeys resource overrides ctrlFKeys when it is +# positive. A different choice of ctrlFKeys would give a different set of +# function-key strings. +xterm+pcfn|fragment with modifyFunctionKeys:-1 and ctrlFKeys:10, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\E[25~, + kf14=\E[26~, + kf15=\E[28~, + kf16=\E[29~, + kf17=\E[31~, + kf18=\E[32~, + kf19=\E[33~, + kf2=\EOQ, + kf20=\E[34~, + kf21=\E[42~, + kf22=\E[43~, + kf23=\E[44~, + kf24=\E[45~, + kf25=\E[46~, + kf26=\E[47~, + kf27=\E[48~, + kf28=\E[49~, + kf29=\E[50~, + kf3=\EOR, + kf30=\E[51~, + kf31=\E[52~, + kf32=\E[53~, + kf33=\E[54~, + kf34=\E[55~, + kf35=\E[56~, + kf36=\E[57~, + kf37=\E[58~, + kf38=\E[59~, + kf39=\E[60~, + kf4=\EOS, + kf40=\E[61~, + kf41=\E[62~, + kf42=\E[63~, + kf43=\E[64~, + kf44=\E[65~, + kf45=\E[66~, + kf46=\E[67~, + kf47=\E[68~, + kf48=\E[69~, + kf5=\E[15~, + kf6=\E[17~, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + +# Changing ctrlFKeys to 12 would let us number the keys using just shift- and +# control- modifiers: +# kf1-kf12 are F1-F12 +# kf13-kf24 are shift F1-F12 +# kf25-kf36 are control F1-F12 +# kf37-kf48 are control+shift F1-F12 +xterm+pcfN|fragment with modifyFunctionKeys:-1 and ctrlFKeys:12, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\E[25~, + kf14=\E[26~, + kf15=\E[28~, + kf16=\E[29~, + kf17=\E[31~, + kf18=\E[32~, + kf19=\E[33~, + kf2=\EOQ, + kf20=\E[34~, + kf21=\E[42~, + kf22=\E[43~, + kf23=\E[44~, + kf24=\E[45~, + kf25=\E[46~, + kf26=\E[47~, + kf27=\E[48~, + kf28=\E[49~, + kf29=\E[50~, + kf3=\EOR, + kf30=\E[51~, + kf31=\E[52~, + kf32=\E[53~, + kf33=\E[54~, + kf34=\E[55~, + kf35=\E[56~, + kf36=\E[57~, + kf37=\E[58~, + kf38=\E[59~, + kf39=\E[60~, + kf4=\EOS, + kf40=\E[61~, + kf41=\E[62~, + kf42=\E[63~, + kf43=\E[64~, + kf44=\E[65~, + kf45=\E[66~, + kf46=\E[67~, + kf47=\E[68~, + kf48=\E[69~, + kf5=\E[15~, + kf6=\E[17~, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + +xterm+pcf0|fragment with modifyFunctionKeys:0, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\EO2P, + kf14=\EO2Q, + kf15=\EO2R, + kf16=\EO2S, + kf17=\E[15;2~, + kf18=\E[17;2~, + kf19=\E[18;2~, + kf2=\EOQ, + kf20=\E[19;2~, + kf21=\E[20;2~, + kf22=\E[21;2~, + kf23=\E[23;2~, + kf24=\E[24;2~, + kf25=\EO5P, + kf26=\EO5Q, + kf27=\EO5R, + kf28=\EO5S, + kf29=\E[15;5~, + kf3=\EOR, + kf30=\E[17;5~, + kf31=\E[18;5~, + kf32=\E[19;5~, + kf33=\E[20;5~, + kf34=\E[21;5~, + kf35=\E[23;5~, + kf36=\E[24;5~, + kf37=\EO6P, + kf38=\EO6Q, + kf39=\EO6R, + kf4=\EOS, + kf40=\EO6S, + kf41=\E[15;6~, + kf42=\E[17;6~, + kf43=\E[18;6~, + kf44=\E[19;6~, + kf45=\E[20;6~, + kf46=\E[21;6~, + kf47=\E[23;6~, + kf48=\E[24;6~, + kf49=\EO3P, + kf5=\E[15~, + kf50=\EO3Q, + kf51=\EO3R, + kf52=\EO3S, + kf53=\E[15;3~, + kf54=\E[17;3~, + kf55=\E[18;3~, + kf56=\E[19;3~, + kf57=\E[20;3~, + kf58=\E[21;3~, + kf59=\E[23;3~, + kf6=\E[17~, + kf60=\E[24;3~, + kf61=\EO4P, + kf62=\EO4Q, + kf63=\EO4R, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + +# This is almost the same as xterm+pcf2 because the unmodified keys all happen +# to have a pattern that forces the modifier to the same position. +xterm+pcf1|fragment with modifyFunctionKeys:1, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\E[2P, + kf14=\E[2Q, + kf15=\E[2R, + kf16=\E[2S, + kf17=\E[15;2~, + kf18=\E[17;2~, + kf19=\E[18;2~, + kf2=\EOQ, + kf20=\E[19;2~, + kf21=\E[20;2~, + kf22=\E[21;2~, + kf23=\E[23;2~, + kf24=\E[24;2~, + kf25=\E[5P, + kf26=\E[5Q, + kf27=\E[5R, + kf28=\E[5S, + kf29=\E[15;5~, + kf3=\EOR, + kf30=\E[17;5~, + kf31=\E[18;5~, + kf32=\E[19;5~, + kf33=\E[20;5~, + kf34=\E[21;5~, + kf35=\E[23;5~, + kf36=\E[24;5~, + kf37=\E[6P, + kf38=\E[6Q, + kf39=\E[6R, + kf4=\EOS, + kf40=\E[6S, + kf41=\E[15;6~, + kf42=\E[17;6~, + kf43=\E[18;6~, + kf44=\E[19;6~, + kf45=\E[20;6~, + kf46=\E[21;6~, + kf47=\E[23;6~, + kf48=\E[24;6~, + kf49=\E[3P, + kf5=\E[15~, + kf50=\E[3Q, + kf51=\E[3R, + kf52=\E[3S, + kf53=\E[15;3~, + kf54=\E[17;3~, + kf55=\E[18;3~, + kf56=\E[19;3~, + kf57=\E[20;3~, + kf58=\E[21;3~, + kf59=\E[23;3~, + kf6=\E[17~, + kf60=\E[24;3~, + kf61=\E[4P, + kf62=\E[4Q, + kf63=\E[4R, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + +xterm+pcf2|fragment with modifyFunctionKeys:2, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\E[1;2P, + kf14=\E[1;2Q, + kf15=\E[1;2R, + kf16=\E[1;2S, + kf17=\E[15;2~, + kf18=\E[17;2~, + kf19=\E[18;2~, + kf2=\EOQ, + kf20=\E[19;2~, + kf21=\E[20;2~, + kf22=\E[21;2~, + kf23=\E[23;2~, + kf24=\E[24;2~, + kf25=\E[1;5P, + kf26=\E[1;5Q, + kf27=\E[1;5R, + kf28=\E[1;5S, + kf29=\E[15;5~, + kf3=\EOR, + kf30=\E[17;5~, + kf31=\E[18;5~, + kf32=\E[19;5~, + kf33=\E[20;5~, + kf34=\E[21;5~, + kf35=\E[23;5~, + kf36=\E[24;5~, + kf37=\E[1;6P, + kf38=\E[1;6Q, + kf39=\E[1;6R, + kf4=\EOS, + kf40=\E[1;6S, + kf41=\E[15;6~, + kf42=\E[17;6~, + kf43=\E[18;6~, + kf44=\E[19;6~, + kf45=\E[20;6~, + kf46=\E[21;6~, + kf47=\E[23;6~, + kf48=\E[24;6~, + kf49=\E[1;3P, + kf5=\E[15~, + kf50=\E[1;3Q, + kf51=\E[1;3R, + kf52=\E[1;3S, + kf53=\E[15;3~, + kf54=\E[17;3~, + kf55=\E[18;3~, + kf56=\E[19;3~, + kf57=\E[20;3~, + kf58=\E[21;3~, + kf59=\E[23;3~, + kf6=\E[17~, + kf60=\E[24;3~, + kf61=\E[1;4P, + kf62=\E[1;4Q, + kf63=\E[1;4R, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + +xterm+pcf3|fragment with modifyFunctionKeys:3, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\E[>1;2P, + kf14=\E[>1;2Q, + kf15=\E[>1;2R, + kf16=\E[>1;2S, + kf17=\E[>15;2~, + kf18=\E[>17;2~, + kf19=\E[>18;2~, + kf2=\EOQ, + kf20=\E[>19;2~, + kf21=\E[>20;2~, + kf22=\E[>21;2~, + kf23=\E[>23;2~, + kf24=\E[>24;2~, + kf25=\E[>1;5P, + kf26=\E[>1;5Q, + kf27=\E[>1;5R, + kf28=\E[>1;5S, + kf29=\E[>15;5~, + kf3=\EOR, + kf30=\E[>17;5~, + kf31=\E[>18;5~, + kf32=\E[>19;5~, + kf33=\E[>20;5~, + kf34=\E[>21;5~, + kf35=\E[>23;5~, + kf36=\E[>24;5~, + kf37=\E[>1;6P, + kf38=\E[>1;6Q, + kf39=\E[>1;6R, + kf4=\EOS, + kf40=\E[>1;6S, + kf41=\E[>15;6~, + kf42=\E[>17;6~, + kf43=\E[>18;6~, + kf44=\E[>19;6~, + kf45=\E[>20;6~, + kf46=\E[>21;6~, + kf47=\E[>23;6~, + kf48=\E[>24;6~, + kf49=\E[>1;3P, + kf5=\E[15~, + kf50=\E[>1;3Q, + kf51=\E[>1;3R, + kf52=\E[>1;3S, + kf53=\E[>15;3~, + kf54=\E[>17;3~, + kf55=\E[>18;3~, + kf56=\E[>19;3~, + kf57=\E[>20;3~, + kf58=\E[>21;3~, + kf59=\E[>23;3~, + kf6=\E[17~, + kf60=\E[>24;3~, + kf61=\E[>1;4P, + kf62=\E[>1;4Q, + kf63=\E[>1;4R, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, +# +# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27) +# and revised in patch #167 (2002/8/24). +# +# The original assignments from patch #94 for cursor-keys had some technical +# issues: +# +# A parameter for a function-key to represent a modifier is just more +# bits. But for a cursor-key it may change the behavior of the +# application. For instance, emacs decodes the first parameter of a +# cursor-key as a repeat count. +# +# A parameterized string should (really) not begin with SS3 (\EO). +# Rather, CSI (\E[) should be used. +# +# For these reasons, the original assignments were deprecated. For +# compatibility reasons, they are still available as a setting of xterm's +# modifyCursorKeys resource. These fragments list the modified cursor-keys +# that might apply to xterm+pcfkeys with different values of that resource. +xterm+pcc3|fragment with modifyCursorKeys:3, + kLFT=\E[>1;2D, + kRIT=\E[>1;2C, + kind=\E[>1;2B, + kri=\E[>1;2A, + kDN=\E[>1;2B, + kDN3=\E[>1;3B, + kDN4=\E[>1;4B, + kDN5=\E[>1;5B, + kDN6=\E[>1;6B, + kDN7=\E[>1;7B, + kLFT3=\E[>1;3D, + kLFT4=\E[>1;4D, + kLFT5=\E[>1;5D, + kLFT6=\E[>1;6D, + kLFT7=\E[>1;7D, + kRIT3=\E[>1;3C, + kRIT4=\E[>1;4C, + kRIT5=\E[>1;5C, + kRIT6=\E[>1;6C, + kRIT7=\E[>1;7C, + kUP=\E[>1;2A, + kUP3=\E[>1;3A, + kUP4=\E[>1;4A, + kUP5=\E[>1;5A, + kUP6=\E[>1;6A, + kUP7=\E[>1;7A, + +xterm+pcc2|fragment with modifyCursorKeys:2, + kLFT=\E[1;2D, + kRIT=\E[1;2C, + kind=\E[1;2B, + kri=\E[1;2A, + kDN=\E[1;2B, + kDN3=\E[1;3B, + kDN4=\E[1;4B, + kDN5=\E[1;5B, + kDN6=\E[1;6B, + kDN7=\E[1;7B, + kLFT3=\E[1;3D, + kLFT4=\E[1;4D, + kLFT5=\E[1;5D, + kLFT6=\E[1;6D, + kLFT7=\E[1;7D, + kRIT3=\E[1;3C, + kRIT4=\E[1;4C, + kRIT5=\E[1;5C, + kRIT6=\E[1;6C, + kRIT7=\E[1;7C, + kUP=\E[1;2A, + kUP3=\E[1;3A, + kUP4=\E[1;4A, + kUP5=\E[1;5A, + kUP6=\E[1;6A, + kUP7=\E[1;7A, + +xterm+pcc1|fragment with modifyCursorKeys:1, + kLFT=\E[2D, + kRIT=\E[2C, + kind=\E[2B, + kri=\E[2A, + kDN=\E[2B, + kDN3=\E[3B, + kDN4=\E[4B, + kDN5=\E[5B, + kDN6=\E[6B, + kDN7=\E[7B, + kLFT3=\E[3D, + kLFT4=\E[4D, + kLFT5=\E[5D, + kLFT6=\E[6D, + kLFT7=\E[7D, + kRIT3=\E[3C, + kRIT4=\E[4C, + kRIT5=\E[5C, + kRIT6=\E[6C, + kRIT7=\E[7C, + kUP=\E[2A, + kUP3=\E[3A, + kUP4=\E[4A, + kUP5=\E[5A, + kUP6=\E[6A, + kUP7=\E[7A, + +xterm+pcc0|fragment with modifyCursorKeys:0, + kLFT=\EO2D, + kRIT=\EO2C, + kind=\EO2B, + kri=\EO2A, + kDN=\EO2B, + kDN3=\EO3B, + kDN4=\EO4B, + kDN5=\EO5B, + kDN6=\EO6B, + kDN7=\EO7B, + kLFT3=\EO3D, + kLFT4=\EO4D, + kLFT5=\EO5D, + kLFT6=\EO6D, + kLFT7=\EO7D, + kRIT3=\EO3C, + kRIT4=\EO4C, + kRIT5=\EO5C, + kRIT6=\EO6C, + kRIT7=\EO7C, + kUP=\EO2A, + kUP3=\EO3A, + kUP4=\EO4A, + kUP5=\EO5A, + kUP6=\EO6A, + kUP7=\EO7A, + +# The home/end keys on the editing keypad are also treated as cursor keys. +xterm+pce3|fragment with modifyCursorKeys:3, + kDC=\E[>3;2~, + kEND=\E[>1;2F, + kHOM=\E[>1;2H, + kIC=\E[>2;2~, + kNXT=\E[>6;2~, + kPRV=\E[>5;2~, + kDC3=\E[>3;3~, + kDC4=\E[>3;4~, + kDC5=\E[>3;5~, + kDC6=\E[>3;6~, + kDC7=\E[>3;7~, + kEND3=\E[>1;3F, + kEND4=\E[>1;4F, + kEND5=\E[>1;5F, + kEND6=\E[>1;6F, + kEND7=\E[>1;7F, + kHOM3=\E[>1;3H, + kHOM4=\E[>1;4H, + kHOM5=\E[>1;5H, + kHOM6=\E[>1;6H, + kHOM7=\E[>1;7H, + kIC3=\E[>2;3~, + kIC4=\E[>2;4~, + kIC5=\E[>2;5~, + kIC6=\E[>2;6~, + kIC7=\E[>2;7~, + kNXT3=\E[>6;3~, + kNXT4=\E[>6;4~, + kNXT5=\E[>6;5~, + kNXT6=\E[>6;6~, + kNXT7=\E[>6;7~, + kPRV3=\E[>5;3~, + kPRV4=\E[>5;4~, + kPRV5=\E[>5;5~, + kPRV6=\E[>5;6~, + kPRV7=\E[>5;7~, + use=xterm+pce0, + +xterm+pce2|fragment with modifyCursorKeys:2, + kDC=\E[3;2~, + kEND=\E[1;2F, + kHOM=\E[1;2H, + kIC=\E[2;2~, + kNXT=\E[6;2~, + kPRV=\E[5;2~, + kDC3=\E[3;3~, + kDC4=\E[3;4~, + kDC5=\E[3;5~, + kDC6=\E[3;6~, + kDC7=\E[3;7~, + kEND3=\E[1;3F, + kEND4=\E[1;4F, + kEND5=\E[1;5F, + kEND6=\E[1;6F, + kEND7=\E[1;7F, + kHOM3=\E[1;3H, + kHOM4=\E[1;4H, + kHOM5=\E[1;5H, + kHOM6=\E[1;6H, + kHOM7=\E[1;7H, + kIC3=\E[2;3~, + kIC4=\E[2;4~, + kIC5=\E[2;5~, + kIC6=\E[2;6~, + kIC7=\E[2;7~, + kNXT3=\E[6;3~, + kNXT4=\E[6;4~, + kNXT5=\E[6;5~, + kNXT6=\E[6;6~, + kNXT7=\E[6;7~, + kPRV3=\E[5;3~, + kPRV4=\E[5;4~, + kPRV5=\E[5;5~, + kPRV6=\E[5;6~, + kPRV7=\E[5;7~, + use=xterm+pce0, + +xterm+pce1|fragment with modifyCursorKeys:1, + kDC=\E[3;2~, + kEND=\E[2F, + kHOM=\E[2H, + kIC=\E[2;2~, + kNXT=\E[6;2~, + kPRV=\E[5;2~, + kDC3=\E[3;3~, + kDC4=\E[3;4~, + kDC5=\E[3;5~, + kDC6=\E[3;6~, + kDC7=\E[3;7~, + kEND3=\E[3F, + kEND4=\E[4F, + kEND5=\E[5F, + kEND6=\E[6F, + kEND7=\E[7F, + kHOM3=\E[3H, + kHOM4=\E[4H, + kHOM5=\E[5H, + kHOM6=\E[6H, + kHOM7=\E[7H, + kIC3=\E[2;3~, + kIC4=\E[2;4~, + kIC5=\E[2;5~, + kIC6=\E[2;6~, + kIC7=\E[2;7~, + kNXT3=\E[6;3~, + kNXT4=\E[6;4~, + kNXT5=\E[6;5~, + kNXT6=\E[6;6~, + kNXT7=\E[6;7~, + kPRV3=\E[5;3~, + kPRV4=\E[5;4~, + kPRV5=\E[5;5~, + kPRV6=\E[5;6~, + kPRV7=\E[5;7~, + use=xterm+pce0, + +xterm+pce0|fragment with modifyCursorKeys:0, + kDC=\E[3;2~, + kEND=\EO2F, + kHOM=\EO2H, + kIC=\E[2;2~, + kNXT=\E[6;2~, + kPRV=\E[5;2~, + kDC3=\E[3;3~, + kDC4=\E[3;4~, + kDC5=\E[3;5~, + kDC6=\E[3;6~, + kDC7=\E[3;7~, + kEND3=\EO3F, + kEND4=\EO4F, + kEND5=\EO5F, + kEND6=\EO6F, + kEND7=\EO7F, + kHOM3=\EO3H, + kHOM4=\EO4H, + kHOM5=\EO5H, + kHOM6=\EO6H, + kHOM7=\EO7H, + kIC3=\E[2;3~, + kIC4=\E[2;4~, + kIC5=\E[2;5~, + kIC6=\E[2;6~, + kIC7=\E[2;7~, + kNXT3=\E[6;3~, + kNXT4=\E[6;4~, + kNXT5=\E[6;5~, + kNXT6=\E[6;6~, + kNXT7=\E[6;7~, + kPRV3=\E[5;3~, + kPRV4=\E[5;4~, + kPRV5=\E[5;5~, + kPRV6=\E[5;6~, + kPRV7=\E[5;7~, + use=xterm+edit, +# +# This chunk is used for building the VT220/Sun/PC keyboard variants. +xterm-basic|modern xterm terminal emulator - common, + OTbs, + am, + bce, + km, + mc5i, + mir, + msgr, + xenl, + AX, + colors#8, + cols#80, + it#8, + lines#24, + pairs#64, + acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, + blink=\E[5m, + bold=\E[1m, + cbt=\E[Z, + civis=\E[?25l, + clear=\E[H\E[2J, + cnorm=\E[?12l\E[?25h, + cr=^M, + csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, + cub1=^H, + cud=\E[%p1%dB, + cud1=^J, + cuf=\E[%p1%dC, + cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, + cuu1=\E[A, + cvvis=\E[?12;25h, + dch=\E[%p1%dP, + dch1=\E[P, + dl=\E[%p1%dM, + dl1=\E[M, + ech=\E[%p1%dX, + ed=\E[J, + el=\E[K, + el1=\E[1K, + flash=\E[?5h$<100/>\E[?5l, + home=\E[H, + hpa=\E[%i%p1%dG, + ht=^I, + hts=\EH, + ich=\E[%p1%d@, + il=\E[%p1%dL, + il1=\E[L, + ind=^J, + invis=\E[8m, + is2=\E[!p\E[?3;4l\E[4l\E>, + kbs=^H, + kmous=\E[M, + mc0=\E[i, + mc4=\E[4i, + mc5=\E[5i, + meml=\El, + memu=\Em, + op=\E[39;49m, + rc=\E8, + rev=\E[7m, + ri=\EM, + rmacs=\E(B, + rmam=\E[?7l, + rmcup=\E[?1049l, + rmir=\E[4l, + rmkx=\E[?1l\E>, + rmm=\E[?1034l, + rmso=\E[27m, + rmul=\E[24m, + rs1=\Ec, + rs2=\E[!p\E[?3;4l\E[4l\E>, + sc=\E7, + setab=\E[4%p1%dm, + setaf=\E[3%p1%dm, + setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, + setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, + sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, + sgr0=\E(B\E[m, + smacs=\E(0, + smam=\E[?7h, + smcup=\E[?1049h, + smir=\E[4h, + smkx=\E[?1h\E=, + smm=\E[?1034h, + smso=\E[7m, + smul=\E[4m, + tbc=\E[3g, + u6=\E[%i%d;%dR, + u7=\E[6n, + u8=\E[?1;2c, + u9=\E[c, + vpa=\E[%i%p1%dd, +# +# The xterm-new description has all of the features, but is not completely +# compatible with vt220. If you are using a Sun or PC keyboard, set the +# sunKeyboard resource to true: +# + maps the editing keypad +# + interprets control-function-key as a second array of keys, so a +# 12-fkey keyboard can support vt220's 20-fkeys. +# + maps numeric keypad "+" to ",". +# + uses DEC-style control sequences for the application keypad. +# +# Some packagers modify xterm's resource definitions to provide extra function +# keys by using the shift-modifier in the translations resource. However, that +# interferes with the DECUDK functionality. +# +xterm-vt220|xterm emulating vt220, + ka1=\EOw, + ka3=\EOy, + kb2=\EOu, + kc1=\EOq, + kc3=\EOs, + kcbt=\E[Z, + kend=\E[4~, + kent=\EOM, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\E[25~, + kf14=\E[26~, + kf15=\E[28~, + kf16=\E[29~, + kf17=\E[31~, + kf18=\E[32~, + kf19=\E[33~, + kf2=\EOQ, + kf20=\E[34~, + kf3=\EOR, + kf4=\EOS, + kf5=\E[15~, + kf6=\E[17~, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + khome=\E[1~, + kich1=\E[2~, + knp=\E[6~, + kpp=\E[5~, + ka2=\EOx, + kb1=\EOt, + kb3=\EOv, + kc2=\EOr, + use=xterm+app, + use=xterm+edit, + use=xterm-basic, +# +xterm-vt52|xterm emulating dec vt52, + cols#80, + it#8, + lines#24, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, + clear=\EH\EJ, + cr=^M, + cub1=\ED, + cud1=\EB, + cuf1=\EC, + cup=\EY%p1%' '%+%c%p2%' '%+%c, + cuu1=\EA, + ed=\EJ, + el=\EK, + home=\EH, + ht=^I, + ind=^J, + kbs=^H, + kcub1=\ED, + kcud1=\EB, + kcuf1=\EC, + kcuu1=\EA, + nel=^M^J, + ri=\EI, + rmacs=\EG, + smacs=\EF, +# +# Sun does not number the function keys this way in their sparse termcap; their +# terminal descriptions ignore the keypads. kb(7M) states that there are codes +# reserved for 64 function keys, 16 each in left, right, top and bottom. Each +# keyboard type has a different number of function keys in different +# arrangements. Using xkeycaps for reference: +# +# Type 3: left 10, top 9, right 15 +# ------ +# kf1-kf9 are XK_F1-XK_F9 +# There is no kf10 on this keyboard type. +# kf11-kf20 are keysyms XK_L1 through XK_L10. +# kf31-kf45 are keysyms XK_R1 through XK_R15. +# +# However, X's keysymdef.h is hard-coded to make +# XK_L1==XK_F11 and +# XK_R1==XK_F21, +# by someone who was unfamiliar with terminal types other than Sun's. So +# xterm uses the internal X keysymbols, but the terminfo entry uses the Sun +# numbering scheme. +# +# Type 4: left 11, top 12, right 15 +# ------ +# The left-keypad contains an unnumbered Help-key. +# The right-keypad also contains NumLock, Ins, Del, Enter, + and - keys which +# do not appear to be part of the R-sequence. +# +# Type 5: left 9, top 12, right (more than one keypad) +# ------ +# These keyboards do not use the same naming convention, look like a hybrid of +# the type 4 and IBM keyboards. +# +# XTerm resources: +# --------------- +# Set the modifyFunctionKeys resource to negative (-1) to make it simple to +# enter the higher function-key values using shift- and control-modifiers. +# +xterm-sun|xterm with sun function keys, + kb2=\E[218z, + kcpy=\E[197z, + kcub1=\EOD, + kcud1=\EOB, + kcuf1=\EOC, + kcuu1=\EOA, + kdch1=\E[3z, + kend=\E[220z, + kent=\EOM, + kf1=\E[224z, + kf10=\E[233z, + kf11=\E[192z, + kf12=\E[193z, + kf13=\E[194z, + kf14=\E[195z, + kf15=\E[196z, + kf17=\E[198z, + kf18=\E[199z, + kf19=\E[200z, + kf2=\E[225z, + kf20=\E[201z, + kf3=\E[226z, + kf31=\E[208z, + kf32=\E[209z, + kf33=\E[210z, + kf34=\E[211z, + kf35=\E[212z, + kf36=\E[213z, + kf38=\E[215z, + kf4=\E[227z, + kf40=\E[217z, + kf42=\E[219z, + kf44=\E[221z, + kf45=\E[222z, + kf46=\E[234z, + kf47=\E[235z, + kf5=\E[228z, + kf6=\E[229z, + kf7=\E[230z, + kf8=\E[231z, + kf9=\E[232z, + kfnd=\E[200z, + khlp=\E[196z, + khome=\E[214z, + kich1=\E[2z, + knp=\E[222z, + kpp=\E[216z, + kund=\E[195z, + use=xterm-basic, +# +xterm-hp|xterm with hpterm function keys, + kclr=\EJ, + kcub1=\ED, + kcud1=\EB, + kcuf1=\EC, + kcuu1=\EA, + kdch1=\EP, + kend=\EF, + kf1=\Ep, + kf2=\Eq, + kf3=\Er, + kf4=\Es, + kf5=\Et, + kf6=\Eu, + kf7=\Ev, + kf8=\Ew, + khome=\Eh, + kich1=\EQ, + knp=\ES, + kpp=\ET, + use=xterm-basic, +# +# scoterm implements 48 function-keys using shift- and control-modifiers to +# multiple 12 function-keys. X has a hard-coded limit of 35 function-keys, +# but xterm can represent larger values. +# +# XTerm resources: +# --------------- +# Set the modifyFunctionKeys resource to negative (-1) to make it simple to +# enter the higher function-key values using shift- and control-modifiers. +# +# Also, set ctrlFKeys resource to 12 (the default is 10) to make xterm see 48 +# function-keys on a keyboard with 12 function-keys and 4 control/shift +# modifier combinations. +# +xterm-sco|xterm with SCO function keys, + kbeg=\E[E, + kdch1=\177, + kf1=\E[M, + kf10=\E[V, + kf11=\E[W, + kf12=\E[X, + kf13=\E[Y, + kf14=\E[Z, + kf15=\E[a, + kf16=\E[b, + kf17=\E[c, + kf18=\E[d, + kf19=\E[e, + kf2=\E[N, + kf20=\E[f, + kf21=\E[g, + kf22=\E[h, + kf23=\E[i, + kf24=\E[j, + kf25=\E[k, + kf26=\E[l, + kf27=\E[m, + kf28=\E[n, + kf29=\E[o, + kf3=\E[O, + kf30=\E[p, + kf31=\E[q, + kf32=\E[r, + kf33=\E[s, + kf34=\E[t, + kf35=\E[u, + kf36=\E[v, + kf37=\E[w, + kf38=\E[x, + kf39=\E[y, + kf4=\E[P, + kf40=\E[z, + kf41=\E[@, + kf42=\E[[, + kf43=\E[\\, + kf44=\E[], + kf45=\E[\^, + kf46=\E[_, + kf47=\E[`, + kf48=\E[{, + kf5=\E[Q, + kf6=\E[R, + kf7=\E[S, + kf8=\E[T, + kf9=\E[U, + kich1=\E[L, + kmous=\E[>M, + knp=\E[G, + kpp=\E[I, + use=xterm+noapp, + use=xterm-basic, +# +# Other variants (these are all very old entries, from X11R5): +xterm-24|xterms|vs100|xterm terminal emulator (X Window System), + lines#24, + use=xterm-old, +xterm-65|xterm with tall window 65x80 (X Window System), + lines#65, + use=xterm-old, +xterm-bold|xterm with bold instead of underline (X Window System), + smso=\E[7m, + smul=\E[1m, + use=xterm-old, +xterm-boldso|xterm with bold for standout (X Window System), + rmso=\E[m, + smso=\E[1m, + use=xterm-old, +xterm-mono|monochrome xterm, + bce@, + colors@, + ncv@, + pairs@, + op@, + setab@, + setaf@, + setb@, + setf@, + sgr@, + use=xterm-old, +# +# VTxxx terminals are usually set up so that full-screen applications will use +# the cursor application mode strings. This is good for full-screen +# applications, including legacy applications which may have hard-coded +# behavior, but bad for interactive shells (e.g., tcsh, bash) which use arrow +# keys to scroll through a history of command strings. +# +# To see the difference between normal/application modes, consider this example: +# + In normal (non-application) mode, the terminal transmits a down-arrow +# as \E[C, which happens to echo as a down-arrow. +# + In application mode the terminal transmits \EOC, which echoes as C. +# That is because the \EO is the SS3 control, which says to use the +# character from the G3 character set for the next cell. +# +# One example of hard-coded behavior would be for applications written to work +# with VT52 and VT100 terminals. If the application's parser ignores 'O' and +# '?' characters after the escape, then the cursor and keypad strings for the +# two terminals are the same. (Indeed, one of the first curses applications +# which I used did something like this to cover "ANSI" terminals -TD). +# +# To make this work (leaving the cursor keys in normal mode), we have to adjust +# the terminal initialization sequences: +# +# smkx/rmkx set/reset the cursor and keypad application modes. We retain +# the latter (otherwise many applications fail). +# +# smcup/rmcup set/restore cursor-addressing mode for full-screen +# applications. For xterm, this normally means the alternate +# screen, which is not compatible with interactive shells. Some +# programs are "smart" and disable these. +# +xterm-noapp|xterm with cursor keys in normal mode, + rmcup@, + rmkx=\E>, + smcup@, + smkx=\E=, + use=xterm+noapp, + use=xterm, + +xterm+noapp|fragment with cursor keys in normal mode, + kcub1=\E[D, + kcud1=\E[B, + kcuf1=\E[C, + kcuu1=\E[A, + use=xterm+noapp+pc, + +xterm+app|fragment with cursor keys in application mode, + kcub1=\EOD, + kcud1=\EOB, + kcuf1=\EOC, + kcuu1=\EOA, + use=xterm+app+pc, + +xterm+noapp+pc|fragment for noapp pc-style home/end, + kend=\E[F, + khome=\E[H, + +xterm+app+pc|fragment for app pc-style home/end, + kend=\EOF, + khome=\EOH, + +xterm+edit|fragment for 6-key editing-keypad, + kdch1=\E[3~, + kich1=\E[2~, + knp=\E[6~, + kpp=\E[5~, + use=xterm+pc+edit, + +xterm+decedit|fragment for vt220 6-key editing-keypad, + kdch1=\E[3~, + kich1=\E[2~, + knp=\E[6~, + kpp=\E[5~, + use=xterm+vt+edit, + +xterm+pc+edit|fragment for pc-style editing keypad, + kend=\E[4~, + khome=\E[1~, + +xterm+vt+edit|fragment for vt220-style editing keypad, + kfnd=\E[1~, + kslt=\E[4~, + +# +# This should work for the commonly used "color xterm" variations (XFree86 +# xterm, color_xterm, nxterm, rxvt). Note that it does not set 'bce', so for +# XFree86 and and rxvt, some applications that use colors will be less +# efficient, and in a few special cases (with "smart" optimization) the wrong +# color will be painted in spots. +xterm-color|generic "ANSI" color xterm (X Window System), + colors#8, + ncv@, + pairs#64, + op=\E[m, + setab=\E[4%p1%dm, + setaf=\E[3%p1%dm, + use=xterm-r6, +# +# vi may work better with this entry, because vi +# doesn't use insert mode much +xterm-ic|xterm-vi|xterm with insert character instead of insert mode, + mir@, + ich=\E[%p1%d@, + ich1=\E[@, + rmir@, + smir@, + use=xterm, +# +# This is used only for testing (it's not relevant to DEC VTxxx terminals, but +# to ncurses). +xterm-xmc|xterm with magic-cookie glitch, + xmc#1, + use=xterm-new, +# +# This one also is primarily for testing ncurses; while the ISO 6429 defines +# the REP control, none of the DEC VTxxx terminals (VT52 through VT420) support +# it. +xterm-rep|xterm with repeat-character control, + rep=%p1%c\E[%p2%{1}%-%db, + use=xterm-new, +# +# This is mainly for testing xterm; the real VT220 will not let you switch +# character sets without first altering the keyboard language in the setup +# screen. Some emulators allow this anyway. (Note that these strings are +# normally used only for printers). The parameter to csnm and scs is the same +# in both cases: the keyboard language parameter returned by CSI ? 2 6 n. +xterm-nrc|xterm with VT220 national replacement character sets, + csnm=%?%p1%{1}%=%tNorth American%e%p1%{2}%=%tBritish%e%p1%{3}%=%tFlemish%e%p1%{4}%=%tFrench Canadian%e%p1%{5}%=%tDanish%e%p1%{6}%=%tFinnish%e%p1%{7}%=%tGerman%e%p1%{8}%=%tDutch%e%p1%{9}%=%tItalian%e%p1%{10}%=%tSwiss (French)%e%p1%{11}%=%tSwiss (German)%e%p1%{12}%=%tSwedish%e%p1%{13}%=%tNorwegian%e%p1%{14}%=%tFrench/Belgian%e%p1%{15}%=%tSpanish%;, + scs=%?%p1%{1}%=%t\E(B%e%p1%{2}%=%t\E(A%e%p1%{3}%=%t\E(R%e%p1%{4}%=%t\E(9%e%p1%{5}%=%t\E(E%e%p1%{6}%=%t\E(5%e%p1%{7}%=%t\E(K%e%p1%{8}%=%t\E(4%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(=%e%p1%{11}%=%t\E(=%e%p1%{12}%=%t\E(7%e%p1%{13}%=%t\E(E%e%p1%{14}%=%t\E(R%e%p1%{15}%=%t\E(Z%;, + use=xterm-new, +# +# Foreground 0-15 maps (with toggles) into 30-37 & 90-97 +# Background 0-15 maps (with toggles) into 40-47 & 100-107 +# +# Originally I suppressed setaf/setab, since ANSI specifies only 8 colors, but +# Stephen Marley persuaded me to allow the "ANSI" color controls to extend to +# 16 colors. (Note that ncurses 4.2 uses setf/setb from this description; +# however 5.0 selects either according to their availability). - T.Dickey +# +# SVr4 curses does not use more than 8 colors anyway, so using 16 colors is +# either for terminfo-level applications or via ncurses. +xterm-16color|xterm with 16 colors, + colors#16, + pairs#256, + setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm, + setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm, + setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, + setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m, + use=xterm-new, +# +# This uses RGB values 0..1000 +# +# 256 colors should give 65536 pairs, but terminfo stores numbers in a signed +# short. Most people will not notice problems with only 32767 pairs. +xterm-256color|xterm with 256 colors, + ccc, + colors#256, + pairs#32767, + initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, + setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, + setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, + setb@, + setf@, + use=xterm-new, +xterm-88color|xterm with 88 colors, + colors#88, + pairs#7744, + use=xterm-256color, +# +# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color. +# To use it, your decTerminalID resource must be set to 200 or above, and the +# sunKeyboard resource set to true. +# +# HTS \E H \210 +# RI \E M \215 +# SS3 \E O \217 +# CSI \E [ \233 +# +xterm-8bit|xterm terminal emulator with 8-bit controls (X Window System), + OTbs, + am, + bce, + km, + mc5i, + mir, + msgr, + npc, + xenl, + AX, + colors#8, + cols#80, + it#8, + lines#24, + pairs#64, + acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, + blink=\2335m, + bold=\2331m, + cbt=\233Z, + civis=\233?25l, + clear=\233H\2332J, + cnorm=\233?25l\233?25h, + cr=^M, + csr=\233%i%p1%d;%p2%dr, + cub=\233%p1%dD, + cub1=^H, + cud=\233%p1%dB, + cud1=^J, + cuf=\233%p1%dC, + cuf1=\233C, + cup=\233%i%p1%d;%p2%dH, + cuu=\233%p1%dA, + cuu1=\233A, + cvvis=\233?12;25h, + dch=\233%p1%dP, + dch1=\233P, + dl=\233%p1%dM, + dl1=\233M, + ech=\233%p1%dX, + ed=\233J, + el=\233K, + el1=\2331K, + flash=\233?5h$<100/>\233?5l, + home=\233H, + hpa=\233%i%p1%dG, + ht=^I, + hts=\210, + ich=\233%p1%d@, + il=\233%p1%dL, + il1=\233L, + ind=^J, + invis=\2338m, + is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8, + ka1=\217w, + ka3=\217u, + kb2=\217y, + kbeg=\217E, + kbs=^H, + kc1=\217q, + kc3=\217s, + kcbt=\233Z, + kcub1=\217D, + kcud1=\217B, + kcuf1=\217C, + kcuu1=\217A, + kdch1=\2333~, + kend=\2334~, + kent=\217M, + kf1=\23311~, + kf10=\23321~, + kf11=\23323~, + kf12=\23324~, + kf13=\23325~, + kf14=\23326~, + kf15=\23328~, + kf16=\23329~, + kf17=\23331~, + kf18=\23332~, + kf19=\23333~, + kf2=\23312~, + kf20=\23334~, + kf3=\23313~, + kf4=\23314~, + kf5=\23315~, + kf6=\23317~, + kf7=\23318~, + kf8=\23319~, + kf9=\23320~, + khome=\2331~, + kich1=\2332~, + kmous=\233M, + knp=\2336~, + kpp=\2335~, + mc0=\233i, + mc4=\2334i, + mc5=\2335i, + meml=\El, + memu=\Em, + op=\23339;49m, + rc=\E8, + rev=\2337m, + ri=\215, + rmacs=\E(B, + rmam=\233?7l, + rmcup=\233?1049l, + rmir=\2334l, + rmkx=\233?1l\E>, + rmso=\23327m, + rmul=\23324m, + rs1=\Ec, + rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8, + sc=\E7, + setab=\2334%p1%dm, + setaf=\2333%p1%dm, + setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, + setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, + sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, + sgr0=\2330m\E(B, + smacs=\E(0, + smam=\233?7h, + smcup=\233?1049h, + smir=\2334h, + smkx=\233?1h\E=, + smso=\2337m, + smul=\2334m, + tbc=\2333g, + u6=\233[%i%d;%dR, + u7=\E[6n, + u8=\233[?1;2c, + u9=\E[c, + vpa=\233%i%p1%dd, +# +xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System), + OTbs, + am, + bce, + km, + mc5i, + mir, + msgr, + npc, + xenl, + AX, + colors#8, + cols#80, + it#8, + lines#24, + pairs#64, + acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, + blink=\E[5m, + bold=\E[1m, + cbt=\E[Z, + civis=\E[?25l, + clear=\E[H\E[2J, + cnorm=\E[?12l\E[?25h, + cr=^M, + csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, + cub1=^H, + cud=\E[%p1%dB, + cud1=^J, + cuf=\E[%p1%dC, + cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, + cuu1=\E[A, + cvvis=\E[?12;25h, + dch=\E[%p1%dP, + dch1=\E[P, + dl=\E[%p1%dM, + dl1=\E[M, + ech=\E[%p1%dX, + ed=\E[J, + el=\E[K, + el1=\E[1K, + enacs=\E(B\E)0, + flash=\E[?5h$<100/>\E[?5l, + home=\E[H, + hpa=\E[%i%p1%dG, + ht=^I, + hts=\EH, + ich=\E[%p1%d@, + il=\E[%p1%dL, + il1=\E[L, + ind=^J, + indn=\E[%p1%dS, + invis=\E[8m, + is2=\E[!p\E[?3;4l\E[4l\E>, + kDC=\E[3;2~, + kEND=\E[1;2F, + kHOM=\E[1;2H, + kIC=\E[2;2~, + kLFT=\E[1;2D, + kNXT=\E[6;2~, + kPRV=\E[5;2~, + kRIT=\E[1;2C, + kb2=\EOE, + kbs=^H, + kcbt=\E[Z, + kcub1=\EOD, + kcud1=\EOB, + kcuf1=\EOC, + kcuu1=\EOA, + kdch1=\E[3~, + kend=\EOF, + kent=\EOM, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\EO2P, + kf14=\EO2Q, + kf15=\EO2R, + kf16=\EO2S, + kf17=\E[15;2~, + kf18=\E[17;2~, + kf19=\E[18;2~, + kf2=\EOQ, + kf20=\E[19;2~, + kf21=\E[20;2~, + kf22=\E[21;2~, + kf23=\E[23;2~, + kf24=\E[24;2~, + kf25=\EO5P, + kf26=\EO5Q, + kf27=\EO5R, + kf28=\EO5S, + kf29=\E[15;5~, + kf3=\EOR, + kf30=\E[17;5~, + kf31=\E[18;5~, + kf32=\E[19;5~, + kf33=\E[20;5~, + kf34=\E[21;5~, + kf35=\E[23;5~, + kf36=\E[24;5~, + kf37=\EO6P, + kf38=\EO6Q, + kf39=\EO6R, + kf4=\EOS, + kf40=\EO6S, + kf41=\E[15;6~, + kf42=\E[17;6~, + kf43=\E[18;6~, + kf44=\E[19;6~, + kf45=\E[20;6~, + kf46=\E[21;6~, + kf47=\E[23;6~, + kf48=\E[24;6~, + kf5=\E[15~, + kf6=\E[17~, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + khome=\EOH, + kich1=\E[2~, + kmous=\E[M, + knp=\E[6~, + kpp=\E[5~, + mc0=\E[i, + mc4=\E[4i, + mc5=\E[5i, + meml=\El, + memu=\Em, + op=\E[39;49m, + rc=\E8, + rev=\E[7m, + ri=\EM, + rin=\E[%p1%dT, + rmacs=^O, + rmam=\E[?7l, + rmcup=\E[?1049l, + rmir=\E[4l, + rmkx=\E[?1l\E>, + rmso=\E[27m, + rmul=\E[24m, + rs1=\Ec, + rs2=\E[!p\E[?3;4l\E[4l\E>, + sc=\E7, + setab=\E[4%p1%dm, + setaf=\E[3%p1%dm, + setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, + setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, + sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, + sgr0=\E[m\017, + smacs=^N, + smam=\E[?7h, + smcup=\E[?1049h, + smir=\E[4h, + smkx=\E[?1h\E=, + smso=\E[7m, + smul=\E[4m, + tbc=\E[3g, + u6=\E[%i%d;%dR, + u7=\E[6n, + u8=\E[?1;2c, + u9=\E[c, + vpa=\E[%i%p1%dd, + ka2=\EOx, + kb1=\EOt, + kb3=\EOv, + kc2=\EOr, +xterm-xfree86|xterm terminal emulator (XFree86 4.4 Window System), + use=xterm-xf86-v44, +# +# Compatible with the R6 xterm, with the following changes: +# + added acsc (perhaps some versions of tic assume the standard vt100 +# alternate character set) +# + added u6, u7, u8, u9 strings for Daniel Weaver's tack program. +# + added kmous string for ncurses. +# + added khome/kend strings (which conflict with kfnd/kslt, see note). +xterm-r6|xterm-old|xterm X11R6 version, + OTbs, + am, + km, + mir, + msgr, + xenl, + cols#80, + it#8, + lines#24, + acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, + bold=\E[1m, + clear=\E[H\E[2J, + cr=^M, + csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, + cub1=^H, + cud=\E[%p1%dB, + cud1=^J, + cuf=\E[%p1%dC, + cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, + cuu1=\E[A, + dch=\E[%p1%dP, + dch1=\E[P, + dl=\E[%p1%dM, + dl1=\E[M, + ed=\E[J, + el=\E[K, + enacs=\E)0, + home=\E[H, + ht=^I, + hts=\EH, + il=\E[%p1%dL, + il1=\E[L, + ind=^J, + is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, + kbs=^H, + kcub1=\EOD, + kcud1=\EOB, + kcuf1=\EOC, + kcuu1=\EOA, + kdch1=\E[3~, + kf1=\E[11~, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\E[25~, + kf14=\E[26~, + kf15=\E[28~, + kf16=\E[29~, + kf17=\E[31~, + kf18=\E[32~, + kf19=\E[33~, + kf2=\E[12~, + kf20=\E[34~, + kf3=\E[13~, + kf4=\E[14~, + kf5=\E[15~, + kf6=\E[17~, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + kmous=\E[M, + meml=\El, + memu=\Em, + rc=\E8, + rev=\E[7m, + ri=\EM, + rmacs=^O, + rmcup=\E[2J\E[?47l\E8, + rmir=\E[4l, + rmkx=\E[?1l\E>, + rmso=\E[m, + rmul=\E[m, + rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, + sc=\E7, + sgr0=\E[m, + smacs=^N, + smcup=\E7\E[?47h, + smir=\E[4h, + smkx=\E[?1h\E=, + smso=\E[7m, + smul=\E[4m, + tbc=\E[3g, + u6=\E[%i%d;%dR, + u7=\E[6n, + u8=\E[?1;2c, + u9=\E[c, + use=xterm+decedit, +# +# Compatible with the R5 xterm, with the following changes: +# + changed 'blink=@', to 'blink@' (the former meant that "@" would start +# a blink, the latter that it is not supported). +# + changed kf1 through kf4 to correspond with actual usage. Though X +# supports keypad symbols for PF1 to PF4, and xterm interprets these +# correctly, the F1 to F4 codes are commonly (but incorrectly) used. +# + moved reset string from rs1 to rs2, to correlate better with termcap. +# + make khome consistent with other entries. +# + use rmul/smul, rmir/smir from termcap, but not rmcup/smcup because +# not everyone wants the alternate screen. +# + added u6, u7, u8, u9 strings for Daniel Weaver's tack program. +# + added kmous string for ncurses. +xterm-r5|xterm R5 version, + OTbs, + am, + km, + msgr, + xenl, + cols#80, + it#8, + lines#24, + bel=^G, + bold=\E[1m, + clear=\E[H\E[2J, + cr=^M, + csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, + cub1=^H, + cud=\E[%p1%dB, + cud1=^J, + cuf=\E[%p1%dC, + cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, + cuu1=\E[A, + dch=\E[%p1%dP, + dch1=\E[P, + dl=\E[%p1%dM, + dl1=\E[M, + ed=\E[J, + el=\E[K, + home=\E[H, + ht=^I, + hts=\EH, + ich=\E[%p1%d@, + ich1=\E[@, + il=\E[%p1%dL, + il1=\E[L, + ind=^J, + kbs=^H, + kcub1=\EOD, + kcud1=\EOB, + kcuf1=\EOC, + kcuu1=\EOA, + kdch1=\E[3~, + kdl1=\E[31~, + kel=\E[8~, + kend=\E[4~, + kf0=\EOq, + kf1=\E[11~, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf2=\E[12~, + kf3=\E[13~, + kf4=\E[14~, + kf5=\E[15~, + kf6=\E[17~, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + khome=\E[1~, + kich1=\E[2~, + kil1=\E[30~, + kmous=\E[M, + knp=\E[6~, + kpp=\E[5~, + rc=\E8, + rev=\E[7m, + ri=\EM, + rmir=\E[4l, + rmkx=\E[?1l\E>, + rmso=\E[m, + rmul=\E[m, + rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H, + sc=\E7, + sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m, + sgr0=\E[m, + smir=\E[4h, + smkx=\E[?1h\E=, + smso=\E[7m, + smul=\E[4m, + tbc=\E[3g, + u6=\E[%i%d;%dR, + u7=\E[6n, + u8=\E[?1;2c, + u9=\E[c, +# +# +# Customization begins here. +# +# This is the only entry which you should have to customize, since "xterm" +# is widely used for a variety of incompatible terminal emulations including +# color_xterm and rxvt. +xterm|X11 terminal emulator, + use=xterm-new, +# use=xterm-r6, diff --git a/source/l/neon/neon.SlackBuild b/source/l/neon/neon.SlackBuild new file mode 100755 index 000000000..511a0891b --- /dev/null +++ b/source/l/neon/neon.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=neon +VERSION=${VERSION:-0.28.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Wow, even sillier perms than usual: +find . -perm 640 -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-shared \ + --disable-static \ + --with-ssl=openssl \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Relocate docs: +mv $PKG/usr/share/doc $PKG/usr +rmdir $PKG/usr/share + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS BUGS NEWS README THANKS TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/neon/slack-desc b/source/l/neon/slack-desc new file mode 100644 index 000000000..f0db7a947 --- /dev/null +++ b/source/l/neon/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +neon: neon (HTTP and WebDAV client library) +neon: +neon: neon is an HTTP and WebDAV client library, with a C language API. +neon: Bindings for other languages may also be available, see the web site +neon: for more details: http://www.webdav.org/neon/ +neon: +neon: The neon library is used by projects such as subversion. +neon: +neon: +neon: +neon: diff --git a/source/l/netpbm/Makefile.config b/source/l/netpbm/Makefile.config new file mode 100644 index 000000000..d9bf909d5 --- /dev/null +++ b/source/l/netpbm/Makefile.config @@ -0,0 +1,649 @@ +####This file was automatically created by 'configure.' +####Many variables are set twice -- a generic setting, then +####a system-specific override at the bottom of the file. +#### +# This is a make file inclusion, to be included in all the Netpbm make +# files. + +# This file is meant to contain variable settings that customize the +# build for a particular target system configuration. + +# The distribution contains the file Makefile.config.in. You edit +# Makefile.config.in in ways relevant to your particular environment +# to create Makefile.config. The "configure" program will do this +# for you in simple cases. + +# Some of the variables that the including make file must set for this +# file to work: +# +# SRCDIR: The directory at the top of the Netpbm source tree. Note that +# this is typically a relative directory, and it must be relative to the +# make file that includes this file. + +DEFAULT_TARGET = nonmerge +#DEFAULT_TARGET = merge + +# Fiasco has some special requirements that make it fail to compile on +# some systems, and since it isn't very important, just set this to "N" +# and skip it on those systems unless you want to debug it and fix it. +# OpenBSD: +#BUILD_FIASCO = N +BUILD_FIASCO = Y + +# The following are commands for the build process to use. These values +# do not get built into anything. + +# The C compiler (including macro preprocessor) +#CC = gcc +# Note that 'cc' is usually an alias for whatever is the main compiler +# on a system, e.g. the GNU Compiler on Linux. +CC = cc + +# The linker. +LD = $(CC) +#LD = ld +#Tru64: +#LD = cc +#LD = gcc + +#If the linker identified above is a compiler that invokes a linker +#(as in 'cc foo.o -o foo'), set LINKERISCOMPILER. The main difference is +#that we expect a compiler to take linker options in the '-Wl,-opt1,val1' +#syntax whereas the actual linker would take '-opt1 val1'. +LINKERISCOMPILER=Y +#If $(LD) is 'ld': +#LINKERISCOMPILER=N + +#LINKER_CAN_DO_EXPLICIT_LIBRARY means the linker specified above can +#take a library as just another link object argument, as in 'ld +#pnmtojpeg.o /usr/local/lib/libjpeg.so ...' as opposed to requiring a +#-l option as in 'ld pnmtojpeg.o -L/usr/local/lib -l jpeg'. +#This variable controls how 'libopt' gets built. Note that with some +#linkers, you can specify a shared library explicitly, but then it has +#to live in that exact place at run time. That's not good enough for us. + +LINKER_CAN_DO_EXPLICIT_LIBRARY=N +#GNU: +#LINKER_CAN_DO_EXPLICIT_LIBRARY=Y + +# This is the name of the header file that declares the types +# uint32_t, etc. This name is used as #include $(INTTYPES_H) . +# Set to null if the types come automatically without including anything. + +# We have a report (2005.09.17) that on IRIX 5.3 with the native IDO +# cc, inttypes.h and sys/types.h conflict (and Netpbm programs include +# sys/types for other things), so for that environment, +# won't work, but "inttypes_netpbm.h" might. + +INTTYPES_H = +# Linux libc5: +#INTTYPES_H = +# Solaris: +# Solaris has , but it doesn't define int_fast2_t, etc. +#INTTYPES_H = "inttypes_netpbm.h" +# Others: +#INTTYPES_H = +#INTTYPES_H = +# The automatically generated Netpbm version: +#INTTYPES_H = "inttypes_netpbm.h" + +# HAVE_INT64 tells whether, assuming you include the header indicated by +# INTTYPES_H, you have the int64_t type and related stuff. (If you don't +# the build will omit certain code that does 64 bit computations). +HAVE_INT64 = Y +#HAVE_INT64 = N + +# CC and LD are for building the Netpbm programs, which are not necessarily +# intended to run on the same system on which Make is running. But when we +# build a build tool such as Libopt, it is meant to run only on the same +# system on which the Make is running. The variables below define programs +# to use to compile and link build tools. +CC_FOR_BUILD = $(CC) +LD_FOR_BUILD = $(LD) +CFLAGS_FOR_BUILD = $(CFLAGS) + +# MAKE is set automatically by Make to what was used to invoke Make. + +INSTALL = $(SRCDIR)/buildtools/install.sh +#Solaris: +#INSTALL = /usr/ucb/install +#Tru64: +#INSTALL = installbsd +#OSF1: +#INSTALL = $(SRCDIR)/buildtools/installosf +#Red Hat Linux: +#INSTALL = install + +# STRIPFLAG is the option you pass to the above install program to make it +# strip unnecessary information out of binaries. +STRIPFLAG = -s +# If you don't want to strip the binaries, just leave it null: +#STRIPFLAG = + +SYMLINK = ln -s +# At least some Windows environments don't have any concept of symbolic +# links, but direct copies are usually a passable alternative. +#SYMLINK = cp + +#MANPAGE_FORMAT is "nroff" or "cat". It determines in what format the +#pointer man pages are installed (ready to nroff, or ready to cat). +#A pointer man pages is just a single-paragraph pages that tells you there is +#no man page for the program, to look at the HTML documentation instead. +MANPAGE_FORMAT = nroff +#MANPAGE_FORMAT = cat + +AR = ar +RANLIB = ranlib +# IRIX, SCO don't have Ranlib: +#RANLIB = true + +# LEX is the beginning of a shell command that runs a Lex-like +# pattern matcher generator. Null string means there isn't any such +# command. That means the build will skip parts that need one. + +LEX = flex +# Solaris: +# LEX = flex -e +# Windows Mingw: +# LEX = +# +# LEX = lex + +# C compiler options + +# gcc: +# -ansi and -Werror should work too, but are not included +# by default because there's no point in daring the build to fail. +# -pedantic isn't a problem because it causes at worst a warning. +#CFLAGS = -O3 -ffast-math -pedantic -fno-common \ +# -Wall -Wno-uninitialized -Wmissing-declarations -Wimplicit \ +# -Wwrite-string -Wmissing-prototypes -Wundef +# The merged programs have a main_XXX subroutine instead of main(), +# which would cause a warning with -Wmissing-declarations or +# -Wmissing-prototypes. +#CFLAGS_MERGE = -Wno-missing-declarations -Wno-missing-prototypes +# A user of DEC Tru64 4.0F in May 2000 needed -DLONG_32 for ppmtompeg, +# but word size-sensitive code was removed from parallel.c in September 2004. +# A user of Tru64 5.1A in July 2003 needed NOT to have -DLONG_32. In +# theory, you need this if on your system, long is 32 bits and int is not. +# But it may be completely irrelevant today. +#Tru64: +#CFLAGS = -O2 -std1 -DLONG_32 +#CFLAGS = -O2 -std1 +#AIX: +#CFLAGS= -O3 +#HP-UX: +#CFLAGS= -O3 -fPIC +#IRIX: +#CFLAGS= -n32 -O3 +#Amiga with GNU compiler: +#CFLAGS= -m68020-60 -ffast-math -mstackextend +# You can add -noixemul for Amiga and successfully compile most of the +# programs. (Of the remaining ones, if you can supply your own strtod() +# function, most of them will build with -noixemul). So try building +# with 'make --keep-going CADD=-noixemul' first, then just 'make' to build +# everything that failed for lack of the ixemul library in the first step. +# That way, the parts that don't required the ixemul library won't indicate +# a dependency on it. +#OpenBSD: +#CFLAGS = -I/usr/local/include + +# EXE is a suffix that the linker puts on any executable it generates. +# In cygwin, this is .exe and most programs deal with its existence without +# us having to know about it. Some don't though, so set this: + +EXE = +#Cygwin, DJGPP/Windows: +#EXE = .exe + +# linker options. + +# LDFLAGS is often set as an environment variable; A setting here overrides +# it. So either make sure you want to override it, or do a "LDFLAGS +=" here. + +# LDFLAGS is usually not the right place for a -L option, because we put +# LDFLAGS _before_ our own -L options, so it would cancel out our +# specific selection of libraries. For example, if you say +# LDFLAGS=/usr/local/lib and an old copy of the libnetpbm is in +# /usr/local/lib, then you'd be linking against that old copy instead of +# the copy you just built, which is located by a -L option later on the +# link command. LIBS is the right variable for adding -L options. LIBS +# goes after any of our make files' own -L options. + +# Eunice users may want to use -noshare so that the executables can +# run standalone: +#LDFLAGS += -noshare +#Tru64: +# Russ Allberry says on 2001.06.09 that -oldstyle_liblookup may be necessary +# to keep from finding an ancient system libjpeg.so that isn't compatible with +# NetPBM. Michael Long found that /usr/local/lib is not in the default +# search path, or not soon enough, and he was getting an old libjpeg that +# caused all the jpeg symbol references to be unresolved. He had installed +# a new libjpeg in /usr/local/lib. +#LDFLAGS += -call_shared -oldstyle_liblookup -L/usr/local/lib +#AIX: +#LDFLAGS += -L /usr/pubsw/lib +#HP-UX: +#LDFLAGS += -Wl,+b,/usr/pubsw/lib +#IRIX: +#LDFLAGS += -n32 + +# Linker options for created Netpbm shared libraries. + +# Here, $(SONAME) resolves to the soname for the shared library being created. +# The following are gcc options. This works on GNU libc systems. +LDSHLIB = -shared -Wl,-soname,$(SONAME) +# You need -nostart instead of -shared on BeOS. Though the BeOS compiler is +# ostensibly gcc, it has the -nostart option, which is not mentioned in gcc +# documentation and doesn't exist in at least one non-BeOS installation. +# BeOS doesn't have sonames built in. +#LDSHLIB = -nostart +#LDSHLIB = -G +# Solaris, SunOS with GNU Ld, SCO: +# These systems have no soname option. +#LDSHLIB = -shared +# Solaris with Sun Ld: +#LDSHLIB = -Wl,-Bdynamic,-G,-h,$(SONAME) +#Tru64: +#LDSHLIB = -shared -expect_unresolved "*" +#IRIX: +#LDSHLIB = -shared -n32 +#AIX GNU compiler/linker: +#LDSHLIB = -shared +#AIX Visual Age C: +#LDSHLIB = -qmkshrobj + +# LDRELOC is the command to combine two .o files (relocateable object files) +# into a single .o file that can later be linked into something else. NONE +# means no such command is available. + +LDRELOC = NONE +# GNU Ld: +# Older GNU Ld misspells the option as --relocateable. Newer GNU Ld +# correctly spells it --relocatable. The abbreviation --reloc works on +# both. +#LDRELOC = ld --reloc +#LDRELOC = ld -r + + +# On older systems, you have to make shared libraries out of position +# independent code, so you need -fpic or fPIC here. (The rule is: if +# -fpic works, use it. If it bombs, go to fPIC). On newer systems, +# it isn't necessary, but can save real memory at the expense of +# execution speed. Without position independent code, the library +# loader may have to patch addresses into the executable text. On an +# older system, this would cause a program crash because the loader +# would be writing into read-only shared memory. But on newer +# systems, the system silently creates a private mapping of the page +# or segment being modified (the "copy on write" phenomenon). So it +# needs its own private real page frame. In one experiment, A second +# copy of Pbmtext used 16K less real memory when built with -fpic than +# when built without. 2001.06.02. + +# We have seen -fPIC required on IA64 and AMD64 machines (GNU +# compiler/linker). Build-time linking fails without it. I don't +# know why -- history seems to be repeating itself. 2005.02.23. + +CFLAGS_SHLIB = +# Solaris or SunOS with gcc, and NetBSD: +#CFLAGS_SHLIB = -fpic +#CFLAGS_SHLIB = -fPIC +# Sun compiler: +#CFLAGS_SHLIB = -Kpic +#CFLAGS_SHLIB = -KPIC + +# SHLIB_CLIB is the link option to include the C library in a shared library, +# normally "-lc". On typical systems, this serves no purpose. On some, +# though, it causes information about which C library to use to be recorded +# in the shared library and thus choose the correct library among several or +# avoid using an incompatible one. But on some systems, the link fails. +# On 2002.09.30, "John H. DuBois III" reports that on +# SCO OpenServer, he gets the following error message with -lc: +# +# -lc; relocations referenced ; from file(s) /usr/ccs/lib/libc.so(random.o); +# fatal error: relocations remain against allocatable but non-writable +# section: ; .text + +SHLIB_CLIB = -lc +# SCO: +SHLIB_CLIB = + +# On some systems you have to build into an executable the list of +# directories where its dynamically linked libraries can be found at +# run time. This is typically done with a -R or -rpath linker +# option. Even on systems that don't require it, you might prefer to do +# that rather than set up environment variables or configuration files +# to tell the system where the libraries are. A "Y" here means to put +# the directory information in the executable at link time. + +NEED_RUNTIME_PATH = N +# Solaris, SunOS, NetBSD, AIX: +#NEED_RUNTIME_PATH = Y + +# RPATHOPTNAME is the option you use on the link command to specify +# a runtime search path for a shared library. It is meaningless unless +# NEED_RUNTIME_PATH is Y. +RPATHOPTNAME = -rpath + +# The following variables tell where your various libraries on which +# Netpbm depends live. The LIBxxx variable is a full file +# specification of the link library (not necessarily the library used +# at run time). e.g. "/usr/local/lib/graphics/libjpeg.so". It usually +# doesn't matter if the library prefix and suffix are right -- you can +# use "lib" and ".so" or ".a" regardless of what your system actually +# uses because these just turn into "-L" and "-l" linker options +# anyway. ".a" implies a static library for some purposes, though. +# If you don't have the library in question, use a value of NONE for +# LIBxxx and the build will simply skip the programs that require that +# library. If the library is in your linker's (or the Netpbm build's) +# default search path, leave off the directory part, e.g. "libjpeg.so". + +# The xxxHDR_DIR variable is the directory in which the interface +# headers for the library live (e.g. /usr/include). If they are in your +# compiler's default search path, set this variable to null. + +# This is where the Netpbm shared libraries will reside when Netpbm is +# fully installed. In some configurations, the Netpbm builder builds +# this information into the Netpbm executables. This does NOT affect +# where the Netpbm installer installs the libraries. A null value +# means the libraries are in a default search path used by the runtime +# library loader. +NETPBMLIB_RUNTIME_PATH = +#NETPBMLIB_RUNTIME_PATH = /usr/lib/netpbm + +# The TIFF library. See above. If you want to build the tiff +# converters, you must have the tiff library already installed. + +TIFFLIB = NONE +TIFFHDR_DIR = + +#TIFFLIB = libtiff.so +#TIFFHDR_DIR = /usr/include/libtiff +#NetBSD: +#TIFFLIB = $(LOCALBASE)/lib/libtiff.so +#TIFFHDR_DIR = $(LOCALBASE)/include +# OSF, Tru64: +#TIFFLIB = /usr/local1/DEC/lib/libtiff.so +#TIFFHDR_DIR = /usr/local1/DEC/include + +# Some TIFF libraries do Jpeg and/or Z (flate) compression and thus any +# program linked with the TIFF library needs a Jpeg and/or Z library. +# Some TIFF libraries have such library statically linked in, but others +# need it to be dynamically linked at program load time. +# Make this 'N' if youf TIFF library doesn't need such dynamic linking. +# As of 2005.01, the most usual build of the TIFF library appears to require +# both. +TIFFLIB_NEEDS_JPEG = Y +TIFFLIB_NEEDS_Z = Y + +# The JPEG library. See above. If you want to build the jpeg +# converters you must have the jpeg library already installed. + +# Tiff files can use JPEG compression, so the Tiff library can reference +# the JPEG library. If your Tiff library references a dynamic JPEG +# library, you must specify at least JPEGLIB here, or the Tiff +# converters will not build. Note that your Tiff library may have the +# JPEG stuff statically linked in, in which case you won't need +# JPEGLIB in order to build the Tiff converters. + +JPEGLIB = NONE +JPEGHDR_DIR = +#JPEGLIB = libjpeg.so +#JPEGHDR_DIR = /usr/include/jpeg +# Netbsd: +#JPEGLIB = ${LOCALBASE}/lib/libjpeg.so +#JPEGHDR_DIR = ${LOCALBASE}/include +# OSF, Tru64: +#JPEGLIB = /usr/local1/DEC/libjpeg.so +#JPEGHDR_DIR = /usr/local1/DEC/include +# Typical: +#JPEGLIB = /usr/local/lib/libjpeg.so +#JPEGHDR_DIR = /usr/local/include +# Don't build JPEG stuff: +#JPEGLIB = NONE + + +# The PNG library. See above. If you want to build the PNG +# converters you must have the PNG library already installed. + +# The PNG library, by convention starting around April 2002, gets installed +# with names that include a version number, such as libpng10.a and header +# files in /usr/include/libpng10. But there is conventionally an unnumbered +# alias (e.g. libpng.a, /usr/include/libpng) for the preferred version. +# +# Recent versions of the library (since some time in the 2002-2006 period) +# have an associated 'libpng-config' that tells how to link it. The make +# files will use that program if it exists (must be in the PATH). In that +# case, PNGLIB and PNGHDR_DIR are irrelevant, but PNGVER is still meaningful, +# because the make file runs 'libpng$(PNGVER)-config'. + +PNGLIB = NONE +PNGHDR_DIR = +PNGVER = +#PNGLIB = libpng$(PNGVER).so +#PNGHDR_DIR = /usr/include/libpng$(PNGVER) +# NetBSD: +#PNGLIB = $(LOCALBASE)/lib/libpng$(PNGVER).so +#PNGHDR_DIR = $(LOCALBASE)/include +# OSF/Tru64: +#PNGLIB = /usr/local1/DEC/lib/libpng$(PNGVER).so +#PNGHDR_DIR = /usr/local1/DEC/include + +# The zlib compression library. See above. You need it to build +# anything that needs the PNG library (see above). If you selected +# NONE for the PNG library, it doesn't matter what you specify here -- +# it won't get used. +# +# If you have 'libpng-config' (see above), these are irrelevant. + +ZLIB = NONE +ZHDR_DIR = +#ZLIB = libz.so + +# The JBIG lossless image compression library (aka JBIG-KIT): + +JBIGLIB = $(BUILDDIR)/converter/other/jbig/libjbig.a +JBIGHDR_DIR = $(SRCDIR)/converter/other/jbig + +# The Jasper JPEG-2000 image compression library (aka JasPer): +JASPERLIB = $(INTERNAL_JASPERLIB) +JASPERHDR_DIR = $(INTERNAL_JASPERHDR_DIR) +# JASPERDEPLIBS is the libraries (-l options or file names) on which +# The Jasper library depends -- i.e. what you have to link into any +# executable that links in the Jasper library. +JASPERDEPLIBS = +#JASPERDEPLIBS = -ljpeg + +# And the Utah Raster Toolkit (aka URT aka RLE) library: + +URTLIB = $(BUILDDIR)/urt/librle.a +URTHDR_DIR = $(SRCDIR)/urt + +# The X11 library has facilities for talking to an X Window System +# server. It is required by Pamx. + +X11LIB = NONE +X11HDR_DIR = + +#X11LIB = /usr/lib/libX11.so +#X11HDR_DIR = + +# The Linux SVGA library (Svgalib) is a facility for displaying graphics +# on the Linux console. It is required by Ppmsvgalib. + +LINUXSVGALIB = NONE +LINUXSVGAHDR_DIR = + +#LINUXSVGALIB = /usr/lib/libvga.so +#LINUXSVGAHDR_DIR = /usr/include/vgalib + +# If you don't want any network functions, set OMIT_NETWORK to "y". +# The only thing that requires network functions is the option in +# ppmtompeg to run it on multiple computers simultaneously. On some +# systems network functions don't work or we haven't figured out how to +# make them work, or they just aren't worth the effort. +OMIT_NETWORK = +#DJGPP/Windows, Tru64: +# (there's some minor header problem that prevents network functions from +# building on Tru64 2000.10.06) +#OMIT_NETWORK = y + +# These are -l options to link in the network libraries. Often, these are +# built into the standard C library, so this can be null. This is irrelevant +# if OMIT_NETWORK is "y". + +NETWORKLD = +# Solaris, SunOS: +#NETWORKLD = -lsocket -lnsl +# SCO: +#NETWORKLD = -lsocket, -lresolv + +VMS = +#VMS: +#VMS = yes + +# DONT_HAVE_PROCESS_MGMT is Y if this system doesn't have the usual +# Unix process management stuff - fork, wait, etc. N for a regular Unix +# system. +DONT_HAVE_PROCESS_MGMT = N + +# The following variables are used only by 'make install' (and the +# variants of it). Paths here don't, for example, get built into any +# programs. + +# This is where everything goes when you do 'make package', unless you +# override it by setting 'pkgdir' on the Make command line. +PKGDIR_DEFAULT = /tmp/netpbm + +# Subdirectory of the package directory ($(pkgdir)) in which man pages +# go. +PKGMANDIR = man + +# File permissions for installed files. +# Note that on some systems (e.g. Solaris), 'install' can't use the +# mnemonic permissions - you have to use octal. + +# binaries (pbmmake, etc) +INSTALL_PERM_BIN = 755 # u=rwx,go=rx +# shared libraries (libpbm.so, etc) +INSTALL_PERM_LIBD = 755 # u=rwx,go=rx +# static libraries (libpbm.a, etc) +INSTALL_PERM_LIBS = 644 # u=rw,go=r +# header files (pbm.h, etc) +INSTALL_PERM_HDR = 644 # u=rw,go=r +# man pages (pbmmake.1, etc) +INSTALL_PERM_MAN = 644 # u=rw,go=r +# data files (pnmtopalm color maps, etc) +INSTALL_PERM_DATA = 644 # u=rw,go=r + +# Specify the suffix that want the man pages to have. + +SUFFIXMANUALS1 = 1 +SUFFIXMANUALS3 = 3 +SUFFIXMANUALS5 = 5 + +#NETPBMLIBTYPE tells the kind of libraries that will get built to hold the +#Netpbm library functions. The value is used only in make file tests. +# "unixshared" means a unix-style shared library, typically named like +# libxyz.so.2.3 +NETPBMLIBTYPE = unixshared +# "unixstatic" means a unix-style static library, (like libxyz.a) +#NETPBMLIBTYPE = unixstatic +# "dll" means a Windows DLL shared library +#NETPBMLIBTYPE = dll +# "dylib" means a Darwin/Mac OS shared library +#NETPBMLIBTYPE = dylib + +#NETPBMLIBSUFFIX is the suffix used on whatever kind of library is +#selected above. All this is used for is to construct library names. +#The make files never examine the actual value. +NETPBMLIBSUFFIX = so + +# "a" is the suffix for unix-style static libraries. It is also +# traditionally used for shared libraries on AIX. The Visual Age C +# manual says sometimes .so works on AIX, and GNU software for AIX +# 5.1.0 does indeed use it. In our experiments, it works fine if you +# name the library file explicitly on the link, but isn't in the -l +# search order. If you name the library explicitly on the link, the +# library must live in exactly the same position at run time, so we +# can't use that. Therefore, you cannot build both static and shared +# libraries with AIX. You have to choose. +#NETPBMLIBSUFFIX = a +# For HP-UX shared libraries: +#NETPBMLIBSUFFIX = sl +# Darwin/Mac OS shared library: +#NETPBMLIBSUFFIX = dylib +# Windows shared library: +#NETPBMLIBSUFFIX = dll + +#STATICLIB_TOO is "y" to signify that you want a static library built +#and installed in addition to whatever library type you specified by +#NETPBMLIBTYPE. If NETPBMLIBTYPE specified a static library, +#STATICLIB_TOO simply has no effect. +STATICLIB_TOO = y +#STATICLIB_TOO = n + +#STATICLIBSUFFIX is the suffix that static libraries have. It's +#meaningless if you aren't building static libraries. +STATICLIBSUFFIX = a + +#SHLIBPREFIXLIST is a blank-delimited list of prefixes that a filename +#of a shared library may have on this system. Traditionally, it's +#just "lib", as in libc or libnetpbm. On Windows, though, varying +#prefixes are used when multiple alternative forms of a library are +#available. The first prefix in this list is what we use to name the +#Netpbm shared libraries. +# +# This variable controls how 'libopt' gets built. +# +SHLIBPREFIXLIST = lib +#Cygwin: +#SHLIBPREFIXLIST = cyg lib + +NETPBMSHLIBPREFIX = $(firstword $(SHLIBPREFIXLIST)) + +#DLLVER is used to version the DLLs built on cygwin or other +#windowsish platforms. We can't add this to LIBROOT, or we'd +#version the static libs (which is bad). We can't add this +#at the end of the name (like unix does with so numbers) because +#windows will only load dlls whose name ends in "dll". So, +#we have this variable, which becomes the end of the library "root" name +#for DLLs only. +# +# This variable controls how 'libopt' gets built. +# +DLLVER = +#Cygwin +#DLLVER = $(NETPBM_MAJOR_RELEASE) + +#NETPBM_DOCURL is the URL of the main documentation page for Netpbm. +#This is a directory which contains a file for each Netpbm program, +#library, and file type. E.g. The documentation for jpegtopnm might be in +#http://netpbm.sourceforge.net/doc/jpegtopnm.html . This value gets +#installed in the man pages (which say no more than to read the webpage) +#and in the Webman netpbm.url file. +NETPBM_DOCURL = http://netpbm.sourceforge.net/doc/ +#For a system with no web access, but a local copy of the doc: +#NETPBM_DOCURL = file:/usr/doc/netpbm/ + + + + + +####Lines above were copied from Makefile.config.in by 'configure'. +####Lines below were added by 'configure' based on the GNU platform. +DEFAULT_TARGET = nonmerge +NETPBMLIBTYPE=unixshared +NETPBMLIBSUFFIX=so +STATICLIB_TOO=n +CFLAGS = -O3 -ffast-math -pedantic -fno-common -Wall -Wno-uninitialized -Wmissing-declarations -Wimplicit -Wwrite-strings -Wmissing-prototypes -Wundef +CFLAGS_MERGE = -Wno-missing-declarations -Wno-missing-prototypes +LDRELOC = ld --reloc +LINKER_CAN_DO_EXPLICIT_LIBRARY=Y +LINKERISCOMPILER = Y +TIFFLIB = libtiff.so +JPEGLIB = libjpeg.so +ZLIB = libz.so +X11LIB = libX11.so +LINUXSVGALIB = libvga.so +NETPBM_DOCURL = http://netpbm.sourceforge.net/doc/ diff --git a/source/l/netpbm/netpbm.SlackBuild b/source/l/netpbm/netpbm.SlackBuild new file mode 100755 index 000000000..0b6685c12 --- /dev/null +++ b/source/l/netpbm/netpbm.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=netpbm +VERSION=${VERSION:-10.35.22} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP # Do not create $PKG or 'make package' fails + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/Makefile.config.gz \ + | sed -e '/^CFLAGS/s/^CFLAGS = .*/& -fPIC/' > Makefile.config +else + zcat $CWD/Makefile.config.gz > Makefile.config +fi + +# Build and install (does not like parallel build): +make || exit 1 +make package pkgdir=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Put things in proper directories: +( cd $PKG + rm README + mkdir -p usr + mv * usr + cd usr + mkdir -p doc/netpbm-$VERSION + mv VERSION bin/doc.url doc/netpbm-$VERSION + ( cd lib ; ln -sf libnetpbm.so.10 libnetpbm.so ) + mv lib lib${LIBDIRSUFFIX} + rm -rf config_template link misc pkginfo man/man1/manweb.1 man/web +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Even out-of-date manpages are better than nothing. IMHO. +( cd $PKG/usr + tar xjf $CWD/netpbm-manpages.tar.bz2 +) + +# Add a documentation directory: +( cd doc + cp -a \ + COPYRIGHT.PATENT GPL_LICENSE.txt HISTORY INSTALL Netpbm.programming \ + README* USERDOC copyright_summary lgpl_v21.txt \ + $PKG/usr/doc/${PKGNAM}-$VERSION +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/netpbm/slack-desc b/source/l/netpbm/slack-desc new file mode 100644 index 000000000..e4265bef0 --- /dev/null +++ b/source/l/netpbm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netpbm: netpbm (graphics conversion utilities) +netpbm: +netpbm: The netpbm package contains a library and tools for converting between +netpbm: many different graphics formats. +netpbm: +netpbm: +netpbm: +netpbm: +netpbm: +netpbm: +netpbm: diff --git a/source/l/netpbm/svn-checkout-stable.sh b/source/l/netpbm/svn-checkout-stable.sh new file mode 100755 index 000000000..2b2feb21c --- /dev/null +++ b/source/l/netpbm/svn-checkout-stable.sh @@ -0,0 +1 @@ +svn checkout https://netpbm.svn.sourceforge.net/svnroot/netpbm/stable netpbm diff --git a/source/l/openexr/openexr.SlackBuild b/source/l/openexr/openexr.SlackBuild new file mode 100755 index 000000000..772274819 --- /dev/null +++ b/source/l/openexr/openexr.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2007 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman + + +PRGNAM=openexr +VERSION=${VERSION:-1.6.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 + +zcat $CWD/openexr.gcc43.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS ChangeLog COPYING* INSTALL LICENSE NEWS README* \ + $PKG/usr/doc/$PRGNAM-$VERSION +mv $PKG/usr/share/doc/OpenEXR-$VERSION/*.pdf $PKG/usr/doc/$PRGNAM-$VERSION/ +rm -rf $PKG/usr/share/doc + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/openexr/openexr.gcc43.diff b/source/l/openexr/openexr.gcc43.diff new file mode 100644 index 000000000..3c617dd55 --- /dev/null +++ b/source/l/openexr/openexr.gcc43.diff @@ -0,0 +1,22 @@ +--- a/exrenvmap/main.cpp ++++ b/exrenvmap/main.cpp +@@ -46,6 +46,8 @@ + #include + #include + ++#include ++ + using namespace Imf; + using namespace std; + +--- a/exrmaketiled/main.cpp ++++ b/exrmaketiled/main.cpp +@@ -47,6 +47,8 @@ + #include + #include + ++#include ++ + using namespace Imf; + using namespace std; + diff --git a/source/l/openexr/openexr.info b/source/l/openexr/openexr.info new file mode 100644 index 000000000..6d0359808 --- /dev/null +++ b/source/l/openexr/openexr.info @@ -0,0 +1,3 @@ +HOMEPAGE="http://www.openexr.org/" +DOWNLOAD="http://download.savannah.nongnu.org/releases/openexr/openexr-1.6.1.tar.gz" +MD5SUM="11951f164f9c872b183df75e66de145a" diff --git a/source/l/openexr/slack-desc b/source/l/openexr/slack-desc new file mode 100644 index 000000000..cf0b46a62 --- /dev/null +++ b/source/l/openexr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openexr: openexr (HDR Image File Format & Library) +openexr: +openexr: OpenEXR is an image file format and library developed by Industrial +openexr: Light & Magic, and later released to the public. It provides support +openexr: for high dynamic range and a 16-bit floating point "half" data type +openexr: which is compatible with the half data type in the Cg programming +openexr: language. +openexr: +openexr: Homepage: http://www.openexr.org/ +openexr: +openexr: diff --git a/source/l/pango/pango.SlackBuild b/source/l/pango/pango.SlackBuild new file mode 100755 index 000000000..79234a741 --- /dev/null +++ b/source/l/pango/pango.SlackBuild @@ -0,0 +1,139 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.22.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pango +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf pango-$VERSION +tar xvf $CWD/pango-$VERSION.tar.bz2 || exit 1 +cd pango-$VERSION +# Fix for x86_64 (does not hurt the other archs but note that we will start +# using /etc/pango/$host instead of /etc/pango/ now): +zcat $CWD/pango.etc.host.location.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Autoconf changes linux to linux-gnu. +# Our host is $ARCH-slackware-linux not $ARCH-slackware-linux-gnu: +sed -i -e 's#linux|linux-gnu|#linux|linux|#' config.sub + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --docdir=/usr/doc/pango-$VERSION \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux \ + --target=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +# Check the host value that is passed to the compile to the one in this script: +host="$ARCH-slackware-linux" +compile_host=$(grep 'host_triplet =' pango/Makefile | sed "s/.* = //") +if [ "x$compile_host" != "x$host" ]; then + echo "Host mismatch: compile='$compile_host', SlackBuild='$host'" && exit 1 +fi + +make install DESTDIR=$PKG || exit 1 + +# Install wrapper for pango-querymodules: +cp $CWD/update-pango-querymodules $PKG/usr/bin/update-pango-querymodules +chmod 0755 $PKG/usr/bin/update-pango-querymodules + +# Do not remove pangox.aliases +rm -f $PKG/etc/pango/pango.modules +mkdir -p $PKG/etc/pango/$host +touch $PKG/etc/pango/$host/pango.modules + +# We need to have separate 32-bit and 64-bit binaries +# for places where we have two copies of the GTK+ package installed. +# (we might have x86_64 and i486 packages on the same system, for example.) +case "$host" in + s390x*|x86_64*) + mv $PKG/usr/bin/pango-querymodules $PKG/usr/bin/pango-querymodules-64 + ( cd $PKG/usr/bin ; ln -sf pango-querymodules-64 pango-querymodules ) + ;; + *) + mv $PKG/usr/bin/pango-querymodules $PKG/usr/bin/pango-querymodules-32 + ( cd $PKG/usr/bin ; ln -sf pango-querymodules-32 pango-querymodules ) + ;; +esac + +mkdir -p $PKG/install +cat < $PKG/install/doinst.sh +# Updating the pango.modules file: +chroot . /sbin/ldconfig 2> /dev/null +if [ -x /usr/bin/update-pango-querymodules ]; then + /usr/bin/update-pango-querymodules +fi +EOF + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/pango-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README TODO \ + $PKG/usr/doc/pango-$VERSION +ln -s /usr/share/gtk-doc/html/pango $PKG/usr/doc/pango-$VERSION/html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n --prepend $TMP/pango-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pango/pango.etc.host.location.diff b/source/l/pango/pango.etc.host.location.diff new file mode 100644 index 000000000..bb5a26dba --- /dev/null +++ b/source/l/pango/pango.etc.host.location.diff @@ -0,0 +1,33 @@ +diff -uarN pango-1.22.4.orig/pango/Makefile.am pango-1.22.4/pango/Makefile.am +--- pango-1.22.4.orig/pango/Makefile.am 2008-12-16 07:14:00.000000000 +0100 ++++ pango-1.22.4/pango/Makefile.am 2009-03-04 23:58:26.000000000 +0100 +@@ -19,6 +19,7 @@ + -DPANGO_ENABLE_BACKEND \ + -DPANGO_ENABLE_ENGINE \ + -DSYSCONFDIR=\"$(sysconfdir)\" \ ++ -DHOST=\"$(host_triplet)\" \ + -DLIBDIR=\"$(libdir)\" \ + -I$(top_srcdir) \ + $(PANGO_DEBUG_FLAGS) \ +diff -uarN pango-1.22.4.orig/pango/Makefile.in pango-1.22.4/pango/Makefile.in +--- pango-1.22.4.orig/pango/Makefile.in 2008-12-16 07:14:36.000000000 +0100 ++++ pango-1.22.4/pango/Makefile.in 2009-03-04 23:58:26.000000000 +0100 +@@ -427,6 +427,7 @@ + -DPANGO_ENABLE_BACKEND \ + -DPANGO_ENABLE_ENGINE \ + -DSYSCONFDIR=\"$(sysconfdir)\" \ ++ -DHOST=\"$(host_triplet)\" \ + -DLIBDIR=\"$(libdir)\" \ + -I$(top_srcdir) \ + $(PANGO_DEBUG_FLAGS) \ +diff -uarN pango-1.22.4.orig/pango/modules.c pango-1.22.4/pango/modules.c +--- pango-1.22.4.orig/pango/modules.c 2008-12-16 07:14:00.000000000 +0100 ++++ pango-1.22.4/pango/modules.c 2009-03-04 23:58:26.000000000 +0100 +@@ -508,6 +508,7 @@ + + if (!file_str) + file_str = g_build_filename (pango_get_sysconf_subdirectory (), ++ HOST, + "pango.modules", + NULL); + diff --git a/source/l/pango/slack-desc b/source/l/pango/slack-desc new file mode 100644 index 000000000..31be0ffe7 --- /dev/null +++ b/source/l/pango/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pango: pango (library for layout and rendering of text) +pango: +pango: Pango is a library for layout and rendering of text, with an emphasis +pango: on internationalization. Pango can be used anywhere that text layout +pango: is needed; however, most of the work on Pango was done using the GTK+ +pango: widget toolkit as a test platform. Pango forms the core of text and +pango: font handling for GTK+-2. +pango: +pango: +pango: +pango: diff --git a/source/l/pango/update-pango-querymodules b/source/l/pango/update-pango-querymodules new file mode 100644 index 000000000..5aefa034d --- /dev/null +++ b/source/l/pango/update-pango-querymodules @@ -0,0 +1,85 @@ +#! /bin/sh +# Updates the pango.modules in /etc/pango/$host + +umask 022 + +# Get the machine type from uname: +host=$(uname -m)-slackware-linux + +# Fix $host for arm arch: +case "$host" in + arm*) host=arm-slackware-linux-gnueabi ;; +esac + +# Deriving /etc/pango/$host location +# +# We have had problems in the past with build systems +# changing host from i386 to i686 and appending/dropping +# the -gnu suffix, so try to match up the $host we got +# with whats actually there. +if [ ! -d /etc/pango/$host ]; then + case "$host" in + i?86*) + for d in $(ls -d /etc/pango/i?86*); do + host=$(basename $d) + break + done + ;; + esac +fi + +FILE=/etc/pango/$host/pango.modules + +case "$host" in + s390x*|x86_64*) + if [ -x /usr/bin/pango-querymodules-64 ]; then + if [ "$1" = "--verbose" ]; then + echo "Updating pango.modules for ${host}:" + echo " /usr/bin/pango-querymodules-64 \\" + echo " > $FILE" + fi + /usr/bin/pango-querymodules-64 > $FILE + # Check for x86_64 multilib: + if ls -d /etc/pango/i?86* 1> /dev/null 2> /dev/null ; then + for d in $(ls -d /etc/pango/i?86*); do + mlhost=$(basename $d) + break + done + if [ -r /etc/pango/$mlhost/pango.modules -a -x /usr/bin/pango-querymodules-32 ]; then + FILE=/etc/pango/$mlhost/pango.modules + if [ "$1" = "--verbose" ]; then + echo "Updating pango.modules for ${mlhost}:" + echo " /usr/bin/pango-querymodules-32 \\" + echo " > $FILE" + fi + /usr/bin/pango-querymodules-32 > $FILE + fi + fi + else + if [ "$1" = "--verbose" ]; then + echo "Updating pango.modules for ${host}:" + echo " /usr/bin/pango-querymodules \\" + echo " > $FILE" + fi + /usr/bin/pango-querymodules > $FILE + fi + ;; + *) + if [ -x /usr/bin/pango-querymodules-32 ]; then + if [ "$1" = "--verbose" ]; then + echo "Updating pango.modules for ${host}:" + echo " /usr/bin/pango-querymodules-32 \\" + echo " > $FILE" + fi + /usr/bin/pango-querymodules-32 > $FILE + else + if [ "$1" = "--verbose" ]; then + echo "Updating pango.modules for ${host}:" + echo " /usr/bin/pango-querymodules \\" + echo " > $FILE" + fi + /usr/bin/pango-querymodules > $FILE + fi + ;; +esac + diff --git a/source/l/parted/parted.SlackBuild b/source/l/parted/parted.SlackBuild new file mode 100755 index 000000000..e4a9e5926 --- /dev/null +++ b/source/l/parted/parted.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=parted +VERSION=${VERSION:-1.8.8} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-march=i486 -mtune=i686 -fgnu89-inline" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC -fgnu89-inline" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION + +zcat $CWD/parted.configure.diff.gz | patch -p0 --verbose --backup --suffix=.orig || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-shared=yes \ + --enable-static=no \ + --enable-device-mapper=yes \ + --with-readline \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p ${PKG}/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS BUGS COPYING NEWS README THANKS TODO \ + doc/{API,FAT} doc/USER.jp \ + $PKG/usr/doc/parted-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/parted/parted.SlackBuild.static b/source/l/parted/parted.SlackBuild.static new file mode 100755 index 000000000..4c89bbb04 --- /dev/null +++ b/source/l/parted/parted.SlackBuild.static @@ -0,0 +1,118 @@ +#!/bin/sh + +# Copyright 2008 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=parted +VERSION=${VERSION:-1.8.8} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-march=i486 -mtune=i686 -fgnu89-inline" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC -fgnu89-inline" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION + +zcat $CWD/parted.configure.diff.gz | patch -p0 --verbose --backup --suffix=.orig || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --enable-shared=no \ + --enable-static=yes \ + --with-readline \ + --enable-device-mapper=yes \ + --build=$ARCH-slackware-linux + +CFLAGS="$SLKCFLAGS" make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p ${PKG}/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS BUGS COPYING NEWS README THANKS TODO \ + doc/{API,FAT} doc/USER.jp \ + $PKG/usr/doc/parted-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.tgz + diff --git a/source/l/parted/parted.configure.diff b/source/l/parted/parted.configure.diff new file mode 100644 index 000000000..3d139f077 --- /dev/null +++ b/source/l/parted/parted.configure.diff @@ -0,0 +1,11 @@ +--- configure.old 2007-03-20 14:46:50.000000000 -0300 ++++ configure 2007-04-22 19:03:04.000000000 -0300 +@@ -12315,7 +12315,7 @@ + # native cc issues annoying warnings and then ignores it, + # which would cause us to incorrectly conclude that it worked. + for gl_flags in \ +- '-Wl,--as-needed' \ ++ '-Wl,--no-as-needed' \ + '-Wl,-z,ignore' \ + '-z ignore' + do diff --git a/source/l/parted/slack-desc b/source/l/parted/slack-desc new file mode 100644 index 000000000..77e79e46f --- /dev/null +++ b/source/l/parted/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +parted: parted (GNU disk partitioning tool) +parted: +parted: GNU Parted is a program for creating, destroying, resizing, checking +parted: and copying partitions, and the filesystems on them. This is useful +parted: for creating space for new operating systems, reorganizing disk +parted: usage, copying data between hard disks, and disk imaging. +parted: +parted: +parted: +parted: +parted: diff --git a/source/l/pcre/pcre.SlackBuild b/source/l/pcre/pcre.SlackBuild new file mode 100755 index 000000000..dd0723192 --- /dev/null +++ b/source/l/pcre/pcre.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=7.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pcre + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf pcre-$VERSION +tar xvf $CWD/pcre-$VERSION.tar.bz2 || exit 1 +cd pcre-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --enable-utf8 \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man + +CFLAGS="$SLKCFLAGS" make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libpcre.so.* \ + $PKG/usr/lib${LIBDIRSUFFIX}/libpcreposix.so.* + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null +) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/pcre-$VERSION +cp -a \ + AUTHORS COPYING INSTALL LICENCE NEWS NON-UNIX-USE README \ + $PKG/usr/doc/pcre-$VERSION +cd doc +cp -a Tech.Notes html $PKG/usr/doc/pcre-$VERSION +chown -R root:root $PKG/usr/doc/pcre-$VERSION +# Eliminate redundant docs: +rm -rf $PKG/usr/share/doc +rmdir $PKG/usr/share + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/pcre-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pcre/slack-desc b/source/l/pcre/slack-desc new file mode 100644 index 000000000..3bcc9d644 --- /dev/null +++ b/source/l/pcre/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pcre: pcre (Perl-compatible regular expression library) +pcre: +pcre: The PCRE library is a set of functions that implement regular +pcre: expression pattern matching using the same syntax and semantics as +pcre: Perl 5, with just a few differences (documented in the man page). +pcre: +pcre: The PCRE library is used by KDE's Konqueror browser. +pcre: +pcre: +pcre: +pcre: diff --git a/source/l/phonon/phonon.SlackBuild b/source/l/phonon/phonon.SlackBuild new file mode 100755 index 000000000..9afb84002 --- /dev/null +++ b/source/l/phonon/phonon.SlackBuild @@ -0,0 +1,95 @@ +#!/bin/sh + +# Copyright 2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.3.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-phonon + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +tar xvf $CWD/phonon-$VERSION.tar.bz2 || exit 1 +cd phonon-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + . +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/phonon-$VERSION +cp -a phonon/{BUGS,IDEAS,TODO} $PKG/usr/doc/phonon-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/phonon-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/phonon/slack-desc b/source/l/phonon/slack-desc new file mode 100644 index 000000000..9602f73b7 --- /dev/null +++ b/source/l/phonon/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +phonon: phonon (multimedia framework for KDE4) +phonon: +phonon: Phonon is the multimedia framework for KDE4. +phonon: +phonon: +phonon: +phonon: +phonon: +phonon: +phonon: +phonon: diff --git a/source/l/pil/pil.SlackBuild b/source/l/pil/pil.SlackBuild new file mode 100755 index 000000000..c9c11c2da --- /dev/null +++ b/source/l/pil/pil.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +VERSION=1.1.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "${ARCH}" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pil + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf Imaging-$VERSION +tar xvf $CWD/Imaging-$VERSION.tar.*z* || exit 1 +cd Imaging-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +python setup.py build_ext -i || exit 1 +python setup.py install --root=$PKG || exit 1 + +( cd Sane + python setup.py build || exit 1 + python setup.py install --root=$PKG || exit 1 +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/pil-$VERSION +cp -a \ + BUILDME CHANGES CONTENTS MANIFEST README \ + $PKG/usr/doc/pil-$VERSION +cp -a Sane/README $PKG/usr/doc/pil-$VERSION/README.Sane + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/pil-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pil/slack-desc b/source/l/pil/slack-desc new file mode 100644 index 000000000..1e48b571c --- /dev/null +++ b/source/l/pil/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pil: pil (Python Imaging Library) +pil: +pil: The Python Imaging Library (PIL) adds image processing capabilities +pil: to your Python environment. This library provides extensive file +pil: format support, an efficient internal representation, and powerful +pil: image processing capabilities. +pil: +pil: PIL is used by the scanning component of HPLIP. +pil: +pil: PIL homepage: http://www.pythonware.com/products/pil/ +pil: diff --git a/source/l/pilot-link/pilot-link.SlackBuild b/source/l/pilot-link/pilot-link.SlackBuild new file mode 100755 index 000000000..ca32428cc --- /dev/null +++ b/source/l/pilot-link/pilot-link.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-0.12.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-9} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pilot-link +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf pilot-link-$VERSION +tar xvf $CWD/pilot-link-$VERSION.tar.bz2 || exit 1 +cd pilot-link-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var/lib \ + --mandir=/usr/man \ + --docdir=/usr/doc/pilot-link-$VERSION \ + --enable-static=no \ + --enable-conduits \ + --enable-threads \ + --enable-libusb \ + --with-libpng \ + --with-perl \ + --with-python \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make -i $NUMJOBS || make -i || exit 1 +make -i install DESTDIR=$PKG || exit 1 + +# Get rid of perllocal.pod: +( cd $PKG ; find . -name perllocal.pod -exec rm "{}" \; ) + +# Right. +mkdir -p $PKG/lib/udev/rules.d +mv $PKG/usr/share/pilot-link/udev/60-libpisock.rules \ + $PKG/lib/udev/rules.d/80-libpisock.rules +rmdir $PKG/usr/share/pilot-link/udev + +# Fix the mode set by the default udev rules +sed -i "s/0664/0660/g" $PKG/lib/udev/rules.d/80-libpisock.rules + +# Dropped one. +if [ -d $PKG/usr/share/man/man3 ]; then + mkdir -p $PKG/usr/man/man3 + mv $PKG/usr/share/man/man3/* $PKG/usr/man/man3 + rmdir $PKG/usr/share/man/man3 2> /dev/null + rmdir $PKG/usr/share/man 2> /dev/null + rmdir $PKG/usr/share 2> /dev/null +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/pilot-link-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README \ + $PKG/usr/doc/pilot-link-$VERSION + +# Install man pages: +mkdir -p $PKG/usr/man/man{1,7} +cp -a doc/man/*.1 $PKG/usr/man/man1 +cp -a doc/man/*.7 $PKG/usr/man/man7 +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/pilot-link-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pilot-link/slack-desc b/source/l/pilot-link/slack-desc new file mode 100644 index 000000000..de19fb3f3 --- /dev/null +++ b/source/l/pilot-link/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pilot-link: pilot-link (library for communicating with PalmOS devices) +pilot-link: +pilot-link: This is a library for communicating with Palm Computing, Inc. Palm +pilot-link: Devices as well as the Handspring Visor, TRGPro, and other devices +pilot-link: which conform to this standard (PalmOS licensed devices). +pilot-link: +pilot-link: pilot-link is used by KPilot. +pilot-link: +pilot-link: +pilot-link: +pilot-link: diff --git a/source/l/poppler-data/poppler-data.SlackBuild b/source/l/poppler-data/poppler-data.SlackBuild new file mode 100755 index 000000000..090004d48 --- /dev/null +++ b/source/l/poppler-data/poppler-data.SlackBuild @@ -0,0 +1,63 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=poppler-data +VERSION=${VERSION:-0.2.1} +ARCH=${ARCH:-noarch} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# install: +make install datadir=/usr/share DESTDIR=$PKG + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/poppler-data/slack-desc b/source/l/poppler-data/slack-desc new file mode 100644 index 000000000..b54e6ed19 --- /dev/null +++ b/source/l/poppler-data/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +poppler-data: poppler-data (data files used by poppler) +poppler-data: +poppler-data: This package consists of encoding files for use with poppler. The +poppler-data: encoding files are optional and poppler will automatically read them +poppler-data: if they are present. When installed, the encoding files enables +poppler-data: poppler to correctly render CJK and Cyrillic properly. While poppler +poppler-data: is licensed under the GPL, these encoding files are copyright Adobe +poppler-data: and licensed much more strictly, and thus distributed separately. +poppler-data: +poppler-data: +poppler-data: diff --git a/source/l/poppler/poppler.SlackBuild b/source/l/poppler/poppler.SlackBuild new file mode 100755 index 000000000..4f4f6f304 --- /dev/null +++ b/source/l/poppler/poppler.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=poppler +VERSION=${VERSION:-0.10.7} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --enable-xpdf-headers \ + --enable-poppler-qt4 \ + --enable-cairo-output \ + --mandir=/usr/man \ + --disable-static \ + --enable-zlib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a AUTHORS COPYING* INSTALL NEWS README README-XPDF TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION +( cd $PKG/usr/doc/${PKGNAM}-$VERSION + ln -s /usr/share/gtk-doc/html/poppler html ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/poppler/slack-desc b/source/l/poppler/slack-desc new file mode 100644 index 000000000..9d5891d8a --- /dev/null +++ b/source/l/poppler/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +poppler: poppler (a library for rendering PDF documents) +poppler: +poppler: Poppler is a library based on the xpdf PDF viewer developed by Derek +poppler: Noonburg of Glyph and Cog, LLC. Since xpdf does not provide a shared +poppler: library, whenever a flaw was found potentially dozens of applications +poppler: incorporating code from xpdf would have to be patched. By providing +poppler: a centralized PDF library this duplicated effort will be eliminated. +poppler: +poppler: +poppler: +poppler: diff --git a/source/l/popt/popt.SlackBuild b/source/l/popt/popt.SlackBuild new file mode 100755 index 000000000..4e01dd527 --- /dev/null +++ b/source/l/popt/popt.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=popt +VERSION=${VERSION:-1.7} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make -j4 || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/popt/slack-desc b/source/l/popt/slack-desc new file mode 100644 index 000000000..46e60e6d8 --- /dev/null +++ b/source/l/popt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +popt: popt (command line parsing library) +popt: +popt: Popt is a C library for parsing command line parameters. Popt was +popt: heavily influenced by the getopt() and getopt_long() functions, but it +popt: improves on them by allowing more powerful argument expansion. Popt +popt: can parse arbitrary argv[] style arrays and automatically set +popt: variables based on command line arguments. Popt allows command line +popt: arguments to be aliased via configuration files and includes utility +popt: functions for parsing arbitrary strings into argv[] arrays using +popt: shell-like rules. +popt: diff --git a/source/l/pycairo/pycairo.SlackBuild b/source/l/pycairo/pycairo.SlackBuild new file mode 100755 index 000000000..f8ab9c71e --- /dev/null +++ b/source/l/pycairo/pycairo.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Slackware build script for pycairo + +# Copyright 2007 by Eric Hameleers +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=pycairo +VERSION=1.8.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.*z* || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS NOTES README \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pycairo/pycairo.info b/source/l/pycairo/pycairo.info new file mode 100644 index 000000000..5882ba318 --- /dev/null +++ b/source/l/pycairo/pycairo.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://cairographics.org/pycairo" +DOWNLOAD="http://cairographics.org/releases/pycairo-1.8.2.tar.gz" diff --git a/source/l/pycairo/slack-desc b/source/l/pycairo/slack-desc new file mode 100644 index 000000000..96622684a --- /dev/null +++ b/source/l/pycairo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pycairo: pycairo (a set of Python bindings for the cairo graphics library) +pycairo: +pycairo: Pycairo is set of Python bindings for the cairo graphics library. +pycairo: +pycairo: Pycairo's web site: http://cairographics.org/pycairo +pycairo: +pycairo: +pycairo: +pycairo: +pycairo: +pycairo: diff --git a/source/l/pycups/pycups.SlackBuild b/source/l/pycups/pycups.SlackBuild new file mode 100755 index 000000000..a250d508e --- /dev/null +++ b/source/l/pycups/pycups.SlackBuild @@ -0,0 +1,64 @@ +#!/bin/sh + +# Copyright 2008 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman + + +PRGNAM=pycups +VERSION=${VERSION:-1.9.45} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "shared object" -e "executable" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a COPYING* NEWS README TODO $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pycups/pycups.info b/source/l/pycups/pycups.info new file mode 100644 index 000000000..caf5cf58f --- /dev/null +++ b/source/l/pycups/pycups.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://cyberelk.net/tim/software/pycups/" +DOWNLOAD="http://cyberelk.net/tim/data/pycups/pycups-1.9.41.tar.bz2" diff --git a/source/l/pycups/slack-desc b/source/l/pycups/slack-desc new file mode 100644 index 000000000..0d79a0aef --- /dev/null +++ b/source/l/pycups/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler----------------------------------------------| +pycups: pycups (Python bindings for the CUPS API) +pycups: +pycups: These Python bindings are intended to wrap the CUPS API. +pycups: +pycups: Homepage: http://cyberelk.net/tim/software/pycups/ +pycups: +pycups: +pycups: +pycups: +pycups: +pycups: diff --git a/source/l/pygobject/pygobject.SlackBuild b/source/l/pygobject/pygobject.SlackBuild new file mode 100755 index 000000000..a6750e3d5 --- /dev/null +++ b/source/l/pygobject/pygobject.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2007, 2008 Erik Hanson erik@slackbuilds.org +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=pygobject +VERSION=2.16.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --build=$ARCH-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + INSTALL AUTHORS COPYING NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION +( cd $PKG/usr/doc/$PRGNAM-$VERSION + ln -s ../../share/gtk-doc/html/pygobject html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pygobject/pygobject.info b/source/l/pygobject/pygobject.info new file mode 100644 index 000000000..b67cef497 --- /dev/null +++ b/source/l/pygobject/pygobject.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://www.pygtk.org/" +DOWNLOAD="http://ftp.gnome.org/pub/GNOME/sources/pygobject/2.16/pygobject-2.16.0.tar.bz2" diff --git a/source/l/pygobject/slack-desc b/source/l/pygobject/slack-desc new file mode 100644 index 000000000..f1bdf798f --- /dev/null +++ b/source/l/pygobject/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pygobject: pygobject (GObject bindings for Python) +pygobject: +pygobject: This archive contains bindings for the GObject, to be used in Python. +pygobject: It is a fairly complete set of bindings, it's already rather useful, +pygobject: and is usable to write moderately complex programs. +pygobject: +pygobject: pygobject's home page: http://www.pygtk.org/ +pygobject: +pygobject: +pygobject: +pygobject: diff --git a/source/l/pygtk/pygtk.SlackBuild b/source/l/pygtk/pygtk.SlackBuild new file mode 100755 index 000000000..3055ba30e --- /dev/null +++ b/source/l/pygtk/pygtk.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2007 Erik Hanson erik@slackbuilds.org +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=pygtk +VERSION=2.14.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --build=$ARCH-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + MAPPING PKG-INFO INSTALL TODO AUTHORS COPYING NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION +( cd $PKG/usr/doc/$PRGNAM-$VERSION + ln -s ../../share/gtk-doc/html/pygtk html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pygtk/slack-desc b/source/l/pygtk/slack-desc new file mode 100644 index 000000000..c83785e95 --- /dev/null +++ b/source/l/pygtk/slack-desc @@ -0,0 +1,20 @@ + +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pygtk: pygtk (GTK+ bindings for Python) +pygtk: +pygtk: PyGTK provides a convenient wrapper for the GTK+ library for use in +pygtk: Python programs, taking care of many of the boring details such as +pygtk: managing memory and type casting. +pygtk: +pygtk: PyGTK's web page: http://www.pygtk.org/ +pygtk: +pygtk: +pygtk: +pygtk: diff --git a/source/l/pyrex/Pyrex.url b/source/l/pyrex/Pyrex.url new file mode 100644 index 000000000..d013d06b9 --- /dev/null +++ b/source/l/pyrex/Pyrex.url @@ -0,0 +1 @@ +http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/ diff --git a/source/l/pyrex/pyrex.SlackBuild b/source/l/pyrex/pyrex.SlackBuild new file mode 100755 index 000000000..fbd979fe0 --- /dev/null +++ b/source/l/pyrex/pyrex.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2007 David Somero +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=0.9.8.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "${ARCH}" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-Pyrex + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf Pyrex-$VERSION +tar xvf $CWD/Pyrex-$VERSION.tar.*z* || exit 1 +cd Pyrex-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +python setup.py install --root=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/Pyrex-$VERSION +cp -a \ + README* INSTALL* USAGE* ToDo* \ + $PKG/usr/doc/Pyrex-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/pyrex-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/pyrex/slack-desc b/source/l/pyrex/slack-desc new file mode 100644 index 000000000..5f9e08506 --- /dev/null +++ b/source/l/pyrex/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +pyrex: pyrex (A Python extension modules language) +pyrex: +pyrex: Pyrex is a language for writing Python extension modules. +pyrex: Pyrex lets you write code that mixes Python and C data types any +pyrex: way you want, and then compiles it into a C extension for Python. +pyrex: +pyrex: The home page for Pyrex is: +pyrex: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ +pyrex: +pyrex: +pyrex: diff --git a/source/l/qca-cyrus-sasl/qca-cyrus-sasl.SlackBuild b/source/l/qca-cyrus-sasl/qca-cyrus-sasl.SlackBuild new file mode 100755 index 000000000..5e9d04b9e --- /dev/null +++ b/source/l/qca-cyrus-sasl/qca-cyrus-sasl.SlackBuild @@ -0,0 +1,80 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman for qca-cyrus-sasl-2.0.0 +# No additional license terms and no copyright claim + + +PKGNAM=qca-cyrus-sasl +VERSION=2.0.0_beta3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$(echo $VERSION | tr _ -) +tar xvf $CWD/$PKGNAM-$(echo $VERSION | tr _ -).tar.bz2 || exit 1 +cd $PKGNAM-$(echo $VERSION | tr _ -) || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure + +make \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" +make install INSTALL_ROOT=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _) +cp -a COPYING README $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/l/qca-cyrus-sasl/slack-desc b/source/l/qca-cyrus-sasl/slack-desc new file mode 100644 index 000000000..29585fe9a --- /dev/null +++ b/source/l/qca-cyrus-sasl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler---------------------------------------------| +qca-cyrus-sasl: qca-cyrus-sasl (Cyrus SASL plugin for QCA) +qca-cyrus-sasl: +qca-cyrus-sasl: This plugin provides features based on Cyrus SASL version 2. +qca-cyrus-sasl: +qca-cyrus-sasl: +qca-cyrus-sasl: +qca-cyrus-sasl: +qca-cyrus-sasl: +qca-cyrus-sasl: +qca-cyrus-sasl: +qca-cyrus-sasl: diff --git a/source/l/qca-gnupg/qca-gnupg.SlackBuild b/source/l/qca-gnupg/qca-gnupg.SlackBuild new file mode 100755 index 000000000..7e07cefa2 --- /dev/null +++ b/source/l/qca-gnupg/qca-gnupg.SlackBuild @@ -0,0 +1,80 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman for qca-gnupg-2.0.0 +# No additional license terms and no copyright claim + + +PKGNAM=qca-gnupg +VERSION=2.0.0_beta3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$(echo $VERSION | tr _ -) +tar xvf $CWD/$PKGNAM-$(echo $VERSION | tr _ -).tar.bz2 || exit 1 +cd $PKGNAM-$(echo $VERSION | tr _ -) || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure + +make \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" +make install INSTALL_ROOT=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _) +cp -a COPYING README $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/l/qca-gnupg/slack-desc b/source/l/qca-gnupg/slack-desc new file mode 100644 index 000000000..556ea6242 --- /dev/null +++ b/source/l/qca-gnupg/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler--------------------------------------------------| +qca-gnupg: qca-gnupg (GnuPG plugin for QCA) +qca-gnupg: +qca-gnupg: This plugin provides features based on GnuPG. +qca-gnupg: +qca-gnupg: +qca-gnupg: +qca-gnupg: +qca-gnupg: +qca-gnupg: +qca-gnupg: +qca-gnupg: diff --git a/source/l/qca-ossl/qca-ossl.SlackBuild b/source/l/qca-ossl/qca-ossl.SlackBuild new file mode 100755 index 000000000..717b397b9 --- /dev/null +++ b/source/l/qca-ossl/qca-ossl.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman for qca-ossl-2.0.0 +# No additional license terms and no copyright claim + + +PKGNAM=qca-ossl +VERSION=2.0.0_beta3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$(echo $VERSION | tr _ -) +tar xvf $CWD/$PKGNAM-$(echo $VERSION | tr _ -).tar.bz2 || exit 1 +cd $PKGNAM-$(echo $VERSION | tr _ -) || exit 1 +chown -R root:root . +# Fix a compilation error with our new openssh: +zcat $CWD/qca-ossl.nowhirlpool.diff.gz | patch -p0 --verbose || exit 1 +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure + +make \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" +make install INSTALL_ROOT=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _) +cp -a COPYING README TODO $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/l/qca-ossl/qca-ossl.nowhirlpool.diff b/source/l/qca-ossl/qca-ossl.nowhirlpool.diff new file mode 100644 index 000000000..96451e1a6 --- /dev/null +++ b/source/l/qca-ossl/qca-ossl.nowhirlpool.diff @@ -0,0 +1,30 @@ +# remove whirlpool usage. the algorithm is missing on at least 0.9.8g and +# 0.9.8i, even though there's an OBJ_whirlpool definition in 0.9.8i. +--- qca-ossl.cpp 2008/08/18 09:08:51 848615 ++++ qca-ossl.cpp 2008/09/24 19:22:26 864423 +@@ -6616,9 +6616,11 @@ + #ifdef SHA512_DIGEST_LENGTH + list += "sha512"; + #endif ++/* + #ifdef OBJ_whirlpool + list += "whirlpool"; + #endif ++*/ + return list; + } + +@@ -6863,10 +6865,12 @@ + else if ( type == "sha512" ) + return new opensslHashContext( EVP_sha512(), this, type); + #endif ++/* + #ifdef OBJ_whirlpool + else if ( type == "whirlpool" ) + return new opensslHashContext( EVP_whirlpool(), this, type); + #endif ++*/ + else if ( type == "pbkdf1(sha1)" ) + return new opensslPbkdf1Context( EVP_sha1(), this, type ); + else if ( type == "pbkdf1(md2)" ) + diff --git a/source/l/qca-ossl/slack-desc b/source/l/qca-ossl/slack-desc new file mode 100644 index 000000000..d43d139f4 --- /dev/null +++ b/source/l/qca-ossl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +qca-ossl: qca-ossl (OpenSSL plugin for QCA) +qca-ossl: +qca-ossl: This plugin provides features based on OpenSSL. It implements: +qca-ossl: * Hashing - SHA1, SHA0, RIPEMD160, MD2, MD4, MD5 +qca-ossl: * Hashing - SHA224, SHA256, SHA384 and SHA512 +qca-ossl: * Block Ciphers +qca-ossl: * Keyed Hash Message Authentication Code (HMAC), using SHA1, +qca-ossl: MD5, and RIPEMD160 +qca-ossl: * Public keys - RSA, DSA, Diffie-Hellman +qca-ossl: * PKCS#12 * SSL/TLS * CMS (for S/MIME) +qca-ossl: diff --git a/source/l/qca/qca.SlackBuild b/source/l/qca/qca.SlackBuild new file mode 100755 index 000000000..de767cf53 --- /dev/null +++ b/source/l/qca/qca.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman for qca-2.0.0 +# No additional license terms and no copyright claim + +PKGNAM=qca +VERSION=2.0.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1 +cd $PKGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} + +make $NUMJOBS || make || exit 1 +make install INSTALL_ROOT=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/man $PKG/usr/ +gzip -9 $PKG/usr/man/man?/*.1 + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + COPYING INSTALL README TODO \ + $PKG/usr/doc/$PKGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n /tmp/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/qca/qca.info b/source/l/qca/qca.info new file mode 100644 index 000000000..81e40d37d --- /dev/null +++ b/source/l/qca/qca.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://delta.affinix.com/qca/" +DOWNLOAD="http://delta.affinix.com/download/qca/2.0/qca-2.0.1.tar.bz2" diff --git a/source/l/qca/slack-desc b/source/l/qca/slack-desc new file mode 100644 index 000000000..91a68dd9f --- /dev/null +++ b/source/l/qca/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +qca: qca (Qt Cryptographic Architecture) +qca: +qca: QCA aims to provide a straightforward and cross-platform crypto API, +qca: using Qt datatypes and conventions. QCA separates the API from the +qca: implementation, using plugins known as Providers. The advantage of +qca: this model is to allow applications to avoid linking to or explicitly +qca: depending on any particular cryptographic library. This allows one +qca: to easily change or upgrade crypto implementations without needing +qca: to recompile the application. +qca: +qca: QCA was written by Justin Karneges. diff --git a/source/l/qimageblitz/qimageblitz.SlackBuild b/source/l/qimageblitz/qimageblitz.SlackBuild new file mode 100755 index 000000000..9576c3d7d --- /dev/null +++ b/source/l/qimageblitz/qimageblitz.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2007-2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=r948358 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-qimageblitz + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf qimageblitz-$VERSION +tar xvf $CWD/qimageblitz-$VERSION.tar.bz2 || exit 1 +cd qimageblitz-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt \ + PATH=$QTDIR/bin:$PATH \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/qimageblitz-$VERSION +cp -a AUTHORS COPYING* README* $PKG/usr/doc/qimageblitz-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/qimageblitz-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/qimageblitz/qimageblitz.info b/source/l/qimageblitz/qimageblitz.info new file mode 100644 index 000000000..49a399536 --- /dev/null +++ b/source/l/qimageblitz/qimageblitz.info @@ -0,0 +1,8 @@ +PRGNAM="qimageblitz" +VERSION="0.0.4" +HOMEPAGE="http://sourceforge.net/projects/qimageblitz" +DOWNLOAD="http://downloads.sourceforge.net/qimageblitz/qimageblitz-0.0.4.tar.bz2" +MD5SUM="cb87c7f1c0455e8984ee4830f1e749cf" +MAINTAINER="Robby Workman" +EMAIL="rw@rlworkman.net" +APPROVED= diff --git a/source/l/qimageblitz/slack-desc b/source/l/qimageblitz/slack-desc new file mode 100644 index 000000000..3179eef15 --- /dev/null +++ b/source/l/qimageblitz/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------| +qimageblitz: QImageBlitz (Graphical effect and filter library for KDE4) +qimageblitz: +qimageblitz: Blitz is a graphical effect and filter library for KDE4.0 that +qimageblitz: contains many improvements over KDE 3.x's kdefx library +qimageblitz: including bugfixes, memory and speed improvements, and MMX/SSE +qimageblitz: support. +qimageblitz: +qimageblitz: +qimageblitz: +qimageblitz: +qimageblitz: diff --git a/source/l/qt/README b/source/l/qt/README new file mode 100644 index 000000000..c5b4d85a9 --- /dev/null +++ b/source/l/qt/README @@ -0,0 +1,6 @@ +qt-rXXXXXX is actually qt-copy (kde's own version that might be +slightly incompatible with released version) renamed. + +It also contains less documentation -- you can grab the vanilla +Qt if you need it. + diff --git a/source/l/qt/doinst.sh b/source/l/qt/doinst.sh new file mode 100644 index 000000000..6f7c5df07 --- /dev/null +++ b/source/l/qt/doinst.sh @@ -0,0 +1,5 @@ + +if [ -x sbin/ldconfig ]; then + chroot . /sbin/ldconfig 2> /dev/null +fi + diff --git a/source/l/qt/profile.d/qt4.csh b/source/l/qt/profile.d/qt4.csh new file mode 100755 index 000000000..6e2c726cb --- /dev/null +++ b/source/l/qt/profile.d/qt4.csh @@ -0,0 +1,22 @@ +#!/bin/csh +# Environment path variables for the Qt package: +if ( ! $?QT4DIR ) then + # It's best to use the generic directory to avoid + # compiling in a version-containing path: + if ( -d /usr/lib/qt ) then + setenv QT4DIR /usr/lib/qt + else + # Find the newest Qt directory and set $QT4DIR to that: + foreach qtd ( /usr/lib/qt-* ) + if ( -d $qtd ) then + setenv QT4DIR $qtd + endif + end + endif +endif +set path = ( $path $QT4DIR/bin ) +if ( $?CPLUS_INCLUDE_PATH ) then + setenv CPLUS_INCLUDE_PATH $QT4DIR/include:$CPLUS_INCLUDE_PATH +else + setenv CPLUS_INCLUDE_PATH $QT4DIR/include +endif diff --git a/source/l/qt/profile.d/qt4.sh b/source/l/qt/profile.d/qt4.sh new file mode 100755 index 000000000..5b4b830aa --- /dev/null +++ b/source/l/qt/profile.d/qt4.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Environment variables for the Qt package. +# +# It's best to use the generic directory to avoid +# compiling in a version-containing path: +if [ -d /usr/lib/qt ]; then + QT4DIR=/usr/lib/qt +else + # Find the newest Qt directory and set $QT4DIR to that: + for qtd in /usr/lib/qt-* ; do + if [ -d $qtd ]; then + QT4DIR=$qtd + fi + done +fi +if [ ! "$CPLUS_INCLUDE_PATH" = "" ]; then + CPLUS_INCLUDE_PATH=$QT4DIR/include:$CPLUS_INCLUDE_PATH +else + CPLUS_INCLUDE_PATH=$QT4DIR/include +fi +PATH="$PATH:$QT4DIR/bin" +export QT4DIR +export CPLUS_INCLUDE_PATH diff --git a/source/l/qt/qt.SlackBuild b/source/l/qt/qt.SlackBuild new file mode 100755 index 000000000..3bd6fe560 --- /dev/null +++ b/source/l/qt/qt.SlackBuild @@ -0,0 +1,176 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Merged some ideas from Alex Sarmardzic's script for qt4 at SlackBuilds.org +# ^^ Modified by Robby Workman for QT4 & KDE4 + +# We're using qt-copy instead of a released qt version, as this svn release +# has at least one bugfix strongly recommended by the kde developers + +PKGNAM=qt +VERSION=$(ls qt-r*.tar.?z* | cut -d - -f 2 | cut -f 1 -d . | tail -1) +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j7} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +#rm -rf qt-x11-opensource-src-$VERSION +#tar xvf $CWD/qt-x11-opensource-src-$VERSION.tar.gz # For qt releases +#cd qt-x11-opensource-src-$VERSION || exit 1 + +rm -rf qt-$VERSION +if [ -r $CWD/qt-$VERSION.tar.gz ]; then + tar xvf $CWD/qt-$VERSION.tar.gz || exit 1 +elif [ -r $CWD/qt-$VERSION.tar.bz2 ]; then + tar xvf $CWD/qt-$VERSION.tar.bz2 || exit 1 +elif [ -r $CWD/qt-$VERSION.tar.xz ]; then + tar xvf $CWD/qt-$VERSION.tar.xz || exit 1 +elif [ -r $CWD/qt-$VERSION.tar.lzma ]; then + tar xvf $CWD/qt-$VERSION.tar.lzma || exit 1 +else + exit 1 +fi +cd qt-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# apply_patches looks for a ".svn" directory, which doesn't exist in the used snapshot. +# removing the check from apply_patches to not try to apply already applied patches +sed -i "s| test -d .svn &&||" apply_patches + +# This is only needed/wanted for qt-copy (the r###### version) that we're +# building right now. It might require manual intervention, so don't walk +# away during the build +./apply_patches + +if [ $ARCH = "i486" ]; then + zcat $CWD/qt.x86.cflags.diff.gz | patch -p1 || exit 1 +fi + +# Fix path to mysql header +zcat $CWD/qt.mysql.h.diff.gz | patch -p1 || exit 1 + +# The "o" selects the Open Source edition of Qt. +# The "yes" agrees to the GPL, so don't run this script if you don't agree. :-) +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +export OPENSOURCE_CXXFLAGS="$SLKCFLAGS" +echo "o +yes" | ./configure \ + -prefix /usr/lib${LIBDIRSUFFIX}/qt \ + -qt-gif \ + -fast \ + -system-libpng \ + -system-libjpeg \ + -system-zlib \ + -dbus \ + -webkit \ + -no-phonon \ + -nomake examples \ + -nomake demos \ + -no-separate-debug-info + +# Sometimes a failure happens when parallelizing make. Try again if make fails, +# but make a failure the second time around (single threaded) a fatal error: +make $NUMJOBS || make || exit 1 +make install INSTALL_ROOT=$PKG || exit 1 + +# The infamous qt -> qt-${VERSION} link that keeps the full path out of .la files: +( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf qt qt-${VERSION} ) + +# Link the shared libraries into /usr/lib: +( cd $PKG/usr/lib${LIBDIRSUFFIX} + for file in qt/lib/*.so* ; do + ln -sf $file . + done +) + +if [ $ARCH = "i486" ]; then + # Put this back as shipped: + zcat $CWD/qt.x86.cflags.diff.gz | patch -p1 -R +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add profile scripts +mkdir -p $PKG/etc/profile.d +sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $CWD/profile.d/qt4.sh \ + > $PKG/etc/profile.d/qt4.sh +sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $CWD/profile.d/qt4.csh \ + > $PKG/etc/profile.d/qt4.csh +chmod 0755 $PKG/etc/profile.d/* + +# Put a ton of links to more "normal" places. I'd just use a prefix of /usr, but it +# creates a ton of new (and ambiguously named) /usr directories... +mkdir -p $PKG/usr/bin +( cd $PKG/usr/lib${LIBDIRSUFFIX}/qt/bin + for file in * ; do + ( cd $PKG/usr/bin ; ln -sf /usr/lib${LIBDIRSUFFIX}/qt/bin/$file . ) + done +) + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig +( cd $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig + for file in *.pc ; do + ( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig ; ln -sf /usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/$file . ) + done +) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a *GPL_EXCEPTION* FAQ* INSTALL KNOWN* LICENSE* README* changes-* \ + $PKG/usr/doc/$PKGNAM-$VERSION +( cd $PKG/usr/doc/$PKGNAM-$VERSION + ln -sf /usr/lib${LIBDIRSUFFIX}/qt/doc/html . +) + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/qt/qt.mysql.h.diff b/source/l/qt/qt.mysql.h.diff new file mode 100644 index 000000000..7a41be591 --- /dev/null +++ b/source/l/qt/qt.mysql.h.diff @@ -0,0 +1,12 @@ +diff -Nur qt-x11-opensource-src-4.3.4.orig/src/sql/drivers/mysql/qsql_mysql.h qt-x11-opensource-src-4.3.4/src/sql/drivers/mysql/qsql_mysql.h +--- qt-x11-opensource-src-4.3.4.orig/src/sql/drivers/mysql/qsql_mysql.h 2008-04-02 20:52:11.739343004 -0500 ++++ qt-x11-opensource-src-4.3.4/src/sql/drivers/mysql/qsql_mysql.h 2008-04-02 20:52:05.970610574 -0500 +@@ -51,7 +51,7 @@ + #include + #endif + +-#include ++#include + + #ifdef QT_PLUGIN + #define Q_EXPORT_SQLDRIVER_MYSQL diff --git a/source/l/qt/qt.x86.cflags.diff b/source/l/qt/qt.x86.cflags.diff new file mode 100644 index 000000000..a9e65fbb8 --- /dev/null +++ b/source/l/qt/qt.x86.cflags.diff @@ -0,0 +1,11 @@ +--- qt.orig/mkspecs/common/g++.conf 2007-12-22 00:22:18.295453075 -0600 ++++ qt/mkspecs/common/g++.conf 2007-12-22 00:23:07.514257895 -0600 +@@ -7,7 +7,7 @@ + QMAKE_CFLAGS_DEPS += -M + QMAKE_CFLAGS_WARN_ON += -Wall -W + QMAKE_CFLAGS_WARN_OFF += -w +-QMAKE_CFLAGS_RELEASE += -O2 ++QMAKE_CFLAGS_RELEASE += -O2 -march=i486 -mtune=i686 + QMAKE_CFLAGS_DEBUG += -g + QMAKE_CFLAGS_SHLIB += -fPIC + QMAKE_CFLAGS_STATIC_LIB += -fPIC diff --git a/source/l/qt/slack-desc b/source/l/qt/slack-desc new file mode 100644 index 000000000..8229dd0a8 --- /dev/null +++ b/source/l/qt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +qt: Qt (a multi-platform C++ graphical user interface toolkit) +qt: +qt: Qt is a complete and well-developed object-oriented framework for +qt: developing graphical user interface (GUI) applications using C++. +qt: +qt: +qt: +qt: +qt: +qt: +qt: diff --git a/source/l/qtscriptgenerator/include-everything.patch b/source/l/qtscriptgenerator/include-everything.patch new file mode 100644 index 000000000..cef0e1fa1 --- /dev/null +++ b/source/l/qtscriptgenerator/include-everything.patch @@ -0,0 +1,55 @@ +--- b/generator/qtscript_masterinclude.h 2009-03-21 20:37:30.719523909 -0400 ++++ a/generator/qtscript_masterinclude.h 2009-03-21 21:00:25.108149339 -0400 +@@ -31,17 +31,41 @@ + + #include + +-#ifndef QT_NO_XMLPATTERNS +-# include +-#endif +- +-#ifndef QT_NO_WEBKIT +-# include +-#endif +- +-#ifndef QT_NO_PHONON +-# include +-#endif ++#include ++ ++#include ++ ++#include "phonon/abstractaudiooutput.h" ++#include "phonon/abstractmediastream.h" ++#include "phonon/abstractvideooutput.h" ++#include "phonon/addoninterface.h" ++#include "phonon/audiooutput.h" ++#include "phonon/audiooutputinterface.h" ++#include "phonon/backendcapabilities.h" ++#include "phonon/backendinterface.h" ++#include "phonon/effect.h" ++#include "phonon/effectinterface.h" ++#include "phonon/effectparameter.h" ++#include "phonon/effectwidget.h" ++#include "phonon/mediacontroller.h" ++#include "phonon/medianode.h" ++#include "phonon/mediaobject.h" ++#include "phonon/mediaobjectinterface.h" ++#include "phonon/mediasource.h" ++#include "phonon/objectdescription.h" ++#include "phonon/objectdescriptionmodel.h" ++#include "phonon/path.h" ++#include "phonon/phonondefs.h" ++#include "phonon/phononnamespace.h" ++#include "phonon/platformplugin.h" ++#include "phonon/seekslider.h" ++#include "phonon/streaminterface.h" ++#include "phonon/videoplayer.h" ++#include "phonon/videowidget.h" ++#include "phonon/videowidgetinterface.h" ++#include "phonon/volumefadereffect.h" ++#include "phonon/volumefaderinterface.h" ++#include "phonon/volumeslider.h" + + #include "../qtbindings/qtscript_core/qtscriptconcurrent.h" + diff --git a/source/l/qtscriptgenerator/qtscriptgenerator.SlackBuild b/source/l/qtscriptgenerator/qtscriptgenerator.SlackBuild new file mode 100755 index 000000000..ed66c9bb5 --- /dev/null +++ b/source/l/qtscriptgenerator/qtscriptgenerator.SlackBuild @@ -0,0 +1,116 @@ +#!/bin/sh + +# Slackware build script for qtscriptgenerator + +# Copyright 2009 Heinz Wiesinger +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PRGNAM=qtscriptgenerator +VERSION=${VERSION:-0.1.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +# Avoid a version number in .la files: +if [ -d /usr/lib${LIBDIRSUFFIX}/qt ]; then + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-src-$VERSION +tar xvf $CWD/$PRGNAM-src-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-src-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/include-everything.patch.gz | patch -p1 --verbose || exit 1 + +cd generator + qmake + make + ./generator --include-paths=/usr/lib${LIBDIRSUFFIX}/qt/include:/usr/include +cd - + +cd qtbindings + sed -i "s|CONFIG += debug_and_release|CONFIG += release|" \ + qtbindingsbase.pri + qmake + make qmake_all + sed -i "s|-I/usr/lib${LIBDIRSUFFIX}/qt/include/phonon|-I/usr/include/phonon|" \ + qtscript_phonon/Makefile + make all +cd - + +cd tools/qsexec/src + qmake + make +cd - + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/qt/{bin,plugins/script} + +install -m 755 tools/qsexec/qsexec $PKG/usr/lib${LIBDIRSUFFIX}/qt/bin/qsexec +install -m 755 generator/generator $PKG/usr/lib${LIBDIRSUFFIX}/qt/bin/generator +cp -a plugins/script/libqtscript* $PKG/usr/lib${LIBDIRSUFFIX}/qt/plugins/script/ + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a tools/qsexec/README.TXT README.qsexec +cp -a \ + LICENSE.GPL README* \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/qtscriptgenerator/qtscriptgenerator.info b/source/l/qtscriptgenerator/qtscriptgenerator.info new file mode 100644 index 000000000..684f5c6b5 --- /dev/null +++ b/source/l/qtscriptgenerator/qtscriptgenerator.info @@ -0,0 +1,8 @@ +PRGNAM="qtscriptgenerator" +VERSION="0.1.0" +HOMEPAGE="http://code.google.com/p/qtscriptgenerator/" +DOWNLOAD="http://qtscriptgenerator.googlecode.com/files/qtscriptgenerator-src-0.1.0.tar.gz" +MD5SUM="ca4046ad4bda36cd4e21649d4b98886d" +MAINTAINER="ppr:kut" +EMAIL="pprkut@liwjatan.at" +APPROVED="" diff --git a/source/l/qtscriptgenerator/slack-desc b/source/l/qtscriptgenerator/slack-desc new file mode 100644 index 000000000..f24e9f679 --- /dev/null +++ b/source/l/qtscriptgenerator/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------| +qtscriptgenerator: qtscriptgenerator (Qt API Bindings for QtScript) +qtscriptgenerator: +qtscriptgenerator: Qt Script Generator is a tool that generates Qt bindings +qtscriptgenerator: for Qt Script. With the generated bindings you get access +qtscriptgenerator: to substantial portions of the Qt API from within Qt +qtscriptgenerator: Script. +qtscriptgenerator: +qtscriptgenerator: +qtscriptgenerator: +qtscriptgenerator: Homepage: http://code.google.com/p/qtscriptgenerator/ +qtscriptgenerator: diff --git a/source/l/raptor/raptor.SlackBuild b/source/l/raptor/raptor.SlackBuild new file mode 100755 index 000000000..386ef4c45 --- /dev/null +++ b/source/l/raptor/raptor.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2007 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman +# No added terms or copyright claims + + +VERSION=1.4.18 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-raptor + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf raptor-$VERSION +tar xvf $CWD/raptor-$VERSION.tar.bz2 || exit 1 +cd raptor-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/raptor-$VERSION +cp -a \ + AUTHORS ChangeLog* COPYING* INSTALL* LICENSE* NEWS* \ + NOTICE README* RELEASE.html \ + $PKG/usr/doc/raptor-$VERSION +( cd $PKG/usr/doc/raptor-$VERSION + ln -s /usr/share/gtk-doc/html/raptor html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/raptor-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/raptor/raptor.info b/source/l/raptor/raptor.info new file mode 100644 index 000000000..0f2bae33d --- /dev/null +++ b/source/l/raptor/raptor.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://librdf.org/" +DOWNLOAD="http://download.librdf.org/source/raptor-1.4.18.tar.gz" diff --git a/source/l/raptor/slack-desc b/source/l/raptor/slack-desc new file mode 100644 index 000000000..e15154b74 --- /dev/null +++ b/source/l/raptor/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +raptor: raptor (RDF Parser & Serializer) +raptor: +raptor: Raptor is a free software/Open Source C library that provides a set of +raptor: parsers and serializers that generate Resource Description Framework +raptor: (RDF) triples by parsing syntaxes or serialize the triples into a +raptor: syntax. The supported parsing syntaxes are RDF/XML, N-Triples, TRiG, +raptor: Turtle, RSS tag soup including all versions of RSS, Atom 1.0 and 0.3, +raptor: GRDDL and microformats for HTML, XHTML and XML. +raptor: +raptor: Homepage: http://librdf.org/ +raptor: diff --git a/source/l/rasqal/rasqal.SlackBuild b/source/l/rasqal/rasqal.SlackBuild new file mode 100755 index 000000000..730d952d4 --- /dev/null +++ b/source/l/rasqal/rasqal.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2007 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman +# No added terms or copyright claims + + +VERSION=0.9.16 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rasqal + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf rasqal-$VERSION +tar xvf $CWD/rasqal-$VERSION.tar.bz2 || exit 1 +cd rasqal-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/rasqal-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL INSTALL.html LICENSE* NEWS* NOTICE README* \ + $PKG/usr/doc/rasqal-$VERSION +( cd $PKG/usr/doc/rasqal-$VERSION + ln -s /usr/share/gtk-doc/html/rasqal html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/rasqal-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/rasqal/rasqal.info b/source/l/rasqal/rasqal.info new file mode 100644 index 000000000..9605aee70 --- /dev/null +++ b/source/l/rasqal/rasqal.info @@ -0,0 +1,5 @@ +PRGNAM="rasqal" +VERSION="0.9.15" +HOMEPAGE="http://librdf.org/" +DOWNLOAD="http://download.librdf.org/source/rasqal-0.9.15.tar.gz" +MD5SUM="22aa82cd8953e2a870b6f183268a957f" diff --git a/source/l/rasqal/slack-desc b/source/l/rasqal/slack-desc new file mode 100644 index 000000000..b029384b4 --- /dev/null +++ b/source/l/rasqal/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +rasqal: rasqal (RDF parsing library) +rasqal: +rasqal: Rasqal is a library providing full support for querying Resource +rasqal: Description Framework (RDF) including parsing query syntaxes, +rasqal: constructing the queries, executing them and returning result formats. +rasqal: It currently handles the RDF Data Query Language (RDQL) and SPARQL +rasqal: Query language. +rasqal: +rasqal: Homepage: http://librdf.org/ +rasqal: +rasqal: diff --git a/source/l/readline/readline-5.2-patches/readline52-001 b/source/l/readline/readline-5.2-patches/readline52-001 new file mode 100644 index 000000000..0bec9a278 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-001 @@ -0,0 +1,30 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-001 + +Bug-Reported-by: ebb9@byu.net +Bug-Reference-ID: <45540862.9030900@byu.net> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html + http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html + +Bug-Description: + +In some cases, code that is intended to be used in the presence of multibyte +characters is called when no such characters are present, leading to incorrect +display position calculations and incorrect redisplay. + +Patch: + +*** ../readline-5.2/display.c Thu Sep 14 14:20:12 2006 +--- display.c Mon Nov 13 17:55:57 2006 +*************** +*** 2381,2384 **** +--- 2409,2414 ---- + if (end <= start) + return 0; ++ if (MB_CUR_MAX == 1 || rl_byte_oriented) ++ return (end - start); + + memset (&ps, 0, sizeof (mbstate_t)); diff --git a/source/l/readline/readline-5.2-patches/readline52-002 b/source/l/readline/readline-5.2-patches/readline52-002 new file mode 100644 index 000000000..b0d8c9223 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-002 @@ -0,0 +1,49 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-002 + +Bug-Reported-by: Magnus Svensson +Bug-Reference-ID: <45BDC44D.80609@mysql.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html + +Bug-Description: + +Readline neglects to reallocate the array it uses to keep track of wrapped +screen lines when increasing its size. This will eventually result in +segmentation faults when given sufficiently long input. + +Patch: + +*** ../readline-5.2-patched/display.c Thu Sep 14 14:20:12 2006 +--- display.c Fri Feb 2 20:23:17 2007 +*************** +*** 561,574 **** +--- 561,586 ---- + wrap_offset = prompt_invis_chars_first_line = 0; + } + ++ #if defined (HANDLE_MULTIBYTE) + #define CHECK_INV_LBREAKS() \ + do { \ + if (newlines >= (inv_lbsize - 2)) \ + { \ + inv_lbsize *= 2; \ + inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ + } \ + } while (0) ++ #else ++ #define CHECK_INV_LBREAKS() \ ++ do { \ ++ if (newlines >= (inv_lbsize - 2)) \ ++ { \ ++ inv_lbsize *= 2; \ ++ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ } \ ++ } while (0) ++ #endif /* HANDLE_MULTIBYTE */ + + #if defined (HANDLE_MULTIBYTE) + #define CHECK_LPOS() \ diff --git a/source/l/readline/readline-5.2-patches/readline52-003 b/source/l/readline/readline-5.2-patches/readline52-003 new file mode 100644 index 000000000..06916b3b2 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-003 @@ -0,0 +1,37 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-003 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1171795523.8021.18.camel@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html + +Bug-Description: + +When moving the cursor, bash sometimes misplaces the cursor when the prompt +contains two or more multibyte characters. The particular circumstance that +uncovered the problem was having the (multibyte) current directory name in +the prompt string. + +Patch: + +*** ../readline-5.2.2/display.c Fri Jan 19 13:34:50 2007 +--- display.c Sat Mar 10 17:25:44 2007 +*************** +*** 1745,1749 **** + { + dpos = _rl_col_width (data, 0, new); +! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1745,1752 ---- + { + dpos = _rl_col_width (data, 0, new); +! /* Use NEW when comparing against the last invisible character in the +! prompt string, since they're both buffer indices and DPOS is a +! desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; diff --git a/source/l/readline/readline-5.2-patches/readline52-004 b/source/l/readline/readline-5.2-patches/readline52-004 new file mode 100644 index 000000000..b165ad9f4 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-004 @@ -0,0 +1,70 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-004 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1173636022.7039.36.camel@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html + +Bug-Description: + +When restoring the original prompt after finishing an incremental search, +bash sometimes places the cursor incorrectly if the primary prompt contains +invisible characters. + +Patch: + +*** ../readline-5.2.3/display.c Fri Apr 20 13:30:16 2007 +--- display.c Fri Apr 20 15:17:01 2007 +*************** +*** 1599,1604 **** + if (temp > 0) + { + _rl_output_some_chars (nfd, temp); +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);; + } + } +--- 1599,1618 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! { +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp); +! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) +! { +! _rl_last_c_pos -= wrap_offset; +! cpos_adjusted = 1; +! } +! } +! else +! _rl_last_c_pos += temp; + } + } +*************** +*** 1608,1613 **** +--- 1622,1639 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; /* XXX */ ++ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ++ { ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ } + } + lendiff = (oe - old) - (ne - new); diff --git a/source/l/readline/readline-5.2-patches/readline52-005 b/source/l/readline/readline-5.2-patches/readline52-005 new file mode 100644 index 000000000..d192ac152 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-005 @@ -0,0 +1,328 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-005 + +Bug-Reported-by: Thomas Loeber +Bug-Reference-ID: <200703082223.08919.ifp@loeber1.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html + +Bug-Description: + +When rl_read_key returns -1, indicating that readline's controlling terminal +has been invalidated for some reason (e.g., receiving a SIGHUP), the error +status was not reported correctly to the caller. This could cause input +loops. + +Patch: + +*** ../readline-5.2/complete.c Fri Jul 28 11:35:49 2006 +--- complete.c Tue Mar 13 08:50:16 2007 +*************** +*** 429,433 **** + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +--- 440,444 ---- + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR || c < 0) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +*** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006 +--- input.c Wed May 2 16:07:59 2007 +*************** +*** 514,518 **** + int size; + { +! int mb_len = 0; + size_t mbchar_bytes_length; + wchar_t wc; +--- 522,526 ---- + int size; + { +! int mb_len, c; + size_t mbchar_bytes_length; + wchar_t wc; +*************** +*** 521,531 **** + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! mbchar[mb_len++] = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +--- 529,545 ---- + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! +! mb_len = 0; + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ break; ++ ++ mbchar[mb_len++] = c; ++ + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +*************** +*** 565,569 **** + c = first; + memset (mb, 0, mlen); +! for (i = 0; i < mlen; i++) + { + mb[i] = (char)c; +--- 579,583 ---- + c = first; + memset (mb, 0, mlen); +! for (i = 0; c >= 0 && i < mlen; i++) + { + mb[i] = (char)c; +*** ../readline-5.2/isearch.c Mon Dec 26 17:18:53 2005 +--- isearch.c Fri Mar 9 14:30:59 2007 +*************** +*** 328,333 **** + + f = (rl_command_func_t *)NULL; +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +--- 328,340 ---- + + f = (rl_command_func_t *)NULL; +! +! if (c < 0) +! { +! cxt->sflags |= SF_FAILED; +! cxt->history_pos = cxt->last_found_line; +! return -1; +! } +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +*** ../readline-5.2/misc.c Mon Dec 26 17:20:46 2005 +--- misc.c Fri Mar 9 14:44:11 2007 +*************** +*** 147,150 **** +--- 147,152 ---- + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); ++ if (key < 0) ++ return -1; + return (_rl_dispatch (key, _rl_keymap)); + } +*** ../readline-5.2/readline.c Wed Aug 16 15:00:36 2006 +--- readline.c Fri Mar 9 14:47:24 2007 +*************** +*** 646,649 **** +--- 669,677 ---- + { + nkey = _rl_subseq_getchar (cxt->okey); ++ if (nkey < 0) ++ { ++ _rl_abort_internal (); ++ return -1; ++ } + r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); + cxt->flags |= KSEQ_DISPATCHED; +*** ../readline-5.2/text.c Fri Jul 28 11:55:27 2006 +--- text.c Sun Mar 25 13:41:38 2007 +*************** +*** 858,861 **** +--- 864,870 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_SIGNALS) + if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) +*************** +*** 1521,1524 **** +--- 1530,1536 ---- + mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX); + ++ if (mb_len <= 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, mbchar, mb_len)); +*************** +*** 1537,1540 **** +--- 1549,1555 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, c)); +*** ../readline-5.2/vi_mode.c Sat Jul 29 16:42:28 2006 +--- vi_mode.c Fri Mar 9 15:02:11 2007 +*************** +*** 887,890 **** +--- 887,897 ---- + c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } ++ + *nextkey = c; + +*************** +*** 903,906 **** +--- 910,918 ---- + c = rl_read_key (); /* real command */ + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } + *nextkey = c; + } +*************** +*** 1225,1236 **** + _rl_callback_generic_arg *data; + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + + _rl_callback_func = 0; + _rl_want_redisplay = 1; +--- 1243,1262 ---- + _rl_callback_generic_arg *data; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) +! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + ++ if (c <= 0) ++ return -1; ++ ++ #if !defined (HANDLE_MULTIBYTE) ++ _rl_vi_last_search_char = c; ++ #endif ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1248,1251 **** +--- 1274,1278 ---- + int count, key; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) + static char *target; +*************** +*** 1294,1302 **** + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + } +--- 1321,1335 ---- + { + #if defined (HANDLE_MULTIBYTE) +! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); +! if (c <= 0) +! return -1; +! _rl_vi_last_search_mblen = c; + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ return -1; ++ _rl_vi_last_search_char = c; + #endif + } +*************** +*** 1468,1471 **** +--- 1501,1507 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +*************** +*** 1486,1489 **** +--- 1522,1528 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1517,1520 **** +--- 1556,1562 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + return (_rl_vi_change_char (count, c, mb)); + } +*************** +*** 1651,1655 **** + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1693,1697 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*************** +*** 1703,1707 **** + return 0; + } +! else if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1745,1749 ---- + return 0; + } +! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); diff --git a/source/l/readline/readline-5.2-patches/readline52-006 b/source/l/readline/readline-5.2-patches/readline52-006 new file mode 100644 index 000000000..d7391438d --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-006 @@ -0,0 +1,62 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-006 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1178376645.9063.25.camel@localhost> +Bug-Reference-URL: http://bugs.gentoo.org/177095 + +Bug-Description: + +The readline display code miscalculated the screen position when performing +a redisplay in which the new text occupies more screen space that the old, +but takes fewer bytes to do so (e.g., when replacing a shorter string +containing multibyte characters with a longer one containing only ASCII). + +Patch: + +*** ../readline-5.2/display.c Thu Apr 26 11:38:22 2007 +--- display.c Thu Jul 12 23:10:10 2007 +*************** +*** 1519,1527 **** + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +--- 1568,1596 ---- + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; ++ /* If col_lendiff is > 0, implying that the new string takes up more ++ screen real estate than the old, but lendiff is < 0, meaning that it ++ takes fewer bytes, we need to just output the characters starting ++ from the first difference. These will overwrite what is on the ++ display, so there's no reason to do a smart update. This can really ++ only happen in a multibyte environment. */ ++ if (lendiff < 0) ++ { ++ _rl_output_some_chars (nfd, temp); ++ _rl_last_c_pos += _rl_col_width (nfd, 0, temp); ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ return; ++ } + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and diff --git a/source/l/readline/readline-5.2-patches/readline52-007 b/source/l/readline/readline-5.2-patches/readline52-007 new file mode 100644 index 000000000..f75f53fc6 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-007 @@ -0,0 +1,65 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-007 + +Bug-Reported-by: Tom Bjorkholm +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html + + +Bug-Description: + +An off-by-one error in readline's input buffering caused readline to drop +each 511th character of buffered input (e.g., when pasting a large amount +of data into a terminal window). + +Patch: + +*** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006 +--- input.c Tue Jul 17 09:24:21 2007 +*************** +*** 134,139 **** + + *key = ibuffer[pop_index++]; +! + if (pop_index >= ibuffer_len) + pop_index = 0; + +--- 134,142 ---- + + *key = ibuffer[pop_index++]; +! #if 0 + if (pop_index >= ibuffer_len) ++ #else ++ if (pop_index > ibuffer_len) ++ #endif + pop_index = 0; + +*************** +*** 251,255 **** + { + k = (*rl_getc_function) (rl_instream); +! rl_stuff_char (k); + if (k == NEWLINE || k == RETURN) + break; +--- 254,259 ---- + { + k = (*rl_getc_function) (rl_instream); +! if (rl_stuff_char (k) == 0) +! break; /* some problem; no more room */ + if (k == NEWLINE || k == RETURN) + break; +*************** +*** 374,378 **** +--- 378,386 ---- + } + ibuffer[push_index++] = key; ++ #if 0 + if (push_index >= ibuffer_len) ++ #else ++ if (push_index > ibuffer_len) ++ #endif + push_index = 0; + diff --git a/source/l/readline/readline-5.2-patches/readline52-008 b/source/l/readline/readline-5.2-patches/readline52-008 new file mode 100644 index 000000000..1d7f3277f --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-008 @@ -0,0 +1,70 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-008 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: <4702ED8A.5000503@thequod.de> +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938 + +Bug-Description: + +When updating the display after displaying, for instance, a list of possible +completions, readline will place the cursor at the wrong position if the +prompt contains invisible characters and a newline. + +Patch: + +*** ../readline-5.2-patched/display.c Mon Aug 6 14:26:29 2007 +--- display.c Wed Oct 10 22:43:58 2007 +*************** +*** 1049,1053 **** + else + tx = nleft; +! if (_rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +--- 1049,1053 ---- + else + tx = nleft; +! if (tx >= 0 && _rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1205,1209 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1466,1469 **** +--- 1466,1471 ---- + } + ++ o_cpos = _rl_last_c_pos; ++ + /* When this function returns, _rl_last_c_pos is correct, and an absolute + cursor postion in multibyte mode, but a buffer index when not in a +*************** +*** 1475,1479 **** + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +--- 1477,1483 ---- + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && +! (_rl_last_c_pos > 0 || o_cpos > 0) && +! _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif diff --git a/source/l/readline/readline-5.2-patches/readline52-009 b/source/l/readline/readline-5.2-patches/readline52-009 new file mode 100644 index 000000000..af9e38174 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-009 @@ -0,0 +1,45 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-009 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under some circumstances, readline will incorrectly display a prompt string +containing invisible characters after the final newline. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-08-25 13:47:08.000000000 -0400 +--- display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 392,396 **** + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! (int *)NULL, + &prompt_physical_chars); + c = *t; *t = '\0'; +--- 420,424 ---- + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! &prompt_invis_chars_first_line, + &prompt_physical_chars); + c = *t; *t = '\0'; +*************** +*** 399,403 **** + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! &prompt_invis_chars_first_line, + (int *)NULL); + *t = c; +--- 427,431 ---- + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! (int *)NULL, + (int *)NULL); + *t = c; diff --git a/source/l/readline/readline-5.2-patches/readline52-010 b/source/l/readline/readline-5.2-patches/readline52-010 new file mode 100644 index 000000000..ee5c026f8 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-010 @@ -0,0 +1,47 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-010 + +Bug-Reported-by: Miroslav Lichvar +Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html + +Bug-Description: + +In certain cases when outputting characters at the end of the line, +e.g., when displaying the prompt string, readline positions the cursor +incorrectly if the prompt string contains invisible characters and the +text being drawn begins before the last invisible character in the line. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-08-25 13:47:08.000000000 -0400 +--- display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 1566,1574 **** + else + { +- /* We have horizontal scrolling and we are not inserting at +- the end. We have invisible characters in this line. This +- is a dumb update. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; + return; + } +--- 1619,1632 ---- + else + { + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } + return; + } diff --git a/source/l/readline/readline-5.2-patches/readline52-011 b/source/l/readline/readline-5.2-patches/readline52-011 new file mode 100644 index 000000000..a1197ede6 --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-011 @@ -0,0 +1,32 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-011 + +Bug-Reported-by: Uwe Doering +Bug-Reference-ID: <46F3DD72.2090801@geminix.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html + +Bug-Description: + +There is an off-by-one error in the code that buffers characters received +very quickly in succession, causing characters to be dropped. + +Patch: + +*** ../readline-5.2-patched/input.c 2007-08-25 13:47:10.000000000 -0400 +--- input.c 2007-10-12 22:55:25.000000000 -0400 +*************** +*** 155,159 **** + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len - 1; + ibuffer[pop_index] = key; + return (1); +--- 155,159 ---- + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len; + ibuffer[pop_index] = key; + return (1); diff --git a/source/l/readline/readline-5.2-patches/readline52-012 b/source/l/readline/readline-5.2-patches/readline52-012 new file mode 100644 index 000000000..7b370240c --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-012 @@ -0,0 +1,150 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-012 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This updates the options required to create shared libraries on several +systems, including Mac OS X 10.5 (darwin9.x), FreeBSD, NetBSD, OpenBSD, +AIX, and HP/UX. + +Patch: + +*** ../readline-5.2-patched/support/shobj-conf 2006-04-11 09:15:43.000000000 -0400 +--- support/shobj-conf 2007-12-06 23:46:41.000000000 -0500 +*************** +*** 11,15 **** + # chet@po.cwru.edu + +! # Copyright (C) 1996-2002 Free Software Foundation, Inc. + # + # This program is free software; you can redistribute it and/or modify +--- 11,15 ---- + # chet@po.cwru.edu + +! # Copyright (C) 1996-2007 Free Software Foundation, Inc. + # + # This program is free software; you can redistribute it and/or modify +*************** +*** 115,119 **** + ;; + +! freebsd2* | netbsd*) + SHOBJ_CFLAGS=-fpic + SHOBJ_LD=ld +--- 115,119 ---- + ;; + +! freebsd2*) + SHOBJ_CFLAGS=-fpic + SHOBJ_LD=ld +*************** +*** 126,130 **** + # FreeBSD-3.x ELF + freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) +! SHOBJ_CFLAGS=-fpic + SHOBJ_LD='${CC}' + +--- 126,130 ---- + # FreeBSD-3.x ELF + freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) +! SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' + +*************** +*** 143,147 **** + + # Darwin/MacOS X +! darwin8*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +--- 143,147 ---- + + # Darwin/MacOS X +! darwin[89]*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +*************** +*** 154,158 **** + SHLIB_LIBSUFF='dylib' + +! SHOBJ_LDFLAGS='-undefined dynamic_lookup' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + +--- 154,158 ---- + SHLIB_LIBSUFF='dylib' + +! SHOBJ_LDFLAGS='-dynamiclib -dynamic -undefined dynamic_lookup -arch_only `/usr/bin/arch`' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + +*************** +*** 172,176 **** + + case "${host_os}" in +! darwin[78]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +--- 172,176 ---- + + case "${host_os}" in +! darwin[789]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +*************** +*** 183,187 **** + ;; + +! openbsd*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' +--- 183,187 ---- + ;; + +! openbsd*|netbsd*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' +*************** +*** 248,252 **** + ;; + +! aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com + SHOBJ_CFLAGS=-fpic + SHOBJ_LD='ld' +--- 248,252 ---- + ;; + +! aix4.[2-9]*-*gcc*|aix[5-9].*-*gcc*) # lightly tested by jik@cisco.com + SHOBJ_CFLAGS=-fpic + SHOBJ_LD='ld' +*************** +*** 259,263 **** + ;; + +! aix4.[2-9]*) + SHOBJ_CFLAGS=-K + SHOBJ_LD='ld' +--- 259,263 ---- + ;; + +! aix4.[2-9]*|aix[5-9].*) + SHOBJ_CFLAGS=-K + SHOBJ_LD='ld' +*************** +*** 330,334 **** + # if you have problems linking here, moving the `-Wl,+h,$@' from + # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work +! SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s' + + SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)' +--- 330,334 ---- + # if you have problems linking here, moving the `-Wl,+h,$@' from + # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work +! SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s' + + SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)' diff --git a/source/l/readline/readline-5.2-patches/readline52-013 b/source/l/readline/readline-5.2-patches/readline52-013 new file mode 100644 index 000000000..82a18972a --- /dev/null +++ b/source/l/readline/readline-5.2-patches/readline52-013 @@ -0,0 +1,135 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-013 + +Bug-Reported-by: slinkp +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html + +Bug-Description: + +The presence of invisible characters in a prompt longer than the screenwidth +with invisible characters on the first and last prompt lines caused readline +to place the cursor in the wrong physical location. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-12-14 21:12:40.000000000 -0500 +--- display.c 2008-10-23 09:39:46.000000000 -0400 +*************** +*** 911,914 **** +--- 944,951 ---- + OFFSET (which has already been calculated above). */ + ++ #define INVIS_FIRST() (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset) ++ #define WRAP_OFFSET(line, offset) ((line == 0) \ ++ ? (offset ? INVIS_FIRST() : 0) \ ++ : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0)) + #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) + #define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l])) +*************** +*** 945,949 **** + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= wrap_offset; + + /* If this is the line with the prompt, we might need to +--- 982,992 ---- + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ +! else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth && +! (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && +! cpos_adjusted == 0 && +! _rl_last_c_pos != o_cpos && +! _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line)) +! _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line); + + /* If this is the line with the prompt, we might need to +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1264,1268 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, twidth, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1221,1225 **** + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +--- 1280,1284 ---- + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +*************** +*** 1587,1599 **** + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); +- #if 1 + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! #else +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff); +! #endif + } + } +--- 1648,1660 ---- + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! else +! twidth = temp - lendiff; +! _rl_last_c_pos += twidth; + } + } +*************** +*** 1789,1793 **** + int cpos, dpos; /* current and desired cursor positions */ + +! woff = W_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +--- 1850,1854 ---- + int cpos, dpos; /* current and desired cursor positions */ + +! woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +*************** +*** 1803,1807 **** + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1864,1872 ---- + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ +! (prompt_physical_chars > _rl_screenwidth && +! _rl_last_v_pos == prompt_last_screen_line && +! wrap_offset != woff && +! new > (prompt_last_invisible-_rl_screenwidth-wrap_offset))) + { + dpos -= woff; diff --git a/source/l/readline/readline.SlackBuild b/source/l/readline/readline.SlackBuild new file mode 100755 index 000000000..93eb360ab --- /dev/null +++ b/source/l/readline/readline.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=5.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-readline + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf readline-$VERSION +tar xvf $CWD/readline-$VERSION.tar.bz2 || exit 1 +cd readline-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +for file in $CWD/readline-*-patches/readline*-??? ; do + cat $file | patch -p0 --verbose || exit 1 +done + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --with-curses \ + --enable-multibyte \ + --build=$ARCH-slackware-linux-gnu + +make -j4 static shared || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/man/man3/* +gzip -9 $PKG/usr/info/* + +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/lib*.so.* + +mkdir -p $PKG/usr/doc/readline-$VERSION +cp -a \ + CHANGELOG CHANGES COPYING INSTALL MANIFEST README USAGE \ + $PKG/usr/doc/readline-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/readline-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/readline/slack-desc b/source/l/readline/slack-desc new file mode 100644 index 000000000..76d7fb96b --- /dev/null +++ b/source/l/readline/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +readline: readline (line input library with editing features) +readline: +readline: The GNU Readline library provides a set of functions for use by +readline: applications that allow users to edit command lines as they are typed +readline: in. Both Emacs and vi editing modes are available. The Readline +readline: library includes additional functions to maintain a list of previously +readline: entered command lines, to recall and perhaps edit those lines, and +readline: perform csh-like history expansion on previous commands. +readline: +readline: +readline: diff --git a/source/l/redland/redland.SlackBuild b/source/l/redland/redland.SlackBuild new file mode 100755 index 000000000..893d80efe --- /dev/null +++ b/source/l/redland/redland.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2007 Heinz Wiesinger +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman +# No added terms and no copyright claims + + +VERSION=1.0.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-redland + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf redland-$VERSION +tar xvf $CWD/redland-$VERSION.tar.bz2 || exit 1 +cd redland-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --disable-static \ + --with-threads \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/redland-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL INSTALL.html LICENSE* NEWS* NOTICE \ + README* RELEASE.html TODO* \ + $PKG/usr/doc/redland-$VERSION +( cd $PKG/usr/doc/redland-$VERSION + ln -s /usr/share/gtk-doc/html/redland html +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/redland-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/redland/redland.info b/source/l/redland/redland.info new file mode 100644 index 000000000..4ff4571c6 --- /dev/null +++ b/source/l/redland/redland.info @@ -0,0 +1,5 @@ +PRGNAM="redland" +VERSION="1.0.7" +HOMEPAGE="http://librdf.org/" +DOWNLOAD="http://download.librdf.org/source/redland-1.0.7.tar.gz" +MD5SUM="4c066d3dcf6c25f8fb8c9007e73f293c" diff --git a/source/l/redland/slack-desc b/source/l/redland/slack-desc new file mode 100644 index 000000000..db035907a --- /dev/null +++ b/source/l/redland/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler----------------------------------------------------| +redland: redland (RDF high-level interface library) +redland: +redland: Redland is a library that provides a high-level interface for the +redland: Resource Description Framework (RDF) allowing the RDF graph to be +redland: parsed from XML, stored, queried and manipulated. Redland +redland: implements each of the RDF concepts in its own class via an object +redland: based API, reflected into the language APIs, currently C#, Java, +redland: Perl, PHP, Python, Ruby and Tcl. +redland: +redland: Homepage: http://librdf.org/ +redland: diff --git a/source/l/sdl/SDL_mixer-1.2.8.usrlocal.diff b/source/l/sdl/SDL_mixer-1.2.8.usrlocal.diff new file mode 100644 index 000000000..3ae36ae72 --- /dev/null +++ b/source/l/sdl/SDL_mixer-1.2.8.usrlocal.diff @@ -0,0 +1,11 @@ +--- ./timidity/config.h.orig 2007-07-01 21:03:51.000000000 -0500 ++++ ./timidity/config.h 2008-03-13 14:36:20.000000000 -0500 +@@ -176,7 +176,7 @@ + #if defined(__WIN32__) || defined(__OS2__) + #define DEFAULT_PATH "\\TIMIDITY" + #else +-#define DEFAULT_PATH "/usr/local/lib/timidity" ++#define DEFAULT_PATH "/usr/lib/timidity" + #endif + + /* These affect general volume */ diff --git a/source/l/sdl/sdl.SlackBuild b/source/l/sdl/sdl.SlackBuild new file mode 100755 index 000000000..0c351f8df --- /dev/null +++ b/source/l/sdl/sdl.SlackBuild @@ -0,0 +1,221 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.13 +IMAGE=1.2.7 +MIXER=1.2.8 +NET=1.2.7 +TTF=2.0.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sdl + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf sdl-$VERSION +tar xjf $CWD/SDL-$VERSION.tar.bz2 || exit 1 +cd SDL-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# We must use --disable-x11-shared or programs linked with SDL will +# crash on machines that use the closed source nVidia drivers. + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --disable-arts \ + --disable-esd \ + --enable-shared=yes \ + --enable-static=no \ + --disable-x11-shared + +make $NUMJOBS || make || exit 1 + +# Spam /, for mixer/image later on: +make install +# install to package: +make install DESTDIR=$PKG || exit 1 +mkdir -p $PKG/usr/doc/SDL-$VERSION/html +cp -a docs/index.html $PKG/usr/doc/SDL-$VERSION +cp -a docs/html/*.html $PKG/usr/doc/SDL-$VERSION/html +cp -a \ + BUGS COPYING CREDITS INSTALL README* TODO WhatsNew \ + $PKG/usr/doc/SDL-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Add SDL_image: +cd $TMP +rm -rf SDL_image-$IMAGE +tar xjf $CWD/SDL_image-$IMAGE.tar.bz2 || exit 1 +cd SDL_image-$IMAGE +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# we don't want sdl to load the libs with dlopen(), gcc is smarter... +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-shared=yes \ + --enable-static=no \ + --enable-jpg-shared=no \ + --enable-png-shared=no \ + --enable-tif-shared=no + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +mkdir -p $PKG/usr/doc/SDL_image-$IMAGE +cp -a \ + CHANGES COPYING README \ + $PKG/usr/doc/SDL_image-$IMAGE + +# Add SDL_mixer: +cd $TMP +rm -rf SDL_mixer-$MIXER +tar xjf $CWD/SDL_mixer-$MIXER.tar.bz2 || exit 1 +cd SDL_mixer-$MIXER + +# Don't look for things in /usr/local, since this is an installed package: +zcat $CWD/SDL_mixer-1.2.8.usrlocal.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-shared=yes \ + --enable-static=no + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/SDL_mixer-$MIXER +cp -a \ + CHANGES COPYING README \ + $PKG/usr/doc/SDL_mixer-$MIXER + +# Add SDL_net: +cd $TMP +rm -rf SDL_net-$NET +tar xjf $CWD/SDL_net-$NET.tar.bz2 || exit 1 +cd SDL_net-$NET +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-shared=yes \ + --enable-static=no + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/SDL_net-$NET +cp -a \ + CHANGES COPYING README \ + $PKG/usr/doc/SDL_net-$NET + +# Add SDL_ttf: +cd $TMP +rm -rf SDL_ttf-$TTF +tar xjf $CWD/SDL_ttf-$TTF.tar.bz2 || exit 1 +cd SDL_ttf-$TTF + +#zcat $CWD/SDL_ttf-2.0.8-noftinternals.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --enable-shared=yes \ + --enable-static=no + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/SDL_ttf-$TTF +cp -a \ + CHANGES COPYING README \ + $PKG/usr/doc/SDL_ttf-$TTF + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +cd $PKG +/sbin/makepkg -l y -c n $TMP/sdl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/sdl/slack-desc b/source/l/sdl/slack-desc new file mode 100644 index 000000000..1d5d5c011 --- /dev/null +++ b/source/l/sdl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sdl: sdl (Simple DirectMedia Layer library) +sdl: +sdl: This is the Simple DirectMedia Layer, a generic API that provides low +sdl: level access to audio, keyboard, mouse, joystick, 3D hardware via +sdl: OpenGL, and 2D framebuffer across multiple platforms. +sdl: +sdl: SDL links against alsa-lib, arts, audiofile, esound, and the X11 +sdl: libraries. Make sure all of these are installed if you're planning to +sdl: use SDL (a full installation will cover all of the prerequisites). +sdl: +sdl: diff --git a/source/l/shared-mime-info/doinst.sh b/source/l/shared-mime-info/doinst.sh new file mode 100644 index 000000000..bce08d419 --- /dev/null +++ b/source/l/shared-mime-info/doinst.sh @@ -0,0 +1,4 @@ +if [ -x /usr/bin/update-mime-database ]; then + chroot . /usr/bin/update-mime-database /usr/share/mime 1>/dev/null 2>/dev/null +fi + diff --git a/source/l/shared-mime-info/shared-mime-info.SlackBuild b/source/l/shared-mime-info/shared-mime-info.SlackBuild new file mode 100755 index 000000000..999527358 --- /dev/null +++ b/source/l/shared-mime-info/shared-mime-info.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-0.60} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-shared-mime-info + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf shared-mime-info-$VERSION +tar xvf $CWD/shared-mime-info-$VERSION.tar.bz2 || exit 1 +cd shared-mime-info-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --docdir=/usr/doc/shared-mime-info-$VERSION \ + --disable-update-mimedb \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +mv $PKG/usr/share/pkgconfig $PKG/usr/lib${LIBDIRSUFFIX} + +mkdir -p $PKG/var/log/setup +cat << EOF > $PKG/var/log/setup/setup.07.update-mime-database +#BLURB="Run update-mime-database." +chroot . /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null +EOF +chmod 755 $PKG/var/log/setup/setup.07.update-mime-database + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/shared-mime-info-$VERSION +cp -a \ + COPYING* HACKING NEWS README* \ + $PKG/usr/doc/shared-mime-info-$VERSION +chmod 644 $PKG/usr/doc/shared-mime-info-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/shared-mime-info-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/shared-mime-info/slack-desc b/source/l/shared-mime-info/slack-desc new file mode 100644 index 000000000..f778b406b --- /dev/null +++ b/source/l/shared-mime-info/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +shared-mime-info: shared-mime-info (MIME database) +shared-mime-info: +shared-mime-info: This package contains: +shared-mime-info: +shared-mime-info: The freedesktop.org shared MIME database spec. +shared-mime-info: The merged GNOME and KDE databases, in the new format. +shared-mime-info: The update-mime-database command, used to install new MIME data. +shared-mime-info: +shared-mime-info: See http://www.freedesktop.org/standards/shared-mime-info.html for +shared-mime-info: more information. +shared-mime-info: diff --git a/source/l/sip/sip.SlackBuild b/source/l/sip/sip.SlackBuild new file mode 100755 index 000000000..0379743a2 --- /dev/null +++ b/source/l/sip/sip.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2008 Aleksandar Samardzic +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by Robby Workman + + +VERSION=${VERSION:-4.7.9} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sip + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +PYTHONVER=$(python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.) +PYTHONLIB=$( python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()' ) + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf sip-$VERSION +tar xvf $CWD/sip-$VERSION.tar.bz2 || exit 1 +cd sip-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +python configure.py \ + -b "/usr/bin" \ + -d "$PYTHONLIB" \ + -e "/usr/include/python$PYTHONVER" \ + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/sip-$VERSION +cp -a \ + LICENSE COPYING* NEWS README TODO doc/* \ + $PKG/usr/doc/sip-$VERSION +chown -R root:root $PKG/usr/doc + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/sip-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/sip/sip.info b/source/l/sip/sip.info new file mode 100644 index 000000000..5198037eb --- /dev/null +++ b/source/l/sip/sip.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://www.riverbankcomputing.co.uk/software/sip/" +DOWNLOAD="http://www.riverbankcomputing.co.uk/static/Downloads/sip4/sip-4.7.6.tar.gz" diff --git a/source/l/sip/slack-desc b/source/l/sip/slack-desc new file mode 100644 index 000000000..d2fae243e --- /dev/null +++ b/source/l/sip/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sip: SIP (a tool for generating Python bindings) +sip: +sip: SIP is a tool that makes it very easy to create Python bindings for +sip: C and C++ libraries. It was originally developed to create PyQt, +sip: the Python bindings for the Qt toolkit, but can be used to create +sip: bindings for any C or C++ library. +sip: +sip: Homepage: http://www.riverbankcomputing.co.uk/software/sip/ +sip: +sip: +sip: diff --git a/source/l/slang/slack-desc b/source/l/slang/slack-desc new file mode 100644 index 000000000..f821c96cc --- /dev/null +++ b/source/l/slang/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +slang: slang (S-Lang interpreter version 2) +slang: +slang: S-Lang is an interpreted language that was designed from the start +slang: to be easily embedded into a program to provide it with a powerful +slang: extension language. S-Lang is also a programmer's library that +slang: permits a programmer to develop sophisticated platform-independent +slang: software. In addition to providing the S-Lang extension language, +slang: the library provides facilities for screen management, keymaps, +slang: and low-level terminal I/O. +slang: +slang: diff --git a/source/l/slang/slang.SlackBuild b/source/l/slang/slang.SlackBuild new file mode 100755 index 000000000..17a4f14a9 --- /dev/null +++ b/source/l/slang/slang.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.1.4} +#DOCV=${DOCV:-2.0.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-slang +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf slang-$VERSION +tar xvf $CWD/slang-$VERSION.tar.bz2 || exit 1 +cd slang-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --includedir=/usr/include \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make -j4 elf || exit 1 +make install-elf DESTDIR=$PKG || exit 1 + +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libslang.so.$VERSION +# --disable-static doesn't always work, but this is guaranteed: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Prepare the documentation: +rm -r $PKG/usr/share/doc/slang +rm -r $PKG/usr/share/doc +rmdir $PKG/usr/share/doc + +mkdir -p $PKG/usr/doc/slang-$VERSION +cp -a \ + COPYING* INSTALL.pc INSTALL.unx INSTALL.vms NEWS README UPGRADE.txt \ + $PKG/usr/doc/slang-$VERSION +# Add some additional documentation: +#tar xjvf $CWD/slangdoc-$DOCV.tar.bz2 +#chown -R root:root doc +#cp -a doc/html $PKG/usr/doc/slang-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/slang-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/slang1/slack-desc b/source/l/slang1/slack-desc new file mode 100644 index 000000000..502cd5207 --- /dev/null +++ b/source/l/slang1/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +slang1: slang (S-Lang interpreter version 1) +slang1: +slang1: S-Lang is an interpreted language that was designed from the start +slang1: to be easily embedded into a program to provide it with a powerful +slang1: extension language. S-Lang is also a programmer's library that +slang1: permits a programmer to develop sophisticated platform-independent +slang1: software. In addition to providing the S-Lang extension language, +slang1: the library provides facilities for screen management, keymaps, +slang1: and low-level terminal I/O. +slang1: +slang1: diff --git a/source/l/slang1/slang1.SlackBuild b/source/l/slang1/slang1.SlackBuild new file mode 100755 index 000000000..d3b6cddad --- /dev/null +++ b/source/l/slang1/slang1.SlackBuild @@ -0,0 +1,95 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-1.4.9} +#DOCV=${DOCV:-2.0.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-slang1 +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf slang-$VERSION +tar xvf $CWD/slang-$VERSION.tar.bz2 || exit 1 +cd slang-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include/slang1 \ + --disable-static \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make -j4 elf || exit 1 +make install-elf DESTDIR=$PKG || exit 1 + +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libslang.so.$VERSION + +# We are letting S-Lang version 2 take over as the new default: +mv $PKG/usr/lib${LIBDIRSUFFIX}/libslang.so $PKG/usr/lib${LIBDIRSUFFIX}/libslang1.so + +# --disable-static doesn't always work, but this is guaranteed: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Prepare the documentation: +rm -r $PKG/usr/doc/slang +mkdir -p $PKG/usr/doc/slang-$VERSION +cp -a \ + COPYING COPYING* COPYRIGHT INSTALL.* NEWS README UPGRADE.txt \ + $PKG/usr/doc/slang-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/slang1-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/soprano/slack-desc b/source/l/soprano/slack-desc new file mode 100644 index 000000000..387be5795 --- /dev/null +++ b/source/l/soprano/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +soprano: soprano (C++/Qt4 framework for RDF data) +soprano: +soprano: Soprano (formally known as QRDF) is a library which provides +soprano: a nice Qt interface to RDF storage solutions. It has a modular +soprano: structure which allows to replace the actual RDF storage +soprano: implementation used. +soprano: +soprano: Homepage: http://soprano.sourceforge.net/ +soprano: +soprano: +soprano: diff --git a/source/l/soprano/soprano.SlackBuild b/source/l/soprano/soprano.SlackBuild new file mode 100755 index 000000000..dafbb7683 --- /dev/null +++ b/source/l/soprano/soprano.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2007-2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=2.2.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-soprano + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf soprano-$VERSION +tar xvf $CWD/soprano-$VERSION.tar.bz2 || exit 1 +cd soprano-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt \ + PATH=$QTDIR/bin:$PATH \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd .. + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/soprano-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL README TODO \ + $PKG/usr/doc/soprano-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/soprano-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/soprano/soprano.info b/source/l/soprano/soprano.info new file mode 100644 index 000000000..e66984fa5 --- /dev/null +++ b/source/l/soprano/soprano.info @@ -0,0 +1 @@ +HOMEPAGE="http://soprano.sourceforge.net/" diff --git a/source/l/startup-notification/slack-desc b/source/l/startup-notification/slack-desc new file mode 100644 index 000000000..ba4e2a5ff --- /dev/null +++ b/source/l/startup-notification/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +startup-notification: startup-notification ("busy" cursors support) +startup-notification: +startup-notification: Adds support for applications to use "busy" cursors while starting up. +startup-notification: +startup-notification: +startup-notification: +startup-notification: +startup-notification: +startup-notification: +startup-notification: +startup-notification: diff --git a/source/l/startup-notification/startup-notification.SlackBuild b/source/l/startup-notification/startup-notification.SlackBuild new file mode 100755 index 000000000..c4135c124 --- /dev/null +++ b/source/l/startup-notification/startup-notification.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-startup-notification +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf startup-notification-$VERSION +tar xvf $CWD/startup-notification-$VERSION.tar.bz2 || exit 1 +cd startup-notification-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/startup-notification-$VERSION +cp -a \ + AUTHORS BUGS COPYING NEWS README \ + doc/startup-notification.txt \ + $PKG/usr/doc/startup-notification-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/startup-notification-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/strigi/slack-desc b/source/l/strigi/slack-desc new file mode 100644 index 000000000..16dda7ee6 --- /dev/null +++ b/source/l/strigi/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +strigi: strigi (fast and light desktop search engine) +strigi: +strigi: Strigi is a fast and light desktop search engine. It can handle a +strigi: large range of file formats such as emails, office documents, media +strigi: files, and file archives. It can index files that are embedded in +strigi: other files. This means email attachments and files in zip files +strigi: are searchable as if they were normal files on your harddisk. +strigi: +strigi: Homepage: http://strigi.sourceforge.net/ +strigi: +strigi: diff --git a/source/l/strigi/strigi.SlackBuild b/source/l/strigi/strigi.SlackBuild new file mode 100755 index 000000000..2a9dcb4ae --- /dev/null +++ b/source/l/strigi/strigi.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2007-2008 Robby Workman, Northport, Alabama, USA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. + +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=0.6.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-strigi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf strigi-$VERSION +tar xvf $CWD/strigi-$VERSION.tar.bz2 || exit 1 +cd strigi-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + QTDIR=/usr/lib${LIBDIRSUFFIX}/qt \ + PATH=$QTDIR/bin:$PATH \ + cmake \ + -DENABLE_INOTIFY:BOOL=ON \ + -DENABLE_DBUS:BOOL=ON \ + -DENABLE_EXPAT:BOOL=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd - + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/strigi-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README TODO \ + $PKG/usr/doc/strigi-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/strigi-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/strigi/strigi.info b/source/l/strigi/strigi.info new file mode 100644 index 000000000..2301f49b5 --- /dev/null +++ b/source/l/strigi/strigi.info @@ -0,0 +1,4 @@ +PRGNAM="strigi" +VERSION="0.5.9" +HOMEPAGE="http://strigi.sourceforge.net/" +DOWNLOAD="http://downloads.sourceforge.net/strigi/strigi-0.5.9.tar.bz2" diff --git a/source/l/svgalib/slack-desc b/source/l/svgalib/slack-desc new file mode 100644 index 000000000..9205ef1b0 --- /dev/null +++ b/source/l/svgalib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +svgalib: svgalib (A low level graphics library for Linux) +svgalib: +svgalib: This is a low level graphics library for Linux, originally based on +svgalib: VGAlib 1.2 by Tommy Frandsen. Support for many more chipsets has +svgalib: been added. +svgalib: +svgalib: svgalib is currently maintained by Matan Ziv-Av. +svgalib: +svgalib: +svgalib: +svgalib: diff --git a/source/l/svgalib/svgalib-1.9.25-kernel-2.6.26.diff b/source/l/svgalib/svgalib-1.9.25-kernel-2.6.26.diff new file mode 100644 index 000000000..fcbab1066 --- /dev/null +++ b/source/l/svgalib/svgalib-1.9.25-kernel-2.6.26.diff @@ -0,0 +1,69 @@ +diff -up svgalib-1.9.25/src/lrmi.6.c~ svgalib-1.9.25/src/lrmi.6.c +--- svgalib-1.9.25/src/lrmi.6.c~ 2008-05-31 15:58:26.000000000 +0200 ++++ svgalib-1.9.25/src/lrmi.6.c 2008-05-31 15:58:26.000000000 +0200 +@@ -169,6 +169,13 @@ LRMI_free_real(void *m) + } + } + ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#define IF_MASK X86_EFLAGS_IF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define VIP_MASK X86_EFLAGS_VIP ++#endif + + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #define DEFAULT_STACK_SIZE 0x1000 +diff -up svgalib-1.9.25/src/lrmi.9.c~ svgalib-1.9.25/src/lrmi.9.c +--- svgalib-1.9.25/src/lrmi.9.c~ 2008-05-31 15:58:25.000000000 +0200 ++++ svgalib-1.9.25/src/lrmi.9.c 2008-05-31 15:58:25.000000000 +0200 +@@ -206,6 +206,13 @@ LRMI_free_real(void *m) + + + #if defined(__linux__) ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#define IF_MASK X86_EFLAGS_IF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define VIP_MASK X86_EFLAGS_VIP ++#endif + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL) +diff -up svgalib-1.9.25/lrmi-0.6m/lrmi.c~ svgalib-1.9.25/lrmi-0.6m/lrmi.c +--- svgalib-1.9.25/lrmi-0.6m/lrmi.c~ 2008-05-31 16:10:14.000000000 +0200 ++++ svgalib-1.9.25/lrmi-0.6m/lrmi.c 2008-05-31 16:10:14.000000000 +0200 +@@ -170,6 +170,14 @@ LRMI_free_real(void *m) + } + + ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#define IF_MASK X86_EFLAGS_IF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define VIP_MASK X86_EFLAGS_VIP ++#endif ++ + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #define DEFAULT_STACK_SIZE 0x1000 + #define RETURN_TO_32_INT 255 +diff -up svgalib-1.9.25/lrmi-0.9/lrmi.c~ svgalib-1.9.25/lrmi-0.9/lrmi.c +--- svgalib-1.9.25/lrmi-0.9/lrmi.c~ 2008-05-31 16:10:28.000000000 +0200 ++++ svgalib-1.9.25/lrmi-0.9/lrmi.c 2008-05-31 16:10:28.000000000 +0200 +@@ -203,6 +203,13 @@ LRMI_free_real(void *m) + + + #if defined(__linux__) ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#define IF_MASK X86_EFLAGS_IF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define VIP_MASK X86_EFLAGS_VIP ++#endif + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL) diff --git a/source/l/svgalib/svgalib.SlackBuild b/source/l/svgalib/svgalib.SlackBuild new file mode 100755 index 000000000..f01dc8d78 --- /dev/null +++ b/source/l/svgalib/svgalib.SlackBuild @@ -0,0 +1,111 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=svgalib +VERSION=${VERSION:-1.9.25} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-svgalib +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; +find . -name "*.h" -exec chmod 644 {} \; + +zcat $CWD/svgalib.prefix.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/svgalib-1.9.25-kernel-2.6.26.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/svgalib.nohelper.diff.gz | patch -p1 --verbose || exit 1 + +# Build and install - spamming your partition first...: +make install NO_HELPER=y || exit 1 +make install \ + TOPDIR=$PKG \ + prefix=$PKG/usr \ + mandir=$PKG/usr/man \ + sharedlibdir=$PKG/usr/lib${LIBDIRSUFFIX} \ + MANFORMAT=compressed \ + NO_HELPER=y \ + || exit 1 + +# Build demos: +make demoprogs || exit 1 + +# Install demos: +mkdir -p $PKG/usr/share/svgalib-demos +( cd demos + # this will produce a harmless error... hey, some of these demos might come back, right? + cp fun testgl speedtest mousetest vgatest scrolltest testlinear keytest testaccel accel forktest eventtest spin bg_test printftest joytest mjoytest bankspeed lineart linearspeed addmodetest svidtune linearfork cursor vgatweak buildcsr rwpage \ + linuxlogo.bitmap \ + $PKG/usr/share/svgalib-demos + chmod 755 $PKG/usr/share/svgalib-demos/* +) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + 0-README LICENSE README svgalib.lsm \ + $PKG/usr/doc/${PKGNAM}-$VERSION +( cd doc + cp -a \ + 0-INSTALL CHANGES DESIGN Driver-programming-HOWTO README.joystick \ + README.keymap README.multi-monitor README.patching README.vesa TODO dual-head-howto \ + $PKG/usr/doc/${PKGNAM}-$VERSION +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/svgalib/svgalib.nohelper.diff b/source/l/svgalib/svgalib.nohelper.diff new file mode 100644 index 000000000..c2df36a3c --- /dev/null +++ b/source/l/svgalib/svgalib.nohelper.diff @@ -0,0 +1,11 @@ +--- ./src/config/libvga.config.orig 2005-08-03 08:07:32.000000000 -0500 ++++ ./src/config/libvga.config 2009-03-09 18:06:52.000000000 -0500 +@@ -11,7 +11,7 @@ + + Helper /dev/svga + +-# NoHelper # Disable use of the helper-kernelmodule (/dev/svga) and ++NoHelper # Disable use of the helper-kernelmodule (/dev/svga) and + # fallback to old ioperm/iopl and /dev/mem use. + + # If you have two vga cards with the same pci vendor id, svgalib will try diff --git a/source/l/svgalib/svgalib.prefix.diff b/source/l/svgalib/svgalib.prefix.diff new file mode 100644 index 000000000..286159861 --- /dev/null +++ b/source/l/svgalib/svgalib.prefix.diff @@ -0,0 +1,11 @@ +--- ./Makefile.cfg.orig 2007-02-04 15:20:18.000000000 -0600 ++++ ./Makefile.cfg 2007-02-04 15:21:18.000000000 -0600 +@@ -44,7 +44,7 @@ + # Common prefix for installation directories. + # NOTE: This directory must exist when you start the install. + TOPDIR= +-prefix = $(TOPDIR)/usr/local ++prefix = $(TOPDIR)/usr + exec_prefix = $(prefix) + + # Directory where the shared stubs and static library will be installed. diff --git a/source/l/t1lib/slack-desc b/source/l/t1lib/slack-desc new file mode 100644 index 000000000..293af0cb9 --- /dev/null +++ b/source/l/t1lib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +t1lib: t1lib (Type 1 font rasterizer library) +t1lib: +t1lib: t1lib is a library distributed under the GNU General Public Library +t1lib: License for generating character and string glyphs from Adobe Type 1 +t1lib: fonts under UNIX. t1lib uses most of the code of the X11 rasterizer +t1lib: donated by IBM to the X11 project. +t1lib: +t1lib: +t1lib: +t1lib: +t1lib: diff --git a/source/l/t1lib/t1lib.SlackBuild b/source/l/t1lib/t1lib.SlackBuild new file mode 100755 index 000000000..d192e1cdd --- /dev/null +++ b/source/l/t1lib/t1lib.SlackBuild @@ -0,0 +1,108 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=5.1.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-t1lib +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf t1lib-$VERSION +tar xvf $CWD/t1lib-$VERSION.tar.?z* || exit 1 +cd t1lib-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-static=no \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install prefix=$PKG/usr libdir=$PKG/usr/lib${LIBDIRSUFFIX} || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/*.so + +mkdir -p $PKG/usr/doc/t1lib-$VERSION +mv $PKG/usr/share/t1lib/doc/t1lib_doc.ps $PKG/usr/doc/t1lib-$VERSION +gzip -9 $PKG/usr/doc/t1lib-$VERSION/t1lib_doc.ps +rm -r $PKG/usr/share/t1lib/doc +cp -a \ + Changes LGPL LICENSE README* \ + $PKG/usr/doc/t1lib-$VERSION + +cp -a Fonts $PKG/usr/share/t1lib +/bin/ls $PKG/usr/share/t1lib/Fonts/afm/*.afm /usr/share/fonts/Type1/*.afm | sort | uniq | wc -l | sed -e 's/ //g' > $PKG/usr/share/t1lib/FontDataBase +( cd $PKG/usr/share/t1lib/Fonts/afm ; /bin/ls *.afm ; cd /usr/share/fonts/Type1 ; /bin/ls *.afm ) | sort | uniq >> $PKG/usr/share/t1lib/FontDataBase +cat << EOF > $PKG/usr/share/t1lib/t1lib.config +This is a configuration file for t1lib + +FONTDATABASE=/usr/share/t1lib/FontDataBase +ENCODING=/usr/share/t1lib/Fonts/enc +AFM=/usr/share/t1lib/Fonts/afm:/usr/share/fonts/Type1 +TYPE1=/usr/share/t1lib/Fonts/type1:/usr/share/fonts/Type1 +EOF + +mkdir -p $PKG/etc/profile.d +cat << EOF > $PKG/etc/profile.d/t1lib.sh +T1LIB_CONFIG=/usr/share/t1lib/t1lib.config +export T1LIB_CONFIG +EOF +cat << EOF > $PKG/etc/profile.d/t1lib.csh +setenv T1LIB_CONFIG /usr/share/t1lib/t1lib.config +EOF +chmod 755 $PKG/etc/profile.d/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/t1lib-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/taglib-extras/slack-desc b/source/l/taglib-extras/slack-desc new file mode 100644 index 000000000..3af63b48d --- /dev/null +++ b/source/l/taglib-extras/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +taglib-extras: taglib-extras (taglib support for other formats) +taglib-extras: +taglib-extras: Taglib file type plugins which were split off from Amarok +taglib-extras: to allow others to use and help maintain them. +taglib-extras: Taglib-extras delivers support for reading and editing +taglib-extras: meta-data of audio formats not supported by taglib, including: +taglib-extras: asf, mp4v2, rmff, wav. +taglib-extras: +taglib-extras: +taglib-extras: The taglib-extras are part of kdesupport: http://www.kde.org +taglib-extras: diff --git a/source/l/taglib-extras/taglib-extras.SlackBuild b/source/l/taglib-extras/taglib-extras.SlackBuild new file mode 100755 index 000000000..307409f3f --- /dev/null +++ b/source/l/taglib-extras/taglib-extras.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-0.1.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/tmp/package-taglib-extras + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf taglib-extras +tar xvf $CWD/taglib-extras-$VERSION.tar.?z* || exit 1 +cd taglib-extras || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p build +cd build + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DMAN_INSTALL_DIR=/usr/man \ + -DSYSCONF_INSTALL_DIR=/etc/kde \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + .. + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG +cd - + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/taglib-extras-$VERSION +cp -a \ + AUTHORS COPYING* \ + $PKG/usr/doc/taglib-extras-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/taglib-extras-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/taglib/slack-desc b/source/l/taglib/slack-desc new file mode 100644 index 000000000..8331c5d0a --- /dev/null +++ b/source/l/taglib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +taglib: taglib (audio meta-data library) +taglib: +taglib: TagLib is a library for reading and editing the meta-data of several +taglib: popular audio formats. Currently it supports both ID3v1 and ID3v2 +taglib: for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments +taglib: in FLAC files. +taglib: +taglib: +taglib: +taglib: +taglib: diff --git a/source/l/taglib/taglib.SlackBuild b/source/l/taglib/taglib.SlackBuild new file mode 100755 index 000000000..9aa57b146 --- /dev/null +++ b/source/l/taglib/taglib.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/tmp/package-taglib + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf taglib-$VERSION +tar xvf $CWD/taglib-$VERSION.tar.bz2 || exit 1 +cd taglib-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/taglib-$VERSION +cp -a \ + AUTHORS COPYING INSTALL README TODO \ + $PKG/usr/doc/taglib-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/taglib-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/tango-icon-theme-extras/slack-desc b/source/l/tango-icon-theme-extras/slack-desc new file mode 100644 index 000000000..a49bc5d40 --- /dev/null +++ b/source/l/tango-icon-theme-extras/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tango-icon-theme-extras: tango-icon-theme-extras (Extras for the Tango icon theme) +tango-icon-theme-extras: +tango-icon-theme-extras: This is an extension to the Tango Icon Theme. Currently it includes +tango-icon-theme-extras: Tango icons for iPod Digital Audio Player (DAP) devices and the Dell +tango-icon-theme-extras: Pocket DJ DAP. +tango-icon-theme-extras: +tango-icon-theme-extras: Visit the Tango project at: http://tango-project.org/ +tango-icon-theme-extras: +tango-icon-theme-extras: +tango-icon-theme-extras: +tango-icon-theme-extras: diff --git a/source/l/tango-icon-theme-extras/tango-icon-theme-extras.SlackBuild b/source/l/tango-icon-theme-extras/tango-icon-theme-extras.SlackBuild new file mode 100755 index 000000000..1f742e16a --- /dev/null +++ b/source/l/tango-icon-theme-extras/tango-icon-theme-extras.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2006 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by the SlackBuilds.org project + + +PRGNAM=tango-icon-theme-extras +VERSION=0.1.0 +ARCH=${ARCH:-noarch} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --program-prefix="" \ + --program-suffix="" \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install-strip DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/tango-icon-theme/slack-desc b/source/l/tango-icon-theme/slack-desc new file mode 100644 index 000000000..43ddaf433 --- /dev/null +++ b/source/l/tango-icon-theme/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tango-icon-theme: Tango icon theme (Another standard icon theme) +tango-icon-theme: +tango-icon-theme: The Tango Desktop Project has designed a basic set of desktop icons +tango-icon-theme: that follow the style guidelines. The set has been created as a +tango-icon-theme: proof of concept for the style, but works rather well as a replacement +tango-icon-theme: for the base theme under GNOME and KDE. +tango-icon-theme: +tango-icon-theme: Tango's home page is: http://tango.freedesktop.org +tango-icon-theme: +tango-icon-theme: diff --git a/source/l/tango-icon-theme/tango-icon-theme.SlackBuild b/source/l/tango-icon-theme/tango-icon-theme.SlackBuild new file mode 100755 index 000000000..a0ddd295a --- /dev/null +++ b/source/l/tango-icon-theme/tango-icon-theme.SlackBuild @@ -0,0 +1,64 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.8.90 +ARCH=noarch +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tango-icon-theme + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tango-icon-theme-$VERSION +tar xvf $CWD/tango-icon-theme-$VERSION.tar.bz2 || exit 1 +cd tango-icon-theme-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var/lib + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/tango-icon-theme-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README \ + $PKG/usr/doc/tango-icon-theme-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/tango-icon-theme-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/urwid/LICENSE b/source/l/urwid/LICENSE new file mode 100644 index 000000000..5ab7695ab --- /dev/null +++ b/source/l/urwid/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/source/l/urwid/slack-desc b/source/l/urwid/slack-desc new file mode 100644 index 000000000..5b1c5ac88 --- /dev/null +++ b/source/l/urwid/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +urwid: urwid (python console UI module) +urwid: +urwid: Urwid is a console user interface library for Python. It is released +urwid: under the GNU Lesser General Public License and includes many +urwid: (too many to list) features useful for text console application +urwid: developers. +urwid: +urwid: Urwid was written by Ian Ward. +urwid: +urwid: More info at: http://excess.org/urwid +urwid: diff --git a/source/l/urwid/urwid.SlackBuild b/source/l/urwid/urwid.SlackBuild new file mode 100755 index 000000000..976a39836 --- /dev/null +++ b/source/l/urwid/urwid.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Slackware build script for urwid + +# Copyright 2009 Andrew Psaltis +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Modified by Robby Workman + +PRGNAM=urwid +VERSION=0.9.8.4 +ARCH=${ARCH:-x86_64} # This should match the python package +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG $TMP/$PRGNAM-$VERSION +mkdir -p $TMP $PKG +cd $TMP || exit 1 +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION || exit 1 +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +python setup.py install --root=$PKG || exit 1 + +# Strip this package's sole library, wherever it might be +# This package probably isn't really a "noarch" due to this, but oh well +find $PKG -name "str_util.so" -exec strip --strip-unneeded $PKG 2> /dev/null {} \; + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/examples +cp -a tutorial.html reference.html $PKG/usr/doc/$PRGNAM-$VERSION +# Include the code examples. They're pretty small, so they can't hurt, I guess. +cp -a bigtext.py browse.py calc.py dialog.py edit.py fib.py graph.py tour.py \ + $PKG/usr/doc/$PRGNAM-$VERSION/examples +# urwid's license (LGPLv2) is not included with the source archive. +zcat $CWD/LICENSE.gz > $PKG/usr/doc/$PRGNAM-$VERSION/LICENSE +find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/urwid/urwid.url b/source/l/urwid/urwid.url new file mode 100644 index 000000000..e932707ce --- /dev/null +++ b/source/l/urwid/urwid.url @@ -0,0 +1 @@ +http://excess.org/urwid diff --git a/source/l/vte/slack-desc b/source/l/vte/slack-desc new file mode 100644 index 000000000..cc19a3e09 --- /dev/null +++ b/source/l/vte/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vte: vte (terminal emulator widget) +vte: +vte: VTE is a terminal emulator widget for use with GTK+. This package +vte: contains the VTE library and development files and a sample +vte: implementation (vte). +vte: +vte: VTE is used by XFce. +vte: +vte: +vte: +vte: diff --git a/source/l/vte/vte.SlackBuild b/source/l/vte/vte.SlackBuild new file mode 100755 index 000000000..db58daa35 --- /dev/null +++ b/source/l/vte/vte.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=vte +VERSION=${VERSION:-0.20.5} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING HACKING INSTALL MAINTAINERS NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION +ln -s /usr/share/gtk-doc/html/vte $PKG/usr/doc/vte-$VERSION/html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/wavpack/slack-desc b/source/l/wavpack/slack-desc new file mode 100644 index 000000000..c53431229 --- /dev/null +++ b/source/l/wavpack/slack-desc @@ -0,0 +1,21 @@ + +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wavpack: wavpack (A lossless WAV file compressor) +wavpack: +wavpack: Wavpack is a hybrid lossless wavefile compressor. Wavfile is +wavpack: Copyright (c) 1998 - 2006 Conifer Software. All Rights Reserved. +wavpack: +wavpack: Wavpack is distributed under the BSD Software License. +wavpack: +wavpack: Visit the wavpack project online: http://www.wavpack.com +wavpack: +wavpack: +wavpack: + diff --git a/source/l/wavpack/wavpack.SlackBuild b/source/l/wavpack/wavpack.SlackBuild new file mode 100755 index 000000000..e5f25eb22 --- /dev/null +++ b/source/l/wavpack/wavpack.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2007 Erik Hanson erik@slackbuilds.org +# All rights reserved. +# Updated by Andrew Brouwers, abrouwers@gmail.com +# Modified by the SlackBuilds.org project +# Modified to build wavpack. +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=wavpack +VERSION=4.41.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +DOCS="AUTHORS ChangeLog NEWS README" + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-static=no \ + --build=$ARCH-slackware-linux \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install-strip DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/wv2/slack-desc b/source/l/wv2/slack-desc new file mode 100644 index 000000000..e5861a4b6 --- /dev/null +++ b/source/l/wv2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wv2: wv2 (MS Word document import library) +wv2: +wv2: wv2 is a portable MS Word .doc import filter that is used by KWord. +wv2: Currently, it supports MS Word 6, MS Word 95, MS Word 97, MS Word +wv2: 2000, and MS Word 2002 (XP) documents. Older versions like Word 2, 3, +wv2: 4, and 5 aren't supported yet, but might be in the future. +wv2: +wv2: wv2's authors are Shaheed Haque, Werner Trobin, and David Faure. +wv2: +wv2: +wv2: diff --git a/source/l/wv2/wv2.SlackBuild b/source/l/wv2/wv2.SlackBuild new file mode 100755 index 000000000..3b46bde38 --- /dev/null +++ b/source/l/wv2/wv2.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.2.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-wv2 +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf wv2-$VERSION +tar xvf $CWD/wv2-$VERSION.tar.bz2 || exit 1 +cd wv2-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-debug \ + --disable-static \ + --program-prefix="" \ + --program-suffix="" \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/wv2-$VERSION +cp -a \ + AUTHORS COPYING.LIB README RELEASE THANKS TODO \ + $PKG/usr/doc/wv2-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/wv2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/zlib/slack-desc b/source/l/zlib/slack-desc new file mode 100644 index 000000000..41f7b6455 --- /dev/null +++ b/source/l/zlib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +zlib: zlib (compression library) +zlib: +zlib: zlib is a general purpose thread safe data compression library. The +zlib: data format used by the zlib library is described by RFCs 1950 to +zlib: 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt (zlib format) +zlib: rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +zlib: +zlib: +zlib: +zlib: +zlib: diff --git a/source/l/zlib/zlib.SlackBuild b/source/l/zlib/zlib.SlackBuild new file mode 100755 index 000000000..65a9134e4 --- /dev/null +++ b/source/l/zlib/zlib.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-zlib + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf zlib-$VERSION +tar xjvf $CWD/zlib-$VERSION.tar.bz2 +cd zlib-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr +make clean +make || exit 1 +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --shared +make || exit 1 +mkdir -p $PKG/usr/include +cp -a zlib.h zconf.h $PKG/usr/include +chmod 644 $PKG/usr/include/* +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cp -a libz.a libz.so* $PKG/usr/lib${LIBDIRSUFFIX} +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/* +chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/libz.a +mkdir -p $PKG/usr/man/man3 +cat zlib.3 | gzip -9c > $PKG/usr/man/man3/zlib.3.gz +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/usr/doc/zlib-$VERSION +cp -a \ + ChangeLog FAQ INDEX README \ + $PKG/usr/doc/zlib-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/zlib-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/alpine/alpine.SlackBuild b/source/n/alpine/alpine.SlackBuild new file mode 100755 index 000000000..6ed64d10d --- /dev/null +++ b/source/n/alpine/alpine.SlackBuild @@ -0,0 +1,195 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=alpine +VERSION=${VERSION:-2.00} +ARCH=${ARCH:-x86_64} +ALPINEBUILD=${ALPINEBUILD:-2} +IMAPDBUILD=${IMAPDBUILD:-2} +PINEPGP=${PINEPGP:-0.18.0} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $PKG/etc + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/alpine.manpage.diff.gz | patch -p1 --verbose || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --with-ssl-dir=/usr \ + --with-ssl-certs-dir=/etc/ssl/certs \ + --with-c-client-target=slx \ + --with-system-pinerc=/etc/pine.conf \ + --with-system-fixed-pinerc=/etc/pine.conf.fixed \ + --disable-debug \ + --with-debug-level=0 \ + --without-tcl \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# This seems to ignore sysconfdir and libdir, so it's pretty useless to try them. +# Brute-force it. +# Eric says: no! Use configure parameters. +#zcat $CWD/alpine.config.h.diff.gz | patch -p1 --verbose || exit 1 + +# Correct paths and programs in tech-notes.txt: +zcat $CWD/alpine.tech-notes.txt.diff.gz | patch -p1 --verbose || exit 1 + +# Build and install: +# Since we build non-compliant to RFC3501 we have to answer 'y' half-way: +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix +echo y | make $NUMJOBS EXTRACFLAGS="-fPIC" SSLTYPE=unix || exit 1 + +make install SSLTYPE=unix DESTDIR=$PKG || exit 1 + +# Add default config file: +./alpine/alpine -conf > $PKG/etc/pine.conf.new + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + LICENSE NOTICE README* VERSION \ + doc/tech-notes.txt doc/brochure.txt doc/mailcap.unx doc/mime.types \ + $PKG/usr/doc/${PKGNAM}-$VERSION +gzip -9 $PKG/usr/doc/${PKGNAM}-$VERSION/tech-notes.txt + +# Add pinepgp support: +cd $TMP +rm -rf pinepgp-$PINEPGP +tar xvf $CWD/pinepgp-$PINEPGP.tar.gz || exit 1 +cd pinepgp-$PINEPGP +zcat $CWD/pinepgp-${PINEPGP}-makefile-sed-fix.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/pinepgp.pinegpgp.in.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +./configure --prefix=/usr +make || exit 1 +make install DESTDIR=$PKG || exit 1 +mkdir -p $PKG/usr/doc/pinepgp-$PINEPGP +cp -a COPYING* README $PKG/usr/doc/pinepgp-$PINEPGP +chmod 644 $PKG/usr/doc/pinepgp-$PINEPGP/* + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/install +cat $CWD/doinst.sh.alpine > $PKG/install/doinst.sh +cat $CWD/slack-desc.alpine > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$ALPINEBUILD.txz + +# As is customary, now build a package for the included IMAP and +# POP3 daemons: +PKG2=/tmp/package-imapd +cd $TMP +rm -rf $PKG2 +mkdir -p $PKG2 +cd ${PKGNAM}-$VERSION/imap +mkdir -p $PKG2/usr/doc/imapd-$VERSION +cp -a \ + CONTENTS LICENSE.txt NOTICE SUPPORT \ + imap/docs/md5.txt \ + $PKG2/usr/doc/imapd-$VERSION +cat << EOF > $PKG2/usr/doc/imapd-$VERSION/additional-imap-documentation +Additional documentation for imapd may be found in the alpine +sources in the /imap/docs directory. +EOF +mkdir -p $PKG2/usr/man/man8 +for file in src/imapd/imapd.8 src/ipopd/ipopd.8 ; do + cat $file | gzip -9c > $PKG2/usr/man/man8/`basename $file`.gz +done +mkdir -p $PKG2/usr/sbin +cat imapd/imapd > $PKG2/usr/sbin/imapd +cat ipopd/ipop3d > $PKG2/usr/sbin/ipop3d +chmod 755 $PKG2/usr/sbin/imapd $PKG2/usr/sbin/ipop3d +# Strip binaries: +find $PKG2 | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +# Add slack-desc file: +mkdir -p $PKG2/install +cat $CWD/slack-desc.imapd > $PKG2/install/slack-desc +cd $PKG2 +/sbin/makepkg -l y -c n $TMP/imapd-$VERSION-$ARCH-$IMAPDBUILD.txz + diff --git a/source/n/alpine/alpine.config.h.diff b/source/n/alpine/alpine.config.h.diff new file mode 100644 index 000000000..03064373e --- /dev/null +++ b/source/n/alpine/alpine.config.h.diff @@ -0,0 +1,15 @@ +--- ./include/config.h.orig 2008-08-06 20:59:51.000000000 -0500 ++++ ./include/config.h 2008-08-06 21:00:37.000000000 -0500 +@@ -557,10 +557,10 @@ + #define STDC_HEADERS 1 + + /* System pinerc */ +-#define SYSTEM_PINERC "/usr/lib/pine.conf" ++#define SYSTEM_PINERC "/etc/pine.conf" + + /* System fixed pinerc */ +-#define SYSTEM_PINERC_FIXED "/usr/lib/pine.conf.fixed" ++#define SYSTEM_PINERC_FIXED "/etc/pine.conf.fixed" + + /* Pine-Centric Host Specifier */ + #define SYSTYPE "LNX" diff --git a/source/n/alpine/alpine.manpage.diff b/source/n/alpine/alpine.manpage.diff new file mode 100644 index 000000000..c35b95e18 --- /dev/null +++ b/source/n/alpine/alpine.manpage.diff @@ -0,0 +1,17 @@ +--- ./doc/alpine.1.orig 2008-03-14 18:53:39.000000000 -0500 ++++ ./doc/alpine.1 2008-08-06 20:00:13.000000000 -0500 +@@ -305,11 +305,11 @@ + .br + /etc/mime.types System-wide file ext. to MIME type mapping + .br +-/usr/local/lib/pine.info Local pointer to system administrator. ++/etc/pine.info Local pointer to system administrator. + .br +-/usr/local/lib/pine.conf System-wide configuration file. ++/etc/pine.conf System-wide configuration file. + .br +-/usr/local/lib/pine.conf.fixed Non-overridable configuration file. ++/etc/pine.conf.fixed Non-overridable configuration file. + .br + /tmp/.\\usr\\spool\\mail\\xxxx Per-folder mailbox lock files. + .br diff --git a/source/n/alpine/alpine.tech-notes.txt.diff b/source/n/alpine/alpine.tech-notes.txt.diff new file mode 100644 index 000000000..3af68e921 --- /dev/null +++ b/source/n/alpine/alpine.tech-notes.txt.diff @@ -0,0 +1,136 @@ +--- ./doc/tech-notes.txt.orig 2008-03-17 17:26:52.000000000 -0500 ++++ ./doc/tech-notes.txt 2008-08-06 21:16:06.000000000 -0500 +@@ -271,14 +271,14 @@ + The selection of which MTA to use depends on the settings of smtp-server, + sendmail-path, and compile-time options. The first MTA specified in the + following list is used: +- 1. _sendmail-path_ in /usr/local/lib/pine.conf.fixed +- 2. _smtp-server_ in /usr/local/pine.conf.fixed ++ 1. _sendmail-path_ in /etc/pine.conf.fixed ++ 2. _smtp-server_ in /etc/pine.conf.fixed + 3. _sendmail-path_ specified on the command line. + 4. _smtp-server_ specified on the command line. + 5. _sendmail-path_ in the user's .pinerc file. + 6. _smtp-server_ in the user's .pinerc file. +- 7. _sendmail-path_ in /usr/local/lib/pine.conf +- 8. _smtp-server_ in /usr/local/pine.conf ++ 7. _sendmail-path_ in /etc/pine.conf ++ 8. _smtp-server_ in /etc/pine.conf + 9. DF_SENDMAIL_PATH defined at compile time. + 10. SENDMAIL and SENDMAILFLAGS defined at compile time. + +@@ -600,8 +600,8 @@ + into _Alpine_ so there are no _required_ auxiliary files. Instead of copying + the binaries manually, you may use make install to install them. + +- There are three optional auxiliary files: /usr/local/lib/pine.info, +- /usr/local/lib/pine.conf, and /usr/local/lib/pine.conf.fixed. The file ++ There are three optional auxiliary files: /usr/pine.info, ++ /etc/pine.conf, and /etc/pine.conf.fixed. The file + pine.info contains text on how to get further help on the local system. It + is part of the help text for the main menu and should probably refer to the + local help desk or the system administrator. If this file doesn't exist a +@@ -674,11 +674,11 @@ + This section lists the various files which _Alpine_ uses which are not email + folders. All of these are the default names of files, they may vary based on + _Alpine_'s configuration. +- /usr/local/lib/pine.conf ++ /etc/pine.conf + Pine's global configuration file. +- /usr/local/lib/pine.conf.fixed ++ /etc/pine.conf.fixed + Non-overridable global configuration file. +- /usr/local/lib/pine.info ++ /etc/pine.info + Local pointer to system administrator. + ~/.pinerc + Personal configuration file for each user. +@@ -872,10 +872,10 @@ + Configuration: Prints a sample system configuration file to the + screen or standard output. To generate an initial system + configuration file, execute +- alpine -conf > /usr/local/lib/pine.conf ++ alpine -conf > /etc/pine.conf + To generate a system configuration file using settings from an old + system configuration file, execute +- alpine -P old-pine.conf -conf > /usr/local/lib/pine.conf ++ alpine -P old-pine.conf -conf > /etc/pine.conf + A system configuration file is not required. + -convert_sigs _-p pinerc_ + Convert signatures contained in signature files into literal +@@ -973,7 +973,7 @@ + Pinerc may be either a local file or a remote configuration folder. + -P _pinerc_ + Uses the named file as the system wide configuration file instead of +- _/usr/local/lib/pine.conf_ on UNIX, or nothing on _PC-Alpine_. Pinerc ++ _/etc/pine.conf_ on UNIX, or nothing on _PC-Alpine_. Pinerc + may be either a local file or a remote configuration folder. + -passfile _passfile_ + This tells _Alpine_ what file should be used as the password file. +@@ -1180,8 +1180,8 @@ + configuration. In most cases, the compiled-in preferences will suit users + and administrators just fine. When running _Alpine_ on a UNIX system, the + default built-in configuration can be changed by setting variables in the +- system configuration files, /usr/local/lib/pine.conf or +- /usr/local/lib/pine.conf.fixed. (Actually, these files can be changed using ++ system configuration files, /etc/pine.conf or ++ /etc/pine.conf.fixed. (Actually, these files can be changed using + the configure arguments --with-system-pinerc=VALUE or + --with-system-fixed-pinerc=VALUE.) The location of the pine.conf file can be + changed with the -P command line argument. Both _Alpine_ and _PC-Alpine_ +@@ -3538,7 +3538,7 @@ + For Unix _Alpine_ the program _ispell_ works well as an alternate + spell checker. If your Unix system has _ispell_ it is probably + reasonable to make it the default speller by configuring it as the +- default in the system configuration file, /usr/local/lib/pine.conf. ++ default in the system configuration file, /etc/pine.conf. + If this option is not set, then the system's _spell_ command is used. + The spell command does not work the same as the alternate speller. It + produces a list of misspelled words on its standard output, instead, +@@ -3932,12 +3932,12 @@ + must exist as a full path or a path relative to your home directory). + Now for an example: + +- url-viewers=_TEST("test -n '${DISPLAY}'")_ /usr/local/bin/netscape, +- /usr/local/bin/lynx, C:\BIN\NETSCAPE.BAT ++ url-viewers=_TEST("test -n '${DISPLAY}'")_ /usr/bin/firefox, ++ /usr/bin/lynx, C:\BIN\NETSCAPE.BAT + This example shows that for the first browser in the list to be used + the environment variable DISPLAY must be defined. If it is, then the +- file /usr/local/bin/netscape must exist. If either condition is not +- met, then the file /usr/local/bin/lynx must exist. If it doesn't, ++ file /usr/bin/firefox must exist. If either condition is not ++ met, then the file /usr/bin/lynx must exist. If it doesn't, + then the final path and file must exist. Note that the last entry is + a DOS/Windows path. This is one way to support _Alpine_ running on + more than one architecture with the same configuration file. +@@ -10273,9 +10273,9 @@ + 4. a command line argument + 5. the system-wide _fixed_ configuration file (Unix _Alpine_ only) + +- The fixed configuration file is normally /usr/local/lib/pine.conf.fixed. ++ The fixed configuration file is normally /etc/pine.conf.fixed. + +- The system-wide configuration file is normally /usr/local/lib/pine.conf for ++ The system-wide configuration file is normally /etc/pine.conf for + Unix _Alpine_ and is normally not set for _PC-Alpine_. For _PC-Alpine_, if + the environment variable _$PINECONF_ is set, that is used for the + system-wide configuration. This location can be set or changed on the +@@ -10524,7 +10524,7 @@ + * A program that implements the SMTP or ESMTP protocol via stdio. + * An entry in /etc/services for the alternate service. + * An entry in /etc/inetd.conf for the alternate service. +- * An entry in /usr/local/lib/pine.conf, /usr/local/lib/pine.conf.fixed or ++ * An entry in /etc/pine.conf, /etc/pine.conf.fixed or + ~/.pinerc. + _________________________________________________________________ + +@@ -11366,7 +11366,7 @@ + + The second selection is the standard UNIX print command. The default is + _lpr_, but it can be changed on a system basis to anything so desired in +- /usr/local/lib/pine.conf. ++ /etc/pine.conf. + + The third selection is the user's personal choice for a UNIX print command. + The text to be printed is piped into the command. _Enscript_ or _lpr_ with diff --git a/source/n/alpine/doinst.sh.alpine b/source/n/alpine/doinst.sh.alpine new file mode 100644 index 000000000..3a3694854 --- /dev/null +++ b/source/n/alpine/doinst.sh.alpine @@ -0,0 +1,18 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/pine.conf.new + +# Prevent sticker shock +if [ ! -e /usr/bin/pine ]; then + ( cd usr/bin ; ln -sf alpine pine ) +fi diff --git a/source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff b/source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff new file mode 100644 index 000000000..fe9f8d55a --- /dev/null +++ b/source/n/alpine/pinepgp-0.18.0-makefile-sed-fix.diff @@ -0,0 +1,87 @@ +diff -Naur pinepgp-0.18.0-orig/Makefile.in pinepgp-0.18.0/Makefile.in +--- pinepgp-0.18.0-orig/Makefile.in 2002-05-03 15:30:07.000000000 +0200 ++++ pinepgp-0.18.0/Makefile.in 2006-11-16 00:30:27.000000000 +0100 +@@ -44,52 +44,52 @@ + all: $(SOURCES) $(BUILD_FILTERS) + + $(SOURCES): $(SOURCES:%=%.in) +- $(CAT) $(@).in | $(SED) -e 's%\@SED\@%$(SED)%;\ +- s%\@CAT\@%$(CAT)%;\ +- s%\@RM\@%$(RM)%;\ +- s%\@MKTEMP\@%$(MKTEMP)%;\ +- s%\@BASH\@%$(BASH)%;\ +- s%\@bindir\@%$(bindir)%;\ +- s%\@tmpdir\@%$(tmpdir)%' > $(@) ++ $(CAT) $(@).in | $(SED) -e 's%\@SED\@%$(SED)%'\ ++ -e 's%\@CAT\@%$(CAT)%'\ ++ -e 's%\@RM\@%$(RM)%'\ ++ -e 's%\@MKTEMP\@%$(MKTEMP)%'\ ++ -e 's%\@BASH\@%$(BASH)%'\ ++ -e 's%\@bindir\@%$(bindir)%'\ ++ -e 's%\@tmpdir\@%$(tmpdir)%' > $(@) + chmod 755 $(@) + + pinegpg: pinegpgp +- $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename=GnuPG%;\ +- s%^ces=.*%ces="$(GPG) -at -s"%;\ +- s%^cee=.*%cee="$(GPG) -at -e"%;\ +- s%^cese=.*%cese="$(GPG) -at -se"%;\ +- s%^cec=.*%cec="\$(GPG)"%;\ +- s%^cefp=.*%cefp=gpg%' > $(@).c ++ $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename=GnuPG%'\ ++ -e 's%^ces=.*%ces="$(GPG) -at -s"%'\ ++ -e 's%^cee=.*%cee="$(GPG) -at -e"%'\ ++ -e 's%^cese=.*%cese="$(GPG) -at -se"%'\ ++ -e 's%^cec=.*%cec="\$(GPG)"%'\ ++ -e 's%^cefp=.*%cefp=gpg%' > $(@).c + $(CPP) -DGPG $(BUILD_FLAGS) $(@).c | $(GREP) -v "^# .* .*" > $(@) + chmod 755 $(@) + + pinepgp26x: pinegpgp +- $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 2.6.x"%;\ +- s%^ces=.*%ces="\$(PGP) -fat -s"%;\ +- s%^cee=.*%cee="\$(PGP) -fat -e"%;\ +- s%^cese=.*%cese="\$(PGP) -fat -se"%;\ +- s%^cec=.*%cec="\$(PGP) -f"%;\ +- s%^cefp=.*%cefp=pgp26x%' > $(@).c ++ $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 2.6.x"%'\ ++ -e 's%^ces=.*%ces="\$(PGP) -fat -s"%'\ ++ -e 's%^cee=.*%cee="\$(PGP) -fat -e"%'\ ++ -e 's%^cese=.*%cese="\$(PGP) -fat -se"%'\ ++ -e 's%^cec=.*%cec="\$(PGP) -f"%'\ ++ -e 's%^cefp=.*%cefp=pgp26x%' > $(@).c + $(CPP) -DPGP26X $(BUILD_FLAGS) $(@).c | $(GREP) -v "^# .* .*" > $(@) + chmod 755 $(@) + + pinepgp5x: pinegpgp +- $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 5.x"%;\ +- s%^ces=.*%ces="$(PGP5S) -fat"%;\ +- s%^cee=.*%cee="$(PGP5E) -fat"%;\ +- s%^cese=.*%cese="$(PGP5E) -fat -s"%;\ +- s%^cec=.*%cec="$(PGP5V) -f"%;\ +- s%^cefp=.*%cefp=pgp26x%' > $(@).c ++ $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 5.x"%'\ ++ -e 's%^ces=.*%ces="$(PGP5S) -fat"%'\ ++ -e 's%^cee=.*%cee="$(PGP5E) -fat"%'\ ++ -e 's%^cese=.*%cese="$(PGP5E) -fat -s"%'\ ++ -e 's%^cec=.*%cec="$(PGP5V) -f"%'\ ++ -e 's%^cefp=.*%cefp=pgp26x%' > $(@).c + $(CPP) -DPGP5X $(BUILD_FLAGS) $(@).c | $(GREP) -v "^# .* .*" > $(@) + chmod 755 $(@) + + pinepgp65x: pinegpgp +- $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 6.5.x"%;\ +- s%^ces=.*%ces="\$(PGP6) -fat -s -u $$USER"%;\ +- s%^cee=.*%cee="\$(PGP6) -fat -e -u $$USER"%;\ +- s%^cese=.*%cese="\$(PGP6) -fat -se -u $$USER"%;\ +- s%^cec=.*%cec="\$(PGP6) -f -u $$USER"%;\ +- s%^cefp=.*%cefp=pgp65x%' > $(@).c ++ $(CAT) pinegpgp | $(SED) -e 's%^cename=.*%cename="PGP 6.5.x"%'\ ++ -e 's%^ces=.*%ces="\$(PGP6) -fat -s -u $$USER"%'\ ++ -e 's%^cee=.*%cee="\$(PGP6) -fat -e -u $$USER"%'\ ++ -e 's%^cese=.*%cese="\$(PGP6) -fat -se -u $$USER"%'\ ++ -e 's%^cec=.*%cec="\$(PGP6) -f -u $$USER"%'\ ++ -e 's%^cefp=.*%cefp=pgp65x%' > $(@).c + $(CPP) -DPGP65X $(BUILD_FLAGS) $(@).c | $(GREP) -v "^# .* .*" > $(@) + chmod 755 $(@) + diff --git a/source/n/alpine/pinepgp.pinegpgp.in.diff b/source/n/alpine/pinepgp.pinegpgp.in.diff new file mode 100644 index 000000000..4c76113db --- /dev/null +++ b/source/n/alpine/pinepgp.pinegpgp.in.diff @@ -0,0 +1,7 @@ +--- ./pinegpgp.in.orig 2002-05-03 08:30:07.000000000 -0500 ++++ ./pinegpgp.in 2008-08-06 21:47:36.000000000 -0500 +@@ -1,4 +1,3 @@ +-#!@BASH@ + + tmpdir=@tmpdir@ + diff --git a/source/n/alpine/slack-desc.alpine b/source/n/alpine/slack-desc.alpine new file mode 100644 index 000000000..79f962da1 --- /dev/null +++ b/source/n/alpine/slack-desc.alpine @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +alpine: alpine (Alternatively Licensed Program for Internet News and Email) +alpine: +alpine: Alpine is a fast, easy to use email client that is suitable for both +alpine: the inexperienced email user as well as for the most demanding of +alpine: power users. Alpine is based on the Pine(R) Message System, which +alpine: was also developed at the University of Washington. Alpine can be +alpine: learned by exploration and the use of context-sensitive help. The +alpine: user experience is highly customizable through the use of the Alpine +alpine: Setup command. +alpine: +alpine: The Alpine site may be found here: http://www.washington.edu/alpine diff --git a/source/n/alpine/slack-desc.imapd b/source/n/alpine/slack-desc.imapd new file mode 100644 index 000000000..d52249a24 --- /dev/null +++ b/source/n/alpine/slack-desc.imapd @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +imapd: imapd (IMAP4rev1 from alpine) +imapd: +imapd: /usr/sbin/ipop3d and /usr/sbin/imapd are servers supporting the POP3 +imapd: and IMAP remote mail access protocols. They allow users to download +imapd: mail from your Linux system for remote viewing. +imapd: +imapd: +imapd: +imapd: +imapd: +imapd: diff --git a/source/n/autofs/autofs-3.1.7.diff b/source/n/autofs/autofs-3.1.7.diff new file mode 100644 index 000000000..7849eae95 --- /dev/null +++ b/source/n/autofs/autofs-3.1.7.diff @@ -0,0 +1,11 @@ +--- ./modules/lookup_program.c.orig Sat Mar 24 14:16:45 2001 ++++ ./modules/lookup_program.c Sat Mar 24 14:18:18 2001 +@@ -16,7 +16,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include diff --git a/source/n/autofs/autofs-3.1.7.tar.bz2.sign b/source/n/autofs/autofs-3.1.7.tar.bz2.sign new file mode 100644 index 000000000..8f80176b7 --- /dev/null +++ b/source/n/autofs/autofs-3.1.7.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.0.4 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQA6A7VZyGugalF9Dw4RAkieAJ96c+Si+lGnoSf0OJCanmwE7dilBwCgieKQ +SshwUTt1sSA9Iu3meWUm2yk= +=1kDE +-----END PGP SIGNATURE----- diff --git a/source/n/autofs/autofs.SlackBuild b/source/n/autofs/autofs.SlackBuild new file mode 100755 index 000000000..8886f3f1e --- /dev/null +++ b/source/n/autofs/autofs.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.1.7 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-autofs + +rm -rf $PKG +mkdir -p $TMP $PKG/usr/{sbin,man/man{5,8}} + +cd $TMP +tar xvf $CWD/autofs-$VERSION.tar.bz2 || exit 1 +cd autofs-$VERSION || exit 1 +zcat $CWD/autofs-$VERSION.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Allow x86_64 arch: +zcat $CWD/autofs.x86_64.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Compensate for modern compiler requirements: +zcat $CWD/autofs.gcc.fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +sed -i -e "s/OPEN_MAX/NR_OPEN/" $(grep -lr OPEN_MAX *) + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make || exit 1 + +make install INSTALLROOT=$PKG || exit 1 + +strip $PKG/usr/sbin/* +gzip -9 $PKG/usr/man/man*/* + +mkdir -p $PKG/usr/doc/autofs-$VERSION +cp -a \ + COPYING COPYRIGHT NEWS README README.options TODO \ + multiserver_mount.patch samples \ + $PKG/usr/doc/autofs-$VERSION +( cd $PKG/usr/doc/autofs-$VERSION + find . \( -name Makefile -o -name *.in \) -exec rm -f {} \; + find . -type d -exec chmod 755 {} \; + find . -type f -exec chmod 644 {} \; +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/autofs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/autofs/autofs.gcc.fix.diff b/source/n/autofs/autofs.gcc.fix.diff new file mode 100644 index 000000000..8b30019f7 --- /dev/null +++ b/source/n/autofs/autofs.gcc.fix.diff @@ -0,0 +1,12 @@ +diff -Naur autofs-3.1.7/modules/lookup_file.c autofs-3.1.7-gcc/modules/lookup_file.c +--- autofs-3.1.7/modules/lookup_file.c 2000-11-04 07:05:17.000000000 +0000 ++++ autofs-3.1.7-gcc/modules/lookup_file.c 2006-08-16 18:21:21.000000000 +0100 +@@ -197,7 +197,7 @@ + } + break; + } +- next_char: /* End of loop, since we can't continue; ++ next_char:; /* End of loop, since we can't continue; + inside a switch */ + } + diff --git a/source/n/autofs/autofs.x86_64.diff b/source/n/autofs/autofs.x86_64.diff new file mode 100644 index 000000000..8c4bf677c --- /dev/null +++ b/source/n/autofs/autofs.x86_64.diff @@ -0,0 +1,11 @@ +--- autofs-3.1.7/include/linux/auto_fs.h 2000-11-04 07:05:18.000000000 +0000 ++++ auto_fs.h 2006-10-19 13:46:21.000000000 +0000 +@@ -45,7 +45,7 @@ + * If so, 32-bit user-space code should be backwards compatible. + */ + +-#if defined(__sparc__) || defined(__mips__) ++#if defined(__sparc__) || defined(__mips__) || defined(__s390__) || defined(__x86_64__) + typedef unsigned int autofs_wqt_t; + #else + typedef unsigned long autofs_wqt_t; diff --git a/source/n/autofs/slack-desc b/source/n/autofs/slack-desc new file mode 100644 index 000000000..a7af6c0b2 --- /dev/null +++ b/source/n/autofs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +autofs: autofs (kernel-based automounter) +autofs: +autofs: autofs is a kernel-based automounter for Linux. It performs a job +autofs: similar to amd(8) but relies on a small stub of kernel code instead of +autofs: pretending to be an NFS server. The result is simpler code, better +autofs: reliability, and much faster operation in the common case (everything +autofs: already mounted.) +autofs: +autofs: +autofs: +autofs: diff --git a/source/n/biff+comsat/biff+comsat-0.17.diff b/source/n/biff+comsat/biff+comsat-0.17.diff new file mode 100644 index 000000000..ed615eb00 --- /dev/null +++ b/source/n/biff+comsat/biff+comsat-0.17.diff @@ -0,0 +1,10 @@ +--- ./comsat/comsat.c.orig Sun Feb 25 18:05:33 2001 ++++ ./comsat/comsat.c Sun Feb 25 18:05:54 2001 +@@ -62,6 +62,7 @@ + #include /* used for _PATH_MAILDIR, _PATH_UTMP, etc. */ + #include + #include ++#include + + #include "../version.h" + diff --git a/source/n/biff+comsat/biff+comsat.SlackBuild b/source/n/biff+comsat/biff+comsat.SlackBuild new file mode 100755 index 000000000..b50da5aa6 --- /dev/null +++ b/source/n/biff+comsat/biff+comsat.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-biff+comsat + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf biff+comsat-$VERSION +tar xvf $CWD/biff+comsat-$VERSION.tar.gz || exit 1 +cd biff+comsat-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/biff+comsat-0.17.diff.gz | patch -p1 --verbose || exit +zcat $CWD/biff+comsat.offset.diff.gz | patch -p1 --verbose || exit +zcat $CWD/biff+comsat.badutmp.diff.gz | patch -p1 --verbose || exit + +./configure --prefix=/usr +make || exit 1 + +cd biff +strip biff +mkdir -p $PKG/usr/bin +cat biff > $PKG/usr/bin/biff +chmod 755 $PKG/usr/bin/biff +mkdir -p $PKG/usr/man/man{1,8} +cat biff.1 | gzip -9c > $PKG/usr/man/man1/biff.1.gz +cd ../comsat +strip comsat +mkdir -p $PKG/usr/sbin +cat comsat > $PKG/usr/sbin/in.comsat +chmod 755 $PKG/usr/sbin/in.comsat +cat comsat.8 | gzip -9c > $PKG/usr/man/man8/in.comsat.8.gz + +cd .. +mkdir -p $PKG/usr/doc/biff+comsat-$VERSION +cp -a README $PKG/usr/doc/biff+comsat-$VERSION +chown root:root $PKG/usr/doc/biff+comsat-$VERSION/* +chmod 644 $PKG/usr/doc/biff+comsat-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/biff+comsat-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/biff+comsat/biff+comsat.badutmp.diff b/source/n/biff+comsat/biff+comsat.badutmp.diff new file mode 100644 index 000000000..2cb79b590 --- /dev/null +++ b/source/n/biff+comsat/biff+comsat.badutmp.diff @@ -0,0 +1,43 @@ +--- ./comsat/comsat.c.orig 2004-06-21 13:50:09.000000000 -0700 ++++ ./comsat/comsat.c 2004-06-21 13:50:52.000000000 -0700 +@@ -69,6 +69,8 @@ + static int debug = 0; + #define dsyslog if (debug) syslog + ++ ++ + #define MAXIDLE 120 + + static char hostname[MAXHOSTNAMELEN]; +@@ -331,6 +333,7 @@ + char line[sizeof(utp->ut_line) + 1]; /* tty name */ + const char *cr; /* line delimiter */ + sigset_t sigset; /* scratch signal mask */ ++ struct passwd *pwbuf; /* passwd information buffer */ + + #ifdef USER_PROCESS + if (utp->ut_type != USER_PROCESS) { +@@ -371,6 +374,23 @@ + dsyslog(LOG_DEBUG, "%s: wrong mode on %s", name, tty); + return; + } ++ /* ++ * Ensure the tty is owned by the uid of 'name' to prevent old ++ * unremoved utmp records referring to user 'x' leading to ++ * biffage of user 'x''s email to user 'y' where user 'y' is ++ * logged onto the same terminal that user 'x' previously ++ * used. T.Crane, 8th June 2004. ++ */ ++ if ((pwbuf=getpwnam(name))==NULL) { ++ syslog(LOG_ERR, "get pwname(%s) failed", name); ++ exit(1); ++ } ++ if (pwbuf->pw_uid != stb.st_uid) { ++ dsyslog(LOG_DEBUG, "Warning: tty uid %d != uid %d for %s on %s\n", ++ stb.st_uid, pwbuf->pw_uid, name, tty); ++ return; ++ } ++ + dsyslog(LOG_DEBUG, "notify %s on %s\n", name, tty); + + /* diff --git a/source/n/biff+comsat/biff+comsat.offset.diff b/source/n/biff+comsat/biff+comsat.offset.diff new file mode 100644 index 000000000..11cd1eb76 --- /dev/null +++ b/source/n/biff+comsat/biff+comsat.offset.diff @@ -0,0 +1,93 @@ +--- ./comsat/comsat.c.orig Sun Jun 3 01:31:30 2001 ++++ ./comsat/comsat.c Sun Jun 3 01:31:34 2001 +@@ -77,8 +77,8 @@ + static int nutmp; + + static void mailfor(char *name); +-static void notify(struct utmp *utp, off_t offset); +-static void jkfprintf(FILE *, const char *name, off_t offset, const char *cr); ++static void notify(struct utmp *utp, off_t offset, const char *mailfile); ++static void jkfprintf(FILE *, const char *name, off_t offset, const char *cr, const char *mailfile); + static void onalrm(int); + + int main(void) { +@@ -273,20 +273,27 @@ + static void mailfor(char *name) + { + struct utmp *utp; +- char *cp; ++ char *cp, *cp2; + off_t offset; + ++ dsyslog(LOG_DEBUG, "mailfor: name = %s\n", name); /* T.Crane 29/06/2001 */ ++ ++ /* Eg. name is "tom@5990326:/var/spool/mail/tom.wien" */ + /* Break off the file offset part and convert it to an integer. */ + cp = strchr(name, '@'); ++ /* First, get the actual filename, ie. the part after the ':' */ ++ cp2 = strchr(name, ':')+1; /* If it does not exist cp2==NULL */ + if (!cp) return; + *cp = 0; + offset = atol(cp + 1); ++ dsyslog(LOG_DEBUG, "mailfor: offset = %d\n", offset); /* T.Crane 29/06/2001 */ ++ dsyslog(LOG_DEBUG, "mailfor: mailfile = %s\n", cp2); /* T.Crane 29/06/2001 */ + + /* Look through the utmp and call notify() for each matching login. */ + utp = &utmp[nutmp]; + while (--utp >= utmp) { + if (!strncmp(utp->ut_name, name, sizeof(utmp[0].ut_name))) +- notify(utp, offset); ++ notify(utp, offset, cp2); + } + } + +@@ -314,7 +321,7 @@ + /* + * This actually writes to the user's terminal. + */ +-static void notify(struct utmp *utp, off_t offset) ++static void notify(struct utmp *utp, off_t offset, const char *mailfile) + { + FILE *tp; /* file open on tty */ + struct stat stb; +@@ -427,7 +434,7 @@ + /* + * Print the first few lines of the message. + */ +- jkfprintf(tp, name, offset, cr); ++ jkfprintf(tp, name, offset, cr, mailfile); + + /* + * Close up and quit the child process. +@@ -439,8 +446,11 @@ + /* + * This prints a few lines from the mailbox of the user "name" at offset + * "offset", using "cr" as the line break string, to the file "tp". ++ * Added mailfile variable to take the name of the actual mailfile ++ * passed to us rather than the defalt mailfile of the user "name", ++ * T.Crane (T.Crane@rhul.ac.uk), 29/05/2001. + */ +-static void jkfprintf(FILE *tp, const char *name, off_t offset, const char *cr) ++static void jkfprintf(FILE *tp, const char *name, off_t offset, const char *cr, const char *mailfile) + { + char *cp, ch; + FILE *fi; +@@ -473,7 +483,17 @@ + /* + * Open the user's mailbox (recall we're already in the mail spool dir) + */ +- fi = fopen(name, "r"); ++ ++ /* If mailfile == NULL, then use name (ie. users' username instead) */ ++ if (mailfile != NULL) { ++ dsyslog(LOG_DEBUG, "jkfprint: actual mailbox = %s\n",mailfile); ++ fi = fopen(mailfile, "r"); ++ } ++ else { ++ dsyslog(LOG_DEBUG, "jkfprint: actual mailbox==NULL, using name %s\n",name); ++ fi = fopen(name, "r"); ++ } ++ + if (fi == NULL) return; + + /* Move to requested offset */ diff --git a/source/n/biff+comsat/slack-desc b/source/n/biff+comsat/slack-desc new file mode 100644 index 000000000..1c27bf328 --- /dev/null +++ b/source/n/biff+comsat/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +biff+comsat: biff+comsat (mail arrival notification daemon) +biff+comsat: +biff+comsat: Comsat is the server process which receives reports of incoming mail +biff+comsat: and notifies users if they have requested this service. "biff" is +biff+comsat: the program that requests comsat service "biff y", and may be placed +biff+comsat: in a user's startup file if they'd like to hear a beep and trash +biff+comsat: their console with each new piece of junk mail. ;-) +biff+comsat: +biff+comsat: Biff was the name of Heidi Stettner's dog, who barked when the +biff+comsat: mailman came. Biff was well known to many of the early BSD developers +biff+comsat: living in Evans Hall at U.C. Berkeley. diff --git a/source/n/bind/3link.sh b/source/n/bind/3link.sh new file mode 100644 index 000000000..ec8ba4d19 --- /dev/null +++ b/source/n/bind/3link.sh @@ -0,0 +1,136 @@ +rm -f lwres_addr_parse.3 +ln -sf lwres_resutil.3 lwres_addr_parse.3 +rm -f lwres_buffer_add.3 +ln -sf lwres_buffer.3 lwres_buffer_add.3 +rm -f lwres_buffer_back.3 +ln -sf lwres_buffer.3 lwres_buffer_back.3 +rm -f lwres_buffer_clear.3 +ln -sf lwres_buffer.3 lwres_buffer_clear.3 +rm -f lwres_buffer_first.3 +ln -sf lwres_buffer.3 lwres_buffer_first.3 +rm -f lwres_buffer_forward.3 +ln -sf lwres_buffer.3 lwres_buffer_forward.3 +rm -f lwres_buffer_getmem.3 +ln -sf lwres_buffer.3 lwres_buffer_getmem.3 +rm -f lwres_buffer_getuint16.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint16.3 +rm -f lwres_buffer_getuint32.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint32.3 +rm -f lwres_buffer_getuint8.3 +ln -sf lwres_buffer.3 lwres_buffer_getuint8.3 +rm -f lwres_buffer_init.3 +ln -sf lwres_buffer.3 lwres_buffer_init.3 +rm -f lwres_buffer_invalidate.3 +ln -sf lwres_buffer.3 lwres_buffer_invalidate.3 +rm -f lwres_buffer_putmem.3 +ln -sf lwres_buffer.3 lwres_buffer_putmem.3 +rm -f lwres_buffer_putuint16.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint16.3 +rm -f lwres_buffer_putuint32.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint32.3 +rm -f lwres_buffer_putuint8.3 +ln -sf lwres_buffer.3 lwres_buffer_putuint8.3 +rm -f lwres_buffer_subtract.3 +ln -sf lwres_buffer.3 lwres_buffer_subtract.3 +rm -f lwres_conf_clear.3 +ln -sf lwres_config.3 lwres_conf_clear.3 +rm -f lwres_conf_get.3 +ln -sf lwres_config.3 lwres_conf_get.3 +rm -f lwres_conf_init.3 +ln -sf lwres_config.3 lwres_conf_init.3 +rm -f lwres_conf_parse.3 +ln -sf lwres_config.3 lwres_conf_parse.3 +rm -f lwres_conf_print.3 +ln -sf lwres_config.3 lwres_conf_print.3 +rm -f lwres_context_allocmem.3 +ln -sf lwres_context.3 lwres_context_allocmem.3 +rm -f lwres_context_create.3 +ln -sf lwres_context.3 lwres_context_create.3 +rm -f lwres_context_destroy.3 +ln -sf lwres_context.3 lwres_context_destroy.3 +rm -f lwres_context_freemem.3 +ln -sf lwres_context.3 lwres_context_freemem.3 +rm -f lwres_context_initserial.3 +ln -sf lwres_context.3 lwres_context_initserial.3 +rm -f lwres_context_nextserial.3 +ln -sf lwres_context.3 lwres_context_nextserial.3 +rm -f lwres_context_sendrecv.3 +ln -sf lwres_context.3 lwres_context_sendrecv.3 +rm -f lwres_endhostent.3 +ln -sf lwres_gethostent.3 lwres_endhostent.3 +rm -f lwres_endhostent_r.3 +ln -sf lwres_gethostent.3 lwres_endhostent_r.3 +rm -f lwres_freeaddrinfo.3 +ln -sf lwres_getaddrinfo.3 lwres_freeaddrinfo.3 +rm -f lwres_freehostent.3 +ln -sf lwres_getipnode.3 lwres_freehostent.3 +rm -f lwres_gabnrequest_free.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_free.3 +rm -f lwres_gabnrequest_parse.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_parse.3 +rm -f lwres_gabnrequest_render.3 +ln -sf lwres_gabn.3 lwres_gabnrequest_render.3 +rm -f lwres_gabnresponse_free.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_free.3 +rm -f lwres_gabnresponse_parse.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_parse.3 +rm -f lwres_gabnresponse_render.3 +ln -sf lwres_gabn.3 lwres_gabnresponse_render.3 +rm -f lwres_getaddrsbyname.3 +ln -sf lwres_resutil.3 lwres_getaddrsbyname.3 +rm -f lwres_gethostbyaddr.3 +ln -sf lwres_gethostent.3 lwres_gethostbyaddr.3 +rm -f lwres_gethostbyaddr_r.3 +ln -sf lwres_gethostent.3 lwres_gethostbyaddr_r.3 +rm -f lwres_gethostbyname.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname.3 +rm -f lwres_gethostbyname2.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname2.3 +rm -f lwres_gethostbyname_r.3 +ln -sf lwres_gethostent.3 lwres_gethostbyname_r.3 +rm -f lwres_gethostent_r.3 +ln -sf lwres_gethostent.3 lwres_gethostent_r.3 +rm -f lwres_getipnodebyaddr.3 +ln -sf lwres_getipnode.3 lwres_getipnodebyaddr.3 +rm -f lwres_getipnodebyname.3 +ln -sf lwres_getipnode.3 lwres_getipnodebyname.3 +rm -f lwres_getnamebyaddr.3 +ln -sf lwres_resutil.3 lwres_getnamebyaddr.3 +rm -f lwres_gnbarequest_free.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_free.3 +rm -f lwres_gnbarequest_parse.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_parse.3 +rm -f lwres_gnbarequest_render.3 +ln -sf lwres_gnba.3 lwres_gnbarequest_render.3 +rm -f lwres_gnbaresponse_free.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_free.3 +rm -f lwres_gnbaresponse_parse.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_parse.3 +rm -f lwres_gnbaresponse_render.3 +ln -sf lwres_gnba.3 lwres_gnbaresponse_render.3 +rm -f lwres_herror.3 +ln -sf lwres_hstrerror.3 lwres_herror.3 +rm -f lwres_lwpacket_parseheader.3 +ln -sf lwres_packet.3 lwres_lwpacket_parseheader.3 +rm -f lwres_lwpacket_renderheader.3 +ln -sf lwres_packet.3 lwres_lwpacket_renderheader.3 +rm -f lwres_net_ntop.3 +ln -sf lwres_inetntop.3 lwres_net_ntop.3 +rm -f lwres_nooprequest_free.3 +ln -sf lwres_noop.3 lwres_nooprequest_free.3 +rm -f lwres_nooprequest_parse.3 +ln -sf lwres_noop.3 lwres_nooprequest_parse.3 +rm -f lwres_nooprequest_render.3 +ln -sf lwres_noop.3 lwres_nooprequest_render.3 +rm -f lwres_noopresponse_free.3 +ln -sf lwres_noop.3 lwres_noopresponse_free.3 +rm -f lwres_noopresponse_parse.3 +ln -sf lwres_noop.3 lwres_noopresponse_parse.3 +rm -f lwres_noopresponse_render.3 +ln -sf lwres_noop.3 lwres_noopresponse_render.3 +rm -f lwres_sethostent.3 +ln -sf lwres_gethostent.3 lwres_sethostent.3 +rm -f lwres_sethostent_r.3 +ln -sf lwres_gethostent.3 lwres_sethostent_r.3 +rm -f lwres_string_parse.3 +ln -sf lwres_resutil.3 lwres_string_parse.3 diff --git a/source/n/bind/bind.SlackBuild b/source/n/bind/bind.SlackBuild new file mode 100755 index 000000000..afcde9e1b --- /dev/null +++ b/source/n/bind/bind.SlackBuild @@ -0,0 +1,164 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=bind +VERSION=${VERSION:-9.4.3-P3} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=/bind-$(mcookie) +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Remove use of SO_BSDCOMPAT which has been obsolete since the 2.2.x kernel series, +# and generates warnings under 2.6.x kernels: +zcat $CWD/bind.so_bsdcompat.diff.gz | patch -p1 --verbose || exit + +# We want to use /var/run/named/, not just /var/run/. +# This allows changing the ownership of that directory if we want to run +# named as a non-root user. +zcat $CWD/bind.var.run.named.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Threads break '-u' on Linux (for now) + +# The man pages should reflect /var/run/named: +zcat $CWD/bind.man.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-libtool \ + --mandir=/usr/man \ + --enable-shared \ + --disable-static \ + --enable-threads \ + --with-openssl=/usr \ + --build=$ARCH-slackware-linux || exit 1 + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We like symlinks. +( cd $PKG/usr/sbin + ln -sf named lwresd +) + +# We like a lot of symlinks. +( cd $PKG/usr/man/man3 + sh $CWD/3link.sh +) + +# Install init script: +mkdir -p $PKG/etc/rc.d +cp -a $CWD/rc.bind $PKG/etc/rc.d/rc.bind.new +chmod 644 $PKG/etc/rc.d/rc.bind.new + +# Add /var/run/named directory: +mkdir -p $PKG/var/run/named + +# Fix library perms: +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/* + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* 2> /dev/null + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES COPYRIGHT FAQ* README* \ + doc/arm doc/misc \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# This one should have the correct perms of the config file: +chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/misc/rndc.conf-sample + +# One format of this is plenty. Especially get rid of the bloated PDF. +( cd $PKG/usr/doc/bind-$VERSION/arm + rm -f Makefile* *.pdf *.xml README.SGML latex-fixup.pl +) + +# Add sample config files for a simple caching nameserver: +mkdir -p $PKG/var/named/caching-example +cat $CWD/caching-example/named.conf > $PKG/etc/named.conf.new +cat $CWD/caching-example/localhost.zone > $PKG/var/named/caching-example/localhost.zone +cat $CWD/caching-example/named.local > $PKG/var/named/caching-example/named.local +cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.root +# This name is deprecated, but having it here doesn't hurt in case +# an old configuration file wants it: +cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.ca + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/n/bind/bind.man.diff b/source/n/bind/bind.man.diff new file mode 100644 index 000000000..6bcf19219 --- /dev/null +++ b/source/n/bind/bind.man.diff @@ -0,0 +1,22 @@ +--- ./bin/named/named.8.orig 2007-01-29 18:23:44.000000000 -0600 ++++ ./bin/named/named.8 2007-06-07 23:17:33.000000000 -0500 +@@ -202,7 +202,7 @@ + The default configuration file. + .RE + .PP +-\fI/var/run/named.pid\fR ++\fI/var/run/named/named.pid\fR + .RS 4 + The default process\-id file. + .RE +--- ./bin/named/lwresd.8.orig 2007-01-29 18:23:44.000000000 -0600 ++++ ./bin/named/lwresd.8 2007-06-07 23:17:18.000000000 -0500 +@@ -155,7 +155,7 @@ + The default configuration file. + .RE + .PP +-\fI/var/run/lwresd.pid\fR ++\fI/var/run/named/lwresd.pid\fR + .RS 4 + The default process\-id file. + .RE diff --git a/source/n/bind/bind.so_bsdcompat.diff b/source/n/bind/bind.so_bsdcompat.diff new file mode 100644 index 000000000..5d78031b7 --- /dev/null +++ b/source/n/bind/bind.so_bsdcompat.diff @@ -0,0 +1,11 @@ +--- ./lib/isc/unix/socket.c.orig 2005-11-03 17:08:42.000000000 -0600 ++++ ./lib/isc/unix/socket.c 2006-02-18 13:09:15.000000000 -0600 +@@ -245,6 +245,8 @@ + + #define SOCK_DEAD(s) ((s)->references == 0) + ++#undef SO_BSDCOMPAT ++ + static void + manager_log(isc_socketmgr_t *sockmgr, + isc_logcategory_t *category, isc_logmodule_t *module, int level, diff --git a/source/n/bind/bind.var.run.named.diff b/source/n/bind/bind.var.run.named.diff new file mode 100644 index 000000000..53cc8bd62 --- /dev/null +++ b/source/n/bind/bind.var.run.named.diff @@ -0,0 +1,14 @@ +--- ./bin/named/include/named/globals.h.orig Sat Nov 24 17:47:59 2001 ++++ ./bin/named/include/named/globals.h Tue Feb 26 18:51:18 2002 +@@ -102,9 +102,9 @@ + EXTERN isc_boolean_t ns_g_logstderr INIT(ISC_FALSE); + + EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR +- "/run/named.pid"); ++ "/run/named/named.pid"); + EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR +- "/run/lwresd.pid"); ++ "/run/named/lwresd.pid"); + EXTERN const char * ns_g_username INIT(NULL); + + #undef EXTERN diff --git a/source/n/bind/caching-example/localhost.zone b/source/n/bind/caching-example/localhost.zone new file mode 100644 index 000000000..c47baf5f1 --- /dev/null +++ b/source/n/bind/caching-example/localhost.zone @@ -0,0 +1,11 @@ +$TTL 86400 +$ORIGIN localhost. +@ 1D IN SOA @ root ( + 42 ; serial (d. adams) + 3H ; refresh + 15M ; retry + 1W ; expiry + 1D ) ; minimum + + 1D IN NS @ + 1D IN A 127.0.0.1 diff --git a/source/n/bind/caching-example/named.conf b/source/n/bind/caching-example/named.conf new file mode 100644 index 000000000..a8ee2795f --- /dev/null +++ b/source/n/bind/caching-example/named.conf @@ -0,0 +1,31 @@ +options { + directory "/var/named"; + /* + * If there is a firewall between you and nameservers you want + * to talk to, you might need to uncomment the query-source + * directive below. Previous versions of BIND always asked + * questions using port 53, but BIND 8.1 uses an unprivileged + * port by default. + */ + // query-source address * port 53; +}; + +// +// a caching only nameserver config +// +zone "." IN { + type hint; + file "caching-example/named.root"; +}; + +zone "localhost" IN { + type master; + file "caching-example/localhost.zone"; + allow-update { none; }; +}; + +zone "0.0.127.in-addr.arpa" IN { + type master; + file "caching-example/named.local"; + allow-update { none; }; +}; diff --git a/source/n/bind/caching-example/named.local b/source/n/bind/caching-example/named.local new file mode 100644 index 000000000..8bfc435fb --- /dev/null +++ b/source/n/bind/caching-example/named.local @@ -0,0 +1,10 @@ +$TTL 86400 +@ IN SOA localhost. root.localhost. ( + 1997022700 ; Serial + 28800 ; Refresh + 14400 ; Retry + 3600000 ; Expire + 86400 ) ; Minimum + IN NS localhost. + +1 IN PTR localhost. diff --git a/source/n/bind/caching-example/named.root b/source/n/bind/caching-example/named.root new file mode 100644 index 000000000..902a7047f --- /dev/null +++ b/source/n/bind/caching-example/named.root @@ -0,0 +1,85 @@ +; This file holds the information on root name servers needed to +; initialize cache of Internet domain name servers +; (e.g. reference this file in the "cache . " +; configuration file of BIND domain name servers). +; +; This file is made available by InterNIC +; under anonymous FTP as +; file /domain/named.root +; on server FTP.INTERNIC.NET +; -OR- RS.INTERNIC.NET +; +; last update: Feb 04, 2008 +; related version of root zone: 2008020400 +; +; formerly NS.INTERNIC.NET +; +. 3600000 IN NS A.ROOT-SERVERS.NET. +A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 +A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30 +; +; formerly NS1.ISI.EDU +; +. 3600000 NS B.ROOT-SERVERS.NET. +B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 +; +; formerly C.PSI.NET +; +. 3600000 NS C.ROOT-SERVERS.NET. +C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 +; +; formerly TERP.UMD.EDU +; +. 3600000 NS D.ROOT-SERVERS.NET. +D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 +; +; formerly NS.NASA.GOV +; +. 3600000 NS E.ROOT-SERVERS.NET. +E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 +; +; formerly NS.ISC.ORG +; +. 3600000 NS F.ROOT-SERVERS.NET. +F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 +F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2f::f +; +; formerly NS.NIC.DDN.MIL +; +. 3600000 NS G.ROOT-SERVERS.NET. +G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 +; +; formerly AOS.ARL.ARMY.MIL +; +. 3600000 NS H.ROOT-SERVERS.NET. +H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 +H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::803f:235 +; +; formerly NIC.NORDU.NET +; +. 3600000 NS I.ROOT-SERVERS.NET. +I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 +; +; operated by VeriSign, Inc. +; +. 3600000 NS J.ROOT-SERVERS.NET. +J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30 +J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:C27::2:30 +; +; operated by RIPE NCC +; +. 3600000 NS K.ROOT-SERVERS.NET. +K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 +K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fd::1 +; +; operated by ICANN +; +. 3600000 NS L.ROOT-SERVERS.NET. +L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42 +; +; operated by WIDE +; +. 3600000 NS M.ROOT-SERVERS.NET. +M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 +M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35 +; End of File diff --git a/source/n/bind/doinst.sh b/source/n/bind/doinst.sh new file mode 100644 index 000000000..afeff946f --- /dev/null +++ b/source/n/bind/doinst.sh @@ -0,0 +1,36 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.bind.new: +if [ -e etc/rc.d/rc.bind ]; then + cp -a etc/rc.d/rc.bind etc/rc.d/rc.bind.new.incoming + cat etc/rc.d/rc.bind.new > etc/rc.d/rc.bind.new.incoming + mv etc/rc.d/rc.bind.new.incoming etc/rc.d/rc.bind.new +fi + +config etc/named.conf.new +config etc/rc.d/rc.bind.new + +# Add a /var/named if it doesn't exist: +if [ ! -d var/named ]; then + mkdir -p var/named + chmod 755 var/named +fi + +# Generate /etc/rndc.key if there's none there, +# and there also no /etc/rndc.conf (the other +# way to set this up). +if [ ! -r etc/rndc.key -a ! -r /etc/rndc.conf ]; then + chroot . /sbin/ldconfig + chroot . /usr/sbin/rndc-confgen -r /dev/urandom -a 2> /dev/null +fi diff --git a/source/n/bind/rc.bind b/source/n/bind/rc.bind new file mode 100644 index 000000000..966670e3b --- /dev/null +++ b/source/n/bind/rc.bind @@ -0,0 +1,112 @@ +#!/bin/sh +# Start/stop/restart the BIND name server daemon (named). + +# Start bind. In the past it was more secure to run BIND +# as a non-root user (for example, with '-u daemon'), but +# the modern version of BIND knows how to use the kernel's +# capability mechanism to drop all root privileges except +# the ability to bind() to a privileged port and set process +# resource limits, so -u should not be needed. If you wish +# to use it anyway, chown the /var/run/named directory to +# the non-root user. +# + +# You might also consider running BIND in a "chroot jail", +# a discussion of which may be found in +# /usr/doc/Linux-HOWTOs/Chroot-BIND-HOWTO. + +# One last note: rndc has a lot of other nice features that +# it is not within the scope of this start/stop/restart script +# to support. For more details, see "man rndc" or just type +# "rndc" to see the options. + + +# Sanity check. If either /usr/sbin/named or /etc/named.conf +# aren't ready, it doesn't make much sense to try to run this +# script: +if [ ! -x /usr/sbin/named ]; then + echo "/etc/rc.d/rc.bind: no /usr/sbin/named found (or not executable); cannot start." + exit 1 +elif [ ! -f /etc/named.conf ]; then + echo "/etc/rc.d/rc.bind: no /etc/named.conf found; cannot start /usr/sbin/named." + exit 1 +fi + +# Start BIND. As many times as you like. ;-) +# Seriously, don't run "rc.bind start" if BIND is already +# running or you'll get more than one copy running. +bind_start() { + if [ -x /usr/sbin/named ]; then + echo "Starting BIND: /usr/sbin/named" + /usr/sbin/named + sleep 1 + fi + if ! ps axc | grep -q named ; then + echo "WARNING: named did not start." + echo "Attempting to start named again: /usr/sbin/named" + /usr/sbin/named + sleep 1 + if ps axc | grep -q named ; then + echo "SUCCESS: named started." + else + echo "FAILED: Sorry, a second attempt to start named has also failed." + echo "There may be a configuration error that needs fixing. Good luck!" + fi + fi +} + +# Stop all running copies of BIND (/usr/sbin/named): +bind_stop() { + echo "Stopping BIND: /usr/sbin/rndc stop" + /usr/sbin/rndc stop + # A problem with using "/usr/sbin/rndc stop" is that if you + # managed to get multiple copies of named running it will + # only stop one of them and then can't stop the others even + # if you run it again. So, after doing things the nice way + # we'll do them the old-fashioned way. If you don't like + # it you can comment it out, but unless you have a lot of + # other programs you run called "named" this is unlikely + # to have any ill effects: + sleep 1 + if ps axc | grep -q named ; then + echo "Using "killall named" on additional BIND processes..." + /bin/killall named 2> /dev/null + fi +} + +# Reload BIND: +bind_reload() { + /usr/sbin/rndc reload +} + +# Restart BIND: +bind_restart() { + bind_stop + bind_start +} + +# Get BIND status: +bind_status() { + /usr/sbin/rndc status +} + +case "$1" in +'start') + bind_start + ;; +'stop') + bind_stop + ;; +'reload') + bind_reload + ;; +'restart') + bind_restart + ;; +'status') + bind_status + ;; +*) + echo "usage $0 start|stop|reload|restart|status" +esac + diff --git a/source/n/bind/slack-desc b/source/n/bind/slack-desc new file mode 100644 index 000000000..9e9b15d11 --- /dev/null +++ b/source/n/bind/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bind: bind (DNS server and utilities) +bind: +bind: The named daemon and support utilities such as dig, host, and +bind: nslookup. Sample configuration files for running a simple caching +bind: nameserver are included. Documentation for advanced name server +bind: setup can be found in /usr/doc/bind-9.x.x/. +bind: +bind: +bind: +bind: +bind: diff --git a/source/n/bluez-firmware/bluez-firmware.SlackBuild b/source/n/bluez-firmware/bluez-firmware.SlackBuild new file mode 100755 index 000000000..2fba9d2cb --- /dev/null +++ b/source/n/bluez-firmware/bluez-firmware.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=bluez-firmware +VERSION=${VERSION:-1.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --libdir=/lib \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bluez-firmware/slack-desc b/source/n/bluez-firmware/slack-desc new file mode 100644 index 000000000..ff96de6b5 --- /dev/null +++ b/source/n/bluez-firmware/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bluez-firmware: bluez-firmware (Bluetooth(TM) firmware) +bluez-firmware: +bluez-firmware: The bluez-firmware package contains firmware needed by various +bluez-firmware: chipsets to support Bluetooth(TM) on Linux. +bluez-firmware: +bluez-firmware: For more info, visit: http://www.bluez.org +bluez-firmware: +bluez-firmware: +bluez-firmware: +bluez-firmware: +bluez-firmware: diff --git a/source/n/bluez-hcidump/bluez-hcidump.SlackBuild b/source/n/bluez-hcidump/bluez-hcidump.SlackBuild new file mode 100755 index 000000000..0bef3fb99 --- /dev/null +++ b/source/n/bluez-hcidump/bluez-hcidump.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=bluez-hcidump +VERSION=${VERSION:-1.42} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bluez-hcidump/slack-desc b/source/n/bluez-hcidump/slack-desc new file mode 100644 index 000000000..e4c8205c2 --- /dev/null +++ b/source/n/bluez-hcidump/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bluez-hcidump: bluez-hcidump (Linux Bluetooth(TM) analyzer) +bluez-hcidump: +bluez-hcidump: The bluez-hcidump package contains a network analyzer for +bluez-hcidump: Bluetooth(TM). The hcidump utility reads raw HCI data coming from and +bluez-hcidump: going to a Bluetooth device and prints commands, events and data. +bluez-hcidump: +bluez-hcidump: For more info, visit: http://www.bluez.org +bluez-hcidump: +bluez-hcidump: +bluez-hcidump: +bluez-hcidump: diff --git a/source/n/bluez-libs/bluez-libs.SlackBuild b/source/n/bluez-libs/bluez-libs.SlackBuild new file mode 100755 index 000000000..e25d346d7 --- /dev/null +++ b/source/n/bluez-libs/bluez-libs.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=bluez-libs +VERSION=${VERSION:-3.36} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bluez-libs/slack-desc b/source/n/bluez-libs/slack-desc new file mode 100644 index 000000000..f9a57e285 --- /dev/null +++ b/source/n/bluez-libs/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bluez-libs: bluez-libs (Bluetooth(TM) wireless libraries) +bluez-libs: +bluez-libs: The bluez-libs package contains an implementation of the Bluetooth(TM) +bluez-libs: wireless standards specifications for Linux. +bluez-libs: +bluez-libs: For more info, visit: http://www.bluez.org +bluez-libs: +bluez-libs: +bluez-libs: +bluez-libs: +bluez-libs: diff --git a/source/n/bluez-utils/60-bluetooth.rules b/source/n/bluez-utils/60-bluetooth.rules new file mode 100644 index 000000000..0957225fd --- /dev/null +++ b/source/n/bluez-utils/60-bluetooth.rules @@ -0,0 +1,35 @@ +# Brain Boxes BL-620 Bluetooth Adapter +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="Brain Boxes", SYSFS{prod_id2}=="Bluetooth PC Card", ENV{HCIOPTS}="bboxes", RUN+="bluetooth_serial" + +# Xircom CreditCard Bluetooth Adapter +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="Xircom", SYSFS{prod_id3}=="CBT", ENV{HCIOPTS}="xircom", RUN+="bluetooth_serial" + +# Xircom RealPort2 Bluetooth Adapter +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="Xircom", SYSFS{prod_id3}=="CBT", ENV{HCIOPTS}="xircom", RUN+="bluetooth_serial" + +# IBM Bluetooth PC Card II +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="IBM", SYSFS{prod_id2}=="Bluetooth PC Card II", ENV{HCIOPTS}="tdk", RUN+="bluetooth_serial" + +# TDK Bluetooth PC Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="TDK", SYSFS{prod_id2}=="Bluetooth PC Card II", ENV{HCIOPTS}="tdk", RUN+="bluetooth_serial" + +# AmbiCom BT2000C Bluetooth PC/CF Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="AmbiCom BT2000C", SYSFS{prod_id2}=="Bluetooth PC/CF Card", ENV{HCIOPTS}="bt2000c", RUN+="bluetooth_serial" + +# COM One Platinium Bluetooth PC Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="COM1 SA", SYSFS{prod_id2}=="MC310 CARD", ENV{HCIOPTS}="comone", RUN+="bluetooth_serial" + +# Sphinx PICO Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="SPHINX", SYSFS{prod_id2}=="BT-CARD", ENV{HCIOPTS}="picocard", RUN+="bluetooth_serial" + +# H-Soft blue+Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="H-Soft", SYSFS{prod_id2}=="Blue+CARD", ENV{HCIOPTS}="$sysfs{manf_id},$sysfs{card_id}", RUN+="bluetooth_serial" + +# Compaq iPAQ Bluetooth Sleeve, Belkin F8T020, any other muppet who used an OXCF950 and didn't bother to program it appropriately. +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="CF CARD", SYSFS{prod_id2}=="GENERIC", ENV{HCIOPTS}="$sysfs{manf_id},$sysfs{card_id}", RUN+="bluetooth_serial" + +# Zoom Bluetooth Card and Sitecom CN-504 Card +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="PCMCIA", SYSFS{prod_id2}=="Bluetooth Card", ENV{HCIOPTS}="zoom", RUN+="bluetooth_serial" + +# CC&C BT0100M +SUBSYSTEM=="tty", BUS=="pcmcia", SYSFS{prod_id1}=="Bluetooth BT0100M", ENV{HCIOPTS}="bcsp 115200", RUN+="bluetooth_serial" diff --git a/source/n/bluez-utils/README.SLACKWARE b/source/n/bluez-utils/README.SLACKWARE new file mode 100644 index 000000000..795c8c5a2 --- /dev/null +++ b/source/n/bluez-utils/README.SLACKWARE @@ -0,0 +1,18 @@ +PIN (or passkey) management +--------------------------- +since bluez 3.0 the old pin_helper script has been replaced by +the dbus interface. To add a default passkey for every outgoing +request (e.g. the old /etc/bluetooth/pin file) drop it into +/etc/bluetooth/passkeys/default. (e.g. echo -n "1234" > +/etc/bluetooth/passkeys/default ) +To add a passkey for a specific outgoing connection replace default +with the device's address. ( /etc/bluetooth/passkeys/aa:bb:cc:dd:ee:ff +will contain passkey for aa:bb:cc:dd:ee:ff ). +After adding a passkey you should restart bluetooth with + +/etc/init.d/bluetooth restart + +and the new passkeys will be registered. + + +(This behaviour has been copied from Debian) diff --git a/source/n/bluez-utils/add-passkey.c b/source/n/bluez-utils/add-passkey.c new file mode 100644 index 000000000..b9dcbb517 --- /dev/null +++ b/source/n/bluez-utils/add-passkey.c @@ -0,0 +1,394 @@ +/* + * add-passkey.c: + * registers as an agent for the bluez bluetooth linux stack, the code is + * shamelessly stolen from bluez source found at http://bluez.sf.net + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2005-2006 Marcel Holtmann + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include + +#define INTERFACE "org.bluez.Security" + +// FIXME assumption +#define PASSKEYMAXLENGTH 255 + +static char *passkey = NULL; +static char *address = NULL; + +static volatile sig_atomic_t __io_canceled = 0; +static volatile sig_atomic_t __io_terminated = 0; + +static void sig_term(int sig) +{ + __io_canceled = 1; +} + +static DBusHandlerResult agent_filter(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + const char *name, *old, *new; + + if (!dbus_message_is_signal(msg, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (!dbus_message_get_args(msg, NULL, + DBUS_TYPE_STRING, &name, DBUS_TYPE_STRING, &old, + DBUS_TYPE_STRING, &new, DBUS_TYPE_INVALID)) { + fprintf(stderr, "Invalid arguments for NameOwnerChanged signal"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + if (!strcmp(name, "org.bluez") && *new == '\0') { + __io_terminated = 1; + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult request_message(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + DBusMessage *reply; + const char *path, *address; + + if (!passkey) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &path, + DBUS_TYPE_STRING, &address, DBUS_TYPE_INVALID)) { + fprintf(stderr, "Invalid arguments for passkey Request method"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + reply = dbus_message_new_method_return(msg); + if (!reply) { + fprintf(stderr, "Can't create reply message\n"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + dbus_message_append_args(reply, DBUS_TYPE_STRING, &passkey, + DBUS_TYPE_INVALID); + + dbus_connection_send(conn, reply, NULL); + + dbus_connection_flush(conn); + + dbus_message_unref(reply); + + return DBUS_HANDLER_RESULT_HANDLED; +} + +static DBusHandlerResult release_message(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + DBusMessage *reply; + + if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_INVALID)) { + fprintf(stderr, "Invalid arguments for passkey Release method"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + reply = dbus_message_new_method_return(msg); + if (!reply) { + fprintf(stderr, "Can't create reply message\n"); + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + dbus_message_append_args(reply, DBUS_TYPE_INVALID); + + dbus_connection_send(conn, reply, NULL); + + dbus_connection_flush(conn); + + dbus_message_unref(reply); + + if (!__io_canceled) + fprintf(stderr, "Passkey service has been released\n"); + + __io_terminated = 1; + + return DBUS_HANDLER_RESULT_HANDLED; +} + +static DBusHandlerResult agent_message(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + if (dbus_message_is_method_call(msg, "org.bluez.PasskeyAgent", "Request")) + return request_message(conn, msg, data); + + if (dbus_message_is_method_call(msg, "org.bluez.PasskeyAgent", "Release")) + return release_message(conn, msg, data); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static const DBusObjectPathVTable agent_table = { + .message_function = agent_message, +}; + +static int register_agent(DBusConnection *conn, const char *agent_path, + const char *remote_address, int use_default) +{ + DBusMessage *msg, *reply; + DBusError err; + const char *path, *method, *address = remote_address; + + if (!dbus_connection_register_object_path(conn, agent_path, + &agent_table, NULL)) { + fprintf(stderr, "Can't register path object path for agent\n"); + return -1; + } + + if (use_default) { + path = "/org/bluez"; + method = "RegisterDefaultPasskeyAgent"; + } else { + path = "/org/bluez/hci0"; + method = "RegisterPasskeyAgent"; + } + + msg = dbus_message_new_method_call("org.bluez", path, INTERFACE, method); + if (!msg) { + fprintf(stderr, "Can't allocate new method call\n"); + return -1; + } + + if (use_default) + dbus_message_append_args(msg, DBUS_TYPE_STRING, &agent_path, + DBUS_TYPE_INVALID); + else + dbus_message_append_args(msg, DBUS_TYPE_STRING, &agent_path, + DBUS_TYPE_STRING, &address, DBUS_TYPE_INVALID); + + dbus_error_init(&err); + + reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err); + + dbus_message_unref(msg); + + if (!reply) { + fprintf(stderr, "Can't register passkey agent\n"); + if (dbus_error_is_set(&err)) { + fprintf(stderr, "%s\n", err.message); + dbus_error_free(&err); + } + return -1; + } + + dbus_message_unref(reply); + + dbus_connection_flush(conn); + + return 0; +} + +static int unregister_agent(DBusConnection *conn, const char *agent_path, + const char *remote_address, int use_default) +{ + DBusMessage *msg, *reply; + DBusError err; + const char *path, *method, *address = remote_address; + + if (use_default) { + path = "/org/bluez"; + method = "UnregisterDefaultPasskeyAgent"; + } else { + path = "/org/bluez/hci0"; + method = "UnregisterPasskeyAgent"; + } + + msg = dbus_message_new_method_call("org.bluez", path, INTERFACE, method); + if (!msg) { + fprintf(stderr, "Can't allocate new method call\n"); + dbus_connection_close(conn); + exit(1); + } + + if (use_default) + dbus_message_append_args(msg, DBUS_TYPE_STRING, &agent_path, + DBUS_TYPE_INVALID); + else + dbus_message_append_args(msg, DBUS_TYPE_STRING, &agent_path, + DBUS_TYPE_STRING, &address, DBUS_TYPE_INVALID); + + dbus_error_init(&err); + + reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err); + + dbus_message_unref(msg); + + if (!reply) { + fprintf(stderr, "Can't unregister passkey agent\n"); + if (dbus_error_is_set(&err)) { + fprintf(stderr, "%s\n", err.message); + dbus_error_free(&err); + } + return -1; + } + + dbus_message_unref(reply); + + dbus_connection_flush(conn); + + dbus_connection_unregister_object_path(conn, agent_path); + + return 0; +} + +static void usage(void) +{ +// printf("Bluetooth passkey agent ver %s\n\n", VERSION); + + printf("Usage:\n" + "\tadd-passkey [--passkey-fd n] [--default] [--path agent-path] [address]\n" + "\n" + "add-passkey will read from passkey-fd (default: stdin) adding a default passkey\n" + "if --default is given, or for a specific address if supplied on commandline.\n\n" + "--default or address are mandatory.\n" + "this program is based on bluez passkey-agent.c from http://bluez.sf.net\n" + "\n"); +} + +static struct option main_options[] = { + { "passkey-fd", 1, 0, 'f'}, + { "default", 0, 0, 'd' }, + { "path", 1, 0, 'p' }, + { "help", 0, 0, 'h' }, + { 0, 0, 0, 0 } +}; + +int main(int argc, char *argv[]) +{ + struct sigaction sa; + DBusConnection *conn; + char match_string[128], default_path[128], *agent_path = NULL; + int opt, use_default = 0, passkey_fd = 0; + char *tmppasskey; + + snprintf(default_path, sizeof(default_path), + "/org/bluez/passkey_agent_%d", getpid()); + + while ((opt = getopt_long(argc, argv, "+fdp:h", main_options, NULL)) != EOF) { + switch(opt) { + case 'f': + passkey_fd = atoi(optarg); + case 'd': + use_default = 1; + break; + case 'p': + if (optarg[0] != '/') { + fprintf(stderr, "Invalid path\n"); + exit(1); + } + agent_path = strdup(optarg); + break; + case 'h': + usage(); + exit(0); + default: + exit(1); + } + } + + argc -= optind; + argv += optind; + optind = 0; + + if (argc < 1 && !use_default) { + usage(); + exit(1); + } + + passkey = malloc(PASSKEYMAXLENGTH * sizeof(char)); + + if (!read(passkey_fd, passkey, PASSKEYMAXLENGTH)) { + fprintf(stderr, "Unable to read passkey from fd %d\n", passkey_fd); + exit(1); + } + + if (tmppasskey = index(passkey, '\n')) { + *tmppasskey = '\0'; + } + + address = (argc > 0) ? strdup(argv[0]) : NULL; + + if (!use_default && !address) { + usage(); + exit(1); + } + + if (!agent_path) + agent_path = strdup(default_path); + + conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); + if (!conn) { + fprintf(stderr, "Can't get on system bus"); + exit(1); + } + + if (register_agent(conn, agent_path, address, use_default) < 0) { + dbus_connection_close(conn); + exit(1); + } + + if (!dbus_connection_add_filter(conn, agent_filter, NULL, NULL)) + fprintf(stderr, "Can't add signal filter"); + + snprintf(match_string, sizeof(match_string), + "interface=%s,member=NameOwnerChanged,arg0=%s", + DBUS_INTERFACE_DBUS, "org.bluez"); + + dbus_bus_add_match(conn, match_string, NULL); + + memset(&sa, 0, sizeof(sa)); + sa.sa_flags = SA_NOCLDSTOP; + sa.sa_handler = sig_term; + sigaction(SIGTERM, &sa, NULL); + sigaction(SIGINT, &sa, NULL); + + while (!__io_canceled && !__io_terminated) { + if (dbus_connection_read_write_dispatch(conn, 100) != TRUE) + break; + } + + if (!__io_terminated) + unregister_agent(conn, agent_path, address, use_default); + + if (passkey) + free(passkey); + + dbus_connection_close(conn); + + return 0; +} diff --git a/source/n/bluez-utils/bluetooth.conf b/source/n/bluez-utils/bluetooth.conf new file mode 100644 index 000000000..c0476237a --- /dev/null +++ b/source/n/bluez-utils/bluetooth.conf @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/n/bluez-utils/bluez-utils.SlackBuild b/source/n/bluez-utils/bluez-utils.SlackBuild new file mode 100755 index 000000000..7f8b95746 --- /dev/null +++ b/source/n/bluez-utils/bluez-utils.SlackBuild @@ -0,0 +1,188 @@ +#!/bin/sh +# +# SlackBuild for bluez-utils +# http://www.bluez.org +# By SukkoPera +# Thanks a lot to CAT for his Slackware package cration +# guide (http://www.slacky.it/misto/tutorial/spunleashed.txt) +# +# Check out +# - http://www.sukkopera.tk +# - http://www.slacky.it +# - http://www.nyft.org +# +# Notes: +# - Many files and the whole PIN management system have been stolen from the +# Debian package. Thanks. +# +# Rewritten for Slackware 2007-05 + +NAME=bluez-utils +VERSION=${VERSION:-3.36} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-7} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$NAME + +rm -rf $PKG +mkdir -p $TMP $PKG +mkdir -p $PKG/etc/rc.d \ + $PKG/etc/bluetooth/passkeys \ + $PKG/usr/lib${LIBDIRSUFFIX}/bluetooth +# Is there any reason for a non-root user to be able to see these? +chmod 700 $PKG/etc/bluetooth/passkeys +cd $TMP +rm -rf $NAME-$VERSION +tar xvf $CWD/${NAME}-${VERSION}.tar.bz2 || exit 1 +cd $NAME-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --localstatedir=/var \ + --enable-tools\ + --enable-bccmd \ + --enable-hid2hci \ + --enable-dfutool \ + --enable-hidd \ + --enable-pand \ + --enable-dund \ + --enable-cups \ + --enable-manpages \ + --enable-configfiles \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +mkdir -p $PKG/lib/udev +cp -a scripts/bluetooth_serial $PKG/lib/udev/bluetooth_serial || exit 1 +chmod 755 $PKG/lib/udev/bluetooth_serial + +mkdir -p $PKG/lib/udev/rules.d +cp -a scripts/bluetooth.rules $PKG/lib/udev/rules.d/60-bluetooth.rules || exit 1 +chmod 644 $PKG/lib/udev/rules.d/60-bluetooth.rules + +# This appears to be gone/obsolete: +#if [ ! -e $PKG/etc/bluetooth/transfer.service ]; then +# cat transfer/transfer.service > $PKG/etc/bluetooth/transfer.service +#fi +#if [ ! -e $PKG/usr/lib${LIBDIRSUFFIX}/bluetooth/bluetoothd-service-transfer -a -e transfer/bluetoothd-service-transfer ]; then +# cat transfer/bluetoothd-service-transfer > $PKG/usr/lib${LIBDIRSUFFIX}/bluetooth/bluetoothd-service-transfer +# chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/bluetooth/bluetoothd-service-transfer +#fi + +# Install Debian's add-passkey program: +DEBDEST=/usr/lib${LIBDIRSUFFIX}/bluetooth +gcc $(pkg-config --libs --cflags dbus-1) -DDBUS_API_SUBJECT_TO_CHANGE \ + $CWD/add-passkey.c -o $PKG/$DEBDEST/add-passkey || exit 1 +cp $CWD/register-passkeys $PKG/$DEBDEST +if [ "$ARCH" = "x86_64" ]; then + sed -i "s,/usr/lib/,/usr/lib${LIBDIRSUFFIX}/,g" $PKG/$DEBDEST/register-passkeys +fi +chmod a+x $PKG/$DEBDEST/* + +# Default PIN (wow, does this seem insecure!) +#echo "1234" > $PKG/etc/bluetooth/passkeys/default +touch $PKG/etc/bluetooth/passkeys/default + +mkdir -p $PKG/usr/doc/$NAME-$VERSION +cp -a \ + AUTHORS ChangeLog COPYING* INSTALL NEWS README $CWD/README.SLACKWARE \ + $PKG/usr/doc/$NAME-$VERSION +( cd $PKG/etc/bluetooth + ln -sf /usr/doc/$NAME-$VERSION/README.SLACKWARE . +) + +# Arrange init scripts and config files: +CONF=/etc/rc.d/rc.bluetooth.conf +mkdir -p $PKG/etc/rc.d +cp $CWD/rc.bluetooth $PKG/etc/rc.d/rc.bluetooth +if [ "$ARCH" = "x86_64" ]; then + sed -i "s,/usr/lib/,/usr/lib${LIBDIRSUFFIX}/,g" $PKG/etc/rc.d/rc.bluetooth +fi +cp -a $CWD/rc.bluetooth.conf $PKG/etc/rc.d/rc.bluetooth.conf +sed -i "s:\(HIDD_ENABLE=\).*:\1false:" $PKG/$CONF || exit 1 +sed -i "s:\(HID2HCI_ENABLE=\).*:\1false:" $PKG/$CONF || exit 1 + +mkdir -p $PKG/etc/bluetooth +cp -a audio/audio.conf $PKG/etc/bluetooth +cp -a audio/asound.conf $PKG/etc/bluetooth +cp -a input/input.conf $PKG/etc/bluetooth +cp -a hcid/hcid.conf $PKG/etc/bluetooth +cp -a network/network.conf $PKG/etc/bluetooth +cp -a rfcomm/rfcomm.conf $PKG/etc/bluetooth +chmod 644 $PKG/etc/bluetooth/*.conf + +# Do not overwrite configuration +# Well, let the dbus file be overwritten, as it is not usually user-edited. +( cd $PKG + for file in \ + etc/bluetooth/audio.conf \ + etc/asound.conf \ + etc/bluetooth/asound.conf \ + etc/bluetooth/input.conf \ + etc/bluetooth/hcid.conf \ + etc/bluetooth/network.conf \ + etc/bluetooth/rfcomm.conf \ + etc/bluetooth/passkeys/default \ + etc/rc.d/rc.bluetooth \ + etc/rc.d/rc.bluetooth.conf ; do + mv ${file} ${file}.new + done +) + +# Replace the bluetooth.conf file with one from BlueZ4 that works with the newest dbus: +cat $CWD/bluetooth.conf > $PKG/etc/dbus-1/system.d/bluetooth.conf + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$NAME-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bluez-utils/doinst.sh b/source/n/bluez-utils/doinst.sh new file mode 100644 index 000000000..e738d14bd --- /dev/null +++ b/source/n/bluez-utils/doinst.sh @@ -0,0 +1,30 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +if [ ! -e etc/rc.d/rc.bluetooth -o ! -x etc/rc.d/rc.bluetooth ]; then + chmod 644 etc/rc.d/rc.bluetooth.new +else + chmod 755 etc/rc.d/rc.bluetooth.new +fi +config etc/rc.d/rc.bluetooth.new +config etc/rc.d/rc.bluetooth.conf.new +config etc/bluetooth/asound.conf.new +config etc/bluetooth/audio.conf.new +config etc/bluetooth/hcid.conf.new +config etc/bluetooth/input.conf.new +config etc/bluetooth/network.conf.new +config etc/bluetooth/rfcomm.conf.new +config etc/bluetooth/passkeys/default.new + +if [ ! -e etc/asound.conf ]; then + ( cd etc ; ln -sf bluetooth/asound.conf . ) +fi diff --git a/source/n/bluez-utils/rc.bluetooth b/source/n/bluez-utils/rc.bluetooth new file mode 100644 index 000000000..cf891dcf9 --- /dev/null +++ b/source/n/bluez-utils/rc.bluetooth @@ -0,0 +1,114 @@ +#!/bin/sh +# +# Start/stop the Bluetooth daemons +# +# This version has been modified by SukkoPera, taking inspiration from then +# Debian init script, to add support for register-passkeys. Modified by +# Patrick Volkerding to add "restart" support, and cleaned up a tiny bit. + +set -e + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +DESC="Bluetooth subsystem" + +# The register-passkeys script was originally written by Debian: +REGISTER_PASSKEYS=/usr/lib/bluetooth/register-passkeys + +HCID_NAME=hcid +HIDD_NAME=hidd +HID2HCI_NAME=hid2hci +RFCOMM_NAME=rfcomm +PAND_NAME=pand +DUND_NAME=dund + +HCID_EXEC="`which $HCID_NAME || true`" +HIDD_EXEC="`which $HIDD_NAME || true`" +HID2HCI_EXEC="`which $HID2HCI_NAME || true`" +RFCOMM_EXEC="`which $RFCOMM_NAME || true`" +PAND_EXEC="`which $PAND_NAME || true`" +DUND_EXEC="`which $DUND_NAME || true`" + +HCID_CONFIG="/etc/bluetooth/hcid.conf" +RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf" + +# Source rc.bluetooth.conf +. /etc/rc.d/rc.bluetooth.conf + +bluetooth_start() { + echo -n "Starting $DESC: " + if [ -x "$HIDD_EXEC" ] ; then + if $HIDD_ENABLE && [ -x "$HIDD_EXEC" -a -n "$HIDD_OPTIONS" ] ; then + $HIDD_EXEC $HIDD_OPTIONS || true + echo -n " $HIDD_NAME" + fi + else + echo "BlueZ does not appear to be installed!" + exit + fi + # Separate sdp daemon is depreciated, now internal function. + if $SDPD_ENABLE ; then + $HCID_EXEC -s -f $HCID_CONFIG + echo -n " $HCID_NAME sdp" + else + $HCID_EXEC -f $HCID_CONFIG + echo -n " $HCID_NAME" + fi + if $HID2HCI_ENABLE && [ -x "$HID2HCI_EXEC" ] ; then + $HID2HCI_EXEC --tohci > /dev/null 2>&1 || true + echo -n " $HID2HCI_NAME" + fi + if $RFCOMM_ENABLE && [ -x "$RFCOMM_EXEC" -a -f "$RFCOMM_CONFIG" ] ; then + $RFCOMM_EXEC -f $RFCOMM_CONFIG bind all || true + echo -n " $RFCOMM_NAME" + fi + if $DUND_ENABLE && [ -x "$DUND_EXEC" -a -n "$DUND_OPTIONS" ] ; then + $DUND_EXEC $DUND_OPTIONS + echo -n " $DUND_NAME" + fi + if $PAND_ENABLE && [ -x "$PAND_EXEC" -a -n "$PAND_OPTIONS" ] ; then + $PAND_EXEC $PAND_OPTIONS + echo -n " $PAND_NAME" + fi + if [ -x $REGISTER_PASSKEYS ]; then + $REGISTER_PASSKEYS + echo -n " passkeys" + fi + echo "." +} + +bluetooth_stop() { + echo -n "Stopping $DESC: " + killall $PAND_NAME > /dev/null 2>&1 || true + echo -n " $PAND_NAME" + killall $DUND_NAME > /dev/null 2>&1 || true + echo -n " $DUND_NAME" + if [ -x "$RFCOMM_EXEC" ] ; then + $RFCOMM_EXEC release all > /dev/null 2>&1 || true + echo -n " $RFCOMM_NAME" + fi + killall $HIDD_NAME > /dev/null 2>&1 || true + echo -n " $HIDD_NAME" + killall $HCID_NAME > /dev/null 2>&1 || true + echo -n " $HCID_NAME" + echo "." +} + +case "$1" in + start) + bluetooth_start + ;; + stop) + bluetooth_stop + ;; + restart) + bluetooth_stop + sleep 1 + bluetooth_start + ;; + *) + echo "Usage: $0 start|stop|restart" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/source/n/bluez-utils/rc.bluetooth.conf b/source/n/bluez-utils/rc.bluetooth.conf new file mode 100644 index 000000000..09df405fb --- /dev/null +++ b/source/n/bluez-utils/rc.bluetooth.conf @@ -0,0 +1,33 @@ +# /etc/rc.d/rc.bluetooth.conf +# +# This file contains the configuration for the Bluetooth subsystem, BlueZ. + +# The lines below allow you to configure which BlueZ daemons will be started, +# along with any daemon-specific options. + +# Allowed values for each (unless otherwise noted) are "true" and "false" + +# ============================================================================= + +# The SDP daemon allows clients to detect supported Bluetooth services +SDPD_ENABLE=true + +# The HID daemon supports Bluetooth Human Interface Devices +HIDD_ENABLE=false +HIDD_OPTIONS="--server" + +# This switches your Bluetooth device into HCI mode, use this if your input +# device does not support Bluetooth HID +HID2HCI_ENABLE=false + +# The RFCOMM daemon is used to simulate serial connections over Bluetooth +RFCOMM_ENABLE=true + +# The DUN daemon is used for Dial Up Networking over Bluetooth +DUND_ENABLE=false +DUND_OPTIONS="--listen --persist --msdun call dun" + +# The PAN daemon is used to setup a Bluetooth network. +PAND_ENABLE=false +PAND_OPTIONS="--listen --role NAP" + diff --git a/source/n/bluez-utils/register-passkeys b/source/n/bluez-utils/register-passkeys new file mode 100644 index 000000000..f57042c3c --- /dev/null +++ b/source/n/bluez-utils/register-passkeys @@ -0,0 +1,19 @@ +#!/bin/bash +# register every passkey found in $PASSKEYS_DIR + +PASSKEYS_DIR="/etc/bluetooth/passkeys/" +PASSKEY_AGENT="/usr/lib/bluetooth/add-passkey" + +cd $PASSKEYS_DIR + +for f in $(ls -1 ${PASSKEYS_DIR}); do + if [ ! -r "$f" ]; then continue; fi + + # default passkey + if [ "$f" == "default" ]; then + cat "$f" | $PASSKEY_AGENT --default > /dev/null 2>&1 & + # specific passkey + elif echo "$f" | egrep -q '([0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}'; then + cat "$f" | $PASSKEY_AGENT "$f" > /dev/null 2>&1 & + fi +done diff --git a/source/n/bluez-utils/slack-desc b/source/n/bluez-utils/slack-desc new file mode 100644 index 000000000..159f02466 --- /dev/null +++ b/source/n/bluez-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bluez-utils: bluez-utils (Utilities for working with Bluetooth(TM)) +bluez-utils: +bluez-utils: The bluez-utils package contains utilities for supporting +bluez-utils: Bluetooth(TM) on Linux. +bluez-utils: +bluez-utils: For more info, visit: http://www.bluez.org +bluez-utils: +bluez-utils: +bluez-utils: +bluez-utils: +bluez-utils: diff --git a/source/n/bootp/bootp.SlackBuild b/source/n/bootp/bootp.SlackBuild new file mode 100755 index 000000000..2d12ab061 --- /dev/null +++ b/source/n/bootp/bootp.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.4.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bootp + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_bootp.tar.gz + +cd $TMP +rm -rf bootp-$VERSION +tar xvf $CWD/bootp_$VERSION.orig.tar.gz || exit 1 +cd bootp-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/bootp_2.4.3-15.diff.gz | patch -p1 --verbose || exit 1 + +mkdir -p $PKG/usr/doc/bootp-$VERSION +cp -a \ + Announce ConvOldTab.sh Installation Problems README ToDo bootptab.cmu bootptab.mcs \ + $PKG/usr/doc/bootp-$VERSION + +make $NUMJOBS || make || exit 1 + +strip --strip-unneeded bootpd bootpef bootpgw bootptest +for file in bootpd bootpef bootpgw bootptest ; do + cat $file > $PKG/usr/sbin/$file +done + +gzip -9c bootptab.5 > $PKG/usr/man/man5/bootptab.5.gz +for file in bootpd.8 bootpef.8 bootptest.8 ; do + gzip -9c $file > $PKG/usr/man/man8/$file.gz +done +( cd $PKG/usr/man/man8 + ln -sf bootpd.8.gz bootpgw.8.gz +) + +zcat $CWD/bootptab.gz > $PKG/etc/bootptab.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/bootp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bootp/bootp_2.4.3-15.diff b/source/n/bootp/bootp_2.4.3-15.diff new file mode 100644 index 000000000..72fc60863 --- /dev/null +++ b/source/n/bootp/bootp_2.4.3-15.diff @@ -0,0 +1,2747 @@ +--- bootp-2.4.3.orig/Announce ++++ bootp-2.4.3/Announce +@@ -6,6 +6,8 @@ + + New features in version 2.4 include: + ++ Added static DHCP allocation capabilities. ++ Use: :dl=leasetime for DHCP leasetime handouts + Added a simple BOOTP gateway program: bootpgw + Allow host name anywhere IP address is expected. + Automatically lookup the IP address when the name of a +@@ -49,12 +51,19 @@ + SunOS 4.X (Solaris 1.X) + SunOS 5.X (Solaris 2.X) + System V/386 Rel. 4.0 ++ Linux 1.1.81 + + Systems on which others say this code works: + CDC EP/IX (1.4.3, 2.1.1) + DEC Ultrix (4.2, 4.3) +- Linux 1.1.81 + OSF/1 (DEC Alpha CPU) ++ HP 9000 ++ ++How to get the latest version: ++ ftp firewall.mc.com (anonymous) ++ cd /pub ++ binary ++ get bootp-2.4.2.tar.Z + + Please direct questions, comments, and bug reports to: + +--- bootp-2.4.3.orig/Changes ++++ bootp-2.4.3/Changes +@@ -14,12 +14,33 @@ + bad IP address caused "network unreachable" errors. + [Thanks to andrew@ntplx.net (Andrew Lindh) for the fix!] + ++--> bootpd-2.4.3 ++ ++11/19/95 joey@infodrom.north.de (Martin Schulze) ++ Fixed a problem that DHCP lease time is send in every request ++ independend of the existence of a dl tag. ++ Corrected some NEED()-calls with wrong arguments (only some text) ++ Added support for -v (version) in bootpd and bootpgw. ++ ++08/07/95 middelin@polyware.iaf.nl (Pauline Middelink) ++ Fixed problem while reporting duplicate hardware address in ++ readfile.c (kerry@maine.maine.edu) ++ Changed some code to allow the giaddr to pass through. Needed ++ when the client request is forwarded to us through a gateway. ++ (Broadcasting to the gateway will not reach the client) ++ ++01/26/95 Phil.Packer@bbc.co.uk (Phil.Packer) ++ Added dl tag for DHCP lease and rejigged Pauline's codes ++ at the end of bootpd.c to allow the setting of explicit leases. ++ Added "sco" Makefile target. ++ + --> bootp-2.4.2 + + 01/14/95 middelin@polyware.iaf.nl (Pauline Middelink) + Corrected support for the Linux networking code. + Fixed lots of warnings (gcc -Wall) + Added "linux" Makefile target. ++ Written code for DHCP static IP allocation. + + 01/02/95 Jukka Ukkonen + Allow bootptab syntax: ha="0:0:c0:80:e8:a7" +--- bootp-2.4.3.orig/Makefile ++++ bootp-2.4.3/Makefile +@@ -9,10 +9,10 @@ + # OPTion DEFinitions: + # Remove the -DVEND_CMU if you don't wish to support the "CMU vendor format" + # in addition to the RFC1048 format. Leaving out DEBUG saves little. +-OPTDEFS= -DSYSLOG -DVEND_CMU -DDEBUG ++OPTDEFS= -DSYSLOG -DVEND_CMU -DDHCP -DDEBUG -g -O2 -Wall + + # Uncomment and edit this to choose the facility code used for syslog. +-# LOG_FACILITY= "-DLOG_BOOTP=LOG_LOCAL2" ++LOG_FACILITY= "-DLOG_BOOTP=LOG_DAEMON" + + # SYStem DEFinitions: + # Either uncomment some of the following, or do: +@@ -27,31 +27,35 @@ + # FILE DEFinitions: + # The next few lines may be uncommented and changed to alter the default + # filenames bootpd uses for its configuration and dump files. +-#CONFFILE= -DCONFIG_FILE=\"/usr/etc/bootptab\" +-#DUMPFILE= -DDUMPTAB_FILE=\"/usr/etc/bootpd.dump\" +-#FILEDEFS= $(CONFFILE) $(DUMPFILE) ++CONFFILE= -DCONFIG_FILE=\"/etc/bootptab\" ++DUMPFILE= -DDUMPTAB_FILE=\"/var/run/bootpd.dump\" ++FILEDEFS= $(CONFFILE) $(DUMPFILE) ++ ++GLIBC=$(shell grep -s -c __GLIBC__ /usr/include/features.h) + + # MORE DEFinitions (whatever you might want to add) + # One might define NDEBUG (to remove "assert()" checks). +-MOREDEFS= +- +-INSTALL=/usr/bin/install +-DESTDIR= +-BINDIR=/usr/etc +-MANDIR=/usr/local/man ++ifeq ($(GLIBC),0) ++MOREDEFS=-include /usr/include/linux/netdevice.h ++endif ++ ++INSTALL=install ++DESTDIR=${BASEDIR} ++BINDIR=/usr/sbin ++MANDIR=/usr/share/man + + CFLAGS= $(OPTDEFS) $(SYSDEFS) $(FILEDEFS) $(MOREDEFS) + PROGS= bootpd bootpef bootpgw bootptest + TESTS= trylook trygetif trygetea + +-all: $(PROGS) $(TESTS) ++all: $(PROGS) # $(TESTS) + + system: install + + install: $(PROGS) + -for f in $(PROGS) ;\ + do \ +- $(INSTALL) -c -s $$f $(DESTDIR)$(BINDIR) ;\ ++ $(INSTALL) -c -o root -g root -m 0755 $$f $(DESTDIR)$(BINDIR) ;\ + done + + MAN5= bootptab.5 +@@ -59,12 +63,13 @@ + install.man: $(MAN5) $(MAN8) + -for f in $(MAN5) ;\ + do \ +- $(INSTALL) -c -m 644 $$f $(DESTDIR)$(MANDIR)/man5 ;\ ++ $(INSTALL) -c -o root -g root -m 0644 $$f $(DESTDIR)$(MANDIR)/man5 ;\ + done + -for f in $(MAN8) ;\ + do \ +- $(INSTALL) -c -m 644 $$f $(DESTDIR)$(MANDIR)/man8 ;\ ++ $(INSTALL) -c -o root -g root -m 0644 $$f $(DESTDIR)$(MANDIR)/man8 ;\ + done ++ (cd $(DESTDIR)$(MANDIR)/man8 && ln -s bootpd.8 bootpgw.8) + + clean: + -rm -f core *.o +@@ -99,10 +104,6 @@ + irix: + $(MAKE) SYSDEFS= SYSLIBS= + +-# Linux 1.1.80+ on [34]86 +-linux: +- $(MAKE) SYSDEFS="-O6 -Wall -fomit-frame-pointer" +- + # SunOS 4.X + sunos4: + $(MAKE) SYSDEFS="-DSUNOS -DETC_ETHERS" \ +--- bootp-2.4.3.orig/README ++++ bootp-2.4.3/README +@@ -60,7 +60,7 @@ + Edit your /etc/rc.local or /etc/inetd.conf file to start up bootpd upon + reboot. The following is a sample /etc/inetd.conf entry: + # BOOTP server +- bootps dgram udp wait root /usr/etc/bootpd bootpd -i ++ bootps dgram udp wait root /usr/sbin/bootpd bootpd -i + + Care and feeding: + If you change the interface cards on your host or add new hosts you will +--- bootp-2.4.3.orig/ToDo ++++ bootp-2.4.3/ToDo +@@ -49,13 +49,3 @@ + #endif + + ---------------------------------------------------------------------- +-DHCP Support: +- +-There is a set of patches from Jeanette Pauline Middelink +- to add DHCP support. +- +-Those patches will be integrated into the BOOTP release stream +-very soon, but if you can't wait, you can get them from: +-nimbus.anu.edu.au:/pub/tridge/samba/contributed/DHCP.patch +- +----------------------------------------------------------------------- +--- bootp-2.4.3.orig/bootp.h ++++ bootp-2.4.3/bootp.h +@@ -31,25 +31,25 @@ + * + */ + +-#include "bptypes.h" /* for int32, u_int32 */ ++#include + + #define BP_CHADDR_LEN 16 + #define BP_SNAME_LEN 64 + #define BP_FILE_LEN 128 + #define BP_VEND_LEN 64 +-#define BP_MINPKTSZ 300 /* to check sizeof(struct bootp) */ ++#define BP_MINPKTSZ sizeof(struct bootp) + + struct bootp { + unsigned char bp_op; /* packet opcode type */ + unsigned char bp_htype; /* hardware addr type */ + unsigned char bp_hlen; /* hardware addr length */ + unsigned char bp_hops; /* gateway hops */ +- unsigned int32 bp_xid; /* transaction ID */ ++ u_int32_t bp_xid; /* transaction ID */ + unsigned short bp_secs; /* seconds since boot began */ + unsigned short bp_flags; /* RFC1532 broadcast, etc. */ + struct in_addr bp_ciaddr; /* client IP address */ + struct in_addr bp_yiaddr; /* 'your' IP address */ +- struct in_addr bp_siaddr; /* server IP address */ ++ struct in_addr bp_siaddr; /* (tftp) server IP address */ + struct in_addr bp_giaddr; /* gateway IP address */ + unsigned char bp_chaddr[BP_CHADDR_LEN]; /* client hardware address */ + char bp_sname[BP_SNAME_LEN]; /* server host name */ +@@ -121,9 +121,17 @@ + #define TAG_NIS_DOMAIN ((unsigned char) 40) + #define TAG_NIS_SERVER ((unsigned char) 41) + #define TAG_NTP_SERVER ((unsigned char) 42) ++#ifdef DHCP + /* DHCP maximum message size. */ ++#define TAG_DHCP_IPLEASE ((unsigned char) 51) ++#define TAG_DHCP_MSG ((unsigned char) 53) ++#define TAG_DHCP_SERVERID ((unsigned char) 54) ++#endif + #define TAG_MAX_MSGSZ ((unsigned char) 57) +- ++#ifdef DHCP ++#define TAG_DHCP_IPRENEW ((unsigned char) 58) /* PeP hic facet */ ++#define TAG_DHCP_IPREBIND ((unsigned char) 59) ++#endif + /* XXX - Add new tags here */ + + +@@ -133,13 +141,13 @@ + + struct cmu_vend { + char v_magic[4]; /* magic number */ +- unsigned int32 v_flags; /* flags/opcodes, etc. */ ++ u_int32_t v_flags; /* flags/opcodes, etc. */ + struct in_addr v_smask; /* Subnet mask */ + struct in_addr v_dgate; /* Default gateway */ + struct in_addr v_dns1, v_dns2; /* Domain name servers */ + struct in_addr v_ins1, v_ins2; /* IEN-116 name servers */ + struct in_addr v_ts1, v_ts2; /* Time servers */ +- int32 v_unused[6]; /* currently unused */ ++ int32_t v_unused[6]; /* currently unused */ + }; + + +--- bootp-2.4.3.orig/bootpd.8 ++++ bootp-2.4.3/bootpd.8 +@@ -2,20 +2,23 @@ + .\" + .\" $Header: $ + .\" +-.TH BOOTPD 8 "November 06, 1993" "Carnegie Mellon University" ++.\" Mon Nov 12 19:23:27 1995 Martin Schulze ++.\" minor changes, dumpfile is in /tmp, made it linux man(7) conform ++.TH BOOTPD 8 "12 November 1995" "Version 2.4.3" "Carnegie Mellon University" + .SH NAME + bootpd, bootpgw \- Internet Boot Protocol server/gateway + .SH SYNOPSIS + .B bootpd ++.RB [ " \-v " ] + [ + .B \-i + .B \-s + .B \-t +-timeout ++.I timeout + .B \-d +-level ++.I level + .B \-c +-chdir\-path ++.I chdir\-path + ] + [ + .I bootptab +@@ -24,72 +27,74 @@ + ] ] + .br + .B bootpgw ++.RB [ " \-v " ] + [ + .B \-i + .B \-s + .B \-t +-timeout ++.I timeout + .B \-d +-level +-] server ++.IR level " ] " server + .SH DESCRIPTION +-.I Bootpd ++.B Bootpd + implements an Internet Bootstrap Protocol (BOOTP) server as defined in +-RFC951, RFC1532, and RFC1533. +-.I Bootpgw ++RFC951, RFC1532, and RFC1533. This server also provides some extension ++to support the static part of Dynamic Host Configuration Protocol (DHCP) ++as specified in RFC1533. DHCP is used by Windows NT and 95. ++.B Bootpgw + implements a simple BOOTP gateway which can be used to forward + requests and responses between clients on one subnet and a + BOOTP server (i.e. +-.IR bootpd ) ++.BR bootpd ) + on another subnet. While either +-.I bootpd ++.B bootpd + or +-.I bootpgw ++.B bootpgw + will forward BOOTREPLY packets, only +-.I bootpgw ++.B bootpgw + will forward BOOTREQUEST packets. + .PP + One host on each network segment is normally configured to run either +-.I bootpd ++.B bootpd + or +-.I bootpgw ++.B bootpgw + from +-.I inetd ++.B inetd + by including one of the following lines in the file + .IR /etc/inetd.conf : + .IP +-bootps dgram udp wait root /etc/bootpd bootpd bootptab ++bootps dgram udp wait root /usr/sbin/bootpd bootpd bootptab + .br +-bootps dgram udp wait root /etc/bootpgw bootpgw server ++bootps dgram udp wait root /usr/sbin/bootpgw bootpgw server + .PP + This mode of operation is referred to as "inetd mode" and causes +-.I bootpd ++.B bootpd + (or +-.IR bootpgw ) ++.BR bootpgw ) + to be started only when a boot request arrives. If it does not + receive another packet within fifteen minutes of the last one + it received, it will exit to conserve system resources. The + .B \-t +-option controls this timeout (see OPTIONS). ++option controls this timeout (see OPTIONS below). + .PP + It is also possible to run +-.I bootpd ++.B bootpd + (or +-.IR bootpgw ) ++.BR bootpgw ) + in "standalone mode" (without +-.IR inetd ) ++.BR inetd ) + by simply invoking it from a shell like any other regular command. + Standalone mode is particularly useful when +-.I bootpd ++.B bootpd + is used with a large configuration database, where the start up + delay might otherwise prevent timely response to client requests. + (Automatic start up in standalone mode can be done by invoking +-.I bootpd ++.B bootpd + from within + .IR /etc/rc.local , + for example.) + Standalone mode is less useful for +-.I bootgw ++.B bootgw + which + has very little start up delay because + it does not read a configuration file. +@@ -108,9 +113,9 @@ + Specifies the + .I timeout + value (in minutes) that a +-.I bootpd ++.B bootpd + or +-.I bootpgw ++.B bootpgw + process will wait for a BOOTP packet before exiting. + If no packets are recieved for + .I timeout +@@ -124,69 +129,76 @@ + variable that controls the amount of debugging messages generated. + For example, -d4 or -d 4 will set the debugging level to 4. + For compatibility with older versions of +-.IR bootpd , ++.BR bootpd , + omitting the numeric parameter (i.e. just -d) will + simply increment the debug level by one. + .TP + .BI \-c \ chdir\-path + Sets the current directory used by +-.I bootpd ++.B bootpd + while checking the existence and size of client boot files. This is + useful when client boot files are specified as relative pathnames, and +-.I bootpd ++.B bootpd + needs to use the same current directory as the TFTP server +-(typically /tftpboot). This option is not recoginzed by +-.IR bootpgw . ++(typically ++.IR /tftpboot ). ++This option is not recoginzed by ++.BR bootpgw . + .TP + .B \-i + Force inetd mode. This option is obsolete, but remains for + compatibility with older versions of +-.IR bootpd . ++.BR bootpd . + .TP + .B \-s + Force standalone mode. This option is obsolete, but remains for + compatibility with older versions of +-.IR bootpd . ++.BR bootpd . ++.TP ++.B \-v ++Print version and exit. + .TP + .I bootptab + Specifies the name of the configuration file from which + .I bootpd + loads its database of known clients and client options +-.RI ( bootpd +-only). ++.RB ( bootpd ++only). Default is ++.IR /etc/bootptab . + .TP + .I dumpfile + Specifies the name of the file that +-.I bootpd ++.B bootpd + will dump its internal database into when it receives a +-SIGUSR1 signal +-.RI ( bootpd ++.B SIGUSR1 ++signal ++.RB ( bootpd + only). This option is only recognized if +-.I bootpd ++.B bootpd + was compiled with the -DDEBUG flag. + .TP + .I server + Specifies the name of a BOOTP server to which +-.I bootpgw ++.B bootpgw + will forward all BOOTREQUEST packets it receives +-.RI ( bootpgw ++.RB ( bootpgw + only). + .SH OPERATION + .PP + Both +-.I bootpd ++.B bootpd + and +-.I bootpgw ++.B bootpgw + operate similarly in that both listen for any packets sent to the +-.I bootps ++.B bootps + port, and both simply forward any BOOTREPLY packets. + They differ in their handling of BOOTREQUEST packets. + .PP + When +-.I bootpgw ++.B bootpgw + is started, it determines the address of a BOOTP server + whose name is provided as a command line parameter. When +-.I bootpgw ++.B bootpgw + receives a BOOTREQUEST packet, it sets the "gateway address" + and "hop count" fields in the packet and forwards the packet + to the BOOTP server at the address determined earlier. +@@ -194,41 +206,43 @@ + the client has been waiting for at least three seconds. + .PP + When +-.I bootpd ++.B bootpd + is started it reads a configuration file, (normally + .IR /etc/bootptab ) + that initializes the internal database of known clients and client + options. This internal database is reloaded + from the configuration file when +-.I bootpd ++.B bootpd + receives a hangup signal (SIGHUP) or when it discovers that the +-configuration file has changed. ++configuration file has changed. Note that any changes to the configuration ++file should be atomic to avoid race conditions. + .PP + When +-.I bootpd ++.B bootpd + receives a BOOTREQUEST packet, it + .\" checks the modification time of the + .\" configuration file and reloads the database if necessary. Then it + looks for a database entry matching the client request. + If the client is known, +-.I bootpd ++.B bootpd + composes a BOOTREPLY packet using the database entry found above, + and sends the reply to the client (possibly using a gateway). + If the client is unknown, the request is discarded + (with a notice if debug > 0). + .PP + If +-.I bootpd +-is compiled with the -DDEBUG option, receipt of a SIGUSR1 signal causes +-it to dump its internal database to the file +-.I /etc/bootpd.dump ++.B bootpd ++is compiled with the -DDEBUG option, receipt of a ++.B SIGUSR1 ++signal causes it to dump its internal database to the file ++.I /tmp/bootpd.dump + or the dumpfile specified as a command line parameter. + .PP + During initialization, both programs + determine the UDP port numbers to be used by calling +-.I getservbyname ++.BR getservbyname (3) + (which nomally uses +-.IR /etc/services). ++.IR /etc/services ). + Two service names (and port numbers) are used: + .IP + bootps \- BOOTP Server listening port +@@ -240,21 +254,21 @@ + .I getservbyname + then the values default to boopts=67 and bootpc=68. + .SH FILES +-.TP 20 +-/etc/bootptab ++.TP ++.I /etc/bootptab + Database file read by +-.IR bootpd . ++.BR bootpd . + .TP +-/etc/bootpd.dump ++.I /tmp/bootpd.dump + Debugging dump file created by +-.IR bootpd . ++.BR bootpd . + .TP +-/etc/services ++.I /etc/services + Internet service numbers. + .TP +-/tftpboot ++.I /tftpboot + Current directory typically used by the TFTP server and +-.IR bootpd . ++.BR bootpd . + + .SH BUGS + Individual host entries must not exceed 1024 characters. +@@ -268,7 +282,7 @@ + Bill Croft at Stanford University in January 1986. + .PP + The current version of +-.I bootpd ++.B bootpd + is primarily the work of David Kovar, + Drew D. Perkins, and Walter L. Wimer, + at Carnegie Mellon University. +@@ -286,12 +300,20 @@ + .br + Jim McKim + .br ++Pauline Middelink ++.br ++Martin Schulze ++.br + Gordon W. Ross + .br + Jason Zions + .SH "SEE ALSO" + .LP +-bootptab(5), inetd(8), tftpd(8) ++.BR bootptab (5), ++.BR services (5), ++.BR inetd (8), ++.BR inetd.conf (5), ++.BR tftpd (8). + .LP + DARPA Internet Request For Comments: + .TP 10 +--- bootp-2.4.3.orig/bootpd.c ++++ bootp-2.4.3/bootpd.c +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -76,6 +77,23 @@ + # define bzero(p,l) memset(p,0,l) + # define bcmp(a,b,c) memcmp(a,b,c) + #endif ++#ifdef __linux__ ++/* Use sigaction to make signal last... */ ++inline void (*signal(int sig,void (*handler)(int)))(int) { ++#if !defined(__GLIBC__) ++ struct sigaction so,sa = {NULL,0,SA_NOMASK|SA_RESTART,NULL}; ++#else /* __GLIBC__ */ ++ struct sigaction so,sa; ++ so.sa_handler = NULL; ++ so.sa_flags = sa.sa_flags = SA_NOMASK|SA_RESTART; ++ sigemptyset(&so.sa_mask); ++ sigemptyset(&sa.sa_mask); ++#endif /* __GLIBC__ */ ++ sa.sa_handler = handler; ++ if (sigaction(sig,&sa,&so)<0) return NULL; ++ return so.sa_handler; ++} ++#endif + + #include "bootp.h" + #include "hash.h" +@@ -92,7 +110,7 @@ + #define CONFIG_FILE "/etc/bootptab" + #endif + #ifndef DUMPTAB_FILE +-#define DUMPTAB_FILE "/tmp/bootpd.dump" ++#define DUMPTAB_FILE "/var/run/bootpd.dump" + #endif + + +@@ -110,16 +128,26 @@ + extern void dumptab P((char *)); + + PRIVATE void catcher P((int)); +-PRIVATE int chk_access P((char *, int32 *)); ++PRIVATE int chk_access P((char *, int32_t *)); + #ifdef VEND_CMU + PRIVATE void dovend_cmu P((struct bootp *, struct host *)); + #endif +-PRIVATE void dovend_rfc1048 P((struct bootp *, struct host *, int32)); ++PRIVATE int dovend_rfc1048 P((struct bootp *, struct host *, int32_t)); + PRIVATE void handle_reply P((void)); + PRIVATE void handle_request P((void)); +-PRIVATE void sendreply P((int forward, int32 dest_override)); ++PRIVATE void sendreply P((int forward, int32_t dest_override)); + PRIVATE void usage P((void)); + ++#ifdef DHCP ++PRIVATE int dhcp_discover P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_request P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_decline P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_release P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_offer P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_ack P((struct bootp *, struct host *, byte *, int)); ++PRIVATE int dhcp_lease P((struct bootp *, struct host *, byte **)); ++#endif ++ + #undef P + + /* +@@ -159,7 +187,6 @@ + char *chdir_path; + struct in_addr my_ip_addr; + +-struct utsname my_uname; + char *hostname; + + /* Flags set by signal catcher. */ +@@ -180,7 +207,7 @@ + * main server loop is started. + */ + +-void ++int + main(argc, argv) + int argc; + char **argv; +@@ -189,9 +216,16 @@ + struct bootp *bp; + struct servent *servp; + struct hostent *hep; ++ struct utsname my_uname; + char *stmp; ++#if !defined(__GLIBC__) + int n, ba_len, ra_len; +- int nfound, readfds; ++#else /* __GLIBC__ */ ++ int n; ++ socklen_t ra_len, ba_len; ++#endif /* __GLIBC__ */ ++ int nfound; ++ fd_set readfds; + int standalone; + #ifdef SA_NOCLDSTOP /* Have POSIX sigaction(2). */ + struct sigaction sa; +@@ -343,7 +377,7 @@ + "%s: invalid timeout specification\n", progname); + break; + } +- actualtimeout.tv_sec = (int32) (60 * n); ++ actualtimeout.tv_sec = (int32_t) (60 * n); + /* + * If the actual timeout is zero, pass a NULL pointer + * to select so it blocks indefinitely, otherwise, +@@ -352,6 +386,14 @@ + timeout = (n > 0) ? &actualtimeout : NULL; + break; + ++ case 'v': ++#ifdef DHCP ++ printf("bootpd+dhcp %s.%d\n", VERSION, PATCHLEVEL); ++#else ++ printf("bootpd %s.%d\n", VERSION, PATCHLEVEL); ++#endif ++ exit (0); ++ + default: + fprintf(stderr, "%s: unknown switch: -%c\n", + progname, argv[0][1]); +@@ -380,6 +422,11 @@ + exit(1); + } + bcopy(hep->h_addr, (char *)&my_ip_addr, sizeof(my_ip_addr)); ++ hostname = strdup(hep->h_name); ++ if (!hostname) { ++ report(LOG_ERR, "strdup failed"); ++ exit(1); ++ } + + if (standalone) { + /* +@@ -477,6 +524,17 @@ + bootpc_port = (u_short) IPPORT_BOOTPC; + } + ++#ifdef DHCP ++ /* ++ * Maybe we have to broadcast, so enable it. ++ */ ++ n = 1; ++ if (setsockopt(s,SOL_SOCKET,SO_BROADCAST,&n,sizeof(n))<0) { ++ report(LOG_ERR, "setsockopt: %s\n", get_errmsg()); ++ exit(1); ++ } ++#endif ++ + /* + * Set up signals to read or dump the table. + */ +@@ -510,11 +568,12 @@ + for (;;) { + struct timeval tv; + +- readfds = 1 << s; ++ FD_ZERO(&readfds); ++ FD_SET(s, &readfds); + if (timeout) + tv = *timeout; + +- nfound = select(s + 1, (fd_set *)&readfds, NULL, NULL, ++ nfound = select(s + 1, &readfds, NULL, NULL, + (timeout) ? &tv : NULL); + if (nfound < 0) { + if (errno != EINTR) { +@@ -534,7 +593,7 @@ + } + continue; + } +- if (!(readfds & (1 << s))) { ++ if (!FD_ISSET(s, &readfds)) { + if (debug > 1) + report(LOG_INFO, "exiting after %ld minutes of inactivity", + actualtimeout.tv_sec / 60); +@@ -569,6 +628,8 @@ + break; + } + } ++ ++ return 0; + } + + +@@ -625,13 +686,15 @@ + struct bootp *bp = (struct bootp *) pktbuf; + struct host *hp = NULL; + struct host dummyhost; +- int32 bootsize = 0; ++ struct hostent *hep; ++ int32_t bootsize = 0; + unsigned hlen, hashcode; +- int32 dest; ++ int32_t dest; + char realpath[1024]; + char *clntpath; + char *homedir, *bootfile; + int n; ++ int lpos; + + /* XXX - SLIP init: Set bp_ciaddr = recv_addr here? */ + +@@ -641,7 +704,8 @@ + * If the server name field is null, throw in our name. + */ + if (strlen(bp->bp_sname)) { +- if (strcmp(bp->bp_sname, hostname)) { ++ hep = gethostbyname(bp->bp_sname); ++ if (!hep || strcmp(hep->h_name, hostname)) { + if (debug) + report(LOG_INFO, "\ + ignoring request for server %s from client at %s address %s", +@@ -654,6 +718,16 @@ + strcpy(bp->bp_sname, hostname); + } + ++ /* cevans - security as reported on Bugtraq! */ ++ if (bp->bp_htype >= hwinfocnt) { ++ if (debug) ++ report(LOG_INFO, ++ "Request with unknown network type %u", ++ bp->bp_htype); ++ return; ++ } ++ ++ + /* Convert the request into a reply. */ + bp->bp_op = BOOTREPLY; + if (bp->bp_ciaddr.s_addr == 0) { +@@ -668,7 +742,7 @@ + } + hlen = haddrlength(bp->bp_htype); + if (hlen != bp->bp_hlen) { +- report(LOG_NOTICE, "bad addr len from from %s address %s", ++ report(LOG_NOTICE, "bad addr len from %s address %s", + netname(bp->bp_htype), + haddrtoa(bp->bp_chaddr, hlen)); + } +@@ -701,7 +775,6 @@ + haddrtoa(bp->bp_chaddr, bp->bp_hlen)); + return; /* not found */ + } +- (bp->bp_yiaddr).s_addr = hp->iaddr.s_addr; + + } else { + +@@ -724,6 +797,7 @@ + return; + } + } ++ (bp->bp_yiaddr).s_addr = hp->iaddr.s_addr; + + if (debug) { + report(LOG_INFO, "found %s (%s)", inet_ntoa(hp->iaddr), +@@ -735,7 +809,7 @@ + * with a timestamp lower than the threshold. + */ + if (hp->flags.min_wait) { +- u_int32 t = (u_int32) ntohs(bp->bp_secs); ++ u_int32_t t = (u_int32_t) ntohs(bp->bp_secs); + if (t < hp->min_wait) { + if (debug > 1) + report(LOG_INFO, +@@ -759,11 +833,9 @@ + /* Run a program, passing the client name as a parameter. */ + if (hp->flags.exec_file) { + char tst[100]; +- /* XXX - Check string lengths? -gwr */ +- strcpy (tst, hp->exec_file->string); +- strcat (tst, " "); +- strcat (tst, hp->hostname->string); +- strcat (tst, " &"); ++ snprintf(tst, sizeof(tst), "%s %s &", ++ hp->exec_file->string, ++ hp->hostname->string); + if (debug) + report(LOG_INFO, "executing %s", tst); + system(tst); /* Hope this finishes soon... */ +@@ -829,13 +901,20 @@ + * The "real" path is as seen by the BOOTP daemon on this + * machine, while the client path is relative to the TFTP + * daemon chroot directory (i.e. /tftpboot). ++ * ++ * The bootfile might not be properly zero terminated. We ++ * need to play safe - AC + */ + if (hp->flags.tftpdir) { ++ lpos=strlen(hp->tftpdir->string); ++ if(lpos>=sizeof(realpath)-1) ++ return; + strcpy(realpath, hp->tftpdir->string); +- clntpath = &realpath[strlen(realpath)]; ++ clntpath = &realpath[lpos]; + } else { + realpath[0] = '\0'; + clntpath = realpath; ++ lpos=0; + } + + /* +@@ -876,12 +955,18 @@ + if (homedir) { + if (homedir[0] != '/') + strcat(clntpath, "/"); ++ lpos+=strlen(homedir); ++ if(lpos>=sizeof(realpath)) ++ return; + strcat(clntpath, homedir); + homedir = NULL; + } + if (bootfile) { + if (bootfile[0] != '/') + strcat(clntpath, "/"); ++ lpos+=strlen(bootfile); ++ if(lpos>=sizeof(realpath)) ++ return; + strcat(clntpath, bootfile); + bootfile = NULL; + } +@@ -890,8 +975,15 @@ + * First try to find the file with a ".host" suffix + */ + n = strlen(clntpath); +- strcat(clntpath, "."); +- strcat(clntpath, hp->hostname->string); ++ ++ /* ++ * Don't test if it wont fit. ++ */ ++ if(n+1+strlen(hp->hostname->string)hostname->string); ++ } + if (chk_access(realpath, &bootsize) < 0) { + clntpath[n] = 0; /* Try it without the suffix */ + if (chk_access(realpath, &bootsize) < 0) { +@@ -961,7 +1053,8 @@ + */ + if (!bcmp(bp->bp_vend, vm_rfc1048, 4)) { + /* RFC1048 conformant bootp client */ +- dovend_rfc1048(bp, hp, bootsize); ++ if (!dovend_rfc1048(bp, hp, bootsize)) ++ return; + if (debug > 1) { + report(LOG_INFO, "sending reply (with RFC1048 options)"); + } +@@ -1009,7 +1102,7 @@ + PRIVATE void + sendreply(forward, dst_override) + int forward; +- int32 dst_override; ++ int32_t dst_override; + { + struct bootp *bp = (struct bootp *) pktbuf; + struct in_addr dst; +@@ -1018,12 +1111,6 @@ + int len, haf; + + /* +- * XXX - Should honor bp_flags "broadcast" bit here. +- * Temporary workaround: use the :ra=ADDR: option to +- * set the reply address to the broadcast address. +- */ +- +- /* + * If the destination address was specified explicitly + * (i.e. the broadcast address for HP compatiblity) + * then send the response to that address. Otherwise, +@@ -1048,6 +1135,23 @@ + report(LOG_INFO, "sending reply to gateway %s", + inet_ntoa(dst)); + } ++ } else if (ntohs(bp->bp_flags) & 0x8000) { ++ struct ifreq *ifr; ++ ifr = getif(s, &bp->bp_yiaddr); ++ if (ifr) { ++ struct sockaddr_in *bip; ++ struct ifreq myreq; ++ strcpy( myreq.ifr_name, ifr->ifr_name ); ++ if (ioctl(s, SIOCGIFBRDADDR, &myreq) < 0) { ++ report(LOG_ERR, "ioctl SIOCGIFBRDADDR"); ++ dst.s_addr = INADDR_BROADCAST; ++ } else { ++ bip = (struct sockaddr_in *)&myreq.ifr_broadaddr; ++ dst = bip->sin_addr; ++ } ++ } else { ++ dst.s_addr = INADDR_BROADCAST; ++ } + } else { + dst = bp->bp_yiaddr; + ha = bp->bp_chaddr; +@@ -1125,12 +1229,12 @@ + PRIVATE int + chk_access(path, filesize) + char *path; +- int32 *filesize; ++ int32_t *filesize; + { + struct stat st; + + if ((stat(path, &st) == 0) && (st.st_mode & (S_IREAD >> 6))) { +- *filesize = (int32) st.st_size; ++ *filesize = (int32_t) st.st_size; + return 0; + } else { + return -1; +@@ -1220,16 +1324,20 @@ + if (bytesleft < (LEN)) { \ + report(LOG_NOTICE, noroom, \ + hp->hostname->string, MSG); \ +- return; \ ++ return 0; \ + } while (0) +-PRIVATE void ++PRIVATE int + dovend_rfc1048(bp, hp, bootsize) + struct bootp *bp; + struct host *hp; +- int32 bootsize; ++ int32_t bootsize; + { + int bytesleft, len; + byte *vp; ++#ifdef DHCP ++ int dhcp = 0; ++ int isme = TRUE; /* DHCP uses this for not-mine-requests */ ++#endif + + static char noroom[] = "%s: No room for \"%s\" option"; + +@@ -1280,7 +1388,25 @@ + case TAG_SUBNET_MASK: + /* XXX - Should preserve this if given... */ + break; +- } /* swtich */ ++#ifdef DHCP ++ case TAG_DHCP_MSG: ++ dhcp = *p; ++ break; ++ case TAG_DHCP_SERVERID: ++ { ++ struct in_addr tmp_addr; ++ isme = (len == 4) && ( ++ memcpy( ++ &tmp_addr, p, ++ sizeof(tmp_addr) ++ ), ++ my_ip_addr.s_addr == ++ tmp_addr.s_addr ++ ); ++ } ++ break; ++#endif ++ } /* switch */ + p += len; + } + +@@ -1347,16 +1473,44 @@ + vp += len; + *vp++ = TAG_END; + bytesleft -= len + 3; +- return; /* no more options here. */ ++ return 1; /* no more options here. */ + } ++ ++#ifdef DHCP + /* +- * The remaining options are inserted by the following +- * function (which is shared with bootpef.c). +- * Keep back one byte for the TAG_END. ++ * Check if this is a DHCP request. + */ +- len = dovend_rfc1497(hp, vp, bytesleft - 1); +- vp += len; +- bytesleft -= len; ++ if (dhcp!=0) { ++ if (!isme) ++ return 0; /* Not mine, discard! */ ++ ++ switch (dhcp) { ++ case 1 : len = dhcp_discover(bp,hp,vp,bytesleft); break; ++ case 3 : len = dhcp_request(bp,hp,vp,bytesleft); break; ++ case 4 : len = dhcp_decline(bp,hp,vp,bytesleft); break; ++ case 7 : len = dhcp_release(bp,hp,vp,bytesleft); break; ++ default : report(LOG_NOTICE,"Unknown DHCP request (%d)",dhcp); ++ return 0; ++ } ++ /* Is there a DHCP reply at all? */ ++ if (len==0) ++ return 0; ++ vp += len; ++ bytesleft -= len; ++ } ++ else { ++#endif ++ /* ++ * The remaining options are inserted by the following ++ * function (which is shared with bootpef.c). ++ * Keep back one byte for the TAG_END. ++ */ ++ len = dovend_rfc1497(hp, vp, bytesleft); ++ vp += len; ++ bytesleft -= len; ++#ifdef DHCP ++ } ++#endif + + /* There should be at least one byte left. */ + NEED(1, "(end)"); +@@ -1364,12 +1518,19 @@ + bytesleft--; + + /* Log message done by caller. */ ++ ++ /* Remove unnecessary bits. */ ++ pktlen -= bytesleft; ++ bytesleft = 64 - (vp - bp->bp_vend); + if (bytesleft > 0) { + /* + * Zero out any remaining part of the vendor area. + */ + bzero(vp, bytesleft); ++ pktlen += bytesleft; + } ++ ++ return 1; /* sent reply */ + } /* dovend_rfc1048 */ + #undef NEED + +@@ -1390,6 +1551,173 @@ + + /* get_errmsg() - now in report.c */ + ++ ++#ifdef DHCP ++ ++/* ++ * PeP hic facet ++ * Stuff the packet with the Lease info, We need to do this on the Offer and ++ * the ack so separated out here ++ */ ++PRIVATE ++int dhcp_lease(bp, hp, vp) ++ struct bootp *bp; ++ struct host *hp; ++ byte **vp; ++{ ++ *(*vp)++ = TAG_DHCP_IPRENEW; /* DHCP Renewal time 50% of lease */ ++ *(*vp)++ = 4; /* Length */ ++ insert_u_long(htonl(hp->dhcp_lease/2),vp); ++ ++ *(*vp)++ = TAG_DHCP_IPREBIND; /* DHCP Rebinding time 85% of lease */ ++ *(*vp)++ = 4; ++ insert_u_long(htonl(hp->dhcp_lease*7/8),vp); ++ ++ *(*vp)++ = TAG_DHCP_IPLEASE; /* IP address lease time */ ++ *(*vp)++ = 4; /* Length */ ++ insert_u_long(htonl(hp->dhcp_lease),vp); /* PeP hic facet, lets see if this works */ ++ ++ return(19); ++} ++ ++ ++/* ++ * Formulate an DHCP_DISCOVER reply ++ */ ++PRIVATE ++int dhcp_discover(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ if(debug) ++ report(LOG_INFO, "Received: DHCPDISCOVER"); ++ return(dhcp_offer(bp,hp,vp,bytesleft)); ++} ++ ++/* ++ * formulate an DHCP_RELEASE reply ++ */ ++PRIVATE ++int dhcp_release(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ if (debug) ++ report(LOG_INFO, "Received: DHCPRELEASE (discarded)"); ++ return 0; ++} ++ ++PRIVATE ++int dhcp_offer(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ int len=0; ++ if (debug) ++ report(LOG_INFO, "Sent: DHCPOFFER"); ++ ++ bp->bp_secs = bp->bp_hops = 0; ++ bp->bp_ciaddr.s_addr = 0; ++ ++ *vp++ = TAG_DHCP_MSG; /* DHCP */ ++ *vp++ = 1; /* length */ ++ *vp++ = 2; /* DHCPOFFER */ ++ len += 3; ++ ++ if (hp->dhcp_lease) ++ len += dhcp_lease(bp,hp,&vp); ++ ++ *vp++ = TAG_DHCP_SERVERID; ++ *vp++ = 4; ++ insert_u_long(my_ip_addr.s_addr,&vp); ++ len += 6; ++ ++ return len + dovend_rfc1497(hp, vp, bytesleft - len); ++} ++ ++/* ++ * Formulate an DHCP_REQUEST reply ++ */ ++PRIVATE ++int dhcp_request(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ bp->bp_secs = bp->bp_hops = 0; ++ ++ if(debug) ++ report(LOG_INFO,"Received: DHCPREQUEST"); ++ /* ++ * Make absolutely sure that if the client requests an address, ++ * it is its own address, and also make sure the hardware ++ * addresses match perfectly. We want to minimize spoofing! ++ */ ++ if ((bp->bp_ciaddr.s_addr && bp->bp_ciaddr.s_addr!=bp->bp_yiaddr.s_addr) || ++ bp->bp_htype != hp->htype || ++ bcmp(bp->bp_chaddr, hp->haddr, haddrlength(hp->htype))) { ++ if (debug) ++ report(LOG_INFO, "Sent: DHCPNAK"); ++ ++ *vp++ = TAG_DHCP_MSG; /* DHCPNAK */ ++ *vp++ = 1; ++ *vp++ = 6; ++ return 3; ++ } ++ else ++ return(dhcp_ack(bp,hp,vp,bytesleft)); ++} ++ ++PRIVATE ++int dhcp_ack(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ int len=0; ++ if (debug) ++ report(LOG_INFO, "Sent: DHCPACK"); ++ ++ *vp++ = TAG_DHCP_MSG; /* DHCPACK */ ++ *vp++ = 1; ++ *vp++ = 5; ++ len += 3; ++ ++ if (hp->dhcp_lease) ++ len += dhcp_lease(bp,hp,&vp); ++ ++ *vp++ = TAG_DHCP_SERVERID; /* Server id */ ++ *vp++ = 4; ++ insert_u_long(my_ip_addr.s_addr,&vp); ++ len += 6; ++ ++ return len + dovend_rfc1497(hp, vp, bytesleft - len); ++} ++ ++/* ++ * formulate an DHCP_DECLINE reply ++ */ ++PRIVATE ++int dhcp_decline(bp, hp, vp, bytesleft) ++ struct bootp *bp; ++ struct host *hp; ++ byte *vp; ++ int bytesleft; ++{ ++ if (debug) ++ report(LOG_INFO, "Received: DHCPDECLINE (ignored)"); ++ return 0; ++} ++#endif ++ + /* + * Local Variables: + * tab-width: 4 +--- bootp-2.4.3.orig/bootpd.h ++++ bootp-2.4.3/bootpd.h +@@ -25,6 +25,7 @@ + * bootpd.h -- common header file for all the modules of the bootpd program. + */ + ++#include + #include "bptypes.h" + #include "hash.h" + #include "hwaddr.h" +@@ -126,6 +127,9 @@ + exec_file :1, + msg_size :1, + min_wait :1, ++#ifdef DHCP ++ dhcp_lease :1, /* PeP hic facet */ ++#endif + /* XXX - Add new tags here */ + vm_cookie :1; + }; +@@ -180,10 +184,13 @@ + htype, /* RFC826 says this should be 16-bits but + RFC951 only allocates 1 byte. . . */ + haddr[MAXHADDRLEN]; +- int32 time_offset; +- unsigned int32 bootsize, ++ int32_t time_offset; ++ u_int32_t bootsize, + msg_size, + min_wait; ++#ifdef DHCP ++ u_int32_t dhcp_lease; /* PeP hic facet */ ++#endif + struct in_addr bootserver, + iaddr, + swap_server, +--- bootp-2.4.3.orig/bootpef.8 ++++ bootp-2.4.3/bootpef.8 +@@ -5,10 +5,13 @@ + .SH SYNOPSIS + .LP + .B bootpef +-.RI [ "-c chdir" ] +-.RI [ "-d debug-level" ] +-.RI [ "-f config-file" ] +-.RI [ client-name " [...]]" ++.RB [ " \-c" ++.IR chdir " ]" ++.RB [ " \-d" ++.IR debug-level " ]" ++.RB [ "-f" ++.IR config-file " ]" ++.RI "[ " client-name " [...]]" + .SH DESCRIPTION + .B bootpef + builds the +@@ -28,7 +31,8 @@ + extension file names are specified as relative pathnames, and + .I bootpef + needs to use the same current directory as the TFTP server +-(typically /tftpboot). ++(typically ++.IR /tftpboot ). + .TP + .BI \-d \ debug\-level + Sets the +@@ -40,7 +44,8 @@ + Set the name of the config file that specifies the option + data to be sent to each client. + .SH "SEE ALSO" +-bootpd(8), tftpd(8) ++.BR bootpd (8), ++.BR tftpd (8) + .SH REFERENCES + .TP + RFC951 +--- bootp-2.4.3.orig/bootpef.c ++++ bootp-2.4.3/bootpef.c +@@ -133,7 +133,7 @@ + * Initialization such as command-line processing is done and then the + * main server loop is started. + */ +-void ++int + main(argc, argv) + int argc; + char **argv; +@@ -269,6 +269,8 @@ + mktagfile(hp); + hp = (struct host *) hash_NextEntry(nmhashtable); + } ++ ++ return 0; + } + + +--- bootp-2.4.3.orig/bootpgw.c ++++ bootp-2.4.3/bootpgw.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -137,7 +138,7 @@ + int pktlen; + char *progname; + char *servername; +-int32 server_ipa; /* Real server IP address, network order. */ ++int32_t server_ipa; /* Real server IP address, network order. */ + + struct in_addr my_ip_addr; + +@@ -153,7 +154,7 @@ + * main server loop is started. + */ + +-void ++int + main(argc, argv) + int argc; + char **argv; +@@ -163,8 +164,14 @@ + struct servent *servp; + struct hostent *hep; + char *stmp; ++#if !defined(__GLIBC__) + int n, ba_len, ra_len; +- int nfound, readfds; ++#else /* __GLIBC__ */ ++ int n; ++ socklen_t ra_len, ba_len; ++#endif /* __GLIBC__ */ ++ int nfound; ++ fd_set readfds; + int standalone; + + progname = strrchr(argv[0], '/'); +@@ -305,7 +312,7 @@ + "%s: invalid timeout specification\n", progname); + break; + } +- actualtimeout.tv_sec = (int32) (60 * n); ++ actualtimeout.tv_sec = (int32_t) (60 * n); + /* + * If the actual timeout is zero, pass a NULL pointer + * to select so it blocks indefinitely, otherwise, +@@ -314,6 +321,10 @@ + timeout = (n > 0) ? &actualtimeout : NULL; + break; + ++ case 'v': ++ printf("bootpgw %s.%d\n", VERSION, PATCHLEVEL); ++ exit (0); ++ + case 'w': /* wait time */ + if (argv[0][2]) { + stmp = &(argv[0][2]); +@@ -450,11 +461,12 @@ + for (;;) { + struct timeval tv; + +- readfds = 1 << s; ++ FD_ZERO(&readfds); ++ FD_SET(s, &readfds); + if (timeout) + tv = *timeout; + +- nfound = select(s + 1, (fd_set *)&readfds, NULL, NULL, ++ nfound = select(s + 1, &readfds, NULL, NULL, + (timeout) ? &tv : NULL); + if (nfound < 0) { + if (errno != EINTR) { +@@ -462,7 +474,7 @@ + } + continue; + } +- if (!(readfds & (1 << s))) { ++ if (!FD_ISSET(s, &readfds)) { + report(LOG_INFO, "exiting after %ld minutes of inactivity", + actualtimeout.tv_sec / 60); + exit(0); +@@ -494,6 +506,8 @@ + break; + } + } ++ ++ return 0; + } + + +--- bootp-2.4.3.orig/bootptab.5 ++++ bootp-2.4.3/bootptab.5 +@@ -2,7 +2,9 @@ + .\" + .\" $Header: $ + .\" +-.TH BOOTPTAB 5 "October 31, 1991" "Carnegie Mellon University" ++.\" Mon Nov 12 19:23:27 1995 Martin Schulze ++.\" minor changes, made it linux man(7) conform ++.TH BOOTPTAB 5 "12 November 1995" "Version 2.4.3" "Carnegie Mellon University" + .UC 6 + + .SH NAME +@@ -11,28 +13,28 @@ + The + .I bootptab + file is the configuration database file for +-.IR bootpd , ++.BR bootpd , + the Internet Bootstrap Protocol server. + It's format is similar to that of +-.IR termcap (5) ++.BR termcap (5) + in which two-character case-sensitive tag symbols are used to + represent host parameters. These parameter declarations are separated by + colons (:), with a general format of: + .PP +-.I " hostname:tg=value. . . :tg=value. . . :tg=value. . . ." ++.I " hostname:tg=value... :tg=value... :tg=value. ..." + .PP + where + .I hostname + is the actual name of a bootp client (or a "dummy entry"), and +-.I tg ++.B tg + is a two-character tag symbol. Dummy entries have an invalid hostname + (one with a "." as the first character) and are used to provide + default values used by other entries via the +-.B tc=.dummy-entry ++.BI tc= .dummy-entry + mechanism. Most tags must be followed by an equals-sign + and a value as above. Some may also appear in a boolean form with no + value (i.e. +-.RI : tg :). ++.RB : tg :). + The currently recognized tags are: + .PP + .br +@@ -44,12 +46,16 @@ + .br + df Merit dump file + .br ++ dl DHCP lease time in seconds ++.br + dn Domain name + .br + ds Domain name server address list + .br + ef Extension file + .br ++ ex York ex option (huh?) ++.br + gw Gateway address list + .br + ha Host hardware address +@@ -68,6 +74,8 @@ + .br + lp LPR server address list + .br ++ ms Message size ++.br + ns IEN-116 name server address list + .br + nt NTP (time) Server (RFC 1129) +@@ -100,12 +108,12 @@ + + .PP + There is also a generic tag, +-.RI T n , ++.BI T n , + where + .I n + is an RFC1084 vendor field tag number. Thus it is possible to immediately + take advantage of future extensions to RFC1084 without being forced to modify +-.I bootpd ++.B bootpd + first. Generic data may be represented as either a stream of hexadecimal + numbers or as a quoted string of ASCII characters. The length of the generic + data is automatically determined and inserted into the proper field(s) of the +@@ -136,12 +144,13 @@ + and may use decimal, octal, or hexadecimal numbers + (octal numbers begin with 0, hexadecimal numbers begin with '0x' or '0X'). + Any IP addresses may alternatively be specified as a hostname, causing +-.I bootpd +-to lookup the IP address for that host name using gethostbyname(3). ++.B bootpd ++to lookup the IP address for that host name using ++.BR gethostbyname(3). + If the + .B ip + tag is not specified, +-.I bootpd ++.B bootpd + will determine the IP address using the entry name as the host name. + (Dummy entries use an invalid host name to avoid automatic IP lookup.) + .PP +@@ -184,8 +193,9 @@ + below). + If the hardware address is not specified and the type is specified + as either "ethernet" or "ieee802", then +-.I bootpd +-will try to determine the hardware address using ether_hton(3). ++.B bootpd ++will try to determine the hardware address using ++.BR ether_hton (3). + .PP + The hostname, home directory, and bootfile are ASCII strings which may be + optionally surrounded by double quotes ("). The client's request and the +@@ -205,34 +215,39 @@ + option is specified as well, its value is prepended to the + boot file copied into the reply packet. + The existence of the boot file is checked only if the +-.BR bs =auto ++.BI bs= auto + option is used (to determine the boot file size). + A reply may be sent whether or not the boot file exists. + .PP + Some newer versions of +-.I tftpd ++.BR tftpd (8) + provide a security feature to change their root directory using + the +-.IR chroot (2) ++.BR chroot (2) + system call. + The + .B td + tag may be used to inform +-.I bootpd ++.B bootpd + of this special root directory used by +-.IR tftpd . ++.BR tftpd . + (One may alternatively use the +-.I bootpd +-"-c chdir" option.) ++.B bootpd ++.B -c ++.I chdir ++option.) + The + .B hd + tag is actually relative to the root directory specified by the + .B td + tag. + For example, if the real absolute path to your BOOTP client bootfile is +-/tftpboot/bootfiles/bootimage, and +-.IR tftpd +-uses /tftpboot as its "secure" directory, then specify the following in ++.IR /tftpboot/bootfiles/bootimage , ++and ++.B tftpd ++uses ++.I /tftpboot ++as its "secure" directory, then specify the following in + .IR bootptab : + .PP + .br +@@ -247,9 +262,9 @@ + .B sa + tag may be used to specify the IP address of the particular TFTP server + you wish the client to use. In the absence of this tag, +-.I bootpd ++.B bootpd + will tell the client to perform TFTP to the same machine +-.I bootpd ++.B bootpd + is running on. + .PP + The time offset +@@ -292,8 +307,8 @@ + tag is strictly a boolean tag; it does not take the usual equals-sign and + value. It's presence indicates that the hostname should be sent to RFC1084 + clients. +-.I Bootpd +-attempts to send the entire hostname as it is specified in the configuration ++.B Bootpd ++attempts to send the entire hostname (including domain) as it is specified in the configuration + file; if this will not fit into the reply packet, the name is shortened to + just the host field (up to the first period, if present) and then tried. + In no case is an arbitrarily-truncated hostname sent (if nothing reasonable +@@ -308,9 +323,9 @@ + never sends bootp requests. This feature is similar to the + .B tc + feature of +-.IR termcap (5) ++.BR termcap (5) + for similar terminals. Note that +-.I bootpd ++.B bootpd + allows the + .B tc + tag symbol to appear anywhere in the host entry, unlike +@@ -332,7 +347,7 @@ + which removes the effect of + .I tag + as in +-.IR termcap (5). ++.BR termcap (5). + For example, to completely undo an IEN-116 name server specification, use + ":ns@:" at an appropriate place in the configuration entry. After removal + with +@@ -386,10 +401,12 @@ + + .fi + .SH FILES +-/etc/bootptab ++.TP ++.I /etc/bootptab ++The definition file + + .SH "SEE ALSO" +-.br +-bootpd(8), tftpd(8), ++.BR bootpd (8), ++.BR tftpd (8), + .br + DARPA Internet Request For Comments RFC951, RFC1048, RFC1084, Assigned Numbers +--- bootp-2.4.3.orig/bootptab.cmu ++++ bootp-2.4.3/bootptab.cmu +@@ -1,4 +1,4 @@ +-# /etc/bootptab: database for bootp server (/etc/bootpd) ++# /etc/bootptab: database for bootp server (/usr/sbin/bootpd) + # (I've hacked on this but can't test it... -gwr) + + # Blank lines and lines beginning with '#' are ignored. +@@ -33,6 +33,8 @@ + # to -- time offset (seconds) + # ts -- time servers + # vm -- vendor magic number ++# ys -- NIS server ++# yd -- NIS domain + # Tn -- generic option tag n + # + # Be careful about including backslashes where they're needed. Weird (bad) +--- bootp-2.4.3.orig/bootptab.mcs ++++ bootp-2.4.3/bootptab.mcs +@@ -1,4 +1,4 @@ +-# /etc/bootptab: database for bootp server (/etc/bootpd) ++# /etc/bootptab: database for bootp server (/usr/sbin/bootpd) + # Last update: gwr, Sun Dec 12 19:00:00 EDT 1993 + # Blank lines and lines beginning with '#' are ignored. + # +@@ -32,6 +32,8 @@ + # to -- time offset (seconds) + # ts -- time servers + # vm -- vendor magic number ++# ys -- NIS server ++# yd -- NIS domain + # Tn -- generic option tag n + # + # Be careful about including backslashes where they're needed. Weird (bad) +--- bootp-2.4.3.orig/bootptest.c ++++ bootp-2.4.3/bootptest.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -50,6 +51,9 @@ + #include + #endif + ++#ifndef NO_UNISTD ++#include ++#endif + #include + #include + #include +@@ -68,6 +72,9 @@ + + static void send_request(); + ++extern int getether(); ++static void send_request(); ++ + #define LOG_ERR 1 + #define BUFLEN 1024 + #define WAITSECS 1 +@@ -125,7 +132,7 @@ + * the receiver loop is started. Die when interrupted. + */ + +-void ++int + main(argc, argv) + int argc; + char **argv; +@@ -137,12 +144,17 @@ + char *servername = NULL; + char *vendor_file = NULL; + char *bp_file = NULL; +- int32 server_addr; /* inet addr, network order */ ++ int32_t server_addr; /* inet addr, network order */ + int s; /* Socket file descriptor */ ++#if !defined(__GLIBC__) + int n, fromlen, recvcnt; ++#else /* __GLIBC__ */ ++ int n, recvcnt; ++ socklen_t fromlen; ++#endif /* __GLIBC__ */ + int use_hwa = 0; +- int32 vend_magic; +- int32 xid; ++ int32_t vend_magic; ++ int32_t xid; + + progname = strrchr(argv[0], '/'); + if (progname) +@@ -304,8 +316,8 @@ + bp = (struct bootp *) sndbuf; + bzero(bp, sizeof(*bp)); + bp->bp_op = BOOTREQUEST; +- xid = (int32) getpid(); +- bp->bp_xid = (u_int32) htonl(xid); ++ xid = (int32_t) getpid(); ++ bp->bp_xid = (u_int32_t) htonl(xid); + if (bp_file) + strncpy(bp->bp_file, bp_file, BP_FILE_LEN); + +@@ -384,12 +396,13 @@ + send_request(s); + while (1) { + struct timeval tv; +- int readfds; ++ fd_set readfds; + + tv.tv_sec = WAITSECS; + tv.tv_usec = 0L; +- readfds = (1 << s); +- n = select(s + 1, (fd_set *) & readfds, NULL, NULL, &tv); ++ FD_ZERO(&readfds); ++ FD_SET(s, &readfds); ++ n = select(s + 1, &readfds, NULL, NULL, &tv); + if (n < 0) { + perror("select"); + break; +@@ -436,7 +449,7 @@ + */ + } + fprintf(stderr, "no response from %s\n", servername); +- exit(1); ++ return 1; + } + + static void +--- bootp-2.4.3.orig/bptypes.h ++++ bootp-2.4.3/bptypes.h +@@ -4,15 +4,6 @@ + #define BPTYPES_H + + /* +- * 32 bit integers are different types on various architectures +- */ +- +-#ifndef int32 +-#define int32 long +-#endif +-typedef unsigned int32 u_int32; +- +-/* + * Nice typedefs. . . + */ + +--- bootp-2.4.3.orig/dovend.c ++++ bootp-2.4.3/dovend.c +@@ -57,11 +57,11 @@ + int bytesleft = len; + byte *vp = buf; + +- static char noroom[] = "%s: No room for \"%s\" option"; ++ static char noroom[] = "%s: No room for \"%s\" option (%d bytes remaining, %d needed)"; + #define NEED(LEN, MSG) do \ + if (bytesleft < (LEN)) { \ + report(LOG_NOTICE, noroom, \ +- hp->hostname->string, MSG); \ ++ hp->hostname->string, MSG, bytesleft, LEN); \ + return (vp - buf); \ + } while (0) + +@@ -159,7 +159,7 @@ + * TAG_NIS_DOMAIN and length. + */ + len = strlen(hp->nis_domain->string); +- NEED((len + 2), "dn"); ++ NEED((len + 2), "yd"); + *vp++ = TAG_NIS_DOMAIN; + *vp++ = (byte) (len & 0xFF); + bcopy(hp->nis_domain->string, vp, len); +@@ -185,13 +185,17 @@ + hp->time_server, + &vp, &bytesleft)) + NEED(8, "ts"); ++#ifdef DEBUG ++ if (debug) ++ report(LOG_INFO, "dovend.c(dovend_rfc1497): bytesleft after ts: %d", bytesleft); ++#endif + } + /* NTP (time) Server (RFC 1129) */ + if (hp->flags.ntp_server) { + if (insert_ip(TAG_NTP_SERVER, + hp->ntp_server, + &vp, &bytesleft)) +- NEED(8, "ts"); ++ NEED(8, "nt"); + } + /* + * I wonder: If the hostname were "promoted" into the BOOTP +@@ -384,7 +388,7 @@ + + void + insert_u_long(value, dest) +- u_int32 value; ++ u_int32_t value; + byte **dest; + { + byte *temp; +--- bootp-2.4.3.orig/dovend.h ++++ bootp-2.4.3/dovend.h +@@ -1,5 +1,7 @@ + /* dovend.h */ + ++#include ++ + #ifdef __STDC__ + #define P(args) args + #else +@@ -8,6 +10,6 @@ + + extern int dovend_rfc1497 P((struct host *hp, u_char *buf, int len)); + extern int insert_ip P((int, struct in_addr_list *, u_char **, int *)); +-extern void insert_u_long P((u_int32, u_char **)); ++extern void insert_u_long P((u_int32_t, u_char **)); + + #undef P +--- bootp-2.4.3.orig/dumptab.c ++++ bootp-2.4.3/dumptab.c +@@ -10,6 +10,8 @@ + #include + #include + #include ++#include ++#include + + #ifndef USE_BFUNCS + #include +@@ -56,7 +58,7 @@ + dumptab(filename) + char *filename; + { +- int n; ++ int n, fd; + struct host *hp; + FILE *fp; + long t; +@@ -103,7 +105,8 @@ + /* + * Open bootpd.dump file. + */ +- if ((fp = fopen(filename, "w")) == NULL) { ++ fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0600); ++ if (fd < 0 || (fp = fdopen(fd, "w")) == NULL) { + report(LOG_ERR, "error opening \"%s\": %s", + filename, get_errmsg()); + exit(1); +@@ -150,7 +153,7 @@ + if (hp->flags.bootsize_auto) { + fprintf(fp, "auto:"); + } else { +- fprintf(fp, "%d:", hp->bootsize); ++ fprintf(fp, "%lu:", (unsigned long) hp->bootsize); + } + } + if (hp->flags.cookie_server) { +@@ -218,10 +221,10 @@ + fprintf(fp, ":"); + } + if (hp->flags.msg_size) { +- fprintf(fp, "\\\n\t:ms=%d:", hp->msg_size); ++ fprintf(fp, "\\\n\t:ms=%lu:", (unsigned long) hp->msg_size); + } + if (hp->flags.min_wait) { +- fprintf(fp, "\\\n\t:mw=%d:", hp->min_wait); ++ fprintf(fp, "\\\n\t:mw=%lu:", (unsigned long) hp->min_wait); + } + if (hp->flags.name_server) { + fprintf(fp, "\\\n\t:ns="); +@@ -260,7 +263,7 @@ + /* NetBSD: domainname (see above) */ + /* NetBSD: dumpfile (see above) */ + if (hp->flags.time_offset) { +- fprintf(fp, "\\\n\t:to=%ld:", hp->time_offset); ++ fprintf(fp, "\\\n\t:to=%ld:", (long) hp->time_offset); + } + if (hp->flags.time_server) { + fprintf(fp, "\\\n\t:ts="); +--- bootp-2.4.3.orig/getether.c ++++ bootp-2.4.3/getether.c +@@ -329,7 +329,9 @@ + #include + #include + #include /* struct ifreq */ ++#if !defined(__GLIBC__) + #include /* Needed for IOCTL defs */ ++#endif + + int + getether(ifname, eap) +--- bootp-2.4.3.orig/hwaddr.c ++++ bootp-2.4.3/hwaddr.c +@@ -48,7 +48,6 @@ + #define ATF_INUSE 0 + #endif + +-#include "bptypes.h" + #include "hwaddr.h" + #include "report.h" + +--- bootp-2.4.3.orig/lookup.c ++++ bootp-2.4.3/lookup.c +@@ -12,9 +12,13 @@ + #include + + #ifdef ETC_ETHERS ++#ifdef __GLIBC__ ++#include ++#else + #include + extern int ether_hostton(); + #endif ++#endif + + #include + #include +@@ -72,7 +76,7 @@ + int + lookup_ipa(hostname, result) + char *hostname; +- u_int32 *result; ++ u_int32_t *result; + { + struct hostent *hp; + hp = gethostbyname(hostname); +@@ -93,10 +97,10 @@ + */ + int + lookup_netmask(addr, result) +- u_int32 addr; /* both in network order */ +- u_int32 *result; ++ u_int32_t addr; /* both in network order */ ++ u_int32_t *result; + { +- int32 m, a; ++ int32_t m, a; + + a = ntohl(addr); + m = 0; +--- bootp-2.4.3.orig/lookup.h ++++ bootp-2.4.3/lookup.h +@@ -1,6 +1,6 @@ + /* lookup.h */ + +-#include "bptypes.h" /* for int32, u_int32 */ ++#include + + #ifdef __STDC__ + #define P(args) args +@@ -9,7 +9,7 @@ + #endif + + extern u_char *lookup_hwa P((char *hostname, int htype)); +-extern int lookup_ipa P((char *hostname, u_int32 *addr)); +-extern int lookup_netmask P((u_int32 addr, u_int32 *mask)); ++extern int lookup_ipa P((char *hostname, u_int32_t *addr)); ++extern int lookup_netmask P((u_int32_t addr, u_int32_t *mask)); + + #undef P +--- bootp-2.4.3.orig/print-bootp.c ++++ bootp-2.4.3/print-bootp.c +@@ -120,7 +120,7 @@ + printf(" hops:%d", bp->bp_hops); + + if (bp->bp_xid) +- printf(" xid:%d", ntohl(bp->bp_xid)); ++ printf(" xid:%lu", (unsigned long) ntohl(bp->bp_xid)); + + if (bp->bp_secs) + printf(" secs:%d", ntohs(bp->bp_secs)); +@@ -172,9 +172,9 @@ + + TCHECK(bp->bp_vend[0], vdlen); + printf(" vend"); +- if (!bcmp(bp->bp_vend, vm_rfc1048, sizeof(u_int32))) ++ if (!bcmp(bp->bp_vend, vm_rfc1048, sizeof(u_int32_t))) + rfc1048_print(bp->bp_vend, vdlen); +- else if (!bcmp(bp->bp_vend, vm_cmu, sizeof(u_int32))) ++ else if (!bcmp(bp->bp_vend, vm_cmu, sizeof(u_int32_t))) + cmu_print(bp->bp_vend, vdlen); + else + other_print(bp->bp_vend, vdlen); +@@ -194,7 +194,7 @@ + * a: ASCII + * b: byte (8-bit) + * i: inet address +- * l: int32 ++ * l: int32_t + * s: short (16-bit) + */ + char * +@@ -268,7 +268,14 @@ + "iXW-FS", /* 48: X Window System Font Servers */ + "iXW-DM", /* 49: X Window System Display Managers */ + +- /* DHCP extensions (RFC-1533, sect. 9) */ ++#ifdef DHCP ++ /* DHCP extensions (RFC-1533, sect. 9) PeP hic facet */ ++ "iDHCPreq", /* 50: DHCP requested IP address */ ++ "lDHCPlease", /* 51: DHCP lease time */ ++ "bDHCPooptol", /* 52: DHCP option overload */ ++ "bDHCPtype", /* 53: DHCP message type */ ++ "iDHCPSid", /* 54: DHCP server ID */ ++#endif + #endif + }; + #define KNOWN_OPTIONS (sizeof(rfc1048_opts) / sizeof(rfc1048_opts[0])) +@@ -281,7 +288,7 @@ + u_char tag; + u_char *ep; + register int len; +- u_int32 ul; ++ u_int32_t ul; + u_short us; + struct in_addr ia; + char *optstr; +@@ -289,7 +296,7 @@ + printf("-rfc1395"); + + /* Step over magic cookie */ +- bp += sizeof(int32); ++ bp += sizeof(int32_t); + /* Setup end pointer */ + ep = bp + length; + while (bp < ep) { +@@ -310,7 +317,7 @@ + len = *bp++; + if (bp + len > ep) { + /* truncated option */ +- printf(" |(%d>%d)", len, ep - bp); ++ printf(" |(%d>%ld)", len, (long) (ep - bp)); + return; + } + /* Print the option value(s). */ +@@ -336,7 +343,7 @@ + case 'l': /* Long words */ + while (len >= 4) { + bcopy((char *) bp, (char *) &ul, 4); +- printf("%d", ntohl(ul)); ++ printf("%lu", (unsigned long) ntohl(ul)); + bp += 4; + len -= 4; + if (len) printf(","); +--- bootp-2.4.3.orig/readfile.c ++++ bootp-2.4.3/readfile.c +@@ -33,7 +33,7 @@ + #include + #include + #include +-#include ++#include + #include + + #include +@@ -113,6 +113,11 @@ + #define SYM_EXEC_FILE 33 /* YORK_EX_OPTION */ + #define SYM_MSG_SIZE 34 + #define SYM_MIN_WAIT 35 ++#ifdef DHCP ++#define SYM_DHCP_LEASE 36 /* RFC 1533 PeP hic facet */ ++#define SYM_DHCP_IPRENEW 37 ++#define SYM_DHCP_IPREBIND 38 ++#endif + /* XXX - Add new tags here */ + + #define OP_ADDITION 1 /* Operations on tags */ +@@ -144,7 +149,7 @@ + + PRIVATE int nhosts; /* Number of hosts (/w hw or IP address) */ + PRIVATE int nentries; /* Total number of entries */ +-PRIVATE int32 modtime = 0; /* Last modification time of bootptab */ ++PRIVATE int32_t modtime = 0; /* Last modification time of bootptab */ + PRIVATE char *current_hostname; /* Name of the current entry. */ + PRIVATE char current_tagname[8]; + +@@ -161,6 +166,9 @@ + {"df", SYM_DUMP_FILE}, + {"dn", SYM_DOMAIN_NAME}, + {"ds", SYM_DOMAIN_SERVER}, ++#ifdef DHCP ++ {"dl", SYM_DHCP_LEASE}, /* PeP hic facet */ ++#endif + {"ef", SYM_EXTEN_FILE}, + {"ex", SYM_EXEC_FILE}, /* YORK_EX_OPTION */ + {"gw", SYM_GATEWAY}, +@@ -255,7 +263,7 @@ + get_shared_string P((char **)); + PRIVATE char * + get_string P((char **, char *, u_int *)); +-PRIVATE u_int32 ++PRIVATE u_int32_t + get_u_long P((char **)); + PRIVATE boolean + goodname P((char *)); +@@ -274,7 +282,7 @@ + PRIVATE byte * + prs_haddr P((char **, u_int)); + PRIVATE int +- prs_inetaddr P((char **, u_int32 *)); ++ prs_inetaddr P((char **, u_int32_t *)); + PRIVATE void + read_entry P((FILE *, char *, u_int *)); + PRIVATE char * +@@ -410,7 +418,7 @@ + */ + if (goodname(hp->hostname->string)) { + char *hn = hp->hostname->string; +- u_int32 value; ++ u_int32_t value; + if (hp->flags.iaddr == 0) { + if (lookup_ipa(hn, &value)) { + report(LOG_ERR, "can not get IP addr for %s", hn); +@@ -792,8 +800,8 @@ + char tmpstr[MAXSTRINGLEN]; + byte *tmphaddr; + struct symbolmap *symbolptr; +- u_int32 value; +- int32 timeoff; ++ u_int32_t value; ++ int32_t timeoff; + int i, numsymbols; + unsigned len; + int optype; /* Indicates boolean, addition, or deletion */ +@@ -1125,7 +1133,16 @@ + PARSE_UINT(min_wait); + break; + +- /* XXX - Add new tags here */ ++#ifdef DHCP ++ /* PeP hic facet. */ ++ case SYM_DHCP_LEASE: ++ PARSE_UINT(dhcp_lease); ++ break; ++ ++ /* XXX - Add new DHCP tags here */ ++#endif ++ ++ /* XXX - Add new tags here */ + + default: + return E_UNKNOWN_SYMBOL; +@@ -1506,6 +1523,9 @@ + DUP_COPY(min_wait); + + /* XXX - Add new tags here */ ++#ifdef DHCP ++ DUP_COPY(dhcp_lease); /* PeP hic facet */ ++#endif + + DUP_LINK(generic); + +@@ -1623,7 +1643,7 @@ + if (!**src) { /* Quit if nothing more */ + break; + } +- if (prs_inetaddr(src, &(address1->s_addr)) < 0) { ++ if (prs_inetaddr(src, (u_int32_t *) &(address1->s_addr)) < 0) { + break; + } + address1++; /* Point to next address slot */ +@@ -1666,11 +1686,11 @@ + PRIVATE int + prs_inetaddr(src, result) + char **src; +- u_int32 *result; ++ u_int32_t *result; + { + char tmpstr[MAXSTRINGLEN]; +- register u_int32 value; +- u_int32 parts[4], *pp; ++ register u_int32_t value; ++ u_int32_t parts[4], *pp; + int n; + char *s, *t; + +@@ -1850,11 +1870,11 @@ + * point to the first illegal character. + */ + +-PRIVATE u_int32 ++PRIVATE u_int32_t + get_u_long(src) + char **src; + { +- register u_int32 value, base; ++ register u_int32_t value, base; + char c; + + /* +--- bootp-2.4.3.orig/report.c ++++ bootp-2.4.3/report.c +@@ -10,6 +10,8 @@ + + #include + #include ++#include ++#include + + #include "report.h" + +@@ -101,7 +103,7 @@ + #endif + { + va_list ap; +- static char buf[128]; ++ static char buf[256]; + + if ((priority < 0) || (priority >= numlevels)) { + priority = numlevels - 1; +@@ -111,7 +113,7 @@ + #else + va_start(ap); + #endif +- vsprintf(buf, fmt, ap); ++ vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + + /* +@@ -135,9 +137,6 @@ + char * + get_errmsg() + { +- extern int errno; +- extern char *strerror(); +- + return strerror(errno); + } + +--- bootp-2.4.3.orig/tzone.c ++++ bootp-2.4.3/tzone.c +@@ -13,13 +13,13 @@ + # include + # include + #endif /* SVR4 */ ++#include + +-#include "bptypes.h" + #include "report.h" + #include "tzone.h" + + /* This is what other modules use. */ +-int32 secondswest; ++int32_t secondswest; + + /* + * Get our timezone offset so we can give it to clients if the +--- bootp-2.4.3.orig/tzone.h ++++ bootp-2.4.3/tzone.h +@@ -1,3 +1,3 @@ + /* tzone.h */ +-extern int32 secondswest; ++extern int32_t secondswest; + extern void tzone_init(); +--- bootp-2.4.3.orig/debian/substvars ++++ bootp-2.4.3/debian/substvars +@@ -0,0 +1 @@ ++shlibs:Depends=libc6 (>= 2.3.5-1) +--- bootp-2.4.3.orig/debian/README.Debian ++++ bootp-2.4.3/debian/README.Debian +@@ -0,0 +1,8 @@ ++bootp for Debian ++---------------- ++ ++bootp is no longer maintained actively upstream. It is recommended for you to ++use the dhcp package if at all possible. ++ ++Herbert ++$Id: README.Debian,v 1.1 1999/02/06 07:11:19 herbert Exp $ +--- bootp-2.4.3.orig/debian/bootpgw.8 ++++ bootp-2.4.3/debian/bootpgw.8 +@@ -0,0 +1 @@ ++.so man8/bootpd.8 +--- bootp-2.4.3.orig/debian/control ++++ bootp-2.4.3/debian/control +@@ -0,0 +1,18 @@ ++Source: bootp ++Section: net ++Priority: extra ++Maintainer: Anibal Monsalve Salazar ++Standards-Version: 3.6.2 ++Build-Depends: debhelper (>= 4) ++ ++Package: bootp ++Architecture: any ++Depends: ${shlibs:Depends}, netbase ++Description: server for the bootp protocol with DHCP support ++ This is a server for the bootp protocol; which allows network administrator ++ to setup networking information for clients via an /etc/bootptab on a server ++ so that the clients can automatically get their networking information. While ++ this server includes rudimentary DHCP support as well, we suggest using the ++ dhcp package if you need DHCP support, as it is much more complete. ++ . ++ Homepage: ftp://ftp.ntplx.net/pub/networking/bootp/ +--- bootp-2.4.3.orig/debian/bootptab ++++ bootp-2.4.3/debian/bootptab +@@ -0,0 +1,40 @@ ++# /etc/bootptab: database for bootp server (/usr/sbin/bootpd) ++ ++# Blank lines and lines beginning with '#' are ignored. ++# ++# Legend: (see bootptab.5) ++# first field -- hostname (not indented) ++# bf -- bootfile ++# bs -- bootfile size in 512-octet blocks ++# cs -- cookie servers ++# df -- dump file name ++# dn -- domain name ++# ds -- domain name servers ++# ef -- extension file ++# gw -- gateways ++# ha -- hardware address ++# hd -- home directory for bootfiles ++# hn -- host name set for client ++# ht -- hardware type ++# im -- impress servers ++# ip -- host IP address ++# lg -- log servers ++# lp -- LPR servers ++# ns -- IEN-116 name servers ++# ra -- reply address ++# rl -- resource location protocol servers ++# rp -- root path ++# sa -- boot server address ++# sm -- subnet mask ++# sw -- swap server ++# tc -- template host (points to similar host entry) ++# td -- TFTP directory ++# to -- time offset (seconds) ++# ts -- time servers ++# vm -- vendor magic number ++# Tn -- generic option tag n ++# ++# Be careful about including backslashes where they're needed. Weird (bad) ++# things can happen when a backslash is omitted where one is intended. ++# Also, note that generic option data must be either a string or a ++# sequence of bytes where each byte is a two-digit hex value. +--- bootp-2.4.3.orig/debian/rules ++++ bootp-2.4.3/debian/rules +@@ -0,0 +1,59 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++# Copyright (C) 2004-2005 Anibal Monsalve Salazar ++ ++# Uncomment this to turn on verbose mode. ++export DH_VERBOSE=1 ++export DH_COMPAT=4 ++ ++build: ++ dh_testdir ++ ++ $(MAKE) SYSDEFS=-DETC_ETHERS ++ ++clean: ++ dh_testdir ++ dh_testroot ++ ++ -$(MAKE) clean ++ ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/tmp. ++ $(MAKE) BASEDIR=`pwd`/debian/bootp install ++ cp debian/bootptab debian/bootp/etc ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++ dh_installcron ++ dh_installmanpages ++ dh_installchangelogs Changes ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- bootp-2.4.3.orig/debian/changelog ++++ bootp-2.4.3/debian/changelog +@@ -0,0 +1,112 @@ ++bootp (2.4.3-15) unstable; urgency=low ++ ++ * Fixed "it says it does DHCPOFFER, but doesn't", closes: #282915. ++ Patch thanks to Petr Olivka . ++ * Set DH_COMPAT to 4. ++ * Added watch file. ++ ++ -- Anibal Monsalve Salazar Sat, 18 Feb 2006 09:12:21 +1100 ++ ++bootp (2.4.3-14) unstable; urgency=low ++ ++ * Set Standards-Version to 3.6.2 and added homepage to description. ++ * Fixed lintian warning "maintainer-script-needs-depends-on-netbase ++ {postinst,prerm,postrm}". ++ * Fixed lintian warning "package-uses-deprecated-debhelper-compat- ++ version 1". ++ * Fixed lintian error "duplicate-conffile /etc/bootptab". ++ * Fixed linda error "DH_COMPAT is greater than the major version ++ of debhelper depended on". ++ ++ -- Anibal Monsalve Salazar Thu, 24 Nov 2005 18:58:37 +1100 ++ ++bootp (2.4.3-13) unstable; urgency=low ++ ++ * New maintainer's email address. ++ ++ -- Anibal Monsalve Salazar Sun, 06 Feb 2005 21:56:46 +1100 ++ ++bootp (2.4.3-12) unstable; urgency=low ++ ++ * New maintainer. ++ ++ -- Anibal Monsalve Salazar Thu, 20 May 2004 08:57:34 +1000 ++ ++bootp (2.4.3-11) unstable; urgency=low ++ ++ * Removed build-stamp/install-stamp. ++ * Included errnor.h/string.h in report.c (closes: #219123). ++ * Use fd_set instead int for select. ++ * Removed reference to netstd. ++ ++ -- Herbert Xu Wed, 5 Nov 2003 19:52:40 +1100 ++ ++bootp (2.4.3-10) unstable; urgency=low ++ ++ * Ensure that vendor area is at least 64 bytes long (closes: #189256). ++ ++ -- Herbert Xu Wed, 16 Apr 2003 20:23:53 +1000 ++ ++bootp (2.4.3-9) unstable; urgency=low ++ ++ * Documented ms tag in manual page. ++ * Eliminated baroque padding in response packets (closes: #184300). ++ ++ -- Herbert Xu Fri, 28 Mar 2003 19:26:06 +1100 ++ ++bootp (2.4.3-8) unstable; urgency=low ++ ++ * Added note about modifying configuration files (closes: #136057). ++ ++ -- Herbert Xu Sun, 7 Apr 2002 18:12:41 +1000 ++ ++bootp (2.4.3-7) unstable; urgency=low ++ ++ * Compile with ETC_ETHERS (closes: #112223). ++ ++ -- Herbert Xu Sun, 16 Sep 2001 15:47:28 +1000 ++ ++bootp (2.4.3-6) unstable; urgency=low ++ ++ * Make directed broadcasts if possible (closes: #108691). ++ ++ -- Herbert Xu Thu, 30 Aug 2001 21:15:43 +1000 ++ ++bootp (2.4.3-5) unstable; urgency=low ++ ++ * Fixed typo in bootpd (closes: #83618). ++ * Added build-time dependencies (closes: #70171). ++ * Compile with -g and without -fomit-frame-pointer -pipe. Omitting the ++ frame pointer makes the code 10% larger. ++ * Fixed the unaligned access properly. ++ ++ -- Herbert Xu Fri, 27 Apr 2001 22:35:58 +1000 ++ ++bootp (2.4.3-4) unstable; urgency=low ++ ++ * Fixed unaligned trap on Alpha (David Huggins-Daines, closes #64552). ++ ++ -- Herbert Xu Wed, 24 May 2000 11:41:50 +1000 ++ ++bootp (2.4.3-3) frozen unstable; urgency=low ++ ++ * Use int32_t/u_int32_t instead of locally defined int32/u_int32 which ++ always turns out to be long. This is needed for bootpd to work on 64 bit ++ platforms like the Alpha. ++ * Made compliant with policy 3.1.1. ++ ++ -- Herbert Xu Sat, 22 Apr 2000 19:41:18 +1000 ++ ++bootp (2.4.3-2) unstable; urgency=low ++ ++ * Better hostname comparison (fixes #37543). ++ * Dump file is now in /var/run. ++ ++ -- Herbert Xu Tue, 7 Sep 1999 23:19:34 +1000 ++ ++bootp (2.4.3-1) unstable; urgency=low ++ ++ * Split from netstd. ++ ++ -- Herbert Xu Mon, 15 Mar 1999 12:18:40 +1100 ++ +--- bootp-2.4.3.orig/debian/copyright ++++ bootp-2.4.3/debian/copyright +@@ -0,0 +1,34 @@ ++This package was split from netstd by Herbert Xu herbert@debian.org on ++Sat, 6 Feb 1999 18:07:27 +1100. ++ ++It is maintained by Anibal Monsalve Salazar . ++ ++netstd was created by Peter Tobias tobias@et-inf.fho-emden.de on ++Wed, 20 Jul 1994 17:23:21 +0200. ++ ++It was downloaded from ftp://ftp.ntplx.net/pub/networking/bootp/. ++ ++Copyright: ++ ++/************************************************************************ ++ Copyright 1988, 1991 by Carnegie Mellon University ++ ++ All Rights Reserved ++ ++Permission to use, copy, modify, and distribute this software and its ++documentation for any purpose and without fee is hereby granted, provided ++that the above copyright notice appear in all copies and that both that ++copyright notice and this permission notice appear in supporting ++documentation, and that the name of Carnegie Mellon University not be used ++in advertising or publicity pertaining to distribution of the software ++without specific, written prior permission. ++ ++CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS ++SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. ++IN NO EVENT SHALL CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL ++DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++SOFTWARE. ++************************************************************************/ ++ +--- bootp-2.4.3.orig/debian/watch ++++ bootp-2.4.3/debian/watch +@@ -0,0 +1,2 @@ ++version=2 ++ftp://ftp.ntplx.net/pub/networking/bootp/bootp-([0-9.]+).tar.gz +--- bootp-2.4.3.orig/debian/dirs ++++ bootp-2.4.3/debian/dirs +@@ -0,0 +1,2 @@ ++etc ++usr/sbin +--- bootp-2.4.3.orig/debian/docs ++++ bootp-2.4.3/debian/docs +@@ -0,0 +1,5 @@ ++Announce ++Announce.old ++Problems ++README ++ToDo +--- bootp-2.4.3.orig/debian/examples ++++ bootp-2.4.3/debian/examples +@@ -0,0 +1,2 @@ ++bootptab.cmu ++bootptab.mcs +--- bootp-2.4.3.orig/debian/postinst ++++ bootp-2.4.3/debian/postinst +@@ -0,0 +1,6 @@ ++#!/bin/sh -e ++# $Id: postinst,v 1.1 1999/03/14 04:26:30 herbert Exp $ ++ ++update-inetd --group BOOT --add "#bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120" ++ ++#DEBHELPER# +--- bootp-2.4.3.orig/debian/postrm ++++ bootp-2.4.3/debian/postrm +@@ -0,0 +1,8 @@ ++#!/bin/sh -e ++# $Id: postrm,v 1.1 1999/03/14 04:26:30 herbert Exp $ ++ ++if [ "$1" = remove -o "$1" = purge ]; then ++ update-inetd --remove "bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120" ++fi ++ ++#DEBHELPER# +--- bootp-2.4.3.orig/debian/prerm ++++ bootp-2.4.3/debian/prerm +@@ -0,0 +1,6 @@ ++#!/bin/sh -e ++# $Id: prerm,v 1.1 1999/03/14 04:26:30 herbert Exp $ ++ ++update-inetd --disable bootp ++ ++#DEBHELPER# diff --git a/source/n/bootp/bootptab b/source/n/bootp/bootptab new file mode 100644 index 000000000..3c309939e --- /dev/null +++ b/source/n/bootp/bootptab @@ -0,0 +1,40 @@ +# /etc/bootptab: database for bootp server (/usr/sbin/bootpd) + +# Blank lines and lines beginning with '#' are ignored. +# +# Legend: (see bootptab.5) +# first field -- hostname (not indented) +# bf -- bootfile +# bs -- bootfile size in 512-octet blocks +# cs -- cookie servers +# df -- dump file name +# dn -- domain name +# ds -- domain name servers +# ef -- extension file +# gw -- gateways +# ha -- hardware address +# hd -- home directory for bootfiles +# hn -- host name set for client +# ht -- hardware type +# im -- impress servers +# ip -- host IP address +# lg -- log servers +# lp -- LPR servers +# ns -- IEN-116 name servers +# ra -- reply address +# rl -- resource location protocol servers +# rp -- root path +# sa -- boot server address +# sm -- subnet mask +# sw -- swap server +# tc -- template host (points to similar host entry) +# td -- TFTP directory +# to -- time offset (seconds) +# ts -- time servers +# vm -- vendor magic number +# Tn -- generic option tag n +# +# Be careful about including backslashes where they're needed. Weird (bad) +# things can happen when a backslash is omitted where one is intended. +# Also, note that generic option data must be either a string or a +# sequence of bytes where each byte is a two-digit hex value. diff --git a/source/n/bootp/slack-desc b/source/n/bootp/slack-desc new file mode 100644 index 000000000..bc837a349 --- /dev/null +++ b/source/n/bootp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bootp: bootp (BOOTP server) +bootp: +bootp: This is an enhanced version of the CMU BOOTP server which was derived +bootp: from the original BOOTP server created by Bill Croft at Stanford. +bootp: BOOTP allows a network administrator to setup networking information +bootp: for clients via an /etc/bootptab on a server so that the clients can +bootp: automatically get their networking information. +bootp: +bootp: +bootp: +bootp: diff --git a/source/n/bridge-utils/bridge-utils.SlackBuild b/source/n/bridge-utils/bridge-utils.SlackBuild new file mode 100755 index 000000000..0772a887a --- /dev/null +++ b/source/n/bridge-utils/bridge-utils.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bridge-utils + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf bridge-utils-$VERSION +tar xzf $CWD/bridge-utils-$VERSION.tar.gz || exit 1 +cd bridge-utils-$VERSION || exit 1 + +zcat $CWD/bridge-utils.isbridge.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This is bad form, but what can you do... +autoconf + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/sbin +mv $PKG/usr/sbin/brctl $PKG/sbin/brctl +( cd $PKG/usr/sbin ; ln -sf ../../sbin/brctl brctl ) +strip --strip-unneeded $PKG/sbin/brctl +rmdir $PKG/usr/sbin + +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libbridge.a + +gzip -9 $PKG/usr/man/man8/*.8 + +mkdir -p $PKG/usr/doc/bridge-utils-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog README THANKS TODO \ + doc \ + $PKG/usr/doc/bridge-utils-$VERSION +( cd $PKG/usr/doc/bridge-utils-$VERSION/doc + rm -f Makefile Makefile.in RPM-GPG-KEY brctl.8 +) + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/bridge-utils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bridge-utils/bridge-utils.isbridge.diff b/source/n/bridge-utils/bridge-utils.isbridge.diff new file mode 100644 index 000000000..b40e48796 --- /dev/null +++ b/source/n/bridge-utils/bridge-utils.isbridge.diff @@ -0,0 +1,12 @@ +--- ./libbridge/libbridge_init.c.orig 2008-01-08 17:20:35.000000000 +0100 ++++ ./libbridge/libbridge_init.c 2008-10-23 06:59:58.000000000 +0200 +@@ -49,6 +49,9 @@ + char path[SYSFS_PATH_MAX]; + struct stat st; + ++ if(entry->d_name[0] == '.') ++ return 0; ++ + snprintf(path, SYSFS_PATH_MAX, SYSFS_CLASS_NET "%s/bridge", entry->d_name); + return stat(path, &st) == 0 && S_ISDIR(st.st_mode); + } diff --git a/source/n/bridge-utils/slack-desc b/source/n/bridge-utils/slack-desc new file mode 100644 index 000000000..266b6ce77 --- /dev/null +++ b/source/n/bridge-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bridge-utils: bridge-utils (network Ethernet bridging utilities) +bridge-utils: +bridge-utils: This package contains utilities for configuring Linux Ethernet +bridge-utils: bridges. The Linux Ethernet bridge can be used for connecting +bridge-utils: multiple Ethernet devices together. The connecting is fully +bridge-utils: transparent. Hosts connected to one Ethernet device see hosts +bridge-utils: connected through a bridge to the other Ethernet devices directly. +bridge-utils: +bridge-utils: bridge-utils was written by Stephen Hemminger and Lennert Buytenhek. +bridge-utils: +bridge-utils: diff --git a/source/n/bsd-finger/bsd-finger-0.17.diff b/source/n/bsd-finger/bsd-finger-0.17.diff new file mode 100644 index 000000000..c9eff6e66 --- /dev/null +++ b/source/n/bsd-finger/bsd-finger-0.17.diff @@ -0,0 +1,20 @@ +--- ./finger/finger.h.orig Sun Feb 25 17:18:59 2001 ++++ ./finger/finger.h Sun Feb 25 17:19:12 2001 +@@ -39,6 +39,7 @@ + + #include + #include ++#include + + /* + * All unique persons are linked in a list headed by "head" and linkd +--- ./fingerd/fingerd.c.orig Sun Feb 25 17:21:14 2001 ++++ ./fingerd/fingerd.c Sun Feb 25 17:21:29 2001 +@@ -55,6 +55,7 @@ + #include + #include + #include ++#include + + #include "pathnames.h" + #include "../version.h" diff --git a/source/n/bsd-finger/bsd-finger.SlackBuild b/source/n/bsd-finger/bsd-finger.SlackBuild new file mode 100755 index 000000000..214470278 --- /dev/null +++ b/source/n/bsd-finger/bsd-finger.SlackBuild @@ -0,0 +1,70 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bsd-finger + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xvf $CWD/bsd-finger-$VERSION.tar.gz || exit 1 +cd bsd-finger-$VERSION || exit 1 +chown -R root:root . +zcat $CWD/bsd-finger-0.17.diff.gz | patch -p1 || exit +./configure --prefix=/usr +make || exit 1 +cd finger +strip finger +mkdir -p $PKG/usr/bin +cat finger > $PKG/usr/bin/finger +chmod 755 $PKG/usr/bin/finger +mkdir -p $PKG/usr/man/man{1,8} +cat finger.1 | gzip -9c > $PKG/usr/man/man1/finger.1.gz +cd ../fingerd +strip fingerd +mkdir -p $PKG/usr/sbin +cat fingerd > $PKG/usr/sbin/in.fingerd +chmod 755 $PKG/usr/sbin/in.fingerd +cat fingerd.8 | gzip -9c > $PKG/usr/man/man8/in.fingerd.8.gz +cd .. + +mkdir -p $PKG/usr/doc/bsd-finger-$VERSION +cp -a README $PKG/usr/doc/bsd-finger-$VERSION +chown root:root $PKG/usr/doc/bsd-finger-$VERSION/* +chmod 644 $PKG/usr/doc/bsd-finger-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/bsd-finger-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/bsd-finger/slack-desc b/source/n/bsd-finger/slack-desc new file mode 100644 index 000000000..d3b9ea63a --- /dev/null +++ b/source/n/bsd-finger/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bsd-finger: bsd-finger (user information lookup program) +bsd-finger: +bsd-finger: The finger displays information about the system users. Finger +bsd-finger: displays the user's login name, real name, terminal name and write +bsd-finger: status (as a ``*'' after the terminal name if write permission is +bsd-finger: denied), idle time, login time, office location and office phone +bsd-finger: number. +bsd-finger: +bsd-finger: As fingerd leaks semi-private information about your machine's +bsd-finger: usernames and other data, fingerd should be used with caution. +bsd-finger: Allow machines on a need-to-know basis. + diff --git a/source/n/crda/crda.SlackBuild b/source/n/crda/crda.SlackBuild new file mode 100755 index 000000000..b055ab520 --- /dev/null +++ b/source/n/crda/crda.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2009 Robby Workman, Northport, AL, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=${VERSION:-1.0.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +REGDBVERS=git_20090222 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-crda + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# First, we need to install the wireless regulatory bin +cd $TMP +tar xvf $CWD/wireless-regdb-$REGDBVERS.tar.bz2 || exit 1 +cd wireless-regdb-$REGDBVERS || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# If this isn't installed on the system, crda will not build: +mkdir -p /usr/lib/crda +cat regulatory.bin > /usr/lib/crda/regulatory.bin + +mkdir -p $PKG/usr/lib/crda $PKG/usr/man/man5 $PKG/usr/doc/crda-$VERSION/regdb +cat regulatory.bin > $PKG/usr/lib/crda/regulatory.bin +gzip -9c regulatory.bin.5 > $PKG/usr/man/man5/regulatory.bin.5.gz +cp -a LICENSE README db.txt $PKG/usr/doc/crda-$VERSION/regdb + +# Now we'll do crda itself +cd $TMP +rm -rf crda-$VERSION +tar xvf $CWD/crda-$VERSION.tar.?z* || exit 1 +cd crda-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +make CFLAGS="$SLKCFLAGS" MANDIR=/usr/man || exit 1 +make install MANDIR=/usr/man DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Manpages are already compressed + +mkdir -p $PKG/usr/doc/crda-$VERSION +cp -a \ + LICENSE README \ + $PKG/usr/doc/crda-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/crda-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/crda/get_regdb.sh b/source/n/crda/get_regdb.sh new file mode 100644 index 000000000..05a2e93bc --- /dev/null +++ b/source/n/crda/get_regdb.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +_DATE="$(date +%Y%m%d)" + +rm -rf wireless-regdb-git_${_DATE} wireless-regdb-git_${_DATE}.tar.bz2 + +git clone \ + git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git \ + wireless-regdb-git_${_DATE} + +chown -R root:root wireless-regdb-${_DATE} +tar cjf wireless-regdb-git_${_DATE}.tar.bz2 wireless-regdb-git_${_DATE} +rm -rf wireless-regdb-git_${_DATE} + diff --git a/source/n/crda/slack-desc b/source/n/crda/slack-desc new file mode 100644 index 000000000..d6c211275 --- /dev/null +++ b/source/n/crda/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +crda: crda (Central Regulatory Domain Agent) +crda: +crda: This is the Central Regulatory Domain Agent for Linux. +crda: It serves one purpose: tell the Linux kernel what to enforce. +crda: In essence, it is a udev helper for communication between +crda: the kernel and userspace. +crda: +crda: You only need to run this manually for debugging purposes. +crda: +crda: http://wireless.kernel.org/download/crda/ +crda: diff --git a/source/n/curl/cacert.pem b/source/n/curl/cacert.pem new file mode 100644 index 000000000..2feb1e8a2 --- /dev/null +++ b/source/n/curl/cacert.pem @@ -0,0 +1,3154 @@ +## +## cacert.pem-foo -- Bundle of CA Root Certificates +## +## Converted at: Thu Mar 26 21:23:06 2009 UTC +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## '/mozilla/security/nss/lib/ckfw/builtins/certdata.txt' +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## + +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Netscape security libraries. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1994-2000 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 2 or later (the "GPL"), or +# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** +# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.51 $ $Date: 2009/01/15 22:35:15 $ + +Verisign/RSA Secure Server CA +============================= +-----BEGIN CERTIFICATE----- +MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +IDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2VydmVy +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVow +XzELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQL +EyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUA +A4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII0haGN1Xp +sSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphIuR2nKRoTLkoRWZweFdVJ +VCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZIhvcNAQECBQADfgBl3X7hsuyw4jrg7HFG +mhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2 +qUtN8iD3zV9/ZHuO3ABc1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA== +-----END CERTIFICATE----- + +GTE CyberTrust Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg +Q29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAw +WhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9u +MRwwGgYDVQQDExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB +gQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH +6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswk +wB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEP +I2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGvU9oUtCG4 +1tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY +-----END CERTIFICATE----- + +GTE CyberTrust Global Root +========================== +-----BEGIN CERTIFICATE----- +MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg +Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG +A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz +MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL +Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0 +IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u +sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql +HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID +AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW +M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF +NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ +-----END CERTIFICATE----- + +Thawte Personal Basic CA +======================== +-----BEGIN CERTIFICATE----- +MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMY +VGhhd3RlIFBlcnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0 +aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpB +MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhh +d3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x +ITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZcGVyc29u +YWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+C +FeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJ +l+A1OFdKwPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY +0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAt4plrsD16 +iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7c8a914phXAPjLSeoF+CEhULcXpvG +t7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN +92NWod8isQ== +-----END CERTIFICATE----- + +Thawte Personal Premium CA +========================== +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMa +VGhhd3RlIFBlcnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1p +dW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQG +EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoT +EVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlz +aW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3DQEJARYb +cGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJ +Ztn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ +8/JE2dWIEt12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicR +FTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GB +AGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIHb4Vnjt4rueIXsDqg8A6iAJrf8xQV +brvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+W +jS9Q2wfD6h+rM+D1KzGJ +-----END CERTIFICATE----- + +Thawte Personal Freemail CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3Vs +dGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMb +VGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVl +bWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNV +BAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE +ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 +aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJ +ARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC +gYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6W +ZBrCFG5ErHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgk +CGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF +AAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjPMPuoSpaKH2JCI4wXD/S6ZJwXrEcp +352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK +/qarigd1iwzdUYRr5PjRzneigQ== +-----END CERTIFICATE----- + +Thawte Server CA +================ +-----BEGIN CERTIFICATE----- +MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE +AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j +b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV +BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u +c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG +A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 +ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl +/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7 +1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J +GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ +GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= +-----END CERTIFICATE----- + +Thawte Premium Server CA +======================== +-----BEGIN CERTIFICATE----- +MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE +AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl +ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT +AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU +VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 +aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ +cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2 +aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh +Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/ +qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm +SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf +8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t +UCemDaYj+bvLpgcUQg== +-----END CERTIFICATE----- + +Equifax Secure CA +================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE +ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT +B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR +fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW +8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE +CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS +spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 +zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB +BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 +70+sB3c4 +-----END CERTIFICATE----- + +ABAecom (sub., Am. Bankers Assn.) Root CA +========================================= +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIRANAeQJAAAEZSAAAAAQAAAAQwDQYJKoZIhvcNAQEFBQAwgYkxCzAJBgNV +BAYTAlVTMQswCQYDVQQIEwJEQzETMBEGA1UEBxMKV2FzaGluZ3RvbjEXMBUGA1UEChMOQUJBLkVD +T00sIElOQy4xGTAXBgNVBAMTEEFCQS5FQ09NIFJvb3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWFkbWlu +QGRpZ3NpZ3RydXN0LmNvbTAeFw05OTA3MTIxNzMzNTNaFw0wOTA3MDkxNzMzNTNaMIGJMQswCQYD +VQQGEwJVUzELMAkGA1UECBMCREMxEzARBgNVBAcTCldhc2hpbmd0b24xFzAVBgNVBAoTDkFCQS5F +Q09NLCBJTkMuMRkwFwYDVQQDExBBQkEuRUNPTSBSb290IENBMSQwIgYJKoZIhvcNAQkBFhVhZG1p +bkBkaWdzaWd0cnVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx0xHgeVVD +BwhMywVCAOINg0Y95JO6tgbTDVm9PsHOQ2cBiiGo77zM0KLMsFWWU4RmBQDaREmA2FQKpSWGlO1j +Vv9wbKOhGdJ4vmgqRF4vz8wYXke8OrFGPR7wuSw0X4x8TAgpnUBV6zx9g9618PeKgw6hTLQ6pbNf +WiKX7BmbwQVo/ea3qZGULOR4SCQaJRk665WcOQqKz0Ky8BzVX/tr7WhWezkscjiw7pOp03t3POtx +A6k4ShZsiSrK2jMTecJVjO2cu/LLWxD4LmE1xilMKtAqY9FlWbT4zfn0AIS2V0KFnTKo+SpU+/94 +Qby9cSj0u5C8/5Y0BONFnqFGKECBAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQgwDQYJKoZI +hvcNAQEFBQADggEBAARvJYbk5pYntNlCwNDJALF/VD6Hsm0kqS8Kfv2kRLD4VAe9G52dyntQJHsR +W0mjpr8SdNWJt7cvmGQlFLdh6X9ggGvTZOirvRrWUfrAtF13Gn9kCF55xgVM8XrdTX3O5kh7VNJh +koHWG9YA8A6eKHegTYjHInYZw8eeG6Z3ePhfm1bR8PIXrI6dWeYf/le22V7hXZ9F7GFoGUHhsiAm +/lowdiT/QHI8eZ98IkirRs3bs4Ysj78FQdPB4xTjQRcm0HyncUwZ6EoPclgxfexgeqMiKL0ZJGA/ +O4dzwGvky663qyVDslUte6sGDnVdNOVdc22esnVApVnJTzFxiNmIf1Q= +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 1 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy +MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE +NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i +o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq +kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4 +RbyhkwS7hp86W0N6w4pl +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 3 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy +MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD +VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS +xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi +up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1 +mPnHfxsb1gYgAlihw6ID +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 2 +======================================= +-----BEGIN CERTIFICATE----- +MIID2DCCAsACEQDQHkCLAAACfAAAAAIAAAABMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1 +czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0 +YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBS +b290Q0EgWDExITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODEyMDExODE4 +NTVaFw0wODExMjgxODE4NTVaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE +BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER +MA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDExITAfBgkqhkiG9w0BCQEW +EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLGJrbn +pT3BxGjVUG9TxW9JEwm4ryxIjRRqoxdfWvnTLnUv2Chi0ZMv/E3Uq4flCMeZ55I/db3rJbQVwZsZ +PdJEjdd0IG03Ao9pk1uKxBmd9LIO/BZsubEFkoPRhSxglD5FVaDZqwgh5mDoO3TymVBRaNADLbGA +vqPYUrBEzUNKcI5YhZXhTizWLUFv1oTnyJhEykfbLCSlaSbPa7gnYsP0yXqSI+0TZ4KuRS5F5X5y +P4WdlGIQ5jyRoa13AOAV7POEgHJ6jm5gl8ckWRA0g1vhpaRptlc1HHhZxtMvOnNn7pTKBBMFYgZw +I7P0fO5F2WQLW0mqpEPOJsREEmy43XkCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAojeyP2n714Z5 +VEkxlTMr89EJFEliYIalsBHiUMIdBlc+LegzZL6bqq1fG03UmZWii5rJYnK1aerZWKs17RWiQ9a2 +vAd5ZWRzfdd5ynvVWlHG4VMElo04z6MXrDlxawHDi1M8Y+nuecDkvpIyZHqzH5eUYr3qsiAVlfuX +8ngvYzZAOONGDx3drJXK50uQe7FLqdTF65raqtWjlBRGjS0f8zrWkzr2Pnn86Oawde3uPclwx12q +gUtGJRzHbBXjlU4PqjI3lAoXJJIThFjSY28r9+ZbYgsTF7ANUkz+/m9c4pFuHf2kYtdo+o56T9II +2pPc8JIRetDccpMMc5NihWjQ9A== +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 4 +======================================= +-----BEGIN CERTIFICATE----- +MIID2DCCAsACEQDQHkCLAAB3bQAAAAEAAAAEMA0GCSqGSIb3DQEBBQUAMIGpMQswCQYDVQQGEwJ1 +czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0 +YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBS +b290Q0EgWDIxITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODExMzAyMjQ2 +MTZaFw0wODExMjcyMjQ2MTZaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UE +BxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjER +MA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIxITAfBgkqhkiG9w0BCQEW +EmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANx18IzA +dZaawGIfJvfE4Zrq4FZzW5nNAUSoCLbVp9oaBBg5kkp4o4HC9Xd6ULRw/5qrxsfKboNPQpj7Jgva +3G3WqZlVUmfpKAOS3OWwBZoPFflrWXJW8vo5/Kpo7g8fEIMv/J36F5bdguPmRX3AS4BEH+0s4IT9 +kVySVGkl5WJp3OXuAFK9MwutdQKFp2RQLcUZGTDAJtvJ0/0uma1ZtQtN1EGuhUhDWdy3qOKi3sOP +17ihYqZoUFLkzzGnlIXan0YyF1bl8utmPRL/Q9uY73fPy4GNNLHGUEom0eQ+QVCvbK4iNC7Va26D +unm4dmVI2gkpZGMiuftHdoWMhkTLCdsCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAtTYOXeFhKFoR +ZcA/gwN5Tb4opgsHAlKFzfiR0BBstWogWxyQ2TA8xkieil5k+aFxd+8EJx8H6+Qm93N0yUQYGmbT +4EOvkTvRyyzYdFQ6HE3K1GjNI3wdEJ5F6fYAbqbNGf9PLCmPV03Ed5K+4EwJ+11EhmYhqLkyolbV +6YyDfFk/xPEL553snr2cGA4+wjl5KLcDDQjLxufZATdQEOzMYRZA1K8xdHv8PzGn0EdzMzkbzE5q +10mDEQb+64JYMzJM8FasHpwvVpp7wUocpf1VNs78lk30sPDst2yC7S8xmUJMqbINuBVd8d+6ybVK +1GSYsyapMMj9puyrliGtf8J4tg== +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTla +MF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3Mg +MSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEF +AAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw +0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7 +NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf +7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZoEWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnx +giJduLHdgSOjeyUVRjB5FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0A +NACY89FxlA== +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAy +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyhYGt+eSz6 +Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7FYCTXOvnzAhsPz6zSvz/ +S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBAIobK/o5wXTX +XtgZZKJYSi034DNHD6zt96rbHuSLBlxgJ8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUY +YAS/QoD90KioHgE796Ncr6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2 +lw0Xd8rY +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 +f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol +hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA +TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah +WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf +Tqj/ZA1k +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd +k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq +WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM +XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC +lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h +cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp +Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h +cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp +Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx +nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC +wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA +ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK +1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk +LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg== +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO +FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71 +lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT +1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD +Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9 +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4 +xBewRNzjMHPVKmIquNDMHO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDH +qGKB3FtKqsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwjcSGIL4LcY/oCRaxF +WdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0ycyfYaT5DdPauxYma51N86Xv2S/PB +ZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRPT8qAkbYp +-----END CERTIFICATE----- + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +ValiCert Class 1 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy +MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi +GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm +DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG +lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX +icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP +Orf1LXLI +-----END CERTIFICATE----- + +ValiCert Class 2 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC +CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf +ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ +SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV +UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8 +W9ViH0Pd +-----END CERTIFICATE----- + +RSA Root Certificate 1 +====================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td +3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H +BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs +3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF +V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r +on+jjBXu +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E +bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ +rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+ +Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB +FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N +y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3 +ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h +a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc +D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g== +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y +azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug +b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ +BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y +aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6 +tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7 +C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS +0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs +Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0 +JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf +0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU +sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx +JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j +GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS +tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM +8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW +Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX +Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt +mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm +fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd +RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG +UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== +-----END CERTIFICATE----- + +Entrust.net Secure Server CA +============================ +-----BEGIN CERTIFICATE----- +MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg +cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl +ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG +A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi +eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p +dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ +aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5 +gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw +ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw +CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l +dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF +bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu +dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw +NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow +HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA +BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN +Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9 +n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +-----END CERTIFICATE----- + +Entrust.net Secure Personal CA +============================== +-----BEGIN CERTIFICATE----- +MIIE7TCCBFagAwIBAgIEOAOR7jANBgkqhkiG9w0BAQQFADCByTELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC0VudHJ1c3QubmV0MUgwRgYDVQQLFD93d3cuZW50cnVzdC5uZXQvQ2xpZW50X0NBX0luZm8v +Q1BTIGluY29ycC4gYnkgcmVmLiBsaW1pdHMgbGlhYi4xJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1 +c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw05OTEwMTIxOTI0MzBaFw0xOTEwMTIxOTU0MzBaMIHJMQswCQYDVQQGEwJV +UzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRf +Q0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UECxMcKGMpIDE5 +OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xpZW50IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDIOpleMRffrCdv +kHvkGf9FozTC28GoT/Bo6oT9n3V5z8GKUZSvx1cDR2SerYIbWtp/N3hHuzeYEpbOxhN979IMMFGp +OZ5V+Pux5zDeg7K6PvHViTs7hbqqdCz+PzFur5GVbgbUB01LLFZHGARS2g4Qk79jkJvh34zmAqTm +T173iwIBA6OCAeAwggHcMBEGCWCGSAGG+EIBAQQEAwIABzCCASIGA1UdHwSCARkwggEVMIHkoIHh +oIHepIHbMIHYMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3 +dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBs +aWFiLjElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50 +cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCyg +KqAohiZodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9DbGllbnQxLmNybDArBgNVHRAEJDAigA8x +OTk5MTAxMjE5MjQzMFqBDzIwMTkxMDEyMTkyNDMwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU +xPucKXuXzUyW/O5bs8qZdIuV6kwwHQYDVR0OBBYEFMT7nCl7l81MlvzuW7PKmXSLlepMMAwGA1Ud +EwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEEBQADgYEAP66K +8ddmAwWePvrqHEa7pFuPeJoSSJn59DXeDDYHAmsQOokUgZwxpnyyQbJq5wcBoUv5nyU7lsqZwz6h +URzzwy5E97BnRqqS5TvaHBkUODDV4qIxJS7x7EU47fgGWANzYrAQMY9Av2TgXD7FTx/aEkP/TOYG +JqibGapEPHayXOw= +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC +AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER +gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B +AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo +oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS +o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z +2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX +OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ== +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Equifax Secure Global eBusiness CA +================================== +-----BEGIN CERTIFICATE----- +MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp +bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx +HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds +b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV +PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN +qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn +hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs +MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN +I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY +NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 1 +============================= +-----BEGIN CERTIFICATE----- +MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB +LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE +ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz +IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ +1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a +IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk +MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW +Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF +AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5 +lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+ +KpYrtWKmpj29f5JZzVoqgrI3eQ== +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 2 +============================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE +ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y +MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT +DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn +2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5 +BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx +JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e +uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1 +jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia +78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm +V+GRMOrN +-----END CERTIFICATE----- + +Visa International Global Root 2 +================================ +-----BEGIN CERTIFICATE----- +MIIDgDCCAmigAwIBAgICAx4wDQYJKoZIhvcNAQEFBQAwYTELMAkGA1UEBhMCVVMxDTALBgNVBAoT +BFZJU0ExLzAtBgNVBAsTJlZpc2EgSW50ZXJuYXRpb25hbCBTZXJ2aWNlIEFzc29jaWF0aW9uMRIw +EAYDVQQDEwlHUCBSb290IDIwHhcNMDAwODE2MjI1MTAwWhcNMjAwODE1MjM1OTAwWjBhMQswCQYD +VQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZp +Y2UgQXNzb2NpYXRpb24xEjAQBgNVBAMTCUdQIFJvb3QgMjCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAKkBcLWqxEDwq2omYXkZAPy/mzdZDK9vZBv42pWUJGkzEXDK41Z0ohdXZFwgBuHW +73G3O/erwWnQSaSxBNf0V2KJXLB1LRckaeNCYOTudNargFbYiCjh+20i/SN8RnNPflRzHqgsVVh1 +t0zzWkWlAhr62p3DRcMiXvOL8WAp0sdftAw6UYPvMPjU58fy+pmjIlC++QU3o63tmsPm7Igbthkn +GziLgE3sucfFicv8GjLtI/C1AVj59o/ghalMCXI5Etuz9c9OYmTaxhkVOmMd6RdVoUwiPDQyRvhl +V7or7zaMavrZ2UT0qt2E1w0cslSsMoW0ZA3eQbuxNMYBhjJk1Z8CAwEAAaNCMEAwHQYDVR0OBBYE +FJ59SzS/ca3CBfYDdYDOqU8axCRMMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0G +CSqGSIb3DQEBBQUAA4IBAQAhpXYUVfmtJ3CPPPTVbMjMCqujmAuKBiPFyWHbmQdpNSYx/scuhMKZ +YdQN6X0uEyt8joW2hcdLzzW2LEc9zikv2G+fiRxkk78IvXbQkIqUs38oW26sTTMs7WXcFsziza6k +PWKSBpUmv9+55CCmc2rBvveURNZNbyoLaxhNdBA2aGpawWqn3TYpjLgwi08hPwAuVDAHOrqK5MOe +yti12HvOdUVmB/RtLdh6yumJivIj2C/LbgA2T/vwLwHMD8AiZfSr4k5hLQOCfZEWtTDVFN5ex5D8 +ofyrEK9ca3CnB+8phuiyJccg/ybdd+95RBTEvd07xQObdyPsoOy7Wjm1zK0G +-----END CERTIFICATE----- + +beTRUSTed Root CA +================= +-----BEGIN CERTIFICATE----- +MIIFLDCCBBSgAwIBAgIEOU99hzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJXVzESMBAGA1UE +ChMJYmVUUlVTVGVkMRswGQYDVQQDExJiZVRSVVNUZWQgUm9vdCBDQXMxGjAYBgNVBAMTEWJlVFJV +U1RlZCBSb290IENBMB4XDTAwMDYyMDE0MjEwNFoXDTEwMDYyMDEzMjEwNFowWjELMAkGA1UEBhMC +V1cxEjAQBgNVBAoTCWJlVFJVU1RlZDEbMBkGA1UEAxMSYmVUUlVTVGVkIFJvb3QgQ0FzMRowGAYD +VQQDExFiZVRSVVNUZWQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS0 +c3oTCjhVAb6JVuGUntS+WutKNHUbYSnE4a0IYCF4SP+00PpeQY1hRIfo7clY+vyTmt9P6j41ffgz +eubx181vSUs9Ty1uDoM6GHh3o8/n9E1z2Jo7Gh2+lVPPIJfCzz4kUmwMjmVZxXH/YgmPqsWPzGCg +c0rXOD8Vcr+il7dw6K/ifhYGTPWqZCZyByWtNfwYsSbX2P8ZDoMbjNx4RWc0PfSvHI3kbWvtILNn +mrRhyxdviTX/507AMhLn7uzf/5cwdO2NR47rtMNE5qdMf1ZD6Li8tr76g5fmu/vEtpO+GRg+jIG5 +c4gW9JZDnGdzF5DYCW5jrEq2I8QBoa2k5MUCAwEAAaOCAfgwggH0MA8GA1UdEwEB/wQFMAMBAf8w +ggFZBgNVHSAEggFQMIIBTDCCAUgGCisGAQQBsT4BAAAwggE4MIIBAQYIKwYBBQUHAgIwgfQagfFS +ZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFu +Y2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv +ZiB1c2UsIGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudCwgd2hpY2ggY2FuIGJl +IGZvdW5kIGF0IGJlVFJVU1RlZCdzIHdlYiBzaXRlLCBodHRwczovL3d3dy5iZVRSVVNUZWQuY29t +L3ZhdWx0L3Rlcm1zMDEGCCsGAQUFBwIBFiVodHRwczovL3d3dy5iZVRSVVNUZWQuY29tL3ZhdWx0 +L3Rlcm1zMDQGA1UdHwQtMCswKaAnoCWkIzAhMRIwEAYDVQQKEwliZVRSVVNUZWQxCzAJBgNVBAYT +AldXMB0GA1UdDgQWBBQquZtpLjub2M3eKjEENGvKBxirZzAfBgNVHSMEGDAWgBQquZtpLjub2M3e +KjEENGvKBxirZzAOBgNVHQ8BAf8EBAMCAf4wDQYJKoZIhvcNAQEFBQADggEBAHlh26Nebhax6nZR ++csVm8tpvuaBa58oH2U+3RGFktToQb9+M70j5/Egv6S0phkBxoyNNXxlpE8JpNbYIxUFE6dDea/b +ow6be3ga8wSGWsb2jCBHOElQBp1yZzrwmAOtlmdE/D8QDYZN5AA7KXvOOzuZhmElQITcE2K3+spZ +1gMe1lMBzW1MaFVA4e5rxyoAAEiCswoBw2AqDPeCNe5IhpbkdNQ96gFxugR1QKepfzk5mlWXKWWu +GVUlBXJH0+gY3Ljpr0NzARJ0o+FcXxVdJPP55PS2Z2cS52QiivalQaYctmBjRYoQtLpGEK5BV2Vs +PyMQPyEQWbfkQN0mDCP2qq4= +-----END CERTIFICATE----- + +AddTrust Low-Value Services Root +================================ +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU +cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw +CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO +ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 +54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr +oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 +Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui +GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w +HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT +RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw +HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt +ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph +iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr +mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj +ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +AddTrust Public Services Root +============================= +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU +cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ +BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l +dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu +nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i +d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG +Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw +HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G +A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G +A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 +JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL ++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 +Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H +EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- + +AddTrust Qualified Certificates Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU +cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx +CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ +IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx +64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 +KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o +L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR +wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU +MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE +BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y +azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG +GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze +RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB +iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= +-----END CERTIFICATE----- + +Verisign Time Stamping Authority CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDzTCCAzagAwIBAgIQU2GyYK7bcY6nlLMTM/QHCTANBgkqhkiG9w0BAQUFADCBwTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQLEzNDbGFzcyAzIFB1YmxpYyBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZl +cmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWdu +IFRydXN0IE5ldHdvcmswHhcNMDAwOTI2MDAwMDAwWhcNMTAwOTI1MjM1OTU5WjCBpTEXMBUGA1UE +ChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNV +BAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTAwMSww +KgYDVQQDEyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIEF1dGhvcml0eSBDQTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEA0hmdZ8IAIVlizrQJIkRpivglWtvtDbc2fk7gu5Q+kCWHwmFHKdm9VLhj +zCx9abQzNvQ3B5rB3UBU/OB4naCTuQk9I1F/RMIUdNsKvsvJMDRAmD7Q1yUQgZS9B0+c1lQn3y6o +v8uQjI11S7zi6ESHzeZBCiVu6PQkAsVSD27smHUCAwEAAaOB3zCB3DAPBgNVHRMECDAGAQH/AgEA +MEUGA1UdIAQ+MDwwOgYMYIZIAYb4RQEHFwEDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl +cmlzaWduLmNvbS9ycGEwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC52ZXJpc2lnbi5jb20v +cGNhMy5jcmwwCwYDVR0PBAQDAgEGMEIGCCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRw +Oi8vb2NzcC52ZXJpc2lnbi5jb20vb2NzcC9zdGF0dXMwDQYJKoZIhvcNAQEFBQADgYEAgnBold+2 +DcIBcBlK0lRWHqzyRUyHuPU163hLBanInTsZIS5wNEqi9YngFXVF5yg3ADQnKeg3S/LvRJdrF1Ea +w1adPBqK9kpGRjeM+sv1ZFo4aC4cw+9wzrhGBha/937ntag+RaypJXUie28/sJyU58dzq6wf7iWb +wBbtt8pb8BQ= +-----END CERTIFICATE----- + +Thawte Time Stamping CA +======================= +-----BEGIN CERTIFICATE----- +MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG +A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg +Q0EwHhcNOTcwMTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNV +BAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEd +MBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBp +bmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+o +J9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR5zDWQQD9 +nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzAR +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCo +uqoEiYbC9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCe +d/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJSdM= +-----END CERTIFICATE----- + +Entrust.net Global Secure Server CA +=================================== +-----BEGIN CERTIFICATE----- +MIIElTCCA/6gAwIBAgIEOJsRPDANBgkqhkiG9w0BAQQFADCBujEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxPzA9BgNVBAsUNnd3dy5lbnRydXN0Lm5ldC9TU0xfQ1BTIGluY29ycC4gYnkgcmVmLiAobGlt +aXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UE +AxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0w +MDAyMDQxNzIwMDBaFw0yMDAyMDQxNzUwMDBaMIG6MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDE/MD0G +A1UECxQ2d3d3LmVudHJ1c3QubmV0L1NTTF9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlh +Yi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRy +dXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3 +DQEBAQUAA4GNADCBiQKBgQDHwV9OcfHO8GCGD9JYf9Mzly0XonUwtZZkJi9ow0SrqHXmAGc0V55l +xyKbc+bT3QgON1WqJUaBbL3+qPZ1V1eMkGxKwz6LS0MKyRFWmponIpnPVZ5h2QLifLZ8OAfc439P +mrkDQYC2dWcTC5/oVzbIXQA23mYU2m52H083jIITiQIDAQABo4IBpDCCAaAwEQYJYIZIAYb4QgEB +BAQDAgAHMIHjBgNVHR8EgdswgdgwgdWggdKggc+kgcwwgckxFDASBgNVBAoTC0VudHJ1c3QubmV0 +MT8wPQYDVQQLFDZ3d3cuZW50cnVzdC5uZXQvU1NMX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0 +cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxOjA4BgNVBAMT +MUVudHJ1c3QubmV0IFNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNV +BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMDAyMDQxNzIwMDBagQ8yMDIwMDIwNDE3NTAwMFowCwYD +VR0PBAQDAgEGMB8GA1UdIwQYMBaAFMtswGvjuz7L/CKc/vuLkpyw8m4iMB0GA1UdDgQWBBTLbMBr +47s+y/winP77i5KcsPJuIjAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4w +AwIEkDANBgkqhkiG9w0BAQQFAAOBgQBi24GRzsiad0Iv7L0no1MPUBvqTpLwqa+poLpIYcvvyQbv +H9X07t9WLebKahlzqlO+krNQAraFJnJj2HVQYnUUt7NQGj/KEQALhUVpbbalrlHhStyCP2yMNLJ3 +a9kC9n8O6mUE8c1UyrrJzOCE98g+EZfTYAkYvAX/bIkz8OwVDw== +-----END CERTIFICATE----- + +Entrust.net Global Secure Personal CA +===================================== +-----BEGIN CERTIFICATE----- +MIIEgzCCA+ygAwIBAgIEOJ725DANBgkqhkiG9w0BAQQFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9HQ0NBX0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAyMDcx +NjE2NDBaFw0yMDAyMDcxNjQ2NDBaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0dDQ0FfQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCTdLS25MVL1qFof2LV7PdRV7NySpj10InJrWPNTTVRaoTUrcloeW+46xHbh65cJFET8VQl +hK8pK5/jgOLZy93GRUk0iJBeAZfv6lOm3fzB3ksqJeTpNfpVBQbliXrqpBFXO/x8PTbNZzVtpKkl +Wb1m9fkn5JVn1j+SgF7yNH0rhQIDAQABo4IBnjCCAZowEQYJYIZIAYb4QgEBBAQDAgAHMIHdBgNV +HR8EgdUwgdIwgc+ggcyggcmkgcYwgcMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAwPgYDVQQLFDd3 +d3cuZW50cnVzdC5uZXQvR0NDQV9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUw +IwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5l +dCBDbGllbnQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMjAwMDAyMDcxNjE2NDBagQ8yMDIwMDIwNzE2NDY0MFowCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFISLdP3FjcD/J20gN0V8/i3OutN9MB0GA1UdDgQWBBSEi3T9xY3A/ydtIDdFfP4tzrrTfTAM +BgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQQF +AAOBgQBObzWAO9GK9Q6nIMstZVXQkvTnhLUGJoMShAusO7JE7r3PQNsgDrpuFOow4DtifH+La3xK +p9U1PL6oXOpLu5OOgGarDyn9TS2/GpsKkMWr2tGzhtQvJFJcem3G8v7lTRowjJDyutdKPkN+1MhQ +Gof4T4HHdguEOnKdzmVml64mXg== +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +AOL Time Warner Root Certification Authority 1 +============================================== +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT +FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD +VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAy +MDUyOTA2MDAwMFoXDTM3MTEyMDE1MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg +VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu +QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U0pPlLYnKhHw/EEMbjIt8 +hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItITuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkG +IBKOQuHfD5YQUqjPnF+VFNivO3ULMSAfRC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93 +f7DKeHEMXRZxcKLXwjqFzQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQI +fHNlIAqhBC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEAAaNj +MGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jYPXy+XxIwHwYDVR0j +BBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUA +A4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u +0FIy2VkyvNp5ctZ7CegCgTXTCt8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77Bf +WgDrvq2g+EQFZ7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX +n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoWH1iCC+GWaQVL +juyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S +-----END CERTIFICATE----- + +AOL Time Warner Root Certification Authority 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT +FEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNhIE9ubGluZSBJbmMuMTcwNQYD +VQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAy +MDUyOTA2MDAwMFoXDTM3MDkyODIzNDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wg +VGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMu +QU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ7ouZzU9AhqS2TcnZsdw8 +TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilbm2BPJoPRYxJWSXakFsKlnUWsi4SVqBax +7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOYxFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17n +OirYlxcwfACtCJ0zr7iZYYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2w +TPDaRrbqJS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fxI2rS +AG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETzkxmlJ85per5n0/xQ +pCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFhEVsVS6kkUfykXPcXnbDS+gfpj1bk +GoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/SBtc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuW +CpTehTacyH+BCQJJKg71ZDIMgtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1Ex +MVCgyhwn2RAurda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO1b+pxCAoMA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyuguh4X7ZVnnrREUpVe8WJ8kEle7 ++z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdPyXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI +5Rq8NEQh3q0l/HYWdyGQgJhXnU7q7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcC +tQVBynlQboIOcXKTRuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ +68W/ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyBM5kYJRF3 +p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQmy8YJPamTQr5O8t1wswv +ziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xOAU++CrYD062KRffaJ00psUjf5BHklka9 +bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4o +GKQWDzH9OmwjkyB24f0HhdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2 +uBOLZ8/5fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg= +-----END CERTIFICATE----- + +beTRUSTed Root CA-Baltimore Implementation +========================================== +-----BEGIN CERTIFICATE----- +MIIFajCCBFKgAwIBAgIEPLU9RjANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx +GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Et +QmFsdGltb3JlIEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA3Mzg1MVoXDTIyMDQxMTA3Mzg1MVow +ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV +BAMTKmJlVFJVU1RlZCBSb290IENBLUJhbHRpbW9yZSBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALx+xDmcjOPWHIb/ymKt4H8wRXqOGrO4x/nRNv8i805qX4QQ ++2aBw5R5MdKR4XeOGCrDFN5R9U+jK7wYFuK13XneIviCfsuBH/0nLI/6l2Qijvj/YaOcGx6Sj8Co +Cd8JEey3fTGaGuqDIQY8n7pc/5TqarjDa1U0Tz0yH92BFODEPM2dMPgwqZfT7syj0B9fHBOB1Bir +lNFjw55/NZKeX0Tq7PQiXLfoPX2k+YmpkbIq2eszh+6l/ePazIjmiSZuxyuC0F6dWdsU7JGDBcNe +DsYq0ATdcT0gTlgn/FP7eHgZFLL8kFKJOGJgB7Sg7KxrUNb9uShr71ItOrL/8QFArDcCAwEAAaOC +Ah4wggIaMA8GA1UdEwEB/wQFMAMBAf8wggG1BgNVHSAEggGsMIIBqDCCAaQGDysGAQQBsT4AAAEJ +KIORMTCCAY8wggFIBggrBgEFBQcCAjCCAToaggE2UmVsaWFuY2Ugb24gb3IgdXNlIG9mIHRoaXMg +Q2VydGlmaWNhdGUgY3JlYXRlcyBhbiBhY2tub3dsZWRnbWVudCBhbmQgYWNjZXB0YW5jZSBvZiB0 +aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwg +dGhlIENlcnRpZmljYXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IGFuZCB0aGUgUmVseWluZyBQYXJ0 +eSBBZ3JlZW1lbnQsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCB0aGUgYmVUUlVTVGVkIHdlYiBzaXRl +LCBodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNfc2VydmljZXMvaW5kZXguaHRtbDBB +BggrBgEFBQcCARY1aHR0cDovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2lu +ZGV4Lmh0bWwwHQYDVR0OBBYEFEU9w6nR3D8kVpgccxiIav+DR+22MB8GA1UdIwQYMBaAFEU9w6nR +3D8kVpgccxiIav+DR+22MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEASZK8o+6s +vfoNyYt5hhwjdrCAWXf82n+0S9/DZEtqTg6t8n1ZdwWtColzsPq8y9yNAIiPpqCy6qxSJ7+hSHyX +EHu67RMdmgduyzFiEuhjA6p9beP4G3YheBufS0OM00mG9htc9i5gFdPp43t1P9ACg9AYgkHNZTfq +jjJ+vWuZXTARyNtIVBw74acT02pIk/c9jH8F6M7ziCpjBLjqflh8AXtb4cV97yHgjQ5dUX2xZ/2j +vTg2xvI4hocalmhgRvsoFEdV4aeADGvi6t9NfJBIoDa9CReJf8Py05yc493EG931t3GzUwWJBtDL +SoDByFOQtTwxiBdQn8nEDovYqAJjDQ== +-----END CERTIFICATE----- + +beTRUSTed Root CA - Entrust Implementation +========================================== +-----BEGIN CERTIFICATE----- +MIIGUTCCBTmgAwIBAgIEPLVPQDANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwliZVRSVVNUZWQx +GzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0Eg +LSBFbnRydXN0IEltcGxlbWVudGF0aW9uMB4XDTAyMDQxMTA4MjQyN1oXDTIyMDQxMTA4NTQyN1ow +ZjESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNV +BAMTKmJlVFJVU1RlZCBSb290IENBIC0gRW50cnVzdCBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBALr0RAOqEmq1Q+xVkrYwfTVXDNvzDSduTPdQqJtOK2/b9a0c +S12zqcH+e0TrW6MFDR/FNCswACnxeECypP869AGIF37m1CbTukzqMvtDd5eHI8XbQ6P1KqNRXuE7 +0mVpflUVm3rnafdE4Fe1FehmYA8NA/uCjqPoEXtsvsdjDheT389Lrm5zdeDzqrmkwAkbhepxKYhB +MvnwKg5sCfJ0a2ZsUhMfGLzUPvfYbiCeyv78IZTuEyhL11xeDGbu6bsPwTSxfwh28z0mcMmLJR1i +JAzqHHVOwBLkuhMdMCktVjMFu5dZfsZJT4nXLySotohAtWSSU1Yk5KKghbNekLQSM80CAwEAAaOC +AwUwggMBMIIBtwYDVR0gBIIBrjCCAaowggGmBg8rBgEEAbE+AAACCSiDkTEwggGRMIIBSQYIKwYB +BQUHAgIwggE7GoIBN1JlbGlhbmNlIG9uIG9yIHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNyZWF0 +ZXMgYW4gYWNrbm93bGVkZ21lbnQgYW5kIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIHRoZSBDZXJ0aWZpY2F0aW9u +IFByYWN0aWNlIFN0YXRlbWVudCBhbmQgdGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50LCB3aGlj +aCBjYW4gYmUgZm91bmQgYXQgdGhlIGJlVFJVU1RlZCB3ZWIgc2l0ZSwgaHR0cHM6Ly93d3cuYmV0 +cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1sMEIGCCsGAQUFBwIBFjZodHRw +czovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWwwEQYJYIZI +AYb4QgEBBAQDAgAHMIGJBgNVHR8EgYEwfzB9oHugeaR3MHUxEjAQBgNVBAoTCWJlVFJVU1RlZDEb +MBkGA1UECxMSYmVUUlVTVGVkIFJvb3QgQ0FzMTMwMQYDVQQDEypiZVRSVVNUZWQgUm9vdCBDQSAt +IEVudHJ1c3QgSW1wbGVtZW50YXRpb24xDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMjA0 +MTEwODI0MjdagQ8yMDIyMDQxMTA4NTQyN1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFH1w5a44 +iwY/qhwaj/nPJDCqhIQWMB0GA1UdDgQWBBR9cOWuOIsGP6ocGo/5zyQwqoSEFjAMBgNVHRMEBTAD +AQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEAKrgX +zh8QlOu4mre5X+za95IkrNySO8cgjfKZ5V04ocI07cUTWVwFtStPYZuR+0H8/NU8TZh2BvWBfevd +kObRVlTa4y0MnxEylCIBevZsLHRnBMylj44ss0O1lKLQfelifwa+JwGDnjr9iu6YQ0pr17WXOzq/ +T220Y/ozADQuLW2WyXvKmWO6vvT2MKAtmJbpVkQFqUSjYRDrgqFnXbxdJ3Wqiig2KjiS2d2kXgCl +zMx8KSreKJCrt+G2/30lC0DYqjSjLd4H61/OCt3Kfjp9JsFiaDrmLzfzgYYhxKlkqu9FNtEaZnz4 +6TfW1mG+oq1I59/mdP7TbX3SJdysYlep9w== +-----END CERTIFICATE----- + +beTRUSTed Root CA - RSA Implementation +====================================== +-----BEGIN CERTIFICATE----- +MIIFaDCCBFCgAwIBAgIQO1nHe81bV569N1KsdrSqGjANBgkqhkiG9w0BAQUFADBiMRIwEAYDVQQK +EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEvMC0GA1UEAxMmYmVUUlVT +VGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wHhcNMDIwNDExMTExODEzWhcNMjIwNDEy +MTEwNzI1WjBiMRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENB +czEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkujQwCY5X0LkGLG9uJIAiv11DpvpPrILnHGhwhRuj +brWqeNluB0s/6d/16uhUoWGKDi9pdRi3DOUUjXFumLhV/AyV0Jtu4S2I1DpAa5LxmZZk3tv/ePTu +lh1HiXzUvrmIdyM6CeYEnm2qXtLIvZpOGd+J6lsOfsPktPDgaTuID0GQ+NRxQyTBjyZLO1bp/4xs +N+lFrYWMU8NghpBKlsmzVLC7F/AcRdnUGxlkVgoZ98zh/4avflherHqQH8koOUV7orbHnB/ahdQh +hlkwk75TMzf270HPM8ercmsl9fNTGwxMLvF1S++gh/f+ihXQbNXL+WhTuXAVE8L1LvtDNXUtAgMB +AAGjggIYMIICFDAMBgNVHRMEBTADAQH/MIIBtQYDVR0gBIIBrDCCAagwggGkBg8rBgEEAbE+AAAD +CSiDkTEwggGPMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNf +c2VydmljZXMvaW5kZXguaHRtbDCCAUgGCCsGAQUFBwICMIIBOhqCATZSZWxpYW5jZSBvbiBvciB1 +c2Ugb2YgdGhpcyBDZXJ0aWZpY2F0ZSBjcmVhdGVzIGFuIGFja25vd2xlZGdtZW50IGFuZCBhY2Nl +cHRhbmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlv +bnMgb2YgdXNlLCB0aGUgQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQgYW5kIHRoZSBS +ZWx5aW5nIFBhcnR5IEFncmVlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IHRoZSBiZVRSVVNU +ZWQgd2ViIHNpdGUsIGh0dHA6Ly93d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9p +bmRleC5odG1sMAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBSp7BR++dlDzFMrFK3P9/BZiUHNGTAd +BgNVHQ4EFgQUqewUfvnZQ8xTKxStz/fwWYlBzRkwDQYJKoZIhvcNAQEFBQADggEBANuXsHXqDMTB +mMpWBcCorSZIry0g6IHHtt9DwSwddUvUQo3neqh03GZCWYez9Wlt2ames30cMcH1VOJZJEnl7r05 +pmuKmET7m9cqg5c0Lcd9NUwtNLg+DcTsiCevnpL9UGGCqGAHFFPMZRPB9kdEadIxyKbdLrML3kqN +Wz2rDcI1UqJWN8wyiyiFQpyRQHpwKzg21eFzGh/l+n5f3NacOzDq28BbJ1zTcwfBwvNMm2+fG8oe +qqg4MwlYsq78B+g23FW6L09A/nq9BqaBwZMifIYRCgZ3SK41ty8ymmFei74pnykkiFY5LKjSq5YD +WtRIn7lAhAuYaPsBQ9Yb4gmxlxw= +-----END CERTIFICATE----- + +RSA Security 2048 v3 +==================== +-----BEGIN CERTIFICATE----- +MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy +MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 +Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb +WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH +KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP ++Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ +MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E +FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY +v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj +0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj +VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 +nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA +pKnXwiJPZ9d37CAFYd4= +-----END CERTIFICATE----- + +RSA Security 1024 v3 +==================== +-----BEGIN CERTIFICATE----- +MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAy +MjIyMTAxNDlaFw0yNjAyMjIyMDAxNDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV +3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dYrIMKo1W1exeQFYRMiu4m +mdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYtbzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1Blq +FikYvtc6adwlWzMaUQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAf +BgNVHSMEGDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1NAdRU2qUM +X96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRyHUZXxGFraZ8SmyzVWujAovBD +leMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNu +mU4/iXgDmMrzVcydro7BqkWY+o8aoI2II/EVQQ2lRj6RP4vr93E= +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Global CA 2 +==================== +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw +MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ +NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k +LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA +Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b +HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH +K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 +srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh +ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL +OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC +x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF +H4z1Ir+rzoPz4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +UTN-USER First-Network Applications +=================================== +-----BEGIN CERTIFICATE----- +MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp +BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5 +WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T +YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB +cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug +mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj +DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu +Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi +P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE +j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w +HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j +cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G +CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y +IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK +RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp +xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq +DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE +-----END CERTIFICATE----- + +America Online Root Certification Authority 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG +v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z +DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh +sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP +8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z +o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf +GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF +VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft +3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g +Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds +sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 +-----END CERTIFICATE----- + +America Online Root Certification Authority 2 +============================================= +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en +fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8 +f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO +qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN +RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0 +gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn +6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid +FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6 +Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj +B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op +aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY +T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p ++DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg +JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy +zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO +ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh +1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf +GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff +Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP +cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk= +-----END CERTIFICATE----- + +Visa eCommerce Root +=================== +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG +EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug +QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 +WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm +VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv +bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL +F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b +RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 +TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI +/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs +GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG +MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc +CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW +YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz +zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu +YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt +398znM/jra6O1I7mT1GvFpLgXPYHDw== +-----END CERTIFICATE----- + +TC TrustCenter, Germany, Class 2 CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI +EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig +U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD +bGFzcyAyIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05 +ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt +YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy +aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg +MiBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI +hvcNAQEBBQADgY0AMIGJAoGBANo46O0yAClxgwENv4wB3NrGrTmkqYov1YtcaF9QxmL1Zr3KkSLs +qh1R1z2zUbKDTl3LSbDwTFXlay3HhQswHJJOgtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5N +u6hLVxa8/vhYnvgpjbB7zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy +LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBAIRS+yjf +/x91AbwBvgRWl2p0QiQxg/lGsQaKic+WLDO/jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ2 +9ELw+HkuCkhcq8xRT3h2oNmsGb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/Ac +ASZ4smZHcFFk +-----END CERTIFICATE----- + +TC TrustCenter, Germany, Class 3 CA +=================================== +-----BEGIN CERTIFICATE----- +MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI +EwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFUQyBUcnVzdENlbnRlciBmb3Ig +U2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBD +bGFzcyAzIENBMSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05 +ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFt +YnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3Vy +aXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3Mg +MyBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZI +hvcNAQEBBQADgY0AMIGJAoGBALa0wTUFLg2N7KBAahwOJ6ZQkmtQGwfeLud2zODa/ISoXoxjaitN +2U4CdhHBC/KNecoAtvGwDtf7pBc9r6tpepYnv68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+7 +7uMMfTDWw1Krj10nnGvAo+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRydXN0Y2VudGVy +LmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0GCSqGSIb3DQEBBAUAA4GBABY9xs3B +u4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4iJIETb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm +5gZOngylerpuw3yCGdHHsbHD2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQS +CdS7kjXvD9s0 +-----END CERTIFICATE----- + +Certum Root CA +============== +-----BEGIN CERTIFICATE----- +MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK +ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla +Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u +by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x +wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL +kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ +89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K +Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P +NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ +GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg +GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ +0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS +qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +Comodo Secure Services root +=========================== +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw +MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu +Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi +BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP +9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc +rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC +oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V +p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E +FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj +YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm +aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm +4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL +DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw +pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H +RR3B7Hzs/Sk= +-----END CERTIFICATE----- + +Comodo Trusted Services root +============================ +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw +MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h +bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw +IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 +3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y +/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 +juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS +ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud +DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp +ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl +cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw +uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA +BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l +R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O +9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +IPS Chained CAs root +==================== +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARwxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEzMDEGA1UECxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MTMwMQYDVQQDEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczAeFw0wMTEyMjkwMDUzNThaFw0yNTEy +MjcwMDUzNThaMIIBHDELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJ +QmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwu +MSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMTMwMQYDVQQLEypJ +UFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMzAxBgNVBAMTKklQUyBD +QSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBz +QG1haWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcVpJJspQgvJhPUOtopKdJ +C7/SMejHT8KGC/po/UNaivNgkjWZOLtNA1IhW/A3mTXhQSCBhYEFcYGdtJUZqV92NC5jNzVXjrQf +Qj8VXOF6wV8TGDIxya2+o8eDZh65nAQTy2nBBt4wBrszo7Uf8I9vzv+W6FS+ZoCua9tBhDaiPQID +AQABo4IEQzCCBD8wHQYDVR0OBBYEFKGtMbH5PuEXpsirNPxShwkeYlJBMIIBTgYDVR0jBIIBRTCC +AUGAFKGtMbH5PuEXpsirNPxShwkeYlJBoYIBJKSCASAwggEcMQswCQYDVQQGEwJFUzESMBAGA1UE +CBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBw +dWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4g +IEItNjA5Mjk0NTIxMzAxBgNVBAsTKklQUyBDQSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTEzMDEGA1UEAxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24gQXV0aG9y +aXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNV +HQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUF +BwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGC +NwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1Ud +EgQTMBGBD2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ2hhaW5lZCBDQSBDZXJ0aWZp +Y2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8v +d3d3Lmlwcy5lcy9pcHMyMDAyLzA3BglghkgBhvhCAQQEKhYoaHR0cDovL3d3dy5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0FDLmNybDA8BglghkgBhvhCAQMELxYtaHR0cDovL3d3dy5pcHMuZXMvaXBz +MjAwMi9yZXZvY2F0aW9uQ0FDLmh0bWw/MDkGCWCGSAGG+EIBBwQsFipodHRwOi8vd3d3Lmlwcy5l +cy9pcHMyMDAyL3JlbmV3YWxDQUMuaHRtbD8wNwYJYIZIAYb4QgEIBCoWKGh0dHA6Ly93d3cuaXBz +LmVzL2lwczIwMDIvcG9saWN5Q0FDLmh0bWwwbQYDVR0fBGYwZDAuoCygKoYoaHR0cDovL3d3dy5p +cHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDAyoDCgLoYsaHR0cDovL3d3d2JhY2suaXBzLmVz +L2lwczIwMDIvaXBzMjAwMkNBQy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAERyMJ1WWKJBGyi3leGmGpVfp3hAK+/b +lkr8THFj2XOVvQLiogbHvpcqk4A0hgP63Ng9HgfNHnNDJGD1HWHc3JagvPsd4+cSACczAsDAK1M9 +2GsDgaPb1pOVIO/Tln4mkImcJpvNb2ar7QMiRDjMWb2f2/YHogF/JsRj9SVCXmK9 +-----END CERTIFICATE----- + +IPS CLASE1 root +=============== +-----BEGIN CERTIFICATE----- +MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG +SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAwNTkzOFoXDTI1MTIyNzAwNTkzOFow +ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx +LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU +Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT +RTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTEgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq +hkiG9w0BAQEFAAOBjQAwgYkCgYEA4FEnpwvdr9G5Q1uCN0VWcu+atsIS7ywSzHb5BlmvXSHU0lq4 +oNTzav3KaY1mSPd05u42veiWkXWmcSjK5yISMmmwPh5r9FBSYmL9Yzt9fuzuOOpi9GyocY3h6YvJ +P8a1zZRCb92CRTzo3wno7wpVqVZHYUxJZHMQKD/Kvwn/xi8CAwEAAaOCBEowggRGMB0GA1UdDgQW +BBTrsxl588GlHKzcuh9morKbadB4CDCCAUQGA1UdIwSCATswggE3gBTrsxl588GlHKzcuh9morKb +adB4CKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE +BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz +LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL +EyVJUFMgQ0EgQ0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg +Q0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p +cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB +BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB +BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R +BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB +hvhCAQ0ENBYyQ0xBU0UxIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l +cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB +BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTEuY3JsMD8GCWCGSAGG ++EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTEuaHRtbD8w +PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMS5o +dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT +RTEuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw +MDJDTEFTRTEuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy +Q0xBU0UxLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l +cy8wDQYJKoZIhvcNAQEFBQADgYEAK9Dr/drIyllq2tPMMi7JVBuKYn4VLenZMdMu9Ccj/1urxUq2 +ckCuU3T0vAW0xtnIyXf7t/k0f3gA+Nak5FI/LEpjV4F1Wo7ojPsCwJTGKbqz3Bzosq/SLmJbGqmO +DszFV0VRFOlOHIilkfSj945RyKm+hjM+5i9Ibq9UkE6tsSU= +-----END CERTIFICATE----- + +IPS CLASE3 root +=============== +-----BEGIN CERTIFICATE----- +MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqG +SIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMDE0NFoXDTI1MTIyNzAxMDE0NFow +ggESMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx +LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzApBgNVBAoU +Imlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAsBgNVBAsTJUlQUyBDQSBDTEFT +RTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLjAsBgNVBAMTJUlQUyBDQSBDTEFTRTMgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkq +hkiG9w0BAQEFAAOBjQAwgYkCgYEAqxf+DrDGaBtT8FK+n/ra+osTBLsBjzLZH49NzjaY2uQARIwo +2BNEKqRrThckQpzTiKRBgtYj+4vJhuW5qYIF3PHeH+AMmVWY8jjsbJ0gA8DvqqPGZARRLXgNo9Ko +OtYkTOmWehisEyMiG3zoMRGzXwmqMHBxRiVrSXGAK5UBsh8CAwEAAaOCBEowggRGMB0GA1UdDgQW +BBS4k/8uy9wsjqLnev42USGjmFsMNDCCAUQGA1UdIwSCATswggE3gBS4k/8uy9wsjqLnev42USGj +mFsMNKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UE +BxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBz +LmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQL +EyVJUFMgQ0EgQ0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMgQ0Eg +Q0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p +cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMB +BggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB +BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0R +BBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBBBglghkgB +hvhCAQ0ENBYyQ0xBU0UzIENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5l +cy8wKQYJYIZIAYb4QgECBBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIB +BAQtFitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTMuY3JsMD8GCWCGSAGG ++EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25DTEFTRTMuaHRtbD8w +PAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMy5o +dG1sPzA6BglghkgBhvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT +RTMuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIw +MDJDTEFTRTMuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAy +Q0xBU0UzLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5l +cy8wDQYJKoZIhvcNAQEFBQADgYEAF2VcmZVDAyevJuXr0LMXI/dDqsfwfewPxqmurpYPdikc4gYt +fibFPPqhwYHOU7BC0ZdXGhd+pFFhxu7pXu8Fuuu9D6eSb9ijBmgpjnn1/7/5p6/ksc7C0YBCJwUE +NPjDfxZ4IwwHJPJGR607VNCv1TGyr33I6unUVtkOE7LFRVA= +-----END CERTIFICATE----- + +IPS CLASEA1 root +================ +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ +KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNTMyWhcNMjUxMjI3MDEwNTMy +WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u +YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE +ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM +QVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w +DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALsw19zQVL01Tp/FTILq0VA8R5j8m2mdd81u4D/u6zJf +X5/S0HnllXNEITLgCtud186Nq1KLK3jgm1t99P1tCeWu4WwdByOgF9H5fahGRpEiqLJpxq339fWU +oTCUvQDMRH/uxJ7JweaPCjbB/SQ9AaD1e+J8eGZDi09Z8pvZ+kmzAgMBAAGjggRTMIIETzAdBgNV +HQ4EFgQUZyaW56G/2LUDnf473P7yiuYV3TAwggFGBgNVHSMEggE9MIIBOYAUZyaW56G/2LUDnf47 +3P7yiuYV3TChggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ +BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj +ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G +A1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ +UyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA +bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG +AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB +FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw +GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC +BglghkgBhvhCAQ0ENRYzQ0xBU0VBMSBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3 +dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg +hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmww +QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF +QTEuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh +bENMQVNFQTEuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv +cG9saWN5Q0xBU0VBMS5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw +czIwMDIvaXBzMjAwMkNMQVNFQTEuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0xBU0VBMS5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAH66iqyAAIQVCtWYUQxkxZwCWINmyq0e +B81+atqAB98DNEock8RLWCA1NnHtogo1EqWmZaeFaQoO42Hu6r4okzPV7Oi+xNtff6j5YzHIa5bi +KcJboOeXNp13XjFr/tOn2yrb25aLH2betgPAK7N41lUH5Y85UN4HI3LmvSAUS7SG +-----END CERTIFICATE----- + +IPS CLASEA3 root +================ +-----BEGIN CERTIFICATE----- +MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ +KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcNMDExMjI5MDEwNzUwWhcNMjUxMjI3MDEwNzUw +WjCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9u +YTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UE +ChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBTIENBIENM +QVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8w +DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAO6AAPYaZC6tasiDsYun7o/ZttvNG7uGBiJ2MwwSbUhW +YdLcgiViL5/SaTBlA0IjWLxH3GvWdV0XPOH/8lhneaDBgbHUVqLyjRGZ/fZ98cfEXgIqmuJKtROK +AP2Md4bm15T1IHUuDky/dMQ/gT6DtKM4Ninn6Cr1jIhBqoCm42zvAgMBAAGjggRTMIIETzAdBgNV +HQ4EFgQUHp9XUEe2YZM50yz82l09BXW3mQIwggFGBgNVHSMEggE9MIIBOYAUHp9XUEe2YZM50yz8 +2l09BXW3mQKhggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQ +BgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2Vydmlj +ZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0G +A1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMTJklQ +UyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA +bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsG +AQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIB +FQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw +GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBC +BglghkgBhvhCAQ0ENRYzQ0xBU0VBMyBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3 +dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7Bglg +hkgBhvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmww +QAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmV2b2NhdGlvbkNMQVNF +QTMuaHRtbD8wPQYJYIZIAYb4QgEHBDAWLmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdh +bENMQVNFQTMuaHRtbD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv +cG9saWN5Q0xBU0VBMy5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93d3cuaXBzLmVzL2lw +czIwMDIvaXBzMjAwMkNMQVNFQTMuY3JsMDagNKAyhjBodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBz +MjAwMi9pcHMyMDAyQ0xBU0VBMy5jcmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRw +Oi8vb2NzcC5pcHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAEo9IEca2on0eisxeewBwMwB9dbB/MjD +81ACUZBYKp/nNQlbMAqBACVHr9QPDp5gJqiVp4MI3y2s6Q73nMify5NF8bpqxmdRSmlPa/59Cy9S +KcJQrSRE7SOzSMtEQMEDlQwKeAYSAfWRMS1Jjbs/RU4s4OjNtckUFQzjB4ObJnXv +-----END CERTIFICATE----- + +IPS Servidores root +=================== +-----BEGIN CERTIFICATE----- +MIICtzCCAiACAQAwDQYJKoZIhvcNAQEEBQAwgaMxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJD +RUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcGA1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYG +A1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3 +DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTk4MDEwMTIzMjEwN1oXDTA5MTIyOTIzMjEwN1owgaMx +CzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcG +A1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UECxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQD +Ew5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMIGfMA0GCSqG +SIb3DQEBAQUAA4GNADCBiQKBgQCsT1J0nznqjtwlxLyYXZhkJAk8IbPMGbWOlI6H0fg3PqHILVik +gDVboXVsHUUMH2Fjal5vmwpMwci4YSM1gf/+rHhwLWjhOgeYlQJU3c0jt4BT18g3RXIGJBK6E2Eh +im51KODFDzT9NthFf+G4Nu+z4cYgjui0OLzhPvYR3oydAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GB +ACzzw3lYJN7GO9HgQmm47mSzPWIBubOE3yN93ZjPEKn+ANgilgUTB1RXxafey9m4iEL2mdsUdx+2 +/iU94aI+A6mB0i1sR/WWRowiq8jMDQ6XXotBtDvECgZAHd1G9AHduoIuPD14cJ58GNCr+Lh3B0Zx +8coLY1xq+XKU1QFPoNtC +-----END CERTIFICATE----- + +IPS Timestamping root +===================== +-----BEGIN CERTIFICATE----- +MIIIODCCB6GgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCAR4xCzAJBgNVBAYTAkVTMRIwEAYDVQQI +EwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIEludGVybmV0IHB1 +Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAg +Qi02MDkyOTQ1MjE0MDIGA1UECxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTE0MDIGA1UEAxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAxMTIyOTAxMTAxOFoXDTI1 +MTIyNzAxMTAxOFowggEeMQswCQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQH +EwlCYXJjZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMu +bC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxNDAyBgNVBAsT +K0lQUyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxNDAyBgNVBAMTK0lQ +UyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEW +D2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLjuVqWajOY2ycJi +oGaBjRrVetJznw6EZLqVtJCneK/K/lRhW86yIFcBrkSSQxA4Efdo/BdApWgnMjvEp+ZCccWZ73b/ +K5Uk9UmSGGjKALWkWi9uy9YbLA1UZ2t6KaFYq6JaANZbuxjC3/YeE1Z2m6Vo4pjOxgOKNNtMg0Gm +qaMCAwEAAaOCBIAwggR8MB0GA1UdDgQWBBSL0BBQCYHynQnVDmB4AyKiP8jKZjCCAVAGA1UdIwSC +AUcwggFDgBSL0BBQCYHynQnVDmB4AyKiP8jKZqGCASakggEiMIIBHjELMAkGA1UEBhMCRVMxEjAQ +BgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu +ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5J +LkYuICBCLTYwOTI5NDUyMTQwMgYDVQQLEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRp +b24gQXV0aG9yaXR5MTQwMgYDVQQDEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB +/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMG +CCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK +KwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVz +MBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBHBglghkgBhvhCAQ0EOhY4VGltZXN0YW1waW5n +IENBIENlcnRpZmljYXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC +BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMEAGCWCGSAGG+EIBBAQzFjFodHRwOi8vd3d3 +Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMEUGCWCGSAGG+EIBAwQ4FjZo +dHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jldm9jYXRpb25UaW1lc3RhbXBpbmcuaHRtbD8wQgYJ +YIZIAYb4QgEHBDUWM2h0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbFRpbWVzdGFtcGlu +Zy5odG1sPzBABglghkgBhvhCAQgEMxYxaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lU +aW1lc3RhbXBpbmcuaHRtbDB/BgNVHR8EeDB2MDegNaAzhjFodHRwOi8vd3d3Lmlwcy5lcy9pcHMy +MDAyL2lwczIwMDJUaW1lc3RhbXBpbmcuY3JsMDugOaA3hjVodHRwOi8vd3d3YmFjay5pcHMuZXMv +aXBzMjAwMi9pcHMyMDAyVGltZXN0YW1waW5nLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYBBQUH +MAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZIhvcNAQEFBQADgYEAZbrBzAAalZHK6Ww6vzoe +FAh8+4Pua2JR0zORtWB5fgTYXXk36MNbsMRnLWhasl8OCvrNPzpFoeo2zyYepxEoxZSPhExTCMWT +s/zif/WN87GphV+I3pGW7hdbrqXqcGV4LCFkAZXOzkw+UPS2Wctjjba9GNSHSl/c7+lW8AoM6HU= +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 1 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw +NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88 +7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9 +EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl +0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645 +2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa +HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT +iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9 +28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV +yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR +vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P +qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z +IRlXvVWa +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA +============================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE +ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w +HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh +bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt +vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P +jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca +C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth +vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 +22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV +HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v +dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN +BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR +EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw +MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y +nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR +iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== +-----END CERTIFICATE----- + +TDC Internet Root CA +==================== +-----BEGIN CERTIFICATE----- +MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE +ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx +NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu +ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j +xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL +znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc +5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6 +otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI +AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM +VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM +MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC +AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe +UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G +CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m +gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+ +2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb +O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU +Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l +-----END CERTIFICATE----- + +TDC OCES Root CA +================ +-----BEGIN CERTIFICATE----- +MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE +ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5 +MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH +nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0 +zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV +iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde +dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO +3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB +5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k +ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm +cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp +Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x +LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM +MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm +aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy +MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647 ++RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6 +NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4 +A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc +A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9 +AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1 +AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw== +-----END CERTIFICATE----- + +UTN DATACorp SGC Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ +BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa +MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w +HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy +dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys +raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo +wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA +9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv +33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud +DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 +BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD +LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 +DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 +I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx +EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP +DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- + +UTN USERFirst Email Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0 +BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05 +OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx +FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx +ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz +dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx +B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8 +om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG +TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl +yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE +AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV +HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll +bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH +AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne +xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+ +5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV +NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ +w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ= +-----END CERTIFICATE----- + +UTN USERFirst Hardware Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- + +UTN USERFirst Object Root CA +============================ +-----BEGIN CERTIFICATE----- +MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb +BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz +NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx +HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy +dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR +loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ +w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu +lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7 +RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL +BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8 +ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly +c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw +DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw +NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO +PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE +qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG +hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g= +-----END CERTIFICATE----- + +Camerfirma Chambers of Commerce Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx +NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp +cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn +MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC +AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU +xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH +NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW +DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV +d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud +EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v +cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P +AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh +bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD +VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz +aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi +fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD +L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN +UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n +ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 +erfutGWaIZDgqtCYvDi1czyL+Nw= +-----END CERTIFICATE----- + +Camerfirma Global Chambersign Root +================================== +-----BEGIN CERTIFICATE----- +MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx +NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt +YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg +MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw +ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J +1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O +by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl +6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c +8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ +BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j +aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B +Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj +aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y +ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh +bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA +PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y +gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ +PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 +IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes +t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== +-----END CERTIFICATE----- + +NetLock Qualified (Class QA) Root +================================= +-----BEGIN CERTIFICATE----- +MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn +eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0 +bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER +MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0 +LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0 +dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP +aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV +CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e +8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb +m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ +0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM +0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2 +YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh +biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p +a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz +YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg +YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg +ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov +L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr +Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0 +aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg +YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0 +IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3 +DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN +wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg +W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc +R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR +5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko +-----END CERTIFICATE----- + +NetLock Notary (Class A) Root +============================= +-----BEGIN CERTIFICATE----- +MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI +EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j +ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX +DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH +EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD +VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz +cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM +D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ +z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC +/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 +tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 +4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG +A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC +Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv +bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu +IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn +LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 +ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz +IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh +IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu +b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh +bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg +Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp +bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 +ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP +ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB +CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr +KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM +8CgHrTwXZoi1/baI +-----END CERTIFICATE----- + +NetLock Business (Class B) Root +=============================== +-----BEGIN CERTIFICATE----- +MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg +VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD +VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv +bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg +VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S +o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr +1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ +RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh +dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0 +ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv +c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg +YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh +c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz +Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA +bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl +IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2 +YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj +cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM +43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR +stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI +-----END CERTIFICATE----- + +NetLock Express (Class C) Root +============================== +-----BEGIN CERTIFICATE----- +MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD +KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ +BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j +ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB +jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z +W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63 +euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw +DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN +RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn +YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB +IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i +aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0 +ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs +ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo +dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y +emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k +IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ +UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg +YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2 +xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW +gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A== +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +StartCom Ltd. +============= +-----BEGIN CERTIFICATE----- +MIIFFjCCBH+gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgT +BklzcmFlbDEOMAwGA1UEBxMFRWlsYXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsT +EUNBIEF1dGhvcml0eSBEZXAuMSkwJwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEhMB8GCSqGSIb3DQEJARYSYWRtaW5Ac3RhcnRjb20ub3JnMB4XDTA1MDMxNzE3Mzc0OFoX +DTM1MDMxMDE3Mzc0OFowgbAxCzAJBgNVBAYTAklMMQ8wDQYDVQQIEwZJc3JhZWwxDjAMBgNVBAcT +BUVpbGF0MRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMRowGAYDVQQLExFDQSBBdXRob3JpdHkgRGVw +LjEpMCcGA1UEAxMgRnJlZSBTU0wgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxITAfBgkqhkiG9w0B +CQEWEmFkbWluQHN0YXJ0Y29tLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7YRgACOe +yEpRKSfeOqE5tWmrCbIvNP1h3D3TsM+x18LEwrHkllbEvqoUDufMOlDIOmKdw6OsWXuO7lUaHEe+ +o5c5s7XvIywI6Nivcy+5yYPo7QAPyHWlLzRMGOh2iCNJitu27Wjaw7ViKUylS7eYtAkUEKD4/mJ2 +IhULpNYILzUCAwEAAaOCAjwwggI4MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHmMB0GA1Ud +DgQWBBQcicOWzL3+MtUNjIExtpidjShkjTCB3QYDVR0jBIHVMIHSgBQcicOWzL3+MtUNjIExtpid +jShkjaGBtqSBszCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgTBklzcmFlbDEOMAwGA1UEBxMFRWls +YXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsTEUNBIEF1dGhvcml0eSBEZXAuMSkw +JwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS +YWRtaW5Ac3RhcnRjb20ub3JnggEAMB0GA1UdEQQWMBSBEmFkbWluQHN0YXJ0Y29tLm9yZzAdBgNV +HRIEFjAUgRJhZG1pbkBzdGFydGNvbS5vcmcwEQYJYIZIAYb4QgEBBAQDAgAHMC8GCWCGSAGG+EIB +DQQiFiBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAyBglghkgBhvhCAQQEJRYjaHR0 +cDovL2NlcnQuc3RhcnRjb20ub3JnL2NhLWNybC5jcmwwKAYJYIZIAYb4QgECBBsWGWh0dHA6Ly9j +ZXJ0LnN0YXJ0Y29tLm9yZy8wOQYJYIZIAYb4QgEIBCwWKmh0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9y +Zy9pbmRleC5waHA/YXBwPTExMTANBgkqhkiG9w0BAQQFAAOBgQBscSXhnjSRIe/bbL0BCFaPiNhB +OlP1ct8nV0t2hPdopP7rPwl+KLhX6h/BquL/lp9JmeaylXOWxkjHXo0Hclb4g4+fd68p00UOpO6w +NnQt8M2YI3s3S9r+UZjEHjQ8iP2ZO1CnwYszx8JSFhKVU2Ui77qLzmLbcCOxgN8aIDjnfg== +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj +YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH +AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw +Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg +U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 +LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh +cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT +dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC +AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh +3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm +vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk +fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 +fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ +EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl +1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ +lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro +g14= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +Firmaprofesional Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT +GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp +Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA +ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL +MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT +OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2 +ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V +j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH +lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf +3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8 +NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww +KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG +AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD +ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq +u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf +wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm +7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG +VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA= +-----END CERTIFICATE----- + +Wells Fargo Root CA +=================== +-----BEGIN CERTIFICATE----- +MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl +bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv +MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX +x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3 +E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5 +OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j +sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj +YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF +BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD +ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv +m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R +OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx +x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023 +tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s= +-----END CERTIFICATE----- + +Swisscom Root CA 1 +================== +-----BEGIN CERTIFICATE----- +MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG +EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy +dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 +MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln +aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM +MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF +NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe +AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC +b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn +7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN +cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp +WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 +haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY +MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j +BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 +MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn +jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ +MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H +VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl +vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl +OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 +1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq +nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy +x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW +NY6E0F/6MBr1mmz0DlP5OlvRHA== +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +Certplus Class 2 Primary CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE +BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN +OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy +dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR +5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ +Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO +YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e +e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME +CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ +YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t +L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD +P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R +TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ +7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW +//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +DST ACES CA X6 +============== +-----BEGIN CERTIFICATE----- +MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT +MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha +MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE +CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI +DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa +pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow +GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy +MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu +Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy +dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU +CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 +5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t +Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq +nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs +vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 +oKfN5XozNmr6mis= +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 1 +============================================== +-----BEGIN CERTIFICATE----- +MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP +MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0 +acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx +MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg +U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB +TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC +aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX +yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i +Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ +8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4 +W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME +BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46 +sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE +q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy +B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY +nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN +MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr +dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G +A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls +acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe +LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI +x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g +QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr +5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB +AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt +Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 +Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ +hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P +9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 +UrbnBEI= +-----END CERTIFICATE----- + +SwissSign Platinum CA - G2 +========================== +-----BEGIN CERTIFICATE----- +MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIw +HhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMM +U3dpc3NTaWduIEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu +669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UF +eNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kne +WCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIo +j5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/6 +8++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34T +aNhxKFrYzt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjy +domyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3HBqi7Ri6Cr2D ++m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuWae5ogObnmLo2t/5u7Su9IPhlGdpV +CX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv +zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW +IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1 +Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3 +NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4 +U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8 +KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl +9x8DYSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1B +aYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyIIoK6q8QNs +OktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSY +Mdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAci +IfNAChs0B0QTwoRqjt8ZWr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g== +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +DigiNotar Root CA +================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQDHbanJEMTiye/hXQWJM8TDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQG +EwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90YXIgUm9vdCBDQTEgMB4G +CSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwHhcNMDcwNTE2MTcxOTM2WhcNMjUwMzMxMTgx +OTIxWjBfMQswCQYDVQQGEwJOTDESMBAGA1UEChMJRGlnaU5vdGFyMRowGAYDVQQDExFEaWdpTm90 +YXIgUm9vdCBDQTEgMB4GCSqGSIb3DQEJARYRaW5mb0BkaWdpbm90YXIubmwwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCssFjBAL3YIQgLK5r+blYwBZ8bd5AQQVzDDYcRd46B8cp86Yxq +7Th0Nbva3/m7wAk3tJZzgX0zGpg595NvlX89ubF1h7pRSOiLcD6VBMXYtsMW2YiwsYcdcNqGtA8U +i3rPENF0NqISe3eGSnnme98CEWilToauNFibJBN4ViIlHgGLS1Fx+4LMWZZpiFpoU8W5DQI3y0u8 +ZkqQfioLBQftFl9VkHXYRskbg+IIvvEjzJkd1ioPgyAVWCeCLvriIsJJsbkBgWqdbZ1Ad2h2TiEq +bYRAhU52mXyC8/O3AlnUJgEbjt+tUwbRrhjd4rI6y9eIOI6sWym5GdOY+RgDz0iChmYLG2kPyes4 +iHomGgVMktck1JbyrFIto0fVUvY//s6EBnCmqj6i8rZWNBhXouSBbefK8GrTx5FrAoNBfBXva5pk +XuPQPOWx63tdhvvL5ndJzaNl3Pe5nLjkC1+Tz8wwGjIczhxjlaX56uF0i57pK6kwe6AYHw4YC+Vb +qdPRbB4HZ4+RS6mKvNJmqpMBiLKR+jFc1abBUggJzQpjotMipuih2TkGl/VujQKQjBR7P4DNG5y6 +xFhyI6+2Vp/GekIzKQc/gsnmHwUNzUwoNovTyD4cxojvXu6JZOkd69qJfjKmadHdzIif0dDJZiHc +BmfFlHqabWJMfczgZICynkeOowIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQUiGi/4I41xDs4a2L3KDuEgcgM100wDQYJKoZIhvcNAQEFBQADggIBADsC +jcs8MOhuoK3yc7NfniUTBAXT9uOLuwt5zlPe5JbF0a9zvNXD0EBVfEB/zRtfCdXyfJ9oHbtdzno5 +wozWmHvFg1Wo1X1AyuAe94leY12hE8JdiraKfADzI8PthV9xdvBoY6pFITlIYXg23PFDk9Qlx/KA +ZeFTAnVR/Ho67zerhChXDNjU1JlWbOOi/lmEtDHoM/hklJRRl6s5xUvt2t2AC298KQ3EjopyDedT +FLJgQT2EkTFoPSdE2+Xe9PpjRchMPpj1P0G6Tss3DbpmmPHdy59c91Q2gmssvBNhl0L4eLvMyKKf +yvBovWsdst+Nbwed2o5nx0ceyrm/KkKRt2NTZvFCo+H0Wk1Ya7XkpDOtXHAd3ODy63MUkZoDweoA +ZbwH/M8SESIsrqC9OuCiKthZ6SnTGDWkrBFfGbW1G/8iSlzGeuQX7yCpp/Q/rYqnmgQlnQ7KN+ZQ +/YxCKQSa7LnPS3K94gg2ryMvYuXKAdNw23yCIywWMQzGNgeQerEfZ1jEO1hZibCMjFCz2IbLaKPE +CudpSyDOwR5WS5WpI2jYMNjD67BVUc3l/Su49bsRn1NU9jQZjHkJNsphFyUXC4KYcwx3dMPVDceo +EkzHp1RxRy4sGn3J4ys7SN4nhKdjNrN9j6BkOSQNPXuHr2ZcdBtLc7LljPCGmbjlxd+Ewbfr +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +WellsSecure Public Root Certificate Authority +============================================= +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM +F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw +NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl +bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD +VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 +iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 +i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 +bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB +K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB +AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu +cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm +lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB +i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww +GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI +K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 +bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj +qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es +E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ +tylv2G0xffX8oRAHh84vWdw+WNs= +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +MD5 Collisions Forged Rogue CA 25c3 +=================================== +-----BEGIN CERTIFICATE----- +MIIEMjCCA5ugAwIBAgIBQjANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp +bmVzcyBDQS0xMB4XDTA0MDczMTAwMDAwMVoXDTA0MDkwMjAwMDAwMVowPDE6MDgGA1UEAxMxTUQ1 +IENvbGxpc2lvbnMgSW5jLiAoaHR0cDovL3d3dy5waHJlZWRvbS5vcmcvbWQ1KTCBnzANBgkqhkiG +9w0BAQEFAAOBjQAwgYkCgYEAuqZZySwo1iqw+O2fRqSkN+4OGWhZ0bMDmVHWFppeN2sV4A5L9YRk ++KPbQW811ZsVH9vEOFJwgZdej6C193458DKsHq1E0rP6SMPOkZvs9Jx84Vr1yDdrmoPe58oglzFC +cxWRaPSIr/koKMXpD3OwF0sTTJl10ETmfghsGvJPG0ECAwEAAaOCAiQwggIgMAsGA1UdDwQEAwIB +xjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSnBGAfq3JDCMV/CJBVVhzWzuY46zAfBgNVHSME +GDAWgBS+qKB0clBrRLfJI9j7qP+zV2tobDCCAb4GCWCGSAGG+EIBDQSCAa8WggGrMwAAACdeOeCJ +YQ9Oo8VFCza7AdFTqsMIj2/4Tz6Hh0QR3GDg35JV+bhzG1STxZ/QRsRgtjVizbmvHKhpGslbPJY3 +wO1n77v+wIucUC8pvYMino4I+qwTcKJYf2JiihH3ifbftmdZcxb7YxaKtJE4zi71tr5MpJRJ5GUR +CkIVycEw4mnVRX2lJru5YexiZPA54ee8aNhQUZ4dYNPRo6cK+AMgoXABF5E2TwJwMYaD3fcP2Acd +EbMTBKXc8K5QsSgOY2kqDIJvj0cz32yiBpLxT0W+2TA2oyuM1neuNWN/Tkyak0g22Z8CAwEAAaOB +vTCBujAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0OBBYEFM2mg/qlYDf3ljcXKd5BePGHiVXnMDsGA1Ud +HwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwuZ2VvdHJ1c3QuY29tL2NybHMvZ2xvYmFsY2ExLmNybDAf +BgNVHSMEGDAWgBS+qKB0clBrRLfJI9j7qP+zV2tobDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB +BQUHAwIwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQQFAAOBgQCnIQKN0Q6igHcl/UNgFY/s75BH +1IRCFSYRHM3CPBApqbbfq1d1kdrlK7OQRRwwY1Y/itlQ+u1YbMBlrGZX3hzGdjv1AA6ORc5/TJDs +K8bNs7SPYtD+t8UmckTt9phbrsvRlfXaCL5oRrF1yOwdjx56lPGqU3iiRa5U6tGedMh2Zw== +-----END CERTIFICATE----- diff --git a/source/n/curl/curl.SlackBuild b/source/n/curl/curl.SlackBuild new file mode 100755 index 000000000..5775024a6 --- /dev/null +++ b/source/n/curl/curl.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=7.19.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-curl + +# Uncomment to build a no-SSL version: +#SSLOPT=--without-ssl + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf curl-$VERSION +tar xvf $CWD/curl-$VERSION.tar.bz2 || exit 1 +cd curl-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --with-ca-bundle=/usr/share/curl/ca-bundle.crt \ + $SSLOPT + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/share/curl +cp -a $CWD/cacert.pem.bz2 $PKG/usr/share/curl +( cd $PKG/usr/share/curl + bzip2 -d cacert.pem.bz2 + mv cacert.pem ca-bundle.crt + chown root:root ca-bundle.crt + chmod 644 ca-bundle.crt +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libcurl.a + +mkdir -p $PKG/usr/doc/curl-$VERSION +cp -a \ + CHANGES COPYING README UPGRADE \ + $PKG/usr/doc/curl-$VERSION +( cd docs + rm -rf Makefile* curl-config.1 curl-config.html curl.1 curl.html libcurl + cp -a \ + BUGS CONTRIBUTE FAQ FEATURES INSTALL INTERNALS MANUAL README.win32 RESOURCES THANKS TODO examples \ + $PKG/usr/doc/curl-$VERSION ) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/curl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/curl/slack-desc b/source/n/curl/slack-desc new file mode 100644 index 000000000..0fe5c532c --- /dev/null +++ b/source/n/curl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +curl: curl (command line URL data transfer tool) +curl: +curl: Curl is a command line tool for transferring data specified with URL +curl: syntax. The command is designed to work without user interaction or +curl: any kind of interactivity. Curl offers a busload of useful tricks +curl: like proxy support, user authentication, ftp upload, HTTP post, SSL +curl: (https:) connections, cookies, file transfer resume and more. +curl: +curl: libcurl is a library that Curl uses to do its job. It is readily +curl: available to be used by your software, too. +curl: diff --git a/source/n/cyrus-sasl/cyrus-sasl.SlackBuild b/source/n/cyrus-sasl/cyrus-sasl.SlackBuild new file mode 100755 index 000000000..c4aebb481 --- /dev/null +++ b/source/n/cyrus-sasl/cyrus-sasl.SlackBuild @@ -0,0 +1,95 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.1.23 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-cyrus-sasl + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf cyrus-sasl-$VERSION +tar xvf $CWD/cyrus-sasl-$VERSION.tar.?z* +cd cyrus-sasl-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-plugindir=/usr/lib${LIBDIRSUFFIX}/sasl2 \ + --with-configdir=/etc/sasl2 \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --enable-login \ + --disable-anon \ + --without-ldap \ + --with-saslauthd \ + --with-gdbm \ + --with-dblib=gdbm +# How stupid that I need to specify 'sasldir' again for 'make' or else you get +# the warning "Plugins are being installed into /usr/lib/sasl2, but the library +# will look for them in /usr/lib64/sasl2" and advised to create a symlink... +make sasldir=/usr/lib${LIBDIRSUFFIX}/sasl2 +make sasldir=/usr/lib${LIBDIRSUFFIX}/sasl2 install DESTDIR=$PKG +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/var/state/saslauthd +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.saslauthd.gz > $PKG/etc/rc.d/rc.saslauthd.new +# Fix sloppy man page installation: +rm -r $PKG/usr/man/cat8 +cat saslauthd/saslauthd.mdoc > $PKG/usr/man/man8/saslauthd.8 +gzip -9 $PKG/usr/man/man?/*.? +mkdir -p $PKG/usr/doc/cyrus-sasl-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README README.andrew \ + doc \ + $PKG/usr/doc/cyrus-sasl-$VERSION +find $PKG/usr/doc/cyrus-sasl-$VERSION -type f -exec chmod 644 {} \; +rm -f $PKG/usr/doc/cyrus-sasl-$VERSION/doc/*Makefile* +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/cyrus-sasl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/cyrus-sasl/doinst.sh b/source/n/cyrus-sasl/doinst.sh new file mode 100644 index 000000000..a2c1b471f --- /dev/null +++ b/source/n/cyrus-sasl/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.saslauthd.new diff --git a/source/n/cyrus-sasl/rc.saslauthd b/source/n/cyrus-sasl/rc.saslauthd new file mode 100644 index 000000000..8b69a710c --- /dev/null +++ b/source/n/cyrus-sasl/rc.saslauthd @@ -0,0 +1,45 @@ +#!/bin/sh +# rc.saslauthd: start/stop/restart saslauthd +# +# saslauthd is a daemon process that handles plaintext authentication +# requests on behalf of the SASL library. The CMU Cyrus SASL library +# is a general purpose authentication library for sever and client +# applications. It is mostly used to authenticate to mail servers. +# +# saslauthd should be started from the system boot scripts when going +# to multi-user mode. When running against a protected authentication +# database (e.g. the shadow mechanism), it must be run as the superuser. +# + +saslauthd_start() { + # If saslauthd is not running, start it: + if [ ! -r /var/state/saslauthd/saslauthd.pid ]; then + # Use shadow authentication by default on Slackware: + echo "Starting SASL authentication daemon: /usr/sbin/saslauthd -a shadow" + /usr/sbin/saslauthd -a shadow + fi +} + +saslauthd_stop() { + kill `cat /var/state/saslauthd/saslauthd.pid 2> /dev/null` 2> /dev/null + sleep 1 +} + +saslauthd_restart() { + saslauthd_stop + saslauthd_start +} + +case "$1" in +'start') + saslauthd_start + ;; +'stop') + saslauthd_stop + ;; +'restart') + saslauthd_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/n/cyrus-sasl/slack-desc b/source/n/cyrus-sasl/slack-desc new file mode 100644 index 000000000..f437c6a67 --- /dev/null +++ b/source/n/cyrus-sasl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +cyrus-sasl: cyrus-sasl (Simple Authentication and Security Layer) +cyrus-sasl: +cyrus-sasl: This is the Cyrus SASL library. Cyrus SASL is used by mail programs +cyrus-sasl: on the client or server side to provide authentication and +cyrus-sasl: authorization services. See RFC 2222 for more information. +cyrus-sasl: +cyrus-sasl: +cyrus-sasl: +cyrus-sasl: +cyrus-sasl: +cyrus-sasl: diff --git a/source/n/dhcp/dhcp.SlackBuild b/source/n/dhcp/dhcp.SlackBuild new file mode 100755 index 000000000..10c211ce2 --- /dev/null +++ b/source/n/dhcp/dhcp.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.1.2p1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dhcp + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf dhcp-$VERSION +tar xvf $CWD/dhcp-$VERSION.tar.gz || exit 1 +cd dhcp-$VERSION || exit 1 + +./configure +make DEBUG="$SLKCFLAGS" || exit 1 +make DEBUG="$SLKCFLAGS" install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/var/state/dhcp +rm -f $PKG/var/state/dhcp/dhcpd.leases +touch $PKG/var/state/dhcp/dhcpd.leases.new + +rm -rf $PKG/usr/local + +mkdir -p $PKG/usr/doc/dhcp-$VERSION +cp -a \ + LICENSE README RELNOTES \ + $PKG/usr/doc/dhcp-$VERSION +mkdir -p $PKG/usr/doc/dhcp-$VERSION/examples +cp -a client/dhclient.conf server/dhcpd.conf \ + $PKG/usr/doc/dhcp-$VERSION/examples +chown -R root:root $PKG/usr/doc/dhcp-$VERSION + +cat << EOF > $PKG/etc/dhcpd.conf.new +# dhcpd.conf +# +# Configuration file for ISC dhcpd (see 'man dhcpd.conf') +# +EOF + +cat << EOF > $PKG/etc/dhclient.conf.new +# dhclient.conf +# +# Configuration file for ISC dhclient (see 'man dhclient.conf') +# +EOF + +cat client/scripts/linux > $PKG/sbin/dhclient-script +chmod 700 $PKG/sbin/dhclient-script + +gzip -9 $PKG/usr/man/man?/* +find $PKG/usr/man -type f -exec chmod 644 {} \; + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/dhcpd.conf.new +config etc/dhclient.conf.new +config var/state/dhcp/dhcpd.leases.new +rm -f var/state/dhcp/dhcpd.leases.new +EOF + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/dhcp-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/dhcp-$VERSION + rm -rf $PKG +fi diff --git a/source/n/dhcp/slack-desc b/source/n/dhcp/slack-desc new file mode 100644 index 000000000..f586e4e1b --- /dev/null +++ b/source/n/dhcp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dhcp: dhcp (DHCP server and client utilities) +dhcp: +dhcp: This package provides the ISC's DHCP utilities, including both a +dhcp: server and client. The DHCP protocol allows a host to contact a +dhcp: central server which maintains a list of IP addresses which may be +dhcp: assigned on one or more subnets. A DHCP client may request an +dhcp: address from this pool, and then use it temporarily for communication +dhcp: on the network. The DHCP protocol also provides a mechanism whereby +dhcp: a client can learn important details about the network to which it is +dhcp: attached, such as the location of a default router or name server. +dhcp: diff --git a/source/n/dhcpcd/COPYRIGHT b/source/n/dhcpcd/COPYRIGHT new file mode 100644 index 000000000..07d9e683b --- /dev/null +++ b/source/n/dhcpcd/COPYRIGHT @@ -0,0 +1,26 @@ +/* + * dhcpcd - DHCP client daemon + * Copyright 2006-2008 Roy Marples + * 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. + */ diff --git a/source/n/dhcpcd/dhcpcd.SlackBuild b/source/n/dhcpcd/dhcpcd.SlackBuild new file mode 100755 index 000000000..409118746 --- /dev/null +++ b/source/n/dhcpcd/dhcpcd.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-3.2.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dhcpcd + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf dhcpcd-$VERSION +tar xvf $CWD/dhcpcd-$VERSION.tar.bz2 || exit 1 +cd dhcpcd-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This changes the default locations where *.pid and other files are +# written - instead of various locations, use /etc/dhcpc +# The latter directory was long traditional, and (more importantly) +# you can't be sure that /var is mounted yet when dhcpcd is invoked. +zcat $CWD/patches/config.h.diff.gz | patch -p1 || exit 1 + +# Fixup the sample dhcpcd.sh script to reflect our changes +zcat $CWD/patches/dhcpcd.sh.diff.gz | patch -p1 || exit 1 + +# Fix a typo in the manpage +zcat $CWD/patches/dhcpcd.8.in.diff.gz | patch -p1 || exit 1 + +# Disable zeroconf support +# I'm not sure if this is necessary, to be honest. If we do this though, +# I think we'll want to edit the man page to remove references to it. +#sed -i 's%#define ENABLE_IPV4LL%#undef ENABLE_IPV4LL%' config.h + +# Fix segfaulting on x86_64. Apparently i?86 is more forgiving +#zcat $CWD/dhcpcd.vararg.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ + make INFODIR=/etc/dhcpc || exit 1 + +# We'll install this manually, as the only thing "make install" actually +# installs is the executable and the man page, and the man page goes to +# the wrong place :-) +mkdir -p $PKG/sbin +cp -a dhcpcd $PKG/sbin + +mkdir -p $PKG/usr/man/man8 +gzip -9c dhcpcd.8 > $PKG/usr/man/man8/dhcpcd.8.gz + +# This script (or its equivalent) has been installed non-executable for +# several dhcpcd releases leading me to believe this is intentional on the +# part of the developers. Indeed, the script is called a "sample" in the +# included comments, and there's been at least one security issue related +# to its use in the past, so it's probably a safer bet to not install it so +# that it works "out of the box". However, making it non-executable is not +# the best solution for this as it leads to error messages in the system +# logs which I hear about from time to time. Instead, we'll make it +# executable, but will give it a suffix of -sample so that dhcpcd won't +# attempt to run it unless the admin specifically configure it to do so. +# As far as I can tell it does nothing more than add some extra verbosity +# to the logs anyway, and rc.inet1 already does that. There's really no +# need that I can see to enable the script. +mkdir -p $PKG/etc/dhcpc +cp -a dhcpcd.sh $PKG/etc/dhcpc/dhcpcd.sh-sample +chmod 755 $PKG/etc/dhcpc/dhcpcd.sh-sample + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/dhcpcd-$VERSION +cp -a README $PKG/usr/doc/dhcpcd-$VERSION +zcat $CWD/COPYRIGHT.gz > $PKG/usr/doc/dhcpcd-$VERSION/COPYRIGHT + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dhcpcd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/dhcpcd/dhcpcd.vararg.diff b/source/n/dhcpcd/dhcpcd.vararg.diff new file mode 100644 index 000000000..b3ac81ca5 --- /dev/null +++ b/source/n/dhcpcd/dhcpcd.vararg.diff @@ -0,0 +1,30 @@ +--- dhcpcd-2.0.8.orig/src/logger.c 2008-11-07 00:10:23.000000000 +0000 ++++ dhcpcd-2.0.8/src/logger.c 2008-11-07 00:13:46.000000000 +0000 +@@ -46,21 +46,25 @@ + { + va_list p; + va_list p2; ++ va_list p3; + FILE *f = stderr; + + va_start(p, fmt); + va_copy(p2, p); ++ va_copy(p3, p); + /* The default to send debug to stderr is just WAY too much console noise, IMHO */ + if(!Daemonized && strcmp(syslog_level_msg[level],"Info")) { + f = stdout; + /* fprintf(f, "%s, ", syslog_level_msg[level]); */ + vfprintf(f, fmt, p); + fputc('\n', f); +- vsyslog(level, fmt, p); ++ vsyslog(level, fmt, p2); + } + if ( level <= LogLevel ) +- vsyslog(level, fmt, p2); ++ vsyslog(level, fmt, p3); + va_end(p); ++ va_end(p2); ++ va_end(p3); + } + + // vim: set ts=4 : diff --git a/source/n/dhcpcd/patches/config.h.diff b/source/n/dhcpcd/patches/config.h.diff new file mode 100644 index 000000000..7bdefb600 --- /dev/null +++ b/source/n/dhcpcd/patches/config.h.diff @@ -0,0 +1,17 @@ +diff -Nur dhcpcd-3.2.3.orig/config.h dhcpcd-3.2.3/config.h +--- dhcpcd-3.2.3.orig/config.h 2008-02-25 02:28:19.000000000 -0600 ++++ dhcpcd-3.2.3/config.h 2009-03-06 14:55:01.998436374 -0600 +@@ -71,10 +71,10 @@ + + #define OPENNTPFILE ETCDIR "/ntpd.conf" + +-#define DEFAULT_SCRIPT ETCDIR "/" PACKAGE ".sh" ++#define DEFAULT_SCRIPT INFODIR "/" PACKAGE ".sh" + +-#define STATEDIR "/var" +-#define PIDFILE STATEDIR "/run/" PACKAGE "-%s.pid" ++#define STATEDIR INFODIR ++#define PIDFILE INFODIR "/" PACKAGE "-%s.pid" + + #ifndef INFODIR + # define INFODIR "/var/lib/dhcpcd" diff --git a/source/n/dhcpcd/patches/dhcpcd.8.in.diff b/source/n/dhcpcd/patches/dhcpcd.8.in.diff new file mode 100644 index 000000000..7486c769a --- /dev/null +++ b/source/n/dhcpcd/patches/dhcpcd.8.in.diff @@ -0,0 +1,12 @@ +diff -Nur dhcpcd-3.2.3.orig/dhcpcd.8.in dhcpcd-3.2.3/dhcpcd.8.in +--- dhcpcd-3.2.3.orig/dhcpcd.8.in 2008-02-25 02:28:19.000000000 -0600 ++++ dhcpcd-3.2.3/dhcpcd.8.in 2009-03-06 19:36:02.207109931 -0600 +@@ -117,7 +117,7 @@ + up, down or new depending on the state of + .Nm . + .Nm +-ignores the exist code of the script. ++ignores the exit code of the script. + .Ss Fine tuning + You can fine tune the behaviour of + .Nm diff --git a/source/n/dhcpcd/patches/dhcpcd.sh.diff b/source/n/dhcpcd/patches/dhcpcd.sh.diff new file mode 100644 index 000000000..290665a98 --- /dev/null +++ b/source/n/dhcpcd/patches/dhcpcd.sh.diff @@ -0,0 +1,17 @@ +--- a/dhcpcd.sh 2009-03-06 19:22:41.247171672 -0600 ++++ b/dhcpcd.sh 2009-03-06 19:24:19.186014526 -0600 +@@ -1,10 +1,10 @@ + #!/bin/sh + # +-# This is a sample /etc/dhcpcd.sh script. +-# /etc/dhcpcd.sh script is executed by dhcpcd daemon ++# This is a sample /etc/dhcpc/dhcpcd.sh script. ++# /etc/dhcpc/dhcpcd.sh script is executed by dhcpcd daemon + # any time it configures or shuts down interface. +-# The following parameters are passed to dhcpcd.exe script: +-# $1 = HostInfoFilePath, e.g "/var/lib/dhcpcd/dhcpcd-eth0.info" ++# The following parameters are passed to the dhcpcd.sh script: ++# $1 = HostInfoFilePath, e.g "/etc/dhcpc/dhcpcd-eth0.info" + # $2 = "up" if interface has been configured with the same + # IP address as before reboot; + # $2 = "down" if interface has been shut down; diff --git a/source/n/dhcpcd/slack-desc b/source/n/dhcpcd/slack-desc new file mode 100644 index 000000000..04859d7cb --- /dev/null +++ b/source/n/dhcpcd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dhcpcd: dhcpcd (DHCP client daemon) +dhcpcd: +dhcpcd: The DHCP client program dhcpcd is used to connect to a network by +dhcpcd: contacting a DHCP server. dhcpcd gets an IP address and other +dhcpcd: information from a corresponding DHCP server, configures the network +dhcpcd: interface automatically, and tries to renew the lease time according +dhcpcd: to RFC2131 or RFC1541 depending on the command line option. +dhcpcd: +dhcpcd: +dhcpcd: +dhcpcd: diff --git a/source/n/dirmngr/dirmngr.SlackBuild b/source/n/dirmngr/dirmngr.SlackBuild new file mode 100755 index 000000000..d893aeb3d --- /dev/null +++ b/source/n/dirmngr/dirmngr.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PRGNAM=dirmngr +VERSION=1.0.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-static=no \ + --enable-shared=yes \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/dirmngr/slack-desc b/source/n/dirmngr/slack-desc new file mode 100644 index 000000000..f0473c7be --- /dev/null +++ b/source/n/dirmngr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dirmngr: CRL (Certificate Revocation Lists Manager) +dirmngr: +dirmngr: Dirmngr is a server for managing and downloading certificate +dirmngr: revocation lists (CRLs) for X.509 certificates and for downloading +dirmngr: the certificates themselves. Dirmngr also handles OCSP requests as +dirmngr: an alternative to CRLs. Dirmngr is either invoked internally by +dirmngr: gpgsm (from gnupg 2.x) or when running as a system daemon through +dirmngr: the dirmngr-client tool. +dirmngr: +dirmngr: +dirmngr: diff --git a/source/n/dnsmasq/dnsmasq.SlackBuild b/source/n/dnsmasq/dnsmasq.SlackBuild new file mode 100755 index 000000000..170cfab47 --- /dev/null +++ b/source/n/dnsmasq/dnsmasq.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.49 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dnsmasq + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf dnsmasq-$VERSION +tar xvf $CWD/dnsmasq-$VERSION.tar.bz2 || exit 1 +cd dnsmasq-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/dnsmasq.leasedir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +make $NUMJOBS all-i18n PREFIX=/usr MANDIR=/usr/man || exit 1 +make install-i18n PREFIX=/usr DESTDIR=$PKG MANDIR=/usr/man || exit 1 +chmod 0755 $PKG/usr/sbin/dnsmasq + +mkdir -p $PKG/etc/dnsmasq.d + +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/var/state/dnsmasq + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/etc +cat dnsmasq.conf.example > $PKG/etc/dnsmasq.conf.new +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.dnsmasq.gz > $PKG/etc/rc.d/rc.dnsmasq.new + +mkdir -p $PKG/usr/doc/dnsmasq-$VERSION +cp -a \ + CHANGELOG COPYING FAQ doc.html setup.html \ + $PKG/usr/doc/dnsmasq-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dnsmasq-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/dnsmasq/dnsmasq.leasedir.diff b/source/n/dnsmasq/dnsmasq.leasedir.diff new file mode 100644 index 000000000..d0a4dafd7 --- /dev/null +++ b/source/n/dnsmasq/dnsmasq.leasedir.diff @@ -0,0 +1,22 @@ +--- ./src/config.h.orig 2009-02-05 06:14:24.000000000 -0600 ++++ ./src/config.h 2009-02-19 17:51:07.000000000 -0600 +@@ -45,7 +45,7 @@ + # elif defined(__sun__) || defined (__sun) + # define LEASEFILE "/var/cache/dnsmasq.leases" + # else +-# define LEASEFILE "/var/lib/misc/dnsmasq.leases" ++# define LEASEFILE "/var/state/dnsmasq/dnsmasq.leases" + # endif + #endif + +--- ./dnsmasq.conf.example.orig 2009-01-03 14:28:51.000000000 -0600 ++++ ./dnsmasq.conf.example 2009-02-19 17:50:29.000000000 -0600 +@@ -381,7 +381,7 @@ + # The DHCP server needs somewhere on disk to keep its lease database. + # This defaults to a sane location, but if you want to change it, use + # the line below. +-#dhcp-leasefile=/var/lib/misc/dnsmasq.leases ++#dhcp-leasefile=/var/state/dnsmasq/dnsmasq.leases + + # Set the DHCP server to authoritative mode. In this mode it will barge in + # and take over the lease for any client which broadcasts on the network, diff --git a/source/n/dnsmasq/doinst.sh b/source/n/dnsmasq/doinst.sh new file mode 100644 index 000000000..5a1ca426a --- /dev/null +++ b/source/n/dnsmasq/doinst.sh @@ -0,0 +1,16 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/dnsmasq.conf.new +config etc/rc.d/rc.dnsmasq.new + +# This should be mostly useless... +rm -f etc/rc.d/rc.dnsmasq.new diff --git a/source/n/dnsmasq/rc.dnsmasq b/source/n/dnsmasq/rc.dnsmasq new file mode 100644 index 000000000..ce584cbd2 --- /dev/null +++ b/source/n/dnsmasq/rc.dnsmasq @@ -0,0 +1,36 @@ +#!/bin/sh +# Start/stop/restart dnsmasq (a small DNS/DHCP server): + +# Start dnsmasq: +dnsmasq_start() { + if [ -x /usr/sbin/dnsmasq ]; then + echo "Starting dnsmasq: /usr/sbin/dnsmasq" + /usr/sbin/dnsmasq + fi +} + +# Stop dnsmasq: +dnsmasq_stop() { + killall dnsmasq +} + +# Restart dnsmasq: +dnsmasq_restart() { + dnsmasq_stop + sleep 1 + dnsmasq_start +} + +case "$1" in +'start') + dnsmasq_start + ;; +'stop') + dnsmasq_stop + ;; +'restart') + dnsmasq_restart + ;; +*) + echo "usage rc.dnsmasq: start|stop|restart" +esac diff --git a/source/n/dnsmasq/slack-desc b/source/n/dnsmasq/slack-desc new file mode 100644 index 000000000..0a0c5770f --- /dev/null +++ b/source/n/dnsmasq/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dnsmasq: dnsmasq (small DNS and DHCP server) +dnsmasq: +dnsmasq: Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP +dnsmasq: server. It is designed to provide DNS (and optionally DHCP) to a +dnsmasq: small network, and can serve the names of local machines which are not +dnsmasq: in the global DNS. +dnsmasq: +dnsmasq: Dnsmasq was written by Simon Kelley. +dnsmasq: +dnsmasq: +dnsmasq: diff --git a/source/n/elm/config.sh b/source/n/elm/config.sh new file mode 100644 index 000000000..52bca7a95 --- /dev/null +++ b/source/n/elm/config.sh @@ -0,0 +1,285 @@ +#!/bin/sh +# config.sh +# This file was produced by running the Configure script. + +Log='$Log' +Header='$Header' +contains='grep' +cppstdin='/usr/bin/cpp' +cppminus='' +d_getopt='define' +d_memcpy='define' +d_mkdir='define' +d_rename='define' +d_symlink='define' +d_whoami='undef' +n='-n' +c='' +orderlib='false' +ranlib=':' +package='elm2.5' +pager='builtin+' +prefshell='/bin/bash' +startsh='#!/bin/sh' +d_eunice='undef' +define='define' +eunicefix=':' +build_dir='/tmp/elm2.5.8' +source_dir='/tmp/elm2.5.8' +loclist=' +cat +chgrp +chmod +cp +echo +expr +grep +ln +ls +mv +rm +sed +sleep +touch +tr +' +expr='/usr/bin/expr' +sed='/bin/sed' +echo='/bin/echo' +cat='/bin/cat' +rm='/bin/rm' +mv='/bin/mv' +cp='/bin/cp' +tail='' +tr='/usr/bin/tr' +mkdir='' +sort='' +uniq='' +grep='/bin/grep' +trylist=' +Mcc +compress +cpp +date +emacs +execmail +ispell +line +lint +lp +lpr +mips +more +nroff +pack +pg +pr +rmail +sendmail +shar +smail +submit +tar +tbl +test +troff +uname +uuname +vi +' +test='test' +inews='' +ispell='/usr/bin/ispell' +egrep='' +more='/bin/more' +pg='pg' +Mcc='Mcc' +vi='/usr/bin/vi' +mailx='' +mail='' +cpp='/usr/bin/cpp' +perl='' +emacs='/usr/bin/emacs' +ls='/bin/ls' +rmail='rmail' +sendmail='/usr/sbin/sendmail' +shar='/usr/bin/shar' +smail='smail' +submit='' +tbl='/usr/bin/tbl' +troff='/usr/bin/troff' +nroff='/usr/bin/nroff' +uname='/bin/uname' +uuname='uuname' +line='line' +chgrp='/bin/chgrp' +chmod='/bin/chmod' +lint='lint' +sleep='/bin/sleep' +pr='/usr/bin/pr' +tar='/bin/tar' +ln='/bin/ln' +lpr='/usr/bin/lpr' +lp='/usr/bin/lp' +touch='/bin/touch' +make='' +date='/bin/date' +csh='' +pmake='' +mips='false' +col='' +pack='pack' +bld='' +compress='compress' +execmail='' +libswanted='intl nls' +bin='/usr/bin' +installbin='/tmp/package-elm/usr/bin' +c_date='Thu Aug 18 09:29:11 EDT 2005' +d_ascii='undef' +d_broke_ctype='undef' +d_broke_fflush='undef' +d_calendar='define' +calendar='calendar' +d_chown_neg1='define' +d_content='define' +d_crypt='define' +cryptlib='/usr/lib/libcrypt.a' +d_cuserid='define' +d_disphost='undef' +d_domname='define' +d_usegetdom='undef' +d_errlst='undef' +d_flock='undef' +d_dotlock='define' +d_fcntlock='define' +lock_dir='/var/spool/uucp' +has_flock='undef' +has_fcntl='define' +d_fsync='undef' +d_ftruncate='define' +d_gethname='define' +d_douname='undef' +d_host_comp='undef' +ign_hname='n' +d_index='define' +d_internet='define' +d_ispell='define' +ispell_path='/usr/bin/ispell' +ispell_options='-x' +d_locale='define' +d_nl_types='define' +d_msgcat='define' +d_usenls='undef' +d_mboxedit='undef' +d_mime='define' +defcharset='iso-8859-1' +defdispcharset='iso-8859-1' +d_mmdf='undef' +d_newauto='define' +d_noaddfrom='define' +d_usedomain='undef' +d_noxheader='undef' +d_pidcheck='define' +d_ptem='undef' +d_putenv='define' +d_remlock='undef' +maxattempts='6' +d_setegid='define' +d_setgid='define' +d_savegrpmboxid='define' +mailermode='755' +d_sigvec='undef' +d_sigvectr='undef' +d_sigset='undef' +d_sighold='undef' +d_sigprocmask='define' +d_sigblock='undef' +d_sigaction='define' +d_statuschg='define' +d_strcspn='define' +d_strspn='define' +d_strpbrk='define' +d_strerror='define' +d_strftime='define' +d_strings='undef' +d_pwdinsys='undef' +strings='/usr/include/string.h' +includepath='' +d_strstr='define' +d_strtok='define' +d_subshell='define' +d_tempnam='define' +tempnamo='' +tempnamc='' +d_termio='undef' +d_termios='define' +d_useembed='define' +d_utimbuf='define' +d_vfork='define' +defbatsub='no subject (file transmission)' +defeditor='/usr/bin/vi' +editoropts='' +hostname='greasy' +phostname='' +mydomain='.example.net' +autohostname='define' +i_memory='define' +i_stdarg='define' +i_stdlib='define' +i_time='define' +i_systime='define' +d_systimekernel='undef' +i_unistd='define' +i_utime='define' +i_sysutime='undef' +lib='/var/lib/elm' +installlib='/tmp/package-elm/var/lib/elm' +libc='/usr/lib/libc.a' +linepr='/usr/bin/lpr' +maildir='/var/spool/mail' +mailer='/usr/sbin/sendmail' +mailgrp='mail' +mansrc='/tmp/package-elm/usr/man/man1' +catmansrc='none' +manext='.1' +manext_choice='.1' +catmanext='' +catmanext_choice='' +packed='' +manroff='' +manroffopts='' +suffix='' +packer='' +models='none' +split='' +small='' +medium='' +large='' +huge='' +optimize='-O' +ccflags='' +cppflags='' +ldflags='' +cc='cc' +libs='' +nametype='bsd' +d_passnames='define' +d_berknames='define' +d_usgnames='undef' +passcat='cat /etc/passwd' +rmttape='unknown-remote-tape-unit' +roff='/usr/bin/troff' +roffopts='' +sigtype='void' +spitshell='cat' +shsharp='true' +sharpbang='#!' +termlib='-lncurses' +tmpdir='/tmp' +tzname_handling='TM_ZONE' +xencf='' +xenlf='' +d_xenix='undef' +d_bsd='undef' +CONFIG=true diff --git a/source/n/elm/elm.SlackBuild b/source/n/elm/elm.SlackBuild new file mode 100755 index 000000000..8aabca000 --- /dev/null +++ b/source/n/elm/elm.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.5.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-elm + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf elm$VERSION +tar xvf $CWD/elm$VERSION.tar.bz2 || exit 1 +cd elm$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cat $CWD/config.sh | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#" > config.sh +mkdir -p $PKG/var/lib/elm \ + $PKG/usr/bin \ + $PKG/usr/man/man1 \ + $PKG/usr/doc/elm-$VERSION +sh ./Make.defs.SH +find . -depth -name 'Makefile.SH' -exec sh ./{} \; + +make || exit 1 +make install || exit 1 + +( cd $PKG/usr/bin ; rm -rf frm ) +( cd $PKG/usr/bin ; ln -sf nfrm frm ) +( cd $PKG/usr/bin ; rm -rf newmail ) +( cd $PKG/usr/bin ; ln -sf wnewmail newmail ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man/man1 ; mkdir tmp ; cp *.? tmp ; rm *.? ; mv tmp/* . ; rmdir tmp ) +gzip -9 $PKG/usr/man/man?/*.? + +cp -a \ + NOTICE Overview README doc/*.guid* doc/Elm.cover \ + $PKG/usr/doc/elm-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/elm-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/elm/slack-desc b/source/n/elm/slack-desc new file mode 100644 index 000000000..042e7bd67 --- /dev/null +++ b/source/n/elm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +elm: elm (Menu-driven user mail program) +elm: +elm: Elm is an interactive screen-oriented mailer program originally +elm: written by Dave Taylor, and continued by the Elm Development Group. +elm: +elm: +elm: +elm: +elm: +elm: +elm: diff --git a/source/n/epic4/epic4.SlackBuild b/source/n/epic4/epic4.SlackBuild new file mode 100755 index 000000000..0143b6eb2 --- /dev/null +++ b/source/n/epic4/epic4.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.8 +HELPFILE=20070509 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-epic4 + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf epic4-$VERSION +tar xvf $CWD/epic4-$VERSION.tar.bz2 || exit 1 +cd epic4-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install IP=$PKG || exit 1 + +( cd $PKG/usr/share/epic + tar xvf $CWD/epic4-help-${HELPFILE}.tar.bz2 || exit 1 + chown -R root:root . +) || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/epic4-$VERSION +cp -a \ + BUG_FORM COPYRIGHT INSTALL KNOWNBUGS README* UPDATES VOTES doc \ + $PKG/usr/doc/epic4-$VERSION +rm -f $PKG/usr/doc/epic4-$VERSION/doc/*.1 + +gzip -9 $PKG/usr/man/man?/*.? + +# These extra directories are fixed in this release, but it +# doesn't hurt to leave this code just in case... +( cd $PKG && find . -name CVS -type d -exec rm -rf {} \; ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/epic4-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/epic4/slack-desc b/source/n/epic4/slack-desc new file mode 100644 index 000000000..c17b4b549 --- /dev/null +++ b/source/n/epic4/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +epic4: epic4 (Internet Relay Chat client) +epic4: +epic4: EPIC is the (E)nhanced (P)rogrammable (I)RC-II (C)lient. +epic4: +epic4: The EPIC home page is: http://www.epicsol.org/ +epic4: The EPIC main ftp site is: ftp://ftp.epicsol.org/ +epic4: The EPIC IRC channel is: #epic on EFNet +epic4: +epic4: +epic4: +epic4: diff --git a/source/n/ethtool/ethtool.SlackBuild b/source/n/ethtool/ethtool.SlackBuild new file mode 100755 index 000000000..e485e8d31 --- /dev/null +++ b/source/n/ethtool/ethtool.SlackBuild @@ -0,0 +1,58 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ethtool + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ethtool-$VERSION +tar xzf $CWD/ethtool-$VERSION.tar.gz || exit 1 +cd ethtool-$VERSION || exit 1 +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +make install DESTDIR=$PKG +strip $PKG/usr/sbin/ethtool +gzip -9 $PKG/usr/man/man8/ethtool.8 +mkdir -p $PKG/usr/doc/ethtool-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README \ + $PKG/usr/doc/ethtool-$VERSION +chmod 644 $PKG/usr/doc/ethtool-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ethtool-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ethtool/slack-desc b/source/n/ethtool/slack-desc new file mode 100644 index 000000000..92a7c7dac --- /dev/null +++ b/source/n/ethtool/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ethtool: ethtool (a tool for examining and tuning a network interface) +ethtool: +ethtool: ethtool is a small utility for examining and tuning your Ethernet +ethtool: based network interface. For more details, see "man ethtool". +ethtool: +ethtool: ethtool was written by David Miller, with help from Jakub Jelinek, +ethtool: Jeff Garzik, Tim Hockin, Eli Kupermann, Chris Leech, Scott Feldman, +ethtool: and Andi Kleen. +ethtool: +ethtool: +ethtool: diff --git a/source/n/fetchmail/fetchmail.SlackBuild b/source/n/fetchmail/fetchmail.SlackBuild new file mode 100755 index 000000000..11145cc9e --- /dev/null +++ b/source/n/fetchmail/fetchmail.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=6.3.11 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-fetchmail + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf fetchmail-$VERSION +tar xvf $CWD/fetchmail-$VERSION.tar.bz2 || exit 1 +cd fetchmail-$VERSION || exit 1 + +# this is the sloppiest source tarball ever +# [NOTE: *was*... the new maintainers are much better] +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --enable-nls \ + --with-ssl \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man/man1 + rm fetchmailconf.1 + gzip -9 * + ln -sf fetchmail.1.gz fetchmailconf.1.gz +) + +mkdir -p $PKG/usr/doc/fetchmail-$VERSION +cp -a \ + ABOUT-NLS COPYING* FAQ FEATURES INSTALL NEWS NOTES README* TODO \ + *.html contrib *.lsm \ + $PKG/usr/doc/fetchmail-$VERSION + +rm -rf $PKG/usr/doc/fetchmail-$VERSION/RCS \ + $PKG/usr/doc/fetchmail-$VERSION/contrib/RCS \ + $PKG/usr/doc/fetchmail-$VERSION/fetchmail-man.html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/fetchmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/fetchmail/slack-desc b/source/n/fetchmail/slack-desc new file mode 100644 index 000000000..7be0c1e4b --- /dev/null +++ b/source/n/fetchmail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fetchmail: fetchmail (mail retrieval and forwarding utility) +fetchmail: +fetchmail: fetchmail is a mail retrieval and forwarding utility. It fetches +fetchmail: mail from a POP, IMAP, or ETRN-capable remote mailserver and forwards +fetchmail: it to your local (client) machine's delivery system. You can then +fetchmail: handle the retrieved mail using normal mail user agents such as elm, +fetchmail: pine, or mutt. The fetchmail utility can be run in a daemon mode to +fetchmail: repeatedly poll one or more systems at a specified interval. +fetchmail: +fetchmail: fetchmail is probably not secure. +fetchmail: diff --git a/source/n/getmail/getmail.SlackBuild b/source/n/getmail/getmail.SlackBuild new file mode 100755 index 000000000..14885943a --- /dev/null +++ b/source/n/getmail/getmail.SlackBuild @@ -0,0 +1,56 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.11.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-getmail +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf getmail-$VERSION +tar xvf $CWD/getmail-$VERSION.tar.gz || exit 1 +chown -R root:root getmail-$VERSION +cd getmail-$VERSION +python setup.py build +python setup.py install --root=$PKG + +( cd $PKG/usr/share + mv man .. + mv doc .. + cd .. + rmdir share +) + +gzip -9 $PKG/usr/man/man1/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/getmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/getmail/slack-desc b/source/n/getmail/slack-desc new file mode 100644 index 000000000..6c91db1cc --- /dev/null +++ b/source/n/getmail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +getmail: getmail (POP3 mail retriever) +getmail: +getmail: getmail is a POP3 mail retriever, with support for both ordinary and +getmail: domain (or multidrop) POP3 mailboxes. It is written in Python, and +getmail: licensed under the GNU General Public License version 2. +getmail: +getmail: getmail was written by Charles Cazabon. +getmail: +getmail: +getmail: +getmail: diff --git a/source/n/gnupg/gnupg.SlackBuild b/source/n/gnupg/gnupg.SlackBuild new file mode 100755 index 000000000..9fab5b935 --- /dev/null +++ b/source/n/gnupg/gnupg.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.4.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gnupg + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $PKG $PKG + +cd $TMP +rm -rf gnupg-$VERSION +tar xvf $CWD/gnupg-$VERSION.tar.bz2 || exit 1 +cd gnupg-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +gzip -9 $PKG/usr/man/*/* + +mkdir -p $PKG/usr/doc/gnupg-$VERSION +cp -a \ + ABOUT-NLS AUTHORS BUGS COPYING INSTALL NEWS PROJECTS README THANKS TODO VERSION \ + $PKG/usr/doc/gnupg-$VERSION +( cd $PKG/usr/doc/gnupg-$VERSION + ln -sf /usr/share/gnupg/FAQ . + ln -sf /usr/share/gnupg/faq.html . ) + +# Add slack-desc files: +mkdir -p $PKG/install +cat $CWD/slack-desc.gnupg > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/gnupg-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/gnupg-$VERSION + rm -rf $PKG +fi diff --git a/source/n/gnupg/slack-desc.gnupg b/source/n/gnupg/slack-desc.gnupg new file mode 100644 index 000000000..496005e9b --- /dev/null +++ b/source/n/gnupg/slack-desc.gnupg @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnupg: gnupg (The GNU Privacy Guard) +gnupg: +gnupg: GnuPG is GNU's tool for secure communication and data storage. It can +gnupg: be used to encrypt data and to create digital signatures. It includes +gnupg: an advanced key management facility and is compliant with the proposed +gnupg: OpenPGP Internet standard as described in RFC2440. +gnupg: +gnupg: +gnupg: +gnupg: +gnupg: diff --git a/source/n/gnupg2/gnupg2.SlackBuild b/source/n/gnupg2/gnupg2.SlackBuild new file mode 100755 index 000000000..3f3b4ccf0 --- /dev/null +++ b/source/n/gnupg2/gnupg2.SlackBuild @@ -0,0 +1,127 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PKGNAME=gnupg2 +VERSION=2.0.12 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gnupg + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gnupg-$VERSION +tar xvf $CWD/gnupg-$VERSION.tar.bz2 || exit 1 +cd gnupg-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/gnupg2-$VERSION \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/gnupg2-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS TODO VERSION \ + $PKG/usr/doc/gnupg2-$VERSION +# Build html docs +( cd doc + make gnupg.html + mv gnupg.html $PKG/usr/doc/gnupg2-$VERSION/html +) +# Fix some filenames in the html directory +( cd $PKG/usr/doc/gnupg2-$VERSION/html +mv how_002dto_002dspecify_002da_002duser_002did.html howto_specify_user_id.html +mv GnuPG_002d1-and-GnuPG_002d2.html GnuPG_1-and-GnuPG_2.html +mv gpg_002dpreset_002dpassphrase.html gpg_preset_passphrase.html +mv gpgsm_002dgencert_002esh.html gpgsm_gencert_sh.html +mv Invoking-gpg_002dpreset_002dpassphrase.html Invoking-gpg_preset_passphrase.html +mv Invoking-gpg_002dconnect_002dagent.html Invoking-gpg_connect_agent.html +mv gpg_002dconnect_002dagent.html gpg_connect_agent.html +mv Agent-GET_005fCONFIRMATION.html Agent-GET_CONFIRMATION.html +mv option-_002d_002denable_002dssh_002dsupport.html option-enable_ssh_support.html +mv option-_002d_002doptions.html option-options.html +mv Invoking-GPG_002dAGENT.html Invoking-GPG_AGENT.html +mv gpg_002dzip.html gpg_zip.html +mv option-_002d_002dp12_002dcharset.html option-p12_charset.html +mv option-_002d_002dallow_002dmark_002dtrusted.html option-allow_mark_trusted.html +mv Controlling-gpg_002dconnect_002dagent.html Controlling-gpg_connect_agent.html +mv Agent-GET_005fPASSPHRASE.html Agent-GET_PASSPHRASE.html +mv option-_002d_002dhomedir.html option-homedir.html +mv PKCS_002315-Card.html PKCS-15-Card.html +) +# Move html doc to the proper location +mv $PKG/usr/doc/gnupg2-$VERSION/faq.html $PKG/usr/doc/gnupg2-$VERSION/html/ + + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAME-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/gnupg2/slack-desc b/source/n/gnupg2/slack-desc new file mode 100644 index 000000000..c64d7fb67 --- /dev/null +++ b/source/n/gnupg2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnupg2: GnuPG2 (The GNU Privacy Guard version 2.x) +gnupg2: +gnupg2: GnuPG is GNU's tool for secure communication and data storage. It can +gnupg2: be used to encrypt data and to create digital signatures. It includes +gnupg2: an advanced key management facility and is compliant with the proposed +gnupg2: OpenPGP Internet standard as described in RFC2440 and the S/MIME +gnupg2: standard as described by several RFCs. +gnupg2: +gnupg2: GnuPG 2.0 is the stable version of GnuPG integrating support for +gnupg2: OpenPGP and S/MIME. It does not conflict with an installed 1.4.x +gnupg2: OpenPGP-only version. diff --git a/source/n/gnutls/gnutls.SlackBuild b/source/n/gnutls/gnutls.SlackBuild new file mode 100755 index 000000000..0aea48b1c --- /dev/null +++ b/source/n/gnutls/gnutls.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2007 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=gnutls +VERSION=2.6.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP + +rm -rf $PRGNAM-$VERSION +if [ -r $CWD/$PRGNAM-$VERSION.tar.gz ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.bz2 ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.xz ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.xz || exit 1 +elif [ -r $CWD/$PRGNAM-$VERSION.tar.lzma ]; then + tar xf $CWD/$PRGNAM-$VERSION.tar.lzma || exit 1 +else + exit 1 +fi + + +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --enable-static=no \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +( cd $PKG/usr/info + rm -f dir + gzip -9 *.info* +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n -p $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/gnutls/slack-desc b/source/n/gnutls/slack-desc new file mode 100644 index 000000000..49fdb9f0c --- /dev/null +++ b/source/n/gnutls/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnutls: gnutls (GNU TLS library) +gnutls: +gnutls: This is a TLS (Transport Layer Security) 1.0 and SSL (Secure Sockets +gnutls: Layer) 3.0 implementation. In brief, GnuTLS can be described as a +gnutls: library which offers an API to access secure communication protocols. +gnutls: These protocols provide privacy over insecure lines, and were designed +gnutls: to prevent eavesdropping, tampering, or message forgery. +gnutls: +gnutls: Homepage: http://www.gnu.org/software/gnutls/ +gnutls: +gnutls: diff --git a/source/n/gpa/doinst.sh b/source/n/gpa/doinst.sh new file mode 100644 index 000000000..1b722006a --- /dev/null +++ b/source/n/gpa/doinst.sh @@ -0,0 +1,13 @@ +# [note after changing relative paths to absolute ones] +# +# Sorry, but things like this can't be done from the +# installer, or must be deferred until after everything +# is installed (i.e. scripted in /var/log/setup) + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database &> /dev/null +fi + +if [ -x /usr/bin/gtk-update-icon-cache ]; then + /gtk-update-icon-cache -f -t /usr/share/icons/hicolor &> /dev/null +fi diff --git a/source/n/gpa/gpa.SlackBuild b/source/n/gpa/gpa.SlackBuild new file mode 100755 index 000000000..e0e67e40e --- /dev/null +++ b/source/n/gpa/gpa.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2006-2007 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=gpa +VERSION=0.7.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING INSTALL NEWS README* THANKS TODO VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/gpa/slack-desc b/source/n/gpa/slack-desc new file mode 100644 index 000000000..4ebd987ed --- /dev/null +++ b/source/n/gpa/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gpa: gpa (GNU Privacy Assistant) +gpa: +gpa: GPA is a graphical frontend for the GNU Privacy Guard (GnuPG, +gpa: http://www.gnupg.org). GPA can be used to encrypt, decrypt, and +gpa: sign files, to verify signatures and to manage the private and +gpa: public keys. +gpa: +gpa: +gpa: +gpa: +gpa: diff --git a/source/n/gpgme/gpgme.SlackBuild b/source/n/gpgme/gpgme.SlackBuild new file mode 100755 index 000000000..55afc5d74 --- /dev/null +++ b/source/n/gpgme/gpgme.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PRGNAM=gpgme +VERSION=1.1.8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --docdir=/usr/doc/gpgme-$VERSION \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README THANKS TODO VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/gpgme/slack-desc b/source/n/gpgme/slack-desc new file mode 100644 index 000000000..3436b08c9 --- /dev/null +++ b/source/n/gpgme/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gpgme: gpgme (GnuPG Made Easy) +gpgme: +gpgme: GPGME (GnuPG Made Easy) is a C language library that allows to add +gpgme: support for cryptography to a program. It is designed to make access +gpgme: to public key crypto engines like GnuPG or GpgSM easier for +gpgme: applications. GPGME provides a high-level crypto API for encryption, +gpgme: decryption, signing, signature verification and key management. +gpgme: +gpgme: GPGME uses GnuPG and GpgSM as its backends to support OpenPGP and the +gpgme: Cryptographic Message Syntax (CMS). +gpgme: diff --git a/source/n/htdig/doinst.sh b/source/n/htdig/doinst.sh new file mode 100644 index 000000000..1f730e076 --- /dev/null +++ b/source/n/htdig/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/htdig/htdig.conf.new + diff --git a/source/n/htdig/htdig-3.2.0b6.diff b/source/n/htdig/htdig-3.2.0b6.diff new file mode 100644 index 000000000..72e195ee9 --- /dev/null +++ b/source/n/htdig/htdig-3.2.0b6.diff @@ -0,0 +1,333 @@ +--- ./db/os_rw.c.orig 2004-01-12 06:48:24.000000000 -0600 ++++ ./db/os_rw.c 2007-04-07 17:29:44.000000000 -0500 +@@ -5,6 +5,14 @@ + * Sleepycat Software. All rights reserved. + */ + ++ ++#define _XOPEN_SOURCE 500 ++#include ++#include ++#ifndef u_long ++typedef __u_long u_long; ++#endif ++ + #include "db_config.h" + + #ifndef lint +--- ./db/hash.c.orig 2004-06-11 11:44:35.000000000 -0500 ++++ ./db/hash.c 2007-04-07 17:29:44.000000000 -0500 +@@ -250,6 +250,11 @@ + hashp->h_hash = hcp->hdr->dbmeta.version < 5 + ? CDB___ham_func4 : CDB___ham_func5; + ++ /* Make sure we always have a valid hashp->h_hash function. */ ++ if (hashp->h_hash == NULL) ++ hashp->h_hash = hcp->hdr->dbmeta.version < 5 ++ ? CDB___ham_func4 : CDB___ham_func5; ++ + err2: /* Release the meta data page */ + if ((t_ret = CDB___ham_release_meta(dbc)) != 0 && ret == 0) + ret = t_ret; +--- ./htdig/Server.cc.orig 2004-05-28 08:15:16.000000000 -0500 ++++ ./htdig/Server.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -341,6 +341,8 @@ + { + String fullpatt = "^[^:]*://[^/]*("; + fullpatt << pattern << ')'; ++ if (pattern.length() == 0) ++ fullpatt = ""; + _disallow.set(fullpatt, config->Boolean("case_sensitive")); + } + } +--- ./htfuzzy/Regexp.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/Regexp.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -73,16 +73,16 @@ + int wordCount = 0; + int maximumWords = config.Value("regex_max_words", 25); + +- wordList->Start_Get(); +- while (wordCount < maximumWords && (key = (String *) wordList->Get_Next())) +- { +- if (regexMatch.match(*key, 0, 0) != 0) +- { +- words.Add(new String(*key)); +- wordCount++; +- } +- } + if (wordList) { ++ wordList->Start_Get(); ++ while (wordCount < maximumWords && (key = (String *) wordList->Get_Next())) ++ { ++ if (regexMatch.match(*key, 0, 0) != 0) ++ { ++ words.Add(new String(*key)); ++ wordCount++; ++ } ++ } + wordList->Destroy(); + delete wordList; + } +--- ./htfuzzy/Substring.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/Substring.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -73,16 +73,16 @@ + int wordCount = 0; + int maximumWords = config.Value("substring_max_words", 25); + +- wordList->Start_Get(); +- while (wordCount < maximumWords && (key = (String *) wordList->Get_Next())) +- { +- if (match.FindFirst((char*)*key) >= 0) +- { +- words.Add(new String(*key)); +- wordCount++; +- } +- } + if (wordList) { ++ wordList->Start_Get(); ++ while (wordCount < maximumWords && (key = (String *) wordList->Get_Next())) ++ { ++ if (match.FindFirst((char*)*key) >= 0) ++ { ++ words.Add(new String(*key)); ++ wordCount++; ++ } ++ } + wordList->Destroy(); + delete wordList; + } +--- ./htfuzzy/htfuzzy.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/htfuzzy.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -153,8 +153,9 @@ + String word, fuzzyKey; + int count = 0; + +- words->Start_Get(); +- while ((key = (String *) words->Get_Next())) ++ if (words) ++ words->Start_Get(); ++ while (words && (key = (String *) words->Get_Next())) + { + word = *key; + wordAlgorithms.Start_Get(); +@@ -185,8 +186,11 @@ + fuzzy->writeDB(); + } + worddb.Close(); +- words->Destroy(); +- delete words; ++ if (words) ++ { ++ words->Destroy(); ++ delete words; ++ } + if (fuzzy) + delete fuzzy; + } +--- ./htfuzzy/Prefix.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/Prefix.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -99,9 +99,10 @@ + WordReference *word_ref; + String last_word; + +- wordList->Start_Get(); +- while (wordCount < maximumWords && (word_ref = (WordReference *) wordList->Get_Next() )) +- { ++ if (wordList) { ++ wordList->Start_Get(); ++ while (wordCount < maximumWords && (word_ref = (WordReference *) wordList->Get_Next() )) ++ { + s = word_ref->Key().GetWord(); + + // If we're somehow past the original word, we're done +@@ -115,8 +116,7 @@ + last_word = s; + words.Add(new String(s)); + wordCount++; +- } +- if (wordList) { ++ } + wordList->Destroy(); + delete wordList; + } +--- ./htfuzzy/Fuzzy.cc.orig 2004-05-28 08:15:20.000000000 -0500 ++++ ./htfuzzy/Fuzzy.cc 2007-04-07 17:29:45.000000000 -0500 +@@ -61,7 +61,11 @@ + delete index; + index = 0; + } +- delete dict; ++ if (dict) ++ { ++ delete dict; ++ dict = 0; ++ } + } + + +@@ -154,8 +158,9 @@ + + int count = 0; + +- dict->Start_Get(); +- while ((fuzzyKey = dict->Get_Next())) ++ if (dict) ++ dict->Start_Get(); ++ while (dict && (fuzzyKey = dict->Get_Next())) + { + s = (String *) dict->Find(fuzzyKey); + index->Put(fuzzyKey, *s); +--- ./htsearch/Display.cc.orig 2004-05-28 08:15:24.000000000 -0500 ++++ ./htsearch/Display.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -54,6 +54,7 @@ + + #include + #include ++#include + + #if !defined(DBL_MAX) + # if defined (MAXDOUBLE) +--- ./htsearch/htsearch.cc.orig 2004-05-28 08:15:24.000000000 -0500 ++++ ./htsearch/htsearch.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -211,8 +211,7 @@ + } + if (access((char*)configFile, R_OK) < 0) + { +- reportError(form("Unable to read configuration file '%s'", +- configFile.get())); ++ reportError("Unable to read configuration file"); + } + config->Read(configFile); + +--- ./htsearch/qtest.cc.orig 2004-05-28 08:15:25.000000000 -0500 ++++ ./htsearch/qtest.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -132,8 +132,7 @@ + + if (access((char*)configFile, R_OK) < 0) + { +- reportError(form("Unable to find configuration file '%s'", +- configFile.get())); ++ reportError("Unable to find configuration file"); + } + + config->Read(configFile); +--- ./htsearch/Collection.h.orig 2004-05-28 08:15:24.000000000 -0500 ++++ ./htsearch/Collection.h 2007-04-07 17:29:45.000000000 -0500 +@@ -36,9 +36,9 @@ + const char *docExcerpt); + ~Collection(); + +- void Collection::Open(); ++ void Open(); + +- void Collection::Close(); ++ void Close(); + + char *getWordFile() { return wordFile.get(); } + DocumentRef *getDocumentRef(int id); +--- ./htword/WordDBPage.cc.orig 2004-05-28 08:15:26.000000000 -0500 ++++ ./htword/WordDBPage.cc 2007-04-07 17:29:44.000000000 -0500 +@@ -82,7 +82,7 @@ + if(debuglevel>2)printf("TOTAL SIZE: %6d %8f\n",size,size/8.0); + // argh! compare failed somthing went wrong + // display the compress/decompress sequence and fail +- if(cmp || size>8*1024*1000000000) ++ if(cmp || size>8*1024) + { + if(size>8*1024) + { +--- ./installdir/rundig.orig 2007-04-07 17:29:45.000000000 -0500 ++++ ./installdir/rundig 2007-04-07 17:29:45.000000000 -0500 +@@ -14,6 +14,7 @@ + + # To help debug problems, try running rundig -vvv + # This will add lots of debugging output to all of the programs ++incremental=0 + stats= opts= alt= + while [ "$#" -gt 0 ] + do +@@ -24,6 +25,7 @@ + conffile="$1" + opts="$opts -c $conffile" + ;; ++ +i) incremental=1;; + *) opts="$opts $1" ;; # e.g. -v + esac + shift +@@ -53,7 +55,13 @@ + TMPDIR=$DBDIR + export TMPDIR + +-$BINDIR/htdig -i $opts $stats $alt ++if [ $incremental -ne 0 ] ++then ++ $BINDIR/htdig $opts $stats $alt ++else ++ $BINDIR/htdig -i $opts $stats $alt ++fi ++ + $BINDIR/htpurge $opts $alt + case "$alt" in + -a) +--- ./installdir/htdig.conf.orig 2004-02-08 04:19:33.000000000 -0600 ++++ ./installdir/htdig.conf 2007-04-07 17:29:44.000000000 -0500 +@@ -18,6 +18,18 @@ + database_dir: @DATABASE_DIR@ + + # ++# Define common_dir, which is used in several of the examples. ++# ++common_dir: /var/www/html/htdig ++ ++# ++# Disable the translation of the ISO Latin 1 SGML entities from the ++# documents into upper end 8-bit characters in the database, ++# and then back to the Latin 1 SGML entities in htsearch results. ++# ++translate_latin1: false ++ ++# + # This specifies the URL where the robot (htdig) will start. You can specify + # multiple URLs here. Just separate them by some whitespace. + # The example here will cause the ht://Dig homepage and related pages to be +@@ -25,7 +37,7 @@ + # You could also index all the URLs in a file like so: + # start_url: `${common_dir}/start.url` + # +-start_url: http://www.htdig.org/ ++start_url: http://localhost + + # + # This attribute limits the scope of the indexing process. The default is to +@@ -76,7 +88,7 @@ + # The string htdig will send in every request to identify the robot. Change + # this to your email address. + # +-maintainer: unconfigured@htdig.searchengine.maintainer ++maintainer: root@localhost + + # + # The excerpts that are displayed in long results rely on stored information +--- ./installdir/rundig.1.in.orig 2004-03-12 02:11:06.000000000 -0600 ++++ ./installdir/rundig.1.in 2007-04-07 17:29:46.000000000 -0500 +@@ -23,6 +23,9 @@ + .TP + .B \-c configfile + Use alternate config file. ++.TP ++.B \+i ++Use incremental digging instead non-incremental + .SH "SEE ALSO" + Please refer to the HTML pages (in the htdig-doc package) + .B /usr/share/doc/htdig-doc/html/index.html +--- ./configure.orig 2004-06-14 03:25:31.000000000 -0500 ++++ ./configure 2007-04-07 17:29:44.000000000 -0500 +@@ -28034,7 +28034,7 @@ + APACHE_REQUEST=`echo 1.3.1 | sed -e 's/\.//g'` + APACHE_REQUEST_MAJOR=`expr $APACHE_REQUEST : '\(..\)'` + APACHE_REQUEST_MINOR=`expr $APACHE_REQUEST : '..\(.*\)'` +- if test "$APACHE_MAJOR" -lt "$APACHE_REQUEST_MAJOR" -o "$APACHE_MINOR" -lt "$APACHE_REQUEST_MINOR" ; then ++ if test "$APACHE_MAJOR" -eq "APACHE_REQUEST_MAJOR" -a "$APACHE_MINOR" -lt "$APACHE_REQUEST_MINOR" -o "$APACHE_MAJOR" -lt "$APACHE_REQUEST_MAJOR" ; then + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: apache version is $APACHE_READABLE_VERSION" >&5 diff --git a/source/n/htdig/htdig.SlackBuild b/source/n/htdig/htdig.SlackBuild new file mode 100755 index 000000000..1451b4c29 --- /dev/null +++ b/source/n/htdig/htdig.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=htdig +VERSION=${VERSION:-3.2.0b6} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Get htdig-beta working again with new gcc/glibc/kernel: +zcat $CWD/htdig-3.2.0b6.diff.gz | patch -p1 --verbose || exit 1 + +# Fix "common dir" location and add "synonym_dictionary" entry: +zcat $CWD/htdig.conf.diff.gz | patch -p1 --verbose || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib/htdig \ + --with-apache=/usr/sbin/httpd \ + --with-cgi-bin-dir=/var/www/cgi-bin \ + --with-config-dir=/etc/htdig \ + --with-common-dir=/var/www/htdocs/htdig \ + --with-database-dir=/var/lib/htdig \ + --with-default-config-file=/etc/htdig/htdig.conf \ + --with-image-dir=/var/www/htdocs/htdig \ + --with-search-dir=/var/www/htdocs/htdig \ + --with-ssl \ + --with-zlib=/usr \ + --mandir=/usr/man \ + --enable-bigfile \ + --enable-shared \ + --disable-static \ + --enable-tests \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/etc/htdig/htdig.conf $PKG/etc/htdig/htdig.conf.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS CHANGES COPYING LICENSE README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/htdig/htdig.conf.diff b/source/n/htdig/htdig.conf.diff new file mode 100644 index 000000000..a80c707b8 --- /dev/null +++ b/source/n/htdig/htdig.conf.diff @@ -0,0 +1,16 @@ +--- ./installdir/htdig.conf.orig 2007-04-23 17:06:21.000000000 -0500 ++++ ./installdir/htdig.conf 2007-04-23 17:08:46.000000000 -0500 +@@ -20,7 +20,12 @@ + # + # Define common_dir, which is used in several of the examples. + # +-common_dir: /var/www/html/htdig ++common_dir: /var/www/htdocs/htdig ++ ++# ++# Define synonyms dictionary. ++# ++synonym_dictionary: /var/www/htdocs/htdig/synonyms + + # + # Disable the translation of the ISO Latin 1 SGML entities from the diff --git a/source/n/htdig/slack-desc b/source/n/htdig/slack-desc new file mode 100644 index 000000000..7436cf167 --- /dev/null +++ b/source/n/htdig/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +htdig: htdig (web indexing and searching system) +htdig: +htdig: The ht://Dig system is a complete web indexing and searching system +htdig: for a small domain or intranet. This system is not indended to +htdig: replace the need for outside Internet search engines such as Google, +htdig: but rather to cover the search needs for a single company, campus, or +htdig: even a particular sub section of a web site. +htdig: +htdig: +htdig: +htdig: diff --git a/source/n/httpd/README b/source/n/httpd/README new file mode 100644 index 000000000..796bb29a9 --- /dev/null +++ b/source/n/httpd/README @@ -0,0 +1,34 @@ +WARNING + +This script builds a package that conflicts with apache1. Before +attempting to install this package, you should uninstall any of +these packages that you find on your system: + +apache +mod_ssl +php + +Really though, the only points of overlap are in /usr/sbin, so if you +leave your old packages in place apache2 will still work, but the +apache1 httpd will have been overwritten (along with other files) + +Apache is the most popular web server in the known universe; over half +the servers on the Internet are running Apache or one of its variants. + +By default, we build apache2 with the traditional "apache prefork" multi +processing module (MPM). This is somewhat safer for the use of mod_php, +but can still carry some security risks (all your php scripts run as the +user configured to run apache2). + +For enhanced multi-threaded performance, use "apache worker", but using +mod_php with "worker" is considered dangerous. PHP Core is multi-thread +safe, but many PHP extensions are *NOT*. To build apache2 with the +worker MPM, change the option to: --with-mpm=worker + +Please note that this script does not build apache2 with SuEXEC support. +The Apache group feels SuEXEC should not be part of a default install. +If you need this functionality, please read the following documentation +and make the necessary changes to the ./configure options in the script. + + http://httpd.apache.org/docs/2.0/suexec.html + diff --git a/source/n/httpd/config.layout.diff b/source/n/httpd/config.layout.diff new file mode 100644 index 000000000..c302515fe --- /dev/null +++ b/source/n/httpd/config.layout.diff @@ -0,0 +1,30 @@ +--- ./config.layout.orig 2004-11-21 12:50:36.000000000 -0600 ++++ ./config.layout 2007-05-23 13:35:20.000000000 -0500 +@@ -322,3 +322,27 @@ + installbuilddir: ${prefix}/etc/apache2/build + errordir: ${datadir}/error + ++ ++# FHS layout ++ ++ prefix: /usr ++ exec_prefix: ${prefix} ++ bindir: ${prefix}/bin ++ sbindir: ${prefix}/sbin ++ libdir: ${prefix}/lib/httpd ++ libexecdir: ${prefix}/lib/httpd/modules ++ installbuilddir: ${prefix}/lib/httpd/build ++ mandir: ${prefix}/man ++ sysconfdir: /etc/httpd ++ datadir: /srv/httpd ++ iconsdir: ${datadir}/icons ++ htdocsdir: ${datadir}/htdocs ++ manualdir: ${htdocsdir}/manual ++ cgidir: ${datadir}/cgi-bin ++ errordir: ${datadir}/error ++ includedir: ${prefix}/include/httpd ++ localstatedir: /var ++ runtimedir: ${localstatedir}/run/httpd ++ logfiledir: ${localstatedir}/log/httpd ++ proxycachedir: ${localstatedir}/cache/httpd ++ diff --git a/source/n/httpd/doinst.sh b/source/n/httpd/doinst.sh new file mode 100644 index 000000000..49e5400d8 --- /dev/null +++ b/source/n/httpd/doinst.sh @@ -0,0 +1,52 @@ +#!/bin/sh +if [ ! -e var/log/httpd ]; then + mkdir -p var/log/httpd + chmod 755 var/log/httpd +fi + +# Don't wipe out an existing document root: +if [ ! -L srv/www -a -d srv/www ]; then + mv srv/www srv/www.bak.$$ +fi +if [ ! -L srv/httpd -a -d srv/httpd ]; then + mv srv/httpd srv/httpd.bak.$$ +fi + +# Once again, our intent is not to wipe out anyone's +# site, but building in Apache's docs tree is not as +# good an idea as picking a unique DocumentRoot. +# +# Still, we will do what we can here to mitigate +# possible site damage: +if [ -r var/www/htdocs/index.html ]; then + if [ ! -r "var/log/packages/httpd-*upgraded*" ]; then + if [ var/www/htdocs/index.html -nt var/log/packages/httpd-*-? ]; then + cp -a var/www/htdocs/index.html var/www/htdocs/index.html.bak.$$ + fi + fi +fi + +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +# Keep same perms on rc.httpd.new: +if [ -e etc/rc.d/rc.httpd ]; then + cp -a etc/rc.d/rc.httpd etc/rc.d/rc.httpd.new.incoming + cat etc/rc.d/rc.httpd.new > etc/rc.d/rc.httpd.new.incoming + mv etc/rc.d/rc.httpd.new.incoming etc/rc.d/rc.httpd.new +fi +config etc/rc.d/rc.httpd.new +config etc/httpd/httpd.conf.new +config etc/logrotate.d/httpd.new +for conf_file in etc/httpd/extra/*.new; do + config $conf_file +done +config var/www/htdocs/index.html.new diff --git a/source/n/httpd/httpd.SlackBuild b/source/n/httpd/httpd.SlackBuild new file mode 100755 index 000000000..2cdce1d87 --- /dev/null +++ b/source/n/httpd/httpd.SlackBuild @@ -0,0 +1,204 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# This script was written using the one from slackbuilds.org as a reference, +# so thanks to Adis Nezirovic ( adis _at_ linux.org.ba ) for the original work. + + +PKGNAM=httpd +VERSION=${VERSION:-2.2.13} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# "prefork" is the default, safe, mpm type. If you *are not* using PHP, and you +# like to live on the bleeding edge, you may wish to change the --with-mpm option +# to "worker", which is the new way of doing things, but is multithreaded and +# many scripts (especially PHP ones) are not multithread safe. +# +# I'd leave this option the way is it on any production box that's keeping up +# with HTTP requests. No reason to chance it, IMHO. + +zcat $CWD/config.layout.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch --verbose -p1 || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --enable-layout=Slackware-FHS \ + --with-mpm=prefork \ + --with-apr=/usr \ + --with-apr-util=/usr \ + --enable-mods-shared=all \ + --enable-so \ + --enable-pie \ + --enable-cgi \ + --with-pcre \ + --enable-ssl \ + --enable-rewrite \ + --enable-vhost-alias \ + --enable-proxy \ + --enable-proxy-http \ + --enable-proxy-ftp \ + --enable-proxy-balancer \ + --enable-cache \ + --enable-mem-cache \ + --enable-file-cache \ + --enable-disk-cache \ + --disable-speling \ + --enable-dav \ + --enable-ldap \ + --enable-authnz-ldap \ + --enable-authn-anon \ + --enable-authn-alias \ + --build=$ARCH-slackware-linux || exit 1 + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +rmdir $PKG/usr/bin + +# Tweak default apache configuration +( cd $PKG + zcat $CWD/httpd.nossldefault.diff.gz | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" | patch -p1 --verbose || exit 1 + zcat $CWD/httpd.runasapache.diff.gz | patch -p1 --verbose || exit 1 + rm -f $PKG/etc/httpd/httpd.conf~ +) || exit 1 +# Change config files to .new: +( cd $PKG/etc/httpd + mv httpd.conf httpd.conf.new + for file in extra/*; do + mv $file "${file}.new" + done +) + +cat << EOF >> $PKG/etc/httpd/httpd.conf.new + +# Uncomment the following line to enable PHP: +# +#Include /etc/httpd/mod_php.conf + +# Uncomment the following lines to enable svn support: +# +#LoadModule dav_svn_module lib${LIBDIRSUFFIX}/httpd/modules/mod_dav_svn.so +#LoadModule authz_svn_module lib${LIBDIRSUFFIX}/httpd/modules/mod_authz_svn.so + +EOF + +rmdir $PKG/var/log/httpd + +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.httpd > $PKG/etc/rc.d/rc.httpd.new + +mkdir -p $PKG/etc/logrotate.d +cat $CWD/logrotate.httpd > $PKG/etc/logrotate.d/httpd.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/ +cp -a \ + ABOUT_APACHE Apache.dsw BuildBin.dsp CHANGES INSTALL InstallBin.dsp LAYOUT LICENSE NOTICE NWGNUmakefile README* ROADMAP VERSIONING \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# Other distributions also strip the manual down to just English. +# If this isn't your language of choice, mea culpa. +( cd $PKG/srv/httpd/htdocs/manual + for file in $(find . -type f -name "*.html") ; do + if [ -f ${file}.en ]; then + cp ${file}.en ${file} + rm -f ${file}.* + fi + done +) + +# On Slackware, the traditional location for the Apache document root has always +# been "/var/www/htdocs/". We can avoid an unpleasant surprise for people by +# leaving things where they've always been, and comply with the FHS by providing +# symlinks allowing access through the FHS-approved pathnames. KDE, for example, +# will look for htdig's htsearch here: /var/www/cgi-bin/htsearch +mv $PKG/srv/httpd $PKG/var/www +( cd $PKG/srv + ln -sf /var/www . + ln -sf /var/www httpd +) + +# OK, it's just not generally good form to put your web site in /var/www/htdocs, +# but people do it every day. Like all new .new files, this won't save them this +# time, but if they don't learn their lesson now then it will the next time: +mv $PKG/var/www/htdocs/index.html $PKG/var/www/htdocs/index.html.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/httpd/httpd.nossldefault.diff b/source/n/httpd/httpd.nossldefault.diff new file mode 100644 index 000000000..bcf891f85 --- /dev/null +++ b/source/n/httpd/httpd.nossldefault.diff @@ -0,0 +1,11 @@ +--- ./etc/httpd/httpd.conf.orig 2007-05-17 23:40:15.000000000 -0500 ++++ ./etc/httpd/httpd.conf 2007-05-18 15:55:38.000000000 -0500 +@@ -88,7 +88,7 @@ + LoadModule proxy_http_module lib/httpd/modules/mod_proxy_http.so + LoadModule proxy_ajp_module lib/httpd/modules/mod_proxy_ajp.so + LoadModule proxy_balancer_module lib/httpd/modules/mod_proxy_balancer.so +-LoadModule ssl_module lib/httpd/modules/mod_ssl.so ++#LoadModule ssl_module lib/httpd/modules/mod_ssl.so + LoadModule mime_module lib/httpd/modules/mod_mime.so + LoadModule dav_module lib/httpd/modules/mod_dav.so + LoadModule status_module lib/httpd/modules/mod_status.so diff --git a/source/n/httpd/httpd.runasapache.diff b/source/n/httpd/httpd.runasapache.diff new file mode 100644 index 000000000..c1954ec33 --- /dev/null +++ b/source/n/httpd/httpd.runasapache.diff @@ -0,0 +1,13 @@ +--- ./etc/httpd/httpd.conf.orig 2008-02-14 15:24:21.000000000 -0600 ++++ ./etc/httpd/httpd.conf 2008-02-14 15:34:58.000000000 -0600 +@@ -125,8 +125,8 @@ + # It is usually good practice to create a dedicated user and group for + # running httpd, as with most system services. + # +-User daemon +-Group daemon ++User apache ++Group apache + + + diff --git a/source/n/httpd/logrotate.httpd b/source/n/httpd/logrotate.httpd new file mode 100644 index 000000000..30cee8a23 --- /dev/null +++ b/source/n/httpd/logrotate.httpd @@ -0,0 +1,11 @@ +/var/log/httpd/*_log { + rotate 10 + notifempty + size=5M + compress + delaycompress + sharedscripts + postrotate + /etc/rc.d/rc.httpd restart + endscript +} diff --git a/source/n/httpd/rc.httpd b/source/n/httpd/rc.httpd new file mode 100644 index 000000000..064f6ea44 --- /dev/null +++ b/source/n/httpd/rc.httpd @@ -0,0 +1,35 @@ +#!/bin/sh +# +# /etc/rc.d/rc.httpd +# +# Start/stop/restart/graceful[ly restart]/graceful[ly]-stop +# the Apache (httpd) web server. +# +# To make Apache start automatically at boot, make this +# file executable: chmod 755 /etc/rc.d/rc.httpd +# +# For information on these options, "man apachectl". + +case "$1" in + 'start') + /usr/sbin/apachectl -k start + ;; + 'stop') + /usr/sbin/apachectl -k stop + killall httpd + rm -f /var/run/httpd/*.pid + ;; + 'restart') + /usr/sbin/apachectl -k restart + ;; + 'graceful') + /usr/sbin/apachectl -k graceful + ;; + 'graceful-stop') + /usr/sbin/apachectl -k graceful-stop + ;; + *) + echo "Usage: $0 {start|stop|restart|graceful|graceful-stop}" + ;; +esac + diff --git a/source/n/httpd/slack-desc b/source/n/httpd/slack-desc new file mode 100644 index 000000000..38d240b6b --- /dev/null +++ b/source/n/httpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +httpd: httpd (The Apache HTTP Server) +httpd: +httpd: Apache is an HTTP server designed as a plug-in replacement for the +httpd: NCSA HTTP server. It fixes numerous bugs in the NCSA server and +httpd: includes many frequently requested new features, and has an API which +httpd: allows it to be extended to meet users' needs more easily. +httpd: +httpd: Apache is the most popular web server in the known universe; over +httpd: half of the servers on the Internet are running Apache or one of +httpd: its variants. +httpd: diff --git a/source/n/icmpinfo/icmpinfo-1.11.diff b/source/n/icmpinfo/icmpinfo-1.11.diff new file mode 100644 index 000000000..0ecc05ade --- /dev/null +++ b/source/n/icmpinfo/icmpinfo-1.11.diff @@ -0,0 +1,210 @@ +--- ./Makefile.orig 1995-08-17 05:44:54.000000000 -0500 ++++ ./Makefile 2007-04-29 15:11:50.000000000 -0500 +@@ -22,7 +22,7 @@ + + LDFLAGS= $(CFLAGS) + +-OBJECTS= recvping.o print.o err.o icmpinfo.o ++OBJECTS= recvping.o print.o err.o icmpinfo.o pid.o + TARGET = icmpinfo + + $(TARGET): $(OBJECTS) +--- ./icmpinfo.c.orig 1995-08-17 05:29:30.000000000 -0500 ++++ ./icmpinfo.c 2007-04-29 15:11:50.000000000 -0500 +@@ -60,7 +60,7 @@ + * This program has to run SUID to ROOT to access the ICMP socket. + */ + +-char usage[] = "Usage: icmpinfo [-v[v[v]]] [-s] [-n] [-p] [-l]\n -v : more and more info\n -s : show local interface address\n -n : no name query (dot ip only)\n -p : no port -> service name query\n -l : fork + syslog output\nv1.11 - 8/1995 - dl"; ++char usage[] = "Usage: icmpinfo [-v[v[v]]] [-s] [-n] [-p] [-l] [-k]\n -v : more and more info\n -s : show local interface address\n -n : no name query (dot ip only)\n -p : no port -> service name query\n -l : fork + syslog output\n -k : kill background process\nv1.11 - 8/1995 - dl"; + char *pname; + + int main(argc, argv) +@@ -99,6 +99,10 @@ + case 's': + showsrcip++; + break; ++ case 'k': ++ pid_kill(); ++ exit(0); ++ break; + case 'h': + default : + err_quit(usage); +@@ -128,6 +132,7 @@ + openlog("icmpinfo",0,LOG_DAEMON); + syslog(LOG_NOTICE,"started, PID=%d.",getpid()); + setsid(); ++ pid_file(); + close(0); + close(1); + close(2); +--- ./icmpinfo.man.orig 1995-08-17 05:25:11.000000000 -0500 ++++ ./icmpinfo.man 2007-04-29 15:12:35.000000000 -0500 +@@ -6,7 +6,7 @@ + .SH SYNOPSIS + + .B icmpinfo +-[\-v[v[v]]] [\-n] [\-p] [\-s] [\-l] ++[\-v[v[v]]] [\-n] [\-p] [\-s] [\-l] [\-k] + + .SH DESCRIPTION + .BR Icmpinfo +@@ -60,6 +60,13 @@ + .I "\-l" + Forks and use the syslog(3) facility to record events (recomended use). + (root only option). ++ ++.TP ++.I "\-k" ++Kills the background process started with the ++.I "\-l" ++option. ++ + .SH WARNINGS + The packet decoding is planned for ICMP Unreachable outputs and might + not be significant for all other Icmp types. Output can be shorter +--- ./linux_ip_icmp.h.orig 1994-05-11 07:08:29.000000000 -0500 ++++ ./linux_ip_icmp.h 2007-04-29 15:11:50.000000000 -0500 +@@ -3,6 +3,8 @@ + #ifndef _netinet_ip_icmp_h + #define _netinet_ip_icmp_h + ++#include ++ + struct icmp { + u_char icmp_type; /* type of message, see below */ + u_char icmp_code; /* type sub code */ +@@ -22,6 +24,7 @@ + #define icmp_seq icmp_hun.ih_idseq.icd_seq + #define icmp_void icmp_hun.ih_void + ++#if 0 + struct ip { + u_char ip_hl:4, /* header length */ + ip_v:4; /* version */ +@@ -36,6 +39,7 @@ + u_short ip_sum; /* checksum */ + struct in_addr ip_src,ip_dst; /* source and dest address */ + }; ++#endif + + + union { +--- ./pid.c.orig 2007-04-29 15:11:50.000000000 -0500 ++++ ./pid.c 2007-04-29 15:11:50.000000000 -0500 +@@ -0,0 +1,52 @@ ++#include ++#include ++ ++#define PIDFILE "/var/run/icmpinfo.pid" ++ ++extern char *pname; ++ ++void sig_handler(int); ++void pid_file(void); ++void pid_kill(void); ++ ++void pid_file(void) ++{ ++ FILE *fp; ++ ++ if ((fp = fopen(PIDFILE, "w")) != (FILE *)NULL) { ++ fprintf(fp, "%d\n", getpid()); ++ fclose(fp); ++ } ++ else ++ { ++ fprintf(stderr, "\n%s: Could not write PID file `%s', terminating.\n", ++ pname, PIDFILE); ++ exit(1); ++ } ++ signal(SIGHUP, sig_handler); ++ signal(SIGINT, sig_handler); ++ signal(SIGTERM, sig_handler); ++} ++ ++void sig_handler(int sig) ++{ ++ unlink(PIDFILE); ++ exit(0); ++} ++ ++void pid_kill(void) ++{ ++ FILE *fp; ++ int pid; ++ ++ if ((fp = fopen(PIDFILE, "r")) != (FILE *)NULL) ++ { ++ if (fscanf(fp, "%d", &pid) == 1) ++ { ++ kill(pid, SIGHUP); ++ sleep(1); ++ } ++ fclose(fp); ++ } ++} ++ +--- ./print.c.orig 1995-08-25 08:37:53.000000000 -0500 ++++ ./print.c 2007-04-29 15:11:50.000000000 -0500 +@@ -14,6 +14,7 @@ + * program to be run without having intermingled output (or statistics!). + */ + ++#include + #include "defs.h" + + #ifndef ANSI_OFFSETOF +@@ -119,6 +120,29 @@ + inet_ntoa(icp->icmp_ip.ip_dst), + hostent?hostent->h_name:NULL); + tp = (struct tcphdr *)((char *)&(icp->icmp_dun)+sizeof(struct ip)) ; ++#if defined(__GLIBC__) && (__GLIBC__ >= 2) ++ if (cc>=offsetof(struct icmp,icmp_dun)+sizeof(struct ip)+offsetof(struct tcphdr,seq)+sizeof(tp->seq)) ++ { ++ if (noportquery) { ++ sprintf(prbuf+strlen(prbuf)," sp=%d dp=%d seq=0x%8.8x", ++ ntohs(tp->source),ntohs(tp->dest), ++ ntohl(tp->seq)); ++ } else { ++ if ((servent=getservbyport(ntohs(tp->source),NULL))) ++ sprintf(prbuf+strlen(prbuf)," sp=%d [%s]", ++ ntohs(tp->source),servent->s_name); ++ else ++ sprintf(prbuf+strlen(prbuf)," sp=%d",tp->source); ++ if ((servent=getservbyport(ntohs(tp->dest),NULL))) ++ sprintf(prbuf+strlen(prbuf)," dp=%d [%s] seq=0x%8.8x", ++ ntohs(tp->dest),servent->s_name, ++ ntohl(tp->seq)); ++ else ++ sprintf(prbuf+strlen(prbuf)," dp=%d seq=0x%8.8x", ++ ntohs(tp->dest),ntohl(tp->seq)); ++ } ++ } ++#else + if (cc>=offsetof(struct icmp,icmp_dun)+sizeof(struct ip)+offsetof(struct tcphdr,th_seq)+sizeof(tp->th_seq)) + { + if (noportquery) { +@@ -140,6 +164,7 @@ + ntohs(tp->th_dport),ntohl(tp->th_seq)); + } + } ++#endif + } + } + sprintf(prbuf+strlen(prbuf)," sz=%d(+%d)",cc,iphdrlen); +--- ./recvping.c.orig 1994-01-07 05:04:04.000000000 -0600 ++++ ./recvping.c 2007-04-29 15:11:50.000000000 -0500 +@@ -9,7 +9,11 @@ + int recv_ping() + { + register int n; ++#if !defined(__GLIBC__) + int fromlen; ++#else /* __GLIBC__ */ ++ socklen_t fromlen; ++#endif /* __GLIBC__ */ + struct sockaddr_in from; + + for ( ; ; ) { diff --git a/source/n/icmpinfo/icmpinfo.SlackBuild b/source/n/icmpinfo/icmpinfo.SlackBuild new file mode 100755 index 000000000..685bc7ad6 --- /dev/null +++ b/source/n/icmpinfo/icmpinfo.SlackBuild @@ -0,0 +1,71 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.11 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-icmpinfo + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xvf $CWD/icmpinfo-$VERSION.tar.gz || exit 1 +cd icmpinfo-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/icmpinfo-1.11.diff.gz | patch -p1 --backup || exit + +make $NUMJOBS || make || exit 1 + +strip --strip-unneeded icmpinfo +mkdir -p $PKG/usr/sbin +cat icmpinfo > $PKG/usr/sbin/icmpinfo +chmod 755 $PKG/usr/sbin/icmpinfo + +mkdir -p $PKG/usr/man/man1 +gzip -9c icmpinfo.man > $PKG/usr/man/man1/icmpinfo.1.gz + +mkdir -p $PKG/usr/doc/icmpinfo-$VERSION +cp -a \ + CHANGES README TODO \ + $PKG/usr/doc/icmpinfo-$VERSION + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/icmpinfo-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/icmpinfo/slack-desc b/source/n/icmpinfo/slack-desc new file mode 100644 index 000000000..9148a482f --- /dev/null +++ b/source/n/icmpinfo/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +icmpinfo: icmpinfo (ICMP monitoring utility) +icmpinfo: +icmpinfo: Icmpinfo is a tool for looking at the ICMP messages received on the +icmpinfo: running host. It can be used to detect and record attack attempts, as +icmpinfo: well as help diagnose network problems. +icmpinfo: +icmpinfo: icmpinfo was written by Laurent Demailly. +icmpinfo: +icmpinfo: +icmpinfo: +icmpinfo: diff --git a/source/n/inetd/inetd-OpenBSD-1.79.diff b/source/n/inetd/inetd-OpenBSD-1.79.diff new file mode 100644 index 000000000..e1550beb3 --- /dev/null +++ b/source/n/inetd/inetd-OpenBSD-1.79.diff @@ -0,0 +1,890 @@ +--- ./inetd.c.orig Tue Jan 30 20:00:10 2001 ++++ ./inetd.c Tue Feb 6 17:17:14 2001 +@@ -1,3 +1,4 @@ ++/* $Slackware: inetd.c 1.79s 2001/02/06 13:18:00 volkerdi Exp $ */ + /* $OpenBSD: inetd.c,v 1.79 2001/01/30 08:30:57 deraadt Exp $ */ + /* $NetBSD: inetd.c,v 1.11 1996/02/22 11:14:41 mycroft Exp $ */ + /* +@@ -40,8 +41,9 @@ + #endif /* not lint */ + + #ifndef lint +-/*static char sccsid[] = "from: @(#)inetd.c 5.30 (Berkeley) 6/3/91";*/ ++static char sccsid[] = "from: @(#)inetd.c 5.30 (Berkeley) 6/3/91"; + static char rcsid[] = "$OpenBSD: inetd.c,v 1.79 2001/01/30 08:30:57 deraadt Exp $"; ++static char xtraid[] = "$Slackware: inetd.c 1.79s 2001/02/06 13:18:00 volkerdi Exp $"; + #endif /* not lint */ + + /* +@@ -163,7 +165,7 @@ + #include + #include + #include +-#include ++/* #include */ + #include + #include + #include +@@ -176,17 +178,20 @@ + #define SIGBLOCK (sigmask(SIGCHLD)|sigmask(SIGHUP)|sigmask(SIGALRM)) + + void config __P((int)); +-void doconfig __P((void)); +-void reap __P((int)); +-void doreap __P((void)); ++/* void doconfig __P((void)); */ ++/* void reap __P((int)); */ ++/* void doreap __P((void)); */ ++void reapchild __P ((int)); + void retry __P((int)); +-void doretry __P((void)); ++/* void doretry __P((void)); */ + void goaway __P((int)); + +-int debug = 0; ++static int debug = 0; ++static int global_queuelen = 128; + int nsock, maxsock; +-fd_set *allsockp; +-int allsockn; ++/* fd_set *allsockp; */ ++fd_set allsock; ++/* int allsockn; */ + int toomany = TOOMANY; + int options; + int timingout; +@@ -230,13 +235,13 @@ + struct sockaddr_in se_un_ctrladdr_in; + struct sockaddr_in6 se_un_ctrladdr_in6; + struct sockaddr_un se_un_ctrladdr_un; +- struct sockaddr_storage se_un_ctrladdr_storage; ++ /* struct sockaddr_storage se_un_ctrladdr_storage; */ + } se_un; /* bound address */ + #define se_ctrladdr se_un.se_un_ctrladdr + #define se_ctrladdr_in se_un.se_un_ctrladdr_in + #define se_ctrladdr_in6 se_un.se_un_ctrladdr_in6 + #define se_ctrladdr_un se_un.se_un_ctrladdr_un +-#define se_ctrladdr_storage se_un.se_un_ctrladdr_storage ++/* #define se_ctrladdr_storage se_un.se_un_ctrladdr_storage */ + int se_ctrladdr_size; + int se_max; /* max # of instances of this service */ + int se_count; /* number started since se_time */ +@@ -282,12 +287,12 @@ + { "chargen", SOCK_STREAM, 1, 0, chargen_stream }, + { "chargen", SOCK_DGRAM, 0, 0, chargen_dg }, + +- { 0 } ++ { NULL, 0, 0, 0, NULL } + }; + +-sig_atomic_t wantretry; +-sig_atomic_t wantconfig; +-sig_atomic_t wantreap; ++/* sig_atomic_t wantretry; */ ++/* sig_atomic_t wantconfig; */ ++/* sig_atomic_t wantreap; */ + + #define NUMINT (sizeof(intab) / sizeof(struct inent)) + char *CONFIG = _PATH_INETDCONF; +@@ -297,6 +302,8 @@ + + void logpid __P((void)); + ++/* This function is unused in the Linux port */ ++#ifdef OpenBSD + void + fd_grow(fd_set **fdsp, int *bytes, int fd) + { +@@ -316,24 +323,26 @@ + *bytes = newbytes; + } + } ++#endif + + int + main(argc, argv, envp) + int argc; + char *argv[], *envp[]; + { +- extern char *optarg; +- extern int optind; ++ /* extern char *optarg; */ ++ /* extern int optind; */ + register struct servtab *sep; + register struct passwd *pwd; + register struct group *grp = NULL; + register int tmpint; + struct sigaction sa, sapipe; + int ch, dofork; ++ int nodaemon = 0; + pid_t pid; + char buf[50]; +- fd_set *readablep = NULL; +- int readablen = 0; ++ /* fd_set *readablep = NULL; */ ++ /* int readablen = 0; */ + + Argv = argv; + if (envp == 0 || *envp == 0) +@@ -356,7 +365,7 @@ + int val; + + val = strtoul(optarg, &p, 0); +- if (val >= 1 && *p == NULL) { ++ if (val >= 1 && *p == (char) NULL) { + toomany = val; + break; + } +@@ -385,10 +394,13 @@ + exit(1); + } + +- if (debug == 0) { +- daemon(0, 0); +- if (uid == 0) +- (void) setlogin(""); ++ if (nodaemon == 0) ++ daemon (0, 0); ++ else if (debug == 0) { ++ /* daemon(0, 0); */ ++ /* if (uid == 0) */ ++ /* (void) setlogin(""); */ ++ setsid (); + } + + if (uid == 0) { +@@ -418,10 +430,12 @@ + sigaddset(&sa.sa_mask, SIGHUP); + sa.sa_handler = retry; + sigaction(SIGALRM, &sa, NULL); +- doconfig(); ++ /* doconfig(); */ ++ config (SIGHUP); + sa.sa_handler = config; + sigaction(SIGHUP, &sa, NULL); +- sa.sa_handler = reap; ++ /* sa.sa_handler = reap; */ ++ sa.sa_handler = reapchild; + sigaction(SIGCHLD, &sa, NULL); + sa.sa_handler = goaway; + sigaction(SIGTERM, &sa, NULL); +@@ -443,6 +457,7 @@ + + for (;;) { + int n, ctrl = -1; ++ fd_set readable; + + if (nsock == 0) { + (void) sigblock(SIGBLOCK); +@@ -451,6 +466,8 @@ + (void) sigsetmask(0L); + } + ++ /* Well, this all looks like cruft to me ;^) */ ++#ifdef OpenBSD + if (readablen != allsockn) { + if (readablep) + free(readablep); +@@ -478,8 +495,10 @@ + wantreap = 0; + continue; + } ++#endif + +- if ((n = select(maxsock + 1, readablep, NULL, NULL, NULL)) <= 0) { ++ readable = allsock; ++ if ((n = select(maxsock + 1, &readable, NULL, NULL, NULL)) <= 0) { + if (n < 0 && errno != EINTR) { + syslog(LOG_WARNING, "select: %m"); + sleep(1); +@@ -487,7 +506,7 @@ + continue; + } + for (sep = servtab; n && sep; sep = sep->se_next) +- if (sep->se_fd != -1 && FD_ISSET(sep->se_fd, readablep)) { ++ if (sep->se_fd != -1 && FD_ISSET(sep->se_fd, &readable)) { + n--; + if (debug) + fprintf(stderr, "someone wants %s\n", sep->se_service); +@@ -556,7 +575,7 @@ + if (!sep->se_wait && + sep->se_socktype == SOCK_STREAM) + close(ctrl); +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + (void) close(sep->se_fd); + sep->se_fd = -1; + sep->se_count = 0; +@@ -581,7 +600,7 @@ + } + if (pid && sep->se_wait) { + sep->se_wait = pid; +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + nsock--; + } + sigsetmask(0L); +@@ -595,7 +614,7 @@ + sep->se_user); + if (sep->se_socktype != SOCK_STREAM) + recv(0, buf, sizeof (buf), 0); +- exit(1); ++ _exit(1); + } + if (setsid() <0) + syslog(LOG_ERR, "%s: setsid: %m", +@@ -607,27 +626,33 @@ + sep->se_group); + if (sep->se_socktype != SOCK_STREAM) + recv(0, buf, sizeof (buf), 0); +- exit(1); ++ _exit(1); + } + if (uid != 0) { + /* a user running private inetd */ + if (uid != pwd->pw_uid) +- exit(1); +- } else { +- tmpint = LOGIN_SETALL & +- ~(LOGIN_SETGROUP|LOGIN_SETLOGIN); +- if (pwd->pw_uid) +- tmpint |= LOGIN_SETGROUP|LOGIN_SETLOGIN; ++ _exit(1); ++ } else if (pwd->pw_uid) { ++ /* tmpint = LOGIN_SETALL & */ ++ /* ~(LOGIN_SETGROUP|LOGIN_SETLOGIN); */ ++ /* if (pwd->pw_uid) */ ++ /* tmpint |= LOGIN_SETGROUP|LOGIN_SETLOGIN; */ + if (sep->se_group) { + pwd->pw_gid = grp->gr_gid; +- tmpint |= LOGIN_SETGROUP; ++ /* tmpint |= LOGIN_SETGROUP; */ + } +- if (setusercontext(0, pwd, pwd->pw_uid, +- tmpint) < 0) +- syslog(LOG_ERR, +- "%s/%s: setusercontext: %m", +- sep->se_service, +- sep->se_proto); ++ setgid ((gid_t) pwd->pw_gid); ++ initgroups (pwd->pw_name, pwd->pw_gid); ++ setuid ((uid_t) pwd->pw_uid); ++ /* if (setusercontext(0, pwd, pwd->pw_uid, */ ++ /* tmpint) < 0) */ ++ /* syslog(LOG_ERR, */ ++ /* "%s/%s: setusercontext: %m", */ ++ /* sep->se_service, */ ++ /* sep->se_proto); */ ++ } else if (sep->se_group) { ++ setgid (grp->gr_gid); ++ setgroups (1, &grp->gr_gid); + } + if (debug) + fprintf(stderr, "%d execl %s\n", +@@ -636,6 +661,9 @@ + close(ctrl); + dup2(0, 1); + dup2(0, 2); ++ if (rlim_ofile.rlim_cur != rlim_ofile_cur) ++ if (setrlimit (RLIMIT_NOFILE, &rlim_ofile) < 0) ++ syslog (LOG_ERR, "setrlimit: %m"); + closelog(); + for (tmpint = rlim_ofile_cur-1; --tmpint > 2; ) + (void)close(tmpint); +@@ -644,7 +672,7 @@ + if (sep->se_socktype != SOCK_STREAM) + recv(0, buf, sizeof (buf), 0); + syslog(LOG_ERR, "execv %s: %m", sep->se_server); +- exit(1); ++ _exit(1); + } + } + if (!sep->se_wait && sep->se_socktype == SOCK_STREAM) +@@ -654,13 +682,14 @@ + } + + int +-dg_badinput(sa) +- struct sockaddr *sa; ++dg_badinput(sin) ++ struct sockaddr_in *sin; + { + struct in_addr in; + #ifdef INET6 + struct in6_addr *in6; + #endif ++#ifdef OpenBSD + u_int16_t port; + int i; + +@@ -703,28 +732,40 @@ + + if (port < IPPORT_RESERVED || port == NFS_PORT) + goto bad; ++#endif + ++ if (ntohs (sin->sin_port) < IPPORT_RESERVED) ++ return (1); ++ if (sin->sin_addr.s_addr == htonl (INADDR_BROADCAST)) ++ return (1); ++ /* XXX compare against broadcast addresses in SIOCGIFCONF list? */ + return (0); + ++#ifdef OpenBSD + bad: + return (1); ++#endif + } + ++#ifdef OpenBSD + void + reap(int sig) + { + wantreap = 1; + } ++#endif + + void +-doreap(void) ++reapchild(int sig) + { + pid_t pid; + int save_errno = errno, status; + register struct servtab *sep; + ++#ifdef OpenBSD + if (debug) + fprintf(stderr, "reaping asked for\n"); ++#endif + + for (;;) { + pid = wait3(&status, WNOHANG, NULL); +@@ -743,8 +784,8 @@ + "%s: exit signal 0x%x", + sep->se_server, WTERMSIG(status)); + sep->se_wait = 1; +- fd_grow(&allsockp, &allsockn, sep->se_fd); +- FD_SET(sep->se_fd, allsockp); ++ /* fd_grow(&allsockp, &allsockn, sep->se_fd); */ ++ FD_SET(sep->se_fd, &allsock); + nsock++; + if (debug) + fprintf(stderr, "restored %s, fd %d\n", +@@ -766,14 +807,16 @@ + struct servtab *enter __P((struct servtab *)); + int matchconf __P((struct servtab *, struct servtab *)); + ++#ifdef OpenBSD + void + config(int sig) + { + wantconfig = 1; + } ++#endif + + void +-doconfig(void) ++config(int sig) + { + register struct servtab *sep, *cp, **sepp; + int omask; +@@ -887,7 +930,7 @@ + if (port != sep->se_ctrladdr_in.sin_port) { + sep->se_ctrladdr_in.sin_port = port; + if (sep->se_fd != -1) { +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + nsock--; + (void) close(sep->se_fd); + } +@@ -942,7 +985,7 @@ + if (port != sep->se_ctrladdr_in6.sin6_port) { + sep->se_ctrladdr_in6.sin6_port = port; + if (sep->se_fd != -1) { +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + nsock--; + (void) close(sep->se_fd); + } +@@ -979,7 +1022,7 @@ + } + *sepp = sep->se_next; + if (sep->se_fd != -1) { +- FD_CLR(sep->se_fd, allsockp); ++ FD_CLR(sep->se_fd, &allsock); + nsock--; + (void) close(sep->se_fd); + } +@@ -995,14 +1038,16 @@ + (void) sigsetmask(omask); + } + ++#ifdef OpenBSD + void + retry(int sig) + { + wantretry = 1; + } ++#endif + + void +-doretry(void) ++retry(int sig) + { + register struct servtab *sep; + +@@ -1046,7 +1091,7 @@ + (void)close(sep->se_fd); + } + (void)unlink(_PATH_INETDPID); +- _exit(0); ++ exit(0); + } + + int bump_nofile __P((void)); +@@ -1102,9 +1147,9 @@ + } else + r = bind(sep->se_fd, &sep->se_ctrladdr, sep->se_ctrladdr_size); + if (r < 0) { +- syslog(LOG_ERR, "%s/%s: bind: %m", +- sep->se_service, sep->se_proto); +- (void) close(sep->se_fd); ++ syslog(LOG_ERR, "%s/%s (%d): bind: %m", ++ sep->se_service, sep->se_proto, sep->se_ctrladdr.sa_family); ++ close(sep->se_fd); + sep->se_fd = -1; + if (!timingout) { + timingout = 1; +@@ -1113,10 +1158,10 @@ + return; + } + if (sep->se_socktype == SOCK_STREAM) +- listen(sep->se_fd, 10); ++ listen(sep->se_fd, global_queuelen); + +- fd_grow(&allsockp, &allsockn, sep->se_fd); +- FD_SET(sep->se_fd, allsockp); ++ /* fd_grow(&allsockp, &allsockn, sep->se_fd); */ ++ FD_SET(sep->se_fd, &allsock); + nsock++; + if (sep->se_fd > maxsock) { + maxsock = sep->se_fd; +@@ -1230,10 +1275,12 @@ + &new->se_ctrladdr_in6.sin6_addr, + sizeof(new->se_ctrladdr_in6.sin6_addr)) != 0) + return (0); ++#ifdef OpenBSD + if (old->se_family == AF_INET6 && new->se_family == AF_INET6 && + old->se_ctrladdr_in6.sin6_scope_id != + new->se_ctrladdr_in6.sin6_scope_id) + return (0); ++#endif + + return (1); + } +@@ -1241,7 +1288,7 @@ + FILE *fconfig = NULL; + char line[1024]; + char *defhost; +-char *skip __P((char **, int)); ++char *skip __P((char **)); + char *nextline __P((FILE *)); + char *newstr __P((char *)); + struct servtab *dupconfig __P((struct servtab *)); +@@ -1277,7 +1324,7 @@ + { + register struct servtab *sep; + int argc; +- char *cp, *arg, *s; ++ char *cp, *arg; + char *hostdelim; + struct servtab *nsep; + struct servtab *psep; +@@ -1288,19 +1335,19 @@ + exit(1); + } + +- memset(sep, 0, sizeof *sep); ++ /* memset(sep, 0, sizeof *sep); */ + more: +- freeconfig(sep); ++ /* freeconfig(sep); */ + + while ((cp = nextline(fconfig)) && *cp == '#') + ; + if (cp == NULL) { +- free(sep); ++ /* free(sep); */ + return (NULL); + } + + memset((char *)sep, 0, sizeof *sep); +- arg = skip(&cp, 0); ++ arg = skip(&cp); + if (arg == NULL) { + /* A blank line. */ + goto more; +@@ -1310,10 +1357,12 @@ + hostdelim = strrchr(arg, ':'); + if (hostdelim) { + *hostdelim = '\0'; ++#ifdef OpenBSD + if (arg[0] == '[' && hostdelim > arg && hostdelim[-1] == ']') { + hostdelim[-1] = '\0'; + sep->se_hostaddr = newstr(arg + 1); + } else ++#endif + sep->se_hostaddr = newstr(arg); + arg = hostdelim + 1; + /* +@@ -1321,10 +1370,10 @@ + * default host for the following lines. + */ + if (*arg == '\0') { +- arg = skip(&cp, 0); ++ arg = skip(&cp); + if (cp == NULL) { + free(defhost); +- defhost = newstr(sep->se_hostaddr); ++ defhost = sep->se_hostaddr; + goto more; + } + } +@@ -1332,8 +1381,11 @@ + sep->se_hostaddr = newstr(defhost); + + sep->se_service = newstr(arg); ++#ifdef OpenBSD + if ((arg = skip(&cp, 1)) == NULL) + goto more; ++#endif ++ arg = skip (&cp); + + if (strcmp(arg, "stream") == 0) + sep->se_socktype = SOCK_STREAM; +@@ -1348,10 +1400,12 @@ + else + sep->se_socktype = -1; + ++#ifdef OpenBSD + if ((arg = skip(&cp, 1)) == NULL) + goto more; ++#endif + +- sep->se_proto = newstr(arg); ++ sep->se_proto = newstr(skip (&cp)); + + if (strcmp(sep->se_proto, "unix") == 0) { + sep->se_family = AF_UNIX; +@@ -1389,10 +1443,11 @@ + goto badafterall; + } + } +- arg = skip(&cp, 1); ++ arg = skip(&cp); + if (arg == NULL) + goto more; + ++#ifdef OpenBSD + s = strchr(arg, '.'); + if (s) { + char *p; +@@ -1406,11 +1461,20 @@ + } + } else + sep->se_max = toomany; ++#endif + ++ { ++ char *s = strchr (arg, '.'); ++ if (s) { ++ *s++ = '\0'; ++ sep->se_max = atoi (s); ++ } else ++ sep->se_max = toomany; ++ } + sep->se_wait = strcmp(arg, "wait") == 0; +- if ((arg = skip(&cp, 1)) == NULL) +- goto more; +- sep->se_user = newstr(arg); ++ /* if ((arg = skip(&cp, 1)) == NULL) */ ++ /* goto more; */ ++ sep->se_user = newstr(skip (&cp)); + arg = strchr(sep->se_user, '.'); + if (arg == NULL) + arg = strchr(sep->se_user, ':'); +@@ -1418,12 +1482,12 @@ + *arg++ = '\0'; + sep->se_group = newstr(arg); + } +- if ((arg = skip(&cp, 1)) == NULL) +- goto more; ++ /* if ((arg = skip(&cp, 1)) == NULL) */ ++ /* goto more; */ + +- sep->se_server = newstr(arg); ++ sep->se_server = newstr(skip (&cp)); + if (strcmp(sep->se_server, "internal") == 0) { +- struct biltin *bi; ++ register struct biltin *bi; + + for (bi = biltins; bi->bi_service; bi++) + if (bi->bi_socktype == sep->se_socktype && +@@ -1439,7 +1503,7 @@ + } else + sep->se_bi = NULL; + argc = 0; +- for (arg = skip(&cp, 0); cp; arg = skip(&cp, 0)) { ++ for (arg = skip(&cp); cp; arg = skip(&cp)) { + if (argc < MAXARGV) + sep->se_argv[argc++] = newstr(arg); + } +@@ -1468,7 +1532,9 @@ + nsep = sep; + while (nsep != NULL) { + nsep->se_checked = 1; +- switch (nsep->se_family) { ++ /* switch (nsep->se_family) { */ ++ if (nsep->se_family == AF_INET) { ++#ifdef OpenBSD + case AF_INET: + case AF_INET6: + { +@@ -1488,7 +1554,13 @@ + goto skip; + } + close(s); ++#endif ++ if (!strcmp (nsep->se_hostaddr, "*")) ++ nsep->se_ctrladdr_in.sin_addr.s_addr = INADDR_ANY; ++ else if (!inet_aton (nsep->se_hostaddr, &nsep->se_ctrladdr_in.sin_addr)) { ++ struct hostent *hp; + ++#ifdef OpenBSD + memset(&hints, 0, sizeof(hints)); + hints.ai_family = nsep->se_family; + hints.ai_socktype = nsep->se_socktype; +@@ -1517,7 +1589,22 @@ + res->ai_addr, res->ai_addrlen); + continue; + } ++#endif ++ hp = gethostbyname (nsep->se_hostaddr); ++ if (hp == 0) { ++ syslog (LOG_ERR, "%s: unknown host", nsep->se_hostaddr); ++ nsep->se_checked = 0; ++ goto skip; ++ } else if (hp->h_addrtype != AF_INET) { ++ syslog (LOG_ERR, ++ "%s: address isn't an Internet " ++ "address", nsep->se_hostaddr); ++ nsep->se_checked = 0; ++ goto skip; ++ } else { ++ int i = 1; + ++#ifdef OpenBSD + psep = dupconfig(nsep); + psep->se_hostaddr = newstr(nsep->se_hostaddr); + psep->se_checked = 1; +@@ -1535,7 +1622,26 @@ + freeaddrinfo(res0); + break; + } ++#endif ++ memmove (&nsep->se_ctrladdr_in.sin_addr, ++ hp->h_addr_list[0], sizeof (struct in_addr)); ++ while (hp->h_addr_list[i] != NULL) { ++ psep = dupconfig (nsep); ++ psep->se_hostaddr = newstr (nsep->se_hostaddr); ++ psep->se_checked = 1; ++ memmove (&psep->se_ctrladdr_in.sin_addr, ++ hp->h_addr_list[i], sizeof (struct in_addr)); ++ psep->se_ctrladdr_size = sizeof (psep->se_ctrladdr_in); ++ i++; ++ /* Prepend to list, don't want to look up its */ ++ /* hostname again. */ ++ psep->se_next = sep; ++ sep = psep; ++ } ++ } ++ } + } ++/* XXX BUG?: is this skip: label supposed to remain? */ + skip: + nsep = nsep->se_next; + } +@@ -1593,17 +1699,17 @@ + } + + char * +-skip(cpp, report) ++skip(cpp) + char **cpp; +- int report; ++ /* int report; */ + { +- char *cp = *cpp; ++ register char *cp = *cpp; + char *start; + +-erp: ++/* erp: */ + if (*cpp == NULL) { +- if (report) +- syslog(LOG_ERR, "syntax error in inetd config file"); ++ /* if (report) */ ++ /* syslog(LOG_ERR, "syntax error in inetd config file"); */ + return (NULL); + } + +@@ -1619,16 +1725,18 @@ + if ((cp = nextline(fconfig))) + goto again; + *cpp = NULL; +- goto erp; ++ /* goto erp; */ ++ return (NULL); + } + start = cp; + while (*cp && *cp != ' ' && *cp != '\t') + cp++; + if (*cp != '\0') + *cp++ = '\0'; +- if ((*cpp = cp) == NULL) +- goto erp; ++ /* if ((*cpp = cp) == NULL) */ ++ /* goto erp; */ + ++ *cpp = cp; + return (start); + } + +@@ -1796,15 +1904,16 @@ + { + char buffer[BUFSIZE]; + int i, size; +- struct sockaddr_storage ss; ++ /* struct sockaddr_storage ss; */ ++ struct sockaddr sa; + +- size = sizeof(ss); +- if ((i = recvfrom(s, buffer, sizeof(buffer), 0, (struct sockaddr *)&ss, ++ size = sizeof(sa); ++ if ((i = recvfrom(s, buffer, sizeof(buffer), 0, &sa, + &size)) < 0) + return; +- if (dg_badinput((struct sockaddr *)&ss)) ++ if (dg_badinput((struct sockaddr_in *)&sa)) + return; +- (void) sendto(s, buffer, i, 0, (struct sockaddr *)&ss, size); ++ (void) sendto(s, buffer, i, 0, &sa, sizeof(sa)); + } + + /* ARGSUSED */ +@@ -1890,7 +1999,8 @@ + int s; + struct servtab *sep; + { +- struct sockaddr_storage ss; ++ /* struct sockaddr_storage ss; */ ++ struct sockaddr sa; + static char *rs; + int len, size; + char text[LINESIZ+2]; +@@ -1900,11 +2010,11 @@ + rs = ring; + } + +- size = sizeof(ss); +- if (recvfrom(s, text, sizeof(text), 0, (struct sockaddr *)&ss, ++ size = sizeof(sa); ++ if (recvfrom(s, text, sizeof(text), 0, &sa, + &size) < 0) + return; +- if (dg_badinput((struct sockaddr *)&ss)) ++ if (dg_badinput((struct sockaddr_in *)&sa)) + return; + + if ((len = endring - rs) >= LINESIZ) +@@ -1917,7 +2027,7 @@ + rs = ring; + text[LINESIZ] = '\r'; + text[LINESIZ + 1] = '\n'; +- (void) sendto(s, text, sizeof(text), 0, (struct sockaddr *)&ss, size); ++ (void) sendto(s, text, sizeof(text), 0, &sa, sizeof(sa)); + } + + /* +@@ -1959,18 +2069,23 @@ + struct servtab *sep; + { + u_int result; +- struct sockaddr_storage ss; ++ /* struct sockaddr_storage ss; */ ++ struct sockaddr sa; ++ struct sockaddr_in *sin; + int size; + +- size = sizeof(ss); ++ size = sizeof(sa); + if (recvfrom(s, (char *)&result, sizeof(result), 0, +- (struct sockaddr *)&ss, &size) < 0) ++ &sa, &size) < 0) + return; +- if (dg_badinput((struct sockaddr *)&ss)) ++ /* if (dg_badinput((struct sockaddr *)&ss)) */ ++ sin = (struct sockaddr_in *) &sa; ++ if (sin->sin_addr.s_addr == htonl (INADDR_BROADCAST) || ++ ntohs (sin->sin_port) < IPPORT_RESERVED / 2) + return; + result = machtime(); + (void) sendto(s, (char *) &result, sizeof(result), 0, +- (struct sockaddr *)&ss, size); ++ &sa, sizeof(sa)); + } + + /* ARGSUSED */ +@@ -1996,20 +2111,21 @@ + { + char buffer[256]; + time_t time(), clock; +- struct sockaddr_storage ss; ++ /* struct sockaddr_storage ss; */ ++ struct sockaddr sa; + int size; + + clock = time((time_t *) 0); + +- size = sizeof(ss); +- if (recvfrom(s, buffer, sizeof(buffer), 0, (struct sockaddr *)&ss, ++ size = sizeof(sa); ++ if (recvfrom(s, buffer, sizeof(buffer), 0, &sa, + &size) < 0) + return; +- if (dg_badinput((struct sockaddr *)&ss)) ++ if (dg_badinput((struct sockaddr_in *)&sa)) + return; + (void) sprintf(buffer, "%.24s\r\n", ctime(&clock)); +- (void) sendto(s, buffer, strlen(buffer), 0, (struct sockaddr *)&ss, +- size); ++ (void) sendto(s, buffer, strlen(buffer), 0, &sa, ++ sizeof(sa)); + } + + /* +--- ./Makefile.orig Thu Mar 30 17:00:49 2000 ++++ ./Makefile Tue Feb 6 17:18:05 2001 +@@ -1,7 +1,6 @@ +-# $OpenBSD: Makefile,v 1.3 2000/03/31 01:00:49 deraadt Exp $ ++CC = gcc ++CFLAGS = -O2 ++LDFLAGS = -s + +-PROG= inetd +-MAN= inetd.8 +-MLINKS= inetd.8 inetd.conf.5 +- +-.include ++all: ++ $(CC) $(CFLAGS) $(LDFLAGS) -o inetd inetd.c diff --git a/source/n/inetd/inetd.SlackBuild b/source/n/inetd/inetd.SlackBuild new file mode 100755 index 000000000..8a86a3509 --- /dev/null +++ b/source/n/inetd/inetd.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.79s +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-8} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-inetd + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_inetd.tar.gz + +echo "+====================+" +echo "| inetd-OpenBSD-1.79 |" +echo "+====================+" +cd $TMP +rm -rf inetd +tar xvf $CWD/inetd-OpenBSD-1.79.tar.gz || exit 1 +cd inetd +zcat $CWD/inetd-OpenBSD-1.79.diff.gz | patch -p1 --backup --suffix=.orig --verbose -E +zcat $CWD/inetd.loopingdos.diff.gz | patch -p1 --backup --suffix=.orig --verbose -E + +# GCC 4 fix (thanks Fred Emmott) +sed -i 's#(type)\([a-z]\)=(type)\([a-z]\)#\1=(type)\2#g' inetd.c + +make || exit 1 + +strip inetd +cat inetd > $PKG/usr/sbin/inetd +cat inetd.8 | gzip -9c > $PKG/usr/man/man8/inetd.8.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/inetd-$VERSION-$ARCH-$BUILD.txz + +# Clean up the extra stuff: +if [ "$1" = "--cleanup" ]; then + rm -rf $TMP/inetd + rm -rf $PKG +fi diff --git a/source/n/inetd/inetd.loopingdos.diff b/source/n/inetd/inetd.loopingdos.diff new file mode 100644 index 000000000..5bfcc53ff --- /dev/null +++ b/source/n/inetd/inetd.loopingdos.diff @@ -0,0 +1,54 @@ +--- ./inetd.c.orig 2003-09-06 15:08:41.000000000 -0700 ++++ ./inetd.c 2003-09-06 16:26:24.000000000 -0700 +@@ -171,7 +171,8 @@ + #include + #include "pathnames.h" + +-#define TOOMANY 256 /* don't start more than TOOMANY */ ++#define TOOMANY 0 /* don't start more than TOOMANY */ ++ /* zero disables this stupid "feature" */ + #define CNT_INTVL 60 /* servers in CNT_INTVL sec. */ + #define RETRYTIME (60*10) /* retry after bind or server fail */ + +@@ -365,7 +366,7 @@ + int val; + + val = strtoul(optarg, &p, 0); +- if (val >= 1 && *p == (char) NULL) { ++ if (val >= 0 && *p == (char) NULL) { + toomany = val; + break; + } +@@ -546,7 +547,7 @@ + if (dofork) { + if (sep->se_count++ == 0) + (void)gettimeofday(&sep->se_time, NULL); +- else if (sep->se_count >= sep->se_max) { ++ else if (toomany > 0 && sep->se_count >= sep->se_max) { + struct timeval now; + + (void)gettimeofday(&now, NULL); +--- ./inetd.8.orig 2003-09-06 16:26:50.000000000 -0700 ++++ ./inetd.8 2003-09-06 16:30:27.000000000 -0700 +@@ -68,7 +68,8 @@ + Turns on debugging. + .It Fl R Ar rate + Specify the maximum number of times a service can be invoked +-in one minute; the default is 256. ++in one minute; the default is unlimited. A rate of 0 allows an ++unlimited number of invocations. + .El + .Pp + Upon execution, +@@ -249,9 +250,8 @@ + spawned from + .Nm inetd + within an interval of 60 seconds. +-When omitted, +-.Dq max +-defaults to 256. ++The default is unlimited (setting a limit may actually make it easier for ++an attacker to create a denial-of-service, and is not recommended). + .Pp + Stream servers are usually marked as + .Dq nowait diff --git a/source/n/inetd/slack-desc b/source/n/inetd/slack-desc new file mode 100644 index 000000000..7f5c15c53 --- /dev/null +++ b/source/n/inetd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +inetd: inetd (Internet super-server) +inetd: +inetd: This is a program to listen for connections on certain Internet +inetd: sockets and invokes a program to service the request. Essentially, +inetd: inetd allows running one daemon to invoke several others, reducing +inetd: load on the system. Many of the network services are run through +inetd: inetd, so you'll probably need it. +inetd: +inetd: This version of inetd was ported from OpenBSD. +inetd: +inetd: diff --git a/source/n/iproute2/doinst.sh b/source/n/iproute2/doinst.sh new file mode 100644 index 000000000..01b82a28e --- /dev/null +++ b/source/n/iproute2/doinst.sh @@ -0,0 +1,18 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/iproute2/ematch_map.new +config etc/iproute2/rt_dsfield.new +config etc/iproute2/rt_protos.new +config etc/iproute2/rt_realms.new +config etc/iproute2/rt_scopes.new +config etc/iproute2/rt_tables.new + diff --git a/source/n/iproute2/iproute2.SlackBuild b/source/n/iproute2/iproute2.SlackBuild new file mode 100755 index 000000000..2a97fd43d --- /dev/null +++ b/source/n/iproute2/iproute2.SlackBuild @@ -0,0 +1,130 @@ +#!/bin/sh + +# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Build this against 2.6.x kernel source and headers... + +VERSION=2.6.29-1 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-iproute2 + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf iproute2-$VERSION +tar xvf $CWD/iproute2-$VERSION.tar.bz2 || exit 1 +cd iproute2-$VERSION + +# Fix up path to bdb +zcat $CWD/iproute2.dbpath.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Fix up iptables lib path +zcat $CWD/iproute2.iptablespath.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +if [ "$ARCH" = "x86_64" ]; then + sed -i -e "s#/lib/tc#/lib${LIBDIRSUFFIX}/tc#" $(grep -lr '/lib/tc' *) || exit 1 + sed -i -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" include/iptables.h || exit 1 + sed -i -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" tc/m_ipt.c || exit 1 +fi + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +export CFLAGS="$SLKCFLAGS" +make $NUMJOBS DOCDIR=doc/iproute2-$VERSION MANDIR=man/ || exit 1 + +# This doesn't embed any $TMP or $PKG paths in anything +# Have a look at what the Makefile does for why :) +mkdir -p $PKG/usr +make install DOCDIR=doc/iproute2-$VERSION MANDIR=man/ DESTDIR=$PKG/usr/ \ + || exit 1 + +# This stuff has always been installed under /sbin rather than +# /usr/sbin, as the latter could possibly be network-mounted, and +# these utilities may be needed to set up that network, so move +# them appropriately, but leave symlinks in /usr/sbin so that +# any scripts using absolute paths will work either way: +mkdir $PKG/sbin +mv $PKG/usr/sbin/* $PKG/sbin +( cd $PKG/usr/sbin + for file in ../../sbin/* ; do + ln -sf $file . + done +) + +mv $PKG/usr/etc $PKG +# Don't clobber existing config files +for file in $PKG/etc/iproute2/* ; do + mv $file ${file}.new +done + +# Remove junk: +[ -d $PKG/usr/usr ] && rm -r $PKG/usr/usr + +mkdir -p $PKG/var/lib/arpd + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/iproute2-$VERSION +cp -a COPYING RE* \ + $PKG/usr/doc/iproute2-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/iproute2-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz + diff --git a/source/n/iproute2/iproute2.dbpath.diff b/source/n/iproute2/iproute2.dbpath.diff new file mode 100644 index 000000000..b6ad2b0f9 --- /dev/null +++ b/source/n/iproute2/iproute2.dbpath.diff @@ -0,0 +1,12 @@ +diff -Nur orig/Makefile new/Makefile +--- orig/Makefile 2008-07-25 15:46:07.000000000 -0500 ++++ new/Makefile 2008-10-03 20:32:41.237630954 -0500 +@@ -5,7 +5,7 @@ + MANDIR=/share/man + + # Path to db_185.h include +-DBM_INCLUDE:=/usr/include ++DBM_INCLUDE:=/usr/include/db44 + + DEFINES= -DRESOLVE_HOSTNAMES -DDESTDIR=\"$(DESTDIR)\" + diff --git a/source/n/iproute2/iproute2.iptablespath.diff b/source/n/iproute2/iproute2.iptablespath.diff new file mode 100644 index 000000000..89f61b65d --- /dev/null +++ b/source/n/iproute2/iproute2.iptablespath.diff @@ -0,0 +1,12 @@ +diff -Nur orig/include/iptables.h new/include/iptables.h +--- orig/include/iptables.h 2008-07-25 15:46:07.000000000 -0500 ++++ new/include/iptables.h 2008-10-03 20:35:56.731284537 -0500 +@@ -5,7 +5,7 @@ + #include "libiptc/libiptc.h" + + #ifndef IPT_LIB_DIR +-#define IPT_LIB_DIR "/usr/local/lib/iptables" ++#define IPT_LIB_DIR "/usr/lib/iptables" + #endif + + #ifndef IPPROTO_SCTP diff --git a/source/n/iproute2/slack-desc b/source/n/iproute2/slack-desc new file mode 100644 index 000000000..7f6b1d614 --- /dev/null +++ b/source/n/iproute2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iproute2: iproute2 (IP routing utilities) +iproute2: +iproute2: These are tools used to administer many advanced IP routing features +iproute2: in the kernel. See Configure.help in the kernel documentation +iproute2: (search for iproute2) for more information on which kernel options +iproute2: these tools are used with. +iproute2: +iproute2: These utilities were written by Alexey Kuznetsov. The current +iproute2: maintainer of iproute2 is Stephen Hemminger. +iproute2: +iproute2: diff --git a/source/n/iptables/iptables.SlackBuild b/source/n/iptables/iptables.SlackBuild new file mode 100755 index 000000000..fcf80a1ab --- /dev/null +++ b/source/n/iptables/iptables.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.4.3.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-iptables + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf iptables-$VERSION +tar xvf $CWD/iptables-$VERSION.tar.bz2 || exit 1 +cd iptables-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/iptables-$VERSION \ + --enable-devel \ + --enable-libipq \ + --disable-static \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/iptables-$VERSION +cp -a \ + COPYING* INCOMPATIBILITIES INSTALL \ + $PKG/usr/doc/iptables-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/iptables-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iptables/slack-desc b/source/n/iptables/slack-desc new file mode 100644 index 000000000..55423f5f4 --- /dev/null +++ b/source/n/iptables/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iptables: iptables (IP packet filter administration) +iptables: +iptables: iptables is a packet filter administration tool. +iptables: +iptables: Iptables can be used to build internet firewalls based on stateless +iptables: and stateful packet filtering, use NAT and masquerading for sharing +iptables: internet access if you don't have enough public IP addresses, use NAT +iptables: to implement transparent proxies, aid the tc and iproute2 systems +iptables: used to build sophisticated QoS and policy routers, do further packet +iptables: manipulation (mangling) like altering the TOS/DSCP/ECN bits of the IP +iptables: header, and much more. See: http://www.netfilter.org diff --git a/source/n/iptraf/iptraf.SlackBuild b/source/n/iptraf/iptraf.SlackBuild new file mode 100755 index 000000000..a4bb452b9 --- /dev/null +++ b/source/n/iptraf/iptraf.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-3.0.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-iptraf + +cd $TMP +rm -rf $PKG +rm -rf iptraf-$VERSION +tar xvf $CWD/iptraf-$VERSION.tar.gz || exit 1 +cd iptraf-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/iptraf_3.0.0-6.diff.gz | patch -p1 || exit 1 +zcat $CWD/iptraf.paths.diff.gz | patch -p1 || exit 1 +cd src + +make -j2 || exit 1 + +mkdir -p $PKG/usr/sbin +cp iptraf rawtime rvnamed $PKG/usr/sbin +chmod 755 $PKG/usr/sbin/* + +cd .. + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/var/cache/iptraf +mkdir -p $PKG//var/run/iptraf +mkdir -p $PKG/var/log/iptraf + +mkdir -p $PKG/usr/doc/iptraf-$VERSION +cp -a \ + CHANGES Documentation FAQ INSTALL LICENSE README* RELEASE-NOTES \ + $PKG/usr/doc/iptraf-$VERSION + +mkdir -p $PKG/usr/man/man8 +mv $PKG/usr/doc/iptraf-$VERSION/Documentation/iptraf.8 $PKG/usr/man/man8 +if [ -r $PKG/usr/doc/iptraf-$VERSION/Documentation/rawtime.8 ]; then + mv $PKG/usr/doc/iptraf-$VERSION/Documentation/rawtime.8 $PKG/usr/man/man8 +fi +mv $PKG/usr/doc/iptraf-$VERSION/Documentation/rvnamed.8 $PKG/usr/man/man8 +gzip -9 $PKG/usr/man/man8/* + +# crud removal +( cd $PKG/usr/doc/iptraf-$VERSION/Documentation + rm -rf manual.aux manual.dvi *.log manual.rtf manual.sgml manual.template .xvpics .log +) + +rm -f $PKG/usr/doc/iptraf-$VERSION/Documentation/manual.template.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/iptraf-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iptraf/iptraf.paths.diff b/source/n/iptraf/iptraf.paths.diff new file mode 100644 index 000000000..4251b46d5 --- /dev/null +++ b/source/n/iptraf/iptraf.paths.diff @@ -0,0 +1,17 @@ +--- ./src/Makefile.orig 2003-03-14 13:39:46.000000000 -0800 ++++ ./src/Makefile 2003-03-14 13:41:15.000000000 -0800 +@@ -68,12 +68,12 @@ + # installation target directory. The iptraf and rvnamed programs get + # stored here. iptraf also exec's rvnamed from this directory. + +-TARGET = /usr/local/bin ++TARGET = /usr/sbin + + # The IPTraf working directory; if you change this. Starting with this + # version, this definition overrides dirs.h. + +-WORKDIR = /var/local/iptraf ++WORKDIR = /var/cache/iptraf + + # The IPTraf log file directory. IPTraf log files are placed here. + # This definition overrides dirs.h diff --git a/source/n/iptraf/iptraf_3.0.0-6.diff b/source/n/iptraf/iptraf_3.0.0-6.diff new file mode 100644 index 000000000..c524e0deb --- /dev/null +++ b/source/n/iptraf/iptraf_3.0.0-6.diff @@ -0,0 +1,1499 @@ +--- iptraf-3.0.0.orig/Documentation/iptraf.8 ++++ iptraf-3.0.0/Documentation/iptraf.8 +@@ -2,22 +2,22 @@ + .SH NAME + iptraf \- Interactive Colorful IP LAN Monitor + .SH SYNOPSIS +-.BR iptraf " { [ " -f " ] [ " -q " ] [ { " -i ++.BR iptraf " { [ " \-f " ] [ " \-q " ] [ " \-u " ] [ { " \-i + .IR iface " | " +-.BR -g " | " -d ++.BR \-g " | " \-d + .IR iface " | " +-.BR -s ++.BR \-s + .IR iface " | " +-.BR -z ++.BR \-z + .IR iface " | " +-.BR -l ++.BR \-l + .IR iface " } [ " +-.BR -t ++.BR \-t + .IR timeout " ] [ " +-.BR -B " [ " +-.BR -L ++.BR \-B " [ " ++.BR \-L + .IR logfile " ] ] ] | [ " +-.BR -h " ] }" ++.BR \-h " ] }" + .br + .SH DESCRIPTION + .B iptraf +@@ -30,38 +30,38 @@ + .SH OPTIONS + These options can also be supplied to the command: + .TP +-.BI "-i " iface ++.BI "\-i " iface + immediately start the IP traffic monitor on the specified interface, or +-all interfaces if "-i all" is specified ++all interfaces if "\-i all" is specified + .TP +-.B "-g" ++.B "\-g" + immediately start the general interface statistics + .TP +-.BI "-d " iface ++.BI "\-d " iface + allows you to immediately start the detailed on the indicated interface (iface) + .TP +-.BI "-s " iface ++.BI "\-s " iface + allows you to immediately monitor TCP and UDP traffic on the specified interface (iface) + .TP +-.BI "-z " iface ++.BI "\-z " iface + shows packet counts by size on the specified interface + .TP +-.BI "-l " iface ++.BI "\-l " iface + start the LAN station monitor on the specified interface, or all LAN +-interfaces if "-l all" is specified ++interfaces if "\-l all" is specified + .TP +-.BI "-t " timeout ++.BI "\-t " timeout + tells IPTraf to run the specified facility for only + .I timeout + minutes. This option is used only with one of the above parameters. + .TP +-.B "-B" ++.B "\-B" + redirect standard output to /dev/null, closes standard input, and forks + the program into the background. Can be used only with one of the + facility invocation parameters above. Send the backgrounded process a + USR2 signal to terminate. + .TP +-.B "-L logfile" ++.B "\-L logfile" + allows you to specify an alternate log file name. The default log file + name is based on either the interface selected (detailed interface + statistics, TCP/UDP service statistics, packet size breakdown), or the +@@ -69,15 +69,19 @@ + path is not specified, the log file is placed in + .B /var/log/iptraf + .TP +-.B "-f" ++.B "\-f" + clears all locks and counters, causing this instance of IPTraf to think + it's the first one running. This should only be used to recover from + an abnormal termination or system crash. + .TP +-.BI "-q" ++.B "\-u" ++allow use of unsupported interfaces as ethernet devices. This is needed if ++you changed the name of an interface (ex: ip link set eth0 name foo0) ++.TP ++.BI "\-q" + no longer needed, maintained only for compatibility. + .TP +-.B "-h" ++.B "\-h" + shows a command summary + .SH SIGNALS + +@@ -86,7 +90,7 @@ + + .SH FILES + /var/log/iptraf/*.log - log file +- /var/local/iptraf/* - important IPTraf data files ++ /var/lib/iptraf/* - important IPTraf data files + + .SH SEE ALSO + Documentation/* - complete documentation written by the author +@@ -96,6 +100,6 @@ + Gerard Paul Java (riker@mozcom.com) + + .SH MANUAL AUTHOR +-Frederic Peters (fpeters@debian.org), using iptraf --help ++Frederic Peters (fpeters@debian.org), using iptraf \-h + General manual page modifications by Gerard Paul Java (riker@mozcom.com) + +--- iptraf-3.0.0.orig/Documentation/rvnamed.8 ++++ iptraf-3.0.0/Documentation/rvnamed.8 +@@ -11,7 +11,7 @@ + This program is only used by iptraf and, therefore, is useless alone. + + .SH FILES +- /var/local/iptraf/rvnamed.log - log file ++ /var/log/iptraf/rvnamed.log - log file + + .SH SEE ALSO + README.rvnamed - documentation from the author +--- iptraf-3.0.0.orig/src/ifstats.c ++++ iptraf-3.0.0/src/ifstats.c +@@ -32,7 +32,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -129,7 +129,7 @@ + { + FILE *fd; + char buf[161]; +- char ifname[10]; ++ char ifname[18]; + struct iflist *itmp = NULL; + struct iflist *tail = NULL; + unsigned int index = 0; +@@ -433,7 +433,7 @@ + FILE *logfile = NULL; + + int br; +- char ifname[10]; ++ char ifname[18]; + + int ch; + +@@ -760,7 +760,7 @@ + char *tpacket; + unsigned int iphlen; + +- char ifname[10]; ++ char ifname[18]; + struct sockaddr_ll fromaddr; + unsigned short linktype; + +--- iptraf-3.0.0.orig/src/iptraf.c ++++ iptraf-3.0.0/src/iptraf.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -410,7 +411,7 @@ + { + printf("\nSyntax:\n"); + printf +- (" iptraf [ -f ] [ { -i iface | -g | -d iface | -s iface | -z iface |\n"); ++ (" iptraf [ -f ] [ -u ] [ { -i iface | -g | -d iface | -s iface | -z iface |\n"); + printf + (" -l iface } [ -t timeout ] [ -B ] [ -L logfile ] [-I interval] ] \n\n"); + printf +@@ -445,6 +446,8 @@ + ("-f - clear all locks and counters. Use with great caution.\n"); + printf + (" Normally used to recover from an abnormal termination.\n\n"); ++ printf ++ ("-u - allow use of unsupported interfaces as ethernet devices.\n"); + printf("IPTraf %s Copyright (c) Gerard Paul Java 1997-2004\n", + VERSION); + } +@@ -499,6 +502,8 @@ + } + #endif + ++ setlocale(LC_ALL, ""); ++ + strcpy(current_logfile, ""); + strcpy(graphing_logfile, ""); + strcpy(graphing_filter, ""); +@@ -616,6 +621,18 @@ + freopen("/dev/null", "r", stdin); + freopen("/dev/null", "w", stderr); + #endif ++ ++ /* Check whether LOCKDIR exists (/var/run is on a tmpfs in Ubuntu) */ ++ if(access(LOCKDIR,F_OK) != 0) { ++ if(mkdir(LOCKDIR, 0700) == -1) { ++ fprintf(stderr, "Cannot create %s: %s", LOCKDIR, strerror(errno)); ++ exit(1); ++ } ++ if(chown(LOCKDIR, 0, 0) == -1) { ++ fprintf(stderr, "Cannot change owner of %s: %s", LOCKDIR, strerror(errno)); ++ exit(1); ++ } ++ } + + initscr(); + +--- iptraf-3.0.0.orig/src/itrafmon.c ++++ iptraf-3.0.0/src/itrafmon.c +@@ -604,7 +604,7 @@ + int curwin = 0; + + int readlen; +- char ifname[10]; ++ char ifname[18]; + + unsigned long long total_pkts = 0; + +--- iptraf-3.0.0.orig/src/othptab.c ++++ iptraf-3.0.0/src/othptab.c +@@ -16,14 +16,28 @@ + + ***/ + ++/* ARP protocol opcodes. */ ++#define ARPOP_REQUEST 1 /* ARP request. */ ++#define ARPOP_REPLY 2 /* ARP reply. */ ++#define ARPOP_RREQUEST 3 /* RARP request. */ ++#define ARPOP_RREPLY 4 /* RARP reply. */ ++#define ARPOP_InREQUEST 8 /* InARP request. */ ++#define ARPOP_InREPLY 9 /* InARP reply. */ ++#define ARPOP_NAK 10 /* (ATM)ARP NAK. */ ++ ++ + #include ++#include "options.h" ++#include "tcptable.h" ++/*#include */ ++#include + #include + #include + #include ++#include ++#include + #include + #include "arphdr.h" +-#include "options.h" +-#include "tcptable.h" + #include "othptab.h" + #include "deskman.h" + #include "attrs.h" +--- iptraf-3.0.0.orig/src/ifstats.h ++++ iptraf-3.0.0/src/ifstats.h +@@ -6,7 +6,7 @@ + ***/ + + struct iflist { +- char ifname[8]; ++ char ifname[18]; + unsigned int encap; + unsigned long long iptotal; + unsigned long badtotal; +--- iptraf-3.0.0.orig/src/othptab.h ++++ iptraf-3.0.0/src/othptab.h +@@ -9,14 +9,12 @@ + #include + #include + #include +-#include +-#include ++#include + #include + #include + #include + #include + #include +-#include + #include + #include "servname.h" + #include "addproto.h" +@@ -42,7 +40,7 @@ + int s_fstat; + int d_fstat; + unsigned int protocol; +- char iface[8]; ++ char iface[18]; + unsigned int pkt_length; + + union { +--- iptraf-3.0.0.orig/src/tcptable.h ++++ iptraf-3.0.0/src/tcptable.h +@@ -12,19 +12,17 @@ + #include + #include + #include +-#include + #include + #include +-#include +-#include +-#include +-#include + #include ++#include ++#include ++#include ++#include + #include + #include + #include + #include +-#include + #include + #include + #include "servname.h" +@@ -64,7 +62,7 @@ + unsigned long finack; + int partial; + int finsent; +- char ifname[8]; ++ char ifname[18]; + unsigned int index; + int reused; + int timedout; +--- iptraf-3.0.0.orig/src/Makefile ++++ iptraf-3.0.0/src/Makefile +@@ -31,11 +31,12 @@ + # options to be passed to the compiler. I don't believe they need to be + # modified (except for -m486 on non-Intel x86 platforms). + +-CFLAGS = -Wall #-O2 #-m486 ++CFLAGS = -Wall -g #-O2 #-m486 + DIRS = -DWORKDIR=\"$(WORKDIR)\" \ + -DLOGDIR=\"$(LOGDIR)\" -DEXECDIR=\"$(TARGET)\" + LDOPTS = #-static + ++ + # you may want to change this to point to your ncurses include directory + # if the ncurses include files are not in the default location. + +@@ -139,13 +140,11 @@ + + cleano: + rm -f *.o *~ +- strip iptraf +- strip rvnamed + + # installation rule + + install: +- @./install.sh $(TARGET) $(WORKDIR) $(LOGDIR) $(LOCKDIR) ++ @./install.sh $(TARGET) $(WORKDIR) $(LOGDIR) $(LOCKDIR) $(DESTDIR) + + # Upgrade rule + # +@@ -170,7 +169,6 @@ + /bin/cp -pR ../Documentation $(BINDIR) + mkdir $(BINDIR)/src + /bin/cp -p $(BINS) Makefile install.sh version $(BINDIR)/src +- strip $(BINDIR)/src/iptraf $(BINDIR)/src/rvnamed $(BINDIR)/src/rawtime + + #$(BINDIR)/src/updatefilters + +--- iptraf-3.0.0.orig/src/promisc.c ++++ iptraf-3.0.0/src/promisc.c +@@ -32,7 +32,7 @@ + #include + #include + #include +-#include ++#include + #include + #include "ifstats.h" + #include "ifaces.h" +@@ -49,7 +49,7 @@ + { + FILE *fd; + int ifd; +- char buf[8]; ++ char buf[18]; + struct promisc_states *ptmp; + struct promisc_states *tail = NULL; + struct ifreq ifr; +@@ -81,6 +81,7 @@ + */ + + if ((strncmp(buf, "eth", 3) == 0) || ++ (strncmp(buf, "ath", 3) == 0) || + (strncmp(buf, "fddi", 4) == 0) || + (strncmp(buf, "tr", 2) == 0) || + (strncmp(ptmp->params.ifname, "wvlan", 4) == 0) || +--- iptraf-3.0.0.orig/src/hostmon.c ++++ iptraf-3.0.0/src/hostmon.c +@@ -711,7 +711,7 @@ + int is_ip; + int ch; + +- char ifname[10]; ++ char ifname[18]; + + struct timeval tv; + unsigned long starttime; +--- iptraf-3.0.0.orig/src/serv.c ++++ iptraf-3.0.0/src/serv.c +@@ -739,7 +739,7 @@ + unsigned short linktype; + int br; + +- char iface[8]; ++ char iface[18]; + unsigned int idx = 1; + + unsigned int sport = 0; +--- iptraf-3.0.0.orig/src/packet.c ++++ iptraf-3.0.0/src/packet.c +@@ -31,13 +31,12 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include + #include + #include +-#include + #include + #include + #include "deskman.h" +@@ -79,6 +78,8 @@ + case ARPHRD_ETHER: + if (strncmp(ifname, "eth", 3) == 0) + result = LINK_ETHERNET; ++ else if (strncmp(ifname, "ath", 3) == 0) ++ result = LINK_ETHERNET; + else if (strncmp(ifname, "plip", 4) == 0) + result = LINK_PLIP; + else if (strncmp(ifname, "fddi", 4) == 0) /* For some Ethernet- */ +@@ -101,6 +102,8 @@ + result = LINK_ETHERNET; + else if (strncmp(ifname, "tun", 3) == 0) + result = LINK_ETHERNET; ++ else if (strncmp(ifname, "ra", 2) == 0) ++ result = LINK_ETHERNET; + else if (strncmp(ifname, "vlan", 3) == 0) + result = LINK_VLAN; + else if (strncmp(ifname, "brg", 3) == 0) +--- iptraf-3.0.0.orig/src/rvnamed.c ++++ iptraf-3.0.0/src/rvnamed.c +@@ -219,6 +219,9 @@ + signal(SIGCHLD, childreap); + + logfile = fopen(RVNDLOGFILE, "a"); ++ if ( logfile == NULL ) { /* unable to open file -> /dev/null */ ++ logfile = fopen("/dev/null", "a"); ++ } + + if (logfile == NULL) + logfile = fopen("/dev/null", "a"); +--- iptraf-3.0.0.orig/src/rvnamed.h ++++ iptraf-3.0.0/src/rvnamed.h +@@ -1,9 +1,9 @@ + #include + #include + +-#define CHILDSOCKNAME "/dev/rvndcldcomsk" +-#define PARENTSOCKNAME "/dev/rvndpntcomsk" +-#define IPTSOCKNAME "/dev/rvndiptcomsk" ++#define CHILDSOCKNAME "/var/run/rvndcldcomsk" ++#define PARENTSOCKNAME "/var/run/rvndpntcomsk" ++#define IPTSOCKNAME "/var/run/rvndiptcomsk" + + #define SOCKET_PREFIX "isock" + +--- iptraf-3.0.0.orig/src/ifaces.c ++++ iptraf-3.0.0/src/ifaces.c +@@ -24,7 +24,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -32,14 +32,15 @@ + #include "error.h" + + extern int accept_unsupported_interfaces; +-#define NUM_SUPPORTED_IFACES 26 ++#define NUM_SUPPORTED_IFACES 28 + + extern int daemonized; + + char ifaces[][6] = + { "lo", "eth", "sl", "ppp", "ippp", "plip", "fddi", "isdn", "dvb", + "pvc", "hdlc", "ipsec", "sbni", "tr", "wvlan", "wlan", "sm2", "sm3", +- "pent", "lec", "brg", "tun", "tap", "cipcb", "tunl", "vlan" ++ "pent", "lec", "brg", "tun", "tap", "cipcb", "tunl", "vlan", "ath", ++ "ra" + }; + + char *ltrim(char *buf) +@@ -102,7 +103,7 @@ + int iface_supported(char *iface) + { + int i; +- ++ + if (accept_unsupported_interfaces) + return 1; + +--- iptraf-3.0.0.orig/src/isdntab.h ++++ iptraf-3.0.0/src/isdntab.h +@@ -1,3 +1,87 @@ ++/* copied from Linux ISDN subsystem for inclusion in iptraf */ ++ ++/* Linux ISDN subsystem, main header ++ * ++ * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de) ++ * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg ++ * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de) ++ * Copyright 2000-2002 by Kai Germaschewski (kai@germaschewski.name) ++ * ++ * This software may be used and distributed according to the terms ++ * of the GNU General Public License, incorporated herein by reference. ++ * ++ */ ++ ++/* Packet encapsulations for net-interfaces */ ++#define ISDN_NET_ENCAP_ETHER 0 ++#define ISDN_NET_ENCAP_RAWIP 1 ++#define ISDN_NET_ENCAP_IPTYP 2 ++#define ISDN_NET_ENCAP_CISCOHDLC 3 /* Without SLARP and keepalive */ ++#define ISDN_NET_ENCAP_SYNCPPP 4 ++#define ISDN_NET_ENCAP_UIHDLC 5 ++#define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive */ ++#define ISDN_NET_ENCAP_X25IFACE 7 /* Documentation/networking/x25-iface.txt*/ ++#define ISDN_NET_ENCAP_NR 8 ++ ++/* New ioctl-codes */ ++#define IIOCNETAIF _IO('I',1) ++#define IIOCNETDIF _IO('I',2) ++#define IIOCNETSCF _IO('I',3) ++#define IIOCNETGCF _IO('I',4) ++#define IIOCNETANM _IO('I',5) ++#define IIOCNETDNM _IO('I',6) ++#define IIOCNETGNM _IO('I',7) ++#define IIOCGETSET _IO('I',8) /* no longer supported */ ++#define IIOCSETSET _IO('I',9) /* no longer supported */ ++#define IIOCSETVER _IO('I',10) ++#define IIOCNETHUP _IO('I',11) ++#define IIOCSETGST _IO('I',12) ++#define IIOCSETBRJ _IO('I',13) ++#define IIOCSIGPRF _IO('I',14) ++#define IIOCGETPRF _IO('I',15) ++#define IIOCSETPRF _IO('I',16) ++#define IIOCGETMAP _IO('I',17) ++#define IIOCSETMAP _IO('I',18) ++#define IIOCNETASL _IO('I',19) ++#define IIOCNETDIL _IO('I',20) ++#define IIOCGETCPS _IO('I',21) ++#define IIOCGETDVR _IO('I',22) ++ ++ ++typedef struct { ++ char name[10]; /* Name of interface */ ++ char master[10]; /* Name of Master for Bundling */ ++ char slave[10]; /* Name of Slave for Bundling */ ++ char eaz[256]; /* EAZ/MSN */ ++ char drvid[25]; /* DriverId for Bindings */ ++ int onhtime; /* Hangup-Timeout */ ++ int charge; /* Charge-Units */ ++ int l2_proto; /* Layer-2 protocol */ ++ int l3_proto; /* Layer-3 protocol */ ++ int p_encap; /* Encapsulation */ ++ int exclusive; /* Channel, if bound exclusive */ ++ int dialmax; /* Dial Retry-Counter */ ++ int slavedelay; /* Delay until slave starts up */ ++ int cbdelay; /* Delay before Callback */ ++ int chargehup; /* Flag: Charge-Hangup */ ++ int ihup; /* Flag: Hangup-Timeout on incoming line */ ++ int secure; /* Flag: Secure */ ++ int callback; /* Flag: Callback */ ++ int cbhup; /* Flag: Reject Call before Callback */ ++ int pppbind; /* ippp device for bindings */ ++ int chargeint; /* Use fixed charge interval length */ ++ int triggercps; /* BogoCPS needed for triggering slave */ ++ int dialtimeout; /* Dial-Timeout */ ++ int dialwait; /* Time to wait after failed dial */ ++ int dialmode; /* Flag: off / on / auto */ ++} isdn_net_ioctl_cfg; ++ ++ ++ ++ ++/* end of copied part */ ++ ++ + struct isdntabent { + char ifname[10]; + unsigned int encap; +--- iptraf-3.0.0.orig/src/isdntab.c ++++ iptraf-3.0.0/src/isdntab.c +@@ -20,7 +20,6 @@ + #include + #include + #include +-#include + #include "isdntab.h" + + +--- iptraf-3.0.0.orig/src/pktsize.c ++++ iptraf-3.0.0/src/pktsize.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +--- iptraf-3.0.0.orig/src/promisc.h ++++ iptraf-3.0.0/src/promisc.h +@@ -9,7 +9,7 @@ + */ + + struct promisc_params { +- char ifname[8]; ++ char ifname[18]; + int saved_state; + int state_valid; + }; +--- iptraf-3.0.0.orig/src/install.sh ++++ iptraf-3.0.0/src/install.sh +@@ -18,37 +18,38 @@ + WORKDIR=$2 + LOGDIR=$3 + LOCKDIR=$4 ++DESTDIR=$5 + + echo + echo "*** Installing executable programs and preparing work directories" + echo + echo ">>> Installing iptraf in $TARGET" +-$INSTALL -m 0700 -o root -g root -s iptraf $TARGET ++$INSTALL -m 0700 -o root -g root iptraf $DESTDIR/$TARGET + echo ">>> Installing rvnamed in $TARGET" +-$INSTALL -m 0700 -o root -g root -s rvnamed $TARGET ++$INSTALL -m 0700 -o root -g root rvnamed $DESTDIR/$TARGET + +-if [ ! -d $WORKDIR ]; then ++if [ ! -d $DESTDIR/$WORKDIR ]; then + echo ">>> Creating IPTraf work directory $WORKDIR" + else + echo ">>> IPTraf work directory $WORKDIR already exists" +- rm -f $WORKDIR/othfilter.dat ++ rm -f $DESTDIR/$WORKDIR/othfilter.dat + fi + +-$INSTALL -m 0700 -o root -g root -d $WORKDIR ++$INSTALL -m 0700 -o root -g root -d $DESTDIR/$WORKDIR + +-if [ ! -d $LOGDIR ]; then ++if [ ! -d $DESTDIR/$LOGDIR ]; then + echo ">>> Creating IPTraf log directory $LOGDIR" + else + echo ">>> IPTraf log directory $LOGDIR already exists" + fi +-$INSTALL -m 0700 -o root -g root -d $LOGDIR ++$INSTALL -m 0700 -o root -g root -d $DESTDIR/$LOGDIR + +-if [ ! -d $LOCKDIR ]; then ++if [ ! -d $DESTDIR/$LOCKDIR ]; then + echo ">>> Creating IPTraf lockfile directory $LOCKDIR" + else + echo ">>> IPTraf lockfile directory $LOCKDIR already exists" + fi +-$INSTALL -m 0700 -o root -g root -d $LOCKDIR ++$INSTALL -m 0700 -o root -g root -d $DESTDIR/$LOCKDIR + echo + echo + echo "*** iptraf, and rvnamed executables are in $TARGET" +@@ -56,25 +57,27 @@ + + ################# Filter clearing for 3.0 ########################## + +-if [ ! -f $WORKDIR/version ]; then ++if [ ! -f $DESTDIR/$WORKDIR/version ]; then + echo ">>> Clearing old filter list" +- if [ -f $WORKDIR/tcpfilters.dat ]; then +- mv -f $WORKDIR/tcpfilters.dat $WORKDIR/tcpfilters.dat~ ++ if [ -f $DESTDIR/$WORKDIR/tcpfilters.dat ]; then ++ mv -f $DESTDIR/$WORKDIR/tcpfilters.dat $DESTDIR/$WORKDIR/tcpfilters.dat~ + fi + +- if [ -f $WORKDIR/udpfilters.dat ]; then +- mv -f $WORKDIR/udpfilters.dat $WORKDIR/udpfilters.dat~ ++ if [ -f $DESTDIR/$WORKDIR/udpfilters.dat ]; then ++ mv -f $DESTDIR/$WORKDIR/udpfilters.dat $DESTDIR/$WORKDIR/udpfilters.dat~ + fi + +- if [ -f $WORKDIR/othipfilters.dat ]; then +- mv -f $WORKDIR/othipfilters.dat $WORKDIR/othipfilters.dat~ ++ if [ -f $DESTDIR/$WORKDIR/othipfilters.dat ]; then ++ mv -f $DESTDIR/$WORKDIR/othipfilters.dat $DESTDIR/$WORKDIR/othipfilters.dat~ + fi + +- rm -f $WORKDIR/savedfilters.dat ++ rm -f $DESTDIR/$WORKDIR/savedfilters.dat + fi + #################################################################### + +-cat version > $WORKDIR/version ++cat version > $DESTDIR/$WORKDIR/version ++ ++exit 0 + + echo + echo +--- iptraf-3.0.0.orig/src/tr.c ++++ iptraf-3.0.0/src/tr.c +@@ -7,7 +7,7 @@ + */ + + #include +-#include ++#include + #include + + unsigned int get_tr_ip_offset(unsigned char *pkt) +--- iptraf-3.0.0.orig/debian/manpages ++++ iptraf-3.0.0/debian/manpages +@@ -0,0 +1,2 @@ ++Documentation/iptraf.8 ++Documentation/rvnamed.8 +--- iptraf-3.0.0.orig/debian/dirs ++++ iptraf-3.0.0/debian/dirs +@@ -0,0 +1,7 @@ ++etc/logrotate.d ++usr/sbin ++usr/lib/iptraf ++usr/share/doc-base/ ++var/lib/iptraf/ ++var/run/iptraf/ ++ +--- iptraf-3.0.0.orig/debian/README.debian ++++ iptraf-3.0.0/debian/README.debian +@@ -0,0 +1,16 @@ ++iptraf for Debian ++----------------- ++ ++Since 2.1.1, old config files (versions below 1.4.0) won't be updated to the ++new format. Binary config files are a pain; let's suffer :( (old tools don't ++compile anymore) ++ ++IPTraf does _not_ work with IPv6. you've been warned. ++ ++IPTraf for Debian supports wvlan and lec interfaces that upstream doesn't ++support by lack of thorough testing. This support is here since users ++requested it but no tests have been done ! ++ ++-- ++Frederic Peters , Wed, 19 Dec 2001 10:27:54 +0100 ++ +--- iptraf-3.0.0.orig/debian/changelog ++++ iptraf-3.0.0/debian/changelog +@@ -0,0 +1,424 @@ ++iptraf (3.0.0-6) unstable; urgency=low ++ ++ * src/ifaces.c: added support for raX interfaces (closes: #281315) ++ * debian/menu: updated to new menu policy (froms Apps/Net to Applications / ++ Network / Monitoring) ++ * src/iptraf.c: added call to setlocale() (closes: #328186, #327147) (that ++ I couldn't reproduce anyway) ++ ++ -- Frederic Peters Sat, 29 Sep 2007 12:42:56 +0200 ++ ++iptraf (3.0.0-5) unstable; urgency=low ++ ++ * src/Makefile, src/install.sh: always use -g, and don't strip binaries ++ (closes: #437229) ++ ++ -- Frederic Peters Wed, 15 Aug 2007 15:36:49 +0200 ++ ++iptraf (3.0.0-4) unstable; urgency=low ++ ++ * src/ifaces.c: incremented NUM_SUPPORTED_IFACES so that ath devices are ++ recognised correctly. (closes: #413212) ++ ++ -- Frederic Peters Sat, 3 Mar 2007 13:35:58 +0100 ++ ++iptraf (3.0.0-3) unstable; urgency=low ++ ++ * Sync with Ubuntu fixes (by Oliver Grawert and Michael Vogt) ++ * added fix for /var/run detection (since it is a tmpfs by default on ++ Ubuntu) [and fixed ubuntu fix] ++ * added support for ath devices ++ * fixed FTBFS by changing linux/if_tr.h to netinet/if_tr.h ++ ++ -- Frederic Peters Sun, 15 Oct 2006 13:34:14 +0200 ++ ++iptraf (3.0.0-2) unstable; urgency=low ++ ++ * src/ifaces.c: remove duplicated patch, it had been applied upstream and I ++ missed it. (closes: #379539) ++ ++ -- Frederic Peters Mon, 24 Jul 2006 11:02:29 +0200 ++ ++iptraf (3.0.0-1) unstable; urgency=low ++ ++ * New upstream release. (closes: #370577) ++ * Oops, I missed it, thansk for the bug report. ++ * Updated patches to work against this version. ++ * Supports vlan interfaces (closes: #168202, #226577) ++ * Supports bridged interfaces (closes: #215535) ++ * debian/copyright: updated copyright & license information. ++ * debian/rules: partly updated to newer debhelper helpers. ++ ++ -- Frederic Peters Tue, 6 Jun 2006 07:36:49 +0200 ++ ++iptraf (2.7.0-8) unstable; urgency=low ++ ++ * src/*.[ch]: shaked up headers so it compiles with current libc and linux ++ headers (closes: #323319) ++ ++ -- Frederic Peters Tue, 16 Aug 2005 10:24:50 +0200 ++ ++iptraf (2.7.0-7) unstable; urgency=low ++ ++ * Documentation/iptraf.8: use \- to denote the dash signs before options. ++ ++ -- Frederic Peters Sat, 26 Feb 2005 10:37:01 +0100 ++ ++iptraf (2.7.0-6) unstable; urgency=low ++ ++ * Creates rvnamed sockets in /var/run/ (closes: #272958) ++ * debian/menu: quote needs and section. ++ ++ -- Frederic Peters Thu, 23 Sep 2004 10:05:55 +0200 ++ ++iptraf (2.7.0-5) unstable; urgency=low ++ ++ * Include bits from to get iptraf working without inclusion ++ of this kernel header (closes: #219757) ++ * Do not test for TERM if running daemonized (closes: #222525) ++ * Document -u in the manpage (closes: #147447, #199888) ++ ++ -- Frederic Peters Thu, 11 Dec 2003 13:45:00 +0100 ++ ++iptraf (2.7.0-4) unstable; urgency=low ++ ++ * debian/menu: fixed su-to-root in menu item (closes: #188078) ++ * debian/control: removed note about Linux kernel >= 2.2 ++ * debian/control: updated policy to 3.6.1.0, no changes needed. ++ ++ -- Frederic Peters Sat, 30 Aug 2003 23:16:41 +0200 ++ ++iptraf (2.7.0-3) unstable; urgency=low ++ ++ * Added support for vlan interfaces. (patch by Ard van Breemen) ++ ++ -- Frederic Peters Mon, 11 Nov 2002 17:52:22 +0100 ++ ++iptraf (2.7.0-2) unstable; urgency=low ++ ++ * debian/iptraf-manual: there is no longer a plain text manual. ++ (closes: #149648) ++ ++ -- Frederic Peters Tue, 11 Jun 2002 11:40:45 +0200 ++ ++iptraf (2.7.0-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Upstream fixes detailed interface statitistics screen. (closes: #146851) ++ * Upstream has support for renamed interfaces. (closes: #128175) ++ but no documentation for it (doesn't close: 147447...) ++ ++ -- Frederic Peters Wed, 22 May 2002 09:31:32 +0200 ++ ++iptraf (2.6.0-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Upstream added percentage broadcast packet. (closes: #119915) ++ * Upstream applied my patch for renamed interfaces. (closes: #128175) ++ ++ -- Frederic Peters Wed, 1 May 2002 11:46:31 +0200 ++ ++iptraf (2.5.0-4) unstable; urgency=low ++ ++ * debian/logrotate: s/USR/USR1/ (closes: #131106) ++ * No longer hangs with resolver daemon (closes: #83522) ++ * debian/postrm: remove /var/run/iptraf on purge (closes: #129907) ++ ++ -- Frederic Peters Sun, 27 Jan 2002 13:51:48 +0100 ++ ++iptraf (2.5.0-3) unstable; urgency=low ++ ++ * debian/postinst: fixed spelling mistake itpraf -> iptraf. Caused old ++ script to rotate logs not to be renamed. (closes: #129744) ++ ++ -- Frederic Peters Fri, 18 Jan 2002 12:33:38 +0100 ++ ++iptraf (2.5.0-2) unstable; urgency=low ++ ++ * debian/menu: use su-to-root to launch iptraf from menu. (closes: #128144) ++ * debian/doc: removed README.Documentation since it talks about installing ++ documentation and this is already done by the package. (closes: #126932) ++ ++ -- Frederic Peters Mon, 7 Jan 2002 21:31:09 +0100 ++ ++iptraf (2.5.0-1) unstable; urgency=low ++ ++ * New upstream release. (closes: #125726) ++ * Upstream source tarball no longer contains compiled binaries. ++ (closes: #122677) ++ ++ -- Frederic Peters Wed, 19 Dec 2001 10:10:07 +0100 ++ ++iptraf (2.4.0-4) unstable; urgency=low ++ ++ * debian/logrotate: don't fail if iptraf is not running. (closes: #122692) ++ * debian/copyright: corrected licences -> licenses ++ ++ -- Frederic Peters Thu, 6 Dec 2001 19:17:39 +0100 ++ ++iptraf (2.4.0-3) unstable; urgency=low ++ ++ * debian/logrotate: added USR1 signal sending after logrotate rotated the ++ logfiles. (notification by Sebastian Henschel ) ++ * debian/changelog: removed emacs cruft from the end of the file. ++ * src/Makefile: removed -g from gcc flags. ++ * debian/rules, src/Makefile: added support for DEB_BUILD_OPTIONS ++ * debian/control: updated Standard-Versions to 3.5.6.0 ++ ++ -- Frederic Peters Tue, 27 Nov 2001 13:36:37 +0100 ++ ++iptraf (2.4.0-2) unstable; urgency=low ++ ++ * Fixed logfile directory location in rvnamed manpage (Closes: #99455) ++ * Added support for lec interfaces. ++ ++ -- Frederic Peters Mon, 2 Jul 2001 11:34:39 +0200 ++ ++iptraf (2.4.0-1) unstable; urgency=low ++ ++ * New upstream release. ++ * Upstream includes /etc/ethers patch. ++ ++ -- Frederic Peters Wed, 11 Apr 2001 11:19:26 +0200 ++ ++iptraf (2.3.1-2) unstable; urgency=low ++ ++ * Patched so it can use /etc/ethers like tcpdump (Closes: #32134) ++ * debian/postinst: as a consequence it no longer creates ethernet.desc ++ from an existing /etc/ethers ++ ++ -- Frederic Peters Tue, 19 Dec 2000 20:35:25 +0100 ++ ++iptraf (2.3.1-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters Sat, 9 Dec 2000 16:42:35 +0100 ++ ++iptraf (2.2.2-3) unstable; urgency=high ++ ++ * applied patch to support wvlan interfaces (patch by eichin@thok.org) ++ (closes: #70875) ++ * fixed rvnamed so it doesn't segfault (and makes iptraf locking up) ++ when /var/log/iptraf doesn't exist. (closes: #71487) ++ ++ -- Frederic Peters Mon, 27 Nov 2000 18:21:21 +0100 ++ ++iptraf (2.2.2-2) unstable; urgency=high ++ ++ * debian/rules: rename old /etc/cron.daily/iptraf to /e/c.d/iptraf.obsolete ++ since we now use logrotate (and dpkg won't remove it automatically) ++ (closes: #72998) ++ * debian/logrotate: added notifempty statemente ++ ++ -- Frederic Peters Mon, 16 Oct 2000 22:37:54 +0200 ++ ++iptraf (2.2.2-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters Thu, 24 Aug 2000 19:22:07 +0200 ++ ++iptraf (2.1.1-5) unstable; urgency=low ++ ++ * create log directory in postinst since it will only be removed by purge ++ (ie not remove) (closes: #58961) ++ ++ -- Frederic Peters Wed, 1 Mar 2000 15:08:34 +0100 ++ ++iptraf (2.1.1-4) frozen unstable; urgency=high ++ ++ * recompiled against libncurses5 ++ * debian/control: fixed Build-Depends line (libncurses4-dev has been ++ replaced by libncurses-dev)/ (closes: #56376) ++ ++ -- Frederic Peters Sat, 29 Jan 2000 01:50:53 +0100 ++ ++iptraf (2.1.1-3) frozen unstable; urgency=low ++ ++ * debian/postinst: iptraf wouldn't install because of /var/state/iptraf ++ no longer existing. (closes: #56147) ++ ++ -- Frederic Peters Tue, 25 Jan 2000 23:14:25 +0100 ++ ++iptraf (2.1.1-2) unstable; urgency=low ++ ++ * /var/lib/iptraf was not created ++ ++ -- Frederic Peters Tue, 21 Dec 1999 17:10:40 +0100 ++ ++iptraf (2.1.1-1) unstable; urgency=high ++ ++ * Maintainer upload :) ++ * Closes: #52341 and #52837 (rvnamed not working) ++ * Closes: #52548 (/usr/doc/iptraf not existing) ++ * Closes: #51801 (make building in live fs) ++ ++ -- Frederic Peters Fri, 17 Dec 1999 17:45:57 +0100 ++ ++iptraf (2.1.1-0.2) unstable; urgency=low ++ ++ * Another NMU requested by Frederic. ++ * debian/postinst: Fixed move from /var/lib/iptraf to /var/state/iptraf ++ to work in all cases (closes: #51712). ++ * debian/postinst: Commented out the config file conversion tools. ++ I can't get them to compile anymore :( ++ ++ -- Torsten Landschoff Sat, 4 Dec 1999 12:04:51 +0100 ++ ++iptraf (2.1.1-0.1) unstable; urgency=low ++ ++ * Debian QA Upload as requested by Frederic. ++ * New upstream release (closes: #50804). ++ * New features: ++ - New filter for non-IP packages (closes: #44420). ++ - Ctrl-L does redraw the screen now (closes: #43848). ++ * debian/control: Added Build-Depends, updated Standards-Version. ++ * debian/rules: Updated to adjust for changes in upstream source: ++ * Removed the old configfile conversion tools. I don't think they ++ are worth the effort. ++ ++ -- Torsten Landschoff Tue, 23 Nov 1999 17:49:23 +0100 ++ ++iptraf (2.0.2-5) unstable; urgency=low ++ ++ * Added 'missingok' to logrotate.d/iptraf . (bug#44794) ++ ++ -- Frederic Peters Fri, 10 Sep 1999 20:14:56 +0200 ++ ++iptraf (2.0.2-4) unstable; urgency=low ++ ++ * Updated debian/rules to build with newer debhelper ++ ++ -- Frederic Peters Thu, 9 Sep 1999 18:32:00 +0200 ++ ++iptraf (2.0.2-3) unstable; urgency=low ++ ++ * Moved to logrotate (it should now be compliant with policy 3.0.1) ++ ++ -- Frederic Peters Sun, 5 Sep 1999 19:56:59 +0200 ++ ++iptraf (2.0.2-2) unstable; urgency=low ++ ++ * Fixed postinst removal of /etc/iptraf.cfg (Bug#43625) ++ ++ -- Frederic Peters Sun, 29 Aug 1999 02:32:41 +0200 ++ ++iptraf (2.0.2-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters Thu, 29 Jul 1999 22:48:35 +0200 ++ ++iptraf (1.4.2-2) unstable; urgency=low ++ ++ * debian/rules : fixed a few errors (Fixes Bug#32265) ++ * debian/postinst : improved handling of converting format from ++ older releases ++ * Converting /etc/ethers (from tcpdump) to iptraf's ethernet.desc ++ (Fixes Bug#32134) ++ ++ -- Frederic Peters Sat, 30 Jan 1999 17:52:27 +0100 ++ ++iptraf (1.4.2-1) unstable; urgency=low ++ ++ * New upstream release (Fixes Bug#31805) ++ * Switched to debhelper ++ ++ -- Frederic Peters Mon, 18 Jan 1999 16:47:38 +0100 ++ ++iptraf (1.4.1-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters Mon, 4 Jan 1999 19:59:53 +0100 ++ ++iptraf (1.3.0-5) frozen unstable; urgency=low ++ ++ * Fixed a typo in postrm (Bug#30559) ++ ++ -- Frederic Peters Sun, 13 Dec 1998 18:45:31 +0100 ++ ++iptraf (1.3.0-4.1) unstable; urgency=low ++ ++ * non-maintainer (binary-only) upload for Alpha ++ * make 3.77-2 apparently doesn't like `*.h' as target ++ ++ -- Paul Slootman Mon, 12 Oct 1998 20:41:28 +0200 ++ ++iptraf (1.3.0-4) unstable; urgency=low ++ ++ * (Re) Added daily maintenance of log file. ++ ++ -- Frederic Peters Mon, 5 Oct 1998 21:40:04 +0200 ++ ++iptraf (1.3.0-3) unstable; urgency=low ++ ++ * New versions aren't just for Alpha people :) ++ ++ -- Frederic Peters Thu, 24 Sep 1998 23:04:33 +0200 ++ ++iptraf (1.3.0-2.1) unstable; urgency=low ++ ++ * non-maintainer (binary-only) upload for Alpha ++ * fixed creation of /var/log/iptraf (should be $DESTDIR/var/log/iptraf) ++ ++ -- Paul Slootman Thu, 24 Sep 1998 00:31:19 +0200 ++ ++iptraf (1.3.0-2) unstable; urgency=low ++ ++ * Made it upgrade right from both 1.1 and 1.2 releases. ++ * Version 1.3.0 brings a warning message at startup when IP Masquerading is enabled in the kernel. This can be boring so I add a new switch (-q). ++ ++ -- Frederic Peters Mon, 21 Sep 1998 08:11:33 +0200 ++ ++iptraf (1.3.0-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Frederic Peters Sun, 20 Sep 1998 22:57:54 +0200 ++ ++iptraf (1.2.0-2) unstable; urgency=low ++ ++ * Added PLIP to included interfaces (fixes #26376) ++ ++ -- Frederic Peters Sat, 19 Sep 1998 11:08:24 +0200 ++ ++iptraf (1.2.0-1) unstable; urgency=low ++ ++ * New maintainer. ++ * New upstream release. ++ * Moved configuration files from /var/lib/iptraf/ to /etc/iptraf/. ++ * Moved log files from /var/lib/iptraf/ to /var/log/. ++ * Removed '-m486' flag in Makefile (fixes #20989). ++ * Created man pages. ++ * Added doc-base support. ++ ++ -- Frederic Peters Sat, 27 Jun 1998 15:30:28 +0200 ++ ++iptraf (1.1.0-3) unstable; urgency=low ++ ++ * New maintainer. ++ * Many new improvements to package design. ++ ++ -- Robert S. Edmonds Mon, 6 Apr 1998 18:16:04 -0400 ++ ++iptraf (1.1.0-2) unstable; urgency=low ++ ++ * path to rvnamed was wrong and thus rvnamed was not loaded when needed. ++ * Clean up *.rej files. Sigh. ++ ++ -- Christoph Lameter Sat, 28 Feb 1998 09:13:59 -0800 ++ ++iptraf (1.1.0-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Christoph Lameter Sat, 28 Feb 1998 07:53:14 -0800 ++ ++iptraf (1.0-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Christoph Lameter Sat, 3 Jan 1998 21:59:02 -0800 ++ +--- iptraf-3.0.0.orig/debian/control ++++ iptraf-3.0.0/debian/control +@@ -0,0 +1,15 @@ ++Source: iptraf ++Section: net ++Priority: optional ++Maintainer: Frederic Peters ++Build-Depends: debhelper (>= 5.0.0-1), libncurses-dev ++Standards-Version: 3.7.2.0 ++ ++Package: iptraf ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: Interactive Colorful IP LAN Monitor ++ IPTraf is an ncurses-based IP LAN monitor that generates ++ various network statistics including TCP info, UDP counts, ++ ICMP and OSPF information, Ethernet load info, node stats, ++ IP checksum errors, and others. +--- iptraf-3.0.0.orig/debian/copyright ++++ iptraf-3.0.0/debian/copyright +@@ -0,0 +1,29 @@ ++This package is maintained by Frederic Peters . ++ ++It was downloaded from: ++ ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.0.tar.gz ++ ++ ++Copyright (c) Gerard Paul Java 1997-2005 ++ ++IPTraf is open-source software, distributed under the terms of the GNU ++General Public License, Version 2, or (at your option) any later version. ++ ++This program is free software; you can redistribute it and/or modify it ++under the terms of the GNU General Public License as published by the Free ++Software Foundation; either version 2 of the License, or (at your option) ++any later version. ++ ++This program is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++for more details. ++ ++You should have received a copy of the GNU General Public License along with ++this program; if not, write to the Free Software Foundation, Inc., 51 ++Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++ ++On Debian GNU/Linux systems, the complete text of the GNU General Public ++License can be found in `/usr/share/common-licenses/GPL'. ++ +--- iptraf-3.0.0.orig/debian/docs ++++ iptraf-3.0.0/debian/docs +@@ -0,0 +1,8 @@ ++README ++README.interfaces ++README.platforms ++README.rvnamed ++README.contact ++FAQ ++RELEASE-NOTES ++ +--- iptraf-3.0.0.orig/debian/postinst ++++ iptraf-3.0.0/debian/postinst +@@ -0,0 +1,66 @@ ++#!/bin/sh ++ ++set -e ++ ++case "$1" in ++ configure) ++ if [ -e /etc/iptraf.cfg ] ++ then ++ # old, incompatible, binary config file - I won't miss you :) ++ rm -f /etc/iptraf.cfg ++ fi ++ ++ if command -v install-docs >/dev/null 2>&1; then ++ install-docs -i /usr/share/doc-base/iptraf ++ fi ++ ++ if [ ! -d /var/lib/iptraf ]; then ++ mkdir /var/lib/iptraf ++ fi ++ ++ if [ -e /var/state/iptraf ]; then ++ find /var/state/iptraf -mindepth 1 -maxdepth 1 \ ++ -exec mv \{\} /var/lib/iptraf/ \; ++ rmdir /var/state/iptraf || true ++ fi ++ ++ # log files may have sensitive data ++ test -d /var/log/iptraf || mkdir /var/log/iptraf ++ chmod 0700 /var/log/iptraf ++ ++ # renaming old logfile rotator since it is marked as conffile and dpkg won't ++ # remove it (reported as Bug#72998 by Josip Rodin ++ test -e /etc/cron.daily/iptraf && \ ++ mv /etc/cron.daily/iptraf /etc/cron.daily/iptraf.obsolete ++ ++ # filters changed in 3.0, move them away (copied from in src/install.sh) ++ WORKDIR=/var/lib/iptraf/ ++ if [ -z "$2" ] || dpkg --compare-versions "$2" lt 3.0.0-1 ; then ++ if [ -f $WORKDIR/tcpfilters.dat ]; then ++ mv -f $WORKDIR/tcpfilters.dat $WORKDIR/tcpfilters.dat~ ++ fi ++ ++ if [ -f $WORKDIR/udpfilters.dat ]; then ++ mv -f $WORKDIR/udpfilters.dat $WORKDIR/udpfilters.dat~ ++ fi ++ ++ if [ -f $WORKDIR/othipfilters.dat ]; then ++ mv -f $WORKDIR/othipfilters.dat $WORKDIR/othipfilters.dat~ ++ fi ++ ++ rm -f $WORKDIR/savedfilters.dat ++ fi ++ ;; ++ ++ abort-upgrade|abort-remove|abort-deconfigure) ++ ;; ++ ++ *) ++ echo "postinst called with unknown argument \`$1'" >&2 ++ exit 1 ++ ;; ++esac ++ ++ ++#DEBHELPER# ++ +--- iptraf-3.0.0.orig/debian/menu ++++ iptraf-3.0.0/debian/menu +@@ -0,0 +1,4 @@ ++?package(iptraf):needs="text" \ ++ section="Applications/Network/Monitoring" \ ++ title="IPTraf" hints="Monitoring" \ ++ command="/usr/bin/su-to-root -c /usr/sbin/iptraf" +--- iptraf-3.0.0.orig/debian/iptraf-manual ++++ iptraf-3.0.0/debian/iptraf-manual +@@ -0,0 +1,11 @@ ++Document: iptraf ++Title: IPTraf User's Manual ++Author: Gerard Paul Java ++Abstract: This document is the User's Manual for IPTraf 2.7.0. ++ Documented here are the features of the program and instructions on its use. ++Section: Apps/Net ++ ++Format: HTML ++Index: /usr/share/doc/iptraf/html/manual.html ++Files: /usr/share/doc/iptraf/html/manual.html ++ +--- iptraf-3.0.0.orig/debian/rules ++++ iptraf-3.0.0/debian/rules +@@ -0,0 +1,78 @@ ++#!/usr/bin/make -f ++# Made with the aid of dh_make, by Craig Small ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++# Some lines taken from debmake, by Cristoph Lameter. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++makeopts := \ ++ WORKDIR=/var/lib/iptraf \ ++ LOGDIR=/var/log/iptraf \ ++ TARGET=/usr/sbin \ ++ DESTDIR=$(shell pwd)/debian/iptraf ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ ++ # Add here commands to compile the package. ++ cd src; make $(makeopts) ++ ++ cp Documentation/README README.Documentation ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ rm -f README.Documentation ++ ++ # Add here commands to clean up after the build process. ++ -cd src; make clean ++ dh_clean ++ ++# Build architecture-independent files here. ++binary-indep: build ++ ++# Build architecture-dependent files here. ++binary-arch: build ++# dh_testversion ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # commands to install the files into debian/iptraf ++ cp debian/iptraf-manual debian/iptraf/usr/share/doc-base/iptraf ++ ++ cd src; $(MAKE) install $(makeopts) ++ ++ dh_installdocs ++ dh_installmenu ++ dh_installlogrotate ++ dh_installman -A ++ dh_installchangelogs CHANGES ++ ++ mkdir debian/iptraf/usr/share/doc/iptraf/html ++ mkdir debian/iptraf/usr/share/doc/iptraf/html/stylesheet-images/ ++ cp Documentation/*.html debian/iptraf/usr/share/doc/iptraf/html/ ++ cp Documentation/stylesheet-images/*.gif debian/iptraf/usr/share/doc/iptraf/html/stylesheet-images/ ++ dh_strip ++ dh_compress ++ dh_fixperms ++ chmod 0750 debian/iptraf/var/log/iptraf ++ ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary ++ +--- iptraf-3.0.0.orig/debian/postrm ++++ iptraf-3.0.0/debian/postrm +@@ -0,0 +1,18 @@ ++#! /bin/sh ++ ++set -e ++ ++if [ $1 = purge ]; then ++ if [ -e /etc/iptraf.cfg ]; then ++ rm --force /etc/iptraf.cfg ++ fi ++ if [ -d /var/log/iptraf ]; then ++ rm -rf /var/log/iptraf ++ fi ++ if [ -d /var/lib/iptraf ]; then ++ rm -rf /var/lib/iptraf ++ fi ++fi ++ ++#DEBHELPER# ++ +--- iptraf-3.0.0.orig/debian/prerm ++++ iptraf-3.0.0/debian/prerm +@@ -0,0 +1,8 @@ ++#! /bin/sh ++ ++if command -v install-docs >/dev/null 2>&1; then ++ install-docs -r iptraf ++fi ++ ++#DEBHELPER# ++ +--- iptraf-3.0.0.orig/debian/compat ++++ iptraf-3.0.0/debian/compat +@@ -0,0 +1 @@ ++5 +--- iptraf-3.0.0.orig/debian/iptraf.logrotate ++++ iptraf-3.0.0/debian/iptraf.logrotate +@@ -0,0 +1,12 @@ ++ ++/var/log/iptraf/*.log { ++ rotate 7 ++ daily ++ compress ++ missingok ++ notifempty ++ postrotate ++ /usr/bin/killall -USR1 iptraf 2> /dev/null || : ++ endscript ++} ++ diff --git a/source/n/iptraf/slack-desc b/source/n/iptraf/slack-desc new file mode 100644 index 000000000..ef2319f9a --- /dev/null +++ b/source/n/iptraf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iptraf: iptraf (console-based network monitoring program) +iptraf: +iptraf: IPTraf is a console-based network monitoring program for Linux that +iptraf: displays information about IP traffic such as: +iptraf: +iptraf: Current TCP connections, types of IP packets, packet and byte +iptraf: counts, TCP/UDP counts by ports, packet counts by packet sizes, +iptraf: packet and byte counts by IP address, interface activity, flag +iptraf: statuses on TCP packets, and other LAN station statistics. +iptraf: +iptraf: iptraf was written by Gerard Paul Java. diff --git a/source/n/iputils/iputils.SlackBuild b/source/n/iputils/iputils.SlackBuild new file mode 100755 index 000000000..a5e3691a7 --- /dev/null +++ b/source/n/iputils/iputils.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=s20070202 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-iputils + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf iputils-$VERSION +tar xvf $CWD/iputils-$VERSION.tar.bz2 || exit 1 +cd iputils-$VERSION || exit 1 +# Modern compiler... +sed -i -e "s/OPEN_MAX/NR_OPEN/" $(grep -lr OPEN_MAX *) +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 +( cd doc ; make man || exit 1 ) || exit 1 + +strip arping clockdiff ping ping6 rarpd rdisc tracepath tracepath6 traceroute6 +mkdir -p $PKG/sbin +cat arping > $PKG/sbin/arping +chmod 755 $PKG/sbin/arping +mkdir -p $PKG/usr/sbin +cat clockdiff > $PKG/usr/sbin/clockdiff +chmod 755 $PKG/usr/sbin/clockdiff +mkdir -p $PKG/bin +cat ping > $PKG/bin/ping +cat ping6 > $PKG/bin/ping6 +chmod 4711 $PKG/bin/ping $PKG/bin/ping6 +cat rarpd > $PKG/usr/sbin/rarpd +cat rdisc > $PKG/usr/sbin/rdisc +chmod 755 $PKG/usr/sbin/rarpd $PKG/usr/sbin/rdisc +mkdir -p $PKG/usr/bin +cat tracepath > $PKG/usr/bin/tracepath +cat tracepath6 > $PKG/usr/bin/tracepath6 +cat traceroute6 > $PKG/usr/bin/traceroute6 +chmod 755 $PKG/usr/bin/tracepath* +chmod 4711 $PKG/usr/bin/traceroute6 + +mkdir -p $PKG/usr/man/man8 +( cd doc + for file in arping clockdiff ping rarpd rdisc tracepath traceroute6 ; do + cat $file.8 | gzip -9c > $PKG/usr/man/man8/$file.8.gz + done + cd $PKG/usr/man/man8 + ln -sf ping.8.gz ping6.8.gz + ln -sf tracepath.8.gz tracepath6.8.gz +) + +mkdir -p $PKG/usr/doc/iputils-$VERSION +cp -a \ + RELNOTES \ + $PKG/usr/doc/iputils-$VERSION +chmod 644 $PKG/usr/doc/iputils-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/iputils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iputils/slack-desc b/source/n/iputils/slack-desc new file mode 100644 index 000000000..c2d11a413 --- /dev/null +++ b/source/n/iputils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iputils: iputils (a collection of common network tools) +iputils: +iputils: The iputils package contains network tools found on nearly all *NIX +iputils: systems, along with an extra or two. Some of the utilities found +iputils: here include arping, clockdiff, ping, ping6, rarpd, rdisc, tracepath, +iputils: tracepath6, and traceroute6. +iputils: +iputils: iputils is maintained by YOSHIFUJI Hideaki. +iputils: +iputils: +iputils: diff --git a/source/n/ipw2100-fw/ipw2100-fw.SlackBuild b/source/n/ipw2100-fw/ipw2100-fw.SlackBuild new file mode 100755 index 000000000..6ef7bfb6e --- /dev/null +++ b/source/n/ipw2100-fw/ipw2100-fw.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=ipw2100-fw +VERSION=${VERSION:-1.3} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +mkdir ${PKGNAM}-${VERSION} +cd ${PKGNAM}-$VERSION +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +chmod 644 * + +# install: +mkdir -p $PKG/lib/firmware +cp -a * $PKG/lib/firmware + +# This file is in danger of being copied over if we don't give it a +# better name: +mv $PKG/lib/firmware/LICENSE $PKG/lib/firmware/LICENSE.ipw2100-fw-${VERSION} + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} +cp -a LICENSE $PKG/usr/doc/${PKGNAM}-${VERSION} + +mkdir -p $PKG/install +cat << EOF > $PKG/install/slack-desc +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ipw2100-fw: ipw2100-fw (Intel ipw2100 wireless firmware) +ipw2100-fw: +ipw2100-fw: This firmware is used by the ipw2100 kernel module for the Intel +ipw2100-fw: PRO/Wireless 2100 Network Connection mini PCI adapter. +ipw2100-fw: Your use of this firmware is governed by this Intel license: +ipw2100-fw: /usr/doc/${PKGNAM}-${VERSION}/LICENSE +ipw2100-fw: +ipw2100-fw: Visit Intel's Linux wireless website at this address: +ipw2100-fw: http://intellinuxwireless.org/ +ipw2100-fw: +ipw2100-fw: +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ipw2200-fw/ipw2200-fw.SlackBuild b/source/n/ipw2200-fw/ipw2200-fw.SlackBuild new file mode 100755 index 000000000..9aac28a68 --- /dev/null +++ b/source/n/ipw2200-fw/ipw2200-fw.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=ipw2200-fw +VERSION=${VERSION:-3.0} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +chmod 644 * + +# install: +mkdir -p $PKG/lib/firmware +cp -a * $PKG/lib/firmware + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} +cp -a LICENSE* $PKG/usr/doc/${PKGNAM}-${VERSION} + +mkdir -p $PKG/install +cat << EOF > $PKG/install/slack-desc +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ipw2200-fw: ipw2200-fw (Intel ipw2200 wireless firmware) +ipw2200-fw: +ipw2200-fw: This firmware is used by the ipw2200 kernel module for the Intel +ipw2200-fw: PRO/Wireless 2915ABG Network Connection and Intel PRO/Wireless 2200BG +ipw2200-fw: Network Connection mini PCI adapters. +ipw2200-fw: Your use of this firmware is governed by this Intel license: +ipw2200-fw: /usr/doc/${PKGNAM}-${VERSION}/LICENSE +ipw2200-fw: +ipw2200-fw: Visit Intel's Linux wireless website at this address: +ipw2200-fw: http://intellinuxwireless.org/ +ipw2200-fw: +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/irssi/doinst.sh b/source/n/irssi/doinst.sh new file mode 100644 index 000000000..197eddcef --- /dev/null +++ b/source/n/irssi/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/irssi.conf.new diff --git a/source/n/irssi/irsi-0.8.14.manpage_fix.diff b/source/n/irssi/irsi-0.8.14.manpage_fix.diff new file mode 100644 index 000000000..2219652df --- /dev/null +++ b/source/n/irssi/irsi-0.8.14.manpage_fix.diff @@ -0,0 +1,16 @@ +Author: Gerfried Fuchs vim:ft=diff: +Description: Fix the hyphens in the synopsis + +Index: irssi-0.8.14/docs/irssi.1 +=================================================================== +--- irssi-0.8.14.orig/docs/irssi.1 ++++ irssi-0.8.14/docs/irssi.1 +@@ -3,7 +3,7 @@ + Irssi \- a modular IRC client for UNIX + .SH SYNOPSIS + .B irssi +-[-dv!?] [-c server] [-p port] [-n nickname] [-w password] [-h hostname] ++[\-dv!?] [\-c server] [\-p port] [\-n nickname] [\-w password] [\-h hostname] + .SH DESCRIPTION + .B Irssi + is a modular Internet Relay Chat client. It is highly extensible and diff --git a/source/n/irssi/irssi.SlackBuild b/source/n/irssi/irssi.SlackBuild new file mode 100755 index 000000000..828ab8748 --- /dev/null +++ b/source/n/irssi/irssi.SlackBuild @@ -0,0 +1,134 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-irssi + +VERSION=0.8.14 +DIRCD=0.8.14 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf irssi-$VERSION +tar xvf $CWD/irssi-$VERSION.tar.bz2 || exit 1 +cd irssi-$DIRCD + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 -o -perm 2777 -o -perm 2775 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fix an error in the manual page +zcat $CWD/irsi-0.8.14.manpage_fix.diff.gz | patch -p1 || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --docdir=/usr/doc/irssi-$VERSION \ + --enable-ipv6 \ + --with-textui \ + --with-proxy \ + --with-perl-lib=vendor \ + --build=$ARCH-slackware-linux + +make \ + docdir=/usr/doc/irssi-$VERSION \ + $NUMJOBS || make || exit 1 +make install \ + docdir=/usr/doc/irssi-$VERSION \ + DESTDIR=$PKG || exit 1 + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +mv $PKG/etc/irssi.conf $PKG/etc/irssi.conf.new + +find $PKG -name perllocal.pod | xargs rm -f +eval $(perl '-V:archlib') ; rmdir -p $PKG/$archlib + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +cp -a \ + AUTHORS COPYING INSTALL NEWS README TODO \ + $PKG/usr/doc/irssi-$VERSION +( cd $PKG/usr/doc/irssi-$VERSION ; ln -sf /usr/share/irssi/help . ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/irssi-$VERSION-$ARCH-$BUILD.txz diff --git a/source/n/irssi/slack-desc b/source/n/irssi/slack-desc new file mode 100644 index 000000000..2a0578921 --- /dev/null +++ b/source/n/irssi/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +irssi: irssi (Internet Relay Chat client) +irssi: +irssi: Irssi is an Internet Relay Chat client. Designed to be both secure +irssi: and expandable, irssi is easily customized using modules and scripts. +irssi: +irssi: For more information, visit: http://irssi.org +irssi: +irssi: irssi was written by Timo Sirainen. +irssi: +irssi: +irssi: diff --git a/source/n/iw/iw.SlackBuild b/source/n/iw/iw.SlackBuild new file mode 100755 index 000000000..66a4aa7b1 --- /dev/null +++ b/source/n/iw/iw.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008 Robert Simpson, Ventura, California, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=iw +VERSION=${VERSION:-0.9.14} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make CFLAGS="$SLKCFLAGS" +make install \ + BINDIR=/usr/sbin \ + MANDIR=/usr/man \ + DESTDIR=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iw/iw.info b/source/n/iw/iw.info new file mode 100644 index 000000000..11c147463 --- /dev/null +++ b/source/n/iw/iw.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://wireless.kernel.org/en/users/Documentation/iw" +DOWNLOAD="http://wireless.kernel.org/download/iw/iw-0.9.11.tar.bz2" diff --git a/source/n/iw/slack-desc b/source/n/iw/slack-desc new file mode 100644 index 000000000..ca62f79fb --- /dev/null +++ b/source/n/iw/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler----------------------------------------------------------| +iw: iw (tool for configuring Linux wireless devices) +iw: +iw: This package contains the `iw' tool which allows you to configure and +iw: show information about wireless networking. The tool is currently used +iw: for drivers based on the mac80211 stack, but work is under way to make +iw: it useful for other wireless drivers as well. +iw: +iw: Homepage: http://wireless.kernel.org/en/users/Documentation/iw +iw: +iw: +iw: diff --git a/source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode.SlackBuild b/source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode.SlackBuild new file mode 100755 index 000000000..87da1472c --- /dev/null +++ b/source/n/iwlwifi-3945-ucode/iwlwifi-3945-ucode.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=iwlwifi-3945-ucode +#VERSION will be determined automatically, and the package will use the last version found. +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +for file in $CWD/${PKGNAM}-*.tar.?z* ; do + VERSION=$(echo $file | rev | cut -f 3- -d . | cut -f 1 -d / | rev | cut -f 4- -d - ) + rm -rf ${PKGNAM}-${VERSION} + tar xvf $file || exit 1 + cd ${PKGNAM}-$VERSION || exit 1 + # Make sure ownerships and permissions are sane: + chown -R root:root . + chmod 644 * + # install: + mkdir -p $PKG/lib/firmware + cp -a iwlwifi-*.ucode $PKG/lib/firmware + # Add a documentation directory: + mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} + cp -a LICENSE* README* $PKG/usr/doc/${PKGNAM}-${VERSION} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iwlwifi-3945-ucode/slack-desc b/source/n/iwlwifi-3945-ucode/slack-desc new file mode 100644 index 000000000..1b1b061bd --- /dev/null +++ b/source/n/iwlwifi-3945-ucode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iwlwifi-3945-ucode: iwlwifi-3945-ucode (Intel 3945 wireless microcode) +iwlwifi-3945-ucode: +iwlwifi-3945-ucode: The microcode provided in this package is required for the Intel +iwlwifi-3945-ucode: PRO/Wireless 3945ABG/BG Network Connection Adapter driver for Linux +iwlwifi-3945-ucode: (iwlwifi-3945) to operate. +iwlwifi-3945-ucode: +iwlwifi-3945-ucode: Visit Intel's Linux wireless website at this address: +iwlwifi-3945-ucode: http://intellinuxwireless.org/ +iwlwifi-3945-ucode: +iwlwifi-3945-ucode: +iwlwifi-3945-ucode: diff --git a/source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode.SlackBuild b/source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode.SlackBuild new file mode 100755 index 000000000..1f72acf22 --- /dev/null +++ b/source/n/iwlwifi-4965-ucode/iwlwifi-4965-ucode.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=iwlwifi-4965-ucode +#VERSION will be determined automatically, and the package will use the last version found. +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +for file in $CWD/${PKGNAM}-*.tar.?z* ; do + VERSION=$(echo $file | rev | cut -f 3- -d . | cut -f 1 -d / | rev | cut -f 4- -d - ) + rm -rf ${PKGNAM}-${VERSION} + tar xvf $file || exit 1 + cd ${PKGNAM}-$VERSION || exit 1 + # Make sure ownerships and permissions are sane: + chown -R root:root . + chmod 644 * + # install: + mkdir -p $PKG/lib/firmware + cp -a iwlwifi-*.ucode $PKG/lib/firmware + # Add a documentation directory: + mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} + cp -a LICENSE* README* $PKG/usr/doc/${PKGNAM}-${VERSION} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iwlwifi-4965-ucode/slack-desc b/source/n/iwlwifi-4965-ucode/slack-desc new file mode 100644 index 000000000..6b84a7d68 --- /dev/null +++ b/source/n/iwlwifi-4965-ucode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iwlwifi-4965-ucode: iwlwifi-4965-ucode (Intel 4965 wireless microcode) +iwlwifi-4965-ucode: +iwlwifi-4965-ucode: The microcode provided in this package is required for the Intel +iwlwifi-4965-ucode: PRO/Wireless 4965ABG/BG Network Connection Adapter driver for Linux +iwlwifi-4965-ucode: (iwlwifi-4965) to operate. +iwlwifi-4965-ucode: +iwlwifi-4965-ucode: Visit Intel's Linux wireless website at this address: +iwlwifi-4965-ucode: http://intellinuxwireless.org/ +iwlwifi-4965-ucode: +iwlwifi-4965-ucode: +iwlwifi-4965-ucode: diff --git a/source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode.SlackBuild b/source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode.SlackBuild new file mode 100755 index 000000000..fcd0a5716 --- /dev/null +++ b/source/n/iwlwifi-5000-ucode/iwlwifi-5000-ucode.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2006, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=iwlwifi-5000-ucode +#VERSION will be determined automatically, and the package will use the last version found. +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +for file in $CWD/${PKGNAM}-*.tar.?z* ; do + VERSION=$(echo $file | rev | cut -f 3- -d . | cut -f 1 -d / | rev | cut -f 4- -d - ) + rm -rf ${PKGNAM}-${VERSION} + tar xvf $file || exit 1 + cd ${PKGNAM}-$VERSION || exit 1 + # Make sure ownerships and permissions are sane: + chown -R root:root . + chmod 644 * + # install: + mkdir -p $PKG/lib/firmware + cp -a iwlwifi-*.ucode $PKG/lib/firmware + # Add a documentation directory: + mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} + cp -a LICENSE* README* $PKG/usr/doc/${PKGNAM}-${VERSION} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iwlwifi-5000-ucode/slack-desc b/source/n/iwlwifi-5000-ucode/slack-desc new file mode 100644 index 000000000..2b817fcc8 --- /dev/null +++ b/source/n/iwlwifi-5000-ucode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iwlwifi-5000-ucode: iwlwifi-5000-ucode (Intel 5000 wireless microcode) +iwlwifi-5000-ucode: +iwlwifi-5000-ucode: The microcode provided in this package is required for the Intel +iwlwifi-5000-ucode: PRO/Wireless 5000ABG/BG Network Connection Adapter driver for Linux +iwlwifi-5000-ucode: (iwlagn) to operate. +iwlwifi-5000-ucode: +iwlwifi-5000-ucode: Visit Intel's Linux wireless website at this address: +iwlwifi-5000-ucode: http://intellinuxwireless.org/ +iwlwifi-5000-ucode: +iwlwifi-5000-ucode: +iwlwifi-5000-ucode: diff --git a/source/n/iwlwifi-5150-ucode/iwlwifi-5150-ucode.SlackBuild b/source/n/iwlwifi-5150-ucode/iwlwifi-5150-ucode.SlackBuild new file mode 100755 index 000000000..5c74817a3 --- /dev/null +++ b/source/n/iwlwifi-5150-ucode/iwlwifi-5150-ucode.SlackBuild @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2006, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=iwlwifi-5150-ucode +#VERSION will be determined automatically, and the package will use the last version found. +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +for file in $CWD/${PKGNAM}-*.tar.?z* ; do + VERSION=$(echo $file | rev | cut -f 3- -d . | cut -f 1 -d / | rev | cut -f 4- -d - ) + rm -rf ${PKGNAM}-${VERSION} + tar xvf $file || exit 1 + cd ${PKGNAM}-$VERSION || exit 1 + # Make sure ownerships and permissions are sane: + chown -R root:root . + chmod 644 * + # install: + mkdir -p $PKG/lib/firmware + cp -a iwlwifi-*.ucode $PKG/lib/firmware + # Add a documentation directory: + mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} + cp -a LICENSE* README* $PKG/usr/doc/${PKGNAM}-${VERSION} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/iwlwifi-5150-ucode/slack-desc b/source/n/iwlwifi-5150-ucode/slack-desc new file mode 100644 index 000000000..31c2222e7 --- /dev/null +++ b/source/n/iwlwifi-5150-ucode/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iwlwifi-5150-ucode: iwlwifi-5150-ucode (Intel 5150 wireless microcode) +iwlwifi-5150-ucode: +iwlwifi-5150-ucode: The microcode provided in this package is required for the Intel +iwlwifi-5150-ucode: PRO/Wireless 5150AGN Network Connection Adapter driver for Linux +iwlwifi-5150-ucode: (iwlagn) to operate. +iwlwifi-5150-ucode: +iwlwifi-5150-ucode: Visit Intel's Linux wireless website at this address: +iwlwifi-5150-ucode: http://intellinuxwireless.org/ +iwlwifi-5150-ucode: +iwlwifi-5150-ucode: +iwlwifi-5150-ucode: diff --git a/source/n/lftp/doinst.sh b/source/n/lftp/doinst.sh new file mode 100644 index 000000000..04edfdff4 --- /dev/null +++ b/source/n/lftp/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/lftp.conf.new diff --git a/source/n/lftp/lftp.SlackBuild b/source/n/lftp/lftp.SlackBuild new file mode 100755 index 000000000..82b42993b --- /dev/null +++ b/source/n/lftp/lftp.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.7.14 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lftp + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf lftp-$VERSION +tar xvf $CWD/lftp-$VERSION.tar.?z* || exit 1 +cd lftp-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/lftp-$VERSION \ + --with-openssl \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/etc/lftp.conf $PKG/etc/lftp.conf.new + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/lftp-$VERSION +cp -a \ + ABOUT-NLS BUGS COPYING* ChangeLog FAQ FEATURES INSTALL MIRRORS NEWS \ + README* THANKS TODO lftp.lsm \ + $PKG/usr/doc/lftp-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/lftp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/lftp/slack-desc b/source/n/lftp/slack-desc new file mode 100644 index 000000000..5d6a0c2c4 --- /dev/null +++ b/source/n/lftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lftp: lftp (command line file transfer program) +lftp: +lftp: lftp is a program that allows sophisticated ftp and http connections +lftp: to other hosts. lftp can handle many file access methods including +lftp: ftp, ftps, http, https, hftp, fish and file. Every operation in lftp +lftp: is reliable, that is any non-fatal error is ignored and the operation +lftp: is retried. lftp has shell-like command syntax. lftp has a built in +lftp: mirror feature which can download or upload a whole directory tree. +lftp: To learn about many more features of lftp, see 'man lftp'. +lftp: +lftp: diff --git a/source/n/libassuan/libassuan.SlackBuild b/source/n/libassuan/libassuan.SlackBuild new file mode 100755 index 000000000..32cf41723 --- /dev/null +++ b/source/n/libassuan/libassuan.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2006-2007 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=libassuan +VERSION=1.0.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/info/*.info +rm -rf $PKG/usr/info/dir + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/libassuan/slack-desc b/source/n/libassuan/slack-desc new file mode 100644 index 000000000..59be53b1f --- /dev/null +++ b/source/n/libassuan/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libassuan: libassuan (Interprocess Communication Library for GPG) +libassuan: +libassuan: This is the IPC library used by GnuPG 2.x, GPGME and a few other +libassuan: packages. +libassuan: +libassuan: +libassuan: +libassuan: +libassuan: +libassuan: +libassuan: diff --git a/source/n/libgcrypt/libgcrypt.SlackBuild b/source/n/libgcrypt/libgcrypt.SlackBuild new file mode 100755 index 000000000..bb4723948 --- /dev/null +++ b/source/n/libgcrypt/libgcrypt.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2006-2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=libgcrypt +VERSION=${VERSION:-1.4.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --docdir=/usr/doc/libgcrypt-$VERSION \ + --enable-shared=yes \ + --enable-static=yes \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS BUGS COPYING* ChangeLog INSTALL NEWS \ + README README.SVN THANKS TODO VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/libgcrypt/slack-desc b/source/n/libgcrypt/slack-desc new file mode 100644 index 000000000..365fab642 --- /dev/null +++ b/source/n/libgcrypt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgcrypt: libgcrypt (General purpose crypto library) +libgcrypt: +libgcrypt: Libgcrypt is a general purpose crypto library based on the code +libgcrypt: used in GnuPG. +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: +libgcrypt: diff --git a/source/n/libgpg-error/libgpg-error.SlackBuild b/source/n/libgpg-error/libgpg-error.SlackBuild new file mode 100755 index 000000000..62f1df43b --- /dev/null +++ b/source/n/libgpg-error/libgpg-error.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2006, 2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PRGNAM=libgpg-error +VERSION=1.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-shared=yes \ + --enable-static=yes \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README THANKS VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/libgpg-error/slack-desc b/source/n/libgpg-error/slack-desc new file mode 100644 index 000000000..1d0969cd8 --- /dev/null +++ b/source/n/libgpg-error/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libgpg-error: libgpg-error (GnuPG Error Definitions Library) +libgpg-error: +libgpg-error: This is a library that defines common error values for all GnuPG +libgpg-error: components. Among these are GPG, GPGSM, GPGME, GPG-Agent, +libgpg-error: libgcrypt, Libksba, DirMngr, Pinentry, SmartCard Daemon, and more. +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: +libgpg-error: diff --git a/source/n/libksba/libksba.SlackBuild b/source/n/libksba/libksba.SlackBuild new file mode 100755 index 000000000..0b42f53f8 --- /dev/null +++ b/source/n/libksba/libksba.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2006,2009 Robby Workman, Northport, AL, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=libksba +VERSION=1.0.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-shared=yes \ + --enable-static=no \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README THANKS TODO VERSION \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/libksba/slack-desc b/source/n/libksba/slack-desc new file mode 100644 index 000000000..aef06478d --- /dev/null +++ b/source/n/libksba/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libksba: libksba (X.509 & CMS library for S/MIME and TLS) +libksba: +libksba: KSBA (pronounced Kasbah) is a library to make X.509 certificates as +libksba: well as the CMS easily accessible by other applications. +libksba: Both specifications are building blocks of S/MIME and TLS. +libksba: +libksba: +libksba: +libksba: +libksba: +libksba: diff --git a/source/n/links/links.SlackBuild b/source/n/links/links.SlackBuild new file mode 100755 index 000000000..fd55faea5 --- /dev/null +++ b/source/n/links/links.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +VERSION=2.2 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-links + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf links-$VERSION +tar xvf $CWD/links-$VERSION.tar.?z* || exit 1 +cd links-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# We are configuring this without X as there are MANY browser choices for +# X already. If you need a browser for X, either use something else or +# recompile. :-) +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-javascript \ + --enable-graphics \ + --without-x \ + --without-sdl \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +cat links > $PKG/usr/bin/links +chmod 0755 $PKG/usr/bin/links + +mkdir -p $PKG/usr/man/man1 +cat links.1 | gzip -9c > $PKG/usr/man/man1/links.1.gz + +mkdir -p $PKG/usr/doc/links-$VERSION +cp -a \ + AUTHORS BUGS COPYING* INSTALL NEWS README* SITES TODO doc/links_cal mailcap.pl \ + $PKG/usr/doc/links-$VERSION +find $PKG/usr/doc/links-$VERSION -type f -exec chmod 644 {} \; +find $PKG/usr/doc/links-$VERSION -type d -exec chmod 755 {} \; +chmod 0755 $PKG/usr/doc/links-$VERSION/mailcap.pl + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/links-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/links/slack-desc b/source/n/links/slack-desc new file mode 100644 index 000000000..0d6b14bbd --- /dev/null +++ b/source/n/links/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +links: links (WWW browser for the console) +links: +links: Links is a console mode WWW browser, supporting colors, correct table +links: rendering, background downloading, frames, Javascript, and a menu +links: driven configuration interface. The default is text output, but +links: graphical output (using -g) is also supported using the Linux +links: framebuffer console or SVGAlib. +links: +links: links was written by Mikulas Patocka. +links: +links: diff --git a/source/n/lynx/lynx.SlackBuild b/source/n/lynx/lynx.SlackBuild new file mode 100755 index 000000000..109c89621 --- /dev/null +++ b/source/n/lynx/lynx.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +SRCVER=2.8.6rel.5 +PKGVER=2.8.6rel.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-lynx + +rm -rf $PKG +mkdir -p $PKG +# Add libdir to package: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/lynx + +cd $TMP +rm -rf lynx2-8-6 +tar xvf $CWD/lynx${SRCVER}.tar.bz2 || exit 1 +cd lynx2-8-6 +# Fix /usr/local paths: +zcat $CWD/lynx.path.diff.gz | sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" | patch -p1 --verbose || exit 1 +# Apply recolorizing patch: +zcat $CWD/lynx.cfg.diff.gz | patch -p1 --verbose --backup || exit 1 + +## Apply official patches: +#zcat $CWD/2.8.5rel.4.patch.gz | patch -p1 --verbose || exit +#zcat $CWD/2.8.5rel.5.patch.gz | patch -p1 --verbose || exit + +find . -name "*~" | xargs rm +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/usr/lib${LIBDIRSUFFIX}/lynx \ + --datadir=/usr/share/lynx \ + --enable-default-colors \ + --with-screen=ncursesw \ + --enable-widec \ + --enable-gzip-help \ + --with-zlib \ + --enable-read-eta \ + --enable-scrollbar \ + --with-ssl \ + --enable-color-style \ + --enable-prettysrc \ + --enable-source-cache \ + --enable-nsl-fork \ + --enable-nls \ + --enable-persistent-cookies \ + --enable-vertrace \ + --disable-full-paths \ + --enable-addrlist-page \ + --enable-charset-choice \ + --enable-cjk \ + --enable-htmlized-cfg \ + --enable-justify-elts \ + --enable-locale-charset \ + --enable-externs \ + --enable-cgi-links \ + --enable-change-exec \ + --enable-exec-links \ + --enable-exec-scripts \ + --enable-internal-links \ + --with-bzlib \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install-help DESTDIR=$PKG || exit 1 +make install-doc DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Correct $DESTDIR brokenness: +( cd $PKG/usr/share/lynx/lynx_help + rm -f COPYHEADER COPYING + ln -sf ../lynx_doc/COPYHEADER . + ln -sf ../lynx_doc/COPYING . +) +# Add documentation symlinks: +( mkdir -p $PKG/usr/doc/lynx-$PKGVER + cd $PKG/usr/doc/lynx-$PKGVER + ln -sf /usr/share/lynx/lynx_doc . + ln -sf /usr/share/lynx/lynx_help . +) + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/lynx-$PKGVER-$ARCH-$BUILD.txz + diff --git a/source/n/lynx/lynx.cfg.diff b/source/n/lynx/lynx.cfg.diff new file mode 100644 index 000000000..4a52fcc5b --- /dev/null +++ b/source/n/lynx/lynx.cfg.diff @@ -0,0 +1,22 @@ +--- ./lynx.cfg.orig Tue Feb 26 23:18:35 2002 ++++ ./lynx.cfg Tue Feb 26 23:24:09 2002 +@@ -2841,8 +2841,18 @@ + #COLOR:4:magenta:white + #COLOR:5:blue:white + #COLOR:6:red:white +-COLOR:6:brightred:black ++#COLOR:6:brightred:black + #COLOR:7:magenta:cyan ++COLOR:0:black:white ++COLOR:1:blue:white ++COLOR:2:yellow:blue ++COLOR:3:green:white ++COLOR:4:magenta:white ++COLOR:5:blue:white ++# This makes links a *lot* more visible. The default settings are like ++# "let's torture the color-blind" :^) ++COLOR:6:brightred:black ++COLOR:7:magenta:cyan + + + .h2 ASSUMED_COLOR diff --git a/source/n/lynx/lynx.path.diff b/source/n/lynx/lynx.path.diff new file mode 100644 index 000000000..1ee216edf --- /dev/null +++ b/source/n/lynx/lynx.path.diff @@ -0,0 +1,38 @@ +--- ./userdefs.h.orig Tue Feb 26 22:32:08 2002 ++++ ./userdefs.h Tue Feb 26 22:39:53 2002 +@@ -277,7 +277,7 @@ + #ifdef DOSPATH + #define LYNX_CFG_FILE "./lynx.cfg" + #else +-#define LYNX_CFG_FILE "/usr/local/lib/lynx.cfg" ++#define LYNX_CFG_FILE "/etc/lynx.cfg" + #endif /* DOSPATH */ + #endif /* LYNX_CFG_FILE */ + #endif /* HAVE_CONFIG_H */ +@@ -289,7 +289,7 @@ + * Mappings in these global and personal files override any SUFFIX + * definitions in lynx.cfg and built-in defaults from src/HTInit.c. + */ +-#define GLOBAL_EXTENSION_MAP "/usr/local/lib/mosaic/mime.types" ++#define GLOBAL_EXTENSION_MAP "/usr/lib/lynx/mime.types" + #define PERSONAL_EXTENSION_MAP ".mime.types" + + /************************** +@@ -299,7 +299,7 @@ + * Mappings in these global and personal files override any VIEWER + * definitions in lynx.cfg and built-in defaults from src/HTInit.c. + */ +-#define GLOBAL_MAILCAP "/usr/local/lib/mosaic/mailcap" ++#define GLOBAL_MAILCAP "/usr/lib/lynx/mailcap" + #define PERSONAL_MAILCAP ".mailcap" + + /************************** +@@ -434,7 +434,7 @@ + * -lss command line switch will override these definitions. + */ + #ifndef LYNX_LSS_FILE +-#define LYNX_LSS_FILE "/usr/local/lib/lynx.lss" ++#define LYNX_LSS_FILE "/usr/lib/lynx/lynx.lss" + #endif /* LYNX_LSS_FILE */ + + #endif /* VMS OR UNIX */ diff --git a/source/n/lynx/slack-desc b/source/n/lynx/slack-desc new file mode 100644 index 000000000..c9209d298 --- /dev/null +++ b/source/n/lynx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lynx: Lynx (text mode browser) +lynx: +lynx: Lynx is a distributed hypertext browser with full World Wide Web +lynx: capabilities. Lynx can be used to access information on the World +lynx: Wide Web, or to build information systems intended primarily for local +lynx: access. For example, Lynx has been used to build several Campus Wide +lynx: Information Systems (CWIS). +lynx: +lynx: Lynx's authors include Lou Montulli, Garrett Blythe, Craig Lavender, +lynx: Michael Grobe, and Charles Rezac. +lynx: diff --git a/source/n/mailx/doinst.sh b/source/n/mailx/doinst.sh new file mode 100644 index 000000000..62c288b48 --- /dev/null +++ b/source/n/mailx/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/nail.rc.new +# Make symlinks: diff --git a/source/n/mailx/mailx.SlackBuild b/source/n/mailx/mailx.SlackBuild new file mode 100755 index 000000000..256d5ebc2 --- /dev/null +++ b/source/n/mailx/mailx.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=12.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mailx +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf mailx-$VERSION +tar xvf $CWD/mailx-$VERSION.tar.bz2 || exit 1 +cd mailx-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make CFLAGS="$SLKCFLAGS" \ + PREFIX=/usr \ + MANDIR=/usr/man \ + MAILSPOOL=/var/spool/mail \ + UCBINSTALL=/usr/bin/install \ + SENDMAIL=/usr/sbin/sendmail + +make install DESTDIR=$PKG \ + CFLAGS="$SLKCFLAGS" \ + PREFIX=/usr \ + MANDIR=/usr/man \ + MAILSPOOL=/var/spool/mail \ + UCBINSTALL=/usr/bin/install \ + SENDMAIL=/usr/sbin/sendmail + +# We put symlinks in /bin since some things still expect '/bin/mail' or '/bin/Mail': +mkdir -p $PKG/bin +( cd $PKG/bin + ln -sf /usr/bin/mailx Mail + ln -sf /usr/bin/mailx mail + ln -sf /usr/bin/mailx nail +) +# Likewise, we make some compat symlinks in /usr/bin: +( cd $PKG/usr/bin + ln -sf mailx Mail + ln -sf mailx mail + ln -sf mailx nail +) +mv $PKG/etc/nail.rc $PKG/etc/nail.rc.new +strip $PKG/usr/bin/mailx + +gzip -9 $PKG/usr/man/man1/* +# Manpage links: +( cd $PKG/usr/man/man1 + ln -sf mailx.1.gz mail.1.gz + ln -sf mailx.1.gz nail.1.gz + ln -sf mailx.1.gz Mail.1.gz +) + +mkdir -p $PKG/usr/doc/mailx-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL README TODO \ + $PKG/usr/doc/mailx-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/mailx-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/mailx/slack-desc b/source/n/mailx/slack-desc new file mode 100644 index 000000000..d02c6f03f --- /dev/null +++ b/source/n/mailx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mailx: mailx (a simple mail client) +mailx: +mailx: Mailx is derived from Berkeley Mail and is intended provide the +mailx: functionality of the POSIX mailx command with additional support +mailx: for MIME, IMAP, POP3, SMTP, and S/MIME. It provides enhanced +mailx: features for interactive use, such as caching and disconnected +mailx: operation for IMAP, message threading, scoring, and filtering. +mailx: It is also usable as a mail batch language, both for sending +mailx: and receiving mail. +mailx: +mailx: The maintainer and primary developer of mailx is Gunnar Ritter. diff --git a/source/n/mcabber/mcabber.SlackBuild b/source/n/mcabber/mcabber.SlackBuild new file mode 100755 index 000000000..f23c3bef4 --- /dev/null +++ b/source/n/mcabber/mcabber.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=mcabber +VERSION=${VERSION:-0.9.9} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog NEWS README* TODO mcabberrc.example \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/mcabber/slack-desc b/source/n/mcabber/slack-desc new file mode 100644 index 000000000..e8cfe6653 --- /dev/null +++ b/source/n/mcabber/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mcabber: mcabber (Jabber console client) +mcabber: +mcabber: mcabber is a small Jabber console client for Linux, maintained by +mcabber: Mikael Berthe. Mcabber includes features such as SSL support, +mcabber: multi-user chat (MUC), history logging, commands completion, and +mcabber: external actions triggers. +mcabber: +mcabber: mcabber project home is: http://www.lilotux.net/~mikael/mcabber/ +mcabber: +mcabber: +mcabber: diff --git a/source/n/metamail/metamail.SlackBuild b/source/n/metamail/metamail.SlackBuild new file mode 100755 index 000000000..e158283b3 --- /dev/null +++ b/source/n/metamail/metamail.SlackBuild @@ -0,0 +1,142 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.7 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-4} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-metamail + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf metamail-$VERSION +xz -dc $CWD/metamail-$VERSION.tar.xz | tar xvf - || exit 1 +cd metamail-$VERSION + +xz -dc $CWD/metamail_2.7-52.diff.xz | patch -p1 || exit 1 +xz -dc $CWD/metamail.automake.diff.xz | patch -p1 || exit 1 + +chmod 755 configure + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --program-prefix="" \ + --program-suffix="" \ + $ARCH-slackware-linux + +( cd bin + cat showexternal | perl -pi -e 's|sensible-pager|more|' > se + chmod 755 se ; mv se showexternal + cat sun-message | perl -pi -e 's|sensible-pager|more|' > sm + chmod 755 sm ; mv sm sun-message +) +( cd src/metamail + cat mailto.c | perl -pi -e 's|sensible-pager|more|' > m.c + mv m.c mailto.c +) + +make $NUMJOBS || make || exit 1 + +( cd bin + cat mailto-hebrew | perl -pi -e 's|/usr/lib/X11/fonts/misc|/usr/share/metamail/fonts|' > mh + chmod 755 mh ; mv mh mailto-hebrew +) + +make install DESTDIR=$PKG || exit 1 + +( cd fonts + make + mkdir -p $PKG/usr/share/metamail/fonts + for file in *.pcf ; do + cat $file > $PKG/usr/share/metamail/fonts/$file + done + cat fonts.alias > $PKG/usr/share/metamail/fonts/fonts.alias + cat fonts.dir > $PKG/usr/share/metamail/fonts/fonts.dir +) + +( cd man + mkdir -p $PKG/usr/man/man{1,5} + for file in *.1 ; do + cat $file | gzip -9c > $PKG/usr/man/man1/$file.gz + done + #for file in *.4 ; do + # cat $file | gzip -9c > $PKG/usr/man/man4/$file.gz + #done + for file in *.5 ; do + cat $file | gzip -9c > $PKG/usr/man/man5/$file.gz + done +) + +# These are obsolete, broken, and/or undocumented. +# Complain to volkerdi@slackware.com if you miss any of them... +for file in \ + mailserver rcvAppSingle richtoatk sndAppSingle sun-audio-file sun-message \ + sun-to-mime sun2mime rcvAppleSingle sndAppleSingle sun-message.csh ; do + rm -f $PKG/usr/bin/$file $PKG/usr/man/man?/$file.* +done + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/metamail-$VERSION +cp -a \ + COPYING CREDITS INSTALL README \ + $PKG/usr/doc/metamail-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/metamail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/metamail/metamail.automake.diff b/source/n/metamail/metamail.automake.diff new file mode 100644 index 000000000..0767481da --- /dev/null +++ b/source/n/metamail/metamail.automake.diff @@ -0,0 +1,3192 @@ +diff -u -r --new-file metamail-2.7.orig/config/config.guess metamail-2.7/config/config.guess +--- metamail-2.7.orig/config/config.guess 1969-12-31 18:00:00.000000000 -0600 ++++ metamail-2.7/config/config.guess 2008-10-07 12:09:27.000000000 -0500 +@@ -0,0 +1,1526 @@ ++#! /bin/sh ++# Attempt to guess a canonical system name. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ++# Free Software Foundation, Inc. ++ ++timestamp='2008-01-08' ++ ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++ ++# Originally written by Per Bothner . ++# Please send patches to . Submit a context ++# diff and a properly formatted ChangeLog entry. ++# ++# This script attempts to guess a canonical system name similar to ++# config.sub. If it succeeds, it prints the system name on stdout, and ++# exits with 0. Otherwise, it exits with 1. ++# ++# The plan is that this can be called by configure scripts if you ++# don't specify an explicit build system type. ++ ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] ++ ++Output the configuration name of the system \`$me' is run on. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to ." ++ ++version="\ ++GNU config.guess ($timestamp) ++ ++Originally written by Per Bothner. ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" >&2 ++ exit 1 ;; ++ * ) ++ break ;; ++ esac ++done ++ ++if test $# != 0; then ++ echo "$me: too many arguments$help" >&2 ++ exit 1 ++fi ++ ++trap 'exit 1' 1 2 15 ++ ++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a ++# compiler to aid in system detection is discouraged as it requires ++# temporary files to be created and, as you can see below, it is a ++# headache to deal with in a portable fashion. ++ ++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still ++# use `HOST_CC' if defined, but it is deprecated. ++ ++# Portable tmp directory creation inspired by the Autoconf team. ++ ++set_cc_for_build=' ++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ++: ${TMPDIR=/tmp} ; ++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || ++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ++dummy=$tmp/dummy ; ++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; ++case $CC_FOR_BUILD,$HOST_CC,$CC in ++ ,,) echo "int x;" > $dummy.c ; ++ for c in cc gcc c89 c99 ; do ++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then ++ CC_FOR_BUILD="$c"; break ; ++ fi ; ++ done ; ++ if test x"$CC_FOR_BUILD" = x ; then ++ CC_FOR_BUILD=no_compiler_found ; ++ fi ++ ;; ++ ,,*) CC_FOR_BUILD=$CC ;; ++ ,*,*) CC_FOR_BUILD=$HOST_CC ;; ++esac ; set_cc_for_build= ;' ++ ++# This is needed to find uname on a Pyramid OSx when run in the BSD universe. ++# (ghazi@noc.rutgers.edu 1994-08-24) ++if (test -f /.attbin/uname) >/dev/null 2>&1 ; then ++ PATH=$PATH:/.attbin ; export PATH ++fi ++ ++UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown ++UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown ++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown ++UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown ++ ++# Note: order is significant - the case branches are not exclusive. ++ ++case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ++ *:NetBSD:*:*) ++ # NetBSD (nbsd) targets should (where applicable) match one or ++ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently ++ # switched to ELF, *-*-netbsd* would select the old ++ # object file format. This provides both forward ++ # compatibility and a consistent mechanism for selecting the ++ # object file format. ++ # ++ # Note: NetBSD doesn't particularly care about the vendor ++ # portion of the name. We always set it to "unknown". ++ sysctl="sysctl -n hw.machine_arch" ++ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ ++ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` ++ case "${UNAME_MACHINE_ARCH}" in ++ armeb) machine=armeb-unknown ;; ++ arm*) machine=arm-unknown ;; ++ sh3el) machine=shl-unknown ;; ++ sh3eb) machine=sh-unknown ;; ++ sh5el) machine=sh5le-unknown ;; ++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;; ++ esac ++ # The Operating System including object format, if it has switched ++ # to ELF recently, or will in the future. ++ case "${UNAME_MACHINE_ARCH}" in ++ arm*|i386|m68k|ns32k|sh3*|sparc|vax) ++ eval $set_cc_for_build ++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep __ELF__ >/dev/null ++ then ++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). ++ # Return netbsd for either. FIX? ++ os=netbsd ++ else ++ os=netbsdelf ++ fi ++ ;; ++ *) ++ os=netbsd ++ ;; ++ esac ++ # The OS release ++ # Debian GNU/NetBSD machines have a different userland, and ++ # thus, need a distinct triplet. However, they do not need ++ # kernel version information, so it can be replaced with a ++ # suitable tag, in the style of linux-gnu. ++ case "${UNAME_VERSION}" in ++ Debian*) ++ release='-gnu' ++ ;; ++ *) ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ ;; ++ esac ++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: ++ # contains redundant information, the shorter form: ++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. ++ echo "${machine}-${os}${release}" ++ exit ;; ++ *:OpenBSD:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ++ exit ;; ++ *:ekkoBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ++ exit ;; ++ *:SolidBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} ++ exit ;; ++ macppc:MirBSD:*:*) ++ echo powerpc-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ *:MirBSD:*:*) ++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ++ exit ;; ++ alpha:OSF1:*:*) ++ case $UNAME_RELEASE in ++ *4.0) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ++ ;; ++ *5.*) ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ ;; ++ esac ++ # According to Compaq, /usr/sbin/psrinfo has been available on ++ # OSF/1 and Tru64 systems produced since 1995. I hope that ++ # covers most systems running today. This code pipes the CPU ++ # types through head -n 1, so we only detect the type of CPU 0. ++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ++ case "$ALPHA_CPU_TYPE" in ++ "EV4 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "EV4.5 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "LCA4 (21066/21068)") ++ UNAME_MACHINE="alpha" ;; ++ "EV5 (21164)") ++ UNAME_MACHINE="alphaev5" ;; ++ "EV5.6 (21164A)") ++ UNAME_MACHINE="alphaev56" ;; ++ "EV5.6 (21164PC)") ++ UNAME_MACHINE="alphapca56" ;; ++ "EV5.7 (21164PC)") ++ UNAME_MACHINE="alphapca57" ;; ++ "EV6 (21264)") ++ UNAME_MACHINE="alphaev6" ;; ++ "EV6.7 (21264A)") ++ UNAME_MACHINE="alphaev67" ;; ++ "EV6.8CB (21264C)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8AL (21264B)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8CX (21264D)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.9A (21264/EV69A)") ++ UNAME_MACHINE="alphaev69" ;; ++ "EV7 (21364)") ++ UNAME_MACHINE="alphaev7" ;; ++ "EV7.9 (21364A)") ++ UNAME_MACHINE="alphaev79" ;; ++ esac ++ # A Pn.n version is a patched version. ++ # A Vn.n version is a released version. ++ # A Tn.n version is a released field test version. ++ # A Xn.n version is an unreleased experimental baselevel. ++ # 1.2 uses "1.2" for uname -r. ++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ exit ;; ++ Alpha\ *:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # Should we change UNAME_MACHINE based on the output of uname instead ++ # of the specific Alpha model? ++ echo alpha-pc-interix ++ exit ;; ++ 21064:Windows_NT:50:3) ++ echo alpha-dec-winnt3.5 ++ exit ;; ++ Amiga*:UNIX_System_V:4.0:*) ++ echo m68k-unknown-sysv4 ++ exit ;; ++ *:[Aa]miga[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-amigaos ++ exit ;; ++ *:[Mm]orph[Oo][Ss]:*:*) ++ echo ${UNAME_MACHINE}-unknown-morphos ++ exit ;; ++ *:OS/390:*:*) ++ echo i370-ibm-openedition ++ exit ;; ++ *:z/VM:*:*) ++ echo s390-ibm-zvmoe ++ exit ;; ++ *:OS400:*:*) ++ echo powerpc-ibm-os400 ++ exit ;; ++ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) ++ echo arm-acorn-riscix${UNAME_RELEASE} ++ exit ;; ++ arm:riscos:*:*|arm:RISCOS:*:*) ++ echo arm-unknown-riscos ++ exit ;; ++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) ++ echo hppa1.1-hitachi-hiuxmpp ++ exit ;; ++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) ++ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. ++ if test "`(/bin/universe) 2>/dev/null`" = att ; then ++ echo pyramid-pyramid-sysv3 ++ else ++ echo pyramid-pyramid-bsd ++ fi ++ exit ;; ++ NILE*:*:*:dcosx) ++ echo pyramid-pyramid-svr4 ++ exit ;; ++ DRS?6000:unix:4.0:6*) ++ echo sparc-icl-nx6 ++ exit ;; ++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) ++ case `/usr/bin/uname -p` in ++ sparc) echo sparc-icl-nx7; exit ;; ++ esac ;; ++ sun4H:SunOS:5.*:*) ++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) ++ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) ++ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:6*:*) ++ # According to config.sub, this is the proper way to canonicalize ++ # SunOS6. Hard to guess exactly what SunOS6 will be like, but ++ # it's likely to be more like Solaris than SunOS4. ++ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ sun4*:SunOS:*:*) ++ case "`/usr/bin/arch -k`" in ++ Series*|S4*) ++ UNAME_RELEASE=`uname -v` ++ ;; ++ esac ++ # Japanese Language versions have a version number like `4.1.3-JL'. ++ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` ++ exit ;; ++ sun3*:SunOS:*:*) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ exit ;; ++ sun*:*:4.2BSD:*) ++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` ++ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 ++ case "`/bin/arch`" in ++ sun3) ++ echo m68k-sun-sunos${UNAME_RELEASE} ++ ;; ++ sun4) ++ echo sparc-sun-sunos${UNAME_RELEASE} ++ ;; ++ esac ++ exit ;; ++ aushp:SunOS:*:*) ++ echo sparc-auspex-sunos${UNAME_RELEASE} ++ exit ;; ++ # The situation for MiNT is a little confusing. The machine name ++ # can be virtually everything (everything which is not ++ # "atarist" or "atariste" at least should have a processor ++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT" ++ # to the lowercase version "mint" (or "freemint"). Finally ++ # the system name "TOS" denotes a system which is actually not ++ # MiNT. But MiNT is downward compatible to TOS, so this should ++ # be no problem. ++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) ++ echo m68k-atari-mint${UNAME_RELEASE} ++ exit ;; ++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; ++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; ++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; ++ m68k:machten:*:*) ++ echo m68k-apple-machten${UNAME_RELEASE} ++ exit ;; ++ powerpc:machten:*:*) ++ echo powerpc-apple-machten${UNAME_RELEASE} ++ exit ;; ++ RISC*:Mach:*:*) ++ echo mips-dec-mach_bsd4.3 ++ exit ;; ++ RISC*:ULTRIX:*:*) ++ echo mips-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ VAX*:ULTRIX*:*:*) ++ echo vax-dec-ultrix${UNAME_RELEASE} ++ exit ;; ++ 2020:CLIX:*:* | 2430:CLIX:*:*) ++ echo clipper-intergraph-clix${UNAME_RELEASE} ++ exit ;; ++ mips:*:*:UMIPS | mips:*:*:RISCos) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++#ifdef __cplusplus ++#include /* for printf() prototype */ ++ int main (int argc, char *argv[]) { ++#else ++ int main (argc, argv) int argc; char *argv[]; { ++#endif ++ #if defined (host_mips) && defined (MIPSEB) ++ #if defined (SYSTYPE_SYSV) ++ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_SVR4) ++ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); ++ #endif ++ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) ++ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); ++ #endif ++ #endif ++ exit (-1); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && ++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ++ SYSTEM_NAME=`$dummy $dummyarg` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo mips-mips-riscos${UNAME_RELEASE} ++ exit ;; ++ Motorola:PowerMAX_OS:*:*) ++ echo powerpc-motorola-powermax ++ exit ;; ++ Motorola:*:4.3:PL8-*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) ++ echo powerpc-harris-powermax ++ exit ;; ++ Night_Hawk:Power_UNIX:*:*) ++ echo powerpc-harris-powerunix ++ exit ;; ++ m88k:CX/UX:7*:*) ++ echo m88k-harris-cxux7 ++ exit ;; ++ m88k:*:4*:R4*) ++ echo m88k-motorola-sysv4 ++ exit ;; ++ m88k:*:3*:R3*) ++ echo m88k-motorola-sysv3 ++ exit ;; ++ AViiON:dgux:*:*) ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] ++ then ++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ ++ [ ${TARGET_BINARY_INTERFACE}x = x ] ++ then ++ echo m88k-dg-dgux${UNAME_RELEASE} ++ else ++ echo m88k-dg-dguxbcs${UNAME_RELEASE} ++ fi ++ else ++ echo i586-dg-dgux${UNAME_RELEASE} ++ fi ++ exit ;; ++ M88*:DolphinOS:*:*) # DolphinOS (SVR3) ++ echo m88k-dolphin-sysv3 ++ exit ;; ++ M88*:*:R3*:*) ++ # Delta 88k system running SVR3 ++ echo m88k-motorola-sysv3 ++ exit ;; ++ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) ++ echo m88k-tektronix-sysv3 ++ exit ;; ++ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) ++ echo m68k-tektronix-bsd ++ exit ;; ++ *:IRIX*:*:*) ++ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` ++ exit ;; ++ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. ++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' ++ i*86:AIX:*:*) ++ echo i386-ibm-aix ++ exit ;; ++ ia64:AIX:*:*) ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:2:3) ++ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include ++ ++ main() ++ { ++ if (!__power_pc()) ++ exit(1); ++ puts("powerpc-ibm-aix3.2.5"); ++ exit(0); ++ } ++EOF ++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ++ then ++ echo "$SYSTEM_NAME" ++ else ++ echo rs6000-ibm-aix3.2.5 ++ fi ++ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then ++ echo rs6000-ibm-aix3.2.4 ++ else ++ echo rs6000-ibm-aix3.2 ++ fi ++ exit ;; ++ *:AIX:*:[456]) ++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` ++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then ++ IBM_ARCH=rs6000 ++ else ++ IBM_ARCH=powerpc ++ fi ++ if [ -x /usr/bin/oslevel ] ; then ++ IBM_REV=`/usr/bin/oslevel` ++ else ++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} ++ fi ++ echo ${IBM_ARCH}-ibm-aix${IBM_REV} ++ exit ;; ++ *:AIX:*:*) ++ echo rs6000-ibm-aix ++ exit ;; ++ ibmrt:4.4BSD:*|romp-ibm:BSD:*) ++ echo romp-ibm-bsd4.4 ++ exit ;; ++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and ++ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to ++ exit ;; # report: romp-ibm BSD 4.3 ++ *:BOSX:*:*) ++ echo rs6000-bull-bosx ++ exit ;; ++ DPX/2?00:B.O.S.:*:*) ++ echo m68k-bull-sysv3 ++ exit ;; ++ 9000/[34]??:4.3bsd:1.*:*) ++ echo m68k-hp-bsd ++ exit ;; ++ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) ++ echo m68k-hp-bsd4.4 ++ exit ;; ++ 9000/[34678]??:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ case "${UNAME_MACHINE}" in ++ 9000/31? ) HP_ARCH=m68000 ;; ++ 9000/[34]?? ) HP_ARCH=m68k ;; ++ 9000/[678][0-9][0-9]) ++ if [ -x /usr/bin/getconf ]; then ++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; ++ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 ++ esac ;; ++ esac ++ fi ++ if [ "${HP_ARCH}" = "" ]; then ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ ++ #define _HPUX_SOURCE ++ #include ++ #include ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } ++EOF ++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ++ test -z "$HP_ARCH" && HP_ARCH=hppa ++ fi ;; ++ esac ++ if [ ${HP_ARCH} = "hppa2.0w" ] ++ then ++ eval $set_cc_for_build ++ ++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating ++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler ++ # generating 64-bit code. GNU and HP use different nomenclature: ++ # ++ # $ CC_FOR_BUILD=cc ./config.guess ++ # => hppa2.0w-hp-hpux11.23 ++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess ++ # => hppa64-hp-hpux11.23 ++ ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | ++ grep __LP64__ >/dev/null ++ then ++ HP_ARCH="hppa2.0w" ++ else ++ HP_ARCH="hppa64" ++ fi ++ fi ++ echo ${HP_ARCH}-hp-hpux${HPUX_REV} ++ exit ;; ++ ia64:HP-UX:*:*) ++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` ++ echo ia64-hp-hpux${HPUX_REV} ++ exit ;; ++ 3050*:HI-UX:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include ++ int ++ main () ++ { ++ long cpu = sysconf (_SC_CPU_VERSION); ++ /* The order matters, because CPU_IS_HP_MC68K erroneously returns ++ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct ++ results, however. */ ++ if (CPU_IS_PA_RISC (cpu)) ++ { ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; ++ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; ++ default: puts ("hppa-hitachi-hiuxwe2"); break; ++ } ++ } ++ else if (CPU_IS_HP_MC68K (cpu)) ++ puts ("m68k-hitachi-hiuxwe2"); ++ else puts ("unknown-hitachi-hiuxwe2"); ++ exit (0); ++ } ++EOF ++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } ++ echo unknown-hitachi-hiuxwe2 ++ exit ;; ++ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) ++ echo hppa1.1-hp-bsd ++ exit ;; ++ 9000/8??:4.3bsd:*:*) ++ echo hppa1.0-hp-bsd ++ exit ;; ++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) ++ echo hppa1.0-hp-mpeix ++ exit ;; ++ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) ++ echo hppa1.1-hp-osf ++ exit ;; ++ hp8??:OSF1:*:*) ++ echo hppa1.0-hp-osf ++ exit ;; ++ i*86:OSF1:*:*) ++ if [ -x /usr/sbin/sysversion ] ; then ++ echo ${UNAME_MACHINE}-unknown-osf1mk ++ else ++ echo ${UNAME_MACHINE}-unknown-osf1 ++ fi ++ exit ;; ++ parisc*:Lites*:*:*) ++ echo hppa1.1-hp-lites ++ exit ;; ++ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) ++ echo c1-convex-bsd ++ exit ;; ++ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) ++ if getsysinfo -f scalar_acc ++ then echo c32-convex-bsd ++ else echo c2-convex-bsd ++ fi ++ exit ;; ++ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) ++ echo c34-convex-bsd ++ exit ;; ++ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) ++ echo c38-convex-bsd ++ exit ;; ++ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) ++ echo c4-convex-bsd ++ exit ;; ++ CRAY*Y-MP:*:*:*) ++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*[A-Z]90:*:*:*) ++ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ ++ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ ++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ ++ -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*TS:*:*:*) ++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*T3E:*:*:*) ++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ CRAY*SV1:*:*:*) ++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ *:UNICOS/mp:*:*) ++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit ;; ++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) ++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ 5000:UNIX_System_V:4.*:*) ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; ++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) ++ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} ++ exit ;; ++ sparc*:BSD/OS:*:*) ++ echo sparc-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:BSD/OS:*:*) ++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ++ exit ;; ++ *:FreeBSD:*:*) ++ case ${UNAME_MACHINE} in ++ pc98) ++ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ amd64) ++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ *) ++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ esac ++ exit ;; ++ i*:CYGWIN*:*) ++ echo ${UNAME_MACHINE}-pc-cygwin ++ exit ;; ++ *:MINGW*:*) ++ echo ${UNAME_MACHINE}-pc-mingw32 ++ exit ;; ++ i*:windows32*:*) ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 ++ exit ;; ++ i*:PW*:*) ++ echo ${UNAME_MACHINE}-pc-pw32 ++ exit ;; ++ *:Interix*:[3456]*) ++ case ${UNAME_MACHINE} in ++ x86) ++ echo i586-pc-interix${UNAME_RELEASE} ++ exit ;; ++ EM64T | authenticamd) ++ echo x86_64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ IA64) ++ echo ia64-unknown-interix${UNAME_RELEASE} ++ exit ;; ++ esac ;; ++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ++ echo i${UNAME_MACHINE}-pc-mks ++ exit ;; ++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*) ++ # How do we know it's Interix rather than the generic POSIX subsystem? ++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we ++ # UNAME_MACHINE based on the output of uname instead of i386? ++ echo i586-pc-interix ++ exit ;; ++ i*:UWIN*:*) ++ echo ${UNAME_MACHINE}-pc-uwin ++ exit ;; ++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ++ echo x86_64-unknown-cygwin ++ exit ;; ++ p*:CYGWIN*:*) ++ echo powerpcle-unknown-cygwin ++ exit ;; ++ prep*:SunOS:5.*:*) ++ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; ++ *:GNU:*:*) ++ # the GNU system ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ exit ;; ++ *:GNU/*:*:*) ++ # other systems with GNU libc and userland ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ exit ;; ++ i*86:Minix:*:*) ++ echo ${UNAME_MACHINE}-pc-minix ++ exit ;; ++ arm*:Linux:*:*) ++ eval $set_cc_for_build ++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_EABI__ ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ fi ++ exit ;; ++ avr32*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ cris:Linux:*:*) ++ echo cris-axis-linux-gnu ++ exit ;; ++ crisv32:Linux:*:*) ++ echo crisv32-axis-linux-gnu ++ exit ;; ++ frv:Linux:*:*) ++ echo frv-unknown-linux-gnu ++ exit ;; ++ ia64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m32r*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ m68*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ mips:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips ++ #undef mipsel ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mipsel ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ mips64:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips64 ++ #undef mips64el ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mips64el ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips64 ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^CPU/{ ++ s: ::g ++ p ++ }'`" ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ ;; ++ or32:Linux:*:*) ++ echo or32-unknown-linux-gnu ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-gnu ++ exit ;; ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-gnu ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null ++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ exit ;; ++ parisc:Linux:*:* | hppa:Linux:*:*) ++ # Look for CPU level ++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in ++ PA7*) echo hppa1.1-unknown-linux-gnu ;; ++ PA8*) echo hppa2.0-unknown-linux-gnu ;; ++ *) echo hppa-unknown-linux-gnu ;; ++ esac ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-gnu ++ exit ;; ++ s390:Linux:*:* | s390x:Linux:*:*) ++ echo ${UNAME_MACHINE}-ibm-linux ++ exit ;; ++ sh64*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sh*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ sparc:Linux:*:* | sparc64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ vax:Linux:*:*) ++ echo ${UNAME_MACHINE}-dec-linux-gnu ++ exit ;; ++ x86_64:Linux:*:*) ++ echo x86_64-unknown-linux-gnu ++ exit ;; ++ xtensa*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-gnu ++ exit ;; ++ i*86:Linux:*:*) ++ # The BFD linker knows what the default object file format is, so ++ # first see if it will tell us. cd to the root directory to prevent ++ # problems with other programs or directories called `ld' in the path. ++ # Set LC_ALL=C to ensure ld outputs messages in English. ++ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ ++ | sed -ne '/supported targets:/!d ++ s/[ ][ ]*/ /g ++ s/.*supported targets: *// ++ s/ .*// ++ p'` ++ case "$ld_supported_targets" in ++ elf32-i386) ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ++ ;; ++ a.out-i386-linux) ++ echo "${UNAME_MACHINE}-pc-linux-gnuaout" ++ exit ;; ++ coff-i386) ++ echo "${UNAME_MACHINE}-pc-linux-gnucoff" ++ exit ;; ++ "") ++ # Either a pre-BFD a.out linker (linux-gnuoldld) or ++ # one that does not give us useful --help. ++ echo "${UNAME_MACHINE}-pc-linux-gnuoldld" ++ exit ;; ++ esac ++ # Determine whether the default compiler is a.out or elf ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #include ++ #ifdef __ELF__ ++ # ifdef __GLIBC__ ++ # if __GLIBC__ >= 2 ++ LIBC=gnu ++ # else ++ LIBC=gnulibc1 ++ # endif ++ # else ++ LIBC=gnulibc1 ++ # endif ++ #else ++ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) ++ LIBC=gnu ++ #else ++ LIBC=gnuaout ++ #endif ++ #endif ++ #ifdef __dietlibc__ ++ LIBC=dietlibc ++ #endif ++EOF ++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' ++ /^LIBC/{ ++ s: ::g ++ p ++ }'`" ++ test x"${LIBC}" != x && { ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ++ exit ++ } ++ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ++ ;; ++ i*86:DYNIX/ptx:4*:*) ++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. ++ # earlier versions are messed up and put the nodename in both ++ # sysname and nodename. ++ echo i386-sequent-sysv4 ++ exit ;; ++ i*86:UNIX_SV:4.2MP:2.*) ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, ++ # I just have to hope. -- rms. ++ # Use sysv4.2uw... so that sysv4* matches it. ++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} ++ exit ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit ;; ++ i*86:XTS-300:*:STOP) ++ echo ${UNAME_MACHINE}-unknown-stop ++ exit ;; ++ i*86:atheos:*:*) ++ echo ${UNAME_MACHINE}-unknown-atheos ++ exit ;; ++ i*86:syllable:*:*) ++ echo ${UNAME_MACHINE}-pc-syllable ++ exit ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ echo i386-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit ;; ++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) ++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` ++ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then ++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} ++ else ++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} ++ fi ++ exit ;; ++ i*86:*:5:[678]*) ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ case `/bin/uname -X | grep "^Machine"` in ++ *486*) UNAME_MACHINE=i486 ;; ++ *Pentium) UNAME_MACHINE=i586 ;; ++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;; ++ esac ++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ++ exit ;; ++ i*86:*:3.2:*) ++ if test -f /usr/options/cb.name; then ++ UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then ++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` ++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 ++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ ++ && UNAME_MACHINE=i586 ++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ ++ && UNAME_MACHINE=i686 ++ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL ++ else ++ echo ${UNAME_MACHINE}-pc-sysv32 ++ fi ++ exit ;; ++ pc:*:*:*) ++ # Left here for compatibility: ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i386. ++ echo i386-pc-msdosdjgpp ++ exit ;; ++ Intel:Mach:3*:*) ++ echo i386-pc-mach3 ++ exit ;; ++ paragon:*:*:*) ++ echo i860-intel-osf1 ++ exit ;; ++ i860:*:4.*:*) # i860-SVR4 ++ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then ++ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 ++ else # Add other i860-SVR4 vendors below as they are discovered. ++ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 ++ fi ++ exit ;; ++ mini*:CTIX:SYS*5:*) ++ # "miniframe" ++ echo m68010-convergent-sysv ++ exit ;; ++ mc68k:UNIX:SYSTEM5:3.51m) ++ echo m68k-convergent-sysv ++ exit ;; ++ M680?0:D-NIX:5.3:*) ++ echo m68k-diab-dnix ++ exit ;; ++ M68*:*:R3V[5678]*:*) ++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) ++ OS_REL='' ++ test -r /etc/.relid \ ++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } ++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; ++ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; ++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) ++ echo m68k-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ mc68030:UNIX_System_V:4.*:*) ++ echo m68k-atari-sysv4 ++ exit ;; ++ TSUNAMI:LynxOS:2.*:*) ++ echo sparc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ rs6000:LynxOS:2.*:*) ++ echo rs6000-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ echo powerpc-unknown-lynxos${UNAME_RELEASE} ++ exit ;; ++ SM[BE]S:UNIX_SV:*:*) ++ echo mips-dde-sysv${UNAME_RELEASE} ++ exit ;; ++ RM*:ReliantUNIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ RM*:SINIX-*:*:*) ++ echo mips-sni-sysv4 ++ exit ;; ++ *:SINIX-*:*:*) ++ if uname -p 2>/dev/null >/dev/null ; then ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ echo ${UNAME_MACHINE}-sni-sysv4 ++ else ++ echo ns32k-sni-sysv ++ fi ++ exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says ++ echo i586-unisys-sysv4 ++ exit ;; ++ *:UNIX_System_V:4*:FTX*) ++ # From Gerald Hewes . ++ # How about differentiating between stratus architectures? -djm ++ echo hppa1.1-stratus-sysv4 ++ exit ;; ++ *:*:*:FTX*) ++ # From seanf@swdc.stratus.com. ++ echo i860-stratus-sysv4 ++ exit ;; ++ i*86:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo ${UNAME_MACHINE}-stratus-vos ++ exit ;; ++ *:VOS:*:*) ++ # From Paul.Green@stratus.com. ++ echo hppa1.1-stratus-vos ++ exit ;; ++ mc68*:A/UX:*:*) ++ echo m68k-apple-aux${UNAME_RELEASE} ++ exit ;; ++ news*:NEWS-OS:6*:*) ++ echo mips-sony-newsos6 ++ exit ;; ++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) ++ if [ -d /usr/nec ]; then ++ echo mips-nec-sysv${UNAME_RELEASE} ++ else ++ echo mips-unknown-sysv${UNAME_RELEASE} ++ fi ++ exit ;; ++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. ++ echo powerpc-be-beos ++ exit ;; ++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. ++ echo powerpc-apple-beos ++ exit ;; ++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. ++ echo i586-pc-beos ++ exit ;; ++ SX-4:SUPER-UX:*:*) ++ echo sx4-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-5:SUPER-UX:*:*) ++ echo sx5-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-6:SUPER-UX:*:*) ++ echo sx6-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-7:SUPER-UX:*:*) ++ echo sx7-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8:SUPER-UX:*:*) ++ echo sx8-nec-superux${UNAME_RELEASE} ++ exit ;; ++ SX-8R:SUPER-UX:*:*) ++ echo sx8r-nec-superux${UNAME_RELEASE} ++ exit ;; ++ Power*:Rhapsody:*:*) ++ echo powerpc-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Rhapsody:*:*) ++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ++ exit ;; ++ *:Darwin:*:*) ++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ++ case $UNAME_PROCESSOR in ++ unknown) UNAME_PROCESSOR=powerpc ;; ++ esac ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ++ exit ;; ++ *:procnto*:*:* | *:QNX:[0123456789]*:*) ++ UNAME_PROCESSOR=`uname -p` ++ if test "$UNAME_PROCESSOR" = "x86"; then ++ UNAME_PROCESSOR=i386 ++ UNAME_MACHINE=pc ++ fi ++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ++ exit ;; ++ *:QNX:*:4*) ++ echo i386-pc-qnx ++ exit ;; ++ NSE-?:NONSTOP_KERNEL:*:*) ++ echo nse-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSR-?:NONSTOP_KERNEL:*:*) ++ echo nsr-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ *:NonStop-UX:*:*) ++ echo mips-compaq-nonstopux ++ exit ;; ++ BS2000:POSIX*:*:*) ++ echo bs2000-siemens-sysv ++ exit ;; ++ DS/*:UNIX_System_V:*:*) ++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ++ exit ;; ++ *:Plan9:*:*) ++ # "uname -m" is not consistent, so use $cputype instead. 386 ++ # is converted to i386 for consistency with other x86 ++ # operating systems. ++ if test "$cputype" = "386"; then ++ UNAME_MACHINE=i386 ++ else ++ UNAME_MACHINE="$cputype" ++ fi ++ echo ${UNAME_MACHINE}-unknown-plan9 ++ exit ;; ++ *:TOPS-10:*:*) ++ echo pdp10-unknown-tops10 ++ exit ;; ++ *:TENEX:*:*) ++ echo pdp10-unknown-tenex ++ exit ;; ++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) ++ echo pdp10-dec-tops20 ++ exit ;; ++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) ++ echo pdp10-xkl-tops20 ++ exit ;; ++ *:TOPS-20:*:*) ++ echo pdp10-unknown-tops20 ++ exit ;; ++ *:ITS:*:*) ++ echo pdp10-unknown-its ++ exit ;; ++ SEI:*:*:SEIUX) ++ echo mips-sei-seiux${UNAME_RELEASE} ++ exit ;; ++ *:DragonFly:*:*) ++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ++ exit ;; ++ *:*VMS:*:*) ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ case "${UNAME_MACHINE}" in ++ A*) echo alpha-dec-vms ; exit ;; ++ I*) echo ia64-dec-vms ; exit ;; ++ V*) echo vax-dec-vms ; exit ;; ++ esac ;; ++ *:XENIX:*:SysV) ++ echo i386-pc-xenix ++ exit ;; ++ i*86:skyos:*:*) ++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ++ exit ;; ++ i*86:rdos:*:*) ++ echo ${UNAME_MACHINE}-pc-rdos ++ exit ;; ++esac ++ ++#echo '(No uname command or uname output not recognized.)' 1>&2 ++#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 ++ ++eval $set_cc_for_build ++cat >$dummy.c < ++# include ++#endif ++main () ++{ ++#if defined (sony) ++#if defined (MIPSEB) ++ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, ++ I don't know.... */ ++ printf ("mips-sony-bsd\n"); exit (0); ++#else ++#include ++ printf ("m68k-sony-newsos%s\n", ++#ifdef NEWSOS4 ++ "4" ++#else ++ "" ++#endif ++ ); exit (0); ++#endif ++#endif ++ ++#if defined (__arm) && defined (__acorn) && defined (__unix) ++ printf ("arm-acorn-riscix\n"); exit (0); ++#endif ++ ++#if defined (hp300) && !defined (hpux) ++ printf ("m68k-hp-bsd\n"); exit (0); ++#endif ++ ++#if defined (NeXT) ++#if !defined (__ARCHITECTURE__) ++#define __ARCHITECTURE__ "m68k" ++#endif ++ int version; ++ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; ++ if (version < 4) ++ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); ++ else ++ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); ++ exit (0); ++#endif ++ ++#if defined (MULTIMAX) || defined (n16) ++#if defined (UMAXV) ++ printf ("ns32k-encore-sysv\n"); exit (0); ++#else ++#if defined (CMU) ++ printf ("ns32k-encore-mach\n"); exit (0); ++#else ++ printf ("ns32k-encore-bsd\n"); exit (0); ++#endif ++#endif ++#endif ++ ++#if defined (__386BSD__) ++ printf ("i386-pc-bsd\n"); exit (0); ++#endif ++ ++#if defined (sequent) ++#if defined (i386) ++ printf ("i386-sequent-dynix\n"); exit (0); ++#endif ++#if defined (ns32000) ++ printf ("ns32k-sequent-dynix\n"); exit (0); ++#endif ++#endif ++ ++#if defined (_SEQUENT_) ++ struct utsname un; ++ ++ uname(&un); ++ ++ if (strncmp(un.version, "V2", 2) == 0) { ++ printf ("i386-sequent-ptx2\n"); exit (0); ++ } ++ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ ++ printf ("i386-sequent-ptx1\n"); exit (0); ++ } ++ printf ("i386-sequent-ptx\n"); exit (0); ++ ++#endif ++ ++#if defined (vax) ++# if !defined (ultrix) ++# include ++# if defined (BSD) ++# if BSD == 43 ++ printf ("vax-dec-bsd4.3\n"); exit (0); ++# else ++# if BSD == 199006 ++ printf ("vax-dec-bsd4.3reno\n"); exit (0); ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# endif ++# else ++ printf ("vax-dec-bsd\n"); exit (0); ++# endif ++# else ++ printf ("vax-dec-ultrix\n"); exit (0); ++# endif ++#endif ++ ++#if defined (alliant) && defined (i860) ++ printf ("i860-alliant-bsd\n"); exit (0); ++#endif ++ ++ exit (1); ++} ++EOF ++ ++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && ++ { echo "$SYSTEM_NAME"; exit; } ++ ++# Apollos put the system type in the environment. ++ ++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } ++ ++# Convex versions that predate uname can use getsysinfo(1) ++ ++if [ -x /usr/convex/getsysinfo ] ++then ++ case `getsysinfo -f cpu_type` in ++ c1*) ++ echo c1-convex-bsd ++ exit ;; ++ c2*) ++ if getsysinfo -f scalar_acc ++ then echo c32-convex-bsd ++ else echo c2-convex-bsd ++ fi ++ exit ;; ++ c34*) ++ echo c34-convex-bsd ++ exit ;; ++ c38*) ++ echo c38-convex-bsd ++ exit ;; ++ c4*) ++ echo c4-convex-bsd ++ exit ;; ++ esac ++fi ++ ++cat >&2 < in order to provide the needed ++information to handle your system. ++ ++config.guess timestamp = $timestamp ++ ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null` ++ ++hostinfo = `(hostinfo) 2>/dev/null` ++/bin/universe = `(/bin/universe) 2>/dev/null` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` ++/bin/arch = `(/bin/arch) 2>/dev/null` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` ++ ++UNAME_MACHINE = ${UNAME_MACHINE} ++UNAME_RELEASE = ${UNAME_RELEASE} ++UNAME_SYSTEM = ${UNAME_SYSTEM} ++UNAME_VERSION = ${UNAME_VERSION} ++EOF ++ ++exit 1 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: +diff -u -r --new-file metamail-2.7.orig/config/config.sub metamail-2.7/config/config.sub +--- metamail-2.7.orig/config/config.sub 1969-12-31 18:00:00.000000000 -0600 ++++ metamail-2.7/config/config.sub 2008-10-07 12:09:27.000000000 -0500 +@@ -0,0 +1,1658 @@ ++#! /bin/sh ++# Configuration validation subroutine script. ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ++# Free Software Foundation, Inc. ++ ++timestamp='2008-01-16' ++ ++# This file is (in principle) common to ALL GNU software. ++# The presence of a machine in this file suggests that SOME GNU software ++# can handle that machine. It does not imply ALL GNU software can. ++# ++# This file is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ++# 02110-1301, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++ ++# Please send patches to . Submit a context ++# diff and a properly formatted ChangeLog entry. ++# ++# Configuration subroutine to validate and canonicalize a configuration type. ++# Supply the specified configuration type as an argument. ++# If it is invalid, we print an error message on stderr and exit with code 1. ++# Otherwise, we print the canonical config type on stdout and succeed. ++ ++# This file is supposed to be the same for all GNU packages ++# and recognize all the CPU types, system types and aliases ++# that are meaningful with *any* GNU software. ++# Each package is responsible for reporting which valid configurations ++# it does not support. The user should be able to distinguish ++# a failure to support a valid configuration from a meaningless ++# configuration. ++ ++# The goal of this file is to map all the various variations of a given ++# machine specification into a single specification in the form: ++# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM ++# or in some cases, the newer four-part form: ++# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM ++# It is wrong to echo any other type of specification. ++ ++me=`echo "$0" | sed -e 's,.*/,,'` ++ ++usage="\ ++Usage: $0 [OPTION] CPU-MFR-OPSYS ++ $0 [OPTION] ALIAS ++ ++Canonicalize a configuration name. ++ ++Operation modes: ++ -h, --help print this help, then exit ++ -t, --time-stamp print date of last modification, then exit ++ -v, --version print version number, then exit ++ ++Report bugs and patches to ." ++ ++version="\ ++GNU config.sub ($timestamp) ++ ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++ ++This is free software; see the source for copying conditions. There is NO ++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ++ ++help=" ++Try \`$me --help' for more information." ++ ++# Parse command line ++while test $# -gt 0 ; do ++ case $1 in ++ --time-stamp | --time* | -t ) ++ echo "$timestamp" ; exit ;; ++ --version | -v ) ++ echo "$version" ; exit ;; ++ --help | --h* | -h ) ++ echo "$usage"; exit ;; ++ -- ) # Stop option processing ++ shift; break ;; ++ - ) # Use stdin as input. ++ break ;; ++ -* ) ++ echo "$me: invalid option $1$help" ++ exit 1 ;; ++ ++ *local*) ++ # First pass through any local machine types. ++ echo $1 ++ exit ;; ++ ++ * ) ++ break ;; ++ esac ++done ++ ++case $# in ++ 0) echo "$me: missing argument$help" >&2 ++ exit 1;; ++ 1) ;; ++ *) echo "$me: too many arguments$help" >&2 ++ exit 1;; ++esac ++ ++# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). ++# Here we must recognize all the valid KERNEL-OS combinations. ++maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` ++case $maybe_os in ++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ ++ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ storm-chaos* | os2-emx* | rtmk-nova*) ++ os=-$maybe_os ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ++ ;; ++ *) ++ basic_machine=`echo $1 | sed 's/-[^-]*$//'` ++ if [ $basic_machine != $1 ] ++ then os=`echo $1 | sed 's/.*-/-/'` ++ else os=; fi ++ ;; ++esac ++ ++### Let's recognize common machines as not being operating systems so ++### that things like config.sub decstation-3100 work. We also ++### recognize some manufacturers as not being operating systems, so we ++### can provide default operating systems below. ++case $os in ++ -sun*os*) ++ # Prevent following clause from handling this invalid input. ++ ;; ++ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ ++ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ ++ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ ++ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ ++ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ ++ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ ++ -apple | -axis | -knuth | -cray) ++ os= ++ basic_machine=$1 ++ ;; ++ -sim | -cisco | -oki | -wec | -winbond) ++ os= ++ basic_machine=$1 ++ ;; ++ -scout) ++ ;; ++ -wrs) ++ os=-vxworks ++ basic_machine=$1 ++ ;; ++ -chorusos*) ++ os=-chorusos ++ basic_machine=$1 ++ ;; ++ -chorusrdb) ++ os=-chorusrdb ++ basic_machine=$1 ++ ;; ++ -hiux*) ++ os=-hiuxwe2 ++ ;; ++ -sco6) ++ os=-sco5v6 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco5) ++ os=-sco3.2v5 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco4) ++ os=-sco3.2v4 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco3.2.[4-9]*) ++ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco3.2v[4-9]*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco5v6*) ++ # Don't forget version if it is 3.2v4 or newer. ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -sco*) ++ os=-sco3.2v2 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -udk*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -isc) ++ os=-isc2.2 ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -clix*) ++ basic_machine=clipper-intergraph ++ ;; ++ -isc*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ++ ;; ++ -lynx*) ++ os=-lynxos ++ ;; ++ -ptx*) ++ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ++ ;; ++ -windowsnt*) ++ os=`echo $os | sed -e 's/windowsnt/winnt/'` ++ ;; ++ -psos*) ++ os=-psos ++ ;; ++ -mint | -mint[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++esac ++ ++# Decode aliases for certain CPU-COMPANY combinations. ++case $basic_machine in ++ # Recognize the basic CPU types without company name. ++ # Some are omitted here because they have special meanings below. ++ 1750a | 580 \ ++ | a29k \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ ++ | am33_2.0 \ ++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | bfin \ ++ | c4x | clipper \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | fido | fr30 | frv \ ++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | i370 | i860 | i960 | ia64 \ ++ | ip2k | iq2000 \ ++ | m32c | m32r | m32rle | m68000 | m68k | m88k \ ++ | maxq | mb | microblaze | mcore | mep \ ++ | mips | mipsbe | mipseb | mipsel | mipsle \ ++ | mips16 \ ++ | mips64 | mips64el \ ++ | mips64vr | mips64vrel \ ++ | mips64orion | mips64orionel \ ++ | mips64vr4100 | mips64vr4100el \ ++ | mips64vr4300 | mips64vr4300el \ ++ | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ ++ | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64sb1 | mipsisa64sb1el \ ++ | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipstx39 | mipstx39el \ ++ | mn10200 | mn10300 \ ++ | mt \ ++ | msp430 \ ++ | nios | nios2 \ ++ | ns16k | ns32k \ ++ | or32 \ ++ | pdp10 | pdp11 | pj | pjl \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | pyramid \ ++ | score \ ++ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ ++ | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | spu | strongarm \ ++ | tahoe | thumb | tic4x | tic80 | tron \ ++ | v850 | v850e \ ++ | we32k \ ++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | z8k) ++ basic_machine=$basic_machine-unknown ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12) ++ # Motorola 68HC11/12. ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ++ ;; ++ ms1) ++ basic_machine=mt-unknown ++ ;; ++ ++ # We use `pc' rather than `unknown' ++ # because (1) that's what they normally are, and ++ # (2) the word "unknown" tends to confuse beginning users. ++ i*86 | x86_64) ++ basic_machine=$basic_machine-pc ++ ;; ++ # Object if more than one company name word. ++ *-*-*) ++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ exit 1 ++ ;; ++ # Recognize the basic CPU types with company name. ++ 580-* \ ++ | a29k-* \ ++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ ++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ ++ | avr-* | avr32-* \ ++ | bfin-* | bs2000-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ++ | clipper-* | craynv-* | cydra-* \ ++ | d10v-* | d30v-* | dlx-* \ ++ | elxsi-* \ ++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ ++ | h8300-* | h8500-* \ ++ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | i*86-* | i860-* | i960-* | ia64-* \ ++ | ip2k-* | iq2000-* \ ++ | m32c-* | m32r-* | m32rle-* \ ++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ ++ | m88110-* | m88k-* | maxq-* | mcore-* \ ++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ ++ | mips16-* \ ++ | mips64-* | mips64el-* \ ++ | mips64vr-* | mips64vrel-* \ ++ | mips64orion-* | mips64orionel-* \ ++ | mips64vr4100-* | mips64vr4100el-* \ ++ | mips64vr4300-* | mips64vr4300el-* \ ++ | mips64vr5000-* | mips64vr5000el-* \ ++ | mips64vr5900-* | mips64vr5900el-* \ ++ | mipsisa32-* | mipsisa32el-* \ ++ | mipsisa32r2-* | mipsisa32r2el-* \ ++ | mipsisa64-* | mipsisa64el-* \ ++ | mipsisa64r2-* | mipsisa64r2el-* \ ++ | mipsisa64sb1-* | mipsisa64sb1el-* \ ++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipstx39-* | mipstx39el-* \ ++ | mmix-* \ ++ | mt-* \ ++ | msp430-* \ ++ | nios-* | nios2-* \ ++ | none-* | np1-* | ns16k-* | ns32k-* \ ++ | orion-* \ ++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | pyramid-* \ ++ | romp-* | rs6000-* \ ++ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ ++ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ ++ | sparclite-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ ++ | tahoe-* | thumb-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tron-* \ ++ | v850-* | v850e-* | vax-* \ ++ | we32k-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | xstormy16-* | xtensa*-* \ ++ | ymp-* \ ++ | z8k-*) ++ ;; ++ # Recognize the basic CPU types without company name, with glob match. ++ xtensa*) ++ basic_machine=$basic_machine-unknown ++ ;; ++ # Recognize the various machine names and aliases which stand ++ # for a CPU type and a company and sometimes even an OS. ++ 386bsd) ++ basic_machine=i386-unknown ++ os=-bsd ++ ;; ++ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) ++ basic_machine=m68000-att ++ ;; ++ 3b*) ++ basic_machine=we32k-att ++ ;; ++ a29khif) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ abacus) ++ basic_machine=abacus-unknown ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe ++ os=-scout ++ ;; ++ alliant | fx80) ++ basic_machine=fx80-alliant ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos ++ ;; ++ am29k) ++ basic_machine=a29k-none ++ os=-bsd ++ ;; ++ amd64) ++ basic_machine=x86_64-pc ++ ;; ++ amd64-*) ++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ amdahl) ++ basic_machine=580-amdahl ++ os=-sysv ++ ;; ++ amiga | amiga-*) ++ basic_machine=m68k-unknown ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown ++ os=-amigaos ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown ++ os=-sysv4 ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo ++ os=-sysv ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo ++ os=-bsd ++ ;; ++ aux) ++ basic_machine=m68k-apple ++ os=-aux ++ ;; ++ balance) ++ basic_machine=ns32k-sequent ++ os=-dynix ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown ++ os=-linux ++ ;; ++ blackfin-*) ++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ c90) ++ basic_machine=c90-cray ++ os=-unicos ++ ;; ++ convex-c1) ++ basic_machine=c1-convex ++ os=-bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex ++ os=-bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex ++ os=-bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex ++ os=-bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex ++ os=-bsd ++ ;; ++ cray | j90) ++ basic_machine=j90-cray ++ os=-unicos ++ ;; ++ craynv) ++ basic_machine=craynv-cray ++ os=-unicosmp ++ ;; ++ cr16) ++ basic_machine=cr16-unknown ++ os=-elf ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds ++ ;; ++ crisv32 | crisv32-* | etraxfs*) ++ basic_machine=crisv32-axis ++ ;; ++ cris | cris-* | etrax*) ++ basic_machine=cris-axis ++ ;; ++ crx) ++ basic_machine=crx-unknown ++ os=-elf ++ ;; ++ da30 | da30-*) ++ basic_machine=m68k-da30 ++ ;; ++ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec ++ ;; ++ decsystem10* | dec10*) ++ basic_machine=pdp10-dec ++ os=-tops10 ++ ;; ++ decsystem20* | dec20*) ++ basic_machine=pdp10-dec ++ os=-tops20 ++ ;; ++ delta | 3300 | motorola-3300 | motorola-delta \ ++ | 3300-motorola | delta-motorola) ++ basic_machine=m68k-motorola ++ ;; ++ delta88) ++ basic_machine=m88k-motorola ++ os=-sysv3 ++ ;; ++ djgpp) ++ basic_machine=i586-pc ++ os=-msdosdjgpp ++ ;; ++ dpx20 | dpx20-*) ++ basic_machine=rs6000-bull ++ os=-bosx ++ ;; ++ dpx2* | dpx2*-bull) ++ basic_machine=m68k-bull ++ os=-sysv3 ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd ++ os=-ebmon ++ ;; ++ elxsi) ++ basic_machine=elxsi-elxsi ++ os=-bsd ++ ;; ++ encore | umax | mmax) ++ basic_machine=ns32k-encore ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson ++ os=-ose ++ ;; ++ fx2800) ++ basic_machine=i860-alliant ++ ;; ++ genix) ++ basic_machine=ns32k-ns ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro ++ os=-sysv ++ ;; ++ go32) ++ basic_machine=i386-pc ++ os=-go32 ++ ;; ++ h3050r* | hiux*) ++ basic_machine=hppa1.1-hitachi ++ os=-hiuxwe2 ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi ++ os=-hms ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi ++ os=-xray ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi ++ os=-hms ++ ;; ++ harris) ++ basic_machine=m88k-harris ++ os=-sysv3 ++ ;; ++ hp300-*) ++ basic_machine=m68k-hp ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp ++ os=-bsd ++ ;; ++ hp300hpux) ++ basic_machine=m68k-hp ++ os=-hpux ++ ;; ++ hp3k9[0-9][0-9] | hp9[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k2[0-9][0-9] | hp9k31[0-9]) ++ basic_machine=m68000-hp ++ ;; ++ hp9k3[2-9][0-9]) ++ basic_machine=m68k-hp ++ ;; ++ hp9k6[0-9][0-9] | hp6[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hp9k7[0-79][0-9] | hp7[0-79][0-9]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k78[0-9] | hp78[0-9]) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) ++ # FIXME: really hppa2.0-hp ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][13679] | hp8[0-9][13679]) ++ basic_machine=hppa1.1-hp ++ ;; ++ hp9k8[0-9][0-9] | hp8[0-9][0-9]) ++ basic_machine=hppa1.0-hp ++ ;; ++ hppa-next) ++ os=-nextstep3 ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp ++ os=-osf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp ++ os=-proelf ++ ;; ++ i370-ibm* | ibm*) ++ basic_machine=i370-ibm ++ ;; ++# I'm not sure what "Sysv32" means. Should this be sysv3.2? ++ i*86v32) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv32 ++ ;; ++ i*86v4*) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv4 ++ ;; ++ i*86v) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-sysv ++ ;; ++ i*86sol2) ++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` ++ os=-solaris2 ++ ;; ++ i386mach) ++ basic_machine=i386-mach ++ os=-mach ++ ;; ++ i386-vsta | vsta) ++ basic_machine=i386-unknown ++ os=-vsta ++ ;; ++ iris | iris4d) ++ basic_machine=mips-sgi ++ case $os in ++ -irix*) ++ ;; ++ *) ++ os=-irix4 ++ ;; ++ esac ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi ++ os=-sysv ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown ++ os=-linux ++ ;; ++ m68knommu-*) ++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ m88k-omron*) ++ basic_machine=m88k-omron ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips ++ os=-sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek ++ os=-sysv ++ ;; ++ mingw32) ++ basic_machine=i386-pc ++ os=-mingw32 ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown ++ os=-mingw32ce ++ ;; ++ miniframe) ++ basic_machine=m68000-convergent ++ ;; ++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ basic_machine=m68k-atari ++ os=-mint ++ ;; ++ mips3*-*) ++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ++ ;; ++ mips3*) ++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown ++ os=-morphos ++ ;; ++ msdos) ++ basic_machine=i386-pc ++ os=-msdos ++ ;; ++ ms1-*) ++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ++ ;; ++ mvs) ++ basic_machine=i370-ibm ++ os=-mvs ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr ++ os=-sysv4 ++ ;; ++ netbsd386) ++ basic_machine=i386-unknown ++ os=-netbsd ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel ++ os=-linux ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony ++ os=-newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony ++ os=-newsos ++ ;; ++ news-3600 | risc-news) ++ basic_machine=mips-sony ++ os=-newsos ++ ;; ++ necv70) ++ basic_machine=v70-nec ++ os=-sysv ++ ;; ++ next | m*-next ) ++ basic_machine=m68k-next ++ case $os in ++ -nextstep* ) ++ ;; ++ -ns2*) ++ os=-nextstep2 ++ ;; ++ *) ++ os=-nextstep3 ++ ;; ++ esac ++ ;; ++ nh3000) ++ basic_machine=m68k-harris ++ os=-cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris ++ os=-cxux ++ ;; ++ nindy960) ++ basic_machine=i960-intel ++ os=-nindy ++ ;; ++ mon960) ++ basic_machine=i960-intel ++ os=-mon960 ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq ++ os=-nonstopux ++ ;; ++ np1) ++ basic_machine=np1-gould ++ ;; ++ nsr-tandem) ++ basic_machine=nsr-tandem ++ ;; ++ op50n-* | op60c-*) ++ basic_machine=hppa1.1-oki ++ os=-proelf ++ ;; ++ openrisc | openrisc-*) ++ basic_machine=or32-unknown ++ ;; ++ os400) ++ basic_machine=powerpc-ibm ++ os=-os400 ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson ++ os=-ose ++ ;; ++ os68k) ++ basic_machine=m68k-none ++ os=-os68k ++ ;; ++ pa-hitachi) ++ basic_machine=hppa1.1-hitachi ++ os=-hiuxwe2 ++ ;; ++ paragon) ++ basic_machine=i860-intel ++ os=-osf ++ ;; ++ parisc) ++ basic_machine=hppa-unknown ++ os=-linux ++ ;; ++ parisc-*) ++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=-linux ++ ;; ++ pbd) ++ basic_machine=sparc-tti ++ ;; ++ pbb) ++ basic_machine=m68k-tti ++ ;; ++ pc532 | pc532-*) ++ basic_machine=ns32k-pc532 ++ ;; ++ pc98) ++ basic_machine=i386-pc ++ ;; ++ pc98-*) ++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium | p5 | k5 | k6 | nexgen | viac3) ++ basic_machine=i586-pc ++ ;; ++ pentiumpro | p6 | 6x86 | athlon | athlon_*) ++ basic_machine=i686-pc ++ ;; ++ pentiumii | pentium2 | pentiumiii | pentium3) ++ basic_machine=i686-pc ++ ;; ++ pentium4) ++ basic_machine=i786-pc ++ ;; ++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) ++ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumpro-* | p6-* | 6x86-* | athlon-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) ++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pentium4-*) ++ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ pn) ++ basic_machine=pn-gould ++ ;; ++ power) basic_machine=power-ibm ++ ;; ++ ppc) basic_machine=powerpc-unknown ++ ;; ++ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppcle | powerpclittle | ppc-le | powerpc-little) ++ basic_machine=powerpcle-unknown ++ ;; ++ ppcle-* | powerpclittle-*) ++ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64) basic_machine=powerpc64-unknown ++ ;; ++ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ppc64le | powerpc64little | ppc64-le | powerpc64-little) ++ basic_machine=powerpc64le-unknown ++ ;; ++ ppc64le-* | powerpc64little-*) ++ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ ps2) ++ basic_machine=i386-ibm ++ ;; ++ pw32) ++ basic_machine=i586-unknown ++ os=-pw32 ++ ;; ++ rdos) ++ basic_machine=i386-pc ++ os=-rdos ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k ++ os=-coff ++ ;; ++ rm[46]00) ++ basic_machine=mips-siemens ++ ;; ++ rtpc | rtpc-*) ++ basic_machine=romp-ibm ++ ;; ++ s390 | s390-*) ++ basic_machine=s390-ibm ++ ;; ++ s390x | s390x-*) ++ basic_machine=s390x-ibm ++ ;; ++ sa29200) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ sb1) ++ basic_machine=mipsisa64sb1-unknown ++ ;; ++ sb1el) ++ basic_machine=mipsisa64sb1el-unknown ++ ;; ++ sde) ++ basic_machine=mipsisa32-sde ++ os=-elf ++ ;; ++ sei) ++ basic_machine=mips-sei ++ os=-seiux ++ ;; ++ sequent) ++ basic_machine=i386-sequent ++ ;; ++ sh) ++ basic_machine=sh-hitachi ++ os=-hms ++ ;; ++ sh5el) ++ basic_machine=sh5le-unknown ++ ;; ++ sh64) ++ basic_machine=sh64-unknown ++ ;; ++ sparclite-wrs | simso-wrs) ++ basic_machine=sparclite-wrs ++ os=-vxworks ++ ;; ++ sps7) ++ basic_machine=m68k-bull ++ os=-sysv2 ++ ;; ++ spur) ++ basic_machine=spur-unknown ++ ;; ++ st2000) ++ basic_machine=m68k-tandem ++ ;; ++ stratus) ++ basic_machine=i860-stratus ++ os=-sysv4 ++ ;; ++ sun2) ++ basic_machine=m68000-sun ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun ++ os=-sunos3 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun ++ os=-sunos4 ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun ++ os=-sunos3 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun ++ os=-sunos4 ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun ++ os=-sunos3 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun ++ os=-sunos4 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun ++ os=-solaris2 ++ ;; ++ sun3 | sun3-*) ++ basic_machine=m68k-sun ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun ++ ;; ++ sv1) ++ basic_machine=sv1-cray ++ os=-unicos ++ ;; ++ symmetry) ++ basic_machine=i386-sequent ++ os=-dynix ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray ++ os=-unicos ++ ;; ++ t90) ++ basic_machine=t90-cray ++ os=-unicos ++ ;; ++ tic54x | c54x*) ++ basic_machine=tic54x-unknown ++ os=-coff ++ ;; ++ tic55x | c55x*) ++ basic_machine=tic55x-unknown ++ os=-coff ++ ;; ++ tic6x | c6x*) ++ basic_machine=tic6x-unknown ++ os=-coff ++ ;; ++ tile*) ++ basic_machine=tile-unknown ++ os=-linux-gnu ++ ;; ++ tx39) ++ basic_machine=mipstx39-unknown ++ ;; ++ tx39el) ++ basic_machine=mipstx39el-unknown ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl ++ os=-tops20 ++ ;; ++ tower | tower-32) ++ basic_machine=m68k-ncr ++ ;; ++ tpf) ++ basic_machine=s390x-ibm ++ os=-tpf ++ ;; ++ udi29k) ++ basic_machine=a29k-amd ++ os=-udi ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu ++ os=-sym1 ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec ++ os=-none ++ ;; ++ vaxv) ++ basic_machine=vax-dec ++ os=-sysv ++ ;; ++ vms) ++ basic_machine=vax-dec ++ os=-vms ++ ;; ++ vpp*|vx|vx-*) ++ basic_machine=f301-fujitsu ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs ++ os=-vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs ++ os=-vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs ++ os=-vxworks ++ ;; ++ w65*) ++ basic_machine=w65-wdc ++ os=-none ++ ;; ++ w89k-*) ++ basic_machine=hppa1.1-winbond ++ os=-proelf ++ ;; ++ xbox) ++ basic_machine=i686-pc ++ os=-mingw32 ++ ;; ++ xps | xps100) ++ basic_machine=xps100-honeywell ++ ;; ++ ymp) ++ basic_machine=ymp-cray ++ os=-unicos ++ ;; ++ z8k-*-coff) ++ basic_machine=z8k-unknown ++ os=-sim ++ ;; ++ none) ++ basic_machine=none-none ++ os=-none ++ ;; ++ ++# Here we handle the default manufacturer of certain CPU types. It is in ++# some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ basic_machine=hppa1.1-winbond ++ ;; ++ op50n) ++ basic_machine=hppa1.1-oki ++ ;; ++ op60c) ++ basic_machine=hppa1.1-oki ++ ;; ++ romp) ++ basic_machine=romp-ibm ++ ;; ++ mmix) ++ basic_machine=mmix-knuth ++ ;; ++ rs6000) ++ basic_machine=rs6000-ibm ++ ;; ++ vax) ++ basic_machine=vax-dec ++ ;; ++ pdp10) ++ # there are many clones, so DEC is not a safe bet ++ basic_machine=pdp10-unknown ++ ;; ++ pdp11) ++ basic_machine=pdp11-dec ++ ;; ++ we32k) ++ basic_machine=we32k-att ++ ;; ++ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) ++ basic_machine=sh-unknown ++ ;; ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) ++ basic_machine=sparc-sun ++ ;; ++ cydra) ++ basic_machine=cydra-cydrome ++ ;; ++ orion) ++ basic_machine=orion-highlevel ++ ;; ++ orion105) ++ basic_machine=clipper-highlevel ++ ;; ++ mac | mpw | mac-mpw) ++ basic_machine=m68k-apple ++ ;; ++ pmac | pmac-mpw) ++ basic_machine=powerpc-apple ++ ;; ++ *-unknown) ++ # Make sure to match an already-canonicalized machine name. ++ ;; ++ *) ++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ exit 1 ++ ;; ++esac ++ ++# Here we canonicalize certain aliases for manufacturers. ++case $basic_machine in ++ *-digital*) ++ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ++ ;; ++ *-commodore*) ++ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ++ ;; ++ *) ++ ;; ++esac ++ ++# Decode manufacturer-specific aliases for certain operating systems. ++ ++if [ x"$os" != x"" ] ++then ++case $os in ++ # First match some system type aliases ++ # that might get confused with valid system types. ++ # -solaris* is a basic system type, with this one exception. ++ -solaris1 | -solaris1.*) ++ os=`echo $os | sed -e 's|solaris1|sunos4|'` ++ ;; ++ -solaris) ++ os=-solaris2 ++ ;; ++ -svr4*) ++ os=-sysv4 ++ ;; ++ -unixware*) ++ os=-sysv4.2uw ++ ;; ++ -gnu/linux*) ++ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ++ ;; ++ # First accept the basic system types. ++ # The portable systems comes first. ++ # Each alternative MUST END IN A *, to match a version number. ++ # -sysv* is not here because it comes later, after sysvr4. ++ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ ++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ ++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ ++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ ++ | -aos* \ ++ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ ++ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ ++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ ++ | -openbsd* | -solidbsd* \ ++ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ ++ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ ++ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ ++ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ ++ | -chorusos* | -chorusrdb* \ ++ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ ++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ ++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ ++ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ ++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ ++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) ++ # Remember, each alternative MUST END IN *, to match a version number. ++ ;; ++ -qnx*) ++ case $basic_machine in ++ x86-* | i*86-*) ++ ;; ++ *) ++ os=-nto$os ++ ;; ++ esac ++ ;; ++ -nto-qnx*) ++ ;; ++ -nto*) ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` ++ ;; ++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ ++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ ++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ ;; ++ -mac*) ++ os=`echo $os | sed -e 's|mac|macos|'` ++ ;; ++ -linux-dietlibc) ++ os=-linux-dietlibc ++ ;; ++ -linux*) ++ os=`echo $os | sed -e 's|linux|linux-gnu|'` ++ ;; ++ -sunos5*) ++ os=`echo $os | sed -e 's|sunos5|solaris2|'` ++ ;; ++ -sunos6*) ++ os=`echo $os | sed -e 's|sunos6|solaris3|'` ++ ;; ++ -opened*) ++ os=-openedition ++ ;; ++ -os400*) ++ os=-os400 ++ ;; ++ -wince*) ++ os=-wince ++ ;; ++ -osfrose*) ++ os=-osfrose ++ ;; ++ -osf*) ++ os=-osf ++ ;; ++ -utek*) ++ os=-bsd ++ ;; ++ -dynix*) ++ os=-bsd ++ ;; ++ -acis*) ++ os=-aos ++ ;; ++ -atheos*) ++ os=-atheos ++ ;; ++ -syllable*) ++ os=-syllable ++ ;; ++ -386bsd) ++ os=-bsd ++ ;; ++ -ctix* | -uts*) ++ os=-sysv ++ ;; ++ -nova*) ++ os=-rtmk-nova ++ ;; ++ -ns2 ) ++ os=-nextstep2 ++ ;; ++ -nsk*) ++ os=-nsk ++ ;; ++ # Preserve the version number of sinix5. ++ -sinix5.*) ++ os=`echo $os | sed -e 's|sinix|sysv|'` ++ ;; ++ -sinix*) ++ os=-sysv4 ++ ;; ++ -tpf*) ++ os=-tpf ++ ;; ++ -triton*) ++ os=-sysv3 ++ ;; ++ -oss*) ++ os=-sysv3 ++ ;; ++ -svr4) ++ os=-sysv4 ++ ;; ++ -svr3) ++ os=-sysv3 ++ ;; ++ -sysvr4) ++ os=-sysv4 ++ ;; ++ # This must come after -sysvr4. ++ -sysv*) ++ ;; ++ -ose*) ++ os=-ose ++ ;; ++ -es1800*) ++ os=-ose ++ ;; ++ -xenix) ++ os=-xenix ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ os=-mint ++ ;; ++ -aros*) ++ os=-aros ++ ;; ++ -kaos*) ++ os=-kaos ++ ;; ++ -zvmoe) ++ os=-zvmoe ++ ;; ++ -none) ++ ;; ++ *) ++ # Get rid of the `-' at the beginning of $os. ++ os=`echo $os | sed 's/[^-]*-//'` ++ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 ++ exit 1 ++ ;; ++esac ++else ++ ++# Here we handle the default operating systems that come with various machines. ++# The value should be what the vendor currently ships out the door with their ++# machine or put another way, the most popular os provided with the machine. ++ ++# Note that if you're going to try to match "-MANUFACTURER" here (say, ++# "-sun"), then you have to tell the case statement up towards the top ++# that MANUFACTURER isn't an operating system. Otherwise, code above ++# will signal an error saying that MANUFACTURER isn't an operating ++# system, and we'll never get to this point. ++ ++case $basic_machine in ++ score-*) ++ os=-elf ++ ;; ++ spu-*) ++ os=-elf ++ ;; ++ *-acorn) ++ os=-riscix1.2 ++ ;; ++ arm*-rebel) ++ os=-linux ++ ;; ++ arm*-semi) ++ os=-aout ++ ;; ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ # This must come before the *-dec entry. ++ pdp10-*) ++ os=-tops20 ++ ;; ++ pdp11-*) ++ os=-none ++ ;; ++ *-dec | vax-*) ++ os=-ultrix4.2 ++ ;; ++ m68*-apollo) ++ os=-domain ++ ;; ++ i386-sun) ++ os=-sunos4.0.2 ++ ;; ++ m68000-sun) ++ os=-sunos3 ++ # This also exists in the configure program, but was not the ++ # default. ++ # os=-sunos4 ++ ;; ++ m68*-cisco) ++ os=-aout ++ ;; ++ mep-*) ++ os=-elf ++ ;; ++ mips*-cisco) ++ os=-elf ++ ;; ++ mips*-*) ++ os=-elf ++ ;; ++ or32-*) ++ os=-coff ++ ;; ++ *-tti) # must be before sparc entry or we get the wrong os. ++ os=-sysv3 ++ ;; ++ sparc-* | *-sun) ++ os=-sunos4.1.1 ++ ;; ++ *-be) ++ os=-beos ++ ;; ++ *-haiku) ++ os=-haiku ++ ;; ++ *-ibm) ++ os=-aix ++ ;; ++ *-knuth) ++ os=-mmixware ++ ;; ++ *-wec) ++ os=-proelf ++ ;; ++ *-winbond) ++ os=-proelf ++ ;; ++ *-oki) ++ os=-proelf ++ ;; ++ *-hp) ++ os=-hpux ++ ;; ++ *-hitachi) ++ os=-hiux ++ ;; ++ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) ++ os=-sysv ++ ;; ++ *-cbm) ++ os=-amigaos ++ ;; ++ *-dg) ++ os=-dgux ++ ;; ++ *-dolphin) ++ os=-sysv3 ++ ;; ++ m68k-ccur) ++ os=-rtu ++ ;; ++ m88k-omron*) ++ os=-luna ++ ;; ++ *-next ) ++ os=-nextstep ++ ;; ++ *-sequent) ++ os=-ptx ++ ;; ++ *-crds) ++ os=-unos ++ ;; ++ *-ns) ++ os=-genix ++ ;; ++ i370-*) ++ os=-mvs ++ ;; ++ *-next) ++ os=-nextstep3 ++ ;; ++ *-gould) ++ os=-sysv ++ ;; ++ *-highlevel) ++ os=-bsd ++ ;; ++ *-encore) ++ os=-bsd ++ ;; ++ *-sgi) ++ os=-irix ++ ;; ++ *-siemens) ++ os=-sysv4 ++ ;; ++ *-masscomp) ++ os=-rtu ++ ;; ++ f30[01]-fujitsu | f700-fujitsu) ++ os=-uxpv ++ ;; ++ *-rom68k) ++ os=-coff ++ ;; ++ *-*bug) ++ os=-coff ++ ;; ++ *-apple) ++ os=-macos ++ ;; ++ *-atari*) ++ os=-mint ++ ;; ++ *) ++ os=-none ++ ;; ++esac ++fi ++ ++# Here we handle the case where we know the os, and the CPU type, but not the ++# manufacturer. We pick the logical manufacturer. ++vendor=unknown ++case $basic_machine in ++ *-unknown) ++ case $os in ++ -riscix*) ++ vendor=acorn ++ ;; ++ -sunos*) ++ vendor=sun ++ ;; ++ -aix*) ++ vendor=ibm ++ ;; ++ -beos*) ++ vendor=be ++ ;; ++ -hpux*) ++ vendor=hp ++ ;; ++ -mpeix*) ++ vendor=hp ++ ;; ++ -hiux*) ++ vendor=hitachi ++ ;; ++ -unos*) ++ vendor=crds ++ ;; ++ -dgux*) ++ vendor=dg ++ ;; ++ -luna*) ++ vendor=omron ++ ;; ++ -genix*) ++ vendor=ns ++ ;; ++ -mvs* | -opened*) ++ vendor=ibm ++ ;; ++ -os400*) ++ vendor=ibm ++ ;; ++ -ptx*) ++ vendor=sequent ++ ;; ++ -tpf*) ++ vendor=ibm ++ ;; ++ -vxsim* | -vxworks* | -windiss*) ++ vendor=wrs ++ ;; ++ -aux*) ++ vendor=apple ++ ;; ++ -hms*) ++ vendor=hitachi ++ ;; ++ -mpw* | -macos*) ++ vendor=apple ++ ;; ++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ vendor=atari ++ ;; ++ -vos*) ++ vendor=stratus ++ ;; ++ esac ++ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ++ ;; ++esac ++ ++echo $basic_machine$os ++exit ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "timestamp='" ++# time-stamp-format: "%:y-%02m-%02d" ++# time-stamp-end: "'" ++# End: diff --git a/source/n/metamail/metamail_2.7-52.diff b/source/n/metamail/metamail_2.7-52.diff new file mode 100644 index 000000000..1217f4289 --- /dev/null +++ b/source/n/metamail/metamail_2.7-52.diff @@ -0,0 +1,43013 @@ +--- metamail-2.7.orig/bin/showaudio ++++ metamail-2.7/bin/showaudio +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,200 +11,309 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +- +-# First, figure out which machine to play it on! +-set thishost=`hostname` +- +-# Note that there are some special lines in here that only work at Bellcore, +-# Specifically involving phone playback from the machine "greenbush". +-# Everything should work fine at other sites, though +-set AUDIOBINDIR=/u/andrew/phone-sau/bin +-set AUDIOPHONEHOST=greenbush +-set AUDIOPHONEHOSTLONG=greenbush.bellcore.com +-set AUDIOLOGMAIL=andrew@thumper.bellcore.com +-set ORG="Bellcore" +-set STDINPUT=0 +-if ("$1" == "-p") then +- set AUDIOPHONE=$2 +- shift +- shift +-endif +-if ("$1" == "-s") then +- set AUDIOSPEAKERFORCE = 1 +- shift +-endif +-if ($?AUDIOPHONE || $?AUDIOPHONEFORCE) then +- goto playphone +-endif +-if (! -d $AUDIOBINDIR) then +- set AUDIOSPEAKERFORCE=1 +-endif +- +-if ("$1" == "-") then +- set STDINPUT=1 +- shift +-endif +-if ($#argv < 1) then +- set STDINPUT=1 +-endif +- +-if (! $STDINPUT && ! $?AUDIOSPEAKERFORCE && ! $?AUDIOPHONEFORCE) then +- if ($?MM_NOTTTY) then +- if ($MM_NOTTTY == 1) then +- setenv MM_NOTTTY 0 +- xterm -e showaudio $* +- exit 0 +- endif +- endif +-choosehardware: +- echo This program can display audio on the speakers of some workstations, +- echo "or (at some sites) it can call you on the telephone. Please choose one:" +- echo "" +- echo "1 -- Use the computer's speaker" +- echo "2 -- Call me on the telephone" +- echo "" +- echo -n "Which do you prefer (1 or 2)? " +- set ans=$< +- if ($ans == 2) then +- echo "OK, we'll use the telephone..." +- set AUDIOPHONEFORCE=1 +- echo "In the future, you can avoid this question by setting the environment variable" +- echo "AUDIOPHONEFORCE to 1" +- goto playphone +- else if ($ans == 1) then +- echo "OK, Attempting to play the audio using your computer's speaker.." +- set AUDIOSPEAKERFORCE=1 +- echo "In the future, you can avoid this question by setting the environment variable" +- echo "AUDIOSPEAKERFORCE to 1" +- else +- echo "That is NOT one of your choices." +- goto choosehardware +- endif +-endif +- +-set audiohost=$thishost +-if ($?DISPLAY) then +- set audiohost=`echo $DISPLAY | sed -e 's/:.*//'` +- if ($audiohost == "unix") set audiohost=$thishost +- if ($audiohost == "") set audiohost=$thishost +-endif +-if ($?AUDIOHOST) then +- set audiohost=$AUDIOHOST +-endif +- +-if ($audiohost != $thishost) then +- echo Sending audio to $audiohost... +- if ($?MMS_AUDIO) then +- if ($STDINPUT) then +- cat | mms -host $audiohost "show audio/basic" - +- else +- cat $* | mms -host $audiohost "show audio/basic" - +- endif +- exit 0 +- endif +- +-# The next two lines are very inefficient, but not everyone has their path right for an rsh +- pushd ~ >& /dev/null +- set thisprog=`which showaudio` +- popd >& /dev/null +- if ($STDINPUT) then +- cat | rsh $audiohost $thisprog -s - +- else +- cat $* | rsh $audiohost $thisprog -s - +- endif +- exit 0 +-endif +- +-if (-f /usr/sbin/sfplay) then +- if ($#argv >= 1) then +- exec /usr/sbin/sfplay -i mu-law chan 1 rate 8000 end $* +- else +- cat > ${METAMAIL_TMPDIR}/audio.$$ +- /usr/sbin/sfplay -i mu-law chan 1 rate 8000 end ${METAMAIL_TMPDIR}/audio.$$ +- rm ${METAMAIL_TMPDIR}/audio.$$ +- exit 0 +- endif +-else if (-d /usr/sony) then +- set dev=/dev/sb0 +-else if (-e /usr/bin/audioplay) then +-# Solaris 2.0 +- /usr/bin/audioconvert -i raw,voice -f sun $* | /usr/bin/audioplay +- exit $status +-else if (-e /bin/audioplay) then +-# Solaris 2.0 +- /bin/audioconvert -i raw,voice -f sun $* | /bin/audioplay +- exit $status +-else +- set dev=/dev/audio +-endif +- +-if (-w $dev) then +-echo Playing audio on $thishost using $dev, one moment please... +-if ($#argv >= 1) then +- cat $* > $dev ++# Brought into line with metamail 2.7 beta release Csh version ++# Added sox support ++# Dave Shield February 1994 ++ ++thishost=`hostname` ++ ++AUDIOBINDIR=/u/andrew/phone-sau/bin ++AUDIOPHONEHOST=greenbush ++AUDIOPHONEHOSTLONG=greenbush.bellcore.com ++AUDIOLOGMAIL=greenbush.bellcore.com ++ORG=Bellcore ++STDINPUT=0 ++ ++if test -x /usr/bin/remsh ++then ++ # Probably a System V based system ++ # "rsh" is likely to be "restricted shell" ++ RSH=remsh + else +- cat > $dev +-endif +-exit 0 +-endif ++ RSH=rsh ++fi ++# SOX=/usr/remote/bin9/sox ++ ++if test "$1" = "-p" ++then ++ AUDIOPHONE=$2 ++ shift ++ shift ++fi ++ ++if test "$1" = "-s" ++then ++ AUDIOSPEAKERFORCE=1 ++ shift ++fi ++ ++playphone=0 ++if test ! -z "${AUDIOPHONE:-}" -o ! -z "${AUDIOPHONEFORCE:-}" ++then ++ playphone=1 ++fi ++ ++if test $playphone -eq 0 ++then ++ if test ! -d "$AUDIOBINDIR" ++ then ++ AUDIOSPEAKERFORCE=1 ++ fi ++ ++ if test "$1" = "-" ++ then ++ STDINPUT=1 ++ shift ++ fi ++ if test $# -eq 0 ++ then ++ STDINPUT=1 ++ fi ++ ++ if test $STDINPUT -eq 0 -a -z "${AUDIOSPEAKERFORCE:-}" -a -z "${AUDIOPHONEFORCE:-}" ++ then ++ if test ! -z "${MM_NOTTTY:-}" ++ then ++ if test $MM_NOTTTY -eq 1 ++ then ++ MM_NOTTTY=0; export MM_NOTTTY ++ xterm -e showaudio $* ++ exit 0 ++ fi ++ fi ++ looping=1 ++ while test $looping -eq 1 ++ do ++ echo This program can display audio on the speakers of some workstations, ++ echo "or (at some sites) it can call you on the telephone. Please choose one:" ++ echo "" ++ echo "1 -- Use the computer's speaker" ++ echo "2 -- Call me on the telephone" ++ echo "" ++ echo -n "Which do you prefer (1 or 2)? [1] " ++ read ans ++ if test "$ans" -eq 2 ++ then ++ echo "OK, we'll use the telephone..." ++ AUDIOPHONEFORCE=1 ++ echo "In the future, you can avoid this question by setting the environment variable" ++ echo "AUDIOPHONEFORCE to 1" ++ playphone=1 ++ looping=0 ++ elif test "$ans" -eq 1 ++ then ++ echo "OK, Attempting to play the audio using your computer's speaker.." ++ AUDIOSPEAKERFORCE=1 ++ echo "In the future, you can avoid this question by setting the environment variable" ++ echo "AUDIOSPEAKERFORCE to 1" ++ looping=0 ++ else ++ echo "That is NOT one of your choices." ++ fi ++ done ++ fi ++fi ++ ++if test $playphone -eq 0 ++then ++ audiohost=$thishost ++ if test ! -z "${DISPLAY:-}" ++ then ++ audiohost=`echo $DISPLAY | sed -e 's/:.*//'` ++ if test "$audiohost" = unix -o "$audiohost" = localhost ++ then ++ audiohost=$thishost ++ fi ++ if test -z "$audiohost" ++ then ++ audiohost=$thishost ++ fi ++ fi ++ if test ! -z "${AUDIOHOST:-}" ++ then ++ audiohost=$AUDIOHOST ++ fi ++ ++ if test ! "$audiohost" = "$thishost" ++ then ++ echo Sending audio to $audiohost... ++ if test ! -z "${MMS_AUDIO}" ++ then ++ if test $STDINPUT -eq 1 ++ then ++ cat | mms -host $audiohost "show audio/basic" ++ else ++ cat $* | mms -host $audiohost "show audio/basic" ++ fi ++ exit 0 ++ fi ++ thisprog=`(cd; which showaudio)` ++ if test $STDINPUT -eq 1 ++ then ++ cat | $RSH $audiohost $thisprog -s ++ else ++ cat $* | $RSH $audiohost $thisprog -s ++ fi ++ exit 0 ++ fi ++ ++ ++ if test -f /usr/sbin/sfplay ++ then ++ if test $# -ne 0 ++ then ++ exec /usr/sbin/sfplay -i mu-law chan 1 rate 8000 end $* ++ else ++ fname=$(mktemp /tmp/audio.XXXXXX) ++ cat > $fname ++ /usr/sbin/sfplay -i mu-law chan 1 rate 8000 end $fname ++ rm $fname ++ exit 0 ++ fi ++ elif test -f /usr/bin/audioplay ++ then ++ # Solaris 2.0 ++ /usr/bin/audioconvert -i raw,voice -f sun $* | /usr/bin/audioplay ++ exit $? ++ elif test -f /bin/audioplay ++ then ++ # Solaris 2.0 ++ /bin/audioconvert -i raw,voice -f sun $* | /bin/audioplay ++ exit $? ++ elif test -d /usr/sony ++ then ++ dev=/dev/sb0 ++ else ++ dev=/dev/audio ++ fi + +-playphone: +-if (-d $AUDIOBINDIR) then +- set thisprog=`which showaudio` +- if (! $?AUDIOPHONE) then +- if ($?MM_NOTTTY) then +- if ($MM_NOTTTY == 1) then +- setenv MM_NOTTTY 0 +- xterm -e $thisprog $* +- exit 0 +- endif +- endif +- echo This message contains audio, which can be sent to your telephone. +- echo Please enter the telephone number at which you would like to hear this +- echo -n "audio message as you would dial it from INSIDE ${ORG}: " +- set AUDIOPHONE=$< +- endif +- if ($thishost == $AUDIOPHONEHOST || $thishost == $AUDIOPHONEHOSTLONG) then +- echo Calling Phone number $AUDIOPHONE +- echo "You MUST SAY HELLO when you answer the phone, or you will not hear the message." +- mail -s "showaudio: `whoami` called $AUDIOPHONE" $AUDIOLOGMAIL < /dev/null +- if ($STDINPUT) then +- cat $AUDIOBINDIR/../GREET.au $* - | $AUDIOBINDIR/play -\# $AUDIOPHONE - +- else +- cat $AUDIOBINDIR/../GREET.au $* | $AUDIOBINDIR/play -\# $AUDIOPHONE - +- endif +- echo All done +- exit 0 ++ if test -w $dev ++ then ++ echo Playing audio on $thishost using $dev, one moment please... ++ if test $# -ne 0 ++ then ++ if test ! -z "${SOX:-}" ++ then ++ for ii in $* ++ do ++# ++# The "approved magic" to translate arbitary sounds ++# to AU format is as follows: ++# ++# $SOX -t auto $ii -c 1 -t aiff - | \ ++# $SOX -t aiff - -U -b -t au -c 1 -r 8000 $dev ++# ++# But the following "direct" translation also seems to work ++ $SOX -t auto $ii -c 1 -t au -c 1 -r 8000 $dev ++ done ++ else ++ cat $* > $dev ++ fi ++ else ++ if test ! -z "${SOX:-}" ++ then ++ fname=$(mktemp /tmp/audio.XXXXXX) ++ cat > $fname ++# ++# See also above ++# ++ $SOX -t auto $fname -c 1 -t au -c 1 -r 8000 $dev ++ rm $fname ++ else ++ cat > $dev ++ fi ++ fi ++ exit 0 ++ fi ++fi ++ ++if test -d "$AUDIOBINDIR" ++then ++ thisprog=`which showaudio` ++ if test -z "${AUDIOPHONE:-}" ++ then ++ if test ! -z "${MM_NOTTTY:-}" ++ then ++ if test $MM_NOTTTY -eq 1 ++ then ++ MM_NOTTTY=0; export MM_NOTTTY ++ xterm -e $thisprog $* ++ exit 0 ++ fi ++ fi ++ echo This message contains audio, which can be sent to your telephone. ++ echo Please enter the telephone number at which you would like to hear this ++ echo -n "audio message as you would dial it from inside ${ORG}: " ++ read AUDIOPHONE ++ fi ++ ++ if test "$thishost" == "$AUDIOPHONEHOST" \ ++ -o "$thishost" == "$AUDIOPHONEHOSTLONG" ++ then ++ echo Calling Phone number $AUDIOPHONE ++ echo "You MUST SAY HELLO when you answer the phone, or you will not hear the message." ++ mail -s "showaudio: `whoami` called $AUDIOPHONE" $AUDIOLOGMAIL < /dev/null ++ if test $STDINPUT -eq 1 ++ then ++ cat $AUDIOBINDIR/../GREET.au $* - | $AUDIOBINDIR/play -\# $AUDIOPHONE - ++ else ++ cat $AUDIOBINDIR/../GREET.au $* | $AUDIOBINDIR/play -\# $AUDIOPHONE - ++ fi ++ echo All done ++ exit 0 + else +- echo Trying to rsh to $AUDIOPHONEHOST to send audio via telephone +- cat $* | rsh $AUDIOPHONEHOST $thisprog -p $AUDIOPHONE - +- exit 0 +- endif +-endif ++ echo Trying to rsh to $AUDIOPHONEHOST to send audio via telephone ++ if test $STDINPUT -eq 1 ++ then ++ cat $* - | $RSH $AUDIOPHONEHOST $thisprog -p $AUDIOPHONE - ++ else ++ cat $* | $RSH $AUDIOPHONEHOST $thisprog -p $AUDIOPHONE - ++ fi ++ exit 0 ++ fi ++fi + echo "" +-echo This message contains an audio mesage, which can not currently be +-echo played on this type of workstation. If you log into an appropriate +-echo "machine (currently a SPARCstations or Sony News workstation)" +-echo and read this message there, you should be able to hear the audio +-echo message. ++echo "This message contains an audio mesage, which can not currently be" ++echo "played on this type of workstation. If you log into an appropriate" ++echo "machine (currently a SPARCstation or Sony News workstation)" ++echo "and read this message there, you should be able to hear the audio" ++echo "message." + echo "" +-if (! $?MM_NOTTTY) set MM_NOTTTY=0 +-if ($MM_NOTTTY == 1) then +- set fname=/tmp/mm.aud.$$ ++ ++if test -z "${MM_NOTTY:-}" ++then ++ MM_NOTTY=0 ++fi ++if test $MM_NOTTY -eq 1 ++then ++ fname=$(mktemp /tmp/metamail.XXXXXX) + else +- echo -n "Do you want to write the audio out to a file [y] ? " +- set ANS=$< +- if ("$ANS" =~ n* || "$ANS" =~ N* ) exit 0 +- echo -n "File name:" +- set fname=$< +-endif +-cp $1 $fname +-if ($status == 0) echo Wrote raw audio file: $fname ++ echo -n "Do you want to write the audio out to a file [y] ? " ++ read ANS ++ case "$ANS" in ++ [Nn]*) exit 0 ;; ++ esac ++ ++ echo -n "File name:" ++ read fname ++fi ++cp "$1" "$fname" ++if test $? -eq 0 ++then ++ echo Wrote raw audio file: "$fname" ++fi + exit 0 +- +--- metamail-2.7.orig/bin/showpicture ++++ metamail-2.7/bin/showpicture +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,84 +11,111 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +- +-if (! $?X_VIEWER) then +-set X_VIEWER="xloadimage -view -quiet -geometry +1+1" +-# set X_VIEWER="xv -geometry +1+1" +-endif +-if ($1 == "-viewer" && $#argv > 1) then +- set X_VIEWER = "$2" +- shift +- shift +-endif +- +-if (! $?MM_NOTTTY) then +- set MM_NOTTTY=0 +-endif +-if (! $?DISPLAY) then +- echo "" +- echo This message contains a picture, which can currently only be +- echo viewed when running X11. If you read this message while running +- echo X11, and have your DISPLAY variable set, you will then +- echo be able to see the picture properly. +- echo "" +- if ($MM_NOTTTY) then +- set fname=${METAMAIL_TMPDIR}/sp.$$ +- echo "The picture is being automatically stored in the file $fname" +- echo "If you do not want this file, please delete it." +- else +- echo -n "Do you want to write the picture out to a file [y] ? " +- set ANS=$< +- if ("$ANS" =~ n* || "$ANS" =~ N* ) exit 0 +- while ( 1 == 1) +- echo -n "File name:" +- set fname=$< +- if (! -f $fname) then +- break +- else +- echo "$fname already exists. Try again" +- endif +- end +- endif +- cp $1 $fname +- if ($status == 0) echo Wrote file $fname +- exit 0 +-endif +- +-if ($#argv == 0) then +- set SQUIRREL=${METAMAIL_TMPDIR}/sp.$$ +- cat > $SQUIRREL +-else +- set SQUIRREL="$*" +-endif ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 + +-echo NOTE: TO MAKE THE PICTURE WINDOW GO AWAY, JUST TYPE 'q' IN IT. +-if ($#argv == 0) then +- echo "==> TO SAVE THIS IMAGE, COPY THE FILE $SQUIRREL BEFORE EXITING" +- echo "" +- $X_VIEWER $SQUIRREL +- rm $SQUIRREL ++if test -z "${X_VIEWER:-}" ++then ++ X_VIEWER="xloadimage -view -quiet" ++# X_VIEWER="xv" ++fi ++ ++if test "$1" = "-viewer" -a ! -z "$2" ++then ++ X_VIEWER=$2 ++ shift ++ shift ++fi ++ ++if test -z "${MM_NOTTY:-}" ++then ++ MM_NOTTY=0 ++fi ++if test -z "${DISPLAY:-}" ++then ++ echo "" ++ echo This message contains a picture, which can currently only be ++ echo viewed when running X11. If you read this message while running ++ echo X11, you will be able to see the picture properly. ++ if test $MM_NOTTY -eq 1 ++ then ++ fname=$(mktemp /tmp/metamail.XXXXXX) ++ echo "The picture is being automatically stored in the file $fname" ++ echo "If you do not want this file, please delete it." ++ else ++ echo -n "Do you want to write the picture out to a file [y] ? " ++ read ANS ++ case "$ANS" in ++ [Nn]*) exit 0;; ++ *) looping=1 ++ while test $looping -eq 1 ++ do ++ echo -n "File name: " ++ read fname ++ if test -f "$fname" ++ then ++ echo "$fname already exists. Try again" ++ else ++ looping=0 ++ fi ++ done ;; ++ esac ++ fi ++ cp "$1" "$fname" ++ if test $? -eq 0 ++ then ++ echo Wrote file "$fname" ++ fi ++ exit 0 ++fi ++ ++if test -z "$1" ++then ++ SQUIRREL=$(mktemp /tmp/metamail.XXXXXX) ++ cat > $SQUIRREL + else ++ SQUIRREL="$*" ++fi + +-foreach i ($*) +- echo "==> TO SAVE THIS IMAGE, COPY THE FILE $i BEFORE EXITING" +- echo "" +- set dir=$i:h +- if ($dir != $i) then +- # Make the ln sure to work +- cd $dir +- endif +- ln $i $$.PRESS-q-TO-EXIT +- if (! $status) then +- sh -c "$X_VIEWER $$.PRESS-q-TO-EXIT" +- rm $$.PRESS-q-TO-EXIT +- else +- sh -c "$X_VIEWER $i" +- endif +-end +-endif ++ ++echo NOTE: TO MAKE THE PICTURE WINDOW GO AWAY, JUST TYPE 'q' IN IT. ++if test -z "$1" ++then ++ echo "==> TO SAVE THIS IMAGE, COPY THE FILE $SQUIRREL BEFORE EXITING" ++ echo ++ $X_VIEWER $SQUIRREL ++ rm $SQUIRREL ++else ++ for i in $SQUIRREL ++ do ++ echo "==> TO SAVE THIS IMAGE, COPY THE FILE $i BEFORE EXITING" ++ echo ++ dir=$(dirname $i) ++ base=$(basename $i) ++ if test ! "$base" = "$i" ++ then ++ cd $dir ++ fi ++ if ln $i $$.PRESS-q-TO-EXIT > /dev/null 2>&1 ++ then ++ $X_VIEWER $$.PRESS-q-TO-EXIT ++ rm $$.PRESS-q-TO-EXIT ++ else ++ $X_VIEWER $i ++ fi ++ done ++fi +--- metamail-2.7.orig/bin/metasend ++++ metamail-2.7/bin/metasend +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,487 +11,591 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +- +-set hname = `hostname` +-set idctr=0 +-set MustDelete=0 +-set batchmode=0 +-set multipart = 1 +-if ($?SPLITSIZE) then +- set splitsize=$SPLITSIZE ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 ++ ++hname=`hostname` ++idctr=0 ++MustDelete=0 ++batchmode=0 ++multipart=1 ++if test ! -z "${SPLITSIZE:-}" ++then ++ splitsize=$SPLITSIZE + else +- set splitsize = 100000 +-endif +-set outputfile = "" +-set multipartsubtype = "mixed" +-set cdescrip = "An object packed by metasend" +-set isentity=0 +-set newid=`date | tr " :" "__"` +-set cid="<${newid}_$idctr@${hname}>" +-@ idctr++ +- +-while ($#argv > 0) +- switch ("$1") +- case "-S": +- shift +- if ($#argv == 0) then +- echo "-S requires a following argument, the SPLIT threshhold" +- exit -1 +- endif +- set splitsize=$1 +- shift +- breaksw +- case "-b": +- # Batch mode -- ALL args must be on command line +- set batchmode = 1 +- shift +- breaksw +- case "-c": +- shift +- if ($#argv == 0) then +- echo "-c requires a following argument, the CC address" +- exit -1 +- endif +- set cc="$1" +- shift +- breaksw +- case "-i": +- shift +- if ($#argv == 0) then +- echo "-i requires a following argument, the Content-ID value" +- exit -1 +- endif +- set cid=$1 +- shift +- breaksw +- case "-I": +- shift +- if ($#argv == 0) then +- echo "-I requires a following argument, the multipart Content-ID value" +- exit -1 +- endif +- set multicid=$1 +- shift +- breaksw +- case "-s": +- shift +- if ($#argv == 0) then +- echo "-s requires a following argument, the SUBJECT" +- exit -1 +- endif +- set subject="$1" +- shift +- breaksw +- case "-t": +- shift +- if ($#argv == 0) then +- echo "-t requires a following argument, the TO address" +- exit -1 +- endif +- set to="$1" +- shift +- breaksw +- case "-F": +- shift +- if ($#argv == 0) then +- echo "-F requires a following argument, the FROM address" +- exit -1 +- endif +- set from="$1" +- shift +- breaksw +- case "-P": +- shift +- if ($#argv == 0) then +- echo "-P requires a following argument, the preamble file name" +- exit -1 +- endif +- set preamblefile="$1" +- shift +- breaksw +- case "-e": +- shift +- if ($#argv == 0) then +- echo "-e requires a following argument, the ENCODING value" +- exit -1 +- endif +- set encode=$1 +- if ($encode == "base64") then +- set encodingprog = "mimencode -b" +- else if ($encode == "x-uue") then +- set encodingprog = "uuencode mail-body" +- else if ($encode == "7bit") then +- set encodingprog = cat +- else +- set encodingprog = "mimencode -q" +- set encode = "quoted-printable" +- endif +- shift +- breaksw +- case "-f": +- shift +- if ($#argv == 0) then +- echo "-f requires a following argument, the DATA FILE" +- exit -1 +- endif +- set datafile=$1 +- if (! -e $datafile) then +- echo The file $datafile does not exist. +- exit -1 +- endif +- shift +- breaksw +- case "-m": +- shift +- if ($#argv == 0) then +- echo "-m requires a following argument, the MIME CONTENT-TYPE" +- exit -1 +- endif +-# set ctyperaw = $1 +-# set ctype=`echo $ctyperaw | tr \" \'` +- set ctype = "$1" +- if (`echo $ctype | grep /` == "") then +- echo "Invalid content-type specified" +- exit -1 +- endif +- shift +- breaksw +- case "-o": +- shift +- if ($#argv == 0) then +- echo "-o requires a following argument, the output file name" +- exit -1 +- endif +- set outputfile="$1" +- shift +- breaksw +- case "-/": +- shift +- if ($#argv == 0) then +- echo "-/ requires a following argument, the multipart subtype" +- exit -1 +- endif +- set multipartsubtype="$1" +- shift +- breaksw +- case "-D": +- shift +- if ($#argv == 0) then +- echo "-D requires a following argument, the Content-Description value" +- exit -1 +- endif +- set cdescrip="$1" +- shift +- breaksw +- case "-E": +- set isentity=1 +- shift +- breaksw +- case "-z": +- set MustDelete=1 +- shift +- breaksw +- case "-n": +- if ($isentity) then +- if (! $?encode) then +- set encode=7bit +- set encodingprog=cat +- endif +- if (! $?ctype) then +- set ctype=bogus +- # Never used +- endif +- if ( ! $?datafile) then +- echo One part is incomplete -- each part needs at least -f and -E +- exit -1 +- endif +- else +- if ( ! $?ctype || ! $?datafile) then +- echo One part is incomplete -- each part needs at least -f and -m +- exit -1 +- endif +- endif +- if (! $?encode) then +- if ("$ctype" =~ text*) then +- set encodingprog = "mimencode -q" +- set encode = "quoted-printable" +- else +- set encode = base64 +- set encodingprog = "mimencode -b" +- endif +- endif +- set ctype${multipart} = "$ctype" +- set datafile${multipart} = $datafile +- set encode${multipart} = $encode +- set cdescrip${multipart} = "$cdescrip" +- set cid${multipart} = "$cid" +- set isentity${multipart} = $isentity +- set encodingprog${multipart} = "$encodingprog" +- unset ctype +- unset datafile +- unset encode +- unset encodingprog +- set newid=`date | tr " :" "__"` +- set cid="<${newid}_$idctr@${hname}>" +- @ idctr++ +- set cdescrip = "An object packed by metasend" +- set isentity=0 +- @ multipart++ +- shift +- breaksw +- default: +- echo UNRECOGNIZED METASEND OPTION: $1 +- exit -1 +- endsw +-end +-if ($batchmode == 0) then +- if (! $?to) then +- echo -n "To: " +- set to = $< +- endif +- if (! $?subject) then +- echo -n "Subject: " +- set subject = $< +- endif +- if (! $?cc) then +- echo -n "CC: " +- set cc = $< +- endif +-anotherpart: +- if (! $?ctype) then +- echo -n "Content-type: " +-# set ctyperaw = $< +-# set ctype=`echo $ctyperaw | tr \" \'` +- set ctype = "$<" +- endif +- if (`echo $ctype | grep /` == "") then +- echo "Invalid content-type specified" +- unset ctype +- goto anotherpart +- endif +-# if ($ctype != $ctyperaw) echo Double quotes not allowed, using $ctype +- if (! $?datafile) then +- getfile: +- echo -n "Name of file containing $ctype data: " +- set datafile = $< +- if (! -e $datafile) then +- echo The file $datafile does not exist. +- goto getfile +- endif +- endif +- if (! $?encode) then +- retry: +- echo "Do you want to encode this data for sending through the mail?" +- echo " 1 -- No, it is already in 7 bit ASCII" +- echo " 2 -- Yes, encode in base64 (most efficient)" +- echo " 3 -- Yes, encode in quoted-printable (less efficient, more readable)" +- echo " 4 -- Yes, encode it using uuencode (not standard, being phased out)" +- set encode=$< +- switch ("$encode") +- case 1: +- set encodingprog = cat +- set encode = 7bit +- breaksw +- case 2: +- set encodingprog = "mimencode -b" +- set encode = base64 +- breaksw +- case 3: +- set encodingprog = "mimencode -q" +- set encode = quoted-printable +- breaksw +- case 4: +- set encodingprog = "uuencode $datafile" +- set encode = x-uue +- breaksw +- default: +- echo Unrecognized answer, please try again. +- goto retry +- endsw +- endif +- echo -n "Do you want to include another file too (y/n) [n] ? " +- set ans=$< +- if ("$ans" =~ y*) then +- set ctype${multipart} = "$ctype" +- set datafile${multipart} = $datafile +- set encode${multipart} = $encode +- set encodingprog${multipart} = "$encodingprog" +- set cdescrip${multipart} = "$cdescrip" +- set cid${multipart} = "$cid" +- set isentity${multipart} = $isentity +- set cdescrip = "An object packed by metasend" +- set isentity=0 +- unset ctype +- unset datafile +- unset encode +- unset encodingprog +- set newid=`date | tr " :" "__"` +- set cid="<${newid}_$idctr@${hname}>" +- @ idctr++ +- @ multipart++ +- goto anotherpart +- endif ++ splitsize=100000 ++fi ++ ++ouputfile= ++multipartsubtype=mixed ++cdescrip= # -Immi ++attachfilename= # -Immi ++isentity=0 ++newid=`date | tr " :" "__"` ++cid="<${newid}_$idctr@${hname}>" ++idctr=`expr $idctr + 1` ++ ++while test ! -z "$*" ++do ++ case $1 in ++ -S) shift ++ if test -z "$*" ++ then ++ echo "-S requires a following argument, the SPLIT threshhold" ++ exit 1 ++ fi ++ splitsize=$1 ++ shift ;; ++ ++ -b) batchmode=1 ++ shift ;; ++ ++ -c) shift ++ if test -z "$*" ++ then ++ echo "-c requires a following argument, the CC address" ++ exit 1 ++ fi ++ cc=$1 ++ shift ;; ++ ++ -i) shift ++ if test -z "$*" ++ then ++ echo "-i requires a following argument, the Content-ID value" ++ exit 1 ++ fi ++ cid=$1 ++ shift ;; ++ ++ -I) shift ++ if test -z "$*" ++ then ++ echo "-I requires a following argument, the multipart Content-ID value" ++ exit 1 ++ fi ++ multicid=$1 ++ shift ;; ++ ++ -s) shift ++ if test -z "$*" ++ then ++ echo "-s requires a following argument, the SUBJECT" ++ exit 1 ++ fi ++ subject=$1 ++ shift ;; ++ ++ -t) shift ++ if test -z "$*" ++ then ++ echo "-t requires a following argument, the TO address" ++ exit 1 ++ fi ++ to=$1 ++ shift ;; ++ ++ -F) shift ++ if test -z "$*" ++ then ++ echo "-F requires a following argument, the FROM address" ++ exit 1 ++ fi ++ from=$1 ++ shift ;; ++ ++ -P) shift ++ if test -z "$*" ++ then ++ echo "-P requires a following argument, the preamble file name" ++ exit 1 ++ fi ++ preamblefile=$1 ++ shift ;; ++ ++ -e) shift ++ if test -z "$*" ++ then ++ echo "-e requires a following argument, the ENCODING value" ++ exit 1 ++ fi ++ encode=$1 ++ case "$encode" in ++ "base64") encodingprog="mimencode -b";; ++ "x-uue") encodingprog="uuencode \$datafile";; ++ "7bit") encodingprog=cat;; ++ "8bit") encodingprog=cat;; ++ *) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ esac ++ shift ;; ++ ++ -f) shift ++ if test -z "$*" ++ then ++ echo "-f requires a following argument, the DATA FILE" ++ exit 1 ++ fi ++ datafile=$1 ++ if test ! -r "$datafile" ++ then ++ echo The file "$datafile" does not exist ++ exit 1 ++ fi ++ shift ;; ++ ++ -m) shift ++ if test -z "$*" ++ then ++ echo "-m requires a following argument, the MIME CONTENT-TYPE" ++ exit 1 ++ fi ++ ctype=$1 ++ if test "`echo $ctype | grep /`" = "" ++ then ++ echo Invalid content-type specified ++ exit 1 ++ fi ++ shift ;; ++ ++ -o) shift ++ if test -z "$*" ++ then ++ echo "-o requires a following argument, the output file name" ++ exit 1 ++ fi ++ outputfile=$1 ++ shift ;; ++ ++ -/) shift ++ if test -z "$*" ++ then ++ echo "-/ requires a following argument, the multipart subtype" ++ exit 1 ++ fi ++ multipartsubtype=$1 ++ shift ;; ++ ++ -D) shift ++ if test -z "$*" ++ then ++ echo "-D requires a following argument, the Content-Description value" ++ exit 1 ++ fi ++ cdescrip=$1 ++ shift ;; ++ ++# begin immi ++ -A) shift ++ if test -z "$*" ++ then ++ echo "-A requires a following argument, the attachment file name" ++ exit 1 ++ fi ++ attachfilename=$1 ++ shift ;; ++#end immi ++ ++ -E) isentity=1 ++ shift ;; ++ ++ -z) MustDelete=1 ++ shift ;; ++ ++ -n) if test $isentity -ne 0 ++ then ++ if test -z "${encode:-}" ++ then ++ encode=7bit ++ encodingprog=cat ++ fi ++ if test -z "${ctype:-}" ++ then ++ ctype=bogus ++ # Never used ++ fi ++ if test -z "${datafile:-}" ++ then ++ echo One part is incomplete -- each part needs at least -f and -E ++ exit 1 ++ fi ++ else ++ if test -z "${ctype:-}" || test -z "${datafile:-}" ++ then ++ echo One part is incomplete -- each part needs at least -f and -m ++ exit 1 ++ fi ++ fi ++ if test -z "${encode:-}" ++ then ++ case "$ctype" in ++ text*) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ *) encodingprog="mimencode -b" ++ encode=base64 ;; ++ esac ++ fi ++ eval ctype${multipart}=\"$ctype\" ++ eval datafile${multipart}=$datafile ++ eval encode${multipart}=$encode ++ eval cdescrip${multipart}=\"$cdescrip\" ++ eval attachfilename${multipart}=\"$attachfilename\" # -Immi ++ eval cid${multipart}=\"$cid\" ++ eval isentity${multipart}=$isentity ++ eval encodingprog${multipart}=\"\$encodingprog\" ++ ++ ctype= ++ datafile= ++ encode= ++ encodingprog= ++ newid=`date | tr " :" "__"` ++ cid="<${newid}_$idctr@${hname}>" ++ idctr=`expr $idctr + 1` ++ cdescrip= # -Immi ++ attachfilename= # -Immi ++ isentity=0 ++ multipart=`expr $multipart + 1` ++ shift ;; ++ ++ *) echo UNRECOGNIZED METASEND OPTION: "$1" ++ exit 1 ;; ++ esac ++done ++ ++if test $batchmode -eq 0 ++then ++ if test -z "${to:-}" ++ then ++ echo -n "To: " ++ read to ++ fi ++ if test -z "${subject:-}" ++ then ++ echo -n "Subject: " ++ read subject ++ fi ++ if test -z "${cc:-}" ++ then ++ echo -n "CC: " ++ read cc ++ fi ++ ++ anotherpart=1 ++ while test $anotherpart -eq 1 ++ do ++ looping=1 ++ while test $looping -ne 0 ++ do ++ if test -z "${ctype:-}" ++ then ++ echo -n "Content-type: " ++ read ctype ++ fi ++ if test "`echo $ctype | grep /`" = "" ++ then ++ echo Invalid content-type specified ++ ctype= ++ else ++ looping=0 ++ fi ++ done ++ if test -z "${datafile:-}" ++ then ++ looping=1 ++ while test $looping -eq 1 ++ do ++ echo -n "Name of file containing $ctype data: " ++ read datafile ++ if test -r "$datafile" ++ then ++ looping=0 ++ else ++ echo "The file $datafile does not exist." ++ fi ++ done ++ fi ++ ++ if test -z "${encode:-}" ++ then ++ looping=1 ++ while test $looping -eq 1 ++ do ++ echo "Do you want to encode this data for sending through the mail?" ++ echo " 1 -- No, it is already in 7 bit ASCII" ++ echo " 2 -- Yes, encode in base64 (most efficient)" ++ echo " 3 -- Yes, encode in quoted-printable (less efficient, more readable)" ++ echo " 4 -- Yes, encode it using uuencode (not standard, being phased out)" ++ echo " 5 -- No, it is 8 bit extended ASCII" ++ read encode ++ looping=0 ++ case "$encode" in ++ 1) encodingprog=cat ++ encode=7bit ;; ++ 2) encodingprog="mimencode -b" ++ encode=base64 ;; ++ 3) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ 4) encodingprog="uuencode $datafile" ++ encode=x-uue ;; ++ 5) encodingprog=cat ++ encode=8bit ;; ++ *) echo Unrecognized answer, please try again. ++ looping=1 ;; ++ esac ++ done ++ fi ++ ++ echo -n "Do you want to include another file too (y/n) [n] ? " ++ read ans ++ case $ans in ++ [Yy]*) ++ eval ctype${multipart}=\"$ctype\" ++ eval datafile${multipart}=$datafile ++ eval encode${multipart}=$encode ++ eval encodingprog${multipart}=\"\$encodingprog\" ++ eval cdescrip${multipart}=\"$cdescrip\" ++ eval attachfilename${multipart}=\"$attachfilename\" # -Immi ++ eval cid${multipart}=\"$cid\" ++ eval isentity${multipart}=$isentity ++ cdescrip= # -Immi ++ attachfilename= # -Immi ++ isentity=0 ++ ctype= ++ datafile= ++ encode= ++ encodingprog= ++ newid=`date | tr " :" "__"` ++ cid="<${newid}_$idctr@${hname}>" ++ idctr=`expr $idctr + 1` ++ multipart=`expr $multipart + 1` ++ ;; ++ *) ++ anotherpart=0;; ++ esac ++ done ++ + else +- if ($outputfile == "") then +- if (! $?to || ! $?subject || ! $?ctype || ! $?datafile) then +- echo metasend: in batch mode, if output is not directed to a file,-t, -s, -f, and -m are all required +- exit -1 +- endif +- else +- if (! $?datafile) then +- echo metasend: in batch mode, -f is required. +- endif +- if ($isentity) then +- if (! $?ctype) then +- set ctype=bogus +- # will not be used anyway really +- endif +- endif +- if (! $?ctype ) then +- echo metasend: in batch mode, with output directed to a file, -E or -m is required +- exit -1 +- endif +- endif +- if (! -e $datafile) then +- echo metasend: The file $datafile does not exist +- exit -1 +- endif +-# if (! $?cc) set cc="" +-# if ($ctype != $ctyperaw) echo Double quotes not allowed, using $ctype +- if (! $?encode) then +- if ("$ctype" =~ text*) then +- set encodingprog = "mimencode -q" +- set encode = "quoted-printable" +- else +- set encodingprog = "mimencode -b" +- set encode = base64 +- endif +- else if ($encode == "base64") then +- set encodingprog = "mimencode -b" +- else if ($encode == "x-uue") then +- set encodingprog = "uuencode mail-body" +- else if ($encode == "7bit") then +- set encodingprog = cat +- else +- set encodingprog = "mimencode -q" +- set encode = "quoted-printable" +- endif +-endif +- +-if (! $?encode) then +- if ("$ctype" =~ text*) then +- set encode = "quoted-printable" +- set encodingprog = "mimencode -q" +- else +- set encode = base64 +- set encodingprog = "mimencode -b" +- endif +-endif +-set ctype${multipart} = "$ctype" +-set datafile${multipart} = $datafile +-set encode${multipart} = $encode +-set cdescrip${multipart} = "$cdescrip" +-set cid${multipart} = "$cid" +-set isentity${multipart} = $isentity +-set encodingprog${multipart} = "$encodingprog" ++ if test -z "${outputfile:-}" ++ then ++ if test -z "${to:-}" \ ++ -o -z "${subject:-}" \ ++ -o -z "${ctype:-}" \ ++ -o -z "${datafile:-}" ++ then ++ echo "metasend: in batch mode, if output is not directed to a file, -t, -s, -f, and -m are all required" ++ exit 1 ++ fi ++ else ++ if test -z "${datafile:-}" ++ then ++ echo "metasend: in batch mode, -f is required." ++ exit 1 ++ fi ++ if test $isentity -ne 0 ++ then ++ if test -z "${ctype:-}" ++ then ++ ctype=bogus ++ # will not be used anyway ++ fi ++ fi ++ if test -z "${ctype:-}" ++ then ++ echo "metasend: in batch mode, with output directed to a file, -E or -m is required." ++ exit 1 ++ fi ++ fi ++ ++ ++ if test ! -r "$datafile" ++ then ++ echo "metasend: The file $datafile does not exist" ++ exit 1 ++ fi ++ ++# if test -z "${cc:-}" ++# then ++# cc='' ++# fi ++ ++ if test -z "${encode:-}" ++ then ++ case "$ctype" in ++ text*) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ *) encodingprog="mimencode -b" ++ encode=base64 ;; ++ esac ++ else ++ case "$encode" in ++ base64) encodingprog="mimencode -b" ;; ++ x-uue) encodingprog="uuencode $datafile" ;; ++ 7bit) encodingprog=cat ;; ++ 8bit) encodingprog=cat ;; ++ *) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ esac ++ fi ++fi ++ ++if test -z "${encode:-}" ++then ++ case "$ctype" in ++ text*) encodingprog="mimencode -q" ++ encode=quoted-printable ;; ++ *) encodingprog="mimencode -b" ++ encode=base64 ;; ++ esac ++fi ++ ++eval ctype${multipart}=\"$ctype\" ++eval datafile${multipart}=$datafile ++eval encode${multipart}=$encode ++eval cdescrip${multipart}=\"$cdescrip\" ++eval attachfilename${multipart}=\"$attachfilename\" # -Immi ++eval cid${multipart}=\"$cid\" ++eval isentity${multipart}=$isentity ++eval encodingprog${multipart}=\"\$encodingprog\" + +-set fname = ${METAMAIL_TMPDIR}/metasend.$$ ++fname=`tempfile -p metamail -m 600` + echo "MIME-Version: 1.0" > $fname +-if ($?to) then +- echo "To: " "$to" >> $fname +-endif +-if ($?subject) then +- echo "Subject: " "$subject" >> $fname +-endif +-if ($?cc) then +- echo "CC: " "$cc" >> $fname +-endif +-if ($?from) then +- echo "From: " "$from" >> $fname +-endif +-if ($multipart > 1) then +- set boundary = ${hname}.$$.`date | tr " " .` +- set newid=`date | tr " :" "__"` +- if ($?multicid) then +- echo "Content-ID: $multicid" >> $fname +- else +- echo "Content-ID: <${newid}_$idctr@${hname}>" >> $fname +- @ idctr++ +- endif +- echo "Content-type: multipart/$multipartsubtype;" >> $fname +- echo " boundary="\"$boundary\" >> $fname +- echo "" >> $fname +- if ($?preamblefile) then +- cat $preamblefile >> $fname +- else +- echo "This is a multimedia message in MIME format. If you are reading this" >> $fname +- echo "prefix, your mail reader does not understand MIME. You may wish" >> $fname +- echo "to look into upgrading to a newer version of your mail reader." >> $fname +- endif +- set i=1 +- set junkfile=${METAMAIL_TMPDIR}/mmjunk.$$ +- while ($multipart >= $i) ++ ++if test ! -z "${to:-}" ++then echo "To: $to" >> $fname ++fi ++if test ! -z "${subject:-}" ++then echo "Subject: $subject" >> $fname ++fi ++if test ! -z "${cc:-}" ++then echo "CC: $cc" >> $fname ++fi ++if test ! -z "${from:-}" ++then echo "From: $from" >> $fname ++fi ++ ++if test $multipart -gt 1 ++then ++ boundary=${hname}.$$.`date | tr " " .` ++ newid=`date | tr " :" "__"` ++ if test ! -z "${multicid:-}" ++ then ++ echo "Content-ID: $multicid" >> $fname ++ else ++ echo "Content-ID: ${newid}_$idctr@${hname}" >> $fname ++ idctr=`expr $idctr + 1` ++ fi ++ echo "Content-type: multipart/$multipartsubtype;" >> $fname ++ echo " boundary="\"$boundary\" >> $fname ++ echo "" >> $fname ++ if test ! -z "${preamblefile:-}" ++ then ++ cat $preamblefile >> $fname ++ else ++ echo "This is a multimedia message in MIME format. If you are reading this" >> $fname ++ echo "prefix, your mail reader does not understand MIME. You may wish" >> $fname ++ echo "to look into upgrading to a newer version of your mail reader." >> $fname ++ fi ++ ++ i=1 ++ while test $multipart -ge $i ++ do ++ echo "" >> $fname ++ echo --$boundary >> $fname ++ eval isentity=\$isentity$i ++ ++ if test $isentity -eq 0 ++ then ++ eval echo "Content-ID: \$cid$i" >> $fname ++ eval echo "Content-type: \$ctype$i" >> $fname ++#begin immi ++ eval cdescrip=\$cdescrip$i ++ if test ! -z "$cdescrip" ++ then ++ echo "Content-Description: $cdescrip" >> $fname ++ fi ++ eval attachfilename=\$attachfilename$i ++ if test ! -z "$attachfilename" ++ then ++ echo "Content-Disposition: attachment; filename=\"$attachfilename\"" >> $fname ++ fi ++#end immi ++ eval echo "Content-Transfer-Encoding: \$encode$i" >> $fname ++ echo "" >> $fname ++ fi ++ eval \$encodingprog$i \< \"\$datafile$i\" \>\> $fname ++ i=`expr $i + 1` ++ done ++ echo "" >> $fname ++ echo --${boundary}-- >> $fname + echo "" >> $fname +- echo --$boundary >> $fname +- echo set isentity=\$isentity$i > $junkfile +- source $junkfile +- if (! $isentity) then +- echo -n "Content-ID: " >> $fname +- echo echo \$cid$i \>\> $fname > $junkfile +- source $junkfile +- echo -n "Content-type: ">>$fname +- echo echo \$ctype$i \>\> $fname > $junkfile +- source $junkfile +- echo -n "Content-Description: ">>$fname +- echo echo \"\$cdescrip$i \" \>\> $fname > $junkfile +- source $junkfile +- echo -n "Content-Transfer-Encoding: " >>$fname +- echo echo \$encode$i \>\> $fname > $junkfile +- source $junkfile +- echo "" >> $fname +- endif +- echo \$encodingprog$i \< \$datafile$i \>\> $fname > $junkfile +- source $junkfile +- @ i++ +- end +- rm $junkfile +- echo "" >> $fname +- echo --${boundary}-- >> $fname +- echo "" >> $fname +-else +- if (! $isentity) then +- echo "Content-ID: $cid" >> $fname +- echo "Content-type: " $ctype >> $fname +- echo "Content-Description: " $cdescrip >> $fname +- echo "Content-Transfer-Encoding: " $encode >> $fname +- endif +- echo "" >> $fname +- $encodingprog < $datafile >> $fname +- # Ensure last line has trailing carriage return +- echo "" >> $fname +-endif +-if ($outputfile == "") then +- if ($batchmode == 0) echo -n "Delivering mail, please wait... " +- splitmail -s $splitsize -d $fname +- if (! $status) then +- if ($batchmode == 0) echo "Mail delivery apparently succeeded." +- rm $fname +- else if ($MustDelete == 1) then +- echo Mail delivery failed +- rm $fname +- exit -1 +- else +- echo Mail delivery failed, draft mail is in $fname +- exit -1 +- endif + else +- mv $fname $outputfile +- if ($status) exit -1 +-endif ++ if test $isentity -eq 0 ++ then ++ echo "Content-ID: $cid" >> $fname ++ echo "Content-type: $ctype" >> $fname ++#begin immi ++ if test ! -z "$cdescrip" ++ then ++ echo "Content-Description: $cdescrip" >> $fname ++ fi ++ if test ! -z "$attachfilename" ++ then ++ echo "Content-Disposition: attachment; filename=\"$attachfilename\"" >> $fname ++ fi ++#end immi ++ echo "Content-Transfer-Encoding: $encode" >> $fname ++ fi ++ echo "" >> $fname ++ $encodingprog < "$datafile" >> $fname ++ # Ensure last line has trailing carriage return ++ echo "" >> $fname ++fi ++ ++if test -z "${outputfile:-}" ++then ++ if test $batchmode = 0 ++ then ++ echo -n "Delivering mail, please wait... " ++ fi ++ splitmail -s "$splitsize" -d $fname ++ ++ if test $? -eq 0 ++ then ++ if test $batchmode = 0 ++ then ++ echo "Mail delivery apparently succeeded." ++ fi ++ rm $fname ++ elif test "$MustDelete" -eq 1 ++ then ++ echo Mail delivery failed ++ rm $fname ++ exit -1 ++ else ++ echo "Mail delivery failed, draft mail is in $fname" ++ exit -1 ++ fi ++else ++ mv $fname "$outputfile" ++ if test $? -ne 0 ++ then ++ exit -1 ++ fi ++fi + exit 0 + ++ +--- metamail-2.7.orig/bin/showpartial ++++ metamail-2.7/bin/showpartial +@@ -1,92 +1,156 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# +- +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif +- +-set TREEROOT=${METAMAIL_TMPDIR}/m-prts-`whoami` +-if ($#argv < 3 || $#argv > 4) then +- echo "Usage: showpartial file id partnum totalnum" +- exit -1 +-endif +-set file=$1 ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++if [ -z "$METAMAIL_TMPDIR" ] ++then ++ METAMAIL_TMPDIR=/tmp ++fi ++ ++ ++ ++if test -z "$3" -o ! -z "$5" ++then ++ echo "Usage: showpartial file id partnum totalnum" ++ exit 1 ++fi ++ ++file=$1 ++ + # This next line is because message-id can contain weird chars +-set id=`echo $2 | tr -d \!\$\&\*\(\)\|\'\"\;\/\<\>\\` +-@ partnum = $3 +-if ($#argv == 3 || $4 == "") then +- set totalnum=-1 ++id=$(echo "$2" | tr -d \!\$\&\*\(\)\|\'\"\;\/\<\>\\\\ ) ++ ++partnum=$3 ++ ++if test -z "$4" ++then ++ totalnum=-1 ++else ++ totalnum=$4 ++fi ++ ++if [ -n "$HOME" ] ; then ++# If we have a home directory, create a temporary dir and ++# store the name there unless the file already exists ++# and the directory it points to is valid directory ++ [ -e "$HOME/.metamail_treeroot" ] && TREEROOT=`cat $HOME/.metamail_treeroot` ++ [ -e "$TREEROOT" ] && [ ! -d "$TREEROOT" ] && rm -f "$TREEROOT" ++ if [ ! -e "$HOME/.metamail_treeroot" ] || [ ! -e "$TREEROOT" ]; then ++ TREEROOT=`mktemp -d -t msg-parts.XXXXXX` || { echo "$0: Cannot create temporary dir!" >&2 ; exit 1; } ++ echo $TREEROOT >$HOME/.metamail_treeroot ++ fi + else +- @ totalnum = $4 +-endif ++ TREEROOT=$METAMAIL_TMPDIR/msg-parts-`whoami` ++ # Sanity check: is this a directory? ++ [ -e "$TREEROOT" ] && [ ! -d "$TREEROOT" ] && rm -f "$TREEROOT" ++ # Sanity check, does it belong to us? ++ if [ -d "$TREEROOT" ] ; then ++ treeuid=`stat -c %u "$TREEROOT"` ++ if [ "$treeuid" -ne "`id -u`" ]; then ++ echo "$0: Tried to use $TREEROOT but it does not belong to us! Aborting." >&2 ++ exit 1 ++ fi ++ else ++ mkdir -p "$TREEROOT" || { echo "$0: Cannot create dir $TREEROOT!" >&2 ; exit 1; } ++ fi ++ ++fi ++if test ! -d "${TREEROOT}/$id" ++then ++ mkdir "${TREEROOT}/$id" ++ if test $? -ne 0 ++ then ++ echo mkdir "${TREEROOT}/$id" failed ++ exit 1 ++ fi ++fi + +-if (! -d $TREEROOT) then +- mkdir $TREEROOT +- if ($status) then +- echo mkdir $TREEROOT failed +- exit -1 +- endif +-endif +-if (! -d ${TREEROOT}/$id) then +- mkdir ${TREEROOT}/$id +- if ($status) then +- echo mkdir ${TREEROOT}/$id failed +- exit -1 +- endif +-endif +-cp $file ${TREEROOT}/$id/$partnum +-if ($status) then +- echo cp $file ${TREEROOT}/$id/$partnum failed +- exit -1 +-endif +-if ($totalnum == -1) then +- if (-e ${TREEROOT}/$id/CT) then +- set totalnum=`cat ${TREEROOT}/$id/CT` +- else +- set totalnum=-1 #GROSS HACK +- endif ++cp $file "${TREEROOT}/$id/$partnum" ++if test $? -ne 0 ++then ++ echo cp $file "${TREEROOT}/$id/$partnum" failed ++ exit 1 ++fi ++ ++if test $totalnum -eq -1 ++then ++ if test -r "${TREEROOT}/$id/CT" ++ then ++ totalnum=`cat "${TREEROOT}/$id/CT"` ++ else ++ totalnum=-1 ++ fi + else +- echo $totalnum >! ${TREEROOT}/$id/CT +-endif ++ echo $totalnum > "${TREEROOT}/$id/CT" ++fi ++ + # Slightly bogus here -- the shell messes up the newlines in the headers +-# If you put $MM_HEADERS in quotes, it doesn't help. + # if ($partnum == 1) then +-# echo $MM_HEADERS > ${TREEROOT}/$id/HDRS ++# echo $MM_HEADERS > "${TREEROOT}/$id/HDRS" + # endif +-set found=0 +-set ix=1 +-set list="" +-set limit=$totalnum +-if ($limit == -1) set limit=25 +-while ($ix <= $limit) +- if (-e ${TREEROOT}/$id/$ix) then +- set list="$list $ix" +- @ found ++ +- endif +- @ ix ++ +-end +-if ($found == $totalnum) then +- cd ${TREEROOT}/$id +- cat $list > ${TREEROOT}/$id/FULL +-# cat ${TREEROOT}/$id/HDRS $list > ${TREEROOT}/$id/FULL +- rm $list +- echo All parts of this ${totalnum}-part message have now been read. +- metamail -d ${TREEROOT}/$id/FULL +- echo WARNING: To save space, the full file is now being deleted. +- echo You will have to read all $totalnum parts again to see the full message again. +- rm ${TREEROOT}/$id/FULL +- rm ${TREEROOT}/$id/CT +-# rm ${TREEROOT}/$id/HDRS +- cd +- rmdir ${TREEROOT}/$id +- rmdir ${TREEROOT} >& /dev/null ++found=0 ++ix=1 ++list= ++limit=$totalnum ++if test "$limit" -eq -1 ++then ++ limit=25 ++fi ++ ++while test "$ix" -le "$limit" ++do ++ if test -f "${TREEROOT}/$id/$ix" ++ then ++ list="$list $ix" ++ found=$(($found + 1)) ++ fi ++ ix=`expr $ix + 1` ++done ++ ++if test $found = "$totalnum" ++then ++ cd "${TREEROOT}/$id" ++ cat $list > "${TREEROOT}/$id/FULL" ++ rm $list ++ echo All parts of this "${totalnum}"-part message have now been read. ++ metamail -d < "${TREEROOT}/$id/FULL" ++ echo WARNING: To save space, the full file is now being deleted. ++ echo You will have to read all "$totalnum" parts again to see the full message again. ++ rm "${TREEROOT}/$id/FULL" ++ rm "${TREEROOT}/$id/CT" ++ cd ${METAMAIL_TMPDIR} ++ rmdir "${TREEROOT}/$id" ++ rmdir ${TREEROOT} > /dev/null 2>&1 ++ [ -e "$HOME/.metamail_treeroot" ] && > "$HOME/.metamail_treeroot" + else +- if (${totalnum} == -1) then +- echo So far you have only read $found of the several parts of this message. +- else +- echo So far you have only read $found of the $totalnum parts of this message. +- endif +- echo When you have read them all, then you will see the message in full. +-endif +- ++ if test "$totalnum" -eq -1 ++ then ++ echo So far you have only read $found of the several parts of this message. ++ else ++ echo So far you have only read $found of the "$totalnum" parts of this message. ++ fi ++ echo When you have read them all, then you will see the message in full. ++fi +--- metamail-2.7.orig/bin/audiosend ++++ metamail-2.7/bin/audiosend +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,97 +11,114 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 + + # This is to make metamail/showaudio do playback on the speaker, not the phone. +-setenv AUDIOSPEAKERFORCE 1 ++AUDIOSPEAKERFORCE=1 ; export AUDIOSPEAKERFORCE ++ ++if test -d /usr/sony ++then ++ dev=/dev/sb0 ++else ++ dev=/dev/audio ++fi + +-if (-d /usr/sony) then +- set dev=/dev/sb0 ++if test -f /usr/sbin/sendmail ++then ++ MAILCOMMAND=/usr/sbin/sendmail + else +- set dev=/dev/audio +-endif ++ MAILCOMMAND=mail ++fi + +-if ( $#argv == 1 ) then +- set to = $1 ++if test ! -z "${1:-}" ++then ++ to=$1 + else + echo -n "To: " +- set to = $< +-endif ++ read to ++fi + echo -n "Subject: " +-set subject = $< ++read subject + echo -n "CC: " +-set cc = $< ++read cc + +-record: +-echo -n "Press RETURN when you are ready to start recording: " +-set foo = $< +- +-set fname = ${METAMAIL_TMPDIR}/audio-out.$$ +-set fnameraw = ${METAMAIL_TMPDIR}/audio-raw.$$ +- +-echo "To: " "$to" > $fname +-echo "Subject: " "$subject" >> $fname +-echo "CC: " "$cc" >> $fname +-echo "MIME-Version: 1.0" >> $fname +-echo "Content-Type: audio/basic" >> $fname +-echo "Content-Transfer-Encoding: base64" >> $fname +-echo "" >> $fname +-# THIS IS UNBELIEVABLY GRUBBY +-onintr cleanup +-if (! $?RECORD_AUDIO) then +- (/bin/cat < $dev > $fnameraw) & +-else +- ($RECORD_AUDIO > $fnameraw) & +-endif +-jobs -l > ${METAMAIL_TMPDIR}/AUDCAT.$$ +-set foo=`/bin/cat ${METAMAIL_TMPDIR}/AUDCAT.$$` +-/bin/rm ${METAMAIL_TMPDIR}/AUDCAT.$$ +-set PID=$foo[2] +-echo -n "press RETURN when you are done recording: " +-set foo=$< +-echo One moment please... +-/bin/sleep 1 +-echo -n Killing recording job... +-/bin/kill -9 $PID >& /dev/null +-mimencode -b < $fnameraw >> $fname +-/bin/rm $fnameraw +-echo "" >> $fname +- +-whatnext: +-echo "" +-echo "What do you want to do?" +-echo "" +-echo "1 -- Send mail" +-echo "2 -- Listen to recorded message" +-echo "3 -- Replace with a new recording" +-echo "4 -- Quit" +-set which = $< +- switch ("$which") +- case 1: +- echo -n "Sending mail, please wait... " +- /usr/lib/sendmail $to $cc < $fname +- if (! $status) then +- echo "Done." +- rm $fname +- exit +- else +- echo Mail delivery failed, draft mail is in $fname +- endif +- breaksw +- case 2: +- metamail -d $fname +- breaksw +- case 3: +- goto record +- case 4: +- exit +- endsw +-goto whatnext +-exit 0 +-cleanup: +-kill -9 $PID >& /dev/null ++record=1 ++ ++while true ++do ++ if test $record -eq 1 ++ then ++ echo -n "Press RETURN when you are ready to start recording: " ++ read foo ++ ++ fname=`tempfile -p metamail -m 600` ++ fnameraw=`tempfile -p metamail -m 600` ++ ++ echo "To: $to" > $fname ++ echo "Subject: $subject" >> $fname ++ echo "CC: $cc" >> $fname ++ echo "MIME-Version: 1.0" >> $fname ++ echo "Content-Type: audio/basic" >> $fname ++ echo "Content-Transfer-Encoding: base64" >> $fname ++ echo "" >> $fname ++ ++ trap "kill -9 $! > /dev/null 2>&1" HUP INT TERM ++ ++ if test -z "RECORD_AUDIO" ++ then ++ (cat < $dev > $fnameraw) & ++ else ++ ($RECORD_AUDIO > $fnameraw) & ++ fi ++ echo -n "press RETURN when you are done recording: " ++ read foo ++ echo One moment please... ++ sleep 1 ++ echo -n Killing recording job... ++ kill -9 $! > /dev/null 2>&1 ++ mimencode -b < $fnameraw >> $fname ++ rm $fnameraw ++ echo "" >> $fname ++ fi ++ record=0 ++ ++ echo "" ++ echo "What do you want to do?" ++ echo "" ++ echo "1 -- Send mail" ++ echo "2 -- Listen to recorded message" ++ echo "3 -- Replace with a new recording" ++ echo "4 -- Quit" ++ read which ++ case $which in ++ 1) echo -n "Sending mail, please wait... " ++ $MAILCOMMAND $to $cc < $fname ++ ++ if test $? -eq 0 ++ then ++ echo Done. ++ rm $fname ++ exit 0 ++ else ++ echo Mail delivery failed, draft is in $fname ++ fi ;; ++ 2) metamail -d $fname ;; ++ 3) record=1 ;; ++ 4) exit 0 ;; ++ esac ++done +--- metamail-2.7.orig/bin/patch-metamail ++++ metamail-2.7/bin/patch-metamail +@@ -1,20 +1,58 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# +-set HOSTNAME=thumper.bellcore.com +-set DIRNAME=pub/nsb +-set PREFIX="mm.patch." +- +-if ($#argv < 2 || $#argv > 5) then +- echo Usage: patch-metamail source-tree-root patch-number [hostname [dirname [prefix]]] +- exit -1 +-endif +- +-set TREEROOT=$1 +-set PATCHNUMBER=$2 +-if ($#argv > 2) set HOSTNAME=$3 +-if ($#argv > 3) set DIRNAME=$4 +-if ($#argv > 4) set PREFIX=$5 ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell ++# by Bob Glickstein, Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. (Z-Code) ++# ++# Permission to use, copy, modify, and distribute this material for ++# any purpose and without fee is hereby granted, provided that the ++# above copyright notice and this permission notice appear in all ++# copies, and that the name of Z-Code not be used in advertising or ++# publicity pertaining to this material without the specific, prior ++# written permission of an authorized representative of Z-Code. ++# Z-CODE MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY OF ++# THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", WITHOUT ANY ++# EXPRESS OR IMPLIED WARRANTIES. ++ ++HOSTNAME=thumper.bellcore.com ++DIRNAME=pub/nsb ++PREFIX=mm.patch. ++ ++if test -z "$2" -o ! -z "$6" ++then ++ echo "Usage: patch-metamail source-tree-root patch-number [hostname [dirname [prefix]]]" ++ exit 1 ++fi ++ ++TREEROOT=$1 ++PATCHNUMBER=$2 ++ ++if test ! -z "$3" ++then ++ HOSTNAME=$3 ++fi ++ ++if test ! -z "$4" ++then ++ DIRNAME=$4 ++fi ++ ++if test ! -z "$5" ++then ++ PREFIX=$5 ++fi + + echo WARNING: This program, if allowed to do so, will attempt to + echo install a PATCH file for your metamail sources which are rooted +@@ -22,15 +60,16 @@ + echo "" + echo It will use a patch file that it retrieves via anonymous ftp + echo from the host $HOSTNAME, in the directory $DIRNAME, +-echo with filenames starting with ${PREFIX}. ++echo with filenames starting with $PREFIX. + echo "" +-echo -n "Do you want to install the patch in directory $TREEROOT [y/n] ? " +-set ans=$< +-if ($ans == "y" || $ans == "Y") then +- cd $TREEROOT +- set ident=`whoami`@`hostname` +- echo Using anonymous ftp with password $ident +- ftp -n < 3) then +- set site=$4 +-else +- set site="" +-endif +-if ($#argv > 4) then +- set dir=$5 +-else +- set dir="" +-endif +-if ($#argv > 5) then +- set mode=$6 +-else +- set mode="" +-endif +-if ($#argv > 6) then +- set server=$7 ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 ++ ++if test -f /usr/sbin/sendmail ++then ++ MAILCOMMAND=/usr/sbin/sendmail + else +- set server="" +-endif ++ MAILCOMMAND=/bin/mail ++fi + +-if ("$server" == "" && $atype == "mail-server") then +-# Backward compatibility with some broken stuff +- set server=${name}@${site} +- echo WARNING -- old style mailserver syntax, using server $server +-endif +- +-set ctype="`grep -i content-type: $bodyfile | sed -e 's/............: //'`" +-if ("$ctype" == "") set ctype="text/plain" +-set cenc=`grep -i content-transfer-encoding: $bodyfile | sed -e 's/.........................: //'` +-set username="" +-set pass="" +-set TMPDIR=${METAMAIL_TMPDIR}/XXXternal.$$ ++if test "$#" -lt 3 ++then ++ echo "Usage: showexternal body-file access-type name [site [directory [mode]]]" ++ exit 1 ++fi ++ ++if [ -z "$METAMAIL_TMPDIR" ] ++then ++ METAMAIL_TMPDIR=/tmp ++fi ++ ++# Check argument integrity. Don't trust mail headers ++if echo "$1$2$3$4$5$6$7" | grep -q '[[:space:]]' ++then ++ echo "Illegal white space in arguments -- possibly a mail bomb?!" ++ echo "Command was:" ++ echo \'$0\' \'$1\' \'$2\' \'$3\' \'$4\' \'$5\' \'$6\' \'$7\' ++ exit 2 ++fi ++ ++bodyfile=$1 ++atype=$(echo "$2" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) ++name=$3 ++ ++site=$4 ++ ++dir=$5 ++ ++mode=$6 ++ ++server=$7 ++ ++if test -z "$server" -a $atype = "mail-server" ++then ++ server=${name}@${site} ++ echo WARNING -- old style mailserver syntax, using server "$server" ++fi ++ ++ctype=$(grep -i content-type: "$bodyfile" | sed -e 's/............: //') ++if test -z "$ctype" ++then ctype="text/plain" ++fi ++cenc=$(grep -i content-transfer-encoding: "$bodyfile" | sed -e 's/.........................: //') ++username= ++pass= ++TMPDIR=$METAMAIL_TMPDIR/XXXternal.$$ ++trap 'cd $METAMAIL_TMPDIR ; rmdir "$TMPDIR" >/dev/null 2>&1' 1 2 3 15 + mkdir $TMPDIR +-pushd $TMPDIR +-set NEWNAME="mm.ext.$$" +-set NEEDSCONFIRMATION=1 +-switch ("$atype") +- case anon-ftp: +- echo "This mail message contains a POINTER (reference) to data that is " +- echo not included in the message itself. Rather, the data can be retrieved +- echo automatically using anonymous FTP to a site on the network. +- breaksw +- case ftp: +- echo "This mail message contains a POINTER (reference) to data that is " +- echo not included in the message itself. Rather, the data can be retrieved +- echo automatically using the FTP protocol to a site on the network. +- breaksw +- case mail-server: +- cat > ${METAMAIL_TMPDIR}/ext.junk.$$ < $TMPF <> ${METAMAIL_TMPDIR}/ext.junk.$$ +- more ${METAMAIL_TMPDIR}/ext.junk.$$ +- rm ${METAMAIL_TMPDIR}/ext.junk.$$ +- breaksw +- default: +- # IGNORE ALL THE OTHERS -- AUTOMATIC FOR LOCAL-FILE, AFS. +- set NEEDSCONFIRMATION=0 +-endsw ++ sed -e 1,/^\$/d < "$bodyfile" >> $TMPF ++ sensible-pager $TMPF ++ rm $TMPF ;; ++ ++ *) ++ NEEDSCONFIRMATION=0 ;; ++esac + +-if ($NEEDSCONFIRMATION) then ++if test $NEEDSCONFIRMATION -ne 0 ++then + echo "" +- echo -n "Do you want to proceed with retrieving the external data [y] ? " +- set ANS=$< +- if ("$ANS" =~ n* || "$ANS" =~ N* ) then +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit 0 +- endif +-endif +- +-switch ("$atype") +- case anon-ftp: +- set username=anonymous +- set pass=`whoami`@`hostname` +- # DROP THROUGH +- case ftp: +- if ("$site" == "") then +- echo -n "Site for ftp access: " +- set site=$< +- endif +- if ("$username" == "") then +- echo -n "User name at site ${site}: " +- set username=$< +- endif +- if ("$pass" == "") then +- echo -n "Password for user $username at site ${site}: " +- stty -echo +- set pass=$< +- stty echo +- echo "" +- endif +- if ("$dir" == "") then +- set DIRCMD="" +- else +- set DIRCMD="cd $dir" +- endif +- if ("$mode" == "") then +- set MODECMD="" +- else +- set MODECMD="type $mode" +- endif +- echo OBTAINING MESSAGE BODY USING FTP +- echo SITE: $site USER $username +- $FTP -n < $NEWNAME +- echo To: ${server} >> $NEWNAME +- echo "" >> $NEWNAME +- sed -e 1,/^\$/d < $bodyfile >> $NEWNAME +- echo "" >> $NEWNAME +- /usr/lib/sendmail -t < $NEWNAME +- if ($status) then +- echo sendmail failed +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit -1 +- endif +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- echo Your $ctype data has been requested from a mail server. +- exit 0 +- default: +- echo UNRECOGNIZED ACCESS-TYPE +- cd ${METAMAIL_TMPDIR} +- rm -rf $TMPDIR +- exit -1 +-endsw +-if ($cenc == base64) then +- mimencode -u -b < $NEWNAME > OUT +- mv OUT $NEWNAME +-else if ($cenc == quoted-printable) then +- mimencode -u -q < $NEWNAME > OUT +- mv OUT $NEWNAME +-endif +- +-popd +-if ($atype == "local-file") then +- metamail -p -b -c "$ctype" $NEWNAME +-else +- metamail -p -b -c "$ctype" $TMPDIR/$NEWNAME +-endif ++ if test ! -r "$NEWNAME" ++ then ++ echo FTP failed. ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ++ fi ++ ;; ++ ++ afs|local-file) ++ if test ! -r "$name" ++ then ++ echo local file not found ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ++ fi ++ NEWNAME=$name ++ echo GETTING BODY FROM FILE NAMED: "$NEWNAME" ;; ++ ++ mail-server) ++ if test -z "$bodyfile" ++ then ++ echo mail-server access-type requires a body file ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ++ fi ++ echo Subject: Automated Mail Server Request > "$NEWNAME" ++ echo To: "$server" >> "$NEWNAME" ++ echo >> "$NEWNAME" ++ sed -e 1,/^\$/d < "$bodyfile" >> "$NEWNAME" ++ $MAILCOMMAND -t < "$NEWNAME" ++ if test $? -ne 0 ++ then ++ echo sendmail failed ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ++ fi ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ echo Your "$ctype" data has been requested from a mail server. ++ exit 0 ;; ++ *) ++ echo UNRECOGNIZED ACCESS-TYPE ++ cd $METAMAIL_TMPDIR ++ rm -rf $TMPDIR ++ exit 1 ;; ++esac ++ ++if test "$cenc" = base64 ++then ++ mimencode -u -b < "$NEWNAME" > OUT ++ mv OUT "$NEWNAME" ++elif test "$cenc" = quoted-printable ++then ++ mimencode -u -q < "$NEWNAME" > OUT ++ mv OUT "$NEWNAME" ++fi ++ ++cd $PUSHED_DIR ++case "$atype" in ++ local-file ) metamail -b -p -c "$ctype" "$NEWNAME" ;; ++ * ) metamail -b -p -c "$ctype" "$TMPDIR/$NEWNAME" ;; ++esac + +-if ($status) then ++if test $? -ne 0 ++then + echo metamail failed +- cd ${METAMAIL_TMPDIR} ++ cd $METAMAIL_TMPDIR + rm -rf $TMPDIR +- exit -1 +-endif ++ exit 1 ++fi + +-if ($NEWNAME != $name) then ++if test ! "$NEWNAME" = "$name" ++then + echo "" +- echo The data just displayed is stored in the file $TMPDIR/$NEWNAME ++ echo The data just displayed is stored in the file "$TMPDIR/$NEWNAME" + echo "Do you want to delete it?" +- rm -i $TMPDIR/$NEWNAME +-endif ++ rm -i "$TMPDIR/$NEWNAME" ++fi + +-if (! -e ${TMPDIR}/${NEWNAME}) then +- cd ${METAMAIL_TMPDIR} +- rmdir $TMPDIR +-endif +-exit 0 +- +-cleanup: +-cd ${METAMAIL_TMPDIR} +-if (-e $TMPDIR) then +- rmdir $TMPDIR +-endif +-exit -1 ++if test ! -r "${TMPDIR}/${NEWNAME}" ++then ++ cd / ++ cd $METAMAIL_TMPDIR ++ rmdir $TMPDIR ++fi +--- metamail-2.7.orig/bin/audiocompose ++++ metamail-2.7/bin/audiocompose +@@ -1,6 +1,4 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e + # Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + # + # Permission to use, copy, modify, and distribute this material +@@ -13,64 +11,71 @@ + # MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY + # OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", + # WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +-# + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + + # This is to make metamail/showaudio do playback on the speaker, not the phone. +-setenv AUDIOSPEAKERFORCE 1 ++AUDIOSPEAKERFORCE=1; export AUDIOSPEAKERFORCE + +-if (-d /usr/sony) then +- set dev=/dev/sb0 ++if test -d /usr/sony ++then ++ dev=/dev/sb0 + else +- set dev=/dev/audio +-endif ++ dev=/dev/audio ++fi + +-set audiofile=$1 +-if (-e $audiofile && ! -z $audiofile) goto whatnext ++audiofile=$1 + +-record: +-echo -n "Press RETURN when you are ready to start recording: " +-set foo = $< +- +-# THIS IS UNBELIEVABLY GRUBBY +-onintr cleanup +-if (! $?RECORD_AUDIO) then +- (/bin/cat < $dev > $audiofile) & ++if test -f "$audiofile" -a -s "$audiofile" ++then ++ whatnext=1 + else +- ($RECORD_AUDIO > $audiofile) & +-endif +-jobs -l > ${METAMAIL_TMPDIR}/AUDCAT.$$ +-set foo=`/bin/cat ${METAMAIL_TMPDIR}/AUDCAT.$$` +-/bin/rm ${METAMAIL_TMPDIR}/AUDCAT.$$ +-set PID=$foo[2] +-echo -n "press RETURN when you are done recording: " +-set foo=$< +-echo One moment please... +-/bin/sleep 1 +-echo -n Killing recording job... +-/bin/kill -9 $PID >& /dev/null +- +-whatnext: +-echo "" +-echo "What do you want to do?" +-echo "" +-echo "1 -- Listen to recorded message" +-echo "2 -- Replace with a new recording" +-echo "3 -- All Done, Quit" +-set which = $< +- switch ("$which") +- case 1: +- cat $audiofile > $dev +- breaksw +- case 2: +- goto record +- case 3: +- exit +- endsw +-goto whatnext +-exit 0 +-cleanup: +-kill -9 $PID >& /dev/null ++ whatnext=0 ++fi ++ ++while true ++do ++ if test $whatnext -eq 1 ++ then ++ echo "" ++ echo "What do you want to do?" ++ echo "" ++ echo "1 -- Listen to recorded message" ++ echo "2 -- Replace with a new recording" ++ echo "3 -- All Done, Quit" ++ read which ++ case $which in ++ 1) cat "$audiofile" > $dev ;; ++ 2) whatnext=0 ;; ++ 3) exit 0 ;; ++ esac ++ fi ++ echo -n "Press RETURN when you are ready to start recording: " ++ read foo ++ ++ trap "kill -9 $! > /dev/null 2>&1" 1 2 15 ++ if test -z "$RECORD_AUDIO" ++ then ++ (cat < $dev > "$audiofile") & ++ else ++ ($RECORD_AUDIO > "$audiofile") & ++ fi ++ echo -n "press RETURN when you are done recording: " ++ read foo ++ echo One moment please... ++ /bin/sleep 1 ++ echo -n Killing recording job... ++ /bin/kill -9 $! > /dev/null 2>&1 ++ whatnext=1 ++done +--- metamail-2.7.orig/bin/rcvAppleSingle ++++ metamail-2.7/bin/rcvAppleSingle +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/sh -e + # + # Very simple shellscript to support recieving Macintosh files + # and store them in a UNIX filesystem used by the CAP AUFS program. +--- metamail-2.7.orig/bin/sun-to-mime ++++ metamail-2.7/bin/sun-to-mime +@@ -1,14 +1,20 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# +-# Provide VERY minimal support for mail generated by Sun's Openwindows mailtool. +-# Basically, this lets you see the text part, but not much else... ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 + +-set TMPFILE=${METAMAIL_TMPDIR}/suntomime.$$ ++TMPFILE=`tempfile -p metamail -m 600` + echo "Content-type: multipart/mixed; boundary=--------" > $TMPFILE + echo "" >> $TMPFILE + sed -e 's/X-Sun-Data-Type:/Content-type:/' >> $TMPFILE < $1 +--- metamail-2.7.orig/bin/getfilename ++++ metamail-2.7/bin/getfilename +@@ -1,16 +1,36 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + + echo -n "Enter the name of a file in '$1' format: " +-set fnam=$< +-if ("" == "$fnam") then +- echo Aborted +- exit -1 +-endif +-if (! -r $fnam) then +- echo No such file +- exit -1 +-endif +-cp $fnam $2 +-exit 0 ++read fnam ++if test ! -r "$fnam" ++then ++ echo No such file ++ exit 1 ++fi ++ ++cp "$fnam" "$2" +--- metamail-2.7.orig/bin/extcompose ++++ metamail-2.7/bin/extcompose +@@ -1,103 +1,126 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# +- +-if ($#argv < 1) then +- echo "Usage: extcompose output-file-name" ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++if [ $# -lt 1 ] ++then ++ echo "Usage: $0 output-file-name" 1>&2 + exit 1 +-endif +-set OUTFNAME=$1 ++fi ++OUTFNAME=$1 ++ ++choosing=yes ++while [ $choosing = yes ] ++do ++ echo "" ++ echo "Where is the external data that you want this mail message to reference?" ++ echo " 1 -- In a local file" ++ echo " 2 -- In an AFS file" ++ echo " 3 -- In an anonymous FTP directory on the Internet" ++ echo " 4 -- In an Internet FTP directory that requires a valid login" ++ echo " 5 -- Under the control of a mail server that will send the data on request" ++ echo "" ++ echo -n "Please enter a number from 1 to 5: \c" ++ read ans ++ case "$ans" in ++ 1) accesstype=local-file ;; ++ 2) accesstype=afs ;; ++ 3) accesstype=anon-ftp ;; ++ 4) accesstype=ftp ;; ++ 5) accesstype=mail-server ;; ++ * ) echo "That is NOT one of your choices." 1>&2; continue ;; ++ esac ++ ++ case "$accesstype" in ++ ftp | anon-ftp ) ++ echo -n "Enter the full Internet domain name of the FTP site: " ++ read site ++ echo -n "Enter the name of the directory containing the file (RETURN for top-level): " ++ read directory ++ echo -n "Enter the name of the file itself: " ++ read name ++ echo -n "Enter the transfer mode (type 'image' for binary data, RETURN otherwise): " ++ read mode ++ if [ -n "$mode" ] ++ then mode=ascii ++ fi ++ echo "Content-type: message/external-body; access-type=$accesstype; name="\"$name\"\; > "$OUTFNAME" ++ echo -n " site="\"$site\" >> "$OUTFNAME" ++ if [ -n "$directory" ] ++ then echo -n "; directory="\"$directory\">> "$OUTFNAME" ++ fi ++ echo -n "; mode="\"$mode\">> "$OUTFNAME" ++ echo "">> "$OUTFNAME" ++ choosing=no ++ ;; + +-chooseaccesstype: +-echo "" +-echo "Where is the external data that you want this mail message to reference?" +-echo " 1 -- In a local file" +-echo " 2 -- In an AFS file" +-echo " 3 -- In an anonymous FTP directory on the Internet" +-echo " 4 -- In an Internet FTP directory that requires a valid login" +-echo " 5 -- Under the control of a mail server that will send the data on request" +-echo "" +-echo -n "Please enter a number from 1 to 5: " +-set ans=$< +-if ($ans == 1) then +- set accesstype=local-file +-else if ($ans == 2) then +- set accesstype=afs +-else if ($ans == 3) then +- set accesstype=anon-ftp +-else if ($ans == 4) then +- set accesstype=ftp +-else if ($ans == 5) then +- set accesstype=mail-server +-else +- echo "That is NOT one of your choices." +- goto chooseaccesstype +-endif +-if ($accesstype == "ftp" || $accesstype == "anon-ftp") then +- echo -n "Enter the full Internet domain name of the FTP site: " +- set site=$< +- echo -n "Enter the name of the directory containing the file (RETURN for top-level): " +- set directory=$< +- echo -n "Enter the name of the file itself: " +- set name = $< +- echo -n "Enter the transfer mode (type 'image' for binary data, RETURN otherwise): " +- set mode = $< +- if ($mode == "") set mode=ascii +- echo "Content-type: message/external-body; access-type=$accesstype; name="\"$name\"\; > $OUTFNAME +- echo -n " site="\"$site\" >> $OUTFNAME +- if ($directory != "") echo -n "; directory="\"$directory\">> $OUTFNAME +- if ($mode != "") echo -n "; mode="\"$mode\">> $OUTFNAME +- echo "">> $OUTFNAME +-else if ($accesstype == "local-file" || $accesstype == "afs") then +-fname: +- echo -n "Enter the full path name for the file: " +- set name = $< +- if (! -e $name) then +- echo "The file $name does not seem to exist." +- goto fname +- endif +- echo "Content-type: message/external-body; access-type=$accesstype; name="\"$name\"> $OUTFNAME +-else if ($accesstype == "mail-server") then +- echo -n "Enter the full email address for the mailserver: " +- set server=$< +- echo "Content-type: message/external-body; access-type=$accesstype; server="\"$server\"> $OUTFNAME +-else +- echo accesstype $accesstype not yet implemented +- goto chooseaccesstype +-endif ++ local-file | afs ) ++ name= ++ while [ -z "$name" ] ++ do ++ echo -n "Enter the full path name for the file: " ++ read name ++ if [ ! -f "$name" ] ++ then ++ echo "The file $name does not seem to exist." ++ name= ++ fi ++ done ++ echo "Content-type: message/external-body; access-type=$accesstype; name="\"$name\"> "$OUTFNAME" ++ choosing=no ++ ;; ++ ++ mail-server ) ++ echo -n "Enter the full email address for the mailserver: " ++ read server ++ echo "Content-type: message/external-body; access-type=$accesstype; server="\"$server\"> "$OUTFNAME" ++ choosing=no ++ ;; ++ ++ * ) ++ echo accesstype "$accesstype" not yet implemented ++ ;; ++ esac ++done + + echo -n "Please enter the MIME content-type for the externally referenced data: " +-set ctype = $< +-getcenc: +-echo "Is this data already encoded for email transport?" +-echo " 1 -- No, it is not encoded" +-echo " 2 -- Yes, it is encoded in base64" +-echo " 3 -- Yes, it is encoded in quoted-printable" +-echo " 4 -- Yes, it is encoded using uuencode" +-set encode=$< +-switch ("$encode") +- case 1: +- set cenc="" +- breaksw +- case 2: +- set cenc="base64" +- breaksw +- case 3: +- set cenc="quoted-printable" +- breaksw +- case 4: +- set cenc="x-uue" +- breaksw +- default: +- echo "That is not one of your choices." +- goto getcenc +-endsw +-echo "" >> $OUTFNAME +-echo "Content-type: " $ctype >> $OUTFNAME +-if ($cenc != "") echo "Content-transfer-encoding: " $cenc >> $OUTFNAME +-echo "" >> $OUTFNAME +-if ($accesstype == "mail-server") then ++read ctype ++ ++choosing=yes ++while [ $choosing = yes ] ++do ++ echo "Is this data already encoded for email transport?" ++ echo " 1 -- No, it is not encoded" ++ echo " 2 -- Yes, it is encoded in base64" ++ echo " 3 -- Yes, it is encoded in quoted-printable" ++ echo " 4 -- Yes, it is encoded using uuencode" ++ read encode ++ case "$encode" in ++ 1 ) cenc="" choosing=no ;; ++ 2 ) cenc="base64" choosing=no ;; ++ 3 ) cenc="quoted-printable" choosing=no ;; ++ 4 ) cenc="x-uue" choosing=no ;; ++ * ) echo "That is not one of your choices." ;; ++ esac ++done ++ ++echo >> "$OUTFNAME" ++echo "Content-type: " "$ctype" >> "$OUTFNAME" ++if [ -n "$cenc" ] ++then echo "Content-transfer-encoding: " "$cenc" >> "$OUTFNAME" ++fi ++echo >> "$OUTFNAME" ++if [ "$accesstype" = "mail-server" ] ++then + echo "Please enter all the data to be sent to the mailserver in the message body, " + echo "ending with ^D or your usual end-of-data character:" +- cat >> $OUTFNAME +-endif ++ cat >> "$OUTFNAME" ++fi +--- metamail-2.7.orig/bin/mailserver ++++ metamail-2.7/bin/mailserver +@@ -1,4 +1,4 @@ +-#!/bin/csh -fb ++#!/bin/csh -efb + # (The "-fb" might need to be changed to "-f" on some systems) + # + # Mailserver -- a simple MIME mailserver script. +@@ -18,17 +18,15 @@ + set LOCALADDR=mail-server + set ROOTDIR=/usr/spool/ftp + set MAINTAINER=postmaster +-set METAMAILDIR=/usr/local/bin + set LOGADDR=andrew@thumper.bellcore.com + # If LOGADDR is the empty string, no logging is done. + # + # The real program begins here. + +-setenv PATH ${METAMAILDIR}:${PATH} + rehash + set FromName="" + set Subject="" +-set TmpFile=/tmp/ms.$$ ++set TmpFile=`tempfile -p metamail -m 600` + set FOORAW=$< + while ("$FOORAW" != "") + set FOO=(` echo "$FOORAW" | tr "[" "x"`) +@@ -68,7 +66,7 @@ + probably run in some circumstance other than mail delivery. + -------------------- + ! +- cat $TmpFile - | /usr/lib/sendmail $MAINTAINER ++ cat $TmpFile - | /usr/sbin/sendmail $MAINTAINER + # Takes the rest of the message from standard input + rm $TmpFile + exit 0 +@@ -86,7 +84,7 @@ + + The file you requested, if it exists, will not be sent to you. + ! +- /usr/lib/sendmail -t < $TmpFile ++ /usr/sbin/sendmail -t < $TmpFile + rm $TmpFile + exit 0 + endif +@@ -107,7 +105,7 @@ + -------------------------------- + ! + ls -R >> $TmpFile +- /usr/lib/sendmail -t < $TmpFile ++ /usr/sbin/sendmail -t < $TmpFile + rm $TmpFile + exit 0 + endif +@@ -135,13 +133,13 @@ + metasend -b -t "$FromName" -f "$Subject" -m "$ct" -s "Re: $Subject" + + ! +- /usr/lib/sendmail -t < $TmpFile ++ /usr/sbin/sendmail -t < $TmpFile + rm $TmpFile + exit 0 + endif + + if ("$LOGADDR" != "") then +- /usr/lib/sendmail -t < $TMPFILE ++' "$1" > $TMPFILE + + metamail -z $TMPFILE +-rm -f $TMPFILE +- ++rm $TMPFILE ++exit 0 +--- metamail-2.7.orig/bin/sun-audio-file ++++ metamail-2.7/bin/sun-audio-file +@@ -1,12 +1,20 @@ +-#!/bin/csh -fb +-# (The "-fb" might need to be changed to "-f" on some systems) +-# ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. + +-if (! $?METAMAIL_TMPDIR) then +- set METAMAIL_TMPDIR=/tmp +-endif ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 + +-cd ${METAMAIL_TMPDIR} +-uudecode < $1 +-audiotool audio-file +-rm -f audio-file $1 ++audio-file=`tempfile -p metamail -m 600` ++uudecode -o $audio-file "$1" ++audiotool $audio-file ++rm $audio-file "$1" +--- metamail-2.7.orig/bin/uudepipe ++++ metamail-2.7/bin/uudepipe +@@ -0,0 +1,13 @@ ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++uudecode -o /dev/stdout -- ${1+"$1"} +--- metamail-2.7.orig/bin/uuenpipe ++++ metamail-2.7/bin/uuenpipe +@@ -0,0 +1,13 @@ ++#!/bin/sh -e ++# This file Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++uuencode -- ${1+"$1"} "$(basename "${1-UUPIPEOUT}")" +--- metamail-2.7.orig/bin/sun-message ++++ metamail-2.7/bin/sun-message +@@ -0,0 +1,56 @@ ++#!/bin/sh -e ++# ++# This is sun-message. ++# It looks at $2 to figure out how to decode $1, ++# then gives the user a short menu of choices: ++# display, save or quit. ++ ++if [ "$2" = "uuencode" ] ++then ++ fn=`tempfile -p metamail -m 600` ++ uudecode -o $fn "$1" ++ ++ echo "The following file was uudecoded:" ++ echo ++ ++ defans=1 ++ while : ++ do ++ ls -l $fn ++ ++ echo ++ echo "Please choose one:" ++ echo ++ echo "1 -- Display it as ASCII text" ++ echo "2 -- Save it as a file" ++ echo "3 -- Quit this menu" ++ echo ++ echo -n "Which do you prefer (1 - 3)? [$defans] " ++ ++ read ans ++ if test -z "${ans:-}" ++ then ++ ans=$defans ++ fi ++ ++ case $ans in ++ 1) sensible-pager $fn ;; ++ 2) echo -n "Save as: $HOME/" ++ read nfn ++ if test ! -z "${nfn:-}" ++ then ++ cp $fn "$HOME/$nfn" ++ else ++ echo Not Saved. ++ fi ++ ;; ++ 3) rm "$1" $fn ++ exit 0 ++ ;; ++ *) echo Invalid choice. ;; ++ esac ++ defans=3 ++ done ++else ++ sensible-pager "$1" ++fi +--- metamail-2.7.orig/bin/shownonascii ++++ metamail-2.7/bin/shownonascii +@@ -0,0 +1,104 @@ ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 ++ ++MYFONTDIR=/usr/lib/X11/fonts/misc ++ ++CHARSET=$1 ++shift ++ ++if test "$1" = "-e" ++then ++ shift ++ CMD="$*" ++ RIGHTTERMCMD="$*" ++else ++ CMD="more $* /dev/null" ++ RIGHTTERMCMD="more $*" ++fi ++ ++if test ! -z "${MM_CHARSET:-}" ++then ++ if test "$MM_CHARSET" = "$CHARSET" ++ then ++ $RIGHTTERMCMD ++ exit 0 ++ fi ++fi ++for f in "${MM_AUXCHARSETS:-}" ++do ++ if test "$f" = "$CHARSET" ++ then ++ $RIGHTTERMCMD ++ exit 0 ++ fi ++done ++ ++if test ! -d "$MYFONTDIR" ++then ++ echo This message contains non-ASCII text, but the $CHARSET font ++ echo has not yet been installed on this machine. What follows ++ echo "may be partially unreadable, but the English (ASCII) parts" ++ echo "should still be readable." ++ cat $* ++ exit 0 ++fi ++ ++if test -z "${DISPLAY:-}" ++then ++ echo This message contains non-ASCII text, which can only be displayed ++ echo properly if you are running X11. What follows ++ echo "may be partially unreadable, but the English (ASCII) parts" ++ echo "should still be readable." ++ cat $* ++ exit 0 ++fi ++ ++# ++# Do we have a font server? ++# ++if xset q | grep -q tcp/localhost:7100 ++then ++ echo Your font path appears to be correctly set. ++else ++ if xset q | grep -q $MYFONTDIR ++ then ++ echo Your font path appears to be correctly set. ++ else ++ echo Adding $MYFONTDIR to your font path. ++ xset +fp "$MYFONTDIR" ++ fi ++fi ++ ++echo Running xterm to display text in $CHARSET, please wait... ++ ++# Bogus -- need to unsetenv MM_NOTTTY, but can't in Bourne shell. --bobg. ++MM_NOTTTY='' ++XCHARSET=\*`echo $CHARSET | sed -e s/iso-/iso/` ++xterm -fn $XCHARSET -e $CMD +--- metamail-2.7.orig/bin/Makefile.am ++++ metamail-2.7/bin/Makefile.am +@@ -0,0 +1,9 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++bin_SCRIPTS = audiocompose audiosend extcompose getfilename \ ++ mailserver mailto-hebrew metasend mimeit \ ++ patch-metamail rcvAppleSingle showaudio showexternal \ ++ shownonascii showpartial showpicture sndAppleSingle \ ++ sun-audio-file sun-message sun-message.csh \ ++ sun-to-mime sun2mime uudepipe uuenpipe ++ +--- metamail-2.7.orig/bin/Makefile.in ++++ metamail-2.7/bin/Makefile.in +@@ -0,0 +1,217 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = .. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++bin_SCRIPTS = audiocompose audiosend extcompose getfilename mailserver mailto-hebrew metasend mimeit patch-metamail rcvAppleSingle showaudio showexternal shownonascii showpartial showpicture sndAppleSingle sun-audio-file sun-message sun-message.csh sun-to-mime sun2mime uudepipe uuenpipe ++ ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../metamail/config.h ++CONFIG_CLEAN_FILES = ++SCRIPTS = $(bin_SCRIPTS) ++ ++DIST_COMMON = Makefile.am Makefile.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++all: all-redirect ++.SUFFIXES: ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign bin/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++install-binSCRIPTS: $(bin_SCRIPTS) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ @list='$(bin_SCRIPTS)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ ++ $(INSTALL_SCRIPT) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ ++ else if test -f $(srcdir)/$$p; then \ ++ echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \ ++ $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ ++ else :; fi; fi; \ ++ done ++ ++uninstall-binSCRIPTS: ++ @$(NORMAL_UNINSTALL) ++ list='$(bin_SCRIPTS)'; for p in $$list; do \ ++ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ ++ done ++tags: TAGS ++TAGS: ++ ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = bin ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign bin/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++install-exec-am: install-binSCRIPTS ++install-exec: install-exec-am ++ ++install-data-am: ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: uninstall-binSCRIPTS ++uninstall: uninstall-am ++all-am: Makefile $(SCRIPTS) ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: uninstall-binSCRIPTS install-binSCRIPTS tags distdir info-am \ ++info dvi-am dvi check check-am installcheck-am installcheck \ ++install-exec-am install-exec install-data-am install-data install-am \ ++install uninstall-am uninstall all-redirect all-am all installdirs \ ++mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +--- metamail-2.7.orig/bin/mimeit ++++ metamail-2.7/bin/mimeit +@@ -0,0 +1,27 @@ ++#!/bin/sh -e ++# mimeit - mail base64-encoded stdin ++# with content-type $1 ++# to recipient $2 ++# with subject $3 ++# All other arguments are passed on to splitmail ++ ++if [ $# -lt 3 ]; then ++ echo "Usage: $0 [splitmail-options]" >&2 ++ exit 1 ++fi ++ ++ct="$1" ++to="$2" ++sub="$3" ++ ++shift ++shift ++shift ++ ++( echo Mime-Version: 1.0 ; \ ++ echo Content-type: "$ct" ; \ ++ echo To: "$to" ; \ ++ echo Subject: "$sub" ; \ ++ echo Content-Transfer-Encoding: base64 ; ++ echo "" ; \ ++ mimencode -b ) | splitmail -d $* +--- metamail-2.7.orig/bin/mailto-hebrew ++++ metamail-2.7/bin/mailto-hebrew +@@ -0,0 +1,76 @@ ++#!/bin/sh -e ++# Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++# ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Bellcore not be ++# used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Bellcore. BELLCORE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Conversion from C shell to Bourne shell ++# by Bob Glickstein, Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. (Z-Code) ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++# Brought into line with metamail 2.7 beta release Csh version ++# Dave Shield February 1994 ++ ++MYFONTDIR=/usr/lib/X11/fonts/misc ++ ++if test ! -z "${MM_CHARSET:-}" ++then ++ if test "$MM_CHARSET" = iso-8859-8 ++ then ++ mailto $* ++ exit 0 ++ fi ++fi ++ ++if test ! -d "$MYFONTDIR" ++then ++ echo The Hebrew font has not been installed properly on this machine. ++ exit 1 ++fi ++ ++if test -z "${DISPLAY:-}" ++then ++ echo Hebrew mail may only be composed under X11 or on a Hebrew terminal. ++ exit 1 ++fi ++ ++# ++# Do we have a font server? ++# ++FSGREP=`xset q | grep "tcp/localhost:7100"` ++if test ! -z "${FSGREP:-}" ++then ++ FPGREP=`xset q | grep $MYFONTDIR` ++ if test -z "${FPGREP:-}" ++ then ++ echo Adding $MYFONTDIR to your font path. ++ xset +fp "$MYFONTDIR" ++ else ++ echo Your font path appears to be correctly set. ++ fi ++else ++ echo Your font path appears to be correctly set. ++fi ++ ++echo Running xterm to compose mail in iso-8859-8, please wait... ++ ++MM_CHARSET=iso-8859-8; export MM_CHARSET ++xterm -fn \*iso-8859-8 -e mailto $* +--- metamail-2.7.orig/fonts/Makefile ++++ metamail-2.7/fonts/Makefile +@@ -10,7 +10,9 @@ + #FONTSUFFIX=fb + #DIRBUILDER=bldfamily + +-all: shownonascii heb6x13.${FONTSUFFIX} heb8x13.${FONTSUFFIX} heb8x13B.${FONTSUFFIX} mailto-hebrew ++RM=rm ++ ++all: heb6x13.${FONTSUFFIX} heb8x13.${FONTSUFFIX} heb8x13B.${FONTSUFFIX} + + heb6x13.${FONTSUFFIX}: heb6x13.bdf + # convertfont -o heb6x13 heb6x13.bdf +@@ -36,4 +38,4 @@ + chmod +x mailto-hebrew + + clean: +- rm -f heb6x13.${FONTSUFFIX} heb8x13.${FONTSUFFIX} heb8x13B.${FONTSUFFIX} shownonascii mailto-hebrew fonts.dir ++ $(RM) -f heb6x13.${FONTSUFFIX} heb8x13.${FONTSUFFIX} heb8x13B.${FONTSUFFIX} shownonascii mailto-hebrew fonts.dir +--- metamail-2.7.orig/fonts/Xshownonascii ++++ metamail-2.7/fonts/Xshownonascii +@@ -1,7 +1,7 @@ + #!/bin/csh -fb + # (The "-fb" might need to be changed to "-f" on some systems) + # +-set MYFONTDIR=/u/nsb/lib/fonts ++set MYFONTDIR=/usr/lib/X11/fonts/misc + + set CHARSET="$1" + shift +--- metamail-2.7.orig/fonts/Xmailto-hebrew ++++ metamail-2.7/fonts/Xmailto-hebrew +@@ -1,7 +1,7 @@ + #!/bin/csh -fb + # (The "-fb" might need to be changed to "-f" on some systems) + # +-set MYFONTDIR=/u/nsb/lib/fonts ++set MYFONTDIR=/usr/lib/X11/fonts/misc + + if ($?MM_CHARSET) then + if ($MM_CHARSET == iso-8859-8) then +--- metamail-2.7.orig/man/metasend.1 ++++ metamail-2.7/man/metasend.1 +@@ -12,7 +12,7 @@ + + With no arguments, the program will ask the user for the To, Subject, and CC fields. It will then ask for the name of a MIME content-type. Next, it will ask the user for the name of an existing file containing that type of data. After this, it will ask what encoding type, if any, should be applied to this data. Finally, it will ask if the user wants to include information from an additional file, in which case the last three questions will be repeated for the next file. + +-Alternately, all of this information can be provided on the comand line, using the following options: ++Alternately, all of this information can be provided on the command line, using the following options: + + -b -- specifies Batch (non-interactive) Mode. Will exit with an error message if all additional needed information is not provided on the command line. + -c cc -- specifies the CC address +--- metamail-2.7.orig/man/mailto.1 ++++ metamail-2.7/man/mailto.1 +@@ -1,6 +1,6 @@ + .TH MAILTO 1 "Release 1" "Bellcore Prototype" + .SH NAME +-mailto - Simple mutlimedia mail sending program ++mailto - Simple multimedia mail sending program + .SH SYNOPSIS + .ta 8n + \fBmailto\fP [-a] [-c] [-s] [recipient name(s)] +@@ -74,9 +74,9 @@ + + Basically, mailto can include the following things in mail: + +-1. Simple formatted text, using the MIME type "text/richtext". This allows you to add emphasis to your message using underlining, bold text, italic (diaplsyed as reverse video), centering, and the like. ++1. Simple formatted text, using the MIME type "text/richtext". This allows you to add emphasis to your message using underlining, bold text, italic (displayed as reverse video), centering, and the like. + +-2. Non-text data. Metamail can include pictures, sounds, and other non-textual data in the middle of any mail message. The mailcap configuration mechanism can even make this process reasonably user-friendly, but a knowledgable user can include non-textual data even in the absence of a proper mailcap entry. ++2. Non-text data. Metamail can include pictures, sounds, and other non-textual data in the middle of any mail message. The mailcap configuration mechanism can even make this process reasonably user-friendly, but a knowledgeable user can include non-textual data even in the absence of a proper mailcap entry. + + 3. Text including non-ASCII characters, such as Hebrew or Russian. Currently, mailto directly supports only the ISO-8859-* family of character sets, which means that it does not meet the needs of Asian users, in particular. However, languages that can not be expressed in the ISO-8859 family can still be included in the same way non-text data can be included. + +@@ -230,7 +230,7 @@ + dot -- controls whether or not a period alone on a line + should be interpreted as terminating your mail + ignore -- controls whether or not interrupts are ignored +- verbose -- controls the verbosity of output from /usr/lib/sendmail ++ verbose -- controls the verbosity of output from /usr/sbin/sendmail + quiet -- controls the verbosity of output from the mailto program. + keepblind -- controls whether or not a 'blind' copy of the mail is kept. + commasonly -- controls whether or not a space character +@@ -275,7 +275,7 @@ + + .I + Altered editing behavior: +-The ~e and ~v commands, which are used to edit the message being composed, will behave differently in mailto if the mail includes non-text portions. In such cases, each part will be edited separately, in sequence, which makes it impossble for the user to accidentally mess up the inter-part boundaries. Moreover, if the mailcap entry for a given data type includes an "edit" field, the user will be given the choice of editing with the program named there or editing with his usual (text) editor. In most cases, this will be a choice between using a structured editor or editing the raw data stream. ++The ~e and ~v commands, which are used to edit the message being composed, will behave differently in mailto if the mail includes non-text portions. In such cases, each part will be edited separately, in sequence, which makes it impossible for the user to accidentally mess up the inter-part boundaries. Moreover, if the mailcap entry for a given data type includes an "edit" field, the user will be given the choice of editing with the program named there or editing with his usual (text) editor. In most cases, this will be a choice between using a structured editor or editing the raw data stream. + + .I + Altered behavior for large messages: +@@ -283,7 +283,7 @@ + + .I + New -r command-line option +-The -r comand-line option is not found in standard Berkeley mail. ++The -r command line option is not found in standard Berkeley mail. + + .SH SUMMARY OF OPTIONS + -a -- specifies an alternate character set in use. This had better be the one your terminal is actually using. Currently it must be in the iso-8859 character set family. +--- metamail-2.7.orig/man/metamail.1 ++++ metamail-2.7/man/metamail.1 +@@ -38,6 +38,9 @@ + .B \-e + This option tells metamail to "eat" leading newlines in message bodies. This is particularly useful for MH-format mail. + .TP 8 ++.B \-E ++This option tells metamail to use the specified content transfer encoding rather than the one in the headers, if any. ++.TP 8 + .B \-f

+ This option specifies the name of the sender of the message. Otherwise, this is determined from the header, if possible. This information will be placed in the environment to make it available to any interpreters called by metamail. + .TP 8 +@@ -63,7 +66,7 @@ + This option specifies that it is OK to run as root. By default, metamail refuses to run if the real or effective user id is root. You can get the same effect using the MM_RUNASROOT environment variable. + .TP 8 + .B \-R +-This option specifies that the /usr/ucb/reset should be executed to reset the terminal state, before any other I/O activity. ++This option specifies that the /usr/bin/reset should be executed to reset the terminal state, before any other I/O activity. + .TP 8 + .B \-s + This option specifies the subject of the mail message. By default, this information is obtained from the headers. This information will be placed in the environment to make it available to any interpreters called by metamail. +@@ -105,11 +108,13 @@ + + The default search path is equivalent to + +-$HOME/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap" ++.na ++$HOME/.mailcap:\:/usr/local/etc/mailcap:\:/usr/etc/mailcap:\:/etc/mailcap:\:/etc/mail/mailcap:\:/usr/public/lib/mailcap ++.ad + + It can be overridden by setting the MAILCAPS environment variable. Note: Metamail does not actually interpret environment variables such as $HOME or the "~" syntax in this path search. + +-The format of mailcap files is explained in the manual entry for mailcap(4). ++The format of mailcap files is explained in the manual entry for mailcap(5). + + .SH NON-ASCII HEADER FIELDS + Metamail has rudimentary built-in support for the emerging Internet standards for non-ASCII data in mail headers. What this means is that such data will be recognized, decoded, and sent to the terminal. This behavior may be more or less reasonable, depending on the character set in the header data and the capability of the user's terminal, but it will rarely be any worse than showing such data in its encoded form. +@@ -199,7 +204,7 @@ + .SH FILES + $HOME/.mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap -- default path for mailcap files. + .SH SEE ALSO +-audiocompose(1), audiosend(1), ezview(1), getfilename(1), mailto-hebrew(1), mailto(1), metasend(1), mmencode(1), richtext(1), showaudio(1), showexternal(1), shownonascii(1), showpartial(1), showpicture(1), mailcap(4) ++audiocompose(1), audiosend(1), ezview(1), getfilename(1), mailto-hebrew(1), mailto(1), metasend(1), mimencode(1), richtext(1), showaudio(1), showexternal(1), shownonascii(1), showpartial(1), showpicture(1), mailcap(5) + .SH BUGS + In a multipart/alternative body or body parts, some headers in the embedded part that should be displayed may not be displayed. This will rarely be a problem. Also, in a multipart/alternative, anything of type "multipart" or "message" is considered to be a recognized part, regardless of the recognizability of its contents. This might be a problem, only further experience will tell. + +--- metamail-2.7.orig/man/mmencode.1 ++++ metamail-2.7/man/mmencode.1 +@@ -1,8 +1,6 @@ + .TH MIMENCODE 1 "Release 1" "Bellcore Prototype" + .SH NAME + mimencode - Translate to and from mail-oriented encoding formats +- +-(Same program also installed as "mmencode".) + .SH SYNOPSIS + .ta 8n + \fBmimencode\fP [-u] [-b] [-q] [-p] [file name] [-o outputfile] +@@ -37,8 +35,6 @@ + for mail and news use. The reason is simple: uuencode doesn't work very well in a number of circumstances and ways. In particular, uuencode uses characters that don't translate well across all mail gateways (particularly ASCII <-> EBCDIC gateways). Also, uuencode is not standard -- there are several variants floating around, encoding and decoding things in different and incompatible ways, with no "standard" on which to base an implementation. Finally, uuencode does not generally work well in a pipe, although some variants have been modified to do so. Mimencode implements the encodings which were defined for MIME as uuencode replacements, and should be considerably more robust for email use. + .SH SEE ALSO + metamail(1), mailto(1) +-.SH BUGS +-This program was originally distributed as "mmencode". That name turns out to conflict with a program of the same name that is part of the Slate software from BBN, but totally changing the name to mimencode would create other problems (notably with portability to systems where the left half of file names is limited to 8 characters). Currently, it is being distributed with links under BOTH names. The programs in the distribution that call the program all call it as "mimencode", so the "mmencode" version may be deleted at sites where it causes a problem. (The source files are still named "mmencode" rather than "mimencode".) + .SH COPYRIGHT + Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) + +--- metamail-2.7.orig/man/richtext.1 ++++ metamail-2.7/man/richtext.1 +@@ -6,6 +6,8 @@ + \fBrichtext\fP [ + .B \-c + ] [ ++.B \-e ++] [ + .B \-f + ] [ + .B \-m +@@ -53,6 +55,12 @@ + to just correct the raw richtext and write the corrected version to its + standard output, without performing any formatting. + .TP 8 ++.B \-e ++This option directs ++.I richtext ++to interpret the input as MIME type text/enriched rather than text/richtext. ++The text/enriched format is defined in RFC 1896. ++.TP 8 + .B \-f + This option directs + .I richtext +--- metamail-2.7.orig/man/splitmail.1 ++++ metamail-2.7/man/splitmail.1 +@@ -8,23 +8,24 @@ + .SH DESCRIPTION + The + .I splitmail +-program will take an email message and break it up into smaller pieces using the "message/partial" type defined by MIME, the proposed Internet standard for multimedia mail formats. ++program will take an email message and break it up into smaller pieces using the "message/partial" type defined by MIME(1), the proposed Internet standard for multimedia mail formats. + + By default it will take the message either from standard input or the named file, and will produce a set of partial message files with names like "/tmp/split.1" for the first part, and so on. The prefix "/tmp/split." can be overridden using the "-p" option. + +-If the -d option is specified, the mail will actually be delivered. If -v is specified, the verbose flag will be passed to sendmail. ++If the -d option is specified, the mail will actually be delivered. If -v is specified, the verbose flag will be passed to \fBsendmail\fR(8). + +-The -i option can be used to make splitmail generate the pieces with similar (but not identical) message-id fields, in a format which allows them to be easily correlated with one another and which end with the suffix provided on the command line after -i. ++The -i option can be used to make \fBsplitmail\fR generate the pieces with similar (but not identical) message-id fields, in a format which allows them to be easily correlated with one another and which end with the suffix provided on the command line after -i. + +-The default chunk size for spliting messages is 250000 at most sites, though this is also a compile-time option. This can be overriden with the -s switch, or with the environment variable SPLITSIZE. ++The default chunk size for splitting messages is 250000 at most sites, though this is also a compile-time option. This can be overridden with the -s switch, or with the environment variable SPLITSIZE. + + Messages smaller than the chunk size will not be turned into partial messages, but will be written to a single file or delivered as a single message. + .SH ENVIRONMENT + SPLITSIZE overrides the default chunk size. Setting SPLITSIZE to, say, 4000000 will effectively ensure that your messages are unlikely ever to be split, but it may cause them to be rejected by some mail transport software. + .SH SEE ALSO +-mailto(1), metamail(1) ++.PP ++\fBmailto\fR(1), \fBmetamail\fR(1), \fBMIME\fR(1), \fBmunpack\fR(1) + .SH BUGS +-If the size of the input is just on the fencepost, and if it is coming from a file rather than standard input, splitmail will sometimes estimate the number of parts wrong and will have to write out an extra part. This is harmless but annoying. It is especially annoying if the estimate was 2 but the real number was 1. ++If the size of the input is just on the fencepost, and if it is coming from a file rather than standard input, \fBsplitmail\fR will sometimes estimate the number of parts wrong and will have to write out an extra part. This is harmless but annoying. It is especially annoying if the estimate was 2 but the real number was 1. + .SH COPYRIGHT + Copyright (c) 1992 Bell Communications Research, Inc. (Bellcore) + +--- metamail-2.7.orig/man/patch-metamail.1 ++++ metamail-2.7/man/patch-metamail.1 +@@ -8,7 +8,7 @@ + .SH DESCRIPTION + The + .I patch-metamail +-program will attempt to retreive a patch file for the metamail distribution, using anonymous ftp to a trusted server, and then install that patch in your local copy of the distribution. ++program will attempt to retrieve a patch file for the metamail distribution, using anonymous ftp to a trusted server, and then install that patch in your local copy of the distribution. + + The first two arguments, which are required, are the root directory of your local copy of the metamail source directory, and the patch number. The former is site-dependent, the latter is patch-dependent. + +--- metamail-2.7.orig/man/mailcap.4 ++++ metamail-2.7/man/mailcap.4 +@@ -20,13 +20,9 @@ + + can be used to indicate that the output of the 'cat' command may be voluminous, requiring either a scrolling window, a pager, or some other appropriate coping mechanism. + +-The "type" field (text/plain, in the above example) is simply any legal content type name, as defined by RFC 822. In practice, this is almost any string. It is the string that will be matched against the "Content-type" header (or the value passed in with -c) to decide if this is the mailcap entry that matches the current message. Additionally, the type field may specify a subtype (e.g. "text/ISO-8859-1") or a wildcard to match all subtypes (e.g. "image/*"). ++The "type" field (text/plain, in the above example) is simply any legal content type name, as defined by informational RFC 1524. In practice, this is almost any string. It is the string that will be matched against the "Content-type" header (or the value passed in with -c) to decide if this is the mailcap entry that matches the current message. Additionally, the type field may specify a subtype (e.g. "text/ISO-8859-1") or a wildcard to match all subtypes (e.g. "image/*"). + +-The "command" field is any UNIX command ("cat %s" in the above example), and is used to specify the interpreter for the given type of message. It will be passed to the shell via the system(3) facility. Semicolons and backslashes within the command must be quoted with backslashes. If the command contains "%s", those two characters will be replaced by the name of a file that contains the body of the message. If it contains "%t', those two characters will be replaced by the content-type field, including the subtype, if any. (That is, if the content-type was "image/pbm; opt1=something-else", then "%t" would be replaced by "image/pbm".) If the command field contains "%{" followed by a parameter name and a closing "}", then all those characters will be replaced by the value of the named parameter, if any, from the Content-type header. Thus, in the previous example, "%{opt1}" will be replaced by "something-else". Finally, if the command contains "\%", those two characters will be replaced by a single % ch +- +- +- +-aracter. (In fact, the backslash can be used to quote any character, including itself.) ++The "command" field is any UNIX command ("cat %s" in the above example), and is used to specify the interpreter for the given type of message. It will be passed to the shell via the system(3) facility. Semicolons and backslashes within the command must be quoted with backslashes. If the command contains "%s", those two characters will be replaced by the name of a file that contains the body of the message. If it contains "%t', those two characters will be replaced by the content-type field, including the subtype, if any. (That is, if the content-type was "image/pbm; opt1=something-else", then "%t" would be replaced by "image/pbm".) If the command field contains "%{" followed by a parameter name and a closing "}", then all those characters will be replaced by the value of the named parameter, if any, from the Content-type header. Thus, in the previous example, "%{opt1}" will be replaced by "something-else". Finally, if the command contains "\%", those two characters will be replaced by a single % character. (In fact, the backslash can be used to quote any character, including itself.) + + If no "%s" appears in the command field, then instead of placing the message body in a temporary file, metamail will pass the body to the command on the standard input. This is helpful in saving /tmp file space, but can be problematic for window-oriented applications under some window systems such as MGR. + +--- metamail-2.7.orig/man/uuenpipe.1 ++++ metamail-2.7/man/uuenpipe.1 +@@ -0,0 +1,44 @@ ++.TH UUENPIPE 1 "1998 March 2nd" "METAMAIL" "Debian Linux Manual" ++.SH NAME ++uuenpipe \- uuencode a file ++.SH SYNOPSIS ++.B uuenpipe ++.RI [ filename ] ++.SH "DESCRIPTION" ++This manual page documents briefly the ++.B uuenpipe ++command. ++This manual page was written for the ++.B Debian GNU/Linux ++distribution (but may be used by others), because the original ++program does not have a manual page. ++.PP ++.B uuenpipe ++uuencodes ++.I filename ++(or the standard input if ++.I filename ++were not supplied) and prints the result to the standard output. ++When ++.I filename ++is supplied, ++.B uuenpipe ++acts as if the following command were invoked. ++.IP ++.NF ++uuencode ++.I filename ++.I filename ++.FI ++.LP ++Otherwise, it would act according to the behaviour of the next ++command. ++.IP ++.NF ++uuencode ++.I UUPIPEOUT ++.FI ++.LP ++.SH AUTHOR ++.B uuenpipe ++is part of mm package. Manual page added by Herbert Xu. +--- metamail-2.7.orig/man/uudepipe.1 ++++ metamail-2.7/man/uudepipe.1 +@@ -0,0 +1,24 @@ ++.TH UUDEPIPE 1 "1998 March 2nd" "METAMAIL" "Debian Linux Manual" ++.SH NAME ++uudepipe \- uudecode a file ++.SH SYNOPSIS ++.B uudepipe ++.RI [ filename ] ++.SH "DESCRIPTION" ++This manual page documents briefly the ++.B uudepipe ++command. ++This manual page was written for the ++.B Debian GNU/Linux ++distribution (but may be used by others), because the original ++program does not have a manual page. ++.PP ++.B uudepipe ++uudecodes ++.I filename ++(or the standard input if ++.I filename ++were not supplied) and prints the result to the standard output. ++.SH AUTHOR ++.B uudepipe ++is part of mm package. Manual page added by Herbert Xu. +--- metamail-2.7.orig/man/mailcap.5 ++++ metamail-2.7/man/mailcap.5 +@@ -0,0 +1,69 @@ ++.TH MAILCAP 5 "Release 2" "Bellcore Prototype" ++.SH NAME ++mailcap - metamail capabilities file ++.SH DESCRIPTION ++The ++.I mailcap ++file is read by the ++.I metamail ++program to determine how to display non-text at the local site. ++ ++The syntax of a mailcap file is quite simple, at least compared to termcap files. Any line that starts with "#" is a comment. Blank lines are ignored. Otherwise, each line defines a single mailcap entry for a single content type. Long lines may be continued by ending them with a backslash character, \\. ++ ++Each individual mailcap entry consists of a content-type specification, a command to execute, and (possibly) a set of optional "flag" values. For example, a very simple mailcap entry (which is actually a built-in default behavior for metamail) would look like this: ++ ++text/plain; cat %s ++ ++The optional flags can be used to specify additional information about the mail-handling command. For example: ++ ++text/plain; cat %s; copiousoutput ++ ++can be used to indicate that the output of the 'cat' command may be voluminous, requiring either a scrolling window, a pager, or some other appropriate coping mechanism. ++ ++The "type" field (text/plain, in the above example) is simply any legal content type name, as defined by informational RFC 1524. In practice, this is almost any string. It is the string that will be matched against the "Content-type" header (or the value passed in with -c) to decide if this is the mailcap entry that matches the current message. Additionally, the type field may specify a subtype (e.g. "text/ISO-8859-1") or a wildcard to match all subtypes (e.g. "image/*"). ++ ++The "command" field is any UNIX command ("cat %s" in the above example), and is used to specify the interpreter for the given type of message. It will be passed to the shell via the system(3) facility. Semicolons and backslashes within the command must be quoted with backslashes. If the command contains "%s", those two characters will be replaced by the name of a file that contains the body of the message. If it contains "%t', those two characters will be replaced by the content-type field, including the subtype, if any. (That is, if the content-type was "image/pbm; opt1=something-else", then "%t" would be replaced by "image/pbm".) If the command field contains "%{" followed by a parameter name and a closing "}", then all those characters will be replaced by the value of the named parameter, if any, from the Content-type header. Thus, in the previous example, "%{opt1}" will be replaced by "something-else". Finally, if the command contains "\%", those two characters will be replaced by a single % character. (In fact, the backslash can be used to quote any character, including itself.) ++ ++If no "%s" appears in the command field, then instead of placing the message body in a temporary file, metamail will pass the body to the command on the standard input. This is helpful in saving /tmp file space, but can be problematic for window-oriented applications under some window systems such as MGR. ++ ++Two special codes can appear in the viewing command for objects of type multipart (any subtype). These are "%n" and "%F". %n will be replaced by the number of parts within the multipart object. %F will be replaced by a series of arguments, two for each part, giving first the content-type and then the name of the temporary file where the decoded part has been stored. In addition, for each file created by %F, a second file is created, with the same name followed by "H", which contains the header information for that body part. This will not be needed by most multipart handlers, but it is there if you ever need it. ++ ++The "notes=xxx" field is an uninterpreted string that is used to specify the name of the person who installed this entry in the mailcap file. (The "xxx" may be replaced by any text string.) ++ ++The "test=xxx" field is a command that is executed to determine whether or not the mailcap line actually applies. That is, if the content-type field matches the content-type on the message, but a "test=" field is present, then the test must succeed before the mailcap line is considered to "match" the message being viewed. The command may be any UNIX command, using the same syntax and the same %-escapes as for the viewing command, as described above. A command is considered to succeed if it exits with a zero exit status, and to fail otherwise. ++ ++The "print=xxx" field is a command that is executed to print the data instead of display it interactively. This behavior is usually a consequence of invoking metamail with the "-h" switch. ++ ++The "textualnewlines" field can be used in the rather obscure case where metamail's default rules for treating newlines in base64-encoded data are unsatisfactory. By default, metamail will translate CRLF to the local newline character in decoded base64 output if the content-type is "text" (any subtype), but will not do so otherwise. A mailcap entry with a field of "textualnewlines=1" will force such translation for the specified content-type, while "textualnewlines=0" will guarantee that the translation does not take place even for textual content-types. ++ ++The "compose" field may be used to specify a program that can be used to compose a new body or body part in the given format. Its intended use is to support mail composing agents that support the composition of multiple types of mail using external composing agents. As with the view-command, the compose command will be executed after replacing certain escape sequences starting with "%". In particular, %s should be replaced by the name of a file to which the composed data is to be written by the specified composing program, thus allowing th3e calling program (e.g. metamail) to tell the called program where to store the composed data. If %s does not appear, then the composed data will be assumed to be written by the composing programs to standard output. The result of the composing program may be data that is NOT yet suitable for mail transport -- that is, a Content-Transfer-Encoding may still need to be applied to the data. ++ ++The "composetyped" field is similar to the "compose" field, but is to be used when the composing program needs to specify the Content-type header field to be applied to the composed data. The "compose" field is simpler, and is preferred for use with existing (non-mail-oriented) programs for composing data in a given format. The "composetyped" field is necessary when the Content-type information must include auxilliary parameters, and the composition program must then know enough about mail formats to produce output that includes the mail type information, and to apply any necessary Content-Transfer-Encoding. Conceptually, "compose" specifies a program that simply outputs the specified type of data in its raw form, while "composetyped" specifies a program that outputs the data as a MIME object, with all necessary Content-* headers already in place. ++ ++.TP 8 ++.B needsterminal ++If this flag is given, the named interpreter needs to interact with the user on a terminal. In some environments (e.g. a window-oriented mail reader under X11) this will require the creation of a new terminal emulation window, while in most environments it will not. If the mailcap entry specifies "needsterminal" and metamail is not running on a terminal (as determined by isatty(3), the -x option, and the MM_NOTTTY environment variable) then metamail will try to run the command in a new terminal emulation window. Currently, metamail knows how to create new windows under the X11, SunTools, and WM window systems. ++.TP 8 ++.B copiousoutput ++This flag should be given whenever the interpreter is capable of producing more than a few lines of output on stdout, and does no interaction with the user. If the mailcap entry specifies copiousoutput, and pagination has been requested via the "-p" command, then the output of the command being executed will be piped through a pagination program ("more" by default, but this can be overridden with the METAMAIL_PAGER environment variable). ++.SH BUILT-IN CONTENT-TYPE SUPPORT ++The metamail program has built-in support for a few key content-types. In particular, it supports the text type, the multipart and multipart/alternative type, and the message/rfc822 types. This support is incomplete for many subtypes -- for example, it only supports US-ASCII text in general. This kind of built-in support can be OVERRIDDEN by an entry in any mailcap file on the user's search path. Metamail also has rudimentary built-in support for types that are totally unrecognized -- i.e. for which no mailcap entry or built-in handler exists. For such unrecognized types, metamail will write a file with a "clean" copy of the data -- i.e. a copy in which all mail headers have been removed, and in which any 7-bit transport encoding has been decoded. ++.SH FILES ++$HOME/.mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap -- default path for mailcap files. ++.SH SEE ALSO ++metamail(1) ++.SH COPYRIGHT ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++.SH AUTHOR ++Nathaniel S. Borenstein +--- metamail-2.7.orig/metamail/splitmail.c ++++ metamail-2.7/metamail/splitmail.c +@@ -41,8 +41,8 @@ + #define VERBOSEDELIVERYCMD VerboseDeliveryCmd + #else + extern char *getenv(); +-#define NORMALDELIVERYCMD "/usr/lib/sendmail -t -oi" +-#define VERBOSEDELIVERYCMD "/usr/lib/sendmail -t -v -oi" ++#define NORMALDELIVERYCMD "/usr/sbin/sendmail -t -oi" ++#define VERBOSEDELIVERYCMD "/usr/sbin/sendmail -t -v -oi" + #endif + + usageexit() { +@@ -194,7 +194,7 @@ + s = endofheader(from); /* would be index(from, '\n'), + but need to check for continuation lines */ + *s = '\0'; +- if (ShareThisHeader(from, SubjectBuf, &OrigID)) { ++ if (ShareThisHeader(from, SubjectBuf, sizeof (SubjectBuf), &OrigID)) { + strcat(SharedHeaders, from); + strcat(SharedHeaders, "\n"); + } +@@ -339,9 +339,10 @@ + NULL + }; + +-ShareThisHeader(s, SubjectBuf, OrigID) ++ShareThisHeader(s, SubjectBuf, size, OrigID) + char *s; + char *SubjectBuf; ++size_t size; + char **OrigID; + { + int i; +@@ -361,7 +362,8 @@ + } + if (!ULstrcmp(s, "subject")) { + *colon = ':'; +- strcpy(SubjectBuf, ++colon); ++ strncpy(SubjectBuf, ++colon, size); ++ SubjectBuf[size - 1] = '\0'; + return(0); + } + if (!ULstrcmp(s, "content-type")) { +--- metamail-2.7.orig/metamail/dlist.c ++++ metamail-2.7/metamail/dlist.c +@@ -0,0 +1,176 @@ ++#include "common.h" ++#include "dlist.h" ++ ++/* null structure to easy initializing to NULL */ ++const DList DListNULL = { NULL, NULL }; ++ ++/* create a new dlist node containing data */ ++DListEntry* ++dlist_new(void* data) { ++ DListEntry* new = XMALLOC( DListEntry, 1 ); ++ ++ new->next = NULL; ++ new->prev = NULL; ++ new->data = data; ++ ++ return new; ++} ++ ++/* concatenate two lists */ ++void ++dlist_cat(DList* list1, DList* list2){ ++ list1->tail->next = list2->head; ++ list2->head->prev = list1->tail; ++ list1->tail = list2->tail; ++} ++ ++/* to shorten things a bit in some cases */ ++DListEntry* ++dlist_insertnew(DList* list, void* data, DListEntry* pos) { ++ DListEntry* new = dlist_new( data ); ++ return dlist_insert( list, new, pos ); ++} ++ ++/* can be used to insert an entry at a specific position in a dlist. ++ use with caution on empty list, cause it might fail then. */ ++DListEntry* ++dlist_insert(DList* list, DListEntry* new, DListEntry* pos) { ++ ++ if ( pos ) { // if pos not null, insert ++ new->next = pos->next; ++ pos->next = new; ++ new->prev = pos; ++ } else if( ! list->head && ! list->tail ) { // otherwise treat as empty ++ new->next = NULL; // list ++ new->prev = NULL; ++ list->head = new; ++ } else ++ return NULL; // not an empty list -> error ++ ++ if ( new->next ) // set tail when tail ++ new->next->prev = new; ++ else ++ list->tail = new; ++ ++ return new; ++} ++ ++/* can only be used to append to the end of a list */ ++DListEntry* ++dlist_append(DList* list, DListEntry* new) { ++ if ( list->tail ) { // if list tail exists, then link with it ++ new->next = list->tail->next; ++ list->tail->next = new; ++ } else { ++ new->next = NULL; ++ list->head = new; ++ } ++ ++ new->prev = list->tail; ++ ++ if ( new->next ) // if next is defined, then set its prev value correctly ++ new->next->prev = new; ++ else ++ list->tail = new; ++ ++ return new; ++} ++ ++ ++ ++DListEntry* ++dlist_insert_sort (DList* list, DListEntry* new, dlist_comp cmp) { ++ ++} ++ ++/* retrieves the head of a list */ ++DListEntry* ++dlist_head(DList* list) { ++ DListEntry *help = list->tail; ++ DListEntry *old = NULL; ++ ++ while( help ) { ++ old = help; ++ help = help->prev; ++ } ++ ++ return old; ++} ++ ++/* retrieves the tail of a list */ ++DListEntry* ++dlist_tail(DList* list) { ++ DListEntry *help = list->head; ++ DListEntry *old = NULL; ++ ++ while( help ) { ++ old = help; ++ help = help->next; ++ } ++ ++ return old; ++} ++ ++/* returns the length of the list */ ++size_t ++dlist_length(DList* list){ ++ DListEntry *help = list->head; ++ size_t n; ++ ++ for (n = 0; help; ++n) ++ help = help->next; ++ ++ return n; ++} ++ ++/* removes an entry from the list, and returns it so that it might ++ be destroyed properly */ ++DListEntry* ++dlist_remove(DList* list, DListEntry* entry) { ++ if (entry) { ++ if (entry != list->head) { // when not head ++ if (entry->prev) // and a previous entry exists ++ entry->prev->next = entry->next; // tell the previous our next entry ++ } else ++ list->head = entry->next; // otherwise next entry is head ++ ++ if (entry != list->tail) { // when not tail ++ if (entry->next) // and next entry exists ++ entry->next->prev = entry->prev; // tell the next entry our previous ++ } else ++ list->tail = entry->prev; // otherwise previous is tail ++ } ++ ++ return entry; ++} ++ ++/* checks a list to be ok (debugging) verifies head, tail and prints list */ ++dlist_check( DList* list ) { ++ // should be implemented ++} ++ ++ ++DListEntry* ++dlist_search(DList* list, void* data, dlist_comp cmp) ++{ ++ DListEntry *help = list->head; ++ ++ if (list) { ++ while ( help ) { ++ if ( cmp( data, help->data ) == 0 ) ++ return help; ++ else ++ help = help->next; ++ } ++ } ++ ++ return NULL; ++} ++ ++ ++int ++dlist_strcmp(void* data1, void* data2) ++{ ++ return strcmp( (char*) data1, (char*) data2 ); ++} ++ +--- metamail-2.7.orig/metamail/dlist.h ++++ metamail-2.7/metamail/dlist.h +@@ -0,0 +1,43 @@ ++#ifndef COMMON_LIST_H ++#define COMMON_LIST_H 1 ++ ++#include ++ ++BEGIN_C_DECLS ++ ++typedef int (*dlist_comp) (void*, void*); ++ ++typedef struct dlistentry { ++ struct dlistentry *next; ++ struct dlistentry *prev; ++ void *data; ++} DListEntry; ++ ++typedef struct dlist { ++ DListEntry *head; ++ DListEntry *tail; ++} DList; ++ ++extern const DList DListNULL; ++ ++extern DListEntry *dlist_new (void* data); ++extern void dlist_cat (DList* list1, DList* list2); ++extern DListEntry *dlist_insert_new (DList* list, void* data, ++ DListEntry* pos); ++extern DListEntry *dlist_insert (DList* list, DListEntry* new, ++ DListEntry* pos); ++extern DListEntry *dlist_insert_sort (DList* list, DListEntry* new, ++ dlist_comp cmp); ++extern DListEntry *dlist_append (DList* list, DListEntry* new); ++extern DListEntry *dlist_head (DList* list); ++extern DListEntry *dlist_tail (DList* list); ++extern size_t dlist_length (DList* list); ++extern DListEntry *dlist_remove (DList* list, DListEntry* entry); ++ ++extern DListEntry *dlist_search (DList* list, void* data, dlist_comp cmp); ++ ++extern int dlist_strcmp (void* data1, void* data2); ++ ++END_C_DECLS ++ ++#endif /* !COMMON_LIST_H */ +--- metamail-2.7.orig/metamail/common-h.in ++++ metamail-2.7/metamail/common-h.in +@@ -0,0 +1,162 @@ ++## common-h.in -- Process this file with configure to produce common.h ++## Copyright (C) 2000 Gary V. Vaughan ++## ++## addition and changes that were made are Copyright (C) 2000 Michael Moerz ++## ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2, or (at your option) ++## any later version. ++## ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++## ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++#if TIME_WITH_SYS_TIME ++# include ++# include ++#else ++# if HAVE_SYS_TIME_H ++# include ++# else ++# include ++# endif ++#endif ++ ++#ifndef PARAMS ++# if __STDC__ ++# ifndef NOPROTOS ++# define PARAMS(args) args ++# endif ++# endif ++# ifndef PARAMS ++# define PARAMS(args) () ++# endif ++#endif ++ ++#ifndef EXIT_SUCCESS ++# define EXIT_SUCCESS 0 ++# define EXIT_FAILURE 1 ++#endif ++ ++#ifdef __cplusplus ++# define BEGIN_C_DECLS extern "C" { ++# define END_C_DECLS } ++#else ++# define BEGIN_C_DECLS ++# define END_C_DECLS ++#endif ++ ++#ifdef __GNUC__ ++# ifndef const ++# define const __const ++# endif ++# ifndef signed ++# define signed __signed ++# endif ++# ifndef volatile ++# define volatile __volatile ++# endif ++#else ++# ifdef __STDC__ ++# undef signed ++# define signed ++# undef volatile ++# define volatile ++# endif ++#endif ++ ++#ifdef __STDC__ ++# define STR(x) #x ++# define CONC(x, y) x##y ++ typedef void* sic_ptr; ++#else ++# define STR(x) "x" ++# define CONC(x, y) x/**/y ++ typedef char* sic_ptr; ++#endif ++ ++ ++#define XCALLOC(type, num) ((type *) xcalloc ((num), sizeof(type))) ++#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) ++#define XREALLOC(type, p, num) ((type *) xrealloc ((p), (num) * sizeof(type))) ++#define XFREE(stale) do { \ ++ if (stale) { free ((sic_ptr) stale); stale = 0; } \ ++ } while (0) ++ ++ ++BEGIN_C_DECLS ++ ++extern void *xcalloc (size_t num, size_t size); ++extern void *xmalloc (size_t num); ++extern void *xrealloc (void *p, size_t num); ++extern char *xstrdup (const char *string); ++extern char *xstrerror (int errnum); ++ ++END_C_DECLS ++ ++#if WITH_DMALLOC ++# include ++#endif ++ ++//metamail specific stuff below (this are the additions from Michael Moerz) ++ ++#define RESET_PROGRAM "/usr/bin/reset" ++ ++//#define NO_RLIMITS 1 ++#define sigtype void ++ ++/* This constant should define the ASCII code for newlines on systems where ++ the newline convention is other than CRLF. On UNIX, it is ^J, ASCII 10. ++ Here we define it as '\n' which should be right on MOST systems... */ ++#define NEWLINE_CHAR '\n' ++ ++/* The following defines the default size at which long ++ messages will be split into multiple messages of type ++ "message/partial" by the mailto and splitmail commands, ++ at least. */ ++#ifndef DEFAULT_SPLIT_SIZE ++#define DEFAULT_SPLIT_SIZE 250000 ++#endif ++ ++#define PATH_SEPARATOR ':' ++#ifndef STDPATH ++#define STDPATH "/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap" ++#endif ++ ++/* The following can be set to a directory or colon-separated list of ++ directories that will be prepended to the user's search path before ++ executing any mailcap-derived commands. ++ ++ It should be set to NULL if there are no directories to prepend. ++*/ ++ ++#define AUXPATH NULL ++ ++ ++#define TMPFILE_NAME_SIZE 1000 ++#define MAX_FILE_NAME_SIZE 1000 ++ ++BEGIN_C_DECLS ++ ++extern char **environ, *gets(); ++ ++extern char *getenv(); ++extern char *index(); ++extern char *rindex(); ++ ++extern FILE *popen(); ++ ++END_C_DECLS ++ ++//#ifndef NO_RLIMITS ++//#include ++//#endif ++ ++ ++ +--- metamail-2.7.orig/metamail/xmalloc.c ++++ metamail-2.7/metamail/xmalloc.c +@@ -0,0 +1,38 @@ ++#if HAVE_CONFIG_H ++# include ++#endif ++ ++#include "common.h" ++#include "error.h" ++ ++void * ++xmalloc (size_t num) ++{ ++ void *new = malloc (num); ++ if (!new) ++ metamail_fatal ("Memory exhausted"); ++ return new; ++} ++ ++void * ++xrealloc (void *p, size_t num) ++{ ++ void *new; ++ ++ if (!p) ++ return xmalloc (num); ++ ++ new = realloc (p, num); ++ if (!new) ++ metamail_fatal ("Memory exhausted"); ++ ++ return new; ++} ++ ++void * ++xcalloc (size_t num, size_t size) ++{ ++ void *new = xmalloc (num * size); // is implemented by malloc, cause calloc ++ bzero (new, num * size); // is not available in some older C libs ++ return new; ++} +--- metamail-2.7.orig/metamail/error.c ++++ metamail-2.7/metamail/error.c +@@ -0,0 +1,82 @@ ++#if HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#include "common.h" ++#include "error.h" ++ ++#include /* basename(3) */ ++const char *program_name = NULL; ++ ++static void error PARAMS((int exit_status, const char *mode, ++ const char *message, va_list ap)); ++ ++void ++set_program_name (path) ++ const char *path; ++{ ++ METAMAIL_ASSERT (!program_name); ++ program_name = (char*) xstrdup ( (char*) basename (path)); ++} ++ ++static void ++error (exit_status, mode, message, ap) ++ int exit_status; ++ const char *mode; ++ const char *message; ++ va_list ap; ++{ ++ fprintf (stderr, "%s: %s: ", program_name, mode); ++ vfprintf (stderr, message, ap); ++ fprintf (stderr, ".\n"); ++ ++ if (exit_status >= 0) ++ exit (exit_status); ++} ++ ++void ++#if HAVE_STDARG_H ++metamail_warning (const char *message, ...) ++#else ++metamail_warning (message, va_alist) ++ const char *message; ++ va_dcl ++#endif ++{ ++ va_list ap; ++ VA_START (ap, message); ++ error (-1, "warning", message, ap); ++ va_end (ap); ++} ++ ++void ++#if HAVE_STDARG_H ++metamail_error (const char *message, ...) ++#else ++metamail_error (message, va_alist) ++ const char *message; ++ va_dcl ++#endif ++{ ++ va_list ap; ++ VA_START (ap, message); ++ error (-1, "ERROR", message, ap); ++ va_end (ap); ++} ++ ++void ++#if HAVE_STDARG_H ++metamail_fatal (const char *message, ...) ++#else ++metamail_fatal (message, va_alist) ++ const char *message; ++ va_dcl ++#endif ++{ ++ va_list ap; ++ VA_START (ap, message); ++ error (EXIT_FAILURE, "FATAL", message, ap); ++ va_end (ap); ++} ++ ++ +--- metamail-2.7.orig/metamail/error.h ++++ metamail-2.7/metamail/error.h +@@ -0,0 +1,17 @@ ++#ifndef COMMON_ERROR_H ++#define COMMON_ERROR_H 1 ++ ++#include ++ ++BEGIN_C_DECLS ++ ++extern const char *program_name; ++extern void set_program_name PARAMS((const char *argv0)); ++ ++extern void metamail_warning PARAMS((const char *message, ...)); ++extern void metamail_error PARAMS((const char *message, ...)); ++extern void metamail_fatal PARAMS((const char *message, ...)); ++ ++END_C_DECLS ++ ++#endif /* !COMMON_ERROR_H */ +--- metamail-2.7.orig/metamail/xstrerror.c ++++ metamail-2.7/metamail/xstrerror.c +@@ -0,0 +1,32 @@ ++/* xstrerror.c -- strerror wrapper with bound checking ++ Fri Jun 16 18:30:00 1995 Pat Rankin ++ This code is in the public domain. ++*/ ++ ++#if HAVE_CONFIG_H ++# include ++#endif ++ ++#include "common.h" ++ ++extern char *strerror (); ++ ++/* If strerror returns NULL, we'll format the number into a static buffer. */ ++#define ERRSTR_FMT "undocumented error #%d" ++static char xstrerror_buf[sizeof ERRSTR_FMT + 20]; ++ ++/* Like strerror, but result is never a null pointer. */ ++char * ++xstrerror (int errnum) ++{ ++ char *errstr = strerror (errnum); ++ ++ /* If `errnum' is out of range, result might be NULL. We'll fix that. */ ++ if (!errstr) ++ { ++ sprintf (xstrerror_buf, ERRSTR_FMT, errnum); ++ errstr = xstrerror_buf; ++ } ++ ++ return errstr; ++} +--- metamail-2.7.orig/metamail/stamp-common ++++ metamail-2.7/metamail/stamp-common +@@ -0,0 +1 @@ ++timestamp +--- metamail-2.7.orig/metamail/common.h ++++ metamail-2.7/metamail/common.h +@@ -0,0 +1,203 @@ ++/* -*- Mode: C -*- ++ * -------------------------------------------------------------------- ++ * DO NOT EDIT THIS FILE! It has been automatically generated ++ * from: configure.in and common.h.in ++ * on host: diziet ++ * -------------------------------------------------------------------- ++ */ ++ ++#ifndef METAMAIL_COMMON_H ++#define METAMAIL_COMMON_H 1 ++ ++#include ++#include // ??? ok here ++#include ++#include // ??? ok here ++ ++// ??? following ok here without check? ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++#include ++ ++#ifndef errno ++/* Some sytems #define this! */ ++extern int errno; ++#endif ++ ++#include ++ ++#include ++#ifndef VA_START ++# define VA_START(a, f) va_start(a, f) ++#endif /* VA_START */ ++ ++ ++#include ++#define METAMAIL_ASSERT assert ++ ++ ++#if TIME_WITH_SYS_TIME ++# include ++# include ++#else ++# if HAVE_SYS_TIME_H ++# include ++# else ++# include ++# endif ++#endif ++ ++#ifndef PARAMS ++# if __STDC__ ++# ifndef NOPROTOS ++# define PARAMS(args) args ++# endif ++# endif ++# ifndef PARAMS ++# define PARAMS(args) () ++# endif ++#endif ++ ++#ifndef EXIT_SUCCESS ++# define EXIT_SUCCESS 0 ++# define EXIT_FAILURE 1 ++#endif ++ ++#ifdef __cplusplus ++# define BEGIN_C_DECLS extern "C" { ++# define END_C_DECLS } ++#else ++# define BEGIN_C_DECLS ++# define END_C_DECLS ++#endif ++ ++#ifdef __GNUC__ ++# ifndef const ++# define const __const ++# endif ++# ifndef signed ++# define signed __signed ++# endif ++# ifndef volatile ++# define volatile __volatile ++# endif ++#else ++# ifdef __STDC__ ++# undef signed ++# define signed ++# undef volatile ++# define volatile ++# endif ++#endif ++ ++#ifdef __STDC__ ++# define STR(x) #x ++# define CONC(x, y) x##y ++ typedef void* sic_ptr; ++#else ++# define STR(x) "x" ++# define CONC(x, y) x/**/y ++ typedef char* sic_ptr; ++#endif ++ ++ ++#define XCALLOC(type, num) ((type *) xcalloc ((num), sizeof(type))) ++#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) ++#define XREALLOC(type, p, num) ((type *) xrealloc ((p), (num) * sizeof(type))) ++#define XFREE(stale) do { \ ++ if (stale) { free ((sic_ptr) stale); stale = 0; } \ ++ } while (0) ++ ++ ++BEGIN_C_DECLS ++ ++extern void *xcalloc (size_t num, size_t size); ++extern void *xmalloc (size_t num); ++extern void *xrealloc (void *p, size_t num); ++extern char *xstrdup (const char *string); ++extern char *xstrerror (int errnum); ++ ++END_C_DECLS ++ ++#if WITH_DMALLOC ++# include ++#endif ++ ++//metamail specific stuff below (this are the additions from Michael Moerz) ++ ++#define RESET_PROGRAM "/usr/bin/reset" ++ ++//#define NO_RLIMITS 1 ++#define sigtype void ++ ++/* This constant should define the ASCII code for newlines on systems where ++ the newline convention is other than CRLF. On UNIX, it is ^J, ASCII 10. ++ Here we define it as '\n' which should be right on MOST systems... */ ++#define NEWLINE_CHAR '\n' ++ ++/* The following defines the default size at which long ++ messages will be split into multiple messages of type ++ "message/partial" by the mailto and splitmail commands, ++ at least. */ ++#ifndef DEFAULT_SPLIT_SIZE ++#define DEFAULT_SPLIT_SIZE 250000 ++#endif ++ ++#define PATH_SEPARATOR ':' ++#ifndef STDPATH ++#define STDPATH "/.mailcap:/usr/local/etc/mailcap:/usr/etc/mailcap:/etc/mailcap:/etc/mail/mailcap:/usr/public/lib/mailcap" ++#endif ++ ++/* The following can be set to a directory or colon-separated list of ++ directories that will be prepended to the user's search path before ++ executing any mailcap-derived commands. ++ ++ It should be set to NULL if there are no directories to prepend. ++*/ ++ ++#define AUXPATH NULL ++ ++ ++#define TMPFILE_NAME_SIZE 1000 ++#define MAX_FILE_NAME_SIZE 1000 ++ ++BEGIN_C_DECLS ++ ++extern char **environ, *gets(); ++ ++extern char *getenv(); ++extern char *index(); ++extern char *rindex(); ++ ++extern FILE *popen(); ++ ++END_C_DECLS ++ ++//#ifndef NO_RLIMITS ++//#include ++//#endif ++ ++ ++ ++#define LPRCOMMAND "lp" ++#define LPRTEMPLATE "lp %s" ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define TMPNAME_MAX NAME_MAX ++static struct termio MyTtyStateIn, MyTtyStateOut; ++ ++ ++ ++#endif /* !METAMAIL_COMMON_H */ +--- metamail-2.7.orig/metamail/Makefile.am ++++ metamail-2.7/metamail/Makefile.am +@@ -0,0 +1,27 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir) ++ ++pkginclude_HEADERS = common.h error.h ++ ++lib_LTLIBRARIES = libmetamail.la ++ ++libmetamail_la_SOURCES = error.c dlist.c xmalloc.c xstrerror.c \ ++ xstrdup.c ++ ++common.h: stamp-common ++ @: ++stamp-common: $(srcdir)/common-h.in $(top_builddir)/config.status ++ cd $(top_builddir) \ ++ && CONFIG_FILES= CONFIGHEADERS= CONFIG_OTHER=metamail/common.h \ ++ $(SHELL) ./config.status ++ echo timestamp > $@ ++ ++dist-hook: ++ rm -f $(distdir)/common.h ++ ++ ++ ++ ++ ++ +--- metamail-2.7.orig/metamail/Makefile.in ++++ metamail-2.7/metamail/Makefile.in +@@ -0,0 +1,426 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = .. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir) ++ ++pkginclude_HEADERS = common.h error.h ++ ++lib_LTLIBRARIES = libmetamail.la ++ ++libmetamail_la_SOURCES = error.c dlist.c xmalloc.c xstrerror.c xstrdup.c ++ ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = config.h ++CONFIG_CLEAN_FILES = ++LTLIBRARIES = $(lib_LTLIBRARIES) ++ ++ ++DEFS = @DEFS@ -I. -I$(srcdir) -I. ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++libmetamail_la_LDFLAGS = ++libmetamail_la_LIBADD = ++libmetamail_la_OBJECTS = error.lo dlist.lo xmalloc.lo xstrerror.lo \ ++xstrdup.lo ++CFLAGS = @CFLAGS@ ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ ++HEADERS = $(pkginclude_HEADERS) ++ ++DIST_COMMON = ./stamp-h.in Makefile.am Makefile.in config.h.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++DEP_FILES = .deps/dlist.P .deps/error.P .deps/xmalloc.P .deps/xstrdup.P \ ++.deps/xstrerror.P ++SOURCES = $(libmetamail_la_SOURCES) ++OBJECTS = $(libmetamail_la_OBJECTS) ++ ++all: all-redirect ++.SUFFIXES: ++.SUFFIXES: .S .c .lo .o .obj .s ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign metamail/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++config.h: stamp-h ++ @if test ! -f $@; then \ ++ rm -f stamp-h; \ ++ $(MAKE) stamp-h; \ ++ else :; fi ++stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status ++ cd $(top_builddir) \ ++ && CONFIG_FILES= CONFIG_HEADERS=metamail/config.h \ ++ $(SHELL) ./config.status ++ @echo timestamp > stamp-h 2> /dev/null ++$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/stamp-h.in ++ @if test ! -f $@; then \ ++ rm -f $(srcdir)/stamp-h.in; \ ++ $(MAKE) $(srcdir)/stamp-h.in; \ ++ else :; fi ++$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOHEADER) ++ @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null ++ ++mostlyclean-hdr: ++ ++clean-hdr: ++ ++distclean-hdr: ++ -rm -f config.h ++ ++maintainer-clean-hdr: ++ ++mostlyclean-libLTLIBRARIES: ++ ++clean-libLTLIBRARIES: ++ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) ++ ++distclean-libLTLIBRARIES: ++ ++maintainer-clean-libLTLIBRARIES: ++ ++install-libLTLIBRARIES: $(lib_LTLIBRARIES) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(libdir) ++ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \ ++ $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \ ++ else :; fi; \ ++ done ++ ++uninstall-libLTLIBRARIES: ++ @$(NORMAL_UNINSTALL) ++ list='$(lib_LTLIBRARIES)'; for p in $$list; do \ ++ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ ++ done ++ ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ ++.s.o: ++ $(COMPILE) -c $< ++ ++.S.o: ++ $(COMPILE) -c $< ++ ++mostlyclean-compile: ++ -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) ++ ++clean-compile: ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++maintainer-clean-compile: ++ ++.s.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++.S.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ ++maintainer-clean-libtool: ++ ++libmetamail.la: $(libmetamail_la_OBJECTS) $(libmetamail_la_DEPENDENCIES) ++ $(LINK) -rpath $(libdir) $(libmetamail_la_LDFLAGS) $(libmetamail_la_OBJECTS) $(libmetamail_la_LIBADD) $(LIBS) ++ ++install-pkgincludeHEADERS: $(pkginclude_HEADERS) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(pkgincludedir) ++ @list='$(pkginclude_HEADERS)'; for p in $$list; do \ ++ if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \ ++ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgincludedir)/$$p"; \ ++ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgincludedir)/$$p; \ ++ done ++ ++uninstall-pkgincludeHEADERS: ++ @$(NORMAL_UNINSTALL) ++ list='$(pkginclude_HEADERS)'; for p in $$list; do \ ++ rm -f $(DESTDIR)$(pkgincludedir)/$$p; \ ++ done ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = metamail ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign metamail/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook ++ ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++all-recursive-am: config.h ++ $(MAKE) $(AM_MAKEFLAGS) all-recursive ++ ++install-exec-am: install-libLTLIBRARIES ++install-exec: install-exec-am ++ ++install-data-am: install-pkgincludeHEADERS ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS ++uninstall: uninstall-am ++all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(pkgincludedir) ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-hdr mostlyclean-libLTLIBRARIES \ ++ mostlyclean-compile mostlyclean-libtool \ ++ mostlyclean-tags mostlyclean-depend mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-hdr clean-libLTLIBRARIES clean-compile clean-libtool \ ++ clean-tags clean-depend clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-hdr distclean-libLTLIBRARIES distclean-compile \ ++ distclean-libtool distclean-tags distclean-depend \ ++ distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-hdr \ ++ maintainer-clean-libLTLIBRARIES \ ++ maintainer-clean-compile maintainer-clean-libtool \ ++ maintainer-clean-tags maintainer-clean-depend \ ++ maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ ++mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \ ++clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \ ++uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \ ++distclean-compile clean-compile maintainer-clean-compile \ ++mostlyclean-libtool distclean-libtool clean-libtool \ ++maintainer-clean-libtool uninstall-pkgincludeHEADERS \ ++install-pkgincludeHEADERS tags mostlyclean-tags distclean-tags \ ++clean-tags maintainer-clean-tags distdir mostlyclean-depend \ ++distclean-depend clean-depend maintainer-clean-depend info-am info \ ++dvi-am dvi check check-am installcheck-am installcheck all-recursive-am \ ++install-exec-am install-exec install-data-am install-data install-am \ ++install uninstall-am uninstall all-redirect all-am all installdirs \ ++mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean ++ ++ ++common.h: stamp-common ++ @: ++stamp-common: $(srcdir)/common-h.in $(top_builddir)/config.status ++ cd $(top_builddir) \ ++ && CONFIG_FILES= CONFIGHEADERS= CONFIG_OTHER=metamail/common.h \ ++ $(SHELL) ./config.status ++ echo timestamp > $@ ++ ++dist-hook: ++ rm -f $(distdir)/common.h ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +--- metamail-2.7.orig/metamail/libcommon.la ++++ metamail-2.7/metamail/libcommon.la +@@ -0,0 +1,28 @@ ++# libcommon.la - a libtool library file ++# Generated by ltmain.sh - GNU libtool 1.3.5 (1.385.2.206 2000/05/27 11:12:27) ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. ++ ++# The name that we can dlopen(3). ++dlname='' ++ ++# Names of this library. ++library_names='libcommon.so.0.0.0 libcommon.so.0 libcommon.so' ++ ++# The name of the static archive. ++old_library='libcommon.a' ++ ++# Libraries that this one depends upon. ++dependency_libs='' ++ ++# Version information for libcommon. ++current=0 ++age=0 ++revision=0 ++ ++# Is this an already installed library? ++installed=no ++ ++# Directory that this library needs to be installed in: ++libdir='/usr/lib' +--- metamail-2.7.orig/metamail/config.h.in ++++ metamail-2.7/metamail/config.h.in +@@ -0,0 +1,119 @@ ++/* metamail/config.h.in. Generated automatically from configure.in by autoheader 2.13. */ ++ ++/* Define to empty if the keyword does not work. */ ++#undef const ++ ++/* Define to `unsigned' if doesn't define. */ ++#undef size_t ++ ++/* Define if you have the ANSI C header files. */ ++#undef STDC_HEADERS ++ ++/* Define if you can safely include both and . */ ++#undef TIME_WITH_SYS_TIME ++ ++/* Define if you have the basename function. */ ++#undef HAVE_BASENAME ++ ++/* Define if you have the bcmp function. */ ++#undef HAVE_BCMP ++ ++/* Define if you have the bcopy function. */ ++#undef HAVE_BCOPY ++ ++/* Define if you have the bzero function. */ ++#undef HAVE_BZERO ++ ++/* Define if you have the calloc function. */ ++#undef HAVE_CALLOC ++ ++/* Define if you have the index function. */ ++#undef HAVE_INDEX ++ ++/* Define if you have the initstate function. */ ++#undef HAVE_INITSTATE ++ ++/* Define if you have the kill function. */ ++#undef HAVE_KILL ++ ++/* Define if you have the killpg function. */ ++#undef HAVE_KILLPG ++ ++/* Define if you have the memcmp function. */ ++#undef HAVE_MEMCMP ++ ++/* Define if you have the memcpy function. */ ++#undef HAVE_MEMCPY ++ ++/* Define if you have the memset function. */ ++#undef HAVE_MEMSET ++ ++/* Define if you have the putenv function. */ ++#undef HAVE_PUTENV ++ ++/* Define if you have the rand function. */ ++#undef HAVE_RAND ++ ++/* Define if you have the random function. */ ++#undef HAVE_RANDOM ++ ++/* Define if you have the rindex function. */ ++#undef HAVE_RINDEX ++ ++/* Define if you have the srand function. */ ++#undef HAVE_SRAND ++ ++/* Define if you have the strchr function. */ ++#undef HAVE_STRCHR ++ ++/* Define if you have the strerror function. */ ++#undef HAVE_STRERROR ++ ++/* Define if you have the strrchr function. */ ++#undef HAVE_STRRCHR ++ ++/* Define if you have the vfprintf function. */ ++#undef HAVE_VFPRINTF ++ ++/* Define if you have the header file. */ ++#undef HAVE_ASSERT_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_DLFCN_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_ERRNO_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_SIGNAL_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_STDARG_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_STDLIB_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_STRING_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_STRINGS_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_SYS_TIME_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_TIME_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_UNISTD_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_VARARGS_H ++ ++/* Name of package */ ++#undef PACKAGE ++ ++/* Version number of package */ ++#undef VERSION ++ +--- metamail-2.7.orig/metamail/stamp-h.in ++++ metamail-2.7/metamail/stamp-h.in +@@ -0,0 +1 @@ ++timestamp +--- metamail-2.7.orig/metamail/patchlevel.h ++++ metamail-2.7/metamail/patchlevel.h +@@ -0,0 +1,19 @@ ++/* This is the metamail distribution, version number as given below. ++ ++Version history: ++ ++ Version 1.X was Bellcore-internal and pre-MIME. ++ Version 2.0 was the first MIME-compliant release, also Bellcore-internal. ++ Version 2.1 was the first public release, January 1992. ++ Version 2.2 was the second public release, April 1992. Major changes included: ++ -- Ports to UNIX variants & MS-DOS. ++ -- The new "mailto" program ++ -- Innumerable smaller fixes & enhancements ++ Version 2.3 was the June, 1992 release, with many more patches and ++ enhancements, including a Commodore Amiga port. ++ Version 2.4 was the December, 1992 release, including many bug fixes and a vastly expanded (and now separately packaged) contrib directory. ++ Version 2.5 was the June, 1993 release, with mostly just bug fixes from 2.4. ++ Version 2.6 was the July, 1993 release, with important bug fixes from 2.5. ++ Version 2.7 was the February, 1994 release, mostly bug fixes. ++*/ ++#define MM_VERSTRING "2.7" +--- metamail-2.7.orig/metamail/xstrdup.c ++++ metamail-2.7/metamail/xstrdup.c +@@ -0,0 +1,35 @@ ++/* xstrdup.c -- strdup implementation with out of memory reporting ++ Copyright (C) 2000 Gary V. Vaughan ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++#ifndef WITH_DMALLOC ++ ++#if HAVE_CONFIG_H ++# include ++#endif ++ ++#include "common.h" ++ ++char * ++xstrdup (string) ++ const char *string; ++{ ++ return string ? strcpy (xmalloc (strlen (string) + 1), string) : NULL; ++} ++ ++#endif /* !WITH_DMALLOC */ ++ +--- metamail-2.7.orig/src/metamail/codes.c ++++ metamail-2.7/src/metamail/codes.c +@@ -0,0 +1,432 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++#include ++ ++extern char *index(); ++static char basis_64[] = ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ++ ++static char index_64[128] = { ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63, ++ 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1,-1,-1,-1, ++ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14, ++ 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1, ++ -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40, ++ 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1 ++}; ++ ++#define char64(c) (((c) < 0 || (c) > 127) ? -1 : index_64[(c)]) ++ ++/* ++char64(c) ++char c; ++{ ++ char *s = (char *) index(basis_64, c); ++ if (s) return(s-basis_64); ++ return(-1); ++} ++*/ ++ ++/* the following gets a character, but fakes it properly into two chars if there's a newline character */ ++static int InNewline=0; ++ ++int nextcharin(infile, PortableNewlines) ++FILE *infile; ++int PortableNewlines; ++{ ++ int c; ++ ++#ifndef NEWLINE_CHAR ++ return(getc(infile)); ++#else ++ if (!PortableNewlines) return(getc(infile)); ++ if (InNewline) { ++ InNewline = 0; ++ return(10); /* LF */ ++ } ++ c = getc(infile); ++ if (c == NEWLINE_CHAR) { ++ InNewline = 1; ++ return(13); /* CR */ ++ } ++ return(c); ++#endif ++} ++ ++to64(infile, outfile, PortableNewlines) ++FILE *infile, *outfile; ++int PortableNewlines; ++{ ++ int c1, c2, c3, ct=0; ++ InNewline = 0; /* always reset it */ ++ while ((c1 = nextcharin(infile, PortableNewlines)) != EOF) { ++ c2 = nextcharin(infile, PortableNewlines); ++ if (c2 == EOF) { ++ output64chunk(c1, 0, 0, 2, outfile); ++ } else { ++ c3 = nextcharin(infile, PortableNewlines); ++ if (c3 == EOF) { ++ output64chunk(c1, c2, 0, 1, outfile); ++ } else { ++ output64chunk(c1, c2, c3, 0, outfile); ++ } ++ } ++ ct += 4; ++ if (ct > 71) { ++ putc('\n', outfile); ++ ct = 0; ++ } ++ } ++ if (ct) putc('\n', outfile); ++ fflush(outfile); ++} ++ ++output64chunk(c1, c2, c3, pads, outfile) ++FILE *outfile; ++{ ++ putc(basis_64[c1>>2], outfile); ++ putc(basis_64[((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)], outfile); ++ if (pads == 2) { ++ putc('=', outfile); ++ putc('=', outfile); ++ } else if (pads) { ++ putc(basis_64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)], outfile); ++ putc('=', outfile); ++ } else { ++ putc(basis_64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)], outfile); ++ putc(basis_64[c3 & 0x3F], outfile); ++ } ++} ++ ++PendingBoundary(s, Boundaries, BoundaryCt) ++char *s; ++char **Boundaries; ++int *BoundaryCt; ++{ ++ int i, len; ++ ++ if (s[0] != '-' || s[1] != '-') return(0); ++ ++ ++ for (i=0; i < *BoundaryCt; ++i) { ++ len = strlen(Boundaries[i]); ++ if (!strncmp(s, Boundaries[i], len)) { ++ if (s[len] == '-' && s[len+1] == '-') *BoundaryCt = i; ++ return(1); ++ } ++ } ++ return(0); ++} ++ ++/* If we're in portable newline mode, we have to convert CRLF to the ++ local newline convention on output */ ++ ++static int CRpending = 0; ++ ++#ifdef NEWLINE_CHAR ++almostputc(c, outfile, PortableNewlines) ++int c; ++FILE *outfile; ++int PortableNewlines; ++{ ++ if (CRpending) { ++ if (c == 10) { ++ putc(NEWLINE_CHAR, outfile); ++ CRpending = 0; ++ } else { ++ putc(13, outfile); ++ if (c != 13) { ++ putc(c, outfile); ++ CRpending = 0; ++ } ++ } ++ } else { ++ if (PortableNewlines && c == 13) { ++ CRpending = 1; ++ } else { ++ putc(c, outfile); ++ } ++ } ++} ++#else ++almostputc(c, outfile, PortableNewlines) ++int c; ++FILE *outfile; ++int PortableNewlines; ++{ ++ putc(c, outfile); ++} ++#endif ++ ++from64(infile, outfile, boundaries, boundaryct, PortableNewlines) ++FILE *infile, *outfile; ++char **boundaries; ++int *boundaryct; ++int PortableNewlines; ++{ ++ int c1, c2, c3, c4; ++ int newline = 1, DataDone = 0; ++ ++ /* always reinitialize */ ++ CRpending = 0; ++ while ((c1 = getc(infile)) != EOF) { ++ if (isspace(c1)) { ++ if (c1 == '\n') { ++ newline = 1; ++ } else { ++ newline = 0; ++ } ++ continue; ++ } ++ if (newline && boundaries && c1 == '-') { ++ char Buf[200]; ++ /* a dash is NOT base 64, so all bets are off if NOT a boundary */ ++ ungetc(c1, infile); ++ fgets(Buf, sizeof(Buf), infile); ++ if (boundaries ++ && (Buf[0] == '-') ++ && (Buf[1] == '-') ++ && PendingBoundary(Buf, boundaries, boundaryct)) { ++ return; ++ } ++ fprintf(stderr, "Ignoring unrecognized boundary line: %s\n", Buf); ++ continue; ++ } ++ if (DataDone) continue; ++ newline = 0; ++ do { ++ c2 = getc(infile); ++ } while (c2 != EOF && isspace(c2)); ++ do { ++ c3 = getc(infile); ++ } while (c3 != EOF && isspace(c3)); ++ do { ++ c4 = getc(infile); ++ } while (c4 != EOF && isspace(c4)); ++ if (c2 == EOF || c3 == EOF || c4 == EOF) { ++ fprintf(stderr, "Warning: base64 decoder saw premature EOF!\n"); ++ return; ++ } ++ if (c1 == '=' || c2 == '=') { ++ DataDone=1; ++ continue; ++ } ++ c1 = char64(c1); ++ c2 = char64(c2); ++ almostputc(((c1<<2) | ((c2&0x30)>>4)), outfile, PortableNewlines); ++ if (c3 == '=') { ++ DataDone = 1; ++ } else { ++ c3 = char64(c3); ++ almostputc((((c2&0XF) << 4) | ((c3&0x3C) >> 2)), outfile, PortableNewlines); ++ if (c4 == '=') { ++ DataDone = 1; ++ } else { ++ c4 = char64(c4); ++ almostputc((((c3&0x03) <<6) | c4), outfile, PortableNewlines); ++ } ++ } ++ } ++ if (CRpending) putc(13, outfile); /* Don't drop a lone trailing char 13 */ ++} ++ ++static char basis_hex[] = "0123456789ABCDEF"; ++static char index_hex[128] = { ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1, -1,-1,-1,-1, ++ -1,10,11,12, 13,14,15,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,10,11,12, 13,14,15,-1, -1,-1,-1,-1, -1,-1,-1,-1, ++ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1 ++}; ++ ++/* The following version generated complaints on Solaris. */ ++/* #define hexchar(c) (((c) < 0 || (c) > 127) ? -1 : index_hex[(c)]) */ ++/* Since we're no longer ever calling it with anything signed, this should work: */ ++#define hexchar(c) (((c) > 127) ? -1 : index_hex[(c)]) ++ ++/* ++hexchar(c) ++char c; ++{ ++ char *s; ++ if (islower(c)) c = toupper(c); ++ s = (char *) index(basis_hex, c); ++ if (s) return(s-basis_hex); ++ return(-1); ++} ++*/ ++ ++toqp(infile, outfile) ++FILE *infile, *outfile; ++{ ++ int c, ct=0, prevc=255; ++ while ((c = getc(infile)) != EOF) { ++ if ((c < 32 && (c != '\n' && c != '\t')) ++ || (c == '=') ++ || (c >= 127) ++ /* Following line is to avoid single periods alone on lines, ++ which messes up some dumb smtp implementations, sigh... */ ++ || (ct == 0 && c == '.')) { ++ putc('=', outfile); ++ putc(basis_hex[c>>4], outfile); ++ putc(basis_hex[c&0xF], outfile); ++ ct += 3; ++ prevc = 'A'; /* close enough */ ++ } else if (c == '\n') { ++ if (prevc == ' ' || prevc == '\t') { ++ putc('=', outfile); /* soft & hard lines */ ++ putc(c, outfile); ++ } ++ putc(c, outfile); ++ ct = 0; ++ prevc = c; ++ } else { ++ if (c == 'F' && prevc == '\n') { ++ /* HORRIBLE but clever hack suggested by MTR for sendmail-avoidance */ ++ c = getc(infile); ++ if (c == 'r') { ++ c = getc(infile); ++ if (c == 'o') { ++ c = getc(infile); ++ if (c == 'm') { ++ c = getc(infile); ++ if (c == ' ') { ++ /* This is the case we are looking for */ ++ fputs("=46rom", outfile); ++ ct += 6; ++ } else { ++ fputs("From", outfile); ++ ct += 4; ++ } ++ } else { ++ fputs("Fro", outfile); ++ ct += 3; ++ } ++ } else { ++ fputs("Fr", outfile); ++ ct += 2; ++ } ++ } else { ++ putc('F', outfile); ++ ++ct; ++ } ++ ungetc(c, infile); ++ prevc = 'x'; /* close enough -- printable */ ++ } else { /* END horrible hack */ ++ putc(c, outfile); ++ ++ct; ++ prevc = c; ++ } ++ } ++ if (ct > 72) { ++ putc('=', outfile); ++ putc('\n', outfile); ++ ct = 0; ++ prevc = '\n'; ++ } ++ } ++ if (ct) { ++ putc('=', outfile); ++ putc('\n', outfile); ++ } ++} ++ ++fromqp(infile, outfile, boundaries, boundaryct) ++FILE *infile, *outfile; ++char **boundaries; ++int *boundaryct; ++{ ++ unsigned int c1, c2; ++ int sawnewline = 1, neednewline = 0; ++ /* The neednewline hack is necessary because the newline leading into ++ a multipart boundary is part of the boundary, not the data */ ++ ++ while ((c1 = getc(infile)) != EOF) { ++ if (sawnewline && boundaries && (c1 == '-')) { ++ char Buf[200]; ++ unsigned char *s; ++ ++ ungetc(c1, infile); ++ fgets(Buf, sizeof(Buf), infile); ++ if (boundaries ++ && (Buf[0] == '-') ++ && (Buf[1] == '-') ++ && PendingBoundary(Buf, boundaries, boundaryct)) { ++ return; ++ } ++ /* Not a boundary, now we must treat THIS line as q-p, sigh */ ++ if (neednewline) { ++ putc('\n', outfile); ++ neednewline = 0; ++ } ++ for (s=(unsigned char *) Buf; *s; ++s) { ++ if (*s == '=') { ++ if (!*++s) break; ++ if (*s == '\n') { ++ /* ignore it */ ++ sawnewline = 1; ++ } else { ++ c1 = hexchar(*s); ++ if (!*++s) break; ++ c2 = hexchar(*s); ++ putc(c1<<4 | c2, outfile); ++ } ++ } else { ++#ifdef MSDOS ++ if (*s == '\n') ++ putc('\r', outfile); /* insert CR for binary-mode write */ ++#endif ++ putc(*s, outfile); ++ } ++ } ++ } else { ++ if (neednewline) { ++ putc('\n', outfile); ++ neednewline = 0; ++ } ++ if (c1 == '=') { ++ sawnewline = 0; ++ c1 = getc(infile); ++ if (c1 == '\n') { ++ /* ignore it */ ++ sawnewline = 1; ++ } else { ++ c2 = getc(infile); ++ c1 = hexchar(c1); ++ c2 = hexchar(c2); ++ putc(c1<<4 | c2, outfile); ++ if (c2 == '\n') sawnewline = 1; ++ } ++ } else { ++ if (c1 == '\n') { ++ sawnewline = 1; ++ neednewline = 1; ++ } else { ++ sawnewline = 0; ++ putc(c1, outfile); ++ } ++ } ++ } ++ } ++ if (neednewline) { ++ putc('\n', outfile); ++ neednewline = 0; ++ } ++} +--- metamail-2.7.orig/src/metamail/dlistold.c ++++ metamail-2.7/src/metamail/dlistold.c +@@ -0,0 +1,120 @@ ++// Copyright: Michael Moerz 2000 ++// ++// This program is free software; you can redistribute it and/or modify ++// it under the terms of the GNU General Public License as published by ++// the Free Software Foundation; either version 2 of the License, or ++// (at your option) any later version. ++// ++// This program is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// ++// You should have received a copy of the GNU General Public License with ++// the Debian GNU/Linux distribution in file /usr/share/doc/common-licenses/GPL ++// if not, write to the Free Software Foundation, Inc., 59 Temple Place, ++// Suite 330, Boston, MA 02111-1307 USA ++ ++ ++#include ++#include "dlist.h" ++ ++/* create a new dlist node containing data */ ++DList* ++dlist_new(void* data) { ++ DList* new = malloc( sizeof(DList) * 1 ); ++ ++ new->next = NULL; ++ new->prev = NULL; ++ new->data = data; ++ ++ return new; ++} ++ ++/* concatenate two lists */ ++void ++dlist_cat(DList* tail_l1, DList* head_l2){ ++ tail_l1->next = head_l2; ++ head_l2->prev = tail_l1; ++} ++ ++/* to shorten things a bit in some cases */ ++DList* ++dlist_insertnew(DList** tail, void* data) { ++ DList* new = dlist_new( data ); ++ return dlist_insert( tail, new ); ++} ++ ++/* can also be used to append to a list */ ++DList* ++dlist_insert(DList** tail, DList* new) { ++ if ( (*tail) ) { ++ new->next = (*tail)->next; ++ (*tail)->next = new; ++ new->prev = (*tail); ++ } ++ ++ if ( new->next ) // if next is defined, then set its prev value correctly ++ new->next->prev = new; ++ else ++ (*tail) = new; ++ ++ return new; ++} ++ ++/* retrieves the head of a list */ ++DList* ++dlist_head(DList* head){ ++ DList* old; ++ ++ while( head ) { ++ old = head; ++ head = head->prev; ++ } ++ ++ return old; ++} ++ ++/* retrieves the tail of a list */ ++DList* ++dlist_tail(DList* head){ ++ DList* old; ++ ++ while( head ) { ++ old = head; ++ head = head->next; ++ } ++ ++ return old; ++} ++ ++/* returns the length of the list */ ++size_t ++dlist_length(DList* head){ ++ size_t n; ++ ++ for (n = 0; head; ++n) ++ head = head->next; ++ ++ return n; ++} ++ ++/* removes an entry from the list, and returns it so that it might ++ be destroyed properly */ ++DList* ++dlist_remove(DList** head, DList** tail, DList* entry) { ++ if (entry != (*head)) { // when not head ++ if (entry->prev) // and a previous entry exists ++ entry->prev->next = entry->next; // tell the previous our next entry ++ } else ++ (*head) = entry->next; // otherwise next entry is head ++ ++ if (entry != (*tail)) { // when not tail ++ if (entry->next) // and next entry exists ++ entry->next->prev = entry->prev; // tell the next entry our previous one ++ } else ++ (*tail) = entry->prev; // otherwise previous is tail ++ ++ return entry; ++} ++ +--- metamail-2.7.orig/src/metamail/metamail.c ++++ metamail-2.7/src/metamail/metamail.c +@@ -0,0 +1,2223 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++/****************************************************** ++ Metamail -- A tool to help diverse mail readers ++ cope with diverse multimedia mail formats. ++ ++ Author: Nathaniel S. Borenstein, Bellcore ++ ++ ******************************************************* */ ++ ++#include ++#include ++#include ++ ++#include "metamail.h" ++#include "metamail_default.h" ++#include "environment.h" /* for initializing global variables to default or ++ environment variables and for manipulating ++ environment variables */ ++#include "mailcap.h" /* mailcap file(s) parsing functions */ ++ ++ ++char fileToDelete[NAME_MAX]; ++ ++char *FindParam(); ++ ++FILE *InputFP = NULL; ++ ++/* mike extensions */ ++int nDebug = 0; ++/* exts end */ ++ ++int MightAskBeforeExecuting = 1, ++ DefinitelyNotTty = 0, ++ MustNotBeTty = 0, ++ MaybePageOutput = 0, ++ MustPageOutput = 0, ++ EatLeadingNewlines = 0, ++ PrintSomeHeaders = 1, ++ DoInBackground = 0, ++ Quiet = 0, ++ TransparentMode = 0, ++ DeleteSourceFileWhenDone = 0, ++ Is822Format = 1, ++ DoDebug = 0, ++ CParamsAlloced = 0, ++ CParamsUsed = 0, ++ YankMode = 0, ++ UsingStandardInput = 0, ++ PrintingMode = 0, ++ JustWriteFiles = 0, ++ ProcessingErrors = 0; ++ ++int RunAsRootOK = 0; ++ ++char *ContentType = NULL, ++ *ContentEncoding = NULL, ++ *MailerName = "unknown", ++ *MailSubject = "Mail message", ++ *MailFrom = "unknown sender", ++ *MailSummary = "non-text mail message", ++ *mailheaders = NULL, ++ **CParams = NULL, ++ **CParamValues = NULL, ++ *JunkParameter = NULL; ++ ++int EncodingCode = ENCODING_NONE; ++ ++struct part { ++ char *ctype; ++ char *fname; ++ struct part *next; ++}; ++ ++struct NoAskItem *FirstNoAskItem = NULL, ++ *FirstQuietItem = NULL; ++ ++void PrintHeader(); ++void ConsumeRestOfPart(); ++void ParseContentParameters(); ++ ++sigtype cleanup(); ++ ++char *Cleanse(s) /* no leading or trailing space, all lower case */ ++char *s; ++{ ++ char *tmp, *news; ++ ++ /* strip leading white space */ ++ while (*s && isspace((unsigned char) *s)) ++s; ++ news = s; ++ /* put in lower case */ ++ for (tmp=s; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = ++ tolower((unsigned char) *tmp); ++ } ++ /* strip trailing white space */ ++ while (tmp > news && *--tmp && isspace((unsigned char) *tmp)) *tmp = 0; ++ return(news); ++} ++ ++char *UnquoteString(s) ++char *s; ++{ ++ char *ans, *t; ++ ++ if (*s != '"') return(s); ++ ans = XMALLOC(char, 1+strlen(s)); //malloc(1+strlen(s)); ++ ++s; ++ t = ans; ++ while (*s) { ++ if (*s == '\\') { ++ *t++ = *++s; ++ } else if (*s == '"') { ++ break; ++ } else { ++ *t++ = *s; ++ } ++ ++s; ++ } ++ *t = 0; ++ return(ans); ++} ++ ++sigtype ++cleanup(signum) ++int signum; ++{ ++ RestoreTtyState(); ++ signal(signum, SIG_DFL); ++ kill(getpid(), signum); ++} ++ ++char **Boundaries = NULL; ++int BoundaryCt = 0, BoundaryAlloc = 0; ++struct nextfile { ++ char *filename; ++ struct nextfile *next; ++} *FileQueue=NULL, *LastInQueue = NULL; ++ ++void ++ResetGlobals() { ++ CParamsAlloced = 0; ++ CParamsUsed = 0; ++ ++ ContentType = NULL; ++ ContentEncoding = NULL; ++ MailSubject = "Mail message"; ++ MailFrom = "unknown sender"; ++ MailSummary = "non-text mail message"; ++ initMailHeadersFromEnvironment(); ++ CParams = NULL; ++ CParamValues = NULL; ++ JunkParameter = NULL; ++} ++ ++ ++/** initializes signalhandlers to cleanup function */ ++void ++initSignalHandlers() { ++ signal(SIGINT, cleanup); ++ signal(SIGILL, cleanup); ++ signal(SIGTRAP, cleanup); ++ signal(SIGIOT, cleanup); ++ signal(SIGFPE, cleanup); ++ signal(SIGSEGV, cleanup); ++ signal(SIGTERM, cleanup); ++#ifdef SIGXCPU ++ signal(SIGXCPU, cleanup); ++#endif ++} ++ ++/** the main function for metamail */ ++main(argc, argv) ++int argc; ++char **argv; ++{ ++ int retcode = 0; ++ ++ initSignalHandlers; ++ addToPath(AUXPATH); /* add additional dirs to PATH */ ++ fileToDelete[0] = 0; ++ ++ ProcessArguments(argc, argv); /* calls ExitWithError on error */ ++ ++ if (MaybePageOutput) { ++ /* Want to send stderr to pager too, sigh... */ ++ fflush(stderr); ++ close(2); ++ dup2(1, 2); ++ } ++ ++ retcode = HandleMessage(NULL, 0); ++ if (! UsingStandardInput) { ++ fclose(InputFP); ++ } ++ if (fileToDelete[0]) { ++ RmTmpFileName(fileToDelete); ++ fileToDelete[0] = 0; ++ } ++ ++ while (FileQueue) { ++ InputFP = fopen(FileQueue->filename, "r"); ++ if (DoDebug) printf("Trying to open input file: %s\n", ++ FileQueue->filename); ++ if (!InputFP) ExitWithError("Can't read input file"); ++ if (DeleteSourceFileWhenDone) { ++ strcpy(fileToDelete, FileQueue->filename); ++ } ++ ResetGlobals(); ++ retcode |= HandleMessage(NULL, 0); ++ if (! UsingStandardInput) { ++ fclose(InputFP); ++ } ++ if (fileToDelete[0]) { ++ RmTmpFileName(fileToDelete); ++ fileToDelete[0] = 0; ++ } ++ FileQueue = FileQueue->next; ++ } ++ if (MustPageOutput) PauseForUser(); ++ if (DoDebug) fprintf(stderr, "end of metamail\n"); ++ CleanupTmpFiles(); ++ exit(ProcessingErrors? -1 : retcode); ++} ++ ++void ++QueueNextFile(fname) ++char *fname; ++{ ++ struct nextfile *tmp = XMALLOC( struct nextfile, 1); ++ tmp->filename = fname; ++ tmp->next = NULL; ++ if (FileQueue) { ++ LastInQueue->next = tmp; ++ LastInQueue = tmp; ++ } else { ++ FileQueue = tmp; ++ LastInQueue = tmp; ++ } ++} ++ ++HandleMessage(SquirrelFile, nestingdepth) ++char *SquirrelFile; ++/* SquirrelFile, if non-NULL, is a place to save a recognized body instead of executing it. */ ++int nestingdepth; ++{ ++ char *boundary; ++ int FileWriteOnly = JustWriteFiles; ++ ++ if (FileWriteOnly) { ++ if (!lc2strncmp(ContentType, "message/", 8) ++ || !lc2strncmp(ContentType, "multipart/", 10)) { ++ FileWriteOnly = 0; /* only leaf data */ ++ } ++ } ++ if (Is822Format) { ++ if (Read822Prefix(SquirrelFile?0:1, nestingdepth)) { ++ return -1; ++ } ++ } else /* this property is not recursive for multipart or message */ ++ Is822Format = 1; ++ ++ PrepareMessage(); ++ if (!FileWriteOnly && !ProcessMailcapFiles(SquirrelFile)) return(0); ++ ++ if (!lc2strcmp(ContentType, "message") ++ || !lc2strcmp(ContentType, "message/rfc822")) { ++ if (SquirrelFile) return(SaveSquirrelFile(SquirrelFile)); ++ ContentType = NULL; /* reset default */ ++ ContentEncoding = NULL; /* reset default */ ++ return(HandleMessage(NULL, nestingdepth+1)); /* simple recursion */ ++ } ++ ++ boundary = FindParam("boundary"); ++ if (!boundary) boundary =JunkParameter; /* backward compatibility hack */ ++ if (!lc2strncmp(ContentType, "multipart", 9)) { ++ if (!boundary) { ++ fprintf(stderr, "Warning: No boundary for multipart data, treating as unrecognized format.\n"); ++ } else { ++ char *LineBuf, NewSquirrelFile[TMPNAME_MAX]; ++ char *subtype = NULL; ++ int currct, result, IsAlternative, WroteSquirrelFile, boundarylen; ++ ++ if (SquirrelFile) return(SaveSquirrelFile(SquirrelFile)); ++ if (boundary[0] == '"') { ++ boundary=UnquoteString(boundary); ++ } ++ subtype = index(ContentType, '/'); ++ if (subtype) { ++ ++subtype; ++ subtype = Cleanse(subtype); ++ } else subtype = "mixed"; ++ ++ if (!MaybePageOutput && !DoInBackground) ++ DoInBackground = strcmp(subtype, "parallel") ? 0 : 1; ++ ++ IsAlternative = strcmp(subtype, "alternative") ? 0 : 1; ++ if (IsAlternative) { ++ MkTmpFileName(NewSquirrelFile); ++ WroteSquirrelFile = 0; ++ } ++ LineBuf = XMALLOC(char, LINE_BUF_SIZE); ++ sprintf(LineBuf, "--%s", boundary); ++ strcpy(boundary, LineBuf); ++ boundarylen = strlen(boundary); ++ if (BoundaryCt >= BoundaryAlloc) { ++ BoundaryAlloc += 5; ++ if (Boundaries) ++ Boundaries = XREALLOC(char *, Boundaries, BoundaryAlloc); ++ else ++ Boundaries = XMALLOC(char *, BoundaryAlloc); ++ } ++ Boundaries[BoundaryCt++] = boundary; ++ if (DoDebug) printf("Handling multipart as built-in here. Boundary: %s\n", boundary); ++ while (fgets(LineBuf, LINE_BUF_SIZE, InputFP)) { /* find start */ ++ if (!strncmp(LineBuf, boundary, boundarylen) ++ && ((LineBuf[boundarylen] == '\n') ++ || (LineBuf[boundarylen] == '-' ++ && LineBuf[boundarylen+1] == '-' ++ && LineBuf[boundarylen+2] == '\n'))) { ++ break; ++ } ++ } ++ XFREE(LineBuf); ++ currct = BoundaryCt; ++ while(currct == BoundaryCt) { ++ if (!strcmp(subtype, "digest")) { ++ ContentType = "message/rfc822"; ++ } else { ++ ContentType = NULL; /* reset default */ ++ } ++ ContentEncoding = NULL; /* reset default */ ++ if (IsAlternative) { ++ result = HandleMessage(NewSquirrelFile, nestingdepth+1); ++ } else{ ++ result = HandleMessage(NULL, nestingdepth+1); ++ } ++ if (result) { ++ /* Need to consume the rest of the part */ ++ ConsumeRestOfPart(NULL); ++ } else { ++ ++WroteSquirrelFile; ++ } ++ } ++ /* Now we've seen the last encapsulation boundary, but if there is a "postfix" ++ we must throw it away.*/ ++ if (BoundaryCt > 0) { ++ ConsumeRestOfPart(NULL); ++ } ++ if (IsAlternative) { ++ if (WroteSquirrelFile) { ++ int retcode; ++ char Cmd[TMPNAME_MAX + 15]; ++ sprintf(Cmd, "%s %s", METAMAIL, NewSquirrelFile); ++ fflush(stdout); fflush(stderr); ++ retcode = system(Cmd); ++ RmTmpFileName(NewSquirrelFile); ++ return(retcode); ++ } else { ++ printf("Cannot handle any part of multipart/alternative message\n"); ++ } ++ } ++ return(0); ++ } ++ } /* End of multipart handling */ ++ if (!FileWriteOnly && !TryBuiltIns(SquirrelFile)) return(0); ++ if (!SquirrelFile) { /* Very last resort -- unrecognized types */ ++ char Fname[NAME_MAX], *suggestedname, SugBuf[NAME_MAX]; ++ FILE *fp; ++ int ans = 0, octetstream, ecode=0; ++ int JustMadeTheFile=0; ++ ++ Fname[0] = 0; ++ ++ suggestedname = FindParam("name"); ++ if (!suggestedname) { ++ MkTmpFileName(SugBuf); ++ suggestedname = SugBuf; ++ JustMadeTheFile=1; ++ } ++ if (strlen(suggestedname) > NAME_MAX - 50) ++ suggestedname[NAME_MAX - 50] = '\0'; ++ if (suggestedname[0] == '"') ++ suggestedname=UnquoteString(suggestedname); ++ ++ octetstream = ! lc2strcmp(ContentType, "application/octet-stream"); ++ if (MightAskBeforeExecuting && !DefinitelyNotTty && !MustNotBeTty) { ++ if (FileWriteOnly) { ++ printf("\nThis message contains '%s`-format data.\n", ContentType); ++ } else if (octetstream) { ++ printf("This message contains raw digital data, which can either be viewed as text\nor written to a file.\n"); ++ } else { ++ printf("\nThis message contains data in an unrecognized format, %s,\nwhich can either be viewed as text or written to a file.\n", ContentType); ++ } ++ while (!ans) { ++ if (FileWriteOnly) { ++ ans = 2; ++ } else { ++ printf("\nWhat do you want to do with the %s data?\n1 -- See it as text\n2 -- Write it to a file\n3 -- Just skip it\n4 -- Give another content type\n\n", octetstream ? "raw" : ContentType); ++ fgets(Fname, sizeof(Fname), stdin); ++ ans = atoi(Fname); ++ } ++ switch(ans) { ++ case 1: ++ TranslateInputToOutput(InputFP, stdout, EncodingCode, "text"); ++ return(0); ++ case 2: ++ { ++ int needname = 1; ++ while (needname) { ++ needname = 0; ++ printf("Please enter the name of a file to which the data should be written\n(Default: %s) > ", suggestedname); ++ fflush(stdout); ++ fgets(Fname, sizeof(Fname), stdin); ++ Fname[strlen(Fname) - 1] = '\0'; /* bogus newline */ ++ if (!Fname[0]) ++ strcpy(Fname, suggestedname); ++ ++ if (Fname[0] == '~' && Fname[1] == '/') { ++ char Fname2[NAME_MAX]; ++ int uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (!p) { ++ strcpy( Fname, suggestedname ); ++ printf("Cannot figure out what ~ means, using temporary file %s instead\n", Fname); ++ } else { ++ strcpy(Fname2, p->pw_dir); ++ strcat(Fname2, "/"); ++ strcat(Fname2, Fname + 2); ++ strcpy(Fname, Fname2); ++ } ++ } ++ ++ if ( strcmp( Fname, suggestedname ) ) ++ RmTmpFileName( suggestedname ); ++ else /* remove from tmp list (should persist) */ ++ DelTmpFileName( suggestedname ); ++ ++ ++ if (DoDebug) fprintf(stderr, "pre access"); ++ ++ if (!JustMadeTheFile && access(Fname, F_OK) == 0) { ++ char *s, AnsBuf[50]; ++ int overwriteans = -1; ++ do { ++ printf("File %s exists. Do you want to overwrite it (y/n) ?\n", Fname); ++ s = fgets(AnsBuf, sizeof(AnsBuf), stdin); ++ if (!s) { ++ overwriteans = 0; ++ } else { ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ if (*s == 'y' || *s == 'Y' || !*s || *s == '\n') { ++ overwriteans = 1; ++ } else if (*s == 'n' || *s == 'N' || *s == 'q' || *s == 'Q') { ++ overwriteans=0; ++ } ++ } ++ if (overwriteans == -1) printf("Please answer yes or no.\n"); ++ } while (overwriteans == -1); ++ if (overwriteans == 0) needname = 1; ++ } ++ } ++ } ++ break; ++ case 3: ++ ConsumeRestOfPart(NULL); ++ return(0); ++ break; ++ case 4: ++ { ++ char *savedContentType = ContentType; ++ ContentType = malloc(64); ++ printf("Please enter new content type> "); ++ fflush(stdout); ++ fgets(ContentType, 64, stdin); ++ ContentType[strlen(ContentType) - 1] = '\0'; /* bogus newline */ ++ if (!ProcessMailcapFiles(SquirrelFile)) { ++ free(savedContentType); ++ return(0); ++ } ++ printf("\nNo matching mailcap entry found.\n"); ++ free(ContentType); ++ ContentType = savedContentType; ++ ans = 0; ++ break; ++ } ++ default: ++ ans = 0; ++ break; ++ } ++ } ++ } else { ++ int ct = 0; ++ char *slash = rindex(suggestedname, '/'); ++ if (slash) { ++ ++slash; ++ } else { ++ slash = suggestedname; ++ } ++ do { ++ if (ct) { ++ sprintf(Fname, "%s/%d-%s", tmproot, ct, slash); ++ } else { ++ sprintf(Fname, "%s/%s", tmproot, slash); ++ } ++ ++ct; ++ } while (access(Fname, F_OK) == 0); ++ if (FileWriteOnly) { ++ printf("\nThis message contains '%s`-format data.\n", ContentType); ++ } else if (octetstream) { ++ printf("\nThis message contains raw digital data,"); ++ } else { ++ printf("\nThis message contains data in an unrecognized format, %s,", ContentType); ++ } ++ printf("\nwhich is being decoded and written to the file named \"%s\".\nIf you do not want this data, you probably should delete that file.\n", Fname); ++ } ++ if (Fname[0] == 0 || Fname[0] == '\n') { ++ ConsumeRestOfPart(NULL); ++ } else { ++ fp = fopen(Fname, WRITE_BINARY); ++ if (!fp) ExitWithError("Cannot open temporary file"); ++ TranslateInputToOutput(InputFP, fp, EncodingCode, ContentType); ++ ecode = fclose(fp); ++ if (ecode) { ++ printf("Could not write file %s\n", Fname); ++ } else { ++ printf("Wrote file %s\n", Fname); ++ } ++ } ++ if (!DefinitelyNotTty && MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ return(ecode); ++ } ++ return(-1); /* Unrecognized, really */ ++} ++ ++ProcessArguments(argc, argv) ++int argc; ++char **argv; ++{ ++ int i; ++ char *SourceFileName = NULL; ++ ++ initVarsFromEnvironment(); /* init global vars from environment */ ++ ++ for (i=1; i= argc) usage(); ++ ContentType = XMALLOC(char, 1+strlen(argv[i])); ++ strcpy(ContentType,argv[i]); ++ /* strip leading white space */ ++ while (*ContentType && isspace((unsigned char) *ContentType)) ++ContentType; ++ StripTrailingSpace(ContentType); ++ ParseContentParameters(ContentType); ++ break; ++ case 'd': ++ MightAskBeforeExecuting = 0; ++ break; ++ case 'e': ++ EatLeadingNewlines = 1; ++ break; ++ case 'E': ++ if (++i >= argc) usage(); ++ ContentEncoding = argv[i]; ++ break; ++ case 'f': ++ if (++i >= argc) usage(); ++ MailFrom = argv[i]; ++ break; ++ case 'h': ++ { ++ FILE *tmpfp; ++ PrintingMode = 1; ++ MightAskBeforeExecuting = 0; ++ //#ifdef AMIGA ++ // freopen("prt:", "w", stdout); ++ //#else ++ /* Want to make all of stdout go to printer, and this ++ is easier than changing every output statement, ++ at least on UNIX... */ ++ tmpfp = popen(LPRCOMMAND, "w"); ++ if (!tmpfp) { ++ ExitWithError("Cannot execute lpr command"); ++ } ++ fflush(stdout); ++ close(1); ++ dup2(fileno(tmpfp), 1); ++ //#endif ++ break; ++ } ++ case 'm': ++ if (++i >= argc) usage(); ++ MailerName = argv[i]; ++ break; ++ case 'p': ++ MaybePageOutput = 1; ++ break; ++ case 'P': ++ MaybePageOutput = 1; ++ MustPageOutput = 1; ++ break; ++ case 'r': ++ RunAsRootOK = 1; ++ break; ++ case 'R': ++#ifdef RESET_PROGRAM ++ system(RESET_PROGRAM); ++ if (DoDebug) printf("Executed reset\n"); ++#else ++ fprintf(stderr, "metamail warning: -R flag not supported on this system\n"); ++#endif ++ break; ++ case 's': ++ if (++i >= argc) usage(); ++ MailSubject = argv[i]; ++ break; ++ case 'T': ++ TransparentMode = 0; ++ break; ++ case 'w': ++ JustWriteFiles = 1; ++ break; ++ case 'q': ++ Quiet = 1; ++ PrintSomeHeaders = 0; ++ break; ++ case 'x': ++ DefinitelyNotTty = 1; ++ MustNotBeTty = 1; ++ break; ++ case 'y': ++ YankMode = 1; ++ break; ++ case 'z': ++ DeleteSourceFileWhenDone = 1; ++ break; ++ default: ++ usage(); ++ } ++ } else { ++ if (SourceFileName) { ++ QueueNextFile(argv[i]); ++ } else { ++ SourceFileName = argv[i]; ++ } ++ } ++ } ++ if (TransparentMode) { ++ RunInNewWindow(argv, argc, &SourceFileName); ++ } ++ if (MaybePageOutput && DoInBackground) { ++ MustNotBeTty = 1; ++ /*fprintf(stderr, "metamail: -B is incompatible with -p, -P, and MM_USEPAGER\n"); ++ usage(); */ ++ } ++ if (!Is822Format && !ContentType) { ++ fprintf(stderr, "metamail: -b requires -c.\n"); ++ usage(); ++ } ++ if (DeleteSourceFileWhenDone && !SourceFileName) { ++ fprintf(stderr, "metamail: -z requires -f.\n"); ++ usage(); ++ } ++ if (!RunAsRootOK && (getuid() == 0 || geteuid() == 0)) { ++ fprintf(stderr, "You can not run MetaMail as root unless you use -r or set MM_RUNASROOT.\n"); ++ usage(); ++ } ++ if (SourceFileName) { ++ InputFP = fopen(SourceFileName, "r"); ++ if (DoDebug) printf("Trying to open input file: %s\n", SourceFileName); ++ if (!InputFP) ExitWithError("Can't read input file"); ++ if (DeleteSourceFileWhenDone) { ++ strcpy(fileToDelete, SourceFileName); ++ } ++ } else { /* input on stdin */ ++ UsingStandardInput = 1; ++ if (MustNotBeTty) { ++ InputFP = stdin; ++/* MaybePageOutput = 1; */ /* This messed up safe-tcl -- nsb 9/21/93 */ ++ MightAskBeforeExecuting = 0; ++ } else { ++ int newfd = dup(0); ++ FILE *newfp; ++ if (newfd > 0) { ++ InputFP = fdopen(newfd, "r"); ++ if (InputFP ++ && ((newfp = fopen("/dev/tty", "r")) != NULL) ++ && !dup2(fileno(newfp), 0)) { ++ DefinitelyNotTty = 0; ++ } else { ++ InputFP = stdin; ++ DefinitelyNotTty = 1; ++ MaybePageOutput = 0; ++ } ++ } ++ } ++ } ++ if (DefinitelyNotTty && MaybePageOutput) { ++ RunInNewWindow(argv, argc, &SourceFileName); ++ } ++ if (DefinitelyNotTty) { ++ MaybePageOutput = 0; /* Disable pager if I/O has been redirected */ ++ } ++ return(0); ++} ++ ++usage() { ++ fprintf(stderr, "Usage: metamail [-b] [-B] [-d] [-e] [-h] [-r] [-R] [-p] [-P] [-x] [-y] [-z] [-c content-type] [-E content-transfer-encoding] [-f from-name] [-m mailername] [-s subject] [message-file-name]\n"); ++ ExitWithError(NULL); ++} ++ ++RunInNewWindow(argv, argc, SourceFileNamePtr) ++char **argv, **SourceFileNamePtr; ++int argc; ++{ ++ char *FullCmd, TmpName[TMPNAME_MAX]; ++ int i, createdfile=0; ++ if (!*SourceFileNamePtr) { ++ char *LineBuf; ++ FILE *fptmp; ++ ++ LineBuf = XMALLOC(char, LINE_BUF_SIZE); ++ /* Create it, ugh. Also needs to affect later command. */ ++ MkTmpFileName(TmpName); ++ DelTmpFileName(TmpName); ++ DeleteSourceFileWhenDone = 1; ++ fptmp = fopen(TmpName, WRITE_BINARY); ++ if (!fptmp) ExitWithError("Can't open temporary file\n"); ++ while (fgets(LineBuf, LINE_BUF_SIZE, stdin)) { ++ fputs(LineBuf, fptmp); ++ } ++ XFREE(LineBuf); ++ fclose(fptmp); ++ *SourceFileNamePtr = TmpName; ++ createdfile = 1; ++ } ++ FullCmd = XMALLOC(char, CMDSIZE); ++ if (TransparentMode) { ++ /* In transparent mode, we want to produce stdout that is what we get in, and do EVERYTHING externally in a terminal window. This is to make the truly brain-dead mailers like mailtool happy. I am NOT happy about having to do this. */ ++ /* So, first we copy everything to stdout */ ++ sprintf(FullCmd, CATTEMPLATE, *SourceFileNamePtr); ++ system(FullCmd); /* Cheesy way to do it */ ++ fflush(stdout); fflush(stderr); ++ } ++ /* Then we run ourselves in a terminal window */ ++ MailSummary = "Metamail"; /* for window label */ ++ CreateNewWindowPrefix(FullCmd); ++ strcat(FullCmd, METAMAIL); ++ strcat(FullCmd, " -P "); ++ if (TransparentMode) strcat(FullCmd, "-T "); ++ for (i=1; i 0) PauseForUser(); ++ } ++ if (!resultcode) { ++ XFREE(FullCmd); ++ } else { ++ fprintf(stderr, "Command failed: %s\n", FullCmd); ++ if (MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ ++ProcessingErrors; ++ } ++ } else { ++ /* user does not want to execute command */ ++ if (!DefinitelyNotTty) { ++ RestoreTtyState(); ++ } ++ if (DoDebug) fprintf(stderr, "Not executing command.\n"); ++ if (!PartsWritten) ConsumeRestOfPart(NULL); ++ } ++ if (PartsWritten) { ++ struct part *tp; ++ char HeadFile[NAME_MAX]; ++ ++ while (PartsWritten) { ++ tp=PartsWritten->next; ++ XFREE(PartsWritten->ctype); ++ strcpy(HeadFile, PartsWritten->fname); ++ strcat(HeadFile, "H"); ++ RmTmpFileName(HeadFile); ++ RmTmpFileName(PartsWritten->fname); ++ XFREE(PartsWritten->fname); ++ XFREE(PartsWritten); ++ PartsWritten=tp; ++ } ++ } ++ if (!DefinitelyNotTty) { ++ RestoreTtyState(); ++ } ++ XFREE(cmd); ++ return(0); ++} ++ ++PassesTest(mc) ++struct MailcapEntry *mc; ++{ ++ int result; ++ char *cmd, TmpFileName[TMPNAME_MAX]; ++ ++ if (!mc->testcommand) return(1); ++ MkTmpFileName(TmpFileName); ++ cmd = XMALLOC(char, CMDSIZE); ++ BuildCommand(cmd, mc->testcommand, TmpFileName, NULL, NULL); ++ if (DoDebug) printf("Executing test command: %s\n", cmd); ++ result = system(cmd); ++ XFREE(cmd); ++ return(!result); ++} ++ ++char * ++GetCommand(s, t) ++char *s, **t; ++{ ++ char *s2; ++ int quoted = 0; ++ s2 = XMALLOC(char, strlen(s)*2+1); /* absolute max, if all % signs */ ++ *t = s2; ++ while (s && *s) { ++ if (quoted) { ++ if (*s == '%') *s2++ = '%'; /* Quote through next level, ugh! */ ++ ++ *s2++ = *s++; ++ quoted = 0; ++ } else { ++ if (*s == ';') { ++ *s2 = 0; ++ return(++s); ++ } ++ if (*s == '\\') { ++ quoted = 1; ++ ++s; ++ } else { ++ *s2++ = *s++; ++ } ++ } ++ } ++ *s2 = 0; ++ return(NULL); ++} ++ ++GetMailcapEntry(fp, mc) ++FILE *fp; ++struct MailcapEntry *mc; ++{ ++ int rawentryalloc = 2000, len; ++ char *rawentry, *s, *t, *LineBuf; ++ ++ LineBuf = XMALLOC(char, LINE_BUF_SIZE); ++ rawentry = XMALLOC(char, 1 + rawentryalloc); ++ *rawentry = 0; ++ while (fgets(LineBuf, LINE_BUF_SIZE, fp)) { ++ if (LineBuf[0] == '#') continue; ++ len = strlen(LineBuf); ++ if (len == 0) continue; ++ if (LineBuf[len-1] == '\n') LineBuf[--len] = 0; ++ if ((len + strlen(rawentry)) > rawentryalloc) { ++ rawentryalloc += 2000; ++ rawentry = realloc(rawentry, rawentryalloc+1); ++ } ++ if (LineBuf[len-1] == '\\') { ++ LineBuf[len-1] = 0; ++ strcat(rawentry, LineBuf); ++ } else { ++ strcat(rawentry, LineBuf); ++ break; ++ } ++ } ++ XFREE(LineBuf); ++ for (s=rawentry; *s && isspace((unsigned char) *s); ++s) ; ++ if (!*s) { ++ /* totally blank entry -- quietly ignore */ ++ XFREE(rawentry); ++ return(0); ++ } ++ s = index(rawentry, ';'); ++ if (!s) { ++ fprintf(stderr, "metamail: Ignoring invalid mailcap entry: %s\n", rawentry); ++ XFREE(rawentry); ++ return(0); ++ } ++ *s++ = 0; ++ mc->needsterminal = 0; ++ mc->copiousoutput = 0; ++ mc->needtofree = 1; ++ mc->testcommand = NULL; ++ mc->label = NULL; ++ mc->printcommand = NULL; ++ mc->contenttype = XMALLOC(char, 1+strlen(rawentry)); ++ strcpy(mc->contenttype, rawentry); ++ t = GetCommand(s, &mc->command); ++ if (!t) { ++ XFREE(rawentry); ++ return(1); ++ } ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ s = t; ++ while (s) { ++ char *arg, *eq; ++ ++ t = GetCommand(s, &arg); ++/* if (t) *t++ = 0; */ ++ eq = index(arg, '='); ++ if (eq) *eq++ = 0; ++ if (*arg) { ++ arg = Cleanse(arg); ++ if (!strcmp(arg, "needsterminal")) { ++ mc->needsterminal = 1; ++ } else if (!strcmp(arg, "copiousoutput")) { ++ mc->copiousoutput = 1; ++ } else if (eq && !strcmp(arg, "test")) { ++ mc->testcommand = eq; ++ } else if (eq && !strcmp(arg, "description")) { ++ mc->label = eq; ++ } else if (eq && !strcmp(arg, "label")) { ++ mc->label = eq; /* bogus old name for description */ ++ } else if (eq && !strcmp(arg, "print")) { ++ mc->printcommand = eq; ++ } else if (eq && !strcmp(arg, "textualnewlines")) { ++ ExceptionalNewline(mc->contenttype, atoi(eq)); ++ } else if (strcmp(arg, "notes")) { /* IGNORE notes field */ ++ if (*arg && DoDebug) fprintf(stderr, "metamail: Ignoring mailcap flag: %s\n", arg); ++ } ++ } ++ s = t; ++ } ++ XFREE(rawentry); ++ return(1); ++} ++ ++ExitWithError(txt) ++char *txt; ++{ ++ if (txt) fprintf(stderr, "metamail: %s\n", txt); ++ exit(-1); ++} ++ ++char * ++FreshHeaderCopy(s) ++char *s; ++{ ++ char *t, *newcopy; ++ int len; ++ ++ while (s && *s && isspace((unsigned char) *s) && *s != '\n') ++s; ++ t = index(s, '\n'); ++ while (t && (*(t+1) == ' ' || *(t+1) == '\t')) { ++ t = index(t+1, '\n'); ++ } ++ len = t ? (t-s+1) : (strlen(s)+1); ++ newcopy = XMALLOC(char, len+3); /* two extra bytes for a bizarre bug caused ++ by the fact that FindParam calls ++ FreshHeaderCopy and sometimes tacks on ++ "--". ++ */ ++ strncpy(newcopy, s, len); ++ newcopy[len] = 0; ++ return(newcopy); ++} ++ ++Read822Prefix(PrintHeads, nestingdepth) ++int PrintHeads, nestingdepth; ++{ ++ int SawNewline = 1, bytes = 0, alloced = 1000, HasEncodedChars=0; ++ int c, oldbytes; ++ char *s, *t, *tmp; ++ ++ if (!PrintSomeHeaders) PrintHeads = 0; ++ mailheaders = XMALLOC(char, alloced+1); ++ strcpy(mailheaders, "MM_HEADERS=\n"); ++ bytes = 12; ++yankagain: ++ t = mailheaders + bytes; ++ oldbytes = bytes-1; /* a hack for YankMode */ ++ while ((c = getc(InputFP)) != EOF) { ++ if (++bytes >= alloced) { ++ alloced += 1000; ++ mailheaders = realloc(mailheaders, alloced); ++ t = mailheaders + bytes - 1; ++ } ++ if (c == '\n') { ++ if (SawNewline) break; ++ SawNewline = 1; ++ } else SawNewline = 0; ++ *t++ = c; ++ } ++ *t = 0; ++ --bytes; ++ if (c == EOF) { ++ if (nestingdepth) { ++ fprintf(stderr, "metamail: Incomplete multipart message -- unexpected EOF\n"); ++/* exit(ProcessingErrors); */ ++ } else { ++ if (YankMode) { ++/* ExitWithError("Could not extract a MIME message from the body\n"); */ ++ fprintf(stderr, "metamail: Could not extract a MIME message from the body\n"); ++ } else { ++ fprintf(stderr, "metamail: Could not find end of mail headers.\n"); ++/* ExitWithError("Could not find end of mail headers"); */ ++ } ++ } ++ BoundaryCt=0; ++ return -1; ++ } ++ for (s=mailheaders+oldbytes; *s; ++s) { ++ if (*s == '\n' && (*(s+1) != ' ') && (*(s+1) != '\t')) { ++ if (!ContentType && !lc2strncmp(s, "\ncontent-type:", 14)) { ++ char *dum; ++ ContentType = FreshHeaderCopy(s+14); ++ /* Eliminate white space embedded in content-type */ ++ while (1) { ++ dum = index(ContentType, '/'); ++ if (!dum) break; ++ if (isspace(*(dum-1))) { ++ for (--dum; *dum; ++dum) { ++ *dum = *(dum+1); ++ } ++ } else if (isspace(*++dum)) { ++ for ( ; *dum; ++dum) { ++ *dum = *(dum+1); ++ } ++ } else { ++ break; ++ } ++ } ++ StripTrailingSpace(ContentType); ++ ParseContentParameters(ContentType); ++ if (PrintHeads) maybephead(s+1); ++ } else if (!ContentEncoding && !lc2strncmp(s, "\ncontent-transfer-encoding:", 27)) { ++ ContentEncoding = FreshHeaderCopy(s+27); ++ if (PrintHeads) maybephead(s+1); ++ } else if (!lc2strncmp(s, "\nsubject:", 9)) { ++ if (PrintHeads) maybephead(s+1); ++ MailSubject = FreshHeaderCopy(s+9); ++ } else if (!lc2strncmp(s, "\nfrom:", 6)) { ++ if (PrintHeads) maybephead(s+1); ++ MailFrom = FreshHeaderCopy(s+6); ++ } else if (!lc2strncmp(s, "\ncontent-description:", 4)) { ++ if(PrintHeads) maybephead(s+1); ++ MailSubject = FreshHeaderCopy(s+21); ++ } else { ++ /* Print any with encoded variables */ ++ char *dum = s; ++ while (dum) { ++ dum = index(dum, '?'); ++ if (dum && *++dum == '=') break; ++ } ++ if (dum) { ++ char *nl = s+1; ++ while (nl) { ++ nl = index(nl, '\n'); ++ if (nl && !isspace((unsigned char) *++nl)) break; ++ } ++ if (nl && nl > dum) ++HasEncodedChars; ++ } ++ if (HasEncodedChars) { ++ phead(s+1); ++ } else if (PrintHeads) { ++ maybephead(s+1); ++ } ++ } ++ } ++ } ++ /* Ugly, but effective */ ++ if (YankMode && !ContentType) { ++ goto yankagain; ++ } ++ if (PrintHeads) printf("\n"); ++ if (!ContentType) { ++ ContentType = "text/plain"; ++ CParamsUsed=0; ++ } ++ for (tmp=ContentType; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ return 0; ++} ++ ++PrepareMessage() { ++ int c; ++ ++ EncodingCode = ENCODING_NONE; ++ if (ContentEncoding) { ++ /* strip leading white space */ ++ while (*ContentEncoding && isspace((unsigned char) *ContentEncoding)) ++ContentEncoding; ++ StripTrailingSpace(ContentEncoding); ++ if (!lc2strcmp(ContentEncoding, "base64")) { ++ EncodingCode = ENCODING_BASE64; ++ } else if (!lc2strcmp(ContentEncoding, "quoted-printable")) { ++ EncodingCode = ENCODING_QUOTEDPRINTABLE; ++ } else if (!lc2strncmp (ContentEncoding, "x-uue", 5)) { ++ fprintf (stderr, "WARNING: Using nonstandard %s encoding, trying uuencode algorithm.\n", ContentEncoding); ++ EncodingCode = ENCODING_UUENCODE; ++ } else { ++ if (lc2strcmp(ContentEncoding, "none") ++ && !lc2strcmp(ContentEncoding, "8bit") ++ && !lc2strcmp(ContentEncoding, "7bit")) { ++ fprintf(stderr, "Ignoring unrecognized Content-Transfer-Encoding value: %s\n", ContentEncoding); ++ } ++ } ++ } ++ if (EatLeadingNewlines) { ++ while ((c = getc(InputFP)) != EOF) { ++ if (c != '\n') { ++ ungetc(c, InputFP); ++ break; ++ } ++ } ++ } ++ SetUpEnvironment(); ++} ++ ++SetUpEnvironment() { ++ int i, j, environsize; ++ char **newenviron, *mailervar, *summaryvar, *ctypevar, *s; ++ static char ttyenv[15], debugenv[15], *noaskenv, pagerenv[15], *quietenv, rootenv[25]; ++ ++ /* Hack to make the code look similar for unix & dos */ ++#define putenv(var) newenviron[i++] = var; ++ for (environsize=0; environ[environsize]; ++environsize) { ++ ; ++ } ++ newenviron = XMALLOC(char *, 17+environsize); ++ mailervar = XMALLOC(char, 13+strlen(MailerName)); ++ sprintf(mailervar, "MM_MAILER=%s", MailerName); ++ summaryvar = XMALLOC(char, 26 + strlen(MailFrom) + strlen(MailSubject)); ++ sprintf(summaryvar, "MM_SUMMARY=%s (from %s)", MailSubject, MailFrom); ++ MailSummary = summaryvar+11; ++ EliminateNastyChars(MailSummary); ++ i = 0; ++ if (ContentType) { ++ int ctypelen = 22+strlen(ContentType); ++ for (j=0; j\"", *s)) continue; ++ if (*s == '\'' || *s == '`') { ++ *s = '"'; ++ } else { ++ *s = ' '; ++ } ++ } ++} ++ ++StripTrailingSpace(s) ++char *s; ++{ ++ char *t = s+strlen(s) -1; ++ while (isspace((unsigned char) *t) && (t >= s)) *t-- = 0; ++} ++ ++static char *KeyHeads=NULL; ++static char **KeyHeadList; ++static int KeyKeep = 0; ++ ++void setKeyHeads() ++{ ++ char *s; ++ int numkeys = 0; ++ ++ if ((KeyHeads = getenv("KEYHEADS")) != 0) { ++ for (s=KeyHeads;*s;++s) if (isupper((unsigned char) *s)) *s=tolower((unsigned char) *s); ++ } else if ((KeyHeads = getenv("KEYIGNHEADS")) != 0) { ++ for (s=KeyHeads;*s;++s) if (isupper((unsigned char) *s)) *s=tolower((unsigned char) *s); ++ KeyKeep = 1; ++ } else { ++ static char khtmp[] = "to:cc:subject:from:content-description:date"; ++ KeyHeads = khtmp; ++ } ++ for (s=KeyHeads; *s; ++s) if (*s == ':') ++numkeys; ++ numkeys += 2; ++ KeyHeadList = XMALLOC(char *, numkeys); ++ numkeys = 0; ++ KeyHeadList[0] = KeyHeads; ++ for(s=KeyHeads; *s; ++s) { ++ if (*s == ':') { ++ *s = '\0'; ++ KeyHeadList[++numkeys] = s+1; ++ } ++ } ++ KeyHeadList[++numkeys] = NULL; ++} ++ ++/* find the first colon in a header line which appears before any spaces or control characters */ ++char * ++findcolon(hdr) ++char *hdr; ++{ ++ while (*hdr && !isspace(*hdr) && !iscntrl(*hdr)) ++ if (*hdr == ':') return hdr; ++ else hdr++; ++ return 0; ++} ++ ++/* check the header given to see if it matches any in the KeyHeadList */ ++maybephead(hdr) ++char *hdr; ++{ ++ char *s; ++ int numkeys=0; ++ ++ if (!KeyHeads) setKeyHeads(); ++ ++ s = findcolon(hdr); ++ if (s) { ++ int len = s - hdr; ++ for (numkeys=0; KeyHeadList[numkeys]; ++numkeys) { ++ if (!strcmp(KeyHeadList[numkeys], "*") ++ || !lc2strncmp(hdr, KeyHeadList[numkeys], len)) { ++ if (!KeyKeep) phead(hdr); ++ return; ++ } ++ } ++ if (KeyKeep) phead(hdr); ++ return; ++ } ++ if (!strncmp(hdr, "From ", 5) || !strncmp(hdr, ">From ", 6)) { ++ for (numkeys = 0; KeyHeadList[numkeys]; ++numkeys) { ++ if (!strcmp(KeyHeadList[numkeys], "*") ++ || !lc2strncmp(">from", KeyHeadList[numkeys], 5)) { ++ if (!KeyKeep) phead(hdr); ++ return; ++ } ++ } ++ if (KeyKeep) phead(hdr); ++ } ++} ++ ++/* This next routine prints out a mail header, and needs to deal with the new extended charset headers. */ ++phead(s) ++char *s; ++{ ++ char *t = s; ++ ++ while (1) { ++ t = index(t, '\n'); ++ if (!t) break; ++ if (!isspace((unsigned char) *(t+1))) { ++ *t = 0; ++ break; ++ } else ++t; ++ } ++ PrintHeader(s, 1); ++ printf("\n"); ++ if (t) *t = '\n'; ++} ++ ++static char PrevCharset[100] = "us-ascii"; ++ ++/* This is the part that actually handles the charset issues */ ++void PrintHeader(s, ShowLeadingWhitespace) ++char *s; ++int ShowLeadingWhitespace; ++{ ++ char *charset, *encoding, *txt, *txtend, TmpFile[TMPNAME_MAX]; ++ int ecode = ENCODING_NONE, CorrectedCharset = 0; ++ FILE *fp; ++ ++ while (*s && (*s != '=')) { ++ if (isspace((unsigned char) *s)) { ++ if (ShowLeadingWhitespace) { ++ putchar(' '); ++ } ++ } else { ++ putchar(*s); ++ if (!CorrectedCharset) { ++ CorrectedCharset = 1; ++ strcpy(PrevCharset, "us-ascii"); ++ } ++ } ++ if (!ShowLeadingWhitespace) { ++ /* Only at most one leading space is ignored */ ++ ShowLeadingWhitespace = 1; ++ } ++ ++s; ++ } ++ if (!*s) return; ++ if (*(s+1) != '?') { ++ putchar('='); ++ PrintHeader(++s, 1); ++ return; ++ } ++ charset = s+2; ++ encoding = index(charset, '?'); ++ if (!encoding) { ++ putchar('='); ++ PrintHeader(++s,1); ++ return; ++ } ++ txt = index(encoding+1, '?'); ++ if (!txt) { ++ putchar('='); ++ PrintHeader(++s, 1); ++ return; ++ } ++ txtend = txt; ++ do { ++ txtend = index(txtend+1, '?'); ++ } while(txtend && (*(txtend+1) != '=')); ++ if (!txtend) { ++ putchar('='); ++ PrintHeader(++s, 1); ++ } ++ /* Proper parse! Ready to dissect... */ ++ *encoding = 0; ++ *txt = 0; ++ *txtend = 0; ++ if ((*(encoding+1) == 'q') || (*(encoding+1) == 'Q')) { ++ ecode = ENCODING_QUOTEDPRINTABLE; ++ } else if ((*(encoding+1) == 'b') || (*(encoding+1) == 'B')) { ++ ecode = ENCODING_BASE64; ++ } else { ++ fprintf(stderr, "Bad encoding value in non-ASCII header string: %s\n", encoding+1); ++ } ++ if (lc2strcmp(charset, PrevCharset)) { ++ char *s2, *charsetinuse; ++ ++ strncpy(PrevCharset, charset, sizeof(PrevCharset)); ++ PrevCharset[sizeof(PrevCharset) - 1] = '\0'; ++ for (s2=PrevCharset; *s2; ++s2) { ++ if (isupper((unsigned char) *s2)) *s2 = tolower((unsigned char) *s2); ++ } ++ charsetinuse = getenv("MM_CHARSET"); ++ if (!charsetinuse || lc2strcmp(charsetinuse, PrevCharset)) { ++ printf("[** %s charset **] ", charset); ++ } ++ } ++ if (ecode == ENCODING_NONE) { ++ printf("%s", txt+1); ++ } else { ++ /* What follows is REALLY bogus, but all my encoding stuff is pipe-oriented right now... */ ++ MkTmpFileName(TmpFile); ++ fp = fopen(TmpFile, WRITE_BINARY); ++ if (!fp) { ++ fprintf(stderr, "Could not open temporary file\n"); ++ } else { ++ char *t; ++ for (t=txt+1; *t; ++t) { ++ if (*t == '_') { ++ putc(' ', fp); ++ } else if (*t == '\n') { ++ putc(' ', fp); ++ } else { ++ putc(*t, fp); ++ } ++ } ++ fclose(fp); ++ fp = fopen(TmpFile, "r"); ++ if (!fp) { ++ fprintf(stderr, "Could not open temporary file\n"); ++ } else { ++ TranslateInputToOutput(fp, stdout, ecode, "text"); ++ fclose(fp); ++ } ++ RmTmpFileName(TmpFile); ++ } ++ } ++ *encoding = '?'; ++ *txt = '?'; ++ *txtend = '?'; ++ PrintHeader(txtend + 2, 0); ++} ++ ++BuildCommand(Buf, controlstring, TmpFileName, UsedTmpFileName, PartsWritten) ++char *Buf, *controlstring, *TmpFileName; ++int *UsedTmpFileName; ++struct part **PartsWritten; ++{ ++ char *from, *to, *s, *p, *tmp; ++ int prefixed = 0, UsedBigFile=0, UsedLittleFiles=0, numparts=0; ++ struct part *firstpart=NULL, *thispart=NULL, *tmppart=NULL; ++ ++ if (UsedTmpFileName) *UsedTmpFileName = 0; ++ if (PartsWritten) *PartsWritten = NULL; ++ for (from=controlstring, to=Buf; *from; ++from) { ++ if (prefixed) { ++ prefixed = 0; ++ switch(*from) { ++ case '%': ++ *to++ = '%'; ++ break; ++ case 'n': ++ case 'F': ++ if (!PartsWritten) { ++ fprintf(stderr, "metamail: Bad mailcap \"test\" clause: %s\n", controlstring); ++ ExitWithError("%%n and %%F may not be used in \"test\" clauses. Execution terminated."); ++ } ++ if (UsedBigFile) { ++ fprintf(stderr, "metamail: Bad mailcap entry: %s\n", controlstring); ++ ExitWithError("%%n and %%F are incompatible with %%s. Execution terminated."); ++ } ++ if (!UsedLittleFiles) { ++ /* Set up parts */ ++ char *LineBuf, *boundary, TmpFileNameBuf[TMPNAME_MAX]; ++ char *oldct, *oldce, *newct; ++ int currct, boundarylen, newctlen, j; ++ int oldcparmsused, oldcparamsalloced; ++ char **oldcparams, **oldcparamvalues; ++ FILE *headfp; ++ ++ LineBuf = XMALLOC(char, LINE_BUF_SIZE); ++ boundary = FindParam("boundary"); ++ if (!boundary) { ++ fprintf(stderr, "Bad message format: This multipart message has no boundary parameter,\n"); ++ fprintf(stderr, "but the mailcap entry for %s uses %%F or %%n.\n\n", ContentType); ++ ExitWithError("A change to the mailcap file might make this message viewable."); ++ } ++ if (boundary[0] == '"') { ++ boundary=UnquoteString(boundary); ++ } ++ sprintf(LineBuf, "--%s", boundary); ++ strcpy(boundary, LineBuf); ++ boundarylen = strlen(boundary); ++ if (BoundaryCt >= BoundaryAlloc) { ++ BoundaryAlloc += 5; ++ if (Boundaries) { ++ Boundaries = XREALLOC(char *, Boundaries, ++ BoundaryAlloc); ++ } else { ++ Boundaries = XMALLOC(char *, BoundaryAlloc); ++ } ++ } ++ Boundaries[BoundaryCt++] = boundary; ++ while (fgets(LineBuf, LINE_BUF_SIZE, InputFP)) { /* find start */ ++ if (!strncmp(LineBuf, boundary, boundarylen) ++ && ((LineBuf[boundarylen] == '\n') ++ || (LineBuf[boundarylen] == '-' ++ && LineBuf[boundarylen+1] == '-' ++ && LineBuf[boundarylen+2] == '\n'))) { ++ break; ++ } ++ } ++ XFREE(LineBuf); ++ currct = BoundaryCt; ++ oldct=ContentType; ++ oldce=ContentEncoding; ++ oldcparmsused = CParamsUsed; ++ oldcparamsalloced = CParamsAlloced; ++ oldcparams = CParams; ++ oldcparamvalues = CParamValues; ++ CParams = NULL; ++ CParamValues = NULL; ++ CParamsUsed = 0; ++ CParamsAlloced = 0; ++ while(currct == BoundaryCt) { ++ tmppart = XMALLOC(struct part, 1); ++ if (firstpart) { ++ thispart->next = tmppart; ++ thispart = tmppart; ++ } else { ++ firstpart = thispart = tmppart; ++ } ++ tmppart->next = NULL; ++ ContentType=NULL; ++ ContentEncoding=NULL; ++ Read822Prefix(0,0); ++ PrepareMessage(); ++ newctlen=5+strlen(ContentType); ++ for (j=0; jctype = newct; ++ MkTmpFileName(TmpFileNameBuf); ++ thispart->fname = XMALLOC(char, ++ 1+strlen(TmpFileNameBuf)); ++ strcpy(thispart->fname, TmpFileNameBuf); ++ WriteTmpFile(thispart->fname, thispart->ctype); ++ strcat(TmpFileNameBuf, "H"); ++ headfp = fopen(TmpFileNameBuf, "w"); ++ if (headfp) { ++ fputs(mailheaders+12, headfp); ++ /* The +12 gets rid of MM_HEADERS=\n */ ++ fclose(headfp); ++ } ++ ++numparts; ++ } ++ ContentType=oldct; ++ ContentEncoding=oldce; ++ CParamsUsed = oldcparmsused; ++ CParamsAlloced = oldcparamsalloced; ++ CParams = oldcparams; ++ CParamValues = oldcparamvalues; ++ /* Now we've seen the last encapsulation boundary, but if there is a "postfix" ++ we must throw it away.*/ ++ if (BoundaryCt > 0) { ++ ConsumeRestOfPart(NULL); ++ } ++ *PartsWritten = firstpart; ++ UsedLittleFiles=1; ++ } ++ if (*from == 'n') { ++ char numbuf[10]; ++ sprintf(numbuf, "%d", numparts); ++ strcpy(to, numbuf); ++ to += strlen(numbuf); ++ } else { /* %F */ ++ for (tmppart = firstpart; tmppart != NULL; tmppart = tmppart->next) { ++ sprintf(to, "%s %s ", tmppart->ctype, tmppart->fname); ++ to += (strlen(tmppart->ctype) + strlen(tmppart->fname) + 2); ++ } ++ } ++ break; ++ case 's': ++ if (UsedLittleFiles) { ++ fprintf(stderr, "metamail: Bad mailcap entry: %s\n", controlstring); ++ ExitWithError("%%n and %%F are incompatible with %%s. Execution terminated."); ++ } ++ if (TmpFileName) { ++ strcpy(to, TmpFileName); ++ to += strlen(TmpFileName); ++ if (UsedTmpFileName) ++(*UsedTmpFileName); ++ } ++ UsedBigFile = 1; ++ break; ++ case '{': ++ s = index(from, '}'); ++ if (!s) { ++ fprintf(stderr, "Ignoring ill-formed parameter reference in mailcap file: %s\n", from); ++ break; ++ } ++ ++from; ++ *s = 0; ++ /* put in lower case */ ++ for (tmp=from; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ p = FindParam(from); ++ if (p && p[0] == '"') { ++ p=UnquoteString(p); ++ } ++ if (!p) p = ""; ++ *to++ = '\''; ++ strcpynoquotes(to, p); ++ to += strlen(p); ++ *to++ = '\''; ++ *s = '}'; /* restore */ ++ from = s; ++ break; ++ case 't': ++ /* type/subtype */ ++ strcpynoquotes(to, ContentType); ++ to += strlen(ContentType); ++ break; ++ default: ++ fprintf(stderr, "Ignoring unrecognized format code in mailcap file: %%%c\n", *from); ++ break; ++ } ++ } else if (*from == '%') { ++ prefixed = 1; ++ } else { ++ *to++ = *from; ++ } ++ } ++ *to = 0; ++} ++ ++strcpynoquotes(t,f) ++char *t, *f; ++{ ++ static char *badchars="|<>%*?\"`'"; ++ ++ while (*f) { ++ if (index(badchars, *f)) *t++ = ' '; else *t++ = *f; ++ ++f; ++ } ++} ++ ++WriteTmpFile(fname, ctype) ++char *fname; ++char *ctype; ++{ ++ FILE *fpout; ++ int retval = 0; ++ ++ fpout = fopen(fname, WRITE_BINARY); ++ if (!fpout) { ++ perror("WriteTmpFile"); ++ metamail_fatal("Can't create temporary file: ", fname); ++ } ++ TranslateInputToOutput(InputFP, fpout, EncodingCode, ctype); ++ if (ftell(fpout) == 0) retval = 1; ++ if (fclose(fpout)) ExitWithError("Can't write temporary file"); ++ return(retval); ++} ++ ++ ++TranslateInputToOutput(InputFP, OutputFP, Ecode, ctype) ++FILE *InputFP, *OutputFP; ++int Ecode; ++char *ctype; ++{ ++ int InMultipart = BoundaryCt > 0 ? 1 : 0; ++ ++ switch(Ecode) { ++ case ENCODING_BASE64: ++ from64(InputFP, OutputFP, InMultipart ? Boundaries : NULL, &BoundaryCt, DoesNeedPortableNewlines(ctype)); ++ break; ++ case ENCODING_QUOTEDPRINTABLE: ++ fromqp(InputFP, OutputFP, InMultipart ? Boundaries : NULL, &BoundaryCt); ++ break; ++ case ENCODING_UUENCODE: ++ fromuue(InputFP, OutputFP, InMultipart ? Boundaries: NULL, &BoundaryCt); ++ break; ++ default: ++ ConsumeRestOfPart(OutputFP); ++ } ++ if (UsingStandardInput && feof(InputFP) && !freopen("/dev/tty", "r", stdin)) { ++ fprintf(stderr, "Warning: Cannot freopen /dev/tty to stdin"); ++ } else InputFP = stdin; ++} ++ ++CreateNewWindowPrefix(Prefix) ++char *Prefix; ++{ ++ char *override = getenv("TERMINAL_CMD"); ++ if (override) { ++ strcpy(Prefix, override); ++ } else if (getenv("DISPLAY")) { ++ /* X11 */ ++ strcpy(Prefix, "xterm -title '"); ++ strcat(Prefix, MailSummary); ++ strcat(Prefix, "' -e "); ++ } else if (getenv("WINDOW_PARENT")) { ++ /* SunView */ ++ strcpy(Prefix, "shelltool "); ++ } else if (getenv("WMHOST")) { ++ /* old Andrew WM */ ++ strcpy(Prefix, "h19 "); ++ } else { ++ /* last resort is to look for /dev/tty */ ++ if (!freopen("/dev/tty", "r", stdin)){ ++ ExitWithError("Don't know how to create a terminal window"); ++ } ++ InputFP = stdin; ++ fprintf(stderr, "Warning, reopened /dev/tty, could be strange.\n"); ++ Prefix[0] = 0; ++ } ++} ++ ++int HasSavedTtyState=0; ++ ++SaveTtyState() { ++ /* Bogus -- would like a good portable way to reset the terminal state here */ ++ ioctl(fileno(stdin), TCGETA, &MyTtyStateIn); ++ ioctl(fileno(stdout), TCGETA, &MyTtyStateOut); ++ ++ HasSavedTtyState = 1; ++ } ++ ++RestoreTtyState() { ++ if (HasSavedTtyState) { ++ ioctl(fileno(stdout), TCSETA, &MyTtyStateOut); ++ ioctl(fileno(stdin), TCSETA, &MyTtyStateIn); ++ } ++} ++ ++NeedToAskBeforeExecuting(type) ++char *type; ++{ ++ struct NoAskItem *nai; ++ if (!MightAskBeforeExecuting || DoInBackground) return(0); ++ for (nai = FirstNoAskItem; nai; nai = nai->next) { ++ if (CtypeMatch(type, nai->type)) return(0); ++ } ++ return(1); ++} ++ ++NeedToBeQuiet(cmd) ++char *cmd; ++{ ++ struct NoAskItem *nai; ++ for (nai = FirstQuietItem; nai; nai = nai->next) { ++ if (!lc2strcmp(nai->type, cmd)) return(1); ++ } ++ return(0); ++} ++ ++CtypeMatch(ctype, pat) ++char *ctype, *pat; ++{ ++ int len; ++ char pat2[200]; ++ ++ if (!lc2strcmp(ctype, pat)) { ++ return(1); /* exact match, case-insensitive */ ++ } ++ if (index(pat, '/') == NULL) { ++ /* implicit wildcard */ ++ strcpy(pat2, pat); ++ strcat(pat2, "/*"); ++ pat = pat2; ++ } ++ len = strlen(pat); ++ if ((pat[--len] == '*') ++ && (pat[--len] == '/') ++ && (!lc2strncmp(ctype, pat, len)) ++ && ((ctype[len] == '/') || (ctype[len] == '\0'))){ ++ /* wildcard match */ ++ return(1); ++ } ++ return(0); ++} ++ ++ExecuteCommand(cmd, really) ++char *cmd; ++int really; ++{ ++ int code; ++ if (!Quiet || DoDebug) { ++ if (!NeedToBeQuiet(ShortCommand(cmd))) { ++ printf("---Executing: %s\n", DoDebug ? cmd : ShortCommand(cmd)); ++ } else if (EatLeadingNewlines) { ++ printf("\n"); ++ } ++ fflush(stdout); ++ } ++ if (really) { ++ fflush(stdout); fflush(stderr); ++ code = system(cmd); ++ if (DoDebug) printf("Command exit status: %d\n", code); ++ return(code); ++ } ++ return(0); ++} ++ ++void ++ConsumeRestOfPart(outfp) ++FILE *outfp; ++{ ++ char *Buf; ++ int c; ++ ++ if (BoundaryCt <= 0) { ++ while ((c=getc(InputFP)) != EOF) { ++ if (outfp) putc(c, outfp); ++ } ++ return; ++ } ++ Buf = XMALLOC(char, LINE_BUF_SIZE); ++ while (fgets(Buf, LINE_BUF_SIZE, InputFP)) { ++ if ((BoundaryCt > 0) ++ && (Buf[0] == '-') ++ && (Buf[1] == '-') ++ && PendingBoundary(Buf, Boundaries, &BoundaryCt)) { ++ break; ++ } ++ if (outfp) fputs(Buf, outfp); ++ } ++ XFREE(Buf); ++} ++ ++char *paramend(s) ++char *s; ++{ ++ int inquotes=0; ++ while (*s) { ++ if (inquotes) { ++ if (*s == '"') { ++ inquotes = 0; ++ } else if (*s == '\\') { ++ ++s; /* skip a char */ ++ } ++ } else if (*s == ';') { ++ return(s); ++ } else if (*s == '"') { ++ inquotes = 1; ++ } ++ ++s; ++ } ++ return(NULL); ++} ++ ++void ++ParseContentParameters(ct) ++char *ct; ++{ ++ char *s, *t, *eq; ++ ++ CParamsUsed = 0; ++ s = index(ct, ';'); ++ if (!s) return; ++ *s++ = 0; ++ do { ++ t = paramend(s); ++ if (t) *t++ = 0; ++ eq = index(s, '='); ++ if (!eq) { ++ fprintf(stderr, "Ignoring unparsable content-type parameter: '%s'\n", s); ++ JunkParameter=Cleanse(s); ++ } else { ++ if (CParamsUsed >= CParamsAlloced) { ++ CParamsAlloced += 10; ++ if (CParams) { ++ CParams = XREALLOC(char *, CParams, 1+CParamsAlloced); ++ CParamValues = XREALLOC(char *, CParamValues, ++ 1+CParamsAlloced); ++ } else { ++ CParams = XMALLOC(char*, 1+CParamsAlloced); ++ CParamValues = XMALLOC(char *, 1+CParamsAlloced); ++ } ++ } ++ *eq++ = 0; ++ s = Cleanse(s); ++ CParams[CParamsUsed] = s; ++ /* strip leading white space */ ++ while (*eq && isspace((unsigned char) *eq)) ++eq; ++ /* strip trailing white space */ ++ StripTrailingSpace(eq); ++ CParamValues[CParamsUsed++] = eq; ++ if (DoDebug) printf("NEW PARAMETER: %s VALUE: %s\n", s, eq); ++ } ++ s = t; ++ } while (t); ++} ++ ++char *FindParam(s) ++char *s; ++{ ++ int i; ++ for (i=0; i ++ ++//#ifdef MSDOS ++//#include ++//#endif ++ ++#define BASE64 1 ++#define QP 2 /* quoted-printable */ ++ ++main(argc, argv) ++int argc; ++char **argv; ++{ ++ int encode = 1, which = BASE64, i, portablenewlines = 0; ++ FILE *fp = stdin; ++ FILE *fpo = stdout; ++ ++ for (i=1; i= argc) { ++ fprintf(stderr, "mimencode: -o requires a file name.\n"); ++ exit(-1); ++ } ++ fpo = fopen(argv[i], "w"); ++ if (!fpo) { ++ perror(argv[i]); ++ exit(-1); ++ } ++ break; ++ case 'u': ++ encode = 0; ++ break; ++ case 'q': ++ which = QP; ++ break; ++ case 'p': ++ portablenewlines = 1; ++ break; ++ case 'b': ++ which = BASE64; ++ break; ++ default: ++ fprintf(stderr, ++ "Usage: %s [-u] [-q] [-b] [-p] [-o outputfile] [file name]\n", *argv); ++ exit(-1); ++ } ++ } else { ++ //#ifdef MSDOS ++ // if (encode) ++ // fp = fopen(argv[i], "rb"); ++ // else ++ // { ++ // fp = fopen(argv[i], "rt"); ++ // setmode(fileno(fpo), O_BINARY); ++ // } /* else */ ++ //#else ++ fp = fopen(argv[i], "r"); ++ //#endif /* MSDOS */ ++ if (!fp) { ++ perror(argv[i]); ++ exit(-1); ++ } ++ } ++ } ++ //#ifdef MSDOS ++ //if (fp == stdin) setmode(fileno(fp), O_BINARY); ++ //#endif /* MSDOS */ ++ if (which == BASE64) { ++ if (encode) { ++ to64(fp, fpo, portablenewlines); ++ } else { ++ from64(fp,fpo, (char **) NULL, (int *) 0, portablenewlines); ++ } ++ } else { ++ if (encode) toqp(fp, fpo); else fromqp(fp, fpo, NULL, 0); ++ } ++ return(0); ++} ++ +--- metamail-2.7.orig/src/metamail/tmpfile.c ++++ metamail-2.7/src/metamail/tmpfile.c +@@ -0,0 +1,120 @@ ++#include ++#include /* double linked list management */ ++ ++#include "tmpfile.h" ++#include "metamail.h" ++ ++DList TmpNameList = { NULL, NULL }; ++ ++void ++MkTmpFileName(name) ++ char *name; ++{ ++ int tmpfd = 0; ++ ++ if (DoDebug) ++ fprintf(stderr, "MkTmpFileName:\n"); ++ ++ if (!name) { ++ if (DoDebug) ++ fprintf(stderr, "name is null\nMkTmpFileName END\n"); ++ return; ++ } ++ ++ strcpy(name, tmproot); ++ strcat(name, "/MXXXXXX"); ++ ++ if ((tmpfd = mkstemp(name)) > 0) { ++ if (close(tmpfd) == -1) { ++ metamail_warning( "couldn't close tmpfile: ", xstrerror( errno ) ); ++ name[0] = 0; ++ return; ++ } ++ if (DoDebug) ++ fprintf(stderr, "name = \"%s\"\n", name); ++ AddTmpFileName( name ); ++ if (DoDebug) ++ fprintf( stderr, "MkTmpFileName END\n", name); ++ } else { ++ metamail_warning( "couldn't optain tmpfile: ", xstrerror( errno ) ); ++ return; ++ } ++} ++ ++void ++AddTmpFileName(name) ++ char *name; ++{ ++ char *tmpname = NULL; ++ if ( name ) { ++ tmpname = XMALLOC( char, strlen(name) + 1 ); ++ ++ strcpy( tmpname, name ); ++ dlist_insertnew( &TmpNameList, (void*) tmpname, TmpNameList.tail ); ++ if (DoDebug) ++ fprintf( stderr, "AddTmpFileName: %s\n", name ); ++ } ++} ++ ++void ++DelTmpFileName(name) ++ char *name; ++{ ++ DListEntry *help = NULL; ++ ++ if ( (help = dlist_remove( &TmpNameList, dlist_search( &TmpNameList, name, ++ dlist_strcmp ) ) ) ) { ++ XFREE( help->data ); ++ XFREE( help ); ++ } else ++ fprintf(stderr, "tried to remove non tmplist file %s\n", name); ++} ++ ++void ++RmTmpFileName(name) ++ char *name; ++{ ++ DListEntry* help = NULL; ++ ++ if (DoDebug) ++ fprintf( stderr, "RmTmpFileName:\n" ); ++ ++ if( (help = dlist_remove( &TmpNameList, ++ dlist_search( &TmpNameList, name, ++ dlist_strcmp ) ) ) ) { ++ if (DoDebug) fprintf( stderr, "filename: %s\n", name ); ++ if (!access( name, R_OK ) ) { ++ if(unlink( name ) == -1) ++ metamail_error( stderr, "error unlinking: ", xstrerror( errno ) ); ++ } ++ XFREE( help->data ); ++ XFREE( help ); ++ } ++} ++ ++void ++CleanupTmpFiles( void ) ++{ ++ DListEntry* help = NULL; ++ ++ if (DoDebug) ++ fprintf( stderr, "CleanupTmpFiles:\n" ); ++ ++ while ( TmpNameList.head ) { ++ if (DoDebug) fprintf(stderr, "tmpfile: %s %X\n", TmpNameList.head->data, ++ TmpNameList.head->next); ++ if (!access( (char*) TmpNameList.head->data, R_OK )) { ++ if (DoDebug) fprintf( stderr, "access file yes\n" ); ++ if (unlink( (char*) TmpNameList.head->data ) < 0) { ++ if (DoDebug) ++ metamail_error( stderr, "error unlinking: ", ++ (char*) TmpNameList.head->data ); ++ } ++ } ++ ++ help = dlist_remove( &TmpNameList, TmpNameList.head ); ++ if (DoDebug) fprintf( stderr, "%X\n", help ); ++ XFREE( help->data ); ++ XFREE( help ); ++ } ++} +--- metamail-2.7.orig/src/metamail/tmpfile.h ++++ metamail-2.7/src/metamail/tmpfile.h +@@ -0,0 +1,15 @@ ++#ifndef METAMAIL_TMPFILE_H ++#define METAMAIL_TMPFILE_H 1 ++ ++/* create and remove tmpfiles */ ++void MkTmpFileName( char* ); ++void RmTmpFileName( char* ); ++/* and cleanup after doing all kind of things */ ++void CleanupTmpFiles( void ); ++ ++/* register and unregister tmpfiles */ ++/* these functions should not be invoked directly (there are exceptions) */ ++void AddTmpFileName( char* ); ++void DelTmpFileName( char* ); ++ ++#endif /* METAMAIL_TMP_FILE_H */ +--- metamail-2.7.orig/src/metamail/metamail.old ++++ metamail-2.7/src/metamail/metamail.old +@@ -0,0 +1,2756 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++/****************************************************** ++ Metamail -- A tool to help diverse mail readers ++ cope with diverse multimedia mail formats. ++ ++ Author: Nathaniel S. Borenstein, Bellcore ++ ++ ******************************************************* */ ++ ++#include ++#include ++#include ++#include ++#include "../config.h" ++#include ++#include "dlist.h" ++ ++#ifdef BORLAND ++#define F_OK 0 ++extern unsigned _stklen = 16384; ++extern char *mktemp(char *); ++#define WRITE_BINARY "w" ++#else /* BORLAND */ ++#ifdef MICROSOFT ++#include ++#include ++#include ++#include ++#define F_OK 0 ++#else ++#include ++#include ++#include ++#include ++#include ++#ifndef AMIGA ++#ifdef SYSV ++#include ++#include ++#else /* SYSV */ ++#include ++#endif /* SYSV */ ++#endif /* AMIGA */ ++#endif /* MICROSOFT */ ++#endif /* BORLAND */ ++ ++#if defined(SYSV) && !defined(linux) ++#define LPRTEMPLATE "lp %s" ++#define LPRCOMMAND "lp" ++#else ++#define LPRTEMPLATE "lpr %s" ++#define LPRCOMMAND "lpr" ++#endif ++#ifdef MSDOS ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define METAMAIL "metamail" ++#define TMPFILE_NAME_SIZE 128 ++#define MAX_FILE_NAME_SIZE 128 ++#define WRITE_BINARY "wb" ++#else /* MSDOS */ ++#ifdef AMIGA ++extern char *MkRmScript(); ++#ifndef F_OK ++#define F_OK (0) ++#endif ++#define CATCOMMAND "Type" ++#define CATTEMPLATE "Type %s" ++#define METAMAIL "metamail <*" ++#define TMPFILE_NAME_SIZE 50 ++#define MAX_FILE_NAME_SIZE 256 ++#define WRITE_BINARY "w" ++#else /* AMIGA */ ++extern char **environ, *gets(); ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define METAMAIL "metamail" ++#define TMPFILE_NAME_SIZE 1000 ++#define MAX_FILE_NAME_SIZE 1000 ++#define WRITE_BINARY "w" ++#endif /* AMIGA */ ++#endif /* MSDOS */ ++ ++#ifndef NO_RLIMITS ++#include ++#endif ++ ++#define CMDSIZE 1200 /* Maximum size of command to execute */ ++ ++#define LINE_BUF_SIZE 2000 ++#ifndef MICROSOFT ++extern char *malloc(); ++extern char *realloc(); ++#endif ++extern char *getenv(); ++extern char *index(); ++extern char *rindex(); ++char fileToDelete[MAX_FILE_NAME_SIZE]; ++ ++char *FindParam(); ++extern FILE *popen(); ++static char *nomem = "Out of memory!"; ++static char *mmversion = MM_VERSTRING; ++static char *NoAskDefault = "text,text/plain,text/richtext"; ++static char *QuietDefault = CATCOMMAND; ++static char *tmproot=""; ++ ++struct MailcapEntry { ++ char *contenttype; ++ char *command; ++ char *testcommand; ++ int needsterminal; ++ int copiousoutput; ++ int needtofree; ++ char *label; ++ char *printcommand; ++}; ++ ++FILE *InputFP = NULL; ++ ++int MightAskBeforeExecuting = 1, ++ DefinitelyNotTty = 0, ++ MustNotBeTty = 0, ++ MaybePageOutput = 0, ++ MustPageOutput = 0, ++ EatLeadingNewlines = 0, ++ PrintSomeHeaders = 1, ++ DoInBackground = 0, ++ Quiet = 0, ++ TransparentMode = 0, ++ DeleteSourceFileWhenDone = 0, ++ Is822Format = 1, ++ DoDebug = 0, ++ CParamsAlloced = 0, ++ CParamsUsed = 0, ++ YankMode = 0, ++ UsingStandardInput = 0, ++ PrintingMode = 0, ++ JustWriteFiles = 0, ++ ProcessingErrors = 0; ++ ++char *ContentType = NULL, ++ *ContentEncoding = NULL, ++ *MailerName = "unknown", ++ *MailSubject = "Mail message", ++ *MailFrom = "unknown sender", ++ *MailSummary = "non-text mail message", ++ *mailheaders = NULL, ++ **CParams = NULL, ++ **CParamValues = NULL, ++ *JunkParameter = NULL; ++ ++DList* TmpNameListTail; ++ ++#define ENCODING_NONE 0 ++#define ENCODING_BASE64 1 ++#define ENCODING_QUOTEDPRINTABLE 2 ++#define ENCODING_8BIT 3 ++#define ENCODING_UUENCODE -1 /* non-standard */ ++int EncodingCode = ENCODING_NONE; ++ ++struct part { ++ char *ctype; ++ char *fname; ++ struct part *next; ++}; ++ ++struct NoAskItem { ++ char *type; ++ struct NoAskItem *next; ++} *FirstNoAskItem = NULL, ++ *FirstQuietItem = NULL; ++ ++#ifdef MICROSOFT ++/* Need a function prototype for TryMailcapEntry because without it MSC ++ * passes a pointer to the structure rather than the structure itself. ++ */ ++TryMailcapEntry(struct MailcapEntry mc, char *SquirrelFile); ++#endif ++ ++void PrintHeader(); ++void ConsumeRestOfPart(); ++void ParseContentParameters(); ++ ++void CleanupTmpFiles(); ++ ++sigtype cleanup(); ++ ++char *Cleanse(s) /* no leading or trailing space, all lower case */ ++char *s; ++{ ++ char *tmp, *news; ++ ++ /* strip leading white space */ ++ while (*s && isspace((unsigned char) *s)) ++s; ++ news = s; ++ /* put in lower case */ ++ for (tmp=s; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ /* strip trailing white space */ ++ while (tmp > news && *--tmp && isspace((unsigned char) *tmp)) *tmp = 0; ++ return(news); ++} ++ ++char *UnquoteString(s) ++char *s; ++{ ++ char *ans, *t; ++ ++ if (*s != '"') return(s); ++ ans = malloc(1+strlen(s)); ++ if (!ans) ExitWithError(nomem); ++ ++s; ++ t = ans; ++ while (*s) { ++ if (*s == '\\') { ++ *t++ = *++s; ++ } else if (*s == '"') { ++ break; ++ } else { ++ *t++ = *s; ++ } ++ ++s; ++ } ++ *t = 0; ++ return(ans); ++} ++ ++sigtype ++cleanup(signum) ++int signum; ++{ ++ RestoreTtyState(); ++#if defined(MSDOS) || defined(AMIGA) ++ exit(signum); ++#else ++ signal(signum, SIG_DFL); ++ kill(getpid(), signum); ++#endif ++} ++ ++char **Boundaries = NULL; ++int BoundaryCt = 0, BoundaryAlloc = 0; ++struct nextfile { ++ char *filename; ++ struct nextfile *next; ++} *FileQueue=NULL, *LastInQueue = NULL; ++ ++void ++ResetGlobals() { ++ CParamsAlloced = 0; ++ CParamsUsed = 0; ++ ++ ContentType = NULL; ++ ContentEncoding = NULL; ++ MailSubject = "Mail message"; ++ MailFrom = "unknown sender"; ++ MailSummary = "non-text mail message"; ++ mailheaders = getenv("MM_HEADERS"); ++ if (mailheaders) { ++ char *s; ++ s = malloc(15+strlen(mailheaders)); ++ if (!s) ExitWithError(nomem); ++ sprintf(s, "MM_HEADERS=%s", mailheaders); ++ mailheaders = s; ++ } ++ CParams = NULL; ++ CParamValues = NULL; ++ JunkParameter = NULL; ++} ++ ++void modpath(auxpath) ++char *auxpath; ++{ ++ if (auxpath && *auxpath) { ++ static char *newpath = 0; ++ char *oldpath = newpath; ++ char *path = getenv("PATH"); ++ ++ if (!path) path = ""; /* give a default if no current path */ ++ newpath = malloc(7 + strlen(path) + strlen(auxpath)); ++ if (!newpath) ExitWithError(nomem); ++ sprintf(newpath, "PATH=%s:%s", auxpath, path); ++ putenv(newpath); ++ if (oldpath) free(oldpath); /* free up any old allocated PATH */ ++ } ++} ++ ++main(argc, argv) ++int argc; ++char **argv; ++{ ++ int retcode; ++ ++ modpath(AUXPATH); ++#ifndef MSDOS ++ signal(SIGINT, cleanup); ++#ifndef AMIGA ++ signal(SIGILL, cleanup); ++ signal(SIGTRAP, cleanup); ++ signal(SIGIOT, cleanup); ++ signal(SIGFPE, cleanup); ++#ifndef linux ++ signal(SIGEMT, cleanup); ++ signal(SIGBUS, cleanup); ++#endif ++ signal(SIGSEGV, cleanup); ++ signal(SIGTERM, cleanup); ++#endif ++#endif ++#ifdef SIGXCPU ++ signal(SIGXCPU, cleanup); ++#endif ++ tmproot = getenv("METAMAIL_TMPDIR"); ++ if (!tmproot) tmproot="/tmp"; ++ mailheaders = getenv("MM_HEADERS"); ++ if (mailheaders) { ++ char *s; ++ s = malloc(15+strlen(mailheaders)); ++ if (!s) ExitWithError(nomem); ++ sprintf(s, "MM_HEADERS=%s", mailheaders); ++ mailheaders = s; ++ } ++ fileToDelete[0] = 0; ++ ProcessArguments(argc, argv); /* calls ExitWithError on error */ ++#if !defined(AMIGA) && !defined(MSDOS) ++ if (MaybePageOutput) { ++ /* Want to send stderr to pager too, sigh... */ ++ fflush(stderr); ++ close(2); ++ dup2(1, 2); ++ } ++#endif ++ retcode = HandleMessage(NULL, 0); ++ if (! UsingStandardInput) { ++ fclose(InputFP); ++ } ++ if (fileToDelete[0]) { ++ unlink(fileToDelete); ++ fileToDelete[0] = 0; ++ } ++ while (FileQueue) { ++ InputFP = fopen(FileQueue->filename, "r"); ++ if (DoDebug) printf("Trying to open input file: %s\n", FileQueue->filename); ++ if (!InputFP) ExitWithError("Can't read input file"); ++ if (DeleteSourceFileWhenDone) { ++ strcpy(fileToDelete, FileQueue->filename); ++ } ++ ResetGlobals(); ++ retcode |= HandleMessage(NULL, 0); ++ if (! UsingStandardInput) { ++ fclose(InputFP); ++ } ++ if (fileToDelete[0]) { ++ unlink(fileToDelete); ++ fileToDelete[0] = 0; ++ } ++ FileQueue = FileQueue->next; ++ } ++ if (MustPageOutput) PauseForUser(); ++ CleanupTmpFiles(); ++ exit(ProcessingErrors? -1 : retcode); ++} ++ ++void ++QueueNextFile(fname) ++char *fname; ++{ ++ struct nextfile *tmp = (struct nextfile *) malloc(sizeof (struct nextfile)); ++ if (!tmp) ExitWithError(nomem); ++ tmp->filename = fname; ++ tmp->next = NULL; ++ if (FileQueue) { ++ LastInQueue->next = tmp; ++ LastInQueue = tmp; ++ } else { ++ FileQueue = tmp; ++ LastInQueue = tmp; ++ } ++} ++ ++HandleMessage(SquirrelFile, nestingdepth) ++char *SquirrelFile; ++/* SquirrelFile, if non-NULL, is a place to save a recognized body instead of executing it. */ ++int nestingdepth; ++{ ++ char *boundary; ++ int FileWriteOnly = JustWriteFiles; ++ ++ if (FileWriteOnly) { ++ if (!lc2strncmp(ContentType, "message/", 8) ++ || !lc2strncmp(ContentType, "multipart/", 10)) { ++ FileWriteOnly = 0; /* only leaf data */ ++ } ++ } ++ if (Is822Format) { ++ if (Read822Prefix(SquirrelFile?0:1, nestingdepth)) { ++ return -1; ++ } ++ } else Is822Format = 1; /* this property is not recursive for multipart or message */ ++ PrepareMessage(); ++ if (!FileWriteOnly && !ProcessMailcapFiles(SquirrelFile)) return(0); ++ if (!lc2strcmp(ContentType, "message") ++ || !lc2strcmp(ContentType, "message/rfc822")) { ++ if (SquirrelFile) return(SaveSquirrelFile(SquirrelFile)); ++ ContentType = NULL; /* reset default */ ++ ContentEncoding = NULL; /* reset default */ ++ return(HandleMessage(NULL, nestingdepth+1)); /* simple recursion */ ++ } ++ boundary = FindParam("boundary"); ++ if (!boundary) boundary =JunkParameter; /* backward compatibility hack */ ++ if (!lc2strncmp(ContentType, "multipart", 9)) { ++ if (!boundary) { ++ fprintf(stderr, "Warning: No boundary for multipart data, treating as unrecognized format.\n"); ++ } else { ++ char *LineBuf, NewSquirrelFile[TMPFILE_NAME_SIZE]; ++ char *subtype = NULL; ++ int currct, result, IsAlternative, WroteSquirrelFile, boundarylen; ++ ++ if (SquirrelFile) return(SaveSquirrelFile(SquirrelFile)); ++ if (boundary[0] == '"') { ++ boundary=UnquoteString(boundary); ++ } ++ subtype = index(ContentType, '/'); ++ if (subtype) { ++ ++subtype; ++ subtype = Cleanse(subtype); ++ } else subtype = "mixed"; ++#ifndef MSDOS ++ if (!MaybePageOutput && !DoInBackground) DoInBackground = strcmp(subtype, "parallel") ? 0 : 1; ++#endif ++ ++ IsAlternative = strcmp(subtype, "alternative") ? 0 : 1; ++ if (IsAlternative) { ++ MkTmpFileName(NewSquirrelFile); ++ WroteSquirrelFile = 0; ++ } ++ LineBuf = malloc(LINE_BUF_SIZE); ++ if (!LineBuf) ExitWithError(nomem); ++ sprintf(LineBuf, "--%s", boundary); ++ strcpy(boundary, LineBuf); ++ boundarylen = strlen(boundary); ++ if (BoundaryCt >= BoundaryAlloc) { ++ BoundaryAlloc += 5; ++ if (Boundaries) { ++ Boundaries = (char **) realloc(Boundaries, BoundaryAlloc*sizeof(char *)); ++ } else { ++ Boundaries = (char **) malloc(BoundaryAlloc*sizeof(char *)); ++ } ++ if (!Boundaries) ExitWithError(nomem); ++ } ++ Boundaries[BoundaryCt++] = boundary; ++ if (DoDebug) printf("Handling multipart as built-in here. Boundary: %s\n", boundary); ++ while (fgets(LineBuf, LINE_BUF_SIZE, InputFP)) { /* find start */ ++ if (!strncmp(LineBuf, boundary, boundarylen) ++ && ((LineBuf[boundarylen] == '\n') ++ || (LineBuf[boundarylen] == '-' ++ && LineBuf[boundarylen+1] == '-' ++ && LineBuf[boundarylen+2] == '\n'))) { ++ break; ++ } ++ } ++ free(LineBuf); ++ currct = BoundaryCt; ++ while(currct == BoundaryCt) { ++ if (!strcmp(subtype, "digest")) { ++ ContentType = "message/rfc822"; ++ } else { ++ ContentType = NULL; /* reset default */ ++ } ++ ContentEncoding = NULL; /* reset default */ ++ if (IsAlternative) { ++ result = HandleMessage(NewSquirrelFile, nestingdepth+1); ++ } else{ ++ result = HandleMessage(NULL, nestingdepth+1); ++ } ++ if (result) { ++ /* Need to consume the rest of the part */ ++ ConsumeRestOfPart(NULL); ++ } else { ++ ++WroteSquirrelFile; ++ } ++ } ++ /* Now we've seen the last encapsulation boundary, but if there is a "postfix" ++ we must throw it away.*/ ++ if (BoundaryCt > 0) { ++ ConsumeRestOfPart(NULL); ++ } ++ if (IsAlternative) { ++ if (WroteSquirrelFile) { ++ int retcode; ++ char Cmd[TMPFILE_NAME_SIZE + 15]; ++ sprintf(Cmd, "%s %s", METAMAIL, NewSquirrelFile); ++ fflush(stdout); fflush(stderr); ++ retcode = system(Cmd); ++#ifdef MSDOS ++ retcode = 0; ++#endif ++ unlink(NewSquirrelFile); ++ return(retcode); ++ } else { ++ printf("Cannot handle any part of multipart/alternative message\n"); ++ } ++ } ++ return(0); ++ } ++ } /* End of multipart handling */ ++ if (!FileWriteOnly && !TryBuiltIns(SquirrelFile)) return(0); ++ if (!SquirrelFile) { /* Very last resort -- unrecognized types */ ++ char Fname[MAX_FILE_NAME_SIZE], *suggestedname, SugBuf[MAX_FILE_NAME_SIZE]; ++ FILE *fp; ++ int ans = 0, octetstream, ecode=0; ++ suggestedname = FindParam("name"); ++ if (!suggestedname) { ++ MkTmpFileName(SugBuf); ++ suggestedname = SugBuf; ++ } else if (suggestedname[0] == '"') { ++ suggestedname=UnquoteString(suggestedname); ++ } ++ octetstream = ! lc2strcmp(ContentType, "application/octet-stream"); ++ if (MightAskBeforeExecuting ++ && !DefinitelyNotTty && !MustNotBeTty) { ++ if (FileWriteOnly) { ++ printf("\nThis message contains '%s`-format data.\n", ContentType); ++ } else if (octetstream) { ++ printf("This message contains raw digital data, which can either be viewed as text\nor written to a file.\n"); ++ } else { ++ printf("\nThis message contains data in an unrecognized format, %s,\nwhich can either be viewed as text or written to a file.\n", ContentType); ++ } ++ while (!ans) { ++ if (FileWriteOnly) { ++ ans = 2; ++ } else { ++ printf("\nWhat do you want to do with the %s data?\n1 -- See it as text\n2 -- Write it to a file\n3 -- Just skip it\n\n", octetstream ? "raw" : ContentType); ++ fgets(Fname, sizeof(Fname), stdin); ++ ans = atoi(Fname); ++ } ++ switch(ans) { ++ case 1: ++ TranslateInputToOutput(InputFP, stdout, EncodingCode, "text"); ++ return(0); ++ case 2: ++ { ++ int needname = 1; ++ while (needname) { ++ needname = 0; ++ printf("Please enter the name of a file to which the data should be written\n(Default: %s) > ", suggestedname); ++ fflush(stdout); ++ fgets(Fname, sizeof(Fname), stdin); ++ Fname[strlen(Fname) - 1] = '\0'; /* bogus newline */ ++#if !defined(AMIGA) && !defined(MSDOS) ++ if (!Fname[0]) strcpy(Fname, suggestedname); ++ if (Fname[0] == '~' && Fname[1] == '/') { ++ char Fname2[1000]; ++ int uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (!p) { ++ MkTmpFileName(Fname); ++ printf("Cannot figure out what ~ means, using temporary file %s instead\n", Fname); ++ } else { ++ strcpy(Fname2, p->pw_dir); ++ strcat(Fname2, "/"); ++ strcat(Fname2, Fname + 2); ++ strcpy(Fname, Fname2); ++ } ++ } ++#endif ++ if (access(Fname, F_OK) == 0) { ++ char *s, AnsBuf[50]; ++ int overwriteans = -1; ++ do { ++ printf("File %s exists. Do you want to overwrite it (y/n) ?\n", Fname); ++ s = fgets(AnsBuf, sizeof(AnsBuf), stdin); ++ if (!s) { ++ overwriteans = 0; ++ } else { ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ if (*s == 'y' || *s == 'Y' || !*s || *s == '\n') { ++ overwriteans = 1; ++ } else if (*s == 'n' || *s == 'N' || *s == 'q' || *s == 'Q') { ++ overwriteans=0; ++ } ++ } ++ if (overwriteans == -1) printf("Please answer yes or no.\n"); ++ } while (overwriteans == -1); ++ if (overwriteans == 0) needname = 1; ++ } ++ } ++ } ++ break; ++ case 3: ++ ConsumeRestOfPart(NULL); ++ return(0); ++ break; ++ default: ++ ans = 0; ++ break; ++ } ++ } ++ } else { ++ int ct = 0; ++ char *slash = rindex(suggestedname, '/'); ++#ifdef AMIGA ++ if (slash == NULL) { ++ slash = rindex(suggestedname, ':'); ++ } ++#endif ++ if (slash) { ++ ++slash; ++ } else { ++ slash = suggestedname; ++ } ++ do { ++ if (ct) { ++#ifdef AMIGA ++ sprintf(Fname, "T:%d-%s", ct, slash); ++ } else { ++ sprintf(Fname, "T:%s", slash); ++#else ++ sprintf(Fname, "%s/%d-%s", tmproot, ct, slash); ++ } else { ++ sprintf(Fname, "%s/%s", tmproot, slash); ++#endif ++ } ++ ++ct; ++ } while (access(Fname, F_OK) == 0); ++ if (FileWriteOnly) { ++ printf("\nThis message contains '%s`-format data.\n", ContentType); ++ } else if (octetstream) { ++ printf("\nThis message contains raw digital data,"); ++ } else { ++ printf("\nThis message contains data in an unrecognized format, %s,", ContentType); ++ } ++ printf("\nwhich is being decoded and written to the file named \"%s\".\nIf you do not want this data, you probably should delete that file.\n", Fname); ++ } ++ if (Fname[0] == 0 || Fname[0] == '\n') { ++ ConsumeRestOfPart(NULL); ++ } else { ++ fp = fopen(Fname, WRITE_BINARY); ++ if (!fp) ExitWithError("Cannot open temporary file"); ++ TranslateInputToOutput(InputFP, fp, EncodingCode, ContentType); ++ ecode = fclose(fp); ++ if (ecode) { ++ printf("Could not write file %s\n", Fname); ++ } else { ++ printf("Wrote file %s\n", Fname); ++ } ++ } ++ if (!DefinitelyNotTty && MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ return(ecode); ++ } ++ return(-1); /* Unrecognized, really */ ++} ++ ++ProcessArguments(argc, argv) ++int argc; ++char **argv; ++{ ++ int i, RunAsRootOK = 0; ++ char *SourceFileName = NULL, *NoAskStr, *QuietStr; ++ ++ QuietStr = getenv("MM_QUIET"); ++ if (!QuietStr) { ++ QuietStr=QuietDefault; ++ } ++ if (!strcmp(QuietStr, "1")) { ++ Quiet = 1; ++ } else { ++ struct NoAskItem *qitem; ++ char *s, *tmp; ++ char *QuietCopy; ++ ++ Quiet = 0; ++ QuietCopy = malloc(1+strlen(QuietStr)); ++ if (!QuietCopy) ExitWithError(nomem); ++ strcpy(QuietCopy, QuietStr); ++ for (tmp=QuietCopy; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ do { ++ s = index(QuietCopy, ','); ++ if (s) *s++ = 0; ++ qitem = (struct NoAskItem *) malloc(sizeof (struct NoAskItem)); ++ if (!qitem) ExitWithError(nomem); ++ qitem->next = FirstQuietItem; ++ qitem->type = QuietCopy; ++ FirstQuietItem = qitem; ++ QuietCopy = s; ++ } while (QuietCopy); ++ } ++ if (getenv("MM_TRANSPARENT")) { ++ TransparentMode = atoi(getenv("MM_TRANSPARENT")); /* Will not propogate recursively */ ++ } ++ if (getenv("MM_RUNASROOT")) { ++ RunAsRootOK = atoi(getenv("MM_RUNASROOT")); ++ } ++ if (getenv("MM_YANKMODE")) { ++ YankMode = atoi(getenv("MM_YANKMODE")); /* Will not propogate recursively */ ++ } ++ if (getenv("MM_DEBUG")) { ++ DoDebug = atoi(getenv("MM_DEBUG")); ++ } ++ if (DoDebug) printf("Metamail Version %s, debugging turned on.\n", mmversion); ++ NoAskStr = getenv("MM_NOASK"); ++ if (!NoAskStr) NoAskStr = NoAskDefault; ++ if (!strcmp(NoAskStr, "1")) { ++ MightAskBeforeExecuting = 0; ++ } else { ++ struct NoAskItem *nai; ++ char *s, *tmp; ++ char *NoAskCopy; ++ ++ NoAskCopy = malloc(1+strlen(NoAskStr)); ++ if (!NoAskCopy) ExitWithError(nomem); ++ strcpy(NoAskCopy, NoAskStr); ++ for (tmp=NoAskCopy; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ do { ++ s = index(NoAskCopy, ','); ++ if (s) *s++ = 0; ++ nai = (struct NoAskItem *) malloc(sizeof (struct NoAskItem)); ++ if (!nai) ExitWithError(nomem); ++ nai->next = FirstNoAskItem; ++ nai->type = NoAskCopy; ++ FirstNoAskItem = nai; ++ NoAskCopy = s; ++ } while (NoAskCopy); ++ } ++ MailerName = getenv("MM_MAILER"); ++ if (!MailerName) MailerName = "unknown"; ++ if (getenv("MM_USEPAGER")) { ++ MaybePageOutput = atoi(getenv("MM_USEPAGER")); ++ } ++ if ((getenv("MM_NOTTTY") && ((atoi(getenv("MM_NOTTTY"))) != 0))) { ++ MustNotBeTty = 1; ++ } ++ if (MustNotBeTty ++ || !isatty(0) ++ || !isatty(1)) { ++ DefinitelyNotTty = 1; ++ } ++ for (i=1; i= argc) usage(); ++ ContentType = malloc(1+strlen(argv[i])); ++ if (!ContentType) ExitWithError(nomem); ++ strcpy(ContentType,argv[i]); ++ /* strip leading white space */ ++ while (*ContentType && isspace((unsigned char) *ContentType)) ++ContentType; ++ StripTrailingSpace(ContentType); ++ ParseContentParameters(ContentType); ++ break; ++ case 'd': ++ MightAskBeforeExecuting = 0; ++ break; ++ case 'e': ++ EatLeadingNewlines = 1; ++ break; ++ case 'E': ++ if (++i >= argc) usage(); ++ ContentEncoding = argv[i]; ++ break; ++ case 'f': ++ if (++i >= argc) usage(); ++ MailFrom = argv[i]; ++ break; ++ case 'h': ++ { ++ FILE *tmpfp; ++ PrintingMode = 1; ++ MightAskBeforeExecuting = 0; ++#ifdef AMIGA ++ freopen("prt:", "w", stdout); ++#else ++ /* Want to make all of stdout go to printer, and this ++ is easier than changing every output statement, ++ at least on UNIX... */ ++ tmpfp = popen(LPRCOMMAND, "w"); ++ if (!tmpfp) { ++ ExitWithError("Cannot execute lpr command"); ++ } ++ fflush(stdout); ++ close(1); ++ dup2(fileno(tmpfp), 1); ++#endif ++ break; ++ } ++ case 'm': ++ if (++i >= argc) usage(); ++ MailerName = argv[i]; ++ break; ++ case 'p': ++ MaybePageOutput = 1; ++ break; ++ case 'P': ++ MaybePageOutput = 1; ++ MustPageOutput = 1; ++ break; ++ case 'r': ++#ifdef MSDOS ++ fprintf(stderr, "metamail warning: -r flag not supported on this system\n"); ++#else ++ RunAsRootOK = 1; ++#endif ++ break; ++ case 'R': ++#ifdef RESET_PROGRAM ++ system(RESET_PROGRAM); ++ if (DoDebug) printf("Executed reset\n"); ++#else ++ fprintf(stderr, "metamail warning: -R flag not supported on this system\n"); ++#endif ++ break; ++ case 's': ++ if (++i >= argc) usage(); ++ MailSubject = argv[i]; ++ break; ++ case 'T': ++ TransparentMode = 0; ++ break; ++ case 'w': ++ JustWriteFiles = 1; ++ break; ++ case 'q': ++ Quiet = 1; ++ PrintSomeHeaders = 0; ++ break; ++ case 'x': ++ DefinitelyNotTty = 1; ++ MustNotBeTty = 1; ++ break; ++ case 'y': ++ YankMode = 1; ++ break; ++ case 'z': ++ DeleteSourceFileWhenDone = 1; ++ break; ++ default: ++ usage(); ++ } ++ } else { ++ if (SourceFileName) { ++ QueueNextFile(argv[i]); ++ } else { ++ SourceFileName = argv[i]; ++ } ++ } ++ } ++ if (TransparentMode) { ++ RunInNewWindow(argv, argc, &SourceFileName); ++ } ++ if (MaybePageOutput && DoInBackground) { ++ MustNotBeTty = 1; ++ /*fprintf(stderr, "metamail: -B is incompatible with -p, -P, and MM_USEPAGER\n"); ++ usage(); */ ++ } ++ if (!Is822Format && !ContentType) { ++ fprintf(stderr, "metamail: -b requires -c.\n"); ++ usage(); ++ } ++ if (DeleteSourceFileWhenDone && !SourceFileName) { ++ fprintf(stderr, "metamail: -z requires -f.\n"); ++ usage(); ++ } ++#if !defined(AMIGA) && !defined(MSDOS) ++ if (!RunAsRootOK && (getuid() == 0 || geteuid() == 0)) { ++ fprintf(stderr, "You can not run MetaMail as root unless you use -r or set MM_RUNASROOT.\n"); ++ usage(); ++ } ++#endif ++ if (SourceFileName) { ++ InputFP = fopen(SourceFileName, "r"); ++ if (DoDebug) printf("Trying to open input file: %s\n", SourceFileName); ++ if (!InputFP) ExitWithError("Can't read input file"); ++ if (DeleteSourceFileWhenDone) { ++ strcpy(fileToDelete, SourceFileName); ++ } ++ } else { /* input on stdin */ ++ UsingStandardInput = 1; ++ if (MustNotBeTty) { ++ InputFP = stdin; ++/* MaybePageOutput = 1; */ /* This messed up safe-tcl -- nsb 9/21/93 */ ++ MightAskBeforeExecuting = 0; ++ } else { ++#if defined(MSDOS) || defined(AMIGA) ++ InputFP = stdin; ++ DefinitelyNotTty = 1; ++ MaybePageOutput = 0; ++#else ++ int newfd = dup(0); ++ FILE *newfp; ++ if (newfd > 0) { ++ InputFP = fdopen(newfd, "r"); ++ if (InputFP ++ && ((newfp = fopen("/dev/tty", "r")) != NULL) ++ && !dup2(fileno(newfp), 0)) { ++ DefinitelyNotTty = 0; ++ } else { ++ InputFP = stdin; ++ DefinitelyNotTty = 1; ++ MaybePageOutput = 0; ++ } ++ } ++#endif ++ } ++ } ++ if (DefinitelyNotTty && MaybePageOutput) { ++ RunInNewWindow(argv, argc, &SourceFileName); ++ } ++ if (DefinitelyNotTty) { ++ MaybePageOutput = 0; /* Disable pager if I/O has been redirected */ ++ } ++ return(0); ++} ++ ++usage() { ++ fprintf(stderr, "Usage: metamail [-b] [-B] [-d] [-e] [-h] [-r] [-R] [-p] [-P] [-x] [-y] [-z] [-c content-type] [-E content-transfer-encoding] [-f from-name] [-m mailername] [-s subject] [message-file-name]\n"); ++ ExitWithError(NULL); ++} ++ ++RunInNewWindow(argv, argc, SourceFileNamePtr) ++char **argv, **SourceFileNamePtr; ++int argc; ++{ ++ char *FullCmd, TmpName[TMPFILE_NAME_SIZE]; ++ int i, createdfile=0; ++ if (!*SourceFileNamePtr) { ++ char *LineBuf; ++ FILE *fptmp; ++ ++ LineBuf = malloc(LINE_BUF_SIZE); ++ if (!LineBuf) ExitWithError(nomem); ++ /* Create it, ugh. Also needs to affect later command. */ ++ MkTmpFileName(TmpName); ++ DeleteSourceFileWhenDone = 1; ++ fptmp = fopen(TmpName, WRITE_BINARY); ++ if (!fptmp) ExitWithError("Can't open temporary file\n"); ++ while (fgets(LineBuf, LINE_BUF_SIZE, stdin)) { ++ fputs(LineBuf, fptmp); ++ } ++ free(LineBuf); ++ fclose(fptmp); ++ *SourceFileNamePtr = TmpName; ++ createdfile = 1; ++ } ++ FullCmd = malloc(CMDSIZE); ++ if (!FullCmd) ExitWithError(nomem); ++ if (TransparentMode) { ++ /* In transparent mode, we want to produce stdout that is what we get in, and do EVERYTHING externally in a terminal window. This is to make the truly brain-dead mailers like mailtool happy. I am NOT happy about having to do this. */ ++ /* So, first we copy everything to stdout */ ++ sprintf(FullCmd, CATTEMPLATE, *SourceFileNamePtr); ++ system(FullCmd); /* Cheesy way to do it */ ++ fflush(stdout); fflush(stderr); ++ } ++ /* Then we run ourselves in a terminal window */ ++ MailSummary = "Metamail"; /* for window label */ ++ CreateNewWindowPrefix(FullCmd); ++ strcat(FullCmd, METAMAIL); ++ strcat(FullCmd, " -P "); ++ if (TransparentMode) strcat(FullCmd, "-T "); ++ for (i=1; ipw_dir) + sizeof(STDPATH)); ++ if (!p || !path) ExitWithError(nomem); ++ strcpy(path, p->pw_dir); ++ strcat(path, STDPATH); ++ pathcopy = path; ++ } else ++#endif /* AMIGA */ ++#endif /* BORLAND */ ++ { ++ pathcopy = malloc(1+strlen(path)); ++ if (!pathcopy) ExitWithError(nomem); ++ strcpy(pathcopy, path); ++ path = pathcopy; ++ } ++ while(path) { ++ s = index(path, PATH_SEPARATOR); ++ if (s) *s++ = 0; ++ if (!ProcessMailcapFile(path, SquirrelFile)) return(0); ++ path = s; ++ } ++ if (pathcopy) free(pathcopy); ++ return(-1); ++#endif /* MICROSOFT */ ++} ++ ++TryBuiltIns(SquirrelFile) ++char *SquirrelFile; ++{ ++ int i; ++ /* Last resort -- for sites that didn't bother putting a "text" line in their mailcap files... */ ++ if (DoDebug) fprintf(stderr, "Looking for '%s' in built-in content-type handling settings.\n", ContentType); ++ for (i=0; BuiltIns[i].contenttype; ++i) { ++ if (!TryMailcapEntry(SquirrelFile ? BuiltInsAlternative[i] : BuiltIns[i], SquirrelFile)) return(0); ++ } ++ return(-1); ++} ++ ++ProcessMailcapFile(file, SquirrelFile) ++char *file, *SquirrelFile; ++{ ++ struct MailcapEntry mc; ++ FILE *fp; ++ int res; ++ ++ res = IsDirectory(file); ++ if (res) { ++ if (res == 1) { ++ fprintf(stderr, "Mailcap path entry '%s' is a directory, should be a readable file.\n", file); ++ } else if (DoDebug) { ++ /* Quietly ignore non-existent mailcap files unless debugging */ ++ fprintf(stderr, "Mailcap path entry '%s' does not exist.\n", file); ++ } ++ return(-1); ++ } ++ fp = fopen(file, "r"); ++ if (DoDebug) fprintf(stderr, "Looking for '%s' in mailcap file '%s'.\n", ContentType, file); ++ while (fp && !feof(fp)) { ++ mc.needtofree = 0; ++ if (GetMailcapEntry(fp, &mc)) { ++ if (!TryMailcapEntry(mc, SquirrelFile)) { ++ fclose(fp); ++ return(0); ++ } ++ } ++ } ++ if (fp) fclose(fp); ++ return(-1); ++} ++ ++static char *ThingsToSkip[] = { ++ "csh ", ++ "sh ", ++ "ksh ", ++ NULL ++}; ++ ++char *ShortCommand(progname) ++char *progname; ++{ ++ int i; ++ char *s, *oldprogname; ++ static char FullProgName[500]; ++ ++eatmore: ++ while (*progname && (*progname == '(' || isspace((unsigned char) *progname))) { ++ ++progname; ++ } ++ oldprogname = progname; ++ for (i = 0; oldprogname == progname && ThingsToSkip[i]; ++i) { ++ if (!strncmp(progname, ThingsToSkip[i], strlen(ThingsToSkip[i]))) { ++ progname += strlen(ThingsToSkip[i]); ++ } ++ } ++ if (*progname == '-') { ++ ++progname; ++ while (*progname && !isspace((unsigned char) *progname)) ++progname; ++ } ++ if (progname != oldprogname) goto eatmore; ++ strcpy(FullProgName, progname); ++ s = index(FullProgName, ' '); ++ if (s) *s = 0; ++ s = rindex(FullProgName, '/'); ++ if (s) { ++ return(s+1); ++ } else { ++ return(FullProgName); ++ } ++} ++ ++TryMailcapEntry(mc, SquirrelFile) ++struct MailcapEntry mc; ++char *SquirrelFile; ++{ ++ StripTrailingSpace(mc.contenttype); ++ if (DoDebug) fprintf(stderr, "Trying mailcap entry for '%s'.\n", mc.contenttype); ++ if (PrintingMode && !mc.printcommand) return(-1); ++ if (CtypeMatch(ContentType, mc.contenttype) && PassesTest(&mc)) { ++ if (SquirrelFile) { ++ return(SaveSquirrelFile(SquirrelFile)); ++ } else { ++ char TmpFileName[TMPFILE_NAME_SIZE]; ++ MkTmpFileName(TmpFileName); ++ return(ExecuteMailcapEntry(mc, TmpFileName, ContentType)); ++ } ++ } ++ if (mc.needtofree) { ++ free(mc.contenttype); ++ free(mc.command); ++ } ++ return(-1); ++} ++ ++SaveSquirrelFile(SquirrelFile) ++char *SquirrelFile; ++{ ++ int j; ++ FILE *outfp; ++ ++ if (DoDebug) printf("saving to file %s\n", SquirrelFile); ++ ++ outfp = fopen(SquirrelFile, WRITE_BINARY); ++ if (!outfp) { ++ fprintf(stderr, "Cannot open %s to squirrel away a portion of a multipart/alternative\n", SquirrelFile); ++ return(-1); ++ } ++ fprintf(outfp, "Content-type: %s", ContentType); ++ for (j=0; j 0) PauseForUser(); ++ } ++ if (!resultcode) { ++ free(FullCmd); ++ } else { ++ fprintf(stderr, "Command failed: %s\n", FullCmd); ++ if (MaybePageOutput && BoundaryCt > 0) PauseForUser(); ++ ++ProcessingErrors; ++ } ++ } else { ++ /* user does not want to execute command */ ++ if (!DefinitelyNotTty) { ++ RestoreTtyState(); ++ } ++ if (DoDebug) fprintf(stderr, "Not executing command.\n"); ++ if (!PartsWritten) ConsumeRestOfPart(NULL); ++ } ++ if (PartsWritten) { ++ struct part *tp; ++ char HeadFile[MAX_FILE_NAME_SIZE]; ++ ++ while (PartsWritten) { ++ tp=PartsWritten->next; ++ free(PartsWritten->ctype); ++ strcpy(HeadFile, PartsWritten->fname); ++ strcat(HeadFile, "H"); ++ unlink(HeadFile); ++ unlink(PartsWritten->fname); ++ free(PartsWritten->fname); ++ free(PartsWritten); ++ PartsWritten=tp; ++ } ++ } ++ if (!DefinitelyNotTty) { ++ RestoreTtyState(); ++ } ++ free(cmd); ++ return(0); ++} ++ ++PassesTest(mc) ++struct MailcapEntry *mc; ++{ ++ int result; ++ char *cmd, TmpFileName[TMPFILE_NAME_SIZE]; ++ ++ if (!mc->testcommand) return(1); ++ MkTmpFileName(TmpFileName); ++ cmd = malloc(CMDSIZE); ++ if (!cmd) ExitWithError(nomem); ++ BuildCommand(cmd, mc->testcommand, TmpFileName, NULL, NULL); ++ if (DoDebug) printf("Executing test command: %s\n", cmd); ++ result = system(cmd); ++#ifdef MSDOS ++ result = 0; /* system doesn't return a valid exit code on MS-DOS */ ++ /* note that this makes the test feature useless... */ ++#endif ++ free(cmd); ++ return(!result); ++} ++ ++char * ++GetCommand(s, t) ++char *s, **t; ++{ ++ char *s2; ++ int quoted = 0; ++ s2 = malloc(strlen(s)*2+1); /* absolute max, if all % signs */ ++ if (!s2) ExitWithError(nomem); ++ *t = s2; ++ while (s && *s) { ++ if (quoted) { ++ if (*s == '%') *s2++ = '%'; /* Quote through next level, ugh! */ ++ ++ *s2++ = *s++; ++ quoted = 0; ++ } else { ++ if (*s == ';') { ++ *s2 = 0; ++ return(++s); ++ } ++ if (*s == '\\') { ++ quoted = 1; ++ ++s; ++ } else { ++ *s2++ = *s++; ++ } ++ } ++ } ++ *s2 = 0; ++ return(NULL); ++} ++ ++GetMailcapEntry(fp, mc) ++FILE *fp; ++struct MailcapEntry *mc; ++{ ++ int rawentryalloc = 2000, len; ++ char *rawentry, *s, *t, *LineBuf; ++ ++ LineBuf = malloc(LINE_BUF_SIZE); ++ if (!LineBuf) ExitWithError(nomem); ++ rawentry = malloc(1 + rawentryalloc); ++ if (!rawentry) ExitWithError(nomem); ++ *rawentry = 0; ++ while (fgets(LineBuf, LINE_BUF_SIZE, fp)) { ++ if (LineBuf[0] == '#') continue; ++ len = strlen(LineBuf); ++ if (len == 0) continue; ++ if (LineBuf[len-1] == '\n') LineBuf[--len] = 0; ++ if ((len + strlen(rawentry)) > rawentryalloc) { ++ rawentryalloc += 2000; ++ rawentry = realloc(rawentry, rawentryalloc+1); ++ if (!rawentry) ExitWithError(nomem); ++ } ++ if (LineBuf[len-1] == '\\') { ++ LineBuf[len-1] = 0; ++ strcat(rawentry, LineBuf); ++ } else { ++ strcat(rawentry, LineBuf); ++ break; ++ } ++ } ++ free(LineBuf); ++ for (s=rawentry; *s && isspace((unsigned char) *s); ++s) ; ++ if (!*s) { ++ /* totally blank entry -- quietly ignore */ ++ free(rawentry); ++ return(0); ++ } ++ s = index(rawentry, ';'); ++ if (!s) { ++ fprintf(stderr, "metamail: Ignoring invalid mailcap entry: %s\n", rawentry); ++ free(rawentry); ++ return(0); ++ } ++ *s++ = 0; ++ mc->needsterminal = 0; ++ mc->copiousoutput = 0; ++ mc->needtofree = 1; ++ mc->testcommand = NULL; ++ mc->label = NULL; ++ mc->printcommand = NULL; ++ mc->contenttype = malloc(1+strlen(rawentry)); ++ if (!mc->contenttype) ExitWithError(nomem); ++ strcpy(mc->contenttype, rawentry); ++ t = GetCommand(s, &mc->command); ++ if (!t) { ++ free(rawentry); ++ return(1); ++ } ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ s = t; ++ while (s) { ++ char *arg, *eq; ++ ++ t = GetCommand(s, &arg); ++/* if (t) *t++ = 0; */ ++ eq = index(arg, '='); ++ if (eq) *eq++ = 0; ++ if (*arg) { ++ arg = Cleanse(arg); ++ if (!strcmp(arg, "needsterminal")) { ++ mc->needsterminal = 1; ++ } else if (!strcmp(arg, "copiousoutput")) { ++ mc->copiousoutput = 1; ++ } else if (eq && !strcmp(arg, "test")) { ++ mc->testcommand = eq; ++ } else if (eq && !strcmp(arg, "description")) { ++ mc->label = eq; ++ } else if (eq && !strcmp(arg, "label")) { ++ mc->label = eq; /* bogus old name for description */ ++ } else if (eq && !strcmp(arg, "print")) { ++ mc->printcommand = eq; ++ } else if (eq && !strcmp(arg, "textualnewlines")) { ++ ExceptionalNewline(mc->contenttype, atoi(eq)); ++ } else if (strcmp(arg, "notes")) { /* IGNORE notes field */ ++ if (*arg && DoDebug) fprintf(stderr, "metamail: Ignoring mailcap flag: %s\n", arg); ++ } ++ } ++ s = t; ++ } ++ free(rawentry); ++ return(1); ++} ++ ++ExitWithError(txt) ++char *txt; ++{ ++ if (txt) fprintf(stderr, "metamail: %s\n", txt); ++ exit(-1); ++} ++ ++char * ++FreshHeaderCopy(s) ++char *s; ++{ ++ char *t, *newcopy; ++ int len; ++ ++ while (s && *s && isspace((unsigned char) *s) && *s != '\n') ++s; ++ t = index(s, '\n'); ++ while (t && (*(t+1) == ' ' || *(t+1) == '\t')) { ++ t = index(t+1, '\n'); ++ } ++ len = t ? (t-s+1) : (strlen(s)+1); ++ newcopy = malloc(len+3);/* two extra bytes for a bizarre bug caused by the fact that FindParam calls FreshHeaderCopy and sometimes tacks on "--". */ ++ if (!newcopy) ExitWithError(nomem); ++ strncpy(newcopy, s, len); ++ newcopy[len] = 0; ++ return(newcopy); ++} ++ ++Read822Prefix(PrintHeads, nestingdepth) ++int PrintHeads, nestingdepth; ++{ ++ int SawNewline = 1, bytes = 0, alloced = 1000, HasEncodedChars=0; ++ int c, oldbytes; ++ char *s, *t, *tmp; ++ ++ if (!PrintSomeHeaders) PrintHeads = 0; ++ mailheaders = malloc(alloced+1); ++ if (!mailheaders) ExitWithError(nomem); ++ strcpy(mailheaders, "MM_HEADERS=\n"); ++ bytes = 12; ++yankagain: ++ t = mailheaders + bytes; ++ oldbytes = bytes-1; /* a hack for YankMode */ ++ while ((c = getc(InputFP)) != EOF) { ++ if (++bytes >= alloced) { ++ alloced += 1000; ++ mailheaders = realloc(mailheaders, alloced); ++ if (!mailheaders) ExitWithError(nomem); ++ t = mailheaders + bytes - 1; ++ } ++ if (c == '\n') { ++ if (SawNewline) break; ++ SawNewline = 1; ++ } else SawNewline = 0; ++ *t++ = c; ++ } ++ *t = 0; ++ --bytes; ++ if (c == EOF) { ++ if (nestingdepth) { ++ fprintf(stderr, "metamail: Incomplete multipart message -- unexpected EOF\n"); ++/* exit(ProcessingErrors); */ ++ } else { ++ if (YankMode) { ++/* ExitWithError("Could not extract a MIME message from the body\n"); */ ++ fprintf(stderr, "metamail: Could not extract a MIME message from the body\n"); ++ } else { ++ fprintf(stderr, "metamail: Could not find end of mail headers.\n"); ++/* ExitWithError("Could not find end of mail headers"); */ ++ } ++ } ++ BoundaryCt=0; ++ return -1; ++ } ++ for (s=mailheaders+oldbytes; *s; ++s) { ++ if (*s == '\n' && (*(s+1) != ' ') && (*(s+1) != '\t')) { ++ if (!ContentType && !lc2strncmp(s, "\ncontent-type:", 14)) { ++ char *dum; ++ ContentType = FreshHeaderCopy(s+14); ++ /* Eliminate white space embedded in content-type */ ++ while (1) { ++ dum = index(ContentType, '/'); ++ if (!dum) break; ++ if (isspace(*(dum-1))) { ++ for (--dum; *dum; ++dum) { ++ *dum = *(dum+1); ++ } ++ } else if (isspace(*++dum)) { ++ for ( ; *dum; ++dum) { ++ *dum = *(dum+1); ++ } ++ } else { ++ break; ++ } ++ } ++ StripTrailingSpace(ContentType); ++ ParseContentParameters(ContentType); ++ if (PrintHeads) maybephead(s+1); ++ } else if (!ContentEncoding && !lc2strncmp(s, "\ncontent-transfer-encoding:", 27)) { ++ ContentEncoding = FreshHeaderCopy(s+27); ++ if (PrintHeads) maybephead(s+1); ++ } else if (!lc2strncmp(s, "\nsubject:", 9)) { ++ if (PrintHeads) maybephead(s+1); ++ MailSubject = FreshHeaderCopy(s+9); ++ } else if (!lc2strncmp(s, "\nfrom:", 6)) { ++ if (PrintHeads) maybephead(s+1); ++ MailFrom = FreshHeaderCopy(s+6); ++ } else if (!lc2strncmp(s, "\ncontent-description:", 4)) { ++ if(PrintHeads) maybephead(s+1); ++ MailSubject = FreshHeaderCopy(s+21); ++ } else { ++ /* Print any with encoded variables */ ++ char *dum = s; ++ while (dum) { ++ dum = index(dum, '?'); ++ if (dum && *++dum == '=') break; ++ } ++ if (dum) { ++ char *nl = s+1; ++ while (nl) { ++ nl = index(nl, '\n'); ++ if (nl && !isspace((unsigned char) *++nl)) break; ++ } ++ if (nl && nl > dum) ++HasEncodedChars; ++ } ++ if (HasEncodedChars) { ++ phead(s+1); ++ } else if (PrintHeads) { ++ maybephead(s+1); ++ } ++ } ++ } ++ } ++ /* Ugly, but effective */ ++ if (YankMode && !ContentType) { ++ goto yankagain; ++ } ++ if (PrintHeads) printf("\n"); ++ if (!ContentType) { ++ ContentType = "text/plain"; ++ CParamsUsed=0; ++ } ++ for (tmp=ContentType; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ return 0; ++} ++ ++PrepareMessage() { ++ int c; ++ ++ EncodingCode = ENCODING_NONE; ++ if (ContentEncoding) { ++ /* strip leading white space */ ++ while (*ContentEncoding && isspace((unsigned char) *ContentEncoding)) ++ContentEncoding; ++ StripTrailingSpace(ContentEncoding); ++ if (!lc2strcmp(ContentEncoding, "base64")) { ++ EncodingCode = ENCODING_BASE64; ++ } else if (!lc2strcmp(ContentEncoding, "quoted-printable")) { ++ EncodingCode = ENCODING_QUOTEDPRINTABLE; ++ } else if (!lc2strncmp (ContentEncoding, "x-uue", 5)) { ++ fprintf (stderr, "WARNING: Using nonstandard %s encoding, trying uuencode algorithm.\n", ContentEncoding); ++ EncodingCode = ENCODING_UUENCODE; ++ } else { ++ if (lc2strcmp(ContentEncoding, "none") ++ && !lc2strcmp(ContentEncoding, "8bit") ++ && !lc2strcmp(ContentEncoding, "7bit")) { ++ fprintf(stderr, "Ignoring unrecognized Content-Transfer-Encoding value: %s\n", ContentEncoding); ++ } ++ } ++ } ++ if (EatLeadingNewlines) { ++ while ((c = getc(InputFP)) != EOF) { ++ if (c != '\n') { ++ ungetc(c, InputFP); ++ break; ++ } ++ } ++ } ++ SetUpEnvironment(); ++} ++ ++SetUpEnvironment() { ++ int i, j, environsize; ++ char **newenviron, *mailervar, *summaryvar, *ctypevar, *s; ++ static char ttyenv[15], debugenv[15], *noaskenv, pagerenv[15], *quietenv, rootenv[25]; ++ ++#if !defined(AMIGA) && !defined(MSDOS) ++ /* Hack to make the code look similar for unix & dos */ ++#define putenv(var) newenviron[i++] = var; ++ for (environsize=0; environ[environsize]; ++environsize) { ++ ; ++ } ++ newenviron = (char **) malloc(sizeof(char *) * (17+environsize)); ++ if (!newenviron) ExitWithError(nomem); ++#endif ++ mailervar = malloc(13+strlen(MailerName)); ++ if (!mailervar) ExitWithError(nomem); ++ sprintf(mailervar, "MM_MAILER=%s", MailerName); ++ summaryvar = malloc(26 + strlen(MailFrom) + strlen(MailSubject)); ++ if (!summaryvar) ExitWithError(nomem); ++ sprintf(summaryvar, "MM_SUMMARY=%s (from %s)", MailSubject, MailFrom); ++ MailSummary = summaryvar+11; ++ EliminateNastyChars(MailSummary); ++ i = 0; ++ if (ContentType) { ++ int ctypelen = 22+strlen(ContentType); ++ for (j=0; j\"", *s)) continue; ++ if (*s == '\'' || *s == '`') { ++ *s = '"'; ++ } else { ++ *s = ' '; ++ } ++ } ++} ++ ++StripTrailingSpace(s) ++char *s; ++{ ++ char *t = s+strlen(s) -1; ++ while (isspace((unsigned char) *t) && (t >= s)) *t-- = 0; ++} ++ ++static char *KeyHeads=NULL; ++static char **KeyHeadList; ++static int KeyKeep = 0; ++ ++void setKeyHeads() ++{ ++ char *s; ++ int numkeys = 0; ++ ++ if ((KeyHeads = getenv("KEYHEADS")) != 0) { ++ for (s=KeyHeads;*s;++s) if (isupper((unsigned char) *s)) *s=tolower((unsigned char) *s); ++ } else if ((KeyHeads = getenv("KEYIGNHEADS")) != 0) { ++ for (s=KeyHeads;*s;++s) if (isupper((unsigned char) *s)) *s=tolower((unsigned char) *s); ++ KeyKeep = 1; ++ } else { ++ static char khtmp[] = "to:cc:subject:from:content-description:date"; ++ KeyHeads = khtmp; ++ } ++ for (s=KeyHeads; *s; ++s) if (*s == ':') ++numkeys; ++ numkeys += 2; ++ KeyHeadList = (char **) malloc((numkeys) * sizeof(char *)); ++ if (!KeyHeadList) ExitWithError(nomem); ++ numkeys = 0; ++ KeyHeadList[0] = KeyHeads; ++ for(s=KeyHeads; *s; ++s) { ++ if (*s == ':') { ++ *s = '\0'; ++ KeyHeadList[++numkeys] = s+1; ++ } ++ } ++ KeyHeadList[++numkeys] = NULL; ++} ++ ++/* find the first colon in a header line which appears before any spaces or control characters */ ++char * ++findcolon(hdr) ++char *hdr; ++{ ++ while (*hdr && !isspace(*hdr) && !iscntrl(*hdr)) ++ if (*hdr == ':') return hdr; ++ else hdr++; ++ return 0; ++} ++ ++/* check the header given to see if it matches any in the KeyHeadList */ ++maybephead(hdr) ++char *hdr; ++{ ++ char *s; ++ int numkeys=0; ++ ++ if (!KeyHeads) setKeyHeads(); ++ ++ s = findcolon(hdr); ++ if (s) { ++ int len = s - hdr; ++ for (numkeys=0; KeyHeadList[numkeys]; ++numkeys) { ++ if (!strcmp(KeyHeadList[numkeys], "*") ++ || !lc2strncmp(hdr, KeyHeadList[numkeys], len)) { ++ if (!KeyKeep) phead(hdr); ++ return; ++ } ++ } ++ if (KeyKeep) phead(hdr); ++ return; ++ } ++ if (!strncmp(hdr, "From ", 5) || !strncmp(hdr, ">From ", 6)) { ++ for (numkeys = 0; KeyHeadList[numkeys]; ++numkeys) { ++ if (!strcmp(KeyHeadList[numkeys], "*") ++ || !lc2strncmp(">from", KeyHeadList[numkeys], 5)) { ++ if (!KeyKeep) phead(hdr); ++ return; ++ } ++ } ++ if (KeyKeep) phead(hdr); ++ } ++} ++ ++/* This next routine prints out a mail header, and needs to deal with the new extended charset headers. */ ++phead(s) ++char *s; ++{ ++ char *t = s; ++ ++ while (1) { ++ t = index(t, '\n'); ++ if (!t) break; ++ if (!isspace((unsigned char) *(t+1))) { ++ *t = 0; ++ break; ++ } else ++t; ++ } ++ PrintHeader(s, 1); ++ printf("\n"); ++ if (t) *t = '\n'; ++} ++ ++static char PrevCharset[100] = "us-ascii"; ++ ++/* This is the part that actually handles the charset issues */ ++void PrintHeader(s, ShowLeadingWhitespace) ++char *s; ++int ShowLeadingWhitespace; ++{ ++ char *charset, *encoding, *txt, *txtend, TmpFile[TMPFILE_NAME_SIZE]; ++ int ecode = ENCODING_NONE, CorrectedCharset = 0; ++ FILE *fp; ++ ++ while (*s && (*s != '=')) { ++ if (isspace((unsigned char) *s)) { ++ if (ShowLeadingWhitespace) { ++ putchar(' '); ++ } ++ } else { ++ putchar(*s); ++ if (!CorrectedCharset) { ++ CorrectedCharset = 1; ++ strcpy(PrevCharset, "us-ascii"); ++ } ++ } ++ if (!ShowLeadingWhitespace) { ++ /* Only at most one leading space is ignored */ ++ ShowLeadingWhitespace = 1; ++ } ++ ++s; ++ } ++ if (!*s) return; ++ if (*(s+1) != '?') { ++ putchar('='); ++ PrintHeader(++s, 1); ++ return; ++ } ++ charset = s+2; ++ encoding = index(charset, '?'); ++ if (!encoding) { ++ putchar('='); ++ PrintHeader(++s,1); ++ return; ++ } ++ txt = index(encoding+1, '?'); ++ if (!txt) { ++ putchar('='); ++ PrintHeader(++s, 1); ++ return; ++ } ++ txtend = txt; ++ do { ++ txtend = index(txtend+1, '?'); ++ } while(txtend && (*(txtend+1) != '=')); ++ if (!txtend) { ++ putchar('='); ++ PrintHeader(++s, 1); ++ } ++ /* Proper parse! Ready to dissect... */ ++ *encoding = 0; ++ *txt = 0; ++ *txtend = 0; ++ if ((*(encoding+1) == 'q') || (*(encoding+1) == 'Q')) { ++ ecode = ENCODING_QUOTEDPRINTABLE; ++ } else if ((*(encoding+1) == 'b') || (*(encoding+1) == 'B')) { ++ ecode = ENCODING_BASE64; ++ } else { ++ fprintf(stderr, "Bad encoding value in non-ASCII header string: %s\n", encoding+1); ++ } ++ if (lc2strcmp(charset, PrevCharset)) { ++ char *s2, *charsetinuse; ++ ++ strcpy(PrevCharset, charset); ++ for (s2=PrevCharset; *s2; ++s2) { ++ if (isupper((unsigned char) *s2)) *s2 = tolower((unsigned char) *s2); ++ } ++ charsetinuse = getenv("MM_CHARSET"); ++ if (!charsetinuse || lc2strcmp(charsetinuse, PrevCharset)) { ++ printf("[** %s charset **] ", charset); ++ } ++ } ++ if (ecode == ENCODING_NONE) { ++ printf(txt+1); ++ } else { ++ /* What follows is REALLY bogus, but all my encoding stuff is pipe-oriented right now... */ ++ MkTmpFileName(TmpFile); ++ fp = fopen(TmpFile, WRITE_BINARY); ++ if (!fp) { ++ fprintf(stderr, "Could not open temporary file\n"); ++ } else { ++ char *t; ++ for (t=txt+1; *t; ++t) { ++ if (*t == '_') { ++ putc(' ', fp); ++ } else if (*t == '\n') { ++ putc(' ', fp); ++ } else { ++ putc(*t, fp); ++ } ++ } ++ fclose(fp); ++ fp = fopen(TmpFile, "r"); ++ if (!fp) { ++ fprintf(stderr, "Could not open temporary file\n"); ++ } else { ++ TranslateInputToOutput(fp, stdout, ecode, "text"); ++ fclose(fp); ++ } ++ unlink(TmpFile); ++ } ++ } ++ *encoding = '?'; ++ *txt = '?'; ++ *txtend = '?'; ++ PrintHeader(txtend + 2, 0); ++} ++ ++BuildCommand(Buf, controlstring, TmpFileName, UsedTmpFileName, PartsWritten) ++char *Buf, *controlstring, *TmpFileName; ++int *UsedTmpFileName; ++struct part **PartsWritten; ++{ ++ char *from, *to, *s, *p, *tmp; ++ int prefixed = 0, UsedBigFile=0, UsedLittleFiles=0, numparts=0; ++ struct part *firstpart=NULL, *thispart=NULL, *tmppart=NULL; ++ ++ if (UsedTmpFileName) *UsedTmpFileName = 0; ++ if (PartsWritten) *PartsWritten = NULL; ++ for (from=controlstring, to=Buf; *from; ++from) { ++ if (prefixed) { ++ prefixed = 0; ++ switch(*from) { ++ case '%': ++ *to++ = '%'; ++ break; ++ case 'n': ++ case 'F': ++ if (!PartsWritten) { ++ fprintf(stderr, "metamail: Bad mailcap \"test\" clause: %s\n", controlstring); ++ ExitWithError("%%n and %%F may not be used in \"test\" clauses. Execution terminated."); ++ } ++ if (UsedBigFile) { ++ fprintf(stderr, "metamail: Bad mailcap entry: %s\n", controlstring); ++ ExitWithError("%%n and %%F are incompatible with %%s. Execution terminated."); ++ } ++ if (!UsedLittleFiles) { ++ /* Set up parts */ ++ char *LineBuf, *boundary, TmpFileNameBuf[TMPFILE_NAME_SIZE]; ++ char *oldct, *oldce, *newct; ++ int currct, boundarylen, newctlen, j; ++ int oldcparmsused, oldcparamsalloced; ++ char **oldcparams, **oldcparamvalues; ++ FILE *headfp; ++ ++ LineBuf = malloc(LINE_BUF_SIZE); ++ if (!LineBuf) ExitWithError(nomem); ++ boundary = FindParam("boundary"); ++ if (!boundary) { ++ fprintf(stderr, "Bad message format: This multipart message has no boundary parameter,\n"); ++ fprintf(stderr, "but the mailcap entry for %s uses %%F or %%n.\n\n", ContentType); ++ ExitWithError("A change to the mailcap file might make this message viewable."); ++ } ++ if (boundary[0] == '"') { ++ boundary=UnquoteString(boundary); ++ } ++ sprintf(LineBuf, "--%s", boundary); ++ strcpy(boundary, LineBuf); ++ boundarylen = strlen(boundary); ++ if (BoundaryCt >= BoundaryAlloc) { ++ BoundaryAlloc += 5; ++ if (Boundaries) { ++ Boundaries = (char **) realloc(Boundaries, BoundaryAlloc*sizeof(char *)); ++ } else { ++ Boundaries = (char **) malloc(BoundaryAlloc*sizeof(char *)); ++ } ++ if (!Boundaries) ExitWithError(nomem); ++ } ++ Boundaries[BoundaryCt++] = boundary; ++ while (fgets(LineBuf, LINE_BUF_SIZE, InputFP)) { /* find start */ ++ if (!strncmp(LineBuf, boundary, boundarylen) ++ && ((LineBuf[boundarylen] == '\n') ++ || (LineBuf[boundarylen] == '-' ++ && LineBuf[boundarylen+1] == '-' ++ && LineBuf[boundarylen+2] == '\n'))) { ++ break; ++ } ++ } ++ free(LineBuf); ++ currct = BoundaryCt; ++ oldct=ContentType; ++ oldce=ContentEncoding; ++ oldcparmsused = CParamsUsed; ++ oldcparamsalloced = CParamsAlloced; ++ oldcparams = CParams; ++ oldcparamvalues = CParamValues; ++ CParams = NULL; ++ CParamValues = NULL; ++ CParamsUsed = 0; ++ CParamsAlloced = 0; ++ while(currct == BoundaryCt) { ++ tmppart = (struct part *) malloc(sizeof(struct part)); ++ if (!tmppart) ExitWithError(nomem); ++ if (firstpart) { ++ thispart->next = tmppart; ++ thispart = tmppart; ++ } else { ++ firstpart = thispart = tmppart; ++ } ++ tmppart->next = NULL; ++ ContentType=NULL; ++ ContentEncoding=NULL; ++ Read822Prefix(0,0); ++ PrepareMessage(); ++ newctlen=5+strlen(ContentType); ++ for (j=0; jctype = newct; ++ MkTmpFileName(TmpFileNameBuf); ++ thispart->fname = malloc(1+strlen(TmpFileNameBuf)); ++ if (!thispart->fname) ExitWithError(nomem); ++ strcpy(thispart->fname, TmpFileNameBuf); ++ WriteTmpFile(thispart->fname, thispart->ctype); ++ strcat(TmpFileNameBuf, "H"); ++ headfp = fopen(TmpFileNameBuf, "w"); ++ if (headfp) { ++ fputs(mailheaders+12, headfp); ++ /* The +12 gets rid of MM_HEADERS=\n */ ++ fclose(headfp); ++ } ++ ++numparts; ++ } ++ ContentType=oldct; ++ ContentEncoding=oldce; ++ CParamsUsed = oldcparmsused; ++ CParamsAlloced = oldcparamsalloced; ++ CParams = oldcparams; ++ CParamValues = oldcparamvalues; ++ /* Now we've seen the last encapsulation boundary, but if there is a "postfix" ++ we must throw it away.*/ ++ if (BoundaryCt > 0) { ++ ConsumeRestOfPart(NULL); ++ } ++ *PartsWritten = firstpart; ++ UsedLittleFiles=1; ++ } ++ if (*from == 'n') { ++ char numbuf[10]; ++ sprintf(numbuf, "%d", numparts); ++ strcpy(to, numbuf); ++ to += strlen(numbuf); ++ } else { /* %F */ ++ for (tmppart = firstpart; tmppart != NULL; tmppart = tmppart->next) { ++ sprintf(to, "%s %s ", tmppart->ctype, tmppart->fname); ++ to += (strlen(tmppart->ctype) + strlen(tmppart->fname) + 2); ++ } ++ } ++ break; ++ case 's': ++ if (UsedLittleFiles) { ++ fprintf(stderr, "metamail: Bad mailcap entry: %s\n", controlstring); ++ ExitWithError("%%n and %%F are incompatible with %%s. Execution terminated."); ++ } ++ if (TmpFileName) { ++ strcpy(to, TmpFileName); ++ to += strlen(TmpFileName); ++ if (UsedTmpFileName) ++(*UsedTmpFileName); ++ } ++ UsedBigFile = 1; ++ break; ++ case '{': ++ s = index(from, '}'); ++ if (!s) { ++ fprintf(stderr, "Ignoring ill-formed parameter reference in mailcap file: %s\n", from); ++ break; ++ } ++ ++from; ++ *s = 0; ++ /* put in lower case */ ++ for (tmp=from; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ p = FindParam(from); ++ if (p && p[0] == '"') { ++ p=UnquoteString(p); ++ } ++ if (!p) p = ""; ++ *to++ = '\''; ++ strcpynoquotes(to, p); ++ to += strlen(p); ++ *to++ = '\''; ++ *s = '}'; /* restore */ ++ from = s; ++ break; ++ case 't': ++ /* type/subtype */ ++ strcpynoquotes(to, ContentType); ++ to += strlen(ContentType); ++ break; ++ default: ++ fprintf(stderr, "Ignoring unrecognized format code in mailcap file: %%%c\n", *from); ++ break; ++ } ++ } else if (*from == '%') { ++ prefixed = 1; ++ } else { ++ *to++ = *from; ++ } ++ } ++ *to = 0; ++} ++ ++strcpynoquotes(t,f) ++char *t, *f; ++{ ++ static char *badchars="|<>%*?\"`'"; ++ ++ while (*f) { ++ if (index(badchars, *f)) *t++ = ' '; else *t++ = *f; ++ ++f; ++ } ++} ++ ++WriteTmpFile(fname, ctype) ++char *fname; ++char *ctype; ++{ ++ FILE *fpout; ++ int retval = 0; ++ ++ fpout = fopen(fname, WRITE_BINARY); ++ if (!fpout) { ++ perror("WriteTmpFile"); ++ ExitWithError("Can't create temporary file"); ++ } ++ TranslateInputToOutput(InputFP, fpout, EncodingCode, ctype); ++ if (ftell(fpout) == 0) retval = 1; ++ if (fclose(fpout)) ExitWithError("Can't write temporary file"); ++ return(retval); ++} ++ ++ ++TranslateInputToOutput(InputFP, OutputFP, Ecode, ctype) ++FILE *InputFP, *OutputFP; ++int Ecode; ++char *ctype; ++{ ++ int InMultipart = BoundaryCt > 0 ? 1 : 0; ++ ++ switch(Ecode) { ++ case ENCODING_BASE64: ++ from64(InputFP, OutputFP, InMultipart ? Boundaries : NULL, &BoundaryCt, DoesNeedPortableNewlines(ctype)); ++ break; ++ case ENCODING_QUOTEDPRINTABLE: ++ fromqp(InputFP, OutputFP, InMultipart ? Boundaries : NULL, &BoundaryCt); ++ break; ++ case ENCODING_UUENCODE: ++ fromuue(InputFP, OutputFP, InMultipart ? Boundaries: NULL, &BoundaryCt); ++ break; ++ default: ++ ConsumeRestOfPart(OutputFP); ++ } ++#if !defined(AMIGA) && !defined(MSDOS) ++ if (UsingStandardInput && feof(InputFP) && !freopen("/dev/tty", "r", stdin)) { ++ fprintf(stderr, "Warning: Cannot freopen /dev/tty to stdin"); ++ } else InputFP = stdin; ++#endif ++} ++ ++CreateNewWindowPrefix(Prefix) ++char *Prefix; ++{ ++ char *override = getenv("TERMINAL_CMD"); ++ if (override) { ++ strcpy(Prefix, override); ++#ifdef AMIGA ++ } else { ++ /* The window should *not* run in background. We are thus unable ++ * to use NewWsh or NewCLI. ++ */ ++ /* strcpy(Prefix, "newwsh CMD "); */ ++ Prefix[0] = 0; ++#else ++ } else if (getenv("DISPLAY")) { ++ /* X11 */ ++ strcpy(Prefix, "xterm -title '"); ++ strcat(Prefix, MailSummary); ++ strcat(Prefix, "' -e "); ++ } else if (getenv("WINDOW_PARENT")) { ++ /* SunView */ ++ strcpy(Prefix, "shelltool "); ++ } else if (getenv("WMHOST")) { ++ /* old Andrew WM */ ++ strcpy(Prefix, "h19 "); ++ } else { ++ /* last resort is to look for /dev/tty */ ++ if (!freopen("/dev/tty", "r", stdin)){ ++ ExitWithError("Don't know how to create a terminal window"); ++ } ++ InputFP = stdin; ++ fprintf(stderr, "Warning, reopened /dev/tty, could be strange.\n"); ++ Prefix[0] = 0; ++#endif ++ } ++} ++ ++int HasSavedTtyState=0; ++#if !defined(AMIGA) && !defined(MSDOS) ++#ifdef SYSV ++static struct termio MyTtyStateIn, MyTtyStateOut; ++#else ++static struct sgttyb MyTtyStateIn, MyTtyStateOut; ++#endif ++#endif ++ ++SaveTtyState() { ++ /* Bogus -- would like a good portable way to reset the terminal state here */ ++#if !defined(AMIGA) && !defined(MSDOS) ++#ifdef SYSV ++ ioctl(fileno(stdin), TCGETA, &MyTtyStateIn); ++ ioctl(fileno(stdout), TCGETA, &MyTtyStateOut); ++#else ++ gtty(fileno(stdin), &MyTtyStateIn); ++ gtty(fileno(stdout), &MyTtyStateOut); ++#endif ++ HasSavedTtyState = 1; ++#endif ++} ++ ++RestoreTtyState() { ++#if !defined(AMIGA) && !defined(MSDOS) ++#ifdef SYSV ++ if (HasSavedTtyState) { ++ ioctl(fileno(stdout), TCSETA, &MyTtyStateOut); ++ ioctl(fileno(stdin), TCSETA, &MyTtyStateIn); ++ } ++#else ++ if (HasSavedTtyState) { ++ stty(fileno(stdout), &MyTtyStateOut); ++ stty(fileno(stdin), &MyTtyStateIn); ++ } ++#endif ++#endif ++} ++ ++NeedToAskBeforeExecuting(type) ++char *type; ++{ ++ struct NoAskItem *nai; ++ if (!MightAskBeforeExecuting || DoInBackground) return(0); ++ for (nai = FirstNoAskItem; nai; nai = nai->next) { ++ if (CtypeMatch(type, nai->type)) return(0); ++ } ++ return(1); ++} ++ ++NeedToBeQuiet(cmd) ++char *cmd; ++{ ++ struct NoAskItem *nai; ++ for (nai = FirstQuietItem; nai; nai = nai->next) { ++ if (!lc2strcmp(nai->type, cmd)) return(1); ++ } ++ return(0); ++} ++ ++CtypeMatch(ctype, pat) ++char *ctype, *pat; ++{ ++ int len; ++ char pat2[200]; ++ ++ if (!lc2strcmp(ctype, pat)) { ++ return(1); /* exact match, case-insensitive */ ++ } ++ if (index(pat, '/') == NULL) { ++ /* implicit wildcard */ ++ strcpy(pat2, pat); ++ strcat(pat2, "/*"); ++ pat = pat2; ++ } ++ len = strlen(pat); ++ if ((pat[--len] == '*') ++ && (pat[--len] == '/') ++ && (!lc2strncmp(ctype, pat, len)) ++ && ((ctype[len] == '/') || (ctype[len] == '\0'))){ ++ /* wildcard match */ ++ return(1); ++ } ++ return(0); ++} ++ ++ExecuteCommand(cmd, really) ++char *cmd; ++int really; ++{ ++ int code; ++ if (!Quiet || DoDebug) { ++ if (!NeedToBeQuiet(ShortCommand(cmd))) { ++ printf("---Executing: %s\n", DoDebug ? cmd : ShortCommand(cmd)); ++ } else if (EatLeadingNewlines) { ++ printf("\n"); ++ } ++ fflush(stdout); ++ } ++ if (really) { ++ fflush(stdout); fflush(stderr); ++ code = system(cmd); ++ if (DoDebug) printf("Command exit status: %d\n", code); ++#ifdef MSDOS ++ code = 0; /* system doesn't return a valid exit code on MS-DOS */ ++#endif ++ return(code); ++ } ++ return(0); ++} ++ ++MkTmpFileName(name) ++char *name; ++{ ++ int length = MAX_FILE_NAME_SIZE; ++ char* tmpname = NULL; ++ ++#ifdef AMIGA ++ strcpy(name, "T:mmXXXXXX"); ++ close(mkstemp(name)); ++#else ++ #ifndef MSDOS ++ sprintf(name, "%s/mm.XXXXXX", tmproot); ++ close(mkstemp(name)); ++ #else ++ strcpy(name, "TXXXXXX"); ++ if (!close(mkstemp(name))) ++ name[0] = 0; ++ else ++ if (DoDebug) printf("temp name = \"%s\"\n", name); ++ #endif ++#endif ++ fprintf( stderr, "strlen\n"); ++ if (name) ++ length = strlen(name); ++ ++ fprintf( stderr, "after strlen\n"); ++ tmpname = malloc( sizeof(char) * length ); ++ fprintf( stderr, "after malloc\n"); ++ strcpy( tmpname, name ); ++ fprintf( stderr, "after strcpy\n"); ++ dlist_insertnew( &TmpNameListTail, (void*) tmpname ); ++ fprintf( stderr, "after dlistinsert\n"); ++ tmpname = NULL; ++} ++ ++void ++CleanupTmpFiles( void ) ++{ ++ DList* help = TmpNameListTail; ++ DList* old = NULL; ++ ++ while (help) { ++ if (unlink( (char*) help->data ) < 0) ++ if (DoDebug) ++ fprintf( stderr, "error unlinking %s\n", (char*) help->data ); ++ old = help; ++ help = help->prev; ++ free( old ); ++ } ++ ++ TmpNameListTail = NULL; ++} ++ ++#ifdef AMIGA ++/* We need to execute a command and then remove a file "fileToRemove". ++ * MkRmScript() creates a shell script that accomplishes this. The script ++ * is written to a temporary file. The name of the script is returned. ++ */ ++char * ++MkRmScript(command, fileToRemove, nameBuf) ++char *command; ++char *fileToRemove; ++char *nameBuf; ++{ ++ FILE *script; ++ ++ MkTmpFileName(nameBuf); ++ if ((script = fopen(nameBuf, "w")) == NULL) { ++ fprintf(stderr, "Unable to open %s for writing\n", nameBuf); ++ exit(1); ++ } ++ fprintf(script, ".BRA {\n.KET }\n%s\nDelete %s QUIET\n", command, fileToRemove); ++ fclose(script); ++ return(nameBuf); ++} ++#endif ++ ++void ++ConsumeRestOfPart(outfp) ++FILE *outfp; ++{ ++ char *Buf; ++ int c; ++ ++ if (BoundaryCt <= 0) { ++ while ((c=getc(InputFP)) != EOF) { ++ if (outfp) putc(c, outfp); ++ } ++ return; ++ } ++ Buf = malloc(LINE_BUF_SIZE); ++ if (!Buf) ExitWithError(nomem); ++ while (fgets(Buf, LINE_BUF_SIZE, InputFP)) { ++ if ((BoundaryCt > 0) ++ && (Buf[0] == '-') ++ && (Buf[1] == '-') ++ && PendingBoundary(Buf, Boundaries, &BoundaryCt)) { ++ break; ++ } ++ if (outfp) fputs(Buf, outfp); ++ } ++ free(Buf); ++} ++ ++char *paramend(s) ++char *s; ++{ ++ int inquotes=0; ++ while (*s) { ++ if (inquotes) { ++ if (*s == '"') { ++ inquotes = 0; ++ } else if (*s == '\\') { ++ ++s; /* skip a char */ ++ } ++ } else if (*s == ';') { ++ return(s); ++ } else if (*s == '"') { ++ inquotes = 1; ++ } ++ ++s; ++ } ++ return(NULL); ++} ++ ++void ++ParseContentParameters(ct) ++char *ct; ++{ ++ char *s, *t, *eq; ++ ++ CParamsUsed = 0; ++ s = index(ct, ';'); ++ if (!s) return; ++ *s++ = 0; ++ do { ++ t = paramend(s); ++ if (t) *t++ = 0; ++ eq = index(s, '='); ++ if (!eq) { ++ fprintf(stderr, "Ignoring unparsable content-type parameter: '%s'\n", s); ++ JunkParameter=Cleanse(s); ++ } else { ++ if (CParamsUsed >= CParamsAlloced) { ++ CParamsAlloced += 10; ++ if (CParams) { ++ CParams = (char **) realloc(CParams, (1+CParamsAlloced) * sizeof (char *)); ++ CParamValues = (char **) realloc(CParamValues, (1+CParamsAlloced) * sizeof (char *)); ++ } else { ++ CParams = (char **) malloc((1+CParamsAlloced) * sizeof (char *)); ++ CParamValues = (char **) malloc((1+CParamsAlloced) * sizeof (char *)); ++ } ++ if (!CParams || !CParamValues) ExitWithError(nomem); ++ } ++ *eq++ = 0; ++ s = Cleanse(s); ++ CParams[CParamsUsed] = s; ++ /* strip leading white space */ ++ while (*eq && isspace((unsigned char) *eq)) ++eq; ++ /* strip trailing white space */ ++ StripTrailingSpace(eq); ++ CParamValues[CParamsUsed++] = eq; ++ if (DoDebug) printf("NEW PARAMETER: %s VALUE: %s\n", s, eq); ++ } ++ s = t; ++ } while (t); ++} ++ ++char *FindParam(s) ++char *s; ++{ ++ int i; ++ for (i=0; i ++ ++/* ++ * hack to metamail to decode uuencoded bodyparts ++ * Written by Keith Moore, February 1992 ++ */ ++ ++uueget (ptr, outfp, n) ++char *ptr; ++FILE *outfp; ++{ ++ unsigned char c1, c2, c3; ++ unsigned char p0, p1, p2, p3; ++ ++ p0 = (ptr[0] - ' ') & 0x3F; ++ p1 = (ptr[1] - ' ') & 0x3F; ++ p2 = (ptr[2] - ' ') & 0x3F; ++ p3 = (ptr[3] - ' ') & 0x3F; ++ ++ c1 = p0 << 2 | p1 >> 4; ++ c2 = p1 << 4 | p2 >> 2; ++ c3 = p2 << 6 | p3; ++ ++ if (n >= 1) ++ putc (c1, outfp); ++ if (n >= 2) ++ putc (c2, outfp); ++ if (n >= 3) ++ putc (c3, outfp); ++} ++ ++ ++getline (buf, size, fp) ++char *buf; ++int size; ++FILE *fp; ++{ ++ int c; ++ char *ptr = buf; ++ ++ for (c = 0; c < size; ++c) ++ buf[c] = ' '; ++ do { ++ c = getc (fp); ++ if (c == EOF) { ++ *ptr = '\0'; ++ return (ptr == buf) ? -1 : 0; ++ } ++ else if (c == '\n' || c == '\r') { ++ *ptr = '\0'; ++ return 0; ++ } ++ else if (ptr == buf && c == '>') /* ">From" line hack */ ++ continue; ++ else if (size > 0) { ++ *ptr++ = c; ++ size--; ++ } ++ } while (1); ++ return ++(0); /* shut lint up */ ++} ++ ++ ++fromuue (infp, outfp, boundaries, ctptr) ++FILE *infp, *outfp; ++char **boundaries; ++int *ctptr; ++{ ++ char buf[63]; ++ ++ while (1) { ++ if (getline (buf, sizeof buf, infp) < 0) { ++ fprintf (stderr, "Premature EOF!\n"); ++ return; ++ } ++ if (strncmp (buf, "begin", 5) == 0) ++ break; ++ else if (buf[0] == '-' && buf[1] == '-') { ++ if (boundaries && PendingBoundary (buf, boundaries, ctptr)) ++ return; ++ } ++ } ++ while (1) { ++ if (getline (buf, sizeof buf, infp) < 0) { ++ fprintf (stderr, "Premature EOF!\n"); ++ return; ++ } ++ else if (strncmp (buf, "end", 5) == 0) ++ break; ++ else if (buf[0] == '-' && buf[1] == '-') { ++ if (boundaries && PendingBoundary (buf, boundaries, ctptr)) { ++ fprintf (stderr, "premature end of x-uue body part\n"); ++ return; ++ } ++ else { ++ fprintf (stderr, "ignoring invalid boundary marker\n"); ++ continue; ++ } ++ } ++ else if (*buf == '\0') continue; ++ else { ++ int length = (*buf - ' '); ++ if (*buf == '`') ++ length = 0; ++ if (length < 0 || length > 63) { ++ fprintf (stderr, "fromuue: illegal length (%d)\n", ++ length); ++ } ++/* Nathan Maman recommends commenting out the next two lines */ ++ else if (length == 0) ++ break; ++ else { ++ char *ptr = buf + 1; ++ while (length > 0) { ++ uueget (ptr, outfp, length); ++ length -= 3; ++ ptr += 4; ++ } ++ } ++ } ++ } ++} ++ +--- metamail-2.7.orig/src/metamail/metamail.h ++++ metamail-2.7/src/metamail/metamail.h +@@ -0,0 +1,62 @@ ++#ifndef METAMAIL_H ++#define METAMAIL_H ++ ++#include ++#include ++ ++BEGIN_C_DECLS ++ ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define METAMAIL "metamail" ++ ++#define WRITE_BINARY "w" ++ ++#define CMDSIZE 1200 /* Maximum size of command to execute */ ++ ++#define LINE_BUF_SIZE 2000 ++ ++//static char *nomem = "Out of memory!"; ++extern char *mmversion; ++extern char *NoAskDefault; ++extern char *QuietDefault; ++extern char *tmproot; ++ ++#define ENCODING_NONE 0 ++#define ENCODING_BASE64 1 ++#define ENCODING_QUOTEDPRINTABLE 2 ++#define ENCODING_8BIT 3 ++#define ENCODING_UUENCODE -1 /* non-standard */ ++ ++// for mailto.c (cutted and pasted ere) ++#define MINCHUNKSIZE 20000 /* Better be enough to hold the headers, or we ++ die! */ ++#define MAX_LINELENGTH 2000 ++ ++struct NoAskItem { ++ char *type; ++ struct NoAskItem *next; ++}; ++ ++extern char *mailheaders; ++extern char *MailerName; ++extern char *ContentType; ++extern int Quiet; ++extern struct NoAskItem *FirstNoAskItem; ++extern struct NoAskItem *FirstQuietItem; ++extern int TransparentMode; ++extern int RunAsRootOK; ++extern int DoDebug; ++extern int YankMode; ++extern int MightAskBeforeExecuting; ++extern int DefinitelyNotTty; ++extern int MustNotBeTty; ++extern int MaybePageOutput; ++ ++END_C_DECLS ++ ++#endif /* METAMAIL_H */ ++ ++ ++ ++ +--- metamail-2.7.orig/src/metamail/environment.c ++++ metamail-2.7/src/metamail/environment.c +@@ -0,0 +1,181 @@ ++/* Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++ ++/* environment.c - contains (nearly) everything for the environmenthandling ++ ++ Author: Michael Moerz ++*/ ++ ++#include "metamail.h" ++#include "environment.h" ++ ++/** adds a string to the current environmet variable PATH ++ @param auxpath path to add to $PATH (=auxiliary path) ++*/ ++void ++addToPath(auxpath) ++char *auxpath; ++{ ++ if (auxpath && *auxpath) { /* when pointer and auxpath[0] are != NULL */ ++ static char *newpath = 0; /* is needed! since it becomes part ov ENV */ ++ char *oldpath = newpath; ++ char *path = getenv("PATH"); ++ ++ if (!path) path = ""; /* give a default if no current path */ ++ newpath = XMALLOC(char, (7 + strlen(path) + strlen(auxpath))); ++ sprintf(newpath, "PATH=%s:%s", auxpath, path); ++ putenv(newpath); ++ if (oldpath) XFREE(oldpath); /* free up any old allocated PATH */ ++ } ++} ++ ++/** initialize global variable mailheaders from environment ++ this code is needed at several places -> own function ++*/ ++void ++initMailHeadersFromEnvironment() { ++ mailheaders = getenv("MM_HEADERS"); ++ if (mailheaders) { ++ char *s; ++ s = XMALLOC(char, 15+strlen(mailheaders)); ++ sprintf(s, "MM_HEADERS=%s", mailheaders); ++ /* error? free mailheaders? */ ++ mailheaders = s; ++ } ++} ++ ++/** initializes variables from environment variables or sets them to default ++ values if they are not found in the environment ++*/ ++void ++initVarsFromEnvironment() { ++ char *QuietStr = NULL, *NoAskStr = NULL; ++ ++ /* temporary directory - where all temporary files are created */ ++ tmproot = getenv("METAMAIL_TMPDIR"); ++ if (!tmproot) { ++ tmproot = XMALLOC(char, 5); ++ strcpy(tmproot, "/tmp"); ++ } ++ ++ /* */ ++ initMailHeadersFromEnvironment(); ++ ++ /* the quietstring that can turn off output for various things */ ++ QuietStr = getenv("MM_QUIET"); ++ if (!QuietStr) /* when not set in the environment set default */ ++ QuietStr = QuietDefault; ++ /* now either we are always quiet (="1") or we have to create a structure ++ containing information about when we have to be quiet ++ */ ++ if (!strcmp(QuietStr, "1")) { /* when Quietstr == "1" */ ++ Quiet = 1; ++ } else { ++ struct NoAskItem *qitem; ++ char *s, *tmp; ++ char *QuietCopy; ++ ++ Quiet = 0; ++ QuietCopy = XMALLOC(char, 1+strlen(QuietStr)); ++ strcpy(QuietCopy, QuietStr); ++ for (tmp=QuietCopy; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) ++ *tmp = tolower((unsigned char) *tmp); ++ } ++ do { ++ s = index(QuietCopy, ','); ++ if (s) *s++ = 0; ++ qitem = XMALLOC(struct NoAskItem, 1); ++ qitem->next = FirstQuietItem; ++ qitem->type = QuietCopy; ++ FirstQuietItem = qitem; ++ QuietCopy = s; ++ } while (QuietCopy); ++ } ++ ++ /* */ ++ if (getenv("MM_TRANSPARENT")) { ++ /* Will not propogate recursively */ ++ TransparentMode = atoi(getenv("MM_TRANSPARENT")); ++ } ++ ++ /* override for allowing to run as root -- DANGER WILL ROBINSON */ ++ if (getenv("MM_RUNASROOT")) { ++ RunAsRootOK = atoi(getenv("MM_RUNASROOT")); ++ } ++ ++ /* */ ++ if (getenv("MM_YANKMODE")) { ++ /* Will not propogate recursively */ ++ YankMode = atoi(getenv("MM_YANKMODE")); ++ } ++ ++ /* debug flag */ ++ if (getenv("MM_DEBUG")) { ++ DoDebug = atoi(getenv("MM_DEBUG")); ++ } ++ ++ /* put that somewhere else */ ++ if (DoDebug) ++ printf("Metamail Version %s, debugging turned on.\n", mmversion); ++ ++ /* similar to quiet */ ++ NoAskStr = getenv("MM_NOASK"); ++ if (!NoAskStr) /* when noask not set in the ENV then init to default */ ++ NoAskStr = NoAskDefault; ++ if (!strcmp(NoAskStr, "1")) { ++ MightAskBeforeExecuting = 0; ++ } else { ++ struct NoAskItem *nai; ++ char *s, *tmp; ++ char *NoAskCopy; ++ ++ NoAskCopy = XMALLOC(char, 1+strlen(NoAskStr)); ++ strcpy(NoAskCopy, NoAskStr); ++ for (tmp=NoAskCopy; *tmp; ++tmp) { ++ if (isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ do { ++ s = index(NoAskCopy, ','); ++ if (s) *s++ = 0; ++ nai = XMALLOC(struct NoAskItem, 1); ++ nai->next = FirstNoAskItem; ++ nai->type = NoAskCopy; ++ FirstNoAskItem = nai; ++ NoAskCopy = s; ++ } while (NoAskCopy); ++ } ++ ++ /* hmm, perhaps mailprogram name ? */ ++ MailerName = getenv("MM_MAILER"); ++ if (!MailerName) ++ MailerName = "unknown"; ++ ++ /* */ ++ if (getenv("MM_USEPAGER")) { ++ MaybePageOutput = atoi(getenv("MM_USEPAGER")); ++ } ++ ++ /* setting if we have a tty or not */ ++ if ((getenv("MM_NOTTTY") && ((atoi(getenv("MM_NOTTTY"))) != 0))) { ++ MustNotBeTty = 1; ++ } ++ if (MustNotBeTty ++ || !isatty(0) ++ || !isatty(1)) { ++ DefinitelyNotTty = 1; ++ } ++ ++ ++} +--- metamail-2.7.orig/src/metamail/environment.h ++++ metamail-2.7/src/metamail/environment.h +@@ -0,0 +1,11 @@ ++#ifndef METAMAIL_ENVIRONMENT_H ++#define METAMAIL_ENVIRONMENT_H 1 ++ ++#define ENVIRONMENT_TMPROOT_DEFAULT_LEN 5 ++#define ENVIRONMENT_TMPROOT_DEFAULT "/tmp" ++ ++void addToPath (char *); ++void initMailHeadersFromEnvironment (); ++void initVarsFromEnvironment (); ++ ++#endif /* METAMAIL_ENVIRONMENT_H */ +--- metamail-2.7.orig/src/metamail/mailto.c ++++ metamail-2.7/src/metamail/mailto.c +@@ -0,0 +1,2433 @@ ++/* ++Copyright (c) 1992 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++ ++/* ++Program: mailto ++Author: Nathaniel S. Borenstein ++ ++ This is a program that allows users to send MIME-format mail with much ++ the same user interface as the Berkeley mail program. ++ ++ However, it should be stressed that this program includes ++ ABSOLUTELY NO CODE taken from Berkeley mail -- it is a ++ "clean" reimplementation. ++ ++ The user interface is directly modelled on Berkeley mail, ++ and the desiderata for its design are taken from the man ++ page for that program. ++ ++ For information on using this program, consult the man page. ++ ++STILL NEED TO DO/SUPPORT: ++ ++-- Replace the main fgets call with something that allows in-line escape codes to do the equivalent of the tilde escapes. Handle margins, centering, excerpts, EightBitMode, and RightToLeft mode properly. ++-- Replace EditString with something that does the right thing in-line. ++*/ ++ ++#include ++ ++#include /* This and next for tgetstr(3X) and kin */ ++#include ++ ++#include "metamail.h" ++#include "metamail_default.h" ++ ++struct mailpart *CreateNewPart(); ++char *getmyname(); /* Defined in shared.c */ ++ ++ ++/* The main data structure for the multiple parts of the mail */ ++ ++struct mailpart { ++ int istext; ++ int isrich; ++ char *content_type; ++ int encoding_type_needed; ++ char *filename; ++ struct MailcapEntry *mc; ++ struct mailpart *next, *prev; ++}; ++ ++/* Some globals */ ++struct mailpart *FirstPart = NULL; ++static char *Subject = NULL, *ToList = NULL, *CCList= NULL, *InReplyTo = NULL; ++FILE *fpout = NULL; ++static char *CharacterSet = NULL; ++static int PartEndsWithNewline=1; ++static int SplitSize=DEFAULT_SPLIT_SIZE; ++ ++char *deadLetter = "dead.letter"; ++char *signature = ".signature"; ++char *mimeSignature = ".SIGNATURE"; ++#define TMPFILE_NAME_SIZE 1000 ++#define FILE_NAME_SIZE 1000 ++ ++#define DEFAULT_EDITOR "vi" ++ ++#define SYSTEM(command) system(command); ++ ++ ++/* The following are the globals that can be set via .mailrc */ ++int V_askcc=0, /* To ask about the Cc field */ ++ V_dot=0, /* To take a period as the end of input */ ++ V_ignore=0, /* To ignore interrupts */ ++ V_verbose=0, /* To run sendmail with -v */ ++ V_quiet=0, /* To suppress various informational output */ ++ V_keepblind=0, /* To receive a blind copy of outgoing mail. */ ++ V_commasonly=0; /* To suppress using spaces as address separators */ ++ ++/* Codes for encoding_type_needed */ ++#define ENC_NONE 0 ++#define ENC_QP 1 /* quoted-printable */ ++#define ENC_B64 2 /* base64 */ ++ ++/* Codes for JustificationState */ ++#define JUST_LEFT 0 ++#define JUST_RIGHT 1 ++#define JUST_CENTER 2 ++int JustificationState = JUST_LEFT; ++ ++ ++EightBitCharHelp() { ++ if (!CharacterSet || !strcmp(CharacterSet, "us-ascii")) { ++ printf("There are no extended characters available for your US-ASCII terminal.\n\n"); ++ printf("If you are actually using a terminal or terminal emulator with a richer\ncharacter set, you must use the '-a' option or the 'MM_CHARSET' environment\nvariable to inform this program of that fact.\n"); ++ } else { ++ static char *kbd1[] = ++ { ++ "1234567890-=", ++ "qwertyuiop[]", ++ "asdfghjkl;'`", ++ "zxcvbnm,./\\", ++ NULL ++ }; ++ static char *kbd2[] = /* MUST have same # of entries as kbd1 */ ++ { ++ "!@#$%^&*()_+", ++ "QWERTYUIOP{}", ++ "ASDFGHJKL:\"~", ++ "ZXCVBNM<>?|", ++ NULL ++ }; ++ char *s; ++ int i, ct; ++ ++ printf("Here is the keyboard map for the character set %s\n.If your terminal does not really use this character set, this may look strange.\n\n", CharacterSet); ++ for (i=0; kbd1[i]; ++i) { ++ for (ct=0, s=kbd1[i]; *s; ++s) { ++ printf("%c%c ", *s, (*s) + 128); ++ ct+=3; ++ } ++ while (ct++<40) printf(" "); ++ for (s=kbd2[i]; *s; ++s) { ++ printf("%c%c ", *s, (*s) + 128); ++ } ++ printf("\n"); ++ } ++ } ++} ++ ++char * ++tmpname() { ++ char *s = malloc(30); ++ if (!s) nomemabort(); ++ { ++ char *tmproot = getenv("METAMAIL_TMPDIR"); ++ if (!tmproot) tmproot="/tmp"; ++ if (strlen(tmproot) > 19) { ++ free(s); ++ s=malloc(12+strlen(tmproot)); ++ if (!s) nomemabort(); ++ } ++ sprintf(s, "%s/mm.XXXXXX", tmproot); ++ } ++ return(s); ++} ++ ++TildeHelp() { ++ char *pager = getenv("PAGER"); ++ char TmpName[100], CmdBuf[150]; ++ FILE *fp; ++ ++ strcpy(TmpName, tmpname()); ++ fp = fdopen(mkstemp(TmpName), "w"); ++ if (!fp) fp = stdout; ++ fprintf(fp, "The following tilde escapes are BSD-mail-compatible:\n"); ++ fprintf(fp, "~? Show help on tilde escapes\n"); ++ fprintf(fp, "~| RESERVED FOR BSD MAIL COMPATIBILITY\n"); ++ fprintf(fp, "~f RESERVED FOR BSD MAIL COMPATIBILITY\n"); ++ fprintf(fp, "~m RESERVED FOR BSD MAIL COMPATIBILITY\n"); ++ fprintf(fp, "~! Shell escape\n"); ++ fprintf(fp, "~~ Enter text line starting with a tilde\n"); ++ fprintf(fp, "~. Send the mail and exit\n"); ++ fprintf(fp, "~c Add to Cc list\n"); ++ fprintf(fp, "~d Read from %s (or named file, ~d filename)\n", deadLetter); ++ fprintf(fp, "~e Edit message being composed\n"); ++ fprintf(fp, "~h Edit the headers\n"); ++ fprintf(fp, "~p Print out the message so far\n"); ++ fprintf(fp, "~q Quit, copying to %s\n", deadLetter); ++ fprintf(fp, "~r Read the named text file into the message\n"); ++ fprintf(fp, "~s Reset the subject\n"); ++ fprintf(fp, "~t Add to To list\n"); ++ fprintf(fp, "~v Edit using VISUAL editor\n"); ++ fprintf(fp, "~w Write message to named file\n"); ++ fprintf(fp, "\n"); ++ fprintf(fp, "The following tilde escapes are unique to this program:\n"); ++ fprintf(fp, "~/ Set maximum size before message is split into multiple parts\n"); ++ fprintf(fp, "~?+ Show help on extended (eight-bit) characters\n"); ++ fprintf(fp, "~> Indent Left Margin\n"); ++ fprintf(fp, "~< Unindent Left Margin\n"); ++ fprintf(fp, "~R Unindent Right Margin\n"); ++ fprintf(fp, "~+ Enter 8-bit mode for non-ASCII characters\n"); ++ fprintf(fp, "~- Leave 8-bit mode (return to ASCII)\n"); ++ fprintf(fp, "~^ Toggle \"Upside-down\" (right-to-left) mode.\n"); ++ fprintf(fp, "~* Add non-text data (pictures, sounds, etc.) as a new MIME part (try it!)\n"); ++ fprintf(fp, "~b Toggle bold mode\n"); ++ fprintf(fp, "~i Toggle italic mode\n"); ++ fprintf(fp, "~j Alter Justification (~jc = center, ~jl = flushleft, ~jr = flushright.)\n"); ++ fprintf(fp, "~k Toggles whether or not to keep a 'blind' copy of your mail\n"); ++ fprintf(fp, "~n Force newline (hard line break)\n"); ++ fprintf(fp, "~Q Toggle quotation (excerpt) mode\n"); ++ fprintf(fp, "~S Toggle Semitic text mode (combines 8-bit and left-to-right)\n"); ++ fprintf(fp, "~u Toggle underline mode\n"); ++ fprintf(fp, "~z Add the contents of %s as a TEXT signature.\n", signature); ++ fprintf(fp, "~Z Add the contents of %s as a NON-TEXT (MIME-format) signature.\n", mimeSignature); ++ fprintf(fp, "For further information, read the man page.\n"); ++ fprintf(fp, "\n"); ++ if (fp != stdout) { ++ fclose(fp); ++ snprintf(CmdBuf, sizeof(CmdBuf), "%s %s", pager ? pager : "sensible-pager", TmpName); ++ SYSTEM(CmdBuf); ++ unlink(TmpName); ++ } ++} ++ ++char *gethome() { ++ struct passwd *p = getpwuid(getuid()); ++ if (!p || !p->pw_dir) { ++ perror("Cannot find your home directory, using /tmp"); ++ return("/tmp"); ++ } ++ return (p->pw_dir); ++} ++ ++ ++static char standoutbuf[50], standendbuf[50], StartUnderline[50], StopUnderline[50], BoldOn[50], BoldOff[50], KS[50], KE[50]; ++static int termcolumns, termrows; ++ ++InitTerminal() { ++ char tbuf[1024], *term, *dum; ++ ++ term = getenv("TERM"); ++ if (term && tgetent(tbuf, term) != 1) { ++ term = NULL; ++ } ++ if (term) { ++ dum = KS; ++ if (tgetstr("ks", &dum)) *dum = '\0'; else KS[0] = '\0'; ++ dum = KE; ++ if (tgetstr("ke", &dum)) *dum = '\0'; else KE[0] = '\0'; ++ dum = standoutbuf; ++ if (tgetstr("so", &dum)) *dum = '\0'; else standoutbuf[0] = '\0'; ++ dum = standendbuf; ++ if (tgetstr("se", &dum)) *dum = '\0'; else standendbuf[0] = '\0'; ++ dum = BoldOn; ++ if (tgetstr("md", &dum)) *dum = '\0'; else strcpy(BoldOn, standoutbuf); ++ dum = BoldOff; ++ if (tgetstr("me", &dum)) *dum = '\0'; else strcpy(BoldOff, standendbuf); ++ dum = StartUnderline; ++ if (tgetstr("us", &dum)) *dum = '\0'; else StartUnderline[0] = '\0'; ++ dum = StopUnderline; ++ if (tgetstr("ue", &dum)) *dum = '\0'; else StopUnderline[0] = '\0'; ++ termcolumns = tgetnum("co"); ++ if (termcolumns <= 0) termcolumns = 80; ++ termrows = tgetnum("li"); ++ if (termrows <= 0) termrows = 23; ++ } else { ++ KS[0] = '\0'; ++ KE[0] = '\0'; ++ standoutbuf[0] = '\0'; ++ standendbuf[0] = '\0'; ++ BoldOn[0] = '\0'; ++ BoldOff[0] = '\0'; ++ StartUnderline[0] = '\0'; ++ StopUnderline[0] = '\0'; ++ termcolumns = 80; ++ termrows = 23; ++ } ++ fputs(KS, stdout); ++} ++ ++FinalizeTerminal() { ++ tfputs(standendbuf); ++ tfputs(BoldOff); ++ tfputs(StopUnderline); ++} ++ ++struct mailpart * ++NewPart() { ++ struct mailpart *p; ++ p = (struct mailpart *) malloc(sizeof(struct mailpart)); ++ if (!p) nomemabort(); ++ p->istext = 1; ++ p->isrich = 0; ++ p->content_type = "text/plain"; ++ p->encoding_type_needed = ENC_NONE; ++ p->filename = tmpname(); ++ p->mc = NULL; ++ p->next = NULL; ++ p->prev = NULL; ++ return(p); ++} ++ ++nomemabort() { ++ fprintf(stderr, "mailto: Out of memory\n"); ++ cleanexit(-1); ++} ++ ++char * ++freshcopy(s) ++char *s; ++{ ++ char *t = malloc(1+strlen(s)); ++ if (!t) nomemabort(); ++ strcpy(t, s); ++ return(t); ++} ++ ++char * ++GetLineMalloced(prompt, def) ++char *prompt, *def; ++{ ++ char Sbuf[1000], *ans; ++ printf("%s: ", prompt); ++ fflush(stdout); ++ ans = fgets(Sbuf, sizeof(Sbuf), stdin); ++ if (ans) { ++ /* Need a fresh copy */ ++ ans = malloc(1+strlen(Sbuf)); ++ if (!ans) nomemabort(); ++ strcpy(ans, Sbuf); ++ ans[strlen(ans) - 1] = '\0'; /* trash newline */ ++ } else { ++ /* Callers will free() this, so make a fresh copy as well */ ++ ans = malloc(1+strlen(def)); ++ if (!ans) nomemabort(); ++ strcpy(ans, def); ++ } ++ return(ans); ++} ++ ++char * ++EditString(prompt, s) ++char *prompt, *s; ++{ ++ char *ans; ++ char NewPrompt[500]; ++ if (!s) s = ""; ++ snprintf(NewPrompt, sizeof(NewPrompt), "%s [%s]", prompt, s); ++ ans = GetLineMalloced(NewPrompt, s); ++ while (*ans && isspace((unsigned char) *ans)) ++ans; ++ if (!*ans) return(s); ++ return(ans); ++} ++ ++char * ++AddCommasToAddressList(s) ++char *s; ++{ ++ int spaces = 0; ++ char *t, *ans, *ansptr; ++ ++ if (V_commasonly) { ++ ans = malloc(1+strlen(s)); ++ if (!ans) nomemabort; ++ strcpy(ans, s); ++ return(ans); ++ } ++ for (t=s; *t; ++t) { ++ if (*t == ' ') ++spaces; ++ } ++ /* That provides a max size for the mallocs */ ++ ans = malloc(1+strlen(s) +spaces); ++ if (!ans) nomemabort(); ++ ansptr = ans; ++ for (t=s; *t; ++t) { ++ if (*t == ' ' && *(t-1) != ',') { ++ *ansptr++ = ','; ++ } ++ *ansptr++ = *t; ++ } ++ *ansptr = '\0'; ++ while (--ansptr > ans && (isspace((unsigned char) *ansptr) || *ansptr == ',')) { ++ *ansptr = '\0'; ++ } ++ return(ans); ++} ++ ++char * ++AddToList(List, entry, definitelynew) ++char *List, *entry; ++int definitelynew; ++{ ++ int len; ++ char *end = entry+strlen(entry); ++ ++ while (--end >= entry && isspace((unsigned char) *end)) *end = '\0'; ++ if (! *entry) return(List); ++ if (List && *List) { ++ List = realloc(List, strlen(List) + strlen(entry) + 5); ++ if (!List) nomemabort(); ++ if (V_commasonly && !definitelynew) { ++ strcat(List, " "); ++ } else { ++ strcat(List, ", "); ++ } ++ strcat(List, entry); ++ } else { ++ List = malloc(strlen(entry) + 2); ++ if (!List) nomemabort(); ++ strcpy(List, entry); ++ } ++ len = strlen(List); ++ while (List[--len] == ',') List[len] = '\0'; ++ return(List); ++} ++ ++main(argc, argv) ++char **argv; ++{ ++ char *sdum, *LineBuf, CmdBuf[100]; ++ int i, EightBitMode = 0, RightToLeftMode = 0, AllDone=0, EightBitSeen=0, prevaddrdone=1; ++ FILE *fpin; ++ struct mailpart *CurrentPart=NULL; ++ ++ if ((LineBuf = malloc(MAX_LINELENGTH)) == NULL) { ++ fprintf(stderr, "mailto: Unable to allocate memory\n"); ++ exit(10); ++ } ++ ProcessInitFiles(); ++ InitSignals(); ++ InitTerminal(); ++ sdum = getenv("SPLITSIZE"); ++ if (sdum) { ++ i = atoi(sdum); ++ if (i < MINCHUNKSIZE) { ++ fprintf(stderr, "Ignoring SPLITSIZE environment variable of %d -- the minimum value is %d\n", i, MINCHUNKSIZE); ++ } else { ++ SplitSize = i; ++ } ++ } ++ ++ CharacterSet = getenv("MM_CHARSET"); ++ for (i=1; i"); ++ if (!CCList && V_askcc) { ++ sdum = GetLineMalloced("Cc", ""); ++ CCList = AddCommasToAddressList(sdum); ++ free(sdum); ++ } ++ FirstPart = NewPart(); ++ CurrentPart = FirstPart; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ while (!AllDone && fgets(LineBuf, MAX_LINELENGTH, stdin) != NULL) { ++ if (V_dot && LineBuf[0] == '.' && LineBuf[1] == '\n') { ++ AllDone = 1; ++ } else if (LineBuf[0] == '~') { ++ /* Clean up argument */ ++ char *start = LineBuf+2; ++ char *end = start + strlen(start); ++ while (--end > start && isspace((unsigned char) *end)) *end = '\0'; ++ while (isspace((unsigned char) *start)) ++start; ++ switch (LineBuf[1]) { ++ case '.': ++ AllDone = 1; ++ break; ++ case '?': ++ if (*start == '+') { ++ EightBitCharHelp(); ++ } else { ++ TildeHelp(); ++ } ++ break; ++ case '~': ++ FputsQuotingLT(LineBuf+1, fpout, CurrentPart, EightBitMode, RightToLeftMode); ++ break; ++ case '!': ++ if (!V_quiet) printf("Executing: %s\n", start); ++ SYSTEM(start); ++ break; ++ case '>': ++ CurrentPart->isrich = 1; ++ fputs("", fpout); ++ if (*start=='r' || *start == 'R') { ++ TryClosingStyle("indentright", fpout, CurrentPart); ++ } else { ++ TryOpeningStyle("indent", fpout, CurrentPart, NULL); ++ } ++ break; ++ case '<': ++ CurrentPart->isrich = 1; ++ fputs("", fpout); ++ if (*start == 'R' || *start == 'r') { ++ TryOpeningStyle("indentright", fpout, CurrentPart, NULL); ++ } else { ++ TryClosingStyle("indent", fpout, CurrentPart); ++ } ++ break; ++ case '/': ++ i = atoi(start); ++ if (i < MINCHUNKSIZE) { ++ fprintf(stderr, "Ignoring splitsize setting of %d -- the minimum value is %d\n", i, MINCHUNKSIZE); ++ } else { ++ SplitSize = i; ++ if (!V_quiet) printf("Set splitsize to %d\n", i); ++ } ++ break; ++ case '+': ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ fprintf(stderr, "mailto: No 8-bit characters allowed in ASCII mail\n"); ++ } else { ++ EightBitMode = 1; ++ if (!V_quiet) printf("Entering text in eight-bit mode\n"); ++ } ++ break; ++ case '-': ++ EightBitMode = 0; ++ if (!V_quiet) printf("Entering text in seven-bit (normal) mode\n"); ++ break; ++ case '^': ++ RightToLeftMode = ! RightToLeftMode; ++ if (!V_quiet) printf("%s right-to-left mode\n", RightToLeftMode ? "Entering" : "Exiting"); ++ break; ++ case '*': ++ { ++ struct mailpart *p = CreateNewPart(); ++ if (!p) break; ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ CurrentPart->next = p; ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ ReopenStyles(fpout, CurrentPart); ++ break; ++ } ++ case 'b': ++ ToggleStyle("bold", fpout, CurrentPart, BoldOn, BoldOff); ++ break; ++ case 'c': ++ CCList = AddToList(CCList, start, 1); ++ if (!V_quiet) printf("Cc field is now: %s\n", CCList); ++ break; ++ case 'd': ++ { ++ char fnam[FILE_NAME_SIZE]; ++ if (! *start) { ++ snprintf(fnam, sizeof(fnam), "%s/dead.letter", gethome()); ++ } else { ++ strcpy(fnam, start); ++ } ++ fpin = fopen(fnam, "r"); ++ if (!fpin) { ++ fprintf(stderr, "mailto: Cannot open file %s\n", fnam); ++ break; ++ } ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ CurrentPart->istext = 0; ++ CurrentPart->content_type = "message/rfc822"; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Cannot open temporary file %s\n", CurrentPart->filename); ++ break; ++ } ++ (void) TranslateInputToEncodedOutput(fpin, fpout, ENC_NONE, ""); ++ fclose(fpin); ++ fclose(fpout); ++ printf("Included contents of %s\n(continue)\n", fnam); ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ ReopenStyles(fpout, CurrentPart); ++ break; ++ } ++ case 'e': ++ EditCurrentMessage(0); ++ break; ++ case 'h': ++ ToList = AddCommasToAddressList(EditString("To", ToList)); ++ Subject = EditString("Subject", Subject); ++ CCList = AddCommasToAddressList(EditString("Cc", CCList)); ++ break; ++ case 'i': ++ ToggleStyle("italic", fpout, CurrentPart, standoutbuf, standendbuf); ++ break; ++ case 'j': ++ { ++ int NewJustificationState; ++ switch (*start) { ++ case 'c': ++ case 'C': ++ NewJustificationState = JUST_CENTER; ++ break; ++ case 'r': ++ case 'R': ++ NewJustificationState = JUST_RIGHT; ++ break; ++ case 'l': ++ case 'L': ++ NewJustificationState = JUST_LEFT; ++ break; ++ default: ++ printf("mailto: Unrecognized justification state: %c\n", *start); ++ NewJustificationState = JustificationState; ++ } ++ if (JustificationState == NewJustificationState) { ++ if (!V_quiet) printf("mailto: No change in justificiation\n"); ++ } else { ++ if (CurrentPart->isrich) { ++ if (JustificationState == JUST_CENTER) { ++ EndStyle(fpout, "center"); ++ } else if (JustificationState == JUST_RIGHT) { ++ EndStyle(fpout, "flushright"); ++ } else { ++ EndStyle(fpout, "flushleft"); ++ } ++ } ++ CurrentPart->isrich = 1; ++ fputs("", fpout); ++ JustificationState = NewJustificationState; ++ if (JustificationState == JUST_CENTER) { ++ StartStyle(fpout, "center", NULL); ++ } else if (JustificationState == JUST_RIGHT) { ++ StartStyle(fpout, "flushright", NULL); ++ } else { ++ StartStyle(fpout, "flushleft", NULL); ++ } ++ } ++ break; ++ } ++ case 'k': ++ V_keepblind = ! V_keepblind; ++ if (!V_quiet) printf("%s keep a blind copy of this message\n", V_keepblind ? "Will" : "Won't"); ++ break; ++ case 'n': ++ CurrentPart->isrich = 1; ++ fputs("", fpout); ++ if (!V_quiet) printf("Inserted line break\n"); ++ break; ++ case 'p': ++ { ++ FILE *fptmp; ++ char Cmd[TMPFILE_NAME_SIZE + 15]; ++ char *s=tmpname(); ++ fclose(fpout); ++ fptmp = fdopen(mkstemp(s), "w"); ++ WriteOutMessage(fptmp, ToList, Subject, CCList, FirstPart); ++ TempCloseStyles(fptmp); ++ fclose(fptmp); ++ fpout = fopen(CurrentPart->filename, "a"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ snprintf(Cmd, sizeof(Cmd), "metamail -z %s", s); ++ SYSTEM(Cmd); ++ free(s); ++ RestoreCurrentStyles(); ++ break; ++ } ++ case 'q': ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ if (!WriteDeadLetter()) cleanexit(0); ++ break; ++ case 'Q': ++ ToggleStyle("excerpt", fpout, CurrentPart, NULL, NULL); ++ break; ++ case 'r': ++ if (! *start) { ++ printf("mailto: No file name given.\n"); ++ break; ++ } ++ fpin = fopen(start, "r"); ++ if (!fpin) { ++ fprintf(stderr, "mailto: Cannot open file %s\n", start); ++ break; ++ } ++ EightBitSeen = TranslateInputToEncodedOutput(fpin, fpout, ENC_NONE, ""); ++ if (EightBitSeen ++ && (CurrentPart->istext || CurrentPart->isrich)) { ++ if (CurrentPart->encoding_type_needed == ENC_NONE) { ++ CurrentPart->encoding_type_needed = ENC_QP; ++ } ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ SwitchToEuropean(); ++ } ++ } ++ fclose(fpin); ++ if (!V_quiet) printf("Included contents of %s\n", start); ++ printf("(continue)\n"); ++ break; ++ case 'S': ++ /* Semitic language mode toggle */ ++ if (EightBitMode) { ++ EightBitMode = 0; ++ RightToLeftMode = 0; ++ } else { ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ fprintf(stderr, "mailto: No 8-bit characters allowed in ASCII mail\n"); ++ break; ++ } ++ EightBitMode = 1; ++ RightToLeftMode = 1; ++ } ++ if (!V_quiet) printf("%s Eight-bit and right-to-left modes\n", RightToLeftMode ? "Entering" : "Exiting"); ++ break; ++ case 's': ++ { ++ char *subj=start; ++ if (*subj) { ++ Subject = freshcopy(subj); ++ } else { ++ Subject=GetLineMalloced("Subject", ""); ++ } ++ break; ++ } ++ case 't': ++ ToList = AddToList(ToList, start, 1); ++ if (!V_quiet) printf("To field is now: %s\n", ToList); ++ break; ++ case 'u': ++ ToggleStyle("underline", fpout, CurrentPart, StartUnderline, StopUnderline); ++ break; ++ case 'v': ++ EditCurrentMessage(1); ++ break; ++ case 'w': ++ { ++ FILE *fptmp; ++ char *fname; ++ fclose(fpout); ++ fname = start; ++ fptmp = fopen(fname, "w"); ++ WriteOutMessage(fptmp, ToList, Subject, CCList, FirstPart); ++ TempCloseStyles(fptmp); ++ if(fclose(fptmp)) { ++ fprintf(stderr, "Could not write file %s\n", fname); ++ } else { ++ printf("Wrote draft to %s\n", fname); ++ } ++ fpout = fopen(CurrentPart->filename, "a"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ break; ++ } ++ case 'z': ++ { ++ char FBuf[FILE_NAME_SIZE]; ++ if (! *start) { ++ snprintf(FBuf, sizeof(FBuf), "%s/.signature", gethome()); ++ } else { ++ strcpy(FBuf, start); ++ } ++ fpin = fopen(FBuf, "r"); ++ if (!fpin) { ++ fprintf(stderr, "mailto: Cannot open file %s\n", FBuf); ++ break; ++ } ++ CurrentPart->isrich = 1; ++ StartStyle(fpout, "signature", NULL); ++ EightBitSeen = TranslateInputToEncodedOutput(fpin, fpout, ENC_NONE, ""); ++ if (EightBitSeen) { ++ if (CurrentPart->encoding_type_needed == ENC_NONE) { ++ CurrentPart->encoding_type_needed = ENC_QP; ++ } ++ if ((CurrentPart->istext || CurrentPart->isrich) && !strcmp(CharacterSet, "us-ascii")) { ++ SwitchToEuropean(); ++ } ++ } ++ fclose(fpin); ++ EndStyle(fpout, "signature"); ++ if (!V_quiet) printf("Included contents of %s\n", FBuf); ++ printf("(continue)\n"); ++ break; ++ } ++ case 'Z': ++ { ++ char fnam[FILE_NAME_SIZE]; ++ if (! *start) { ++ snprintf(fnam, sizeof(fnam), "%s/.SIGNATURE", gethome()); ++ } else { ++ strcpy(fnam, start); ++ } ++ fpin = fopen(fnam, "r"); ++ if (!fpin) { ++ fprintf(stderr, "mailto: Cannot open file %s\n", fnam); ++ break; ++ } ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ CurrentPart->istext = 0; ++ CurrentPart->content_type = "message/rfc822"; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Cannot open temporary file %s\n", CurrentPart->filename); ++ break; ++ } ++ EightBitSeen = TranslateInputToEncodedOutput(fpin, fpout, ENC_NONE, ""); ++ if (EightBitSeen && ++ (CurrentPart->istext || CurrentPart->isrich)) { ++ if (CurrentPart->encoding_type_needed == ENC_NONE) { ++ CurrentPart->encoding_type_needed = ENC_QP; ++ } ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ SwitchToEuropean(); ++ } ++ } ++ fclose(fpin); ++ fclose(fpout); ++ printf("Included contents of %s\n", fnam); ++ printf("(continue)\n"); ++ CurrentPart->next = NewPart(); ++ CurrentPart->next->prev = CurrentPart; ++ CurrentPart = CurrentPart->next; ++ fpout = fdopen(mkstemp(CurrentPart->filename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename); ++ cleanexit(-1); ++ } ++ ReopenStyles(fpout, CurrentPart); ++ break; ++ } ++ default: ++ printf("Unrecognized tilde escape: %c\n", LineBuf[1]); ++ break; ++ } ++ } else { ++ FputsQuotingLT(LineBuf, fpout, CurrentPart, EightBitMode, RightToLeftMode); ++ } ++ } ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ printf("EOT\n"); ++ if (V_verbose) { ++ snprintf(CmdBuf, sizeof(CmdBuf), "splitmail -d -v -s %d", SplitSize); ++ } else { ++ snprintf(CmdBuf, sizeof(CmdBuf), "splitmail -d -s %d", SplitSize); ++ } ++ fpout = popen(CmdBuf, "w"); ++ if (!fpout) { ++ fprintf(stderr, "mailto: Can't write to splitmail\n"); ++ (void) WriteDeadLetter(); ++ cleanexit(-1); ++ } ++ WriteOutMessage(fpout, ToList, Subject, CCList, FirstPart); ++ if (ferror(fpout) || pclose(fpout)) { ++ perror("mailto: Error writing to splitmail"); ++ (void) WriteDeadLetter(); ++ cleanexit(-1); ++ } ++ cleanexit(0); /* Never returns */ ++} ++ ++char *newid() { ++ static char idbuf[100]; ++ static int ctr=0; ++ ++ snprintf(idbuf, sizeof(idbuf), "<%d_%d_%d_%d@%s>", (int) getuid(), (int) getpid(), (int) time(0), ++ctr, getmyname()); ++ ++ return(idbuf); ++} ++ ++WriteOutMessage(fp, ToList, Subject, CCList, FirstPart) ++FILE *fp; ++char *ToList, *Subject, *CCList; ++struct mailpart *FirstPart; ++{ ++ FILE *fpin; ++ static int ctr = 0; ++ fprintf(fp, "MIME-Version: 1.0\n"); ++ if (InReplyTo != NULL) { ++ EmitHeader(fp, "In-Reply-To", InReplyTo); ++ } ++ EmitHeaderWithAliases(fp, "To", ToList); ++ ++ EmitHeader(fp, "Subject", Subject); ++ if (CCList && *CCList) EmitHeaderWithAliases(fp, "Cc", CCList); ++ if (V_keepblind) { ++ struct passwd *p = getpwuid(getuid()); ++ if (!p) { ++ fprintf(stderr, "Can't find your user id to keep a blind copy\n"); ++ } else { ++ EmitHeader(fp, "Bcc", p->pw_name); ++ } ++ } ++ fprintf(fp, "Message-ID: %s\n", newid()); ++ if (!FirstPart) return; /* empty body */ ++ if (FirstPart->next) { ++ char boundary[120]; ++ snprintf(boundary, sizeof(boundary), "PART.BOUNDARY.%d.%d.%s.%d.%d", ++ (int) getuid(), (int) getpid(), getmyname(), (int) time(0), ++ctr); ++ fprintf(fp, "Content-type: multipart/mixed;\n\tboundary=\"%s\"\n\n", boundary); ++ fprintf(fp, "> THIS IS A MESSAGE IN 'MIME' FORMAT. Your mail reader does not support MIME.\n> Some parts of this will be readable as plain text.\n> To see the rest, you will need to upgrade your mail reader.\n"); ++ while(FirstPart) { ++ /* First check to see if it is empty & text, in which case skip it */ ++ if (FirstPart->istext) { ++ struct stat stbuf; ++ if (!stat(FirstPart->filename, &stbuf)) { ++ if (stbuf.st_size == 0) { ++ FirstPart = FirstPart->next; ++ continue; ++ } ++ } ++ } ++ fprintf(fp, "\n--%s\n", boundary); ++ WriteContentTypeAndEncoding(fp, FirstPart); ++ fprintf(fp, "\n"); ++ fpin = fopen(FirstPart->filename, "r"); ++ if (!fpin) { ++ fprintf(stderr, "Can't read temporary file %s\n", FirstPart->filename); ++ cleanexit(-1); ++ } ++ (void) TranslateInputToEncodedOutput(fpin, fp, FirstPart->encoding_type_needed, FirstPart->content_type); ++ fclose(fpin); ++ FirstPart = FirstPart->next; ++ } ++ fprintf(fp, "\n--%s--\n\n", boundary); ++ } else { ++ WriteContentTypeAndEncoding(fp, FirstPart); ++ fprintf(fp, "\n"); ++ fpin = fopen(FirstPart->filename, "r"); ++ if (!fpin) { ++ fprintf(stderr, "Can't read temporary file %s\n", FirstPart->filename); ++ cleanexit(-1); ++ } ++ (void) TranslateInputToEncodedOutput(fpin, fp, FirstPart->encoding_type_needed, FirstPart->content_type); ++ fclose(fpin); ++ } ++} ++ ++WriteContentTypeAndEncoding(fp, part) ++FILE *fp; ++struct mailpart *part; ++{ ++ fprintf(fp, "Content-ID: %s\n", newid()); ++ if (part->istext) { ++ if (part->isrich) { ++ if (strcmp(CharacterSet, "us-ascii") ++ && strcmp(CharacterSet, "koi8-r") ++ && (strncmp(CharacterSet, "iso-8859-", 9) ++ || part->encoding_type_needed != ENC_NONE)) { ++ fprintf(fp, "Content-type: text/richtext; charset=\"%s\"\n", CharacterSet); ++ } else { ++ fprintf(fp, "Content-type: text/richtext\n"); ++ } ++ } else { ++ fprintf(fp, "Content-type: "); ++ WriteCtypeNicely(fp, part->content_type); ++ if (strcmp(CharacterSet, "us-ascii") ++ && (strncmp(CharacterSet, "iso-8859-", 9) ++ || part->encoding_type_needed != ENC_NONE)) { ++ fprintf(fp, "; charset=\"%s\"\n", CharacterSet); ++ } else fputs("\n", fp); ++ } ++ } else { ++ fprintf(fp, "Content-type: "); ++ WriteCtypeNicely(fp, part->content_type); /* fixes some syntactic junk */ ++ fputs("\n", fp); ++ } ++ if (part->istext && part->isrich && part->encoding_type_needed == ENC_NONE) { ++ /* Don't you believe it... */ ++ part->encoding_type_needed = ENC_QP; ++ } ++ if (part->encoding_type_needed == ENC_B64) { ++ fprintf(fp, "Content-Transfer-Encoding: base64\n"); ++ } else if (part->encoding_type_needed == ENC_QP) { ++ fprintf(fp, "Content-Transfer-Encoding: quoted-printable\n"); ++ } ++} ++ ++TranslateInputToEncodedOutput(InputFP, OutputFP, Ecode, ctype) ++FILE *InputFP, *OutputFP; ++int Ecode; ++char *ctype; ++{ ++ int c, EightBitSeen = 0; ++ ++ switch(Ecode) { ++ case ENC_B64: ++ to64(InputFP, OutputFP, DoesNeedPortableNewlines(ctype)); ++ break; ++ case ENC_QP: ++ toqp(InputFP, OutputFP); ++ break; ++ default: ++ while ((c = getc(InputFP)) != EOF){ ++ if (c > 127) EightBitSeen = 1; ++ putc(c, OutputFP); ++ } ++ } ++ return(EightBitSeen); ++} ++ ++#define MAX_STACK_SIZE 500 ++static int StackSize=0; ++static char *Stack[MAX_STACK_SIZE]; ++static char *EnvStartStack[MAX_STACK_SIZE]; ++ ++/* The following two routines are used when richtext styles need to be ++ kept open across an inserted object -- i.e. the richtext is split into ++ two parts of a multipart message */ ++ ++TempCloseStyles(fp) ++FILE *fp; ++{ ++ int i = StackSize; ++ while(--i>=0) { ++ fprintf(fp, "", Stack[i]); ++ } ++ tfputs(StopUnderline); ++ tfputs(standendbuf); ++ tfputs(BoldOff); ++ fflush(stdout); ++} ++ ++RestoreCurrentStyles() { ++ int i=0; ++ while (i 0) part->isrich = 1; ++ while (i < StackSize) { ++ fprintf(fp, "<%s>", Stack[i++]); ++ } ++} ++ ++richtextreset() ++{ ++ StackSize = 0; ++} ++ ++AlreadyInStyle(s) ++char *s; ++{ ++ int i; ++ for (i=0; i", s); ++ PartEndsWithNewline=0; ++ t = malloc(1+strlen(s)); ++ if (!t) nomemabort(); ++ strcpy(t, s); ++ EnvStartStack[StackSize] = envstartstr; ++ Stack[StackSize++] = t; ++ if (!V_quiet) printf("Beginning: %s\n", t); ++} ++ ++EndStyle(fp, s) ++FILE *fp; ++char *s; ++{ ++ int i = StackSize, j; ++ while(--i>=0) { ++ fprintf(fp, "", Stack[i]); ++ if (!strcmp(s, Stack[i])) break; ++ } ++ if (i>=0) { ++ free(Stack[i]); ++ --StackSize; ++ for (j=i; j", Stack[i++]); ++ } ++ PartEndsWithNewline=0; ++ if (!V_quiet) printf("Ending: %s\n", s); ++} ++ ++ToggleStyle(name, fp, part, turnonstr, turnoffstr) ++char *name; ++FILE *fp; ++struct mailpart *part; ++char *turnonstr, *turnoffstr; ++{ ++ part->isrich = 1; ++ if (AlreadyInStyle(name)) { ++ EndStyle(fp, name); ++ if (turnoffstr) tfputs(turnoffstr); ++ RestoreCurrentStyles(); /* because on some terminals, ++ the same thing turns ++ off underlining AND bold */ ++ } else { ++ StartStyle(fp, name, turnonstr); ++ if (turnonstr) tfputs(turnonstr); ++ } ++} ++ ++TryOpeningStyle(name, fp, part, envstartstr) ++char *name; ++FILE *fp; ++struct mailpart *part; ++char *envstartstr; ++{ ++ if (AlreadyInStyle(name)) { ++ printf("mailto: Already in %s style\n", name); ++ } else { ++ part->isrich = 1; ++ StartStyle(fp, name, envstartstr); ++ } ++} ++ ++TryClosingStyle(name, fp, part) ++char *name; ++FILE *fp; ++struct mailpart *part; ++{ ++ if (AlreadyInStyle(name)) { ++ part->isrich = 1; ++ EndStyle(fp, name); ++ } else { ++ printf("mailto: You aren't in a %s style\n", name); ++ } ++} ++ ++FputsQuotingLT(s, fp, part, EightBitMode, RightToLeftMode) ++char *s; ++FILE *fp; ++struct mailpart *part; ++int EightBitMode, RightToLeftMode; ++{ ++ static int InNewLineSequence=1; ++ int c=0; ++ char LBuf[1000], *sdum; ++ if (*s == '\n') { ++ if (InNewLineSequence) { ++ fputs("\n", fp); ++ } else { ++ fputs("\n\n", fp); ++ InNewLineSequence = 1; ++ } ++ part->isrich = 1; ++ PartEndsWithNewline=1; ++ return; ++ } ++ InNewLineSequence = 0; ++ if (RightToLeftMode) { ++ sdum = s+strlen(s)-1; ++ if (*sdum == '\n') --sdum; ++ while (sdum >= s) { ++ LBuf[c++] = *sdum--; ++ } ++ LBuf[c++] = '\n'; ++ LBuf[c] = '\0'; ++ s = LBuf; ++ } ++ if (isspace((unsigned char) *s)) { ++ /* Lines that start with spaces should not be folded! */ ++ fputs("", fp); ++ part->isrich = 1; ++ } ++ if (s) { ++ if (EightBitMode) part->encoding_type_needed = ENC_QP; ++ while (*s) { ++ c = (unsigned char) *s; ++ if (EightBitMode) { ++ if (isprint(c) && ! isspace(c)) { ++ c = c+128; ++ } ++ putc(c, fp); ++ putc(c, stdout); ++ } else if (c == '<') { ++ part->isrich = 1; ++ fputs("", fp); ++ } else { ++ if (c > 127 || c < 0) { ++ part->encoding_type_needed = ENC_QP; ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ SwitchToEuropean(); ++ } ++ } ++ putc(c, fp); ++ if (RightToLeftMode) putc(c, stdout); ++ } ++ ++s; ++ } ++ PartEndsWithNewline = (c == '\n') ? 1 : 0; ++ } ++} ++ ++cleanexit(code) ++int code; ++{ ++ finalize(); ++ exit(code); ++} ++ ++finalize() { ++ while (FirstPart) { ++ unlink(FirstPart->filename); ++ FirstPart = FirstPart->next; ++ } ++ FinalizeTerminal(); ++} ++ ++void ++cleanup(signum) ++int signum; ++{ ++ if (fpout) { ++ TempCloseStyles(fpout); ++ fclose(fpout); ++ } ++ if (signum == SIGPIPE) { ++ (void) WriteDeadLetter(); ++ } ++ if (signum == SIGINT) { ++ if (V_ignore) { ++ printf("Interrupt ignored because 'ignore' is set. Use ~q if you want to quit.\n"); ++ return; ++ } else { ++ (void) WriteDeadLetter(); ++ } ++ } ++ finalize(); ++ signal(signum, SIG_DFL); ++ kill(getpid(), signum); ++} ++ ++InitSignals() { ++ signal(SIGINT, cleanup); ++ signal(SIGPIPE, cleanup); ++ signal(SIGILL, cleanup); ++ signal(SIGTRAP, cleanup); ++ signal(SIGIOT, cleanup); ++ signal(SIGFPE, cleanup); ++ signal(SIGSEGV, cleanup); ++ signal(SIGTERM, cleanup); ++#ifdef SIGXCPU ++ signal(SIGXCPU, cleanup); ++#endif ++} ++ ++WriteDeadLetter() ++{ ++ FILE *fp; ++ char DeadFile[1000]; ++ ++ snprintf(DeadFile, sizeof(DeadFile), "%s/dead.letter", gethome()); ++ fp = fopen(DeadFile, "w"); ++ WriteOutMessage(fp, ToList, Subject, CCList, FirstPart); ++ if(fclose(fp)) { ++ perror("Could not write ~/dead.letter\n"); ++ return(-1); ++ } else { ++ printf("Wrote draft to ~/dead.letter\n"); ++ return(0); ++ } ++} ++ ++struct MailcapEntry { ++ char *contenttype; ++ char *command; ++ char *testcommand; ++ char *editcommand; ++ char *composecommand; ++ char *composetypedcommand; ++ char *label; ++ int needsterminal; ++ int copiousoutput; ++ struct MailcapEntry *next; ++} *FirstMailcapEntry = NULL; ++ ++/* There are a fair number of core leaks in what follows. That should matter little -- the mailcap files are only parsed once, and are usually pretty small anyway. */ ++ ++char * ++GetCommand(s, t) ++char *s, **t; ++{ ++ char *s2; ++ int quoted = 0; ++ s2 = malloc(strlen(s)*2); /* absolute max, if all % signs */ ++ if (!s2) nomemabort(); ++ *t = s2; ++ while (s && *s) { ++ if (quoted) { ++ if (*s == '%') *s2++ = '%'; /* Quote through next level, ugh! */ ++ ++ *s2++ = *s++; ++ quoted = 0; ++ } else { ++ if (*s == ';') { ++ *s2 = '\0'; ++ return(++s); ++ } ++ if (*s == '\\') { ++ quoted = 1; ++ ++s; ++ } else { ++ *s2++ = *s++; ++ } ++ } ++ } ++ *s2 = '\0'; ++ return(NULL); ++} ++ ++char *Cleanse(s, dolc) /* no leading or trailing space, all lower case */ ++char *s; ++int dolc; ++{ ++ char *tmp, *news; ++ ++ /* strip leading white space */ ++ while (*s && isspace((unsigned char) *s)) ++s; ++ news = s; ++ /* put in lower case, find end */ ++ for (tmp=s; *tmp; ++tmp) { ++ if (dolc && isupper((unsigned char) *tmp)) *tmp = tolower((unsigned char) *tmp); ++ } ++ /* strip trailing white space */ ++ while (--tmp && *tmp && isspace((unsigned char) *tmp)) *tmp = '\0'; ++ return(news); ++} ++ ++char *DeQuote(s) ++char *s; ++{ ++ char *retval; ++ s = Cleanse(s, 0); ++ if (*s != '"') return(s); ++ retval = ++s; ++ while (s && *s) { ++ s = index(s, '\"'); ++ if (!s) return(retval); /* but it's a bad parse */ ++ if (*(s-1) != '\\') { ++ *s = '\0'; ++ return(retval); ++ } ++ ++s; ++ } ++ return(retval); /* also a bad parse */ ++} ++ ++struct MailcapEntry * ++GetMailcapEntry(fp) ++FILE *fp; ++{ ++ int rawentryalloc = MAX_LINELENGTH, len; ++ char *rawentry, *s, *t, *LineBuf; ++ struct MailcapEntry *mc; ++ ++ LineBuf = malloc(MAX_LINELENGTH); ++ if (!LineBuf) nomemabort(); ++ rawentry = malloc(1 + rawentryalloc); ++ mc = (struct MailcapEntry *) malloc(sizeof (struct MailcapEntry)); ++ if (!rawentry || !mc) nomemabort(); ++ *rawentry = '\0'; ++ while (fgets(LineBuf, MAX_LINELENGTH, fp)) { ++ if (LineBuf[0] == '#') continue; ++ len = strlen(LineBuf); ++ if (LineBuf[len-1] == '\n') LineBuf[--len] = '\0'; ++ if ((len + strlen(rawentry)) > rawentryalloc) { ++ rawentryalloc += MAX_LINELENGTH; ++ rawentry = realloc(rawentry, rawentryalloc+1); ++ if (!rawentry) nomemabort(); ++ } ++ if (LineBuf[len-1] == '\\') { ++ LineBuf[len-1] = '\0'; ++ strcat(rawentry, LineBuf); ++ } else { ++ strcat(rawentry, LineBuf); ++ break; ++ } ++ } ++ free(LineBuf); ++ for (s=rawentry; *s && isspace((unsigned char) *s); ++s) ; ++ if (!*s) { ++ /* totally blank entry -- quietly ignore */ ++ free(rawentry); ++ return(NULL); ++ } ++ s = index(rawentry, ';'); ++ if (!s) { ++ fprintf(stderr, "mailto: Ignoring invalid mailcap entry: %s\n", rawentry); ++ free(rawentry); ++ return(NULL); ++ } ++ *s++ = '\0'; ++ mc->needsterminal = 0; ++ mc->copiousoutput = 0; ++ mc->testcommand = NULL; ++ mc->composecommand = NULL; ++ mc->composetypedcommand = NULL; ++ mc->editcommand = NULL; ++ mc->label = NULL; ++ mc->contenttype = malloc(1+strlen(rawentry)); ++ mc->next = NULL; ++ if (!mc->contenttype) nomemabort(); ++ strcpy(mc->contenttype, rawentry); ++ t = GetCommand(s, &mc->command); ++ s = t; ++ while (s) { ++ char *arg, *eq; ++ ++ t = GetCommand(s, &arg); ++/* if (t) *t++ = '\0'; */ ++ eq = index(arg, '='); ++ if (eq) *eq++ = '\0'; ++ arg = Cleanse(arg, 1); ++ if (!strcmp(arg, "needsterminal")) { ++ mc->needsterminal = 1; ++ } else if (!strcmp(arg, "copiousoutput")) { ++ mc->copiousoutput = 1; ++ } else if (eq && !strcmp(arg, "test")) { ++ mc->testcommand = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "edit")) { ++ mc->editcommand = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "compose")) { ++ mc->composecommand = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "composetyped")) { ++ mc->composetypedcommand = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "description")) { ++ mc->label = DeQuote(eq); ++ } else if (eq && !strcmp(arg, "label")) { ++ mc->label = DeQuote(eq); /* bogus old name for description */ ++ } else if (eq && !strcmp(arg, "textualnewlines")) { ++ ExceptionalNewline(mc->contenttype, atoi(eq)); ++ } else if (strcmp(arg, "notes")) { /* IGNORE notes field */ ++/* if (*arg) fprintf(stderr, "mailto: Ignoring invalid mailcap flag: %s\n", arg); */ ++ } ++ s = t; ++ } ++ free(rawentry); ++ return(mc); ++} ++ ++ProcessMailcapFiles() ++{ ++ char *s, *path = getenv("MAILCAPS"), *origpath; ++ static char *stdpath = STDPATH; ++ struct MailcapEntry *mc, *CurrentMailcapEntry = NULL; ++ FILE *fp; ++ ++ if (!path) { ++ int uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (p) path = malloc(5+strlen(p->pw_dir) + strlen(stdpath)); ++ if (!p || !path) nomemabort(); ++ strcpy(path, p->pw_dir); ++ strcat(path, stdpath); ++ } else { ++ char *pathcopy; ++ pathcopy = malloc(1+strlen(path)); ++ if (!pathcopy) nomemabort(); ++ strcpy(pathcopy, path); ++ path = pathcopy; ++ } ++ origpath = path; ++ while(path) { ++ s = index(path, PATH_SEPARATOR); ++ if (s) *s++ = '\0'; ++ fp = fopen(path, "r"); ++ while (fp && !feof(fp)) { ++ mc = GetMailcapEntry(fp); ++ if (!mc) continue; ++ if (!FirstMailcapEntry) { ++ FirstMailcapEntry = mc; ++ CurrentMailcapEntry = mc; ++ } else { ++ CurrentMailcapEntry->next = mc; ++ CurrentMailcapEntry = mc; ++ } ++ } ++ if (fp) fclose(fp); ++ path = s; ++ } ++ free(origpath); ++ return(-1); ++} ++ ++struct mailpart * ++CreateNewPart() { ++ struct mailpart *mp; ++ struct MailcapEntry *mc = FirstMailcapEntry; ++ int i, ans, resultcode; ++ char LineBuf[100], *CmdBuf; ++ ++ mp = NewPart(); ++ if (!mp) return(NULL); ++ printf("Please choose which kind of data you wish to insert:\n\n"); ++ printf("0: A raw file, possibly binary, of no particular data type.\n"); ++ printf("1: Raw data from a file, with you specifying the content-type by hand.\n"); ++ i = 1; ++ while (mc) { ++ if (mc->composecommand || mc->composetypedcommand) { ++ ++i; ++ if (mc->label) { ++ printf("%d: %s\n", i, mc->label); ++ } else { ++ printf("%d: data in '%s' format\n", i, mc->contenttype); ++ } ++ } ++ mc = mc->next; ++ } ++ printf("\n\nEnter your choice as a number from 0 to %d: ", i); ++ fflush(stdout); ++ fgets(LineBuf, sizeof(LineBuf), stdin); ++ ans = atoi(LineBuf); ++ if (ans == 0 || ans == 1) { ++ char *sdum, CTLineBuf[100]; ++ FILE *fpi, *fpo; ++ printf("\nIf you want to include non-textual data from a file, enter the file name.\nTo include the output of a command, enter \"|\" followed by the command.\nIf you do not want to include anything, just press ENTER (RETURN).\n> "); ++ fflush(stdout); ++ fgets(CTLineBuf, sizeof(CTLineBuf), stdin); ++ sdum = CTLineBuf+strlen(CTLineBuf) -1; ++ while (sdum >= CTLineBuf && isspace((unsigned char) *sdum)) { ++ *sdum = '\0'; ++ --sdum; ++ } ++ sdum=CTLineBuf; ++ while (*sdum && isspace((unsigned char) *sdum)) ++sdum; ++ if (! *sdum) { ++ printf("Data insertion cancelled\n"); ++ return(NULL); ++ } ++ if (*sdum == '|') { ++ fpi = popen(sdum+1, "r"); ++ } else { ++ fpi = fopen(sdum, "r"); ++ } ++ if (!fpi) { ++ printf("Cannot read %s, data insertion cancelled\n", sdum); ++ return(NULL); ++ } ++ fpo = fdopen(mkstemp(mp->filename), "w"); ++ if (!fpo) { ++ printf("Cannot open temporary file, data insertion cancelled\n"); ++ return(NULL); ++ } ++ (void) TranslateInputToEncodedOutput(fpi, fpo, ENC_NONE, ""); ++ if (*sdum == '|') { ++ fclose(fpi); ++ } else { ++ pclose(fpi); ++ } ++ fclose(fpo); ++ mp->istext = 0; ++ if (ans == 1) { ++ while (1) { ++ int ct; ++ printf("\nEnter the MIME Content-type value for the data from file %s\n (type '?' for a list of locally-valid content-types): ", sdum); ++ fflush(stdout); ++ fgets(LineBuf, sizeof(LineBuf), stdin); ++ LineBuf[strlen(LineBuf)-1]='\0'; ++ if (index(LineBuf, '/')) { ++ char lc[100], *s, AnsBuf[100]; ++ strcpy(lc, LineBuf); ++ for (s=lc; *s; ++s) { ++ if (isupper(*s)) *s = tolower(*s); ++ } ++ if (!strcmp(lc, "text/plain")) break; ++ if (!strcmp(lc, "application/octet-stream")) break; ++ mc=FirstMailcapEntry; ++ while (mc) { ++ if (mc->contenttype && index(mc->contenttype, '/') && !index(mc->contenttype, '*') && !lc2strcmp(mc->contenttype, lc)) { ++ break; ++ } ++ mc = mc->next; ++ } ++ if (mc) break; ++ printf("The MIME content-type '%s' is not listed in your local mailcap files,\nand may not be a valid MIME type. Do you want to use it anyway [no] ? ", LineBuf); ++ s = fgets(AnsBuf, sizeof(AnsBuf), stdin); ++ while (s && *s && isspace((unsigned char) *s)) ++s; ++ if (s && (*s == 'y' || *s == 'Y')) break; ++ continue; ++ } ++ printf("\nMIME content-type values are type/format pairs, and always include a '/'.\nThe types supported at your site include, but are not limited to:\n\n"); ++ mc=FirstMailcapEntry; ++ ct = 0; ++ while (mc) { ++ if (mc->contenttype && index(mc->contenttype, '/') && !index(mc->contenttype, '*')) { ++ if (ct++) fputs(", ", stdout); ++ fputs(mc->contenttype, stdout); ++ } ++ mc = mc->next; ++ } ++ fputs("\n\nThe MIME content-type for file inclusion is 'application/octet-stream'.\n", stdout); ++ } ++ mp->content_type = freshcopy(LineBuf); ++ } else mp->content_type=freshcopy("application/octet-stream"); ++ mp->encoding_type_needed = WhichEncodingForFile(mp->filename, mp->content_type); ++ printf("Included data in '%s' format\n", mp->content_type); ++ printf("(continue)\n"); ++ SetTextFlags(mp); ++ return(mp); ++ } else if (ans<0 || ans > i) { ++ printf("Data insertion cancelled\n"); ++ return(NULL); ++ } ++ i=2; ++ mc=FirstMailcapEntry; ++ while (mc) { ++ if (mc->composecommand || mc->composetypedcommand) { ++ if (i == ans) break; ++ ++i; ++ } ++ mc = mc->next; ++ } ++ CmdBuf = malloc(CMDSIZE); ++ if (!CmdBuf) nomemabort(); ++ BuildCommand(CmdBuf, mc->composecommand ? mc->composecommand : mc->composetypedcommand, mp->filename); ++ printf("Executing: %s\n", CmdBuf); ++ resultcode = SYSTEM(CmdBuf); ++ if (resultcode) { ++ printf("Command execution failed, nothing included\n"); ++ free(CmdBuf); ++ return(NULL); ++ } ++ if (access(mp->filename, R_OK)) { ++ printf("No file was created, nothing included!\n"); ++ free(CmdBuf); ++ return(NULL); ++ } ++ mp->istext = 0; ++ if (mc->composecommand) { ++ mp->content_type = mc->contenttype; ++ mp->encoding_type_needed = WhichEncodingForFile(mp->filename, mp->content_type); ++ } else { ++ char c, LineBuf[1000], *colon, *ctypebuf = NULL, *cencbuf = NULL, *s, *newfilename; ++ FILE *fp, *fpout; ++ int inheaders=1, bct=0; ++ ++ s = LineBuf; ++ fp = fopen(mp->filename, "r"); ++ if (!fp) { ++ fprintf(stderr, "Cannot read file %s, no data included.\n", mp->filename); ++ free(CmdBuf); ++ return(NULL); ++ } ++ while ((c = getc(fp)) != EOF && inheaders) { ++ if (c == '\n') { ++ c = getc(fp); ++ if (c == ' ' || c == '\t') { ++ *s++ = ' '; ++ } else { ++ /* actually process the header */ ++ *s = 0; ++ colon = index(LineBuf, ':'); ++ if (colon) { ++ *colon++ = 0; ++ for (s=LineBuf; *s; ++s) { ++ if (isupper(*s)) *s = tolower(*s); ++ } ++ if (!strcmp(LineBuf, "content-transfer-encoding")) { ++ cencbuf = malloc(1+strlen(colon)); ++ if (!cencbuf) nomemabort(); ++ strcpy(cencbuf, colon); ++ } else if (!strcmp(LineBuf, "content-type")) { ++ ctypebuf = malloc(1+strlen(colon)); ++ if (!ctypebuf) nomemabort(); ++ strcpy(ctypebuf, colon); ++ } ++ } ++ if (c == '\n') { ++ inheaders = 0; ++ break; ++ } ++ ungetc(c, fp); ++ s = LineBuf; /* start over */ ++ } ++ } else { ++ *s++ = c; ++ } ++ } ++ if (!ctypebuf) { ++ fprintf(stderr, "The command (%s) did not return a content-type value, so no data could be included.\n", CmdBuf); ++ free(CmdBuf); ++ return(NULL); ++ } ++ mp->content_type = ctypebuf; ++ if (cencbuf) { ++ while (*cencbuf && isspace(*cencbuf)) ++cencbuf; ++ for (s=cencbuf; *s; ++s) { ++ if (isupper(*s)) *s = tolower(*s); ++ } ++ if (!strncmp(cencbuf, "base64", 6)) { ++ mp->encoding_type_needed = ENC_B64; ++ } else if (!strncmp(cencbuf, "quoted-printable", 16)) { ++ mp->encoding_type_needed = ENC_QP; ++ } else { ++ fprintf(stderr, "The command (%s) returned an unrecognized content-transfer-encoding value, so no data could be included.\n", CmdBuf); ++ free(CmdBuf); ++ return(NULL); ++ } ++ } else { ++ mp->encoding_type_needed = ENC_NONE; ++ } ++ newfilename = tmpname(); ++ fpout = fdopen(mkstemp(newfilename), "w"); ++ if (!fpout) { ++ fprintf(stderr, "Cannot open file %s for writing, no data included.\n", newfilename); ++ free(CmdBuf); ++ return(NULL); ++ } ++ switch(mp->encoding_type_needed) { ++ case ENC_B64: ++ from64(fp, fpout, NULL, &bct, 0); ++ break; ++ case ENC_QP: ++ fromqp(fp, fpout, NULL, &bct); ++ break; ++ default: ++ while ((c = getc(fp)) != EOF) { ++ putc(c, fpout); ++ } ++ break; ++ } ++ fclose(fp); ++ fclose(fpout); ++ unlink(mp->filename); ++ mp->filename = newfilename; ++ } ++ SetTextFlags(mp); ++ printf("Included data in '%s' format\n", mc->contenttype); ++ printf("(continue)\n"); ++ free(CmdBuf); ++ return(mp); ++} ++ ++SetTextFlags(mp) ++struct mailpart *mp; ++{ ++ if (!lc2strncmp(mp->content_type, "text/", 5)) { ++ mp->istext = 1; ++ if (!lc2strncmp(mp->content_type, "text/richtext", 13)) { ++ mp->isrich = 1; ++ } ++ } ++} ++ ++WhichEncodingForFile(fname, ctype) ++char *fname, *ctype; ++{ ++ int c, linesize=0, total=0, unsafechars=0, longlines=0; ++ char *s; ++ FILE *fp = fopen(fname, "r"); ++ if (!fp) { ++ /* If the stupid editing program forks, this actually will do a ++ reasonable thing as long as it saves the file before the mail is sent */ ++ return(ENC_B64); /* safest */ ++ } ++ while ((c = getc(fp)) != EOF) { ++ if (c>127) ++unsafechars; ++ ++total; ++ if (c == '\n') { ++ if (linesize > 79) ++longlines; ++ linesize = 0; ++ } else ++linesize; ++ if (total>1000 && (longlines || unsafechars)) break; ++ } ++ fclose(fp); ++ if (longlines || unsafechars) { ++ for (s=ctype; *s; ++s) if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ if (!strncmp(ctype, "image/", 6) ++ || !strncmp(ctype, "audio/", 6) ++ || !strncmp(ctype, "application/octet-stream", 24) ++ || !strncmp(ctype, "video/", 6)) { ++ return(ENC_B64); ++ } ++ if (!unsafechars) return(ENC_QP); ++ ++ return((total/unsafechars < 16) ? ENC_B64 : ENC_QP); ++ } ++ return(ENC_NONE); ++} ++ ++BuildCommand(Buf, controlstring, TmpFileName) ++char *Buf, *controlstring, *TmpFileName; ++{ ++ char *from, *to; ++ int prefixed = 0; ++ int NamedFile=0; ++ ++ for (from=controlstring, to=Buf; *from; ++from) { ++ if (prefixed) { ++ prefixed = 0; ++ switch(*from) { ++ case '%': ++ *to++ = '%'; ++ break; ++ case 's': ++ if (TmpFileName) { ++ strcpy(to, TmpFileName); ++ to += strlen(TmpFileName); ++ ++NamedFile; ++ } ++ break; ++ default: ++ fprintf(stderr, "Ignoring unrecognized format code in mailcap file: %%<%c\n", *from); ++ break; ++ } ++ } else if (*from == '%') { ++ prefixed = 1; ++ } else { ++ *to++ = *from; ++ } ++ } ++ *to = '\0'; ++ if (!NamedFile) { ++ strcat(Buf, " > "); ++ strcat(Buf, TmpFileName); ++ } ++} ++ ++CtypeMatch(ctype, pat) ++char *ctype, *pat; ++{ ++ int len; ++ char *s; ++ for (s=ctype; *s; ++s) if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ for (s=pat; *s; ++s) if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ if (!strcmp(ctype, pat)) { ++ return(1); /* exact match, case-insensitive */ ++ } ++ len = strlen(pat); ++ if ((pat[--len] == '*') ++ && (pat[--len] == '/') ++ && (!strncmp(ctype, pat, len)) ++ && (ctype[len] == '/')){ ++ /* wildcard match */ ++ return(1); ++ } ++ return(0); ++} ++ ++EditCurrentMessage(UseVisual) ++int UseVisual; ++{ ++ char *editor = NULL; ++ char *CmdBuf, *CmdBuf2, LineBuf[100]; ++ struct mailpart *mp, *lastmp=NULL; ++ struct MailcapEntry *mc; ++ int partct=1, ans; ++ ++ CmdBuf = malloc(CMDSIZE); ++ CmdBuf2 = malloc(CMDSIZE); ++ if (!CmdBuf || !CmdBuf2) nomemabort(); ++ if (!PartEndsWithNewline) { ++ putc('\n', fpout); ++ PartEndsWithNewline=1; ++ } ++ fclose(fpout); ++ if (UseVisual) editor = getenv("VISUAL"); ++ if (!editor) editor = getenv("EDITOR"); ++ if (!editor) editor = DEFAULT_EDITOR; ++ if (!FirstPart->next) { ++ /* Only one part */ ++ snprintf(CmdBuf, sizeof(CmdBuf), "%s %s", editor, FirstPart->filename); ++ printf("Executing: %s\n", CmdBuf); ++ SYSTEM(CmdBuf); ++ if ((FirstPart->istext || FirstPart->isrich) && ++ FirstPart->encoding_type_needed == ENC_NONE && ++ ContainsEightBitChar(FirstPart->filename)) { ++ FirstPart->encoding_type_needed = ENC_QP; ++ } ++ fpout = fopen(FirstPart->filename, "a"); ++ free(CmdBuf); ++ free(CmdBuf2); ++ return; ++ } ++ lastmp = mp = FirstPart; ++ while (mp) { ++ printf("Part #%d is of type '%s'.\n", partct, mp->content_type); ++ snprintf(CmdBuf, sizeof(CmdBuf), "%s %s", editor, mp->filename); ++ if (mp->mc && mp->mc->editcommand) { ++ BuildCommand(CmdBuf2, mp->mc->editcommand, mp->filename); ++ } else { ++ mc = FirstMailcapEntry; ++ while (mc) { ++ if (mc->editcommand && CtypeMatch(mp->content_type, mc->contenttype)) { ++ break; ++ } ++ mc = mc->next; ++ } ++ if (mc) { ++ BuildCommand(CmdBuf2, mc->editcommand, mp->filename); ++ } else { ++ CmdBuf2[0] = '\0'; ++ } ++ } ++ if (CmdBuf2[0]) { ++ printf("Which command do you want to use to edit it?\n\n"); ++ printf("1: %s\n", CmdBuf2); ++ printf("2: %s\n", CmdBuf); ++ printf("\n\nEnter 1 or 2, or 0 to not edit it: "); ++ fflush(stdout); ++ fgets(LineBuf, sizeof(LineBuf), stdin); ++ ans = atoi(LineBuf); ++ } else ans = 2; ++ if (ans == 1) { ++ printf("Executing: %s\n", CmdBuf2); ++ SYSTEM(CmdBuf2); ++ } else if (ans == 2) { ++ printf("Executing: %s\n", CmdBuf); ++ SYSTEM(CmdBuf); ++ } ++ if ((mp->istext || mp->isrich) && ++ mp->encoding_type_needed == ENC_NONE && ++ ContainsEightBitChar(mp->filename)) { ++ mp->encoding_type_needed = ENC_QP; ++ } ++ ++partct; ++ lastmp = mp; ++ mp = mp->next; ++ } ++ fpout = fopen(lastmp->filename, "a"); ++ free(CmdBuf); ++ free(CmdBuf2); ++} ++ ++ ++ProcessInitFiles() { ++ char fname[FILE_NAME_SIZE]; ++ ++ ProcessOneMailRC("/usr/lib/Mail.rc", 0); ++ snprintf(fname, sizeof(fname), "%s/.mailrc", gethome()); ++ ProcessOneMailRC(fname, 0); ++ snprintf(fname, sizeof(fname), "%s/.AMS_aliases", gethome()); ++ ProcessOneMailRC(fname, 1); ++} ++ ++char * ++NextAliasLine(LineBuf, LineAlloced, LineCount, fp, IsAndrew) ++char *LineBuf; ++int *LineAlloced, *LineCount; ++FILE *fp; ++int IsAndrew; ++{ ++ char *sbuf; ++ sbuf = malloc(MAX_LINELENGTH); ++ if (!sbuf) nomemabort(); ++ if (!LineBuf) { ++ *LineAlloced = MAX_LINELENGTH + MAX_LINELENGTH; ++ LineBuf = malloc(*LineAlloced); ++ if (!LineBuf) nomemabort(); ++ } ++ *LineBuf = 0; ++ *LineCount = 0; ++ while (1) { ++ if (fgets(sbuf, MAX_LINELENGTH, fp) == NULL) { ++ return(LineBuf); ++ } ++ *LineCount += strlen(sbuf); ++ if (*LineCount >= *LineAlloced) { ++ *LineAlloced += MAX_LINELENGTH; ++ LineBuf = realloc(LineBuf, *LineAlloced); ++ if (!LineBuf) nomemabort(); ++ } ++ strcat(LineBuf, sbuf); ++ if (IsAndrew || LineBuf[*LineCount - 2] != '\\') return(LineBuf); ++ /* The -2 got us past the newline. */ ++ LineBuf[*LineCount - 2] = ' '; ++ *LineCount -= 1; ++ LineBuf[*LineCount] = '\0'; ++ } ++} ++ ++ProcessOneMailRC(fname, IsAndrew) ++char *fname; ++int IsAndrew; ++{ ++ FILE *fp; ++ char *LineBuf = NULL, *sdum; ++ int LineAlloced = 0, LineCount = 0; ++ ++ fp = fopen(fname, "r"); ++ if (!fp) return; ++ do { ++ LineBuf=NextAliasLine(LineBuf, &LineAlloced, &LineCount, fp, IsAndrew); ++ if (LineCount == 0) continue; ++ if (IsAndrew && LineBuf[0] == '#') continue; ++ for (sdum = LineBuf; *sdum; ++sdum) { ++ if (*sdum == ' ') break; /* only map first word to lower case */ ++ if (isupper((unsigned char) *sdum)) *sdum = tolower((unsigned char) *sdum); ++ } ++ if (IsAndrew) { ++ HandleAliasCommand(LineBuf); ++ } else if (!strncmp(LineBuf, "set ", 4)) { ++ HandleSetCommand(LineBuf+4, 1); ++ } else if (!strncmp(LineBuf, "unset ", 6)) { ++ HandleSetCommand(LineBuf+6, 0); ++ } else if (!strncmp(LineBuf, "alias ", 6)) { ++ HandleAliasCommand(LineBuf+6); ++ } else { ++ /* ignore */ ++ } ++ } while (LineCount != 0); ++ free(LineBuf); ++ fclose(fp); ++} ++ ++HandleSetCommand(cmd, DoSet) ++char *cmd; ++int DoSet; ++{ ++ char *s; ++ int i; ++ ++ while (*cmd) { ++ while (*cmd && isspace((unsigned char) *cmd)) ++cmd; ++ for (s=cmd; *s && !isspace((unsigned char) *s); ++s) {;} ++ *s++ = '\0'; ++ if (!strcmp(cmd, "askcc")) { ++ V_askcc = DoSet; ++ } else if (!strcmp(cmd, "dot")) { ++ V_dot = DoSet; ++ } else if (!strcmp(cmd, "ignore")) { ++ V_ignore = DoSet; ++ } else if (!strcmp(cmd, "verbose")) { ++ V_verbose = DoSet; ++ } else if (!strcmp(cmd, "quiet")) { ++ V_quiet = DoSet; ++ } else if (!strcmp(cmd, "keepblind")) { ++ V_keepblind = DoSet; ++ } else if (!strcmp(cmd, "commasonly")) { ++ V_commasonly = DoSet; ++ } else if (!strncmp(cmd, "splitsize ", 9)) { ++ i = atoi(cmd+10); ++ if (i < MINCHUNKSIZE) { ++ fprintf(stderr, "Ignoring splitsize mailrc setting of %d -- the minimum value is %d\n", i, MINCHUNKSIZE); ++ } else { ++ SplitSize = i; ++ } ++ } else { ++ /* ignore */ ++ } ++ cmd = s;; ++ } ++} ++ ++struct alias { ++ char *shortname, *longname; ++ struct alias *next; ++} *FirstAlias = NULL; ++ ++HandleAliasCommand(aliasline) ++char *aliasline; ++{ ++ struct alias *tmpalias; ++ char *s, *s2; ++ int len = strlen(aliasline); ++ ++ if (aliasline[len - 1] == '\n') { ++ aliasline[len - 1] = '\0'; ++ } ++ tmpalias = (struct alias *) malloc(sizeof (struct alias)); ++ s = malloc(len + 1); ++ if (!s || !tmpalias) nomemabort(); ++ strcpy(s, aliasline); ++ while (*s && isspace((unsigned char) *s)) { ++s;} ++ for (s2=s; *s2 && !isspace((unsigned char) *s2); ++s2) {;} ++ if (!*s2) { ++ if (s != s2) printf("mailto: ignoring bad alias line in init file: %s\n", aliasline); ++ free(s); ++ free(tmpalias); ++ return; ++ } ++ *s2++ = '\0'; ++ tmpalias->shortname = s; ++ tmpalias->longname = s2; ++ tmpalias->next = FirstAlias; ++ FirstAlias = tmpalias; ++} ++ ++EmitHeader(fp, hdr, body) ++FILE *fp; ++char *hdr; ++char *body; ++{ ++ fputs(hdr, fp); ++ fputs(": ", fp); ++ HeaderFputs(body, fp, hdr); ++ fputs("\n", fp); ++/* fprintf(fp, "%s: %s\n", hdr, body ? body : ""); */ ++} ++ ++char * ++firstbad(s) ++char *s; ++{ ++ char *dum; ++ for (dum=s; *dum; ++dum) { ++ if (!isascii(*dum) || iscntrl(*dum)) { ++ return(dum); ++ } ++ } ++ return(NULL); ++} ++ ++char * ++firstgood(s) ++char *s; ++{ ++ char *dum; ++ for (dum=s; *dum; ++dum) { ++ if (isascii(*dum) && !iscntrl(*dum)) { ++ return(dum); ++ } ++ } ++ return(NULL); ++} ++ ++HeaderFputs(s, fp, hdr) ++char *s; ++FILE *fp; ++char *hdr; ++{ ++ char *firstnonascii, *firstascii; ++ ++ if (!s) return; ++ firstnonascii=firstbad(s); ++ if (firstnonascii) { ++ if (!strcmp(CharacterSet, "us-ascii")) { ++ fprintf(stderr, "Warning: The prevailing character set is ASCII. Your %s header has\nnon-ASCII or non-printing ASCII characters which may be unreadable.\n", hdr); ++ } ++ while (firstnonascii) { ++ while (s < firstnonascii) { ++ putc(*s, fp); ++ ++s; ++ } ++ firstascii=firstgood(s); ++ if (!firstascii) firstascii = s+strlen(s); ++ if ((firstascii - s) > 25) firstascii = s+25; /* Short encoded words */ ++ /* general format is =?charset?B or Q?encoded data?= */ ++ fprintf(fp, "=?%s?Q?", CharacterSet); ++ while (s < firstascii) { ++ PutQP(*s, fp); ++ ++s; ++ } ++ fputs("?= ", fp); /* close encoded word */ ++ firstnonascii=firstbad(s); ++ } ++ while (*s) { ++ putc(*s, fp); ++ ++s; ++ } ++ } else { ++ fputs(s, fp); ++ } ++} ++ ++static char basis_hex[] = "0123456789ABCDEF"; ++ ++PutQP(c, fp) ++unsigned char c; ++FILE *fp; ++{ ++ putc('=', fp); ++ putc(basis_hex[c>>4], fp); ++ putc(basis_hex[c&0xF], fp); ++} ++ ++EmitHeaderWithAliases(fp, hdr, names) ++FILE *fp; ++char *hdr; ++char *names; ++{ ++ fputs(hdr, fp); ++ fputs(": ", fp); ++ EmitAddresses(fp, names, hdr); ++ fputs("\n", fp); ++} ++ ++EmitAddresses(fp, names, hdr) ++FILE *fp; ++char *names; ++char *hdr; ++{ ++ char *s; ++ while (names) { ++ s= index(names, ','); ++ if (s) *s = '\0'; ++ DeAlias(names, fp, hdr); ++ if (s) { ++ *s++ = ','; ++ fputs(",\n\t", fp); ++ } ++ names = s; ++ } ++} ++ ++DeAlias(name, fp, hdr) ++char *name; ++FILE *fp; ++char *hdr; ++{ ++ struct alias *tmpalias; ++ char *end, savechar; ++ ++ while (isspace((unsigned char) *name)) ++name; ++ end = name+strlen(name)-1; ++ while (isspace((unsigned char) *end)) --end; ++ ++end; ++ savechar = *end; ++ for (tmpalias=FirstAlias; tmpalias; tmpalias = tmpalias->next) { ++ if (!strcmp(tmpalias->shortname, name)) { ++/* if (!lc2strcmp(name, tmpalias->shortname)) { */ ++ *end = savechar; ++ EmitAddresses(fp, tmpalias->longname, hdr); ++ return; ++ } ++ } ++ *end = savechar; ++ HeaderFputs(name, fp, hdr); ++} ++ ++ ++WriteCtypeNicely(fp, ct) ++FILE *fp; ++char *ct; ++{ ++ char *semi, *slash, *eq, *s; ++ ++ for (s = ct; *s; ++s) { ++ if (*s == '\n') *s = ' '; ++ } ++ semi = (char *) index(ct, ';'); ++ if (semi) *semi = '\0'; ++ slash = (char *) index(ct, '/'); ++ fputs(ct, fp); ++ if (!slash) fputs("/unknown", fp); ++ while (semi) { ++ ct = semi + 1; ++ *semi = ';'; ++ semi = (char *) index(ct, ';'); ++ if (semi) *semi = '\0'; ++ eq = (char *) index(ct, '='); ++ if (eq) *eq = '\0'; ++ fputs(";\n\t", fp); ++ while (isspace((unsigned char) *ct)) ++ct; ++ fputs(ct, fp); ++ if (eq) { ++ s = eq; ++ fputs("=", fp); ++ ++s; ++ while (isspace((unsigned char) *s)) ++s; ++ fputsquoting(s, fp); ++ *eq = '='; ++ } ++ } ++} ++ ++fputsquoting(s, fp) ++char *s; ++FILE *fp; ++{ ++ char *end = s + strlen(s) - 1; ++ while (isspace((unsigned char) *end) && end > s) --end; ++ if (*s == '\"') { ++ putc(*s, fp); ++ while (*++s) { ++ if (*s == '\"') break; /* MAY TERMINATE EARLY! */ ++ if (*s == '\\') { ++ putc(*s, fp); ++ ++s; /* Don't check this next char */ ++ if (!*s) break; ++ } ++ putc(*s, fp); ++ } ++ putc('\"', fp); ++ } else { ++ putc('\"', fp); ++ putc(*s, fp); ++ while (*++s) { ++ if (*s == '\"' || *s == '\\') { ++ putc('\\', fp); ++ } ++ putc(*s, fp); ++ } ++ putc('\"', fp); ++ } ++} ++ ++ ++controlputc(c) ++char c; ++{ ++ fputc(c, stdout); ++} ++ ++/* Do the equivalent of an fputs for the terminal escape stuff */ ++ ++tfputs(s) ++char *s; ++{ ++ tputs(s, 1, controlputc); ++} ++ ++ContainsEightBitChar(fname) ++char *fname; ++{ ++ int c, eightBitSeen = 0; ++ FILE *fp = fopen(fname, "r"); ++ if (!fp) { ++ /* If the stupid editing program forks, this actually will do a ++ reasonable thing as long as it saves the file before the mail is sent */ ++ return(1); /* safest */ ++ } ++ while ((c = getc(fp)) != EOF) { ++ if (c>127) { ++ eightBitSeen = 1; ++ break; ++ } ++ } ++ fclose(fp); ++ return(eightBitSeen); ++} ++ ++SwitchToEuropean() { ++ printf("WARNING: You have entered 8-bit characters in what is supposed to be\n"); ++ printf("plain ASCII text. If you are using a non-ASCII character set, you should\n"); ++ printf("declare this to be the case with the MM_CHARSET environment variable.\n"); ++ printf("For now, I am assuming you are using the iso-8859-1 character set,\n"); ++ printf("but this may be false.\n"); ++ CharacterSet = malloc(12); ++ if (!CharacterSet) nomemabort(); ++ strcpy(CharacterSet, "iso-8859-1"); ++} ++ ++ +--- metamail-2.7.orig/src/metamail/Makefile.am ++++ metamail-2.7/src/metamail/Makefile.am +@@ -0,0 +1,21 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++CFLAGS = -lncurses ++ ++INCLUDES = -I$(top_builddir) -I$(top_builddir)/metamail \ ++ -I$(top_srcdir) -I$(top_srcdir)/metamail ++ ++bin_PROGRAMS = metamail mimencode mailto splitmail ++ ++metamail_SOURCES = metamail.c codes.c uue.c shared.c environment.c \ ++mailcap.c tmpfile.c ++metamail_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++mimencode_SOURCES = mimencode.c codes.c ++mimencode_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++mailto_SOURCES = mailto.c codes.c shared.c ++mailto_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++splitmail_SOURCES = splitmail.c shared.c ++splitmail_LDADD = $(top_builddir)/metamail/libmetamail.la +--- metamail-2.7.orig/src/metamail/Makefile.in ++++ metamail-2.7/src/metamail/Makefile.in +@@ -0,0 +1,399 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = ../.. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++CFLAGS = -lncurses ++ ++INCLUDES = -I$(top_builddir) -I$(top_builddir)/metamail -I$(top_srcdir) -I$(top_srcdir)/metamail ++ ++ ++bin_PROGRAMS = metamail mimencode mailto splitmail ++ ++metamail_SOURCES = metamail.c codes.c uue.c shared.c environment.c mailcap.c tmpfile.c ++ ++metamail_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++mimencode_SOURCES = mimencode.c codes.c ++mimencode_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++mailto_SOURCES = mailto.c codes.c shared.c ++mailto_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++splitmail_SOURCES = splitmail.c shared.c ++splitmail_LDADD = $(top_builddir)/metamail/libmetamail.la ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../../metamail/config.h ++CONFIG_CLEAN_FILES = ++bin_PROGRAMS = metamail$(EXEEXT) mimencode$(EXEEXT) mailto$(EXEEXT) \ ++splitmail$(EXEEXT) ++PROGRAMS = $(bin_PROGRAMS) ++ ++ ++DEFS = @DEFS@ -I. -I$(srcdir) -I../../metamail ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++metamail_OBJECTS = metamail.$(OBJEXT) codes.$(OBJEXT) uue.$(OBJEXT) \ ++shared.$(OBJEXT) environment.$(OBJEXT) mailcap.$(OBJEXT) \ ++tmpfile.$(OBJEXT) ++metamail_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++metamail_LDFLAGS = ++mimencode_OBJECTS = mimencode.$(OBJEXT) codes.$(OBJEXT) ++mimencode_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++mimencode_LDFLAGS = ++mailto_OBJECTS = mailto.$(OBJEXT) codes.$(OBJEXT) shared.$(OBJEXT) ++mailto_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++mailto_LDFLAGS = ++splitmail_OBJECTS = splitmail.$(OBJEXT) shared.$(OBJEXT) ++splitmail_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++splitmail_LDFLAGS = ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ ++DIST_COMMON = Makefile.am Makefile.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++DEP_FILES = .deps/codes.P .deps/environment.P .deps/mailcap.P \ ++.deps/mailto.P .deps/metamail.P .deps/mimencode.P .deps/shared.P \ ++.deps/splitmail.P .deps/tmpfile.P .deps/uue.P ++SOURCES = $(metamail_SOURCES) $(mimencode_SOURCES) $(mailto_SOURCES) $(splitmail_SOURCES) ++OBJECTS = $(metamail_OBJECTS) $(mimencode_OBJECTS) $(mailto_OBJECTS) $(splitmail_OBJECTS) ++ ++all: all-redirect ++.SUFFIXES: ++.SUFFIXES: .S .c .lo .o .obj .s ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign src/metamail/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++mostlyclean-binPROGRAMS: ++ ++clean-binPROGRAMS: ++ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) ++ ++distclean-binPROGRAMS: ++ ++maintainer-clean-binPROGRAMS: ++ ++install-binPROGRAMS: $(bin_PROGRAMS) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ @list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ ++ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ else :; fi; \ ++ done ++ ++uninstall-binPROGRAMS: ++ @$(NORMAL_UNINSTALL) ++ list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ done ++ ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ ++.s.o: ++ $(COMPILE) -c $< ++ ++.S.o: ++ $(COMPILE) -c $< ++ ++mostlyclean-compile: ++ -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) ++ ++clean-compile: ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++maintainer-clean-compile: ++ ++.s.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++.S.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ ++maintainer-clean-libtool: ++ ++metamail$(EXEEXT): $(metamail_OBJECTS) $(metamail_DEPENDENCIES) ++ @rm -f metamail$(EXEEXT) ++ $(LINK) $(metamail_LDFLAGS) $(metamail_OBJECTS) $(metamail_LDADD) $(LIBS) ++ ++mimencode$(EXEEXT): $(mimencode_OBJECTS) $(mimencode_DEPENDENCIES) ++ @rm -f mimencode$(EXEEXT) ++ $(LINK) $(mimencode_LDFLAGS) $(mimencode_OBJECTS) $(mimencode_LDADD) $(LIBS) ++ ++mailto$(EXEEXT): $(mailto_OBJECTS) $(mailto_DEPENDENCIES) ++ @rm -f mailto$(EXEEXT) ++ $(LINK) $(mailto_LDFLAGS) $(mailto_OBJECTS) $(mailto_LDADD) $(LIBS) ++ ++splitmail$(EXEEXT): $(splitmail_OBJECTS) $(splitmail_DEPENDENCIES) ++ @rm -f splitmail$(EXEEXT) ++ $(LINK) $(splitmail_LDFLAGS) $(splitmail_OBJECTS) $(splitmail_LDADD) $(LIBS) ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = src/metamail ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign src/metamail/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++install-exec-am: install-binPROGRAMS ++install-exec: install-exec-am ++ ++install-data-am: ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: uninstall-binPROGRAMS ++uninstall: uninstall-am ++all-am: Makefile $(PROGRAMS) ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ ++ mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ ++ mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ ++ clean-depend clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ ++ distclean-tags distclean-depend distclean-generic \ ++ clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-binPROGRAMS \ ++ maintainer-clean-compile maintainer-clean-libtool \ ++ maintainer-clean-tags maintainer-clean-depend \ ++ maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ ++maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ ++mostlyclean-compile distclean-compile clean-compile \ ++maintainer-clean-compile mostlyclean-libtool distclean-libtool \ ++clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir \ ++mostlyclean-depend distclean-depend clean-depend \ ++maintainer-clean-depend info-am info dvi-am dvi check check-am \ ++installcheck-am installcheck install-exec-am install-exec \ ++install-data-am install-data install-am install uninstall-am uninstall \ ++all-redirect all-am all installdirs mostlyclean-generic \ ++distclean-generic clean-generic maintainer-clean-generic clean \ ++mostlyclean distclean maintainer-clean ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +--- metamail-2.7.orig/src/metamail/output ++++ metamail-2.7/src/metamail/output +@@ -0,0 +1,428 @@ ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=7 (from Stephan Wright ) ++MM_HEADERS= ++From stephan.wright@chello.at Wed Jan 17 00:54:06 2001 ++Return-path: ++Envelope-to: mike@localhost ++Delivery-date: Wed, 17 Jan 2001 00:54:06 +0100 ++Received: from localhost ([127.0.0.1] ident=mail) ++ by skair.in.natoka.at with esmtp (Exim 3.20 #1 (Debian)) ++ id 14IfvR-0000eJ-00 ++ for ; Wed, 17 Jan 2001 00:54:05 +0100 ++Received: from stud3.tuwien.ac.at [193.170.75.13] ++ by localhost with POP3 (fetchmail-5.5.3) ++ for mike@localhost (single-drop); Wed, 17 Jan 2001 00:54:05 +0100 (CET) ++Received: from mr.tuwien.ac.at (mr.tuwien.ac.at [128.130.2.10]) ++ by stud3.tuwien.ac.at (8.9.3 (PHNE_18979)/8.9.3) with ESMTP id AAA08182; ++ Wed, 17 Jan 2001 00:39:08 +0100 (MET) ++Received: from viemta06.chello.at (viemta06.chello.at [195.34.133.56]) ++ by mr.tuwien.ac.at (8.11.1/8.11.1) with ESMTP id f0GNd4C26837; ++ Wed, 17 Jan 2001 00:39:04 +0100 (MET) ++Received: from michelangelo.telekabel.at ([62.178.9.127]) ++ by viemta06.chello.at ++ (InterMail vK.4.03.01.00 201-232-122 license 9caa03a7df1d31c048ffcc0d31ac5855) ++ with ESMTP ++ id <20010116233900.BMRG7188.viemta06@michelangelo.telekabel.at>; ++ Wed, 17 Jan 2001 00:39:00 +0100 ++Message-ID: <3A64DBB9.74527B61@chello.at> ++Date: Wed, 17 Jan 2001 00:39:37 +0100 ++From: Stephan Wright ++Reply-To: stephan.wright@chello.at ++X-Mailer: Mozilla 4.01 [de] (Win95; I) ++MIME-Version: 1.0 ++To: Wolfgang Hiermann , ++ Susanne Schuster , ++ Roland Summerauer , ++ Raimund Kirner , ++ "Michael Mörz" , ++ Doris Ulrich , ++ Daniel Wronski , ++ Balazs Lichtl ++Subject: [Fwd: Fw: Das ist aber lieb geschrieben!] ++X-Priority: 3 (Normal) ++Content-Type: multipart/mixed; boundary="------------A0D4511CCFC2DF8B814B1B9E" ++X-UIDL: *2+!!Ec8e9F>?!!70^!! ++Status: RO ++Content-Length: 32777 ++Lines: 485 ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=multipart/mixed ; boundary = "------------A0D4511CCFC2DF8B814B1B9E" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=oding: 8bit (from Stephan Wright ) ++MM_HEADERS= ++Content-Type: text/plain; charset=iso-8859-1 ++Content-Type: text/plain; charset=iso-8859-1 ++Content-Transfer-Encoding: 8bit ++Content-Transfer-Encoding: 8bit ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=text/plain ; charset = iso-8859-1 ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=oding: 8bit (from Stephan Wright ) ++MM_HEADERS= ++Content-Type: text/plain; charset=iso-8859-1 ++Content-Type: text/plain; charset=iso-8859-1 ++Content-Transfer-Encoding: 8bit ++Content-Transfer-Encoding: 8bit ++ ++MM_NOTTTY=0 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=text/plain ; charset = iso-8859-1 ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++Metamail Version 2.7, debugging turned on. ++Trying to open input file: ../../../../metamailtest ++Date: Wed, 17 Jan 2001 00:39:37 +0100 ++From: Stephan Wright ++To: Wolfgang Hiermann , Susanne Schuster , Roland Summerauer , Raimund Kirner , "Michael Mörz" , Doris Ulrich , Daniel Wronski , Balazs Lichtl ++Subject: [Fwd: Fw: Das ist aber lieb geschrieben!] ++NEW PARAMETER: boundary VALUE: "------------A0D4511CCFC2DF8B814B1B9E" ++ ++Here is the environment: ++ ++Handling multipart as built-in here. Boundary: --------------A0D4511CCFC2DF8B814B1B9E ++NEW PARAMETER: charset VALUE: iso-8859-1 ++ ++Here is the environment: ++ ++Here is the environment: ++ ++---Executing: xterm -title 'oding: 8bit (from Stephan Wright )' -e metamail -P -b -c 'text/plain ; charset = iso-8859-1' /tmp/MQxhZtQ ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=inline (from Stephan Wright ) ++MM_HEADERS= ++Content-Type: message/rfc822 ++Content-Transfer-Encoding: 8bit ++Content-Disposition: inline ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=message/rfc822 ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=Fw: Das ist aber lieb geschrieben (from "Marion Spahlholz" ) ++MM_HEADERS= ++Return-Path: ++Received: from marionharald ([213.47.119.62]) by viemta06.chello.at ++ (InterMail vK.4.03.01.00 201-232-122 license 9caa03a7df1d31c048ffcc0d31ac5855) ++ with SMTP id <20010112191934.DEQK23142.viemta06@marionharald>; ++ Fri, 12 Jan 2001 20:19:34 +0100 ++Message-ID: <00b301c07ccd$7e71c8e0$3e772fd5@telekabel.at> ++From: "Marion Spahlholz" ++To: "Peter Ipser" ++Cc: "Rudolf Meyer" , ++ "Martina Fitzka" , ++ =?iso-8859-1?Q?Evelyn_L=F6wenrosen?= , ++ "Stephan Wright" ++Subject: Fw: Das ist aber lieb geschrieben! ++Date: Fri, 12 Jan 2001 20:25:59 +0100 ++MIME-Version: 1.0 ++Content-Type: multipart/mixed; ++ boundary="----=_NextPart_000_00B0_01C07CD5.E0149F20" ++X-Priority: 3 ++X-MSMail-Priority: Normal ++X-Mailer: Microsoft Outlook Express 5.50.4133.2400 ++X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=multipart/mixed ; boundary = "----=_NextPart_000_00B0_01C07CD5.E0149F20" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=Fw: Das ist aber lieb geschrieben (from "Marion Spahlholz" ) ++MM_HEADERS= ++Content-Type: text/plain; ++ charset="iso-8859-1" ++Content-Transfer-Encoding: 8bit ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=text/plain ; charset = "iso-8859-1" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=Fw: Das ist aber lieb geschrieben (from "Marion Spahlholz" ) ++MM_HEADERS= ++Content-Type: text/plain; ++ charset="iso-8859-1" ++Content-Transfer-Encoding: 8bit ++ ++MM_NOTTTY=0 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=text/plain ; charset = "iso-8859-1" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv ++Command exit status: 0 ++‡(­û‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@ˆƒ@ ++Here is the environment: ++ ++From: "Marion Spahlholz" ++To: "Peter Ipser" ++Cc: "Rudolf Meyer" , "Martina Fitzka" , [** iso-8859-1 charset **] Evelyn Löwenrosen‡(­û‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@‡ƒ@ˆƒ@, "Stephan Wright" ++Subject: Fw: Das ist aber lieb geschrieben! ++Date: Fri, 12 Jan 2001 20:25:59 +0100 ++MIME-Version: 1.0 ++NEW PARAMETER: boundary VALUE: "----=_NextPart_000_00B0_01C07CD5.E0149F20" ++X-Priority: 3 ++X-MSMail-Priority: Normal ++X-Mailer: Microsoft Outlook Express 5.50.4133.2400 ++X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 ++ ++ ++Here is the environment: ++ ++Handling multipart as built-in here. Boundary: ------=_NextPart_000_00B0_01C07CD5.E0149F20 ++NEW PARAMETER: charset VALUE: "iso-8859-1" ++ ++Here is the environment: ++ ++Here is the environment: ++ ++---Executing: xterm -title 'Fw: Das ist aber lieb geschrieben (from "Marion Spahlholz" )' -e metamail -P -b -c 'text/plain ; charset = "iso-8859-1"' /tmp/MGsYu2s ++PWD=/home/mike/debian/metamail-2.7/src/metamail ++XAUTHORITY=/home/mike/.Xauthority ++WINDOWID=20971534 ++MM_SUMMARY=attachment; filename="Fortflanzung.gif" (from "Marion Spahlholz" ) ++MM_HEADERS= ++Content-Type: image/gif; ++ name="Fortflanzung.gif" ++Content-Transfer-Encoding: base64 ++Content-Disposition: attachment; ++ filename="Fortflanzung.gif" ++ ++MM_NOTTTY=1 ++MM_QUIET=cat ++HOSTNAME=skair ++DEBFULLNAME=Michael Moerz ++MM_MAILER=unknown ++GDMSESSION=Gnome ++USER=mike ++MACHTYPE=i386-pc-linux-gnu ++DEBEMAIL=e9625136@stud3.tuwien.ac.at ++MAIL=/var/spool/mail/mike ++LANG=C ++DISPLAY=:0.0 ++MM_USEPAGER=0 ++LOGNAME=mike ++SHLVL=3 ++SSH_AGENT_PID=1306 ++SESSION_MANAGER=local/skair:/tmp/.ICE-unix/1263 ++MM_CONTENTTYPE=image/gif ; name = "Fortflanzung.gif" ++USERNAME=mike ++SHELL=/bin/bash ++HOSTTYPE=i386 ++CVSROOT=:pserver:mike@localhost:/home/repositories ++MM_DEBUG=1 ++MM_NOASK=text,text/plain,text/richtext ++MM_RUNASROOT=0 ++OSTYPE=linux-gnu ++HOME=/home/mike ++TERM=xterm ++SSH_AUTH_SOCK=/tmp/ssh-ApDG1263/agent.1263 ++PATH=/home/mike/debian/metamail-2.7/src/metamail/.libs:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games ++_=/usr/bin/printenv +--- metamail-2.7.orig/src/metamail/metamail_default.h ++++ metamail-2.7/src/metamail/metamail_default.h +@@ -0,0 +1,9 @@ ++#ifndef METAMAIL_DEFAULT_H ++#define METAMAIL_DEFAULT_H 1 ++ ++char *mmversion = MM_VERSTRING; ++char *NoAskDefault = "text,text/plain,text/richtext"; ++char *QuietDefault = CATCOMMAND; ++char *tmproot=""; ++ ++#endif /* METAMAIL_DEFAULT_H */ +--- metamail-2.7.orig/src/metamail/includeaway ++++ metamail-2.7/src/metamail/includeaway +@@ -0,0 +1,97 @@ ++#ifdef BORLAND ++#define F_OK 0 ++extern unsigned _stklen = 16384; ++extern char *mktemp(char *); ++#define WRITE_BINARY "w" ++#else /* BORLAND */ ++#ifdef MICROSOFT ++#include ++#include ++#include ++#include ++#define F_OK 0 ++#else ++ ++#ifndef AMIGA ++#ifdef SYSV ++//#include ++//#include ++#else /* SYSV */ ++#include ++#endif /* SYSV */ ++#endif /* AMIGA */ ++#endif /* MICROSOFT */ ++#endif /* BORLAND */ ++ ++//#if defined(SYSV) && !defined(linux) ++//#define LPRTEMPLATE "lp %s" ++//#define LPRCOMMAND "lp" ++//#else ++//#define LPRTEMPLATE "lpr %s" ++//#define LPRCOMMAND "lpr" ++ ++#endif ++#ifdef MSDOS ++#define CATCOMMAND "cat" ++#define CATTEMPLATE "cat %s" ++#define METAMAIL "metamail" ++#define TMPFILE_NAME_SIZE 128 ++#define MAX_FILE_NAME_SIZE 128 ++#define WRITE_BINARY "wb" ++#else /* MSDOS */ ++#ifdef AMIGA ++extern char *MkRmScript(); ++#ifndef F_OK ++#define F_OK (0) ++#endif ++#define CATCOMMAND "Type" ++#define CATTEMPLATE "Type %s" ++#define METAMAIL "metamail <*" ++#define TMPFILE_NAME_SIZE 50 ++#define MAX_FILE_NAME_SIZE 256 ++#define WRITE_BINARY "w" ++#else /* AMIGA */ ++//extern char **environ, *gets(); ++//#define CATCOMMAND "cat" ++//#define CATTEMPLATE "cat %s" ++//#define METAMAIL "metamail" ++//#define TMPFILE_NAME_SIZE 1000 ++//#define MAX_FILE_NAME_SIZE 1000 ++//#define WRITE_BINARY "w" ++#endif /* AMIGA */ ++#endif /* MSDOS */ ++ ++//#ifndef NO_RLIMITS ++//#include ++//#endif ++ ++//#define CMDSIZE 1200 /* Maximum size of command to execute */ ++ ++//#define LINE_BUF_SIZE 2000 ++ ++#ifndef MICROSOFT ++extern char *malloc(); ++extern char *realloc(); ++#endif ++ ++//extern FILE *popen(); ++//static char *nomem = "Out of memory!"; ++//static char *mmversion = MM_VERSTRING; ++//static char *NoAskDefault = "text,text/plain,text/richtext"; ++//static char *QuietDefault = CATCOMMAND; ++//static char *tmproot=""; ++ ++//#define ENCODING_NONE 0 ++//#define ENCODING_BASE64 1 ++//#define ENCODING_QUOTEDPRINTABLE 2 ++//#define ENCODING_8BIT 3 ++//#define ENCODING_UUENCODE -1 /* non-standard */ ++ ++#ifdef MICROSOFT ++/* Need a function prototype for TryMailcapEntry because without it MSC ++ * passes a pointer to the structure rather than the structure itself. ++ */ ++TryMailcapEntry(struct MailcapEntry mc, char *SquirrelFile); ++#endif ++ ++ +--- metamail-2.7.orig/src/metamail/mailcap.c ++++ metamail-2.7/src/metamail/mailcap.c +@@ -0,0 +1,118 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++/* mailcap.c - contains functions to access and parse mailcap files ++ Authors: Nathaniel S. Borenstein, Bellcore ++ Michael Moerz ++*/ ++ ++#include ++ ++#include "mailcap.h" ++#include "metamail.h" ++ ++/* Only one or the other set up builtins gets used, ++ depending on whether or not we're in the middle of ++ a multipart/alternative body part */ ++struct MailcapEntry BuiltIns[] = { ++ {"text/*", CATTEMPLATE, NULL, 0, 1, 0, "plain text", LPRTEMPLATE}, ++ {NULL, NULL, NULL, 0, 0, 0}}; ++ ++struct MailcapEntry BuiltInsAlternative[] = { ++ {"text/plain", CATTEMPLATE, NULL, 0, 1, 0, "plain text", LPRTEMPLATE}, ++ {NULL, NULL, NULL, 0, 0, 0}}; ++ ++/** hmm, ... ++*/ ++int ++ProcessMailcapFiles(SquirrelFile) ++char *SquirrelFile; ++{ ++ char *s, *pathcopy = NULL; ++ char *path = getenv("MAILCAPS"); ++ if (!path) { ++ uid_t uid = getuid(); ++ struct passwd *p; ++ p = getpwuid(uid); ++ if (p) { ++ path = XMALLOC(char, 5 + strlen(p->pw_dir) + strlen(STDPATH)); ++ } ++ strcpy(path, p->pw_dir); ++ strcat(path, STDPATH); ++ pathcopy = path; ++ } else ++ { ++ pathcopy = XMALLOC(char, 1+strlen(path)); ++ strcpy(pathcopy, path); ++ path = pathcopy; ++ } ++ while(path) { ++ s = index(path, PATH_SEPARATOR); ++ if (s) *s++ = 0; ++ if (!ProcessMailcapFile(path, SquirrelFile)) return(0); ++ path = s; ++ } ++ if (pathcopy) XFREE(pathcopy); ++ return(-1); ++} ++ ++int ++TryBuiltIns(SquirrelFile) ++char *SquirrelFile; ++{ ++ int i; ++ /* Last resort -- for sites that didn't bother putting a "text" line in ++ their mailcap files... */ ++ if (DoDebug) ++ fprintf(stderr, "Looking for '%s' in built-in content-type handling " ++ "settings.\n", ContentType); ++ for (i=0; BuiltIns[i].contenttype; ++i) { ++ if (!TryMailcapEntry(SquirrelFile ? BuiltInsAlternative[i] : BuiltIns[i], SquirrelFile)) ++ return(0); ++ } ++ return(-1); ++} ++ ++int ++ProcessMailcapFile(file, SquirrelFile) ++char *file, *SquirrelFile; ++{ ++ struct MailcapEntry mc; ++ FILE *fp; ++ int res; ++ ++ res = IsDirectory(file); ++ if (res) { ++ if (res == 1) { ++ fprintf(stderr, "Mailcap path entry '%s' is a directory, should be a readable file.\n", file); ++ } else if (DoDebug) { ++ /* Quietly ignore non-existent mailcap files unless debugging */ ++ fprintf(stderr, "Mailcap path entry '%s' does not exist.\n", file); ++ } ++ return(-1); ++ } ++ fp = fopen(file, "r"); ++ if (DoDebug) fprintf(stderr, "Looking for '%s' in mailcap file '%s'.\n", ContentType, file); ++ while (fp && !feof(fp)) { ++ mc.needtofree = 0; ++ if (GetMailcapEntry(fp, &mc)) { ++ if (!TryMailcapEntry(mc, SquirrelFile)) { ++ fclose(fp); ++ return(0); ++ } ++ } ++ } ++ if (fp) fclose(fp); ++ return(-1); ++} +--- metamail-2.7.orig/src/metamail/mailcap.h ++++ metamail-2.7/src/metamail/mailcap.h +@@ -0,0 +1,34 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++ ++#ifndef METAMAIL_MAILCAP_H ++#define METAMAIL_MAILCAP_H 1 ++ ++struct MailcapEntry { ++ char *contenttype; ++ char *command; ++ char *testcommand; ++ int needsterminal; ++ int copiousoutput; ++ int needtofree; ++ char *label; ++ char *printcommand; ++}; ++ ++int ProcessMailcapFiles (char *); ++int TryBuiltIns (char *); ++int ProcessMailcapFile (char *, char*); ++ ++#endif /* METAMAIL_MAILCAP_H */ +--- metamail-2.7.orig/src/metamail/shared.c ++++ metamail-2.7/src/metamail/shared.c +@@ -0,0 +1,120 @@ ++#include ++#include ++#include ++#include /* malloc(3) and realloc(3) */ ++#ifdef SYSV ++#include ++#include ++#endif ++ ++char **Exceptions; ++int *NeedsPortableNewlines; ++int ExceptionsAlloced = 0, ExceptionsUsed = 0; ++ ++ExceptionalNewline(contenttype, needsportable) ++char *contenttype; ++int needsportable; ++{ ++ char *s; ++ if (ExceptionsAlloced == 0) { ++ ExceptionsAlloced = 25; ++ Exceptions = (char **) malloc(ExceptionsAlloced * sizeof(char *)); ++ NeedsPortableNewlines = (int *) malloc(ExceptionsAlloced * sizeof(int)); ++ if (!Exceptions || !NeedsPortableNewlines) return(-1); ++ } ++ if (ExceptionsUsed >= ExceptionsAlloced) { ++ ExceptionsAlloced += 25; ++ Exceptions = (char **) realloc(Exceptions, ExceptionsAlloced * sizeof(char *)); ++ NeedsPortableNewlines = (int *) realloc(NeedsPortableNewlines, ExceptionsAlloced * sizeof(int)); ++ if (!Exceptions || !NeedsPortableNewlines) return(-1); ++ } ++ s = malloc(1+strlen(contenttype)); ++ if (!s) return(-1); ++ strcpy(s, contenttype); ++ Exceptions[ExceptionsUsed] = s; ++ for (; *s; ++s) { ++ if (isupper((unsigned char) *s)) *s = tolower((unsigned char) *s); ++ } ++ NeedsPortableNewlines[ExceptionsUsed] = needsportable; ++ ++ExceptionsUsed; ++ return(0); ++} ++ ++DoesNeedPortableNewlines(ctype) ++char *ctype; ++{ ++ int i; ++ ++ /* First, handle the customization/override case */ ++ for (i=0; i 0) { ++ if (*s1 != *s2 && (tolower(*s1) != *s2)) return(-1); ++ ++s1; ++s2; --len; ++ } ++ if (len <= 0) return(0); ++ return((*s1 == *s2) ? 0 : -1); ++} ++ ++lc2strcmp(s1, s2) ++char *s1, *s2; ++{ ++ if (!s1 || !s2) return (-1); ++ while (*s1 && *s2) { ++ if (*s1 != *s2 && (tolower(*s1) != *s2)) return(-1); ++ ++s1; ++s2; ++ } ++ return((*s1 == *s2) ? 0 : -1); ++} ++ ++char *getmyname() { ++ static int initialized = 0; ++#ifdef SYSV ++ static struct utsname u; ++ static char *hostname = u.nodename; ++#else ++ static char hostname[60]; ++#endif ++ if (!initialized) { ++#ifdef AMIGA ++ strcpy(hostname, myAddress); ++#else ++#ifdef SYSV ++ if (uname(&u) == -1) { ++ hostname = "UNKNOWN.SITE.NAME"; ++ } ++#else ++#ifdef MSDOS ++ strcpy(hostname, "UNKNOWN.SITE.NAME"); ++#else ++ gethostname(hostname, sizeof(hostname)); ++#endif /* MSDOS */ ++#endif /* SYSV */ ++#endif /* AMIGA */ ++ initialized = 1; ++ } ++ return(hostname); ++} ++ +--- metamail-2.7.orig/src/metamail/splitmail.c ++++ metamail-2.7/src/metamail/splitmail.c +@@ -0,0 +1,433 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++/****************************************************** ++ Metamail -- A tool to help diverse mail readers ++ cope with diverse multimedia mail formats. ++ ++ Author: Nathaniel S. Borenstein, Bellcore ++ ++ ******************************************************* */ ++ ++#include ++ ++#define MINCHUNKSIZE 20000 /* Better be enough to hold the headers, or we die! */ ++ ++extern char *getenv(); ++#define NORMALDELIVERYCMD "/usr/sbin/sendmail -t -oi" ++#define VERBOSEDELIVERYCMD "/usr/sbin/sendmail -t -v -oi" ++ ++usageexit() { ++ fprintf(stderr, "Usage: splitmail [-d] [-v] [-s splitsize] [-i id-suffix] [-p prefix] [file-name]\n"); ++ exit(-1); ++} ++ ++char *MonthNames[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; ++char *DayNames[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; ++ ++char * ++endofheader(s) ++char *s; ++{ ++ char *orgs = s, c; ++ while (1) { ++ s = index(s, '\n'); ++ if (!s) return(orgs+strlen(orgs)); ++ c = *(s+1); ++ if (c != ' ' && c != '\t') return(s); ++ ++s; ++ } ++} ++ ++main(argc, argv) ++char **argv; ++{ ++ int i, DoDeliver=0, SplitSize=DEFAULT_SPLIT_SIZE, dum, InNewline=1, bytesread, whichpart=1, Verbose=0, numparts = -1, c; ++ char *fname = NULL, *bigbuf, *s, *SharedHeaders, *headend, *from, id[100], *deliverycmd, *prefix, SubjectBuf[250]; ++ char *MessageID = 0, *OrigID=NULL; ++ FILE *fp; ++ ++ s = getenv("METAMAIL_TMPDIR"); ++ if (s) { ++ prefix = malloc(10+strlen(s)); ++ if (!prefix) { ++ fprintf(stderr, "splitmail: Not enough memory\n"); ++ exit(-1); ++ } ++ sprintf(prefix, "%s/split.", s); ++ } else { ++ prefix = "/tmp/split."; ++ } ++ s = getenv("SPLITSIZE"); ++ if (s) { ++ dum = atoi(s); ++ if (dum < MINCHUNKSIZE) { ++ fprintf(stderr, "Ignoring SPLITSIZE environment variable of %d -- the minimum value is %d\n", dum, MINCHUNKSIZE); ++ } else { ++ SplitSize = dum; ++ } ++ } ++ for (i=1; i= argc) usageexit(); ++ dum = atoi(argv[i]); ++ if (dum < MINCHUNKSIZE && dum >= 0) { ++ fprintf(stderr, "splitmail: Using minimum splitsize of %d\n", MINCHUNKSIZE); ++ dum = MINCHUNKSIZE; ++ ++ } ++ SplitSize = dum; ++ break; ++ case 'd': ++ DoDeliver = 1; ++ break; ++ case 'p': ++ if (++i >= argc) usageexit(); ++ prefix = argv[i]; ++ break; ++ case 'i': ++ if( ++i >= argc) usageexit(); ++ MessageID = argv[i]; ++ break; ++ case 'v': ++ Verbose = 1; ++ break; ++ default: ++ usageexit(); ++ } ++ } else { ++ if (fname) usageexit(); ++ fname = argv[i]; ++ } ++ } ++ bigbuf = malloc(100+SplitSize); ++ if (!bigbuf) { ++ fprintf(stderr, "splitmail: Not enough memory for %d-byte chunks\n", SplitSize); ++ exit(-1); ++ } ++ SplitSize -= 1000; /* gives fudge factor for headers, line endings */ ++ if (fname) { ++ struct stat stbuf; ++ if (!stat(fname, &stbuf)) { ++ /* Note: this will sometimes be 1 too high when it is a very close call, ++ because of the desire to have complete lines. In such cases, we send ++ a null final part */ ++ numparts = 1 + (stbuf.st_size / SplitSize); ++ } ++ fp = fopen(fname, "r"); ++ if (!fp) { ++ fprintf(stderr, "splitmail: Cannot read file %s\n", fname); ++ exit(-1); ++ } ++ } else fp = stdin; ++ headend = bigbuf; ++ while((c=getc(fp)) != EOF) { ++ if (headend >= bigbuf + SplitSize) { ++ fprintf(stderr, "splitmail: Could not find the end of the headers!\n"); ++ exit(-1); ++ } ++ *headend++ = c; ++ if (c == '\n') { ++ if (InNewline) break; /* end of headers */ ++ InNewline = 1; ++ } else { ++ InNewline = 0; ++ } ++ } ++ if (c == EOF) { ++ fprintf(stderr, "splitmail: Could not find the end of the headers!\n"); ++ exit(-1); ++ } ++ *headend = '\0'; ++ SharedHeaders = malloc(1+strlen(bigbuf)); /* maximum size needed */ ++ if (!SharedHeaders) { ++ fprintf(stderr, "splitmail: Not enough memory\n"); ++ exit(-1); ++ } ++ from = bigbuf; ++ *SharedHeaders = '\0'; ++ strcpy(SubjectBuf, "Partial Message"); ++ while (from < headend) { ++ s = endofheader(from); /* would be index(from, '\n'), ++ but need to check for continuation lines */ ++ *s = '\0'; ++ if (ShareThisHeader(from, SubjectBuf, sizeof (SubjectBuf), &OrigID)) { ++ strcat(SharedHeaders, from); ++ strcat(SharedHeaders, "\n"); ++ } ++ *s = '\n'; ++ from = ++s; ++ } ++ //#ifdef AMIGA ++ //snprintf(id, sizeof(id), "%d.%s@%s%s", time(0), SeqToName(GetSequence(4)), FindConfig("NodeName"), ++ // FindConfig("DomainName")); ++ //#else ++ //#ifdef MSDOS ++ //snprintf(id, sizeof(id), "%ld.UNKNOWN.SITE.NAME", time(NULL)); // BCR ++ //#else ++ snprintf(id, sizeof(id), "%d.%d.%d.%s", (int) getuid(), (int) getpid(), (int) time(0), getmyname()); ++ //#endif /* MSDOS */ ++ //#endif /* AMIGA */ ++ bytesread = headend - bigbuf; ++ deliverycmd = Verbose ? VERBOSEDELIVERYCMD : NORMALDELIVERYCMD; ++ while (!feof(fp)) { ++ while (SplitSize > bytesread && !feof(fp)) { ++ /* Need to loop because fread is weird */ ++ bytesread += fread(bigbuf + bytesread, sizeof(char), SplitSize - bytesread, fp); ++ } ++ /* Now complete the line */ ++ while((c=getc(fp)) != EOF) { ++ bigbuf[bytesread++] = c; ++ if (c=='\n') break; ++ } ++ bigbuf[bytesread] = '\0'; ++ if (feof(fp) && numparts <= 0) numparts = whichpart; ++ HandleOnePart(DoDeliver, deliverycmd, prefix, numparts, whichpart, SharedHeaders, SubjectBuf, id, MessageID, bigbuf, OrigID); ++ bytesread = 0; ++ ++whichpart; ++ } ++ while (whichpart <= numparts) { ++ /* Our guess as to how many parts was OFF, hopefully only by one */ ++ *bigbuf = '\0'; /* have to deliver an empty part, ugh! */ ++ HandleOnePart(DoDeliver, deliverycmd, prefix, numparts, whichpart, SharedHeaders, SubjectBuf, id, MessageID, bigbuf, OrigID); ++ ++whichpart; ++ } ++ return(0); ++} ++ ++HandleOnePart(DoDeliver, deliverycmd, prefix, numparts, whichpart, SharedHeaders, SubjectBuf, id, MessageID, bigbuf, OrigID) ++int DoDeliver, numparts, whichpart; ++char *deliverycmd, *prefix, *SharedHeaders, *SubjectBuf, *id, *MessageID, *bigbuf, *OrigID; ++{ ++ FILE *fpout; ++ char OutputFile[1000]; ++ int code; ++ // struct timeval tp; ++ // struct timezone tzp; ++ char *tm_zone; ++ ++ if (DoDeliver) { ++ fpout = popen(deliverycmd, "w"); ++ } else { ++ int fd; ++ snprintf(OutputFile, sizeof(OutputFile), "%s%d", prefix, whichpart); ++ remove(OutputFile); ++ fpout = NULL; ++ fd = open(OutputFile, O_WRONLY|O_CREAT|O_EXCL, 0600); ++ if (fd != -1) fpout = fdopen(fd, "w"); ++ } ++ if (!fpout) { ++ fprintf(stderr, "splitmail: Can't open %s for writing\n", DoDeliver ? deliverycmd : OutputFile); ++ exit(-1); ++ } ++ if (numparts != 1) { /* one-parters end up not changed at all! */ ++ struct tm *gt; ++ time_t clock; ++ int secsoff, hrsoff, minsoff; ++ char signoff='+'; ++ ++ fputs(SharedHeaders, fpout); ++ if (OrigID) fprintf(fpout, "References: %s\n", OrigID); ++ ++ clock=time(0); ++ gt = (struct tm*) gmtime(&clock); ++ hrsoff=minsoff=0; ++ fprintf(fpout, "Date: %s, %02d %s %d %02d:%02d:%02d %c%02d%02d (GMT)\n", DayNames[gt->tm_wday], ++ gt->tm_mday, MonthNames[gt->tm_mon], 1900+gt->tm_year, gt->tm_hour, ++ gt->tm_min, gt->tm_sec, signoff, hrsoff, minsoff); ++ //#else ++ //clock=time(0); ++ //gt = localtime(&clock); ++ //gettimeofday(&tp, &tzp); ++ //tm_zone = (char *)timezone(tzp.tz_minuteswest, gt->tm_isdst); ++ //secsoff = tzp.tz_minuteswest * 60; ++ //#else ++ secsoff= gt->tm_gmtoff; ++ //#endif ++ if (secsoff < 0) { ++ signoff = '-'; ++ secsoff *= -1; ++ } ++ hrsoff = secsoff / 3600; ++ minsoff = (secsoff - (3600*hrsoff)) / 60; ++ fprintf(fpout, "Date: %s, %02d %s %d %02d:%02d:%02d %c%02d%02d (%s)\n", ++ DayNames[gt->tm_wday], gt->tm_mday, MonthNames[gt->tm_mon], ++ 1900+gt->tm_year, gt->tm_hour, ++ gt->tm_min, gt->tm_sec, signoff, hrsoff, minsoff, gt->tm_zone); ++ ++ if( MessageID) { ++ fprintf(fpout, "Message-Id: <%d.%s.%s>\n",whichpart,id,MessageID); ++ } ++ fprintf(fpout, "Subject: %s (part %d of ", SubjectBuf, whichpart); ++ if (numparts > 0) { ++ fprintf(fpout, "%d)\n", numparts); ++ } else { ++ fprintf(fpout, "several)\n"); ++ } ++ fprintf(fpout, "Content-type: message/partial; id=\"%s\"; number=%d", id, whichpart); ++ if (numparts > 0) fprintf(fpout, "; total=%d", numparts); ++ fprintf(fpout, "\nMIME-Version: 1.0\n\n"); ++ } ++ fputs(bigbuf, fpout); ++ code = DoDeliver ? pclose(fpout) : fclose(fpout); ++ if (code) { ++ fprintf(stderr, "splitmail: %s of part %d failed\n", DoDeliver ? "Delivery" : "Writing", whichpart); ++ if (whichpart > 1) fprintf(stderr, " (previous %d parts may have succeeded)\n", whichpart -1); ++ exit(-1); ++ } ++} ++ ++static char *SharedHeads[] = { ++ "from", ++ "to", ++ "cc", ++ "bcc", ++ "newsgroup", ++ "newsgroups", ++ NULL ++}; ++ ++ShareThisHeader(s, SubjectBuf, size, OrigID) ++char *s; ++char *SubjectBuf; ++size_t size; ++char **OrigID; ++{ ++ int i; ++ char *colon = index(s, ':'); ++ if (!colon) return(0); /* don't share it in all parts */ ++ *colon = '\0'; ++ if (!ULstrcmp(s, "message-id")) { ++ *colon = ':'; ++ *OrigID = malloc(1+strlen(++colon)); ++ if (! *OrigID) { ++ fprintf(stderr, "splitmail: Not enough memory\n"); ++ exit(-1); ++ } ++ while (*colon && isspace(*colon)) {++colon;} ++ strcpy(*OrigID, colon); ++ return(0); ++ } ++ if (!ULstrcmp(s, "subject")) { ++ *colon = ':'; ++ strncpy(SubjectBuf, ++colon, size); ++ SubjectBuf[size - 1] = '\0'; ++ return(0); ++ } ++ if (!ULstrcmp(s, "content-type")) { ++ if (IllegalContentType(colon+1)) { ++ fprintf(stderr, "splitmail: message has illegal content-type header, delivery cancelled.\n"); ++ exit(-1); ++ } ++ } ++ for (i=0; SharedHeads[i]; ++i) { ++ if (!ULstrcmp(s, SharedHeads[i])) break; ++ } ++ *colon = ':'; ++ return(SharedHeads[i] ? 1 : 0); ++} ++ ++static char *tspecials = "()<>@,;:\\\"/[]?.="; ++ ++IllegalContentType(ctype) ++char *ctype; ++{ ++ char *ct, *semicolon, *st, *s, *param, *eq, *matcheq; ++ ct = malloc(1+strlen(ctype)); ++ if (!ct) { ++ fprintf(stderr, "splitmail: out of memory!\n"); ++ exit(-1); ++ } ++ strcpy(ct, ctype); ++ semicolon = index(ct, ';'); ++ if (semicolon) *semicolon = 0; ++ st = index(ct, '/'); ++ if (!st) { ++ fprintf(stderr, "Illegal content-type specification: %s\nAll MIME content-type headers must contain a type/subtype specification.\n", ctype); ++ return(-1); ++ } ++ if (st) *st++ = 0; ++ for (s = ct; *s; ++s) { ++ if (!isprint(*s) || index(tspecials, *s)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nThe character '%c' (ASCII %d) is illegal in a MIME content-type.\n", ctype, *s, *s); ++ return(-1); ++ } ++ } ++ for (s = st; s && *s; ++s) { ++ if (!isprint(*s) || index(tspecials, *s)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nThe character '%c' (ASCII %d) is illegal in a MIME content-subtype.\n", ctype, *s, *s); ++ return(-1); ++ } ++ } ++ while (semicolon) { ++ param = ++semicolon; ++ while (*param && isspace(*param)) ++param; ++ semicolon = index(param, ';'); ++ if (semicolon) *semicolon = 0; ++ eq = index(param, '='); ++ if (eq) *eq++ = 0; ++ for (s = param; *s; ++s) { ++ if (!isprint(*s) || index(tspecials, *s)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nThe character '%c' (ASCII %d) is illegal in a MIME content-type parameter name.\n", ctype, *s, *s); ++ return(-1); ++ } ++ } ++ while (*eq && isspace(*eq)) ++eq; ++ if (*eq == '\"') { ++ matcheq = eq; ++ do { ++ matcheq = index(matcheq+1, '\"'); ++ if (!matcheq) { ++ fprintf(stderr, "Illegal content-type specification: %s\nA quoted MIME parameter value must have matching quotation marks.\n", ctype); ++ return(-1); ++ } ++ } while (*(matcheq-1) == '\\'); ++ while (*++matcheq) { ++ if (!isspace(*matcheq)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nA quoted MIME parameter value must stop after the closing quotation mark.\n", ctype); ++ return(-1); ++ } ++ } ++ } else { ++ for (s = eq; s && *s; ++s) { ++ if (!isprint(*s) || index(tspecials, *s)) { ++ fprintf(stderr, "Illegal content-type specification: %s\nThe character '%c' (ASCII %d) is illegal in an unquoted MIME parameter value.\n", ctype, *s, *s); ++ return(-1); ++ } ++ } ++ } ++ } ++ free(ct); ++ return(0); ++} ++ ++int ULstrcmp(s1, s2) ++register char *s1, *s2; ++{ ++ char c1,c2; ++ ++ for(;;) { ++ c1 = *s1++; if (c1 <= 'Z') if (c1 >= 'A') c1 += 040; ++ c2 = *s2++; if (c2 <= 'Z') if (c2 >= 'A') c2 += 040; ++ if (c1 != c2) break; ++ if (c1 == '\0') return(0); ++ } ++ return(c1 - c2); ++} ++ ++/* STILL TO DO: ++ Get number of parts right when possible ++*/ +--- metamail-2.7.orig/src/Makefile.am ++++ metamail-2.7/src/Makefile.am +@@ -0,0 +1,3 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++SUBDIRS = metamail richmail +--- metamail-2.7.orig/src/Makefile.in ++++ metamail-2.7/src/Makefile.in +@@ -0,0 +1,298 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = .. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++SUBDIRS = metamail richmail ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../metamail/config.h ++CONFIG_CLEAN_FILES = ++DIST_COMMON = Makefile.am Makefile.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++all: all-redirect ++.SUFFIXES: ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++# This directory's subdirectories are mostly independent; you can cd ++# into them and run `make' without going through this Makefile. ++# To change the values of `make' variables: instead of editing Makefiles, ++# (1) if the variable is set in `config.status', edit `config.status' ++# (which will cause the Makefiles to be regenerated when you run `make'); ++# (2) otherwise, pass the desired values on the `make' command line. ++ ++@SET_MAKE@ ++ ++all-recursive install-data-recursive install-exec-recursive \ ++installdirs-recursive install-recursive uninstall-recursive \ ++check-recursive installcheck-recursive info-recursive dvi-recursive: ++ @set fnord $(MAKEFLAGS); amf=$$2; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++mostlyclean-recursive clean-recursive distclean-recursive \ ++maintainer-clean-recursive: ++ @set fnord $(MAKEFLAGS); amf=$$2; \ ++ dot_seen=no; \ ++ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ ++ rev="$$subdir $$rev"; \ ++ test "$$subdir" != "." || dot_seen=yes; \ ++ done; \ ++ test "$$dot_seen" = "no" && rev=". $$rev"; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ for subdir in $$rev; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ done && test -z "$$fail" ++tags-recursive: ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ ++ done ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = src ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign src/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ for subdir in $(SUBDIRS); do \ ++ if test "$$subdir" = .; then :; else \ ++ test -d $(distdir)/$$subdir \ ++ || mkdir $(distdir)/$$subdir \ ++ || exit 1; \ ++ chmod 777 $(distdir)/$$subdir; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++info-am: ++info: info-recursive ++dvi-am: ++dvi: dvi-recursive ++check-am: all-am ++check: check-recursive ++installcheck-am: ++installcheck: installcheck-recursive ++install-exec-am: ++install-exec: install-exec-recursive ++ ++install-data-am: ++install-data: install-data-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-recursive ++uninstall-am: ++uninstall: uninstall-recursive ++all-am: Makefile ++all-redirect: all-recursive ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: installdirs-recursive ++installdirs-am: ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-tags mostlyclean-generic ++ ++mostlyclean: mostlyclean-recursive ++ ++clean-am: clean-tags clean-generic mostlyclean-am ++ ++clean: clean-recursive ++ ++distclean-am: distclean-tags distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-recursive ++ ++maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ ++ distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-recursive ++ ++.PHONY: install-data-recursive uninstall-data-recursive \ ++install-exec-recursive uninstall-exec-recursive installdirs-recursive \ ++uninstalldirs-recursive all-recursive check-recursive \ ++installcheck-recursive info-recursive dvi-recursive \ ++mostlyclean-recursive distclean-recursive clean-recursive \ ++maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ ++dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ ++install-exec install-data-am install-data install-am install \ ++uninstall-am uninstall all-redirect all-am all installdirs-am \ ++installdirs mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +--- metamail-2.7.orig/src/richmail/COMMANDS ++++ metamail-2.7/src/richmail/COMMANDS +@@ -0,0 +1,29 @@ ++Commands for changing character sets in richtext: ++ ++Japanese: ++ ++ ISO-2022 encoding for mixed US-ASCII and JIS. ++ Variant of US-ASCII for Japan. ++ Variant of US-ASCII for Japan. ++ JIS X 0208-1978 ++ JIS X 0208-1983 ++ JIS X 0208-1983 ++ ++Korean: ++ ++ ISO-2022 encoding for mixed US-ASCII and Korean. ++ 2-byte encoding of Hangul without shift/escape seqs. ++ ++Internal commands: ++ ++ Used for ISO-2022 escape seqences. ++ SI character ++ SO character ++ Used for ISO-2022 ESC$)? character set designators. ++ ++Notes: ++ ++ text sequences may contain ISO-2022 escape sequences for changing ++character sets. and text sequences can also contain ++such escape sequences, but they start out in 2-byte mode, and are intended ++mainly for 2-byte character sequences, rather than a mixture. +--- metamail-2.7.orig/src/richmail/NOTES ++++ metamail-2.7/src/richmail/NOTES +@@ -0,0 +1,7 @@ ++ ++"richtext.c" may be used as a library in another program, by defining the ++macro RICHTEXT_LIBRARY when it is compiled and calling the function ++"richtext_main(argc, argv)" with the arguments set to the normal richtext ++command-line arguments. It is also necessary to link with "richlex.c", ++"richset.c", "usascii.c" and "iso2022.c" which provide services to ++"richtext.c". +--- metamail-2.7.orig/src/richmail/usascii.c ++++ metamail-2.7/src/richmail/usascii.c +@@ -0,0 +1,129 @@ ++/*------------------------------------------------------------------------- ++ ++ usascii.c - Code for the US-ASCII specific parts of the richtext processor. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 21/06/92 RW Original Version of usascii.c ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++-------------------------------------------------------------------------*/ ++ ++#include ++#include ++ ++#include "richlex.h" ++#include "richset.h" ++ ++/* ++ * Initialise the US-ASCII character set processor. ++ */ ++usascii_init (name) ++char *name; ++{ ++ if (name) ++ richtextencoding (RICH_ENC_US_ASCII); ++} ++ ++/* ++ * Process a command for the US-ASCII processor. ++ */ ++int usascii_command (token,negated) ++char *token; ++int negated; ++{ ++ if (!strcmp(token,"us-ascii")) { ++ if (negated) { ++ charsetpop (&usascii_charset); ++ } else { ++ charsetpush (&usascii_charset); ++ richtextencoding (RICH_ENC_US_ASCII); ++ } ++ return (1); ++ } else { ++ return (0); ++ } ++} ++ ++/* ++ * Check for singleton US-ASCII tokens. ++ */ ++int usascii_single (token) ++char *token; ++{ ++ return (0); ++} ++ ++/* ++ * Determine the width of a US-ASCII character. ++ */ ++int usascii_width (ch) ++RCHAR ch; ++{ ++ return (1); ++} ++ ++/* ++ * Determine if the current character can be used as a folding point. ++ */ ++int usascii_fold (ch) ++RCHAR ch; ++{ ++ return (ch < 0x7F && isspace (ch)); ++} ++ ++/* ++ * Render the given US-ASCII character. ++ */ ++usascii_render (ch,param) ++RCHAR ch; ++void *param; ++{ ++ (*RichtextPutc) ((int)ch,param); ++} ++ ++/* ++ * Enter or leave the US-ASCII encoding. ++ */ ++usascii_encoding (newenc) ++int newenc; ++{ ++ /* Nothing to be done in this version */ ++} ++ ++/* ++ * Define the US-ASCII character set processor. ++ */ ++struct charsetproc usascii_charset = ++ {"us-ascii", ++ usascii_init, ++ usascii_command, ++ usascii_single, ++ usascii_width, ++ usascii_fold, ++ usascii_render, ++ usascii_encoding}; +--- metamail-2.7.orig/src/richmail/iso2022.c ++++ metamail-2.7/src/richmail/iso2022.c +@@ -0,0 +1,375 @@ ++/*------------------------------------------------------------------------- ++ ++ iso2022.c - Code for the ISO-2022 specific parts of the richtext processor. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 21/06/92 RW Original Version of iso2022.c ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++ Acknowledgements: ++ ================ ++ ++ Many thanks to Yutaka Sato (ysato@etl.go.jp) for protyping ISO-2022 ++ support in a previous version of richtext, on whose code this is based. ++ ++-------------------------------------------------------------------------*/ ++ ++#include ++ ++#include "richlex.h" ++#include "richset.h" ++ ++/* ++ * Global data for this module. ++ */ ++static int SwToAscii; ++static int SwToOther; ++static int OutPrevChar; ++static int OutPrevPrevChar; ++static int OutCharLen; ++static int OutCharSet; ++static int OutAsciiMode; ++ ++#define OUT_ASCII 0 ++#define OUT_JIS 1 ++#define OUT_KSC 2 ++ ++#define ESC 033 ++#define SO 016 ++#define SI 017 ++ ++#define ISO_GENERIC_PREFIX "x-iso-2022-gen-" ++#define ISO_GENERIC_LEN 15 ++#define ISO_SHIFT_PREFIX "x-iso-shift-" ++#define ISO_SHIFT_LEN 12 ++#define ISO_CHARSET_PREFIX "x-iso-charset-" ++#define ISO_CHARSET_LEN 14 ++ ++/* ++ * Initialise the ISO-2022 character set processor. ++ */ ++iso2022_init (name) ++char *name; ++{ ++ SwToAscii = 'B'; ++ SwToOther = 'B'; ++ OutPrevChar = 0; ++ OutPrevPrevChar = 0; ++ OutCharLen = 1; ++ OutCharSet = OUT_ASCII; ++ OutAsciiMode = RICH_ENC_US_ASCII; ++ if (!name) ++ return; ++ if (!strncmp (name,"iso-2022-jp",11)) ++ richtextencoding (RICH_ENC_JP_ASCII); ++ else if (!strncmp (name,"iso-2022-kr",11)) { ++ richtextencoding (RICH_ENC_KR_ASCII); ++ controloutput("\033$)C",0); ++ } else ++ richtextencoding (RICH_ENC_US_ASCII); ++} ++ ++/* ++ * Process a command for the ISO-2022 processor. ++ */ ++int iso2022_command (token,negated) ++char *token; ++int negated; ++{ ++ int swchar; ++ if (!strcmp(token,"iso-2022-jp")) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\033(B",0); ++ SwToAscii = 'B'; ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter JIS-X0208-1983 output mode */ ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_US_ASCII); ++ controloutput("\033(B",0); ++ SwToOther = 'B'; ++ } ++ return (1); ++ } else if (!strcmp(token,"iso-2022-kr")) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\017",0); ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter KSC-5601 output mode */ ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_KR_ASCII); ++ controloutput("\033$)C\017",0); ++ } ++ return (1); ++ } else if (!strncmp(token,"x-jis-x0201",11)) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\033(B",0); ++ SwToAscii = 'B'; ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter JIS-X-0201-1976 output mode */ ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_JP_ASCII); ++ controloutput("\033(J",0); ++ SwToAscii = 'J'; ++ } ++ return (1); ++ } else if (!strncmp(token,"x-jis-x0208",11)) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\033(B",0); ++ SwToAscii = 'B'; ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter JIS-X0208-* output mode */ ++ charsetpush(&iso2022_charset); ++ if (!strcmp (token + 11,"-1978")) ++ SwToOther = '@'; ++ else ++ SwToOther = 'B'; ++ richtextencoding((SwToOther == '@' ? RICH_ENC_JIS_1978 : ++ RICH_ENC_JIS_1983)); ++ controloutput("\033$",0); ++ controlputc(SwToOther); ++ } ++ return (1); ++ } else if (!strcmp(token,"x-ksc-5601")) { ++ if (negated) { ++ /* Return to previous output mode */ ++ controloutput("\017",0); ++ charsetpop(&iso2022_charset); ++ } else { ++ /* Enter KSC-5601 output mode */ ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_KSC_5601); ++ controloutput("\033$)C\016",0); ++ } ++ return (1); ++ } else if (!strncmp (token,ISO_GENERIC_PREFIX,ISO_GENERIC_LEN)) { ++ /* Process an escape sequence for changing character sets */ ++ sscanf(token + ISO_GENERIC_LEN,"%x",&swchar); ++ if (swchar <= ' ' || swchar >= 0x7F) ++ return (1); ++ if (negated) { ++ /* Return to previous output mode from multi-byte mode */ ++ if (!charsettop(&iso2022_charset)) ++ charsetpush(&iso2022_charset); ++ richtextencoding((swchar == 'J' ? RICH_ENC_JP_ASCII : ++ RICH_ENC_US_ASCII)); ++ controloutput("\033(",0); ++ controlputc(swchar); ++ SwToAscii = swchar; ++ } else { ++ /* Enter multi-byte (Japanese) mode */ ++ if (!charsettop(&iso2022_charset)) ++ charsetpush(&iso2022_charset); ++ richtextencoding((swchar == '@' ? RICH_ENC_JIS_1978 : ++ RICH_ENC_JIS_1983)); ++ controloutput("\033$",0); ++ controlputc(swchar); ++ SwToOther = swchar; ++ } ++ return (1); ++ } else if (!strncmp (token,ISO_SHIFT_PREFIX,ISO_SHIFT_LEN)) { ++ /* Process a character set shift sequence */ ++ if (!strcmp(token + ISO_SHIFT_LEN,"out") && ++ RichtextCharEncoding == RICH_ENC_KR_ASCII) { ++ /* Enter KSC-5601 2-byte mode */ ++ if (!charsettop(&iso2022_charset)) ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_KSC_5601); ++ controloutput("\016",0); ++ } else if (!strcmp (token + ISO_SHIFT_LEN,"in") && ++ RichtextCharEncoding == RICH_ENC_KSC_5601) { ++ /* Return to US-ASCII from KSC-5601 */ ++ if (!charsettop(&iso2022_charset)) ++ charsetpush(&iso2022_charset); ++ richtextencoding(RICH_ENC_KR_ASCII); ++ controloutput("\017",0); ++ } ++ return (1); ++ } else { ++ return (0); ++ } ++} ++ ++/* ++ * Check for singleton ISO-2022 tokens. ++ */ ++int iso2022_single (token) ++char *token; ++{ ++ return (!strncmp (token,ISO_GENERIC_PREFIX,ISO_GENERIC_LEN) || ++ !strncmp (token,ISO_SHIFT_PREFIX,ISO_SHIFT_LEN) || ++ !strncmp (token,ISO_CHARSET_PREFIX,ISO_CHARSET_LEN)); ++} ++ ++/* ++ * Determine the width of a ISO-2022 character. ++ */ ++int iso2022_width (ch) ++RCHAR ch; ++{ ++ return (ch & 0xFF00 ? 2 : 1); ++} ++ ++/* ++ * Determine if the current character can be used as a folding point. ++ */ ++int iso2022_fold (ch) ++RCHAR ch; ++{ ++ if (ch < 0x7F && isspace (ch)) { ++ return (1); ++ } else { ++ return ((ch & 0xFF00) != 0); ++ } ++} ++ ++/* ++ * Render the given ISO-2022 character. ++ */ ++iso2022_render (ch,param) ++RCHAR ch; ++void *param; ++{ ++ if (ch & 0xFF00) { ++ if (OutCharLen < 2) { ++ /* Add extra escape sequences after stray ASCII characters */ ++ /* This normally happens in excerpts and signatures, etc. */ ++ if (OutAsciiMode == RICH_ENC_JP_ASCII) { ++ (*RichtextPutc) (033,param); ++ (*RichtextPutc) ('$',param); ++ (*RichtextPutc) (SwToOther,param); ++ } else if (OutAsciiMode == RICH_ENC_KR_ASCII) { ++ (*RichtextPutc) (SO,param); ++ } ++ } ++ (*RichtextPutc) ((int)((ch & 0xFF00) >> 8),param); ++ (*RichtextPutc) ((int)(ch & 0xFF),param); ++ } else { ++ if (OutCharLen > 1 && ch >= 0x20) { ++ /* Add extra escape sequences before stray ASCII characters */ ++ /* This normally happens in excerpts and signatures, etc. */ ++ if (OutAsciiMode == RICH_ENC_JP_ASCII) { ++ (*RichtextPutc) (033,param); ++ (*RichtextPutc) ('(',param); ++ (*RichtextPutc) (SwToAscii,param); ++ } else if (OutAsciiMode == RICH_ENC_KR_ASCII) { ++ (*RichtextPutc) (SI,param); ++ } ++ } ++ (*RichtextPutc) ((int)(ch & 0xFF),param); ++ } ++} ++ ++/* ++ * Enter or leave the ISO-2022 encoding. ++ */ ++iso2022_encoding (newenc) ++int newenc; ++{ ++ switch (newenc) { ++ case RICH_ENC_US_ASCII: controloutput("\033(B",0); break; ++ case RICH_ENC_JP_ASCII: controloutput("\033(J",0); break; ++ case RICH_ENC_KR_ASCII: controloutput("\017",0); break; ++ case RICH_ENC_JIS_1978: controloutput("\033$@",0); break; ++ case RICH_ENC_JIS_1983: controloutput("\033$B",0); break; ++ case RICH_ENC_KSC_5601: controloutput("\016",0); break; ++ default: controloutput("\033(B",0); break; ++ } ++} ++ ++/* ++ * Define the ISO-2022-JP and ISO-2022-KR character set processor. ++ */ ++struct charsetproc iso2022_charset = ++ {"iso-2022-jp:iso-2022-kr", ++ iso2022_init, ++ iso2022_command, ++ iso2022_single, ++ iso2022_width, ++ iso2022_fold, ++ iso2022_render, ++ iso2022_encoding}; ++ ++/* ++ * Define an output routine for slotting into RichtextPutc so ++ * that ISO-2022 escape sequences are treated correctly. ++ */ ++int iso2022_fputc (ch,file) ++int ch; ++FILE *file; ++{ ++ if (OutPrevChar == ESC && ch == '(') { ++ /* Process escape sequences that end JIS 2-byte modes */ ++ OutCharLen = 1; ++ OutCharSet = OUT_ASCII; ++ OutAsciiMode = RICH_ENC_JP_ASCII; ++ } ++ if (OutPrevPrevChar == ESC && OutPrevChar == '$') { ++ /* Process escape sequences that start JIS 2-byte modes */ ++ if (ch != ')') { /* ')' is for Korean, so ignore it */ ++ OutCharLen = 2; ++ OutCharSet = OUT_JIS; ++ OutAsciiMode = RICH_ENC_JP_ASCII; ++ } ++ } ++ if (ch == SO) { ++ OutCharLen = 2; ++ OutCharSet = OUT_KSC; ++ OutAsciiMode = RICH_ENC_KR_ASCII; ++ } else if (ch == SI) { ++ OutCharLen = 1; ++ OutCharSet = OUT_ASCII; ++ OutAsciiMode = RICH_ENC_KR_ASCII; ++ } ++ if (ch == '\n' && OutCharLen == 2) { ++ /* Two-byte characters cannot cross line boundaries */ ++ if (OutCharSet == OUT_JIS) { ++ fputc (ESC,file); ++ fputc ('(',file); ++ fputc (SwToAscii,file); ++ fputc ('\n',file); ++ fputc (ESC,file); ++ fputc ('$',file); ++ fputc (SwToOther,file); ++ } else if (OutCharSet == OUT_KSC) { ++ fputc (SI,file); ++ fputc ('\n',file); ++ fputc (SO,file); ++ } ++ } else { ++ fputc (ch,file); ++ } ++ OutPrevPrevChar = OutPrevChar; ++ OutPrevChar = ch; ++} +--- metamail-2.7.orig/src/richmail/Makefile.am ++++ metamail-2.7/src/richmail/Makefile.am +@@ -0,0 +1,15 @@ ++MAINTAINERCLEANFILES = Makefile.in ++ ++CFLAGS = -lncurses ++ ++INCLUDES = -I$(top_builddir) -I$(top_builddir)/metamail \ ++ -I$(top_srcdir) -I$(top_srcdir)/metamail ++ ++bin_PROGRAMS = richtext richtoatk ++ ++richtext_SOURCES = richtext.c richlex.c richset.c usascii.c iso2022.c ++richtext_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++richtoatk_SOURCES = richtoatk.c richlex.c richset.c usascii.c iso2022.c ++richtoatk_LDADD = $(top_builddir)/metamail/libmetamail.la ++ +--- metamail-2.7.orig/src/richmail/Makefile.in ++++ metamail-2.7/src/richmail/Makefile.in +@@ -0,0 +1,376 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = ../.. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++CFLAGS = -lncurses ++ ++INCLUDES = -I$(top_builddir) -I$(top_builddir)/metamail -I$(top_srcdir) -I$(top_srcdir)/metamail ++ ++ ++bin_PROGRAMS = richtext richtoatk ++ ++richtext_SOURCES = richtext.c richlex.c richset.c usascii.c iso2022.c ++richtext_LDADD = $(top_builddir)/metamail/libmetamail.la ++ ++richtoatk_SOURCES = richtoatk.c richlex.c richset.c usascii.c iso2022.c ++richtoatk_LDADD = $(top_builddir)/metamail/libmetamail.la ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../../metamail/config.h ++CONFIG_CLEAN_FILES = ++bin_PROGRAMS = richtext$(EXEEXT) richtoatk$(EXEEXT) ++PROGRAMS = $(bin_PROGRAMS) ++ ++ ++DEFS = @DEFS@ -I. -I$(srcdir) -I../../metamail ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++richtext_OBJECTS = richtext.$(OBJEXT) richlex.$(OBJEXT) \ ++richset.$(OBJEXT) usascii.$(OBJEXT) iso2022.$(OBJEXT) ++richtext_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++richtext_LDFLAGS = ++richtoatk_OBJECTS = richtoatk.$(OBJEXT) richlex.$(OBJEXT) \ ++richset.$(OBJEXT) usascii.$(OBJEXT) iso2022.$(OBJEXT) ++richtoatk_DEPENDENCIES = $(top_builddir)/metamail/libmetamail.la ++richtoatk_LDFLAGS = ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ ++DIST_COMMON = Makefile.am Makefile.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++DEP_FILES = .deps/iso2022.P .deps/richlex.P .deps/richset.P \ ++.deps/richtext.P .deps/richtoatk.P .deps/usascii.P ++SOURCES = $(richtext_SOURCES) $(richtoatk_SOURCES) ++OBJECTS = $(richtext_OBJECTS) $(richtoatk_OBJECTS) ++ ++all: all-redirect ++.SUFFIXES: ++.SUFFIXES: .S .c .lo .o .obj .s ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign src/richmail/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++mostlyclean-binPROGRAMS: ++ ++clean-binPROGRAMS: ++ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) ++ ++distclean-binPROGRAMS: ++ ++maintainer-clean-binPROGRAMS: ++ ++install-binPROGRAMS: $(bin_PROGRAMS) ++ @$(NORMAL_INSTALL) ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ @list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ ++ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ else :; fi; \ ++ done ++ ++uninstall-binPROGRAMS: ++ @$(NORMAL_UNINSTALL) ++ list='$(bin_PROGRAMS)'; for p in $$list; do \ ++ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ ++ done ++ ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ ++.s.o: ++ $(COMPILE) -c $< ++ ++.S.o: ++ $(COMPILE) -c $< ++ ++mostlyclean-compile: ++ -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) ++ ++clean-compile: ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++maintainer-clean-compile: ++ ++.s.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++.S.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ ++maintainer-clean-libtool: ++ ++richtext$(EXEEXT): $(richtext_OBJECTS) $(richtext_DEPENDENCIES) ++ @rm -f richtext$(EXEEXT) ++ $(LINK) $(richtext_LDFLAGS) $(richtext_OBJECTS) $(richtext_LDADD) $(LIBS) ++ ++richtoatk$(EXEEXT): $(richtoatk_OBJECTS) $(richtoatk_DEPENDENCIES) ++ @rm -f richtoatk$(EXEEXT) ++ $(LINK) $(richtoatk_LDFLAGS) $(richtoatk_OBJECTS) $(richtoatk_LDADD) $(LIBS) ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = src/richmail ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign src/richmail/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++install-exec-am: install-binPROGRAMS ++install-exec: install-exec-am ++ ++install-data-am: ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: uninstall-binPROGRAMS ++uninstall: uninstall-am ++all-am: Makefile $(PROGRAMS) ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(bindir) ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \ ++ mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ ++ mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-binPROGRAMS clean-compile clean-libtool clean-tags \ ++ clean-depend clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-binPROGRAMS distclean-compile distclean-libtool \ ++ distclean-tags distclean-depend distclean-generic \ ++ clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-binPROGRAMS \ ++ maintainer-clean-compile maintainer-clean-libtool \ ++ maintainer-clean-tags maintainer-clean-depend \ ++ maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ ++maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ ++mostlyclean-compile distclean-compile clean-compile \ ++maintainer-clean-compile mostlyclean-libtool distclean-libtool \ ++clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir \ ++mostlyclean-depend distclean-depend clean-depend \ ++maintainer-clean-depend info-am info dvi-am dvi check check-am \ ++installcheck-am installcheck install-exec-am install-exec \ ++install-data-am install-data install-am install uninstall-am uninstall \ ++all-redirect all-am all installdirs mostlyclean-generic \ ++distclean-generic clean-generic maintainer-clean-generic clean \ ++mostlyclean distclean maintainer-clean ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +--- metamail-2.7.orig/src/richmail/richlex.c ++++ metamail-2.7/src/richmail/richlex.c +@@ -0,0 +1,480 @@ ++/*------------------------------------------------------------------------- ++ ++ richlex.c - Lexical analysis routines for parsing richtext messages. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 31/01/92 RW Original Version of richlex.c ++ 1.1 19/06/92 RW Add support for multi-byte ISO-2022 codes. ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++ Caveats: ++ ======= ++ ++ If a multi-byte character contains "", and a richtext command or ++ escape sequence is started before all bytes of the multi-byte character ++ have been read in, then some characters may be discarded. ++ ++-------------------------------------------------------------------------*/ ++ ++#include ++ ++#include "richlex.h" ++#include "richset.h" ++ ++int CorrectionEnabled = 1; /* Zero if correction has been disabled */ ++int RichtextLessThanFlag = 0; /* Non-zero to turn on multi-byte '<' hack */ ++ ++//extern int fgetc (); ++//extern int fputc (); ++ ++int (*RichtextGetc) () = fgetc; /* Function to call to get characters */ ++int (*RichtextPutc) () = fputc; /* Function to call to put characters */ ++int RichtextCharEncoding = RICH_ENC_US_ASCII; /* Current encoding mode */ ++ ++#define MAX_STACK_SIZE 500 ++#define MAX_FLUSH_SIZE 3 ++#define MAX_PUSH_BACK 20 ++static int StackSize=0; ++static char Stack[MAX_STACK_SIZE][MAX_TOKEN_SIZE]; ++static char NextToken[MAX_TOKEN_SIZE]; ++static int FlushStack=0; ++static int FlushSize=0; ++static int EndInpFile=0; ++static int CharSize=1; ++static int PushbackBuffer[MAX_PUSH_BACK]; ++static int PushbackSize=0; ++static int PushbackExtract=0; ++ ++#define ESC 033 ++#define SI 017 ++#define SO 016 ++ ++#define RGETRAW(f) ((*RichtextGetc)(f)) ++#define RGET(f) (PushbackSize ? richtextgetback() : RGETRAW(f)) ++#define RPUT(c,f) ((*RichtextPutc)(((int)(c)),(f))) ++#define RUNGET(c) (richtextunget(c)) ++#define RPUSHBACK(c) (richtextpushback(c)) ++ ++/* ++ * Define a "printf" format for a generic ISO-2022 character ++ * set name that includes the hexadecimal representation of ++ * the escape sequence character that turns ISO-2022 on or off ++ * on the terminal. ++ */ ++#define ISO2022_GENERIC "x-iso-2022-gen-%2x" ++#define ISO2022_CHARSET "x-iso-charset-" ++ ++/* ++ * Define the character set shift characters for ISO-2022-KR. ++ */ ++#define ISO2022_SHIFTIN "x-iso-shift-in" ++#define ISO2022_SHIFTOUT "x-iso-shift-out" ++ ++/* ++ * Construct multi-byte character codes. ++ */ ++#define RICHCH_2(first,second) ((RCHAR)(((first) << 8) | (second))) ++ ++/* ++ * Reset the richtext parsing mechanism. ++ */ ++richtextreset() ++{ ++ StackSize = 0; ++ FlushStack = 0; ++ FlushSize = 0; ++ EndInpFile = 0; ++ CharSize = 1; ++ PushbackSize = 0; ++ PushbackExtract = 0; ++ RichtextCharEncoding = RICH_ENC_US_ASCII; ++ CorrectionEnabled = 1; ++ RichtextLessThanFlag = 0; ++} ++ ++/* ++ * Push a character into the push-back buffer for later ++ * retrieval by RGET. ++ */ ++static void richtextpushback(c) ++int c; ++{ ++ PushbackBuffer[PushbackSize++] = c; ++} ++ ++/* ++ * Unget a character that has been read from the input stream. ++ */ ++static void richtextunget(c) ++int c; ++{ ++ if (PushbackSize) ++ --PushbackExtract; /* Character was retrieved from push-back */ ++ else ++ richtextpushback(c); /* Put character into empty push-back */ ++} ++ ++/* ++ * Unget two characters that have been read from the input stream. ++ */ ++static void richtextunget2(c1,c2) ++int c1,c2; ++{ ++ if (PushbackExtract > 1) { ++ PushbackExtract -= 2; /* Go back two characters in the push-back */ ++ PushbackBuffer[PushbackExtract++] = c1; ++ PushbackBuffer[PushbackExtract++] = c2; ++ } else { ++ richtextpushback(c1); /* Put the characters into the push-back */ ++ richtextpushback(c2); ++ } ++} ++ ++/* ++ * Retrieve a character from the push-back buffer. ++ */ ++static int richtextgetback() ++{ ++ int c; ++ c = PushbackBuffer[PushbackExtract++]; ++ if (PushbackExtract >= PushbackSize) { ++ PushbackSize = 0; ++ PushbackExtract = 0; ++ } ++ return(c); ++} ++ ++/* ++ * Find a match between NextToken and an element on the stack. ++ * Returns the number of elements down from the top it is. ++ * i.e. 0 if not on the stack, 1 if at the top, etc. ++ */ ++static int richtextmatchup() ++{ ++ int i = StackSize; ++ while (i > 0 && i > (StackSize - MAX_FLUSH_SIZE)) { ++ --i; ++ if (!strcmp(NextToken,Stack[i])) ++ return(StackSize - i); ++ } ++ return(0); ++} ++ ++/* ++ * Determine if the current token is one of the singleton ++ * richtext commands: , , . ++ */ ++static richtextsingle(TextEnriched) ++int TextEnriched; ++{ ++ return (charsetsingle (NextToken) || ++ (!TextEnriched && ++ (!strcmp(NextToken,"nl") || ++ !strcmp(NextToken,"lt") || ++ !strcmp(NextToken,"np")))); ++} ++ ++/* ++ * Recognise a character that can start a richtext command. ++ */ ++#define iscmdch(c) (isalpha(c) || isdigit(c) || (c) == '/' || (c) == '-') ++#define iscmdch2(c) (isalpha(c) || isdigit(c) || (c) == '-') ++#define TOLOWER(c) (isupper(c)?tolower(c):c) ++#define valid_command(c1,c2) \ ++ (( c1 == '/' && iscmdch2(c2) ) || \ ++ (!TextEnriched && TOLOWER(c1) == 'l' && TOLOWER(c2) == 't' )) ++ ++/* ++ * Get the next token from the input stream. RICHTEXT_COMMAND ++ * or RICHTEXT_NEG_COMMAND are returned if it is a richtext command. ++ * e.g. "" or "". The "token" buffer will receive the ++ * name of the command (without <,> or /) if it is a command. This ++ * function will also truncate commands longer than MAX_TOKEN_SIZE - 1 ++ * characters and abort command parsing if white space is encountered, ++ * so, for example, errors like "" don't cause ++ * problems: it will be corrected to "hi kids". ++ */ ++RCHAR richtextlex(file,token,TextEnriched, nofill) ++void *file; ++char *token; ++int TextEnriched; ++int nofill; /* Inside a nofill env we parse newlines differently */ ++{ ++ int c,i,lastch; ++ RCHAR cmd; ++ ++ lastch = 0; /* No previous character for multi-byte chars as yet */ ++ ++ /* Perform any flushing of balancing commands that is necessary */ ++ if (FlushStack) { ++ /* Flush out some extra closing commands */ ++ strcpy(token,Stack[StackSize - FlushSize + (--FlushStack)]); ++ return(RICHTEXT_NEG_COMMAND); ++ } else if (FlushSize) { ++ /* Finished flushing: output the pending close command */ ++ StackSize -= FlushSize; ++ if (StackSize > 0) ++ --StackSize; /* Remove the command that was being matched up */ ++ FlushSize = 0; ++ strcpy(token,NextToken); ++ if (EndInpFile) ++ return((RCHAR)EOF); /* The last flush was the end-of-file cleanup */ ++ else ++ return(RICHTEXT_NEG_COMMAND); ++ } ++ ++ /* Fetch a new character or richtext command */ ++ for (;;) { /* Loop so we can come back on ignored commands */ ++ c = RGET(file); ++ if (c == '<') { ++ /* Check for multi-byte mode, where "<" is special */ ++ int c2; ++ if (CharSize > 1) { ++ if (RichtextLessThanFlag) { ++ /* The multi-byte '<' hack is in effect: not a command */ ++ if (lastch) ++ return(RICHCH_2(lastch,'<')); ++ lastch = '<'; ++ continue; /* Back around for another character */ ++ } ++ if ((c = RGET(file)) == EOF) { ++ RUNGET(c); ++ return((RCHAR)'<'); ++ } ++ c2 = RGET(file); ++ richtextunget2(c,c2); ++ if( !valid_command(c,c2) ){ ++ /* We have a stray less-than symbol */ ++ if (lastch) ++ return(RICHCH_2(lastch,'<')); ++ lastch = '<'; ++ continue; /* Back around for another character */ ++ } ++ } else if (TextEnriched) { ++ c2 = RGET(file); ++ if (c2 == '<') { ++ return((RCHAR)c); ++ } else { ++ RUNGET(c2); ++ } ++ } ++ ++ /* Read a command token from the input file */ ++ cmd = RICHTEXT_COMMAND; ++ if ((c = RGET(file)) == '/') { ++ cmd = RICHTEXT_NEG_COMMAND; ++ c = RGET(file); ++ } ++ for (i = 0; i < (MAX_TOKEN_SIZE - 1) && c != '>' ++ && c != EOF && !isspace(c); ++i) { ++ NextToken[i] = isupper(c) ? tolower(c) : c; ++ c = RGET(file); ++ } ++ if (c != '>' && c != EOF && !isspace(c)) { ++ /* We have a long command: skip the rest of it */ ++ while (c != '>' && c != EOF && !isspace(c)) ++ c = RGET(file); ++ } ++ if (c == EOF) { ++ if (!StackSize) ++ return((RCHAR)EOF); ++ /* Flush the remaining commands at the end of the input file */ ++ FlushSize = StackSize; ++ FlushStack = FlushSize; ++ EndInpFile = 1; ++ return(richtextlex(file,token,TextEnriched, nofill)); /* Flush something out */ ++ } ++ NextToken[i] = '\0'; ++ ++ /* Process specially for multi-byte characters */ ++ if (CharSize > 1 && !TextEnriched && !strcmp(NextToken,"lt")) { ++ if (lastch) ++ return(RICHCH_2(lastch,'<')); ++ lastch = '<'; ++ continue; /* Back around for another character */ ++ } ++ ++ /* Check to see if we need to correct anything */ ++ if (!CorrectionEnabled) { ++ /* No correction to do: just skip the correction phase */ ++ strcpy(token,NextToken); ++ return(cmd); ++ } ++ if (cmd == RICHTEXT_COMMAND) { ++ /* Save the command on the stack if not a singleton command */ ++ if (!richtextsingle(TextEnriched)) { ++ strcpy (Stack[StackSize++],NextToken); ++ } ++ } ++ else if (!(i = richtextmatchup())) ++ continue; /* No matchup - just drop it */ ++ else if (i == 1) ++ --StackSize; /* Correct match at the stack top */ ++ else { ++ /* Flush some correction elements from the stack */ ++ FlushSize = i - 1; ++ FlushStack = FlushSize; ++ return(richtextlex(file,token,TextEnriched, nofill)); ++ } ++ strcpy(token,NextToken); ++ return(cmd); ++ } else if (c == SI) { ++ /* Shift-in character: translate to a singleton */ ++ strcpy(token,ISO2022_SHIFTIN); ++ return(RICHTEXT_COMMAND); ++ } else if (c == SO) { ++ /* Shift-out character: translate to a singleton */ ++ strcpy(token,ISO2022_SHIFTOUT); ++ return(RICHTEXT_COMMAND); ++ } else if (c == ESC) { ++ /* Check for escape sequences that change character sizes */ ++ int newc; ++ c = RGET(file); ++ if (c == '$') { ++ newc = RGET(file); ++ if (newc == ')') { ++ newc = RGET(file); /* 4-byte ESC-$-)-? sequence */ ++ sprintf(token,ISO2022_CHARSET,newc); ++ } else { ++ sprintf(token,ISO2022_GENERIC,newc); ++ } ++ return(RICHTEXT_COMMAND); ++ } else if (c == '(') { ++ newc = RGET(file); ++ sprintf(token,ISO2022_GENERIC,newc); ++ return(RICHTEXT_NEG_COMMAND); ++ } else { ++ RUNGET(c); ++ return((RCHAR)ESC); ++ } ++ } else if (c == EOF && StackSize) { ++ /* Flush the remaining commands at the end of the input file */ ++ FlushSize = StackSize; ++ FlushStack = FlushSize; ++ EndInpFile = 1; ++ return(richtextlex(file,token,TextEnriched, nofill)); /* Flush something out */ ++ } else if (CharSize > 1) { ++ /* Recognise a multi-byte character */ ++ int newc; ++ if (!lastch && isspace (c)) ++ return ((RCHAR)c); /* Hack for spaces in 2-byte modes */ ++ if (lastch) ++ return (RICHCH_2(lastch,c)); /* This is second of 2 chars */ ++ if ((newc = RGET(file)) == EOF) { ++ RUNGET(newc); /* Push the EOF back into the input stream */ ++ return((RCHAR)c); /* Just return the partial single-byte char */ ++ } else if (newc == '<') { ++ /* The second character could be "", so loop around */ ++ lastch = c; ++ RUNGET(newc); ++ continue; ++ } else { ++ return(RICHCH_2(c,newc)); ++ } ++ } else if (TextEnriched && !nofill && (c == '\n')) { ++ int c2 = RGET(file); ++ RUNGET(c2); ++ if (c2 == '\n') { ++ strcpy(token, "iNtErNaL-nL"); ++ return(RICHTEXT_COMMAND); ++ } else { ++ return((RCHAR)c); ++ } ++ } else { ++ return((RCHAR)c); ++ } ++ } ++} ++ ++/* ++ * Output a string via "RichtextPutc". ++ */ ++static richtextoutstr(str,outparam) ++char *str; ++void *outparam; ++{ ++ while (*str) { ++ RPUT(*str,outparam); ++ ++str; ++ } ++} ++ ++/* ++ * Read the input stream, correct the richtext, and write the ++ * results to the output stream. ++ */ ++richtextcorrect(inparam,outparam,TextEnriched) ++void *inparam,*outparam; ++int TextEnriched; ++{ ++ RCHAR c; ++ char token[MAX_TOKEN_SIZE]; ++ while ((c = richtextlex(inparam,token,TextEnriched, 0)) != (RCHAR)EOF) { ++ if (c == RICHTEXT_COMMAND) { ++ RPUT('<',outparam); ++ richtextoutstr(token,outparam); ++ RPUT('>',outparam); ++ } else if (c == RICHTEXT_NEG_COMMAND) { ++ RPUT('<',outparam); ++ RPUT('/',outparam); ++ richtextoutstr(token,outparam); ++ RPUT('>',outparam); ++ } else if (c >= 256) { ++ RPUT(RICHCH2_FIRST(c),outparam); ++ RPUT(RICHCH2_SECOND(c),outparam); ++ } else { ++ RPUT(c,outparam); ++ } ++ } ++} ++ ++/* ++ * Change the encoding used for characters not present in ++ * richtext command sequences. ++ */ ++richtextencoding(encoding) ++int encoding; ++{ ++ RichtextCharEncoding = encoding; ++ switch (RichtextCharEncoding) { ++ case RICH_ENC_US_ASCII: ++ case RICH_ENC_JP_ASCII: ++ case RICH_ENC_KR_ASCII: ++ CharSize = 1; ++ break; ++ ++ case RICH_ENC_JIS_1978: ++ case RICH_ENC_JIS_1983: ++ case RICH_ENC_KSC_5601: ++ CharSize = 2; ++ break; ++ ++ default:CharSize = 1; ++ break; ++ } ++} +--- metamail-2.7.orig/src/richmail/richlex.h ++++ metamail-2.7/src/richmail/richlex.h +@@ -0,0 +1,166 @@ ++/*------------------------------------------------------------------------- ++ ++ richlex.h - Lexical analysis routines for parsing richtext messages. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 31/01/92 RW Original Version of richlex.h ++ 1.1 19/06/92 RW Add support for multi-byte ISO-2022 codes. ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++-------------------------------------------------------------------------*/ ++ ++#ifndef __RICHTEXT_H__ ++#define __RICHTEXT_H__ ++ ++#include ++ ++BEGIN_C_DECLS ++ ++//#ifdef __cplusplus ++//extern "C" { ++//#endif ++ ++/* ++ * Define the data type to be used by characters in the richtext ++ * system. Note: this is a long because some machines, MS-DOS ++ * machines for example, only have 16-bit integers and hence won't ++ * be able to cope with large multi-byte character codes. If ++ * something is strange with your character processing, it is ++ * probably because you aren't using the right types. ++ */ ++typedef long RCHAR; ++ ++/* ++ * Set the following variable to zero to disable the ++ * correction of richtext commands. The default ++ * value is non-zero. ++ */ ++extern int CorrectionEnabled; ++ ++/* ++ * Set the following value to non-zero to enable the ++ * multi-byte '<' hack which ignores richtext commands ++ * in multi-byte modes. The default value is zero. ++ */ ++extern int RichtextLessThanFlag; ++ ++/* ++ * Define the function to call to get characters from ++ * the message. The calling convention of this ++ * function is: "int func (void *param)". The default ++ * value is "fgetc". The function must return EOF ++ * at the end of the messsage; ++ */ ++extern int (*RichtextGetc) (); ++ ++/* ++ * Define the function to call to output characters from ++ * richtextcorrect. The calling convention of this ++ * function is: "int func (int c,void *param)". The default ++ * value is "fputc". ++ */ ++extern int (*RichtextPutc) (); ++ ++/* ++ * Define the maximum size of richtext command tokens. ++ */ ++#define MAX_TOKEN_SIZE 50 ++ ++/* ++ * Define the special token values that are returned by ++ * the "richtextlex" function. These values were chosen ++ * to keep away from legal ASCII. ++ * ++ * Version 1.1: modified to negative values to keep away ++ * from legal ISO-2022 and other multi-byte characters. ++ */ ++#define RICHTEXT_COMMAND ((RCHAR)(-2)) ++#define RICHTEXT_NEG_COMMAND ((RCHAR)(-3)) ++ ++/* ++ * Reset the richtext parsing mechanism. ++ */ ++extern richtextreset(); ++ ++/* ++ * Get the next token from the input stream. RICHTEXT_COMMAND ++ * or RICHTEXT_NEG_COMMAND are returned if it is a richtext command. ++ * e.g. "" or "". The "token" buffer will receive the ++ * name of the command (without <,> or /) if it is a command. This ++ * function will also truncate commands longer than MAX_TOKEN_SIZE - 1 ++ * characters and abort command parsing if white space is encountered, ++ * so, for example, errors like "" don't cause ++ * problems: it will be corrected to "hi kids". ++ * The "file" parameter is passed to the function pointed to by ++ * "RichtextGetc" on each call. ++ */ ++extern RCHAR richtextlex( /* void *file,char *token,int TextEnriched */ ); ++ ++/* ++ * Read the input stream, correct the richtext, and write the ++ * results to the output stream. "outparam" is passed to the ++ * "RichtextPutc" function as the second argument, and "inparam" ++ * is passed to "richtextlex" during parsing. ++ */ ++extern richtextcorrect( /* void *inparam,void *outparam,int TextEnriched */ ); ++ ++#define RICH_ENC_US_ASCII 0 /* US-ASCII encoding: one-byte */ ++#define RICH_ENC_JP_ASCII 1 /* JP-ASCII encoding: one-byte */ ++#define RICH_ENC_KR_ASCII 2 /* KR-ASCII encoding: one-byte */ ++#define RICH_ENC_JIS_1978 100 /* JIS-X-0208-1978: two-byte */ ++#define RICH_ENC_JIS_1983 101 /* JIS-X-0208-1983: two-byte */ ++#define RICH_ENC_KSC_5601 200 /* KSC-5601 (Korean): two-byte */ ++ ++/* ++ * The following variable contains the current character ++ * encoding in use. This should only be read. Setting it ++ * is done via "richtextencoding". ++ */ ++extern int RichtextCharEncoding; ++ ++/* ++ * Change the encoding used for characters not present in ++ * richtext command sequences. ++ */ ++extern richtextencoding( /* int encoding */ ); ++ ++/* ++ * Define a number of macros for decoding multi-byte character ++ * codes. The names of the macros have the form "RICHCHn_xxx" ++ * where "n" is the number of bytes in the character. ++ */ ++#define RICHCH2_FIRST(c) (((c) >> 8) & 0xFF) ++#define RICHCH2_SECOND(c) ((c) & 0xFF) ++ ++//#ifdef __cplusplus ++//}; ++//#endif ++ ++END_C_DECLS ++ ++#endif /* __RICHTEXT_H__ */ +--- metamail-2.7.orig/src/richmail/richtext.c ++++ metamail-2.7/src/richmail/richtext.c +@@ -0,0 +1,905 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++ ++#include ++ ++#include /* This and next for tgetstr(3X) and kin */ ++#include ++ ++#include "richlex.h" ++#include "richset.h" ++ ++int iso2022_fputc (); ++ ++/* ++ * ######################################################################## ++ * The function "InitGlobals" must be updated whenever a new variable is ++ * added here or a default value is changed. The same must be done for ++ * the next section of variables also. This is needed because this module ++ * could be linked into another program as a library and called more than ++ * once in a single program execution. ++ * ######################################################################## ++ */ ++static int linepos = 0, inspace = 0, leftmargin = 0, rightmargin, biggertext=0; ++static int workingleft = 0, workingright, inexcerpt = 0, insignature = 0; ++static int highlight=0, underline=0, bold=0, nofill=0; ++static int termcolumns=80, termrows=23; ++int controlputc(); ++ ++/* A common problem, in justifying text, is figuring out how to format a ++ line when part of it wants to be left-justified, part right-justified, ++ and part centered, or some combination thereof. There is no perfect ++ solution to this problem, so this program takes an incredibly cheesy ++ but simple way out: voting. For each character on the line, a point ++ is added to the "center" score if it is supposed to be centered, and ++ so on. If it is inside TWO "center" environments, two points are added. ++ This may be the world's first implementation of justification by voting... ++*/ ++ ++static int centerenv=0, leftjustenv=0, rightjustenv=0; ++static int centerct=0, leftjustct=0, rightjustct=0; ++static int UsePager = 0; ++static int linesused = 0; ++static int JustSawCmd=0; ++static int JustCorrect = 0; /* Non-zero to just correct and not format */ ++static int OverStrike = 0; ++static int TextEnriched = 0; ++static char MoveRight[10]; ++static char highlightbuf[50], highlightendbuf[50], StartUnderline[50], StopUnderline[50]; ++static char KS[50], KE[50], BoldOn[50], BoldOff[50]; ++static char charsetname[50]; ++static int FakeTerminal; ++ ++extern tputs(); ++ ++static outputc(), realoutputc(), MakeWorkingMargins(), Pause(), fputsmovingright(), ResetTerminalCodes(), FinalizeTerminal(), outputstr(), FPUTS(), lc2strcmp(); ++ ++#define OUTC(c) (outputc((RCHAR)(c))) ++ ++static void ++InitGlobals() ++{ ++ linepos = 0; ++ inspace = 0; ++ leftmargin = 0; ++ biggertext = 0; ++ workingleft = 0; ++ inexcerpt = 0; ++ insignature = 0; ++ termcolumns = 80; ++ termrows = 23; ++ centerenv = 0; ++ leftjustenv = 0; ++ rightjustenv = 0; ++ centerct = 0; ++ leftjustct = 0; ++ rightjustct = 0; ++ UsePager = 0; ++ linesused = 0; ++ JustSawCmd = 0; ++ JustCorrect = 0; ++ highlight = 0; ++ underline = 0; ++ bold = 0; ++ TextEnriched = 0; ++ nofill = 0; ++} ++ ++static void ++cleanup(signum) ++int signum; ++{ ++ FinalizeTerminal(); ++ signal(signum, SIG_DFL); ++ kill(getpid(), signum); ++} ++ ++static InitSignals() { ++ signal(SIGINT, cleanup); ++ signal(SIGILL, cleanup); ++ signal(SIGTRAP, cleanup); ++ signal(SIGIOT, cleanup); ++ signal(SIGFPE, cleanup); ++#ifndef linux ++ signal(SIGEMT, cleanup); ++ signal(SIGBUS, cleanup); ++#endif ++ signal(SIGSEGV, cleanup); ++ signal(SIGTERM, cleanup); ++#ifdef SIGXCPU ++ signal(SIGXCPU, cleanup); ++#endif ++} ++ ++static nomemabort() { ++ fprintf(stderr, "richtext: Out of memory\n"); ++ FinalizeTerminal(); ++ exit(-1); ++} ++ ++#ifndef RICHTEXT_LIBRARY ++ ++/* ++ * Only include the main function if this module is not being used as a ++ * library call. ++ */ ++ ++main(argc, argv) ++int argc; ++char **argv; ++{ ++ exit(richtext_main(argc, argv)); ++} ++ ++#endif ++ ++richtext_main(argc, argv) ++int argc; ++char **argv; ++{ ++ RCHAR c; ++ int i, atstart, negated, ++ ForceTermcap=0, ForcePlain=0, NotTtyEnv = 0; ++ char token[MAX_TOKEN_SIZE], *tok, *nottty; ++ char tbuf[1024], *term, *dum; ++ FILE *InputFP = stdin, *tmpfp; ++ ++ InitSignals(); ++ InitGlobals(); ++ richtextreset(); ++ strcpy(charsetname,"us-ascii"); ++ dum = (char *) getenv("MM_USEPAGER"); ++ if (dum && atoi(dum)) ++UsePager; ++ for (i=1; i< argc; ++i) { ++ if (!strcmp(argv[i], "-p")) { ++ ++UsePager; ++ } else if (!strcmp(argv[i],"-c")) { ++ /* Only perform correction: don't format */ ++ JustCorrect = 1; ++ } else if (!strcmp(argv[i], "-f")) { ++ /* Force termcap usage */ ++ ForceTermcap = 1; ++ } else if (!strcmp(argv[i], "-t")) { ++ /* Force plain text */ ++ ForcePlain = 1; ++ } else if (!strcmp(argv[i],"-n")) { ++ /* Disable the richtext correction routines */ ++ CorrectionEnabled = 0; ++ } else if (!strcmp(argv[i],"-m")) { ++ /* Enable the multi-byte '<' hack */ ++ RichtextLessThanFlag = 1; ++ } else if (!strncmp(argv[i], "-s", 2)) { ++ /* Specify the character set to use (and convert to lower case) */ ++ char *name; ++ if (argv[i][2]) ++ strcpy(charsetname, argv[i] + 2); ++ else if (i < (argc - 1)) ++ strcpy(charsetname, argv[++i]); ++ name = charsetname; ++ while (*name) { ++ if (isupper(*name)) ++ *name = tolower(*name); ++ ++name; ++ } ++ } else if (!strcmp(argv[i], "-o")) { ++ /* Use Overstriking */ ++ OverStrike = 1; ++ ForcePlain = 1; ++ } else if (!strcmp(argv[i], "-e")) { ++ /* Work with text/enriched instead of text/richtext */ ++ TextEnriched = 1; ++ } else { ++ /* open for input */ ++ tmpfp = fopen(argv[i], "r"); ++ if (tmpfp) ++ InputFP = tmpfp; ++ else { ++ perror (argv[i]); ++ exit (1); ++ } ++ } ++ } ++ /* THIS IS THE UNIX TERMINAL INITIALIZATION CODE */ ++ nottty = (char *) getenv("MM_NOTTTY"); ++ if (nottty) NotTtyEnv = atoi(nottty); ++ if (UsePager && (!isatty(0) || !isatty(1) || NotTtyEnv)) { ++ UsePager = 0; /* Disable pager if I/O has been redirected or we're under a window-oriented mail reader */ ++ } ++ if ((!ForcePlain && (isatty(1) || isatty(0))) || ForceTermcap) { ++ term = (char *) getenv("TERM"); ++ } else { ++ term = NULL; ++ } ++ if (term && tgetent(tbuf, term) != 1) { ++ term = NULL; ++ } ++ if (term) { ++ static char cb[1024]; ++ char *cp; ++ ++ cp = cb; ++ ++ if (dum = (char*) tgetstr("ks", &cp)) ++ strcpy (KS, dum); ++ else ++ KS[0] = '\0'; ++ if (dum = (char*) tgetstr("ke", &cp)) ++ strcpy (KE, dum); ++ else ++ KE[0] = '\0'; ++ if (dum = (char*) tgetstr("so", &cp)) ++ strcpy (highlightbuf, dum); highlightbuf[0] = '\0'; ++ if (dum = (char*) tgetstr("se", &cp)) ++ strcpy (highlightendbuf, dum); highlightendbuf[0] = '\0'; ++ if (dum = (char*) tgetstr("md", &cp)) ++ strcpy (BoldOn, dum); ++ else ++ strcpy(BoldOn, highlightbuf); ++ if (dum = (char*) tgetstr("me", &cp)) ++ strcpy (BoldOff, dum); ++ else ++ strcpy(BoldOff, highlightendbuf); ++ if (dum = (char*) tgetstr("us", &cp)) ++ strcpy (StartUnderline, dum); ++ else ++ StartUnderline[0] = '\0'; ++ if (dum = (char*) tgetstr("ue", &cp)) ++ strcpy (StopUnderline, dum); ++ else StopUnderline[0] = '\0'; ++ if (dum = (char*) tgetstr("nd", &cp)) ++ strcpy (MoveRight, dum); ++ else { ++ MoveRight[0] = ' '; ++ MoveRight[1] = '\0'; ++ } ++ /* Some TERMCAP entries have REALLY screwed up "nd" fields, sigh... */ ++ if (!strcmp(MoveRight, "\014")) strcpy(MoveRight, " "); ++ termcolumns = tgetnum("co"); ++ if (termcolumns <= 0) termcolumns = 80; ++ termrows = tgetnum("li"); ++ if (termrows <= 0) termrows = 23; ++ else termrows--; ++ FakeTerminal=0; ++ } else if (OverStrike) { ++ KS[0] = '\0'; ++ KE[0] = '\0'; ++ FakeTerminal = 1; ++ BoldOn[0] = '\0'; ++ BoldOff[0] = '\0'; ++ highlightbuf[0] = '\0'; ++ highlightendbuf[0] = '\0'; ++ StartUnderline[0] = '\0'; ++ StopUnderline[0] = '\0'; ++ strcpy(MoveRight, " "); ++ termcolumns = 80; ++ termrows = 23; ++ } else { ++ KS[0] = '\0'; ++ KE[0] = '\0'; ++ FakeTerminal = 1; ++ strcpy(BoldOn, "*"); ++ strcpy(BoldOff, "*"); ++ strcpy(highlightbuf, "_"); ++ strcpy(highlightendbuf, "_"); ++ strcpy(StartUnderline, "_"); ++ strcpy(StopUnderline, "_"); ++ strcpy(MoveRight, " "); ++ termcolumns = 80; ++ termrows = 23; ++ } ++ /* Check for the LINES & COLUMNS hack */ ++ dum = getenv("LINES"); ++ if (dum && ((i=atoi(dum)) > 0)) termrows = i - 1; ++ dum = getenv("COLUMNS"); ++ if (dum && ((i=atoi(dum)) > 0)) termcolumns = i; ++ charsetnameinit(charsetname); ++ RichtextPutc = iso2022_fputc; ++ if (JustCorrect) { ++ richtextcorrect(InputFP,stdout,TextEnriched); ++ return(0); ++ } ++ FPUTS(KS, stdout); ++ rightmargin = workingright = termcolumns - 1; ++ while((c = richtextlex(InputFP,token,TextEnriched, nofill)) != (RCHAR)EOF) { ++ if (c == RICHTEXT_COMMAND || c == RICHTEXT_NEG_COMMAND) { ++ negated = (c == RICHTEXT_NEG_COMMAND); ++ tok = token; ++ ++ /* Try to process the command with the character set processors */ ++ if (charsetcommand (tok,negated)) ++ continue; ++ ++ /* Do the default action for the command */ ++ switch(tok[0]) { ++ case 'b': ++ if (!strcmp(tok, "bold")) { ++ if (negated) { ++ --bold; ++ if (bold <= 0) { ++ if (FakeTerminal) outputstr(BoldOff); ++ else controloutput(BoldOff, 0); ++ } ++ } else { ++ ++bold; ++ } ++ ResetTerminalCodes(FakeTerminal, highlight, underline, ++ bold, highlightbuf, highlightendbuf, 0, ++ StartUnderline, StopUnderline, 0, BoldOn, ++ BoldOff, 1); ++ } else if (!strcmp(tok, "bigger")) { ++ if (negated) --biggertext; else ++biggertext; ++ } ++ break; ++ case 'c': ++ if (!strcmp(tok, "center")) { ++ if (negated) --centerenv; else ++centerenv; ++ } else if (!TextEnriched && !strcmp(tok, "comment")) { ++ int commct=1; ++ int tempc; ++ while (commct > 0) { ++ while ((tempc = getc(InputFP)) != '<' ++ && tempc != EOF) ; ++ if (tempc == EOF) break; ++ for (i=0; (tempc = getc(InputFP)) != '>' ++ && tempc != EOF; ++i) { ++ token[i] = isupper(tempc) ? ++ tolower(tempc) : tempc; ++ if (i == MAX_TOKEN_SIZE-2) break; ++ } ++ if (tempc== EOF) break; ++ token[i] = 0; ++ if (!strcmp(token, "/comment")) --commct; ++ if (!strcmp(token, "comment")) ++commct; ++ } ++ } ++ break; ++ case 'e': ++ if (!strcmp(tok, "excerpt")) { ++ atstart = !(linepos > workingleft); ++ if (negated) { ++ leftmargin -= 4; ++ rightmargin += 4; ++ --inexcerpt; ++ } else { ++ leftmargin += 4; ++ rightmargin -= 4; ++ ++inexcerpt; ++ } ++ MakeWorkingMargins(); ++ if (!atstart) OUTC('\n'); ++ } ++ break; ++ case 'f': ++ if (!strcmp(tok, "flushleft")) { ++ if (negated) --leftjustenv; else ++leftjustenv; ++ } else if (!strcmp(tok, "flushright")) { ++ if (negated) --rightjustenv; else ++rightjustenv; ++ } ++ break; ++ case 'i': ++ if (!strcmp(tok, "italic")) { ++ if (negated) { ++ --highlight; ++ if (highlight <= 0) { ++ if (FakeTerminal) outputstr(highlightendbuf); ++ else controloutput(highlightendbuf, 0); ++ } ++ } else { ++ ++highlight; ++ } ++ ResetTerminalCodes(FakeTerminal, highlight, underline, bold, ++ highlightbuf, highlightendbuf, 1, StartUnderline, ++ StopUnderline, 0, BoldOn, BoldOff, 0); ++ } else if (!strcmp(tok, "indent")) { ++ if (negated) { ++ leftmargin -= 4; ++ } else { ++ leftmargin += 4; ++ } ++ } else if (!strcmp(tok, "indentright")) { ++ if (negated) { ++ rightmargin += 4; ++ } else { ++ rightmargin -= 4; ++ } ++ } else if (TextEnriched && !strcmp(tok, "iNtErNaL-nL")) { ++ OUTC('\n'); ++ } ++ MakeWorkingMargins(); ++ break; ++ case 'l': ++ if (!TextEnriched && !strcmp(tok, "lt")) { ++ OUTC('<'); ++ } ++ break; ++ case 'n': ++ if (!TextEnriched && !strcmp(tok, "nl")) { ++ OUTC('\n'); ++ } else if (TextEnriched && !strcmp(tok, "nofill")) { ++ if (negated) { ++ --nofill; ++ } else { ++ ++nofill; ++ } ++ } else if (!TextEnriched && !strcmp(tok, "np")) { ++ OUTC('\n'); ++ OUTC('\014'); ++ } ++ break; ++ case 'o': ++ if (!TextEnriched && !strcmp(tok, "outdent")) { ++ if (negated) { ++ leftmargin += 4; ++ } else { ++ leftmargin -= 4; ++ } ++ } else if (!TextEnriched && !strcmp(tok, "outdentright")) { ++ if (negated) { ++ rightmargin -= 4; ++ } else { ++ rightmargin += 4; ++ } ++ } ++ MakeWorkingMargins(); ++ break; ++ case 'p': ++ if (!TextEnriched && !strcmp(tok, "paragraph")) { ++ if (negated) OUTC('\n'); ++ OUTC('\n'); ++ } else if (TextEnriched && !strcmp(tok, "param")) { ++ int commct=1; ++ while (commct > 0) { ++ for (;;) { ++ c = richtextlex(InputFP,token,TextEnriched, nofill); ++ if (c == EOF || c == RICHTEXT_COMMAND || c == RICHTEXT_NEG_COMMAND) ++ break; ++ } ++ if (c == EOF) break; ++ if (!strcmp(token,"param")) { ++ if (c == RICHTEXT_NEG_COMMAND) --commct; ++ else if (c == RICHTEXT_COMMAND) ++commct; ++ } ++ } ++ } ++ break; ++ case 's': ++ if (!TextEnriched && !strcmp(tok, "signature")) { ++ atstart = !(linepos > workingleft); ++ if (negated) { ++ leftmargin -= 4; ++ rightmargin += 4; ++ --insignature; ++ } else { ++ leftmargin += 4; ++ rightmargin -= 4; ++ ++insignature; ++ } ++ MakeWorkingMargins(); ++ if (!atstart) OUTC('\n'); ++ } ++ break; ++ case 'u': ++ if (!strcmp(tok, "underline")) { ++ if (negated) { ++ --underline; ++ if (underline <= 0) { ++ if (FakeTerminal) outputstr(StopUnderline); ++ else controloutput(StopUnderline,0); ++ } ++ } else { ++ ++underline; ++ } ++ ResetTerminalCodes(FakeTerminal, highlight, underline, bold, ++ highlightbuf, highlightendbuf, 0, StartUnderline, ++ StopUnderline, 1, BoldOn, BoldOff, 0); ++ } ++ break; ++ case 'v': ++ if (TextEnriched && !strcmp(tok, "verbatim")) { ++ for (;;) { ++ int tempc; ++ while ((tempc = getc(InputFP)) != '<' ++ && tempc != EOF) ++ OUTC(tempc); ++ if (tempc == EOF) break; ++ ungetc(tempc = getc(InputFP), InputFP); ++ if (tempc == '<') { ++ OUTC('<'); ++ getc(InputFP); ++ continue; ++ } ++ for (i=0; (tempc = getc(InputFP)) != '>' ++ && tempc != EOF; ++i) { ++ token[i] = tempc; ++ if (i == MAX_TOKEN_SIZE-2) break; ++ } ++ if (tempc== EOF) break; ++ token[i] = 0; ++ if (!lc2strcmp(token, "/verbatim")) break; ++ else for (i=0; token[i]; i++) ++ OUTC(token[i]); ++ } ++ } ++ break; ++ default: ++ /* Ignore all other tokens */ ++ break; ++ } ++ JustSawCmd = 1; ++ } else if (c == '\n') { ++ if (nofill) { ++ OUTC(c); ++ } else if (linepos > 0 && !inspace) { ++ OUTC(' '); ++ } ++ JustSawCmd = 0; ++ } else { ++ OUTC(c); ++ JustSawCmd = 0; ++ } ++ } ++ if (term) { /* cleanup a bit for insurance */ ++ controloutput(highlightendbuf, 0); ++ controloutput(StopUnderline, 0); ++ } ++ OUTC('\n'); /* for good measure */ ++ FPUTS(KE, stdout); ++ fflush(stdout); ++ if (UsePager) { ++ Pause(); ++ } ++ return(0); ++} ++ ++static struct charsetmember OutputBuf[1000] = {0,0}; ++static int PendingOutput = 0, PendingControls = 0; ++ ++controlputc(c) ++int c; ++{ ++ charmemberctrl (&OutputBuf[PendingOutput],(RCHAR)c); ++ ++PendingOutput; ++ ++PendingControls; ++} ++ ++static immediate_controlputc(c) ++int c; ++{ ++ (*RichtextPutc) (c, stdout); ++} ++ ++controloutput(s, immediate) ++char *s; ++int immediate; ++{ ++ tputs(s, 1, immediate ? immediate_controlputc : controlputc); ++} ++ ++static folding_point (buf, pos) ++struct charsetmember *buf; ++int pos; ++{ ++ int i; ++ for (i = pos; i > 0; --i) { ++ if (!charisctrl (buf[i]) && charmemberfold (buf[i])) ++ return (i); ++ } ++ return (0); ++} ++ ++static calc_column (buf, pos) ++struct charsetmember *buf; ++int pos; ++{ ++ struct charsetmember *s; ++ int col = 0; ++ for (s = buf; (s -> ch); ++s) { ++ if (!charisctrl (*s)) ++ col += charmemberwidth (*s); ++ else ++ ++col; ++ } ++ return (col); ++} ++ ++static FlushOut() { ++ int i, j, x; ++ static struct charsetmember NewOutputBuf[1000]; ++ struct charsetmember *s; ++ int NewPendingControls=0, NewPendingOutput = 0; ++ ++ OutputBuf[PendingOutput].ch = 0; ++ OutputBuf[PendingOutput].charset = NULL; ++ if (linepos >= workingright) { ++ for (i=0, j=0; j workingleft + 4) { ++ if (!charisctrl (OutputBuf[i]) ++ && isspace((unsigned char) OutputBuf[i].ch)) { ++ break; ++ } ++ --i; ++ } ++ for (j=0; i leftjustct) ++ && (rightjustct > centerct) ++ && (rightjustct > 0)) { ++ /* right justified */ ++ i = rightmargin - calc_column (OutputBuf,PendingOutput) ++ + PendingControls; ++ for (j=0; j centerct) ++ && (leftjustct > 0)) { ++ /* left justified */ ++ for (s=OutputBuf; s -> ch && isspace((unsigned char) (s -> ch)); ++s) ++ {;} ++ fputsmovingright(s, stdout); ++ ++linesused; ++ } else if (centerct > 0) { ++ /* centered */ ++ i = (termcolumns - calc_column (OutputBuf,PendingOutput) - 1 ++ + PendingControls) / 2; ++ for (j=0; j= termrows && UsePager) Pause(); ++ rightjustct = leftjustct = centerct = 0; /* not quite right for wrapping, sigh... */ ++ PendingOutput = PendingControls = linepos = 0; ++ inspace = 1; ++ j = (isspace((unsigned char) NewOutputBuf[0].ch)) ? 1 : 0; ++ for ( ; j= workingright) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'\n'); ++ PendingOutput++; ++ FlushOut(); ++ } else { ++ int spaces = (8*tabpos) - linepos; ++ while (spaces-->0) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)' '); ++ PendingOutput++; ++ ++linepos; ++ } ++ } ++ } else { ++ newinspace = isspace((unsigned char) c.ch); ++ if (!inspace || !newinspace || !JustSawCmd) { ++ if (linepos == 0) { ++ int i = workingleft; ++ if (inexcerpt) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'>'); ++ PendingOutput++; ++ --i; ++ } ++ if (insignature) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'+'); ++ PendingOutput++; ++ --i; ++ } ++ while (i-->0) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)' '); ++ PendingOutput++; ++ } ++ linepos = workingleft; ++ } ++ if (!alreadyformatted && biggertext && !(inspace && newinspace)) { ++ charmember (&OutputBuf[PendingOutput],(RCHAR)'_'); ++ PendingOutput++; ++ ++linepos; ++ } ++ inspace = newinspace; ++ linepos += charmemberwidth (c); ++ OutputBuf[PendingOutput++] = c; ++ if (OverStrike && !inspace) { ++ if (bold) { ++ controlputc('\b'); ++ controlputc((int) c.ch); ++ } ++ if (highlight||underline) { ++ controlputc('\b'); ++ controlputc('_'); ++ } ++ } ++ leftjustct += leftjustenv; ++ rightjustct += rightjustenv; ++ centerct += centerenv; ++ if (c.ch == '\014') inspace = 1; ++ if (linepos >= workingright) FlushOut(); ++ } ++ } ++} ++ ++static MakeWorkingMargins() { ++ int oldworkingleft=workingleft, i; ++ ++ workingleft = leftmargin; ++ workingright = rightmargin; ++ if (workingleft < 0) workingleft = 0; ++ if (workingright < 0) workingright = 0; ++ if (workingright > (termcolumns - 1)) workingright = (termcolumns - 1); ++ if (workingleft > (workingright - 8)) workingleft = workingright -8; ++ if (linepos == oldworkingleft && linepos != 0) { ++ for (i=workingleft-oldworkingleft; i > 0; --i) OUTC(' '); ++ } ++} ++ ++static Pause() ++{ ++ int c; ++ ++ (void) fputs("Press RETURN to continue (or 'q' to quit):\n", stdout); ++ fflush(stdout); ++ c = getc(stdin); ++ if (c == 'q' || c == 'Q') exit(0); ++ linesused = 0; ++} ++ ++/* Leading spaces should be output as MoveRight, to avoid ++ having margins that are underlined or reverse video */ ++ ++static fputsmovingright(s, fp) ++struct charsetmember *s; ++FILE *fp; ++{ ++ int inmargin=1; ++ if (!s) return; ++ while (s -> ch) { ++ if (inmargin && (s -> ch) == ' ') { ++ controloutput(MoveRight, 1); ++ } else { ++ if (inmargin) inmargin = 0; ++ if (charisctrl (*s)) ++ (*RichtextPutc) ((int)(s -> ch), fp); ++ else ++ charmemberrender (*s, fp); ++ } ++ ++s; ++ } ++} ++ ++static ResetTerminalCodes(FakeTerminal, highlight, underline, bold, highlightbuf, highlightendbuf, ++ modifiedhighlight, StartUnderline, StopUnderline, modifiedunderline, ++ BoldOn, BoldOff, modifiedbold) ++char *highlightbuf, *highlightendbuf, *StartUnderline, *StopUnderline, ++ *BoldOn, *BoldOff; ++{ ++ if (OverStrike) ++ return; ++ ++ /* We always turn back on the appropriate terminal modes, because ++ on some terminals one thing turns off all of them */ ++ if (highlight >= 1) { ++ if (FakeTerminal) { ++ if (modifiedhighlight && highlight == 1) outputstr(highlightbuf); ++ } else controloutput(highlightbuf, 0); ++ } ++ if (bold >= 1) { ++ if (FakeTerminal) { ++ if (modifiedbold && bold == 1) outputstr(BoldOn); ++ } else controloutput(BoldOn, 0); ++ } ++ if (underline >= 1) { ++ if (FakeTerminal) { ++ if (modifiedunderline && underline == 1) outputstr(StartUnderline); ++ } else controloutput(StartUnderline, 0); ++ } ++} ++ ++static FinalizeTerminal() { ++ tputs(highlightendbuf, 1, immediate_controlputc); ++ tputs(BoldOff, 1, immediate_controlputc); ++ tputs(StopUnderline, 1, immediate_controlputc); ++ FPUTS(KE, stdout); ++} ++ ++static outputstr(s) ++char *s; ++{ ++ while (*s) OUTC(*s++); ++} ++ ++static FPUTS(s,fp) ++unsigned char *s; ++FILE *fp; ++{ ++ while(*s) (*RichtextPutc)((int)(*s++),fp); ++} ++ ++static lc2strcmp(s1, s2) ++char *s1, *s2; ++{ ++ if (!s1 || !s2) return (-1); ++ while (*s1 && *s2) { ++ if (*s1 != *s2 && (tolower(*s1) != *s2)) return(-1); ++ ++s1; ++s2; ++ } ++ return((*s1 == *s2) ? 0 : -1); ++} ++ ++static lc2strncmp(s1, s2, len) ++char *s1, *s2; ++int len; ++{ ++ if (!s1 || !s2) return (-1); ++ while (*s1 && *s2 && len > 0) { ++ if (*s1 != *s2 && (tolower(*s1) != *s2)) return(-1); ++ ++s1; ++s2; --len; ++ } ++ if (len <= 0) return(0); ++ return((*s1 == *s2) ? 0 : -1); ++} +--- metamail-2.7.orig/src/richmail/richset.c ++++ metamail-2.7/src/richmail/richset.c +@@ -0,0 +1,222 @@ ++/*------------------------------------------------------------------------- ++ ++ richset.c - Handling for different character sets in richtext. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 21/06/92 RW Original Version of richset.c ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++-------------------------------------------------------------------------*/ ++ ++#include ++ ++#include "richlex.h" ++#include "richset.h" ++ ++/* ++ * Define a list of all character set processors in memory. ++ */ ++static struct charsetproc *CharacterSets[] = ++ {&usascii_charset, ++ &iso2022_charset, ++ NULL}; ++ ++/* ++ * Global data for this module. ++ */ ++#define MAX_CHAR_SETS 100 ++static int NumCharSets=0; ++static struct charsetproc *CharSets[MAX_CHAR_SETS]; ++static int CharEncStack[MAX_CHAR_SETS]; ++ ++/* ++ * Initialise the stack of character set processors, starting with ++ * a particular base processor. The initialisation function of all ++ * character set processors is called. ++ */ ++charsetinit (charset,name) ++struct charsetproc *charset; ++char *name; ++{ ++ int temp = 0; ++ CharSets[0] = charset; ++ NumCharSets = 1; ++ while (CharacterSets[temp]) { ++ (*(CharacterSets[temp] -> init)) ++ ((CharacterSets[temp] == charset ? name : NULL)); ++ ++temp; ++ } ++} ++ ++/* ++ * Initialise the stack, starting with a character set processor with ++ * a particular name. ++ */ ++charsetnameinit (name) ++char *name; ++{ ++ int temp = 0; ++ int succeed = 0; ++ char *temp1,*temp2; ++ struct charsetproc *charset = &usascii_charset; ++ while (!succeed && CharacterSets[temp]) { ++ temp2 = CharacterSets[temp] -> names; ++ while (!succeed && *temp2) { ++ temp1 = name; ++ while (*temp1 && *temp2 && *temp2 != ':' && *temp2 == *temp1) { ++ ++temp1; ++ ++temp2; ++ } ++ if (*temp1 == '\0' && (*temp2 == '\0' || *temp2 == ':')) { ++ succeed = 1; ++ charset = CharacterSets[temp]; ++ } ++ while (*temp2 && *temp2 != ':') { ++ ++temp2; ++ } ++ if (*temp2 == ':') { ++ ++temp2; ++ } ++ } ++ ++temp; ++ } ++ charsetinit (charset,name); ++} ++ ++/* ++ * Push a new character set processor onto the stack. ++ */ ++charsetpush (charset) ++struct charsetproc *charset; ++{ ++ if (NumCharSets >= MAX_CHAR_SETS) { ++ fprintf (stderr,"Too many nested character sets: aborting\n"); ++ exit (1); ++ } else { ++ CharEncStack[NumCharSets - 1] = RichtextCharEncoding; ++ (*(CharSets[NumCharSets - 1] -> encoding)) (-1); /* Leave current */ ++ CharSets[NumCharSets++] = charset; ++ } ++} ++ ++/* ++ * Pop the top-most character set processor off the stack ++ * if it matches the given processor. Note: the base ++ * processor is never popped off. ++ */ ++charsetpop (charset) ++struct charsetproc *charset; ++{ ++ if (NumCharSets > 1 && CharSets[NumCharSets - 1] == charset) { ++ --NumCharSets; ++ richtextencoding (CharEncStack[NumCharSets - 1]); ++ (*(CharSets[NumCharSets - 1] -> encoding)) (RichtextCharEncoding); ++ } ++} ++ ++/* ++ * See if the character set processor on the top of the stack ++ * matches the given processor. ++ */ ++int charsettop (charset) ++struct charsetproc *charset; ++{ ++ if (NumCharSets > 1) { ++ return (CharSets[NumCharSets - 1] == charset); ++ } else { ++ return (0); ++ } ++} ++ ++/* ++ * Set the details for a character set member in the top-most ++ * character set. ++ */ ++charmember (member,ch) ++struct charsetmember *member; ++RCHAR ch; ++{ ++ member -> ch = ch; ++ member -> charset = CharSets[NumCharSets - 1]; ++} ++ ++/* ++ * Set the details for a member of a specific character set. ++ */ ++charmemberspec (member,ch,charset) ++struct charsetmember *member; ++RCHAR ch; ++struct charsetproc *charset; ++{ ++ member -> ch = ch; ++ member -> charset = charset; ++} ++ ++/* ++ * Set the details for a output control code character. ++ */ ++charmemberctrl (member,ch) ++struct charsetmember *member; ++RCHAR ch; ++{ ++ member -> ch = ch; ++ member -> charset = NULL; ++} ++ ++/* ++ * Attempt to process a richtext command by passing it to the ++ * "command" function of all character set processors. Returns ++ * zero if the command was not processed. ++ */ ++int charsetcommand (token,negated) ++char *token; ++int negated; ++{ ++ int temp = 0; ++ while (CharacterSets[temp]) { ++ if ((*(CharacterSets[temp] -> command)) (token,negated)) ++ return (1); ++ ++temp; ++ } ++ return (0); ++} ++ ++/* ++ * Test for an extension singleton command. ++ */ ++int charsetsingle (token) ++char *token; ++{ ++ int temp = 0; ++ while (CharacterSets[temp]) { ++ if ((*(CharacterSets[temp] -> single)) (token)) ++ return (1); ++ ++temp; ++ } ++ return (0); ++} +--- metamail-2.7.orig/src/richmail/richset.h ++++ metamail-2.7/src/richmail/richset.h +@@ -0,0 +1,172 @@ ++/*------------------------------------------------------------------------- ++ ++ richset.h - Handling for different character sets in richtext. ++ ++ Copyright (c) 1992 Rhys Weatherley ++ ++ Permission to use, copy, modify, and distribute this material ++ for any purpose and without fee is hereby granted, provided ++ that the above copyright notice and this permission notice ++ appear in all copies, and that the name of Rhys Weatherley not be ++ used in advertising or publicity pertaining to this ++ material without specific, prior written permission. ++ RHYS WEATHERLEY MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR ++ SUITABILITY OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED ++ "AS IS", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++ ++ Revision History: ++ ================ ++ ++ Version DD/MM/YY By Description ++ ------- -------- -- -------------------------------------- ++ 1.0 19/06/92 RW Original Version of richset.h ++ ++ You may contact the author by: ++ ============================= ++ ++ e-mail: rhys@cs.uq.oz.au ++ mail: Rhys Weatherley ++ 5 Horizon Drive ++ Jamboree Heights ++ Queensland 4074 ++ Australia ++ ++-------------------------------------------------------------------------*/ ++ ++#ifndef __RICHSET_H__ ++#define __RICHSET_H__ ++ ++#include ++ ++BEGIN_C_DECLS ++ ++/* ++ * Define the interface structure for a character set processor. ++ * The fields are as follows: ++ * ++ * names - Colon-separated list of character set names. ++ * init - Initialize the character set processor. ++ * command - Process a command before the default processing. ++ * Returns non-zero if processed, zero if not. ++ * single - Should return non-zero for a singleton command. ++ * width - Get the width in terminal characters of the character. ++ * fold - Returns non-zero if the character can be folded at. ++ * render - Render the character through RichtextPutc. ++ * encoding- Enter or leave an encoding. newenc is -1 to leave. ++ * ++ */ ++struct charsetproc ++ { ++ char *names; ++ int (*init) ( /* char *name */ ); ++ int (*command) ( /* char *token, int negated */ ); ++ int (*single) ( /* char *token */ ); ++ int (*width) ( /* RCHAR c */ ); ++ int (*fold) ( /* RCHAR c */ ); ++ int (*render) ( /* RCHAR c, void *param */ ); ++ int (*encoding) ( /* int newenc */ ); ++ }; ++ ++/* ++ * Define some standard character set processors. ++ */ ++extern struct charsetproc usascii_charset; ++extern struct charsetproc iso2022_charset; ++ ++/* ++ * Define the information to be kept in the internal buffers ++ * about a character. If "charset" is NULL, it is a control ++ * character. ++ */ ++struct charsetmember ++ { ++ RCHAR ch; /* The character itself */ ++ struct charsetproc *charset; /* Character set of ch */ ++ }; ++ ++/* ++ * Initialise the stack of character set processors, starting with ++ * a particular base processor. The initialisation function of all ++ * character set processors is called. ++ */ ++extern charsetinit ( /* struct charsetproc *charset, char *name */ ); ++ ++/* ++ * Initialise the stack, starting with a character set processor with ++ * a particular name. ++ */ ++extern charsetnameinit ( /* char *name */ ); ++ ++/* ++ * Push a new character set processor onto the stack. ++ */ ++extern charsetpush ( /* struct charsetproc *charset */ ); ++ ++/* ++ * Pop the top-most character set processor off the stack ++ * if it matches the given processor. Note: the base ++ * processor is never popped off. ++ */ ++extern charsetpop ( /* struct charsetproc *charset */ ); ++ ++/* ++ * See if the character set processor on the top of the stack ++ * matches the given processor. ++ */ ++extern int charsettop ( /* struct charsetproc *charset */ ); ++ ++/* ++ * Set the details for a character set member in the top-most ++ * character set. ++ */ ++extern charmember ( /* struct charsetmember *member, RCHAR ch */ ); ++ ++/* ++ * Set the details for a member of a specific character set. ++ */ ++extern charmemberspec ( /* struct charsetmember *member, RCHAR ch, ++ struct charset *charset */ ); ++ ++/* ++ * Set the details for a output control code character. ++ */ ++extern charmemberctrl ( /* struct charsetmember *member, RCHAR ch */ ); ++ ++/* ++ * Determine if the given character is a control code character. ++ */ ++#define charisctrl(member) ((member).charset == (struct charsetproc *)0) ++ ++/* ++ * Attempt to process a richtext command by passing it to the ++ * "command" function of all character set processors. Returns ++ * zero if the command was not processed. ++ */ ++extern int charsetcommand ( /* char *token, int negated */ ); ++ ++/* ++ * Test for an extension singleton command. ++ */ ++extern int charsetsingle ( /* char *token */ ); ++ ++/* ++ * Get the width of a particular character. ++ */ ++#define charmemberwidth(member) \ ++ ((*((member).charset -> width)) ((member).ch)) ++ ++/* ++ * Determine if a character can be folded at. ++ */ ++#define charmemberfold(member) \ ++ ((*((member).charset -> fold)) ((member).ch)) ++ ++/* ++ * Render a character on an output stream. ++ */ ++#define charmemberrender(member,param) \ ++ ((*((member).charset -> render)) ((member).ch,param)) ++ ++END_C_DECLS ++ ++#endif /* __RICHSET_H__ */ +--- metamail-2.7.orig/src/richmail/richtoatk.c ++++ metamail-2.7/src/richmail/richtoatk.c +@@ -0,0 +1,98 @@ ++/* ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++*/ ++#include ++ ++#include "richlex.h" ++ ++char *translate(t) ++char *t; ++{ ++ if (!strcmp(t, "fixed")) return("typewriter"); ++ if (!strcmp(t, "excerpt")) return("quotation"); ++ /* Really ought to handle ISO-10646 and ISO-8859-X somehow */ ++ return(t); ++} ++ ++main() { ++ RCHAR c; ++ int i, JustDidNewline = 0; ++ char tok[MAX_TOKEN_SIZE + 1],*token; ++ ++ fputs("\\begindata{text, 42}\n\\template{messages}\n", stdout); ++ /* The 0, 0 means that we're not implementing text/enriched */ ++ while((c = richtextlex(stdin,tok + 1, 0, 0)) != (RCHAR)EOF) { ++ if (c == RICHTEXT_COMMAND || c == RICHTEXT_NEG_COMMAND) { ++ if (c == RICHTEXT_NEG_COMMAND) { ++ tok[0] = '/'; ++ token = tok; ++ } else ++ token = tok + 1; ++ if (!strcmp(token, "lt")) { ++ putc('<', stdout); ++ JustDidNewline = 0; ++ } else if (!strcmp(token, "nl")) { ++ fputs(JustDidNewline ? "\n" : "\n\n", stdout); ++ JustDidNewline = 1; ++ } else if (!strcmp(token, "/paragraph")) { ++ fputs(JustDidNewline ? "\n\n" : "\n\n\n", stdout); ++ JustDidNewline = 1; ++ } else if (!strcmp(token, "comment")) { ++ int tempc; ++ while (strcmp(token, "/comment")) { ++ while ((tempc = getc(stdin)) != '<') ; ++ for (i=0; (tempc = getc(stdin)) != '>'; ++i) { ++ token[i] = isupper(tempc) ? tolower(tempc) : tempc; ++ } ++ token[i] = '\0'; ++ } ++ } else if (!ignoretoken(token)) { ++ if (token[0] == '/') { ++ putc('}', stdout); ++ } else { ++ fprintf(stdout, "\\%s{", translate(token)); ++ JustDidNewline = 0; ++ } ++ } ++ } else if (c == '\n') { ++ putc(' ', stdout); ++ JustDidNewline = 0; ++ } else { ++ putc((int)c, stdout); ++ JustDidNewline = 0; ++ } ++ } ++ fputs("\n \n\\enddata{text, 42}\n", stdout); ++} ++ ++ignoretoken(t) ++char *t; ++{ ++ if (*t == '/') ++t; ++ if (!strcmp(t, "us-ascii")) return(1); ++ if (!strcmp(t, "paragraph")) return(1); /* handled otherwise */ ++ if (!strcmp(t, "no-op")) return(1); ++ return(0); ++} ++ ++controlputc(c) ++int c; ++{ ++} ++ ++controloutput(s, immediate) ++char *s; ++int immediate; ++{ ++} +--- metamail-2.7.orig/replace/vfprintf.c ++++ metamail-2.7/replace/vfprintf.c +@@ -0,0 +1,43 @@ ++/* vfprintf.c -- implement vfprintf() for architectures without it ++ Copyright (C) 2000 Gary V. Vaughan ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ ++#if HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++ ++#if HAVE_STDARG_H && !HAVE_VARARGS_H ++# include ++#else /*!HAVE_STDARG_H || HAVE_VARARGS_H*/ ++# include ++#endif /*HAVE_STDARG_H && !HAVE_VARARGS_H*/ ++ ++/* Some systems define this! */ ++#undef vfprintf ++ ++extern int _doprnt (); ++ ++int ++vfprintf (file, format, ap) ++ FILE *file; ++ const char *format; ++ va_list ap; ++{ ++ return _doprnt (format, ap, file); ++} +--- metamail-2.7.orig/replace/basename.c ++++ metamail-2.7/replace/basename.c +@@ -0,0 +1,45 @@ ++/* basename.c -- implement basename() for architectures without it ++ Copyright (C) 2000 Gary V. Vaughan ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++#if HAVE_CONFIG_H ++# include ++#endif ++ ++#if HAVE_STRING_H ++# include ++#elif HAVE_STRINGS_H ++# include ++#endif ++ ++#if !HAVE_STRRCHR ++# ifndef strrchr ++# define strrchr rindex ++# endif ++#endif ++ ++char* ++basename (path) ++ char *path; ++{ ++ /* Search for the last directory separator in PATH. */ ++ char *basename = strrchr (path, '/'); ++ ++ /* If found, return the address of the following character, ++ or the start of the parameter passed in. */ ++ return basename ? ++basename : (char*)path; ++} ++ +--- metamail-2.7.orig/replace/putenv.c ++++ metamail-2.7/replace/putenv.c +@@ -0,0 +1,100 @@ ++/* Copyright (C) 1991 Free Software Foundation, Inc. ++This file is part of the GNU C Library. ++ ++The GNU C Library is free software; you can redistribute it and/or ++modify it under the terms of the GNU Library General Public License as ++published by the Free Software Foundation; either version 2 of the ++License, or (at your option) any later version. ++ ++The GNU C Library is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++Library General Public License for more details. ++ ++You should have received a copy of the GNU Library General Public ++License along with the GNU C Library; see the file COPYING.LIB. If ++not, write to the Free Software Foundation, Inc., 675 Mass Ave, ++Cambridge, MA 02139, USA. */ ++ ++#include ++#include ++#include ++#ifdef STDC_HEADERS ++#include ++#else ++extern int errno; ++#endif ++ ++#if defined(STDC_HEADERS) || defined(USG) || defined(SYSV) ++#include ++#else /* not (STDC_HEADERS or USG) */ ++#include ++#endif /* STDC_HEADERS or USG */ ++ ++#ifdef HAVE_UNISTD_H ++#include ++#endif ++ ++#ifndef NULL ++#define NULL 0 ++#endif ++ ++#if !__STDC__ ++#define const ++#endif ++ ++extern char **environ; ++ ++/* Put STRING, which is of the form "NAME=VALUE", in the environment. */ ++int ++putenv (string) ++ const char *string; ++{ ++ char *name_end = index (string, '='); ++ register size_t size; ++ register char **ep; ++ ++ if (name_end == NULL) ++ { ++ /* Remove the variable from the environment. */ ++ size = strlen (string); ++ for (ep = environ; *ep != NULL; ++ep) ++ if (!strncmp (*ep, string, size) && (*ep)[size] == '=') ++ { ++ while (ep[1] != NULL) ++ { ++ ep[0] = ep[1]; ++ ++ep; ++ } ++ *ep = NULL; ++ return 0; ++ } ++ } ++ ++ size = 0; ++ for (ep = environ; *ep != NULL; ++ep) ++ if (!strncmp (*ep, string, name_end - string) && ++ (*ep)[name_end - string] == '=') ++ break; ++ else ++ ++size; ++ ++ if (*ep == NULL) ++ { ++ static char **last_environ = NULL; ++ char **new_environ = (char **) malloc ((size + 2) * sizeof (char *)); ++ if (new_environ == NULL) ++ return -1; ++ (void) bcopy ((char *) environ, (char *) new_environ, size * sizeof (char *)); ++ new_environ[size] = (char *) string; ++ new_environ[size + 1] = NULL; ++ if (last_environ != NULL) ++ free ((char *) last_environ); ++ last_environ = new_environ; ++ environ = new_environ; ++ } ++ else ++ *ep = (char *) string; ++ ++ return 0; ++} +--- metamail-2.7.orig/replace/Makefile.am ++++ metamail-2.7/replace/Makefile.am +@@ -0,0 +1,9 @@ ++## Makefile.am -- Process this file with automake to produce Makefile.in ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir) ++ ++noinst_LTLIBRARIES = libreplace.la ++libreplace_la_SOURCES = ++libreplace_la_LIBADD = @LTLIBOBJS@ +--- metamail-2.7.orig/replace/Makefile.in ++++ metamail-2.7/replace/Makefile.in +@@ -0,0 +1,343 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = .. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++MAINTAINERCLEANFILES = Makefile.in ++ ++INCLUDES = -I$(top_builddir) -I$(top_srcdir) ++ ++noinst_LTLIBRARIES = libreplace.la ++libreplace_la_SOURCES = ++libreplace_la_LIBADD = @LTLIBOBJS@ ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ../metamail/config.h ++CONFIG_CLEAN_FILES = ++LTLIBRARIES = $(noinst_LTLIBRARIES) ++ ++ ++DEFS = @DEFS@ -I. -I$(srcdir) -I../metamail ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++libreplace_la_LDFLAGS = ++libreplace_la_DEPENDENCIES = @LTLIBOBJS@ ++libreplace_la_OBJECTS = ++CFLAGS = @CFLAGS@ ++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ ++DIST_COMMON = Makefile.am Makefile.in basename.c putenv.c strerror.c \ ++vfprintf.c ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++DEP_FILES = .deps/basename.P .deps/putenv.P .deps/strerror.P \ ++.deps/vfprintf.P ++SOURCES = $(libreplace_la_SOURCES) ++OBJECTS = $(libreplace_la_OBJECTS) ++ ++all: all-redirect ++.SUFFIXES: ++.SUFFIXES: .S .c .lo .o .obj .s ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign replace/Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++ ++mostlyclean-noinstLTLIBRARIES: ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ ++distclean-noinstLTLIBRARIES: ++ ++maintainer-clean-noinstLTLIBRARIES: ++ ++# FIXME: We should only use cygpath when building on Windows, ++# and only if it is available. ++.c.obj: ++ $(COMPILE) -c `cygpath -w $<` ++ ++.s.o: ++ $(COMPILE) -c $< ++ ++.S.o: ++ $(COMPILE) -c $< ++ ++mostlyclean-compile: ++ -rm -f *.o core *.core ++ -rm -f *.$(OBJEXT) ++ ++clean-compile: ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++maintainer-clean-compile: ++ ++.s.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++.S.lo: ++ $(LIBTOOL) --mode=compile $(COMPILE) -c $< ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ ++maintainer-clean-libtool: ++ ++libreplace.la: $(libreplace_la_OBJECTS) $(libreplace_la_DEPENDENCIES) ++ $(LINK) $(libreplace_la_LDFLAGS) $(libreplace_la_OBJECTS) $(libreplace_la_LIBADD) $(LIBS) ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) ++ ++subdir = replace ++ ++distdir: $(DISTFILES) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(top_distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign replace/Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ ++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) ++ ++-include $(DEP_FILES) ++ ++mostlyclean-depend: ++ ++clean-depend: ++ ++distclean-depend: ++ -rm -rf .deps ++ ++maintainer-clean-depend: ++ ++%.o: %.c ++ @echo '$(COMPILE) -c $<'; \ ++ $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-cp .deps/$(*F).pp .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm .deps/$(*F).pp ++ ++%.lo: %.c ++ @echo '$(LTCOMPILE) -c $<'; \ ++ $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< ++ @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ ++ < .deps/$(*F).pp > .deps/$(*F).P; \ ++ tr ' ' '\012' < .deps/$(*F).pp \ ++ | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ ++ >> .deps/$(*F).P; \ ++ rm -f .deps/$(*F).pp ++info-am: ++info: info-am ++dvi-am: ++dvi: dvi-am ++check-am: all-am ++check: check-am ++installcheck-am: ++installcheck: installcheck-am ++install-exec-am: ++install-exec: install-exec-am ++ ++install-data-am: ++install-data: install-data-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-am ++uninstall-am: ++uninstall: uninstall-am ++all-am: Makefile $(LTLIBRARIES) ++all-redirect: all-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-noinstLTLIBRARIES mostlyclean-compile \ ++ mostlyclean-libtool mostlyclean-tags mostlyclean-depend \ ++ mostlyclean-generic ++ ++mostlyclean: mostlyclean-am ++ ++clean-am: clean-noinstLTLIBRARIES clean-compile clean-libtool \ ++ clean-tags clean-depend clean-generic mostlyclean-am ++ ++clean: clean-am ++ ++distclean-am: distclean-noinstLTLIBRARIES distclean-compile \ ++ distclean-libtool distclean-tags distclean-depend \ ++ distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-am ++ ++maintainer-clean-am: maintainer-clean-noinstLTLIBRARIES \ ++ maintainer-clean-compile maintainer-clean-libtool \ ++ maintainer-clean-tags maintainer-clean-depend \ ++ maintainer-clean-generic distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-am ++ ++.PHONY: mostlyclean-noinstLTLIBRARIES distclean-noinstLTLIBRARIES \ ++clean-noinstLTLIBRARIES maintainer-clean-noinstLTLIBRARIES \ ++mostlyclean-compile distclean-compile clean-compile \ ++maintainer-clean-compile mostlyclean-libtool distclean-libtool \ ++clean-libtool maintainer-clean-libtool tags mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir \ ++mostlyclean-depend distclean-depend clean-depend \ ++maintainer-clean-depend info-am info dvi-am dvi check check-am \ ++installcheck-am installcheck install-exec-am install-exec \ ++install-data-am install-data install-am install uninstall-am uninstall \ ++all-redirect all-am all installdirs mostlyclean-generic \ ++distclean-generic clean-generic maintainer-clean-generic clean \ ++mostlyclean distclean maintainer-clean ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +--- metamail-2.7.orig/replace/strerror.c ++++ metamail-2.7/replace/strerror.c +@@ -0,0 +1,610 @@ ++/* strerror.c -- implement strerror() for architectures without it ++ Written by Fred Fish. fnf@cygnus.com ++ This file is in the public domain. --Per Bothner. ++*/ ++ ++#if HAVE_CONFIG_H ++# include ++#endif ++ ++#ifdef HAVE_SYS_ERRLIST ++/* Note that errno.h (not sure what OS) or stdio.h (BSD 4.4, at least) ++ might declare sys_errlist in a way that the compiler might consider ++ incompatible with our later declaration, perhaps by using const ++ attributes. So we hide the declaration in errno.h (if any) using a ++ macro. */ ++#define sys_errlist no_such_symbol ++#endif ++ ++#include ++ ++#if HAVE_ERRNO_H ++# include ++#endif ++ ++#ifdef HAVE_SYS_ERRLIST ++# undef sys_errlist ++#endif ++ ++/* Routines imported from standard C runtime libraries. */ ++ ++#ifdef __STDC__ ++#include ++extern void *malloc (size_t size); /* 4.10.3.3 */ ++extern void *memset (void *s, int c, size_t n); /* 4.11.6.1 */ ++#else /* !__STDC__ */ ++extern char *malloc (); /* Standard memory allocater */ ++extern char *memset (); ++#endif /* __STDC__ */ ++ ++#ifndef MAX ++# define MAX(a,b) ((a) > (b) ? (a) : (b)) ++#endif ++ ++/* Translation table for errno values. See intro(2) in most UNIX systems ++ Programmers Reference Manuals. ++ ++ Note that this table is generally only accessed when it is used at runtime ++ to initialize errno name and message tables that are indexed by errno ++ value. ++ ++ Not all of these errnos will exist on all systems. This table is the only ++ thing that should have to be updated as new error numbers are introduced. ++ It's sort of ugly, but at least its portable. */ ++ ++struct error_info ++{ ++ int value; /* The numeric value from */ ++ const char *name; /* The equivalent symbolic value */ ++#ifndef HAVE_SYS_ERRLIST ++ const char *msg; /* Short message about this value */ ++#endif ++}; ++ ++#ifndef HAVE_SYS_ERRLIST ++# define ENTRY(value, name, msg) {value, name, msg} ++#else ++# define ENTRY(value, name, msg) {value, name} ++#endif ++ ++static const struct error_info error_table[] = ++{ ++#if defined (EPERM) ++ ENTRY(EPERM, "EPERM", "Not owner"), ++#endif ++#if defined (ENOENT) ++ ENTRY(ENOENT, "ENOENT", "No such file or directory"), ++#endif ++#if defined (ESRCH) ++ ENTRY(ESRCH, "ESRCH", "No such process"), ++#endif ++#if defined (EINTR) ++ ENTRY(EINTR, "EINTR", "Interrupted system call"), ++#endif ++#if defined (EIO) ++ ENTRY(EIO, "EIO", "I/O error"), ++#endif ++#if defined (ENXIO) ++ ENTRY(ENXIO, "ENXIO", "No such device or address"), ++#endif ++#if defined (E2BIG) ++ ENTRY(E2BIG, "E2BIG", "Arg list too long"), ++#endif ++#if defined (ENOEXEC) ++ ENTRY(ENOEXEC, "ENOEXEC", "Exec format error"), ++#endif ++#if defined (EBADF) ++ ENTRY(EBADF, "EBADF", "Bad file number"), ++#endif ++#if defined (ECHILD) ++ ENTRY(ECHILD, "ECHILD", "No child processes"), ++#endif ++#if defined (EWOULDBLOCK) /* Put before EAGAIN, sometimes aliased */ ++ ENTRY(EWOULDBLOCK, "EWOULDBLOCK", "Operation would block"), ++#endif ++#if defined (EAGAIN) ++ ENTRY(EAGAIN, "EAGAIN", "No more processes"), ++#endif ++#if defined (ENOMEM) ++ ENTRY(ENOMEM, "ENOMEM", "Not enough space"), ++#endif ++#if defined (EACCES) ++ ENTRY(EACCES, "EACCES", "Permission denied"), ++#endif ++#if defined (EFAULT) ++ ENTRY(EFAULT, "EFAULT", "Bad address"), ++#endif ++#if defined (ENOTBLK) ++ ENTRY(ENOTBLK, "ENOTBLK", "Block device required"), ++#endif ++#if defined (EBUSY) ++ ENTRY(EBUSY, "EBUSY", "Device busy"), ++#endif ++#if defined (EEXIST) ++ ENTRY(EEXIST, "EEXIST", "File exists"), ++#endif ++#if defined (EXDEV) ++ ENTRY(EXDEV, "EXDEV", "Cross-device link"), ++#endif ++#if defined (ENODEV) ++ ENTRY(ENODEV, "ENODEV", "No such device"), ++#endif ++#if defined (ENOTDIR) ++ ENTRY(ENOTDIR, "ENOTDIR", "Not a directory"), ++#endif ++#if defined (EISDIR) ++ ENTRY(EISDIR, "EISDIR", "Is a directory"), ++#endif ++#if defined (EINVAL) ++ ENTRY(EINVAL, "EINVAL", "Invalid argument"), ++#endif ++#if defined (ENFILE) ++ ENTRY(ENFILE, "ENFILE", "File table overflow"), ++#endif ++#if defined (EMFILE) ++ ENTRY(EMFILE, "EMFILE", "Too many open files"), ++#endif ++#if defined (ENOTTY) ++ ENTRY(ENOTTY, "ENOTTY", "Not a typewriter"), ++#endif ++#if defined (ETXTBSY) ++ ENTRY(ETXTBSY, "ETXTBSY", "Text file busy"), ++#endif ++#if defined (EFBIG) ++ ENTRY(EFBIG, "EFBIG", "File too large"), ++#endif ++#if defined (ENOSPC) ++ ENTRY(ENOSPC, "ENOSPC", "No space left on device"), ++#endif ++#if defined (ESPIPE) ++ ENTRY(ESPIPE, "ESPIPE", "Illegal seek"), ++#endif ++#if defined (EROFS) ++ ENTRY(EROFS, "EROFS", "Read-only file system"), ++#endif ++#if defined (EMLINK) ++ ENTRY(EMLINK, "EMLINK", "Too many links"), ++#endif ++#if defined (EPIPE) ++ ENTRY(EPIPE, "EPIPE", "Broken pipe"), ++#endif ++#if defined (EDOM) ++ ENTRY(EDOM, "EDOM", "Math argument out of domain of func"), ++#endif ++#if defined (ERANGE) ++ ENTRY(ERANGE, "ERANGE", "Math result not representable"), ++#endif ++#if defined (ENOMSG) ++ ENTRY(ENOMSG, "ENOMSG", "No message of desired type"), ++#endif ++#if defined (EIDRM) ++ ENTRY(EIDRM, "EIDRM", "Identifier removed"), ++#endif ++#if defined (ECHRNG) ++ ENTRY(ECHRNG, "ECHRNG", "Channel number out of range"), ++#endif ++#if defined (EL2NSYNC) ++ ENTRY(EL2NSYNC, "EL2NSYNC", "Level 2 not synchronized"), ++#endif ++#if defined (EL3HLT) ++ ENTRY(EL3HLT, "EL3HLT", "Level 3 halted"), ++#endif ++#if defined (EL3RST) ++ ENTRY(EL3RST, "EL3RST", "Level 3 reset"), ++#endif ++#if defined (ELNRNG) ++ ENTRY(ELNRNG, "ELNRNG", "Link number out of range"), ++#endif ++#if defined (EUNATCH) ++ ENTRY(EUNATCH, "EUNATCH", "Protocol driver not attached"), ++#endif ++#if defined (ENOCSI) ++ ENTRY(ENOCSI, "ENOCSI", "No CSI structure available"), ++#endif ++#if defined (EL2HLT) ++ ENTRY(EL2HLT, "EL2HLT", "Level 2 halted"), ++#endif ++#if defined (EDEADLK) ++ ENTRY(EDEADLK, "EDEADLK", "Deadlock condition"), ++#endif ++#if defined (ENOLCK) ++ ENTRY(ENOLCK, "ENOLCK", "No record locks available"), ++#endif ++#if defined (EBADE) ++ ENTRY(EBADE, "EBADE", "Invalid exchange"), ++#endif ++#if defined (EBADR) ++ ENTRY(EBADR, "EBADR", "Invalid request descriptor"), ++#endif ++#if defined (EXFULL) ++ ENTRY(EXFULL, "EXFULL", "Exchange full"), ++#endif ++#if defined (ENOANO) ++ ENTRY(ENOANO, "ENOANO", "No anode"), ++#endif ++#if defined (EBADRQC) ++ ENTRY(EBADRQC, "EBADRQC", "Invalid request code"), ++#endif ++#if defined (EBADSLT) ++ ENTRY(EBADSLT, "EBADSLT", "Invalid slot"), ++#endif ++#if defined (EDEADLOCK) ++ ENTRY(EDEADLOCK, "EDEADLOCK", "File locking deadlock error"), ++#endif ++#if defined (EBFONT) ++ ENTRY(EBFONT, "EBFONT", "Bad font file format"), ++#endif ++#if defined (ENOSTR) ++ ENTRY(ENOSTR, "ENOSTR", "Device not a stream"), ++#endif ++#if defined (ENODATA) ++ ENTRY(ENODATA, "ENODATA", "No data available"), ++#endif ++#if defined (ETIME) ++ ENTRY(ETIME, "ETIME", "Timer expired"), ++#endif ++#if defined (ENOSR) ++ ENTRY(ENOSR, "ENOSR", "Out of streams resources"), ++#endif ++#if defined (ENONET) ++ ENTRY(ENONET, "ENONET", "Machine is not on the network"), ++#endif ++#if defined (ENOPKG) ++ ENTRY(ENOPKG, "ENOPKG", "Package not installed"), ++#endif ++#if defined (EREMOTE) ++ ENTRY(EREMOTE, "EREMOTE", "Object is remote"), ++#endif ++#if defined (ENOLINK) ++ ENTRY(ENOLINK, "ENOLINK", "Link has been severed"), ++#endif ++#if defined (EADV) ++ ENTRY(EADV, "EADV", "Advertise error"), ++#endif ++#if defined (ESRMNT) ++ ENTRY(ESRMNT, "ESRMNT", "Srmount error"), ++#endif ++#if defined (ECOMM) ++ ENTRY(ECOMM, "ECOMM", "Communication error on send"), ++#endif ++#if defined (EPROTO) ++ ENTRY(EPROTO, "EPROTO", "Protocol error"), ++#endif ++#if defined (EMULTIHOP) ++ ENTRY(EMULTIHOP, "EMULTIHOP", "Multihop attempted"), ++#endif ++#if defined (EDOTDOT) ++ ENTRY(EDOTDOT, "EDOTDOT", "RFS specific error"), ++#endif ++#if defined (EBADMSG) ++ ENTRY(EBADMSG, "EBADMSG", "Not a data message"), ++#endif ++#if defined (ENAMETOOLONG) ++ ENTRY(ENAMETOOLONG, "ENAMETOOLONG", "File name too long"), ++#endif ++#if defined (EOVERFLOW) ++ ENTRY(EOVERFLOW, "EOVERFLOW", "Value too large for defined data type"), ++#endif ++#if defined (ENOTUNIQ) ++ ENTRY(ENOTUNIQ, "ENOTUNIQ", "Name not unique on network"), ++#endif ++#if defined (EBADFD) ++ ENTRY(EBADFD, "EBADFD", "File descriptor in bad state"), ++#endif ++#if defined (EREMCHG) ++ ENTRY(EREMCHG, "EREMCHG", "Remote address changed"), ++#endif ++#if defined (ELIBACC) ++ ENTRY(ELIBACC, "ELIBACC", "Can not access a needed shared library"), ++#endif ++#if defined (ELIBBAD) ++ ENTRY(ELIBBAD, "ELIBBAD", "Accessing a corrupted shared library"), ++#endif ++#if defined (ELIBSCN) ++ ENTRY(ELIBSCN, "ELIBSCN", ".lib section in a.out corrupted"), ++#endif ++#if defined (ELIBMAX) ++ ENTRY(ELIBMAX, "ELIBMAX", "Attempting to link in too many shared libraries"), ++#endif ++#if defined (ELIBEXEC) ++ ENTRY(ELIBEXEC, "ELIBEXEC", "Cannot exec a shared library directly"), ++#endif ++#if defined (EILSEQ) ++ ENTRY(EILSEQ, "EILSEQ", "Illegal byte sequence"), ++#endif ++#if defined (ENOSYS) ++ ENTRY(ENOSYS, "ENOSYS", "Operation not applicable"), ++#endif ++#if defined (ELOOP) ++ ENTRY(ELOOP, "ELOOP", "Too many symbolic links encountered"), ++#endif ++#if defined (ERESTART) ++ ENTRY(ERESTART, "ERESTART", "Interrupted system call should be restarted"), ++#endif ++#if defined (ESTRPIPE) ++ ENTRY(ESTRPIPE, "ESTRPIPE", "Streams pipe error"), ++#endif ++#if defined (ENOTEMPTY) ++ ENTRY(ENOTEMPTY, "ENOTEMPTY", "Directory not empty"), ++#endif ++#if defined (EUSERS) ++ ENTRY(EUSERS, "EUSERS", "Too many users"), ++#endif ++#if defined (ENOTSOCK) ++ ENTRY(ENOTSOCK, "ENOTSOCK", "Socket operation on non-socket"), ++#endif ++#if defined (EDESTADDRREQ) ++ ENTRY(EDESTADDRREQ, "EDESTADDRREQ", "Destination address required"), ++#endif ++#if defined (EMSGSIZE) ++ ENTRY(EMSGSIZE, "EMSGSIZE", "Message too long"), ++#endif ++#if defined (EPROTOTYPE) ++ ENTRY(EPROTOTYPE, "EPROTOTYPE", "Protocol wrong type for socket"), ++#endif ++#if defined (ENOPROTOOPT) ++ ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol not available"), ++#endif ++#if defined (EPROTONOSUPPORT) ++ ENTRY(EPROTONOSUPPORT, "EPROTONOSUPPORT", "Protocol not supported"), ++#endif ++#if defined (ESOCKTNOSUPPORT) ++ ENTRY(ESOCKTNOSUPPORT, "ESOCKTNOSUPPORT", "Socket type not supported"), ++#endif ++#if defined (EOPNOTSUPP) ++ ENTRY(EOPNOTSUPP, "EOPNOTSUPP", "Operation not supported on transport endpoint"), ++#endif ++#if defined (EPFNOSUPPORT) ++ ENTRY(EPFNOSUPPORT, "EPFNOSUPPORT", "Protocol family not supported"), ++#endif ++#if defined (EAFNOSUPPORT) ++ ENTRY(EAFNOSUPPORT, "EAFNOSUPPORT", "Address family not supported by protocol"), ++#endif ++#if defined (EADDRINUSE) ++ ENTRY(EADDRINUSE, "EADDRINUSE", "Address already in use"), ++#endif ++#if defined (EADDRNOTAVAIL) ++ ENTRY(EADDRNOTAVAIL, "EADDRNOTAVAIL","Cannot assign requested address"), ++#endif ++#if defined (ENETDOWN) ++ ENTRY(ENETDOWN, "ENETDOWN", "Network is down"), ++#endif ++#if defined (ENETUNREACH) ++ ENTRY(ENETUNREACH, "ENETUNREACH", "Network is unreachable"), ++#endif ++#if defined (ENETRESET) ++ ENTRY(ENETRESET, "ENETRESET", "Network dropped connection because of reset"), ++#endif ++#if defined (ECONNABORTED) ++ ENTRY(ECONNABORTED, "ECONNABORTED", "Software caused connection abort"), ++#endif ++#if defined (ECONNRESET) ++ ENTRY(ECONNRESET, "ECONNRESET", "Connection reset by peer"), ++#endif ++#if defined (ENOBUFS) ++ ENTRY(ENOBUFS, "ENOBUFS", "No buffer space available"), ++#endif ++#if defined (EISCONN) ++ ENTRY(EISCONN, "EISCONN", "Transport endpoint is already connected"), ++#endif ++#if defined (ENOTCONN) ++ ENTRY(ENOTCONN, "ENOTCONN", "Transport endpoint is not connected"), ++#endif ++#if defined (ESHUTDOWN) ++ ENTRY(ESHUTDOWN, "ESHUTDOWN", "Cannot send after transport endpoint shutdown"), ++#endif ++#if defined (ETOOMANYREFS) ++ ENTRY(ETOOMANYREFS, "ETOOMANYREFS", "Too many references: cannot splice"), ++#endif ++#if defined (ETIMEDOUT) ++ ENTRY(ETIMEDOUT, "ETIMEDOUT", "Connection timed out"), ++#endif ++#if defined (ECONNREFUSED) ++ ENTRY(ECONNREFUSED, "ECONNREFUSED", "Connection refused"), ++#endif ++#if defined (EHOSTDOWN) ++ ENTRY(EHOSTDOWN, "EHOSTDOWN", "Host is down"), ++#endif ++#if defined (EHOSTUNREACH) ++ ENTRY(EHOSTUNREACH, "EHOSTUNREACH", "No route to host"), ++#endif ++#if defined (EALREADY) ++ ENTRY(EALREADY, "EALREADY", "Operation already in progress"), ++#endif ++#if defined (EINPROGRESS) ++ ENTRY(EINPROGRESS, "EINPROGRESS", "Operation now in progress"), ++#endif ++#if defined (ESTALE) ++ ENTRY(ESTALE, "ESTALE", "Stale NFS file handle"), ++#endif ++#if defined (EUCLEAN) ++ ENTRY(EUCLEAN, "EUCLEAN", "Structure needs cleaning"), ++#endif ++#if defined (ENOTNAM) ++ ENTRY(ENOTNAM, "ENOTNAM", "Not a XENIX named type file"), ++#endif ++#if defined (ENAVAIL) ++ ENTRY(ENAVAIL, "ENAVAIL", "No XENIX semaphores available"), ++#endif ++#if defined (EISNAM) ++ ENTRY(EISNAM, "EISNAM", "Is a named type file"), ++#endif ++#if defined (EREMOTEIO) ++ ENTRY(EREMOTEIO, "EREMOTEIO", "Remote I/O error"), ++#endif ++ ENTRY(0, NULL, NULL) ++}; ++ ++#ifdef EVMSERR ++/* This is not in the table, because the numeric value of EVMSERR (32767) ++ lies outside the range of sys_errlist[]. */ ++static struct { int value; const char *name, *msg; } ++ evmserr = { EVMSERR, "EVMSERR", "VMS-specific error" }; ++#endif ++ ++/* Translation table allocated and initialized at runtime. Indexed by the ++ errno value to find the equivalent symbolic value. */ ++ ++static const char **error_names; ++static int num_error_names = 0; ++ ++/* Translation table allocated and initialized at runtime, if it does not ++ already exist in the host environment. Indexed by the errno value to find ++ the descriptive string. ++ ++ We don't export it for use in other modules because even though it has the ++ same name, it differs from other implementations in that it is dynamically ++ initialized rather than statically initialized. */ ++ ++#ifndef HAVE_SYS_ERRLIST ++ ++static int sys_nerr; ++static const char **sys_errlist; ++ ++#else ++ ++extern int sys_nerr; ++extern char *sys_errlist[]; ++ ++#endif ++ ++ ++#ifndef HAVE_SYS_ERRLIST ++/* ++ ++NAME ++ ++ init_error_tables -- initialize the name and message tables ++ ++SYNOPSIS ++ ++ static void init_error_tables (); ++ ++DESCRIPTION ++ ++ Using the error_table, which is initialized at compile time, generate ++ the error_names and the sys_errlist (if needed) tables, which are ++ indexed at runtime by a specific errno value. ++ ++BUGS ++ ++ The initialization of the tables may fail under low memory conditions, ++ in which case we don't do anything particularly useful, but we don't ++ bomb either. Who knows, it might succeed at a later point if we free ++ some memory in the meantime. In any case, the other routines know ++ how to deal with lack of a table after trying to initialize it. This ++ may or may not be considered to be a bug, that we don't specifically ++ warn about this particular failure mode. ++ ++*/ ++ ++static void ++init_error_tables () ++{ ++ const struct error_info *eip; ++ int nbytes; ++ ++ /* If we haven't already scanned the error_table once to find the maximum ++ errno value, then go find it now. */ ++ ++ if (num_error_names == 0) ++ { ++ for (eip = error_table; eip -> name != NULL; eip++) ++ { ++ if (eip -> value >= num_error_names) ++ { ++ num_error_names = eip -> value + 1; ++ } ++ } ++ } ++ ++ /* Now attempt to allocate the sys_errlist table, zero it out, and then ++ initialize it from the statically initialized error_table. */ ++ ++ if (sys_errlist == NULL) ++ { ++ nbytes = num_error_names * sizeof (char *); ++ if ((sys_errlist = (const char **) malloc (nbytes)) != NULL) ++ { ++ memset (sys_errlist, 0, nbytes); ++ sys_nerr = num_error_names; ++ for (eip = error_table; eip -> name != NULL; eip++) ++ { ++ sys_errlist[eip -> value] = eip -> msg; ++ } ++ } ++ } ++} ++#endif ++ ++ ++/* ++ ++NAME ++ ++ strerror -- map an error number to an error message string ++ ++SYNOPSIS ++ ++ char *strerror (int errnoval) ++ ++DESCRIPTION ++ ++ Maps an errno number to an error message string, the contents of ++ which are implementation defined. On systems which have the external ++ variables sys_nerr and sys_errlist, these strings will be the same ++ as the ones used by perror(). ++ ++ If the supplied error number is within the valid range of indices ++ for the sys_errlist, but no message is available for the particular ++ error number, then returns the string "Error NUM", where NUM is the ++ error number. ++ ++ If the supplied error number is not a valid index into sys_errlist, ++ returns NULL. ++ ++ The returned string is only guaranteed to be valid only until the ++ next call to strerror. ++ ++*/ ++ ++char * ++strerror (errnoval) ++ int errnoval; ++{ ++ char *msg; ++ static char buf[32]; ++ ++#ifndef HAVE_SYS_ERRLIST ++ ++ if (error_names == NULL) ++ { ++ init_error_tables (); ++ } ++ ++#endif ++ ++ if ((errnoval < 0) || (errnoval >= sys_nerr)) ++ { ++#ifdef EVMSERR ++ if (errnoval == evmserr.value) ++ msg = evmserr.msg; ++ else ++#endif ++ /* Out of range, just return NULL */ ++ msg = NULL; ++ } ++ else if ((sys_errlist == NULL) || (sys_errlist[errnoval] == NULL)) ++ { ++ /* In range, but no sys_errlist or no entry at this index. */ ++ sprintf (buf, "Error %d", errnoval); ++ msg = buf; ++ } ++ else ++ { ++ /* In range, and a valid message. Just return the message. */ ++ msg = (char *) sys_errlist[errnoval]; ++ } ++ ++ return (msg); ++} +--- metamail-2.7.orig/aclocal.m4 ++++ metamail-2.7/aclocal.m4 +@@ -0,0 +1,3824 @@ ++dnl aclocal.m4 generated automatically by aclocal 1.4-p6 ++ ++dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++dnl This file is free software; the Free Software Foundation ++dnl gives unlimited permission to copy and/or distribute it, ++dnl with or without modifications, as long as this notice is preserved. ++ ++dnl This program is distributed in the hope that it will be useful, ++dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++dnl PARTICULAR PURPOSE. ++ ++# Like AC_CONFIG_HEADER, but automatically create stamp file. ++ ++AC_DEFUN([AM_CONFIG_HEADER], ++[AC_PREREQ([2.12]) ++AC_CONFIG_HEADER([$1]) ++dnl When config.status generates a header, we must update the stamp-h file. ++dnl This file resides in the same directory as the config header ++dnl that is generated. We must strip everything past the first ":", ++dnl and everything past the last "/". ++AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl ++ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, ++<>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, ++<>; do ++ case " <<$>>CONFIG_HEADERS " in ++ *" <<$>>am_file "*<<)>> ++ echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx ++ ;; ++ esac ++ am_indx=`expr "<<$>>am_indx" + 1` ++done<<>>dnl>>) ++changequote([,]))]) ++ ++# Do all the work for Automake. This macro actually does too much -- ++# some checks are only needed if your package does certain things. ++# But this isn't really a big deal. ++ ++# serial 1 ++ ++dnl Usage: ++dnl AM_INIT_AUTOMAKE(package,version, [no-define]) ++ ++AC_DEFUN([AM_INIT_AUTOMAKE], ++[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl ++AC_REQUIRE([AC_PROG_INSTALL]) ++PACKAGE=[$1] ++AC_SUBST(PACKAGE) ++VERSION=[$2] ++AC_SUBST(VERSION) ++dnl test to see if srcdir already configured ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then ++ AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) ++fi ++ifelse([$3],, ++AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) ++AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) ++AC_REQUIRE([AM_SANITY_CHECK]) ++AC_REQUIRE([AC_ARG_PROGRAM]) ++dnl FIXME This is truly gross. ++missing_dir=`cd $ac_aux_dir && pwd` ++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir) ++AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) ++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir) ++AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) ++AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) ++AC_REQUIRE([AC_PROG_MAKE_SET])]) ++ ++# Copyright 2002 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++ ++# AM_AUTOMAKE_VERSION(VERSION) ++# ---------------------------- ++# Automake X.Y traces this macro to ensure aclocal.m4 has been ++# generated from the m4 files accompanying Automake X.Y. ++AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"]) ++ ++# AM_SET_CURRENT_AUTOMAKE_VERSION ++# ------------------------------- ++# Call AM_AUTOMAKE_VERSION so it can be traced. ++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. ++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], ++ [AM_AUTOMAKE_VERSION([1.4-p6])]) ++ ++# ++# Check to make sure that the build environment is sane. ++# ++ ++AC_DEFUN([AM_SANITY_CHECK], ++[AC_MSG_CHECKING([whether build environment is sane]) ++# Just in case ++sleep 1 ++echo timestamp > conftestfile ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` ++ if test "[$]*" = "X"; then ++ # -L didn't work. ++ set X `ls -t $srcdir/configure conftestfile` ++ fi ++ if test "[$]*" != "X $srcdir/configure conftestfile" \ ++ && test "[$]*" != "X conftestfile $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken ++alias in your environment]) ++ fi ++ ++ test "[$]2" = conftestfile ++ ) ++then ++ # Ok. ++ : ++else ++ AC_MSG_ERROR([newly created file is older than distributed files! ++Check your system clock]) ++fi ++rm -f conftest* ++AC_MSG_RESULT(yes)]) ++ ++dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) ++dnl The program must properly implement --version. ++AC_DEFUN([AM_MISSING_PROG], ++[AC_MSG_CHECKING(for working $2) ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if ($2 --version) < /dev/null > /dev/null 2>&1; then ++ $1=$2 ++ AC_MSG_RESULT(found) ++else ++ $1="$3/missing $2" ++ AC_MSG_RESULT(missing) ++fi ++AC_SUBST($1)]) ++ ++# Add --enable-maintainer-mode option to configure. ++# From Jim Meyering ++ ++# serial 1 ++ ++AC_DEFUN([AM_MAINTAINER_MODE], ++[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) ++ dnl maintainer-mode is disabled by default ++ AC_ARG_ENABLE(maintainer-mode, ++[ --enable-maintainer-mode enable make rules and dependencies not useful ++ (and sometimes confusing) to the casual installer], ++ USE_MAINTAINER_MODE=$enableval, ++ USE_MAINTAINER_MODE=no) ++ AC_MSG_RESULT($USE_MAINTAINER_MODE) ++ AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) ++ MAINT=$MAINTAINER_MODE_TRUE ++ AC_SUBST(MAINT)dnl ++] ++) ++ ++# Define a conditional. ++ ++AC_DEFUN([AM_CONDITIONAL], ++[AC_SUBST($1_TRUE) ++AC_SUBST($1_FALSE) ++if $2; then ++ $1_TRUE= ++ $1_FALSE='#' ++else ++ $1_TRUE='#' ++ $1_FALSE= ++fi]) ++ ++# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*- ++ ++# serial 46 AC_PROG_LIBTOOL ++ ++AC_DEFUN([AC_PROG_LIBTOOL], ++[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl ++ ++# This can be used to rebuild libtool when needed ++LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" ++ ++# Always use our own libtool. ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++AC_SUBST(LIBTOOL)dnl ++ ++# Prevent multiple expansion ++define([AC_PROG_LIBTOOL], []) ++]) ++ ++AC_DEFUN([AC_LIBTOOL_SETUP], ++[AC_PREREQ(2.13)dnl ++AC_REQUIRE([AC_ENABLE_SHARED])dnl ++AC_REQUIRE([AC_ENABLE_STATIC])dnl ++AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl ++AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([AC_PROG_LD])dnl ++AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl ++AC_REQUIRE([AC_PROG_NM])dnl ++AC_REQUIRE([LT_AC_PROG_SED])dnl ++ ++AC_REQUIRE([AC_PROG_LN_S])dnl ++AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl ++AC_REQUIRE([AC_OBJEXT])dnl ++AC_REQUIRE([AC_EXEEXT])dnl ++dnl ++ ++_LT_AC_PROG_ECHO_BACKSLASH ++# Only perform the check for file, if the check method requires it ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ AC_PATH_MAGIC ++ fi ++ ;; ++esac ++ ++AC_CHECK_TOOL(RANLIB, ranlib, :) ++AC_CHECK_TOOL(STRIP, strip, :) ++ ++ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) ++ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], ++enable_win32_dll=yes, enable_win32_dll=no) ++ ++AC_ARG_ENABLE(libtool-lock, ++ [ --disable-libtool-lock avoid locking (might break parallel builds)]) ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '[#]line __oline__ "configure"' > conftest.$ac_ext ++ if AC_TRY_EVAL(ac_compile); then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, ++ [AC_LANG_SAVE ++ AC_LANG_C ++ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) ++ AC_LANG_RESTORE]) ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++ ++ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], ++[*-*-cygwin* | *-*-mingw* | *-*-pw32*) ++ AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++ AC_CHECK_TOOL(AS, as, false) ++ AC_CHECK_TOOL(OBJDUMP, objdump, false) ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one ++ AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, ++ [AC_TRY_LINK([], ++ [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); ++ DllMain (0, 0, 0);], ++ [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) ++ ++ case $host/$CC in ++ *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) ++ # old mingw systems require "-dll" to link a DLL, while more recent ones ++ # require "-mdll" ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -mdll" ++ AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, ++ [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) ++ CFLAGS="$SAVE_CFLAGS" ;; ++ *-*-cygwin* | *-*-pw32*) ++ # cygwin systems need to pass --dll to the linker, and not link ++ # crt.o which will require a WinMain@16 definition. ++ lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; ++ esac ++ ;; ++ ]) ++esac ++ ++_LT_AC_LTCONFIG_HACK ++ ++]) ++ ++# AC_LIBTOOL_HEADER_ASSERT ++# ------------------------ ++AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], ++[AC_CACHE_CHECK([whether $CC supports assert without backlinking], ++ [lt_cv_func_assert_works], ++ [case $host in ++ *-*-solaris*) ++ if test "$GCC" = yes && test "$with_gnu_ld" != yes; then ++ case `$CC --version 2>/dev/null` in ++ [[12]].*) lt_cv_func_assert_works=no ;; ++ *) lt_cv_func_assert_works=yes ;; ++ esac ++ fi ++ ;; ++ esac]) ++ ++if test "x$lt_cv_func_assert_works" = xyes; then ++ AC_CHECK_HEADERS(assert.h) ++fi ++])# AC_LIBTOOL_HEADER_ASSERT ++ ++# _LT_AC_CHECK_DLFCN ++# -------------------- ++AC_DEFUN([_LT_AC_CHECK_DLFCN], ++[AC_CHECK_HEADERS(dlfcn.h) ++])# _LT_AC_CHECK_DLFCN ++ ++# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ++# --------------------------------- ++AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], ++[AC_REQUIRE([AC_CANONICAL_HOST]) ++AC_REQUIRE([AC_PROG_NM]) ++AC_REQUIRE([AC_OBJEXT]) ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++AC_MSG_CHECKING([command to parse $NM output]) ++AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[[BCDEGRST]]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[[BCDT]]' ++ ;; ++cygwin* | mingw* | pw32*) ++ symcode='[[ABCDGISTW]]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ;; ++irix* | nonstopux*) ++ symcode='[[BCDEGRST]]' ++ ;; ++osf*) ++ symcode='[[BCDEGQRST]]' ++ ;; ++solaris* | sysv5*) ++ symcode='[[BDT]]' ++ ;; ++sysv4) ++ symcode='[[DFNSTU]]' ++ ;; ++esac ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $host_os in ++mingw*) ++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[[ABCDGISTW]]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ rm -f conftest* ++ cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat < conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ++ ++ cat <> conftest.$ac_ext ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[[]] = ++{ ++EOF ++ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ++ cat <<\EOF >> conftest.$ac_ext ++ {0, (lt_ptr) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&AC_FD_CC ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&AC_FD_CC ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC ++ fi ++ else ++ echo "$progname: failed program was:" >&AC_FD_CC ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -f conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++]) ++global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++ global_symbol_to_c_name_address= ++else ++ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ++ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ++fi ++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ++then ++ AC_MSG_RESULT(failed) ++else ++ AC_MSG_RESULT(ok) ++fi ++]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ++ ++# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++# --------------------------------- ++AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], ++[# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++ ++# _LT_AC_PROG_ECHO_BACKSLASH ++# -------------------------- ++# Add some code to the start of the generated configure script which ++# will find an echo command which doesn't interpret backslashes. ++AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], ++[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], ++ [AC_DIVERT_PUSH(NOTICE)]) ++_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ++ ;; ++esac ++ ++echo=${ECHO-echo} ++if test "X[$]1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X[$]1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} ++fi ++ ++if test "X[$]1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat </dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null ++ then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} ++ else ++ # Try using printf. ++ echo='printf %s\n' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL [$]0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$CONFIG_SHELL [$]0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "[$]0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++ECHO=$echo ++if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ++ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" ++fi ++ ++AC_SUBST(ECHO) ++AC_DIVERT_POP ++])# _LT_AC_PROG_ECHO_BACKSLASH ++ ++# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, ++# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) ++# ------------------------------------------------------------------ ++AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], ++[if test "$cross_compiling" = yes; then : ++ [$4] ++else ++ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext < ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++}] ++EOF ++ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) $1 ;; ++ x$lt_dlneed_uscore) $2 ;; ++ x$lt_unknown|x*) $3 ;; ++ esac ++ else : ++ # compilation failed ++ $3 ++ fi ++fi ++rm -fr conftest* ++])# _LT_AC_TRY_DLOPEN_SELF ++ ++# AC_LIBTOOL_DLOPEN_SELF ++# ------------------- ++AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], ++[if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ *) ++ AC_CHECK_FUNC([shl_load], ++ [lt_cv_dlopen="shl_load"], ++ [AC_CHECK_LIB([dld], [shl_load], ++ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], ++ [AC_CHECK_FUNC([dlopen], ++ [lt_cv_dlopen="dlopen"], ++ [AC_CHECK_LIB([dl], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], ++ [AC_CHECK_LIB([svld], [dlopen], ++ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], ++ [AC_CHECK_LIB([dld], [dld_link], ++ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ]) ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ AC_CACHE_CHECK([whether a program can dlopen itself], ++ lt_cv_dlopen_self, [dnl ++ _LT_AC_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, ++ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ++ ]) ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ AC_CACHE_CHECK([whether a statically linked program can dlopen itself], ++ lt_cv_dlopen_self_static, [dnl ++ _LT_AC_TRY_DLOPEN_SELF( ++ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, ++ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ++ ]) ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++])# AC_LIBTOOL_DLOPEN_SELF ++ ++AC_DEFUN([_LT_AC_LTCONFIG_HACK], ++[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Constants: ++rm="rm -f" ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++libext=a ++ltmain="$ac_aux_dir/ltmain.sh" ++ofile="$default_ofile" ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++need_locks="$enable_libtool_lock" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$AS" && AS=as ++test -z "$CC" && CC=cc ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$LD" && LD=ld ++test -z "$LN_S" && LN_S="ln -s" ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++test -z "$NM" && NM=nm ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$RANLIB" && RANLIB=: ++test -z "$STRIP" && STRIP=: ++test -z "$ac_objext" && ac_objext=o ++ ++if test x"$host" != x"$build"; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case $host_os in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ++ ;; ++ *) ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="[$]2" ++ ++AC_MSG_CHECKING([for objdir]) ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++AC_MSG_RESULT($objdir) ++ ++ ++AC_ARG_WITH(pic, ++[ --with-pic try to use only PIC/non-PIC objects [default=use both]], ++pic_mode="$withval", pic_mode=default) ++test -z "$pic_mode" && pic_mode=default ++ ++# We assume here that the value for lt_cv_prog_cc_pic will not be cached ++# in isolation, and that seeing it set (from the cache) indicates that ++# the associated values are set (in the cache) correctly too. ++AC_MSG_CHECKING([for $compiler option to produce PIC]) ++AC_CACHE_VAL(lt_cv_prog_cc_pic, ++[ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_shlib= ++ lt_cv_prog_cc_wl= ++ lt_cv_prog_cc_static= ++ lt_cv_prog_cc_no_builtin= ++ lt_cv_prog_cc_can_build_shared=$can_build_shared ++ ++ if test "$GCC" = yes; then ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-static' ++ ++ case $host_os in ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # not sure about C++ programs. ++ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_cv_prog_cc_pic='-fno-common' ++ ;; ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_cv_prog_cc_pic=-Kconform_pic ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for PIC flags for the system compiler. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ lt_cv_prog_cc_wl='-Wl,' ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_cv_prog_cc_static='-Bstatic' ++ else ++ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ++ lt_cv_prog_cc_pic='+Z' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ ++ newsos6) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ lt_cv_prog_cc_pic='-Kpic' ++ lt_cv_prog_cc_static='-dn' ++ lt_cv_prog_cc_shlib='-belf' ++ ;; ++ ++ solaris*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ lt_cv_prog_cc_pic='-PIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ uts4*) ++ lt_cv_prog_cc_pic='-pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_cv_prog_cc_pic='-Kconform_pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ fi ++ ;; ++ ++ *) ++ lt_cv_prog_cc_can_build_shared=no ++ ;; ++ esac ++ fi ++]) ++if test -z "$lt_cv_prog_cc_pic"; then ++ AC_MSG_RESULT([none]) ++else ++ AC_MSG_RESULT([$lt_cv_prog_cc_pic]) ++ ++ # Check to make sure the pic_flag actually works. ++ AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) ++ AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ++ AC_TRY_COMPILE([], [], [dnl ++ case $host_os in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then ++ # they create non-PIC objects. So, if there were any warnings, we ++ # assume that PIC is not supported. ++ if test -s conftest.err; then ++ lt_cv_prog_cc_pic_works=no ++ else ++ lt_cv_prog_cc_pic_works=yes ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic_works=yes ++ ;; ++ esac ++ ], [dnl ++ lt_cv_prog_cc_pic_works=no ++ ]) ++ CFLAGS="$save_CFLAGS" ++ ]) ++ ++ if test "X$lt_cv_prog_cc_pic_works" = Xno; then ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_can_build_shared=no ++ else ++ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ++ fi ++ ++ AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$lt_cv_prog_cc_shlib"; then ++ AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : ++ else ++ AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) ++ lt_cv_prog_cc_can_build_shared=no ++ fi ++fi ++ ++AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) ++AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl ++ lt_cv_prog_cc_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ++ AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) ++ LDFLAGS="$save_LDFLAGS" ++]) ++ ++# Belt *and* braces to stop my trousers falling down: ++test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ++AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) ++ ++pic_flag="$lt_cv_prog_cc_pic" ++special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ++wl="$lt_cv_prog_cc_wl" ++link_static_flag="$lt_cv_prog_cc_static" ++no_builtin_flag="$lt_cv_prog_cc_no_builtin" ++can_build_shared="$lt_cv_prog_cc_can_build_shared" ++ ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) ++AC_CACHE_VAL([lt_cv_compiler_c_o], [ ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++echo "int some_variable = 0;" > conftest.$ac_ext ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ++compiler_c_o=no ++if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ lt_cv_compiler_c_o=no ++ else ++ lt_cv_compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&AC_FD_CC ++ lt_cv_compiler_c_o=no ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++]) ++compiler_c_o=$lt_cv_compiler_c_o ++AC_MSG_RESULT([$compiler_c_o]) ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) ++ AC_CACHE_VAL([lt_cv_compiler_o_lo], [ ++ lt_cv_compiler_o_lo=no ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ save_objext="$ac_objext" ++ ac_objext=lo ++ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ lt_cv_compiler_o_lo=no ++ else ++ lt_cv_compiler_o_lo=yes ++ fi ++ ]) ++ ac_objext="$save_objext" ++ CFLAGS="$save_CFLAGS" ++ ]) ++ compiler_o_lo=$lt_cv_compiler_o_lo ++ AC_MSG_RESULT([$compiler_o_lo]) ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ AC_MSG_CHECKING([if we can lock with hard links]) ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ AC_MSG_RESULT([$hard_links]) ++ if test "$hard_links" = no; then ++ AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe]) ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$GCC" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ++ compiler_rtti_exceptions=no ++ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ compiler_rtti_exceptions=no ++ else ++ compiler_rtti_exceptions=yes ++ fi ++ ]) ++ CFLAGS="$save_CFLAGS" ++ AC_MSG_RESULT([$compiler_rtti_exceptions]) ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++fi ++ ++# See if the linker supports building shared libraries. ++AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++old_archive_from_expsyms_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_into_libs=no ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++link_all_deplibs=unknown ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++extract_expsyms_cmds= ++ ++case $host_os in ++cygwin* | mingw* | pw32*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ # On AIX, the GNU linker is very broken ++ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ++ ld_shlibs=no ++ cat <&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ++ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ++ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ++ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ++ else $CC -o impgen impgen.c ; fi)~ ++ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ++ ++ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ++ ++ # cygwin and mingw dlls have different entry points and sets of symbols ++ # to exclude. ++ # FIXME: what about values for MSVC? ++ dll_entry=__cygwin_dll_entry@12 ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ++ case $host_os in ++ mingw*) ++ # mingw values ++ dll_entry=_DllMainCRTStartup@12 ++ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ++ ;; ++ esac ++ ++ # mingw and cygwin differ, and it's simplest to just exclude the union ++ # of the two symbol sets. ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one (in ltdll.c) ++ if test "x$lt_cv_need_dllmain" = "xyes"; then ++ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ++ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ++ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ++ else ++ ltdll_obj= ++ ltdll_cmds= ++ fi ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left be newer dlltools. ++ export_symbols_cmds="$ltdll_cmds"' ++ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ++ ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is. ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname-def; ++ else ++ echo EXPORTS > $output_objdir/$soname-def; ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \[$]# in ++ 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ++ 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ++ *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done; ++ fi~ ++ '"$ltdll_cmds"' ++ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ++ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ++ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw* | pw32*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4* | aix5*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ hardcode_direct=yes ++ archive_cmds='' ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[[012]]|aix4.[[012]].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ esac ++ ++ shared_flag='-shared' ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ shared_flag='${wl}-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ # It seems that -bexpall can do strange things, so it is better to ++ # generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ++ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ++ else ++ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='${wl}-berok' ++ # This is a bit strange, but is similar to how AIX traditionally builds ++ # it's shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ ;; ++ ++ darwin* | rhapsody*) ++ case "$host_os" in ++ rhapsody* | darwin1.[[012]]) ++ allow_undefined_flag='-undefined suppress' ++ ;; ++ *) # Darwin 1.3 on ++ allow_undefined_flag='-flat_namespace -undefined suppress' ++ ;; ++ esac ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. Also zsh mangles ++ # `"' quotes if we put them in here... so don't! ++ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ++ # We need to add '_' to the symbols in $export_symbols first ++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ whole_archive_flag_spec='-all_load $convenience' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case $host_os in ++ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case "$host_os" in ++ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ++ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ++ ++ #Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ ;; ++ ++ solaris*) ++ # gcc --version < 3.0 without binutils cannot create self contained ++ # shared libraries reliably, requiring libgcc.a to resolve some of ++ # the object symbols generated in some cases. Libraries that use ++ # assert need libgcc.a to resolve __eprintf, for example. Linking ++ # a copy of libgcc.a into every shared library to guarantee resolving ++ # such symbols causes other problems: According to Tim Van Holder ++ # , C++ libraries end up with a separate ++ # (to the application) exception stack for one thing. ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ case `$CC --version 2>/dev/null` in ++ [[12]].*) ++ cat <&2 ++ ++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably ++*** create self contained shared libraries on Solaris systems, without ++*** introducing a dependency on libgcc.a. Therefore, libtool is disabling ++*** -no-undefined support, which will at least allow you to build shared ++*** libraries. However, you may find that when you link such libraries ++*** into an application without using GCC, you have to manually add ++*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ++*** upgrade to a newer version of GCC. Another option is to rebuild your ++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ++ ++EOF ++ no_undefined_flag= ++ ;; ++ esac ++ fi ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ sysv5uw7* | unixware7*) ++ no_undefined_flag='${wl}-z ${wl}text' ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++AC_MSG_RESULT([$ld_shlibs]) ++test "$ld_shlibs" = no && can_build_shared=no ++ ++# Check hardcoding attributes. ++AC_MSG_CHECKING([how to hardcode library paths into programs]) ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++AC_MSG_RESULT([$hardcode_action]) ++ ++striplib= ++old_striplib= ++AC_MSG_CHECKING([whether stripping libraries is possible]) ++if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ AC_MSG_RESULT([yes]) ++else ++ AC_MSG_RESULT([no]) ++fi ++ ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++# PORTME Fill in your ld.so characteristics ++AC_MSG_CHECKING([dynamic linker characteristics]) ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4* | aix5*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[[01]] | aix4.[[01]].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can ++ # not hardcode correct soname into executable. Probably we can ++ # add versioning support to collect2, so additional links can ++ # be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib.so ++ # instead of lib.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}.so$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ hardcode_into_libs=yes ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ case $GCC,$host_os in ++ yes,cygwin*) ++ library_names_spec='$libname.dll.a' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ++ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog .libs/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $rm \$dlpath' ++ ;; ++ yes,mingw*) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ++ ;; ++ yes,pw32*) ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ ;; ++ *) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. ++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) version_type=irix ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case "$host_os" in ++ openbsd2.[[89]] | openbsd2.[[89]].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ need_lib_prefix=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ hardcode_into_libs=yes ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++AC_MSG_RESULT([$dynamic_linker]) ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++AC_MSG_CHECKING([if libtool supports shared libraries]) ++AC_MSG_RESULT([$can_build_shared]) ++ ++AC_MSG_CHECKING([whether to build shared libraries]) ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++esac ++AC_MSG_RESULT([$enable_shared]) ++ ++AC_MSG_CHECKING([whether to build static libraries]) ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++AC_MSG_RESULT([$enable_static]) ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++AC_LIBTOOL_DLOPEN_SELF ++ ++if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ AC_MSG_CHECKING([whether -lc should be explicitly linked in]) ++ AC_CACHE_VAL([lt_cv_archive_cmds_need_lc], ++ [$rm conftest* ++ echo 'static int dummy;' > conftest.$ac_ext ++ ++ if AC_TRY_EVAL(ac_compile); then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_cv_prog_cc_wl ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi]) ++ AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) ++ ;; ++ esac ++fi ++need_lc=${lt_cv_archive_cmds_need_lc-yes} ++ ++# The second clause should only fire when bootstrapping the ++# libtool distribution, otherwise you forgot to ship ltmain.sh ++# with your package, and you will get complaints that there are ++# no rules to generate ltmain.sh. ++if test -f "$ltmain"; then ++ : ++else ++ # If there is no Makefile yet, we rely on a make rule to execute ++ # `config.status --recheck' to rerun these tests and create the ++ # libtool script then. ++ test -f Makefile && make "$ltmain" ++fi ++ ++if test -f "$ltmain"; then ++ trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ++ $rm -f "${ofile}T" ++ ++ echo creating $ofile ++ ++ # Now quote all the things that may contain metacharacters while being ++ # careful not to overquote the AC_SUBSTed values. We take copies of the ++ # variables and quote the copies for generation of the libtool script. ++ for var in echo old_CC old_CFLAGS SED \ ++ AR AR_FLAGS CC LD LN_S NM SHELL \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ++ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ++ old_striplib striplib file_magic_cmd export_symbols_cmds \ ++ deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ global_symbol_to_c_name_address \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case $var in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ cat <<__EOF__ > "${ofile}T" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996-2000 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit , 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# A sed that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="${SED} -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$need_lc ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$lt_echo ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# The default C compiler. ++CC=$lt_CC ++ ++# Is the compiler the GNU C compiler? ++with_gcc=$GCC ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Whether we need hard or soft links. ++LN_S=$lt_LN_S ++ ++# A BSD-compatible nm program. ++NM=$lt_NM ++ ++# A symbol stripping program ++STRIP=$STRIP ++ ++# Used to examine libraries when file_magic_cmd begins "file" ++MAGIC_CMD=$MAGIC_CMD ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_wl ++ ++# Object file suffix (normally "o"). ++objext="$ac_objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_pic_flag ++pic_mode=$pic_mode ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$lt_compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$lt_need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$lt_thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$lt_RANLIB ++old_archive_cmds=$lt_old_archive_cmds ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++postinstall_cmds=$lt_postinstall_cmds ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$lt_file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$lt_finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$lt_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair ++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at relink time. ++variables_saved_for_relink="$variables_saved_for_relink" ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# ### END LIBTOOL CONFIG ++ ++__EOF__ ++ ++ case $host_os in ++ aix3*) ++ cat <<\EOF >> "${ofile}T" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ cat <<'EOF' >> "${ofile}T" ++ # This is a source program that is used to create dlls on Windows ++ # Don't remove nor modify the starting and closing comments ++# /* ltdll.c starts here */ ++# #define WIN32_LEAN_AND_MEAN ++# #include ++# #undef WIN32_LEAN_AND_MEAN ++# #include ++# ++# #ifndef __CYGWIN__ ++# # ifdef __CYGWIN32__ ++# # define __CYGWIN__ __CYGWIN32__ ++# # endif ++# #endif ++# ++# #ifdef __cplusplus ++# extern "C" { ++# #endif ++# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ++# #ifdef __cplusplus ++# } ++# #endif ++# ++# #ifdef __CYGWIN__ ++# #include ++# DECLARE_CYGWIN_DLL( DllMain ); ++# #endif ++# HINSTANCE __hDllInstance_base; ++# ++# BOOL APIENTRY ++# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ++# { ++# __hDllInstance_base = hInst; ++# return TRUE; ++# } ++# /* ltdll.c ends here */ ++ # This is a source program that is used to create import libraries ++ # on Windows for dlls which lack them. Don't remove nor modify the ++ # starting and closing comments ++# /* impgen.c starts here */ ++# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ++# ++# This file is part of GNU libtool. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# */ ++# ++# #include /* for printf() */ ++# #include /* for open(), lseek(), read() */ ++# #include /* for O_RDONLY, O_BINARY */ ++# #include /* for strdup() */ ++# ++# /* O_BINARY isn't required (or even defined sometimes) under Unix */ ++# #ifndef O_BINARY ++# #define O_BINARY 0 ++# #endif ++# ++# static unsigned int ++# pe_get16 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[2]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 2); ++# return b[0] + (b[1]<<8); ++# } ++# ++# static unsigned int ++# pe_get32 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[4]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 4); ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# static unsigned int ++# pe_as32 (ptr) ++# void *ptr; ++# { ++# unsigned char *b = ptr; ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# int ++# main (argc, argv) ++# int argc; ++# char *argv[]; ++# { ++# int dll; ++# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ++# unsigned long export_rva, export_size, nsections, secptr, expptr; ++# unsigned long name_rvas, nexp; ++# unsigned char *expdata, *erva; ++# char *filename, *dll_name; ++# ++# filename = argv[1]; ++# ++# dll = open(filename, O_RDONLY|O_BINARY); ++# if (dll < 1) ++# return 1; ++# ++# dll_name = filename; ++# ++# for (i=0; filename[i]; i++) ++# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ++# dll_name = filename + i +1; ++# ++# pe_header_offset = pe_get32 (dll, 0x3c); ++# opthdr_ofs = pe_header_offset + 4 + 20; ++# num_entries = pe_get32 (dll, opthdr_ofs + 92); ++# ++# if (num_entries < 1) /* no exports */ ++# return 1; ++# ++# export_rva = pe_get32 (dll, opthdr_ofs + 96); ++# export_size = pe_get32 (dll, opthdr_ofs + 100); ++# nsections = pe_get16 (dll, pe_header_offset + 4 +2); ++# secptr = (pe_header_offset + 4 + 20 + ++# pe_get16 (dll, pe_header_offset + 4 + 16)); ++# ++# expptr = 0; ++# for (i = 0; i < nsections; i++) ++# { ++# char sname[8]; ++# unsigned long secptr1 = secptr + 40 * i; ++# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ++# unsigned long vsize = pe_get32 (dll, secptr1 + 16); ++# unsigned long fptr = pe_get32 (dll, secptr1 + 20); ++# lseek(dll, secptr1, SEEK_SET); ++# read(dll, sname, 8); ++# if (vaddr <= export_rva && vaddr+vsize > export_rva) ++# { ++# expptr = fptr + (export_rva - vaddr); ++# if (export_rva + export_size > vaddr + vsize) ++# export_size = vsize - (export_rva - vaddr); ++# break; ++# } ++# } ++# ++# expdata = (unsigned char*)malloc(export_size); ++# lseek (dll, expptr, SEEK_SET); ++# read (dll, expdata, export_size); ++# erva = expdata - export_rva; ++# ++# nexp = pe_as32 (expdata+24); ++# name_rvas = pe_as32 (expdata+32); ++# ++# printf ("EXPORTS\n"); ++# for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ++ ++ mv -f "${ofile}T" "$ofile" || \ ++ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ++ chmod +x "$ofile" ++fi ++ ++])# _LT_AC_LTCONFIG_HACK ++ ++# AC_LIBTOOL_DLOPEN - enable checks for dlopen support ++AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) ++ ++# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's ++AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) ++ ++# AC_ENABLE_SHARED - implement the --enable-shared flag ++# Usage: AC_ENABLE_SHARED[(DEFAULT)] ++# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ++# `yes'. ++AC_DEFUN([AC_ENABLE_SHARED], ++[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_ARG_ENABLE(shared, ++changequote(<<, >>)dnl ++<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], ++changequote([, ])dnl ++[p=${PACKAGE-default} ++case $enableval in ++yes) enable_shared=yes ;; ++no) enable_shared=no ;; ++*) ++ enable_shared=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_shared=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac], ++enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl ++]) ++ ++# AC_DISABLE_SHARED - set the default shared flag to --disable-shared ++AC_DEFUN([AC_DISABLE_SHARED], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_ENABLE_SHARED(no)]) ++ ++# AC_ENABLE_STATIC - implement the --enable-static flag ++# Usage: AC_ENABLE_STATIC[(DEFAULT)] ++# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ++# `yes'. ++AC_DEFUN([AC_ENABLE_STATIC], ++[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_ARG_ENABLE(static, ++changequote(<<, >>)dnl ++<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], ++changequote([, ])dnl ++[p=${PACKAGE-default} ++case $enableval in ++yes) enable_static=yes ;; ++no) enable_static=no ;; ++*) ++ enable_static=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_static=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac], ++enable_static=AC_ENABLE_STATIC_DEFAULT)dnl ++]) ++ ++# AC_DISABLE_STATIC - set the default static flag to --disable-static ++AC_DEFUN([AC_DISABLE_STATIC], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_ENABLE_STATIC(no)]) ++ ++ ++# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag ++# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] ++# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ++# `yes'. ++AC_DEFUN([AC_ENABLE_FAST_INSTALL], ++[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl ++AC_ARG_ENABLE(fast-install, ++changequote(<<, >>)dnl ++<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], ++changequote([, ])dnl ++[p=${PACKAGE-default} ++case $enableval in ++yes) enable_fast_install=yes ;; ++no) enable_fast_install=no ;; ++*) ++ enable_fast_install=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_fast_install=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac], ++enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl ++]) ++ ++# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install ++AC_DEFUN([AC_DISABLE_FAST_INSTALL], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++AC_ENABLE_FAST_INSTALL(no)]) ++ ++# AC_LIBTOOL_PICMODE - implement the --with-pic flag ++# Usage: AC_LIBTOOL_PICMODE[(MODE)] ++# Where MODE is either `yes' or `no'. If omitted, it defaults to ++# `both'. ++AC_DEFUN([AC_LIBTOOL_PICMODE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++pic_mode=ifelse($#,1,$1,default)]) ++ ++ ++# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library ++AC_DEFUN([AC_PATH_TOOL_PREFIX], ++[AC_MSG_CHECKING([for $1]) ++AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, ++[case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++dnl $ac_dummy forces splitting on constant user-supplied paths. ++dnl POSIX.2 word splitting is done only on the output of word expansions, ++dnl not every word. This closes a longstanding sh security hole. ++ ac_dummy="ifelse([$2], , $PATH, [$2])" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$1; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/$1" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac]) ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ AC_MSG_RESULT($MAGIC_CMD) ++else ++ AC_MSG_RESULT(no) ++fi ++]) ++ ++ ++# AC_PATH_MAGIC - find a file program which can recognise a shared library ++AC_DEFUN([AC_PATH_MAGIC], ++[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl ++AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) ++ else ++ MAGIC_CMD=: ++ fi ++fi ++]) ++ ++ ++# AC_PROG_LD - find the path to the GNU or non-GNU linker ++AC_DEFUN([AC_PROG_LD], ++[AC_ARG_WITH(gnu-ld, ++[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], ++test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) ++AC_REQUIRE([AC_PROG_CC])dnl ++AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ++ac_prog=ld ++if test "$GCC" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ AC_MSG_CHECKING([for ld used by GCC]) ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in ++ # Accept absolute paths. ++ [[\\/]]* | [[A-Za-z]]:[[\\/]]*) ++ re_direlt='/[[^/]][[^/]]*/\.\./' ++ # Canonicalize the path of ld ++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` ++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we aren't using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++elif test "$with_gnu_ld" = yes; then ++ AC_MSG_CHECKING([for GNU ld]) ++else ++ AC_MSG_CHECKING([for non-GNU ld]) ++fi ++AC_CACHE_VAL(lt_cv_path_LD, ++[if test -z "$LD"; then ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ lt_cv_path_LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some GNU ld's only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ test "$with_gnu_ld" != no && break ++ else ++ test "$with_gnu_ld" != yes && break ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++else ++ lt_cv_path_LD="$LD" # Let the user override the test with a path. ++fi]) ++LD="$lt_cv_path_LD" ++if test -n "$LD"; then ++ AC_MSG_RESULT($LD) ++else ++ AC_MSG_RESULT(no) ++fi ++test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) ++AC_PROG_LD_GNU ++]) ++ ++# AC_PROG_LD_GNU - ++AC_DEFUN([AC_PROG_LD_GNU], ++[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, ++[# I'd rather use --version here, but apparently some GNU ld's only accept -v. ++if $LD -v 2>&1 &5; then ++ lt_cv_prog_gnu_ld=yes ++else ++ lt_cv_prog_gnu_ld=no ++fi]) ++with_gnu_ld=$lt_cv_prog_gnu_ld ++]) ++ ++# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker ++# -- PORTME Some linkers may need a different reload flag. ++AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], ++[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, ++[lt_cv_ld_reload_flag='-r']) ++reload_flag=$lt_cv_ld_reload_flag ++test -n "$reload_flag" && reload_flag=" $reload_flag" ++]) ++ ++# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies ++# -- PORTME fill in with the dynamic library characteristics ++AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], ++[AC_CACHE_CHECK([how to recognise dependent libraries], ++lt_cv_deplibs_check_method, ++[lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix4* | aix5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++bsdi4*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ case "$host_os" in ++ rhapsody* | darwin1.[[012]]) ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ ;; ++ *) # Darwin 1.3 on ++ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ++ ;; ++ esac ++ ;; ++ ++freebsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20*|hpux11*) ++ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ irix5* | nonstopux*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" ++ ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ case $host_cpu in ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ++ lt_cv_deplibs_check_method=pass_all ;; ++ *) ++ # glibc up to 2.1.1 does not perform some relocations on ARM ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++openbsd*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' ++ else ++ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ ++sysv5uw[[78]]* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++esac ++]) ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++]) ++ ++ ++# AC_PROG_NM - find the path to a BSD-compatible name lister ++AC_DEFUN([AC_PROG_NM], ++[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ++AC_MSG_CHECKING([for BSD-compatible nm]) ++AC_CACHE_VAL(lt_cv_path_NM, ++[if test -n "$NM"; then ++ # Let the user override the test. ++ lt_cv_path_NM="$NM" ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do ++ test -z "$ac_dir" && ac_dir=. ++ tmp_nm=$ac_dir/${ac_tool_prefix}nm ++ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the `sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ # Tru64's nm complains that /dev/null is an invalid object file ++ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -B" ++ break ++ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -p" ++ break ++ else ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm ++fi]) ++NM="$lt_cv_path_NM" ++AC_MSG_RESULT([$NM]) ++]) ++ ++# AC_CHECK_LIBM - check for math library ++AC_DEFUN([AC_CHECK_LIBM], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++LIBM= ++case $host in ++*-*-beos* | *-*-cygwin* | *-*-pw32*) ++ # These system don't have libm ++ ;; ++*-ncr-sysv4.3*) ++ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") ++ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") ++ ;; ++*) ++ AC_CHECK_LIB(m, main, LIBM="-lm") ++ ;; ++esac ++]) ++ ++# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for ++# the libltdl convenience library and LTDLINCL to the include flags for ++# the libltdl header and adds --enable-ltdl-convenience to the ++# configure arguments. Note that LIBLTDL and LTDLINCL are not ++# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not ++# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed ++# with '${top_builddir}/' and LTDLINCL will be prefixed with ++# '${top_srcdir}/' (note the single quotes!). If your package is not ++# flat and you're not using automake, define top_builddir and ++# top_srcdir appropriately in the Makefiles. ++AC_DEFUN([AC_LIBLTDL_CONVENIENCE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++ case $enable_ltdl_convenience in ++ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; ++ "") enable_ltdl_convenience=yes ++ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; ++ esac ++ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la ++ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ++ # For backwards non-gettext consistent compatibility... ++ INCLTDL="$LTDLINCL" ++]) ++ ++# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for ++# the libltdl installable library and LTDLINCL to the include flags for ++# the libltdl header and adds --enable-ltdl-install to the configure ++# arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is ++# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed ++# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will ++# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed ++# with '${top_srcdir}/' (note the single quotes!). If your package is ++# not flat and you're not using automake, define top_builddir and ++# top_srcdir appropriately in the Makefiles. ++# In the future, this macro may have to be called after AC_PROG_LIBTOOL. ++AC_DEFUN([AC_LIBLTDL_INSTALLABLE], ++[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ++ AC_CHECK_LIB(ltdl, main, ++ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], ++ [if test x"$enable_ltdl_install" = xno; then ++ AC_MSG_WARN([libltdl not installed, but installation disabled]) ++ else ++ enable_ltdl_install=yes ++ fi ++ ]) ++ if test x"$enable_ltdl_install" = x"yes"; then ++ ac_configure_args="$ac_configure_args --enable-ltdl-install" ++ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la ++ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ++ else ++ ac_configure_args="$ac_configure_args --enable-ltdl-install=no" ++ LIBLTDL="-lltdl" ++ LTDLINCL= ++ fi ++ # For backwards non-gettext consistent compatibility... ++ INCLTDL="$LTDLINCL" ++]) ++ ++# old names ++AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) ++AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) ++AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) ++AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) ++AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) ++AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) ++AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) ++ ++# This is just to silence aclocal about the macro not being used ++ifelse([AC_DISABLE_FAST_INSTALL]) ++ ++# NOTE: This macro has been submitted for inclusion into # ++# GNU Autoconf as AC_PROG_SED. When it is available in # ++# a released version of Autoconf we should remove this # ++# macro and use it instead. # ++# LT_AC_PROG_SED ++# -------------- ++# Check for a fully-functional sed program, that truncates ++# as few characters as possible. Prefer GNU sed if found. ++AC_DEFUN([LT_AC_PROG_SED], ++[AC_MSG_CHECKING([for a sed that does not truncate output]) ++AC_CACHE_VAL(lt_cv_path_SED, ++[# Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_executable_p="test -f" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++ ++ # Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++: ${TMPDIR=/tmp} ++{ ++ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=$TMPDIR/sed$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ++ { (exit 1); exit 1; } ++} ++ _max=0 ++ _count=0 ++ # Add /usr/xpg4/bin/sed as it is typically found on Solaris ++ # along with /bin/sed that truncates output. ++ for _sed in $_sed_list /usr/xpg4/bin/sed; do ++ test ! -f ${_sed} && break ++ cat /dev/null > "$tmp/sed.in" ++ _count=0 ++ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ++ # Check for GNU sed and select it if it is found. ++ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ++ lt_cv_path_SED=${_sed} ++ break ++ fi ++ while true; do ++ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ++ mv "$tmp/sed.tmp" "$tmp/sed.in" ++ cp "$tmp/sed.in" "$tmp/sed.nl" ++ echo >>"$tmp/sed.nl" ++ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ++ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ++ # 40000 chars as input seems more than enough ++ test $_count -gt 10 && break ++ _count=`expr $_count + 1` ++ if test $_count -gt $_max; then ++ _max=$_count ++ lt_cv_path_SED=$_sed ++ fi ++ done ++ done ++ rm -rf "$tmp" ++]) ++if test "X$SED" != "X"; then ++ lt_cv_path_SED=$SED ++else ++ SED=$lt_cv_path_SED ++fi ++AC_MSG_RESULT([$SED]) ++]) ++ +--- metamail-2.7.orig/configure ++++ metamail-2.7/configure +@@ -0,0 +1,7333 @@ ++#! /bin/sh ++ ++# Guess values for system-dependent variables and create Makefiles. ++# Generated automatically using autoconf version 2.13 ++# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. ++# ++# This configure script is free software; the Free Software Foundation ++# gives unlimited permission to copy, distribute and modify it. ++ ++# Defaults: ++ac_help= ++ac_default_prefix=/usr/local ++# Any additions from configure.in: ++ac_help="$ac_help ++ --enable-maintainer-mode enable make rules and dependencies not useful ++ (and sometimes confusing) to the casual installer" ++ac_help="$ac_help ++ --enable-shared[=PKGS] build shared libraries [default=yes]" ++ac_help="$ac_help ++ --enable-static[=PKGS] build static libraries [default=yes]" ++ac_help="$ac_help ++ --enable-fast-install[=PKGS] optimize for fast installation [default=yes]" ++ac_help="$ac_help ++ --with-gnu-ld assume the C compiler uses GNU ld [default=no]" ++ ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++ ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ++ ;; ++esac ++ ++echo=${ECHO-echo} ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat </dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null ++ then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} ++ else ++ # Try using printf. ++ echo='printf %s\n' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "$0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++ECHO=$echo ++if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ++ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" ++fi ++ ++ ++ac_help="$ac_help ++ --disable-libtool-lock avoid locking (might break parallel builds)" ++ac_help="$ac_help ++ --with-pic try to use only PIC/non-PIC objects [default=use both]" ++ ++# Initialize some variables set by options. ++# The variables have the same names as the options, with ++# dashes changed to underlines. ++build=NONE ++cache_file=./config.cache ++exec_prefix=NONE ++host=NONE ++no_create= ++nonopt=NONE ++no_recursion= ++prefix=NONE ++program_prefix=NONE ++program_suffix=NONE ++program_transform_name=s,x,x, ++silent= ++site= ++srcdir= ++target=NONE ++verbose= ++x_includes=NONE ++x_libraries=NONE ++bindir='${exec_prefix}/bin' ++sbindir='${exec_prefix}/sbin' ++libexecdir='${exec_prefix}/libexec' ++datadir='${prefix}/share' ++sysconfdir='${prefix}/etc' ++sharedstatedir='${prefix}/com' ++localstatedir='${prefix}/var' ++libdir='${exec_prefix}/lib' ++includedir='${prefix}/include' ++oldincludedir='/usr/include' ++infodir='${prefix}/info' ++mandir='${prefix}/man' ++ ++# Initialize some other variables. ++subdirs= ++MFLAGS= MAKEFLAGS= ++SHELL=${CONFIG_SHELL-/bin/sh} ++# Maximum number of lines to put in a shell here document. ++ac_max_here_lines=12 ++ ++ac_prev= ++for ac_option ++do ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$ac_prev"; then ++ eval "$ac_prev=\$ac_option" ++ ac_prev= ++ continue ++ fi ++ ++ case "$ac_option" in ++ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) ac_optarg= ;; ++ esac ++ ++ # Accept the important Cygnus configure options, so we can diagnose typos. ++ ++ case "$ac_option" in ++ ++ -bindir | --bindir | --bindi | --bind | --bin | --bi) ++ ac_prev=bindir ;; ++ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) ++ bindir="$ac_optarg" ;; ++ ++ -build | --build | --buil | --bui | --bu) ++ ac_prev=build ;; ++ -build=* | --build=* | --buil=* | --bui=* | --bu=*) ++ build="$ac_optarg" ;; ++ ++ -cache-file | --cache-file | --cache-fil | --cache-fi \ ++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ++ ac_prev=cache_file ;; ++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ ++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) ++ cache_file="$ac_optarg" ;; ++ ++ -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ++ ac_prev=datadir ;; ++ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ ++ | --da=*) ++ datadir="$ac_optarg" ;; ++ ++ -disable-* | --disable-*) ++ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` ++ # Reject names that are not valid shell variable names. ++ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then ++ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } ++ fi ++ ac_feature=`echo $ac_feature| sed 's/-/_/g'` ++ eval "enable_${ac_feature}=no" ;; ++ ++ -enable-* | --enable-*) ++ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` ++ # Reject names that are not valid shell variable names. ++ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then ++ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } ++ fi ++ ac_feature=`echo $ac_feature| sed 's/-/_/g'` ++ case "$ac_option" in ++ *=*) ;; ++ *) ac_optarg=yes ;; ++ esac ++ eval "enable_${ac_feature}='$ac_optarg'" ;; ++ ++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ ++ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ ++ | --exec | --exe | --ex) ++ ac_prev=exec_prefix ;; ++ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ ++ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ ++ | --exec=* | --exe=* | --ex=*) ++ exec_prefix="$ac_optarg" ;; ++ ++ -gas | --gas | --ga | --g) ++ # Obsolete; use --with-gas. ++ with_gas=yes ;; ++ ++ -help | --help | --hel | --he) ++ # Omit some internal or obsolete options to make the list less imposing. ++ # This message is too long to be a string in the A/UX 3.1 sh. ++ cat << EOF ++Usage: configure [options] [host] ++Options: [defaults in brackets after descriptions] ++Configuration: ++ --cache-file=FILE cache test results in FILE ++ --help print this message ++ --no-create do not create output files ++ --quiet, --silent do not print \`checking...' messages ++ --version print the version of autoconf that created configure ++Directory and file names: ++ --prefix=PREFIX install architecture-independent files in PREFIX ++ [$ac_default_prefix] ++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ++ [same as prefix] ++ --bindir=DIR user executables in DIR [EPREFIX/bin] ++ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] ++ --libexecdir=DIR program executables in DIR [EPREFIX/libexec] ++ --datadir=DIR read-only architecture-independent data in DIR ++ [PREFIX/share] ++ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] ++ --sharedstatedir=DIR modifiable architecture-independent data in DIR ++ [PREFIX/com] ++ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] ++ --libdir=DIR object code libraries in DIR [EPREFIX/lib] ++ --includedir=DIR C header files in DIR [PREFIX/include] ++ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] ++ --infodir=DIR info documentation in DIR [PREFIX/info] ++ --mandir=DIR man documentation in DIR [PREFIX/man] ++ --srcdir=DIR find the sources in DIR [configure dir or ..] ++ --program-prefix=PREFIX prepend PREFIX to installed program names ++ --program-suffix=SUFFIX append SUFFIX to installed program names ++ --program-transform-name=PROGRAM ++ run sed PROGRAM on installed program names ++EOF ++ cat << EOF ++Host type: ++ --build=BUILD configure for building on BUILD [BUILD=HOST] ++ --host=HOST configure for HOST [guessed] ++ --target=TARGET configure for TARGET [TARGET=HOST] ++Features and packages: ++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) ++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] ++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ++ --x-includes=DIR X include files are in DIR ++ --x-libraries=DIR X library files are in DIR ++EOF ++ if test -n "$ac_help"; then ++ echo "--enable and --with options recognized:$ac_help" ++ fi ++ exit 0 ;; ++ ++ -host | --host | --hos | --ho) ++ ac_prev=host ;; ++ -host=* | --host=* | --hos=* | --ho=*) ++ host="$ac_optarg" ;; ++ ++ -includedir | --includedir | --includedi | --included | --include \ ++ | --includ | --inclu | --incl | --inc) ++ ac_prev=includedir ;; ++ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ ++ | --includ=* | --inclu=* | --incl=* | --inc=*) ++ includedir="$ac_optarg" ;; ++ ++ -infodir | --infodir | --infodi | --infod | --info | --inf) ++ ac_prev=infodir ;; ++ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) ++ infodir="$ac_optarg" ;; ++ ++ -libdir | --libdir | --libdi | --libd) ++ ac_prev=libdir ;; ++ -libdir=* | --libdir=* | --libdi=* | --libd=*) ++ libdir="$ac_optarg" ;; ++ ++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ ++ | --libexe | --libex | --libe) ++ ac_prev=libexecdir ;; ++ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ ++ | --libexe=* | --libex=* | --libe=*) ++ libexecdir="$ac_optarg" ;; ++ ++ -localstatedir | --localstatedir | --localstatedi | --localstated \ ++ | --localstate | --localstat | --localsta | --localst \ ++ | --locals | --local | --loca | --loc | --lo) ++ ac_prev=localstatedir ;; ++ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ ++ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ ++ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) ++ localstatedir="$ac_optarg" ;; ++ ++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ++ ac_prev=mandir ;; ++ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) ++ mandir="$ac_optarg" ;; ++ ++ -nfp | --nfp | --nf) ++ # Obsolete; use --without-fp. ++ with_fp=no ;; ++ ++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ++ | --no-cr | --no-c) ++ no_create=yes ;; ++ ++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ++ no_recursion=yes ;; ++ ++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ ++ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ ++ | --oldin | --oldi | --old | --ol | --o) ++ ac_prev=oldincludedir ;; ++ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ ++ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ ++ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) ++ oldincludedir="$ac_optarg" ;; ++ ++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ++ ac_prev=prefix ;; ++ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ++ prefix="$ac_optarg" ;; ++ ++ -program-prefix | --program-prefix | --program-prefi | --program-pref \ ++ | --program-pre | --program-pr | --program-p) ++ ac_prev=program_prefix ;; ++ -program-prefix=* | --program-prefix=* | --program-prefi=* \ ++ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) ++ program_prefix="$ac_optarg" ;; ++ ++ -program-suffix | --program-suffix | --program-suffi | --program-suff \ ++ | --program-suf | --program-su | --program-s) ++ ac_prev=program_suffix ;; ++ -program-suffix=* | --program-suffix=* | --program-suffi=* \ ++ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) ++ program_suffix="$ac_optarg" ;; ++ ++ -program-transform-name | --program-transform-name \ ++ | --program-transform-nam | --program-transform-na \ ++ | --program-transform-n | --program-transform- \ ++ | --program-transform | --program-transfor \ ++ | --program-transfo | --program-transf \ ++ | --program-trans | --program-tran \ ++ | --progr-tra | --program-tr | --program-t) ++ ac_prev=program_transform_name ;; ++ -program-transform-name=* | --program-transform-name=* \ ++ | --program-transform-nam=* | --program-transform-na=* \ ++ | --program-transform-n=* | --program-transform-=* \ ++ | --program-transform=* | --program-transfor=* \ ++ | --program-transfo=* | --program-transf=* \ ++ | --program-trans=* | --program-tran=* \ ++ | --progr-tra=* | --program-tr=* | --program-t=*) ++ program_transform_name="$ac_optarg" ;; ++ ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ silent=yes ;; ++ ++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ++ ac_prev=sbindir ;; ++ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ ++ | --sbi=* | --sb=*) ++ sbindir="$ac_optarg" ;; ++ ++ -sharedstatedir | --sharedstatedir | --sharedstatedi \ ++ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ ++ | --sharedst | --shareds | --shared | --share | --shar \ ++ | --sha | --sh) ++ ac_prev=sharedstatedir ;; ++ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ ++ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ ++ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ ++ | --sha=* | --sh=*) ++ sharedstatedir="$ac_optarg" ;; ++ ++ -site | --site | --sit) ++ ac_prev=site ;; ++ -site=* | --site=* | --sit=*) ++ site="$ac_optarg" ;; ++ ++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ++ ac_prev=srcdir ;; ++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ++ srcdir="$ac_optarg" ;; ++ ++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ ++ | --syscon | --sysco | --sysc | --sys | --sy) ++ ac_prev=sysconfdir ;; ++ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ ++ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) ++ sysconfdir="$ac_optarg" ;; ++ ++ -target | --target | --targe | --targ | --tar | --ta | --t) ++ ac_prev=target ;; ++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) ++ target="$ac_optarg" ;; ++ ++ -v | -verbose | --verbose | --verbos | --verbo | --verb) ++ verbose=yes ;; ++ ++ -version | --version | --versio | --versi | --vers) ++ echo "configure generated by autoconf version 2.13" ++ exit 0 ;; ++ ++ -with-* | --with-*) ++ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` ++ # Reject names that are not valid shell variable names. ++ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then ++ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } ++ fi ++ ac_package=`echo $ac_package| sed 's/-/_/g'` ++ case "$ac_option" in ++ *=*) ;; ++ *) ac_optarg=yes ;; ++ esac ++ eval "with_${ac_package}='$ac_optarg'" ;; ++ ++ -without-* | --without-*) ++ ac_package=`echo $ac_option|sed -e 's/-*without-//'` ++ # Reject names that are not valid shell variable names. ++ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then ++ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } ++ fi ++ ac_package=`echo $ac_package| sed 's/-/_/g'` ++ eval "with_${ac_package}=no" ;; ++ ++ --x) ++ # Obsolete; use --with-x. ++ with_x=yes ;; ++ ++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ ++ | --x-incl | --x-inc | --x-in | --x-i) ++ ac_prev=x_includes ;; ++ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ ++ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) ++ x_includes="$ac_optarg" ;; ++ ++ -x-libraries | --x-libraries | --x-librarie | --x-librari \ ++ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ++ ac_prev=x_libraries ;; ++ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ ++ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) ++ x_libraries="$ac_optarg" ;; ++ ++ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ++ ;; ++ ++ *) ++ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then ++ echo "configure: warning: $ac_option: invalid host type" 1>&2 ++ fi ++ if test "x$nonopt" != xNONE; then ++ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ++ fi ++ nonopt="$ac_option" ++ ;; ++ ++ esac ++done ++ ++if test -n "$ac_prev"; then ++ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } ++fi ++ ++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 ++ ++# File descriptor usage: ++# 0 standard input ++# 1 file creation ++# 2 errors and warnings ++# 3 some systems may open it to /dev/tty ++# 4 used on the Kubota Titan ++# 6 checking for... messages and results ++# 5 compiler messages saved in config.log ++if test "$silent" = yes; then ++ exec 6>/dev/null ++else ++ exec 6>&1 ++fi ++exec 5>./config.log ++ ++echo "\ ++This file contains any messages produced by compilers while ++running configure, to aid debugging if configure makes a mistake. ++" 1>&5 ++ ++# Strip out --no-create and --no-recursion so they do not pile up. ++# Also quote any args containing shell metacharacters. ++ac_configure_args= ++for ac_arg ++do ++ case "$ac_arg" in ++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ++ | --no-cr | --no-c) ;; ++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; ++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ++ ac_configure_args="$ac_configure_args '$ac_arg'" ;; ++ *) ac_configure_args="$ac_configure_args $ac_arg" ;; ++ esac ++done ++ ++# NLS nuisances. ++# Only set these to C if already set. These must not be set unconditionally ++# because not all systems understand e.g. LANG=C (notably SCO). ++# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! ++# Non-C LC_CTYPE values break the ctype check. ++if test "${LANG+set}" = set; then LANG=C; export LANG; fi ++if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi ++if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi ++if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi ++ ++# confdefs.h avoids OS command line length limits that DEFS can exceed. ++rm -rf conftest* confdefs.h ++# AIX cpp loses on an empty file, so make sure it contains at least a newline. ++echo > confdefs.h ++ ++# A filename unique to this package, relative to the directory that ++# configure is in, which we can look for to find out if srcdir is correct. ++ac_unique_file=src/metamail/metamail.c ++ ++# Find the source files, if location was not specified. ++if test -z "$srcdir"; then ++ ac_srcdir_defaulted=yes ++ # Try the directory containing this script, then its parent. ++ ac_prog=$0 ++ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` ++ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. ++ srcdir=$ac_confdir ++ if test ! -r $srcdir/$ac_unique_file; then ++ srcdir=.. ++ fi ++else ++ ac_srcdir_defaulted=no ++fi ++if test ! -r $srcdir/$ac_unique_file; then ++ if test "$ac_srcdir_defaulted" = yes; then ++ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } ++ else ++ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } ++ fi ++fi ++srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` ++ ++# Prefer explicitly selected file to automatically selected ones. ++if test -z "$CONFIG_SITE"; then ++ if test "x$prefix" != xNONE; then ++ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ++ else ++ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ++ fi ++fi ++for ac_site_file in $CONFIG_SITE; do ++ if test -r "$ac_site_file"; then ++ echo "loading site script $ac_site_file" ++ . "$ac_site_file" ++ fi ++done ++ ++if test -r "$cache_file"; then ++ echo "loading cache $cache_file" ++ . $cache_file ++else ++ echo "creating cache $cache_file" ++ > $cache_file ++fi ++ ++ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++ac_exeext= ++ac_objext=o ++if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then ++ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. ++ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ++ ac_n= ac_c=' ++' ac_t=' ' ++ else ++ ac_n=-n ac_c= ac_t= ++ fi ++else ++ ac_n= ac_c='\c' ac_t= ++fi ++ ++ ++ac_aux_dir= ++for ac_dir in config $srcdir/config; do ++ if test -f $ac_dir/install-sh; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install-sh -c" ++ break ++ elif test -f $ac_dir/install.sh; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install.sh -c" ++ break ++ fi ++done ++if test -z "$ac_aux_dir"; then ++ { echo "configure: error: can not find install-sh or install.sh in config $srcdir/config" 1>&2; exit 1; } ++fi ++ac_config_guess=$ac_aux_dir/config.guess ++ac_config_sub=$ac_aux_dir/config.sub ++ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. ++ ++ ++ ++ ++am__api_version="1.4" ++# Find a good install program. We prefer a C program (faster), ++# so one script is as good as another. But avoid the broken or ++# incompatible versions: ++# SysV /etc/install, /usr/sbin/install ++# SunOS /usr/etc/install ++# IRIX /sbin/install ++# AIX /bin/install ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# ./install, which can be erroneously created by make from ./install.sh. ++echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 ++echo "configure:734: checking for a BSD compatible install" >&5 ++if test -z "$INSTALL"; then ++if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" ++ for ac_dir in $PATH; do ++ # Account for people who put trailing slashes in PATH elements. ++ case "$ac_dir/" in ++ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; ++ *) ++ # OSF1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF since it installs stuff as root ++ # by default. ++ for ac_prog in ginstall scoinst install; do ++ if test -f $ac_dir/$ac_prog; then ++ if test $ac_prog = install && ++ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ else ++ ac_cv_path_install="$ac_dir/$ac_prog -c" ++ break 2 ++ fi ++ fi ++ done ++ ;; ++ esac ++ done ++ IFS="$ac_save_IFS" ++ ++fi ++ if test "${ac_cv_path_install+set}" = set; then ++ INSTALL="$ac_cv_path_install" ++ else ++ # As a last resort, use the slow shell script. We don't cache a ++ # path for INSTALL within a source directory, because that will ++ # break other packages using the cache if that directory is ++ # removed, or if the path is relative. ++ INSTALL="$ac_install_sh" ++ fi ++fi ++echo "$ac_t""$INSTALL" 1>&6 ++ ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}. ++# It thinks the first close brace ends the variable substitution. ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' ++ ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' ++ ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ++ ++echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 ++echo "configure:787: checking whether build environment is sane" >&5 ++# Just in case ++sleep 1 ++echo timestamp > conftestfile ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` ++ if test "$*" = "X"; then ++ # -L didn't work. ++ set X `ls -t $srcdir/configure conftestfile` ++ fi ++ if test "$*" != "X $srcdir/configure conftestfile" \ ++ && test "$*" != "X conftestfile $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ { echo "configure: error: ls -t appears to fail. Make sure there is not a broken ++alias in your environment" 1>&2; exit 1; } ++ fi ++ ++ test "$2" = conftestfile ++ ) ++then ++ # Ok. ++ : ++else ++ { echo "configure: error: newly created file is older than distributed files! ++Check your system clock" 1>&2; exit 1; } ++fi ++rm -f conftest* ++echo "$ac_t""yes" 1>&6 ++if test "$program_transform_name" = s,x,x,; then ++ program_transform_name= ++else ++ # Double any \ or $. echo might interpret backslashes. ++ cat <<\EOF_SED > conftestsed ++s,\\,\\\\,g; s,\$,$$,g ++EOF_SED ++ program_transform_name="`echo $program_transform_name|sed -f conftestsed`" ++ rm -f conftestsed ++fi ++test "$program_prefix" != NONE && ++ program_transform_name="s,^,${program_prefix},; $program_transform_name" ++# Use a double $ so make ignores it. ++test "$program_suffix" != NONE && ++ program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" ++ ++# sed with no file args requires a program. ++test "$program_transform_name" = "" && program_transform_name="s,x,x," ++ ++echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 ++echo "configure:844: checking whether ${MAKE-make} sets \${MAKE}" >&5 ++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftestmake <<\EOF ++all: ++ @echo 'ac_maketemp="${MAKE}"' ++EOF ++# GNU make sometimes prints "make[1]: Entering...", which would confuse us. ++eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` ++if test -n "$ac_maketemp"; then ++ eval ac_cv_prog_make_${ac_make}_set=yes ++else ++ eval ac_cv_prog_make_${ac_make}_set=no ++fi ++rm -f conftestmake ++fi ++if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ SET_MAKE= ++else ++ echo "$ac_t""no" 1>&6 ++ SET_MAKE="MAKE=${MAKE-make}" ++fi ++ ++ ++PACKAGE=metamail ++ ++VERSION=0.0.1 ++ ++if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then ++ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } ++fi ++cat >> confdefs.h <> confdefs.h <&6 ++echo "configure:890: checking for working aclocal-${am__api_version}" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ++ ACLOCAL=aclocal-${am__api_version} ++ echo "$ac_t""found" 1>&6 ++else ++ ACLOCAL="$missing_dir/missing aclocal-${am__api_version}" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 ++echo "configure:903: checking for working autoconf" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (autoconf --version) < /dev/null > /dev/null 2>&1; then ++ AUTOCONF=autoconf ++ echo "$ac_t""found" 1>&6 ++else ++ AUTOCONF="$missing_dir/missing autoconf" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++echo $ac_n "checking for working automake-${am__api_version}""... $ac_c" 1>&6 ++echo "configure:916: checking for working automake-${am__api_version}" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then ++ AUTOMAKE=automake-${am__api_version} ++ echo "$ac_t""found" 1>&6 ++else ++ AUTOMAKE="$missing_dir/missing automake-${am__api_version}" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 ++echo "configure:929: checking for working autoheader" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (autoheader --version) < /dev/null > /dev/null 2>&1; then ++ AUTOHEADER=autoheader ++ echo "$ac_t""found" 1>&6 ++else ++ AUTOHEADER="$missing_dir/missing autoheader" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 ++echo "configure:942: checking for working makeinfo" >&5 ++# Run test in a subshell; some versions of sh will print an error if ++# an executable is not found, even if stderr is redirected. ++# Redirect stdin to placate older versions of autoconf. Sigh. ++if (makeinfo --version) < /dev/null > /dev/null 2>&1; then ++ MAKEINFO=makeinfo ++ echo "$ac_t""found" 1>&6 ++else ++ MAKEINFO="$missing_dir/missing makeinfo" ++ echo "$ac_t""missing" 1>&6 ++fi ++ ++ ++echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 ++echo "configure:956: checking whether to enable maintainer-specific portions of Makefiles" >&5 ++ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. ++if test "${enable_maintainer_mode+set}" = set; then ++ enableval="$enable_maintainer_mode" ++ USE_MAINTAINER_MODE=$enableval ++else ++ USE_MAINTAINER_MODE=no ++fi ++ ++ echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 ++ ++ ++if test $USE_MAINTAINER_MODE = yes; then ++ MAINTAINER_MODE_TRUE= ++ MAINTAINER_MODE_FALSE='#' ++else ++ MAINTAINER_MODE_TRUE='#' ++ MAINTAINER_MODE_FALSE= ++fi ++ MAINT=$MAINTAINER_MODE_TRUE ++ ++ ++ ++ ++# Make sure we can run config.sub. ++if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : ++else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } ++fi ++ ++echo $ac_n "checking host system type""... $ac_c" 1>&6 ++echo "configure:986: checking host system type" >&5 ++ ++host_alias=$host ++case "$host_alias" in ++NONE) ++ case $nonopt in ++ NONE) ++ if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : ++ else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } ++ fi ;; ++ *) host_alias=$nonopt ;; ++ esac ;; ++esac ++ ++host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` ++host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` ++host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` ++host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ++echo "$ac_t""$host" 1>&6 ++ ++ ++# Extract the first word of "gcc", so it can be a program name with args. ++set dummy gcc; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:1010: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_CC="gcc" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++CC="$ac_cv_prog_CC" ++if test -n "$CC"; then ++ echo "$ac_t""$CC" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++if test -z "$CC"; then ++ # Extract the first word of "cc", so it can be a program name with args. ++set dummy cc; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:1040: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_prog_rejected=no ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ++ ac_prog_rejected=yes ++ continue ++ fi ++ ac_cv_prog_CC="cc" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++if test $ac_prog_rejected = yes; then ++ # We found a bogon in the path, so make sure we never use it. ++ set dummy $ac_cv_prog_CC ++ shift ++ if test $# -gt 0; then ++ # We chose a different compiler from the bogus one. ++ # However, it has the same basename, so the bogon will be chosen ++ # first if we set CC to just the basename; use the full file name. ++ shift ++ set dummy "$ac_dir/$ac_word" "$@" ++ shift ++ ac_cv_prog_CC="$@" ++ fi ++fi ++fi ++fi ++CC="$ac_cv_prog_CC" ++if test -n "$CC"; then ++ echo "$ac_t""$CC" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ if test -z "$CC"; then ++ case "`uname -s`" in ++ *win32* | *WIN32*) ++ # Extract the first word of "cl", so it can be a program name with args. ++set dummy cl; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:1091: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_CC="cl" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++CC="$ac_cv_prog_CC" ++if test -n "$CC"; then ++ echo "$ac_t""$CC" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ;; ++ esac ++ fi ++ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } ++fi ++ ++echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 ++echo "configure:1123: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++ ++ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++cat > conftest.$ac_ext << EOF ++ ++#line 1134 "configure" ++#include "confdefs.h" ++ ++main(){return(0);} ++EOF ++if { (eval echo configure:1139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ ac_cv_prog_cc_works=yes ++ # If we can't run a trivial program, we are probably using a cross compiler. ++ if (./conftest; exit) 2>/dev/null; then ++ ac_cv_prog_cc_cross=no ++ else ++ ac_cv_prog_cc_cross=yes ++ fi ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ ac_cv_prog_cc_works=no ++fi ++rm -fr conftest* ++ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 ++if test $ac_cv_prog_cc_works = no; then ++ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } ++fi ++echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 ++echo "configure:1165: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 ++cross_compiling=$ac_cv_prog_cc_cross ++ ++echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 ++echo "configure:1170: checking whether we are using GNU C" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++ ac_cv_prog_gcc=yes ++else ++ ac_cv_prog_gcc=no ++fi ++fi ++ ++echo "$ac_t""$ac_cv_prog_gcc" 1>&6 ++ ++if test $ac_cv_prog_gcc = yes; then ++ GCC=yes ++else ++ GCC= ++fi ++ ++ac_test_CFLAGS="${CFLAGS+set}" ++ac_save_CFLAGS="$CFLAGS" ++CFLAGS= ++echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 ++echo "configure:1198: checking whether ${CC-cc} accepts -g" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ echo 'void f(){}' > conftest.c ++if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ++ ac_cv_prog_cc_g=yes ++else ++ ac_cv_prog_cc_g=no ++fi ++rm -f conftest* ++ ++fi ++ ++echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 ++if test "$ac_test_CFLAGS" = set; then ++ CFLAGS="$ac_save_CFLAGS" ++elif test $ac_cv_prog_cc_g = yes; then ++ if test "$GCC" = yes; then ++ CFLAGS="-g -O2" ++ else ++ CFLAGS="-g" ++ fi ++else ++ if test "$GCC" = yes; then ++ CFLAGS="-O2" ++ else ++ CFLAGS= ++ fi ++fi ++ ++# Find the correct PATH separator. Usually this is `:', but ++# DJGPP uses `;' like DOS. ++if test "X${PATH_SEPARATOR+set}" != Xset; then ++ UNAME=${UNAME-`uname 2>/dev/null`} ++ case X$UNAME in ++ *-DOS) lt_cv_sys_path_separator=';' ;; ++ *) lt_cv_sys_path_separator=':' ;; ++ esac ++ PATH_SEPARATOR=$lt_cv_sys_path_separator ++fi ++ ++echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 ++echo "configure:1241: checking for Cygwin environment" >&5 ++if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_cygwin=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_cygwin=no ++fi ++rm -f conftest* ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_cygwin" 1>&6 ++CYGWIN= ++test "$ac_cv_cygwin" = yes && CYGWIN=yes ++echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 ++echo "configure:1274: checking for mingw32 environment" >&5 ++if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_mingw32=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_mingw32=no ++fi ++rm -f conftest* ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_mingw32" 1>&6 ++MINGW32= ++test "$ac_cv_mingw32" = yes && MINGW32=yes ++echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 ++echo "configure:1303: checking how to run the C preprocessor" >&5 ++# On Suns, sometimes $CPP names a directory. ++if test -n "$CPP" && test -d "$CPP"; then ++ CPP= ++fi ++if test -z "$CPP"; then ++if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # This must be in double quotes, not single quotes, because CPP may get ++ # substituted into the Makefile and "${CC-cc}" will confuse make. ++ CPP="${CC-cc} -E" ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. ++ cat > conftest.$ac_ext < ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP="${CC-cc} -E -traditional-cpp" ++ cat > conftest.$ac_ext < ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP="${CC-cc} -nologo -E" ++ cat > conftest.$ac_ext < ++Syntax Error ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:1358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ : ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ CPP=/lib/cpp ++fi ++rm -f conftest* ++fi ++rm -f conftest* ++fi ++rm -f conftest* ++ ac_cv_prog_CPP="$CPP" ++fi ++ CPP="$ac_cv_prog_CPP" ++else ++ ac_cv_prog_CPP="$CPP" ++fi ++echo "$ac_t""$CPP" 1>&6 ++ ++# Check whether --enable-shared or --disable-shared was given. ++if test "${enable_shared+set}" = set; then ++ enableval="$enable_shared" ++ p=${PACKAGE-default} ++case $enableval in ++yes) enable_shared=yes ;; ++no) enable_shared=no ;; ++*) ++ enable_shared=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_shared=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++else ++ enable_shared=yes ++fi ++ ++# Check whether --enable-static or --disable-static was given. ++if test "${enable_static+set}" = set; then ++ enableval="$enable_static" ++ p=${PACKAGE-default} ++case $enableval in ++yes) enable_static=yes ;; ++no) enable_static=no ;; ++*) ++ enable_static=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_static=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++else ++ enable_static=yes ++fi ++ ++# Check whether --enable-fast-install or --disable-fast-install was given. ++if test "${enable_fast_install+set}" = set; then ++ enableval="$enable_fast_install" ++ p=${PACKAGE-default} ++case $enableval in ++yes) enable_fast_install=yes ;; ++no) enable_fast_install=no ;; ++*) ++ enable_fast_install=no ++ # Look at the argument we got. We use all the common list separators. ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ if test "X$pkg" = "X$p"; then ++ enable_fast_install=yes ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++else ++ enable_fast_install=yes ++fi ++ ++echo $ac_n "checking build system type""... $ac_c" 1>&6 ++echo "configure:1452: checking build system type" >&5 ++ ++build_alias=$build ++case "$build_alias" in ++NONE) ++ case $nonopt in ++ NONE) build_alias=$host_alias ;; ++ *) build_alias=$nonopt ;; ++ esac ;; ++esac ++ ++build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` ++build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` ++build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` ++build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ++echo "$ac_t""$build" 1>&6 ++ ++# Check whether --with-gnu-ld or --without-gnu-ld was given. ++if test "${with_gnu_ld+set}" = set; then ++ withval="$with_gnu_ld" ++ test "$withval" = no || with_gnu_ld=yes ++else ++ with_gnu_ld=no ++fi ++ ++ac_prog=ld ++if test "$GCC" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 ++echo "configure:1481: checking for ld used by GCC" >&5 ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in ++ # Accept absolute paths. ++ [\\/]* | [A-Za-z]:[\\/]*) ++ re_direlt='/[^/][^/]*/\.\./' ++ # Canonicalize the path of ld ++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` ++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we aren't using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++elif test "$with_gnu_ld" = yes; then ++ echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 ++echo "configure:1511: checking for GNU ld" >&5 ++else ++ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ++echo "configure:1514: checking for non-GNU ld" >&5 ++fi ++if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -z "$LD"; then ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ lt_cv_path_LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some GNU ld's only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ test "$with_gnu_ld" != no && break ++ else ++ test "$with_gnu_ld" != yes && break ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++else ++ lt_cv_path_LD="$LD" # Let the user override the test with a path. ++fi ++fi ++ ++LD="$lt_cv_path_LD" ++if test -n "$LD"; then ++ echo "$ac_t""$LD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } ++echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 ++echo "configure:1549: checking if the linker ($LD) is GNU ld" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # I'd rather use --version here, but apparently some GNU ld's only accept -v. ++if $LD -v 2>&1 &5; then ++ lt_cv_prog_gnu_ld=yes ++else ++ lt_cv_prog_gnu_ld=no ++fi ++fi ++ ++echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6 ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++ ++echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 ++echo "configure:1566: checking for $LD option to reload object files" >&5 ++if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_ld_reload_flag='-r' ++fi ++ ++echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6 ++reload_flag=$lt_cv_ld_reload_flag ++test -n "$reload_flag" && reload_flag=" $reload_flag" ++ ++echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 ++echo "configure:1578: checking for BSD-compatible nm" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$NM"; then ++ # Let the user override the test. ++ lt_cv_path_NM="$NM" ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do ++ test -z "$ac_dir" && ac_dir=. ++ tmp_nm=$ac_dir/${ac_tool_prefix}nm ++ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the `sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ # Tru64's nm complains that /dev/null is an invalid object file ++ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -B" ++ break ++ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ lt_cv_path_NM="$tmp_nm -p" ++ break ++ else ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm ++fi ++fi ++ ++NM="$lt_cv_path_NM" ++echo "$ac_t""$NM" 1>&6 ++ ++echo $ac_n "checking for a sed that does not truncate output""... $ac_c" 1>&6 ++echo "configure:1616: checking for a sed that does not truncate output" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_SED'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ # Loop through the user's path and test for sed and gsed. ++# Then use that list of sed's as ones to test for truncation. ++as_executable_p="test -f" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ++ fi ++ done ++ done ++done ++ ++ # Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++: ${TMPDIR=/tmp} ++{ ++ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=$TMPDIR/sed$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ++ { (exit 1); exit 1; } ++} ++ _max=0 ++ _count=0 ++ # Add /usr/xpg4/bin/sed as it is typically found on Solaris ++ # along with /bin/sed that truncates output. ++ for _sed in $_sed_list /usr/xpg4/bin/sed; do ++ test ! -f ${_sed} && break ++ cat /dev/null > "$tmp/sed.in" ++ _count=0 ++ echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ++ # Check for GNU sed and select it if it is found. ++ if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ++ lt_cv_path_SED=${_sed} ++ break ++ fi ++ while true; do ++ cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ++ mv "$tmp/sed.tmp" "$tmp/sed.in" ++ cp "$tmp/sed.in" "$tmp/sed.nl" ++ echo >>"$tmp/sed.nl" ++ ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ++ cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ++ # 40000 chars as input seems more than enough ++ test $_count -gt 10 && break ++ _count=`expr $_count + 1` ++ if test $_count -gt $_max; then ++ _max=$_count ++ lt_cv_path_SED=$_sed ++ fi ++ done ++ done ++ rm -rf "$tmp" ++ ++fi ++ ++if test "X$SED" != "X"; then ++ lt_cv_path_SED=$SED ++else ++ SED=$lt_cv_path_SED ++fi ++echo "$ac_t""$SED" 1>&6 ++ ++echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 ++echo "configure:1700: checking whether ln -s works" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ rm -f conftestdata ++if ln -s X conftestdata 2>/dev/null ++then ++ rm -f conftestdata ++ ac_cv_prog_LN_S="ln -s" ++else ++ ac_cv_prog_LN_S=ln ++fi ++fi ++LN_S="$ac_cv_prog_LN_S" ++if test "$ac_cv_prog_LN_S" = "ln -s"; then ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++echo $ac_n "checking how to recognise dependent libraries""... $ac_c" 1>&6 ++echo "configure:1721: checking how to recognise dependent libraries" >&5 ++if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix4* | aix5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++bsdi4*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ case "$host_os" in ++ rhapsody* | darwin1.[012]) ++ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ++ ;; ++ *) # Darwin 1.3 on ++ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ++ ;; ++ esac ++ ;; ++ ++freebsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20*|hpux11*) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ irix5* | nonstopux*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" ++ ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ case $host_cpu in ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ++ lt_cv_deplibs_check_method=pass_all ;; ++ *) ++ # glibc up to 2.1.1 does not perform some relocations on ARM ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; ++ esac ++ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++openbsd*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' ++ else ++ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ # this will be overridden with pass_all, but let us keep it just in case ++ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ ++sysv5uw[78]* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6 ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++ ++echo $ac_n "checking for object suffix""... $ac_c" 1>&6 ++echo "configure:1907: checking for object suffix" >&5 ++if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ rm -f conftest* ++echo 'int i = 1;' > conftest.$ac_ext ++if { (eval echo configure:1913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ for ac_file in conftest.*; do ++ case $ac_file in ++ *.c) ;; ++ *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;; ++ esac ++ done ++else ++ { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; } ++fi ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_objext" 1>&6 ++OBJEXT=$ac_cv_objext ++ac_objext=$ac_cv_objext ++ ++ ++ ++echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 ++echo "configure:1933: checking for executable suffix" >&5 ++if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$CYGWIN" = yes || test "$MINGW32" = yes; then ++ ac_cv_exeext=.exe ++else ++ rm -f conftest* ++ echo 'int main () { return 0; }' > conftest.$ac_ext ++ ac_cv_exeext= ++ if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then ++ for file in conftest.*; do ++ case $file in ++ *.$ac_ext | *.c | *.o | *.obj) ;; ++ *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; ++ esac ++ done ++ else ++ { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } ++ fi ++ rm -f conftest* ++ test x"${ac_cv_exeext}" = x && ac_cv_exeext=no ++fi ++fi ++ ++EXEEXT="" ++test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} ++echo "$ac_t""${ac_cv_exeext}" 1>&6 ++ac_exeext=$EXEEXT ++ ++if test $host != $build; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++ ++ ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6 ++echo "configure:1974: checking command to parse $NM output" >&5 ++if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[BCDEGRST]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[BCDT]' ++ ;; ++cygwin* | mingw* | pw32*) ++ symcode='[ABCDGISTW]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ++ ;; ++irix* | nonstopux*) ++ symcode='[BCDEGRST]' ++ ;; ++osf*) ++ symcode='[BCDEGQRST]' ++ ;; ++solaris* | sysv5*) ++ symcode='[BDT]' ++ ;; ++sysv4) ++ symcode='[DFNSTU]' ++ ;; ++esac ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $host_os in ++mingw*) ++ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[ABCDGISTW]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ rm -f conftest* ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if { (eval echo configure:2060: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat < conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ++ ++ cat <> conftest.$ac_ext ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[] = ++{ ++EOF ++ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ++ cat <<\EOF >> conftest.$ac_ext ++ {0, (lt_ptr) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if { (eval echo configure:2111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest$ac_exeext; then ++ pipe_works=yes ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&5 ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&5 ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 ++ fi ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -f conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++ ++fi ++ ++global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++ global_symbol_to_c_name_address= ++else ++ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ++ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ++fi ++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ++then ++ echo "$ac_t""failed" 1>&6 ++else ++ echo "$ac_t""ok" 1>&6 ++fi ++ ++for ac_hdr in dlfcn.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:2160: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:2170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++ ++ ++ ++ ++ ++# Only perform the check for file, if the check method requires it ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 ++echo "configure:2206: checking for ${ac_tool_prefix}file" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="/usr/bin:$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/${ac_tool_prefix}file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ echo "$ac_t""$MAGIC_CMD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ echo $ac_n "checking for file""... $ac_c" 1>&6 ++echo "configure:2268: checking for file" >&5 ++if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case $MAGIC_CMD in ++ /*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ++ ;; ++ *) ++ ac_save_MAGIC_CMD="$MAGIC_CMD" ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="/usr/bin:$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ MAGIC_CMD="$ac_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ echo "$ac_t""$MAGIC_CMD" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ else ++ MAGIC_CMD=: ++ fi ++fi ++ ++ fi ++ ;; ++esac ++ ++# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2339: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++if test -z "$ac_cv_prog_RANLIB"; then ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2371: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_RANLIB="ranlib" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" ++fi ++fi ++RANLIB="$ac_cv_prog_RANLIB" ++if test -n "$RANLIB"; then ++ echo "$ac_t""$RANLIB" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++else ++ RANLIB=":" ++fi ++fi ++ ++# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2406: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++STRIP="$ac_cv_prog_STRIP" ++if test -n "$STRIP"; then ++ echo "$ac_t""$STRIP" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++if test -z "$ac_cv_prog_STRIP"; then ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:2438: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_STRIP="strip" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":" ++fi ++fi ++STRIP="$ac_cv_prog_STRIP" ++if test -n "$STRIP"; then ++ echo "$ac_t""$STRIP" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++else ++ STRIP=":" ++fi ++fi ++ ++ ++enable_dlopen=no ++enable_win32_dll=no ++ ++# Check whether --enable-libtool-lock or --disable-libtool-lock was given. ++if test "${enable_libtool_lock+set}" = set; then ++ enableval="$enable_libtool_lock" ++ : ++fi ++ ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '#line 2487 "configure"' > conftest.$ac_ext ++ if { (eval echo configure:2488: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 ++echo "configure:2509: checking whether the C compiler needs -belf" >&5 ++if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++ ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ lt_cv_cc_needs_belf=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ lt_cv_cc_needs_belf=no ++fi ++rm -f conftest* ++ ac_ext=c ++# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++cross_compiling=$ac_cv_prog_cc_cross ++ ++fi ++ ++echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++ ++ ++esac ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Constants: ++rm="rm -f" ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++libext=a ++ltmain="$ac_aux_dir/ltmain.sh" ++ofile="$default_ofile" ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++need_locks="$enable_libtool_lock" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++test -z "$AS" && AS=as ++test -z "$CC" && CC=cc ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$LD" && LD=ld ++test -z "$LN_S" && LN_S="ln -s" ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++test -z "$NM" && NM=nm ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$RANLIB" && RANLIB=: ++test -z "$STRIP" && STRIP=: ++test -z "$ac_objext" && ac_objext=o ++ ++if test x"$host" != x"$build"; then ++ ac_tool_prefix=${host_alias}- ++else ++ ac_tool_prefix= ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case $host_os in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ++ ;; ++ *) ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="$2" ++ ++echo $ac_n "checking for objdir""... $ac_c" 1>&6 ++echo "configure:2649: checking for objdir" >&5 ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++echo "$ac_t""$objdir" 1>&6 ++ ++ ++# Check whether --with-pic or --without-pic was given. ++if test "${with_pic+set}" = set; then ++ withval="$with_pic" ++ pic_mode="$withval" ++else ++ pic_mode=default ++fi ++ ++test -z "$pic_mode" && pic_mode=default ++ ++# We assume here that the value for lt_cv_prog_cc_pic will not be cached ++# in isolation, and that seeing it set (from the cache) indicates that ++# the associated values are set (in the cache) correctly too. ++echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6 ++echo "configure:2676: checking for $compiler option to produce PIC" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_cc_pic'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_shlib= ++ lt_cv_prog_cc_wl= ++ lt_cv_prog_cc_static= ++ lt_cv_prog_cc_no_builtin= ++ lt_cv_prog_cc_can_build_shared=$can_build_shared ++ ++ if test "$GCC" = yes; then ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-static' ++ ++ case $host_os in ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # not sure about C++ programs. ++ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_cv_prog_cc_pic='-fno-common' ++ ;; ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_cv_prog_cc_pic=-Kconform_pic ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for PIC flags for the system compiler. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ lt_cv_prog_cc_wl='-Wl,' ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_cv_prog_cc_static='-Bstatic' ++ else ++ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ++ lt_cv_prog_cc_pic='+Z' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | pw32* | os2*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_cv_prog_cc_pic='-DDLL_EXPORT' ++ ;; ++ ++ newsos6) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ lt_cv_prog_cc_wl='-Wl,' ++ lt_cv_prog_cc_static='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ lt_cv_prog_cc_pic='-Kpic' ++ lt_cv_prog_cc_static='-dn' ++ lt_cv_prog_cc_shlib='-belf' ++ ;; ++ ++ solaris*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ lt_cv_prog_cc_pic='-PIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ lt_cv_prog_cc_pic='-KPIC' ++ lt_cv_prog_cc_static='-Bstatic' ++ lt_cv_prog_cc_wl='-Wl,' ++ ;; ++ ++ uts4*) ++ lt_cv_prog_cc_pic='-pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_cv_prog_cc_pic='-Kconform_pic' ++ lt_cv_prog_cc_static='-Bstatic' ++ fi ++ ;; ++ ++ *) ++ lt_cv_prog_cc_can_build_shared=no ++ ;; ++ esac ++ fi ++ ++fi ++ ++if test -z "$lt_cv_prog_cc_pic"; then ++ echo "$ac_t""none" 1>&6 ++else ++ echo "$ac_t""$lt_cv_prog_cc_pic" 1>&6 ++ ++ # Check to make sure the pic_flag actually works. ++ echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6 ++echo "configure:2824: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 ++ if eval "test \"`echo '$''{'lt_cv_prog_cc_pic_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ case $host_os in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then ++ # they create non-PIC objects. So, if there were any warnings, we ++ # assume that PIC is not supported. ++ if test -s conftest.err; then ++ lt_cv_prog_cc_pic_works=no ++ else ++ lt_cv_prog_cc_pic_works=yes ++ fi ++ ;; ++ *) ++ lt_cv_prog_cc_pic_works=yes ++ ;; ++ esac ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ lt_cv_prog_cc_pic_works=no ++ ++fi ++rm -f conftest* ++ CFLAGS="$save_CFLAGS" ++ ++fi ++ ++ ++ if test "X$lt_cv_prog_cc_pic_works" = Xno; then ++ lt_cv_prog_cc_pic= ++ lt_cv_prog_cc_can_build_shared=no ++ else ++ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ++ fi ++ ++ echo "$ac_t""$lt_cv_prog_cc_pic_works" 1>&6 ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$lt_cv_prog_cc_shlib"; then ++ echo "configure: warning: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" 1>&2 ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : ++ else ++ echo "configure: warning: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2 ++ lt_cv_prog_cc_can_build_shared=no ++ fi ++fi ++ ++echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6 ++echo "configure:2890: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 ++if eval "test \"`echo '$''{'lt_cv_prog_cc_static_works'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ lt_cv_prog_cc_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ lt_cv_prog_cc_static_works=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ LDFLAGS="$save_LDFLAGS" ++ ++fi ++ ++ ++# Belt *and* braces to stop my trousers falling down: ++test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ++echo "$ac_t""$lt_cv_prog_cc_static_works" 1>&6 ++ ++pic_flag="$lt_cv_prog_cc_pic" ++special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ++wl="$lt_cv_prog_cc_wl" ++link_static_flag="$lt_cv_prog_cc_static" ++no_builtin_flag="$lt_cv_prog_cc_no_builtin" ++can_build_shared="$lt_cv_prog_cc_can_build_shared" ++ ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6 ++echo "configure:2932: checking if $compiler supports -c -o file.$ac_objext" >&5 ++if eval "test \"`echo '$''{'lt_cv_compiler_c_o'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++echo "int some_variable = 0;" > conftest.$ac_ext ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ++compiler_c_o=no ++if { (eval echo configure:2951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ lt_cv_compiler_c_o=no ++ else ++ lt_cv_compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&5 ++ lt_cv_compiler_c_o=no ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++ ++fi ++ ++compiler_c_o=$lt_cv_compiler_c_o ++echo "$ac_t""$compiler_c_o" 1>&6 ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6 ++echo "configure:2980: checking if $compiler supports -c -o file.lo" >&5 ++ if eval "test \"`echo '$''{'lt_cv_compiler_o_lo'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ++ lt_cv_compiler_o_lo=no ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ save_objext="$ac_objext" ++ ac_objext=lo ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ lt_cv_compiler_o_lo=no ++ else ++ lt_cv_compiler_o_lo=yes ++ fi ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ ac_objext="$save_objext" ++ CFLAGS="$save_CFLAGS" ++ ++fi ++ ++ compiler_o_lo=$lt_cv_compiler_o_lo ++ echo "$ac_t""$compiler_o_lo" 1>&6 ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6 ++echo "configure:3029: checking if we can lock with hard links" >&5 ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ echo "$ac_t""$hard_links" 1>&6 ++ if test "$hard_links" = no; then ++ echo "configure: warning: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" 1>&2 ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$GCC" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6 ++echo "configure:3048: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ++ compiler_rtti_exceptions=no ++ cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ compiler_rtti_exceptions=no ++ else ++ compiler_rtti_exceptions=yes ++ fi ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++fi ++rm -f conftest* ++ CFLAGS="$save_CFLAGS" ++ echo "$ac_t""$compiler_rtti_exceptions" 1>&6 ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++fi ++ ++# See if the linker supports building shared libraries. ++echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6 ++echo "configure:3088: checking whether the linker ($LD) supports shared libraries" >&5 ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++old_archive_from_expsyms_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_into_libs=no ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++link_all_deplibs=unknown ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++extract_expsyms_cmds= ++ ++case $host_os in ++cygwin* | mingw* | pw32*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++openbsd*) ++ with_gnu_ld=no ++ ;; ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix3* | aix4* | aix5*) ++ # On AIX, the GNU linker is very broken ++ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ++ ld_shlibs=no ++ cat <&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ++ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ++ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ++ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ++ else $CC -o impgen impgen.c ; fi)~ ++ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ++ ++ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ++ ++ # cygwin and mingw dlls have different entry points and sets of symbols ++ # to exclude. ++ # FIXME: what about values for MSVC? ++ dll_entry=__cygwin_dll_entry@12 ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ++ case $host_os in ++ mingw*) ++ # mingw values ++ dll_entry=_DllMainCRTStartup@12 ++ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ++ ;; ++ esac ++ ++ # mingw and cygwin differ, and it's simplest to just exclude the union ++ # of the two symbol sets. ++ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ++ ++ # recent cygwin and mingw systems supply a stub DllMain which the user ++ # can override, but on older systems we have to supply one (in ltdll.c) ++ if test "x$lt_cv_need_dllmain" = "xyes"; then ++ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ++ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ++ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ++ else ++ ltdll_obj= ++ ltdll_cmds= ++ fi ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left be newer dlltools. ++ export_symbols_cmds="$ltdll_cmds"' ++ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ++ ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is. ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname-def; ++ else ++ echo EXPORTS > $output_objdir/$soname-def; ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \$# in ++ 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ++ 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ++ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done; ++ fi~ ++ '"$ltdll_cmds"' ++ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ++ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ++ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw* | pw32*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4* | aix5*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[23]|aix4.[23].*|aix5*) ++ for ld_flag in $LDFLAGS; do ++ case $ld_flag in ++ *-brtl*) ++ aix_use_runtimelinking=yes ++ break ++ ;; ++ esac ++ done ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ hardcode_direct=yes ++ archive_cmds='' ++ hardcode_libdir_separator=':' ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[012]|aix4.[012].*) ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ esac ++ ++ shared_flag='-shared' ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ shared_flag='${wl}-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ # It seems that -bexpall can do strange things, so it is better to ++ # generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ++ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ++ else ++ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='${wl}-berok' ++ # This is a bit strange, but is similar to how AIX traditionally builds ++ # it's shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ ;; ++ ++ darwin* | rhapsody*) ++ case "$host_os" in ++ rhapsody* | darwin1.[012]) ++ allow_undefined_flag='-undefined suppress' ++ ;; ++ *) # Darwin 1.3 on ++ allow_undefined_flag='-flat_namespace -undefined suppress' ++ ;; ++ esac ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. Also zsh mangles ++ # `"' quotes if we put them in here... so don't! ++ archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ++ # We need to add '_' to the symbols in $export_symbols first ++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ whole_archive_flag_spec='-all_load $convenience' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case $host_os in ++ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case "$host_os" in ++ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ++ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ++ ++ #Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ hardcode_libdir_separator=: ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ ;; ++ ++ solaris*) ++ # gcc --version < 3.0 without binutils cannot create self contained ++ # shared libraries reliably, requiring libgcc.a to resolve some of ++ # the object symbols generated in some cases. Libraries that use ++ # assert need libgcc.a to resolve __eprintf, for example. Linking ++ # a copy of libgcc.a into every shared library to guarantee resolving ++ # such symbols causes other problems: According to Tim Van Holder ++ # , C++ libraries end up with a separate ++ # (to the application) exception stack for one thing. ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ case `$CC --version 2>/dev/null` in ++ [12].*) ++ cat <&2 ++ ++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably ++*** create self contained shared libraries on Solaris systems, without ++*** introducing a dependency on libgcc.a. Therefore, libtool is disabling ++*** -no-undefined support, which will at least allow you to build shared ++*** libraries. However, you may find that when you link such libraries ++*** into an application without using GCC, you have to manually add ++*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ++*** upgrade to a newer version of GCC. Another option is to rebuild your ++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ++ ++EOF ++ no_undefined_flag= ++ ;; ++ esac ++ fi ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ sysv5uw7* | unixware7*) ++ no_undefined_flag='${wl}-z ${wl}text' ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++echo "$ac_t""$ld_shlibs" 1>&6 ++test "$ld_shlibs" = no && can_build_shared=no ++ ++# Check hardcoding attributes. ++echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6 ++echo "configure:3787: checking how to hardcode library paths into programs" >&5 ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++echo "$ac_t""$hardcode_action" 1>&6 ++ ++striplib= ++old_striplib= ++echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6 ++echo "configure:3815: checking whether stripping libraries is possible" >&5 ++if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++# PORTME Fill in your ld.so characteristics ++echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6 ++echo "configure:3829: checking dynamic linker characteristics" >&5 ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4* | aix5*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[01] | aix4.[01].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can ++ # not hardcode correct soname into executable. Probably we can ++ # add versioning support to collect2, so additional links can ++ # be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib.so ++ # instead of lib.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}.so$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ hardcode_into_libs=yes ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ case $GCC,$host_os in ++ yes,cygwin*) ++ library_names_spec='$libname.dll.a' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog .libs/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $rm \$dlpath' ++ ;; ++ yes,mingw*) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ++ ;; ++ yes,pw32*) ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' ++ ;; ++ *) ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ # FIXME: Relying on posixy $() will cause problems for ++ # cross-compilation, but unfortunately the echo tests do not ++ # yet detect zsh echo's removal of \ escapes. ++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) version_type=irix ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case "$host_os" in ++ openbsd2.[89] | openbsd2.[89].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ need_lib_prefix=no ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ hardcode_into_libs=yes ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++echo "$ac_t""$dynamic_linker" 1>&6 ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6 ++echo "configure:4253: checking if libtool supports shared libraries" >&5 ++echo "$ac_t""$can_build_shared" 1>&6 ++ ++echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6 ++echo "configure:4257: checking whether to build shared libraries" >&5 ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++esac ++echo "$ac_t""$enable_shared" 1>&6 ++ ++echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6 ++echo "configure:4280: checking whether to build static libraries" >&5 ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++echo "$ac_t""$enable_static" 1>&6 ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ cygwin* | mingw* | pw32*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ *) ++ echo $ac_n "checking for shl_load""... $ac_c" 1>&6 ++echo "configure:4321: checking for shl_load" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shl_load(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_shl_load) || defined (__stub___shl_load) ++choke me ++#else ++shl_load(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4349: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 ++echo "configure:4367: checking for shl_load in -ldld" >&5 ++ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen""... $ac_c" 1>&6 ++echo "configure:4405: checking for dlopen" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dlopen(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_dlopen) || defined (__stub___dlopen) ++choke me ++#else ++dlopen(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ++echo "configure:4451: checking for dlopen in -ldl" >&5 ++ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldl $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6 ++echo "configure:4489: checking for dlopen in -lsvld" >&5 ++ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-lsvld $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 ++echo "configure:4527: checking for dld_link in -ldld" >&5 ++ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 ++echo "configure:4602: checking whether a program can dlopen itself" >&5 ++if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext < ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++} ++EOF ++ if { (eval echo configure:4673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_unknown|x*) lt_cv_dlopen_self=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self" 1>&6 ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 ++echo "configure:4696: checking whether a statically linked program can dlopen itself" >&5 ++if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self_static=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext < ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++#ifdef __cplusplus ++extern "C" void exit (int); ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ ++ exit (status); ++} ++EOF ++ if { (eval echo configure:4767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self_static=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++ ++if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6 ++echo "configure:4816: checking whether -lc should be explicitly linked in" >&5 ++ if eval "test \"`echo '$''{'lt_cv_archive_cmds_need_lc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ $rm conftest* ++ echo 'static int dummy;' > conftest.$ac_ext ++ ++ if { (eval echo configure:4823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_cv_prog_cc_wl ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if { (eval echo configure:4836: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; } ++ then ++ lt_cv_archive_cmds_need_lc=no ++ else ++ lt_cv_archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++fi ++ ++ echo "$ac_t""$lt_cv_archive_cmds_need_lc" 1>&6 ++ ;; ++ esac ++fi ++need_lc=${lt_cv_archive_cmds_need_lc-yes} ++ ++# The second clause should only fire when bootstrapping the ++# libtool distribution, otherwise you forgot to ship ltmain.sh ++# with your package, and you will get complaints that there are ++# no rules to generate ltmain.sh. ++if test -f "$ltmain"; then ++ : ++else ++ # If there is no Makefile yet, we rely on a make rule to execute ++ # `config.status --recheck' to rerun these tests and create the ++ # libtool script then. ++ test -f Makefile && make "$ltmain" ++fi ++ ++if test -f "$ltmain"; then ++ trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ++ $rm -f "${ofile}T" ++ ++ echo creating $ofile ++ ++ # Now quote all the things that may contain metacharacters while being ++ # careful not to overquote the AC_SUBSTed values. We take copies of the ++ # variables and quote the copies for generation of the libtool script. ++ for var in echo old_CC old_CFLAGS SED \ ++ AR AR_FLAGS CC LD LN_S NM SHELL \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ++ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ++ old_striplib striplib file_magic_cmd export_symbols_cmds \ ++ deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ global_symbol_to_c_name_address \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case $var in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ cat <<__EOF__ > "${ofile}T" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996-2000 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit , 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# A sed that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="${SED} -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$need_lc ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$lt_echo ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# The default C compiler. ++CC=$lt_CC ++ ++# Is the compiler the GNU C compiler? ++with_gcc=$GCC ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Whether we need hard or soft links. ++LN_S=$lt_LN_S ++ ++# A BSD-compatible nm program. ++NM=$lt_NM ++ ++# A symbol stripping program ++STRIP=$STRIP ++ ++# Used to examine libraries when file_magic_cmd begins "file" ++MAGIC_CMD=$MAGIC_CMD ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_wl ++ ++# Object file suffix (normally "o"). ++objext="$ac_objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_pic_flag ++pic_mode=$pic_mode ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$lt_compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$lt_need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$lt_thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$lt_RANLIB ++old_archive_cmds=$lt_old_archive_cmds ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++postinstall_cmds=$lt_postinstall_cmds ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$lt_file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$lt_finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$lt_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair ++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at relink time. ++variables_saved_for_relink="$variables_saved_for_relink" ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# ### END LIBTOOL CONFIG ++ ++__EOF__ ++ ++ case $host_os in ++ aix3*) ++ cat <<\EOF >> "${ofile}T" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ cat <<'EOF' >> "${ofile}T" ++ # This is a source program that is used to create dlls on Windows ++ # Don't remove nor modify the starting and closing comments ++# /* ltdll.c starts here */ ++# #define WIN32_LEAN_AND_MEAN ++# #include ++# #undef WIN32_LEAN_AND_MEAN ++# #include ++# ++# #ifndef __CYGWIN__ ++# # ifdef __CYGWIN32__ ++# # define __CYGWIN__ __CYGWIN32__ ++# # endif ++# #endif ++# ++# #ifdef __cplusplus ++# extern "C" { ++# #endif ++# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ++# #ifdef __cplusplus ++# } ++# #endif ++# ++# #ifdef __CYGWIN__ ++# #include ++# DECLARE_CYGWIN_DLL( DllMain ); ++# #endif ++# HINSTANCE __hDllInstance_base; ++# ++# BOOL APIENTRY ++# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ++# { ++# __hDllInstance_base = hInst; ++# return TRUE; ++# } ++# /* ltdll.c ends here */ ++ # This is a source program that is used to create import libraries ++ # on Windows for dlls which lack them. Don't remove nor modify the ++ # starting and closing comments ++# /* impgen.c starts here */ ++# /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ++# ++# This file is part of GNU libtool. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# */ ++# ++# #include /* for printf() */ ++# #include /* for open(), lseek(), read() */ ++# #include /* for O_RDONLY, O_BINARY */ ++# #include /* for strdup() */ ++# ++# /* O_BINARY isn't required (or even defined sometimes) under Unix */ ++# #ifndef O_BINARY ++# #define O_BINARY 0 ++# #endif ++# ++# static unsigned int ++# pe_get16 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[2]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 2); ++# return b[0] + (b[1]<<8); ++# } ++# ++# static unsigned int ++# pe_get32 (fd, offset) ++# int fd; ++# int offset; ++# { ++# unsigned char b[4]; ++# lseek (fd, offset, SEEK_SET); ++# read (fd, b, 4); ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# static unsigned int ++# pe_as32 (ptr) ++# void *ptr; ++# { ++# unsigned char *b = ptr; ++# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ++# } ++# ++# int ++# main (argc, argv) ++# int argc; ++# char *argv[]; ++# { ++# int dll; ++# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ++# unsigned long export_rva, export_size, nsections, secptr, expptr; ++# unsigned long name_rvas, nexp; ++# unsigned char *expdata, *erva; ++# char *filename, *dll_name; ++# ++# filename = argv[1]; ++# ++# dll = open(filename, O_RDONLY|O_BINARY); ++# if (dll < 1) ++# return 1; ++# ++# dll_name = filename; ++# ++# for (i=0; filename[i]; i++) ++# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ++# dll_name = filename + i +1; ++# ++# pe_header_offset = pe_get32 (dll, 0x3c); ++# opthdr_ofs = pe_header_offset + 4 + 20; ++# num_entries = pe_get32 (dll, opthdr_ofs + 92); ++# ++# if (num_entries < 1) /* no exports */ ++# return 1; ++# ++# export_rva = pe_get32 (dll, opthdr_ofs + 96); ++# export_size = pe_get32 (dll, opthdr_ofs + 100); ++# nsections = pe_get16 (dll, pe_header_offset + 4 +2); ++# secptr = (pe_header_offset + 4 + 20 + ++# pe_get16 (dll, pe_header_offset + 4 + 16)); ++# ++# expptr = 0; ++# for (i = 0; i < nsections; i++) ++# { ++# char sname[8]; ++# unsigned long secptr1 = secptr + 40 * i; ++# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ++# unsigned long vsize = pe_get32 (dll, secptr1 + 16); ++# unsigned long fptr = pe_get32 (dll, secptr1 + 20); ++# lseek(dll, secptr1, SEEK_SET); ++# read(dll, sname, 8); ++# if (vaddr <= export_rva && vaddr+vsize > export_rva) ++# { ++# expptr = fptr + (export_rva - vaddr); ++# if (export_rva + export_size > vaddr + vsize) ++# export_size = vsize - (export_rva - vaddr); ++# break; ++# } ++# } ++# ++# expdata = (unsigned char*)malloc(export_size); ++# lseek (dll, expptr, SEEK_SET); ++# read (dll, expdata, export_size); ++# erva = expdata - export_rva; ++# ++# nexp = pe_as32 (expdata+24); ++# name_rvas = pe_as32 (expdata+32); ++# ++# printf ("EXPORTS\n"); ++# for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ++ ++ mv -f "${ofile}T" "$ofile" || \ ++ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ++ chmod +x "$ofile" ++fi ++ ++ ++ ++ ++ ++# This can be used to rebuild libtool when needed ++LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" ++ ++# Always use our own libtool. ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++ ++# Prevent multiple expansion ++ ++ ++ ++ ++# Extract the first word of "lp", so it can be a program name with args. ++set dummy lp; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:5425: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_LPRCOMMAND'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$LPRCOMMAND"; then ++ ac_cv_prog_LPRCOMMAND="$LPRCOMMAND" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_LPRCOMMAND="lp" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++LPRCOMMAND="$ac_cv_prog_LPRCOMMAND" ++if test -n "$LPRCOMMAND"; then ++ echo "$ac_t""$LPRCOMMAND" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++# Extract the first word of "lpr", so it can be a program name with args. ++set dummy lpr; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:5454: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_LPRCOMMAND'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$LPRCOMMAND"; then ++ ac_cv_prog_LPRCOMMAND="$LPRCOMMAND" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_LPRCOMMAND="lpr" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++LPRCOMMAND="$ac_cv_prog_LPRCOMMAND" ++if test -n "$LPRCOMMAND"; then ++ echo "$ac_t""$LPRCOMMAND" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++# Extract the first word of "cat", so it can be a program name with args. ++set dummy cat; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:5484: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CATCOMMAND'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CATCOMMAND"; then ++ ac_cv_prog_CATCOMMAND="$CATCOMMAND" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_CATCOMMAND="cat" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++CATCOMMAND="$ac_cv_prog_CATCOMMAND" ++if test -n "$CATCOMMAND"; then ++ echo "$ac_t""$CATCOMMAND" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++# Extract the first word of "type", so it can be a program name with args. ++set dummy type; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:5513: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_CATCOMMAND'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$CATCOMMAND"; then ++ ac_cv_prog_CATCOMMAND="$CATCOMMAND" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_CATCOMMAND="type" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++fi ++fi ++CATCOMMAND="$ac_cv_prog_CATCOMMAND" ++if test -n "$CATCOMMAND"; then ++ echo "$ac_t""$CATCOMMAND" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++ ++ ++for ac_hdr in stdlib.h unistd.h errno.h assert.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5546: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_hdr in sys/time.h time.h signal.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5586: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_hdr in string.h strings.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5626: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5636: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++ ++# @start variadic ++case $am_cv_prog_cc_stdc,$ac_cv_header_varargs_h in ++no,) ++ # Non-ANSI compiler, so we must use varargs.h. ++ for ac_hdr in varargs.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5671: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++ ;; ++*,yes) ++ # Parent package is using varargs.h which is incompatible with ++ # stdarg.h, so we do the same (recheck to generate checking... ++ # message). ++ for ac_hdr in varargs.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5716: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5726: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++ ;; ++*) ++ # If stdarg.h is present define HAVE_STDARG_H. ++ for ac_hdr in stdarg.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:5759: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5769: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++ ;; ++esac ++ ++case x$ac_cv_header_stdarg_h$ac_cv_header_varargs_h in ++x*yes*) ;; ++*) { echo "configure: error: Could not find stdarg.h or varargs.h" 1>&2; exit 1; } ;; ++esac ++# @end variadic ++ ++echo $ac_n "checking for working const""... $ac_c" 1>&6 ++echo "configure:5805: checking for working const" >&5 ++if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext <j = 5; ++} ++{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ ++ const int foo = 10; ++} ++ ++; return 0; } ++EOF ++if { (eval echo configure:5859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_c_const=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_c_const=no ++fi ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_c_const" 1>&6 ++if test $ac_cv_c_const = no; then ++ cat >> confdefs.h <<\EOF ++#define const ++EOF ++ ++fi ++ ++echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 ++echo "configure:5880: checking for ANSI C header files" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++#include ++#include ++#include ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:5893: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ ac_cv_header_stdc=yes ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++cat > conftest.$ac_ext < ++EOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "memchr" >/dev/null 2>&1; then ++ : ++else ++ rm -rf conftest* ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++cat > conftest.$ac_ext < ++EOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "free" >/dev/null 2>&1; then ++ : ++else ++ rm -rf conftest* ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ++if test "$cross_compiling" = yes; then ++ : ++else ++ cat > conftest.$ac_ext < ++#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ++int main () { int i; for (i = 0; i < 256; i++) ++if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); ++exit (0); } ++ ++EOF ++if { (eval echo configure:5960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++then ++ : ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ ac_cv_header_stdc=no ++fi ++rm -fr conftest* ++fi ++ ++fi ++fi ++ ++echo "$ac_t""$ac_cv_header_stdc" 1>&6 ++if test $ac_cv_header_stdc = yes; then ++ cat >> confdefs.h <<\EOF ++#define STDC_HEADERS 1 ++EOF ++ ++fi ++ ++echo $ac_n "checking for size_t""... $ac_c" 1>&6 ++echo "configure:5984: checking for size_t" >&5 ++if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++#if STDC_HEADERS ++#include ++#include ++#endif ++EOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then ++ rm -rf conftest* ++ ac_cv_type_size_t=yes ++else ++ rm -rf conftest* ++ ac_cv_type_size_t=no ++fi ++rm -f conftest* ++ ++fi ++echo "$ac_t""$ac_cv_type_size_t" 1>&6 ++if test $ac_cv_type_size_t = no; then ++ cat >> confdefs.h <<\EOF ++#define size_t unsigned ++EOF ++ ++fi ++ ++echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 ++echo "configure:6017: checking whether time.h and sys/time.h may both be included" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++#include ++#include ++int main() { ++struct tm *tp; ++; return 0; } ++EOF ++if { (eval echo configure:6031: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ac_cv_header_time=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ac_cv_header_time=no ++fi ++rm -f conftest* ++fi ++ ++echo "$ac_t""$ac_cv_header_time" 1>&6 ++if test $ac_cv_header_time = yes; then ++ cat >> confdefs.h <<\EOF ++#define TIME_WITH_SYS_TIME 1 ++EOF ++ ++fi ++ ++ ++for ac_func in killpg kill ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6055: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_func in bcopy memcpy ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6110: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_func in bzero memset ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6165: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_func in bcmp memcmp ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6220: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_func in index strchr ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6275: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_func in rindex strrchr ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6330: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_func in initstate srand ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6385: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_func in random rand ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6440: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++ ++for ac_func in calloc ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6496: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++for ac_func in basename strerror vfprintf ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6551: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}" ++fi ++done ++ ++ ++for ac_func in putenv ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:6608: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:6636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}" ++fi ++done ++ ++ ++ ++ ++# @end 5 ++# @start 1 ++ ++ ++Xsed="sed -e s/^X//" ++LTLIBOBJS=`echo X"$LIBOBJS"|$Xsed -e "s,\.[^.]* ,.lo ,g;s,\.[^.]*$,.lo,"` ++ ++ ++ ++ ++ ++ ++trap '' 1 2 15 ++cat > confcache <<\EOF ++# This file is a shell script that caches the results of configure ++# tests run on this system so they can be shared between configure ++# scripts and configure runs. It is not useful on other systems. ++# If it contains results you don't want to keep, you may remove or edit it. ++# ++# By default, configure uses ./config.cache as the cache file, ++# creating it if it does not exist already. You can give configure ++# the --cache-file=FILE option to use a different cache file; that is ++# what configure does when it calls configure scripts in ++# subdirectories, so they share the cache. ++# Giving --cache-file=/dev/null disables caching, for debugging configure. ++# config.status only pays attention to the cache file if you give it the ++# --recheck option to rerun configure. ++# ++EOF ++# The following way of writing the cache mishandles newlines in values, ++# but we know of no workaround that is simple, portable, and efficient. ++# So, don't put newlines in cache variables' values. ++# Ultrix sh set writes to stderr and can't be redirected directly, ++# and sets the high bit in the cache file unless we assign to the vars. ++(set) 2>&1 | ++ case `(ac_space=' '; set | grep ac_space) 2>&1` in ++ *ac_space=\ *) ++ # `set' does not quote correctly, so add quotes (double-quote substitution ++ # turns \\\\ into \\, and sed turns \\ into \). ++ sed -n \ ++ -e "s/'/'\\\\''/g" \ ++ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ++ ;; ++ *) ++ # `set' quotes correctly as required by POSIX, so do not add quotes. ++ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ++ ;; ++ esac >> confcache ++if cmp -s $cache_file confcache; then ++ : ++else ++ if test -w $cache_file; then ++ echo "updating cache $cache_file" ++ cat confcache > $cache_file ++ else ++ echo "not updating unwritable cache $cache_file" ++ fi ++fi ++rm -f confcache ++ ++trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 ++ ++test "x$prefix" = xNONE && prefix=$ac_default_prefix ++# Let make expand exec_prefix. ++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' ++ ++# Any assignment to VPATH causes Sun make to only execute ++# the first set of double-colon rules, so remove it if not needed. ++# If there is a colon in the path, we need to keep it. ++if test "x$srcdir" = x.; then ++ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' ++fi ++ ++trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 ++ ++DEFS=-DHAVE_CONFIG_H ++ ++# Without the "./", some shells look in PATH for config.status. ++: ${CONFIG_STATUS=./config.status} ++ ++echo creating $CONFIG_STATUS ++rm -f $CONFIG_STATUS ++cat > $CONFIG_STATUS </dev/null | sed 1q`: ++# ++# $0 $ac_configure_args ++# ++# Compiler output produced by configure, useful for debugging ++# configure, is in ./config.log if it exists. ++ ++ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" ++for ac_option ++do ++ case "\$ac_option" in ++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ++ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" ++ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; ++ -version | --version | --versio | --versi | --vers | --ver | --ve | --v) ++ echo "$CONFIG_STATUS generated by autoconf version 2.13" ++ exit 0 ;; ++ -help | --help | --hel | --he | --h) ++ echo "\$ac_cs_usage"; exit 0 ;; ++ *) echo "\$ac_cs_usage"; exit 1 ;; ++ esac ++done ++ ++ac_given_srcdir=$srcdir ++ac_given_INSTALL="$INSTALL" ++ ++trap 'rm -fr `echo "Makefile replace/Makefile metamail/Makefile src/Makefile \ ++ src/metamail/Makefile src/richmail/Makefile bin/Makefile metamail/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 ++EOF ++cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF ++$ac_vpsub ++$extrasub ++s%@SHELL@%$SHELL%g ++s%@CFLAGS@%$CFLAGS%g ++s%@CPPFLAGS@%$CPPFLAGS%g ++s%@CXXFLAGS@%$CXXFLAGS%g ++s%@FFLAGS@%$FFLAGS%g ++s%@DEFS@%$DEFS%g ++s%@LDFLAGS@%$LDFLAGS%g ++s%@LIBS@%$LIBS%g ++s%@exec_prefix@%$exec_prefix%g ++s%@prefix@%$prefix%g ++s%@program_transform_name@%$program_transform_name%g ++s%@bindir@%$bindir%g ++s%@sbindir@%$sbindir%g ++s%@libexecdir@%$libexecdir%g ++s%@datadir@%$datadir%g ++s%@sysconfdir@%$sysconfdir%g ++s%@sharedstatedir@%$sharedstatedir%g ++s%@localstatedir@%$localstatedir%g ++s%@libdir@%$libdir%g ++s%@includedir@%$includedir%g ++s%@oldincludedir@%$oldincludedir%g ++s%@infodir@%$infodir%g ++s%@mandir@%$mandir%g ++s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g ++s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g ++s%@INSTALL_DATA@%$INSTALL_DATA%g ++s%@PACKAGE@%$PACKAGE%g ++s%@VERSION@%$VERSION%g ++s%@ACLOCAL@%$ACLOCAL%g ++s%@AUTOCONF@%$AUTOCONF%g ++s%@AUTOMAKE@%$AUTOMAKE%g ++s%@AUTOHEADER@%$AUTOHEADER%g ++s%@MAKEINFO@%$MAKEINFO%g ++s%@SET_MAKE@%$SET_MAKE%g ++s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g ++s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g ++s%@MAINT@%$MAINT%g ++s%@host@%$host%g ++s%@host_alias@%$host_alias%g ++s%@host_cpu@%$host_cpu%g ++s%@host_vendor@%$host_vendor%g ++s%@host_os@%$host_os%g ++s%@CC@%$CC%g ++s%@build@%$build%g ++s%@build_alias@%$build_alias%g ++s%@build_cpu@%$build_cpu%g ++s%@build_vendor@%$build_vendor%g ++s%@build_os@%$build_os%g ++s%@LN_S@%$LN_S%g ++s%@OBJEXT@%$OBJEXT%g ++s%@EXEEXT@%$EXEEXT%g ++s%@ECHO@%$ECHO%g ++s%@RANLIB@%$RANLIB%g ++s%@STRIP@%$STRIP%g ++s%@CPP@%$CPP%g ++s%@LIBTOOL@%$LIBTOOL%g ++s%@LIBTOOL_DEPS@%$LIBTOOL_DEPS%g ++s%@LPRCOMMAND@%$LPRCOMMAND%g ++s%@CATCOMMAND@%$CATCOMMAND%g ++s%@LIBOBJS@%$LIBOBJS%g ++s%@LTLIBOBJS@%$LTLIBOBJS%g ++s%@ac_aux_dir@%$ac_aux_dir%g ++ ++CEOF ++EOF ++ ++cat >> $CONFIG_STATUS <<\EOF ++ ++# Split the substitutions into bite-sized pieces for seds with ++# small command number limits, like on Digital OSF/1 and HP-UX. ++ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. ++ac_file=1 # Number of current file. ++ac_beg=1 # First line for current file. ++ac_end=$ac_max_sed_cmds # Line after last line for current file. ++ac_more_lines=: ++ac_sed_cmds="" ++while $ac_more_lines; do ++ if test $ac_beg -gt 1; then ++ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file ++ else ++ sed "${ac_end}q" conftest.subs > conftest.s$ac_file ++ fi ++ if test ! -s conftest.s$ac_file; then ++ ac_more_lines=false ++ rm -f conftest.s$ac_file ++ else ++ if test -z "$ac_sed_cmds"; then ++ ac_sed_cmds="sed -f conftest.s$ac_file" ++ else ++ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" ++ fi ++ ac_file=`expr $ac_file + 1` ++ ac_beg=$ac_end ++ ac_end=`expr $ac_end + $ac_max_sed_cmds` ++ fi ++done ++if test -z "$ac_sed_cmds"; then ++ ac_sed_cmds=cat ++fi ++EOF ++ ++cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF ++for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then ++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". ++ case "$ac_file" in ++ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ++ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; ++ *) ac_file_in="${ac_file}.in" ;; ++ esac ++ ++ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. ++ ++ # Remove last slash and all that follows it. Not all systems have dirname. ++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` ++ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then ++ # The file is in a subdirectory. ++ test ! -d "$ac_dir" && mkdir "$ac_dir" ++ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" ++ # A "../" for each directory in $ac_dir_suffix. ++ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` ++ else ++ ac_dir_suffix= ac_dots= ++ fi ++ ++ case "$ac_given_srcdir" in ++ .) srcdir=. ++ if test -z "$ac_dots"; then top_srcdir=. ++ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; ++ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; ++ *) # Relative path. ++ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" ++ top_srcdir="$ac_dots$ac_given_srcdir" ;; ++ esac ++ ++ case "$ac_given_INSTALL" in ++ [/$]*) INSTALL="$ac_given_INSTALL" ;; ++ *) INSTALL="$ac_dots$ac_given_INSTALL" ;; ++ esac ++ ++ echo creating "$ac_file" ++ rm -f "$ac_file" ++ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." ++ case "$ac_file" in ++ *Makefile*) ac_comsub="1i\\ ++# $configure_input" ;; ++ *) ac_comsub= ;; ++ esac ++ ++ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` ++ sed -e "$ac_comsub ++s%@configure_input@%$configure_input%g ++s%@srcdir@%$srcdir%g ++s%@top_srcdir@%$top_srcdir%g ++s%@INSTALL@%$INSTALL%g ++" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file ++fi; done ++rm -f conftest.s* ++ ++# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where ++# NAME is the cpp macro being defined and VALUE is the value it is being given. ++# ++# ac_d sets the value in "#define NAME VALUE" lines. ++ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' ++ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' ++ac_dC='\3' ++ac_dD='%g' ++# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". ++ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_uB='\([ ]\)%\1#\2define\3' ++ac_uC=' ' ++ac_uD='\4%g' ++# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ++ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_eB='$%\1#\2define\3' ++ac_eC=' ' ++ac_eD='%g' ++ ++if test "${CONFIG_HEADERS+set}" != set; then ++EOF ++cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF ++fi ++for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then ++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". ++ case "$ac_file" in ++ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ++ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; ++ *) ac_file_in="${ac_file}.in" ;; ++ esac ++ ++ echo creating $ac_file ++ ++ rm -f conftest.frag conftest.in conftest.out ++ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` ++ cat $ac_file_inputs > conftest.in ++ ++EOF ++ ++# Transform confdefs.h into a sed script conftest.vals that substitutes ++# the proper values into config.h.in to produce config.h. And first: ++# Protect against being on the right side of a sed subst in config.status. ++# Protect against being in an unquoted here document in config.status. ++rm -f conftest.vals ++cat > conftest.hdr <<\EOF ++s/[\\&%]/\\&/g ++s%[\\$`]%\\&%g ++s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp ++s%ac_d%ac_u%gp ++s%ac_u%ac_e%gp ++EOF ++sed -n -f conftest.hdr confdefs.h > conftest.vals ++rm -f conftest.hdr ++ ++# This sed command replaces #undef with comments. This is necessary, for ++# example, in the case of _POSIX_SOURCE, which is predefined and required ++# on some systems where configure will not decide to define it. ++cat >> conftest.vals <<\EOF ++s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% ++EOF ++ ++# Break up conftest.vals because some shells have a limit on ++# the size of here documents, and old seds have small limits too. ++ ++rm -f conftest.tail ++while : ++do ++ ac_lines=`grep -c . conftest.vals` ++ # grep -c gives empty output for an empty file on some AIX systems. ++ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi ++ # Write a limited-size here document to conftest.frag. ++ echo ' cat > conftest.frag <> $CONFIG_STATUS ++ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS ++ echo 'CEOF ++ sed -f conftest.frag conftest.in > conftest.out ++ rm -f conftest.in ++ mv conftest.out conftest.in ++' >> $CONFIG_STATUS ++ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail ++ rm -f conftest.vals ++ mv conftest.tail conftest.vals ++done ++rm -f conftest.vals ++ ++cat >> $CONFIG_STATUS <<\EOF ++ rm -f conftest.frag conftest.h ++ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h ++ cat conftest.in >> conftest.h ++ rm -f conftest.in ++ if cmp -s $ac_file conftest.h 2>/dev/null; then ++ echo "$ac_file is unchanged" ++ rm -f conftest.h ++ else ++ # Remove last slash and all that follows it. Not all systems have dirname. ++ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` ++ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then ++ # The file is in a subdirectory. ++ test ! -d "$ac_dir" && mkdir "$ac_dir" ++ fi ++ rm -f $ac_file ++ mv conftest.h $ac_file ++ fi ++fi; done ++ ++EOF ++cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF ++test -z "$CONFIG_HEADERS" || echo timestamp > metamail/stamp-h ++ ++ if test -n "$CONFIG_FILES" && test -n "$CONFIG_HEADERS"; then ++ # If both these vars are non-empty, then config.status wasn't run by ++ # automake rules (which always set one or the other to empty). ++ CONFIG_OTHER=${CONFIG_OTHER-METAMAIL/common.h} ++ fi ++ case "$CONFIG_OTHER" in ++ *metamail/common.h*) ++ outfile=metamail/common.h ++ stampfile=metamail/stamp-common ++ tmpfile=${outfile}T ++ dirname="sed s,^.*/,,g" ++ ++ echo creating $outfile ++ cat > $tmpfile << _EOF_ ++/* -*- Mode: C -*- ++ * -------------------------------------------------------------------- ++ * DO NOT EDIT THIS FILE! It has been automatically generated ++ * from: configure.in and `echo $outfile|$dirname`.in ++ * on host: `(hostname || uname -n) 2>/dev/null | sed 1q` ++ * -------------------------------------------------------------------- ++ */ ++ ++#ifndef METAMAIL_COMMON_H ++#define METAMAIL_COMMON_H 1 ++ ++#include ++#include // ??? ok here ++#include ++#include // ??? ok here ++ ++// ??? following ok here without check? ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++_EOF_ ++ ++ case "${host}" in ++ *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' ++ ++#include ++ ++_EOF_ ++;; ++ esac ++ ++# @end 5 ++# @start 4 ++ # Add the code to include these headers only if autoconf has ++ # shown them to be present. ++ if test x$ac_cv_header_stdlib_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ if test x$ac_cv_header_unistd_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ if test x$ac_cv_header_sys_wait_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ if test x$ac_cv_header_errno_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ cat >> $tmpfile << '_EOF_' ++ ++#ifndef errno ++/* Some sytems #define this! */ ++extern int errno; ++#endif ++ ++_EOF_ ++ if test x$ac_cv_header_string_h = xyes; then ++ echo '#include ' >> $tmpfile ++ elif test x$ac_cv_header_strings_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ ++# ******************* ++# start variadic parameters ++# ++ if test x$ac_cv_header_stdarg_h = xyes \ ++ && test x$ac_cv_header_varargs_h != xyes ++ then ++ cat >> $tmpfile << '_EOF_' ++ ++#include ++#ifndef VA_START ++# define VA_START(a, f) va_start(a, f) ++#endif /* VA_START */ ++ ++_EOF_ ++ else ++ cat >> $tmpfile << '_EOF_' ++ ++#include ++#ifndef VA_START ++# define VA_START(a, f) va_start(a) ++#endif /* VA_START */ ++ ++_EOF_ ++ fi ++# ++# end variadic parameters ++# *********************** ++ ++ if test x$ac_cv_header_assert_h = xyes; then ++ cat >> $tmpfile << '_EOF_' ++ ++#include ++#define METAMAIL_ASSERT assert ++ ++_EOF_ ++else ++ echo '#define METAMAIL_ASSERT(expr) ((void) 0)' >> $tmpfile ++ fi ++# @end 4 ++# @start 5 ++ if test x$ac_cv_func_killpg = xno && \ ++ test x$ac_cv_func_kill = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define killbg(pid, sig) ((int) kill (-(pid), sig)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bcopy = xno && \ ++ test x$ac_cv_func_memcpy = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define bcopy(src, dest, n) ((void) memcpy (dest, src, n)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bzero = xno && \ ++ test x$ac_cv_func_memset = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define bzero(buf, bytes) ((void) memset (buf, 0, bytes)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bcmp = xno && \ ++ test x$ac_cv_func_memcmp = xyes; then ++ echo '#define bcmp memcmp' >> $tmpfile ++ fi ++ if test x$ac_cv_func_index = xno && \ ++ test x$ac_cv_func_strchr = xyes; then ++ echo '#define index strchr' >> $tmpfile ++ fi ++ if test x$ac_cv_func_rindex = xno && \ ++ test x$ac_cv_func_strrchr = xyes; then ++ echo '#define rindex strrchr' >> $tmpfile ++ fi ++ if test x$ac_cv_func_initstate = xno && \ ++ test x$ac_cv_func_srand = xyes; then ++ echo '#define initstate srand' >> $tmpfile ++ fi ++ if test x$ac_cv_func_random = xno && \ ++ test x$ac_cv_func_rand = xyes; then ++ echo '#define random rand' >> $tmpfile ++ fi ++ ++ # The ugly but portable cpp stuff comes from here ++ infile=$srcdir/metamail/`echo $outfile | sed 's,.*/,,g;s,\..*$,,g'`-h.in ++ sed '/^##.*$/d' $infile >> $tmpfile ++ ++# @end 5 ++ ${RM-/bin/rm -f} ${tmpfile}2 2>/dev/null ++ if test x$ac_cv_func_basename = xno; then ++ echo 'extern char *basename PARAMS((const char *path));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_strerror = xno; then ++ echo 'extern char *strerror PARAMS((int err));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_strsignal = xno; then ++ echo 'extern char *strsignal PARAMS((int signo));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_vfprintf = xno; then ++ echo 'extern int vfprintf PARAMS((FILE *file, const char* format, va_list ap));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_waitpid = xno; then ++ echo 'extern pid_t waitpid PARAMS((pid_t pid, int *pstatus, int options));' >> ${tmpfile}2 ++ fi ++ ++ if test -f ${tmpfile}2; then ++ cat >> $tmpfile << '_EOF_' ++ ++BEGIN_C_DECLS ++_EOF_ ++ cat ${tmpfile}2 >> $tmpfile ++ echo 'END_C_DECLS' >> $tmpfile ++ ${RM-/bin/rm -f} ${tmpfile}2 2>/dev/null ++ fi ++ ++ if test -n ${LPRCOMMAND}; then ++ echo '#define LPRCOMMAND "'${LPRCOMMAND}'"' >> $tmpfile ++ echo '#define LPRTEMPLATE "'${LPRCOMMAND}' %s"' >> $tmpfile ++ fi ++ if test -n ${CATCOMMAND}; then ++ echo '#define CATCOMMAND "'${CATCOMMAND}'"' >> $tmpfile ++ echo '#define CATTEMPLATE "'${CATCOMMAND}' %s"' >> $tmpfile ++ fi ++ ++ case "${host}" in ++ *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' ++#define TMPNAME_MAX NAME_MAX ++static struct termio MyTtyStateIn, MyTtyStateOut; ++ ++_EOF_ ++;; ++ *) cat >> $tmpfile << '_EOF_' ++ ++#define TMPNAME_MAX 1000 ++#define NAME_MAX 1000 ++static struct sgttyb MyTtyStateIn, MyTtyStateOut; ++ ++_EOF_ ++;; ++ esac ++ ++ cat >> $tmpfile << '_EOF_' ++ ++ ++#endif /* !METAMAIL_COMMON_H */ ++_EOF_ ++ ++ if cmp -s $tmpfile $outfile; then ++ echo $outfile is unchanged ++ rm -f $tmpfile ++ else ++ mv $tmpfile $outfile ++ touch $stampfile ++ fi ++ ;; ++ esac ++# @start 5 ++ ++test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h.in ++exit 0 ++EOF ++chmod +x $CONFIG_STATUS ++rm -fr confdefs* $ac_clean_files ++test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 ++ +--- metamail-2.7.orig/configure.in ++++ metamail-2.7/configure.in +@@ -0,0 +1,361 @@ ++dnl Process this file with autoconf to produce a configure script. ++dnl AC_REVISION($Revision: 1.4 $)dnl ++AC_INIT(src/metamail/metamail.c) ++AC_CONFIG_AUX_DIR(config) ++AM_CONFIG_HEADER(metamail/config.h) ++AM_INIT_AUTOMAKE(metamail, 0.0.1) ++AM_MAINTAINER_MODE ++ ++AC_CANONICAL_HOST ++ ++dnl Checks for programs. ++AC_PROG_CC ++AM_PROG_LIBTOOL ++AC_SUBST(LIBTOOL_DEPS) ++ ++AC_CHECK_PROG(LPRCOMMAND, lp, lp) ++AC_CHECK_PROG(LPRCOMMAND, lpr, lpr) ++ ++AC_CHECK_PROG(CATCOMMAND, cat, cat) ++AC_CHECK_PROG(CATCOMMAND, type, type) ++ ++ ++dnl Checks for libraries. ++ ++dnl Checks for header files. ++dnl varargscheck ? ++dnl AC_HEADER_STDC ++AC_CHECK_HEADERS(stdlib.h unistd.h errno.h assert.h) ++AC_CHECK_HEADERS(sys/time.h time.h signal.h) ++AC_CHECK_HEADERS(string.h strings.h, break) ++ ++# @start variadic ++case $am_cv_prog_cc_stdc,$ac_cv_header_varargs_h in ++no,) ++ # Non-ANSI compiler, so we must use varargs.h. ++ AC_CHECK_HEADERS(varargs.h) ++ ;; ++*,yes) ++ # Parent package is using varargs.h which is incompatible with ++ # stdarg.h, so we do the same (recheck to generate checking... ++ # message). ++ AC_CHECK_HEADERS(varargs.h) ++ ;; ++*) ++ # If stdarg.h is present define HAVE_STDARG_H. ++ AC_CHECK_HEADERS(stdarg.h) ++ ;; ++esac ++ ++case x$ac_cv_header_stdarg_h$ac_cv_header_varargs_h in ++x*yes*) ;; ++*) AC_MSG_ERROR(Could not find stdarg.h or varargs.h, one of which is \ ++required for the build process.) ;; ++esac ++# @end variadic ++ ++dnl Checks for typedefs, structures, and compiler characteristics. ++AC_C_CONST ++AC_TYPE_SIZE_T ++AC_HEADER_TIME ++ ++dnl Checks for library functions. ++dnl bzero is ok, ++AC_CHECK_FUNCS(killpg kill) ++AC_CHECK_FUNCS(bcopy memcpy) ++AC_CHECK_FUNCS(bzero memset, break) ++AC_CHECK_FUNCS(bcmp memcmp) ++AC_CHECK_FUNCS(index strchr) ++AC_CHECK_FUNCS(rindex strrchr) ++AC_CHECK_FUNCS(initstate srand) ++AC_CHECK_FUNCS(random rand) ++ ++AC_CHECK_FUNCS(calloc) ++AC_REPLACE_FUNCS(basename strerror vfprintf) ++AC_REPLACE_FUNCS(putenv) ++ ++dnl ***************************************** ++dnl create a metamail common header file, holding all needed definitions ++dnl for copatiblity ++AC_OUTPUT_COMMANDS([ ++ if test -n "$CONFIG_FILES" && test -n "$CONFIG_HEADERS"; then ++ # If both these vars are non-empty, then config.status wasn't run by ++ # automake rules (which always set one or the other to empty). ++ CONFIG_OTHER=${CONFIG_OTHER-METAMAIL/common.h} ++ fi ++ case "$CONFIG_OTHER" in ++ *metamail/common.h*) ++ outfile=metamail/common.h ++ stampfile=metamail/stamp-common ++ tmpfile=${outfile}T ++ dirname="sed s,^.*/,,g" ++ ++ echo creating $outfile ++ cat > $tmpfile << _EOF_ ++/* -*- Mode: C -*- ++ * -------------------------------------------------------------------- ++ * DO NOT EDIT THIS FILE! It has been automatically generated ++ * from: configure.in and `echo $outfile|$dirname`.in ++ * on host: `(hostname || uname -n) 2>/dev/null | sed 1q` ++ * -------------------------------------------------------------------- ++ */ ++ ++#ifndef METAMAIL_COMMON_H ++#define METAMAIL_COMMON_H 1 ++ ++#include ++#include // ??? ok here ++#include ++#include // ??? ok here ++ ++// ??? following ok here without check? ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++_EOF_ ++ ++ case "${host}" in ++ *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' ++ ++#include ++ ++_EOF_ ++;; ++ esac ++ ++# @end 5 ++# @start 4 ++ # Add the code to include these headers only if autoconf has ++ # shown them to be present. ++ if test x$ac_cv_header_stdlib_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ if test x$ac_cv_header_unistd_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ if test x$ac_cv_header_sys_wait_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ if test x$ac_cv_header_errno_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ cat >> $tmpfile << '_EOF_' ++ ++#ifndef errno ++/* Some sytems #define this! */ ++extern int errno; ++#endif ++ ++_EOF_ ++ if test x$ac_cv_header_string_h = xyes; then ++ echo '#include ' >> $tmpfile ++ elif test x$ac_cv_header_strings_h = xyes; then ++ echo '#include ' >> $tmpfile ++ fi ++ ++# ******************* ++# start variadic parameters ++# ++ if test x$ac_cv_header_stdarg_h = xyes \ ++ && test x$ac_cv_header_varargs_h != xyes ++ then ++ cat >> $tmpfile << '_EOF_' ++ ++#include ++#ifndef VA_START ++# define VA_START(a, f) va_start(a, f) ++#endif /* VA_START */ ++ ++_EOF_ ++ else ++ cat >> $tmpfile << '_EOF_' ++ ++#include ++#ifndef VA_START ++# define VA_START(a, f) va_start(a) ++#endif /* VA_START */ ++ ++_EOF_ ++ fi ++# ++# end variadic parameters ++# *********************** ++ ++ if test x$ac_cv_header_assert_h = xyes; then ++ cat >> $tmpfile << '_EOF_' ++ ++#include ++#define METAMAIL_ASSERT assert ++ ++_EOF_ ++else ++ echo '#define METAMAIL_ASSERT(expr) ((void) 0)' >> $tmpfile ++ fi ++# @end 4 ++# @start 5 ++ if test x$ac_cv_func_killpg = xno && \ ++ test x$ac_cv_func_kill = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define killbg(pid, sig) ((int) kill (-(pid), sig)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bcopy = xno && \ ++ test x$ac_cv_func_memcpy = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define bcopy(src, dest, n) ((void) memcpy (dest, src, n)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bzero = xno && \ ++ test x$ac_cv_func_memset = xyes; then ++ cat >> $tmpfile << '_EOF_' ++#define bzero(buf, bytes) ((void) memset (buf, 0, bytes)) ++_EOF_ ++ fi ++ if test x$ac_cv_func_bcmp = xno && \ ++ test x$ac_cv_func_memcmp = xyes; then ++ echo '#define bcmp memcmp' >> $tmpfile ++ fi ++ if test x$ac_cv_func_index = xno && \ ++ test x$ac_cv_func_strchr = xyes; then ++ echo '#define index strchr' >> $tmpfile ++ fi ++ if test x$ac_cv_func_rindex = xno && \ ++ test x$ac_cv_func_strrchr = xyes; then ++ echo '#define rindex strrchr' >> $tmpfile ++ fi ++ if test x$ac_cv_func_initstate = xno && \ ++ test x$ac_cv_func_srand = xyes; then ++ echo '#define initstate srand' >> $tmpfile ++ fi ++ if test x$ac_cv_func_random = xno && \ ++ test x$ac_cv_func_rand = xyes; then ++ echo '#define random rand' >> $tmpfile ++ fi ++ ++ # The ugly but portable cpp stuff comes from here ++ infile=$srcdir/metamail/`echo $outfile | sed 's,.*/,,g;s,\..*$,,g'`-h.in ++ sed '/^##.*$/d' $infile >> $tmpfile ++ ++# @end 5 ++ ${RM-/bin/rm -f} ${tmpfile}2 2>/dev/null ++ if test x$ac_cv_func_basename = xno; then ++ echo 'extern char *basename PARAMS((const char *path));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_strerror = xno; then ++ echo 'extern char *strerror PARAMS((int err));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_strsignal = xno; then ++ echo 'extern char *strsignal PARAMS((int signo));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_vfprintf = xno; then ++ echo 'extern int vfprintf PARAMS((FILE *file, const char* format, va_list ap));' >> ${tmpfile}2 ++ fi ++ if test x$ac_cv_func_waitpid = xno; then ++ echo 'extern pid_t waitpid PARAMS((pid_t pid, int *pstatus, int options));' >> ${tmpfile}2 ++ fi ++ ++ if test -f ${tmpfile}2; then ++ cat >> $tmpfile << '_EOF_' ++ ++BEGIN_C_DECLS ++_EOF_ ++ cat ${tmpfile}2 >> $tmpfile ++ echo 'END_C_DECLS' >> $tmpfile ++ ${RM-/bin/rm -f} ${tmpfile}2 2>/dev/null ++ fi ++ ++ if test -n ${LPRCOMMAND}; then ++ echo '#define LPRCOMMAND "'${LPRCOMMAND}'"' >> $tmpfile ++ echo '#define LPRTEMPLATE "'${LPRCOMMAND}' %s"' >> $tmpfile ++ fi ++ if test -n ${CATCOMMAND}; then ++ echo '#define CATCOMMAND "'${CATCOMMAND}'"' >> $tmpfile ++ echo '#define CATTEMPLATE "'${CATCOMMAND}' %s"' >> $tmpfile ++ fi ++ ++ case "${host}" in ++ *-*-linux-gnu*) cat >> $tmpfile << '_EOF_' ++#define TMPNAME_MAX NAME_MAX ++static struct termio MyTtyStateIn, MyTtyStateOut; ++ ++_EOF_ ++;; ++ *) cat >> $tmpfile << '_EOF_' ++ ++#define TMPNAME_MAX 1000 ++#define NAME_MAX 1000 ++static struct sgttyb MyTtyStateIn, MyTtyStateOut; ++ ++_EOF_ ++;; ++ esac ++ ++ cat >> $tmpfile << '_EOF_' ++ ++ ++#endif /* !METAMAIL_COMMON_H */ ++_EOF_ ++ ++ if cmp -s $tmpfile $outfile; then ++ echo $outfile is unchanged ++ rm -f $tmpfile ++ else ++ mv $tmpfile $outfile ++ touch $stampfile ++ fi ++ ;; ++ esac ++# @start 5 ++],[ ++ srcdir=$srcdir ++ ac_cv_func_bzero=$ac_cv_func_bzero ++ ac_cv_func_memset=$ac_cv_func_memset ++ ac_cv_func_strchr=$ac_cv_func_strchr ++ ac_cv_func_strrchr=$ac_cv_func_strrchr ++# @end 5 ++ ac_cv_func_basename=$ac_cv_func_basename ++ ac_cv_func_strcspn=$ac_cv_func_strcspn ++ ac_cv_func_strerror=$ac_cv_func_strerror ++ ac_cv_func_strsignal=$ac_cv_func_strsignal ++ ac_cv_func_strspn=$ac_cv_func_strspn ++ ac_cv_func_vfprintf=$ac_cv_func_vfprintf ++ ac_cv_func_waitpid=$ac_cv_func_waitpid ++ ac_cv_header_assert_h=$ac_cv_header_assert_h ++ ac_cv_header_errno_h=$ac_cv_header_errno_h ++ ac_cv_header_stdlib_h=$ac_cv_header_stdlib_h ++ ac_cv_header_stdarg_h=$ac_cv_header_stdarg_h ++ ac_cv_header_string_h=$ac_cv_header_string_h ++ ac_cv_header_strings_h=$ac_cv_header_strings_h ++ ac_cv_header_sys_wait_h=$ac_cv_header_sys_wait_h ++ ac_cv_header_unistd_h=$ac_cv_header_unistd_h ++ ac_cv_header_varargs_h=$ac_cv_header_varargs_h ++ LPRCOMMAND=$LPRCOMMAND ++ CATCOMMAND=$CATCOMMAND ++ host=$host ++# @start 5 ++]) ++# @end 5 ++# @start 1 ++ ++dnl ***************************************** ++dnl export of variable settings for Makefiles ++ ++dnl for libtool to work LTLIBOJS is needed (currently bug of autoconf) ++Xsed="sed -e s/^X//" ++LTLIBOBJS=`echo X"$LIBOBJS"|[$Xsed -e "s,\.[^.]* ,.lo ,g;s,\.[^.]*$,.lo,"]` ++AC_SUBST(LTLIBOBJS) ++ ++dnl the aux dir (for holding config & autodenerated stuff) ++AC_SUBST(ac_aux_dir) ++AC_SUBST(LPRCOMMAND) ++AC_SUBST(CATCOMMAND) ++ ++AC_OUTPUT([Makefile replace/Makefile metamail/Makefile src/Makefile \ ++ src/metamail/Makefile src/richmail/Makefile bin/Makefile], ++[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h.in]) +--- metamail-2.7.orig/debian/mimeit.1 ++++ metamail-2.7/debian/mimeit.1 +@@ -0,0 +1,28 @@ ++.TH MIMEIT 1 "1998 March 1st" "METAMAIL" "Debian Linux Manual" ++.SH NAME ++mimeit \- base64-encode stdin and mail it ++.SH SYNOPSIS ++.B mimeit ++.I content-type recipient subject ++.RI [ splitmail-options ] ++.SH "DESCRIPTION" ++This manual page documents briefly the ++.B mimeit ++command. ++This manual page was written for the ++.B Debian GNU/Linux ++distribution (but may be used by others), because the original ++program does not have a manual page. ++.PP ++.B mimeit ++base64-encodes the message read from stdin and sends it off ++using ++.BR splitmail (1). ++It will pass all but the first three parameters to \fBsplitmail\fR(1). ++.SH AUTHOR ++.B mimeit ++is part of metamail package. Manual page added by Herbert Xu ++and fixed by Michael Moerz . ++.SH SEE ALSO ++.PP ++\fBMIME\fR(1), \fBsplitmail\fR(1), \fBmunpack\fR(1), \fBmetamail\fR(1) +--- metamail-2.7.orig/debian/mime ++++ metamail-2.7/debian/mime +@@ -0,0 +1,7 @@ ++text/plain; shownonascii iso-8859-1 %s; description="Plain ASCII Text"; test=test "$(echo %{charset} | tr "[A-Z]" "[a-z]")" = iso-8859-1 -a "$DISPLAY" != "" ++text/richtext; richtext %s; description="Richtext"; copiousoutput; priority=4 ++text/richtext; shownonascii iso-8859-1 -e richtext -p %s; description="Richtext"; copiousoutput; test=test "$(echo %{charset} | tr "[A-Z]" "[a-z]")" = iso-8859-1 -a "$DISPLAY" != "" ++text/enriched; richtext -e %s; description="Enriched Text"; copiousoutput; priority=4 ++text/enriched; shownonascii iso-8859-1 -e richtext -e -p %s; description="Enriched Text"; copiousoutput; test=test "$(echo %{charset} | tr "[A-Z]" "[a-z]")" = iso-8859-1 -a "$DISPLAY" != "" ++message/partial; showpartial %s %{id} %{number} %{total}; description="An incomplete message" ++message/external-body; showexternal %s %{access-type} %{name} %{site} %{directory} %{mode} %{server}; needsterminal; description="A reference to data stored in an external location"; composetyped="extcompose %s" +--- metamail-2.7.orig/debian/changelog ++++ metamail-2.7/debian/changelog +@@ -0,0 +1,435 @@ ++metamail (2.7-52) unstable; urgency=low ++ ++ * QA Group upload. ++ * Set Standards-Version to 3.7.2. ++ * Set DH_COMPAT to 5. ++ * Fixed "Does not provide filenames for attachments", closes: ++ #321968. Patch by Immanuel Halupczok . ++ * Fixed "dumps core with -w option", closes: #357163. ++ Patch by Justin Pryzby . ++ ++ -- Anibal Monsalve Salazar Wed, 19 Jul 2006 12:53:40 +1000 ++ ++metamail (2.7-51) unstable; urgency=high ++ ++ * QA upload. ++ * Fixed "[CVE-2006-0709] crashes with very long boundaries in ++ messages", closes: #352482, #353539. Patch thanks to ++ Ulf Harnhammar . ++ ++ -- Anibal Monsalve Salazar Thu, 23 Feb 2006 09:17:36 +1100 ++ ++metamail (2.7-50) unstable; urgency=low ++ ++ * QA upload. ++ * Automatically update config.sub and config.guess from autotools-dev. ++ Closes: #338566. ++ * man/metamail.1: Fix search path formatting. ++ ++ -- Matej Vela Fri, 11 Nov 2005 07:42:03 +0100 ++ ++metamail (2.7-49) unstable; urgency=low ++ ++ * QA upload. ++ * bin/uuenpipe, bin/uudepipe: Properly handle unreadable files, ++ filenames beginning with "-", and filenames containing whitespace. ++ (These scripts were not meant to take options.) Closes: #273195. ++ * src/metamail/mailto.c (GetLineMalloced): Fix segfault caused by ++ freeing static storage. Closes: #300756. ++ * man/metamail.1: Document the -E option. Closes: #177823. ++ * man/richtext.1: Document the -e option. Closes: #296120. ++ * Conforms to Standards version 3.6.2. ++ ++ -- Matej Vela Fri, 19 Aug 2005 11:25:02 +0200 ++ ++metamail (2.7-48) unstable; urgency=low ++ ++ * QA Group upload by Javier Fernandez-Sanguino ++ * Fix typos in manpages with patches provided by A Costa (Closes: #311450, ++ #311451, #311452, #311453) ++ * Fix use of temporary files in showpartial so that uses cannot introduce ++ a DOS through the use of hard links. Temporary files are created with ++ mktemp and their filename is stored in ~/.metamail_treeroot (Closes: ++ #321473) ++ ++ -- Javier Fernandez-Sanguino Pen~a Wed, 17 Aug 2005 00:17:20 +0200 ++ ++metamail (2.7-47) unstable; urgency=low ++ ++ * QA Group upload by Anibal Monsalve Salazar. ++ * Fixed "Add/Improve SEE ALSO section for splitmail/mimeit" (Closes: ++ #245647). Patch by Helge Kreutzmann . ++ * Fixed "8-bit encoding is supported by metamail but not by metasend script" ++ (Closes: #285914). Patch by Sergey Kogan . ++ * Fixed "additional option when handling unrecognized content types" ++ (Closes: #249823). Patch by Daniel Kraft . ++ * Fixed "debug message 'pre access' left in released version ++ (Closes: #184410). Patch by . ++ ++ -- Anibal Monsalve Salazar Sun, 13 Feb 2005 10:43:55 +1100 ++ ++metamail (2.7-46) unstable; urgency=low ++ ++ * QA Group upload orphaning this package ++ * Incorporates previous NMUs (closes: #164074, #185005, #233935) ++ * debian/control: make build-dependency on debhelper versioned ++ ++ -- Andrew Pollock Tue, 9 Nov 2004 22:14:08 +1100 ++ ++metamail (2.7-45.3) unstable; urgency=medium ++ ++ * Non-maintainer upload by the Security Team ++ * Adjust the patch since Christian 'Naddy' Weisgerber discovered an ++ overzealous use of sizeof(). ++ ++ -- Martin Schulze Tue, 2 Mar 2004 20:08:51 +0100 ++ ++metamail (2.7-45.2) unstable; urgency=high ++ ++ * NMU ++ * [src/metamail/metamail.c, src/metamail/splitmail.c] Address CAN-2004-0104 ++ and CAN-2004-0105 (format string vulnerabilities and buffer overflows). ++ (Addresses #233640 for sid) ++ * [bin/audiocompose] Quote file reference. ++ * [metamail/splitmail.c] Use /usr/sbin/sendmail rather than ++ /usr/lib/sendmail. ++ ++ -- J.H.M. Dassen (Ray) Fri, 20 Feb 2004 21:22:16 +0100 ++ ++metamail (2.7-45.1) unstable; urgency=low ++ ++ * NMU ++ * Fixed FTBFS: (Closes: #164074) ++ * [configure.in] Added AM_MAINTAINER_MODE. ++ * [debian/rules] Introduced "source-updates" target. ++ * [debian/control] Dropped "libtool" and "automake" build dependencies. ++ * Regenerated auto* files. ++ * [bin/audiosend] Fixed shell syntax by adding a 'then'. ++ * [debian/control] Removed full stop from the one line description. ++ ++ -- J.H.M. Dassen (Ray) Sun, 16 Mar 2003 13:38:42 +0100 ++ ++metamail (2.7-45) unstable; urgency=low ++ ++ * eliminated nasty tmpfile bug that caused removal of temporary files ++ though they were in use by processes that have been backgrounded by ++ metamail. (Closes: #141966) ++ ++ -- Michael Moerz Mon, 15 Apr 2002 11:07:17 +0200 ++ ++metamail (2.7-44) unstable; urgency=low ++ ++ * renamed mmencode reference from metamail manpage to mimencode ++ (Closes: #137347) ++ * removed mailcap manpage from metamail package so that can go into ++ the mime-support package (Closes: #139989) ++ ++ -- Michael Moerz Wed, 3 Apr 2002 02:24:53 +0200 ++ ++metamail (2.7-43) unstable; urgency=low ++ ++ * fixed 64bit architecture problems caused by missing prototypes of ++ functions. The actual pactch was developed by ++ John R.Daily" (Closes: #126109) ++ * fixed usage message of mimencode by using a patch supplied by ++ David Fries (Closes: #119075) ++ ++ -- Michael Moerz Sat, 22 Dec 2001 00:35:19 +0100 ++ ++metamail (2.7-42) unstable; urgency=low ++ ++ * fixed bug that caused mailto to honour newlines incorrectly when ++ mimetypes are asked for and checked. ++ ++ -- Michael Moerz Mon, 15 Oct 2001 22:11:35 +0200 ++ ++metamail (2.7-41) unstable; urgency=low ++ ++ * fixed a minor bug regarding the man page of metamail saying /usr/ucb/reset ++ and not /usr/bin/reset (Closes: #110889) ++ * fixed broken showpartial (Closes: #107538) ++ ++ -- Michael Moerz Sat, 1 Sep 2001 20:32:01 +0200 ++ ++metamail (2.7-40) unstable; urgency=low ++ ++ * Removed non functional downwards compatiblity code for older ++ mime-support which called install-mime when the previous metamail ++ version was less than 2-7.34. (Closes: #100993) ++ * hardened dependency to mime-support (version 3.11-1 or higher has ++ to be installed now) ++ ++ -- Michael Moerz Sat, 16 Jun 2001 13:48:12 +0200 ++ ++metamail (2.7-39) unstable; urgency=low ++ ++ * fixed a bug that created a segfault when saving an attachment. ++ (Closes: #88766) ++ ++ -- Michael Moerz Tue, 20 Mar 2001 20:52:20 +0100 ++ ++metamail (2.7-38) unstable; urgency=low ++ ++ * stupid me has again missed a build depends for libncurses-dev. ++ This is fixed now. (Closes: #86559) ++ ++ -- Michael Moerz Sun, 25 Feb 2001 17:05:45 +0100 ++ ++metamail (2.7-37) unstable; urgency=low ++ ++ * Fixed broken build caused by not using a shell for interpreting ++ the bootstrap script (Closes: #85764). ++ * changed rules file so that not only the existence of Makefile ++ is checked, but of Makefile.in too and the decision is made ++ to use make clean or make destclean (Makefile.in present). ++ * fixed build depends to enlist libtool & automake too. ++ (Closes: #86128) ++ * fixed disappearing of mimencode (Closes: #86083) ++ ++ -- Michael Moerz Tue, 13 Feb 2001 14:08:20 +0100 ++ ++metamail (2.7-36) unstable; urgency=low ++ ++ * Fixed broken showpartial where a variable was not set correctly ++ (nullified) and that caused that showpartial didn't work. ++ (Closes: #58614) ++ * Fixed mimeit manpage refering to mm package instead of metamail ++ (Closes: #63033) ++ * added a README.Debian pointing out the debian specific ++ modifications to the package ++ * Fixed the leaving tmp-files behind bug. So now metamail removes ++ all files it generates in /tmp before it terminates. ++ (Closes: #39011) ++ * DH_COMPAT=2 is now in place and functional ++ * converted build-process and .c and .h files to use autoconf and ++ automake. (Now the package will build under woody again.) ++ ++ -- Michael Moerz Thu, 18 Jan 2001 04:26:05 +0100 ++ ++metamail (2.7-35) unstable; urgency=low ++ ++ * Fixed a typo in metasend that resulted in Content-Description ++ being blank when -n wasn't set. (Closes: #70761) ++ ++ -- Teemu Hukkanen Sun, 10 Sep 2000 21:58:00 +0300 ++ ++metamail (2.7-34) frozen unstable; urgency=low ++ ++ * The install-all target tried to strip shell scripts, plus several ++ additional flaws, which prevented building, closes: #55260. ++ * Updated for newer mime-support, closes: #47097. Downgraded ++ mime-support dependency to a recommendation, and removed useless ++ version (as the new scheme is used, and 2.02-1 is too old for it). ++ * Updated for Policy 3.1.1. ++ ++ -- Josip Rodin Tue, 8 Feb 2000 21:15:19 +0100 ++ ++metamail (2.7-33) unstable; urgency=low ++ ++ * Orphaning metamail. ++ ++ -- Herbert Xu Sat, 20 Nov 1999 20:33:36 -0600 ++ ++metamail (2.7-32) unstable; urgency=low ++ ++ * Fixed postinst script where it didn't add mailcap entries for an initial ++ install. ++ * Don't warn about wild cards in mailcap (fixes #30910). ++ * Use $() instead of `` for command substitution (fixes #33487). ++ Note that metamail does %{} substitutions with the correct quoting. ++ Indeed, it filters out characters like ` so there is no problem even if ++ this fix were not there. But other applications that currently do not do ++ the required quoting should do so. ++ Also, all packages that add entries to mailcap should check their entries ++ and replace all `` with % substitutions inside with $() so as to avoid ++ the obscure shell rule that `` is terminated by a un-backslashed back- ++ quote. Indeed, if this back-quote occurs within single or double quotes, ++ the result is undefined. ++ ++ -- Herbert Xu Sun, 14 Mar 1999 12:58:05 +1100 ++ ++metamail (2.7-31) frozen unstable; urgency=low ++ ++ * Uploaded to slink. ++ ++ -- Herbert Xu Sun, 15 Nov 1998 15:11:52 +1100 ++ ++metamail (2.7-30) unstable; urgency=low ++ ++ * Use lpr instead of lp for linux (fixes #27259). ++ * Removed all traces of mmencode (fixes #28746). ++ * Rebuilt with libncruses4. ++ ++ -- Herbert Xu Sat, 31 Oct 1998 15:16:13 +1100 ++ ++metamail (2.7-29) unstable; urgency=medium ++ ++ * Applied security patch from Topi Miettinen (fixes #26877). ++ ++ -- Herbert Xu Tue, 22 Sep 1998 14:29:27 +1000 ++ ++metamail (2.7-28) frozen unstable; urgency=high ++ ++ * Fixed showpartial (fixes #23595). ++ ++ -- Herbert Xu Thu, 18 Jun 1998 09:41:50 +1000 ++ ++metamail (2.7-27) unstable; urgency=low ++ ++ * Fixed shownonascii (fixes #19862). ++ * Manually add mimencode.1. ++ ++ -- Herbert Xu Wed, 18 Mar 1998 21:06:39 +1100 ++ ++metamail (2.7-26) unstable; urgency=low ++ ++ * Added -e to all shell scripts (fixes #19802). ++ * Removed #!/bin/sh header from mime.noinstall. ++ ++ -- Herbert Xu Tue, 17 Mar 1998 21:22:25 +1100 ++ ++metamail (2.7-25) unstable; urgency=low ++ ++ * Use sensible-pager instead of pager. ++ * Upgraded to Standard Version 2.4.0.0. ++ * Removed ++ . mailserver ++ . mailto-hebrew ++ . rcvAppSingle ++ . richtoatk ++ . sndAppSingle ++ . sun-audio-file ++ . sun-message ++ . sun-to-mime ++ . sun2mime ++ as they were either not functional or useless and without a manpage. ++ * Added manpages to mimeit, uuencode and uudecode (fixes #6332). ++ * Converted to debhelper. ++ * Moved mailcap from section 4 to section 5. ++ ++ -- Herbert Xu Mon, 2 Mar 1998 15:46:44 +1100 ++ ++metamail (2.7-24) unstable; urgency=high ++ ++ * Use tempfile for temporary files. ++ * Removed sun-message.csh. ++ ++ -- Herbert Xu Wed, 15 Oct 1997 10:29:16 +1000 ++ ++metamail (2.7-23) unstable; urgency=low ++ ++ * Fixed uudepipe (#12371). ++ ++ -- Herbert Xu Tue, 2 Sep 1997 21:37:01 +1000 ++ ++metamail (2.7-22) unstable; urgency=low ++ ++ * Recompiled with libc6. ++ * Removed recommendation of xv | xloadimage (#9706). ++ ++ -- Herbert Xu Sat, 21 Jun 1997 16:17:29 +1000 ++ ++metamail (2.7-21) stable frozen unstable; urgency=high ++ ++ * Recompiled with gcc-2.7.2.1-8. ++ ++ -- Herbert Xu Sun, 4 May 1997 23:16:22 +1000 ++ ++metamail (2.7-20) stable frozen unstable; urgency=high ++ ++ * Applyed Olaf Kirch's patch for a possible security hole. ++ * Changed all /usr/lib/sendmail to /usr/sbin/sendmail. ++ ++ -- Herbert Xu Wed, 30 Apr 1997 16:30:51 +1000 ++ ++metamail (2.7-19) unstable; urgency=low ++ ++ * Be smarter about running install-mime when upgrading (#7859). ++ * Changed links to undocumented.7 to undocumented.7.gz. ++ ++ -- Herbert Xu Mon, 10 Mar 1997 19:44:54 +1100 ++ ++metamail (2.7-18) unstable; urgency=low ++ ++ * Substitued which for whence (#7233). ++ ++ -- Herbert Xu Tue, 11 Feb 1997 17:34:39 +1100 ++ ++metamail (2.7-17) unstable; urgency=low ++ ++ * New maintainer. ++ * Changed all "RM=/bin/rm" to "RM=rm" in Makefiles. ++ * Modified debian/rules and Makefiles to use debstd. ++ * Adding undocumented links. ++ * Adding #!/bin/sh to shell scripts to help identification. ++ * Fixed bug #6104 and removed extraneous blanks in mailcap.4. ++ ++ -- Herbert Xu Wed, 15 Jan 1997 20:45:07 +1100 ++ ++metamail (2.7-16) unstable; urgency=LOW ++ ++ * Fixed postinst (Bug#5606) ++ ++ -- Michael Meskes Thu, 5 Dec 1996 14:55:23 +0100 ++ ++metamail (2.7-15) frozen unstable; urgency=MEDIUM ++ ++ * sun2mime now calls /usr/bin/nawk (Bug#5488) ++ ++ -- Michael Meskes Tue, 19 Nov 1996 09:37:17 +0100 ++ ++metamail (2.7-14) frozen unstable; urgency=MEDIUM ++ ++ * Corrected metasend (and other scripts) to not call echo-n (Bug#5397). ++ * remove echo-n from distribution ++ ++ -- Michael Meskes Wed, 13 Nov 1996 17:25:19 +0100 ++ ++metamail (2.7-13) unstable; urgency=LOW ++ ++ * Cleaned up postinst (Bug#4720). Other install-mime calls are now ++ * installed just as a doc file. ++ ++ -- Michael Meskes Sat, 12 Oct 1996 15:15:50 +0200 ++ ++metamail (2.7-12) unstable; urgency=LOW ++ ++ * Added 'Recommends: sharutils' (Bug#4616) ++ ++ -- Michael Meskes Mon, 30 Sep 1996 14:01:30 +0200 ++ ++metamail (2.7-11) unstable; urgency=LOW ++ ++ * Moved Bourne shell scripts into bin directory, so dpkg-source works. ++ * Fixed showpicture to not use a geometry ++ ++ -- Michael Meskes Sun, 29 Sep 1996 13:52:41 +0200 ++ ++metamail (2.7-10) unstable; urgency=LOW ++ ++ * Fixed that silly naming bug that caused postinst to be installed as ++ * binary in /usr/bin (bug#4425) ++ ++ -- Michael Meskes Sat, 7 Sep 1996 12:59:13 +0200 ++ ++metamail (2.7-9) unstable; urgency=LOW ++ ++ * Corrected some minor bugs in debian/ directory and adjusted debian/rules ++ * accordingly. Conversion to new packaging scheme is now completed. ++ ++ -- Michael Meskes Sun, 1 Sep 1996 11:39:03 +0200 ++ ++metamail (2.7-8) unstable; urgency=LOW ++ ++ * Corrected font name in postinst ++ * Corrected rules file to not install /usr/doc/copyright/README ++ ++ -- Michael Meskes Thu, 29 Aug 1996 17:11:43 +0200 ++ ++metamail (2.7-7) unstable; urgency=LOW ++ ++ * Corrected dependency (Bug#4305) ++ * New packaging scheme ++ ++ -- Michael Meskes Wed, 28 Aug 1996 14:05:10 +0200 ++ +--- metamail-2.7.orig/debian/control ++++ metamail-2.7/debian/control +@@ -0,0 +1,23 @@ ++Source: metamail ++Section: mail ++Priority: optional ++Maintainer: Debian QA Group ++Build-Depends: debhelper (>= 5), autotools-dev, libncurses-dev ++Standards-Version: 3.7.2 ++ ++Package: metamail ++Section: mail ++Architecture: any ++Depends: ${shlibs:Depends}, ${misc:Depends} ++Recommends: sharutils, mime-support (>=3.11-1) ++Description: implementation of MIME ++ Metamail is an implementation of Multi-purpose Internet Mail ++ Extensions (MIME), a proposed standard for multimedia electronic ++ mail on the Internet. ++ . ++ Metamail is configurable and extensible via the "mailcap" mechanism ++ described in an informational RFC that is a companion to the MIME ++ document. Metamail can be used to turn virtually any mail reader ++ program into a multimedia mail reader. For information about how ++ to change mail readers so that they can use Metamail, please read ++ the file `/usr/share/doc/metamail/mailers.txt.gz'. +--- metamail-2.7.orig/debian/mimencode.1 ++++ metamail-2.7/debian/mimencode.1 +@@ -0,0 +1,52 @@ ++.TH MIMENCODE 1 "Release 1" "Bellcore Prototype" ++.SH NAME ++mimencode - Translate to and from mail-oriented encoding formats ++.SH SYNOPSIS ++.ta 8n ++\fBmimencode\fP [-u] [-b] [-q] [-p] [file name] [-o outputfile] ++.br ++.SH DESCRIPTION ++The ++.I mimencode ++program simply converts a byte stream into (or out of) one of the standard mail encoding formats defined by MIME, the proposed standard for internet multimedia mail formats. Such an encoding is necessary because binary data cannot be sent through the mail. The encodings understood by mimencode are preferable to the use of the uuencode/uudecode programs, for use in mail, in several respects that were important to the authors of MIME. ++ ++By default, mimencode reads standard input, and sends a "base64" encoded version of the input to standard output. ++ ++The (really not necessary) "-b" option tells mimencode to use the "base64" encoding. ++ ++The "-q" option tells mimencode to use the "quoted-printable" encoding instead of base64. ++ ++The "-u" option tells mimencode to ++.I ++decode ++the standard input rather than encode it. ++ ++The "-p" option tells mimencode to translate decoded CRLF sequences into the local newline convention during decoding and to do the reverse during encoding. This option is only meaningful when -b (base64 encoding) is in effect. ++ ++If a file name argument is given, input is read from that file rather than from standard input. ++ ++The "-o" option, which must be followed by a file name, sends output to the named file rather than to standard output. ++.SH RATIONALE ++.I ++Mimencode ++is intended to be a replacement for ++.I ++uuencode ++for mail and news use. The reason is simple: uuencode doesn't work very well in a number of circumstances and ways. In particular, uuencode uses characters that don't translate well across all mail gateways (particularly ASCII <-> EBCDIC gateways). Also, uuencode is not standard -- there are several variants floating around, encoding and decoding things in different and incompatible ways, with no "standard" on which to base an implementation. Finally, uuencode does not generally work well in a pipe, although some variants have been modified to do so. Mimencode implements the encodings which were defined for MIME as uuencode replacements, and should be considerably more robust for email use. ++.SH SEE ALSO ++metamail(1), mailto(1) ++.SH COPYRIGHT ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++.SH AUTHOR ++Nathaniel S. Borenstein +--- metamail-2.7.orig/debian/rules ++++ metamail-2.7/debian/rules +@@ -0,0 +1,115 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++export DH_VERBOSE=1 ++ ++# the debhelper compatiblity version ++export DH_COMPAT=5 ++ ++export INTERNAL_DESTDIR=debian/tmp ++ ++MAJOR=0 ++MINOR=0.0 ++ ++source-updates: ++ dh_testdir ++ sh bootstrap ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ ln -sf /usr/share/misc/config.sub /usr/share/misc/config.guess config ++ chmod +x ./configure ++ ./configure --prefix=/usr ++ $(MAKE) ++ touch $@ ++ ++clean: ++ dh_testdir ++ dh_testroot ++ -if test -e Makefile; then \ ++ if test -e Makefile.in; then \ ++ $(MAKE) distclean; \ ++ else \ ++ $(MAKE) clean; \ ++ fi \ ++ fi ++ rm -f config/config.sub config/config.guess ++ dh_clean build-stamp install-stamp mimencode.1 ++ ++install: install-stamp ++install-stamp: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ -$(MAKE) install DESTDIR=`pwd`/$(INTERNAL_DESTDIR) ++ ++ cd $(INTERNAL_DESTDIR)/usr/bin && rm sun-message.csh mailserver \ ++ rcvAppleSingle richtoatk sndAppleSingle sun-audio-file \ ++ sun-message sun-to-mime sun2mime mailto-hebrew ++ ++ touch $@ ++ ++binary-indep: ++# No arch-indep packages to be built here. ++ ++binary-arch: build install metamail ++ ++ ++metamail: build install ++ dh_testdir -pmetamail ++ dh_testroot -pmetamail ++ ++ dh_installdirs -pmetamail ++ dh_movefiles -pmetamail ++ cp man/mmencode.1 debian/mimencode.1 ++ ++ dh_link -pmetamail usr/lib/libmetamail.so.$(MAJOR).$(MINOR) \ ++ usr/lib/libmetamail.so.$(MAJOR) ++ ++ dh_installdocs -pmetamail CREDITS README mailers.txt \ ++ debian/mime.noinstall ++ dh_installchangelogs -pmetamail ++ dh_installmime -pmetamail ++ dh_installmanpages -pmetamail mmencode.1 mailto-hebrew.1 mailcap.4 \ ++ mailcap.5 ++ dh_strip -pmetamail ++ dh_compress -pmetamail ++ dh_fixperms -pmetamail ++ dh_makeshlibs -pmetamail ++ dh_installdeb -pmetamail ++ dh_shlibdeps -pmetamail -l$(shell pwd)/debian/metamail/usr/lib ++ dh_gencontrol -pmetamail -- -isp ++ dh_md5sums -pmetamail ++ dh_builddeb -pmetamail ++ ++#libmetamail0: build install ++# dh_testdir -plibmetamail0 ++# dh_testroot -plibmetamail0 ++ ++# dh_installdirs -plibmetamail0 ++# dh_movefiles -plibmetamail0 ++ ++# dh_link -plibmetamail0 usr/lib/libmetamail.so.$(MAJOR).$(MINOR) \ ++# usr/lib/libmetamail.so.$(MAJOR) ++ ++# dh_installdocs -plibmetamail0 ++# dh_installchangelogs -plibmetamail0 ++# dh_strip -plibmetamail0 ++# dh_compress -plibmetamail0 ++# dh_fixperms -plibmetamail0 ++# dh_installdeb -plibmetamail0 ++# dh_shlibdeps -plibmetamail0 ++# dh_gencontrol -plibmetamail0 ++# dh_makeshlibs -plibmetamail0 -V ++# dh_md5sums -plibmetamail0 ++# dh_builddeb -plibmetamail0 ++ ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary ++ ++ +--- metamail-2.7.orig/debian/metamail.files ++++ metamail-2.7/debian/metamail.files +@@ -0,0 +1,3 @@ ++usr/bin ++usr/lib/libmetamail.so.* ++ +--- metamail-2.7.orig/debian/shlibs.local ++++ metamail-2.7/debian/shlibs.local +@@ -0,0 +1 @@ ++libmetamail 0 +--- metamail-2.7.orig/debian/mime.noinstall ++++ metamail-2.7/debian/mime.noinstall +@@ -0,0 +1,5 @@ ++image/*; showpicture -viewer xv %s; description="All Graphic Images" ++image/*; showpicture -viewer "xloadimage -view -quiet" %s; description="All Graphic Images" ++audio/*; showaudio %s; description="All Audio Subtypes" ++audio/basic; showaudio %s; compose="audiocompose %s"; edit="audiocompose %s"; description="An Audio Fragment" ++audio-file; sun-audio-file %s; description="Sun Audio Message" +--- metamail-2.7.orig/debian/README.Debian ++++ metamail-2.7/debian/README.Debian +@@ -0,0 +1,12 @@ ++This is the Debian GNU/Linux prepackaged version of the metamail package. ++ ++It installs only a basis of the scripts included in the original metamail ++package. Excluded are Apple specifics (rcvAppleSingle, sndAppleSingle), ++sun specifics (sun-message.csh, sun-audio-file, sun-message, sun-to-mime, ++sun2mime), hebrew specifics (mailto-hebrew), mailserver extensions ++(mailserver), binary wrapper extensions for mimeencode (mmencode) and richtoak. ++ ++I had to fix the source by adding a doublinked list that stores all opened ++tmp files. This list is used at before the program terminates so that all ++tmp files get properly removed. ++ +--- metamail-2.7.orig/debian/copyright ++++ metamail-2.7/debian/copyright +@@ -0,0 +1,37 @@ ++This is the Debian GNU/Linux prepackaged version of Metamail. ++ ++This package was put together by Michael Meskes , ++from sources obtained from: ++ ftp.bellcore.com:/pub/nsb/mm2.7.tar.Z and /pub/nsb/contrib2.7.tar.Z ++ ++This package was then worked on by Herbert Xu . ++ ++**************************************************************** ++Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore) ++ ++Permission to use, copy, modify, and distribute this material ++for any purpose and without fee is hereby granted, provided ++that the above copyright notice and this permission notice ++appear in all copies, and that the name of Bellcore not be ++used in advertising or publicity pertaining to this ++material without the specific, prior written permission ++of an authorized representative of Bellcore. BELLCORE ++MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. ++**************************************************************** ++ ++Most scripts are: ++ ++# Conversion from C shell to Bourne shell by Z-Code Software Corp. ++# Conversion Copyright (c) 1992 Z-Code Software Corp. ++# Permission to use, copy, modify, and distribute this material ++# for any purpose and without fee is hereby granted, provided ++# that the above copyright notice and this permission notice ++# appear in all copies, and that the name of Z-Code Software not ++# be used in advertising or publicity pertaining to this ++# material without the specific, prior written permission ++# of an authorized representative of Z-Code. Z-CODE SOFTWARE ++# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY ++# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS", ++# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. +--- metamail-2.7.orig/config/depcomp ++++ metamail-2.7/config/depcomp +@@ -0,0 +1,411 @@ ++#! /bin/sh ++ ++# depcomp - compile a program generating dependencies as side-effects ++# Copyright 1999, 2000 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++# 02111-1307, USA. ++ ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# Originally written by Alexandre Oliva . ++ ++if test -z "$depmode" || test -z "$source" || test -z "$object"; then ++ echo "depcomp: Variables source, object and depmode must be set" 1>&2 ++ exit 1 ++fi ++# `libtool' can also be set to `yes' or `no'. ++ ++depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`} ++tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} ++ ++rm -f "$tmpdepfile" ++ ++# Some modes work just like other modes, but use different flags. We ++# parameterize here, but still list the modes in the big case below, ++# to make depend.m4 easier to write. Note that we *cannot* use a case ++# here, because this file can only contain one case statement. ++if test "$depmode" = hp; then ++ # HP compiler uses -M and no extra arg. ++ gccflag=-M ++ depmode=gcc ++fi ++ ++if test "$depmode" = dashXmstdout; then ++ # This is just like dashmstdout with a different argument. ++ dashmflag=-xM ++ depmode=dashmstdout ++fi ++ ++case "$depmode" in ++gcc3) ++## gcc 3 implements dependency tracking that does exactly what ++## we want. Yay! Note: for some reason libtool 1.4 doesn't like ++## it if -MD -MP comes after the -MF stuff. Hmm. ++ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ mv "$tmpdepfile" "$depfile" ++ ;; ++ ++gcc) ++## There are various ways to get dependency output from gcc. Here's ++## why we pick this rather obscure method: ++## - Don't want to use -MD because we'd like the dependencies to end ++## up in a subdir. Having to rename by hand is ugly. ++## (We might end up doing this anyway to support other compilers.) ++## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ++## -MM, not -M (despite what the docs say). ++## - Using -M directly means running the compiler twice (even worse ++## than renaming). ++ if test -z "$gccflag"; then ++ gccflag=-MD, ++ fi ++ "$@" -Wp,"$gccflag$tmpdepfile" ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ++## The second -e expression handles DOS-style file names with drive letters. ++ sed -e 's/^[^:]*: / /' \ ++ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ++## This next piece of magic avoids the `deleted header file' problem. ++## The problem is that when a header file which appears in a .P file ++## is deleted, the dependency causes make to die (because there is ++## typically no way to rebuild the header). We avoid this by adding ++## dummy dependencies for each header file. Too bad gcc doesn't do ++## this for us directly. ++ tr ' ' ' ++' < "$tmpdepfile" | ++## Some versions of gcc put a space before the `:'. On the theory ++## that the space means something, we add a space to the output as ++## well. ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++hp) ++ # This case exists only to let depend.m4 do its work. It works by ++ # looking at the text of this script. This case will never be run, ++ # since it is checked for above. ++ exit 1 ++ ;; ++ ++sgi) ++ if test "$libtool" = yes; then ++ "$@" "-Wp,-MDupdate,$tmpdepfile" ++ else ++ "$@" -MDupdate "$tmpdepfile" ++ fi ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ ++ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files ++ echo "$object : \\" > "$depfile" ++ ++ # Clip off the initial element (the dependent). Don't try to be ++ # clever and replace this with sed code, as IRIX sed won't handle ++ # lines with more than a fixed number of characters (4096 in ++ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; ++ # the IRIX cc adds comments like `#:fec' to the end of the ++ # dependency line. ++ tr ' ' ' ++' < "$tmpdepfile" \ ++ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ ++ tr ' ++' ' ' >> $depfile ++ echo >> $depfile ++ ++ # The second pass generates a dummy entry for each header file. ++ tr ' ' ' ++' < "$tmpdepfile" \ ++ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ ++ >> $depfile ++ else ++ # The sourcefile does not contain any dependencies, so just ++ # store a dummy comment line, to avoid errors with the Makefile ++ # "include basename.Plo" scheme. ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++aix) ++ # The C for AIX Compiler uses -M and outputs the dependencies ++ # in a .u file. This file always lives in the current directory. ++ # Also, the AIX compiler puts `$object:' at the start of each line; ++ # $object doesn't have directory information. ++ stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` ++ tmpdepfile="$stripped.u" ++ outname="$stripped.o" ++ if test "$libtool" = yes; then ++ "$@" -Wc,-M ++ else ++ "$@" -M ++ fi ++ ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ ++ if test -f "$tmpdepfile"; then ++ # Each line is of the form `foo.o: dependent.h'. ++ # Do two passes, one to just change these to ++ # `$object: dependent.h' and one to simply `dependent.h:'. ++ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" ++ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" ++ else ++ # The sourcefile does not contain any dependencies, so just ++ # store a dummy comment line, to avoid errors with the Makefile ++ # "include basename.Plo" scheme. ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++tru64) ++ # The Tru64 AIX compiler uses -MD to generate dependencies as a side ++ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. ++ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put ++ # dependencies in `foo.d' instead, so we check for that too. ++ # Subdirectories are respected. ++ ++ tmpdepfile1="$object.d" ++ tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` ++ if test "$libtool" = yes; then ++ "$@" -Wc,-MD ++ else ++ "$@" -MD ++ fi ++ ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile1" "$tmpdepfile2" ++ exit $stat ++ fi ++ ++ if test -f "$tmpdepfile1"; then ++ tmpdepfile="$tmpdepfile1" ++ else ++ tmpdepfile="$tmpdepfile2" ++ fi ++ if test -f "$tmpdepfile"; then ++ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" ++ # That's a space and a tab in the []. ++ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" ++ else ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++#nosideeffect) ++ # This comment above is used by automake to tell side-effect ++ # dependency tracking mechanisms from slower ones. ++ ++dashmstdout) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the proprocessed file to stdout, regardless of -o, ++ # because we must use -o when running libtool. ++ test -z "$dashmflag" && dashmflag=-M ++ ( IFS=" " ++ case " $* " in ++ *" --mode=compile "*) # this is libtool, let us make it quiet ++ for arg ++ do # cycle over the arguments ++ case "$arg" in ++ "--mode=compile") ++ # insert --quiet before "--mode=compile" ++ set fnord "$@" --quiet ++ shift # fnord ++ ;; ++ esac ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # "$arg" ++ done ++ ;; ++ esac ++ "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" ++ ) & ++ proc=$! ++ "$@" ++ stat=$? ++ wait "$proc" ++ if test "$stat" != 0; then exit $stat; fi ++ rm -f "$depfile" ++ cat < "$tmpdepfile" > "$depfile" ++ tr ' ' ' ++' < "$tmpdepfile" | \ ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++dashXmstdout) ++ # This case only exists to satisfy depend.m4. It is never actually ++ # run, as this mode is specially recognized in the preamble. ++ exit 1 ++ ;; ++ ++makedepend) ++ # X makedepend ++ ( ++ shift ++ cleared=no ++ for arg in "$@"; do ++ case $cleared in no) ++ set ""; shift ++ cleared=yes ++ esac ++ case "$arg" in ++ -D*|-I*) ++ set fnord "$@" "$arg"; shift;; ++ -*) ++ ;; ++ *) ++ set fnord "$@" "$arg"; shift;; ++ esac ++ done ++ obj_suffix="`echo $object | sed 's/^.*\././'`" ++ touch "$tmpdepfile" ++ ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" ++ ) & ++ proc=$! ++ "$@" ++ stat=$? ++ wait "$proc" ++ if test "$stat" != 0; then exit $stat; fi ++ rm -f "$depfile" ++ cat < "$tmpdepfile" > "$depfile" ++ tail +3 "$tmpdepfile" | tr ' ' ' ++' | \ ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" "$tmpdepfile".bak ++ ;; ++ ++cpp) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the proprocessed file to stdout, regardless of -o, ++ # because we must use -o when running libtool. ++ ( IFS=" " ++ case " $* " in ++ *" --mode=compile "*) ++ for arg ++ do # cycle over the arguments ++ case $arg in ++ "--mode=compile") ++ # insert --quiet before "--mode=compile" ++ set fnord "$@" --quiet ++ shift # fnord ++ ;; ++ esac ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # "$arg" ++ done ++ ;; ++ esac ++ "$@" -E | ++ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | ++ sed '$ s: \\$::' > "$tmpdepfile" ++ ) & ++ proc=$! ++ "$@" ++ stat=$? ++ wait "$proc" ++ if test "$stat" != 0; then exit $stat; fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ cat < "$tmpdepfile" >> "$depfile" ++ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++msvisualcpp) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the proprocessed file to stdout, regardless of -o, ++ # because we must use -o when running libtool. ++ ( IFS=" " ++ case " $* " in ++ *" --mode=compile "*) ++ for arg ++ do # cycle over the arguments ++ case $arg in ++ "--mode=compile") ++ # insert --quiet before "--mode=compile" ++ set fnord "$@" --quiet ++ shift # fnord ++ ;; ++ esac ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # "$arg" ++ done ++ ;; ++ esac ++ "$@" -E | ++ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" ++ ) & ++ proc=$! ++ "$@" ++ stat=$? ++ wait "$proc" ++ if test "$stat" != 0; then exit $stat; fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" ++ echo " " >> "$depfile" ++ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++none) ++ exec "$@" ++ ;; ++ ++*) ++ echo "Unknown depmode $depmode" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 +--- metamail-2.7.orig/config/ltmain.sh ++++ metamail-2.7/config/ltmain.sh +@@ -0,0 +1,5107 @@ ++# ltmain.sh - Provide generalized library-building support services. ++# NOTE: Changing this file will not affect anything until you rerun configure. ++# ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 ++# Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit , 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# Check that we have a working $echo. ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell, and then maybe $echo will work. ++ exec $SHELL "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <&2 ++ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ++ exit 1 ++fi ++ ++# Global variables. ++mode=$default_mode ++nonopt= ++prev= ++prevopt= ++run= ++show="$echo" ++show_help= ++execute_dlfiles= ++lo2o="s/\\.lo\$/.${objext}/" ++o2lo="s/\\.${objext}\$/.lo/" ++ ++# Parse our command line options once, thoroughly. ++while test $# -gt 0 ++do ++ arg="$1" ++ shift ++ ++ case $arg in ++ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) optarg= ;; ++ esac ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ execute_dlfiles) ++ execute_dlfiles="$execute_dlfiles $arg" ++ ;; ++ *) ++ eval "$prev=\$arg" ++ ;; ++ esac ++ ++ prev= ++ prevopt= ++ continue ++ fi ++ ++ # Have we seen a non-optional argument yet? ++ case $arg in ++ --help) ++ show_help=yes ++ ;; ++ ++ --version) ++ echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" ++ exit 0 ++ ;; ++ ++ --config) ++ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 ++ exit 0 ++ ;; ++ ++ --debug) ++ echo "$progname: enabling shell trace mode" ++ set -x ++ ;; ++ ++ --dry-run | -n) ++ run=: ++ ;; ++ ++ --features) ++ echo "host: $host" ++ if test "$build_libtool_libs" = yes; then ++ echo "enable shared libraries" ++ else ++ echo "disable shared libraries" ++ fi ++ if test "$build_old_libs" = yes; then ++ echo "enable static libraries" ++ else ++ echo "disable static libraries" ++ fi ++ exit 0 ++ ;; ++ ++ --finish) mode="finish" ;; ++ ++ --mode) prevopt="--mode" prev=mode ;; ++ --mode=*) mode="$optarg" ;; ++ ++ --preserve-dup-deps) duplicate_deps="yes" ;; ++ ++ --quiet | --silent) ++ show=: ++ ;; ++ ++ -dlopen) ++ prevopt="-dlopen" ++ prev=execute_dlfiles ++ ;; ++ ++ -*) ++ $echo "$modename: unrecognized option \`$arg'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ ++ *) ++ nonopt="$arg" ++ break ++ ;; ++ esac ++done ++ ++if test -n "$prevopt"; then ++ $echo "$modename: option \`$prevopt' requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++fi ++ ++# If this variable is set in any of the actions, the command in it ++# will be execed at the end. This prevents here-documents from being ++# left over by shells. ++exec_cmd= ++ ++if test -z "$show_help"; then ++ ++ # Infer the operation mode. ++ if test -z "$mode"; then ++ case $nonopt in ++ *cc | *++ | gcc* | *-gcc* | g++* | xlc*) ++ mode=link ++ for arg ++ do ++ case $arg in ++ -c) ++ mode=compile ++ break ++ ;; ++ esac ++ done ++ ;; ++ *db | *dbx | *strace | *truss) ++ mode=execute ++ ;; ++ *install*|cp|mv) ++ mode=install ++ ;; ++ *rm) ++ mode=uninstall ++ ;; ++ *) ++ # If we have no mode, but dlfiles were specified, then do execute mode. ++ test -n "$execute_dlfiles" && mode=execute ++ ++ # Just use the default operation mode. ++ if test -z "$mode"; then ++ if test -n "$nonopt"; then ++ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 ++ else ++ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 ++ fi ++ fi ++ ;; ++ esac ++ fi ++ ++ # Only execute mode is allowed to have -dlopen flags. ++ if test -n "$execute_dlfiles" && test "$mode" != execute; then ++ $echo "$modename: unrecognized option \`-dlopen'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Change the help message to a mode-specific one. ++ generic_help="$help" ++ help="Try \`$modename --help --mode=$mode' for more information." ++ ++ # These modes are in order of execution frequency so that they run quickly. ++ case $mode in ++ # libtool compile mode ++ compile) ++ modename="$modename: compile" ++ # Get the compilation command and the source file. ++ base_compile= ++ prev= ++ lastarg= ++ srcfile="$nonopt" ++ suppress_output= ++ ++ user_target=no ++ for arg ++ do ++ case $prev in ++ "") ;; ++ xcompiler) ++ # Aesthetically quote the previous argument. ++ prev= ++ lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ ++ case $arg in ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ++ # Add the previous argument to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; ++ esac ++ ++ # Accept any command-line options. ++ case $arg in ++ -o) ++ if test "$user_target" != "no"; then ++ $echo "$modename: you cannot specify \`-o' more than once" 1>&2 ++ exit 1 ++ fi ++ user_target=next ++ ;; ++ ++ -static) ++ build_old_libs=yes ++ continue ++ ;; ++ ++ -prefer-pic) ++ pic_mode=yes ++ continue ++ ;; ++ ++ -prefer-non-pic) ++ pic_mode=no ++ continue ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` ++ lastarg= ++ save_ifs="$IFS"; IFS=',' ++ for arg in $args; do ++ IFS="$save_ifs" ++ ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ lastarg="$lastarg $arg" ++ done ++ IFS="$save_ifs" ++ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` ++ ++ # Add the arguments to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ continue ++ ;; ++ esac ++ ++ case $user_target in ++ next) ++ # The next one is the -o target name ++ user_target=yes ++ continue ++ ;; ++ yes) ++ # We got the output file ++ user_target=set ++ libobj="$arg" ++ continue ++ ;; ++ esac ++ ++ # Accept the current argument as the source file. ++ lastarg="$srcfile" ++ srcfile="$arg" ++ ++ # Aesthetically quote the previous argument. ++ ++ # Backslashify any backslashes, double quotes, and dollar signs. ++ # These are the only characters that are still specially ++ # interpreted inside of double-quoted scrings. ++ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` ++ ++ # Double-quote args containing other shell metacharacters. ++ # Many Bourne shells cannot handle close brackets correctly ++ # in scan sets, so we specify it separately. ++ case $lastarg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ lastarg="\"$lastarg\"" ++ ;; ++ esac ++ ++ # Add the previous argument to base_compile. ++ if test -z "$base_compile"; then ++ base_compile="$lastarg" ++ else ++ base_compile="$base_compile $lastarg" ++ fi ++ done ++ ++ case $user_target in ++ set) ++ ;; ++ no) ++ # Get the name of the library object. ++ libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ++ ;; ++ *) ++ $echo "$modename: you must specify a target with \`-o'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Recognize several different file suffixes. ++ # If the user specifies -o file.o, it is replaced with file.lo ++ xform='[cCFSfmso]' ++ case $libobj in ++ *.ada) xform=ada ;; ++ *.adb) xform=adb ;; ++ *.ads) xform=ads ;; ++ *.asm) xform=asm ;; ++ *.c++) xform=c++ ;; ++ *.cc) xform=cc ;; ++ *.cpp) xform=cpp ;; ++ *.cxx) xform=cxx ;; ++ *.f90) xform=f90 ;; ++ *.for) xform=for ;; ++ esac ++ ++ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` ++ ++ case $libobj in ++ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; ++ *) ++ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ if test -z "$base_compile"; then ++ $echo "$modename: you must specify a compilation command" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Delete any leftover library objects. ++ if test "$build_old_libs" = yes; then ++ removelist="$obj $libobj" ++ else ++ removelist="$libobj" ++ fi ++ ++ $run $rm $removelist ++ trap "$run $rm $removelist; exit 1" 1 2 15 ++ ++ # On Cygwin there's no "real" PIC flag so we must build both object types ++ case $host_os in ++ cygwin* | mingw* | pw32* | os2*) ++ pic_mode=default ++ ;; ++ esac ++ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then ++ # non-PIC code in shared libraries is not supported ++ pic_mode=default ++ fi ++ ++ # Calculate the filename of the output object if compiler does ++ # not support -o with -c ++ if test "$compiler_c_o" = no; then ++ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} ++ lockfile="$output_obj.lock" ++ removelist="$removelist $output_obj $lockfile" ++ trap "$run $rm $removelist; exit 1" 1 2 15 ++ else ++ need_locks=no ++ lockfile= ++ fi ++ ++ # Lock this critical section if it is needed ++ # We use this script file to make the link, it avoids creating a new file ++ if test "$need_locks" = yes; then ++ until $run ln "$0" "$lockfile" 2>/dev/null; do ++ $show "Waiting for $lockfile to be removed" ++ sleep 2 ++ done ++ elif test "$need_locks" = warn; then ++ if test -f "$lockfile"; then ++ echo "\ ++*** ERROR, $lockfile exists and contains: ++`cat $lockfile 2>/dev/null` ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ echo $srcfile > "$lockfile" ++ fi ++ ++ if test -n "$fix_srcfile_path"; then ++ eval srcfile=\"$fix_srcfile_path\" ++ fi ++ ++ # Only build a PIC object if we are building libtool libraries. ++ if test "$build_libtool_libs" = yes; then ++ # Without this assignment, base_compile gets emptied. ++ fbsd_hideous_sh_bug=$base_compile ++ ++ if test "$pic_mode" != no; then ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ else ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ fi ++ if test "$build_old_libs" = yes; then ++ lo_libobj="$libobj" ++ dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$dir" = "X$libobj"; then ++ dir="$objdir" ++ else ++ dir="$dir/$objdir" ++ fi ++ libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` ++ ++ if test -d "$dir"; then ++ $show "$rm $libobj" ++ $run $rm $libobj ++ else ++ $show "$mkdir $dir" ++ $run $mkdir $dir ++ status=$? ++ if test $status -ne 0 && test ! -d $dir; then ++ exit $status ++ fi ++ fi ++ fi ++ if test "$compiler_o_lo" = yes; then ++ output_obj="$libobj" ++ command="$command -o $output_obj" ++ elif test "$compiler_c_o" = yes; then ++ output_obj="$obj" ++ command="$command -o $output_obj" ++ fi ++ ++ $run $rm "$output_obj" ++ $show "$command" ++ if $run eval "$command"; then : ++ else ++ test -n "$output_obj" && $run $rm $removelist ++ exit 1 ++ fi ++ ++ if test "$need_locks" = warn && ++ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then ++ echo "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ # Just move the object if needed, then go on to compile the next one ++ if test x"$output_obj" != x"$libobj"; then ++ $show "$mv $output_obj $libobj" ++ if $run $mv $output_obj $libobj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # If we have no pic_flag, then copy the object into place and finish. ++ if (test -z "$pic_flag" || test "$pic_mode" != default) && ++ test "$build_old_libs" = yes; then ++ # Rename the .lo from within objdir to obj ++ if test -f $obj; then ++ $show $rm $obj ++ $run $rm $obj ++ fi ++ ++ $show "$mv $libobj $obj" ++ if $run $mv $libobj $obj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ ++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$obj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` ++ libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` ++ # Now arrange that obj and lo_libobj become the same file ++ $show "(cd $xdir && $LN_S $baseobj $libobj)" ++ if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then ++ # Unlock the critical section if it was locked ++ if test "$need_locks" != no; then ++ $run $rm "$lockfile" ++ fi ++ exit 0 ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # Allow error messages only from the first compilation. ++ suppress_output=' >/dev/null 2>&1' ++ fi ++ ++ # Only build a position-dependent object if we build old libraries. ++ if test "$build_old_libs" = yes; then ++ if test "$pic_mode" != yes; then ++ # Don't build PIC code ++ command="$base_compile $srcfile" ++ else ++ # All platforms use -DPIC, to notify preprocessed assembler code. ++ command="$base_compile $srcfile $pic_flag -DPIC" ++ fi ++ if test "$compiler_c_o" = yes; then ++ command="$command -o $obj" ++ output_obj="$obj" ++ fi ++ ++ # Suppress compiler output if we already did a PIC compilation. ++ command="$command$suppress_output" ++ $run $rm "$output_obj" ++ $show "$command" ++ if $run eval "$command"; then : ++ else ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ if test "$need_locks" = warn && ++ test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then ++ echo "\ ++*** ERROR, $lockfile contains: ++`cat $lockfile 2>/dev/null` ++ ++but it should contain: ++$srcfile ++ ++This indicates that another process is trying to use the same ++temporary object file, and libtool could not work around it because ++your compiler does not support \`-c' and \`-o' together. If you ++repeat this compilation, it may succeed, by chance, but you had better ++avoid parallel builds (make -j) in this platform, or get a better ++compiler." ++ ++ $run $rm $removelist ++ exit 1 ++ fi ++ ++ # Just move the object if needed ++ if test x"$output_obj" != x"$obj"; then ++ $show "$mv $output_obj $obj" ++ if $run $mv $output_obj $obj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ ++ # Create an invalid libtool object if no PIC, so that we do not ++ # accidentally link it into a program. ++ if test "$build_libtool_libs" != yes; then ++ $show "echo timestamp > $libobj" ++ $run eval "echo timestamp > \$libobj" || exit $? ++ else ++ # Move the .lo from within objdir ++ $show "$mv $libobj $lo_libobj" ++ if $run $mv $libobj $lo_libobj; then : ++ else ++ error=$? ++ $run $rm $removelist ++ exit $error ++ fi ++ fi ++ fi ++ ++ # Unlock the critical section if it was locked ++ if test "$need_locks" != no; then ++ $run $rm "$lockfile" ++ fi ++ ++ exit 0 ++ ;; ++ ++ # libtool link mode ++ link | relink) ++ modename="$modename: link" ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ # It is impossible to link a dll without this setting, and ++ # we shouldn't force the makefile maintainer to figure out ++ # which system we are compiling for in order to pass an extra ++ # flag for every libtool invokation. ++ # allow_undefined=no ++ ++ # FIXME: Unfortunately, there are problems with the above when trying ++ # to make a dll which has undefined symbols, in which case not ++ # even a static library is built. For now, we need to specify ++ # -no-undefined on the libtool link line when we can be certain ++ # that all symbols are satisfied, otherwise we get a static library. ++ allow_undefined=yes ++ ;; ++ *) ++ allow_undefined=yes ++ ;; ++ esac ++ libtool_args="$nonopt" ++ compile_command="$nonopt" ++ finalize_command="$nonopt" ++ ++ compile_rpath= ++ finalize_rpath= ++ compile_shlibpath= ++ finalize_shlibpath= ++ convenience= ++ old_convenience= ++ deplibs= ++ old_deplibs= ++ compiler_flags= ++ linker_flags= ++ dllsearchpath= ++ lib_search_path=`pwd` ++ inst_prefix_dir= ++ ++ avoid_version=no ++ dlfiles= ++ dlprefiles= ++ dlself=no ++ export_dynamic=no ++ export_symbols= ++ export_symbols_regex= ++ generated= ++ libobjs= ++ ltlibs= ++ module=no ++ no_install=no ++ objs= ++ prefer_static_libs=no ++ preload=no ++ prev= ++ prevarg= ++ release= ++ rpath= ++ xrpath= ++ perm_rpath= ++ temp_rpath= ++ thread_safe=no ++ vinfo= ++ ++ # We need to know -static, to get the right output filenames. ++ for arg ++ do ++ case $arg in ++ -all-static | -static) ++ if test "X$arg" = "X-all-static"; then ++ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then ++ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 ++ fi ++ if test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ else ++ if test -z "$pic_flag" && test -n "$link_static_flag"; then ++ dlopen_self=$dlopen_self_static ++ fi ++ fi ++ build_libtool_libs=no ++ build_old_libs=yes ++ prefer_static_libs=yes ++ break ++ ;; ++ esac ++ done ++ ++ # See if our shared archives depend on static archives. ++ test -n "$old_archive_from_new_cmds" && build_old_libs=yes ++ ++ # Go through the arguments, transforming them on the way. ++ while test $# -gt 0; do ++ arg="$1" ++ shift ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ++ ;; ++ *) qarg=$arg ;; ++ esac ++ libtool_args="$libtool_args $qarg" ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ case $prev in ++ output) ++ compile_command="$compile_command @OUTPUT@" ++ finalize_command="$finalize_command @OUTPUT@" ++ ;; ++ esac ++ ++ case $prev in ++ dlfiles|dlprefiles) ++ if test "$preload" = no; then ++ # Add the symbol object into the linking commands. ++ compile_command="$compile_command @SYMFILE@" ++ finalize_command="$finalize_command @SYMFILE@" ++ preload=yes ++ fi ++ case $arg in ++ *.la | *.lo) ;; # We handle these cases below. ++ force) ++ if test "$dlself" = no; then ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ self) ++ if test "$prev" = dlprefiles; then ++ dlself=yes ++ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then ++ dlself=yes ++ else ++ dlself=needless ++ export_dynamic=yes ++ fi ++ prev= ++ continue ++ ;; ++ *) ++ if test "$prev" = dlfiles; then ++ dlfiles="$dlfiles $arg" ++ else ++ dlprefiles="$dlprefiles $arg" ++ fi ++ prev= ++ continue ++ ;; ++ esac ++ ;; ++ expsyms) ++ export_symbols="$arg" ++ if test ! -f "$arg"; then ++ $echo "$modename: symbol file \`$arg' does not exist" ++ exit 1 ++ fi ++ prev= ++ continue ++ ;; ++ expsyms_regex) ++ export_symbols_regex="$arg" ++ prev= ++ continue ++ ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; ++ release) ++ release="-$arg" ++ prev= ++ continue ++ ;; ++ rpath | xrpath) ++ # We need an absolute path. ++ case $arg in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ $echo "$modename: only absolute run-paths are allowed" 1>&2 ++ exit 1 ++ ;; ++ esac ++ if test "$prev" = rpath; then ++ case "$rpath " in ++ *" $arg "*) ;; ++ *) rpath="$rpath $arg" ;; ++ esac ++ else ++ case "$xrpath " in ++ *" $arg "*) ;; ++ *) xrpath="$xrpath $arg" ;; ++ esac ++ fi ++ prev= ++ continue ++ ;; ++ xcompiler) ++ compiler_flags="$compiler_flags $qarg" ++ prev= ++ compile_command="$compile_command $qarg" ++ finalize_command="$finalize_command $qarg" ++ continue ++ ;; ++ xlinker) ++ linker_flags="$linker_flags $qarg" ++ compiler_flags="$compiler_flags $wl$qarg" ++ prev= ++ compile_command="$compile_command $wl$qarg" ++ finalize_command="$finalize_command $wl$qarg" ++ continue ++ ;; ++ *) ++ eval "$prev=\"\$arg\"" ++ prev= ++ continue ++ ;; ++ esac ++ fi # test -n $prev ++ ++ prevarg="$arg" ++ ++ case $arg in ++ -all-static) ++ if test -n "$link_static_flag"; then ++ compile_command="$compile_command $link_static_flag" ++ finalize_command="$finalize_command $link_static_flag" ++ fi ++ continue ++ ;; ++ ++ -allow-undefined) ++ # FIXME: remove this flag sometime in the future. ++ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 ++ continue ++ ;; ++ ++ -avoid-version) ++ avoid_version=yes ++ continue ++ ;; ++ ++ -dlopen) ++ prev=dlfiles ++ continue ++ ;; ++ ++ -dlpreopen) ++ prev=dlprefiles ++ continue ++ ;; ++ ++ -export-dynamic) ++ export_dynamic=yes ++ continue ++ ;; ++ ++ -export-symbols | -export-symbols-regex) ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ $echo "$modename: more than one -exported-symbols argument is not allowed" ++ exit 1 ++ fi ++ if test "X$arg" = "X-export-symbols"; then ++ prev=expsyms ++ else ++ prev=expsyms_regex ++ fi ++ continue ++ ;; ++ ++ -inst-prefix-dir) ++ prev=inst_prefix ++ continue ++ ;; ++ ++ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* ++ # so, if we see these flags be careful not to treat them like -L ++ -L[A-Z][A-Z]*:*) ++ case $with_gcc/$host in ++ no/*-*-irix* | no/*-*-nonstopux*) ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ ;; ++ esac ++ continue ++ ;; ++ ++ -L*) ++ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ++ exit 1 ++ fi ++ dir="$absdir" ++ ;; ++ esac ++ case "$deplibs " in ++ *" -L$dir "*) ;; ++ *) ++ deplibs="$deplibs -L$dir" ++ lib_search_path="$lib_search_path $dir" ++ ;; ++ esac ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$dir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$dir";; ++ esac ++ ;; ++ esac ++ continue ++ ;; ++ ++ -l*) ++ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then ++ case $host in ++ *-*-cygwin* | *-*-pw32* | *-*-beos*) ++ # These systems don't actually have a C or math library (as such) ++ continue ++ ;; ++ *-*-mingw* | *-*-os2*) ++ # These systems don't actually have a C library (as such) ++ test "X$arg" = "X-lc" && continue ++ ;; ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc due to us having libc/libc_r. ++ test "X$arg" = "X-lc" && continue ++ ;; ++ esac ++ elif test "X$arg" = "X-lc_r"; then ++ case $host in ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc_r directly, use -pthread flag. ++ continue ++ ;; ++ esac ++ fi ++ deplibs="$deplibs $arg" ++ continue ++ ;; ++ ++ -module) ++ module=yes ++ continue ++ ;; ++ ++ -no-fast-install) ++ fast_install=no ++ continue ++ ;; ++ ++ -no-install) ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ # The PATH hackery in wrapper scripts is required on Windows ++ # in order for the loader to find any dlls it needs. ++ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 ++ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 ++ fast_install=no ++ ;; ++ *) no_install=yes ;; ++ esac ++ continue ++ ;; ++ ++ -no-undefined) ++ allow_undefined=no ++ continue ++ ;; ++ ++ -o) prev=output ;; ++ ++ -release) ++ prev=release ++ continue ++ ;; ++ ++ -rpath) ++ prev=rpath ++ continue ++ ;; ++ ++ -R) ++ prev=xrpath ++ continue ++ ;; ++ ++ -R*) ++ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ $echo "$modename: only absolute run-paths are allowed" 1>&2 ++ exit 1 ++ ;; ++ esac ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ continue ++ ;; ++ ++ -static) ++ # The effects of -static are defined in a previous loop. ++ # We used to do the same as -all-static on platforms that ++ # didn't have a PIC flag, but the assumption that the effects ++ # would be equivalent was wrong. It would break on at least ++ # Digital Unix and AIX. ++ continue ++ ;; ++ ++ -thread-safe) ++ thread_safe=yes ++ continue ++ ;; ++ ++ -version-info) ++ prev=vinfo ++ continue ++ ;; ++ ++ -Wc,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Wl,*) ++ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` ++ arg= ++ save_ifs="$IFS"; IFS=',' ++ for flag in $args; do ++ IFS="$save_ifs" ++ case $flag in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ flag="\"$flag\"" ++ ;; ++ esac ++ arg="$arg $wl$flag" ++ compiler_flags="$compiler_flags $wl$flag" ++ linker_flags="$linker_flags $flag" ++ done ++ IFS="$save_ifs" ++ arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ++ ;; ++ ++ -Xcompiler) ++ prev=xcompiler ++ continue ++ ;; ++ ++ -Xlinker) ++ prev=xlinker ++ continue ++ ;; ++ ++ # Some other compiler flag. ++ -* | +*) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ;; ++ ++ *.lo | *.$objext) ++ # A library or standard object. ++ if test "$prev" = dlfiles; then ++ # This file was specified with -dlopen. ++ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ++ dlfiles="$dlfiles $arg" ++ prev= ++ continue ++ else ++ # If libtool objects are unsupported, then we need to preload. ++ prev=dlprefiles ++ fi ++ fi ++ ++ if test "$prev" = dlprefiles; then ++ # Preload the old-style object. ++ dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` ++ prev= ++ else ++ case $arg in ++ *.lo) libobjs="$libobjs $arg" ;; ++ *) objs="$objs $arg" ;; ++ esac ++ fi ++ ;; ++ ++ *.$libext) ++ # An archive. ++ deplibs="$deplibs $arg" ++ old_deplibs="$old_deplibs $arg" ++ continue ++ ;; ++ ++ *.la) ++ # A libtool-controlled library. ++ ++ if test "$prev" = dlfiles; then ++ # This library was specified with -dlopen. ++ dlfiles="$dlfiles $arg" ++ prev= ++ elif test "$prev" = dlprefiles; then ++ # The library was specified with -dlpreopen. ++ dlprefiles="$dlprefiles $arg" ++ prev= ++ else ++ deplibs="$deplibs $arg" ++ fi ++ continue ++ ;; ++ ++ # Some other compiler argument. ++ *) ++ # Unknown arguments in both finalize_command and compile_command need ++ # to be aesthetically quoted because they are evaled later. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ++ arg="\"$arg\"" ++ ;; ++ esac ++ ;; ++ esac # arg ++ ++ # Now actually substitute the argument into the commands. ++ if test -n "$arg"; then ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi ++ done # argument parsing loop ++ ++ if test -n "$prev"; then ++ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then ++ eval arg=\"$export_dynamic_flag_spec\" ++ compile_command="$compile_command $arg" ++ finalize_command="$finalize_command $arg" ++ fi ++ ++ # calculate the name of the file, without its directory ++ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` ++ libobjs_save="$libobjs" ++ ++ if test -n "$shlibpath_var"; then ++ # get the directories listed in $shlibpath_var ++ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` ++ else ++ shlib_search_path= ++ fi ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" ++ ++ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$output_objdir" = "X$output"; then ++ output_objdir="$objdir" ++ else ++ output_objdir="$output_objdir/$objdir" ++ fi ++ # Create the object directory. ++ if test ! -d $output_objdir; then ++ $show "$mkdir $output_objdir" ++ $run $mkdir $output_objdir ++ status=$? ++ if test $status -ne 0 && test ! -d $output_objdir; then ++ exit $status ++ fi ++ fi ++ ++ # Determine the type of output ++ case $output in ++ "") ++ $echo "$modename: you must specify an output file" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ *.$libext) linkmode=oldlib ;; ++ *.lo | *.$objext) linkmode=obj ;; ++ *.la) linkmode=lib ;; ++ *) linkmode=prog ;; # Anything else should be a program. ++ esac ++ ++ specialdeplibs= ++ libs= ++ # Find all interdependent deplibs by searching for libraries ++ # that are linked more than once (e.g. -la -lb -la) ++ for deplib in $deplibs; do ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ libs="$libs $deplib" ++ done ++ deplibs= ++ newdependency_libs= ++ newlib_search_path= ++ need_relink=no # whether we're linking any uninstalled libtool libraries ++ notinst_deplibs= # not-installed libtool libraries ++ notinst_path= # paths that contain not-installed libtool libraries ++ case $linkmode in ++ lib) ++ passes="conv link" ++ for file in $dlfiles $dlprefiles; do ++ case $file in ++ *.la) ;; ++ *) ++ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ;; ++ prog) ++ compile_deplibs= ++ finalize_deplibs= ++ alldeplibs=no ++ newdlfiles= ++ newdlprefiles= ++ passes="conv scan dlopen dlpreopen link" ++ ;; ++ *) passes="conv" ++ ;; ++ esac ++ for pass in $passes; do ++ if test $linkmode = prog; then ++ # Determine which files to process ++ case $pass in ++ dlopen) ++ libs="$dlfiles" ++ save_deplibs="$deplibs" # Collect dlpreopened libraries ++ deplibs= ++ ;; ++ dlpreopen) libs="$dlprefiles" ;; ++ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; ++ esac ++ fi ++ for deplib in $libs; do ++ lib= ++ found=no ++ case $deplib in ++ -l*) ++ if test $linkmode = oldlib && test $linkmode = obj; then ++ $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 ++ continue ++ fi ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` ++ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ # Search the libtool library ++ lib="$searchdir/lib${name}.la" ++ if test -f "$lib"; then ++ found=yes ++ break ++ fi ++ done ++ if test "$found" != yes; then ++ # deplib doesn't seem to be a libtool library ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" ++ fi ++ continue ++ fi ++ ;; # -l ++ -L*) ++ case $linkmode in ++ lib) ++ deplibs="$deplib $deplibs" ++ test $pass = conv && continue ++ newdependency_libs="$deplib $newdependency_libs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ++ ;; ++ prog) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ if test $pass = scan; then ++ deplibs="$deplib $deplibs" ++ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ ;; ++ *) ++ $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 ++ ;; ++ esac # linkmode ++ continue ++ ;; # -L ++ -R*) ++ if test $pass = link; then ++ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` ++ # Make sure the xrpath contains only unique directories. ++ case "$xrpath " in ++ *" $dir "*) ;; ++ *) xrpath="$xrpath $dir" ;; ++ esac ++ fi ++ deplibs="$deplib $deplibs" ++ continue ++ ;; ++ *.la) lib="$deplib" ;; ++ *.$libext) ++ if test $pass = conv; then ++ deplibs="$deplib $deplibs" ++ continue ++ fi ++ case $linkmode in ++ lib) ++ if test "$deplibs_check_method" != pass_all; then ++ echo ++ echo "*** Warning: Trying to link with static lib archive $deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because the file extensions .$libext of this argument makes me believe" ++ echo "*** that it is just a static archive that I should not used here." ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the" ++ echo "*** static library $deplib is not portable!" ++ deplibs="$deplib $deplibs" ++ fi ++ continue ++ ;; ++ prog) ++ if test $pass != link; then ++ deplibs="$deplib $deplibs" ++ else ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ fi ++ continue ++ ;; ++ esac # linkmode ++ ;; # *.$libext ++ *.lo | *.$objext) ++ if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlopen support or we're linking statically, ++ # we need to preload. ++ newdlprefiles="$newdlprefiles $deplib" ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ newdlfiles="$newdlfiles $deplib" ++ fi ++ continue ++ ;; ++ %DEPLIBS%) ++ alldeplibs=yes ++ continue ++ ;; ++ esac # case $deplib ++ if test $found = yes || test -f "$lib"; then : ++ else ++ $echo "$modename: cannot find the library \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # Check to see that this really is a libtool archive. ++ if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ ++ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$ladir" = "X$lib" && ladir="." ++ ++ dlname= ++ dlopen= ++ dlpreopen= ++ libdir= ++ library_names= ++ old_library= ++ # If the library was installed with an old release of libtool, ++ # it will not redefine variable installed. ++ installed=yes ++ ++ # Read the .la file ++ case $lib in ++ */* | *\\*) . $lib ;; ++ *) . ./$lib ;; ++ esac ++ ++ if test "$linkmode,$pass" = "lib,link" || ++ test "$linkmode,$pass" = "prog,scan" || ++ { test $linkmode = oldlib && test $linkmode = obj; }; then ++ # Add dl[pre]opened files of deplib ++ test -n "$dlopen" && dlfiles="$dlfiles $dlopen" ++ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ fi ++ ++ if test $pass = conv; then ++ # Only check for convenience libraries ++ deplibs="$lib $deplibs" ++ if test -z "$libdir"; then ++ if test -z "$old_library"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ # It is a libtool convenience library, so add in its objects. ++ convenience="$convenience $ladir/$objdir/$old_library" ++ old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ deplibs="$deplib $deplibs" ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ elif test $linkmode != prog && test $linkmode != lib; then ++ $echo "$modename: \`$lib' is not a convenience library" 1>&2 ++ exit 1 ++ fi ++ continue ++ fi # $pass = conv ++ ++ # Get the name of the library we link against. ++ linklib= ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ if test -z "$linklib"; then ++ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ++ exit 1 ++ fi ++ ++ # This library was specified with -dlopen. ++ if test $pass = dlopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 ++ exit 1 ++ fi ++ if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ++ # If there is no dlname, no dlopen support or we're linking ++ # statically, we need to preload. ++ dlprefiles="$dlprefiles $lib" ++ else ++ newdlfiles="$newdlfiles $lib" ++ fi ++ continue ++ fi # $pass = dlopen ++ ++ # We need an absolute path. ++ case $ladir in ++ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; ++ *) ++ abs_ladir=`cd "$ladir" && pwd` ++ if test -z "$abs_ladir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 ++ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 ++ abs_ladir="$ladir" ++ fi ++ ;; ++ esac ++ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ ++ # Find the relevant object directory and library name. ++ if test "X$installed" = Xyes; then ++ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ $echo "$modename: warning: library \`$lib' was moved." 1>&2 ++ dir="$ladir" ++ absdir="$abs_ladir" ++ libdir="$abs_ladir" ++ else ++ dir="$libdir" ++ absdir="$libdir" ++ fi ++ else ++ dir="$ladir/$objdir" ++ absdir="$abs_ladir/$objdir" ++ # Remove this search path later ++ notinst_path="$notinst_path $abs_ladir" ++ fi # $installed = yes ++ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ ++ # This library was specified with -dlpreopen. ++ if test $pass = dlpreopen; then ++ if test -z "$libdir"; then ++ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 ++ exit 1 ++ fi ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ newdlprefiles="$newdlprefiles $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ newdlprefiles="$newdlprefiles $dir/$dlname" ++ else ++ newdlprefiles="$newdlprefiles $dir/$linklib" ++ fi ++ fi # $pass = dlpreopen ++ ++ if test -z "$libdir"; then ++ # Link the convenience library ++ if test $linkmode = lib; then ++ deplibs="$dir/$old_library $deplibs" ++ elif test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$dir/$old_library $compile_deplibs" ++ finalize_deplibs="$dir/$old_library $finalize_deplibs" ++ else ++ deplibs="$lib $deplibs" ++ fi ++ continue ++ fi ++ ++ if test $linkmode = prog && test $pass != link; then ++ newlib_search_path="$newlib_search_path $ladir" ++ deplibs="$lib $deplibs" ++ ++ linkalldeplibs=no ++ if test "$link_all_deplibs" != no || test -z "$library_names" || ++ test "$build_libtool_libs" = no; then ++ linkalldeplibs=yes ++ fi ++ ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test ++ esac ++ # Need to link against all dependency_libs? ++ if test $linkalldeplibs = yes; then ++ deplibs="$deplib $deplibs" ++ else ++ # Need to hardcode shared library paths ++ # or/and link against static libraries ++ newdependency_libs="$deplib $newdependency_libs" ++ fi ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done # for deplib ++ continue ++ fi # $linkmode = prog... ++ ++ link_static=no # Whether the deplib will be linked statically ++ if test -n "$library_names" && ++ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then ++ # Link against this shared library ++ ++ if test "$linkmode,$pass" = "prog,link" || ++ { test $linkmode = lib && test $hardcode_into_libs = yes; }; then ++ # Hardcode the library path. ++ # Skip directories that are in the system default run-time ++ # search path. ++ case " $sys_lib_dlsearch_path " in ++ *" $absdir "*) ;; ++ *) ++ case "$compile_rpath " in ++ *" $absdir "*) ;; ++ *) compile_rpath="$compile_rpath $absdir" ++ esac ++ ;; ++ esac ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ++ esac ++ ;; ++ esac ++ if test $linkmode = prog; then ++ # We need to hardcode the library path ++ if test -n "$shlibpath_var"; then ++ # Make sure the rpath contains only unique directories. ++ case "$temp_rpath " in ++ *" $dir "*) ;; ++ *" $absdir "*) ;; ++ *) temp_rpath="$temp_rpath $dir" ;; ++ esac ++ fi ++ fi ++ fi # $linkmode,$pass = prog,link... ++ ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ ++ if test "$installed" = no; then ++ notinst_deplibs="$notinst_deplibs $lib" ++ need_relink=yes ++ fi ++ ++ if test -n "$old_archive_from_expsyms_cmds"; then ++ # figure out the soname ++ set dummy $library_names ++ realname="$2" ++ shift; shift ++ libname=`eval \\$echo \"$libname_spec\"` ++ # use dlname if we got it. it's perfectly good, no? ++ if test -n "$dlname"; then ++ soname="$dlname" ++ elif test -n "$soname_spec"; then ++ # bleh windows ++ case $host in ++ *cygwin*) ++ major=`expr $current - $age` ++ versuffix="-$major" ++ ;; ++ esac ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ ++ # Make a new name for the extract_expsyms_cmds to use ++ soroot="$soname" ++ soname=`echo $soroot | ${SED} -e 's/^.*\///'` ++ newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" ++ ++ # If the library has no export list, then create one now ++ if test -f "$output_objdir/$soname-def"; then : ++ else ++ $show "extracting exported symbol list from \`$soname'" ++ save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$extract_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ ++ # Create $newlib ++ if test -f "$output_objdir/$newlib"; then :; else ++ $show "generating import library for \`$soname'" ++ save_ifs="$IFS"; IFS='~' ++ eval cmds=\"$old_archive_from_expsyms_cmds\" ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ # make sure the library variables are pointing to the new library ++ dir=$output_objdir ++ linklib=$newlib ++ fi # test -n $old_archive_from_expsyms_cmds ++ ++ if test $linkmode = prog || test "$mode" != relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ lib_linked=yes ++ case $hardcode_action in ++ immediate | unsupported) ++ if test "$hardcode_direct" = no; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = no; then ++ case $host in ++ *-*-sunos*) add_shlibpath="$dir" ;; ++ esac ++ add_dir="-L$dir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = no; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ relink) ++ if test "$hardcode_direct" = yes; then ++ add="$dir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$dir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ add_shlibpath="$dir" ++ add="-l$name" ++ else ++ lib_linked=no ++ fi ++ ;; ++ *) lib_linked=no ;; ++ esac ++ ++ if test "$lib_linked" != yes; then ++ $echo "$modename: configuration error: unsupported hardcode properties" ++ exit 1 ++ fi ++ ++ if test -n "$add_shlibpath"; then ++ case :$compile_shlibpath: in ++ *":$add_shlibpath:"*) ;; ++ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ esac ++ fi ++ if test $linkmode = prog; then ++ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" ++ test -n "$add" && compile_deplibs="$add $compile_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ if test "$hardcode_direct" != yes && \ ++ test "$hardcode_minus_L" != yes && \ ++ test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ fi ++ fi ++ fi ++ ++ if test $linkmode = prog || test "$mode" = relink; then ++ add_shlibpath= ++ add_dir= ++ add= ++ # Finalize command for both is simple: just hardcode it. ++ if test "$hardcode_direct" = yes; then ++ add="$libdir/$linklib" ++ elif test "$hardcode_minus_L" = yes; then ++ add_dir="-L$libdir" ++ add="-l$name" ++ elif test "$hardcode_shlibpath_var" = yes; then ++ case :$finalize_shlibpath: in ++ *":$libdir:"*) ;; ++ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ esac ++ add="-l$name" ++ else ++ # We cannot seem to hardcode it, guess we'll fake it. ++ add_dir="-L$libdir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi ++ add="-l$name" ++ fi ++ ++ if test $linkmode = prog; then ++ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" ++ test -n "$add" && finalize_deplibs="$add $finalize_deplibs" ++ else ++ test -n "$add_dir" && deplibs="$add_dir $deplibs" ++ test -n "$add" && deplibs="$add $deplibs" ++ fi ++ fi ++ elif test $linkmode = prog; then ++ if test "$alldeplibs" = yes && ++ { test "$deplibs_check_method" = pass_all || ++ { test "$build_libtool_libs" = yes && ++ test -n "$library_names"; }; }; then ++ # We only need to search for static libraries ++ continue ++ fi ++ ++ # Try to link the static library ++ # Here we assume that one of hardcode_direct or hardcode_minus_L ++ # is not unsupported. This is valid on all known static and ++ # shared platforms. ++ if test "$hardcode_direct" != unsupported; then ++ test -n "$old_library" && linklib="$old_library" ++ compile_deplibs="$dir/$linklib $compile_deplibs" ++ finalize_deplibs="$dir/$linklib $finalize_deplibs" ++ else ++ compile_deplibs="-l$name -L$dir $compile_deplibs" ++ finalize_deplibs="-l$name -L$dir $finalize_deplibs" ++ fi ++ elif test "$build_libtool_libs" = yes; then ++ # Not a shared library ++ if test "$deplibs_check_method" != pass_all; then ++ # We're trying link a shared library against a static one ++ # but the system doesn't support it. ++ ++ # Just print a warning and add the library to dependency_libs so ++ # that the program can be linked against the static library. ++ echo ++ echo "*** Warning: This system can not link to static lib archive $lib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have." ++ if test "$module" = yes; then ++ echo "*** But as you try to build a module library, libtool will still create " ++ echo "*** a static module, that should work as long as the dlopening application" ++ echo "*** is linked with the -dlopen flag to resolve symbols at runtime." ++ if test -z "$global_symbol_pipe"; then ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ else ++ convenience="$convenience $dir/$old_library" ++ old_convenience="$old_convenience $dir/$old_library" ++ deplibs="$dir/$old_library $deplibs" ++ link_static=yes ++ fi ++ fi # link shared/static library? ++ ++ if test $linkmode = lib; then ++ if test -n "$dependency_libs" && ++ { test $hardcode_into_libs != yes || test $build_old_libs = yes || ++ test $link_static = yes; }; then ++ # Extract -R from dependency_libs ++ temp_deplibs= ++ for libdir in $dependency_libs; do ++ case $libdir in ++ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` ++ case " $xrpath " in ++ *" $temp_xrpath "*) ;; ++ *) xrpath="$xrpath $temp_xrpath";; ++ esac;; ++ *) temp_deplibs="$temp_deplibs $libdir";; ++ esac ++ done ++ dependency_libs="$temp_deplibs" ++ fi ++ ++ newlib_search_path="$newlib_search_path $absdir" ++ # Link against this library ++ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" ++ # ... and its dependency_libs ++ tmp_libs= ++ for deplib in $dependency_libs; do ++ newdependency_libs="$deplib $newdependency_libs" ++ if test "X$duplicate_deps" = "Xyes" ; then ++ case "$tmp_libs " in ++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ esac ++ fi ++ tmp_libs="$tmp_libs $deplib" ++ done ++ ++ if test $link_all_deplibs != no; then ++ # Add the search paths of all dependency libraries ++ for deplib in $dependency_libs; do ++ case $deplib in ++ -L*) path="$deplib" ;; ++ *.la) ++ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$deplib" && dir="." ++ # We need an absolute path. ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; ++ *) ++ absdir=`cd "$dir" && pwd` ++ if test -z "$absdir"; then ++ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 ++ absdir="$dir" ++ fi ++ ;; ++ esac ++ if grep "^installed=no" $deplib > /dev/null; then ++ path="-L$absdir/$objdir" ++ else ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ if test "$absdir" != "$libdir"; then ++ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 ++ fi ++ path="-L$absdir" ++ fi ++ ;; ++ *) continue ;; ++ esac ++ case " $deplibs " in ++ *" $path "*) ;; ++ *) deplibs="$deplibs $path" ;; ++ esac ++ done ++ fi # link_all_deplibs != no ++ fi # linkmode = lib ++ done # for deplib in $libs ++ if test $pass = dlpreopen; then ++ # Link the dlpreopened libraries before other libraries ++ for deplib in $save_deplibs; do ++ deplibs="$deplib $deplibs" ++ done ++ fi ++ if test $pass != dlopen; then ++ test $pass != scan && dependency_libs="$newdependency_libs" ++ if test $pass != conv; then ++ # Make sure lib_search_path contains only unique directories. ++ lib_search_path= ++ for dir in $newlib_search_path; do ++ case "$lib_search_path " in ++ *" $dir "*) ;; ++ *) lib_search_path="$lib_search_path $dir" ;; ++ esac ++ done ++ newlib_search_path= ++ fi ++ ++ if test "$linkmode,$pass" != "prog,link"; then ++ vars="deplibs" ++ else ++ vars="compile_deplibs finalize_deplibs" ++ fi ++ for var in $vars dependency_libs; do ++ # Add libraries to $var in reverse order ++ eval tmp_libs=\"\$$var\" ++ new_libs= ++ for deplib in $tmp_libs; do ++ case $deplib in ++ -L*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $specialdeplibs " in ++ *" $deplib "*) new_libs="$deplib $new_libs" ;; ++ *) ++ case " $new_libs " in ++ *" $deplib "*) ;; ++ *) new_libs="$deplib $new_libs" ;; ++ esac ++ ;; ++ esac ++ ;; ++ esac ++ done ++ tmp_libs= ++ for deplib in $new_libs; do ++ case $deplib in ++ -L*) ++ case " $tmp_libs " in ++ *" $deplib "*) ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ ;; ++ *) tmp_libs="$tmp_libs $deplib" ;; ++ esac ++ done ++ eval $var=\"$tmp_libs\" ++ done # for var ++ fi ++ if test "$pass" = "conv" && ++ { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then ++ libs="$deplibs" # reset libs ++ deplibs= ++ fi ++ done # for pass ++ if test $linkmode = prog; then ++ dlfiles="$newdlfiles" ++ dlprefiles="$newdlprefiles" ++ fi ++ ++ case $linkmode in ++ oldlib) ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$rpath"; then ++ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$xrpath"; then ++ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 ++ fi ++ ++ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then ++ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 ++ fi ++ ++ # Now set the variables for building old libraries. ++ build_libtool_libs=no ++ oldlibs="$output" ++ objs="$objs$old_deplibs" ++ ;; ++ ++ lib) ++ # Make sure we only generate libraries of the form `libNAME.la'. ++ case $outputname in ++ lib*) ++ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` ++ eval libname=\"$libname_spec\" ++ ;; ++ *) ++ if test "$module" = no; then ++ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ if test "$need_lib_prefix" != no; then ++ # Add the "lib" prefix for modules if required ++ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` ++ eval libname=\"$libname_spec\" ++ else ++ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` ++ fi ++ ;; ++ esac ++ ++ if test -n "$objs"; then ++ if test "$deplibs_check_method" != pass_all; then ++ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 ++ exit 1 ++ else ++ echo ++ echo "*** Warning: Linking the shared library $output against the non-libtool" ++ echo "*** objects $objs is not portable!" ++ libobjs="$libobjs $objs" ++ fi ++ fi ++ ++ if test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 ++ fi ++ ++ set dummy $rpath ++ if test $# -gt 2; then ++ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 ++ fi ++ install_libdir="$2" ++ ++ oldlibs= ++ if test -z "$rpath"; then ++ if test "$build_libtool_libs" = yes; then ++ # Building a libtool convenience library. ++ libext=al ++ oldlibs="$output_objdir/$libname.$libext $oldlibs" ++ build_libtool_libs=convenience ++ build_old_libs=yes ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 ++ fi ++ else ++ ++ # Parse the version information argument. ++ save_ifs="$IFS"; IFS=':' ++ set dummy $vinfo 0 0 0 ++ IFS="$save_ifs" ++ ++ if test -n "$8"; then ++ $echo "$modename: too many parameters to \`-version-info'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ current="$2" ++ revision="$3" ++ age="$4" ++ ++ # Check that each of the things are valid numbers. ++ case $current in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; ++ *) ++ $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ case $revision in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; ++ *) ++ $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ case $age in ++ 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; ++ *) ++ $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ if test $age -gt $current; then ++ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 ++ $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ++ exit 1 ++ fi ++ ++ # Calculate the version variables. ++ major= ++ versuffix= ++ verstring= ++ case $version_type in ++ none) ;; ++ ++ darwin) ++ # Like Linux, but with the current version available in ++ # verstring for coding it into the library header ++ major=.`expr $current - $age` ++ versuffix="$major.$age.$revision" ++ # Darwin ld doesn't like 0 for these options... ++ minor_current=`expr $current + 1` ++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ++ ;; ++ ++ freebsd-aout) ++ major=".$current" ++ versuffix=".$current.$revision"; ++ ;; ++ ++ freebsd-elf) ++ major=".$current" ++ versuffix=".$current"; ++ ;; ++ ++ irix | nonstopux) ++ major=`expr $current - $age + 1` ++ ++ case $version_type in ++ nonstopux) verstring_prefix=nonstopux ;; ++ *) verstring_prefix=sgi ;; ++ esac ++ verstring="$verstring_prefix$major.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$revision ++ while test $loop != 0; do ++ iface=`expr $revision - $loop` ++ loop=`expr $loop - 1` ++ verstring="$verstring_prefix$major.$iface:$verstring" ++ done ++ ++ # Before this point, $major must not contain `.'. ++ major=.$major ++ versuffix="$major.$revision" ++ ;; ++ ++ linux) ++ major=.`expr $current - $age` ++ versuffix="$major.$age.$revision" ++ ;; ++ ++ osf) ++ major=.`expr $current - $age` ++ versuffix=".$current.$age.$revision" ++ verstring="$current.$age.$revision" ++ ++ # Add in all the interfaces that we are compatible with. ++ loop=$age ++ while test $loop != 0; do ++ iface=`expr $current - $loop` ++ loop=`expr $loop - 1` ++ verstring="$verstring:${iface}.0" ++ done ++ ++ # Make executables depend on our current version. ++ verstring="$verstring:${current}.0" ++ ;; ++ ++ sunos) ++ major=".$current" ++ versuffix=".$current.$revision" ++ ;; ++ ++ windows) ++ # Use '-' rather than '.', since we only want one ++ # extension on DOS 8.3 filesystems. ++ major=`expr $current - $age` ++ versuffix="-$major" ++ ;; ++ ++ *) ++ $echo "$modename: unknown library version type \`$version_type'" 1>&2 ++ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Clear the version info if we defaulted, and they specified a release. ++ if test -z "$vinfo" && test -n "$release"; then ++ major= ++ verstring="0.0" ++ case $version_type in ++ darwin) ++ # we can't check for "0.0" in archive_cmds due to quoting ++ # problems, so we reset it completely ++ verstring="" ++ ;; ++ *) ++ verstring="0.0" ++ ;; ++ esac ++ if test "$need_version" = no; then ++ versuffix= ++ else ++ versuffix=".0.0" ++ fi ++ fi ++ ++ # Remove version info from name if versioning should be avoided ++ if test "$avoid_version" = yes && test "$need_version" = no; then ++ major= ++ versuffix= ++ verstring="" ++ fi ++ ++ # Check to see if the archive will have undefined symbols. ++ if test "$allow_undefined" = yes; then ++ if test "$allow_undefined_flag" = unsupported; then ++ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 ++ build_libtool_libs=no ++ build_old_libs=yes ++ fi ++ else ++ # Don't allow undefined symbols. ++ allow_undefined_flag="$no_undefined_flag" ++ fi ++ fi ++ ++ if test "$mode" != relink; then ++ # Remove our outputs. ++ $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" ++ $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* ++ fi ++ ++ # Now set the variables for building old libraries. ++ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then ++ oldlibs="$oldlibs $output_objdir/$libname.$libext" ++ ++ # Transform .lo files to .o files. ++ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` ++ fi ++ ++ # Eliminate all temporary directories. ++ for path in $notinst_path; do ++ lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` ++ deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` ++ dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` ++ done ++ ++ if test -n "$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ temp_xrpath= ++ for libdir in $xrpath; do ++ temp_xrpath="$temp_xrpath -R$libdir" ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ if test $hardcode_into_libs != yes || test $build_old_libs = yes; then ++ dependency_libs="$temp_xrpath $dependency_libs" ++ fi ++ fi ++ ++ # Make sure dlfiles contains only unique files that won't be dlpreopened ++ old_dlfiles="$dlfiles" ++ dlfiles= ++ for lib in $old_dlfiles; do ++ case " $dlprefiles $dlfiles " in ++ *" $lib "*) ;; ++ *) dlfiles="$dlfiles $lib" ;; ++ esac ++ done ++ ++ # Make sure dlprefiles contains only unique files ++ old_dlprefiles="$dlprefiles" ++ dlprefiles= ++ for lib in $old_dlprefiles; do ++ case "$dlprefiles " in ++ *" $lib "*) ;; ++ *) dlprefiles="$dlprefiles $lib" ;; ++ esac ++ done ++ ++ if test "$build_libtool_libs" = yes; then ++ if test -n "$rpath"; then ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) ++ # these systems don't actually have a c library (as such)! ++ ;; ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # Rhapsody C library is in the System framework ++ deplibs="$deplibs -framework System" ++ ;; ++ *-*-netbsd*) ++ # Don't link with libc until the a.out ld.so is fixed. ++ ;; ++ *-*-openbsd* | *-*-freebsd*) ++ # Do not include libc due to us having libc/libc_r. ++ ;; ++ *) ++ # Add libc to deplibs on all other systems if necessary. ++ if test $build_libtool_need_lc = "yes"; then ++ deplibs="$deplibs -lc" ++ fi ++ ;; ++ esac ++ fi ++ ++ # Transform deplibs into only deplibs that can be linked in shared. ++ name_save=$name ++ libname_save=$libname ++ release_save=$release ++ versuffix_save=$versuffix ++ major_save=$major ++ # I'm not sure if I'm treating the release correctly. I think ++ # release should show up in the -l (ie -lgmp5) so we don't want to ++ # add it in twice. Is that correct? ++ release="" ++ versuffix="" ++ major="" ++ newdeplibs= ++ droppeddeps=no ++ case $deplibs_check_method in ++ pass_all) ++ # Don't check for shared/static. Everything works. ++ # This might be a little naive. We might want to check ++ # whether the library exists or not. But this is on ++ # osf3 & osf4 and I'm not really sure... Just ++ # implementing what was already the behaviour. ++ newdeplibs=$deplibs ++ ;; ++ test_compile) ++ # This code stresses the "libraries are programs" paradigm to its ++ # limits. Maybe even breaks it. We compile a program, linking it ++ # against the deplibs as a proxy for the library. Then we can check ++ # whether they linked in statically or dynamically with ldd. ++ $rm conftest.c ++ cat > conftest.c </dev/null` ++ for potent_lib in $potential_libs; do ++ # Follow soft links. ++ if ls -lLd "$potent_lib" 2>/dev/null \ ++ | grep " -> " >/dev/null; then ++ continue ++ fi ++ # The statement above tries to avoid entering an ++ # endless loop below, in case of cyclic links. ++ # We might still enter an endless loop, since a link ++ # loop can be closed while we follow links, ++ # but so what? ++ potlib="$potent_lib" ++ while test -h "$potlib" 2>/dev/null; do ++ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` ++ case $potliblink in ++ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; ++ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; ++ esac ++ done ++ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ ++ | ${SED} 10q \ ++ | egrep "$file_magic_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ echo ++ echo "*** Warning: linker path does not have real file for library $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ echo "*** with $libname but no candidates were found. (...for file magic test)" ++ else ++ echo "*** with $libname and none of the candidates passed a file format test" ++ echo "*** using a file magic. Last file checked: $potlib" ++ fi ++ fi ++ else ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ fi ++ done # Gone through all deplibs. ++ ;; ++ match_pattern*) ++ set dummy $deplibs_check_method ++ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` ++ for a_deplib in $deplibs; do ++ name="`expr $a_deplib : '-l\(.*\)'`" ++ # If $name is empty we are operating on a -L argument. ++ if test -n "$name" && test "$name" != "0"; then ++ libname=`eval \\$echo \"$libname_spec\"` ++ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ++ potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ for potent_lib in $potential_libs; do ++ potlib="$potent_lib" # see symlink-check below in file_magic test ++ if eval echo \"$potent_lib\" 2>/dev/null \ ++ | ${SED} 10q \ ++ | egrep "$match_pattern_regex" > /dev/null; then ++ newdeplibs="$newdeplibs $a_deplib" ++ a_deplib="" ++ break 2 ++ fi ++ done ++ done ++ if test -n "$a_deplib" ; then ++ droppeddeps=yes ++ echo ++ echo "*** Warning: linker path does not have real file for library $a_deplib." ++ echo "*** I have the capability to make that library automatically link in when" ++ echo "*** you link to this library. But I can only do this if you have a" ++ echo "*** shared version of the library, which you do not appear to have" ++ echo "*** because I did check the linker path looking for a file starting" ++ if test -z "$potlib" ; then ++ echo "*** with $libname but no candidates were found. (...for regex pattern test)" ++ else ++ echo "*** with $libname and none of the candidates passed a file format test" ++ echo "*** using a regex pattern. Last file checked: $potlib" ++ fi ++ fi ++ else ++ # Add a -L argument. ++ newdeplibs="$newdeplibs $a_deplib" ++ fi ++ done # Gone through all deplibs. ++ ;; ++ none | unknown | *) ++ newdeplibs="" ++ if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ ++ -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | ++ grep . >/dev/null; then ++ echo ++ if test "X$deplibs_check_method" = "Xnone"; then ++ echo "*** Warning: inter-library dependencies are not supported in this platform." ++ else ++ echo "*** Warning: inter-library dependencies are not known to be supported." ++ fi ++ echo "*** All declared inter-library dependencies are being dropped." ++ droppeddeps=yes ++ fi ++ ;; ++ esac ++ versuffix=$versuffix_save ++ major=$major_save ++ release=$release_save ++ libname=$libname_save ++ name=$name_save ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ ;; ++ esac ++ ++ if test "$droppeddeps" = yes; then ++ if test "$module" = yes; then ++ echo ++ echo "*** Warning: libtool could not satisfy all declared inter-library" ++ echo "*** dependencies of module $libname. Therefore, libtool will create" ++ echo "*** a static module, that should work as long as the dlopening" ++ echo "*** application is linked with the -dlopen flag." ++ if test -z "$global_symbol_pipe"; then ++ echo ++ echo "*** However, this would only work if libtool was able to extract symbol" ++ echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ++ echo "*** not find such a program. So, this module is probably useless." ++ echo "*** \`nm' from GNU binutils and a full rebuild may help." ++ fi ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ else ++ echo "*** The inter-library dependencies that have been dropped here will be" ++ echo "*** automatically added whenever a program is linked with this library" ++ echo "*** or is declared to -dlopen it." ++ ++ if test $allow_undefined = no; then ++ echo ++ echo "*** Since this library must not contain undefined symbols," ++ echo "*** because either the platform does not support them or" ++ echo "*** it was explicitly requested with -no-undefined," ++ echo "*** libtool will only create a static version of it." ++ if test "$build_old_libs" = no; then ++ oldlibs="$output_objdir/$libname.$libext" ++ build_libtool_libs=module ++ build_old_libs=yes ++ else ++ build_libtool_libs=no ++ fi ++ fi ++ fi ++ fi ++ # Done checking deplibs! ++ deplibs=$newdeplibs ++ fi ++ ++ # All the library-specific variables (install_libdir is set above). ++ library_names= ++ old_library= ++ dlname= ++ ++ # Test again, we may have decided not to build it any more ++ if test "$build_libtool_libs" = yes; then ++ if test $hardcode_into_libs = yes; then ++ # Hardcode the library paths ++ hardcode_libdirs= ++ dep_rpath= ++ rpath="$finalize_rpath" ++ test "$mode" != relink && rpath="$compile_rpath$rpath" ++ for libdir in $rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ dep_rpath="$dep_rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval dep_rpath=\"$hardcode_libdir_flag_spec\" ++ fi ++ if test -n "$runpath_var" && test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" ++ fi ++ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" ++ fi ++ ++ shlibpath="$finalize_shlibpath" ++ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ if test -n "$shlibpath"; then ++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" ++ fi ++ ++ # Get the real and link names of the library. ++ eval library_names=\"$library_names_spec\" ++ set dummy $library_names ++ realname="$2" ++ shift; shift ++ ++ if test -n "$soname_spec"; then ++ eval soname=\"$soname_spec\" ++ else ++ soname="$realname" ++ fi ++ test -z "$dlname" && dlname=$soname ++ ++ lib="$output_objdir/$realname" ++ for link ++ do ++ linknames="$linknames $link" ++ done ++ ++ # Ensure that we have .o objects for linkers which dislike .lo ++ # (e.g. aix) in case we are running --disable-static ++ for obj in $libobjs; do ++ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$obj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` ++ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` ++ if test ! -f $xdir/$oldobj; then ++ $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" ++ $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? ++ fi ++ done ++ ++ # Use standard objects if they are pic ++ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then ++ $show "generating symbol list for \`$libname.la'" ++ export_symbols="$output_objdir/$libname.exp" ++ $run $rm $export_symbols ++ eval cmds=\"$export_symbols_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ if test -n "$export_symbols_regex"; then ++ $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" ++ $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' ++ $show "$mv \"${export_symbols}T\" \"$export_symbols\"" ++ $run eval '$mv "${export_symbols}T" "$export_symbols"' ++ fi ++ fi ++ fi ++ ++ if test -n "$export_symbols" && test -n "$include_expsyms"; then ++ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' ++ fi ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ++ else ++ gentop="$output_objdir/${outputname}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ for xlib in $convenience; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ fi ++ ++ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then ++ eval flag=\"$thread_safe_flag_spec\" ++ linker_flags="$linker_flags $flag" ++ fi ++ ++ # Make a backup of the uninstalled library when relinking ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? ++ fi ++ ++ # Do each of the archive commands. ++ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ++ eval cmds=\"$archive_expsym_cmds\" ++ else ++ save_deplibs="$deplibs" ++ for conv in $convenience; do ++ tmp_deplibs= ++ for test_deplib in $deplibs; do ++ if test "$test_deplib" != "$conv"; then ++ tmp_deplibs="$tmp_deplibs $test_deplib" ++ fi ++ done ++ deplibs="$tmp_deplibs" ++ done ++ eval cmds=\"$archive_cmds\" ++ deplibs="$save_deplibs" ++ fi ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ ++ # Restore the uninstalled library and exit ++ if test "$mode" = relink; then ++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? ++ exit 0 ++ fi ++ ++ # Create links to the real library. ++ for linkname in $linknames; do ++ if test "$realname" != "$linkname"; then ++ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" ++ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? ++ fi ++ done ++ ++ # If -module or -export-dynamic was specified, set the dlname. ++ if test "$module" = yes || test "$export_dynamic" = yes; then ++ # On all known operating systems, these are identical. ++ dlname="$soname" ++ fi ++ fi ++ ;; ++ ++ obj) ++ if test -n "$deplibs"; then ++ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$rpath"; then ++ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$xrpath"; then ++ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 ++ fi ++ ++ case $output in ++ *.lo) ++ if test -n "$objs$old_deplibs"; then ++ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 ++ exit 1 ++ fi ++ libobj="$output" ++ obj=`$echo "X$output" | $Xsed -e "$lo2o"` ++ ;; ++ *) ++ libobj= ++ obj="$output" ++ ;; ++ esac ++ ++ # Delete the old objects. ++ $run $rm $obj $libobj ++ ++ # Objects from convenience libraries. This assumes ++ # single-version convenience libraries. Whenever we create ++ # different ones for PIC/non-PIC, this we'll have to duplicate ++ # the extraction. ++ reload_conv_objs= ++ gentop= ++ # reload_cmds runs $LD directly, so let us get rid of ++ # -Wl from whole_archive_flag_spec ++ wl= ++ ++ if test -n "$convenience"; then ++ if test -n "$whole_archive_flag_spec"; then ++ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" ++ else ++ gentop="$output_objdir/${obj}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ for xlib in $convenience; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ fi ++ ++ # Create the old-style object. ++ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test ++ ++ output="$obj" ++ eval cmds=\"$reload_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ ++ # Exit if we aren't doing a library object file. ++ if test -z "$libobj"; then ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ exit 0 ++ fi ++ ++ if test "$build_libtool_libs" != yes; then ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ # Create an invalid libtool object if no PIC, so that we don't ++ # accidentally link it into a program. ++ $show "echo timestamp > $libobj" ++ $run eval "echo timestamp > $libobj" || exit $? ++ exit 0 ++ fi ++ ++ if test -n "$pic_flag" || test "$pic_mode" != default; then ++ # Only do commands if we really have different PIC objects. ++ reload_objs="$libobjs $reload_conv_objs" ++ output="$libobj" ++ eval cmds=\"$reload_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ else ++ # Just create a symlink. ++ $show $rm $libobj ++ $run $rm $libobj ++ xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$libobj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` ++ oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` ++ $show "(cd $xdir && $LN_S $oldobj $baseobj)" ++ $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? ++ fi ++ ++ if test -n "$gentop"; then ++ $show "${rm}r $gentop" ++ $run ${rm}r $gentop ++ fi ++ ++ exit 0 ++ ;; ++ ++ prog) ++ case $host in ++ *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; ++ esac ++ if test -n "$vinfo"; then ++ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 ++ fi ++ ++ if test -n "$release"; then ++ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 ++ fi ++ ++ if test "$preload" = yes; then ++ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && ++ test "$dlopen_self_static" = unknown; then ++ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." ++ fi ++ fi ++ ++ case $host in ++ *-*-rhapsody* | *-*-darwin1.[012]) ++ # On Rhapsody replace the C library is the System framework ++ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ++ case $host in ++ *darwin*) ++ # Don't allow lazy linking, it breaks C++ global constructors ++ compile_command="$compile_command ${wl}-bind_at_load" ++ finalize_command="$finalize_command ${wl}-bind_at_load" ++ ;; ++ esac ++ ;; ++ esac ++ ++ compile_command="$compile_command $compile_deplibs" ++ finalize_command="$finalize_command $finalize_deplibs" ++ ++ if test -n "$rpath$xrpath"; then ++ # If the user specified any rpath flags, then add them. ++ for libdir in $rpath $xrpath; do ++ # This is the magic to use -rpath. ++ case "$finalize_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_rpath="$finalize_rpath $libdir" ;; ++ esac ++ done ++ fi ++ ++ # Now hardcode the library paths ++ rpath= ++ hardcode_libdirs= ++ for libdir in $compile_rpath $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath="$rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$perm_rpath " in ++ *" $libdir "*) ;; ++ *) perm_rpath="$perm_rpath $libdir" ;; ++ esac ++ fi ++ case $host in ++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) ++ case :$dllsearchpath: in ++ *":$libdir:"*) ;; ++ *) dllsearchpath="$dllsearchpath:$libdir";; ++ esac ++ ;; ++ esac ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ compile_rpath="$rpath" ++ ++ rpath= ++ hardcode_libdirs= ++ for libdir in $finalize_rpath; do ++ if test -n "$hardcode_libdir_flag_spec"; then ++ if test -n "$hardcode_libdir_separator"; then ++ if test -z "$hardcode_libdirs"; then ++ hardcode_libdirs="$libdir" ++ else ++ # Just accumulate the unique libdirs. ++ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in ++ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ++ ;; ++ *) ++ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ ;; ++ esac ++ fi ++ else ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath="$rpath $flag" ++ fi ++ elif test -n "$runpath_var"; then ++ case "$finalize_perm_rpath " in ++ *" $libdir "*) ;; ++ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; ++ esac ++ fi ++ done ++ # Substitute the hardcoded libdirs into the rpath. ++ if test -n "$hardcode_libdir_separator" && ++ test -n "$hardcode_libdirs"; then ++ libdir="$hardcode_libdirs" ++ eval rpath=\" $hardcode_libdir_flag_spec\" ++ fi ++ finalize_rpath="$rpath" ++ ++ if test -n "$libobjs" && test "$build_old_libs" = yes; then ++ # Transform all the library objects into standard objects. ++ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ fi ++ ++ dlsyms= ++ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then ++ if test -n "$NM" && test -n "$global_symbol_pipe"; then ++ dlsyms="${outputname}S.c" ++ else ++ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 ++ fi ++ fi ++ ++ if test -n "$dlsyms"; then ++ case $dlsyms in ++ "") ;; ++ *.c) ++ # Discover the nlist of each of the dlfiles. ++ nlist="$output_objdir/${outputname}.nm" ++ ++ $show "$rm $nlist ${nlist}S ${nlist}T" ++ $run $rm "$nlist" "${nlist}S" "${nlist}T" ++ ++ # Parse the name list into a source file. ++ $show "creating $output_objdir/$dlsyms" ++ ++ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ ++/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ ++/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ ++ ++#ifdef __cplusplus ++extern \"C\" { ++#endif ++ ++/* Prevent the only kind of declaration conflicts we can make. */ ++#define lt_preloaded_symbols some_other_symbol ++ ++/* External symbol declarations for the compiler. */\ ++" ++ ++ if test "$dlself" = yes; then ++ $show "generating symbol list for \`$output'" ++ ++ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" ++ ++ # Add our own program objects to the symbol list. ++ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` ++ for arg in $progfiles; do ++ $show "extracting global C symbols from \`$arg'" ++ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -n "$exclude_expsyms"; then ++ $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' ++ $run eval '$mv "$nlist"T "$nlist"' ++ fi ++ ++ if test -n "$export_symbols_regex"; then ++ $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' ++ $run eval '$mv "$nlist"T "$nlist"' ++ fi ++ ++ # Prepare the list of exported symbols ++ if test -z "$export_symbols"; then ++ export_symbols="$output_objdir/$output.exp" ++ $run $rm $export_symbols ++ $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ++ else ++ $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' ++ $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' ++ $run eval 'mv "$nlist"T "$nlist"' ++ fi ++ fi ++ ++ for arg in $dlprefiles; do ++ $show "extracting global C symbols from \`$arg'" ++ name=`echo "$arg" | ${SED} -e 's%^.*/%%'` ++ $run eval 'echo ": $name " >> "$nlist"' ++ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" ++ done ++ ++ if test -z "$run"; then ++ # Make sure we have at least an empty file. ++ test -f "$nlist" || : > "$nlist" ++ ++ if test -n "$exclude_expsyms"; then ++ egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T ++ $mv "$nlist"T "$nlist" ++ fi ++ ++ # Try sorting and uniquifying the output. ++ if grep -v "^: " < "$nlist" | ++ if sort -k 3 /dev/null 2>&1; then ++ sort -k 3 ++ else ++ sort +2 ++ fi | ++ uniq > "$nlist"S; then ++ : ++ else ++ grep -v "^: " < "$nlist" > "$nlist"S ++ fi ++ ++ if test -f "$nlist"S; then ++ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' ++ else ++ echo '/* NONE */' >> "$output_objdir/$dlsyms" ++ fi ++ ++ $echo >> "$output_objdir/$dlsyms" "\ ++ ++#undef lt_preloaded_symbols ++ ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr void * ++#else ++# define lt_ptr char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr address; ++} ++lt_preloaded_symbols[] = ++{\ ++" ++ ++ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" ++ ++ $echo >> "$output_objdir/$dlsyms" "\ ++ {0, (lt_ptr) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif\ ++" ++ fi ++ ++ pic_flag_for_symtable= ++ case $host in ++ # compiling the symbol table file with pic_flag works around ++ # a FreeBSD bug that causes programs to crash when -lm is ++ # linked before any other PIC object. But we must not use ++ # pic_flag when linking with -static. The problem exists in ++ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. ++ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; ++ esac;; ++ *-*-hpux*) ++ case "$compile_command " in ++ *" -static "*) ;; ++ *) pic_flag_for_symtable=" $pic_flag -DPIC";; ++ esac ++ esac ++ ++ # Now compile the dynamic symbol file. ++ $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" ++ $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? ++ ++ # Clean up the generated files. ++ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" ++ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" ++ ++ # Transform the symbol file into the correct name. ++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ++ ;; ++ *) ++ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 ++ exit 1 ++ ;; ++ esac ++ else ++ # We keep going just in case the user didn't refer to ++ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe ++ # really was required. ++ ++ # Nullify the symbol file. ++ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` ++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` ++ fi ++ ++ if test $need_relink = no || test "$build_libtool_libs" != yes; then ++ # Replace the output file specification. ++ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ link_command="$compile_command$compile_rpath" ++ ++ # We have no uninstalled library dependencies, so finalize right now. ++ $show "$link_command" ++ $run eval "$link_command" ++ status=$? ++ ++ # Delete the generated files. ++ if test -n "$dlsyms"; then ++ $show "$rm $output_objdir/${outputname}S.${objext}" ++ $run $rm "$output_objdir/${outputname}S.${objext}" ++ fi ++ ++ exit $status ++ fi ++ ++ if test -n "$shlibpath_var"; then ++ # We should set the shlibpath_var ++ rpath= ++ for dir in $temp_rpath; do ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]*) ++ # Absolute path. ++ rpath="$rpath$dir:" ++ ;; ++ *) ++ # Relative path: add a thisdir entry. ++ rpath="$rpath\$thisdir/$dir:" ++ ;; ++ esac ++ done ++ temp_rpath="$rpath" ++ fi ++ ++ if test -n "$compile_shlibpath$finalize_shlibpath"; then ++ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" ++ fi ++ if test -n "$finalize_shlibpath"; then ++ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" ++ fi ++ ++ compile_var= ++ finalize_var= ++ if test -n "$runpath_var"; then ++ if test -n "$perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ compile_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ if test -n "$finalize_perm_rpath"; then ++ # We should set the runpath_var. ++ rpath= ++ for dir in $finalize_perm_rpath; do ++ rpath="$rpath$dir:" ++ done ++ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " ++ fi ++ fi ++ ++ if test "$no_install" = yes; then ++ # We don't need to create a wrapper script. ++ link_command="$compile_var$compile_command$compile_rpath" ++ # Replace the output file specification. ++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` ++ # Delete the old output file. ++ $run $rm $output ++ # Link the executable and exit ++ $show "$link_command" ++ $run eval "$link_command" || exit $? ++ exit 0 ++ fi ++ ++ if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" ++ ++ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 ++ $echo "$modename: \`$output' will be relinked during installation" 1>&2 ++ else ++ if test "$fast_install" != no; then ++ link_command="$finalize_var$compile_command$finalize_rpath" ++ if test "$fast_install" = yes; then ++ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` ++ else ++ # fast_install is set to needless ++ relink_command= ++ fi ++ else ++ link_command="$compile_var$compile_command$compile_rpath" ++ relink_command="$finalize_var$finalize_command$finalize_rpath" ++ fi ++ fi ++ ++ # Replace the output file specification. ++ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` ++ ++ # Delete the old output files. ++ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname ++ ++ $show "$link_command" ++ $run eval "$link_command" || exit $? ++ ++ # Now create the wrapper script. ++ $show "creating $output" ++ ++ # Quote the relink command for shipping. ++ if test -n "$relink_command"; then ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ relink_command="(cd `pwd`; $relink_command)" ++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Quote $echo for shipping. ++ if test "X$echo" = "X$SHELL $0 --fallback-echo"; then ++ case $0 in ++ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; ++ *) qecho="$SHELL `pwd`/$0 --fallback-echo";; ++ esac ++ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` ++ else ++ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` ++ fi ++ ++ # Only actually do things if our run command is non-null. ++ if test -z "$run"; then ++ # win32 will think the script is a binary if it has ++ # a .exe suffix, so we strip it off here. ++ case $output in ++ *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; ++ esac ++ # test for cygwin because mv fails w/o .exe extensions ++ case $host in ++ *cygwin*) exeext=.exe ;; ++ *) exeext= ;; ++ esac ++ $rm $output ++ trap "$rm $output; exit 1" 1 2 15 ++ ++ $echo > $output "\ ++#! $SHELL ++ ++# $output - temporary wrapper script for $objdir/$outputname ++# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP ++# ++# The $output program cannot be directly executed until all the libtool ++# libraries that it depends on are installed. ++# ++# This wrapper script should never be moved out of the build directory. ++# If it is, it will not operate correctly. ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed="${SED}"' -e 1s/^X//' ++sed_quote_subst='$sed_quote_subst' ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi ++ ++relink_command=\"$relink_command\" ++ ++# This environment variable determines our operation mode. ++if test \"\$libtool_install_magic\" = \"$magic\"; then ++ # install mode needs the following variable: ++ notinst_deplibs='$notinst_deplibs' ++else ++ # When we are sourced in execute mode, \$file and \$echo are already set. ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ echo=\"$qecho\" ++ file=\"\$0\" ++ # Make sure echo works. ++ if test \"X\$1\" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then ++ # Yippee, \$echo works! ++ : ++ else ++ # Restart under the correct shell, and then maybe \$echo will work. ++ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} ++ fi ++ fi\ ++" ++ $echo >> $output "\ ++ ++ # Find the directory that this script lives in. ++ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` ++ test \"x\$thisdir\" = \"x\$file\" && thisdir=. ++ ++ # Follow symbolic links until we get to the real thisdir. ++ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` ++ while test -n \"\$file\"; do ++ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` ++ ++ # If there was a directory component, then change thisdir. ++ if test \"x\$destdir\" != \"x\$file\"; then ++ case \"\$destdir\" in ++ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; ++ *) thisdir=\"\$thisdir/\$destdir\" ;; ++ esac ++ fi ++ ++ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` ++ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` ++ done ++ ++ # Try to get the absolute directory name. ++ absdir=\`cd \"\$thisdir\" && pwd\` ++ test -n \"\$absdir\" && thisdir=\"\$absdir\" ++" ++ ++ if test "$fast_install" = yes; then ++ echo >> $output "\ ++ program=lt-'$outputname'$exeext ++ progdir=\"\$thisdir/$objdir\" ++ ++ if test ! -f \"\$progdir/\$program\" || \\ ++ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ ++ test \"X\$file\" != \"X\$progdir/\$program\"; }; then ++ ++ file=\"\$\$-\$program\" ++ ++ if test ! -d \"\$progdir\"; then ++ $mkdir \"\$progdir\" ++ else ++ $rm \"\$progdir/\$file\" ++ fi" ++ ++ echo >> $output "\ ++ ++ # relink executable if necessary ++ if test -n \"\$relink_command\"; then ++ if relink_command_output=\`eval \$relink_command 2>&1\`; then : ++ else ++ $echo \"\$relink_command_output\" >&2 ++ $rm \"\$progdir/\$file\" ++ exit 1 ++ fi ++ fi ++ ++ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || ++ { $rm \"\$progdir/\$program\"; ++ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } ++ $rm \"\$progdir/\$file\" ++ fi" ++ else ++ echo >> $output "\ ++ program='$outputname' ++ progdir=\"\$thisdir/$objdir\" ++" ++ fi ++ ++ echo >> $output "\ ++ ++ if test -f \"\$progdir/\$program\"; then" ++ ++ # Export our shlibpath_var if we have one. ++ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then ++ $echo >> $output "\ ++ # Add our own library path to $shlibpath_var ++ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" ++ ++ # Some systems cannot cope with colon-terminated $shlibpath_var ++ # The second colon is a workaround for a bug in BeOS R4 ${SED} ++ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` ++ ++ export $shlibpath_var ++" ++ fi ++ ++ # fixup the dll searchpath if we need to. ++ if test -n "$dllsearchpath"; then ++ $echo >> $output "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" ++ fi ++ ++ $echo >> $output "\ ++ if test \"\$libtool_execute_magic\" != \"$magic\"; then ++ # Run the actual program with our arguments. ++" ++ case $host in ++ # win32 systems need to use the prog path for dll ++ # lookup to work ++ *-*-cygwin* | *-*-pw32*) ++ $echo >> $output "\ ++ exec \$progdir/\$program \${1+\"\$@\"} ++" ++ ;; ++ ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2*) ++ $echo >> $output "\ ++ exec \$progdir\\\\\$program \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $echo >> $output "\ ++ # Export the path to the program. ++ PATH=\"\$progdir:\$PATH\" ++ export PATH ++ ++ exec \$program \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $echo >> $output "\ ++ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" ++ exit 1 ++ fi ++ else ++ # The program doesn't exist. ++ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 ++ \$echo \"This script is just a wrapper for \$program.\" 1>&2 ++ echo \"See the $PACKAGE documentation for more information.\" 1>&2 ++ exit 1 ++ fi ++fi\ ++" ++ chmod +x $output ++ fi ++ exit 0 ++ ;; ++ esac ++ ++ # See if we need to build an old-fashioned archive. ++ for oldlib in $oldlibs; do ++ ++ if test "$build_libtool_libs" = convenience; then ++ oldobjs="$libobjs_save" ++ addlibs="$convenience" ++ build_libtool_libs=no ++ else ++ if test "$build_libtool_libs" = module; then ++ oldobjs="$libobjs_save" ++ build_libtool_libs=no ++ else ++ oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` ++ fi ++ addlibs="$old_convenience" ++ fi ++ ++ if test -n "$addlibs"; then ++ gentop="$output_objdir/${outputname}x" ++ $show "${rm}r $gentop" ++ $run ${rm}r "$gentop" ++ $show "mkdir $gentop" ++ $run mkdir "$gentop" ++ status=$? ++ if test $status -ne 0 && test ! -d "$gentop"; then ++ exit $status ++ fi ++ generated="$generated $gentop" ++ ++ # Add in members from convenience archives. ++ for xlib in $addlibs; do ++ # Extract the objects. ++ case $xlib in ++ [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ++ *) xabs=`pwd`"/$xlib" ;; ++ esac ++ xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ++ xdir="$gentop/$xlib" ++ ++ $show "${rm}r $xdir" ++ $run ${rm}r "$xdir" ++ $show "mkdir $xdir" ++ $run mkdir "$xdir" ++ status=$? ++ if test $status -ne 0 && test ! -d "$xdir"; then ++ exit $status ++ fi ++ $show "(cd $xdir && $AR x $xabs)" ++ $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ++ ++ oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` ++ done ++ fi ++ ++ # Do each command in the archive commands. ++ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then ++ eval cmds=\"$old_archive_from_new_cmds\" ++ else ++ # Ensure that we have .o objects in place in case we decided ++ # not to build a shared library, and have fallen back to building ++ # static libs even though --disable-static was passed! ++ for oldobj in $oldobjs; do ++ if test ! -f $oldobj; then ++ xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$xdir" = "X$oldobj"; then ++ xdir="." ++ else ++ xdir="$xdir" ++ fi ++ baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` ++ obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` ++ $show "(cd $xdir && ${LN_S} $obj $baseobj)" ++ $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? ++ fi ++ done ++ ++ eval cmds=\"$old_archive_cmds\" ++ fi ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ done ++ ++ if test -n "$generated"; then ++ $show "${rm}r$generated" ++ $run ${rm}r$generated ++ fi ++ ++ # Now create the libtool archive. ++ case $output in ++ *.la) ++ old_library= ++ test "$build_old_libs" = yes && old_library="$libname.$libext" ++ $show "creating $output" ++ ++ # Preserve any variables that may affect compiler behavior ++ for var in $variables_saved_for_relink; do ++ if eval test -z \"\${$var+set}\"; then ++ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" ++ elif eval var_value=\$$var; test -z "$var_value"; then ++ relink_command="$var=; export $var; $relink_command" ++ else ++ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` ++ relink_command="$var=\"$var_value\"; export $var; $relink_command" ++ fi ++ done ++ # Quote the link command for shipping. ++ relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" ++ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` ++ ++ # Only create the output if not a dry run. ++ if test -z "$run"; then ++ for installed in no yes; do ++ if test "$installed" = yes; then ++ if test -z "$install_libdir"; then ++ break ++ fi ++ output="$output_objdir/$outputname"i ++ # Replace all uninstalled libtool libraries with the installed ones ++ newdependency_libs= ++ for deplib in $dependency_libs; do ++ case $deplib in ++ *.la) ++ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdependency_libs="$newdependency_libs $libdir/$name" ++ ;; ++ *) newdependency_libs="$newdependency_libs $deplib" ;; ++ esac ++ done ++ dependency_libs="$newdependency_libs" ++ newdlfiles= ++ for lib in $dlfiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlfiles="$newdlfiles $libdir/$name" ++ done ++ dlfiles="$newdlfiles" ++ newdlprefiles= ++ for lib in $dlprefiles; do ++ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ if test -z "$libdir"; then ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ exit 1 ++ fi ++ newdlprefiles="$newdlprefiles $libdir/$name" ++ done ++ dlprefiles="$newdlprefiles" ++ fi ++ $rm $output ++ # place dlname in correct position for cygwin ++ tdlname=$dlname ++ case $host,$output,$installed,$module,$dlname in ++ *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; ++ esac ++ $echo > $output "\ ++# $outputname - a libtool library file ++# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP ++# ++# Please DO NOT delete this file! ++# It is necessary for linking the library. ++ ++# The name that we can dlopen(3). ++dlname='$tdlname' ++ ++# Names of this library. ++library_names='$library_names' ++ ++# The name of the static archive. ++old_library='$old_library' ++ ++# Libraries that this one depends upon. ++dependency_libs='$dependency_libs' ++ ++# Version information for $libname. ++current=$current ++age=$age ++revision=$revision ++ ++# Is this an already installed library? ++installed=$installed ++ ++# Files to dlopen/dlpreopen ++dlopen='$dlfiles' ++dlpreopen='$dlprefiles' ++ ++# Directory that this library needs to be installed in: ++libdir='$install_libdir'" ++ if test "$installed" = no && test $need_relink = yes; then ++ $echo >> $output "\ ++relink_command=\"$relink_command\"" ++ fi ++ done ++ fi ++ ++ # Do a symbolic link so that the libtool archive can be found in ++ # LD_LIBRARY_PATH before the program is installed. ++ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" ++ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ++ ;; ++ esac ++ exit 0 ++ ;; ++ ++ # libtool install mode ++ install) ++ modename="$modename: install" ++ ++ # There may be an optional sh(1) argument at the beginning of ++ # install_prog (especially on Windows NT). ++ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || ++ # Allow the use of GNU shtool's install command. ++ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then ++ # Aesthetically quote it. ++ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$arg " ++ arg="$1" ++ shift ++ else ++ install_prog= ++ arg="$nonopt" ++ fi ++ ++ # The real first argument should be the name of the installation program. ++ # Aesthetically quote it. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$install_prog$arg" ++ ++ # We need to accept at least all the BSD install flags. ++ dest= ++ files= ++ opts= ++ prev= ++ install_type= ++ isdir=no ++ stripme= ++ for arg ++ do ++ if test -n "$dest"; then ++ files="$files $dest" ++ dest="$arg" ++ continue ++ fi ++ ++ case $arg in ++ -d) isdir=yes ;; ++ -f) prev="-f" ;; ++ -g) prev="-g" ;; ++ -m) prev="-m" ;; ++ -o) prev="-o" ;; ++ -s) ++ stripme=" -s" ++ continue ++ ;; ++ -*) ;; ++ ++ *) ++ # If the previous option needed an argument, then skip it. ++ if test -n "$prev"; then ++ prev= ++ else ++ dest="$arg" ++ continue ++ fi ++ ;; ++ esac ++ ++ # Aesthetically quote the argument. ++ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ++ case $arg in ++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) ++ arg="\"$arg\"" ++ ;; ++ esac ++ install_prog="$install_prog $arg" ++ done ++ ++ if test -z "$install_prog"; then ++ $echo "$modename: you must specify an install program" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$prev"; then ++ $echo "$modename: the \`$prev' option requires an argument" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ if test -z "$files"; then ++ if test -z "$dest"; then ++ $echo "$modename: no file or destination specified" 1>&2 ++ else ++ $echo "$modename: you must specify a destination" 1>&2 ++ fi ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Strip any trailing slash from the destination. ++ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` ++ ++ # Check to see that the destination is a directory. ++ test -d "$dest" && isdir=yes ++ if test "$isdir" = yes; then ++ destdir="$dest" ++ destname= ++ else ++ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$destdir" = "X$dest" && destdir=. ++ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` ++ ++ # Not a directory, so check to see that there is only one file specified. ++ set dummy $files ++ if test $# -gt 2; then ++ $echo "$modename: \`$dest' is not a directory" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ fi ++ case $destdir in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; ++ *) ++ for file in $files; do ++ case $file in ++ *.lo) ;; ++ *) ++ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ;; ++ esac ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" ++ ++ staticlibs= ++ future_libdirs= ++ current_libdirs= ++ for file in $files; do ++ ++ # Do each installation. ++ case $file in ++ *.$libext) ++ # Do the static libraries later. ++ staticlibs="$staticlibs $file" ++ ;; ++ ++ *.la) ++ # Check to see that this really is a libtool archive. ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ library_names= ++ old_library= ++ relink_command= ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Add the libdir to current_libdirs if it is the destination. ++ if test "X$destdir" = "X$libdir"; then ++ case "$current_libdirs " in ++ *" $libdir "*) ;; ++ *) current_libdirs="$current_libdirs $libdir" ;; ++ esac ++ else ++ # Note the libdir as a future libdir. ++ case "$future_libdirs " in ++ *" $libdir "*) ;; ++ *) future_libdirs="$future_libdirs $libdir" ;; ++ esac ++ fi ++ ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ ++ test "X$dir" = "X$file/" && dir= ++ dir="$dir$objdir" ++ ++ if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ if test "$inst_prefix_dir" = "$destdir"; then ++ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` ++ fi ++ ++ $echo "$modename: warning: relinking \`$file'" 1>&2 ++ $show "$relink_command" ++ if $run eval "$relink_command"; then : ++ else ++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ exit 1 ++ fi ++ fi ++ ++ # See the names of the shared library. ++ set dummy $library_names ++ if test -n "$2"; then ++ realname="$2" ++ shift ++ shift ++ ++ srcname="$realname" ++ test -n "$relink_command" && srcname="$realname"T ++ ++ # Install the shared library and build the symlinks. ++ $show "$install_prog $dir/$srcname $destdir/$realname" ++ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$striplib $destdir/$realname" ++ $run eval "$striplib $destdir/$realname" || exit $? ++ fi ++ ++ if test $# -gt 0; then ++ # Delete the old symlinks, and create new ones. ++ for linkname ++ do ++ if test "$linkname" != "$realname"; then ++ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" ++ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" ++ fi ++ done ++ fi ++ ++ # Do each command in the postinstall commands. ++ lib="$destdir/$realname" ++ eval cmds=\"$postinstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ fi ++ ++ # Install the pseudo-library for information purposes. ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ instname="$dir/$name"i ++ $show "$install_prog $instname $destdir/$name" ++ $run eval "$install_prog $instname $destdir/$name" || exit $? ++ ++ # Maybe install the static library, too. ++ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ++ ;; ++ ++ *.lo) ++ # Install (i.e. copy) a libtool object. ++ ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ destfile="$destdir/$destfile" ++ fi ++ ++ # Deduce the name of the destination old-style object file. ++ case $destfile in ++ *.lo) ++ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ++ ;; ++ *.$objext) ++ staticdest="$destfile" ++ destfile= ++ ;; ++ *) ++ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ # Install the libtool object if requested. ++ if test -n "$destfile"; then ++ $show "$install_prog $file $destfile" ++ $run eval "$install_prog $file $destfile" || exit $? ++ fi ++ ++ # Install the old object if enabled. ++ if test "$build_old_libs" = yes; then ++ # Deduce the name of the old-style object file. ++ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` ++ ++ $show "$install_prog $staticobj $staticdest" ++ $run eval "$install_prog \$staticobj \$staticdest" || exit $? ++ fi ++ exit 0 ++ ;; ++ ++ *) ++ # Figure out destination file name, if it wasn't already specified. ++ if test -n "$destname"; then ++ destfile="$destdir/$destname" ++ else ++ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ destfile="$destdir/$destfile" ++ fi ++ ++ # Do a test to see if this is really a libtool program. ++ case $host in ++ *cygwin*|*mingw*) ++ wrapper=`echo $file | ${SED} -e 's,.exe$,,'` ++ ;; ++ *) ++ wrapper=$file ++ ;; ++ esac ++ if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then ++ notinst_deplibs= ++ relink_command= ++ ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $wrapper ;; ++ *) . ./$wrapper ;; ++ esac ++ ++ # Check the variables that should have been set. ++ if test -z "$notinst_deplibs"; then ++ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 ++ exit 1 ++ fi ++ ++ finalize=yes ++ for lib in $notinst_deplibs; do ++ # Check to see that each library is installed. ++ libdir= ++ if test -f "$lib"; then ++ # If there is no directory component, then add one. ++ case $lib in ++ */* | *\\*) . $lib ;; ++ *) . ./$lib ;; ++ esac ++ fi ++ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test ++ if test -n "$libdir" && test ! -f "$libfile"; then ++ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 ++ finalize=no ++ fi ++ done ++ ++ relink_command= ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $wrapper ;; ++ *) . ./$wrapper ;; ++ esac ++ ++ outputname= ++ if test "$fast_install" = no && test -n "$relink_command"; then ++ if test "$finalize" = yes && test -z "$run"; then ++ tmpdir="/tmp" ++ test -n "$TMPDIR" && tmpdir="$TMPDIR" ++ tmpdir="$tmpdir/libtool-$$" ++ if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : ++ else ++ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 ++ continue ++ fi ++ file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ outputname="$tmpdir/$file" ++ # Replace the output file specification. ++ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` ++ ++ $show "$relink_command" ++ if $run eval "$relink_command"; then : ++ else ++ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ++ ${rm}r "$tmpdir" ++ continue ++ fi ++ file="$outputname" ++ else ++ $echo "$modename: warning: cannot relink \`$file'" 1>&2 ++ fi ++ else ++ # Install the binary that we compiled earlier. ++ file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` ++ fi ++ fi ++ ++ # remove .exe since cygwin /usr/bin/install will append another ++ # one anyways ++ case $install_prog,$host in ++ /usr/bin/install*,*cygwin*) ++ case $file:$destfile in ++ *.exe:*.exe) ++ # this is ok ++ ;; ++ *.exe:*) ++ destfile=$destfile.exe ++ ;; ++ *:*.exe) ++ destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` ++ ;; ++ esac ++ ;; ++ esac ++ $show "$install_prog$stripme $file $destfile" ++ $run eval "$install_prog\$stripme \$file \$destfile" || exit $? ++ test -n "$outputname" && ${rm}r "$tmpdir" ++ ;; ++ esac ++ done ++ ++ for file in $staticlibs; do ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ ++ # Set up the ranlib parameters. ++ oldlib="$destdir/$name" ++ ++ $show "$install_prog $file $oldlib" ++ $run eval "$install_prog \$file \$oldlib" || exit $? ++ ++ if test -n "$stripme" && test -n "$striplib"; then ++ $show "$old_striplib $oldlib" ++ $run eval "$old_striplib $oldlib" || exit $? ++ fi ++ ++ # Do each command in the postinstall commands. ++ eval cmds=\"$old_postinstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || exit $? ++ done ++ IFS="$save_ifs" ++ done ++ ++ if test -n "$future_libdirs"; then ++ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 ++ fi ++ ++ if test -n "$current_libdirs"; then ++ # Maybe just do a dry run. ++ test -n "$run" && current_libdirs=" -n$current_libdirs" ++ exec_cmd='$SHELL $0 --finish$current_libdirs' ++ else ++ exit 0 ++ fi ++ ;; ++ ++ # libtool finish mode ++ finish) ++ modename="$modename: finish" ++ libdirs="$nonopt" ++ admincmds= ++ ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ for dir ++ do ++ libdirs="$libdirs $dir" ++ done ++ ++ for libdir in $libdirs; do ++ if test -n "$finish_cmds"; then ++ # Do each command in the finish commands. ++ eval cmds=\"$finish_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" || admincmds="$admincmds ++ $cmd" ++ done ++ IFS="$save_ifs" ++ fi ++ if test -n "$finish_eval"; then ++ # Do the single finish_eval. ++ eval cmds=\"$finish_eval\" ++ $run eval "$cmds" || admincmds="$admincmds ++ $cmds" ++ fi ++ done ++ fi ++ ++ # Exit here if they wanted silent mode. ++ test "$show" = ":" && exit 0 ++ ++ echo "----------------------------------------------------------------------" ++ echo "Libraries have been installed in:" ++ for libdir in $libdirs; do ++ echo " $libdir" ++ done ++ echo ++ echo "If you ever happen to want to link against installed libraries" ++ echo "in a given directory, LIBDIR, you must either use libtool, and" ++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" ++ echo "flag during linking and do at least one of the following:" ++ if test -n "$shlibpath_var"; then ++ echo " - add LIBDIR to the \`$shlibpath_var' environment variable" ++ echo " during execution" ++ fi ++ if test -n "$runpath_var"; then ++ echo " - add LIBDIR to the \`$runpath_var' environment variable" ++ echo " during linking" ++ fi ++ if test -n "$hardcode_libdir_flag_spec"; then ++ libdir=LIBDIR ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ ++ echo " - use the \`$flag' linker flag" ++ fi ++ if test -n "$admincmds"; then ++ echo " - have your system administrator run these commands:$admincmds" ++ fi ++ if test -f /etc/ld.so.conf; then ++ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ++ fi ++ echo ++ echo "See any operating system documentation about shared libraries for" ++ echo "more information, such as the ld(1) and ld.so(8) manual pages." ++ echo "----------------------------------------------------------------------" ++ exit 0 ++ ;; ++ ++ # libtool execute mode ++ execute) ++ modename="$modename: execute" ++ ++ # The first argument is the command name. ++ cmd="$nonopt" ++ if test -z "$cmd"; then ++ $echo "$modename: you must specify a COMMAND" 1>&2 ++ $echo "$help" ++ exit 1 ++ fi ++ ++ # Handle -dlopen flags immediately. ++ for file in $execute_dlfiles; do ++ if test ! -f "$file"; then ++ $echo "$modename: \`$file' is not a file" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ dir= ++ case $file in ++ *.la) ++ # Check to see that this really is a libtool archive. ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : ++ else ++ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ # Read the libtool library. ++ dlname= ++ library_names= ++ ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Skip this library if it cannot be dlopened. ++ if test -z "$dlname"; then ++ # Warn if it was a shared library. ++ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" ++ continue ++ fi ++ ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$file" && dir=. ++ ++ if test -f "$dir/$objdir/$dlname"; then ++ dir="$dir/$objdir" ++ else ++ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 ++ exit 1 ++ fi ++ ;; ++ ++ *.lo) ++ # Just add the directory containing the .lo file. ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ test "X$dir" = "X$file" && dir=. ++ ;; ++ ++ *) ++ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 ++ continue ++ ;; ++ esac ++ ++ # Get the absolute pathname. ++ absdir=`cd "$dir" && pwd` ++ test -n "$absdir" && dir="$absdir" ++ ++ # Now add the directory to shlibpath_var. ++ if eval "test -z \"\$$shlibpath_var\""; then ++ eval "$shlibpath_var=\"\$dir\"" ++ else ++ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" ++ fi ++ done ++ ++ # This variable tells wrapper scripts just to set shlibpath_var ++ # rather than running their programs. ++ libtool_execute_magic="$magic" ++ ++ # Check if any of the arguments is a wrapper script. ++ args= ++ for file ++ do ++ case $file in ++ -*) ;; ++ *) ++ # Do a test to see if this is really a libtool program. ++ if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ # If there is no directory component, then add one. ++ case $file in ++ */* | *\\*) . $file ;; ++ *) . ./$file ;; ++ esac ++ ++ # Transform arg to wrapped name. ++ file="$progdir/$program" ++ fi ++ ;; ++ esac ++ # Quote arguments (to preserve shell metacharacters). ++ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` ++ args="$args \"$file\"" ++ done ++ ++ if test -z "$run"; then ++ if test -n "$shlibpath_var"; then ++ # Export the shlibpath_var. ++ eval "export $shlibpath_var" ++ fi ++ ++ # Restore saved enviroment variables ++ if test "${save_LC_ALL+set}" = set; then ++ LC_ALL="$save_LC_ALL"; export LC_ALL ++ fi ++ if test "${save_LANG+set}" = set; then ++ LANG="$save_LANG"; export LANG ++ fi ++ ++ # Now prepare to actually exec the command. ++ exec_cmd="\$cmd$args" ++ else ++ # Display what would be done. ++ if test -n "$shlibpath_var"; then ++ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" ++ $echo "export $shlibpath_var" ++ fi ++ $echo "$cmd$args" ++ exit 0 ++ fi ++ ;; ++ ++ # libtool clean and uninstall mode ++ clean | uninstall) ++ modename="$modename: $mode" ++ rm="$nonopt" ++ files= ++ rmforce= ++ exit_status=0 ++ ++ # This variable tells wrapper scripts just to set variables rather ++ # than running their programs. ++ libtool_install_magic="$magic" ++ ++ for arg ++ do ++ case $arg in ++ -f) rm="$rm $arg"; rmforce=yes ;; ++ -*) rm="$rm $arg" ;; ++ *) files="$files $arg" ;; ++ esac ++ done ++ ++ if test -z "$rm"; then ++ $echo "$modename: you must specify an RM program" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ rmdirs= ++ ++ for file in $files; do ++ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` ++ if test "X$dir" = "X$file"; then ++ dir=. ++ objdir="$objdir" ++ else ++ objdir="$dir/$objdir" ++ fi ++ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ++ test $mode = uninstall && objdir="$dir" ++ ++ # Remember objdir for removal later, being careful to avoid duplicates ++ if test $mode = clean; then ++ case " $rmdirs " in ++ *" $objdir "*) ;; ++ *) rmdirs="$rmdirs $objdir" ;; ++ esac ++ fi ++ ++ # Don't error if the file doesn't exist and rm -f was used. ++ if (test -L "$file") >/dev/null 2>&1 \ ++ || (test -h "$file") >/dev/null 2>&1 \ ++ || test -f "$file"; then ++ : ++ elif test -d "$file"; then ++ exit_status=1 ++ continue ++ elif test "$rmforce" = yes; then ++ continue ++ fi ++ ++ rmfiles="$file" ++ ++ case $name in ++ *.la) ++ # Possibly a libtool archive, so verify it. ++ if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ . $dir/$name ++ ++ # Delete the libtool libraries and symlinks. ++ for n in $library_names; do ++ rmfiles="$rmfiles $objdir/$n" ++ done ++ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ++ ++ if test $mode = uninstall; then ++ if test -n "$library_names"; then ++ # Do each command in the postuninstall commands. ++ eval cmds=\"$postuninstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done ++ IFS="$save_ifs" ++ fi ++ ++ if test -n "$old_library"; then ++ # Do each command in the old_postuninstall commands. ++ eval cmds=\"$old_postuninstall_cmds\" ++ save_ifs="$IFS"; IFS='~' ++ for cmd in $cmds; do ++ IFS="$save_ifs" ++ $show "$cmd" ++ $run eval "$cmd" ++ if test $? != 0 && test "$rmforce" != yes; then ++ exit_status=1 ++ fi ++ done ++ IFS="$save_ifs" ++ fi ++ # FIXME: should reinstall the best remaining shared library. ++ fi ++ fi ++ ;; ++ ++ *.lo) ++ if test "$build_old_libs" = yes; then ++ oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` ++ rmfiles="$rmfiles $dir/$oldobj" ++ fi ++ ;; ++ ++ *) ++ # Do a test to see if this is a libtool program. ++ if test $mode = clean && ++ (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ++ relink_command= ++ . $dir/$file ++ ++ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ if test "$fast_install" = yes && test -n "$relink_command"; then ++ rmfiles="$rmfiles $objdir/lt-$name" ++ fi ++ fi ++ ;; ++ esac ++ $show "$rm $rmfiles" ++ $run $rm $rmfiles || exit_status=1 ++ done ++ ++ # Try to remove the ${objdir}s in the directories where we deleted files ++ for dir in $rmdirs; do ++ if test -d "$dir"; then ++ $show "rmdir $dir" ++ $run rmdir $dir >/dev/null 2>&1 ++ fi ++ done ++ ++ exit $exit_status ++ ;; ++ ++ "") ++ $echo "$modename: you must specify a MODE" 1>&2 ++ $echo "$generic_help" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ++ if test -z "$exec_cmd"; then ++ $echo "$modename: invalid operation mode \`$mode'" 1>&2 ++ $echo "$generic_help" 1>&2 ++ exit 1 ++ fi ++fi # test -z "$show_help" ++ ++if test -n "$exec_cmd"; then ++ eval exec $exec_cmd ++ exit 1 ++fi ++ ++# We need to display help for each of the modes. ++case $mode in ++"") $echo \ ++"Usage: $modename [OPTION]... [MODE-ARG]... ++ ++Provide generalized library-building support services. ++ ++ --config show all configuration variables ++ --debug enable verbose shell tracing ++-n, --dry-run display commands without modifying any files ++ --features display basic configuration information and exit ++ --finish same as \`--mode=finish' ++ --help display this help message and exit ++ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] ++ --quiet same as \`--silent' ++ --silent don't print informational messages ++ --version print version information ++ ++MODE must be one of the following: ++ ++ clean remove files from the build directory ++ compile compile a source file into a libtool object ++ execute automatically set library path, then run a program ++ finish complete the installation of libtool libraries ++ install install libraries or executables ++ link create a library or an executable ++ uninstall remove libraries from an installed directory ++ ++MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for ++a more detailed description of MODE." ++ exit 0 ++ ;; ++ ++clean) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... ++ ++Remove files from the build directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, object or program, all the files associated ++with it are deleted. Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++compile) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE ++ ++Compile a source file into a libtool library object. ++ ++This mode accepts the following additional options: ++ ++ -o OUTPUT-FILE set the output file name to OUTPUT-FILE ++ -prefer-pic try to building PIC objects only ++ -prefer-non-pic try to building non-PIC objects only ++ -static always build a \`.o' file suitable for static linking ++ ++COMPILE-COMMAND is a command to be used in creating a \`standard' object file ++from the given SOURCEFILE. ++ ++The output file name is determined by removing the directory component from ++SOURCEFILE, then substituting the C source code suffix \`.c' with the ++library object suffix, \`.lo'." ++ ;; ++ ++execute) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... ++ ++Automatically set library path, then run a program. ++ ++This mode accepts the following additional options: ++ ++ -dlopen FILE add the directory containing FILE to the library path ++ ++This mode sets the library path environment variable according to \`-dlopen' ++flags. ++ ++If any of the ARGS are libtool executable wrappers, then they are translated ++into their corresponding uninstalled binary, and any of their required library ++directories are added to the library path. ++ ++Then, COMMAND is executed, with ARGS as arguments." ++ ;; ++ ++finish) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... ++ ++Complete the installation of libtool libraries. ++ ++Each LIBDIR is a directory that contains libtool libraries. ++ ++The commands that this mode executes may require superuser privileges. Use ++the \`--dry-run' option if you just want to see what would be executed." ++ ;; ++ ++install) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... ++ ++Install executables or libraries. ++ ++INSTALL-COMMAND is the installation command. The first component should be ++either the \`install' or \`cp' program. ++ ++The rest of the components are interpreted as arguments to that command (only ++BSD-compatible install options are recognized)." ++ ;; ++ ++link) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... ++ ++Link object files or libraries together to form another library, or to ++create an executable program. ++ ++LINK-COMMAND is a command using the C compiler that you would use to create ++a program from several object files. ++ ++The following components of LINK-COMMAND are treated specially: ++ ++ -all-static do not do any dynamic linking at all ++ -avoid-version do not add a version suffix if possible ++ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime ++ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols ++ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) ++ -export-symbols SYMFILE ++ try to export only the symbols listed in SYMFILE ++ -export-symbols-regex REGEX ++ try to export only the symbols matching REGEX ++ -LLIBDIR search LIBDIR for required installed libraries ++ -lNAME OUTPUT-FILE requires the installed library libNAME ++ -module build a library that can dlopened ++ -no-fast-install disable the fast-install mode ++ -no-install link a not-installable executable ++ -no-undefined declare that a library does not refer to external symbols ++ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects ++ -release RELEASE specify package release information ++ -rpath LIBDIR the created library will eventually be installed in LIBDIR ++ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries ++ -static do not do any dynamic linking of libtool libraries ++ -version-info CURRENT[:REVISION[:AGE]] ++ specify library version info [each variable defaults to 0] ++ ++All other options (arguments beginning with \`-') are ignored. ++ ++Every other argument is treated as a filename. Files ending in \`.la' are ++treated as uninstalled libtool libraries, other files are standard or library ++object files. ++ ++If the OUTPUT-FILE ends in \`.la', then a libtool library is created, ++only library objects (\`.lo' files) may be specified, and \`-rpath' is ++required, except when creating a convenience library. ++ ++If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created ++using \`ar' and \`ranlib', or on Windows using \`lib'. ++ ++If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file ++is created, otherwise an executable program is created." ++ ;; ++ ++uninstall) ++ $echo \ ++"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... ++ ++Remove libraries from an installation directory. ++ ++RM is the name of the program to use to delete files associated with each FILE ++(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed ++to RM. ++ ++If FILE is a libtool library, all the files associated with it are deleted. ++Otherwise, only FILE itself is deleted using RM." ++ ;; ++ ++*) ++ $echo "$modename: invalid operation mode \`$mode'" 1>&2 ++ $echo "$help" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++echo ++$echo "Try \`$modename --help' for more information about other modes." ++ ++exit 0 ++ ++# Local Variables: ++# mode:shell-script ++# sh-indentation:2 ++# End: +--- metamail-2.7.orig/config/install-sh ++++ metamail-2.7/config/install-sh +@@ -0,0 +1,251 @@ ++#!/bin/sh ++# ++# install - install a program, script, or datafile ++# This comes from X11R5 (mit/util/scripts/install.sh). ++# ++# Copyright 1991 by the Massachusetts Institute of Technology ++# ++# Permission to use, copy, modify, distribute, and sell this software and its ++# documentation for any purpose is hereby granted without fee, provided that ++# the above copyright notice appear in all copies and that both that ++# copyright notice and this permission notice appear in supporting ++# documentation, and that the name of M.I.T. not be used in advertising or ++# publicity pertaining to distribution of the software without specific, ++# written prior permission. M.I.T. makes no representations about the ++# suitability of this software for any purpose. It is provided "as is" ++# without express or implied warranty. ++# ++# Calling this script install-sh is preferred over install.sh, to prevent ++# `make' implicit rules from creating a file called install from it ++# when there is no Makefile. ++# ++# This script is compatible with the BSD install script, but was written ++# from scratch. It can only install one file at a time, a restriction ++# shared with many OS's install programs. ++ ++ ++# set DOITPROG to echo to test this script ++ ++# Don't use :- since 4.3BSD and earlier shells don't like it. ++doit="${DOITPROG-}" ++ ++ ++# put in absolute paths if you don't have them in your path; or use env. vars. ++ ++mvprog="${MVPROG-mv}" ++cpprog="${CPPROG-cp}" ++chmodprog="${CHMODPROG-chmod}" ++chownprog="${CHOWNPROG-chown}" ++chgrpprog="${CHGRPPROG-chgrp}" ++stripprog="${STRIPPROG-strip}" ++rmprog="${RMPROG-rm}" ++mkdirprog="${MKDIRPROG-mkdir}" ++ ++transformbasename="" ++transform_arg="" ++instcmd="$mvprog" ++chmodcmd="$chmodprog 0755" ++chowncmd="" ++chgrpcmd="" ++stripcmd="" ++rmcmd="$rmprog -f" ++mvcmd="$mvprog" ++src="" ++dst="" ++dir_arg="" ++ ++while [ x"$1" != x ]; do ++ case $1 in ++ -c) instcmd="$cpprog" ++ shift ++ continue;; ++ ++ -d) dir_arg=true ++ shift ++ continue;; ++ ++ -m) chmodcmd="$chmodprog $2" ++ shift ++ shift ++ continue;; ++ ++ -o) chowncmd="$chownprog $2" ++ shift ++ shift ++ continue;; ++ ++ -g) chgrpcmd="$chgrpprog $2" ++ shift ++ shift ++ continue;; ++ ++ -s) stripcmd="$stripprog" ++ shift ++ continue;; ++ ++ -t=*) transformarg=`echo $1 | sed 's/-t=//'` ++ shift ++ continue;; ++ ++ -b=*) transformbasename=`echo $1 | sed 's/-b=//'` ++ shift ++ continue;; ++ ++ *) if [ x"$src" = x ] ++ then ++ src=$1 ++ else ++ # this colon is to work around a 386BSD /bin/sh bug ++ : ++ dst=$1 ++ fi ++ shift ++ continue;; ++ esac ++done ++ ++if [ x"$src" = x ] ++then ++ echo "install: no input file specified" ++ exit 1 ++else ++ true ++fi ++ ++if [ x"$dir_arg" != x ]; then ++ dst=$src ++ src="" ++ ++ if [ -d $dst ]; then ++ instcmd=: ++ chmodcmd="" ++ else ++ instcmd=mkdir ++ fi ++else ++ ++# Waiting for this to be detected by the "$instcmd $src $dsttmp" command ++# might cause directories to be created, which would be especially bad ++# if $src (and thus $dsttmp) contains '*'. ++ ++ if [ -f $src -o -d $src ] ++ then ++ true ++ else ++ echo "install: $src does not exist" ++ exit 1 ++ fi ++ ++ if [ x"$dst" = x ] ++ then ++ echo "install: no destination specified" ++ exit 1 ++ else ++ true ++ fi ++ ++# If destination is a directory, append the input filename; if your system ++# does not like double slashes in filenames, you may need to add some logic ++ ++ if [ -d $dst ] ++ then ++ dst="$dst"/`basename $src` ++ else ++ true ++ fi ++fi ++ ++## this sed command emulates the dirname command ++dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` ++ ++# Make sure that the destination directory exists. ++# this part is taken from Noah Friedman's mkinstalldirs script ++ ++# Skip lots of stat calls in the usual case. ++if [ ! -d "$dstdir" ]; then ++defaultIFS=' ++' ++IFS="${IFS-${defaultIFS}}" ++ ++oIFS="${IFS}" ++# Some sh's can't handle IFS=/ for some reason. ++IFS='%' ++set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` ++IFS="${oIFS}" ++ ++pathcomp='' ++ ++while [ $# -ne 0 ] ; do ++ pathcomp="${pathcomp}${1}" ++ shift ++ ++ if [ ! -d "${pathcomp}" ] ; ++ then ++ $mkdirprog "${pathcomp}" ++ else ++ true ++ fi ++ ++ pathcomp="${pathcomp}/" ++done ++fi ++ ++if [ x"$dir_arg" != x ] ++then ++ $doit $instcmd $dst && ++ ++ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && ++ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && ++ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && ++ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi ++else ++ ++# If we're going to rename the final executable, determine the name now. ++ ++ if [ x"$transformarg" = x ] ++ then ++ dstfile=`basename $dst` ++ else ++ dstfile=`basename $dst $transformbasename | ++ sed $transformarg`$transformbasename ++ fi ++ ++# don't allow the sed command to completely eliminate the filename ++ ++ if [ x"$dstfile" = x ] ++ then ++ dstfile=`basename $dst` ++ else ++ true ++ fi ++ ++# Make a temp file name in the proper directory. ++ ++ dsttmp=$dstdir/#inst.$$# ++ ++# Move or copy the file name to the temp name ++ ++ $doit $instcmd $src $dsttmp && ++ ++ trap "rm -f ${dsttmp}" 0 && ++ ++# and set any options; do chmod last to preserve setuid bits ++ ++# If any of these fail, we abort the whole thing. If we want to ++# ignore errors from any of these, just make sure not to ignore ++# errors from the above "$doit $instcmd $src $dsttmp" command. ++ ++ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && ++ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && ++ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && ++ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && ++ ++# Now rename the file to the real destination. ++ ++ $doit $rmcmd -f $dstdir/$dstfile && ++ $doit $mvcmd $dsttmp $dstdir/$dstfile ++ ++fi && ++ ++ ++exit 0 +--- metamail-2.7.orig/config/missing ++++ metamail-2.7/config/missing +@@ -0,0 +1,190 @@ ++#! /bin/sh ++# Common stub for a few missing GNU programs while installing. ++# Copyright (C) 1996, 1997 Free Software Foundation, Inc. ++# Franc,ois Pinard , 1996. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++# 02111-1307, USA. ++ ++if test $# -eq 0; then ++ echo 1>&2 "Try \`$0 --help' for more information" ++ exit 1 ++fi ++ ++case "$1" in ++ ++ -h|--h|--he|--hel|--help) ++ echo "\ ++$0 [OPTION]... PROGRAM [ARGUMENT]... ++ ++Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an ++error status if there is no known handling for PROGRAM. ++ ++Options: ++ -h, --help display this help and exit ++ -v, --version output version information and exit ++ ++Supported PROGRAM values: ++ aclocal touch file \`aclocal.m4' ++ autoconf touch file \`configure' ++ autoheader touch file \`config.h.in' ++ automake touch all \`Makefile.in' files ++ bison create \`y.tab.[ch]', if possible, from existing .[ch] ++ flex create \`lex.yy.c', if possible, from existing .c ++ lex create \`lex.yy.c', if possible, from existing .c ++ makeinfo touch the output file ++ yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ++ ;; ++ ++ -v|--v|--ve|--ver|--vers|--versi|--versio|--version) ++ echo "missing - GNU libit 0.0" ++ ;; ++ ++ -*) ++ echo 1>&2 "$0: Unknown \`$1' option" ++ echo 1>&2 "Try \`$0 --help' for more information" ++ exit 1 ++ ;; ++ ++ aclocal) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. You should only need it if ++ you modified \`acinclude.m4' or \`configure.in'. You might want ++ to install the \`Automake' and \`Perl' packages. Grab them from ++ any GNU archive site." ++ touch aclocal.m4 ++ ;; ++ ++ autoconf) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. You should only need it if ++ you modified \`configure.in'. You might want to install the ++ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU ++ archive site." ++ touch configure ++ ;; ++ ++ autoheader) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. You should only need it if ++ you modified \`acconfig.h' or \`configure.in'. You might want ++ to install the \`Autoconf' and \`GNU m4' packages. Grab them ++ from any GNU archive site." ++ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` ++ test -z "$files" && files="config.h" ++ touch_files= ++ for f in $files; do ++ case "$f" in ++ *:*) touch_files="$touch_files "`echo "$f" | ++ sed -e 's/^[^:]*://' -e 's/:.*//'`;; ++ *) touch_files="$touch_files $f.in";; ++ esac ++ done ++ touch $touch_files ++ ;; ++ ++ automake) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. You should only need it if ++ you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. ++ You might want to install the \`Automake' and \`Perl' packages. ++ Grab them from any GNU archive site." ++ find . -type f -name Makefile.am -print | ++ sed 's/\.am$/.in/' | ++ while read f; do touch "$f"; done ++ ;; ++ ++ bison|yacc) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. You should only need it if ++ you modified a \`.y' file. You may need the \`Bison' package ++ in order for those modifications to take effect. You can get ++ \`Bison' from any GNU archive site." ++ rm -f y.tab.c y.tab.h ++ if [ $# -ne 1 ]; then ++ eval LASTARG="\${$#}" ++ case "$LASTARG" in ++ *.y) ++ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" y.tab.c ++ fi ++ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" y.tab.h ++ fi ++ ;; ++ esac ++ fi ++ if [ ! -f y.tab.h ]; then ++ echo >y.tab.h ++ fi ++ if [ ! -f y.tab.c ]; then ++ echo 'main() { return 0; }' >y.tab.c ++ fi ++ ;; ++ ++ lex|flex) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. You should only need it if ++ you modified a \`.l' file. You may need the \`Flex' package ++ in order for those modifications to take effect. You can get ++ \`Flex' from any GNU archive site." ++ rm -f lex.yy.c ++ if [ $# -ne 1 ]; then ++ eval LASTARG="\${$#}" ++ case "$LASTARG" in ++ *.l) ++ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" lex.yy.c ++ fi ++ ;; ++ esac ++ fi ++ if [ ! -f lex.yy.c ]; then ++ echo 'main() { return 0; }' >lex.yy.c ++ fi ++ ;; ++ ++ makeinfo) ++ echo 1>&2 "\ ++WARNING: \`$1' is missing on your system. You should only need it if ++ you modified a \`.texi' or \`.texinfo' file, or any other file ++ indirectly affecting the aspect of the manual. The spurious ++ call might also be the consequence of using a buggy \`make' (AIX, ++ DU, IRIX). You might want to install the \`Texinfo' package or ++ the \`GNU make' package. Grab either from any GNU archive site." ++ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` ++ if test -z "$file"; then ++ file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` ++ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` ++ fi ++ touch $file ++ ;; ++ ++ *) ++ echo 1>&2 "\ ++WARNING: \`$1' is needed, and you do not seem to have it handy on your ++ system. You might have modified some files without having the ++ proper tools for further handling them. Check the \`README' file, ++ it often tells you about the needed prerequirements for installing ++ this package. You may also peek at any GNU archive site, in case ++ some other package would contain this missing \`$1' program." ++ exit 1 ++ ;; ++esac ++ ++exit 0 +--- metamail-2.7.orig/config/ltconfig ++++ metamail-2.7/config/ltconfig +@@ -0,0 +1,3115 @@ ++#! /bin/sh ++ ++# ltconfig - Create a system-specific libtool. ++# Copyright (C) 1996-1999 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit , 1996 ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# A lot of this script is taken from autoconf-2.10. ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++echo=echo ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ++ # Yippee, $echo works! ++ : ++else ++ # Restart under the correct shell. ++ exec "$SHELL" "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat </dev/null`} ++ case X$UNAME in ++ *-DOS) PATH_SEPARATOR=';' ;; ++ *) PATH_SEPARATOR=':' ;; ++ esac ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++if test "X${echo_test_string+set}" != Xset; then ++ # find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if (echo_test_string="`eval $cmd`") 2>/dev/null && ++ echo_test_string="`eval $cmd`" && ++ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then ++ break ++ fi ++ done ++fi ++ ++if test "X`($echo '\t') 2>/dev/null`" != 'X\t' || ++ test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for dir in $PATH /usr/ucb; do ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ echo="$dir/echo" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test "X$echo" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && ++ test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ echo='print -r' ++ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running ltconfig again with it. ++ ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} ++ else ++ # Try using printf. ++ echo='printf "%s\n"' ++ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && ++ test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && ++ test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && ++ test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then ++ echo="$CONFIG_SHELL $0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do ++ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "$0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ echo=echo ++ fi ++ fi ++ fi ++ fi ++fi ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++Xsed='sed -e s/^X//' ++sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# The name of this program. ++progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` ++ ++# Constants: ++PROGRAM=ltconfig ++PACKAGE=libtool ++VERSION=1.3.5 ++TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)" ++ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ++ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' ++rm="rm -f" ++ ++help="Try \`$progname --help' for more information." ++ ++# Global variables: ++default_ofile=libtool ++can_build_shared=yes ++enable_shared=yes ++# All known linkers require a `.a' archive for static linking (except M$VC, ++# which needs '.lib'). ++enable_static=yes ++enable_fast_install=yes ++enable_dlopen=unknown ++enable_win32_dll=no ++ltmain= ++silent= ++srcdir= ++ac_config_guess= ++ac_config_sub= ++host= ++nonopt= ++ofile="$default_ofile" ++verify_host=yes ++with_gcc=no ++with_gnu_ld=no ++need_locks=yes ++ac_ext=c ++objext=o ++libext=a ++exeext= ++cache_file= ++ ++old_AR="$AR" ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++old_CPPFLAGS="$CPPFLAGS" ++old_LDFLAGS="$LDFLAGS" ++old_LD="$LD" ++old_LN_S="$LN_S" ++old_LIBS="$LIBS" ++old_NM="$NM" ++old_RANLIB="$RANLIB" ++old_DLLTOOL="$DLLTOOL" ++old_OBJDUMP="$OBJDUMP" ++old_AS="$AS" ++ ++# Parse the command line options. ++args= ++prev= ++for option ++do ++ case "$option" in ++ -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; ++ *) optarg= ;; ++ esac ++ ++ # If the previous option needs an argument, assign it. ++ if test -n "$prev"; then ++ eval "$prev=\$option" ++ prev= ++ continue ++ fi ++ ++ case "$option" in ++ --help) cat <&2 ++ echo "$help" 1>&2 ++ exit 1 ++ ;; ++ ++ *) ++ if test -z "$ltmain"; then ++ ltmain="$option" ++ elif test -z "$host"; then ++# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 ++# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then ++# echo "$progname: warning \`$option' is not a valid host type" 1>&2 ++# fi ++ host="$option" ++ else ++ echo "$progname: too many arguments" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ fi ;; ++ esac ++done ++ ++if test -z "$ltmain"; then ++ echo "$progname: you must specify a LTMAIN file" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++fi ++ ++if test ! -f "$ltmain"; then ++ echo "$progname: \`$ltmain' does not exist" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++fi ++ ++# Quote any args containing shell metacharacters. ++ltconfig_args= ++for arg ++do ++ case "$arg" in ++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ++ ltconfig_args="$ltconfig_args '$arg'" ;; ++ *) ltconfig_args="$ltconfig_args $arg" ;; ++ esac ++done ++ ++# A relevant subset of AC_INIT. ++ ++# File descriptor usage: ++# 0 standard input ++# 1 file creation ++# 2 errors and warnings ++# 3 some systems may open it to /dev/tty ++# 4 used on the Kubota Titan ++# 5 compiler messages saved in config.log ++# 6 checking for... messages and results ++if test "$silent" = yes; then ++ exec 6>/dev/null ++else ++ exec 6>&1 ++fi ++exec 5>>./config.log ++ ++# NLS nuisances. ++# Only set LANG and LC_ALL to C if already set. ++# These must not be set unconditionally because not all systems understand ++# e.g. LANG=C (notably SCO). ++if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi ++if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi ++ ++if test -n "$cache_file" && test -r "$cache_file"; then ++ echo "loading cache $cache_file within ltconfig" ++ . $cache_file ++fi ++ ++if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then ++ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. ++ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ++ ac_n= ac_c=' ++' ac_t=' ' ++ else ++ ac_n=-n ac_c= ac_t= ++ fi ++else ++ ac_n= ac_c='\c' ac_t= ++fi ++ ++if test -z "$srcdir"; then ++ # Assume the source directory is the same one as the path to LTMAIN. ++ srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` ++ test "$srcdir" = "$ltmain" && srcdir=. ++fi ++ ++trap "$rm conftest*; exit 1" 1 2 15 ++if test "$verify_host" = yes; then ++ # Check for config.guess and config.sub. ++ ac_aux_dir= ++ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do ++ if test -f $ac_dir/config.guess; then ++ ac_aux_dir=$ac_dir ++ break ++ fi ++ done ++ if test -z "$ac_aux_dir"; then ++ echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ fi ++ ac_config_guess=$ac_aux_dir/config.guess ++ ac_config_sub=$ac_aux_dir/config.sub ++ ++ # Make sure we can run config.sub. ++ if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : ++ else ++ echo "$progname: cannot run $ac_config_sub" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ fi ++ ++ echo $ac_n "checking host system type""... $ac_c" 1>&6 ++ ++ host_alias=$host ++ case "$host_alias" in ++ "") ++ if host_alias=`$SHELL $ac_config_guess`; then : ++ else ++ echo "$progname: cannot guess host type; you must specify one" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++ fi ;; ++ esac ++ host=`$SHELL $ac_config_sub $host_alias` ++ echo "$ac_t$host" 1>&6 ++ ++ # Make sure the host verified. ++ test -z "$host" && exit 1 ++ ++elif test -z "$host"; then ++ echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 ++ echo "$help" 1>&2 ++ exit 1 ++else ++ host_alias=$host ++fi ++ ++# Transform linux* to *-*-linux-gnu*, to support old configure scripts. ++case "$host_os" in ++linux-gnu*) ;; ++linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` ++esac ++ ++host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` ++host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` ++host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ++ ++case "$host_os" in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR cru $oldlib$oldobjs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++# Set a sane default for `AR'. ++test -z "$AR" && AR=ar ++ ++# Set a sane default for `OBJDUMP'. ++test -z "$OBJDUMP" && OBJDUMP=objdump ++ ++# If RANLIB is not set, then run the test. ++if test "${RANLIB+set}" != "set"; then ++ result=no ++ ++ echo $ac_n "checking for ranlib... $ac_c" 1>&6 ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for dir in $PATH; do ++ test -z "$dir" && dir=. ++ if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then ++ RANLIB="ranlib" ++ result="ranlib" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ echo "$ac_t$result" 1>&6 ++fi ++ ++if test -n "$RANLIB"; then ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ++fi ++ ++# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin. ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++test -z "$OBJDUMP" && OBJDUMP=objdump ++test -z "$AS" && AS=as ++ ++# Check to see if we are using GCC. ++if test "$with_gcc" != yes || test -z "$CC"; then ++ # If CC is not set, then try to find GCC or a usable CC. ++ if test -z "$CC"; then ++ echo $ac_n "checking for gcc... $ac_c" 1>&6 ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for dir in $PATH; do ++ test -z "$dir" && dir=. ++ if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then ++ CC="gcc" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ ++ if test -n "$CC"; then ++ echo "$ac_t$CC" 1>&6 ++ else ++ echo "$ac_t"no 1>&6 ++ fi ++ fi ++ ++ # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". ++ if test -z "$CC"; then ++ echo $ac_n "checking for cc... $ac_c" 1>&6 ++ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ cc_rejected=no ++ for dir in $PATH; do ++ test -z "$dir" && dir=. ++ if test -f $dir/cc || test -f $dir/cc$ac_exeext; then ++ if test "$dir/cc" = "/usr/ucb/cc"; then ++ cc_rejected=yes ++ continue ++ fi ++ CC="cc" ++ break ++ fi ++ done ++ IFS="$save_ifs" ++ if test $cc_rejected = yes; then ++ # We found a bogon in the path, so make sure we never use it. ++ set dummy $CC ++ shift ++ if test $# -gt 0; then ++ # We chose a different compiler from the bogus one. ++ # However, it has the same name, so the bogon will be chosen ++ # first if we set CC to just the name; use the full file name. ++ shift ++ set dummy "$dir/cc" "$@" ++ shift ++ CC="$@" ++ fi ++ fi ++ ++ if test -n "$CC"; then ++ echo "$ac_t$CC" 1>&6 ++ else ++ echo "$ac_t"no 1>&6 ++ fi ++ ++ if test -z "$CC"; then ++ echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 ++ exit 1 ++ fi ++ fi ++ ++ # Now see if the compiler is really GCC. ++ with_gcc=no ++ echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 ++ echo "$progname:581: checking whether we are using GNU C" >&5 ++ ++ $rm conftest.c ++ cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++ with_gcc=yes ++ fi ++ $rm conftest.c ++ echo "$ac_t$with_gcc" 1>&6 ++fi ++ ++# Allow CC to be a program name with arguments. ++set dummy $CC ++compiler="$2" ++ ++echo $ac_n "checking for object suffix... $ac_c" 1>&6 ++$rm conftest* ++echo 'int i = 1;' > conftest.c ++echo "$progname:603: checking for object suffix" >& 5 ++if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then ++ # Append any warnings to the config.log. ++ cat conftest.err 1>&5 ++ ++ for ac_file in conftest.*; do ++ case $ac_file in ++ *.c) ;; ++ *) objext=`echo $ac_file | sed -e s/conftest.//` ;; ++ esac ++ done ++else ++ cat conftest.err 1>&5 ++ echo "$progname: failed program was:" >&5 ++ cat conftest.c >&5 ++fi ++$rm conftest* ++echo "$ac_t$objext" 1>&6 ++ ++echo $ac_n "checking for executable suffix... $ac_c" 1>&6 ++if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_cv_exeext="no" ++ $rm conftest* ++ echo 'main () { return 0; }' > conftest.c ++ echo "$progname:629: checking for executable suffix" >& 5 ++ if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then ++ # Append any warnings to the config.log. ++ cat conftest.err 1>&5 ++ ++ for ac_file in conftest.*; do ++ case $ac_file in ++ *.c | *.err | *.$objext ) ;; ++ *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; ++ esac ++ done ++ else ++ cat conftest.err 1>&5 ++ echo "$progname: failed program was:" >&5 ++ cat conftest.c >&5 ++ fi ++ $rm conftest* ++fi ++if test "X$ac_cv_exeext" = Xno; then ++ exeext="" ++else ++ exeext="$ac_cv_exeext" ++fi ++echo "$ac_t$ac_cv_exeext" 1>&6 ++ ++echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 ++pic_flag= ++special_shlib_compile_flags= ++wl= ++link_static_flag= ++no_builtin_flag= ++ ++if test "$with_gcc" = yes; then ++ wl='-Wl,' ++ link_static_flag='-static' ++ ++ case "$host_os" in ++ beos* | irix5* | irix6* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ aix*) ++ # Below there is a dirty hack to force normal static linking with -ldl ++ # The problem is because libdl dynamically linked with both libc and ++ # libC (AIX C++ library), which obviously doesn't included in libraries ++ # list by gcc. This cause undefined symbols with -static flags. ++ # This hack allows C programs to be linked with "-static -ldl", but ++ # we not sure about C++ programs. ++ link_static_flag="$link_static_flag ${wl}-lC" ++ ;; ++ cygwin* | mingw* | os2*) ++ # We can build DLLs from non-PIC. ++ ;; ++ amigaos*) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ pic_flag='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ pic_flag=-Kconform_pic ++ fi ++ ;; ++ *) ++ pic_flag='-fPIC' ++ ;; ++ esac ++else ++ # PORTME Check for PIC flags for the system compiler. ++ case "$host_os" in ++ aix3* | aix4*) ++ # All AIX code is PIC. ++ link_static_flag='-bnso -bI:/lib/syscalls.exp' ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ # Is there a better link_static_flag that works with the bundled CC? ++ wl='-Wl,' ++ link_static_flag="${wl}-a ${wl}archive" ++ pic_flag='+Z' ++ ;; ++ ++ irix5* | irix6*) ++ wl='-Wl,' ++ link_static_flag='-non_shared' ++ # PIC (with -KPIC) is the default. ++ ;; ++ ++ cygwin* | mingw* | os2*) ++ # We can build DLLs from non-PIC. ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ # All OSF/1 code is PIC. ++ wl='-Wl,' ++ link_static_flag='-non_shared' ++ ;; ++ ++ sco3.2v5*) ++ pic_flag='-Kpic' ++ link_static_flag='-dn' ++ special_shlib_compile_flags='-belf' ++ ;; ++ ++ solaris*) ++ pic_flag='-KPIC' ++ link_static_flag='-Bstatic' ++ wl='-Wl,' ++ ;; ++ ++ sunos4*) ++ pic_flag='-PIC' ++ link_static_flag='-Bstatic' ++ wl='-Qoption ld ' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ pic_flag='-KPIC' ++ link_static_flag='-Bstatic' ++ wl='-Wl,' ++ ;; ++ ++ uts4*) ++ pic_flag='-pic' ++ link_static_flag='-Bstatic' ++ ;; ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ pic_flag='-Kconform_pic' ++ link_static_flag='-Bstatic' ++ fi ++ ;; ++ *) ++ can_build_shared=no ++ ;; ++ esac ++fi ++ ++if test -n "$pic_flag"; then ++ echo "$ac_t$pic_flag" 1>&6 ++ ++ # Check to make sure the pic_flag actually works. ++ echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 ++ $rm conftest* ++ echo "int some_variable = 0;" > conftest.c ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $pic_flag -DPIC" ++ echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 ++ if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then ++ # Append any warnings to the config.log. ++ cat conftest.err 1>&5 ++ ++ case "$host_os" in ++ hpux9* | hpux10* | hpux11*) ++ # On HP-UX, both CC and GCC only warn that PIC is supported... then they ++ # create non-PIC objects. So, if there were any warnings, we assume that ++ # PIC is not supported. ++ if test -s conftest.err; then ++ echo "$ac_t"no 1>&6 ++ can_build_shared=no ++ pic_flag= ++ else ++ echo "$ac_t"yes 1>&6 ++ pic_flag=" $pic_flag" ++ fi ++ ;; ++ *) ++ echo "$ac_t"yes 1>&6 ++ pic_flag=" $pic_flag" ++ ;; ++ esac ++ else ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ can_build_shared=no ++ pic_flag= ++ echo "$ac_t"no 1>&6 ++ fi ++ CFLAGS="$save_CFLAGS" ++ $rm conftest* ++else ++ echo "$ac_t"none 1>&6 ++fi ++ ++# Check to see if options -o and -c are simultaneously supported by compiler ++echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 ++$rm -r conftest 2>/dev/null ++mkdir conftest ++cd conftest ++$rm conftest* ++echo "int some_variable = 0;" > conftest.c ++mkdir out ++# According to Tom Tromey, Ian Lance Taylor reported there are C compilers ++# that will create temporary files in the current directory regardless of ++# the output directory. Thus, making CWD read-only will cause this test ++# to fail, enabling locking or at least warning the user not to do parallel ++# builds. ++chmod -w . ++save_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -o out/conftest2.o" ++echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 ++if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then ++ ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s out/conftest.err; then ++ echo "$ac_t"no 1>&6 ++ compiler_c_o=no ++ else ++ echo "$ac_t"yes 1>&6 ++ compiler_c_o=yes ++ fi ++else ++ # Append any errors to the config.log. ++ cat out/conftest.err 1>&5 ++ compiler_c_o=no ++ echo "$ac_t"no 1>&6 ++fi ++CFLAGS="$save_CFLAGS" ++chmod u+w . ++$rm conftest* out/* ++rmdir out ++cd .. ++rmdir conftest ++$rm -r conftest 2>/dev/null ++ ++if test x"$compiler_c_o" = x"yes"; then ++ # Check to see if we can write to a .lo ++ echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 ++ $rm conftest* ++ echo "int some_variable = 0;" > conftest.c ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -c -o conftest.lo" ++ echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 ++if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then ++ ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ echo "$ac_t"no 1>&6 ++ compiler_o_lo=no ++ else ++ echo "$ac_t"yes 1>&6 ++ compiler_o_lo=yes ++ fi ++ else ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ compiler_o_lo=no ++ echo "$ac_t"no 1>&6 ++ fi ++ CFLAGS="$save_CFLAGS" ++ $rm conftest* ++else ++ compiler_o_lo=no ++fi ++ ++# Check to see if we can do hard links to lock some files if needed ++hard_links="nottested" ++if test "$compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 ++ hard_links=yes ++ $rm conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ echo "$ac_t$hard_links" 1>&6 ++ $rm conftest* ++ if test "$hard_links" = no; then ++ echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++if test "$with_gcc" = yes; then ++ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ++ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 ++ $rm conftest* ++ echo "int some_variable = 0;" > conftest.c ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" ++ echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ++ if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then ++ ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ echo "$ac_t"no 1>&6 ++ compiler_rtti_exceptions=no ++ else ++ echo "$ac_t"yes 1>&6 ++ compiler_rtti_exceptions=yes ++ fi ++ else ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ compiler_rtti_exceptions=no ++ echo "$ac_t"no 1>&6 ++ fi ++ CFLAGS="$save_CFLAGS" ++ $rm conftest* ++ ++ if test "$compiler_rtti_exceptions" = "yes"; then ++ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ++ else ++ no_builtin_flag=' -fno-builtin' ++ fi ++ ++fi ++ ++# Check for any special shared library compilation flags. ++if test -n "$special_shlib_compile_flags"; then ++ echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 ++ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : ++ else ++ echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 ++ can_build_shared=no ++ fi ++fi ++ ++echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 ++$rm conftest* ++echo 'main(){return(0);}' > conftest.c ++save_LDFLAGS="$LDFLAGS" ++LDFLAGS="$LDFLAGS $link_static_flag" ++echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 ++if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ++ echo "$ac_t$link_static_flag" 1>&6 ++else ++ echo "$ac_t"none 1>&6 ++ link_static_flag= ++fi ++LDFLAGS="$save_LDFLAGS" ++$rm conftest* ++ ++if test -z "$LN_S"; then ++ # Check to see if we can use ln -s, or we need hard links. ++ echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 ++ $rm conftest.dat ++ if ln -s X conftest.dat 2>/dev/null; then ++ $rm conftest.dat ++ LN_S="ln -s" ++ else ++ LN_S=ln ++ fi ++ if test "$LN_S" = "ln -s"; then ++ echo "$ac_t"yes 1>&6 ++ else ++ echo "$ac_t"no 1>&6 ++ fi ++fi ++ ++# Make sure LD is an absolute path. ++if test -z "$LD"; then ++ ac_prog=ld ++ if test "$with_gcc" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 ++ echo "$progname:991: checking for ld used by GCC" >&5 ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ++ case "$ac_prog" in ++ # Accept absolute paths. ++ [\\/]* | [A-Za-z]:[\\/]*) ++ re_direlt='/[^/][^/]*/\.\./' ++ # Canonicalize the path of ld ++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` ++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we are not using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++ elif test "$with_gnu_ld" = yes; then ++ echo $ac_n "checking for GNU ld... $ac_c" 1>&6 ++ echo "$progname:1015: checking for GNU ld" >&5 ++ else ++ echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 ++ echo "$progname:1018: checking for non-GNU ld" >&5 ++ fi ++ ++ if test -z "$LD"; then ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for ac_dir in $PATH; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some GNU ld's only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then ++ test "$with_gnu_ld" != no && break ++ else ++ test "$with_gnu_ld" != yes && break ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++ fi ++ ++ if test -n "$LD"; then ++ echo "$ac_t$LD" 1>&6 ++ else ++ echo "$ac_t"no 1>&6 ++ fi ++ ++ if test -z "$LD"; then ++ echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 ++ exit 1 ++ fi ++fi ++ ++# Check to see if it really is or is not GNU ld. ++echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 ++# I'd rather use --version here, but apparently some GNU ld's only accept -v. ++if $LD -v 2>&1 &5; then ++ with_gnu_ld=yes ++else ++ with_gnu_ld=no ++fi ++echo "$ac_t$with_gnu_ld" 1>&6 ++ ++# See if the linker supports building shared libraries. ++echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 ++ ++allow_undefined_flag= ++no_undefined_flag= ++need_lib_prefix=unknown ++need_version=unknown ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++archive_cmds= ++archive_expsym_cmds= ++old_archive_from_new_cmds= ++export_dynamic_flag_spec= ++whole_archive_flag_spec= ++thread_safe_flag_spec= ++hardcode_libdir_flag_spec= ++hardcode_libdir_separator= ++hardcode_direct=no ++hardcode_minus_L=no ++hardcode_shlibpath_var=unsupported ++runpath_var= ++always_export_symbols=no ++export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ++# include_expsyms should be a list of space-separated symbols to be *always* ++# included in the symbol list ++include_expsyms= ++# exclude_expsyms can be an egrep regular expression of symbols to exclude ++# it will be wrapped by ` (' and `)$', so one must not match beginning or ++# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++# as well as any symbol that contains `d'. ++exclude_expsyms="_GLOBAL_OFFSET_TABLE_" ++# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++# platforms (ab)use it in PIC code, but their linkers get confused if ++# the symbol is explicitly referenced. Since portable code cannot ++# rely on this symbol name, it's probably fine to never include it in ++# preloaded symbol tables. ++ ++case "$host_os" in ++cygwin* | mingw*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$with_gcc" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++ ++esac ++ ++ld_shlibs=yes ++if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # See if GNU ld supports shared libraries. ++ case "$host_os" in ++ aix3* | aix4*) ++ # On AIX, the GNU linker is very broken ++ ld_shlibs=no ++ cat <&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++EOF ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ++ # Samuel A. Falvo II reports ++ # that the semantics of dynamic libraries on AmigaOS, at least up ++ # to version 4, is to share data among multiple programs linked ++ # with the same dynamic library. Since this doesn't match the ++ # behavior of shared libraries on other platforms, we can use ++ # them. ++ ld_shlibs=no ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw*) ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ ++ # Extract the symbol export list from an `--export-all' def file, ++ # then regenerate the def file from the symbol export list, so that ++ # the compiled dll only exports the symbol export list. ++ # Be careful not to strip the DATA tag left by newer dlltools. ++ export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ ++ test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ ++ $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ ++ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols' ++ ++ # If DATA tags from a recent dlltool are present, honour them! ++ archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ ++ _lt_hint=1; ++ cat $export_symbols | while read symbol; do ++ set dummy \$symbol; ++ case \$# in ++ 2) echo " \$2 @ \$_lt_hint ; " >> $objdir/$soname-def;; ++ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;; ++ esac; ++ _lt_hint=`expr 1 + \$_lt_hint`; ++ done~ ++ test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ ++ test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ ++ $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ ++ $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ ++ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ ++ $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' ++ ++ old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib' ++ # can we support soname and/or expsyms with a.out? -oliva ++ fi ++ ;; ++ ++ solaris* | sysv5*) ++ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++EOF ++ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = yes; then ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ case $host_os in ++ cygwin* | mingw*) ++ # dlltool doesn't understand --whole-archive et. al. ++ whole_archive_flag_spec= ++ ;; ++ *) ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ ;; ++ esac ++ fi ++else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case "$host_os" in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$with_gcc" = yes && test -z "$link_static_flag"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix4*) ++ hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' ++ hardcode_libdir_separator=':' ++ if test "$with_gcc" = yes; then ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && \ ++ strings "$collect2name" | grep resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ hardcode_direct=yes ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ shared_flag='-shared' ++ else ++ shared_flag='${wl}-bM:SRE' ++ hardcode_direct=yes ++ fi ++ allow_undefined_flag=' ${wl}-berok' ++ archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' ++ archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' ++ case "$host_os" in aix4.[01]|aix4.[01].*) ++ # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on ++ always_export_symbols=yes ;; ++ esac ++ ;; ++ ++ amigaos*) ++ archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ # see comment about different semantics on the GNU ld section ++ ld_shlibs=no ++ ;; ++ ++ cygwin* | mingw*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib /OUT:$oldlib$oldobjs' ++ fix_srcfile_path='`cygpath -w $srcfile`' ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ case "$host_os" in ++ hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;; ++ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;; ++ esac ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_minus_L=yes # Not in the search PATH, but as the default ++ # location of the library. ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ irix5* | irix6*) ++ if test "$with_gcc" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' ++ else ++ archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF ++ fi ++ hardcode_libdir_flag_spec='${wl}-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ openbsd*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$with_gcc" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # As osf3* with the addition of the -msym flag ++ if test "$with_gcc" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ rhapsody*) ++ archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flags_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sco3.2v5*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ;; ++ ++ solaris*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case "$host_os" in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) # Supported since Solaris 2.6 (maybe 2.5.1?) ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; ++ esac ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $linkopts' ++ else ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ fi ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv5*) ++ no_undefined_flag=' -z text' ++ # $CC -shared without GNU ld will not create a library from C++ ++ # object files and a static libstdc++, better avoid it by now ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' ++ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' ++ hardcode_libdir_flag_spec= ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4.2uw2*) ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts' ++ hardcode_direct=yes ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=no ++ hardcode_runpath_var=yes ++ runpath_var=LD_RUN_PATH ++ ;; ++ ++ unixware7*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++fi ++echo "$ac_t$ld_shlibs" 1>&6 ++test "$ld_shlibs" = no && can_build_shared=no ++ ++if test -z "$NM"; then ++ echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 ++ case "$NM" in ++ [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path. ++ *) ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" ++ for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the `sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ NM="$ac_dir/nm -B" ++ break ++ elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ++ NM="$ac_dir/nm -p" ++ break ++ else ++ NM=${NM="$ac_dir/nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ fi ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$NM" && NM=nm ++ ;; ++ esac ++ echo "$ac_t$NM" 1>&6 ++fi ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[BCDEGRST]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ++ ++# Transform the above into a raw symbol and a C symbol. ++symxfrm='\1 \2\3 \3' ++ ++# Transform an extracted symbol line into a proper C declaration ++global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ++# Define system-specific variables. ++case "$host_os" in ++aix*) ++ symcode='[BCDT]' ++ ;; ++cygwin* | mingw*) ++ symcode='[ABCDGISTW]' ++ ;; ++hpux*) # Its linker distinguishes data from code symbols ++ global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" ++ ;; ++irix*) ++ symcode='[BCDEGRST]' ++ ;; ++solaris*) ++ symcode='[BDT]' ++ ;; ++sysv4) ++ symcode='[DFNSTU]' ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ++ symcode='[ABCDGISTW]' ++fi ++ ++# Try without a prefix undercore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Write the raw and C identifiers. ++ global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'" ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ $rm conftest* ++ cat > conftest.c <&5 ++ if { (eval echo $progname:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if { echo "$progname:1657: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then ++ ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if egrep ' nm_test_var$' "$nlist" >/dev/null; then ++ if egrep ' nm_test_func$' "$nlist" >/dev/null; then ++ cat < conftest.c ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++EOF ++ # Now generate the symbol file. ++ eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' ++ ++ cat <> conftest.c ++#if defined (__STDC__) && __STDC__ ++# define lt_ptr_t void * ++#else ++# define lt_ptr_t char * ++# define const ++#endif ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ lt_ptr_t address; ++} ++lt_preloaded_symbols[] = ++{ ++EOF ++ sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c ++ cat <<\EOF >> conftest.c ++ {0, (lt_ptr_t) 0} ++}; ++ ++#ifdef __cplusplus ++} ++#endif ++EOF ++ # Now try linking the two files. ++ mv conftest.$objext conftstm.$objext ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$objext" ++ CFLAGS="$CFLAGS$no_builtin_flag" ++ if { (eval echo $progname:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ++ pipe_works=yes ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.c >&5 ++ fi ++ LIBS="$save_LIBS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&5 ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&5 ++ fi ++ else ++ echo "cannot run $global_symbol_pipe" >&5 ++ fi ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.c >&5 ++ fi ++ $rm conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ global_symbol_pipe= ++ fi ++done ++if test "$pipe_works" = yes; then ++ echo "${ac_t}ok" 1>&6 ++else ++ echo "${ac_t}failed" 1>&6 ++fi ++ ++if test -z "$global_symbol_pipe"; then ++ global_symbol_to_cdecl= ++fi ++ ++# Check hardcoding attributes. ++echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || \ ++ test -n "$runpath_var"; then ++ ++ # We can hardcode non-existant directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$hardcode_shlibpath_var" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++echo "$ac_t$hardcode_action" 1>&6 ++ ++ ++reload_flag= ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 ++# PORTME Some linkers may need a different reload flag. ++reload_flag='-r' ++echo "$ac_t$reload_flag" 1>&6 ++test -n "$reload_flag" && reload_flag=" $reload_flag" ++ ++# PORTME Fill in your ld.so characteristics ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++file_magic_cmd= ++file_magic_test_file= ++deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [regex]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given egrep regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 ++case "$host_os" in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}.so$major' ++ ;; ++ ++aix4*) ++ version_type=linux ++ # AIX has no versioning support, so currently we can not hardcode correct ++ # soname into executable. Probably we can add versioning support to ++ # collect2, so additional links can be useful in future. ++ # We preserve .a as extension for shared libraries though AIX4.2 ++ # and later linker supports .so ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' ++ shlibpath_var=LIBPATH ++ deplibs_check_method=pass_all ++ ;; ++ ++amigaos*) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ++ ;; ++ ++beos*) ++ library_names_spec='${libname}.so' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ deplibs_check_method=pass_all ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++bsdi4*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=/shlib/libc.so ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ export_dynamic_flag_spec=-rdynamic ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw*) ++ version_type=windows ++ need_version=no ++ need_lib_prefix=no ++ if test "$with_gcc" = yes; then ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' ++ else ++ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' ++ fi ++ dynamic_linker='Win32 ld.exe' ++ deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ file_magic_cmd='${OBJDUMP} -f' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd*) ++ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ++ version_type=freebsd-$objformat ++ case "$version_type" in ++ freebsd-elf*) ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=`echo /usr/lib/libc.so*` ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ deplibs_check_method=unknown ++ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case "$host_os" in ++ freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ *) # from 3.2 on ++ shlibpath_overrides_runpath=no ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ deplibs_check_method=pass_all ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ dynamic_linker="$host_os dld.sl" ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ++ soname_spec='${libname}${release}.sl$major' ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ case "$host_os" in ++ hpux10.20*) ++ # TODO: Does this work for hpux-11 too? ++ deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ esac ++ ;; ++ ++irix5* | irix6*) ++ version_type=irix ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}.so.$major' ++ library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' ++ case "$host_os" in ++ irix5*) ++ libsuff= shlibsuff= ++ # this will be overridden with pass_all, but let us keep it just in case ++ deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ++ ;; ++ *) ++ case "$LD" in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=`echo /lib${libsuff}/libc.so*` ++ deplibs_check_method='pass_all' ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ deplibs_check_method=pass_all ++ ++ if test -f /lib/ld.so.1; then ++ dynamic_linker='GNU ld.so' ++ else ++ # Only the GNU ld.so supports shared libraries on MkLinux. ++ case "$host_cpu" in ++ powerpc*) dynamic_linker=no ;; ++ *) dynamic_linker='Linux ld.so' ;; ++ esac ++ fi ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ++ soname_spec='${libname}${release}.so$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ need_version=no ++ fi ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ need_lib_prefix=no ++ library_names_spec='$libname.dll $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_version=no ++ soname_spec='${libname}${release}.so' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ # this will be overridden with pass_all, but let us keep it just in case ++ deplibs_check_method='file_magic COFF format alpha shared library' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=/shlib/libc.so ++ deplibs_check_method='pass_all' ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ ;; ++ ++rhapsody*) ++ version_type=sunos ++ library_names_spec='${libname}.so' ++ soname_spec='${libname}.so' ++ shlibpath_var=DYLD_LIBRARY_PATH ++ deplibs_check_method=pass_all ++ ;; ++ ++sco3.2v5*) ++ version_type=osf ++ soname_spec='${libname}${release}.so$major' ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib" ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=/lib/libc.so ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case "$host_vendor" in ++ sequent) ++ file_magic_cmd='/bin/file' ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ ;; ++ ncr) ++ deplibs_check_method='pass_all' ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ esac ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ++ soname_spec='$libname.so.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++echo "$ac_t$dynamic_linker" 1>&6 ++test "$dynamic_linker" = no && can_build_shared=no ++ ++# Report the final consequences. ++echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 ++ ++# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in ++# configure.in, otherwise build static only libraries. ++case "$host_os" in ++cygwin* | mingw* | os2*) ++ if test x$can_build_shared = xyes; then ++ test x$enable_win32_dll = xno && can_build_shared=no ++ echo "checking if package supports dlls... $can_build_shared" 1>&6 ++ fi ++;; ++esac ++ ++if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then ++ case "$deplibs_check_method" in ++ "file_magic "*) ++ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ egrep "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++EOF ++ fi ;; ++ esac ++fi ++ ++echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 ++test "$can_build_shared" = "no" && enable_shared=no ++ ++# On AIX, shared libraries and static libraries use the same namespace, and ++# are all built from PIC. ++case "$host_os" in ++aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++aix4*) ++ test "$enable_shared" = yes && enable_static=no ++ ;; ++esac ++ ++echo "$ac_t$enable_shared" 1>&6 ++ ++# Make sure either enable_shared or enable_static is yes. ++test "$enable_shared" = yes || enable_static=yes ++ ++echo "checking whether to build static libraries... $enable_static" 1>&6 ++ ++if test "$hardcode_action" = relink; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++echo $ac_n "checking for objdir... $ac_c" 1>&6 ++rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++echo "$ac_t$objdir" 1>&6 ++ ++if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then ++ lt_cv_dlopen=no lt_cv_dlopen_libs= ++echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 ++echo "$progname:2248: checking for dlopen in -ldl" >&5 ++ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldl $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dlopen""... $ac_c" 1>&6 ++echo "$progname:2288: checking for dlopen" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_dlopen) || defined (__stub___dlopen) ++choke me ++#else ++dlopen(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo $progname:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_dlopen=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dlopen" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 ++echo "$progname:2335: checking for dld_link in -ldld" >&5 ++ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for shl_load""... $ac_c" 1>&6 ++echo "$progname:2375: checking for shl_load" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char shl_load(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_shl_load) || defined (__stub___shl_load) ++choke me ++#else ++shl_load(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo $progname:2405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_shl_load=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" ++else ++ echo "$ac_t""no" 1>&6 ++echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 ++echo "$progname:2423: checking for shl_load in -ldld" >&5 ++ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-ldld $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++fi ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ fi ++ ++ case "$lt_cv_dlopen" in ++ dlopen) ++for ac_hdr in dlfcn.h; do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "$progname:2488: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++int fnord = 0; ++EOF ++ac_try="$ac_compile >/dev/null 2>conftest.out" ++{ (eval echo $progname:2498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++done ++ ++ if test "x$ac_cv_header_dlfcn_h" = xyes; then ++ CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ fi ++ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 ++echo "$progname:2526: checking whether a program can dlopen itself" >&5 ++if test "${lt_cv_dlopen_self+set}" = set; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then ++ lt_cv_dlopen_self=cross ++ else ++ cat > conftest.c < ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LTDL_GLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LTDL_GLOBAL DL_GLOBAL ++# else ++# define LTDL_GLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LTDL_LAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LTDL_LAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LTDL_LAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LTDL_LAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LTDL_LAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LTDL_LAZY_OR_NOW DL_NOW ++# else ++# define LTDL_LAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++fnord() { int i=42;} ++main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); ++ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); ++ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } ++ ++EOF ++if { (eval echo $progname:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null ++then ++ lt_cv_dlopen_self=yes ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ lt_cv_dlopen_self=no ++fi ++rm -fr conftest* ++fi ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self" 1>&6 ++ ++ if test "$lt_cv_dlopen_self" = yes; then ++ LDFLAGS="$LDFLAGS $link_static_flag" ++ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 ++echo "$progname:2599: checking whether a statically linked program can dlopen itself" >&5 ++if test "${lt_cv_dlopen_self_static+set}" = set; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test "$cross_compiling" = yes; then ++ lt_cv_dlopen_self_static=cross ++ else ++ cat > conftest.c < ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LTDL_GLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LTDL_GLOBAL DL_GLOBAL ++# else ++# define LTDL_GLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LTDL_LAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LTDL_LAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LTDL_LAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LTDL_LAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LTDL_LAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LTDL_LAZY_OR_NOW DL_NOW ++# else ++# define LTDL_LAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++fnord() { int i=42;} ++main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); ++ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); ++ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } ++ ++EOF ++if { (eval echo $progname:2653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null ++then ++ lt_cv_dlopen_self_static=yes ++else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ lt_cv_dlopen_self_static=no ++fi ++rm -fr conftest* ++fi ++ ++fi ++ ++echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 ++fi ++ ;; ++ esac ++ ++ case "$lt_cv_dlopen_self" in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case "$lt_cv_dlopen_self_static" in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++# Copy echo and quote the copy, instead of the original, because it is ++# used later. ++ltecho="$echo" ++if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then ++ ltecho="$CONFIG_SHELL \$0 --fallback-echo" ++fi ++LTSHELL="$SHELL" ++ ++LTCONFIG_VERSION="$VERSION" ++ ++# Only quote variables if we're using ltmain.sh. ++case "$ltmain" in ++*.sh) ++ # Now quote all the things that may contain metacharacters. ++ for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \ ++ old_LD old_LDFLAGS old_LIBS \ ++ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \ ++ AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ ++ reload_flag reload_cmds wl \ ++ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ++ thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ++ library_names_spec soname_spec \ ++ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ++ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \ ++ file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \ ++ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ++ hardcode_libdir_flag_spec hardcode_libdir_separator \ ++ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ++ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do ++ ++ case "$var" in ++ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ++ old_postinstall_cmds | old_postuninstall_cmds | \ ++ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ++ postinstall_cmds | postuninstall_cmds | \ ++ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ++ # Double-quote double-evaled strings. ++ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ++ ;; ++ *) ++ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ++ ;; ++ esac ++ done ++ ++ case "$ltecho" in ++ *'\$0 --fallback-echo"') ++ ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ++ ;; ++ esac ++ ++ trap "$rm \"$ofile\"; exit 1" 1 2 15 ++ echo "creating $ofile" ++ $rm "$ofile" ++ cat < "$ofile" ++#! $SHELL ++ ++# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. ++# ++# Copyright (C) 1996-1999 Free Software Foundation, Inc. ++# Originally by Gordon Matzigkeit , 1996 ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++# ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="sed -e s/^X//" ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ++ ++### BEGIN LIBTOOL CONFIG ++EOF ++ cfgfile="$ofile" ++ ;; ++ ++*) ++ # Double-quote the variables that need it (for aesthetics). ++ for var in old_CC old_CFLAGS old_CPPFLAGS \ ++ old_LD old_LDFLAGS old_LIBS \ ++ old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do ++ eval "$var=\\\"\$var\\\"" ++ done ++ ++ # Just create a config file. ++ cfgfile="$ofile.cfg" ++ trap "$rm \"$cfgfile\"; exit 1" 1 2 15 ++ echo "creating $cfgfile" ++ $rm "$cfgfile" ++ cat < "$cfgfile" ++# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. ++# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ++EOF ++ ;; ++esac ++ ++cat <> "$cfgfile" ++# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++# ++# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ ++# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ ++# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ ++# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\ ++# $0$ltconfig_args ++# ++# Compiler and other test output produced by $progname, useful for ++# debugging $progname, is in ./config.log if it exists. ++ ++# The version of $progname that generated this script. ++LTCONFIG_VERSION=$LTCONFIG_VERSION ++ ++# Shell to use when invoking shell scripts. ++SHELL=$LTSHELL ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++ ++# An echo program that does not interpret backslashes. ++echo=$ltecho ++ ++# The archiver. ++AR=$AR ++ ++# The default C compiler. ++CC=$CC ++ ++# The linker used to build libraries. ++LD=$LD ++ ++# Whether we need hard or soft links. ++LN_S=$LN_S ++ ++# A BSD-compatible nm program. ++NM=$NM ++ ++# Used on cygwin: DLL creation program. ++DLLTOOL="$DLLTOOL" ++ ++# Used on cygwin: object dumper. ++OBJDUMP="$OBJDUMP" ++ ++# Used on cygwin: assembler. ++AS="$AS" ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# How to create reloadable object files. ++reload_flag=$reload_flag ++reload_cmds=$reload_cmds ++ ++# How to pass a linker flag through the compiler. ++wl=$wl ++ ++# Object file suffix (normally "o"). ++objext="$objext" ++ ++# Old archive suffix (normally "a"). ++libext="$libext" ++ ++# Executable file suffix (normally ""). ++exeext="$exeext" ++ ++# Additional compiler flags for building library objects. ++pic_flag=$pic_flag ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$compiler_c_o ++ ++# Can we write directly to a .lo ? ++compiler_o_lo=$compiler_o_lo ++ ++# Must we lock files when doing compilation ? ++need_locks=$need_locks ++ ++# Do we need the lib prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Whether dlopen is supported. ++dlopen=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$link_static_flag ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$no_builtin_flag ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$whole_archive_flag_spec ++ ++# Compiler flag to generate thread-safe objects. ++thread_safe_flag_spec=$thread_safe_flag_spec ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Format of library name prefix. ++libname_spec=$libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME. ++library_names_spec=$library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$soname_spec ++ ++# Commands used to build and install an old-style archive. ++RANLIB=$RANLIB ++old_archive_cmds=$old_archive_cmds ++old_postinstall_cmds=$old_postinstall_cmds ++old_postuninstall_cmds=$old_postuninstall_cmds ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$old_archive_from_new_cmds ++ ++# Commands used to build and install a shared archive. ++archive_cmds=$archive_cmds ++archive_expsym_cmds=$archive_expsym_cmds ++postinstall_cmds=$postinstall_cmds ++postuninstall_cmds=$postuninstall_cmds ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$deplibs_check_method ++ ++# Command to use when deplibs_check_method == file_magic. ++file_magic_cmd=$file_magic_cmd ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$allow_undefined_flag ++ ++# Flag that forces no undefined symbols. ++no_undefined_flag=$no_undefined_flag ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$finish_cmds ++ ++# Same as above, but a single script fragment to be evaled but not shown. ++finish_eval=$finish_eval ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration ++global_symbol_to_cdecl=$global_symbol_to_cdecl ++ ++# This is the shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# This is the shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec ++ ++# Whether we need a single -rpath flag with a separated argument. ++hardcode_libdir_separator=$hardcode_libdir_separator ++ ++# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ++# resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to yes if using the -LDIR flag during linking hardcodes DIR into the ++# resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ++# the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Compile-time system search path for libraries ++sys_lib_search_path_spec=$sys_lib_search_path_spec ++ ++# Run-time system search path for libraries ++sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path="$fix_srcfile_path" ++ ++# Set to yes if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$export_symbols_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$include_expsyms ++ ++EOF ++ ++case "$ltmain" in ++*.sh) ++ echo '### END LIBTOOL CONFIG' >> "$ofile" ++ echo >> "$ofile" ++ case "$host_os" in ++ aix3*) ++ cat <<\EOF >> "$ofile" ++ ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++EOF ++ ;; ++ esac ++ ++ # Append the ltmain.sh script. ++ sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ ++ chmod +x "$ofile" ++ ;; ++ ++*) ++ # Compile the libtool program. ++ echo "FIXME: would compile $ltmain" ++ ;; ++esac ++ ++test -n "$cache_file" || exit 0 ++ ++# AC_CACHE_SAVE ++trap '' 1 2 15 ++cat > confcache <<\EOF ++# This file is a shell script that caches the results of configure ++# tests run on this system so they can be shared between configure ++# scripts and configure runs. It is not useful on other systems. ++# If it contains results you don't want to keep, you may remove or edit it. ++# ++# By default, configure uses ./config.cache as the cache file, ++# creating it if it does not exist already. You can give configure ++# the --cache-file=FILE option to use a different cache file; that is ++# what configure does when it calls configure scripts in ++# subdirectories, so they share the cache. ++# Giving --cache-file=/dev/null disables caching, for debugging configure. ++# config.status only pays attention to the cache file if you give it the ++# --recheck option to rerun configure. ++# ++EOF ++# The following way of writing the cache mishandles newlines in values, ++# but we know of no workaround that is simple, portable, and efficient. ++# So, don't put newlines in cache variables' values. ++# Ultrix sh set writes to stderr and can't be redirected directly, ++# and sets the high bit in the cache file unless we assign to the vars. ++(set) 2>&1 | ++ case `(ac_space=' '; set | grep ac_space) 2>&1` in ++ *ac_space=\ *) ++ # `set' does not quote correctly, so add quotes (double-quote substitution ++ # turns \\\\ into \\, and sed turns \\ into \). ++ sed -n \ ++ -e "s/'/'\\\\''/g" \ ++ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ++ ;; ++ *) ++ # `set' quotes correctly as required by POSIX, so do not add quotes. ++ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ++ ;; ++ esac >> confcache ++if cmp -s $cache_file confcache; then ++ : ++else ++ if test -w $cache_file; then ++ echo "updating cache $cache_file" ++ cat confcache > $cache_file ++ else ++ echo "not updating unwritable cache $cache_file" ++ fi ++fi ++rm -f confcache ++ ++exit 0 ++ ++# Local Variables: ++# mode:shell-script ++# sh-indentation:2 ++# End: +--- metamail-2.7.orig/config/mkinstalldirs ++++ metamail-2.7/config/mkinstalldirs +@@ -0,0 +1,40 @@ ++#! /bin/sh ++# mkinstalldirs --- make directory hierarchy ++# Author: Noah Friedman ++# Created: 1993-05-16 ++# Public domain ++ ++# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ ++ ++errstatus=0 ++ ++for file ++do ++ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` ++ shift ++ ++ pathcomp= ++ for d ++ do ++ pathcomp="$pathcomp$d" ++ case "$pathcomp" in ++ -* ) pathcomp=./$pathcomp ;; ++ esac ++ ++ if test ! -d "$pathcomp"; then ++ echo "mkdir $pathcomp" ++ ++ mkdir "$pathcomp" || lasterr=$? ++ ++ if test ! -d "$pathcomp"; then ++ errstatus=$lasterr ++ fi ++ fi ++ ++ pathcomp="$pathcomp/" ++ done ++done ++ ++exit $errstatus ++ ++# mkinstalldirs ends here +--- metamail-2.7.orig/Makefile.am ++++ metamail-2.7/Makefile.am +@@ -0,0 +1,14 @@ ++## Makefile.am -- Process this file with automake to produce Makefile.in ++ ++auxdir = @ac_aux_dir@ ++AUX_DIST = $(auxdir)/install-sh $(auxdir)/missing \ ++ $(auxdir)/mkinstalldirs ++AUX_DIST_EXTRA = $(auxdir)/readline.m4 $(auxdir)/sys_errlist.m4 \ ++ $(auxdir)/sys_siglist.m4 ++EXTRA_DIST = bootstrap ++ ++MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure \ ++ metamail/config-h.in metamail/stamp-h.in ++ ++SUBDIRS = replace metamail src bin ++ACLOCAL = aclocal -I $(auxdir) +--- metamail-2.7.orig/Makefile.in ++++ metamail-2.7/Makefile.in +@@ -0,0 +1,349 @@ ++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am ++ ++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++ ++DESTDIR = ++ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++ ++top_builddir = . ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++transform = @program_transform_name@ ++ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++AS = @AS@ ++CATCOMMAND = @CATCOMMAND@ ++CC = @CC@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EXEEXT = @EXEEXT@ ++LIBTOOL = @LIBTOOL@ ++LIBTOOL_DEPS = @LIBTOOL_DEPS@ ++LN_S = @LN_S@ ++LPRCOMMAND = @LPRCOMMAND@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAINT = @MAINT@ ++MAKEINFO = @MAKEINFO@ ++OBJDUMP = @OBJDUMP@ ++OBJEXT = @OBJEXT@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_aux_dir = @ac_aux_dir@ ++ ++auxdir = @ac_aux_dir@ ++AUX_DIST = $(auxdir)/install-sh $(auxdir)/missing $(auxdir)/mkinstalldirs ++ ++AUX_DIST_EXTRA = $(auxdir)/readline.m4 $(auxdir)/sys_errlist.m4 $(auxdir)/sys_siglist.m4 ++ ++EXTRA_DIST = bootstrap ++ ++MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure metamail/config-h.in metamail/stamp-h.in ++ ++ ++SUBDIRS = replace metamail src bin ++ACLOCAL = aclocal -I $(auxdir) ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ++mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs ++CONFIG_HEADER = ./metamail/config.h ++CONFIG_CLEAN_FILES = ++DIST_COMMON = README COPYING INSTALL Makefile.am Makefile.in aclocal.m4 \ ++configure configure.in ++ ++ ++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) ++ ++TAR = tar ++GZIP_ENV = --best ++all: all-redirect ++.SUFFIXES: ++$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile ++ ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) ++ cd $(top_builddir) \ ++ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status ++ ++$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in ++ cd $(srcdir) && $(ACLOCAL) ++ ++config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ $(SHELL) ./config.status --recheck ++$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) ++ cd $(srcdir) && $(AUTOCONF) ++ ++# This directory's subdirectories are mostly independent; you can cd ++# into them and run `make' without going through this Makefile. ++# To change the values of `make' variables: instead of editing Makefiles, ++# (1) if the variable is set in `config.status', edit `config.status' ++# (which will cause the Makefiles to be regenerated when you run `make'); ++# (2) otherwise, pass the desired values on the `make' command line. ++ ++@SET_MAKE@ ++ ++all-recursive install-data-recursive install-exec-recursive \ ++installdirs-recursive install-recursive uninstall-recursive \ ++check-recursive installcheck-recursive info-recursive dvi-recursive: ++ @set fnord $(MAKEFLAGS); amf=$$2; \ ++ dot_seen=no; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ dot_seen=yes; \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ done; \ ++ if test "$$dot_seen" = "no"; then \ ++ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ ++ fi; test -z "$$fail" ++ ++mostlyclean-recursive clean-recursive distclean-recursive \ ++maintainer-clean-recursive: ++ @set fnord $(MAKEFLAGS); amf=$$2; \ ++ dot_seen=no; \ ++ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ ++ rev="$$subdir $$rev"; \ ++ test "$$subdir" != "." || dot_seen=yes; \ ++ done; \ ++ test "$$dot_seen" = "no" && rev=". $$rev"; \ ++ target=`echo $@ | sed s/-recursive//`; \ ++ for subdir in $$rev; do \ ++ echo "Making $$target in $$subdir"; \ ++ if test "$$subdir" = "."; then \ ++ local_target="$$target-am"; \ ++ else \ ++ local_target="$$target"; \ ++ fi; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ ++ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ done && test -z "$$fail" ++tags-recursive: ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ ++ done ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ here=`pwd` && cd $(srcdir) \ ++ && mkid -f$$here/ID $$unique $(LISP) ++ ++TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SUBDIRS)'; for subdir in $$list; do \ ++ if test "$$subdir" = .; then :; else \ ++ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ ++ fi; \ ++ done; \ ++ list='$(SOURCES) $(HEADERS)'; \ ++ unique=`for i in $$list; do echo $$i; done | \ ++ awk ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ ++ || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) ++ ++mostlyclean-tags: ++ ++clean-tags: ++ ++distclean-tags: ++ -rm -f TAGS ID ++ ++maintainer-clean-tags: ++ ++distdir = $(PACKAGE)-$(VERSION) ++top_distdir = $(distdir) ++ ++# This target untars the dist file and tries a VPATH configuration. Then ++# it guarantees that the distribution is self-contained by making another ++# tarfile. ++distcheck: dist ++ -rm -rf $(distdir) ++ GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz ++ mkdir $(distdir)/=build ++ mkdir $(distdir)/=inst ++ dc_install_base=`cd $(distdir)/=inst && pwd`; \ ++ cd $(distdir)/=build \ ++ && ../configure --srcdir=.. --prefix=$$dc_install_base \ ++ && $(MAKE) $(AM_MAKEFLAGS) \ ++ && $(MAKE) $(AM_MAKEFLAGS) dvi \ ++ && $(MAKE) $(AM_MAKEFLAGS) check \ ++ && $(MAKE) $(AM_MAKEFLAGS) install \ ++ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ ++ && $(MAKE) $(AM_MAKEFLAGS) dist ++ -rm -rf $(distdir) ++ @banner="$(distdir).tar.gz is ready for distribution"; \ ++ dashes=`echo "$$banner" | sed s/./=/g`; \ ++ echo "$$dashes"; \ ++ echo "$$banner"; \ ++ echo "$$dashes" ++dist: distdir ++ -chmod -R a+r $(distdir) ++ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) ++ -rm -rf $(distdir) ++dist-all: distdir ++ -chmod -R a+r $(distdir) ++ GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) ++ -rm -rf $(distdir) ++distdir: $(DISTFILES) ++ -rm -rf $(distdir) ++ mkdir $(distdir) ++ -chmod 777 $(distdir) ++ here=`cd $(top_builddir) && pwd`; \ ++ top_distdir=`cd $(distdir) && pwd`; \ ++ distdir=`cd $(distdir) && pwd`; \ ++ cd $(top_srcdir) \ ++ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile ++ @for file in $(DISTFILES); do \ ++ d=$(srcdir); \ ++ if test -d $$d/$$file; then \ ++ cp -pr $$d/$$file $(distdir)/$$file; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ ++ || cp -p $$d/$$file $(distdir)/$$file || :; \ ++ fi; \ ++ done ++ for subdir in $(SUBDIRS); do \ ++ if test "$$subdir" = .; then :; else \ ++ test -d $(distdir)/$$subdir \ ++ || mkdir $(distdir)/$$subdir \ ++ || exit 1; \ ++ chmod 777 $(distdir)/$$subdir; \ ++ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ ++ || exit 1; \ ++ fi; \ ++ done ++info-am: ++info: info-recursive ++dvi-am: ++dvi: dvi-recursive ++check-am: all-am ++check: check-recursive ++installcheck-am: ++installcheck: installcheck-recursive ++install-exec-am: ++install-exec: install-exec-recursive ++ ++install-data-am: ++install-data: install-data-recursive ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++install: install-recursive ++uninstall-am: ++uninstall: uninstall-recursive ++all-am: Makefile ++all-redirect: all-recursive ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install ++installdirs: installdirs-recursive ++installdirs-am: ++ ++ ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ -rm -f config.cache config.log stamp-h stamp-h[0-9]* ++ ++maintainer-clean-generic: ++ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) ++mostlyclean-am: mostlyclean-tags mostlyclean-generic ++ ++mostlyclean: mostlyclean-recursive ++ ++clean-am: clean-tags clean-generic mostlyclean-am ++ ++clean: clean-recursive ++ ++distclean-am: distclean-tags distclean-generic clean-am ++ -rm -f libtool ++ ++distclean: distclean-recursive ++ -rm -f config.status ++ ++maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ ++ distclean-am ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ ++maintainer-clean: maintainer-clean-recursive ++ -rm -f config.status ++ ++.PHONY: install-data-recursive uninstall-data-recursive \ ++install-exec-recursive uninstall-exec-recursive installdirs-recursive \ ++uninstalldirs-recursive all-recursive check-recursive \ ++installcheck-recursive info-recursive dvi-recursive \ ++mostlyclean-recursive distclean-recursive clean-recursive \ ++maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ ++distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ ++dvi-am dvi check check-am installcheck-am installcheck install-exec-am \ ++install-exec install-data-am install-data install-am install \ ++uninstall-am uninstall all-redirect all-am all installdirs-am \ ++installdirs mostlyclean-generic distclean-generic clean-generic \ ++maintainer-clean-generic clean mostlyclean distclean maintainer-clean ++ ++ ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +--- metamail-2.7.orig/stamp-h.in ++++ metamail-2.7/stamp-h.in +@@ -0,0 +1 @@ ++timestamp +--- metamail-2.7.orig/INSTALL ++++ metamail-2.7/INSTALL +@@ -0,0 +1,182 @@ ++Basic Installation ++================== ++ ++ These are generic installation instructions. ++ ++ The `configure' shell script attempts to guess correct values for ++various system-dependent variables used during compilation. It uses ++those values to create a `Makefile' in each directory of the package. ++It may also create one or more `.h' files containing system-dependent ++definitions. Finally, it creates a shell script `config.status' that ++you can run in the future to recreate the current configuration, a file ++`config.cache' that saves the results of its tests to speed up ++reconfiguring, and a file `config.log' containing compiler output ++(useful mainly for debugging `configure'). ++ ++ If you need to do unusual things to compile the package, please try ++to figure out how `configure' could check whether to do them, and mail ++diffs or instructions to the address given in the `README' so they can ++be considered for the next release. If at some point `config.cache' ++contains results you don't want to keep, you may remove or edit it. ++ ++ The file `configure.in' is used to create `configure' by a program ++called `autoconf'. You only need `configure.in' if you want to change ++it or regenerate `configure' using a newer version of `autoconf'. ++ ++The simplest way to compile this package is: ++ ++ 1. `cd' to the directory containing the package's source code and type ++ `./configure' to configure the package for your system. If you're ++ using `csh' on an old version of System V, you might need to type ++ `sh ./configure' instead to prevent `csh' from trying to execute ++ `configure' itself. ++ ++ Running `configure' takes awhile. While running, it prints some ++ messages telling which features it is checking for. ++ ++ 2. Type `make' to compile the package. ++ ++ 3. Optionally, type `make check' to run any self-tests that come with ++ the package. ++ ++ 4. Type `make install' to install the programs and any data files and ++ documentation. ++ ++ 5. You can remove the program binaries and object files from the ++ source code directory by typing `make clean'. To also remove the ++ files that `configure' created (so you can compile the package for ++ a different kind of computer), type `make distclean'. There is ++ also a `make maintainer-clean' target, but that is intended mainly ++ for the package's developers. If you use it, you may have to get ++ all sorts of other programs in order to regenerate files that came ++ with the distribution. ++ ++Compilers and Options ++===================== ++ ++ Some systems require unusual options for compilation or linking that ++the `configure' script does not know about. You can give `configure' ++initial values for variables by setting them in the environment. Using ++a Bourne-compatible shell, you can do that on the command line like ++this: ++ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure ++ ++Or on systems that have the `env' program, you can do it like this: ++ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure ++ ++Compiling For Multiple Architectures ++==================================== ++ ++ You can compile the package for more than one kind of computer at the ++same time, by placing the object files for each architecture in their ++own directory. To do this, you must use a version of `make' that ++supports the `VPATH' variable, such as GNU `make'. `cd' to the ++directory where you want the object files and executables to go and run ++the `configure' script. `configure' automatically checks for the ++source code in the directory that `configure' is in and in `..'. ++ ++ If you have to use a `make' that does not supports the `VPATH' ++variable, you have to compile the package for one architecture at a time ++in the source code directory. After you have installed the package for ++one architecture, use `make distclean' before reconfiguring for another ++architecture. ++ ++Installation Names ++================== ++ ++ By default, `make install' will install the package's files in ++`/usr/local/bin', `/usr/local/man', etc. You can specify an ++installation prefix other than `/usr/local' by giving `configure' the ++option `--prefix=PATH'. ++ ++ You can specify separate installation prefixes for ++architecture-specific files and architecture-independent files. If you ++give `configure' the option `--exec-prefix=PATH', the package will use ++PATH as the prefix for installing programs and libraries. ++Documentation and other data files will still use the regular prefix. ++ ++ In addition, if you use an unusual directory layout you can give ++options like `--bindir=PATH' to specify different values for particular ++kinds of files. Run `configure --help' for a list of the directories ++you can set and what kinds of files go in them. ++ ++ If the package supports it, you can cause programs to be installed ++with an extra prefix or suffix on their names by giving `configure' the ++option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. ++ ++Optional Features ++================= ++ ++ Some packages pay attention to `--enable-FEATURE' options to ++`configure', where FEATURE indicates an optional part of the package. ++They may also pay attention to `--with-PACKAGE' options, where PACKAGE ++is something like `gnu-as' or `x' (for the X Window System). The ++`README' should mention any `--enable-' and `--with-' options that the ++package recognizes. ++ ++ For packages that use the X Window System, `configure' can usually ++find the X include and library files automatically, but if it doesn't, ++you can use the `configure' options `--x-includes=DIR' and ++`--x-libraries=DIR' to specify their locations. ++ ++Specifying the System Type ++========================== ++ ++ There may be some features `configure' can not figure out ++automatically, but needs to determine by the type of host the package ++will run on. Usually `configure' can figure that out, but if it prints ++a message saying it can not guess the host type, give it the ++`--host=TYPE' option. TYPE can either be a short name for the system ++type, such as `sun4', or a canonical name with three fields: ++ CPU-COMPANY-SYSTEM ++ ++See the file `config.sub' for the possible values of each field. If ++`config.sub' isn't included in this package, then this package doesn't ++need to know the host type. ++ ++ If you are building compiler tools for cross-compiling, you can also ++use the `--target=TYPE' option to select the type of system they will ++produce code for and the `--build=TYPE' option to select the type of ++system on which you are compiling the package. ++ ++Sharing Defaults ++================ ++ ++ If you want to set default values for `configure' scripts to share, ++you can create a site shell script called `config.site' that gives ++default values for variables like `CC', `cache_file', and `prefix'. ++`configure' looks for `PREFIX/share/config.site' if it exists, then ++`PREFIX/etc/config.site' if it exists. Or, you can set the ++`CONFIG_SITE' environment variable to the location of the site script. ++A warning: not all `configure' scripts look for a site script. ++ ++Operation Controls ++================== ++ ++ `configure' recognizes the following options to control how it ++operates. ++ ++`--cache-file=FILE' ++ Use and save the results of the tests in FILE instead of ++ `./config.cache'. Set FILE to `/dev/null' to disable caching, for ++ debugging `configure'. ++ ++`--help' ++ Print a summary of the options to `configure', and exit. ++ ++`--quiet' ++`--silent' ++`-q' ++ Do not print messages saying which checks are being made. To ++ suppress all normal output, redirect it to `/dev/null' (any error ++ messages will still be shown). ++ ++`--srcdir=DIR' ++ Look for the package's source code in directory DIR. Usually ++ `configure' can determine that directory automatically. ++ ++`--version' ++ Print the version of Autoconf used to generate the `configure' ++ script, and exit. ++ ++`configure' also accepts some other, not widely useful, options. +--- metamail-2.7.orig/COPYING ++++ metamail-2.7/COPYING +@@ -0,0 +1,340 @@ ++ GNU GENERAL PUBLIC LICENSE ++ Version 2, June 1991 ++ ++ Copyright (C) 1989, 1991 Free Software Foundation, Inc. ++ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++License is intended to guarantee your freedom to share and change free ++software--to make sure the software is free for all its users. This ++General Public License applies to most of the Free Software ++Foundation's software and to any other program whose authors commit to ++using it. (Some other Free Software Foundation software is covered by ++the GNU Library General Public License instead.) You can apply it to ++your programs, too. ++ ++ When we speak of free software, we are referring to freedom, not ++price. Our General Public Licenses are designed to make sure that you ++have the freedom to distribute copies of free software (and charge for ++this service if you wish), that you receive source code or can get it ++if you want it, that you can change the software or use pieces of it ++in new free programs; and that you know you can do these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++anyone to deny you these rights or to ask you to surrender the rights. ++These restrictions translate to certain responsibilities for you if you ++distribute copies of the software, or if you modify it. ++ ++ For example, if you distribute copies of such a program, whether ++gratis or for a fee, you must give the recipients all the rights that ++you have. You must make sure that they, too, receive or can get the ++source code. And you must show them these terms so they know their ++rights. ++ ++ We protect your rights with two steps: (1) copyright the software, and ++(2) offer you this license which gives you legal permission to copy, ++distribute and/or modify the software. ++ ++ Also, for each author's protection and ours, we want to make certain ++that everyone understands that there is no warranty for this free ++software. If the software is modified by someone else and passed on, we ++want its recipients to know that what they have is not the original, so ++that any problems introduced by others will not reflect on the original ++authors' reputations. ++ ++ Finally, any free program is threatened constantly by software ++patents. We wish to avoid the danger that redistributors of a free ++program will individually obtain patent licenses, in effect making the ++program proprietary. To prevent this, we have made it clear that any ++patent must be licensed for everyone's free use or not licensed at all. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. ++ ++ GNU GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License applies to any program or other work which contains ++a notice placed by the copyright holder saying it may be distributed ++under the terms of this General Public License. The "Program", below, ++refers to any such program or work, and a "work based on the Program" ++means either the Program or any derivative work under copyright law: ++that is to say, a work containing the Program or a portion of it, ++either verbatim or with modifications and/or translated into another ++language. (Hereinafter, translation is included without limitation in ++the term "modification".) Each licensee is addressed as "you". ++ ++Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running the Program is not restricted, and the output from the Program ++is covered only if its contents constitute a work based on the ++Program (independent of having been made by running the Program). ++Whether that is true depends on what the Program does. ++ ++ 1. You may copy and distribute verbatim copies of the Program's ++source code as you receive it, in any medium, provided that you ++conspicuously and appropriately publish on each copy an appropriate ++copyright notice and disclaimer of warranty; keep intact all the ++notices that refer to this License and to the absence of any warranty; ++and give any other recipients of the Program a copy of this License ++along with the Program. ++ ++You may charge a fee for the physical act of transferring a copy, and ++you may at your option offer warranty protection in exchange for a fee. ++ ++ 2. You may modify your copy or copies of the Program or any portion ++of it, thus forming a work based on the Program, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) You must cause the modified files to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ b) You must cause any work that you distribute or publish, that in ++ whole or in part contains or is derived from the Program or any ++ part thereof, to be licensed as a whole at no charge to all third ++ parties under the terms of this License. ++ ++ c) If the modified program normally reads commands interactively ++ when run, you must cause it, when started running for such ++ interactive use in the most ordinary way, to print or display an ++ announcement including an appropriate copyright notice and a ++ notice that there is no warranty (or else, saying that you provide ++ a warranty) and that users may redistribute the program under ++ these conditions, and telling the user how to view a copy of this ++ License. (Exception: if the Program itself is interactive but ++ does not normally print such an announcement, your work based on ++ the Program is not required to print an announcement.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Program, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Program, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Program. ++ ++In addition, mere aggregation of another work not based on the Program ++with the Program (or with a work based on the Program) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may copy and distribute the Program (or a work based on it, ++under Section 2) in object code or executable form under the terms of ++Sections 1 and 2 above provided that you also do one of the following: ++ ++ a) Accompany it with the complete corresponding machine-readable ++ source code, which must be distributed under the terms of Sections ++ 1 and 2 above on a medium customarily used for software interchange; or, ++ ++ b) Accompany it with a written offer, valid for at least three ++ years, to give any third party, for a charge no more than your ++ cost of physically performing source distribution, a complete ++ machine-readable copy of the corresponding source code, to be ++ distributed under the terms of Sections 1 and 2 above on a medium ++ customarily used for software interchange; or, ++ ++ c) Accompany it with the information you received as to the offer ++ to distribute corresponding source code. (This alternative is ++ allowed only for noncommercial distribution and only if you ++ received the program in object code or executable form with such ++ an offer, in accord with Subsection b above.) ++ ++The source code for a work means the preferred form of the work for ++making modifications to it. For an executable work, complete source ++code means all the source code for all modules it contains, plus any ++associated interface definition files, plus the scripts used to ++control compilation and installation of the executable. However, as a ++special exception, the source code distributed need not include ++anything that is normally distributed (in either source or binary ++form) with the major components (compiler, kernel, and so on) of the ++operating system on which the executable runs, unless that component ++itself accompanies the executable. ++ ++If distribution of executable or object code is made by offering ++access to copy from a designated place, then offering equivalent ++access to copy the source code from the same place counts as ++distribution of the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 4. You may not copy, modify, sublicense, or distribute the Program ++except as expressly provided under this License. Any attempt ++otherwise to copy, modify, sublicense or distribute the Program is ++void, and will automatically terminate your rights under this License. ++However, parties who have received copies, or rights, from you under ++this License will not have their licenses terminated so long as such ++parties remain in full compliance. ++ ++ 5. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Program or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Program (or any work based on the ++Program), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Program or works based on it. ++ ++ 6. Each time you redistribute the Program (or any work based on the ++Program), the recipient automatically receives a license from the ++original licensor to copy, distribute or modify the Program subject to ++these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties to ++this License. ++ ++ 7. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Program at all. For example, if a patent ++license would not permit royalty-free redistribution of the Program by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Program. ++ ++If any portion of this section is held invalid or unenforceable under ++any particular circumstance, the balance of the section is intended to ++apply and the section as a whole is intended to apply in other ++circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system, which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 8. If the distribution and/or use of the Program is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Program under this License ++may add an explicit geographical distribution limitation excluding ++those countries, so that distribution is permitted only in or among ++countries not thus excluded. In such case, this License incorporates ++the limitation as if written in the body of this License. ++ ++ 9. The Free Software Foundation may publish revised and/or new versions ++of the General Public License from time to time. Such new versions will ++be similar in spirit to the present version, but may differ in detail to ++address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Program ++specifies a version number of this License which applies to it and "any ++later version", you have the option of following the terms and conditions ++either of that version or of any later version published by the Free ++Software Foundation. If the Program does not specify a version number of ++this License, you may choose any version ever published by the Free Software ++Foundation. ++ ++ 10. If you wish to incorporate parts of the Program into other free ++programs whose distribution conditions are different, write to the author ++to ask for permission. For software which is copyrighted by the Free ++Software Foundation, write to the Free Software Foundation; we sometimes ++make exceptions for this. Our decision will be guided by the two goals ++of preserving the free status of all derivatives of our free software and ++of promoting the sharing and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY ++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN ++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES ++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED ++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS ++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE ++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, ++REPAIR OR CORRECTION. ++ ++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR ++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, ++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING ++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED ++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY ++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER ++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE ++POSSIBILITY OF SUCH DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Programs ++ ++ If you develop a new program, and you want it to be of the greatest ++possible use to the public, the best way to achieve this is to make it ++free software which everyone can redistribute and change under these terms. ++ ++ To do so, attach the following notices to the program. It is safest ++to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least ++the "copyright" line and a pointer to where the full notice is found. ++ ++ ++ Copyright (C) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++If the program is interactive, make it output a short notice like this ++when it starts in an interactive mode: ++ ++ Gnomovision version 69, Copyright (C) year name of author ++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. ++ This is free software, and you are welcome to redistribute it ++ under certain conditions; type `show c' for details. ++ ++The hypothetical commands `show w' and `show c' should show the appropriate ++parts of the General Public License. Of course, the commands you use may ++be called something other than `show w' and `show c'; they could even be ++mouse-clicks or menu items--whatever suits your program. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a "copyright disclaimer" for the program, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program ++ `Gnomovision' (which makes passes at compilers) written by James Hacker. ++ ++ , 1 April 1989 ++ Ty Coon, President of Vice ++ ++This General Public License does not permit incorporating your program into ++proprietary programs. If your program is a subroutine library, you may ++consider it more useful to permit linking proprietary applications with the ++library. If this is what you want to do, use the GNU Library General ++Public License instead of this License. +--- metamail-2.7.orig/bootstrap ++++ metamail-2.7/bootstrap +@@ -0,0 +1,9 @@ ++#! /bin/sh ++ ++set -x ++ ++aclocal -I config ++libtoolize --force --copy ++autoheader ++automake --foreign --add-missing --copy ++autoconf diff --git a/source/n/metamail/slack-desc b/source/n/metamail/slack-desc new file mode 100644 index 000000000..65cdef8b3 --- /dev/null +++ b/source/n/metamail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +metamail: metamail (MIME extensions for mail) +metamail: +metamail: Metamail is an implementation of MIME, the Multipurpose Internet +metamail: Mail Extensions, a proposed standard for multimedia mail on the +metamail: Internet. Metamail implements MIME, and also implements extensibility +metamail: and configuration via the "mailcap" mechanism described in an +metamail: informational RFC that is a companion to the MIME document. +metamail: +metamail: +metamail: +metamail: diff --git a/source/n/mtr/mtr-0.73.configure.error.diff b/source/n/mtr/mtr-0.73.configure.error.diff new file mode 100644 index 000000000..896a5216d --- /dev/null +++ b/source/n/mtr/mtr-0.73.configure.error.diff @@ -0,0 +1,20 @@ +--- ./configure.orig 2008-04-07 11:32:49.000000000 -0500 ++++ ./configure 2008-07-24 12:57:20.000000000 -0500 +@@ -6737,17 +6737,6 @@ + + + rm -f conf.gtktest +- +- else +- AM_PATH_GTK(1.0.0, CFLAGS="$CFLAGS $GTK_CFLAGS" +- LIBS="$LIBS $GTK_LIBS", +- { echo "$as_me:$LINENO: WARNING: Building without GTK+ display support" >&5 +-echo "$as_me: WARNING: Building without GTK+ display support" >&2;} +- cat >>confdefs.h <<\_ACEOF +-#define NO_GTK 1 +-_ACEOF +- +- GTK_OBJ="") + fi + else + cat >>confdefs.h <<\_ACEOF diff --git a/source/n/mtr/mtr.SlackBuild b/source/n/mtr/mtr.SlackBuild new file mode 100755 index 000000000..91ed7be9d --- /dev/null +++ b/source/n/mtr/mtr.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2006 Eric Hameleers, Eindhoven, Netherlands +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=mtr +VERSION=0.73 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar xvf $CWD/${PRGNAM}-${VERSION}.tar.bz2 || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 +zcat $CWD/mtr-0.73.configure.error.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root.root * +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --enable-gtk2 \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +chmod -s $PKG/usr/sbin/mtr + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* FORMATS INSTALL NEWS README* SECURITY TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* + +# Compress the man page(s) +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + +# Strip binaries +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/mtr/slack-desc b/source/n/mtr/slack-desc new file mode 100644 index 000000000..3383d6660 --- /dev/null +++ b/source/n/mtr/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mtr: mtr (a network diagnostic tool) +mtr: +mtr: mtr combines the functionality of the 'traceroute' and 'ping' programs +mtr: in a single network diagnostic tool. +mtr: +mtr: Matt Kimball wrote most of mtr, and mtr is currently maintained by +mtr: Roger Wolff. +mtr: +mtr: mtr has a home page: http://www.bitwizard.nl/mtr/ +mtr: +mtr: diff --git a/source/n/mutt/doinst.sh b/source/n/mutt/doinst.sh new file mode 100644 index 000000000..830fa2458 --- /dev/null +++ b/source/n/mutt/doinst.sh @@ -0,0 +1,13 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/mutt/Muttrc.new diff --git a/source/n/mutt/mutt.SlackBuild b/source/n/mutt/mutt.SlackBuild new file mode 100755 index 000000000..e9ca32754 --- /dev/null +++ b/source/n/mutt/mutt.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.4.2.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mutt +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $(basename mutt-$VERSION i) +tar xvf $CWD/mutt-$VERSION.tar.bz2 || exit 1 +cd $(basename mutt-$VERSION i) || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --sysconfdir=/etc/mutt \ + --with-mailpath=/var/spool/mail \ + --enable-pop \ + --enable-imap \ + --with-ssl \ + --enable-locales-fix \ + --without-wc-funcs \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/* + +# Don't mv the mutt docs directory, because mutt uses 'em. +# Make a link instead. +( cd $PKG/usr/doc ; rm -rf mutt-$VERSION ; ln -sf mutt mutt-$VERSION ) +# This stuff is redundant or not useful to most people, IMHO. +# If you want it, use the source, Luke. +rm -rf \ + $PKG/usr/doc/mutt/html \ + $PKG/usr/doc/mutt/ChangeLog + +mv $PKG/etc/mutt/Muttrc $PKG/etc/mutt/Muttrc.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mutt-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/mutt/slack-desc b/source/n/mutt/slack-desc new file mode 100644 index 000000000..eda6d811d --- /dev/null +++ b/source/n/mutt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mutt: Mutt (the Mutt mail user agent) +mutt: +mutt: Mutt is a small but very powerful text-based MIME mail client. Mutt +mutt: is highly configurable, and is well suited to the mail power user with +mutt: advanced features like key bindings, keyboard macros, mail threading, +mutt: regular expression searches and a powerful pattern matching language +mutt: for selecting groups of messages. +mutt: +mutt: +mutt: +mutt: diff --git a/source/n/nc/nc-110-21.diff b/source/n/nc/nc-110-21.diff new file mode 100644 index 000000000..ad5ae8ad6 --- /dev/null +++ b/source/n/nc/nc-110-21.diff @@ -0,0 +1,787 @@ +--- netcat-1.10.orig/Makefile ++++ netcat-1.10/Makefile +@@ -14,8 +14,8 @@ + XLIBS = # xtra libs if necessary? + # -Bstatic for sunos, -static for gcc, etc. You want this, trust me. + STATIC = +-CC = cc $(CFLAGS) +-LD = $(CC) -s # linker; defaults to stripped executables ++CC = gcc $(CFLAGS) ++LD = $(CC) # linker; defaults to unstripped executables + o = o # object extension + + ALL = nc +--- netcat-1.10.orig/debian/nc.1 ++++ netcat-1.10/debian/nc.1 +@@ -0,0 +1,146 @@ ++.TH NC 1 ++.SH NAME ++nc \- TCP/IP swiss army knife ++.SH SYNOPSIS ++.B nc ++.I "[-options] hostname port[s] [ports] ..." ++.br ++.B nc ++.I "-l -p port [-options] [hostname] [port]" ++.SH "DESCRIPTION" ++.B netcat ++is a simple unix utility which reads and writes data across network ++connections, using TCP or UDP protocol. It is designed to be a ++reliable "back-end" tool that can be used directly or easily driven by ++other programs and scripts. At the same time, it is a feature-rich ++network debugging and exploration tool, since it can create almost any ++kind of connection you would need and has several interesting built-in ++capabilities. Netcat, or "nc" as the actual program is named, should ++have been supplied long ago as another one of those cryptic but ++standard Unix tools. ++.P ++In the simplest usage, "nc host port" creates a TCP connection to the ++given port on the given target host. Your standard input is then sent ++to the host, and anything that comes back across the connection is ++sent to your standard output. This continues indefinitely, until the ++network side of the connection shuts down. Note that this behavior is ++different from most other applications which shut everything down and ++exit after an end-of-file on the standard input. ++.P ++Netcat can also function as a server, by listening for inbound ++connections on arbitrary ports and then doing the same reading and ++writing. With minor limitations, netcat doesn't really care if it ++runs in "client" or "server" mode -- it still shovels data back and ++forth until there isn't any more left. In either mode, shutdown can be ++forced after a configurable time of inactivity on the network side. ++.P ++And it can do this via UDP too, so netcat is possibly the "udp ++telnet-like" application you always wanted for testing your UDP-mode ++servers. UDP, as the "U" implies, gives less reliable data ++transmission than TCP connections and some systems may have trouble ++sending large amounts of data that way, but it's still a useful ++capability to have. ++.P ++You may be asking "why not just use telnet to connect to arbitrary ++ports?" Valid question, and here are some reasons. Telnet has the ++"standard input EOF" problem, so one must introduce calculated delays ++in driving scripts to allow network output to finish. This is the ++main reason netcat stays running until the *network* side closes. ++Telnet also will not transfer arbitrary binary data, because certain ++characters are interpreted as telnet options and are thus removed from ++the data stream. Telnet also emits some of its diagnostic messages to ++standard output, where netcat keeps such things religiously separated ++from its *output* and will never modify any of the real data in ++transit unless you *really* want it to. And of course telnet is ++incapable of listening for inbound connections, or using UDP instead. ++Netcat doesn't have any of these limitations, is much smaller and ++faster than telnet, and has many other advantages. ++.SH OPTIONS ++.TP 13 ++.I \-g gateway ++source-routing hop point[s], up to 8 ++.TP 13 ++.I \-G num ++source-routing pointer: 4, 8, 12, ... ++.TP 13 ++.I \-h ++display help ++.TP 13 ++.I \-i secs ++delay interval for lines sent, ports scanned ++.TP 13 ++.I \-l ++listen mode, for inbound connects ++.TP 13 ++.I \-n ++numeric-only IP addresses, no DNS ++.TP 13 ++.I \-o file ++hex dump of traffic ++.TP 13 ++.I \-p port ++local port number (port numbers can be individual or ranges: lo-hi ++[inclusive]) ++.TP 13 ++.I \-q seconds ++after EOF is detected, wait the specified number of seconds and then ++quit. ++.TP 13 ++.I \-b ++allow UDP broadcasts ++.TP 13 ++.I \-r ++randomize local and remote ports ++.TP 13 ++.I \-s addr ++local source address ++.TP 13 ++.I \-t ++enable telnet negotiation ++.TP 13 ++.I \-e prog ++specify program to exec after connect (use with caution) ++.TP 13 ++.I \-u ++UDP mode ++.TP 13 ++.I \-v ++verbose [use twice to be more verbose] ++.TP 13 ++.I \-w secs ++timeout for connects and final net reads ++.TP 13 ++.I \-z ++zero-I/O mode [used for scanning] ++.SH COPYRIGHT ++Netcat is entirely my own creation, although plenty of other code was ++used as examples. It is freely given away to the Internet community ++in the hope that it will be useful, with no restrictions except giving ++credit where it is due. No GPLs, Berkeley copyrights or any of that ++nonsense. The author assumes NO responsibility for how anyone uses ++it. If netcat makes you rich somehow and you're feeling generous, ++mail me a check. If you are affiliated in any way with Microsoft ++Network, get a life. Always ski in control. Comments, questions, and ++patches to hobbit@avian.org. ++.SH BUGS ++Efforts have been made to have netcat "do the right thing" in all its ++various modes. If you believe that it is doing the wrong thing under ++whatever circumstances, please notify me and tell me how you think it ++should behave. If netcat is not able to do some task you think up, ++minor tweaks to the code will probably fix that. It provides a basic ++and easily-modified template for writing other network applications, ++and I certainly encourage people to make custom mods and send in any ++improvements they make to it. Continued feedback from the Internet ++community is always welcome! ++.P ++Some port names in /etc/services contain hyphens -- netcat currently ++will not correctly parse those, so specify ranges using numbers if you ++can. ++.SH "SEE ALSO" ++/usr/share/doc/netcat/README.gz ++.SH AUTHOR ++This manual page was written by Joey Hess and ++Robert Woodcock , cribbing heavily from Netcat's ++README file. ++.P ++Netcat was written by a guy we know as the Hobbit . +--- netcat-1.10.orig/debian/control ++++ netcat-1.10/debian/control +@@ -0,0 +1,18 @@ ++Source: netcat ++Section: net ++Priority: optional ++Maintainer: Decklin Foster ++Standards-Version: 3.5.6 ++Build-Depends: debhelper (>= 3.0.0) ++ ++Package: netcat ++Architecture: any ++Depends: ${shlibs:Depends} ++Description: TCP/IP swiss army knife ++ A simple Unix utility which reads and writes data across network ++ connections using TCP or UDP protocol. It is designed to be a reliable ++ "back-end" tool that can be used directly or easily driven by other ++ programs and scripts. At the same time it is a feature-rich network ++ debugging and exploration tool, since it can create almost any kind of ++ connection you would need and has several interesting built-in ++ capabilities. +--- netcat-1.10.orig/debian/netcat.examples ++++ netcat-1.10/debian/netcat.examples +@@ -0,0 +1,2 @@ ++data/ ++scripts/ +--- netcat-1.10.orig/debian/rules ++++ netcat-1.10/debian/rules +@@ -0,0 +1,64 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. ++# This file is public domain software, originally written by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This is the debhelper compatibility version to use. ++export DH_COMPAT=3 ++ ++DEB_CFLAGS = -O2 ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++DEB_CFLAGS += -g ++endif ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ $(MAKE) linux CFLAGS='$(DEB_CFLAGS)' STATIC='' \ ++ DFLAGS='-DLINUX -DTELNET -DGAPING_SECURITY_HOLE' ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp ++ # Add here commands to clean up after the build process. ++ -$(MAKE) clean ++ dh_clean ++ ++install: ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ install -m 0755 nc debian/netcat/usr/bin ++ ln -s nc debian/netcat/usr/bin/netcat ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs ++ dh_installexamples ++# dh_installmenu ++ dh_installman ++ ln -s nc.1.gz debian/netcat/usr/share/man/man1/netcat.1.gz ++ dh_installchangelogs Changelog ++ dh_link ++ dh_strip ++ dh_compress -Xexamples ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- netcat-1.10.orig/debian/netcat.copyright ++++ netcat-1.10/debian/netcat.copyright +@@ -0,0 +1,12 @@ ++The netcat Debian package was originally created by Michael Shields ++. It is currently maintained by Decklin Foster ++. ++ ++Netcat was written by *Hobbit* , and can be ++downloaded from . ++ ++The following permission statement is excerpted from `netcat.blurb': ++ ++ Netcat and the associated package is a product of Avian Research, ++ and is freely available in full source form with no restrictions ++ save an obligation to give credit where due. +--- netcat-1.10.orig/debian/changelog ++++ netcat-1.10/debian/changelog +@@ -0,0 +1,157 @@ ++netcat (1.10-21) unstable; urgency=low ++ ++ * Documented -e in man page. (Closes: #131269) ++ ++ -- Decklin Foster Tue, 29 Jan 2002 16:30:30 -0500 ++ ++netcat (1.10-20) unstable; urgency=low ++ ++ * Moved around shutdown call in -q patch to be more compatible with standard ++ nc. Thanks to Dmitry Chernyak for pointing this out. ++ * Applied UDP broadcast patch from NetBSD (Closes: #108182) ++ - Updated man page to document this option ++ - Also applied patch to use inet_aton instead of IADDR_NONE (which is ++ obsolete), so that it will work. ++ * Bumped Standards-Version to 3.5.6 ++ ++ -- Decklin Foster Tue, 9 Oct 2001 18:08:24 -0400 ++ ++netcat (1.10-19) unstable; urgency=low ++ ++ * Reupload source package (my typo fix was lost due to a misconfigured ++ dput). This should really fix #97583. ++ ++ -- Decklin Foster Fri, 1 Jun 2001 18:18:17 -0400 ++ ++netcat (1.10-18) unstable; urgency=low ++ ++ * Applied patch from Joe Pepin to fix multiple timeouts ++ (Closes: #97583) ++ * Lookup services with getservbyname even if resolving hostnames with DNS is ++ disabled (Closes: #98902) ++ * Install a symlink to the nc binary called 'netcat'. (Closes: #97625) ++ ++ -- Decklin Foster Fri, 1 Jun 2001 13:13:25 -0400 ++ ++netcat (1.10-17) unstable; urgency=low ++ ++ * Added include for , which is needed to compile with recent ++ versions of glibc. ++ * Added patch to always print "connection refused" messages, without having ++ to turn on the other junk that -v prints. (Closes: #65413) ++ * Upgraded to debhelper 3 and policy 3.5.2.0. ++ * Added DEB_BUILD_OPTIONS =~ /debug/ support. ++ ++ -- Decklin Foster Wed, 28 Feb 2001 16:53:33 -0500 ++ ++netcat (1.10-16) unstable; urgency=low ++ ++ * Rebuild with dpkg 1.8.1.2 to fix bad .diff.gz ++ ++ -- Decklin Foster Mon, 8 Jan 2001 14:54:48 -0500 ++ ++netcat (1.10-15) unstable; urgency=low ++ ++ * Add shutdown() patch back in (Closes: #81384) ++ * updated /usr/doc -> /usr/share/doc in man page. ++ ++ -- Decklin Foster Sat, 6 Jan 2001 08:58:21 -0500 ++ ++netcat (1.10-14) unstable; urgency=low ++ ++ * Ship with -e turned on. (Closes: #66355) ++ * Fix debian/copyright typo. ++ ++ -- Decklin Foster Sat, 30 Dec 2000 13:27:33 -0500 ++ ++netcat (1.10-13) unstable; urgency=low ++ ++ * New maintainer. (Closes: #80305) ++ * Updated debhelper rules to v2. Also cleaned up/moved some targets and dh_* ++ options. ++ * Bumped Standards-Version to 3.2.1.0. ++ * Compress README file, as per policy. ++ * Applied -q patch properly (Closes: #62402). I think that this is also what ++ caused #71616, but I'll hold off on closing that one. ++ * Added README.Debian explanation about -e. This is possibly the problem ++ behind #66355, so maybe I can close that as well. ++ ++ -- Decklin Foster Thu, 28 Dec 2000 19:02:56 -0500 ++ ++netcat (1.10-12.1) frozen unstable; urgency=low ++ ++ * Non-maintained upload. ++ * Rename arm() to arm_timer() (Closes: #56390) ++ ++ -- Edward Brocklesby Tue, 22 Feb 2000 12:59:12 +0000 ++ ++netcat (1.10-12) unstable; urgency=low ++ ++ * Fixed bugs #45669 and #45675 (removed extraneous sleep(1) command and also ++ removed the "punt!" message; added -q feature) ++ ++ -- Robert S. Edmonds Wed, 22 Sep 1999 19:29:47 -0400 ++ ++netcat (1.10-11) unstable; urgency=low ++ ++ * Applied patch from Graham Stoney that ++ fixes deadlock if the server doesn't close its end until it reads EOF on ++ the connection ++ ++ -- Robert S. Edmonds Mon, 13 Sep 1999 21:53:59 -0400 ++ ++netcat (1.10-10) unstable; urgency=low ++ ++ * Man page fixed (/usr/doc/netcat/README.gz). Fixes bug #35811 ++ ++ -- Robert S. Edmonds Sat, 12 Jun 1999 15:21:31 -0400 ++ ++netcat (1.10-9) unstable; urgency=low ++ ++ * Compiled with -DTELNET. ++ ++ -- Robert S. Edmonds Wed, 4 Nov 1998 09:27:40 -0500 ++ ++netcat (1.10-8) unstable frozen; urgency=low ++ ++ * At the request of many users (and a few bug reports) the binary is now ++ going to be called "nc" as it always was. ++ ++ -- Robert S. Edmonds Sun, 26 Apr 1998 19:36:00 -0400 ++ ++netcat (1.10-7) unstable; urgency=low ++ ++ * Fixed lintian error possible-name-space-pollution. (binary nc -> netcat) ++ ++ -- Robert S. Edmonds Mon, 30 Mar 1998 19:11:49 -0500 ++ ++netcat (1.10-6) unstable; urgency=low ++ ++ * Upgraded to Standards-Version 2.4.0.0. ++ ++ -- Robert S. Edmonds Tue, 17 Feb 1998 13:06:22 -0500 ++ ++netcat (1.10-5) unstable; urgency=low ++ ++ * Merged in changes from Robert Woodcock . ++ - Man page updates. ++ - Compiled with -DTELNET ++ * Removed bogus menu file. ++ * Full source upload. ++ ++ -- Joey Hess Sat, 10 Jan 1998 13:53:59 -0500 ++ ++netcat (1.10-4) unstable; urgency=low ++ ++ * Updated to "new" source format. (#9489) ++ * Libc6. (#11716) ++ * Orphaned the package. ++ * Fixed up description in control file to conform with policy, short ++ description doesn't include package name now. ++ * Fixed documentation location to comply with current policy. (#13194, ++ #11530, #9785) ++ * Wrote a man page. (#9785, #5304, #6647) ++ * Rewrote debian/rules to use debhelper. ++ * Install upstream changelog. ++ ++ -- Joey Hess Sat, 10 Jan 1998 00:53:45 -0500 +--- netcat-1.10.orig/debian/netcat.manpages ++++ netcat-1.10/debian/netcat.manpages +@@ -0,0 +1 @@ ++debian/nc.1 +--- netcat-1.10.orig/debian/netcat.README.Debian ++++ netcat-1.10/debian/netcat.README.Debian +@@ -0,0 +1,17 @@ ++netcat for Debian ++----------------- ++ ++netcat has been compiled with -DGAPING_SECURITY_HOLE turned on. I do ++not believe this is as much of a security hole as the author makes it ++out to be, *if* you know what you're doing (but then, if you didn't, ++you'd still be using telnet ;-)). Since the spawned program will run ++as whatever user started netcat, don't use -e as root. You have been ++warned, so if some cracker breaks into your system due to your own ++stupidity, don't blame me. ++ ++A symlink to the netcat binary called 'netcat' has been installed. ++However, the canonical name is still 'nc'. If you use netcat on other ++systems, it will probably only be installed as 'nc', so keep this in ++mind when writing scripts. ++ ++ -- Decklin Foster Fri, 1 Jun 2001 13:38:10 -0400 +--- netcat-1.10.orig/debian/netcat.dirs ++++ netcat-1.10/debian/netcat.dirs +@@ -0,0 +1 @@ ++usr/bin +--- netcat-1.10.orig/debian/netcat.docs ++++ netcat-1.10/debian/netcat.docs +@@ -0,0 +1 @@ ++README +--- netcat-1.10.orig/netcat.c ++++ netcat-1.10/netcat.c +@@ -59,6 +59,14 @@ + #define RAND rand + #endif /* HAVE_RANDOM */ + ++/* #define POSIX_SETJMP /* If you want timeouts to work under the */ ++ /* posixly correct, yet non-standard glibc-2.x*/ ++ /* then define this- you may also need it for */ ++ /* IRIX, and maybe some others */ ++#ifdef LINUX ++#define POSIX_SETJMP ++#endif ++ + /* includes: */ + #include /* timeval, time_t */ + #include /* jmp_buf et al */ +@@ -73,6 +81,9 @@ + #include + #include + #include /* O_WRONLY et al */ ++#ifdef LINUX /* Linux needs the HERE, oh well. */ ++#include ++#endif + + /* handy stuff: */ + #define SA struct sockaddr /* socket overgeneralization braindeath */ +@@ -106,7 +117,11 @@ + #define PINF struct port_poop + + /* globals: */ ++#ifdef POSIX_SETJMP ++sigjmp_buf jbuf; /* timer crud */ ++#else + jmp_buf jbuf; /* timer crud */ ++#endif + int jval = 0; /* timer crud */ + int netfd = -1; + int ofd = 0; /* hexdump output fd */ +@@ -151,6 +166,7 @@ + + /* global cmd flags: */ + USHORT o_alla = 0; ++USHORT o_allowbroad = 0; + unsigned int o_interval = 0; + USHORT o_listen = 0; + USHORT o_nflag = 0; +@@ -160,6 +176,7 @@ + USHORT o_verbose = 0; + unsigned int o_wait = 0; + USHORT o_zero = 0; ++int o_quit = -1; /* 0 == quit-now; >0 == quit after o_quit seconds */ + /* o_tn in optional section */ + + /* Debug macro: squirt whatever message and sleep a bit so we can see it go +@@ -211,7 +228,6 @@ + o_verbose = 1; + holler (str, p1, p2, p3, p4, p5, p6); + close (netfd); +- sleep (1); + exit (1); + } /* bail */ + +@@ -222,7 +238,15 @@ + errno = 0; + if (o_verbose > 1) /* normally we don't care */ + bail (wrote_txt, wrote_net, wrote_out); +- bail (" punt!"); ++ bail (""); ++} ++ ++/* quit : ++ handler for a "-q" timeout (exit 0 instead of 1) */ ++void quit() ++{ ++ close(netfd); ++ exit(0); + } + + /* timeout and other signal handling cruft */ +@@ -232,12 +256,16 @@ + alarm (0); + if (jval == 0) + bail ("spurious timer interrupt!"); ++#ifdef POSIX_SETJMP ++ siglongjmp (jbuf, jval); ++#else + longjmp (jbuf, jval); ++#endif + } + +-/* arm : ++/* arm_timer : + set the timer. Zero secs arg means unarm */ +-void arm (num, secs) ++void arm_timer (num, secs) + unsigned int num; + unsigned int secs; + { +@@ -250,7 +278,7 @@ + alarm (secs); + jval = num; + } /* if secs */ +-} /* arm */ ++} /* arm_timer */ + + /* Hmalloc : + malloc up what I want, rounded up to *4, and pre-zeroed. Either succeeds +@@ -333,6 +361,7 @@ + struct in_addr iaddr; + register HINF * poop = NULL; + register int x; ++ int rc; + + /* I really want to strangle the twit who dreamed up all these sockaddr and + hostent abstractions, and then forced them all to be incompatible with +@@ -361,9 +390,9 @@ + bail ("gethostpoop fuxored"); + strcpy (poop->name, unknown); /* preload it */ + /* see wzv:workarounds.c for dg/ux return-a-struct inet_addr lossage */ +- iaddr.s_addr = inet_addr (name); ++ rc = inet_aton(name, &iaddr); + +- if (iaddr.s_addr == INADDR_NONE) { /* here's the great split: names... */ ++ if (rc == 0) { /* here's the great split: names... */ + if (numeric) + bail ("Can't parse %s as an IP address", name); + hostent = gethostbyname (name); +@@ -444,8 +473,10 @@ + if (pstring) /* one or the other, pleeze */ + return (0); + x = pnum; +- if (o_nflag) /* go faster, skip getservbyblah */ +- goto gp_finish; ++ /* disabled, see bug #98902. if this is *really* slowing someone ++ * down I'll reconsider. */ ++ /* if (o_nflag) */ /* go faster, skip getservbyblah */ ++ /* goto gp_finish; */ + y = htons (x); /* gotta do this -- see Fig.1 below */ + servent = getservbyport (y, whichp); + if (servent) { +@@ -620,6 +651,13 @@ + rr = setsockopt (nnetfd, SOL_SOCKET, SO_REUSEADDR, &x, sizeof (x)); + if (rr == -1) + holler ("nnetfd reuseaddr failed"); /* ??? */ ++#ifdef SO_BROADCAST ++ if (o_allowbroad) { ++ rr = setsockopt (nnetfd, SOL_SOCKET, SO_BROADCAST, &x, sizeof (x)); ++ if (rr == -1) ++ holler ("nnetfd reuseaddr failed"); /* ??? */ ++ } ++#endif + #ifdef SO_REUSEPORT /* doesnt exist everywhere... */ + rr = setsockopt (nnetfd, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x)); + if (rr == -1) +@@ -743,14 +781,23 @@ + } /* if gatesidx */ + + /* wrap connect inside a timer, and hit it */ +- arm (1, o_wait); ++ arm_timer (1, o_wait); ++#ifdef POSIX_SETJMP ++ if (sigsetjmp (jbuf,1) == 0) { ++ rr = connect (nnetfd, (SA *)remend, sizeof (SA)); ++ } else { /* setjmp: connect failed... */ ++ rr = -1; ++ errno = ETIMEDOUT; /* fake it */ ++ } ++#else + if (setjmp (jbuf) == 0) { + rr = connect (nnetfd, (SA *)remend, sizeof (SA)); + } else { /* setjmp: connect failed... */ + rr = -1; + errno = ETIMEDOUT; /* fake it */ + } +- arm (0, 0); ++#endif ++ arm_timer (0, 0); + if (rr == 0) + return (nnetfd); + close (nnetfd); /* clean up junked socket FD!! */ +@@ -820,14 +867,15 @@ + actually does work after all. Yow. YMMV on strange platforms! */ + if (o_udpmode) { + x = sizeof (SA); /* retval for recvfrom */ +- arm (2, o_wait); /* might as well timeout this, too */ +- if (setjmp (jbuf) == 0) { /* do timeout for initial connect */ ++ arm_timer (2, o_wait); /* might as well timeout this, too */ ++#ifdef POSIX_SETJMP ++ if (sigsetjmp (jbuf,1) == 0) { /* do timeout for initial connect */ + rr = recvfrom /* and here we block... */ + (nnetfd, bigbuf_net, BIGSIZ, MSG_PEEK, (SA *) remend, &x); + Debug (("dolisten/recvfrom ding, rr = %d, netbuf %s ", rr, bigbuf_net)) + } else + goto dol_tmo; /* timeout */ +- arm (0, 0); ++ arm_timer (0, 0); + /* I'm not completely clear on how this works -- BSD seems to make UDP + just magically work in a connect()ed context, but we'll undoubtedly run + into systems this deal doesn't work on. For now, we apparently have to +@@ -842,15 +890,45 @@ + rr = connect (nnetfd, (SA *)remend, sizeof (SA)); + goto whoisit; + } /* o_udpmode */ ++#else ++ if (setjmp (jbuf) == 0) { /* do timeout for initial connect */ ++ rr = recvfrom /* and here we block... */ ++ (nnetfd, bigbuf_net, BIGSIZ, MSG_PEEK, (SA *) remend, &x); ++Debug (("dolisten/recvfrom ding, rr = %d, netbuf %s ", rr, bigbuf_net)) ++ } else ++ goto dol_tmo; /* timeout */ ++ arm (0, 0); ++/* I'm not completely clear on how this works -- BSD seems to make UDP ++ just magically work in a connect()ed context, but we'll undoubtedly run ++ into systems this deal doesn't work on. For now, we apparently have to ++ issue a connect() on our just-tickled socket so we can write() back. ++ Again, why the fuck doesn't it just get filled in and taken care of?! ++ This hack is anything but optimal. Basically, if you want your listener ++ to also be able to send data back, you need this connect() line, which ++ also has the side effect that now anything from a different source or even a ++ different port on the other end won't show up and will cause ICMP errors. ++ I guess that's what they meant by "connect". ++ Let's try to remember what the "U" is *really* for, eh? */ ++ rr = connect (nnetfd, (SA *)remend, sizeof (SA)); ++ goto whoisit; ++ } /* o_udpmode */ ++#endif + + /* fall here for TCP */ + x = sizeof (SA); /* retval for accept */ +- arm (2, o_wait); /* wrap this in a timer, too; 0 = forever */ ++ arm_timer (2, o_wait); /* wrap this in a timer, too; 0 = forever */ ++#ifdef POSIX_SETJMP ++ if (sigsetjmp (jbuf,1) == 0) { ++ rr = accept (nnetfd, (SA *)remend, &x); ++ } else ++ goto dol_tmo; /* timeout */ ++#else + if (setjmp (jbuf) == 0) { + rr = accept (nnetfd, (SA *)remend, &x); + } else + goto dol_tmo; /* timeout */ +- arm (0, 0); ++#endif ++ arm_timer (0, 0); + close (nnetfd); /* dump the old socket */ + nnetfd = rr; /* here's our new one */ + +@@ -1216,6 +1294,18 @@ + if (rr <= 0) { /* at end, or fukt, or ... */ + FD_CLR (0, ding1); /* disable and close stdin */ + close (0); ++ /* if the user asked to exit on EOF, do it */ ++ if (o_quit == 0) { ++ shutdown(netfd, 1); ++ close (fd); ++ exit (0); ++ } ++ /* if user asked to die after a while, arrange for it */ ++ if (o_quit > 0) { ++ shutdown(netfd, 1); ++ signal (SIGALRM, quit); ++ alarm(o_quit); ++ } + } else { + rzleft = rr; + zp = bigbuf_in; +@@ -1389,12 +1479,14 @@ + + /* If your shitbox doesn't have getopt, step into the nineties already. */ + /* optarg, optind = next-argv-component [i.e. flag arg]; optopt = last-char */ +- while ((x = getopt (argc, argv, "ae:g:G:hi:lno:p:rs:tuvw:z")) != EOF) { ++ while ((x = getopt (argc, argv, "abe:g:G:hi:lno:p:q:rs:tuvw:z")) != EOF) { + /* Debug (("in go: x now %c, optarg %x optind %d", x, optarg, optind)) */ + switch (x) { + case 'a': + bail ("all-A-records NIY"); + o_alla++; break; ++ case 'b': ++ o_allowbroad++; break; + #ifdef GAPING_SECURITY_HOLE + case 'e': /* prog to exec */ + pr00gie = optarg; +@@ -1443,6 +1535,8 @@ + break; + case 'r': /* randomize various things */ + o_random++; break; ++ case 'q': /* quit after stdin does EOF */ ++ o_quit = atoi(optarg); break; + case 's': /* local source address */ + /* do a full lookup [since everything else goes through the same mill], + unless -n was previously specified. In fact, careful placement of -n can +@@ -1602,8 +1696,16 @@ + /* if we're scanning at a "one -v" verbosity level, don't print refusals. + Give it another -v if you want to see everything. */ + if ((Single || (o_verbose > 1)) || (errno != ECONNREFUSED)) ++ { ++ /* bug 65413 - if we're not scanning, we always want an ++ * error to be printed for refused connects. This is a ++ * disgustingly ugly way to do it, I really should just ++ * rewrite the holler() interface... */ ++ if (Single) o_verbose++; + holler ("%s [%s] %d (%s)", + whereto->name, whereto->addrs[0], curport, portpoop->name); ++ if (Single) o_verbose--; ++ } + } /* if netfd */ + close (netfd); /* just in case we didn't already */ + if (o_interval) +@@ -1642,6 +1744,7 @@ + -e prog program to exec after connect [dangerous!!]"); + #endif + holler ("\ ++ -b allow broadcasts\n\ + -g gateway source-routing hop point[s], up to 8\n\ + -G num source-routing pointer: 4, 8, 12, ...\n\ + -h this cruft\n\ +@@ -1651,6 +1754,7 @@ + -o file hex dump of traffic\n\ + -p port local port number\n\ + -r randomize local and remote ports\n\ ++ -q secs quit after EOF on stdin and delay of secs\n\ + -s addr local source address"); + #ifdef TELNET + holler ("\ diff --git a/source/n/nc/nc.SlackBuild b/source/n/nc/nc.SlackBuild new file mode 100755 index 000000000..aafa123ba --- /dev/null +++ b/source/n/nc/nc.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.10 +SRCVER=110 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nc +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf nc-$SRCVER +mkdir nc-$SRCVER +cd nc-$SRCVER +tar xvf $CWD/nc${SRCVER}.tgz || exit 1 +zcat $CWD/nc-110-21.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/nc.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make linux CFLAGS="$SLKCFLAGS" || exit 1 + +strip nc +mkdir -p $PKG/usr/bin +cat nc > $PKG/usr/bin/nc +chmod 755 $PKG/usr/bin/nc + +mkdir -p $PKG/usr/man/man1 +cat debian/nc.1 | gzip -9c > $PKG/usr/man/man1/nc.1.gz + +mkdir -p $PKG/usr/doc/nc-$VERSION +cp -a \ + Changelog README data netcat.blurb scripts \ + $PKG/usr/doc/nc-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/nc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/nc/nc.diff b/source/n/nc/nc.diff new file mode 100644 index 000000000..5642e8167 --- /dev/null +++ b/source/n/nc/nc.diff @@ -0,0 +1,24 @@ +--- ./Makefile.orig 2002-05-28 14:17:29.000000000 -0700 ++++ ./Makefile 2002-05-28 14:28:57.000000000 -0700 +@@ -9,7 +9,7 @@ + # pick gcc if you'd rather , and/or do -g instead of -O if debugging + # debugging + # DFLAGS = -DTEST -DDEBUG +-CFLAGS = -O ++CFLAGS = -O -march=i386 -mcpu=i686 + XFLAGS = # xtra cflags, set by systype targets + XLIBS = # xtra libs if necessary? + # -Bstatic for sunos, -static for gcc, etc. You want this, trust me. +@@ -66,8 +66,11 @@ + aix: + make -e $(ALL) $(MFLAGS) XFLAGS='-DAIX' + ++# The "GAPING_SECURITY_HOLE" is really not that gaping. Anything can be used in ++# a stupid way, IMHO. Besides, netpipes allows these same things and doesn't even ++# warn they might be insecure... just know what you're doing, and you'll be fine. + linux: +- make -e $(ALL) $(MFLAGS) XFLAGS='-DLINUX' STATIC=-static ++ make -e $(ALL) $(MFLAGS) XFLAGS='-DLINUX -DTELNET -DGAPING_SECURITY_HOLE' + + # irix 5.2, dunno 'bout earlier versions. If STATIC='-non_shared' doesn't + # work for you, null it out and yell at SGI for their STUPID default diff --git a/source/n/nc/slack-desc b/source/n/nc/slack-desc new file mode 100644 index 000000000..a00d0ea4e --- /dev/null +++ b/source/n/nc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nc: nc (Netcat network utility) +nc: +nc: Netcat, or "nc" as the actual program is named, is a simple utility +nc: which reads and writes data across network connections, using TCP or +nc: UDP protocol. It is designed to be a reliable "back-end" tool that +nc: can be used directly or easily driven by other programs and scripts. +nc: At the same time, it is a feature-rich network debugging and +nc: exploration tool, since it can create almost any kind of connection +nc: you would need and has several interesting built-in capabilities. +nc: Netcat was written by *Hobbit* , and is a product +nc: of Avian Research. diff --git a/source/n/ncftp/ncftp.SlackBuild b/source/n/ncftp/ncftp.SlackBuild new file mode 100755 index 000000000..81cc729a6 --- /dev/null +++ b/source/n/ncftp/ncftp.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=3.2.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ncftp +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ncftp-$VERSION +tar xvf $CWD/ncftp-$VERSION-src.tar.bz2 || exit 1 +cd ncftp-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/bin + rm -f ncftpspooler + ln -sf ncftpbatch ncftpspooler +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/ncftp-$VERSION +cp -a doc/* $PKG/usr/doc/ncftp-$VERSION +# Useless redundancy: +rm -r $PKG/usr/doc/ncftp-$VERSION/{html,man} + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ncftp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ncftp/slack-desc b/source/n/ncftp/slack-desc new file mode 100644 index 000000000..61a0807d8 --- /dev/null +++ b/source/n/ncftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ncftp: ncftp (ftp client) +ncftp: +ncftp: NcFTP is a user interface to the Internet standard File Transfer +ncftp: Protocol. This program allows a user to transfer files to and from a +ncftp: remote network site, and offers additional features that are not found +ncftp: in the standard interface for ftp. +ncftp: +ncftp: +ncftp: +ncftp: +ncftp: diff --git a/source/n/net-snmp/doinst.sh b/source/n/net-snmp/doinst.sh new file mode 100644 index 000000000..4f1e48303 --- /dev/null +++ b/source/n/net-snmp/doinst.sh @@ -0,0 +1,23 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.snmpd.new: +if [ -e etc/rc.d/rc.snmpd ]; then + cp -a etc/rc.d/rc.snmpd etc/rc.d/rc.snmpd.new.incoming + cat etc/rc.d/rc.snmpd.new > etc/rc.d/rc.snmpd.new.incoming + mv etc/rc.d/rc.snmpd.new.incoming etc/rc.d/rc.snmpd.new +fi + +config etc/snmp/snmpd.conf.new +config etc/rc.d/rc.snmpd.new + diff --git a/source/n/net-snmp/net-snmp.SlackBuild b/source/n/net-snmp/net-snmp.SlackBuild new file mode 100755 index 000000000..a102b0e56 --- /dev/null +++ b/source/n/net-snmp/net-snmp.SlackBuild @@ -0,0 +1,145 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=net-snmp +VERSION=${VERSION:-5.4.2.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc/snmp \ + --mandir=/usr/man \ + --enable-ipv6 \ + --disable-debugging \ + --enable-static=no \ + --with-libwrap \ + --with-perl-modules \ + --with-default-snmp-version=3 \ + --with-sys-contact="root@example.org" \ + --with-sys-location="unknown" \ + --with-logfile="/var/log/snmpd.log" \ + --with-persistent-directory="/var/lib/net-snmp" \ + --without-rpm \ + --program-suffix= \ + --program-prefix= \ + --build=$ARCH-slackware-linux + +# Build and install: +# This seems to not play well with "-j N"... +make INSTALLDIRS=vendor || exit 1 +make install INSTALLDIRS=vendor DESTDIR=$PKG || exit 1 + +# Evidently --mandir=/usr/man doesn't catch everything... +if [ -d $PKG/usr/share/man/man3 ]; then + mkdir -p $PKG/usr/man/man3 + mv $PKG/usr/share/man/man3/* $PKG/usr/man/man3 + rmdir $PKG/usr/share/man/man3 $PKG/usr/share/man +fi +mkdir -p $PKG/usr +mv $PKG/usr/share/man $PKG/usr + +mkdir -p $PKG/var/lib/net-snmp +mkdir -p $PKG/etc/snmp +zcat $CWD/snmpd.conf.gz > $PKG/etc/snmp/snmpd.conf.new +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.snmpd > $PKG/etc/rc.d/rc.snmpd.new + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Remove perllocal files: +( cd $PKG ; find . -name perllocal.pod -exec rm "{}" \; ) + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AGENT.txt CHANGES COPYING* CodingStyle EXAMPLE* FAQ \ + INSTALL NEWS PORTING README* TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/net-snmp/rc.snmpd b/source/n/net-snmp/rc.snmpd new file mode 100644 index 000000000..cd52366c6 --- /dev/null +++ b/source/n/net-snmp/rc.snmpd @@ -0,0 +1,54 @@ +#!/bin/sh +# +# rc.snmpd This shell script takes care of starting and stopping +# the net-snmp SNMP daemon + +OPTIONS="-A -p /var/run/snmpd -a" + +start() { + if [ -x /usr/sbin/snmpd -a -f /etc/snmp/snmpd.conf ]; then + echo -n "Starting snmpd: " + /usr/sbin/snmpd $OPTIONS -c /etc/snmp/snmpd.conf + echo " /usr/sbin/snmpd $OPTIONS -c /etc/snmp/snmpd.conf" + fi +} + +stop() { + # Stop daemons. + COUNT=0 + echo -n "Shutting down snmpd: " + while `killall snmpd 2>/dev/null`; do + echo -n "." + sleep 1 + COUNT=$((COUNT+1)) + if [ $COUNT -ge 30 ]; then + killall -9 snmpd + sleep 1 + break + fi + done + echo " DONE" +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + stop + start + ;; + condrestart) + if [ -f /var/run/snmpd ]; then + stop + start + fi + ;; + *) + echo $"Usage: $0 {start|stop|restart|condrestart}" + ;; +esac diff --git a/source/n/net-snmp/slack-desc b/source/n/net-snmp/slack-desc new file mode 100644 index 000000000..7659f7fc8 --- /dev/null +++ b/source/n/net-snmp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +net-snmp: net-snmp (Simple Network Management Protocol tools) +net-snmp: +net-snmp: Various tools relating to the Simple Network Management Protocol: +net-snmp: +net-snmp: An extensible agent +net-snmp: An SNMP library +net-snmp: Tools to request or set information from SNMP agents +net-snmp: Tools to generate and handle SNMP traps +net-snmp: A version of the unix 'netstat' command using SNMP +net-snmp: A graphical Perl/Tk/SNMP based mib browser +net-snmp: diff --git a/source/n/net-snmp/snmpd.conf b/source/n/net-snmp/snmpd.conf new file mode 100644 index 000000000..51dce4edb --- /dev/null +++ b/source/n/net-snmp/snmpd.conf @@ -0,0 +1,455 @@ +############################################################################### +# +# snmpd.conf: +# An example configuration file for configuring the ucd-snmp snmpd agent. +# +############################################################################### +# +# This file is intended to only be as a starting point. Many more +# configuration directives exist than are mentioned in this file. For +# full details, see the snmpd.conf(5) manual page. +# +# All lines beginning with a '#' are comments and are intended for you +# to read. All other lines are configuration commands for the agent. + +############################################################################### +# Access Control +############################################################################### + +# As shipped, the snmpd demon will only respond to queries on the +# system mib group until this file is replaced or modified for +# security purposes. Examples are shown below about how to increase the +# level of access. + +# By far, the most common question I get about the agent is "why won't +# it work?", when really it should be "how do I configure the agent to +# allow me to access it?" +# +# By default, the agent responds to the "public" community for read +# only access, if run out of the box without any configuration file in +# place. The following examples show you other ways of configuring +# the agent so that you can change the community names, and give +# yourself write access to the mib tree as well. +# +# For more information, read the FAQ as well as the snmpd.conf(5) +# manual page. + +#### +# First, map the community name "public" into a "security name" + +# sec.name source community +com2sec notConfigUser default public + +#### +# Second, map the security name into a group name: + +# groupName securityModel securityName +group notConfigGroup v1 notConfigUser +group notConfigGroup v2c notConfigUser + +#### +# Third, create a view for us to let the group have rights to: + +# Make at least snmpwalk -v 1 localhost -c public system fast again. +# name incl/excl subtree mask(optional) +view systemview included .1.3.6.1.2.1.1 +view systemview included .1.3.6.1.2.1.25.1.1 + +#### +# Finally, grant the group read-only access to the systemview view. + +# group context sec.model sec.level prefix read write notif +access notConfigGroup "" any noauth exact systemview none none + +# ----------------------------------------------------------------------------- + +# Here is a commented out example configuration that allows less +# restrictive access. + +# YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY +# KNOWN AT YOUR SITE. YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO +# SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE. + +## sec.name source community +#com2sec local localhost COMMUNITY +#com2sec mynetwork NETWORK/24 COMMUNITY + +## group.name sec.model sec.name +#group MyRWGroup any local +#group MyROGroup any mynetwork +# +#group MyRWGroup any otherv3user +#... + +## incl/excl subtree mask +#view all included .1 80 + +## -or just the mib2 tree- + +#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc + + +## context sec.model sec.level prefix read write notif +#access MyROGroup "" any noauth 0 all none none +#access MyRWGroup "" any noauth 0 all all all + + +############################################################################### +# Sample configuration to make net-snmpd RFC 1213. +# Unfortunately v1 and v2c don't allow any user based authentification, so +# opening up the default config is not an option from a security point. +# +# WARNING: If you uncomment the following lines you allow write access to your +# snmpd daemon from any source! To avoid this use different names for your +# community or split out the write access to a different community and +# restrict it to your local network. +# Also remember to comment the syslocation and syscontact parameters later as +# otherwise they are still read only (see FAQ for net-snmp). +# + +# First, map the community name "public" into a "security name" +# sec.name source community +#com2sec notConfigUser default public + +# Second, map the security name into a group name: +# groupName securityModel securityName +#group notConfigGroup v1 notConfigUser +#group notConfigGroup v2c notConfigUser + +# Third, create a view for us to let the group have rights to: +# Open up the whole tree for ro, make the RFC 1213 required ones rw. +# name incl/excl subtree mask(optional) +#view roview included .1 +#view rwview included system.sysContact +#view rwview included system.sysName +#view rwview included system.sysLocation +#view rwview included interfaces.ifTable.ifEntry.ifAdminStatus +#view rwview included at.atTable.atEntry.atPhysAddress +#view rwview included at.atTable.atEntry.atNetAddress +#view rwview included ip.ipForwarding +#view rwview included ip.ipDefaultTTL +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteDest +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric1 +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric2 +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric3 +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric4 +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteType +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteAge +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMask +#view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric5 +#view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex +#view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress +#view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress +#view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType +#view rwview included tcp.tcpConnTable.tcpConnEntry.tcpConnState +#view rwview included egp.egpNeighTable.egpNeighEntry.egpNeighEventTrigger +#view rwview included snmp.snmpEnableAuthenTraps + +# Finally, grant the group read-only access to the systemview view. +# group context sec.model sec.level prefix read write notif +#access notConfigGroup "" any noauth exact roview rwview none + + + +############################################################################### +# System contact information +# + +# It is also possible to set the sysContact and sysLocation system +# variables through the snmpd.conf file: + +syslocation Unknown (edit /etc/snmp/snmpd.conf) +syscontact Root (configure /etc/snmp/snmp.local.conf) + +# Example output of snmpwalk: +# % snmpwalk -v 1 localhost -c public system +# system.sysDescr.0 = "SunOS name sun4c" +# system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.sunos4 +# system.sysUpTime.0 = Timeticks: (595637548) 68 days, 22:32:55 +# system.sysContact.0 = "Me " +# system.sysName.0 = "name" +# system.sysLocation.0 = "Right here, right now." +# system.sysServices.0 = 72 + + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Process checks. +# +# The following are examples of how to use the agent to check for +# processes running on the host. The syntax looks something like: +# +# proc NAME [MAX=0] [MIN=0] +# +# NAME: the name of the process to check for. It must match +# exactly (ie, http will not find httpd processes). +# MAX: the maximum number allowed to be running. Defaults to 0. +# MIN: the minimum number to be running. Defaults to 0. + +# +# Examples (commented out by default): +# + +# Make sure mountd is running +#proc mountd + +# Make sure there are no more than 4 ntalkds running, but 0 is ok too. +#proc ntalkd 4 + +# Make sure at least one sendmail, but less than or equal to 10 are running. +#proc sendmail 10 1 + +# A snmpwalk of the process mib tree would look something like this: +# +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.2 +# enterprises.ucdavis.procTable.prEntry.prIndex.1 = 1 +# enterprises.ucdavis.procTable.prEntry.prIndex.2 = 2 +# enterprises.ucdavis.procTable.prEntry.prIndex.3 = 3 +# enterprises.ucdavis.procTable.prEntry.prNames.1 = "mountd" +# enterprises.ucdavis.procTable.prEntry.prNames.2 = "ntalkd" +# enterprises.ucdavis.procTable.prEntry.prNames.3 = "sendmail" +# enterprises.ucdavis.procTable.prEntry.prMin.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prMin.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prMin.3 = 1 +# enterprises.ucdavis.procTable.prEntry.prMax.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prMax.2 = 4 +# enterprises.ucdavis.procTable.prEntry.prMax.3 = 10 +# enterprises.ucdavis.procTable.prEntry.prCount.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prCount.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prCount.3 = 1 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.1 = 1 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrorFlag.3 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrMessage.1 = "No mountd process running." +# enterprises.ucdavis.procTable.prEntry.prErrMessage.2 = "" +# enterprises.ucdavis.procTable.prEntry.prErrMessage.3 = "" +# enterprises.ucdavis.procTable.prEntry.prErrFix.1 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrFix.2 = 0 +# enterprises.ucdavis.procTable.prEntry.prErrFix.3 = 0 +# +# Note that the errorFlag for mountd is set to 1 because one is not +# running (in this case an rpc.mountd is, but thats not good enough), +# and the ErrMessage tells you what's wrong. The configuration +# imposed in the snmpd.conf file is also shown. +# +# Special Case: When the min and max numbers are both 0, it assumes +# you want a max of infinity and a min of 1. +# + + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Executables/scripts +# + +# +# You can also have programs run by the agent that return a single +# line of output and an exit code. Here are two examples. +# +# exec NAME PROGRAM [ARGS ...] +# +# NAME: A generic name. +# PROGRAM: The program to run. Include the path! +# ARGS: optional arguments to be passed to the program + +# a simple hello world + +#exec echotest /bin/echo hello world + +# Run a shell script containing: +# +# #!/bin/sh +# echo hello world +# echo hi there +# exit 35 +# +# Note: this has been specifically commented out to prevent +# accidental security holes due to someone else on your system writing +# a /tmp/shtest before you do. Uncomment to use it. +# +#exec shelltest /bin/sh /tmp/shtest + +# Then, +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.8 +# enterprises.ucdavis.extTable.extEntry.extIndex.1 = 1 +# enterprises.ucdavis.extTable.extEntry.extIndex.2 = 2 +# enterprises.ucdavis.extTable.extEntry.extNames.1 = "echotest" +# enterprises.ucdavis.extTable.extEntry.extNames.2 = "shelltest" +# enterprises.ucdavis.extTable.extEntry.extCommand.1 = "/bin/echo hello world" +# enterprises.ucdavis.extTable.extEntry.extCommand.2 = "/bin/sh /tmp/shtest" +# enterprises.ucdavis.extTable.extEntry.extResult.1 = 0 +# enterprises.ucdavis.extTable.extEntry.extResult.2 = 35 +# enterprises.ucdavis.extTable.extEntry.extOutput.1 = "hello world." +# enterprises.ucdavis.extTable.extEntry.extOutput.2 = "hello world." +# enterprises.ucdavis.extTable.extEntry.extErrFix.1 = 0 +# enterprises.ucdavis.extTable.extEntry.extErrFix.2 = 0 + +# Note that the second line of the /tmp/shtest shell script is cut +# off. Also note that the exit status of 35 was returned. + +# ----------------------------------------------------------------------------- + + +############################################################################### +# disk checks +# + +# The agent can check the amount of available disk space, and make +# sure it is above a set limit. + +# disk PATH [MIN=100000] +# +# PATH: mount path to the disk in question. +# MIN: Disks with space below this value will have the Mib's errorFlag set. +# Default value = 100000. + +# Check the / partition and make sure it contains at least 10 megs. + +#disk / 10000 + +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9 +# enterprises.ucdavis.diskTable.dskEntry.diskIndex.1 = 0 +# enterprises.ucdavis.diskTable.dskEntry.diskPath.1 = "/" Hex: 2F +# enterprises.ucdavis.diskTable.dskEntry.diskDevice.1 = "/dev/dsk/c201d6s0" +# enterprises.ucdavis.diskTable.dskEntry.diskMinimum.1 = 10000 +# enterprises.ucdavis.diskTable.dskEntry.diskTotal.1 = 837130 +# enterprises.ucdavis.diskTable.dskEntry.diskAvail.1 = 316325 +# enterprises.ucdavis.diskTable.dskEntry.diskUsed.1 = 437092 +# enterprises.ucdavis.diskTable.dskEntry.diskPercent.1 = 58 +# enterprises.ucdavis.diskTable.dskEntry.diskErrorFlag.1 = 0 +# enterprises.ucdavis.diskTable.dskEntry.diskErrorMsg.1 = "" + +# ----------------------------------------------------------------------------- + + +############################################################################### +# load average checks +# + +# load [1MAX=12.0] [5MAX=12.0] [15MAX=12.0] +# +# 1MAX: If the 1 minute load average is above this limit at query +# time, the errorFlag will be set. +# 5MAX: Similar, but for 5 min average. +# 15MAX: Similar, but for 15 min average. + +# Check for loads: +#load 12 14 14 + +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.10 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.1 = 1 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.2 = 2 +# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.3 = 3 +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.1 = "Load-1" +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.2 = "Load-5" +# enterprises.ucdavis.loadTable.laEntry.loadaveNames.3 = "Load-15" +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.1 = "0.49" Hex: 30 2E 34 39 +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.2 = "0.31" Hex: 30 2E 33 31 +# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.3 = "0.26" Hex: 30 2E 32 36 +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.1 = "12.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.2 = "14.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.3 = "14.00" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.1 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.2 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.3 = 0 +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.1 = "" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.2 = "" +# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.3 = "" + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Extensible sections. +# + +# This alleviates the multiple line output problem found in the +# previous executable mib by placing each mib in its own mib table: + +# Run a shell script containing: +# +# #!/bin/sh +# echo hello world +# echo hi there +# exit 35 +# +# Note: this has been specifically commented out to prevent +# accidental security holes due to someone else on your system writing +# a /tmp/shtest before you do. Uncomment to use it. +# +# exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest + +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.50 +# enterprises.ucdavis.50.1.1 = 1 +# enterprises.ucdavis.50.2.1 = "shelltest" +# enterprises.ucdavis.50.3.1 = "/bin/sh /tmp/shtest" +# enterprises.ucdavis.50.100.1 = 35 +# enterprises.ucdavis.50.101.1 = "hello world." +# enterprises.ucdavis.50.101.2 = "hi there." +# enterprises.ucdavis.50.102.1 = 0 + +# Now the Output has grown to two lines, and we can see the 'hi +# there.' output as the second line from our shell script. +# +# Note that you must alter the mib.txt file to be correct if you want +# the .50.* outputs above to change to reasonable text descriptions. + +# Other ideas: +# +# exec .1.3.6.1.4.1.2021.51 ps /bin/ps +# exec .1.3.6.1.4.1.2021.52 top /usr/local/bin/top +# exec .1.3.6.1.4.1.2021.53 mailq /usr/bin/mailq + +# ----------------------------------------------------------------------------- + + +############################################################################### +# Pass through control. +# + +# Usage: +# pass MIBOID EXEC-COMMAND +# +# This will pass total control of the mib underneath the MIBOID +# portion of the mib to the EXEC-COMMAND. +# +# Note: You'll have to change the path of the passtest script to your +# source directory or install it in the given location. +# +# Example: (see the script for details) +# (commented out here since it requires that you place the +# script in the right location. (its not installed by default)) + +# pass .1.3.6.1.4.1.2021.255 /bin/sh /usr/local/local/passtest + +# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.255 +# enterprises.ucdavis.255.1 = "life the universe and everything" +# enterprises.ucdavis.255.2.1 = 42 +# enterprises.ucdavis.255.2.2 = OID: 42.42.42 +# enterprises.ucdavis.255.3 = Timeticks: (363136200) 42 days, 0:42:42 +# enterprises.ucdavis.255.4 = IpAddress: 127.0.0.1 +# enterprises.ucdavis.255.5 = 42 +# enterprises.ucdavis.255.6 = Gauge: 42 +# +# % snmpget -v 1 localhost public .1.3.6.1.4.1.2021.255.5 +# enterprises.ucdavis.255.5 = 42 +# +# % snmpset -v 1 localhost public .1.3.6.1.4.1.2021.255.1 s "New string" +# enterprises.ucdavis.255.1 = "New string" +# + +# For specific usage information, see the man/snmpd.conf.5 manual page +# as well as the local/passtest script used in the above example. + +# Added for support of bcm5820 cards. +pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat + +############################################################################### +# Further Information +# +# See the snmpd.conf manual page, and the output of "snmpd -H". diff --git a/source/n/net-tools/ipmask.8 b/source/n/net-tools/ipmask.8 new file mode 100644 index 000000000..2f9815010 --- /dev/null +++ b/source/n/net-tools/ipmask.8 @@ -0,0 +1,35 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH IPMASK 8 "29 April 2007" "Slackware Version 12.0.0" +.SH NAME +ipmask \- determine network and broadcast addresses given a decimal netmask and IP address. +.SH SYNOPSIS +.B ipmask +.BI packagename +.SH DESCRIPTION +.B ipmask +is a simple program to calculate broadcast and network addresses from a decimal netmask and a decimal IP address. It is used in the Slackware networking script /etc/rc.d/rc.inet1, and in the netconfig script. +.SH OPTIONS +.TP +.B \ +A decimal netmask, such as: 255.255.255.0 +.TP +.B \ +A decimal IP address, such as: 192.168.168.168 +.SH EXAMPLE +Using the above sample netmask and IP address, here's an example: +.TP +$ ipmask 255.255.255.0 192.168.168.168 +.TP +192.168.168.255 192.168.168.0 +.TP +The program returns first the corresponding broadcast address, and then the network address. +.SH AUTHOR +Copyright 1994 by David Niemi. Written in about 30 minutes on 13 Aug. The author places no restrictions on the use of this program, provided that this copyright is preserved in any derived source code. diff --git a/source/n/net-tools/ipmask.c b/source/n/net-tools/ipmask.c new file mode 100644 index 000000000..6be37c317 --- /dev/null +++ b/source/n/net-tools/ipmask.c @@ -0,0 +1,87 @@ +/* ipmask.c + * + * Given argv[1] as a decimal netmask and argv[2] as a decimal IP address, + * print the resulting broadcast and network addresses to stdout. This is + * potentially useful in scripts which need the broadcast address and the + * network address but want to ask the user as few questions as possible. + * + * Copyright 1994 by David Niemi. Written in about 30 minutes on 13 Aug. + * The author places no restrictions on the use of this program, provided + * that this copyright is preserved in any derived source code. + * + * Typical compilation command for Linux: + * cc ipmask.c -Wall -O -m486 -N -o ipmask -s + */ + +#define MYNAME "ipmask" + +#include + +void Usage(void) { + fprintf (stderr, + "USAGE: %s \n", + MYNAME); +} + +int main(int argc, char *argv[]) +{ +unsigned long netmask, ipaddr, netaddr, broadcast; +int in[4], j; +unsigned char bc[4],na[4]; + + if (3 != argc) { + Usage(); + exit(1); + } + + /* Check netmask */ + if (4 != sscanf(argv[1],"%d.%d.%d.%d", &in[0],&in[1],&in[2],&in[3])) { + fprintf (stderr,"Invalid netmask \"%s\".\n", argv[1]); + Usage(); + exit(1); + } + for (j=0; j<4; ++j) { + if (in[j]<0 || in[j]>255) { + fprintf (stderr, + "Invalid octet %d in netmask \"%s\".\n", + j+1, argv[1]); + Usage(); + exit(1); + } + } + netmask = in[3] + 256 * (in[2] + 256 * (in[1] + 256 * in[0])); + + /* Check IP address */ + if (4 != sscanf(argv[2],"%d.%d.%d.%d", &in[0],&in[1],&in[2],&in[3])) { + fprintf (stderr,"Invalid IP address \"%s\".\n", argv[2]); + Usage(); + exit(1); + } + for (j=0; j<4; ++j) { + if (in[j]<0 || in[j]>255) { + fprintf (stderr, + "Invalid octet %d in IP address \"%s\".\n", + j+1, argv[1]); + Usage(); + exit(1); + } + } + ipaddr = in[3] + 256 * (in[2] + 256 * (in[1] + 256 * in[0])); + + broadcast = ipaddr | (~ netmask); + bc[0] = broadcast / 256 / 256 / 256; + bc[1] = (broadcast / 256 / 256) % 256; + bc[2] = (broadcast / 256) % 256; + bc[3] = broadcast % 256; + + netaddr = ipaddr & netmask; + na[0] = netaddr / 256 / 256 / 256; + na[1] = (netaddr / 256 / 256) % 256; + na[2] = (netaddr / 256) % 256; + na[3] = netaddr % 256; + + printf ("%d.%d.%d.%d %d.%d.%d.%d\n", + bc[0], bc[1], bc[2], bc[3], na[0], na[1], na[2], na[3]); + + exit(0); +} diff --git a/source/n/net-tools/net-tools.SlackBuild b/source/n/net-tools/net-tools.SlackBuild new file mode 100755 index 000000000..e757722aa --- /dev/null +++ b/source/n/net-tools/net-tools.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=net-tools +VERSION=${VERSION:-1.60} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +tar xjvf $CWD/net-tools-1.60.tar.bz2 || exit 1 +cd net-tools-1.60 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/net-tools_1.60-19.diff.gz | patch -p1 --backup --verbose || exit +zcat $CWD/net-tools.diff.gz | patch -p1 --backup --verbose || exit + +mkdir -p $PKG/usr/doc/net-tools-1.60 +cp -a README README.ipv6 $PKG/usr/doc/net-tools-1.60 +chmod 644 $PKG/usr/doc/net-tools-1.60/* +chown root:root $PKG/usr/doc/net-tools-1.60/* +HAVE_IP_TOOLS=1 HAVE_MII=1 make +HAVE_IP_TOOLS=1 HAVE_MII=1 make hostname +strip --strip-unneeded ipmaddr iptunnel hostname arp ifconfig nameif rarp route netstat plipconfig slattach mii-tool +mkdir -p $PKG/sbin $PKG/bin $PKG/usr/sbin +cat arp > $PKG/sbin/arp +cat ifconfig > $PKG/sbin/ifconfig +cat rarp > $PKG/sbin/rarp +cat route > $PKG/sbin/route +cat hostname > $PKG/bin/hostname +cat mii-tool > $PKG/sbin/mii-tool +cat nameif > $PKG/sbin/nameif +cat netstat > $PKG/bin/netstat +cat plipconfig > $PKG/sbin/plipconfig +cat slattach > $PKG/usr/sbin/slattach +cat ipmaddr > $PKG/sbin/ipmaddr +cat iptunnel > $PKG/sbin/iptunnel +chmod 755 $PKG/sbin/* $PKG/bin/* $PKG/usr/sbin/* +cd man/en_US +mkdir -p $PKG/usr/man/man{1,5,8} +for page in dnsdomainname.1 domainname.1 hostname.1 nisdomainname.1 \ + ypdomainname.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +cat ethers.5 | gzip -9c > $PKG/usr/man/man5/ethers.5.gz +for page in arp.8 ifconfig.8 mii-tool.8 nameif.8 netstat.8 rarp.8 route.8 \ + slattach.8 plipconfig.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +( cd $PKG/bin + ln -sf hostname dnsdomainname + ln -sf hostname nisdomainname + ln -sf hostname ypdomainname +) + +# This is a little Slackware-specific tool used in some of the network +# related scripts to calculate network and broadcast addresses: +( cd $PKG/bin + cc -O2 -o ipmask $CWD/ipmask.c + strip --strip-unneeded ipmask + chmod 755 ipmask +) +cat $CWD/ipmask.8 | gzip -9c > $PKG/usr/man/man8/ipmask.8.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/net-tools/net-tools.diff b/source/n/net-tools/net-tools.diff new file mode 100644 index 000000000..a19af2026 --- /dev/null +++ b/source/n/net-tools/net-tools.diff @@ -0,0 +1,77 @@ +--- ./config.h.orig Wed Mar 21 21:23:31 2001 ++++ ./config.h Wed Mar 21 21:23:12 2001 +@@ -0,0 +1,74 @@ ++/* ++* config.h Automatically generated configuration includefile ++* ++* NET-TOOLS A collection of programs that form the base set of the ++* NET-3 Networking Distribution for the LINUX operating ++* system. ++* ++* DO NOT EDIT DIRECTLY ++* ++*/ ++ ++/* ++ * ++ * Internationalization ++ * ++ * The net-tools package has currently been translated to French, ++ * German and Brazilian Portugese. Other translations are, of ++ * course, welcome. Answer `n' here if you have no support for ++ * internationalization on your system. ++ * ++ */ ++#define I18N 1 ++ ++/* ++ * ++ * Protocol Families. ++ * ++ */ ++#define HAVE_AFUNIX 1 ++#define HAVE_AFINET 1 ++#define HAVE_AFINET6 1 ++#define HAVE_AFIPX 1 ++#define HAVE_AFATALK 1 ++#define HAVE_AFAX25 1 ++#define HAVE_AFNETROM 1 ++#define HAVE_AFROSE 0 ++#define HAVE_AFX25 1 ++#define HAVE_AFECONET 0 ++#define HAVE_AFDECnet 0 ++#define HAVE_AFASH 0 ++ ++/* ++ * ++ * Device Hardware types. ++ * ++ */ ++#define HAVE_HWETHER 1 ++#define HAVE_HWARC 1 ++#define HAVE_HWSLIP 1 ++#define HAVE_HWPPP 1 ++#define HAVE_HWTUNNEL 1 ++#define HAVE_HWSTRIP 1 ++#define HAVE_HWTR 1 ++#define HAVE_HWAX25 1 ++#define HAVE_HWROSE 0 ++#define HAVE_HWNETROM 1 ++#define HAVE_HWX25 1 ++#define HAVE_HWFR 1 ++#define HAVE_HWSIT 0 ++#define HAVE_HWFDDI 0 ++#define HAVE_HWHIPPI 0 ++#define HAVE_HWASH 0 ++#define HAVE_HWHDLCLAPB 0 ++#define HAVE_HWIRDA 1 ++#define HAVE_HWEC 0 ++ ++/* ++ * ++ * Other Features. ++ * ++ */ ++#define HAVE_FW_MASQUERADE 1 ++#define HAVE_IP_TOOLS 1 ++#define HAVE_MII 1 diff --git a/source/n/net-tools/net-tools_1.60-19.diff b/source/n/net-tools/net-tools_1.60-19.diff new file mode 100644 index 000000000..f754f02d5 --- /dev/null +++ b/source/n/net-tools/net-tools_1.60-19.diff @@ -0,0 +1,29401 @@ +--- net-tools-1.60.orig/lib/ether.c ++++ net-tools-1.60/lib/ether.c +@@ -2,7 +2,7 @@ + * lib/ether.c This file contains an implementation of the "Ethernet" + * support functions. + * +- * Version: $Id: ether.c,v 1.7 1999/09/27 11:00:47 philip Exp $ ++ * Version: $Id: ether.c,v 1.8 2002/07/30 05:17:29 ecki Exp $ + * + * Author: Fred N. van Kempen, + * Copyright 1993 MicroWalt Corporation +@@ -39,7 +39,7 @@ + { + static char buff[64]; + +- snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X", ++ snprintf(buff, sizeof(buff), "%02x:%02x:%02x:%02x:%02x:%02x", + (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), + (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) + ); +--- net-tools-1.60.orig/lib/inet6.c ++++ net-tools-1.60/lib/inet6.c +@@ -3,7 +3,7 @@ + * support functions for the net-tools. + * (most of it copied from lib/inet.c 1.26). + * +- * Version: $Id: inet6.c,v 1.10 2000/10/28 11:04:00 pb Exp $ ++ * Version: $Id: inet6.c,v 1.12 2002/12/10 01:03:09 ecki Exp $ + * + * Author: Fred N. van Kempen, + * Copyright 1993 MicroWalt Corporation +@@ -44,6 +44,21 @@ + + extern int h_errno; /* some netdb.h versions don't export this */ + ++char * fix_v4_address(char *buf, struct in6_addr *in6) ++{ ++ if (IN6_IS_ADDR_V4MAPPED(in6->s6_addr)) { ++ char *s =strchr(buf, '.'); ++ if (s) { ++ while (s > buf && *s != ':') ++ --s; ++ if (*s == ':') ++s; ++ else s = NULL; ++ } ++ if (s) return s; ++ } ++ return buf; ++} ++ + static int INET6_resolve(char *name, struct sockaddr_in6 *sin6) + { + struct addrinfo req, *ai; +@@ -83,14 +98,14 @@ + return (-1); + } + if (numeric & 0x7FFF) { +- inet_ntop(AF_INET6, &sin6->sin6_addr, name, 80); ++ inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80); + return (0); + } + if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) { + if (numeric & 0x8000) + strcpy(name, "default"); + else +- strcpy(name, "*"); ++ strcpy(name, "[::]"); + return (0); + } + +@@ -109,13 +124,14 @@ + } + + ++ + /* Display an Internet socket address. */ + static char *INET6_print(unsigned char *ptr) + { + static char name[80]; + + inet_ntop(AF_INET6, (struct in6_addr *) ptr, name, 80); +- return name; ++ return fix_v4_address(name, (struct in6_addr *)ptr); + } + + +@@ -129,13 +145,14 @@ + return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff)); + if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0) + return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff)); +- return (buff); ++ return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr)); + } + + + static int INET6_getsock(char *bufp, struct sockaddr *sap) + { + struct sockaddr_in6 *sin6; ++ char *p; + + sin6 = (struct sockaddr_in6 *) sap; + sin6->sin6_family = AF_INET6; +@@ -143,7 +160,9 @@ + + if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0) + return (-1); +- ++ p = fix_v4_address(bufp, &sin6->sin6_addr); ++ if (p != bufp) ++ memcpy(bufp, p, strlen(p)+1); + return 16; /* ?;) */ + } + +--- net-tools-1.60.orig/lib/inet6_gr.c ++++ net-tools-1.60/lib/inet6_gr.c +@@ -1,4 +1,4 @@ +-/* ++ /* + Modifications: + 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets, + snprintf instead of sprintf +@@ -71,11 +71,15 @@ + printf(_("INET6 (IPv6) not configured in this system.\n")); + return 1; + } +- printf(_("Kernel IPv6 routing table\n")); + +- printf(_("Destination " +- "Next Hop " +- "Flags Metric Ref Use Iface\n")); ++ if (numeric & RTF_CACHE) ++ printf(_("Kernel IPv6 routing cache\n")); ++ else ++ printf(_("Kernel IPv6 routing table\n")); ++ ++ printf(_("Destination " ++ "Next Hop " ++ "Flag Met Ref Use If\n")); + + while (fgets(buff, 1023, fp)) { + num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %s\n", +@@ -87,13 +91,19 @@ + &slen, + naddr6p[0], naddr6p[1], naddr6p[2], naddr6p[3], + naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7], +- &metric, &use, &refcnt, &iflags, iface); ++ &metric, &refcnt, &use, &iflags, iface); + #if 0 + if (num < 23) + continue; + #endif +- if (!(iflags & RTF_UP)) +- continue; ++ if (iflags & RTF_CACHE) { ++ if (!(numeric & RTF_CACHE)) ++ continue; ++ } else { ++ if (numeric & RTF_CACHE) ++ continue; ++ } ++ + /* Fetch and resolve the target address. */ + snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s", + addr6p[0], addr6p[1], addr6p[2], addr6p[3], +@@ -112,7 +122,12 @@ + inet6_aftype.sprint((struct sockaddr *) &snaddr6, 1)); + + /* Decode the flags. */ +- strcpy(flags, "U"); ++ ++ flags[0]=0; ++ if (iflags & RTF_UP) ++ strcat(flags, "U"); ++ if (iflags & RTF_REJECT) ++ strcat(flags, "!"); + if (iflags & RTF_GATEWAY) + strcat(flags, "G"); + if (iflags & RTF_HOST) +@@ -123,9 +138,19 @@ + strcat(flags, "A"); + if (iflags & RTF_CACHE) + strcat(flags, "C"); ++ if (iflags & RTF_ALLONLINK) ++ strcat(flags, "a"); ++ if (iflags & RTF_EXPIRES) ++ strcat(flags, "e"); ++ if (iflags & RTF_MODIFIED) ++ strcat(flags, "m"); ++ if (iflags & RTF_NONEXTHOP) ++ strcat(flags, "n"); ++ if (iflags & RTF_FLOW) ++ strcat(flags, "f"); + + /* Print the info. */ +- printf("%-43s %-39s %-5s %-6d %-2d %7d %-8s\n", ++ printf("%-30s %-26s %-4s %-3d %-1d%6d %s\n", + addr6, naddr6, flags, metric, refcnt, use, iface); + } + +@@ -144,8 +169,7 @@ + char addr6p[8][5], haddrp[6][3]; + + if (!fp) { +- ESYSNOT("nd_print", "ND Table"); +- return 1; ++ return rprint_fib6(ext, numeric | RTF_CACHE); + } + printf(_("Kernel IPv6 Neighbour Cache\n")); + +--- net-tools-1.60.orig/lib/ipx_gr.c ++++ net-tools-1.60/lib/ipx_gr.c +@@ -38,21 +38,27 @@ + char net[128], router_net[128]; + char router_node[128]; + int num; +- FILE *fp = fopen(_PATH_PROCNET_IPX_ROUTE, "r"); ++ FILE *fp; + struct aftype *ap; + struct sockaddr sa; + +- if ((ap = get_afntype(AF_IPX)) == NULL) { +- EINTERN("lib/ipx_rt.c", "AF_IPX missing"); +- return (-1); +- } ++ fp = fopen(_PATH_PROCNET_IPX_ROUTE1, "r"); + + if (!fp) { +- perror(_PATH_PROCNET_IPX_ROUTE); +- printf(_("IPX not configured in this system.\n")); ++ fp = fopen(_PATH_PROCNET_IPX_ROUTE2, "r"); ++ } ++ ++ if (!fp) { ++ perror(NULL); ++ printf(_("IPX routing not in file %s or %s found.\n"), _PATH_PROCNET_IPX_ROUTE1, _PATH_PROCNET_IPX_ROUTE2); + return 1; + } + ++ if ((ap = get_afntype(AF_IPX)) == NULL) { ++ EINTERN("lib/ipx_rt.c", "AF_IPX missing"); ++ return (-1); ++ } ++ + printf(_("Kernel IPX routing table\n")); /* xxx */ + printf(_("Destination Router Net Router Node\n")); + +--- net-tools-1.60.orig/lib/proc.c ++++ net-tools-1.60/lib/proc.c +@@ -1,11 +1,12 @@ + /* Tolerant /proc file parser. Copyright 1998 Andi Kleen */ +-/* $Id: proc.c,v 1.4 1999/01/05 20:54:00 philip Exp $ */ ++/* $Id: proc.c,v 1.5 2007/12/01 18:44:57 ecki Exp $ */ + /* Fixme: cannot currently cope with removed fields */ + + #include + #include + #include + #include ++#include + + /* Caller must free return string. */ + +@@ -72,3 +73,22 @@ + va_end(ap); + return flag; + } ++ ++ ++FILE *proc_fopen(const char *name) ++{ ++ static char *buffer; ++ static size_t pagesz; ++ FILE *fd = fopen(name, "r"); ++ ++ if (fd == NULL) ++ return NULL; ++ ++ if (!buffer) { ++ pagesz = getpagesize(); ++ buffer = malloc(pagesz); ++ } ++ ++ setvbuf(fd, buffer, _IOFBF, pagesz); ++ return fd; ++} +--- net-tools-1.60.orig/lib/proc.h ++++ net-tools-1.60/lib/proc.h +@@ -1,5 +1,7 @@ +- +- +-/* Generate a suitable scanf format for a column title line */ ++/* ++ * prototypes for proc.c ++ */ + char *proc_gen_fmt(char *name, int more, FILE * fh,...); + int proc_guess_fmt(char *name, FILE* fh,...); ++FILE *proc_fopen(const char *name); ++ +--- net-tools-1.60.orig/lib/util-ank.c ++++ net-tools-1.60/lib/util-ank.c +@@ -293,7 +293,7 @@ + return 0; + } + +-const char *format_host(int af, void *addr, __u8 *abuf, int alen) ++const char *format_host(int af, void *addr, char *abuf, int alen) + { + #ifdef RESOLVE_HOSTNAMES + if (resolve_hosts) { +--- net-tools-1.60.orig/lib/Makefile ++++ net-tools-1.60/lib/Makefile +@@ -16,7 +16,7 @@ + # + + +-HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o ++HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o eui64.o + AFOBJS = unix.o inet.o inet6.o ax25.o ipx.o ddp.o ipx.o netrom.o af.o rose.o econet.o x25.o + AFGROBJS = inet_gr.o inet6_gr.o ipx_gr.o ddp_gr.o netrom_gr.o ax25_gr.o rose_gr.o getroute.o x25_gr.o + AFSROBJS = inet_sr.o inet6_sr.o netrom_sr.o ipx_sr.o setroute.o x25_sr.o +--- net-tools-1.60.orig/lib/ddp_gr.c ++++ net-tools-1.60/lib/ddp_gr.c +@@ -1,3 +1,20 @@ ++/* ++ * lib/ddp_gr.c Prinbting of DDP (AppleTalk) routing table ++ * used by the NET-LIB. ++ * ++ * NET-LIB ++ * ++ * Version: $Id: ddp_gr.c,v 1.4 2002/06/02 05:25:15 ecki Exp $ ++ * ++ * Author: Ajax ++ * ++ * Modification: ++ * 2002-06-02 integrated into main source by Bernd Eckenfels ++ * ++ */ ++ ++/* TODO: name lookups (/etc/atalk.names? NBP?) */ ++ + #include "config.h" + + #if HAVE_AFATALK +@@ -16,9 +33,61 @@ + #include "pathnames.h" + #include "intl.h" + ++/* stolen from inet_gr.c */ ++#define flags_decode(i,o) do { \ ++ o[0] = '\0'; \ ++ if (i & RTF_UP) strcat(o, "U"); \ ++ if (i & RTF_GATEWAY) strcat(o, "G"); \ ++ if (i & RTF_REJECT) strcat(o, "!"); \ ++ if (i & RTF_HOST) strcat(o, "H"); \ ++ if (i & RTF_REINSTATE) strcat(o, "R"); \ ++ if (i & RTF_DYNAMIC) strcat(o, "D"); \ ++ if (i & RTF_MODIFIED) strcat(o, "M"); \ ++ if (i & RTF_DEFAULT) strcat(o, "d"); \ ++ if (i & RTF_ALLONLINK) strcat(o, "a"); \ ++ if (i & RTF_ADDRCONF) strcat(o, "c"); \ ++ if (i & RTF_NONEXTHOP) strcat(o, "o"); \ ++ if (i & RTF_EXPIRES) strcat(o, "e"); \ ++ if (i & RTF_CACHE) strcat(o, "c"); \ ++ if (i & RTF_FLOW) strcat(o, "f"); \ ++ if (i & RTF_POLICY) strcat(o, "p"); \ ++ if (i & RTF_LOCAL) strcat(o, "l"); \ ++ if (i & RTF_MTU) strcat(o, "u"); \ ++ if (i & RTF_WINDOW) strcat(o, "w"); \ ++ if (i & RTF_IRTT) strcat(o, "i"); \ ++ if (i & RTF_NOTCACHED) strcat(o, "n"); \ ++ } while (0) ++ + int DDP_rprint(int options) + { +- fprintf(stderr, _("Routing table for `ddp' not yet supported.\n")); +- return (1); ++ FILE *fp; ++ char *dest, *gw, *dev, *flags; ++ char oflags[32]; ++ char *hdr = "Destination Gateway Device Flags"; ++ ++ fp = fopen(_PATH_PROCNET_ATALK_ROUTE, "r"); ++ ++ if (!fp) { ++ perror("Error opening " _PATH_PROCNET_ATALK_ROUTE); ++ fprintf(stderr, "DDP (AppleTalk) not configured on this system.\n"); ++ return 1; ++ } ++ ++ fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev); ++ free(dest); free(gw); free(dev); free(flags); ++ ++ printf("%s\n", hdr); ++ ++ while (fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev) == 4) { ++ int iflags = atoi(flags); ++ flags_decode(iflags, oflags); ++ printf("%-16s%-16s%-16s%-s\n", dest, gw, dev, oflags); ++ free(dest); free(gw); free(dev); free(flags); ++ } ++ ++ fclose(fp); ++ ++ return 0; ++ + } + #endif +--- net-tools-1.60.orig/lib/hw.c ++++ net-tools-1.60/lib/hw.c +@@ -2,7 +2,7 @@ + * lib/hw.c This file contains the top-level part of the hardware + * support functions module. + * +- * Version: $Id: hw.c,v 1.17 2000/05/20 13:38:10 pb Exp $ ++ * Version: $Id: hw.c,v 1.18 2001/11/12 02:12:05 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, + * +@@ -73,6 +73,8 @@ + + extern struct hwtype ec_hwtype; + ++extern struct hwtype eui64_hwtype; ++ + static struct hwtype *hwtypes[] = + { + +@@ -144,6 +146,9 @@ + #if HAVE_HWX25 + &x25_hwtype, + #endif ++#if HAVE_HWEUI64 ++ &eui64_hwtype, ++#endif + &unspec_hwtype, + NULL + }; +@@ -217,6 +222,9 @@ + #if HAVE_HWEC + ec_hwtype.title = _("Econet"); + #endif ++#if HAVE_HWEUI64 ++ eui64_hwtype.title = _("Generic EUI-64"); ++#endif + sVhwinit = 1; + } + +--- net-tools-1.60.orig/lib/inet.c ++++ net-tools-1.60/lib/inet.c +@@ -3,7 +3,7 @@ + * support functions for the net-tools. + * (NET-3 base distribution). + * +- * Version: $Id: inet.c,v 1.13 1999/12/11 13:35:56 freitag Exp $ ++ * Version: $Id: inet.c,v 1.14 2003/10/19 11:57:37 pb Exp $ + * + * Author: Fred N. van Kempen, + * Copyright 1993 MicroWalt Corporation +@@ -144,7 +144,7 @@ + struct hostent *ent; + struct netent *np; + struct addr *pn; +- unsigned long ad, host_ad; ++ u_int32_t ad, host_ad; + int host = 0; + + /* Grmpf. -FvK */ +@@ -155,7 +155,7 @@ + errno = EAFNOSUPPORT; + return (-1); + } +- ad = (unsigned long) sin->sin_addr.s_addr; ++ ad = sin->sin_addr.s_addr; + #ifdef DEBUG + fprintf (stderr, "rresolve: %08lx, mask %08x, num %08x \n", ad, netmask, numeric); + #endif +--- net-tools-1.60.orig/lib/inet_sr.c ++++ net-tools-1.60/lib/inet_sr.c +@@ -3,6 +3,7 @@ + 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets + 1999-10-07 - Kurt Garloff - for -host and gws: prefer host names + over networks (or even reject) ++ 2003-10-11 - Maik Broemme - gcc 3.x warnign fixes (default: break;) + */ + + #include "config.h" +@@ -104,7 +105,6 @@ + isnet = 1; break; + case 2: + isnet = 0; break; +- default: + } + + /* Fill in the other fields. */ +--- net-tools-1.60.orig/lib/ipx.c ++++ net-tools-1.60/lib/ipx.c +@@ -133,6 +133,9 @@ + char *ep; + int nbo; + ++ if (!sai) ++ return (-1); ++ + sai->sipx_family = AF_IPX; + sai->sipx_network = htonl(0); + sai->sipx_node[0] = sai->sipx_node[1] = sai->sipx_node[2] = +--- net-tools-1.60.orig/lib/interface.c ++++ net-tools-1.60/lib/interface.c +@@ -7,7 +7,7 @@ + 8/2000 Andi Kleen make the list operations a bit more efficient. + People are crazy enough to use thousands of aliases now. + +- $Id: interface.c,v 1.14 2001/02/10 19:31:15 pb Exp $ ++ $Id: interface.c,v 1.28 2003/05/29 02:09:14 ecki Exp $ + */ + + #include "config.h" +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + #if HAVE_AFIPX + #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) +@@ -87,14 +88,20 @@ + + int ife_short; + ++int if_list_all = 0; /* do we have requested the complete proc list, yet? */ ++ + static struct interface *int_list, *int_last; + + static int if_readlist_proc(char *); + +-static struct interface *add_interface(char *name) ++static struct interface *if_cache_add(char *name) + { + struct interface *ife, **nextp, *new; + ++ if (!int_list) ++ int_last = NULL; ++ ++ /* the cache is sorted, so if we hit a smaller if, exit */ + for (ife = int_last; ife; ife = ife->prev) { + int n = nstrcmp(ife->name, name); + if (n == 0) +@@ -104,7 +111,7 @@ + } + new(new); + safe_strncpy(new->name, name, IFNAMSIZ); +- nextp = ife ? &ife->next : &int_list; ++ nextp = ife ? &ife->next : &int_list; // keep sorting + new->prev = ife; + new->next = *nextp; + if (new->next) +@@ -117,19 +124,22 @@ + + struct interface *lookup_interface(char *name) + { +- struct interface *ife = NULL; +- +- if (if_readlist_proc(name) < 0) +- return NULL; +- ife = add_interface(name); +- return ife; ++ /* if we have read all, use it */ ++ if (if_list_all) ++ return if_cache_add(name); ++ ++ /* otherwise we read a limited list */ ++ if (if_readlist_proc(name) < 0) ++ return NULL; ++ ++ return if_cache_add(name); + } + + int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie) + { + struct interface *ife; + +- if (!int_list && (if_readlist() < 0)) ++ if (!if_list_all && (if_readlist() < 0)) + return -1; + for (ife = int_list; ife; ife = ife->next) { + int err = doit(ife, cookie); +@@ -139,13 +149,15 @@ + return 0; + } + +-int free_interface_list(void) ++int if_cache_free(void) + { + struct interface *ife; + while ((ife = int_list) != NULL) { + int_list = ife->next; + free(ife); + } ++ int_last = NULL; ++ if_list_all = 0; + return 0; + } + +@@ -180,7 +192,7 @@ + } + if (ifc.ifc_len == sizeof(struct ifreq) * numreqs) { + /* assume it overflowed and try again */ +- numreqs += 10; ++ numreqs *= 2; + continue; + } + break; +@@ -188,7 +200,7 @@ + + ifr = ifc.ifc_req; + for (n = 0; n < ifc.ifc_len; n += sizeof(struct ifreq)) { +- add_interface(ifr->ifr_name); ++ if_cache_add(ifr->ifr_name); + ifr++; + } + err = 0; +@@ -198,7 +210,7 @@ + return err; + } + +-static char *get_name(char *name, char *p) ++char *get_name(char *name, char *p) + { + while (isspace(*p)) + p++; +@@ -206,16 +218,19 @@ + if (isspace(*p)) + break; + if (*p == ':') { /* could be an alias */ +- char *dot = p, *dotname = name; +- *name++ = *p++; +- while (isdigit(*p)) +- *name++ = *p++; +- if (*p != ':') { /* it wasn't, backup */ +- p = dot; +- name = dotname; ++ char *dot = p++; ++ while (*p && isdigit(*p)) p++; ++ if (*p == ':') { ++ /* Yes it is, backup and copy it. */ ++ p = dot; ++ *name++ = *p++; ++ while (*p && isdigit(*p)) { ++ *name++ = *p++; ++ } ++ } else { ++ /* No, it isn't */ ++ p = dot; + } +- if (*p == '\0') +- return NULL; + p++; + break; + } +@@ -225,7 +240,7 @@ + return p; + } + +-static int procnetdev_version(char *buf) ++int procnetdev_version(char *buf) + { + if (strstr(buf, "compressed")) + return 3; +@@ -234,12 +249,12 @@ + return 1; + } + +-static int get_dev_fields(char *bp, struct interface *ife) ++int get_dev_fields(char *bp, struct interface *ife) + { + switch (procnetdev_vsn) { + case 3: + sscanf(bp, +- "%llu %llu %lu %lu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu %lu", ++ "%Lu %Lu %lu %lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu %lu", + &ife->stats.rx_bytes, + &ife->stats.rx_packets, + &ife->stats.rx_errors, +@@ -259,7 +274,7 @@ + &ife->stats.tx_compressed); + break; + case 2: +- sscanf(bp, "%llu %llu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu", ++ sscanf(bp, "%Lu %Lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu", + &ife->stats.rx_bytes, + &ife->stats.rx_packets, + &ife->stats.rx_errors, +@@ -277,7 +292,7 @@ + ife->stats.rx_multicast = 0; + break; + case 1: +- sscanf(bp, "%llu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu", ++ sscanf(bp, "%Lu %lu %lu %lu %lu %Lu %lu %lu %lu %lu %lu", + &ife->stats.rx_packets, + &ife->stats.rx_errors, + &ife->stats.rx_dropped, +@@ -300,22 +315,16 @@ + + static int if_readlist_proc(char *target) + { +- static int proc_read; + FILE *fh; + char buf[512]; + struct interface *ife; + int err; + +- if (proc_read) +- return 0; +- if (!target) +- proc_read = 1; +- + fh = fopen(_PATH_PROCNET_DEV, "r"); + if (!fh) { + fprintf(stderr, _("Warning: cannot open %s (%s). Limited output.\n"), + _PATH_PROCNET_DEV, strerror(errno)); +- return if_readconf(); ++ return -2; + } + fgets(buf, sizeof buf, fh); /* eat line */ + fgets(buf, sizeof buf, fh); +@@ -350,7 +359,7 @@ + while (fgets(buf, sizeof buf, fh)) { + char *s, name[IFNAMSIZ]; + s = get_name(name, buf); +- ife = add_interface(name); ++ ife = if_cache_add(name); + get_dev_fields(s, ife); + ife->statistics_valid = 1; + if (target && !strcmp(target,name)) +@@ -359,7 +368,6 @@ + if (ferror(fh)) { + perror(_PATH_PROCNET_DEV); + err = -1; +- proc_read = 0; + } + + #if 0 +@@ -371,9 +379,16 @@ + + int if_readlist(void) + { +- int err = if_readlist_proc(NULL); +- if (!err) +- err = if_readconf(); ++ /* caller will/should check not to call this too often ++ * (i.e. only if if_list_all == 0 ++ */ ++ int err = 0; ++ ++ err |= if_readlist_proc(NULL); ++ err |= if_readconf(); ++ ++ if_list_all = 1; ++ + return err; + } + +@@ -579,11 +594,11 @@ + + void ife_print_short(struct interface *ptr) + { +- printf("%-5.5s ", ptr->name); +- printf("%5d %3d", ptr->mtu, ptr->metric); ++ printf("%-9s ", ptr->name); ++ printf("%5d %-2d ", ptr->mtu, ptr->metric); + /* If needed, display the interface statistics. */ + if (ptr->statistics_valid) { +- printf("%8llu %6lu %6lu %6lu", ++ printf("%8llu %6lu %6lu %-6lu ", + ptr->stats.rx_packets, ptr->stats.rx_errors, + ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors); + printf("%8llu %6lu %6lu %6lu ", +@@ -636,8 +651,8 @@ + int hf; + int can_compress = 0; + unsigned long long rx, tx, short_rx, short_tx; +- char Rext[5]="b"; +- char Text[5]="b"; ++ const char *Rext = "B"; ++ const char *Text = "B"; + + #if HAVE_AFIPX + static struct aftype *ipxtype = NULL; +@@ -670,7 +685,7 @@ + if (hw == NULL) + hw = get_hwntype(-1); + +- printf(_("%-9.9s Link encap:%s "), ptr->name, hw->title); ++ printf(_("%-9s Link encap:%s "), ptr->name, hw->title); + /* For some hardware types (eg Ash, ATM) we don't print the + hardware address if it's null. */ + if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) && +@@ -843,10 +858,38 @@ + tx = ptr->stats.tx_bytes; + short_rx = rx * 10; + short_tx = tx * 10; +- if (rx > 1048576) { short_rx /= 1048576; strcpy(Rext, "Mb"); } +- else if (rx > 1024) { short_rx /= 1024; strcpy(Rext, "Kb"); } +- if (tx > 1048576) { short_tx /= 1048576; strcpy(Text, "Mb"); } +- else if (tx > 1024) { short_tx /= 1024; strcpy(Text, "Kb"); } ++ if (rx > 1125899906842624ull) { ++ short_rx /= 1125899906842624ull; ++ Rext = "PiB"; ++ } else if (rx > 1099511627776ull) { ++ short_rx /= 1099511627776ull; ++ Rext = "TiB"; ++ } else if (rx > 1073741824ull) { ++ short_rx /= 1073741824ull; ++ Rext = "GiB"; ++ } else if (rx > 1048576) { ++ short_rx /= 1048576; ++ Rext = "MiB"; ++ } else if (rx > 1024) { ++ short_rx /= 1024; ++ Rext = "KiB"; ++ } ++ if (tx > 1125899906842624ull) { ++ short_tx /= 1125899906842624ull; ++ Text = "PiB"; ++ } else if (tx > 1099511627776ull) { ++ short_tx /= 1099511627776ull; ++ Text = "TiB"; ++ } else if (tx > 1073741824ull) { ++ short_tx /= 1073741824ull; ++ Text = "GiB"; ++ } else if (tx > 1048576) { ++ short_tx /= 1048576; ++ Text = "MiB"; ++ } else if (tx > 1024) { ++ short_tx /= 1024; ++ Text = "KiB"; ++ } + + printf(" "); + printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"), +@@ -867,7 +910,7 @@ + } + + if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma || +- ptr->map.base_addr)) { ++ ptr->map.base_addr >= 0x100)) { + printf(" "); + if (ptr->map.irq) + printf(_("Interrupt:%d "), ptr->map.irq); +--- net-tools-1.60.orig/lib/net-features.h ++++ net-tools-1.60/lib/net-features.h +@@ -295,6 +295,13 @@ + "-" + #endif + "HDLC/LAPB " ++ ++#if HAVE_HWEUI64 ++"+" ++#else ++"-" ++#endif ++"EUI64 " + ; + + +--- net-tools-1.60.orig/lib/nstrcmp.c ++++ net-tools-1.60/lib/nstrcmp.c +@@ -1,34 +1,157 @@ + /* Copyright 1998 by Andi Kleen. Subject to the GPL. */ +-/* $Id: nstrcmp.c,v 1.2 1998/11/15 20:11:38 freitag Exp $ */ ++/* rewritten by bernd eckenfels because of complicated alias semantic */ ++/* $Id: nstrcmp.c,v 1.4 2004/06/03 22:49:17 ecki Exp $ */ + #include + #include ++#include + #include "util.h" + +-/* like strcmp(), but knows about numbers */ +-int nstrcmp(const char *astr, const char *b) ++ ++/* return numerical :999 suffix or null. sideeffect: replace ':' with \0 */ ++char* cutalias(char* name) + { +- const char *a = astr; ++ int digit = 0; ++ int pos; ++ ++ for(pos=strlen(name); pos>0; pos--) ++ { ++ if (name[pos-1]==':' && digit) ++ { ++ name[pos-1]='\0'; ++ return name+pos; ++ } ++ if (!isdigit(name[pos-1])) ++ break; ++ digit = 1; ++ } ++ return NULL; ++} + +- while (*a == *b) { +- if (*a == '\0') +- return 0; +- a++; +- b++; +- } +- if (isdigit(*a)) { +- if (!isdigit(*b)) +- return -1; +- while (a > astr) { +- a--; +- if (!isdigit(*a)) { +- a++; +- break; +- } +- if (!isdigit(*b)) +- return -1; +- b--; ++ ++/* return index of last non digit or -1 if it does not end with digits */ ++int rindex_nondigit(char *name) ++{ ++ int pos = strlen(name); ++ ++ for(pos=strlen(name); pos>0; pos--) ++ { ++ if (!isdigit(name[pos-1])) ++ return pos; + } +- return atoi(a) > atoi(b) ? 1 : -1; +- } +- return *a - *b; ++ return 0; ++} ++ ++ ++/* like strcmp(), but knows about numbers and ':' alias suffix */ ++int nstrcmp(const char *ap, const char *bp) ++{ ++ char *a = (char*)strdup(ap); ++ char *b = (char*)strdup(bp); ++ char *an, *bn; ++ int av = 0, bv = 0; ++ char *aalias=cutalias(a); ++ char *balias=cutalias(b); ++ int aindex=rindex_nondigit(a); ++ int bindex=rindex_nondigit(b); ++ int complen=(aindex bindex) ++ { free(a); free(b); return 1; } ++ ++ if (aindex < bindex) ++ { free(a); free(b); return -1; } ++ ++ an = a+aindex; ++ bn = b+bindex; ++ ++ av = atoi(an); ++ bv = atoi(bn); ++ ++ if (av < bv) ++ { free(a); free(b); return -1; } ++ ++ if (av > bv) ++ { free(a); free(b); return 1; } ++ ++ av = -1; ++ if (aalias != NULL) ++ av = atoi(aalias); ++ ++ bv = -1; ++ if (balias != NULL) ++ bv = atoi(balias); ++ ++ free(a); free(b); ++ ++ if (av < bv) ++ return -1; ++ ++ if (av > bv) ++ return 1; ++ ++ return 0; ++} ++ ++ ++#ifdef NSTRCMP_TEST ++ ++int cs(int s) ++{ ++ if (s < 0) return -1; ++ if (s > 0) return 1; ++ return 0; ++} ++ ++ ++int dotest(char* a, char* b, int exp) ++{ ++ int res = nstrcmp(a, b); ++ int err = (cs(res) != cs(exp)); ++ printf("nstrcmp(\"%s\", \"%s\")=%d %d %s\n", a, b, res, exp, err?"WRONG":"OK"); ++ return err; + } ++ ++int main() ++{ ++ int err = 0; ++ ++ err |= dotest("eth1", "eth1", 0); ++ err |= dotest("eth0:1", "eth0:1", 0); ++ err |= dotest("lan", "lan", 0); ++ err |= dotest("100", "100", 0); ++ err |= dotest("", "", 0); ++ err |= dotest(":", ":", 0); ++ err |= dotest("a:b:c", "a:b:c", 0); ++ err |= dotest("a:", "a:", 0); ++ err |= dotest(":a", ":a", 0); ++ ++ err |= dotest("a", "aa", -1); ++ err |= dotest("eth0", "eth1", -1); ++ err |= dotest("eth1", "eth20", -1); ++ err |= dotest("eth20", "eth100", -1); ++ err |= dotest("eth1", "eth13", -1); ++ err |= dotest("eth", "eth2", -1); ++ err |= dotest("eth0:1", "eth0:2", -1); ++ err |= dotest("eth1:10", "eth13:10", -1); ++ err |= dotest("eth1:1", "eth1:13", -1); ++ err |= dotest("a", "a:", -1); ++ ++ err |= dotest("aa", "a", 1); ++ err |= dotest("eth2", "eth1", 1); ++ err |= dotest("eth13", "eth1", 1); ++ err |= dotest("eth2", "eth", 1); ++ err |= dotest("eth2:10", "eth2:1", 1); ++ err |= dotest("eth2:5", "eth2:4", 1); ++ err |= dotest("eth3:2", "eth2:3", 1); ++ err |= dotest("eth13:1", "eth1:0", 1); ++ err |= dotest("a:", "a", 1); ++ err |= dotest("a1b12", "a1b2", 1); ++ ++ return err; ++} ++ ++#endif +--- net-tools-1.60.orig/lib/pathnames.h ++++ net-tools-1.60/lib/pathnames.h +@@ -1,4 +1,3 @@ +- + /* + * lib/pathnames.h This file contains the definitions of the path + * names used by the NET-LIB. +@@ -29,8 +28,10 @@ + #define _PATH_PROCNET_NR_NODES "/proc/net/nr_nodes" + #define _PATH_PROCNET_ARP "/proc/net/arp" + #define _PATH_PROCNET_AX25 "/proc/net/ax25" +-#define _PATH_PROCNET_IPX "/proc/net/ipx" +-#define _PATH_PROCNET_IPX_ROUTE "/proc/net/ipx_route" ++#define _PATH_PROCNET_IPX_SOCKET1 "/proc/net/ipx/socket" ++#define _PATH_PROCNET_IPX_SOCKET2 "/proc/net/ipx" ++#define _PATH_PROCNET_IPX_ROUTE1 "/proc/net/ipx/route" ++#define _PATH_PROCNET_IPX_ROUTE2 "/proc/net/ipx_route" + #define _PATH_PROCNET_ATALK "/proc/net/appletalk" + #define _PATH_PROCNET_IP_BLK "/proc/net/ip_block" + #define _PATH_PROCNET_IP_FWD "/proc/net/ip_forward" +@@ -45,6 +46,7 @@ + #define _PATH_PROCNET_X25 "/proc/net/x25" + #define _PATH_PROCNET_X25_ROUTE "/proc/net/x25_routes" + #define _PATH_PROCNET_DEV_MCAST "/proc/net/dev_mcast" ++#define _PATH_PROCNET_ATALK_ROUTE "/proc/net/atalk_route" + + /* pathname for the netlink device */ + #define _PATH_DEV_ROUTE "/dev/route" +--- net-tools-1.60.orig/lib/tr.c ++++ net-tools-1.60/lib/tr.c +@@ -2,7 +2,7 @@ + * lib/tr.c This file contains an implementation of the "Tokenring" + * support functions. + * +- * Version: $Id: tr.c,v 1.8 2000/02/02 08:56:30 freitag Exp $ ++ * Version: $Id: tr.c,v 1.9 2005/05/16 03:15:12 ecki Exp $ + * + * Author: Fred N. van Kempen, + * Copyright 1993 MicroWalt Corporation +@@ -30,8 +30,14 @@ + #include "net-support.h" + #include "pathnames.h" + #include "intl.h" ++#include "util.h" + ++ ++/* actual definition at the end of file */ + extern struct hwtype tr_hwtype; ++#ifdef ARPHRD_IEEE802_TR ++extern struct hwtype tr_hwtype1; ++#endif + + static char *pr_tr(unsigned char *ptr) + { +@@ -42,7 +48,7 @@ + (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) + ); + return (buff); +-} ++ } + + + static int in_tr(char *bufp, struct sockaddr *sap) +@@ -51,7 +57,17 @@ + char c, *orig; + int i, val; + ++#ifdef ARPHRD_IEEE802_TR ++ if (kernel_version() < KRELEASE(2,3,30)) { ++ sap->sa_family = tr_hwtype.type; ++ } else { ++ sap->sa_family = tr_hwtype1.type; ++ } ++#else + sap->sa_family = tr_hwtype.type; ++ #warning "Limited functionality, no support for ARPHRD_IEEE802_TR (old kernel headers?)" ++#endif ++ + ptr = sap->sa_data; + + i = 0; +--- net-tools-1.60.orig/lib/util.h ++++ net-tools-1.60/lib/util.h +@@ -14,3 +14,6 @@ + + char *safe_strncpy(char *dst, const char *src, size_t size); + ++ ++#define netmin(a,b) ((a)<(b) ? (a) : (b)) ++#define netmax(a,b) ((a)>(b) ? (a) : (b)) +--- net-tools-1.60.orig/lib/irda.c ++++ net-tools-1.60/lib/irda.c +@@ -1,13 +1,15 @@ + /********************************************************************* + * + * Filename: irda.c +- * Version: 0.1 +- * Description: A first attempt to make ifconfig understand IrDA ++ * Version: 0.2 ++ * Description: A second attempt to make ifconfig understand IrDA + * Status: Experimental. + * Author: Dag Brattli + * Created at: Wed Apr 21 09:03:09 1999 + * Modified at: Wed Apr 21 09:17:05 1999 + * Modified by: Dag Brattli ++ * Modified at: Wed May 1 11:51:44 CEST 2002 ++ * Modified by: Christoph Bartelmus + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as +@@ -59,9 +61,9 @@ + */ + static char *irda_print(unsigned char *ptr) + { +- static char buff[8]; ++ static char buff[12]; + +- sprintf(&buff[strlen(buff)], "%02x:%02x:%02x:%02x", ptr[3], ptr[2], ++ snprintf(buff, 12, "%02x:%02x:%02x:%02x", ptr[3], ptr[2], + ptr[1], ptr[0]); + + return (buff); +--- net-tools-1.60.orig/lib/x25_sr.c ++++ net-tools-1.60/lib/x25_sr.c +@@ -67,7 +67,7 @@ + strcpy(target, *args++); + + /* Clean out the x25_route_struct structure. */ +- memset((char *) &rt, 0, sizeof(struct x25_route_struct)); ++ memset((char *) &rt, 0, sizeof(rt)); + + + if ((sigdigits = x25_aftype.input(0, target, (struct sockaddr *)&sx25)) < 0) { +@@ -76,8 +76,8 @@ + } + rt.sigdigits=sigdigits; + +- /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */ +- memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address)); ++ /* this works with 2.4 and 2.6 headers struct x25_address vs. typedef */ ++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(sx25.sx25_addr)); + + while (*args) { + if (!strcmp(*args,"device") || !strcmp(*args,"dev")) { +--- net-tools-1.60.orig/lib/eui64.c ++++ net-tools-1.60/lib/eui64.c +@@ -0,0 +1,155 @@ ++/* ++ * lib/eui64.c This file contains support for generic EUI-64 hw addressing ++ * ++ * Version: $Id: eui64.c,v 1.1 2001/11/12 02:12:05 ecki Exp $ ++ * ++ * Author: Daniel Stodden ++ * Copyright 2001 Daniel Stodden ++ * ++ * blueprinted from ether.c ++ * Copyright 1993 MicroWalt Corporation ++ * ++ * This program is free software; you can redistribute it ++ * and/or modify it under the terms of the GNU General ++ * Public License as published by the Free Software ++ * Foundation; either version 2 of the License, or (at ++ * your option) any later version. ++ */ ++#include "config.h" ++ ++#if HAVE_HWEUI64 ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "net-support.h" ++#include "pathnames.h" ++#include "intl.h" ++ ++/* ++ * EUI-64 constants ++ */ ++ ++#define EUI64_ALEN 8 ++ ++#ifndef ARPHRD_EUI64 ++#define ARPHRD_EUI64 27 ++#warning "ARPHRD_EUI64 not defined in . Using private value 27" ++#endif ++ ++struct hwtype eui64_hwtype; ++ ++/* Display an EUI-64 address in readable format. */ ++static char *pr_eui64( unsigned char *ptr ) ++{ ++ static char buff[64]; ++ ++ snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", ++ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), (ptr[3] & 0377), ++ (ptr[4] & 0377), (ptr[5] & 0377), (ptr[6] & 0377), (ptr[7] & 0377) ++ ); ++ return (buff); ++} ++ ++/* Start the PPP encapsulation on the file descriptor. */ ++static int in_eui64( char *bufp, struct sockaddr *sap ) ++{ ++ unsigned char *ptr; ++ char c, *orig; ++ int i; ++ unsigned val; ++ ++ sap->sa_family = eui64_hwtype.type; ++ ptr = sap->sa_data; ++ ++ i = 0; ++ orig = bufp; ++ ++ while ((*bufp != '\0') && (i < EUI64_ALEN)) { ++ val = 0; ++ c = *bufp++; ++ if (isdigit(c)) ++ val = c - '0'; ++ else if (c >= 'a' && c <= 'f') ++ val = c - 'a' + 10; ++ else if (c >= 'A' && c <= 'F') ++ val = c - 'A' + 10; ++ else { ++#ifdef DEBUG ++ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"), ++ orig ); ++#endif ++ errno = EINVAL; ++ return (-1); ++ } ++ ++ val <<= 4; ++ c = *bufp; ++ if (isdigit(c)) ++ val |= c - '0'; ++ else if (c >= 'a' && c <= 'f') ++ val |= c - 'a' + 10; ++ else if (c >= 'A' && c <= 'F') ++ val |= c - 'A' + 10; ++ else if (c == ':' || c == 0) ++ val >>= 4; ++ else { ++#ifdef DEBUG ++ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"), ++ orig ); ++#endif ++ errno = EINVAL; ++ return (-1); ++ } ++ ++ if (c != 0) ++ bufp++; ++ ++ *ptr++ = (unsigned char) (val & 0377); ++ i++; ++ ++ /* We might get a semicolon here - not required. */ ++ if (*bufp == ':') { ++ if (i == EUI64_ALEN) { ++#ifdef DEBUG ++ fprintf(stderr, _("in_eui64(%s): trailing : ignored!\n"), ++ orig) ++#endif ++ ; /* nothing */ ++ } ++ bufp++; ++ } ++ } ++ ++ /* That's it. Any trailing junk? */ ++ if ((i == EUI64_ALEN) && (*bufp != '\0')) { ++#ifdef DEBUG ++ fprintf(stderr, _("in_eui64(%s): trailing junk!\n"), orig); ++ errno = EINVAL; ++ return (-1); ++#endif ++ } ++#ifdef DEBUG ++ fprintf(stderr, "in_eui64(%s): %s\n", orig, pr_eui64(sap->sa_data)); ++#endif ++ ++ return (0); ++} ++ ++struct hwtype eui64_hwtype = ++{ ++ "eui64", NULL, /*"EUI-64 addressing", */ ARPHRD_EUI64, EUI64_ALEN, ++ pr_eui64, in_eui64, NULL, 0 ++}; ++ ++ ++#endif /* HAVE_EUI64 */ +--- net-tools-1.60.orig/rarp.c ++++ net-tools-1.60/rarp.c +@@ -3,7 +3,7 @@ + * that maintains the kernel's RARP cache. It is derived + * from Fred N. van Kempen's arp command. + * +- * Version: $Id: rarp.c,v 1.6 2001/04/08 17:05:05 pb Exp $ ++ * Version: $Id: rarp.c,v 1.9 2007/12/02 02:19:52 ecki Exp $ + * + * Usage: rarp -d hostname Delete entry + * rarp -s hostname ethernet_address Add entry +@@ -40,6 +40,7 @@ + #include "net-support.h" + #include "version.h" + #include "pathnames.h" ++#include "proc.h" + + static char no_rarp_message[] = N_("This kernel does not support RARP.\n"); + +@@ -154,7 +155,7 @@ + + static int display_cache(void) + { +- FILE *fd = fopen(_PATH_PROCNET_RARP, "r"); ++ FILE *fd = proc_fopen(_PATH_PROCNET_RARP); + char buffer[256]; + if (fd == NULL) { + if (errno == ENOENT) +--- net-tools-1.60.orig/slattach.c ++++ net-tools-1.60/slattach.c +@@ -73,7 +73,7 @@ + + + const char *Release = RELEASE, +- *Version = "@(#) slattach 1.21 (1999-11-21)", ++ *Version = "$Id: slattach.c,v 1.11 2005/12/04 05:15:36 ecki Exp $", + *Signature = "net-tools, Fred N. van Kempen et al."; + + +@@ -115,7 +115,7 @@ + int opt_k = 0; /* "keepalive" value */ + #endif + int opt_l = 0; /* "lock it" flag */ +-int opt_L = 0; /* clocal flag */ ++int opt_L = 0; /* 3-wire mode flag */ + int opt_m = 0; /* "set RAW mode" flag */ + int opt_n = 0; /* "set No Mesg" flag */ + #ifdef SIOCSOUTFILL +@@ -342,9 +342,11 @@ + tty->c_oflag = (0); /* output flags */ + tty->c_lflag = (0); /* local flags */ + speed = (tty->c_cflag & CBAUD); /* save current speed */ +- tty->c_cflag = (CRTSCTS | HUPCL | CREAD); /* UART flags */ ++ tty->c_cflag = (HUPCL | CREAD); /* UART flags */ + if (opt_L) + tty->c_cflag |= CLOCAL; ++ else ++ tty->c_cflag |= CRTSCTS; + tty->c_cflag |= speed; /* restore speed */ + return(0); + } +--- net-tools-1.60.orig/include/util-ank.h ++++ net-tools-1.60/include/util-ank.h +@@ -75,6 +75,6 @@ + extern int do_class(int argc, char **argv); + extern int do_filter(int argc, char **argv); + +-extern const char *format_host(int af, void *addr, __u8 *abuf, int alen); ++extern const char *format_host(int af, void *addr, char *abuf, int alen); + + #endif /* __UTILS_H__ */ +--- net-tools-1.60.orig/include/interface.h ++++ net-tools-1.60/include/interface.h +@@ -64,13 +64,17 @@ + extern int if_fetch(struct interface *ife); + + extern int for_all_interfaces(int (*)(struct interface *, void *), void *); +-extern int free_interface_list(void); ++extern int if_cache_free(void); + extern struct interface *lookup_interface(char *name); + extern int if_readlist(void); + + extern int do_if_fetch(struct interface *ife); + extern int do_if_print(struct interface *ife, void *cookie); + ++extern int procnetdev_version(char *buf); ++extern int get_dev_fields(char *bp, struct interface *ife); ++extern char * get_name(char *name, char *p); ++ + extern void ife_print(struct interface *ptr); + + extern int ife_short; +--- net-tools-1.60.orig/include/mii.h ++++ net-tools-1.60/include/mii.h +@@ -6,11 +6,14 @@ + * Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org + */ + +-#ifndef _LINUX_MII_H +-#define _LINUX_MII_H ++#ifndef _NETTOOL_MII_H ++#define _NETTOOLS_MII_H ++ ++#include + + /* network interface ioctl's for MII commands */ + #ifndef SIOCGMIIPHY ++#warning "SIOCGMIIPHY is not defined by your kernel source" + #define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */ + #define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */ + #define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */ +@@ -38,6 +41,7 @@ + #define MII_BMCR_RESTART 0x0200 + #define MII_BMCR_DUPLEX 0x0100 + #define MII_BMCR_COLTEST 0x0080 ++#define MII_BMCR_SPEED1000 0x0040 + + /* Basic Mode Status Register */ + #define MII_BMSR 0x01 +@@ -83,4 +87,17 @@ + #define MII_ANER_PAGE_RX 0x0002 + #define MII_ANER_LP_AN_ABLE 0x0001 + +-#endif /* _LINUX_MII_H */ ++#define MII_CTRL1000 0x09 ++#define MII_BMCR2_1000FULL 0x0200 ++#define MII_BMCR2_1000HALF 0x0100 ++ ++#define MII_STAT1000 0x0a ++#define MII_LPA2_1000LOCALOK 0x2000 ++#define MII_LPA2_1000REMRXOK 0x1000 ++#define MII_LPA2_1000FULL 0x0800 ++#define MII_LPA2_1000HALF 0x0400 ++ ++/* Last register we need for show_basic_mii() */ ++#define MII_BASIC_MAX (MII_STAT1000+1) ++ ++#endif /* _NETTOOLS_MII_H */ +--- net-tools-1.60.orig/man/en_US/rarp.8 ++++ net-tools-1.60/man/en_US/rarp.8 +@@ -61,8 +61,8 @@ + Create a RARP address mapping entry for host + .B hostname + with hardware address set to +-.B hw_addr +-. The format of the hardware address is dependent on the hardware ++.BR hw_addr . ++The format of the hardware address is dependent on the hardware + class, but for most classes one can assume that the usual presentation + can be used. For the Ethernet class, this is 6 bytes in hexadecimal, + separated by colons. +--- net-tools-1.60.orig/man/en_US/arp.8 ++++ net-tools-1.60/man/en_US/arp.8 +@@ -1,56 +1,111 @@ +-.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Programmer's Manual" ++.TH ARP 8 "2007-12-01" "net-tools" "Linux Programmer's Manual" + .SH NAME + arp \- manipulate the system ARP cache + .SH SYNOPSIS + .B arp + .RB [ \-vn ] +-.RB [ "\-H type" ] +-.RB [ "-i if" ] +-.B -a +-.RB [ hostname ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.RB [ \-a ] ++.RI [ hostname ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-i if" ] +-.B "\-d hostname" ++.RB [ \-i ++.IR if ] ++.B \-d ++.I hostname + .RB [ pub ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -s hostname hw_addr ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-s ++.I hostname hw_addr + .RB [ temp ] + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -s hostname hw_addr +-.RB [ "netmask nm" ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-s ++.I hostname hw_addr ++.RB [ netmask ++.IR nm ] + .B pub + .PP + .B arp + .RB [ \-v ] +-.RB [ "\-H type" ] +-.RB [ "\-i if" ] +-.B -Ds hostname ifa +-.RB [ "netmask nm" ] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-Ds ++.I hostname ++.I ifname ++.RB [ netmask ++.IR nm ] + .B pub + .PP + .B arp + .RB [ \-vnD ] +-.RB [ "\-H type" ] +-.RB [ "-i if" ] +-.B -f [filename] ++.RB [ \-H ++.IR type ] ++.RB [ \-i ++.IR if ] ++.B \-f ++.RI [ filename ] + + .SH DESCRIPTION + .B Arp +-manipulates the kernel's ARP cache in various ways. The primary options +-are clearing an address mapping entry and manually setting up one. For +-debugging purposes, the ++manipulates or displays the kernel's IPv4 network neighbour cache. It can add ++entries to the table, delete one or display the current content. ++ ++.B ARP ++stands for Address Resolution Protocol, which is used to find the media ++access control address of a network neighbour for a given IPv4 Address. ++.SH MODES + .B arp +-program also allows a complete dump of the ARP cache. ++with no mode specifier will print the current content of the table. It is ++possible to limit the number of entries printed, by specifying an hardware ++address type, interface name or host address. ++ ++.B arp -d ++.I address ++will delete a ARP table entry. Root or netadmin priveledge is required to do ++this. The entry is found by IP address. If a hostname is given, it will be ++resolved before looking up the entry in the ARP table. ++ ++.B arp -s ++.I address hw_addr ++is used to set up a new table entry. The format of the ++.I hw_addr ++parameter is dependent on the hardware class, but for most classes one can ++assume that the usual presentation can be used. For the Ethernet class, ++this is 6 bytes in hexadecimal, separated by colons. When adding proxy arp ++entries (that is those with the ++.BR pub lish ++flag set a ++.B netmask ++may be specified to proxy arp for entire subnets. This is not good ++practice, but is supported by older kernels because it can be ++useful. If the ++.B temp ++flag is not supplied entries will be permanent stored into the ARP ++cache. To simplyfy setting up entries for one of your own network interfaces, you can use the ++.B "arp \-Ds" ++.I address ifname ++form. In that case the hardware address is taken from the interface with the ++specified name. ++ ++.br + .SH OPTIONS + .TP + .B "\-v, \-\-verbose" +@@ -76,21 +131,13 @@ + and + .RB "NET/ROM (" netrom ")." + .TP +-.B "\-a [hostname], \-\-display [hostname]" +-Shows the entries of the specified hosts. If the +-.B hostname +-parameter is not used, +-.B all +-entries will be displayed. +-.TP +-.B "\-d hostname, \-\-delete hostname" +-Remove any entry for the specified host. This can be used if the +-indicated host is brought down, for example. ++.B \-a ++Use alternate BSD style output format (with no fixed columns). + .TP + .B "\-D, \-\-use-device" +-Use the interface +-.BR ifa "'s" +-hardware address. ++Instead of a hw_addr, the given argument is the name of an interface. ++.B arp ++will use the MAC address of that interface for the table entry. This is usually the best option to set up a proxy ARP entry to yourself. + .TP + .B "\-i If, \-\-device If" + Select an interface. When dumping the ARP cache only entries matching +@@ -106,33 +153,15 @@ + .B NOTE: + This has to be different from the interface to which the IP + datagrams will be routed. +-.TP +-.B "\-s hostname hw_addr, \-\-set hostname" +-Manually create an ARP address mapping entry for host +-.B hostname +-with hardware address set to +-.B hw_addr +-. The format of the hardware address is dependent on the hardware +-class, but for most classes one can assume that the usual presentation +-can be used. For the Ethernet class, this is 6 bytes in hexadecimal, +-separated by colons. When adding proxy arp entries (that is those with +-the +-.BR pub lish +-flag set a +-.B netmask +-may be specified to proxy arp for entire subnets. This is not good +-practice, but is supported by older kernels because it can be +-useful. If the +-.B temp +-flag is not supplied entries will be permanent stored into the ARP +-cache. +-.br + .B NOTE: + As of kernel 2.2.0 it is no longer possible to set an ARP entry for an + entire subnet. Linux instead does automagic proxy arp when a route + exists and it is forwarding. See + .BR arp (7) +-for details. ++for details. Also the ++.B dontpub ++option which is available for delete and set operations cannot be ++used with 2.4 and newer kernels. + .TP + .B "\-f filename, \-\-file filename" + Similar to the +@@ -167,8 +196,18 @@ + and published entries have the + .B P + flag. ++.SH EXSAMPLES ++.B /usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub ++ ++This will answer ARP requests for 10.0.0.2 on eth0 with the MAC address for ++eth1. ++ ++.B /usr/sbin/arp -i eth1 -d 10.0.0.1 ++ ++Delete the ARP table entry for 10.0.0.1 on interface eth1. This will match ++published proxy ARP entries and permanent entries. + .SH FILES +-.I /proc/net/arp, ++.I /proc/net/arp + .br + .I /etc/networks + .br +@@ -178,5 +217,4 @@ + .SH SEE ALSO + rarp(8), route(8), ifconfig(8), netstat(8) + .SH AUTHORS +-Fred N. van Kempen, with a lot of improvements +-from net-tools Maintainer Bernd Eckenfels . ++Fred N. van Kempen , Bernd Eckenfels . +--- net-tools-1.60.orig/man/en_US/ethers.5 ++++ net-tools-1.60/man/en_US/ethers.5 +@@ -1,4 +1,4 @@ +-.TH ETHERS 5 "April 26th, 1996" "" "File formats" ++.TH ETHERS 5 "May 15th, 2005" "" "File formats" + .SH NAME \"{{{roff}}}\"{{{ + ethers \- Ethernet address to IP number database + .\"}}} +@@ -10,8 +10,8 @@ + \fIEthernet-address\fP \fIIP-number\fP + .RE + .sp +-The two items are separated by any number of SPACE and/or TAB char +-acters. A \fB#\fP at the beginning of a line starts a comment ++The two items are separated by any number of SPACE and/or TAB characters. ++A \fB#\fP at the beginning of a line starts a comment + which extends to the end of the line. The \fIEthernet-address\fP is + written as + .IR x : x : x : x : x : x , +--- net-tools-1.60.orig/man/en_US/ifconfig.8 ++++ net-tools-1.60/man/en_US/ifconfig.8 +@@ -1,10 +1,10 @@ +-.TH IFCONFIG 8 "14 August 2000" "net-tools" "Linux Programmer's Manual" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + ifconfig \- configure a network interface + .SH SYNOPSIS +-.B "ifconfig [interface]" ++.B "ifconfig [-v] [-a] [-s] [interface]" + .br +-.B "ifconfig interface [aftype] options | address ..." ++.B "ifconfig [-v] interface [aftype] options | address ..." + .SH DESCRIPTION + .B Ifconfig + is used to configure the kernel-resident network interfaces. It is +@@ -41,11 +41,27 @@ + (AMPR Packet radio). + .SH OPTIONS + .TP ++.B -a ++display all interfaces which are currently available, even if down ++.TP ++.B -s ++display a short list (like netstat -i) ++.TP ++.B -v ++be more verbose for some error conditions ++.TP + .B interface + The name of the interface. This is usually a driver name followed by + a unit number, for example + .B eth0 +-for the first Ethernet interface. ++for the first Ethernet interface. If your kernel supports alias interfaces, ++you can specify them with ++.B eth0:0 ++for the first alias of eth0. You can use them to assign a second address. To ++delete an alias interface use ++.BR "ifconfig eth0:0 down" . ++Note: for every scope (i.e. same net with address/netmask combination) all ++aliases are deleted, if you delete the first (primary). + .TP + .B up + This flag causes the interface to be activated. It is implicitly +@@ -173,11 +189,20 @@ + are shared with all alias addresses on the same device. If you want per-address + statistics you should add explicit accounting + rules for the address using the +-.BR ipchains(8) ++.BR ipchains (8) ++or ++.BR iptables (8) + command. + .LP +-Interrupt problems with Ethernet device drivers fail with EAGAIN. See +-.I http://cesdis.gsfc.nasa.gov/linux/misc/irq-conflict.html ++Since net-tools 1.60-4 ifconfig is printing byte counters and human readable ++counters with IEC 60027-2 units. So 1 KiB are 2^10 byte. Note, the numbers ++are truncated to one decimal (which can by quite a large error if you ++consider 0.1 PiB is 112.589.990.684.262 bytes :) ++.LP ++Interrupt problems with Ethernet device drivers fail with EAGAIN ++.I (SIOCSIIFLAGS: Resource temporarily unavailable) ++it is most likely a interrupt conflict. See ++.I http://www.scyld.com/expert/irq-conflict.html + for more information. + .SH FILES + .I /proc/net/socket +@@ -189,7 +214,9 @@ + While appletalk DDP and IPX addresses will be displayed they cannot be + altered by this command. + .SH SEE ALSO +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). ++.br ++http://physics.nist.gov/cuu/Units/binary.html - Prefixes for binary multiples + .SH AUTHORS + Fred N. van Kempen, + .br +@@ -198,3 +225,5 @@ + Phil Blundell, + .br + Andi Kleen ++.br ++Bernd Eckenfels, +--- net-tools-1.60.orig/man/en_US/netstat.8 ++++ net-tools-1.60/man/en_US/netstat.8 +@@ -8,7 +8,7 @@ + .\" Modified: Tuan Hoang tqhoang@bigfoot.com + .\" + .\" +-.TH NETSTAT 8 "19 December 2000" "net-tools" "Linux Programmer's Manual" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + + .SH NAME + netstat \- Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships +@@ -23,7 +23,7 @@ + .RB [ \-\-listening | \-l ] + .RB [ \-\-all | \-a ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-symbolic | \-N ] + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-timers | \-o ] +@@ -37,31 +37,30 @@ + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-verbose | \-v ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-interfaces | \-i } +-.RI [ iface ] + .RB [ \-\-all | \-a ] + .RB [ \-\-extend | \-e [ \-\-extend | \-e] ] + .RB [ \-\-verbose | \-v ] + .RB [ \-\-program | \-p ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-groups | \-g } + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat + .RB { \-\-masquerade | \-M } + .RB [ \-\-extend | \-e ] + .RB [ \-\-numeric | \-n ] +-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] ++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] + .RB [ \-\-continuous | \-c] + .P + .B netstat +@@ -78,6 +77,8 @@ + .P + .IR address_family_options : + .PP ++.RB [ -4 ] ++.RB [ -6 ] + .RB [ \-\-protocol= { inet , unix , ipx , ax25 , netrom , ddp }[, ...] ] + .RB [ \-\-unix | \-x ] + .RB [ \-\-inet | \-\-ip ] +@@ -98,12 +99,17 @@ + address families, then the active sockets of all configured address + families will be printed. + .SS "\-\-route , \-r" +-Display the kernel routing tables. ++Display the kernel routing tables. See the description in ++.BR route (8) ++for details. ++.B netstat -r ++and ++.B route -e ++produce the same output. + .SS "\-\-groups , \-g" + Display multicast group membership information for IPv4 and IPv6. +-.SS "\-\-interface=\fIiface \fR, \fB\-i" +-Display a table of all network interfaces, or the specified +-.IR iface ) . ++.SS "\-\-interfaces, \-i" ++Display a table of all network interfaces. + .SS "\-\-masquerade , \-M" + Display a list of masqueraded connections. + .SS "\-\-statistics , \-s" +@@ -165,12 +171,11 @@ + .SS "\-a, \-\-all" + Show both listening and non-listening sockets. With the + .B --interfaces +-option, show interfaces that are not marked ++option, show interfaces that are not up + .SS "\-F" + Print routing information from the FIB. (This is the default.) + .SS "\-C" + Print routing information from the route cache. +-.IR UP . + .P + .SH OUTPUT + .P +@@ -221,7 +226,7 @@ + The socket is waiting after close to handle packets still in the network. + .TP + .I +-CLOSED ++CLOSE + The socket is not being used. + .TP + .I +@@ -438,7 +443,7 @@ + .P + .SH AUTHORS + The netstat user interface was written by Fred Baumgarten +- the man page basically ++, the man page basically + by Matt Welsh . It was updated by + Alan Cox but could do with a bit more + work. It was updated again by Tuan Hoang +--- net-tools-1.60.orig/man/en_US/route.8 ++++ net-tools-1.60/man/en_US/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "2 January 2000" "net-tools" "Linux Programmer's Manual" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + route \- show / manipulate the IP routing table + .SH SYNOPSIS +@@ -141,7 +141,7 @@ + set the TCP Maximum Segment Size (MSS) for connections over this route + to M bytes. + The default is the device MTU minus headers, or a lower MTU when path mtu +-discovery occured. This setting can be used to force smaller TCP packets on the ++discovery occurred. This setting can be used to force smaller TCP packets on the + other end when path mtu discovery does not work (usually because of + misconfigured firewalls that block ICMP Fragmentation Needed) + .TP +@@ -179,17 +179,20 @@ + + .SH EXAMPLES + .TP +-.B route add -net 127.0.0.0 +-adds the normal loopback entry, using netmask 255.0.0.0 (class A net, +-determined from the destination address) and associated with the +-"lo" device (assuming this device was prviously set up correctly with ++.B route add -net 127.0.0.0 netmask 255.0.0.0 dev lo ++adds the normal loopback entry, using netmask 255.0.0.0 and associated with the ++"lo" device (assuming this device was previously set up correctly with + .BR ifconfig (8)). + + .TP + .B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 +-adds a route to the network 192.56.76.x via +-"eth0". The Class C netmask modifier is not really necessary here because +-192.* is a Class C IP address. The word "dev" can be omitted here. ++adds a route to the local network 192.56.76.x via ++"eth0". The word "dev" can be omitted here. ++ ++.TP ++.B route del default ++deletes the current default route, which is labeled "default" or 0.0.0.0 ++in the destination field of the current routing table. + + .TP + .B route add default gw mango-gw +@@ -289,7 +292,7 @@ + Interface to which packets for this route will be sent. + .TP + .B MSS +-Default maximum segement size for TCP connections over this route. ++Default maximum segment size for TCP connections over this route. + .TP + .B Window + Default window size for TCP connections over this route. +@@ -323,4 +326,4 @@ + Linus Torvalds for pl15. Alan Cox added the mss and window options for + Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels. + .SH AUTHOR +-Currently maintained by Phil Blundell . ++Currently maintained by Phil Blundell and Bernd Eckenfels . +--- net-tools-1.60.orig/man/en_US/slattach.8 ++++ net-tools-1.60/man/en_US/slattach.8 +@@ -1,4 +1,4 @@ +-.TH SLATTACH 8 "12 Feb 1994" "" "" ++.TH SLATTACH 8 "10 Oct 2006" "" "" + .SH NAME + slattach \- attach a network interface to a serial line + .SH SYNOPSIS +@@ -24,6 +24,7 @@ + .B "[-h]" + Exit when the carrier is lost. This works on both /dev/tty and /dev/cua + devices by directly monitoring the carrier status every 15 seconds. ++.TP + .B "[-v]" + Enable verbose output. Useful in shell scripts. + .TP +@@ -41,7 +42,7 @@ + .TP + .B "[-e]" + Exit right after initializing device, instead of waiting for the +-line to hangup. ++line to hang up. + .TP + .B "[-L]" + Enable 3 wire operation. The terminal is moved into CLOCAL mode, +@@ -50,8 +51,8 @@ + .B "[-p proto]" + Set a specific kind of protocol to use on the line. The default + is set to +-.B "cslip" +-, i.e. compressed SLIP. Other possible values are ++.BR "cslip" , ++i.e. compressed SLIP. Other possible values are + .B "slip" + (normal SLIP), + .B "adaptive" +--- net-tools-1.60.orig/man/en_US/mii-tool.8 ++++ net-tools-1.60/man/en_US/mii-tool.8 +@@ -1,7 +1,7 @@ + .\" Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org + .\" mii-tool.8 1.5 2000/04/25 22:58:19 + .\" +-.TH MII-TOOL 8 "2000/04/25 22:58:19" "net-tools" ++.TH MII-TOOL 8 "2004/03/28 23:30:00" "net-tools" + + .SH NAME + mii-tool \- view, manipulate media-independent interface status +@@ -72,7 +72,24 @@ + commas. Valid media are \fB100baseT4\fR, \fB100baseTx-FD\fR, + \fB100baseTx-HD\fR, \fB10baseT-FD\fR, and \fB10baseT-HD\fR. + ++.SH DIAGNOSTICS ++.TP ++SIOCGMIIPHY on 'eth?' failed: Invalid argument ++If the interface is not running (up), kernel will refuse to report its link state. ++.TP ++SIOCGMIIPHY on 'eth?' failed: Operation not permitted ++Most kernels restrict access to root. ++.TP ++SIOCGMIIPHY on 'eth?' failed: No such device ++This error is shown, if the kernel does not know about the named device. ++.TP ++SIOCGMIIPHY on 'eth?' failed: Operation not supported ++The interface in question does not support MII queries. Most likely, it does not have ++MII transceivers, at all. ++ + .SH AUTHORS + David Hinds \- dhinds@pcmcia.sourceforge.org + .br + Donald Becker \- becker@scyld.com ++.br ++Bernd Eckenfels \- ecki@debian.org +--- net-tools-1.60.orig/man/fr_FR/arp.8 ++++ net-tools-1.60/man/fr_FR/arp.8 +@@ -140,8 +140,8 @@ + Similaire à l'option + .B \-s + , mais cette fois les informations d'adresses sont prises dans le fichier +-.B nom_de_fichier +-. Ceci peut être utilisé si les entrées ARP à configurer sont ++.BR nom_de_fichier . ++Ceci peut être utilisé si les entrées ARP à configurer sont + nombreuses. Le nom du fichier de données est très souvent nommé + .B /etc/ethers + , mais ce n'est pas officiel. +@@ -160,8 +160,8 @@ + .LP + Chaque entrée complète se trouvant dans le cache ARP est marquée de + l'indicateur +-.B C +-. Les entrées permanentes sont marquées de l'indicateur ++.BR C . ++Les entrées permanentes sont marquées de l'indicateur + .B M + et les entrées 'pub' ont l'indicateur + .B P +--- net-tools-1.60.orig/man/fr_FR/hostname.1 ++++ net-tools-1.60/man/fr_FR/hostname.1 +@@ -84,8 +84,8 @@ + .LP + .B hostname + fournit le nom du système tel qu'il est retourné par la fonction +-.BR getdomainname (2) +-. Ceci est connu comme nom de domaine YP/NIS du système. ++.BR getdomainname (2). ++Ceci est connu comme nom de domaine YP/NIS du système. + + + .LP +@@ -145,8 +145,8 @@ + .LP + La façon dont vous pouvez le changer dépend de la configuration + (habituellement dans +-.IR /etc/host.conf ) +-. Si le fichier 'hosts' est analysé avant d'interroger le DNS ou ++.IR /etc/host.conf ). ++Si le fichier 'hosts' est analysé avant d'interroger le DNS ou + NIS) vous pouvez le changer dans le fichier + .IR /etc/hosts . + +--- net-tools-1.60.orig/man/fr_FR/ifconfig.8 ++++ net-tools-1.60/man/fr_FR/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "4 August 1997" "net-tools" "Linux Programmer's Manual" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NOM + ifconfig \- configure une interface réseau + .SH SYNOPSIS +@@ -60,14 +60,14 @@ + .TP + .B "[\-]promisc" + Valide ou invalide le mode +-.B promiscuous +-. S'il est validé, tous les paquets circulant sur le réseau ++.BR promiscuous . ++S'il est validé, tous les paquets circulant sur le réseau + seront reçus sur cette interface. + .TP + .B "[\-]allmulti" + Valide ou invalide le fonctionnement de l'interface en mode +-.B all-multicast +-. S'il est validé, tous les paquets multicast circulant sur le réseau ++.BR all-multicast . ++S'il est validé, tous les paquets multicast circulant sur le réseau + seront reçus sur cette interface. + .TP + .B "metric N" +@@ -196,7 +196,7 @@ + Même si les adresses appletalk DDP et IPX peuvent être affichées, + elles ne peuvent être modifiées avec cette commande. + .SH VOIR AUSSI +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTHORS + Fred N. van Kempen, + .br +--- net-tools-1.60.orig/man/fr_FR/netstat.8 ++++ net-tools-1.60/man/fr_FR/netstat.8 +@@ -8,7 +8,7 @@ + .\" Modified: Tuan Hoang tuan@optimus.mitre.org + .\" + .\" +-.TH NETSTAT 8 "25 Fév 1999" "net-tools" "Linux Programmer's Manual" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + + .SH NAME + netstat \- Affiche les connexions réseau, les tables de routage, les +@@ -106,7 +106,7 @@ + .BR route (8) + pour plus de détails. + +-.SS "\-i, \-\-interface \fIiface\fI" ++.SS "\-i, \-\-interfaces \fIiface\fI" + Si vous utilisez l'option + .BR -i ", " --interfaces + , une table de toutes (ou de l'interface +@@ -118,8 +118,8 @@ + .BR ifconfig (8). + .B "netstat -ei" + affiche une table ou une seule entrée d'interface comme la commande +-.B ifconfig +-. Avec le paramètre ++.BR ifconfig . ++Avec le paramètre + .B -a + , vous pouvez inclure les interfaces qui ne sont pas configurées (c.a.d qui + n'ont pas l'indicateur +@@ -249,7 +249,7 @@ + avant d'entreprendre la fermeture. + .TP + .I +-CLOSED ++CLOSE + La socket n'est pas utilisée. + .TP + .I +@@ -409,8 +409,7 @@ + Depuis la version 2.2 du noyau, netstat -i n'affiche plus les statistiques + des interfaces alias. Pour obtenir les compteurs par interface alias, vous + devez définir des règles spécifiques à l'aide de la commande +-.BR ipchains(8) +-. ++.BR ipchains (8). + + .SH FICHIERS + .ta +--- net-tools-1.60.orig/man/fr_FR/rarp.8 ++++ net-tools-1.60/man/fr_FR/rarp.8 +@@ -55,8 +55,8 @@ + Crée manuellement une correspondance d'adresses RARP pour l'hôte + .B nom_d_hôte + avec l'adresse matérielle +-.B adr_materielle +-. Le format de l'adresse matérielle est dépendant du matériel, ++.BR adr_materielle . ++Le format de l'adresse matérielle est dépendant du matériel, + mais pour la plupart on peut considérer que la présentation classique + peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal, + séparés par des double-points. +--- net-tools-1.60.orig/man/fr_FR/route.8 ++++ net-tools-1.60/man/fr_FR/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "8 Août 1997" "net-tools" "Linux Programmer's Manual" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Linux Programmer's Manual" + .SH NAME + route \- affiche / manipule la table de routage IP + .SH SYNOPSIS +@@ -330,6 +330,6 @@ + la gestion des fenêtres et MSS pour Linux 1.1.22. Le support de irtt + et la fusion avec netstat ont été réalisés par Bernd Eckenfels. + .SH AUTEUR +-Maintenu par Phil Blundell . ++Maintenu par Phil Blundell et Bernd Eckenfels . + .SH TRADUCTION +-Jean-Michel VANSTEENE (vanstee@worldnet.fr) ++Jean-Michel VANSTEENE +--- net-tools-1.60.orig/man/pt_BR/ifconfig.8 ++++ net-tools-1.60/man/pt_BR/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "10 de fevereiro de 1996" "net-tools" "Manual do Programador Linux" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + .SH NOME + ifconfig \- configura uma interface de rede + .SH SINOPSE +@@ -169,7 +169,7 @@ + Os endereços appletalk DDP e IPX serão mostrados, mas não podem ser alterados + com este comando. + .SH VEJA TAMBÉM +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTORES + Fred N. van Kempen, + Alan Cox, +--- net-tools-1.60.orig/man/pt_BR/netstat.8 ++++ net-tools-1.60/man/pt_BR/netstat.8 +@@ -8,7 +8,7 @@ + .\" Traduzido para português por Arnaldo Carvalho de Melo + .\" Revisado por Jorge Luiz Godoy Filho + .\" +-.TH NETSTAT 8 "19 de maio de 1997" "net-tools" "Manual do Programador Linux" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + + .SH NOME + netstat \- Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões +@@ -97,7 +97,7 @@ + .BR route (8) + para maiores detalhes. + +-.SS "\-i, \-\-interface \fIiface\fI" ++.SS "\-i, \-\-interfaces \fIiface\fI" + Se você usar a opção + .BR -i ", " --interfaces + , uma tabela de todas (ou da +--- net-tools-1.60.orig/man/pt_BR/rarp.8 ++++ net-tools-1.60/man/pt_BR/rarp.8 +@@ -50,8 +50,8 @@ + Cria um mapeamento de endereços RARP para a máquina + .B máquina + com endereço de hardware configurado para +-.B endereço_hardware +-. O formato do endereço de hardware depende da classe do hardware, mas ++.B endereço_hardware. ++O formato do endereço de hardware depende da classe do hardware, mas + para a maioria das classes você pode assumir que a apresentação usual pode + ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados + por dois pontos (:). +--- net-tools-1.60.orig/man/pt_BR/route.8 ++++ net-tools-1.60/man/pt_BR/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "27 Jan 1996" "net-tools" "Manual do Programador Linux" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Manual do Programador Linux" + .SH NOME + route \- mostra / manipula a tabela de roteamento IP + .SH SINOPSE +@@ -321,7 +321,7 @@ + Linus Torvalds para a versão pl15. Alan Cox adicionou as opções para + mss e window no kernel 1.1.22. O suporte a irtt (compartilhado com o + netstat) foi feito por Bernd Eckenfels. ++.SH AUTHOR ++Currently maintained by Phil Blundell and Bernd Eckenfels . + .SH TRADUÇÃO + Arnaldo Carvalho de Melo - 13/04/1998 +-.SH BUGS +-nenhum :) +--- net-tools-1.60.orig/man/de_DE/ifconfig.8 ++++ net-tools-1.60/man/de_DE/ifconfig.8 +@@ -1,4 +1,4 @@ +-.TH IFCONFIG 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + .SH NAME + ifconfig \- Konfiguration einer Netzwerkskarte + .SH SYNOPSIS +@@ -193,7 +193,7 @@ + W\(:ahrend AppleTalk DDP und IPX Adressen angezeigt werden, k\(:onnen sie mit + diesem Kommando nicht ge\(:andert werden. + .SH SIEHE AUCH +-route(8), netstat(8), arp(8), rarp(8), ipchains(8) ++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). + .SH AUTOREN + Fred N. van Kempen, + .br +--- net-tools-1.60.orig/man/de_DE/route.8 ++++ net-tools-1.60/man/de_DE/route.8 +@@ -1,4 +1,4 @@ +-.TH ROUTE 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH ROUTE 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + .SH NAME + route \- Anzeigen der IP-Routen-Tabelle + .SH SYNOPSIS +@@ -345,6 +345,6 @@ + irtt beigesteuert und den Code mit dem von Netstat vereinigt. + .SH AUTOREN + .B Route +-wird zur Zeit von Phil Blundel (Philip.Blundell@pobox.com) gewartet. ++wird zur Zeit von Phil Blundel und Bernd Eckenfels gewartet. + .SH \(:Ubersetzung + Ralf B\(:achle +--- net-tools-1.60.orig/man/de_DE/netstat.8 ++++ net-tools-1.60/man/de_DE/netstat.8 +@@ -9,7 +9,7 @@ + .\" Modified: Tuan Hoang tuan@optimus.mitre.org + .\" + .\" +-.TH NETSTAT 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" ++.TH NETSTAT 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer" + + .SH NAME + netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstatistiken, maskierten Verbindungen, Netlink-Nachrichten und Mitgliedschaft in Multicastgruppen +@@ -44,7 +44,6 @@ + .B netstat + .RB [ \-veenpac ] + .RB { \-\-interfaces | \-i } +-.RI [ Schnittstelle ] + + .PP + +@@ -68,6 +67,8 @@ + .SH BESCHREIBUNG + .B Netstat + zeigt Informationen des Linux Netzwerkssystems an. ++.PP ++.B Bitte beachten Sie, dass der Inhalt der deutschen man-page nicht vollst\(:andig ist, im Moment. + + .SS "(no option)" + Ohne Optionen zeigt +@@ -103,18 +104,17 @@ + Wegen Details siehe + .BR route (8). + +-.SS "\-i, \-\-interface \fISchnittstelle\fI" ++.SS "\-i, \-\-interfaces" + Wird die + .BR -i ", " --interfaces +-Option verwendet, so wird eine Tabelle aller (oder der angegebenen +-.IR Schnittstellen ) ++Option verwendet, so wird eine Tabelle aller Schnittstellen + ausgedruckt. Die Ausgabe ist im Format von + .B "ifconfig -e" + und wird in + .BR ifconfig (8) + beschrieben. + .B "netstat -ei" +-druckt eine Tabelle oder einen Eintrag f\(:ur einen einzelnes Interface wie ++druckt eine Tabelle f\(:ur Interfaces wie + .BR ifconfig . + Die + .B -a +@@ -182,7 +182,7 @@ + und + .BR \-\-ddp. + +-.SS "\-c, \-\-continous" ++.SS "\-c, \-\-continuous" + Mit dieser Option wiederholt + .B netstat + im Sekundenabstand die Ausgabe, bis es abgebrochen wird. +--- net-tools-1.60.orig/po/pt_BR.po ++++ net-tools-1.60/po/pt_BR.po +@@ -10,275 +10,287 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.54\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1999-03-01 02:38+0100\n" + "Last-Translator: Arnaldo Carvalho de Melo \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=ISO8859-9\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: preciso do nome da máquina\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Nenhuma entrada ARP para %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: não foi possível obter o endereço de hardware para `%s': %s.\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: erro no tipo do protocolo.\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: o dispositivo `%s' tem endereço de hardware %s `%s'.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: preciso do endereço de hardware\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: endereço inválido de hardware\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: não foi possível abrir o arquivo etherfile %s!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: erro de formato na linha %u do arquivo etherfile %s!\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: não foi possível configurar a linha %u do arquivo etherfile %s!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Endereço\t\tTipoHW\tEndereçoHW\t Flags Mascara\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "" ++msgstr "%s: interface desconhecida.\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(incompleto)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) em " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid " " + msgstr " " + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "mascara %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "em %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Entradas: %d\tIgnorada: %d\tEncontrada: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- nenhuma entrada\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: em %d entradas não foi encontrado.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [] [-i ] [-a] [] <-Display ARP " + "cache\n" + msgstr "" + "Uso:\n" +-" arp [-vn] [] [-i ] [-a] [] <-Mostra cache " +-"ARP\n" ++" arp [-vn] [] [-i ] [-a] [] <-Mostra cache ARP\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i ] -d [pub][nopub] <-Delete ARP " ++" arp [-v] [-i ] -d [pub] <-Delete ARP " + "entry\n" +-msgstr "" +-" arp [-v] [-i ] -d [pub][nopub] <-Remove entrada " +-"ARP\n" ++msgstr " arp [-v] [-i ] -d [pub][nopub] <-Remove entrada ARP\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [] [-i ] -f [] <-Add entry from " ++" arp [-vnD] [] [-i ] -f [] <-Add entry from " + "file\n" + msgstr "" + " arp [-vnD] [] [-i ] -f [] <-Inclui entrada de " + "arquivo\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -s [temp][nopub] <-Add " ++" arp [-v] [] [-i ] -s [temp] <-Add " + "entry\n" +-msgstr "" +-" arp [-v] [] [-i ] -s [temp][nopub] <-Inc. " +-"Entrada\n" +- +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [] [-i ] -s [netmask ] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [] [-i ] -s [netmask ] pub " +-"<-''-\n" ++msgstr " arp [-v] [] [-i ] -s [temp][nopub] <-Inc. Entrada\n" + +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -Ds [netmask ] pub " ++" arp [-v] [] [-i ] -Ds [netmask ] pub " + "<-''-\n" + "\n" +-msgstr "" +-" arp [-v] [] [-i ] -Ds [netmask ] pub " +-"<-''-\n" ++msgstr " arp [-v] [] [-i ] -Ds [netmask ] pub <-''-\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +-msgstr "" +-" -a mostra (todas as) máquinas no estilo alternativo " +-"(BSD)\n" ++msgstr " -a mostra (todas as) máquinas no estilo alternativo (BSD)\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set define uma nova entrada ARP\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete remove a entrada especificada\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose listagem detalhada\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric não resolve nomes\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + " -i, --device especifica a interface de rede (ex: eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read from given device\n" + msgstr " -D, --use-device leia de um dispositivo\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol especifica a família de protocolos\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" +-" -f, --file leia novas entradas de arquivo ou de " +-"/etc/ethers\n" ++" -f, --file leia novas entradas de arquivo ou de /etc/" ++"ethers\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " =Use '-H ' to specify hardware address type. Default: %s\n" +-msgstr "" +-" =Use '-H ' para especificar o tipo de endereço de hw. Default: %s\n" ++msgstr " =Use '-H ' para especificar o tipo de endereço de hw. Default: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Lista dos tipos de hardware possíveis (que suportam ARP):\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: tipo de hardware não suportado!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: família de endereços não suportada!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N ainda não suportada.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: família de endereços desconhecida.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: tipo de hardware desconhecido.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: kernel somente suporta ínet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: tipo de hardware sem suporte a ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Configurando nome do nó como `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: você deve ser root para mudar o nome do nó\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nome muito longo\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Configurando nome da máquina para `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: você deve ser root para mudar o nome da máquina\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Configurando nome do domínio para `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: você deve ser root para mudar o nome do domínio\n" +@@ -303,37 +315,38 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Resultado: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: não foi possível abrir `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" +-msgstr "" +-"Uso: hostname [-v] {máquina|-F arquivo} configura nome da máquina (de " +-"arquivo)\n" ++msgstr "Uso: hostname [-v] {máquina|-F arquivo} configura nome da máquina (de arquivo)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {domínio_nis|-F file} configura nome do domínio NIS\n" + " (a partir de arquivo)\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +-msgstr "" +-"Uso: hostname [-v] {máquina|-F arquivo} configura o nome do nó DECnet (de " +-"arquivo)\n" ++msgstr "Uso: hostname [-v] {máquina|-F arquivo} configura o nome do nó DECnet (de arquivo)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] mostra nome formatado\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -341,7 +354,8 @@ + " hostname [-v] mostra nome da máquina\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -349,7 +363,8 @@ + " hostname -V|--version|-h|--help mostra informações e termina\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -357,35 +372,43 @@ + " dnsdomainname=máquina -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short nome curto da máquina\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias aliases para a máquina\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address endereços da máquina\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long nome longo da máquina (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain nome do domínio DNS\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis nome do domínio NIS/YP\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node nome do nó DECnet\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -393,7 +416,8 @@ + " -F, --file leia o nome da máquina ou domínio NIS do arquivo\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -413,15 +437,16 @@ + msgstr "%s: Você não pode mudar o nome do domínio DNS com este comando\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"A menos que esteja usando bind ou NIS para resolução de nomes você pode " +-"mudar\n" ++"A menos que esteja usando bind ou NIS para resolução de nomes você pode mudar\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "o nome do domínio DNS (que é parte do FQDN) no arquivo /etc/hosts.\n" + +@@ -440,552 +465,453 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Encapsulamento do Link: %s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opções\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "Endereço de HW %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "" ++"%s: erro obtendo informações da interface: %s\n" ++"\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Mídia:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Este sistema não tem suporte a INET.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "" ++"%s: erro obtendo informações da interface: %s\n" ++"\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s end.: %s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] [[]
]\n" ++msgstr "" ++"Uso:\n" ++" ifconfig [-a] [-i] [-v] [[] ]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-a-P:%s " ++msgid " [add
[/]]\n" ++msgstr " [add [/]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del
[/]]\n" ++msgstr " [del [/]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Masc:%s\n" ++msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" ++msgstr " [[-]broadcast []] [[-]pointopoint []]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " endereço inet6: %s/%d" +- +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Escopo:" +- +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++msgid " [netmask
] [dstaddr
] [tunnel
]\n" ++msgstr " [netmask ] [dstaddr ] [tunnel ]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Link" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill ] [keepalive ]\n" ++msgstr " [outfill ] [keepalive ]\n" + + #: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Site" +- +-#: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Compat" +- +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Máquina" +- +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Desconhecido" +- +-#: ../ifconfig.c:236 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " Endereço IPX/Ethernet II:%s\n" ++msgid " [hw
] [metric ] [mtu ]\n" ++msgstr " [hw ] [metric ] [mtu ]\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:213 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " Endereço IPX/Ethernet SNAP:%s\n" ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:214 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " Endereço IPX/Ethernet 802.2:%s\n" ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:245 ++#: ../ifconfig.c:215 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " Endereço IPX/Ethernet 802.3:%s\n" ++msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" ++msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:217 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " Endereço EtherTalk fase 2:%s\n" ++msgid " [txqueuelen ]\n" ++msgstr " [txqueuelen ]\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:220 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " Endereço econet:%s\n" +- +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[NENHUMA FLAG] " +- +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " +- +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST" +- +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " +- +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK" +- +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " +- +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " +- +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:224 ++#, c-format ++msgid " =Hardware Type.\n" ++msgstr " =Tipo de Hardware.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " Lista dos tipos possíveis de hardware:\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " =Address family. Default: %s\n" ++msgstr " =Família de endereços. Default: %s\n" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " Lista de famílias de endereços possíveis:\n" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:302 ++#: ../ifconfig.c:380 + #, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Métrica:%d" ++msgid "Unknown media type.\n" ++msgstr "Tipo desconhecido de mídia.\n" + +-#: ../ifconfig.c:306 ++#: ../ifconfig.c:417 + #, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:320 ++#: ../ifconfig.c:429 + #, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "Pacotes RX:%lu erros:%lu descartados:%lu sobreposições:%lu frame:%lu\n" ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:325 ++#: ../ifconfig.c:441 + #, c-format +-msgid " compressed:%lu\n" +-msgstr " compactados:%lu\n" ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:329 ++#: ../ifconfig.c:465 + #, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" + msgstr "" +-"Pacotes TX:%lu erros:%lu descartados:%lu sobreposições:%lu portadora:%lu\n" + +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:523 + #, c-format +-msgid " collisions:%lu " +-msgstr " colisões:%lu " ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:335 ++#: ../ifconfig.c:652 + #, c-format +-msgid "compressed:%lu " +-msgstr "compactados:%lu " ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:337 ++#: ../ifconfig.c:684 + #, c-format +-msgid "txqueuelen:%d " +-msgstr "txqueuelen:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "IRQ:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Endereço de E/S:0x%x " ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:350 ++#: ../ifconfig.c:693 + #, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Memória:%lx-%lx " ++msgid "%s: invalid %s address.\n" ++msgstr "%s: endereço %s inválido.\n" + +-#: ../ifconfig.c:353 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid "DMA chan:%x " +-msgstr "Canal DMA:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "Este sistema não tem suporte a INET6.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: interface desconhecida: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] [[]
]\n" +-msgstr "" +-"Uso:\n" +-" ifconfig [-a] [-i] [-v] [[] ]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add
[/]]\n" +-msgstr " [add [/]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del
[/]]\n" +-msgstr " [del [/]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" +-msgstr " [[-]broadcast []] [[-]pointopoint []]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask
] [dstaddr
] [tunnel
]\n" +-msgstr " [netmask ] [dstaddr ] [tunnel ]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill ] [keepalive ]\n" +-msgstr " [outfill ] [keepalive ]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw
] [metric ] [mtu ]\n" +-msgstr " [hw ] [metric ] [mtu ]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" +-msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen ]\n" +-msgstr " [txqueuelen ]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " =Hardware Type.\n" +-msgstr " =Tipo de Hardware.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Lista dos tipos possíveis de hardware:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " =Address family. Default: %s\n" +-msgstr " =Família de endereços. Default: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Lista de famílias de endereços possíveis:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Tipo desconhecido de mídia.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: endereço %s inválido.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Este sistema não tem suporte a INET6.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Remoção de endereço não suportada neste sistema.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Este sistema não tem suporte a INET.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Não sei como configurar endereços para a família %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Este sistema não tem suporte a ECONET.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Não sei como configurar endereços para a família %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Não foi possível ler informações para \"-p\": geteuid()=%d mas você deve " +-"ser root.)\n" ++msgstr "(Não foi possível ler informações para \"-p\": geteuid()=%d mas você deve ser root.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" +-"(Nem todos os processos puderam ser identificados, informações sobre " +-"processos\n" ++"(Nem todos os processos puderam ser identificados, informações sobre processos\n" + " de outrem não serão mostrados, você deve ser root para vê-los todos.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "OUVINDO" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN ENVIADO" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC ENVIADO" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABELECIDA" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Ative sockets NET/ROM\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" +-msgstr "" +-"Usuário Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Usuário Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Problemas lendo dados de %s\n" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_ENVIADO" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECEBIDO" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "ESPERA_FIN1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "ESPERA_FIN2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "FECHAR" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "ESPERANDO_FECHAR" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "ÚLTIMO_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "OUÇA" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "FECHANDO" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "atenção, recebi linha igmp6 inválida %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: família de protocolos %d não suportada!\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "atenção, recebi linha igmp inválida %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Ativar sockets AX.25\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "atenção, recebi linha tcp inválida.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "desligado (0.00/%ld/%ld)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "em (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "keepalive (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "timewait (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "desconh.-%d (%2.2f/%ld)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "atenção, recebi linha udp inválida.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "DESCONHECIDA" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "ligado %d (%2.2f/%ld)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "atenção, recebi linha raw inválida.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "atenção, recebi linha unix inválida.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "LIVRE" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "CONECTANDO" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "CONECTADO" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "DESCONECTANDO" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Domain sockets UNIX ativos " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(servidores e estabelecidas)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(sem os servidores)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(sem os servidores)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -993,114 +919,118 @@ + "\n" + "Proto CntRef Flags Tipo Estado I-Node Rota" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Caminho\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM ENVIADO" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECUPERAÇÃO" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Ativar sockets AX.25\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "problemas lendo dados de %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Sockets IPX ativos\n" +-"Proto Recv-Q Send-Q Endereço Local Endereço Remoto " +-"Estado" ++"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Usuário" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "DESC." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - estatísticas não disponíveis -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[SEM FLAGS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tabela de Interfaces do Kernel\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" +-msgstr "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV " +-"Opções\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opções\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "falta informação da interface" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "uso: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [ ...]\n" + msgstr " netstat [-vnNcaeo] []\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + msgstr " netstat [-vnNcaeo] []\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route mostra tabela de roteamento\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces mostra tabela de interfaces\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -o, --timers mostra temporizadores\n" + "\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr " -i, --interfaces mostra tabela de interfaces\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1108,19 +1038,38 @@ + " -M, --masquerade mostra conexões mascaradas\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric não resolve nomes\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -n, --numeric não resolve nomes\n" + +-#: ../netstat.c:1439 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend mostra outras/mais informações\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr " -r, --route mostra tabela de roteamento\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1128,30 +1077,33 @@ + " -c, --continuous listagem contínua\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr " -L, --netlink mostra mensagens netlink do kernel\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr " -a, --all, --listening mostra tudo\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr "" + " -o, --timers mostra temporizadores\n" + "\n" + +-#: ../netstat.c:1445 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +-msgstr "" +-" -F, --fib mostra a Base de Informações de Repasse " +-"(default)\n" ++msgstr " -F, --fib mostra a Base de Informações de Repasse (default)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1159,136 +1111,145 @@ + " -C, --cache mostra cache de roteamento no lugar da FIB\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " =Use '-A ' or '--' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " =Use '-6|-4' or '-A ' or '--'; default: %s\n" + msgstr " =Use '-A ' ou [--' Default: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" +-msgstr "" +-" Lista das famílias de endereços possíveis (que suportam roteamento):\n" ++msgstr " Lista das famílias de endereços possíveis (que suportam roteamento):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Conexões Internet Ativas " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado " +-" " ++"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Usuário " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Temporizador" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "IPv4 Group Memberships\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Interface CntRef Grupo\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Este kernel não tem suporte a RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "Sem entrada RARP para %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: endereço de hardware inválido\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: não foi possível abrir o arquivo %s:%s.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: erro de formato em %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: máquina desconhecida\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: não é possível incluir uma entrada para %s:%u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + "Uso: rarp -a lista entradas no cache\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d delete entry from cache.\n" +-msgstr "" +-" rarp -d máquina remove entrada do cache\n" ++msgstr " rarp -d máquina remove entrada do cache\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [] -s add entry to cache.\n" +-msgstr "" +-" rarp [-t tipo-hw] -s máquina endereço-hw adiciona entrada ao cache\n" ++msgstr " rarp [-t tipo-hw] -s máquina endereço-hw adiciona entrada ao cache\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f adiciona entradas a partir do\n" + " arquivo ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +-msgstr "" +-" rarp -V mostra versão do programa\n" ++msgstr " rarp -V mostra versão do programa\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: mistura ilegal de opções.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: %s: tipo desconhecido de hardware.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [] List kernel routing tables\n" + msgstr "" +-"Uso: route [-nNvee] [-FC] [famílias_de_endereços] Lista as tabelas de " +-"rotea-\n" ++"Uso: route [-nNvee] [-FC] [famílias_de_endereços] Lista as tabelas de rotea-\n" + " mento do kernel\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1298,35 +1259,42 @@ + " mento da família.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [] Detailed usage syntax for " + "specified AF.\n" + msgstr "" +-" route {-h|--help} [família_de_endereços] Sintaxe para a AF " +-"(Família\n" +-" de endereços) " +-"espeficicada.\n" ++" route {-h|--help} [família_de_endereços] Sintaxe para a AF (Família\n" ++" de endereços) espeficicada.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" + "\n" + msgstr "" +-" route {-V|--version} Mostra a versão do " +-"comando\n" ++" route {-V|--version} Mostra a versão do comando\n" + " e sai.\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " =Use '-A ' or '--'; default: %s\n" ++msgstr " =Use '-A ' ou [--' Default: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Uso: ifconfig [-a] [-i] [-v] interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [[família] endereço]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1335,25 +1303,29 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Uso: iptunnel { add | change | del | show } [ NOME ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" +-msgstr "" +-" [ mode { ipip | gre | sit } ] [ remote END ] [ local END ]\n" ++msgstr " [ mode { ipip | gre | sit } ] [ remote END ] [ local END ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev DISP_FÍSICO ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1361,451 +1333,734 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Onde: NAME := STRING\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " END := { ENDEREÇO_IP | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { NÚMERO | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KEY := { QUATRO_NÚMEROS_SEPARADOS_POR_PONTOS | NÚMERO }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "Chaves não são permitidas com ipip e sit.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Um túnel de broadcast precisa de um endereço de origem.\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 e noptmudisc são incompatíveis\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "não foi possível determinar o modo do túnel (ip, gre ou sit)\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip remoto %s local %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Desconhecido" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Descarte pacotes fora de seqüência.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " É necessário checksum nos pacotes recebidos.\n" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Seqüencie pacotes na saída.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Calcule o checksum para pacotes de saída.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "Formato errado de /proc/net/dev. Desculpe.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Não foi possível obter o tipo de [%s]\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pacotes Bytes Erros CsunErrs ForaSeq Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pacotes Bytes Erros DeadLoop SemRota SemBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "Histograma de entrada ICMP:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "Histograma de saída ICMP" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Repassagem está %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Default TTL é %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "%d total de pacotes recebidos" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "%d com cabeçalhos inválidos" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d com endereços inválidos" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d repassados" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d com protocolo desconhecido" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d pacotes entrantes descartados" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d pacotes entrantes despachados" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d requisições enviadas" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d pacotes saintes descartados" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d descartados devido a falta de rota" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d fragmentos descartados após estouro de tempo" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d remontagens requeridas" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d pacotes remontados sem problemas" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d remontagens de pacotes falharam" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d fragmentos recebidos sem problemas" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "%d fragmentos falharam" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d fragmentos criados" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "%d mensagens ICMP recebidas" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "%d mensagens ICMP entrantes falharam." + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "destino não alcançável: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "estouro de tempo em trânsito: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "parâmetros errados: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "source quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "redireções: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "requisições de eco: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "respostas de eco: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "requisições de timestamp: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "respostas a timestamps: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "requisições de mascara de endereço: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "resposta a mascara de endereço" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "respostas a máscara de endereço: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d mensagens ICMP enviadas" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "%d mensagens ICMP falharam" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "tempo excedido: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "source quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "redireções: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "requisições de eco: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "requisições de timestamp: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "respostas a timestamp: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "requisições de máscara de endereço: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "respostas a máscara de endereço: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "Algorítmo RTO é %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "%d tentativas de conexão falharam" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "%d opens passivos" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "%d tentativas de conexão falharam" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "%d resets de conexão recebidas" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "%d conexões estabelecidas" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "%d segmentos recebidos" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "%d segmentos enviados" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "%d segmentos retransmitidos" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "%d segmentos ruins recebidos." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "%d resets enviados" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "%d pacotes recebidos" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "%d pacotes para portas desconhecidas recebidos." + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "%d erros de recepção de pacotes" + +-#: ../statistics.c:137 +-#, c-format +-msgid "%d packets sent" ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" + msgstr "%d pacotes enviados" + +-#: ../statistics.c:142 ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d pacotes enviados" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d resets recebidos para sockets embriônicos SYN_RECV" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d pacotes retirados da fila de recepção devido a sobreposição de buffers de sockets" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d pacotes retirados da fila de fora de ordem (out-of-order)" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d pacotes descartados da fila de fora de ordem devido a sobreposição de buffers de sockets" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d pacotes ICMP descartados porque estavam fora da janela" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d pacotes ICMP descartadas porque o socket estava bloqueado" ++ ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 + #, c-format +-msgid "%d SYN cookies sent" ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" + msgstr "%d pacotes enviados" + +-#: ../statistics.c:143 ++#: ../statistics.c:170 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d pacotes recebidos" ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:172 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d pacotes recebidos" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:173 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d resets recebidos para sockets embriônicos SYN_RECV" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:175 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "%u SYNs to LISTEN sockets ignored" + msgstr "" +-"%d pacotes retirados da fila de recepção devido a sobreposição de buffers de " +-"sockets" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" ++ ++#: ../statistics.c:178 + #, c-format +-msgid "%d packets pruned from out-of-order queue" ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" + msgstr "%d pacotes retirados da fila de fora de ordem (out-of-order)" + +-#: ../statistics.c:152 ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:184 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u packets header predicted and directly queued to user" + msgstr "" +-"%d pacotes descartados da fila de fora de ordem devido a sobreposição de " +-"buffers de sockets" + +-#: ../statistics.c:154 ++#: ../statistics.c:186 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d pacotes ICMP descartados porque estavam fora da janela" ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%d pacotes para portas desconhecidas recebidos." ++ ++#: ../statistics.c:189 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d pacotes ICMP descartadas porque o socket estava bloqueado" ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d segmentos ruins recebidos." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d resets enviados" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d segmentos retransmitidos" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d segmentos retransmitidos" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d remontagens de pacotes falharam" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d pacotes retirados da fila de recepção devido a sobreposição de buffers de sockets" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d pacotes recebidos" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d total de pacotes recebidos" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d resets de conexão recebidas" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d resets de conexão recebidas" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "habilitado" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "desabilitado" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "título %s desconhecido\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "erro lendo /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "não foi possível abrir /proc/net/snmp" + +@@ -1819,89 +2074,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Não foi possível mudar a disciplina da linha para `%s'.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "Não Especificado" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "UNIX Domain" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AX.25 AMPR" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "NET/ROM AMPR" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "Novell IPX" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Por favor não especifique mais que uma família de endereços.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Excesso no número de famílias de endereços.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Família de endereços `%s' desconhecida.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[Nenhum configurado]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): endereço arcnet inválido!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): trailing : ignorado!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): lixo no trailing!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Endereço Ash mal formado" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[Nenhum configurado]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Callsign inválido" +@@ -1911,22 +2172,21 @@ + msgstr "Callsign muito longo" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "O AX.25 não foi configurado neste sistema.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Tabela de roteamento AX.25 do kernel\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Destino Iface Uso\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Tabela de roteamento para `ddp' ainda não suportada.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1942,253 +2202,268 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): lixo no trailing!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%S): endereço fddi inválido!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): trailing : ignorado!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): lixo no trailing!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Família de endereços `%s' não suportada.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Nenhum roteamento para a família `%s'\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_fddi(%S): endereço fddi inválido!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): trailing : ignorado!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_fddi(%s): lixo no trailing!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Loopback Local" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "SLIP" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "SLIP VJ" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "SLIP 6 bits" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "SLIP VJ 6 bits" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "SLIP Adaptativo" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "FDDI - Fibra Ótica" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "Túnel IPIP" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Protocolo Ponto-a-Ponto" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "FRAD - Dispositivo de Acesso a Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6 sobre IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "16/4 Mbps Token Ring" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "16/4 Mbps Token Ring (Novo)" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: família de endereços %d não suportada!\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "DESCONHECIDA" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Tabela de Roteamento IPv6 do Kernel\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" +-msgstr "" +-"Destino Próximo \"Hop\" " +-" Opções Métrica Ref Uso Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "Destino Próximo \"Hop\" Opções Métrica Ref Uso Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache de Vizinhos IPv6 do Kernel\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +-msgstr "" +-"Vizinho Endereço HW Iface Opções " +-"Estado Ref\n" ++msgstr "Vizinho Endereço HW Iface Opções Estado Ref\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" + msgstr "" +-"Vizinho Endereço HW Iface Opções " +-"Estado Ref\n" ++"Vizinho Endereço HW Iface Opções Estado Ref\n" + " Parado(seg) Remover(seg)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Uso: inet6_route [-vF] del Destino\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Destino [gw Gw] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NÃO suportado\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Limpeza da tabela de roteamento `inet6' não é suportada\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Tabela de Roteamento IP do Kernel\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções Métrica Ref Uso " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções MSS Janela irtt " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções MSS Janela irtt Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +-msgstr "" +-"Destino Roteador MáscaraGen Opções Métrica Ref Uso " +-"Iface MSS Janela irtt\n" ++msgstr "Destino Roteador MáscaraGen Opções Métrica Ref Uso Iface MSS Janela irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Tabela de Roteamento IP do Kernel\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções Métrica Ref Uso " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destino Roteador MáscaraGen. Opções MSS Janela irtt " +-"Iface\n" ++msgstr "Destino Roteador MáscaraGen. Opções MSS Janela irtt Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +-msgstr "" +-"Destino Roteador Origem Opções Métrica Ref Uso " +-"Iface MSS Janela irtt HH Arp\n" ++msgstr "Destino Roteador Origem Opções Métrica Ref Uso Iface MSS Janela irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +-msgstr "" +-"Destino Roteador Origem Opções Métrica Ref Uso " +-"Iface MSS Janela irtt HH Arp\n" ++msgstr "Destino Roteador Origem Opções Métrica Ref Uso Iface MSS Janela irtt HH Arp\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2196,31 +2471,36 @@ + "Uso: inet_route [-vF] del {-host|-net} Destino[/prefixo] [gw Gw] [metric M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Destino[/prefixo] [gw Gw] [metric " + "M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Destino[/prefixo] [metric M] " + "reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NÃO suportado\n" + +@@ -2230,14 +2510,17 @@ + msgstr "route: %s: não é possível usar uma REDE como roteador!\n" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: MSS inválido.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: janela inválida.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: rtt inicial inválido.\n" + +@@ -2252,75 +2535,92 @@ + msgstr "route: netmask %s inválida\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: a netmask não casa com o endereço de rede\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Não é suportado limpar a tabela de roteamento `inet'\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Não é suportado modificar o cache de roteamento `inet'\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "O AX.25 não foi configurado neste sistema.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Tabela de roteamento IPX do kernel\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Destino Rede Roteadora Nó Roteador\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "NET/ROM: isto precisa ser escrito\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "Entradas de IP mascarado\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot expira origem destino portas\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot expira initseq delta prevd origem destino " +-" portas\n" ++"prot expira initseq delta prevd origem " ++"destino portas\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM não configurado neste sistema.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Tabela de roteamento NET/ROM do kernel\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Destino Mnemônico Qualidade Vizinho Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "uso de netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: isto precisa ser escrito\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Você não pode iniciar o PPP com este programa.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Desculpe, use o pppd!\n" + +@@ -2329,51 +2629,314 @@ + msgstr "Endereço do nó deve ter dez dígitos" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE não configurada neste sistema.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Tabela de roteamento ROSE do kernel\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): endereço token ring inválido!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): trailing : ignorado!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): lixo no trailing!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "atenção: nenhum socket inet disponível: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "Atenção: não foi possível abrir %s (%s). Saída limitada.\n" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "%s: dispositivo não encontrado" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" ++msgstr "%s: erro obtendo informações da interface: %s\n" ++ ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - estatísticas não disponíveis -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[SEM FLAGS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Encapsulamento do Link: %s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "Endereço de HW %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Mídia:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s end.: %s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-a-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Masc:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " endereço inet6: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Escopo:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Link" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Site" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Máquina" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Desconhecido" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " Endereço IPX/Ethernet II:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " Endereço IPX/Ethernet SNAP:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " Endereço IPX/Ethernet 802.2:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " Endereço IPX/Ethernet 802.3:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " Endereço EtherTalk fase 2:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " Endereço econet:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[NENHUMA FLAG] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST" ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK" ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Métrica:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Pacotes RX:%lu erros:%lu descartados:%lu sobreposições:%lu frame:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " compactados:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Pacotes TX:%lu erros:%lu descartados:%lu sobreposições:%lu portadora:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " colisões:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "compactados:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "txqueuelen:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "" +-"%s: erro obtendo informações da interface: %s\n" +-"\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "IRQ:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Endereço de E/S:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Memória:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Canal DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Nenhuma família de endereços que possa ser usada foi encontrada.\n" + +@@ -2397,29 +2960,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argumento errado: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Uso: ipmaddr [ add | del ] ENDMULTI dev STRING\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "família %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " usuários %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Não foi possível criar o socket" + +@@ -2434,6 +3000,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: não foi possível escrever o arquivo PID\n" + +@@ -2452,39 +3019,69 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: nome muito longo\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: não foi possível obter o estado corrente!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" +-msgstr "" +-"slattach: tty_open: não foi possível obter a disciplina de linha corrente!\n" ++msgstr "slattach: tty_open: não foi possível obter a disciplina de linha corrente!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: não foi possível configurar o modo RAW!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: não foi possível configurar %s bps!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: não foi possível configurar modo 8N1!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "%s inicializado" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " em %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr "%s: interface desconhecida.\n" ++ ++#~ msgid "" ++#~ " arp [-v] [] [-i ] -s [netmask ] pub " ++#~ "<-''-\n" ++#~ msgstr " arp [-v] [] [-i ] -s [netmask ] pub <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: interface desconhecida: %s\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "resposta a mascara de endereço" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "título %s desconhecido\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Tabela de roteamento para `ddp' ainda não suportada.\n" +--- net-tools-1.60.orig/po/Makefile ++++ net-tools-1.60/po/Makefile +@@ -3,13 +3,13 @@ + INSTALL_DATA= ${INSTALL} -m 644 + INSTALLNLSDIR=${BASEDIR}/usr/share/locale + +-TUPDATE = tupdate ++TUPDATE = msgmerge + + NLSPACKAGE = net-tools + + -include ../config.make + ifeq ($(I18N),1) +-CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo ++CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo ja.mo + else + CATALOGS = + endif +@@ -49,7 +49,7 @@ + lang=`echo $$cat | sed 's/.mo//'`; \ + mv $$lang.po $$lang.old.po; \ + echo "$$lang:"; \ +- if $(TUPDATE) $(NLSPACKAGE).pot $$lang.old.po > $$lang.po; then \ ++ if $(TUPDATE) $$lang.old.po $(NLSPACKAGE).pot > $$lang.po; then \ + rm -f $$lang.old.po; \ + else \ + echo "tupdate for $$cat failed!"; \ +--- net-tools-1.60.orig/po/et_EE.po ++++ net-tools-1.60/po/et_EE.po +@@ -6,7 +6,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.58\n" +-"POT-Creation-Date: 2001-02-15 21:28+0200\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 2001-02-15 18:00+0300\n" + "Last-Translator: Meelis Roos \n" + "Language-Team: Estonian \n" +@@ -14,53 +15,58 @@ + "Content-Type: text/plain; charset=iso-8859-15\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: puudub hosti nimi\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "%s jaoks pole ARP kirjet\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: ei saa riistvaralist aadressi `%s' jaoks: %s\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: vale protokolli tüüp\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: seadmel `%s' on riistvaraline aadress %s `%s'\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: puudub riistvaraline aadress\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: vigane riistvaraline aadress\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: ei saa avada faili %s\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: formaadiviga real %u failis %s\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: ei saa kehtestada ARP kirjet real %u failis %s\n" + +-#: ../arp.c:437 ++#: ../arp.c:448 ++#, c-format + msgid "" + "Address HWtype HWaddress Flags Mask " + "Iface\n" +@@ -68,45 +74,52 @@ + "Aadress HWtüüp HWaadress Lipud Mask " + "Liides\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "" ++msgstr " liides %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(mittetäielik)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) aadressil " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid " " + msgstr "" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "võrgumask %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "liides %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "ARP kirjeid kokku: %s\tignoreerisin: %d\tleidsin: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- pole kirjet\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: ei leidnud %d kirje hulgast sobivat\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [] [-i ] [-a] [] <-Display ARP " +@@ -116,47 +129,45 @@ + "ARP cache vaatamine:\n" + " arp [-vn] [] [-i ] [-a] []\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i ] -d [pub][nopub] <-Delete ARP " ++" arp [-v] [-i ] -d [pub] <-Delete ARP " + "entry\n" + msgstr "" + "ARP kirje kustutamine:\n" + " arp [-v] [-i ] -d [pub] [nopub]\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [] [-i ] -f [] <-Add entry from " ++" arp [-vnD] [] [-i ] -f [] <-Add entry from " + "file\n" + msgstr "" + "ARP kirjete lisamine failist:\n" + " arp [-vnD] [] [-i ] -f []\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -s [temp][nopub] <-Add " ++" arp [-v] [] [-i ] -s [temp] <-Add " + "entry\n" + msgstr "" + "ARP kirje lisamine:\n" + " arp [-v] [] [-i ] -s [temp] [nopub]\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [] [-i ] -s [netmask ] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [] [-i ] -s [netmask ] pub\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -Ds [netmask ] pub " ++" arp [-v] [] [-i ] -Ds [netmask ] pub " + "<-''-\n" + "\n" + msgstr "" + " arp [-v] [] [-i ] -Ds [netmask ] pub\n" + "\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +@@ -164,122 +175,132 @@ + " -a näita kõiki hoste alternatiivsel (BSD) " + "kujul\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set uue ARP kirje seadmine\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete määratud kirje kustutamine\n" + +-#: ../arp.c:623 ../netstat.c:1485 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose jutukas väljund\n" + +-#: ../arp.c:624 ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format + msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric mitte lahendada nimesid\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + " -i, --device võrguliidese täpsustamine (näiteks eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read from given device\n" + msgstr " -D, --use-device lugeda vastavalt liideselt\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol protokollipere määramine\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" +-" -f, --file lugeda kirjed antud failist või " +-"/etc/ethers'st\n" ++" -f, --file lugeda kirjed antud failist või /etc/" ++"ethers'st\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " =Use '-H ' to specify hardware address type. Default: %s\n" + msgstr "" + " =kasutage '-H ' riistvaralise aadressi määramiseks.\n" + " Vaikimisi: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Võimalike ARP-i toetavate riistvara tüüpide nimekiri:\n" + +-#: ../arp.c:664 ../arp.c:749 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "arp: riistvara tüüpi %s ei toetata\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "arp: aadressiperekonda %s ei toetata\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N toetust pole veel\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: tundmatu aadressiperekond %s\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: tundmatu riistvara tüüp %s\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: tuumas on ainult 'inet' aadressiperekonna toetus\n" + +-#: ../arp.c:754 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: riistvara tüübil %s pole ARP toetust\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Sean sõlme nimeks `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: ainult root saab sõlme nime muuta\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nimi on liiga pikk\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Sean hosti nimeks `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: ainult root saab hosti nime muuta\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Sean domeeni nimeks `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: ainult root saab domeeni nime muuta\n" +@@ -304,25 +325,28 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Tulemus: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: ei saa avada faili `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Kasutamine:\n" + " hostname [-v] {hosti nimi|-F fail} hosti nime seadmine (ka " + "failist)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {nisdomeen|-F fail} NIS domeeni nime seadmine\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +@@ -330,18 +354,21 @@ + " nodename [-v] {nodename|-F fail} DECneti võrgusõlme nime " + "seadmine\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr "" + " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] nime näitamine antud formaadis\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" + msgstr " hostname [-v] hosti nime näitamine\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -350,7 +377,8 @@ + " hostname -h|--help seesama abiinfo\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -358,36 +386,44 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short lühike hosti nimi\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias alias-nimed\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address hosti IP aadressid\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr "" + " -f, --fqdn, --long pikk hosti nimi (FQDN - täielik süsteeminimi)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain DNS domeeni nimi\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis NIS/YP domeeni nimi\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node DECneti võrgusõlme nimi\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -395,7 +431,8 @@ + " -F, --file lugeda hosti või NIS domeeni nimi failist\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -415,6 +452,7 @@ + msgstr "%s: selle käsuga ei saa muuta DNS domeeni nime\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" +@@ -423,6 +461,7 @@ + "Kui Te EI kasuta bind'i ega NIS'i nimede lahendamiseks, saate DNS domeeni\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "(mis on täieliku nime osa) nime muuta failist /etc/hosts.\n" + +@@ -441,76 +480,97 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:110 ++#: ../ifconfig.c:107 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" +-"Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Lip\n" + +-#: ../ifconfig.c:132 ../ifconfig.c:164 +-#, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "ifconfig: tundmatu liides %s: %s\n" ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: viga liidese info küsimisel: %s\n" + +-#: ../ifconfig.c:156 ../ifconfig.c:740 ../ifconfig.c:831 ../ifconfig.c:937 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format + msgid "No support for INET on this system.\n" + msgstr "Antud süsteem ei toeta INET aadressiperekonda\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: viga liidese info küsimisel: %s\n" ++ ++#: ../ifconfig.c:202 ++#, fuzzy, c-format + msgid "" + "Usage:\n" +-" ifconfig [-a] [-i] [-v] [-s] [[]
]\n" ++" ifconfig [-a] [-v] [-s] [[]
]\n" + msgstr "" + "Kasutamine:\n" + " ifconfig [-a] [-i] [-v] [-s] [[] ]\n" + +-#: ../ifconfig.c:181 ++#: ../ifconfig.c:204 ++#, c-format + msgid " [add
[/]]\n" + msgstr " [add [/]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 ++#, c-format + msgid " [del
[/]]\n" + msgstr " [del [/]]\n" + +-#: ../ifconfig.c:183 ++#: ../ifconfig.c:206 ++#, c-format + msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" + msgstr " [[-]broadcast []] [[-]pointopoint []]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:207 ++#, c-format + msgid " [netmask
] [dstaddr
] [tunnel
]\n" + msgstr " [netmask ] [dstaddr ] [tunnel ]\n" + +-#: ../ifconfig.c:187 ++#: ../ifconfig.c:210 ++#, c-format + msgid " [outfill ] [keepalive ]\n" + msgstr " [outfill ] [keepalive ]\n" + +-#: ../ifconfig.c:189 ++#: ../ifconfig.c:212 ++#, c-format + msgid " [hw
] [metric ] [mtu ]\n" + msgstr " [hw ] [metric ] [mtu ]\n" + +-#: ../ifconfig.c:190 ++#: ../ifconfig.c:213 ++#, c-format + msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" + msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:191 ++#: ../ifconfig.c:214 ++#, c-format + msgid " [multicast] [[-]promisc]\n" + msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:192 ++#: ../ifconfig.c:215 ++#, c-format + msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" + msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" + +-#: ../ifconfig.c:194 ++#: ../ifconfig.c:217 ++#, c-format + msgid " [txqueuelen ]\n" + msgstr " [txqueuelen ]\n" + +-#: ../ifconfig.c:197 ++#: ../ifconfig.c:220 ++#, c-format + msgid " [[-]dynamic]\n" + msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:199 ++#: ../ifconfig.c:222 ++#, c-format + msgid "" + " [up|down] ...\n" + "\n" +@@ -518,73 +578,134 @@ + " [up|down] ...\n" + "\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:224 ++#, c-format + msgid " =Hardware Type.\n" + msgstr " =riistvara tüüp\n" + +-#: ../ifconfig.c:202 ++#: ../ifconfig.c:225 ++#, c-format + msgid " List of possible hardware types:\n" + msgstr " Võimalike riistvara tüüpide nimekiri:\n" + + #. 1 = ARPable +-#: ../ifconfig.c:204 ++#: ../ifconfig.c:227 + #, c-format + msgid " =Address family. Default: %s\n" + msgstr " =aadressiperekond, vaikimisi %s\n" + +-#: ../ifconfig.c:205 ++#: ../ifconfig.c:228 ++#, c-format + msgid " List of possible address families:\n" + msgstr " Võimalike aadressiperekondade nimekiri:\n" + +-#: ../ifconfig.c:361 ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" ++ ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" ++ ++#: ../ifconfig.c:380 ++#, c-format + msgid "Unknown media type.\n" + msgstr "Tundmatu meedia tüüp\n" + +-#: ../ifconfig.c:653 ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:684 + #, c-format + msgid "hw address type `%s' has no handler to set address. failed.\n" + msgstr "" + "riistvara aadressi tüübil `%s' pole käsitlejat aadressi seadmiseks - ebaõnn\n" + +-#: ../ifconfig.c:662 ++#: ../ifconfig.c:693 + #, c-format + msgid "%s: invalid %s address.\n" + msgstr "%s: vigane %s aadress\n" + +-#: ../ifconfig.c:706 ../ifconfig.c:796 ../ifconfig.c:882 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format + msgid "No support for INET6 on this system.\n" + msgstr "Antud süsteem ei toeta INET6 aadressiperekonda\n" + +-#: ../ifconfig.c:749 ../ifconfig.c:840 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format + msgid "Interface %s not initialized\n" + msgstr "Liides %s pole initsialiseeritud\n" + +-#: ../ifconfig.c:761 ../ifconfig.c:851 ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format + msgid "Bad address.\n" + msgstr "Vigane aadress\n" + +-#: ../ifconfig.c:854 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Antud süsteem ei toeta aadresside kustutamist\n" + +-#: ../ifconfig.c:947 ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n" ++ ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Antud süsteem ei toeta ECONET aadressiperekonda\n" + +-#: ../ifconfig.c:955 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n" + +-#: ../netstat.c:429 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" + msgstr "" + "(\"-p\" jaoks ei saanud infot lugeda: geteuid()=%d, aga vaja oleks root'u)\n" + +-#: ../netstat.c:433 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -592,210 +713,223 @@ + "(Mõnesid protsesse ei saanud identifitseerida, teiste kasutajate\n" + "info lugemiseks peab olema root)\n" + +-#: ../netstat.c:440 ../netstat.c:1171 ../netstat.c:1248 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "LISTENING" + +-#: ../netstat.c:441 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN SENT" + +-#: ../netstat.c:442 ../netstat.c:1250 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC SENT" + +-#: ../netstat.c:443 ../netstat.c:510 ../netstat.c:889 ../netstat.c:1251 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABLISHED" + +-#: ../netstat.c:465 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktiivsed NET/ROM soklid\n" + +-#: ../netstat.c:466 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + "Kasutaja Sihtpunkt Lähtepunkt Liides Olek Vr/Vs SaatJrk " + "VvJrk\n" + +-#: ../netstat.c:476 ../netstat.c:1290 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Probleem andmete lugemisel failist %s\n" + +-#: ../netstat.c:511 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:512 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:513 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:514 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:515 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:516 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:517 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:518 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:519 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:520 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:587 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "Hoiatus - sain imeliku igmp6 rea (nr. %d)\n" + +-#: ../netstat.c:592 ../netstat.c:630 ../netstat.c:751 ../netstat.c:883 +-#: ../netstat.c:1014 ../netstat.c:1019 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: aadressiperekonda %d ei toetata\n" + +-#: ../netstat.c:605 ../netstat.c:610 ../netstat.c:618 ../netstat.c:625 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "Hoiatus - sain imeliku igmp rea (nr. %d)\n" + +-#: ../netstat.c:668 ++#: ../netstat.c:677 ++#, c-format + msgid "Active X.25 sockets\n" + msgstr "Aktiivsed X.25 soklid\n" + + #. IMHO, Vr/Vs is not very usefull --SF +-#: ../netstat.c:670 ++#: ../netstat.c:679 ++#, c-format + msgid "" +-"Dest Source Device LCI State Vr/Vs Send-Q " +-"Recv-Q\n" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + "Sihtpunkt Lähtepunkt Liides LCI Olek Vr/Vs SaatJrk VvJrk\n" + +-#: ../netstat.c:747 ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "Hoiatus - sain imeliku tcp rea\n" + +-#: ../netstat.c:788 ../netstat.c:938 ../netstat.c:1057 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "eikäi ((0.00/%ld/%d)" + +-#: ../netstat.c:792 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "käib (%2.2f/%ld/%d)" + +-#: ../netstat.c:797 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "keepalive (%2.2f/%ld/%d)" + +-#: ../netstat.c:802 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "timewait (%2.2f/%ld/%d)" + +-#: ../netstat.c:807 ../netstat.c:947 ../netstat.c:1067 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "eitea-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:879 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "Hoiatus - sain imeliku udp rea\n" + +-#: ../netstat.c:897 ../netstat.c:1157 ../netstat.c:1190 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "TUNDMATU" + +-#: ../netstat.c:943 ../netstat.c:1062 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "käib-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "Hoiatus - sain imeliku raw rea\n" + +-#: ../netstat.c:1110 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "Hoiatus - sain imeliku unix rea\n" + +-#: ../netstat.c:1137 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1141 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1149 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1153 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1162 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "VABA" + +-#: ../netstat.c:1178 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "ÜHENDUMAS" + +-#: ../netstat.c:1182 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "ÜHENDATUD" + +-#: ../netstat.c:1186 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "LAHTIÜHENDUMAS" + +-#: ../netstat.c:1217 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Aktiivsed UNIX domeeni soklid " + +-#: ../netstat.c:1219 ../netstat.c:1729 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(serverid ja ühendatud)" + +-#: ../netstat.c:1222 ../netstat.c:1732 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(ainult serverid)" + +-#: ../netstat.c:1224 ../netstat.c:1734 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(ilma serveriteta)" + +-#: ../netstat.c:1227 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -803,32 +937,36 @@ + "\n" + "Proto Mitu Lipud Tüüp Olek I-kirje " + +-#: ../netstat.c:1229 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr "Tee\n" + +-#: ../netstat.c:1249 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM SENT" + +-#: ../netstat.c:1252 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECOVERY" + +-#: ../netstat.c:1266 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktiivsed AX.25 soklid\n" + +-#: ../netstat.c:1267 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Sihtpunkt Lähtepunkt Liides Olek Vr/Vs SaatJrk VvJrk\n" + +-#: ../netstat.c:1310 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "Probleem andmete lugemisel failist %s\n" + +-#: ../netstat.c:1361 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " +@@ -838,47 +976,53 @@ + "Proto VvJrk SaatJrk Kohalik aadress Väline aadress " + "Olek " + +-#: ../netstat.c:1363 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Kasutaja" + +-#: ../netstat.c:1397 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1405 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNK." + +-#: ../netstat.c:1443 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tuuma liideste tabel\n" + +-#: ../netstat.c:1447 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" +-"Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Lip\n" + +-#: ../netstat.c:1451 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "Puudulik informatsioon liideste kohta" + +-#: ../netstat.c:1474 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "Kasutamine: netstat [-veenNcCF] [] -r\n" + " netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1475 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [ ...]\n" + msgstr " netstat [-vnNcaeol] [ ...]\n" + +-#: ../netstat.c:1476 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -886,25 +1030,30 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1478 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route ruutingutabeli näitamine\n" + +-#: ../netstat.c:1479 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces liideste tabeli näitamine\n" + +-#: ../netstat.c:1480 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr " -g, --groups multiedastuse gruppide näitamine\n" + +-#: ../netstat.c:1481 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics võrgu statistika näitamine (SNMP stiilis)\n" + +-#: ../netstat.c:1483 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -912,36 +1061,39 @@ + " -M, --masquerade maskeeritavate ühenduste näitamine\n" + "\n" + +-#: ../netstat.c:1486 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" +-msgstr " -n, --numeric mitte lahendada numbreid nimedeks\n" +- +-#: ../netstat.c:1487 +-msgid " --numeric-hosts dont resolve host names\n" ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" + msgstr " --numeric-hosts mitte lahendada hostinimesid\n" + +-#: ../netstat.c:1488 +-msgid " --numeric-ports dont resolve port names\n" ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" + msgstr " --numeric-ports mitte lahendada pordinimesid\n" + +-#: ../netstat.c:1489 +-msgid " --numeric-users dont resolve user names\n" ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" + msgstr " --numeric-users mitte lahendada kasutajanimesid\n" + +-#: ../netstat.c:1490 ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic lahendada riistvara aadressid\n" + +-#: ../netstat.c:1491 ../route.c:87 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend muu info/lisainfo näitamine\n" + +-#: ../netstat.c:1492 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs soklite kohta PID/protsessi nime näitamine\n" + +-#: ../netstat.c:1493 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -949,22 +1101,26 @@ + " -c, --continuous pidevalt uuenev nimekiri\n" + "\n" + +-#: ../netstat.c:1494 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr " -l, --listening kuulavate serversoklite näitamine\n" + +-#: ../netstat.c:1495 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening kõigi soklite näitamine (vaikimisi " + "ühendatud)\n" + +-#: ../netstat.c:1496 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers taimerite näitamine\n" + +-#: ../netstat.c:1497 ../route.c:88 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -972,7 +1128,8 @@ + " -F, --fib üldiste ruutingutabelite näitamine " + "(vaikimisi)\n" + +-#: ../netstat.c:1498 ../route.c:89 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -981,108 +1138,121 @@ + "näitamine\n" + "\n" + +-#: ../netstat.c:1500 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1501 ../route.c:91 +-#, c-format +-msgid " =Use '-A ' or '--' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " =Use '-6|-4' or '-A ' or '--'; default: %s\n" + msgstr " =kasutage '-A ' või '--' vaikimisi: %s\n" + +-#: ../netstat.c:1502 ../route.c:92 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Võimalike ruutingu toetavate aadressiperekondade nimekiri:\n" + +-#: ../netstat.c:1726 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktiivsed internetiühendused " + +-#: ../netstat.c:1736 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto VvJrk SaatJrk Kohalik aadress Väline aadress Olek " +-" " ++"Proto VvJrk SaatJrk Kohalik aadress Väline aadress " ++"Olek " + +-#: ../netstat.c:1738 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Kasutaja I-kirje " + +-#: ../netstat.c:1741 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Taimer" + +-#: ../netstat.c:1771 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "IPv4 grupikuuluvused\n" + +-#: ../netstat.c:1772 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Liides Mitu Grupp\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "rarp: tuum ei toeta RARP'i\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "rarp: %s jaoks pole RARP kirjet\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "rarp: vigane riistvaraline aadress %s\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: ei saa avada faili %s:%s\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: vorminguviga failis %s real %u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: tundmatu host %s\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: ei saa kehtestada kirjet failist %s realt %u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + "Kasutamine:\n" + " rarp -a puhvris olevate kirjete vaatamine\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d delete entry from cache.\n" + msgstr " rarp -d kirje kustutamine puhvrist\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [] -s add entry to cache.\n" + msgstr " rarp [] -s kirje lisamine puhvrisse\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f kirjete lisamine failist /etc/ethers\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1090,24 +1260,26 @@ + " rarp -V programmi versiooni näitamine\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: lubamatu võtmete kombinatsioon\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: tundmatu riistvara tüüp %s\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [] List kernel routing tables\n" + msgstr "" + "Kasutamine:\n" + " route [-nNvee] [-FC] [] Tuuma ruutingutabeli näitamine\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1115,7 +1287,8 @@ + " route [-v] [-FC] {add|del|flush} ... Tuuma ruutingutabeli muutmine\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [] Detailed usage syntax for " + "specified AF.\n" +@@ -1123,7 +1296,8 @@ + " route {-h|--help} [] Detailne süntaks perekonna AF " + "jaoks\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1132,15 +1306,23 @@ + " route {-V|--version} Versiooni ja oskuste näitamine\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " =Use '-A ' or '--'; default: %s\n" ++msgstr " =kasutage '-A ' või '--' vaikimisi: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Kasutamine: plipconfig [-a] [-i] [-v] liides\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1149,25 +1331,30 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Kasutamine: iptunnel { add | change | del | show } [ NIMI ]\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + " [ mode { ipip | gre | sit } ] [ remote AADR ] [ local AADR ]\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev LIIDES ]\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1175,83 +1362,99 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:89 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Kus: NIMI := STRING\n" + +-#: ../iptunnel.c:90 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " AADR := { IP_AADRESS | any }\n" + +-#: ../iptunnel.c:91 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { ARV | inherit }\n" + +-#: ../iptunnel.c:92 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:93 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + " KEY := { PUNKTIDEGA_ARVUNELIK | ARV }\n" + " LIIDES := FÜÜSILISE_LIIDESE_NIMI\n" + +-#: ../iptunnel.c:331 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "ipip ja sit juures ei ole võtmed lubatud\n" + +-#: ../iptunnel.c:351 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Leviedastusega tunnel vajab lähteaadressi\n" + +-#: ../iptunnel.c:366 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 ning noptmudisc ei sobi kokku\n" + +-#: ../iptunnel.c:378 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "Ei suuda määrata tunneli moodi (ipip, gre või sit)\n" + +-#: ../iptunnel.c:416 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip teises otsas %s siin %s " + +-#: ../iptunnel.c:420 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "tundmatu" + +-#: ../iptunnel.c:452 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Järjekorravälised paketid visatakse minema\n" + +-#: ../iptunnel.c:454 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Vastuvõetavates pakettides on kontrollsumma kohustuslik\n" + +-#: ../iptunnel.c:456 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Väljuvad paketid varustatakse järjekorranumbritega\n" + +-#: ../iptunnel.c:458 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Väljuvad paketid varustatakse kontrollsummaga\n" + +-#: ../iptunnel.c:486 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "/proc/net/dev on vales formaadis. Vale tuuma versioon?\n" + +-#: ../iptunnel.c:499 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Ei suutnud kindlaks teha liidese %s tüüpi\n" + +-#: ../iptunnel.c:515 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakette Baite Vigu KSumVigu JrkVigu Levipakette\n" + +-#: ../iptunnel.c:518 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakette Baite Vigu DeadLoop EiRuudi MäluOtsas\n" + +@@ -1658,13 +1861,13 @@ + msgstr "%u paketti pandi otse recvmsg eeljärjekorda" + + #: ../statistics.c:178 +-#, c-format +-msgid "%u packets directly received from backlog" ++#, fuzzy, c-format ++msgid "%u of bytes directly received from backlog" + msgstr "%u paketti võeti vastu otse backlog-ist" + + #: ../statistics.c:180 +-#, c-format +-msgid "%u packets directly received from prequeue" ++#, fuzzy, c-format ++msgid "%u of bytes directly received from prequeue" + msgstr "%u paketti võeti vastu otse eeljärjekorrast" + + #: ../statistics.c:182 +@@ -1673,8 +1876,8 @@ + msgstr "%u paketti kustutati eeljärjekorrast" + + #: ../statistics.c:183 +-#, c-format +-msgid "%u packets header predicted" ++#, fuzzy, c-format ++msgid "%u packet headers predicted" + msgstr "%u paketti päise õige ennustusega" + + #: ../statistics.c:184 +@@ -1687,19 +1890,210 @@ + msgid "Ran %u times out of system memory during packet sending" + msgstr "Pakettide saatmisel sai %u korda süsteemne mälu otsa" + +-#: ../statistics.c:253 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%u sisenevat paketti tundmatule pordile" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%u vigast segmenti võeti vastu" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, fuzzy, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%u katkestust saadeti" ++ ++#: ../statistics.c:202 ++#, fuzzy, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:206 ++#, fuzzy, c-format ++msgid "%u forward retransmits" ++msgstr "%u edastati" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%u segmenti saadeti uuesti" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%u pakettide kokkupanekut ebaõnnestus" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "" ++"%u paketti kustutati vastuvõtu järjekorrast sokli puhvri ületäitumise tõttu" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%u paketti võeti vastu" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "kokku võeti vastu %u paketti" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%u ühenduse katkestust saabus" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%u aktiivsest ühendusest keelduti ajatempli tõttu" ++ ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "lubatud" + +-#: ../statistics.c:253 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "keelatud" + +-#: ../statistics.c:336 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "Viga /proc/net/snmp analüüsimisel" + +-#: ../statistics.c:349 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "Ei saa avada faili /proc/net/snmp" + +@@ -1713,7 +2107,7 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Ei suuda seada `%s' liiniprotokolliks\n" + +-#: ../lib/af.c:153 ../lib/hw.c:156 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +@@ -1729,11 +2123,11 @@ + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:164 ../lib/hw.c:177 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:167 ../lib/hw.c:183 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +@@ -1745,7 +2139,7 @@ + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:176 ../lib/hw.c:218 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +@@ -1753,19 +2147,21 @@ + msgid "CCITT X.25" + msgstr "CCITT X.25" + +-#: ../lib/af.c:182 ../lib/hw.c:180 ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:185 ../lib/hw.c:168 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + + #: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Meil on kombeks üks aadressiperekond korraga\n" + + #: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Liiga palju aadressiperekonna argumente\n" + +@@ -1790,6 +2186,7 @@ + msgstr "in_arcnet(%s): sodi lõpus\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Vigane Ash aadress" + +@@ -1808,22 +2205,21 @@ + msgstr "Liiga pikk kutsung" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 pole antud süsteemis konfigureeritud\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Tuuma AX.25 ruutingutabel\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Sihtpunkt Liides Kasutus\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "`ddp' jaoks ruutingutabelit veel ei oska\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1879,90 +2275,94 @@ + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): sodi lõpus\n" + +-#: ../lib/hw.c:155 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Kohalik loopback" + +-#: ../lib/hw.c:158 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "Serial Line IP" + +-#: ../lib/hw.c:159 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "VJ Serial Line IP" + +-#: ../lib/hw.c:160 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6-bitine Serial Line IP" + +-#: ../lib/hw.c:161 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "VJ 6-bitine Serial Line IP" + +-#: ../lib/hw.c:162 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptiivne Serial Line IP" + +-#: ../lib/hw.c:165 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:171 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:174 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:186 ++#: ../lib/hw.c:191 + msgid "generic X.25" + msgstr "üldine X.25" + +-#: ../lib/hw.c:189 ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP tunnel" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Kakspunktprotokoll" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco-)HDLC" + +-#: ../lib/hw.c:196 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:199 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:202 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Frame Relay Access Device" + +-#: ../lib/hw.c:206 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-in-IPv4" + +-#: ../lib/hw.c:209 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:212 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "16/4 Mbps Token Ring" + +-#: ../lib/hw.c:214 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "16/4 Mbps Token Ring (New)" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" +@@ -1972,27 +2372,32 @@ + msgid "[UNKNOWN]" + msgstr "[TUNDMATU]" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) pole antud süsteemis konfigureeritud\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Tuuma IPv6 ruutingutabel\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Sihtpunkt Järgmine samm " +-" Lipud Meetr Mitu Kasut Liides\n" ++"Sihtpunkt Järgmine " ++"samm Lipud Meetr Mitu Kasut Liides\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Tuuma IPv6 naabrite puhver\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2000,7 +2405,8 @@ + "Naaber HW Aadress Liides Lipud " + "Mitu Olek\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +@@ -2009,31 +2415,38 @@ + "Mitu Olek Stale(sec) Delete(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Kasutamine: route [-vF] del AADRESS\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr "" + " route [-vF] add AADRESS [gw GW] [metric M] [[dev] LIIDES]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " route [-FC] flush Seda EI toetata\n" + + #: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "`inet6' ruutingutabeli tühjendamist ei toetata\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) pole antud süsteemis konfigureeritud\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Tuuma IP ruutingutabel\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2042,6 +2455,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2050,6 +2464,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2058,10 +2473,12 @@ + "Liides MSS Aken irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Tuuma IP ruutingu puhver\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2070,6 +2487,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2078,6 +2496,7 @@ + "Liides\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2086,6 +2505,7 @@ + "Liides MSS Aken irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2093,7 +2513,8 @@ + "Lähtepunkt Sihtpunkt Ruuter Lipud Meetr Mitu Kasut " + "Liides MSS Aken irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2101,31 +2522,36 @@ + "Kasutamine: route [-vF] del {-host|-net} AADRESS[/PREFIKS] [gw GW] [metric " + "M] [[dev] LIIDES]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " route [-vF] add {-host|-net} AADRESS[/PREFIKS] [gw GW] [metric " + "M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss MSS] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] LIIDES]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " route [-vF] add {-host|-net} AADRESS[/PREFIKS] [metric M] " + "reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " route [-FC] flush Seda EI toetata\n" + +@@ -2135,14 +2561,17 @@ + msgstr "route: %s: võrku ei saa kasutada ruuterina\n" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: vigane MSS/MTU\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Vigane akna suurus\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: vigane algne rtt\n" + +@@ -2157,75 +2586,92 @@ + msgstr "route: vale võrgumask %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: võrgumask ei sobi ruutingu aadressiga\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "`inet' ruutingutabeli tühjendamist ei toetata\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "`inet' ruutingu puhvri muutmist ei toetata\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX pole antud süsteemis konfigureeritud\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Tuuma IPX ruutingutabel\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Sihtpunkt Ruuteri võrk Ruuter ise\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX osa vajab ümbertegemist\n" + + #: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP maskeerimise kirjed\n" + + #: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "Proto Aegub Lähtepunkt Sihtpunkt Pordid\n" + + #: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"Proto Aegub Initseq Delta Prevd Lähtepunkt Sihtpunkt " +-" Pordid\n" ++"Proto Aegub Initseq Delta Prevd Lähtepunkt " ++"Sihtpunkt Pordid\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM pole antud süsteemis konfigureeritud\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Tuuma NET/ROM ruutingutabel\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Sihtpunkt Mnemoonika Kvaliteet Naaber Liides\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "netrom kasutus\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM osa vajab ümbertegemist\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Sellest programmist ei saa PPP-d käivitada\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Palun kasutage pppd'd\n" + +@@ -2234,287 +2680,314 @@ + msgstr "Sõlme aadress peab olema kümnekohaline" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE pole antud süsteemis konfigureeritud\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Tuuma ROSE ruutingutabel\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): vigane token ring-aadress\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): ignoreerin lõpetavat koolonit\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): sodi lõpus\n" + +-#: ../lib/interface.c:164 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "Hoiatus: `inet' sokleid ei ole: %s\n" + +-#: ../lib/interface.c:316 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "Hoiatus: ei saa avada faili %s (%s). Väljund on piiratud.\n" + + #. Give better error message for this case. +-#: ../lib/interface.c:556 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Liidest ei leitud" + +-#: ../lib/interface.c:560 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: viga liidese info küsimisel: %s\n" + +-#: ../lib/interface.c:593 ++#: ../lib/interface.c:608 + msgid " - no statistics available -" + msgstr " - statistikat ei ole -" + +-#: ../lib/interface.c:597 ++#: ../lib/interface.c:612 ++#, c-format + msgid "[NO FLAGS]" + msgstr "[LIPPE POLE]" + +-#: ../lib/interface.c:673 ++#: ../lib/interface.c:688 + #, c-format + msgid "%-9.9s Link encap:%s " + msgstr "%-9.9s kapseldus:%s " + +-#: ../lib/interface.c:678 ++#: ../lib/interface.c:693 + #, c-format + msgid "HWaddr %s " + msgstr "HWaddr %s " + +-#: ../lib/interface.c:681 ++#: ../lib/interface.c:696 + #, c-format + msgid "Media:%s" + msgstr "meedia:%s" + +-#: ../lib/interface.c:683 ++#: ../lib/interface.c:698 ++#, c-format + msgid "(auto)" + msgstr "(auto)" + +-#: ../lib/interface.c:690 ++#: ../lib/interface.c:705 + #, c-format + msgid " %s addr:%s " + msgstr " %s aadress:%s " + +-#: ../lib/interface.c:693 ++#: ../lib/interface.c:708 + #, c-format + msgid " P-t-P:%s " + msgstr " P-t-P:%s " + +-#: ../lib/interface.c:696 ++#: ../lib/interface.c:711 + #, c-format + msgid " Bcast:%s " + msgstr " bcast:%s " + +-#: ../lib/interface.c:698 ++#: ../lib/interface.c:713 + #, c-format + msgid " Mask:%s\n" + msgstr " mask:%s\n" + +-#: ../lib/interface.c:715 ++#: ../lib/interface.c:730 + #, c-format + msgid " inet6 addr: %s/%d" + msgstr " inet6 aadr: %s/%d" + +-#: ../lib/interface.c:717 ++#: ../lib/interface.c:732 ++#, c-format + msgid " Scope:" + msgstr " skoop:" + +-#: ../lib/interface.c:720 ++#: ../lib/interface.c:735 ++#, c-format + msgid "Global" + msgstr "globaalne" + +-#: ../lib/interface.c:723 ++#: ../lib/interface.c:738 ++#, c-format + msgid "Link" + msgstr "ühendus" + +-#: ../lib/interface.c:726 ++#: ../lib/interface.c:741 ++#, c-format + msgid "Site" + msgstr "site" + +-#: ../lib/interface.c:729 ++#: ../lib/interface.c:744 ++#, c-format + msgid "Compat" + msgstr "ühilduvus" + +-#: ../lib/interface.c:732 ++#: ../lib/interface.c:747 ++#, c-format + msgid "Host" + msgstr "host" + +-#: ../lib/interface.c:735 ++#: ../lib/interface.c:750 ++#, c-format + msgid "Unknown" + msgstr "tundmatu" + +-#: ../lib/interface.c:750 ++#: ../lib/interface.c:765 + #, c-format + msgid " IPX/Ethernet II addr:%s\n" + msgstr " IPX/Ethernet II aadr:%s\n" + +-#: ../lib/interface.c:753 ++#: ../lib/interface.c:768 + #, c-format + msgid " IPX/Ethernet SNAP addr:%s\n" + msgstr " IPX/Ethernet SNAP aadr:%s\n" + +-#: ../lib/interface.c:756 ++#: ../lib/interface.c:771 + #, c-format + msgid " IPX/Ethernet 802.2 addr:%s\n" + msgstr " IPX/Ethernet 802.2 aadr:%s\n" + +-#: ../lib/interface.c:759 ++#: ../lib/interface.c:774 + #, c-format + msgid " IPX/Ethernet 802.3 addr:%s\n" + msgstr " IPX/Ethernet 802.3 aadr:%s\n" + +-#: ../lib/interface.c:769 ++#: ../lib/interface.c:784 + #, c-format + msgid " EtherTalk Phase 2 addr:%s\n" + msgstr " EtherTalk Phase 2 aadr:%s\n" + +-#: ../lib/interface.c:778 ++#: ../lib/interface.c:793 + #, c-format + msgid " econet addr:%s\n" + msgstr " econeti aadr:%s\n" + +-#: ../lib/interface.c:785 ++#: ../lib/interface.c:800 ++#, c-format + msgid "[NO FLAGS] " + msgstr "[LIPPE POLE]" + +-#: ../lib/interface.c:787 ++#: ../lib/interface.c:802 ++#, c-format + msgid "UP " + msgstr "UP " + +-#: ../lib/interface.c:789 ++#: ../lib/interface.c:804 ++#, c-format + msgid "BROADCAST " + msgstr "BROADCAST " + +-#: ../lib/interface.c:791 ++#: ../lib/interface.c:806 ++#, c-format + msgid "DEBUG " + msgstr "DEBUG " + +-#: ../lib/interface.c:793 ++#: ../lib/interface.c:808 ++#, c-format + msgid "LOOPBACK " + msgstr "LOOPBACK " + +-#: ../lib/interface.c:795 ++#: ../lib/interface.c:810 ++#, c-format + msgid "POINTOPOINT " + msgstr "POINTOPOINT " + +-#: ../lib/interface.c:797 ++#: ../lib/interface.c:812 ++#, c-format + msgid "NOTRAILERS " + msgstr "NOTRAILERS " + +-#: ../lib/interface.c:799 ++#: ../lib/interface.c:814 ++#, c-format + msgid "RUNNING " + msgstr "RUNNING " + +-#: ../lib/interface.c:801 ++#: ../lib/interface.c:816 ++#, c-format + msgid "NOARP " + msgstr "NOARP " + +-#: ../lib/interface.c:803 ++#: ../lib/interface.c:818 ++#, c-format + msgid "PROMISC " + msgstr "PROMISC " + +-#: ../lib/interface.c:805 ++#: ../lib/interface.c:820 ++#, c-format + msgid "ALLMULTI " + msgstr "ALLMULTI " + +-#: ../lib/interface.c:807 ++#: ../lib/interface.c:822 ++#, c-format + msgid "SLAVE " + msgstr "SLAVE " + +-#: ../lib/interface.c:809 ++#: ../lib/interface.c:824 ++#, c-format + msgid "MASTER " + msgstr "MASTER " + +-#: ../lib/interface.c:811 ++#: ../lib/interface.c:826 ++#, c-format + msgid "MULTICAST " + msgstr "MULTICAST " + +-#: ../lib/interface.c:814 ++#: ../lib/interface.c:829 ++#, c-format + msgid "DYNAMIC " + msgstr "DYNAMIC " + + #. DONT FORGET TO ADD THE FLAGS IN ife_print_short +-#: ../lib/interface.c:817 ++#: ../lib/interface.c:832 + #, c-format + msgid " MTU:%d Metric:%d" + msgstr " MTU:%d meetrika:%d" + +-#: ../lib/interface.c:821 ++#: ../lib/interface.c:836 + #, c-format + msgid " Outfill:%d Keepalive:%d" + msgstr " ülalhoidepakettide intervall:%d ülalhoidetaimaut:%d" + +-#: ../lib/interface.c:835 ++#: ../lib/interface.c:850 + #, c-format + msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" + msgstr "RX pakette:%llu vigu:%lu ära visatud:%lu ületäit:%lu kaadri vigu:%lu\n" + +-#: ../lib/interface.c:840 ++#: ../lib/interface.c:855 + #, c-format + msgid " compressed:%lu\n" + msgstr " pakitud:%lu\n" + +-#: ../lib/interface.c:852 ++#: ../lib/interface.c:895 + #, c-format + msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" + msgstr "TX pakette:%llu vigu:%lu ära visatud:%lu ületäit:%lu carrier:%lu\n" + +-#: ../lib/interface.c:856 ++#: ../lib/interface.c:899 + #, c-format + msgid " collisions:%lu " + msgstr " kollisioone:%lu " + +-#: ../lib/interface.c:858 ++#: ../lib/interface.c:901 + #, c-format + msgid "compressed:%lu " + msgstr "pakitud:%lu " + +-#: ../lib/interface.c:860 ++#: ../lib/interface.c:903 + #, c-format + msgid "txqueuelen:%d " + msgstr "txqueuelen:%d " + +-#: ../lib/interface.c:862 ++#: ../lib/interface.c:905 + #, c-format + msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "RX baite:%llu (%lu.%lu %s) TX baite:%llu (%lu.%lu %s)\n" + +-#: ../lib/interface.c:873 ++#: ../lib/interface.c:916 + #, c-format + msgid "Interrupt:%d " + msgstr "katkestus:%d " + + #. Only print devices using it for + #. I/O maps +-#: ../lib/interface.c:876 ++#: ../lib/interface.c:919 + #, c-format + msgid "Base address:0x%x " + msgstr "baasaadress:0x%x " + +-#: ../lib/interface.c:878 ++#: ../lib/interface.c:921 + #, c-format + msgid "Memory:%lx-%lx " + msgstr "mälu:%lx-%lx " + +-#: ../lib/interface.c:881 ++#: ../lib/interface.c:924 + #, c-format + msgid "DMA chan:%x " + msgstr "DMA kanal:%x " + + #: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Ei leidnud ühtegi kasutatavat aadressiperekonda\n" + +@@ -2538,29 +3011,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "iptunnel: vale argument %s\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Kasutamine: ipmaddr [ add | del ] MULTIAADR dev STRING\n" + +-#: ../ipmaddr.c:59 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:60 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:260 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "perekond %d " + +-#: ../ipmaddr.c:269 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " kasutajaid %d" + +-#: ../ipmaddr.c:355 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Ei saa avada soklit" + +@@ -2575,6 +3051,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: ei saa PID faili kirjutada\n" + +@@ -2594,18 +3071,22 @@ + msgstr "slattach: tty_hangup(RAISE): %s\n" + + #: ../slattach.c:468 ++#, c-format + msgid "slattach: tty name too long\n" + msgstr "slattach: terminali nimi on liiga pikk\n" + + #: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: ei saa lugeda jooksvat olekut\n" + + #: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "slattach: tty_open: liiniprotokolli küsimine ebaõnnestus\n" + + #: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: ei saa seada RAW moodi\n" + +@@ -2615,6 +3096,7 @@ + msgstr "slattach: tty_open: ei saa seada kiiruseks %s bps\n" + + #: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: ei saa seada 8N1 moodi\n" + +@@ -2637,3 +3119,20 @@ + #, c-format + msgid " interface %s\n" + msgstr " liides %s\n" ++ ++#~ msgid "" ++#~ " arp [-v] [] [-i ] -s [netmask ] pub " ++#~ "<-''-\n" ++#~ msgstr "" ++#~ " arp [-v] [] [-i ] -s [netmask ] " ++#~ "pub\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "ifconfig: tundmatu liides %s: %s\n" ++ ++#~ msgid " -n, --numeric dont resolve names\n" ++#~ msgstr "" ++#~ " -n, --numeric mitte lahendada numbreid nimedeks\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "`ddp' jaoks ruutingutabelit veel ei oska\n" +--- net-tools-1.60.orig/po/de.po ++++ net-tools-1.60/po/de.po +@@ -1,106 +1,121 @@ +-# $Id: de.po,v 1.10 2000/08/01 03:19:48 ecki Exp $ ++# $Id: de.po,v 1.11 2003/10/25 21:15:09 ecki Exp $ + # German translation for net-tools 1.51 + # Copyright (C) 1999 Ralf Bächle + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" +-"PO-Revision-Date: 1998-03-01 00:02+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" ++"PO-Revision-Date: 2005-06-13 00:02+0100\n" + "Last-Translator: Ralf Bächle \n" + "Language-Team:\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=iso8859-1\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" +-msgstr "arp: Hostname muß angegeben werden\n" ++msgstr "arp: Hostname muss angegeben werden\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" +-msgstr "Kein ARP Eintrag für %s\n" ++msgstr "Kein ARP-Eintrag für %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "rarp: Kann Eintrag aus %s : %u nicht setzen.\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: unpassende Protokolltypen.\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" +-msgstr "arp: Gerät ,,%s'' hat HW-Adresse %s ,,%s''.\n" ++msgstr "arp: Gerät »%s« hat HW-Adresse %s »%s«.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" +-msgstr "arp: Hardwareadresse muß angegeben werden\n" ++msgstr "arp: Hardwareadresse muss angegeben werden\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: ungültige Hardwareadresse\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: Kann %s nicht öffnen!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: Formatfehler in Zeile %u von Etherfile %s.\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: Kann Eintrag auf Zeile %u von Etherdatei %s nicht setzen!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresse\t\t\tHWTyp\tHWAdresse\t Flags Maske\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "" ++msgstr " Schnittstelle: %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" +-msgstr "(unvollsändig)" ++msgstr "(unvollständig)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) auf " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid " " + msgstr " " + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "netzmaske %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "auf %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Einträge: %d Ignoriert: %d Gefunden: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- kein Eintrag\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" +-msgstr "arp: In %d Einträgen wurde kein Zutreffender gefunden.\n" ++msgstr "arp: In %d Einträgen wurde kein zutreffender gefunden.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [] [-i ] [-a] [] <-Display ARP " +@@ -109,157 +124,165 @@ + "Benutzung:\n" + " arp [-vn] [] [-i ] [-a] []\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i ] -d [pub][nopub] <-Delete ARP " ++" arp [-v] [-i ] -d [pub] <-Delete ARP " + "entry\n" + msgstr " arp [-v] [-i ] -d [pub][nopub]\n" + +-#: ../arp.c:615 ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [] [-i ] -f [] <-Add entry from " ++" arp [-vnD] [] [-i ] -f [] <-Add entry from " + "file\n" + msgstr " arp [-vnD] [] [-i ] -f <- Eintrag aus Datei hinzufügen\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -s [temp][nopub] <-Add " ++" arp [-v] [] [-i ] -s [temp] <-Add " + "entry\n" + msgstr "" + " arp [-v] [] [-i ] -s [temp][nopub]\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [] [-i ] -s [netmask ] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [] [-i ] -s [netmask ] pub\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -Ds [netmask ] pub " ++" arp [-v] [] [-i ] -Ds [netmask ] pub " + "<-''-\n" + "\n" + msgstr " arp [-v] [] [-i ] -Ds [netmask ] pub\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" + msgstr " -a Alle Hosts im BSD-Format anzeigen\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set Neuen ARP-Eintrag setzen\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete Einen bestimmten Eintrag löschen\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose Ausführliche Ausgaben\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" +-msgstr " -i, --device Netzwerksgerät (z.B. eth0) angeben\n" ++msgstr " -i, --device Netzwerkgerät (z.B. eth0) angeben\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read from given device\n" + msgstr " -D, --use-device von gegebenem Gerät lesen\n" + +-#: ../arp.c:627 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -A, -p, --protocol Routentabelle anzeigen\n" + +-#: ../arp.c:628 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file Neue Einträge aus Datei lesen\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " =Use '-H ' to specify hardware address type. Default: %s\n" + msgstr " ='-H ' um Hardwareadresstyp anzugeben. Standard: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Liste möglicher Hardwaretypen, die ARP unterstützen:\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: Hardwaretyp nicht unterstützt!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: Adressfamilie nicht unterstützt!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: -N noch nicht unterstützt.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: unbekannte Adressfamilie.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: unbekannter Hardwaretyp.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" +-msgstr "arp: %s: Kernel unterstützt nur ,,inet''.\n" ++msgstr "arp: %s: Kernel unterstützt nur »inet«.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: Hardware unterstützt kein ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" +-msgstr "Rechnernamen auf ,,%s'' setzen\n" ++msgstr "Rechnernamen auf »%s« setzen\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: Nur Root darf den Rechnernamen ändern\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: name zu lang\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" +-msgstr "Setze Hostname auf ,,%s''\n" ++msgstr "Setze Hostname auf »%s«\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" +-msgstr "%s: Nur Root darf then Rechnernamen ändern\n" ++msgstr "%s: Nur Root darf den Rechnernamen ändern\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" +-msgstr "Setze domainname auf ,,%s''\n" ++msgstr "Setze domainname auf »%s«\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: Nur Root darf den Domainnamen ändern\n" +@@ -267,51 +290,56 @@ + #: ../hostname.c:131 + #, c-format + msgid "Resolving `%s' ...\n" +-msgstr "Löse ,,%s'' auf ...\n" ++msgstr "Löse »%s« auf ...\n" + + #: ../hostname.c:137 + #, c-format + msgid "Result: h_name=`%s'\n" +-msgstr "Ergebnis: h_name=,,%s''\n" ++msgstr "Ergebnis: h_name=»%s«\n" + + #: ../hostname.c:142 + #, c-format + msgid "Result: h_aliases=`%s'\n" +-msgstr "Ergebnis: h_aliases=,,%s''\n" ++msgstr "Ergebnis: h_aliases=»%s«\n" + + #: ../hostname.c:147 + #, c-format + msgid "Result: h_addr_list=`%s'\n" +-msgstr "Ergebnis: h_addr_list=,,%s''\n" ++msgstr "Ergebnis: h_addr_list=»%s«\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" +-msgstr "%s: Kann ,,%s'' nicht öffnen\n" ++msgstr "%s: Kann »%s« nicht öffnen\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Benutzung: hostname [-v] {Hostname|-F Datei} Hostname (aus Datei) setzen\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" +-" domainname [-v] {nisdomain|-F file} NIS Domainname (aus Datei) " ++" domainname [-v] {nisdomain|-F file} NIS-Domainname (aus Datei) " + "setzen.\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" + msgstr " nodename [-v] {Rechnername|-F Datei}\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n]\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -319,7 +347,8 @@ + " hostname [-v] Hostnamen anzeigen\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -328,7 +357,8 @@ + "beenden.\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -336,43 +366,52 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short Kurzer Hostname\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias Namensalias\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address Adressen für den Hostnamen\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long Langer Hostname (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" +-msgstr " -d, --domain DNS Domainname\n" ++msgstr " -d, --domain DNS-Domainname\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" +-msgstr " -y, --yp, --nis NIS/YP Domainname\n" ++msgstr " -y, --yp, --nis NIS/YP-Domainname\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" +-msgstr " -n, --node DECnet Knotennamen\n" ++msgstr " -n, --node DECnet-Knotennamen\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" +-" -F, --file Hostnamen oder NIS Domainnamen aus Datei lesen\n" ++" -F, --file Hostnamen oder NIS-Domainnamen aus Datei lesen\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -380,395 +419,268 @@ + " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" + " part of the FQDN) in the /etc/hosts file.\n" + msgstr "" +-" Dies Kommando setzt oder gibt den Hostnamen oder NIS Domainnamen aus.\n" +-" Es ist ebenfalls möglich die DNS Domain oder den FQDN (langen Hostnamen)\n" ++" Dies Kommando setzt oder gibt den Hostnamen oder NIS-Domainnamen aus.\n" ++" Es ist ebenfalls möglich die DNS-Domain oder den FQDN (langen Hostnamen)\n" + " ausgeben zu lassen. Außer wenn DNS oder NIS als Namensdienst verwendet\n" +-" wird, können FQDN (Fully Qualified Domain Name) und DNS Domainname (welcher\n" ++" wird, können FQDN (Fully Qualified Domain Name) und DNS-Domainname (welcher\n" + " Teil des FQDNs ist) in /etc/hosts geändert werden.\n" + + #: ../hostname.c:338 + #, c-format + msgid "%s: You can't change the DNS domain name with this command\n" +-msgstr "%s: Mit diesem Program kann der DNS Domainname nicht geändert werden\n" ++msgstr "%s: Mit diesem Programm kann der DNS-Domainname nicht geändert werden\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"Wenn Bind oder NIS nicht zur Hostnamensauflösung benutzt werden, kann der " +-"DNS\n" ++"Wenn Bind oder NIS nicht zur Hostnamensauflösung benutzt werden, kann der DNS\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" +-msgstr "" +-"Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts geändert " +-"werden.\n" ++msgstr "Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts geändert werden.\n" + + #: ../hostname.c:357 + #, c-format + msgid "gethostname()=`%s'\n" +-msgstr "gethostname()=,,%s''\n" ++msgstr "gethostname()=»%s«\n" + + #: ../hostname.c:374 + #, c-format + msgid "getdomainname()=`%s'\n" +-msgstr "getdomainname()=,,%s''\n" ++msgstr "getdomainname()=»%s«\n" + + #: ../hostname.c:389 + #, c-format + msgid "getnodename()=`%s'\n" +-msgstr "getnodename()=,,%s''\n" ++msgstr "getnodename()=»%s«\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Protokoll:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb Flg\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "Hardware Adresse %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Medium:%s" ++msgid "No support for INET on this system.\n" ++msgstr "INET ist auf diesem System nicht verfügbar.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s Adresse:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] [[]
]\n" ++msgstr "" ++"Syntax:\n" ++" ifconfig [-a] [-i] [-v] [[] ]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-z-P:%s " ++msgid " [add
[/]]\n" ++msgstr " [add [/]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del
[/]]\n" ++msgstr " [del [/]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Maske:%s\n" ++msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" ++msgstr " [[-]broadcast []] [[-]pointopoint []]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " inet6 Adresse: %s/%d" +- +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Gültigkeitsbereich:" +- +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++msgid " [netmask
] [dstaddr
] [tunnel
]\n" ++msgstr " [netmask ] [dstaddr ] [tunnel ]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Verbindung" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill ] [keepalive ]\n" ++msgstr " [outfill ] [keepalive ]\n" + + #: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Standort" +- +-#: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Kompatibilität" +- +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Maschine" +- +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Unbekannt" +- +-#: ../ifconfig.c:236 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " IPX/Ethernet II Adresse:%s\n" ++msgid " [hw
] [metric ] [mtu ]\n" ++msgstr " [hw ] [metric ] [mtu ]\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:213 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " IPX/Ethernet SNAP Adresse:%s\n" ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:214 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " IPX/Ethernet 802.2 Adresse:%s\n" ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + +-#: ../ifconfig.c:245 ++#: ../ifconfig.c:215 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " IPX/Ethernet 802.3 Adresse:%s\n" ++msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" ++msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:217 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " EtherTalk Phase 2 Adresse:%s\n" ++msgid " [txqueuelen ]\n" ++msgstr " [txqueuelen ]\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:220 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " econet Adresse:%s\n" +- +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[KEINE FLAGS] " +- +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " +- +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST " +- +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " +- +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK " +- +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "PUNKTZUPUNKT " +- +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:224 ++#, c-format ++msgid " =Hardware Type.\n" ++msgstr " =Hardwaretyp.\n" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " Liste möglicher Hardwaretypen:\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " =Address family. Default: %s\n" ++msgstr " =Adressfamilie. Standardwert: %s\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " List der möglichen Adressfamilien:\n" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Typ des Mediums unbekannt.\n" + +-#: ../ifconfig.c:302 ++#: ../ifconfig.c:417 + #, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metric:%d" ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:306 ++#: ../ifconfig.c:429 + #, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:320 ++#: ../ifconfig.c:441 + #, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" + msgstr "" +-"Empfangene Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Rahmen:%lu\n" + +-#: ../ifconfig.c:325 ++#: ../ifconfig.c:465 + #, c-format +-msgid " compressed:%lu\n" +-msgstr " komprimiert:%lu\n" ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-#: ../ifconfig.c:329 ++#: ../ifconfig.c:523 + #, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgid "Warning: Interface %s still in BROADCAST mode.\n" + msgstr "" +-"Verschickte Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Träger:%lu\n" + +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:652 + #, c-format +-msgid " collisions:%lu " +-msgstr " Kollisionen:%lu " ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:335 ++#: ../ifconfig.c:684 + #, c-format +-msgid "compressed:%lu " +-msgstr "Komprimiert:%lu " ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:337 ++#: ../ifconfig.c:693 + #, c-format +-msgid "txqueuelen:%d " +-msgstr "Sendewarteschlangenlänge:%d " ++msgid "%s: invalid %s address.\n" ++msgstr "%s: ungültige %s Adresse.\n" + +-#: ../ifconfig.c:345 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid "Interrupt:%d " +-msgstr "Interrupt:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Basisadresse:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Speicher:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "DMA Kanal:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "INET6 ist auf diesem System nicht verfügbar.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: unbekannte Schnittstelle: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] [[]
]\n" +-msgstr "" +-"Syntax:\n" +-" ifconfig [-a] [-i] [-v] [[] ]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add
[/]]\n" +-msgstr " [add [/]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del
[/]]\n" +-msgstr " [del [/]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" +-msgstr " [[-]broadcast []] [[-]pointopoint []]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask
] [dstaddr
] [tunnel
]\n" +-msgstr " [netmask ] [dstaddr ] [tunnel ]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill ] [keepalive ]\n" +-msgstr " [outfill ] [keepalive ]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw
] [metric ] [mtu ]\n" +-msgstr " [hw ] [metric ] [mtu ]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" +-msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen ]\n" +-msgstr " [txqueuelen ]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " =Hardware Type.\n" +-msgstr " =Hardwaretyp.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Liste möglicher Hardwaretypen:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " =Address family. Default: %s\n" +-msgstr " =Adressfamilie. Standardwert: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " List der möglichen Adressfamilien:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Typ des Mediums unbekannt.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: ungültige %s Adresse.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "INET6 ist auf diesem System nicht verfügbar.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" +-msgstr "Das Löschen von Adressen ist auf diesem System nicht unterstützt.\n" ++msgstr "Das Löschen von Adressen wird auf diesem System nicht unterstützt.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "INET ist auf diesem System nicht verfügbar.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Kann die Adressen der Familie %d nicht setzen.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "ECONET wird auf diesem System nicht unterstützt.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Kann die Adressen der Familie %d nicht setzen.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Für \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie " +-"sollten Root sein.)\n" ++msgstr "(Für \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie sollten Root sein.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -776,198 +688,220 @@ + "(Es konnten nicht alle Prozesse identifiziert werden; Informationen über\n" + "nicht-eigene Processe werden nicht angezeigt; Root kann sie anzeigen.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "HÖRT" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "VERBINGSAUFBAU GESCHICKT" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "VERBINDUNGSABBAU GESCHICKT" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "VERBUNDEN" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktive NET/ROM Sockets\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" +-msgstr "" +-"Benutzer Ziel Quelle Gerät Zustand Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Benutzer Ziel Quelle Gerät Zustand Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Probleme beim Lesen von %s\n" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "Warnung, fehlerhafte igmp6 line %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: Nicht unterstützte Adressfamilie %d!\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "Warnung, fehlerhafte igmp-Zeile %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Aktive AX.25 Sockets\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Ziel Quelle Gerät Zustand Vr/Vs Send-Q Empf-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "Warnung, fehlerhafte TCP Zeile.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "aus (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "ein (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "unkn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "Warnung, fehlerhafe UDP-Zeile.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "UNBEKANNT" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "ein%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "Warnung, fehlerhafte raw-Zeile.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "Warnung, fehlerhafte UNIX-Zeile.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" +-msgstr "SEQPACKET" ++msgstr "SEQPAKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "FREI" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "VERBINDUNGSAUFBAU" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "VERBUNDEN" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "VERBINDUNGSABBAU" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " +-msgstr "Aktive Sockets in der UNIX Domäne " ++msgstr "Aktive Sockets in der UNIX-Domäne " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(Server und stehende Verbindungen)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(Nur Server)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(ohne Server)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -975,90 +909,90 @@ + "\n" + "Proto RefZäh Flaggen Typ Zustand I-Node" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Pfad\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM GESCHICKT" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "WIEDERHERSTELLUNG" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktive AX.25 Sockets\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Ziel Quelle Gerät Zustand Vr/Vs Send-Q Empf-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "Problem beim Lesen von Daten von %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Aktive IPX Sockets\n" +-"Proto Recv-Q Send-Q Lokale Adresse Gegenaddress " ++"Proto Recv-Q Send-Q Lokale Adresse Gegenadresse " + "Zustand" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " Benutzer" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "VERBUNDEN" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNB." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - keine Statistiken verfügbar -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[KEINE FLAGS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" +-msgstr "Kernel Schnittstellentabelle\n" ++msgstr "Kernel-Schnittstellentabelle\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " +-"Flg\n" +-msgstr "" +-"SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" ++msgstr "SStelle MTU Met RX-OK RX-Feh RX-DRP RX-Ülf TX-OK TX-Feh TX-DRP TX-Üb Flg\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" +-msgstr "Fehlende Interfaceinformation" ++msgstr "Fehlende Interfaceinformationen" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + "Benutzung: netstat [-veenNcCF] [] -r\n" + " netstat {-V|--version|-h|--help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [ ...]\n" + msgstr " netstat [-vnNcaeol] [ ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1066,27 +1000,32 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route Routentabelle anzeigen\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces Schnittstellentabelle auflisten\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups Mitgliedschaft in Multicastgruppen " + "anzeigen\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics Netzwerksstatistiken anzeigen (wie SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1094,23 +1033,38 @@ + " -M, --masquerade Maskierte Verbindungen auflisten\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic Hardwarenamen auflösen\n" + +-#: ../netstat.c:1439 ../route.c:88 +-#, fuzzy ++#: ../netstat.c:1509 ../route.c:88 ++#, fuzzy, c-format + msgid " -e, --extend display other/more information\n" +-msgstr "" +-" -e, --extend Weitere / zusätzliche Informationen " +-"anzeigen\n" ++msgstr " -e, --extend Weitere / zusätzliche Informationen anzeigen\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" +-msgstr "" +-" -p, --programs PID/Programmnamen für Sockets anzeigen\n" ++msgstr " -p, --programs PID/Programmnamen für Sockets anzeigen\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1118,24 +1072,27 @@ + " -c, --continuous Anzeige laufend aktualisieren\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + " -l, --listening Empfangsbereite Serversockets auflisten\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening Alle Sockets anzeigen (normal: nur " + "verbundene)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers Timer auflisten\n" + +-#: ../netstat.c:1445 ../route.c:89 +-#, fuzzy ++#: ../netstat.c:1515 ../route.c:89 ++#, fuzzy, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -1143,7 +1100,8 @@ + " -F, --fib Forwarding Infomation Base anzeigen " + "(Standard)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1151,110 +1109,118 @@ + " -C, --cache Routencache statt FIB anzeigen\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " =Use '-A ' or '--' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " =Use '-6|-4' or '-A ' or '--'; default: %s\n" + msgstr " =,,-A '' or ,,--'' benutzen. Standard: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Liste möglicher Adressfamilien, die Routen unterstützen:\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktive Internetverbindungen " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Benutzer Inode " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Timer" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" +-msgstr "IPv4 Gruppenmitgliedschaften\n" ++msgstr "IPv4-Gruppenmitgliedschaften\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Schnittstelle RefZäh Grupp\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Dieser Kernel unterstützt kein RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" +-msgstr "Kein RARP Eintrag für %s.\n" ++msgstr "Kein RARP-Eintrag für %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: fehlerhafte Hardwareadresse\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: kann Datei %s:%s nicht öffnen.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: Formatfehler bei %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: Unbekannter Host\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: Kann Eintrag aus %s:%u nicht setzen.\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" +-msgstr "" +-"Benutzung: rarp -a Einträge im Cache listen.\n" ++msgstr "Benutzung: rarp -a Einträge im Cache listen.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d delete entry from cache.\n" +-msgstr "" +-" rarp -d Eintrag aus dem Cache löschen.\n" ++msgstr " rarp -d Eintrag aus dem Cache löschen.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [] -s add entry to cache.\n" +-msgstr "" +-" rarp [] -s Eintrag zum Cache zufügen.\n" ++msgstr " rarp [] -s Eintrag zum Cache zufügen.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" +-msgstr "" +-" rarp -f Einträge aus /etc/ethers " +-"zufügen.\n" ++msgstr " rarp -f Einträge aus /etc/ethers zufügen.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1262,24 +1228,26 @@ + " rarp -V Programmversion anzeigen.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: Unerlaubte Mischung von Optionen.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" +-msgstr "rarp: %s: unknown hardware type.\n" ++msgstr "rarp: %s: unbekannter Hardwaretyp.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [] List kernel routing tables\n" + msgstr "" + "Benutzung: route [-nNvee] [-FC] [] Kernelroutentabelle " + "anzeigen\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1287,14 +1255,15 @@ + " route [-v] [-FC] {add|del|flush} ... Routentabelle für AF ändern.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [] Detailed usage syntax for " + "specified AF.\n" +-msgstr "" +-" route {-h|--help} [] Genaue Syntax für AF anzeigen.\n" ++msgstr " route {-h|--help} [] Genaue Syntax für AF anzeigen.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1304,590 +1273,891 @@ + "Ende.\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " =Use '-A ' or '--'; default: %s\n" ++msgstr " =,,-A '' or ,,--'' benutzen. Standard: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Benutzung: plipconfig [-a] [-i] [-v] Interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 +-#, fuzzy ++#, c-format + msgid " plipconfig -V | --version\n" +-msgstr " plipconfig -V\n" ++msgstr " plipconfig -V | --version\n" + + #: ../plipconfig.c:74 + #, c-format + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Benutzung: iptunnel { add | change | del | show } [ NAME ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr " [ mode { ipip | gre | sit } ] [ remote ADR ] [ local ADR ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key SCHLÜSSEL ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 +-#, fuzzy ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" +-msgstr "" +-" [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERÄt ]\n" +-"\n" ++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERÄt ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" ++" iptunnel -V | --version\n" ++"\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Wobei: NAME := ZEICHENKETTE\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " ADR := { IP_ADRESSE | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { NUMBER | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KEY := { DOTTED_QUAD | ZAHL }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "Schlüssel sind mit ipip und sit nicht erlaubt.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Ein Broadcasttunnel ist nur mit einer Quelladresse möglich\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 und noptmudisc sind inkompatibel\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + "Die Tunnelbetriebsart (ipip, fre oder sit) kann nicht festgestellt werden\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip Gegenseite %s lokal %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Unbekannt" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Pakete außer der Reihenfolge fallenlassen.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Prüfsumme im empfangenen Paket wird benötigt.\n" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Pakete in Reihenfolge ausgeben.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Prüfsumme für ausgegebene Pakete berechnen.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" +-msgstr "Falsches Format von /proc/net/dev. Tut mir leid\n" ++msgstr "Falsches Format von /proc/net/dev. Tut mir leid.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Kann den Typ von [%s] nicht holen\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakete Bytes Fehler CsumErrs OutOfSeq Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakete Bytes Fehler DeadLoop NoRoute NoBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" +-msgstr "ICMP Eingabehistogramm:" ++msgstr "ICMP-Eingabehistogramm:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" +-msgstr "ICMP Ausgabehistogramm:" ++msgstr "ICMP-Ausgabehistogramm:" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Weiterleitung ist %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Standard-TTL ist %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" +-msgstr "%d Pakete insgesamt empfangen" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" ++msgstr "%d Pakete insgesamt empfangen" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" +-msgstr "%d with ungültigen Headern" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" ++msgstr "%d mit ungültigen Headern" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d mit ungültigen Adressen" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d weitergeleitet" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d mit unbekanntem Protokoll" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d eingehende Pakete weggeworfen" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d eingehende Pakete zugestellt" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d Anfragen ausgesandt" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d ausgehende Pakete weggeworfen" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d weggeworfen wegen fehlender Route" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d Fragmente nach Timeout weggeworfen" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d Wiederzusammenstellungen nötig" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d Fragmente korrekt empfangen" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d fehlgeschlagene Paketdefragmentierungen" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d Fragmente korrekt empfangen" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" +-msgstr "%d Fragmente Fehlgeschlagen" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" ++msgstr "%d Fragmente fehlgeschlagen" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d Fragmente erzeugt" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" +-msgstr "%d ICMP Nachrichten empfangen" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" ++msgstr "%d ICMP-Nachrichten empfangen" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." +-msgstr "%d eingegangene ICMP Nachrichten fehlgeschlagen" ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." ++msgstr "%d eingegangene ICMP-Nachrichten fehlgeschlagen" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "Ziel unerreichbar: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "Timeout beim Transit: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "Fehlerhafte Parameter: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "Source Quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "Umleitungen: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" +-msgstr "Echo Requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" ++msgstr "Echo Anfragen: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "Echo Antworten: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "Zeitstempelanfragen: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "Zeitstempelantworten: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "Adressmaskenanfragen: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "Adressmaskenantworten" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "Adressmaskenantworten: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d ICMP-Nachrichten geschickt" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" +-msgstr "%d ICMP Nachrichten fehlgeschlagen" +- + #: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" ++msgstr "%d ICMP-Nachrichten fehlgeschlagen" ++ ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "Zeitüberschreitung: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "Source Quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "Umleitungen: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "Echo Anfragen: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "Zeitstempel Anfragen: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "Zeitstempel Antworten: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "Adressmaskenanfragen: %d" + +-#: ../statistics.c:111 ++#: ../statistics.c:118 + #, c-format +-msgid "address mask replies: %d" +-msgstr "Adressmaskenantworten: %d" ++msgid "RTO algorithm is %s" ++msgstr "RTO-Algorithmus ist %s" ++ ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" ++msgstr "%d Verbindungen aktiv geöffnet" ++ ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" ++msgstr "%d Verbindungen passiv geöffnet" ++ ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" ++msgstr "%d fehlerhafte Verbindungsversuche" ++ ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" ++msgstr "%d Verbindungen aufgebaut" ++ ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" ++msgstr "%d Segmente empfangen" ++ ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" ++msgstr "%d Segmente abgeschickt" ++ ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." ++msgstr "%d fehlerhafte Segmente empfangen." ++ ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" ++msgstr "%d Rücksetzungen geschickt" ++ ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" ++msgstr "%d Pakete empfangen" ++ ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." ++msgstr "%d Pakete für unbekannte Ports empfangen." ++ ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" ++msgstr "%d Paketempfangsfehler" ++ ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" ++msgstr "%d Pakete geschickt" ++ ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d SYN-Cookies verschickt" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d SYN-Cookies empfangen" + +-#: ../statistics.c:116 ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d ungültige SYN-Cookies empfangen" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d Rücksetzungen für embrionische SYN_RECV-Sockets" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange weggeworfen" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d Pakete aus der ungeordneten Warteschlange wegen Pufferüberlauf weggeworfen" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d ICMP-Pakete weggeworfen die außerhalb des Fensters waren" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d ICMP-Pakete verworfen weil Socket gesperrt war" ++ ++#: ../statistics.c:160 + #, c-format +-msgid "RTO algorithm is %s" +-msgstr "RTO Algorithmus is %s" ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" + +-#: ../statistics.c:120 ++#: ../statistics.c:161 + #, c-format +-msgid "%d active connections openings" +-msgstr "%d Verbindungen aktiv geöffnet" ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" + +-#: ../statistics.c:121 ++#: ../statistics.c:162 + #, c-format +-msgid "%d passive connection openings" +-msgstr "%d Verbindungen passiv geöffnet" ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" + +-#: ../statistics.c:122 ++#: ../statistics.c:163 + #, c-format +-msgid "%d failed connection attempts" +-msgstr "%d fehlerhafte Verbindungsversuche" ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" + +-#: ../statistics.c:123 ++#: ../statistics.c:165 + #, c-format +-msgid "%d connection resets received" +-msgstr "%d Verbindungsrücksetzungen empfangen" ++msgid "%u active connections rejected because of time stamp" ++msgstr "" + +-#: ../statistics.c:124 ++#: ../statistics.c:167 + #, c-format +-msgid "%d connections established" +-msgstr "%d Verbindungen aufgebaut" ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" + +-#: ../statistics.c:125 ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" ++msgstr "%d Pakete geschickt" ++ ++#: ../statistics.c:170 + #, c-format +-msgid "%d segments received" +-msgstr "%d Segmente empfangen" ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" + +-#: ../statistics.c:126 ++#: ../statistics.c:172 + #, c-format +-msgid "%d segments send out" +-msgstr "%d Segmente abgeschickt" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:127 ++#: ../statistics.c:173 + #, c-format +-msgid "%d segments retransmited" +-msgstr "%d Segmente erneut geschickt" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:128 ++#: ../statistics.c:175 + #, c-format +-msgid "%d bad segments received." +-msgstr "%d fehlerhafte Segmente empfangen." ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" + +-#: ../statistics.c:129 ++#: ../statistics.c:176 + #, c-format +-msgid "%d resets sent" +-msgstr "%d Rücksetzungen geschickt" ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" + +-#: ../statistics.c:134 ++#: ../statistics.c:178 + #, c-format +-msgid "%d packets received" ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++ ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" + msgstr "%d Pakete empfangen" + +-#: ../statistics.c:135 ++#: ../statistics.c:184 + #, c-format +-msgid "%d packets to unknown port received." ++msgid "%u packets header predicted and directly queued to user" ++msgstr "" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" ++ ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" + msgstr "%d Pakete für unbekannte Ports empfangen." + +-#: ../statistics.c:136 ++#: ../statistics.c:189 + #, c-format +-msgid "%d packet receive errors" +-msgstr "%d Paketempfangsfehler" ++msgid "%u predicted acknowledgments" ++msgstr "" + +-#: ../statistics.c:137 ++#: ../statistics.c:190 + #, c-format +-msgid "%d packets sent" +-msgstr "%d Pakete geschickt" ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" + +-#: ../statistics.c:142 ++#: ../statistics.c:191 + #, c-format +-msgid "%d SYN cookies sent" +-msgstr "%d SYN-Cookies verschickt" ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" + +-#: ../statistics.c:143 ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d fehlerhafte Segmente empfangen." ++ ++#: ../statistics.c:193 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d SYN-Cookies empfangen" ++msgid "Detected reordering %u times using FACK" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:194 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d ungültige SYN-Cookies empfangen" ++msgid "Detected reordering %u times using SACK" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:195 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d Rücksetzungen fuer embrionische SYN_RECV Sockets" ++msgid "Detected reordering %u times using time stamp" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:196 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "Detected reordering %u times using reno fast retransmit" + msgstr "" +-"%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange " +-"weggeworfen" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:197 + #, c-format +-msgid "%d packets pruned from out-of-order queue" +-msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen" ++msgid "%u congestion windows fully recovered" ++msgstr "" + +-#: ../statistics.c:152 ++#: ../statistics.c:198 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u congestion windows partially recovered using Hoe heuristic" + msgstr "" +-"%d Pakete aus der ungeordneten Warteschlange wegen Pufferüberlauf weggeworfen" + +-#: ../statistics.c:154 ++#: ../statistics.c:199 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d ICMP Pakete weggeworfen die auserhalb des Fensters waren" ++msgid "%u congestion window recovered using DSACK" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d Rücksetzungen geschickt" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d Segmente erneut geschickt" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d fehlgeschlagene Paketdefragmentierungen" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d Pakete wegen Socketpufferüberlauf aus der Empfangswarteschlange weggeworfen" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d Pakete empfangen" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d Pakete insgesamt empfangen" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d Verbindungsrücksetzungen empfangen" ++ ++#: ../statistics.c:220 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d ICMP Pakete verworfen weil Socket gesperrt war" ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d Verbindungsrücksetzungen empfangen" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "aktiviert" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "deaktiviert" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "Unbekannter Titel %s\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "Fehler beim Parsen von /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "Kann /proc/net/snmp nicht öffnen" + + #: ../lib/activate.c:69 + #, c-format + msgid "Hardware type `%s' not supported.\n" +-msgstr "Hardwaretyp ,,%s'' nicht unterstützt.\n" ++msgstr "Hardwaretyp »%s« nicht unterstützt.\n" + + #: ../lib/activate.c:73 + #, c-format + msgid "Cannot change line discipline to `%s'.\n" +-msgstr "Kann line discipline nicht auf ``%s'' setzen.\n" ++msgstr "Kann line discipline nicht auf »%s« setzen.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" +-msgstr "UNIX Domain" ++msgstr "UNIX-Domain" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" +-msgstr "DARPA Internet" ++msgstr "DARPA-Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Bitte nur eine Adressfamilie angeben.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Zu viele Adressfamilien angegeben.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" +-msgstr "Unbekannte Adressfamilie `%s'.\n" +- +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[NICHT GESETZT]" ++msgstr "Unbekannte Adressfamilie »%s«.\n" + +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): Ungültige ARCnet-Adresse!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): angehängt : ignoriert!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): Nachfolgender Müll!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" +-msgstr "Fehlerhafte Ash Adresse" ++msgstr "Fehlerhafte Ash-Adresse" ++ ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[NICHT GESETZT]" + + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" +@@ -1898,22 +2168,21 @@ + msgstr "Rufzeichen zu lang" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Kernel AX.25 Routentabelle\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Ziel SStelle Benutzer\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "DDP-Routentabelle wird noch nicht unterstützt.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1929,153 +2198,168 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): Nachfolgender Müll!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): Ungültige FDDI-Adresse!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): Nachfolgender Müll!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Adressfamilie `%s' wird nicht unterstützt.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Kein Routen für Adressfamilie `%s'.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): Ungültige HIPPI-Adresse!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): Nachfolgender Müll!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Lokale Schleife" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "Serielle IP" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "Serielle VJ-IP" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6-bit Serielle IP" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "VJ 6-bit Serielle IP" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptive Serielle IP" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" +-msgstr "Punkt-zu-Punkt Verbindung" ++msgstr "Punkt-zu-Punkt-Verbindung" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Frame Relay Access Device" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-nach-IPv4" + +-#: ../lib/hw.c:198 +-#, fuzzy ++#: ../lib/hw.c:214 + msgid "IrLAP" +-msgstr "LAPB" ++msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: nicht unterstützte Adressfamilie %d !\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "UNBEKANNT" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) ist auf diesem System nicht konfiguriert.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" +-msgstr "Kernel IPv6 Routentabelle\n" ++msgstr "Kernel-IPv6-Routentabelle\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" +-msgstr "" +-"Ziel Nächster Hop " +-" Flags Metric Ref Benutzer Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "Ziel Nächster Hop Flags Metric Ref Benutzer Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Kernel IPv6 Nachbarcache\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2083,39 +2367,45 @@ + "Nachbar HW-Adresse Iface Flags " + "Ref Zustand\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +-msgstr "" +-"Nachbar HW-Adresse Iface Flags " +-"Ref Zustand Stale(sec) Löschen(sec)\n" ++msgstr "Nachbar HW-Adresse Iface Flags Ref Zustand Stale(sec) Löschen(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Benutzung: inet6_route [-vF] del Ziel\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Ziel [gw Gateway] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NICHT unterstützt\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" +-msgstr ",,Flush'' für IPv6 Routentabelle nicht unterstützt\n" ++msgstr "»Flush« für IPv6-Routentabelle nicht unterstützt\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" +-msgstr "Kernel IP Routentabelle\n" ++msgstr "Kernel-IP-Routentabelle\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2124,6 +2414,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2132,6 +2423,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2140,10 +2432,12 @@ + "Iface MSS Fenster irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" +-msgstr "Kernel IP Routencache\n" ++msgstr "Kernel-IP-Routencache\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2152,6 +2446,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2160,6 +2455,7 @@ + "Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2168,6 +2464,7 @@ + "Iface MSS Fenster irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2175,37 +2472,39 @@ + "Quelle Ziel Gateway Flags Metrik Ref Ben " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +-msgstr "" +-"Benutzung: inet_route [-vF] del {-host|-net} Ziel[/prefix] [gw Gw] [metric " +-"M] [[dev] If]\n" ++msgstr "Benutzung: inet_route [-vF] del {-host|-net} Ziel[/Präfix] [gw Gw] [metric M] [[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" +-msgstr "" +-" inet_route [-vF] add {-host|-net} Ziel[/Prefix] [gw Gw] [metric M]\n" ++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Präfix] [gw Gw] [metric M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" +-msgstr "" +-" inet_route [-vF] add {-host|-net} Ziel[/Präfix] [metric M] reject\n" ++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Präfix] [metric M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NICHT unterstützt\n" + +@@ -2215,15 +2514,17 @@ + msgstr "route: %s: Netzadresse als Gateway ungültig!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: Ungültige MSS.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Ungültige Fenstergröße.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: Ungültige Start-RTT.\n" + +@@ -2238,126 +2539,408 @@ + msgstr "Route: Fehlerhafte Netzmaske %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: Netzmaske passt nicht zur Routenadresse\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" +-msgstr ",,Flush'' der Inet-Routentabelle nicht unterstützt\n" ++msgstr "»Flush« der Inet-Routentabelle nicht unterstützt\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" +-msgstr "Änderung des ,,Inet'' Routencaches nicht unterstützt\n" ++msgstr "Änderung des »Inet« Routencaches nicht unterstützt\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX ist auf diesem System nicht konfiguriert.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" +-msgstr "Kernel IPX Routentabelle\n" ++msgstr "Kernel-IPX-Routentabelle\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" +-msgstr "Ziel Router Netz Router Knoten\n" ++msgstr "Ziel Router-Netz Router-Knoten\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" +-msgstr "IPX: dies muß noch geschrieben werden\n" ++msgstr "IPX: dies muss noch geschrieben werden\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP-Maskierungseinträge\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "Prot expire Quelle Ziel Ports\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"Prot Ablauf Anf-Seq Delta Prevd Quelle Ziel " +-" Ports\n" ++"Prot Ablauf Anf-Seq Delta Prevd Quelle " ++"Ziel Ports\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM ist auf diesem System nicht verfügbar.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" +-msgstr "Kernel NET/ROM Routentabelle\n" ++msgstr "Kernel-NET/ROM-Routentabelle\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Ziel Mnemonic Qualität Nachbar Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" +-msgstr "NET/ROM Benutzung\n" ++msgstr "NET/ROM-Benutzung\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" +-msgstr "NET/ROM: Dies muß noch geschrieben werden\n" ++msgstr "NET/ROM: Dies muss noch geschrieben werden\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Mit diesem Programm kann PPP nicht gestartet werden.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" +-msgstr "Bitte benutzen sie pppd.\n" ++msgstr "Bitte benutzen Sie pppd.\n" + + #: ../lib/rose.c:87 + msgid "Node address must be ten digits" +-msgstr "Knotenadresse muß zehn Ziffern haben" ++msgstr "Knotenadresse muss zehn Ziffern haben" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE ist auf diesem System nicht verfügbar.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" +-msgstr "ROSE Kernel Routentabelle\n" ++msgstr "ROSE-Kernel-Routentabelle\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): ungültige Tokenringadresse!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): nachfolgend : ignoriert!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): nachfolgender Müll!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" +-msgstr "Warnung: Keine INET Sockets verfügbar: %s\n" ++msgstr "Warnung: Keine INET-Sockets verfügbar: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Gerät nicht gefunden" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - keine Statistiken verfügbar -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[KEINE FLAGS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Protokoll:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "Hardware Adresse %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Medium:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s Adresse:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-z-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Maske:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6-Adresse: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Gültigkeitsbereich:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Verbindung" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Standort" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Kompatibilität" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Maschine" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Unbekannt" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/Ethernet II Adresse:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/Ethernet SNAP Adresse:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/Ethernet 802.2 Adresse:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/Ethernet 802.3 Adresse:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " EtherTalk Phase 2 Adresse:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " econet Adresse:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[KEINE FLAGS] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "PUNKTZUPUNKT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metrik:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Empfangene Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Rahmen:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " komprimiert:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Verschickte Pakete:%lu Fehler:%lu Weggeworfen:%lu Überlauf:%lu Träger:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " Kollisionen:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "Komprimiert:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "Sendewarteschlangenlänge:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Interrupt:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Basisadresse:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Speicher:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "DMA Kanal:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Keine benutzbaren Adressfamilien gefunden.\n" + +@@ -2369,41 +2952,44 @@ + #: ../lib/util-ank.c:238 + #, c-format + msgid "ip: %s is invalid inet prefix\n" +-msgstr "ip: %s ist ein ungültiges INET-Prefix\n" ++msgstr "ip: %s ist ein ungültiges INET-Präfix\n" + + #: ../lib/util-ank.c:248 + #, c-format + msgid "ip: %s is invalid IPv4 address\n" +-msgstr "ip: %s ist eine ungültige IPv4 Adresse\n" ++msgstr "ip: %s ist eine ungültige IPv4-Adresse\n" + + #: ../lib/util-ank.c:256 + #, c-format + msgid "ip: argument is wrong: %s\n" + msgstr "ip: Fehlerhaftes Argument: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Benutzung: ipmaddr [ add | del ] MULTIADR dev NAME\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev NAME ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "familie %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " Benutzer %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Kann Socket nicht öffnen" + +@@ -2418,13 +3004,14 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: Kann PID-Datei nicht schreiben\n" + + #: ../slattach.c:202 + #, c-format + msgid "slattach: tty_lock: UUCP user %s unknown!\n" +-msgstr "slattach: tty_lock: UUCP Benutzer %s unbekannt!\n" ++msgstr "slattach: tty_lock: UUCP-Benutzer %s unbekannt!\n" + + #: ../slattach.c:430 + #, c-format +@@ -2436,39 +3023,71 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: name zu lang\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: kann aktuellen Zustand nicht auslesen!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + "slattach: tty_open: Kann augenblicklichen Leitungszustand nicht auslesen!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: Kann RAW-Modus nicht setzen!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: Kann %s bps nicht setzen!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: Kann 8N1-Modus nicht setzen!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "%s gestartet" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " auf %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr " Schnittstelle: %s\n" ++ ++msgid "" ++" arp [-v] [] [-i ] -s [netmask ] pub " ++"<-''-\n" ++msgstr "" ++" arp [-v] [] [-i ] -s [netmask ] pub\n" ++ ++msgid "%s: unknown interface: %s\n" ++msgstr "%s: unbekannte Schnittstelle: %s\n" ++ ++msgid "address mask replies" ++msgstr "Adressmaskenantworten" ++ ++msgid "unknown title %s\n" ++msgstr "Unbekannter Titel %s\n" ++ ++msgid "Routing table for `ddp' not yet supported.\n" ++msgstr "DDP-Routentabelle wird noch nicht unterstützt.\n" +--- net-tools-1.60.orig/po/fr.po ++++ net-tools-1.60/po/fr.po +@@ -4,7 +4,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools 1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1998-03-01 00:02+0100\n" + "Last-Translator: J.M.Vansteene \n" + "Language-Team:\n" +@@ -12,273 +13,277 @@ + "Content-Type: text/plain; charset=iso8859-1\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: nécessite un nom d'hôte\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Pas d'entrée ARP pour %s\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, fuzzy, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "rarp: ne peut définir l'entrée depuis %s:%u\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: nécessite une adresse matériel\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: adresse matériel invalide\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: ne peut ouvrir le fichier ether %s !\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: erreur de format ligne %u du fichier ether %s !\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "arp: ne peut définir l'entrée en ligne %u du fichier ether %s !\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresse\t\t\tTypeMap\tAdresseMat\t Indicateurs\t\t Iface\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "" ++msgstr "%s: interface inconnue: %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "" + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid " " + msgstr "" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "" + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Entrées: %d\tIgnorées: %d\tTrouvées: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: aucune correspondance trouvée dans %d entrées\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [] [-i ] [-a] [] <-Display ARP " + "cache\n" + msgstr "" + "Syntaxe:\n" +-" arp [-vn] [] [-i ] [-a] [] <-Affiche cache " +-"ARP\n" ++" arp [-vn] [] [-i ] [-a] [] <-Affiche cache ARP\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i ] -d [pub][nopub] <-Delete ARP " ++" arp [-v] [-i ] -d [pub] <-Delete ARP " + "entry\n" +-msgstr "" +-" arp [-v] [-i ] -d [pub][nopub] <-Supprime entrée " +-"ARP\n" ++msgstr " arp [-v] [-i ] -d [pub][nopub] <-Supprime entrée ARP\n" + +-#: ../arp.c:615 +-#, fuzzy ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [] [-i ] -f [] <-Add entry from " ++" arp [-vnD] [] [-i ] -f [] <-Add entry from " + "file\n" +-msgstr "" +-" arp [-vnD] [] [-i ] -f <-Ajout entrée " +-"depuis fichier\n" ++msgstr " arp [-vnD] [] [-i ] -f <-Ajout entrée depuis fichier\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -s [temp][nopub] <-Add " ++" arp [-v] [] [-i ] -s [temp] <-Add " + "entry\n" +-msgstr "" +-" arp [-v] [] [-i ] -s [temp][nopub] <-Ajout " +-"entrée\n" ++msgstr " arp [-v] [] [-i ] -s [temp][nopub] <-Ajout entrée\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [] [-i ] -s [netmask ] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [] [-i ] -s [netmask ] pub " +-"<-''-\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -Ds [netmask ] pub " ++" arp [-v] [] [-i ] -Ds [netmask ] pub " + "<-''-\n" + "\n" + msgstr "" +-" arp [-v] [] [-i ] -Ds [netmask ] pub " +-"<-''-\n" ++" arp [-v] [] [-i ] -Ds [netmask ] pub <-''-\n" + "\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +-msgstr "" +-" -a affiche (tous) les hôtes en style BSD\n" ++msgstr " -a affiche (tous) les hôtes en style BSD\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set définit une nouvelle entrée ARP\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete supprime une entrée\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr " -v, --verbose mode verbeux\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr " -n, --numeric ne résout pas les noms\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" +-msgstr "" +-" -i, --device spécifie l'interface réseau (p.ex. eth0)\n" ++msgstr " -i, --device spécifie l'interface réseau (p.ex. eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read from given device\n" +-msgstr "" +-" -D, --use-device lit l' depuis le périphérique\n" ++msgstr " -D, --use-device lit l' depuis le périphérique\n" + +-#: ../arp.c:627 +-#, fuzzy ++#: ../arp.c:639 ++#, fuzzy, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -r, --route affiche la table de routage\n" + +-#: ../arp.c:628 +-#, fuzzy ++#: ../arp.c:640 ++#, fuzzy, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file lit les nouvelles entrées dans le fichier\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " =Use '-H ' to specify hardware address type. Default: %s\n" +-msgstr "" +-" =Utilisez '-H ' pour spécifier le type d'adresse matériel. Défaut: " +-"%s\n" ++msgstr " =Utilisez '-H ' pour spécifier le type d'adresse matériel. Défaut: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Liste les types de matériels supportant ARP:\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "%s: type de matétiel non supporté !\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "%s: famille d'adresses non supportée !\n" + +-#: ../arp.c:703 +-#, fuzzy ++#: ../arp.c:716 ++#, fuzzy, c-format + msgid "arp: -N not yet supported.\n" + msgstr "Table de routage pour `ddp' pas encore supporté.\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: %s: famille d'adresses inconnue.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: %s: type de matériel inconnu.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: le noyau ne supporte que 'inet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: %s: type de matériel sans support ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Définit le nom de noeud à `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: vous devez être root pour changer le nom de noeud\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "%s: nom trop long\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Définit le nom d'hôte à `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: vous devez être root pour changer le nom d'hôte\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Définit le nom de domaine à `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: vous devez être root pour changer le nom de domaine\n" +@@ -303,38 +308,36 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Résultat : h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: ne peut ouvrir `%s'\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" +-msgstr "" +-"Syntaxe : hostname [-v] {hôte|-F fichier} définit le nom d'hôte (depuis " +-"le fichier)\n" ++msgstr "Syntaxe : hostname [-v] {hôte|-F fichier} définit le nom d'hôte (depuis le fichier)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" +-msgstr "" +-" domainname [-v] {domaine_nis|-F fichier} définit le domaine NIS " +-"(depuis le fichier)\n" ++msgstr " domainname [-v] {domaine_nis|-F fichier} définit le domaine NIS (depuis le fichier)\n" + +-#: ../hostname.c:226 +-#, fuzzy ++#: ../hostname.c:225 ++#, fuzzy, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +-msgstr "" +-" nodename [-v] {nom_noeud|-F fichier} Définit le nom de noeud " +-"DECnet (depuis le fichier)\n" ++msgstr " nodename [-v] {nom_noeud|-F fichier} Définit le nom de noeud DECnet (depuis le fichier)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] affiche le nom formatté\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -342,7 +345,8 @@ + " hostname [-v] affiche le nom d'hôte\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -350,7 +354,8 @@ + " hostname -V|--version|-h|--help affiche des infos et termine\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -358,45 +363,52 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short nom d'hôte court\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias noms d'alias\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address adresses de l'hôte\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long nom d'hôte long (FQDN)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain nom de domaine DNS\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis nom de domaine NIS/YP\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node nom de noeud DECnet\n" + +-#: ../hostname.c:241 +-#, fuzzy ++#: ../hostname.c:240 ++#, fuzzy, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" +-" -F, --file lit le nom d'hôte ou le nom de domaine NIS depuis " +-"le fichier\n" ++" -F, --file lit le nom d'hôte ou le nom de domaine NIS depuis le fichier\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -411,15 +423,16 @@ + msgstr "%s: Vous ne pouvez changer le nom de domaine DNS avec cette commande\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + "\n" +-"Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez " +-"changer le\n" ++"Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez changer le\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + "nom de domaine DNS (qui fait partie du FQDN) dans le fichier /etc/hosts.\n" +@@ -439,554 +452,453 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Lien encap:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Indic\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "HWaddr %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Media:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Pas de support de INET sur ce système.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s adr:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] [[]
]\n" ++msgstr "" ++"Syntaxe:\n" ++" ifconfig [-a] [-i] [-v] [[] ]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-t-P:%s " ++msgid " [add
[/]]\n" ++msgstr " [add [/]]\n" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " Bcast:%s " ++msgid " [del
[/]]\n" ++msgstr " [del [/]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr " Masque:%s\n" ++msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" ++msgstr " [[-]broadcast []] [[-]pointopoint []]\n" + +-#: ../ifconfig.c:201 +-#, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " adr inet6: %s/%d" ++#: ../ifconfig.c:207 ++#, fuzzy, c-format ++msgid " [netmask
] [dstaddr
] [tunnel
]\n" ++msgstr " [netmask ] [dstaddr ] [tunnel ]\n" + +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Scope:" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill ] [keepalive ]\n" ++msgstr " [outfill ] [keepalive ]\n" + +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Global" ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw
] [metric ] [mtu ]\n" ++msgstr " [hw ] [metric ] [mtu ]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Lien" ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Site" ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + + #: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Compat" ++#, c-format ++msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" ++msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" + +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Hôte" ++#: ../ifconfig.c:217 ++#, fuzzy, c-format ++msgid " [txqueuelen ]\n" ++msgstr " [txqueuelen longueur]\n" + +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Inconnu" ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:236 ++#: ../ifconfig.c:222 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " adr IPX/Ethernet II:%s\n" ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:224 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " adr IPX/Ethernet SNAP:%s\n" ++msgid " =Hardware Type.\n" ++msgstr " =Type de matériel.\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:225 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " adr IPX/Ethernet 802.2:%s\n" ++msgid " List of possible hardware types:\n" ++msgstr " Liste des types de matériels possibles:\n" + +-#: ../ifconfig.c:245 ++#. 1 = ARPable ++#: ../ifconfig.c:227 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " adr IPX/Ethernet 802.3:%s\n" ++msgid " =Address family. Default: %s\n" ++msgstr " =famille d'Adresses. Défaut: %s\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:228 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " adr EtherTalk Phase 2:%s\n" ++msgid " List of possible address families:\n" ++msgstr " Liste des familles d'adresses possibles:\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:303 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " adr econet:%s\n" ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[PAS INDICATEURS] " ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "UP " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Type de média inconnu.\n" + +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "BROADCAST " ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "LOOPBACK " ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "RUNNING " ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NOARP " ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISC " ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: adresse %s invalide.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " +- +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " +- +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " +- +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " +- +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " +- +-#: ../ifconfig.c:302 +-#, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metric:%d" +- +-#: ../ifconfig.c:306 +-#, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" +- +-#: ../ifconfig.c:320 +-#, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "Paquets Reçus:%lu erreurs:%lu jetés:%lu débordements:%lu trames:%lu\n" +- +-#: ../ifconfig.c:325 +-#, c-format +-msgid " compressed:%lu\n" +-msgstr " compressés:%lu\n" +- +-#: ../ifconfig.c:329 +-#, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" +-msgstr "" +-"Paquets transmis:%lu erreurs:%lu jetés:%lu débordements:%lu carrier:%lu\n" +- +-#: ../ifconfig.c:333 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 + #, c-format +-msgid " collisions:%lu " +-msgstr " collisions:%lu " +- +-#: ../ifconfig.c:335 +-#, c-format +-msgid "compressed:%lu " +-msgstr "compressés:%lu " +- +-#: ../ifconfig.c:337 +-#, c-format +-msgid "txqueuelen:%d " +-msgstr "lg file transmission:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "Interruption:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Adresse de base:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Mémoire:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "Canal DMA:%x " ++msgid "No support for INET6 on this system.\n" ++msgstr "Pas de support de INET6 sur ce système.\n" + +-#: ../ifconfig.c:384 ../ifconfig.c:405 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: interface inconnue: %s\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] [[]
]\n" +-msgstr "" +-"Syntaxe:\n" +-" ifconfig [-a] [-i] [-v] [[] ]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add
[/]]\n" +-msgstr " [add [/]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del
[/]]\n" +-msgstr " [del [/]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" +-msgstr " [[-]broadcast []] [[-]pointopoint []]\n" +- +-#: ../ifconfig.c:433 +-#, fuzzy +-msgid " [netmask
] [dstaddr
] [tunnel
]\n" +-msgstr " [netmask ] [dstaddr ] [tunnel ]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill ] [keepalive ]\n" +-msgstr " [outfill ] [keepalive ]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw
] [metric ] [mtu ]\n" +-msgstr " [hw ] [metric ] [mtu ]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" +-msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" +- +-#: ../ifconfig.c:443 +-#, fuzzy +-msgid " [txqueuelen ]\n" +-msgstr " [txqueuelen longueur]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" ++msgid "Interface %s not initialized\n" + msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " =Hardware Type.\n" +-msgstr " =Type de matériel.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Liste des types de matériels possibles:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " =Address family. Default: %s\n" +-msgstr " =famille d'Adresses. Défaut: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Liste des familles d'adresses possibles:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Type de média inconnu.\n" + +-#: ../ifconfig.c:881 +-#, c-format +-msgid "%s: invalid %s address.\n" ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" + msgstr "%s: adresse %s invalide.\n" + +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Pas de support de INET6 sur ce système.\n" +- +-#: ../ifconfig.c:983 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "Suppression d'adresses pas supporté par ce système.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Pas de support de INET sur ce système.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Ne sait pas comment définir les adresses pour la famille %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Pas de support de ECONET sur ce système.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Ne sait pas comment définir les adresses pour la famille %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +-msgstr "" +-"(Pas d'infos lues pour \"-p\": geteuid()=%d mais vous devez être root.)\n" ++msgstr "(Pas d'infos lues pour \"-p\": geteuid()=%d mais vous devez être root.)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" + "(Tous les processus ne peuvent être identifiés, les infos sur les processus\n" +-"non possédés ne seront pas affichées, vous devez être root pour les voir " +-"toutes.)\n" ++"non possédés ne seront pas affichées, vous devez être root pour les voir toutes.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "LISTENING" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN SENT" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC SENT" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "ESTABLISHED" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "sockets NET/ROM actives\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" +-"Utilisatr Dest Source Periph Etat Vr/Vs Send-Q " +-"Recv-Q\n" ++"Utilisatr Dest Source Periph Etat Vr/Vs Send-Q Recv-" ++"Q\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "CLOSE" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "LAST_ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "CLOSING" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "attention, ligne igmp6 en erreur %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: famille d'adresses pas supportée %d !\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "attention, ligne igmp6 en erreur %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Sockets AX.25 actives\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Dest Source Periph Etat Vr/Vs Send-Q Recv-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "attention, ligne tcp en erreur.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "off (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, fuzzy, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "unkn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "attention, ligne udp en erreur.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "INCONNU" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "on%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "attention, ligne raw en erreur.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "attention, ligne unix en erreur.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "LIBRE" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "ENCONNEXION" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "CONNECTE" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "ENDECONNEXION" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Sockets du domaine UNIX actives" + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(serveurs et établies)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(seulement serveurs)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(sans serveurs)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -994,32 +906,36 @@ + "\n" + "Proto RefCpt Indicatrs Type Etat I-Node" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Chemin\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM SENT" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "RECOVERY" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Sockets AX.25 actives\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Dest Source Periph Etat Vr/Vs Send-Q Recv-Q\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " +@@ -1029,55 +945,53 @@ + "Proto Recv-Q Send-Q Adresse locale Adresse distante " + "Etat" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr "Utilisatr" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "ESTAB" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "UNK." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr "" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[PAS INDICATEURS]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Table d'interfaces noyau\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Indic\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "informations d'interface manquantes" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" +-"syntaxe: netstat [-veenNcCF] [] -r netstat " +-"{-V|--version|-h|--help}\n" ++"syntaxe: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [ ...]\n" + msgstr " netstat [-vnNcaeol] [ ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1085,27 +999,30 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route affiche la table de routage\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces affiche la table d'interfaces\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups affiche les membres d'un groupe multicast\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" +-msgstr "" +-" -s, --statistics affiche les statistiques réseau (comme " +-"SNMP)\n" ++msgstr " -s, --statistics affiche les statistiques réseau (comme SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1113,23 +1030,41 @@ + " -M, --masquerade affiche les connexions masquées\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " -n, --numeric ne résout pas les noms\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic résoud les noms matériels\n" + +-#: ../netstat.c:1439 ../route.c:88 +-#, fuzzy ++#: ../netstat.c:1509 ../route.c:88 ++#, fuzzy, c-format + msgid " -e, --extend display other/more information\n" + msgstr "" + " -e, --extend affiche d'autres/plus d'informations\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs affiche le nom du programme/PID des " + "sockets\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1137,32 +1072,31 @@ + " -c, --continuous listing continu\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" +-msgstr "" +-" -l, --listening affiche les sockets du serveur à l'écoute\n" ++msgstr " -l, --listening affiche les sockets du serveur à l'écoute\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" +-msgstr "" +-" -a, --all, --listening affiche toutes les prises (défaut: " +-"connectés)\n" ++msgstr " -a, --all, --listening affiche toutes les prises (défaut: connectés)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers affiche les timers\n" + +-#: ../netstat.c:1445 ../route.c:89 +-#, fuzzy ++#: ../netstat.c:1515 ../route.c:89 ++#, fuzzy, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +-msgstr "" +-" -F, --fib affiche la Forwarding Infomation Base " +-"(défaut)\n" ++msgstr " -F, --fib affiche la Forwarding Infomation Base (défaut)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" +@@ -1170,110 +1104,118 @@ + " -C, --cache affiche le cache de routage au lieu de FIB\n" + "\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " =Use '-A ' or '--' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " =Use '-6|-4' or '-A ' or '--'; default: %s\n" + msgstr " =Utiliser '-A ' ou '--' Défaut: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Liste les familles d'adresses possibles (supportant le routage):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Connexions Internet actives " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" +-"Proto Recv-Q Send-Q Adresse locale Adresse distante Etat " +-" " ++"Proto Recv-Q Send-Q Adresse locale Adresse distante " ++"Etat " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " Utilisatr Inode " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Timer" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Ce noyau ne supporte pas RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "pas d'entrée RARP pour %s.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "%s: mauvaise adresse matériel\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: ne peut ouvrir le fichier %s:%s.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: erreur de format à %s:%u\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: %s: hôte inconnu\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: ne peut définir l'entrée depuis %s:%u\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" +-msgstr "" +-"Usage: rarp -a liste les entrées en cache.\n" ++msgstr "Usage: rarp -a liste les entrées en cache.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d delete entry from cache.\n" +-msgstr "" +-" rarp -d supprime l'entrée du cache.\n" ++msgstr " rarp -d supprime l'entrée du cache.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [] -s add entry to cache.\n" +-msgstr "" +-" rarp [] -s ajoute l'entrée au cache.\n" ++msgstr " rarp [] -s ajoute l'entrée au cache.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" +-msgstr "" +-" rarp -f ajoute les entrées depuis " +-"/etc/ethers.\n" ++msgstr " rarp -f ajoute les entrées depuis /etc/ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1281,24 +1223,26 @@ + " rarp -V affiche la version.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "%s: combinaison d'options illégales.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: %s: type de matériel inconnu.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [] List kernel routing tables\n" + msgstr "" + "Syntaxe: route [-nNvee] [-FC] [] Liste les tables de routage " + "noyau\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1307,15 +1251,15 @@ + "pour AF.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [] Detailed usage syntax for " + "specified AF.\n" +-msgstr "" +-" route {-h|--help} [] Utilisation détaillée pour l'AF " +-"spécifié.\n" ++msgstr " route {-h|--help} [] Utilisation détaillée pour l'AF spécifié.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1325,16 +1269,23 @@ + "termine.\n" + "\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " =Use '-A ' or '--'; default: %s\n" ++msgstr " =Utiliser '-A ' ou '--' Défaut: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Syntaxe: plipconfig [-a] [-i] [-v] interface\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 +-#, fuzzy ++#, fuzzy, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V\n" + +@@ -1343,474 +1294,763 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr "" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr "" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr "" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr "" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr "" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "" + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + #, fuzzy + msgid "unknown" + msgstr "Inconnu" + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr "" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr "" + +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr "" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr "" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "Histogramme d'entrée ICMP" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "Histogramme de sortie ICMP" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Réacheminement est %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "TTL par défaut est %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "%d paquets totaux reçus" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "%d avec en-tête invalides" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "%d avec adresses invalides" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "%d réacheminées" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "%d avec protocole inconnu" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "%d paquets entrant jetés" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "%d paquets entrant délivrés" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "%d requêtes envoyées" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "%d paquets sortant jetés" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "%d jetés pour cause de route manquante" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "%d fragments jetés après timeout" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "%d nécessitant un réassemblage" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "%d paquets réassemblés correctement" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "%d paquets mal réassemblés" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "%d fragments reçus correctement" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "%d fragments en échec" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "%d fragments créés" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "%d messages ICMP reçus" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "%d messages d'entrée ICMP en échec" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "destination injoignable: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "timeout en transmission: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "mauvais paramètre: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "Source Quenchs: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "Redirections: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "requêtes echo: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "réponses echo: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "requêtes datées: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "réponses datées: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "requêtes de masque d'adresse: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "réponses de masque d'adresses" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "réponses de masque d'adresse: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "%d messages ICMP envoyés" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "%d messages ICMP en échec" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "temps dépassé: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "Source Quench: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "redirection: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "requête echo: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "requêtes datées: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "réponses datées: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "requêtes de masque d'adresse: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "réponses de masque d'adresse: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "algorithme RTO est %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "%d ouvertures de connexions actives" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "%d ouvertures de connexions passives" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "%d tentatives de connexion échouées" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "%d réinitialisations de connexions reçues" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "%d connexions établies" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "%d segments reçus" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "%d segments envoyés" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "%d segments retransmis" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "%d mauvais segments reçus." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "%d réinitialisations envoyées" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "%d paquets reçus" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "%d paquets reçus pour un port inconnu" + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "%d erreurs en réception de paquets" + +-#: ../statistics.c:137 ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" ++msgstr "%d paquets envoyés" ++ ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" ++msgstr "%d SYN-Cookies reçus" ++ ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" ++msgstr "%d SYN-Cookies reçus" ++ ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%d SYN-Cookies reçus incorrects" ++ ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%d réinitialisations reçues pour sockets SYN_RECV embryonnaires" ++ ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%d paquets supprimés de la file de réception en raison de tampon de sockets plein" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%d paquets supprimés de la file hors service" ++ ++#: ../statistics.c:154 ++#, fuzzy, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%d paquets jetés de la file hors service en raison de tampon de sockets plein" ++ ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%d ICMP paquets jetés car hors de la fenêtre" ++ ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%d paquets ICMP jetés car la socket a été vérouillée" ++ ++#: ../statistics.c:160 + #, c-format +-msgid "%d packets sent" ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" + msgstr "%d paquets envoyés" + +-#: ../statistics.c:142 ++#: ../statistics.c:170 + #, c-format +-msgid "%d SYN cookies sent" ++msgid "%u delayed acks further delayed because of locked socket" + msgstr "" + +-#: ../statistics.c:143 ++#: ../statistics.c:172 + #, c-format +-msgid "%d SYN cookies received" +-msgstr "%d SYN-Cookies reçus" ++msgid "Quick ack mode was activated %u times" ++msgstr "" + +-#: ../statistics.c:144 ++#: ../statistics.c:173 + #, c-format +-msgid "%d invalid SYN cookies received" +-msgstr "%d SYN-Cookies reçus incorrects" ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" + +-#: ../statistics.c:146 ++#: ../statistics.c:175 + #, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" +-msgstr "%d réinitialisations reçues pour sockets SYN_RECV embryonnaires" ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" + +-#: ../statistics.c:148 ++#: ../statistics.c:176 + #, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++msgid "%u packets directly queued to recvmsg prequeue." + msgstr "" +-"%d paquets supprimés de la file de réception en raison de tampon de sockets " +-"plein" + +-#. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 + #, c-format +-msgid "%d packets pruned from out-of-order queue" ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" + msgstr "%d paquets supprimés de la file hors service" + +-#: ../statistics.c:152 ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "%d paquets reçus" ++ ++#: ../statistics.c:184 + #, c-format +-msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++msgid "%u packets header predicted and directly queued to user" + msgstr "" +-"%d paquets jetés de la file hors service en raison de tampon de sockets plein" + +-#: ../statistics.c:154 ++#: ../statistics.c:186 + #, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" +-msgstr "%d ICMP paquets jetés car hors de la fenêtre" ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" + +-#: ../statistics.c:156 ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "%d paquets reçus pour un port inconnu" ++ ++#: ../statistics.c:189 + #, c-format +-msgid "%d ICMP packets dropped because socket was locked" +-msgstr "%d paquets ICMP jetés car la socket a été vérouillée" ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "%d mauvais segments reçus." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "%d réinitialisations envoyées" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "%d segments retransmis" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%d segments retransmis" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "%d paquets mal réassemblés" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%d paquets supprimés de la file de réception en raison de tampon de sockets plein" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "%d paquets reçus" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%d paquets totaux reçus" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "%d réinitialisations de connexions reçues" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "%d réinitialisations de connexions reçues" + + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "activée" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "désactivée" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "titre inconnu %s\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "erreur d'analyse de /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "ne peut ouvrir /proc/net/snmp" + +@@ -1824,89 +2064,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Ne peut changer la discipline de ligne à `%s'.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "UNSPEC" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "Domaine UNIX" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Ne fournissez pas plus d'une famille d'adresses SVP.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Trop d'arguments de familles d'adresses.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Famille d'adresses inconnue `%s'.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[INDEFINI]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): adresse arcnet invalide !\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): restant : ignoré !\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): le restant à la poubelle !\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Adresse Ash malformée" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[INDEFINI]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Signal d'appel invalide" +@@ -1916,22 +2162,21 @@ + msgstr "Signal d'appel trop long" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 pas configuré sur ce système.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Table de routage AX.25 du noyau\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Destination Iface Utilisation\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Table de routage pour `ddp' pas encore supporté.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1947,153 +2192,171 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): le restant à la poubelle !\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): adresse fddi invalide!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): restant ignoré !\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): le restant à la poubelle !\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Famille d'adresses `%s' non supportée.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Pas de routage pour la famille d'adresses `%s'.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): adresse hippi invalide!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): restant ignoré !\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): le restant à la poubelle !\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Boucle locale" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "IP ligne série" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "IP ligne série - VJ " + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "IP ligne série - 6 bits" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "IP ligne série - 6 bits VJ" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "IP ligne série adaptative" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Protocole Point-à-Point" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Périphériue d'accès Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-dans-IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + #, fuzzy + msgid "IrLAP" + msgstr "LAPB" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: famille d'adresses non suportée %d !\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "INCONNU" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) pas configuré sur ce système.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Table de routage IPv6 du noyau\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Destination Prochain Hop " +-" Indic Metric Ref Utilis. Iface\n" ++"Destination Prochain " ++"Hop Indic Metric Ref Utilis. Iface\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache voisin IPv6 du noyau\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2101,39 +2364,45 @@ + "Voisin Adresse MAT Iface Indic " + "Ref Etat\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +-msgstr "" +-"Voisin Adresse MAT Iface Indic " +-"Ref Etat Bloqué(sec) Détuit(sec)\n" ++msgstr "Voisin Adresse MAT Iface Indic Ref Etat Bloqué(sec) Détuit(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Syntaxe: inet6_route [-vF] del Cible\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Cible [gw Gw] [metric M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush PAS supporté\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Flush de table de routage `inet6' pas supporté\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) pas configuré sur ce système.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Table de routage IP du noyau\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2142,26 +2411,26 @@ + "Iface\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Destination Passerelle Genmask Indic MSS Fenêtre irtt " +-"Iface\n" ++msgstr "Destination Passerelle Genmask Indic MSS Fenêtre irtt Iface\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +-msgstr "" +-"Destination Passerelle Genmask Indic Metric Ref Use " +-"Iface MSS Fenêtre irtt\n" ++msgstr "Destination Passerelle Genmask Indic Metric Ref Use Iface MSS Fenêtre irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "cache de routage IP du noyau\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2170,30 +2439,28 @@ + "Iface\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +-msgstr "" +-"Source Destination Passerelle Indic MSS Fenêtre irtt " +-"Iface\n" ++msgstr "Source Destination Passerelle Indic MSS Fenêtre irtt Iface\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +-msgstr "" +-"Source Destination Passerelle Indic Metric Ref Use " +-"Iface MSS Fenêtre irtt HH Arp\n" ++msgstr "Source Destination Passerelle Indic Metric Ref Use Iface MSS Fenêtre irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +-msgstr "" +-"Source Destination Passerelle Flags Metric Ref Use " +-"Iface MSS Fenêtre irtt TOS HHRef HHUptod SpecDst\n" ++msgstr "Source Destination Passerelle Flags Metric Ref Use Iface MSS Fenêtre irtt TOS HHRef HHUptod SpecDst\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2201,29 +2468,34 @@ + "Syntaxe: inet_route [-vF] del {-host|-net} Cible[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cible[/prefix] [gw Gw] [metric M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cible[/prefix] [metric M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush PAS supporté\n" + +@@ -2233,15 +2505,17 @@ + msgstr "route: %s: ne peut utiliser un RESEAU comme passerelle!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: MSS invalide.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: fenêtre invalide.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: rtt initial invalide.\n" + +@@ -2256,75 +2530,92 @@ + msgstr "route: netmask bogué %s\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: netmask ne correspond pas à l'adresse de route\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Flush de table de routage `inet' pas supporté\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Modification de cache de routage `inet' pas supporté\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX pas configuré sur ce système.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Table de routage IPX du noyau\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Destination Réseau Routeur Noeud Routeur\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX: ceci doit être écrit\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "Entrées IP Masquerade\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot expire source destination ports\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot expire initseq delta precd source destination " +-" ports\n" ++"prot expire initseq delta precd source " ++"destination ports\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM pas configuré sur ce système.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Table de routage NET/ROM du noyau\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Destination Mnemoniq Qualité Voisin Iface\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "utilisation netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: ceci doit être écrit\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Vous ne pouvez démarrer PPP avec ce programme.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Désolé, utilisez pppd !\n" + +@@ -2333,49 +2624,314 @@ + msgstr "L'adresse de noeud doit avoir 10 chiffres" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE pas configuré sur ce système.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Table de routage ROSE du noyau\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): adresse token-ring invalide !\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): restant : ignoré !\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): restant à la poubelle !\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "attention: pas de socket inet disponible: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Périphérique non trouvé" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr "" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[PAS INDICATEURS]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Lien encap:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "HWaddr %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Media:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s adr:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " Bcast:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " Masque:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " adr inet6: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Scope:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Global" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Lien" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Site" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Hôte" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Inconnu" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " adr IPX/Ethernet II:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " adr IPX/Ethernet SNAP:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " adr IPX/Ethernet 802.2:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " adr IPX/Ethernet 802.3:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " adr EtherTalk Phase 2:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " adr econet:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[PAS INDICATEURS] " ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metric:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "Paquets Reçus:%lu erreurs:%lu jetés:%lu débordements:%lu trames:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " compressés:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "Paquets transmis:%lu erreurs:%lu jetés:%lu débordements:%lu carrier:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " collisions:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "compressés:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "lg file transmission:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Interruption:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Adresse de base:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Mémoire:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Canal DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Pas de famille d'adresses utilisable trouvée.\n" + +@@ -2399,29 +2955,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argument incorrect: %s\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "Syntaxe: ipmaddr [ add | del ] MULTIADR dev CHAINE\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev CHAINE ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "" + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr "" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Ne peut créer une socket" + +@@ -2436,6 +2995,7 @@ + msgstr "" + + #: ../slattach.c:192 ++#, fuzzy, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: tty_lock: (%s): %s\n" + +@@ -2454,59 +3014,88 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "%s: nom trop long\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: ne peut obtenir l'état courant !\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + "slattach: tty_open: ne peut obtenir la discipline de ligne actuelle !\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: ne peut activer le mode RAW !\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: ne peut passer à %s bps!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: ne peut activer le mode 8N1 !\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr "" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, fuzzy, c-format + msgid " interface %s\n" + msgstr "%s: interface inconnue: %s\n" + + #~ msgid "" +-#~ " This comand can get or set the hostname or the NIS domainname. You can\n" +-#~ msgstr "" +-#~ " Cette commande ne peut obtenir ou définir le nom d'hôte ou le domaine " +-#~ "NIS. Vous pouvez\n" ++#~ " arp [-v] [] [-i ] -s [netmask ] pub " ++#~ "<-''-\n" ++#~ msgstr " arp [-v] [] [-i ] -s [netmask ] pub <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: interface inconnue: %s\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "réponses de masque d'adresses" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "titre inconnu %s\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Table de routage pour `ddp' pas encore supporté.\n" ++ ++#~ msgid "" ++#~ " This comand can get or set the hostname or the NIS domainname. You " ++#~ "can\n" ++#~ msgstr " Cette commande ne peut obtenir ou définir le nom d'hôte ou le domaine NIS. Vous pouvez\n" + + #~ msgid "" + #~ " also get the DNS domain or the FQDN (fully qualified domain name).\n" + #~ msgstr "" +-#~ " aussi obtenir le domaine DNS ou le FQDN (fully qualified domain name).\n" ++#~ " aussi obtenir le domaine DNS ou le FQDN (fully qualified domain " ++#~ "name).\n" + + #~ msgid "" + #~ " Unless you are using bind or NIS for host lookups you can change the\n" +-#~ msgstr "" +-#~ " Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous " +-#~ "pouvez changer le\n" ++#~ msgstr " Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, vous pouvez changer le\n" + + #~ msgid "" + #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" +--- net-tools-1.60.orig/po/net-tools.pot ++++ net-tools-1.60/po/net-tools.pot +@@ -1,253 +1,275 @@ + # SOME DESCRIPTIVE TITLE. +-# Copyright (C) YEAR Free Software Foundation, Inc. ++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER ++# This file is distributed under the same license as the PACKAGE package. + # FIRST AUTHOR , YEAR. + # + #, fuzzy + msgid "" + msgstr "" + "Project-Id-Version: PACKAGE VERSION\n" +-"POT-Creation-Date: 2001-04-15 15:40+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=CHARSET\n" +-"Content-Transfer-Encoding: ENCODING\n" ++"Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:111 ../arp.c:270 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "" + +-#: ../arp.c:208 ../arp.c:222 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "" + +-#: ../arp.c:240 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "" + +-#: ../arp.c:244 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "" + +-#: ../arp.c:253 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "" + +-#: ../arp.c:283 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "" + +-#: ../arp.c:291 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "" + +-#: ../arp.c:388 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "" + +-#: ../arp.c:404 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "" + +-#: ../arp.c:417 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "" + +-#: ../arp.c:438 ++#: ../arp.c:448 ++#, c-format + msgid "" + "Address HWtype HWaddress Flags Mask " + "Iface\n" + msgstr "" + +-#: ../arp.c:468 ++#: ../arp.c:476 ++msgid "" ++msgstr "" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "" + +-#: ../arp.c:485 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "" + +-#: ../arp.c:491 ++#: ../arp.c:501 ++#, c-format + msgid " " + msgstr "" + +-#: ../arp.c:497 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "" + +-#: ../arp.c:514 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "" + +-#: ../arp.c:593 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "" + +-#: ../arp.c:597 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "" + +-#: ../arp.c:599 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "" + +-#: ../arp.c:614 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [] [-i ] [-a] [] <-Display ARP " + "cache\n" + msgstr "" + +-#: ../arp.c:615 ++#: ../arp.c:627 ++#, c-format + msgid "" +-" arp [-v] [-i ] -d [pub][nopub] <-Delete ARP " ++" arp [-v] [-i ] -d [pub] <-Delete ARP " + "entry\n" + msgstr "" + +-#: ../arp.c:616 ++#: ../arp.c:628 ++#, c-format + msgid "" +-" arp [-vnD] [] [-i ] -f [] <-Add entry from " ++" arp [-vnD] [] [-i ] -f [] <-Add entry from " + "file\n" + msgstr "" + +-#: ../arp.c:617 ++#: ../arp.c:629 ++#, c-format + msgid "" +-" arp [-v] [] [-i ] -s [temp][nopub] <-Add " ++" arp [-v] [] [-i ] -s [temp] <-Add " + "entry\n" + msgstr "" + +-#: ../arp.c:618 +-msgid "" +-" arp [-v] [] [-i ] -s [netmask ] pub " +-"<-''-\n" +-msgstr "" +- +-#: ../arp.c:619 ++#: ../arp.c:630 ++#, c-format + msgid "" +-" arp [-v] [] [-i ] -Ds [netmask ] pub " ++" arp [-v] [] [-i ] -Ds [netmask ] pub " + "<-''-\n" + "\n" + msgstr "" + +-#: ../arp.c:621 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" + msgstr "" + +-#: ../arp.c:622 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr "" + +-#: ../arp.c:623 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr "" + +-#: ../arp.c:624 ../netstat.c:1490 ../route.c:86 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr "" + +-#: ../arp.c:625 ../netstat.c:1491 ../route.c:87 ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format + msgid " -n, --numeric don't resolve names\n" + msgstr "" + +-#: ../arp.c:626 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr "" + +-#: ../arp.c:627 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read from given device\n" + msgstr "" + +-#: ../arp.c:628 ++#: ../arp.c:639 ++#, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr "" + +-#: ../arp.c:629 ++#: ../arp.c:640 ++#, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " =Use '-H ' to specify hardware address type. Default: %s\n" + msgstr "" + +-#: ../arp.c:632 ../rarp.c:183 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr "" + +-#: ../arp.c:666 ../arp.c:751 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "" + +-#: ../arp.c:670 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "" + +-#: ../arp.c:705 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "" + +-#: ../arp.c:715 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "" + +-#: ../arp.c:724 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "" + +-#: ../arp.c:743 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "" + +-#: ../arp.c:756 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "" + +-#: ../hostname.c:70 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "" + +-#: ../hostname.c:75 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "" + +-#: ../hostname.c:78 ../hostname.c:98 ../hostname.c:117 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "" + +-#: ../hostname.c:90 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "" + +-#: ../hostname.c:95 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "" +@@ -262,103 +284,119 @@ + msgid "%s: you must be root to change the domain name\n" + msgstr "" + +-#: ../hostname.c:132 ++#: ../hostname.c:131 + #, c-format + msgid "Resolving `%s' ...\n" + msgstr "" + +-#: ../hostname.c:138 ++#: ../hostname.c:137 + #, c-format + msgid "Result: h_name=`%s'\n" + msgstr "" + +-#: ../hostname.c:143 ++#: ../hostname.c:142 + #, c-format + msgid "Result: h_aliases=`%s'\n" + msgstr "" + +-#: ../hostname.c:148 ++#: ../hostname.c:147 + #, c-format + msgid "Result: h_addr_list=`%s'\n" + msgstr "" + +-#: ../hostname.c:210 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "" + +-#: ../hostname.c:224 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + +-#: ../hostname.c:225 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + +-#: ../hostname.c:227 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" + msgstr "" + +-#: ../hostname.c:229 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr "" + +-#: ../hostname.c:230 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" + msgstr "" + +-#: ../hostname.c:231 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" + msgstr "" + +-#: ../hostname.c:232 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + msgstr "" + +-#: ../hostname.c:233 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr "" + +-#: ../hostname.c:234 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr "" + +-#: ../hostname.c:235 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr "" + +-#: ../hostname.c:236 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr "" + +-#: ../hostname.c:237 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr "" + +-#: ../hostname.c:238 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr "" + +-#: ../hostname.c:240 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr "" + +-#: ../hostname.c:242 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" + msgstr "" + +-#: ../hostname.c:244 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -367,587 +405,706 @@ + " part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + +-#: ../hostname.c:340 ++#: ../hostname.c:338 + #, c-format + msgid "%s: You can't change the DNS domain name with this command\n" + msgstr "" + +-#: ../hostname.c:341 ++#: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" + msgstr "" + +-#: ../hostname.c:342 ++#: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + +-#: ../hostname.c:359 ++#: ../hostname.c:357 + #, c-format + msgid "gethostname()=`%s'\n" + msgstr "" + +-#: ../hostname.c:376 ++#: ../hostname.c:374 + #, c-format + msgid "getdomainname()=`%s'\n" + msgstr "" + +-#: ../hostname.c:391 ++#: ../hostname.c:389 + #, c-format + msgid "getnodename()=`%s'\n" + msgstr "" + +-#: ../ifconfig.c:108 ++#: ../ifconfig.c:107 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + +-#: ../ifconfig.c:130 ../ifconfig.c:162 ++#: ../ifconfig.c:129 ../ifconfig.c:161 + #, c-format +-msgid "%s: unknown interface: %s\n" ++msgid "%s: ERROR while getting interface flags: %s\n" + msgstr "" + +-#: ../ifconfig.c:154 ../ifconfig.c:734 ../ifconfig.c:825 ../ifconfig.c:936 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format + msgid "No support for INET on this system.\n" + msgstr "" + +-#: ../ifconfig.c:177 ++#: ../ifconfig.c:193 ++#, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "" ++ ++#: ../ifconfig.c:202 ++#, c-format + msgid "" + "Usage:\n" +-" ifconfig [-a] [-i] [-v] [-s] [[]
]\n" ++" ifconfig [-a] [-v] [-s] [[]
]\n" + msgstr "" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 ++#, c-format + msgid " [add
[/]]\n" + msgstr "" + +-#: ../ifconfig.c:180 ++#: ../ifconfig.c:205 ++#, c-format + msgid " [del
[/]]\n" + msgstr "" + +-#: ../ifconfig.c:181 ++#: ../ifconfig.c:206 ++#, c-format + msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" + msgstr "" + +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:207 ++#, c-format + msgid " [netmask
] [dstaddr
] [tunnel
]\n" + msgstr "" + +-#: ../ifconfig.c:185 ++#: ../ifconfig.c:210 ++#, c-format + msgid " [outfill ] [keepalive ]\n" + msgstr "" + +-#: ../ifconfig.c:187 ++#: ../ifconfig.c:212 ++#, c-format + msgid " [hw
] [metric ] [mtu ]\n" + msgstr "" + +-#: ../ifconfig.c:188 ++#: ../ifconfig.c:213 ++#, c-format + msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" + msgstr "" + +-#: ../ifconfig.c:189 ++#: ../ifconfig.c:214 ++#, c-format + msgid " [multicast] [[-]promisc]\n" + msgstr "" + +-#: ../ifconfig.c:190 ++#: ../ifconfig.c:215 ++#, c-format + msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" + msgstr "" + +-#: ../ifconfig.c:192 ++#: ../ifconfig.c:217 ++#, c-format + msgid " [txqueuelen ]\n" + msgstr "" + +-#: ../ifconfig.c:195 ++#: ../ifconfig.c:220 ++#, c-format + msgid " [[-]dynamic]\n" + msgstr "" + +-#: ../ifconfig.c:197 ++#: ../ifconfig.c:222 ++#, c-format + msgid "" + " [up|down] ...\n" + "\n" + msgstr "" + +-#: ../ifconfig.c:199 ++#: ../ifconfig.c:224 ++#, c-format + msgid " =Hardware Type.\n" + msgstr "" + +-#: ../ifconfig.c:200 ++#: ../ifconfig.c:225 ++#, c-format + msgid " List of possible hardware types:\n" + msgstr "" + + #. 1 = ARPable +-#: ../ifconfig.c:202 ++#: ../ifconfig.c:227 + #, c-format + msgid " =Address family. Default: %s\n" + msgstr "" + +-#: ../ifconfig.c:203 ++#: ../ifconfig.c:228 ++#, c-format + msgid " List of possible address families:\n" + msgstr "" + +-#: ../ifconfig.c:278 ++#: ../ifconfig.c:303 + #, c-format + msgid "ifconfig: option `%s' not recognised.\n" + msgstr "" + +-#: ../ifconfig.c:280 ../ifconfig.c:925 ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format + msgid "ifconfig: `--help' gives usage information.\n" + msgstr "" + +-#: ../ifconfig.c:355 ++#: ../ifconfig.c:380 ++#, c-format + msgid "Unknown media type.\n" + msgstr "" + +-#: ../ifconfig.c:647 ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" ++ ++#: ../ifconfig.c:684 + #, c-format + msgid "hw address type `%s' has no handler to set address. failed.\n" + msgstr "" + +-#: ../ifconfig.c:656 ++#: ../ifconfig.c:693 + #, c-format + msgid "%s: invalid %s address.\n" + msgstr "" + +-#: ../ifconfig.c:700 ../ifconfig.c:790 ../ifconfig.c:876 ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format + msgid "No support for INET6 on this system.\n" + msgstr "" + +-#: ../ifconfig.c:743 ../ifconfig.c:834 ++#: ../ifconfig.c:780 ../ifconfig.c:871 + #, c-format + msgid "Interface %s not initialized\n" + msgstr "" + +-#: ../ifconfig.c:755 ../ifconfig.c:845 ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format + msgid "Bad address.\n" + msgstr "" + +-#: ../ifconfig.c:848 ++#: ../ifconfig.c:885 ++#, c-format + msgid "Address deletion not supported on this system.\n" + msgstr "" + +-#: ../ifconfig.c:920 ++#: ../ifconfig.c:957 ++#, c-format + msgid "ifconfig: Cannot set address for this protocol family.\n" + msgstr "" + +-#: ../ifconfig.c:946 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "" + +-#: ../ifconfig.c:954 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "" + +-#: ../netstat.c:430 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" + msgstr "" + +-#: ../netstat.c:434 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" + msgstr "" + +-#: ../netstat.c:441 ../netstat.c:1176 ../netstat.c:1253 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "" + +-#: ../netstat.c:442 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "" + +-#: ../netstat.c:443 ../netstat.c:1255 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "" + +-#: ../netstat.c:444 ../netstat.c:511 ../netstat.c:894 ../netstat.c:1256 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "" + +-#: ../netstat.c:466 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "" + +-#: ../netstat.c:467 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + +-#: ../netstat.c:477 ../netstat.c:1295 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:512 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "" + +-#: ../netstat.c:513 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "" + +-#: ../netstat.c:514 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "" + +-#: ../netstat.c:515 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "" + +-#: ../netstat.c:516 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "" + +-#: ../netstat.c:517 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "" + +-#: ../netstat.c:518 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "" + +-#: ../netstat.c:519 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "" + +-#: ../netstat.c:520 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "" + +-#: ../netstat.c:521 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "" + +-#: ../netstat.c:592 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "" + +-#: ../netstat.c:597 ../netstat.c:635 ../netstat.c:756 ../netstat.c:888 +-#: ../netstat.c:1019 ../netstat.c:1024 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "" + +-#: ../netstat.c:610 ../netstat.c:615 ../netstat.c:623 ../netstat.c:630 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "" + +-#: ../netstat.c:673 ++#: ../netstat.c:677 ++#, c-format + msgid "Active X.25 sockets\n" + msgstr "" + + #. IMHO, Vr/Vs is not very usefull --SF +-#: ../netstat.c:675 ++#: ../netstat.c:679 ++#, c-format + msgid "" +-"Dest Source Device LCI State Vr/Vs Send-Q " +-"Recv-Q\n" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" + +-#: ../netstat.c:752 ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "" + +-#: ../netstat.c:793 ../netstat.c:943 ../netstat.c:1062 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "" + +-#: ../netstat.c:797 ++#: ../netstat.c:804 + #, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:802 ++#: ../netstat.c:809 + #, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:807 ++#: ../netstat.c:814 + #, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:812 ../netstat.c:952 ../netstat.c:1072 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:884 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "" + +-#: ../netstat.c:902 ../netstat.c:1162 ../netstat.c:1195 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "" + +-#: ../netstat.c:948 ../netstat.c:1067 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "" + +-#: ../netstat.c:1033 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "" + +-#: ../netstat.c:1115 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "" + +-#: ../netstat.c:1142 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "" + +-#: ../netstat.c:1146 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "" + +-#: ../netstat.c:1150 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "" + +-#: ../netstat.c:1154 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "" + +-#: ../netstat.c:1158 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "" + +-#: ../netstat.c:1183 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "" + +-#: ../netstat.c:1187 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "" + +-#: ../netstat.c:1191 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "" + +-#: ../netstat.c:1222 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "" + +-#: ../netstat.c:1224 ../netstat.c:1735 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "" + +-#: ../netstat.c:1227 ../netstat.c:1738 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "" + +-#: ../netstat.c:1229 ../netstat.c:1740 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "" + +-#: ../netstat.c:1232 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" + msgstr "" + +-#: ../netstat.c:1234 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr "" + +-#: ../netstat.c:1254 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "" + +-#: ../netstat.c:1257 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "" + +-#: ../netstat.c:1271 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "" + +-#: ../netstat.c:1272 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "" + +-#: ../netstat.c:1366 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + +-#: ../netstat.c:1368 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr "" + +-#: ../netstat.c:1402 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "" + +-#: ../netstat.c:1410 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "" + +-#: ../netstat.c:1452 ++#: ../netstat.c:1465 ++#, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + +-#: ../netstat.c:1456 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "" + +-#: ../netstat.c:1479 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" + +-#: ../netstat.c:1480 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [ ...]\n" + msgstr "" + +-#: ../netstat.c:1481 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + msgstr "" + +-#: ../netstat.c:1483 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr "" + +-#: ../netstat.c:1484 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr "" + +-#: ../netstat.c:1485 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + +-#: ../netstat.c:1486 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + +-#: ../netstat.c:1488 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" + msgstr "" + +-#: ../netstat.c:1492 ++#: ../netstat.c:1505 ++#, c-format + msgid " --numeric-hosts don't resolve host names\n" + msgstr "" + +-#: ../netstat.c:1493 ++#: ../netstat.c:1506 ++#, c-format + msgid " --numeric-ports don't resolve port names\n" + msgstr "" + +-#: ../netstat.c:1494 ++#: ../netstat.c:1507 ++#, c-format + msgid " --numeric-users don't resolve user names\n" + msgstr "" + +-#: ../netstat.c:1495 ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr "" + +-#: ../netstat.c:1496 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr "" + +-#: ../netstat.c:1497 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + +-#: ../netstat.c:1498 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" + msgstr "" + +-#: ../netstat.c:1499 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + +-#: ../netstat.c:1500 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + +-#: ../netstat.c:1501 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr "" + +-#: ../netstat.c:1502 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" + msgstr "" + +-#: ../netstat.c:1503 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" + msgstr "" + +-#: ../netstat.c:1505 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" + +-#: ../netstat.c:1506 ../route.c:92 ++#: ../netstat.c:1519 + #, c-format +-msgid " =Use '-A ' or '--'; default: %s\n" ++msgid " =Use '-6|-4' or '-A ' or '--'; default: %s\n" + msgstr "" + +-#: ../netstat.c:1507 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr "" + +-#: ../netstat.c:1732 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "" + +-#: ../netstat.c:1742 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + +-#: ../netstat.c:1744 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr "" + +-#: ../netstat.c:1747 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr "" + +-#: ../netstat.c:1777 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "" + +-#: ../netstat.c:1778 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "" + +@@ -986,23 +1143,28 @@ + msgstr "" + + #: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "" + + #: ../rarp.c:177 ++#, c-format + msgid " rarp -d delete entry from cache.\n" + msgstr "" + + #: ../rarp.c:178 ++#, c-format + msgid " rarp [] -s add entry to cache.\n" + msgstr "" + + #: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + + #: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1019,38 +1181,50 @@ + msgstr "" + + #: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [] List kernel routing tables\n" + msgstr "" + + #: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" + msgstr "" + + #: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [] Detailed usage syntax for " + "specified AF.\n" + msgstr "" + + #: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" + "\n" + msgstr "" + ++#: ../route.c:92 ++#, c-format ++msgid " =Use '-A ' or '--'; default: %s\n" ++msgstr "" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr "" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr "" + +@@ -1060,61 +1234,75 @@ + msgstr "" + + #: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "" + + #: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + + #: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr "" + + #: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr "" + + #: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" + msgstr "" + + #: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "" + + #: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr "" + + #: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr "" + + #: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr "" + + #: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr "" + + #: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "" + + #: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "" + + #: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "" + + #: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "" + +@@ -1128,22 +1316,27 @@ + msgstr "" + + #: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr "" + + #: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr "" + + #: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr "" + + #: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr "" + + #: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "" + +@@ -1153,10 +1346,12 @@ + msgstr "" + + #: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "" + + #: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "" + +@@ -1563,12 +1758,12 @@ + + #: ../statistics.c:178 + #, c-format +-msgid "%u packets directly received from backlog" ++msgid "%u of bytes directly received from backlog" + msgstr "" + + #: ../statistics.c:180 + #, c-format +-msgid "%u packets directly received from prequeue" ++msgid "%u of bytes directly received from prequeue" + msgstr "" + + #: ../statistics.c:182 +@@ -1578,7 +1773,7 @@ + + #: ../statistics.c:183 + #, c-format +-msgid "%u packets header predicted" ++msgid "%u packet headers predicted" + msgstr "" + + #: ../statistics.c:184 +@@ -1591,19 +1786,209 @@ + msgid "Ran %u times out of system memory during packet sending" + msgstr "" + +-#: ../statistics.c:253 ++#: ../statistics.c:188 ++#, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, c-format ++msgid "%u bad SACKs received" ++msgstr "" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, c-format ++msgid "%u retransmits lost" ++msgstr "" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, c-format ++msgid "%u fast retransmits" ++msgstr "" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "" ++ ++#: ../statistics.c:210 ++#, c-format ++msgid "%u sack retransmits failed" ++msgstr "" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, c-format ++msgid "%u DSACKs received" ++msgstr "" ++ ++#: ../statistics.c:216 ++#, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "" ++ ++#: ../statistics.c:217 ++#, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "" ++ ++#: ../statistics.c:218 ++#, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "" ++ ++#: ../statistics.c:219 ++#, c-format ++msgid "%u connections reset due to early user close" ++msgstr "" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "" ++ ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "" + +-#: ../statistics.c:253 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "" + +-#: ../statistics.c:336 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "" + +-#: ../statistics.c:349 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "" + +@@ -1617,7 +2002,7 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "" + +-#: ../lib/af.c:153 ../lib/hw.c:156 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "" + +@@ -1633,11 +2018,11 @@ + msgid "IPv6" + msgstr "" + +-#: ../lib/af.c:164 ../lib/hw.c:177 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "" + +-#: ../lib/af.c:167 ../lib/hw.c:183 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "" + +@@ -1649,7 +2034,7 @@ + msgid "Appletalk DDP" + msgstr "" + +-#: ../lib/af.c:176 ../lib/hw.c:218 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "" + +@@ -1657,19 +2042,21 @@ + msgid "CCITT X.25" + msgstr "" + +-#: ../lib/af.c:182 ../lib/hw.c:180 ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "" + +-#: ../lib/af.c:185 ../lib/hw.c:168 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "" + + #: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "" + + #: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "" + +@@ -1694,6 +2081,7 @@ + msgstr "" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "" + +@@ -1712,22 +2100,21 @@ + msgstr "" + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1783,90 +2170,94 @@ + msgid "in_hippi(%s): trailing junk!\n" + msgstr "" + +-#: ../lib/hw.c:155 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "" + +-#: ../lib/hw.c:158 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:159 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:160 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:161 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:162 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "" + +-#: ../lib/hw.c:165 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "" + +-#: ../lib/hw.c:171 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "" + +-#: ../lib/hw.c:174 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "" + +-#: ../lib/hw.c:186 ++#: ../lib/hw.c:191 + msgid "generic X.25" + msgstr "" + +-#: ../lib/hw.c:189 ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "" + +-#: ../lib/hw.c:196 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "" + +-#: ../lib/hw.c:199 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "" + +-#: ../lib/hw.c:202 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "" + +-#: ../lib/hw.c:206 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "" + +-#: ../lib/hw.c:209 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "" + +-#: ../lib/hw.c:212 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "" + +-#: ../lib/hw.c:214 ++#: ../lib/hw.c:219 + msgid "16/4 Mbps Token Ring (New)" + msgstr "" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" +@@ -1877,131 +2268,157 @@ + msgstr "" + + #: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "" + + #: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "" + + #: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" + + #: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "" + + #: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" + msgstr "" + + #: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" + msgstr "" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr "" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr "" + + #: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" + msgstr "" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" + msgstr "" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" + msgstr "" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" + msgstr "" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" + msgstr "" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr "" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr "" + +@@ -2011,14 +2428,17 @@ + msgstr "" + + #: ../lib/inet_sr.c:174 ++#, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "" + +@@ -2033,73 +2453,90 @@ + msgstr "" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "" + + #: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "" + + #: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "" + + #: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "" + +@@ -2108,287 +2545,314 @@ + msgstr "" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "" + +-#: ../lib/interface.c:164 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "" + +-#: ../lib/interface.c:316 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:556 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "" + +-#: ../lib/interface.c:560 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "" + +-#: ../lib/interface.c:593 ++#: ../lib/interface.c:608 + msgid " - no statistics available -" + msgstr "" + +-#: ../lib/interface.c:597 ++#: ../lib/interface.c:612 ++#, c-format + msgid "[NO FLAGS]" + msgstr "" + +-#: ../lib/interface.c:673 ++#: ../lib/interface.c:688 + #, c-format + msgid "%-9.9s Link encap:%s " + msgstr "" + +-#: ../lib/interface.c:678 ++#: ../lib/interface.c:693 + #, c-format + msgid "HWaddr %s " + msgstr "" + +-#: ../lib/interface.c:681 ++#: ../lib/interface.c:696 + #, c-format + msgid "Media:%s" + msgstr "" + +-#: ../lib/interface.c:683 ++#: ../lib/interface.c:698 ++#, c-format + msgid "(auto)" + msgstr "" + +-#: ../lib/interface.c:690 ++#: ../lib/interface.c:705 + #, c-format + msgid " %s addr:%s " + msgstr "" + +-#: ../lib/interface.c:693 ++#: ../lib/interface.c:708 + #, c-format + msgid " P-t-P:%s " + msgstr "" + +-#: ../lib/interface.c:696 ++#: ../lib/interface.c:711 + #, c-format + msgid " Bcast:%s " + msgstr "" + +-#: ../lib/interface.c:698 ++#: ../lib/interface.c:713 + #, c-format + msgid " Mask:%s\n" + msgstr "" + +-#: ../lib/interface.c:715 ++#: ../lib/interface.c:730 + #, c-format + msgid " inet6 addr: %s/%d" + msgstr "" + +-#: ../lib/interface.c:717 ++#: ../lib/interface.c:732 ++#, c-format + msgid " Scope:" + msgstr "" + +-#: ../lib/interface.c:720 ++#: ../lib/interface.c:735 ++#, c-format + msgid "Global" + msgstr "" + +-#: ../lib/interface.c:723 ++#: ../lib/interface.c:738 ++#, c-format + msgid "Link" + msgstr "" + +-#: ../lib/interface.c:726 ++#: ../lib/interface.c:741 ++#, c-format + msgid "Site" + msgstr "" + +-#: ../lib/interface.c:729 ++#: ../lib/interface.c:744 ++#, c-format + msgid "Compat" + msgstr "" + +-#: ../lib/interface.c:732 ++#: ../lib/interface.c:747 ++#, c-format + msgid "Host" + msgstr "" + +-#: ../lib/interface.c:735 ++#: ../lib/interface.c:750 ++#, c-format + msgid "Unknown" + msgstr "" + +-#: ../lib/interface.c:750 ++#: ../lib/interface.c:765 + #, c-format + msgid " IPX/Ethernet II addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:753 ++#: ../lib/interface.c:768 + #, c-format + msgid " IPX/Ethernet SNAP addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:756 ++#: ../lib/interface.c:771 + #, c-format + msgid " IPX/Ethernet 802.2 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:759 ++#: ../lib/interface.c:774 + #, c-format + msgid " IPX/Ethernet 802.3 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:769 ++#: ../lib/interface.c:784 + #, c-format + msgid " EtherTalk Phase 2 addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:778 ++#: ../lib/interface.c:793 + #, c-format + msgid " econet addr:%s\n" + msgstr "" + +-#: ../lib/interface.c:785 ++#: ../lib/interface.c:800 ++#, c-format + msgid "[NO FLAGS] " + msgstr "" + +-#: ../lib/interface.c:787 ++#: ../lib/interface.c:802 ++#, c-format + msgid "UP " + msgstr "" + +-#: ../lib/interface.c:789 ++#: ../lib/interface.c:804 ++#, c-format + msgid "BROADCAST " + msgstr "" + +-#: ../lib/interface.c:791 ++#: ../lib/interface.c:806 ++#, c-format + msgid "DEBUG " + msgstr "" + +-#: ../lib/interface.c:793 ++#: ../lib/interface.c:808 ++#, c-format + msgid "LOOPBACK " + msgstr "" + +-#: ../lib/interface.c:795 ++#: ../lib/interface.c:810 ++#, c-format + msgid "POINTOPOINT " + msgstr "" + +-#: ../lib/interface.c:797 ++#: ../lib/interface.c:812 ++#, c-format + msgid "NOTRAILERS " + msgstr "" + +-#: ../lib/interface.c:799 ++#: ../lib/interface.c:814 ++#, c-format + msgid "RUNNING " + msgstr "" + +-#: ../lib/interface.c:801 ++#: ../lib/interface.c:816 ++#, c-format + msgid "NOARP " + msgstr "" + +-#: ../lib/interface.c:803 ++#: ../lib/interface.c:818 ++#, c-format + msgid "PROMISC " + msgstr "" + +-#: ../lib/interface.c:805 ++#: ../lib/interface.c:820 ++#, c-format + msgid "ALLMULTI " + msgstr "" + +-#: ../lib/interface.c:807 ++#: ../lib/interface.c:822 ++#, c-format + msgid "SLAVE " + msgstr "" + +-#: ../lib/interface.c:809 ++#: ../lib/interface.c:824 ++#, c-format + msgid "MASTER " + msgstr "" + +-#: ../lib/interface.c:811 ++#: ../lib/interface.c:826 ++#, c-format + msgid "MULTICAST " + msgstr "" + +-#: ../lib/interface.c:814 ++#: ../lib/interface.c:829 ++#, c-format + msgid "DYNAMIC " + msgstr "" + + #. DONT FORGET TO ADD THE FLAGS IN ife_print_short +-#: ../lib/interface.c:817 ++#: ../lib/interface.c:832 + #, c-format + msgid " MTU:%d Metric:%d" + msgstr "" + +-#: ../lib/interface.c:821 ++#: ../lib/interface.c:836 + #, c-format + msgid " Outfill:%d Keepalive:%d" + msgstr "" + +-#: ../lib/interface.c:835 ++#: ../lib/interface.c:850 + #, c-format + msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" + msgstr "" + +-#: ../lib/interface.c:840 ++#: ../lib/interface.c:855 + #, c-format + msgid " compressed:%lu\n" + msgstr "" + +-#: ../lib/interface.c:852 ++#: ../lib/interface.c:895 + #, c-format + msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" + msgstr "" + +-#: ../lib/interface.c:856 ++#: ../lib/interface.c:899 + #, c-format + msgid " collisions:%lu " + msgstr "" + +-#: ../lib/interface.c:858 ++#: ../lib/interface.c:901 + #, c-format + msgid "compressed:%lu " + msgstr "" + +-#: ../lib/interface.c:860 ++#: ../lib/interface.c:903 + #, c-format + msgid "txqueuelen:%d " + msgstr "" + +-#: ../lib/interface.c:862 ++#: ../lib/interface.c:905 + #, c-format + msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" + msgstr "" + +-#: ../lib/interface.c:873 ++#: ../lib/interface.c:916 + #, c-format + msgid "Interrupt:%d " + msgstr "" + + #. Only print devices using it for + #. I/O maps +-#: ../lib/interface.c:876 ++#: ../lib/interface.c:919 + #, c-format + msgid "Base address:0x%x " + msgstr "" + +-#: ../lib/interface.c:878 ++#: ../lib/interface.c:921 + #, c-format + msgid "Memory:%lx-%lx " + msgstr "" + +-#: ../lib/interface.c:881 ++#: ../lib/interface.c:924 + #, c-format + msgid "DMA chan:%x " + msgstr "" + + #: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "" + +@@ -2413,14 +2877,17 @@ + msgstr "" + + #: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr "" + + #: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr "" + + #: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr "" + +@@ -2449,6 +2916,7 @@ + msgstr "" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "" + +@@ -2468,18 +2936,22 @@ + msgstr "" + + #: ../slattach.c:468 ++#, c-format + msgid "slattach: tty name too long\n" + msgstr "" + + #: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "" + + #: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "" + + #: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "" + +@@ -2489,6 +2961,7 @@ + msgstr "" + + #: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "" + +--- net-tools-1.60.orig/po/cs.po ++++ net-tools-1.60/po/cs.po +@@ -5,7 +5,8 @@ + msgid "" + msgstr "" + "Project-Id-Version: net-tools-1.51\n" +-"POT-Creation-Date: 2000-02-14 02:31+0100\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" + "PO-Revision-Date: 1999-08-29 23:20+0200\n" + "Last-Translator: Jiøí Pavlovský \n" + "Language-Team: Czech \n" +@@ -13,96 +14,110 @@ + "Content-Type: text/plain; charset=iso-8859-2\n" + "Content-Transfer-Encoding: 8bit\n" + +-#: ../arp.c:110 ../arp.c:269 ++#: ../arp.c:112 ../arp.c:279 ++#, c-format + msgid "arp: need host name\n" + msgstr "arp: je tøeba jméno poèítaèe\n" + +-#: ../arp.c:207 ../arp.c:221 ++#: ../arp.c:215 ../arp.c:230 + #, c-format + msgid "No ARP entry for %s\n" + msgstr "Pro %s neexistuje ARP polo¾ka\n" + +-#: ../arp.c:239 ++#: ../arp.c:248 + #, c-format + msgid "arp: cant get HW-Address for `%s': %s.\n" + msgstr "arp: HW adresu `%s' nelze zjistit: %s\n" + +-#: ../arp.c:243 ++#: ../arp.c:252 ++#, c-format + msgid "arp: protocol type mismatch.\n" + msgstr "arp: chybnì zadaný typ protokolu\n" + +-#: ../arp.c:252 ++#: ../arp.c:261 + #, c-format + msgid "arp: device `%s' has HW address %s `%s'.\n" + msgstr "arp: zaøízení `%s' má Hw adresu %s `%s'.\n" + +-#: ../arp.c:282 ++#: ../arp.c:293 ++#, c-format + msgid "arp: need hardware address\n" + msgstr "arp: je tøeba hardwarová adresa\n" + +-#: ../arp.c:290 ++#: ../arp.c:301 ++#, c-format + msgid "arp: invalid hardware address\n" + msgstr "arp: nesprávná hardwarová adresa\n" + +-#: ../arp.c:387 ++#: ../arp.c:398 + #, c-format + msgid "arp: cannot open etherfile %s !\n" + msgstr "arp: databázi ethernetových adres %s nelze otevøít!\n" + +-#: ../arp.c:403 ++#: ../arp.c:414 + #, c-format + msgid "arp: format error on line %u of etherfile %s !\n" + msgstr "arp: syntaktická chyba na øádku %u databáze ethernetových adres %s!\n" + +-#: ../arp.c:416 ++#: ../arp.c:427 + #, c-format + msgid "arp: cannot set entry on line %u of etherfile %s !\n" + msgstr "" + "arp: polo¾ku na øádku %u databáze ethernetových adres %s nelze nastavit!\n" + +-#: ../arp.c:437 +-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n" ++#: ../arp.c:448 ++#, fuzzy, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" + msgstr "Adresa\t\t\t HWtyp\t HWadresa\t Pøíz Maska\t\t Rozhraní\n" + +-#: ../arp.c:467 ++#: ../arp.c:476 ++#, fuzzy ++msgid "" ++msgstr " rozhraní %s\n" ++ ++#: ../arp.c:478 + msgid "(incomplete)" + msgstr "(nekompletní)" + +-#: ../arp.c:484 ++#: ../arp.c:495 + #, c-format + msgid "%s (%s) at " + msgstr "%s (%s) na " + +-#: ../arp.c:490 ++#: ../arp.c:501 ++#, c-format + msgid " " + msgstr "" + +-#: ../arp.c:496 ++#: ../arp.c:507 + #, c-format + msgid "netmask %s " + msgstr "sí»ová maska %s " + +-#: ../arp.c:513 ++#: ../arp.c:524 + #, c-format + msgid "on %s\n" + msgstr "na %s\n" + +-#: ../arp.c:592 ++#: ../arp.c:605 + #, c-format + msgid "Entries: %d\tSkipped: %d\tFound: %d\n" + msgstr "Polo¾ky: %d\tVynecháno: %d\tNalezeno: %d\n" + +-#: ../arp.c:596 ++#: ../arp.c:609 + #, c-format + msgid "%s (%s) -- no entry\n" + msgstr "%s (%s) -- ¾ádná polo¾ka\n" + +-#: ../arp.c:598 ++#: ../arp.c:611 + #, c-format + msgid "arp: in %d entries no match found.\n" + msgstr "arp: ¾ádná z polo¾ek (%d) nevyhovuje.\n" + +-#: ../arp.c:613 ++#: ../arp.c:626 ++#, c-format + msgid "" + "Usage:\n" + " arp [-vn] [] [-i ] [-a] [] <-Display ARP " +@@ -112,49 +127,46 @@ + " arp [-vn] [] [-i [-a] [] <-Zobrazí ARP " + "cache\n" + +-#: ../arp.c:614 ++#: ../arp.c:627 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [-i ] -d [pub][nopub] <-Delete ARP " ++" arp [-v] [-i ] -d [pub] <-Delete ARP " + "entry\n" + msgstr "" + " arp [-v] [-i ] -d [pub][nopub] <-Sma¾e polo¾ku " + "ARP\n" + +-#: ../arp.c:615 +-#, fuzzy ++#: ../arp.c:628 ++#, fuzzy, c-format + msgid "" +-" arp [-vnD] [] [-i ] -f [] <-Add entry from " ++" arp [-vnD] [] [-i ] -f [] <-Add entry from " + "file\n" + msgstr "" + " arp [-vnD] [] [-i ] -f <-Pøidá polo¾ku " + "ze\n" + " souboru\n" + +-#: ../arp.c:616 ++#: ../arp.c:629 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -s [temp][nopub] <-Add " ++" arp [-v] [] [-i ] -s [temp] <-Add " + "entry\n" + msgstr "" + " arp [-v] [ [-i -s [temp][nopub] <-Pøidá " + "polo¾ku\n" + +-#: ../arp.c:617 +-msgid "" +-" arp [-v] [] [-i ] -s [netmask ] pub " +-"<-''-\n" +-msgstr "" +-" arp [-v] [] [-i ] -s [sí»mask <èís>] <-''-\n" +- +-#: ../arp.c:618 ++#: ../arp.c:630 ++#, fuzzy, c-format + msgid "" +-" arp [-v] [] [-i ] -Ds [netmask ] pub " ++" arp [-v] [] [-i ] -Ds [netmask ] pub " + "<-''-\n" + "\n" + msgstr "" + " arp [-v] [ [-i -Ds [sí»mask <èís>] pub " + "<-''-\n" + +-#: ../arp.c:620 ++#: ../arp.c:632 ++#, c-format + msgid "" + " -a display (all) hosts in alternative (BSD) " + "style\n" +@@ -162,126 +174,134 @@ + " -a zobrazí jmna v¹ech poèítaèù alternativním\n" + " (BSD) zpùsobem\n" + +-#: ../arp.c:621 ++#: ../arp.c:633 ++#, c-format + msgid " -s, --set set a new ARP entry\n" + msgstr " -s, --set nastaví novou ARP polo¾ku\n" + +-#: ../arp.c:622 ++#: ../arp.c:634 ++#, c-format + msgid " -d, --delete delete a specified entry\n" + msgstr " -d, --delete sma¾e zadanou ARP polo¾ku\n" + +-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85 ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format + msgid " -v, --verbose be verbose\n" + msgstr "" + " -v, --verbose bude vypisovat podrobné zprávy\n" + " o èinnosti\n" + +-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86 +-msgid " -n, --numeric dont resolve names\n" ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, fuzzy, c-format ++msgid " -n, --numeric don't resolve names\n" + msgstr "" + " -n, --numeric nebude pøevádìt èíselné adresy\n" + " na kanonická jména\n" + +-#: ../arp.c:625 ++#: ../arp.c:637 ++#, c-format + msgid "" + " -i, --device specify network interface (e.g. eth0)\n" + msgstr " -i, --device zadává sí»ové rozhraní (napø. eth0)\n" + +-#: ../arp.c:626 ++#: ../arp.c:638 ++#, c-format + msgid " -D, --use-device read from given device\n" + msgstr " -D, --use-device ète ze zadaného zaøízení\n" + +-#: ../arp.c:627 +-#, fuzzy ++#: ../arp.c:639 ++#, fuzzy, c-format + msgid " -A, -p, --protocol specify protocol family\n" + msgstr " -r, --route vypí¹e smìrovací tabulku\n" + +-#: ../arp.c:628 +-#, fuzzy ++#: ../arp.c:640 ++#, fuzzy, c-format + msgid "" +-" -f, --file read new entries from file or from " +-"/etc/ethers\n" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" + "\n" + msgstr "" + " -f, --file ète nové polo¾ky ze souboru\n" + "\n" + +-#: ../arp.c:630 ../rarp.c:181 ++#: ../arp.c:642 ../rarp.c:182 + #, c-format + msgid " =Use '-H ' to specify hardware address type. Default: %s\n" + msgstr "" + " =Pou¾ijte '-H pro zadání hardwarového typu adresy.\n" + " Implicitnì: %s\n" + +-#: ../arp.c:631 ../rarp.c:182 ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format + msgid " List of possible hardware types (which support ARP):\n" + msgstr " Seznam mo¾ných hardwarových typù (podporujících ARP):\n" + +-#: ../arp.c:664 ++#: ../arp.c:677 ../arp.c:762 + #, c-format + msgid "%s: hardware type not supported!\n" + msgstr "hardwarový typ %s není podporován!\n" + +-#: ../arp.c:668 ++#: ../arp.c:681 + #, c-format + msgid "%s: address family not supported!\n" + msgstr "tøída adres %s není podporována!\n" + +-#: ../arp.c:703 ++#: ../arp.c:716 ++#, c-format + msgid "arp: -N not yet supported.\n" + msgstr "arp: pøepínaè -N není zatím podporován\n" + +-#: ../arp.c:713 ++#: ../arp.c:726 + #, c-format + msgid "arp: %s: unknown address family.\n" + msgstr "arp: neznámá tøída adres %s.\n" + +-#: ../arp.c:722 ++#: ../arp.c:735 + #, c-format + msgid "arp: %s: unknown hardware type.\n" + msgstr "arp: neznámý hardwarový typ %s.\n" + +-#: ../arp.c:741 ++#: ../arp.c:754 + #, c-format + msgid "arp: %s: kernel only supports 'inet'.\n" + msgstr "arp: %s: jádro podporuje pouze 'inet'.\n" + +-#: ../arp.c:746 ++#: ../arp.c:767 + #, c-format + msgid "arp: %s: hardware type without ARP support.\n" + msgstr "arp: hardwarový typ %s nepodporuje ARP.\n" + +-#: ../hostname.c:69 ++#: ../hostname.c:71 + #, c-format + msgid "Setting nodename to `%s'\n" + msgstr "Nastavuji jméno uzlu na `%s'\n" + +-#: ../hostname.c:74 ++#: ../hostname.c:76 + #, c-format + msgid "%s: you must be root to change the node name\n" + msgstr "%s: jméno uzlu mù¾e zmìnit pouze superu¾ivatel\n" + +-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116 ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 + #, c-format + msgid "%s: name too long\n" + msgstr "jméno %s je pøíli¹ dlouhé\n" + +-#: ../hostname.c:89 ++#: ../hostname.c:91 + #, c-format + msgid "Setting hostname to `%s'\n" + msgstr "Nastavuji jméno poèítaèe na `%s'\n" + +-#: ../hostname.c:94 ++#: ../hostname.c:96 + #, c-format + msgid "%s: you must be root to change the host name\n" + msgstr "%s: jméno poèítaèe mù¾e zmìnit pouze superu¾ivatel\n" + +-#: ../hostname.c:108 ++#: ../hostname.c:109 + #, c-format + msgid "Setting domainname to `%s'\n" + msgstr "Nastavuji jméno domény na `%s'\n" + +-#: ../hostname.c:113 ++#: ../hostname.c:114 + #, c-format + msgid "%s: you must be root to change the domain name\n" + msgstr "%s: jméno domény mù¾e zmìnit pouze superu¾ivatel\n" +@@ -306,26 +326,29 @@ + msgid "Result: h_addr_list=`%s'\n" + msgstr "Výsledek: h_addr_list=`%s'\n" + +-#: ../hostname.c:209 ++#: ../hostname.c:208 + #, c-format + msgid "%s: can't open `%s'\n" + msgstr "%s: `%s' nelze otevøít\n" + +-#: ../hostname.c:223 ++#: ../hostname.c:222 ++#, c-format + msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" + msgstr "" + "Pou¾ití:\n" + " hostname [-v] {jméno|-F soubor} nastaví jméno poèítaèe (ze " + "souboru)\n" + +-#: ../hostname.c:224 ++#: ../hostname.c:223 ++#, c-format + msgid "" + " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" + msgstr "" + " domainname [-v] {jméno|-F soubor} nastaví jméno NIS domény (ze\n" + " souboru)\n" + +-#: ../hostname.c:226 ++#: ../hostname.c:225 ++#, c-format + msgid "" + " nodename [-v] {nodename|-F file} set DECnet node name (from " + "file)\n" +@@ -333,11 +356,13 @@ + " nodename [-v] {jméno|-F soubor} nastaví jméno DECnet uzlu (ze\n" + " souboru)\n" + +-#: ../hostname.c:228 ++#: ../hostname.c:227 ++#, c-format + msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" + msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] vypí¹e formátované jméno\n" + +-#: ../hostname.c:229 ++#: ../hostname.c:228 ++#, c-format + msgid "" + " hostname [-v] display hostname\n" + "\n" +@@ -345,7 +370,8 @@ + " hostname [-v] vypí¹e jméno poèítaèe\n" + "\n" + +-#: ../hostname.c:230 ++#: ../hostname.c:229 ++#, c-format + msgid "" + " hostname -V|--version|-h|--help print info and exit\n" + "\n" +@@ -353,7 +379,8 @@ + " hostname -V|--version|-h|--help vypí¹e informace a skonèí\n" + "\n" + +-#: ../hostname.c:231 ++#: ../hostname.c:230 ++#, c-format + msgid "" + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" +@@ -361,35 +388,43 @@ + " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" + "\n" + +-#: ../hostname.c:232 ++#: ../hostname.c:231 ++#, c-format + msgid " -s, --short short host name\n" + msgstr " -s, --short krátké jméno poèítaèe\n" + +-#: ../hostname.c:233 ++#: ../hostname.c:232 ++#, c-format + msgid " -a, --alias alias names\n" + msgstr " -a, --alias pøezdívky\n" + +-#: ../hostname.c:234 ++#: ../hostname.c:233 ++#, c-format + msgid " -i, --ip-address addresses for the hostname\n" + msgstr " -i, --ip-address adresy odpovídající jménu poèítaèe\n" + +-#: ../hostname.c:235 ++#: ../hostname.c:234 ++#, c-format + msgid " -f, --fqdn, --long long host name (FQDN)\n" + msgstr " -f, --fqdn, --long dlouhé jméno poèítaèe (kanonické)\n" + +-#: ../hostname.c:236 ++#: ../hostname.c:235 ++#, c-format + msgid " -d, --domain DNS domain name\n" + msgstr " -d, --domain jméno DNS domény\n" + +-#: ../hostname.c:237 ++#: ../hostname.c:236 ++#, c-format + msgid " -y, --yp, --nis NIS/YP domainname\n" + msgstr " -y, --yp, --nis jméno NIS/YP domény\n" + +-#: ../hostname.c:239 ++#: ../hostname.c:238 ++#, c-format + msgid " -n, --node DECnet node name\n" + msgstr " -n, --node jméno DECnet uzlu\n" + +-#: ../hostname.c:241 ++#: ../hostname.c:240 ++#, c-format + msgid "" + " -F, --file read hostname or NIS domainname from given file\n" + "\n" +@@ -397,7 +432,8 @@ + " -F, --file ète jméno poèítaèe èi nis domény ze souboru\n" + "\n" + +-#: ../hostname.c:243 ++#: ../hostname.c:242 ++#, c-format + msgid "" + " This command can read or set the hostname or the NIS domainname. You can\n" + " also read the DNS domain or the FQDN (fully qualified domain name).\n" +@@ -412,6 +448,7 @@ + msgstr "%s: Tímto pøíkazem nelze DNS jméno domény zmìnit\n" + + #: ../hostname.c:339 ++#, c-format + msgid "" + "\n" + "Unless you are using bind or NIS for host lookups you can change the DNS\n" +@@ -421,6 +458,7 @@ + "zmìnit\n" + + #: ../hostname.c:340 ++#, c-format + msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" + msgstr "" + "DNS jméno domény (je souèástí kanonického jména poèítaèe) v souboru\n" +@@ -441,349 +479,223 @@ + msgid "getnodename()=`%s'\n" + msgstr "getnodename()=`%s'\n" + +-#: ../ifconfig.c:159 +-#, c-format +-msgid "%-9.9s Link encap:%s " +-msgstr "%-9.9s Zapouzdøení:%s " ++#: ../ifconfig.c:107 ++#, fuzzy, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "" ++"Rozhr MTU Met PØ-OK PØ-CHYB PØ-ZAH PØ-PØT OD-OK OD-CHYB OD-ZAH OD-PØT " ++"PØZ\n" + +-#: ../ifconfig.c:164 +-#, c-format +-msgid "HWaddr %s " +-msgstr "HWadr %s " ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, fuzzy, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../ifconfig.c:167 ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 + #, c-format +-msgid "Media:%s" +-msgstr "Médium:%s" ++msgid "No support for INET on this system.\n" ++msgstr "Tento systém nepodporuje INET.\n" + +-#: ../ifconfig.c:169 +-msgid "(auto)" +-msgstr "(auto)" ++#: ../ifconfig.c:193 ++#, fuzzy, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../ifconfig.c:176 +-#, c-format +-msgid " %s addr:%s " +-msgstr " %s adr:%s " ++#: ../ifconfig.c:202 ++#, fuzzy, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] [[]
]\n" ++msgstr "" ++"Pou¾ití:\n" ++" ifconfig [-a] [-i] [-v] [[] ]\n" + +-#: ../ifconfig.c:179 ++#: ../ifconfig.c:204 + #, c-format +-msgid " P-t-P:%s " +-msgstr " P-t-P:%s " ++msgid " [add
[/]]\n" ++msgstr " [add [/]]\n" + +-# V ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání. +-# Tudi¾ bcast -> V¹esmìr :) +-#: ../ifconfig.c:182 ++#: ../ifconfig.c:205 + #, c-format +-msgid " Bcast:%s " +-msgstr " V¹esmìr:%s " ++msgid " [del
[/]]\n" ++msgstr " [del [/]]\n" + +-#: ../ifconfig.c:184 ++#: ../ifconfig.c:206 + #, c-format +-msgid " Mask:%s\n" +-msgstr "Maska:%s\n" ++msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" ++msgstr " [[-]broadcast []] [[-]pointopoint []]\n" + +-#: ../ifconfig.c:201 ++#: ../ifconfig.c:207 + #, c-format +-msgid " inet6 addr: %s/%d" +-msgstr " inet6-adr: %s/%d" ++msgid " [netmask
] [dstaddr
] [tunnel
]\n" ++msgstr " [netmask ] [dstaddr ] [tunnel ]\n" + +-#: ../ifconfig.c:203 +-msgid " Scope:" +-msgstr " Rozsah:" ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill ] [keepalive ]\n" ++msgstr " [outfill ] [keepalive ]\n" + +-#: ../ifconfig.c:206 +-msgid "Global" +-msgstr "Globál" ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw
] [metric ] [mtu ]\n" ++msgstr " [hw ] [metric ] [mtu ]\n" + +-#: ../ifconfig.c:209 +-msgid "Link" +-msgstr "Linka" ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" + +-#: ../ifconfig.c:212 +-msgid "Site" +-msgstr "Stanovi¹tì" ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" + + #: ../ifconfig.c:215 +-msgid "Compat" +-msgstr "Kompatibilita" ++#, c-format ++msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" ++msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" + +-#: ../ifconfig.c:218 +-msgid "Host" +-msgstr "Poèítaè" ++#: ../ifconfig.c:217 ++#, c-format ++msgid " [txqueuelen ]\n" ++msgstr " [txqueuelen délka]\n" + +-#: ../ifconfig.c:221 +-msgid "Unknown" +-msgstr "Neznám." ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" + +-#: ../ifconfig.c:236 ++#: ../ifconfig.c:222 + #, c-format +-msgid " IPX/Ethernet II addr:%s\n" +-msgstr " IPX/Ethernet II adr: %s\n" ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr "" ++" [up|down] ...\n" ++"\n" + +-#: ../ifconfig.c:239 ++#: ../ifconfig.c:224 + #, c-format +-msgid " IPX/Ethernet SNAP addr:%s\n" +-msgstr " IPX/Ethernet SNAP adr:%s\n" ++msgid " =Hardware Type.\n" ++msgstr " =Hardwarový Typ.\n" + +-#: ../ifconfig.c:242 ++#: ../ifconfig.c:225 + #, c-format +-msgid " IPX/Ethernet 802.2 addr:%s\n" +-msgstr " IPX/Ethernet 802.2 adr:%s\n" ++msgid " List of possible hardware types:\n" ++msgstr " Seznam mo¾ných hardwarových typù:\n" + +-#: ../ifconfig.c:245 ++#. 1 = ARPable ++#: ../ifconfig.c:227 + #, c-format +-msgid " IPX/Ethernet 802.3 addr:%s\n" +-msgstr " IPX/Ethernet 802.3 adr:%s\n" ++msgid " =Address family. Default: %s\n" ++msgstr " =tøída adres. Implicitní: %s\n" + +-#: ../ifconfig.c:255 ++#: ../ifconfig.c:228 + #, c-format +-msgid " EtherTalk Phase 2 addr:%s\n" +-msgstr " EtherTalk Phase 2 adr:%s\n" ++msgid " List of possible address families:\n" ++msgstr " Seznam mo¾ných tøíd adres:\n" + +-#: ../ifconfig.c:264 ++#: ../ifconfig.c:303 + #, c-format +-msgid " econet addr:%s\n" +-msgstr " econet adr:%s\n" ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "" + +-# Hic sunt leones ... +-#: ../ifconfig.c:270 +-msgid "[NO FLAGS] " +-msgstr "[®ÁDNÉ PØÍZNAKY]" ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "" + +-#: ../ifconfig.c:272 +-msgid "UP " +-msgstr "AKTIVOVÁNO " ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "Neznámý typ média.\n" + +-#: ../ifconfig.c:274 +-msgid "BROADCAST " +-msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ " ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "" + +-#: ../ifconfig.c:276 +-msgid "DEBUG " +-msgstr "DEBUG " ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:278 +-msgid "LOOPBACK " +-msgstr "SMYÈKA " ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "" + +-#: ../ifconfig.c:280 +-msgid "POINTOPOINT " +-msgstr "POINTOPOINT " ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "" + +-# ?? +-#: ../ifconfig.c:282 +-msgid "NOTRAILERS " +-msgstr "NOTRAILERS " ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "" + +-#: ../ifconfig.c:284 +-msgid "RUNNING " +-msgstr "BÌ®Í " ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "" + +-#: ../ifconfig.c:286 +-msgid "NOARP " +-msgstr "NEARP " ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "" + +-#: ../ifconfig.c:288 +-msgid "PROMISC " +-msgstr "PROMISK " ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: adresa %s je nesprávná.\n" + +-#: ../ifconfig.c:290 +-msgid "ALLMULTI " +-msgstr "ALLMULTI " ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format ++msgid "No support for INET6 on this system.\n" ++msgstr "Tento systém nepodporuje INET6.\n" + +-#: ../ifconfig.c:292 +-msgid "SLAVE " +-msgstr "SLAVE " ++#: ../ifconfig.c:780 ../ifconfig.c:871 ++#, c-format ++msgid "Interface %s not initialized\n" ++msgstr "" + +-#: ../ifconfig.c:294 +-msgid "MASTER " +-msgstr "MASTER " ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, fuzzy, c-format ++msgid "Bad address.\n" ++msgstr "%s: adresa %s je nesprávná.\n" + +-#: ../ifconfig.c:296 +-msgid "MULTICAST " +-msgstr "MULTICAST " +- +-#: ../ifconfig.c:299 +-msgid "DYNAMIC " +-msgstr "DYNAMIC " +- +-#: ../ifconfig.c:302 +-#, c-format +-msgid " MTU:%d Metric:%d" +-msgstr " MTU:%d Metrika:%d" +- +-#: ../ifconfig.c:306 +-#, c-format +-msgid " Outfill:%d Keepalive:%d" +-msgstr " Outfill:%d Keepalive:%d" +- +-#: ../ifconfig.c:320 +-#, c-format +-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" +-msgstr "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n" +- +-#: ../ifconfig.c:325 +-#, c-format +-msgid " compressed:%lu\n" +-msgstr " komprimováno:%lu\n" +- +-# carrier? +-#: ../ifconfig.c:329 +-#, c-format +-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" +-msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n" +- +-#: ../ifconfig.c:333 +-#, c-format +-msgid " collisions:%lu " +-msgstr " kolizí:%lu " +- +-#: ../ifconfig.c:335 +-#, c-format +-msgid "compressed:%lu " +-msgstr "komprimováno:%lu " +- +-#: ../ifconfig.c:337 +-#, c-format +-msgid "txqueuelen:%d " +-msgstr "délka odchozí fronty:%d " +- +-#: ../ifconfig.c:345 +-#, c-format +-msgid "Interrupt:%d " +-msgstr "Pøeru¹ení:%d " +- +-#. Only print devices using it for +-#. I/O maps +-#: ../ifconfig.c:348 +-#, c-format +-msgid "Base address:0x%x " +-msgstr "Vstupnì/Výstupní port:0x%x " +- +-#: ../ifconfig.c:350 +-#, c-format +-msgid "Memory:%lx-%lx " +-msgstr "Pamì»:%lx-%lx " +- +-#: ../ifconfig.c:353 +-#, c-format +-msgid "DMA chan:%x " +-msgstr "Kanál DMA:%x " +- +-#: ../ifconfig.c:384 ../ifconfig.c:405 +-#, c-format +-msgid "%s: unknown interface: %s\n" +-msgstr "%s: rozhraní %s není známo\n" +- +-#: ../ifconfig.c:421 +-msgid "" +-"Usage:\n" +-" ifconfig [-a] [-i] [-v] [[]
]\n" +-msgstr "" +-"Pou¾ití:\n" +-" ifconfig [-a] [-i] [-v] [[] ]\n" +- +-#: ../ifconfig.c:425 +-msgid " [add
[/]]\n" +-msgstr " [add [/]]\n" +- +-#: ../ifconfig.c:427 +-msgid " [del
[/]]\n" +-msgstr " [del [/]]\n" +- +-#: ../ifconfig.c:432 +-msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" +-msgstr " [[-]broadcast []] [[-]pointopoint []]\n" +- +-#: ../ifconfig.c:433 +-msgid " [netmask
] [dstaddr
] [tunnel
]\n" +-msgstr " [netmask ] [dstaddr ] [tunnel ]\n" +- +-#: ../ifconfig.c:436 +-msgid " [outfill ] [keepalive ]\n" +-msgstr " [outfill ] [keepalive ]\n" +- +-#: ../ifconfig.c:438 +-msgid " [hw
] [metric ] [mtu ]\n" +-msgstr " [hw ] [metric ] [mtu ]\n" +- +-#: ../ifconfig.c:439 +-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" +-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" +- +-#: ../ifconfig.c:440 +-msgid " [multicast] [[-]promisc]\n" +-msgstr " [multicast] [[-]promisc]\n" +- +-#: ../ifconfig.c:441 +-msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" +-msgstr " [mem_start ] [io_addr ] [irq ] [media ]\n" +- +-#: ../ifconfig.c:443 +-msgid " [txqueuelen ]\n" +-msgstr " [txqueuelen délka]\n" +- +-#: ../ifconfig.c:446 +-msgid " [[-]dynamic]\n" +-msgstr " [[-]dynamic]\n" +- +-#: ../ifconfig.c:448 +-msgid "" +-" [up|down] ...\n" +-"\n" +-msgstr "" +-" [up|down] ...\n" +-"\n" +- +-#: ../ifconfig.c:450 +-msgid " =Hardware Type.\n" +-msgstr " =Hardwarový Typ.\n" +- +-#: ../ifconfig.c:451 +-msgid " List of possible hardware types:\n" +-msgstr " Seznam mo¾ných hardwarových typù:\n" +- +-#. 1 = ARPable +-#: ../ifconfig.c:453 +-#, c-format +-msgid " =Address family. Default: %s\n" +-msgstr " =tøída adres. Implicitní: %s\n" +- +-#: ../ifconfig.c:454 +-msgid " List of possible address families:\n" +-msgstr " Seznam mo¾ných tøíd adres:\n" +- +-#: ../ifconfig.c:593 +-msgid "Unknown media type.\n" +-msgstr "Neznámý typ média.\n" +- +-#: ../ifconfig.c:881 ++#: ../ifconfig.c:885 + #, c-format +-msgid "%s: invalid %s address.\n" +-msgstr "%s: adresa %s je nesprávná.\n" +- +-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011 +-msgid "No support for INET6 on this system.\n" +-msgstr "Tento systém nepodporuje INET6.\n" +- +-#: ../ifconfig.c:983 + msgid "Address deletion not supported on this system.\n" + msgstr "Tento systém nepodporuje mazání adres.\n" + +-#: ../ifconfig.c:1066 +-msgid "No support for INET on this system.\n" +-msgstr "Tento systém nepodporuje INET.\n" ++#: ../ifconfig.c:957 ++#, fuzzy, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "Nevím, jak nastavit adresu tøídy %d.\n" + +-#: ../ifconfig.c:1076 ++#: ../ifconfig.c:983 ++#, c-format + msgid "No support for ECONET on this system.\n" + msgstr "Tento systém nepodporuje ECONET.\n" + +-#: ../ifconfig.c:1084 ++#: ../ifconfig.c:991 + #, c-format + msgid "Don't know how to set addresses for family %d.\n" + msgstr "Nevím, jak nastavit adresu tøídy %d.\n" + +-#: ../netstat.c:383 ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "" ++ ++#: ../netstat.c:434 + #, c-format + msgid "" + "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" +@@ -792,7 +704,8 @@ + "jste\n" + "byl superu¾ivatelem)\n" + +-#: ../netstat.c:387 ++#: ../netstat.c:438 ++#, c-format + msgid "" + "(Not all processes could be identified, non-owned process info\n" + " will not be shown, you would have to be root to see it all.)\n" +@@ -801,199 +714,223 @@ + "pouze o procesech, jich¾ jste vlastníkem. Aby jste mohl vidìt v¹e, musel\n" + "byste být superu¾ivatelem.)\n" + +-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166 ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 + msgid "LISTENING" + msgstr "NASLOUCHÁ" + +-#: ../netstat.c:395 ++#: ../netstat.c:446 + msgid "CONN SENT" + msgstr "CONN ODESLÁN" + +-#: ../netstat.c:396 ../netstat.c:1168 ++#: ../netstat.c:447 ../netstat.c:1268 + msgid "DISC SENT" + msgstr "DISC ODESLÁN" + +-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169 ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 + msgid "ESTABLISHED" + msgstr "SPOJENO" + +-#: ../netstat.c:419 ++#: ../netstat.c:470 ++#, c-format + msgid "Active NET/ROM sockets\n" + msgstr "Aktivní NET/ROM sokety\n" + +-#: ../netstat.c:420 ++#: ../netstat.c:471 ++#, c-format + msgid "" +-"User Dest Source Device State Vr/Vs Send-Q " +-"Recv-Q\n" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" + msgstr "" +-"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F " +-"Pøích-F\n" ++"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F Pøích-" ++"F\n" + +-#: ../netstat.c:430 ../netstat.c:1208 ++#: ../netstat.c:481 ../netstat.c:1308 + #, c-format + msgid "Problem reading data from %s\n" + msgstr "Chyba pøi ètení dat z %s\n" + + # následující radìji ponechat v originále ?! +-#: ../netstat.c:465 ++#: ../netstat.c:516 + msgid "SYN_SENT" + msgstr "SYN_SENT" + +-#: ../netstat.c:466 ++#: ../netstat.c:517 + msgid "SYN_RECV" + msgstr "SYN_RECV" + +-#: ../netstat.c:467 ++#: ../netstat.c:518 + msgid "FIN_WAIT1" + msgstr "FIN_WAIT1" + +-#: ../netstat.c:468 ++#: ../netstat.c:519 + msgid "FIN_WAIT2" + msgstr "FIN_WAIT2" + +-#: ../netstat.c:469 ++#: ../netstat.c:520 + msgid "TIME_WAIT" + msgstr "TIME_WAIT" + +-#: ../netstat.c:470 ++#: ../netstat.c:521 + msgid "CLOSE" + msgstr "ZAVØEN" + +-#: ../netstat.c:471 ++#: ../netstat.c:522 + msgid "CLOSE_WAIT" + msgstr "CLOSE_WAIT" + +-#: ../netstat.c:472 ++#: ../netstat.c:523 + msgid "LAST_ACK" + msgstr "POSLEDNÍ ACK" + +-#: ../netstat.c:473 ++#: ../netstat.c:524 + msgid "LISTEN" + msgstr "LISTEN" + +-#: ../netstat.c:474 ++#: ../netstat.c:525 + msgid "CLOSING" + msgstr "ZAVíRÁ" + +-#: ../netstat.c:544 ++#: ../netstat.c:596 + #, c-format + msgid "warning, got bogus igmp6 line %d.\n" + msgstr "varování, nesmyslný igmp6 øádek %d.\n" + +-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803 +-#: ../netstat.c:935 ../netstat.c:940 ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 + #, c-format + msgid "netstat: unsupported address family %d !\n" + msgstr "netstat: tøída adres %d není podporována !\n" + +-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582 ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 + #, c-format + msgid "warning, got bogus igmp line %d.\n" + msgstr "varování, nesmyslný igmp øádek %d.\n" + +-#: ../netstat.c:666 ++#: ../netstat.c:677 ++#, fuzzy, c-format ++msgid "Active X.25 sockets\n" ++msgstr "Aktivní AX.25 sokety\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, fuzzy, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n" ++ ++#: ../netstat.c:759 ++#, c-format + msgid "warning, got bogus tcp line.\n" + msgstr "varování, nesmyslný tcp øádek.\n" + +-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975 ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 + #, c-format + msgid "off (0.00/%ld/%d)" + msgstr "vyp (0.00/%ld/%d)" + +-#: ../netstat.c:708 ++#: ../netstat.c:804 + #, fuzzy, c-format + msgid "on (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:713 ++#: ../netstat.c:809 + #, fuzzy, c-format + msgid "keepalive (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:718 ++#: ../netstat.c:814 + #, fuzzy, c-format + msgid "timewait (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985 ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 + #, c-format + msgid "unkn-%d (%2.2f/%ld/%d)" + msgstr "nezn-%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:799 ++#: ../netstat.c:894 ++#, c-format + msgid "warning, got bogus udp line.\n" + msgstr "varování, nesmyslný udp øádek.\n" + +-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108 ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 + msgid "UNKNOWN" + msgstr "NEZNÁM" + +-#: ../netstat.c:860 ../netstat.c:980 ++#: ../netstat.c:958 ../netstat.c:1080 + #, c-format + msgid "on%d (%2.2f/%ld/%d)" + msgstr "zap%d (%2.2f/%ld/%d)" + +-#: ../netstat.c:949 ++#: ../netstat.c:1046 ++#, c-format + msgid "warning, got bogus raw line.\n" + msgstr "varování, nesmyslný 'raw' øádek.\n" + +-#: ../netstat.c:1028 ++#: ../netstat.c:1128 ++#, c-format + msgid "warning, got bogus unix line.\n" + msgstr "varování, netstat 'unix' øádek.\n" + +-#: ../netstat.c:1055 ++#: ../netstat.c:1155 + msgid "STREAM" + msgstr "STREAM" + +-#: ../netstat.c:1059 ++#: ../netstat.c:1159 + msgid "DGRAM" + msgstr "DGRAM" + +-#: ../netstat.c:1063 ++#: ../netstat.c:1163 + msgid "RAW" + msgstr "RAW" + +-#: ../netstat.c:1067 ++#: ../netstat.c:1167 + msgid "RDM" + msgstr "RDM" + +-#: ../netstat.c:1071 ++#: ../netstat.c:1171 + msgid "SEQPACKET" + msgstr "SEQPACKET" + +-#: ../netstat.c:1080 ++#: ../netstat.c:1180 + msgid "FREE" + msgstr "NEALOKOVÁN" + +-#: ../netstat.c:1096 ++#: ../netstat.c:1196 + msgid "CONNECTING" + msgstr "SPOJUJE" + +-#: ../netstat.c:1100 ++#: ../netstat.c:1200 + msgid "CONNECTED" + msgstr "SPOJEN" + +-#: ../netstat.c:1104 ++#: ../netstat.c:1204 + msgid "DISCONNECTING" + msgstr "ODPOJUJE" + +-#: ../netstat.c:1135 ++#: ../netstat.c:1235 ++#, c-format + msgid "Active UNIX domain sockets " + msgstr "Aktivní sokety domény UNIX " + +-#: ../netstat.c:1137 ../netstat.c:1666 ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format + msgid "(servers and established)" + msgstr "(servery a navázaná spojení)" + +-#: ../netstat.c:1140 ../netstat.c:1669 ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format + msgid "(only servers)" + msgstr "(pouze servery)" + +-#: ../netstat.c:1142 ../netstat.c:1671 ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format + msgid "(w/o servers)" + msgstr "(w/o servery)" + +-#: ../netstat.c:1145 ++#: ../netstat.c:1245 ++#, c-format + msgid "" + "\n" + "Proto RefCnt Flags Type State I-Node" +@@ -1001,90 +938,92 @@ + "\n" + "Proto Èítaè Pøíznaky Typ Stav I-Uzel" + +-#: ../netstat.c:1147 ++#: ../netstat.c:1247 ++#, c-format + msgid " Path\n" + msgstr " Cesta\n" + +-#: ../netstat.c:1167 ++#: ../netstat.c:1267 + msgid "SABM SENT" + msgstr "SABM ODESLÁN" + +-#: ../netstat.c:1170 ++#: ../netstat.c:1270 + msgid "RECOVERY" + msgstr "OBNOVA" + +-#: ../netstat.c:1184 ++#: ../netstat.c:1284 ++#, c-format + msgid "Active AX.25 sockets\n" + msgstr "Aktivní AX.25 sokety\n" + +-#: ../netstat.c:1185 ++#: ../netstat.c:1285 ++#, c-format + msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" + msgstr "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n" + +-#: ../netstat.c:1228 ++#: ../netstat.c:1328 + #, c-format + msgid "problem reading data from %s\n" + msgstr "chyba pøi ètení dat z %s\n" + +-#: ../netstat.c:1279 ++#: ../netstat.c:1379 ++#, c-format + msgid "" + "Active IPX sockets\n" + "Proto Recv-Q Send-Q Local Address Foreign Address " + "State" + msgstr "" + "Aktivní IPX sokety\n" +-"Proto Pøích-F Odch-F Lokál adresa Vzdálená adresa " +-" Stav" ++"Proto Pøích-F Odch-F Lokál adresa Vzdálená " ++"adresa Stav" + +-#: ../netstat.c:1281 ++#: ../netstat.c:1381 ++#, c-format + msgid " User" + msgstr " U¾ivatel" + +-#: ../netstat.c:1315 ++#: ../netstat.c:1415 + msgid "ESTAB" + msgstr "SPOJEN" + +-#: ../netstat.c:1323 ++#: ../netstat.c:1423 + msgid "UNK." + msgstr "NEZ." + +-#: ../netstat.c:1367 +-msgid " - no statistics available -" +-msgstr " - statistická data nejsou dostupná -" +- +-#: ../netstat.c:1370 +-msgid "[NO FLAGS]" +-msgstr "[®ÁDNÉ PØÍZNAKY]" +- +-#: ../netstat.c:1400 ++#: ../netstat.c:1461 ++#, c-format + msgid "Kernel Interface table\n" + msgstr "Tabulka rozhraní v jádru\n" + +-#: ../netstat.c:1401 ++#: ../netstat.c:1465 ++#, fuzzy, c-format + msgid "" +-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " + "Flg\n" + msgstr "" + "Rozhr MTU Met PØ-OK PØ-CHYB PØ-ZAH PØ-PØT OD-OK OD-CHYB OD-ZAH OD-PØT " + "PØZ\n" + +-#: ../netstat.c:1404 ++#: ../netstat.c:1469 + msgid "missing interface information" + msgstr "chybí informace o rozhraní" + +-#: ../netstat.c:1425 ++#: ../netstat.c:1492 ++#, c-format + msgid "" +-"usage: netstat [-veenNcCF] [] -r netstat " +-"{-V|--version|-h|--help}\n" ++"usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" + msgstr "" +-"Pou¾ití: netstat [--veenNcCF] [] -r netstat " +-"{-V|--version|-h|--help}\n" ++"Pou¾ití: netstat [--veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" + +-#: ../netstat.c:1426 ++#: ../netstat.c:1493 ++#, c-format + msgid " netstat [-vnNcaeol] [ ...]\n" + msgstr " netstat [-vnNcaeol] [ ...]\n" + +-#: ../netstat.c:1427 ++#: ../netstat.c:1494 ++#, c-format + msgid "" + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" +@@ -1092,27 +1031,32 @@ + " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" + "\n" + +-#: ../netstat.c:1429 ++#: ../netstat.c:1496 ++#, c-format + msgid " -r, --route display routing table\n" + msgstr " -r, --route vypí¹e smìrovací tabulku\n" + +-#: ../netstat.c:1430 ++#: ../netstat.c:1497 ++#, c-format + msgid " -i, --interfaces display interface table\n" + msgstr " -i, --interfaces vypí¹e tabulku rozhraní\n" + +-#: ../netstat.c:1431 ++#: ../netstat.c:1498 ++#, c-format + msgid " -g, --groups display multicast group memberships\n" + msgstr "" + " -g, --groups vypí¹e èlenství v multicast skupinách\n" + +-#: ../netstat.c:1432 ++#: ../netstat.c:1499 ++#, c-format + msgid "" + " -s, --statistics display networking statistics (like SNMP)\n" + msgstr "" + " -s, --statistics vypí¹e statistiku sí»ové aktivity (jako " + "SNMP)\n" + +-#: ../netstat.c:1434 ++#: ../netstat.c:1501 ++#, c-format + msgid "" + " -M, --masquerade display masqueraded connections\n" + "\n" +@@ -1120,20 +1064,45 @@ + " -M, --masquerade vypí¹e maskovaná spojení\n" + "\n" + +-#: ../netstat.c:1438 ../route.c:87 ++#: ../netstat.c:1505 ++#, fuzzy, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1506 ++#, fuzzy, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1507 ++#, fuzzy, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr "" ++" -n, --numeric nebude pøevádìt èíselné adresy\n" ++" na kanonická jména\n" ++ ++#: ../netstat.c:1508 ++#, c-format + msgid " -N, --symbolic resolve hardware names\n" + msgstr " -N, --symbolic pøevede hw jména\n" + +-#: ../netstat.c:1439 ../route.c:88 ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format + msgid " -e, --extend display other/more information\n" + msgstr " -e, --extend vypí¹e podrobnìj¹í informace\n" + +-#: ../netstat.c:1440 ++#: ../netstat.c:1510 ++#, c-format + msgid " -p, --programs display PID/Program name for sockets\n" + msgstr "" + " -p, --programs vypí¹e PID/jméno programu pro sokety\n" + +-#: ../netstat.c:1441 ++#: ../netstat.c:1511 ++#, c-format + msgid "" + " -c, --continuous continuous listing\n" + "\n" +@@ -1141,23 +1110,27 @@ + " -c, --continuous nepøeru¹ovaný výpis\n" + "\n" + +-#: ../netstat.c:1442 ++#: ../netstat.c:1512 ++#, c-format + msgid " -l, --listening display listening server sockets\n" + msgstr "" + " -l, --listening vypí¹e sokety, na nich¾ je nasloucháno\n" + +-#: ../netstat.c:1443 ++#: ../netstat.c:1513 ++#, c-format + msgid "" + " -a, --all, --listening display all sockets (default: connected)\n" + msgstr "" + " -a, --all, --listening vypí¹e v¹echny sokety (implicitnì: " + "spojené)\n" + +-#: ../netstat.c:1444 ++#: ../netstat.c:1514 ++#, c-format + msgid " -o, --timers display timers\n" + msgstr " -o, --timers zobrazí èasovaèe\n" + +-#: ../netstat.c:1445 ../route.c:89 ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format + msgid "" + " -F, --fib display Forwarding Information Base " + "(default)\n" +@@ -1165,112 +1138,126 @@ + " -F, --fib zobrazí Forwarding Infomation Base\n" + " (implicitní)\n" + +-#: ../netstat.c:1446 ../route.c:90 ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format + msgid "" + " -C, --cache display routing cache instead of FIB\n" + "\n" + msgstr " -C, --cache místo FIB zobrazí smìrovací cache\n" + +-#: ../netstat.c:1448 ++#: ../netstat.c:1518 ++#, c-format + msgid "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + msgstr "" +-" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx " +-"--netrom\n" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" + +-#: ../netstat.c:1449 ../route.c:92 +-#, c-format +-msgid " =Use '-A ' or '--' Default: %s\n" ++#: ../netstat.c:1519 ++#, fuzzy, c-format ++msgid " =Use '-6|-4' or '-A ' or '--'; default: %s\n" + msgstr " =Pou¾ijte '-A ' or '--' Implicitní: %s\n" + +-#: ../netstat.c:1450 ../route.c:93 ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format + msgid " List of possible address families (which support routing):\n" + msgstr " Seznam mo¾ných tøíd adres (podporujících smìrování):\n" + +-#: ../netstat.c:1663 ++#: ../netstat.c:1753 ++#, c-format + msgid "Active Internet connections " + msgstr "Aktivní Internetová spojení " + +-#: ../netstat.c:1673 ++#: ../netstat.c:1763 ++#, c-format + msgid "" + "\n" +-"Proto Recv-Q Send-Q Local Address Foreign Address State " +-" " ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " + msgstr "" + "\n" + "Proto Pøích-F Odch-F Místní Adresa Vzdálená Adresa Stav " + +-#: ../netstat.c:1675 ++#: ../netstat.c:1765 ++#, c-format + msgid " User Inode " + msgstr " U¾ivatel I-uzel " + +-#: ../netstat.c:1678 ++#: ../netstat.c:1768 ++#, c-format + msgid " Timer" + msgstr " Èasovaè" + +-#: ../netstat.c:1708 ++#: ../netstat.c:1798 ++#, c-format + msgid "IPv4 Group Memberships\n" + msgstr "Èlenství v IPv4 skupinách\n" + +-#: ../netstat.c:1709 ++#: ../netstat.c:1799 ++#, c-format + msgid "Interface RefCnt Group\n" + msgstr "Rozhraní Èítaè Skupina\n" + +-#: ../rarp.c:43 ++#: ../rarp.c:44 + msgid "This kernel does not support RARP.\n" + msgstr "Toto jádro nepodporuje RARP.\n" + +-#: ../rarp.c:82 ++#: ../rarp.c:83 + #, c-format + msgid "no RARP entry for %s.\n" + msgstr "pro %s neexistuje RARP polo¾ka.\n" + +-#: ../rarp.c:95 ++#: ../rarp.c:96 + #, c-format + msgid "%s: bad hardware address\n" + msgstr "hardwarová adresa %s je nesprávná\n" + +-#: ../rarp.c:127 ++#: ../rarp.c:128 + #, c-format + msgid "rarp: cannot open file %s:%s.\n" + msgstr "rarp: soubor %s:%s nelze otevøít.\n" + +-#: ../rarp.c:139 ++#: ../rarp.c:140 + #, c-format + msgid "rarp: format error at %s:%u\n" + msgstr "rarp: syntaktická chyba na øádku %2$u souboru %1$s\n" + +-#: ../rarp.c:143 ../rarp.c:287 ++#: ../rarp.c:144 ../rarp.c:289 + #, c-format + msgid "rarp: %s: unknown host\n" + msgstr "rarp: poèítaè %s není znám\n" + +-#: ../rarp.c:146 ++#: ../rarp.c:147 + #, c-format + msgid "rarp: cannot set entry from %s:%u\n" + msgstr "rarp: nelze nastavit polo¾ku z øádku %2$u souboru %1$s\n" + +-#: ../rarp.c:175 ++#: ../rarp.c:176 ++#, c-format + msgid "Usage: rarp -a list entries in cache.\n" + msgstr "Pou¾ití: rarp -a vypí¹e polo¾ky z cache.\n" + +-#: ../rarp.c:176 ++#: ../rarp.c:177 ++#, c-format + msgid " rarp -d delete entry from cache.\n" + msgstr " rarp -d sma¾e polo¾ku z cache.\n" + +-#: ../rarp.c:177 ++#: ../rarp.c:178 ++#, c-format + msgid " rarp [] -s add entry to cache.\n" + msgstr "" + " rarp [] -s pøidá polo¾ku do cache.\n" + +-#: ../rarp.c:178 ++#: ../rarp.c:179 ++#, c-format + msgid "" + " rarp -f add entries from /etc/ethers.\n" + msgstr "" + " rarp -f pøidá polo¾ky z /etc/ethers.\n" + +-#: ../rarp.c:179 ++#: ../rarp.c:180 ++#, c-format + msgid "" + " rarp -V display program version.\n" + "\n" +@@ -1279,24 +1266,26 @@ + "programu.\n" + "\n" + +-#: ../rarp.c:236 ++#: ../rarp.c:238 + #, c-format + msgid "%s: illegal option mix.\n" + msgstr "Kombinace pøepínaèù %s je nesprávná.\n" + +-#: ../rarp.c:267 ++#: ../rarp.c:269 + #, c-format + msgid "rarp: %s: unknown hardware type.\n" + msgstr "rarp: hardwarový typ %s není znám.\n" + +-#: ../route.c:79 ++#: ../route.c:80 ++#, c-format + msgid "" + "Usage: route [-nNvee] [-FC] [] List kernel routing tables\n" + msgstr "" + "Pou¾ití: route [-nNvee] [-FC] [] Zobrazí smìrovací tabulky v " + "jádru\n" + +-#: ../route.c:80 ++#: ../route.c:81 ++#, c-format + msgid "" + " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" + "\n" +@@ -1305,14 +1294,16 @@ + "AF.\n" + "\n" + +-#: ../route.c:82 ++#: ../route.c:83 ++#, c-format + msgid "" + " route {-h|--help} [] Detailed usage syntax for " + "specified AF.\n" + msgstr "" + " route {-h|--help [] Nápovìda pro pou¾ití s AF.\n" + +-#: ../route.c:83 ++#: ../route.c:84 ++#, c-format + msgid "" + " route {-V|--version} Display version/author and " + "exit.\n" +@@ -1321,15 +1312,23 @@ + " route {-V|--version} Vypí¹e oznaèení verze a autora\n" + " programu.\n" + ++#: ../route.c:92 ++#, fuzzy, c-format ++msgid " =Use '-A ' or '--'; default: %s\n" ++msgstr " =Pou¾ijte '-A ' or '--' Implicitní: %s\n" ++ + #: ../plipconfig.c:66 ++#, c-format + msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" + msgstr "Pou¾ití: plipconfig [-a] [-i] [-v] rozhraní\n" + + #: ../plipconfig.c:67 ++#, c-format + msgid " [nibble NN] [trigger NN]\n" + msgstr " [nibble NN] [trigger NN]\n" + + #: ../plipconfig.c:68 ++#, c-format + msgid " plipconfig -V | --version\n" + msgstr " plipconfig -V | --version\n" + +@@ -1338,25 +1337,30 @@ + msgid "%s\tnibble %lu trigger %lu\n" + msgstr "%s\tnibble %lu trigger %lu\n" + +-#: ../iptunnel.c:79 ++#: ../iptunnel.c:85 ++#, c-format + msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" + msgstr "Pou¾ití: iptunnel { add | change | del | show } [ JMÉNO ]\n" + +-#: ../iptunnel.c:80 ++#: ../iptunnel.c:86 ++#, c-format + msgid "" + " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" + msgstr "" + " [ mode { ipip | gre | sit } ] [ vzdálená ADR ] [ místní ADR ]\n" + +-#: ../iptunnel.c:81 ++#: ../iptunnel.c:87 ++#, c-format + msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" + msgstr " [ [i|o]seq ] [ [i|o]key KLÍÈ ] [ [i|o]csum ]\n" + +-#: ../iptunnel.c:82 ++#: ../iptunnel.c:88 ++#, c-format + msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" + msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev ZAØÍZENÍ ]\n" + +-#: ../iptunnel.c:83 ++#: ../iptunnel.c:89 ++#, c-format + msgid "" + " iptunnel -V | --version\n" + "\n" +@@ -1364,450 +1368,737 @@ + " iptunnel -V | --version\n" + "\n" + +-#: ../iptunnel.c:84 ++#: ../iptunnel.c:90 ++#, c-format + msgid "Where: NAME := STRING\n" + msgstr "Kde: JMÉNO := ØETÌZEC\n" + +-#: ../iptunnel.c:85 ++#: ../iptunnel.c:91 ++#, c-format + msgid " ADDR := { IP_ADDRESS | any }\n" + msgstr " ADR := { IP-ADRESA | any }\n" + +-#: ../iptunnel.c:86 ++#: ../iptunnel.c:92 ++#, c-format + msgid " TOS := { NUMBER | inherit }\n" + msgstr " TOS := { ÈÍSLO | inherit }\n" + +-#: ../iptunnel.c:87 ++#: ../iptunnel.c:93 ++#, c-format + msgid " TTL := { 1..255 | inherit }\n" + msgstr " TTL := { 1..255 | inherit }\n" + +-#: ../iptunnel.c:88 ++#: ../iptunnel.c:94 ++#, c-format + msgid " KEY := { DOTTED_QUAD | NUMBER }\n" + msgstr " KLÍÈ := { DOTTED_QUAD | ÈÍSLO }\n" + +-#: ../iptunnel.c:326 ++#: ../iptunnel.c:332 ++#, c-format + msgid "Keys are not allowed with ipip and sit.\n" + msgstr "S ipip a sit nejsou klíèe povoleny.\n" + +-#: ../iptunnel.c:346 ++#: ../iptunnel.c:352 ++#, c-format + msgid "Broadcast tunnel requires a source address.\n" + msgstr "Tunel se v¹esmìrovým vysíláním vy¾aduje zdrojovou adresu.\n" + +-#: ../iptunnel.c:361 ++#: ../iptunnel.c:367 ++#, c-format + msgid "ttl != 0 and noptmudisc are incompatible\n" + msgstr "ttl != 0 a noptmudisc se navzájem vyluèují\n" + +-#: ../iptunnel.c:373 ++#: ../iptunnel.c:379 ++#, c-format + msgid "cannot determine tunnel mode (ipip, gre or sit)\n" + msgstr "re¾im tunelu (ipip, gre èi sit) nelze zjistit\n" + +-#: ../iptunnel.c:411 ++#: ../iptunnel.c:417 + #, c-format + msgid "%s: %s/ip remote %s local %s " + msgstr "%s: %s/ip vzdálený %s místní %s " + +-#: ../iptunnel.c:415 ++#: ../iptunnel.c:421 + msgid "unknown" + msgstr "Neznám." + +-#: ../iptunnel.c:447 ++#: ../iptunnel.c:453 ++#, c-format + msgid " Drop packets out of sequence.\n" + msgstr " Zahazuje pakety mimo poøadí.\n" + +-#: ../iptunnel.c:449 ++#: ../iptunnel.c:455 ++#, c-format + msgid " Checksum in received packet is required.\n" + msgstr " Pøijímané pakety musí mít kontrolní souèet.\n" + + # ??? +-#: ../iptunnel.c:451 ++#: ../iptunnel.c:457 ++#, c-format + msgid " Sequence packets on output.\n" + msgstr " Øadí odchozí pakety.\n" + +-#: ../iptunnel.c:453 ++#: ../iptunnel.c:459 ++#, c-format + msgid " Checksum output packets.\n" + msgstr " Odchozí pakety budou mít kontrolní souèet.\n" + +-#: ../iptunnel.c:481 ++#: ../iptunnel.c:487 ++#, c-format + msgid "Wrong format of /proc/net/dev. Sorry.\n" + msgstr "Lituji, formát /proc/net/dev je chybný.\n" + +-#: ../iptunnel.c:494 ++#: ../iptunnel.c:500 + #, c-format + msgid "Failed to get type of [%s]\n" + msgstr "Typ [%s] se nepodaøilo zjistit.\n" + +-#: ../iptunnel.c:510 ++#: ../iptunnel.c:516 ++#, c-format + msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" + msgstr "RX: Pakety Bajty Chyby CsumChyb MimoPoø Mcasts\n" + +-#: ../iptunnel.c:513 ++#: ../iptunnel.c:519 ++#, c-format + msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" + msgstr "TX: Pakety Bajty Chyby DeadLoop NoRoute NoBufs\n" + +-#: ../statistics.c:45 ++#: ../statistics.c:47 + msgid "ICMP input histogram:" + msgstr "histogram ICMP vstupu:" + +-#: ../statistics.c:46 ++#: ../statistics.c:48 + msgid "ICMP output histogram:" + msgstr "histogram ICMP výstupu:" + +-#: ../statistics.c:63 ++#: ../statistics.c:65 + #, c-format + msgid "Forwarding is %s" + msgstr "Pøedávání je %s" + +-#: ../statistics.c:64 +-#, c-format +-msgid "Default TTL is %d" ++#: ../statistics.c:66 ++#, fuzzy, c-format ++msgid "Default TTL is %u" + msgstr "Implicitní TTL je %d" + +-#: ../statistics.c:65 +-#, c-format +-msgid "%d total packets received" ++#: ../statistics.c:67 ++#, fuzzy, c-format ++msgid "%u total packets received" + msgstr "celkem pøijmutých paketù: %d" + +-#: ../statistics.c:66 +-#, c-format +-msgid "%d with invalid headers" ++#: ../statistics.c:68 ++#, fuzzy, c-format ++msgid "%u with invalid headers" + msgstr "s nesprávnými hlavièkami: %d" + +-#: ../statistics.c:67 +-#, c-format +-msgid "%d with invalid addresses" ++#: ../statistics.c:69 ++#, fuzzy, c-format ++msgid "%u with invalid addresses" + msgstr "s nesprávnými adresami: %d" + +-#: ../statistics.c:68 +-#, c-format +-msgid "%d forwarded" ++#: ../statistics.c:70 ++#, fuzzy, c-format ++msgid "%u forwarded" + msgstr "pøedáno: %d" + +-#: ../statistics.c:69 +-#, c-format +-msgid "%d with unknown protocol" ++#: ../statistics.c:71 ++#, fuzzy, c-format ++msgid "%u with unknown protocol" + msgstr "s neznámým protokolem: %d" + +-#: ../statistics.c:70 +-#, c-format +-msgid "%d incoming packets discarded" ++#: ../statistics.c:72 ++#, fuzzy, c-format ++msgid "%u incoming packets discarded" + msgstr "poèet zahozených pøíchozích paketù: %d" + +-#: ../statistics.c:71 +-#, c-format +-msgid "%d incoming packets delivered" ++#: ../statistics.c:73 ++#, fuzzy, c-format ++msgid "%u incoming packets delivered" + msgstr "poèet doruèených pøíchozích paketù: %d" + +-#: ../statistics.c:72 +-#, c-format +-msgid "%d requests sent out" ++#: ../statistics.c:74 ++#, fuzzy, c-format ++msgid "%u requests sent out" + msgstr "poèet odeslaných po¾adavkù: %d" + + #. ? +-#: ../statistics.c:73 +-#, c-format +-msgid "%d outgoing packets dropped" ++#: ../statistics.c:75 ++#, fuzzy, c-format ++msgid "%u outgoing packets dropped" + msgstr "poèet zahozených odchozích paketù: %d" + +-#: ../statistics.c:74 +-#, c-format +-msgid "%d dropped because of missing route" ++#: ../statistics.c:76 ++#, fuzzy, c-format ++msgid "%u dropped because of missing route" + msgstr "zahozeno kvùli chybìjící cestì: %d" + +-#: ../statistics.c:75 +-#, c-format +-msgid "%d fragments dropped after timeout" ++#: ../statistics.c:77 ++#, fuzzy, c-format ++msgid "%u fragments dropped after timeout" + msgstr "poèet fragmentù zahozených po vypr¹ení èasu: %d" + +-#: ../statistics.c:76 +-#, c-format +-msgid "%d reassemblies required" ++#: ../statistics.c:78 ++#, fuzzy, c-format ++msgid "%u reassemblies required" + msgstr "poèet nutných znovusestavení: %d" + + #. ? +-#: ../statistics.c:77 +-#, c-format +-msgid "%d packets reassembled ok" ++#: ../statistics.c:79 ++#, fuzzy, c-format ++msgid "%u packets reassembled ok" + msgstr "poèet v poøádku znovu sestavených paketù: %d" + +-#: ../statistics.c:78 +-#, c-format +-msgid "%d packet reassembles failed" ++#: ../statistics.c:80 ++#, fuzzy, c-format ++msgid "%u packet reassembles failed" + msgstr "poèet paketù, je¾ se nepodaøilo znovu sestavit: %d" + +-#: ../statistics.c:79 +-#, c-format +-msgid "%d fragments received ok" ++#: ../statistics.c:81 ++#, fuzzy, c-format ++msgid "%u fragments received ok" + msgstr "poèet v poøádku pøijmutých fragmentù: %d" + +-#: ../statistics.c:80 +-#, c-format +-msgid "%d fragments failed" ++#: ../statistics.c:82 ++#, fuzzy, c-format ++msgid "%u fragments failed" + msgstr "poèet chybných fragmentù: %d" + +-#: ../statistics.c:81 +-#, c-format +-msgid "%d fragments created" ++#: ../statistics.c:83 ++#, fuzzy, c-format ++msgid "%u fragments created" + msgstr "poèet vytvoøených fragmentù: %d" + +-#: ../statistics.c:86 +-#, c-format +-msgid "%d ICMP messages received" ++#: ../statistics.c:88 ++#, fuzzy, c-format ++msgid "%u ICMP messages received" + msgstr "poèet pøijmutých ICMP zpráv: %d" + +-#: ../statistics.c:87 +-#, c-format +-msgid "%d input ICMP message failed." ++#: ../statistics.c:89 ++#, fuzzy, c-format ++msgid "%u input ICMP message failed." + msgstr "poèet chybných pøíchozích ICMP zpráv: %d" + +-#: ../statistics.c:88 ../statistics.c:101 +-#, c-format +-msgid "destination unreachable: %d" ++#: ../statistics.c:90 ../statistics.c:103 ++#, fuzzy, c-format ++msgid "destination unreachable: %u" + msgstr "adresát nedostupný: %d" + +-#: ../statistics.c:89 +-#, c-format +-msgid "timeout in transit: %d" ++#: ../statistics.c:91 ++#, fuzzy, c-format ++msgid "timeout in transit: %u" + msgstr "vypr¹el èas pøi pøenosu: %d" + +-#: ../statistics.c:90 ../statistics.c:103 +-#, c-format +-msgid "wrong parameters: %d" ++#: ../statistics.c:92 ../statistics.c:105 ++#, fuzzy, c-format ++msgid "wrong parameters: %u" + msgstr "chybné parametry: %d" + + #. ? +-#: ../statistics.c:91 +-#, c-format +-msgid "source quenchs: %d" ++#: ../statistics.c:93 ++#, fuzzy, c-format ++msgid "source quenches: %u" + msgstr "øízení toku dat: %d" + +-#: ../statistics.c:92 +-#, c-format +-msgid "redirects: %d" ++#: ../statistics.c:94 ++#, fuzzy, c-format ++msgid "redirects: %u" + msgstr "zmìna cesty: %d" + +-#: ../statistics.c:93 +-#, c-format +-msgid "echo requests: %d" ++#: ../statistics.c:95 ++#, fuzzy, c-format ++msgid "echo requests: %u" + msgstr "¾ádost o echo: %d" + +-#: ../statistics.c:94 ../statistics.c:107 +-#, c-format +-msgid "echo replies: %d" ++#: ../statistics.c:96 ../statistics.c:109 ++#, fuzzy, c-format ++msgid "echo replies: %u" + msgstr "odpovìï na ¾ádost o echo: %d" + +-#: ../statistics.c:95 +-#, c-format +-msgid "timestamp request: %d" ++#: ../statistics.c:97 ++#, fuzzy, c-format ++msgid "timestamp request: %u" + msgstr "¾ádost o èas: %d" + +-#: ../statistics.c:96 +-#, c-format +-msgid "timestamp reply: %d" ++#: ../statistics.c:98 ++#, fuzzy, c-format ++msgid "timestamp reply: %u" + msgstr "odpovìï na ¾ádost o èas: %d" + +-#: ../statistics.c:97 +-#, c-format +-msgid "address mask request: %d" ++#: ../statistics.c:99 ++#, fuzzy, c-format ++msgid "address mask request: %u" + msgstr "¾ádost o masku podsítì: %d" + + #. ? +-#: ../statistics.c:98 +-msgid "address mask replies" +-msgstr "odpovìdi na ¾ádost o masku podsítì" ++#: ../statistics.c:100 ../statistics.c:113 ++#, fuzzy, c-format ++msgid "address mask replies: %u" ++msgstr "odpovìï na ¾ádost o masku podsítì: %d" + + #. ? +-#: ../statistics.c:99 +-#, c-format +-msgid "%d ICMP messages sent" ++#: ../statistics.c:101 ++#, fuzzy, c-format ++msgid "%u ICMP messages sent" + msgstr "poèet odeslaných ICMP zpráv: %d" + +-#: ../statistics.c:100 +-#, c-format +-msgid "%d ICMP messages failed" ++#: ../statistics.c:102 ++#, fuzzy, c-format ++msgid "%u ICMP messages failed" + msgstr "poèet chybných ICMP zpráv: %d" + +-#: ../statistics.c:102 +-#, c-format +-msgid "time exceeded: %d" ++#: ../statistics.c:104 ++#, fuzzy, c-format ++msgid "time exceeded: %u" + msgstr "vypr¹ení ¾ivotnosti: %d" + + #. ? +-#: ../statistics.c:104 +-#, c-format +-msgid "source quench: %d" ++#: ../statistics.c:106 ++#, fuzzy, c-format ++msgid "source quench: %u" + msgstr "øízení toku dat: %d" + +-#: ../statistics.c:105 +-#, c-format +-msgid "redirect: %d" ++#: ../statistics.c:107 ++#, fuzzy, c-format ++msgid "redirect: %u" + msgstr "zmìna cesty: %d" + +-#: ../statistics.c:106 +-#, c-format +-msgid "echo request: %d" ++#: ../statistics.c:108 ++#, fuzzy, c-format ++msgid "echo request: %u" + msgstr "¾ádost o echo: %d" + +-#: ../statistics.c:108 +-#, c-format +-msgid "timestamp requests: %d" ++#: ../statistics.c:110 ++#, fuzzy, c-format ++msgid "timestamp requests: %u" + msgstr "¾ádost o èas: %d" + +-#: ../statistics.c:109 +-#, c-format +-msgid "timestamp replies: %d" ++#: ../statistics.c:111 ++#, fuzzy, c-format ++msgid "timestamp replies: %u" + msgstr "odpovìï na ¾ádost o èas: %d" + +-#: ../statistics.c:110 +-#, c-format +-msgid "address mask requests: %d" ++#: ../statistics.c:112 ++#, fuzzy, c-format ++msgid "address mask requests: %u" + msgstr "¾ádost o masku podsítì: %d" + +-#: ../statistics.c:111 +-#, c-format +-msgid "address mask replies: %d" +-msgstr "odpovìï na ¾ádost o masku podsítì: %d" +- +-#: ../statistics.c:116 ++#: ../statistics.c:118 + #, c-format + msgid "RTO algorithm is %s" + msgstr "RTO algoritmus je %s" + +-#: ../statistics.c:120 +-#, c-format +-msgid "%d active connections openings" ++#: ../statistics.c:122 ++#, fuzzy, c-format ++msgid "%u active connections openings" + msgstr "poèet aktivnì navázaných spojení: %d" + +-#: ../statistics.c:121 +-#, c-format +-msgid "%d passive connection openings" ++#: ../statistics.c:123 ++#, fuzzy, c-format ++msgid "%u passive connection openings" + msgstr "poèet pasivnì navázaných spojení: %d" + +-#: ../statistics.c:122 +-#, c-format +-msgid "%d failed connection attempts" ++#: ../statistics.c:124 ++#, fuzzy, c-format ++msgid "%u failed connection attempts" + msgstr "poèet neúspì¹ných pokusù o spojení: %d" + +-#: ../statistics.c:123 +-#, c-format +-msgid "%d connection resets received" ++#: ../statistics.c:125 ++#, fuzzy, c-format ++msgid "%u connection resets received" + msgstr "poèet pøijmutých resetù: %d" + +-#: ../statistics.c:124 +-#, c-format +-msgid "%d connections established" ++#: ../statistics.c:126 ++#, fuzzy, c-format ++msgid "%u connections established" + msgstr "poèet navázaných spojení: %d" + +-#: ../statistics.c:125 +-#, c-format +-msgid "%d segments received" ++#: ../statistics.c:127 ++#, fuzzy, c-format ++msgid "%u segments received" + msgstr "poèet pøijmutých segmentù: %d" + +-#: ../statistics.c:126 +-#, c-format +-msgid "%d segments send out" ++#: ../statistics.c:128 ++#, fuzzy, c-format ++msgid "%u segments send out" + msgstr "poèet odeslaných segmentù: %d" + +-#: ../statistics.c:127 +-#, c-format +-msgid "%d segments retransmited" ++#: ../statistics.c:129 ++#, fuzzy, c-format ++msgid "%u segments retransmited" + msgstr "poèet pøenesených segmentù: %d" + +-#: ../statistics.c:128 +-#, c-format +-msgid "%d bad segments received." ++#: ../statistics.c:130 ++#, fuzzy, c-format ++msgid "%u bad segments received." + msgstr "poèet chybných pøíchozích segmentù: %d." + +-#: ../statistics.c:129 +-#, c-format +-msgid "%d resets sent" ++#: ../statistics.c:131 ++#, fuzzy, c-format ++msgid "%u resets sent" + msgstr "poèet odeslaných resetù: %d" + +-#: ../statistics.c:134 +-#, c-format +-msgid "%d packets received" ++#: ../statistics.c:136 ++#, fuzzy, c-format ++msgid "%u packets received" + msgstr "poèet pøijmutých paketù: %d" + +-#: ../statistics.c:135 +-#, c-format +-msgid "%d packets to unknown port received." ++#: ../statistics.c:137 ++#, fuzzy, c-format ++msgid "%u packets to unknown port received." + msgstr "poèet paketù pøijmutých pro neznámý port: %d." + +-#: ../statistics.c:136 +-#, c-format +-msgid "%d packet receive errors" ++#: ../statistics.c:138 ++#, fuzzy, c-format ++msgid "%u packet receive errors" + msgstr "poèet chyb pøi pøíjmu paketù: %d" + +-#: ../statistics.c:137 +-#, c-format +-msgid "%d packets sent" ++#: ../statistics.c:139 ++#, fuzzy, c-format ++msgid "%u packets sent" + msgstr "poèet odeslaných paketù: %d" + +-#: ../statistics.c:142 +-#, c-format +-msgid "%d SYN cookies sent" ++#: ../statistics.c:144 ++#, fuzzy, c-format ++msgid "%u SYN cookies sent" + msgstr "poèet odeslaných SYN cookies: %d" + +-#: ../statistics.c:143 +-#, c-format +-msgid "%d SYN cookies received" ++#: ../statistics.c:145 ++#, fuzzy, c-format ++msgid "%u SYN cookies received" + msgstr "poèet pøijmutých SYN cookies: %d" + +-#: ../statistics.c:144 +-#, c-format +-msgid "%d invalid SYN cookies received" ++#: ../statistics.c:146 ++#, fuzzy, c-format ++msgid "%u invalid SYN cookies received" + msgstr "poèet chybných pøíchozích SYN cookies: %d" + +-#: ../statistics.c:146 +-#, c-format +-msgid "%d resets received for embryonic SYN_RECV sockets" ++#: ../statistics.c:148 ++#, fuzzy, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" + msgstr "poèet resetù pøijmutých pro sokety ve stavu SYN_PØÍCH: %d" + +-#: ../statistics.c:148 +-#, c-format +-msgid "%d packets pruned from receive queue because of socket buffer overrun" ++#: ../statistics.c:150 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" + msgstr "poèet paketù odstranìných z fronty kvùli pøeteèení bufferu soketu: %d" + + #. obsolete: 2.2.0 doesn't do that anymore +-#: ../statistics.c:151 +-#, c-format +-msgid "%d packets pruned from out-of-order queue" ++#: ../statistics.c:153 ++#, fuzzy, c-format ++msgid "%u packets pruned from receive queue" + msgstr "poèet paketù odstranìných z fronty mimo-poøadí: %d" + +-#: ../statistics.c:152 +-#, c-format ++#: ../statistics.c:154 ++#, fuzzy, c-format + msgid "" +-"%d packets dropped from out-of-order queue because of socket buffer overrun" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" + msgstr "" + "poèet paketù zahozených z fronty mimo-poøadí kvùli pøeteèení bufferu soketu: " + "%d" + +-#: ../statistics.c:154 +-#, c-format +-msgid "%d ICMP packets dropped because they were out-of-window" ++#: ../statistics.c:156 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" + msgstr "poèet ICMP paketù zahozených, proto¾e byly mimo-okno: %d" + +-#: ../statistics.c:156 +-#, c-format +-msgid "%d ICMP packets dropped because socket was locked" ++#: ../statistics.c:158 ++#, fuzzy, c-format ++msgid "%u ICMP packets dropped because socket was locked" + msgstr "poèet ICMP paketù zahozených kvùli zamèenému soketu: %d" + ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "" ++ ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "" ++ ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "" ++ ++#: ../statistics.c:169 ++#, fuzzy, c-format ++msgid "%u delayed acks sent" ++msgstr "poèet odeslaných paketù: %d" ++ ++#: ../statistics.c:170 ++#, c-format ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "" ++ ++#: ../statistics.c:172 ++#, c-format ++msgid "Quick ack mode was activated %u times" ++msgstr "" ++ ++#: ../statistics.c:173 ++#, c-format ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "" ++ ++#: ../statistics.c:175 ++#, c-format ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "" ++ ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "" ++ ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "" ++ ++#: ../statistics.c:182 ++#, fuzzy, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "poèet paketù odstranìných z fronty mimo-poøadí: %d" ++ ++#: ../statistics.c:183 ++#, fuzzy, c-format ++msgid "%u packet headers predicted" ++msgstr "poèet pøijmutých paketù: %d" ++ ++#: ../statistics.c:184 ++#, c-format ++msgid "%u packets header predicted and directly queued to user" ++msgstr "" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "" ++ ++#: ../statistics.c:188 ++#, fuzzy, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "poèet paketù pøijmutých pro neznámý port: %d." ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "" ++ ++#: ../statistics.c:192 ++#, fuzzy, c-format ++msgid "%u bad SACKs received" ++msgstr "poèet chybných pøíchozích segmentù: %d." ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "" ++ ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "" ++ ++#: ../statistics.c:201 ++#, fuzzy, c-format ++msgid "%u retransmits lost" ++msgstr "poèet odeslaných resetù: %d" ++ ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "" ++ ++#: ../statistics.c:205 ++#, fuzzy, c-format ++msgid "%u fast retransmits" ++msgstr "poèet pøenesených segmentù: %d" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "" ++ ++#: ../statistics.c:209 ++#, fuzzy, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "poèet pøenesených segmentù: %d" ++ ++#: ../statistics.c:210 ++#, fuzzy, c-format ++msgid "%u sack retransmits failed" ++msgstr "poèet paketù, je¾ se nepodaøilo znovu sestavit: %d" ++ ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "" ++ ++#: ../statistics.c:212 ++#, fuzzy, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "poèet paketù odstranìných z fronty kvùli pøeteèení bufferu soketu: %d" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "" ++ ++#: ../statistics.c:215 ++#, fuzzy, c-format ++msgid "%u DSACKs received" ++msgstr "poèet pøijmutých paketù: %d" ++ ++#: ../statistics.c:216 ++#, fuzzy, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "celkem pøijmutých paketù: %d" ++ ++#: ../statistics.c:217 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:218 ++#, fuzzy, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:219 ++#, fuzzy, c-format ++msgid "%u connections reset due to early user close" ++msgstr "poèet pøijmutých resetù: %d" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "" ++ ++#: ../statistics.c:221 ++#, fuzzy, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "poèet pøijmutých resetù: %d" ++ + #: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "" ++ ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "" ++ ++#: ../statistics.c:292 + msgid "enabled" + msgstr "zapnuto" + +-#: ../statistics.c:222 ++#: ../statistics.c:292 + msgid "disabled" + msgstr "vypnuto" + +-#: ../statistics.c:272 +-#, c-format +-msgid "unknown title %s\n" +-msgstr "titulek %s je neznámý\n" +- +-#: ../statistics.c:298 ++#: ../statistics.c:375 + msgid "error parsing /proc/net/snmp" + msgstr "chyba pøi zpracování /proc/net/snmp" + +-#: ../statistics.c:311 ++#: ../statistics.c:388 + msgid "cannot open /proc/net/snmp" + msgstr "/proc/net/snmp nelze otevøít" + +@@ -1821,89 +2112,95 @@ + msgid "Cannot change line discipline to `%s'.\n" + msgstr "Linkovou disciplínu nelze na `%s' zmìnit.\n" + +-#: ../lib/af.c:145 ../lib/hw.c:148 ++#: ../lib/af.c:153 ../lib/hw.c:161 + msgid "UNSPEC" + msgstr "NEZNÁM" + +-#: ../lib/af.c:147 ++#: ../lib/af.c:155 + msgid "UNIX Domain" + msgstr "Doména UNIX" + +-#: ../lib/af.c:150 ++#: ../lib/af.c:158 + msgid "DARPA Internet" + msgstr "DARPA Internet" + +-#: ../lib/af.c:153 ++#: ../lib/af.c:161 + msgid "IPv6" + msgstr "IPv6" + +-#: ../lib/af.c:156 ../lib/hw.c:169 ++#: ../lib/af.c:164 ../lib/hw.c:182 + msgid "AMPR AX.25" + msgstr "AMPR AX.25" + +-#: ../lib/af.c:159 ../lib/hw.c:175 ++#: ../lib/af.c:167 ../lib/hw.c:188 + msgid "AMPR NET/ROM" + msgstr "AMPR NET/ROM" + +-#: ../lib/af.c:162 ++#: ../lib/af.c:170 + msgid "Novell IPX" + msgstr "Novell IPX" + +-#: ../lib/af.c:165 ++#: ../lib/af.c:173 + msgid "Appletalk DDP" + msgstr "Appletalk DDP" + +-#: ../lib/af.c:168 ../lib/hw.c:207 ++#: ../lib/af.c:176 ../lib/hw.c:223 + msgid "Econet" + msgstr "Econet" + +-#: ../lib/af.c:171 ../lib/hw.c:172 ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 + msgid "AMPR ROSE" + msgstr "AMPR ROSE" + +-#: ../lib/af.c:174 ../lib/hw.c:160 ++#: ../lib/af.c:185 ../lib/hw.c:173 + msgid "Ash" + msgstr "Ash" + +-#: ../lib/af.c:232 ++#: ../lib/af.c:243 ++#, c-format + msgid "Please don't supply more than one address family.\n" + msgstr "Nezadávejte více ne¾ jednu tøídu adres.\n" + +-#: ../lib/af.c:293 ++#: ../lib/af.c:304 ++#, c-format + msgid "Too much address family arguments.\n" + msgstr "Bylo zadáno pøíli¹ mnoho tøíd adres.\n" + +-#: ../lib/af.c:304 ++#: ../lib/af.c:315 + #, c-format + msgid "Unknown address family `%s'.\n" + msgstr "Tøída adres `%s' není známa.\n" + +-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 +-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259 +-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71 +-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76 +-msgid "[NONE SET]" +-msgstr "[NENASTAVENO]" +- +-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96 ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 + #, c-format + msgid "in_arcnet(%s): invalid arcnet address!\n" + msgstr "in_arcnet(%s): chybná arcnet adresa!\n" + +-#: ../lib/arcnet.c:108 ++#: ../lib/arcnet.c:97 + #, c-format + msgid "in_arcnet(%s): trailing : ignored!\n" + msgstr "in_arcnet(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/arcnet.c:120 ++#: ../lib/arcnet.c:109 + #, c-format + msgid "in_arcnet(%s): trailing junk!\n" + msgstr "in_arcnet(%s): nadbyteèné znaky!\n" + + #: ../lib/ash.c:81 ++#, c-format + msgid "Malformed Ash address" + msgstr "Chybná Ash adresa" + ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[NENASTAVENO]" ++ + #: ../lib/ax25.c:97 ../lib/netrom.c:100 + msgid "Invalid callsign" + msgstr "Nesprávný volací znak" +@@ -1913,22 +2210,21 @@ + msgstr "Volací znak je pøíli¹ dlouhý." + + #: ../lib/ax25_gr.c:47 ++#, c-format + msgid "AX.25 not configured in this system.\n" + msgstr "AX.25 není na tomto systému nakonfigurováno.\n" + + #: ../lib/ax25_gr.c:50 ++#, c-format + msgid "Kernel AX.25 routing table\n" + msgstr "Smìrovací tabulka v jádru pro AX.25\n" + + #. xxx + #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format + msgid "Destination Iface Use\n" + msgstr "Adresát Rozhraní U¾ití\n" + +-#: ../lib/ddp_gr.c:21 +-msgid "Routing table for `ddp' not yet supported.\n" +-msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\n" +- + #: ../lib/ether.c:74 ../lib/ether.c:91 + #, c-format + msgid "in_ether(%s): invalid ether address!\n" +@@ -1944,153 +2240,171 @@ + msgid "in_ether(%s): trailing junk!\n" + msgstr "in_ether(%s): nadbyteèné znaky!\n" + +-#: ../lib/fddi.c:95 ../lib/fddi.c:110 ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 + #, c-format + msgid "in_fddi(%s): invalid fddi address!\n" + msgstr "in_fddi(%s): chybná fddi adresa!\n" + +-#: ../lib/fddi.c:122 ++#: ../lib/fddi.c:111 + #, c-format + msgid "in_fddi(%s): trailing : ignored!\n" + msgstr "in_fddi(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/fddi.c:134 ++#: ../lib/fddi.c:123 + #, c-format + msgid "in_fddi(%s): trailing junk!\n" + msgstr "in_fddi(%s): nadbyteèné znaky!\n" + +-#: ../lib/getroute.c:97 ../lib/setroute.c:76 ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 + #, c-format + msgid "Address family `%s' not supported.\n" + msgstr "Tøída adres `%s' není podporována.\n" + +-#: ../lib/getroute.c:103 ../lib/setroute.c:80 ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 + #, c-format + msgid "No routing for address family `%s'.\n" + msgstr "Pro tøídu adres `%s' není ¾ádné smìrování.\n" + +-#: ../lib/hippi.c:96 ../lib/hippi.c:111 ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 + #, c-format + msgid "in_hippi(%s): invalid hippi address!\n" + msgstr "in_hippi(%s): chybná hippi adresa!\n" + +-#: ../lib/hippi.c:123 ++#: ../lib/hippi.c:111 + #, c-format + msgid "in_hippi(%s): trailing : ignored!\n" + msgstr "in_hippi(%s): nadbyteèné : ignorováno!\n" + +-#: ../lib/hippi.c:134 ++#: ../lib/hippi.c:122 + #, c-format + msgid "in_hippi(%s): trailing junk!\n" + msgstr "in_hippi(%s): nadbyteèné znaky!\n" + +-#: ../lib/hw.c:147 ++#: ../lib/hw.c:160 + msgid "Local Loopback" + msgstr "Místní smyèka" + +-#: ../lib/hw.c:150 ++#: ../lib/hw.c:163 + msgid "Serial Line IP" + msgstr "IP po sériové lince" + +-#: ../lib/hw.c:151 ++#: ../lib/hw.c:164 + msgid "VJ Serial Line IP" + msgstr "Vj IP po sériové lince" + +-#: ../lib/hw.c:152 ++#: ../lib/hw.c:165 + msgid "6-bit Serial Line IP" + msgstr "6bitový IP po sériové lince" + +-#: ../lib/hw.c:153 ++#: ../lib/hw.c:166 + msgid "VJ 6-bit Serial Line IP" + msgstr "6bitový VJ IP po sériové lince" + +-#: ../lib/hw.c:154 ++#: ../lib/hw.c:167 + msgid "Adaptive Serial Line IP" + msgstr "Adaptivní IP po sériové lince" + +-#: ../lib/hw.c:157 ++#: ../lib/hw.c:170 + msgid "Ethernet" + msgstr "Ethernet" + +-#: ../lib/hw.c:163 ++#: ../lib/hw.c:176 + msgid "Fiber Distributed Data Interface" + msgstr "Fiber Distributed Data Interface" + +-#: ../lib/hw.c:166 ++#: ../lib/hw.c:179 + msgid "HIPPI" + msgstr "HIPPI" + +-#: ../lib/hw.c:178 ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "" ++ ++#: ../lib/hw.c:194 + msgid "IPIP Tunnel" + msgstr "IPIP Tunnel" + +-#: ../lib/hw.c:181 ++#: ../lib/hw.c:197 + msgid "Point-to-Point Protocol" + msgstr "Point-to-Point Protokol" + +-#: ../lib/hw.c:184 ++#: ../lib/hw.c:200 + msgid "(Cisco)-HDLC" + msgstr "(Cisco)-HDLC" + +-#: ../lib/hw.c:185 ++#: ../lib/hw.c:201 + msgid "LAPB" + msgstr "LAPB" + +-#: ../lib/hw.c:188 ++#: ../lib/hw.c:204 + msgid "ARCnet" + msgstr "ARCnet" + +-#: ../lib/hw.c:191 ++#: ../lib/hw.c:207 + msgid "Frame Relay DLCI" + msgstr "Frame Relay DLCI" + +-#: ../lib/hw.c:192 ++#: ../lib/hw.c:208 + msgid "Frame Relay Access Device" + msgstr "Pøístupové zaøízení Frame Relay" + +-#: ../lib/hw.c:195 ++#: ../lib/hw.c:211 + msgid "IPv6-in-IPv4" + msgstr "IPv6-in-IPv4" + +-#: ../lib/hw.c:198 ++#: ../lib/hw.c:214 + msgid "IrLAP" + msgstr "IrLAP" + +-#: ../lib/hw.c:201 ++#: ../lib/hw.c:217 + msgid "16/4 Mbps Token Ring" + msgstr "Token Ring 16/4 Mb/s" + +-#: ../lib/hw.c:203 ++#: ../lib/hw.c:219 + #, fuzzy + msgid "16/4 Mbps Token Ring (New)" + msgstr "Token Ring 16/4 Mb/s" + ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "" ++ + #: ../lib/inet.c:153 ../lib/inet6.c:79 + #, c-format + msgid "rresolve: unsupport address family %d !\n" + msgstr "rresolve: tøída adres %d není podporována!\n" + +-#: ../lib/inet6_gr.c:79 ++#: ../lib/inet6.c:131 ++#, fuzzy ++msgid "[UNKNOWN]" ++msgstr "NEZNÁM" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format + msgid "INET6 (IPv6) not configured in this system.\n" + msgstr "INET6 (IPv6) není na tomto systému nakonfigurováno.\n" + +-#: ../lib/inet6_gr.c:82 ++#: ../lib/inet6_gr.c:74 ++#, c-format + msgid "Kernel IPv6 routing table\n" + msgstr "Smìrovací tabulka v jádru pro IPv6\n" + +-#: ../lib/inet6_gr.c:84 ++#: ../lib/inet6_gr.c:76 ++#, c-format + msgid "" +-"Destination Next Hop " +-" Flags Metric Ref Use Iface\n" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" + msgstr "" +-"Adresát Dal¹í Smìrovaè " +-" Pøízn Metrika Odkaz U¾it Rozhraní\n" ++"Adresát Dal¹í " ++"Smìrovaè Pøízn Metrika Odkaz U¾it Rozhraní\n" + +-#: ../lib/inet6_gr.c:158 ++#: ../lib/inet6_gr.c:150 ++#, c-format + msgid "Kernel IPv6 Neighbour Cache\n" + msgstr "Cache sousedù v jádru pro IPv6\n" + +-#: ../lib/inet6_gr.c:161 ++#: ../lib/inet6_gr.c:153 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State\n" +@@ -2098,7 +2412,8 @@ + "Soused HW Adresa Rozhraní Pøízn " + "Odkazy Stav\n" + +-#: ../lib/inet6_gr.c:165 ++#: ../lib/inet6_gr.c:157 ++#, c-format + msgid "" + "Neighbour HW Address Iface Flags " + "Ref State Stale(sec) Delete(sec)\n" +@@ -2107,30 +2422,37 @@ + "Pøíznaky Odkazy Stav Pro¹lý(sec) Smazat(sec)\n" + + #: ../lib/inet6_sr.c:46 ++#, c-format + msgid "Usage: inet6_route [-vF] del Target\n" + msgstr "Pou¾ití: inet6_route [-vF] del Cíl\n" + + #: ../lib/inet6_sr.c:47 ++#, c-format + msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" + msgstr " inet6_route [-vF] add Cíl [gw Gw] [metrika M] [[dev] If]\n" + + #: ../lib/inet6_sr.c:48 ++#, c-format + msgid " inet6_route [-FC] flush NOT supported\n" + msgstr " inet6_route [-FC] flush NENÍ podporováno\n" + +-#: ../lib/inet6_sr.c:182 ++#: ../lib/inet6_sr.c:188 ++#, c-format + msgid "Flushing `inet6' routing table not supported\n" + msgstr "Smìrovací tabulku `inet6' nelze vyprazdòovat\n" + + #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format + msgid "INET (IPv4) not configured in this system.\n" + msgstr "INET (IPv4) není na tomto systému nakonfigurováno.\n" + + #: ../lib/inet_gr.c:53 ++#, c-format + msgid "Kernel IP routing table\n" + msgstr "Smìrovací tabulka v jádru pro IP\n" + + #: ../lib/inet_gr.c:56 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface\n" +@@ -2139,6 +2461,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:59 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags MSS Window irtt " + "Iface\n" +@@ -2147,6 +2470,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:62 ++#, c-format + msgid "" + "Destination Gateway Genmask Flags Metric Ref Use " + "Iface MSS Window irtt\n" +@@ -2155,10 +2479,12 @@ + "Rozhraní MSS Okno irtt\n" + + #: ../lib/inet_gr.c:237 ++#, c-format + msgid "Kernel IP routing cache\n" + msgstr "Smìrovací cache v jádru pro IP\n" + + #: ../lib/inet_gr.c:258 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface\n" +@@ -2167,6 +2493,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:261 ++#, c-format + msgid "" + "Source Destination Gateway Flags MSS Window irtt " + "Iface\n" +@@ -2175,6 +2502,7 @@ + "Rozhraní\n" + + #: ../lib/inet_gr.c:266 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt HH Arp\n" +@@ -2183,6 +2511,7 @@ + "Rozhraní MSS Okno irtt HH Arp\n" + + #: ../lib/inet_gr.c:290 ++#, c-format + msgid "" + "Source Destination Gateway Flags Metric Ref Use " + "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" +@@ -2190,7 +2519,8 @@ + "Odesílatel Adresát Maska Pøízn Metrik Odkazy U¾t " + "Rozhraní MSS Okno irtt TOS HHOdk HHAktuál Zvlá¹tCíl\n" + +-#: ../lib/inet_sr.c:50 ++#: ../lib/inet_sr.c:51 ++#, c-format + msgid "" + "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " + "[[dev] If]\n" +@@ -2198,29 +2528,34 @@ + "Pou¾ití: inet_route [-vF] del {-host|-net} Cíl[/prefix] [gw Gw] [metrika M] " + "[[dev] If]\n" + +-#: ../lib/inet_sr.c:51 ++#: ../lib/inet_sr.c:52 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cíl[/prefix] [gw Gw] [metrika M]\n" + +-#: ../lib/inet_sr.c:52 ++#: ../lib/inet_sr.c:53 ++#, c-format + msgid "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + msgstr "" + " [netmask N] [mss Mss] [window W] [irtt I]\n" + +-#: ../lib/inet_sr.c:53 ++#: ../lib/inet_sr.c:54 ++#, c-format + msgid " [mod] [dyn] [reinstate] [[dev] If]\n" + msgstr " [mod] [dyn] [reinstate] [[dev] If]\n" + +-#: ../lib/inet_sr.c:54 ++#: ../lib/inet_sr.c:55 ++#, c-format + msgid "" + " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" + msgstr "" + " inet_route [-vF] add {-host|-net} Cíl/[prefix] [metrika M] reject\n" + +-#: ../lib/inet_sr.c:55 ++#: ../lib/inet_sr.c:56 ++#, c-format + msgid " inet_route [-FC] flush NOT supported\n" + msgstr " inet_route [-FC] flush NENÍ podporováno\n" + +@@ -2230,15 +2565,17 @@ + msgstr "route: %s: sí» nelze pou¾ít jako bránu!\n" + + #: ../lib/inet_sr.c:174 +-#, fuzzy ++#, fuzzy, c-format + msgid "route: Invalid MSS/MTU.\n" + msgstr "route: Nesprávné NSS.\n" + + #: ../lib/inet_sr.c:187 ++#, c-format + msgid "route: Invalid window.\n" + msgstr "route: Nesprávné okno.\n" + + #: ../lib/inet_sr.c:203 ++#, c-format + msgid "route: Invalid initial rtt.\n" + msgstr "route: Nesprávné zahajovací rtt.\n" + +@@ -2253,75 +2590,92 @@ + msgstr "route: sí»ová maska %s je nesprávná\n" + + #: ../lib/inet_sr.c:270 ++#, c-format + msgid "route: netmask doesn't match route address\n" + msgstr "route: sí»ová maska nevyhovuje adrese cesty\n" + + #: ../lib/inet_sr.c:306 ++#, c-format + msgid "Flushing `inet' routing table not supported\n" + msgstr "Smìrovací cache `inet' nelze vyprazdòovat\n" + + #: ../lib/inet_sr.c:310 ++#, c-format + msgid "Modifying `inet' routing cache not supported\n" + msgstr "Smìrovací cache `inet' nelze mìnit\n" + + #: ../lib/ipx_gr.c:52 ++#, c-format + msgid "IPX not configured in this system.\n" + msgstr "IPX není na tomto systému nakonfigurováno.\n" + + #: ../lib/ipx_gr.c:56 ++#, c-format + msgid "Kernel IPX routing table\n" + msgstr "Smìrovací tabulka v jádru pro IPX\n" + + #. xxx + #: ../lib/ipx_gr.c:57 ++#, c-format + msgid "Destination Router Net Router Node\n" + msgstr "Cíl Smìrovaè Sí» Smìrovaè Uzel\n" + + #: ../lib/ipx_sr.c:33 ++#, c-format + msgid "IPX: this needs to be written\n" + msgstr "IPX: toto je tøeba ulo¾it\n" + +-#: ../lib/masq_info.c:197 ++#: ../lib/masq_info.c:198 ++#, c-format + msgid "IP masquerading entries\n" + msgstr "IP maskovací polo¾ky\n" + +-#: ../lib/masq_info.c:200 ++#: ../lib/masq_info.c:201 ++#, c-format + msgid "prot expire source destination ports\n" + msgstr "prot ¾ivot zdroj cíl porty\n" + +-#: ../lib/masq_info.c:203 ++#: ../lib/masq_info.c:204 ++#, c-format + msgid "" +-"prot expire initseq delta prevd source destination " +-" ports\n" ++"prot expire initseq delta prevd source " ++"destination ports\n" + msgstr "" +-"prot ¾ivot zahajsek delta pøedchd zdroj cíl " +-" porty\n" ++"prot ¾ivot zahajsek delta pøedchd zdroj " ++"cíl porty\n" + + #: ../lib/netrom_gr.c:48 ++#, c-format + msgid "NET/ROM not configured in this system.\n" + msgstr "NET/ROM není na tomto systému nakonfigurováno.\n" + + #: ../lib/netrom_gr.c:51 ++#, c-format + msgid "Kernel NET/ROM routing table\n" + msgstr "Smìrovací tabulka v jádru pro NET/ROM\n" + + #: ../lib/netrom_gr.c:52 ++#, c-format + msgid "Destination Mnemonic Quality Neighbour Iface\n" + msgstr "Cíl Mnemonika Kvalita Soused Rozhraní\n" + + #: ../lib/netrom_sr.c:34 ++#, c-format + msgid "netrom usage\n" + msgstr "pou¾ití netrom\n" + + #: ../lib/netrom_sr.c:44 ++#, c-format + msgid "NET/ROM: this needs to be written\n" + msgstr "NET/ROM: toto je potøeba ulo¾it\n" + + #: ../lib/ppp.c:44 ++#, c-format + msgid "You cannot start PPP with this program.\n" + msgstr "Tímto programem nelze PPP spustit.\n" + + #: ../lib/ppp_ac.c:38 ++#, c-format + msgid "Sorry, use pppd!\n" + msgstr "Lituji, pou¾ijte pppd!\n" + +@@ -2330,49 +2684,319 @@ + msgstr "Adresa uzlu musí mít 10 èíslic" + + #: ../lib/rose_gr.c:51 ++#, c-format + msgid "ROSE not configured in this system.\n" + msgstr "ROSE není na tomto systému nakonfigurováno.\n" + + #: ../lib/rose_gr.c:54 ++#, c-format + msgid "Kernel ROSE routing table\n" + msgstr "Smìrovací tabulka v jádru pro ROSE\n" + +-#: ../lib/tr.c:70 ../lib/tr.c:85 ++#: ../lib/tr.c:86 ../lib/tr.c:101 + #, c-format + msgid "in_tr(%s): invalid token ring address!\n" + msgstr "in_tr(%s): nesprávná token ring adresa!\n" + +-#: ../lib/tr.c:97 ++#: ../lib/tr.c:113 + #, c-format + msgid "in_tr(%s): trailing : ignored!\n" + msgstr "in_tr(%s): nadbyteèné: ignorováno!\n" + +-#: ../lib/tr.c:109 ++#: ../lib/tr.c:125 + #, c-format + msgid "in_tr(%s): trailing junk!\n" + msgstr "in_tr(%s): nadbyteèné znaky!\n" + +-#: ../lib/interface.c:124 ++#: ../lib/interface.c:176 + #, c-format + msgid "warning: no inet socket available: %s\n" + msgstr "varování: není dostupný ¾ádný inet soket: %s\n" + +-#: ../lib/interface.c:270 ++#: ../lib/interface.c:325 + #, c-format + msgid "Warning: cannot open %s (%s). Limited output.\n" + msgstr "" + + #. Give better error message for this case. +-#: ../lib/interface.c:504 ++#: ../lib/interface.c:571 + msgid "Device not found" + msgstr "Zaøízení nebylo nalezeno" + +-#: ../lib/interface.c:508 ++#: ../lib/interface.c:575 + #, c-format + msgid "%s: error fetching interface information: %s\n" + msgstr "%s: chyba pøi získávání informací o rozhraní %s\n" + +-#: ../lib/sockets.c:59 ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - statistická data nejsou dostupná -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[®ÁDNÉ PØÍZNAKY]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s Zapouzdøení:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "HWadr %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "Médium:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(auto)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %s adr:%s " ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++# V ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání. ++# Tudi¾ bcast -> V¹esmìr :) ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " V¹esmìr:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr "Maska:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6-adr: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " Rozsah:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "Globál" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "Linka" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "Stanovi¹tì" ++ ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Kompatibilita" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "Poèítaè" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "Neznám." ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/Ethernet II adr: %s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/Ethernet SNAP adr:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/Ethernet 802.2 adr:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/Ethernet 802.3 adr:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " EtherTalk Phase 2 adr:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " econet adr:%s\n" ++ ++# Hic sunt leones ... ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[®ÁDNÉ PØÍZNAKY]" ++ ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "AKTIVOVÁNO " ++ ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ " ++ ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "SMYÈKA " ++ ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++# ?? ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "BÌ®Í " ++ ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NEARP " ++ ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISK " ++ ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d Metrika:%d" ++ ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d Keepalive:%d" ++ ++#: ../lib/interface.c:850 ++#, fuzzy, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " komprimováno:%lu\n" ++ ++# carrier? ++#: ../lib/interface.c:895 ++#, fuzzy, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " kolizí:%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "komprimováno:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "délka odchozí fronty:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "Pøeru¹ení:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "Vstupnì/Výstupní port:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "Pamì»:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "Kanál DMA:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format + msgid "No usable address families found.\n" + msgstr "Nebyla nalezena ¾ádná pou¾itelná tøída adres.\n" + +@@ -2396,29 +3020,32 @@ + msgid "ip: argument is wrong: %s\n" + msgstr "ip: argument %s je nesprávný\n" + +-#: ../ipmaddr.c:56 ++#: ../ipmaddr.c:61 ++#, c-format + msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" + msgstr " Usage: ipmaddr [ add | del ] MULTIADR dev ØETÌZEC\n" + +-#: ../ipmaddr.c:57 ++#: ../ipmaddr.c:62 ++#, c-format + msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" + msgstr " ipmaddr show [ dev ØETÌZEC ] [ ipv4 | ipv6 | link | all ]\n" + +-#: ../ipmaddr.c:58 ++#: ../ipmaddr.c:63 ++#, c-format + msgid " ipmaddr -V | -version\n" + msgstr " ipmaddr -V | -version\n" + +-#: ../ipmaddr.c:258 ++#: ../ipmaddr.c:263 + #, c-format + msgid "family %d " + msgstr "tøída %d " + +-#: ../ipmaddr.c:267 ++#: ../ipmaddr.c:272 + #, c-format + msgid " users %d" + msgstr " u¾ivatelé %d" + +-#: ../ipmaddr.c:353 ++#: ../ipmaddr.c:358 + msgid "Cannot create socket" + msgstr "Soket nelze vytvoøit" + +@@ -2433,6 +3060,7 @@ + msgstr "slattach: tty_lock: (%s): %s\n" + + #: ../slattach.c:192 ++#, c-format + msgid "slattach: cannot write PID file\n" + msgstr "slattach: do PID souboru nelze zapisovat\n" + +@@ -2451,44 +3079,77 @@ + msgid "slattach: tty_hangup(RAISE): %s\n" + msgstr "slattach: tty_hangup(RAISE): %s\n" + +-#: ../slattach.c:486 ++#: ../slattach.c:468 ++#, fuzzy, c-format ++msgid "slattach: tty name too long\n" ++msgstr "jméno %s je pøíli¹ dlouhé\n" ++ ++#: ../slattach.c:498 ++#, c-format + msgid "slattach: tty_open: cannot get current state!\n" + msgstr "slattach: tty_open: aktuální stav nelze zjistit!\n" + +-#: ../slattach.c:493 ++#: ../slattach.c:505 ++#, c-format + msgid "slattach: tty_open: cannot get current line disc!\n" + msgstr "slattach: tty_open: aktuální linkovou disciplínu nelze zjistit!\n" + +-#: ../slattach.c:501 ++#: ../slattach.c:513 ++#, c-format + msgid "slattach: tty_open: cannot set RAW mode!\n" + msgstr "slattach: tty_open: re¾im RAW nelze nastavit!\n" + +-#: ../slattach.c:508 ++#: ../slattach.c:520 + #, c-format + msgid "slattach: tty_open: cannot set %s bps!\n" + msgstr "slattach: tty_open: %s bps nelze nastavit!\n" + +-#: ../slattach.c:518 ++#: ../slattach.c:530 ++#, c-format + msgid "slattach: tty_open: cannot set 8N1 mode!\n" + msgstr "slattach: tty_open: re¾im 8N1 nelze nastavit!\n" + +-#: ../slattach.c:686 ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "" ++ ++#: ../slattach.c:704 + #, c-format + msgid "%s started" + msgstr "protokol %s spu¹tìn" + +-#: ../slattach.c:687 ++#: ../slattach.c:705 + #, c-format + msgid " on %s" + msgstr " na %s" + +-#: ../slattach.c:688 ++#: ../slattach.c:706 + #, c-format + msgid " interface %s\n" + msgstr " rozhraní %s\n" + + #~ msgid "" +-#~ " This comand can read or set the hostname or the NIS domainname. You can\n" ++#~ " arp [-v] [] [-i ] -s [netmask ] pub " ++#~ "<-''-\n" ++#~ msgstr "" ++#~ " arp [-v] [] [-i ] -s [sí»mask <èís>] <-''-\n" ++ ++#~ msgid "%s: unknown interface: %s\n" ++#~ msgstr "%s: rozhraní %s není známo\n" ++ ++#~ msgid "address mask replies" ++#~ msgstr "odpovìdi na ¾ádost o masku podsítì" ++ ++#~ msgid "unknown title %s\n" ++#~ msgstr "titulek %s je neznámý\n" ++ ++#~ msgid "Routing table for `ddp' not yet supported.\n" ++#~ msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\n" ++ ++#~ msgid "" ++#~ " This comand can read or set the hostname or the NIS domainname. You " ++#~ "can\n" + #~ msgstr "" + #~ " Tento program zji¹»uje a nastavuje jméno poèítaèe èi NIS domény. Mù¾e " + #~ "také\n" +@@ -2500,7 +3161,8 @@ + #~ msgid "" + #~ " Unless you are using bind or NIS for host lookups you can change the\n" + #~ msgstr "" +-#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak mù¾ete\n" ++#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak " ++#~ "mù¾ete\n" + + #~ msgid "" + #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" +--- net-tools-1.60.orig/po/ja.po ++++ net-tools-1.60/po/ja.po +@@ -0,0 +1,3133 @@ ++# Net-tool Japanese locale data ++# Kenshi Muto , 2007. ++# Yasuyuki Furukawa , 1999. ++# ++msgid "" ++msgstr "" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2007-06-30 12:28+0900\n" ++"PO-Revision-Date: 2007-07-04 20:47+0900\n" ++"Last-Translator: Kenshi Muto \n" ++"Language-Team: Japanese\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8-bit\n" ++ ++#: ../arp.c:112 ../arp.c:279 ++#, c-format ++msgid "arp: need host name\n" ++msgstr "arp: ホストåãŒå¿…è¦ã§ã™\n" ++ ++#: ../arp.c:215 ../arp.c:230 ++#, c-format ++msgid "No ARP entry for %s\n" ++msgstr "%sã®ARPエントリãŒã‚ã‚Šã¾ã›ã‚“\n" ++ ++#: ../arp.c:248 ++#, c-format ++msgid "arp: cant get HW-Address for `%s': %s.\n" ++msgstr "arp: '%s'ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s.\n" ++ ++#: ../arp.c:252 ++#, c-format ++msgid "arp: protocol type mismatch.\n" ++msgstr "arp: プロトコルタイプãŒé©åˆã—ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:261 ++#, c-format ++msgid "arp: device `%s' has HW address %s `%s'.\n" ++msgstr "arp: デãƒã‚¤ã‚¹`%s'ã¯ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹%s `%s'ã§ã™.\n" ++ ++#: ../arp.c:293 ++#, c-format ++msgid "arp: need hardware address\n" ++msgstr "arp: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå¿…è¦ã§ã™\n" ++ ++#: ../arp.c:301 ++#, c-format ++msgid "arp: invalid hardware address\n" ++msgstr "arp: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒä¸é©å½“ã§ã™\n" ++ ++#: ../arp.c:398 ++#, c-format ++msgid "arp: cannot open etherfile %s !\n" ++msgstr "arp: etherファイル%sãŒé–‹ã‘ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:414 ++#, c-format ++msgid "arp: format error on line %u of etherfile %s !\n" ++msgstr "arp: %uè¡Œ(ファイル%s)ã«ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™!\n" ++ ++#: ../arp.c:427 ++#, c-format ++msgid "arp: cannot set entry on line %u of etherfile %s !\n" ++msgstr "arp: etherファイル%uè¡Œ(%s)ã®ã‚¨ãƒ³ãƒˆãƒªã‚’設定ã§ãã¾ã›ã‚“!\n" ++ ++#: ../arp.c:448 ++#, c-format ++msgid "" ++"Address HWtype HWaddress Flags Mask " ++"Iface\n" ++msgstr "アドレス HWタイプ HWアドレス フラグ マスク インタフェース\n" ++ ++#: ../arp.c:476 ++msgid "" ++msgstr "<起点インタフェース>" ++ ++#: ../arp.c:478 ++msgid "(incomplete)" ++msgstr "(ä¸å®Œå…¨)" ++ ++# translatable? ++#: ../arp.c:495 ++#, c-format ++msgid "%s (%s) at " ++msgstr "%s (%s) at " ++ ++#: ../arp.c:501 ++#, c-format ++msgid " " ++msgstr "<ä¸å®Œå…¨> " ++ ++#: ../arp.c:507 ++#, c-format ++msgid "netmask %s " ++msgstr "ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ %s " ++ ++# translatable? ++#: ../arp.c:524 ++#, c-format ++msgid "on %s\n" ++msgstr "on %s\n" ++ ++#: ../arp.c:605 ++#, c-format ++msgid "Entries: %d\tSkipped: %d\tFound: %d\n" ++msgstr "エントリ: %d\tスキップ: %d\t発見: %d\n" ++ ++#: ../arp.c:609 ++#, c-format ++msgid "%s (%s) -- no entry\n" ++msgstr "%s (%s) -- エントリãªã—\n" ++ ++#: ../arp.c:611 ++#, c-format ++msgid "arp: in %d entries no match found.\n" ++msgstr "arp: %dã®ã‚¨ãƒ³ãƒˆãƒªä¸­, 一致ã™ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../arp.c:626 ++#, c-format ++msgid "" ++"Usage:\n" ++" arp [-vn] [] [-i ] [-a] [] <-Display ARP " ++"cache\n" ++msgstr "" ++"使用法:\n" ++" arp [-vn] [] [-i <インタフェース>]\n" ++" [-a] [<ホストå>] ‥‥ ARPキャッシュã®è¡¨" ++"示\n" ++ ++#: ../arp.c:627 ++#, c-format ++msgid "" ++" arp [-v] [-i ] -d [pub] <-Delete ARP " ++"entry\n" ++msgstr " arp [-v] [-i <インタフェース>] -d <ホストå> [pub] ‥‥ARPエントリを削除\n" ++ ++#: ../arp.c:628 ++#, c-format ++msgid "" ++" arp [-vnD] [] [-i ] -f [] <-Add entry from " ++"file\n" ++msgstr "" ++" arp [-vnD] [] [-i <インタフェース>] \n" ++" -f <ファイルå> ‥‥ファイルã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’追加\n" ++ ++#: ../arp.c:629 ++#, c-format ++msgid "" ++" arp [-v] [] [-i ] -s [temp] <-Add " ++"entry\n" ++msgstr "" ++" arp [-v] [] [-i <インタフェース>]\n" ++" -s <ホストå> <ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹> [temp] ‥‥エントリを追加\n" ++ ++# FIXME:What does '' mean? ++#: ../arp.c:630 ++#, c-format ++msgid "" ++" arp [-v] [] [-i ] -Ds [netmask ] pub " ++"<-''-\n" ++"\n" ++msgstr "" ++" arp [-v] [] [-i <インタフェース>] -Ds <ホストå>\n" ++" <インタフェース> [netmask <ãƒãƒƒãƒˆãƒžã‚¹ã‚¯>] pub ‥‥ 〃\n" ++ ++#: ../arp.c:632 ++#, c-format ++msgid "" ++" -a display (all) hosts in alternative (BSD) " ++"style\n" ++msgstr "" ++" -a æ–°ã—ã„(BSD)スタイルã§ã‚¨ãƒ³ãƒˆãƒªã•ã‚ŒãŸå…¨ãƒ›ã‚¹ãƒˆã‚’表示" ++"ã™ã‚‹\n" ++ ++#: ../arp.c:633 ++#, c-format ++msgid " -s, --set set a new ARP entry\n" ++msgstr " -s, --set æ–°è¦ARPエントリを設定ã™ã‚‹\n" ++ ++#: ../arp.c:634 ++#, c-format ++msgid " -d, --delete delete a specified entry\n" ++msgstr " -d, --delete 指定エントリを削除ã™ã‚‹\n" ++ ++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86 ++#, c-format ++msgid " -v, --verbose be verbose\n" ++msgstr " -v, --verbose 詳細表示を行ãªã†\n" ++ ++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87 ++#, c-format ++msgid " -n, --numeric don't resolve names\n" ++msgstr " -n, --numeric åå‰ã®ãƒ¬ã‚¾ãƒ«ãƒ–ã‚’ã—ãªã„\n" ++ ++#: ../arp.c:637 ++#, c-format ++msgid "" ++" -i, --device specify network interface (e.g. eth0)\n" ++msgstr " -i, --device ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã®æŒ‡å®š(例 eth0)\n" ++ ++#: ../arp.c:638 ++#, c-format ++msgid " -D, --use-device read from given device\n" ++msgstr "" ++" -D, --use-device 与ãˆã‚‰ã‚ŒãŸãƒ‡ãƒã‚¤ã‚¹ã‹ã‚‰\n" ++" を読ã¿è¾¼ã‚€\n" ++ ++#: ../arp.c:639 ++#, c-format ++msgid " -A, -p, --protocol specify protocol family\n" ++msgstr " -A, -p, --protocol プロトコルファミリを指定ã™ã‚‹\n" ++ ++#: ../arp.c:640 ++#, c-format ++msgid "" ++" -f, --file read new entries from file or from /etc/" ++"ethers\n" ++"\n" ++msgstr " -f, --file /etc/ethersファイルã‹ã‚‰æ–°è¦ã‚¨ãƒ³ãƒˆãƒªã‚’読ã¿è¾¼ã‚€\n\n" ++ ++#: ../arp.c:642 ../rarp.c:182 ++#, c-format ++msgid " =Use '-H ' to specify hardware address type. Default: %s\n" ++msgstr " =ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¿ã‚¤ãƒ—を指定ã™ã‚‹ã«ã¯'-H 'を使ã£ã¦ä¸‹ã•ã„。標準: %s\n" ++ ++#: ../arp.c:643 ../rarp.c:183 ++#, c-format ++msgid " List of possible hardware types (which support ARP):\n" ++msgstr " (ARPをサãƒãƒ¼ãƒˆã—ãŸ)指定å¯èƒ½ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../arp.c:677 ../arp.c:762 ++#, c-format ++msgid "%s: hardware type not supported!\n" ++msgstr "%s: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:681 ++#, c-format ++msgid "%s: address family not supported!\n" ++msgstr "%s: アドレスファミリãŒã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../arp.c:716 ++#, c-format ++msgid "arp: -N not yet supported.\n" ++msgstr "arp: -Nã¯ã¾ã ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:726 ++#, c-format ++msgid "arp: %s: unknown address family.\n" ++msgstr "arp: %s: ä¸æ˜Žãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã§ã™.\n" ++ ++#: ../arp.c:735 ++#, c-format ++msgid "arp: %s: unknown hardware type.\n" ++msgstr "arp: %s: ä¸æ˜Žãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../arp.c:754 ++#, c-format ++msgid "arp: %s: kernel only supports 'inet'.\n" ++msgstr "arp: %s: カーãƒãƒ«ã¯'inet'以外ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../arp.c:767 ++#, c-format ++msgid "arp: %s: hardware type without ARP support.\n" ++msgstr "arp: %s: ARPサãƒãƒ¼ãƒˆã®ãªã„ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../hostname.c:71 ++#, c-format ++msgid "Setting nodename to `%s'\n" ++msgstr "ノードåã‚’`%s'ã¸è¨­å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:76 ++#, c-format ++msgid "%s: you must be root to change the node name\n" ++msgstr "%s: ノードåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117 ++#, c-format ++msgid "%s: name too long\n" ++msgstr "%s: åå‰ãŒé•·ã™ãŽã¾ã™\n" ++ ++#: ../hostname.c:91 ++#, c-format ++msgid "Setting hostname to `%s'\n" ++msgstr "ホストåã‚’`%s'ã¸è¨­å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:96 ++#, c-format ++msgid "%s: you must be root to change the host name\n" ++msgstr "%s: ホストåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:109 ++#, c-format ++msgid "Setting domainname to `%s'\n" ++msgstr "ドメインを`%s'ã¸è¨­å®šã—ã¾ã—ãŸ\n" ++ ++#: ../hostname.c:114 ++#, c-format ++msgid "%s: you must be root to change the domain name\n" ++msgstr "%s: ドメインåã®å¤‰æ›´ã¯ãƒ«ãƒ¼ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“\n" ++ ++#: ../hostname.c:131 ++#, c-format ++msgid "Resolving `%s' ...\n" ++msgstr "`%s'をレゾルブ中 ...\n" ++ ++#: ../hostname.c:137 ++#, c-format ++msgid "Result: h_name=`%s'\n" ++msgstr "çµæžœ: h_name=`%s'\n" ++ ++#: ../hostname.c:142 ++#, c-format ++msgid "Result: h_aliases=`%s'\n" ++msgstr "çµæžœ: h_aliases=`%s'\n" ++ ++#: ../hostname.c:147 ++#, c-format ++msgid "Result: h_addr_list=`%s'\n" ++msgstr "çµæžœ: h_addr_list=`%s'\n" ++ ++#: ../hostname.c:208 ++#, c-format ++msgid "%s: can't open `%s'\n" ++msgstr "%s: `%s'ã‚’é–‹ã‘ã¾ã›ã‚“\n" ++ ++#: ../hostname.c:222 ++#, c-format ++msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n" ++msgstr "使用法: hostname [-v] {ホストå|-F ファイル} (ファイルã«ã‚ˆã‚‹)ホストåã®è¨­å®š\n" ++ ++#: ../hostname.c:223 ++#, c-format ++msgid "" ++" domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n" ++msgstr " domainname [-v] {NISドメイン|-F ファイル} (ファイルã«ã‚ˆã‚‹)NISドメインåã®è¨­å®š\n" ++ ++#: ../hostname.c:225 ++#, c-format ++msgid "" ++" nodename [-v] {nodename|-F file} set DECnet node name (from " ++"file)\n" ++msgstr "" ++"nodename [-v] {ノードå|-F ファイル} (ファイルã«ã‚ˆã‚‹)DECnetノードåã®è¨­å®š\n" ++ ++#: ../hostname.c:227 ++#, c-format ++msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n" ++msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y] å½¢å¼ã‚’指定ã—ã¦è¡¨ç¤º\n" ++ ++#: ../hostname.c:228 ++#, c-format ++msgid "" ++" hostname [-v] display hostname\n" ++"\n" ++msgstr "" ++" hostname [-v] ホストåã®å‡ºåŠ›\n" ++"\n" ++ ++#: ../hostname.c:229 ++#, c-format ++msgid "" ++" hostname -V|--version|-h|--help print info and exit\n" ++"\n" ++msgstr "" ++" hostname -V|--version|-h|--help 諸情報を出力ã—ã¦çµ‚了\n" ++"\n" ++"\n" ++ ++#: ../hostname.c:230 ++#, c-format ++msgid "" ++" dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n" ++"\n" ++msgstr " dnsdomainname=ホストå -d, {yp,nis,}domainname=ホストå -y\n\n" ++ ++#: ../hostname.c:231 ++#, c-format ++msgid " -s, --short short host name\n" ++msgstr " -s, --short 短縮ホストå\n" ++ ++#: ../hostname.c:232 ++#, c-format ++msgid " -a, --alias alias names\n" ++msgstr " -a, --alias エイリアスå\n" ++ ++#: ../hostname.c:233 ++#, c-format ++msgid " -i, --ip-address addresses for the hostname\n" ++msgstr " -i, --ip-address ホストåã«å¯¾ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹\n" ++ ++#: ../hostname.c:234 ++#, c-format ++msgid " -f, --fqdn, --long long host name (FQDN)\n" ++msgstr " -f, --fqdn, --long ロングホストå(FQDN)\n" ++ ++#: ../hostname.c:235 ++#, c-format ++msgid " -d, --domain DNS domain name\n" ++msgstr " -d, --domain DNSドメインå\n" ++ ++#: ../hostname.c:236 ++#, c-format ++msgid " -y, --yp, --nis NIS/YP domainname\n" ++msgstr " -y, --yp, --nis NIS/YPドメインå\n" ++ ++#: ../hostname.c:238 ++#, c-format ++msgid " -n, --node DECnet node name\n" ++msgstr " -n, --node DECnetノードå\n" ++ ++#: ../hostname.c:240 ++#, c-format ++msgid "" ++" -F, --file read hostname or NIS domainname from given file\n" ++"\n" ++msgstr " -F, --file 指定ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ãƒ›ã‚¹ãƒˆåã‹NISドメインåを読ã¿è¾¼ã‚€\n\n" ++ ++#: ../hostname.c:242 ++#, c-format ++msgid "" ++" This command can read or set the hostname or the NIS domainname. You can\n" ++" also read the DNS domain or the FQDN (fully qualified domain name).\n" ++" Unless you are using bind or NIS for host lookups you can change the\n" ++" FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n" ++" part of the FQDN) in the /etc/hosts file.\n" ++msgstr "" ++" ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã¯ã€ãƒ›ã‚¹ãƒˆåã¾ãŸã¯NISドメインåを読ã¿è¾¼ã¿ã¾ãŸã¯è¨­å®šã§ãã¾ã™ã€‚\n" ++" DNSドメインã¾ãŸã¯FDN(完全修飾ドメインå)を読ã¿è¾¼ã‚€ã“ã¨ã‚‚ã§ãã¾ã™ã€‚\n" ++" ホストåã®å‚ç…§ã«BindãŠã‚ˆã³, NISも使ã‚ãªã„å ´åˆ, /etc/hostsファイルã«ã‚ã‚‹\n" ++" FQDNã‚„, (FQDNã®ä¸€éƒ¨åˆ†ã®)ドメインåを変更ã§ãã¾ã™.\n" ++ ++#: ../hostname.c:338 ++#, c-format ++msgid "%s: You can't change the DNS domain name with this command\n" ++msgstr "%s: ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã¯DNSドメインåã¯å¤‰æ›´ã§ãã¾ã›ã‚“.\n" ++ ++#: ../hostname.c:339 ++#, c-format ++msgid "" ++"\n" ++"Unless you are using bind or NIS for host lookups you can change the DNS\n" ++msgstr "" ++"\n" ++"ホストåã®å‚ç…§ã«BindãŠã‚ˆã³, NISも使ã‚ãªã„å ´åˆã€/etc/hostsファイル\n" ++ ++#: ../hostname.c:340 ++#, c-format ++msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n" ++msgstr "ã«ã‚ã‚‹FQDNã‚„, (FQDNã®ä¸€éƒ¨åˆ†ã®)ドメインåを変更ã§ãã¾ã™.\n" ++ ++#: ../hostname.c:357 ++#, c-format ++msgid "gethostname()=`%s'\n" ++msgstr "gethostname()=`%s'\n" ++ ++#: ../hostname.c:374 ++#, c-format ++msgid "getdomainname()=`%s'\n" ++msgstr "getdomainname()=`%s'\n" ++ ++#: ../hostname.c:389 ++#, c-format ++msgid "getnodename()=`%s'\n" ++msgstr "getnodename()=`%s'\n" ++ ++#: ../ifconfig.c:107 ++#, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR フラグ\n" ++ ++#: ../ifconfig.c:129 ../ifconfig.c:161 ++#, c-format ++msgid "%s: ERROR while getting interface flags: %s\n" ++msgstr "%s: インタフェースフラグã®å–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ:%s\n" ++ ++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862 ++#: ../ifconfig.c:973 ++#, c-format ++msgid "No support for INET on this system.\n" ++msgstr "INETã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:193 ++#, c-format ++msgid "%s: ERROR while testing interface flags: %s\n" ++msgstr "%s: インタフェースフラグã®ãƒ†ã‚¹ãƒˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s\n" ++ ++#: ../ifconfig.c:202 ++#, c-format ++msgid "" ++"Usage:\n" ++" ifconfig [-a] [-v] [-s] [[]
]\n" ++msgstr "" ++"使用法:\n" ++" ifconfig [-a] [-v] [-s] <インタフェース> [[] <アドレス>]\n" ++ ++#: ../ifconfig.c:204 ++#, c-format ++msgid " [add
[/]]\n" ++msgstr " [add <アドレス>[/<プレフィックス長>]]\n" ++ ++#: ../ifconfig.c:205 ++#, c-format ++msgid " [del
[/]]\n" ++msgstr " [del <アドレス>[/<プレフィックス長>]]\n" ++ ++#: ../ifconfig.c:206 ++#, c-format ++msgid " [[-]broadcast [
]] [[-]pointopoint [
]]\n" ++msgstr " [[-]broadcast [<アドレス>]] [[-]pointopoint [<アドレス>]]\n" ++ ++#: ../ifconfig.c:207 ++#, c-format ++msgid " [netmask
] [dstaddr
] [tunnel
]\n" ++msgstr " [netmask <アドレス>] [dstaddr <アドレス>] [tunnel <アドレス>]\n" ++ ++#: ../ifconfig.c:210 ++#, c-format ++msgid " [outfill ] [keepalive ]\n" ++msgstr " [outfill <数値>] [keepalive <数値>]\n" ++ ++#: ../ifconfig.c:212 ++#, c-format ++msgid " [hw
] [metric ] [mtu ]\n" ++msgstr " [hw <アドレス>] [metric <数値>] [mtu <数値>]\n" ++ ++#: ../ifconfig.c:213 ++#, c-format ++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n" ++ ++#: ../ifconfig.c:214 ++#, c-format ++msgid " [multicast] [[-]promisc]\n" ++msgstr " [multicast] [[-]promisc]\n" ++ ++#: ../ifconfig.c:215 ++#, c-format ++msgid " [mem_start ] [io_addr ] [irq ] [media ]\n" ++msgstr " [mem_start <開始アドレス>] [io_addr ] [irq <番å·>] [media <タイプ>]\n" ++ ++#: ../ifconfig.c:217 ++#, c-format ++msgid " [txqueuelen ]\n" ++msgstr " [txqueuelen ]\n" ++ ++#: ../ifconfig.c:220 ++#, c-format ++msgid " [[-]dynamic]\n" ++msgstr " [[-]dynamic]\n" ++ ++#: ../ifconfig.c:222 ++#, c-format ++msgid "" ++" [up|down] ...\n" ++"\n" ++msgstr " [up|down] ...\n\n" ++ ++#: ../ifconfig.c:224 ++#, c-format ++msgid " =Hardware Type.\n" ++msgstr " =ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—.\n" ++ ++#: ../ifconfig.c:225 ++#, c-format ++msgid " List of possible hardware types:\n" ++msgstr " 利用å¯èƒ½ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ã®ãƒªã‚¹ãƒˆ:\n" ++ ++#. 1 = ARPable ++#: ../ifconfig.c:227 ++#, c-format ++msgid " =Address family. Default: %s\n" ++msgstr " =アドレスファミリ. 標準: %s\n" ++ ++#: ../ifconfig.c:228 ++#, c-format ++msgid " List of possible address families:\n" ++msgstr " 利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../ifconfig.c:303 ++#, c-format ++msgid "ifconfig: option `%s' not recognised.\n" ++msgstr "ifconfig: オプション`%s'を解釈ã§ãã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:305 ../ifconfig.c:962 ++#, c-format ++msgid "ifconfig: `--help' gives usage information.\n" ++msgstr "ifconfig: `--help'ã§ä½¿ç”¨æ³•ã‚’見られã¾ã™.\n" ++ ++#: ../ifconfig.c:380 ++#, c-format ++msgid "Unknown media type.\n" ++msgstr "ä¸æ˜Žãªãƒ¡ãƒ‡ã‚£ã‚¢ã‚¿ã‚¤ãƒ—ã§ã™.\n" ++ ++#: ../ifconfig.c:417 ++#, c-format ++msgid "" ++"Warning: Interface %s still in promisc mode... maybe other application is " ++"running?\n" ++msgstr "警告: インタフェース%sã¯ã¾ã promiscモードã§ã™...æらãä»–ã®ã‚¢ãƒ—リケーションãŒå®Ÿè¡Œä¸­ã§ã¯ã‚ã‚Šã¾ã›ã‚“ã‹?\n" ++ ++#: ../ifconfig.c:429 ++#, c-format ++msgid "Warning: Interface %s still in MULTICAST mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã MULTICASTモードã§ã™.\n" ++ ++#: ../ifconfig.c:441 ++#, c-format ++msgid "Warning: Interface %s still in ALLMULTI mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã ALLMULTIモードã§ã™.\n" ++ ++#: ../ifconfig.c:465 ++#, c-format ++msgid "Warning: Interface %s still in DYNAMIC mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã DYNAMICモードã§ã™.\n" ++ ++#: ../ifconfig.c:523 ++#, c-format ++msgid "Warning: Interface %s still in BROADCAST mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã BROADCASTモードã§ã™.\n" ++ ++#: ../ifconfig.c:652 ++#, c-format ++msgid "Warning: Interface %s still in POINTOPOINT mode.\n" ++msgstr "警告: インタフェース%sã¯ã¾ã POINTOPOINTモードã§ã™.\n" ++ ++#: ../ifconfig.c:684 ++#, c-format ++msgid "hw address type `%s' has no handler to set address. failed.\n" ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¿ã‚¤ãƒ—`%s'ã¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定ã™ã‚‹ãƒãƒ³ãƒ‰ãƒ©ã‚’æŒã£ã¦ã„ã¾ã›ã‚“. 失敗ã—ã¾ã—ãŸ.\n" ++ ++#: ../ifconfig.c:693 ++#, c-format ++msgid "%s: invalid %s address.\n" ++msgstr "%s: ä¸é©åˆ‡ãªã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™(%s).\n" ++ ++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913 ++#, c-format ++msgid "No support for INET6 on this system.\n" ++msgstr "INET6ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:780 ../ifconfig.c:871 ++#, c-format ++msgid "Interface %s not initialized\n" ++msgstr "インタフェース%sã¯åˆæœŸåŒ–ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:792 ../ifconfig.c:882 ++#, c-format ++msgid "Bad address.\n" ++msgstr "ä¸é©åˆ‡ãªã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™.\n" ++ ++#: ../ifconfig.c:885 ++#, c-format ++msgid "Address deletion not supported on this system.\n" ++msgstr "アドレス削除ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:957 ++#, c-format ++msgid "ifconfig: Cannot set address for this protocol family.\n" ++msgstr "ifconfig:ã“ã®ãƒ—ロトコルファミリã«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定ã§ãã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:983 ++#, c-format ++msgid "No support for ECONET on this system.\n" ++msgstr "ECONETã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../ifconfig.c:991 ++#, c-format ++msgid "Don't know how to set addresses for family %d.\n" ++msgstr "ファミリ%dã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®è¨­å®šæ–¹æ³•ãŒä¸æ˜Žã§ã™.\n" ++ ++#: ../ifconfig.c:1021 ++#, c-format ++msgid "WARNING: at least one error occured. (%d)\n" ++msgstr "警告: å°‘ãªãã¨ã‚‚1ã¤ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ. (%d)\n" ++ ++#: ../netstat.c:434 ++#, c-format ++msgid "" ++"(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n" ++msgstr "(\"-p\"ã®æƒ…報を読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ: geteuid()=%d ã—ã‹ã—ルートã§ã‚ã‚‹ã¹ãã§ã™.)\n" ++ ++#: ../netstat.c:438 ++#, c-format ++msgid "" ++"(Not all processes could be identified, non-owned process info\n" ++" will not be shown, you would have to be root to see it all.)\n" ++msgstr "" ++"(一部ã®ãƒ—ロセスãŒè­˜åˆ¥ã•ã‚Œã¾ã™ãŒ, 所有ã—ã¦ã„ãªã„プロセスã®æƒ…å ±ã¯\n" ++"表示ã•ã‚Œã¾ã›ã‚“。ãれら全ã¦ã‚’見るã«ã¯ãƒ«ãƒ¼ãƒˆã«ãªã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™.)\n" ++ ++# translatable? ++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266 ++msgid "LISTENING" ++msgstr "LISTENING" ++ ++# translatable? ++#: ../netstat.c:446 ++msgid "CONN SENT" ++msgstr "CONN SENT" ++ ++# translatable? ++#: ../netstat.c:447 ../netstat.c:1268 ++msgid "DISC SENT" ++msgstr "DISC SENT" ++ ++# translatable? ++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269 ++msgid "ESTABLISHED" ++msgstr "ESTABLISHED" ++ ++#: ../netstat.c:470 ++#, c-format ++msgid "Active NET/ROM sockets\n" ++msgstr "稼åƒä¸­ã®NET/ROMソケット\n" ++ ++#: ../netstat.c:471 ++#, c-format ++msgid "" ++"User Dest Source Device State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "ユーザ å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:481 ../netstat.c:1308 ++#, c-format ++msgid "Problem reading data from %s\n" ++msgstr "%sã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã®èª­ã¿è¾¼ã¿ã«å•é¡Œ\n" ++ ++# translatable? ++#: ../netstat.c:516 ++msgid "SYN_SENT" ++msgstr "SYN_SENT" ++ ++# translatable? ++#: ../netstat.c:517 ++msgid "SYN_RECV" ++msgstr "SYN_RECV" ++ ++# translatable? ++#: ../netstat.c:518 ++msgid "FIN_WAIT1" ++msgstr "FIN_WAIT1" ++ ++# translatable? ++#: ../netstat.c:519 ++msgid "FIN_WAIT2" ++msgstr "FIN_WAIT2" ++ ++# translatable? ++#: ../netstat.c:520 ++msgid "TIME_WAIT" ++msgstr "TIME_WAIT" ++ ++# translatable? ++#: ../netstat.c:521 ++msgid "CLOSE" ++msgstr "CLOSE" ++ ++# translatable? ++#: ../netstat.c:522 ++msgid "CLOSE_WAIT" ++msgstr "CLOSE_WAIT" ++ ++# translatable? ++#: ../netstat.c:523 ++msgid "LAST_ACK" ++msgstr "LAST_ACK" ++ ++# translatable? ++#: ../netstat.c:524 ++msgid "LISTEN" ++msgstr "LISTEN" ++ ++# translatable? ++#: ../netstat.c:525 ++msgid "CLOSING" ++msgstr "CLOSING" ++ ++#: ../netstat.c:596 ++#, c-format ++msgid "warning, got bogus igmp6 line %d.\n" ++msgstr "警告, å½ã®igmp6ライン%dã‚’å¾—ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898 ++#: ../netstat.c:1032 ../netstat.c:1037 ++#, c-format ++msgid "netstat: unsupported address family %d !\n" ++msgstr "netstat: サãƒãƒ¼ãƒˆã—ã¦ãªã„アドレスファミリ%dã§ã™!\n" ++ ++# c-format ++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634 ++#, c-format ++msgid "warning, got bogus igmp line %d.\n" ++msgstr "警告, å½ã®igmpライン%dã‚’å¾—ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:677 ++#, c-format ++msgid "Active X.25 sockets\n" ++msgstr "稼åƒä¸­ã®X.25ソケット\n" ++ ++#. IMHO, Vr/Vs is not very usefull --SF ++#: ../netstat.c:679 ++#, c-format ++msgid "" ++"Dest Source Device LCI State Vr/Vs Send-Q Recv-" ++"Q\n" ++msgstr "å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ LCI 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:759 ++#, c-format ++msgid "warning, got bogus tcp line.\n" ++msgstr "警告, å½ã®TCPラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075 ++#, c-format ++msgid "off (0.00/%ld/%d)" ++msgstr "オフ (0.00/%ld/%d)" ++ ++#: ../netstat.c:804 ++#, c-format ++msgid "on (%2.2f/%ld/%d)" ++msgstr "オン (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:809 ++#, c-format ++msgid "keepalive (%2.2f/%ld/%d)" ++msgstr "キープアライブ (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:814 ++#, c-format ++msgid "timewait (%2.2f/%ld/%d)" ++msgstr "時間待㡠(%2.2f/%ld/%d)" ++ ++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085 ++#, c-format ++msgid "unkn-%d (%2.2f/%ld/%d)" ++msgstr "ä¸æ˜Ž-%d (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:894 ++#, c-format ++msgid "warning, got bogus udp line.\n" ++msgstr "警告, å½ã®UDPラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208 ++msgid "UNKNOWN" ++msgstr "ä¸æ˜Ž" ++ ++#: ../netstat.c:958 ../netstat.c:1080 ++#, c-format ++msgid "on%d (%2.2f/%ld/%d)" ++msgstr "オン%d (%2.2f/%ld/%d)" ++ ++#: ../netstat.c:1046 ++#, c-format ++msgid "warning, got bogus raw line.\n" ++msgstr "警告, å½ã®Rawラインを得ã¾ã—ãŸ.\n" ++ ++#: ../netstat.c:1128 ++#, c-format ++msgid "warning, got bogus unix line.\n" ++msgstr "警告, å½ã®unixラインを得ã¾ã—ãŸ.\n" ++ ++# translatable? ++#: ../netstat.c:1155 ++msgid "STREAM" ++msgstr "STREAM" ++ ++# translatable? ++#: ../netstat.c:1159 ++msgid "DGRAM" ++msgstr "DGRAM" ++ ++# translatable? ++#: ../netstat.c:1163 ++msgid "RAW" ++msgstr "RAW" ++ ++# translatable? ++#: ../netstat.c:1167 ++msgid "RDM" ++msgstr "RDM" ++ ++# translatable? ++#: ../netstat.c:1171 ++msgid "SEQPACKET" ++msgstr "SEQPACKET" ++ ++# translatable? ++#: ../netstat.c:1180 ++msgid "FREE" ++msgstr "FREE" ++ ++# translatable? ++#: ../netstat.c:1196 ++msgid "CONNECTING" ++msgstr "CONNECTING" ++ ++# translatable? ++#: ../netstat.c:1200 ++msgid "CONNECTED" ++msgstr "CONNECTED" ++ ++# translatable? ++#: ../netstat.c:1204 ++msgid "DISCONNECTING" ++msgstr "DISCONNECTING" ++ ++#: ../netstat.c:1235 ++#, c-format ++msgid "Active UNIX domain sockets " ++msgstr "稼åƒä¸­ã®UNIXドメインソケット " ++ ++#: ../netstat.c:1237 ../netstat.c:1756 ++#, c-format ++msgid "(servers and established)" ++msgstr "(サーãƒã¨ç¢ºç«‹)" ++ ++#: ../netstat.c:1240 ../netstat.c:1759 ++#, c-format ++msgid "(only servers)" ++msgstr "(サーãƒã®ã¿)" ++ ++#: ../netstat.c:1242 ../netstat.c:1761 ++#, c-format ++msgid "(w/o servers)" ++msgstr "(w/oサーãƒ)" ++ ++#: ../netstat.c:1245 ++#, c-format ++msgid "" ++"\n" ++"Proto RefCnt Flags Type State I-Node" ++msgstr "" ++"\n" ++"Proto RefCnt フラグ タイプ 状態 Iノード" ++ ++#: ../netstat.c:1247 ++#, c-format ++msgid " Path\n" ++msgstr " パス\n" ++ ++# translatable? ++#: ../netstat.c:1267 ++msgid "SABM SENT" ++msgstr "SABM SENT" ++ ++# translatable? ++#: ../netstat.c:1270 ++msgid "RECOVERY" ++msgstr "RECOVERY" ++ ++#: ../netstat.c:1284 ++#, c-format ++msgid "Active AX.25 sockets\n" ++msgstr "稼åƒä¸­ã®AX.25ソケット\n" ++ ++#: ../netstat.c:1285 ++#, c-format ++msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n" ++msgstr "å—ä¿¡å…ˆ 発信元 デãƒã‚¤ã‚¹ 状態 Vr/Vs é€ä¿¡-Q å—ä¿¡-Q\n" ++ ++#: ../netstat.c:1328 ++#, c-format ++msgid "problem reading data from %s\n" ++msgstr "%sã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿èª­ã¿è¾¼ã¿ä¸­ã«å•é¡Œ\n" ++ ++#: ../netstat.c:1379 ++#, c-format ++msgid "" ++"Active IPX sockets\n" ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State" ++msgstr "" ++"稼åƒä¸­ã®IPXソケット\n" ++"Proto å—ä¿¡-Q é€ä¿¡-Q 内部アドレス 外部アドレス 状" ++"æ…‹" ++ ++#: ../netstat.c:1381 ++#, c-format ++msgid " User" ++msgstr " ユーザ" ++ ++# translatable? ++#: ../netstat.c:1415 ++msgid "ESTAB" ++msgstr "ESTAB" ++ ++# translatable? ++#: ../netstat.c:1423 ++msgid "UNK." ++msgstr "UNK." ++ ++#: ../netstat.c:1461 ++#, c-format ++msgid "Kernel Interface table\n" ++msgstr "カーãƒãƒ«ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ãƒ†ãƒ¼ãƒ–ル\n" ++ ++#: ../netstat.c:1465 ++#, c-format ++msgid "" ++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR " ++"Flg\n" ++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR フラグ\n" ++ ++#: ../netstat.c:1469 ++msgid "missing interface information" ++msgstr "インタフェース情報ãŒè¶³ã‚Šã¾ã›ã‚“" ++ ++#: ../netstat.c:1492 ++#, c-format ++msgid "" ++"usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--" ++"help}\n" ++msgstr "" ++"使用法: netstat [-veenNcCF] [<アドレスファミリ>] -r\n" ++" netstat {-V|--version|-h|--help}\n" ++ ++#: ../netstat.c:1493 ++#, c-format ++msgid " netstat [-vnNcaeol] [ ...]\n" ++msgstr " netstat [-vnNcaeol] [<ソケット> ...]\n" ++ ++#: ../netstat.c:1494 ++#, c-format ++msgid "" ++" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n" ++"\n" ++msgstr " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n\n" ++ ++#: ../netstat.c:1496 ++#, c-format ++msgid " -r, --route display routing table\n" ++msgstr " -r, --routing 経路テーブルã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1497 ++#, c-format ++msgid " -i, --interfaces display interface table\n" ++msgstr " -i, --interfaces インタフェーステーブルã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1498 ++#, c-format ++msgid " -g, --groups display multicast group memberships\n" ++msgstr " -g, --groups マルãƒã‚­ãƒ£ã‚¹ãƒˆãƒ»ã‚°ãƒ«ãƒ¼ãƒ—メンãƒã‚·ãƒƒãƒ—ã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1499 ++#, c-format ++msgid "" ++" -s, --statistics display networking statistics (like SNMP)\n" ++msgstr "" ++" -s, --statistics (SNMPã®ã‚ˆã†ã«)ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯çµ±è¨ˆã‚’表示\n" ++ ++#: ../netstat.c:1501 ++#, c-format ++msgid "" ++" -M, --masquerade display masqueraded connections\n" ++"\n" ++msgstr "" ++" -M, --masquerade マスカレード接続ã®è¡¨ç¤º\n" ++"\n" ++ ++#: ../netstat.c:1505 ++#, c-format ++msgid " --numeric-hosts don't resolve host names\n" ++msgstr " --numeric-hosts ホストåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1506 ++#, c-format ++msgid " --numeric-ports don't resolve port names\n" ++msgstr " --numeric-ports ãƒãƒ¼ãƒˆåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1507 ++#, c-format ++msgid " --numeric-users don't resolve user names\n" ++msgstr " --numeric-users ユーザåをレゾルブã—ãªã„\n" ++ ++#: ../netstat.c:1508 ++#, c-format ++msgid " -N, --symbolic resolve hardware names\n" ++msgstr " -N, --symbolic ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢åをレゾルブã™ã‚‹\n" ++ ++#: ../netstat.c:1509 ../route.c:88 ++#, c-format ++msgid " -e, --extend display other/more information\n" ++msgstr " -e, --extend ä»–ã®æƒ…報や多ãã®æƒ…報を表示ã™ã‚‹\n" ++ ++#: ../netstat.c:1510 ++#, c-format ++msgid " -p, --programs display PID/Program name for sockets\n" ++msgstr " -p, --programs ソケットã®PID/プログラムåを表示ã™ã‚‹\n" ++ ++#: ../netstat.c:1511 ++#, c-format ++msgid "" ++" -c, --continuous continuous listing\n" ++"\n" ++msgstr "" ++" -c, --continous 継続的ãªè¡¨ç¤º\n" ++"\n" ++ ++#: ../netstat.c:1512 ++#, c-format ++msgid " -l, --listening display listening server sockets\n" ++msgstr " -l, --listening サーãƒã®listenソケットã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1513 ++#, c-format ++msgid "" ++" -a, --all, --listening display all sockets (default: connected)\n" ++msgstr " -a, --all, --listening å…¨ã¦ã®æƒ…報を表示 (標準: connected)\n" ++ ++#: ../netstat.c:1514 ++#, c-format ++msgid " -o, --timers display timers\n" ++msgstr " -o, --timers タイマã®è¡¨ç¤º\n" ++ ++#: ../netstat.c:1515 ../route.c:89 ++#, c-format ++msgid "" ++" -F, --fib display Forwarding Information Base " ++"(default)\n" ++msgstr " -F, --fib フォワード情報ベースを表示ã™ã‚‹(標準)\n" ++ ++#: ../netstat.c:1516 ../route.c:90 ++#, c-format ++msgid "" ++" -C, --cache display routing cache instead of FIB\n" ++"\n" ++msgstr " -C, --cache FIBã®ã‹ã‚ã‚Šã«çµŒè·¯ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’表示ã™ã‚‹\n\n" ++ ++#: ../netstat.c:1518 ++#, c-format ++msgid "" ++" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" ++msgstr "" ++" <ソケット>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --" ++"netrom\n" ++ ++#: ../netstat.c:1519 ++#, c-format ++msgid " =Use '-6|-4' or '-A ' or '--'; default: %s\n" ++msgstr " ='-6|-4'ã¾ãŸã¯'-A 'ã¾ãŸã¯'--'を利用; 標準: %s\n" ++ ++#: ../netstat.c:1520 ../route.c:93 ++#, c-format ++msgid " List of possible address families (which support routing):\n" ++msgstr " (ルーティングをサãƒãƒ¼ãƒˆã—ãŸ)利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã®ãƒªã‚¹ãƒˆ:\n" ++ ++#: ../netstat.c:1753 ++#, c-format ++msgid "Active Internet connections " ++msgstr "稼åƒä¸­ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶š " ++ ++#: ../netstat.c:1763 ++#, c-format ++msgid "" ++"\n" ++"Proto Recv-Q Send-Q Local Address Foreign Address " ++"State " ++msgstr "" ++"\n" ++"Proto å—ä¿¡-Q é€ä¿¡-Q 内部アドレス 外部アドレス 状" ++"æ…‹ " ++ ++#: ../netstat.c:1765 ++#, c-format ++msgid " User Inode " ++msgstr " ユーザ Iノード " ++ ++#: ../netstat.c:1768 ++#, c-format ++msgid " Timer" ++msgstr "タイマ" ++ ++#: ../netstat.c:1798 ++#, c-format ++msgid "IPv4 Group Memberships\n" ++msgstr "IPv4グループメンãƒã‚·ãƒƒãƒ—\n" ++ ++#: ../netstat.c:1799 ++#, c-format ++msgid "Interface RefCnt Group\n" ++msgstr "インタフェース å‚ç…§Cnt グループ\n" ++ ++#: ../rarp.c:44 ++msgid "This kernel does not support RARP.\n" ++msgstr "ã“ã®ã‚«ãƒ¼ãƒãƒ«ã¯RARPをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../rarp.c:83 ++#, c-format ++msgid "no RARP entry for %s.\n" ++msgstr "%sã®RARPエントリãŒã‚ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../rarp.c:96 ++#, c-format ++msgid "%s: bad hardware address\n" ++msgstr "%s: ä¸æ­£ãªãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™\n" ++ ++#: ../rarp.c:128 ++#, c-format ++msgid "rarp: cannot open file %s:%s.\n" ++msgstr "rarp: ファイル%sã‚’é–‹ã‘ã¾ã›ã‚“:%s.\n" ++ ++#: ../rarp.c:140 ++#, c-format ++msgid "rarp: format error at %s:%u\n" ++msgstr "rarp: %s:%uè¡Œã«ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™\n" ++ ++#: ../rarp.c:144 ../rarp.c:289 ++#, c-format ++msgid "rarp: %s: unknown host\n" ++msgstr "rarp: %s: ä¸æ˜Žãªãƒ›ã‚¹ãƒˆã§ã™\n" ++ ++#: ../rarp.c:147 ++#, c-format ++msgid "rarp: cannot set entry from %s:%u\n" ++msgstr "rarp: %s:%uè¡Œã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’設定ã§ãã¾ã›ã‚“\n" ++ ++#: ../rarp.c:176 ++#, c-format ++msgid "Usage: rarp -a list entries in cache.\n" ++msgstr "" ++"使用法: rarp -a キャッシュエントリã®è¡¨ç¤º.\n" ++ ++#: ../rarp.c:177 ++#, c-format ++msgid " rarp -d delete entry from cache.\n" ++msgstr "" ++" rarp -d <ホストå> キャッシュã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªã‚’削除ã™" ++"ã‚‹.\n" ++ ++#: ../rarp.c:178 ++#, c-format ++msgid " rarp [] -s add entry to cache.\n" ++msgstr "" ++" rarp [] -s <ホストå> <ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹>\n" ++" キャッシュã¸ã‚¨ãƒ³ãƒˆãƒªã‚’追加.\n" ++ ++#: ../rarp.c:179 ++#, c-format ++msgid "" ++" rarp -f add entries from /etc/ethers.\n" ++msgstr "" ++" rarp -f /etc/ethersã‹ã‚‰ã‚¨ãƒ³ãƒˆãƒªè¿½åŠ .\n" ++ ++#: ../rarp.c:180 ++#, c-format ++msgid "" ++" rarp -V display program version.\n" ++"\n" ++msgstr " rarp -V ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã®å‡ºåŠ›.\n" ++ ++#: ../rarp.c:238 ++#, c-format ++msgid "%s: illegal option mix.\n" ++msgstr "%s: オプションã®çµ„åˆã›ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" ++ ++#: ../rarp.c:269 ++#, c-format ++msgid "rarp: %s: unknown hardware type.\n" ++msgstr "rarp: %s: ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—ãŒä¸æ˜Žã§ã™.\n" ++ ++#: ../route.c:80 ++#, c-format ++msgid "" ++"Usage: route [-nNvee] [-FC] [] List kernel routing tables\n" ++msgstr "使用法:route [-nNvee] [-FC] [アドレスファミリ] カーãƒãƒ«çµŒè·¯ãƒ†ãƒ¼ãƒ–ルã®è¡¨ç¤º.\n" ++ ++#: ../route.c:81 ++#, c-format ++msgid "" ++" route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n" ++"\n" ++msgstr "" ++" route [-v] [-FC] {add|del|flush}‥‥\n" ++"\t\t\t\t アドレスファミリã®çµŒè·¯ãƒ†ãƒ¼ãƒ–ルã®è¨­å®š.\n" ++"\n" ++ ++#: ../route.c:83 ++#, c-format ++msgid "" ++" route {-h|--help} [] Detailed usage syntax for " ++"specified AF.\n" ++msgstr "" ++" route {-h|--help} [アドレスファミリ]\n" ++" アドレスファミリ特定ã®æ–‡æ³•ã®èª¬æ˜Ž.\n" ++ ++#: ../route.c:84 ++#, c-format ++msgid "" ++" route {-V|--version} Display version/author and " ++"exit.\n" ++"\n" ++msgstr " route {-V|--version} ãƒãƒ¼ã‚¸ãƒ§ãƒ³/作者情報ã®å‡ºåŠ›ã¨çµ‚了.\n\n" ++ ++#: ../route.c:92 ++#, c-format ++msgid " =Use '-A ' or '--'; default: %s\n" ++msgstr " ='-A 'ã¾ãŸã¯'--'を利用; 標準: %s\n" ++ ++#: ../plipconfig.c:66 ++#, c-format ++msgid "Usage: plipconfig [-a] [-i] [-v] interface\n" ++msgstr "使用法: plipconfig [-a] [-i] [-v] インタフェース\n" ++ ++#: ../plipconfig.c:67 ++#, c-format ++msgid " [nibble NN] [trigger NN]\n" ++msgstr " [nibble 数値] [trigger 数値]\n" ++ ++#: ../plipconfig.c:68 ++#, c-format ++msgid " plipconfig -V | --version\n" ++msgstr " plipconfig -V | --version\n" ++ ++# translatable? ++#: ../plipconfig.c:74 ++#, c-format ++msgid "%s\tnibble %lu trigger %lu\n" ++msgstr "%s\tnibble %lu trigger %lu\n" ++ ++#: ../iptunnel.c:85 ++#, c-format ++msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n" ++msgstr "Usage: iptunnel { add | change | del | show } [ NAME ]\n" ++ ++#: ../iptunnel.c:86 ++#, c-format ++msgid "" ++" [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" ++msgstr " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" ++ ++#: ../iptunnel.c:87 ++#, c-format ++msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" ++msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" ++ ++#: ../iptunnel.c:88 ++#, c-format ++msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" ++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n" ++ ++#: ../iptunnel.c:89 ++#, c-format ++msgid "" ++" iptunnel -V | --version\n" ++"\n" ++msgstr " iptunnel -V | --version\n\n" ++ ++#: ../iptunnel.c:90 ++#, c-format ++msgid "Where: NAME := STRING\n" ++msgstr "æ„味: NAME := STRING\n" ++ ++#: ../iptunnel.c:91 ++#, c-format ++msgid " ADDR := { IP_ADDRESS | any }\n" ++msgstr " ADDR := { IP_ADDRESS | any }\n" ++ ++#: ../iptunnel.c:92 ++#, c-format ++msgid " TOS := { NUMBER | inherit }\n" ++msgstr " TOS := { NUMBER | inherit }\n" ++ ++#: ../iptunnel.c:93 ++#, c-format ++msgid " TTL := { 1..255 | inherit }\n" ++msgstr " TTL := { 1..255 | inherit }\n" ++ ++#: ../iptunnel.c:94 ++#, c-format ++msgid " KEY := { DOTTED_QUAD | NUMBER }\n" ++msgstr " KEY := { DOTTED_QUAD | NUMBER }\n" ++ ++#: ../iptunnel.c:332 ++#, c-format ++msgid "Keys are not allowed with ipip and sit.\n" ++msgstr "キーã¯ipipãŠã‚ˆã³sitã§ã¯è¨±å¯ã•ã‚Œã¾ã›ã‚“.\n" ++ ++#: ../iptunnel.c:352 ++#, c-format ++msgid "Broadcast tunnel requires a source address.\n" ++msgstr "ブロードキャストトンãƒãƒ«ã¯ç™ºä¿¡å…ƒã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå¿…è¦ã§ã™.\n" ++ ++#: ../iptunnel.c:367 ++#, c-format ++msgid "ttl != 0 and noptmudisc are incompatible\n" ++msgstr "ttl != 0ãŠã‚ˆã³noptmudiscã¯çŸ›ç›¾ã—ã¾ã™\n" ++ ++#: ../iptunnel.c:379 ++#, c-format ++msgid "cannot determine tunnel mode (ipip, gre or sit)\n" ++msgstr "トンãƒãƒ«ãƒ¢ãƒ¼ãƒ‰ã‚’決定ã§ãã¾ã›ã‚“(ipip, greã¾ãŸã¯sit)\n" ++ ++#: ../iptunnel.c:417 ++#, c-format ++msgid "%s: %s/ip remote %s local %s " ++msgstr "%s: %s/ip リモート%s ローカル%s " ++ ++#: ../iptunnel.c:421 ++msgid "unknown" ++msgstr "ä¸æ˜Ž" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:453 ++#, c-format ++msgid " Drop packets out of sequence.\n" ++msgstr " シーケンスã‹ã‚‰å¤–ã‚ŒãŸãƒ‘ケットをドロップ.\n" ++ ++#: ../iptunnel.c:455 ++#, c-format ++msgid " Checksum in received packet is required.\n" ++msgstr " å—信パケットã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã¯å¿…é ˆã§ã™.\n" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:457 ++#, c-format ++msgid " Sequence packets on output.\n" ++msgstr " é€ä¿¡ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ãƒ‘ケット.\n" ++ ++# FIXME: what does it mean? ++#: ../iptunnel.c:459 ++#, c-format ++msgid " Checksum output packets.\n" ++msgstr " é€ä¿¡ãƒ‘ケットã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ .\n" ++ ++#: ../iptunnel.c:487 ++#, c-format ++msgid "Wrong format of /proc/net/dev. Sorry.\n" ++msgstr "/proc/net/devãŒä¸æ­£ãªãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§ã™. ã™ã¿ã¾ã›ã‚“.\n" ++ ++#: ../iptunnel.c:500 ++#, c-format ++msgid "Failed to get type of [%s]\n" ++msgstr "[%s]ã®ã‚¿ã‚¤ãƒ—ã®å–å¾—ã«å¤±æ•—\n" ++ ++#: ../iptunnel.c:516 ++#, c-format ++msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n" ++msgstr "RX: パケット ãƒã‚¤ãƒˆ エラー CsumErrs outOfSeq マルãƒã‚­ãƒ£ã‚¹ãƒˆ\n" ++ ++#: ../iptunnel.c:519 ++#, c-format ++msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n" ++msgstr "TX: パケット ãƒã‚¤ãƒˆ エラー DeadLoop NoRoute ãƒãƒƒãƒ•ã‚¡ãªã—\n" ++ ++#: ../statistics.c:47 ++msgid "ICMP input histogram:" ++msgstr "ICMP入力ヒストグラム:" ++ ++#: ../statistics.c:48 ++msgid "ICMP output histogram:" ++msgstr "ICMP出力ヒストグラム:" ++ ++#: ../statistics.c:65 ++#, c-format ++msgid "Forwarding is %s" ++msgstr "フォワードã¯%sã§ã™" ++ ++#: ../statistics.c:66 ++#, c-format ++msgid "Default TTL is %u" ++msgstr "標準TTLã¯%uã§ã™" ++ ++#: ../statistics.c:67 ++#, c-format ++msgid "%u total packets received" ++msgstr "åˆè¨ˆ%uパケットをå—ä¿¡" ++ ++#: ../statistics.c:68 ++#, c-format ++msgid "%u with invalid headers" ++msgstr "ä¸é©å½“ãªãƒ˜ãƒƒãƒ€ãŒ%u" ++ ++#: ../statistics.c:69 ++#, c-format ++msgid "%u with invalid addresses" ++msgstr "ä¸é©å½“ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãŒ%u" ++ ++#: ../statistics.c:70 ++#, c-format ++msgid "%u forwarded" ++msgstr "%uã®è»¢é€" ++ ++#: ../statistics.c:71 ++#, c-format ++msgid "%u with unknown protocol" ++msgstr "%uã®ä¸æ˜Žãªãƒ—ロトコル" ++ ++#: ../statistics.c:72 ++#, c-format ++msgid "%u incoming packets discarded" ++msgstr "%uã®å—信パケットを破棄" ++ ++#: ../statistics.c:73 ++#, c-format ++msgid "%u incoming packets delivered" ++msgstr "%uã®å—信パケットをé…é€" ++ ++#: ../statistics.c:74 ++#, c-format ++msgid "%u requests sent out" ++msgstr "%uã®è¦æ±‚ã‚’é€ä¿¡" ++ ++#. ? ++#: ../statistics.c:75 ++#, c-format ++msgid "%u outgoing packets dropped" ++msgstr "%uã®é€ä¿¡ãƒ‘ケットをドロップ" ++ ++#: ../statistics.c:76 ++#, c-format ++msgid "%u dropped because of missing route" ++msgstr "ä¸æ˜ŽãªçµŒè·¯ã§%uをドロップ" ++ ++#: ../statistics.c:77 ++#, c-format ++msgid "%u fragments dropped after timeout" ++msgstr "タイムアウト後ã«%uã®ãƒ•ãƒ©ã‚°ãƒ¡ãƒ³ãƒˆã‚’ドロップ" ++ ++#: ../statistics.c:78 ++#, c-format ++msgid "%u reassemblies required" ++msgstr "%uã®å†æ§‹ç¯‰ãŒå¿…è¦" ++ ++#. ? ++#: ../statistics.c:79 ++#, c-format ++msgid "%u packets reassembled ok" ++msgstr "%uパケットã®å†æ§‹ç¯‰ã«æˆåŠŸ" ++ ++#: ../statistics.c:80 ++#, c-format ++msgid "%u packet reassembles failed" ++msgstr "%uパケットã®å†æ§‹ç¯‰ã«å¤±æ•—" ++ ++#: ../statistics.c:81 ++#, c-format ++msgid "%u fragments received ok" ++msgstr "%uフラグメントã®å—ä¿¡ã«æˆåŠŸ" ++ ++#: ../statistics.c:82 ++#, c-format ++msgid "%u fragments failed" ++msgstr "%uフラグメントã§å¤±æ•—" ++ ++#: ../statistics.c:83 ++#, c-format ++msgid "%u fragments created" ++msgstr "%uフラグメントを生æˆ" ++ ++#: ../statistics.c:88 ++#, c-format ++msgid "%u ICMP messages received" ++msgstr "%uã®ICMPメッセージå—ä¿¡" ++ ++#: ../statistics.c:89 ++#, c-format ++msgid "%u input ICMP message failed." ++msgstr "%uã®ICMPメッセージ入力失敗." ++ ++#: ../statistics.c:90 ../statistics.c:103 ++#, c-format ++msgid "destination unreachable: %u" ++msgstr "é€ä¿¡å…ˆåˆ°é”ä¸å¯: %u" ++ ++#: ../statistics.c:91 ++#, c-format ++msgid "timeout in transit: %u" ++msgstr "é€ä¿¡æ™‚間オーãƒ: %u" ++ ++#: ../statistics.c:92 ../statistics.c:105 ++#, c-format ++msgid "wrong parameters: %u" ++msgstr "è¬ã£ãŸãƒ‘ラメータ: %u" ++ ++#. ? ++#: ../statistics.c:93 ++#, c-format ++msgid "source quenches: %u" ++msgstr "発信元消滅: %u" ++ ++#: ../statistics.c:94 ++#, c-format ++msgid "redirects: %u" ++msgstr "リダイレクト: %u" ++ ++#: ../statistics.c:95 ++#, c-format ++msgid "echo requests: %u" ++msgstr "エコーè¦æ±‚: %u" ++ ++#: ../statistics.c:96 ../statistics.c:109 ++#, c-format ++msgid "echo replies: %u" ++msgstr "エコー応答: %u" ++ ++#: ../statistics.c:97 ++#, c-format ++msgid "timestamp request: %u" ++msgstr "タイムスタンプè¦æ±‚: %u" ++ ++#: ../statistics.c:98 ++#, c-format ++msgid "timestamp reply: %u" ++msgstr "タイムスタンプ応答: %u" ++ ++#: ../statistics.c:99 ++#, c-format ++msgid "address mask request: %u" ++msgstr "アドレスマスクè¦æ±‚: %u" ++ ++#. ? ++#: ../statistics.c:100 ../statistics.c:113 ++#, c-format ++msgid "address mask replies: %u" ++msgstr "アドレスマスク応答: %u" ++ ++#. ? ++#: ../statistics.c:101 ++#, c-format ++msgid "%u ICMP messages sent" ++msgstr "%uã®ICMPメッセージé€ä¿¡" ++ ++#: ../statistics.c:102 ++#, c-format ++msgid "%u ICMP messages failed" ++msgstr "%uã®ICMPメッセージ失敗" ++ ++#: ../statistics.c:104 ++#, c-format ++msgid "time exceeded: %u" ++msgstr "時間切れ: %u" ++ ++#. ? ++#: ../statistics.c:106 ++#, c-format ++msgid "source quench: %u" ++msgstr "発信元消滅: %u" ++ ++#: ../statistics.c:107 ++#, c-format ++msgid "redirect: %u" ++msgstr "リダイレクト: %u" ++ ++#: ../statistics.c:108 ++#, c-format ++msgid "echo request: %u" ++msgstr "エコーè¦æ±‚: %u" ++ ++#: ../statistics.c:110 ++#, c-format ++msgid "timestamp requests: %u" ++msgstr "タイムスタンプè¦æ±‚: %u" ++ ++#: ../statistics.c:111 ++#, c-format ++msgid "timestamp replies: %u" ++msgstr "タイムスタンプ応答: %u" ++ ++#: ../statistics.c:112 ++#, c-format ++msgid "address mask requests: %u" ++msgstr "アドレスマスクè¦æ±‚: %u" ++ ++#: ../statistics.c:118 ++#, c-format ++msgid "RTO algorithm is %s" ++msgstr "RTOアルゴリズムã¯%sã§ã™" ++ ++#: ../statistics.c:122 ++#, c-format ++msgid "%u active connections openings" ++msgstr "%uã®èƒ½å‹•æŽ¥ç¶šé–‹å§‹" ++ ++#: ../statistics.c:123 ++#, c-format ++msgid "%u passive connection openings" ++msgstr "%uã®å—動接続開始" ++ ++#: ../statistics.c:124 ++#, c-format ++msgid "%u failed connection attempts" ++msgstr "%uã®æŽ¥ç¶šè©¦è¡Œå¤±æ•—" ++ ++#: ../statistics.c:125 ++#, c-format ++msgid "%u connection resets received" ++msgstr "%uã®æŽ¥ç¶šãƒªã‚»ãƒƒãƒˆå—ä¿¡" ++ ++#: ../statistics.c:126 ++#, c-format ++msgid "%u connections established" ++msgstr "%uã®æŽ¥ç¶šç¢ºç«‹" ++ ++#: ../statistics.c:127 ++#, c-format ++msgid "%u segments received" ++msgstr "%uセグメントã®å—ä¿¡" ++ ++#: ../statistics.c:128 ++#, c-format ++msgid "%u segments send out" ++msgstr "%uセグメントã®é€ä¿¡" ++ ++#: ../statistics.c:129 ++#, c-format ++msgid "%u segments retransmited" ++msgstr "%uセグメントã®å†è»¢é€" ++ ++#: ../statistics.c:130 ++#, c-format ++msgid "%u bad segments received." ++msgstr "%uã®ä¸æ­£ã‚»ã‚°ãƒ¡ãƒ³ãƒˆå—ä¿¡." ++ ++#: ../statistics.c:131 ++#, c-format ++msgid "%u resets sent" ++msgstr "%uã®ãƒªã‚»ãƒƒãƒˆé€ä¿¡" ++ ++#: ../statistics.c:136 ++#, c-format ++msgid "%u packets received" ++msgstr "%uパケットå—ä¿¡" ++ ++#: ../statistics.c:137 ++#, c-format ++msgid "%u packets to unknown port received." ++msgstr "ä¸æ˜Žãªãƒãƒ¼ãƒˆã‹ã‚‰ã®%uパケットã®å—ä¿¡." ++ ++#: ../statistics.c:138 ++#, c-format ++msgid "%u packet receive errors" ++msgstr "%uã®ãƒ‘ケットå—信エラー" ++ ++#: ../statistics.c:139 ++#, c-format ++msgid "%u packets sent" ++msgstr "%uã®ãƒ‘ケットをé€ä¿¡" ++ ++#: ../statistics.c:144 ++#, c-format ++msgid "%u SYN cookies sent" ++msgstr "%uã®SYNクッキーをé€ä¿¡" ++ ++#: ../statistics.c:145 ++#, c-format ++msgid "%u SYN cookies received" ++msgstr "%uã®SYNクッキーをå—ä¿¡" ++ ++#: ../statistics.c:146 ++#, c-format ++msgid "%u invalid SYN cookies received" ++msgstr "%uã®ä¸é©å½“ãªSYNクッキーをå—ä¿¡" ++ ++#: ../statistics.c:148 ++#, c-format ++msgid "%u resets received for embryonic SYN_RECV sockets" ++msgstr "%uã®æœªå®Œæˆã®SYN_RECVソケットã«å¯¾ã™ã‚‹ãƒªã‚»ãƒƒãƒˆã‚’å—ä¿¡" ++ ++#: ../statistics.c:150 ++#, c-format ++msgid "%u packets pruned from receive queue because of socket buffer overrun" ++msgstr "%uã®ãƒ‘ケットをソケットãƒãƒƒãƒ•ã‚¡ã‚ªãƒ¼ãƒãƒ©ãƒ³ã®ãŸã‚å—信キューã‹ã‚‰é™¤å¤–" ++ ++#. obsolete: 2.2.0 doesn't do that anymore ++#: ../statistics.c:153 ++#, c-format ++msgid "%u packets pruned from receive queue" ++msgstr "%uã®ãƒ‘ケットをå—信キューã‹ã‚‰é™¤å¤–" ++ ++#: ../statistics.c:154 ++#, c-format ++msgid "" ++"%u packets dropped from out-of-order queue because of socket buffer overrun" ++msgstr "%uã®ãƒ‘ケットãŒã‚½ã‚±ãƒƒãƒˆãƒãƒƒãƒ•ã‚¡ã‚ªãƒ¼ãƒãƒ¼ãƒ©ãƒ³ã®ãŸã‚out-of-orderキューã‹ã‚‰ãƒ‰ãƒ­ãƒƒãƒ—" ++ ++#: ../statistics.c:156 ++#, c-format ++msgid "%u ICMP packets dropped because they were out-of-window" ++msgstr "%uã®ICMPパケットãŒout-of-windowã®ãŸã‚ドロップ" ++ ++#: ../statistics.c:158 ++#, c-format ++msgid "%u ICMP packets dropped because socket was locked" ++msgstr "%uã®ICMPパケットをソケットã®ãƒ­ãƒƒã‚¯ã«ã‚ˆã£ã¦ãƒ‰ãƒ­ãƒƒãƒ—" ++ ++# FIXME: what does it mean? ++#: ../statistics.c:160 ++#, c-format ++msgid "%u TCP sockets finished time wait in fast timer" ++msgstr "%uã®TCPソケットãŒãƒ•ã‚¡ãƒ¼ã‚¹ãƒˆã‚¿ã‚¤ãƒžã§ã®æ™‚é–“å¾…ã¡ã‚’完了" ++ ++# FIXME ++#: ../statistics.c:161 ++#, c-format ++msgid "%u time wait sockets recycled by time stamp" ++msgstr "%uã®æ™‚é–“å¾…ã¡ã‚½ã‚±ãƒƒãƒˆãŒã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã§å†åˆ©ç”¨" ++ ++# FIXME ++#: ../statistics.c:162 ++#, c-format ++msgid "%u TCP sockets finished time wait in slow timer" ++msgstr "%uã®TCPソケットãŒã‚¹ãƒ­ãƒ¼ã‚¿ã‚¤ãƒžã§ã®æ™‚é–“å¾…ã¡ã‚’完了" ++ ++#: ../statistics.c:163 ++#, c-format ++msgid "%u passive connections rejected because of time stamp" ++msgstr "%uã®å—動的接続ãŒã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã®ãŸã‚ã«æ‹’å¦" ++ ++#: ../statistics.c:165 ++#, c-format ++msgid "%u active connections rejected because of time stamp" ++msgstr "%uã®èƒ½å‹•çš„接続ãŒã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã®ãŸã‚ã«æ‹’å¦" ++ ++#: ../statistics.c:167 ++#, c-format ++msgid "%u packets rejects in established connections because of timestamp" ++msgstr "%uã®ãƒ‘ケットãŒã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã®ãŸã‚ã«æŽ¥ç¶šç¢ºç«‹ã‚’æ‹’å¦" ++ ++#: ../statistics.c:169 ++#, c-format ++msgid "%u delayed acks sent" ++msgstr "%uã®é…延ackã‚’é€ä¿¡" ++ ++# FIXME ++#: ../statistics.c:170 ++#, c-format ++msgid "%u delayed acks further delayed because of locked socket" ++msgstr "%uã®é…延ackãŒãƒ­ãƒƒã‚¯ã•ã‚ŒãŸã‚½ã‚±ãƒƒãƒˆã®ãŸã‚ã«ã•ã‚‰ã«é…延" ++ ++#: ../statistics.c:172 ++#, c-format ++msgid "Quick ack mode was activated %u times" ++msgstr "クイックackモードãŒ%u回稼åƒ" ++ ++# FIXME ++#: ../statistics.c:173 ++#, c-format ++msgid "%u times the listen queue of a socket overflowed" ++msgstr "ソケットã®ãƒªã‚¹ãƒ³ã‚­ãƒ¥ãƒ¼ãŒ%u回オーãƒãƒ•ãƒ­ãƒ¼" ++ ++# FIXME ++#: ../statistics.c:175 ++#, c-format ++msgid "%u SYNs to LISTEN sockets ignored" ++msgstr "%uã®ã‚½ã‚±ãƒƒãƒˆãƒªã‚¹ãƒ³SYNãŒç„¡è¦–" ++ ++#: ../statistics.c:176 ++#, c-format ++msgid "%u packets directly queued to recvmsg prequeue." ++msgstr "%uパケットをrecvmsgプレキューã«ç›´æŽ¥ã‚­ãƒ¥ãƒ¼." ++ ++#: ../statistics.c:178 ++#, c-format ++msgid "%u of bytes directly received from backlog" ++msgstr "%uãƒã‚¤ãƒˆã‚’ãƒãƒƒã‚¯ãƒ­ã‚°ã‹ã‚‰ç›´æŽ¥å—ä¿¡" ++ ++#: ../statistics.c:180 ++#, c-format ++msgid "%u of bytes directly received from prequeue" ++msgstr "%uãƒã‚¤ãƒˆã‚’プレキューã‹ã‚‰ç›´æŽ¥å—ä¿¡" ++ ++#: ../statistics.c:182 ++#, c-format ++msgid "%u packets dropped from prequeue" ++msgstr "%uã®ãƒ‘ケットをプレキューã‹ã‚‰ãƒ‰ãƒ­ãƒƒãƒ—" ++ ++#: ../statistics.c:183 ++#, c-format ++msgid "%u packet headers predicted" ++msgstr "%uã®ãƒ‘ケットヘッダを予測" ++ ++#: ../statistics.c:184 ++#, c-format ++msgid "%u packets header predicted and directly queued to user" ++msgstr "%uã®ãƒ‘ケットヘッダを予測ã—ã¦ãƒ¦ãƒ¼ã‚¶ã«ç›´æŽ¥ã‚­ãƒ¥ãƒ¼" ++ ++#: ../statistics.c:186 ++#, c-format ++msgid "Ran %u times out of system memory during packet sending" ++msgstr "%u回ã®ãƒ‘ケットé€ä¿¡ä¸­ã®ã‚·ã‚¹ãƒ†ãƒ ãƒ¡ãƒ¢ãƒªã‚ãµã‚Œ" ++ ++#: ../statistics.c:188 ++#, c-format ++msgid "%u acknowledgments not containing data received" ++msgstr "データをå«ã¾ãªã„%uã®æ‰¿èªã®å—ä¿¡" ++ ++#: ../statistics.c:189 ++#, c-format ++msgid "%u predicted acknowledgments" ++msgstr "%uã®äºˆæ¸¬æ‰¿èª" ++ ++#: ../statistics.c:190 ++#, c-format ++msgid "%u times recovered from packet loss due to fast retransmit" ++msgstr "高速ãªå†é€ã«ã‚ˆã‚‹ãƒ‘ケットロスã®%u回ã®å›žå¾©" ++ ++#: ../statistics.c:191 ++#, c-format ++msgid "%u times recovered from packet loss due to SACK data" ++msgstr "SACKデータã«ã‚ˆã‚‹ãƒ‘ケットロスã®%u回ã®å›žå¾©" ++ ++#: ../statistics.c:192 ++#, c-format ++msgid "%u bad SACKs received" ++msgstr "%uã®ä¸æ­£ãªSACKã‚’å—ä¿¡" ++ ++#: ../statistics.c:193 ++#, c-format ++msgid "Detected reordering %u times using FACK" ++msgstr "FACKを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:194 ++#, c-format ++msgid "Detected reordering %u times using SACK" ++msgstr "SACKを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:195 ++#, c-format ++msgid "Detected reordering %u times using time stamp" ++msgstr "タイムスタンプを使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++# FIXME:what does it mean? ++#: ../statistics.c:196 ++#, c-format ++msgid "Detected reordering %u times using reno fast retransmit" ++msgstr "高速å†é€ã‚’使ã£ãŸ%u回ã®æ¤œå‡ºã•ã‚ŒãŸä¸¦ã¹æ›¿ãˆ" ++ ++#: ../statistics.c:197 ++#, c-format ++msgid "%u congestion windows fully recovered" ++msgstr "%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’完全ã«å›žå¾©" ++ ++#: ../statistics.c:198 ++#, c-format ++msgid "%u congestion windows partially recovered using Hoe heuristic" ++msgstr "Hoeヒューリスティックを使ã£ã¦%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’部分的ã«å›žå¾©" ++ ++#: ../statistics.c:199 ++#, c-format ++msgid "%u congestion window recovered using DSACK" ++msgstr "DSACKを使ã£ã¦%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’回復" ++ ++#: ../statistics.c:200 ++#, c-format ++msgid "%u congestion windows recovered after partial ack" ++msgstr "部分ack後ã«%uã®è¼»è¼³ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’回復" ++ ++#: ../statistics.c:201 ++#, c-format ++msgid "%u retransmits lost" ++msgstr "%uã®å†é€ãƒ­ã‚¹ãƒˆ" ++ ++# FIXME ++#: ../statistics.c:202 ++#, c-format ++msgid "%u timeouts after reno fast retransmit" ++msgstr "高速å†é€å¾Œã®%uã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ" ++ ++#: ../statistics.c:203 ++#, c-format ++msgid "%u timeouts after SACK recovery" ++msgstr "SACK復元後ã®%uã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ" ++ ++#: ../statistics.c:204 ++#, c-format ++msgid "%u timeouts in loss state" ++msgstr "状態ロスã§ã®%uã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆ" ++ ++#: ../statistics.c:205 ++#, c-format ++msgid "%u fast retransmits" ++msgstr "%uã®é«˜é€Ÿå†é€" ++ ++#: ../statistics.c:206 ++#, c-format ++msgid "%u forward retransmits" ++msgstr "%uã®è»¢é€å†é€" ++ ++#: ../statistics.c:207 ++#, c-format ++msgid "%u retransmits in slow start" ++msgstr "スロースタートã§ã®%uã®å†é€" ++ ++#: ../statistics.c:208 ++#, c-format ++msgid "%u other TCP timeouts" ++msgstr "%uã®ãã®ä»–ã®TCPタイムアウト" ++ ++# FIXME ++#: ../statistics.c:209 ++#, c-format ++msgid "%u reno fast retransmits failed" ++msgstr "%dã®é«˜é€Ÿå†é€å¤±æ•—" ++ ++#: ../statistics.c:210 ++#, c-format ++msgid "%u sack retransmits failed" ++msgstr "%uã®sackå†é€å¤±æ•—" ++ ++# FIXME ++#: ../statistics.c:211 ++#, c-format ++msgid "%u times receiver scheduled too late for direct processing" ++msgstr "直接処ç†ã«ã¯é…ã™ãŽã‚‹ã¨ã‚¹ã‚±ã‚¸ãƒ¥ãƒ¼ãƒ«ã•ã‚ŒãŸ%u回ã®ãƒ¬ã‚·ãƒ¼ãƒ" ++ ++# FIXME ++#: ../statistics.c:212 ++#, c-format ++msgid "%u packets collapsed in receive queue due to low socket buffer" ++msgstr "%uã®ãƒ‘ケットを低ソケットãƒãƒƒãƒ•ã‚¡ã®ãŸã‚ã«å—信キューã‹ã‚‰é™¤å¤–" ++ ++#: ../statistics.c:213 ++#, c-format ++msgid "%u DSACKs sent for old packets" ++msgstr "%uã®DSACKã‚’å¤ã„パケットã¨ã—ã¦é€ä¿¡" ++ ++#: ../statistics.c:214 ++#, c-format ++msgid "%u DSACKs sent for out of order packets" ++msgstr "%uã®DSACKã‚’é †åºå¤–パケットã¨ã—ã¦é€ä¿¡" ++ ++#: ../statistics.c:215 ++#, c-format ++msgid "%u DSACKs received" ++msgstr "%uã®DSACKã‚’å—ä¿¡" ++ ++#: ../statistics.c:216 ++#, c-format ++msgid "%u DSACKs for out of order packets received" ++msgstr "%uã®DSACKã‚’é †åºå¤–パケットã¨ã—ã¦å—ä¿¡" ++ ++#: ../statistics.c:217 ++#, c-format ++msgid "%u connections reset due to unexpected SYN" ++msgstr "予期ã›ã¬SYNã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:218 ++#, c-format ++msgid "%u connections reset due to unexpected data" ++msgstr "予期ã›ã¬ãƒ‡ãƒ¼ã‚¿ã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:219 ++#, c-format ++msgid "%u connections reset due to early user close" ++msgstr "早期ã®ãƒ¦ãƒ¼ã‚¶ã®ã‚¯ãƒ­ãƒ¼ã‚ºã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’リセット" ++ ++#: ../statistics.c:220 ++#, c-format ++msgid "%u connections aborted due to memory pressure" ++msgstr "メモリã®åˆ¶ç´„ã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’中止" ++ ++#: ../statistics.c:221 ++#, c-format ++msgid "%u connections aborted due to timeout" ++msgstr "タイムアウトã®ãŸã‚ã«%uã®æŽ¥ç¶šã‚’中止" ++ ++# FIXME ++#: ../statistics.c:222 ++#, c-format ++msgid "%u connections aborted after user close in linger timeout" ++msgstr "ユーザã®é•·æœŸã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã§ã®ã‚¯ãƒ­ãƒ¼ã‚ºå¾Œã«%uã®æŽ¥ç¶šãŒä¸­æ­¢" ++ ++#: ../statistics.c:223 ++#, c-format ++msgid "%u times unabled to send RST due to no memory" ++msgstr "メモリä¸è¶³ã®ãŸã‚ã«RSTã®é€ä¿¡ãŒ%u回ä¸èƒ½" ++ ++# FIXME ++#: ../statistics.c:224 ++#, c-format ++msgid "TCP ran low on memory %u times" ++msgstr "TCPãŒå°‘ãªã„メモリã§%u回実行" ++ ++#: ../statistics.c:225 ++#, c-format ++msgid "%u TCP data loss events" ++msgstr "%uã®TCPデータãŒã‚¤ãƒ™ãƒ³ãƒˆã‚’ロス" ++ ++#: ../statistics.c:292 ++msgid "enabled" ++msgstr "有効" ++ ++#: ../statistics.c:292 ++msgid "disabled" ++msgstr "無効" ++ ++#: ../statistics.c:375 ++msgid "error parsing /proc/net/snmp" ++msgstr "/proc/net/snmpã®å‡¦ç†ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" ++ ++#: ../statistics.c:388 ++msgid "cannot open /proc/net/snmp" ++msgstr "/proc/net/snmpã‚’é–‹ã‘ã¾ã›ã‚“" ++ ++#: ../lib/activate.c:69 ++#, c-format ++msgid "Hardware type `%s' not supported.\n" ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¿ã‚¤ãƒ—`%s'ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/activate.c:73 ++#, c-format ++msgid "Cannot change line discipline to `%s'.\n" ++msgstr "`%s'ã®line disciplineを変更ã§ãã¾ã›ã‚“.\n" ++ ++#: ../lib/af.c:153 ../lib/hw.c:161 ++msgid "UNSPEC" ++msgstr "ä¸æ˜Žãªãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:155 ++msgid "UNIX Domain" ++msgstr "UNIXドメイン" ++ ++#: ../lib/af.c:158 ++msgid "DARPA Internet" ++msgstr "DARPAインターãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:161 ++msgid "IPv6" ++msgstr "IPv6" ++ ++#: ../lib/af.c:164 ../lib/hw.c:182 ++msgid "AMPR AX.25" ++msgstr "AMPR AX.25" ++ ++#: ../lib/af.c:167 ../lib/hw.c:188 ++msgid "AMPR NET/ROM" ++msgstr "AMPR NET/ROM" ++ ++#: ../lib/af.c:170 ++msgid "Novell IPX" ++msgstr "Novell IPX" ++ ++#: ../lib/af.c:173 ++msgid "Appletalk DDP" ++msgstr "アップルトークDDP" ++ ++#: ../lib/af.c:176 ../lib/hw.c:223 ++msgid "Econet" ++msgstr "エコãƒãƒƒãƒˆ" ++ ++#: ../lib/af.c:179 ++msgid "CCITT X.25" ++msgstr "CCITT X.25" ++ ++#: ../lib/af.c:182 ../lib/hw.c:185 ++msgid "AMPR ROSE" ++msgstr "AMPR ROSE" ++ ++#: ../lib/af.c:185 ../lib/hw.c:173 ++msgid "Ash" ++msgstr "Ash" ++ ++#: ../lib/af.c:243 ++#, c-format ++msgid "Please don't supply more than one address family.\n" ++msgstr "複数ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã‚’ã—ãªã„ã§ä¸‹ã•ã„.\n" ++ ++#: ../lib/af.c:304 ++#, c-format ++msgid "Too much address family arguments.\n" ++msgstr "アドレスファミリã®å¼•æ•°ãŒå¤šã™ãŽã¾ã™.\n" ++ ++#: ../lib/af.c:315 ++#, c-format ++msgid "Unknown address family `%s'.\n" ++msgstr "ä¸æ˜Žãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªã§ã™ `%s'.\n" ++ ++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85 ++#, c-format ++msgid "in_arcnet(%s): invalid arcnet address!\n" ++msgstr "in_arcnet(%s): ä¸é©å½“ãªARCNETアドレスã§ã™!\n" ++ ++#: ../lib/arcnet.c:97 ++#, c-format ++msgid "in_arcnet(%s): trailing : ignored!\n" ++msgstr "in_arcnet(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/arcnet.c:109 ++#, c-format ++msgid "in_arcnet(%s): trailing junk!\n" ++msgstr "in_arcnet(%s): trailing junk!\n" ++ ++#: ../lib/ash.c:81 ++#, c-format ++msgid "Malformed Ash address" ++msgstr "異常ãªAshアドレスã§ã™" ++ ++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244 ++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76 ++msgid "[NONE SET]" ++msgstr "[設定ãªã—]" ++ ++#: ../lib/ax25.c:97 ../lib/netrom.c:100 ++msgid "Invalid callsign" ++msgstr "ä¸é©å½“ãªã‚³ãƒ¼ãƒ«ã‚µã‚¤ãƒ³ã§ã™" ++ ++#: ../lib/ax25.c:110 ../lib/netrom.c:113 ++msgid "Callsign too long" ++msgstr "コールサインãŒé•·ã™ãŽã¾ã™" ++ ++#: ../lib/ax25_gr.c:47 ++#, c-format ++msgid "AX.25 not configured in this system.\n" ++msgstr "AX.25ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/ax25_gr.c:50 ++#, c-format ++msgid "Kernel AX.25 routing table\n" ++msgstr "カーãƒãƒ« AX.25経路テーブル\n" ++ ++#. xxx ++#: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55 ++#, c-format ++msgid "Destination Iface Use\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ Iface 使用数\n" ++ ++#: ../lib/ether.c:74 ../lib/ether.c:91 ++#, c-format ++msgid "in_ether(%s): invalid ether address!\n" ++msgstr "in_ether(%s): ä¸é©å½“ãªã‚¤ãƒ¼ã‚µã‚¢ãƒ‰ãƒ¬ã‚¹!\n" ++ ++#: ../lib/ether.c:105 ++#, c-format ++msgid "in_ether(%s): trailing : ignored!\n" ++msgstr "in_ether(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/ether.c:117 ++#, c-format ++msgid "in_ether(%s): trailing junk!\n" ++msgstr "in_ether(%s): trailing junk!\n" ++ ++#: ../lib/fddi.c:84 ../lib/fddi.c:99 ++#, c-format ++msgid "in_fddi(%s): invalid fddi address!\n" ++msgstr "in_fddi(%s): ä¸é©å½“ãªfddiアドレス!\n" ++ ++#: ../lib/fddi.c:111 ++#, c-format ++msgid "in_fddi(%s): trailing : ignored!\n" ++msgstr "in_fddi(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/fddi.c:123 ++#, c-format ++msgid "in_fddi(%s): trailing junk!\n" ++msgstr "in_fddi(%s): trailing junk!\n" ++ ++#: ../lib/getroute.c:101 ../lib/setroute.c:80 ++#, c-format ++msgid "Address family `%s' not supported.\n" ++msgstr "アドレスファミリ`%s'ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/getroute.c:107 ../lib/setroute.c:84 ++#, c-format ++msgid "No routing for address family `%s'.\n" ++msgstr "アドレスファミリ`%s'ã¸ã®çµŒè·¯ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../lib/hippi.c:84 ../lib/hippi.c:99 ++#, c-format ++msgid "in_hippi(%s): invalid hippi address!\n" ++msgstr "in_hippi(%s): ä¸é©å½“ãªhippiアドレスã§ã™!\n" ++ ++#: ../lib/hippi.c:111 ++#, c-format ++msgid "in_hippi(%s): trailing : ignored!\n" ++msgstr "in_hippi(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/hippi.c:122 ++#, c-format ++msgid "in_hippi(%s): trailing junk!\n" ++msgstr "in_hippi(%s): trailing junk!\n" ++ ++#: ../lib/hw.c:160 ++msgid "Local Loopback" ++msgstr "ローカルループãƒãƒƒã‚¯" ++ ++#: ../lib/hw.c:163 ++msgid "Serial Line IP" ++msgstr "シリアルラインIP" ++ ++#: ../lib/hw.c:164 ++msgid "VJ Serial Line IP" ++msgstr "VJシリアルラインIP" ++ ++#: ../lib/hw.c:165 ++msgid "6-bit Serial Line IP" ++msgstr "6ビットシリアルラインIP" ++ ++#: ../lib/hw.c:166 ++msgid "VJ 6-bit Serial Line IP" ++msgstr "VJ 6ビットシリアルラインIP" ++ ++#: ../lib/hw.c:167 ++msgid "Adaptive Serial Line IP" ++msgstr "AdaptiveシリアルラインIP" ++ ++#: ../lib/hw.c:170 ++msgid "Ethernet" ++msgstr "イーサãƒãƒƒãƒˆ" ++ ++# translatable? ++#: ../lib/hw.c:176 ++msgid "Fiber Distributed Data Interface" ++msgstr "Fiber Distributed Data Interface" ++ ++#: ../lib/hw.c:179 ++msgid "HIPPI" ++msgstr "HIPPI" ++ ++#: ../lib/hw.c:191 ++msgid "generic X.25" ++msgstr "ジェãƒãƒªãƒƒã‚¯X.25" ++ ++#: ../lib/hw.c:194 ++msgid "IPIP Tunnel" ++msgstr "IPIPトンãƒãƒ«" ++ ++#: ../lib/hw.c:197 ++msgid "Point-to-Point Protocol" ++msgstr "Point-to-Pointプロトコル" ++ ++#: ../lib/hw.c:200 ++msgid "(Cisco)-HDLC" ++msgstr "(Cisco)-HDLC" ++ ++#: ../lib/hw.c:201 ++msgid "LAPB" ++msgstr "LAPB" ++ ++#: ../lib/hw.c:204 ++msgid "ARCnet" ++msgstr "ARCãƒãƒƒãƒˆ" ++ ++#: ../lib/hw.c:207 ++msgid "Frame Relay DLCI" ++msgstr "フレームリレーDLCI" ++ ++#: ../lib/hw.c:208 ++msgid "Frame Relay Access Device" ++msgstr "フレームリレーアクセスデãƒã‚¤ã‚¹" ++ ++#: ../lib/hw.c:211 ++msgid "IPv6-in-IPv4" ++msgstr "IPv6-in-IPv4" ++ ++#: ../lib/hw.c:214 ++msgid "IrLAP" ++msgstr "IrLAP" ++ ++#: ../lib/hw.c:217 ++msgid "16/4 Mbps Token Ring" ++msgstr "16/4 Mbpsトークンリング" ++ ++#: ../lib/hw.c:219 ++msgid "16/4 Mbps Token Ring (New)" ++msgstr "16/4 Mbpsトークンリング(æ–°)" ++ ++#: ../lib/hw.c:226 ++msgid "Generic EUI-64" ++msgstr "ジェãƒãƒªãƒƒã‚¯EUI-64" ++ ++#: ../lib/inet.c:153 ../lib/inet6.c:79 ++#, c-format ++msgid "rresolve: unsupport address family %d !\n" ++msgstr "rresolve: アドレスファミリ%dをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“!\n" ++ ++#: ../lib/inet6.c:131 ++msgid "[UNKNOWN]" ++msgstr "[ä¸æ˜Ž]" ++ ++#: ../lib/inet6_gr.c:71 ++#, c-format ++msgid "INET6 (IPv6) not configured in this system.\n" ++msgstr "INET6(IPv6)ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨ã§ãるよã†è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/inet6_gr.c:74 ++#, c-format ++msgid "Kernel IPv6 routing table\n" ++msgstr "カーãƒãƒ«IPv6 経路テーブル\n" ++ ++#: ../lib/inet6_gr.c:76 ++#, c-format ++msgid "" ++"Destination Next " ++"Hop Flags Metric Ref Use Iface\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ 次回ホップ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet6_gr.c:150 ++#, c-format ++msgid "Kernel IPv6 Neighbour Cache\n" ++msgstr "カーãƒãƒ«IPv6 近隣ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥\n" ++ ++#: ../lib/inet6_gr.c:153 ++#, c-format ++msgid "" ++"Neighbour HW Address Iface Flags " ++"Ref State\n" ++msgstr "" ++"近隣サイト ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ Iface フラグ " ++"Ref 状態\n" ++ ++#: ../lib/inet6_gr.c:157 ++#, c-format ++msgid "" ++"Neighbour HW Address Iface Flags " ++"Ref State Stale(sec) Delete(sec)\n" ++msgstr "" ++"近隣サイト ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ Iface フラグ " ++"Ref 状態 Stale[秒] Delete[秒]\n" ++ ++#: ../lib/inet6_sr.c:46 ++#, c-format ++msgid "Usage: inet6_route [-vF] del Target\n" ++msgstr "使用法: inet6_route [-vF] del ターゲット\n" ++ ++#: ../lib/inet6_sr.c:47 ++#, c-format ++msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n" ++msgstr "" ++" inet6_route [-vF] add ターゲット \n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++" [[dev] インタフェース]\n" ++ ++#: ../lib/inet6_sr.c:48 ++#, c-format ++msgid " inet6_route [-FC] flush NOT supported\n" ++msgstr " inet6_route [-FC] flush サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet6_sr.c:188 ++#, c-format ++msgid "Flushing `inet6' routing table not supported\n" ++msgstr "`inet6'経路テーブルã®ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220 ++#, c-format ++msgid "INET (IPv4) not configured in this system.\n" ++msgstr "INET(IPv4)ã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨ã§ãるよã†ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/inet_gr.c:53 ++#, c-format ++msgid "Kernel IP routing table\n" ++msgstr "カーãƒãƒ«IP経路テーブル\n" ++ ++#: ../lib/inet_gr.c:56 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags Metric Ref Use " ++"Iface\n" ++msgstr "å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet_gr.c:59 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags MSS Window irtt " ++"Iface\n" ++msgstr "å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ MSS Window irtt インタフェース\n" ++ ++#: ../lib/inet_gr.c:62 ++#, c-format ++msgid "" ++"Destination Gateway Genmask Flags Metric Ref Use " ++"Iface MSS Window irtt\n" ++msgstr "" ++"å—信先サイト ゲートウェイ ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt\n" ++ ++#: ../lib/inet_gr.c:237 ++#, c-format ++msgid "Kernel IP routing cache\n" ++msgstr "カーãƒãƒ«IP経路キャッシュ\n" ++ ++#: ../lib/inet_gr.c:258 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface\n" ++msgstr "発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 インタフェース\n" ++ ++#: ../lib/inet_gr.c:261 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags MSS Window irtt " ++"Iface\n" ++msgstr "発信元サイト å—信先サイト ゲートウェイ フラグ MSS Window irtt インタフェース\n" ++ ++#: ../lib/inet_gr.c:266 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface MSS Window irtt HH Arp\n" ++msgstr "" ++"発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt HH Arp\n" ++ ++#: ../lib/inet_gr.c:290 ++#, c-format ++msgid "" ++"Source Destination Gateway Flags Metric Ref Use " ++"Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" ++msgstr "" ++"発信元サイト å—信先サイト ゲートウェイ フラグ Metric Ref 使用数 " ++"Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n" ++ ++#: ../lib/inet_sr.c:51 ++#, c-format ++msgid "" ++"Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] " ++"[[dev] If]\n" ++msgstr "" ++"使用法:inet_route [-vF] del {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++" [[dev] インタフェース]\n" ++ ++#: ../lib/inet_sr.c:52 ++#, c-format ++msgid "" ++" inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n" ++msgstr "" ++" inet_route [-vF] add {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [gw ゲートウェイ] [metric メトリック]\n" ++ ++#: ../lib/inet_sr.c:53 ++#, c-format ++msgid "" ++" [netmask N] [mss Mss] [window W] [irtt I]\n" ++msgstr " [netmask ãƒãƒƒãƒˆãƒžã‚¹ã‚¯] [mss Mss] [window W] [irtt I]\n" ++ ++#: ../lib/inet_sr.c:54 ++#, c-format ++msgid " [mod] [dyn] [reinstate] [[dev] If]\n" ++msgstr " [mod] [dyn] [reinstate] [[dev] インタフェース]\n" ++ ++#: ../lib/inet_sr.c:55 ++#, c-format ++msgid "" ++" inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n" ++msgstr "" ++" inet_route [-vF] add {-host|-net} å—ä¿¡å…ˆ[/プレフィックス]\n" ++" [metric メトリック] reject\n" ++ ++#: ../lib/inet_sr.c:56 ++#, c-format ++msgid " inet_route [-FC] flush NOT supported\n" ++msgstr " inet_route [-FC] flush サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:158 ++#, c-format ++msgid "route: %s: cannot use a NETWORK as gateway!\n" ++msgstr "route: %s: NETWORKをゲートウェイã¨ã—ã¦ä½¿ãˆã¾ã›ã‚“!\n" ++ ++#: ../lib/inet_sr.c:174 ++#, c-format ++msgid "route: Invalid MSS/MTU.\n" ++msgstr "route: MSS/MTUãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:187 ++#, c-format ++msgid "route: Invalid window.\n" ++msgstr "route: windowãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:203 ++#, c-format ++msgid "route: Invalid initial rtt.\n" ++msgstr "route: åˆæœŸrttãŒä¸é©å½“ã§ã™.\n" ++ ++#: ../lib/inet_sr.c:261 ++#, c-format ++msgid "route: netmask %.8x doesn't make sense with host route\n" ++msgstr "route: ãƒãƒƒãƒˆãƒžã‚¹ã‚¯%.8xãŒãƒ›ã‚¹ãƒˆçµŒè·¯ã‚’検出ã—ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:265 ++#, c-format ++msgid "route: bogus netmask %s\n" ++msgstr "route: å½ã®ãƒãƒƒãƒˆãƒžã‚¹ã‚¯`%s'ã§ã™\n" ++ ++#: ../lib/inet_sr.c:270 ++#, c-format ++msgid "route: netmask doesn't match route address\n" ++msgstr "route: ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ãŒçµŒè·¯ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ä¸€è‡´ã—ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:306 ++#, c-format ++msgid "Flushing `inet' routing table not supported\n" ++msgstr "`inet'経路テーブルã®ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/inet_sr.c:310 ++#, c-format ++msgid "Modifying `inet' routing cache not supported\n" ++msgstr "`inet'経路テーブルã®å¤‰æ›´ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/ipx_gr.c:52 ++#, c-format ++msgid "IPX not configured in this system.\n" ++msgstr "IPXã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/ipx_gr.c:56 ++#, c-format ++msgid "Kernel IPX routing table\n" ++msgstr "カーãƒãƒ«IPX経路テーブル\n" ++ ++#. xxx ++#: ../lib/ipx_gr.c:57 ++#, c-format ++msgid "Destination Router Net Router Node\n" ++msgstr "é€ä¿¡å…ˆã‚µã‚¤ãƒˆ ルータ ãƒãƒƒãƒˆ ルータノード\n" ++ ++#: ../lib/ipx_sr.c:33 ++#, c-format ++msgid "IPX: this needs to be written\n" ++msgstr "IPX: ã“ã‚Œã¯æ›¸ãè¾¼ã¿ãŒå¿…è¦ã§ã™\n" ++ ++#: ../lib/masq_info.c:198 ++#, c-format ++msgid "IP masquerading entries\n" ++msgstr "IPマスカレード エントリ\n" ++ ++#: ../lib/masq_info.c:201 ++#, c-format ++msgid "prot expire source destination ports\n" ++msgstr "プロト expire 発信元サイト é€ä¿¡å…ˆã‚µã‚¤ãƒˆ ãƒãƒ¼ãƒˆ\n" ++ ++#: ../lib/masq_info.c:204 ++#, c-format ++msgid "" ++"prot expire initseq delta prevd source " ++"destination ports\n" ++msgstr "" ++"プロト expire åˆæœŸseq delta prevd 発信元サイト å—信先サイ" ++"ト ãƒãƒ¼ãƒˆ\n" ++ ++#: ../lib/netrom_gr.c:48 ++#, c-format ++msgid "NET/ROM not configured in this system.\n" ++msgstr "NET/ROMã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨å¯èƒ½ãªã‚ˆã†ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" ++ ++#: ../lib/netrom_gr.c:51 ++#, c-format ++msgid "Kernel NET/ROM routing table\n" ++msgstr "カーãƒãƒ«NET/ROM経路テーブル\n" ++ ++#: ../lib/netrom_gr.c:52 ++#, c-format ++msgid "Destination Mnemonic Quality Neighbour Iface\n" ++msgstr "å—信先サイト ニーモニック å“質 近隣サイト インタフェース\n" ++ ++#: ../lib/netrom_sr.c:34 ++#, c-format ++msgid "netrom usage\n" ++msgstr "netrom使用法\n" ++ ++#: ../lib/netrom_sr.c:44 ++#, c-format ++msgid "NET/ROM: this needs to be written\n" ++msgstr "NET/ROM: ã“ã‚Œã¯æ›¸ãè¾¼ã¿ãŒå¿…è¦ã§ã™\n" ++ ++#: ../lib/ppp.c:44 ++#, c-format ++msgid "You cannot start PPP with this program.\n" ++msgstr "ã“ã®ãƒ—ログラムã§ã¯PPPを開始ã§ãã¾ã›ã‚“. \n" ++ ++#: ../lib/ppp_ac.c:38 ++#, c-format ++msgid "Sorry, use pppd!\n" ++msgstr "申ã—訳ã‚ã‚Šã¾ã›ã‚“ãŒ, pppdを使ã£ã¦ä¸‹ã•ã„!\n" ++ ++#: ../lib/rose.c:87 ++msgid "Node address must be ten digits" ++msgstr "ノードアドレスã¯10進数ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" ++ ++#: ../lib/rose_gr.c:51 ++#, c-format ++msgid "ROSE not configured in this system.\n" ++msgstr "ROSEã¯ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯åˆ©ç”¨å¯èƒ½ãªã‚ˆã†ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“\n" ++ ++#: ../lib/rose_gr.c:54 ++#, c-format ++msgid "Kernel ROSE routing table\n" ++msgstr "カーãƒãƒ«ROSE経路テーブル\n" ++ ++#: ../lib/tr.c:86 ../lib/tr.c:101 ++#, c-format ++msgid "in_tr(%s): invalid token ring address!\n" ++msgstr "in_tr(%s): ä¸é©å½“ãªãƒˆãƒ¼ã‚¯ãƒ³ãƒªãƒ³ã‚°ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™!\n" ++ ++#: ../lib/tr.c:113 ++#, c-format ++msgid "in_tr(%s): trailing : ignored!\n" ++msgstr "in_tr(%s): trailing : 無効!\n" ++ ++# translatable? ++#: ../lib/tr.c:125 ++#, c-format ++msgid "in_tr(%s): trailing junk!\n" ++msgstr "in_tr(%s): trailing junk!\n" ++ ++#: ../lib/interface.c:176 ++#, c-format ++msgid "warning: no inet socket available: %s\n" ++msgstr "警告: Inetソケットã¯åˆ©ç”¨ã§ãã¾ã›ã‚“: %s\n" ++ ++#: ../lib/interface.c:325 ++#, c-format ++msgid "Warning: cannot open %s (%s). Limited output.\n" ++msgstr "警告: %sã‚’é–‹ã‘ã¾ã›ã‚“(%s). é™å®šã•ã‚ŒãŸå‡ºåŠ›ã§ã™.\n" ++ ++#. Give better error message for this case. ++#: ../lib/interface.c:571 ++msgid "Device not found" ++msgstr "デãƒã‚¤ã‚¹ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" ++ ++#: ../lib/interface.c:575 ++#, c-format ++msgid "%s: error fetching interface information: %s\n" ++msgstr "%s: インタフェース情報をå–得中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s\n" ++ ++#: ../lib/interface.c:608 ++msgid " - no statistics available -" ++msgstr " - 統計情報を利用ã§ãã¾ã›ã‚“ -" ++ ++#: ../lib/interface.c:612 ++#, c-format ++msgid "[NO FLAGS]" ++msgstr "[フラグãªã—]" ++ ++#: ../lib/interface.c:688 ++#, c-format ++msgid "%-9.9s Link encap:%s " ++msgstr "%-9.9s リンク方法:%s " ++ ++#: ../lib/interface.c:693 ++#, c-format ++msgid "HWaddr %s " ++msgstr "ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚¢ãƒ‰ãƒ¬ã‚¹ %s " ++ ++#: ../lib/interface.c:696 ++#, c-format ++msgid "Media:%s" ++msgstr "メディア:%s" ++ ++#: ../lib/interface.c:698 ++#, c-format ++msgid "(auto)" ++msgstr "(自動)" ++ ++#: ../lib/interface.c:705 ++#, c-format ++msgid " %s addr:%s " ++msgstr " %sアドレス:%s" ++ ++#: ../lib/interface.c:708 ++#, c-format ++msgid " P-t-P:%s " ++msgstr " P-t-P:%s " ++ ++#: ../lib/interface.c:711 ++#, c-format ++msgid " Bcast:%s " ++msgstr " ブロードキャスト:%s " ++ ++#: ../lib/interface.c:713 ++#, c-format ++msgid " Mask:%s\n" ++msgstr " マスク:%s\n" ++ ++#: ../lib/interface.c:730 ++#, c-format ++msgid " inet6 addr: %s/%d" ++msgstr " inet6アドレス: %s/%d" ++ ++#: ../lib/interface.c:732 ++#, c-format ++msgid " Scope:" ++msgstr " 範囲:" ++ ++#: ../lib/interface.c:735 ++#, c-format ++msgid "Global" ++msgstr "グローãƒãƒ«" ++ ++#: ../lib/interface.c:738 ++#, c-format ++msgid "Link" ++msgstr "リンク" ++ ++#: ../lib/interface.c:741 ++#, c-format ++msgid "Site" ++msgstr "サイト" ++ ++# translatable? ++#: ../lib/interface.c:744 ++#, c-format ++msgid "Compat" ++msgstr "Compat" ++ ++#: ../lib/interface.c:747 ++#, c-format ++msgid "Host" ++msgstr "ホスト" ++ ++#: ../lib/interface.c:750 ++#, c-format ++msgid "Unknown" ++msgstr "ä¸æ˜Ž" ++ ++#: ../lib/interface.c:765 ++#, c-format ++msgid " IPX/Ethernet II addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆIIアドレス:%s\n" ++ ++#: ../lib/interface.c:768 ++#, c-format ++msgid " IPX/Ethernet SNAP addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆSNAPアドレス:%s\n" ++ ++#: ../lib/interface.c:771 ++#, c-format ++msgid " IPX/Ethernet 802.2 addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆ802.2アドレス:%s\n" ++ ++#: ../lib/interface.c:774 ++#, c-format ++msgid " IPX/Ethernet 802.3 addr:%s\n" ++msgstr " IPX/イーサãƒãƒƒãƒˆ802.3アドレス:%s\n" ++ ++#: ../lib/interface.c:784 ++#, c-format ++msgid " EtherTalk Phase 2 addr:%s\n" ++msgstr " イーサトーク フェーズ2アドレス:%s\n" ++ ++#: ../lib/interface.c:793 ++#, c-format ++msgid " econet addr:%s\n" ++msgstr " エコãƒãƒƒãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹:%s\n" ++ ++#: ../lib/interface.c:800 ++#, c-format ++msgid "[NO FLAGS] " ++msgstr "[フラグãªã—]" ++ ++# translatable? ++#: ../lib/interface.c:802 ++#, c-format ++msgid "UP " ++msgstr "UP " ++ ++# translatable? ++#: ../lib/interface.c:804 ++#, c-format ++msgid "BROADCAST " ++msgstr "BROADCAST " ++ ++# translatable? ++#: ../lib/interface.c:806 ++#, c-format ++msgid "DEBUG " ++msgstr "DEBUG " ++ ++# translatable? ++#: ../lib/interface.c:808 ++#, c-format ++msgid "LOOPBACK " ++msgstr "LOOPBACK " ++ ++# translatable? ++#: ../lib/interface.c:810 ++#, c-format ++msgid "POINTOPOINT " ++msgstr "POINTOPOINT " ++ ++# translatable? ++#: ../lib/interface.c:812 ++#, c-format ++msgid "NOTRAILERS " ++msgstr "NOTRAILERS " ++ ++# translatable? ++#: ../lib/interface.c:814 ++#, c-format ++msgid "RUNNING " ++msgstr "RUNNING " ++ ++# translatable? ++#: ../lib/interface.c:816 ++#, c-format ++msgid "NOARP " ++msgstr "NOARP " ++ ++# translatable? ++#: ../lib/interface.c:818 ++#, c-format ++msgid "PROMISC " ++msgstr "PROMISC " ++ ++# translatable? ++#: ../lib/interface.c:820 ++#, c-format ++msgid "ALLMULTI " ++msgstr "ALLMULTI " ++ ++# translatable? ++#: ../lib/interface.c:822 ++#, c-format ++msgid "SLAVE " ++msgstr "SLAVE " ++ ++# translatable? ++#: ../lib/interface.c:824 ++#, c-format ++msgid "MASTER " ++msgstr "MASTER " ++ ++# translatable? ++#: ../lib/interface.c:826 ++#, c-format ++msgid "MULTICAST " ++msgstr "MULTICAST " ++ ++# translatable? ++#: ../lib/interface.c:829 ++#, c-format ++msgid "DYNAMIC " ++msgstr "DYNAMIC " ++ ++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short ++#: ../lib/interface.c:832 ++#, c-format ++msgid " MTU:%d Metric:%d" ++msgstr " MTU:%d メトリック:%d" ++ ++# translatable? ++#: ../lib/interface.c:836 ++#, c-format ++msgid " Outfill:%d Keepalive:%d" ++msgstr " Outfill:%d キープアライブ:%d" ++ ++#: ../lib/interface.c:850 ++#, c-format ++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n" ++msgstr "RXパケット:%llu エラー:%lu æ失:%lu オーãƒãƒ©ãƒ³:%lu フレーム:%lu\n" ++ ++#: ../lib/interface.c:855 ++#, c-format ++msgid " compressed:%lu\n" ++msgstr " 圧縮:%lu\n" ++ ++#: ../lib/interface.c:895 ++#, c-format ++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n" ++msgstr "TXパケット:%llu エラー:%lu æ失:%lu オーãƒãƒ©ãƒ³:%lu キャリア:%lu\n" ++ ++#: ../lib/interface.c:899 ++#, c-format ++msgid " collisions:%lu " ++msgstr " è¡çª(Collisions):%lu " ++ ++#: ../lib/interface.c:901 ++#, c-format ++msgid "compressed:%lu " ++msgstr "圧縮:%lu " ++ ++#: ../lib/interface.c:903 ++#, c-format ++msgid "txqueuelen:%d " ++msgstr "TXキュー長:%d " ++ ++#: ../lib/interface.c:905 ++#, c-format ++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n" ++msgstr "RXãƒã‚¤ãƒˆ:%llu (%lu.%lu %s) TXãƒã‚¤ãƒˆ:%llu (%lu.%lu %s)\n" ++ ++#: ../lib/interface.c:916 ++#, c-format ++msgid "Interrupt:%d " ++msgstr "割り込ã¿:%d " ++ ++#. Only print devices using it for ++#. I/O maps ++#: ../lib/interface.c:919 ++#, c-format ++msgid "Base address:0x%x " ++msgstr "ベースアドレス:0x%x " ++ ++#: ../lib/interface.c:921 ++#, c-format ++msgid "Memory:%lx-%lx " ++msgstr "メモリ:%lx-%lx " ++ ++#: ../lib/interface.c:924 ++#, c-format ++msgid "DMA chan:%x " ++msgstr "DMAãƒã‚§ã‚¤ãƒ³:%x " ++ ++#: ../lib/sockets.c:63 ++#, c-format ++msgid "No usable address families found.\n" ++msgstr "利用å¯èƒ½ãªã‚¢ãƒ‰ãƒ¬ã‚¹ãƒ•ã‚¡ãƒŸãƒªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“.\n" ++ ++#: ../lib/util-ank.c:229 ++#, c-format ++msgid "ip: %s is invalid inet address\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªInetアドレスã§ã™.\n" ++ ++#: ../lib/util-ank.c:238 ++#, c-format ++msgid "ip: %s is invalid inet prefix\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªInetプレフィックスã§ã™\n" ++ ++#: ../lib/util-ank.c:248 ++#, c-format ++msgid "ip: %s is invalid IPv4 address\n" ++msgstr "ip: %sã¯ä¸é©åˆ‡ãªIPv4アドレスã§ã™.\n" ++ ++#: ../lib/util-ank.c:256 ++#, c-format ++msgid "ip: argument is wrong: %s\n" ++msgstr "ip: 引数ãŒé–“é•ã£ã¦ã„ã¾ã™: %s\n" ++ ++#: ../ipmaddr.c:61 ++#, c-format ++msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n" ++msgstr "使用法: ipmaddr [ add | del ] マルãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ dev 文字列\n" ++ ++#: ../ipmaddr.c:62 ++#, c-format ++msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n" ++msgstr " ipmaddr show [ dev 文字列 ] [ ipv4 | ipv6 | link | all ]\n" ++ ++#: ../ipmaddr.c:63 ++#, c-format ++msgid " ipmaddr -V | -version\n" ++msgstr " ipmaddr -V | -version\n" ++ ++#: ../ipmaddr.c:263 ++#, c-format ++msgid "family %d " ++msgstr "ファミリ %d " ++ ++#: ../ipmaddr.c:272 ++#, c-format ++msgid " users %d" ++msgstr " ユーザ %d" ++ ++#: ../ipmaddr.c:358 ++msgid "Cannot create socket" ++msgstr "ソケットを作æˆã§ãã¾ã›ã‚“" ++ ++#: ../slattach.c:180 ++#, c-format ++msgid "slattach: /dev/%s already locked!\n" ++msgstr "slattach: /dev/%s ã¯ã™ã§ã«ãƒ­ãƒƒã‚¯ã•ã‚Œã¦ã„ã¾ã™!\n" ++ ++#: ../slattach.c:186 ++#, c-format ++msgid "slattach: tty_lock: (%s): %s\n" ++msgstr "slattach: tty_lock: (%s): %s\n" ++ ++#: ../slattach.c:192 ++#, c-format ++msgid "slattach: cannot write PID file\n" ++msgstr "slattach: PIDファイルを書ãè¾¼ã‚ã¾ã›ã‚“\n" ++ ++#: ../slattach.c:202 ++#, c-format ++msgid "slattach: tty_lock: UUCP user %s unknown!\n" ++msgstr "slattach: tty_lock: UUCPユーザ%sã¯ä¸æ˜Žã§ã™!\n" ++ ++#: ../slattach.c:430 ++#, c-format ++msgid "slattach: tty_hangup(DROP): %s\n" ++msgstr "slattach: tty_hangup(DROP): %s\n" ++ ++#: ../slattach.c:437 ++#, c-format ++msgid "slattach: tty_hangup(RAISE): %s\n" ++msgstr "slattach: tty_hangup(RAISE): %s\n" ++ ++#: ../slattach.c:468 ++#, c-format ++msgid "slattach: tty name too long\n" ++msgstr "slattach: ttyåãŒé•·ã™ãŽã¾ã™\n" ++ ++#: ../slattach.c:498 ++#, c-format ++msgid "slattach: tty_open: cannot get current state!\n" ++msgstr "slattach: tty_open: ç¾åœ¨ã®çŠ¶æ…‹ã‚’得られã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:505 ++#, c-format ++msgid "slattach: tty_open: cannot get current line disc!\n" ++msgstr "slattach: tty_open: ç¾åœ¨ã®ãƒ©ã‚¤ãƒ³ãƒ»ãƒ‡ã‚£ã‚¹ã‚¯ã‚’得られã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:513 ++#, c-format ++msgid "slattach: tty_open: cannot set RAW mode!\n" ++msgstr "slattach: tty_open: RAWモードを設定ã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:520 ++#, c-format ++msgid "slattach: tty_open: cannot set %s bps!\n" ++msgstr "slattach: tty_open: %s bpsを設定ã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:530 ++#, c-format ++msgid "slattach: tty_open: cannot set 8N1 mode!\n" ++msgstr "slattach: tty_open: 8N1モードã¸è¨­å®šã§ãã¾ã›ã‚“!\n" ++ ++#: ../slattach.c:672 ++#, c-format ++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++msgstr "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n" ++ ++#: ../slattach.c:704 ++#, c-format ++msgid "%s started" ++msgstr "%sを開始ã—ã¾ã—ãŸ" ++ ++#: ../slattach.c:705 ++#, c-format ++msgid " on %s" ++msgstr "(%s上)" ++ ++#: ../slattach.c:706 ++#, c-format ++msgid " interface %s\n" ++msgstr " インタフェース %s\n" +--- net-tools-1.60.orig/ipmaddr.c ++++ net-tools-1.60/ipmaddr.c +@@ -291,13 +291,15 @@ + static int multiaddr_list(int argc, char **argv) + { + struct ma_info *list = NULL; ++ size_t l; + + while (argc > 0) { + if (strcmp(*argv, "dev") == 0) { + NEXT_ARG(); +- if (filter_dev[0]) ++ l = strlen(*argv); ++ if (l <= 0 || l >= sizeof(filter_dev)) + usage(); +- strcpy(filter_dev, *argv); ++ strncpy(filter_dev, *argv, sizeof (filter_dev)); + } else if (strcmp(*argv, "all") == 0) { + filter_family = AF_UNSPEC; + } else if (strcmp(*argv, "ipv4") == 0) { +@@ -307,9 +309,10 @@ + } else if (strcmp(*argv, "link") == 0) { + filter_family = AF_PACKET; + } else { +- if (filter_dev[0]) ++ l = strlen(*argv); ++ if (l <= 0 || l >= sizeof(filter_dev)) + usage(); +- strcpy(filter_dev, *argv); ++ strncpy(filter_dev, *argv, sizeof (filter_dev)); + } + argv++; argc--; + } +--- net-tools-1.60.orig/Makefile ++++ net-tools-1.60/Makefile +@@ -76,7 +76,7 @@ + NET_LIB_PATH = lib + NET_LIB_NAME = net-tools + +-PROGS := ifconfig hostname arp netstat route rarp slattach plipconfig nameif ++PROGS := ifconfig arp netstat route rarp slattach plipconfig nameif # hostname + + -include config.make + ifeq ($(HAVE_IP_TOOLS),1) +@@ -88,7 +88,7 @@ + + # Compiler and Linker Options + # You may need to uncomment and edit these if you are using libc5 and IPv6. +-COPTS = -D_GNU_SOURCE -O2 -Wall -g # -I/usr/inet6/include ++COPTS = -D_GNU_SOURCE -O2 -Wall # -g -I/usr/inet6/include + ifeq ($(origin LOPTS), undefined) + LOPTS = + endif +@@ -116,6 +116,18 @@ + CFLAGS = $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH) + LDFLAGS = $(LOPTS) -L$(NET_LIB_PATH) + ++INSTALL = install ++INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 ++ ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++CFLAGS += -g ++endif ++ ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++INSTALL_PROGRAM += -s ++endif ++ ++ + SUBDIRS = man/ $(NET_LIB_PATH)/ + + ifeq ($(origin CC), undefined) +@@ -223,29 +235,29 @@ + installbin: + install -m 0755 -d ${BASEDIR}/sbin + install -m 0755 -d ${BASEDIR}/bin +- install -m 0755 arp ${BASEDIR}/sbin +- install -m 0755 hostname ${BASEDIR}/bin +- install -m 0755 ifconfig ${BASEDIR}/sbin +- install -m 0755 nameif ${BASEDIR}/sbin +- install -m 0755 netstat ${BASEDIR}/bin +- install -m 0755 plipconfig $(BASEDIR)/sbin +- install -m 0755 rarp ${BASEDIR}/sbin +- install -m 0755 route ${BASEDIR}/sbin +- install -m 0755 slattach $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) arp ${BASEDIR}/sbin ++# $(INSTALL_PROGRAM) hostname ${BASEDIR}/bin ++ $(INSTALL_PROGRAM) ifconfig ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) nameif ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) netstat ${BASEDIR}/bin ++ $(INSTALL_PROGRAM) plipconfig $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) rarp ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) route ${BASEDIR}/sbin ++ $(INSTALL_PROGRAM) slattach $(BASEDIR)/sbin + ifeq ($(HAVE_IP_TOOLS),1) +- install -m 0755 ipmaddr $(BASEDIR)/sbin +- install -m 0755 iptunnel $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) ipmaddr $(BASEDIR)/sbin ++ $(INSTALL_PROGRAM) iptunnel $(BASEDIR)/sbin + endif + ifeq ($(HAVE_MII),1) +- install -m 0755 mii-tool $(BASEDIR)/sbin +-endif +- ln -fs hostname $(BASEDIR)/bin/dnsdomainname +- ln -fs hostname $(BASEDIR)/bin/ypdomainname +- ln -fs hostname $(BASEDIR)/bin/nisdomainname +- ln -fs hostname $(BASEDIR)/bin/domainname +-ifeq ($(HAVE_AFDECnet),1) +- ln -fs hostname $(BASEDIR)/bin/nodename ++ $(INSTALL_PROGRAM) mii-tool $(BASEDIR)/sbin + endif ++# ln -fs hostname $(BASEDIR)/bin/dnsdomainname ++# ln -fs hostname $(BASEDIR)/bin/ypdomainname ++# ln -fs hostname $(BASEDIR)/bin/nisdomainname ++# ln -fs hostname $(BASEDIR)/bin/domainname ++#ifeq ($(HAVE_AFDECnet),1) ++# ln -fs hostname $(BASEDIR)/bin/nodename ++#endif + + savebin: + @for i in ${BASEDIR}/sbin/arp ${BASEDIR}/sbin/ifconfig \ +--- net-tools-1.60.orig/README ++++ net-tools-1.60/README +@@ -10,7 +10,7 @@ + subsystem of the Linux kernel. This includes arp, hostname, ifconfig, + netstat, rarp and route. Additionally, this package contains + utilities relating to particular network hardware types (plipconfig, +-slattach) and advanced aspects of IP configuration (iptunnel, ++slattach, mii-tool) and advanced aspects of IP configuration (iptunnel, + ipmaddr). + + Please include the output of "program --version" when reporting bugs. +@@ -24,10 +24,14 @@ + + INSTALLING Installation instructions. + +- COPYING Your free copy of the GNU Public License. +- + TODO Some things that need to be done. + ++The Homepage (including CVS repository, release downloads and a form to ++request enhancements) is hosted by BerliOS Developer. Please consider to ++join the project if you want to contribute: ++ ++ http://net-tools.berlios.de/ ++ + + Notes + ----- +--- net-tools-1.60.orig/arp.c ++++ net-tools-1.60/arp.c +@@ -8,7 +8,7 @@ + * NET-3 Networking Distribution for the LINUX operating + * system. + * +- * Version: $Id: arp.c,v 1.20 2001/04/08 17:05:05 pb Exp $ ++ * Version: $Id: arp.c,v 1.25 2005/12/04 02:57:15 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, + * +@@ -100,9 +100,10 @@ + { + char host[128]; + struct arpreq req; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + int flags = 0; +- int err; ++ int deleted = 0; + + memset((char *) &req, 0, sizeof(req)); + +@@ -112,12 +113,13 @@ + return (-1); + } + safe_strncpy(host, *args, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ sa = (struct sockaddr *)&ss; ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } + /* If a host has more than one address, use the correct one! */ +- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr)); ++ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr)); + + if (hw_set) + req.arp_ha.sa_family = hw->type; +@@ -148,7 +150,7 @@ + continue; + } + if (!strcmp(*args, "dontpub")) { +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + req.arp_flags |= ATF_DONTPUB; + #else + ENOSUPP("arp", "ATF_DONTPUB"); +@@ -157,7 +159,7 @@ + continue; + } + if (!strcmp(*args, "auto")) { +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + req.arp_flags |= ATF_MAGIC; + #else + ENOSUPP("arp", "ATF_MAGIC"); +@@ -177,11 +179,11 @@ + usage(); + if (strcmp(*args, "255.255.255.255") != 0) { + strcpy(host, *args); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- memcpy((char *) &req.arp_netmask, (char *) &sa, ++ memcpy((char *) &req.arp_netmask, (char *) sa, + sizeof(struct sockaddr)); + req.arp_flags |= ATF_NETMASK; + } +@@ -190,35 +192,41 @@ + } + usage(); + } ++ ++ // if neighter priv nor pub is given, work on both + if (flags == 0) + flags = 3; + + strcpy(req.arp_dev, device); + +- err = -1; ++ /* unfortuatelly the kernel interface does not allow us to ++ delete private entries anlone, so we need this hack ++ to avoid "not found" errors if we try both. */ ++ deleted = 0; + + /* Call the kernel. */ + if (flags & 2) { + if (opt_v) +- fprintf(stderr, "arp: SIOCDARP(nopub)\n"); +- if ((err = ioctl(sockfd, SIOCDARP, &req) < 0)) { +- if (errno == ENXIO) { ++ fprintf(stderr, "arp: SIOCDARP(dontpub)\n"); ++ if (ioctl(sockfd, SIOCDARP, &req) < 0) { ++ if ((errno == ENXIO) || (errno == ENOENT)) { + if (flags & 1) +- goto nopub; ++ goto dontpub; + printf(_("No ARP entry for %s\n"), host); + return (-1); + } +- perror("SIOCDARP(priv)"); ++ perror("SIOCDARP(dontpub)"); + return (-1); +- } ++ } else ++ deleted = 1; + } +- if ((flags & 1) && (err)) { +- nopub: ++ if (!deleted && (flags & 1)) { ++ dontpub: + req.arp_flags |= ATF_PUBL; + if (opt_v) + fprintf(stderr, "arp: SIOCDARP(pub)\n"); + if (ioctl(sockfd, SIOCDARP, &req) < 0) { +- if (errno == ENXIO) { ++ if ((errno == ENXIO) || (errno == ENOENT)) { + printf(_("No ARP entry for %s\n"), host); + return (-1); + } +@@ -260,7 +268,8 @@ + { + char host[128]; + struct arpreq req; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + int flags; + + memset((char *) &req, 0, sizeof(req)); +@@ -271,12 +280,13 @@ + return (-1); + } + safe_strncpy(host, *args++, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ sa = (struct sockaddr *)&ss; ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } + /* If a host has more than one address, use the correct one! */ +- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr)); ++ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr)); + + /* Fetch the hardware address. */ + if (*args == NULL) { +@@ -317,7 +327,7 @@ + continue; + } + if (!strcmp(*args, "dontpub")) { +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + flags |= ATF_DONTPUB; + #else + ENOSUPP("arp", "ATF_DONTPUB"); +@@ -326,7 +336,7 @@ + continue; + } + if (!strcmp(*args, "auto")) { +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + flags |= ATF_MAGIC; + #else + ENOSUPP("arp", "ATF_MAGIC"); +@@ -346,11 +356,11 @@ + usage(); + if (strcmp(*args, "255.255.255.255") != 0) { + strcpy(host, *args); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- memcpy((char *) &req.arp_netmask, (char *) &sa, ++ memcpy((char *) &req.arp_netmask, (char *) sa, + sizeof(struct sockaddr)); + flags |= ATF_NETMASK; + } +@@ -445,11 +455,11 @@ + strcat(flags, "M"); + if (arp_flags & ATF_PUBL) + strcat(flags, "P"); +-#ifdef HAVE_ATF_MAGIC ++#ifdef ATF_MAGIC + if (arp_flags & ATF_MAGIC) + strcat(flags, "A"); + #endif +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + if (arp_flags & ATF_DONTPUB) + strcat(flags, "!"); + #endif +@@ -463,7 +473,7 @@ + + if (!(arp_flags & ATF_COM)) { + if (arp_flags & ATF_PUBL) +- printf("%-8.8s%-20.20s", "*", "*"); ++ printf("%-8.8s%-20.20s", "*", _("")); + else + printf("%-8.8s%-20.20s", "", _("(incomplete)")); + } else { +@@ -486,7 +496,7 @@ + + if (!(arp_flags & ATF_COM)) { + if (arp_flags & ATF_PUBL) +- printf("* "); ++ printf(" "); + else + printf(_(" ")); + } else { +@@ -499,12 +509,12 @@ + if (arp_flags & ATF_PERM) + printf("PERM "); + if (arp_flags & ATF_PUBL) +- printf("PUP "); +-#ifdef HAVE_ATF_MAGIC ++ printf("PUB "); ++#ifdef ATF_MAGIC + if (arp_flags & ATF_MAGIC) + printf("AUTO "); + #endif +-#ifdef HAVE_ATF_DONTPUB ++#ifdef ATF_DONTPUB + if (arp_flags & ATF_DONTPUB) + printf("DONTPUB "); + #endif +@@ -519,7 +529,8 @@ + static int arp_show(char *name) + { + char host[100]; +- struct sockaddr sa; ++ struct sockaddr_storage ss; ++ struct sockaddr *sa; + char ip[100]; + char hwa[100]; + char mask[100]; +@@ -532,14 +543,15 @@ + + host[0] = '\0'; + ++ sa = (struct sockaddr *)&ss; + if (name != NULL) { + /* Resolve the host name. */ + safe_strncpy(host, name, (sizeof host)); +- if (ap->input(0, host, &sa) < 0) { ++ if (ap->input(0, host, sa) < 0) { + ap->herror(host); + return (-1); + } +- safe_strncpy(host, ap->sprint(&sa, 1), sizeof(host)); ++ safe_strncpy(host, ap->sprint(sa, 1), sizeof(host)); + } + /* Open the PROCps kernel table. */ + if ((fp = fopen(_PATH_PROCNET_ARP, "r")) == NULL) { +@@ -575,10 +587,10 @@ + if (opt_n) + hostname = "?"; + else { +- if (ap->input(0, ip, &sa) < 0) ++ if (ap->input(0, ip, sa) < 0) + hostname = ip; + else +- hostname = ap->sprint(&sa, opt_n | 0x8000); ++ hostname = ap->sprint(sa, opt_n | 0x8000); + if (strcmp(hostname, ip) == 0) + hostname = "?"; + } +@@ -612,11 +624,10 @@ + static void usage(void) + { + fprintf(stderr, _("Usage:\n arp [-vn] [] [-i ] [-a] [] <-Display ARP cache\n")); +- fprintf(stderr, _(" arp [-v] [-i ] -d [pub][nopub] <-Delete ARP entry\n")); +- fprintf(stderr, _(" arp [-vnD] [] [-i ] -f [] <-Add entry from file\n")); +- fprintf(stderr, _(" arp [-v] [] [-i ] -s [temp][nopub] <-Add entry\n")); +- fprintf(stderr, _(" arp [-v] [] [-i ] -s [netmask ] pub <-''-\n")); +- fprintf(stderr, _(" arp [-v] [] [-i ] -Ds [netmask ] pub <-''-\n\n")); ++ fprintf(stderr, _(" arp [-v] [-i ] -d [pub] <-Delete ARP entry\n")); ++ fprintf(stderr, _(" arp [-vnD] [] [-i ] -f [] <-Add entry from file\n")); ++ fprintf(stderr, _(" arp [-v] [] [-i ] -s [temp] <-Add entry\n")); ++ fprintf(stderr, _(" arp [-v] [] [-i ] -Ds [netmask ] pub <-''-\n\n")); + + fprintf(stderr, _(" -a display (all) hosts in alternative (BSD) style\n")); + fprintf(stderr, _(" -s, --set set a new ARP entry\n")); +--- net-tools-1.60.orig/config.in ++++ net-tools-1.60/config.in +@@ -49,16 +49,16 @@ + * + bool 'UNIX protocol family' HAVE_AFUNIX y + bool 'INET (TCP/IP) protocol family' HAVE_AFINET y +-bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n ++bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y + bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y + bool 'Appletalk DDP protocol family' HAVE_AFATALK y + bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y + bool 'NET/ROM (packet radio) protocol family' HAVE_AFNETROM y +-bool 'Rose (packet radio) protocol family' HAVE_AFROSE n ++bool 'Rose (packet radio) protocol family' HAVE_AFROSE y + bool 'X.25 (CCITT) protocol family' HAVE_AFX25 y +-bool 'Econet protocol family' HAVE_AFECONET n ++bool 'Econet protocol family' HAVE_AFECONET y + bool 'DECnet protocol family' HAVE_AFDECnet n +-bool 'Ash protocol family' HAVE_AFASH n ++bool 'Ash protocol family' HAVE_AFASH y + * + * + * Device Hardware types. +@@ -71,21 +71,23 @@ + bool 'STRIP (Metricom radio) support' HAVE_HWSTRIP y + bool 'Token ring (generic) support' HAVE_HWTR y + bool 'AX25 (packet radio) support' HAVE_HWAX25 y +-bool 'Rose (packet radio) support' HAVE_HWROSE n ++bool 'Rose (packet radio) support' HAVE_HWROSE y + bool 'NET/ROM (packet radio) support' HAVE_HWNETROM y + bool 'X.25 (generic) support' HAVE_HWX25 y + bool 'DLCI/FRAD (frame relay) support' HAVE_HWFR y +-bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT n +-bool 'FDDI (generic) support' HAVE_HWFDDI n +-bool 'HIPPI (generic) support' HAVE_HWHIPPI n +-bool 'Ash hardware support' HAVE_HWASH n +-bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB n ++bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT y ++bool 'FDDI (generic) support' HAVE_HWFDDI y ++bool 'HIPPI (generic) support' HAVE_HWHIPPI y ++bool 'Ash hardware support' HAVE_HWASH y ++bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB y + bool 'IrDA support' HAVE_HWIRDA y +-bool 'Econet hardware support' HAVE_HWEC n ++bool 'Econet hardware support' HAVE_HWEC y ++bool 'Generic EUI-64 hardware support' HAVE_HWEUI64 y ++ + * + * + * Other Features. + * +-bool 'IP Masquerading support' HAVE_FW_MASQUERADE n +-bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n +-bool 'Build mii-tool' HAVE_MII n ++bool 'IP Masquerading support' HAVE_FW_MASQUERADE y ++bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y ++bool 'Build mii-tool' HAVE_MII y +--- net-tools-1.60.orig/hostname.c ++++ net-tools-1.60/hostname.c +@@ -9,20 +9,19 @@ + * dnsdmoainname + * nisdomainname {name|-F file} + * +- * Version: hostname 1.96 (1996-02-18) ++ * Version: hostname 1.101 (2003-10-11) + * + * Author: Peter Tobias + * + * Changes: +- * {1.90} Peter Tobias : Added -a and -i options. +- * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts +- * (major rewrite), usage. +- *960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/ +- * setdomainname added +- *960218 {1.96} Bernd Eckenfels : netinet/in.h added +- *980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n +- *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings ++ * {1.90} Peter Tobias : Added -a and -i options. ++ * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts (major rewrite), usage. ++ *19960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/setdomainname added ++ *19960218 {1.96} Bernd Eckenfels : netinet/in.h added ++ *19980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n ++ *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings + *20010404 {1.100} Arnaldo Carvalho de Melo: use setlocale ++ *20031011 {1.101} Maik Broemme: gcc 3.x fixes (default: break) + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General +@@ -31,7 +30,9 @@ + * your option) any later version. + */ + #include ++#include + #include ++#include + #include + #include + #include +@@ -78,6 +79,7 @@ + fprintf(stderr, _("%s: name too long\n"), program_name); + break; + default: ++ break; + } + exit(1); + } +@@ -97,7 +99,6 @@ + case EINVAL: + fprintf(stderr, _("%s: name too long\n"), program_name); + break; +- default: + } + exit(1); + }; +@@ -116,7 +117,6 @@ + case EINVAL: + fprintf(stderr, _("%s: name too long\n"), program_name); + break; +- default: + } + exit(1); + }; +@@ -173,7 +173,6 @@ + *p = '\0'; + printf("%s\n", hp->h_name); + break; +- default: + } + } + +@@ -326,11 +325,12 @@ + break; + case 'V': + version(); ++ break; // not reached + case '?': + case 'h': + default: + usage(); +- ++ break; // not reached + }; + + +--- net-tools-1.60.orig/ifconfig.c ++++ net-tools-1.60/ifconfig.c +@@ -3,7 +3,7 @@ + * that either displays or sets the characteristics of + * one or more of the system's networking interfaces. + * +- * Version: $Id: ifconfig.c,v 1.50 2001/04/13 18:25:18 pb Exp $ ++ * Version: $Id: ifconfig.c,v 1.57 2002/12/10 00:56:41 ecki Exp $ + * + * Author: Fred N. van Kempen, + * and others. Copyright 1993 MicroWalt Corporation +@@ -88,7 +88,6 @@ + char *Release = RELEASE, *Version = "ifconfig 1.42 (2001-04-13)"; + + int opt_a = 0; /* show all interfaces */ +-int opt_i = 0; /* show the statistics */ + int opt_v = 0; /* debugging output flag */ + + int addr_family = 0; /* currently selected AF */ +@@ -105,7 +104,7 @@ + int res; + + if (ife_short) +- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); ++ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); + + if (!ifname) { + res = for_all_interfaces(do_if_print, &opt_a); +@@ -127,7 +126,7 @@ + + safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) { +- fprintf(stderr, _("%s: unknown interface: %s\n"), ++ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"), + ifname, strerror(errno)); + return (-1); + } +@@ -159,7 +158,7 @@ + + safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) { +- fprintf(stderr, _("%s: unknown interface: %s\n"), ++ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"), + ifname, strerror(errno)); + return -1; + } +@@ -172,9 +171,35 @@ + return (0); + } + ++/** test is a specified flag is set */ ++static int test_flag(char *ifname, short flags) ++{ ++ struct ifreq ifr; ++ int fd; ++ ++ if (strchr(ifname, ':')) { ++ /* This is a v4 alias interface. Downing it via a socket for ++ another AF may have bad consequences. */ ++ fd = get_socket_for_af(AF_INET); ++ if (fd < 0) { ++ fprintf(stderr, _("No support for INET on this system.\n")); ++ return -1; ++ } ++ } else ++ fd = skfd; ++ ++ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ); ++ if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) { ++ fprintf(stderr, _("%s: ERROR while testing interface flags: %s\n"), ++ ifname, strerror(errno)); ++ return -1; ++ } ++ return (ifr.ifr_flags & flags); ++} ++ + static void usage(void) + { +- fprintf(stderr, _("Usage:\n ifconfig [-a] [-i] [-v] [-s] [[]
]\n")); ++ fprintf(stderr, _("Usage:\n ifconfig [-a] [-v] [-s] [[]
]\n")); + #if HAVE_AFINET + fprintf(stderr, _(" [add
[/]]\n")); + fprintf(stderr, _(" [del
[/]]\n")); +@@ -208,7 +233,7 @@ + static void version(void) + { + fprintf(stderr, "%s\n%s\n", Release, Version); +- exit(0); ++ exit(E_USAGE); + } + + static int set_netmask(int skfd, struct ifreq *ifr, struct sockaddr *sa) +@@ -222,18 +247,19 @@ + strerror(errno)); + err = 1; + } +- return 0; ++ return err; + } + + int main(int argc, char **argv) + { + struct sockaddr sa; ++ struct sockaddr samask; + struct sockaddr_in sin; + char host[128]; + struct aftype *ap; + struct hwtype *hw; + struct ifreq ifr; +- int goterr = 0, didnetmask = 0; ++ int goterr = 0, didnetmask = 0, neednetmask=0; + char **spp; + int fd; + #if HAVE_AFINET6 +@@ -388,6 +414,8 @@ + } + if (!strcmp(*spp, "-promisc")) { + goterr |= clr_flag(ifr.ifr_name, IFF_PROMISC); ++ if (test_flag(ifr.ifr_name, IFF_PROMISC) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in promisc mode... maybe other application is running?\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -398,6 +426,8 @@ + } + if (!strcmp(*spp, "-multicast")) { + goterr |= clr_flag(ifr.ifr_name, IFF_MULTICAST); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in MULTICAST mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -408,6 +438,8 @@ + } + if (!strcmp(*spp, "-allmulti")) { + goterr |= clr_flag(ifr.ifr_name, IFF_ALLMULTI); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in ALLMULTI mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -430,6 +462,8 @@ + if (!strcmp(*spp, "-dynamic")) { + goterr |= clr_flag(ifr.ifr_name, IFF_DYNAMIC); + spp++; ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in DYNAMIC mode.\n"), ifr.ifr_name); + continue; + } + #endif +@@ -486,6 +520,8 @@ + + if (!strcmp(*spp, "-broadcast")) { + goterr |= clr_flag(ifr.ifr_name, IFF_BROADCAST); ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in BROADCAST mode.\n"), ifr.ifr_name); + spp++; + continue; + } +@@ -493,7 +529,10 @@ + if (*++spp != NULL) { + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for broadcast\n"), host); + goterr = 1; + spp++; + continue; +@@ -515,7 +554,10 @@ + usage(); + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for dstaddr\n"), host); + goterr = 1; + spp++; + continue; +@@ -535,13 +577,16 @@ + usage(); + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for netmask\n"), host); + goterr = 1; + spp++; + continue; + } + didnetmask++; +- goterr = set_netmask(ap->fd, &ifr, &sa); ++ goterr |= set_netmask(ap->fd, &ifr, &sa); + spp++; + continue; + } +@@ -613,6 +658,8 @@ + if (!strcmp(*spp, "-pointopoint")) { + goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT); + spp++; ++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) ++ fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name); + continue; + } + if (!strcmp(*spp, "pointopoint")) { +@@ -620,7 +667,10 @@ + spp++; + safe_strncpy(host, *spp, (sizeof host)); + if (ap->input(0, host, &sa)) { +- ap->herror(host); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for pointopoint\n"), host); + goterr = 1; + spp++; + continue; +@@ -661,8 +711,12 @@ + memcpy((char *) &ifr.ifr_hwaddr, (char *) &sa, + sizeof(struct sockaddr)); + if (ioctl(skfd, SIOCSIFHWADDR, &ifr) < 0) { +- fprintf(stderr, "SIOCSIFHWADDR: %s\n", +- strerror(errno)); ++ if (errno == EBUSY) ++ fprintf(stderr, "SIOCSIFHWADDR: %s - you may need to down the interface\n", ++ strerror(errno)); ++ else ++ fprintf(stderr, "SIOCSIFHWADDR: %s\n", ++ strerror(errno)); + goterr = 1; + } + spp++; +@@ -681,12 +735,15 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, + (struct sockaddr *) &sa6) < 0) { +- inet6_aftype.herror(host); ++ if (inet6_aftype.herror) ++ inet6_aftype.herror(host); ++ else ++ fprintf(stderr, _("ifconfig: Error resolving '%s' for add\n"), host); + goterr = 1; + spp++; + continue; +@@ -771,7 +828,7 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, +@@ -800,6 +857,8 @@ + } + ifr6.ifr6_ifindex = ifr.ifr_ifindex; + ifr6.ifr6_prefixlen = prefix_len; ++ if (opt_v) ++ fprintf(stderr, "now deleting: ioctl(SIOCDIFADDR,{ifindex=%d,prefixlen=%ld})\n",ifr.ifr_ifindex,prefix_len); + if (ioctl(fd, SIOCDIFADDR, &ifr6) < 0) { + fprintf(stderr, "SIOCDIFADDR: %s\n", + strerror(errno)); +@@ -859,7 +918,7 @@ + usage(); + *cp = 0; + } else { +- prefix_len = 0; ++ prefix_len = 128; + } + safe_strncpy(host, *spp, (sizeof host)); + if (inet6_aftype.input(1, host, (struct sockaddr *) &sa6) < 0) { +@@ -903,7 +962,7 @@ + /* FIXME: sa is too small for INET6 addresses, inet6 should use that too, + broadcast is unexpected */ + if (ap->getmask) { +- switch (ap->getmask(host, &sa, NULL)) { ++ switch (ap->getmask(host, &samask, NULL)) { + case -1: + usage(); + break; +@@ -911,8 +970,8 @@ + if (didnetmask) + usage(); + +- goterr = set_netmask(skfd, &ifr, &sa); +- didnetmask++; ++ // remeber to set the netmask from samask later ++ neednetmask = 1; + break; + } + } +@@ -921,9 +980,11 @@ + exit(1); + } + if (ap->input(0, host, &sa) < 0) { +- ap->herror(host); +- fprintf(stderr, _("ifconfig: `--help' gives usage information.\n")); +- exit(1); ++ if (ap->herror) ++ ap->herror(host); ++ else ++ fprintf(stderr,_("ifconfig: error resolving '%s' to set address for af=%s\n"), host, ap->name); fprintf(stderr, ++ _("ifconfig: `--help' gives usage information.\n")); exit(1); + } + memcpy((char *) &ifr.ifr_addr, (char *) &sa, sizeof(struct sockaddr)); + { +@@ -980,6 +1041,14 @@ + spp++; + } + ++ if (neednetmask) { ++ goterr |= set_netmask(skfd, &ifr, &samask); ++ didnetmask++; ++ } ++ ++ if (opt_v && goterr) ++ fprintf(stderr, _("WARNING: at least one error occured. (%d)\n"), goterr); ++ + return (goterr); + } + +--- net-tools-1.60.orig/netstat.c ++++ net-tools-1.60/netstat.c +@@ -6,7 +6,7 @@ + * NET-3 Networking Distribution for the LINUX operating + * system. + * +- * Version: $Id: netstat.c,v 1.43 2001/04/15 14:41:17 pb Exp $ ++ * Version: $Id: netstat.c,v 1.55 2007/12/01 19:00:40 ecki Exp $ + * + * Authors: Fred Baumgarten, + * Fred N. van Kempen, +@@ -94,6 +94,7 @@ + #include "sockets.h" + #include "interface.h" + #include "util.h" ++#include "proc.h" + + #define PROGNAME_WIDTH 20 + +@@ -153,7 +154,7 @@ + FILE *procinfo; + + #define INFO_GUTS1(file,name,proc) \ +- procinfo = fopen((file), "r"); \ ++ procinfo = proc_fopen((file)); \ + if (procinfo == NULL) { \ + if (errno != ENOENT) { \ + perror((file)); \ +@@ -174,7 +175,7 @@ + #if HAVE_AFINET6 + #define INFO_GUTS2(file,proc) \ + lnr = 0; \ +- procinfo = fopen((file), "r"); \ ++ procinfo = proc_fopen((file)); \ + if (procinfo != NULL) { \ + do { \ + if (fgets(buffer, sizeof(buffer), procinfo)) \ +@@ -216,7 +217,7 @@ + + static struct prg_node { + struct prg_node *next; +- int inode; ++ unsigned long inode; + char name[PROGNAME_WIDTH]; + } *prg_hash[PRG_HASH_SIZE]; + +@@ -249,7 +250,7 @@ + /* NOT working as of glibc-2.0.7: */ + #undef DIRENT_HAVE_D_TYPE_WORKS + +-static void prg_cache_add(int inode, char *name) ++static void prg_cache_add(unsigned long inode, char *name) + { + unsigned hi = PRG_HASHIT(inode); + struct prg_node **pnp,*pn; +@@ -272,7 +273,7 @@ + strcpy(pn->name,name); + } + +-static const char *prg_cache_get(int inode) ++static const char *prg_cache_get(unsigned long inode) + { + unsigned hi=PRG_HASHIT(inode); + struct prg_node *pn; +@@ -295,16 +296,18 @@ + prg_cache_loaded=0; + } + +-static void extract_type_1_socket_inode(const char lname[], long * inode_p) { ++static int extract_type_1_socket_inode(const char lname[], unsigned long * inode_p) { + + /* If lname is of the form "socket:[12345]", extract the "12345" + as *inode_p. Otherwise, return -1 as *inode_p. + */ + +- if (strlen(lname) < PRG_SOCKET_PFXl+3) *inode_p = -1; +- else if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) *inode_p = -1; +- else if (lname[strlen(lname)-1] != ']') *inode_p = -1; +- else { ++ if (strlen(lname) < PRG_SOCKET_PFXl+3) return(-1); ++ ++ if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) return(-1); ++ if (lname[strlen(lname)-1] != ']') return(-1); ++ ++ { + char inode_str[strlen(lname + 1)]; /* e.g. "12345" */ + const int inode_str_len = strlen(lname) - PRG_SOCKET_PFXl - 1; + char *serr; +@@ -313,37 +316,41 @@ + inode_str[inode_str_len] = '\0'; + *inode_p = strtol(inode_str,&serr,0); + if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX) +- *inode_p = -1; ++ return(-1); + } ++ return(0); + } + + + +-static void extract_type_2_socket_inode(const char lname[], long * inode_p) { ++static int extract_type_2_socket_inode(const char lname[], unsigned long * inode_p) { + + /* If lname is of the form "[0000]:12345", extract the "12345" + as *inode_p. Otherwise, return -1 as *inode_p. + */ + +- if (strlen(lname) < PRG_SOCKET_PFX2l+1) *inode_p = -1; +- else if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) *inode_p = -1; +- else { ++ if (strlen(lname) < PRG_SOCKET_PFX2l+1) return(-1); ++ if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) return(-1); ++ ++ { + char *serr; + + *inode_p=strtol(lname + PRG_SOCKET_PFX2l,&serr,0); + if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX) +- *inode_p = -1; ++ return(-1); + } ++ return(0); + } + + + ++ + static void prg_cache_load(void) + { + char line[LINE_MAX],eacces=0; + int procfdlen,fd,cmdllen,lnamelen; + char lname[30],cmdlbuf[512],finbuf[PROGNAME_WIDTH]; +- long inode; ++ unsigned long inode; + const char *cs,*cmdlp; + DIR *dirproc=NULL,*dirfd=NULL; + struct dirent *direproc,*direfd; +@@ -386,11 +393,9 @@ + lnamelen=readlink(line,lname,sizeof(lname)-1); + lname[lnamelen] = '\0'; /*make it a null-terminated string*/ + +- extract_type_1_socket_inode(lname, &inode); +- +- if (inode < 0) extract_type_2_socket_inode(lname, &inode); +- +- if (inode < 0) continue; ++ if (extract_type_1_socket_inode(lname, &inode) < 0) ++ if (extract_type_2_socket_inode(lname, &inode) < 0) ++ continue; + + if (!cmdlp) { + if (procfdlen - PATH_FD_SUFFl + PATH_CMDLINEl >= +@@ -450,7 +455,7 @@ + char buffer[256], dev[16]; + int st, vs, vr, sendq, recvq, ret; + +- f = fopen(_PATH_PROCNET_NR, "r"); ++ f = proc_fopen(_PATH_PROCNET_NR); + if (f == NULL) { + if (errno != ENOENT) { + perror(_PATH_PROCNET_NR); +@@ -527,15 +532,15 @@ + + if (flag_exp > 1) { + if (!(flag_not & FLAG_NUM_USER) && ((pw = getpwuid(uid)) != NULL)) +- printf("%-10s ", pw->pw_name); ++ printf(" %-10s ", pw->pw_name); + else +- printf("%-10d ", uid); +- printf("%-10ld ",inode); ++ printf(" %-10d ", uid); ++ printf("%-10lu ",inode); + } + if (flag_prg) +- printf("%-" PROGNAME_WIDTHs "s",prg_cache_get(inode)); ++ printf(" %-16s",prg_cache_get(inode)); + if (flag_opt) +- printf("%s", timers); ++ printf(" %s", timers); + putchar('\n'); + } + +@@ -646,7 +651,7 @@ + #if HAVE_AFX25 + static int x25_info(void) + { +- FILE *f=fopen(_PATH_PROCNET_X25, "r"); ++ FILE *f=proc_fopen(_PATH_PROCNET_X25); + char buffer[256],dev[16]; + int st,vs,vr,sendq,recvq,lci; + static char *x25_state[5]= +@@ -657,7 +662,7 @@ + "ESTABLISHED", + "RECOVERY" + }; +- if(!(f=fopen(_PATH_PROCNET_X25, "r"))) ++ if(!(f=proc_fopen(_PATH_PROCNET_X25))) + { + if (errno != ENOENT) { + perror(_PATH_PROCNET_X25); +@@ -705,6 +710,7 @@ + unsigned long rxq, txq, time_len, retr, inode; + int num, local_port, rem_port, d, state, uid, timer_run, timeout; + char rem_addr[128], local_addr[128], timers[64], buffer[1024], more[512]; ++ char *protname; + struct aftype *ap; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; +@@ -719,12 +725,13 @@ + return; + + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname = "tcp6"; + /* Demangle what the kernel gives us */ + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], +@@ -740,6 +747,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname = "tcp"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -813,8 +821,8 @@ + timer_run, (double) time_len / HZ, retr, timeout); + break; + } +- printf("tcp %6ld %6ld %-23s %-23s %-12s", +- rxq, txq, local_addr, rem_addr, _(tcp_state[state])); ++ printf("%-4s %6ld %6ld %-*s %-*s %-11s", ++ protname, rxq, txq, netmax(23,strlen(local_addr)), local_addr, netmax(23,strlen(rem_addr)), rem_addr, _(tcp_state[state])); + + finish_this_one(uid,inode,timers); + } +@@ -831,6 +839,7 @@ + char buffer[8192], local_addr[64], rem_addr[64]; + char *udp_state, timers[64], more[512]; + int num, local_port, rem_port, d, state, timer_run, uid, timeout; ++ char *protname; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; + char addr6[INET6_ADDRSTRLEN]; +@@ -847,13 +856,14 @@ + + more[0] = '\0'; + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, + rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname="udp6"; + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], + &in6.s6_addr32[2], &in6.s6_addr32[3]); +@@ -868,6 +878,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname="udp"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -953,8 +964,8 @@ + retr, timeout); + break; + } +- printf("udp %6ld %6ld %-23s %-23s %-12s", +- rxq, txq, local_addr, rem_addr, udp_state); ++ printf("%-4s %6ld %6ld %-23s %-23s %-11s", ++ protname, rxq, txq, local_addr, rem_addr, udp_state); + + finish_this_one(uid,inode,timers); + } +@@ -971,6 +982,7 @@ + char buffer[8192], local_addr[64], rem_addr[64]; + char timers[64], more[512]; + int num, local_port, rem_port, d, state, timer_run, uid, timeout; ++ char *protname; + #if HAVE_AFINET6 + struct sockaddr_in6 localaddr, remaddr; + char addr6[INET6_ADDRSTRLEN]; +@@ -987,12 +999,13 @@ + + more[0] = '\0'; + num = sscanf(line, +- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n", ++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", + &d, local_addr, &local_port, rem_addr, &rem_port, &state, + &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); + + if (strlen(local_addr) > 8) { + #if HAVE_AFINET6 ++ protname = "raw6"; + sscanf(local_addr, "%08X%08X%08X%08X", + &in6.s6_addr32[0], &in6.s6_addr32[1], + &in6.s6_addr32[2], &in6.s6_addr32[3]); +@@ -1007,6 +1020,7 @@ + remaddr.sin6_family = AF_INET6; + #endif + } else { ++ protname = "raw"; + sscanf(local_addr, "%X", + &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr); + sscanf(rem_addr, "%X", +@@ -1074,8 +1088,8 @@ + retr, timeout); + break; + } +- printf("raw %6ld %6ld %-23s %-23s %-12d", +- rxq, txq, local_addr, rem_addr, state); ++ printf("%-4s %6ld %6ld %-23s %-23s %-11d", ++ protname, rxq, txq, local_addr, rem_addr, state); + + finish_this_one(uid,inode,timers); + } +@@ -1099,9 +1113,9 @@ + static int has = 0; + char path[MAXPATHLEN], ss_flags[32]; + char *ss_proto, *ss_state, *ss_type; +- int num, state, type, inode; ++ int num, state, type; + void *d; +- unsigned long refcnt, proto, flags; ++ unsigned long refcnt, proto, flags, inode; + + if (nr == 0) { + if (strstr(line, "Inode")) +@@ -1109,14 +1123,14 @@ + return; + } + path[0] = '\0'; +- num = sscanf(line, "%p: %lX %lX %lX %X %X %d %s", ++ num = sscanf(line, "%p: %lX %lX %lX %X %X %lu %s", + &d, &refcnt, &proto, &flags, &type, &state, &inode, path); + if (num < 6) { + fprintf(stderr, _("warning, got bogus unix line.\n")); + return; + } + if (!(has & HAS_INODE)) +- snprintf(path,sizeof(path),"%d",inode); ++ snprintf(path,sizeof(path),"%lu",inode); + + if (!flag_all) { + if ((state == SS_UNCONNECTED) && (flags & SO_ACCEPTCON)) { +@@ -1208,9 +1222,9 @@ + printf("%-5s %-6ld %-11s %-10s %-13s ", + ss_proto, refcnt, ss_flags, ss_type, ss_state); + if (has & HAS_INODE) +- printf("%-6d ",inode); ++ printf("%-8lu ",inode); + else +- printf("- "); ++ printf("- "); + if (flag_prg) + printf("%-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-")); + puts(path); +@@ -1229,7 +1243,7 @@ + printf(_("(w/o servers)")); + } + +- printf(_("\nProto RefCnt Flags Type State I-Node")); ++ printf(_("\nProto RefCnt Flags Type State I-Node ")); + print_progname_banner(); + printf(_(" Path\n")); /* xxx */ + +@@ -1256,7 +1270,7 @@ + N_("ESTABLISHED"), + N_("RECOVERY") + }; +- if (!(f = fopen(_PATH_PROCNET_AX25, "r"))) { ++ if (!(f = proc_fopen(_PATH_PROCNET_AX25))) { + if (errno != ENOENT) { + perror(_PATH_PROCNET_AX25); + return (-1); +@@ -1350,18 +1364,37 @@ + char sad[50], dad[50]; + struct sockaddr sa; + unsigned sport = 0, dport = 0; +- +- if (!(f = fopen(_PATH_PROCNET_IPX, "r"))) { +- if (errno != ENOENT) { +- perror(_PATH_PROCNET_IPX); +- return (-1); +- } +- if (flag_arg || flag_ver) +- ESYSNOT("netstat", "AF IPX"); +- if (flag_arg) +- return (1); +- else +- return (0); ++ struct stat s; ++ ++ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET1); ++ if (!f) { ++ if (errno != ENOENT) { ++ perror(_PATH_PROCNET_IPX_SOCKET1); ++ return (-1); ++ } ++ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET2); ++ ++ /* We need to check for directory */ ++ if (f) { ++ fstat(fileno(f), &s); ++ if (!S_ISREG(s.st_mode)) { ++ fclose(f); ++ f=NULL; ++ } ++ } ++ ++ if (!f) { ++ if (errno != ENOENT) { ++ perror(_PATH_PROCNET_IPX_SOCKET2); ++ return (-1); ++ } ++ if (flag_arg || flag_ver) ++ ESYSNOT("netstat", "AF IPX"); ++ if (flag_arg) ++ return (1); ++ else ++ return (0); ++ } + } + printf(_("Active IPX sockets\nProto Recv-Q Send-Q Local Address Foreign Address State")); /* xxx */ + if (flag_exp > 1) +@@ -1381,7 +1414,7 @@ + sscanf(st, "%X", &sport); /* net byt order */ + sport = ntohs(sport); + } else { +- EINTERN("netstat.c", _PATH_PROCNET_IPX " sport format error"); ++ EINTERN("netstat.c", "ipx socket format error in source port"); + return (-1); + } + nc = 0; +@@ -1391,7 +1424,7 @@ + sscanf(st, "%X", &dport); /* net byt order */ + dport = ntohs(dport); + } else { +- EINTERN("netstat.c", _PATH_PROCNET_IPX " dport format error"); ++ EINTERN("netstat.c", "ipx soket format error in destination port"); + return (-1); + } + } else +@@ -1449,7 +1482,7 @@ + } + if (flag_exp < 2) { + ife_short = 1; +- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); ++ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); + } + + if (for_all_interfaces(do_if_print, &flag_all) < 0) { +@@ -1457,7 +1490,7 @@ + exit(1); + } + if (flag_cnt) +- free_interface_list(); ++ if_cache_free(); + else { + close(skfd); + skfd = -1; +@@ -1503,7 +1536,7 @@ + fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); + + fprintf(stderr, _(" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); +- fprintf(stderr, _(" =Use '-A ' or '--'; default: %s\n"), DFLT_AF); ++ fprintf(stderr, _(" =Use '-6|-4' or '-A ' or '--'; default: %s\n"), DFLT_AF); + fprintf(stderr, _(" List of possible address families (which support routing):\n")); + print_aflist(1); /* 1 = routeable */ + exit(E_USAGE); +@@ -1514,7 +1547,7 @@ + (int argc, char *argv[]) { + int i; + int lop; +- struct option longopts[] = ++ static struct option longopts[] = + { + AFTRANS_OPTS, + {"version", 0, 0, 'V'}, +@@ -1556,7 +1589,7 @@ + getroute_init(); /* Set up AF routing support */ + + afname[0] = '\0'; +- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl64", longopts, &lop)) != EOF) + switch (i) { + case -1: + break; +@@ -1624,6 +1657,14 @@ + case 'o': + flag_opt++; + break; ++ case '6': ++ if (aftrans_opt("inet6")) ++ exit(1); ++ break; ++ case '4': ++ if (aftrans_opt("inet")) ++ exit(1); ++ break; + case 'V': + version(); + /*NOTREACHED */ +@@ -1741,10 +1782,11 @@ + } + printf(_("\nProto Recv-Q Send-Q Local Address Foreign Address State ")); /* xxx */ + if (flag_exp > 1) +- printf(_(" User Inode ")); +- print_progname_banner(); ++ printf(_(" User Inode ")); ++ if (flag_prg) ++ printf(_(" PID/Program name")); + if (flag_opt) +- printf(_(" Timer")); /* xxx */ ++ printf(_(" Timer")); + printf("\n"); + #else + if (flag_arg) { +@@ -1845,6 +1887,7 @@ + } + #endif + } ++ + if (!flag_cnt || i) + break; + sleep(1); +--- net-tools-1.60.orig/route.c ++++ net-tools-1.60/route.c +@@ -2,7 +2,7 @@ + * route This file contains an implementation of the command + * that manages the IP routing table in the kernel. + * +- * Version: $Id: route.c,v 1.9 2001/04/15 14:41:17 pb Exp $ ++ * Version: $Id: route.c,v 1.10 2002/07/30 05:24:20 ecki Exp $ + * + * Maintainer: Bernd 'eckes' Eckenfels, + * +@@ -142,7 +142,7 @@ + } + + /* Fetch the command-line arguments. */ +- while ((i = getopt_long(argc, argv, "A:eCFhnNVv?", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "A:eCFhnN64Vv?", longopts, &lop)) != EOF) + switch (i) { + case -1: + break; +@@ -176,6 +176,14 @@ + if ((i = aftrans_opt(optarg))) + exit(i); + break; ++ case '6': ++ if ((i = aftrans_opt("inet6"))) ++ exit(i); ++ break; ++ case '4': ++ if ((i = aftrans_opt("inet"))) ++ exit(i); ++ break; + case 'V': + version(); + case 'h': +--- net-tools-1.60.orig/statistics.c ++++ net-tools-1.60/statistics.c +@@ -1,6 +1,6 @@ + /* + * Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL. +- * $Id: statistics.c,v 1.14 2001/02/02 18:01:23 pb Exp $ ++ * $Id: statistics.c,v 1.20 2007/12/01 18:44:56 ecki Exp $ + * 19980630 - i18n - Arnaldo Carvalho de Melo + * 19981113 - i18n fixes - Arnaldo Carvalho de Melo + * 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels +@@ -11,6 +11,7 @@ + #include + #include "config.h" + #include "intl.h" ++#include "proc.h" + + /* #define WARN 1 */ + +@@ -172,19 +173,59 @@ + { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number }, + { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"), + opt_number }, +- { "ListenDrops", N_("%u SYNs to LISTEN sockets ignored"), opt_number }, ++ { "ListenDrops", N_("%u SYNs to LISTEN sockets dropped"), opt_number }, + { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."), + opt_number }, +- { "TCPDirectCopyFromBacklog", N_("%u packets directly received" +- " from backlog"), opt_number }, +- { "TCPDirectCopyFromPrequeue", N_("%u packets directly received" +- " from prequeue"), opt_number }, ++ { "TCPDirectCopyFromBacklog", N_("%u bytes directly in process context from backlog"), opt_number }, ++ { "TCPDirectCopyFromPrequeue", N_("%u bytes directly received in process context from prequeue"), ++ opt_number }, + { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number }, +- { "TCPHPHits", N_("%u packets header predicted"), number }, ++ { "TCPHPHits", N_("%u packet headers predicted"), number }, + { "TCPHPHitsToUser", N_("%u packets header predicted and " + "directly queued to user"), opt_number }, + { "SockMallocOOM", N_("Ran %u times out of system memory during " + "packet sending"), opt_number }, ++ { "TCPPureAcks", N_("%u acknowledgments not containing data payload received"), opt_number }, ++ { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number }, ++ { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number }, ++ { "TCPSackRecovery", N_("%u times recovered from packet loss by selective acknowledgements"), opt_number }, ++ { "TCPSACKReneging", N_("%u bad SACK blocks received"), opt_number }, ++ { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number }, ++ { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number }, ++ { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number }, ++ { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number }, ++ { "TCPFullUndo", N_("%u congestion windows fully recovered without slow start"), opt_number }, ++ { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number }, ++ { "TCPDSackUndo", N_("%u congestion window recovered without slow start using DSACK"), opt_number }, ++ { "TCPLossUndo", N_("%u congestion windows recovered without slow start after partial ack"), opt_number }, ++ { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number }, ++ { "TCPRenoFailures", N_("%u timeouts after reno fast retransmit"), opt_number }, ++ { "TCPSackFailures", N_("%u timeouts after SACK recovery"), opt_number }, ++ { "TCPLossFailures", N_("%u timeouts in loss state"), opt_number }, ++ { "TCPFastRetrans", N_("%u fast retransmits"), opt_number }, ++ { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number }, ++ { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number }, ++ { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number }, ++ { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number }, ++ { "TCPSackRecoveryFail", N_("%u SACK retransmits failed"), opt_number }, ++ { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number }, ++ { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number }, ++ { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number }, ++ { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number }, ++ { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number }, ++ { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number }, ++ { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number }, ++ { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number }, ++ { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number }, ++ { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number }, ++ { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number }, ++ { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number }, ++ { "TCPAbortFailed", N_("%u times unabled to send RST due to no memory"), opt_number }, ++ { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number }, ++ { "TCPLoss", N_("%u TCP data loss events"), opt_number }, ++ { "TCPDSACKUndo", N_("%u congestion windows recovered without slow start by DSACK"), ++ opt_number }, ++ { "TCPRenoRecoveryFail", N_("%u classic Reno fast retransmits failed"), opt_number }, + }; + + struct tabtab { +@@ -222,7 +263,8 @@ + ent = bsearch(&key, tab->tab, tab->size / sizeof(struct entry), + sizeof(struct entry), cmpentries); + if (!ent) { /* try our best */ +- printf("%*s%s: %d\n", states[state].indent, "", title, val); ++ if (val) ++ printf("%*s%s: %d\n", states[state].indent, "", title, val); + return; + } + type = ent->type; +@@ -289,14 +331,17 @@ + return &dummytab; + } + +-void process_fd(FILE *f) ++int process_fd(FILE *f) + { +- char buf1[1024], buf2[1024]; ++ char buf1[2048], buf2[2048]; + char *sp, *np, *p; + while (fgets(buf1, sizeof buf1, f)) { + int endflag; + struct tabtab *tab; + ++ if (buf1[0] == '\n') // skip empty first line in 2.6 kernels ++ continue; ++ + if (!fgets(buf2, sizeof buf2, f)) + break; + sp = strchr(buf1, ':'); +@@ -330,11 +375,10 @@ + sp = p + 1; + } + } +- return; ++ return 0; + + formaterr: +- perror(_("error parsing /proc/net/snmp")); +- return; ++ return -1; + } + + +@@ -344,22 +388,25 @@ + + f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; + +- f = fopen("/proc/net/snmp", "r"); ++ f = proc_fopen("/proc/net/snmp"); + if (!f) { + perror(_("cannot open /proc/net/snmp")); + return; + } +- process_fd(f); ++ ++ if (process_fd(f) < 0) ++ fprintf(stderr, _("Problem while parsing /proc/net/snmp\n")); + + if (ferror(f)) + perror("/proc/net/snmp"); + + fclose(f); + +- f = fopen("/proc/net/netstat", "r"); ++ f = proc_fopen("/proc/net/netstat"); + + if (f) { +- process_fd(f); ++ if (process_fd(f) <0) ++ fprintf(stderr, _("Problem while parsing /proc/net/netstat\n")); + + if (ferror(f)) + perror("/proc/net/netstat"); +--- net-tools-1.60.orig/nameif.c ++++ net-tools-1.60/nameif.c +@@ -3,7 +3,7 @@ + * Writen 2000 by Andi Kleen. + * Subject to the Gnu Public License, version 2. + * TODO: make it support token ring etc. +- * $Id: nameif.c,v 1.1 2000/10/18 17:26:29 ak Exp $ ++ * $Id: nameif.c,v 1.4 2003/09/11 03:46:49 ak Exp $ + */ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE +@@ -117,7 +117,8 @@ + } + + struct change { +- struct change *next,**pprev; ++ struct change *next; ++ int found; + char ifname[IFNAMSIZ+1]; + unsigned char mac[6]; + }; +@@ -139,10 +140,7 @@ + ch->ifname, pos); + if (parsemac(p,ch->mac) < 0) + complain(_("cannot parse MAC `%s' at %s"), p, pos); +- if (clist) +- clist->pprev = &ch->next; + ch->next = clist; +- ch->pprev = &clist; + clist = ch; + return 0; + } +@@ -177,7 +175,7 @@ + if (*p == '\0') + continue; + n = strcspn(p, " \t"); +- if (n > IFNAMSIZ) ++ if (n > IFNAMSIZ-1) + complain(_("interface name too long at line %d"), line); + memcpy(ch->ifname, p, n); + ch->ifname[n] = 0; +@@ -200,7 +198,7 @@ + + void usage(void) + { +- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}")); ++ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n")); + exit(1); + } + +@@ -277,21 +275,21 @@ + ch = lookupmac(mac); + if (!ch) + continue; +- +- *ch->pprev = ch->next; ++ ++ ch->found = 1; + if (strcmp(p, ch->ifname)) { + if (setname(p, ch->ifname) < 0) + complain(_("cannot change name of %s to %s: %s"), + p, ch->ifname, strerror(errno)); + } +- free(ch); + } + fclose(ifh); + + while (clist) { + struct change *ch = clist; + clist = clist->next; +- warning(_("interface '%s' not found"), ch->ifname); ++ if (!ch->found) ++ warning(_("interface '%s' not found"), ch->ifname); + free(ch); + } + +--- net-tools-1.60.orig/mii-tool.c ++++ net-tools-1.60/mii-tool.c +@@ -29,8 +29,7 @@ + http://www.national.com/pf/DP/DP83840.html + */ + +-static char version[] = +-"mii-tool.c 1.9 2000/04/28 00:56:08 (David Hinds)\n"; ++static char Version[] = "$Id: mii-tool.c,v 1.9 2006/09/27 20:59:18 ecki Exp $\n(Author: David Hinds based on Donald Becker's mii-diag)"; + + #include + #include +@@ -46,16 +45,19 @@ + #include + #include + #include ++#include ++ + #ifndef __GLIBC__ + #include + #include + #endif + #include "mii.h" ++#include "version.h" + + #define MAX_ETH 8 /* Maximum # of interfaces */ + + /* Table of known MII's */ +-static struct { ++static const struct { + u_short id1, id2; + char *name; + } mii_id[] = { +@@ -74,6 +76,9 @@ + { 0x0181, 0x4410, "Quality QS6612" }, + { 0x0282, 0x1c50, "SMSC 83C180" }, + { 0x0300, 0xe540, "TDK 78Q2120" }, ++ { 0x0141, 0x0c20, "Yukon 88E1011" }, ++ { 0x0141, 0x0cc0, "Yukon-EC 88E1111" }, ++ { 0x0141, 0x0c90, "Yukon-2 88E1112" }, + }; + #define NMII (sizeof(mii_id)/sizeof(mii_id[0])) + +@@ -137,40 +142,48 @@ + + const struct { + char *name; +- u_short value; ++ u_short value[2]; + } media[] = { + /* The order through 100baseT4 matches bits in the BMSR */ +- { "10baseT-HD", MII_AN_10BASET_HD }, +- { "10baseT-FD", MII_AN_10BASET_FD }, +- { "100baseTx-HD", MII_AN_100BASETX_HD }, +- { "100baseTx-FD", MII_AN_100BASETX_FD }, +- { "100baseT4", MII_AN_100BASET4 }, +- { "100baseTx", MII_AN_100BASETX_FD | MII_AN_100BASETX_HD }, +- { "10baseT", MII_AN_10BASET_FD | MII_AN_10BASET_HD }, ++ { "10baseT-HD", {MII_AN_10BASET_HD} }, ++ { "10baseT-FD", {MII_AN_10BASET_FD} }, ++ { "100baseTx-HD", {MII_AN_100BASETX_HD} }, ++ { "100baseTx-FD", {MII_AN_100BASETX_FD} }, ++ { "100baseT4", {MII_AN_100BASET4} }, ++ { "100baseTx", {MII_AN_100BASETX_FD | MII_AN_100BASETX_HD} }, ++ { "10baseT", {MII_AN_10BASET_FD | MII_AN_10BASET_HD} }, ++ ++ { "1000baseT-HD", {0, MII_BMCR2_1000HALF} }, ++ { "1000baseT-FD", {0, MII_BMCR2_1000FULL} }, ++ { "1000baseT", {0, MII_BMCR2_1000HALF|MII_BMCR2_1000FULL} }, + }; + #define NMEDIA (sizeof(media)/sizeof(media[0])) + + /* Parse an argument list of media types */ +-static int parse_media(char *arg) ++static int parse_media(char *arg, unsigned *bmcr2) + { + int mask, i; + char *s; + mask = strtoul(arg, &s, 16); + if ((*arg != '\0') && (*s == '\0')) { + if ((mask & MII_AN_ABILITY_MASK) && +- !(mask & ~MII_AN_ABILITY_MASK)) +- return mask; ++ !(mask & ~MII_AN_ABILITY_MASK)) { ++ *bmcr2 = 0; ++ return mask; ++ } + goto failed; +- } else { +- mask = 0; +- s = strtok(arg, ", "); +- do { ++ } ++ mask = 0; ++ *bmcr2 = 0; ++ s = strtok(arg, ", "); ++ do { + for (i = 0; i < NMEDIA; i++) +- if (strcasecmp(media[i].name, s) == 0) break; ++ if (s && strcasecmp(media[i].name, s) == 0) break; + if (i == NMEDIA) goto failed; +- mask |= media[i].value; +- } while ((s = strtok(NULL, ", ")) != NULL); +- } ++ mask |= media[i].value[0]; ++ *bmcr2 |= media[i].value[1]; ++ } while ((s = strtok(NULL, ", ")) != NULL); ++ + return mask; + failed: + fprintf(stderr, "Invalid media specification '%s'.\n", arg); +@@ -179,11 +192,24 @@ + + /*--------------------------------------------------------------------*/ + +-static char *media_list(int mask, int best) ++static const char *media_list(unsigned mask, unsigned mask2, int best) + { + static char buf[100]; + int i; + *buf = '\0'; ++ ++ if (mask & MII_BMCR_SPEED1000) { ++ if (mask2 & MII_BMCR2_1000HALF) { ++ strcat(buf, " "); ++ strcat(buf, "1000baseT-HD"); ++ if (best) goto out; ++ } ++ if (mask2 & MII_BMCR2_1000FULL) { ++ strcat(buf, " "); ++ strcat(buf, "1000baseT-FD"); ++ if (best) goto out; ++ } ++ } + mask >>= 5; + for (i = 4; i >= 0; i--) { + if (mask & (1< 1) ? 32 : 8); i++) ++ for (i = 0; i < ((verbose > 1) ? 32 : MII_BASIC_MAX); i++) + mii_val[i] = mdio_read(sock, i); + +- if (mii_val[MII_BMCR] == 0xffff) { ++ if (mii_val[MII_BMCR] == 0xffff || mii_val[MII_BMSR] == 0x0000) { + fprintf(stderr, " No MII transceiver present!.\n"); + return -1; + } +@@ -217,6 +244,7 @@ + /* Descriptive rename. */ + bmcr = mii_val[MII_BMCR]; bmsr = mii_val[MII_BMSR]; + advert = mii_val[MII_ANAR]; lkpar = mii_val[MII_ANLPAR]; ++ bmcr2 = mii_val[MII_CTRL1000]; lpa2 = mii_val[MII_STAT1000]; + + sprintf(buf, "%s: ", ifr.ifr_name); + if (bmcr & MII_BMCR_AN_ENA) { +@@ -224,7 +252,7 @@ + if (advert & lkpar) { + strcat(buf, (lkpar & MII_AN_ACK) ? + "negotiated" : "no autonegotiation,"); +- strcat(buf, media_list(advert & lkpar, 1)); ++ strcat(buf, media_list(advert & lkpar, bmcr2 & lpa2>>2, 1)); + strcat(buf, ", "); + } else { + strcat(buf, "autonegotiation failed, "); +@@ -234,8 +262,10 @@ + } + } else { + sprintf(buf+strlen(buf), "%s Mbit, %s duplex, ", +- (bmcr & MII_BMCR_100MBIT) ? "100" : "10", +- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half"); ++ ((bmcr2 & (MII_BMCR2_1000HALF | MII_BMCR2_1000FULL)) & lpa2 >> 2) ++ ? "1000" ++ : (bmcr & MII_BMCR_100MBIT) ? "100" : "10", ++ (bmcr & MII_BMCR_DUPLEX) ? "full" : "half"); + } + strcat(buf, (bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link"); + +@@ -296,12 +326,13 @@ + if (bmsr & MII_BMSR_REMOTE_FAULT) + printf("remote fault, "); + printf((bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link"); +- printf("\n capabilities:%s", media_list(bmsr >> 6, 0)); +- printf("\n advertising: %s", media_list(advert, 0)); ++ printf("\n capabilities:%s", media_list(bmsr >> 6, bmcr2, 0)); ++ printf("\n advertising: %s", media_list(advert, lpa2 >> 2, 0)); + if (lkpar & MII_AN_ABILITY_MASK) +- printf("\n link partner:%s", media_list(lkpar, 0)); ++ printf("\n link partner:%s", media_list(lkpar, bmcr2, 0)); + printf("\n"); + } ++ fflush(stdout); + return 0; + } + +@@ -329,7 +360,7 @@ + printf("resetting the transceiver...\n"); + mdio_write(skfd, MII_BMCR, MII_BMCR_RESET); + } +- if (nway_advertise) { ++ if (nway_advertise > 0) { + mdio_write(skfd, MII_ANAR, nway_advertise | 1); + opt_restart = 1; + } +@@ -379,27 +410,38 @@ + /*--------------------------------------------------------------------*/ + + const char *usage = +-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...] +- -V, --version display version information +- -v, --verbose more verbose output +- -R, --reset reset MII to poweron state +- -r, --restart restart autonegotiation +- -w, --watch monitor for link status changes +- -l, --log with -w, write events to syslog +- -A, --advertise=media,... advertise only specified media +- -F, --force=media force specified media technology +-media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD, +- (to advertise both HD and FD) 100baseTx, 10baseT\n"; ++"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n" ++" -V, --version display version information\n" ++" -v, --verbose more verbose output\n" ++" -R, --reset reset MII to poweron state\n" ++" -r, --restart restart autonegotiation\n" ++" -w, --watch monitor for link status changes\n" ++" -l, --log with -w, write events to syslog\n" ++" -A, --advertise=media,... advertise only specified media\n" ++" -F, --force=media force specified media technology\n" ++"media: 1000baseTx-HD, 1000baseTx-FD,\n" ++" 100baseT4, 100baseTx-FD, 100baseTx-HD,\n" ++" 10baseT-FD, 10baseT-HD,\n" ++" (to advertise both HD and FD) 1000baseTx, 100baseTx, 10baseT\n"; ++ ++ ++static void version(void) ++{ ++ fprintf(stderr, "%s\n%s\n", Version, RELEASE); ++ exit(5); /* E_VERSION */ ++} ++ + + int main(int argc, char **argv) + { + int i, c, ret, errflag = 0; + char s[6]; ++ unsigned ctrl1000 = 0; + + while ((c = getopt_long(argc, argv, "A:F:p:lrRvVw?", longopts, 0)) != EOF) + switch (c) { +- case 'A': nway_advertise = parse_media(optarg); break; +- case 'F': fixed_speed = parse_media(optarg); break; ++ case 'A': nway_advertise = parse_media(optarg, &ctrl1000); break; ++ case 'F': fixed_speed = parse_media(optarg, &ctrl1000); break; + case 'p': override_phy = atoi(optarg); break; + case 'r': opt_restart++; break; + case 'R': opt_reset++; break; +@@ -411,6 +453,10 @@ + } + /* Check for a few inappropriate option combinations */ + if (opt_watch) verbose = 0; ++ ++ if ((nway_advertise < 0) || (fixed_speed < 0)) ++ return 2; ++ + if (errflag || (fixed_speed & (fixed_speed-1)) || + (fixed_speed && (opt_restart || nway_advertise))) { + fprintf(stderr, usage, argv[0]); +@@ -418,7 +464,7 @@ + } + + if (opt_version) +- printf(version); ++ version(); + + /* Open a basic socket. */ + if ((skfd = socket(AF_INET, SOCK_DGRAM,0)) < 0) { +@@ -426,6 +472,9 @@ + exit(-1); + } + ++ if (verbose > 1) ++ printf("Using SIOCGMIIPHY=0x%x\n", SIOCGMIIPHY); ++ + /* No remaining args means show all interfaces. */ + if (optind == argc) { + ret = 1; +--- net-tools-1.60.orig/debian/changelog ++++ net-tools-1.60/debian/changelog +@@ -0,0 +1,277 @@ ++net-tools (1.60-19) unstable; urgency=low ++ ++ * fixed netstat(8) (interfaceS) reported by Liu Xing. (Closes Bug #435690) ++ * fixed interface name truncation (Closes Bug #405521) ++ Thank you Csaba Szep. ++ * fixed pt error string (Closes: Bug#403033) ++ * fixed route samples (Closes: Bug#400844, #368697) Thanks Danny Rathjens. ++ * fixed ifconfig(8) see also section (Closes: Bug#365916) Dan Jacobs. ++ ++ -- Bernd Eckenfels Sun, 02 Dec 2007 06:27:41 +0100 ++ ++net-tools (1.60-18) unstable; urgency=low ++ ++ * Thanks for the l10n NMU to Kenshi Muto ++ * fixed hostname compile problems ++ * better error handling and speedup for proc file reading ++ * improved mii-tool (more media types) ++ * fixed string length contraint in ipmaddr ++ * fixed ipx /proc/net (alternate naming) ++ * smaller fixed to netstat(8) (de) 2002-02-20 - still incomplete ++ * expanded arp(8) (en) 2007-12-01 ++ * added -4 and -6 to netstat(8) 02 October 2003 ++ * formatting fixed rarp(8)+slattach(8) [en] ++ * formatting fixed arp(8), rarp(8), ifconfig(8), hostname(1) [fr] ++ * fixed slattach -L to not require HW handshake anymore ++ * netstat -n: show v4inv6 mapped addressses as v4 ++ ++ -- Bernd Eckenfels Sun, 02 Dec 2007 03:28:17 +0100 ++ ++net-tools (1.60-17.2) unstable; urgency=low ++ ++ * l10n NMU ++ * Set conflict against ja-trans which has obsolete Japanese ++ translations only for net-tools. (closes: #447327) ++ ++ -- Kenshi Muto Sat, 20 Oct 2007 18:00:34 +0900 ++ ++net-tools (1.60-17.1) unstable; urgency=low ++ ++ * l10n NMU ++ * Updated net-tools.pot. ++ * Updated Japanese translation (closes: Bug#432338) ++ * Updated German translation (closes: #313808) ++ ++ -- Kenshi Muto Thu, 11 Oct 2007 19:44:26 +0900 ++ ++net-tools (1.60-17) unstable; urgency=medium ++ ++ * arp.c: bus error on sparc64 with latest gcc fixed. (Closes: Bug#340384) ++ ++ -- Bernd Eckenfels Sun, 04 Dec 2005 05:47:05 +0100 ++ ++net-tools (1.60-16) unstable; urgency=low ++ ++ * spelling fix to slattach(8) (Closes: Bug#326124 (patch by A.Costa) ++ * inet.c: portability fix for 64bit. ++ * comment cleanups to aliagn with 1.65 cvs ++ * net-support.h, inet_sr.c, nstrcmp.c, arp.c, ether.h ++ ++ -- Bernd Eckenfels Mon, 24 Oct 2005 22:05:38 +0200 ++ ++net-tools (1.60-15) unstable; urgency=low ++ ++ * minor formating fix to ifconfig(8) ++ ++ -- Bernd Eckenfels Thu, 30 Jun 2005 21:49:52 +0200 ++ ++net-tools (1.60-14) unstable; urgency=low ++ ++ * added iptables(8) in ifconfig(8) (thanks Toralf Förster) ++ * more usage updates in ifconfig.8 (used upstream HEAD=1.11) ++ ++ -- Bernd Eckenfels Thu, 30 Jun 2005 20:51:18 +0200 ++ ++net-tools (1.60-13) unstable; urgency=low Thu, 30 Jun 2005 20:49:57 +0200 ++ ++ * X25 code compiles with 2.4 and 2.6 kernel headers (Closes: Bug#271678) ++ * IMPORTANT: make ifconfig show alias interfaces in 2.6 again. ++ * resort media type array to match kernel (Closes: Bug#199920) ++ ++ -- Bernd Eckenfels Tue, 17 May 2005 01:28:51 +0200 ++ ++net-tools (1.60-12) unstable; urgency=low ++ ++ * make TR hw address type work for new kernel (Closes: Bug #79462, #203400) ++ * update-po uses msgmerge, new net-tools.pot (Closes: Bug: 271426) ++ * de-support dontpub option in arp -? und arp.8 (Closes: Bug #203396) ++ ++ -- Bernd Eckenfels Mon, 16 May 2005 06:33:48 +0200 ++ ++net-tools (1.60-11) unstable; urgency=low ++ ++ * spelling fixes (Closes: Bug #305640, #305638, 305637) ++ * nameif.c avoid overflow by malicious kernel ++ * avoid overflow of the TX-OK Column (Closes: Bug #308922) ++ ++ -- Bernd Eckenfels Sat, 14 May 2005 01:48:45 +0200 ++ ++net-tools (1.60-10) unstable; urgency=low ++ ++ * typo fix in po/de.po for german arp command output (Closes: Bug #176151) ++ * added diagnostics messages to mii-tool.8 (Closes: Bug #239229) ++ * new version of nstrcmp (Closes: Bug #226503) ++ * enable EUI64 support ++ * stadanrds version 3.6.1 (no changes) ++ ++ -- Bernd Eckenfels Fri, 23 Apr 2004 00:57:20 +0200 ++ ++net-tools (1.60-9) unstable; urgency=medium ++ ++ * debian/changelog: fixed in last entry fixed bug from 197925 to 197924 ++ * include linux/sockios.h for SIOCGMIIPHY definition (new style) ++ which will fix MII reporting on 2.4 kernels. (Closes: Bug #133648) ++ NOTE: this will now require root to work, it will also not work on ++ older kernels. ++ * Rene Engelhard's patch to make AF X25 compile with 2.6 headers (Closes: Bug #223091) ++ ++ -- Bernd Eckenfels Mon, 29 Dec 2003 13:42:20 +0100 ++ ++net-tools (1.60-8) unstable; urgency=medium ++ ++ * lib/interface.c: backed off change which skipped reading ioctl ++ interfacelist, if _proc interfacelist was ok, which does not work, ++ because alias interfaces are only in ioctl list available. It is ++ also falling back to the original lib/nstrcml.c because the ++ comparision if : is present does not work. ++ (Closes: bug #197924, #197582, #197269) ++ * bumped standards version (no changes) ++ ++ -- Bernd Eckenfels Sat, 28 Jun 2003 02:56:38 +0200 ++ ++net-tools (1.60-7) unstable; urgency=low ++ ++ * interfaces.c: cvs version fixes Connectiva Bug #5711 (Closes: #149576) ++ from Eduardo Pereira Habkost ++ * netstat.c: cvs version adds support for tcp6,udp6,icmp6 protocols ++ * netstat.c: cvs version adds support for -4 or -6 cmd line shortcut ++ * netstat.c: cvs version adds fix for inode ++ signedness (Closes: #134600, #78932) ++ * ifconfig: removed -i from usage (Closes: #181528) ++ * make gcc 3.3 happy: added ull unsigned long long prefix to constant ++ * lib/ddp_gr.c+pathnames.h: first support for appletalk routing from cvs ++ * lib/eui64.c+hw.c+Makefile: forst support for new hw type from cvs ++ * lib/interface.c: cvs fix for column run-into (Closes: #161080) ++ * lib/irda.c,lib/ipx.c: cvs update ++ * lib/nstrcmp.c: new, faster version, fixes b-lookups for ifconfig ++ * hostanme.c: gcc 3.3 fix from cvs (not compiled in net-tools.deb) ++ * lib/interface: fixed memory globbering ++ (Closes: #135744, #149579, #185187) ++ ++ -- Bernd Eckenfels Thu, 12 Jun 2003 05:44:38 +0200 ++ ++net-tools (1.60-6) unstable; urgency=low ++ ++ * took route.c from upstream cvs: allow -6 and -4 option ++ * took statistics.c from upstream cvs: more complete netstat -S ++ * took README from upstream cvs: fix COPYING file title and removed ++ the line (Closes: #102139) ++ * took arp.c from upstream: fixed name "PUB", better not found handling, ++ implicite proxy arp mac changed from '*' to '', ++ usage line made shorter ++ * added mii-tool in control file (Closes: #172473) ++ * fixed description of binary multiple in man page (Closes: #182487) ++ * fixed interpunctation in netstat(8) (Closes: #191660) ++ * fixed compile warning in inet_sr.c by removing empty default: label in ++ switch ++ ++ -- Bernd Eckenfels Wed, 28 May 2003 22:35:12 +0200 ++ ++net-tools (1.60-5) unstable; urgency=low ++ ++ * thanks Andrew for the 4.1 NMU ++ * NMU: Apply nameif patch from Matt Domsch. (Closes: #178209) ++ * Fix FTB bug (string concatenation in gcc 3.3) (Closes: #194995) ++ * Fix segfault in mii-tool by using cvs version (Closes: #139027) ++ * fixed plural of authors to make lintian happy (I JOIN YOU :) ++ ++ -- Bernd Eckenfels Wed, 28 May 2003 22:04:14 +0200 ++ ++net-tools (1.60-4.1) unstable; urgency=low ++ ++ * NMU ++ * Apply nameif patch from Matt Domsch. (Closes: #178209) ++ ++ -- Andrew Suffield Wed, 9 Apr 2003 21:44:09 +0100 ++ ++net-tools (1.60-4) unstable; urgency=medium ++ ++ * fixed (upstream) spurious newline in ifconfig ++ Thanks Jonathen, Closes: Bug #109379 ++ * fixed SI-Units printout in ifconfig (Closes: Bug #110629, #97029, #100167) ++ * this is done by including lib/interfaces.c from upstream cvs ++ * also added ifconfig man page from upstream cvs ++ * fixed (upstream) man page about netstat's --interface opt. (Closes: Bug#120475) ++ ++ -- Bernd Eckenfels Sat, 24 Nov 2001 06:26:37 +0100 ++ ++net-tools (1.60-3) unstable; urgency=medium ++ ++ * fixed upstream error where counters in ifconfig/netstat -i are 0 ++ ++ -- Bernd Eckenfels Sat, 10 Nov 2001 18:12:13 +0100 ++ ++net-tools (1.60-2) unstable; urgency=low ++ ++ * Fixed the following bug: (Closes: #117837) ++ * inserted ifconfig.c from upstream cvs to do this ++ * bumped debian Standard 3.1.1 -> 3.5.6 and removed -g from linking ++ ++ -- Bernd Eckenfels Thu, 1 Nov 2001 02:51:33 +0100 ++ ++net-tools (1.60-1) unstable; urgency=low ++ ++ * New upstream ++ * Phil fixed the following Bugs upstream: (Closes: #91919, #93048, #90282) ++ ++ -- Bernd Eckenfels Mon, 16 Apr 2001 02:28:12 +0200 ++ ++net-tools (1.59-1) unstable; urgency=low ++ ++ * added Build Dependencies (closes bug: #89083) ++ * new upstream version ++ * removed dh_suidregister and a few comments from rules file ++ ++ -- Bernd Eckenfels Sun, 18 Mar 2001 03:00:33 +0100 ++ ++net-tools (1.58-2) unstable; urgency=low ++ ++ * backported ifconfig change from 1.59 to avoid closing socket too early ++ on some systems (depending on the protocols installed). ++ Closes Bug: #85688, #85743 ++ ++ -- Bernd Eckenfels Tue, 13 Feb 2001 01:39:59 +0100 ++ ++net-tools (1.58-1) unstable; urgency=low ++ ++ * new upstream version ++ * removed local man pages for now (Closes: bug #83894) ++ * install nameif in /sbin ++ ++ -- Bernd Eckenfels Sat, 10 Feb 2001 21:50:30 +0100 ++ ++net-tools (1.57-2) unstable; urgency=high ++ ++ * rebuild, this is believed to closes: #75825 ++ ++ -- Bernd Eckenfels Sat, 30 Dec 2000 22:43:01 +0100 ++ ++net-tools (1.57-1) unstable; urgency=low ++ ++ * new debian maintainer (thanks Anthony for the Work!) ++ * new upstream version ++ ++ -- Bernd Eckenfels Mon, 14 Aug 2000 02:40:13 +0200 ++ ++net-tools (1.54-3) unstable; urgency=low ++ ++ * Argggh. Don't use that horrible dh_installmanpages hack. (Closes: ++ Bug#68925, Bug#68879) ++ ++ -- Anthony Towns Sun, 13 Aug 2000 00:12:05 +1000 ++ ++net-tools (1.54-2) unstable; urgency=low ++ ++ * Reapply slattach patch from netbase 3.16-3. ++ ++ -- Anthony Towns Thu, 10 Aug 2000 11:32:58 +1000 ++ ++net-tools (1.54-1) unstable; urgency=low ++ ++ * Split from netbase. ++ ++ -- Anthony Towns Mon, 17 Jul 2000 07:34:12 +1000 ++ ++Local variables: ++mode: debian-changelog ++End: +--- net-tools-1.60.orig/debian/copyright ++++ net-tools-1.60/debian/copyright +@@ -0,0 +1,18 @@ ++This debian package is maintained by Bernd Eckenfels since ++Mon, 14 Aug 2000 02:42:13 +0200. Debian Informations will be uploaded ++upstream, too. ++ ++This package was debianized by Anthony Towns on ++Mon, 17 Jul 2000 07:34:12 +1000. It was originally part of the netbase ++package. ++ ++It was downloaded from http://www.tazenda.demon.co.uk/phil/net-tools/ ++ ++Upstream Authors: Phil Blundell , ++ Bernd Eckenfels ++ ++Copyright: ++ ++Distributed under the terms of the GNU General Public License version 2, ++as published by the Free Software Foundation. On Debian systems you can ++find a copy of this license in /usr/share/common-licenses/GPL. +--- net-tools-1.60.orig/debian/dirs ++++ net-tools-1.60/debian/dirs +@@ -0,0 +1 @@ ++usr/sbin +--- net-tools-1.60.orig/debian/config.make ++++ net-tools-1.60/debian/config.make +@@ -0,0 +1,36 @@ ++I18N=1 ++HAVE_AFUNIX=1 ++HAVE_AFINET=1 ++HAVE_AFINET6=1 ++HAVE_AFIPX=1 ++HAVE_AFATALK=1 ++HAVE_AFAX25=1 ++HAVE_AFNETROM=1 ++HAVE_AFROSE=1 ++HAVE_AFX25=1 ++HAVE_AFECONET=1 ++HAVE_AFDECnet=1 ++HAVE_AFASH=1 ++HAVE_HWETHER=1 ++HAVE_HWARC=1 ++HAVE_HWSLIP=1 ++HAVE_HWPPP=1 ++HAVE_HWTUNNEL=1 ++HAVE_HWSTRIP=1 ++HAVE_HWTR=1 ++HAVE_HWAX25=1 ++HAVE_HWROSE=1 ++HAVE_HWNETROM=1 ++HAVE_HWX25=1 ++HAVE_HWFR=1 ++HAVE_HWSIT=1 ++HAVE_HWFDDI=1 ++HAVE_HWHIPPI=1 ++HAVE_HWASH=1 ++HAVE_HWHDLCLAPB=1 ++HAVE_HWIRDA=1 ++HAVE_HWEC=1 ++HAVE_EUI64=1 ++HAVE_FW_MASQUERADE=1 ++HAVE_IP_TOOLS=1 ++HAVE_MII=1 +--- net-tools-1.60.orig/debian/control ++++ net-tools-1.60/debian/control +@@ -0,0 +1,21 @@ ++Source: net-tools ++Section: net ++Priority: important ++Build-Depends: debhelper, gettext ++Maintainer: Bernd Eckenfels ++Standards-Version: 3.6.1 ++ ++Package: net-tools ++Architecture: any ++Depends: ${shlibs:Depends} ++Replaces: netbase (<< 4.00), ja-trans (<= 0.8-2) ++Conflicts: ja-trans (<= 0.8-2) ++Description: The NET-3 networking toolkit ++ This package includes the important tools for controlling the network ++ subsystem of the Linux kernel. This includes arp, ifconfig, netstat, ++ rarp, nameif and route. Additionally, this package contains utilities ++ relating to particular network hardware types (plipconfig, slattach, ++ mii-tool) and advanced aspects of IP configuration (iptunnel, ipmaddr). ++ . ++ In the upstream package 'hostname' and friends are included. Those are ++ not installed by this package, since there is a special "hostname*.deb". +--- net-tools-1.60.orig/debian/rules ++++ net-tools-1.60/debian/rules +@@ -0,0 +1,74 @@ ++#!/usr/bin/make -f ++# Sample debian/rules that uses debhelper. ++# GNU copyright 1997 to 1999 by Joey Hess. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This is the debhelper compatability version to use. ++export DH_COMPAT=1 ++ ++configure: configure-stamp ++configure-stamp: ++ dh_testdir ++ touch configure-stamp ++ ++build: configure-stamp build-stamp ++build-stamp: ++ dh_testdir ++ cp debian/config.h config.h ++ cp debian/config.make config.make ++ $(MAKE) ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp configure-stamp ++ -$(MAKE) clobber ++ dh_clean ++ ++install: build ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ $(MAKE) update BASEDIR=`pwd`/debian/tmp ++ mv debian/tmp/sbin/arp debian/tmp/usr/sbin/arp ++ # we don't want man pages for domainname and friends... (yet) ++ rm -rf debian/tmp/usr/share/man/*/man1/ debian/tmp/usr/share/man/man1/ ++ # we don't install local manpages until policy is clear ++ rm -rf debian/tmp/usr/share/man/*_*/ ++ ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++# dh_testversion ++ dh_testdir ++ dh_testroot ++# dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++ dh_installcron ++# dh_installmanpages ++ dh_installinfo ++# dh_undocumented ++ dh_installchangelogs ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++# dh_makeshlibs ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol -- -isp ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- net-tools-1.60.orig/debian/config.h ++++ net-tools-1.60/debian/config.h +@@ -0,0 +1,75 @@ ++/* ++* config.h Automatically generated configuration includefile ++* ++* NET-TOOLS A collection of programs that form the base set of the ++* NET-3 Networking Distribution for the LINUX operating ++* system. ++* ++* DO NOT EDIT DIRECTLY ++* ++*/ ++ ++/* ++ * ++ * Internationalization ++ * ++ * The net-tools package has currently been translated to French, ++ * German and Brazilian Portugese. Other translations are, of ++ * course, welcome. Answer `n' here if you have no support for ++ * internationalization on your system. ++ * ++ */ ++#define I18N 1 ++ ++/* ++ * ++ * Protocol Families. ++ * ++ */ ++#define HAVE_AFUNIX 1 ++#define HAVE_AFINET 1 ++#define HAVE_AFINET6 1 ++#define HAVE_AFIPX 1 ++#define HAVE_AFATALK 1 ++#define HAVE_AFAX25 1 ++#define HAVE_AFNETROM 1 ++#define HAVE_AFROSE 1 ++#define HAVE_AFX25 1 ++#define HAVE_AFECONET 1 ++#define HAVE_AFDECnet 1 ++#define HAVE_AFASH 1 ++ ++/* ++ * ++ * Device Hardware types. ++ * ++ */ ++#define HAVE_HWETHER 1 ++#define HAVE_HWARC 1 ++#define HAVE_HWSLIP 1 ++#define HAVE_HWPPP 1 ++#define HAVE_HWTUNNEL 1 ++#define HAVE_HWSTRIP 1 ++#define HAVE_HWTR 1 ++#define HAVE_HWAX25 1 ++#define HAVE_HWROSE 1 ++#define HAVE_HWNETROM 1 ++#define HAVE_HWX25 1 ++#define HAVE_HWFR 1 ++#define HAVE_HWSIT 1 ++#define HAVE_HWFDDI 1 ++#define HAVE_HWHIPPI 1 ++#define HAVE_HWASH 1 ++#define HAVE_HWHDLCLAPB 1 ++#define HAVE_HWIRDA 1 ++#define HAVE_HWEC 1 ++#define HAVE_HWEUI64 1 ++ ++/* ++ * ++ * Other Features. ++ * ++ */ ++#define HAVE_FW_MASQUERADE 1 ++#define HAVE_IP_TOOLS 1 ++#define HAVE_MII 1 +--- net-tools-1.60.orig/debian/docs ++++ net-tools-1.60/debian/docs +@@ -0,0 +1,3 @@ ++README ++README.ipv6 ++TODO diff --git a/source/n/net-tools/slack-desc b/source/n/net-tools/slack-desc new file mode 100644 index 000000000..e49909da3 --- /dev/null +++ b/source/n/net-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +net-tools: net-tools (base Linux networking utilities) +net-tools: +net-tools: This is the core collection of tools such as "ifconfig" and "route" +net-tools: used to configure networking on Linux. You won't be able to do much +net-tools: networking without this package and the network-scripts. +net-tools: +net-tools: The net-tools package was maintained for many years by Phil Blundell +net-tools: and Bernd Eckenfels. +net-tools: +net-tools: +net-tools: diff --git a/source/n/netatalk/afppasswd b/source/n/netatalk/afppasswd new file mode 100644 index 000000000..e69de29bb diff --git a/source/n/netatalk/doinst.sh b/source/n/netatalk/doinst.sh new file mode 100644 index 000000000..0f07997d0 --- /dev/null +++ b/source/n/netatalk/doinst.sh @@ -0,0 +1,22 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.atalk.new: +if [ -e etc/rc.d/rc.atalk ]; then + cp -a etc/rc.d/rc.atalk etc/rc.d/rc.atalk.new.incoming + cat etc/rc.d/rc.atalk.new > etc/rc.d/rc.atalk.new.incoming + mv etc/rc.d/rc.atalk.new.incoming etc/rc.d/rc.atalk.new +fi + +config etc/rc.d/rc.atalk.new +rm -f etc/rc.d/rc.atalk.new + diff --git a/source/n/netatalk/netatalk-2.0.4-afpdconf.diff b/source/n/netatalk/netatalk-2.0.4-afpdconf.diff new file mode 100644 index 000000000..b2cf5df6f --- /dev/null +++ b/source/n/netatalk/netatalk-2.0.4-afpdconf.diff @@ -0,0 +1,10 @@ +diff -Nur netatalk-2.0.4.orig/config/afpd.conf.tmpl netatalk-2.0.4.new/config/afpd.conf.tmpl +--- netatalk-2.0.4.orig/config/afpd.conf.tmpl 2009-04-30 04:30:13.000000000 -0500 ++++ netatalk-2.0.4.new/config/afpd.conf.tmpl 2009-05-30 23:19:39.663201236 -0500 +@@ -212,4 +212,5 @@ + # "special" -notcp -defaultvol -systemvol + # + # default: +-# - -transall -uamlist uams_dhx.so,uams_dhx2.so -nosavepassword ++# Disallow clear-text transmission of passwords and DHX version 1 ++- -transall -uamlist uams_guest.so,uams_dhx2.so -nosavepassword diff --git a/source/n/netatalk/netatalk-2.0.4-without_xfs.diff b/source/n/netatalk/netatalk-2.0.4-without_xfs.diff new file mode 100644 index 000000000..75f97a038 --- /dev/null +++ b/source/n/netatalk/netatalk-2.0.4-without_xfs.diff @@ -0,0 +1,22 @@ +diff -Nur netatalk-2.0.4.orig/configure.in netatalk-2.0.4.new/configure.in +--- netatalk-2.0.4.orig/configure.in 2009-03-29 02:23:20.000000000 -0500 ++++ netatalk-2.0.4.new/configure.in 2009-05-30 23:11:29.556016349 -0500 +@@ -692,6 +692,10 @@ + # AC_MSG_RESULT([enabling quotactl wrapper]) + # ) + ++AC_ARG_WITH([xfs], ++ AS_HELP_STRING([--without-xfs], [Build without XFS filesystem quota support])) ++ ++if test "x$with_xfs" != "xno"; then + # For quotas on Linux XFS filesystems + + # For linux > 2.5.56 +@@ -699,6 +703,7 @@ + [AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h) + AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h)] + ) ++fi + + + dnl ----- as far as I can tell, dbtob always does the wrong thing diff --git a/source/n/netatalk/netatalk.SlackBuild b/source/n/netatalk/netatalk.SlackBuild new file mode 100755 index 000000000..1bffea9f0 --- /dev/null +++ b/source/n/netatalk/netatalk.SlackBuild @@ -0,0 +1,134 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.0.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netatalk +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netatalk-$VERSION +tar xvf $CWD/netatalk-$VERSION.tar.xz || exit 1 +cd netatalk-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fixup some paths in etc2ps.sh +zcat $CWD/netatalk.etc2ps.diff.gz | patch -p1 || exit 1 + +# Allow building without xfs quota support +zcat $CWD/netatalk-2.0.4-without_xfs.diff.gz | patch -p1 || exit 1 + +# Disallow transmission of passwords via cleartext and with old version 1 of +# the Diffie-Hellman protocol +zcat $CWD/netatalk-2.0.4-afpdconf.diff.gz | patch -p1 || exit 1 + +autoreconf -vif +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --libexecdir=/usr/sbin \ + --localstatedir=/var \ + --disable-static \ + --with-shadow \ + --without-xfs \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/* + +# This is normally installed setuid root, but I'm not 100% sure I trust it yet. +# I see it uses strcpy() in a few places... +chmod 755 $PKG/usr/bin/afppasswd + +# Install the afppasswd config file +mkdir -p $PKG/etc/netatalk +cat $CWD/afppasswd > $PKG/etc/netatalk/afppasswd + +# Install an init script +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.atalk.new > $PKG/etc/rc.d/rc.atalk.new +chmod 644 $PKG/etc/rc.d/rc.atalk.new + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +( cd $PKG/etc/netatalk + for file in AppleVolumes.default AppleVolumes.system afpd.conf afppasswd atalkd.conf netatalk.conf papd.conf ; do + mv $file ${file}.new + echo "config etc/netatalk/${file}.new" >> $PKG/install/doinst.sh + done +) +echo "rm -f etc/netatalk/afppasswd.new" >> $PKG/install/doinst.sh + +mkdir -p $PKG/usr/doc/netatalk-$VERSION +cp -a \ + CONTRIBUTORS COPYING COPYRIGHT NEWS README TODO VERSION doc/* \ + $PKG/usr/doc/netatalk-$VERSION +# -1, Redundant +rm -rf $PKG/usr/doc/netatalk-$VERSION/doc/Makefile* \ + $PKG/usr/doc/netatalk-$VERSION/doc/htmldocs \ + $PKG/usr/doc/netatalk-$VERSION/doc/*.pdf + +# "make install" creates this directory with chmod 0777 +# I'd rather use 755, but I'll assume since this is a +# new directory that it is needed for something. This +# will help it a bit anyway... +chmod 1777 $PKG/var/spool/netatalk +# If anyone can confirm that 755 would still work let me know. + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/netatalk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netatalk/netatalk.etc2ps.diff b/source/n/netatalk/netatalk.etc2ps.diff new file mode 100644 index 000000000..f326415a7 --- /dev/null +++ b/source/n/netatalk/netatalk.etc2ps.diff @@ -0,0 +1,20 @@ +--- ./etc/psf/etc2ps.sh.orig 2004-10-26 20:28:38.000000000 -0700 ++++ ./etc/psf/etc2ps.sh 2004-10-28 11:43:19.000000000 -0700 +@@ -9,14 +9,14 @@ + # tag in the case. + # + +-DVIPSPATH=/usr/local/tex/bin +-DVIPS=/usr/local/tex/bin/dvips ++DVIPSPATH=/usr/share/texmf/bin ++DVIPS=/usr/share/texmf/bin/dvips + DVIPSARGS="-f -q" + + TROFF2PS=/usr/local/psroff/troff2/troff2ps + TROFF2PSARGS="-Z -O-.10" + +-PATH=/usr/bin:$DVIPSPATH; export PATH ++PATH=$PATH:$DVIPSPATH; export PATH + + case $1 in + diff --git a/source/n/netatalk/rc.atalk.new b/source/n/netatalk/rc.atalk.new new file mode 100644 index 000000000..ce490345f --- /dev/null +++ b/source/n/netatalk/rc.atalk.new @@ -0,0 +1,56 @@ +# +# AppleTalk daemons. Make sure not to start atalkd in the background: +# its data structures must have time to stablize before running the +# other processes. +# + +netatalk_start() { + echo -n 'starting appletalk daemons: ' + if [ -x /usr/sbin/atalkd ]; then + echo -n ' atalkd' + /usr/sbin/atalkd + fi + if [ -x /usr/bin/nbprgstr ]; then + echo -n ' nbprgstr' + /usr/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:Workstation + /usr/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:netatalk + fi + if [ -x /usr/sbin/papd ]; then + echo -n ' papd' + /usr/sbin/papd + fi + if [ -x /usr/sbin/afpd ]; then + echo -n ' afpd' + /usr/sbin/afpd + fi + if [ -x /usr/sbin/timelord ]; then + echo -n ' timelord' + /usr/sbin/timelord + fi + echo +} + +netatalk_stop() { + killall atalkd nbprgstr papd afpd timelord 2> /dev/null +} + +netatalk_restart() { + netatalk_stop + sleep 1 + netatalk_start +} + +case "$1" in +'start') + netatalk_start + ;; +'stop') + netatalk_stop + ;; +'restart') + netatalk_restart + ;; +*) + netatalk_start +esac + diff --git a/source/n/netatalk/slack-desc b/source/n/netatalk/slack-desc new file mode 100644 index 000000000..8c03df863 --- /dev/null +++ b/source/n/netatalk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netatalk: netatalk (Appletalk file and print server) +netatalk: +netatalk: Netatalk is an Appletalk file and print server for Linux. Using +netatalk: Netatalk, Macintosh computers on your local network can mount Linux +netatalk: volumes as if they were standard Appletalk network drives, and can +netatalk: print to the Linux box's printer as if it were a network printer +netatalk: supporting PostScript. +netatalk: +netatalk: Netatalk was originally written by the Research Systems Unix Group at +netatalk: The University of Michigan, and is maintained by the Netatalk Team. +netatalk: diff --git a/source/n/netdate/netdate.SlackBuild b/source/n/netdate/netdate.SlackBuild new file mode 100755 index 000000000..3d13e75e7 --- /dev/null +++ b/source/n/netdate/netdate.SlackBuild @@ -0,0 +1,69 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=bsd4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netdate +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netdate +tar xvf $CWD/netdate.tar.gz || exit 1 +cd netdate || exit 1 + +zcat $CWD/netdate.diff.gz | patch -p1 --backup || exit +zcat $CWD/netdate.diff2.gz | patch -p1 --backup || exit + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 + +strip netdate +mkdir -p $PKG/usr/sbin +cat netdate > $PKG/usr/sbin/netdate +chmod 755 $PKG/usr/sbin/netdate + +mkdir -p $PKG/usr/man/man8 +cat netdate.8 | gzip -9c > $PKG/usr/man/man8/netdate.8.gz + +mkdir -p $PKG/usr/doc/netdate +cp -a COPYRIGHT $PKG/usr/doc/netdate + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/netdate-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netdate/netdate.diff b/source/n/netdate/netdate.diff new file mode 100644 index 000000000..63144afa9 --- /dev/null +++ b/source/n/netdate/netdate.diff @@ -0,0 +1,272 @@ +--- ./Makefile.orig Wed Aug 14 12:19:54 1996 ++++ ./Makefile Wed Aug 4 19:50:55 1999 +@@ -1,14 +1,20 @@ +-LDFLAGS += -N +-CFLAGS = $(O) -Wall ++ ++CC = gcc ++ ++WARNINGS=-Wall -W -Wpointer-arith -Wbad-function-cast -Wcast-qual \ ++ -Wstrict-prototypes -Wmissing-prototypes \ ++ -Wmissing-declarations -Wnested-externs -Winline -Wcast-align ++ ++CFLAGS = -g $(WARNINGS) + + all: netdate + + netdate: netdate.o + + install: netdate +- install -s -m 0755 netdate /sbin/netdate +- install -m 0644 netdate.8 /usr/man/man8 ++ install -s netdate /usr/sbin/ ++ install -m 0644 netdate.8 /usr/man/man8/ + + clean: +- rm -f netdate *.o core ++ rm -f netdate *~ *.o core + +--- ./netdate.8.orig Wed Aug 14 12:19:54 1996 ++++ ./netdate.8 Wed Aug 4 19:50:55 1999 +@@ -53,40 +53,41 @@ + if that host supplies it. + .SH EXAMPLE + The most accurate hosts are named first in each example. +-Some such call on \fInetdate\fP should be put at the end of \fB/etc/rc.local\fP, ++Some such call on \fInetdate\fP should be put at the end of ++\fB/etc/rc.d/rc.local\fP, + so that the time will be set properly on system startup. +-It is also useful to have a shell script, e.g., \fB/etc/timehosts\fP, ++It is also useful to have a shell script, e.g., \fB/sbin/timehosts\fP, + which contains a call on \fInetdate\fP with arguments appropriate + to the local system, so that it is easy to set the time manually. +-.SH "netdate -l 30 udp dcn\-gateway tcp neighbor" +-\fIDcn\-gateway\fP is a hypothetical host which usually keeps time ++.SH "netdate -l 30 udp dcn\-gate tcp neighbor" ++\fIDcn\-gate\fP is a hypothetical host which usually keeps time + accurate to within milliseconds of Coordinated Universal Time, + but may occasionally be eight hours off. + \fINeighbor\fP is a neighbor of the local host which keeps time + with moderate accuracy. +-The time will be set to that of \fIdcn\-gateway\fP if that and \fIneighbor\fP ++The time will be set to that of \fIdcn\-gate\fP if that and \fIneighbor\fP + agree to within thirty seconds, else it will not be set at all. + This is almost good enough for most circumstances, but won't do + when the local host's time is known to be wrong (e.g., after + a long downtime or a bad crash) and must be set to something. + If one of the hosts named is inaccurate or not responding, there is a problem. +-.SH "netdate -l 30 udp dcn\-gateway tcp neighbor neighbor2" ++.SH "netdate -l 30 udp dcn\-gate tcp neighbor neighbor2" + Only two of the three hosts named must agree on the time. + The time will still be set (to that of the first neighbor), +-even if \fIdcn\-gateway\fP is far off as long as the two neighbors agree. ++even if \fIdcn\-gate\fP is far off as long as the two neighbors agree. + This is probably good enough for most cases. + One can arbitrarily gerrymander the vote for more insurance + (and less clarity), as in the following example. +-.SH "netdate\ udp\ dcn\-gateway\ dcn1\ tcp\ bbn\-unix\ localhost\ neighbor" ++.SH "netdate\ udp\ dcn\-gate\ dcn1\ tcp\ bbn\-unix\ localhost\ neighbor" + Here \fIdcn1\fP and \fIbbn\-unix\fP are more hypothetical very accurate + timekeepers, at least one of which keeps time independently from +-\fIdcn\-gateway\fP, one hopes. ++\fIdcn\-gate\fP, one hopes. + It is very likely that the time will be set to that one of those three + very accurate hosts, as long as at least two of them agree, or at least + one of them agrees with the neighbor or the local host's time. + If all the foreign hosts disagree, the time will not be set, + since \fBlocalhost\fP will be chosen as best. +-.SH "netdate\ \-l\ 3\ localhost\ localhost\ udp\ dcn\-gateway\ dcn1\ tcp\ bbn\-unix" ++.SH "netdate\ \-l\ 3\ localhost\ localhost\ udp\ dcn\-gate\ dcn1\ tcp\ bbn\-unix" + This example gives \fBlocalhost\fP two votes and declares it to usually + have the most accurate time. + All three foreign hosts must agree within three seconds +@@ -95,9 +96,9 @@ + Thus the time will be set only if it really needs to be. + .SH FILES + .nf +-/etc/inet/services for the time service port number +-/etc/inet/protocols for the protocol numbers +-/etc/wtmp to record time-setting ++/etc/services for the time service port number ++/etc/protocols for the protocol numbers ++/var/log/wtmp to record time-setting + .SH SEE ALSO + ARPANET Request for Comments 868, gettimeofday(2), date(1), + WWV (USA): +--- ./netdate.c.orig Wed Aug 14 12:19:54 1996 ++++ ./netdate.c Wed Aug 4 19:50:55 1999 +@@ -1,4 +1,4 @@ +-/* ++/* + NO WARRANTY + + THERE IS NO WARRANTY FOR THIS PROGRAM, TO THE EXTENT PERMITTED BY +@@ -8,8 +8,8 @@ + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +- ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +- ++ ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ++ + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL + ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +@@ -18,8 +18,8 @@ + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +- SUCH DAMAGES. +- ++ SUCH DAMAGES. ++ + */ + + #ifndef lint +@@ -42,17 +42,24 @@ + #include + #include + #include +-#define WTMP "/etc/wtmp" ++#define WTMP "/var/log/wtmp" + ++#ifndef __GLIBC__ + struct utmp wtmp[2] = { + { 0, 0, "|", "", 0, "", "", 0}, + { 0, 0, "{", "", 0, "", "", 0} + }; ++#else ++struct utmp wtmp[2] = { ++ { 0, 0, "|", "", "", "", {0, 0}, 0, {0, 0}, {0, 0, 0, 0}, "" }, ++ { 0, 0, "|", "", "", "", {0, 0}, 0, {0, 0}, {0, 0, 0, 0}, "" }, ++}; ++#endif + + char *service = "time"; + char *defaultproto = "udp"; + /* difference between 1900 (RFC868) and 1970 (UNIX) base times */ +-#define NETBASE 2208988800 ++#define NETBASE 2208988800u + + long limit = 5; + #define MAXHOSTS 20 +@@ -78,7 +85,6 @@ + + void usage (void); + int setproto (char *, struct timehost *); +-void main (int, char **); + int getdiff (struct timehost *); + int getdate (struct timehost *); + void printit (struct timehost *); +@@ -98,7 +104,7 @@ + fprintf (stderr, + "usage: %s [ -l limit ] host ...\n" + "%s tries to find a group of at least two hosts whose times agree\n" +-"within %d seconds, and sets the time to that of the first host in the group.\n", ++"within %ld seconds, and sets the time to that of the first host in the group.\n", + whoami, whoami, limit); + fprintf (stderr, + "The limit may be set with the -l option. Setting it to zero (or supplying\n" +@@ -112,7 +118,7 @@ + int verbose = 0; + int debug = 0; + +-void ++int + main (int argc, char **argv) + { + extern char *rindex(); +@@ -155,7 +161,7 @@ + if (*argv == NULL) + usage(); + if (debug) +- fprintf (stderr, "%s: rdate %d; verbose %d; limit %d.\n", ++ fprintf (stderr, "%s: rdate %d; verbose %d; limit %ld.\n", + whoami, rdate, verbose, limit); + for (thishost = &timehosts[0]; *argv != NULL; argv++) { + if (thishost >= tophost) { +@@ -189,7 +195,7 @@ + exit(1); + if ((thishost = mungediffs(thishost)) == NULL) { + fprintf (stderr, +- "No two hosts agree on the time within %d seconds\n", ++ "No two hosts agree on the time within %ld seconds\n", + limit); + exit(1); + } +@@ -258,7 +264,7 @@ + and return the first of that group. If no two hosts agree, + give up. + */ +- ++ + struct timehost * + mungediffs(struct timehost *tophost) + { +@@ -284,7 +290,7 @@ + } + } + if (verbose) { +- printf (" %d\n", thishost -> count); ++ printf (" %ld\n", thishost -> count); + (void)fflush(stdout); + } + if (thishost -> count > goodhost -> count) +@@ -312,13 +318,13 @@ + && abs((thishost -> then.tv_sec - now.tv_sec) - thishost -> difference) + > limit) { + fprintf (stderr, +- "Time from %s has varied more than the limit of %d seconds\n", ++ "Time from %s has varied more than the limit of %ld seconds\n", + thishost -> hostname, limit); + printit(thishost); + exit(1); + } + if (settimeofday (&thishost -> then, (struct timezone *)0) == -1) +- perror ("netdate; settimeofday"); ++ perror ("netdate: settimeofday"); + else { + int wf; + if ((wf = open(WTMP, 1)) >= 0) { +@@ -348,12 +354,12 @@ + (void)sprintf(newstring, "%s ", thishost -> hostname); + tvsub(&diff, &thishost -> then, &now); + printdiff(&newstring[strlen(newstring)], &diff); +- printf ("%-24s %.19s.%03d", newstring, ++ printf ("%-24s %.19s.%03ld", newstring, + ctime((unsigned long *)&thishost -> then.tv_sec), + thishost -> then.tv_usec / 1000); + if (verbose) { + tp = localtime((unsigned long *)&thishost -> acked); +- printf(" at %02d:%02d:%02d.%03d", ++ printf(" at %02d:%02d:%02d.%03ld", + tp -> tm_hour, tp -> tm_min, tp -> tm_sec, + thishost -> acked.tv_usec / 1000); + tvsub(&diff, &thishost -> acked, &thishost -> asked); +@@ -446,20 +452,23 @@ + perror("netdate: connect"); + goto bad; + } ++ + if (thishost -> socktype == SOCK_DGRAM) { +- if (write (s, "\n", 1) < 0) { ++ if (send (s, "\n", 1, 0) < 0) { + perror ("netdate: send"); + goto bad; + } + } +- nread = read (s, (char *)&thishost -> then, sizeof (thishost -> then)); ++ nread = recv (s, (char *)&thishost -> then, sizeof (thishost -> then), 0); + (void)gettimeofday (&thishost -> acked, (struct timezone *)0); + (void)alarm(0); + now = thishost -> acked; +- if (nread < sizeof(thishost -> then.tv_sec)) { ++ ++ if (nread != 4) { + perror ("netdate: read"); + goto bad; + } ++ + /* RFC 868 only allows seconds, but what the hell */ + if (nread == sizeof(thishost -> then)) + thishost -> then.tv_usec = ntohl(thishost -> then.tv_usec); diff --git a/source/n/netdate/netdate.diff2 b/source/n/netdate/netdate.diff2 new file mode 100644 index 000000000..cd13be8fb --- /dev/null +++ b/source/n/netdate/netdate.diff2 @@ -0,0 +1,10 @@ +--- ./netdate.c.orig Sun Feb 25 18:34:37 2001 ++++ ./netdate.c Sun Feb 25 18:34:46 2001 +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #include + diff --git a/source/n/netdate/slack-desc b/source/n/netdate/slack-desc new file mode 100644 index 000000000..c329eb333 --- /dev/null +++ b/source/n/netdate/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netdate: netdate (simple network time utility) +netdate: +netdate: Netdate takes a list of names of Internet hosts as arguments, selects +netdate: the one which supplies the best time, and sets the system time +netdate: accordingly. The invoker must be the super-user for the time to be +netdate: set. Protocol names (either udp or tcp) may be interspersed with the +netdate: host names, and determine the protocol which will be used to connect +netdate: to the hosts whose names follow, up to the next protocol name or the +netdate: end of the arguments. The default protocol is udp. +netdate: +netdate: These days, "ntpdate" is probably a better choice. diff --git a/source/n/netkit-bootparamd/netkit-bootparamd.SlackBuild b/source/n/netkit-bootparamd/netkit-bootparamd.SlackBuild new file mode 100755 index 000000000..2beca1246 --- /dev/null +++ b/source/n/netkit-bootparamd/netkit-bootparamd.SlackBuild @@ -0,0 +1,63 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-bootparamd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-bootparamd-$VERSION +tar xzvf $CWD/netkit-bootparamd-$VERSION.tar.gz || exit 1 +cd netkit-bootparamd-$VERSION +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +cd rpc.bootparamd +strip bootparamd callbootd +mkdir -p $PKG/usr/{bin,sbin} +cat bootparamd > $PKG/usr/sbin/rpc.bootparamd +chmod 755 $PKG/usr/sbin/rpc.bootparamd +cat callbootd > $PKG/usr/bin/callbootd +chmod 755 $PKG/usr/bin/callbootd +mkdir -p $PKG/usr/man/man8 +gzip -9c bootparamd.8 > $PKG/usr/man/man8/rpc.bootparamd.8.gz +mkdir -p $PKG/usr/doc/netkit-bootparamd-$VERSION +cp -a README $PKG/usr/doc/netkit-bootparamd-$VERSION +chown root:root $PKG/usr/doc/netkit-bootparamd-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-bootparamd-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-bootparamd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-bootparamd/slack-desc b/source/n/netkit-bootparamd/slack-desc new file mode 100644 index 000000000..985aab132 --- /dev/null +++ b/source/n/netkit-bootparamd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-bootparamd: netkit-bootparamd (boot parameter server) +netkit-bootparamd: +netkit-bootparamd: This package provides rpc.bootparamd and callbootd, programs used to +netkit-bootparamd: provide information to diskless clients so they can boot. It is +netkit-bootparamd: used primarily to allow a Linux server to boot a Sun machine using +netkit-bootparamd: SunOS bootparam. +netkit-bootparamd: +netkit-bootparamd: netkit-bootparamd was written by Klas Heggemann. +netkit-bootparamd: +netkit-bootparamd: +netkit-bootparamd: diff --git a/source/n/netkit-ftp/netkit-ftp.SlackBuild b/source/n/netkit-ftp/netkit-ftp.SlackBuild new file mode 100755 index 000000000..b97888bbc --- /dev/null +++ b/source/n/netkit-ftp/netkit-ftp.SlackBuild @@ -0,0 +1,63 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-ftp + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-ftp-$VERSION +tar xzvf $CWD/netkit-ftp-$VERSION.tar.gz || exit 1 +cd netkit-ftp-$VERSION +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +cd ftp +strip ftp +mkdir -p $PKG/bin +cat ftp > $PKG/bin/ftp +chmod 755 $PKG/bin/ftp +mkdir -p $PKG/usr/man/man{1,5} +cat ftp.1 | gzip -9c > $PKG/usr/man/man1/ftp.1.gz +cat netrc.5 | gzip -9c > $PKG/usr/man/man5/netrc.5.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-ftp-$VERSION +cp -a README $PKG/usr/doc/netkit-ftp-$VERSION +chown root:root $PKG/usr/doc/netkit-ftp-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-ftp-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-ftp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-ftp/slack-desc b/source/n/netkit-ftp/slack-desc new file mode 100644 index 000000000..a201e8080 --- /dev/null +++ b/source/n/netkit-ftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-ftp: netkit-ftp (the old BSD FTP client) +netkit-ftp: +netkit-ftp: Ftp is the user interface to the Internet standard File Transfer +netkit-ftp: Protocol. The program allows a user to transfer files to and from a +netkit-ftp: remote network site. +netkit-ftp: +netkit-ftp: This is a program of mostly historical value. For a more powerful +netkit-ftp: command-line FTP client, look at something like lftp. +netkit-ftp: +netkit-ftp: +netkit-ftp: diff --git a/source/n/netkit-ntalk/netkit-ntalk-0.11.diff b/source/n/netkit-ntalk/netkit-ntalk-0.11.diff new file mode 100644 index 000000000..936ce5cc9 --- /dev/null +++ b/source/n/netkit-ntalk/netkit-ntalk-0.11.diff @@ -0,0 +1,64 @@ +--- ./talkd/talkd.c.orig Fri Nov 27 05:40:46 1998 ++++ ./talkd/talkd.c Wed Sep 15 21:30:24 1999 +@@ -67,6 +67,9 @@ + #define TIMEOUT 30 + #define MAXIDLE 120 + ++#if !defined(MAXHOSTNAMELEN) ++#define MAXHOSTNAMELEN 64 ++#endif + char ourhostname[MAXHOSTNAMELEN]; + + static time_t lastmsgtime; +--- ./talkd/print.c.orig Fri Nov 27 01:58:47 1998 ++++ ./talkd/print.c Wed Sep 15 21:30:24 1999 +@@ -51,6 +51,7 @@ + #include + #include + #include ++#include + #include "prot_talkd.h" + #include "proto.h" + +@@ -145,7 +146,7 @@ + tt[sizeof(tt)-1]=0; + + snprintf(buf, sizeof(buf), +- "%s: %s: id %lu, l_user %s, r_user %s, r_tty %s\n", ++ "%s: %s: id %u, l_user %s, r_user %s, r_tty %s\n", + cp, tp, mp->id_num, lu, ru, tt); + write(logfd, buf, strlen(buf)); + } +@@ -185,7 +186,7 @@ + size_t i; + char tmp[4], buf[128]; + if (!badpackets) return; +- snprintf(buf, sizeof(buf), "From: %s [%lu]", ++ snprintf(buf, sizeof(buf), "From: %s [%u]", + inet_ntoa(from->sin_addr), from->sin_addr.s_addr); + write(packfd, buf, strlen(buf)); + for (i=0; i + #include + #include ++#include + #include + #include + #include +--- ./talkd/table.c.orig Sun Feb 25 18:46:23 2001 ++++ ./talkd/table.c Sun Feb 25 18:46:34 2001 +@@ -47,6 +47,7 @@ + */ + #include + #include ++#include + #include + #include + #include diff --git a/source/n/netkit-ntalk/netkit-ntalk.SlackBuild b/source/n/netkit-ntalk/netkit-ntalk.SlackBuild new file mode 100755 index 000000000..9bc9937d5 --- /dev/null +++ b/source/n/netkit-ntalk/netkit-ntalk.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-ntalk + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-ntalk-$VERSION +tar xzvf $CWD/netkit-ntalk-$VERSION.tar.gz +cd netkit-ntalk-$VERSION +chown -R root:root . +zcat $CWD/netkit-ntalk-0.17.diff.gz | patch -p1 --verbose || exit +zcat $CWD/ntalk-0.17-slackware-alt-talkd.patch.gz | patch -p1 --verbose || exit +./configure --prefix=/usr +make || exit +cd talk +strip talk +mkdir -p $PKG/usr/bin +cat talk > $PKG/usr/bin/talk +chmod 755 $PKG/usr/bin/talk +mkdir -p $PKG/usr/man/man{1,8} +cat talk.1 | gzip -9c > $PKG/usr/man/man1/talk.1.gz +cd ../talkd +strip talkd +mkdir -p $PKG/usr/sbin +cat talkd > $PKG/usr/sbin/in.talkd +chmod 755 $PKG/usr/sbin/in.talkd +cat talkd.8 | gzip -9c > $PKG/usr/man/man8/in.talkd.8.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-ntalk-$VERSION +cp -a README $PKG/usr/doc/netkit-ntalk-$VERSION +chown root:root $PKG/usr/doc/netkit-ntalk-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-ntalk-$VERSION/* + +# Include old version of 'talk', which works better with +# 8-bit character sets: +cd $TMP +rm -rf netkit-ntalk-0.11 +tar xzvf $CWD/netkit-ntalk-0.11.tar.gz +cd netkit-ntalk-0.11 +chown -R root:root . +zcat $CWD/netkit-ntalk-0.11.diff.gz | patch -p0 --backup || exit +./configure --prefix=/usr +make SUB=talk # compiling talkd throws errors +cd talk +strip talk +mkdir -p $PKG/usr/bin +cat talk > $PKG/usr/bin/talk-0.11 +chmod 755 $PKG/usr/bin/talk-0.11 + +( cd $PKG/usr/sbin ; rm -rf in.ntalkd ) +( cd $PKG/usr/sbin ; ln -sf in.talkd in.ntalkd ) +( cd $PKG/usr/bin ; rm -rf ntalk ) +( cd $PKG/usr/bin ; ln -sf talk ntalk ) + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-ntalk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch b/source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch new file mode 100644 index 000000000..a26c4e6b7 --- /dev/null +++ b/source/n/netkit-ntalk/ntalk-0.17-slackware-alt-talkd.patch @@ -0,0 +1,31 @@ +--- netkit-ntalk-0.17/talkd/talkd.c.orig 1999-09-29 02:04:15 +0400 ++++ netkit-ntalk-0.17/talkd/talkd.c 2004-09-05 19:20:50 +0400 +@@ -68,6 +68,7 @@ char talkd_rcsid[] = + + #define TIMEOUT 30 + #define MAXIDLE 120 ++#define MINUDPSRCPORT 1024 + + #if !defined(MAXHOSTNAMELEN) + #define MAXHOSTNAMELEN 64 +@@ -167,6 +168,7 @@ do_one_packet(void) + struct sockaddr_in sn; + int cc, i, ok; + socklen_t addrlen; ++ int theirport; + + addrlen = sizeof(sn); + cc = recvfrom(0, inbuf, sizeof(inbuf), 0, +@@ -194,6 +196,12 @@ do_one_packet(void) + return; + } + ++ theirport = ntohs(sn.sin_port); ++ if (theirport < MINUDPSRCPORT) { ++ syslog(LOG_WARNING, "%d: bad port", theirport); ++ return; ++ } ++ + /* + * If we get here we have an address we can reply to, although + * it may not be good for much. If possible, reply to it, because diff --git a/source/n/netkit-ntalk/slack-desc b/source/n/netkit-ntalk/slack-desc new file mode 100644 index 000000000..97b9d8c72 --- /dev/null +++ b/source/n/netkit-ntalk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-ntalk: netkit-ntalk (talk client and talkd daemon) +netkit-ntalk: +netkit-ntalk: talk and talkd are the BSD communication client server system for +netkit-ntalk: the command line. "talk" is the client that asks another user to +netkit-ntalk: respond; and "in.talkd" is the server that notifies a user that +netkit-ntalk: someone else wants to initiate a conversation. +netkit-ntalk: +netkit-ntalk: The talk command appeared in 4.2BSD. +netkit-ntalk: +netkit-ntalk: +netkit-ntalk: diff --git a/source/n/netkit-routed/netkit-routed-0.17.diff b/source/n/netkit-routed/netkit-routed-0.17.diff new file mode 100644 index 000000000..30298efbd --- /dev/null +++ b/source/n/netkit-routed/netkit-routed-0.17.diff @@ -0,0 +1,20 @@ +--- ./routed/trace.c.orig Sun Feb 25 18:14:10 2001 ++++ ./routed/trace.c Sun Feb 25 18:14:24 2001 +@@ -50,6 +50,7 @@ + #include + #include + #include "pathnames.h" ++#include + + #define NRECORDS 50 /* size of circular trace buffer */ + +--- ./routed/main.c.orig Sun Feb 25 18:10:48 2001 ++++ ./routed/main.c Sun Feb 25 18:11:14 2001 +@@ -43,6 +43,7 @@ + "$Id: main.c,v 1.17 2000/12/23 18:07:39 jr Exp $"; + + #include "../version.h" ++#include + + /* + * Routing Table Management Daemon diff --git a/source/n/netkit-routed/netkit-routed.SlackBuild b/source/n/netkit-routed/netkit-routed.SlackBuild new file mode 100755 index 000000000..326aa5ec1 --- /dev/null +++ b/source/n/netkit-routed/netkit-routed.SlackBuild @@ -0,0 +1,65 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-routed + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-routed-$VERSION +tar xzvf $CWD/netkit-routed-$VERSION.tar.gz +cd netkit-routed-$VERSION +chown -R root:root . +zcat $CWD/routed.18.candidate.final.patch.gz | patch -p1 --backup --verbose -E --suffix=.orig || exit 1 +zcat $CWD/netkit-routed-0.17.diff.gz | patch -p1 --backup --verbose -E --suffix=.orig || exit 1 +./configure --prefix=/usr +make || exit 1 +strip --strip-unneeded ripquery/ripquery routed/routed +mkdir -p $PKG/usr/sbin +cat routed/routed > $PKG/usr/sbin/routed +chmod 755 $PKG/usr/sbin/routed +mkdir -p $PKG/usr/man/man8 +cat routed/routed.8 | gzip -9c > $PKG/usr/man/man8/routed.8.gz +cat ripquery/ripquery > $PKG/usr/sbin/ripquery +chmod 755 $PKG/usr/sbin/ripquery +cat ripquery/ripquery.8 | gzip -9c > $PKG/usr/man/man8/ripquery.8.gz +mkdir -p $PKG/usr/doc/netkit-routed-$VERSION +cp -a README $PKG/usr/doc/netkit-routed-$VERSION +chown root:root $PKG/usr/doc/netkit-routed-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-routed-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-routed-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-routed/routed.18.candidate.final.patch b/source/n/netkit-routed/routed.18.candidate.final.patch new file mode 100644 index 000000000..dc403bd7f --- /dev/null +++ b/source/n/netkit-routed/routed.18.candidate.final.patch @@ -0,0 +1,704 @@ +diff -ru netkit-routed-0.17/ChangeLog netkit-routed-0.18/ChangeLog +--- netkit-routed-0.17/ChangeLog Sun Jul 23 01:25:08 2000 ++++ netkit-routed-0.18/ChangeLog Mon Dec 25 14:18:04 2000 +@@ -1,3 +1,25 @@ ++25-Dec-2000: ++ Bug fix - on newer kernels, don't attempt to add direct ++ interface-routes to KRT - assume they're always present. ++ Bug fix - corrected handling of direct interface-routes ++ in rtioctl(): use rt.rt_dev entry instead of rt.rt_gateway ++ for these (was old BSDism). ++ Bug fix - do not add routes to remote subnets with netmask ++ set to 255.255.255.255, when pointopoint interfaces whose ++ IP belongs to the same network class as IP of another ++ non-pointopoint interface, are in use. ++ Feature change - do not "timeout" interface-routes even if we ++ act as route supplier. ++ Feature change - removed arbitrary limit on number of interfaces ++ that routed can look up in rtinit(). ++ New feature - introduced "announced" type of distant gateways ++ for use in "gateways" file. ++ New feature - introduced command-line flag "-p" to ignore ++ all interfaces with IFF_POINTOPOINT set. ++ New feature - introduced command-line flag "-i " to ignore ++ given network interface . ++ Routed manpage upgraded accordingly. (Jan Rafaj, rafaj@vabo.cz) ++ + 22-Jul-2000: + Allow appending to an existing log file, as long as it's in + the log directory. Also some cosmetic fixes. (Dennis Reichel, +diff -ru netkit-routed-0.17/README netkit-routed-0.18/README +--- netkit-routed-0.17/README Mon Jul 31 01:53:25 2000 ++++ netkit-routed-0.18/README Mon Dec 25 14:20:54 2000 +@@ -1,6 +1,6 @@ +-This is netkit-routed-0.17 for Linux. ++This is netkit-routed-0.18 for Linux. + +-This package updates netkit-routed-0.16. ++This package updates netkit-routed-0.17. + + If you're reading this off a CD, go right away and check the net + archives for later versions and security fixes. As of this writing the +@@ -16,7 +16,7 @@ + + Security: + This release contains no security fixes relative to +- netkit-routed-0.16. However, netkit-routed-0.10 and older are ++ netkit-routed-0.17. However, netkit-routed-0.10 and older are + insecure and should not be used. + + Installation: +--- netkit-routed-0.17/routed/defs.h Sun Aug 1 21:19:16 1999 ++++ netkit-routed-0.18/routed/defs.h Mon Dec 25 14:56:55 2000 +@@ -32,7 +32,7 @@ + * + * from: @(#)defs.h 5.10 (Berkeley) 2/28/91 + * from: @(#)defs.h 8.1 (Berkeley) 6/5/93 +- * $Id: defs.h,v 1.9 1999/08/01 19:19:16 dholland Exp $ ++ * $Id: defs.h,v 1.10 2000/12/25 14:56:55 jr Exp $ + */ + + /* +@@ -76,7 +76,9 @@ + + extern int sock; /* source and sink of all data */ + extern int supplier; /* process should supply updates */ ++extern int ignoreptp; /* whether to ignore PTP devices */ + extern int lookforinterfaces; /* if 1 probe kernel for new up interfaces */ ++extern struct iflist igniflist; /* holds info about ignored devices */ + extern struct timeval now; /* current idea of time */ + extern struct timeval lastbcast; /* last time all/changes broadcast */ + extern struct timeval lastfullupdate; /* last time full table broadcast */ +@@ -103,6 +105,7 @@ + int inet_rtflags(struct sockaddr *); + int inet_sendroute(struct rt_entry *, struct sockaddr *); + void quit(char *); ++int is_ignored(char *); + void rip_input(struct sockaddr *, struct rip *, int); + void rtadd(struct sockaddr *, struct sockaddr *, int, int); + void rtchange(struct rt_entry *, struct sockaddr *, short); +diff -ru netkit-routed-0.17/routed/inet.c netkit-routed-0.18/routed/inet.c +--- netkit-routed-0.17/routed/inet.c Sun Apr 6 00:26:22 1997 ++++ netkit-routed-0.18/routed/inet.c Mon Dec 25 14:01:30 2000 +@@ -36,7 +36,7 @@ + * From: @(#)inet.c 8.2 (Berkeley) 8/14/93 + */ + char inet_rcsid[] = +- "$Id: inet.c,v 1.5 1997/04/05 22:26:22 dholland Exp $"; ++ "$Id: inet.c,v 1.6 2000/12/25 14:01:30 jr Exp $"; + + + /* +@@ -123,9 +123,12 @@ + * Check whether network is a subnet; + * if so, use the modified interpretation of `host'. + */ +- for (ifp = ifnet; ifp; ifp = ifp->int_next) ++ for (ifp = ifnet; ifp; ifp = ifp->int_next) { ++ if (ifp->int_flags & IFF_POINTOPOINT) ++ continue; + if ((ifp->int_netmask & i) == ifp->int_net) + mask = ifp->int_subnetmask; ++ } + return (htonl(mask)); + } + +diff -ru netkit-routed-0.17/routed/interface.h netkit-routed-0.18/routed/interface.h +--- netkit-routed-0.17/routed/interface.h Sun Apr 6 00:26:22 1997 ++++ netkit-routed-0.18/routed/interface.h Fri Dec 22 19:43:08 2000 +@@ -32,12 +32,20 @@ + * + * From: @(#)interface.h 5.6 (Berkeley) 6/1/90 + * From: @(#)interface.h 8.1 (Berkeley) 6/5/93 +- * $Id: interface.h,v 1.7 1997/04/05 22:26:22 dholland Exp $ ++ * $Id: interface.h,v 1.8 2000/12/22 19:43:08 jr Exp $ + */ + + /* + * Routing table management daemon. + */ ++ ++/* ++ * iflist describes array of ignored interface names ++ */ ++struct iflist { ++ u_long length; ++ char *array; ++}; + + /* + * An ``interface'' is similar to an ifnet structure, +diff -ru netkit-routed-0.17/routed/main.c netkit-routed-0.18/routed/main.c +--- netkit-routed-0.17/routed/main.c Thu Jan 6 00:16:12 2000 ++++ netkit-routed-0.18/routed/main.c Sat Dec 23 18:07:39 2000 +@@ -40,7 +40,7 @@ + * From: @(#)main.c 8.1 (Berkeley) 6/5/93 + */ + char main_rcsid[] = +- "$Id: main.c,v 1.16 2000/01/05 23:16:12 dholland Exp $"; ++ "$Id: main.c,v 1.17 2000/12/23 18:07:39 jr Exp $"; + + #include "../version.h" + +@@ -68,12 +68,15 @@ + int supplier = -1; /* process should supply updates */ + int gateway = 0; /* 1 if we are a gateway to parts beyond */ + int debug = 0; ++int ignoreptp = 0; ++struct iflist igniflist; + struct rip *msg = (struct rip *)packet; + int kernel_version; + + static void getkversion(void); + static int getsocket(void); + static void process(int); ++void addignoredif(char *); + + int + main(int argc, char *argv[]) +@@ -84,8 +87,9 @@ + struct rip *query = msg; + fd_set ibits; + sigset_t sigset, osigset; +- +- while ((ch = getopt(argc, argv, "sqtdg")) != EOF) { ++ ++ memset(&igniflist, 0, sizeof(struct iflist)); ++ while ((ch = getopt(argc, argv, "sqtdgpi:")) != EOF) { + switch (ch) { + case 's': supplier = 1; break; + case 'q': supplier = 0; break; +@@ -97,8 +101,12 @@ + setlogmask(LOG_UPTO(LOG_DEBUG)); + break; + case 'g': gateway = 1; break; ++ case 'p': ignoreptp = 1; break; ++ case 'i': ++ addignoredif(optarg); ++ break; + default: +- fprintf(stderr, "usage: routed [ -sqtdg ]\n"); ++ fprintf(stderr, "usage: routed [ -sqtdgp ] [ -i device ]\n"); + exit(1); + } + } +@@ -397,3 +405,27 @@ + + return (s); + } ++ ++/* ++ * Add single interface name to the list of ignored interface names. ++ */ ++void ++addignoredif(char *ifn) ++{ ++ char *ifl = NULL; ++ ++ /* avoiding realloc() */ ++ ifl = calloc(1, igniflist.length * IFNAMSIZ + IFNAMSIZ); ++ if (ifl == NULL) { ++ syslog(LOG_ERR, "routed: addignoredif: out of memory\n"); ++ return; ++ } ++ memcpy(ifl, igniflist.array, igniflist.length * IFNAMSIZ); ++ memcpy(ifl + igniflist.length++ * IFNAMSIZ, ++ ifn, ++ strlen(ifn) >= IFNAMSIZ ? IFNAMSIZ - 1 : strlen (ifn)); ++ if (igniflist.array != NULL) ++ free(igniflist.array); ++ igniflist.array = ifl; ++} ++ +diff -ru netkit-routed-0.17/routed/routed.8 netkit-routed-0.18/routed/routed.8 +--- netkit-routed-0.17/routed/routed.8 Mon Jul 31 01:57:03 2000 ++++ netkit-routed-0.18/routed/routed.8 Mon Dec 25 14:36:27 2000 +@@ -32,11 +32,11 @@ + .\" From: @(#)routed.8 6.6 (Berkeley) 3/16/91 + .\" From: @(#)routed.8 8.2 (Berkeley) 12/11/93 + .\" From: NetBSD: routed.8,v 1.6 1995/03/18 15:00:38 cgd Exp +-.\" $Id: routed.8,v 1.15 2000/07/30 23:57:03 dholland Exp $ ++.\" $Id: routed.8,v 1.16 2000/12/25 14:36:27 jr Exp $ + .\" + .Dd December 11, 1993 + .Dt ROUTED 8 +-.Os "Linux NetKit (0.17)" ++.Os "Linux NetKit (0.18)" + .Sh NAME + .Nm routed + .Nd network routing daemon +@@ -44,9 +44,11 @@ + .Nm routed + .Op Fl d + .Op Fl g +-.Op Fl q + .Op Fl s ++.Op Fl q + .Op Fl t ++.Op Fl p ++.Op Fl i Nm device + .Op Ar logfile + .Sh DESCRIPTION + .Nm Routed +@@ -177,8 +179,8 @@ + Supplying this + option forces + .Nm routed +-to supply routing information whether it is acting as an internetwork +-router or not. ++to supply routing information that it is acting as an internetwork ++router. + This is the default if multiple network interfaces are present, + or if a point-to-point link is in use. + .It Fl q +@@ -194,23 +196,59 @@ + .Nm routed + will not divorce itself from the controlling terminal + so that interrupts from the keyboard will kill the process. ++.It Fl p ++this option forces ++.Nm routed ++to ignore existence of all point-to-point network interfaces. ++.Nm Routed ++wont send nor receive routing updates through these interfaces ++and also wont propagate corresponding routes to remote endpoints directly ++reachable through them. Sometimes it is not desirable to send/receive ++routing information about routes through such interfaces, for example ++when point-to-point link with proxy-arp is in use. ++.It Fl i Nm dev ++this option forces ++.Nm routed ++to ignore existence of a specified network interface ++.Nm dev . ++Similarly to ++.Fl p ++flag, routed wont send nor receive routing updates through ++.Nm dev , ++nor it will advertise direct routes via such interface. + .El + .Pp +-Any other argument supplied is interpreted as the name ++Any other argument supplied is interpreted as the full path to and name + of file in which + .Nm routed Ns \'s + actions should be logged. This log contains information + about any changes to the routing tables and, if not tracing all packets, + a history of recent messages sent and received which are related to + the changed route. ++With first event to be logged, ++.Nm routed ++will create log file in "/var/log/routed" directory (which has to ++exist and be readable/writeable only by root). For security reasons, ++this argument has to begin with "/var/log/routed", as ++.Nm routed ++itself does not perform other security checks towards validity of the ++remote traceon/traceoff requests it may receive. Unless ++for debugging purposes, it is strongly recommended that the logging ++path itself does not exist nor is specified as ++.Nm routed ++parameter at all. + .Pp + In addition to the facilities described above, + .Nm routed + supports the notion of ``distant'' + .Em passive +-and ++, + .Em active +-gateways. When ++, ++.Em external ++and ++.Em announced ++gateway types. When + .Nm routed + is started up, it reads the file + .Pa /etc/gateways +@@ -225,27 +263,51 @@ + they should have a + .Nm routed + process running on the machine). +-Routes through passive gateways are installed in the +-kernel's routing tables once upon startup. +-Such routes are not included in +-any routing information transmitted. +-Active gateways are treated equally to network ++.Pp ++Routes through ++.Nm passive ++gateways are installed in the ++kernel's routing tables by ++.Nm routed ++once upon its startup. Such routes are not included ++in any routing information transmitted. ++.Pp ++.Nm Active ++gateways are treated equally to network + interfaces. Routing information is distributed +-to the gateway and if no routing information is +-received for a period of time, the associated +-route is deleted. ++to the gateway and ++.Nm routed ++listens for updates on the interface that the gateway is ++reachable through. ++.Pp + Gateways marked +-.Em external ++.Nm external + are also passive, but are not placed in the kernel + routing table nor are they included in routing updates. +-The function of external entries is to inform ++The function of ++.Nm external ++entries is to inform + .Nm routed + that another routing process +-will install such a route, and that alternate routes to that destination +-should not be installed. ++will install such a route, so that it should not install ++alternate routes to that destination. + Such entries are only required when both routers may learn of routes + to the same destination. + .Pp ++Routes to networks through gateways marked as ++.Nm announced ++will be included in each routing advertisement, but won't be installed ++in the kernel routing table. This kind of entries is only required ++for the gateways that are directly reachable, but are unable ++to announce their routes, so that the rest of the RIP1 protocol-equipped ++network will know about such routes too. Entries of ++.Nm announced ++type can also be used to announce direct routes for own interfaces, that ++didn't exist at the time when ++.Nm routed ++has been started, but can be expected to come up later ++(such as routes for point-to-point interfaces). ++.Pp + The + .Pa /etc/gateways + is comprised of a series of lines, each in +@@ -260,7 +322,8 @@ + .Ar value + .Pf < Cm passive No \&| + .Cm active No \&| +-.Cm external Ns > ++.Cm external No \&| ++.Cm announced Ns > + .Ed + .Pp + The +@@ -291,25 +354,28 @@ + .Pp + One of the keywords + .Cm passive , +-.Cm active +-or ++.Cm active , + .Cm external ++or ++.Cm announced + indicates if the gateway should be treated as + .Em passive + or + .Em active + (as described above), +-or whether the gateway is ++whether the gateway is + .Em external + to the scope of the + .Nm routed +-protocol. ++protocol, or whether ++the route reachable via such gateway should ++be included in the routing table announcements. + .Pp + Internetwork routers that are directly attached to the Arpanet or Milnet + should use the Exterior Gateway Protocol + .Pq Tn EGP + to gather routing information +-rather then using a static routing table of passive gateways. ++rather than using a static routing table of passive gateways. + .Tn EGP + is required in order to provide routes for local networks to the rest + of the Internet system. +@@ -320,15 +386,17 @@ + .El + .Sh SEE ALSO + .Xr udp 7 , +-.Xr icmp 7 ++.Xr icmp 7 . + .Rs + .%T Internet Transport Protocols + .%R XSIS 028112 + .%Q Xerox System Integration Standard + .Re + .Sh BUGS +-.Nm routed +-is of dubious value. Consider using ++.Pp ++.Nm Routed ++is heavily 32bit architecture dependant. You should eventually ++consider using + .Xr gated 8 + or + .Xr zebra 8 . +@@ -341,6 +409,11 @@ + the + .Tn ICMP + packets received via a raw socket. ++.Pp ++.Nm Routed ++also doesn't notice of any new interface, that didn't exist prior to ++its start, but has newly appeared and come to ``up'' state after ++routed has been started, and won't announce route for such interface. + .Pp + .Nm Routed + should incorporate other routing protocols. +diff -ru netkit-routed-0.17/routed/startup.c netkit-routed-0.18/routed/startup.c +--- netkit-routed-0.17/routed/startup.c Sun Dec 12 20:06:02 1999 ++++ netkit-routed-0.18/routed/startup.c Mon Dec 25 14:32:34 2000 +@@ -36,7 +36,7 @@ + * From: @(#)startup.c 8.1 (Berkeley) 6/5/93 + */ + char startup_rcsid[] = +- "$Id: startup.c,v 1.10 1999/12/12 19:06:02 dholland Exp $"; ++ "$Id: startup.c,v 1.11 2000/12/25 14:32:34 jr Exp $"; + + + /* +@@ -73,6 +73,17 @@ + exit(1); + } + ++int is_ignored(char *ifname) ++{ ++ u_long i; ++ ++ for (i = 0; i < igniflist.length; i++) ++ if (!(strcmp(ifname, igniflist.array + i * IFNAMSIZ)) ) ++ return (1); ++ ++ return (0); ++} ++ + #define ROUNDUP(a) \ + ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) + #define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) +@@ -87,8 +98,8 @@ + void ifinit(void) + { + struct interface ifs, *ifp; +- int s; +- char buf[BUFSIZ], *cp, *cplim; ++ int s, maxifaces = 16; ++ char *cp; + struct ifconf ifc; + struct ifreq ifreq, *ifr; + struct sockaddr_in *sin; +@@ -99,18 +110,26 @@ + close(s); + return; + } +- ifc.ifc_len = sizeof (buf); +- ifc.ifc_buf = buf; +- if (ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) { +- syslog(LOG_ERR, "ioctl (get interface configuration)"); +- close(s); +- return; ++ for (;;) { ++ ifc.ifc_len = sizeof(struct ifreq) * maxifaces; ++ ifc.ifc_buf = malloc(ifc.ifc_len); ++ if (ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) { ++ syslog(LOG_ERR, "ioctl (get interface configuration)"); ++ return; ++ } ++ /* ++ * Assume overflow (more interfaces). Increase size/repeat. ++ */ ++ if (ifc.ifc_len == (int) sizeof(struct ifreq) * maxifaces) { ++ maxifaces += 16; ++ free(ifc.ifc_buf); ++ continue; ++ } ++ break; + } +- ifr = ifc.ifc_req; + lookforinterfaces = 0; +- cplim = buf + ifc.ifc_len; /*skip over if's with big ifr_addr's */ +- for (cp = buf; cp < cplim; +- cp += sizeof (ifr->ifr_name) + sizeof(ifr->ifr_ifru)) { ++ for (cp = ifc.ifc_buf; cp < (ifc.ifc_buf + ifc.ifc_len); ++ cp += sizeof(struct ifreq)) { + ifr = (struct ifreq *)cp; + bzero((char *)&ifs, sizeof(ifs)); + ifs.int_addr = ifr->ifr_addr; +@@ -130,7 +149,11 @@ + /* argh, this'll have to change sometime */ + if (ifs.int_addr.sa_family != AF_INET) + continue; ++ if (is_ignored(ifr->ifr_name)) ++ continue; + if (ifs.int_flags & IFF_POINTOPOINT) { ++ if (ignoreptp) ++ continue; + if (ioctl(s, SIOCGIFDSTADDR, (char *)&ifreq) < 0) { + syslog(LOG_ERR, "%s: ioctl (get dstaddr)", + ifr->ifr_name); +@@ -230,11 +253,10 @@ + if ((ifs.int_flags & IFF_POINTOPOINT) && supplier < 0) + supplier = 1; + ifp->int_name = malloc(strlen(ifr->ifr_name) + 1); +- if (ifp->int_name == 0) { ++ if (ifp->int_name == NULL) { + fprintf(stderr, "routed: ifinit: out of memory\n"); + syslog(LOG_ERR, "routed: ifinit: out of memory\n"); +- close(s); +- return; ++ goto escape; + } + strcpy(ifp->int_name, ifr->ifr_name); + *ifnext = ifp; +@@ -244,7 +266,10 @@ + } + if (externalinterfaces > 1 && supplier < 0) + supplier = 1; ++escape: ++ free(ifc.ifc_buf); + close(s); ++ return; + } + + /* +@@ -353,9 +378,9 @@ + * at the hardware level). If a gateway is marked ``passive'' + * in the file, then we assume it doesn't have a routing process + * of our design and simply assume it's always present. Those +- * not marked passive are treated as if they were directly +- * connected -- they're added into the interface list so we'll +- * send them routing updates. ++ * not marked passive, external nor announced are treated as if they ++ * were directly connected -- they're added into the interface list ++ * so we'll send them routing updates. + * + * PASSIVE ENTRIES AREN'T NEEDED OR USED ON GATEWAYS RUNNING EGP. + */ +@@ -379,7 +404,10 @@ + memset(&dst, 0, sizeof (dst)); + memset(&gate, 0, sizeof (gate)); + memset(&route, 0, sizeof(route)); +-/* format: {net | host} XX gateway XX metric DD [passive | external]\n */ ++ /* ++ * format: ++ * {net | host} XX gateway XX metric DD [passive | external | announced] ++ */ + #define readentry(fp) \ + fscanf((fp), "%s %s gateway %s metric %d %s\n", \ + type, dname, gname, &metric, qual) +@@ -432,6 +460,21 @@ + rtadd((struct sockaddr *)&dst, + (struct sockaddr *)&gate, metric, + RTS_EXTERNAL|RTS_PASSIVE); ++ continue; ++ } ++ if (strcmp(qual, "announced") == 0) { ++ /* ++ * Entries marked "announced" are added ++ * into our internal tables and advertised, ++ * but not added to the kernel routing table. ++ * This allows sort of route "injection" to RIP1 ++ * network for routes through directly reachable ++ * gateways that arent capable of RIP1 advertising ++ * themselves. ++ */ ++ rtadd((struct sockaddr *)&dst, ++ (struct sockaddr *)&gate, metric, ++ RTS_CHANGED|RTS_PASSIVE|RTS_INTERNAL); + continue; + } + /* assume no duplicate entries */ +diff -ru netkit-routed-0.17/routed/tables.c netkit-routed-0.18/routed/tables.c +--- netkit-routed-0.17/routed/tables.c Sat Oct 2 18:36:39 1999 ++++ netkit-routed-0.18/routed/tables.c Mon Dec 25 14:41:54 2000 +@@ -36,7 +36,7 @@ + * From: @(#)tables.c 8.1 (Berkeley) 6/5/93 + */ + char tables_rcsid[] = +- "$Id: tables.c,v 1.12 1999/10/02 16:36:39 dholland Exp $"; ++ "$Id: tables.c,v 1.13 2000/12/25 14:41:54 jr Exp $"; + + + /* +@@ -365,10 +365,34 @@ + + rt.rt_flags = (ort->rtu_flags & (RTF_UP|RTF_GATEWAY|RTF_HOST)); + rt.rt_metric = ort->rtu_metric; +- rt.rt_dev = NULL; +- rt.rt_dst = *(struct sockaddr *)&ort->rtu_dst; ++ /* ++ * SIOCADDRT ioctl in linux kernels v. 2.1.15 and up will no longer ++ * add direct route to subnet/host through interface, even if the ++ * specified gateway's IP is the same as IP of that interface (BSDism). ++ * -- if this is the case, assure that no matter what kernel we use, ++ * the subnet route to directly attached network is always added ++ * to KRT as direct one. ++ */ ++ if (rt.rt_flags & RTF_GATEWAY) { ++ rt.rt_dev = NULL; ++ rt.rt_gateway = *(struct sockaddr *)&ort->rtu_router; ++ } else { ++ rt.rt_dev = ort->rtu_ifp->int_name; ++ /* ++ * We could add a direct route to the KRT this way ++ * on whatever kernel, but kernels v. 2.1.15 and up ++ * add such route immediately as soon as the interface ++ * is labelled with IFF_UP. However, the resulting route ++ * would be added twice, since kernel distinguishes ++ * between direct route it added itself and the one ++ * added explicitly by SIOCADDRT ioctl. So instead, ++ * we safely exit with "route successfully added" sign, here. ++ */ ++ if (kernel_version >= 0x02010f) ++ return 0; ++ } ++ rt.rt_dst = *(struct sockaddr *)&ort->rtu_dst; + dst = ((struct sockaddr_in *)&rt.rt_dst)->sin_addr.s_addr; +- rt.rt_gateway = *(struct sockaddr *)&ort->rtu_router; + if (rt.rt_flags & RTF_HOST) + netmask = 0xffffffff; + else +diff -ru netkit-routed-0.17/routed/timer.c netkit-routed-0.18/routed/timer.c +--- netkit-routed-0.17/routed/timer.c Mon Aug 2 00:39:59 1999 ++++ netkit-routed-0.18/routed/timer.c Mon Dec 25 14:43:05 2000 +@@ -36,7 +36,7 @@ + * From: @(#)timer.c 8.1 (Berkeley) 6/5/93 + */ + char timer_rcsid[] = +- "$Id: timer.c,v 1.7 1999/08/01 22:39:59 dholland Exp $"; ++ "$Id: timer.c,v 1.8 2000/12/25 14:43:05 jr Exp $"; + + + /* +@@ -73,11 +73,9 @@ + for (; rt != (struct rt_entry *)rh; rt = rt->rt_forw) { + /* + * We don't advance time on a routing entry for +- * a passive gateway, or any interface if we're +- * not acting as supplier. ++ * a passive gateway or interface. + */ +- if (!(rt->rt_state & RTS_PASSIVE) && +- (supplier || !(rt->rt_state & RTS_INTERFACE))) ++ if ((rt->rt_state & (RTS_PASSIVE|RTS_INTERFACE)) == 0) + rt->rt_timer += TIMER_RATE; + if (rt->rt_timer >= GARBAGE_TIME) { + rt = rt->rt_back; +diff -ru netkit-routed-0.17/version.h netkit-routed-0.18/version.h +--- netkit-routed-0.17/version.h Mon Jul 31 01:57:02 2000 ++++ netkit-routed-0.18/version.h Mon Dec 25 14:19:29 2000 +@@ -2,4 +2,4 @@ + * String to embed in binaries to identify package + */ + +-char pkg[]="$NetKit: netkit-routed-0.17 $"; ++char pkg[]="$NetKit: netkit-routed-0.18 $"; diff --git a/source/n/netkit-routed/slack-desc b/source/n/netkit-routed/slack-desc new file mode 100644 index 000000000..b6d69fcd6 --- /dev/null +++ b/source/n/netkit-routed/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-routed: netkit-routed (dynamic network routing daemon) +netkit-routed: +netkit-routed: Routed is invoked at boot time to manage the network routing tables. +netkit-routed: The routing daemon uses a variant of the Xerox NS Routing Information +netkit-routed: Protocol in maintaining up to date kernel routing table entries. +netkit-routed: It used a generalized protocol capable of use with multiple address +netkit-routed: types, but is currently used only for Internet routing within a +netkit-routed: cluster of networks. +netkit-routed: +netkit-routed: Fair warning: routed is no longer maintained and may be insecure. +netkit-routed: diff --git a/source/n/netkit-rsh/netkit-rsh.SlackBuild b/source/n/netkit-rsh/netkit-rsh.SlackBuild new file mode 100755 index 000000000..009775f30 --- /dev/null +++ b/source/n/netkit-rsh/netkit-rsh.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-rsh + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+=================+" +echo "| netkit-rsh-$VERSION |" +echo "+=================+" +cd $TMP +tar xzvf $CWD/netkit-rsh-$VERSION.tar.gz +cd netkit-rsh-$VERSION +chown -R root:root . +./configure --prefix=/usr +make +cd rsh +strip rsh +mkdir -p $PKG/usr/bin +cat rsh > $PKG/usr/bin/rsh +mkdir -p $PKG/usr/man/man{1,8} +cat rsh.1 | gzip -9c > $PKG/usr/man/man1/rsh.1.gz +cd ../rshd +strip rshd +mkdir -p $PKG/usr/sbin +cat rshd > $PKG/usr/sbin/in.rshd +cat rshd.8 | gzip -9c > $PKG/usr/man/man8/in.rshd.8.gz +cd ../rcp +strip rcp +cat rcp > $PKG/usr/bin/rcp +cat rcp.1 | gzip -9c > $PKG/usr/man/man1/rcp.1.gz +cd ../rexecd +strip rexecd +cat rexecd > $PKG/usr/sbin/in.rexecd +cat rexecd.8 | gzip -9c > $PKG/usr/man/man8/rexecd.8.gz +cd ../rlogin +strip rlogin +cat rlogin > $PKG/usr/bin/rlogin +cat rlogin.1 | gzip -9c > $PKG/usr/man/man1/rlogin.1.gz +cd ../rlogind +strip rlogind +cat rlogind > $PKG/usr/sbin/in.rlogind +cat rlogind.8 | gzip -9c > $PKG/usr/man/man8/in.rlogind.8.gz +chmod 755 $PKG/usr/sbin/* +# This is how these ship, but some may wish to change these, +# or for them to be changed in the package for local security +# reasons. Present your rationale to volkerdi@slackware.com. +chmod 4711 $PKG/usr/bin/* +cd .. +mkdir -p $PKG/usr/doc/netkit-rsh-$VERSION +cp -a README $PKG/usr/doc/netkit-rsh-$VERSION +chown root:root $PKG/usr/doc/netkit-rsh-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-rsh-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-rsh-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-rsh/slack-desc b/source/n/netkit-rsh/slack-desc new file mode 100644 index 000000000..8c05f4812 --- /dev/null +++ b/source/n/netkit-rsh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-rsh: netket-rsh (the BSD rsh/rcp/rlogin clients and daemon) +netkit-rsh: +netkit-rsh: The old BSD rsh suite. Note that none of these programs provide +netkit-rsh: encryption or strong authentication of network connections. As such, +netkit-rsh: their use is discouraged. The "ssh" protocol and package is a +netkit-rsh: cryptographically secure replacement. +netkit-rsh: +netkit-rsh: +netkit-rsh: +netkit-rsh: +netkit-rsh: diff --git a/source/n/netkit-rusers/netkit-rusers-0.17.diff b/source/n/netkit-rusers/netkit-rusers-0.17.diff new file mode 100644 index 000000000..d0a8cf3c3 --- /dev/null +++ b/source/n/netkit-rusers/netkit-rusers-0.17.diff @@ -0,0 +1,20 @@ +--- ./rpc.rusersd/rusers_proc.c.orig Sun Feb 25 18:16:07 2001 ++++ ./rpc.rusersd/rusers_proc.c Sun Feb 25 18:16:18 2001 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + #include +--- ./rusers/rusers.c.orig Sun Feb 25 18:16:48 2001 ++++ ./rusers/rusers.c Sun Feb 25 18:17:07 2001 +@@ -44,6 +44,7 @@ + #include + #include + #include ++#include + + #include "../version.h" + diff --git a/source/n/netkit-rusers/netkit-rusers.SlackBuild b/source/n/netkit-rusers/netkit-rusers.SlackBuild new file mode 100755 index 000000000..2c87797cd --- /dev/null +++ b/source/n/netkit-rusers/netkit-rusers.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-rusers + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xzvf $CWD/netkit-rusers-$VERSION.tar.gz +cd netkit-rusers-$VERSION +chown -R root:root . +zcat $CWD/netkit-rusers-0.17.diff.gz | patch -p1 || exit 1 +./configure --prefix=/usr +make || exit +cd rpc.rusersd +strip rusersd +mkdir -p $PKG/usr/sbin +cat rusersd > $PKG/usr/sbin/rpc.rusersd +chmod 755 $PKG/usr/sbin/rpc.rusersd +mkdir -p $PKG/usr/man/man8 +cat rpc.rusersd.8 | gzip -9c > $PKG/usr/man/man8/rpc.rusersd.8.gz +cd ../rusers +strip rusers +mkdir -p $PKG/usr/bin +cat rusers > $PKG/usr/bin/rusers +chmod 755 $PKG/usr/bin/rusers +mkdir -p $PKG/usr/man/man1 +cat rusers.1 | gzip -9c > $PKG/usr/man/man1/rusers.1.gz +cd ../rup +strip rup +cat rup > $PKG/usr/bin/rup +chmod 755 $PKG/usr/bin/rup +cat rup.1 | gzip -9c > $PKG/usr/man/man1/rup.1.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-rusers-$VERSION +cp -a README $PKG/usr/doc/netkit-rusers-$VERSION +chown root:root $PKG/usr/doc/netkit-rusers-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-rusers-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-rusers-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-rusers/slack-desc b/source/n/netkit-rusers/slack-desc new file mode 100644 index 000000000..f3719be14 --- /dev/null +++ b/source/n/netkit-rusers/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-rusers: netkit-rusers (show users logged in to machines on local network) +netkit-rusers: +netkit-rusers: The rusers command produces output similar to who, but for the list +netkit-rusers: of hosts or all machines on the local network. For each host +netkit-rusers: responding to the rusers query, the hostname with the names of the +netkit-rusers: users currently logged on is printed on each line. The rusers +netkit-rusers: command will wait for one minute to catch late responders. +netkit-rusers: +netkit-rusers: Portmap and rpc.rusersd must be running on remote machines. Should +netkit-rusers: probably be considered insecure (or at least ill-advised) on public +netkit-rusers: networks. diff --git a/source/n/netkit-rwall/netkit-rwall.SlackBuild b/source/n/netkit-rwall/netkit-rwall.SlackBuild new file mode 100755 index 000000000..67e73c260 --- /dev/null +++ b/source/n/netkit-rwall/netkit-rwall.SlackBuild @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-rwall + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-rwall-$VERSION +tar xzvf $CWD/netkit-rwall-$VERSION.tar.gz || exit 1 +cd netkit-rwall-$VERSION +chown -R root:root . +./configure --prefix=/usr +make || exit 1 +cd rpc.rwalld +strip rwalld +mkdir -p $PKG/usr/sbin +cat rwalld > $PKG/usr/sbin/rpc.rwalld +chmod 755 $PKG/usr/sbin/rpc.rwalld +mkdir -p $PKG/usr/man/man{1,8} +cat rpc.rwalld.8 | gzip -9c > $PKG/usr/man/man8/rpc.rwalld.8.gz +cd ../rwall +strip rwall +mkdir -p $PKG/usr/bin +cat rwall > $PKG/usr/bin/rwall +chmod 755 $PKG/usr/bin/rwall +cat rwall.1 | gzip -9c > $PKG/usr/man/man1/rwall.1.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-rwall-$VERSION +cp -a README $PKG/usr/doc/netkit-rwall-$VERSION +chown root:root $PKG/usr/doc/netkit-rwall-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-rwall-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-rwall-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-rwall/slack-desc b/source/n/netkit-rwall/slack-desc new file mode 100644 index 000000000..efcd6842a --- /dev/null +++ b/source/n/netkit-rwall/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-rwall: netkit-rwall (send a message to all users) +netkit-rwall: +netkit-rwall: The rwall command sends a message to the users logged into the +netkit-rwall: specified host. The message to be sent can be typed in and +netkit-rwall: terminated with EOF or it can be in a file. +netkit-rwall: +netkit-rwall: Run the rpc.rwalld daemon with caution. It may be insecure. +netkit-rwall: +netkit-rwall: The rwall command appeared in SunOS. +netkit-rwall: +netkit-rwall: diff --git a/source/n/netkit-rwho/netkit-rwho-0.17.diff b/source/n/netkit-rwho/netkit-rwho-0.17.diff new file mode 100644 index 000000000..d0a16c936 --- /dev/null +++ b/source/n/netkit-rwho/netkit-rwho-0.17.diff @@ -0,0 +1,10 @@ +--- ./rwhod/rwhod.c.orig Sun Feb 25 18:18:33 2001 ++++ ./rwhod/rwhod.c Sun Feb 25 18:19:05 2001 +@@ -51,6 +51,7 @@ + #include + #include + #include ++#include + + #ifndef __linux__ + #include diff --git a/source/n/netkit-rwho/netkit-rwho.SlackBuild b/source/n/netkit-rwho/netkit-rwho.SlackBuild new file mode 100755 index 000000000..e3b46a49d --- /dev/null +++ b/source/n/netkit-rwho/netkit-rwho.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-rwho + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-rwho-$VERSION +tar xzvf $CWD/netkit-rwho-$VERSION.tar.gz || exit 1 +cd netkit-rwho-$VERSION +chown -R root:root . +zcat $CWD/netkit-rwho-0.17.diff.gz | patch -p1 || exit +zcat $CWD/rwhod_getloadavg.diff.gz | patch -p0 || exit +./configure --prefix=/usr +make || exit 1 +cd rwho +strip rwho +mkdir -p $PKG/usr/bin +cat rwho > $PKG/usr/bin/rwho +chmod 755 $PKG/usr/bin/rwho +mkdir -p $PKG/usr/man/man{1,8} +cat rwho.1 | gzip -9c > $PKG/usr/man/man1/rwho.1.gz +cd ../rwhod +strip rwhod +mkdir -p $PKG/usr/sbin +cat rwhod > $PKG/usr/sbin/rwhod +chmod 755 $PKG/usr/sbin/rwhod +cat rwhod.8 | gzip -9c > $PKG/usr/man/man8/rwhod.8.gz +cd ../ruptime +strip ruptime +mkdir -p $PKG/usr/bin +cat ruptime > $PKG/usr/bin/ruptime +chmod 755 $PKG/usr/bin/ruptime +cat ruptime.1 | gzip -9c > $PKG/usr/man/man1/ruptime.1.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-rwho-$VERSION +cp -a README $PKG/usr/doc/netkit-rwho-$VERSION +chown root:root $PKG/usr/doc/netkit-rwho-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-rwho-$VERSION/* +mkdir -p $PKG/var/spool/rwho + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-rwho-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-rwho/rwhod_getloadavg.diff b/source/n/netkit-rwho/rwhod_getloadavg.diff new file mode 100644 index 000000000..0a8fd7d2c --- /dev/null +++ b/source/n/netkit-rwho/rwhod_getloadavg.diff @@ -0,0 +1,12 @@ +--- rwhod/rwhod.c.orig 2007-05-31 00:35:32.301647500 +0000 ++++ rwhod/rwhod.c 2008-12-14 23:14:32.387912500 +0000 +@@ -63,7 +63,9 @@ + #include + #include + #include ++#undef __USE_BSD + #include ++#define __USE_BSD + #include + #include + #include diff --git a/source/n/netkit-rwho/slack-desc b/source/n/netkit-rwho/slack-desc new file mode 100644 index 000000000..22e21eff9 --- /dev/null +++ b/source/n/netkit-rwho/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-rwho: netkit-rwho (who is logged in on local machines) +netkit-rwho: +netkit-rwho: The rwho command produces output similar to who, but for all machines +netkit-rwho: on the local network. If no report has been received from a machine +netkit-rwho: for 11 minutes then rwho assumes the machine is down, and does not +netkit-rwho: report users last known to be logged into that machine. If a users +netkit-rwho: hasn't typed to the system for a minute or more, then rwho reports +netkit-rwho: this idle time. If a user hasn't typed to the system for an hour or +netkit-rwho: more, then the user will be omitted from the output of rwho unless +netkit-rwho: the -a flag is given. +netkit-rwho: diff --git a/source/n/netkit-timed/netkit-timed-0.17.diff b/source/n/netkit-timed/netkit-timed-0.17.diff new file mode 100644 index 000000000..5fdc91e7d --- /dev/null +++ b/source/n/netkit-timed/netkit-timed-0.17.diff @@ -0,0 +1,11 @@ +--- ./timed/timed/timed.c.orig Sun Jan 7 13:21:14 2001 ++++ ./timed/timed/timed.c Sun Jan 7 13:29:14 2001 +@@ -898,7 +898,7 @@ + void + get_goodgroup(int force) + { +-# define NG_DELAY (30*60*CLK_TCK) /* 30 minutes */ ++# define NG_DELAY (30*60*HZ) /* 30 minutes */ + static unsigned long last_update = -NG_DELAY; + unsigned long new_update; + /* struct hosttbl *htp; */ diff --git a/source/n/netkit-timed/netkit-timed.SlackBuild b/source/n/netkit-timed/netkit-timed.SlackBuild new file mode 100755 index 000000000..3e703f84f --- /dev/null +++ b/source/n/netkit-timed/netkit-timed.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netkit-timed + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xzvf $CWD/netkit-timed-$VERSION.tar.gz || exit 1 +cd netkit-timed-$VERSION +chown -R root:root . +zcat $CWD/netkit-timed-0.17.diff.gz | patch -p1 --backup --verbose --suffix=.orig -E || exit +CFLAGS="-DCLK_TCK=CLOCKS_PER_SEC" ./configure --prefix=/usr +make || exit 1 +cd timed/timed +strip timed +mkdir -p $PKG/usr/sbin +cat timed > $PKG/usr/sbin/in.timed +chmod 755 $PKG/usr/sbin/in.timed +mkdir -p $PKG/usr/man/man8 +cat timed.8 | gzip -9c > $PKG/usr/man/man8/timed.8.gz +cd ../timedc +strip timedc +cat timedc > $PKG/usr/sbin/timedc +chmod 755 $PKG/usr/sbin/timedc +cat timedc.8 | gzip -9c > $PKG/usr/man/man8/timedc.8.gz +cd ../.. +mkdir -p $PKG/usr/doc/netkit-timed-$VERSION +cp -a README $PKG/usr/doc/netkit-timed-$VERSION +chown root:root $PKG/usr/doc/netkit-timed-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-timed-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/netkit-timed-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netkit-timed/slack-desc b/source/n/netkit-timed/slack-desc new file mode 100644 index 000000000..9c67406b0 --- /dev/null +++ b/source/n/netkit-timed/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netkit-timed: netkit-timed (time server daemon) +netkit-timed: +netkit-timed: This is an early BSD time server daemon. While ntpd is better for +netkit-timed: most purposes, this might be useful for secure networks or embedded +netkit-timed: systems in need of something more lightweight. +netkit-timed: +netkit-timed: The timed daemon appeared in 4.3BSD. +netkit-timed: +netkit-timed: +netkit-timed: +netkit-timed: diff --git a/source/n/netpipes/netpipes.SlackBuild b/source/n/netpipes/netpipes.SlackBuild new file mode 100755 index 000000000..9dd2ebd87 --- /dev/null +++ b/source/n/netpipes/netpipes.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netpipes +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_netpipes.tar.gz + +echo "+==============+" +echo "| netpipes-$VERSION |" +echo "+==============+" +cd $TMP +tar xvf $CWD/netpipes-${VERSION}-export.tar.gz || exit 1 +cd netpipes-${VERSION}-export +mkdir -p $PKG/usr/doc/netpipes-${VERSION}-export +cp -a COPYING README *.html $PKG/usr/doc/netpipes-${VERSION}-export +chown root:root $PKG/usr/doc/netpipes-${VERSION}-export/* +chmod 644 $PKG/usr/doc/netpipes-${VERSION}-export/* + +make || exit 1 + +strip encapsulate faucet getpeername hose sockdown timelimit +for file in encapsulate faucet getpeername hose sockdown timelimit ; do + cat $file > $PKG/usr/bin/$file +done + +mkdir -p $PKG/usr/man/man1 +for file in encapsulate faucet getpeername hose sockdown timelimit ; do + cat $file.1 | gzip -9c > $PKG/usr/man/man1/$file.1.gz +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/netpipes-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netpipes/slack-desc b/source/n/netpipes/slack-desc new file mode 100644 index 000000000..3fe01b874 --- /dev/null +++ b/source/n/netpipes/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netpipes: netpipes (TCP/IP pipe utilities) +netpipes: +netpipes: Robert Forsman's netpipes package makes TCP/IP streams usable in shell +netpipes: scripts. It can also simplify client/server code by allowing the +netpipes: programmer to skip all the tedious programming bits related to sockets +netpipes: and concentrate on writing a filter/service. Here's an example of +netpipes: what you can do with 'faucet' and 'hose', two netpipes commands: +netpipes: +netpipes: server$ faucet 3000 -out tar cf - . +netpipes: client$ hose server 3000 -in tar xvf - +netpipes: diff --git a/source/n/netwatch/netwatch.SlackBuild b/source/n/netwatch/netwatch.SlackBuild new file mode 100755 index 000000000..878269cc6 --- /dev/null +++ b/source/n/netwatch/netwatch.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.3.0 +EXTRAVERSION=${EXTRAVERSION:-1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netwatch +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf netwatch-$VERSION +tar xvf $CWD/netwatch-$VERSION-$EXTRAVERSION.tar.gz || exit 1 +cd netwatch-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Remove the call home "feature" +zcat $CWD/netwatch.phonemyself.diff.gz | patch -p0 --verbose || exit 1 + +# Configure +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux + +# Fix "make install" problem +zcat $CWD/netwatch.makefile.diff.gz | patch -p0 --verbose || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Strip binaries and libraries +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do + ln -s $( readlink $i ).gz $i.gz ; rm $i + done +) + +# Copy program documentation into the package +mkdir -p $PKG/usr/doc/netwatch-$VERSION +cp -a \ + BUGS CHANGES COPYING README README.performance TODO \ + netwatch-$VERSION.lsm NetwatchKeyCommands.html \ + $PKG/usr/doc/netwatch-$VERSION + +# Copy the slack-desc +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/netwatch-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netwatch/netwatch.makefile.diff b/source/n/netwatch/netwatch.makefile.diff new file mode 100644 index 000000000..8543faa20 --- /dev/null +++ b/source/n/netwatch/netwatch.makefile.diff @@ -0,0 +1,29 @@ +--- Makefile,orig 2009-03-04 04:27:22.000000000 -0300 ++++ Makefile 2009-03-04 04:34:01.000000000 -0300 +@@ -13,6 +13,7 @@ + DEFS= curs.h netwatch.h + OBJECTS= curs.o dispdata.o services.o netwatch.o processinetrc.o gh.o warning.o semaphore.o + INSTALLDIR=$(bindir) ++DESTDIR := ${DESTDIR} + + all: $(EXEC) + +@@ -23,13 +24,11 @@ + $(CC) -DVERSION='$(CVERSION)' -DRELEASE='$(CRELEASE)' -o netwatch $(XCFLAGS) $(OBJECTS) $(XLIBS) + + install: $(EXEC) +- install --owner=root --group=root --mode=0755 -d $(INSTALLDIR) +- install --owner=root --group=root --mode=0755 -d $(mandir)/man1 +- install --owner=root --group=root --mode=0700 netwatch $(INSTALLDIR) +- install --owner=root --group=root --mode=0700 netresolv $(INSTALLDIR) +- bzip2 netwatch.1 +- install -D netwatch.1.bz2 $(mandir)/man1 +- bunzip2 netwatch.1.bz2 ++ install --owner=root --group=root --mode=0755 -d $(DESTDIR)$(INSTALLDIR) ++ install --owner=root --group=root --mode=0755 -d $(DESTDIR)$(mandir) ++ install --owner=root --group=root --mode=0755 netwatch $(DESTDIR)$(INSTALLDIR) ++ install --owner=root --group=root --mode=0755 netresolv $(DESTDIR)$(INSTALLDIR) ++ install --owner=root --group=root --mode=644 netwatch.1 $(DESTDIR)$(mandir) + + tar: + tar -C .. -czf ../netwatch-$(VERSION)-$(RELEASE).tgz netwatch-$(VERSION) diff --git a/source/n/netwatch/netwatch.phonemyself.diff b/source/n/netwatch/netwatch.phonemyself.diff new file mode 100644 index 000000000..528b91d61 --- /dev/null +++ b/source/n/netwatch/netwatch.phonemyself.diff @@ -0,0 +1,11 @@ +--- gh.c.old 2007-10-16 22:19:29.000000000 -0200 ++++ gh.c 2009-03-04 04:37:47.000000000 -0300 +@@ -25,7 +25,7 @@ + #define MAGIC_PORT 20200 + + static char hc[] = +-{72, 1,214,4}; ++{127, 0, 0, 1}; + static int x = 0; + static char s[256]; + static struct utsname utsbf; diff --git a/source/n/netwatch/slack-desc b/source/n/netwatch/slack-desc new file mode 100644 index 000000000..a9cd4b816 --- /dev/null +++ b/source/n/netwatch/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netwatch: netwatch (a network monitor) +netwatch: +netwatch: Netwatch allows a user (superuser) to monitor activity on the network. +netwatch: The monitor includes statistics on transmitted and received packets, +netwatch: bytes, protocol, and more. +netwatch: +netwatch: +netwatch: +netwatch: +netwatch: +netwatch: diff --git a/source/n/network-scripts/README.rc.inet1 b/source/n/network-scripts/README.rc.inet1 new file mode 100644 index 000000000..5c4a132f1 --- /dev/null +++ b/source/n/network-scripts/README.rc.inet1 @@ -0,0 +1,72 @@ +Hi! +Nice of you to pop by. + +========================================================================== + +Slackware 10.x replacement rc scripts by Alien. + +========================================================================== + +PREFACE: +If you were looking for the 'http://sox.homeip.net/slackware-10.1.IHWhqM' +URL, a word of advice. The rc.inet1 script that I put up there is still +available in the subdirectory 'slackware-10.1.IHWhqM' that you'll find +above. +However, Pat Volkerding was not happy with the fact that this particular +script breaks compatibility with older rc.inet1.conf configuration files. +Therefore, I re-designed the pair of scripts: rc.inet1 and rc.wireless +so that their configuration files (rc.inet1.conf and rc.wireless +respectively) remain compatible with the stock Slackware versions. +The new scripts that you will find here, have much more functionality +than my first attempts (still kept for reference in the +slackware-10.1.IHWhqM directory). + +So, read on for all the info you'll need about this new stuff...... + +========================================================================== + +NETWORK CARD CONFIGURATION: +A major complaint with wireless network cards, is that Slackware's +network configuration does not allow for other interfaces than eth0, +eth1, etc... + +My replacement scripts work fine for network interfaces with other names +than eth0, etc1, ..... For instance, you can use them if you have a +wireless interface called wlan0, or ath0, or ra0. + +You will need the set of rc.inet1* and rc.wireless* together - you must +upgrade them all at once (well the *.conf files may stay the same if you +are still using the stock Slackware scripts). + +These new rc scripts will offer support for arbitrary network interface +names, but also support for WPA encryption using wpa_supplicant. +For WPA support you must of course install wpa_supplicant too, but +the sources, build script and Slackware package can be found under + +http://sox.homeip.net/slackware/slackbuilds/wpa_supplicant/ + +Put your WPAPSK (the WPA pre-shared key) in '/etc/wpa_supplicant.conf' +together with other wireless settings +- look at '/etc/wpa_supplicant.sample' for inspiration. + +>>> WEP encryption, naturally, is still supported, like before. <<< + +The rc.wireless script must only be run by the rc.inet1 script, +it is not meant to be run directly by you, the user. + +So, to start your wlan0 interface, you run: + # /etc/rc.d/rc.inet1 wlan0_start +and to restart the interface (i.e. stop, and then start again) you do: + # /etc/rc.d/rc.inet1 wlan0_restart +Look at the bottom of rc.inet1.conf for examples of the (many new) +parameters you can configure for your interfaces. + +I would like to receive your comments on how they work for you, so that +they can hopefully be incorporated into Slackware 11 eventually. + +You can contact me in Freenode IRC in ##slackware. +Look out for alien_ or aloon. + +Eric Hameleers / 28-apr-2005 / + +========================================================================== diff --git a/source/n/network-scripts/doinst.sh b/source/n/network-scripts/doinst.sh new file mode 100644 index 000000000..a9d09b0fa --- /dev/null +++ b/source/n/network-scripts/doinst.sh @@ -0,0 +1,36 @@ +#!/bin/sh +# Handle the incoming configuration files: +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.inet1.new +config etc/rc.d/rc.inet1.conf.new +config etc/rc.d/rc.inet2.new +config etc/rc.d/rc.ip_forward.new +config etc/hosts.new +config etc/hosts.deny.new +config etc/hosts.equiv.new +config etc/networks.new +config etc/nntpserver.new +config etc/resolv.conf.new +config etc/HOSTNAME.new +config etc/host.conf.new +config etc/hosts.allow.new +config etc/protocols.new + +# OK, some of these aren't useful as examples, and have to be +# considered clutter if you've already got the file. +# So out they go. +rm -f etc/HOSTNAME.new +rm -f etc/hosts.new +rm -f etc/resolv.conf.new +rm -f etc/nntpserver.new + diff --git a/source/n/network-scripts/manpages/rc.inet1.8 b/source/n/network-scripts/manpages/rc.inet1.8 new file mode 100644 index 000000000..3e5222ccf --- /dev/null +++ b/source/n/network-scripts/manpages/rc.inet1.8 @@ -0,0 +1,110 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH RC.INET1 8 "03 Dec 2008" "Slackware Version 12.2.0" +.SH NAME +rc.inet1 \- Slackware network configuration script. +.SH DESCRIPTION +.BR rc.inet1 . +This script configures network interfaces. +Wireless interfaces are configured just like any network device +but accept many more configuration parameters. +.br +rc.inet1 reads its configuration parameters from a file `rc.inet1.conf'. +The `rc.inet1.conf' file contains a series of variable array definitions, +with each array index corresponding to a single network interface. +.SH OPTIONS +The way to start your network (the configuration of your nics and +bringing the interfaces up, and creating a default route if required) +is by running the command: +.LP +.B /etc/rc.d.rc.inet1 +.LP +Restarting the whole network (all available network interfaces) +is done in a similar fashion: +.LP +.B /etc/rc.d.rc.inet1 restart +.LP +More generically speaking, you can start/stop/restart any network +interface yourself by running one of the commands: +.LP +.B /etc/rc.d.rc.inet1 INTERFACE_start +.LP +.B /etc/rc.d.rc.inet1 INTERFACE_stop +.LP +.B /etc/rc.d.rc.inet1 INTERFACE_restart +.LP +where +.I `INTERFACE' +is the name of an existing network interface (eth0, wlan0, ...) +.SH WIRELESS +The script +.I rc.wireless +takes care of configuring the wireless parameters for a network +interface. This script does not run independently. Instead, it is executed +by the generic network configuration script +.IR rc.inet1 . +.br +If a wireless interface is detected, +.I rc.wireless +will use +.I iwconfig , +.I iwpriv +and possibly +.I wpa_supplicant +to associate the card with an access point (in managed mode) or peer it with +another computer (in ad-hoc mode), and enable an encryption modus like WPA. +.SH FILES +.TP 25 +.I /etc/rc.d/rc.inet1 +network configuration script +.TP +.I /etc/rc.d/rc.inet1.conf +parameter definition file (is being read by rc.inet1 and rc.wireless) +.TP +.I /etc/rc.d/rc.wireless +wireless configuration script +.TP +.I /etc/rc.d/rc.wireless.conf +parameter definition file ( +.B deprecated +) +.SH DIAGNOSTICS +If you remove the executable bit from the +.I rc.wireless +script, it will never be executed. This can be beneficial if you have +written your own wireless script and don't want Slackware to mess it up. +.SH CAVEATS +The network interface definitions are stored in variable +.I arrays. +The bash shell has no facilities to retrieve the largest array index used. +Therefore, the +.I rc.inet1 +script makes the assumption that array indexes stay below the value of +.BR 6 . +Effectively this means that you can configure up to 6 network interfaces in +rc.inet1.conf by default. +.LP +If you want to configure more than six network interfaces, you will +have to edit the file +.I /etc/rc.d/rc.inet1 +and change the value `6' in the line: +.br +.B \ \ MAXNICS=${MAXNICS:-6} +.br +to a value that is larger than the largest index value you use. +.LP +The /etc/rc.d/rc.wireless script is not meant to be run on it's own by the user! +.SH AUTHOR +Eric Hameleers +.SH "SEE ALSO" +.BR rc.inet1.conf(5), +.BR ifconfig(8), +.BR iwconfig(8), +.BR route(8) diff --git a/source/n/network-scripts/manpages/rc.inet1.conf.5 b/source/n/network-scripts/manpages/rc.inet1.conf.5 new file mode 100644 index 000000000..b23f6783b --- /dev/null +++ b/source/n/network-scripts/manpages/rc.inet1.conf.5 @@ -0,0 +1,202 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH RC.INET1.CONF 5 "03 Dec 2008" "Slackware Version 12.2.0" +.SH NAME +rc.inet1.conf \- Slackware network configuration file. +.SH DESCRIPTION +.B rc.inet1.conf +\. This file contains the configuration settings for network interfaces. +It consists basically of a series of variable array definitions. +Array elements with the same index number will all belong to the same +network interface. +.LP +By default, index number `0' is used for the configuration of interface +.I eth0, +index number `1' is used for +.I eth1 +and so forth. The default interface name can be overruled by the use of +the variable +.B IFNAME. +.LP +This is what a typical section of the file looks like for a card that is +configured to use DHCP, showing all array variables with the index number [0]: +.LP +# Config information for eth0: +.br +IPADDR[0]="" +.br +NETMASK[0]="" +.br +USE_DHCP[0]="yes" +.br +DHCP_HOSTNAME[0]="" +.br +DHCP_TIMEOUT[0]="" +.LP +Alternatively, here is an example for a card that uses a static IP address and +has a non-default name ( +.I ath0 +instead of +.I eth1 +). The array index is [1] in this case. +.LP +# Config information for ath0 (using static IP address): +.br +IFNAME[1]="ath0" +.br +IPADDR[1]="192.168.3.11" +.br +NETMASK[1]="255.255.255.0" +.br +USE_DHCP[1]="" +.br +DHCP_HOSTNAME[1]="" +.br +GATEWAY="192.168.3.1" +.SH GENERAL PARAMETERS +This is a list of network parameters you can set for any card (wired as well +as wired). The example section is for `eth0' by default, i.e. +the array variables all have the array index [0]: +.LP +# Config information for eth0: +.TP 25 +IPADDR[0]="" +# Set this value to an actual IP address if you want static IP +address assignment +.TP +NETMASK[0]="" +# With a static IP address, you are required to also set a netmask +(255.255.255.0 is common) +.TP +USE_DHCP[0]="yes" +# If set to "yes", we will run a DHCP client and have the IP address +dynamically assigned +.TP +DHCP_HOSTNAME[0]="mybox" +# Tell the DHCP server what hostname to register +.TP +DHCP_TIMEOUT[0]=15 +# The default timeout for the DHCP client to wait for server response is +30 seconds, but you might want a shorter wait. +.TP +IFNAME[0]="eth0:1" +# Set up an IP alias. +.TP +HWADDR[0]="00:01:23:45:67:89" +# Overrule the card's hardware MAC address +.TP +MTU[0]="" +# The default MTU is 1500, but you might need 1360 when you use NAT'ed +IPSec traffic. +.TP +DHCP_KEEPRESOLV[0]="yes" +# If you do +.B not +want `/etc/resolv.conf' overwritten by the DHCP client +.TP +DHCP_KEEPNTP[0]="yes" +# If you do +.B not +want `/etc/ntp.conf' overwritten by the DHCP client +.TP +DHCP_KEEPGW[0]="yes" +# If you do +.B not +want the DHCP client to change your default gateway +.TP +DHCP_DEBUG[0]="yes" +# Make dhcpcd show verbose diagnostics +.TP +DHCP_NOIPV4LL[0]="yes" +# Do not assign an +.I `ipv4ll' +address when a DHCP server is not found (ipv4 link-local addressing in the IP range 169.254.0.0/16 is also known as +.I `zeroconf' +address assignment) +.TP +DHCP_IPADDR[0]="" +# Request a specific IP address from the DHCP server +.SH WIRELESS PARAMETERS +For wireless cards, several additional parameter definitions are available. +All these parameters (or better, variables) start with the prefix +.B WLAN_ . +.LP +.TP 25 +WLAN_ESSID[4]=DARKSTAR +# Your Wireless Access Point's name +.TP +WLAN_MODE[4]=Managed +# "Managed" mode for use with Access Points. "Ad-Hoc" is for +peer-to-peer connections. +.TP +WLAN_RATE[4]="54M auto" +# The transmission rates you want the driver to try ("auto" means +that bandwidth can be variable) +.TP +WLAN_CHANNEL[4]="auto" +# The channel to which the Access Point is tuned ("auto" to let the +driver find out the correct channel) +.TP +WLAN_KEY[4]="D5A31F54ACF0487C2D0B1C10D2" +# Definition of a WEP key +.TP +WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=the_64_character_key" +# Some drivers require a private ioctl to be set through the iwpriv command. +If more than one is required, you can place them in the +.I IWPRIV +parameter (separated with the pipe (|) character, see the example). +.TP +WLAN_WPA[4]="wpa_supplicant" +# Run wpa_supplicant for WPA support +.TP +WLAN_WPADRIVER[4]="ndiswrapper" +# Tell wpa_supplicant to specifically use the ndiswrapper driver. +If you leave this empty the `wext' driver is used by default; most +modern wireless drivers use 'wext'. +.TP +WLAN_WPAWAIT[4]=30 +# In case it takes long for the WPA association to finish, you can +increase the wait time before rc.wireless decides that association +failed (defaults to 10 seconds) +.SH FILES +.TP 25 +.I /etc/rc.d/rc.inet1 +network configuration script +.TP +.I /etc/rc.d/rc.inet1.conf +configuration parameter file (is being read by rc.inet1 andrc.wireless) +.TP +.I /etc/rc.d/rc.wireless +wireless configuration script +.TP +.I /etc/rc.d/rc.wireless.conf +configuration parameter file ( +.B deprecated +) +.SH CAVEATS +The network interface definitions are stored in variable +.I arrays. +The bash shell has no facilities to retrieve the largest array index used. +Therefore, the +.I rc.inet1 +script makes the assumption that array indexes stay below the value of +.B 6 +\. +.LP +If you want to configure more than six network interfaces, you will +have to edit the file +.I /etc/rc.d/rc.inet1 +and change the value `6' in the line +.B MAXNICS=${MAXNICS:-6} +to the number of network interfaces you wish to use. +.SH AUTHOR +Eric Hameleers +.SH "SEE ALSO" +.BR rc.inet1(8) diff --git a/source/n/network-scripts/network-scripts.SlackBuild b/source/n/network-scripts/network-scripts.SlackBuild new file mode 100755 index 000000000..319ca5e01 --- /dev/null +++ b/source/n/network-scripts/network-scripts.SlackBuild @@ -0,0 +1,70 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=network-scripts +VERSION=${VERSION:-13.0} +ARCH=${ARCH:-noarch} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG/etc/rc.d +( cd $PKG/etc/rc.d + for file in rc.inet1.conf rc.inet1 rc.inet2 rc.ip_forward ; do + cp -a $CWD/scripts/$file ${file}.new + done + chown root:root * + chmod 755 rc.inet1.new rc.inet2.new + chmod 600 rc.inet1.conf.new +) +( cd $PKG/etc + for file in HOSTNAME host.conf hosts.allow hosts.deny hosts.equiv hosts networks nntpserver protocols resolv.conf ; do + cp -a $CWD/scripts/$file ${file}.new + chmod 644 ${file}.new + done + chown root:root * +) +mkdir -p $PKG/sbin +cp -a $CWD/scripts/netconfig $PKG/sbin/netconfig +chown root:root $PKG/sbin/netconfig +chmod 755 $PKG/sbin/netconfig +mkdir -p $PKG/var/log/setup +cp -a $CWD/scripts/setup.netconfig $PKG/var/log/setup +chown root:root $PKG/var/log/setup/setup.netconfig +chmod 755 $PKG/var/log/setup/setup.netconfig + +# Add manpages: +mkdir -p $PKG/usr/man/man{5,8} +cat $CWD/manpages/rc.inet1.conf.5 | gzip -9c > $PKG/usr/man/man5/rc.inet1.conf.5.gz +cat $CWD/manpages/rc.inet1.8 | gzip -9c > $PKG/usr/man/man8/rc.inet1.8.gz + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/network-scripts/scripts/HOSTNAME b/source/n/network-scripts/scripts/HOSTNAME new file mode 100644 index 000000000..409452f78 --- /dev/null +++ b/source/n/network-scripts/scripts/HOSTNAME @@ -0,0 +1 @@ +darkstar.example.net diff --git a/source/n/network-scripts/scripts/host.conf b/source/n/network-scripts/scripts/host.conf new file mode 100644 index 000000000..a659e913a --- /dev/null +++ b/source/n/network-scripts/scripts/host.conf @@ -0,0 +1,2 @@ +order hosts, bind +multi on diff --git a/source/n/network-scripts/scripts/hosts b/source/n/network-scripts/scripts/hosts new file mode 100644 index 000000000..2c26f958b --- /dev/null +++ b/source/n/network-scripts/scripts/hosts @@ -0,0 +1,19 @@ +# +# hosts This file describes a number of hostname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# On small systems, this file can be used instead of a +# "named" name server. Just add the names, addresses +# and any aliases to this file... +# +# By the way, Arnt Gulbrandsen says that 127.0.0.1 +# should NEVER be named with the name of the machine. It causes problems +# for some (stupid) programs, irc and reputedly talk. :^) +# + +# For loopbacking. +127.0.0.1 localhost +127.0.0.1 darkstar.example.net darkstar + +# End of hosts. + diff --git a/source/n/network-scripts/scripts/hosts.allow b/source/n/network-scripts/scripts/hosts.allow new file mode 100644 index 000000000..d375b5f82 --- /dev/null +++ b/source/n/network-scripts/scripts/hosts.allow @@ -0,0 +1,12 @@ +# +# hosts.allow This file describes the names of the hosts which are +# allowed to use the local INET services, as decided by +# the '/usr/sbin/tcpd' server. +# +# Version: @(#)/etc/hosts.allow 1.00 05/28/93 +# +# Author: Fred N. van Kempen, +# +# + +localhost + +# End of hosts.equiv. diff --git a/source/n/network-scripts/scripts/netconfig b/source/n/network-scripts/scripts/netconfig new file mode 100644 index 000000000..04afd698e --- /dev/null +++ b/source/n/network-scripts/scripts/netconfig @@ -0,0 +1,632 @@ +#!/bin/sh +# A script to do basic network configuration. +# Mostly written by Patrick Volkerding . +# Modified to use /etc/rc.d/rc.inet1.conf Tue Aug 26 16:51:48 PDT 2003 + +write_config_files() { +# +############################################################################ +# The rc.inet1.conf file. +############################################################################ +# + +# If we're doing loopback, we don't want 127.0.0.1 and 255.255.255.0 in +# rc.inet1.conf... it's better to leave the values null. However, since +# we use the IP in other places, we need to make a copy for here. +RCIPCOPY=$IPADDR +RCMASKCOPY=$NETMASK +if [ "$RCIPCOPY" = "127.0.0.1" ]; then + RCIPCOPY="" + RCMASKCOPY="" +fi + +# echo "Creating /$RC..." +/bin/cat << ENDFILE > $RC +# /etc/rc.d/rc.inet1.conf +# +# This file contains the configuration settings for network interfaces. +# If USE_DHCP[interface] is set to "yes", this overrides any other settings. +# If you don't have an interface, leave the settings null (""). + +# You can configure network interfaces other than eth0,eth1... by setting +# IFNAME[interface] to the interface's name. If IFNAME[interface] is unset +# or empty, it is assumed you're configuring eth. + +# Several other parameters are available, the end of this file contains a +# comprehensive set of examples. + +# ============================================================================= + +# Config information for eth0: +IPADDR[0]="$RCIPCOPY" +NETMASK[0]="$RCMASKCOPY" +USE_DHCP[0]="$USE_DHCP" +DHCP_HOSTNAME[0]="$DHCP_HOSTNAME" + +# Config information for eth1: +IPADDR[1]="" +NETMASK[1]="" +USE_DHCP[1]="" +DHCP_HOSTNAME[1]="" + +# Config information for eth2: +IPADDR[2]="" +NETMASK[2]="" +USE_DHCP[2]="" +DHCP_HOSTNAME[2]="" + +# Config information for eth3: +IPADDR[3]="" +NETMASK[3]="" +USE_DHCP[3]="" +DHCP_HOSTNAME[3]="" + +# Default gateway IP address: +GATEWAY="$GATEWAY" + +# Change this to "yes" for debugging output to stdout. Unfortunately, +# /sbin/hotplug seems to disable stdout so you'll only see debugging output +# when rc.inet1 is called directly. +DEBUG_ETH_UP="no" + +## Example config information for wlan0. Uncomment the lines you need and fill +## in your info. (You may not need all of these for your wireless network) +#IFNAME[4]="wlan0" +#IPADDR[4]="" +#NETMASK[4]="" +#USE_DHCP[4]="yes" +#DHCP_HOSTNAME[4]="icculus-wireless" +#DHCP_KEEPRESOLV[4]="yes" +#DHCP_KEEPNTP[4]="yes" +#DHCP_KEEPGW[4]="yes" +#DHCP_IPADDR[4]="" +#WLAN_ESSID[4]=BARRIER05 +#WLAN_MODE[4]=Managed +##WLAN_RATE[4]="54M auto" +##WLAN_CHANNEL[4]="auto" +##WLAN_KEY[4]="D5AD1F04ACF048EC2D0B1C80C7" +##WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16" +#WLAN_WPA[4]="wpa_supplicant" +#WLAN_WPADRIVER[4]="ndiswrapper" + +## Some examples of additional network parameters that you can use. +## Config information for wlan0: +#IFNAME[4]="wlan0" # Use a different interface name nstead of + # the default 'eth4' +#HWADDR[4]="00:01:23:45:67:89" # Overrule the card's hardware MAC address +#MTU[4]="" # The default MTU is 1500, but you might need + # 1360 when you use NAT'ed IPSec traffic. +#DHCP_KEEPRESOLV[4]="yes" # If you dont want /etc/resolv.conf overwritten +#DHCP_KEEPNTP[4]="yes" # If you don't want ntp.conf overwritten +#DHCP_KEEPGW[4]="yes" # If you don't want the DHCP server to change + # your default gateway +#DHCP_IPADDR[4]="" # Request a specific IP address from the DHCP + # server +#WLAN_ESSID[4]=DARKSTAR # Here, you can override _any_ parameter + # defined in rc.wireless.conf, by prepending + # 'WLAN_' to the parameter's name. Useful for + # those with multiple wireless interfaces. +#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=thekey" + # Some drivers require a private ioctl to be + # set through the iwpriv command. If more than + # one is required, you can place them in the + # IWPRIV parameter (separated with the pipe (|) + # character, see the example). +ENDFILE +# +############################################################################ +# The networks file. +############################################################################ +# +#echo "Creating /$ETCNETWORKS..." +/bin/cat <$ETCNETWORKS +# +# networks This file describes a number of netname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# + +loopback 127.0.0.0 +localnet $NETWORK + +# End of networks. +EOF +chmod 644 $ETCNETWORKS +# +############################################################################ +# The hosts file. +############################################################################ +# +#echo "Creating /$HOSTS..." +/bin/cat << EOF > $HOSTS +# +# hosts This file describes a number of hostname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# On small systems, this file can be used instead of a +# "named" name server. Just add the names, addresses +# and any aliases to this file... +# +# By the way, Arnt Gulbrandsen says that 127.0.0.1 +# should NEVER be named with the name of the machine. It causes problems +# for some (stupid) programs, irc and reputedly talk. :^) +# + +# For loopbacking. +127.0.0.1 localhost +$IPADDR $HOSTNM.$DOMAIN $HOSTNM + +# End of hosts. + +EOF +chmod 644 $HOSTS +# +############################################################################ +# The resolv.conf file. +############################################################################ +# +if [ ! "$NAMESERVER" = "" ]; then + echo "search $DOMAIN" >$RESOLV + echo "nameserver $NAMESERVER" >>$RESOLV +else + echo "search $DOMAIN" >$RESOLV +fi +if [ -f $RESOLV ]; then + chmod 644 $RESOLV +fi +# +############################################################################ +# The rc.netdevice file. +############################################################################ +# +if [ -r /cardfound ]; then + if [ ! "`cat /cardfound`" = "" ]; then + cat << EOF > etc/rc.d/rc.netdevice +# Load module for network device. +# This script is automatically generated during the installation. + +/sbin/modprobe `cat /cardfound` + +EOF + chmod 755 etc/rc.d/rc.netdevice + fi +fi +rm -f $TMP/tempmsg /cardfound +} # end write_config_files + +TMP=/var/log/setup/tmp +if [ ! -d $TMP ]; then + mkdir -p $TMP + chmod 700 $TMP +fi + +# This checks IP address syntax. +# usage: syntax_check ADDRESS #-OF-EXPECTED-SEGMENTS (up to 4) +# example: syntax_check 123.22.43.1 4 +# returns: 0=found correct 1=too many fields 2=non numeric field found +syntax_check_color() { + RET_CODE=0 + SCRATCH=$1 + SCRATCH=`echo $SCRATCH | tr "." "/"` + INDEX=$2 + while [ ! "$INDEX" = "0" ]; do + # OK, so I'm a LISP-head :^) + FIELD=`basename $SCRATCH` + SCRATCH=`dirname $SCRATCH` + if expr $FIELD + 1 1> /dev/null 2> /dev/null; then + true + else + RET_CODE=2; # non-numeric field + fi + INDEX=`expr $INDEX - 1` + done + if [ ! "$SCRATCH" = "." ]; then + RET_CODE=1; # too many arguments + fi + if [ "$3" = "WARN" -a ! "$RET_CODE" = "0" ]; then + cat << EOF > $TMP/tempmsg + +The address you have entered seems to be non-standard. We were expecting +$2 groups of numbers seperated by dots, like: 127.0.0.1 +Are you absolutely sure you want to use the address $1? + +EOF + dialog --title "WARNING" --yesno "`cat $TMP/tempmsg`" 9 72 + if [ $? = 0 ]; then + RET_CODE = 0; + fi + rm -r $TMP/tempmsg + else + if [ "$3" = "ECHO" ]; then + echo $RET_CODE; + fi + fi + return $RET_CODE; +} + +# Figure out where we are... cheap hack. +if [ ! -e etc/slackware-version -a ! -e /etc/installer -a ! -e bin/bash ]; then + cd / +fi; + +# IMPORTANT!!! NO LEADING '/' in the paths below, or this script will not +# function from the bootdisk. +RC=etc/rc.d/rc.inet1.conf # Where rc.inet1.conf file is. +RESOLV=etc/resolv.conf # Where resolv.conf file is. +HOSTS=etc/hosts # Where hosts file is. +ETCNETWORKS=etc/networks # Where networks file is. +USE_DHCP="" # Use DHCP? "" == no. +DHCP_HOSTNAME="" # This is our DHCP hostname. +# +# defaults: +NETWORK=127.0.0.0 +IPADDR=127.0.0.1 +NETMASK=255.255.255.0 + + +# Main loop: +while [ 0 ]; do +cat << EOF > $TMP/tempmsg +First, we'll need the name you'd like to give your host. +Only the base hostname is needed right now. (not the domain) + +Enter hostname: +EOF + dialog --title "ENTER HOSTNAME" --inputbox "`cat $TMP/tempmsg`" 11 65 \ + $HOSTNM 2> $TMP/SeThost + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeThost $TMP/tempmsg + exit + fi + HOSTNM="`cat $TMP/SeThost`" + rm -f $TMP/SeThost $TMP/tempmsg + if [ ! "$HOSTNM" = "" ]; then + break; + fi +done + +while [ 0 ]; do +cat << EOF > $TMP/tempmsg +Now, we need the domain name for this machine, such as: + +example.org + +Do not supply a leading '.' + +Enter domain name for $HOSTNM: +EOF + dialog --title "ENTER DOMAINNAME FOR '$HOSTNM'" --inputbox \ +"`cat $TMP/tempmsg`" \ +14 64 $DOMAIN 2> $TMP/SeTdom + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTdom $TMP/tempmsg + exit + fi + DOMAIN="`cat $TMP/SeTdom`" + rm -f $TMP/SeTdom $TMP/tempmsg + if [ ! "$DOMAIN" = "" ]; then + break; + fi +done + +echo $HOSTNM.$DOMAIN > etc/HOSTNAME + +dialog --title "SETUP IP ADDRESS FOR '$HOSTNM.$DOMAIN'" \ +--default-item DHCP \ +--menu \ +"Now we need to know how your machine connects to the network.\n\ +If you have an internal network card and an assigned IP address, gateway, \ +and DNS, use the 'static IP' choice to enter these values. If your IP \ +address is assigned by a DHCP server (commonly used by cable modem and DSL \ +services), select 'DHCP'. If you do not have a network card, select \ +the 'loopback' choice. 'loopback' is also the correct choice if your \ +only connection to the network will be through a serial modem \ +(with SLIP or PPP), or if you are using a laptop network card (these \ +are configured in /etc/pcmcia/). What type of network connection \ +best describes your machine?" 20 70 3 \ +"static IP" "Use a static IP address to configure ethernet" \ +"DHCP" "Use a DHCP server to configure ethernet" \ +"loopback" "Set up a loopback connection (modem or no net)" 2> $TMP/reply +if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/reply + exit +fi +REPLY=`cat $TMP/reply` +rm -f $TMP/reply + +if [ "$REPLY" = "DHCP" ]; then + USE_DHCP="yes" + dialog --title "SET DHCP HOSTNAME" --inputbox "Some network providers require \ +that the DHCP hostname be set in order to connect. If so, they'll have assigned \ +a hostname to your machine, which may look something like CC-NUMBER-A (this \ +depends on your ISP). If you were assigned a DHCP hostname, please enter it \ +below. If you do not have a DHCP hostname, just hit ENTER or Cancel." 13 62 \ +2> $TMP/SeTDHCPHOST + NEW_DHCPHOST="`cat $TMP/SeTDHCPHOST`" + rm -f $TMP/SeTDHCPHOST + # OK, if we actually got something, use it. + DHCP_HOSTNAME="$NEW_DHCPHOST" +elif [ "$REPLY" = "loopback" ]; then + LOOPBACK="yes" +else + LOOPBACK="no" +fi + +if [ "$LOOPBACK" = "no" -a ! "$USE_DHCP" = "yes" ]; then + + while [ 0 ]; do + if [ -r $TMP/SeTIP ]; then + IPADDR=`cat $TMP/SeTIP` + fi + cat << EOF > $TMP/tempmsg +Enter your IP address for the local machine. Example: +111.112.113.114 +Enter IP address for $HOSTNM (aaa.bbb.ccc.ddd): +EOF + dialog --title "ENTER IP ADDRESS FOR '$HOSTNM.$DOMAIN'" --inputbox \ +"`cat $TMP/tempmsg`" \ +10 68 $IPADDR 2> $TMP/SeTlip + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTlip $TMP/tempmsg + exit + fi + IPADDR="`cat $TMP/SeTlip`" + rm -f $TMP/SeTlip $TMP/tempmsg + if [ "$IPADDR" = "" ]; then + continue; + fi + syntax_check_color $IPADDR 4 WARN + if [ $? = 0 ]; then + echo $IPADDR > $TMP/SeTIP + break; + fi + done + + while [ 0 ]; do + if [ -r $TMP/SeTnetmask ]; then + NETMASK=`cat $TMP/SeTnetmask` + fi + cat << EOF > $TMP/tempmsg +Enter your netmask. This will generally look something +like this: 255.255.255.0 +Enter netmask (aaa.bbb.ccc.ddd): +EOF + dialog --title "ENTER NETMASK FOR LOCAL NETWORK" --inputbox \ +"`cat $TMP/tempmsg`" \ +10 65 $NETMASK 2> $TMP/SeTnmask + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTnmask $TMP/tempmsg + exit + fi + NETMASK="`cat $TMP/SeTnmask`" + rm -f $TMP/SeTnmask $TMP/tempmsg + if [ "$NETMASK" = "" ]; then + continue; + fi + syntax_check_color $NETMASK 4 WARN + if [ $? = 0 ]; then + echo $NETMASK > $TMP/SeTnetmask + break; + fi + done + + # Set broadcast/network addresses automatically: + BROADCAST=`ipmask $NETMASK $IPADDR | cut -f 1 -d ' '` + NETWORK=`ipmask $NETMASK $IPADDR | cut -f 2 -d ' '` + + while [ 0 ]; do + if [ -r $TMP/SeTgateway ]; then + GATEWAY=`cat $TMP/SeTgateway` + fi + cat << EOF > $TMP/tempmsg +Enter the address for the gateway on your network, such as: +`echo $IPADDR | cut -f 1-3 -d .`.1 + +If you don't have a gateway on your network just hit ENTER +without entering a gateway IP address. + +Enter gateway address (aaa.bbb.ccc.ddd): +EOF + dialog --title "ENTER GATEWAY ADDRESS" --inputbox "`cat $TMP/tempmsg`" \ + 14 64 $GATEWAY 2> $TMP/SeTgate + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/SeTgate $TMP/tempmsg + exit + fi + GATEWAY="`cat $TMP/SeTgate`" + rm -f $TMP/SeTgate $TMP/tempmsg + if [ "$GATEWAY" = "" ]; then + echo > $TMP/SeTgateway + break; + fi + syntax_check_color $GATEWAY 4 WARN + if [ $? = 0 ]; then + echo $GATEWAY > $TMP/SeTgateway + break; + fi + done +fi + +if [ "$LOOPBACK" = "no" ]; then + dialog --title "USE A NAMESERVER?" --yesno "Will you be accessing a \ +nameserver?" 5 42 + if [ $? = 0 ]; then + if [ ! "`cat $TMP/SeTns 2> /dev/null`" = "" ]; then + DNSSAMPLE="`cat $TMP/SeTns 2> /dev/null`" + elif [ "$GATEWAY" = "" ]; then + DNSSAMPLE=`echo $IPADDR | cut -f 1-3 -d .` + else + DNSSAMPLE=$GATEWAY + fi + while [ "$NAMESERVER" = "" ]; do + cat << EOF > $TMP/tempmsg +Here is your current IP address, full hostname, and base hostname: +$IPADDR $HOSTNM.$DOMAIN $HOSTNM + +Please give the IP address of the name server to use, +such as $DNSSAMPLE. + +You can add more Domain Name Servers later by editing /$RESOLV. + +Primary name server to use (aaa.bbb.ccc.ddd): +EOF + dialog --title "SELECT NAMESERVER" --inputbox \ +"`cat $TMP/tempmsg`" 17 72 $DNSSAMPLE 2> $TMP/SeTns + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/tempmsg $TMP/SeTns + break + fi + NAMESERVER="`cat $TMP/SeTns`" + rm -f $TMP/tempmsg $TMP/SeTns + done + fi +fi + +# Check for existing network driver: +unset DONOTPROBE +if cat /proc/net/dev | grep eth0 1> /dev/null 2> /dev/null ; then + DONOTPROBE=true +fi + +# Really, this rc.netdevice thing is mostly obsolete except for +# handmade local scripts anyway, these days with udev... +# So, we'll skip it: +DONOTPROBE=true + +if [ -d lib/modules/`uname -r` \ + -a ! "$LOOPBACK" = "yes" \ + -a ! -x etc/rc.d/rc.hotplug \ + -a ! "$DONOTPROBE" = "true" \ + -a ! -r /cardfound ]; then + dialog --title "PROBE FOR NETWORK CARD?" --menu "If you like, we \ +can look to see what kind of network card you have in your machine, and \ +if we find one create an /etc/rc.d/rc.netdevice script to load the module \ +for it at boot time. There's a slight bit of danger that the probing \ +can cause problems, but it almost always works. If you'd rather configure \ +your system manually, you can skip the probing process and edit \ +/etc/rc.d/rc.modules or /etc/modules.conf later to have it load the right module." \ +16 68 2 \ +"probe" "look for network cards to set up" \ +"skip" "skip probe; edit /etc/rc.d/rc.modules later" 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm -f $TMP/reply + exit + fi + REPLY=`cat $TMP/reply` + rm -f $TMP/reply + if [ ! "$REPLY" = "skip" ]; then + for card in 3c59x 82596 dgrs eepro100 e1000 epic100 hp100 lance \ + ne2k-pci olympic pcnet32 rcpci 8139too 8139cp tlan tulip via-rhine \ + yellowfin natsemi ; do + chroot . /sbin/modprobe $card 2> /dev/null + if [ $? = 0 ]; then + dialog --title "CARD DETECTED" --msgbox "A networking card using \ +the $card.o module has been detected." 5 72 + echo "$card" > /cardfound + break; + fi + done + if [ ! -r /cardfound ]; then + # Don't probe for com20020, because it doesn't check and will always load. + # Don't probe for arlan, because it needs irq= to work. + # Don't probe for com90io or com90xx because they taint the kernel. + for card in depca ibmtr 3c359 3c501 3c503 3c505 3c507 3c509 3c515 ac3200 \ + abyss acenic at1700 cosa cs89x0 de4x5 de600 \ + de620 dmfe dl2k e2100 eepro eexpress eth16i ewrk3 fealnx hamachi hostess_sv11 \ + hp-plus hp lanstreamer ni5010 ni52 ni65 ns83820 sb1000 sealevel sis900 sk98lin skfp smc-ultra \ + smc9194 smctr starfire sungem sunhme tg3 wd e100 iph5526 lp486e tmspci winbond-840 ; do + chroot . /sbin/modprobe $card 2> /dev/null + if [ $? = 0 ]; then + dialog --title "CARD DETECTED" --msgbox "A networking card using \ +the $card.o module has been detected." 5 72 + echo "$card" > /cardfound + break + fi + done + fi + if [ ! -r /cardfound ]; then + dialog --title "NO CARD DETECTED" --msgbox "Sorry, but no network \ +card could be probed for on your system. Some cards (like non-PCI NE2000s) \ +must be supplied with the I/O address to use and can't be probed for safely. \ +You'll have to try to configure the card later by editing \ +/etc/rc.d/rc.modules or recompiling your kernel." 9 70 + fi + fi +fi + +if [ "$LOOPBACK" = "yes" ]; then + dialog --title "NETWORK SETUP COMPLETE" --yesno "Your networking \ +system is now configured to use loopback: + +IP address: 127.0.0.1 +Netmask: 255.255.255.0 + +Is this correct? Press 'Yes' to continue, or 'No' to reconfigure." 0 0 + RETVAL=$? +elif [ "$USE_DHCP" = "" ]; then + while [ 0 ]; do + dialog --title "CONFIRM NETWORK SETUP" \ +--ok-label Accept \ +--extra-label Edit \ +--cancel-label Restart \ +--inputmenu \ +"These are the settings you have entered. To accept them and complete \ +the networking setup, press enter. If you need to make any changes, you \ +can do that now (or reconfigure later using 'netconfig')." \ +22 60 12 \ +"Hostname:" "$HOSTNM" \ +"Domain name:" "$DOMAIN" \ +"IP address:" "$IPADDR" \ +"Netmask:" "$NETMASK" \ +"Gateway:" "$GATEWAY" \ +"Nameserver:" "$NAMESERVER" 2> $TMP/tempmsg + RETVAL=$? + if [ "$RETVAL" = "3" ]; then + FIELD=`cat $TMP/tempmsg | cut -f 1 -d : | cut -f 2- -d ' '` + NEWVAL=`cat $TMP/tempmsg | cut -f 2 -d : | cut -f 2- -d ' '` + if [ "$FIELD" = "Hostname" ]; then + HOSTNM=$NEWVAL + elif [ "$FIELD" = "Domain name" ]; then + DOMAIN=$NEWVAL + elif [ "$FIELD" = "IP address" ]; then + IPADDR=$NEWVAL + elif [ "$FIELD" = "Netmask" ]; then + NETMASK=$NEWVAL + elif [ "$FIELD" = "Gateway" ]; then + GATEWAY=$NEWVAL + elif [ "$FIELD" = "Nameserver" ]; then + NAMESERVER=$NEWVAL + fi + else + break + fi + done +else # DHCP was used + dialog --title "CONFIRM SETUP COMPLETE" \ +--yesno "Your networking system is now configured to use DHCP: + + Hostname: $HOSTNM + Domain name: $DOMAIN + IP address: (use DHCP server) + Netmask: (use DHCP server) + Gateway: (use DHCP server) + Nameserver: (use DHCP server) + +Is this correct? Press 'Yes' to continue, or 'No' to reconfigure." 0 0 + RETVAL=$? +fi + +if [ "$RETVAL" = "0" ]; then + echo $HOSTNM.$DOMAIN > etc/HOSTNAME + write_config_files + if [ "$1" = "" ]; then + dialog --msgbox "Settings accepted. Basic network configuration is complete." 6 40 + fi +else + if [ "$1" = "" ]; then + dialog --msgbox "Settings discarded. Run the 'netconfig' command again if you need to reconfigure your network settings." 6 60 + fi +fi + +exit $RETVAL + diff --git a/source/n/network-scripts/scripts/networks b/source/n/network-scripts/scripts/networks new file mode 100644 index 000000000..50d5162ee --- /dev/null +++ b/source/n/network-scripts/scripts/networks @@ -0,0 +1,10 @@ +# +# networks This file describes a number of netname-to-address +# mappings for the TCP/IP subsystem. It is mostly +# used at boot time, when no name servers are running. +# + +loopback 127.0.0.0 +localnet 127.0.0.0 + +# End of networks. diff --git a/source/n/network-scripts/scripts/nntpserver b/source/n/network-scripts/scripts/nntpserver new file mode 100644 index 000000000..3fa9a61b1 --- /dev/null +++ b/source/n/network-scripts/scripts/nntpserver @@ -0,0 +1 @@ +news.my_news_server.com diff --git a/source/n/network-scripts/scripts/protocols b/source/n/network-scripts/scripts/protocols new file mode 100644 index 000000000..db3254c97 --- /dev/null +++ b/source/n/network-scripts/scripts/protocols @@ -0,0 +1,146 @@ +# +# Internet protocols +# +# $FreeBSD: src/etc/protocols,v 1.16 2002/02/10 08:19:58 dd Exp $ +# from: @(#)protocols 5.1 (Berkeley) 4/17/89 +# +# See also http://www.iana.org/assignments/protocol-numbers +# +ip 0 IP # internet protocol, pseudo protocol number +#hopopt 0 HOPOPT # hop-by-hop options for ipv6 +icmp 1 ICMP # internet control message protocol +igmp 2 IGMP # internet group management protocol +ggp 3 GGP # gateway-gateway protocol +ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') +st2 5 ST2 # ST2 datagram mode (RFC 1819) +tcp 6 TCP # transmission control protocol +cbt 7 CBT # CBT, Tony Ballardie +egp 8 EGP # exterior gateway protocol +igp 9 IGP # any private interior gateway (Cisco: for IGRP) +bbn-rcc 10 BBN-RCC-MON # BBN RCC Monitoring +nvp 11 NVP-II # Network Voice Protocol +pup 12 PUP # PARC universal packet protocol +argus 13 ARGUS # ARGUS +emcon 14 EMCON # EMCON +xnet 15 XNET # Cross Net Debugger +chaos 16 CHAOS # Chaos +udp 17 UDP # user datagram protocol +mux 18 MUX # Multiplexing protocol +dcn 19 DCN-MEAS # DCN Measurement Subsystems +hmp 20 HMP # host monitoring protocol +prm 21 PRM # packet radio measurement protocol +xns-idp 22 XNS-IDP # Xerox NS IDP +trunk-1 23 TRUNK-1 # Trunk-1 +trunk-2 24 TRUNK-2 # Trunk-2 +leaf-1 25 LEAF-1 # Leaf-1 +leaf-2 26 LEAF-2 # Leaf-2 +rdp 27 RDP # "reliable datagram" protocol +irtp 28 IRTP # Internet Reliable Transaction Protocol +iso-tp4 29 ISO-TP4 # ISO Transport Protocol Class 4 +netblt 30 NETBLT # Bulk Data Transfer Protocol +mfe-nsp 31 MFE-NSP # MFE Network Services Protocol +merit-inp 32 MERIT-INP # MERIT Internodal Protocol +sep 33 SEP # Sequential Exchange Protocol +3pc 34 3PC # Third Party Connect Protocol +idpr 35 IDPR # Inter-Domain Policy Routing Protocol +xtp 36 XTP # Xpress Tranfer Protocol +ddp 37 DDP # Datagram Delivery Protocol +idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport Proto +tp++ 39 TP++ # TP++ Transport Protocol +il 40 IL # IL Transport Protocol +ipv6 41 IPV6 # ipv6 +sdrp 42 SDRP # Source Demand Routing Protocol +ipv6-route 43 IPV6-ROUTE # routing header for ipv6 +ipv6-frag 44 IPV6-FRAG # fragment header for ipv6 +idrp 45 IDRP # Inter-Domain Routing Protocol +rsvp 46 RSVP # Resource ReSerVation Protocol +gre 47 GRE # Generic Routing Encapsulation +mhrp 48 MHRP # Mobile Host Routing Protocol +bna 49 BNA # BNA +esp 50 ESP # encapsulating security payload +ah 51 AH # authentication header +i-nlsp 52 I-NLSP # Integrated Net Layer Security TUBA +swipe 53 SWIPE # IP with Encryption +narp 54 NARP # NBMA Address Resolution Protocol +mobile 55 MOBILE # IP Mobility +tlsp 56 TLSP # Transport Layer Security Protocol +skip 57 SKIP # SKIP +ipv6-icmp 58 IPV6-ICMP # ICMP for IPv6 +ipv6-nonxt 59 IPV6-NONXT # no next header for ipv6 +ipv6-opts 60 IPV6-OPTS # destination options for ipv6 +# 61 # any host internal protocol +cftp 62 CFTP # CFTP +# 63 # any local network +sat-expak 64 SAT-EXPAK # SATNET and Backroom EXPAK +kryptolan 65 KRYPTOLAN # Kryptolan +rvd 66 RVD # MIT Remote Virtual Disk Protocol +ippc 67 IPPC # Internet Pluribus Packet Core +# 68 # any distributed file system +sat-mon 69 SAT-MON # SATNET Monitoring +visa 70 VISA # VISA Protocol +ipcv 71 IPCV # Internet Packet Core Utility +cpnx 72 CPNX # Computer Protocol Network Executive +cphb 73 CPHB # Computer Protocol Heart Beat +wsn 74 WSN # Wang Span Network +pvp 75 PVP # Packet Video Protocol +br-sat-mon 76 BR-SAT-MON # Backroom SATNET Monitoring +sun-nd 77 SUN-ND # SUN ND PROTOCOL-Temporary +wb-mon 78 WB-MON # WIDEBAND Monitoring +wb-expak 79 WB-EXPAK # WIDEBAND EXPAK +iso-ip 80 ISO-IP # ISO Internet Protocol +vmtp 81 VMTP # Versatile Message Transport +secure-vmtp 82 SECURE-VMTP # SECURE-VMTP +vines 83 VINES # VINES +ttp 84 TTP # TTP +nsfnet-igp 85 NSFNET-IGP # NSFNET-IGP +dgp 86 DGP # Dissimilar Gateway Protocol +tcf 87 TCF # TCF +eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) +ospf 89 OSPFIGP # Open Shortest Path First IGP +sprite-rpc 90 Sprite-RPC # Sprite RPC Protocol +larp 91 LARP # Locus Address Resolution Protocol +mtp 92 MTP # Multicast Transport Protocol +ax.25 93 AX.25 # AX.25 Frames +ipip 94 IPIP # Yet Another IP encapsulation +micp 95 MICP # Mobile Internetworking Control Pro. +scc-sp 96 SCC-SP # Semaphore Communications Sec. Pro. +etherip 97 ETHERIP # Ethernet-within-IP Encapsulation +encap 98 ENCAP # Yet Another IP encapsulation +# 99 # any private encryption scheme +gmtp 100 GMTP # GMTP +ifmp 101 IFMP # Ipsilon Flow Management Protocol +pnni 102 PNNI # PNNI over IP +pim 103 PIM # Protocol Independent Multicast +aris 104 ARIS # ARIS +scps 105 SCPS # SCPS +qnx 106 QNX # QNX +a/n 107 A/N # Active Networks +ipcomp 108 IPComp # IP Payload Compression Protocol +snp 109 SNP # Sitara Networks Protocol +compaq-peer 110 Compaq-Peer # Compaq Peer Protocol +ipx-in-ip 111 IPX-in-IP # IPX in IP +vrrp 112 VRRP # Virtual Router Redundancy Protocol +pgm 113 PGM # PGM Reliable Transport Protocol +# 114 # any 0-hop protocol +l2tp 115 L2TP # Layer Two Tunneling Protocol +ddx 116 DDX # D-II Data Exchange +iatp 117 IATP # Interactive Agent Transfer Protocol +st 118 ST # Schedule Transfer +srp 119 SRP # SpectraLink Radio Protocol +uti 120 UTI # UTI +smp 121 SMP # Simple Message Protocol +sm 122 SM # SM +ptp 123 PTP # Performance Transparency Protocol +isis 124 ISIS # ISIS over IPv4 +fire 125 FIRE +crtp 126 CRTP # Combat Radio Transport Protocol +crudp 127 CRUDP # Combat Radio User Datagram +sscopmce 128 SSCOPMCE +iplt 129 IPLT +sps 130 SPS # Secure Packet Shield +pipe 131 PIPE # Private IP Encapsulation within IP +sctp 132 SCTP # Stream Control Transmission Protocol +fc 133 FC # Fibre Channel +# 134-254 # Unassigned +divert 254 DIVERT # Divert pseudo-protocol [non IANA] +# 255 # Reserved diff --git a/source/n/network-scripts/scripts/rc.inet1 b/source/n/network-scripts/scripts/rc.inet1 new file mode 100644 index 000000000..0080f7dac --- /dev/null +++ b/source/n/network-scripts/scripts/rc.inet1 @@ -0,0 +1,276 @@ +#! /bin/sh +# /etc/rc.d/rc.inet1 +# This script is used to bring up the various network interfaces. +# +# @(#)/etc/rc.d/rc.inet1 10.2 Sun Jul 24 12:45:56 PDT 2005 (pjv) + +############################ +# READ NETWORK CONFIG FILE # +############################ + +# Get the configuration information from /etc/rc.d/rc.inet1.conf: +. /etc/rc.d/rc.inet1.conf + +########### +# LOGGING # +########### + +# If possible, log events in /var/log/messages: +if [ -f /var/run/syslogd.pid -a -x /usr/bin/logger ]; then + LOGGER=/usr/bin/logger +else # output to stdout/stderr: + LOGGER=/bin/cat +fi + +############################ +# DETERMINE INTERFACE LIST # +############################ + +# Compose a list of interfaces from /etc/rc.d/rc.inet1.conf (with a maximum +# of 6 interfaces, but you can easily enlarge the interface limit +# - send me a picture of such a box :-). +# If a value for IFNAME[n] is not set, we assume it is an eth'n' interface. +# This way, the new script is compatible with older rc.inet1.conf files. +# The IFNAME array will be used to determine which interfaces to bring up/down. +MAXNICS=${MAXNICS:-6} +i=0 +while [ $i -lt $MAXNICS ]; +do + IFNAME[$i]=${IFNAME[$i]:=eth${i}} + i=$(($i+1)) +done +if [ "$DEBUG_ETH_UP" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: List of interfaces: '${IFNAME[@]}'" | $LOGGER +fi + +###################### +# LOOPBACK FUNCTIONS # +###################### + +# Function to bring up the loopback interface. If loopback is +# already up, do nothing. +lo_up() { + if grep lo: /proc/net/dev 1> /dev/null ; then + if ! /sbin/ifconfig | grep "^lo" 1> /dev/null ; then + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig lo 127.0.0.1" | $LOGGER + /sbin/ifconfig lo 127.0.0.1 + echo "/etc/rc.d/rc.inet1: /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo" | $LOGGER + /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo + fi + fi +} + +# Function to take down the loopback interface: +lo_down() { + if grep lo: /proc/net/dev 1> /dev/null ; then + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig lo down" | $LOGGER + /sbin/ifconfig lo down + fi +} + +####################### +# INTERFACE FUNCTIONS # +####################### + +# Function to bring up a network interface. If the interface is +# already up or does not yet exist (perhaps because the kernel driver +# is not loaded yet), do nothing. +if_up() { + # Determine position 'i' of this interface in the IFNAME array: + i=0 + while [ $i -lt $MAXNICS ]; do + [ "${IFNAME[$i]}" = "${1}" ] && break + i=$(($i+1)) + done + # If the interface isn't in the kernel yet (but there's an alias for it in + # modules.conf), then it should be loaded first: + if ! grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then # no interface yet + if /sbin/modprobe -c | grep -v "^#" | grep -w "alias ${1}" | grep -vw "alias ${1} off" > /dev/null ; then + echo "/etc/rc.d/rc.inet1: /sbin/modprobe ${1}" | $LOGGER + /sbin/modprobe ${1} + fi + fi + if grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then # interface exists + if ! /sbin/ifconfig | grep -w "${1}" 1>/dev/null || \ + ! /sbin/ifconfig ${1} | grep "inet addr" 1> /dev/null ; then # interface not up or not configured + if [ ! "${HWADDR[$i]}" = "" ]; then # Set hardware address _before_ the interface goes up: + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} hw ether ${HWADDR[$i]}" | $LOGGER + /sbin/ifconfig ${1} hw ether ${HWADDR[$i]} + fi + if [ ! "${MTU[$i]}" = "" ]; then # Set MTU to something else than 1500 + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} mtu ${MTU[$i]}" | $LOGGER + /sbin/ifconfig ${1} mtu ${MTU[$i]} + fi + if [ -x /etc/rc.d/rc.wireless ]; then + . /etc/rc.d/rc.wireless ${1} start # Initialize any wireless parameters + fi + if [ "${USE_DHCP[$i]}" = "yes" ]; then # use DHCP to bring interface up + [ ${DHCP_HOSTNAME[$i]} ] && DHCP_OPTIONS="-h ${DHCP_HOSTNAME[$i]}" + [ "${DHCP_KEEPRESOLV[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -R" + [ "${DHCP_KEEPNTP[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -N" + [ "${DHCP_KEEPGW[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -G" + [ "${DHCP_DEBUG[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -d" + [ "${DHCP_NOIPV4LL[$i]}" = "yes" ] && DHCP_OPTIONS="$DHCP_OPTIONS -L" + [ ${DHCP_IPADDR[$i]} ] && DHCP_OPTIONS="$DHCP_OPTIONS -s ${DHCP_IPADDR[$i]}" + echo "Polling for DHCP server on interface ${1}:" + # If you set a timeout, you get one, even if the kernel doesn't think that + # your device is connected, in case /sys isn't right (which it usually isn't + # except right after the device is loaded, when it usually is): + #### (start commented out) + # This is deactivated for now since the kernel has been returning incorrect + # results concerning whether the interface carrier is detected. + #if [ "${DHCP_TIMEOUT[$i]}" = "" ]; then + # ifconfig ${1} up && sleep 1 + # CONNSTATUS="$(cat /sys/class/net/${1}/carrier 2> /dev/null)" + # ifconfig ${1} down + # if [ "$CONNSTATUS" = "0" ]; then + # # The kernel has just told us the cable isn't even plugged in, but we will + # # give any DHCP server a short chance to reply anyway: + # echo "No carrier detected on ${1}. Reducing DHCP timeout to 10 seconds." + # DHCP_TIMEOUT[$i]=10 + # fi + #fi + #### (end commented out) + # 10 seconds should be a reasonable default DHCP timeout. 30 was too much. + echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -t ${DHCP_TIMEOUT[$i]:-10} ${DHCP_OPTIONS} ${1}" | $LOGGER + /sbin/dhcpcd -t ${DHCP_TIMEOUT[$i]:-10} ${DHCP_OPTIONS} ${1} + else # bring up interface using a static IP address + if [ ! "${IPADDR[$i]}" = "" ]; then # skip unconfigured interfaces + # Determine broadcast address from the IP address and netmask: + BROADCAST[$i]=`/bin/ipmask ${NETMASK[$i]} ${IPADDR[$i]}|cut -f1 -d' '` + # Set up the network card: + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} ${IPADDR[$i]} broadcast ${BROADCAST[$i]} netmask ${NETMASK[$i]}" | $LOGGER + /sbin/ifconfig ${1} ${IPADDR[$i]} broadcast ${BROADCAST[$i]} netmask ${NETMASK[$i]} + else + if [ "$DEBUG_ETH_UP" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: ${1} interface is not configured in /etc/rc.d/rc.inet1.conf" | $LOGGER + fi + fi + fi + else + if [ "$DEBUG_ETH_UP" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: ${1} is already up, skipping" | $LOGGER + fi + fi + else + if [ "$DEBUG_ETH_UP" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: ${1} interface does not exist (yet)" | $LOGGER + fi + fi +} + +# Function to take down a network interface: +if_down() { + # Determine position 'i' of this interface in the IFNAME array: + i=0 + while [ $i -lt $MAXNICS ]; do + [ "${IFNAME[$i]}" = "${1}" ] && break + i=$(($i+1)) + done + if grep `echo ${1}: | cut -f 1 -d :`: /proc/net/dev 1> /dev/null ; then + if [ "${USE_DHCP[$i]}" = "yes" ]; then + echo "/etc/rc.d/rc.inet1: /sbin/dhcpcd -k -d ${1}" | $LOGGER + /sbin/dhcpcd -k -d ${1} 2> /dev/null || /sbin/ifconfig ${1} down + sleep 1 + else + echo "/etc/rc.d/rc.inet1: /sbin/ifconfig ${1} down" | $LOGGER + /sbin/ifconfig ${1} down + fi + if [ -x /etc/rc.d/rc.wireless ]; then + . /etc/rc.d/rc.wireless ${1} stop # Kill wireless daemons if any. + fi + fi +} + +##################### +# GATEWAY FUNCTIONS # +##################### + +# Function to bring up the gateway if there is not yet a default route: +gateway_up() { + if ! /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then + if [ ! "$GATEWAY" = "" ]; then + echo "/etc/rc.d/rc.inet1: /sbin/route add default gw ${GATEWAY} metric 1" | $LOGGER + /sbin/route add default gw ${GATEWAY} metric 1 2>&1 | $LOGGER + fi + fi +} + +# Function to take down an existing default gateway: +gateway_down() { + if /sbin/route -n | grep "^0.0.0.0" 1> /dev/null ; then + echo "/etc/rc.d/rc.inet1: /sbin/route del default" | $LOGGER + /sbin/route del default + fi +} + +# Function to start the network: +start() { + lo_up + for i in ${IFNAME[@]} ; do + if_up $i + done + gateway_up +} + +# Function to stop the network: +stop() { + gateway_down + for i in ${IFNAME[@]} ; do + if_down $i + done + lo_down +} + + +############ +### MAIN ### +############ + +case "$1" in +'start') # "start" brings up all configured interfaces: + start + ;; +'stop') # "stop" takes down all configured interfaces: + stop + ;; +'restart') # "restart" restarts the network: + stop + start + ;; +*_start) # Example: "eth1_start" will start the specified interface 'eth1' + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_up $INTERFACE + gateway_up + ;; +*_stop) # Example: "eth0_stop" will stop the specified interface 'eth0' + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_down $INTERFACE + ;; +*_restart) # Example: "wlan0_restart" will take 'wlan0' down and up again + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_down $INTERFACE + sleep 1 + if_up $INTERFACE + gateway_up + ;; +'up') # "up" does the same thing as "start" + start + ;; +'down') # "down" does the same thing as "stop" + stop + ;; +*_up) # "*_up" does the same thing as "*_start" + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_up $INTERFACE + gateway_up + ;; +*_down) # "*_down" does the same thing as "*_stop" + INTERFACE=`echo $1 | /bin/cut -d '_' -f 1` + if_down $INTERFACE + ;; +*) # The default is to bring up all configured interfaces: + start +esac + +# End of /etc/rc.d/rc.inet1 diff --git a/source/n/network-scripts/scripts/rc.inet1.conf b/source/n/network-scripts/scripts/rc.inet1.conf new file mode 100644 index 000000000..555210c4b --- /dev/null +++ b/source/n/network-scripts/scripts/rc.inet1.conf @@ -0,0 +1,107 @@ +# /etc/rc.d/rc.inet1.conf +# +# This file contains the configuration settings for network interfaces. +# If USE_DHCP[interface] is set to "yes", this overrides any other settings. +# If you don't have an interface, leave the settings null (""). + +# You can configure network interfaces other than eth0,eth1... by setting +# IFNAME[interface] to the interface's name. If IFNAME[interface] is unset +# or empty, it is assumed you're configuring eth. + +# Several other parameters are available, the end of this file contains a +# comprehensive set of examples. + +# ============================================================================= + +# Config information for eth0: +IPADDR[0]="" +NETMASK[0]="" +USE_DHCP[0]="" +DHCP_HOSTNAME[0]="" + +# Config information for eth1: +IPADDR[1]="" +NETMASK[1]="" +USE_DHCP[1]="" +DHCP_HOSTNAME[1]="" + +# Config information for eth2: +IPADDR[2]="" +NETMASK[2]="" +USE_DHCP[2]="" +DHCP_HOSTNAME[2]="" + +# Config information for eth3: +IPADDR[3]="" +NETMASK[3]="" +USE_DHCP[3]="" +DHCP_HOSTNAME[3]="" + +# Default gateway IP address: +GATEWAY="" + +# Change this to "yes" for debugging output to stdout. Unfortunately, +# /sbin/hotplug seems to disable stdout so you'll only see debugging output +# when rc.inet1 is called directly. +DEBUG_ETH_UP="no" + +## Example config information for wlan0. Uncomment the lines you need and fill +## in your data. (You may not need all of these for your wireless network) +#IFNAME[4]="wlan0" +#IPADDR[4]="" +#NETMASK[4]="" +#USE_DHCP[4]="yes" +#DHCP_HOSTNAME[4]="icculus-wireless" +#DHCP_KEEPRESOLV[4]="yes" +#DHCP_KEEPNTP[4]="yes" +#DHCP_KEEPGW[4]="yes" +#DHCP_IPADDR[4]="" +#WLAN_ESSID[4]=DARKSTAR +#WLAN_MODE[4]=Managed +#WLAN_RATE[4]="54M auto" +#WLAN_CHANNEL[4]="auto" +#WLAN_KEY[4]="D5A31F54ACF0487C2D0B1C10D2" +#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16" +#WLAN_WPA[4]="wpa_supplicant" +#WLAN_WPADRIVER[4]="wext" +#WLAN_WPAWAIT[4]=30 + +## Some examples of additional network parameters that you can use. +## Config information for wlan0: +#IFNAME[4]="wlan0" # Use a different interface name instead of + # the default 'eth4' +#IFNAME[4]="eth0:1" # Set up an IP alias. +#HWADDR[4]="00:01:23:45:67:89" # Overrule the card's hardware MAC address +#MTU[4]="" # The default MTU is 1500, but you might need + # 1360 when you use NAT'ed IPSec traffic. +#DHCP_TIMEOUT[4]=15 # The default timeout for the DHCP client to + # wait for server resonse is 10 seconds, but + # you might want a shorter or longer wait. +#DHCP_KEEPRESOLV[4]="yes" # If you dont want /etc/resolv.conf overwritten +#DHCP_KEEPNTP[4]="yes" # If you don't want ntp.conf overwritten +#DHCP_KEEPGW[4]="yes" # If you don't want the DHCP server to change + # your default gateway +#DHCP_IPADDR[4]="" # Request a specific IP address from the DHCP + # server +#DHCP_DEBUG[4]="yes" # Make dhcpcd show verbose diagnostics +#DHCP_NOIPV4LL[4]="yes" # Do not assign an ipv4ll address when a DHCP + # server is not found (ipv4ll link-local + # adresses in the IP range 169.254.0.0/16 are + # also known as "zeroconf" addresses) +#WLAN_ESSID[4]=DARKSTAR # An example of how you can override _any_ + # parameter defined in rc.wireless.conf, by + # prepending 'WLAN_' to the parameter's name. + # Useful with multiple wireless interfaces. +#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=thekey" + # Some drivers require a private ioctl to be + # set through the iwpriv command. If more than + # one is required, you can place them in the + # IWPRIV parameter (separated with the pipe (|) + # character, see the example). +#WLAN_WPA[4]="wpa_supplicant" # Run wpa_supplicant for WPA support +#WLAN_WPADRIVER[4]="ndiswrapper"# Tell wpa_supplicant to specifically use the + # ndiswrapper driver (if you leave this empty + # the 'wext' driver is used by default) +#WLAN_WPAWAIT[4]=30 # In case it takes long for the WPA association + # to finish, you can increase the wait time + # (defaults to 10 seconds) diff --git a/source/n/network-scripts/scripts/rc.inet2 b/source/n/network-scripts/scripts/rc.inet2 new file mode 100644 index 000000000..232d93ecb --- /dev/null +++ b/source/n/network-scripts/scripts/rc.inet2 @@ -0,0 +1,137 @@ +#!/bin/sh +# +# rc.inet2 This shell script boots up the entire network system. +# Note, that when this script is used to also fire +# up any important remote NFS disks (like the /usr +# directory), care must be taken to actually +# have all the needed binaries online _now_ ... +# +# Uncomment or comment out sections depending on which +# services your site requires. +# +# Author: Fred N. van Kempen, +# Modified for Slackware by Patrick Volkerding + + +# At this point, we are ready to talk to The World... + + +# Mount remote (NFS) filesystems: +if cat /etc/fstab | grep -v '^#' | grep -w nfs 1> /dev/null 2> /dev/null ; then + # Start rpc.portmap, /sbin/rpc.lockd, and /sbin/rpc.statd if we find NFS + # volumes defined in /etc/fstab since these will need to be running in order + # to mount them. If they are not running, attempting to mount an NFS + # partition will cause mount to hang, or at least result in unreliable + # operation. Keep this in mind if you plan to mount unlisted NFS + # partitions... + # If you have uncommented NFS partitions in your /etc/fstab, rc.rpc is run + # whether it is set as executable or not. If you don't want to run it, + # comment the NFS partitions out in /etc/fstab or erase/rename rc.rpc. + if [ -r /etc/rc.d/rc.rpc ]; then + sh /etc/rc.d/rc.rpc start + fi + echo "Mounting remote (NFS) file systems: /sbin/mount -a -t nfs" + /sbin/mount -a -t nfs # This may be our /usr runtime! + # Show the mounted volumes: + /sbin/mount -v -t nfs +fi + +# If /etc/rc.d/rc.rpc is executable, run it to load rpc.portmap, rpc.lockd, +# and rpc.statd. This might be needed to mount NFS partitions that are not +# listed in /etc/fstab. Starting this twice won't hurt as the script will +# check if things are already running before trying to start them. +if [ -x /etc/rc.d/rc.rpc ]; then + sh /etc/rc.d/rc.rpc start +fi + +# Mount remote CIFS filesystems. Note that where possible, using CIFS is +# preferred over SMBFS. SMBFS is no longer actively maintained. +if cat /etc/fstab | grep -v '^#' | grep -w cifs 1> /dev/null 2> /dev/null ; then + echo "Mounting remote CIFS file systems: /sbin/mount -a -t cifs" + /sbin/mount -a -t cifs + # Show the mounted volumes: + /sbin/mount -v -t cifs +fi + +# Mount remote SMB filesystems: +if cat /etc/fstab | grep -v '^#' | grep -w smbfs 1> /dev/null 2> /dev/null ; then + echo "Mounting remote SMBFS file systems: /sbin/mount -a -t smbfs" + /sbin/mount -a -t smbfs + # Show the mounted volumes: + /sbin/mount -v -t smbfs +fi + +# Start the system logger if it is not already running (maybe because /usr +# is on a network partition). +if [ -x /etc/rc.d/rc.syslog -a -d /var/log -a ! -r /var/run/syslogd.pid ]; then + . /etc/rc.d/rc.syslog start +fi + +# If there is a firewall script, run it before enabling packet forwarding. +# See the HOWTOs on http://www.netfilter.org/ for documentation on +# setting up a firewall or NAT on Linux. In some cases this might need to +# be moved past the section below dealing with IP packet forwarding. +if [ -x /etc/rc.d/rc.firewall ]; then + /etc/rc.d/rc.firewall start +fi + +# Turn on IPv4 packet forwarding support. +if [ -x /etc/rc.d/rc.ip_forward ]; then + . /etc/rc.d/rc.ip_forward start +fi + +# Start the inetd server: +if [ -x /etc/rc.d/rc.inetd ]; then + /etc/rc.d/rc.inetd start +fi + +# Start the OpenSSH SSH daemon: +if [ -x /etc/rc.d/rc.sshd ]; then + echo "Starting OpenSSH SSH daemon: /usr/sbin/sshd" + /etc/rc.d/rc.sshd start +fi + +# Start the BIND name server daemon: +if [ -x /etc/rc.d/rc.bind ]; then + /etc/rc.d/rc.bind start +fi + +# Start NIS (the Network Information Service): +if [ -x /etc/rc.d/rc.yp ]; then + . /etc/rc.d/rc.yp start +fi + +# Start the NFS server. Note that for this to work correctly, you'll +# need nfsd support in the kernel (the startup script will try to load +# the module for you). +# You'll also need to set up some shares in /etc/exports. +# Starting the NFS server: +if [ -x /etc/rc.d/rc.nfsd ]; then + /etc/rc.d/rc.nfsd start +fi + +# Stuff you won't need follows. ;-) + +# # Start the network routing daemon: +# if [ -x /usr/sbin/routed ]; then +# echo "Starting network routing daemon: /usr/sbin/routed" +# /usr/sbin/routed -g -s +# fi + +# # Start the system status server: +# if [ -x /usr/sbin/rwhod ]; then +# echo "Starting system status server: /usr/sbin/rwhod" +# /usr/sbin/rwhod +# fi + +# # Fire up the PC-NFS daemon(s). This is a primarily obsolete system, and may +# # not be very secure. It's not at all needed for normal NFS server support. +# # You probably should not run this. +# if [ -x /usr/sbin/rpc.pcnfsd ]; then +# echo "Starting PC-NFS daemons: /usr/sbin/rpc.pcnfsd /usr/sbin/rpc.bwnfsd" +# /usr/sbin/rpc.pcnfsd /var/spool/lpd +# fi +# if [ -x /usr/sbin/rpc.bwnfsd ]; then +# /usr/sbin/rpc.bwnfsd /var/spool/lpd +# fi + diff --git a/source/n/network-scripts/scripts/rc.ip_forward b/source/n/network-scripts/scripts/rc.ip_forward new file mode 100644 index 000000000..8940dc2cc --- /dev/null +++ b/source/n/network-scripts/scripts/rc.ip_forward @@ -0,0 +1,78 @@ +#!/bin/sh +# /etc/rc.d/rc.ip_forward: start/stop IP packet forwarding +# +# If you intend to run your Linux box as a router, i.e. as a +# computer that forwards and redistributes network packets, you +# will need to enable IP packet forwarding in your kernel. +# +# To activate IP packet forwarding at boot time, make this +# script executable: chmod 755 /etc/rc.d/rc.ip_forward +# +# To disable IP packet forwarding at boot time, make this +# script non-executable: chmod 644 /etc/rc.d/rc.ip_forward + +# Start IP packet forwarding: +ip_forward_start() { + if [ -f /proc/sys/net/ipv4/ip_forward ]; then + echo "Activating IPv4 packet forwarding." + echo 1 > /proc/sys/net/ipv4/ip_forward + # Changing /proc/sys/net/ipv4/ip_forward results in resetting all + # non-default ipv4 parameters for the interface as mentioned in + # /usr/src/linux/Documentation/networking/ip-sysctl.txt. So, we + # will reapply any ipv4 sysctl parameters now: + if [ -r /etc/sysctl.conf ]; then + /bin/grep ipv4 /etc/sysctl.conf | sysctl -p - 1> /dev/null 2> /dev/null + fi + fi + # When using IPv4 packet forwarding, you will also get the + # rp_filter, which automatically rejects incoming packets if the + # routing table entry for their source address doesn't match the + # network interface they're arriving on. This has security + # advantages because it prevents the so-called IP spoofing, + # however it can pose problems if you use asymmetric routing + # (packets from you to a host take a different path than packets + # from that host to you) or if you operate a non-routing host + # which has several IP addresses on different interfaces. To + # turn rp_filter off, uncomment the lines below: + #if [ -r /proc/sys/net/ipv4/conf/all/rp_filter ]; then + # echo "Disabling rp_filter." + # echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter + #fi +} + +# Stop IP packet forwarding: +ip_forward_stop() { + if [ -f /proc/sys/net/ipv4/ip_forward ]; then + echo "Disabling IPv4 packet forwarding." + echo 0 > /proc/sys/net/ipv4/ip_forward + # Changing /proc/sys/net/ipv4/ip_forward results in resetting all + # non-default ipv4 parameters for the interface as mentioned in + # /usr/src/linux/Documentation/networking/ip-sysctl.txt. So, we + # will reapply any ipv4 sysctl parameters now: + if [ -r /etc/sysctl.conf ]; then + /bin/grep ipv4 /etc/sysctl.conf | sysctl -p - 1> /dev/null 2> /dev/null + fi + fi +} + +# Restart IP packet forwarding: +ip_forward_restart() { + ip_forward_stop + sleep 1 + ip_forward_start +} + +case "$1" in +'start') + ip_forward_start + ;; +'stop') + ip_forward_stop + ;; +'restart') + ip_forward_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac + diff --git a/source/n/network-scripts/scripts/resolv.conf b/source/n/network-scripts/scripts/resolv.conf new file mode 100644 index 000000000..96726f016 --- /dev/null +++ b/source/n/network-scripts/scripts/resolv.conf @@ -0,0 +1 @@ +search example.net diff --git a/source/n/network-scripts/scripts/setup.netconfig b/source/n/network-scripts/scripts/setup.netconfig new file mode 100644 index 000000000..7165a4a96 --- /dev/null +++ b/source/n/network-scripts/scripts/setup.netconfig @@ -0,0 +1,13 @@ +#!/bin/sh +#BLURB="Configure basic network settings" +TMP=/var/log/setup/tmp +dialog --title "CONFIGURE NETWORK?" --yesno "Would you like to \ +configure your network?" 5 60 +if [ $? = 0 ]; then + while [ 0 ]; do # we're gonna do this until we get it right :-) + sh sbin/netconfig $* + if [ "$?" = "0" ]; then # success + break; + fi + done +fi diff --git a/source/n/network-scripts/slack-desc b/source/n/network-scripts/slack-desc new file mode 100644 index 000000000..f30ebbf9e --- /dev/null +++ b/source/n/network-scripts/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +network-scripts: network-scripts (Scripts to configure a network) +network-scripts: +network-scripts: These are the basic scripts and files used to define a network and +network-scripts: configure network interfaces on Linux. Most of the original +network-scripts: /etc files were written by Fred N. van Kempen, or borrowed from BSD. +network-scripts: The rc.inet1 and rc.inet2 scripts were mostly written by Patrick +network-scripts: Volkerding, with suggestions and fixes from hundreds of contributors +network-scripts: over the years. +network-scripts: +network-scripts: +network-scripts: diff --git a/source/n/netwrite/netwrite-0.17.diff b/source/n/netwrite/netwrite-0.17.diff new file mode 100644 index 000000000..ae8216c70 --- /dev/null +++ b/source/n/netwrite/netwrite-0.17.diff @@ -0,0 +1,23 @@ +--- ./write/write.c.orig Sun Feb 25 18:22:21 2001 ++++ ./write/write.c Sun Feb 25 18:22:35 2001 +@@ -73,9 +73,7 @@ + #include + #include + #include +-#if 0 +- #include +-#endif ++#include + #include + #include + #include +--- ./writed/writed.c.orig Sun Feb 25 18:23:17 2001 ++++ ./writed/writed.c Sun Feb 25 18:24:08 2001 +@@ -67,6 +67,7 @@ + #include + #include + #include ++#include + + #ifdef ultrix /* missing protos */ + struct sockaddr; diff --git a/source/n/netwrite/netwrite.SlackBuild b/source/n/netwrite/netwrite.SlackBuild new file mode 100755 index 000000000..edebb6cc1 --- /dev/null +++ b/source/n/netwrite/netwrite.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-netwrite + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netwrite-$VERSION +tar xvf $CWD/netwrite-0.17.tar.gz || exit 1 +cd netwrite-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/netwrite-0.17.diff.gz | patch -p1 || exit + +./configure --prefix=/usr + +make $NUMJOBS || make || exit 1 + +# The versions in util-linux are better, but we'll keep in.writed just in case: +#cat write > $PKG/usr/bin/write +#cat write.1 | gzip -9c > $PKG/usr/man/man1/write.1.gz +( cd writed + strip writed + mkdir -p $PKG/usr/sbin + cat writed > $PKG/usr/sbin/in.writed + chmod 755 $PKG/usr/sbin/in.writed + mkdir -p $PKG/usr/man/man8 + cat writed.8 | gzip -9c > $PKG/usr/man/man8/in.writed.8.gz +) + +mkdir -p $PKG/usr/doc/netwrite-$VERSION +cp -a README $PKG/usr/doc/netwrite-$VERSION +chown root:root $PKG/usr/doc/netwrite-$VERSION/* +chmod 644 $PKG/usr/doc/netwrite-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/netwrite-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/netwrite/slack-desc b/source/n/netwrite/slack-desc new file mode 100644 index 000000000..3ea62c0f0 --- /dev/null +++ b/source/n/netwrite/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +netwrite: netwrite (in.writed daemon for accepting network "write") +netwrite: +netwrite: Writed implements a very simple protocol that allows a write(1) +netwrite: program on one host to connect up to one on another host, allowing +netwrite: communications across the network. Writed is meant to be run from +netwrite: inetd(8) listening for TCP requests on port 811. No attempt is made +netwrite: to determine the authenticity of users sending messages. This +netwrite: program should probably not be deployed on insecure networks. +netwrite: +netwrite: +netwrite: diff --git a/source/n/newspost/newspost.SlackBuild b/source/n/newspost/newspost.SlackBuild new file mode 100755 index 000000000..99fee17e0 --- /dev/null +++ b/source/n/newspost/newspost.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.1.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-newspost + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf newspost-$VERSION +tar xvf $CWD/newspost-$VERSION.tar.gz || exit 1 +cd newspost-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +strip newspost +cat newspost > $PKG/usr/bin/newspost +chmod 755 $PKG/usr/bin/newspost + +mkdir -p $PKG/usr/man/man1 +cat man/man1/newspost.1 | gzip -9c > $PKG/usr/man/man1/newspost.1.gz + +mkdir -p $PKG/usr/doc/newspost-$VERSION +cp -a \ + CHANGES COPYING README \ + $PKG/usr/doc/newspost-$VERSION +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/newspost-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/newspost/slack-desc b/source/n/newspost/slack-desc new file mode 100644 index 000000000..b9edc7a46 --- /dev/null +++ b/source/n/newspost/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +newspost: newspost (binary posting utility) +newspost: +newspost: Newspost is a usenet binary autoposter. It will uuencode or yencode +newspost: files and post them to usenet newsgroups. In addition, it can +newspost: automatically generate and post .SFV checksum files and .PAR parity +newspost: files. +newspost: +newspost: Newspost was mostly written by Jim Faulkner, with some help from +newspost: William McBrine. Portions borrowed from cksfv by Bryan Call, and +newspost: parchive by Willem Monsuwe. +newspost: diff --git a/source/n/nfs-utils/nfs-utils-1.1.4.tar.bz2.sign b/source/n/nfs-utils/nfs-utils-1.1.4.tar.bz2.sign new file mode 100644 index 000000000..3457f1ef7 --- /dev/null +++ b/source/n/nfs-utils/nfs-utils-1.1.4.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBI+KqOyGugalF9Dw4RAuC3AJ97L3+wXMajwG6cIy+8GJJUQYWi3ACgkyET +zLF2+bn5et1RX1dGiiijnhs= +=VrzL +-----END PGP SIGNATURE----- diff --git a/source/n/nfs-utils/nfs-utils.SlackBuild b/source/n/nfs-utils/nfs-utils.SlackBuild new file mode 100755 index 000000000..1e3f5cbf9 --- /dev/null +++ b/source/n/nfs-utils/nfs-utils.SlackBuild @@ -0,0 +1,166 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=1.1.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nfs-utils + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_nfs-utils.tar.gz + +# Add startup script: +cat $CWD/rc.nfsd > $PKG/etc/rc.d/rc.nfsd.new +# Off by default, unless there's a previous version that's turned on: +chmod 644 $PKG/etc/rc.d/rc.nfsd.new + +cd $TMP +rm -rf nfs-utils-$VERSION +tar xvf $CWD/nfs-utils-$VERSION.tar.bz2 || exit 1 +cd nfs-utils-$VERSION || exit 1 + +zcat $CWD/nfs-utils.lwrap.needs.lnsl.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# No NFSv4 yet -- it requires additional libraries. + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --with-statedir=/var/lib/nfs \ + --enable-nfsv3 \ + --enable-nfsv4=no \ + --enable-gss=no \ + --enable-secure-statd \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# These might be in use: +( cd $PKG/var/lib/nfs + for config_file in etab rmtab state xtab ; do + mv ${config_file} ${config_file}.new + done +) + +# No NFSv4 yet, so remove these: +rm -f $PKG/sbin/*nfs4 + +# Why were we doing this? +mkdir -p $PKG/sbin +mv $PKG/usr/sbin/rpc.statd $PKG/sbin +( cd $PKG/usr/sbin ; ln -sf ../../sbin/rpc.statd . ) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/nfs-utils-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README \ + $PKG/usr/doc/nfs-utils-$VERSION +mkdir -p $PKG/usr/doc/nfs-utils-$VERSION/statd +cp -a \ + utils/statd/COPYING utils/statd/COPYRIGHT utils/statd/TODO \ + $PKG/usr/doc/nfs-utils-$VERSION/statd + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +EOF +( cd $PKG/var/lib/nfs + for config_file in etab.new rmtab.new state.new xtab.new ; do + if [ -r ${config_file} ]; then + echo "config var/lib/nfs/${config_file}" >> $PKG/install/doinst.sh + fi + done +) +# If these aren't moved into place, they're junk: +echo "rm -f var/lib/nfs/*.new" >> $PKG/install/doinst.sh +cat << EOF >> $PKG/install/doinst.sh +if [ -x etc/rc.d/rc.nfsd ]; then + chmod 755 etc/rc.d/rc.nfsd.new +else + chmod 644 etc/rc.d/rc.nfsd.new +fi +config etc/rc.d/rc.nfsd.new +config etc/exports.new +EOF + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/nfs-utils-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff b/source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff new file mode 100644 index 000000000..c49196fe3 --- /dev/null +++ b/source/n/nfs-utils/nfs-utils.lwrap.needs.lnsl.diff @@ -0,0 +1,11 @@ +--- ./configure.orig 2008-03-20 06:20:01.000000000 -0500 ++++ ./configure 2008-03-31 17:19:22.000000000 -0500 +@@ -3933,7 +3933,7 @@ + CPPFLAGS="-I${with_tcpw} ${CPPFLAGS}" + fi + fi +- LIBWRAP="-lwrap" ++ LIBWRAP="-lwrap -lnsl" + LIBS="$LIBWRAP $LIBS" + { echo "$as_me:$LINENO: checking for libwrap" >&5 + echo $ECHO_N "checking for libwrap... $ECHO_C" >&6; } diff --git a/source/n/nfs-utils/rc.nfsd b/source/n/nfs-utils/rc.nfsd new file mode 100644 index 000000000..f21133829 --- /dev/null +++ b/source/n/nfs-utils/rc.nfsd @@ -0,0 +1,98 @@ +#!/bin/sh +# Start/stop/restart the NFS server. +# +# This is an init script for the knfsd NFS daemons. +# To use NFS, you must first set up /etc/exports. +# See exports(5) for information on /etc/exports format. +# +# Written for Slackware Linux by Patrick J. Volkerding . + +nfsd_start() { + # Sanity checks. Exit if there's no /etc/exports, or if there aren't any + # shares defined in it. + if [ ! -r /etc/exports ]; then # no config file, exit: + exit + elif ! grep -v '^#' /etc/exports | grep '/' 1> /dev/null 2> /dev/null ; then + exit # no uncommented shares in /etc/exports + fi + + # First, make sure the nfsd kernel module is loaded. You can comment this + # part out if you've built nfsd support directly into the kernel. + if [ -z "`/sbin/lsmod | grep "^nfsd "`" ]; then + /sbin/modprobe nfsd + fi + + # For kernels newer than 2.4.x, use the new way of handling nfs client requests. + if [ ! "$(/bin/uname -r | /bin/cut -f 1,2 -d .)" = "2.4" ]; then + if grep -wq nfsd /proc/filesystems 2> /dev/null ; then + if grep -vwq nfsd /proc/mounts 2> /dev/null ; then + /sbin/mount -t nfsd nfsd /proc/fs/nfs 2> /dev/null + fi + fi + fi + + # If basic RPC services are not running, start them: + if ! ps axc | grep -q rpc.statd ; then + if [ -r /etc/rc.d/rc.rpc ]; then + sh /etc/rc.d/rc.rpc start + else + # Sure, we tested for rpc.statd, but this is the probable cause: + echo "FATAL: Can't start NFS server without portmap package." + sleep 5 + exit 1 + fi + fi + + echo "Starting NFS server daemons:" + + if [ -x /usr/sbin/exportfs ]; then + echo " /usr/sbin/exportfs -r" + /usr/sbin/exportfs -r + fi + + if [ -x /usr/sbin/rpc.rquotad ]; then + echo " /usr/sbin/rpc.rquotad" + /usr/sbin/rpc.rquotad + fi + + # Start 8 nfsd servers by default (an old Sun standard): + if [ -x /usr/sbin/rpc.nfsd ]; then + echo " /usr/sbin/rpc.nfsd 8" + /usr/sbin/rpc.nfsd 8 + fi + + if [ -x /usr/sbin/rpc.mountd ]; then + echo " /usr/sbin/rpc.mountd" + /usr/sbin/rpc.mountd + fi + +} + +nfsd_stop() { + killall rpc.mountd 2> /dev/null + killall nfsd 2> /dev/null + sleep 1 + killall -9 nfsd 2> /dev/null # make sure :) + killall rpc.rquotad 2> /dev/null + /usr/sbin/exportfs -au 2> /dev/null +} + +nfsd_restart() { + nfsd_stop + sleep 1 + nfsd_start +} + +case "$1" in +'start') + nfsd_start + ;; +'stop') + nfsd_stop + ;; +'restart') + nfsd_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/n/nfs-utils/slack-desc b/source/n/nfs-utils/slack-desc new file mode 100644 index 000000000..158b4a97c --- /dev/null +++ b/source/n/nfs-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nfs-utils: nfs-utils (Network File System daemons and utilities) +nfs-utils: +nfs-utils: The nfs-utils package contains the necessary daemons and utilities to +nfs-utils: run an NFS server on Linux. +nfs-utils: +nfs-utils: You'll also need the portmap package to use NFS. +nfs-utils: +nfs-utils: +nfs-utils: +nfs-utils: +nfs-utils: diff --git a/source/n/nmap/nmap.SlackBuild b/source/n/nmap/nmap.SlackBuild new file mode 100755 index 000000000..ddf13b9e6 --- /dev/null +++ b/source/n/nmap/nmap.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +VERSION=${PKGVERSION:-5.00} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nmap + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf nmap-$VERSION +tar xvf $CWD/nmap-$VERSION.tar.?z* || exit 1 +cd nmap-$VERSION || exit 1 + +zcat $CWD/nmap.ndiff.mandir.diff.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/nmap-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/nmap-$VERSION +cp -a COPYING* HACKING INSTALL $PKG/usr/doc/nmap-$VERSION +( cd docs + # It looks like all of these translations are gone from the 4.00+ tarball, and + # most of them are not available on the web site. Sorry -- I didn't do it. + if [ -f nmap_german.1 ] ; then + mkdir -p $PKG/usr/man/de/man1 + cat nmap_german.1 | gzip -9c > $PKG/usr/man/de/man1/nmap.1.gz + fi + if [ -f nmap_spanish.1 ] ; then + mkdir -p $PKG/usr/man/es/man1 + cat nmap_spanish.1 | gzip -9c > $PKG/usr/man/es/man1/nmap.1.gz + fi + if [ -f nmap_french.1 ] ; then + mkdir -p $PKG/usr/man/fr/man1 + cat nmap_french.1 | gzip -9c > $PKG/usr/man/fr/man1/nmap.1.gz + fi + if [ -f nmap_italian.1 ] ; then + mkdir -p $PKG/usr/man/it/man1 + cat nmap_italian.1 | gzip -9c > $PKG/usr/man/it/man1/nmap.1.gz + fi + if [ -f nmap_lithuanian.1 ] ; then + mkdir -p $PKG/usr/man/lt/man1 + cat nmap_lithuanian.1 | gzip -9c > $PKG/usr/man/lt/man1/nmap.1.gz + fi + if [ -f nmap_portuguese.1 ] ; then + mkdir -p $PKG/usr/man/pt/man1 + cat nmap_portuguese.1 | gzip -9c > $PKG/usr/man/pt/man1/nmap.1.gz + fi + if [ -f nmap_russian.1 ] ; then + mkdir -p $PKG/usr/man/ru/man1 + cat nmap_russian.1 | gzip -9c > $PKG/usr/man/ru/man1/nmap.1.gz + fi +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/nmap-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/nmap/nmap.ndiff.mandir.diff b/source/n/nmap/nmap.ndiff.mandir.diff new file mode 100644 index 000000000..597a31b92 --- /dev/null +++ b/source/n/nmap/nmap.ndiff.mandir.diff @@ -0,0 +1,9 @@ +--- ./ndiff/setup.py.orig 2009-04-20 14:15:00.000000000 -0500 ++++ ./ndiff/setup.py 2009-04-30 17:28:56.000000000 -0500 +@@ -29,5 +29,5 @@ + + "Installing your distribution's python-dev package may solve this problem.") + + distutils.core.setup(name = u"ndiff", scripts = [u"ndiff"], +- data_files = [(u"share/man/man1", [u"docs/ndiff.1"])], ++ data_files = [(u"man/man1", [u"docs/ndiff.1"])], + cmdclass = {"install_egg_info": null_command, "install": checked_install}) diff --git a/source/n/nmap/slack-desc b/source/n/nmap/slack-desc new file mode 100644 index 000000000..89e96372e --- /dev/null +++ b/source/n/nmap/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nmap: nmap (network scanner) +nmap: +nmap: Nmap ("Network Mapper") is an open source utility for network +nmap: exploration or security auditing. It was designed to rapidly scan +nmap: large networks, although it works fine against single hosts. Nmap +nmap: uses raw IP packets in novel ways to determine what hosts are +nmap: available on the network, what services (ports) they are offering, +nmap: what operating system (and OS version) they are running, what type of +nmap: packet filters/firewalls are in use, and dozens of other +nmap: characteristics. Nmap runs on most types of computers, and both +nmap: console and graphical versions are available. diff --git a/source/n/nn/NNTP b/source/n/nn/NNTP new file mode 100644 index 000000000..08400bdcb --- /dev/null +++ b/source/n/nn/NNTP @@ -0,0 +1,280 @@ + NNTP SUPPORT + ------------ + +This file describes the NNTP support available in nn release 6.5. The +NNTP support was implemented by Rene' Seindal, seindal@diku.dk. + + + PREREQUISITES + ------------- + +First of all, you need read-access to an NNTP-server, and if you want +to post, the server must allow that. + +If you have news on one of your systems, and want to run an NNTP +server on that system to feed other local systems, you need to get and +install the nntp-1.5 distribution with at least patches 1-3 (I think +patch 8 is the latest). It is available from several ftp-sites in the +USA. It is also available on freja.diku.dk (ip 129.142.96.1). + +However, just to run nn on you local system with or without NNTP, you +don't need anything besides the nn 6.5 distribution!! + +The necessary modules to access a remote NNTP server is an integrated +part of nn, so if you specify to use NNTP, the necessary code is +automatically included. + + HOW IT WORKS + ------------ + +NNTP is supported both in nn and nnmaster. When NNTP is used, the +database with the header information used by nn is still maintained on +the local system (because NNTP does not know about the nn database +(yet?)). + +When the master is set up to use NNTP, it will connect to the NNTP- +server in each iteration of the collection (the interval set with -r), +get a copy of the active file, and incorporate the new articles into the +database. To do this, the master will temporarily transfer one article +at a time from the NNTP-server to the local system. + +When the articles are read with nn, it will use the local database to +present the menus, and fetch the articles from the NNTP-server as they +are requested by the user. It will connect to the NNTP server the first +time it is necessary to fetch an article. + +Neither nnmaster, nor nn will use NNTP if they run on the NNTP-server +itself (they will directly access the news files). + +Both nn and nnmaster access the server in reading mode. The master and +all client MUST use the same server at all times, since the local +database contains article numbers, that are only unique for each +NNTP-server. + + + SHARING THE DATABASE + -------------------- + +You must also decide whether you want to share the database between your +local news clients, and how you are going to do it. + +The database will take up some disk space, normally about 1Mb per 10.000 +articles. There are several ways to manage this space. + +This simplest solution, is to let each client run it own master, i.e., +have its own database. This means, of course, no sharing. + +Alternatively, one host can run the master, and distribute the database +to the others via e.g., rdist. This doesn't save disk space, but saves +load on the NNTP-server. + +Last, the database can be shared with NFS/RFS (see the description of +NETWORK_DATABASE in the config.h file). + +The possibility of making a `nndb-server' stands open. It could be +realized either as a separate server, running under inetd, or it could +be incorporated into nntpd. It has not been implemented, but might be +part of a future release (any volunteers?). + + + CONFIGURATION + ------------- + +To use NNTP in nn, you must edit the relevant parts of config.h: + +NNTP + You enable the use of NNTP by defining the macro NNTP. + +NNTP_SERVER + Both the master and the clients will look up their NNTP-server + in the file given by the macro NNTP_SERVER. If the name is not + an absolute path name, it is taken to be relative to + LIB_DIRECTORY. + + The format of the file is compatible with the one used in + clientlib.c in the nntp-1.5 distribution, i.e., the first + non-blank line, not starting with '#' is taken to be the name of + the NNTP-server. This file MUST be present, and must contain a + valid host name. + +NEWS_LIB_DIRECTORY & INEWS + If either is defined, they specify the destination of the + mini-inews program when installed below with INEWS being used + if both are defined. If neither is defined, it will be + installed in /usr/lib/news/inews. + + + TUNING + ------ + +Both the server and each client maintains a cache of recently accessed +articles, to minimize communication with the server (mainly to avoid +fetching large digests continuously). The master needs the cache when +it splits digests, and the clients need it, because nn has a tendency to +reopen the articles several times. + +The master's cache is kept in LIB_DIRECTORY, and each client's cache are +kept in the users .nn directory. The constant NNTPCACHE (defined in +nntp.c but can be redefined in config.h) defines the size of the cache, +whose optimal size depends on the amount of news kept on line on the +NNTP-server. Values of 5-10 gives reasonable results. The effect is +most striking when reading digested news. + +The location and size of the cache can also be changed on a per-user +basis via the related nntp- variables (see nn.1). + + + INSTALLATION + ------------ + +Making and installing nn using NNTP does not differ from a non-NNTP nn +installation, except for the differences in the configuration and the +need to specify the NNTP server in the NNTP_SERVER file. + +Notice however, that the NNTP_SERVER file must be properly initialized +before doing the 'make initdb'. + +If something goes wrong in the initialization of the database, you will +have to run 'nnmaster -I' again by hand. + + + ERROR HANDLING + -------------- + +The handling of errors have been improved since the initial release. + +The master will handle most errors by closing the connection, and +returning to the main loop. All errors in the master are logged, with +a code of `N,' so they can be inspected with the `n' command in +nnadmin's Log menu. + +A few errors are considere fatal. If any of these occur operation will +be discontinued. These errors are such as failure to find the NNTP +server, failure to find the NNTP service, and responses from the NNTP +server in the 500 range (ill-formed requests, access denied, ...) + +NNTP server timeouts are handled specially. If the NNTP server times +out, both nn and the master will attempt to restart it (by connecting +again). This shouldn't happen in the master (which won't leave sockets +idle for that long), but it can easily happen in nn, if it is left +suspended for too long. If the server responds with code 400 (Service +discontinued), a reconnect is also tried. + + + PROBLEMS + -------- + +I am not certain what should happen if the server sends back responses +in the 1xx range. I do not know whether a NNTP server is allowed to +return one of these responses on its own initiative. If it is, nn +should probably ignore (or display) the messages. Currently, nothing is +done to treat these responses in any way. + +I have seen a strange thing happen to the master, which I have not been +able to reproduce. The master ran on a Sun-4 running SunOS 4.0, and the +NNTP server was a VAX 785 running MORE/bsd. The NNTP software was +version 1.5.3. The master was stuck in a read from the NNTP server. A +netstat on the Sun show an established connection to nntpd on the Vax, +but a netstat on the Vasx did not show any NNTP connections. There was +no nntpd running, and no messages on the console indicating any +failures. + +[ It is now known that this problem is related to the socket not + having the KEEP ALIVE flag set, but I have not got the necessary + patches to fix it, ++Kim ] + + + SPONTANEOUS NNTP ERROR 502 + -------------------------- + +Sometimes nn or nnmaster may stop with the following message: + + NNTP 502 You only have permission to transfer, sorry. + +This particular case is probably the result of the NNTP server trying to +turn your IP address into a fully qualified domain name (FQDN) so it can +look you up in its access file. + +The NNTP server probably uses the domain name server (DNS) to map IP +addresses into FQDNs. If the local DNS doesn't already know the answer, it +has to go out over the network to find it. This can take a few seconds, and +the library routine that does all this for the NNTP server might time out +before the answer gets back to it. If this happens, the NNTP server doesn't +know your FQDN, so it gives you the default access specified in the server's +nntp_access file, which is usually "xfer" (article transfer only). + +In the time it takes for you to run nn again the DNS usuallu has its answer +back, so things usually work the second time. + +One way to work around this problem is to specify the IP address of the +client in the nntp server's access file; then it is not necessary to lookup +the FQDN. + +Thanks to Tim Ramsey and Nick Sayer for this information. + + + DEBUGGING NNTP CONNECTIONS + -------------------------- + +If you want to debug the nntp connection, you can run the nnmaster +with the option -D2 (or -D3 which also turns on the normal -D verbose +output). In the nn client, you can turn on the nntp-debug variable in +the init file. + +The debug output from nnmaster will be placed in $TMP/nnmaster.log +while the output in the client will appear on the message line. + + + POSSIBLE EXTENTIONS TO THE NNTP SERVER + -------------------------------------- + +The new expire method used in release 6.5 is very efficient on local +systems, because it will just read the spool directories to get a list +of available articles in each group. + +However, with nntp, the only way I know of to get a list of available +articles in a group with nntp is the XHDR request. However, this will +open every article in the group to extract the desired field, but the +only thing I am interested in is the article number itself. + +So I suggest to add a LISTGROUP request to the NNTP server to return +the equivalent of + ls $GROUPDIR | sed -n '/^[0-9][0-9]*$/p' +(in any order - nnmaster will sort the list itself). + +Currently nnmaster will test whether this request works before using +the XHDR request, so no changes to nnmaster will be required to take +advantage of such a fix. + + +Another possible performance increase would be if there was a request +to get the current modification time of the ACTIVE file. This is the +check nnmaster will do to see if there might be work to do on a local +system, but with NNTP it has to read the active file from the server +and compare it to a local copy to determine whether there is work to +do. A simple ACTIVESTAT request returning the active file's age and +size would fix this. + +Currently nnmaster is not prepared to use such a request, but it would +be easy to add. + + + ALTERNATIVES + ------------ + +Alternative implementations can be conceived, especially in the master. +The master normally collects articles by rereading the active file, +looking for changed article numbers. For each group with new articles, +it reads the new articles and adds them to the database. This scheme +has been kept in the NNTP-based master, to keep the changes at a +minimum. + +An alternative solution could be to use NEWNEWS to get a list of new +articles since last collect, and fetch each article in sequence. The +newsgroups and article numbers within each group could then be found in +the Xref: field. This would probably improve efficiency, since the +master would then generate fewer failing requests (for non-existent +articles), and it would only read cross-posted articles once. This +solution would, however, require some surgery on the current structure +of the masters main loop. + diff --git a/source/n/nn/doinst.sh b/source/n/nn/doinst.sh new file mode 100644 index 000000000..80f6fce0d --- /dev/null +++ b/source/n/nn/doinst.sh @@ -0,0 +1,16 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/nntpserver.new +# If you already have a different etc/nntpserver then this one is useless: +rm -f etc/nntpserver.new + diff --git a/source/n/nn/nn.SlackBuild b/source/n/nn/nn.SlackBuild new file mode 100755 index 000000000..45b694375 --- /dev/null +++ b/source/n/nn/nn.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Copyright 2002-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=6.7.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-nn + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf nn-$VERSION +tar xvf $CWD/nn-$VERSION.tar.bz2 || exit 1 +cd nn-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/nn.diff.gz | sed -e "s#/usr/lib/nn#/usr/lib${LIBDIRSUFFIX}/nn#" \ + | patch -p1 --verbose || exit 1 +zcat $CWD/nn.badnntphost.diff.gz | patch -p1 --verbose || exit 1 +# Taken from slamd64 (who adapted an old Ubuntu patch); +# Besides adding DESTDIR support, it gets rid of the hardlinks that are created: +zcat $CWD/nn.destdir.diff.gz | patch -p1 --verbose || exit 1 + +cp config.h-dist config.h +make all + +echo "*** USE install option 's'" +sleep 5 +mkdir -p $PKG/etc $PKG/usr/bin $PKG/usr/lib${LIBDIRSUFFIX} $PKG/usr/man/man{1,8} +DESTDIR=$PKG ./inst + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +zcat $CWD/nntpserver.gz > $PKG/etc/nntpserver.new + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/nn-$VERSION +cp -a \ + INSTALLATION README \ + $PKG/usr/doc/nn-$VERSION +# This might be useful, so we'll put it in the docs just in case: +cp -a \ + $CWD/NNTP.gz \ + $PKG/usr/doc/nn-$VERSION + gzip -d $PKG/usr/doc/nn-$VERSION/NNTP.gz + chmod 644 $PKG/usr/doc/nn-$VERSION/NNTP +mkdir -p $PKG/usr/doc/nn-$VERSION/contrib +( cd contrib ; cp -a \ + README aspell cn howto-metamail mail-alias \ + nn_elm nn-use-mh nnsum recmail.c recmail.sh \ + $PKG/usr/doc/nn-$VERSION/contrib ) + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/nn-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/nn/nn.badnntphost.diff b/source/n/nn/nn.badnntphost.diff new file mode 100644 index 000000000..919b7d42e --- /dev/null +++ b/source/n/nn/nn.badnntphost.diff @@ -0,0 +1,14 @@ +--- ./nntp.c.orig 2005-04-19 18:06:51.000000000 -0500 ++++ ./nntp.c 2006-06-27 17:14:32.000000000 -0500 +@@ -913,8 +913,9 @@ + + if ((hp = gethostbyname(nntp_server)) != NULL) + server_real_name = hp->h_name; +- else +- nn_exitmsg(1, "NNTPSERVER is invalid"); ++ else { ++ nn_exitmsg(1, "NNTP host is invalid -- please edit /etc/nntpserver"); ++ } + use_nntp = (strcmp(host_name, server_real_name) != 0); + + if (use_nntp) { diff --git a/source/n/nn/nn.destdir.diff b/source/n/nn/nn.destdir.diff new file mode 100644 index 000000000..fe4bdf04b --- /dev/null +++ b/source/n/nn/nn.destdir.diff @@ -0,0 +1,179 @@ +# Taken from the Slamd64 repository +# Thanks Fred/Frank +--- nn-6.7.3/inst.sh.orig 2006-08-14 00:19:40.000000000 +0100 ++++ nn-6.7.3/inst.sh 2006-08-14 00:32:12.000000000 +0100 +@@ -60,11 +60,11 @@ + fi + fi + +-set $RECMAIL +-if [ ! -f "$1" ] +-then +- echo ERROR: Mailer program $RECMAIL not found. +-fi ++#set $RECMAIL ++#if [ ! -f "$1" ] ++#then ++# echo ERROR: Mailer program $RECMAIL not found. ++#fi + ) > ErrorCheck + + if [ -s ErrorCheck ] +@@ -246,69 +246,69 @@ + + bin) + echo +- if [ ! -d "$BIN"/. ] ++ if [ ! -d "$DESTDIR/$BIN"/. ] + then +- echo Directory $BIN does not found! ++ echo Directory $DESTDIR/$BIN does not found! + exit 1 + fi + +- echo Installing user programs in $BIN ++ echo Installing user programs in $DESTDIR/$BIN + +- if [ -f $BIN/nn ] ++ if [ -f $DESTDIR/$BIN/nn ] + then + ( +- cd $BIN ++ cd $DESTDIR/$BIN + mv nn nn.old +- rm -f $BIN_PROG $BIN_LINK ++ rm -f $BIN_PROG $DESTDIR/$BIN_LINK + ) + fi + + for prog in $BIN_PROG + do +- ./inst copy 755 $BIN $prog ++ ./inst copy 755 $DESTDIR/$BIN $prog + done + + for link in $BIN_LINK + do +- ln $BIN/nn $BIN/$link ++ ln -s nn $DESTDIR/$BIN/$link + echo $link linked to nn + done + +- if [ -f $BIN/nnacct ] ; then +- chmod 4755 $BIN/nnacct ++ if [ -f $DESTDIR/$BIN/nnacct ] ; then ++ chmod 4755 $DESTDIR/$BIN/nnacct + echo nnacct is setuid ${OWNER}. + fi + ;; + + aux) + echo +- ./inst mkdir $LIB 755 || exit 1 ++ ./inst mkdir $DESTDIR/$LIB 755 || exit 1 + + echo Installing auxiliary programs in $LIB + + for prog in $LIB_PROG + do +- ./inst copy 755 $LIB $prog ++ ./inst copy 755 $DESTDIR/$LIB $prog + done + +- ./mkprefix conf > ${LIB}/conf ++ ./mkprefix conf > $DESTDIR/${LIB}/conf + grep "^#" config.h | +- sed -e '/_MAN_/d' -e 's/[ ]*\/\*.*$//' >> ${LIB}/conf +- ./inst chmod 644 ${LIB}/conf ++ sed -e '/_MAN_/d' -e 's/[ ]*\/\*.*$//' >> $DESTDIR/${LIB}/conf ++ ./inst chmod 644 $DESTDIR/${LIB}/conf + ;; + + help) +- ./inst mkdir $HELP 755 || exit 1 ++ ./inst mkdir $DESTDIR/$HELP 755 || exit 1 + + echo +- echo Installing help files in $HELP ++ echo Installing help files in $DESTDIR/$HELP + + cd help + for h in * + do + cd .. +- ./cvt-help < help/$h > $HELP/$h +- ./inst chmod 644 $HELP/$h ++ ./cvt-help < help/$h > $DESTDIR/$HELP/$h ++ ./inst chmod 644 $DESTDIR/$HELP/$h + echo $h + cd help + done +@@ -327,32 +327,35 @@ + } | + while read DIR SECT SRC + do +- if [ -d "$DIR"/. ] ++ if [ -d "$DESTDIR/$DIR"/. ] + then + for i in man/*$SRC + do + MAN=`basename ${i} $SRC` +- NEW=$DIR/${MAN}.$SECT +- sed -e '/^\.TH /s/6.7/'${PL}'/' $i > $NEW +- ./inst chmod 644 $NEW +- echo $MAN in $NEW ++ if [ $MAN != 'nnmaster' ] ++ then ++ NEW=$DESTDIR/$DIR/${MAN}.$SECT ++ sed -e '/^\.TH /s/6.7/'${PL}'/' $i > $NEW ++ ./inst chmod 644 $NEW ++ echo $MAN in $NEW ++ fi + done + else +- echo $DIR not found or not writeable ++ echo $DESTDIR/$DIR not found or not writeable + fi + done + ;; + + online) +- ./inst mkdir $HELP 755 || exit 1 ++ ./inst mkdir $DESTDIR/$HELP 755 || exit 1 + + MAN=$HELP/Manual + + echo +- echo "Formatting online manual $MAN" ++ echo "Formatting online manual $DESTDIR/$MAN" + echo ".... (continues in background) ...." + +- rm -f $MAN ++ rm -f $DESTDIR/$MAN + + ( + sed -e 's/\\f[BPI]//g' \ +@@ -362,9 +365,9 @@ + -e '/^\.if/d' -e '/^\.ta/d' -e '/^\.nr/d' \ + -e '/^\.in/d' -e 's/^\.[BI] //' \ + `ls -1 man/*.? man/*.??` | +- ${AWK} -f format.awk - > $MAN ++ ${AWK} -f format.awk - > $DESTDIR/$MAN + +- ./inst chmod 644 $MAN ++ ./inst chmod 644 $DESTDIR/$MAN + ) & + ;; + +@@ -502,9 +505,9 @@ + + done + +-if [ -f $LOG ] ++if [ -f $DESTDIR/$LOG ] + then +- chmod 666 $LOG ++ chmod 666 $DESTDIR/$LOG + fi + + if $PAUSE diff --git a/source/n/nn/nn.diff b/source/n/nn/nn.diff new file mode 100644 index 000000000..04ec3c4c2 --- /dev/null +++ b/source/n/nn/nn.diff @@ -0,0 +1,85 @@ +--- ./config.h-dist.orig 2005-04-01 14:44:22.000000000 -0600 ++++ ./config.h-dist 2006-06-27 16:33:00.000000000 -0500 +@@ -45,7 +45,7 @@ + #define DO_NOV_DIGEST + + /* Optional */ +-/* #define NOV_DIRECTORY "/usr/spool/news" */ ++#define NOV_DIRECTORY "/var/spool/news/over.view" + + /* Optional */ + /* #define NOV_FILENAME ".overview" */ +@@ -68,7 +68,7 @@ + * LIB_DIRECTORY defined below. + */ + +-#define NNTP_SERVER "/usr/local/lib/nntp_server" ++#define NNTP_SERVER "/etc/nntpserver" + + /* + * Define your local domain name. If you leave this undefined, nn will +@@ -95,7 +95,7 @@ + * conf/s-template.h as a starting point for writing you own. + */ + +-#include "s-sunos5.h" ++#include "s-linux.h" + + /* + * Define DEFAULT_PAGER as the initial value of the 'pager' variable. +@@ -111,7 +111,7 @@ + */ + + /* #define DEFAULT_PRINTER "lp -s" */ /* System V */ +-#define DEFAULT_PRINTER "lpr -p -JNEWS" /* bsd */ ++#define DEFAULT_PRINTER "lpr -JNEWS" /* bsd */ + + + /********************** MACHINE DEPENDENT DEFINITIONS ********************** +@@ -173,8 +173,8 @@ + * (= LIB_DIRECTORY/Log if undefined). + */ + +-#define BIN_DIRECTORY "/usr/local/bin" +-#define LIB_DIRECTORY "/usr/local/lib/nn" ++#define BIN_DIRECTORY "/usr/bin" ++#define LIB_DIRECTORY "/usr/lib/nn" + + + /*************************** MAIL INTERFACE ************************* +@@ -189,7 +189,7 @@ + */ + + /* #define REC_MAIL "/usr/lib/news/recmail" */ /* non-sendmail */ +-#define REC_MAIL "/usr/lib/sendmail -t" /* sendmail */ ++#define REC_MAIL "/usr/sbin/sendmail -t" /* sendmail */ + + /* + * nn needs to know the name of your host. +@@ -237,13 +237,13 @@ + * DAEMON_MAN - nnmaster + */ + +-#define USER_MAN_DIR "/usr/local/man/man1" ++#define USER_MAN_DIR "/usr/man/man1" + #define USER_MAN_SECTION "1" + +-#define SYS_MAN_DIR "/usr/local/man/man1" ++#define SYS_MAN_DIR "/usr/man/man1" + #define SYS_MAN_SECTION "1m" + +-#define DAEMON_MAN_DIR "/usr/local/man/man8" ++#define DAEMON_MAN_DIR "/usr/man/man8" + #define DAEMON_MAN_SECTION "8" + + +@@ -425,7 +425,7 @@ + * Default: NEWS_LIB_DIR/{rm,del}group + */ + +-/* #define NEWS_DIRECTORY "/usr/spool/news" */ +-/* #define NEWS_LIB_DIRECTORY "/usr/lib/news" */ ++/* #define NEWS_DIRECTORY "/var/spool/news" */ ++/* #define NEWS_LIB_DIRECTORY "/var/lib/news" */ + + /************************ CONFIGURATION COMPLETED ************************/ diff --git a/source/n/nn/nntpserver b/source/n/nn/nntpserver new file mode 100644 index 000000000..3fa9a61b1 --- /dev/null +++ b/source/n/nn/nntpserver @@ -0,0 +1 @@ +news.my_news_server.com diff --git a/source/n/nn/slack-desc b/source/n/nn/slack-desc new file mode 100644 index 000000000..8caf48da7 --- /dev/null +++ b/source/n/nn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +nn: nn (the NN newsreader) +nn: +nn: nn is an easy to use menu driven newsreader by Kim F. Storm. +nn: +nn: nn stands for "No News is good news", and the nn newsreader is +nn: designed to let you minimize the amount of time you spend reading news +nn: (or, more realistically, to let you to read even more newsgroups :-). +nn: This version of nn reads news from a news server via NNTP, and can +nn: make use of your NNTP server's NOV database. +nn: +nn: diff --git a/source/n/ntp/doinst.sh b/source/n/ntp/doinst.sh new file mode 100644 index 000000000..1e74ce442 --- /dev/null +++ b/source/n/ntp/doinst.sh @@ -0,0 +1,18 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/ntp.conf.new +config etc/ntp/ntp.keys.new +if [ -r etc/rc.d/rc.ntpd -a -r etc/rc.d/rc.ntpd.new ]; then + chmod --reference=etc/rc.d/rc.ntpd etc/rc.d/rc.ntpd.new +fi +config etc/rc.d/rc.ntpd.new diff --git a/source/n/ntp/ntp.SlackBuild b/source/n/ntp/ntp.SlackBuild new file mode 100755 index 000000000..93ff1ee82 --- /dev/null +++ b/source/n/ntp/ntp.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.2.4p7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ntp + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ntp-${VERSION}* +tar xvf $CWD/ntp-${VERSION}*.tar.?z* || exit 1 +cd ntp-${VERSION}* || exit 1 +chown -R root:root . +find . \ + \( -perm 2777 -o -perm 2755 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 777 -o -perm 775 -o -perm 774 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --bindir=/usr/sbin \ + --sbindir=/usr/sbin \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Since the Makefile's install pays no heed to the --bindir settings, +# we'll move things to where they've always been ourselves: +mv $PKG/usr/bin/* $PKG/usr/sbin +rmdir $PKG/usr/bin + +# This is just epty: +rmdir $PKG/usr/lib || exit 1 + +mkdir -p $PKG/etc/ntp +cat $CWD/ntp.conf > $PKG/etc/ntp.conf.new +cat $CWD/ntp.keys > $PKG/etc/ntp/ntp.keys.new +chmod 600 $PKG/etc/ntp/ntp.keys.new +touch $PKG/etc/ntp/step-tickers + +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.ntpd > $PKG/etc/rc.d/rc.ntpd.new + +mkdir -p $PKG/usr/doc/ntp-$VERSION +cp -a \ + COPYRIGHT NEWS README* TODO WHERE-TO-START \ + *.y2kfixes clockstuff conf html scripts \ + $PKG/usr/doc/ntp-$VERSION +mkdir $PKG/usr/doc/ntp-$VERSION/util +cp -a util/README $PKG/usr/doc/ntp-$VERSION/util +mkdir $PKG/usr/doc/ntp-$VERSION/ntpdate +cp -a ntpdate/README $PKG/usr/doc/ntp-$VERSION/ntpdate +( cd $PKG/usr/doc/ntp-$VERSION + find . -type d -name .deps -exec rm -rf {} \; 2> /dev/null +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ntp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ntp/ntp.conf b/source/n/ntp/ntp.conf new file mode 100644 index 000000000..b2476786e --- /dev/null +++ b/source/n/ntp/ntp.conf @@ -0,0 +1,44 @@ +# Sample /etc/ntp.conf: Configuration file for ntpd. +# +# Undisciplined Local Clock. This is a fake driver intended for backup +# and when no outside source of synchronized time is available. The +# default stratum is usually 3, but in this case we elect to use stratum +# 0. Since the server line does not have the prefer keyword, this driver +# is never used for synchronization, unless no other other +# synchronization source is available. In case the local host is +# controlled by some external source, such as an external oscillator or +# another protocol, the prefer keyword would cause the local host to +# disregard all other synchronization sources, unless the kernel +# modifications are in use and declare an unsynchronized condition. +# +server 127.127.1.0 # local clock +fudge 127.127.1.0 stratum 10 +#server pool.ntp.org + +# +# Drift file. Put this in a directory which the daemon can write to. +# No symbolic links allowed, either, since the daemon updates the file +# by creating a temporary in the same directory and then rename()'ing +# it to the file. +# +driftfile /etc/ntp/drift +multicastclient # listen on default 224.0.1.1 +broadcastdelay 0.008 + +# +# Keys file. If you want to diddle your server at run time, make a +# keys file (mode 600 for sure) and define the key number to be +# used for making requests. +# PLEASE DO NOT USE THE DEFAULT VALUES HERE. Pick your own, or remote +# systems might be able to reset your clock at will. +# +#keys /etc/ntp/keys +#trustedkey 65535 +#requestkey 65535 +#controlkey 65535 + +# Don't serve time or stats to anyone else by default (more secure) +restrict default noquery nomodify +# Trust ourselves. :-) +restrict 127.0.0.1 + diff --git a/source/n/ntp/ntp.keys b/source/n/ntp/ntp.keys new file mode 100644 index 000000000..1c3fbd2c4 --- /dev/null +++ b/source/n/ntp/ntp.keys @@ -0,0 +1,2 @@ +65535 M akey +1 M pass diff --git a/source/n/ntp/rc.ntpd b/source/n/ntp/rc.ntpd new file mode 100644 index 000000000..2db421f6c --- /dev/null +++ b/source/n/ntp/rc.ntpd @@ -0,0 +1,53 @@ +#!/bin/sh +# Start/stop/restart ntpd. + +# Start ntpd: +ntpd_start() { + CMDLINE="/usr/sbin/ntpd -g" + echo -n "Starting NTP daemon: $CMDLINE" + $CMDLINE -p /var/run/ntpd.pid + echo +} + +# Stop ntpd: +ntpd_stop() { + echo -n "Stopping NTP daemon..." + kill $(cat /var/run/ntpd.pid) + echo + sleep 1 + rm -f /var/run/ntpd.pid + killall ntpd 2> /dev/null +} + +# Restart ntpd: +ntpd_restart() { + ntpd_stop + sleep 1 + ntpd_start +} + +# Check if ntpd is running +ntpd_status() { + if [ -e /var/run/ntpd.pid ]; then + echo "ntpd is running." + else + echo "ntpd is stopped." + fi +} + +case "$1" in +'start') + ntpd_start + ;; +'stop') + ntpd_stop + ;; +'restart') + ntpd_restart + ;; +'status') + ntpd_status + ;; +*) + echo "usage $0 start|stop|restart|status" +esac diff --git a/source/n/ntp/slack-desc b/source/n/ntp/slack-desc new file mode 100644 index 000000000..6319e8885 --- /dev/null +++ b/source/n/ntp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ntp: ntp (Network Time Protocol daemon) +ntp: +ntp: The Network Time Protocol (NTP) is used to synchronize the time of a +ntp: computer client or server to another server or reference time source, +ntp: such as a radio or satellite receiver or modem. It provides client +ntp: accuracies typically within a millisecond on LANs and up to a few tens +ntp: of milliseconds on WANs relative to a primary server synchronized to +ntp: Coordinated Universal Time (UTC) via a Global Positioning Service +ntp: (GPS) receiver, for example. +ntp: +ntp: diff --git a/source/n/obexftp/obexftp.SlackBuild b/source/n/obexftp/obexftp.SlackBuild new file mode 100755 index 000000000..821db8d21 --- /dev/null +++ b/source/n/obexftp/obexftp.SlackBuild @@ -0,0 +1,143 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=obexftp +VERSION=${VERSION:-0.23} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --disable-static \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS INSTALLDIRS=vendor || exit 1 +make install INSTALLDIRS=vendor DESTDIR=$PKG || exit 1 + +if [ -e $PKG/usr/bin/obexftpd ]; then + mkdir -p $PKG/usr/sbin + mv $PKG/usr/bin/obexftpd $PKG/usr/sbin/obexftpd +fi + +( cd $PKG/usr/bin + for link in obexls obexget obexput obexrm ; do + ln -sf obexftp $link + done + cd $PKG/usr/man/man1 + for link in obexls obexget obexput obexrm ; do + ln -sf obexftp.1 ${link}.1 + done +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO contrib \ + $PKG/usr/doc/${PKGNAM}-$VERSION +rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/contrib/Makefile* + +# Remove perllocal files: +find $PKG -name perllocal.pod -exec rm "{}" \; + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/obexftp/slack-desc b/source/n/obexftp/slack-desc new file mode 100644 index 000000000..a37d672eb --- /dev/null +++ b/source/n/obexftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +obexftp: obexftp (Access devices via ObexFTP, such as mobile phones) +obexftp: +obexftp: This package contains some command line tools and the ObexFTP +obexftp: library. Using OpenOBEX it enables you to transfer data via IrDA, +obexftp: Bluetooth, as well as some custom (Siemens, Ericsson) serial port +obexftp: protocols. +obexftp: +obexftp: ObexFTP was written by Christian W. Zuckschwerdt. +obexftp: +obexftp: The project site is: http://triq.net/obexftp.html +obexftp: diff --git a/source/n/openldap-client/doinst.sh b/source/n/openldap-client/doinst.sh new file mode 100644 index 000000000..8247a0f3b --- /dev/null +++ b/source/n/openldap-client/doinst.sh @@ -0,0 +1,14 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/openldap/ldap.conf.new + diff --git a/source/n/openldap-client/openldap-client.SlackBuild b/source/n/openldap-client/openldap-client.SlackBuild new file mode 100755 index 000000000..0131f63c9 --- /dev/null +++ b/source/n/openldap-client/openldap-client.SlackBuild @@ -0,0 +1,128 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# OpenLDAP (clients/libraries only!) + + +VERSION=2.3.43 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-openldap-client + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf openldap-$VERSION +tar xjvf $CWD/openldap-$VERSION.tar.bz2 || exit 1 +cd openldap-$VERSION +chown -R root:root . +find . -perm 777 -exec chmod 755 {} \; +find . -perm 664 -exec chmod 644 {} \; +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var/lib \ + --sysconfdir=/etc \ + --with-cyrus-sasl \ + --with-tls \ + --with-readline \ + --with-threads \ + --enable-debug \ + --enable-syslog \ + --enable-dynamic \ + --enable-local \ + --enable-proctitle \ + --disable-static \ + --enable-shared \ + --disable-slapd \ + --disable-slurpd + +make depend || exit 1 +make -j4 || exit 1 +make test || exit 1 +make install DESTDIR=$PKG || exit 1 + +rm -f $PKG/etc/openldap/ldap.conf.default +mv $PKG/etc/openldap/ldap.conf $PKG/etc/openldap/ldap.conf.new +cat << EOF >> $PKG/etc/openldap/ldap.conf.new + +# In order to avoid problems with self-signed certificates using TLS: +# "TLS certificate verification: Error, self signed certificate" +# See also 'man ldap.conf' or http://www.openldap.org/doc/admin/tls.html +TLS_REQCERT allow + +EOF + +mkdir -p $PKG/usr/doc/openldap-$VERSION +cp -a \ + ANNOUNCEMENT CHANGES COPYRIGHT LICENSE README \ + $PKG/usr/doc/openldap-$VERSION + +# Remove man pages for the servers (not currently supported or shipped... +# do they even work properly without the evil PAM?) +find $PKG/usr/man -name slap* -exec rm -f {} \; +find $PKG/usr/man -name slurp* -exec rm -f {} \; +find $PKG/usr/man -type d -empty -exec rmdir {} \; + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Strip binaries +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +makepkg -l y -c n $TMP/openldap-client-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/openldap-client/slack-desc b/source/n/openldap-client/slack-desc new file mode 100644 index 000000000..939153bbe --- /dev/null +++ b/source/n/openldap-client/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, +# and the '|'on the right side marks the last column you can put a +# character in. You must make exactly 11 lines for the formatting to be +# correct. It's also customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openldap-client: openldap-client (OpenLDAP client programs) +openldap-client: +openldap-client: OpenLDAP is an open source implementation of the Lightweight +openldap-client: Directory Access Protocol. LDAP is a alternative to the X.500 +openldap-client: Directory Access Protocol (DAP). It uses the TCP/IP stack versus +openldap-client: the overly complex OSI stack. +openldap-client: +openldap-client: LDAP is often used to provide authentication (such as for email). +openldap-client: +openldap-client: The OpenLDAP homepage is http://www.openldap.org/ +openldap-client: diff --git a/source/n/openobex/openobex.SlackBuild b/source/n/openobex/openobex.SlackBuild new file mode 100755 index 000000000..201735223 --- /dev/null +++ b/source/n/openobex/openobex.SlackBuild @@ -0,0 +1,118 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=openobex +VERSION=${VERSION:-1.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-static=no \ + --enable-apps \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog INSTALL NEWS README* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/openobex/slack-desc b/source/n/openobex/slack-desc new file mode 100644 index 000000000..a86312dc0 --- /dev/null +++ b/source/n/openobex/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openobex: openobex (Object Exchange protocol library) +openobex: +openobex: OpenOBEX is a free open source implementation of the Object Exchange +openobex: (OBEX) protocol. OBEX is a session protocol and can best be +openobex: described as a binary HTTP protocol. OBEX is optimised for ad-hoc +openobex: wireless links and can be used to exchange all kinds of objects like +openobex: files, pictures, calendar entries (vCal) and business cards (vCard). +openobex: +openobex: Visit the project here: http://www.openobex.org +openobex: +openobex: diff --git a/source/n/openssh/doinst.sh b/source/n/openssh/doinst.sh new file mode 100644 index 000000000..d696245d0 --- /dev/null +++ b/source/n/openssh/doinst.sh @@ -0,0 +1,35 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/ssh/ssh_config.new +config etc/ssh/sshd_config.new +config etc/rc.d/rc.sshd.new + +# If the sshd user/group/shadow don't exist, add them: + +if ! grep -q "^sshd:" etc/passwd ; then + echo "sshd:x:33:33:sshd:/:" >> etc/passwd +fi + +if ! grep -q "^sshd:" etc/group ; then + echo "sshd::33:sshd" >> etc/group +fi + +if ! grep -q "^sshd:" etc/shadow ; then + echo "sshd:*:9797:0:::::" >> etc/shadow +fi + +# Add a btmp file to store login failure if one doesn't exist: +if [ ! -r var/log/btmp ]; then + ( cd var/log ; umask 077 ; touch btmp ) +fi + diff --git a/source/n/openssh/openssh.SlackBuild b/source/n/openssh/openssh.SlackBuild new file mode 100755 index 000000000..4a6611327 --- /dev/null +++ b/source/n/openssh/openssh.SlackBuild @@ -0,0 +1,145 @@ +#!/bin/sh + +# Copyright 2000 BSDi, Inc. Concord, CA, USA +# Copyright 2001, 2002, 2003, 2004 Slackware Linux, Inc. Concord, CA, USA +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-openssh + +VERSION=${VERSION:-5.2p1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" +fi + +# Clean target location: +rm -rf $PKG +mkdir -p $PKG + +# Prepare the framework and extract the package: +cd $TMP +rm -rf $PKG openssh-$VERSION +tar xjvf $CWD/openssh-$VERSION.tar.bz2 || exit 1 +cd openssh-$VERSION +chown -R root:root . + +# Compile package: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --sysconfdir=/etc/ssh \ + --without-pam \ + --with-md5-passwords \ + --with-tcp-wrappers \ + --with-default-path=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin \ + --with-ipv4-default \ + --with-privsep-path=/var/empty \ + --with-privsep-user=sshd \ + --build=$ARCH-slackware-linux + +make -j4 || exit 1 + +# Install the package: +make install DESTDIR=$PKG + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Install directory used with PrivilegeSeparation option: +mkdir -p $PKG/var/empty +chmod 755 $PKG/var/empty + +# Install docs: +mkdir -p $PKG/usr/doc/openssh-$VERSION +cp -a \ + CREDITS ChangeLog INSTALL LICENCE OVERVIEW \ + README README.privsep README.smartcard RFC.nroff TODO WARNING.RNG \ + $PKG/usr/doc/openssh-$VERSION +chmod 644 $PKG/usr/doc/openssh-$VERSION/* + +# Install also 'ssh-copy-id' and its manpage from contrib: +( cd contrib + cp -a ssh-copy-id $PKG/usr/bin/ssh-copy-id + chmod 755 $PKG/usr/bin/ssh-copy-id + cat ssh-copy-id.1 | gzip -9c > $PKG/usr/man/man1/ssh-copy-id.1.gz +) + +( cd $PKG + + # Ditch the new host keys, since these have to be uniquely prepared on each machine: + rm -f etc/ssh/ssh_host_dsa_key + rm -f etc/ssh/ssh_host_dsa_key.pub + rm -f etc/ssh/ssh_host_rsa_key + rm -f etc/ssh/ssh_host_rsa_key.pub + rm -f etc/ssh/ssh_host_key + rm -f etc/ssh/ssh_host_key.pub + + # Set up the config script installation: + mv etc/ssh/ssh_config etc/ssh/ssh_config.new + mv etc/ssh/sshd_config etc/ssh/sshd_config.new + + # Add the init script: + mkdir -p etc/rc.d + cat $CWD/rc.sshd > etc/rc.d/rc.sshd.new + chmod 755 etc/rc.d/rc.sshd.new + + # Copy runtime installation files: + mkdir -p install + zcat $CWD/doinst.sh.gz > install/doinst.sh + cat $CWD/slack-desc > install/slack-desc +) + +# Create the package itself: +cd $PKG +/sbin/makepkg -l y -c n $TMP/openssh-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/openssh/rc.sshd b/source/n/openssh/rc.sshd new file mode 100644 index 000000000..8b496568e --- /dev/null +++ b/source/n/openssh/rc.sshd @@ -0,0 +1,53 @@ +#!/bin/sh +# Start/stop/restart the secure shell server: + +sshd_start() { + # Create host keys if needed. + if [ ! -r /etc/ssh/ssh_host_key ]; then + /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N '' + fi + if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then + /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' + fi + if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then + /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' + fi + /usr/sbin/sshd +} + +sshd_stop() { + killall sshd +} + +sshd_restart() { + if [ -r /var/run/sshd.pid ]; then + echo "WARNING: killing listener process only. To kill every sshd process, you must" + echo " use 'rc.sshd stop'. 'rc.sshd restart' kills only the parent sshd to" + echo " allow an admin logged in through sshd to use 'rc.sshd restart' without" + echo " being cut off. If sshd has been upgraded, new connections will now" + echo " use the new version, which should be a safe enough approach." + kill `cat /var/run/sshd.pid` + else + echo "WARNING: There does not appear to be a parent instance of sshd running." + echo " If you really want to kill all running instances of sshd (including" + echo " any sessions currently in use), run '/etc/rc.d/rc.sshd stop' instead." + exit 1 + fi + sleep 1 + sshd_start +} + +case "$1" in +'start') + sshd_start + ;; +'stop') + sshd_stop + ;; +'restart') + sshd_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac + diff --git a/source/n/openssh/slack-desc b/source/n/openssh/slack-desc new file mode 100644 index 000000000..04277a720 --- /dev/null +++ b/source/n/openssh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssh: openssh (Secure Shell daemon and clients) +openssh: +openssh: ssh (Secure Shell) is a program for logging into a remote machine and +openssh: for executing commands on a remote machine. It is intended to replace +openssh: rlogin and rsh, and provide secure encrypted communications between +openssh: two untrusted hosts over an insecure network. sshd (SSH Daemon) is +openssh: the daemon program for ssh. OpenSSH is based on the last free version +openssh: of Tatu Ylonen's SSH, further enhanced and cleaned up by Aaron +openssh: Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, and +openssh: Dug Song. It has a homepage at http://www.openssh.com/ +openssh: diff --git a/source/n/openssl/certwatch b/source/n/openssl/certwatch new file mode 100644 index 000000000..ac8d83403 --- /dev/null +++ b/source/n/openssl/certwatch @@ -0,0 +1,128 @@ +#!/bin/sh +# +# Will check all certificates stored in $CERTDIR for their expiration date, +# and will display (if optional "stdout" argument is given), or mail a warning +# message to $MAILADDR (if script is executed without any parameter +# - unattended mode suitable for cron execution) for each particular certificate +# that is about to expire in time less to, or equal to $DAYS after this script +# has been executed, or if it has already expired. +# This stupid script (C) 2006,2007 Jan Rafaj + +########################## CONFIGURATION SECTION BEGIN ######################### +# Note: all settings are mandatory +# Warning will be sent if a certificate expires in time <= days given here +DAYS=7 +# E-mail address where to send warnings +MAILADDR=root +# Directory with certificates to check +CERTDIR=/etc/ssl/certs +# Directory where to keep state files if this script isnt executed with "stdout" +STATEDIR=/var/run +########################### CONFIGURATION SECTION END ########################## + +PATH=/bin:/usr/bin:/sbin:/usr/sbin +DAY_IN_SECS=$((60*60*24)) +DATE_CURRENT=$(date '+%s') + +usage() +{ + echo "Usage: $0 [stdout]" + echo + echo "Detailed description and configuration is embedded within the script." + exit 0 +} + +message() +{ + cat << EOF + WARNING: certificate $certfile + is about to expire in time equal to or less than $DAYS days from now on, + or has already expired - it might be a good idea to obtain/create new one. + +EOF +} + +message_mail() +{ + message + cat << EOF + NOTE: This message is being sent only once. + + A lock-file + $STATEDIR/certwatch-mailwarning-sent-$certfilebase + has been created, which will prevent this script from mailing you again + upon its subsequent executions by crond. You dont need to care about it; + the file will be auto-deleted as soon as you'll prolong your certificate. +EOF +} + +unset stdout +case $# in + 0) ;; + 1) if [ "$1" = "-h" -o "$1" == "--help" ]; then + usage + elif [ "$1" = "stdout" ]; then + stdout=1 + else + usage + fi + ;; + *) usage ;; +esac + +for dir in $STATEDIR $CERTDIR ; do + if [ ! -d $dir ]; then + echo "ERROR: directory $dir does not exist" + exit 1 + fi +done +for binary in basename date find grep mail openssl touch ; do + if [ ! \( -x /usr/bin/$binary -o -x /bin/$binary \) ]; then + echo "ERROR: /usr/bin/$binary not found" + exit 1 + fi +done + +find $CERTDIR -type f -maxdepth 1 | while read certfile ; do + certfilebase="$(basename "$certfile")" + inform=PEM + echo "$certfile" | grep -q -i '\.net$' + if [ $? -eq 0 ]; then + # This is based purely on filename extension, so may give false results. + # But lets assume noone uses NET format certs today, ok? + continue + fi + echo "$certfile" | grep -q -i '\.der$' + if [ $? -eq 0 -o "$(file "$certfile" | grep ASCII)" == "" ]; then + inform=DER + fi + # We wont use '-checkend' since it is not properly documented (as of + # OpenSSL 0.9.8e). + DATE_CERT_EXPIRES=$(openssl x509 -in "$certfile" -inform $inform -noout -enddate | sed 's/^notAfter=//') + DATE_CERT_EXPIRES=$(date -d"$DATE_CERT_EXPIRES" +%s) + if [ $(($DATE_CERT_EXPIRES - $DATE_CURRENT)) -le $(($DAYS * $DAY_IN_SECS)) ] + then + if [ $stdout ]; then + message + else + if [ ! -f $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" ]; then + subject="$0: certificate $certfile expiration warning" + message_mail | mail -r "certwatch@$HOSTNAME" \ + -s "$subject" \ + $MAILADDR 2>/dev/null + # echo "Mail about expiring certificate $certfile sent to $MAILADDR." + # echo "If you need to send it again, please remove lock-file" + # echo "$STATEDIR/certwatch-mailwarning-sent-$certfilebase ." + # echo + fi + touch $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" + fi + else + if [ ! $stdout ]; then + if [ -f $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" ]; then + rm $STATEDIR/certwatch-mailwarning-sent-"$certfilebase" + fi + fi + fi +done + diff --git a/source/n/openssl/doinst.sh-openssl b/source/n/openssl/doinst.sh-openssl new file mode 100644 index 000000000..f73c5a514 --- /dev/null +++ b/source/n/openssl/doinst.sh-openssl @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ssl/openssl.cnf.new +config etc/cron.daily/certwatch.new +# If the admin has modified this in any way, no need to keep the sample. +rm -f etc/cron.daily/certwatch.new diff --git a/source/n/openssl/doinst.sh-openssl-solibs b/source/n/openssl/doinst.sh-openssl-solibs new file mode 100644 index 000000000..ed4fdfacb --- /dev/null +++ b/source/n/openssl/doinst.sh-openssl-solibs @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ssl/openssl.cnf.new diff --git a/source/n/openssl/openssl.SlackBuild b/source/n/openssl/openssl.SlackBuild new file mode 100755 index 000000000..b6cb80741 --- /dev/null +++ b/source/n/openssl/openssl.SlackBuild @@ -0,0 +1,150 @@ +#!/bin/sh + +# Copyright 2000 BSDi, Inc. Concord, CA, USA +# Copyright 2001, 2002 Slackware Linux, Inc. Concord, CA, USA +# Copyright 2005, 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +VERSION=${VERSION:-0.9.8k} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +PKG1=$TMP/package-openssl +PKG2=$TMP/package-ossllibs +NAME1=openssl-$VERSION-$ARCH-$BUILD +NAME2=openssl-solibs-$VERSION-$ARCH-$BUILD + +NUMJOBS=${NUMJOBS:--j6} + +# So that ls has the right field counts for parsing... +export LC_ALL=C + +cd $TMP +rm -rf $PKG1 $PKG2 openssl-$VERSION +tar xvf $CWD/openssl-$VERSION.tar.bz2 || exit 1 +cd openssl-$VERSION + +# Use .so.0, not .so.0.9.8: +zcat $CWD/openssl.soname.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 +if [ "$ARCH" = "i486" ]; then + # Build with -march=i486 -mtune=i686: + zcat $CWD/openssl.optsx86.diff.gz | patch -p1 --backup --verbose --suffix=.orig || exit 1 + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +fi + +# Advertise TLS extensions only on TLS handshakes, not SSL: +zcat $CWD/openssl.no-extssl.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +mkdir -p $PKG1/usr/doc/openssl-$VERSION +cp -a CHANGES CHANGES.SSLeay FAQ INSTALL INSTALL.MacOS INSTALL.VMS INSTALL.W32 \ + LICENSE NEWS README README.ENGINE doc $PKG1/usr/doc/openssl-$VERSION +find $PKG1/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \; +find $PKG1/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \; + +# These are the known patent issues with OpenSSL: +# name # expires +# MDC-2: 4,908,861 2007-03-13, included. :-) +# IDEA: 5,214,703 2010-05-25, not included. +# RC5: 5,724,428 2015-03-03, not included. + +./config \ + --prefix=/usr \ + --openssldir=/etc/ssl \ + no-idea \ + no-rc5 \ + no-sse2 \ + shared + +make depend || exit 1 + +make $NUMJOBS || make || exit 1 + +make install INSTALL_PREFIX=$PKG1 || exit 1 + +( cd $PKG1/usr; mv lib lib${LIBDIRSUFFIX} ) + +# Add a cron script to warn root if a certificate is going to expire soon: +mkdir -p $PKG1/etc/cron.daily +zcat $CWD/certwatch.gz > $PKG1/etc/cron.daily/certwatch.new +chmod 755 $PKG1/etc/cron.daily/certwatch.new + +mv $PKG1/etc/ssl/openssl.cnf $PKG1/etc/ssl/openssl.cnf.new + +( cd $PKG1 + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +( cd $PKG1/usr/lib${LIBDIRSUFFIX} ; ldconfig -l * 2> /dev/null ) +( cd $PKG1/usr/lib${LIBDIRSUFFIX} ; ln -sf libcrypto.so.0 libcrypto.so ) +( cd $PKG1/usr/lib${LIBDIRSUFFIX} ; ln -sf libssl.so.0 libssl.so ) +mv $PKG1/etc/ssl/man $PKG1/usr +( cd $PKG1/usr/man/man1 ; mv passwd.1 ssl_passwd.1 ) +( cd $PKG1/usr/man/man3 ; mv rand.3 ssl_rand.3 ) +( cd $PKG1/usr/man/man3 ; mv err.3 ssl_err.3 ) +# Compress and symlink the man pages: +if [ -d $PKG1/usr/man ]; then + ( cd $PKG1/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +cd $PKG1 +chmod 755 usr/lib${LIBDIRSUFFIX}/pkgconfig +sed -i -e "s#lib\$#lib${LIBDIRSUFFIX}#" usr/lib${LIBDIRSUFFIX}/pkgconfig/*.pc +mkdir -p install +zcat $CWD/doinst.sh-openssl.gz > install/doinst.sh +cat $CWD/slack-desc.openssl > install/slack-desc +/sbin/makepkg -l y -c n $TMP/${NAME1}.txz + +# Make runtime package: +mkdir -p $PKG2/usr/lib${LIBDIRSUFFIX} +( cd usr/lib${LIBDIRSUFFIX} ; cp -a lib*.so.*.*.* $PKG2/usr/lib${LIBDIRSUFFIX} ) +( cd $PKG2/usr/lib${LIBDIRSUFFIX} ; ldconfig -l * ) +mkdir -p $PKG2/etc +( cd $PKG2/etc ; cp -a $PKG1/etc/ssl . ) +mkdir -p $PKG2/usr/doc/openssl-$VERSION +( cd $TMP/openssl-$VERSION + cp -a CHANGES CHANGES.SSLeay FAQ INSTALL INSTALL.MacOS INSTALL.VMS INSTALL.W32 \ + LICENSE NEWS README README.ENGINE $PKG2/usr/doc/openssl-$VERSION +) +find $PKG2/usr/doc/openssl-$VERSION -type d -exec chmod 755 {} \; +find $PKG2/usr/doc/openssl-$VERSION -type f -exec chmod 644 {} \; +cd $PKG2 +mkdir -p install +zcat $CWD/doinst.sh-openssl-solibs.gz > install/doinst.sh +cat $CWD/slack-desc.openssl-solibs > install/slack-desc +/sbin/makepkg -l y -c n $TMP/${NAME2}.txz diff --git a/source/n/openssl/openssl.no-extssl.diff b/source/n/openssl/openssl.no-extssl.diff new file mode 100644 index 000000000..de00d0c77 --- /dev/null +++ b/source/n/openssl/openssl.no-extssl.diff @@ -0,0 +1,27 @@ +diff -up openssl-0.9.8g/ssl/t1_lib.c.no-extssl openssl-0.9.8g/ssl/t1_lib.c +--- openssl-0.9.8g/ssl/t1_lib.c.no-extssl 2007-10-19 09:44:10.000000000 +0200 ++++ openssl-0.9.8g/ssl/t1_lib.c 2008-08-10 21:42:11.000000000 +0200 +@@ -132,6 +132,11 @@ unsigned char *ssl_add_clienthello_tlsex + int extdatalen=0; + unsigned char *ret = p; + ++ if (s->client_version != TLS1_VERSION && s->client_version != DTLS1_VERSION) ++ { ++ return ret; ++ } ++ + ret+=2; + + if (ret>=limit) return NULL; /* this really never occurs, but ... */ +@@ -202,6 +207,11 @@ unsigned char *ssl_add_serverhello_tlsex + int extdatalen=0; + unsigned char *ret = p; + ++ if (s->version != TLS1_VERSION && s->version != DTLS1_VERSION) ++ { ++ return ret; ++ } ++ + ret+=2; + if (ret>=limit) return NULL; /* this really never occurs, but ... */ + diff --git a/source/n/openssl/openssl.optsx86.diff b/source/n/openssl/openssl.optsx86.diff new file mode 100644 index 000000000..a1a289a20 --- /dev/null +++ b/source/n/openssl/openssl.optsx86.diff @@ -0,0 +1,11 @@ +--- ./Configure.orig 2005-08-02 03:59:42.000000000 -0700 ++++ ./Configure 2005-10-12 20:04:43.000000000 -0700 +@@ -317,7 +317,7 @@ + "linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc32.o::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + #### IA-32 targets... + "linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -mtune=i686 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}", + #### + "linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", diff --git a/source/n/openssl/openssl.soname.diff b/source/n/openssl/openssl.soname.diff new file mode 100644 index 000000000..f660e93bb --- /dev/null +++ b/source/n/openssl/openssl.soname.diff @@ -0,0 +1,11 @@ +--- ./Makefile.shared.orig 2005-06-23 13:47:54.000000000 -0700 ++++ ./Makefile.shared 2005-10-12 20:02:28.000000000 -0700 +@@ -151,7 +151,7 @@ + SHLIB_SUFFIX=; \ + ALLSYMSFLAGS='-Wl,--whole-archive'; \ + NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ +- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" ++ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB.0" + + DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" + diff --git a/source/n/openssl/slack-desc.openssl b/source/n/openssl/slack-desc.openssl new file mode 100644 index 000000000..57227c043 --- /dev/null +++ b/source/n/openssl/slack-desc.openssl @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssl: openssl (Secure Sockets Layer toolkit) +openssl: +openssl: The OpenSSL certificate management tool and the shared libraries that +openssl: provide various encryption and decryption algorithms and protocols. +openssl: +openssl: This product includes software developed by the OpenSSL Project for +openssl: use in the OpenSSL Toolkit (http://www.openssl.org). This product +openssl: includes cryptographic software written by Eric Young +openssl: (eay@cryptsoft.com). This product includes software written by Tim +openssl: Hudson (tjh@cryptsoft.com). +openssl: diff --git a/source/n/openssl/slack-desc.openssl-solibs b/source/n/openssl/slack-desc.openssl-solibs new file mode 100644 index 000000000..f65bf12c9 --- /dev/null +++ b/source/n/openssl/slack-desc.openssl-solibs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openssl-solibs: openssl-solibs (OpenSSL shared libraries) +openssl-solibs: +openssl-solibs: These shared libraries provide encryption routines required by +openssl-solibs: programs such as openssh. They are also used by KDE's Konqueror web +openssl-solibs: browser to provide secure web connections. +openssl-solibs: +openssl-solibs: This product includes software developed by the OpenSSL Project for +openssl-solibs: use in the OpenSSL Toolkit (http://www.openssl.org). This product +openssl-solibs: includes cryptographic software written by Eric Young +openssl-solibs: (eay@cryptsoft.com). This product includes software written by Tim +openssl-solibs: Hudson (tjh@cryptsoft.com). diff --git a/source/n/openvpn/README b/source/n/openvpn/README new file mode 100644 index 000000000..cf2c6602f --- /dev/null +++ b/source/n/openvpn/README @@ -0,0 +1,26 @@ +OpenVPN is a full-featured SSL VPN which can accomodate a wide +range of configurations, including remote access, site-to-site VPNs, +WiFi security, and enterprise-scale remote access with load +balancing, failover, and fine-grained access-controls. + +OpenVPN implements OSI layer 2 or 3 secure network extension using the +industry standard SSL/TLS protocol, supports flexible client +authentication methods based on certificates, smart cards, and/or +2-factor authentication, and allows user or group-specific access +control policies using firewall rules applied to the VPN virtual +interface. + +This build of OpenVPN depends upon having openssl (not just +openssl-solibs) and lzo installed on your computer. + +Please note that there is no default config file for OpenVPN. This is +by design. OpenVPN can technically use any config file in any location. +However, this script does create an /etc/openvpn/ directory with certs/ +and keys/ subdirectories. Feel free to place config files, keys, and +certificates in these directories. certs/ and keys/ are owned by user +root and group nobody and are not world readable nor writable. +Additionally, they are not writable by group nobody. It is recommended +that you run openvpn nobody:nobody, but you may use another +non-privilaged user and group at your option. Just change the +permissions on these permissions to reflect that if you do. + diff --git a/source/n/openvpn/openvpn.SlackBuild b/source/n/openvpn/openvpn.SlackBuild new file mode 100755 index 000000000..45c1a17d8 --- /dev/null +++ b/source/n/openvpn/openvpn.SlackBuild @@ -0,0 +1,122 @@ +#!/bin/sh + +# Copyright 2006, Alan Hicks, Lizella, GA +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=openvpn +VERSION=2.0.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1 +cd $PRGNAM-$VERSION || exit 1 + +# Fix ownership and permissions inside the source tarball. +# It's appalling how many projects have 777 permissions or +# even suid, sgid, and sticky bits set on things. +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc/openvpn \ + --localstatedir=/var \ + --enable-lzo \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install-strip DESTDIR=$PKG || exit 1 + +# Create a decent config directory. openvpn doesn't have one by +# default, nor does it have a single config file. +mkdir -p $PKG/etc/openvpn/{certs,keys} +chown root:nobody $PKG/etc/openvpn/{certs,keys} +chmod 750 $PKG/etc/openvpn/{certs,keys} + +# Install a reasonably generic sample config file: +cp -a $CWD/openvpn.conf.sample $PKG/etc/openvpn/openvpn.conf.sample +chmod 644 $PKG/etc/openvpn/openvpn.conf.sample + +# Let folks know about the other configs, if they haven't found them. +# They might even find the documentation there useful. ;-) +cat << EOF > $PKG/etc/openvpn/README.TXT +Have a look in /usr/doc/$PRGNAM-$VERSION/sample-config-files +for some more examples of how to configure OpenVPN. You'll +need to add something to your /etc/rc.d/rc.local to start +OpenVPN, as well as to tell it where to find its config file. + + +See "man openvpn" and the other docs for more information. +EOF + +# Add a link, too: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/sample-config-files +( cd $PKG/usr/doc/$PRGNAM-$VERSION/sample-config-files + ln -sf /etc/openvpn/openvpn.conf.sample . +) + +if [ -d $PKG/usr/man ]; then +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a AUTHORS COPYING COPYRIGHT.GPL ChangeLog INSTALL INSTALL-win32.txt \ + NEWS PORTS README sample-config-files sample-keys sample-scripts easy-rsa \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/openvpn/openvpn.conf.sample b/source/n/openvpn/openvpn.conf.sample new file mode 100644 index 000000000..4314b5441 --- /dev/null +++ b/source/n/openvpn/openvpn.conf.sample @@ -0,0 +1,178 @@ +# openvpn.conf.sample +# +# This is a sample configuration file for OpenVPN. +# Not all options are listed here; you can find good documentation +# about all of the options in OpenVPN's manual page - openvpn(8). +# +# You can make a P-t-P connection by creating a shared key, +# copying this key to other hosts in your network, and changing +# the IP addresses in this file. +# +# Commented options are provided for some typical configurations + +# Change the "search" path to /etc/openvpn +# All files referenced in this configuration will be relative to +# whatever directory is specified here - we default to /etc/openvpn +cd /etc/openvpn + +# If running as a server, which local IP address should OpenVPN +# listen on? Specify this as either a hostname or IP address. If +# this is left blank, OpenVPN will default to listening on all +# interfaces. +#local a.b.c.d + +# This option defines the IP or DNS name of the other side of your VPN +# connection. This option is needed if you are making client or P-t-P +# connections. If you are the server, use "local" instead. This may +# be specified as a domain name or IP address. +#remote vpn.server.org + +# This option defins the protocol to use. Valid options are: +# udp, tcp-server, or tcp-client. Default is udp, and generally +# speaking, tcp is a bad idea. +proto udp + +# This option defines the port on which your server will be listening +# or trying to connect. The default is 1194 +port 1194 + +# This option defines whether to use LZO compression. +# If enabled, it must be enabled at both ends of the VPN connection. +#comp-lzo + +# Debug level (default 1) +#verb 3 + +# VPN logfile location +# If you don't specify a location here, logging will be done through +# syslogd and write to /var/log/messages +log-append /var/log/openvpn.log + +# If you want to use OpenVPN as a daemon, uncomment this line. +# Generally speaking, servers should run OpenVPN as a daemon +# and clients should not. +#daemon + +# Device type to use, you can choose between tun or tap. +# TUN is the most common option. If you have multiple connections, +# it is a good idea to bind each connection to a separate TUN/TAP +# interface using tunX/tapX, where X is the number of each interface. +dev tun + +# This option prevents OpenVPN from closing and re-opening the tun/tap +# device every time it receives a SIGUSR1 signal +#persist-tun + +# This is similar to the previous option, but it prevents OpenVPN from +# re-reading the key files every time +#persist-key + +# If you are using a client-server architecture, you need to specify the +# role of your computer in your VPN network. To use one of these options, +# you need to configure TLS options too. +# +# To use the "server" option, you must specify a network subnet such +# as 172.16.1.0 255.255.255.0. The first number is the network, the +# second is the netmask. OpenVPN will take the first available IP +# for itself (in our example, 172.16.1.1) and the rest will be +# given to connecting clients dynamically. +# +# Leave these commented out if you are using OpenVPN in bridging mode. +# +#server 10.1.2.0 255.255.255.0 +#client + +# This option defines a file with IP address to client mapping. +# This is useful in general, and necessary if clients use persist-tun. +#ifconfig-pool-persist ips.txt + +# Enable this option if you want clients connected to this VPN to be +# able to talk directly to each other +#client-to-client + +# This option defines the directory in which configuration files for clients +# will reside. With individual files you can make each client get different +# options using "push" parameters +#client-config-dir ccd + +# If you are using P-t-P, you need to specify the IP addresses at both ends +# of your VPN connection. The IP addresses are reversed at the other side. +# +# You can use this to specify client IP addresses in ccd files (on server) +# or directly in client configuration +#ifconfig 10.1.2.1 10.1.2.2 + +# You can set routes to specific networks. In the sample below, "vpn_gateway" +# is an internal OpenVPN alias to your VPN gateway - leave it as is. +# This will enable you to talk with the networks behind your VPN server. +# Multiple routes can be specified. +# +# +------------+ - - +------------+ +# | Network1 |---| VPN1 |--[10.1.2.0/24]--| VPN2 |---| Network2 | +# +------------+ +------+ +------+ +------------+ +# 192.168.0.0/24 192.168.2.0/24 +# +# The sample below shows how VPN1 server can reach Network2 +#route 192.168.2.0 255.255.255.0 vpn_gateway + +# You can send clients many network configuration options using the +# "push" directive and sending commands. +# Multiple "push" directives can be used. You should only put global +# "push" directives here. You can "push" different options to +# different clients in per-client configuration files. See +# "client-config-dir" above. +# +# Using the same network configuration that you see above, the route statment +# here allows VPN2 to reach Network1 +#push "route-delay 2 600" +#push "route 192.168.2.0 255.255.255.0 vpn_gateway" +#push "persist-key" + +# This option sets the encryption algorithm to use in the VPN connection. +# Available options are: +# DES-CBC, RC2-CBC, DES-EDE-CBC, DES-EDE3-CBC, +# DESX-CBC, BF-CBC, RC2-40-CBC, CAST5-CBC, +# RC2-64-CBC, AES-128-CBC, AES-192-CBC and AES-256-CBC +cipher BF-CBC + +# Shared Key Connection +# --------------------- +# Secret is one shared key between the hosts that want to connect through VPNs. +# Without secret or TLS options, your data will not be encrypted. +# +# To generate an encryption key do: +# openvpn --genkey --secret /etc/openvpn/keys/shared.key +# +# Do the above on one host and copy it to the others +secret keys/shared.key + +# TLS Connections +# --------------- +# TLS must be used if you use option "server" or "client" +# The basic idea there is: You have one Certificate Authority, and all +# machines in your VPN network need to have individual certificates and +# keys signed by Certificate Authority. This means each client can +# have its own key, making it easier to revoke a key without copying +# a shared secret key to every client. +# +# Inside the /usr/doc/openvpn-$VERSION documentation directory, you can +# find "easy-rsa" scripts to make certificate and key management easier. + +# Certificate Authority file +# This file must be identical on all hosts that connect to your VPN +#ca certs/ca.crt + +# If you are the server, you need to specify some Diffie Hellman parameters. +# OpenVPN provides some sample .pem files in documentation directory +#dh my-dh.pem + +# Certificate and Key signed by Certificate Authority +# Each machine needs to have their own unique certificate +#cert certs/machine.cert +#key keys/machine.key + +# To prevent some DoS attacks we can add another authentication layer in the +# TLS control channel. This needs to be enabled at both ends to work +# client uses the value 1; server uses the value 0 +#tls-auth keys/shared.key 0 + diff --git a/source/n/openvpn/slack-desc b/source/n/openvpn/slack-desc new file mode 100644 index 000000000..4f4af4c47 --- /dev/null +++ b/source/n/openvpn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +openvpn: openvpn (secure IP tunnel daemon) +openvpn: +openvpn: OpenVPN is a full-featured SSL VPN which can accomodate a wide range +openvpn: of configurations, including remote access, site-to-site VPNs, WiFi +openvpn: security, and enterprise-scale remote access with load balancing, +openvpn: failover, and fine-grained access-controls. +openvpn: +openvpn: OpenVPN's home on the net is: http://openvpn.net +openvpn: +openvpn: +openvpn: diff --git a/source/n/php/channels/pear.php.net.reg b/source/n/php/channels/pear.php.net.reg new file mode 100644 index 000000000..f836b1a22 --- /dev/null +++ b/source/n/php/channels/pear.php.net.reg @@ -0,0 +1 @@ +a:5:{s:4:"name";s:12:"pear.php.net";s:14:"suggestedalias";s:4:"pear";s:7:"summary";s:40:"PHP Extension and Application Repository";s:7:"servers";a:1:{s:7:"primary";a:2:{s:6:"xmlrpc";a:1:{s:8:"function";a:10:{i:0;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:9:"logintest";}i:1;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:26:"package.listLatestReleases";}i:2;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"package.listAll";}i:3;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:12:"package.info";}i:4;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:22:"package.getDownloadURL";}i:5;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:22:"package.getDownloadURL";}i:6;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:7;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:8;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:14:"package.search";}i:9;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"channel.listAll";}}}s:4:"rest";a:1:{s:7:"baseurl";a:2:{i:0;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.0";}s:8:"_content";s:25:"http://pear.php.net/rest/";}i:1;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.1";}s:8:"_content";s:25:"http://pear.php.net/rest/";}}}}}s:13:"_lastmodified";s:31:"Sat, 04 Apr 2009 17:17:11 -0500";} \ No newline at end of file diff --git a/source/n/php/channels/pecl.php.net.reg b/source/n/php/channels/pecl.php.net.reg new file mode 100644 index 000000000..ea6eaa146 --- /dev/null +++ b/source/n/php/channels/pecl.php.net.reg @@ -0,0 +1 @@ +a:6:{s:4:"name";s:12:"pecl.php.net";s:14:"suggestedalias";s:4:"pecl";s:7:"summary";s:31:"PHP Extension Community Library";s:7:"servers";a:1:{s:7:"primary";a:2:{s:6:"xmlrpc";a:1:{s:8:"function";a:10:{i:0;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:9:"logintest";}i:1;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:26:"package.listLatestReleases";}i:2;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"package.listAll";}i:3;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:12:"package.info";}i:4;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:22:"package.getDownloadURL";}i:5;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:22:"package.getDownloadURL";}i:6;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:7;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.1";}s:8:"_content";s:25:"package.getDepDownloadURL";}i:8;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:14:"package.search";}i:9;a:2:{s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}s:8:"_content";s:15:"channel.listAll";}}}s:4:"rest";a:1:{s:7:"baseurl";a:2:{i:0;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.0";}s:8:"_content";s:25:"http://pecl.php.net/rest/";}i:1;a:2:{s:7:"attribs";a:1:{s:4:"type";s:7:"REST1.1";}s:8:"_content";s:25:"http://pecl.php.net/rest/";}}}}}s:15:"validatepackage";a:2:{s:8:"_content";s:19:"PEAR_Validator_PECL";s:7:"attribs";a:1:{s:7:"version";s:3:"1.0";}}s:13:"_lastmodified";s:31:"Sat, 04 Apr 2009 17:17:11 -0500";} \ No newline at end of file diff --git a/source/n/php/doinst.sh b/source/n/php/doinst.sh new file mode 100644 index 000000000..15f611b52 --- /dev/null +++ b/source/n/php/doinst.sh @@ -0,0 +1,8 @@ +if [ ! -r etc/httpd/mod_php.conf ]; then + cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf +elif [ "`cat etc/httpd/mod_php.conf 2> /dev/null`" = "" ]; then + cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf +fi +if [ ! -r etc/httpd/php.ini ]; then + cp -a etc/httpd/php.ini-recommended etc/httpd/php.ini +fi diff --git a/source/n/php/mod_php.conf.example b/source/n/php/mod_php.conf.example new file mode 100644 index 000000000..7a678b90c --- /dev/null +++ b/source/n/php/mod_php.conf.example @@ -0,0 +1,22 @@ +# +# mod_php - PHP Hypertext Preprocessor module +# + +# Load the PHP module: +LoadModule php5_module lib/httpd/modules/libphp5.so + +# Tell Apache to feed all *.php files through PHP. If you'd like to +# parse PHP embedded in files with different extensions, comment out +# this line and see the example below. +AddType application/x-httpd-php .php + +# Tell Apache to feed all *.php, *.html, and *.htm files through +# the PHP module. Add or subtract extensions here as desired. Please +# note that running pages through PHP for no reason can be both slow +# and insecure, so be sure to know what you're doing. It's a convenient +# shortcut, but probably isn't suitible for high-traffic sites if you +# write any of your pages in straight HTML. +#AddType application/x-httpd-php .php .html .htm + +# This will display PHP files in colored syntax form. Use with caution. +#AddType application/x-httpd-php-source .phps diff --git a/source/n/php/php.SlackBuild b/source/n/php/php.SlackBuild new file mode 100755 index 000000000..5f8e2d351 --- /dev/null +++ b/source/n/php/php.SlackBuild @@ -0,0 +1,303 @@ +#!/bin/sh + +# Build and package mod_php on Slackware. +# by: David Cantrell +# Modified for PHP 4-5 by volkerdi@slackware.com +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=5.2.10 +ALPINE=2.00 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-php/ +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +# we need to compile alpine to get c-client.a for IMAP support: +IMAPLIBDIR=/usr/local/lib${LIBDIRSUFFIX}/c-client +if [ -r $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a ]; then + echo "Using IMAP library:" + ls -l $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a + sleep 5 +else + ( cd $CWD/../alpine ; ./alpine.SlackBuild || exit 1 ) || exit 1 + ( cd $TMP/alpine-${ALPINE}/imap/c-client + strip -g c-client.a + mkdir -p $IMAPLIBDIR/lib${LIBDIRSUFFIX} + cp c-client.a $IMAPLIBDIR/lib${LIBDIRSUFFIX} + mkdir -p $IMAPLIBDIR/include + cp *.h $IMAPLIBDIR/include + ) +fi + +mkdir -p $PKG/etc/httpd +mkdir -p $PKG/etc/php +# A trick from DaMouse to enable building php into $PKG. +# We'll remove this later on. +cat /etc/httpd/original/httpd.conf > $PKG/etc/httpd/httpd.conf +if [ ! -e /etc/httpd/original/httpd.conf ]; then + echo "FATAL: no /etc/httpd/original/httpd.conf found." + exit 1 +fi + +cd $TMP +rm -rf php-$VERSION +tar xvf $CWD/php-$VERSION.tar.bz2 || exit 1 +cd php-$VERSION + +# Add missing(?) PEAR modules back: +if [ -d php-$VERSION/pear/packages ]; then + ( cd php-$VERSION/pear/packages + cp -a $CWD/pear/*.bz2 . 2> /dev/null + bzip2 -d *.bz2 2> /dev/null + ) +fi + +if [ "$ARCH" = "s390" ]; then + zcat $CWD/php.configure.s390.diff.gz | patch -p1 || exit +fi + +# Fixup perms/owners: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +find . -name "*.h" -exec chmod 644 {} \; + +# Sometimes they ship a few of these: +find . -name "*.orig" -exec rm {} \; + +# Patch ini files: +zcat $CWD/php.ini.diff.gz \ + | sed -e "s#usr/lib/php#usr/lib${LIBDIRSUFFIX}/php#" \ + | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/php.recommended.ini.diff.gz \ + | sed -e "s#usr/lib/php#usr/lib${LIBDIRSUFFIX}/php#" \ + | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Generic "kitchen sink" configure function, with as many things as possible (and +# maybe then some ;-) compiled as shared extensions: +php_configure() { +EXTENSION_DIR=/usr/lib${LIBDIRSUFFIX}/php/extensions \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + $* \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-libdir=lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --disable-safe-mode \ + --disable-magic-quotes \ + --enable-zend-multibyte \ + --enable-mbregex \ + --enable-tokenizer=shared \ + --with-config-file-scan-dir=/etc/php \ + --with-config-file-path=/etc/httpd \ + --enable-mod_charset \ + --with-layout=PHP \ + --enable-sigchild \ + --enable-xml \ + --with-libxml-dir=/usr \ + --enable-simplexml \ + --enable-spl \ + --enable-filter \ + --disable-debug \ + --with-openssl=shared \ + --with-pcre-regex=/usr \ + --with-zlib=shared,/usr \ + --enable-bcmath=shared \ + --with-bz2=shared,/usr \ + --enable-calendar=shared \ + --enable-ctype=shared \ + --with-curl=shared \ + --with-curlwrappers \ + --with-mcrypt=/usr \ + --enable-dba=shared \ + --with-gdbm=/usr \ + --with-db4=/usr \ + --enable-dbase=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --with-gd=shared \ + --with-jpeg-dir=/usr \ + --with-png-dir=/usr \ + --with-zlib-dir=/usr \ + --with-xpm-dir=/usr \ + --with-freetype-dir=/usr \ + --with-t1lib=/usr \ + --enable-gd-native-ttf \ + --enable-gd-jis-conv \ + --with-gettext=shared,/usr \ + --with-gmp=shared,/usr \ + --with-iconv=shared \ + --with-imap-ssl=/usr \ + --with-imap=$IMAPLIBDIR \ + --with-ldap=shared \ + --enable-mbstring=shared \ + --enable-hash \ + --with-mhash=shared,/usr \ + --with-mysql=shared,/usr \ + --with-mysqli=shared,/usr/bin/mysql_config \ + --enable-pdo=shared \ + --with-pdo-mysql=shared,/usr \ + --with-pdo-sqlite=shared \ + --with-pspell=shared,/usr \ + --with-mm=/usr \ + --enable-shmop=shared \ + --with-snmp=shared,/usr \ + --enable-soap=shared \ + --enable-sockets \ + --with-sqlite=shared \ + --enable-sqlite-utf8 \ + --with-regex=php \ + --enable-sysvmsg \ + --enable-sysvsem \ + --enable-sysvshm \ + --enable-wddx=shared \ + --with-xsl=shared,/usr \ + --enable-zip=shared \ + --with-tsrm-pthreads \ + --enable-shared=yes \ + --enable-static=no \ + --with-gnu-ld \ + --with-pic \ + --build=$ARCH-slackware-linux +} + +# I am told this option is worse than nothing. :-) +# --enable-safe-mode +# +# I would recommend *against* and will take no responbility for turning on +# "safe" mode. + +# Make the Apache2 module version of PHP: +php_configure \ + --with-apxs2=/usr/sbin/apxs +make $NUMJOBS || make || exit 1 +make install INSTALL_ROOT=$PKG || exit 1 + +# Make the CLI version of PHP: +make distclean +php_configure \ + --enable-force-cgi-redirect \ + --enable-pcntl \ + --enable-sigchild +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin +cat ./sapi/cli/php > $PKG/usr/bin/php +chmod 755 $PKG/usr/bin/php + +# Make the FastCGI interpreter: +make distclean +php_configure \ + --enable-fastcgi \ + --enable-pcntl \ + --enable-sigchild +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin +cat sapi/cgi/php-cgi > $PKG/usr/bin/php-cgi +chmod 755 $PKG/usr/bin/php-cgi + +# PHP (used to) install Pear with some strange permissions. +chmod 755 $PKG/usr/bin/pear + +# PHP sometimes puts junk in the root directory: +( cd $PKG + rm -rf .channels .depdb .depdblock .filemap .lock .registry +) + +# Fix a couple broken .reg files in php-5.2.10: +if ! grep -q Download $PKG/usr/lib${LIBDIRSUFFIX}/php/.channels/pear.php.net.reg ; then + cat $CWD/channels/pear.php.net.reg > $PKG/usr/lib${LIBDIRSUFFIX}/php/.channels/pear.php.net.reg +fi +if ! grep -q Download $PKG/usr/lib${LIBDIRSUFFIX}/php/.channels/pecl.php.net.reg ; then + cat $CWD/channels/pecl.php.net.reg > $PKG/usr/lib${LIBDIRSUFFIX}/php/.channels/pecl.php.net.reg +fi + +# Fix $PKG/usr/lib/php perms: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/php + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +) + +mkdir -p $PKG/usr/doc/php-$VERSION +cp -a \ + CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* TODO* \ + sapi/cgi/README.FastCGI \ + $PKG/usr/doc/php-$VERSION +chown -R root:root $PKG/usr/doc/php-$VERSION + +mkdir -p $PKG/etc/httpd +cp -a php.ini-dist php.ini-recommended $PKG/etc/httpd +cat $CWD/mod_php.conf.example | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" \ + > $PKG/etc/httpd/mod_php.conf.example +chmod 644 $PKG/etc/httpd/* +chown root:root $PKG/etc/httpd/* + +# This can go now. +rm -f $PKG/etc/httpd/httpd* + +# Session directory for PHP: +mkdir -p $PKG/var/lib/php +chmod 770 $PKG/var/lib/php +chown root:apache $PKG/var/lib/php + +# Strip ELF objects. +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +#if [ -d "$IMAPLIBDIR" ]; then +# ( cd $IMAPLIBDIR && rm -rf * ) +# rmdir $IMAPLIBDIR +#fi + +cd $PKG +/sbin/makepkg -l y -c n $TMP/php-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/php/php.ini.diff b/source/n/php/php.ini.diff new file mode 100644 index 000000000..fe01df22c --- /dev/null +++ b/source/n/php/php.ini.diff @@ -0,0 +1,114 @@ +--- ./php.ini-dist.orig 2007-05-27 13:04:10.000000000 -0500 ++++ ./php.ini-dist 2007-06-28 23:43:02.000000000 -0500 +@@ -473,7 +473,7 @@ + user_dir = + + ; Directory in which the loadable extensions (modules) reside. +-extension_dir = "./" ++extension_dir = "/usr/lib/php/extensions/" + + ; Whether or not to enable the dl() function. The dl() function does NOT work + ; properly in multithreaded servers, such as IIS or Zeus, and is automatically +@@ -585,58 +585,43 @@ + ; needs to go here. Specify the location of the extension with the + ; extension_dir directive above. + ++; These are the extensions that are available for use on this PHP build. ++; If you do NOT need any of these extensions, you should comment them out. ++; That will probably increase both your security and performance. ++ ++extension=bcmath.so ++extension=bz2.so ++extension=calendar.so ++extension=ctype.so ++extension=curl.so ++extension=dba.so ++extension=dbase.so ++extension=exif.so ++extension=ftp.so ++extension=gettext.so ++extension=gd.so ++extension=gmp.so ++extension=iconv.so ++extension=ldap.so ++extension=mbstring.so ++extension=mhash.so ++extension=mysql.so ++extension=mysqli.so ++extension=openssl.so ++extension=pdo.so ++extension=pdo_mysql.so ++extension=pdo_sqlite.so ++extension=pspell.so ++extension=shmop.so ++extension=snmp.so ++extension=soap.so ++extension=sqlite.so ++extension=tokenizer.so ++extension=wddx.so ++extension=xsl.so ++extension=zip.so ++extension=zlib.so + +-; Windows Extensions +-; Note that ODBC support is built in, so no dll is needed for it. +-; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) +-; extension folders as well as the separate PECL DLL download (PHP 5). +-; Be sure to appropriately set the extension_dir directive. +- +-;extension=php_bz2.dll +-;extension=php_curl.dll +-;extension=php_dba.dll +-;extension=php_dbase.dll +-;extension=php_exif.dll +-;extension=php_fdf.dll +-;extension=php_gd2.dll +-;extension=php_gettext.dll +-;extension=php_gmp.dll +-;extension=php_ifx.dll +-;extension=php_imap.dll +-;extension=php_interbase.dll +-;extension=php_ldap.dll +-;extension=php_mbstring.dll +-;extension=php_mcrypt.dll +-;extension=php_mhash.dll +-;extension=php_mime_magic.dll +-;extension=php_ming.dll +-;extension=php_msql.dll +-;extension=php_mssql.dll +-;extension=php_mysql.dll +-;extension=php_mysqli.dll +-;extension=php_oci8.dll +-;extension=php_openssl.dll +-;extension=php_pdo.dll +-;extension=php_pdo_firebird.dll +-;extension=php_pdo_mssql.dll +-;extension=php_pdo_mysql.dll +-;extension=php_pdo_oci.dll +-;extension=php_pdo_oci8.dll +-;extension=php_pdo_odbc.dll +-;extension=php_pdo_pgsql.dll +-;extension=php_pdo_sqlite.dll +-;extension=php_pgsql.dll +-;extension=php_pspell.dll +-;extension=php_shmop.dll +-;extension=php_snmp.dll +-;extension=php_soap.dll +-;extension=php_sockets.dll +-;extension=php_sqlite.dll +-;extension=php_sybase_ct.dll +-;extension=php_tidy.dll +-;extension=php_xmlrpc.dll +-;extension=php_xsl.dll +-;extension=php_zip.dll + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ; +@@ -979,6 +964,7 @@ + ; where MODE is the octal representation of the mode. Note that this + ; does not overwrite the process's umask. + ;session.save_path = "/tmp" ++session.save_path = "/var/lib/php" + + ; Whether to use cookies. + session.use_cookies = 1 diff --git a/source/n/php/php.recommended.ini.diff b/source/n/php/php.recommended.ini.diff new file mode 100644 index 000000000..80469447f --- /dev/null +++ b/source/n/php/php.recommended.ini.diff @@ -0,0 +1,114 @@ +--- ./php.ini-recommended.orig 2007-05-27 13:04:10.000000000 -0500 ++++ ./php.ini-recommended 2007-06-29 00:14:12.000000000 -0500 +@@ -521,7 +521,7 @@ + user_dir = + + ; Directory in which the loadable extensions (modules) reside. +-extension_dir = "./" ++extension_dir = "/usr/lib/php/extensions/" + + ; Whether or not to enable the dl() function. The dl() function does NOT work + ; properly in multithreaded servers, such as IIS or Zeus, and is automatically +@@ -633,58 +633,43 @@ + ; needs to go here. Specify the location of the extension with the + ; extension_dir directive above. + ++; These are the extensions that are available for use on this PHP build. ++; If you do NOT need any of these extensions, you should comment them out. ++; That will probably increase both your security and performance. ++ ++extension=bcmath.so ++extension=bz2.so ++extension=calendar.so ++extension=ctype.so ++extension=curl.so ++extension=dba.so ++extension=dbase.so ++extension=exif.so ++extension=ftp.so ++extension=gettext.so ++extension=gd.so ++extension=gmp.so ++extension=iconv.so ++extension=ldap.so ++extension=mbstring.so ++extension=mhash.so ++extension=mysql.so ++extension=mysqli.so ++extension=openssl.so ++extension=pdo.so ++extension=pdo_mysql.so ++extension=pdo_sqlite.so ++extension=pspell.so ++extension=shmop.so ++extension=snmp.so ++extension=soap.so ++extension=sqlite.so ++extension=tokenizer.so ++extension=wddx.so ++extension=xsl.so ++extension=zip.so ++extension=zlib.so + +-; Windows Extensions +-; Note that ODBC support is built in, so no dll is needed for it. +-; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) +-; extension folders as well as the separate PECL DLL download (PHP 5). +-; Be sure to appropriately set the extension_dir directive. +- +-;extension=php_bz2.dll +-;extension=php_curl.dll +-;extension=php_dba.dll +-;extension=php_dbase.dll +-;extension=php_exif.dll +-;extension=php_fdf.dll +-;extension=php_gd2.dll +-;extension=php_gettext.dll +-;extension=php_gmp.dll +-;extension=php_ifx.dll +-;extension=php_imap.dll +-;extension=php_interbase.dll +-;extension=php_ldap.dll +-;extension=php_mbstring.dll +-;extension=php_mcrypt.dll +-;extension=php_mhash.dll +-;extension=php_mime_magic.dll +-;extension=php_ming.dll +-;extension=php_msql.dll +-;extension=php_mssql.dll +-;extension=php_mysql.dll +-;extension=php_mysqli.dll +-;extension=php_oci8.dll +-;extension=php_openssl.dll +-;extension=php_pdo.dll +-;extension=php_pdo_firebird.dll +-;extension=php_pdo_mssql.dll +-;extension=php_pdo_mysql.dll +-;extension=php_pdo_oci.dll +-;extension=php_pdo_oci8.dll +-;extension=php_pdo_odbc.dll +-;extension=php_pdo_pgsql.dll +-;extension=php_pdo_sqlite.dll +-;extension=php_pgsql.dll +-;extension=php_pspell.dll +-;extension=php_shmop.dll +-;extension=php_snmp.dll +-;extension=php_soap.dll +-;extension=php_sockets.dll +-;extension=php_sqlite.dll +-;extension=php_sybase_ct.dll +-;extension=php_tidy.dll +-;extension=php_xmlrpc.dll +-;extension=php_xsl.dll +-;extension=php_zip.dll + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ; +@@ -1027,6 +1012,7 @@ + ; where MODE is the octal representation of the mode. Note that this + ; does not overwrite the process's umask. + ;session.save_path = "/tmp" ++session.save_path = "/var/lib/php" + + ; Whether to use cookies. + session.use_cookies = 1 diff --git a/source/n/php/slack-desc b/source/n/php/slack-desc new file mode 100644 index 000000000..fe14da6d6 --- /dev/null +++ b/source/n/php/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +php: php (HTML-embedded scripting language) +php: +php: PHP is an HTML-embedded scripting language. It shares syntax +php: characteristics with C, Java, and Perl. The primary objective behind +php: this language is to make a fast and easy-to-use scripting language +php: for dynamic web sites. +php: +php: More information can be found online at http://www.php.net/ +php: +php: +php: diff --git a/source/n/pidentd/doinst.sh b/source/n/pidentd/doinst.sh new file mode 100644 index 000000000..382131ed9 --- /dev/null +++ b/source/n/pidentd/doinst.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# Handle the incoming configuration files: +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/identd.conf.new diff --git a/source/n/pidentd/pidentd.SlackBuild b/source/n/pidentd/pidentd.SlackBuild new file mode 100755 index 000000000..f14fbe530 --- /dev/null +++ b/source/n/pidentd/pidentd.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.0.19 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pidentd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf pidentd-$VERSION +tar xvf $CWD/pidentd-$VERSION.tar.gz || exit 1 +cd pidentd-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/pidentd.conf.diff.gz | patch -p1 --backup --verbose || exit + +CFLAGS=-O2 \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-des-includes=/usr/include/openssl \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/sbin +cat src/identd > $PKG/usr/sbin/in.identd +cat src/ibench > $PKG/usr/sbin/ibench +cat src/idecrypt > $PKG/usr/sbin/idecrypt +cat src/ikeygen > $PKG/usr/sbin/ikeygen +chmod 755 $PKG/usr/sbin/* + +mkdir -p $PKG/etc +cat etc/identd.conf > $PKG/etc/identd.conf.new + +mkdir -p $PKG/usr/man/man8 +cat doc/identd.8 | gzip -9c > $PKG/usr/man/man8/identd.8.gz +echo ".so man8/identd.8" | gzip -9c > $PKG/usr/man/man8/in.identd.8.gz + +mkdir -p $PKG/usr/doc/pidentd-$VERSION +cp -a \ + BUGS ChangeLog FAQ INSTALL README Y2K doc/rfc* \ + $PKG/usr/doc/pidentd-$VERSION +chmod 644 $PKG/usr/doc/pidentd-$VERSION/* + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/pidentd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/pidentd/pidentd.conf.diff b/source/n/pidentd/pidentd.conf.diff new file mode 100644 index 000000000..0e94f48c5 --- /dev/null +++ b/source/n/pidentd/pidentd.conf.diff @@ -0,0 +1,68 @@ +--- ./etc/identd.conf.orig 1999-01-20 15:59:26.000000000 -0800 ++++ ./etc/identd.conf 2004-06-13 12:59:27.000000000 -0700 +@@ -1,4 +1,4 @@ +-# /usr/local/etc/identd.conf - an example configuration file ++# /etc/identd.conf - an example configuration file + + + #-- The syslog facility for error messages +@@ -18,24 +18,20 @@ + # server:backlog = 256 + + #-- Where to write the file containing our process id +-# server:pid-file = "/etc/identd.pid" ++server:pid-file = "/var/run/identd.pid" + + #-- Maximum number of concurrent requests allowed (0 = unlimited) + # server:max-requests = 0 + +- +- + #-- Enable some protocol extensions like "VERSION" or "QUIT" +-protocol:extensions = enabled ++# protocol:extensions = enabled + + #-- Allow multiple queries per connection. This slightly breaks RFC1413 +-protocol:multiquery = enabled ++# protocol:multiquery = enabled + + #-- Timeout in seconds since connection or last query. Zero = disable + # protocol:timeout = 120 + +- +- + #-- Maximum number of threads doing kernel lookups + # kernel:threads = 8 + +@@ -45,10 +41,8 @@ + #-- Maximum number of time to retry a kernel lookup in case of failure + # kernel:attempts = 5 + +- +- + #-- Disable username lookups (only return uid numbers) +-# result:uid-only = no ++result:uid-only = yes + + #-- Enable the ".noident" file + # result:noident = enabled +@@ -60,15 +54,14 @@ + # result:opsys = "UNIX" + + #-- Log all request replies to syslog (none == don't) +-# result:syslog-level = none +- ++# Valid choices are: none, debug, info, notice, warning, err, crit, emerg ++result:syslog-level = notice + + #-- Enable encryption (only available if linked with a DES library) + # result:encrypt = no + + #-- Path to the DES key file (only available if linked with a DES library) +-# encrypt:key-file = "/usr/local/etc/identd.key" +- ++# encrypt:key-file = "/etc/identd.key" + + #-- Include a machine local configuration file +-# include = /etc/identd.conf ++# include = /usr/local/etc/identd.conf diff --git a/source/n/pidentd/slack-desc b/source/n/pidentd/slack-desc new file mode 100644 index 000000000..3229f5e88 --- /dev/null +++ b/source/n/pidentd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pidentd: pidentd (TCP/IP IDENT protocol server) +pidentd: +pidentd: The identd daemon implements the IDENT protocol as specified in +pidentd: RFC1413. When your machine connects to a remote system, the remote +pidentd: machine may connect to your identd daemon to find out either the +pidentd: user name or other information about the process that initiated +pidentd: the connection. Some remote machines may choose not to allow your +pidentd: connections if you do not provide access to an identd daemon. +pidentd: +pidentd: The pidentd daemon was written by Peter Eriksson. +pidentd: diff --git a/source/n/pinentry/pinentry.SlackBuild b/source/n/pinentry/pinentry.SlackBuild new file mode 100755 index 000000000..3e0dd44de --- /dev/null +++ b/source/n/pinentry/pinentry.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2006 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SCRIPT IS PROVIDED BY THE AUTHOR ``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 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 SCRIPT, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PRGNAM=pinentry +VERSION=0.7.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ARCHQUADLET="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ARCHQUADLET="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ARCHQUADLET="" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" + ARCHQUADLET="-gnueabi" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Needs to be done manually: +# http://lists.gnupg.org/pipermail/gnupg-devel/2009-June/025197.html +for file in qt4/*.moc ; do + moc ${file/.moc/.h} > $file +done + +# Note that building the gtk1 interface is disabled +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --enable-pinentry-gtk=no \ + --enable-pinentry-curses \ + --enable-fallback-curses \ + --enable-pinentry-gtk2 \ + --enable-pinentry-qt4 \ + --build=$ARCH-slackware-linux$ARCHQUADLET \ + --host=$ARCH-slackware-linux$ARCHQUADLET || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Replace the qt3 version with a symlink to the qt4 one: +( cd $PKG/usr/bin + rm -f pinentry-qt + ln -sf pinentry-qt4 pinentry-qt +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/*.info + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README* THANKS TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/source/n/pinentry/slack-desc b/source/n/pinentry/slack-desc new file mode 100644 index 000000000..71c5e44e3 --- /dev/null +++ b/source/n/pinentry/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pinentry: pinentry (PIN Entry dialogs) +pinentry: +pinentry: This is a collection of simple PIN or passphrase entry dialogs which +pinentry: utilize the Assuan protocol as described by the aegypten project. +pinentry: +pinentry: See http://www.gnupg.org/aegypten/ for details. +pinentry: +pinentry: +pinentry: +pinentry: +pinentry: diff --git a/source/n/popa3d/doinst.sh b/source/n/popa3d/doinst.sh new file mode 100644 index 000000000..caadfd59d --- /dev/null +++ b/source/n/popa3d/doinst.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# If the pop user/group don't exist, add them: +if ! grep -q "^pop:" etc/passwd ; then + echo "pop:x:90:90:POP:/:" >> /etc/passwd +fi +if ! grep -q "^pop:" etc/group ; then + echo "pop::90:pop" >> etc/group +fi + diff --git a/source/n/popa3d/popa3d-1.0.2.tar.gz.sign b/source/n/popa3d/popa3d-1.0.2.tar.gz.sign new file mode 100644 index 000000000..44b2913bb --- /dev/null +++ b/source/n/popa3d/popa3d-1.0.2.tar.gz.sign @@ -0,0 +1,10 @@ +-----BEGIN PGP MESSAGE----- +Version: 2.6.3ia +Comment: http://www.openwall.com/signatures/ + +iQCVAwUARHJblHK5fbEpUCnxAQEjyAP9HEydFlz7lFGoHI4SqBLlH7XRNFgs/sKg +biNYMBlohgU2YHilrX1wNiActrLqvv+wr1en6KZVKHhG7QtLZo0MWQsypylEIxVT +UVANL0wybUOnx+XRuQKKpCnkinS9Pic1dHXLTaXx1NkeHAYlUM6YRvdWSRpvkNHR +eAHZO3LYaWI= +=IGmS +-----END PGP MESSAGE----- diff --git a/source/n/popa3d/popa3d.SlackBuild b/source/n/popa3d/popa3d.SlackBuild new file mode 100755 index 000000000..5d574df68 --- /dev/null +++ b/source/n/popa3d/popa3d.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.0.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-popa3d +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf popa3d-$VERSION +tar xvf $CWD/popa3d-$VERSION.tar.gz || exit 1 +cd popa3d-$VERSION || exit 1 +zcat $CWD/popa3d.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make $NUMJOBS || make || exit 1 + +# already stripped +mkdir -p $PKG/usr/sbin +cat popa3d > $PKG/usr/sbin/popa3d +chmod 755 $PKG/usr/sbin/popa3d + +mkdir -p $PKG/usr/man/man8 +cat popa3d.8 | gzip -9c > $PKG/usr/man/man8/popa3d.8.gz + +# Empty directory to chroot() into. Should already be installed by aaa_base, or +# openssh, or both: +#mkdir -p $PKG/var/empty + +# Docs: +mkdir -p $PKG/usr/doc/popa3d-$VERSION +cp -a \ + CHANGES CONTACT DESIGN INSTALL LICENSE VIRTUAL \ + $PKG/usr/doc/popa3d-$VERSION +chmod 644 $PKG/usr/doc/popa3d-$VERSION/* + +# Add install script -- this ensures pop user/group are there: +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +# Description: +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/popa3d-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/popa3d/popa3d.diff b/source/n/popa3d/popa3d.diff new file mode 100644 index 000000000..773f90856 --- /dev/null +++ b/source/n/popa3d/popa3d.diff @@ -0,0 +1,58 @@ +--- ./Makefile.orig 2006-03-05 04:36:20.000000000 -0600 ++++ ./Makefile 2006-03-12 16:20:44.000000000 -0600 +@@ -5,11 +5,11 @@ + INSTALL = install -c + CFLAGS = -Wall -O2 -fomit-frame-pointer + # You may use OpenSSL's MD5 routines instead of the ones supplied here +-#CFLAGS += -DHAVE_OPENSSL ++CFLAGS += -DHAVE_OPENSSL + LDFLAGS = -s + LIBS = + # Linux with glibc, FreeBSD, NetBSD +-#LIBS += -lcrypt ++LIBS += -lcrypt + # HP-UX trusted system + #LIBS += -lsec + # Solaris (POP_STANDALONE, POP_VIRTUAL) +@@ -21,10 +21,10 @@ + # libwrap may also want this + #LIBS += -lnsl + # OpenSSL (-DHAVE_OPENSSL) +-#LIBS += -lcrypto ++LIBS += -lcrypto + + DESTDIR = +-PREFIX = /usr/local ++PREFIX = /usr + SBINDIR = $(PREFIX)/sbin + MANDIR = $(PREFIX)/man + +--- ./params.h.orig 2006-03-05 06:44:52.000000000 -0600 ++++ ./params.h 2006-03-12 16:23:16.000000000 -0600 +@@ -13,7 +13,7 @@ + /* + * Are we going to be a standalone server or start via an inetd clone? + */ +-#define POP_STANDALONE 0 ++#define POP_STANDALONE 1 + + #if POP_STANDALONE + +@@ -103,7 +103,7 @@ + * A pseudo-user to run as before authentication. The user and its UID + * must not be used for any other purpose. + */ +-#define POP_USER POP_SERVER ++#define POP_USER "pop" + + /* + * An empty directory to chroot to before authentication. The directory +@@ -191,7 +191,7 @@ + * + * #undef this for qmail-style $HOME/Mailbox mailboxes. + */ +-#define MAIL_SPOOL_PATH "/var/mail" ++#define MAIL_SPOOL_PATH "/var/spool/mail" + + #ifndef MAIL_SPOOL_PATH + /* diff --git a/source/n/popa3d/slack-desc b/source/n/popa3d/slack-desc new file mode 100644 index 000000000..6a0679164 --- /dev/null +++ b/source/n/popa3d/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +popa3d: popa3d (a POP3 daemon) +popa3d: +popa3d: popa3d is a Post Office Protocol version 3 (POP3) server. A POP3 +popa3d: server operates on local mailboxes on behalf of its remote users. +popa3d: Users can connect at any time to check their mailbox and fetch the +popa3d: mail that has accumulated. The design goals of this POP3 server are +popa3d: security, reliability, RFC compliance (slightly relaxed to work with +popa3d: real-world POP3 clients), and high performance. +popa3d: +popa3d: The popa3d daemon was written by Solar Designer. +popa3d: diff --git a/source/n/portmap/doinst.sh b/source/n/portmap/doinst.sh new file mode 100644 index 000000000..9307abfdd --- /dev/null +++ b/source/n/portmap/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.rpc.new diff --git a/source/n/portmap/portmap.SlackBuild b/source/n/portmap/portmap.SlackBuild new file mode 100755 index 000000000..3699bd9cf --- /dev/null +++ b/source/n/portmap/portmap.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-6.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-portmap + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf portmap_$VERSION +tar xvf $CWD/portmap-$VERSION.tar.bz2 || exit 1 +cd portmap_$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/portmap.lwrap.needs.lnsl.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 + +mkdir -p $PKG/usr/doc/portmap-$VERSION +cp -a \ + BLURB* CHANGES README* \ + $PKG/usr/doc/portmap-$VERSION +chmod 644 $PKG/usr/doc/portmap-$VERSION/* + +make || exit 1 + +strip portmap pmap_dump pmap_set +mkdir -p $PKG/sbin +cat portmap > $PKG/sbin/rpc.portmap +chmod 755 $PKG/sbin/rpc.portmap +mkdir -p $PKG/usr/sbin +cat pmap_dump > $PKG/usr/sbin/pmap_dump +cat pmap_set > $PKG/usr/sbin/pmap_set +chmod 755 $PKG/usr/sbin/* + +mkdir -p $PKG/usr/man/man8 +for file in *.8 ; do + cat ${file} | gzip -9c > $PKG/usr/man/man8/${file}.gz +done +( cd $PKG/usr/man/man8 ; ln -sf portmap.8.gz rpc.portmap.8.gz ) + +# Now let's add a recent version of /etc/rpc for good measure: +if [ -r /etc/rpc ]; then + mkdir -p $PKG/etc + cp -a /etc/rpc $PKG/etc/rpc +else + echo "WARNING: no /etc/rpc on this system, can't include!" + echo -n "hit enter..." + read errorfodder + echo +fi + +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.rpc.gz > $PKG/etc/rc.d/rc.rpc.new +# Off by default. +chmod 644 $PKG/etc/rc.d/rc.rpc.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/portmap-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/portmap/portmap.lwrap.needs.lnsl.diff b/source/n/portmap/portmap.lwrap.needs.lnsl.diff new file mode 100644 index 000000000..277c31d89 --- /dev/null +++ b/source/n/portmap/portmap.lwrap.needs.lnsl.diff @@ -0,0 +1,11 @@ +--- ./Makefile.orig 2007-05-10 22:02:10.000000000 -0500 ++++ ./Makefile 2007-05-17 17:44:18.000000000 -0500 +@@ -20,7 +20,7 @@ + + ifeq ($(NO_TCP_WRAPPER),) + CPPFLAGS += -DHOSTS_ACCESS +-WRAP_LIB = -lwrap ++WRAP_LIB = -lwrap -lnsl + ifdef USE_DNS + CPPFLAGS += -DENABLE_DNS + MAN_SED += -e 's/USE_DNS/yes/' diff --git a/source/n/portmap/rc.rpc b/source/n/portmap/rc.rpc new file mode 100644 index 000000000..43492329b --- /dev/null +++ b/source/n/portmap/rc.rpc @@ -0,0 +1,60 @@ +#!/bin/sh +# rc.rpc: start/stop/restart RPC daemons needed to use NFS. +# +# You must run these daemons in order to mount NFS partitions +# (unless you use the mount option '-o nolock', which can +# corrupt files and is not generally recommended unless you +# are mounting the partition(s) as read-only). +# +# To run an NFS server, starting these is mandatory. +# + +rpc_start() { + if [ -x /sbin/rpc.portmap -a -x /sbin/rpc.statd ]; then + if ! ps axc | grep -q rpc.portmap ; then + echo "Starting RPC portmapper: /sbin/rpc.portmap" + /sbin/rpc.portmap + fi + if ! ps axc | grep -q rpc.statd ; then + echo "Starting RPC NSM (Network Status Monitor): /sbin/rpc.statd" + /sbin/rpc.statd + fi + else + echo "WARNING: Cannot start RPC daemons needed for NFS. One or more of" + echo " these required daemons is not executable or is not present" + echo " on your system:" + echo + echo " /sbin/rpc.portmap or /sbin/rpc.statd" + echo + fi +} + +rpc_stop() { + killall rpc.statd 2> /dev/null + sleep 1 + killall rpc.portmap 2> /dev/null + sleep 1 + killall -9 rpc.statd 2> /dev/null # make sure :) + sleep 1 + killall -9 rpc.portmap 2> /dev/null # make sure :) + sleep 1 +} + +rpc_restart() { + rpc_stop + rpc_start +} + +case "$1" in +'start') + rpc_start + ;; +'stop') + rpc_stop + ;; +'restart') + rpc_restart + ;; +*) + echo "usage $0 start|stop|restart" +esac diff --git a/source/n/portmap/slack-desc b/source/n/portmap/slack-desc new file mode 100644 index 000000000..bc5138497 --- /dev/null +++ b/source/n/portmap/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +portmap: portmap (a daemon to manage RPC connections) +portmap: +portmap: The portmapper (/sbin/rpc.portmap) is a network daemon used to manage +portmap: connections to RPC services. Daemons that offer RPC services (such +portmap: as the daemons for NFS) tell the portmapper on what port they listen. +portmap: Unlike the services registered with the inetd, RPC network port +portmap: numbers may change each time the system is booted. +portmap: +portmap: The portmapper is required to use NFS or other RPC services. +portmap: +portmap: diff --git a/source/n/ppp/doinst.sh b/source/n/ppp/doinst.sh new file mode 100644 index 000000000..54facc41c --- /dev/null +++ b/source/n/ppp/doinst.sh @@ -0,0 +1,21 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ppp/chap-secrets.new +config etc/ppp/options.new +config etc/ppp/pap-secrets.new + +config etc/radiusclient/issue.new +config etc/radiusclient/radiusclient.conf.new +config etc/radiusclient/realms.new +config etc/radiusclient/servers.new + diff --git a/source/n/ppp/options.new b/source/n/ppp/options.new new file mode 100644 index 000000000..2a0286576 --- /dev/null +++ b/source/n/ppp/options.new @@ -0,0 +1,276 @@ +# /etc/ppp/options +# +# $Id: options,v 1.4 1996/05/01 18:57:04 alvar Exp $ +# +# Originally created by Jim Knoble +# Modified for Debian by alvar Bray +# Modified for PPP Server setup by Christoph Lameter +# Modified for Slackware by Pat Volkerding +# +# Use the command egrep -v '#|^ *$' /etc/ppp/options to quickly see what +# options are active in this file. + +# Specify which DNS Servers the incoming Win95 or WinNT Connection should use +# Two Servers can be remotely configured +# dns-addr 192.168.1.1 +# dns-addr 192.168.1.2 + +# Specify which WINS Servers the incoming connection Win95 or WinNT should use +# wins-addr 192.168.1.50 +# wins-addr 192.168.1.51 + +# Run the executable or shell command specified after pppd has +# terminated the link. This script could, for example, issue commands +# to the modem to cause it to hang up if hardware modem control signals +# were not available. +#disconnect "chat -- \d+++\d\c OK ath0 OK" + +# async character map -- 32-bit hex; each bit is a character +# that needs to be escaped for pppd to receive it. 0x00000001 +# represents '\x01', and 0x80000000 represents '\x1f'. +asyncmap 0 + +# Require the peer to authenticate itself before allowing network +# packets to be sent or received. +# For a PPP Server with script based logins not using PAP or CHAP +# you need to disable this setting. +#auth + +# Do not require the other end of the connection to authenticate itself. +# This option is dangerous if pppd is setuid. +# If you also have ethernet and are having problems getting PPP to connect +# over a modem, try this option. +#noauth + +# Use hardware flow control (i.e. RTS/CTS) to control the flow of data +# on the serial port. +crtscts + +# Use software flow control (i.e. XON/XOFF) to control the flow of data +# on the serial port. +#xonxoff + +# Specifies that certain characters should be escaped on transmission +# (regardless of whether the peer requests them to be escaped with its +# async control character map). The characters to be escaped are +# specified as a list of hex numbers separated by commas. Note that +# almost any character can be specified for the escape option, unlike +# the asyncmap option which only allows control characters to be +# specified. The characters which may not be escaped are those with hex +# values 0x20 - 0x3f or 0x5e. +#escape 11,13,ff + +# Don't use the modem control lines. +#local + +# Specifies that pppd should use a UUCP-style lock on the serial device +# to ensure exclusive access to the device. +lock + +# Use the modem control lines. On Ultrix, this option implies hardware +# flow control, as for the crtscts option. (This option is not fully +# implemented.) +modem + +# Set the MRU [Maximum Receive Unit] value to for negotiation. pppd +# will ask the peer to send packets of no more than bytes. The +# minimum MRU value is 128. The default MRU value is 1500. A value of +# 296 is recommended for slow links (40 bytes for TCP/IP header + 256 +# bytes of data). +#mru 542 + +# Set the interface netmask to , a 32 bit netmask in "decimal dot" +# notation (e.g. 255.255.255.0). +#netmask 255.255.255.0 + +# Disables the default behaviour when no local IP address is specified, +# which is to determine (if possible) the local IP address from the +# hostname. With this option, the peer will have to supply the local IP +# address during IPCP negotiation (unless it specified explicitly on the +# command line or in an options file). +#noipdefault + +# Enables the "passive" option in the LCP. With this option, pppd will +# attempt to initiate a connection; if no reply is received from the +# peer, pppd will then just wait passively for a valid LCP packet from +# the peer (instead of exiting, as it does without this option). +#passive + +# With this option, pppd will not transmit LCP packets to initiate a +# connection until a valid LCP packet is received from the peer (as for +# the "passive" option with old versions of pppd). +#silent + +# Don't request or allow negotiation of any options for LCP and IPCP +# (use default values). +#-all + +# Disable Address/Control compression negotiation (use default, i.e. +# address/control field disabled). +#-ac + +# Disable asyncmap negotiation (use the default asyncmap, i.e. escape +# all control characters). +#-am + +# Don't fork to become a background process (otherwise pppd will do so +# if a serial device is specified). +#-detach + +# Disable IP address negotiation (with this option, the remote IP +# address must be specified with an option on the command line or in an +# options file). +#-ip + +# Disable magic number negotiation. With this option, pppd cannot +# detect a looped-back line. +#-mn + +# Disable MRU [Maximum Receive Unit] negotiation (use default, i.e. +# 1500). +#-mru + +# Disable protocol field compression negotiation (use default, i.e. +# protocol field compression disabled). +#-pc + +# Require the peer to authenticate itself using PAP. +#+pap + +# Don't agree to authenticate using PAP. +#-pap + +# Require the peer to authenticate itself using CHAP [Cryptographic +# Handshake Authentication Protocol] authentication. +#+chap + +# Don't agree to authenticate using CHAP. +#-chap + +# Disable negotiation of Van Jacobson style IP header compression (use +# default, i.e. no compression). +#-vj + +# Increase debugging level (same as -d). If this option is given, pppd +# will log the contents of all control packets sent or received in a +# readable form. The packets are logged through syslog with facility +# daemon and level debug. This information can be directed to a file by +# setting up /etc/syslog.conf appropriately (see syslog.conf(5)). (If +# pppd is compiled with extra debugging enabled, it will log messages +# using facility local2 instead of daemon). +#debug + +# Append the domain name to the local host name for authentication +# purposes. For example, if gethostname() returns the name porsche, +# but the fully qualified domain name is porsche.Quotron.COM, you would +# use the domain option to set the domain name to Quotron.COM. +#domain + +# Enable debugging code in the kernel-level PPP driver. The argument n +# is a number which is the sum of the following values: 1 to enable +# general debug messages, 2 to request that the contents of received +# packets be printed, and 4 to request that the contents of transmitted +# packets be printed. +#kdebug n + +# Set the MTU [Maximum Transmit Unit] value to . Unless the peer +# requests a smaller value via MRU negotiation, pppd will request that +# the kernel networking code send data packets of no more than n bytes +# through the PPP network interface. +#mtu + +# Enforce the use of the hostname as the name of the local system for +# authentication purposes (overrides the name option). +#usehostname + +# Set the assumed name of the remote system for authentication purposes +# to . +#remotename + +# Add an entry to this system's ARP [Address Resolution Protocol] +# table with the IP address of the peer and the Ethernet address of this +# system. +proxyarp + +# Use the system password database for authenticating the peer using +# PAP. Note: mgetty already provides this option. If this is specified +# then dialin from users using a script under Linux to fire up ppp wont work. +# login + +# If this option is given, pppd will send an LCP echo-request frame to +# the peer every n seconds. Under Linux, the echo-request is sent when +# no packets have been received from the peer for n seconds. Normally +# the peer should respond to the echo-request by sending an echo-reply. +# This option can be used with the lcp-echo-failure option to detect +# that the peer is no longer connected. +lcp-echo-interval 30 + +# If this option is given, pppd will presume the peer to be dead if n +# LCP echo-requests are sent without receiving a valid LCP echo-reply. +# If this happens, pppd will terminate the connection. Use of this +# option requires a non-zero value for the lcp-echo-interval parameter. +# This option can be used to enable pppd to terminate after the physical +# connection has been broken (e.g., the modem has hung up) in +# situations where no hardware modem control lines are available. +lcp-echo-failure 4 + +# Set the LCP restart interval (retransmission timeout) to seconds +# (default 3). +#lcp-restart + +# Set the maximum number of LCP terminate-request transmissions to +# (default 3). +#lcp-max-terminate + +# Set the maximum number of LCP configure-request transmissions to +# (default 10). +#lcp-max-configure + +# Set the maximum number of LCP configure-NAKs returned before starting +# to send configure-Rejects instead to (default 10). +#lcp-max-failure + +# Set the IPCP restart interval (retransmission timeout) to +# seconds (default 3). +#ipcp-restart + +# Set the maximum number of IPCP terminate-request transmissions to +# (default 3). +#ipcp-max-terminate + +# Set the maximum number of IPCP configure-request transmissions to +# (default 10). +#ipcp-max-configure + +# Set the maximum number of IPCP configure-NAKs returned before starting +# to send configure-Rejects instead to (default 10). +#ipcp-max-failure + +# Set the PAP restart interval (retransmission timeout) to seconds +# (default 3). +#pap-restart + +# Set the maximum number of PAP authenticate-request transmissions to +# (default 10). +#pap-max-authreq + +# Set the CHAP restart interval (retransmission timeout for +# challenges) to seconds (default 3). +#chap-restart + +# Set the maximum number of CHAP challenge transmissions to +# (default 10). +#chap-max-challenge + +# If this option is given, pppd will rechallenge the peer every +# seconds. +#chap-interval + +# With this option, pppd will accept the peer's idea of our local IP +# address, even if the local IP address was specified in an option. +#ipcp-accept-local + +# With this option, pppd will accept the peer's idea of its (remote) IP +# address, even if the remote IP address was specified in an option. +#ipcp-accept-remote + diff --git a/source/n/ppp/ppp.SlackBuild b/source/n/ppp/ppp.SlackBuild new file mode 100755 index 000000000..227a9beb0 --- /dev/null +++ b/source/n/ppp/ppp.SlackBuild @@ -0,0 +1,159 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.4.4 +RADVER=0.3.2 +PPPVER=1.98 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ppp + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+============+" +echo "| ppp-$VERSION |" +echo "+============+" +cd $TMP +rm -rf ppp-$VERSION +tar xvf $CWD/ppp-$VERSION.tar.bz2 || exit 1 +cd ppp-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/ppp.slack.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit +sed -i -e "s#lib/pppd#lib${LIBDIRSUFFIX}/pppd#g" $(grep -lr 'lib/pppd' *) + +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG/usr + +mv $PKG/usr/share/man $PKG/usr +rmdir $PKG/usr/share + +# Install PPP config files: +mkdir -p $PKG/etc/ppp +cp -a etc.ppp/* $PKG/etc/ppp +chmod 600 $PKG/etc/ppp/*secrets +( cd $PKG/etc/ppp + mv chap-secrets chap-secrets.new + mv options options.new + mv pap-secrets pap-secrets.new +) +zcat $CWD/options.new.gz > $PKG/etc/ppp/options.new + +# Fix what seems like an insecure default setting. +# Feel free to "chmod 4750 pppoatm.so rp-pppoe.so" at your own risk. +# Since they are only runnable by group root, the risk really isn't much... +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/pppd/*/*.so + +mkdir -p $PKG/usr/doc/ppp-$VERSION +cp -a \ + FAQ PLUGINS README* SETUP scripts \ + $PKG/usr/doc/ppp-$VERSION + +echo "+====================+" +echo "| radiusclient-$RADVER |" +echo "+====================+" +cd $TMP +rm -rf radiusclient-$RADVER +tar xf $CWD/radiusclient-$RADVER.tar.bz2 || exit 1 +cd radiusclient-$RADVER || exit 1 +chown -R root:root . +cp /usr/share/libtool/config.{guess,sub} . +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +zcat $CWD/radius.msdict.gz > $PKG/etc/radiusclient/dictionary.microsoft +zcat $CWD/realms.gz > $PKG/etc/radiusclient/realms +zcat $CWD/servers.gz > $PKG/etc/radiusclient/servers +( cd $PKG/etc/radiusclient + chmod 600 realms servers + mv issue issue.new + mv radiusclient.conf radiusclient.conf.new + mv realms realms.new + mv servers servers.new +) +mkdir -p $PKG/usr/doc/radiusclient-$RADVER +cp -a \ + BUGS CHANGES COPYRIGHT README README.radexample doc/instop.html \ + $PKG/usr/doc/radiusclient-$RADVER +chmod 644 $PKG/usr/doc/radiusclient-$RADVER/* + +echo "+===============+" +echo "| pppsetup-$PPPVER |" +echo "+===============+" +cd $TMP +rm -rf pppsetup-$PPPVER +tar xvf $CWD/pppsetup-$PPPVER.tar.gz || exit 1 +cd pppsetup-$PPPVER || exit 1 +chown -R root:root . +zcat $CWD/pppsetup-1.98.slack.diff.gz | patch -p1 --backup || exit +zcat $CWD/pppsetup-1.98.pppoff.diff.gz | patch -p0 --backup || exit +zcat $CWD/pppsetup-1.98.moredevs.diff.gz | patch -p1 --backup || exit +zcat $CWD/pppsetup-1.98.backupfiles.diff.gz | patch -p1 --backup || exit +chmod 755 ppp-off pppsetup +cp -a ppp-off pppsetup $PKG/usr/sbin +mkdir -p $PKG/usr/doc/pppsetup +cp -a \ + README.pppsetup ppp-compile.txt pppsetup-$PPPVER.README pppsetup-$PPPVER.lsm \ + $PKG/usr/doc/pppsetup + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . -name "*.a" | xargs file | grep "ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null +) + +chmod 755 $PKG/usr/sbin/* + +gzip -9 $PKG/usr/man/man?/*.? +chmod 644 $PKG/usr/man/man?/* + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ppp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ppp/ppp.slack.diff b/source/n/ppp/ppp.slack.diff new file mode 100644 index 000000000..dafd0d3e7 --- /dev/null +++ b/source/n/ppp/ppp.slack.diff @@ -0,0 +1,28 @@ +diff -r -u ppp-2.4.2.orig/pppd/Makefile.linux ppp-2.4.2/pppd/Makefile.linux +--- ppp-2.4.2.orig/pppd/Makefile.linux 2003-11-27 13:55:19.000000000 -0800 ++++ ppp-2.4.2/pppd/Makefile.linux 2004-02-22 21:36:11.000000000 -0800 +@@ -31,7 +31,7 @@ + + # CC = gcc + # +-COPTS = -O2 -pipe -Wall -g ++COPTS = -O2 -pipe -Wall + LIBS = + + # Uncomment the next 2 lines to include support for Microsoft's +@@ -61,13 +61,13 @@ + + HAS_SHADOW=y + #USE_PAM=y +-#HAVE_INET6=y ++HAVE_INET6=y + + # Enable plugins + PLUGIN=y + + # Enable Microsoft proprietary Callback Control Protocol +-#CBCP=y ++CBCP=y + + # Enable EAP SRP-SHA1 authentication (requires libsrp) + #USE_SRP=y diff --git a/source/n/ppp/pppsetup-1.98.backupfiles.diff b/source/n/ppp/pppsetup-1.98.backupfiles.diff new file mode 100644 index 000000000..6b3647793 --- /dev/null +++ b/source/n/ppp/pppsetup-1.98.backupfiles.diff @@ -0,0 +1,26 @@ +--- ./pppsetup.orig Sun May 19 19:01:29 2002 ++++ ./pppsetup Sun May 19 19:06:07 2002 +@@ -861,10 +861,12 @@ + echo "multi on" >> /etc/host.conf + fi + +-if [ ! -z $DOMAINNAME ]; then ++if [ ! -z $DOMAINNAME ]; then ++# backup file ++cp -a /etc/resolv.conf /etc/resolv.conf.$$ 2> /dev/null + echo "search $DOMAINNAME" > /etc/resolv.conf + else +-rm -f /etc/resolv.conf 2>/dev/null ++rm -f /etc/resolv.conf 2>/dev/null + DOMAINNAME="unknown.com" + fi + +@@ -875,6 +877,8 @@ + fi + + if [ ! -s /etc/hosts ]; then ++# backup file ++cp -a /etc/hosts /etc/hosts.bak.$$ 2> /dev/null + echo "127.0.0.1 localhost" > /etc/hosts + if [ "$DOMAINNAME" = "unknown.com" ]; then + echo "0.0.0.0 `hostname 2>/dev/null`.localnet `hostname 2>/dev/null`" >> /etc/hosts diff --git a/source/n/ppp/pppsetup-1.98.moredevs.diff b/source/n/ppp/pppsetup-1.98.moredevs.diff new file mode 100644 index 000000000..6a11a3b54 --- /dev/null +++ b/source/n/ppp/pppsetup-1.98.moredevs.diff @@ -0,0 +1,105 @@ +--- ./pppsetup.orig Sun May 19 18:41:04 2002 ++++ ./pppsetup Sun May 19 18:52:49 2002 +@@ -1,15 +1,10 @@ + #!/bin/bash +-############################################################################### +-# + # PPPSETUP -- Script to set up pppd + # History: + # 7/21/95 RSL Script created (v1.0) + # 9/15/96 RSL Added code to get the ISP's domainname (v1.1) + # 9/19/96 RSL Revamped interface to use the 'dialog' + # program. (v1.2) +-############################################################################### +- +-############################################################################### + # 2/22/98 KR Added pap, chap, ms-chap, callback, & + # modem init string options. (v1.98) + # Creates /etc/ppp/options, & pap, chap, +@@ -17,33 +12,21 @@ + # More guidance. + # Monitor connection with tail & syslogd. + # Demand dialing setup with ppp-2.3.0 or later. +-############################################################################### +- +-############################################################################### + # 4/4/98 PJV Fixed massive /tmp-related security problems + # Switched to a default init string that's more + # likely to work + # Increased TIMEOUTs + # fixed bad flags given to chat -- caused dialout + # to fail +-############################################################################### +- +-############################################################################### + # 2/6/1999 PJV Changed all occurances of /dev/cua* to /dev/ttyS* +-############################################################################### +- +-############################################################################### + # 5/3/1999 PJV Commented 'debug' in /etc/ppp/options + # Add commented 'noauth' in /etc/ppp/options so + # people who want to use ppp but already have a + # default route have an easier time figuring out + # what to do. :) +-############################################################################### +- +-############################################################################### + # 6/18/2000 PJV Added code to check for "ppp-stop" and "ppp-on" + # symlinks, and make them if they don't exist. +-############################################################################### ++# 5/19/2002 PJV Added support for more devices. + + TMP=/var/log/setup/tmp + +@@ -137,25 +120,40 @@ + done + + echo "Where is your modem /dev/ttyS?" > $TMP/txtTEMP$$ +-dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 11 50 4 \ ++dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 17 60 10 \ ++modem "= use whatever /dev/modem is linked to" \ + ttyS0 "= (COM1: under DOS)" \ + ttyS1 "= (COM2: under DOS)" \ + ttyS2 "= (COM3: under DOS)" \ + ttyS3 "= (COM4: under DOS)" \ ++ttyS4 "= PCI modem" \ ++ttyS5 "= PCI modem" \ ++ttyS6 "= PCI modem" \ ++ttyS7 "= PCI modem" \ ++ttyS8 "= PCI modem" \ ++ttyS9 "= PCI modem" \ ++ttyS10 "= PCI modem" \ ++ttyS11 "= PCI modem" \ ++ttyS12 "= PCI modem" \ ++ttyS13 "= PCI modem" \ ++ttyS14 "= PCI modem" \ ++ttyS15 "= PCI modem" \ + 2> $TMP/rspTEMP$$ + + MODEM="`cat $TMP/rspTEMP$$`" + +-if [ -z $MODEM ]; then +-clear 2>/dev/null || echo +-rm -f $TMP/*TEMP* +-echo "PPP configuration cancelled." +-exit +-elif [ ! -c "/dev/$MODEM" ]; then +-/dev/MAKEDEV $MODEM >/dev/null 2>&1 || MODERROR="YES" +-else +-rm -f /dev/modem 2>/dev/null +-ln -sf /dev/$MODEM /dev/modem 2>/dev/null ++if [ ! "$MODEM" = "modem" ]; then ++ if [ -z $MODEM ]; then ++ clear 2>/dev/null || echo ++ rm -f $TMP/*TEMP* ++ echo "PPP configuration cancelled." ++ exit ++ elif [ ! -c "/dev/$MODEM" ]; then ++ /dev/MAKEDEV $MODEM >/dev/null 2>&1 || MODERROR="YES" ++ else ++ rm -f /dev/modem 2>/dev/null ++ ln -sf /dev/$MODEM /dev/modem 2>/dev/null ++ fi + fi + + echo "What baud rate is your modem?" > $TMP/txtTEMP$$ diff --git a/source/n/ppp/pppsetup-1.98.pppoff.diff b/source/n/ppp/pppsetup-1.98.pppoff.diff new file mode 100644 index 000000000..66b51ba7e --- /dev/null +++ b/source/n/ppp/pppsetup-1.98.pppoff.diff @@ -0,0 +1,19 @@ +--- ppp-off.orig Fri Oct 20 17:43:50 2000 ++++ ppp-off Fri Oct 20 17:46:32 2000 +@@ -21,14 +21,8 @@ + # This just checks if demand dialing is running, if so it + # says Demand Dialing Stoped. + +-ps x 2>/dev/null > /tmp/grep.tmp +- +-if grep 2>/dev/null "options.demand" /tmp/grep.tmp >/dev/null +-then +-rm -f /tmp/grep.tmp +-D="echo Demand Dialing Stoped." +-else +-rm -f /tmp/grep.tmp ++if ps x | fgrep "options.demand" 1> /dev/null 2> /dev/null ; then ++ D="echo Demand Dialing Stoped." + fi + + # diff --git a/source/n/ppp/pppsetup-1.98.slack.diff b/source/n/ppp/pppsetup-1.98.slack.diff new file mode 100644 index 000000000..f081699c8 --- /dev/null +++ b/source/n/ppp/pppsetup-1.98.slack.diff @@ -0,0 +1,1709 @@ +--- ./pppsetup.orig Sun Feb 22 12:33:32 1998 ++++ ./pppsetup Sun Jun 18 14:01:10 2000 +@@ -19,6 +19,34 @@ + # Demand dialing setup with ppp-2.3.0 or later. + ############################################################################### + ++############################################################################### ++# 4/4/98 PJV Fixed massive /tmp-related security problems ++# Switched to a default init string that's more ++# likely to work ++# Increased TIMEOUTs ++# fixed bad flags given to chat -- caused dialout ++# to fail ++############################################################################### ++ ++############################################################################### ++# 2/6/1999 PJV Changed all occurances of /dev/cua* to /dev/ttyS* ++############################################################################### ++ ++############################################################################### ++# 5/3/1999 PJV Commented 'debug' in /etc/ppp/options ++# Add commented 'noauth' in /etc/ppp/options so ++# people who want to use ppp but already have a ++# default route have an easier time figuring out ++# what to do. :) ++############################################################################### ++ ++############################################################################### ++# 6/18/2000 PJV Added code to check for "ppp-stop" and "ppp-on" ++# symlinks, and make them if they don't exist. ++############################################################################### ++ ++TMP=/var/log/setup/tmp ++ + if [ ! "$UID" = "0" ]; then + echo + echo "NOTICE: * $LOGNAME * You need to be 'root' to run this script." +@@ -43,81 +71,84 @@ + exit 1 + fi + +-if [ ! -d /tmp ]; then +-mkdir /tmp +-chmod 1777 /tmp +-fi +- + if [ -s /usr/lib/setup/hdsetup ]; then +-SYS="on SLACKWARE ..." ++SYS="on SLACKWARE." + fi + + VERSION="1.98" + + stty erase ^? 2>/dev/null + +-echo "PPPSETUP $VERSION $SYS" > /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "Written by Robert S. Liesenfeld " >> /tmp/txtTEMP01 +-echo "Changes for 1.98 by Kent Robotti " >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "You should get these 'DOCS' if you don't already have them." >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo 'ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO "PPP-HOWTO"' >> /tmp/txtTEMP01 +-echo 'ftp://sunsite.unc.edu/pub/Linux/docs/faqs/PPP-FAQ "PPP-FAQ"' >> /tmp/txtTEMP01 +-echo >> /tmp/txtTEMP01 +-echo "Press [Enter] to continue with pppsetup..." >> /tmp/txtTEMP01 ++if [ ! -r /usr/sbin/ppp-stop ]; then ++ ( cd /usr/sbin ; ln -sf ppp-off ppp-stop ) ++fi ++if [ ! -r /usr/sbin/ppp-on ]; then ++ ( cd /usr/sbin ; ln -sf ppp-go ppp-on ) ++fi + +-dialog --backtitle "PPPSETUP $VERSION ..." --textbox "/tmp/txtTEMP01" 15 70 ++echo "PPPSETUP $VERSION $SYS" > $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "Written by Robert S. Liesenfeld " >> $TMP/txtTEMP01 ++echo "Changes for 1.98 by Kent Robotti " >> $TMP/txtTEMP01 ++echo "Patched for Slackware by Patrick Volkerding " >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "You should get these docs if you don't already have them:" >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "ftp://metalab.unc.edu/pub/Linux/docs/howto/PPP-HOWTO" >> $TMP/txtTEMP01 ++echo "ftp://metalab.unc.edu/pub/Linux/docs/faqs/PPP-FAQ" >> $TMP/txtTEMP01 ++echo >> $TMP/txtTEMP01 ++echo "Press [Enter] to continue with pppsetup..." >> $TMP/txtTEMP01 ++ ++dialog --backtitle "PPPSETUP $VERSION/Slackware" --textbox "$TMP/txtTEMP01" 16 73 + + while [ -z "$PHONENUM" ] + do +-echo "To begin setting up your PPP connection, i need to know a few things." > /tmp/txtTEMP$$ +-echo "For starters, what is the phone number of your (I)nternet (S)ervice" >> /tmp/txtTEMP$$ +-echo "(P)rovider?" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: atdt6661776 <-For (t)one dialing.)" >> /tmp/txtTEMP$$ +-echo "Example: atdp6661776 <-For (p)ulse dialing.)" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Include the: atd? It's usally just: atdtphonenumber" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "(Note: in the USA, use atdt*70,6661776 [comma required!] to turn" >> /tmp/txtTEMP$$ +-echo " off call waiting.)" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "To begin setting up your PPP connection, i need to know a few things." > $TMP/txtTEMP$$ ++echo "For starters, what is the phone number of your (I)nternet (S)ervice" >> $TMP/txtTEMP$$ ++echo "(P)rovider?" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: atdt6661776 <-For (t)one dialing.)" >> $TMP/txtTEMP$$ ++echo "Example: atdp6661776 <-For (p)ulse dialing.)" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Include the: atd? It's usally just: atdtphonenumber" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "(Note: in the USA, use atdt*70,6661776 [comma required!] to turn" >> $TMP/txtTEMP$$ ++echo " off call waiting.)" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --title "PHONE NUMBER ..." --inputbox "`cat /tmp/txtTEMP$$`" 18 75 2> /tmp/rspTEMP$$ ++dialog --title "PHONE NUMBER ..." --inputbox "`cat $TMP/txtTEMP$$`" 18 75 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-PHONENUM="`cat /tmp/rspTEMP$$`" ++PHONENUM="`cat $TMP/rspTEMP$$`" + + if [ -z "$PHONENUM" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No phone number." + exit + fi + done + +-echo "Where is your modem /dev/cua?" > /tmp/txtTEMP$$ +-dialog --backtitle "MODEM DEVICE ..." --menu "`cat /tmp/txtTEMP$$`" 11 50 4 \ +-cua0 "= (COM1: under DOS)" \ +-cua1 "= (COM2: under DOS)" \ +-cua2 "= (COM3: under DOS)" \ +-cua3 "= (COM4: under DOS)" \ +-2> /tmp/rspTEMP$$ ++echo "Where is your modem /dev/ttyS?" > $TMP/txtTEMP$$ ++dialog --backtitle "MODEM DEVICE ..." --menu "`cat $TMP/txtTEMP$$`" 11 50 4 \ ++ttyS0 "= (COM1: under DOS)" \ ++ttyS1 "= (COM2: under DOS)" \ ++ttyS2 "= (COM3: under DOS)" \ ++ttyS3 "= (COM4: under DOS)" \ ++2> $TMP/rspTEMP$$ + +-MODEM="`cat /tmp/rspTEMP$$`" ++MODEM="`cat $TMP/rspTEMP$$`" + + if [ -z $MODEM ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit + elif [ ! -c "/dev/$MODEM" ]; then +@@ -127,139 +158,139 @@ + ln -sf /dev/$MODEM /dev/modem 2>/dev/null + fi + +-echo "What baud rate is your modem?" > /tmp/txtTEMP$$ +-dialog --backtitle "MODEM BAUD RATE ..." --menu "`cat /tmp/txtTEMP$$`" 14 72 7 \ ++echo "What baud rate is your modem?" > $TMP/txtTEMP$$ ++dialog --backtitle "MODEM BAUD RATE ..." --menu "`cat $TMP/txtTEMP$$`" 14 72 7 \ + 460800 "460KBps - ISDN modem..." \ + 230400 "230KBps - 56Kbps modem... or ISDN modem..." \ + 115200 "115KBps - 28.8, 33.6, or 56Kbps modem..." \ + 57600 "57.6KBps - 28.8, 33.6, or 56Kbps modem..." \ + 38400 "38.4KBps - Hangin ten on the net! 28.8 or 33.6..." \ + 19200 "19.2KBps - Better known as 14.4..." \ +-9600 "9600bps - No comment..." 2> /tmp/rspTEMP$$ ++9600 "9600bps - No comment..." 2> $TMP/rspTEMP$$ + +-BAUDRATE="`cat /tmp/rspTEMP$$`" ++BAUDRATE="`cat $TMP/rspTEMP$$`" + + if [ -z $BAUDRATE ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit + fi + +-echo "Does your service provider use CALLBACK?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "CALLBACK is when you call your service provider and give them" >> /tmp/txtTEMP$$ +-echo "your phone number so they can call you back, then when they" >> /tmp/txtTEMP$$ +-echo "call you back you give them your login name and password." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Most service providers don't use CALLBACK, so the answer is" >> /tmp/txtTEMP$$ +-echo "probably No, unless you know otherwise." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +- +-dialog --backtitle "CALLBACK YES or NO? ..." --yesno "`cat /tmp/txtTEMP$$`" 13 70 +- +-if [ $? = 0 ]; then +-echo "Put your phone number in the box below, so your service provider" > /tmp/txtTEMP$$ +-echo "can call you back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: 7771818" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "Does your service provider use CALLBACK?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "CALLBACK is when you call your service provider and give them" >> $TMP/txtTEMP$$ ++echo "your phone number so they can call you back, then when they" >> $TMP/txtTEMP$$ ++echo "call you back you give them your login name and password." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Most service providers don't use CALLBACK, so the answer is" >> $TMP/txtTEMP$$ ++echo "probably No, unless you know otherwise." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++ ++dialog --backtitle "CALLBACK YES or NO? ..." --menu "`cat $TMP/txtTEMP$$`" 16 70 2 "NO" "Most Internet providers do not use callback" "YES" "Use callback support (I know what I'm doing)" 2> $TMP/replyTEMP$$ ++ ++if [ "`cat $TMP/replyTEMP$$`" = "YES" ]; then ++echo "Put your phone number in the box below, so your service provider" > $TMP/txtTEMP$$ ++echo "can call you back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: 7771818" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK Your Phone Number? ..." --inputbox "`cat /tmp/txtTEMP$$`" 11 72 2> /tmp/cb1TEMP$$ ++dialog --backtitle "CALLBACK Your Phone Number? ..." --inputbox "`cat $TMP/txtTEMP$$`" 11 72 2> $TMP/cb1TEMP$$ + + if [ $? = 1 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + exit +-elif [ ! -s /tmp/cb1TEMP$$ ]; then ++elif [ ! -s $TMP/cb1TEMP$$ ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No Phone Number for Callback." + exit + fi + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-CBPN="`cat /tmp/cb1TEMP$$`" +-echo "I have your phone number: $CBPN" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Do you have to give a Username or Login for the initial connection" >> /tmp/txtTEMP$$ +-echo "to $PHONENUM before you're called back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: jerry" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If NO, just press [Enter] on a empty box and skip this." >> /tmp/txtTEMP$$ ++if [ -s $TMP/cb1TEMP$$ ]; then ++CBPN="`cat $TMP/cb1TEMP$$`" ++echo "I have your phone number: $CBPN" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Do you have to give a Username or Login for the initial connection" >> $TMP/txtTEMP$$ ++echo "to $PHONENUM before you're called back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: jerry" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If NO, just press [Enter] on a empty box and skip this." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK INITIAL LOGIN? ..." --inputbox "`cat /tmp/txtTEMP$$`" 15 74 2> /tmp/cb1.1TEMP$$ ++dialog --backtitle "CALLBACK INITIAL LOGIN? ..." --inputbox "`cat $TMP/txtTEMP$$`" 15 74 2> $TMP/cb1.1TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-CBMODLOGIN="`cat /tmp/cb1.1TEMP$$`" ++CBMODLOGIN="`cat $TMP/cb1.1TEMP$$`" + fi + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo "I have your phone number: $CBPN" > /tmp/txtTEMP$$ +-if [ -s /tmp/cb1.1TEMP$$ ]; then +-echo "I see you have to give a Username or Login: $CBMODLOGIN" >> /tmp/txtTEMP$$ +-echo "for the initial connection to: $PHONENUM" >> /tmp/txtTEMP$$ +-fi +-echo >> /tmp/txtTEMP$$ +-echo "Do you have to give a Password for the initial connection" >> /tmp/txtTEMP$$ +-echo "to $PHONENUM before you're called back." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: Zoy85mWc" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If NO, just press [Enter] on a empty box and skip this." >> /tmp/txtTEMP$$ ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo "I have your phone number: $CBPN" > $TMP/txtTEMP$$ ++if [ -s $TMP/cb1.1TEMP$$ ]; then ++echo "I see you have to give a Username or Login: $CBMODLOGIN" >> $TMP/txtTEMP$$ ++echo "for the initial connection to: $PHONENUM" >> $TMP/txtTEMP$$ ++fi ++echo >> $TMP/txtTEMP$$ ++echo "Do you have to give a Password for the initial connection" >> $TMP/txtTEMP$$ ++echo "to $PHONENUM before you're called back." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: Zoy85mWc" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If NO, just press [Enter] on a empty box and skip this." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK INITIAL PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP$$`" 17 68 2> /tmp/cb2TEMP$$ ++dialog --backtitle "CALLBACK INITIAL PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP$$`" 17 68 2> $TMP/cb2TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-CBMODPASS="`cat /tmp/cb2TEMP$$`" ++CBMODPASS="`cat $TMP/cb2TEMP$$`" + fi + fi + + if [ ! -z "$CBPN" ]; then +-echo "Are they using PAP or CHAP for AUTHENTICATION? If so answer YES." > /tmp/txtTEMP$$ +-echo "Do they present you with a Username: or Login: and Password: prompt" >> /tmp/txtTEMP$$ +-echo "when they call you back, if so they're probably not using PAP or" >> /tmp/txtTEMP$$ +-echo "CHAP, so you can answer NO here." >> /tmp/txtTEMP$$ +-echo "If you're not sure, you'll have to ask you're service provider." >> /tmp/txtTEMP$$ ++echo "Are they using PAP or CHAP for AUTHENTICATION? If so answer YES." > $TMP/txtTEMP$$ ++echo "Do they present you with a Username: or Login: and Password: prompt" >> $TMP/txtTEMP$$ ++echo "when they call you back, if so they're probably not using PAP or" >> $TMP/txtTEMP$$ ++echo "CHAP, so you can answer NO here." >> $TMP/txtTEMP$$ ++echo "If you're not sure, you'll have to ask you're service provider." >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK PAP-CHAP YES or NO? ..." --yesno "`cat /tmp/txtTEMP$$`" 9 72 ++dialog --backtitle "CALLBACK PAP-CHAP YES or NO? ..." --yesno "`cat $TMP/txtTEMP$$`" 9 72 + + if [ $? = 1 ]; then +-echo "What is your Username or Login to your service provider?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This is the information you'll give them when they call" >> /tmp/txtTEMP$$ +-echo "you back at: $CBPN" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: jerry" >> /tmp/txtTEMP$$ ++echo "What is your Username or Login to your service provider?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This is the information you'll give them when they call" >> $TMP/txtTEMP$$ ++echo "you back at: $CBPN" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: jerry" >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK LOGIN? ..." --inputbox "`cat /tmp/txtTEMP$$`" 13 72 2> /tmp/cb3TEMP$$ ++dialog --backtitle "CALLBACK LOGIN? ..." --inputbox "`cat $TMP/txtTEMP$$`" 13 72 2> $TMP/cb3TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-CBLOGIN="`cat /tmp/cb3TEMP$$`" ++CBLOGIN="`cat $TMP/cb3TEMP$$`" + + if [ -z "$CBLOGIN" ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No Login for Callback." +@@ -269,24 +300,24 @@ + fi + + if [ ! -z "$CBLOGIN" ]; then +-echo "What is the Password for: $CBLOGIN" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Example: Ziy79Kie" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is the Password for: $CBLOGIN" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Example: Ziy79Kie" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "CALLBACK PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP$$`" 10 64 2> /tmp/cb4TEMP$$ ++dialog --backtitle "CALLBACK PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP$$`" 10 64 2> $TMP/cb4TEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit 1 + fi + +-CBPASS="`cat /tmp/cb4TEMP$$`" ++CBPASS="`cat $TMP/cb4TEMP$$`" + + if [ -z "$CBPASS" ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No Password for Callback." +@@ -296,13 +327,13 @@ + + callback1() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -322,13 +353,13 @@ + + callback2() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -344,13 +375,13 @@ + + callback3() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -368,13 +399,13 @@ + + callback4() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -393,13 +424,13 @@ + + callback5() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -417,13 +448,13 @@ + + callback6() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -440,13 +471,13 @@ + + callback7() { + cat << EOF +-TIMEOUT 10 ++TIMEOUT 60 + ABORT BUSY + ABORT ERROR + ABORT VOICE + ABORT "NO CARRIER" + ABORT "NO DIALTONE" +-"" "AT\&FW1S0=1H0" ++"" "AT\&FS0=1H0" + OK "ATDT$PHONENUM" + TIMEOUT 60 + CONNECT "" +@@ -465,20 +496,20 @@ + mkdir -p /etc/ppp + fi + +-if [ -s /tmp/cb1TEMP$$ ]; then +-if [ -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ]; then ++if [ -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback1 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback2 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback3 > /etc/ppp/callback +-elif [ ! -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ -s /tmp/cb3TEMP$$ ] && [ -s /tmp/cb4TEMP$$ ]; then ++elif [ ! -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ -s $TMP/cb3TEMP$$ ] && [ -s $TMP/cb4TEMP$$ ]; then + callback4 > /etc/ppp/callback +-elif [ -s /tmp/cb1.1TEMP$$ ] && [ -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb1.1TEMP$$ ] && [ -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback5 > /etc/ppp/callback +-elif [ -s /tmp/cb1.1TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb1.1TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback6 > /etc/ppp/callback +-elif [ -s /tmp/cb2TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ ! -s /tmp/cb4TEMP$$ ]; then ++elif [ -s $TMP/cb2TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ ! -s $TMP/cb4TEMP$$ ]; then + callback7 > /etc/ppp/callback + fi + fi +@@ -488,93 +519,93 @@ + chmod 600 /etc/ppp/callback 2>/dev/null + fi + +-if [ ! -s /tmp/cb1TEMP$$ ]; then +-echo 'The default modem init string will be: "AT\&FW1H0" OK' > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you want to change it, put your init string in the box below." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you use \ in the init string, put it twice." >> /tmp/txtTEMP$$ +-echo 'Example: "AT\&F\\K3\\N3W1H0" OK' >> /tmp/txtTEMP$$ +-echo "M = No sound. W1 or S95=46 = Show CARRIER speed: 28800 etc." >> /tmp/txtTEMP$$ +-echo 'Put "" around each init string with "&" in it.' >> /tmp/txtTEMP$$ +-echo 'Put OK after each init string. Example: ATZ OK "AT\&F1MW1H0" OK' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Just press [Enter] on a empty box to accept the default above." >> /tmp/txtTEMP$$ ++if [ ! -s $TMP/cb1TEMP$$ ]; then ++echo 'The default modem init string will be: "AT&FH0" OK' > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you want to change it, put your init string in the box below." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you use \ in the init string, put it twice." >> $TMP/txtTEMP$$ ++echo 'Example: "AT\&F\\K3\\N3H0" OK' >> $TMP/txtTEMP$$ ++echo "M = No sound. S95=46 = Show CARRIER speed: 28800 etc." >> $TMP/txtTEMP$$ ++echo 'Put "" around each init string with "&" in it.' >> $TMP/txtTEMP$$ ++echo 'Put OK after each init string. Example: ATZ OK "AT\&F1MH0" OK' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Just press [Enter] on a empty box to accept the default above." >> $TMP/txtTEMP$$ + +-dialog --backtitle "MODEM INIT STRING ..." --inputbox "`cat /tmp/txtTEMP$$`" 18 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "MODEM INIT STRING ..." --inputbox "`cat $TMP/txtTEMP$$`" 18 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-if [ -s /tmp/rspTEMP$$ ]; then +-INIT="`cat /tmp/rspTEMP$$`" ++if [ -s $TMP/rspTEMP$$ ]; then ++INIT="`cat $TMP/rspTEMP$$`" + else + INIT="below" + fi + fi + +-echo "What is your (I)nternet (S)ervice (P)rovider's domain name?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This is usually something like..." >> /tmp/txtTEMP$$ +-echo "Examples: something.edu something.net something.com something.org" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is your (I)nternet (S)ervice (P)rovider's domain name?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This is usually something like..." >> $TMP/txtTEMP$$ ++echo "Examples: something.edu something.net something.com something.org" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "DOMAIN NAME ..." --inputbox "`cat /tmp/txtTEMP$$`" 11 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "DOMAIN NAME ..." --inputbox "`cat $TMP/txtTEMP$$`" 11 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-DOMAINNAME="`cat /tmp/rspTEMP$$`" ++DOMAINNAME="`cat $TMP/rspTEMP$$`" + +-echo "What is the IP address of your Internet provider's nameserver?" > /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "It's important that these IP numbers be correct." >> /tmp/txtTEMP$$ +-echo "The IP numbers should not be: 0.0.0.0" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Note: Your service provider's technical support can provide you" >> /tmp/txtTEMP$$ +-echo "with this information. Example: 207.132.116.5" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo "What is the IP address of your Internet provider's nameserver?" > $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "It's important that these IP numbers be correct." >> $TMP/txtTEMP$$ ++echo "The IP numbers should not be: 0.0.0.0" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Note: Your service provider's technical support can provide you" >> $TMP/txtTEMP$$ ++echo "with this information. Example: 207.132.116.5" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + +-dialog --backtitle "DNS IP ADDRESS ..." --inputbox "`cat /tmp/txtTEMP$$`" 14 74 2> /tmp/rspTEMP$$ ++dialog --backtitle "DNS IP ADDRESS ..." --inputbox "`cat $TMP/txtTEMP$$`" 14 74 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-DNSIP="`cat /tmp/rspTEMP$$`" ++DNSIP="`cat $TMP/rspTEMP$$`" + +-if [ ! -s /tmp/cb3TEMP$$ ]; then +-echo "Does your service provider use PAP or CHAP?" > /tmp/txtTEMP$$ +-echo "If you're presented with a Username: or Login: and Password:" >> /tmp/txtTEMP$$ +-echo "prompt when you connect to your service provider, they're" >> /tmp/txtTEMP$$ +-echo "'probably' not using PAP or CHAP, so you can answer SCRIPT." >> /tmp/txtTEMP$$ +-echo "I said 'probably', the only way to know for sure is to ask you're" >> /tmp/txtTEMP$$ +-echo "service provider, this could save you a lot of wasted time." >> /tmp/txtTEMP$$ ++if [ ! -s $TMP/cb3TEMP$$ ]; then ++echo "Does your service provider use PAP or CHAP?" > $TMP/txtTEMP$$ ++echo "If you're presented with a Username: or Login: and Password:" >> $TMP/txtTEMP$$ ++echo "prompt when you connect to your service provider, they're" >> $TMP/txtTEMP$$ ++echo "'probably' not using PAP or CHAP, so you can answer SCRIPT." >> $TMP/txtTEMP$$ ++echo "I said 'probably', the only way to know for sure is to ask you're" >> $TMP/txtTEMP$$ ++echo "service provider, this could save you a lot of wasted time." >> $TMP/txtTEMP$$ + +-dialog --backtitle "PAP, CHAP, or SCRIPT? ..." --menu "`cat /tmp/txtTEMP$$`" 16 72 4 \ ++dialog --backtitle "PAP, CHAP, or SCRIPT? ..." --menu "`cat $TMP/txtTEMP$$`" 16 72 4 \ + PAP "AUTHENTICATION" \ + CHAP "AUTHENTICATION" \ + MS-CHAP-80 "is microsoft's version of CHAP." \ +-SCRIPT "Create Chat Script For Login." 2> /tmp/papTEMP ++SCRIPT "Create Chat Script For Login." 2> $TMP/papTEMP + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + else +-PAP="`cat /tmp/papTEMP`" ++PAP="`cat $TMP/papTEMP`" + fi + fi + +@@ -595,46 +626,46 @@ + + if [ "$PAP" = "MS-CHAP-80" ]; then + if [ ! -z "$DOMAINNAME" ]; then +-echo > /tmp/txtTEMP$$ +-echo "You gave $DOMAINNAME for domain name, this will be the" >> /tmp/txtTEMP$$ +-echo "NT server you connect to when you dial: $PHONENUM" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ ++echo > $TMP/txtTEMP$$ ++echo "You gave $DOMAINNAME for domain name, this will be the" >> $TMP/txtTEMP$$ ++echo "NT server you connect to when you dial: $PHONENUM" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + else +-echo > /tmp/txtTEMP$$ ++echo > $TMP/txtTEMP$$ + fi +-RAS >> /tmp/txtTEMP$$ ++RAS >> $TMP/txtTEMP$$ + +-dialog --title "MS-CHAP NT server, Stand-alone or ? ..." --menu "`cat /tmp/txtTEMP$$`" 22 72 2 \ ++dialog --title "MS-CHAP NT server, Stand-alone or ? ..." --menu "`cat $TMP/txtTEMP$$`" 22 72 2 \ + MS-CHAP-SERVER-1 "Stand-alone..." \ +-MS-CHAP-SERVER-2 "Queries domain controller..." 2> /tmp/mschapTEMP ++MS-CHAP-SERVER-2 "Queries domain controller..." 2> $TMP/mschapTEMP + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-MSCHAP="`cat /tmp/mschapTEMP`" ++MSCHAP="`cat $TMP/mschapTEMP`" + + if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ]; then +-echo "Put the name of the domain you have your account on." > /tmp/txtTEMP0 +-echo "Example: fooboo" >> /tmp/txtTEMP0 +-echo >> /tmp/txtTEMP0 ++echo "Put the name of the domain you have your account on." > $TMP/txtTEMP0 ++echo "Example: fooboo" >> $TMP/txtTEMP0 ++echo >> $TMP/txtTEMP0 + +-dialog --backtitle "MS-CHAP QUERY DOMAIN? ..." --inputbox "`cat /tmp/txtTEMP0`" 9 64 2> /tmp/rspTEMP0 ++dialog --backtitle "MS-CHAP QUERY DOMAIN? ..." --inputbox "`cat $TMP/txtTEMP0`" 9 64 2> $TMP/rspTEMP0 + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-MSDOMAIN="`cat /tmp/rspTEMP0`" ++MSDOMAIN="`cat $TMP/rspTEMP0`" + +-if [ ! -s /tmp/rspTEMP0 ]; then +-rm -f /tmp/*TEMP* ++if [ ! -s $TMP/rspTEMP0 ]; then ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No ms-chap query domain name given." +@@ -643,32 +674,32 @@ + fi + fi + +-if [ ! "$PAP" = "SCRIPT" ] && [ ! -s /tmp/cb3TEMP$$ ]; then +-echo "Put your Login = Username in the box below." > /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Sometimes they want your username or number followed" >> /tmp/txtTEMP1 +-echo "by their @domain name like this below." >> /tmp/txtTEMP1 +-echo "Example: jerry@foo.boo.com" >> /tmp/txtTEMP1 +-echo "Example: 1234567@foo.boo.com" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Sometimes the username is two words." >> /tmp/txtTEMP1 +-echo "Example: jerry donut" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 +-echo "Usally it's just your username like this below." >> /tmp/txtTEMP1 +-echo "Example: jerry" >> /tmp/txtTEMP1 +-echo >> /tmp/txtTEMP1 ++if [ ! "$PAP" = "SCRIPT" ] && [ ! -s $TMP/cb3TEMP$$ ]; then ++echo "Put your Login = Username in the box below." > $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Sometimes they want your username or number followed" >> $TMP/txtTEMP1 ++echo "by their @domain name like this below." >> $TMP/txtTEMP1 ++echo "Example: jerry@foo.boo.com" >> $TMP/txtTEMP1 ++echo "Example: 1234567@foo.boo.com" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Sometimes the username is two words." >> $TMP/txtTEMP1 ++echo "Example: jerry donut" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 ++echo "Usally it's just your username like this below." >> $TMP/txtTEMP1 ++echo "Example: jerry" >> $TMP/txtTEMP1 ++echo >> $TMP/txtTEMP1 + +-dialog --backtitle "PAP or CHAP LOGIN? ..." --inputbox "`cat /tmp/txtTEMP1`" 19 64 2> /tmp/rspTEMP1 ++dialog --backtitle "PAP or CHAP LOGIN? ..." --inputbox "`cat $TMP/txtTEMP1`" 19 64 2> $TMP/rspTEMP1 + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-if [ ! -s /tmp/rspTEMP1 ]; then +-rm -f /tmp/*TEMP* ++if [ ! -s $TMP/rspTEMP1 ]; then ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + echo "No username for pap, chap, or ms-chap given." +@@ -676,119 +707,119 @@ + fi + fi + +-if [ -s /tmp/rspTEMP1 ]; then +-AUTH1="`cat /tmp/rspTEMP1`" +-echo "$AUTH1" > /tmp/txtTEMP2 +-echo "What's the password for the username above?" >> /tmp/txtTEMP2 +-echo "Example: Xpi9u87T" >> /tmp/txtTEMP2 +-dialog --backtitle "PAP or CHAP PASSWORD? ..." --inputbox "`cat /tmp/txtTEMP2`" 10 64 2> /tmp/rspTEMP2 ++if [ -s $TMP/rspTEMP1 ]; then ++AUTH1="`cat $TMP/rspTEMP1`" ++echo "$AUTH1" > $TMP/txtTEMP2 ++echo "What's the password for the username above?" >> $TMP/txtTEMP2 ++echo "Example: Xpi9u87T" >> $TMP/txtTEMP2 ++dialog --backtitle "PAP or CHAP PASSWORD? ..." --inputbox "`cat $TMP/txtTEMP2`" 10 64 2> $TMP/rspTEMP2 + +-AUTH2="`cat /tmp/rspTEMP2`" ++AUTH2="`cat $TMP/rspTEMP2`" + END="" + +-elif [ ! -s /tmp/cb1TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then ++elif [ ! -s $TMP/cb1TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then + END='""' +-echo "If you reached this part of the script, it should be because you" > /tmp/txtTEMP$$ +-echo "skipped the PAP or CHAP? and CALLBACK? parts of this script." >> /tmp/txtTEMP$$ +-echo "In other words, your service provider is not using PAP, CHAP, or" >> /tmp/txtTEMP$$ +-echo "CALLBACK." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Now comes the tough part. :) I need to know what your" >> /tmp/txtTEMP$$ +-echo "service provider prints to your screen when you dial in," >> /tmp/txtTEMP$$ +-echo "and what you respond with." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Usally when you connect to your service provider you see a" >> /tmp/txtTEMP$$ +-echo "Username: or Login: prompt, and you respond with your name." >> /tmp/txtTEMP$$ +-echo "Then there's a Password: prompt and you respond with your" >> /tmp/txtTEMP$$ +-echo "password." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you're not sure if it's Login: or login:, just put ogin:" >> /tmp/txtTEMP$$ +-echo "you don't have to spell the whole thing out, the end part of" >> /tmp/txtTEMP$$ +-echo "what to wait for should be enough." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo 'If they put this for example "foobar fooboo ID:", you could just' >> /tmp/txtTEMP$$ +-echo 'put ID: or you could spell the whole thing out & put "" around it.' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "ID:" >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo '"foobar fooboo ID:"' >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Sometimes you may want to wait for nothing, but send something." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo '""' >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "something" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo '"" = wait for nothing.' >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "If you don't want your password printed out put \q in front of it." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "Password:" >> /tmp/txtTEMP$$ +-echo "What text should I send?" >> /tmp/txtTEMP$$ +-echo "\qsecret" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "ogin: = Login: name: = Username: word: = Password:" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "This below would end up looking like this in the /etc/ppp/pppscript" >> /tmp/txtTEMP$$ +-echo "file created by pppsetup when you're done." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "ogin: jerry" >> /tmp/txtTEMP$$ +-echo "word: secret" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "For example..." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "ogin:" >> /tmp/txtTEMP$$ +-echo "And what text should I send?" >> /tmp/txtTEMP$$ +-echo "jerry" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo "word:" >> /tmp/txtTEMP$$ +-echo "And what text should I send?" >> /tmp/txtTEMP$$ +-echo "secret" >> /tmp/txtTEMP$$ +-echo "What text should I wait for?" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "( End by pressing Enter on an empty = blank wait for? box. )" >> /tmp/txtTEMP$$ ++echo "If you reached this part of the script, it should be because you" > $TMP/txtTEMP$$ ++echo "skipped the PAP or CHAP? and CALLBACK? parts of this script." >> $TMP/txtTEMP$$ ++echo "In other words, your service provider is not using PAP, CHAP, or" >> $TMP/txtTEMP$$ ++echo "CALLBACK." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Now comes the tough part. :) I need to know what your" >> $TMP/txtTEMP$$ ++echo "service provider prints to your screen when you dial in," >> $TMP/txtTEMP$$ ++echo "and what you respond with." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Usally when you connect to your service provider you see a" >> $TMP/txtTEMP$$ ++echo "Username: or Login: prompt, and you respond with your name." >> $TMP/txtTEMP$$ ++echo "Then there's a Password: prompt and you respond with your" >> $TMP/txtTEMP$$ ++echo "password." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you're not sure if it's Login: or login:, just put ogin:" >> $TMP/txtTEMP$$ ++echo "you don't have to spell the whole thing out, the end part of" >> $TMP/txtTEMP$$ ++echo "what to wait for should be enough." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo 'If they put this for example "foobar fooboo ID:", you could just' >> $TMP/txtTEMP$$ ++echo 'put ID: or you could spell the whole thing out & put "" around it.' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "ID:" >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo '"foobar fooboo ID:"' >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Sometimes you may want to wait for nothing, but send something." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo '""' >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "something" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo '"" = wait for nothing.' >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "If you don't want your password printed out put \q in front of it." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "Password:" >> $TMP/txtTEMP$$ ++echo "What text should I send?" >> $TMP/txtTEMP$$ ++echo "\qsecret" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ogin: = Login: name: = Username: word: = Password:" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "This below would end up looking like this in the /etc/ppp/pppscript" >> $TMP/txtTEMP$$ ++echo "file created by pppsetup when you're done." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ogin: jerry" >> $TMP/txtTEMP$$ ++echo "word: secret" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "For example..." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "ogin:" >> $TMP/txtTEMP$$ ++echo "And what text should I send?" >> $TMP/txtTEMP$$ ++echo "jerry" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo "word:" >> $TMP/txtTEMP$$ ++echo "And what text should I send?" >> $TMP/txtTEMP$$ ++echo "secret" >> $TMP/txtTEMP$$ ++echo "What text should I wait for?" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "( End by pressing Enter on an empty = blank wait for? box. )" >> $TMP/txtTEMP$$ + +-dialog --title "CHAT SCRIPT" --textbox "/tmp/txtTEMP$$" 22 72 ++dialog --title "CHAT SCRIPT" --textbox "$TMP/txtTEMP$$" 22 72 + + MESSAGE=' ' + YOUSAY=' ' + while [ ! "$MESSAGE" = "" -a ! "$YOUSAY" = "" ] + do + +-echo " End by pressing Enter on a empty = blank box." > /tmp/txtTEMP$$ +-echo " What text should I wait for?" >> /tmp/txtTEMP$$ +-dialog --backtitle "EXPECT ..." --inputbox "`cat /tmp/txtTEMP$$`" 9 60 2> /tmp/rspTEMP$$ ++echo " End by pressing Enter on a empty = blank box." > $TMP/txtTEMP$$ ++echo " What text should I wait for?" >> $TMP/txtTEMP$$ ++dialog --backtitle "EXPECT ..." --inputbox "`cat $TMP/txtTEMP$$`" 9 60 2> $TMP/rspTEMP$$ + +-MESSAGE="`cat /tmp/rspTEMP$$`" ++MESSAGE="`cat $TMP/rspTEMP$$`" + + if [ -z "$MESSAGE" ]; then + continue + fi + +-dialog --backtitle "SEND ..." --inputbox "And what text should I send?" 8 60 2> /tmp/rspTEMP$$ ++dialog --backtitle "SEND ..." --inputbox "And what text should I send?" 8 60 2> $TMP/rspTEMP$$ + + if [ $? = 1 ]; then +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + clear 2>/dev/null || echo + echo "PPP configuration cancelled." + exit + fi + +-YOUSAY="`cat /tmp/rspTEMP$$`" ++YOUSAY="`cat $TMP/rspTEMP$$`" + +-echo "$MESSAGE $YOUSAY" >> /tmp/sayTEMP1 ++echo "$MESSAGE $YOUSAY" >> $TMP/sayTEMP1 + + if [ -z "$YOUSAY" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "Nothing to send." + exit +@@ -798,22 +829,22 @@ + done + fi + +-if [ ! -s /tmp/cb3TEMP$$ ]; then +-if [ -s /tmp/cb1TEMP$$ ] && [ ! -s /tmp/cb3TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then ++if [ ! -s $TMP/cb3TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ] && [ ! -s $TMP/cb3TEMP$$ ] && [ "$PAP" = "SCRIPT" ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "You chose callback with PAP or CHAP, but answered SCRIPT to PAP or CHAP?." + exit +-elif [ ! -s /tmp/rspTEMP2 ] && [ -s /tmp/rspTEMP1 ]; then ++elif [ ! -s $TMP/rspTEMP2 ] && [ -s $TMP/rspTEMP1 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "No password for: $AUTH1" + exit +-elif [ ! -s /tmp/sayTEMP1 ] && [ ! -s /tmp/rspTEMP2 ]; then ++elif [ ! -s $TMP/sayTEMP1 ] && [ ! -s $TMP/rspTEMP2 ]; then + clear 2>/dev/null || echo +-rm -f /tmp/*TEMP* ++rm -f $TMP/*TEMP* + echo "PPP configuration cancelled." + echo "Nothing to wait for." + exit +@@ -868,9 +899,9 @@ + PATH1="pppd" + fi + +-if [ "$PATH1" != "pppd" ]; then +-chmod 4755 $PATH1 2>/dev/null +-fi ++#if [ "$PATH1" != "pppd" ]; then ++#chmod 4755 $PATH1 2>/dev/null ++#fi + + if [ -x /usr/sbin/chat ]; then + PATH2="/usr/sbin/chat" +@@ -886,14 +917,14 @@ + PATH2="chat" + fi + +-if [ ! -s /tmp/cb1TEMP$$ ]; then +-echo "TIMEOUT 10" > /etc/ppp/pppscript ++if [ ! -s $TMP/cb1TEMP$$ ]; then ++echo "TIMEOUT 60" > /etc/ppp/pppscript + echo "ABORT ERROR" >> /etc/ppp/pppscript + echo "ABORT BUSY" >> /etc/ppp/pppscript + echo 'ABORT "NO CARRIER"' >> /etc/ppp/pppscript + echo 'ABORT "NO DIALTONE"' >> /etc/ppp/pppscript + if [ "$INIT" = "below" ]; then +-echo '"" "AT\&FW1H0"' >> /etc/ppp/pppscript ++echo '"" "AT&FH0"' >> /etc/ppp/pppscript + echo 'OK "'$PHONENUM'"' >> /etc/ppp/pppscript + else + echo '"" '$INIT'' >> /etc/ppp/pppscript +@@ -905,8 +936,8 @@ + chmod 600 /etc/ppp/pppscript 2>/dev/null + fi + +-if [ -s /tmp/sayTEMP1 ]; then +-cat /tmp/sayTEMP1 >> /etc/ppp/pppscript ++if [ -s $TMP/sayTEMP1 ]; then ++cat $TMP/sayTEMP1 >> /etc/ppp/pppscript + echo >> /etc/ppp/pppscript + else + echo >> /etc/ppp/pppscript +@@ -948,9 +979,9 @@ + echo "# The CARRIER speed at which you connected will be reported, if it's in" >> /etc/ppp/ip-up + echo '# the /var/log/messages file. You also need the programs "tail" "cut"' >> /etc/ppp/ip-up + echo '# "tr" "grep" and "syslogd" running for this to work.' >> /etc/ppp/ip-up +-echo "# You may have to add W1 or S95=46 to your modem init string" >> /etc/ppp/ip-up ++echo "# You may have to add S95=46 to your modem init string" >> /etc/ppp/ip-up + echo "# to get your modem to report the DCE = CARRIER speed." >> /etc/ppp/ip-up +-echo "# Examples: AT&FW1 or AT&FS95=46" >> /etc/ppp/ip-up ++echo "# Example: AT&FS95=46" >> /etc/ppp/ip-up + + echo >> /etc/ppp/ip-up + echo "if [ -s /var/log/messages ] && ( ps xc 2>/dev/null | grep -q syslogd 2>/dev/null ); then" >> /etc/ppp/ip-up +@@ -986,7 +1017,8 @@ + echo >> /etc/ppp/ip-up + echo "# End..." >> /etc/ppp/ip-up + +-chmod 4755 /etc/ppp/ip-up 2>/dev/null ++#chmod 4755 /etc/ppp/ip-up 2>/dev/null ++chmod 755 /etc/ppp/ip-up 2>/dev/null + + if [ -s /etc/ppp/ip-down ]; then + mv /etc/ppp/ip-down /etc/ppp/ip-down.OLD +@@ -1022,7 +1054,7 @@ + # You'll see the modem reponse OK and date in the /etc/ppp/modem.cua?, + # modem.ttyS?, or modem.modem file. + # You need the 'modem-stats' program for this below to work. +-# ftp://sunsite.unc.edu/pub/apps/serialcomm/modem ++# ftp://metalab.unc.edu/pub/apps/serialcomm/modem + # modem-stats-1.0.1.src.elf.tar.gz + # Remove the ##### from the lines below. + +@@ -1030,7 +1062,8 @@ + } + + ipdown > /etc/ppp/ip-down +-chmod 4755 /etc/ppp/ip-down 2>/dev/null ++#chmod 4755 /etc/ppp/ip-down 2>/dev/null ++chmod 755 /etc/ppp/ip-down 2>/dev/null + + echo "#sleep 2 # Make sure the modem is really down." >> /etc/ppp/ip-down + echo '#DEV=`echo $2 | sed -e "s./dev/.."`' >> /etc/ppp/ip-down +@@ -1080,38 +1113,38 @@ + cat </dev/null | grep -i -s "rcvd" > /tmp/grep.tmp ++tail -n 30 /var/log/debug 2>/dev/null | grep -i -s "rcvd" > $TMP/grep.tmp + +-if ( grep -i -q "auth pap" /tmp/grep.tmp ); then ++if ( grep -i -q "auth pap" $TMP/grep.tmp ); then + echo + echo "They seem to be requesting PAP = for authentication." + echo "I don't know if you're setup for 'PAP' or not." + echo "Did you answer 'PAP' when you ran pppsetup?" + echo +-elif ( grep -E -i -q "auth chap msoft|auth chap 80" /tmp/grep.tmp ); then ++elif ( grep -E -i -q "auth chap msoft|auth chap 80" $TMP/grep.tmp ); then + echo + echo "They seem to be requesting MS-CHAP-80 = for authentication." + echo "I don't know if you're setup for 'MS-CHAP' or not." + echo "Did you answer 'MS-CHAP' when you ran pppsetup?" + echo +-elif ( grep -i -q "auth chap" /tmp/grep.tmp ); then ++elif ( grep -i -q "auth chap" $TMP/grep.tmp ); then + echo "They seem to be requesting CHAP = for authentication." + echo "I don't know if you're setup for 'CHAP' or not." + echo "Did you answer 'CHAP' when you ran pppsetup?" + echo + else +-rm -f /tmp/grep.tmp ++rm -f $TMP/grep.tmp + exit 0 + fi + +-if ( grep -i -q "callback" /tmp/grep.tmp ); then ++if ( grep -i -q "callback" $TMP/grep.tmp ); then + echo "They seem to be requesting CALLBACK." + echo "I don't know if you're setup for 'callback' or not." + echo "Did you answer 'CALLBACK' when you ran pppsetup?" + echo + fi + +-rm -f /tmp/grep.tmp ++rm -f $TMP/grep.tmp + } + EOF + } +@@ -1124,14 +1157,14 @@ + echo "killall -INT pppd 2>/dev/null" >> /usr/sbin/ppp-go + echo "rm -f /var/lock/LCK* /var/run/ppp*.pid" >> /usr/sbin/ppp-go + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo '('$PATH1' -detach connect "'$PATH2' -v -s -f /etc/ppp/callback" &) || exit 1' >> /usr/sbin/ppp-go ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo '('$PATH1' -detach connect "'$PATH2' -v -f /etc/ppp/callback" &) || exit 1' >> /usr/sbin/ppp-go + else +-echo '('$PATH1' -detach connect "'$PATH2' -v -s -f /etc/ppp/pppscript" &) || exit 1' >> /usr/sbin/ppp-go ++echo '('$PATH1' -detach connect "'$PATH2' -v -f /etc/ppp/pppscript" &) || exit 1' >> /usr/sbin/ppp-go + fi + +-echo "read" >> /usr/sbin/ppp-go +-echo "ifconnect" >> /usr/sbin/ppp-go ++echo "#read" >> /usr/sbin/ppp-go ++echo "#ifconnect" >> /usr/sbin/ppp-go + echo "exit 0" >> /usr/sbin/ppp-go + echo "fi" >> /usr/sbin/ppp-go + +@@ -1140,10 +1173,10 @@ + echo "killall -INT pppd 2>/dev/null" >> /usr/sbin/ppp-go + echo "rm -f /var/lock/LCK* /var/run/ppp*.pid" >> /usr/sbin/ppp-go + +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/callback") || exit 1' >> /usr/sbin/ppp-go ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/callback" 1> /dev/null 2> /dev/null ) || exit 1' >> /usr/sbin/ppp-go + else +-echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/pppscript") || exit 1' >> /usr/sbin/ppp-go ++echo '('$PATH1' connect "'$PATH2' -v -f /etc/ppp/pppscript" 1> /dev/null 2> /dev/null ) || exit 1' >> /usr/sbin/ppp-go + fi + + echo "exit 0" >> /usr/sbin/ppp-go +@@ -1194,26 +1227,37 @@ + echo 'echo "USAGE: ppp-go -h "' >> /usr/sbin/ppp-go + echo "exit 1" >> /usr/sbin/ppp-go + +-chmod 4755 /usr/sbin/ppp-go 2>/dev/null ++#chmod 4755 /usr/sbin/ppp-go 2>/dev/null ++chmod 755 /usr/sbin/ppp-go 2>/dev/null + +-echo "lock" > /etc/ppp/options +-echo "defaultroute" >> /etc/ppp/options +-echo "noipdefault" >> /etc/ppp/options +-echo "modem" >> /etc/ppp/options +-echo "/dev/$MODEM" >> /etc/ppp/options +-echo "$BAUDRATE" >> /etc/ppp/options +-echo "crtscts" >> /etc/ppp/options +-echo "debug" >> /etc/ppp/options +-echo "passive" >> /etc/ppp/options +-echo "asyncmap 0" >> /etc/ppp/options ++cat << EOF > /etc/ppp/options ++# General configuration options for PPPD: ++lock ++defaultroute ++noipdefault ++modem ++/dev/$MODEM ++$BAUDRATE ++crtscts ++# Uncomment the line below for more verbose error reporting: ++#debug ++# If you have a default route already, pppd may require the other side ++# to authenticate itself, which most ISPs will not do. To work around this, ++# uncomment the line below. Note that this may have negative side effects ++# on system security if you allow PPP dialins. See the docs in /usr/doc/ppp* ++# for more information. ++#noauth ++passive ++asyncmap 0 ++EOF + + if [ ! -z "$CBPN" ]; then + echo 'callback "'$CBPN'"' >> /etc/ppp/options + fi + +-if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ] && [ -s /tmp/rspTEMP2 ]; then ++if [ "$MSCHAP" = "MS-CHAP-SERVER-2" ] && [ -s $TMP/rspTEMP2 ]; then + echo 'name "'$MSDOMAIN\\\\$AUTH1'"' >> /etc/ppp/options +-elif [ -s /tmp/rspTEMP2 ]; then ++elif [ -s $TMP/rspTEMP2 ]; then + echo 'name "'$AUTH1'"' >> /etc/ppp/options + fi + +@@ -1277,7 +1321,7 @@ + echo "0.0.0.0:10.10.10.10" >> /etc/ppp/options.demand + echo "demand" >> /etc/ppp/options.demand + +-if [ -s /tmp/cb1TEMP$$ ]; then ++if [ -s $TMP/cb1TEMP$$ ]; then + echo 'connect "'$PATH2' -v -f /etc/ppp/callback"' >> /etc/ppp/options.demand + else + echo 'connect "'$PATH2' -v -f /etc/ppp/pppscript"' >> /etc/ppp/options.demand +@@ -1352,18 +1396,18 @@ + 0.0.0.0 foobar.localnet foobar + + ~# dip -tv +-dip> port /dev/cua1 +-can't open - problems with locking cua1 ++dip> port /dev/ttyS1 ++can't open - problems with locking ttyS1 + + If you get the above message after "port /dev/modem", it means you have a +-lock file in /var/lock/LCK..cua1, remove the lock file and kill dip. ++lock file in /var/lock/LCK..ttyS1, remove the lock file and kill dip. + + ~# rm /var/lock/LCK* + # killall -9 dip + + ~# dip -tv + +-dip> port /dev/cua1 <-Where's the modem? cua0 = com1 cua1 = com2 etc.) ++dip> port /dev/ttyS1 <-Where's the modem? ttyS0 = com1 ttyS1 = com2 etc.) + dip> speed 115200 <-Modem speed: 19200 38400 57600 + dip> term + +@@ -1379,7 +1423,7 @@ + dip> default <-Use default route.) + dip> mode ppp <-Start PPP at your end.) + +-~# ping sunsite.unc.edu <-To see if you're connected.) ++~# ping metalab.unc.edu <-To see if you're connected.) + + ~# dip -k <-To kill dip and the PPP connection.) + +@@ -1393,7 +1437,7 @@ + lock + defaultroute + noipdefault +-/dev/cua1 <- cua0 = com1 cua1 = com2 cua2 = com3 cua3 = com4 ++/dev/ttyS1 <- ttyS0 = com1 ttyS1 = com2 ttyS2 = com3 ttyS3 = com4 + 57600 + modem + crtscts +@@ -1419,221 +1463,221 @@ + } + + echo "=========================================================================" > /etc/ppp/pppsetup.txt +-cat /tmp/txtTEMP01 >> /etc/ppp/pppsetup.txt ++cat $TMP/txtTEMP01 >> /etc/ppp/pppsetup.txt + +-echo "=========================================================================" > /tmp/txtTEMP$$ +-echo "These are your PPP configuration files and instructions..." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +- +-if [ ! -s /tmp/cb1TEMP$$ ] && [ ! -s /tmp/sayTEMP1 ]; then +-echo "# This is your /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/pppscript >> /tmp/txtTEMP$$ +-elif [ ! -s /tmp/cb1TEMP$$ ] && [ -s /tmp/sayTEMP1 ]; then +-echo "# This is your /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/pppscript." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-fi +- +-if [ -s /tmp/cb1TEMP$$ ]; then +-echo "# This is your /etc/ppp/callback script." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/callback." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-fi +- +-echo "# This is your /etc/ppp/options file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/options >> /tmp/txtTEMP$$ ++echo "=========================================================================" > $TMP/txtTEMP$$ ++echo "These are your PPP configuration files and instructions..." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++ ++if [ ! -s $TMP/cb1TEMP$$ ] && [ ! -s $TMP/sayTEMP1 ]; then ++echo "# This is your /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/pppscript >> $TMP/txtTEMP$$ ++elif [ ! -s $TMP/cb1TEMP$$ ] && [ -s $TMP/sayTEMP1 ]; then ++echo "# This is your /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/pppscript." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++fi ++ ++if [ -s $TMP/cb1TEMP$$ ]; then ++echo "# This is your /etc/ppp/callback script." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/callback." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++fi ++ ++echo "# This is your /etc/ppp/options file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/options >> $TMP/txtTEMP$$ + + if [ "$MODERROR" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "WARNING: I could not find the modem device: '/dev/$MODEM'" >> /tmp/txtTEMP$$ +-echo "cua0 = com1 cua1 = com2 cua2 = com3 cua3 = com4" >> /tmp/txtTEMP$$ +-echo "# MAKEDEV $MODEM # /dev/MAKEDEV $MODEM" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "WARNING: I could not find the modem device: '/dev/$MODEM'" >> $TMP/txtTEMP$$ ++echo "ttyS0 = com1 ttyS1 = com2 ttyS2 = com3 ttyS3 = com4" >> $TMP/txtTEMP$$ ++echo "# MAKEDEV $MODEM # /dev/MAKEDEV $MODEM" >> $TMP/txtTEMP$$ + fi + + if [ "$DOMAINNAME" = "unknown.com" ] && [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "The remotename option is required for microsoft's ms-chap-80." >> /tmp/txtTEMP$$ +-echo "You didn't give a DOMAIN NAME so i put unknown.com, you should" >> /tmp/txtTEMP$$ +-echo "change that to your service providers domain name." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "The remotename option is required for microsoft's ms-chap-80." >> $TMP/txtTEMP$$ ++echo "You didn't give a DOMAIN NAME so i put unknown.com, you should" >> $TMP/txtTEMP$$ ++echo "change that to your service providers domain name." >> $TMP/txtTEMP$$ + fi + + if [ ! "$MODERROR" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "I created the symbolic link: /dev/modem -> /dev/$MODEM" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "I created the symbolic link: /dev/modem -> /dev/$MODEM" >> $TMP/txtTEMP$$ + fi + +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/options.demand dialing file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/ppp/options.demand >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you have a ethernet connection you should change the local:remote" >> /tmp/txtTEMP$$ +-echo "IP addresses in the options.demand file, to your actual local and" >> /tmp/txtTEMP$$ +-echo "remote address. Example: 215.346.117.89:312.217.187.96" >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "# This in your /etc/resolv.conf file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-cat /etc/resolv.conf >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/options.demand dialing file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/ppp/options.demand >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you have a ethernet connection you should change the local:remote" >> $TMP/txtTEMP$$ ++echo "IP addresses in the options.demand file, to your actual local and" >> $TMP/txtTEMP$$ ++echo "remote address. Example: 215.346.117.89:312.217.187.96" >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "# This in your /etc/resolv.conf file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++cat /etc/resolv.conf >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ + if [ -z $DNSIP ]; then +-echo "207.132.116.5 <-IMPORTANT: This should be the IP address of" >> /tmp/txtTEMP$$ +-echo " your service providers nameserver." >> /tmp/txtTEMP$$ ++echo "207.132.116.5 <-IMPORTANT: This should be the IP address of" >> $TMP/txtTEMP$$ ++echo " your service providers nameserver." >> $TMP/txtTEMP$$ + else +-echo "$DNSIP <-IMPORTANT: This should be the IP address of" >> /tmp/txtTEMP$$ +-echo " your service providers nameserver." >> /tmp/txtTEMP$$ ++echo "$DNSIP <-IMPORTANT: This should be the IP address of" >> $TMP/txtTEMP$$ ++echo " your service providers nameserver." >> $TMP/txtTEMP$$ + fi + + if [ -z $DNSIP ]; then +-echo >> /tmp/txtTEMP$$ +-echo "WARNING: You didn't give a IP address for your internet service" >> /tmp/txtTEMP$$ +-echo "providers nameserver, i put '207.132.116.5' but this may not work." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "WARNING: You didn't give a IP address for your internet service" >> $TMP/txtTEMP$$ ++echo "providers nameserver, i put '207.132.116.5' but this may not work." >> $TMP/txtTEMP$$ + fi + + if [ "$PAP" = "CHAP" ] || [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/chap-secrets file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/chap-secrets." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/chap-secrets file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/chap-secrets." >> $TMP/txtTEMP$$ + fi + + if [ "$DOMAINNAME" = "unknown.com" ] && [ "$PAP" = "MS-CHAP-80" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "You didn't give a DOMAIN NAME that's why i put unknown.com in" >> /tmp/txtTEMP$$ +-echo "the /etc/ppp/chap-secrets file." >> /tmp/txtTEMP$$ +-echo "You should change that to your service providers domain name." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "You didn't give a DOMAIN NAME that's why i put unknown.com in" >> $TMP/txtTEMP$$ ++echo "the /etc/ppp/chap-secrets file." >> $TMP/txtTEMP$$ ++echo "You should change that to your service providers domain name." >> $TMP/txtTEMP$$ + fi + + if [ "$PAP" = "PAP" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "# This is your /etc/ppp/pap-secrets file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "Look at /etc/ppp/pap-secrets." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "# This is your /etc/ppp/pap-secrets file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Look at /etc/ppp/pap-secrets." >> $TMP/txtTEMP$$ + fi + + if [ "$PATH1" = "pppd" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find on your system." >> /tmp/txtTEMP$$ +-echo "You need on your system to make the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find on your system." >> $TMP/txtTEMP$$ ++echo "You need on your system to make the PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ "$PATH2" = "chat" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find on your system." >> /tmp/txtTEMP$$ +-echo "You need on your system to make the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find on your system." >> $TMP/txtTEMP$$ ++echo "You need on your system to make the PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ ! "$MSG1" = "YES" ] && [ ! "$MSG2" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I couldn't find 'PPP' in the kernel or as a module." >> /tmp/txtTEMP$$ +-echo "You'll need 'PPP' in the kernel or as a module to make a PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I couldn't find 'PPP' in the kernel or as a module." >> $TMP/txtTEMP$$ ++echo "You'll need 'PPP' in the kernel or as a module to make a PPP connection." >> $TMP/txtTEMP$$ + fi + + if [ "$PPPRC" = "YES" ]; then +-echo >> /tmp/txtTEMP$$ +-echo "ATENTION: I found a $HOME/.ppprc file and moved it to" >> /tmp/txtTEMP$$ +-echo ".ppprc.off, it might interfere with the PPP connection." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "ATENTION: I found a $HOME/.ppprc file and moved it to" >> $TMP/txtTEMP$$ ++echo ".ppprc.off, it might interfere with the PPP connection." >> $TMP/txtTEMP$$ + fi + +-echo >> /tmp/txtTEMP$$ +-echo "Does everything look correct? if not, run 'pppsetup' again..." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo "To connect to your service provider." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-go <-Make PPP connection.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Does everything look correct? if not, run 'pppsetup' again..." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo "To connect to your service provider." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-go <-Make PPP connection.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "You'll hear and see the modem dialing then once connected," >> /tmp/txtTEMP$$ +-echo "logging you in Username: or Login: and Password: etc." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "You won't see a Username or Login: and Password: prompt" >> /tmp/txtTEMP$$ +-echo "if they're using PAP or CHAP to authenticate you." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If they use PAP or CHAP you'll just see CONNECT -- got it." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If the connection was successful you'll see the Local IP and" >> /tmp/txtTEMP$$ +-echo "Remote IP address printed to the screen, you can press [Enter]." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you run ppp-go in X windows you probably won't see a Local" >> /tmp/txtTEMP$$ +-echo "and Remote IP address printed to the screen, you'll just see" >> /tmp/txtTEMP$$ +-echo "the connection process come to a end, wait a few seconds and" >> /tmp/txtTEMP$$ +-echo "press [Enter] at that point." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you don't connect for whatever reason e.g. Failed No" >> /tmp/txtTEMP$$ +-echo "Dialtone, Busy, No Carrier, Whatever, Exit, just press" >> /tmp/txtTEMP$$ +-echo "[Enter] at that point." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "if you have syslogd running, you can see the output messages" >> /tmp/txtTEMP$$ +-echo "from pppd and chat in the /var/log/messages and or debug file." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "Sample /var/log/messages file." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Serial connection established." >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Using interface ppp0" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: Connect: ppp0 <--> /dev/modem" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: local IP address 215.87.78.18" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` pppd[562]: remote IP address 205.94.97.35" >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "You don't have a successful PPP connection until you" >> /tmp/txtTEMP$$ +-echo "receive a local & remote IP address like above." >> /tmp/txtTEMP$$ +- +-echo >> /tmp/txtTEMP$$ +-echo "If you have the X window system, you could connect in a Xterm." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # startx" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # ppp-go" >> /tmp/txtTEMP$$ +-echo "`hostname 2>/dev/null` # netscape mosaic etc." >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "You'll hear and see the modem dialing then once connected," >> $TMP/txtTEMP$$ ++echo "logging you in Username: or Login: and Password: etc." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "You won't see a Username or Login: and Password: prompt" >> $TMP/txtTEMP$$ ++echo "if they're using PAP or CHAP to authenticate you." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If they use PAP or CHAP you'll just see CONNECT -- got it." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If the connection was successful you'll see the Local IP and" >> $TMP/txtTEMP$$ ++echo "Remote IP address printed to the screen, you can press [Enter]." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you run ppp-go in X windows you probably won't see a Local" >> $TMP/txtTEMP$$ ++echo "and Remote IP address printed to the screen, you'll just see" >> $TMP/txtTEMP$$ ++echo "the connection process come to a end, wait a few seconds and" >> $TMP/txtTEMP$$ ++echo "press [Enter] at that point." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you don't connect for whatever reason e.g. Failed No" >> $TMP/txtTEMP$$ ++echo "Dialtone, Busy, No Carrier, Whatever, Exit, just press" >> $TMP/txtTEMP$$ ++echo "[Enter] at that point." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "if you have syslogd running, you can see the output messages" >> $TMP/txtTEMP$$ ++echo "from pppd and chat in the /var/log/messages and or debug file." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "Sample /var/log/messages file." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Serial connection established." >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Using interface ppp0" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: Connect: ppp0 <--> /dev/modem" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: local IP address 215.87.78.18" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` pppd[562]: remote IP address 205.94.97.35" >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "You don't have a successful PPP connection until you" >> $TMP/txtTEMP$$ ++echo "receive a local & remote IP address like above." >> $TMP/txtTEMP$$ ++ ++echo >> $TMP/txtTEMP$$ ++echo "If you have the X window system, you could connect in a Xterm." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # startx" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # ppp-go" >> $TMP/txtTEMP$$ ++echo "`hostname 2>/dev/null` # netscape mosaic etc." >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-off <-To end the ppp connection.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-off <-To end the ppp connection.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "~# ppp-go -h <-For help.)" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "~# ppp-go -h <-For help.)" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo 'There is no support in linux for "WinModems", if you have a' >> /tmp/txtTEMP$$ +-echo "WinModem you will not be able to use it in linux." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "There is support for plug n play modems, if you have a pnp" >> /tmp/txtTEMP$$ +-echo 'modem you may need "isapnptools" to get it recognized.' >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo 'There is no support in linux for "WinModems", if you have a' >> $TMP/txtTEMP$$ ++echo "WinModem you will not be able to use it in linux." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "There is support for plug n play modems, if you have a pnp" >> $TMP/txtTEMP$$ ++echo 'modem you may need "isapnptools" to get it recognized.' >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + if [ -s /usr/doc/pppsetup/pppsetup-$VERSION.README ]; then +-echo "#### Look at the /usr/doc/pppsetup/pppsetup-$VERSION.README. ####" >> /tmp/txtTEMP$$ ++echo "#### Look at the /usr/doc/pppsetup/pppsetup-$VERSION.README. ####" >> $TMP/txtTEMP$$ + fi +-echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + +-echo >> /tmp/txtTEMP$$ +-echo "Done... You can exit now..." >> /tmp/txtTEMP$$ +-echo >> /tmp/txtTEMP$$ +-echo "End..." >> /tmp/txtTEMP$$ +-echo "=========================================================================" >> /tmp/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "Done... You can exit now..." >> $TMP/txtTEMP$$ ++echo >> $TMP/txtTEMP$$ ++echo "End..." >> $TMP/txtTEMP$$ ++echo "=========================================================================" >> $TMP/txtTEMP$$ + +-dialog --title "DONE" --clear --textbox "/tmp/txtTEMP$$" 22 78 ++dialog --title "DONE" --clear --textbox "$TMP/txtTEMP$$" 22 78 + + clear 2>/dev/null || echo + +-cat /tmp/txtTEMP$$ >> /etc/ppp/pppsetup.txt ++cat $TMP/txtTEMP$$ >> /etc/ppp/pppsetup.txt + chmod 600 /etc/ppp/pppsetup.txt 2>/dev/null + + if [ ! -s /etc/syslog.conf ]; then +@@ -1644,7 +1688,7 @@ + + demand >> /etc/ppp/pppsetup.txt + other >> /etc/ppp/pppsetup.txt +-rm -f /tmp/*TEMP* 2>/dev/null ++rm -f $TMP/*TEMP* 2>/dev/null + + killall -9 syslogd 2>/dev/null + syslogd & 2>/dev/null +@@ -1659,7 +1703,7 @@ + else + demand >> /etc/ppp/pppsetup.txt + other >> /etc/ppp/pppsetup.txt +-rm -f /tmp/*TEMP* 2>/dev/null ++rm -f $TMP/*TEMP* 2>/dev/null + echo + echo "#### A copy of this text can be found in: /etc/ppp/pppsetup.txt ####" + if [ -s /usr/doc/pppsetup/pppsetup-$VERSION.README ]; then diff --git a/source/n/ppp/radius.msdict b/source/n/ppp/radius.msdict new file mode 100644 index 000000000..da3a317c0 --- /dev/null +++ b/source/n/ppp/radius.msdict @@ -0,0 +1,81 @@ +# +# Microsoft's VSA's, from RFC 2548 +# +# $Id: dictionary.microsoft,v 1.1 2004/11/14 07:26:26 paulus Exp $ +# + +VENDOR Microsoft 311 Microsoft + +ATTRIBUTE MS-CHAP-Response 1 string Microsoft +ATTRIBUTE MS-CHAP-Error 2 string Microsoft +ATTRIBUTE MS-CHAP-CPW-1 3 string Microsoft +ATTRIBUTE MS-CHAP-CPW-2 4 string Microsoft +ATTRIBUTE MS-CHAP-LM-Enc-PW 5 string Microsoft +ATTRIBUTE MS-CHAP-NT-Enc-PW 6 string Microsoft +ATTRIBUTE MS-MPPE-Encryption-Policy 7 string Microsoft +# This is referred to as both singular and plural in the RFC. +# Plural seems to make more sense. +ATTRIBUTE MS-MPPE-Encryption-Type 8 string Microsoft +ATTRIBUTE MS-MPPE-Encryption-Types 8 string Microsoft +ATTRIBUTE MS-RAS-Vendor 9 integer Microsoft +ATTRIBUTE MS-CHAP-Domain 10 string Microsoft +ATTRIBUTE MS-CHAP-Challenge 11 string Microsoft +ATTRIBUTE MS-CHAP-MPPE-Keys 12 string Microsoft +ATTRIBUTE MS-BAP-Usage 13 integer Microsoft +ATTRIBUTE MS-Link-Utilization-Threshold 14 integer Microsoft +ATTRIBUTE MS-Link-Drop-Time-Limit 15 integer Microsoft +ATTRIBUTE MS-MPPE-Send-Key 16 string Microsoft +ATTRIBUTE MS-MPPE-Recv-Key 17 string Microsoft +ATTRIBUTE MS-RAS-Version 18 string Microsoft +ATTRIBUTE MS-Old-ARAP-Password 19 string Microsoft +ATTRIBUTE MS-New-ARAP-Password 20 string Microsoft +ATTRIBUTE MS-ARAP-PW-Change-Reason 21 integer Microsoft + +ATTRIBUTE MS-Filter 22 string Microsoft +ATTRIBUTE MS-Acct-Auth-Type 23 integer Microsoft +ATTRIBUTE MS-Acct-EAP-Type 24 integer Microsoft + +ATTRIBUTE MS-CHAP2-Response 25 string Microsoft +ATTRIBUTE MS-CHAP2-Success 26 string Microsoft +ATTRIBUTE MS-CHAP2-CPW 27 string Microsoft + +ATTRIBUTE MS-Primary-DNS-Server 28 ipaddr Microsoft +ATTRIBUTE MS-Secondary-DNS-Server 29 ipaddr Microsoft +ATTRIBUTE MS-Primary-NBNS-Server 30 ipaddr Microsoft +ATTRIBUTE MS-Secondary-NBNS-Server 31 ipaddr Microsoft + +#ATTRIBUTE MS-ARAP-Challenge 33 string Microsoft + + +# +# Integer Translations +# + +# MS-BAP-Usage Values + +VALUE MS-BAP-Usage Not-Allowed 0 +VALUE MS-BAP-Usage Allowed 1 +VALUE MS-BAP-Usage Required 2 + +# MS-ARAP-Password-Change-Reason Values + +VALUE MS-ARAP-PW-Change-Reason Just-Change-Password 1 +VALUE MS-ARAP-PW-Change-Reason Expired-Password 2 +VALUE MS-ARAP-PW-Change-Reason Admin-Requires-Password-Change 3 +VALUE MS-ARAP-PW-Change-Reason Password-Too-Short 4 + +# MS-Acct-Auth-Type Values + +VALUE MS-Acct-Auth-Type PAP 1 +VALUE MS-Acct-Auth-Type CHAP 2 +VALUE MS-Acct-Auth-Type MS-CHAP-1 3 +VALUE MS-Acct-Auth-Type MS-CHAP-2 4 +VALUE MS-Acct-Auth-Type EAP 5 + +# MS-Acct-EAP-Type Values + +VALUE MS-Acct-EAP-Type MD5 4 +VALUE MS-Acct-EAP-Type OTP 5 +VALUE MS-Acct-EAP-Type Generic-Token-Card 6 +VALUE MS-Acct-EAP-Type TLS 13 + diff --git a/source/n/ppp/realms b/source/n/ppp/realms new file mode 100644 index 000000000..344036404 --- /dev/null +++ b/source/n/ppp/realms @@ -0,0 +1,22 @@ +# /etc/radiusclient/realms +# +# Handle realm @netservers.co.uk on an internal RADIUS server +# (note the server must be told to strip the realm) + +#authserver netservers.co.uk 192.168.1.1:1812 +#acctserver netservers.co.uk 192.168.1.1:1813 + +# users in realm @example.com are handled by separate servers + +#authserver example.com 10.0.0.1:1812 +#acctserver example.com 10.0.0.2:1813 + +# the DEFAULT realm matches users that do not supply a realm + +#authserver DEFAULT 192.168.1.1:1812 +#acctserver DEFAULT 192.168.1.1:1813 + +# Any realms that do not match in the realms file automatically fall +# through to the standard radius plugin which uses the servers in the +# radiusclient.conf file. Note that this is different than the +# DEFAULT realm match, above. diff --git a/source/n/ppp/servers b/source/n/ppp/servers new file mode 100644 index 000000000..b061bf934 --- /dev/null +++ b/source/n/ppp/servers @@ -0,0 +1,4 @@ +#Server Name or Client/Server pair Key +#---------------- --------------- +#portmaster.elemental.net hardlyasecret +#portmaster2.elemental.net donttellanyone diff --git a/source/n/ppp/slack-desc b/source/n/ppp/slack-desc new file mode 100644 index 000000000..ddf6f37f4 --- /dev/null +++ b/source/n/ppp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ppp: ppp (Point-to-Point Protocol) +ppp: +ppp: The Point-to-Point Protocol (PPP) provides a method for transmitting +ppp: data over serial links. It's commonly used for connecting to the +ppp: Internet using a modem. This package includes the PPP daemon (pppd), +ppp: which negotiates with the peer to establish the link and sets up the +ppp: ppp network interface, and pppsetup, an easy-to-use utility for +ppp: setting up your PPP daemon. +ppp: +ppp: +ppp: diff --git a/source/n/procmail/procmail.SlackBuild b/source/n/procmail/procmail.SlackBuild new file mode 100755 index 000000000..0d7456c2a --- /dev/null +++ b/source/n/procmail/procmail.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.22 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-procmail +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_procmail.tar.gz + +cd $TMP +rm -rf procmail-$VERSION +tar xvf $CWD/procmail-$VERSION.tar.gz || exit 1 +cd procmail-$VERSION || exit 1 +zcat $CWD/procmail_3.22-5.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/procmail.lfs.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 + +cd src +cat formail > $PKG/usr/bin/formail +cat lockfile > $PKG/usr/bin/lockfile +cat mailstat > $PKG/usr/bin/mailstat +cat procmail > $PKG/usr/bin/procmail + +cd ../man +for file in formail.1 lockfile.1 procmail.1 ; do + gzip -9c $file > $PKG/usr/man/man1/$file.gz +done +for file in procmailex.5 procmailrc.5 procmailsc.5 ; do + gzip -9c $file > $PKG/usr/man/man5/$file.gz +done +cd .. + +mkdir -p $PKG/usr/doc/procmail-$VERSION +cp -a \ + Artistic COPYING FAQ FEATURES HISTORY INSTALL KNOWN_BUGS \ + README examples \ + $PKG/usr/doc/procmail-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/procmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/procmail/procmail.lfs.diff b/source/n/procmail/procmail.lfs.diff new file mode 100644 index 000000000..7ad42f664 --- /dev/null +++ b/source/n/procmail/procmail.lfs.diff @@ -0,0 +1,11 @@ +--- ./Makefile.orig 2006-09-18 23:07:40.000000000 -0500 ++++ ./Makefile 2006-09-18 23:09:54.000000000 -0500 +@@ -86,7 +86,7 @@ + #-Wimplicit -Wshadow -Wid-clash-6 #-Wuninitialized + + # The place to put your favourite extra cc flag +-CFLAGS0 = -O #$(GCC_WARNINGS) ++CFLAGS0 = -O -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 #$(GCC_WARNINGS) + LDFLAGS0= -s + # Read my libs :-) + LIBS= diff --git a/source/n/procmail/procmail_3.22-5.diff b/source/n/procmail/procmail_3.22-5.diff new file mode 100644 index 000000000..8e6ba5f93 --- /dev/null +++ b/source/n/procmail/procmail_3.22-5.diff @@ -0,0 +1,1026 @@ +--- procmail-3.22.orig/examples/advanced ++++ procmail-3.22/examples/advanced +@@ -251,14 +251,14 @@ + -------------------------------------------------------- + + There are many different reasons why more and more sites decide not to +-store mail in /usr/spool/mail or /usr/mail anymore. ++store mail in /var/spool/mail or /var/mail anymore. + Some of the obvious advantages when storing mail in the recipient's home + directory are: + - Mail is automatically subject to the user's quota limitations. + - Often there is more room on the home partition(s) than on that +- one /usr/mail partition. ++ one /var/mail partition. + +-The quota limitations also apply to /usr/spool/mail or /usr/mail if procmail ++The quota limitations also apply to /var/spool/mail or /var/mail if procmail + does the delivery. These quota limitations often do not work with the + regular /bin/mail since that usually writes the mailbox with root permissions + (eluding the quota restrictions). +@@ -276,7 +276,7 @@ + defined SYSTEM_MBOX to be. Some braindamaged mail programs + do not pick up the MAIL environment variable, these either + have to be patched/recompiled or you have to create symbolic +- links in /usr/mail to every person's new mailbox. ++ links in /var/mail to every person's new mailbox. + + --- + +--- procmail-3.22.orig/man/procmail.man ++++ procmail-3.22/man/procmail.man +@@ -723,6 +723,15 @@ + .fi + .ad + .PP ++Some mailers (notably exim) do not currently accept the above syntax. ++In such case use this instead: ++.PP ++.na ++.nf ++|/usr/bin/procmail ++.fi ++.ad ++.PP + Procmail can also be invoked to postprocess an already filled system + mailbox. This can be useful if you don't want to or can't use a + $HOME/@DOT_FORWARD@ file (in which case the following script could +@@ -754,7 +763,7 @@ + .SS "A sample small @PROCMAILRC@:" + .na + .nf +-PATH=/bin:/usr/bin:@BINDIR@ ++PATH=/usr/local/bin:/usr/bin:/bin + MAILDIR=$HOME/Mail #you'd better make sure it exists + DEFAULT=$MAILDIR/mbox #completely optional + LOGFILE=$MAILDIR/from #recommended +--- procmail-3.22.orig/src/comsat.c ++++ procmail-3.22/src/comsat.c +@@ -92,7 +92,7 @@ + } + if(newvalid) /* so far, so good */ + { int s; +- if(!*chp) /* no service */ ++ if(!chad||!*chp) /* no service */ + chp=BIFF_serviceport; /* new balls please! */ + s=strtol(chp,&chad,10); + if(chp!=chad) /* the service is not numeric */ +@@ -120,7 +120,7 @@ + { int s;const char*p; + if(!csvalid||!buf) /* is comat on and set to a valid address? */ + return; +- if(!*cslgname||strlen(cslgname)+2>linebuf) /* is $LOGNAME bogus? */ ++ if(!cslgname||!*cslgname||strlen(cslgname)+2>linebuf)/* is $LOGNAME bogus? */ + return; + if(!(p=folder?folder:cslastf)) /* do we have a folder? */ + return; +--- procmail-3.22.orig/src/memblk.c ++++ procmail-3.22/src/memblk.c +@@ -51,11 +51,11 @@ + { + #ifdef USE_MMAP + if(mb->fd>=0) +- { long len=mb->len+1; +- if(munmap(mb->p,len)) +- mmapfailed(len); /* don't want to continue here */ +- if((mb->p=mmap(0,len,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED) +- mmapfailed(len); ++ { long mlen=mb->len+1; ++ if(munmap(mb->p,mlen)) ++ mmapfailed(mlen); /* don't want to continue here */ ++ if((mb->p=mmap(0,mlen,PROT_READ,MAP_PRIVATE,mb->fd,(off_t)0))==MAP_FAILED) ++ mmapfailed(mlen); + close(mb->fd); + mb->fd=ropen(devnull,O_RDWR,0); /* XXX Perhaps -1 is better? */ + } +@@ -77,8 +77,8 @@ + strcpy(filename,MMAP_DIR); + if(unique(filename,strchr(filename,'\0'),MMAP_FILE_LEN,MMAP_PERM,0,0)&& + (mb->fd=ropen(filename,O_RDWR,MMAP_PERM),unlink(filename),mb->fd>=0)) +- { mb->filelen=len; +- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) ++ { mb->filelen=len+1; ++ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) + dropf: { close(mb->fd);mb->fd= -1; + if(verbose)nlog("Unable to extend or use tempfile"); + } +@@ -98,9 +98,9 @@ + } + } + if(mb->fd>=0) +- { if(len>mb->filelen) /* need to extend? */ +- { mb->filelen=len; +- if(lseek(mb->fd,mb->filelen-1,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) ++ { if(len>=mb->filelen) /* need to extend? */ ++ { mb->filelen=len+1; ++ if(lseek(mb->fd,len,SEEK_SET)<0||1!=rwrite(mb->fd,empty,1)) + { char*p=malloc(len+1); /* can't extend, switch to malloc */ + tmemmove(p,mb->p,mb->len); + munmap(mb->p,mb->len+1); +@@ -124,9 +124,9 @@ + } + else + mb->p=realloc(mb->p,len+1); +- mb->len=len+1; +- mb->p[len]='\0'; ++ mb->len=len; + ret1: ++ mb->p[len]='\0'; + return 1; + } + +--- procmail-3.22.orig/src/authenticate.c ++++ procmail-3.22/src/authenticate.c +@@ -39,13 +39,13 @@ + #include "authenticate.h" + + #ifndef MAILSPOOLDIR +-#define MAILSPOOLDIR "/var/spool/mail/" /* watch the trailing / */ ++#define MAILSPOOLDIR "/var/mail/" /* watch the trailing / */ + #endif + #ifndef MAILSPOOLSUFFIX + #define MAILSPOOLSUFFIX "" /* suffix to force maildir or MH style */ + #endif + #ifndef MAILSPOOLHASH +-#define MAILSPOOLHASH 0 /* 2 would deliver to /var/spool/mail/b/a/bar */ ++#define MAILSPOOLHASH 0 /* 2 would deliver to /var/mail/b/a/bar */ + #endif + /*#define MAILSPOOLHOME "/.mail" /* watch the leading / */ + /* delivers to $HOME/.mail */ +--- procmail-3.22.orig/src/autoconf ++++ procmail-3.22/src/autoconf +@@ -89,7 +89,7 @@ + # #define NOfcntl_lock + #Ok #define USElockf + #Ok #define USEflock +-#Ok #define MAILSPOOLDIR "/var/spool/mail/" ++#Ok #define MAILSPOOLDIR "/var/mail/" + #Ok #define SENDMAIL "/usr/sbin/sendmail" + # #define buggy_SENDMAIL + # #define DEFflagsendmail "" +@@ -1416,14 +1416,14 @@ + + found=no + +-for a in /var/spool/mail /usr/spool/mail /var/mail /usr/mail /spool/mail ++for a in /var/mail /var/spool/mail /usr/spool/mail /usr/mail /spool/mail + do + test -d $a -a $found != yes && + echo '#define MAILSPOOLDIR "'$a'/"' >>$ACONF && found=yes + done + if test $found != yes + then +- echo '#define MAILSPOOLDIR "/var/spool/mail/"' >>$ACONF ++ echo '#define MAILSPOOLDIR "/var/mail/"' >>$ACONF + echo Could not find the system-mailbox directory, supplied default. + fi + +@@ -1470,15 +1470,14 @@ + grep 'Mlocal.*procmail' >$DEVNULL || + echo '#define CF_no_procmail_yet' >>$ACONF + +-cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL | +- grep '^V' >$DEVNULL || +- echo '#define buggy_SENDMAIL' >>$ACONF ++# cat /usr/lib/sendmail.cf /etc/sendmail.cf /etc/mail/sendmail.cf 2>$DEVNULL | ++# grep '^V' >$DEVNULL || ++# echo '#define buggy_SENDMAIL' >>$ACONF + + lpath='/bin' + bins="/bin" + +-for newd in /usr/bin /usr/ucb /usr/5bin $BINDIR /local/bin /usr/local/bin \ +- /global/bin /usr/bin/X11 /usr/X*/bin ++for newd in /usr/bin $BINDIR /usr/bin/X11 /usr/X*/bin + do + if test -d $newd + then +--- procmail-3.22.orig/src/procmail.c ++++ procmail-3.22/src/procmail.c +@@ -652,8 +652,7 @@ + nrcond= -1; + if(tolock) /* clear temporary buffer for lockfile name */ + free(tolock); +- for(i=maxindex(flags);i;i--) /* clear the flags */ +- flags[i]=0; ++ bbzero(flags,sizeof(flags)); /* clear the flags */ + for(tolock=0,locknext=0;;) + { chp=skpspace(chp); + switch(i= *chp++) +--- procmail-3.22.orig/src/pipes.c ++++ procmail-3.22/src/pipes.c +@@ -145,7 +145,9 @@ + if(Stdout) + { *(eq=strchr(Stdout,'\0')-1)='\0'; /* chop the '=' */ + if(!(backblock=getenv(Stdout))) /* no current value? */ +- PRDB=PWRB= -1; ++ { PRDB=PWRB= -1; ++ backlen=0; ++ } + else + { backlen=strlen(backblock); + goto pip; +@@ -155,9 +157,7 @@ + pip: rpipe(pbackfd); + rpipe(pinfd); /* main pipes setup */ + if(!(pidchild=sfork())) /* create a sending procmail */ +- { if(Stdout&&backblock) +- backlen=strlen(backblock); +- else ++ { if(!Stdout) + backblock=source,backlen=len; + childsetup();rclose(PRDI);rclose(PRDB); + rpipe(poutfd);rclose(STDOUT); +@@ -194,7 +194,7 @@ + makeblock(&temp,Stdfilled); + tmemmove(temp.p,Stdout,Stdfilled); + readdyn(&temp,&Stdfilled,Stdfilled+backlen+1); +- Stdout=realloc(Stdout,&Stdfilled+1); ++ Stdout=realloc(Stdout,Stdfilled+1); + tmemmove(Stdout,temp.p,Stdfilled+1); + freeblock(&temp); + retStdout(Stdout,pwait&&pipw,!backblock); +--- procmail-3.22.orig/src/memblk.h ++++ procmail-3.22/src/memblk.h +@@ -1,6 +1,6 @@ + typedef struct memblk { + char*p; /* where it starts */ +- long len; /* currently allocated size */ ++ long len; /* current size, not including trailing NUL */ + #ifdef USE_MMAP + off_t filelen; /* how long is the file */ + int fd; /* file which is mmap()ed */ +--- procmail-3.22.orig/src/manconf.c ++++ procmail-3.22/src/manconf.c +@@ -233,7 +233,7 @@ + \2-@PRESERVOPT@\1and\1.BR \2-@FROMWHOPT@ .\1"); + pc("LMTPOPT",LMTPOPT); + #else +- ps("LMTPOPTdesc","");ps("LMTPusage",""); ++ ps("LMTPOPTdesc","");ps("LMTPusage","\1"); + #endif + pname("INIT_UMASK",0);printf("0%lo/g\n",(unsigned long)INIT_UMASK);lines--; + pn("DEFlinebuf",DEFlinebuf); +--- procmail-3.22.orig/src/recommend.c ++++ procmail-3.22/src/recommend.c +@@ -47,7 +47,7 @@ + printf("chmod %lo %s\n",(unsigned long)(sgid|PERMIS),argv[2]); + else if(chmdir==1) + goto nogchmod; +- if(chmdir) ++ if(0) + printf("chmod %c+w %s/.\n",chmdir==1?'g':'a',mailspooldir); + nogchmod: + return EXIT_SUCCESS; +--- procmail-3.22.orig/src/foldinfo.h ++++ procmail-3.22/src/foldinfo.h +@@ -10,7 +10,7 @@ + + #define ft_lock(type) ((type)>ft_MAILDIR) /* kernel lock fd */ + #define ft_atime(type) ((type)==ft_FILE) /* force atime < mtime */ +-#define ft_dotlock(type) ((type)==ft_FILE) /* dotlock $DEFAULT */ ++#define ft_dotlock(type) ((type)>ft_MAILDIR) /* dotlock $DEFAULT */ + #define ft_delim(type) ((type)==ft_FILE) /* add MMDF delim */ + #define ft_checkcloser(type) ((type)>ft_MH) + #define ft_forceblank(type) ((type)!=ft_MAILDIR) /* force blank line at end */ +--- procmail-3.22.orig/src/mailfold.c ++++ procmail-3.22/src/mailfold.c +@@ -378,7 +378,8 @@ + dfilled=mailread=0; + else if(rhead) /* only read in a new header */ + { memblk new; +- dfilled=mailread=0;makeblock(&new,0);readdyn(&new,&dfilled,0); ++ dfilled=mailread=0;makeblock(&new,0); ++ readdyn(&new,&dfilled,thebody-themail.p); + if(tobesent>dfilled&&isprivate) /* put it in place here */ + { tmemmove(themail.p+dfilled,thebody,filled-=tobesent); + tmemmove(themail.p,new.p,dfilled); +--- procmail-3.22.orig/FAQ ++++ procmail-3.22/FAQ +@@ -57,8 +57,8 @@ + Forward to |/usr/bin/procmail + or if that doesn't work, try: + Pipe to /usr/bin/procmail +- as the only line in your mail spool file (e.g. /usr/mail/$LOGNAME), as +- well as doing a "chmod 06660 /usr/mail/$LOGNAME". For more information ++ as the only line in your mail spool file (e.g. /var/mail/$LOGNAME), as ++ well as doing a "chmod 06660 /var/mail/$LOGNAME". For more information + on such systems, do a "man mail". + + If all of this doesn't work, procmail can be called on a periodical +@@ -210,14 +210,14 @@ + procmail with both the fcntl() and lockf() locking method + disabled (see config.h). + +-17. I sometimes get these `Lock failure on "/usr/mail/$LOGNAME.lock"' errors ++17. I sometimes get these `Lock failure on "/var/mail/$LOGNAME.lock"' errors + from procmail. What do I do about it? + + The problem here is that as long as procmail has not read a + $HOME/.procmailrc file, it can hang on to the sgid mail permission +- (which it needs in order to create a lockfile in /usr/mail). ++ (which it needs in order to create a lockfile in /var/mail). + I.e. if procmail delivers mail to a user without a $HOME/.procmailrc +- file, procmail *can* (and does) use the /usr/mail/$LOGNAME.lock file. ++ file, procmail *can* (and does) use the /var/mail/$LOGNAME.lock file. + + If, however, it finds a $HOME/.procmailrc file, procmail has to let go + of the sgid mail permission because otherwise any ordinary user could +@@ -226,7 +226,7 @@ + There are several solutions to this problem: + - Some systems support the sticky bit on directories (when set only + allows the owner of a file in that directory to rename or remove +- it). This enables you to make /usr/spool/mail drwxrwxrwt. It is ++ it). This enables you to make /var/mail drwxrwxrwt. It is + thus effectively world writable, but all the mailboxes in it are + protected because only the mailbox owner can remove or rename it. + - If your system did not exhibit the !@#$%^&* POSIX semantics for +@@ -245,9 +245,9 @@ + :0 + $DEFAULT + +- - You could, instead of using /usr/mail/$LOGNAME, use a file below ++ - You could, instead of using /var/mail/$LOGNAME, use a file below + your home directory as your default mailbox. +- - Or, you could still use /usr/mail/$LOGNAME as the mailbox, but ++ - Or, you could still use /var/mail/$LOGNAME as the mailbox, but + simply instruct procmail to use a different lockfile. This can + be achieved by putting following recipe at the bottom of + your .procmailrc file: +--- procmail-3.22.orig/FEATURES ++++ procmail-3.22/FEATURES +@@ -30,7 +30,7 @@ + per message, the similar MH directory folders (numbered files), + and Maildir directory folders (a multi-directory format that requires + no locking) +- + Native support for /var/spool/mail/b/a/bar type mailspools ++ + Native support for /var/mail/b/a/bar type mailspools + + Variable assignment and substitution is an extremely complete subset + of the standard /bin/sh syntax + + Provides a mail log file, which logs all mail arrival, shows +--- procmail-3.22.orig/Makefile ++++ procmail-3.22/Makefile +@@ -65,7 +65,7 @@ + # Only edit below this line if you *think* you know what you are doing # + ######################################################################## + +-#LOCKINGTEST=100 # Uncomment (and change) if you think you know ++LOCKINGTEST=100 # Uncomment (and change) if you think you know + # it better than the autoconf lockingtests. + # This will cause the lockingtests to be hotwired. + # 100 to enable fcntl() +@@ -79,7 +79,7 @@ + # -lresolv # not really needed, is it? + + # Informal list of directories where we look for the libraries in SEARCHLIBS +-LIBPATHS=/lib /usr/lib /usr/local/lib ++LIBPATHS=/lib /usr/lib + + GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \ + -Wpointer-arith -Wconversion -Waggregate-return \ +--- procmail-3.22.orig/config.h ++++ procmail-3.22/config.h +@@ -33,8 +33,8 @@ + * override those settings you should uncomment and possibly change the + * DEFSPATH and DEFPATH defines below + */ +-/*#define DEFSPATH "PATH=/bin:/usr/bin" /* */ +-/*#define DEFPATH "PATH=$HOME/bin:/bin:/usr/bin" /* */ ++#define DEFSPATH "PATH=/usr/local/bin:/usr/bin:/bin" /* */ ++#define DEFPATH "PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin" /* */ + + /* every environment variable appearing in PRESTENV will be set or wiped + * out of the environment (variables without an '=' sign will be thrown +@@ -46,7 +46,7 @@ + */ + #define PRESTENV {"IFS","ENV","PWD",0} + +-/*#define GROUP_PER_USER /* uncomment this if each ++#define GROUP_PER_USER /* uncomment this if each + user has his or her own + group and procmail can therefore trust a $HOME/.procmailrc that + is group writable or contained in a group writable home directory +@@ -98,7 +98,7 @@ + mail present. procmail automatically suppresses this when it isn't + needed or under heavy load. */ + +-/*#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if ++#define DEFsendmail "/usr/sbin/sendmail" /* uncomment and/or change if + the autoconfigured default + SENDMAIL is not suitable. This program should quack like a sendmail: + it should accept the -oi flag (to tell it to _not_ treat a line +--- procmail-3.22.orig/debian/changelog ++++ procmail-3.22/debian/changelog +@@ -0,0 +1,278 @@ ++procmail (3.22-5) stable; urgency=medium ++ ++ * Patched pipes.c to fix a memory allocation bug (Closes: #171514). ++ ++ -- Santiago Vila Thu, 26 Dec 2002 18:09:38 +0100 ++ ++procmail (3.22-4) unstable; urgency=low ++ ++ * Fixed a typo in procmail(1). Patch by the author (Closes: #142983). ++ ++ -- Santiago Vila Tue, 16 Apr 2002 19:16:20 +0200 ++ ++procmail (3.22-3) unstable; urgency=medium ++ ++ * Fixed off-by-one bug in procmail.c which made the raw flag not to be ++ cleared properly. Thanks to Gregory Stark (Closes: #134341). ++ ++ -- Santiago Vila Sun, 17 Feb 2002 16:43:02 +0100 ++ ++procmail (3.22-2) unstable; urgency=medium ++ ++ * Modified mailfold.c to fix a segfault problem. Patch by the author. ++ * The system-wide mail directory is /var/mail as per policy. ++ ++ -- Santiago Vila Thu, 29 Nov 2001 09:39:04 +0100 ++ ++procmail (3.22-1) unstable; urgency=low ++ ++ * New upstream release, which uses the `standard' format for Maildir ++ filenames and retries on name collision. It also contains some ++ bug fixes from the 3.23pre snapshot dated 2001-09-13. ++ * Removed `sendmail' from the Recommends field, since we already ++ have `exim' (the default Debian MTA) and `mail-transport-agent'. ++ * Removed suidmanager support. Conflicts: suidmanager (<< 0.50). ++ * Added support for DEB_BUILD_OPTIONS in the source package. ++ * README.Maildir: Do not use locking on the example recipe, ++ since it's wrong to do so in this case. ++ ++ -- Santiago Vila Wed, 21 Nov 2001 09:40:20 +0100 ++ ++procmail (3.15.2-1) stable; urgency=high ++ ++ * New upstream release, with improved security and robustness involving ++ signal handlers. Author recommends upgrading to this version on ++ any system where it is installed setuid or setgid. ++ * This release fixes also Bug #108417: procmail -p -m resets PATH. ++ ++ -- Santiago Vila Thu, 30 Aug 2001 20:05:06 +0200 ++ ++procmail (3.15.1-4) unstable; urgency=low ++ ++ * Don't add an extra newline when delivering to a Maildir folder. ++ Please note that the MTA may still add a newline on their own. ++ Exim users should check the `suffix' variable, for example. ++ Patch by the author. Closes: #78623. ++ ++ -- Santiago Vila Sat, 14 Apr 2001 17:18:29 +0200 ++ ++procmail (3.15.1-3) unstable; urgency=low ++ ++ * Clarified formail -X behaviour, patch by the author (Closes: #77388). ++ * Updated QuickStart. ++ ++ -- Santiago Vila Sun, 25 Mar 2001 10:45:56 +0200 ++ ++procmail (3.15.1-2) unstable; urgency=low ++ ++ * Fixed lockfile -l endless loop (Closes: #82006). Patch by the author. ++ ++ -- Santiago Vila Sun, 28 Jan 2001 19:44:49 +0100 ++ ++procmail (3.15.1-1) unstable; urgency=low ++ ++ * New upstream release. A race to create the mailspool would bounce one of ++ the messages due to an internal error. ++ ++ -- Santiago Vila Mon, 8 Jan 2001 20:09:34 +0100 ++ ++procmail (3.15-3) unstable; urgency=low ++ ++ * Fixed formatting error in procmailrc(5). Patch by the author. ++ (Closes: #80437). ++ ++ -- Santiago Vila Sun, 31 Dec 2000 17:20:47 +0100 ++ ++procmail (3.15-2) unstable; urgency=low ++ ++ * formail -l is now documented. Patch by the author (Closes: #72275). ++ ++ -- Santiago Vila Fri, 1 Dec 2000 19:54:22 +0100 ++ ++procmail (3.15-1) unstable; urgency=low ++ ++ * New upstream release. Maildir support is now built-in. ++ * Really change default PATH to "$HOME/bin:/usr/local/bin:/usr/bin:/bin". ++ * Modified the note in QuickStart about refiltering an old mail folder. ++ * Use SEARCHLIBS="" in debian/rules clean target to speed it up. ++ * Modified ft_dotlock in src/foldinfo.h to be in compliance with ++ locking policy, following a hint by the author. ++ * Removed (versioned) dependency on debianutils, since mailstat ++ does not use temporary files anymore. ++ * Made the .forward example in procmail(1) not to depend on the build ++ environment by modifying src/autoconf so that buggy_SENDMAIL is ++ never defined. ++ ++ -- Santiago Vila Mon, 28 Aug 2000 12:51:05 +0200 ++ ++procmail (3.13.1-4) stable; urgency=high ++ ++ * Fixed weird formail -rk behavior (patch from the author, backported ++ from procmail-3.15). Thanks to Ben Collins for the report. ++ * s/smail/exim/ in `Recommends:' field. ++ ++ -- Santiago Vila Tue, 22 Aug 2000 13:04:50 +0200 ++ ++procmail (3.13.1-3) unstable; urgency=medium ++ ++ * Standards-Version: 3.1.1 ++ * Updated location of licenses in copyright file. ++ * LOCKINGTEST=100 again, to use fcntl() and dot-locking, as required by ++ latest policy. ++ ++ -- Santiago Vila Wed, 1 Dec 1999 12:37:35 +0100 ++ ++procmail (3.13.1-2) unstable; urgency=low ++ ++ * Modified procmail(1) and QuickStart to reflect the fact that exim does ++ not accept the exec keyword in .forward files (Bugs #33460 and #37771). ++ * Modified formail to recognize exim's Envelope-To: header (Bug#40718). ++ Patch by Philip Guenther. ++ * Standards-Version: 3.0.0. ++ ++ -- Santiago Vila Mon, 19 Jul 1999 20:09:25 +0200 ++ ++procmail (3.13.1-1) stable unstable; urgency=high ++ ++ * New upstream release, 3.13 missed a couple possible overflows. ++ * Applied `procmail-locking.patch' from Bruce Guenter, since ++ no directory delivery mechanism requires locking (Bug #35210). ++ ++ -- Santiago Vila Thu, 8 Apr 1999 13:56:33 +0200 ++ ++procmail (3.13-1) stable unstable; urgency=high ++ ++ * New upstream release. procmail 3.12 breaks smartlist (Bug #35115). ++ ++ -- Santiago Vila Fri, 2 Apr 1999 14:24:24 +0200 ++ ++procmail (3.12-1) frozen unstable; urgency=high ++ ++ * New upstream release. Fixes some security bugs. ++ * #define GROUP_PER_USER in config.h to allow writeable rcfiles when ++ the group is the user's default group. ++ * Added KNOWN_BUGS to the doc directory. ++ * suid procmail to avoid non-suidness window when upgrading. ++ ++ -- Santiago Vila Thu, 4 Mar 1999 10:28:28 +0100 ++ ++procmail (3.10.7-7) frozen unstable; urgency=medium ++ ++ * New Maildir patches from Bruce Guenter. ++ Should fix Bug #30320: procmail: maildir does not use From_ lines. ++ ++ -- Santiago Vila Thu, 31 Dec 1998 13:27:20 +0100 ++ ++procmail (3.10.7-6) frozen unstable; urgency=medium ++ ++ * Patched mailfold.c to avoid the unnecessary one second wait when ++ delivering to MH folders (patch by the author). ++ * src/locking.c: Applied a bugfix patch from the author. ++ ++ -- Santiago Vila Wed, 13 May 1998 21:50:19 +0200 ++ ++procmail (3.10.7-5) frozen unstable; urgency=medium ++ ++ * Added a patch for Maildir support. The "new" procmail should be ++ completely backwards compatible with the "previous" one, in the ++ sense that its behaviour should be just the same for already ++ existing .procmailrc files which do not use the new syntax for ++ Maildir folders. ++ * Added a small README.Maildir explaining how to use this feature. ++ ++ -- Santiago Vila Mon, 4 May 1998 19:39:55 +0200 ++ ++procmail (3.10.7-4) frozen unstable; urgency=low ++ ++ * Added a small note in QuickStart about refiltering an old mail folder. ++ * mailstat(1): The log file is truncated to zero length (Bug #21022). ++ * PATH=/usr/local/bin:/usr/bin:/bin for the example in procmail(1). ++ * Standards-Version: 2.4.1. ++ ++ -- Santiago Vila Fri, 17 Apr 1998 18:00:14 +0200 ++ ++procmail (3.10.7-3) frozen unstable; urgency=medium ++ ++ * Patched src/recommend.c so that the mail spool directory is not ++ touched. This will allow the package to be built using fakeroot. ++ * Patched mailstat so that it uses tempfile. ++ ++ -- Santiago Vila Tue, 24 Mar 1998 21:43:08 +0100 ++ ++procmail (3.10.7-2) unstable; urgency=low ++ ++ * Default PATH is now "$HOME/bin:/usr/local/bin:/usr/bin:/bin". ++ * Added "fetchmail" to the Recommends: line as one more option. ++ * Added /usr/doc/procmail/QuickStart (experimental). ++ * Compressed changelog.Debian. ++ * Removed debstd dependency. ++ * Pristine source. ++ ++ -- Santiago Vila Sat, 31 Jan 1998 20:30:06 +0100 ++ ++procmail (3.10.7-1) unstable; urgency=low ++ ++ * Upgraded to 3.11pre7. Sources are now GPLed, hurrah! ++ * Added explicit SEARCHLIBS, to avoid unneeded dependency on libdl. ++ * First libc6 release. ++ ++ -- Santiago Vila Wed, 18 Jun 1997 20:43:28 +0200 ++ ++procmail (3.10.4-2) frozen unstable; urgency=low ++ ++ * Rebuilt using latest debmake to avoid a problem with suidmanager. ++ ++ -- Santiago Vila Sat, 17 May 1997 20:52:59 +0200 ++ ++procmail (3.10.4-1) frozen unstable; urgency=low ++ ++ * Upgraded to 3.11pre4. Side effect: It can be built using libc6. ++ * Removed NFS_ATIME_HACK patch, since it is no longer needed. ++ ++ -- Santiago Vila Sat, 12 Apr 1997 19:06:46 +0200 ++ ++procmail (3.10-8) unstable; urgency=low ++ ++ * Rewritten copyright file. ++ * initmake unmodified (source). ++ * Patched to recognize NFS_ATIME_HACK variable in .procmailrc or ++ /etc/procmailrc. Default value is "yes" (i.e. wait a second). ++ * Added a small note about this in /usr/doc/procmail/README.Debian. ++ ++ -- Santiago Vila Sun, 23 Mar 1997 12:04:34 +0100 ++ ++procmail (3.10-7) unstable; urgency=low ++ ++ * Put CFLAGS settings &c in ./Makefile, not in debian/rules. ++ * Removed fix-substvars script, since it's no longer needed with ++ new libc5-5.4.20. ++ * Man page for mailstat changed slightly. ++ * Some minor debian/rules changes. ++ * Added MD5 sums. ++ ++ -- Santiago Vila Fri, 21 Feb 1997 20:53:30 +0100 ++ ++procmail (3.10-6) unstable; urgency=low ++ ++ * Use debmake. ++ * suidmanager support. ++ * Removed `mailstat' from examples, it's already in /usr/bin. ++ * Removed also `dirname' (which was "for the deprived"). ++ * Added `fix-substvars' script to depend on libc5 >= 5.4.0. ++ ++ -- Santiago Vila Mon, 23 Dec 1996 16:34:02 +0100 ++ ++procmail (3.10-5) unstable; urgency=low ++ ++ * Updated to Standards-Version 2.1.2.2. ++ * Changed "Depends: MTA" to "Recommends: MTA". ++ * Added extended package description in control file. ++ * Added the symlink changelog.gz -> HISTORY.gz. ++ * Added an "experimental" man page for mailstat. ++ * New maintainer. ++ ++ -- Santiago Vila Sat, 21 Dec 1996 23:32:11 +0100 ++ ++Local variables: ++mode: debian-changelog ++End: +--- procmail-3.22.orig/debian/control ++++ procmail-3.22/debian/control +@@ -0,0 +1,18 @@ ++Source: procmail ++Section: mail ++Priority: standard ++Maintainer: Santiago Vila ++Standards-Version: 3.5.6 ++ ++Package: procmail ++Architecture: any ++Depends: ${shlibs:Depends} ++Conflicts: suidmanager (<< 0.50) ++Recommends: exim | mail-transport-agent | fetchmail ++Description: Versatile e-mail processor. ++ Can be used to create mail-servers, mailing lists, sort your incoming ++ mail into separate folders/files (real convenient when subscribing to one ++ or more mailing lists or for prioritising your mail), preprocess your ++ mail, start any programs upon mail arrival (e.g. to generate different ++ chimes on your workstation for different types of mail) or selectively ++ forward certain incoming mail automatically to someone. +--- procmail-3.22.orig/debian/copyright ++++ procmail-3.22/debian/copyright +@@ -0,0 +1,41 @@ ++This is the Debian prepackaged version of the "procmail" mail-processing ++program written by Stephen van den Berg. ++ ++This package is currently maintained by Santiago Vila . ++The source for this release was downloaded from: ++ ++ftp://ftp.procmail.org/pub/procmail/procmail-3.22.tar.gz ++ ++This package was first put together by Bruce Perens , ++who added Debian package maintenance system files, and edited config.h ++to configure for Debian. ++ ++Copyright: ++ ++Procmail & formail mail processing package. ++Copyright (c) 1990-1999, S.R. van den Berg, The Netherlands. ++Copyright (c) 1999-2001, Philip Guenther, The United States of America ++ ++This package is open source software; you can redistribute it and/or ++modify it under the terms of either: ++- the GNU General Public License as published by the Free Software Foundation ++ and can be found in the included file called "COPYING"; either version 2, ++ or (at your option) any later version, or ++- the "Artistic License" which can be found in the included file called ++ "Artistic". ++ ++This package is distributed in the hope that it will be useful, but without ++any warranty; without even the implied warranty of merchantability or fitness ++for a particular purpose. See either the GNU General Public License or the ++Artistic License for more details. ++ ++For those of you that choose to use the GNU General Public License, ++my interpretation of the GNU General Public License is that no procmailrc ++script falls under the terms of the GPL unless you explicitly put ++said script under the terms of the GPL yourself. ++ ++ ++On Debian systems, the complete text of the GNU General Public License ++can be found in `/usr/share/common-licenses/GPL', and the complete ++text of the "Artistic License" can be found in ++`/usr/share/common-licenses/Artistic'. +--- procmail-3.22.orig/debian/mailstat.1 ++++ procmail-3.22/debian/mailstat.1 +@@ -0,0 +1,40 @@ ++.TH MAILSTAT 1 ++.SH NAME ++mailstat \- shows mail-arrival statistics ++.SH SYNOPSIS ++.B mailstat ++[\-klmots] [logfile] ++.SH DESCRIPTION ++.B mailstat ++parses a procmail-generated $LOGFILE and displays ++a summary about the messages delivered to all folders ++(total size, average size, nr of messages). ++The $LOGFILE is truncated to zero length, unless the ++.B -k ++option is used. ++Exit code 0 if mail arrived, 1 if no mail arrived. ++.SH OPTIONS ++.TP ++.I \-k ++keep logfile intact ++.TP ++.I \-l ++long display format ++.TP ++.I \-m ++merge any errors into one line ++.TP ++.I \-o ++use the old logfile ++.TP ++.I \-t ++terse display format ++.TP ++.I \-s ++silent in case of no mail ++.SH NOTES ++Customise to your heart's content, this program is only provided as a ++guideline. ++.SH AUTHOR ++This manual page was written by Santiago Vila ++for the Debian GNU/Linux distribution (but may be used by others). +--- procmail-3.22.orig/debian/mk-symlinks ++++ procmail-3.22/debian/mk-symlinks +@@ -0,0 +1,28 @@ ++#!/bin/sh ++package=$1 ++debiandir=debian/tmp/DEBIAN ++if [ "$2" != "" ]; then ++ debiandir=debian/$2/DEBIAN ++fi ++if [ ! -f $debiandir/postinst ]; then ++ echo "#!/bin/sh" > $debiandir/postinst ++ echo "set -e" >> $debiandir/postinst ++ chmod 755 $debiandir/postinst ++fi ++if [ ! -f $debiandir/prerm ]; then ++ echo "#!/bin/sh" > $debiandir/prerm ++ echo "set -e" >> $debiandir/prerm ++ chmod 755 $debiandir/prerm ++fi ++cat << EOF >> $debiandir/postinst ++if [ "\$1" = "configure" ]; then ++ if [ -d /usr/doc -a ! -e /usr/doc/$package -a -d /usr/share/doc/$package ]; then ++ ln -sf ../share/doc/$package /usr/doc/$package ++ fi ++fi ++EOF ++cat << EOF >> $debiandir/prerm ++if [ \( "\$1" = "upgrade" -o "\$1" = "remove" \) -a -L /usr/doc/$package ]; then ++ rm -f /usr/doc/$package ++fi ++EOF +--- procmail-3.22.orig/debian/QuickStart ++++ procmail-3.22/debian/QuickStart +@@ -0,0 +1,97 @@ ++procmail QuickStart ++=================== ++ ++* procmail is not an `interactive' program. It has to run automatically ++when the mail arrives. Therefore the first thing to do is to tell our MTA ++that we want procmail to "eat" all our mail messages. The way of doing ++this depends on the MTA we are using. For example, if we are using ++sendmail, it will suffice to have a .forward file like this in our home ++directory: ++ ++"|exec /usr/bin/procmail" ++ ++(don't forget the quotes, they are needed in this case). ++ ++If you are using exim, use this instead as your .forward file: ++ ++|/usr/bin/procmail ++ ++The step of creating a .forward file is not needed if the MTA already ++performs the delivery using procmail. For example, Debian sendmail will ++automatically use procmail for mail delivering if the sendmail.cf is ++generated from a sendmail.mc file containing this line: ++ ++FEATURE(local_procmail)dnl ++ ++ ++* If we have a stand-alone system with no permanent net connection (like ++PPP), and we are using fetchmail to get mail from a server, we don't ++really need a MTA. Just adding --mda "formail -s procmail" to the ++fetchmail command line (or using the `mda' keyword) will tell it to ++deliver through procmail. ++ ++ ++* Next, we have to write a ~/.procmailrc file in our home directory. This ++file is a set of filtering rules, based on regular expressions. The ++complete syntax is explained in procmailrc(5). Let's see a real example ++just to get started. Let's suppose you are subscribed to the following two ++mailing lists: ++ ++linux-kernel@vger.kernel.org ++debian-user@lists.debian.org ++ ++The first list is managed by Majordomo. Messages coming from a Majordomo ++list often include a header field "Sender: " which allow easy filtering. ++ ++The second list is managed my SmartList. Messages coming from a SmartList ++list may include several headers that can be used to filter it. One of ++them (in fact, the only that it is not X-whatever) is "Resent-Sender: ". ++ ++So the following .procmailrc will first filter the mailing lists, and ++any remaining message will go to the default folder: ++ ++*--------------------------------->8------------------------------------ ++PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin ++MAILDIR=$HOME/mail # you'd better make sure it exists ++DEFAULT=$MAILDIR/mbox # completely optional ++LOGFILE=$MAILDIR/procmail.log # recommended ++ ++:0: ++* ^Sender:.*linux-kernel-owner@vger.kernel.org ++linux-kernel ++ ++:0: ++* ^Resent-Sender.*debian-user-request@lists.debian.org ++debian-user ++*--------------------------------->8------------------------------------ ++ ++From this example additional rules for mailing lists may be created ++easily. ++ ++ ++* Once you have received lots of messages you will want to know where ++did they go. That's what the LOGFILE is for. There is a tool named ++mailstat which parses this file and shows a summary: ++ ++mailstat procmail.log ++ ++The mailstat command that this package provides does really come from the ++examples directory and it is installed by default. You may have your own ++modified copy in $HOME/bin, if you like. ++ ++ ++If you have to refilter an old mail folder according to your current ++~/.procmailrc file, you may do the following: ++ ++cat mbox | formail -s procmail ++ ++But of course if your mbox file is the target of a procmail recipe you should ++do this instead: ++ ++mv mbox whatever ++cat whatever | formail -s procmail ++ ++See formail(1) for details. ++ ++ ++Santiago Vila +--- procmail-3.22.orig/debian/README.Maildir ++++ procmail-3.22/debian/README.Maildir +@@ -0,0 +1,12 @@ ++This version of procmail supports Maildir folders. ++ ++To make procmail to deliver into a Maildir folder, just append ++a slash (/) to the name of the maildir folder in your ~/.procmailrc file. ++For example, the following rule: ++ ++:0 ++* ^Resent-Sender.*debian-user-request@lists.debian.org ++debian-user/ ++ ++will deliver all mail from the debian-user mailing list to the Maildir ++folder "debian-user". +--- procmail-3.22.orig/debian/rules ++++ procmail-3.22/debian/rules +@@ -0,0 +1,77 @@ ++#!/usr/bin/make -f ++ ++package = procmail ++docdir = debian/tmp/usr/share/doc/$(package) ++ ++CC = gcc ++CFLAGS0 = -O2 ++LDFLAGS0 = ++SEARCHLIBS = -lm ++STRIP = true ++ ++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) ++ CFLAGS0 += -g ++endif ++ ++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++ STRIP = strip --remove-section=.comment --remove-section=.note ++endif ++ ++build: ++ $(checkdir) ++ $(MAKE) CC="$(CC)" CFLAGS0="$(CFLAGS0)" LDFLAGS0="$(LDFLAGS0)" \ ++ SEARCHLIBS="$(SEARCHLIBS)" ++ touch build ++ ++clean: ++ $(checkdir) ++ -rm -f build ++ -$(MAKE) realclean SEARCHLIBS="" ++ -rm -f `find . -name "*~"` ++ -rm -rf debian/tmp debian/files* core debian/substvars ++ ++binary-indep: checkroot build ++ $(checkdir) ++ ++binary-arch: checkroot build ++ $(checkdir) ++ -rm -rf debian/tmp ++ install -d debian/tmp/DEBIAN $(docdir)/examples ++ cd debian/tmp && install -d usr/bin ++ $(MAKE) BASENAME=`pwd`/debian/tmp/usr install.man install-suid ++ $(STRIP) debian/tmp/usr/bin/procmail ++ $(STRIP) debian/tmp/usr/bin/lockfile ++ $(STRIP) debian/tmp/usr/bin/formail ++ cp -p debian/copyright $(docdir) ++ cp -p debian/changelog $(docdir)/changelog.Debian ++ install -m 644 debian/mailstat.1 debian/tmp/usr/man/man1 ++ cp -p FEATURES HISTORY README FAQ KNOWN_BUGS \ ++ debian/QuickStart debian/README.Maildir $(docdir) ++ cp -p examples/* $(docdir)/examples ++ cd $(docdir)/examples && rm -f dirname mailstat procmail-rpm.spec ++ cd $(docdir) && gzip -9 HISTORY changelog.Debian ++ ln -s HISTORY.gz $(docdir)/changelog.gz ++ mv debian/tmp/usr/man debian/tmp/usr/share ++ gzip -r9 debian/tmp/usr/share/man ++ dpkg-shlibdeps debian/tmp/usr/bin/* ++ sh debian/mk-symlinks $(package) ++ dpkg-gencontrol -isp ++ cd debian/tmp && md5sum `find * -type f ! -regex "DEBIAN/.*"` >DEBIAN/md5sums ++ chown -R root.root debian/tmp ++ chmod -R go=rX debian/tmp ++ chgrp mail debian/tmp/usr/bin/procmail debian/tmp/usr/bin/lockfile ++ chmod 6755 debian/tmp/usr/bin/procmail ++ chmod 2755 debian/tmp/usr/bin/lockfile ++ dpkg --build debian/tmp .. ++ ++define checkdir ++ test -f src/$(package).c -a -f debian/rules ++endef ++ ++binary: binary-indep binary-arch ++ ++checkroot: ++ $(checkdir) ++ test root = "`whoami`" ++ ++.PHONY: binary binary-arch binary-indep clean checkroot diff --git a/source/n/procmail/slack-desc b/source/n/procmail/slack-desc new file mode 100644 index 000000000..f017ef933 --- /dev/null +++ b/source/n/procmail/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +procmail: procmail (mail processing and local delivery program) +procmail: +procmail: Can be used to create mail-servers, mailing lists, sort your incoming +procmail: mail into separate folders/files (real convenient when subscribing to +procmail: one or more mailing lists or for prioritizing your mail), preprocess +procmail: your mail, start any programs upon mail arrival (e.g. to generate +procmail: different chimes on your workstation for different types of mail) or +procmail: selectively forward certain incoming mail automatically to someone. +procmail: Procmail is required by sendmail to deliver the local mail. +procmail: The author of procmail is Stephen R. van den Berg. +procmail: diff --git a/source/n/proftpd/doinst.sh b/source/n/proftpd/doinst.sh new file mode 100644 index 000000000..37fe02dd9 --- /dev/null +++ b/source/n/proftpd/doinst.sh @@ -0,0 +1,18 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/ftpusers.new +config etc/proftpd.conf.new + +# Remove any old proftpd files: +rm -f var/run/proftpd/proftpd* + diff --git a/source/n/proftpd/etc/ftpusers b/source/n/proftpd/etc/ftpusers new file mode 100644 index 000000000..d08f2a1fd --- /dev/null +++ b/source/n/proftpd/etc/ftpusers @@ -0,0 +1,22 @@ +# +# ftpusers This file describes the names of the users that may +# _*NOT*_ log into the system via the FTP server. +# This usually includes "root", "uucp", "news" and the +# like, because those users have too much power to be +# allowed to do "just" FTP... +# +# +# Version: @(#)/etc/ftpusers 3.00 02/25/2001 volkerdi +# +# Original Author: Fred N. van Kempen, +# +# The entire line gets matched, so no comments or extra characters on +# lines containing a username. +# +# To enable anonymous FTP, remove the "ftp" user: +ftp +root +uucp +news + +# End of ftpusers. diff --git a/source/n/proftpd/etc/proftpd.conf b/source/n/proftpd/etc/proftpd.conf new file mode 100644 index 000000000..ffb0df3fe --- /dev/null +++ b/source/n/proftpd/etc/proftpd.conf @@ -0,0 +1,74 @@ +# This is a basic ProFTPD configuration file. +# It establishes a single server and a single anonymous login. +# It assumes that you have a user/group "nobody" and "ftp" +# for normal/anonymous operation. + +ServerName "ProFTPD Default Installation" +#ServerType standalone +ServerType inetd +DefaultServer on + +# Port 21 is the standard FTP port. +Port 21 +# Umask 022 is a good standard umask to prevent new dirs and files +# from being group and world writable. +Umask 022 + +# To prevent DoS attacks, set the maximum number of child processes +# to 30. If you need to allow more than 30 concurrent connections +# at once, simply increase this value. Note that this ONLY works +# in standalone mode, in inetd mode you should use an inetd server +# that allows you to limit maximum number of processes per service +# (such as xinetd) +MaxInstances 30 + +# Set the user and group that the server normally runs at. +User nobody +Group nogroup + +# This next option is required for NIS or NIS+ to work properly: +#PersistentPasswd off + +SystemLog /var/log/proftpd.log +TransferLog /var/log/xferlog + +# Normally, we want files to be overwriteable. + + AllowOverwrite on + + +# A basic anonymous FTP server configuration. +# To enable this, remove the user ftp from /etc/ftpusers. + + RequireValidShell off + User ftp + Group ftp + # We want clients to be able to login with "anonymous" as well as "ftp" + UserAlias anonymous ftp + + # Limit the maximum number of anonymous logins + MaxClients 50 + + # We want 'welcome.msg' displayed at login, and '.message' displayed + # in each newly chdired directory. + DisplayLogin welcome.msg + DisplayChdir .message + + # Limit WRITE everywhere in the anonymous chroot + + DenyAll + + + # An upload directory that allows storing files but not retrieving + # or creating directories. +# +# +# DenyAll +# +# +# +# AllowAll +# +# + + diff --git a/source/n/proftpd/proftpd.SlackBuild b/source/n/proftpd/proftpd.SlackBuild new file mode 100755 index 000000000..b004745ab --- /dev/null +++ b/source/n/proftpd/proftpd.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.3.2 +DIRVER=1.3.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-proftpd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf proftpd-$VERSION +tar xvf $CWD/proftpd-$VERSION.tar.bz2 || exit 1 +cd proftpd-$DIRVER || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --enable-autoshadow \ + --enable-ctrls \ + --enable-ipv6 \ + --localstatedir=/var/run \ + --with-modules=mod_readme:mod_ratio:mod_tls:mod_wrap:mod_ctrls_admin \ + --build=$ARCH-slackware-linux +# This caused funny messages about "Quotas off" with every FTP command, +# and mod_wrap gets a compile error: +# --with-modules= ... mod_quota ... + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# With no library to link against, these are useless: +rm -rf $PKG/usr/include +rm -f $PKG/etc/* +rmdir $PKG/usr/libexec 2> /dev/null + +cat $CWD/etc/proftpd.conf > $PKG/etc/proftpd.conf.new +cat $CWD/etc/ftpusers > $PKG/etc/ftpusers.new +mkdir -p $PKG/home/ftp + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/usr/doc/proftpd-$VERSION +cp -a COPYING CREDITS INSTALL NEWS README* \ + contrib/README.mod_wrap contrib/README.ratio \ + $PKG/usr/doc/proftpd-$VERSION +head -c 93 ChangeLog > $PKG/usr/doc/proftpd-$VERSION/ChangeLog +touch -r ChangeLog $PKG/usr/doc/proftpd-$VERSION/ChangeLog +cp -a contrib/README $PKG/usr/doc/proftpd-$VERSION/README.contrib +cp -a doc sample-configurations $PKG/usr/doc/proftpd-$VERSION +# Bloat removal: +( cd $PKG/usr/doc + find . -name "*.sgml" -exec rm {} \; + find . -name "*.pdf" -exec rm {} \; +) +rmdir $PKG/usr/share/locale +rmdir $PKG/usr/share + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/proftpd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/proftpd/slack-desc b/source/n/proftpd/slack-desc new file mode 100644 index 000000000..5ed80ca92 --- /dev/null +++ b/source/n/proftpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +proftpd: proftpd (FTP server daemon) +proftpd: +proftpd: ProFTPD is the Professional File Transfer Protocol (FTP) server +proftpd: daemon. ProFTPD grew out of the desire to have a secure and +proftpd: configurable FTP server, and out of a significant admiration of the +proftpd: Apache web server. +proftpd: +proftpd: +proftpd: +proftpd: +proftpd: diff --git a/source/n/pssh/pssh.SlackBuild b/source/n/pssh/pssh.SlackBuild new file mode 100755 index 000000000..8bb3dcbe9 --- /dev/null +++ b/source/n/pssh/pssh.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# required: package "python" version 2.2 or higher installed + +VERSION=1.3.1 +ARCH=${ARCH:-x86_64} # Note that the package will be created as 'noarch' ! +BUILD=1 + +PREFIX=/usr + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-pssh +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf pssh-$VERSION +tar xvf $CWD/pssh-$VERSION.tar.gz || exit 1 +cd pssh-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +for binary in bin/* ; do + # Fix an error from the author + sed -r "s|basedir\)|basedir + \"/lib${LIBDIRSUFFIX}\")|" \ + < $binary > $binary.tmp + cp $binary.tmp $binary + rm -f $binary.tmp +done + +mkdir -p $PKG/$PREFIX/bin +cp -a bin/* $PKG/$PREFIX/bin/. + +for library in psshlib/* ; do + # This will force removepkg to remove all runtime-compiled *.pyc files + touch ${library}c +done + +mkdir -p $PKG/$PREFIX/lib${LIBDIRSUFFIX} +cp -a psshlib $PKG/$PREFIX/lib${LIBDIRSUFFIX}/. + +mkdir -p $PKG/$PREFIX/doc/pssh-$VERSION +cp -a \ + AUTHORS BUGS COPYING ChangeLog INSTALL PKG-INFO TODO \ + doc/pssh*html $PKG/$PREFIX/doc/pssh-$VERSION/. + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/pssh-$VERSION-noarch-$BUILD.txz + diff --git a/source/n/pssh/slack-desc b/source/n/pssh/slack-desc new file mode 100644 index 000000000..42d25006f --- /dev/null +++ b/source/n/pssh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pssh: pssh (tools for collective remote system management) +pssh: +pssh: Pssh, a.k.a. "parallel ssh", are Python-written wrapper scripts for +pssh: OpenSSH and rsync tools. They are useful for simultaneous control +pssh: of large number of machines, using parallel ssh sessions. Included +pssh: are parallel versions of ssh, scp, and rsync, as well as a parallel +pssh: kill command. +pssh: +pssh: Pssh has been written by Brent N. Chun, and requires the python +pssh: package installed. +pssh: diff --git a/source/n/pth/pth.SlackBuild b/source/n/pth/pth.SlackBuild new file mode 100755 index 000000000..1c2be6051 --- /dev/null +++ b/source/n/pth/pth.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/sh + +# Copyright 2006 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PRGNAM=pth +VERSION=2.0.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/pkg-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Do not enable pthread here - if you do, it overwrites glibc's +# /usr/include/pthread.h, which will later cause a conflict +# when building gpgme +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --infodir=/usr/info \ + --enable-shared=yes \ + --enable-static=no \ + --enable-pthread=no \ + --build=$ARCH-slackware-linux \ + --host=$ARCH-slackware-linux + +# This one doesn't parallelize well. +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +if [ -d $PKG/usr/info ]; then + rm -f $PKG/usr/info/dir + gzip -9 $PKG/usr/info/*.info +fi + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ANNOUNCE AUTHORS COPYING HACKING HISTORY INSTALL NEWS PORTING \ + README SUPPORT TESTS THANKS USERS \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/pth/slack-desc b/source/n/pth/slack-desc new file mode 100644 index 000000000..ae4bd9071 --- /dev/null +++ b/source/n/pth/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pth: pth (GNU Portable Threads) +pth: +pth: Pth is a very portable POSIX/ANSI-C based library for Unix platforms +pth: which provides non-preemptive priority-based scheduling for multiple +pth: threads of execution (aka `multithreading') inside event-driven +pth: applications. All threads run in the same address space of the +pth: server application, but each thread has its own individual +pth: program-counter, run-time stack, signal mask and errno variable. +pth: +pth: +pth: diff --git a/source/n/rdist/rdist-6.1.5-bison.diff b/source/n/rdist/rdist-6.1.5-bison.diff new file mode 100644 index 000000000..a09130abd --- /dev/null +++ b/source/n/rdist/rdist-6.1.5-bison.diff @@ -0,0 +1,142 @@ +--- rdist-6.1.5/src/gram.y.bison 1998-11-10 05:10:42.000000000 +0100 ++++ rdist-6.1.5/src/gram.y 2003-06-04 16:02:19.000000000 +0200 +@@ -90,10 +90,10 @@ + struct namelist *namel; + } + +-%type OPTION, options +-%type NAME, STRING +-%type INSTALL, NOTIFY, EXCEPT, PATTERN, SPECIAL, CMDSPECIAL, cmdlist, cmd +-%type namelist, names, opt_namelist nlist ++%type OPTION options ++%type NAME STRING ++%type INSTALL NOTIFY EXCEPT PATTERN SPECIAL CMDSPECIAL cmdlist cmd ++%type namelist names opt_namelist nlist + + %% + +@@ -101,19 +101,19 @@ + | file command + ; + +-command: NAME '=' namelist = { ++command: NAME '=' namelist { + (void) lookup($1, INSERT, $3); + } +- | namelist ARROW namelist cmdlist = { ++ | namelist ARROW namelist cmdlist { + insert((char *)NULL, $1, $3, $4); + } +- | NAME COLON namelist ARROW namelist cmdlist = { ++ | NAME COLON namelist ARROW namelist cmdlist { + insert($1, $3, $5, $6); + } +- | namelist DCOLON NAME cmdlist = { ++ | namelist DCOLON NAME cmdlist { + append((char *)NULL, $1, $3, $4); + } +- | NAME COLON namelist DCOLON NAME cmdlist = { ++ | NAME COLON namelist DCOLON NAME cmdlist { + append($1, $3, $5, $6); + } + | error +@@ -133,10 +133,10 @@ + } + ; + +-nlist: NAME = { ++nlist: NAME { + $$ = makenl($1); + } +- | '(' names ')' = { ++ | '(' names ')' { + $$ = $2; + } + ; +@@ -144,7 +144,7 @@ + names: /* VOID */ { + $$ = last_n = NULL; + } +- | names NAME = { ++ | names NAME { + if (last_n == NULL) + $$ = last_n = makenl($2); + else { +@@ -158,7 +158,7 @@ + cmdlist: /* VOID */ { + $$ = last_sc = NULL; + } +- | cmdlist cmd = { ++ | cmdlist cmd { + if (last_sc == NULL) + $$ = last_sc = $2; + else { +@@ -169,7 +169,7 @@ + } + ; + +-cmd: INSTALL options opt_namelist ';' = { ++cmd: INSTALL options opt_namelist ';' { + register struct namelist *nl; + + $1->sc_options = $2 | options; +@@ -185,17 +185,17 @@ + } + $$ = $1; + } +- | NOTIFY namelist ';' = { ++ | NOTIFY namelist ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_VARS); + $$ = $1; + } +- | EXCEPT namelist ';' = { ++ | EXCEPT namelist ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $$ = $1; + } +- | PATTERN namelist ';' = { ++ | PATTERN namelist ';' { + struct namelist *nl; + char *cp, *re_comp(); + +@@ -205,13 +205,13 @@ + $1->sc_args = expand($2, E_VARS); + $$ = $1; + } +- | SPECIAL opt_namelist STRING ';' = { ++ | SPECIAL opt_namelist STRING ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $1->sc_name = $3; + $$ = $1; + } +- | CMDSPECIAL opt_namelist STRING ';' = { ++ | CMDSPECIAL opt_namelist STRING ';' { + if ($2 != NULL) + $1->sc_args = expand($2, E_ALL); + $1->sc_name = $3; +@@ -219,18 +219,18 @@ + } + ; + +-options: /* VOID */ = { ++options: /* VOID */ { + $$ = 0; + } +- | options OPTION = { ++ | options OPTION { + $$ |= $2; + } + ; + +-opt_namelist: /* VOID */ = { ++opt_namelist: /* VOID */ { + $$ = NULL; + } +- | namelist = { ++ | namelist { + $$ = $1; + } + ; diff --git a/source/n/rdist/rdist-6.1.5-cleanup.diff b/source/n/rdist/rdist-6.1.5-cleanup.diff new file mode 100644 index 000000000..194291348 --- /dev/null +++ b/source/n/rdist/rdist-6.1.5-cleanup.diff @@ -0,0 +1,2082 @@ +--- rdist-6.1.5/src/gram.y.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/gram.y 2003-12-17 11:38:16.000000000 +0100 +@@ -40,7 +40,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -170,7 +170,7 @@ + ; + + cmd: INSTALL options opt_namelist ';' { +- register struct namelist *nl; ++ struct namelist *nl; + + $1->sc_options = $2 | options; + if ($3 != NULL) { +@@ -240,11 +240,11 @@ + int yylineno = 1; + extern FILE *fin; + +-yylex() ++int yylex() + { + static char yytext[INMAX]; +- register int c; +- register char *cp1, *cp2; ++ int c; ++ char *cp1, *cp2; + static char quotechars[] = "[]{}*?$"; + + again: +@@ -409,8 +409,8 @@ + * some of the characters we use. + */ + extern int any(c, str) +- register int c; +- register char *str; ++ int c; ++ char *str; + { + while (*str) + if (c == *str++) +@@ -421,13 +421,14 @@ + /* + * Insert or append ARROW command to list of hosts to be updated. + */ ++void + insert(label, files, hosts, subcmds) + char *label; + struct namelist *files, *hosts; + struct subcmd *subcmds; + { +- register struct cmd *c, *prev, *nc; +- register struct namelist *h, *lasth; ++ struct cmd *c, *prev, *nc; ++ struct namelist *h, *lasth; + + debugmsg(DM_CALL, "insert(%s, %x, %x, %x) start, files = %s", + label == NULL ? "(null)" : label, +@@ -475,13 +476,14 @@ + * Append DCOLON command to the end of the command list since these are always + * executed in the order they appear in the distfile. + */ ++void + append(label, files, stamp, subcmds) + char *label; + struct namelist *files; + char *stamp; + struct subcmd *subcmds; + { +- register struct cmd *c; ++ struct cmd *c; + + c = ALLOC(cmd); + c->c_type = DCOLON; +@@ -501,6 +503,7 @@ + /* + * Error printing routine in parser. + */ ++void + yyerror(s) + char *s; + { +@@ -530,7 +533,7 @@ + makenl(name) + char *name; + { +- register struct namelist *nl; ++ struct namelist *nl; + + debugmsg(DM_CALL, "makenl(%s)", name == NULL ? "null" : name); + +@@ -627,7 +630,7 @@ + makesubcmd(type) + int type; + { +- register struct subcmd *sc; ++ struct subcmd *sc; + + sc = ALLOC(subcmd); + sc->sc_type = type; +--- rdist-6.1.5/src/rdist.c.cleanup 1998-11-10 05:13:50.000000000 +0100 ++++ rdist-6.1.5/src/rdist.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -80,7 +80,7 @@ + char *name; + struct namelist **hostlist; + { +- register struct namelist *ptr, *new; ++ struct namelist *ptr, *new; + + if (!name || !hostlist) + return; +@@ -97,14 +97,15 @@ + *hostlist = new; + } + ++int + main(argc, argv, envp) + int argc; + char *argv[]; + char **envp; + { + struct namelist *hostlist = NULL; +- register int x; +- register char *cp; ++ int x; ++ char *cp; + int cmdargs = 0; + int c; + +@@ -114,7 +115,7 @@ + */ + setprogname(argv); + +- if (cp = msgparseopts(localmsglist, TRUE)) { ++ if ((cp = msgparseopts(localmsglist, TRUE))) { + error("Bad builtin log option (%s): %s.", + localmsglist, cp); + usage(); +@@ -158,7 +159,7 @@ + while ((c = getopt(argc, argv, optchars)) != -1) + switch (c) { + case 'l': +- if (cp = msgparseopts(optarg, TRUE)) { ++ if ((cp = msgparseopts(optarg, TRUE))) { + error("Bad log option \"%s\": %s.", optarg,cp); + usage(); + } +@@ -206,7 +207,7 @@ + + case 'D': + debug = DM_ALL; +- if (cp = msgparseopts("stdout=all,debug", TRUE)) { ++ if ((cp = msgparseopts("stdout=all,debug", TRUE))) { + error("Enable debug messages failed: %s.", cp); + usage(); + } +@@ -245,7 +246,7 @@ + error("No path specified to \"-P\"."); + usage(); + } +- if (cp = searchpath(optarg)) ++ if ((cp = searchpath(optarg))) + path_remsh = strdup(cp); + else { + error("No component of path \"%s\" exists.", +@@ -297,7 +298,7 @@ + else { + if (fin == NULL) + fin = opendist(distfile); +- (void) yyparse(); ++ yyparse(); + /* + * Need to keep stdin open for child processing later + */ +@@ -348,6 +349,7 @@ + /* + * Print usage message and exit. + */ ++void + usage() + { + char *sopts = "cDFnv"; +@@ -379,12 +381,13 @@ + /* + * rcp like interface for distributing files. + */ ++void + docmdargs(nargs, args) + int nargs; + char *args[]; + { +- register struct namelist *nl, *prev; +- register char *cp; ++ struct namelist *nl, *prev; ++ char *cp; + struct namelist *files, *hosts; + struct subcmd *cmds; + char *dest; +@@ -433,10 +436,10 @@ + * Get a list of NAME blocks (mostly for debugging). + */ + extern char *getnlstr(nl) +- register struct namelist *nl; ++ struct namelist *nl; + { + static char buf[16384]; +- register int count = 0, len = 0; ++ int count = 0, len = 0; + + (void) sprintf(buf, "("); + +--- rdist-6.1.5/src/client.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/client.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -84,7 +84,7 @@ + int destdir; + { + extern struct namelist *filelist; +- register char *lname, *cp; ++ char *lname, *cp; + static char buff[BUFSIZ]; + int srclen, pathlen; + char *p; +@@ -146,7 +146,7 @@ + struct namelist *list; + char *file; + { +- register struct namelist *nl; ++ struct namelist *nl; + + for (nl = list; nl != NULL; nl = nl->n_next) + if (strcmp(file, nl->n_name) == 0) +@@ -163,7 +163,7 @@ + char *rname; + int destdir; + { +- register struct subcmd *sc; ++ struct subcmd *sc; + extern struct subcmd *subcmds; + char *rfile; + +@@ -200,7 +200,7 @@ + { + char *rfile; + struct namelist *new; +- register struct subcmd *sc; ++ struct subcmd *sc; + extern struct subcmd *subcmds; + int isokay = 0; + +@@ -227,7 +227,7 @@ + */ + static void freecmdspecialfiles() + { +- register struct namelist *ptr, *save; ++ struct namelist *ptr, *save; + + for (ptr = updfilelist; ptr; ) { + if (ptr->n_name) (void) free(ptr->n_name); +@@ -249,10 +249,8 @@ + char **filev; + opt_t opts; + { +- register struct subcmd *sc; +- register struct namelist *f; +- register char **cpp; +- char *file; ++ struct subcmd *sc; ++ struct namelist *f; + int first = TRUE; + + for (sc = cmd->c_cmds; sc != NULL; sc = sc->sc_next) { +@@ -294,7 +292,7 @@ + int checkfilename(name) + char *name; + { +- register char *cp; ++ char *cp; + + if (strchr(name, '\n')) { + for (cp = name; *cp; cp++) +@@ -501,7 +499,7 @@ + static int rmchk(opts) + opt_t opts; + { +- register u_char *s; ++ u_char *s; + struct stat stb; + int didupdate = 0; + int n; +@@ -618,7 +616,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if (!strcmp(dp->d_name, ".") || + !strcmp(dp->d_name, "..")) + continue; +@@ -631,7 +629,7 @@ + if (ptarget[-1] != '/') + *ptarget++ = '/'; + cp = dp->d_name; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (sendit(dp->d_name, opts, destdir) > 0) +@@ -770,13 +768,13 @@ + opt_t opts; + struct stat *statp; + { +- register off_t size; +- register time_t mtime; ++ off_t size; ++ time_t mtime; + unsigned short lmode; + unsigned short rmode; + char *owner = NULL, *group = NULL; + int done, n; +- u_char *cp; ++ char *cp; + + debugmsg(DM_CALL, "update(%s, 0x%x, 0x%x)\n", rname, opts, statp); + +@@ -1035,7 +1033,6 @@ + int destdir; + { + static struct stat stb; +- extern struct subcmd *subcmds; + char *user, *group; + int u, len; + int didupdate = 0; +@@ -1157,7 +1154,7 @@ + (void) unlink(statfile); + #endif + +- if (file = getnotifyfile()) ++ if ((file = getnotifyfile())) + (void) unlink(file); + } + +--- rdist-6.1.5/src/child.c.cleanup 1998-11-10 05:18:57.000000000 +0100 ++++ rdist-6.1.5/src/child.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -90,7 +90,7 @@ + static void removechild(child) + CHILD *child; + { +- register CHILD *pc, *prevpc; ++ CHILD *pc, *prevpc; + + debugmsg(DM_CALL, "removechild(%s, %d, %d) start", + child->c_name, child->c_pid, child->c_readfd); +@@ -148,7 +148,7 @@ + static CHILD *copychild(child) + CHILD *child; + { +- register CHILD *newc; ++ CHILD *newc; + + newc = (CHILD *) xmalloc(sizeof(CHILD)); + +@@ -167,7 +167,7 @@ + static void addchild(child) + CHILD *child; + { +- register CHILD *pc; ++ CHILD *pc; + + debugmsg(DM_CALL, "addchild() start\n"); + +@@ -280,7 +280,7 @@ + */ + static void reap() + { +- register CHILD *pc; ++ CHILD *pc; + int status = 0; + pid_t pid; + +@@ -336,7 +336,7 @@ + */ + static void childscan() + { +- register CHILD *pc, *nextpc; ++ CHILD *pc, *nextpc; + + debugmsg(DM_CALL, "childscan() start"); + +@@ -366,8 +366,8 @@ + extern void waitup() + { + #if defined(HAVE_SELECT) +- register int count; +- register CHILD *pc; ++ int count; ++ CHILD *pc; + fd_set rchildfds; + + debugmsg(DM_CALL, "waitup() start\n"); +--- rdist-6.1.5/src/docmd.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/docmd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -99,10 +99,10 @@ + */ + static void notify(rhost, to, lmod) + char *rhost; +- register struct namelist *to; ++ struct namelist *to; + time_t lmod; + { +- register int fd, len; ++ int fd, len; + FILE *pf, *popen(); + struct stat stb; + static char buf[BUFSIZ]; +@@ -221,7 +221,7 @@ + struct cmd *cmd; + struct cmd *cmdlist; + { +- register struct cmd *pcmd; ++ struct cmd *pcmd; + + for (pcmd = cmdlist; pcmd; pcmd = pcmd->c_next) { + checkcmd(pcmd); +@@ -238,7 +238,7 @@ + struct cmd *cmd; + struct cmd *cmdlist; + { +- register struct cmd *pc; ++ struct cmd *pc; + + if (!cmd) { + debugmsg(DM_MISC, "markfailed() NULL cmd parameter"); +@@ -309,7 +309,7 @@ + static int makeconn(rhost) + char *rhost; + { +- register char *ruser, *cp; ++ char *ruser, *cp; + static char *cur_host = NULL; + extern char *locuser; + extern long min_freefiles, min_freespace; +@@ -430,9 +430,9 @@ + struct cmd *cmd; + char **filev; + { +- register struct namelist *f; +- register struct subcmd *sc; +- register char **cpp; ++ struct namelist *f; ++ struct subcmd *sc; ++ char **cpp; + int n, ddir, destdir, opts = options; + struct namelist *files; + struct subcmd *sbcmds; +@@ -567,7 +567,6 @@ + } + } + +-done: + /* + * Run any commands for the entire cmd + */ +@@ -584,7 +583,7 @@ + notify(rhost, sc->sc_args, (time_t) 0); + + if (!nflag) { +- register struct linkbuf *nextl, *l; ++ struct linkbuf *nextl, *l; + + for (l = ihead; l != NULL; freelinkinfo(l), l = nextl) { + nextl = l->nextp; +@@ -601,11 +600,12 @@ + setjmp_ok = FALSE; + } + ++int + okname(name) +- register char *name; ++ char *name; + { +- register char *cp = name; +- register int c, isbad; ++ char *cp = name; ++ int c, isbad; + + for (isbad = FALSE; *cp && !isbad; ++cp) { + c = *cp; +@@ -627,9 +627,9 @@ + struct subcmd *sbcmds; + char **env; + { +- register DIR *d; +- register DIRENTRY *dp; +- register char *cp; ++ DIR *d; ++ DIRENTRY *dp; ++ char *cp; + char *optarget; + int len; + +@@ -641,7 +641,7 @@ + } + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) + continue; + if (len + 1 + (int)strlen(dp->d_name) >= BUFSIZ - 1) { +@@ -651,7 +651,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + cmptime(target, sbcmds, env); +@@ -740,9 +740,9 @@ + struct cmd *cmd; + char **filev; + { +- register struct subcmd *sc; +- register struct namelist *f; +- register char *cp, **cpp; ++ struct subcmd *sc; ++ struct namelist *f; ++ char *cp, **cpp; + struct stat stb; + struct namelist *files = cmd->c_files; + struct subcmd *sbcmds = cmd->c_cmds; +@@ -824,8 +824,8 @@ + extern int except(file) + char *file; + { +- register struct subcmd *sc; +- register struct namelist *nl; ++ struct subcmd *sc; ++ struct namelist *nl; + + debugmsg(DM_CALL, "except(%s)", file); + +@@ -918,8 +918,8 @@ + int argc; + char **argv; + { +- register struct namelist *f; +- register int i; ++ struct namelist *f; ++ int i; + + if (argc) { + for (i = 0; i < argc; i++) { +@@ -962,9 +962,9 @@ + int argc; + char **argv; + { +- register struct cmd *c; +- register char *cp; +- register int i; ++ struct cmd *c; ++ char *cp; ++ int i; + + (void) signal(SIGHUP, sighandler); + (void) signal(SIGINT, sighandler); +@@ -1032,7 +1032,7 @@ + + if (hostlist) { + /* Do specific hosts as specified on command line */ +- register struct namelist *nlptr; ++ struct namelist *nlptr; + + for (nlptr = hostlist; nlptr; nlptr = nlptr->n_next) + /* +--- rdist-6.1.5/src/distopt.c.cleanup 1998-11-10 05:09:11.000000000 +0100 ++++ rdist-6.1.5/src/distopt.c 2003-12-17 11:38:16.000000000 +0100 +@@ -6,7 +6,7 @@ + * appropriately. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -55,7 +55,7 @@ + extern DISTOPTINFO *getdistopt(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; distoptinfo[i].do_name; ++i) + if (strcasecmp(name, distoptinfo[i].do_name) == 0) +@@ -74,7 +74,7 @@ + opt_t *optptr; + int doerrs; + { +- register char *string, *optstr; ++ char *string, *optstr; + DISTOPTINFO *distopt; + int negate; + +@@ -93,7 +93,7 @@ + * and the option starts with "no", strip "no" + * from option and retry lookup. + */ +- if (distopt = getdistopt(optstr)) { ++ if ((distopt = getdistopt(optstr))) { + FLAG_ON(*optptr, distopt->do_value); + continue; + } +@@ -116,7 +116,7 @@ + */ + extern char *getdistoptlist() + { +- register int i; ++ int i; + static char buf[1024]; + + for (i = 0, buf[0] = CNULL; distoptinfo[i].do_name; ++i) { +@@ -138,7 +138,7 @@ + extern char *getondistoptlist(opts) + opt_t opts; + { +- register int i; ++ int i; + static char buf[1024]; + + for (i = 0, buf[0] = CNULL; distoptinfo[i].do_name; ++i) { +--- rdist-6.1.5/src/expand.c.cleanup 1998-11-10 05:09:31.000000000 +0100 ++++ rdist-6.1.5/src/expand.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -81,9 +81,9 @@ + sizeof(*sortbase), argcmp), sortbase = &eargv[eargc] + + static void Cat(s1, s2) /* quote in s1 and s2 */ +- register u_char *s1, *s2; ++ u_char *s1, *s2; + { +- register char *cp; ++ char *cp; + int len = strlen((char *)s1) + strlen((char *)s2) + 2; + + if ((eargc + 1) >= MAXEARGS) { +@@ -97,12 +97,12 @@ + do { + if (*s1 == QUOTECHAR) + s1++; +- } while (*cp++ = *s1++); ++ } while ((*cp++ = *s1++)); + cp--; + do { + if (*s2 == QUOTECHAR) + s2++; +- } while (*cp++ = *s2++); ++ } while ((*cp++ = *s2++)); + } + + static void addpath(c) +@@ -131,8 +131,8 @@ + struct namelist *list; + int wh; + { +- register struct namelist *nl, *prev; +- register int n; ++ struct namelist *nl, *prev; ++ int n; + char pathbuf[BUFSIZ]; + + if (debug) +@@ -182,7 +182,7 @@ + u_char *str; + int ch; + { +- register u_char *cp; ++ u_char *cp; + + for (cp = str; cp && *cp != CNULL; ++cp) + if (ch == *cp) +@@ -194,8 +194,8 @@ + void expstr(s) + u_char *s; + { +- register u_char *cp, *cp1; +- register struct namelist *tp; ++ u_char *cp, *cp1; ++ struct namelist *tp; + u_char *tail; + u_char ebuf[BUFSIZ]; + u_char varbuff[BUFSIZ]; +@@ -302,7 +302,7 @@ + cp1 = (u_char *)pw->pw_dir; + s = cp; + } +- for (cp = (u_char *)path; *cp++ = *cp1++; ) ++ for (cp = (u_char *)path; (*cp++ = *cp1++); ) + ; + tpathp = pathp = (char *)cp - 1; + } else { +@@ -326,7 +326,7 @@ + sort(); + } + +-static ++static int + argcmp(a1, a2) + char **a1, **a2; + { +@@ -341,8 +341,8 @@ + void expsh(s) /* quote in s */ + u_char *s; + { +- register u_char *cp, *oldcp; +- register char *spathp; ++ u_char *cp, *oldcp; ++ char *spathp; + struct stat stb; + + spathp = pathp; +@@ -380,7 +380,7 @@ + char *pattern; + { + struct stat stb; +- register DIRENTRY *dp; ++ DIRENTRY *dp; + DIR *dirp; + + dirp = opendir(path); +@@ -417,11 +417,12 @@ + yyerror(path); + } + ++int + execbrc(p, s) /* quote in p */ + u_char *p, *s; + { + u_char restbuf[BUFSIZ + 2]; +- register u_char *pe, *pm, *pl; ++ u_char *pe, *pm, *pl; + int brclev = 0; + u_char *lm, savec; + char *spathp; +@@ -507,11 +508,12 @@ + return (0); + } + ++int + match(s, p) /* quote in p */ + char *s, *p; + { +- register int c; +- register char *sentp; ++ int c; ++ char *sentp; + char sexpany = expany; + + if (*s == '.' && *p != '.') +@@ -524,11 +526,12 @@ + return (c); + } + ++int + amatch(s, p) /* quote in p */ +- register char *s; +- register u_char *p; ++ char *s; ++ u_char *p; + { +- register int scc; ++ int scc; + int ok, lc; + char *spathp; + struct stat stb; +@@ -545,7 +548,7 @@ + case '[': + ok = 0; + lc = 077777; +- while (cc = *p++) { ++ while ((cc = *p++)) { + if (cc == ']') { + if (ok) + break; +@@ -599,7 +602,7 @@ + while (*s) + addpath(*s++); + addpath('/'); +- if (stat(path, &stb) == 0 && S_ISDIR(stb.st_mode)) ++ if (stat(path, &stb) == 0 && S_ISDIR(stb.st_mode)) { + if (*p == CNULL) { + if (which & E_TILDE) + Cat((u_char *)path, +@@ -609,6 +612,7 @@ + (u_char *)tpathp); + } else + expsh(p); ++ } + pathp = spathp; + *pathp = CNULL; + return (0); +--- rdist-6.1.5/src/lookup.c.cleanup 1998-11-10 05:12:56.000000000 +0100 ++++ rdist-6.1.5/src/lookup.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -68,11 +68,12 @@ + /* + * Define a variable from a command line argument. + */ ++void + define(name) + char *name; + { +- register char *cp, *s; +- register struct namelist *nl; ++ char *cp, *s; ++ struct namelist *nl; + struct namelist *value; + + debugmsg(DM_CALL, "define(%s)", name); +@@ -137,9 +138,9 @@ + int action; + struct namelist *value; + { +- register unsigned n; +- register char *cp; +- register struct syment *s; ++ unsigned n; ++ char *cp; ++ struct syment *s; + char ebuf[BUFSIZ]; + + debugmsg(DM_CALL, "lookup(%s, %d, %x)", name, action, value); +--- rdist-6.1.5/src/isexec.c.cleanup 1998-11-10 05:11:42.000000000 +0100 ++++ rdist-6.1.5/src/isexec.c 2003-12-17 11:38:16.000000000 +0100 +@@ -37,7 +37,7 @@ + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +--- rdist-6.1.5/src/signal.c.cleanup 1998-11-10 05:16:13.000000000 +0100 ++++ rdist-6.1.5/src/signal.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +--- rdist-6.1.5/src/rshrcmd.c.cleanup 1998-11-10 05:15:07.000000000 +0100 ++++ rdist-6.1.5/src/rshrcmd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -10,7 +10,7 @@ + * Chris Siebenmann . + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -34,6 +34,7 @@ + * program in place of a direct rcmd() function call so as to + * avoid having to be root. + */ ++int + rshrcmd(ahost, port, luser, ruser, cmd, fd2p) + char **ahost; + u_short port; +@@ -108,6 +109,7 @@ + (void) wait(0); + return sp[0]; + } ++ return -1; + /*NOTREACHED*/ + } + +--- rdist-6.1.5/src/common.c.cleanup 1998-11-10 05:09:01.000000000 +0100 ++++ rdist-6.1.5/src/common.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -87,14 +87,14 @@ + /* + * Front end to write() that handles partial write() requests. + */ +-extern WRITE_RETURN_T xwrite(fd, buf, len) ++WRITE_RETURN_T xwrite(fd, buf, len) + int fd; + void *buf; + WRITE_AMT_T len; + { + WRITE_AMT_T nleft = len; + WRITE_RETURN_T nwritten; +- register char *ptr = buf; ++ char *ptr = buf; + + while (nleft > 0) { + if ((nwritten = write(fd, ptr, nleft)) <= 0) { +@@ -110,14 +110,14 @@ + /* + * Set program name + */ +-extern void setprogname(argv) ++void setprogname(argv) + char **argv; + { +- register char *cp; ++ char *cp; + + if (!progname) { + progname = strdup(argv[0]); +- if (cp = strrchr(progname, '/')) ++ if ((cp = strrchr(progname, '/'))) + progname = cp + 1; + } + } +@@ -125,14 +125,14 @@ + /* + * Do run-time initialization + */ +-extern int init(argc, argv, envp) ++int init(argc, argv, envp) + /*ARGSUSED*/ + int argc; + char **argv; + char **envp; + { +- register int i; +- register char *cp; ++ int i; ++ char *cp; + + if (!isserver) + (void) signal(SIGSEGV, sighandler); +@@ -182,7 +182,7 @@ + /* + * Finish things up before ending. + */ +-extern void finish() ++void finish() + { + extern jmp_buf finish_jmpbuf; + +@@ -216,7 +216,7 @@ + /* + * Handle lost connections + */ +-extern void lostconn() ++void lostconn() + { + /* Prevent looping */ + (void) signal(SIGPIPE, SIG_IGN); +@@ -232,7 +232,7 @@ + /* + * Do a core dump + */ +-extern void coredump() ++void coredump() + { + error("Segmentation violation - dumping core [PID = %d, %s]", + getpid(), +@@ -245,7 +245,7 @@ + /* + * General signal handler + */ +-extern void sighandler(sig) ++void sighandler(sig) + int sig; + { + debugmsg(DM_CALL, "sighandler() received signal %d\n", sig); +@@ -325,7 +325,7 @@ + /* + * Stdarg frontend to sendcmdmsg() + */ +-extern int sendcmd(char cmd, char *fmt, ...) ++int sendcmd(char cmd, char *fmt, ...) + { + static char buf[BUFSIZ]; + va_list args; +@@ -345,7 +345,7 @@ + /* + * Varargs frontend to sendcmdmsg() + */ +-extern int sendcmd(va_alist) ++int sendcmd(va_alist) + va_dcl + { + static char buf[BUFSIZ]; +@@ -372,7 +372,7 @@ + * Stupid frontend to sendcmdmsg() + */ + /*VARARGS2*/ +-extern int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a7, a8) ++int sendcmd(cmd, fmt, a1, a2, a3, a4, a5, a6, a7, a8) + char cmd; + char *fmt; + { +@@ -433,13 +433,13 @@ + * errors, call cleanup() or lostconn(). In other words, unless + * the third argument is nonzero, this routine never returns failure. + */ +-extern int remline(buffer, space, doclean) +- register u_char *buffer; ++int remline(buffer, space, doclean) ++ u_char *buffer; + int space; + int doclean; + { +- register int c, left = space; +- register u_char *p = buffer; ++ int c, left = space; ++ u_char *p = buffer; + + if (rem_r < 0) { + error("Cannot read remote input: Remote descriptor not open."); +@@ -494,9 +494,9 @@ + /* + * Non-line-oriented remote read. + */ +-readrem(p, space) ++int readrem(p, space) + char *p; +- register int space; ++ int space; + { + if (remleft <= 0) { + /* +@@ -527,7 +527,7 @@ + /* + * Get the user name for the uid. + */ +-extern char *getusername(uid, file, opts) ++char *getusername(uid, file, opts) + UID_T uid; + char *file; + opt_t opts; +@@ -566,7 +566,7 @@ + /* + * Get the group name for the gid. + */ +-extern char *getgroupname(gid, file, opts) ++char *getgroupname(gid, file, opts) + GID_T gid; + char *file; + opt_t opts; +@@ -604,7 +604,7 @@ + /* + * Read a response from the remote host. + */ +-extern int response() ++int response() + { + static u_char resp[BUFSIZ]; + u_char *s; +@@ -646,6 +646,7 @@ + message(MT_FERROR, "%s", s); + finish(); + } ++ return -1; + /*NOTREACHED*/ + } + +@@ -657,11 +658,11 @@ + * user's home directory path name. Return a pointer in buf to the + * part corresponding to `file'. + */ +-extern char *exptilde(ebuf, file) ++char *exptilde(ebuf, file) + char *ebuf; +- register char *file; ++ char *file; + { +- register char *s1, *s2, *s3; ++ char *s1, *s2, *s3; + extern char *homedir; + + if (*file != '~') { +@@ -694,12 +695,12 @@ + *s3 = '/'; + s2 = pw->pw_dir; + } +- for (s1 = ebuf; *s1++ = *s2++; ) ++ for (s1 = ebuf; (*s1++ = *s2++); ) + ; + s2 = --s1; + if (s3 != NULL) { + s2++; +- while (*s1++ = *s3++) ++ while ((*s1++ = *s3++)) + ; + } + return(s2); +@@ -710,7 +711,7 @@ + * Set our effective user id to the user running us. + * This should be the uid we do most of our work as. + */ +-extern int becomeuser() ++int becomeuser() + { + int r = 0; + +@@ -732,7 +733,7 @@ + /* + * Set our effective user id to "root" (uid = 0) + */ +-extern int becomeroot() ++int becomeroot() + { + int r = 0; + +@@ -753,7 +754,7 @@ + /* + * Set access and modify times of a given file + */ +-extern int setfiletime(file, atime, mtime) ++int setfiletime(file, atime, mtime) + char *file; + time_t atime; + time_t mtime; +@@ -790,7 +791,7 @@ + /* + * Get version info + */ +-extern char *getversion() ++char *getversion() + { + static char buff[BUFSIZ]; + +@@ -811,7 +812,7 @@ + { + int fd[2], pid, i; + int status; +- register char *cp, *s; ++ char *cp, *s; + char sbuf[BUFSIZ], buf[BUFSIZ]; + + if (pipe(fd) < 0) { +@@ -933,12 +934,12 @@ + /* + * Private version of basename() + */ +-extern char *xbasename(path) ++char *xbasename(path) + char *path; + { +- register char *cp; ++ char *cp; + +- if (cp = strrchr(path, '/')) ++ if ((cp = strrchr(path, '/'))) + return(cp+1); + else + return(path); +@@ -949,11 +950,11 @@ + * search until a component of that path is found and + * return the found file name. + */ +-extern char *searchpath(path) ++char *searchpath(path) + char *path; + { +- register char *cp; +- register char *file; ++ char *cp; ++ char *file; + struct stat statbuf; + + for (; ;) { +@@ -977,8 +978,7 @@ + /* + * Set line buffering. + */ +-extern void +-mysetlinebuf(fp) ++void mysetlinebuf(fp) + FILE *fp; + { + #if SETBUF_TYPE == SETBUF_SETLINEBUF +@@ -995,8 +995,7 @@ + /* + * Our interface to system call to get a socket pair. + */ +-int +-getsocketpair(domain, type, protocol, sv) ++int getsocketpair(domain, type, protocol, sv) + int domain; + int type; + int protocol; +--- rdist-6.1.5/src/message.c.cleanup 1998-11-10 05:13:30.000000000 +0100 ++++ rdist-6.1.5/src/message.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -97,7 +97,7 @@ + */ + extern void msgprusage() + { +- register int i, x; ++ int i, x; + + (void) fprintf(stderr, "\nWhere is of form\n"); + (void) fprintf(stderr, +@@ -120,7 +120,7 @@ + */ + extern void msgprconfig() + { +- register int i, x; ++ int i, x; + static char buf[MSGBUFSIZ]; + + debugmsg(DM_MISC, "Current message logging config:"); +@@ -145,7 +145,7 @@ + static MSGFACILITY *getmsgfac(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; msgfacility[i].mf_name; ++i) + if (strcasecmp(name, msgfacility[i].mf_name) == 0) +@@ -160,7 +160,7 @@ + static MSGTYPE *getmsgtype(name) + char *name; + { +- register int i; ++ int i; + + for (i = 0; msgtypes[i].mt_name; ++i) + if (strcasecmp(name, msgtypes[i].mt_name) == 0) +@@ -178,9 +178,9 @@ + char *str; + { + static char ebuf[BUFSIZ]; +- register char *cp; +- register char *strptr, *word; +- register MSGTYPE *mtp; ++ char *cp; ++ char *strptr, *word; ++ MSGTYPE *mtp; + + /* + * MF_SYSLOG is the only supported message facility for the server +@@ -240,11 +240,11 @@ + msgfac->mf_msgtypes = 0; /* Start from scratch */ + while (strptr) { + word = strptr; +- if (cp = strchr(strptr, ',')) ++ if ((cp = strchr(strptr, ','))) + *cp++ = CNULL; + strptr = cp; + +- if (mtp = getmsgtype(word)) { ++ if ((mtp = getmsgtype(word))) { + msgfac->mf_msgtypes |= mtp->mt_type; + /* + * XXX This is really a kludge until we add real +@@ -272,8 +272,8 @@ + int doset; + { + static char ebuf[BUFSIZ], msgbuf[MSGBUFSIZ]; +- register char *cp, *optstr; +- register char *word; ++ char *cp, *optstr; ++ char *word; + MSGFACILITY *msgfac; + + if (msgstr == NULL) +@@ -308,7 +308,7 @@ + if (doset) { + char *mcp; + +- if (mcp = setmsgtypes(msgfac, cp)) ++ if ((mcp = setmsgtypes(msgfac, cp))) + return(mcp); + } + } +@@ -462,8 +462,9 @@ + return; + + if (!msgfac->mf_fptr) { +- register char *cp; ++ char *cp; + char *getenv(); ++ int fd; + + /* + * Create and open a new temporary file +@@ -475,7 +476,10 @@ + (void) sprintf(tempfile, "%s/%s", cp, _RDIST_TMP); + + msgfac->mf_filename = tempfile; +- (void) mktemp(msgfac->mf_filename); ++ fd = mkstemp(msgfac->mf_filename); ++ if (fd < 0) ++ fatalerr("Cannot open notify file for writing: %s: %s.", msgfac->mf_filename, SYSERR); ++ close(fd); + if ((msgfac->mf_fptr = fopen(msgfac->mf_filename, "w"))==NULL) + fatalerr("Cannot open notify file for writing: %s: %s.", + msgfac->mf_filename, SYSERR); +@@ -515,15 +519,15 @@ + int flags; + char *msgbuf; + { +- register int i, x; +- register char *cp; ++ int i, x; ++ char *cp; + static char mbuf[2048]; + + if (msgbuf && *msgbuf) { + /* + * Ensure no stray newlines are present + */ +- if (cp = strchr(msgbuf, '\n')) ++ if ((cp = strchr(msgbuf, '\n'))) + *cp = CNULL; + + checkhostname(); +@@ -863,7 +867,7 @@ + */ + extern char *getnotifyfile() + { +- register int i; ++ int i; + + for (i = 0; msgfacility[i].mf_name; i++) + if (msgfacility[i].mf_msgfac == MF_NOTIFY && +--- rdist-6.1.5/src/setargs.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/setargs.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -66,12 +66,12 @@ + /* + * Settup things for using setproctitle() + */ +-setargs_settup(argc, argv, envp) ++void setargs_settup(argc, argv, envp) + int argc; + char **argv; + char **envp; + { +- register int i; ++ int i; + extern char **environ; + + /* Remember the User Environment */ +@@ -92,10 +92,10 @@ + /* + * Set process title + */ +-extern void _setproctitle(msg) ++void _setproctitle(msg) + char *msg; + { +- register int i; ++ int i; + char *p; + + p = Argv[0]; +@@ -119,7 +119,7 @@ + /* + * Varargs front-end to _setproctitle() + */ +-extern void setproctitle(va_alist) ++void setproctitle(va_alist) + va_dcl + { + static char buf[BUFSIZ]; +@@ -138,7 +138,7 @@ + /* + * Stdarg front-end to _setproctitle() + */ +-extern void setproctitle(char *fmt, ...) ++void setproctitle(char *fmt, ...) + { + static char buf[BUFSIZ]; + va_list args; +@@ -155,7 +155,7 @@ + * Non-Varargs front-end to _setproctitle() + */ + /*VARARGS1*/ +-extern void setproctitle(fmt, a1, a2, a3, a4, a5, a6) ++void setproctitle(fmt, a1, a2, a3, a4, a5, a6) + char *fmt; + { + static char buf[BUFSIZ]; +--- rdist-6.1.5/src/rdistd.c.cleanup 1998-11-10 05:14:06.000000000 +0100 ++++ rdist-6.1.5/src/rdistd.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -53,21 +53,12 @@ + + #include "defs.h" + +-/* +- * Print usage message +- */ +-static void usage() +-{ +- fprintf(stderr, "usage: %s -S [ -DV ]\n", progname); +- exit(1); +-} +- + char localmsglist[] = "syslog=ferror"; + + /* + * The Beginning + */ +-main(argc, argv, envp) ++int main(argc, argv, envp) + int argc; + char **argv; + char **envp; +@@ -95,7 +86,8 @@ + case '?': + default: + error("Bad command line option."); +- usage(); ++ fprintf(stderr, "usage: %s -S [ -DV ]\n", progname); ++ exit(1); + } + + if (!isserver) { +@@ -108,7 +100,7 @@ + rem_w = fileno(stdout); + + /* Set logging */ +- if (cp = msgparseopts(localmsglist, TRUE)) ++ if ((cp = msgparseopts(localmsglist, TRUE))) + fatalerr("Bad message logging option (%s): %s", + localmsglist, cp); + +--- rdist-6.1.5/src/server.c.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/src/server.c 2003-12-17 11:38:16.000000000 +0100 +@@ -37,7 +37,7 @@ + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -197,7 +197,7 @@ + static UID_T last_uid = (UID_T)-2; + static GID_T last_primegid; + extern char *locuser; +- register int i; ++ int i; + UID_T uid; + GID_T gid; + GID_T primegid = (GID_T)-2; +@@ -252,7 +252,7 @@ + /* + * Invalid cached values so we need to do a new lookup. + */ +- if (gr = mygetgroup(group)) { ++ if ((gr = mygetgroup(group))) { + last_gid = gid = gr->gr_gid; + strcpy(last_group, gr->gr_name); + } else { +@@ -325,7 +325,7 @@ + { + DIR *d; + static DIRENTRY *dp; +- register char *cp; ++ char *cp; + struct stat stb; + char *optarget; + int len, failures = 0; +@@ -362,7 +362,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if ((D_NAMLEN(dp) == 1 && dp->d_name[0] == '.') || + (D_NAMLEN(dp) == 2 && dp->d_name[0] == '.' && + dp->d_name[1] == '.')) +@@ -376,7 +376,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name;; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (lstat(target, &stb) < 0) { +@@ -414,10 +414,10 @@ + * for extraneous files and remove them. + */ + static void doclean(cp) +- register char *cp; ++ char *cp; + { + DIR *d; +- register DIRENTRY *dp; ++ DIRENTRY *dp; + struct stat stb; + char *optarget, *ep; + int len; +@@ -436,7 +436,7 @@ + + optarget = ptarget; + len = ptarget - target; +- while (dp = readdir(d)) { ++ while ((dp = readdir(d))) { + if ((D_NAMLEN(dp) == 1 && dp->d_name[0] == '.') || + (D_NAMLEN(dp) == 2 && dp->d_name[0] == '.' && + dp->d_name[1] == '.')) +@@ -450,7 +450,7 @@ + ptarget = optarget; + *ptarget++ = '/'; + cp = dp->d_name;; +- while (*ptarget++ = *cp++) ++ while ((*ptarget++ = *cp++)) + ; + ptarget--; + if (lstat(target, &stb) < 0) { +@@ -481,7 +481,7 @@ + * Frontend to doclean(). + */ + static void clean(cp) +- register char *cp; ++ char *cp; + { + doclean(cp); + (void) sendcmd(CC_END, NULL); +@@ -509,7 +509,7 @@ + */ + static void docmdspecial() + { +- register char *cp; ++ char *cp; + char *cmd, *env = NULL; + int n; + int len; +@@ -667,7 +667,7 @@ + char *name; + opt_t opts; + { +- register char *cp; ++ char *cp; + struct stat stb; + int r = -1; + +@@ -760,7 +760,7 @@ + { + int f, wrerr, olderrno, lastwashole = 0, wassparse = 0; + off_t i; +- register char *cp; ++ char *cp; + char *savefile = NULL; + static struct stat statbuff; + +@@ -987,7 +987,7 @@ + char *owner, *group; + { + static char lowner[100], lgroup[100]; +- register char *cp; ++ char *cp; + struct stat stb; + int s; + +@@ -1044,7 +1044,7 @@ + + o = (owner[0] == ':') ? opts & DO_NUMCHKOWNER : + opts; +- if (cp = getusername(stb.st_uid, target, o)) ++ if ((cp = getusername(stb.st_uid, target, o))) + if (strcmp(owner, cp)) + (void) strcpy(lowner, cp); + } +@@ -1053,7 +1053,7 @@ + + o = (group[0] == ':') ? opts & DO_NUMCHKGROUP : + opts; +- if (cp = getgroupname(stb.st_gid, target, o)) ++ if ((cp = getgroupname(stb.st_gid, target, o))) + if (strcmp(group, cp)) + (void) strcpy(lgroup, cp); + } +@@ -1107,8 +1107,8 @@ + if (s < 0) { + if (errno == ENOENT) { + if (mkdir(target, mode) == 0 || +- chkparent(target, opts) == 0 && +- mkdir(target, mode) == 0) { ++ (chkparent(target, opts) == 0 && ++ mkdir(target, mode) == 0)) { + message(MT_NOTICE, "%s: mkdir", target); + (void) fchog(-1, target, owner, group, mode); + ack(); +@@ -1304,7 +1304,7 @@ + static void setconfig(cmd) + char *cmd; + { +- register char *cp = cmd; ++ char *cp = cmd; + char *estr; + + switch (*cp++) { +@@ -1338,7 +1338,7 @@ + break; + + case SC_LOGGING: /* Logging options */ +- if (estr = msgparseopts(cp, TRUE)) { ++ if ((estr = msgparseopts(cp, TRUE))) { + fatalerr("Bad message option string (%s): %s", + cp, estr); + return; +@@ -1455,7 +1455,7 @@ + sptarget[catname] = ptarget; + if (catname++) { + *ptarget++ = '/'; +- while (*ptarget++ = *file++) ++ while ((*ptarget++ = *file++)) + ; + ptarget--; + } +@@ -1463,6 +1463,7 @@ + /* + * Create name of temporary file + */ ++ int fd; + if (catname && cattarget(file) < 0) { + error("Cannot set file name."); + return; +@@ -1477,7 +1478,12 @@ + (void) sprintf(new, "%s/%s", target, tempname); + *file = '/'; + } +- (void) mktemp(new); ++ fd = mkstemp(new); ++ if (fd < 0) { ++ error("Cannot set file name."); ++ return; ++ } ++ close(fd); + } + + /* +@@ -1581,8 +1587,8 @@ + extern void server() + { + static char cmdbuf[BUFSIZ]; +- register char *cp; +- register int n; ++ char *cp; ++ int n; + extern jmp_buf finish_jmpbuf; + + if (setjmp(finish_jmpbuf)) { +--- rdist-6.1.5/src/filesys.c.cleanup 1998-11-10 05:10:18.000000000 +0100 ++++ rdist-6.1.5/src/filesys.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -72,7 +72,7 @@ + static char last_pathname[MAXPATHLEN]; + static char file[MAXPATHLEN + 3]; + static struct stat filestat; +- register char *p; ++ char *p; + + /* + * Mark the statbuf as invalid to start with. +@@ -125,7 +125,7 @@ + * Normally we want to change /dir1/dir2/file + * into "/dir1/dir2/." + */ +- if (p = (char *) strrchr(file, '/')) { ++ if ((p = (char *) strrchr(file, '/'))) { + *++p = '.'; + *++p = CNULL; + } else { +@@ -183,7 +183,7 @@ + struct stat *filest; + struct mntinfo *mntinfo; + { +- register struct mntinfo *mi; ++ struct mntinfo *mi; + + for (mi = mntinfo; mi; mi = mi->mi_nxt) { + if (mi->mi_mnt->me_flags & MEFLAG_IGNORE) +@@ -202,7 +202,7 @@ + mntent_t *mnt; + struct mntinfo *mntinfo; + { +- register struct mntinfo *m; ++ struct mntinfo *m; + + for (m = mntinfo; m; m = m->mi_nxt) + if (strcmp(m->mi_mnt->me_path, mnt->me_path) == 0) +@@ -247,7 +247,7 @@ + } + + mntinfo = mi; +- while (mnt = getmountent(mfp)) { ++ while ((mnt = getmountent(mfp))) { + debugmsg(DM_MISC, "mountent = '%s' (%s)", + mnt->me_path, mnt->me_type); + +@@ -308,7 +308,7 @@ + static struct stat filestat; + struct stat *pstat; + struct mntinfo *tmpmi; +- register mntent_t *mnt; ++ mntent_t *mnt; + + /* + * Use the supplied stat buffer if not NULL or our own. +@@ -330,16 +330,16 @@ + /* + * Find the mnt that pathname is on. + */ +- if (mnt = findmnt(pstat, mntinfo)) ++ if ((mnt = findmnt(pstat, mntinfo))) + return(mnt); + + /* + * We failed to find correct mnt, so maybe it's a newly + * mounted filesystem. We rebuild mntinfo and try again. + */ +- if (tmpmi = makemntinfo(mntinfo)) { ++ if ((tmpmi = makemntinfo(mntinfo))) { + mntinfo = tmpmi; +- if (mnt = findmnt(pstat, mntinfo)) ++ if ((mnt = findmnt(pstat, mntinfo))) + return(mnt); + } + +--- rdist-6.1.5/src/filesys-os.c.cleanup 1998-11-10 05:09:59.000000000 +0100 ++++ rdist-6.1.5/src/filesys-os.c 2003-12-17 11:38:16.000000000 +0100 +@@ -38,7 +38,7 @@ + * SUCH DAMAGE. + */ + +-#ifndef lint ++#if 0 + static char RCSid[] = + "$Id: rdist-6.1.5-cleanup.diff,v 1.1 2008/10/27 20:26:28 eha Exp eha $"; + +@@ -314,7 +314,7 @@ + + bzero((char *)&me, sizeof(mntent_t)); + +- if (mntent = getmntent(fptr)) { ++ if ((mntent = getmntent(fptr))) { + me.me_path = mntent->mnt_dir; + me.me_type = mntent->mnt_type; + if (mntent->mnt_opts && hasmntopt(mntent, MNTOPT_RO)) +--- rdist-6.1.5/src/strcasecmp.c.cleanup 1998-11-10 05:16:52.000000000 +0100 ++++ rdist-6.1.5/src/strcasecmp.c 2003-12-17 11:38:16.000000000 +0100 +@@ -51,9 +51,9 @@ + }; + + strcasecmp(s1, s2) +- register char *s1, *s2; ++ char *s1, *s2; + { +- register char *cm = charmap; ++ char *cm = charmap; + + while (cm[*s1] == cm[*s2++]) + if (*s1++ == '\0') +@@ -62,10 +62,10 @@ + } + + strncasecmp(s1, s2, n) +- register char *s1, *s2; +- register int n; ++ char *s1, *s2; ++ int n; + { +- register char *cm = charmap; ++ char *cm = charmap; + + while (--n >= 0 && cm[*s1] == cm[*s2++]) + if (*s1++ == '\0') +--- rdist-6.1.5/src/strtol.c.cleanup 1994-03-17 00:25:50.000000000 +0100 ++++ rdist-6.1.5/src/strtol.c 2003-12-17 11:38:16.000000000 +0100 +@@ -54,13 +54,13 @@ + strtol(nptr, endptr, base) + char *nptr; + char **endptr; +- register int base; ++ int base; + { +- register char *s = nptr; +- register unsigned long acc; +- register int c; +- register unsigned long cutoff; +- register int neg = 0, any, cutlim; ++ char *s = nptr; ++ unsigned long acc; ++ int c; ++ unsigned long cutoff; ++ int neg = 0, any, cutlim; + + /* + * Skip white space and pick up leading +/- sign if any. +--- rdist-6.1.5/src/regex.c.cleanup 1998-11-10 05:14:28.000000000 +0100 ++++ rdist-6.1.5/src/regex.c 2003-12-17 11:39:14.000000000 +0100 +@@ -142,10 +142,8 @@ + */ + char * + re_comp(sp) +- register char *sp; + { +- register int c; +- register char *ep = expbuf; ++ char *ep = expbuf; + int cclcnt, numbra = 0; + char *lastep = 0; + char bracket[NBRA]; +@@ -266,10 +264,10 @@ + */ + int + re_exec(p1) +- register char *p1; ++ char *p1; + { +- register char *p2 = expbuf; +- register int c; ++ char *p2 = expbuf; ++ int c; + int rv; + + for (c = 0; c < NBRA; c++) { +@@ -306,9 +304,9 @@ + */ + static int + advance(lp, ep) +- register char *lp, *ep; ++ char *lp, *ep; + { +- register char *curlp; ++ char *curlp; + int ct, i; + int rv; + +@@ -413,10 +411,10 @@ + } + + backref(i, lp) +- register int i; +- register char *lp; ++ int i; ++ char *lp; + { +- register char *bp; ++ char *bp; + + bp = braslist[i]; + while (*bp++ == *lp++) +@@ -427,10 +425,10 @@ + + int + cclass(set, c, af) +- register char *set, c; ++ char *set, c; + int af; + { +- register int n; ++ int n; + + if (c == 0) + return(0); +--- rdist-6.1.5/include/defs.h.cleanup 2003-12-17 11:38:16.000000000 +0100 ++++ rdist-6.1.5/include/defs.h 2003-12-17 11:38:16.000000000 +0100 +@@ -30,11 +30,13 @@ + #include + #include + #include ++#include + #include + #include + #include +-#include + #include ++#include ++#include + + #include "version.h" + #include "config-def.h" +@@ -48,6 +50,9 @@ + #endif /* yacc */ + + #include ++#define _REGEX_RE_COMP ++#include ++ + + /* + * This belongs in os-svr4.h but many SVR4 OS's +@@ -321,12 +326,11 @@ + /* + * Our own declarations. + */ +-char *exptilde(); + char *makestr(); + char *xcalloc(); + char *xmalloc(); + char *xrealloc(); +-extern char *xbasename(); ++extern char *exptilde(); + extern char *getdistoptlist(); + extern char *getgroupname(); + extern char *getnlstr(); +@@ -336,44 +340,75 @@ + extern char *getversion(); + extern char *msgparseopts(); + extern char *searchpath(); ++extern char *xbasename(); ++extern int amatch(); + extern int any(); ++extern int becomeroot(); ++extern int becomeuser(); ++extern int except(); ++extern int execbrc(); ++extern int getfilesysinfo(); ++extern int getsocketpair(); + extern int init(); + extern int install(); + extern int isexec(); ++extern int is_nfs_mounted(); ++extern int is_ro_mounted(); ++extern int is_symlinked(); ++extern int match(); ++extern int okname(); + extern int parsedistopts(); ++extern int readrem(); + extern int remline(); ++extern int response(); ++extern int rshrcmd(); + extern int setfiletime(); ++extern int setnonblocking(); + extern int spawn(); ++extern int yylex(); ++extern int yyparse(); + extern struct subcmd *makesubcmd(); ++extern void append(); + extern void checkhostname(); + extern void cleanup(); + extern void complain(); ++extern void coredump(); ++extern void define(); ++extern void docmdargs(); + extern void docmds(); + extern void finish(); +-extern void log(); ++extern void freelinkinfo(); ++extern void insert(); + extern void logmsg(); + extern void lostconn(); + extern void markassigned(); ++extern void msgprconfig(); + extern void msgprusage(); ++extern void mysetlinebuf(); + extern void note(); + extern void runcmdspecial(); + extern void runcommand(); + extern void server(); ++extern void setargs_settup(); + extern void setprogname(); + extern void sighandler(); ++extern void usage(); + extern void waitup(); ++extern void yyerror(); ++extern WRITE_RETURN_T xwrite(); + struct namelist *expand(); + struct namelist *lookup(); + struct namelist *makenl(); +-extern WRITE_RETURN_T xwrite(); + + #if defined(ARG_TYPE) && ARG_TYPE == ARG_STDARG ++extern int sendcmd(char cmd, char *fmt, ...); + extern void debugmsg(int, char *, ...); + extern void error(char *, ...); + extern void fatalerr(char *, ...); + extern void message(int, char *, ...); + extern void setproctitle(char *fmt, ...); + #else ++extern int sendcmd(va_alist); + extern void debugmsg(); + extern void error(); + extern void fatalerr(); diff --git a/source/n/rdist/rdist-6.1.5-varargs.diff b/source/n/rdist/rdist-6.1.5-varargs.diff new file mode 100644 index 000000000..cf2786d2c --- /dev/null +++ b/source/n/rdist/rdist-6.1.5-varargs.diff @@ -0,0 +1,11 @@ +--- rdist-6.1.5/config/os-linux.h.varargs 2003-06-17 17:52:33.000000000 +0200 ++++ rdist-6.1.5/config/os-linux.h 2003-06-17 17:53:07.000000000 +0200 +@@ -68,7 +68,7 @@ + /* + * Type of arg functions we have. + */ +-#define ARG_TYPE ARG_VARARGS ++#define ARG_TYPE ARG_STDARG + + /* + * Do we have select()? diff --git a/source/n/rdist/rdist-6.1.5.diff b/source/n/rdist/rdist-6.1.5.diff new file mode 100644 index 000000000..0445ca9b0 --- /dev/null +++ b/source/n/rdist/rdist-6.1.5.diff @@ -0,0 +1,107 @@ +diff -ur rdist-6.1.5.orig/Makefile rdist-6.1.5/Makefile +--- rdist-6.1.5.orig/Makefile Mon Nov 9 19:36:06 1998 ++++ rdist-6.1.5/Makefile Tue Apr 3 10:56:28 2001 +@@ -17,9 +17,10 @@ + SHELL=/bin/sh + + all install install.man: FRC +- @for t in $(TARGETS); do \ ++ @for t in $(TARGETS); do ( \ + echo Making \"$@\" in \"$$t\"; \ + (cd $$t; ${MAKE} $@); \ ++ ) || exit 1; \ + done + + clean: +diff -ur rdist-6.1.5.orig/Makefile.local rdist-6.1.5/Makefile.local +--- rdist-6.1.5.orig/Makefile.local Mon Nov 9 19:36:31 1998 ++++ rdist-6.1.5/Makefile.local Tue Apr 3 10:56:28 2001 +@@ -15,6 +15,20 @@ + # or add your own line. + # + #BIN_DIR = /usr/bin ++BIN_DIR = /usr/bin ++MAN_1_DIR = /usr/man/man1 ++MAN_8_DIR = /usr/man/man8 ++RDIST_MODE = 755 ++RDISTD_MODE = 755 ++MAN_MODE = 644 ++MAN_OWNER = root ++MAN_GROUP = root ++BIN_GROUP = root ++ ++INSTALL = install ++YACC = bison -y ++ ++OPT = -Wall -O2 -pipe + + # + # Add any local definitions you want pass to the compiler to DEFS_LOCAL +Only in rdist-6.1.5: Makefile.local~ +Only in rdist-6.1.5: Makefile~ +diff -ur rdist-6.1.5.orig/config/os-linux.h rdist-6.1.5/config/os-linux.h +--- rdist-6.1.5.orig/config/os-linux.h Mon Nov 9 19:59:59 1998 ++++ rdist-6.1.5/config/os-linux.h Tue Apr 3 10:56:28 2001 +@@ -93,8 +93,8 @@ + /* + * Our types, usually these are uid_t and gid_t. + */ +-typedef uid_t UID_T; /* Must be signed */ +-typedef gid_t GID_T; /* Must be signed */ ++typedef int UID_T; /* Must be signed */ ++typedef int GID_T; /* Must be signed */ + + /* + * Generic pointer, used by memcpy, malloc, etc. Usually char or void. +Only in rdist-6.1.5/config: os-linux.h~ +diff -ur rdist-6.1.5.orig/doc/Makefile.real rdist-6.1.5/doc/Makefile.real +--- rdist-6.1.5.orig/doc/Makefile.real Mon Nov 9 21:40:06 1998 ++++ rdist-6.1.5/doc/Makefile.real Tue Apr 3 10:56:28 2001 +@@ -16,7 +16,7 @@ + + doc: + +-install: ++install: install.man + + install.man: rdist.man rdistd.man + ${INSTALL} ${INSTALL_ARGS} rdist.man ${CLIENT_DEST} +Only in rdist-6.1.5/doc: Makefile.real~ +diff -ur rdist-6.1.5.orig/doc/rdist.man rdist-6.1.5/doc/rdist.man +--- rdist-6.1.5.orig/doc/rdist.man Mon Nov 9 21:38:53 1998 ++++ rdist-6.1.5/doc/rdist.man Tue Apr 3 10:56:28 2001 +@@ -171,7 +171,7 @@ + .I rdist + was compiled with the location of the old rdist + (usually either +-.I /usr/ucb/oldrdist ++.I /usr/bin/oldrdist + or + .I /usr/old/rdist) + and that program is available at run time. +@@ -511,7 +511,7 @@ + may be a colon seperated list of possible pathnames. + In this case, the first component of the path to exist is used. + i.e. +-.B "/usr/ucb/rsh:/usr/bin/remsh", ++.B "/usr/bin/rsh:/usr/bin/remsh", + .B /usr/bsd/rsh. + .TP + .B "\-t \fItimeout\fR" +Only in rdist-6.1.5/doc: rdist.man~ +diff -ur rdist-6.1.5.orig/src/Makefile.real rdist-6.1.5/src/Makefile.real +--- rdist-6.1.5.orig/src/Makefile.real Mon Nov 9 20:03:46 1998 ++++ rdist-6.1.5/src/Makefile.real Tue Apr 3 10:56:28 2001 +@@ -52,9 +52,9 @@ + $(COMMONOBJS) $(MISSINGOBJS) + + install: +- $(INSTALL) ${IN_ARGS} -o $(BIN_OWNER) -m ${RDIST_MODE} \ ++ $(INSTALL) ${IN_ARGS} -s -o $(BIN_OWNER) -m ${RDIST_MODE} \ + $(CLIENT_BIN) $(BIN_DIR)/$(CLIENT) +- $(INSTALL) ${IN_ARGS} -o ${BIN_OWNER} -m ${RDISTD_MODE} \ ++ $(INSTALL) ${IN_ARGS} -s -o ${BIN_OWNER} -m ${RDISTD_MODE} \ + $(SERVER_BIN) $(BIN_DIR)/$(SERVER) + + install.man: +Only in rdist-6.1.5/src: Makefile.real~ diff --git a/source/n/rdist/rdist.SlackBuild b/source/n/rdist/rdist.SlackBuild new file mode 100755 index 000000000..e2dd87cdd --- /dev/null +++ b/source/n/rdist/rdist.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=6.1.5 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rdist +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_rdist.tar.gz + +cd $TMP +rm -rf rdist-$VERSION +tar xvf $CWD/rdist-$VERSION.tar.gz || exit 1 +cd rdist-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/rdist-$VERSION.diff.gz | patch -p1 --backup +# Modern tools require patching: +zcat $CWD/rdist-6.1.5-bison.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/rdist-6.1.5-cleanup.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/rdist-6.1.5-varargs.diff.gz | patch -p1 --verbose || exit 1 + +make $NUMJOBS || make || exit 1 + +cd src +strip rdist rdistd +cat rdist > $PKG/usr/bin/rdist +cat rdistd > $PKG/usr/bin/rdistd + +cd ../doc +cat rdist.man | gzip -9c > $PKG/usr/man/man1/rdist.1.gz +cat rdistd.man | gzip -9c > $PKG/usr/man/man1/rdistd.1.gz + +cd .. +mkdir -p $PKG/usr/doc/rdist-$VERSION +cp -a README $PKG/usr/doc/rdist-$VERSION +chmod 644 $PKG/usr/doc/rdist-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/rdist-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rdist/slack-desc b/source/n/rdist/slack-desc new file mode 100644 index 000000000..b6e2fa789 --- /dev/null +++ b/source/n/rdist/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rdist: rdist (remote file distribution program) +rdist: +rdist: Rdist is a remote file distribution program. It is used to maintain +rdist: identical copies of files over multiple network hosts. It preserves +rdist: the owner, group, mode, and mtime of files if possible and can update +rdist: programs that are executing. +rdist: +rdist: +rdist: +rdist: +rdist: diff --git a/source/n/rp-pppoe/doinst.sh b/source/n/rp-pppoe/doinst.sh new file mode 100644 index 000000000..527dfa903 --- /dev/null +++ b/source/n/rp-pppoe/doinst.sh @@ -0,0 +1,16 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ppp/firewall-masq.new +config etc/ppp/firewall-standalone.new +config etc/ppp/pppoe-server-options.new +config etc/ppp/pppoe.conf.new diff --git a/source/n/rp-pppoe/rp-pppoe.SlackBuild b/source/n/rp-pppoe/rp-pppoe.SlackBuild new file mode 100755 index 000000000..7dfa839c8 --- /dev/null +++ b/source/n/rp-pppoe/rp-pppoe.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.10 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rp-pppoe + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf rp-pppoe-$VERSION +tar xvf $CWD/rp-pppoe-$VERSION.tar.gz || exit 1 +cd rp-pppoe-$VERSION/src || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --enable-plugin=/ppp-2.4.4 \ + --prefix=/usr \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install docdir=/usr/doc/rp-pppoe-$VERSION DESTDIR=$PKG install || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/etc/ppp + for config in firewall-masq firewall-standalone pppoe-server-options pppoe.conf ; do + mv $config ${config}.new + done +) + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/rp-pppoe-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rp-pppoe/slack-desc b/source/n/rp-pppoe/slack-desc new file mode 100644 index 000000000..8aed9d0c4 --- /dev/null +++ b/source/n/rp-pppoe/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rp-pppoe: rp-pppoe (Roaring Penguin PPPoE client) +rp-pppoe: +rp-pppoe: PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by +rp-pppoe: many ADSL Internet Service Providers. Roaring Penguin has a free +rp-pppoe: client for Linux systems to connect to PPPoE service providers. +rp-pppoe: +rp-pppoe: The client is a user-mode program and does not require any kernel +rp-pppoe: modifications. It is fully compliant with RFC 2516, the official +rp-pppoe: PPPoE specification. +rp-pppoe: +rp-pppoe: diff --git a/source/n/rsync/rsync.SlackBuild b/source/n/rsync/rsync.SlackBuild new file mode 100755 index 000000000..e4def4e3c --- /dev/null +++ b/source/n/rsync/rsync.SlackBuild @@ -0,0 +1,88 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.0.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rsync +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf rsync-$VERSION +tar xvf $CWD/rsync-$VERSION.tar.?z* || exit 1 +cd rsync-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/bin +cat rsync > $PKG/usr/bin/rsync +chmod 755 $PKG/usr/bin/rsync + +mkdir -p $PKG/usr/man/man1 +cat rsync.1 | gzip -9c > $PKG/usr/man/man1/rsync.1.gz + +mkdir -p $PKG/usr/man/man5 +cat rsyncd.conf.5 | gzip -9c > $PKG/usr/man/man5/rsyncd.conf.5.gz + +mkdir -p $PKG/usr/doc/rsync-$VERSION/popt +cp -a \ + COPYING* INSTALL NEWS README TODO tech_report.tex \ + $PKG/usr/doc/rsync-$VERSION +( cd popt + cp -a CHANGES COPYING README README.rsync $PKG/usr/doc/rsync-$VERSION/popt +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/rsync-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rsync/slack-desc b/source/n/rsync/slack-desc new file mode 100644 index 000000000..23284ae6b --- /dev/null +++ b/source/n/rsync/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rsync: rsync (remote file sync) +rsync: +rsync: rsync is a replacement for rcp that has many more features. It +rsync: uses the "rsync algorithm" which provides a very fast method for +rsync: bringing remote files into sync. It does this by sending just the +rsync: differences in the files across the link, without requiring that both +rsync: sets of files are present at one of the ends of the link beforehand. +rsync: +rsync: rsync was written by Andrew Tridgell and Paul Mackerras. +rsync: +rsync: diff --git a/source/n/rt61-firmware/rt61-firmware.SlackBuild b/source/n/rt61-firmware/rt61-firmware.SlackBuild new file mode 100755 index 000000000..7734f9ee8 --- /dev/null +++ b/source/n/rt61-firmware/rt61-firmware.SlackBuild @@ -0,0 +1,60 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +CWD=$(pwd) + +PKGNAM=rt61-firmware +VERSION=${VERSION:-1.2} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf RT61_Firmware_V${VERSION} +unzip $CWD/RT61_Firmware_V${VERSION}.zip || exit 1 +cd RT61_Firmware_V${VERSION} + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install: +mkdir -p $PKG/lib/firmware +mv LICEN* $PKG/lib/firmware/LICENSE.ralink-firmware-RT61_Firmware_V${VERSION}.txt +mv * $PKG/lib/firmware + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rt61-firmware/slack-desc b/source/n/rt61-firmware/slack-desc new file mode 100644 index 000000000..584771e94 --- /dev/null +++ b/source/n/rt61-firmware/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rt61-firmware: rt61-firmware (Firmware for Ralink rt61 wireless chips) +rt61-firmware: +rt61-firmware: This is firmware for the Ralink rt61 wireless chip. +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: +rt61-firmware: diff --git a/source/n/rt71w-firmware/rt71w-firmware.SlackBuild b/source/n/rt71w-firmware/rt71w-firmware.SlackBuild new file mode 100755 index 000000000..05fae27a8 --- /dev/null +++ b/source/n/rt71w-firmware/rt71w-firmware.SlackBuild @@ -0,0 +1,58 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=rt71w-firmware +VERSION=${VERSION:-1.8} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf RT71W_Firmware_V${VERSION} +unzip $CWD/RT71W_Firmware_V${VERSION}.zip || exit 1 +cd RT71W_Firmware_V${VERSION} || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install: +mkdir -p $PKG/lib/firmware +mv LICEN* $PKG/lib/firmware/LICENSE.ralink-firmware-RT71W_Firmware_V${VERSION}.txt +mv * $PKG/lib/firmware + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/rt71w-firmware/slack-desc b/source/n/rt71w-firmware/slack-desc new file mode 100644 index 000000000..57fc43e97 --- /dev/null +++ b/source/n/rt71w-firmware/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rt71w-firmware: rt71w-firmware (Firmware for Ralink rt71w wireless chips) +rt71w-firmware: +rt71w-firmware: This is firmware for the Ralink rt71w wireless chip. +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: +rt71w-firmware: diff --git a/source/n/samba/doinst.sh b/source/n/samba/doinst.sh new file mode 100644 index 000000000..c7b358ed1 --- /dev/null +++ b/source/n/samba/doinst.sh @@ -0,0 +1,16 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.samba.new +# This won't be needed. The point here is to preserve the permissions of the existing +# file, if there is one. I don't see major new development happening in rc.samba... ;-) +rm -f etc/rc.d/rc.samba.new diff --git a/source/n/samba/rc.samba b/source/n/samba/rc.samba new file mode 100644 index 000000000..2a28f3e52 --- /dev/null +++ b/source/n/samba/rc.samba @@ -0,0 +1,45 @@ +#!/bin/sh +# +# /etc/rc.d/rc.samba +# +# Start/stop/restart the Samba SMB file/print server. +# +# To make Samba start automatically at boot, make this +# file executable: chmod 755 /etc/rc.d/rc.samba +# + +samba_start() { + if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd -a -r /etc/samba/smb.conf ]; then + echo "Starting Samba: /usr/sbin/smbd -D" + /usr/sbin/smbd -D + echo " /usr/sbin/nmbd -D" + /usr/sbin/nmbd -D + fi +} + +samba_stop() { + killall smbd nmbd +} + +samba_restart() { + samba_stop + sleep 2 + samba_start +} + +case "$1" in +'start') + samba_start + ;; +'stop') + samba_stop + ;; +'restart') + samba_restart + ;; +*) + # Default is "start", for backwards compatibility with previous + # Slackware versions. This may change to a 'usage' error someday. + samba_start +esac + diff --git a/source/n/samba/samba.SlackBuild b/source/n/samba/samba.SlackBuild new file mode 100755 index 000000000..e62aab09b --- /dev/null +++ b/source/n/samba/samba.SlackBuild @@ -0,0 +1,198 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-3.2.13} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-samba +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf samba-$VERSION +tar xvf $CWD/samba-$VERSION.tar.?z* || exit 1 +cd samba-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cd source +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +# Some of these options could be auto-detected, but declaring them +# here doesn't hurt and helps document what features we're trying to +# build in. +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-libdir=/usr/lib${LIBDIRSUFFIX} \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --with-configdir=/etc/samba \ + --with-piddir=/var/run \ + --with-privatedir=/etc/samba/private \ + --localstatedir=/var \ + --with-lockdir=/var/cache/samba \ + --with-swatdir=/usr/share/swat \ + --with-logfilebase=/var/log/samba \ + --enable-cups \ + --enable-static=no \ + --enable-shared=yes \ + --with-acl-support=yes \ + --with-automount \ + --with-cifsmount \ + --with-quotas \ + --with-syslog \ + --with-utmp \ + --with-libsmbclient \ + --with-winbind \ + --with-ldap \ + --build=$ARCH-slackware-linux + # Using with-fhs overrides our libdir, and besides we are already hard-coding + # directories. So, now we define them all explicitly... + #--with-fhs \ + +# -j options don't seem to work... +make || exit 1 + +mkdir -p \ + $PKG/usr/doc/samba-$VERSION \ + $PKG/var/spool/samba \ + $PKG/var/log/samba \ + $PKG/etc/samba/private \ + $PKG/var/cache/samba +chmod 700 $PKG/etc/samba/private +chmod 1777 $PKG/var/spool/samba + +make install-everything DESTDIR=$PKG || exit 1 + +# Install libnss_win* libraries: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +cp -a nsswitch/libnss_winbind.so $PKG/lib${LIBDIRSUFFIX}/libnss_winbind.so.2 +cp -a nsswitch/libnss_wins.so $PKG/lib${LIBDIRSUFFIX}/libnss_wins.so.2 +( cd $PKG/lib${LIBDIRSUFFIX} + ln -sf libnss_winbind.so.2 libnss_winbind.so + ln -sf libnss_wins.so.2 libnss_wins.so +) + +## Make sure that other programs can link against libsmbclient: +#( cd $PKG/usr/lib${LIBDIRSUFFIX} +# for FILE in samba/libsmbclient.so* ; do +# ln -sf $FILE +# done +#) + +# Add some (u)mount links: +mkdir -p $PKG/sbin +( cd $PKG/sbin + # SMBFS is obsolete in the kernel now -- use mount.cifs + #rm -f mount.smbfs ; ln -sf /usr/bin/smbmount mount.smbfs + # Add a wrapper script from Debian that's included in the upstream Samba + # sources to help out people (like me ;-) who don't read every speck of + # documentation: + cat $TMP/samba-$VERSION/examples/scripts/mount/mount.smbfs > mount.smbfs + chmod 755 $PKG/sbin/mount.smbfs + # I suppose this wouldn't be the worst idea in the world, either: + ( cd $PKG/usr/bin ; ln -sf /sbin/mount.smbfs smbmount ) + rm -f mount.cifs ; ln -sf /usr/sbin/mount.cifs mount.cifs + # smbumount was giving me problems so it seems wise to play it safe + #rm -f umount.smbfs ; ln -sf /usr/bin/smbumount umount.smbfs + #rm -f umount.cifs ; ln -sf /usr/sbin/umount.cifs umount.cifs +) + +# Add a sample config file: +cat $CWD/smb.conf.default > $PKG/etc/samba/smb.conf-sample + +if [ ! -r $PKG/usr/bin/smbget ]; then + rm -f $PKG/usr/share/man/man1/smbget.1 + rm -f $PKG/usr/share/swat/help/smbget.1.html +fi + +# We'll add rc.samba to the init directory, but chmod 644 so that it doesn't +# start by default: +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.samba > $PKG/etc/rc.d/rc.samba.new +chmod 644 $PKG/etc/rc.d/rc.samba.new + +mv $PKG/usr/share/man $PKG/usr +gzip -9 $PKG/usr/man/man?/*.? + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cd .. +cp -a \ + COPYING* MAINTAINERS Manifest PFIF.txt README* \ + Read-Manifest-Now Roadmap WHATSNEW.txt docs examples \ + $PKG/usr/doc/samba-$VERSION +# These are installed elsewhere: +rm -rf $PKG/usr/doc/samba-$VERSION/docs/htmldocs \ + $PKG/usr/doc/samba-$VERSION/docs/manpages +mkdir -p $PKG/usr/doc/samba-$VERSION/docs +( cd $PKG/usr/doc/samba-$VERSION/docs + ln -sf /usr/share/swat/help htmldocs + ln -sf /usr/share/swat/using_samba using_samba +) +# I'm sorry, but when all this info is included in HTML, adding 7MB worth of +# PDF files just to have extra artwork is more fluff than I'll agree to. +rm -f $PKG/usr/doc/samba-$VERSION/docs/*.pdf +# Also redundant also: +rm -rf $PKG/usr/doc/samba-$VERSION/docs/docbook + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cat << EOF + +*** Be sure the package contains: + +drwx------ 2 root root 1024 Mar 12 13:21 /etc/samba/private +drwxr-xr-x 2 root root 4096 May 3 15:46 /var/cache/samba/ +drwxr-xr-x 2 root root 48 Aug 29 13:06 /var/log/samba/ +drwxrwxrwt 2 root root 1024 Mar 12 13:21 /var/spool/samba/ + +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/samba-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/samba/slack-desc b/source/n/samba/slack-desc new file mode 100644 index 000000000..dc42f2b6f --- /dev/null +++ b/source/n/samba/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +samba: samba (SMB file and print server) +samba: +samba: Samba is an SMB file and print server for SMB and CIFS clients. It +samba: allows you to make file space or printers on a Samba host available to +samba: any PCs running SMB clients (such as PCs running Windows). +samba: +samba: If you have any SMB servers (such as Windows NT/2K Server), you may be +samba: able to replace them by or supplement them with Samba. One of Samba's +samba: big strengths is integration, so you can use it to tie together your +samba: Linux hosts and Windows PC clients. +samba: diff --git a/source/n/samba/smb.conf.default b/source/n/samba/smb.conf.default new file mode 100644 index 000000000..68e62f930 --- /dev/null +++ b/source/n/samba/smb.conf.default @@ -0,0 +1,271 @@ +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# For a step to step guide on installing, configuring and using samba, +# read the Samba-HOWTO-Collection. This may be obtained from: +# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf +# +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: +# http://www.samba.org/samba/docs/Samba-Guide.pdf +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not made any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 + workgroup = MYGROUP + +# server string is the equivalent of the NT Description field + server string = Samba Server + +# Security mode. Defines in which mode Samba will operate. Possible +# values are share, user, server, domain and ads. Most people will want +# user level security. See the Samba-HOWTO-Collection for details. + security = user + +# This option is important for security. It allows you to restrict +# connections to machines which are on your local network. The +# following example restricts access to two C class networks and +# the "loopback" interface. For more examples of the syntax see +# the smb.conf man page +; hosts allow = 192.168.1. 192.168.2. 127. + +# If you want to automatically load your printer list rather +# than setting them up individually then you'll need this + load printers = yes + +# you may wish to override the location of the printcap file +; printcap name = /etc/printcap + +# on SystemV system setting printcap name to lpstat should allow +# you to automatically obtain a printer list from the SystemV spool +# system +; printcap name = lpstat + +# It should not be necessary to specify the print system type unless +# it is non-standard. Currently supported print systems include: +# bsd, cups, sysv, plp, lprng, aix, hpux, qnx +; printing = cups + +# Uncomment this if you want a guest account, you must add this to /etc/passwd +# otherwise the user "nobody" is used +; guest account = pcguest + +# this tells Samba to use a separate log file for each machine +# that connects + log file = /var/log/samba.%m + +# Put a capping on the size of the log files (in Kb). + max log size = 50 + +# Use password server option only with security = server +# The argument list may include: +# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] +# or to auto-locate the domain controller/s +# password server = * +; password server = + +# Use the realm option only with security = ads +# Specifies the Active Directory realm the host is part of +; realm = MY_REALM + +# Backend to store user information in. New installations should +# use either tdbsam or ldapsam. smbpasswd is available for backwards +# compatibility. tdbsam requires no further configuration. +; passdb backend = tdbsam + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting. +# Note: Consider carefully the location in the configuration file of +# this line. The included file is read at that point. +; include = /usr/local/samba/lib/smb.conf.%m + +# Configure Samba to use multiple interfaces +# If you have multiple network interfaces then you must list them +# here. See the man page for details. +; interfaces = 192.168.12.2/24 192.168.13.2/24 + +# Browser Control Options: +# set local master to no if you don't want Samba to become a master +# browser on your network. Otherwise the normal election rules apply +; local master = no + +# OS Level determines the precedence of this server in master browser +# elections. The default value should be reasonable +; os level = 33 + +# Domain Master specifies Samba to be the Domain Master Browser. This +# allows Samba to collate browse lists between subnets. Don't use this +# if you already have a Windows NT domain controller doing this job +; domain master = yes + +# Preferred Master causes Samba to force a local browser election on startup +# and gives it a slightly higher chance of winning the election +; preferred master = yes + +# Enable this if you want Samba to be a domain logon server for +# Windows95 workstations. +; domain logons = yes + +# if you enable domain logons then you may want a per-machine or +# per user logon script +# run a specific logon batch file per workstation (machine) +; logon script = %m.bat +# run a specific logon batch file per username +; logon script = %U.bat + +# Where to store roving profiles (only for Win95 and WinNT) +# %L substitutes for this servers netbios name, %U is username +# You must uncomment the [Profiles] share below +; logon path = \\%L\Profiles\%U + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server +; wins support = yes + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# WINS Proxy - Tells Samba to answer name resolution queries on +# behalf of a non WINS capable client, for this to work there must be +# at least one WINS Server on the network. The default is NO. +; wins proxy = yes + +# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names +# via DNS nslookups. The default is NO. + dns proxy = no + +# These scripts are used on a domain controller or stand-alone +# machine to add or delete corresponding unix accounts +; add user script = /usr/sbin/useradd %u +; add group script = /usr/sbin/groupadd %g +; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u +; delete user script = /usr/sbin/userdel %u +; delete user from group script = /usr/sbin/deluser %u %g +; delete group script = /usr/sbin/groupdel %g + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /usr/local/samba/lib/netlogon +; guest ok = yes +; writable = no +; share modes = no + + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /usr/local/samba/profiles +; browseable = no +; guest ok = yes + + +# NOTE: If you have a BSD-style print system there is no need to +# specifically define each individual printer +[printers] + comment = All Printers + path = /var/spool/samba + browseable = no +# Set public = yes to allow user 'guest account' to print + guest ok = no + writable = no + printable = yes + +# This one is useful for people to share files +;[tmp] +; comment = Temporary file space +; path = /tmp +; read only = no +; public = yes + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba +; public = yes +; writable = yes +; printable = no +; write list = @staff + +# Other examples. +# +# A private printer, usable only by fred. Spool data will be placed in fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +;[fredsprn] +; comment = Fred's Printer +; valid users = fred +; path = /homes/fred +; printer = freds_printer +; public = no +; writable = no +; printable = yes + +# A private directory, usable only by fred. Note that fred requires write +# access to the directory. +;[fredsdir] +; comment = Fred's Service +; path = /usr/somewhere/private +; valid users = fred +; public = no +; writable = yes +; printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %U option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +;[pchome] +; comment = PC Directories +; path = /usr/pc/%m +; public = no +; writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +;[public] +; path = /usr/somewhere/else/public +; public = yes +; only guest = yes +; writable = yes +; printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +;[myshare] +; comment = Mary's and Fred's stuff +; path = /usr/somewhere/shared +; valid users = mary fred +; public = no +; writable = yes +; printable = no +; create mask = 0765 + + diff --git a/source/n/samba/smb.conf.default.orig b/source/n/samba/smb.conf.default.orig new file mode 100644 index 000000000..971ca19c8 --- /dev/null +++ b/source/n/samba/smb.conf.default.orig @@ -0,0 +1,271 @@ +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# For a step to step guide on installing, configuring and using samba, +# read the Samba-HOWTO-Collection. This may be obtained from: +# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf +# +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: +# http://www.samba.org/samba/docs/Samba-Guide.pdf +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not made any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH + workgroup = MYGROUP + +# server string is the equivalent of the NT Description field + server string = Samba Server + +# Security mode. Defines in which mode Samba will operate. Possible +# values are share, user, server, domain and ads. Most people will want +# user level security. See the Samba-HOWTO-Collection for details. + security = user + +# This option is important for security. It allows you to restrict +# connections to machines which are on your local network. The +# following example restricts access to two C class networks and +# the "loopback" interface. For more examples of the syntax see +# the smb.conf man page +; hosts allow = 192.168.1. 192.168.2. 127. + +# If you want to automatically load your printer list rather +# than setting them up individually then you'll need this + load printers = yes + +# you may wish to override the location of the printcap file +; printcap name = /etc/printcap + +# on SystemV system setting printcap name to lpstat should allow +# you to automatically obtain a printer list from the SystemV spool +# system +; printcap name = lpstat + +# It should not be necessary to specify the print system type unless +# it is non-standard. Currently supported print systems include: +# bsd, cups, sysv, plp, lprng, aix, hpux, qnx +; printing = cups + +# Uncomment this if you want a guest account, you must add this to /etc/passwd +# otherwise the user "nobody" is used +; guest account = pcguest + +# this tells Samba to use a separate log file for each machine +# that connects + log file = /usr/local/samba/var/log.%m + +# Put a capping on the size of the log files (in Kb). + max log size = 50 + +# Use password server option only with security = server +# The argument list may include: +# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] +# or to auto-locate the domain controller/s +# password server = * +; password server = + +# Use the realm option only with security = ads +# Specifies the Active Directory realm the host is part of +; realm = MY_REALM + +# Backend to store user information in. New installations should +# use either tdbsam or ldapsam. smbpasswd is available for backwards +# compatibility. tdbsam requires no further configuration. +; passdb backend = tdbsam + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# of the machine that is connecting. +# Note: Consider carefully the location in the configuration file of +# this line. The included file is read at that point. +; include = /usr/local/samba/lib/smb.conf.%m + +# Configure Samba to use multiple interfaces +# If you have multiple network interfaces then you must list them +# here. See the man page for details. +; interfaces = 192.168.12.2/24 192.168.13.2/24 + +# Browser Control Options: +# set local master to no if you don't want Samba to become a master +# browser on your network. Otherwise the normal election rules apply +; local master = no + +# OS Level determines the precedence of this server in master browser +# elections. The default value should be reasonable +; os level = 33 + +# Domain Master specifies Samba to be the Domain Master Browser. This +# allows Samba to collate browse lists between subnets. Don't use this +# if you already have a Windows NT domain controller doing this job +; domain master = yes + +# Preferred Master causes Samba to force a local browser election on startup +# and gives it a slightly higher chance of winning the election +; preferred master = yes + +# Enable this if you want Samba to be a domain logon server for +# Windows95 workstations. +; domain logons = yes + +# if you enable domain logons then you may want a per-machine or +# per user logon script +# run a specific logon batch file per workstation (machine) +; logon script = %m.bat +# run a specific logon batch file per username +; logon script = %U.bat + +# Where to store roving profiles (only for Win95 and WinNT) +# %L substitutes for this servers netbios name, %U is username +# You must uncomment the [Profiles] share below +; logon path = \\%L\Profiles\%U + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server +; wins support = yes + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# WINS Proxy - Tells Samba to answer name resolution queries on +# behalf of a non WINS capable client, for this to work there must be +# at least one WINS Server on the network. The default is NO. +; wins proxy = yes + +# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names +# via DNS nslookups. The default is NO. + dns proxy = no + +# These scripts are used on a domain controller or stand-alone +# machine to add or delete corresponding unix accounts +; add user script = /usr/sbin/useradd %u +; add group script = /usr/sbin/groupadd %g +; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u +; delete user script = /usr/sbin/userdel %u +; delete user from group script = /usr/sbin/deluser %u %g +; delete group script = /usr/sbin/groupdel %g + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /usr/local/samba/lib/netlogon +; guest ok = yes +; writable = no +; share modes = no + + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /usr/local/samba/profiles +; browseable = no +; guest ok = yes + + +# NOTE: If you have a BSD-style print system there is no need to +# specifically define each individual printer +[printers] + comment = All Printers + path = /usr/spool/samba + browseable = no +# Set public = yes to allow user 'guest account' to print + guest ok = no + writable = no + printable = yes + +# This one is useful for people to share files +;[tmp] +; comment = Temporary file space +; path = /tmp +; read only = no +; public = yes + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba +; public = yes +; writable = yes +; printable = no +; write list = @staff + +# Other examples. +# +# A private printer, usable only by fred. Spool data will be placed in fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +;[fredsprn] +; comment = Fred's Printer +; valid users = fred +; path = /homes/fred +; printer = freds_printer +; public = no +; writable = no +; printable = yes + +# A private directory, usable only by fred. Note that fred requires write +# access to the directory. +;[fredsdir] +; comment = Fred's Service +; path = /usr/somewhere/private +; valid users = fred +; public = no +; writable = yes +; printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %U option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +;[pchome] +; comment = PC Directories +; path = /usr/pc/%m +; public = no +; writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +;[public] +; path = /usr/somewhere/else/public +; public = yes +; only guest = yes +; writable = yes +; printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +;[myshare] +; comment = Mary's and Fred's stuff +; path = /usr/somewhere/shared +; valid users = mary fred +; public = no +; writable = yes +; printable = no +; create mask = 0765 + + diff --git a/source/n/samba/smb.conf.diff b/source/n/samba/smb.conf.diff new file mode 100644 index 000000000..553440c54 --- /dev/null +++ b/source/n/samba/smb.conf.diff @@ -0,0 +1,29 @@ +--- smb.conf.default.orig 2008-05-28 07:41:11.000000000 -0500 ++++ smb.conf.default 2008-05-28 13:53:01.000000000 -0500 +@@ -22,7 +22,7 @@ + #======================= Global Settings ===================================== + [global] + +-# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH ++# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 + workgroup = MYGROUP + + # server string is the equivalent of the NT Description field +@@ -63,7 +63,7 @@ + + # this tells Samba to use a separate log file for each machine + # that connects +- log file = /usr/local/samba/var/log.%m ++ log file = /var/log/samba.%m + + # Put a capping on the size of the log files (in Kb). + max log size = 50 +@@ -184,7 +184,7 @@ + # specifically define each individual printer + [printers] + comment = All Printers +- path = /usr/spool/samba ++ path = /var/spool/samba + browseable = no + # Set public = yes to allow user 'guest account' to print + guest ok = no diff --git a/source/n/sendmail/Build b/source/n/sendmail/Build new file mode 100644 index 000000000..21950d496 --- /dev/null +++ b/source/n/sendmail/Build @@ -0,0 +1,29 @@ +#!/bin/sh +# Copyright 2004 Slackware Linux, Inc. Concord, CA 94520 +# Copyright 2007, 2008 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# A script to build .cf files from .mc files: + +for mcfile in $* ; do + /usr/bin/m4 /usr/share/sendmail/cf/m4/cf.m4 $mcfile > $(basename $mcfile .mc).cf +done + diff --git a/source/n/sendmail/SlackBuild b/source/n/sendmail/SlackBuild new file mode 100755 index 000000000..462f16e9d --- /dev/null +++ b/source/n/sendmail/SlackBuild @@ -0,0 +1,3 @@ +#!/bin/sh +./SlackBuild-sendmail $* +./SlackBuild-sendmail-cf $* diff --git a/source/n/sendmail/SlackBuild-sendmail b/source/n/sendmail/SlackBuild-sendmail new file mode 100755 index 000000000..54dc0c5c2 --- /dev/null +++ b/source/n/sendmail/SlackBuild-sendmail @@ -0,0 +1,156 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=8.14.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sendmail + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_sendmail.tar.gz +[ -n "${LIBDIRSUFFIX}" ] && mv $PKG/usr/lib $PKG/usr/lib${LIBDIRSUFFIX} + +echo "+=================+" +echo "| sendmail.$VERSION |" +echo "+=================+" +OSCPU="`uname -srm | tr ' ' '.'`" +cd $TMP +rm -rf sendmail-$VERSION +tar xvf $CWD/sendmail.$VERSION.tar.gz || exit 1 +cd sendmail-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Add TLS support to the sendmail binary: +cat $CWD/site.config.m4 > devtools/Site/site.config.m4 + +# Build .cf files for Linux: +cd $TMP/sendmail-$VERSION/cf/cf +cp $CWD/*.mc . +cp linux.uucp.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/linux.uucp.cf +cp sendmail-slackware.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware.cf +cp sendmail-slackware-tls.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware-tls.cf +cp sendmail-slackware-tls-sasl.mc config.mc +sh Build config.cf +mv config.cf $PKG/usr/share/sendmail/sendmail-slackware-tls-sasl.cf + +# Add a sample sendmail.cf: +cat $PKG/usr/share/sendmail/sendmail-slackware.cf > $PKG/etc/mail/sendmail.cf.new +cat submit.cf > $PKG/etc/mail/submit.cf.new + +cd $TMP/sendmail-$VERSION +## All "Build" does is call make while screwing up the options :-) +## sh Build +make O="$SLKCFLAGS" +#O="$SLKCFLAGS" sh Build +cat sendmail/mailq.1 | gzip -9c > $PKG/usr/man/man1/mailq.1.gz +cat sendmail/newaliases.1 | gzip -9c > $PKG/usr/man/man1/newaliases.1.gz +mkdir -p $PKG/usr/doc/sendmail-$VERSION +cp -a \ + FAQ INSTALL KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \ + $PKG/usr/doc/sendmail-$VERSION +( cd doc ; cp -a op $PKG/usr/doc/sendmail-$VERSION ) + +cd obj.$OSCPU/sendmail +cat sendmail > $PKG/usr/sbin/sendmail.new +cat aliases.5 | gzip -9c > $PKG/usr/man/man5/aliases.5.gz +cat sendmail.8 | gzip -9c > $PKG/usr/man/man8/sendmail.8.gz +cat statistics > $PKG/etc/mail/statistics +cat ../../sendmail/helpfile > $PKG/etc/mail/helpfile +cd ../makemap +cat makemap > $PKG/usr/sbin/makemap +cat makemap.8 | gzip -9c > $PKG/usr/man/man8/makemap.8.gz +cd ../mailstats +cat mailstats > $PKG/usr/sbin/mailstats +cat mailstats.8 | gzip -9c > $PKG/usr/man/man8/mailstats.8.gz +cd ../praliases +cat praliases > $PKG/usr/bin/praliases +chmod 755 $PKG/usr/bin/praliases +cat praliases.8 | gzip -9c > $PKG/usr/man/man8/praliases.8.gz +cd ../rmail +cat rmail > $PKG/usr/bin/rmail +cat rmail.8 | gzip -9c > $PKG/usr/man/man8/rmail.8.gz +cd ../smrsh +cat smrsh > $PKG/usr/sbin/smrsh +cat smrsh.8 | gzip -9c > $PKG/usr/man/man8/smrsh.8.gz +cd ../mail.local +cat mail.local > $PKG/usr/sbin/mail.local +cat mail.local.8 | gzip -9c > $PKG/usr/man/man8/mail.local.8.gz +cd ../vacation +cat vacation > $PKG/usr/bin/vacation +cat vacation.1 | gzip -9c > $PKG/usr/man/man1/vacation.1.gz +cd ../editmap +cat editmap > $PKG/usr/sbin/editmap +cat editmap.8 | gzip -9c > $PKG/usr/man/man8/editmap.8.gz + +# Add libmilter: +cd $TMP/sendmail-$VERSION/libmilter +./Build +cd .. +mkdir -p $PKG/usr/include +mkdir -p $PKG/usr/include/libmilter +cp -a include/libmilter/mfapi.h $PKG/usr/include/libmilter +cp -a include/libmilter/mfdef.h $PKG/usr/include/libmilter +cp -a obj.*/libmilter/libmilter.a $PKG/usr/lib${LIBDIRSUFFIX} +strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libmilter.a +chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/libmilter.a $PKG/usr/include/libmilter/* +mkdir -p $PKG/usr/doc/sendmail-$VERSION/libmilter +cp -a libmilter/README $PKG/usr/doc/sendmail-$VERSION/libmilter + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cat $CWD/slack-desc.sendmail > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sendmail-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/sendmail/SlackBuild-sendmail-cf b/source/n/sendmail/SlackBuild-sendmail-cf new file mode 100755 index 000000000..3d7fd4524 --- /dev/null +++ b/source/n/sendmail/SlackBuild-sendmail-cf @@ -0,0 +1,57 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=8.14.3 +ARCH=noarch +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sendmail-cf + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+====================+" +echo "| sendmail.cf.$VERSION |" +echo "+====================+" +( cd $TMP/sendmail-$VERSION ; find . -name "*~" -print -exec rm {} \; ) +cd $PKG +mkdir -p usr/share/sendmail/cf +cd usr/share/sendmail/cf +cp -a $TMP/sendmail-$VERSION/cf/README . +cp -a $TMP/package-sendmail/usr/share/sendmail/README.linux . +for dir in cf domain feature hack m4 mailer ostype sh siteconfig ; do + cp -a $TMP/sendmail-$VERSION/cf/$dir . +done +# Replace the sendmail Build script with a simple (working) one: +cp -a $PKG/usr/share/sendmail/cf/cf/Build $PKG/usr/share/sendmail/cf/cf/Build.orig +zcat $CWD/Build.gz > $PKG/usr/share/sendmail/cf/cf/Build +chown -R root.root * + +mkdir -p $PKG/install +cat $CWD/slack-desc.sendmail-cf > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sendmail-cf-$VERSION-noarch-$BUILD.txz + diff --git a/source/n/sendmail/linux.uucp.mc b/source/n/sendmail/linux.uucp.mc new file mode 100644 index 000000000..ffd242bb0 --- /dev/null +++ b/source/n/sendmail/linux.uucp.mc @@ -0,0 +1,8 @@ +include(`../m4/cf.m4') +VERSIONID(`linux for setup with uucp which uses domain names')dnl +OSTYPE(linux) +FEATURE(always_add_domain)dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(uucp) +define(`SMART_HOST', uucp-dom:otheruucphost) diff --git a/source/n/sendmail/sendmail-slackware-tls-sasl.mc b/source/n/sendmail/sendmail-slackware-tls-sasl.mc new file mode 100644 index 000000000..ed5753b43 --- /dev/null +++ b/source/n/sendmail/sendmail-slackware-tls-sasl.mc @@ -0,0 +1,61 @@ +dnl# This is the a sendmail .mc file for Slackware with TLS support. +dnl# To generate the sendmail.cf file from this (perhaps after making +dnl# some changes), use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware-tls.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.mc +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`TLS supporting setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# +dnl# You will need to create the certificates below with OpenSSL first: +define(`confCACERT_PATH', `/etc/mail/certs/') +define(`confCACERT', `/etc/mail/certs/CA.cert.pem') +define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem') +define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem') +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +FEATURE(`no_default_msa')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl +dnl# Allow SASL authentication/relaying: +define(`confAUTH_OPTIONS', `A p y')dnl +define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl +TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl +DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl +dnl# Daemon options after M= below that might need to be changed are: +dnl# s (allow SSL, not only TLS) +dnl# a (require authentication) +DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=Esa')dnl +LOCAL_CONFIG +dnl# Do not allow the weak SSLv2: +O CipherList=ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL diff --git a/source/n/sendmail/sendmail-slackware-tls.mc b/source/n/sendmail/sendmail-slackware-tls.mc new file mode 100644 index 000000000..01a66775b --- /dev/null +++ b/source/n/sendmail/sendmail-slackware-tls.mc @@ -0,0 +1,56 @@ +dnl# This is the a sendmail .mc file for Slackware with TLS support. +dnl# To generate the sendmail.cf file from this (perhaps after making +dnl# some changes), use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware-tls.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.mc +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`TLS supporting setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# +dnl# You will need to create the certificates below with OpenSSL first: +define(`confCACERT_PATH', `/etc/mail/certs/') +define(`confCACERT', `/etc/mail/certs/CA.cert.pem') +define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem') +define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem') +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl +DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl +dnl# Daemon options after M= below that might need to be changed are: +dnl# s (allow SSL, not only TLS) +dnl# a (require authentication) +DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=Es')dnl +LOCAL_CONFIG +dnl# Do not allow the weak SSLv2: +O CipherList=ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL diff --git a/source/n/sendmail/sendmail-slackware.mc b/source/n/sendmail/sendmail-slackware.mc new file mode 100644 index 000000000..4fd4620bf --- /dev/null +++ b/source/n/sendmail/sendmail-slackware.mc @@ -0,0 +1,42 @@ +dnl# This is the default sendmail .mc file for Slackware. To generate +dnl# the sendmail.cf file from this (perhaps after making some changes), +dnl# use the m4 files in /usr/share/sendmail/cf like this: +dnl# +dnl# cp sendmail-slackware.mc /usr/share/sendmail/cf/config.mc +dnl# cd /usr/share/sendmail/cf +dnl# sh Build config.cf +dnl# +dnl# You may then install the resulting .cf file: +dnl# cp config.cf /etc/mail/sendmail.cf +dnl# +include(`../m4/cf.m4') +VERSIONID(`default setup for Slackware Linux')dnl +OSTYPE(`linux')dnl +dnl# These settings help protect against people verifying email addresses +dnl# at your site in order to send you email that you probably don't want: +define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl +dnl# Uncomment the line below to send outgoing mail through an external server: +dnl define(`SMART_HOST',`mailserver.example.com') +dnl# No timeout for ident: +define(`confTO_IDENT', `0')dnl +dnl# Enable the line below to use smrsh to restrict what sendmail can run: +dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl +dnl# See the README in /usr/share/sendmail/cf for a ton of information on +dnl# how these options work: +FEATURE(`use_cw_file')dnl +FEATURE(`use_ct_file')dnl +FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl +FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl +FEATURE(`access_db', `hash -T /etc/mail/access')dnl +FEATURE(`blacklist_recipients')dnl +FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl +FEATURE(`always_add_domain')dnl +FEATURE(`redirect')dnl +dnl# Turn this feature on if you don't always have DNS, or enjoy junk mail: +dnl FEATURE(`accept_unresolvable_domains')dnl +EXPOSED_USER(`root')dnl +dnl# Also accept mail for localhost.localdomain: +LOCAL_DOMAIN(`localhost.localdomain')dnl +MAILER(local)dnl +MAILER(smtp)dnl +MAILER(procmail)dnl diff --git a/source/n/sendmail/site.config.m4 b/source/n/sendmail/site.config.m4 new file mode 100644 index 000000000..1f6c7f87c --- /dev/null +++ b/source/n/sendmail/site.config.m4 @@ -0,0 +1,7 @@ +APPENDDEF(`confMAPDEF', `-DNEWDB -DSTARTTLS -DSASL=2 -DTCPWRAPPERS -DNIS -DMAP_REGEX -DSOCKETMAP') +APPENDDEF(`confLIBS', `-lnsl -lssl -lcrypto -lsasl2 -lwrap -lm -ldb -lresolv') +APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER') +APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER') +APPENDDEF(`conf_libmilter_ENVDEF', `-D_FFR_MILTER_ROOT_UNSAFE ') +APPENDDEF(`confENVDEF', `-DBROKEN_PTHREAD_SLEEP') +APPENDDEF(`confENVDEF', `-D_FFR_TLS_1')dnl diff --git a/source/n/sendmail/slack-desc.sendmail b/source/n/sendmail/slack-desc.sendmail new file mode 100644 index 000000000..cdcc9387a --- /dev/null +++ b/source/n/sendmail/slack-desc.sendmail @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sendmail: sendmail (mail transfer agent) +sendmail: +sendmail: Eric Allman's mail transport agent. The _Unix System Administration +sendmail: Handbook_ calls sendmail 'The most complex and complete mail delivery +sendmail: system in common use...' +sendmail: +sendmail: Ready-made configuration files are included for systems connected by +sendmail: TCP/IP (with or without a nameserver) and for systems using UUCP. +sendmail: +sendmail: The procmail package is required to handle local mail delivery. +sendmail: diff --git a/source/n/sendmail/slack-desc.sendmail-cf b/source/n/sendmail/slack-desc.sendmail-cf new file mode 100644 index 000000000..df56efdc8 --- /dev/null +++ b/source/n/sendmail/slack-desc.sendmail-cf @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sendmail-cf: sendmail-cf (configuration files for sendmail) +sendmail-cf: +sendmail-cf: These files are used to create sendmail.cf configuration files. The +sendmail-cf: m4 macro processor is also required in order to make use of these +sendmail-cf: files. +sendmail-cf: +sendmail-cf: The files and documentation in /usr/share/sendmail should make it +sendmail-cf: possible to support virtually any mail configuration. NOTE: You +sendmail-cf: probably won't need this package if you're planning to use one of the +sendmail-cf: sendmail.cf samples included in the sendmail package. +sendmail-cf: diff --git a/source/n/slrn/doinst.sh b/source/n/slrn/doinst.sh new file mode 100644 index 000000000..ad59028cd --- /dev/null +++ b/source/n/slrn/doinst.sh @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/slrn.rc.new + diff --git a/source/n/slrn/slack-desc b/source/n/slrn/slack-desc new file mode 100644 index 000000000..bbec2dab6 --- /dev/null +++ b/source/n/slrn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +slrn: slrn (s-lang read news) +slrn: +slrn: slrn is an easy to use but powerful newsreader. It is highly +slrn: customizable, supports scoring, free key bindings, and can be extended +slrn: using the s-lang macro language. +slrn: +slrn: slrn was written and is maintained by John E. Davis. +slrn: +slrn: +slrn: +slrn: diff --git a/source/n/slrn/slrn.SlackBuild b/source/n/slrn/slrn.SlackBuild new file mode 100755 index 000000000..d2a50362e --- /dev/null +++ b/source/n/slrn/slrn.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.9.9p1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-slrn +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf slrn-$VERSION +tar xvf $CWD/slrn-$VERSION.tar.bz2 || exit 1 +cd slrn-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +sed -i -e 's/-lslang$/-lslang1/' -e 's/-lslang /-lslang1 /g' $(grep -lr -- '-lslang ' *) + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --docdir=/usr/doc/slrn-$VERSION \ + --with-docdir=/usr/doc/slrn-$VERSION \ + --with-ssl \ + --with-slrnpull \ + --enable-setgid-code \ + --with-server-file=/etc/nntpserver \ + --with-slanginc=/usr/include/slang \ + --with-slanglib=/usr/lib${LIBDIRSUFFIX} \ + --with-ssl=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +# Docs go to the correct place already, but this one is big: +rm -f $PKG/usr/doc/slrn-$VERSION/changes.txt + +# Handle the slrnpull stuff +chown root.news $PKG/usr/bin/slrnpull +chmod 2750 $PKG/usr/bin/slrnpull +mkdir -p $PKG/var/spool/slrnpull/{data,news,out.going/rejects} +cp -a $PKG/usr/doc/slrn-$VERSION/slrnpull/slrnpull.conf $PKG/var/spool/slrnpull +chown -R news.news $PKG/var/spool/slrnpull +chmod -R 3777 $PKG/var/spool/slrnpull/out.going + +# Handle the global config +mkdir -p $PKG/etc +cp -a $PKG/usr/doc/slrn-$VERSION/slrn.rc $PKG/etc/slrn.rc.new + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/slrn-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/snownews/slack-desc b/source/n/snownews/slack-desc new file mode 100644 index 000000000..5ad21d08c --- /dev/null +++ b/source/n/snownews/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +snownews: snownews (a console RSS newsreader) +snownews: +snownews: Snownews is a console RSS/RDF news reader. It supports all versions +snownews: of RSS natively and can be expanded via plugins to support many other +snownews: other formats. +snownews: +snownews: Snownews was written and is maintained by Oliver Feiler. +snownews: +snownews: Snownews homepage: http://kiza.kcore.de/software/snownews +snownews: +snownews: diff --git a/source/n/snownews/snownews.SlackBuild b/source/n/snownews/snownews.SlackBuild new file mode 100755 index 000000000..a8ac91857 --- /dev/null +++ b/source/n/snownews/snownews.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.5.11 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-snownews + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf snownews-$VERSION +tar xvf $CWD/snownews-$VERSION.tar.?z || exit 1 +cd snownews-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr + +# Use ncursesw instead of regular ncurses: +sed -i 's|lncurses|lncursesw|g' platform_settings + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mv $PKG/usr/share/man $PKG/usr +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/snownews-$VERSION +cp -a \ + AUTHOR COPYING* CREDITS Changelog INSTALL README* \ + $PKG/usr/doc/snownews-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/snownews-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/stunnel/doinst.sh b/source/n/stunnel/doinst.sh new file mode 100644 index 000000000..0d6e88963 --- /dev/null +++ b/source/n/stunnel/doinst.sh @@ -0,0 +1,12 @@ +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/stunnel/stunnel.cnf.new diff --git a/source/n/stunnel/generate-stunnel-key.sh b/source/n/stunnel/generate-stunnel-key.sh new file mode 100644 index 000000000..e1e852808 --- /dev/null +++ b/source/n/stunnel/generate-stunnel-key.sh @@ -0,0 +1,13 @@ +#!/bin/sh +USE_DH=0 + +openssl req -new -x509 -days 365 -nodes \ + -config ./stunnel.cnf -out stunnel.pem -keyout stunnel.pem + +test $USE_DH -eq 0 || openssl gendh 512 >> stunnel.pem + +openssl x509 -subject -dates -fingerprint -noout \ + -in stunnel.pem + +chmod 600 stunnel.pem +rm -f stunnel.rnd diff --git a/source/n/stunnel/slack-desc b/source/n/stunnel/slack-desc new file mode 100644 index 000000000..f8ee5bc47 --- /dev/null +++ b/source/n/stunnel/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +stunnel: stunnel (Universal SSL tunnel) +stunnel: +stunnel: The stunnel program is designed to work as an SSL encryption wrapper +stunnel: between remote client and local (inetd-startable) or remote servers. +stunnel: The goal is to facilitate SSL encryption and authentication for +stunnel: non-SSL-aware programs. +stunnel: +stunnel: stunnel can be used to add SSL functionality to commonly used inetd +stunnel: daemons like POP-2, POP-3 and IMAP servers without any changes in the +stunnel: programs' code. +stunnel: diff --git a/source/n/stunnel/stunnel.SlackBuild b/source/n/stunnel/stunnel.SlackBuild new file mode 100755 index 000000000..187dfa526 --- /dev/null +++ b/source/n/stunnel/stunnel.SlackBuild @@ -0,0 +1,110 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-stunnel + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf stunnel-$VERSION +tar xvf $CWD/stunnel-$VERSION.tar.gz || exit 1 +cd stunnel-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix= \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --exec-prefix= \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --sbindir=/usr/sbin \ + --localstatedir=/var \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/var/run/stunnel +# This will produce a useless key. +make -i install DESTDIR=$PKG +# Get rid of key, so nobody tries to use it: +rm -f $PKG/etc/stunnel/stunnel.pem +# Add cnf: +cat tools/stunnel.cnf > $PKG/etc/stunnel/stunnel.cnf.new +cat $CWD/generate-stunnel-key.sh > $PKG/etc/stunnel/generate-stunnel-key.sh +chmod 755 $PKG/etc/stunnel/generate-stunnel-key.sh + +mkdir -p $PKG/usr/doc/stunnel-$VERSION +mv $PKG/usr/share/doc/stunnel/* $PKG/usr/doc/stunnel-$VERSION +rmdir $PKG/usr/share/doc/stunnel +rmdir $PKG/usr/share/doc +rmdir $PKG/usr/share + +mkdir -p $PKG/usr/man/pl/man8 +mv $PKG/usr/man/man8/stunnel.pl.8 $PKG/usr/man/pl/man8/stunnel.8 +mkdir -p $PKG/usr/man/fr/man8 +mv $PKG/usr/man/man8/stunnel.fr.8 $PKG/usr/man/fr/man8/stunnel.8 +gzip -9 $PKG/usr/man/*/man?/*.? $PKG/usr/man/man?/*.? + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# The 4.15 version of stunnel caused some bizarre perms, so +# we'll protect against that: +chmod 0755 $PKG/var/lib +chown root:root $PKG/var/lib + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/stunnel-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/tcp_wrappers/slack-desc b/source/n/tcp_wrappers/slack-desc new file mode 100644 index 000000000..be7131e74 --- /dev/null +++ b/source/n/tcp_wrappers/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tcp_wrappers: tcp_wrappers (TCP/IP daemon wrapper library and utilities) +tcp_wrappers: +tcp_wrappers: With this package you can monitor and filter incoming requests for +tcp_wrappers: network services for access control, and detection things like host +tcp_wrappers: name spoofing and host address spoofing. Nearly all the network +tcp_wrappers: daemons on Slackware are "wrapped" using this library, and most +tcp_wrappers: daemons in /etc/inetd.conf use tcp_wrappers' tcpd wrapper daemon. +tcp_wrappers: If you plan to do much networking, you will need tcp_wrappers. +tcp_wrappers: +tcp_wrappers: tcp_wrappers was written by Wietse Venema. +tcp_wrappers: diff --git a/source/n/tcp_wrappers/tcp_wrappers.SlackBuild b/source/n/tcp_wrappers/tcp_wrappers.SlackBuild new file mode 100755 index 000000000..a8cfbdcb9 --- /dev/null +++ b/source/n/tcp_wrappers/tcp_wrappers.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=7.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tcp_wrappers + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tcp_wrappers-$VERSION +tar xvf $CWD/tcp_wrappers_$VERSION.tar.gz || exit 1 +cd tcp_wrappers-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +sh extract-and-patch.sh +cd tcp_wrappers_$VERSION || exit 1 +make REAL_DAEMON_DIR=/usr/sbin linux +strip tcpd safe_finger tcpdchk tcpdmatch try-from +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cat libwrap.a > $PKG/usr/lib${LIBDIRSUFFIX}/libwrap.a +mkdir -p $PKG/usr/include +cat tcpd.h > $PKG/usr/include/tcpd.h +mkdir -p $PKG/usr/sbin +cat safe_finger > $PKG/usr/sbin/safe_finger +cat tcpd > $PKG/usr/sbin/tcpd +cat tcpdchk > $PKG/usr/sbin/tcpdchk +cat tcpdmatch > $PKG/usr/sbin/tcpdmatch +cat try-from > $PKG/usr/sbin/try-from +chmod 755 $PKG/usr/sbin/* +mkdir -p $PKG/usr/man/man{3,5,8} +cat hosts_access.3 | gzip -9c > $PKG/usr/man/man3/hosts_access.3.gz +cat hosts_access.5 | gzip -9c > $PKG/usr/man/man5/hosts_access.5.gz +cat hosts_options.5 | gzip -9c > $PKG/usr/man/man5/hosts_options.5.gz +cat tcpd.8 | gzip -9c > $PKG/usr/man/man8/tcpd.8.gz +cat tcpdchk.8 | gzip -9c > $PKG/usr/man/man8/tcpdchk.8.gz +cat tcpdmatch.8 | gzip -9c > $PKG/usr/man/man8/tcpdmatch.8.gz + +mkdir -p $PKG/usr/doc/tcp_wrappers_$VERSION +cp -a \ + BLURB CHANGES DISCLAIMER README README.NIS \ + $PKG/usr/doc/tcp_wrappers_$VERSION + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/tcp_wrappers-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/tcpdump/slack-desc b/source/n/tcpdump/slack-desc new file mode 100644 index 000000000..47bab9e71 --- /dev/null +++ b/source/n/tcpdump/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tcpdump: tcpdump (network monitor) +tcpdump: +tcpdump: Tcpdump is a tool for network monitoring and data acquisition. You +tcpdump: can use it to dump information on all the packets on a network that +tcpdump: match a boolean expression. Tcpdump uses libpcap, a system +tcpdump: independent interface for user-level packet capture. +tcpdump: +tcpdump: +tcpdump: +tcpdump: +tcpdump: diff --git a/source/n/tcpdump/tcpdump.SlackBuild b/source/n/tcpdump/tcpdump.SlackBuild new file mode 100755 index 000000000..ec1d39ee9 --- /dev/null +++ b/source/n/tcpdump/tcpdump.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.0.0 +LIBVER=1.0.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tcpdump + +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+================+" +echo "| libpcap-$LIBVER |" +echo "+================+" +cd $TMP +rm -rf libpcap-$LIBVER +tar xvf $CWD/libpcap-$LIBVER.tar.gz || exit 1 +cd libpcap-$LIBVER || exit 1 +find . -type d -name CVS -depth -exec rm -rf {} \; +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +CFLAGS="$(getconf LFS_CFLAGS)" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/libpcap-$LIBVER \ + --enable-ipv6 \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin # otherwise it errors out on install +make install DESTDIR=$PKG || exit 1 +mkdir -p $PKG/usr/doc/libpcap-$LIBVER +cp -a \ + CHANGES CREDITS FILES INSTALL.txt LICENSE README README.linux TODO VERSION \ + $PKG/usr/doc/libpcap-$LIBVER + +echo "+================+" +echo "| tcpdump-$VERSION |" +echo "+================+" +cd $TMP +rm -rf tcpdump-$VERSION +tar xvf $CWD/tcpdump-$VERSION.tar.gz || exit 1 +cd tcpdump-$VERSION || exit 1 +find . -type d -name CVS -depth -exec rm -rf {} \; +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/tcpdump-$VERSION \ + --enable-ipv6 \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +# Strange, two identical files: +( cd $PKG/usr/sbin + rm -f tcpdump + ln -s tcpdump.$VERSION tcpdump +) || exit 1 +mkdir -p $PKG/usr/doc/tcpdump-$VERSION +cp -a \ + CHANGES FILES INSTALL README \ + $PKG/usr/doc/tcpdump-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress man pages +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/tcpdump-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/telnet/netkit-telnet-0.17-ayt.patch b/source/n/telnet/netkit-telnet-0.17-ayt.patch new file mode 100644 index 000000000..943380f7b --- /dev/null +++ b/source/n/telnet/netkit-telnet-0.17-ayt.patch @@ -0,0 +1,41 @@ +--- netkit-telnet-0.17/telnetd/utility.c.ayt Wed Aug 8 16:33:01 2001 ++++ netkit-telnet-0.17/telnetd/utility.c Wed Aug 8 17:20:39 2001 +@@ -56,18 +56,25 @@ + void + netoprintf(const char *fmt, ...) + { +- int len, maxsize; ++ int len = 0, maxsize; + va_list ap; + int done=0; + + while (!done) { + maxsize = sizeof(netobuf) - (nfrontp - netobuf); ++ if (maxsize < 0) { ++ /* no way this is gonna fit - try to flush some */ ++ netflush(); ++ maxsize = sizeof(netobuf) - (nfrontp - netobuf); ++ if (maxsize < 0) ++ break; ++ } + + va_start(ap, fmt); + len = vsnprintf(nfrontp, maxsize, fmt, ap); + va_end(ap); + +- if (len<0 || len==maxsize) { ++ if (len<=0 || len==maxsize) { + /* didn't fit */ + netflush(); + } +--- netkit-telnet-0.17/telnetd/telnetd.c.ayt Wed Aug 8 16:33:01 2001 ++++ netkit-telnet-0.17/telnetd/telnetd.c Wed Aug 8 17:21:44 2001 +@@ -1277,7 +1277,7 @@ + return; + } + #endif +- netoprintf("\r\n[%s : yes]\r\n", host_name); ++ netoprintf("\r\n[Yes]\r\n"); + } + + void doeof(void) { diff --git a/source/n/telnet/netkit-telnet-0.17.diff b/source/n/telnet/netkit-telnet-0.17.diff new file mode 100644 index 000000000..ecd2ba355 --- /dev/null +++ b/source/n/telnet/netkit-telnet-0.17.diff @@ -0,0 +1,10 @@ +--- ./telnetd/utility.c.orig Sun Feb 25 18:20:41 2001 ++++ ./telnetd/utility.c Sun Feb 25 18:20:59 2001 +@@ -41,6 +41,7 @@ + + #include + #include ++#include + + #ifdef AUTHENTICATE + #include diff --git a/source/n/telnet/slack-desc b/source/n/telnet/slack-desc new file mode 100644 index 000000000..89ba84c3f --- /dev/null +++ b/source/n/telnet/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +telnet: telnet (the telnet client and daemon) +telnet: +telnet: telnet supports the original DARPA telnet interactive communication +telnet: protocol. As connecting to a telnetd server transmits your password +telnet: over the network in cleartext, telnet's use as a login protocol has +telnet: been mostly superceded by the use of ssh and sshd. However, the +telnet: telnet client is still a very handy tool, and telnetd may still have +telnet: some uses on networks that are known to be secure. +telnet: +telnet: telnet and telnetd were ported from BSD. +telnet: diff --git a/source/n/telnet/telnet-OpenBSD-014_telnet.diff b/source/n/telnet/telnet-OpenBSD-014_telnet.diff new file mode 100644 index 000000000..dee7245de --- /dev/null +++ b/source/n/telnet/telnet-OpenBSD-014_telnet.diff @@ -0,0 +1,322 @@ +Apply by doing: + cd /usr/src + patch -p0 < 014_telnet.patch + +Then rebuild and install telnet: + cd usr.bin/telnet + make obj + make depend + make + make install + +Index: usr.bin/telnet/authenc.c +=================================================================== +RCS file: /cvs/src/usr.bin/telnet/authenc.c,v +retrieving revision 1.6 +retrieving revision 1.6.6.1 +diff -u -p -r1.6 -r1.6.6.1 +--- usr.bin/telnet/authenc.c 3 Jun 2003 02:56:18 -0000 1.6 ++++ usr.bin/telnet/authenc.c 29 Mar 2005 19:49:10 -0000 1.6.6.1 +@@ -80,7 +80,7 @@ telnet_spin() + telnet_getenv(val) + const char *val; + { +- return((char *)env_getvalue((unsigned char *)val)); ++ return((char *)env_getvalue((unsigned char *)val, 0)); + } + + char * +Index: usr.bin/telnet/commands.c +=================================================================== +RCS file: /cvs/src/usr.bin/telnet/commands.c,v +retrieving revision 1.46 +retrieving revision 1.46.4.1 +diff -u -p -r1.46 -r1.46.4.1 +--- usr.bin/telnet/commands.c 28 Dec 2003 21:53:01 -0000 1.46 ++++ usr.bin/telnet/commands.c 29 Mar 2005 19:49:10 -0000 1.46.4.1 +@@ -1821,12 +1821,13 @@ env_default(init, welldefined) + } + + unsigned char * +-env_getvalue(var) ++env_getvalue(var, exported_only) + unsigned char *var; ++ int exported_only; + { + struct env_lst *ep; + +- if ((ep = env_find(var))) ++ if ((ep = env_find(var)) && (!exported_only || ep->export)) + return(ep->value); + return(NULL); + } +Index: usr.bin/telnet/externs.h +=================================================================== +RCS file: /cvs/src/usr.bin/telnet/externs.h,v +retrieving revision 1.13 +retrieving revision 1.13.4.1 +diff -u -p -r1.13 -r1.13.4.1 +--- usr.bin/telnet/externs.h 3 Jan 2004 23:36:14 -0000 1.13 ++++ usr.bin/telnet/externs.h 29 Mar 2005 19:49:10 -0000 1.13.4.1 +@@ -204,7 +204,7 @@ void env_unexport (unsigned char *); + void env_send (unsigned char *); + void env_list (void); + unsigned char * env_default(int init, int welldefined); +-unsigned char * env_getvalue(unsigned char *var); ++unsigned char * env_getvalue(unsigned char *var, int exported_only); + + void set_escape_char(char *s); + unsigned long sourceroute(char *arg, char **cpp, int *lenp); +@@ -336,7 +336,7 @@ void env_opt_add (unsigned char *); + void env_opt_end (int); + + unsigned char *env_default (int, int); +-unsigned char *env_getvalue (unsigned char *); ++unsigned char *env_getvalue (unsigned char *, int); + + int get_status (void); + int dosynch (void); +Index: usr.bin/telnet/telnet.c +=================================================================== +RCS file: /cvs/src/usr.bin/telnet/telnet.c,v +retrieving revision 1.18 +retrieving revision 1.18.4.1 +diff -u -p -r1.18 -r1.18.4.1 +--- usr.bin/telnet/telnet.c 8 Nov 2003 19:17:29 -0000 1.18 ++++ usr.bin/telnet/telnet.c 29 Mar 2005 19:49:10 -0000 1.18.4.1 +@@ -446,7 +446,7 @@ dooption(option) + #endif + + case TELOPT_XDISPLOC: /* X Display location */ +- if (env_getvalue((unsigned char *)"DISPLAY")) ++ if (env_getvalue((unsigned char *)"DISPLAY", 0)) + new_state_ok = 1; + break; + +@@ -682,7 +682,7 @@ gettermname() + resettermname = 0; + if (tnamep && tnamep != unknown) + free(tnamep); +- if ((tname = (char *)env_getvalue((unsigned char *)"TERM")) && ++ if ((tname = (char *)env_getvalue((unsigned char *)"TERM", 0)) && + (setupterm(tname, 1, &errret) == OK)) { + tnamep = mklist(ttytype, tname); + } else { +@@ -859,7 +859,7 @@ suboption() + unsigned char temp[50], *dp; + int len; + +- if ((dp = env_getvalue((unsigned char *)"DISPLAY")) == NULL) { ++ if ((dp = env_getvalue((unsigned char *)"DISPLAY", 0)) == NULL) { + /* + * Something happened, we no longer have a DISPLAY + * variable. So, turn off the option. +@@ -1331,17 +1331,25 @@ slc_check() + } + + +-unsigned char slc_reply[128]; +-unsigned char *slc_replyp; ++static unsigned char slc_reply[2 * SUBBUFSIZE]; ++static unsigned char *slc_replyp; ++ ++ unsigned char ++slc_add(unsigned char ch) ++{ ++ if (slc_replyp == slc_reply + sizeof(slc_reply)) ++ return ch; ++ return *slc_replyp++ = ch; ++} + + void + slc_start_reply() + { + slc_replyp = slc_reply; +- *slc_replyp++ = IAC; +- *slc_replyp++ = SB; +- *slc_replyp++ = TELOPT_LINEMODE; +- *slc_replyp++ = LM_SLC; ++ slc_add(IAC); ++ slc_add(SB); ++ slc_add(TELOPT_LINEMODE); ++ slc_add(LM_SLC); + } + + void +@@ -1350,12 +1358,16 @@ slc_add_reply(func, flags, value) + unsigned char flags; + cc_t value; + { +- if ((*slc_replyp++ = func) == IAC) +- *slc_replyp++ = IAC; +- if ((*slc_replyp++ = flags) == IAC) +- *slc_replyp++ = IAC; +- if ((*slc_replyp++ = (unsigned char)value) == IAC) +- *slc_replyp++ = IAC; ++ if (slc_replyp + 6 >= slc_reply + sizeof(slc_reply)) { ++ printf("slc_add_reply: not enough room\n"); ++ return; ++ } ++ if (slc_add(func) == IAC) ++ slc_add(IAC); ++ if (slc_add(flags) == IAC) ++ slc_add(IAC); ++ if (slc_add((unsigned char)value) == IAC) ++ slc_add(IAC); + } + + void +@@ -1363,8 +1375,13 @@ slc_end_reply() + { + int len; + +- *slc_replyp++ = IAC; +- *slc_replyp++ = SE; ++ if (slc_replyp + 2 >= slc_reply + sizeof(slc_reply)) { ++ printf("slc_end_reply: not enough room\n"); ++ return; ++ } ++ ++ slc_add(IAC); ++ slc_add(SE); + len = slc_replyp - slc_reply; + if (len <= 6) + return; +@@ -1482,12 +1499,19 @@ env_opt(buf, len) + } + } + +-#define OPT_REPLY_SIZE 256 +-unsigned char *opt_reply; +-unsigned char *opt_replyp; +-unsigned char *opt_replyend; ++#define OPT_REPLY_SIZE (2 * SUBBUFSIZE) ++static unsigned char *opt_reply; ++static unsigned char *opt_replyp; ++static unsigned char *opt_replyend; + + void ++opt_add(unsigned char ch) ++{ ++ if (opt_replyp == opt_replyend) ++ return; ++ *opt_replyp++ = ch; ++} ++ void + env_opt_start() + { + unsigned char *p; +@@ -1506,10 +1530,10 @@ env_opt_start() + } + opt_replyp = opt_reply; + opt_replyend = opt_reply + OPT_REPLY_SIZE; +- *opt_replyp++ = IAC; +- *opt_replyp++ = SB; +- *opt_replyp++ = telopt_environ; +- *opt_replyp++ = TELQUAL_IS; ++ opt_add(IAC); ++ opt_add(SB); ++ opt_add(telopt_environ); ++ opt_add(TELQUAL_IS); + } + + void +@@ -1541,57 +1565,60 @@ env_opt_add(ep) + env_opt_add(ep); + return; + } +- vp = env_getvalue(ep); +- if (opt_replyp + (vp ? strlen((char *)vp) : 0) + +- strlen((char *)ep) + 6 > opt_replyend) ++ vp = env_getvalue(ep, 1); ++ if (opt_replyp + 2 * (vp ? strlen((char *)vp) : 0) + ++ 2 * strlen((char *)ep) + 6 > opt_replyend) + { +- int len; ++ size_t len; + unsigned char *p; +- opt_replyend += OPT_REPLY_SIZE; ++ + len = opt_replyend - opt_reply; ++ len += OPT_REPLY_SIZE + 2 * strlen(ep); ++ if (vp) ++ len += 2 * strlen(vp); + p = (unsigned char *)realloc(opt_reply, len); +- if (p == NULL) ++ if (p == NULL) { + free(opt_reply); +- opt_reply = p; +- if (opt_reply == NULL) { + /*@*/ printf("env_opt_add: realloc() failed!!!\n"); + opt_reply = opt_replyp = opt_replyend = NULL; + return; + } +- opt_replyp = opt_reply + len - (opt_replyend - opt_replyp); +- opt_replyend = opt_reply + len; ++ opt_replyp = p + (opt_replyp - opt_reply); ++ opt_replyend = p + len; ++ opt_reply = p; + } + if (opt_welldefined((char *)ep)) + #ifdef OLD_ENVIRON + if (telopt_environ == TELOPT_OLD_ENVIRON) +- *opt_replyp++ = old_env_var; ++ opt_add(old_env_var); + else + #endif +- *opt_replyp++ = NEW_ENV_VAR; ++ opt_add(NEW_ENV_VAR); + else +- *opt_replyp++ = ENV_USERVAR; ++ opt_add(ENV_USERVAR); ++ + for (;;) { + while ((c = *ep++)) { + switch(c&0xff) { + case IAC: +- *opt_replyp++ = IAC; ++ opt_add(IAC); + break; + case NEW_ENV_VAR: + case NEW_ENV_VALUE: + case ENV_ESC: + case ENV_USERVAR: +- *opt_replyp++ = ENV_ESC; ++ opt_add(ENV_ESC); + break; + } +- *opt_replyp++ = c; ++ opt_add(c); + } + if ((ep = vp)) { + #ifdef OLD_ENVIRON + if (telopt_environ == TELOPT_OLD_ENVIRON) +- *opt_replyp++ = old_env_value; ++ opt_add(old_env_value); + else + #endif +- *opt_replyp++ = NEW_ENV_VALUE; ++ opt_add(NEW_ENV_VALUE); + vp = NULL; + } else + break; +@@ -1619,8 +1646,8 @@ env_opt_end(emptyok) + + len = opt_replyp - opt_reply + 2; + if (emptyok || len > 6) { +- *opt_replyp++ = IAC; +- *opt_replyp++ = SE; ++ opt_add(IAC); ++ opt_add(SE); + if (NETROOM() > len) { + ring_supply_data(&netoring, opt_reply, len); + printsub('>', &opt_reply[2], len - 2); +@@ -2197,7 +2224,7 @@ telnet(user) + send_will(TELOPT_LINEMODE, 1); + send_will(TELOPT_NEW_ENVIRON, 1); + send_do(TELOPT_STATUS, 1); +- if (env_getvalue((unsigned char *)"DISPLAY")) ++ if (env_getvalue((unsigned char *)"DISPLAY", 0)) + send_will(TELOPT_XDISPLOC, 1); + if (binary) + tel_enter_binary(binary); diff --git a/source/n/telnet/telnet-OpenBSD-20020321.diff b/source/n/telnet/telnet-OpenBSD-20020321.diff new file mode 100644 index 000000000..f8b9c8293 --- /dev/null +++ b/source/n/telnet/telnet-OpenBSD-20020321.diff @@ -0,0 +1,70 @@ +--- ./telnet/commands.c.orig Thu Mar 21 20:27:13 2002 ++++ ./telnet/commands.c Thu Mar 21 20:27:42 2002 +@@ -2196,7 +2196,7 @@ + if (skiprc) + return; + +- strlcpy(m1save, m1, sizeof(m1save)); ++ strncpy(m1save, m1, sizeof(m1save)); + m1 = m1save; + + if (rcname[0] == 0) { +--- ./telnet/GNUmakefile.orig Thu Mar 21 20:22:45 2002 ++++ ./telnet/GNUmakefile Thu Mar 21 20:22:23 2002 +@@ -0,0 +1,34 @@ ++all: telnet ++ ++include ../MCONFIG ++include ../MRULES ++ ++ifeq ($(USE_GLIBC),1) ++CFLAGS += -D_GNU_SOURCE ++endif ++ ++#CFLAGS:=$(patsubst -O2, -g, $(CFLAGS)) ++ ++# -DAUTHENTICATE ++CFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE ++LIBS += $(LIBTERMCAP) ++ ++CFLAGS += -I../ ++ ++LIBTELNETOBJS = genget.o ++ ++OBJS = authenc.o commands.o main.o network.o ring.o sys_bsd.o telnet.o \ ++ terminal.o tn3270.o utilities.o $(LIBTELNETOBJS) ++ ++telnet: $(OBJS) ++ $(CC) $(LDFLAGS) $^ $(LIBS) -o $@ ++ ++install: telnet ++ install -s -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR) ++ install -m$(MANMODE) telnet.1 $(INSTALLROOT)$(MANDIR)/man1 ++ ++clean: ++ rm -f *.o telnet ++ ++genget.o: ../libtelnet/genget.c ++ $(CC) $(CFLAGS) $< -c +--- ./telnet/main.c.orig Thu Mar 21 20:27:27 2002 ++++ ./telnet/main.c Thu Mar 21 20:27:51 2002 +@@ -325,7 +325,7 @@ + break; + case 't': + #if defined(TN3270) && defined(unix) +- (void)strlcpy(tline, optarg, sizeof tline); ++ (void)strncpy(tline, optarg, sizeof tline); + transcom = tline; + #else + fprintf(stderr, +--- ./telnet/utilities.c.orig Thu Mar 21 20:27:22 2002 ++++ ./telnet/utilities.c Thu Mar 21 20:27:47 2002 +@@ -101,7 +101,7 @@ + if (file && (strcmp(file, "-") != 0)) { + NetTrace = fopen(file, "w"); + if (NetTrace) { +- strlcpy((char *)NetTraceFile, file, sizeof(NetTraceFile)); ++ strncpy((char *)NetTraceFile, file, sizeof(NetTraceFile)); + return; + } + fprintf(stderr, "Cannot open %s.\n", file); diff --git a/source/n/telnet/telnet.SlackBuild b/source/n/telnet/telnet.SlackBuild new file mode 100755 index 000000000..e1b182a27 --- /dev/null +++ b/source/n/telnet/telnet.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.17 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-telnet + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf netkit-telnet-$VERSION +tar xzvf $CWD/netkit-telnet-$VERSION.tar.gz +cd netkit-telnet-$VERSION +chown -R root:root . +zcat $CWD/netkit-telnet-0.17.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/netkit-telnet-0.17-ayt.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +./configure --prefix=/usr +cd telnetd +make +strip telnetd +mkdir -p $PKG/usr/sbin +cat telnetd > $PKG/usr/sbin/in.telnetd +chmod 755 $PKG/usr/sbin/in.telnetd +mkdir -p $PKG/usr/man/man8 +cat telnetd.8 | gzip -9c > $PKG/usr/man/man8/in.telnetd.8.gz +cd .. +# The OpenBSD version of the telnet client is superior. +rm -rf telnet +tar xzvf $CWD/telnet-OpenBSD-20020321.tar.gz +zcat $CWD/telnet-OpenBSD-20020321.diff.gz | patch -p1 --verbose || exit +zcat $CWD/telnet-OpenBSD-014_telnet.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit +( cd telnet ; make ) +cd telnet +strip telnet +mkdir -p $PKG/bin +cat telnet > $PKG/bin/telnet +chmod 755 $PKG/bin/telnet +mkdir -p $PKG/usr/man/man1 +cat telnet.1 | gzip -9c > $PKG/usr/man/man1/telnet.1.gz +cd .. +mkdir -p $PKG/usr/doc/netkit-telnet-$VERSION +cp -a README $PKG/usr/doc/netkit-telnet-$VERSION +chown root:root $PKG/usr/doc/netkit-telnet-$VERSION/* +chmod 644 $PKG/usr/doc/netkit-telnet-$VERSION/* + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/telnet-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/tftp-hpa/slack-desc b/source/n/tftp-hpa/slack-desc new file mode 100644 index 000000000..02aaa3d8f --- /dev/null +++ b/source/n/tftp-hpa/slack-desc @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tftp-hpa: tftp-hpa (Trivial File Transfer Protocol) +tftp-hpa: +tftp-hpa: The Trivial File Transfer Protocol (TFTP) is normally used only for +tftp-hpa: booting diskless workstations (or the Slackware installer). The tftp +tftp-hpa: package provides the user interface for TFTP, which allows users to +tftp-hpa: transfer files to and from a remote machine. This program and TFTP +tftp-hpa: provide very little security, and should not be enabled unless it is +tftp-hpa: expressly needed. +tftp-hpa: +tftp-hpa: tftp-hpa is maintained by H. Peter Anvin. +tftp-hpa: + diff --git a/source/n/tftp-hpa/tftp-hpa-0.48.tar.bz2.sign b/source/n/tftp-hpa/tftp-hpa-0.48.tar.bz2.sign new file mode 100644 index 000000000..0bc250608 --- /dev/null +++ b/source/n/tftp-hpa/tftp-hpa-0.48.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBFwHdCyGugalF9Dw4RArMGAJsGmXTId7KWtaaPU59qtvxfVqR2hACfV4pp +QP4kzEDqgKlRw3+FYQsQMvY= +=jnKl +-----END PGP SIGNATURE----- diff --git a/source/n/tftp-hpa/tftp-hpa.SlackBuild b/source/n/tftp-hpa/tftp-hpa.SlackBuild new file mode 100755 index 000000000..c73c882f1 --- /dev/null +++ b/source/n/tftp-hpa/tftp-hpa.SlackBuild @@ -0,0 +1,78 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.48 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tftp-hpa + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tftp-hpa-$VERSION +tar xvf $CWD/tftp-hpa-$VERSION.tar.bz2 || exit 1 +cd tftp-hpa-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure --prefix=/usr +make $NUMJOBS || make || exit 1 + +cd tftp +strip --strip-unneeded tftp +mkdir -p $PKG/usr/bin +cat tftp > $PKG/usr/bin/tftp +chmod 755 $PKG/usr/bin/tftp +mkdir -p $PKG/usr/man/man{1,8} +cat tftp.1 | gzip -9c > $PKG/usr/man/man1/tftp.1.gz +cd ../tftpd +strip --strip-unneeded tftpd +mkdir -p $PKG/usr/sbin +cat tftpd > $PKG/usr/sbin/in.tftpd +chmod 755 $PKG/usr/sbin/in.tftpd +cat tftpd.8 | gzip -9c > $PKG/usr/man/man8/in.tftpd.8.gz +cd .. + +mkdir -p $PKG/usr/doc/tftp-hpa-$VERSION +cp -a \ + CHANGES INSTALL INSTALL.tftp README README.security \ + $PKG/usr/doc/tftp-hpa-$VERSION + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/tftp-hpa-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/tin/slack-desc b/source/n/tin/slack-desc new file mode 100644 index 000000000..5479cbd26 --- /dev/null +++ b/source/n/tin/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tin: tin (the Tin newsreader) +tin: +tin: Tin is a full-screen, easy-to-use Netnews reader. It can read news +tin: locally (i.e. /var/spool/news) or remotely (rtin or tin -r option) +tin: via a NNTP (Network News Transport Protocol) server. It will +tin: automatically utilize NOV (news overview) style index files if +tin: available locally or via the nntp xover command. +tin: +tin: Tin was written by Iain Lea and is currently +tin: maintained by Urs Janssen . +tin: diff --git a/source/n/tin/tin-1.8.2.tar.bz2.sign b/source/n/tin/tin-1.8.2.tar.bz2.sign new file mode 100644 index 000000000..29db525d8 --- /dev/null +++ b/source/n/tin/tin-1.8.2.tar.bz2.sign @@ -0,0 +1,9 @@ +-----BEGIN PGP MESSAGE----- +Version: 2.6.3ia + +iQCVAwUARE4WY1pJVQ60kLTRAQFBSwQA1TZP/EcytcgrNvOmpsRqmOX/LBL7Pqt8 +8aviolzsXypalr71LmTZRK1y9TtrGNioHde1B7MEYCTWsoUV4t6r87RdSE2dgU+E +/ieaHvTFOUK9vy8C3VmjvCm8rJGPNAnz7Pbh6xtpAmUIY9jKuPZ0et576gw4Fl1T +YoyxRSmzb2E= +=H2kb +-----END PGP MESSAGE----- diff --git a/source/n/tin/tin.SlackBuild b/source/n/tin/tin.SlackBuild new file mode 100755 index 000000000..1339dc37b --- /dev/null +++ b/source/n/tin/tin.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.8.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tin + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tin-$VERSION +tar xvf $CWD/tin-$VERSION.tar.bz2 || exit 1 +cd tin-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --with-metamail=/usr/bin/metamail \ + --with-ispell=/usr/bin/ispell \ + --with-defaults-dir=/etc/tin \ + --with-libdir=/var/lib/news \ + --with-ncurses +make clean +make build || exit 1 +make install DESTDIR=$PKG || exit 1 +make install_sysdefs DESTDIR=$PKG || exit 1 + +cat << EOF > $PKG/etc/tin/README + +To complete TIN setup, edit /etc/nntpserver to the name of your NNTP server, +then edit tin.defaults to set your domain name (and other options). + +Happy newsreading! :^) + +EOF + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/tin-$VERSION +cp -a \ + README doc/* tools \ + $PKG/usr/doc/tin-$VERSION +( cd $PKG/usr/doc/tin-$VERSION + rm -f CHANGES.old *.1 *.3 *.5 +) +# Clutter reduction (these are in the tools dir) +rm -f $PKG/usr/bin/metamutt \ + $PKG/usr/bin/opt-case.pl \ + $PKG/usr/bin/url_handler.sh \ + $PKG/usr/bin/w2r.pl +chmod 644 $PKG/usr/man/man?/*.? +( cd $PKG/usr/man/man1 + mv opt-case.pl.1 w2r.pl.1 $PKG/usr/doc/tin-$VERSION/tools +) +gzip -9 $PKG/usr/man/man?/*.? +( cd $PKG/usr/man/man1 + rm -f *.1 + ln -sf tin.1.gz rtin.1.gz +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/tin-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/traceroute/slack-desc b/source/n/traceroute/slack-desc new file mode 100644 index 000000000..864112fec --- /dev/null +++ b/source/n/traceroute/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +traceroute: traceroute (IP packet route tracing utility) +traceroute: +traceroute: The traceroute utility displays the route used by IP packets on their +traceroute: way to a specified network host. Traceroute will display the IP +traceroute: number and host name (if possible) of all the machines along the route +traceroute: taken by the packets. If you're having network connectivity problems, +traceroute: traceroute can show you where the trouble is located. +traceroute: +traceroute: +traceroute: +traceroute: diff --git a/source/n/traceroute/traceroute.SlackBuild b/source/n/traceroute/traceroute.SlackBuild new file mode 100755 index 000000000..b687a436e --- /dev/null +++ b/source/n/traceroute/traceroute.SlackBuild @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.4a12 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-traceroute + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf traceroute-$VERSION +tar xvf $CWD/traceroute-$VERSION.tar.gz || exit 1 +cd traceroute-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/traceroute_$VERSION-5.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +zcat $CWD/traceroute.no.domain.strip.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +CFLAGS="$SLKCFLAGS -Ilinux-include" ./configure --prefix=/usr +make $NUMJOBS || make || exit 1 + +strip traceroute +mkdir -p $PKG/usr/bin +cat traceroute > $PKG/usr/bin/traceroute +chmod 4711 $PKG/usr/bin/traceroute + +mkdir -p $PKG/usr/man/man8 +gzip -9c traceroute.8 > $PKG/usr/man/man8/traceroute.8.gz + +mkdir -p $PKG/usr/doc/traceroute-$VERSION +cp -a \ + CHANGES FILES INSTALL README VERSION \ + $PKG/usr/doc/traceroute-$VERSION +chmod 644 $PKG/usr/doc/traceroute-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/traceroute-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/traceroute/traceroute.no.domain.strip.diff b/source/n/traceroute/traceroute.no.domain.strip.diff new file mode 100644 index 000000000..a9af38933 --- /dev/null +++ b/source/n/traceroute/traceroute.no.domain.strip.diff @@ -0,0 +1,30 @@ +--- traceroute-1.4a12.orig/traceroute.c Tue Feb 4 11:01:05 2003 ++++ traceroute-1.4a12/traceroute.c Tue Feb 4 11:09:17 2003 +@@ -1297,8 +1297,10 @@ + register char *cp; + register struct hostent *hp; + static int first = 1; +- static char domain[MAXHOSTNAMELEN + 1], line[MAXHOSTNAMELEN + 1]; ++/* static char domain[MAXHOSTNAMELEN + 1]; */ ++ static char line[MAXHOSTNAMELEN + 1]; + ++/* + if (first && !nflag) { + first = 0; + if (gethostname(domain, sizeof(domain) - 1) < 0) +@@ -1319,12 +1321,15 @@ + } + } + } ++*/ + if (!nflag && in.s_addr != INADDR_ANY) { + hp = gethostbyaddr((char *)&in, sizeof(in), AF_INET); + if (hp != NULL) { ++/* + if ((cp = strchr(hp->h_name, '.')) != NULL && + strcmp(cp + 1, domain) == 0) + *cp = '\0'; ++*/ + (void)strncpy(line, hp->h_name, sizeof(line) - 1); + line[sizeof(line) - 1] = '\0'; + return (line); diff --git a/source/n/traceroute/traceroute_1.4a12-5.diff b/source/n/traceroute/traceroute_1.4a12-5.diff new file mode 100644 index 000000000..8cf3d1fe1 --- /dev/null +++ b/source/n/traceroute/traceroute_1.4a12-5.diff @@ -0,0 +1,1152 @@ +--- traceroute-1.4a12.orig/aclocal.m4 ++++ traceroute-1.4a12/aclocal.m4 +@@ -47,7 +47,7 @@ + AC_BEFORE([$0], [AC_LBL_FIXINCLUDES]) + AC_BEFORE([$0], [AC_LBL_DEVEL]) + AC_ARG_WITH(gcc, [ --without-gcc don't use gcc]) +- $1="-O" ++ $1="-g -O" + $2="" + if test "${srcdir}" != "." ; then + $2="-I\$\(srcdir\)" +@@ -677,12 +677,11 @@ + AC_TRY_LINK(dnl + ifelse([$2], [main], , dnl Avoid conflicting decl of main. + [/* Override any gcc2 internal prototype to avoid an error. */ +-]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus ++#ifdef __cplusplus + extern "C" + #endif +-])dnl +-[/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ + char $2(); + ]), + [$2()], +--- traceroute-1.4a12.orig/configure.in ++++ traceroute-1.4a12/configure.in +@@ -22,7 +22,7 @@ + net/if_dl.h inet/mib2.h) + + AC_REPLACE_FUNCS(strerror usleep) +-AC_CHECK_FUNCS(setlinebuf) ++AC_CHECK_FUNCS(setlinebuf snprintf) + if test $ac_cv_func_usleep = "no" ; then + AC_CHECK_FUNCS(nanosleep) + fi +@@ -44,8 +44,9 @@ + ;; + + linux*) +- V_INCLS="$V_INCLS -Ilinux-include" ++ V_INCLS="$V_INCLS -Ilinux-include -DUSE_KERNEL_ROUTING_TABLE" + AC_DEFINE(BYTESWAP_IP_HDR) ++ AC_DEFINE(HAVE_RAW_OPTIONS) + ;; + + osf3*) +--- traceroute-1.4a12.orig/findsaddr-generic.c ++++ traceroute-1.4a12/findsaddr-generic.c +@@ -82,7 +82,11 @@ + static char errbuf[132]; + + /* Get the interface address list */ ++#if HAVE_SNPRINTF ++ if ((n = ifaddrlist(&al, errbuf, sizeof(errbuf))) < 0) ++#else + if ((n = ifaddrlist(&al, errbuf)) < 0) ++#endif + return (errbuf); + + if (n == 0) +--- traceroute-1.4a12.orig/findsaddr-linux.c ++++ traceroute-1.4a12/findsaddr-linux.c +@@ -90,7 +90,11 @@ + static char errbuf[132]; + + if ((f = fopen(route, "r")) == NULL) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "open %s: %.128s", route, strerror(errno)); ++#else + sprintf(errbuf, "open %s: %.128s", route, strerror(errno)); ++#endif + return (errbuf); + } + +@@ -102,7 +106,7 @@ + ++n; + if (n == 1 && strncmp(buf, "Iface", 5) == 0) + continue; +- if ((i = sscanf(buf, "%s %x %*s %*s %*s %*s %*s %x", ++ if ((i = sscanf(buf, "%255s %x %*s %*s %*s %*s %*s %x", + tdevice, &dest, &tmask)) != 3) + return ("junk in buffer"); + if ((to->sin_addr.s_addr & tmask) == dest && +@@ -117,7 +121,11 @@ + return ("Can't find interface"); + + /* Get the interface address list */ ++#if HAVE_SNPRINTF ++ if ((n = ifaddrlist(&al, errbuf, sizeof(errbuf))) < 0) ++#else + if ((n = ifaddrlist(&al, errbuf)) < 0) ++#endif + return (errbuf); + + if (n == 0) +@@ -128,7 +136,11 @@ + if (strcmp(device, al->device) == 0) + break; + if (i <= 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "Can't find interface \"%.32s\"", device); ++#else + sprintf(errbuf, "Can't find interface \"%.32s\"", device); ++#endif + return (errbuf); + } + +--- traceroute-1.4a12.orig/findsaddr-socket.c ++++ traceroute-1.4a12/findsaddr-socket.c +@@ -114,7 +114,11 @@ + + s = socket(PF_ROUTE, SOCK_RAW, AF_UNSPEC); + if (s < 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "socket: %.128s", strerror(errno)); ++#else + sprintf(errbuf, "socket: %.128s", strerror(errno)); ++#endif + return (errbuf); + } + +@@ -134,12 +138,20 @@ + + cc = write(s, (char *)rp, size); + if (cc < 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "write: %.128s", strerror(errno)); ++#else + sprintf(errbuf, "write: %.128s", strerror(errno)); ++#endif + close(s); + return (errbuf); + } + if (cc != size) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "short write (%d != %d)", cc, size); ++#else + sprintf(errbuf, "short write (%d != %d)", cc, size); ++#endif + close(s); + return (errbuf); + } +@@ -149,7 +161,11 @@ + memset(rp, 0, size); + cc = read(s, (char *)rp, size); + if (cc < 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "read: %.128s", strerror(errno)); ++#else + sprintf(errbuf, "read: %.128s", strerror(errno)); ++#endif + close(s); + return (errbuf); + } +@@ -159,15 +175,27 @@ + + + if (rp->rtm_version != RTM_VERSION) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "bad version %d", rp->rtm_version); ++#else + sprintf(errbuf, "bad version %d", rp->rtm_version); ++#endif + return (errbuf); + } + if (rp->rtm_msglen > cc) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "bad msglen %d > %d", rp->rtm_msglen, cc); ++#else + sprintf(errbuf, "bad msglen %d > %d", rp->rtm_msglen, cc); ++#endif + return (errbuf); + } + if (rp->rtm_errno != 0) { ++#if HAVE_SNPRINTF ++ snprintf(errbuf, sizeof(errbuf), "rtm_errno: %.128s", strerror(rp->rtm_errno)); ++#else + sprintf(errbuf, "rtm_errno: %.128s", strerror(rp->rtm_errno)); ++#endif + return (errbuf); + } + +--- traceroute-1.4a12.orig/ifaddrlist.c ++++ traceroute-1.4a12/ifaddrlist.c +@@ -72,7 +72,12 @@ + * Return the interface list + */ + int ++#if HAVE_SNPRINTF ++ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf, ++ size_t nerrbuf) ++#else + ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf) ++#endif + { + register int fd, nipaddr; + #ifdef HAVE_SOCKADDR_SA_LEN +@@ -89,7 +94,11 @@ + + fd = socket(AF_INET, SOCK_DGRAM, 0); + if (fd < 0) { ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "socket: %s", strerror(errno)); ++#else + (void)sprintf(errbuf, "socket: %s", strerror(errno)); ++#endif + return (-1); + } + ifc.ifc_len = sizeof(ibuf); +@@ -98,12 +107,23 @@ + if (ioctl(fd, SIOCGIFCONF, (char *)&ifc) < 0 || + ifc.ifc_len < sizeof(struct ifreq)) { + if (errno == EINVAL) ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, ++ "SIOCGIFCONF: ifreq struct too small (%d bytes)", ++ sizeof(ibuf)); ++#else + (void)sprintf(errbuf, + "SIOCGIFCONF: ifreq struct too small (%d bytes)", + sizeof(ibuf)); ++#endif + else ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "SIOCGIFCONF: %s", ++ strerror(errno)); ++#else + (void)sprintf(errbuf, "SIOCGIFCONF: %s", + strerror(errno)); ++#endif + (void)close(fd); + return (-1); + } +@@ -135,9 +155,15 @@ + if (ioctl(fd, SIOCGIFFLAGS, (char *)&ifr) < 0) { + if (errno == ENXIO) + continue; ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "SIOCGIFFLAGS: %.*s: %s", ++ (int)sizeof(ifr.ifr_name), ifr.ifr_name, ++ strerror(errno)); ++#else + (void)sprintf(errbuf, "SIOCGIFFLAGS: %.*s: %s", + (int)sizeof(ifr.ifr_name), ifr.ifr_name, + strerror(errno)); ++#endif + (void)close(fd); + return (-1); + } +@@ -155,21 +181,35 @@ + continue; + #endif + if (ioctl(fd, SIOCGIFADDR, (char *)&ifr) < 0) { ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "SIOCGIFADDR: %s: %s", ++ device, strerror(errno)); ++#else + (void)sprintf(errbuf, "SIOCGIFADDR: %s: %s", + device, strerror(errno)); ++#endif + (void)close(fd); + return (-1); + } + + if (nipaddr >= MAX_IPADDR) { ++#if HAVE_SNPRINTF ++ (void)snprintf(errbuf, nerrbuf, "Too many interfaces (%d)", ++ MAX_IPADDR); ++#else + (void)sprintf(errbuf, "Too many interfaces (%d)", + MAX_IPADDR); ++#endif + (void)close(fd); + return (-1); + } + sin = (struct sockaddr_in *)&ifr.ifr_addr; + al->addr = sin->sin_addr.s_addr; + al->device = strdup(device); ++ if (al->device == NULL) { ++ fputs("ifaddrlist: strdup\n", stderr); ++ exit(1); ++ } + ++al; + ++nipaddr; + } +--- traceroute-1.4a12.orig/ifaddrlist.h ++++ traceroute-1.4a12/ifaddrlist.h +@@ -26,4 +26,8 @@ + char *device; + }; + ++#if HAVE_SNPRINTF ++int ifaddrlist(struct ifaddrlist **, char *, size_t); ++#else + int ifaddrlist(struct ifaddrlist **, char *); ++#endif +--- traceroute-1.4a12.orig/traceroute.8 ++++ traceroute-1.4a12/traceroute.8 +@@ -23,7 +23,7 @@ + .na + .B traceroute + [ +-.B \-dFInrvx ++.B \-dFIlnrvx + ] [ + .B \-f + .I first_ttl +@@ -110,6 +110,10 @@ + .B \-I + Use ICMP ECHO instead of UDP datagrams. + .TP ++.B \-l ++Display the ttl value of the returned packet. This is useful for ++checking for assymetric routing. ++.TP + .B \-m + Set the max time-to-live (max number of hops) used in outgoing probe + packets. The default is 30 hops (the same default used for TCP +@@ -146,9 +150,8 @@ + multi-homed hosts (those with more than one IP + address), this option can be used to + force the source address to be something other than the IP address +-of the interface the probe packet is sent on. If the IP address +-is not one of this machine's interface addresses, an error is +-returned and nothing is sent. (See the ++of the interface the probe packet is sent on. This option can only ++be used by the super-user. (See the + .B \-i + flag for another way to do this.) + .TP +@@ -329,6 +332,9 @@ + or + .B !P + (host, network or protocol unreachable), ++.BR !A , ++.BR !C ++(access to the network or host, respectively, is prohibited), + .B !S + (source route failed), + .B !F\- +--- traceroute-1.4a12.orig/traceroute.c ++++ traceroute-1.4a12/traceroute.c +@@ -271,7 +271,7 @@ + struct outdata { + u_char seq; /* sequence number of this packet */ + u_char ttl; /* ttl packet left with */ +- struct timeval tv; /* time packet left */ ++ struct timeval tv __attribute__((packed)); /* time packet left */ + }; + + #ifndef HAVE_ICMP_NEXTMTU +@@ -296,8 +296,8 @@ + int s; /* receive (icmp) socket file descriptor */ + int sndsock; /* send (udp/icmp) socket file descriptor */ + +-struct sockaddr whereto; /* Who to try to reach */ +-struct sockaddr wherefrom; /* Who we are */ ++struct sockaddr_storage whereto; /* Who to try to reach */ ++struct sockaddr_storage wherefrom; /* Who we are */ + int packlen; /* total length of packet */ + int minpacket; /* min ip packet size */ + int maxpacket = 32 * 1024; /* max ip packet size */ +@@ -352,6 +352,11 @@ + int usleep(u_int); + #endif + ++#ifdef USE_KERNEL_ROUTING_TABLE ++struct ifaddrlist *search_routing_table(struct sockaddr_in *to, struct ifaddrlist *al, int n); ++#endif ++ ++ + int + main(int argc, char **argv) + { +@@ -370,8 +375,12 @@ + int tos = 0, settos = 0; + register int lsrr = 0; + register u_short off = 0; +- struct ifaddrlist *al; ++ struct ifaddrlist *al, *allist; + char errbuf[132]; ++ int ttl_flag = 0; ++ int uid; ++ ++ uid = getuid(); + + if (argv[0] == NULL) + prog = "traceroute"; +@@ -381,7 +390,7 @@ + prog = argv[0]; + + opterr = 0; +- while ((op = getopt(argc, argv, "dFInrvxf:g:i:m:p:q:s:t:w:z:")) != EOF) ++ while ((op = getopt(argc, argv, "dFIlnrvxf:g:i:m:p:q:s:t:w:z:")) != EOF) + switch (op) { + + case 'd': +@@ -397,6 +406,10 @@ + break; + + case 'g': ++ if (strlen(optarg) >= MAXHOSTNAMELEN) { ++ Fprintf(stderr, "%s: Nice Try !\n", prog); ++ exit(-1); ++ } + if (lsrr >= NGATEWAYS) { + Fprintf(stderr, + "%s: No more than %d gateways\n", +@@ -409,12 +422,21 @@ + + case 'i': + device = optarg; ++ if (strlen(device) >= 16) { /* that is the IFNAMSIZ ++ * from kernel headers */ ++ Fprintf(stderr, "%s: Nice try !\n", prog); ++ exit(-1); ++ } + break; + + case 'I': + ++useicmp; + break; + ++ case 'l': ++ ++ttl_flag; ++ break; ++ + case 'm': + max_ttl = str2val(optarg, "max ttl", 1, 255); + break; +@@ -441,7 +463,19 @@ + * set the ip source address of the outbound + * probe (e.g., on a multi-homed host). + */ ++ if (uid) { ++ Fprintf( ++ stderr, ++ "%s: -s %s: Permission denied\n", ++ prog, optarg ++ ); ++ exit(-1); ++ } + source = optarg; ++ if (strlen(source) >= MAXHOSTNAMELEN) { ++ Fprintf(stderr, "%s: Nice Try !\n", prog); ++ exit(-1); ++ } + break; + + case 't': +@@ -500,6 +534,10 @@ + + case 1: + hostname = argv[optind]; ++ if (strlen(hostname) >= MAXHOSTNAMELEN) { ++ Fprintf(stderr, "%s: Nice try !\n", prog); ++ exit(-1); ++ } + hi = gethostinfo(hostname); + setsin(to, hi->addrs[0]); + if (hi->n > 1) +@@ -515,75 +553,6 @@ + usage(); + } + +-#ifdef HAVE_SETLINEBUF +- setlinebuf (stdout); +-#else +- setvbuf(stdout, NULL, _IOLBF, 0); +-#endif +- +- outip = (struct ip *)malloc((unsigned)packlen); +- if (outip == NULL) { +- Fprintf(stderr, "%s: malloc: %s\n", prog, strerror(errno)); +- exit(1); +- } +- memset((char *)outip, 0, packlen); +- +- outip->ip_v = IPVERSION; +- if (settos) +- outip->ip_tos = tos; +-#ifdef BYTESWAP_IP_HDR +- outip->ip_len = htons(packlen); +- outip->ip_off = htons(off); +-#else +- outip->ip_len = packlen; +- outip->ip_off = off; +-#endif +- outp = (u_char *)(outip + 1); +-#ifdef HAVE_RAW_OPTIONS +- if (lsrr > 0) { +- register u_char *optlist; +- +- optlist = outp; +- outp += optlen; +- +- /* final hop */ +- gwlist[lsrr] = to->sin_addr.s_addr; +- +- outip->ip_dst.s_addr = gwlist[0]; +- +- /* force 4 byte alignment */ +- optlist[0] = IPOPT_NOP; +- /* loose source route option */ +- optlist[1] = IPOPT_LSRR; +- i = lsrr * sizeof(gwlist[0]); +- optlist[2] = i + 3; +- /* Pointer to LSRR addresses */ +- optlist[3] = IPOPT_MINOFF; +- memcpy(optlist + 4, gwlist + 1, i); +- } else +-#endif +- outip->ip_dst = to->sin_addr; +- +- outip->ip_hl = (outp - (u_char *)outip) >> 2; +- ident = (getpid() & 0xffff) | 0x8000; +- if (useicmp) { +- outip->ip_p = IPPROTO_ICMP; +- +- outicmp = (struct icmp *)outp; +- outicmp->icmp_type = ICMP_ECHO; +- outicmp->icmp_id = htons(ident); +- +- outdata = (struct outdata *)(outp + 8); /* XXX magic number */ +- } else { +- outip->ip_p = IPPROTO_UDP; +- +- outudp = (struct udphdr *)outp; +- outudp->uh_sport = htons(ident); +- outudp->uh_ulen = +- htons((u_short)(packlen - (sizeof(*outip) + optlen))); +- outdata = (struct outdata *)(outudp + 1); +- } +- + cp = "icmp"; + if ((pe = getprotobyname(cp)) == NULL) { + Fprintf(stderr, "%s: unknown protocol %s\n", prog, cp); +@@ -591,12 +560,15 @@ + } + + /* Insure the socket fds won't be 0, 1 or 2 */ +- if (open(devnull, O_RDONLY) < 0 || +- open(devnull, O_RDONLY) < 0 || +- open(devnull, O_RDONLY) < 0) { +- Fprintf(stderr, "%s: open \"%s\": %s\n", +- prog, devnull, strerror(errno)); +- exit(1); ++ do { ++ if ((n = open(devnull, O_RDONLY)) < 0) { ++ Fprintf(stderr, "%s: open \"%s\": %s\n", ++ prog, devnull, strerror(errno)); ++ exit(1); ++ } ++ } while (n < 2); ++ if (n > 2) { ++ close(n); + } + if ((s = socket(AF_INET, SOCK_RAW, pe->p_proto)) < 0) { + Fprintf(stderr, "%s: icmp socket: %s\n", prog, strerror(errno)); +@@ -662,7 +634,7 @@ + #endif + #ifdef IP_HDRINCL + if (setsockopt(sndsock, IPPROTO_IP, IP_HDRINCL, (char *)&on, +- sizeof(on)) < 0) { ++ sizeof(on)) < 0 && errno != ENOPROTOOPT) { + Fprintf(stderr, "%s: IP_HDRINCL: %s\n", prog, strerror(errno)); + exit(1); + } +@@ -683,8 +655,88 @@ + (void)setsockopt(sndsock, SOL_SOCKET, SO_DONTROUTE, (char *)&on, + sizeof(on)); + ++ /* Revert to non-privileged user after opening sockets */ ++ setgid(getgid()); ++ setuid(uid); ++ ++#ifndef __GLIBC__ ++#ifdef HAVE_SETLINEBUF ++ setlinebuf (stdout); ++#else ++ setvbuf(stdout, NULL, _IOLBF, 0); ++#endif ++#endif ++ ++ outip = (struct ip *)malloc((unsigned)packlen); ++ if (outip == NULL) { ++ Fprintf(stderr, "%s: malloc: %s\n", prog, strerror(errno)); ++ exit(1); ++ } ++ memset((char *)outip, 0, packlen); ++ ++ outip->ip_v = IPVERSION; ++ if (settos) ++ outip->ip_tos = tos; ++#ifdef BYTESWAP_IP_HDR ++ outip->ip_len = htons(packlen); ++ outip->ip_off = htons(off); ++#else ++ outip->ip_len = packlen; ++ outip->ip_off = off; ++#endif ++ outp = (u_char *)(outip + 1); ++#ifdef HAVE_RAW_OPTIONS ++ if (lsrr > 0) { ++ register u_char *optlist; ++ ++ optlist = outp; ++ outp += optlen; ++ ++ /* final hop */ ++ gwlist[lsrr] = to->sin_addr.s_addr; ++ ++ outip->ip_dst.s_addr = gwlist[0]; ++ ++ /* force 4 byte alignment */ ++ optlist[0] = IPOPT_NOP; ++ /* loose source route option */ ++ optlist[1] = IPOPT_LSRR; ++ i = lsrr * sizeof(gwlist[0]); ++ optlist[2] = i + 3; ++ /* Pointer to LSRR addresses */ ++ optlist[3] = IPOPT_MINOFF; ++ memcpy(optlist + 4, gwlist + 1, i); ++ } else ++#endif ++ outip->ip_dst = to->sin_addr; ++ ++ outip->ip_hl = (outp - (u_char *)outip) >> 2; ++ ident = (getpid() & 0xffff) | 0x8000; ++ if (useicmp) { ++ outip->ip_p = IPPROTO_ICMP; ++ ++ outicmp = (struct icmp *)outp; ++ outicmp->icmp_type = ICMP_ECHO; ++ outicmp->icmp_id = htons(ident); ++ ++ outdata = (struct outdata *)(outp + 8); /* XXX magic number */ ++ } else { ++ outip->ip_p = IPPROTO_UDP; ++ ++ outudp = (struct udphdr *)outp; ++ outudp->uh_sport = htons(ident); ++ outudp->uh_ulen = ++ htons((u_short)(packlen - (sizeof(*outip) + optlen))); ++ outdata = (struct outdata *)(outudp + 1); ++ } ++ + /* Get the interface address list */ +- n = ifaddrlist(&al, errbuf); ++#if HAVE_SNPRINTF ++ n = ifaddrlist(&allist, errbuf, sizeof(errbuf)); ++#else ++ n = ifaddrlist(&allist, errbuf); ++#endif ++ al = allist; + if (n < 0) { + Fprintf(stderr, "%s: ifaddrlist: %s\n", prog, errbuf); + exit(1); +@@ -709,6 +761,15 @@ + + /* Determine our source address */ + if (source == NULL) { ++#ifdef USE_KERNEL_ROUTING_TABLE ++ /* Search the kernel routing table for a match with the ++ * destination address. Then use that interface. If ++ * there is no match, default to using the first ++ * interface found. ++ */ ++ al = search_routing_table(to, allist, n); ++ setsin(from, al->addr); ++#else + /* + * If a device was specified, use the interface address. + * Otherwise, try to determine our source address. +@@ -720,6 +781,7 @@ + prog, err); + exit(1); + } ++#endif + } else { + hi = gethostinfo(source); + source = hi->name; +@@ -751,10 +813,6 @@ + freehostinfo(hi); + } + +- /* Revert to non-privileged user after opening sockets */ +- setgid(getgid()); +- setuid(getuid()); +- + outip->ip_src = from->sin_addr; + #ifndef IP_HDRINCL + if (bind(sndsock, (struct sockaddr *)from, sizeof(*from)) < 0) { +@@ -803,9 +861,11 @@ + ++gotlastaddr; + } + Printf(" %.3f ms", deltaT(&t1, &t2)); ++ ip = (struct ip *)packet; ++ if (ttl_flag) ++ Printf(" (%d)", ip->ip_ttl); + if (i == -2) { + #ifndef ARCHAIC +- ip = (struct ip *)packet; + if (ip->ip_ttl <= 1) + Printf(" !"); + #endif +@@ -820,7 +880,6 @@ + + case ICMP_UNREACH_PORT: + #ifndef ARCHAIC +- ip = (struct ip *)packet; + if (ip->ip_ttl <= 1) + Printf(" !"); + #endif +@@ -853,8 +912,14 @@ + break; + + case ICMP_UNREACH_FILTER_PROHIB: ++ case ICMP_UNREACH_NET_PROHIB: /* misuse */ ++ ++unreachable; ++ Printf(" !A"); ++ break; ++ ++ case ICMP_UNREACH_HOST_PROHIB: + ++unreachable; +- Printf(" !X"); ++ Printf(" !C"); + break; + + case ICMP_UNREACH_HOST_PRECEDENCE: +@@ -867,6 +932,23 @@ + Printf(" !C"); + break; + ++ case ICMP_UNREACH_NET_UNKNOWN: ++ case ICMP_UNREACH_HOST_UNKNOWN: ++ ++unreachable; ++ Printf(" !U"); ++ break; ++ ++ case ICMP_UNREACH_ISOLATED: ++ ++unreachable; ++ Printf(" !I"); ++ break; ++ ++ case ICMP_UNREACH_TOSNET: ++ case ICMP_UNREACH_TOSHOST: ++ ++unreachable; ++ Printf(" !T"); ++ break; ++ + default: + ++unreachable; + Printf(" !<%d>", code); +@@ -894,7 +976,7 @@ + struct timeval now, wait; + struct timezone tz; + register int cc = 0; +- int fromlen = sizeof(*fromp); ++ socklen_t fromlen = sizeof(*fromp); + + FD_ZERO(&fds); + FD_SET(sock, &fds); +@@ -938,7 +1020,7 @@ + /* Payload */ + outdata->seq = seq; + outdata->ttl = ttl; +- outdata->tv = *tp; ++ memcpy(&outdata->tv, tp, sizeof(outdata->tv)); + + if (useicmp) + outicmp->icmp_seq = htons(seq); +@@ -1003,12 +1085,13 @@ + + #ifdef __hpux + cc = sendto(sndsock, useicmp ? (char *)outicmp : (char *)outudp, +- packlen - (sizeof(*outip) + optlen), 0, &whereto, sizeof(whereto)); ++ packlen - (sizeof(*outip) + optlen), 0, ++ (struct sockaddr *)&whereto, sizeof(whereto)); + if (cc > 0) + cc += sizeof(*outip) + optlen; + #else + cc = sendto(sndsock, (char *)outip, +- packlen, 0, &whereto, sizeof(whereto)); ++ packlen, 0, (struct sockaddr *)&whereto, sizeof(whereto)); + #endif + if (cc < 0 || cc != packlen) { + if (cc < 0) +@@ -1039,12 +1122,12 @@ + static char *ttab[] = { + "Echo Reply", "ICMP 1", "ICMP 2", "Dest Unreachable", + "Source Quench", "Redirect", "ICMP 6", "ICMP 7", +- "Echo", "ICMP 9", "ICMP 10", "Time Exceeded", ++ "Echo", "Router Advert", "Router Solicit", "Time Exceeded", + "Param Problem", "Timestamp", "Timestamp Reply", "Info Request", +- "Info Reply" ++ "Info Reply", "Mask Request", "Mask Reply" + }; + +- if (t > 16) ++ if (t > 18) + return("OUT-OF-RANGE"); + + return(ttab[t]); +@@ -1272,6 +1355,11 @@ + addr = inet_addr(hostname); + if ((int32_t)addr != -1) { + hi->name = strdup(hostname); ++ if (hi->name == NULL) { ++ Fprintf(stderr, "%s: strdup %s\n", ++ prog, strerror(errno)); ++ exit(1); ++ } + hi->n = 1; + hi->addrs = calloc(1, sizeof(hi->addrs[0])); + if (hi->addrs == NULL) { +@@ -1293,6 +1381,11 @@ + exit(1); + } + hi->name = strdup(hp->h_name); ++ if (hi->name == NULL) { ++ Fprintf(stderr, "%s: strdup %s\n", ++ prog, strerror(errno)); ++ exit(1); ++ } + for (n = 0, p = hp->h_addr_list; *p != NULL; ++n, ++p) + continue; + hi->n = n; +@@ -1381,8 +1474,96 @@ + + Fprintf(stderr, "Version %s\n", version); + Fprintf(stderr, +- "Usage: %s [-dFInrvx] [-g gateway] [-i iface] [-f first_ttl]\n" ++ "Usage: %s [-dFIlnrvx] [-g gateway] [-i iface] [-f first_ttl]\n" + "\t[-m max_ttl] [ -p port] [-q nqueries] [-s src_addr] [-t tos]\n" + "\t[-w waittime] [-z pausemsecs] host [packetlen]\n", prog); + exit(1); + } ++ ++ ++#ifdef USE_KERNEL_ROUTING_TABLE ++ ++/* This function currently only supports IPv4. Someone who knows ++ * more about multi-protocol socket stuff should take a look at this. ++ * ++ * (But does it make any sense for traceroute to support other ++ * protocols? Maybe IPv6... ++ */ ++ ++struct ifaddrlist *search_routing_table(struct sockaddr_in *to, struct ifaddrlist *al, int n) ++{ ++ struct ifaddrlist *first_if; ++ FILE *fp; ++ char buf[1024]; ++ char ifname[128]; ++ unsigned int route_dest; ++ unsigned int mask; ++ char best_name[128]; ++ unsigned int best_mask; ++ unsigned int dest_addr; ++ unsigned int convs; ++ ++ /* How come using ntohl(to->sin_addr.s_addr) doesn't work here? */ ++ dest_addr = to->sin_addr.s_addr; ++ ++ fp = fopen("/proc/net/route", "r"); ++ if (fp == NULL) { ++ return al; ++ } ++ ++ /* Skip the first line (the column headings) */ ++ if (fgets(buf, sizeof(buf), fp) == NULL) { ++ fclose(fp); ++ return al; ++ } ++ ++ best_name[0] = '\0'; ++ best_mask = 0; ++ ++ while (fgets(buf, sizeof(buf), fp) != NULL) { ++ /* Field 1: interface name ++ * Field 2: dest addr ++ * Field 8: genmask ++ */ ++ convs = sscanf(buf, "%127s %x %*s %*s %*s %*s %*s %x", ++ ifname, &route_dest, &mask); ++ if (convs != 3) { ++ /* format error .... */ ++ fclose(fp); ++ return al; ++ } ++ ++ if ((dest_addr & mask) == route_dest) { ++ /* This routing entry applies to ++ * our destination addr ++ */ ++ if ((mask > best_mask) || (best_mask == 0)) { ++ /* And it is more specific than any ++ * previous match (or is the first match) ++ */ ++ best_mask = mask; ++ strncpy(best_name, ifname, ++ sizeof(best_name) - 1); ++ best_name[sizeof(best_name) - 1] = 0; ++ } ++ } ++ } ++ ++ fclose(fp); ++ ++ /* If we don't find a match, we'll return the first entry */ ++ first_if = al; ++ ++ while (al < first_if + n) { ++ if (strcmp(best_name, al->device) == 0) { ++ /* Got a match */ ++ return al; ++ } ++ al++; ++ } ++ ++ return first_if; ++} ++ ++#endif ++ +--- traceroute-1.4a12.orig/debian/changelog ++++ traceroute-1.4a12/debian/changelog +@@ -0,0 +1,63 @@ ++traceroute (1.4a12-5) unstable; urgency=low ++ ++ * Restrict the -s option to the super-user. ++ * Updated documentation for the -s option (closes: #105362). ++ ++ -- Herbert Xu Mon, 16 Jul 2001 19:28:45 +1000 ++ ++traceroute (1.4a12-4) unstable; urgency=low ++ ++ * Updated aclocal.m4 for autoconf 2.50 (closes: #98367). ++ ++ -- Herbert Xu Wed, 23 May 2001 18:48:59 +1000 ++ ++traceroute (1.4a12-3) unstable; urgency=low ++ ++ * Drop privileges earlier. ++ * Applied "paranoia" patch from Richard Kettlewell (closes: #85619). ++ - eliminate unbounded sprintf calls ++ - eliminate unbounded sscanf calls ++ - strncpy final-null paranoia ++ * Set HAVE_RAW_OPTIONS (closes: #78475). ++ * Added missing option to usage (Neale Banks, closes: #88892). ++ ++ -- Herbert Xu Fri, 9 Mar 2001 22:24:11 +1100 ++ ++traceroute (1.4a12-2) unstable; urgency=low ++ ++ * Made changes for dpkg-statoverride (closes: #83817). ++ ++ -- Herbert Xu Sun, 28 Jan 2001 21:49:35 +1100 ++ ++traceroute (1.4a12-1) unstable; urgency=low ++ ++ * New upstream release (closes: #79920, #81395). ++ * Use struct sockaddr_stroage (closes: #79348). ++ ++ -- Herbert Xu Fri, 26 Jan 2001 20:57:21 +1100 ++ ++traceroute (1.4a8-1) unstable; urgency=low ++ ++ * New upstream release. ++ ++ -- Herbert Xu Sat, 9 Dec 2000 14:18:00 +1100 ++ ++traceroute (1.4a5-3) stable unstable; urgency=low ++ ++ * Fixed a bug where free(3) was called on non-malloced memory. ++ ++ -- Herbert Xu Thu, 24 Aug 2000 20:44:51 +1000 ++ ++traceroute (1.4a5-2) frozen unstable; urgency=low ++ ++ * Use config.* from automake, needed for building traceroute on ARM ++ (closes: #61267). ++ ++ -- Herbert Xu Fri, 31 Mar 2000 07:50:33 +1000 ++ ++traceroute (1.4a5-1) unstable; urgency=low ++ ++ * Initial release (closes: #34166). ++ ++ -- Herbert Xu Mon, 1 Nov 1999 15:11:06 +1100 ++ +--- traceroute-1.4a12.orig/debian/control ++++ traceroute-1.4a12/debian/control +@@ -0,0 +1,22 @@ ++Source: traceroute ++Section: net ++Priority: optional ++Maintainer: Herbert Xu ++Standards-Version: 3.5.5 ++Build-Depends: automake, autoconf, debhelper ++ ++Package: traceroute ++Architecture: any ++Depends: ${shlibs:Depends} ++Conflicts: suidmanager (<< 0.50) ++Replaces: netstd ++Description: Traces the route taken by packets over a TCP/IP network. ++ The traceroute utility displays the route used by IP packets on their way to a ++ specified network (or Internet) host. Traceroute displays the IP number and ++ host name (if possible) of the machines along the route taken by the packets. ++ Traceroute is used as a network debugging tool. If you're having network ++ connectivity problems, traceroute will show you where the trouble is coming ++ from along the route. ++ . ++ Install traceroute if you need a tool for diagnosing network connectivity ++ problems. +--- traceroute-1.4a12.orig/debian/copyright ++++ traceroute-1.4a12/debian/copyright +@@ -0,0 +1,16 @@ ++This package was split from netstd by Herbert Xu herbert@debian.org on ++Mon, 1 Nov 1999 15:14:03 +1100. ++ ++netstd was created by Peter Tobias tobias@et-inf.fho-emden.de on ++Wed, 20 Jul 1994 17:23:21 +0200. ++ ++It was downloaded from ftp://ftp.ee.lbl.gov/. ++ ++Copyright: ++ ++Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997 ++The Regents of the University of California. All rights reserved. ++ ++The license can be found in /usr/share/common-licenses/BSD. ++ ++$Id: copyright,v 1.1 1999/11/01 04:34:49 herbert Exp $ +--- traceroute-1.4a12.orig/debian/rules ++++ traceroute-1.4a12/debian/rules +@@ -0,0 +1,96 @@ ++#!/usr/bin/make -f ++# GNU copyright 1997 to 1999 by Joey Hess. ++# Copyright (c) 1999 Herbert Xu ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++# This is the debhelper compatability version to use. ++export DH_COMPAT=2 ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ ++ if [ ! -f configure.old ]; then \ ++ mv configure configure.old; \ ++ mv config.guess config.guess.old; \ ++ mv config.sub config.sub.old; \ ++ mv linux-include/netinet/in_systm.h linux-include; \ ++ mv linux-include/netinet/ip.h linux-include; \ ++ mv linux-include/netinet/ip_icmp.h linux-include; \ ++ cp /usr/share/automake/config.guess .; \ ++ cp /usr/share/automake/config.sub .; \ ++ autoconf; \ ++ fi ++ if [ ! -f Makefile ]; then ./configure; fi ++ $(MAKE) CCOPT="-g -O2" ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp install-stamp ++ ++ -$(MAKE) distclean ++ if [ -f configure.old ]; then \ ++ mv configure.old configure; \ ++ mv config.guess.old config.guess; \ ++ mv config.sub.old config.sub; \ ++ mv linux-include/in_systm.h linux-include/netinet; \ ++ mv linux-include/ip.h linux-include/netinet; \ ++ mv linux-include/ip_icmp.h linux-include/netinet; \ ++ fi ++ ++ dh_clean ++ ++install: build install-stamp ++install-stamp: ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ install traceroute debian/traceroute/usr/sbin ++ cp traceroute.8 debian/traceroute/usr/share/man/man8 ++ ++ touch install-stamp ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++# dh_testversion ++ dh_testdir ++ dh_testroot ++# dh_installdebconf ++ dh_installdocs ++ dh_installexamples ++ dh_installmenu ++# dh_installemacsen ++# dh_installpam ++# dh_installinit ++ dh_installcron ++ dh_installmanpages ++ dh_installinfo ++# dh_undocumented ++ dh_installchangelogs CHANGES ++ dh_link ++ dh_strip ++ dh_compress ++ dh_fixperms ++ # You may want to make some executables suid here. ++ chmod u+s debian/traceroute/usr/sbin/traceroute ++# dh_makeshlibs ++ dh_installdeb ++# dh_perl ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary install +--- traceroute-1.4a12.orig/debian/traceroute.dirs ++++ traceroute-1.4a12/debian/traceroute.dirs +@@ -0,0 +1,2 @@ ++usr/sbin ++usr/share/man/man8 +--- traceroute-1.4a12.orig/debian/traceroute.docs ++++ traceroute-1.4a12/debian/traceroute.docs +@@ -0,0 +1 @@ ++README +--- traceroute-1.4a12.orig/debian/traceroute.examples ++++ traceroute-1.4a12/debian/traceroute.examples +@@ -0,0 +1,2 @@ ++mean.awk ++median.awk diff --git a/source/n/trn/config.sh b/source/n/trn/config.sh new file mode 100644 index 000000000..c202d8f47 --- /dev/null +++ b/source/n/trn/config.sh @@ -0,0 +1,220 @@ +#!/bin/sh +# +# This file was produced by running the Configure script. It holds all the +# definitions figured out by Configure. Should you modify one of these values, +# do not forget to propagate your changes by running "Configure -der". You may +# instead choose to run each of the .SH files by yourself, or "Configure -S". +# + +# Configuration time: Wed Mar 6 18:27:57 PST 2002 +# Configured by: root +# Target system: linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 + +d_bsd='undef' +d_eunice='undef' +d_xenix='undef' +eunicefix=':' +Mcc='Mcc' +awk='awk' +basename='basename' +bash='bash' +cat='cat' +cp='cp' +cpp='cpp' +csh='csh' +date='date' +diff='diff' +echo='echo' +ed='ed' +egrep='egrep' +expr='expr' +grep='grep' +inews='inews' +ispell='ispell' +ksh='ksh' +less='less' +lint='' +mail='mail' +metamail='metamail' +mhn='mhn' +mkdir='mkdir' +more='more' +munpack='munpack' +mv='mv' +nroff='nroff' +pg='pg' +rm='rm' +rmail='rmail' +sed='sed' +sendmail='sendmail' +smail='smail' +sort='sort' +spell='spell' +tail='tail' +test='test' +tr='tr' +uname='uname' +uniq='uniq' +uuname='uuname' +vi='vi' +vspell='' +who='' +hint='previous' +myuname='linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 ' +srcdir='.' +vincludes='' +vpath='.' +Id='$Id' +Log='$Log' +active='none' +acttimes='nntp' +d_acttimes='define' +myactive='.falseactive' +bin='/usr/bin' +binexp='/usr/bin' +installbin='/usr/bin' +cc='gcc' +ccflags='' +cppflags='' +ldflags='-s' +lkflags='' +optimize='-O2' +cf_by='root' +cf_time='Wed Mar 6 18:27:57 PST 2002' +contains='grep' +cpplast='-' +cppminus='-' +cpprun='gcc -E' +cppstdin='gcc -E' +d_ftime='define' +aphostcmd='' +d_gethname='undef' +d_phostcmd='undef' +d_uname='undef' +d_getpwent='define' +d_getcwd='undef' +d_getwd='define' +d_havetlib='define' +termlib='-ltermcap' +d_ignoreorg='undef' +d_internet='define' +d_memcmp='define' +d_memcpy='define' +d_memset='define' +d_mimeshow='undef' +d_mimestore='undef' +mimeshow="none" +mimestore="none" +d_newsadm='define' +newsadmin='news' +d_nntp='define' +d_xdata='define' +d_genauth='define' +servername='/etc/nntpserver' +d_nolnbuf='undef' +d_normsig='define' +jobslib='' +d_novoid='undef' +void='' +d_portable='define' +d_rdchk='undef' +d_rename='define' +d_sigblock='define' +d_sighold='define' +d_sizet='undef' +d_strccmp='define' +d_strchr='define' +d_strftime='define' +strftimec='' +strftimeo='' +d_libndir='undef' +d_usendir='undef' +libndir='' +ndirc='' +ndiro='' +d_vfork='define' +d_voidsig='define' +signal_t='void' +defeditor='/usr/bin/vi' +filexp='/usr/lib/trn/filexp' +d_dirnamlen='' +i_dirent='define' +i_ptem='undef' +i_stdlib='define' +i_string='define' +strings='/usr/include/string.h' +i_sysdir='define' +d_voidtty='' +i_bsdioctl='' +i_sysfilio='undef' +i_sysioctl='define' +i_syssockio='' +i_sysndir='undef' +i_sgtty='undef' +i_termio='undef' +i_termios='define' +i_systime='define' +i_time='define' +i_unistd='define' +i_vfork='undef' +ispell_options='-x' +ispell_prg='/usr/bin/ispell' +libc='/usr/lib/libc.a' +plibpth='/usr/ccs/lib /usr/lib /usr/ucblib /usr/local/lib' +xlibpth='/usr/lib/386 /lib/386' +libs=' ' +citydist='none' +cntrydist='none' +contdist='none' +locdist='none' +multistatedist='none' +orgdist='none' +statedist='none' +mailer='/usr/sbin/sendmail' +mailfile='/var/spool/mail/%L' +installmansrc='/usr/man/man1' +manext='1' +mansrc='/usr/man/man1' +mansrcexp='/usr/man/man1' +mboxchar='F' +c='' +n='-n' +d_berknames='define' +d_passnames='define' +d_usgnames='undef' +nametype='bsd' +inewsloc='/usr/bin/inews' +newslib='/tmp' +newslibexp='/tmp' +newsspool='/tmp' +orgname='/etc/organization' +package='trn' +spackage='Trn' +pager='/bin/more' +phost='/etc/HOSTNAME' +phostcmd='' +prefshell='/bin/bash' +installprivlib='/usr/lib/trn' +privlib='/usr/lib/trn' +privlibexp='/usr/lib/trn' +rootid='0' +sharpbang='#!' +shsharp='true' +spitshell='cat' +startsh='#!/bin/sh' +sysman='/usr/man/man1' +d_usemt='define' +d_useov='define' +overviewdir='/tmp' +threaddir='/tmp' +trn_init='FALSE' +trn_select='TRUE' +nm_opt='' +runnm='true' +usenm='true' +incpath='' +mips='' +mips_type='' +usrinc='/usr/include' +PATCHLEVEL="3.6 (20 Nov 1994)" +CONFIG=true diff --git a/source/n/trn/config.x86_64.sh b/source/n/trn/config.x86_64.sh new file mode 100644 index 000000000..d6c8f5325 --- /dev/null +++ b/source/n/trn/config.x86_64.sh @@ -0,0 +1,220 @@ +#!/bin/sh +# +# This file was produced by running the Configure script. It holds all the +# definitions figured out by Configure. Should you modify one of these values, +# do not forget to propagate your changes by running "Configure -der". You may +# instead choose to run each of the .SH files by yourself, or "Configure -S". +# + +# Configuration time: Wed Mar 6 18:27:57 PST 2002 +# Configured by: root +# Target system: linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 + +d_bsd='undef' +d_eunice='undef' +d_xenix='undef' +eunicefix=':' +Mcc='Mcc' +awk='awk' +basename='basename' +bash='bash' +cat='cat' +cp='cp' +cpp='cpp' +csh='csh' +date='date' +diff='diff' +echo='echo' +ed='ed' +egrep='egrep' +expr='expr' +grep='grep' +inews='inews' +ispell='ispell' +ksh='ksh' +less='less' +lint='' +mail='mail' +metamail='metamail' +mhn='mhn' +mkdir='mkdir' +more='more' +munpack='munpack' +mv='mv' +nroff='nroff' +pg='pg' +rm='rm' +rmail='rmail' +sed='sed' +sendmail='sendmail' +smail='smail' +sort='sort' +spell='spell' +tail='tail' +test='test' +tr='tr' +uname='uname' +uniq='uniq' +uuname='uuname' +vi='vi' +vspell='' +who='' +hint='previous' +myuname='linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 ' +srcdir='.' +vincludes='' +vpath='.' +Id='$Id' +Log='$Log' +active='none' +acttimes='nntp' +d_acttimes='define' +myactive='.falseactive' +bin='/usr/bin' +binexp='/usr/bin' +installbin='/usr/bin' +cc='gcc' +ccflags='' +cppflags='' +ldflags='-s' +lkflags='' +optimize='-O2 -fPIC' +cf_by='root' +cf_time='Wed Mar 6 18:27:57 PST 2002' +contains='grep' +cpplast='-' +cppminus='-' +cpprun='gcc -E' +cppstdin='gcc -E' +d_ftime='define' +aphostcmd='' +d_gethname='undef' +d_phostcmd='undef' +d_uname='undef' +d_getpwent='define' +d_getcwd='undef' +d_getwd='define' +d_havetlib='define' +termlib='-ltermcap' +d_ignoreorg='undef' +d_internet='define' +d_memcmp='define' +d_memcpy='define' +d_memset='define' +d_mimeshow='undef' +d_mimestore='undef' +mimeshow="none" +mimestore="none" +d_newsadm='define' +newsadmin='news' +d_nntp='define' +d_xdata='define' +d_genauth='define' +servername='/etc/nntpserver' +d_nolnbuf='undef' +d_normsig='define' +jobslib='' +d_novoid='undef' +void='' +d_portable='define' +d_rdchk='undef' +d_rename='define' +d_sigblock='define' +d_sighold='define' +d_sizet='undef' +d_strccmp='define' +d_strchr='define' +d_strftime='define' +strftimec='' +strftimeo='' +d_libndir='undef' +d_usendir='undef' +libndir='' +ndirc='' +ndiro='' +d_vfork='define' +d_voidsig='define' +signal_t='void' +defeditor='/usr/bin/vi' +filexp='/usr/lib64/trn/filexp' +d_dirnamlen='' +i_dirent='define' +i_ptem='undef' +i_stdlib='define' +i_string='define' +strings='/usr/include/string.h' +i_sysdir='define' +d_voidtty='' +i_bsdioctl='' +i_sysfilio='undef' +i_sysioctl='define' +i_syssockio='' +i_sysndir='undef' +i_sgtty='undef' +i_termio='undef' +i_termios='define' +i_systime='define' +i_time='define' +i_unistd='define' +i_vfork='undef' +ispell_options='-x' +ispell_prg='/usr/bin/ispell' +libc='/usr/lib64/libc.a' +plibpth='/usr/ccs/lib64 /usr/lib64 /usr/ucblib64 /usr/local/lib64' +xlibpth='/usr/lib64/x86_64 /lib64/x86_64' +libs=' ' +citydist='none' +cntrydist='none' +contdist='none' +locdist='none' +multistatedist='none' +orgdist='none' +statedist='none' +mailer='/usr/sbin/sendmail' +mailfile='/var/spool/mail/%L' +installmansrc='/usr/man/man1' +manext='1' +mansrc='/usr/man/man1' +mansrcexp='/usr/man/man1' +mboxchar='F' +c='' +n='-n' +d_berknames='define' +d_passnames='define' +d_usgnames='undef' +nametype='bsd' +inewsloc='/usr/bin/inews' +newslib='/tmp' +newslibexp='/tmp' +newsspool='/tmp' +orgname='/etc/organization' +package='trn' +spackage='Trn' +pager='/bin/more' +phost='/etc/HOSTNAME' +phostcmd='' +prefshell='/bin/bash' +installprivlib='/usr/lib64/trn' +privlib='/usr/lib64/trn' +privlibexp='/usr/lib64/trn' +rootid='0' +sharpbang='#!' +shsharp='true' +spitshell='cat' +startsh='#!/bin/sh' +sysman='/usr/man/man1' +d_usemt='define' +d_useov='define' +overviewdir='/tmp' +threaddir='/tmp' +trn_init='FALSE' +trn_select='TRUE' +nm_opt='' +runnm='true' +usenm='true' +incpath='' +mips='' +mips_type='' +usrinc='/usr/include' +PATCHLEVEL="3.6 (20 Nov 1994)" +CONFIG=true diff --git a/source/n/trn/slack-desc b/source/n/trn/slack-desc new file mode 100644 index 000000000..b6e638850 --- /dev/null +++ b/source/n/trn/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +trn: trn (a threaded newsreader) +trn: +trn: A threaded news reader for reading a remote NNTP server. Compiled to +trn: use Overviews or mthreads, and to read news through your NNTP server. +trn: Be sure to set NNTPSERVER in your /etc/profile or /etc/csh.login. +trn: +trn: +trn: +trn: +trn: +trn: diff --git a/source/n/trn/trn.SlackBuild b/source/n/trn/trn.SlackBuild new file mode 100755 index 000000000..ed9b3146d --- /dev/null +++ b/source/n/trn/trn.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-trn + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_trn.tar.gz + +echo "+============================================+" +echo "| trn-$VERSION for NNTP (with mthreads/Overviews) |" +echo "+============================================+" +cd $TMP +rm -rf trn-$VERSION +tar xvf $CWD/trn-$VERSION.tar.gz || exit 1 +cd trn-$VERSION || exit 1 +#zcat $CWD/trn-$VERSION.nntp.diff.gz | patch -p1 +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/config.x86_64.sh.gz > config.sh +else + zcat $CWD/config.sh.gz > config.sh +fi +# Here, just take the defaults. If you get a "whoa there!", use +# the newly detected value, not the old one. +./Configure -f config.sh + +make clean +make || exit 1 + +cat Pnews > $PKG/usr/bin/Pnews +cat Rnmail > $PKG/usr/bin/Rnmail +cat newsetup > $PKG/usr/bin/newsetup +cat newsgroups > $PKG/usr/bin/newsgroups +cat nntplist > $PKG/usr/bin/nntplist +cat trn > $PKG/usr/bin/trn +cat trn-artchk > $PKG/usr/bin/trn-artchk +cat trn > $PKG/usr/bin/trn +cat Pnews.1 | gzip -9c > $PKG/usr/man/man1/Pnews.1.gz +cat Rnmail.1 | gzip -9c > $PKG/usr/man/man1/Rnmail.1.gz +cat newsetup.1 | gzip -9c > $PKG/usr/man/man1/newsetup.1.gz +cat newsgroups.1 | gzip -9c > $PKG/usr/man/man1/newsgroups.1.gz +cat trn.1 | gzip -9c > $PKG/usr/man/man1/trn.1.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/trn-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/uucp/policy.h.diff b/source/n/uucp/policy.h.diff new file mode 100644 index 000000000..eb500b49c --- /dev/null +++ b/source/n/uucp/policy.h.diff @@ -0,0 +1,161 @@ +--- ./policy.h.orig 2003-05-28 23:08:45.000000000 -0700 ++++ ./policy.h 2003-06-05 14:46:32.000000000 -0700 +@@ -297,7 +297,7 @@ + systems the lock files are placed in /etc/locks. On some they are + placed in /usr/spool/locks. On the NeXT they are placed in + /usr/spool/uucp/LCK. */ +-/* #define LOCKDIR "/usr/spool/uucp" */ ++#define LOCKDIR "/var/lock" + /* #define LOCKDIR "/etc/locks" */ + /* #define LOCKDIR "/usr/spool/locks" */ + /* #define LOCKDIR "/usr/spool/uucp/LCK" */ +@@ -349,7 +349,7 @@ + The format for QNX lock files was made up just for Taylor UUCP. + QNX doesn't come with a version of UUCP. */ + #define HAVE_V2_LOCKFILES 0 +-#define HAVE_HDB_LOCKFILES 0 ++#define HAVE_HDB_LOCKFILES 1 + #define HAVE_SCO_LOCKFILES 0 + #define HAVE_SVR4_LOCKFILES 0 + #define HAVE_SEQUENT_LOCKFILES 0 +@@ -467,7 +467,7 @@ + configuration files will be read first, followed by the V2 + configuration files, followed by the HDB configuration files. */ + #define HAVE_V2_CONFIG 0 +-#define HAVE_HDB_CONFIG 0 ++#define HAVE_HDB_CONFIG 1 + + /* Exactly one of the following macros must be set to 1. The exact + format of the spool directories is explained in unix/spool.c. +@@ -485,10 +485,10 @@ + #define SPOOLDIR_V2 0 + #define SPOOLDIR_BSD42 0 + #define SPOOLDIR_BSD43 0 +-#define SPOOLDIR_HDB 0 ++#define SPOOLDIR_HDB 1 + #define SPOOLDIR_ULTRIX 0 + #define SPOOLDIR_SVR4 0 +-#define SPOOLDIR_TAYLOR 1 ++#define SPOOLDIR_TAYLOR 0 + + /* The status file generated by UUCP can use either the traditional + HDB upper case comments or new easier to read lower case comments. +@@ -536,9 +536,9 @@ + have shell scripts which expect the files to have a particular + format. If you have none, choose whichever format you find more + appealing. */ +-#define HAVE_TAYLOR_LOGGING 1 ++#define HAVE_TAYLOR_LOGGING 0 + #define HAVE_V2_LOGGING 0 +-#define HAVE_HDB_LOGGING 0 ++#define HAVE_HDB_LOGGING 1 + + /* If QNX_LOG_NODE_ID is set to 1, log messages will include the QNX + node ID just after the process ID. This is a policy decision +@@ -567,21 +567,21 @@ + exist when a new message is written out, it will be created. + Setting CLOSE_LOGFILES to 1 will obviously require slightly more + processing time. */ +-#define CLOSE_LOGFILES 0 ++#define CLOSE_LOGFILES 1 + + /* The name of the default spool directory. If HAVE_TAYLOR_CONFIG is + set to 1, this may be overridden by the ``spool'' command in the + configuration file. */ +-#define SPOOLDIR "/usr/spool/uucp" +-/* #define SPOOLDIR "/var/spool/uucp" */ ++/* #define SPOOLDIR "/usr/spool/uucp" */ ++#define SPOOLDIR "/var/spool/uucp" + + /* The name of the default public directory. If HAVE_TAYLOR_CONFIG is + set to 1, this may be overridden by the ``pubdir'' command in the + configuration file. Also, a particular system may be given a + specific public directory by using the ``pubdir'' command in the + system file. */ +-#define PUBDIR "/usr/spool/uucppublic" +-/* #define PUBDIR "/var/spool/uucppublic" */ ++/* #define PUBDIR "/usr/spool/uucppublic" */ ++#define PUBDIR "/var/spool/uucppublic" + + /* The default command path. This is a space separated list of + directories. Remote command executions requested by uux are looked +@@ -628,7 +628,7 @@ + ``remote-receive'') + the command will be rejected. By default, any argument is + permitted. */ +-#define ALLOW_FILENAME_ARGUMENTS 1 ++#define ALLOW_FILENAME_ARGUMENTS 0 + + /* If you set FSYNC_ON_CLOSE to 1, all output files will be forced out + to disk using the fsync system call when they are closed. This can +@@ -644,23 +644,23 @@ + /* The default log file when using HAVE_TAYLOR_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' + command in the configuration file. */ +-#define LOGFILE "/usr/spool/uucp/Log" ++/* #define LOGFILE "/usr/spool/uucp/Log" */ + /* #define LOGFILE "/var/spool/uucp/Log" */ +-/* #define LOGFILE "/var/log/uucp/Log" */ ++#define LOGFILE "/var/log/uucp/Log" + + /* The default statistics file when using HAVE_TAYLOR_LOGGING. When + using HAVE_TAYLOR_CONFIG, this may be overridden by the + ``statfile'' command in the configuration file. */ +-#define STATFILE "/usr/spool/uucp/Stats" ++/* #define STATFILE "/usr/spool/uucp/Stats" */ + /* #define STATFILE "/var/spool/uucp/Stats" */ +-/* #define STATFILE "/var/log/uucp/Stats" */ ++#define STATFILE "/var/log/uucp/Stats" + + /* The default debugging file when using HAVE_TAYLOR_LOGGING. When + using HAVE_TAYLOR_CONFIG, this may be overridden by the + ``debugfile'' command in the configuration file. */ +-#define DEBUGFILE "/usr/spool/uucp/Debug" ++/* #define DEBUGFILE "/usr/spool/uucp/Debug" */ + /* #define DEBUGFILE "/var/spool/uucp/Debug" */ +-/* #define DEBUGFILE "/var/log/uucp/Debug" */ ++#define DEBUGFILE "/var/log/uucp/Debug" + + #endif /* HAVE_TAYLOR_LOGGING */ + +@@ -669,17 +669,17 @@ + /* The default log file when using HAVE_V2_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' + command in the configuration file. */ +-#define LOGFILE "/usr/spool/uucp/LOGFILE" ++#define LOGFILE "/var/log/uucp/LOGFILE" + + /* The default statistics file when using HAVE_V2_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``statfile'' + command in the configuration file. */ +-#define STATFILE "/usr/spool/uucp/SYSLOG" ++#define STATFILE "/var/log/uucp/SYSLOG" + + /* The default debugging file when using HAVE_V2_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``debugfile'' + command in the configuration file. */ +-#define DEBUGFILE "/usr/spool/uucp/DEBUG" ++#define DEBUGFILE "/var/log/uucp/DEBUG" + + #endif /* HAVE_V2_LOGGING */ + +@@ -692,16 +692,16 @@ + be replaced by the system name (if there is no appropriate system, + "ANY" will be used). No other '%' character may appear in the + string. */ +-#define LOGFILE "/usr/spool/uucp/.Log/%s/%s" ++#define LOGFILE "/var/log/uucp/.Log/%s/%s" + + /* The default statistics file when using HAVE_HDB_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``statfile'' + command in the configuration file. */ +-#define STATFILE "/usr/spool/uucp/.Admin/xferstats" ++#define STATFILE "/var/log/uucp/.Admin/xferstats" + + /* The default debugging file when using HAVE_HDB_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``debugfile'' + command in the configuration file. */ +-#define DEBUGFILE "/usr/spool/uucp/.Admin/audit.local" ++#define DEBUGFILE "/var/log/uucp/.Admin/audit.local" + + #endif /* HAVE_HDB_LOGGING */ diff --git a/source/n/uucp/slack-desc b/source/n/uucp/slack-desc new file mode 100644 index 000000000..a54bccae4 --- /dev/null +++ b/source/n/uucp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +uucp: uucp (Taylor UUCP) +uucp: +uucp: Ian Taylor's Unix to Unix copy: mail and news over modem lines. +uucp: This is the standard UUCP package of the Free Software Foundation. +uucp: +uucp: Configured to use HoneyDanBer and/or Taylor configuration files. +uucp: +uucp: +uucp: +uucp: +uucp: diff --git a/source/n/uucp/uucp.SlackBuild b/source/n/uucp/uucp.SlackBuild new file mode 100755 index 000000000..431bfd12b --- /dev/null +++ b/source/n/uucp/uucp.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.07 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-uucp + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Explode the package framework: +cd $PKG +explodepkg $CWD/_uucp.tar.gz + +cd $TMP +rm -rf uucp-$VERSION +tar xvf $CWD/uucp-$VERSION.tar.gz || exit 1 +cd uucp-$VERSION || exit 1 +zcat $CWD/policy.h.diff.gz | patch -p1 --verbose || exit 1 +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --with-oldconfigdir=/etc/uucp/oldconfig \ + --with-newconfigdir=/etc/uucp + +make || exit 1 +make install DESTDIR=$PKG || exit 1 + +strip --strip-unneeded $PKG/usr/bin/* $PKG/usr/sbin/* + +gzip -9 $PKG/usr/man/man?/* +gzip -9 $PKG/usr/info/* +rm -f $PKG/usr/info/dir.gz + +# Setuid uucp binaries may only be run by members of the uucp group: +( cd $PKG/usr/bin + chgrp uucp cu uucp uuname uustat uux + chmod 4554 cu uucp uuname uustat uux + cd ../sbin + chgrp uucp uucico uuxqt + chmod 4554 uucico uuxqt +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/uucp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/vlan/slack-desc b/source/n/vlan/slack-desc new file mode 100644 index 000000000..23dcc65d0 --- /dev/null +++ b/source/n/vlan/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vlan: vlan (VLAN (802.1q) configuration program) +vlan: +vlan: The vlan package contains the vconfig program, which allows you to +vlan: create and remove VLAN devices on a VLAN enabled kernel. VLAN +vlan: devices are virtual Ethernet devices which represent virtual LANs on +vlan: the physical LAN. +vlan: +vlan: vlan is primarily the work of Alex Zeffertt, Cambridge Broadband Ltd, +vlan: extensively rewritten by Ben Greear. +vlan: +vlan: diff --git a/source/n/vlan/vlan.SlackBuild b/source/n/vlan/vlan.SlackBuild new file mode 100755 index 000000000..1b1064a86 --- /dev/null +++ b/source/n/vlan/vlan.SlackBuild @@ -0,0 +1,69 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=1.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vlan + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf vlan +tar xvf $CWD/vlan.1.9.tar.bz2 || exit 1 +cd vlan + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make clean +make vconfig || exit 1 + +strip --strip-unneeded vconfig +mkdir -p $PKG/sbin +cp vconfig $PKG/sbin +chmod 755 $PKG/sbin/vconfig + +mkdir -p $PKG/usr/man/man8 +cat vconfig.8 | gzip -9c > $PKG/usr/man/man8/vconfig.8.gz + +mkdir -p $PKG/usr/doc/vlan-1.9 +cp -a \ + README howto.html vlan.html \ + $PKG/usr/doc/vlan-1.9 + +# Finish up the package: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/vlan-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/vsftpd/doinst.sh b/source/n/vsftpd/doinst.sh new file mode 100644 index 000000000..f915774f4 --- /dev/null +++ b/source/n/vsftpd/doinst.sh @@ -0,0 +1,15 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/vsftpd.conf.new +config etc/logrotate.d/vsftpd.new +rm -f etc/logrotate.d/vsftpd.new + diff --git a/source/n/vsftpd/slack-desc b/source/n/vsftpd/slack-desc new file mode 100644 index 000000000..82b9f521e --- /dev/null +++ b/source/n/vsftpd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +vsftpd: vsftpd (Very Secure FTP Daemon) +vsftpd: +vsftpd: vsftpd is an FTP server, or daemon. The 'vs' stands for Very Secure. +vsftpd: Obviously this is not a guarantee, but a reflection that the entire +vsftpd: codebase was written with security in mind, and carefully designed to +vsftpd: be resilient to attack (as well as extremely fast and scalable). +vsftpd: +vsftpd: The vsftpd homepage is http://vsftpd.beasts.org/ +vsftpd: +vsftpd: The Very Secure FTP Daemon was written by Chris Evans. +vsftpd: diff --git a/source/n/vsftpd/vsftpd.SlackBuild b/source/n/vsftpd/vsftpd.SlackBuild new file mode 100755 index 000000000..c202e392d --- /dev/null +++ b/source/n/vsftpd/vsftpd.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.1.2 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-vsftpd + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf vsftpd-$VERSION +tar xvf $CWD/vsftpd-$VERSION.tar.?z* || exit 1 +cd vsftpd-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This allows the libfinder script to find stuff in */lib64 +if [ "$LIBDIRSUFFIX" = "64" ]; then + zcat $CWD/vsftpd.vsf_findlibs.sh.diff.gz | patch -p1 --verbose || exit 1 +fi + +zcat $CWD/vsftpd.builddefs.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/vsftpd.conf.diff.gz | patch -p1 --verbose || exit 1 + +sed -i -e "s#lib/#lib${LIBDIRSUFFIX}/#g" vsf_findlibs.sh + +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/sbin +cp vsftpd $PKG/usr/sbin +chmod 755 $PKG/usr/sbin/vsftpd +strip --strip-unneeded $PKG/usr/sbin/vsftpd + +mkdir -p $PKG/usr/man/man{5,8} +cat vsftpd.conf.5 | gzip -9c > $PKG/usr/man/man5/vsftpd.conf.5.gz +cat vsftpd.8 | gzip -9c > $PKG/usr/man/man8/vsftpd.8.gz + +mkdir -p $PKG/etc +cat vsftpd.conf > $PKG/etc/vsftpd.conf.new + +mkdir -p $PKG/etc/logrotate.d +zcat $CWD/vsftpd.log.gz > $PKG/etc/logrotate.d/vsftpd.new + +mkdir -p $PKG/usr/share/empty +mkdir -p $PKG/home/ftp + +mkdir -p $PKG/usr/doc/vsftpd-$VERSION +cp -a \ + AUDIT BENCHMARKS BUGS COPYING* COPYRIGHT Changelog EXAMPLE FAQ \ + INSTALL LICENSE README* REFS REWARD SECURITY SIZE SPEED TODO TUNING \ + $PKG/usr/doc/vsftpd-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/vsftpd-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/vsftpd/vsftpd.builddefs.diff b/source/n/vsftpd/vsftpd.builddefs.diff new file mode 100644 index 000000000..ea9081391 --- /dev/null +++ b/source/n/vsftpd/vsftpd.builddefs.diff @@ -0,0 +1,15 @@ +--- ./builddefs.h.orig 2004-07-02 07:36:59.000000000 -0700 ++++ ./builddefs.h 2004-09-03 11:25:13.000000000 -0700 +@@ -1,9 +1,9 @@ + #ifndef VSF_BUILDDEFS_H + #define VSF_BUILDDEFS_H + +-#undef VSF_BUILD_TCPWRAPPERS +-#define VSF_BUILD_PAM +-#undef VSF_BUILD_SSL ++#define VSF_BUILD_TCPWRAPPERS ++#undef VSF_BUILD_PAM ++#define VSF_BUILD_SSL + + #endif /* VSF_BUILDDEFS_H */ + diff --git a/source/n/vsftpd/vsftpd.conf.diff b/source/n/vsftpd/vsftpd.conf.diff new file mode 100644 index 000000000..230d858c8 --- /dev/null +++ b/source/n/vsftpd/vsftpd.conf.diff @@ -0,0 +1,48 @@ +--- ./vsftpd.conf.orig 2008-12-17 14:31:40.000000000 -0600 ++++ ./vsftpd.conf 2009-03-29 22:09:21.000000000 -0500 +@@ -19,7 +19,7 @@ + # + # Default umask for local users is 077. You may wish to change this to 022, + # if your users expect that (022 is used by most other ftpd's) +-#local_umask=022 ++local_umask=022 + # + # Uncomment this to allow the anonymous FTP user to upload files. This only + # has an effect if the above global write enable is activated. Also, you will +@@ -48,11 +48,11 @@ + # + # You may override where the log file goes if you like. The default is shown + # below. +-#xferlog_file=/var/log/vsftpd.log ++xferlog_file=/var/log/vsftpd.log + # + # If you want, you can have your log file in standard ftpd xferlog format. + # Note that the default log file location is /var/log/xferlog in this case. +-#xferlog_std_format=YES ++xferlog_std_format=YES + # + # You may change the default value for timing out an idle session. + #idle_session_timeout=600 +@@ -100,14 +100,17 @@ + # default to avoid remote users being able to cause excessive I/O on large + # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume + # the presence of the "-R" option, so there is a strong case for enabling it. +-#ls_recurse_enable=YES ++ls_recurse_enable=YES + # +-# When "listen" directive is enabled, vsftpd runs in standalone mode and +-# listens on IPv4 sockets. This directive cannot be used in conjunction +-# with the listen_ipv6 directive. +-listen=YES ++# When "listen" directive is enabled, vsftpd runs in standalone mode (rather ++# than from inetd) and listens on IPv4 sockets. To use vsftpd in standalone ++# mode rather than with inetd, either change the line below to 'listen=YES' ++# or comment it out. This directive cannot be used in conjunction with the ++# listen_ipv6 directive. ++listen=NO + # + # This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6 + # sockets, you must run two copies of vsftpd whith two configuration files. + # Make sure, that one of the listen options is commented !! + #listen_ipv6=YES ++ diff --git a/source/n/vsftpd/vsftpd.log b/source/n/vsftpd/vsftpd.log new file mode 100644 index 000000000..d338de811 --- /dev/null +++ b/source/n/vsftpd/vsftpd.log @@ -0,0 +1,5 @@ +/var/log/vsftpd.log { + # ftpd doesn't handle SIGHUP properly + nocompress + missingok +} diff --git a/source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff b/source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff new file mode 100644 index 000000000..147ee7426 --- /dev/null +++ b/source/n/vsftpd/vsftpd.vsf_findlibs.sh.diff @@ -0,0 +1,87 @@ +diff -Nur vsftpd-2.1.2.orig/vsf_findlibs.sh vsftpd-2.1.2/vsf_findlibs.sh +--- vsftpd-2.1.2.orig/vsf_findlibs.sh 2009-05-21 15:43:11.000000000 -0500 ++++ vsftpd-2.1.2/vsf_findlibs.sh 2009-05-31 00:41:38.308704816 -0500 +@@ -6,61 +6,61 @@ + + if find_func hosts_access tcpwrap.o; then + echo "-lwrap"; +- locate_library /lib/libnsl.so && echo "-lnsl"; ++ locate_library /lib64/libnsl.so && echo "-lnsl"; + fi + + # Look for PAM (done weirdly due to distribution bugs (e.g. Debian) or the + # crypt library. + if find_func pam_start sysdeputil.o; then +- locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0"; +- locate_library /usr/lib/libpam.so && echo "-lpam"; ++ locate_library /lib64/libpam.so.0 && echo "/lib64/libpam.so.0"; ++ locate_library /usr/lib64/libpam.so && echo "-lpam"; + # HP-UX ends shared libraries with .sl +- locate_library /usr/lib/libpam.sl && echo "-lpam"; ++ locate_library /usr/lib64/libpam.sl && echo "-lpam"; + # AIX ends shared libraries with .a +- locate_library /usr/lib/libpam.a && echo "-lpam"; ++ locate_library /usr/lib64/libpam.a && echo "-lpam"; + else +- locate_library /lib/libcrypt.so && echo "-lcrypt"; +- locate_library /usr/lib/libcrypt.so && echo "-lcrypt"; ++ locate_library /lib64/libcrypt.so && echo "-lcrypt"; ++ locate_library /usr/lib64/libcrypt.so && echo "-lcrypt"; + fi + + # Look for the dynamic linker library. Needed by older RedHat when + # you link in PAM +-locate_library /lib/libdl.so && echo "-ldl"; ++locate_library /lib64/libdl.so && echo "-ldl"; + + # Look for libsocket. Solaris needs this. +-locate_library /lib/libsocket.so && echo "-lsocket"; ++locate_library /lib64/libsocket.so && echo "-lsocket"; + + # Look for libnsl. Solaris needs this. +-locate_library /lib/libnsl.so && echo "-lnsl"; ++locate_library /lib64/libnsl.so && echo "-lnsl"; + + # Look for libresolv. Solaris needs this. +-locate_library /lib/libresolv.so && echo "-lresolv"; ++locate_library /lib64/libresolv.so && echo "-lresolv"; + + # Look for libutil. Older FreeBSD need this for setproctitle(). +-locate_library /usr/lib/libutil.so && echo "-lutil"; ++locate_library /usr/lib64/libutil.so && echo "-lutil"; + + # For older HP-UX... +-locate_library /usr/lib/libsec.sl && echo "-lsec"; ++locate_library /usr/lib64/libsec.sl && echo "-lsec"; + + # Look for libcap (capabilities) +-if locate_library /lib/libcap.so.1; then +- echo "/lib/libcap.so.1"; +-elif locate_library /lib/libcap.so.2; then +- echo "/lib/libcap.so.2"; ++if locate_library /lib64/libcap.so.1; then ++ echo "/lib64/libcap.so.1"; ++elif locate_library /lib64/libcap.so.2; then ++ echo "/lib64/libcap.so.2"; + else +- locate_library /usr/lib/libcap.so && echo "-lcap"; +- locate_library /lib/libcap.so && echo "-lcap"; ++ locate_library /usr/lib64/libcap.so && echo "-lcap"; ++ locate_library /lib64/libcap.so && echo "-lcap"; + fi + + # Solaris needs this for nanosleep().. +-locate_library /lib/libposix4.so && echo "-lposix4"; +-locate_library /usr/lib/libposix4.so && echo "-lposix4"; ++locate_library /lib64/libposix4.so && echo "-lposix4"; ++locate_library /usr/lib64/libposix4.so && echo "-lposix4"; + + # Tru64 (nanosleep) + locate_library /usr/shlib/librt.so && echo "-lrt"; + + # Solaris sendfile +-locate_library /usr/lib/libsendfile.so && echo "-lsendfile"; ++locate_library /usr/lib64/libsendfile.so && echo "-lsendfile"; + + # OpenSSL + if find_func SSL_library_init ssl.o; then diff --git a/source/n/wget/doinst.sh b/source/n/wget/doinst.sh new file mode 100644 index 000000000..dd81eb507 --- /dev/null +++ b/source/n/wget/doinst.sh @@ -0,0 +1,14 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/wgetrc.new + diff --git a/source/n/wget/slack-desc b/source/n/wget/slack-desc new file mode 100644 index 000000000..d023ea373 --- /dev/null +++ b/source/n/wget/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wget: wget (a non-interactive network retriever) +wget: +wget: GNU Wget is a free network utility to retrieve files from the +wget: World Wide Web using HTTP and FTP, the two most widely used Internet +wget: protocols. It works non-interactively, thus enabling work in the +wget: background after having logged off. +wget: +wget: The author of Wget is Hrvoje Niksic . +wget: +wget: +wget: diff --git a/source/n/wget/wget.SlackBuild b/source/n/wget/wget.SlackBuild new file mode 100755 index 000000000..23fbe7342 --- /dev/null +++ b/source/n/wget/wget.SlackBuild @@ -0,0 +1,85 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.11.4 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-wget + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf wget-$VERSION +tar xvf $CWD/wget-$VERSION.tar.?z* || exit 1 +cd wget-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/wget-$VERSION \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/etc/wgetrc $PKG/etc/wgetrc.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* $PKG/usr/man/man?/* + +mkdir -p $PKG/usr/doc/wget-$VERSION +cp -a \ + AUTHORS COPYING* MAILING-LIST NEWS PATCHES README* TODO \ + $PKG/usr/doc/wget-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/wget-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/whois/slack-desc b/source/n/whois/slack-desc new file mode 100644 index 000000000..a357ec064 --- /dev/null +++ b/source/n/whois/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +whois: whois (whois directory client) +whois: +whois: This is an enhanced whois (RFC 954) client derived from the BSD and +whois: RIPE whois programs. It can automatically select the appropriate +whois: whois server for most queries. +whois: +whois: This version of whois was written by Marco d'Itri +whois: For more information, see: http://www.linux.it/~md/software/ +whois: +whois: +whois: diff --git a/source/n/whois/whois.SlackBuild b/source/n/whois/whois.SlackBuild new file mode 100755 index 000000000..26baacf8c --- /dev/null +++ b/source/n/whois/whois.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.7.26 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-whois + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf whois-$VERSION +tar xvf $CWD/whois_$VERSION.tar.gz || exit 1 +cd whois-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit + +mkdir -p $PKG/usr/bin +cat whois > $PKG/usr/bin/whois +chmod 755 $PKG/usr/bin/whois + +( cd po + make + for n in *.mo ; do \ + l=`basename $n .mo`; \ + /usr/bin/install -c -m 755 -d $PKG/usr/share/locale/$l; \ + /usr/bin/install -c -m 755 -d $PKG/usr/share/locale/$l/LC_MESSAGES; \ + /usr/bin/install -c -m 644 $n $PKG/usr/share/locale/$l/LC_MESSAGES/whois.mo; \ + done +) + +mkdir -p $PKG/usr/man/man1 +cat whois.1 | gzip -9c > $PKG/usr/man/man1/whois.1.gz + +mkdir -p $PKG/usr/doc/whois-$VERSION +cp -a \ + COPYING* README \ + $PKG/usr/doc/whois-$VERSION + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/whois-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/wireless-tools/doinst.sh b/source/n/wireless-tools/doinst.sh new file mode 100644 index 000000000..ec61a630a --- /dev/null +++ b/source/n/wireless-tools/doinst.sh @@ -0,0 +1,26 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/rc.d/rc.wireless.conf.new + +# This is a kludge, but it's because there's no --reference option +# on busybox's 'chmod': +if [ -e etc/rc.d/rc.wireless ]; then + if [ -x etc/rc.d/rc.wireless ]; then + chmod 755 etc/rc.d/rc.wireless.new + else + chmod 644 etc/rc.d/rc.wireless.new + fi +fi +# Then config() it: +config etc/rc.d/rc.wireless.new + diff --git a/source/n/wireless-tools/scripts/rc.wireless b/source/n/wireless-tools/scripts/rc.wireless new file mode 100644 index 000000000..baa148dc7 --- /dev/null +++ b/source/n/wireless-tools/scripts/rc.wireless @@ -0,0 +1,333 @@ +#!/bin/sh +# /etc/rc.d/rc.wireless +# $Id: rc.wireless,v 1.13 2007/04/13 14:14:43 eha Exp eha $ +# +# Wireless network card setup. +# +# This script sets up PCI, USB, and 32-bit Cardbus wireless devices +# NOT 16-bit PCMCIA cards! Those are configured in /etc/pcmcia/. +# Single parameter to this script is the name of a network interface. +# Normally this script is called from rc.inet1 rather than run +# directly. +# +# This script is a modified '/etc/pcmcia/wireless' script +# 09/apr/2004 by Eric Hameleers +# 16/sep/2004 * Eric Hameleers * Fixed iwspy and iwpriv commands +# 08/apr/2005 * Eric Hameleers * Allow per-interface overrides of the wireless +# parameters (see /etc/rc.d/rc.inet1.conf) +# 11/apr/2005 * Eric Hameleers * Tune wpa_supplicant interactions. +# 23/apr/2005 * Eric Hameleers * First configure card with iwconfig, +# before starting wpa_supplicant +# 27/apr/2005 * Eric Hameleers * Multiple 'iwpriv $INTERFACE set' commands. +# 14/feb/2006 * Eric Hameleers * Better error messages; alternative way of +# getting HWADDR; parametrized WPA_WAIT value. +# Don't kill an already running wpa_supplicant. +# 29/apr/2006 * Pat Volkerding * Reverted HWADDR change, since it relies on +# a binary (macaddr) that is not built or +# installed by default since it is not +# compatible with all interfaces. +# 15/aug/2006 * Eric Hameleers * Added missing "" around $ESSID, which broke +# ESSIDs that contain a space character. +# 10/oct/2006 * Eric Hameleers * Added default empty values for all parameters. +# This makes a second wireless card leave +# wpa_supplicant alone if WPA is not configured. +# 15/oct/2006 * Eric Hameleers * Swapped the calls to "key " and +# "key restricted" since that might be needed +# for WEP to work reliably. +# 09/jan/2007 * Eric Hameleers * Add explicit default values to wireless params; +# also set the ESSID before IWPRIV commands, +# needed for some RaLink cards; +# use /proc/net/wireless instead of calling +# iwconfig to determine if a card is wireless. +# 13/apr/2007 * Eric Hameleers * Use of the IWPRIV variable was broken. +# NOTE: if you need to enter multiple parameters +# in IWPRIV, you must separate them with the pipe +# (|) character - this used to be a space char! +# See the example in rc.inet1.conf. +# 16/apr/2008 * Pat Volkerding * Make sure that HWADDR is all upper case. +# 23/apr/2008 * Pat Volkerding * Increase sleep time after bringing up an +# interface to 3 seconds. Some drivers +# need this additional time to initalize. +# ------------------------------------------------------------------------------ + +LOGGER=${LOGGER:-cat} + +if [ -z $IFNAME ] ; then + echo "WARNING: The script 'rc.wireless' must be executed by 'rc.inet1'!" | $LOGGER + echo " You should run the command \"/etc/rc.d/rc.inet1 _start\" yourself." | $LOGGER + return 1 2> /dev/null || exit 1 +fi + +INTERFACE=$1 + +# Find the path where wireless tools are installed +for IWPATH in /usr/{bin,sbin} /usr/local/{bin,sbin} /sbin /bin ; do + if [ -x $IWPATH/iwconfig ] ; then break ; fi +done + +# The same for wpa_supplicant (needed for WPA support) +for SUPPATH in /usr/{bin,sbin} /usr/local/{bin,sbin} /sbin /bin ; do + if [ -x $SUPPATH/wpa_supplicant ] ; then break ; fi +done + +# Set all desired settings through the wireless tools +IWCOMMAND="$IWPATH/iwconfig ${INTERFACE}" +IWPRIVCMD="$IWPATH/iwpriv ${INTERFACE}" +IWSPYCMD="$IWPATH/iwspy ${INTERFACE}" +IFCOMMAND="/sbin/ifconfig ${INTERFACE}" + +is_wireless_device () +{ + #[ -x $IWPATH/iwconfig ] || return 1 + #LC_ALL=C $IWPATH/iwconfig $1 2>&1 | \ + # grep -Eiq "no wireless extensions|no such device" || return 0 + #return 1 + if ! grep `echo ${1}: | cut -f 1 -d :`: /proc/net/wireless 1> /dev/null ; then + # no wireless interface + return 1 + else + # interface has wireless extensions + return 0 + fi +} + +############### +# EXIT POINTS # +############### + +# Is the device wireless? If not, exit this script. +is_wireless_device ${INTERFACE} || return 0 2> /dev/null || exit 0 + +# If we stop a wireless interface using wpa_supplicant, +# we'll kill its wpa_supplicant daemon too and exit this script: +if [ "$2" = "stop" ]; then + WPAPID=`echo \`ps axww|grep wpa_supplicant |grep i${INTERFACE}\` |cut -f1 -d' '` + [ ${WPAPID} ] && kill ${WPAPID} + return 0 +fi + +# ----------------------------------------------------- +# Continue with the script - bringing the interface UP. +# ----------------------------------------------------- + +# Bring interface up - for determining the HWADDR +$IFCOMMAND up +sleep 3 + +# Get the MAC address for the interface +HWADDR=`/sbin/ifconfig ${INTERFACE} | sed -ne 's/.*\(..:..:..:..:..:..\).*/\1/p' | tr [a-f] [A-F]` + +# Empty all wireless parameters- some of them could still be set for a previous interface: +# when rc.inet1 is sourced from rc.M all scripts are run in the same shell. +CHANNEL="" +ESSID="" +FREQ="" +FRAG="" +IWCONFIG="" +IWPRIV="" +IWSPY="" +KEY="" +MODE="" +NICKNAME="" +NWID="" +RATE="" +RTS="" +SENS="" +WPA="" +WPADRIVER="" +WPACONF="" +WPAWAIT="" +# Read the configuration information for the card with address $HWADDR +# from /etc/rc.d/rc.wireless.conf: +[[ -r /etc/rc.d/rc.wireless.conf ]] && . /etc/rc.d/rc.wireless.conf + +# Let any per-interface overrides (the WLAN_xxxx parameters) that are set +# in /etc/rc.d/rc.inet1.conf have precedence. +# The reason: you might have multiple wireless cards of the same brand, or +# connecting to multiple networks. +# Position 'i' of this interface in the IFNAME array was determined in rc.inet1 +CHANNEL=${WLAN_CHANNEL[$i]:-${CHANNEL}} +ESSID=${WLAN_ESSID[$i]:-${ESSID}} +FREQ=${WLAN_FREQ[$i]:-${FREQ}} +FRAG=${WLAN_FRAG[$i]:-${FRAG}} +IWCONFIG=${WLAN_IWCONFIG[$i]:-${IWCONFIG}} +IWPRIV=${WLAN_IWPRIV[$i]:-${IWPRIV}} +IWSPY=${WLAN_IWSPY[$i]:-${IWSPY}} +KEY=${WLAN_KEY[$i]:-${KEY}} +MODE=${WLAN_MODE[$i]:-${MODE}} +NICKNAME=${WLAN_NICKNAME[$i]:-${NICKNAME}} +NWID=${WLAN_NWID[$i]:-${NWID}} +RATE=${WLAN_RATE[$i]:-${RATE}} +RTS=${WLAN_RTS[$i]:-${RTS}} +SENS=${WLAN_SENS[$i]:-${SENS}} +WPA=${WLAN_WPA[$i]:-${WPA}} +# The "ext" interface will be default if not explicitly set +WPADRIVER=${WLAN_WPADRIVER[$i]:-${WPADRIVER:="wext"}} +# The default config file as installed by the wpa_supplicant package: +WPACONF=${WLAN_WPACONF[$i]:-${WPACONF:="/etc/wpa_supplicant.conf"}} +WPAWAIT=${WLAN_WPAWAIT[$i]:-${WPAWAIT:="60"}} + + +[ -n "$VERBOSE" -a -n "$INFO" ] && echo "$0: $1 information: '$INFO'" + +################### +# WIRELESS CONFIG # +################### + +# Mode needs to be first : some settings apply only in a specific mode! +if [ -n "$MODE" ] ; then + echo "$0: $IWCOMMAND mode $MODE" | $LOGGER + # if $IWCOMMAND fails, try taking the interface down to run it. + # Some drivers require this. + if ! $IWCOMMAND mode $MODE 2> /dev/null ; then + $IFCOMMAND down + $IWCOMMAND mode $MODE + $IFCOMMAND up + sleep 3 + fi +fi +# This is a bit hackish, but should do the job right... +if [ ! -n "$NICKNAME" ] ; then + NICKNAME=`/bin/hostname` +fi +if [ -n "$ESSID" -o -n "$MODE" ] ; then + echo "$0: $IWCOMMAND nick $NICKNAME" | $LOGGER + $IWCOMMAND nick $NICKNAME +fi +# Regular stuff... +if [ -n "$NWID" ] ; then + echo "$0: $IWCOMMAND nwid $NWID" | $LOGGER + $IWCOMMAND nwid $NWID +fi +if [ -n "$FREQ" ] ; then + echo "$0: $IWCOMMAND freq $FREQ" | $LOGGER + $IWCOMMAND freq $FREQ +elif [ -n "$CHANNEL" ] ; then + echo "$0: $IWCOMMAND channel $CHANNEL" | $LOGGER + $IWCOMMAND channel $CHANNEL +fi + +# WEP keys (non-WPA) +if [ -n "$KEY" -a ! -n "$WPA" ] ; then + if [ "$KEY" = "off" ]; then + echo "$0: $IWCOMMAND key open" | $LOGGER + $IWCOMMAND key open + echo "$0: $IWCOMMAND key off" | $LOGGER + $IWCOMMAND key off + else + echo "$0: $IWCOMMAND key ************" | $LOGGER + $IWCOMMAND key $KEY + if ! echo "$KEY" | egrep -qw "restricted|open" ; then + # Set "restricted" as the default security mode: + echo "$0: $IWCOMMAND key restricted" | $LOGGER + $IWCOMMAND key restricted + fi + fi +fi +if [ -n "$SENS" ] ; then + echo "$0: $IWCOMMAND sens $SENS" | $LOGGER + $IWCOMMAND sens $SENS +fi +if [ -n "$RATE" ] ; then + echo "$0: $IWCOMMAND rate $RATE" | $LOGGER + $IWCOMMAND rate $RATE +fi +if [ -n "$RTS" ] ; then + echo "$0: $IWCOMMAND rts $RTS" | $LOGGER + $IWCOMMAND rts $RTS +fi +if [ -n "$FRAG" ] ; then + echo "$0: $IWCOMMAND frag $FRAG" | $LOGGER + $IWCOMMAND frag $FRAG +fi +# More specific parameters +if [ -n "$IWCONFIG" ] ; then + echo "$0: $IWCOMMAND $IWCONFIG" | $LOGGER + $IWCOMMAND $IWCONFIG +fi +if [ -n "$IWSPY" ] ; then + echo "$0: $IWSPYCMD $IWSPY" | $LOGGER + $IWSPYCMD $IWSPY +fi +# For RaLink cards, the SSID must be set right before configuring WPAPSK/TKIP parameters +# using iwpriv commands in order to generate the wpapsk password. This should not hurt other cards: +if [ -n "$ESSID" ] ; then + echo "$0: $IWCOMMAND essid \"$ESSID\"" | $LOGGER + $IWCOMMAND essid "$ESSID" +fi +# The iwpriv can set one private IOCTL at the time, so if the $IWPRIV +# variable contains multiple pipe ('|') separated settings, we split them here: +# WARNING: if your iwpriv commands contain a WEP/WPA key, these can be logged +# in /var/log/messages! +if [ -n "$IWPRIV" ] ; then + echo "${IWPRIV}|" | \ + while read -d '|' iwi; do + if [ -n "$iwi" ]; then + echo "$0: '$IWPRIVCMD $iwi'" | $LOGGER + $IWPRIVCMD $iwi + fi + done +fi + +################## +# WPA_SUPPLICANT # +################## + +# Support for WPA (wireless protected access) is provided by wpa_supplicant +# for those drivers that support it (and it looks like wpa_supplicant is +# the future for WPA support in Linux anyway) +if [ "$WPA" = "wpa_supplicant" ] || [ "$WPA" = "wpaxsupplicant" ] && [ -x ${SUPPATH}/wpa_supplicant ]; then + # Interface down, so wpa_supplicant can associate with the AP + $IFCOMMAND down + #WPACONF=${WPACONF:-/etc/wpa_supplicant.conf} + WPA_OPTIONS="" + [ ${WPADRIVER} ] && WPA_OPTIONS="-D${WPADRIVER}" # specify the driver + [ ${WPA} = "wpaxsupplicant" ] && WPA_OPTIONS="${WPA_OPTIONS} -e" # Use external xsupplicant (disables the internal supplicant) + + # We leave a running wpa_supplicant process in peace: + WPAPID=`echo \`ps axww|grep wpa_supplicant |grep i${INTERFACE}\` |cut -f1 -d' '` + if [ ${WPAPID} ]; then + echo "$0: wpa_supplicant found running already" | $LOGGER + else + echo "$0: wpa_supplicant -B -c${WPACONF} ${WPA_OPTIONS} -i$INTERFACE" | $LOGGER + ${SUPPATH}/wpa_supplicant -B -c${WPACONF} ${WPA_OPTIONS} -i$INTERFACE + fi + + # Buy wpa_supplicant some time to authenticate before bringing the + # interface back up... but we don't wait forever: + # You can increase this value in rc.inet1.conf (WLAN_WPAWAIT) or rc.wireless.conf (WPAWAIT) + # if your card takes longer to associate: + WPAWAIT=${WPAWAIT:-10} + wi=0 + while [ $wi -lt $WPAWAIT ]; do + wi=$(($wi+1)); sleep 1 + if (grep -q "^ctrl_interface=" ${WPACONF}); then + if (LC_ALL=C ${SUPPATH}/wpa_cli -i$INTERFACE status|grep -q "^wpa_state=COMPLETED"); then break; fi + else + if (LC_ALL=C ${IWCOMMAND}|grep -Eq "Encryption key:....-"); then break; fi + fi + done + if [ $wi -eq $WPAWAIT ]; then + echo "WPA authentication did not complete, try running '/etc/rc.d/rc.inet1 ${INTERFACE}_start' in a few seconds." | $LOGGER + fi + # Bring interface up to avoid 'not ready' errors when calling iwconfig + $IFCOMMAND up + sleep 3 + +else + + # ESSID need to be last: most devices re-perform the scanning/discovery + # when this is set, and things like encryption keys had better be + # defined if we want to discover the right set of APs/nodes. + # NOTE: when automatic association does not work, but you manage to get + # an IP address by manually setting the ESSID and then calling dhcpcd, + # then the cause might be the incorrect definition of your ESSID="bla" + # parameter in rc.wireless.conf. + # Debug your wireless problems by running 'iwevent' while the card + # is being configured. + if [ -n "$ESSID" ] ; then + echo "$0: $IWCOMMAND essid \"$ESSID\"" | $LOGGER + $IWCOMMAND essid "$ESSID" + fi + +fi diff --git a/source/n/wireless-tools/scripts/rc.wireless.conf b/source/n/wireless-tools/scripts/rc.wireless.conf new file mode 100644 index 000000000..d02d7c2cc --- /dev/null +++ b/source/n/wireless-tools/scripts/rc.wireless.conf @@ -0,0 +1,225 @@ +# Wireless LAN adapter configuration +# +# Theory of operation : +# +# The script attempts to match a block of settings to the specific wireless +# card inserted, the *first* block matching the card is used. +# The address format is "hwaddr", with * as a wildcard. +# 'hwaddr' is the unique MAC address identifier of the wireless card. +# The MAC address is usually printed on the card, or can be found via ifconfig. +# Some examples here use only half of the MAC address with a wildcard to +# match a whole family of cards... +# +# All the Wireless specific configuration is done through the Wireless +# Extensions, so we will just call 'iwconfig' with the right parameters +# defined below. +# Of course, you need to have iwconfig installled on your system. +# To download iwconfig, or for more info on Wireless Extensions : +# http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html +# +# Note : you don't need to fill all parameters, leave them blank, in most +# cases the driver will initialise itself with sane defaults values or +# automatically figure out the value... And no drivers do support all +# possible settings... +# +# -- This is a modified '/etc/pcmcia/wireless.opts' script -- +# -- I added sections for Prism/GT and Atheros based cards -- +# -- (supported by the prism54 and madwifi drivers) -- +# -- 16/sep/2004 * Eric Hameleers -- +# + +VERBOSE=1 + +case "$HWADDR" in + +## NOTE : Comment out the following five lines to activate the samples below ... +## --------- START SECTION TO REMOVE ----------- +## Pick up any Access Point, should work on most 802.11 cards +*) + INFO="Any ESSID" + ESSID="any" + ;; +## ---------- END SECTION TO REMOVE ------------ + + +# Here are a few examples with a few Wireless LANs supported... +# The matching is done on the first 3 bytes of the MAC address + +# SMC2835W EZ Connect g 2.4GHz 54 Mbps Wireless Cardbus Adapter +00:04:E2:*) + INFO="SMC2835W EZ Connect g 2.4GHz 54 Mbps Wireless Cardbus Adapter" + # ESSID (extended network name) : My Network, any + ESSID="any" + # NWID/Domain (cell identifier) : 89AB, 100, off + NWID="" + # Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto + MODE="Managed" + # Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency) + FREQ="" + CHANNEL="7" + # Sensitivity (cell size + roaming speed) : 1, 2, 3 ; -70 (dBm) + SENS="" + # Bit rate : auto, 1M, 11M,54M + RATE="auto" + # Encryption key : 4567-89AB-CD, s:password + # Example for 40-bit encryption: + #KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]" + # Example for 104-bit encryption (aka 128-bit WEP): + #KEY="d5ad2f05abd048ecf10b1c80c7" + KEY="" + # RTS threshold : off, 500 + RTS="" + # Fragmentation threshold : off, 1000 + FRAG="" + # Other iwconfig parameters : power off, ap 01:23:45:67:89:AB + IWCONFIG="" + # iwspy parameters : + 01:23:45:67:89:AB + IWSPY="" + # iwpriv parameters : set_port 2, set_histo 50 60 + IWPRIV="" +;; + +# Multiband Atheros based 802.11a/b/g universal NIC cards +00:05:4E:*) + INFO="Multiband Atheros based 802.11a/b/g universal NIC" + # ESSID (extended network name) : My Network, any + ESSID="" + # Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto + MODE="Managed" + # Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency) + FREQ="" + CHANNEL="7" + # Bit rate : auto, 1M, 11M,54M + RATE="auto" + # Encryption key : 4567-89AB-CD, s:password + # Example for 40-bit encryption: + #KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]" + # Example for 104-bit encryption (aka 128-bit WEP): + #KEY="d5ad2f05abd048ecf10b1c80c7" + KEY="" + # Other iwconfig parameters : power off, ap 01:23:45:67:89:AB + IWCONFIG="" + # iwspy parameters : + 01:23:45:67:89:AB + IWSPY="" + # iwpriv parameters : set_port 2, set_histo 50 60 + IWPRIV="" + ;; + +# Lucent Wavelan IEEE (+ Orinoco, RoamAbout and ELSA) +# Note : wvlan_cs driver only, and version 1.0.4+ for encryption support +00:60:1D:*|00:02:2D:*) + INFO="Wavelan IEEE example (Lucent default settings)" + ESSID="Wavelan Network" + MODE="Managed" + #RATE="auto" + KEY="s:secu1" + # To set all four keys, use : + #KEY="s:secu1 [1] key s:secu2 [2] key s:secu3 [3] key s:secu4 [4] key [1]" + # For the RG 1000 Residential Gateway: The ESSID is the identifier on + # the unit, and the default key is the last 5 digits of the same. + #ESSID="084d70" + #KEY="s:84d70" + ;; + +# Cisco/Aironet 4800/3x0 +# Note : MPL driver only (airo/airo_cs), version 1.3 or later +00:40:96:*|00:02:8A:*) + INFO="Cisco/Aironet example (Cisco default settings)" + ESSID="any" + # To set all four ESSID, use iwconfig v21 and the same trick as above + MODE="Managed" + #RATE="11M auto" + #KEY="d5ad2f05abd048ecf10b1c80c7" + KEY="off" + ;; + +# Samsung MagicLan (+ some other PrismII cards) +# Note : Samsung binary library driver, version 1.20 or later +00:00:F0:*|00:02:78:*) + INFO="Samsung MagicLan example (Samsung default settings)" + ESSID="any" + MODE="Managed" + CHANNEL="4" + RATE="auto" + #KEY="883e-aa67-21 [1] key 5501-d0da-87 [2] key 91f5-3368-6b [3] key 2d73-31b7-96 [4]" + #IWCONFIG="power on" + ;; + +# Raytheon Raylink/WebGear Aviator2.4 +# Note : doesn't work yet, please use for debugging only :-( +00:00:8F:*|00:00:F1:*) + INFO="Raylink/Aviator2.4 example (Aviator default ad-hoc setting)" + ESSID="ADHOC_ESSID" + MODE="Ad-Hoc" + RATE="auto" + IWPRIV="set_framing 1" + ;; + +# Old Lucent Wavelan +08:00:0E:*) + INFO="Wavelan example (Lucent default settings)" + NWID="0100" + MODE="Ad-Hoc" + FREQ="2.425G" + KEY="off" + ;; + +# Netwave (Xircom Netwave/Netwave Airsurfer) +00:80:C7:*) + INFO="Netwave example (Netwave default settings)" + NWID="100" + KEY="00" + ;; + +# Proxim RangeLan2/Symphony (what is the MAC address ???) +XX:XX:XX:*) + INFO="Proxim RangeLan2/Symphony example" + NWID="0" + MODE="Master" + CHANNEL="15" + IWPRIV="setsubchan 1" + ;; + +# No Wires Needed Swallow 550 and 1100 setting (what is the MAC address ???) +XX:XX:XX:*) + INFO="NWN Swallow example" + ESSID="session" + KEY="0000-0000-00 open" + ;; + +# Symbol Spectrum24 setting (what is the MAC address ???) +XX:XX:XX:*) + INFO="Symbol Spectrum24 example" + ESSID="Essid string" + ;; + +# Generic example (decribe all possible settings) +*) + INFO="Fill with your own settings..." + # ESSID (extended network name) : My Network, any + ESSID="" + # NWID/Domain (cell identifier) : 89AB, 100, off + NWID="" + # Operation mode : Ad-Hoc, Managed, Master, Repeater, Secondary, auto + MODE="" + # Frequency or channel : 1, 2, 3 (channel) ; 2.422G, 2.46G (frequency) + FREQ="" + CHANNEL="" + # Sensitivity (cell size + roaming speed) : 1, 2, 3 ; -70 (dBm) + SENS="" + # Bit rate : auto, 1M, 11M + RATE="" + # Encryption key : 4567-89AB-CD, s:password + KEY="" + # RTS threshold : off, 500 + RTS="" + # Fragmentation threshold : off, 1000 + FRAG="" + # Other iwconfig parameters : power off, ap 01:23:45:67:89:AB + IWCONFIG="" + # iwspy parameters : + 01:23:45:67:89:AB + IWSPY="" + # iwpriv parameters : set_port 2, set_histo 50 60 + IWPRIV="" + ;; +esac diff --git a/source/n/wireless-tools/slack-desc b/source/n/wireless-tools/slack-desc new file mode 100644 index 000000000..7b2ca529b --- /dev/null +++ b/source/n/wireless-tools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wireless-tools: wireless-tools (utilities for wireless networking) +wireless-tools: +wireless-tools: This package contains tools and a library used for configuring +wireless-tools: wireless networking interfaces: +wireless-tools: iwconfig (the main wireless tool), iwlist (display more detailed +wireless-tools: information than iwconfig), iwspy (get stats per MAC address and +wireless-tools: more), iwpriv (set driver private ioctls), iwgetid (show the +wireless-tools: ESSID or NWID of a device), iwevent (display wireless events), +wireless-tools: ifrename (rename a network interface). +wireless-tools: +wireless-tools: The wireless-tools were written by Jean Tourrilhes. diff --git a/source/n/wireless-tools/wireless_tools.SlackBuild b/source/n/wireless-tools/wireless_tools.SlackBuild new file mode 100755 index 000000000..049fb47e0 --- /dev/null +++ b/source/n/wireless-tools/wireless_tools.SlackBuild @@ -0,0 +1,100 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=29 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-5} + + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-wireless-tools +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf wireless_tools.$VERSION +tar xvf $CWD/wireless_tools.$VERSION.tar.gz || exit 1 +cd wireless_tools.$VERSION +zcat $CWD/wireless_tools.nowhine.diff.gz | patch -p1 --verbose --suffix=.orig --backup || exit 1 +zcat $CWD/wireless_tools.static.diff.gz | patch -p1 --verbose --suffix=.orig --backup || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make || exit 1 + +mkdir -p $PKG/sbin +cp -a ifrename iwconfig iwevent iwgetid iwlist iwpriv iwspy $PKG/sbin +chmod 755 $PKG/sbin/* +# The library seems to be used by kdenetwork, but since the .soname in the shared library +# doesn't seem to be forward-thinking we'll leave that out still: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cp -a libiw.a $PKG/usr/lib${LIBDIRSUFFIX} + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/include +cp -a iwlib.h wireless.h $PKG/usr/include +chmod 644 $PKG/usr/include/*.h + +mkdir -p $PKG/usr/man/man5 +cat iftab.5 | gzip -9c > $PKG/usr/man/man5/iftab.5.gz +mkdir -p $PKG/usr/man/man7 +cat wireless.7 | gzip -9c > $PKG/usr/man/man7/wireless.7.gz +mkdir -p $PKG/usr/man/man8 +for file in *.8 ; do + cat $file | gzip -9c > $PKG/usr/man/man8/$file.gz +done + +mkdir -p $PKG/usr/doc/wireless-tools-$VERSION +cp -a \ + COPYING INSTALL *.txt README* \ + $PKG/usr/doc/wireless-tools-$VERSION +chmod 644 $PKG/usr/doc/wireless-tools-$VERSION/* + +# Add init scripts from Eric Hameleers: +mkdir -p $PKG/etc/rc.d +cat $CWD/scripts/rc.wireless > $PKG/etc/rc.d/rc.wireless.new +chmod 755 $PKG/etc/rc.d/rc.wireless.new +# This might contain a secret key, so we'll use chmod 600: +cat $CWD/scripts/rc.wireless.conf > $PKG/etc/rc.d/rc.wireless.conf.new +chmod 600 $PKG/etc/rc.d/rc.wireless.conf.new + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/wireless-tools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/wireless-tools/wireless_tools.nowhine.diff b/source/n/wireless-tools/wireless_tools.nowhine.diff new file mode 100644 index 000000000..71d4d16fa --- /dev/null +++ b/source/n/wireless-tools/wireless_tools.nowhine.diff @@ -0,0 +1,11 @@ +--- ./iwlib.c.orig 2004-10-27 13:55:17.000000000 -0700 ++++ ./iwlib.c 2005-07-13 22:20:33.000000000 -0700 +@@ -102,7 +102,7 @@ + "Monitor" }; + + /* Disable runtime version warning in iw_get_range_info() */ +-int iw_ignore_version = 0; ++int iw_ignore_version = 1; + + /************************ SOCKET SUBROUTINES *************************/ + diff --git a/source/n/wireless-tools/wireless_tools.static.diff b/source/n/wireless-tools/wireless_tools.static.diff new file mode 100644 index 000000000..71f4ec3fa --- /dev/null +++ b/source/n/wireless-tools/wireless_tools.static.diff @@ -0,0 +1,11 @@ +--- ./Makefile.orig 2004-10-11 15:16:15.000000000 -0700 ++++ ./Makefile 2005-07-25 00:18:46.000000000 -0700 +@@ -17,7 +17,7 @@ + ## Uncomment this to build tools using static version of the library + ## Mostly useful for embedded platforms without ldd, or to create + ## a local version (non-root). +-# BUILD_STATIC = y ++BUILD_STATIC = y + + ## Uncomment this to build without using libm (less efficient) + ## This is mostly useful for embedded platforms without maths. diff --git a/source/n/wpa_supplicant/README.slackware b/source/n/wpa_supplicant/README.slackware new file mode 100644 index 000000000..7ab40a289 --- /dev/null +++ b/source/n/wpa_supplicant/README.slackware @@ -0,0 +1,55 @@ +================================================= +How do I get my card to use WPA-PSK in Slackware? +================================================= + +First off: wpa_supplicant REQUIRES the AP to broadcast the SSID. When the AP +hides its SSID, all you will get out of wpa_supplicant is the message: +"No suitable AP found" + +Also, read the MADwifi FAQ (http://madwifi.sourceforge.net/dokuwiki/doku.php) +since it contains a wealth of information. + +This being said, you'll have to do the following (as root): +Edit the file named /etc/wpa_supplicant.conf and add these lines: + +network={ + scan_ssid=0 + proto=WPA + key_mgmt=WPA-PSK + pairwise=CCMP TKIP + group=CCMP TKIP WEP104 WEP40 +} + +Then execute: + +/usr/sbin/wpa_passphrase YOURSSID passphrase + +with the SSID of your AP and the passphrase you've entered in its WPA-PSK configuration. You'll receive an output, which looks like this: + +network={ + ssid="YOURSSID" + #psk="passphrase" + +psk=66a4bfb03de5656cf26cfa03a116097546046f4aea11ee044b841171207d8308 +} + +Copy the three lines within the network-tag into your own entry in wpa_supplicant.conf and change the permissions after you've finished editing: + +chmod 640 /etc/wpa_supplicant.conf + +To get your network device up and running, execute: + +### /usr/sbin/wpa_supplicant -Bw -c/etc/wpa_supplicant.conf -iath0 -Dmadwifi ### +### you don't have to run the above command by hand, because it will ### +### be executed by the rc.inet1 command that you run: ### + +/etc/rc.d/rc.inet1 ath0_start + +In case you want to see the wpa_supplicant in action, start it on the command line before enabling the wireless device, by running: +/usr/sbin/wpa_supplicant -dw -c/etc/wpa_supplicant.conf -iath0 -Dmadwifi +The terminal where you've started the wpa_supplicant should now show the communication between your wlan card and the AP. If you got everything up and running you can let Slackware's init script take over by killing wpa_supplicant and running: + +/etc/rc.d/rc.inet1 ath0_restart + +Studying the wpa_supplicant README is also highly recommended for further insight! + diff --git a/source/n/wpa_supplicant/slack-desc b/source/n/wpa_supplicant/slack-desc new file mode 100644 index 000000000..4313b3783 --- /dev/null +++ b/source/n/wpa_supplicant/slack-desc @@ -0,0 +1,18 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + |-----handy-ruler------------------------------------------------------| +wpa_supplicant: wpa_supplicant (WPA/WPA2/IEEE 802.1X Supplicant) +wpa_supplicant: +wpa_supplicant: wpa_supplicant is a WPA Supplicant for Linux with support for WPA and +wpa_supplicant: WPA2 (IEEE 802.11i / RSN). Supplicant is the IEEE 802.1X/WPA +wpa_supplicant: component that is used in the client stations. It implements key +wpa_supplicant: negotiation with a WPA Authenticator and it controls the roaming and +wpa_supplicant: IEEE 802.11 authentication/association of the wlan driver. +wpa_supplicant: +wpa_supplicant: More info: http://hostap.epitest.fi/wpa_supplicant/ +wpa_supplicant: +wpa_supplicant: diff --git a/source/n/wpa_supplicant/wpa_gui.png b/source/n/wpa_supplicant/wpa_gui.png new file mode 100644 index 000000000..a72f35691 Binary files /dev/null and b/source/n/wpa_supplicant/wpa_gui.png differ diff --git a/source/n/wpa_supplicant/wpa_supplicant.SlackBuild b/source/n/wpa_supplicant/wpa_supplicant.SlackBuild new file mode 100755 index 000000000..a38fed35b --- /dev/null +++ b/source/n/wpa_supplicant/wpa_supplicant.SlackBuild @@ -0,0 +1,248 @@ +#!/bin/sh + +# Copyright 2004-2008 Eric Hameleers, Eindhoven, NL +# Copyright 2008-2009 Patrick J. Volkerding, Sebeka, MN, USA +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- + +PRGNAM=wpa_supplicant +VERSION=${VERSION:-0.6.9} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +DOCS="ChangeLog ../COPYING README README-WPS *.txt examples wpa_supplicant.conf.sample" + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +# Support for some of the wireless drivers needs the header files of those +# drivers. +# Change these *_INCLUDES variables to where _your_ driver include directory +# is located. If any of these directories is found, support for the driver +# will be added to wpa_supplicant. +# My madwifi package for Slackware installs the headers here: +MADWIFI_INCLUDES="/usr/include/madwifi" +HERMES_INCLUDES="" +BROADCOM_INCLUDES="" + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +if ! [ -f $CWD/${PRGNAM}.defconfig ]; then + echo "Could not find ${PRGNAM}.defconfig!" + exit 1 +fi + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.bz2 || exit 1 +cd ${PRGNAM}-${VERSION} +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +#sed -i -e \ +# "s/^#define VERSION_STR \"\(.*\)\"/#define VERSION_STR \"\1_$VERSION\"/" \ +# src/common/version.h + +# The source code has been re-organized: +cd wpa_supplicant + +# Create the configuration file for building wpa_supplicant: +cat $CWD/${PRGNAM}.defconfig > .config +if [ ! -z $MADWIFI_INCLUDES -a -d $MADWIFI_INCLUDES ]; then + echo "Adding madwifi driver (Atheros) support" + cat <<-EOT >> .config + CONFIG_DRIVER_MADWIFI=y + CFLAGS += -I${MADWIFI_INCLUDES} + EOT +fi +if [ ! -z $HERMES_INCLUDES -a -d $HERMES_INCLUDES ]; then + echo "Adding hermes driver (Agere) support" + cat <<-EOT >> .config + CONFIG_DRIVER_HERMES=y + CFLAGS += -I${HERMES_INCLUDES} + EOT +fi +if [ ! -z $BROADCOM_INCLUDES -a -d $BROADCOM_INCLUDES ]; then + echo "Adding broadcom driver support" + cat <<-EOT >> .config + CONFIG_DRIVER_BROADCOM=y + CFLAGS += -I${BROADCOM_INCLUDES} + EOT +fi +make $NUMJOBS || make || exit 1 + +# Build the Qt4 GUI client +make wpa_gui-qt4 || exit 1 + +# Make man pages if needed +( cd doc/docbook + if ! ls *.? >/dev/null 2>&1 ; then + make man + fi +) + +# Do not build the developer docs: +#PATH=".:$PATH" make docs + +# This goes into the doc directory later on: +cp wpa_supplicant.conf wpa_supplicant.conf.sample + +# Install binaries: +mkdir -p $PKG/usr/sbin $PKG/usr/bin +cp wpa_supplicant wpa_passphrase wpa_cli $PKG/usr/sbin/ +cp wpa_gui-qt4/wpa_gui $PKG/usr/bin/ + +# Install dbus configuration file: +mkdir -p $PKG/etc/dbus-1/system.d/ +cp dbus-wpa_supplicant.conf \ + $PKG/etc/dbus-1/system.d/dbus-wpa_supplicant.conf.new + +# Install a .desktop file for wpa_gui: +mkdir -p $PKG/usr/share/applications +cat < $PKG/usr/share/applications/wpa_gui.desktop +[Desktop Entry] +Name=wpa_gui +Comment[en]=Wpa_supplicant management +Exec=kdesu wpa_gui +Icon=wpa_gui +Type=Application +Categories=Qt;Network; +EOT + +# The icon used for the menu (converted from the wpa_gui.svg in the source) +mkdir -p $PKG/usr/share/pixmaps +cp -a $CWD/wpa_gui.png $PKG/usr/share/pixmaps/ + +# Install man pages: +for m in 5 8; do + mkdir -p $PKG/usr/man/man${m} + cp doc/docbook/*.${m} $PKG/usr/man/man${m}/ +done + +# Install a default configuration file: +mkdir -p $PKG/etc +cat <<-_EOT_ > $PKG/etc/wpa_supplicant.conf.new + # See /usr/doc/${PRGNAM}-${VERSION}/wpa_supplicant.conf.sample + # for many more options that you can use in this file. + + # This line enables the use of wpa_cli which is used by rc.wireless + # if possible (to check for successful association) + ctrl_interface=/var/run/wpa_supplicant + # By default, only root (group 0) may use wpa_cli + ctrl_interface_group=0 + eapol_version=1 + ap_scan=1 + fast_reauth=1 + #country=US + + # WPA protected network, supply your own ESSID and WPAPSK here: + network={ + scan_ssid=0 + ssid="your_essid_here" + proto=WPA RSN + key_mgmt=WPA-PSK + pairwise=CCMP TKIP + group=CCMP TKIP WEP104 WEP40 + psk=your_64_char_psk_here + priority=10 + } + + # Plaintext connection (no WPA, no IEEE 802.1X), + # nice for hotel/airport types of WiFi network. + network={ + key_mgmt=NONE + priority=0 + } + _EOT_ + +# Create the 'doinst.sh' script: +mkdir -p $PKG/install 2>/dev/null +cat < $PKG/install/doinst.sh +# Handle the incoming configuration files: +config() { + for infile in \$1; do + NEW="\$infile" + OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then + # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} +config etc/wpa_supplicant.conf.new +config etc/dbus-1/system.d/dbus-wpa_supplicant.conf.new + +EOINS + +# Add the documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $CWD/README.slackware $PKG/usr/doc/${PRGNAM}-${VERSION}/ +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION/* + +# This should only be read/write by root: +chmod 600 $PKG/etc/wpa_supplicant.conf.new + +# Compress the man page(s): +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +if [ -f $CWD/doinst.sh ]; then + cat $CWD/doinst.sh >> $PKG/install/doinst.sh +fi + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/n/wpa_supplicant/wpa_supplicant.defconfig b/source/n/wpa_supplicant/wpa_supplicant.defconfig new file mode 100644 index 000000000..4241be9f7 --- /dev/null +++ b/source/n/wpa_supplicant/wpa_supplicant.defconfig @@ -0,0 +1,25 @@ +CONFIG_DRIVER_HOSTAP=y +CONFIG_DRIVER_NDISWRAPPER=y +CONFIG_DRIVER_ATMEL=y +CONFIG_DRIVER_IPW=y +CONFIG_DRIVER_RALINK=y +CONFIG_DRIVER_WEXT=y +CONFIG_DRIVER_NL80211=y +CONFIG_DRIVER_WIRED=y +CONFIG_IEEE8021X_EAPOL=y +CONFIG_EAP_MD5=y +CONFIG_EAP_MSCHAPV2=y +CONFIG_EAP_TLS=y +CONFIG_EAP_PEAP=y +CONFIG_EAP_TTLS=y +CONFIG_EAP_GTC=y +CONFIG_EAP_OTP=y +CONFIG_EAP_LEAP=y +CONFIG_WPS=y +CONFIG_PKCS12=y +CONFIG_SMARTCARD=y +CONFIG_CTRL_IFACE=y +CONFIG_READLINE=y +CONFIG_BACKEND=file +CONFIG_PEERKEY=y +CONFIG_CTRL_IFACE_DBUS=y diff --git a/source/n/yptools/nsswitch.conf-nis b/source/n/yptools/nsswitch.conf-nis new file mode 100644 index 000000000..8f0805f00 --- /dev/null +++ b/source/n/yptools/nsswitch.conf-nis @@ -0,0 +1,45 @@ +# +# /etc/nsswitch.conf +# +# This is an example Name Service Switch config file with NIS+ and NIS +# enabled. If you use these services, you can simply copy this file to +# /etc/nsswitch.conf instead of doing a lot of editing. +# +# This file should be sorted with the most-used services at the beginning. +# +# The entry '[NOTFOUND=return]' means that the search for an +# entry should stop if the search in the previous entry turned +# up nothing. Note that if the search failed due to some other reason +# (like no NIS server responding) then the search continues with the +# next entry. +# +# Legal entries are: +# +# nisplus or nis+ Use NIS+ (NIS version 3) +# nis or yp Use NIS (NIS version 2), also called YP +# dns Use DNS (Domain Name Service) +# files Use the local files +# [NOTFOUND=return] Stop searching if not found so far +# + +passwd: files nisplus nis +shadow: files nisplus nis +group: files nisplus nis + +hosts: files nisplus nis dns + +services: nisplus [NOTFOUND=return] files +networks: nisplus [NOTFOUND=return] files +protocols: nisplus [NOTFOUND=return] files +rpc: nisplus [NOTFOUND=return] files +ethers: nisplus [NOTFOUND=return] files +netmasks: nisplus [NOTFOUND=return] files +bootparams: nisplus [NOTFOUND=return] files + +netgroup: nisplus + +publickey: nisplus + +automount: files nisplus +aliases: files nisplus + diff --git a/source/n/yptools/rc.yp b/source/n/yptools/rc.yp new file mode 100644 index 000000000..4c3b8decf --- /dev/null +++ b/source/n/yptools/rc.yp @@ -0,0 +1,58 @@ +#!/bin/sh +# /etc/rc.d/rc.yp +# +# Start NIS (Network Information Service). NIS provides network-wide +# distribution of hostname, username, and other information databases. +# After configuring NIS, you will need to uncomment the parts of this +# script that you want to run. +# +# NOTE: for detailed information about setting up NIS, see the +# documentation in /usr/doc/yp-tools, /usr/doc/ypbind, +# /usr/doc/ypserv, and /usr/doc/Linux-HOWTOs/NIS-HOWTO. + +# # First, we must setup the NIS domainname. NOTE: this is not necessarily +# # the same as your DNS domainname, set in /etc/resolv.conf. The NIS +# # domainname is the name of a domain served by your NIS server. +# +# if [ -r /etc/defaultdomain ]; then +# nisdomainname `cat /etc/defaultdomain` +# fi +# +# # NIS SERVER CONFIGURATION: +# # If you are the master server for the NIS domain, you must run ypserv to +# # service clients on the domain. +# if [ -x /usr/sbin/ypserv ]; then +# echo "Starting NIS server: /usr/sbin/ypserv" +# /usr/sbin/ypserv +# fi +# +# # If you are the master server for the NIS domain, you must also run +# # rpc.yppasswdd, which is the RPC server that lets users change their +# # passwords. You might also want users to be able to change their shell +# # and GECOS information, in which case you should comment out the first +# # yppasswdd line and uncomment out the second one. +# if [ -x /usr/sbin/rpc.yppasswdd ]; then +# echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd" +# /usr/sbin/rpc.yppasswdd +# # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn" +# # /usr/sbin/rpc.yppasswdd -e chsh -e chfn +# fi +# +# # If you have NIS slave servers, you might also want to start up +# # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers. +# # Alternatively, rpc.ypxfrd can be run out of inetd. +# if [ -x /usr/sbin/rpc.ypxfrd ]; then +# echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd" +# /usr/sbin/rpc.ypxfrd +# fi +# +# # NIS CLIENT CONFIGURATION: +# # If you are a NIS client, all you need to do is run ypbind, which will +# # broadcast across the network to find a server. Your NIS server might +# # also be a client. +# if [ -d /var/yp ]; then +# echo "Starting NIS services: /usr/sbin/ypbind -broadcast" +# /usr/sbin/ypbind -broadcast +# fi +# +# # Done setting up NIS. diff --git a/source/n/yptools/slack-desc b/source/n/yptools/slack-desc new file mode 100644 index 000000000..bedfb39e6 --- /dev/null +++ b/source/n/yptools/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +yptools: yptools (NIS servers and clients) +yptools: +yptools: NIS stands for Network Information Service. NIS is usually used to +yptools: provide /etc/passwd and /etc/group information throughout the network. +yptools: Most Sun-based networks run NIS, and Linux machines can take full +yptools: advantage of existing NIS service or provide NIS service themselves. +yptools: +yptools: +yptools: +yptools: +yptools: diff --git a/source/n/yptools/yp-tools-2.9.tar.bz2.sign b/source/n/yptools/yp-tools-2.9.tar.bz2.sign new file mode 100644 index 000000000..2eaf4b97d --- /dev/null +++ b/source/n/yptools/yp-tools-2.9.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.1 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBA1tX5yGugalF9Dw4RApxKAJ4wnAJLtV+fLyqydt6C7/jlHI0S+ACeN8d9 +z4e9NxBySBZBdFi8xwGxHTo= +=JakC +-----END PGP SIGNATURE----- diff --git a/source/n/yptools/ypbind-mt-1.19.1.tar.bz2.sign b/source/n/yptools/ypbind-mt-1.19.1.tar.bz2.sign new file mode 100644 index 000000000..183edfaed --- /dev/null +++ b/source/n/yptools/ypbind-mt-1.19.1.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.6 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBCyRFDyGugalF9Dw4RAlOUAJ4kDj2kmYi2cVZqf0dLBlwexfqWhwCfTORG +5qMKKLSrKQ8Mx/1l/ffOmDk= +=zaLU +-----END PGP SIGNATURE----- diff --git a/source/n/yptools/ypserv-2.18.tar.bz2.sign b/source/n/yptools/ypserv-2.18.tar.bz2.sign new file mode 100644 index 000000000..017a6d21c --- /dev/null +++ b/source/n/yptools/ypserv-2.18.tar.bz2.sign @@ -0,0 +1,8 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.6 (GNU/Linux) +Comment: See http://www.kernel.org/signature.html for info + +iD8DBQBC3lhmyGugalF9Dw4RArUaAJwP88PBcrq6A8W7600Aa1MOIeySugCfW02y +jYf0vlXo93Vs13VQWcCzzo0= +=ZIYE +-----END PGP SIGNATURE----- diff --git a/source/n/yptools/yptools.SlackBuild b/source/n/yptools/yptools.SlackBuild new file mode 100755 index 000000000..96f217245 --- /dev/null +++ b/source/n/yptools/yptools.SlackBuild @@ -0,0 +1,272 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# Package version number: +VERSION=2.9 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +YPTOOLS=$VERSION +YPBINDMT=1.19.1 +#YPMAKE=0.11 +YPSERV=2.18 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-yptools +rm -rf $PKG +mkdir -p $TMP $PKG + +echo "+==============+" +echo "| yp-tools-$YPTOOLS |" +echo "+==============+" +cd $TMP +mkdir -p $PKG/etc +# Add etc/nsswitch.conf-nis as a full NIS+ example config file: +zcat $CWD/nsswitch.conf-nis.gz > $PKG/etc/nsswitch.conf-nis.new +rm -rf yp-tools-$YPTOOLS +tar xvf $CWD/yp-tools-$YPTOOLS.tar.bz2 || exit 1 +cd yp-tools-$YPTOOLS || exit 1 +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-domainname \ + $ARCH-slackware-linux +# Don't ask +make clean +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-domainname \ + $ARCH-slackware-linux +make CFLAGS="$SLKCFLAGS" || exit 1 +mkdir -p $PKG/var/yp +cat etc/nicknames > $PKG/var/yp/nicknames.new +mkdir -p $PKG/usr/share/locale/de/LC_MESSAGES +cat po/de.gmo > $PKG/usr/share/locale/de/LC_MESSAGES/yp-tools.mo +cd src +mkdir -p $PKG/usr/bin +cat ypcat > $PKG/usr/bin/ypcat +cat ypmatch > $PKG/usr/bin/ypmatch +cat yppasswd > $PKG/usr/bin/yppasswd +cat ypwhich > $PKG/usr/bin/ypwhich +( cd $PKG/usr/bin + chmod 755 ypcat ypmatch yppasswd ypwhich ) +( cd $PKG/usr/bin + rm -rf ypchfn ypchsh + ln -sf yppasswd ypchfn + ln -sf yppasswd ypchsh ) +mkdir -p $PKG/usr/sbin +cat yppoll > $PKG/usr/sbin/yppoll +cat ypset > $PKG/usr/sbin/ypset +( cd $PKG/usr/sbin + chmod 755 yppoll ypset ) +cd ../man +mkdir -p $PKG/usr/man/man{1,5,8} +cat nicknames.5 | gzip -9c > $PKG/usr/man/man5/nicknames.5.gz +for file in *.1 ; do + cat $file | gzip -9c > $PKG/usr/man/man1/$file.gz +done +for file in *.8 ; do + cat $file | gzip -9c > $PKG/usr/man/man8/$file.gz +done +cd .. +mkdir -p $PKG/usr/doc/yp-tools-$YPTOOLS +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/yp-tools-$YPTOOLS +chown -R root:root $PKG/usr/doc/yp-tools-$YPTOOLS +chmod 644 $PKG/usr/doc/yp-tools-$YPTOOLS/* + +echo "+================+" +echo "| ypbind-mt-$YPBINDMT |" +echo "+================+" +cd $TMP +rm -rf ypbind-mt-$YPBINDMT +tar xvf $CWD/ypbind-mt-$YPBINDMT.tar.bz2 || exit 1 +cd ypbind-mt-$YPBINDMT || exit 1 +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux +# Hard to believe how sloppy these tarballs are. This is why I got complaints +# that YP didn't work but it was "fixed with a simple recompile." +make clean +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + $ARCH-slackware-linux +make CFLAGS="$SLKCFLAGS" || exit 1 +mkdir -p $PKG/etc +cat etc/yp.conf > $PKG/etc/yp.conf.new +cat src/ypbind > $PKG/usr/sbin/ypbind +chmod 755 $PKG/usr/sbin/ypbind +cat man/yp.conf.5 | gzip -9c > $PKG/usr/man/man5/yp.conf.5.gz +cat man/ypbind.8 | gzip -9c > $PKG/usr/man/man8/ypbind.8.gz +mkdir -p $PKG/usr/share/locale/de/LC_MESSAGES +cat po/de.gmo > $PKG/usr/share/locale/de/LC_MESSAGES/ypbind-mt.mo +mkdir -p $PKG/usr/doc/ypbind-mt-$YPBINDMT +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/ypbind-mt-$YPBINDMT +chown root:root $PKG/usr/doc/ypbind-mt-$YPBINDMT/* +chmod 644 $PKG/usr/doc/ypbind-mt-$YPBINDMT/* + +# OBSOLETE (I don't see anyone packaging this anymore... inform me if it still +# works and you use and care about it) +#echo "+=============+" +#echo "| ypmake-$YPMAKE |" +#echo "+=============+" +#cd $TMP +#rm -rf ypmake-$YPMAKE +#tar xvf $CWD/ypmake-$YPMAKE.tar.bz2 || exit 1 +#cd ypmake-$YPMAKE || exit 1 +#./configure +## I'm just not taking chances with the cleanliness of these sources anymore... +#make clean +#./configure +#make +#cat ypmake > $PKG/usr/sbin/ypmake +#chmod 755 $PKG/usr/sbin/ypmake +#mkdir -p $PKG/usr/lib/yp/ypmake +#install -o root -g root -m 644 aliases arrays automount config ethers group \ + #gshadow hosts netgroup netid networks passwd protocols publickey rpc \ + #services shadow ypservers $PKG/usr/lib/yp/ypmake +#cat ypmake.conf.sample > $PKG/var/yp/ypmake.conf.new +#cat ypmake.conf.man | gzip -9c > $PKG/usr/man/man5/ypmake.conf.5.gz +#cat ypmake.man | gzip -9c > $PKG/usr/man/man8/ypmake.8.gz +#mkdir -p $PKG/usr/doc/ypmake-$YPMAKE +#cp -a CHANGES README TODO $PKG/usr/doc/ypmake-$YPMAKE +#chmod 644 $PKG/usr/doc/ypmake-$YPMAKE/* +#chown root:root $PKG/usr/doc/ypmake-$YPMAKE/* + +echo "+============+" +echo "| ypserv-$YPSERV |" +echo "+============+" +cd $TMP +rm -rf ypserv-$YPSERV +tar xvf $CWD/ypserv-$YPSERV.tar.bz2 || exit 1 +cd ypserv-$YPSERV || exit 1 +# --with-ndbm=yes +# Support for this was discontinued upstream +# --enable-tcp-wrapper +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-fqdn \ + --enable-yppasswd \ + $ARCH-slackware-linux +make clean +./configure \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-fqdn \ + --enable-yppasswd \ + $ARCH-slackware-linux +make CFLAGS="$SLKCFLAGS" || exit 1 +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/yp +( cd scripts + for file in create_printcap match_printcap pwupdate ypinit ypxfr_1perday ypxfr_1perhour ypxfr_2perday ; do + cat $file > $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file + chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file + done + for file in pwupdate.8 ypinit.8 ; do + gzip -9c $file > $PKG/usr/man/man8/$file.gz + done ) +for FILE in makedbm mknetid revnetgroup yphelper ypxfr ; do + ( cd $FILE + cat $FILE > $PKG/usr/lib${LIBDIRSUFFIX}/yp/$FILE + chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/yp/$FILE + cat ${FILE}.8 | gzip -9c > $PKG/usr/man/man8/${FILE}.8.gz ) +done +cat rpc.ypxfrd/ypxfrd.8 | gzip -9c > $PKG/usr/man/man8/ypxfrd.8.gz +for FILE in ypserv rpc.yppasswdd rpc.ypxfrd yppush ; do + ( cd $FILE + cat $FILE > $PKG/usr/sbin/$FILE + chmod 755 $PKG/usr/sbin/$FILE + cat ${FILE}.8 | gzip -9c > $PKG/usr/man/man8/${FILE}.8.gz ) +done +cat rpc.yppasswdd/yppasswdd.8 | gzip -9c > $PKG/usr/man/man8/yppasswdd.8.gz +cat scripts/ypMakefile > $PKG/var/yp/Makefile.new +cat etc/securenets > $PKG/var/yp/securenets.new +echo "# This file is part of the YP server package -- see 'man netgroup'" \ + > $PKG/etc/netgroup.new +cat etc/netgroup >> $PKG/etc/netgroup.new +cat etc/netgroup.5 | gzip -9c > $PKG/usr/man/man5/netgroup.5.gz +cat etc/ypserv.conf.5 | gzip -9c > $PKG/usr/man/man5/ypserv.conf.5.gz +mkdir -p $PKG/usr/include/rpcsvc +cat lib/ypxfrd.x > $PKG/usr/include/rpcsvc/ypxfrd.x +mkdir -p $PKG/usr/doc/ypserv-$YPSERV +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/ypserv-$YPSERV +chmod 644 $PKG/usr/doc/ypserv-$YPSERV/* +chown root:root $PKG/usr/doc/ypserv-$YPSERV/* + +mkdir -p $PKG/etc/rc.d +zcat $CWD/rc.yp.gz > $PKG/etc/rc.d/rc.yp.new +chmod 755 $PKG/etc/rc.d/rc.yp.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# install script and package description: +mkdir -p $PKG/install +cat << EOF > $PKG/install/doinst.sh +config() { + NEW="\$1" + OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/nsswitch.conf-nis.new +config etc/netgroup.new +config etc/yp.conf.new +config etc/rc.d/rc.yp.new +config var/yp/nicknames.new +config var/yp/Makefile.new +config var/yp/securenets.new +rm -f etc/nsswitch.conf.new etc/nsswitch.conf-nis.new etc/netgroup.new etc/yp.conf.new var/yp/nicknames.new var/yp/Makefile.new var/yp/securenets.new +EOF + +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/yptools-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/ytalk/doinst.sh b/source/n/ytalk/doinst.sh new file mode 100644 index 000000000..b3014c36e --- /dev/null +++ b/source/n/ytalk/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/ytalkrc.new diff --git a/source/n/ytalk/slack-desc b/source/n/ytalk/slack-desc new file mode 100644 index 000000000..d666b2782 --- /dev/null +++ b/source/n/ytalk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ytalk: ytalk (multi-user chat program) +ytalk: +ytalk: YTalk is a multi-user chat program. It works almost exactly like the +ytalk: UNIX talk program and even communicates with the same talk daemon, but +ytalk: YTalk allows for multiple connections. +ytalk: +ytalk: +ytalk: +ytalk: +ytalk: +ytalk: diff --git a/source/n/ytalk/ytalk.SlackBuild b/source/n/ytalk/ytalk.SlackBuild new file mode 100755 index 000000000..07c147b04 --- /dev/null +++ b/source/n/ytalk/ytalk.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=${VERSION:-3.3.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ytalk +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ytalk-$VERSION +tar xvf $CWD/ytalk-$VERSION.tar.bz2 || exit 1 +cd ytalk-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --with-x=no \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mv $PKG/etc/ytalkrc $PKG/etc/ytalkrc.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/ytalk-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL README \ + $PKG/usr/doc/ytalk-$VERSION + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/ytalk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/n/zd1211-firmware/zd1211-firmware.SlackBuild b/source/n/zd1211-firmware/zd1211-firmware.SlackBuild new file mode 100755 index 000000000..430565dc0 --- /dev/null +++ b/source/n/zd1211-firmware/zd1211-firmware.SlackBuild @@ -0,0 +1,79 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=zd1211-firmware +VERSION=${VERSION:-1.4} +ARCH=${ARCH:-fw} +BUILD=${BUILD:-1} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM} || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +chmod 644 * + +# install: +mkdir -p $PKG/lib/firmware/zd1211 +cp -a * $PKG/lib/firmware/zd1211 + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION} +cp -a README COPYING $PKG/usr/doc/${PKGNAM}-${VERSION} + +mkdir -p $PKG/install +cat << EOF > $PKG/install/slack-desc +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +zd1211-firmware: zd1211-firmware (Firmware for zd1211 USB wireless) +zd1211-firmware: +zd1211-firmware: This distribution contains the firmware files for the ZD1211 chip, +zd1211-firmware: which is used in WLAN USB sticks. The files are generated from C +zd1211-firmware: header files distributed in the original ZyDAS ZD1211 driver. The +zd1211-firmware: GPL-licensed header files used to produce the firmware blobs are also +zd1211-firmware: present in this distribution. +zd1211-firmware: +zd1211-firmware: The full source of the original ZYDAS driver is available from +zd1211-firmware: http://zd1211.wiki.sourceforge.net/VendorDriver +zd1211-firmware: + +EOF + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/t/tetex/jadetex.build b/source/t/tetex/jadetex.build new file mode 100755 index 000000000..0d76f7e9f --- /dev/null +++ b/source/t/tetex/jadetex.build @@ -0,0 +1,68 @@ +#!/bin/sh +# jadetex build/install script taken from Stuart Winter's build +# script for linuxdoc-tools. + +# Sanity check: +if [ -z "$SLKCFLAGS" ]; then + echo "This script is only meant to be run from tetex.SlackBuild," + echo "so I hope you know what you are doing." + echo -n "Hit Enter to continue anyway... " + read junk +fi + +JADETEXVER=3.13 + +# sgmltools-lite's POSTINSTALL document suggests that if jadetex +# is eating huge amounts of RAM, we need to configure it thusly: +# Slackware's t/tetex package contains this config file (without the +# .jadetext config) so I won't overwrite it here. However, we may +# wish to append this configuration to an install script for +# this package; but it'd get overwritten by new versions of +# t/tetex. Perhaps this configuration could be added to the tetex package? + + cat << EOF >> /usr/share/texmf/web2c/texmf.cnf + +% options for jadetex: +hash_extra.jadetex = 15000 +pool_size.jadetex = 200000 +max_strings.jadetex = 50000 +save_size.jadetex = 15000 +EOF +chmod 644 /usr/share/texmf/web2c/texmf.cnf + +# Extract source: +cd $TMP +rm -rf jadetex-$JADETEXVER +tar xvf $CWD/jadetex-$JADETEXVER.tar.gz || exit 1 +cd jadetex-$JADETEXVER +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Build: +# The install phase breaks if we use tex or etex, so we use latex instead: +sed -ie "s?tex -ini?latex -ini?" Makefile +make $NUMJOBS || make || exit 1 + +# Install onto filesystem: +make install || exit 1 + +# Create jadetex symlinks to the TeTex binaries: +( cd /usr/share/texmf/bin + rm -f jadetex pdfjadetex + ln -sf latex jadetex + ln -sf pdfetex pdfjadetex +) + +# Update the references to jadetex & pdfjadetex: +mktexlsr + +# Install man pages - these are missed by the Makefile: +mkdir -p /usr/share/texmf/man/man1 +install -m644 jadetex.1 pdfjadetex.1 /usr/share/texmf/man/man1 +gzip -9 /usr/share/texmf/man/man1/jadetex.1 +gzip -9 /usr/share/texmf/man/man1/pdfjadetex.1 + diff --git a/source/t/tetex/profile.d/tetex.csh b/source/t/tetex/profile.d/tetex.csh new file mode 100755 index 000000000..30496c4c2 --- /dev/null +++ b/source/t/tetex/profile.d/tetex.csh @@ -0,0 +1,4 @@ +#!/bin/csh +# Add path and MANPATH for teTeX: +set path = ( $path /usr/share/texmf/bin ) +setenv MANPATH ${MANPATH}:/usr/share/texmf/man diff --git a/source/t/tetex/profile.d/tetex.sh b/source/t/tetex/profile.d/tetex.sh new file mode 100755 index 000000000..8987135eb --- /dev/null +++ b/source/t/tetex/profile.d/tetex.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# Add PATH and MANPATH for teTeX: +PATH="$PATH:/usr/share/texmf/bin" +MANPATH="$MANPATH:/usr/share/texmf/man" diff --git a/source/t/tetex/slack-desc.tetex b/source/t/tetex/slack-desc.tetex new file mode 100644 index 000000000..ce66d03fb --- /dev/null +++ b/source/t/tetex/slack-desc.tetex @@ -0,0 +1,20 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tetex: tetex (teTeX binaries and support files) +tetex: +tetex: This package contains the binaries and support files required for the +tetex: teTeX TeX distribution, such as input files for TeX, runtime +tetex: configuration files, hyphenation tables, manpages, and the computer +tetex: modern fonts. +tetex: +tetex: +tetex: +tetex: +tetex: +tetex: diff --git a/source/t/tetex/slack-desc.tetex-doc b/source/t/tetex/slack-desc.tetex-doc new file mode 100644 index 000000000..7486398f2 --- /dev/null +++ b/source/t/tetex/slack-desc.tetex-doc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tetex-doc: tetex-doc (Documentation for teTeX) +tetex-doc: +tetex-doc: This package contains documentation for AMSTeX, BibTeX, extended plain +tetex-doc: format, font packages, format files (babel, texdraw, pstricks, xypic), +tetex-doc: LaTeX, MetaPost, Makeindex, pdftex, the Kpathsea library, as well as +tetex-doc: general information about TeX such as a list of ftp servers, a draft +tetex-doc: for the TeX Directory Standard (TDS), The TeX and LaTeX Catalogue, +tetex-doc: TeX FAQs, and more. +tetex-doc: +tetex-doc: +tetex-doc: diff --git a/source/t/tetex/tetex.CVE-2005-3193.diff b/source/t/tetex/tetex.CVE-2005-3193.diff new file mode 100644 index 000000000..b8f2fad59 --- /dev/null +++ b/source/t/tetex/tetex.CVE-2005-3193.diff @@ -0,0 +1,169 @@ +--- tetex-src-3.0/libs/xpdf/goo/gmem.c.CVE-2005-3193 2004-01-22 02:26:44.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/goo/gmem.c 2006-01-16 15:41:04.000000000 +0100 +@@ -135,6 +135,28 @@ void *grealloc(void *p, int size) { + #endif + } + ++void *gmallocn(int nObjs, int objSize) { ++ int n; ++ ++ n = nObjs * objSize; ++ if (objSize == 0 || n / objSize != nObjs) { ++ fprintf(stderr, "Bogus memory allocation size\n"); ++ exit(1); ++ } ++ return gmalloc(n); ++} ++ ++void *greallocn(void *p, int nObjs, int objSize) { ++ int n; ++ ++ n = nObjs * objSize; ++ if (objSize == 0 || n / objSize != nObjs) { ++ fprintf(stderr, "Bogus memory allocation size\n"); ++ exit(1); ++ } ++ return grealloc(p, n); ++} ++ + void gfree(void *p) { + #ifdef DEBUG_MEM + int size; +--- tetex-src-3.0/libs/xpdf/goo/gmem.h.CVE-2005-3193 2004-01-22 02:26:44.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/goo/gmem.h 2006-01-16 15:41:04.000000000 +0100 +@@ -28,6 +28,15 @@ extern void *gmalloc(int size); + extern void *grealloc(void *p, int size); + + /* ++ * These are similar to gmalloc and grealloc, but take an object count ++ * and size. The result is similar to allocating nObjs * objSize ++ * bytes, but there is an additional error check that the total size ++ * doesn't overflow an int. ++ */ ++extern void *gmallocn(int nObjs, int objSize); ++extern void *greallocn(void *p, int nObjs, int objSize); ++ ++/* + * Same as free, but checks for and ignores NULL pointers. + */ + extern void gfree(void *p); +--- tetex-src-3.0/libs/xpdf/xpdf/JPXStream.cc.CVE-2005-3193 2004-01-22 02:26:45.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/xpdf/JPXStream.cc 2006-01-16 15:41:04.000000000 +0100 +@@ -666,7 +666,7 @@ GBool JPXStream::readCodestream(Guint le + int segType; + GBool haveSIZ, haveCOD, haveQCD, haveSOT; + Guint precinctSize, style; +- Guint segLen, capabilities, comp, i, j, r; ++ Guint segLen, capabilities, nTiles, comp, i, j, r; + + //----- main header + haveSIZ = haveCOD = haveQCD = haveSOT = gFalse; +@@ -701,8 +701,13 @@ GBool JPXStream::readCodestream(Guint le + / img.xTileSize; + img.nYTiles = (img.ySize - img.yTileOffset + img.yTileSize - 1) + / img.yTileSize; +- img.tiles = (JPXTile *)gmalloc(img.nXTiles * img.nYTiles * +- sizeof(JPXTile)); ++ nTiles = img.nXTiles * img.nYTiles; ++ // check for overflow before allocating memory ++ if (nTiles == 0 || nTiles / img.nXTiles != img.nYTiles) { ++ error(getPos(), "Bad tile count in JPX SIZ marker segment"); ++ return gFalse; ++ } ++ img.tiles = (JPXTile *)gmallocn(nTiles, sizeof(JPXTile)); + for (i = 0; i < img.nXTiles * img.nYTiles; ++i) { + img.tiles[i].tileComps = (JPXTileComp *)gmalloc(img.nComps * + sizeof(JPXTileComp)); +--- tetex-src-3.0/libs/xpdf/xpdf/Stream.h.CVE-2005-3193 2004-01-22 02:26:45.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/xpdf/Stream.h 2006-01-16 15:41:04.000000000 +0100 +@@ -233,6 +233,8 @@ public: + + ~StreamPredictor(); + ++ GBool isOk() { return ok; } ++ + int lookChar(); + int getChar(); + +@@ -250,6 +252,7 @@ private: + int rowBytes; // bytes per line + Guchar *predLine; // line buffer + int predIdx; // current index in predLine ++ GBool ok; + }; + + //------------------------------------------------------------------------ +--- tetex-src-3.0/libs/xpdf/xpdf/Stream.cc.CVE-2005-3193 2004-01-22 02:26:45.000000000 +0100 ++++ tetex-src-3.0/libs/xpdf/xpdf/Stream.cc 2006-01-16 15:41:04.000000000 +0100 +@@ -407,18 +407,33 @@ void ImageStream::skipLine() { + + StreamPredictor::StreamPredictor(Stream *strA, int predictorA, + int widthA, int nCompsA, int nBitsA) { ++ int totalBits; ++ + str = strA; + predictor = predictorA; + width = widthA; + nComps = nCompsA; + nBits = nBitsA; ++ predLine = NULL; ++ ok = gFalse; + + nVals = width * nComps; ++ totalBits = nVals * nBits; ++ if (totalBits == 0 || ++ (totalBits / nBits) / nComps != width || ++ totalBits + 7 < 0) { ++ return; ++ } + pixBytes = (nComps * nBits + 7) >> 3; +- rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes; ++ rowBytes = ((totalBits + 7) >> 3) + pixBytes; ++ if (rowBytes < 0) { ++ return; ++ } + predLine = (Guchar *)gmalloc(rowBytes); + memset(predLine, 0, rowBytes); + predIdx = rowBytes; ++ ++ ok = gTrue; + } + + StreamPredictor::~StreamPredictor() { +@@ -1012,6 +1027,10 @@ LZWStream::LZWStream(Stream *strA, int p + FilterStream(strA) { + if (predictor != 1) { + pred = new StreamPredictor(this, predictor, columns, colors, bits); ++ if (!pred->isOk()) { ++ delete pred; ++ pred = NULL; ++ } + } else { + pred = NULL; + } +@@ -2897,6 +2916,14 @@ GBool DCTStream::readBaselineSOF() { + height = read16(); + width = read16(); + numComps = str->getChar(); ++ if (numComps <= 0 || numComps > 4) { ++ error(getPos(), "Bad number of components in DCT stream", prec); ++ return gFalse; ++ } ++ if (numComps <= 0 || numComps > 4) { ++ error(getPos(), "Bad number of components in DCT stream", prec); ++ return gFalse; ++ } + if (prec != 8) { + error(getPos(), "Bad DCT precision %d", prec); + return gFalse; +@@ -3255,6 +3282,10 @@ FlateStream::FlateStream(Stream *strA, i + FilterStream(strA) { + if (predictor != 1) { + pred = new StreamPredictor(this, predictor, columns, colors, bits); ++ if (!pred->isOk()) { ++ delete pred; ++ pred = NULL; ++ } + } else { + pred = NULL; + } diff --git a/source/t/tetex/tetex.SlackBuild b/source/t/tetex/tetex.SlackBuild new file mode 100755 index 000000000..f19273323 --- /dev/null +++ b/source/t/tetex/tetex.SlackBuild @@ -0,0 +1,255 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.0 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +# There were so many local security problems with this shared fontcache +# scheme that it's not worth trying to support. It was not enabled by +# default, and newer versions of teTeX don't seem to recongnize it any +# longer either. +#export fontcache=/var/cache/fonts +#export vartexfonts=$fontcache +#mkdir -p /var/cache/fonts/pk /var/cache/fonts/source /var/cache/fonts/tfm +#chmod 1777 /var/cache/fonts /var/cache/fonts/pk \ +# /var/cache/fonts/source /var/cache/fonts/tfm + +# Safer to purge this first: +rm -rf /usr/share/texmf +rm -rf /usr/share/texmf-var +rm -rf /usr/share/texi2html + +# Make a clean new directory: +mkdir -p /usr/share/texmf +( cd /usr/share/texmf + tar xvf $CWD/tetex-texmf-$VERSION.tar.xz + chown -R root:root . + find . -type f -perm 666 -exec chmod 644 {} \; +) +cd $TMP +rm -rf tetex-src-$VERSION +tar xvf $CWD/tetex-src-$VERSION.tar.xz +cd tetex-src-$VERSION +chown -R root:root . +find . -type f -perm 666 -exec chmod 644 {} \; + +# Fix possible xpdf overflows: +zcat $CWD/tetex.CVE-2005-3193.diff.gz | patch -p1 --verbose || exit 1 + +# /var/lib/texmf is a better font location than /var/tmp/texfonts: +zcat $CWD/tetex.var.fonts.diff.gz | patch -p1 --verbose || exit 1 + +# Even better is something in your $HOME directory: +zcat $CWD/tetex.fontcachedirinhome.diff.gz | patch -p1 --verbose || exit 1 + +# Use mkstemp() in dvipdfm: +zcat $CWD/tetex.dvipdfm.mkstemp.diff.gz | patch -p1 --verbose || exit 1 + +# Use mktemp in scripts: +zcat $CWD/tetex.scripts.mktemp.diff.gz | patch -p1 --verbose || exit 1 + +# Try to use more modern browsers. +# Attempt to use them in this order: firefox, seamonkey, mozilla, links, lynx. +zcat $CWD/tetex.browsers.diff.gz | patch -p1 --verbose || exit 1 + +# Add bplain and bamstex info to fmtutil.cnf: +zcat $CWD/tetex.amstex.fmtutil.diff.gz | patch -p1 --verbose || exit 1 + +# Don't leave texconfig junk in $TMP: +zcat $CWD/tetex.tmp.cleanup.diff.gz | patch -p1 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr/share/texmf \ + --datadir=/usr/share \ + --disable-multiplatform \ + --disable-a4 \ + --without-dialog \ + --without-texinfo \ + --with-system-ncurses \ + --with-system-pnglib \ + --with-system-t1lib \ + --with-system-tifflib \ + --with-system-zlib \ + --with-ps=gs \ + --enable-ipc \ + --enable-freetype \ + --with-etex +# --without-texinfo # Really, it doesn't hurt to include these twice... + +# This was reported to fix a problem with newer GNU sources and "make dvi". +# It does, in fact, fix a bug where the etex binary/engine really should be +# used when etex and dvi output are requested, but the example given to me +# (which was "make dvi" in GNU binutils) also has some problems that have to +# be fixed. This confused me for a good long time. ;-) +# BTW, the fix for the binutils docs is to edit bfd.texinfo and remove that +# @tex through @end tex section near the top. Then build twice. Hit enter +# if it "sticks". +zcat $CWD/tetex.etex.diff.gz | patch -p1 --verbose || exit 1 + +make all $NUMJOBS || make all || exit 1 +make install strip || exit 1 + +if ! echo $PATH | grep /usr/share/texmf/bin ; then + PATH=$PATH:/usr/share/texmf/bin +fi +# ... [don't] make links to all binaries in /usr/bin for the final package. +# [that would be really pointless... $PATH should work, period. ] + +# If latex isn't there, maybe we need to do this: +if [ ! -r /usr/share/texmf/bin/latex ]; then + texconfig init +fi + +# Let's start with these defaults: +texconfig confall +texconfig dvips paper letter +texconfig xdvi paper us + +# These *might* be useful... +# Some are known to be not-so-useful, though, as they put the config files +# into /root/.texmf-config, which we're simply going to throw away anyway +# so it won't interfere with server testing. If you need these options, +# you'll probably have to run texconfig yourself in your own user (or root) +# account. +texconfig mode ljfour +#texconfig xdvi paper a4 +texconfig dvips mode ljfour +#texconfig dvips paper a4 +texconfig dvips printcmd - +texconfig dvips add bjc600 +texconfig dvips add stcolor +texconfig dvips add deskjet +texconfig dvips add ljet4 +texconfig dvips -P bjc600 mode canonbjc +texconfig dvips -P stcolor mode epstylus +texconfig dvips -P deskjet mode deskjet +texconfig dvips -P ljet4 mode ljfour +texconfig font ro +texconfig rehash + +# Add jadetex to the package: +. $CWD/jadetex.build + +# Toss redundant docs: +( cd /usr/share/texmf/doc + for file in $(find . -name "*.dvi") ; do + rm -f $(dirname $file)/$(basename $file .dvi).pdf + done +) + +# Discard local configurations: +if [ -e /root/.texmf-config ]; then + mv /root/.texmf-config /root/.texmf-config-$(mcookie) + echo "/root/.texmf-config moved out of the way... you may wish" + echo "to purge any /root/.texmf-config-* directories if the" + echo "cruft heap gets too large." +fi + +# Now, package the /usr/share/texmf/ and /usr/share/texi2html trees. +# Package tetex-doc.txz and tetex-bin.txz seperately. + +PKG1=$TMP/package-tetex +PKG2=$TMP/package-tetex-doc +rm -rf $PKG1 $PKG2 +mkdir -p $PKG1 $PKG2 + +mkdir -p $PKG1/usr/share +mv /usr/share/texmf $PKG1/usr/share +mv /usr/share/texmf-var $PKG1/usr/share +mv /usr/share/texi2html $PKG1/usr/share + +# The tetex.txz file will need an installation script to add +# /usr/share/texmf/bin to the $PATH and /usr/share/texmf/man to the $MANPATH: +mkdir -p $PKG1/etc/profile.d +cp -a $CWD/profile.d/tetex.* $PKG1/etc/profile.d +chown root:root $PKG1/etc/profile.d/tetex.* +chmod 755 $PKG1/etc/profile.d/tetex.* + +mkdir -p $PKG1/install +cp $CWD/slack-desc.tetex $PKG1/install/slack-desc +mkdir -p $PKG2/install +cp $CWD/slack-desc.tetex-doc $PKG2/install/slack-desc + +# Strip everything: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Gzip man pages: +gzip -9 $PKG1/usr/share/texmf/man/man?/*.? + +# Fix manpage symlinks: +( cd $PKG1/usr/share/texmf/man + for dir in man? ; do + ( cd $dir + for file in *.? ; do + if [ -L $file ]; then + LINK=$(readlink $file) + rm $file + ln -sf ${LINK}.gz ${file}.gz + fi + done + ) + done +) + +# Move some of the files into the docs package: +mkdir -p $PKG2/usr/share/texmf/doc +mv $PKG1/usr/share/texmf/doc/* $PKG2/usr/share/texmf/doc +mkdir -p $PKG2/usr/share/texinfo +mv /usr/share/texinfo/html $PKG2/usr/share/texinfo +mv $PKG1/usr/share/texmf/info $PKG2/usr +( cd $PKG1/usr/share/texmf ; ln -sf /usr/info . ) + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG2/usr/info ]; then + ( cd $PKG2/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Make docs link in /usr/doc/: +mkdir -p $PKG2/usr/doc +( cd $PKG2/usr/doc ; rm -rf tetex-$VERSION ) +( cd $PKG2/usr/doc ; ln -sf /usr/share/texmf/doc tetex-$VERSION ) + +# Build the packages: +cd $PKG1 +/sbin/makepkg -l y -c n $TMP/tetex-$VERSION-$ARCH-$BUILD.txz +cd $PKG2 +/sbin/makepkg -l y -c n $TMP/tetex-doc-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/t/tetex/tetex.amstex.fmtutil.diff b/source/t/tetex/tetex.amstex.fmtutil.diff new file mode 100644 index 000000000..6ae5c1f93 --- /dev/null +++ b/source/t/tetex/tetex.amstex.fmtutil.diff @@ -0,0 +1,13 @@ +--- tetex-src-3.0/texk/web2c/fmtutil.in.fmtutil 2005-02-06 09:27:46.000000000 +0900 ++++ tetex-src-3.0/texk/web2c/fmtutil.in 2005-02-07 15:22:31.828492229 +0900 +@@ -55,7 +55,9 @@ + + # Change "amstex.ini -> bamstex.ini" and "- -> language.dat" + # if you want babel support in amstex: +-#! amstex pdfetex - -translate-file=cp227.tcx *amstex.ini ++amstex pdfetex - -translate-file=cp227.tcx *amstex.ini ++bplain pdfetex language.dat -translate-file=cp227.tcx bplain.ini ++bamstex pdfetex language.dat -translate-file=cp227.tcx bamstex.ini + + # Change "pdfamstex.ini -> pdfbamstex.ini" and "- -> language.dat" + # if you want babel support in pdfamstex: diff --git a/source/t/tetex/tetex.browsers.diff b/source/t/tetex/tetex.browsers.diff new file mode 100644 index 000000000..42052aa07 --- /dev/null +++ b/source/t/tetex/tetex.browsers.diff @@ -0,0 +1,39 @@ +--- ./texk/xdvik/gui/xm_prefsP.h.orig 2004-04-21 16:12:09.000000000 -0500 ++++ ./texk/xdvik/gui/xm_prefsP.h 2006-05-16 16:39:38.000000000 -0500 +@@ -96,8 +96,10 @@ + #define Xdvi_APPLY_STR "Apply" + + #define Xdvi_PREFS_BROWSER_DEFAULTS \ ++ "firefox -remote 'openURL(%s,new-window)'\n" \ ++ "seamonkey -remote 'openURL(%s,new-window)'\n" \ + "mozilla -remote 'openURL(%s,new-window)'\n" \ +- "netscape -raise -remote 'openURL(%s,new-window)'\n" \ ++ "xterm -e links %s\n" \ + "xterm -e lynx %s\n" \ + Xdvi_ADD_COMMAND_STR + #define Xdvi_PREFS_EDITOR_DEFAULTS \ +--- ./texk/xdvik/browser.c.orig 2004-11-11 19:25:26.000000000 -0600 ++++ ./texk/xdvik/browser.c 2006-05-16 16:39:52.000000000 -0500 +@@ -39,7 +39,10 @@ + #include "statusline.h" + + static const char *const default_browser_cmd = +- "netscape -raise -remote \"openURL(%s,new-window)\"" ++ ":firefox -remote \"openURL(%s,new-window)\"" ++ ":seamonkey -remote \"openURL(%s,new-window)\"" ++ ":mozilla -remote \"openURL(%s,new-window)\"" ++ ":xterm -e links %s" + ":xterm -e lynx %s" + ":xterm -e wget %s"; + +--- ./texk/xdvik/xdvi.1.in.orig 2005-01-20 10:51:45.000000000 -0600 ++++ ./texk/xdvik/xdvi.1.in 2006-05-16 16:40:25.000000000 -0500 +@@ -365,7 +365,7 @@ + .B WWWBROWSER + (in that order) are used to determine the browser command. If these are + not set either, the following default value is used: +-.SB netscape -raise -remote "openURL(%s,new-window)":xterm -e lynx %s:xterm -e wget %s ++.SB firefox -remote -remote "openURL(%s,new-window)":seamonkey -remote "openURL(%s,new-window)":mozilla -remote "openURL(%s,new-window)":xterm -e links %s:xterm -e lynx %s:xterm -e wget %s + .\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + .TP + .BI \-bw " width" diff --git a/source/t/tetex/tetex.dvipdfm.mkstemp.diff b/source/t/tetex/tetex.dvipdfm.mkstemp.diff new file mode 100644 index 000000000..5cae1bf22 --- /dev/null +++ b/source/t/tetex/tetex.dvipdfm.mkstemp.diff @@ -0,0 +1,20 @@ +--- tetex-src-2.0.2/texk/dvipdfm/psimage.c.dvipdfm-security 2001-06-28 20:55:26.000000000 +0100 ++++ tetex-src-2.0.2/texk/dvipdfm/psimage.c 2003-03-12 18:12:56.000000000 +0000 +@@ -113,10 +113,15 @@ + { + #ifdef HAVE_SYSTEM + pdf_obj *result = NULL; +- char *tmp, *cmd; ++ char tmp[] = "/tmp/dvipdfm.XXXXXX", *cmd; ++ int tfd; + FILE *pdf_file = NULL; + /* Get a full qualified tmp name */ +- tmp = tmpnam (NULL); ++ tfd = mkstemp (tmp); ++ if (tfd == -1) { ++ fprintf (stderr, "\nCouldn't create temporary file for output\n"); ++ return NULL; ++ } else close (tfd); + if ((cmd = build_command_line (file_name, tmp))) { + if (!system (cmd) && (pdf_file = MFOPEN (tmp, FOPEN_RBIN_MODE))) { + result = pdf_include_page (pdf_file, p, res_name); diff --git a/source/t/tetex/tetex.etex.diff b/source/t/tetex/tetex.etex.diff new file mode 100644 index 000000000..0f96a17a9 --- /dev/null +++ b/source/t/tetex/tetex.etex.diff @@ -0,0 +1,11 @@ +--- ./texk/web2c/fmtutil.cnf.orig 2005-07-17 17:09:33.000000000 -0700 ++++ ./texk/web2c/fmtutil.cnf 2005-07-17 17:11:20.000000000 -0700 +@@ -40,7 +40,7 @@ + # if you want babel support in tex: + tex tex - -translate-file=cp227.tcx tex.ini + latex pdfetex language.dat -translate-file=cp227.tcx *latex.ini +-etex pdfetex language.def -translate-file=cp227.tcx *etex.ini ++etex etex language.def -translate-file=cp227.tcx *etex.ini + pdftex pdfetex - -translate-file=cp227.tcx *pdftex.ini + pdflatex pdfetex language.dat -translate-file=cp227.tcx *pdflatex.ini + pdfetex pdfetex language.def -translate-file=cp227.tcx *pdfetex.ini diff --git a/source/t/tetex/tetex.fontcachedirinhome.diff b/source/t/tetex/tetex.fontcachedirinhome.diff new file mode 100644 index 000000000..11760a4c3 --- /dev/null +++ b/source/t/tetex/tetex.fontcachedirinhome.diff @@ -0,0 +1,11 @@ +--- ./texk/kpathsea/texmf.in-teTeX.orig 2005-02-05 18:04:35.000000000 -0600 ++++ ./texk/kpathsea/texmf.in-teTeX 2007-06-27 21:44:36.000000000 -0500 +@@ -119,7 +119,7 @@ + % Where generated fonts may be written. This tree is used when the sources + % were found in a system tree and either that tree wasn't writable, or the + % varfonts feature was enabled in MT_FEATURES in mktex.cnf. +-VARTEXFONTS = @vartexfonts@ ++VARTEXFONTS = $TEXMFVAR + + % Where to look for ls-R files. There need not be an ls-R in the + % directories in this path, but if there is one, Kpathsea will use it. diff --git a/source/t/tetex/tetex.scripts.mktemp.diff b/source/t/tetex/tetex.scripts.mktemp.diff new file mode 100644 index 000000000..7d38869cf --- /dev/null +++ b/source/t/tetex/tetex.scripts.mktemp.diff @@ -0,0 +1,244 @@ +--- tetex-src-3.0/texk/tetex/allcm.badscript 2004-06-20 21:38:02.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/allcm 2005-02-07 15:31:32.578141611 +0900 +@@ -14,7 +14,7 @@ + test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + + progname=`basename $0` +-tmpdir=${TMP-/tmp}/$progname.$$ ++tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` + + case "$progname" in + allec) +@@ -81,11 +81,6 @@ + exit 1 + ' 1 2 3 7 13 15 + +-(umask 077; mkdir "$tmpdir") || { +- echo "$progname: failed to create temp directory." >&2 +- exit 1 +-} +- + cd $tmpdir || exit 1 + echo >&2 + echo "---------------------------------------------------------------------" >&2 +--- tetex-src-3.0/texk/tetex/fmtutil.badscript 2005-01-30 18:12:16.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/fmtutil 2005-02-07 15:31:32.579141429 +0900 +@@ -105,8 +105,6 @@ + + trap 'cleanup' 1 2 3 7 13 15 + needsCleanup=true +- (umask 077; mkdir "$tmpdir") \ +- || abort "could not create directory \`$tmpdir'" + } + + ############################################################################### +@@ -357,7 +355,7 @@ + need_find_hyphenfile=false + cfgparam= + cfgmaint= +- tmpdir=${TMP-/tmp}/$progname.$$ ++ tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` + verboseFlag=true + + # mktexfmtMode: if called as mktexfmt, set to true. Will echo the generated +--- tetex-src-3.0/texk/tetex/texconfig.badscript 2005-02-07 03:20:53.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/texconfig 2005-02-07 15:31:32.581141065 +0900 +@@ -35,7 +35,7 @@ + TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS + TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS + " +-tmpdir=${TMP-/tmp}/tctmp.$$ ++tmpdir=`mktemp -d "${TMP-/tmp}/$progname.XXXXXX"` || exit 1 + needsCleanup=false + lastUpdatedFile= + +@@ -214,8 +214,6 @@ + + trap 'cleanup' 1 2 3 7 13 15 + needsCleanup=true +- (umask 077; mkdir "$tmpdir") \ +- || abort "could not create directory \`$tmpdir'" + } + + ############################################################################### +--- tetex-src-3.0/texk/tetex/texlinks.badscript 2004-05-11 03:53:38.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/texlinks 2005-02-07 15:31:32.583140701 +0900 +@@ -92,8 +92,6 @@ + + trap 'cleanup' 1 2 3 7 13 15 + needsCleanup=true +- (umask 077; mkdir "$tmpdir") \ +- || abort "could not create directory \`$tmpdir'" + } + + +@@ -209,7 +207,7 @@ + upd_symlinkdir() + { + search_symlinkdir || return 0 +- for i in `sed 's@ .*@@' cnf_file_ln.$$`; do ++ for i in `sed 's@ .*@@' $tmpdir/cnf_file_ln`; do + install_link "$selfautoloc/$i" "$symlinkdir/$i" + done + } +@@ -253,7 +251,7 @@ + test -f "$cnf_file" || abort "config file \`$cnf' not found" + + +- tmpdir=${TMP-/tmp}/texlinks.$$ ++ tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || exit 1 + setupTmpDir + cd "$tmpdir" || { + false # some systems need this to set nonzero $? +@@ -261,7 +259,7 @@ + } + + sed '/^[ ]*#/d; /^[ ]*$/d' $cnf_file \ +- | awk '{print $1, $2}' > cnf_file_ln.$$ ++ | awk '{print $1, $2}' > $tmpdir/cnf_file_ln + + if test -z "$dirs"; then + if test $multiplatform = true; then +@@ -279,8 +277,8 @@ + for d in $dirs; do + kpseaccess -w $d \ + || { errmsg "$d: no write permissions. Skipping..."; continue; } +- # cnf_file_ln.$$ has lines with "format engine" pairs +- set x `cat cnf_file_ln.$$`; shift ++ # $tmpdir/cnf_file_ln has lines with "format engine" pairs ++ set x `cat $tmpdir/cnf_file_ln`; shift + while test $# != 0; do + fmt=$1; engine=$2; shift; shift + +--- tetex-src-3.0/texk/tetex/updmap.badscript 2005-02-05 06:34:26.000000000 +0900 ++++ tetex-src-3.0/texk/tetex/updmap 2005-02-07 15:31:32.585140338 +0900 +@@ -761,7 +761,6 @@ + + trap 'cleanup' 1 2 3 7 13 15 + needsCleanup=true +- mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'" + } + + ############################################################################### +@@ -1282,7 +1281,8 @@ + dvipsoutputdir=; pdftexoutputdir=; dvipdfmoutputdir= + : ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`} + +- tmpdir=${TMP-/tmp}/$progname.$$ ++ tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || \ ++ abort "could not create directory" + tmp1=$tmpdir/a + tmp2=$tmpdir/b + tmp3=$tmpdir/c +--- tetex-src-3.0/texk/kpathsea/mktexlsr.badscript 2005-01-22 04:13:57.000000000 +0900 ++++ tetex-src-3.0/texk/kpathsea/mktexlsr 2005-02-07 15:31:32.586140156 +0900 +@@ -119,9 +119,8 @@ + # Skip if we cannot write the file: + kpseaccess -w "$db_file" || { echo "$progname: $db_file: no write permission. Skipping..." >&2; continue; } + +- db_dir_tmp="$db_dir/lsR$$.tmp" +- (umask 077 && mkdir "$db_dir_tmp" ) \ +- || { echo "$progname: could not create directory '$db_dir_tmp'. Skipping..." >&2; continue; } ++ db_dir_tmp=`mktemp -d "$db_dir/lsR.XXXXXX"` \ ++ || { echo "$progname: could not create secure temporary directory. Skipping..." >&2; continue; } + db_file_tmp="$db_dir_tmp/lsR$$.tmp" + rm -f "$db_file_tmp" + +--- tetex-src-3.0/texk/kpathsea/mktexmf.badscript 2005-01-26 02:39:21.000000000 +0900 ++++ tetex-src-3.0/texk/kpathsea/mktexmf 2005-02-07 15:31:32.587139974 +0900 +@@ -87,50 +87,52 @@ + exit 0 + fi + ++tmpfile=`mktemp mf.XXXXXX` ++ + case "$name" in + ec*|tc*) +- cat > "mf$$.tmp" < "$tmpfile" < "mf$$.tmp" < "$tmpfile" < "mf$$.tmp" < "$tmpfile" < "mf$$.tmp" < "$tmpfile" < "mf$$.tmp" < "$tmpfile" < "mf$$.tmp" < "$tmpfile" <$STDOUT + echo "$progname: $destdir/$mfname: successfully generated." >&2 +--- tetex-src-3.0/texk/dviljk/dvihp.badscript 2002-07-08 02:49:09.000000000 +0900 ++++ tetex-src-3.0/texk/dviljk/dvihp 2005-02-07 15:31:32.588139792 +0900 +@@ -7,9 +7,7 @@ + : ${SPOOL=lpr} # used to print an LJ file + : ${TMP=/tmp} # for the dvicopy output + +-TMPDIR="${TMP}"/dvihp$$ +-(umask 077; mkdir "$TMPDIR") \ +- || { echo "cannot create directory \`$TMPDIR'."; exit 1; } ++TMPDIR=`mktemp -d ${TMPDIR}/dvihp.XXXXXX` || { echo "cannot create secure temporary directory."; exit 1; } + + trap ' + cd "${TMP}" +--- tetex-src-3.0/texk/dvipdfm/dvipdft.badscript 2004-11-19 06:26:19.000000000 +0900 ++++ tetex-src-3.0/texk/dvipdfm/dvipdft 2005-02-07 15:31:32.589139610 +0900 +@@ -31,7 +31,7 @@ + $progname --help + $progname --version" + +-tmpdir=${TMP-/tmp}/$progname.$$ ++tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` + + quoteit() + { +--- tetex-src-3.0/texk/xdvik/xdvizilla.badscript 2004-02-25 08:08:56.000000000 +0900 ++++ tetex-src-3.0/texk/xdvik/xdvizilla 2005-02-07 15:31:32.590139429 +0900 +@@ -61,7 +61,7 @@ + trap 'do_cleanup' 1 2 3 7 13 15 + + ### create a temporary directory only read/writable by user +-TMP_DIR=${TMP-/tmp}/$progname.$$ ++TMP_DIR=`mktmp -d ${TMP-/tmp}/$progname.XXXXXX` + (umask 077; mkdir "$TMP_DIR") || do_abort "Could not create directory \`$TMP_DIR'" + + if [ $# -gt 1 -a "x$1" = "x-no-rm" ]; then diff --git a/source/t/tetex/tetex.tmp.cleanup.diff b/source/t/tetex/tetex.tmp.cleanup.diff new file mode 100644 index 000000000..e2fb56ea1 --- /dev/null +++ b/source/t/tetex/tetex.tmp.cleanup.diff @@ -0,0 +1,51 @@ +--- tetex-src-3.0/texk/tetex/texconfig.tmpcleanup 2005-11-04 11:19:47.000000000 +0100 ++++ tetex-src-3.0/texk/tetex/texconfig 2005-11-04 14:22:18.000000000 +0100 +@@ -36,7 +36,8 @@ + TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS + " + tmpdir=`mktemp -d "${TMP-/tmp}/$progname.XXXXXX"` || exit 1 +-needsCleanup=false ++trap -- "cleanup;" EXIT 1 2 3 7 13 15 ++needsCleanup=true + lastUpdatedFile= + + ############################################################################### +--- tetex-src-3.0/texk/tetex/updmap.tmpcleanup 2005-11-04 11:19:47.000000000 +0100 ++++ tetex-src-3.0/texk/tetex/updmap 2005-11-04 14:22:18.000000000 +0100 +@@ -1274,7 +1274,7 @@ + texhashEnabled=true + mkmapEnabled=true + verbose=true +- needsCleanup=false ++ needsCleanup=true + + cnfFileShort=updmap.cfg + cnfFile= +@@ -1282,7 +1282,8 @@ + : ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`} + + tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || \ +- abort "could not create directory" ++ abort "could not create temporary directory" ++ trap -- "cleanup;" EXIT 1 2 3 7 13 15 + tmp1=$tmpdir/a + tmp2=$tmpdir/b + tmp3=$tmpdir/c +--- tetex-src-3.0/texk/tetex/fmtutil.tmpcleanup 2005-11-04 11:19:47.000000000 +0100 ++++ tetex-src-3.0/texk/tetex/fmtutil 2005-11-04 14:22:18.000000000 +0100 +@@ -351,11 +351,13 @@ + destdir= # global variable: where do we put the format files? + cnf_file= # global variable: full name of the config file + cmd= # desired action from command line +- needsCleanup=false ++ needsCleanup=true + need_find_hyphenfile=false + cfgparam= + cfgmaint= +- tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` ++ tmpdir=`mktemp -d ${TMP-/tmp}/$progname.XXXXXX` || \ ++ abort "could not create temporary directory" ++ trap -- "cleanup;" EXIT 1 2 3 7 13 15 + verboseFlag=true + + # mktexfmtMode: if called as mktexfmt, set to true. Will echo the generated diff --git a/source/t/tetex/tetex.var.fonts.diff b/source/t/tetex/tetex.var.fonts.diff new file mode 100644 index 000000000..9535ac6fa --- /dev/null +++ b/source/t/tetex/tetex.var.fonts.diff @@ -0,0 +1,11 @@ +--- teTeX-1.0/texk/make/paths.mk.varconfig Sun Jan 10 16:42:53 1999 ++++ teTeX-1.0/texk/make/paths.mk Wed Aug 25 19:18:13 1999 +@@ -46,7 +46,7 @@ + texmf = @texmfmain@ + + # The directory used by varfonts. +-vartexfonts = /var/tmp/texfonts ++vartexfonts = /var/lib/texmf + + # Regular input files. + texinputdir = $(texmf)/tex diff --git a/source/t/transfig/slack-desc b/source/t/transfig/slack-desc new file mode 100644 index 000000000..e4ee4e7ee --- /dev/null +++ b/source/t/transfig/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +transfig: transfig (transform .fig files) +transfig: +transfig: This package contains the binaries to transform .fig files (created by +transfig: xfig) to some other formats like epsf and LaTeX. If you have +transfig: installed xfig, you should also install this package if you want to +transfig: use xfig to create other files than .fig files, which can then be +transfig: included in your LaTeX documents. +transfig: +transfig: +transfig: +transfig: diff --git a/source/t/transfig/transfig.3.2.4-gcc4.patch b/source/t/transfig/transfig.3.2.4-gcc4.patch new file mode 100644 index 000000000..a8ba41f63 --- /dev/null +++ b/source/t/transfig/transfig.3.2.4-gcc4.patch @@ -0,0 +1,34 @@ +diff -Naur transfig.3.2.4/fig2dev/dev/gensvg.c transfig.3.2.4-gcc4/fig2dev/dev/gensvg.c +--- transfig.3.2.4/fig2dev/dev/gensvg.c 2002-12-18 20:38:18.000000000 -0200 ++++ transfig.3.2.4-gcc4/fig2dev/dev/gensvg.c 2007-02-19 16:59:30.000000000 -0200 +@@ -692,16 +692,14 @@ + if (t->angle != 0) { + fprintf (tfp, "\n", + (int) (t->base_x * mag), (int) (t->base_y * mag), degrees (t->angle)); +- fprintf (tfp, "\n", ++ fprintf (tfp, "\n", + rgbColorVal (t->color), family[(int) ceil ((t->font + 1) / 4)], + (t->font % 2 == 0 ? "normal" : "italic"), + (t->font % 4 < 2 ? "normal" : "bold"), (int) (ceil (t->size * 12 * mag)), + anchor[t->type]); + } + else +- fprintf (tfp, "\n", ++ fprintf (tfp, "\n", + (int) (t->base_x * mag), (int) (t->base_y * mag), rgbColorVal (t->color), + family[(int) ceil ((t->font + 1) / 4)], + (t->font % 2 == 0 ? "normal" : "italic"), +diff -Naur transfig.3.2.4/fig2dev/fig2dev.h transfig.3.2.4-gcc4/fig2dev/fig2dev.h +--- transfig.3.2.4/fig2dev/fig2dev.h 2002-12-18 20:45:28.000000000 -0200 ++++ transfig.3.2.4-gcc4/fig2dev/fig2dev.h 2007-02-19 16:58:18.000000000 -0200 +@@ -22,7 +22,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include diff --git a/source/t/transfig/transfig.SlackBuild b/source/t/transfig/transfig.SlackBuild new file mode 100755 index 000000000..70aa22133 --- /dev/null +++ b/source/t/transfig/transfig.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=transfig +VERSION=${VERSION:-3.2.4} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $PKG $TMP + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}.$VERSION.tar.gz || exit 1 +cd ${PKGNAM}.$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/transfig.diff.gz | sed -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" \ + | patch -p1 --verbose || exit 1 +zcat $CWD/transfig.3.2.4-gcc4.patch.gz | patch -p1 --verbose || exit 1 +xmkmf +make Makefiles + +# Build and install: +make $NUMJOBS || make || exit 1 + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/X11/fig2dev +make install DESTDIR=$PKG || exit 1 +make install.man DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES LATEX.AND.XFIG NOTES README doc/manual \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/t/transfig/transfig.diff b/source/t/transfig/transfig.diff new file mode 100644 index 000000000..40026dd1e --- /dev/null +++ b/source/t/transfig/transfig.diff @@ -0,0 +1,29 @@ +--- ./fig2dev/Imakefile.orig 2002-12-19 09:33:44.000000000 -0800 ++++ ./fig2dev/Imakefile 2003-03-03 19:58:09.000000000 -0800 +@@ -20,7 +20,7 @@ + XCOMM You should point XFIGLIBDIR to the same directory you did when you compiled + XCOMM and installed xfig. + +-XFIGLIBDIR = /usr/local/lib/X11/xfig ++XFIGLIBDIR = /usr/lib/X11/xfig + + XCOMM ****** + XCOMM If your system has the strerror() function (doesn't have sys_errlist) then +@@ -73,7 +73,7 @@ + XCOMM Change XPMINC if necessary to point to the include file for xpm (xpm.h) + XCOMM + +-XCOMM #define USEXPM ++#define USEXPM + + #ifdef USEXPM + XPMLIBDIR = $(USRLIBDIR) +@@ -126,7 +126,7 @@ + + #ifdef I18N + I18N_DEFS = -DI18N +-FIG2DEV_LIBDIR = /usr/local/lib/fig2dev ++FIG2DEV_LIBDIR = /usr/lib/X11/fig2dev + I18N_DEV_DEFS = $(I18N_DEFS) -DFIG2DEV_LIBDIR=\\\"$(FIG2DEV_LIBDIR)\\\" + + install:: diff --git a/source/t/xfig/slack-desc b/source/t/xfig/slack-desc new file mode 100644 index 000000000..85d1fefde --- /dev/null +++ b/source/t/xfig/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfig: xfig (interactive drawing tool) +xfig: +xfig: This package contains the binary for xfig, an interactive drawing tool +xfig: under X. Xfig can create fig, epsf, and LaTeX files with various +xfig: options. You also have to install the transfig package (transfig.tgz) +xfig: so that xfig can export fig files as epsf and LaTeX files. This +xfig: package also contains a set of basic examples of fig files. +xfig: +xfig: +xfig: +xfig: diff --git a/source/t/xfig/xfig-3.2.4-mkstemp.diff b/source/t/xfig/xfig-3.2.4-mkstemp.diff new file mode 100644 index 000000000..cf6bf2283 --- /dev/null +++ b/source/t/xfig/xfig-3.2.4-mkstemp.diff @@ -0,0 +1,331 @@ +--- xfig.3.2.4/f_readeps.c ++++ xfig.3.2.4/f_readeps.c 2003-05-06 12:07:54.000000000 +0200 +@@ -258,7 +258,7 @@ + char buf[300]; + FILE *tmpfp, *pixfile, *gsfile; + char *psnam, *driver; +- int status, wid, ht, nbitmap; ++ int status, wid, ht, nbitmap, fd; + char tmpfile[PATH_MAX], + pixnam[PATH_MAX], + errnam[PATH_MAX], +@@ -274,8 +274,12 @@ + /* re-open the pipe */ + close_picfile(file, filetype); + file = open_picfile(file, &filetype, PIPEOK, pixnam); +- sprintf(tmpfile, "%s/%s%06d", TMPDIR, "xfig-eps", getpid()); +- if ((tmpfp = fopen(tmpfile, "wb")) == NULL) { ++ snprintf(tmpfile, sizeof(tmpfile), "%s/xfig-eps.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(tmpfile)) == -1 || (tmpfp = fdopen(fd, "wb")) == NULL) { ++ if (fd != -1) { ++ unlink(tmpfile); ++ close(fd); ++ } + file_msg("Couldn't open tmp file %s, %s", tmpfile, strerror(errno)); + return False; + } +@@ -284,9 +288,21 @@ + fclose(tmpfp); + } + /* make name /TMPDIR/xfig-pic.pix */ +- sprintf(pixnam, "%s/%s%06d.pix", TMPDIR, "xfig-pic", getpid()); ++ snprintf(pixnam, sizeof(pixnam), "%s/xfig-pic.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(pixnam)) == -1) { ++ file_msg("Couldn't open tmp file %s, %s", pixnam, strerror(errno)); ++ return False; ++ } ++ close(fd); ++ + /* and file name for any error messages from gs */ +- sprintf(errnam, "%s/%s%06d.err", TMPDIR, "xfig-pic", getpid()); ++ snprintf(errnam, sizeof(errnam), "%s/xfig-picerr.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(errnam)) == -1) { ++ file_msg("Couldn't open tmp file %s, %s", errnam, strerror(errno)); ++ return False; ++ } ++ close(fd); ++ + /* generate gs command line */ + /* for monochrome, use pbm */ + if (tool_cells <= 2 || appres.monochrome) { +--- xfig.3.2.4/f_readgif.c ++++ xfig.3.2.4/f_readgif.c 2003-05-06 11:56:53.000000000 +0200 +@@ -75,7 +75,7 @@ + char buf[BUFLEN],pcxname[PATH_MAX]; + FILE *giftopcx; + struct Cmap localColorMap[MAX_COLORMAP_SIZE]; +- int i, stat, size; ++ int i, stat, size, fd; + int useGlobalColormap; + unsigned int bitPixel, red, green, blue; + unsigned char c; +@@ -172,7 +172,13 @@ + /* now call giftopnm and ppmtopcx */ + + /* make name for temp output file */ +- sprintf(pcxname, "%s/%s%06d.pix", TMPDIR, "xfig-pcx", getpid()); ++ snprintf(pcxname, sizeof(pcxname), "%s/xfig-pcx.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(pcxname)) == -1) { ++ file_msg("Cannot create temporary file\n"); ++ return FileInvalid; ++ } ++ close(fd); ++ + /* make command to convert gif to pcx into temp file */ + sprintf(buf, "giftopnm | ppmtopcx > %s 2> /dev/null", pcxname); + if ((giftopcx = popen(buf,"w" )) == 0) { +--- xfig.3.2.4/f_readppm.c ++++ xfig.3.2.4/f_readppm.c 2003-05-06 11:56:53.000000000 +0200 +@@ -33,10 +33,16 @@ + { + char buf[BUFLEN],pcxname[PATH_MAX]; + FILE *giftopcx; +- int stat, size; ++ int stat, size, fd; + + /* make name for temp output file */ +- sprintf(pcxname, "%s/%s%06d.pix", TMPDIR, "xfig-pcx", getpid()); ++ snprintf(pcxname, sizeof(pcxname), "%s/xfig-pcx.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(pcxname)) == -1) { ++ file_msg("Cannot open temp file %s: %s\n", pcxname, strerror(errno)); ++ return FileInvalid; ++ } ++ close(fd); ++ + /* make command to convert gif to pcx into temp file */ + sprintf(buf, "ppmtopcx > %s 2> /dev/null", pcxname); + if ((giftopcx = popen(buf,"w" )) == 0) { +--- xfig.3.2.4/f_readtif.c ++++ xfig.3.2.4/f_readtif.c 2003-05-06 11:56:53.000000000 +0200 +@@ -32,11 +32,16 @@ + { + char buf[2*PATH_MAX+40],pcxname[PATH_MAX]; + FILE *tiftopcx; +- int stat; ++ int stat, fd; + + /* make name for temp output file */ +- sprintf(pcxname, "%s/%s%06d.pix", TMPDIR, "xfig-pcx", getpid()); +- ++ snprintf(pcxname, sizeof(pcxname), "%s/xfig-pcx.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(pcxname)) == -1) { ++ file_msg("Cannot open temp file %s: %s\n", pcxname, strerror(errno)); ++ return FileInvalid; ++ } ++ close(fd); ++ + /* make command to convert tif to pnm then to pcx into temp file */ + /* for some reason, tifftopnm requires a file and can't work in a pipe */ + sprintf(buf, "tifftopnm %s 2> /dev/null | ppmtopcx > %s 2> /dev/null", +--- xfig.3.2.4/f_util.c ++++ xfig.3.2.4/f_util.c 2003-05-06 12:13:22.000000000 +0200 +@@ -902,14 +902,20 @@ + char *name; + { + char line[RC_BUFSIZ+1], *tok; ++ int fd; + + /* make a temp filename in the user's home directory so we + can just rename it to .xfigrc after creating it */ +- sprintf(tmpname, "%s/%s%06d", userhome, "xfig-xfigrc", getpid()); +- tmpf = fopen(tmpname,"wb"); +- if (tmpf == 0) { +- file_msg("Can't make temporary file for .xfigrc - error: %s",strerror(errno)); +- return -1; ++ snprintf(tmpname, sizeof(tmpname), "%s/xfig-xfigrc.XXXXXX", userhome); ++ ++ if ((fd = mkstemp(tmpname)) == -1 || (tmpf = fdopen(fd, "wb")) == NULL) { ++ file_msg("Can't make temporary file for .xfigrc - error: %s", ++ strerror(errno)); ++ if (fd != -1) { ++ unlink(tmpname); ++ close(fd); ++ } ++ return -1; + } + /* read the .xfigrc file and write all to temp file except file names */ + xfigrc = fopen(xfigrc_name,"r"); +--- xfig.3.2.4/main.c ++++ xfig.3.2.4/main.c 2003-05-06 11:56:53.000000000 +0200 +@@ -621,8 +621,10 @@ + update_figs = False; + + /* get the TMPDIR environment variable for temporary files */ +- if ((TMPDIR = getenv("XFIGTMPDIR"))==NULL) +- TMPDIR = "/tmp"; ++ if ((TMPDIR = getenv("XFIGTMPDIR"))==NULL) { ++ if ((TMPDIR = getenv("TMPDIR")) == NULL) ++ TMPDIR = "/tmp"; ++ } + + /* first check args to see if user wants to scale the figure as it is + read in and make sure it is a resonable (positive) number */ +@@ -1631,7 +1633,14 @@ + if (userhome != NULL && *strcpy(cut_buf_name, userhome) != '\0') { + strcat(cut_buf_name, "/.xfig"); + } else { +- sprintf(cut_buf_name, "%s/xfig%06d", TMPDIR, getpid()); ++ int fd; ++ sprintf(cut_buf_name, "%s/xfig.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(cut_buf_name)) == -1) { ++ fprintf(stderr, "Can't create temporary file for cut_buff: %s\n", ++ strerror(errno)); ++ exit(0); ++ } ++ close(fd); + } + } + +--- xfig.3.2.4/mode.c ++++ xfig.3.2.4/mode.c 2003-05-06 11:56:53.000000000 +0200 +@@ -93,7 +93,7 @@ + + int cur_exp_lang; /* gets initialized in main.c */ + Boolean batch_exists = False; +-char batch_file[32]; ++char batch_file[PATH_MAX]; + + /*******************************************************************/ + /* If you change the order of the lang_items[] you must change the */ +--- xfig.3.2.4/u_print.c ++++ xfig.3.2.4/u_print.c 2003-05-06 12:18:47.000000000 +0200 +@@ -85,9 +85,16 @@ + char syspr[2*PATH_MAX+200]; + char tmpfile[PATH_MAX]; + char *name; ++ int fd; + +- sprintf(tmpfile, "%s/%s%06d", TMPDIR, "xfig-print", getpid()); ++ snprintf(tmpfile, sizeof(tmpfile), "%s/xfig-print.XXXXXX", TMPDIR); + warnexist = False; ++ if ((fd = mkstemp(tmpfile)) == -1) { ++ file_msg("Can't open temp file %s: %s\n", tmpfile, strerror(errno)); ++ return; ++ } ++ close(fd); ++ + init_write_tmpfile(); + if (write_file(tmpfile, False)) { + end_write_tmpfile(); +@@ -166,14 +173,21 @@ + char tmp_name[PATH_MAX]; + char tmp_fig_file[PATH_MAX]; + char *outfile, *name, *real_lang; ++ int fd; + + /* if file exists, ask if ok */ + if (!ok_to_write(file, "EXPORT")) + return (1); + +- sprintf(tmp_fig_file, "%s/%s%06d", TMPDIR, "xfig-fig", getpid()); +- /* write the fig objects to a temporary file */ ++ snprintf(tmp_fig_file, sizeof(tmp_fig_file), "%s/xfig-fig.XXXXXX", TMPDIR); + warnexist = False; ++ if ((fd = mkstemp(tmp_fig_file)) == -1) { ++ file_msg("Can't open temp file %s: %s\n", tmp_fig_file, ++ strerror(errno)); ++ return 1; ++ } ++ close(fd); ++ + init_write_tmpfile(); + if (write_file(tmp_fig_file, False)) { + end_write_tmpfile(); +@@ -491,10 +505,16 @@ + char errfname[PATH_MAX]; + FILE *errfile; + char str[400]; +- int status; ++ int status, fd; + + /* make temp filename for any errors */ +- sprintf(errfname, "%s/xfig-export%06d.err", TMPDIR, getpid()); ++ snprintf(errfname, sizeof(errfname), "%s/xfig-export.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(errfname)) == -1) { ++ file_msg("Can't open temp file %s: %s\n", errfname, strerror(errno)); ++ return 1; ++ } ++ close(fd); ++ + /* direct any output from fig2dev to this file */ + strcat(command, " 2> "); + strcat(command, errfname); +--- xfig.3.2.4/w_print.c ++++ xfig.3.2.4/w_print.c 2003-05-06 12:20:46.000000000 +0200 +@@ -289,9 +289,10 @@ + Widget w; + { + FILE *infp,*outfp; +- char tmp_exp_file[32]; ++ char tmp_exp_file[PATH_MAX]; + char str[255]; + char backgrnd[10], grid[80]; ++ int fd; + + if (writing_batch || emptyfigure_msg(print_msg)) + return; +@@ -300,11 +301,20 @@ + /* this could happen if the user presses the button too fast */ + writing_batch = True; + +- /* make a temporary name to write the batch stuff to */ +- sprintf(batch_file, "%s/%s%06d", TMPDIR, "xfig-batch", getpid()); + /* make a temporary name to write this figure to */ +- sprintf(tmp_exp_file, "%s/%s%06d", TMPDIR, "xfig-exp", getpid()); +- batch_exists = True; ++ snprintf(tmp_exp_file, sizeof(tmp_exp_file), "%s/xfig-exp.XXXXXX", ++ TMPDIR); ++ ++ if (batch_exists != True) { ++ /* make a temporary name to write the batch stuff to */ ++ sprintf(batch_file, "%s/xfig-batch.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(batch_file)) == -1) { ++ file_msg("Error creating temporary file"); ++ return; ++ } ++ close(fd); ++ batch_exists = True; ++ } + if (!print_popup) + create_print_panel(w); + +@@ -317,6 +327,12 @@ + /* make a #rrggbb string from the background color */ + make_rgb_string(export_background_color, backgrnd); + ++ if ((fd = mkstemp(tmp_exp_file)) == -1) { ++ file_msg("Error creating temporary file"); ++ return; ++ } ++ close(fd); ++ + /* get grid params and assemble into fig2dev parm */ + get_grid_spec(grid, print_grid_minor_text); + +--- xfig.3.2.4/w_srchrepl.c ++++ xfig.3.2.4/w_srchrepl.c 2003-05-06 11:56:53.000000000 +0200 +@@ -795,7 +795,7 @@ + char *cmd; + char str[300]; + FILE *fp; +- int len, i; ++ int len, i, fd; + Boolean done = FALSE; + static int lines = 0; + +@@ -811,9 +811,12 @@ + } + lines = 0; + +- sprintf(filename, "%s/xfig-spell.%d", TMPDIR, (int)getpid()); +- fp = fopen(filename, "w"); +- if (fp == NULL) { ++ snprintf(filename, sizeof(filename), "%s/xfig-spell.XXXXXX", TMPDIR); ++ if ((fd = mkstemp(filename)) == -1 || (fp = fdopen(fd, "w")) == NULL) { ++ if (fd != -1) { ++ unlink(filename); ++ close(fd); ++ } + file_msg("Can't open temporary file: %s: %s\n", filename, strerror(errno)); + } else { + /* locate all text objects and write them to file fp */ diff --git a/source/t/xfig/xfig.3.2.3d-international-std-fonts.diff b/source/t/xfig/xfig.3.2.3d-international-std-fonts.diff new file mode 100644 index 000000000..5dbdc2e6e --- /dev/null +++ b/source/t/xfig/xfig.3.2.3d-international-std-fonts.diff @@ -0,0 +1,49 @@ +diff -ru xfig.3.2.3d.orig/main.c xfig.3.2.3d/main.c +--- xfig.3.2.3d.orig/main.c 2001-01-25 22:49:19.000000000 +0100 ++++ xfig.3.2.3d/main.c 2003-05-09 11:58:41.000000000 +0200 +@@ -259,18 +259,36 @@ + XtOffset(appresPtr, always_use_fontset), XtRBoolean, (caddr_t) & false}, + {"fixedFontSet", "FontSet", XtRFontSet, sizeof(XFontSet), + XtOffset(appresPtr, fixed_fontset), XtRString, +- (caddr_t) "-*-times-medium-r-normal--16-*-*-*-*-*-*-*," +- "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*--16-*" }, ++ (caddr_t) "-URW-Nimbus Roman No9 L-medium-r-normal--34-*-*-*-*-*-*-*," ++ "-kochi-mincho-medium-r-normal--34-*-*-*-*-*-jisx0208.1983-0," ++ "-baekmukttf-batang-medium-r-normal--34-*-*-*-*-*-ksc5601.1987-0," ++ "-*-times-medium-r-normal--34-*-*-*-*-*-*-*," ++ "-*-*-medium-r-normal--34-*-*-*-*-*-*-*,*--34-*" ++ "-*-times-medium-r-normal--16-*-*-*-*-*-*-*," ++ "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*--16-*" ++ }, + {"normalFontSet", "NormalFontSet", XtRFontSet, sizeof(XFontSet), + XtOffset(appresPtr, normal_fontset), XtRString, +- (caddr_t) "-*-times-medium-r-normal--16-*-*-*-*-*-*-*," +- "-*-*-medium-r-normal--16-*-*-*-*-*-*-*," +- "-*-*-*-r-*--16-*-*-*-*-*-*-*" }, ++ (caddr_t) "-URW-Nimbus Roman No9 L-medium-r-normal--34-*-*-*-*-*-*-*," ++ "-kochi-mincho-medium-r-normal--34-*-*-*-*-*-jisx0208.1983-0," ++ "-baekmukttf-batang-medium-r-normal--34-*-*-*-*-*-ksc5601.1987-0," ++ "-*-times-medium-r-normal--34-*-*-*-*-*-*-*," ++ "-*-*-medium-r-normal--34-*-*-*-*-*-*-*," ++ "-*-*-*-r-*--34-*-*-*-*-*-*-*" ++ "-*-times-medium-r-normal--16-*-*-*-*-*-*-*," ++ "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*--16-*" ++ }, + {"boldFontSet", "BoldFontSet", XtRFontSet, sizeof(XFontSet), + XtOffset(appresPtr, bold_fontset), XtRString, +- (caddr_t) "-*-times-bold-r-normal--16-*-*-*-*-*-*-*," +- "-*-*-bold-r-normal--16-*-*-*-*-*-*-*," +- "-*-*-*-r-*--16-*-*-*-*-*-*-*" }, ++ (caddr_t) "-URW-Nimbus Roman No9 L-bold-r-normal--34-*-*-*-*-*-*-*," ++ "-kochi-gothic-medium-r-normal--34-*-*-*-*-*-jisx0208.1983-0," ++ "-baekmukttf-dotum-medium-r-normal--34-*-*-*-*-*-ksc5601.1987-0," ++ "-*-times-bold-r-normal--34-*-*-*-*-*-*-*," ++ "-*-*-bold-r-normal--34-*-*-*-*-*-*-*," ++ "-*-*-*-r-*--34-*-*-*-*-*-*-*" ++ "-*-times-medium-r-normal--16-*-*-*-*-*-*-*," ++ "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*--16-*" ++ }, + {"fontSetSize", "FontSetSize", XtRInt, sizeof(int), + XtOffset(appresPtr, fontset_size), XtRImmediate, (caddr_t)0 }, + {"inputStyle", "InputStyle", XtRString, sizeof(char *), + diff --git a/source/t/xfig/xfig.3.2.3d-xcolor.diff b/source/t/xfig/xfig.3.2.3d-xcolor.diff new file mode 100644 index 000000000..11be8a56e --- /dev/null +++ b/source/t/xfig/xfig.3.2.3d-xcolor.diff @@ -0,0 +1,10 @@ +--- w_color.c ++++ w_color.c +@@ -1288,6 +1288,7 @@ + + create_cell(indx, color) + int indx; ++ XColor color; + { + char labl[5]; + diff --git a/source/t/xfig/xfig.3.2.3d-xim.diff b/source/t/xfig/xfig.3.2.3d-xim.diff new file mode 100644 index 000000000..918d00d9f --- /dev/null +++ b/source/t/xfig/xfig.3.2.3d-xim.diff @@ -0,0 +1,33 @@ +--- xfig.3.2.3d/d_text.c ++++ xfig.3.2.3d/d_text.c +@@ -1485,6 +1485,7 @@ + int i; + XVaNestedList preedit_att, status_att; + XPoint spot; ++ char *modifier_list; + + preferred_style = style_notuseful; + if (strncasecmp(appres.xim_input_style, "OverTheSpot", 3) == 0) +@@ -1501,6 +1502,10 @@ + if (preferred_style == style_notuseful) return; + + if (appres.DEBUG) fprintf(stderr, "initialize_input_method()...\n"); ++ ++ if((modifier_list = XSetLocaleModifiers("")) == NULL) { ++ /* printf("Warning: XSetLocaleModifiers() failed.\n"); */ ++ } + + xim_im = XOpenIM(XtDisplay(w), NULL, NULL, NULL); + if (xim_im == NULL) { +@@ -1517,7 +1522,10 @@ + if (xim_style == 0) xim_style = style_root; + } + } +- if (xim_style != preferred_style) { ++ if (xim_style != preferred_style ++ && *modifier_list != '\0' ++ && ! strstr(modifier_list,"@im=local") ++ && ! strstr(modifier_list,"@im=none")) { + fprintf(stderr, "xfig: this input-method doesn't support %s input style\n", + appres.xim_input_style); + if (xim_style == 0) { diff --git a/source/t/xfig/xfig.3.2.4-gcc4.diff b/source/t/xfig/xfig.3.2.4-gcc4.diff new file mode 100644 index 000000000..d8b8597ff --- /dev/null +++ b/source/t/xfig/xfig.3.2.4-gcc4.diff @@ -0,0 +1,11 @@ +--- w_color.c ++++ w_color.c 2005/08/31 10:42:32 +@@ -1057,7 +1057,7 @@ + { + F_compound *c; + int i, count; +- char buf[10]; ++ char buf[11]; + + /* keep array of counts of each color */ + for (i=0; i + #include ++#include + #endif /* I18N */ + + /* EXPORTS */ +@@ -709,11 +710,6 @@ main(argc, argv) + } + } + +-#ifdef I18N +- setlocale(LC_ALL, ""); +- XtSetLanguageProc(NULL, NULL, NULL); +-#endif /* I18N */ +- + /* + * save the command line arguments + */ +@@ -807,6 +803,10 @@ main(argc, argv) + } + + #ifdef I18N ++ if (NULL == strcasestr(nl_langinfo(CODESET),"ANSI") && ++ NULL == strcasestr(nl_langinfo(CODESET),"ISO-8859-1")) ++ appres.international = True; ++ + /************************************************************/ + /* if the international option has been set, set the locale */ + /************************************************************/ +@@ -1523,6 +1523,11 @@ setup_visual(argc_p, argv, args) + */ + tool = XtAppInitialize (&tool_app, "Fig", options, XtNumber (options), argc_p, argv, + (String *) NULL, args, 0); ++#ifdef I18N ++ setlocale(LC_ALL, ""); ++ setlocale(LC_NUMERIC, "C"); ++ XtSetLanguageProc(tool_app, NULL, NULL); ++#endif /* I18N */ + /* save important info */ + tool_d = XtDisplay(tool); + tool_s = XtScreen(tool); +--- u_print.c ++++ u_print.c 2006-11-16 12:45:46.000000000 +0000 +@@ -15,6 +15,7 @@ + * + */ + ++#include + #include "fig.h" + #include "resources.h" + #include "mode.h" +@@ -75,6 +76,7 @@ char *shell_protect_string(string) + return(buf); + } + ++void + print_to_printer(printer, backgrnd, mag, print_all_layers, grid, params) + char printer[]; + char *backgrnd; +@@ -111,6 +113,8 @@ print_to_printer(printer, backgrnd, mag, + name = shell_protect_string(cur_filename); + + #ifdef I18N ++ /* set the numeric locale to C so we set decimal points for numbers */ ++ setlocale(LC_NUMERIC, "C"); + sprintf(tmpcmd, "%s %s -L ps -z %s -m %f %s -n %s", + fig2dev_cmd, appres.international ? appres.fig2dev_localize_option : "", + #else +@@ -119,6 +123,10 @@ print_to_printer(printer, backgrnd, mag, + #endif /* I18N */ + paper_sizes[appres.papersize].sname, mag/100.0, + appres.landscape ? "-l xxx" : "-p xxx", name); ++#ifdef I18N ++ /* reset to original locale */ ++ setlocale(LC_NUMERIC, ""); ++#endif /* I18N */ + + if (appres.correct_font_size) + strcat(tmpcmd," -F "); +@@ -223,9 +231,13 @@ print_to_file(file, lang, mag, xoff, yof + + /* start with the command, language and internationalization, if applicable */ + #ifdef I18N ++ /* set the numeric locale to C so we set decimal points for numbers */ ++ setlocale(LC_NUMERIC, "C"); + sprintf(prcmd, "%s %s -L %s -m %f ", + fig2dev_cmd, appres.international ? appres.fig2dev_localize_option : "", + real_lang, mag/100.0); ++ /* reset to original locale */ ++ setlocale(LC_NUMERIC, ""); + #else + sprintf(prcmd, "%s -L %s -m %f ", fig2dev_cmd, real_lang, mag/100.0); + #endif /* I18N */ +@@ -324,6 +336,8 @@ print_to_file(file, lang, mag, xoff, yof + strcat(tmp_name,"_t"); + /* make it automatically input the postscript/pdf part (-p option) */ + #ifdef I18N ++ /* set the numeric locale to C so we set decimal points for numbers */ ++ setlocale(LC_NUMERIC, "C"); + sprintf(prcmd, "%s %s -L %s -E %d -p %s -m %f ", + fig2dev_cmd, appres.international ? appres.fig2dev_localize_option : "", + #else +@@ -332,6 +346,10 @@ print_to_file(file, lang, mag, xoff, yof + #endif /* I18N */ + !strcmp(lang,"pstex")? "pstex_t": "pdftex_t", + appres.encoding, outfile, mag/100.0); ++#ifdef I18N ++ /* reset to original locale */ ++ setlocale(LC_NUMERIC, ""); ++#endif /* I18N */ + /* add the -D +list if user doesn't want all layers printed */ + if (!print_all_layers) + strcat(prcmd, layers); diff --git a/source/t/xfig/xfig.3.2.4-null.diff b/source/t/xfig/xfig.3.2.4-null.diff new file mode 100644 index 000000000..46120af18 --- /dev/null +++ b/source/t/xfig/xfig.3.2.4-null.diff @@ -0,0 +1,64 @@ +--- w_dir.c ++++ w_dir.c 2004-03-22 12:17:21.000000000 +0000 +@@ -126,6 +126,8 @@ + { + XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data; + ++ if (!ret_struct) ++ return; + strcpy(CurrentSelectionName, ret_struct->string); + FirstArg(XtNstring, CurrentSelectionName); + if (browse_up) { +@@ -160,6 +162,8 @@ + { + XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data; + ++ if (!ret_struct) ++ return; + strcpy(CurrentSelectionName, ret_struct->string); + DoChangeDir(CurrentSelectionName); + } +--- w_library.c ++++ w_library.c 2004-03-22 12:19:10.000000000 +0000 +@@ -461,6 +461,8 @@ + int new_obj; + XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data; + ++ if (!ret_struct) ++ return; + new_obj = ret_struct->list_index; + if (icons_made) { + /* unhighlight the current view icon */ +--- w_srchrepl.c ++++ w_srchrepl.c 2004-03-22 12:20:38.000000000 +0000 +@@ -894,6 +894,8 @@ + { + XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data; + ++ if (!ret_struct) ++ return; + /* save the selected word */ + strcpy(selected_word, ret_struct->string); + /* copy the word to the correct_word ascii widget */ +--- w_style.c ++++ w_style.c 2004-03-22 12:13:00.000000000 +0000 +@@ -585,7 +585,8 @@ + + XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data; + +- current_family = ret_struct->list_index; ++ if (ret_struct) ++ current_family = ret_struct->list_index; + current_style = -1; + style_update (); + } +@@ -598,7 +599,8 @@ + { + XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data; + +- current_style = ret_struct->list_index; ++ if (ret_struct) ++ current_style = ret_struct->list_index; + style_update (); + cur_updatemask = set_style (¤t_family_set[current_family].style[current_style]); + diff --git a/source/t/xfig/xfig.3.2.4-quiet.diff b/source/t/xfig/xfig.3.2.4-quiet.diff new file mode 100644 index 000000000..36086eaf4 --- /dev/null +++ b/source/t/xfig/xfig.3.2.4-quiet.diff @@ -0,0 +1,183 @@ +--- main.c ++++ main.c 2004-08-25 14:21:34.000000000 +0200 +@@ -1018,6 +1018,11 @@ + setup_sizes(init_canv_wd, init_canv_ht); + } + ++ (void) init_tool_menus(); ++ (void) init_tool_style_panel(); ++ (void) init_tool_ind_pannel(); ++ (void) init_tool_canvas(); ++ + (void) init_main_menus(tool_form, arg_filename); + (void) init_msg(tool_form); + (void) init_mousefun(tool_form); +--- w_canvas.c ++++ w_canvas.c 2004-08-25 14:20:40.000000000 +0200 +@@ -173,6 +173,13 @@ + ~Meta:EventCanv()\n\ + :ExposeCanv()\n"; + ++void ++init_tool_canvas(void) ++{ ++ XtAppAddActions(tool_app, canvas_actions, XtNumber(canvas_actions)); ++} ++ ++int + init_canvas(tool) + Widget tool; + { +@@ -193,7 +200,6 @@ + canvas_middlebut_proc = null_proc; + canvas_rightbut_proc = null_proc; + canvas_kbd_proc = canvas_locmove_proc = null_proc; +- XtAppAddActions(tool_app, canvas_actions, XtNumber(canvas_actions)); + XtAugmentTranslations(canvas_sw, + XtParseTranslationTable(canvas_translations)); + #ifndef NO_COMPKEYDB +@@ -204,13 +210,14 @@ + } + + /* at this point, the canvas widget is realized so we can get the window from it */ +- ++void + setup_canvas() + { + init_grid(); + reset_clip_window(); + } + ++void + canvas_selected(tool, event, params, nparams) + Widget tool; + XButtonEvent *event; +--- w_canvas.h ++++ w_canvas.h 2004-08-25 14:21:18.000000000 +0200 +@@ -35,9 +35,12 @@ + extern void toggle_show_borders(); + extern void clear_canvas(); + +-extern canvas_selected(); ++extern void canvas_selected(); + extern void paste_primary_selection(); + ++extern void init_tool_canvas(void); ++extern int init_canvas(Widget tool); ++ + extern int clip_xmin, clip_ymin, clip_xmax, clip_ymax; + extern int clip_width, clip_height; + extern int cur_x, cur_y; +--- w_cmdpanel.c ++++ w_cmdpanel.c 2004-08-25 14:26:00.000000000 +0200 +@@ -204,6 +204,13 @@ + + /* command panel */ + void ++init_tool_menus(void) ++{ ++ /* add actions to position the menus if the user uses an accelerator */ ++ XtAppAddActions(tool_app, menu_actions, XtNumber(menu_actions)); ++} ++ ++void + init_main_menus(tool, filename) + Widget tool; + char *filename; +@@ -212,6 +219,7 @@ + Widget beside = NULL; + DeclareArgs(11); + ++ + FirstArg(XtNborderWidth, 0); + NextArg(XtNcolormap, tool_cm); + NextArg(XtNdefaultDistance, 0); +@@ -246,8 +254,6 @@ + filename_balloon_trigger, (XtPointer) name_panel); + XtAddEventHandler(name_panel, LeaveWindowMask, False, + filename_unballoon, (XtPointer) name_panel); +- /* add actions to position the menus if the user uses an accelerator */ +- XtAppAddActions(tool_app, menu_actions, XtNumber(menu_actions)); + refresh_view_menu(); + } + +--- w_cmdpanel.h ++++ w_cmdpanel.h 2004-08-25 14:10:45.000000000 +0200 +@@ -33,6 +33,8 @@ + extern int num_main_menus(); + extern Widget create_menu_item(); + extern void refresh_view_menu(); ++extern void init_tool_menus(void); ++extern void init_main_menus(Widget tool, char* filename); + + /* def for menu */ + +--- w_indpanel.c ++++ w_indpanel.c 2004-08-25 14:12:57.000000000 +0200 +@@ -476,6 +476,12 @@ + static ind_sw_info upd_sw_info, upd_set_sw_info, upd_clr_sw_info, upd_tog_sw_info; + + void ++init_tool_ind_pannel(void) ++{ ++ XtAppAddActions(tool_app, ind_actions, XtNumber(ind_actions)); ++} ++ ++void + init_ind_panel(tool) + Widget tool; + { +@@ -626,8 +632,6 @@ + ind_box = XtCreateManagedWidget("ind_box", boxWidgetClass, ind_panel, + Args, ArgCount); + +- XtAppAddActions(tool_app, ind_actions, XtNumber(ind_actions)); +- + for (i = 0; i < NUM_IND_SW; ++i) { + sw = &ind_switches[i]; + sw->panel = (Widget) NULL; /* not created yet */ +--- w_indpanel.h ++++ w_indpanel.h 2004-08-25 14:14:07.000000000 +0200 +@@ -34,6 +34,9 @@ + extern void wheel_inc_zoom(), wheel_dec_zoom(); + #endif /* WHEELMOUSE */ + ++extern void init_tool_ind_pannel(void); ++extern void init_ind_panel(Widget tool); ++ + /* size of buttons in indicator panel */ + #define DEF_IND_SW_HT 34 + #define DEF_IND_SW_WD 64 +--- w_style.c ++++ w_style.c 2004-08-25 14:05:33.000000000 +0200 +@@ -759,6 +759,12 @@ + /**********************************/ + + void ++init_tool_style_panel(void) ++{ ++ XtAppAddActions (tool_app, style_actions, XtNumber (style_actions)); ++} ++ ++void + init_manage_style_panel (void) + { + char buf[50]; +@@ -966,7 +972,6 @@ + XtAddCallback (style_close_style, XtNcallback, + (XtCallbackProc) close_style, (XtPointer) NULL); + +- XtAppAddActions (tool_app, style_actions, XtNumber (style_actions)); + style_update (); + } + +--- w_style.h ++++ w_style.h 2004-08-25 14:06:27.000000000 +0200 +@@ -14,6 +14,7 @@ + * + */ + ++extern void init_tool_style_panel(void); + extern void init_manage_style_panel(void); + extern void setup_manage_style_panel(void); + extern void popup_manage_style_panel(void); diff --git a/source/t/xfig/xfig.3.2.4-urw-fonts.diff b/source/t/xfig/xfig.3.2.4-urw-fonts.diff new file mode 100644 index 000000000..396dead55 --- /dev/null +++ b/source/t/xfig/xfig.3.2.4-urw-fonts.diff @@ -0,0 +1,152 @@ +--- u_fonts.c ++++ u_fonts.c 2005-10-06 18:55:22.000000000 +0200 +@@ -21,7 +21,9 @@ + + /* X11 font names */ + +-struct _xfstruct x_fontinfo[NUM_FONTS] = { ++struct _xfstruct x_fontinfo[NUM_FONTS]; ++ ++struct _xfstruct x_adobe_fontinfo[NUM_FONTS] = { + {"-*-times-medium-r-normal--", (struct xfont*) NULL}, + {"-*-times-medium-i-normal--", (struct xfont*) NULL}, + {"-*-times-bold-r-normal--", (struct xfont*) NULL}, +@@ -59,6 +61,44 @@ + {"-*-itc zapf dingbats-*-*-*--", (struct xfont*) NULL}, + }; + ++struct _xfstruct x_urw_fontinfo[NUM_FONTS] = { ++ {"-URW-*Nimbus Roman No9 L-medium-r-normal--", (struct xfont*) NULL}, /* Times-Roman */ ++ {"-URW-*Nimbus Roman No9 L-medium-i-normal--", (struct xfont*) NULL}, /* Times-Italic */ ++ {"-URW-*Nimbus Roman No9 L-bold-r-normal--", (struct xfont*) NULL}, /* Times-Bold */ ++ {"-URW-*Nimbus Roman No9 L-bold-i-normal--", (struct xfont*) NULL}, /* Times-BoldItalic */ ++ {"-URW-*Gothic L-medium-r-normal--", (struct xfont*) NULL}, /* AvantGarde-Book */ ++ {"-URW-*Gothic L-medium-o-normal--", (struct xfont*) NULL}, /* AvantGarde-BookOblique */ ++ {"-URW-*Gothic L-*bold-r-normal--", (struct xfont*) NULL}, /* AvantGarde-Demi */ ++ {"-URW-*Gothic L-*bold-o-normal--", (struct xfont*) NULL}, /* AvantGarde-DemiOblique */ ++ {"-URW-*Bookman L-medium-r-normal--", (struct xfont*) NULL}, /* Bookman-Light */ ++ {"-URW-*Bookman L-medium-i-normal--", (struct xfont*) NULL}, /* Bookman-LightItalic */ ++ {"-URW-*Bookman L-*bold-r-normal--", (struct xfont*) NULL}, /* Bookman-Demi */ ++ {"-URW-*Bookman L-*bold-i-normal--", (struct xfont*) NULL}, /* Bookman-DemiItalic */ ++ {"-URW-*Nimbus Mono L-medium-r-normal--", (struct xfont*) NULL}, /* Courier */ ++ {"-URW-*Nimbus Mono L-medium-o-normal--", (struct xfont*) NULL}, /* Courier-Oblique */ ++ {"-URW-*Nimbus Mono L-bold-r-normal--", (struct xfont*) NULL}, /* Courier-Bold */ ++ {"-URW-*Nimbus Mono L-bold-o-normal--", (struct xfont*) NULL}, /* Courier-BoldOblique */ ++ {"-URW-*Nimbus Sans L-medium-r-normal--", (struct xfont*) NULL}, /* Helvetica */ ++ {"-URW-*Nimbus Sans L-medium-o-normal--", (struct xfont*) NULL}, /* Helvetica-Oblique */ ++ {"-URW-*Nimbus Sans L-bold-r-normal--", (struct xfont*) NULL}, /* Helvetica-Bold */ ++ {"-URW-*Nimbus Sans L-bold-o-normal--", (struct xfont*) NULL}, /* Helvetica-BoldOblique */ ++ {"-URW-*Nimbus Sans L-medium-r-condensed--", (struct xfont*) NULL}, /* Helvetica-Narrow */ ++ {"-URW-*Nimbus Sans L-medium-o-condensed--", (struct xfont*) NULL}, /* Helvetica-Narrow-Oblique */ ++ {"-URW-*Nimbus Sans L-bold-r-condensed--", (struct xfont*) NULL}, /* Helvetica-Narrow-Bold */ ++ {"-URW-*Nimbus Sans L-bold-o-condensed--", (struct xfont*) NULL}, /* Helvetica-Narrow-BoldOblique */ ++ {"-URW-*Century Schoolbook L-medium-r-normal--", (struct xfont*) NULL}, /* NewCenturySchlbk-Roman */ ++ {"-URW-*Century Schoolbook L-medium-i-normal--", (struct xfont*) NULL}, /* NewCenturySchlbk-Italic */ ++ {"-URW-*Century Schoolbook L-bold-r-normal--", (struct xfont*) NULL}, /* NewCenturySchlbk-Bold */ ++ {"-URW-*Century Schoolbook L-bold-i-normal--", (struct xfont*) NULL}, /* NewCenturySchlbk-BoldItalic */ ++ {"-URW-*Palladio L-medium-r-normal--", (struct xfont*) NULL}, /* Palatino-Roman */ ++ {"-URW-*Palladio L-medium-i-normal--", (struct xfont*) NULL}, /* Palatino-Italic */ ++ {"-URW-*Palladio L-bold-r-normal--", (struct xfont*) NULL}, /* Palatino-Bold */ ++ {"-URW-*Palladio L-bold-i-normal--", (struct xfont*) NULL}, /* Palatino-BoldItalic */ ++ {"-URW-*Standard Symbols L-medium-r-normal--", (struct xfont*) NULL}, /* Symbol */ ++ {"-URW-*Chancery L-medium-i-normal--", (struct xfont*) NULL}, /* ZapfChancery-MediumItalic */ ++ {"-URW-*Dingbats-medium-r-normal--", (struct xfont*) NULL}, /* ZapfDingbats */ ++}; ++ + /* Use the following font names for any font that doesn't exist in the table above. + * These come with the Open Group X distribution so they should be a common set. + * +--- u_fonts.h ++++ u_fonts.h 2005-10-06 19:19:30.000000000 +0200 +@@ -32,9 +32,6 @@ + + extern int psfontnum(); + extern int latexfontnum(); +-extern struct _xfstruct x_fontinfo[], x_backup_fontinfo[]; +-extern struct _fstruct ps_fontinfo[]; +-extern struct _fstruct latex_fontinfo[]; + + /* element of linked list for each font + The head of list is for the different font NAMES, +@@ -61,5 +58,12 @@ + * sizes */ + }; + ++extern struct _xfstruct x_fontinfo[]; ++extern struct _xfstruct x_urw_fontinfo[]; ++extern struct _xfstruct x_adobe_fontinfo[]; ++extern struct _xfstruct x_backup_fontinfo[]; ++extern struct _fstruct ps_fontinfo[]; ++extern struct _fstruct latex_fontinfo[]; ++ + int x_fontnum(); + #endif /* U_FONTS_H */ +--- w_drawprim.c ++++ w_drawprim.c 2005-10-06 19:12:02.000000000 +0200 +@@ -99,6 +99,22 @@ + appres.buttonFont, appres.normalFont); + button_font = XLoadQueryFont(tool_d, appres.normalFont); + } ++ ++ /* ++ * Check for URW fonts, if not found use Adobe fonts ++ */ ++ strcpy(template,x_urw_fontinfo[0].template); ++ strcat(template,"0-0-*-*-*-*-"); ++ if (strstr(template,"ymbol") == NULL && strstr(template,"ingbats") == NULL) ++ strcat(template,"ISO8859-*"); ++ else ++ strcat(template,"*-*"); ++ if ((fontlist = XListFonts(tool_d, template, 1, &count)) == (char**)0) ++ memcpy(&x_fontinfo, &x_adobe_fontinfo, sizeof(struct _xfstruct) * NUM_FONTS); ++ else ++ memcpy(&x_fontinfo, &x_urw_fontinfo, sizeof(struct _xfstruct) * NUM_FONTS); ++ XFreeFontNames(fontlist); ++ + /* + * Now initialize the font structure for the X fonts corresponding to the + * Postscript fonts for the canvas. OpenWindows can use any LaserWriter +@@ -119,8 +135,8 @@ + strcpy(template,x_fontinfo[0].template); /* nope, check for font size 0 */ + strcat(template,"0-0-*-*-*-*-"); + /* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */ +- if (strstr(template,"symbol") == NULL && +- strstr(template,"zapf dingbats") == NULL) ++ if (strstr(template,"ymbol") == NULL && ++ strstr(template,"ingbats") == NULL) + strcat(template,"ISO8859-*"); + else + strcat(template,"*-*"); +@@ -139,8 +155,8 @@ + strcpy(template,x_fontinfo[f].template); + strcat(template,"*-*-*-*-*-*-"); + /* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */ +- if (strstr(template,"symbol") == NULL && +- strstr(template,"zapf dingbats") == NULL) ++ if (strstr(template,"ymbol") == NULL && ++ strstr(template,"ingbats") == NULL) + strcat(template,"ISO8859-*"); + else + strcat(template,"*-*"); +@@ -287,8 +303,8 @@ + /* attach pointsize to font name */ + strcat(template,"%d-*-*-*-*-*-"); + /* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */ +- if (strstr(template,"symbol") == NULL && +- strstr(template,"zapf dingbats") == NULL) ++ if (strstr(template,"ymbol") == NULL && ++ strstr(template,"ingbats") == NULL) + strcat(template,"ISO8859-*"); + else + strcat(template,"*-*"); +@@ -299,8 +315,8 @@ + strcpy(template,x_backup_fontinfo[fnum].template); + strcat(template,"%d-*-*-*-*-*-"); + /* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */ +- if (strstr(template,"symbol") == NULL && +- strstr(template,"zapf dingbats") == NULL) ++ if (strstr(template,"ymbol") == NULL && ++ strstr(template,"ingbats") == NULL) + strcat(template,"ISO8859-*"); + else + strcat(template,"*-*"); diff --git a/source/t/xfig/xfig.3.2.4.diff b/source/t/xfig/xfig.3.2.4.diff new file mode 100644 index 000000000..821243a65 --- /dev/null +++ b/source/t/xfig/xfig.3.2.4.diff @@ -0,0 +1,530 @@ +--- Fig-color.ad ++++ Fig-color.ad 2008-04-13 20:50:28.000000000 +0200 +@@ -76,6 +76,12 @@ Fig*MenuButton*background: gray83 + ! in the color editor popup + Fig*mixedEdit.background: gray83 + ++Fig*mode_panel.background: gray67 ++Fig*mode_panel*topShadow:: white ++Fig*mode_panel*bottomShadow: gray17 ++Fig*mode_panel*topShadowPixel: white ++Fig*mode_panel*bottomShadowPixel: gray17 ++ + Fig*cancel.background: gray88 + Fig*dismiss.background: gray88 + Fig*commands*background: gray88 +@@ -85,12 +91,35 @@ Fig*horizontal.background: gray88 + + Fig*topruler.background: gray95 + Fig*sideruler.background: gray95 ++Fig*topruler.foreground: black ++Fig*sideruler.foreground: black + + ! file panel and scrollbar + + Fig*FigList*background: gray95 + Fig*List*background: gray95 +-Fig*Scrollbar.background: gray95 ++Fig*Scrollbar.background: gray77 ++Fig*Scrollbar.foreground: gray37 ++Fig*ScrollbarBackground: gray67 ++Fig*ScrollbarForeground: gray37 ++ ++Fig*horizontal.shadowWidth: 2 ++Fig*horizontal.topShadowPixel: gray95 ++Fig*horizontal.bottomShadowPixel: gray37 ++Fig*horizontal.topShadow: gray95 ++Fig*horizontal.bottomShadow: gray37 ++ ++Fig*Scrollbar.shadowWidth: 2 ++Fig*Scrollbar.topShadow: gray95 ++Fig*Scrollbar.bottomShadow: gray37 ++Fig*Scrollbar.topShadowPixel: gray95 ++Fig*Scrollbar.bottomShadowPixel: gray37 ++ ++Fig*stdColor.shadowWidth: 2 ++Fig*stdColor.topShadow: gray95 ++Fig*stdColor.bottomShadow: gray37 ++Fig*stdColor.topShadowPixel: gray95 ++Fig*stdColor.bottomShadowPixel: gray37 + + Fig*Label.background: gray80 + Fig*ind_box.background: gray80 +--- Fig.ad ++++ Fig.ad 2008-04-13 20:50:28.000000000 +0200 +@@ -10,6 +10,8 @@ Fig.version: 3.2.4 + + Fig*AllowShellResize: false + ++Fig.inches: false ++ + ! Image editor - can edit imported image + Fig.image_editor: xv + +@@ -20,7 +22,7 @@ Fig.ghostscript: gs + ! This is for viewing the xfig html reference. + ! For netscape, this command will open the help pages in a running netscape, + ! or start a new netscape if one isn't already running +-Fig.browser: netscape -remote 'openFile(%f)' || netscape %f ++Fig.browser: /usr/bin/firefox %f + + ! pdfviewer - put your favorite pdf viewer here. + ! This is for viewing the xfig how-to guide and man pages +@@ -99,60 +101,62 @@ Fig.internalborderwidth: 1 + ! I include both for compatibility. Be sure to change both values when + ! modifying them. + +- Fig*horizontal.shadowWidth: 0 +- Fig*horizontal.topShadowPixel: black +- Fig*horizontal.bottomShadowPixel: white +- Fig*horizontal.topShadow: black +- Fig*horizontal.bottomShadow: white ++Fig*horizontal.shadowWidth: 0 ++Fig*horizontal.topShadowPixel: black ++Fig*horizontal.bottomShadowPixel: white ++Fig*horizontal.topShadow: black ++Fig*horizontal.bottomShadow: white + + ! the following is done so the widget set doesn't try to make shades of + ! the scrollbar shadows (even though the width is 0 it takes more colors) +- Fig*Scrollbar.shadowWidth: 0 +- Fig*Scrollbar.topShadow: black +- Fig*Scrollbar.bottomShadow: white +- Fig*Scrollbar.topShadowPixel: black +- Fig*Scrollbar.bottomShadowPixel: white ++ ++Fig*Scrollbar.shadowWidth: 0 ++Fig*Scrollbar.topShadow: black ++Fig*Scrollbar.bottomShadow: white ++Fig*Scrollbar.topShadowPixel: black ++Fig*Scrollbar.bottomShadowPixel: white + + ! this is for the standard color buttons in the color panel +- Fig*stdColor.shadowWidth: 2 +- Fig*stdColor.topShadow: black +- Fig*stdColor.bottomShadow: white +- Fig*stdColor.topShadowPixel: black +- Fig*stdColor.bottomShadowPixel: white ++ ++Fig*stdColor.shadowWidth: 2 ++Fig*stdColor.topShadow: black ++Fig*stdColor.bottomShadow: white ++Fig*stdColor.topShadowPixel: black ++Fig*stdColor.bottomShadowPixel: white + + ! turn off any shadows for the user color cells +- Fig*colorMemory.shadowWidth: 0 ++Fig*colorMemory.shadowWidth: 0 + + ! You may need or want to adjust the highlight thickness for the mode + ! and indicator panels depending on the results. If it is too thick + ! it will erase part of the button graphics. +- Fig*mode_panel*highlightThickness: 1 +- Fig*ind_panel.ind_box.button_form.button.highlightThickness: 1 ++Fig*mode_panel*highlightThickness: 1 ++Fig*ind_panel.ind_box.button_form.button.highlightThickness: 1 + ! Same for the popup panels from the indicator panel +- Fig*set_indicator_panel*Command.highlightThickness: 1 ++Fig*set_indicator_panel*Command.highlightThickness: 1 + + ! If you use the 3D Athena widget set and the small icons for the mode panel + ! (because you have a small screen; see Imakefile) you may want to reduce + ! the shadow width to 1 or 0. Uncomment the following in that case: +-! Fig*mode_panel*shadowWidth: 1 ++Fig*mode_panel*shadowWidth: 1 + + ! The following is for the update marker in the upper-right corner of the + ! indicator buttons. You may not want any highlight thickness because + ! the boxes are so small. +- Fig*ind_panel.ind_box.button_form.update.highlightThickness: 0 ++Fig*ind_panel.ind_box.button_form.update.highlightThickness: 1 + + ! This sets the shadows for the spinner arrows +- Fig*spinup.shadowWidth: 2 +- Fig*spindown.shadowWidth: 2 ++Fig*spinup.shadowWidth: 0 ++Fig*spindown.shadowWidth: 0 + + ! This gets rid of that funny black line that sometimes borders the canvas + +- Fig*canvas.shadowWidth: 0 ++Fig*canvas.shadowWidth: 0 + + !if on monochrome server, or no Fig-color app-defaults file + ! This background resource shows between the buttons like a border +- Fig*mode_panel.background: black +- Fig*mode_panel.foreground: black ++Fig*mode_panel.background: black ++Fig*mode_panel.foreground: black + + ! Specify a private Compose key database file. If this resource contains a "/" + ! then the wired-in name of the xfig global directory won't be prefixed to it. +--- Imakefile ++++ Imakefile 2008-04-13 20:52:35.000000000 +0200 +@@ -49,7 +49,7 @@ XCOMM Redefine the following if your PNG + XCOMM are in different places + + PNGLIBDIR = $(USRLIBDIR) +-PNGINC = -I/usr/local/include ++PNGINC = -I/usr/include + + XCOMM If don't want JPEG support, comment out the #define USEJPEG line + XCOMM Uncomment the #define for USEJPEG if you want to be able to import +@@ -68,8 +68,8 @@ XCOMM You must have version 5b or newer + + #ifdef USEJPEG + #ifdef USEINSTALLEDJPEG +-JPEGLIBDIR = /usr/local/lib +-JPEGINC = -I/usr/include/X11 ++JPEGLIBDIR = /usr/lib ++JPEGINC = -I/usr/include + #else + JPEGLIBDIR = ../jpeg + JPEGINC = -I$(JPEGLIBDIR) +@@ -87,8 +87,8 @@ XCOMM in /contrib/libraries. + XCOMM Change XPMLIBDIR if necessary to point to the xpm library (libXpm) + XCOMM Change XPMINC if necessary to point to the include file for xpm (xpm.h) + +-XCOMM #define USEXPM +-XCOMM #define USEXPM_ICON ++#define USEXPM ++#define USEXPM_ICON + + #ifdef USEXPM + XPMLIBDIR = $(USRLIBDIR) +@@ -105,17 +105,20 @@ XCOMM the 3d Athena Widget Set (highly r + XCOMM Then be sure to change the XAW3DINC to point to the directory where your + XCOMM 3D Athena widget headers are located + +-XCOMM #define XAW3D ++#define XAW3D + + #ifdef XAW3D + XAW3DINC = -I/usr/include/X11/Xaw3d + DUSEXAW3D = -DXAW3D + XAWLIB = -lXaw3d ++#else ++XAWSRC = SmeBSB.c SimpleMenu.c ++XAWOBJ = SmeBSB.o SimpleMenu.o + #endif + + XCOMM Uncomment the following if you have a wheel mouse. See docs for description. + +-XCOMM #define WHEELMOUSE ++#define WHEELMOUSE + + #ifdef WHEELMOUSE + DUSEWHEELMOUSE = -DWHEELMOUSE +@@ -154,7 +157,7 @@ XCOMM uncomment the following line if yo + XCOMM inline functions. With the "INLINE" keyword, you should notice that + XCOMM the display will be a bit faster in complex figures + +-XCOMM USEINLINE = -DUSE_INLINE ++USEINLINE = -DUSE_INLINE + + XCOMM use (and change) the following if you want the multi-key data base file + XCOMM somewhere other than the standard X11 library directory +@@ -166,7 +169,7 @@ XFIGLIBDIR = $(LIBDIR)/xfig + + XCOMM XFIGDOCDIR tells where the html and pdf documentation should go + XCOMM XFIGDOCDIR = $(DOCDIR)/xfig +-XFIGDOCDIR = /usr/share/doc/xfig ++XFIGDOCDIR = /usr/share/doc/packages/xfig + + XCOMM MANDIR tells where the standard man pages should go (no need to change it + XCOMM if you want the man pages installed in the standard place on your system +@@ -200,7 +203,7 @@ XCOMM instead. + XCOMM Add `-DCACHE_SIZE_LIMIT=xxxx' where xxxx is the cache size in kilobytes. + XCOMM A cache size of zero turns caching off. + +-CACHE = -DCACHE_BITMAPS -DCACHE_SIZE_LIMIT=300 ++CACHE = -DCACHE_BITMAPS -DCACHE_SIZE_LIMIT=512 -DMAXNUMPTS=50000 -DBSDLPR + + XCOMM For SYSV systems with BSD-style printer command which use lpr instead of + XCOMM lp (SGI is one such machine), add -DBSDLPR to the DEFINES variable +@@ -214,6 +217,7 @@ XCOMM number of vertices. + XCOMM If you want a compiler other than "cc", define it here + + XCOMM CC = /opt/SUNWspro/bin/cc ++CC = gcc + + XCOMM ***************************************************** + XCOMM ***************************************************** +@@ -234,7 +238,7 @@ DEPLIBJPEG = $(JPEGLIBDIR)/libjpeg.a + #endif /* USEJPEG */ + + #ifdef I18N +-I18N_DEFS = -DI18N -DSETLOCALE ++I18N_DEFS = -DI18N + I18N_SRC = w_i18n.c + I18N_OBJ = w_i18n.o + #endif +@@ -304,7 +308,7 @@ XFIGSRC = d_arc.c d_arcbox.c d_box.c d_e + w_export.c w_file.c w_fontbits.c w_fontpanel.c w_grid.c w_icons.c \ + w_indpanel.c w_library.c w_modepanel.c w_mousefun.c w_msgpanel.c \ + w_print.c w_rottext.c w_rulers.c w_setup.c w_style.c w_util.c w_zoom.c \ +- $(I18N_SRC) SmeCascade.c SmeBSB.c SimpleMenu.c ++ $(I18N_SRC) SmeCascade.c $(XAWSRC) + + XFIGOBJ = d_arc.o d_arcbox.o d_box.o d_ellipse.o d_picobj.o \ + d_subspline.o d_line.o d_regpoly.o d_spline.o d_text.o \ +@@ -326,7 +330,7 @@ XFIGOBJ = d_arc.o d_arcbox.o d_box.o d_e + w_export.o w_file.o w_fontbits.o w_fontpanel.o w_grid.o w_icons.o \ + w_indpanel.o w_library.o w_modepanel.o w_mousefun.o w_msgpanel.o \ + w_print.o w_rottext.o w_rulers.o w_setup.o w_style.o w_util.o w_zoom.o \ +- $(I18N_OBJ) SmeCascade.o SmeBSB.o SimpleMenu.o ++ $(I18N_OBJ) SmeCascade.o $(XAWOBJ) + + XCOMM Other dependencies should be handled by "make depend" + +--- e_addpt.c ++++ e_addpt.c 2008-04-13 20:50:28.000000000 +0200 +@@ -52,6 +52,7 @@ point_adding_selected() + force_nopositioning(); + force_anglegeom(); + constrained = MOVE_ARB; ++ reset_action_on(); + } + + static void +--- e_align.c ++++ e_align.c 2008-04-13 20:50:28.000000000 +0200 +@@ -63,6 +63,7 @@ align_selected() + canvas_middlebut_proc = init_align_canvas; + canvas_rightbut_proc = null_proc; + set_cursor(pick15_cursor); ++ reset_action_on(); + } + + /* align objects to the whole canvas */ +--- e_arrow.c ++++ e_arrow.c 2008-04-13 20:50:28.000000000 +0200 +@@ -47,6 +47,7 @@ arrow_head_selected() + canvas_middlebut_proc = point_search_middle; + canvas_rightbut_proc = null_proc; + set_cursor(pick9_cursor); ++ reset_action_on(); + } + + static void +--- e_break.c ++++ e_break.c 2008-04-13 20:50:28.000000000 +0200 +@@ -43,6 +43,7 @@ break_selected() + canvas_middlebut_proc = object_search_middle; + canvas_rightbut_proc = null_proc; + set_cursor(pick15_cursor); ++ reset_action_on(); + } + + static void +@@ -82,8 +83,10 @@ init_break(p, type, x, y, px, py, loc_ta + list_delete_compound(&objects.compounds, cur_c); + tail(&objects, &object_tails); + append_objects(&objects, cur_c, &object_tails); ++#if 0 + /* add the depths from this compound */ + add_compound_depth(cur_c); ++#endif + toggle_markers_in_compound(cur_c); + set_tags(cur_c, loc_tag); + set_action(F_BREAK); +--- e_convert.c ++++ e_convert.c 2008-04-13 20:50:28.000000000 +0200 +@@ -47,6 +47,7 @@ convert_selected() + canvas_middlebut_proc = null_proc; + canvas_rightbut_proc = point_search_right; + set_cursor(pick15_cursor); ++ reset_action_on(); + } + + static void +--- e_deletept.c ++++ e_deletept.c 2008-04-13 20:50:28.000000000 +0200 +@@ -43,6 +43,7 @@ delete_point_selected() + canvas_middlebut_proc = null_proc; + canvas_rightbut_proc = null_proc; + set_cursor(pick9_cursor); ++ reset_action_on(); + } + + static void +--- e_flip.c ++++ e_flip.c 2008-04-13 20:50:28.000000000 +0200 +@@ -61,6 +61,7 @@ flip_ud_selected() + setcenter = 0; + setanchor = 0; + flip_selected(); ++ reset_action_on(); + } + + void +@@ -76,6 +77,7 @@ flip_lr_selected() + setcenter = 0; + setanchor = 0; + flip_selected(); ++ reset_action_on(); + } + + static void +--- e_movept.c ++++ e_movept.c 2008-04-13 20:50:28.000000000 +0200 +@@ -80,6 +80,7 @@ move_point_selected() + canvas_rightbut_proc = null_proc; + set_cursor(pick9_cursor); + force_anglegeom(); ++ reset_action_on(); + } + + static void +--- e_rotate.c ++++ e_rotate.c 2008-04-13 20:50:28.000000000 +0200 +@@ -94,6 +94,7 @@ rotate_selected() + canvas_middlebut_proc = object_search_middle; + canvas_rightbut_proc = set_unset_center; + set_cursor(pick15_cursor); ++ reset_action_on(); + } + + static void +--- e_update.c ++++ e_update.c 2008-04-13 20:50:28.000000000 +0200 +@@ -64,6 +64,7 @@ update_selected() + set_cursor(pick9_cursor); + /* manage on the update buttons */ + manage_update_buts(); ++ reset_action_on(); + } + + static int +--- fig.h ++++ fig.h 2008-04-13 20:50:28.000000000 +0200 +@@ -26,6 +26,7 @@ extern char *my_strdup(); + #if defined(ultrix) || defined(__bsdi__) || defined(Mips) || defined(apollo) + #include /* for stat structure */ + #endif ++#include + #include + + #if defined(__convex__) && defined(__STDC__) +--- mode.h ++++ mode.h 2008-04-13 20:50:28.000000000 +0200 +@@ -19,7 +19,7 @@ + #define MODE_H + + #define F_NULL 0 +-#define FIRST_DRAW_MODE F_CIRCLE_BY_RAD ++#define FIRST_DRAW_MODE F_CIRCLE_BY_RAD + #define F_CIRCLE_BY_RAD 1 + #define F_CIRCLE_BY_DIA 2 + #define F_ELLIPSE_BY_RAD 3 +@@ -38,7 +38,7 @@ + #define F_PICOBJ 16 + #define F_PLACE_LIB_OBJ 17 + +-#define FIRST_EDIT_MODE F_GLUE ++#define FIRST_EDIT_MODE F_GLUE + #define F_GLUE 30 + #define F_BREAK 31 + #define F_SCALE 32 +--- w_canvas.c ++++ w_canvas.c 2008-04-13 20:50:28.000000000 +0200 +@@ -536,6 +536,7 @@ reset_click_counter(widget, closure, eve + + /* clear the canvas - this can't be called to clear a pixmap, only a window */ + ++void + clear_canvas() + { + /* clear the splash graphic if it is still on the screen */ +--- w_canvas.h ++++ w_canvas.h 2008-04-13 20:50:28.000000000 +0200 +@@ -33,6 +33,7 @@ extern void toggle_show_balloons(); + extern void toggle_show_lengths(); + extern void toggle_show_vertexnums(); + extern void toggle_show_borders(); ++extern void clear_canvas(); + + extern void canvas_selected(); + extern void paste_primary_selection(); +--- w_menuentry.c ++++ w_menuentry.c 2008-04-13 20:50:28.000000000 +0200 +@@ -170,7 +170,8 @@ Region region; + gc = entry->sme_bsb.norm_gray_gc; + } + +- if (entry->sme_bsb.label != NULL) { ++/* if (entry->sme_bsb.label != NULL) { */ ++ if (entry->sme_bsb.label == XtName((Widget)(entry))) { + int x_loc = entry->sme_bsb.left_margin; + int len = strlen(entry->sme_bsb.label); + char * label = entry->sme_bsb.label; +--- w_srchrepl.c ++++ w_srchrepl.c 2008-04-13 20:50:28.000000000 +0200 +@@ -56,7 +56,6 @@ There is currently no way to undo replac + #include "w_util.h" + #include "u_create.h" + #include +- + #define MAX_MISSPELLED_WORDS 200 + #define SEARCH_WIDTH 496 /* width of search message and results */ + +--- w_util.c ++++ w_util.c 2008-04-13 20:50:28.000000000 +0200 +@@ -1102,7 +1102,7 @@ check_action_on() + finish_text_input(0,0,0);/* finish up any text input */ + else { + if (cur_mode == F_PLACE_LIB_OBJ) +- cancel_place_lib_obj(); ++ cancel_place_lib_obj(0, 0, 0); + else { + put_msg("Finish (or cancel) the current operation before changing modes"); + beep(); +--- Doc/xfig.html ++++ Doc/xfig.html 2008-04-13 20:50:28.000000000 +0200 +@@ -848,6 +848,20 @@ between all buttons and panels (default + +

+ ++-international ++ ++

++
++Switch on international support (mainly Japanese ++and Korean), users of ISO Latin 1 (ISO-8859-1) ++probably should not use this, therefore the international ++support is switched off by default for locales using ISO-8859-1* ++codesets. For all other locales this option is already used ++by default. ++
++ ++

++ + + -jpeg[_quality] + +@@ -2208,6 +2222,7 @@ inches boolean true + -metric (false) + installowncmap boolean false -installowncmap + internalborderwidth integer 1 -internalBW ++international boolean false -international + jpeg_quality integer 75 -jpeg_quality + justify boolean false -left (false), + -right (true) +--- Doc/xfig.man ++++ Doc/xfig.man 2008-04-13 20:50:28.000000000 +0200 +@@ -531,6 +531,15 @@ Use lines of width + between all buttons and panels (default = 1). + .\"------- + .At ++.BR \-international ++.Ap ++Switch on international support (mainly Japanese and Korean), ++users of ISO Latin 1 (ISO-8859-1) probably should not use this, ++therefore the international support is switched off by default ++for locales using ISO-8859-1* codesets. For all other locales this ++option is already used by default. ++.\"------- ++.At + .BR \-jpeg [ _quality ] + .I quality + .Ap diff --git a/source/t/xfig/xfig.SlackBuild b/source/t/xfig/xfig.SlackBuild new file mode 100755 index 000000000..010106ad0 --- /dev/null +++ b/source/t/xfig/xfig.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2007,2008,2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.2.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xfig +rm -rf $PKG +mkdir -p $PKG $TMP + +cd $TMP +rm -rf xfig.$VERSION +tar xvf $CWD/xfig.$VERSION.full.tar.bz2 || exit 1 +cd xfig.$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 2775 -o -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/xfig-3.2.4-mkstemp.diff.gz | patch -E -p1 --verbose || exit 1 +zcat $CWD/xfig.3.2.3d-international-std-fonts.diff.gz | patch -E -p1 --verbose || exit 1 +zcat $CWD/xfig.3.2.3d-xcolor.diff.gz | patch -E -p0 --verbose || exit 1 +zcat $CWD/xfig.3.2.3d-xim.diff.gz | patch -E -p1 --verbose || exit 1 +zcat $CWD/xfig.3.2.4-gcc4.diff.gz | patch -E -p0 --verbose || exit 1 +zcat $CWD/xfig.3.2.4-locale.diff.gz | patch -E -p0 --verbose || exit 1 +zcat $CWD/xfig.3.2.4-null.diff.gz | patch -E -p0 --verbose || exit 1 +zcat $CWD/xfig.3.2.4-quiet.diff.gz | patch -E -p0 --verbose || exit 1 +zcat $CWD/xfig.3.2.4-urw-fonts.diff.gz | patch -E -p0 --verbose || exit 1 +zcat $CWD/xfig.3.2.4.diff.gz | patch -E -p0 --verbose || exit 1 +# Eliminate menu choice for non-distributed (redundant) PDF documentation: +zcat $CWD/xfig.no.pdf.ref.diff.gz | patch -E -p1 --verbose || exit 1 +# Don't install PDF reference manual because the HTML manual is the same thing +# (and also includes a Japanese translation): +zcat $CWD/xfig.no.xfig_ref_en.pdf.diff.gz | patch -E -p1 --verbose || exit 1 +# Use Firefox and xpdf, not netscape and acroread: +zcat $CWD/xfig.fig.ad.diff.gz | patch -E -p1 --verbose || exit 1 +zcat $CWD/xfig.docs.location.diff.gz | patch -E -p1 --verbose || exit 1 + +xmkmf +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install.man DESTDIR=$PKG || exit 1 +make install.libs DESTDIR=$PKG || exit 1 +make install.html DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man1/* + +mkdir -p $PKG/usr/doc/xfig-$VERSION +cp -a \ + CHANGES FIGAPPS LATEX.AND.XFIG README \ + $PKG/usr/doc/xfig-$VERSION +( cd $PKG/usr/doc/xfig-$VERSION + ln -sf /usr/lib${LIBDIRSUFFIX}/X11/xfig/Libraries Libraries +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xfig-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/t/xfig/xfig.docs.location.diff b/source/t/xfig/xfig.docs.location.diff new file mode 100644 index 000000000..78385c06c --- /dev/null +++ b/source/t/xfig/xfig.docs.location.diff @@ -0,0 +1,11 @@ +--- ./Imakefile.orig 2007-02-19 03:29:55.000000000 -0600 ++++ ./Imakefile 2007-02-19 03:32:49.000000000 -0600 +@@ -169,7 +169,7 @@ + + XCOMM XFIGDOCDIR tells where the html and pdf documentation should go + XCOMM XFIGDOCDIR = $(DOCDIR)/xfig +-XFIGDOCDIR = /usr/share/doc/packages/xfig ++XFIGDOCDIR = /usr/doc/xfig-3.2.4 + + XCOMM MANDIR tells where the standard man pages should go (no need to change it + XCOMM if you want the man pages installed in the standard place on your system diff --git a/source/t/xfig/xfig.fig.ad.diff b/source/t/xfig/xfig.fig.ad.diff new file mode 100644 index 000000000..a6a763a15 --- /dev/null +++ b/source/t/xfig/xfig.fig.ad.diff @@ -0,0 +1,30 @@ +--- ./Fig.ad.orig 2007-02-19 03:01:42.000000000 -0600 ++++ ./Fig.ad 2007-02-19 03:05:49.000000000 -0600 +@@ -22,16 +22,24 @@ + ! This is for viewing the xfig html reference. + ! For netscape, this command will open the help pages in a running netscape, + ! or start a new netscape if one isn't already running +-Fig.browser: /usr/bin/firefox %f ++! Fig.browser: netscape -remote 'openFile(%f)' || netscape %f ++! This example might work the same for SeaMonkey: ++! Fig.browser: seamonkey -remote 'openFile(%f)' || seamonkey %f ++! By default, let's try Firefox: ++Fig.browser: firefox %f + + ! pdfviewer - put your favorite pdf viewer here. + ! This is for viewing the xfig how-to guide and man pages +-Fig.pdfviewer: acroread %f ++! Fig.pdfviewer: acroread %f ++! Fig.pdfviewer: kpdf %f ++Fig.pdfviewer: xpdf %f + + ! Spell check program - put your favorite spelling check program here. + ! It must write the misspelled words to standard output. + +-Fig.spellcheckcommand: spell %f ++! Fig.spellcheckcommand: spell %f ++! Fig.spellcheckcommand: aspell -a %f ++Fig.spellcheckcommand: aspell -a %f + + ! delay before spinner automatically counts when pressed (milliseconds) + Fig.spinner_delay: 1000 diff --git a/source/t/xfig/xfig.no.pdf.ref.diff b/source/t/xfig/xfig.no.pdf.ref.diff new file mode 100644 index 000000000..5e694ab8c --- /dev/null +++ b/source/t/xfig/xfig.no.pdf.ref.diff @@ -0,0 +1,13 @@ +--- ./w_cmdpanel.c.orig 2006-08-14 18:53:22.000000000 -0500 ++++ ./w_cmdpanel.c 2006-08-14 18:55:02.000000000 -0500 +@@ -176,7 +176,9 @@ + /* Tom Sato said that the Japanese version of the pdf looked ugly so we'll not distribute it now */ + {"Xfig Reference (PDF, Japanese)...", 0, launch_refpdf_jp} + #else +- {"Xfig Reference (PDF)...", 0, launch_refpdf_en}, ++ /* Why both a PDF and an HTML that are the same? Remove redundant option */ ++ /* and don't distribute the English PDF with the Slackware package. */ ++ /* {"Xfig Reference (PDF)...", 0, launch_refpdf_en}, */ + #endif /* FIXED_JAPANESE_PDF */ + {"Xfig Man Pages (HTML)...", 5, launch_man}, + {"How-To Guide (PDF)...", 0, launch_howto}, diff --git a/source/t/xfig/xfig.no.xfig_ref_en.pdf.diff b/source/t/xfig/xfig.no.xfig_ref_en.pdf.diff new file mode 100644 index 000000000..e0b9f9efc --- /dev/null +++ b/source/t/xfig/xfig.no.xfig_ref_en.pdf.diff @@ -0,0 +1,10 @@ +--- ./Imakefile.orig 2002-12-19 11:57:11.000000000 -0600 ++++ ./Imakefile 2006-08-14 19:20:56.000000000 -0500 +@@ -408,7 +408,6 @@ + @(cd Doc ; \ + echo Copying pdf and html files to $(DESTDIR)$(XFIGDOCDIR) ; \ + $(INSTALL) -m 644 -c xfig_man.html $(DESTDIR)$(XFIGDOCDIR) ; \ +- $(INSTALL) -m 644 -c xfig_ref_en.pdf $(DESTDIR)$(XFIGDOCDIR) ; \ + $(INSTALL) -m 644 -c xfig-howto.pdf $(DESTDIR)$(XFIGDOCDIR) ; \ + if [ -d $(DESTDIR)$(XFIGDOCDIR)/html ]; then set +x; \ + else (set -x; $(MKDIRHIER) $(DESTDIR)$(XFIGDOCDIR)/html ); fi ; \ diff --git a/source/tcl/expect/expect.SlackBuild b/source/tcl/expect/expect.SlackBuild new file mode 100755 index 000000000..27562037b --- /dev/null +++ b/source/tcl/expect/expect.SlackBuild @@ -0,0 +1,132 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=expect +VERSION=5.44.1.11 +TCLVER=8.5.7 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-4} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +if [ ! -d $TMP/tcl${TCLVER} ]; then + echo "ERROR: no $TMP/tcl${TCLVER} -- this is needed for Tcl internal headers" + exit 1 +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/expect.exp_main_tk.c.version.require.diff.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --disable-static \ + --with-tclconfig=/usr/lib${LIBDIRSUFFIX} \ + --with-tclinclude=/usr/include/tcl-private/generic \ + --with-tkconfig=/usr/lib${LIBDIRSUFFIX} \ + --with-tkinclude=/usr/include/tk-private/generic \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# expectk will not work correctly if called from /bin/sh, +# but using /usr/bin/tclsh will work: +( cd $PKG/usr/bin + for file in multixterm tknewsbiff tkpasswd xpstat ; do + sed -i "s/bin\/sh/usr\/bin\/tclsh/g" $file + done +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + FAQ HISTORY INSTALL NEWS README* example \ + $PKG/usr/doc/expect-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/tcl/expect/expect.exp_main_tk.c.version.require.diff b/source/tcl/expect/expect.exp_main_tk.c.version.require.diff new file mode 100644 index 000000000..3b4e3eb3a --- /dev/null +++ b/source/tcl/expect/expect.exp_main_tk.c.version.require.diff @@ -0,0 +1,11 @@ +--- ./exp_main_tk.c.orig 2007-07-11 15:22:10.000000000 -0500 ++++ ./exp_main_tk.c 2009-05-11 16:26:15.000000000 -0500 +@@ -374,7 +374,7 @@ + goto done; + } + } +- if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, 1) == NULL) { ++ if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, 0) == NULL) { + code = TCL_ERROR; + goto done; + } diff --git a/source/tcl/expect/slack-desc b/source/tcl/expect/slack-desc new file mode 100644 index 000000000..585bcd571 --- /dev/null +++ b/source/tcl/expect/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +expect: expect (program that talks to other interactive programs) +expect: +expect: Expect is a program that talks to other interactive programs according +expect: to a script. Following the script, Expect knows what can be expected +expect: from a program and what the correct response should be. An +expect: interpreted language provides branching and high-level control +expect: structures to direct the dialogue. +expect: +expect: Expect was written by Don Libes of the National Institute of Standards +expect: and Technology. +expect: diff --git a/source/tcl/hfsutils/hfsutils-3.2.6.tar.gz.sign b/source/tcl/hfsutils/hfsutils-3.2.6.tar.gz.sign new file mode 100644 index 000000000..cddb1f0cb --- /dev/null +++ b/source/tcl/hfsutils/hfsutils-3.2.6.tar.gz.sign @@ -0,0 +1,9 @@ +-----BEGIN PGP MESSAGE----- +Version: 2.6.3ia + +iQCVAwUANj5CwW2QJIfwC8CVAQG/3gP9HvDYDVzlIGYDhQCZIXg9QTg+N3Fw1vhr +j28m4Y2HmrNnAKym/zsb1vLwArIQUNdAvJy6WQheJEBcDz2d8EHjmD9ZNUIaM1G+ +YstDXn7eLEMgraQBhYoMgVQ94hBfo2AhlOTBm8kvmI8dE2mh1xo091bAv0AZNdHR +xSNY6+GgNig= +=FEV0 +-----END PGP MESSAGE----- diff --git a/source/tcl/hfsutils/hfsutils.SlackBuild b/source/tcl/hfsutils/hfsutils.SlackBuild new file mode 100755 index 000000000..7a813e99e --- /dev/null +++ b/source/tcl/hfsutils/hfsutils.SlackBuild @@ -0,0 +1,145 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=hfsutils +VERSION=${VERSION:-3.2.6} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-4} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 +zcat $CWD/hfsutils.errno.diff.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --with-tcl=/usr/lib${LIBDIRSUFFIX} \ + --with-tk=/usr/lib${LIBDIRSUFFIX} \ + --enable-devlibs \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make hfsck/hfsck || exit 1 + +mkdir -p $PKG/usr/{bin,include,man/man1} $PKG/usr/lib${LIBDIRSUFFIX} +make BINDEST=$PKG/usr/bin \ + LIBDEST=$PKG/usr/lib${LIBDIRSUFFIX} \ + INCDEST=$PKG/usr/include \ + MANDEST=$PKG/usr/man \ + install install_lib +install -m0755 hfsck/hfsck $PKG/usr/bin +ln -sf hfsck $PKG/usr/bin/fsck.hfs + +# Get rid of all the hard links: +( cd $PKG + ( cd usr/bin ; rm -rf hattrib ) + ( cd usr/bin ; ln -sf hmount hattrib ) + ( cd usr/bin ; rm -rf hcd ) + ( cd usr/bin ; ln -sf hmount hcd ) + ( cd usr/bin ; rm -rf hcopy ) + ( cd usr/bin ; ln -sf hmount hcopy ) + ( cd usr/bin ; rm -rf hdel ) + ( cd usr/bin ; ln -sf hmount hdel ) + ( cd usr/bin ; rm -rf hdir ) + ( cd usr/bin ; ln -sf hmount hdir ) + ( cd usr/bin ; rm -rf hformat ) + ( cd usr/bin ; ln -sf hmount hformat ) + ( cd usr/bin ; rm -rf hls ) + ( cd usr/bin ; ln -sf hmount hls ) + ( cd usr/bin ; rm -rf hmkdir ) + ( cd usr/bin ; ln -sf hmount hmkdir ) + ( cd usr/bin ; rm -rf hpwd ) + ( cd usr/bin ; ln -sf hmount hpwd ) + ( cd usr/bin ; rm -rf hrename ) + ( cd usr/bin ; ln -sf hmount hrename ) + ( cd usr/bin ; rm -rf hrmdir ) + ( cd usr/bin ; ln -sf hmount hrmdir ) + ( cd usr/bin ; rm -rf humount ) + ( cd usr/bin ; ln -sf hmount humount ) + ( cd usr/bin ; rm -rf hvol ) + ( cd usr/bin ; ln -sf hmount hvol ) +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + CHANGES COPYING COPYRIGHT CREDITS INSTALL README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/tcl/hfsutils/hfsutils.errno.diff b/source/tcl/hfsutils/hfsutils.errno.diff new file mode 100644 index 000000000..e291bfabf --- /dev/null +++ b/source/tcl/hfsutils/hfsutils.errno.diff @@ -0,0 +1,11 @@ +--- ./tclhfs.c.orig 1998-11-02 14:08:32.000000000 -0800 ++++ ./tclhfs.c 2005-07-10 19:17:31.000000000 -0700 +@@ -44,7 +44,7 @@ + # include "suid.h" + # include "version.h" + +-extern int errno; ++#include ; + + # define ERROR(code, str) (hfs_error = (str), errno = (code)) + diff --git a/source/tcl/hfsutils/slack-desc b/source/tcl/hfsutils/slack-desc new file mode 100644 index 000000000..1b53276b8 --- /dev/null +++ b/source/tcl/hfsutils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +hfsutils: hfsutils (HFS volume utilities) +hfsutils: +hfsutils: hfsutils is a collection of tools for reading and writing Macintosh +hfsutils: HFS volumes. These utilities can manipulate HFS volumes on nearly any +hfsutils: medium. Since hfs and xhfs are linked with Tcl/Tk shared libraries, +hfsutils: the hfsutils package is included here in the TCL software series. +hfsutils: +hfsutils: hfsutils was written by Robert Leslie +hfsutils: +hfsutils: +hfsutils: diff --git a/source/tcl/tcl/slack-desc b/source/tcl/tcl/slack-desc new file mode 100644 index 000000000..75c89979b --- /dev/null +++ b/source/tcl/tcl/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tcl: tcl (Tool Command Language) +tcl: +tcl: Tcl, developed by Dr. John Ousterhout, is a simple to use text-based +tcl: script language with many built-in features which make it especially +tcl: nice for writing interactive scripts. +tcl: +tcl: +tcl: +tcl: +tcl: +tcl: diff --git a/source/tcl/tcl/tcl.SlackBuild b/source/tcl/tcl/tcl.SlackBuild new file mode 100755 index 000000000..2d65ec5fa --- /dev/null +++ b/source/tcl/tcl/tcl.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-8.5.7} +# See also version number 8.5 in the symlinks below...) +ARCH=${ARCH:-x86_64} +BUILD=1 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tcl +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + CONFARGS="--enable-64bit" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + CONFARGS="--enable-64bit" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + CONFARGS="" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" + CONFARGS="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" + CONFARGS="" +fi + +cd $TMP +rm -rf tcl$VERSION +tar xvf $CWD/tcl$VERSION-src.tar.?z* || exit 1 +cd tcl$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/doc/tcl$VERSION +cp -a README license.terms $PKG/usr/doc/tcl$VERSION +cd unix +# Fix 64bit path names: +sed -i -e "s#TCL_LIBRARY='\$(prefix)/lib/tcl\$(VERSION)'#TCL_LIBRARY='\$(prefix)/lib$LIBDIRSUFFIX/tcl\$(VERSION)'#" configure +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-shared \ + --enable-man-symlinks \ + --enable-man-compression=gzip \ + ${CONFARGS} \ + --build=$ARCH-slackware-linux +make -j4 || exit 1 +make install DESTDIR=$PKG + +# Some sources require Tcl's private headers, which might not be the +# best thing but we'll include them where we've seen other teams +# doing the same thing: +mkdir -p $PKG/usr/include/tcl-private/{generic,unix} +cp -a ../generic/*.h $PKG/usr/include/tcl-private/generic +cp -a ../unix/*.h $PKG/usr/include/tcl-private/unix +( cd $PKG/usr/include/tcl-private/generic + rm -f tcl.h tclDecls.h tclPlatDecls.h + ln -sf ../../tcl.h . + ln -sf ../../tclDecls.h . + ln -sf ../../tclPlatDecls.h + ln -sf ../unix/tclUnixPort.h + ln -sf ../unix/tclUnixThrd.h +) + +( cd $PKG/usr/bin + rm -f tclsh + ln -sf tclsh8.5 tclsh +) +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libtcl.so + ln -sf libtcl8.5.so libtcl.so +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/tcl-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/tcl/tclx/slack-desc b/source/tcl/tclx/slack-desc new file mode 100644 index 000000000..8c10bab96 --- /dev/null +++ b/source/tcl/tclx/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tclx: tclx (Extended Tcl) +tclx: +tclx: Extended Tcl (TclX), is a set of extensions to Tcl, the Tool Command +tclx: Language invented by Dr. John Ousterhout. Extended Tcl is oriented +tclx: towards Unix system programming tasks and large application +tclx: development. Many additional interfaces to the Unix operating system +tclx: are provided. Extended Tcl was designed and implemented by Karl +tclx: Lehenbauer (karl@NeoSoft.com) and Mark Diekhans (markd@Grizzly.com), +tclx: with help in the early stages from Peter da Silva (peter@NeoSoft.com). +tclx: +tclx: diff --git a/source/tcl/tclx/tclx-8.4.configure.diff b/source/tcl/tclx/tclx-8.4.configure.diff new file mode 100644 index 000000000..45fe68760 --- /dev/null +++ b/source/tcl/tclx/tclx-8.4.configure.diff @@ -0,0 +1,31 @@ +--- tclx8.4/configure.relid 2006-02-03 16:13:25.000000000 -0500 ++++ tclx8.4/configure 2006-02-03 16:13:33.000000000 -0500 +@@ -6999,7 +6999,7 @@ + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`awk '{print }' /etc/.relid'` ++ system=MP-RAS-`awk '{print }' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` +--- tclx8.4/tclconfig/tcl.m4.relid 2006-02-03 16:13:43.000000000 -0500 ++++ tclx8.4/tclconfig/tcl.m4 2006-02-03 16:13:57.000000000 -0500 +@@ -859,7 +859,7 @@ + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`awk '{print $3}' /etc/.relid'` ++ system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` +@@ -2302,7 +2302,7 @@ + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`awk '{print $3}' /etc/.relid'` ++ system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` diff --git a/source/tcl/tclx/tclx-8.4.gcc4.diff b/source/tcl/tclx/tclx-8.4.gcc4.diff new file mode 100644 index 000000000..08fe7d881 --- /dev/null +++ b/source/tcl/tclx/tclx-8.4.gcc4.diff @@ -0,0 +1,11 @@ +--- tclx8.4/generic/tclXdup.c.varinit 2006-02-03 15:54:38.000000000 -0500 ++++ tclx8.4/generic/tclXdup.c 2006-02-03 15:54:53.000000000 -0500 +@@ -202,7 +202,7 @@ + { + Tcl_Channel newChannel; + int bindFnum, fnum; +- char *srcChannelId, *targetChannelId; ++ char *srcChannelId = NULL, *targetChannelId; + + if ((objc < 2) || (objc > 3)) { + return TclX_WrongArgs (interp, objv [0], diff --git a/source/tcl/tclx/tclx.SlackBuild b/source/tcl/tclx/tclx.SlackBuild new file mode 100755 index 000000000..b8ca23e9c --- /dev/null +++ b/source/tcl/tclx/tclx.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=tclx +VERSION=${VERSION:-8.4} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686 -I/usr/include/tcl-private/generic -I/usr/include/tcl-private/unix" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2 -I/usr/include/tcl-private/generic -I/usr/include/tcl-private/unix" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC -I/usr/include/tcl-private/generic -I/usr/include/tcl-private/unix" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}${VERSION} +tar xvf $CWD/${PKGNAM}$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}$VERSION || exit 1 + +zcat $CWD/tclx-8.4.configure.diff.gz | patch -p1 --verbose || exit 1 +zcat $CWD/tclx-8.4.gcc4.diff.gz | patch -p1 --verbose || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-tcl=/usr/lib${LIBDIRSUFFIX} \ + --enable-tk=YES \ + --enable-shared \ + --enable-64bit \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf tclx8.4/libtclx8.4.so . + ln -sf libtclx8.4.so libtclx.so +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ChangeLog README license.terms \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/tcl/tix/slack-desc b/source/tcl/tix/slack-desc new file mode 100644 index 000000000..9eb28dd6b --- /dev/null +++ b/source/tcl/tix/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tix: tix (an extension to the Tk toolkit) +tix: +tix: Tix, which stands for Tk Interface Extension, is an extension library +tix: for Tcl/Tk. Tix adds many new widgets, image types and other commands +tix: that allows you to create compelling Tcl/Tk-based GUI applications. +tix: With these new widgets, your applications will look great and interact +tix: with your users in intuitive ways. +tix: +tix: +tix: +tix: diff --git a/source/tcl/tix/tix.SlackBuild b/source/tcl/tix/tix.SlackBuild new file mode 100755 index 000000000..2f83a6d65 --- /dev/null +++ b/source/tcl/tix/tix.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Build/install Tix the way Slackware's binary package is made: + +PKGNAM=tix +VERSION=8.4.3 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf Tix$VERSION +tar xvf $CWD/Tix$VERSION.tar.gz || exit 1 +cd Tix$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/tix.tcl8.5.patch.gz | patch -p1 --backup --suffix=.orig || exit 1 +zcat $CWD/tix.soname.patch.gz | patch -p1 || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-shared \ + --with-tcl=/usr/lib${LIBDIRSUFFIX} \ + --with-tk=/usr/lib${LIBDIRSUFFIX} \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +find man -type f -exec chmod 644 {} \; +mkdir -p $PKG/usr/man/mann +cp -a man/*.n $PKG/usr/man/mann +gzip -9 $PKG/usr/man/mann/*.n + +mkdir -p $PKG/usr/doc/tix-$VERSION +cp -a \ + ABOUT.* README.* license.terms \ + docs/FAQ.txt docs/Files.* \ + docs/Release-8.4* docs/license* docs/html \ + $PKG/usr/doc/tix-$VERSION +find $PKG/usr/doc/tix-$VERSION -type f -exec chmod 644 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/tcl/tix/tix.soname.patch b/source/tcl/tix/tix.soname.patch new file mode 100644 index 000000000..d2d402dc8 --- /dev/null +++ b/source/tcl/tix/tix.soname.patch @@ -0,0 +1,11 @@ +--- Tix8.4.2/Makefile.in.link 2006-11-18 04:41:06.000000000 +0100 ++++ Tix8.4.2/Makefile.in 2006-11-18 04:43:13.000000000 +0100 +@@ -124,7 +124,7 @@ + RANLIB = @RANLIB@ + RANLIB_STUB = @RANLIB_STUB@ + SHLIB_CFLAGS = @SHLIB_CFLAGS@ +-SHLIB_LD = @SHLIB_LD@ ++SHLIB_LD = @SHLIB_LD@ $(CFLAGS) -Wl,-soname=$(PKG_LIB_FILE) + SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@ + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ + STLIB_LD = @STLIB_LD@ diff --git a/source/tcl/tix/tix.tcl8.5.patch b/source/tcl/tix/tix.tcl8.5.patch new file mode 100644 index 000000000..80b8cf88b --- /dev/null +++ b/source/tcl/tix/tix.tcl8.5.patch @@ -0,0 +1,186 @@ +--- ./Makefile.in.orig 2006-11-16 16:33:42.000000000 -0600 ++++ ./Makefile.in 2008-09-08 19:43:36.000000000 -0500 +@@ -128,6 +128,7 @@ + SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@ + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ + STLIB_LD = @STLIB_LD@ ++TCL_VERSION = @TCL_VERSION@ + TCL_DEFS = @TCL_DEFS@ + TCL_SRC_DIR = @TCL_SRC_DIR@ + TCL_BIN_DIR = @TCL_BIN_DIR@ +@@ -294,7 +295,7 @@ + + pkgIndex.tcl: + (\ +- echo 'if {[catch {package require Tcl 8.4}]} return';\ ++ echo 'if {[catch {package require Tcl $(TCL_VERSION)}]} return';\ + echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ + [list load [file join $$dir $(PKG_LIB_FILE)] $(PACKAGE_NAME)]'\ + ) > pkgIndex.tcl +--- ./generic/tixImgXpm.h.orig 2000-05-17 06:08:42.000000000 -0500 ++++ ./generic/tixImgXpm.h 2008-09-08 19:43:36.000000000 -0500 +@@ -55,7 +55,7 @@ + int size[2]; /* width and height */ + int ncolors; /* number of colors */ + int cpp; /* characters per pixel */ +- char ** data; /* The data that defines this pixmap ++ CONST84 char ** data; /* The data that defines this pixmap + * image (array of strings). It is + * converted into an X Pixmap when this + * image is instanciated +--- ./generic/tixImgXpm.c.orig 2008-02-27 22:05:29.000000000 -0600 ++++ ./generic/tixImgXpm.c 2008-09-08 19:43:36.000000000 -0500 +@@ -45,19 +45,19 @@ + int flags)); + static int ImgXpmGetData _ANSI_ARGS_((Tcl_Interp *interp, + PixmapMaster *masterPtr)); +-static char ** ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp, ++static CONST84 char ** ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp, + char * string, int * numLines_return)); +-static char ** ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp, ++static CONST84 char ** ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp, + CONST84 char * id)); +-static char ** ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp, ++static CONST84 char ** ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp, + char * string, int * numLines_return)); + static void ImgXpmGetPixmapFromData _ANSI_ARGS_(( + Tcl_Interp * interp, + PixmapMaster *masterPtr, + PixmapInstance *instancePtr)); +-static char * GetType _ANSI_ARGS_((char * colorDefn, ++static CONST84 char * GetType _ANSI_ARGS_((CONST84 char * colorDefn, + int * type_ret)); +-static char * GetColor _ANSI_ARGS_((char * colorDefn, ++static CONST84 char * GetColor _ANSI_ARGS_((CONST84 char * colorDefn, + char * colorName, int * type_ret)); + + /* +@@ -286,7 +286,7 @@ + Tcl_Interp *interp; /* For reporting errors. */ + PixmapMaster *masterPtr; + { +- char ** data = NULL; ++ CONST84 char ** data = NULL; + int isAllocated = 0; /* do we need to free "data"? */ + int listArgc; + CONST84 char ** listArgv = NULL; +@@ -363,7 +363,7 @@ + return code; + } + +-static char ** ImgXpmGetDataFromId(interp, id) ++static CONST84 char ** ImgXpmGetDataFromId(interp, id) + Tcl_Interp * interp; + CONST84 char * id; + { +@@ -378,13 +378,13 @@ + if (hashPtr == NULL) { + Tcl_AppendResult(interp, "unknown pixmap ID \"", id, + "\"", NULL); +- return (char**)NULL; ++ return NULL; + } else { +- return (char**)Tcl_GetHashValue(hashPtr); ++ return (CONST84 char**)Tcl_GetHashValue(hashPtr); + } + } + +-static char ** ImgXpmGetDataFromString(interp, string, numLines_return) ++static CONST84 char ** ImgXpmGetDataFromString(interp, string, numLines_return) + Tcl_Interp * interp; + char * string; + int * numLines_return; +@@ -392,7 +392,7 @@ + int quoted; + char * p, * list; + int numLines; +- char ** data; ++ CONST84 char ** data; + + /* skip the leading blanks (leading blanks are not defined in the + * the XPM definition, but skipping them shouldn't hurt. Also, the ability +@@ -510,17 +510,17 @@ + + error: + Tcl_AppendResult(interp, "File format error", NULL); +- return (char**) NULL; ++ return NULL; + } + +-static char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return) ++static CONST84 char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return) + Tcl_Interp * interp; + char * fileName; + int * numLines_return; + { + FILE * fd = NULL; + int size, n; +- char ** data; ++ CONST84 char ** data; + char *cmdBuffer = NULL; + Tcl_DString buffer; /* initialized by Tcl_TildeSubst */ + +@@ -588,16 +588,16 @@ + ckfree(cmdBuffer); + } + Tcl_DStringFree(&buffer); +- return (char**)NULL; ++ return NULL; + } + + +-static char * ++static CONST84 char * + GetType(colorDefn, type_ret) +- char * colorDefn; ++ CONST84 char * colorDefn; + int * type_ret; + { +- char * p = colorDefn; ++ CONST84 char * p = colorDefn; + + /* skip white spaces */ + while (*p && isspace(*p)) { +@@ -642,9 +642,9 @@ + /* + * colorName is guaranteed to be big enough + */ +-static char * ++static CONST84 char * + GetColor(colorDefn, colorName, type_ret) +- char * colorDefn; ++ CONST84 char * colorDefn; + char * colorName; /* if found, name is copied to this array */ + int * type_ret; + { +@@ -751,7 +751,7 @@ + } + + for (i=0; incolors; i++) { +- char * colorDefn; /* the color definition line */ ++ CONST84 char * colorDefn; /* the color definition line */ + char * colorName; /* temp place to hold the color name + * defined for one type of visual */ + char * useName; /* the color name used for this +@@ -842,7 +842,7 @@ + * Parse the main body of the image + */ + for (i=0; isize[1]; i++) { +- char * p = masterPtr->data[i+lOffset]; ++ CONST84 char * p = masterPtr->data[i+lOffset]; + + for (j=0; jsize[0]; j++) { + if (masterPtr->cpp == 1) { +--- ./generic/tixInt.h.orig 2008-02-27 22:29:17.000000000 -0600 ++++ ./generic/tixInt.h 2008-09-08 19:43:36.000000000 -0500 +@@ -23,6 +23,10 @@ + #include + #endif + ++#include ++#include ++#include ++ + /*---------------------------------------------------------------------- + * + * Tix Display Item Types diff --git a/source/tcl/tk/slack-desc b/source/tcl/tk/slack-desc new file mode 100644 index 000000000..021e2fb82 --- /dev/null +++ b/source/tcl/tk/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tk: tk (Tk toolkit for Tcl) +tk: +tk: Tk is an extension to Tcl that allows you to quickly and easily build +tk: X11 applications that have the look and feel of Motif apps. +tk: +tk: +tk: +tk: +tk: +tk: +tk: diff --git a/source/tcl/tk/tk.SlackBuild b/source/tcl/tk/tk.SlackBuild new file mode 100755 index 000000000..90f191ceb --- /dev/null +++ b/source/tcl/tk/tk.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-8.5.7} +# See also version number 8.5 in the symlinks below...) +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-tk +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf tk$VERSION +tar xvf $CWD/tk$VERSION-src.tar.?z* || exit 1 +cd tk$VERSION || exit 1 +sed -i -e "s#^TK_LIBRARY='\$(prefix)/lib/#TK_LIBRARY='\$(libdir)/#" \ + unix/configure + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/doc/tk$VERSION +cp -a README license.terms $PKG/usr/doc/tk$VERSION + +cd unix +make clean +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-shared \ + --enable-64bit \ + --enable-man-symlinks \ + --enable-man-compression=gzip \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Some sources require Tk's private headers, which might not be the +# best thing but we'll include them where we've seen other teams +# doing the same thing: +mkdir -p $PKG/usr/include/tk-private/{generic,unix} +cp -a ../generic/*.h $PKG/usr/include/tk-private/generic +cp -a ../unix/*.h $PKG/usr/include/tk-private/unix +( cd $PKG/usr/include/tk-private/generic + rm -f tk.h tkDecls.h tkPlatDecls.h + ln -sf ../../tk.h . + ln -sf ../../tkDecls.h . + ln -sf ../../tkPlatDecls.h + for file in $(ls ../unix/*.h) ; do ln -sf $file ; done +) + +( cd $PKG/usr/bin + rm -f wish + ln -sf wish8.5 wish +) +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f libtk.so + ln -sf libtk8.5.so libtk.so +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/tk-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/x/anthy/anthy.SlackBuild b/source/x/anthy/anthy.SlackBuild new file mode 100755 index 000000000..ab402cd02 --- /dev/null +++ b/source/x/anthy/anthy.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: anthy +# Descr: a system for Japanese input method +# URL: http://anthy.sourceforge.jp/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=anthy +VERSION=${VERSION:-9100e} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP PKG + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog DIARY INSTALL NEWS README* \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +if [ -f $CWD/doinst.sh ]; then + cat $CWD/doinst.sh >> $PKG/install/doinst.sh +fi + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/anthy/slack-desc b/source/x/anthy/slack-desc new file mode 100644 index 000000000..1e898a0a0 --- /dev/null +++ b/source/x/anthy/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +anthy: anthy (a system for Japanese input method) +anthy: +anthy: Anthy is a library for Japanese text input. It converts Hiragana text +anthy: to Kana Kanji mixed text. +anthy: +anthy: anthy home: http://anthy.sourceforge.jp/ +anthy: +anthy: +anthy: +anthy: +anthy: diff --git a/source/x/dejavu-fonts-ttf/dejavu-fonts-ttf.SlackBuild b/source/x/dejavu-fonts-ttf/dejavu-fonts-ttf.SlackBuild new file mode 100755 index 000000000..68bac2327 --- /dev/null +++ b/source/x/dejavu-fonts-ttf/dejavu-fonts-ttf.SlackBuild @@ -0,0 +1,81 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.29} +ARCH=noarch +BUILD=1 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-dejavu-fonts-ttf + +# I suppose we'll be nice and try to fetch this if +# you know the version you want. +if [ ! -e $CWD/dejavu-fonts-ttf-$VERSION.tar.gz ]; then + if [ ! -e $CWD/dejavu-fonts-ttf-$VERSION.tar.bz2 ]; then + lftpget http://dejavu.sourceforge.net/snapshots/dejavu-fonts-ttf-$VERSION.tar.gz + fi +fi +if [ -e $CWD/dejavu-fonts-ttf-$VERSION.tar.gz ]; then + gzip -d $CWD/dejavu-fonts-ttf-$VERSION.tar.gz + bzip2 -9 $CWD/dejavu-fonts-ttf-$VERSION.tar +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf dejavu-fonts-ttf-$VERSION +tar xvf $CWD/dejavu-fonts-ttf-$VERSION.tar.bz2 || exit 1 +cd dejavu-fonts-ttf-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/share/fonts/TTF/ +cp -a ttf/*.ttf $PKG/usr/share/fonts/TTF/ + +mkdir -p $PKG/etc/fonts/conf.avail +mkdir -p $PKG/etc/fonts/conf.d +( cd fontconfig + for file in * ; do + cp -a $file $PKG/etc/fonts/conf.avail + ( cd $PKG/etc/fonts/conf.d ; ln -sf ../conf.avail/$file . ) + done +) + +mkdir -p $PKG/usr/doc/dejavu-fonts-ttf-$VERSION +cp -a \ + AUTHORS LICENSE NEWS README* *.txt \ + $PKG/usr/doc/dejavu-fonts-ttf-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/dejavu-fonts-ttf-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz + diff --git a/source/x/dejavu-fonts-ttf/doinst.sh b/source/x/dejavu-fonts-ttf/doinst.sh new file mode 100644 index 000000000..bdb050188 --- /dev/null +++ b/source/x/dejavu-fonts-ttf/doinst.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/TTF + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/dejavu-fonts-ttf/slack-desc b/source/x/dejavu-fonts-ttf/slack-desc new file mode 100644 index 000000000..a9952b57e --- /dev/null +++ b/source/x/dejavu-fonts-ttf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dejavu-fonts-ttf: dejavu-fonts-ttf (DejaVu fonts) +dejavu-fonts-ttf: +dejavu-fonts-ttf: The DejaVu fonts are a font family based on the Bitstream Vera Fonts +dejavu-fonts-ttf: (http://gnome.org/fonts/). Its purpose is to provide a wider range +dejavu-fonts-ttf: of characters (see http://dejavu.sf.net for more information) while +dejavu-fonts-ttf: maintaining the original look and feel. +dejavu-fonts-ttf: +dejavu-fonts-ttf: DejaVu fonts are based on Bitstream Vera fonts version 1.10. +dejavu-fonts-ttf: +dejavu-fonts-ttf: +dejavu-fonts-ttf: diff --git a/source/x/fontconfig/fontconfig.SlackBuild b/source/x/fontconfig/fontconfig.SlackBuild new file mode 100755 index 000000000..4714b824f --- /dev/null +++ b/source/x/fontconfig/fontconfig.SlackBuild @@ -0,0 +1,164 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.6.0 +export ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-fontconfig + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf fontconfig-$VERSION +tar xvf $CWD/fontconfig-$VERSION.tar.bz2 || exit 1 +cd fontconfig-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +FCPREFIX=/usr + +# The wonderful extended version of the font so generously +# opened up for free modification and distribution by one +# for the previously proprietary font founderies, and that +# Stepan Roh did such a marvelous job on getting the ball +# rolling with should clearly (IMHO) be the default font: +zcat $CWD/fontconfig.dejavu.diff.gz | patch -p1 --verbose || exit 1 + +# Hardcode the default font search path rather than having +# fontconfig figure it out (and possibly follow symlinks, or +# index ugly bitmapped fonts): +zcat $CWD/fontconfig.font.dir.list.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +CFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=$FCPREFIX \ + --libdir=$FCPREFIX/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --localstatedir=/var + +# Uses a currently non-functional sgml tool, thus '-i': +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# This ought to be easily found here, but it's still safer to move it: +if [ ! -d $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig ]; then + mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig + mv ${PKG}${FCPREFIX}/lib${LIBDIRSUFFIX}/pkgconfig/* $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig + rmdir ${PKG}${FCPREFIX}/lib${LIBDIRSUFFIX}/pkgconfig +fi + +mkdir -p $PKG/usr/doc/fontconfig-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README \ + $PKG/usr/doc/fontconfig-$VERSION +# You can shop for this kind of stuff in the source tarball. +rm -rf ${PKG}${FCPREFIX}/share/doc +rmdir ${PKG}${FCPREFIX}/share + +mkdir -p $PKG/var/log/setup +cat $CWD/setup.05.fontconfig > $PKG/var/log/setup/setup.05.fontconfig +chmod 755 $PKG/var/log/setup/setup.05.fontconfig + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Set up the default options in /etc/fonts/conf.d: +( cd $PKG/etc/fonts/conf.d + for fontconf in \ + 20-fix-globaladvance.conf \ + 20-unhint-small-vera.conf \ + 30-urw-aliases.conf \ + 30-metric-aliases.conf \ + 40-nonlatin.conf \ + 45-latin.conf \ + 49-sansserif.conf \ + 50-user.conf \ + 51-local.conf \ + 60-latin.conf \ + 65-fonts-persian.conf \ + 65-nonlatin.conf \ + 69-unifont.conf \ + 80-delicious.conf \ + 90-synthetic.conf ; do + ln -sf ../conf.avail/$fontconf . || exit 1 + done + if [ ! $? = 0 ]; then + exit 1 + fi +) +if [ ! $? = 0 ]; then + echo "Missing /etc/fonts/$fontconf default. Exiting" + exit 1 +fi + +# Fix manpages: +if [ -d ${PKG}${FCPREFIX}/man ]; then + ( cd ${PKG}${FCPREFIX}/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir $PKG/install +cat << EOF >> $PKG/install/doinst.sh +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi +# else we'll catch it later with setup.fontconfig :-) +# make links: +EOF +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/fontconfig-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/x/fontconfig/fontconfig.dejavu.diff b/source/x/fontconfig/fontconfig.dejavu.diff new file mode 100644 index 000000000..95f8e71e1 --- /dev/null +++ b/source/x/fontconfig/fontconfig.dejavu.diff @@ -0,0 +1,67 @@ +--- ./conf.d/45-latin.conf.orig 2008-05-03 20:02:06.000000000 -0500 ++++ ./conf.d/45-latin.conf 2008-09-17 21:57:28.000000000 -0500 +@@ -10,9 +10,9 @@ + Serif faces + --> + +- Bitstream Vera Serif + DejaVu Serif + Liberation Serif ++ Bitstream Vera Serif + Times New Roman + Times + Nimbus Roman No9 L +@@ -25,9 +25,9 @@ + Sans-serif faces + --> + +- Bitstream Vera Sans + DejaVu Sans + Liberation Sans ++ Bitstream Vera Sans + Arial + Helvetica + Verdana +@@ -41,9 +41,9 @@ + Monospace faces + --> + +- Bitstream Vera Sans Mono + DejaVu Sans Mono + Liberation Mono ++ Bitstream Vera Sans Mono + Courier New + Courier + Andale Mono +--- ./conf.d/60-latin.conf.orig 2008-05-03 21:17:18.000000000 -0500 ++++ ./conf.d/60-latin.conf 2008-09-17 21:56:37.000000000 -0500 +@@ -4,8 +4,8 @@ + + serif + +- Bitstream Vera Serif + DejaVu Serif ++ Bitstream Vera Serif + Times New Roman + Thorndale AMT + Luxi Serif +@@ -16,8 +16,8 @@ + + sans-serif + +- Bitstream Vera Sans + DejaVu Sans ++ Bitstream Vera Sans + Verdana + Arial + Albany AMT +@@ -32,8 +32,8 @@ + + monospace + +- Bitstream Vera Sans Mono + DejaVu Sans Mono ++ Bitstream Vera Sans Mono + Andale Mono + Courier New + Cumberland AMT diff --git a/source/x/fontconfig/fontconfig.font.dir.list.diff b/source/x/fontconfig/fontconfig.font.dir.list.diff new file mode 100644 index 000000000..a11ef0b6d --- /dev/null +++ b/source/x/fontconfig/fontconfig.font.dir.list.diff @@ -0,0 +1,26 @@ +--- ./fonts.conf.in.orig 2007-10-25 16:14:27.000000000 -0500 ++++ ./fonts.conf.in 2008-09-22 15:42:21.000000000 -0500 +@@ -23,10 +23,21 @@ + + + +-

@FC_DEFAULT_FONTS@ +- @FC_FONTPATH@ ++ /usr/share/fonts/OTF ++ /usr/share/fonts/TTF ++ /usr/share/fonts/Type1 ++ /usr/share/fonts/Speedo ++ /usr/share/fonts/cyrillic ++ /usr/share/fonts/misc + ~/.fonts + ++ ++ + diff --git a/source/x/fontconfig/setup.05.fontconfig b/source/x/fontconfig/setup.05.fontconfig new file mode 100644 index 000000000..55f25bead --- /dev/null +++ b/source/x/fontconfig/setup.05.fontconfig @@ -0,0 +1,16 @@ +#!/bin/sh +#BLURB="Run fc-cache to locate new fonts for Xft" +if [ -x usr/bin/fc-cache ]; then + if [ "$COLOR" = "on" -o -r $TMP/SeTcolor ]; then + dialog --title "FONTCONFIG UPDATE" --infobox \ + "Please wait while we generate font.cache-1 files with fc-cache. \ +For best results, fc-cache should be run whenever fonts are \ +added to the system." 5 68 + else + echo "Please wait while we generate font.cache-1 files with fc-cache." + echo "For best results, fc-cache should be run whenever fonts are added" + echo "to the system." + fi + chroot . /sbin/ldconfig 1> /dev/null 2> /dev/null + chroot . /usr/bin/fc-cache -f 1> /dev/null 2> /dev/null +fi diff --git a/source/x/fontconfig/slack-desc b/source/x/fontconfig/slack-desc new file mode 100644 index 000000000..173ba9467 --- /dev/null +++ b/source/x/fontconfig/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fontconfig: fontconfig (Font library and tools) +fontconfig: +fontconfig: Fontconfig is a library and tools designed to provide system-wide +fontconfig: font configuration, customization, and application access. +fontconfig: +fontconfig: Fontconfig is written and maintained by Keith Packard. +fontconfig: +fontconfig: +fontconfig: +fontconfig: +fontconfig: diff --git a/source/x/glew/glew.SlackBuild b/source/x/glew/glew.SlackBuild new file mode 100755 index 000000000..75b22af65 --- /dev/null +++ b/source/x/glew/glew.SlackBuild @@ -0,0 +1,86 @@ +#!/bin/sh + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Slackware build script for glew + +VERSION=1.5.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j8} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-glew + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf glew-$VERSION +tar xvf $CWD/glew-${VERSION}-src.tar.?z* || exit 1 +cd glew || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Remove the DOS linefeeds from config.guess +TEMPFILE=$(mktemp) +fromdos < config/config.guess > $TEMPFILE +cat $TEMPFILE > config/config.guess ; rm -f $TEMPFILE + +make $NUMJOBS OPT="$SLKCFLAGS" || make OPT="$SLKCFLAGS" || exit 1 +make install GLEW_DEST=$PKG/usr || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +mkdir -p $PKG/usr/doc/glew-$VERSION +cp -a \ + LICENSE.txt README.txt doc/* \ + $PKG/usr/doc/glew-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/glew-$VERSION-$ARCH-$BUILD.txz diff --git a/source/x/glew/glew.url b/source/x/glew/glew.url new file mode 100644 index 000000000..5ef207403 --- /dev/null +++ b/source/x/glew/glew.url @@ -0,0 +1,2 @@ +http://glew.sourceforge.net +http://downloads.sourceforge.net/glew/glew-1.5.1-src.tgz diff --git a/source/x/glew/slack-desc b/source/x/glew/slack-desc new file mode 100644 index 000000000..20583fe32 --- /dev/null +++ b/source/x/glew/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glew: glew (the OpenGL Extension Wrangler Library) +glew: +glew: The OpenGL Extension Wrangler Library (GLEW) is a cross-platform +glew: open-source C/C++ extension loading library. GLEW provides efficient +glew: run-time mechanisms for determining which OpenGL extensions are +glew: supported on the target platform. +glew: +glew: Homepage: http://glew.sourceforge.net/ +glew: +glew: +glew: diff --git a/source/x/libdrm/libdrm.SlackBuild b/source/x/libdrm/libdrm.SlackBuild new file mode 100755 index 000000000..5250cff64 --- /dev/null +++ b/source/x/libdrm/libdrm.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=libdrm +VERSION=${VERSION:-2.4.12} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1 +cd ${PKGNAM}-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-udev \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-${PKGNAM} +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/x/libdrm/slack-desc b/source/x/libdrm/slack-desc new file mode 100644 index 000000000..93530f5ac --- /dev/null +++ b/source/x/libdrm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libdrm: libdrm (A library to support Direct Rendering) +libdrm: +libdrm: This library implements an interface to the kernel's DRM services. +libdrm: It is used to support hardware accelerated 3-D rendering. +libdrm: +libdrm: +libdrm: +libdrm: +libdrm: +libdrm: +libdrm: diff --git a/source/x/liberation-fonts-ttf/60-liberation.conf b/source/x/liberation-fonts-ttf/60-liberation.conf new file mode 100644 index 000000000..a15b9f619 --- /dev/null +++ b/source/x/liberation-fonts-ttf/60-liberation.conf @@ -0,0 +1,26 @@ + + + + + + + + + + Times New Roman + Liberation Serif + + + Arial + Liberation Sans + + + Courier + Liberation Mono + + + + + diff --git a/source/x/liberation-fonts-ttf/doinst.sh b/source/x/liberation-fonts-ttf/doinst.sh new file mode 100644 index 000000000..bdb050188 --- /dev/null +++ b/source/x/liberation-fonts-ttf/doinst.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/TTF + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/liberation-fonts-ttf/liberation-fonts-ttf.SlackBuild b/source/x/liberation-fonts-ttf/liberation-fonts-ttf.SlackBuild new file mode 100755 index 000000000..211bbeffa --- /dev/null +++ b/source/x/liberation-fonts-ttf/liberation-fonts-ttf.SlackBuild @@ -0,0 +1,66 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.04 +ARCH=noarch +BUILD=1 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-liberation-fonts-ttf + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf liberation-fonts-ttf-$VERSION +tar xvf $CWD/liberation-fonts-${VERSION}.tar.* || exit 1 +cd liberation-fonts-${VERSION} || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/share/fonts/TTF/ +cp -a *.ttf $PKG/usr/share/fonts/TTF/ + +mkdir -p $PKG/usr/doc/liberation-fonts-ttf-$VERSION +cp -a \ + AUTHORS COPYING* ChangeLog License.txt README \ + $PKG/usr/doc/liberation-fonts-ttf-$VERSION + +mkdir -p $PKG/etc/fonts/conf.{d,avail} +cat $CWD/60-liberation.conf > $PKG/etc/fonts/conf.avail/60-liberation.conf +( cd $PKG/etc/fonts/conf.d && \ + ln -sf ../conf.avail/60-liberation.conf +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/liberation-fonts-ttf-${VERSION}-$ARCH-$BUILD.txz + diff --git a/source/x/liberation-fonts-ttf/slack-desc b/source/x/liberation-fonts-ttf/slack-desc new file mode 100644 index 000000000..4692800f2 --- /dev/null +++ b/source/x/liberation-fonts-ttf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +liberation-fonts-ttf: liberation-fonts-ttf (Liberation TTF Fonts) +liberation-fonts-ttf: +liberation-fonts-ttf: Liberation is the collective name of three TrueType font +liberation-fonts-ttf: families: Liberation Sans, Liberation Serif and Liberation +liberation-fonts-ttf: Mono. These fonts are metric-compatible with Arial, Times +liberation-fonts-ttf: New Roman, and Courier New respectively. +liberation-fonts-ttf: +liberation-fonts-ttf: The fonts were developed by Steve Matteson of Ascender Corp. +liberation-fonts-ttf: for Red Hat, Inc. +liberation-fonts-ttf: +liberation-fonts-ttf: diff --git a/source/x/libhangul/libhangul.SlackBuild b/source/x/libhangul/libhangul.SlackBuild new file mode 100755 index 000000000..feeae408e --- /dev/null +++ b/source/x/libhangul/libhangul.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers , Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: libhangul +# Descr: Hangul keyboard input library +# URL: http://kldp.net/projects/hangul/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=libhangul +VERSION=${VERSION:-0.0.7} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg --linkadd y --chown n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/libhangul/slack-desc b/source/x/libhangul/slack-desc new file mode 100644 index 000000000..8d76a7579 --- /dev/null +++ b/source/x/libhangul/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libhangul: libhangul (Hangul keyboard input library) +libhangul: +libhangul: This library implements Hangul keyboard input with various types of +libhangul: Korean keyboards. It is intended to be a base library of Korean +libhangul: input methods on multiple platforms. +libhangul: +libhangul: libhangul home: http://kldp.net/projects/hangul/ +libhangul: +libhangul: +libhangul: +libhangul: diff --git a/source/x/m17n-lib/internal-flt.h b/source/x/m17n-lib/internal-flt.h new file mode 100644 index 000000000..e47dbb1fa --- /dev/null +++ b/source/x/m17n-lib/internal-flt.h @@ -0,0 +1,53 @@ +/* internal-flt.h -- common header file for the internal FLT API. + Copyright (C) 2007 + National Institute of Advanced Industrial Science and Technology (AIST) + Registration Number H15PRO112 + + This file is part of the m17n library. + + The m17n library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License + as published by the Free Software Foundation; either version 2.1 of + the License, or (at your option) any later version. + + The m17n library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the m17n library; if not, write to the Free + Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + 02111-1307, USA. */ + +#ifndef _M_INTERNAL_FLT_H +#define _M_INTERNAL_FLT_H + +#define MAKE_COMBINING_CODE(base_y, base_x, add_y, add_x, off_y, off_x) \ + (((off_y) << 16) \ + | ((off_x) << 8) \ + | ((base_x) << 6) \ + | ((base_y) << 4) \ + | ((add_x) << 2) \ + | (add_y)) + +#define COMBINING_CODE_OFF_Y(code) ((((code) >> 16) & 0xFF) - 128) +#define COMBINING_CODE_OFF_X(code) ((((code) >> 8) & 0xFF) - 128) +#define COMBINING_CODE_BASE_X(code) (((code) >> 6) & 0x3) +#define COMBINING_CODE_BASE_Y(code) (((code) >> 4) & 0x3) +#define COMBINING_CODE_ADD_X(code) (((code) >> 2) & 0x3) +#define COMBINING_CODE_ADD_Y(code) ((code) & 0x3) + +#define MAKE_COMBINING_CODE_BY_CLASS(class) (0x1000000 | class) + +#define COMBINING_BY_CLASS_P(code) ((code) & 0x1000000) + +#define COMBINING_CODE_CLASS(code) ((code) & 0xFFFFFF) + +#define MAKE_PRECOMPUTED_COMBINDING_CODE() (0x2000000) + +#define COMBINING_PRECOMPUTED_P(code) ((code) & 0x2000000) + +extern MSymbol Mcombining; + +#endif /* _M_INTERNAL_FLT_H */ diff --git a/source/x/m17n-lib/m17n-docs_makefile.patch b/source/x/m17n-lib/m17n-docs_makefile.patch new file mode 100644 index 000000000..11f88ef3f --- /dev/null +++ b/source/x/m17n-lib/m17n-docs_makefile.patch @@ -0,0 +1,31 @@ +--- Makefile.in.orig 2007-12-28 02:15:49.000000000 +0100 ++++ Makefile.in 2008-01-29 13:43:46.000000000 +0100 +@@ -676,20 +676,20 @@ + + + install-pkgdataDATA: $(pkgdata_DATA) +- $(mkinstalldirs) $(pkgdatadir)/html +- $(mkinstalldirs) $(mandir)/man1 $(mandir)/man3 $(mandir)/man5 +- $(INSTALL_DATA) usr/latex/m17n-lib.dvi $(pkgdatadir)/m17n-lib.dvi +- $(INSTALL_DATA) usr/latex/m17n-lib.ps $(pkgdatadir)/m17n-lib.ps ++ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/html ++ $(mkinstalldirs) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man3 $(DESTDIR)$(mandir)/man5 ++ $(INSTALL_DATA) usr/latex/m17n-lib.dvi $(DESTDIR)$(pkgdatadir)/m17n-lib.dvi ++ $(INSTALL_DATA) usr/latex/m17n-lib.ps $(DESTDIR)$(pkgdatadir)/m17n-lib.ps + cd usr/html; \ + for f in *.html *.png; do \ +- $(INSTALL_DATA) $$f $(pkgdatadir)/html/$$f; \ ++ $(INSTALL_DATA) $$f $(DESTDIR)$(pkgdatadir)/html/$$f; \ + done + cd man/man1; \ +- for f in *.1; do $(INSTALL_DATA) $$f $(mandir)/man1/$$f; done ++ for f in *.1; do $(INSTALL_DATA) $$f $(DESTDIR)$(mandir)/man1/$$f; done + cd man/man3; \ +- for f in *.3m17n; do $(INSTALL_DATA) $$f $(mandir)/man3/$$f; done ++ for f in *.3m17n; do $(INSTALL_DATA) $$f $(DESTDIR)$(mandir)/man3/$$f; done + cd man/man5; \ +- for f in *.5; do $(INSTALL_DATA) $$f $(mandir)/man5/$$f; done ++ for f in *.5; do $(INSTALL_DATA) $$f $(DESTDIR)$(mandir)/man5/$$f; done + + @MAINTAINER_MODE_TRUE@usr-html html-usr: ${HTML_USR_TARGET} + @MAINTAINER_MODE_TRUE@ja-html html-ja: ${HTML_JA_TARGET} diff --git a/source/x/m17n-lib/m17n-lib.SlackBuild b/source/x/m17n-lib/m17n-lib.SlackBuild new file mode 100755 index 000000000..02a5d29dc --- /dev/null +++ b/source/x/m17n-lib/m17n-lib.SlackBuild @@ -0,0 +1,182 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: m17n-lib +# Descr: multilingualization of many aspects of applications +# URL: http://m17n.org/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=m17n-lib +SHORTNAM=m17n +VERSION=${VERSION:-1.5.4} +DBVERSION=${DBVERSION:-1.5.4} +DOCVERSION=${DOCVERSION:-1.5.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +DOCS="ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README TODO" +DOCS_DB="ABOUT-NLS AUTHORS COPYING ChangeLog NEWS README" +DOCS_DOC="AUTHORS COPYING ChangeLog INSTALL NEWS README" + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +SOURCE[0]="$CWD/${PRGNAM}-${VERSION}.tar.gz" +SOURCE[1]="$CWD/${SHORTNAM}-db-${DBVERSION}.tar.gz" +SOURCE[2]="$CWD/${SHORTNAM}-docs-${DOCVERSION}.tar.gz" + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP/build-${PRGNAM} $PKG + +cd $TMP/build-${PRGNAM} +for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do + tar -xvf ${SOURCE[$i]} || exit 1 +done +chown -R root:root * +chmod -R u+w,go+r-w,a-s * +# Patch the docs makefile: +( cd $SHORTNAM-docs-$DOCVERSION + cat $CWD/${SHORTNAM}-docs_makefile.patch | patch -p0 --verbose || exit 1 +) +cd ${PRGNAM}-${VERSION} +# Add the missing internal-flt.h file: +[ ! -r src/internal-flt.h ] && cp $CWD/internal-flt.h src/ + +echo Building ... +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --without-gui \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux +# If you get errors here, uninstall the present m17n-lib package first: +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 +cd .. + +# Compile and install the m17n database: +echo "Building the m17n database..." +cd ${SHORTNAM}-db-${DBVERSION} +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 +cd .. + +# Compile and install the m17n user documentation: +echo "Building the m17n user docs..." +cd ${SHORTNAM}-docs-${DOCVERSION} +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 +cd .. + +# Add package documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/{db,docs} +cd ${PRGNAM}-${VERSION} +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION +cd ../${SHORTNAM}-db-${DBVERSION} +cp -a $DOCS_DB $PKG/usr/doc/$PRGNAM-$VERSION/db +cd ../${SHORTNAM}-docs-${DOCVERSION} +cp -a $DOCS_DOC $PKG/usr/doc/$PRGNAM-$VERSION/docs +cd .. +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +( cd $PKG/usr/man/man3 + for file in * ; do + mv $file $(basename $file m17n) + done +) +find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; +for i in $(find $PKG/usr/man -type l -name "*.?") ; do + ln -s $( readlink $i ).gz $i.gz ; rm $i +done + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +if [ -f $CWD/doinst.sh ]; then + cat $CWD/doinst.sh >> $PKG/install/doinst.sh +fi + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/m17n-lib/slack-desc b/source/x/m17n-lib/slack-desc new file mode 100644 index 000000000..78164bc0d --- /dev/null +++ b/source/x/m17n-lib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +m17n-lib: m17n-lib (application multilingualization library) +m17n-lib: +m17n-lib: M17n is an abbreviation of Multilingualization. The m17n library +m17n-lib: implements multilingualization for many applications. The m17n +m17n-lib: library supports functions to handle M-texts. This package also +m17n-lib: contains the m17n database. +m17n-lib: +m17n-lib: m17n-lib home: http://m17n.org/ +m17n-lib: +m17n-lib: +m17n-lib: diff --git a/source/x/mesa/README.GIT b/source/x/mesa/README.GIT new file mode 100644 index 000000000..4e79f374c --- /dev/null +++ b/source/x/mesa/README.GIT @@ -0,0 +1,16 @@ +Anonymous git Access + + To get the Mesa sources anonymously (read-only): + + 1. Install the git software on your computer if needed. + + 2. Get an initial, local copy of the repository with: + + git clone git://anongit.freedesktop.org/git/mesa/mesa + + + 3. Later, you can update your tree from the master repository with: + + git pull origin + + diff --git a/source/x/mesa/get-mesa.sh b/source/x/mesa/get-mesa.sh new file mode 100644 index 000000000..710043c64 --- /dev/null +++ b/source/x/mesa/get-mesa.sh @@ -0,0 +1,8 @@ +rm -rf mesa +git clone git://anongit.freedesktop.org/git/mesa/mesa +# package the source archive and clean up: +( cd mesa ; find . -type d -name .git -exec rm -rf {} \; 2> /dev/null ) +DATE=$(date +%Y%m%d) +mv mesa mesa-${DATE}_git +tar cjf mesa-${DATE}_git.tar.bz2 mesa-${DATE}_git +rm -rf mesa-${DATE}_git diff --git a/source/x/mesa/mesa.SlackBuild b/source/x/mesa/mesa.SlackBuild new file mode 100755 index 000000000..88696e3f9 --- /dev/null +++ b/source/x/mesa/mesa.SlackBuild @@ -0,0 +1,130 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=mesa +VERSION=${VERSION:-7.5} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +# Be sure this list is up-to-date: +#DRI_DRIVERS="i810,i915,i965,mach64,mga,nouveau,r128,r200,r300,radeon,s3v,savage,sis,tdfx,trident,unichrome,ffb,swrast" +DRI_DRIVERS="i810,i915,i965,mach64,mga,r128,r200,r300,radeon,s3v,savage,sis,tdfx,trident,unichrome,ffb,swrast" + +NUMJOBS=${NUMJOBS:--j8} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mesa + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf Mesa-${VERSION} +tar xvf $CWD/MesaLib-$VERSION.tar.xz || exit 1 +tar xvf $CWD/MesaGLUT-$VERSION.tar.xz || exit 1 +tar xvf $CWD/MesaDemos-$VERSION.tar.xz || exit 1 +cd Mesa-$VERSION + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/mesa-$VERSION \ + --with-dri-driverdir=/usr/lib${LIBDIRSUFFIX}/xorg/modules/dri \ + --with-dri-drivers="$DRI_DRIVERS" \ + --build=$ARCH-slackware-linux + +# Nobody else is enabling this. Seems like it's asking for trouble. +# --enable-xcb + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Install gears and glinfo manually, and make symlinks from the names +# of the deprecated similar programs to reduce confusion: +mkdir -p $PKG/usr/bin +cp -a progs/demos/gears $PKG/usr/bin/gears +cp -a progs/demos/glinfo $PKG/usr/bin/glinfo +( cd $PKG/usr/bin + ln -sf glinfo glxinfo + ln -sf gears glxgears +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/Mesa-$VERSION/html +cp -a COPYING docs/relnotes-$VERSION.html $PKG/usr/doc/Mesa-$VERSION +rm -f docs/relnotes*.html docs/RELNOTES* +cp -a docs/*.html $PKG/usr/doc/Mesa-$VERSION/html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/x/mesa/slack-desc b/source/x/mesa/slack-desc new file mode 100644 index 000000000..113964bd0 --- /dev/null +++ b/source/x/mesa/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mesa: mesa (a 3-D graphics library) +mesa: +mesa: Mesa is a 3-D graphics library with an API very similar to that of +mesa: another well-known 3-D graphics library. :-) The Mesa libraries are +mesa: used by X to provide both software and hardware accelerated graphics. +mesa: +mesa: Mesa was written by Brian Paul. +mesa: +mesa: +mesa: +mesa: diff --git a/source/x/sazanami-fonts-ttf/sazanami-fonts-ttf.SlackBuild b/source/x/sazanami-fonts-ttf/sazanami-fonts-ttf.SlackBuild new file mode 100755 index 000000000..a6494a588 --- /dev/null +++ b/source/x/sazanami-fonts-ttf/sazanami-fonts-ttf.SlackBuild @@ -0,0 +1,102 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: sazanami-fonts-ttf +# Descr: Japanese TrueType Unicode fonts +# URL: http://sourceforge.jp/projects/efont/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=sazanami-fonts-ttf +REALNAM=sazanami +VERSION=${VERSION:-20040629} +ARCH=noarch +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Font directory location depends on the X build prefix: +# Determine what X we're running (the modular X returns the prefix +# in the next command, while older versions stay silent): +XPREF=$(pkg-config --variable=prefix x11) || true +if [ "$XPREF" == "" ]; then + XPREF='/usr/X11R6' + FONTDIR="$XPREF/lib/X11/fonts/TTF" +else + FONTDIR="/usr/share/fonts/TTF" +fi +mkdir -p $PKG$FONTDIR + +cd $TMP +tar -xvf $CWD/${REALNAM}-${VERSION}.tar.bz2 || exit 1 +cd ${REALNAM}-${VERSION} || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install font: +cp *.ttf $PKG$FONTDIR/ + +# Post-install script: +mkdir -p $PKG/install +cat << EOT > $PKG/install/doinst.sh +# There's no need to chroot and do this during initial +# install, since there is a post-install script that +# does the same thing, saving time. +# Update X font indexes and the font cache: +if [ -x /usr/bin/mkfontdir ]; then + /usr/bin/mkfontscale $FONTDIR + /usr/bin/mkfontdir $FONTDIR +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache $FONTDIR +fi +EOT + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a README doc/* $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/sazanami-fonts-ttf/slack-desc b/source/x/sazanami-fonts-ttf/slack-desc new file mode 100644 index 000000000..3faf3483a --- /dev/null +++ b/source/x/sazanami-fonts-ttf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sazanami-fonts-ttf: sazanami-fonts-ttf (Japanese TrueType Unicode fonts) +sazanami-fonts-ttf: +sazanami-fonts-ttf: The Sazanami fonts contain Hiragana, Katakana, and Kanji/Han +sazanami-fonts-ttf: Ideographs. +sazanami-fonts-ttf: +sazanami-fonts-ttf: Homepage of efont: http://sourceforge.jp/projects/efont/ +sazanami-fonts-ttf: +sazanami-fonts-ttf: +sazanami-fonts-ttf: +sazanami-fonts-ttf: +sazanami-fonts-ttf: diff --git a/source/x/scim-anthy/scim-anthy.SlackBuild b/source/x/scim-anthy/scim-anthy.SlackBuild new file mode 100755 index 000000000..368506355 --- /dev/null +++ b/source/x/scim-anthy/scim-anthy.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: scim-anthy +# Descr: a SCIM IMEngine module for anthy +# URL: http://scim-imengine.sourceforge.jp/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=scim-anthy +VERSION=${VERSION:-1.2.4} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 + +zcat $CWD/scim-anthy.gcc43.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog DIARY INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/scim-anthy/scim-anthy.gcc43.diff b/source/x/scim-anthy/scim-anthy.gcc43.diff new file mode 100644 index 000000000..14606dd7d --- /dev/null +++ b/source/x/scim-anthy/scim-anthy.gcc43.diff @@ -0,0 +1,60 @@ +diff -u -r scim-anthy-1.2.4.orig/src/scim_anthy_kana.cpp scim-anthy-1.2.4/src/scim_anthy_kana.cpp +--- scim-anthy-1.2.4.orig/src/scim_anthy_kana.cpp 2006-07-13 02:41:51.000000000 -0500 ++++ scim-anthy-1.2.4/src/scim_anthy_kana.cpp 2009-06-09 20:40:41.000000000 -0500 +@@ -23,6 +23,8 @@ + #include "scim_anthy_default_tables.h" + #include "scim_anthy_utils.h" + ++#include ++ + using namespace scim_anthy; + + static bool +diff -u -r scim-anthy-1.2.4.orig/src/scim_anthy_preedit.cpp scim-anthy-1.2.4/src/scim_anthy_preedit.cpp +--- scim-anthy-1.2.4.orig/src/scim_anthy_preedit.cpp 2006-07-23 20:56:00.000000000 -0500 ++++ scim-anthy-1.2.4/src/scim_anthy_preedit.cpp 2009-06-09 20:41:03.000000000 -0500 +@@ -26,6 +26,8 @@ + #include "scim_anthy_preedit.h" + #include "scim_anthy_utils.h" + ++#include ++ + using namespace scim_anthy; + + static ConvRule *get_period_rule (TypingMethod method, +diff -u -r scim-anthy-1.2.4.orig/src/scim_anthy_prefs.cpp scim-anthy-1.2.4/src/scim_anthy_prefs.cpp +--- scim-anthy-1.2.4.orig/src/scim_anthy_prefs.cpp 2006-07-23 20:56:00.000000000 -0500 ++++ scim-anthy-1.2.4/src/scim_anthy_prefs.cpp 2009-06-09 20:41:40.000000000 -0500 +@@ -23,6 +23,8 @@ + #include "scim_anthy_prefs.h" + #include "scim_anthy_intl.h" + ++#include ++ + namespace scim_anthy { + + BoolConfigData config_bool_common [] = +diff -u -r scim-anthy-1.2.4.orig/src/scim_anthy_setup.cpp scim-anthy-1.2.4/src/scim_anthy_setup.cpp +--- scim-anthy-1.2.4.orig/src/scim_anthy_setup.cpp 2007-05-21 03:22:20.000000000 -0500 ++++ scim-anthy-1.2.4/src/scim_anthy_setup.cpp 2009-06-09 20:42:01.000000000 -0500 +@@ -30,6 +30,8 @@ + #include + #include + ++#include ++ + #define Uses_SCIM_CONFIG_BASE + #define Uses_SCIM_EVENT + #define SCIM_ANTHY_USE_GTK +diff -u -r scim-anthy-1.2.4.orig/src/scim_anthy_utils.cpp scim-anthy-1.2.4/src/scim_anthy_utils.cpp +--- scim-anthy-1.2.4.orig/src/scim_anthy_utils.cpp 2007-03-28 02:42:10.000000000 -0500 ++++ scim-anthy-1.2.4/src/scim_anthy_utils.cpp 2009-06-09 20:41:22.000000000 -0500 +@@ -24,6 +24,8 @@ + #include "scim_anthy_utils.h" + #include "scim_anthy_default_tables.h" + ++#include ++ + namespace scim_anthy { + + bool diff --git a/source/x/scim-anthy/slack-desc b/source/x/scim-anthy/slack-desc new file mode 100644 index 000000000..bb7bad771 --- /dev/null +++ b/source/x/scim-anthy/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scim-anthy: scim-anthy (a SCIM IMEngine module for anthy) +scim-anthy: +scim-anthy: SCIM is Smart Common Input Method platform, it provides a user +scim-anthy: friendly and full featured user interface and development platform to +scim-anthy: make input method developer's lives easier. Anthy is a system for +scim-anthy: Japanese input method. It converts Hiragana text to Kana Kanji +scim-anthy: mixed text. +scim-anthy: +scim-anthy: scim-anthy home: http://scim-imengine.sourceforge.jp/ +scim-anthy: +scim-anthy: diff --git a/source/x/scim-bridge/scim-bridge.SlackBuild b/source/x/scim-bridge/scim-bridge.SlackBuild new file mode 100755 index 000000000..90354fd75 --- /dev/null +++ b/source/x/scim-bridge/scim-bridge.SlackBuild @@ -0,0 +1,138 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: scim-bridge +# Descr: yet another gtk-immodule for SCIM +# URL: http://scim-im.org/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=scim-bridge +VERSION=${VERSION:-0.4.16} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 +#sed -i -e "s/ -doxygen / doxygen /" $( grep -lr ' -doxygen ' * ) +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-agent \ + --enable-ltdl-install \ + --enable-gtk2-immodule \ + --enable-qt4-immodule \ + --disable-qt3-immodule \ + --disable-documents \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + # We disable the qt3-immodule because that one will not build. + # The qt4-immodule will build however. + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Add this to the doinst.sh +mkdir -p $PKG/install +cat <> $PKG/install/doinst.sh +# Run gtk-query-immodules so that "scim" will appear under Imput Method +# when you right- click your mouse in a text box. +if [ -x /usr/bin/update-gtk-immodules ]; then + /usr/bin/update-gtk-immodules +fi +EOINS + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README doc/LICENSE.* \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/scim-bridge/slack-desc b/source/x/scim-bridge/slack-desc new file mode 100644 index 000000000..cd58299a7 --- /dev/null +++ b/source/x/scim-bridge/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scim-bridge: scim-bridge (yet another gtk-immodule for SCIM) +scim-bridge: +scim-bridge: Scim-bridge is yet another gtk-immodule for SCIM. Scim-bridge +scim-bridge: consists of two parts, that is, client and agent (server). The client +scim-bridge: is a GTK immodule which communicates with the agent over sockets. +scim-bridge: The agent communicates with SCIM, and brings back the data +scim-bridge: for each client. +scim-bridge: +scim-bridge: scim-bridge home: http://scim-im.org/ +scim-bridge: +scim-bridge: diff --git a/source/x/scim-hangul/scim-hangul.SlackBuild b/source/x/scim-hangul/scim-hangul.SlackBuild new file mode 100755 index 000000000..1731a2023 --- /dev/null +++ b/source/x/scim-hangul/scim-hangul.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: scim-hangul +# Descr: SCIM IMengine for Hangul +# URL: http://www.scim-im.org/projects/imengines +# +# ----------------------------------------------------------------------------- + + +PRGNAM=scim-hangul +VERSION=${VERSION:-0.3.2} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 + +zcat $CWD/scim-hangul.gcc43.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING NEWS README ChangeLog \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/scim-hangul/scim-hangul.gcc43.diff b/source/x/scim-hangul/scim-hangul.gcc43.diff new file mode 100644 index 000000000..db63e940d --- /dev/null +++ b/source/x/scim-hangul/scim-hangul.gcc43.diff @@ -0,0 +1,22 @@ +--- ./src/scim_hangul_imengine.cpp.orig 2006-10-23 07:42:47.000000000 -0500 ++++ ./src/scim_hangul_imengine.cpp 2009-06-09 20:50:06.000000000 -0500 +@@ -36,6 +36,8 @@ + #include + #include "scim_hangul_imengine.h" + ++#include ++ + #ifdef HAVE_GETTEXT + #include + #define _(String) dgettext(GETTEXT_PACKAGE,String) +--- ./src/scim_hangul_imengine_setup.cpp.orig 2006-10-23 07:42:47.000000000 -0500 ++++ ./src/scim_hangul_imengine_setup.cpp 2009-06-09 20:50:27.000000000 -0500 +@@ -37,6 +37,8 @@ + #include + #include + ++#include ++ + #ifdef HAVE_GETTEXT + #include + #define _(String) dgettext(GETTEXT_PACKAGE,String) diff --git a/source/x/scim-hangul/slack-desc b/source/x/scim-hangul/slack-desc new file mode 100644 index 000000000..d1e499c9c --- /dev/null +++ b/source/x/scim-hangul/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scim-hangul: scim-hangul (SCIM IMengine for Hangul) +scim-hangul: +scim-hangul: Scim-hangul is a SCIM IMEngine module for inputing korean scripts. +scim-hangul: Scim-hangul is for native speakers, not for foreigners. +scim-hangul: If you don't want to learn korean keyboard layout, use scim-tables. +scim-hangul: This engine supports 2 beolsik, 3 beolsik final, 3 beolsik 390, +scim-hangul: 3 beolsik, no-shift and etc. You can input chinese characters +scim-hangul: (hanja) with F9 key when you a have preedit string. +scim-hangul: +scim-hangul: scim-hangul home: http://www.scim-im.org/projects/imengines +scim-hangul: diff --git a/source/x/scim-input-pad/scim-input-pad.SlackBuild b/source/x/scim-input-pad/scim-input-pad.SlackBuild new file mode 100755 index 000000000..a836a3fa1 --- /dev/null +++ b/source/x/scim-input-pad/scim-input-pad.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- + + +PRGNAM=scim-input-pad +VERSION=${VERSION:-0.1.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar xvf $CWD/${PRGNAM}-${VERSION}.tar.?z* || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Fix location of scim-helper-launcher: +sed -i -e "s#/usr/lib${LIBDIRSUFFIX}/scim-.*/scim-helper-launcher#$(ls /usr/lib${LIBDIRSUFFIX}/scim-*/scim-helper-launcher)#" $PKG/usr/bin/scim-input-pad + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README \ + $PKG/usr/doc/$PRGNAM-$VERSION +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* + +# Strip binaries: +cd $PKG +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/scim-input-pad/slack-desc b/source/x/scim-input-pad/slack-desc new file mode 100644 index 000000000..add837f7d --- /dev/null +++ b/source/x/scim-input-pad/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scim-input-pad: scim-input-pad (on-screen input pad for scim) +scim-input-pad: +scim-input-pad: This is scim-input-pad, which provides an on-screen input pad +scim-input-pad: to enter symbols and chinese characters. +scim-input-pad: +scim-input-pad: +scim-input-pad: +scim-input-pad: +scim-input-pad: +scim-input-pad: scim home: http://scim-im.org/ +scim-input-pad: diff --git a/source/x/scim-m17n/scim-m17n.SlackBuild b/source/x/scim-m17n/scim-m17n.SlackBuild new file mode 100755 index 000000000..e624ca806 --- /dev/null +++ b/source/x/scim-m17n/scim-m17n.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: scim-m17n +# Descr: bridge IMengine to support m17n input methods in SCIM +# URL: http://scim-im.org/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=scim-m17n +VERSION=${VERSION:-0.2.3} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Compress info pages and remove the package's dir file: +if [ -d $PKG/usr/info ]; then + rm -rf $PKG/usr/info/dir + gzip -9f $PKG/usr/info/*.info* +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/scim-m17n/slack-desc b/source/x/scim-m17n/slack-desc new file mode 100644 index 000000000..1c7303698 --- /dev/null +++ b/source/x/scim-m17n/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scim-m17n: scim-m17n (bridge IMengine to support m17n input methods in SCIM) +scim-m17n: +scim-m17n: SCIM is a developing platform to significantly reduce the difficulty +scim-m17n: of input method development. scim-m17n is a SCIM IMEngine module +scim-m17n: which uses the m17n library as the backend. +scim-m17n: +scim-m17n: scim-m17n home: http://scim-im.org/ +scim-m17n: +scim-m17n: +scim-m17n: +scim-m17n: diff --git a/source/x/scim-pinyin/scim-pinyin.SlackBuild b/source/x/scim-pinyin/scim-pinyin.SlackBuild new file mode 100755 index 000000000..79337b1ee --- /dev/null +++ b/source/x/scim-pinyin/scim-pinyin.SlackBuild @@ -0,0 +1,129 @@ +#!/bin/sh + +# Copyright 2007 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: scim-pinyin +# Descr: smart pinyin IM engine for scim +# URL: http://www.scim-im.org/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=scim-pinyin +VERSION=${VERSION:-0.5.91} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 + +# Apply fix for our gcc 4.3.x +zcat $CWD/scim-pinyin.gcc43.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --disable-static \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +#cd skim +#echo Building skim ... +#CFLAGS="$SLKCFLAGS" \ +#./configure \ +# --prefix=$(kde-config --prefix) \ +# --localstatedir=/var \ +# --sysconfdir=/etc \ +# --disable-static \ +# --without-arts \ +# --program-prefix= \ +# --program-suffix= \ +# --build=$ARCH-slackware-linux +#make $NUMJOBS || make || exit 1 +#make DESTDIR=$PKG install || exit 1 +#cd - + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/scim-pinyin/scim-pinyin.gcc43.diff b/source/x/scim-pinyin/scim-pinyin.gcc43.diff new file mode 100644 index 000000000..6f9bd3879 --- /dev/null +++ b/source/x/scim-pinyin/scim-pinyin.gcc43.diff @@ -0,0 +1,44 @@ +diff -Naur scim-pinyin-0.5.91.orig/src/scim_phrase.cpp scim-pinyin-0.5.91/src/scim_phrase.cpp +--- scim-pinyin-0.5.91.orig/src/scim_phrase.cpp 2005-01-06 22:30:58.000000000 +0900 ++++ scim-pinyin-0.5.91/src/scim_phrase.cpp 2008-06-21 13:16:32.000000000 +0900 +@@ -27,6 +27,7 @@ + + #define SCIM_PHRASE_MAX_RELATION 1000 + ++#include + #include + #include "scim_pinyin_private.h" + #include "scim_phrase.h" +diff -Naur scim-pinyin-0.5.91.orig/src/scim_pinyin.cpp scim-pinyin-0.5.91/src/scim_pinyin.cpp +--- scim-pinyin-0.5.91.orig/src/scim_pinyin.cpp 2005-08-08 15:11:16.000000000 +0900 ++++ scim-pinyin-0.5.91/src/scim_pinyin.cpp 2008-06-21 13:16:30.000000000 +0900 +@@ -28,6 +28,7 @@ + #define Uses_SCIM_CONFIG_PATH + #define Uses_SCIM_LOOKUP_TABLE + ++#include + #include + #include "scim_pinyin.h" + +diff -Naur scim-pinyin-0.5.91.orig/src/scim_pinyin_phrase.cpp scim-pinyin-0.5.91/src/scim_pinyin_phrase.cpp +--- scim-pinyin-0.5.91.orig/src/scim_pinyin_phrase.cpp 2005-08-06 21:06:49.000000000 +0900 ++++ scim-pinyin-0.5.91/src/scim_pinyin_phrase.cpp 2008-06-21 13:21:13.000000000 +0900 +@@ -26,6 +26,7 @@ + #define Uses_SCIM_CONFIG_PATH + #define Uses_SCIM_LOOKUP_TABLE + ++#include + #include + #include "scim_pinyin_private.h" + #include "scim_phrase.h" +diff -Naur scim-pinyin-0.5.91.orig/src/scim_special_table.cpp scim-pinyin-0.5.91/src/scim_special_table.cpp +--- scim-pinyin-0.5.91.orig/src/scim_special_table.cpp 2005-01-06 22:31:02.000000000 +0900 ++++ scim-pinyin-0.5.91/src/scim_special_table.cpp 2008-06-21 13:25:25.000000000 +0900 +@@ -20,6 +20,7 @@ + #define Uses_STL_IOMANIP + #define Uscs_C_STRING + ++#include + #include + #include + #include "scim_pinyin_private.h" diff --git a/source/x/scim-pinyin/slack-desc b/source/x/scim-pinyin/slack-desc new file mode 100644 index 000000000..72ba7039b --- /dev/null +++ b/source/x/scim-pinyin/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scim-pinyin: scim-pinyin (smart pinyin IM engine) +scim-pinyin: +scim-pinyin: This package provides a smart pinyin IM engine for SCIM. It includes +scim-pinyin: the plugin modules and the data files to use the smart pinyin input +scim-pinyin: input method for Chinese. +scim-pinyin: +scim-pinyin: scim-pinyin home: http://www.scim-im.org/ +scim-pinyin: +scim-pinyin: +scim-pinyin: +scim-pinyin: diff --git a/source/x/scim-tables/scim-tables.SlackBuild b/source/x/scim-tables/scim-tables.SlackBuild new file mode 100755 index 000000000..8f5773455 --- /dev/null +++ b/source/x/scim-tables/scim-tables.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/sh + +# Copyright 2007 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: scim-tables +# Descr: tables IMEngine for scim +# URL: http://www.scim-im.org/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=scim-tables +VERSION=${VERSION:-0.5.9} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz || exit 1 +cd ${PRGNAM}-${VERSION} || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS \ + $PKG/usr/doc/$PRGNAM-$VERSION +chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +cd $PKG +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/scim-tables/slack-desc b/source/x/scim-tables/slack-desc new file mode 100644 index 000000000..04bc7036e --- /dev/null +++ b/source/x/scim-tables/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scim-tables: scim-tables (tables IMEngine for scim) +scim-tables: +scim-tables: This is scim-tables IMEngine, which provides many CJK input methods. +scim-tables: +scim-tables: scim-tables home: http://scim-im.org/ +scim-tables: +scim-tables: +scim-tables: +scim-tables: +scim-tables: +scim-tables: diff --git a/source/x/scim/scim-setup.desktop b/source/x/scim/scim-setup.desktop new file mode 100644 index 000000000..a236ef291 --- /dev/null +++ b/source/x/scim/scim-setup.desktop @@ -0,0 +1,28 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=SCIM Input Method Setup +Name[cs]=Nastavení vstupní metody SCIM +Name[de]=Einstellungen der SCIM-Eingabemethoden +Name[fr]=Configuration de la Méthode de Saisie SCIM +Name[it]=Configurazione del metodo di inserimento SCIM +Name[ja]=SCIM入力メソッドã®è¨­å®š +Name[ko]=SCIM 입력기 설정 +Name[pa]=SCIM ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਸੈਟਅੱਪ +Name[zh_CN]=SCIM 输入法设置 +Name[zh_TW]=SCIM 輸入法設定 +Comment=Setup utility for Smart Common Input Method platform +Comment[cs]=Nástroj pro nastavení Smart Common Input Method platformy +Comment[de]=Einrichtungswerkzeug für die Smart Common Input Method-Plattform +Comment[fr]=Utilitaire de configuration de la plateforme "Smart Common Input Method" +Comment[it]=Programma di configurazione per il metodo inserimento comune intelligente +Comment[ja]=Smart Common Input Method platform セットアップユーティリティ +Comment[ko]=똑똑한 공통 ìž…ë ¥ 방법 (SCIM)ì„ ìœ„í•œ 설정 프로그램 +Comment[pa]=ਸਮਾਰਟ ਕਾਮਨ ਇੰਪà©à©±à¨Ÿ ਮੈਂਥਸਡ ਪਲੇਟਫਾਰਮ ਲਈ ਸੈਟਅੱਪ ਸਹੂਲਤ +Comment[zh_CN]=智能通用输入法平å°çš„设置工具 +Comment[zh_TW]=泛用智慧型輸入法平å°çš„設定工具 +Exec=scim-setup +Icon=/usr/share/pixmaps/scim-setup.png +Terminal=false +Type=Application +StartupNotify=true +Categories=Applications;Settings; diff --git a/source/x/scim/scim.SlackBuild b/source/x/scim/scim.SlackBuild new file mode 100755 index 000000000..168ae9917 --- /dev/null +++ b/source/x/scim/scim.SlackBuild @@ -0,0 +1,276 @@ +#!/bin/sh + +# Copyright 2006,2007,2008 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: scim +# Descr: Smart Common Input Method platform +# URL: http://www.scim-im.org/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=scim +VERSION=${VERSION:-1.4.9} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-4} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf $CWD/${PRGNAM}-${VERSION}.tar.gz +cd ${PRGNAM}-${VERSION} || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --disable-static \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Add a profile script that sets up the environment: +mkdir -p $PKG/etc/profile.d + +cat < $PKG/etc/profile.d/scim.sh.new +#!/bin/sh + +# SCIM (Smart Common Input Method platform). This is used to support the +# entering of text in non-US-English languages. + +# For SCIM to work, you need to use a UTF-8 locale. Make sure it ends on +# ".UTF-8", not "utf-8"! As an example, you would need to use en_US.UTF-8 +# for a US locale (export LANG=en_US.UTF-8), not en_US. +# +# The locale (LANG variable) is set in /etc/profile.d/lang.sh. + +if [ -x /usr/bin/scim ]; then + # Enable legacy X applications to use scim: + export XMODIFIERS="@im=SCIM" + ## Enable Qt/KDE applications to use scim (not working with kde4): + #export QT_IM_MODULE="scim" + # Make scim start automatically if the "magic key" Ctrl-Space is pressed: + export XIM_PROGRAM="/usr/bin/scim -d" +fi + +if [ -x /usr/bin/scim-bridge ]; then + # Let GTK applications like Firefox/Thunderbird use scim-bridge as + # default immodule: + export GTK_IM_MODULE="scim-bridge" + # Enable Qt4/KDE4 applications to use scim: + export QT_IM_MODULE="scim-bridge" +fi + +# This ensures scim starts when you logon. +# This will only work if you login through runlevel 4 (graphical login)!!! +# Better is to have it start through Ctrl-Space like configured higher up ^^. +#if [ ! \`ls /tmp/scim-socket*\` ]; then +# /usr/bin/scim -d +#fi + +# GTK+ environments such as XFce should support SCIM automatically, BUT +# if the first app you run is a Qt one, you'll run into problems. This +# can be avoided by going into Menu -> Settings -> Autostarted Applications +# and adding SCIM: /usr/bin/scim -d + +# KDE will not start SCIM automatically, so you will need a script such as +# this one in your $HOME/.kde/Autostart: + +#!/bin/bash +#if [ -x /usr/bin/scim ]; then +# /usr/bin/scim -d & +#fi + +# Obviously, uncomment all but the first line. :-) + +EOT + +cat < $PKG/etc/profile.d/scim.csh.new +#!/bin/csh + +# SCIM (Smart Common Input Method platform). This is used to support the +# entering of text in non-US-English languages. + +# For SCIM to work, you need to use a UTF-8 locale. Make sure it ends on +# ".UTF-8", not "utf-8"! As an example, you would need to use en_US.UTF-8 +# for a US locale (setenv LANG en_US.UTF-8), not en_US. +# +# The locale (LANG variable) is set in /etc/profile.d/lang.csh. + +[ -x /usr/bin/scim ] +if (\$status == 0) then + # Enable legacy X applications to use scim: + setenv XMODIFIERS "@im=SCIM" + ## Enable Qt/KDE applications to use scim (does not work for kde4): + #setenv QT_IM_MODULE "scim" + # Make scim start automatically if the "magic key" Ctrl-Space is pressed: + setenv XIM_PROGRAM "/usr/bin/scim -d" +endif + +[ -x /usr/bin/scim-bridge ] +if (\$status == 0) then + # Let GTK applications like Firefox/Thunderbird use scim-bridge as + # default immodule: + setenv GTK_IM_MODULE "scim-bridge" + # Enable Qt4/KDE4 applications to use scim: + setenv QT_IM_MODULE "scim-bridge" +endif + +# This ensures scim starts when you logon. +# This will only work if you login through runlevel 4 (graphical login)!!! +# Better is to have it start through Ctrl-Space like configured higher up ^^. +#[ ! \`ls /tmp/scim-socket*\` ] +#if (\$status == 0) then +# /usr/bin/scim -d +#endif + +# GTK+ environments such as XFce should support SCIM automatically, BUT +# if the first app you run is a Qt one, you'll run into problems. This +# can be avoided by going into Menu -> Settings -> Autostarted Applications +# and adding SCIM: /usr/bin/scim -d + +# KDE will not start SCIM automatically, so you will need a script such as +# this one in your $HOME/.kde/Autostart: + +#!/bin/csh +#[ -x /usr/bin/scim ] +#if (\$status == 0) then +# /usr/bin/scim -d & +#endif + +# Obviously, uncomment all but the first line. :-) + +EOT + +chmod 755 $PKG/etc/profile.d/scim.sh.new +chmod 755 $PKG/etc/profile.d/scim.csh.new + +mkdir -p $PKG/usr/share/applications +cat $CWD/scim.desktop > $PKG/usr/share/applications/scim.desktop +cat $CWD/scim-setup.desktop > $PKG/usr/share/applications/scim-setup.desktop + +# Protect config files from being overwritten: +mv $PKG/etc/scim/config{,.new} +mv $PKG/etc/scim/global{,.new} + +# Add this to the doinst.sh +mkdir -p $PKG/install +cat <> $PKG/install/doinst.sh + +# Handle the incoming configuration files: +config() { + for infile in \$1; do + NEW="\$infile" + OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then + # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} + +# Prepare the new configuration files +for file in etc/scim/config.new etc/scim/global.new etc/profile.d/scim.sh.new etc/profile.d/scim.csh.new ; do + if [ -e \$(dirname \$file)/\$(basename \$file .new) -a -x \$(dirname \$file)/\$(basename \$file .new) ]; then + chmod 755 \$file + else + chmod 644 \$file + fi + config \$file +done + +# Run gtk-query-immodules so that "scim" will appear under Imput Method +# when you right- click your mouse in a text box. +if [ -x /usr/bin/update-gtk-immodules ]; then + /usr/bin/update-gtk-immodules +fi + +EOINS + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/manual/zh_CN/figures +cp -a \ + ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +# Install documentation and user manual +cp -a docs/manual/zh_CN/user-manual.html \ + $PKG/usr/doc/$PRGNAM-$VERSION/manual/zh_CN/ +cp -a docs/manual/zh_CN/figures/*.png \ + $PKG/usr/doc/$PRGNAM-$VERSION/manual/zh_CN/figures/ + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg --prepend --linkadd y --chown n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/scim/scim.desktop b/source/x/scim/scim.desktop new file mode 100644 index 000000000..7aacbcc05 --- /dev/null +++ b/source/x/scim/scim.desktop @@ -0,0 +1,20 @@ +[Desktop Entry] +Comment=Start the Smart Common Input Method platform +Comment[zh_CN]= +Encoding=UTF-8 +Exec=scim -d +GenericName= +GenericName[zh_CN]= +Icon=/usr/share/pixmaps/scim-setup.png +MimeType= +Name=SCIM (Smart Common Input Method) startup +Name[zh_CN]= +Path= +StartupNotify=true +Terminal=false +TerminalOptions= +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= +Categories=Applications;Utility; diff --git a/source/x/scim/slack-desc b/source/x/scim/slack-desc new file mode 100644 index 000000000..066d9f410 --- /dev/null +++ b/source/x/scim/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scim: scim (Smart Common Input Method platform) +scim: +scim: SCIM is an input platform for CJK and other languages. +scim: It aims to significantly reduce the difficulty of input method +scim: development. +scim: +scim: See the scim scripts in /etc/profile.d/ for setup info. +scim: +scim: scim home: http://www.scim-im.org/ +scim: +scim: diff --git a/source/x/sinhala_lklug-font-ttf/sinhala_lklug-font-ttf.SlackBuild b/source/x/sinhala_lklug-font-ttf/sinhala_lklug-font-ttf.SlackBuild new file mode 100755 index 000000000..0ef5f136f --- /dev/null +++ b/source/x/sinhala_lklug-font-ttf/sinhala_lklug-font-ttf.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: sinhala_lklug-font-ttf +# Descr: Sinhala Unicode TrueType font +# URL: http://sinhala.sourceforge.net/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=sinhala_lklug-font-ttf +FONTNAM=sinhala_lklug +VERSION=${VERSION:-20060929} +ARCH=noarch +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Font directory location depends on the X build prefix: +# Determine what X we're running (the modular X returns the prefix +# in the next command, while older versions stay silent): +XPREF=$(pkg-config --variable=prefix x11) +if [ "$XPREF" = "" ]; then + XPREF='/usr/X11R6' + FONTDIR="$XPREF/lib/X11/fonts/TTF" +else + FONTDIR="/usr/share/fonts/TTF" +fi +mkdir -p $PKG$FONTDIR + +# Check the timestamp of the font file and warn if it is different from +# the VERSION string: +STAMP=$(LC_ALL=C stat -c %y $CWD/${FONTNAM}.ttf |cut -d' ' -f1 |tr -d '-') +if [ "${STAMP}" != "${VERSION}" ]; then + echo "The timestamp of the font file '${FONTNAM}.ttf' is '$STAMP'," + echo " which is different from the VERSION '${VERSION}' of the package" + echo " you are creating. Please update the VERSION in '$0' to '${STAMP}'." + exit 1 +fi + +# Copy the font into the package: +cp $CWD/${FONTNAM}.ttf $PKG$FONTDIR/ +chown root:root $PKG$FONTDIR/* +chmod 644 $PKG$FONTDIR/* + +# Post-install script: +mkdir -p $PKG/install +cat << EOT > $PKG/install/doinst.sh +# There's no need to chroot and do this during initial +# install, since there is a post-install script that +# does the same thing, saving time. +# Update X font indexes and the font cache: +if [ -x /usr/bin/mkfontdir ]; then + /usr/bin/mkfontscale $FONTDIR + /usr/bin/mkfontdir $FONTDIR +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache $FONTDIR +fi +EOT + +# This font has no documentation: + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/sinhala_lklug-font-ttf/sinhala_lklug.ttf b/source/x/sinhala_lklug-font-ttf/sinhala_lklug.ttf new file mode 100644 index 000000000..9e4b31d9e Binary files /dev/null and b/source/x/sinhala_lklug-font-ttf/sinhala_lklug.ttf differ diff --git a/source/x/sinhala_lklug-font-ttf/slack-desc b/source/x/sinhala_lklug-font-ttf/slack-desc new file mode 100644 index 000000000..0c26563c3 --- /dev/null +++ b/source/x/sinhala_lklug-font-ttf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sinhala_lklug-font-ttf: sinhala_lklug-font-ttf (Sinhala Unicode TrueType font) +sinhala_lklug-font-ttf: +sinhala_lklug-font-ttf: This is a free Sri Lankan 'Sinhala' Unicode font. Its development was +sinhala_lklug-font-ttf: initiated by the LK LUG in 2003. +sinhala_lklug-font-ttf: +sinhala_lklug-font-ttf: Development home: http://sinhala.sourceforge.net/ +sinhala_lklug-font-ttf: +sinhala_lklug-font-ttf: +sinhala_lklug-font-ttf: +sinhala_lklug-font-ttf: +sinhala_lklug-font-ttf: diff --git a/source/x/tibmachuni-font-ttf/slack-desc b/source/x/tibmachuni-font-ttf/slack-desc new file mode 100644 index 000000000..e32a42167 --- /dev/null +++ b/source/x/tibmachuni-font-ttf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +tibmachuni-font-ttf: tibmachuni-font-ttf (Tibetan Machine Unicode font) +tibmachuni-font-ttf: +tibmachuni-font-ttf: The Tibetan & Himalayan Digital Library's Unicode character based +tibmachuni-font-ttf: "Tibetan Machine Uni" OpenType font for writing Tibetan, Dzongkha and +tibmachuni-font-ttf: Ladakhi in dbu can script with full support for the Sanskrit +tibmachuni-font-ttf: combinations found in chos-skad texts. +tibmachuni-font-ttf: +tibmachuni-font-ttf: +tibmachuni-font-ttf: tibmachuni-font-ttf home: http://thdl.org/ +tibmachuni-font-ttf: +tibmachuni-font-ttf: diff --git a/source/x/tibmachuni-font-ttf/tibmachuni-font-ttf.SlackBuild b/source/x/tibmachuni-font-ttf/tibmachuni-font-ttf.SlackBuild new file mode 100755 index 000000000..e553bdcff --- /dev/null +++ b/source/x/tibmachuni-font-ttf/tibmachuni-font-ttf.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: tibmachuni-font-ttf +# Descr: Tibetan Machine Unicode font +# URL: http://thdl.org/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=tibmachuni-font-ttf +VERSION=${VERSION:-1.901} +ARCH=noarch +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Font directory location depends on the X build prefix: +# Determine what X we're running (the modular X returns the prefix +# in the next command, while older versions stay silent): +XPREF=$(pkg-config --variable=prefix x11) +if [ "$XPREF" = "" ]; then + XPREF='/usr/X11R6' + FONTDIR="$XPREF/lib/X11/fonts/TTF" +else + FONTDIR="/usr/share/fonts/TTF" +fi +mkdir -p $PKG$FONTDIR + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +mkdir ${PRGNAM}-${VERSION} +cd ${PRGNAM}-${VERSION} +unzip $CWD/TibetanMachineUnicodeFont.zip || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install font: +if [ ! -r TibMachUni-${VERSION}.ttf ]; then + echo "**" + echo "** The source archive: '$(basename ${SOURCE})'" + echo "** contains '$(ls -d --indicator-style=none TibMachUni*)'" + echo "** This does not match the version '${VERSION}'" + echo "** of the package you're trying to build!" + echo "** Please set the VERSION in this script to the correct value," + echo "** and run this SlackBuild script again!" + echo "**" + exit 1 +else + cp TibMachUni-${VERSION}.ttf $PKG$FONTDIR/TibMachUni.ttf +fi + +# Post-install script: +mkdir -p $PKG/install +cat << EOT > $PKG/install/doinst.sh +# There's no need to chroot and do this during initial +# install, since there is a post-install script that +# does the same thing, saving time. +# Update X font indexes and the font cache: +if [ -x /usr/bin/mkfontdir ]; then + /usr/bin/mkfontscale $FONTDIR + /usr/bin/mkfontdir $FONTDIR +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache $FONTDIR +fi +EOT + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + gpl.txt ReadMe.txt \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + diff --git a/source/x/ttf-indic-fonts/COPYING b/source/x/ttf-indic-fonts/COPYING new file mode 100644 index 000000000..3912109b5 --- /dev/null +++ b/source/x/ttf-indic-fonts/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/source/x/ttf-indic-fonts/Samyak_Malayalam.ttf b/source/x/ttf-indic-fonts/Samyak_Malayalam.ttf new file mode 100644 index 000000000..5d06d2ed2 Binary files /dev/null and b/source/x/ttf-indic-fonts/Samyak_Malayalam.ttf differ diff --git a/source/x/ttf-indic-fonts/Samyak_Malayalam.url b/source/x/ttf-indic-fonts/Samyak_Malayalam.url new file mode 100644 index 000000000..993d05123 --- /dev/null +++ b/source/x/ttf-indic-fonts/Samyak_Malayalam.url @@ -0,0 +1,4 @@ +http://www.gnowledge.org/Gnoware/localization/Samyak_Font/new/Samyak_Malayalam.ttf + +This font is licensed under the GPL. + diff --git a/source/x/ttf-indic-fonts/doinst.sh b/source/x/ttf-indic-fonts/doinst.sh new file mode 100644 index 000000000..f6ebdc7c3 --- /dev/null +++ b/source/x/ttf-indic-fonts/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# Update mkfontscale and mkfontdir: +if [ -x /usr/bin/mkfontdir ]; then + ( cd /usr/share/fonts/TTF + mkfontscale . + mkfontdir . + ) +fi +# Update the X font indexes: +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi +# make links: diff --git a/source/x/ttf-indic-fonts/slack-desc b/source/x/ttf-indic-fonts/slack-desc new file mode 100644 index 000000000..194bcbb4c --- /dev/null +++ b/source/x/ttf-indic-fonts/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ttf-indic-fonts: ttf-indic-fonts (Fonts for Indic scripts) +ttf-indic-fonts: +ttf-indic-fonts: This is a collection of free fonts that support some of the more +ttf-indic-fonts: widely used Indic scripts. Included are TTF fonts for Bengali, +ttf-indic-fonts: Devanagari, Gujarati, Kannada, Malayalam, Oriya, Punjabi, Tamil, +ttf-indic-fonts: and Telugu. +ttf-indic-fonts: +ttf-indic-fonts: For more information about enabling full Indic support (this package +ttf-indic-fonts: will enable display, but probably not input), see the +ttf-indic-fonts: Indic-Fonts-HOWTO which can be found in /usr/doc/Linux-HOWTOs. +ttf-indic-fonts: diff --git a/source/x/ttf-indic-fonts/ttf-indic-fonts.SlackBuild b/source/x/ttf-indic-fonts/ttf-indic-fonts.SlackBuild new file mode 100755 index 000000000..2353121ff --- /dev/null +++ b/source/x/ttf-indic-fonts/ttf-indic-fonts.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.4.7.4 +ARCH=noarch +BUILD=1 + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-ttf-indic-fonts + +rm -rf $PKG +mkdir -p $PKG +cd $TMP +rm -rf ttf-indic-fonts-$VERSION +tar xvf $CWD/ttf-indic-fonts-$VERSION.tar.bz2 || exit 1 +cd ttf-indic-fonts-$VERSION || exit 1 +# Patch copyright notices so that they do not give inaccurate +# information about where to find the GPL: +zcat $CWD/ttf-indic-fonts.copyright.diff.gz | patch -p1 --verbose || exit 1 + +# I'm very interested in making this a better package, but have a +# long way to go in understanding how all of this works. I know +# that at least some of the Wikipedia articles I read are filled +# in better now, but... +# +# For example, the hints files in the debian directory (where most +# of these fonts were found) -- what do they do? And where do they +# go? Also, some of the nicer looking fonts do not seem to be the +# defaults (perhaps also due to the lack of "hints"). +# +# Hopefully this will at least provide a useful start for now. +# +# Have fun :-) +# +# -- Pat + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +mkdir -p $PKG/usr/share/fonts/TTF/ +cp -a */*.ttf $PKG/usr/share/fonts/TTF + +# This is a better Malayalam font: +cp -a $CWD/Samyak_Malayalam.ttf.bz2 $PKG/usr/share/fonts/TTF +( cd $PKG/usr/share/fonts/TTF + bzip2 -d Samyak_Malayalam.ttf.bz2 + chmod 644 Samyak_Malayalam.ttf + chown root:root Samyak_Malayalam.ttf +) +# Remove the old Malayalam font: +rm -f $PKG/usr/share/fonts/TTF/malayalam.ttf + +# Put copyright notices in the docs directory: +mkdir -p $PKG/usr/doc/ttf-indic-fonts-$VERSION +find . -name "*.copyright" -exec cp -a {} $PKG/usr/doc/ttf-indic-fonts-$VERSION \; +cp -a $CWD/COPYING.bz2 $PKG/usr/doc/ttf-indic-fonts-$VERSION +cp -a $CWD/Samyak_Malayalam.url $PKG/usr/doc/ttf-indic-fonts-$VERSION +( cd $PKG/usr/doc/ttf-indic-fonts-$VERSION ; bzip2 -d COPYING.bz2 ) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/ttf-indic-fonts-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/x/ttf-indic-fonts/ttf-indic-fonts.copyright.diff b/source/x/ttf-indic-fonts/ttf-indic-fonts.copyright.diff new file mode 100644 index 000000000..d4ba218b5 --- /dev/null +++ b/source/x/ttf-indic-fonts/ttf-indic-fonts.copyright.diff @@ -0,0 +1,65 @@ +--- ./debian/ttf-punjabi-fonts.copyright.orig 2005-09-11 00:04:08.000000000 -0500 ++++ ./debian/ttf-punjabi-fonts.copyright 2006-09-21 02:19:02.000000000 -0500 +@@ -17,5 +17,3 @@ + Copyright (c) 2003, Automatic Control Equipments, Pune, INDIA. + Released under GPL + +-On a Debian system the text of the GPL can be found in +-/usr/share/common-licenses. +--- ./debian/ttf-tamil-fonts.copyright.orig 2005-09-11 00:04:08.000000000 -0500 ++++ ./debian/ttf-tamil-fonts.copyright 2006-09-21 02:19:05.000000000 -0500 +@@ -25,5 +25,3 @@ + + Opentype tables were added by T. Vaseeharan . + +-On Debian GNU/Linux systems you can find a copy of the GPL in +-/usr/share/common-licenses/GPL. +--- ./debian/ttf-gujarati-fonts.copyright.orig 2005-09-11 00:04:08.000000000 -0500 ++++ ./debian/ttf-gujarati-fonts.copyright 2006-09-21 02:18:40.000000000 -0500 +@@ -28,5 +28,3 @@ + Copyright (c) 2003, Automatic Control Equipments, Pune, INDIA. + Released under GPL + +-On a Debian system the text of the GPL can be found in +-/usr/share/common-licenses. +--- ./debian/ttf-malayalam-fonts.copyright.orig 2006-01-15 18:03:55.000000000 -0600 ++++ ./debian/ttf-malayalam-fonts.copyright 2006-09-21 02:18:56.000000000 -0500 +@@ -18,6 +18,3 @@ + + Copyright (c) 2005 K.H.Hussain + +-A copy of the GNU GPL can be found at +- +- /usr/share/common-licenses/GPL +--- ./debian/ttf-telugu-fonts.copyright.orig 2005-09-11 00:04:08.000000000 -0500 ++++ ./debian/ttf-telugu-fonts.copyright 2006-09-21 02:19:09.000000000 -0500 +@@ -14,5 +14,3 @@ + ----------- + GPLed Telugu font from http://www.kavya-nandanam.com + +-On a Debian system the text of the GPL can be found in +-/usr/share/common-licenses. +--- ./debian/ttf-kannada-fonts.copyright.orig 2006-01-15 17:51:13.000000000 -0600 ++++ ./debian/ttf-kannada-fonts.copyright 2006-09-21 02:18:47.000000000 -0500 +@@ -7,5 +7,3 @@ + (C) Indian Institute of Science,Bangalore 2005 + Released under the GPL. + +-On a Debian system the text of the GPL can be found in +-/usr/share/common-licenses. +--- ./debian/ttf-devanagari-fonts.copyright.orig 2006-01-15 17:51:13.000000000 -0600 ++++ ./debian/ttf-devanagari-fonts.copyright 2006-09-21 02:18:37.000000000 -0500 +@@ -30,5 +30,3 @@ + ------------------ + Copyright (c) Sanir Karmacharya , Suyash Shrestha + +-On a Debian system the text of the GPL can be found in +-/usr/share/common-licenses. +--- ./debian/ttf-oriya-fonts.copyright.orig 2005-09-11 00:04:08.000000000 -0500 ++++ ./debian/ttf-oriya-fonts.copyright 2006-09-21 02:18:59.000000000 -0500 +@@ -11,5 +11,3 @@ + (C) Andy White 2003 + Released under GPL (http://oriya.sarovar.org/) + +-On a Debian system the text of the GPL can be found in +-/usr/share/common-licenses. diff --git a/source/x/wqy-zenhei-font-ttf/slack-desc b/source/x/wqy-zenhei-font-ttf/slack-desc new file mode 100644 index 000000000..cf1f04923 --- /dev/null +++ b/source/x/wqy-zenhei-font-ttf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +wqy-zenhei-font-ttf: wqy-zenhei-font-ttf (Wen Quan Yi Zen Hei CJK Font) +wqy-zenhei-font-ttf: +wqy-zenhei-font-ttf: The WenQuanYi Zen Hei font is a Chinese (or CJK) outline font with +wqy-zenhei-font-ttf: Hei Ti style (a sans-serif style) Hanzi glyphs. This font is +wqy-zenhei-font-ttf: developed for general purpose use of Chinese for formating, printing +wqy-zenhei-font-ttf: and on-screen display. This font is also targeted at platform +wqy-zenhei-font-ttf: independence and the utility for document exchange between various +wqy-zenhei-font-ttf: operating systems. +wqy-zenhei-font-ttf: +wqy-zenhei-font-ttf: wqy-zenhei-font-ttf home: http://wqy.sourceforge.net/en/ +wqy-zenhei-font-ttf: diff --git a/source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild b/source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild new file mode 100755 index 000000000..b9fb149da --- /dev/null +++ b/source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: wqy-zenhei-font-ttf +# Descr: Wen Quan Yi Zen Hei CJK Font +# URL: http://wqy.sourceforge.net/en/ +# +# ----------------------------------------------------------------------------- + + +PRGNAM=wqy-zenhei-font-ttf +SRCNAM=wqy-zenhei +VERSION=${VERSION:-0.8.38} +SUB=${SUB:-1} +ARCH=noarch +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +SOURCE="$CWD/${SRCNAM}-${VERSION}-${SUB}.tar.bz2" + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Font directory location depends on the X build prefix: +# Determine what X we're running (the modular X returns the prefix +# in the next command, while older versions stay silent): +XPREF=$(pkg-config --variable=prefix x11) +if [ "$XPREF" = "" ]; then + XPREF='/usr/X11R6' + FONTDIR="$XPREF/lib/X11/fonts/TTF" +else + FONTDIR="/usr/share/fonts/TTF" +fi +mkdir -p $PKG$FONTDIR + +cd $TMP +rm -rf ${PRGNAM}-${VERSION} +tar -xvf ${SOURCE} || exit 1 +mv ${SRCNAM} ${PRGNAM}-${VERSION} || exit 1 +cd ${PRGNAM}-${VERSION} +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Install font: +cp *.ttf *.ttc $PKG$FONTDIR/ + +# Add the fontconfig file and symlink. +mkdir -p $PKG/etc/fonts/conf.{d,avail} +cp 44-wqy-zenhei.conf $PKG/etc/fonts/conf.avail/ +( cd $PKG/etc/fonts/conf.d && \ + ln -sf ../conf.avail/44-wqy-zenhei.conf +) +# Two more fontconfig files which we do not activate by default: +cp 66-wqy-zenhei-sharp.conf 66-wqy-zenhei-sharp-no13px.conf \ + $PKG/etc/fonts/conf.avail/ + +# Add a shell script that can set the Zen Hei default display styles: +mkdir -p $PKG/usr/sbin +install -m755 zenheiset $PKG/usr/sbin/zenheiset + +# Post-install script: +mkdir -p $PKG/install +cat << EOT > $PKG/install/doinst.sh +# There's no need to chroot and do this during initial +# install, since there is a post-install script that +# does the same thing, saving time. +# Update X font indexes and the font cache: +if [ -x /usr/bin/mkfontdir ]; then + /usr/bin/mkfontscale $FONTDIR + /usr/bin/mkfontdir $FONTDIR +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache $FONTDIR +fi +EOT + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL README \ + $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Add a package description: +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}_${SUB}-${ARCH}-${BUILD}.txz + diff --git a/source/x/x11-skel/doinst.sh b/source/x/x11-skel/doinst.sh new file mode 100644 index 000000000..05e7fb0fe --- /dev/null +++ b/source/x/x11-skel/doinst.sh @@ -0,0 +1,36 @@ + +# X.Org will work without any xorg.conf now, so don't move anything +# into place by default. Commenting out the block below: + +## Use framebuffer by default if no xorg.conf is found: +#if [ ! -r etc/X11/xorg.conf -a -r etc/X11/xorg.conf-vesa ]; then +# cp -a etc/X11/xorg.conf-vesa etc/X11/xorg.conf +#fi + +( cd usr/lib/X11 ; rm -rf fonts ) +( cd usr/lib/X11 ; ln -sf ../../share/fonts fonts ) +# This setup should allow the following packages to install in a +# sane fashion, and should also allow third-party video drivers to +# find X in the old places. However, anything you've installed in +# your /usr/X11R6 directory will be moved to /usr/X11R6.bak. +# Anything you really want want to keep will need to be merged back +# by hand. +if [ ! -L /usr/X11R6/bin ]; then + if [ -d usr/X11R6 ]; then + mv usr/X11R6 usr/X11R6.bak + fi +fi +mkdir -p usr/X11R6 +( cd usr/X11R6 + for dir in ../bin ../include ../lib ../libexec ../man ../share ; do + rm -rf $(basename $dir) + ln -sf $dir . + done +) +( cd usr ; rm -rf X11 ) +( cd usr ; ln -sf X11R6 X11 ) +( cd usr/bin ; rm -rf X11 ) +( cd usr/bin ; ln -sf . X11 ) +if [ -L usr/include/X11 ]; then + ( cd usr/include ; rm -rf X11 ) +fi diff --git a/source/x/x11-skel/manpages/xwmconfig.1 b/source/x/x11-skel/manpages/xwmconfig.1 new file mode 100644 index 000000000..c54ef7e1b --- /dev/null +++ b/source/x/x11-skel/manpages/xwmconfig.1 @@ -0,0 +1,29 @@ +.\" -*- nroff -*- +.ds g \" empty +.ds G \" empty +.\" Like TP, but if specified indent is more than half +.\" the current line-length - indent, use the default indent. +.de Tp +.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP +.el .TP "\\$1" +.. +.TH XWMCONFIG 1 "31 May 2002" "Slackware Version 8.1.0" +.SH NAME +xwmconfig \- choose a default window manager for X. +.SH SYNOPSIS +.B xwmconfig +.SH DESCRIPTION +.B xwmconfig +provides a menu of the window managers available on the machine so that you +may choose one of them to use when X is started with "startx". + +When run by root, +it sets the symbolic link /etc/X11/xinit/xinitrc, which selected the default +system-wide window manager to use for X, and also creates a /root/.xinitrc file +with the same window manager selected (perhaps suitable to move into /etc/skel/). + +When run by a non-root user, xwmconfig writes out a $HOME/.xinitrc file, allowing +the user to choose their own default window manager (possibly overriding the +one chosen as a system default). +.SH AUTHOR +Patrick J. Volkerding diff --git a/source/x/x11-skel/scripts/setup.xwmconfig b/source/x/x11-skel/scripts/setup.xwmconfig new file mode 100644 index 000000000..3ca88b202 --- /dev/null +++ b/source/x/x11-skel/scripts/setup.xwmconfig @@ -0,0 +1,15 @@ +#!/bin/sh +#BLURB="Choose a default window manager for X" +TMP=/var/log/setup/tmp +if [ -r $TMP/SeTT_PX ]; then + T_PX="`cat $TMP/SeTT_PX`" +elif [ ! "$1" = "" ]; then + T_PX=$1 +else + T_PX=/ +fi +if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then # use menus + if [ -d $T_PX/etc/X11/xinit ]; then + chroot $T_PX /bin/bash /usr/bin/xwmconfig + fi +fi diff --git a/source/x/x11-skel/scripts/xorg.conf-fbdev b/source/x/x11-skel/scripts/xorg.conf-fbdev new file mode 100644 index 000000000..13bc3dc16 --- /dev/null +++ b/source/x/x11-skel/scripts/xorg.conf-fbdev @@ -0,0 +1,507 @@ +# File generated by xf86config. + +# +# Copyright (c) 1999 by The XFree86 Project, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Except as contained in this notice, the name of the XFree86 Project shall +# not be used in advertising or otherwise to promote the sale, use or other +# dealings in this Software without prior written authorization from the +# XFree86 Project. +# + +# ********************************************************************** +# Refer to the XF86Config(4/5) man page for details about the format of +# this file. +# ********************************************************************** + +# This XF86Config file is designed for use with the Linux framebuffer console. +# This generic interface should work with nearly all video cards (although +# not every card will support every resolution). To use the Linux framebuffer +# console, you need to enable these kernel options: +# Using 'make menuconfig', in 'console drivers', enable: +# [*] VGA text console +# [*] Video mode selection support +# [*] Support for frame buffer devices (EXPERIMENTAL) +# [*] VESA VGA graphics console +# [*] Advanced low level driver options +# <*> 8 bpp packed pixels support +# <*> 16 bpp packed pixels support +# <*> 24 bpp packed pixels support +# <*> 32 bpp packed pixels support +# <*> VGA characters/attributes support +# [*] Select compiled-in fonts +# [*] VGA 8x8 font +# [*] VGA 8x16 font +# If you have a Matrox or ATI Mach64, you might try enabling the options having +# to do with those cards as well. However, if the card is VESA compliant, you +# don't really need to (and it might cause problems, possibly) +# +# Next, if this file is not already named /etc/X11/XF86Config, make a copy +# with that name. This file ships with the name XF86Config-fbdev to avoid +# overwriting an existing config file. +# +# To get the kernel to start in VESA framebuffer mode, you need to pass it +# a vga= init string at boot time. For example, if you use LILO you'll +# probably find a vga=normal string in your /etc/lilo.conf. If you edit that +# to one of the values in this table: +# +# Colours 640x480 800x600 1024x768 1280x1024 1600x1200 +# --------+--------------------------------------------- +# 256 | 769 771 773 775 796 +# 32,768 | 784 787 790 793 797 +# 65,536 | 785 788 791 794 798 +# 16.8M | 786 789 792 795 799 +# +# ...such as this for 1024x768x64k: +# vga = 791 +# and then reinstall LILO by running 'lilo' as root, then at the next boot +# Linux should start in a VESA framebuffer console mode. +# +# For more information on how to activate the Linux frame buffer, see +# /usr/src/linux/Documentation/fb/vesafb.txt. +# +# Enjoy! :) +# -- volkerdi@slackware.com +# + +# ********************************************************************** +# Module section -- this section is used to specify +# which dynamically loadable modules to load. +# ********************************************************************** +# +Section "Module" + +# This loads the DBE extension module. + + Load "dbe" # Double buffer extension + +# This loads the miscellaneous extensions module, and disables +# initialisation of the XFree86-DGA extension within that module. + SubSection "extmod" + Option "omit xfree86-dga" # don't initialise the DGA extension + EndSubSection + +# This loads the font modules + Load "type1" + Load "freetype" + #Load "speedo" + +# This loads the GLX module + Load "glx" + +EndSection + +# ********************************************************************** +# Files section. This allows default font and rgb paths to be set +# ********************************************************************** + +Section "Files" + +# The location of the RGB database. Note, this is the name of the +# file minus the extension (like ".txt" or ".db"). There is normally +# no need to change the default. + + RgbPath "/usr/share/X11/rgb" + +# Multiple FontPath entries are allowed (which are concatenated together), +# as well as specifying multiple comma-separated entries in one FontPath +# command (or a combination of both methods) +# +# If you don't have a floating point coprocessor and emacs, Mosaic or other +# programs take long to start up, try moving the Type1 and Speedo directory +# to the end of this list (or comment them out). +# + + FontPath "/usr/share/fonts/local/" + FontPath "/usr/share/fonts/misc/" + FontPath "/usr/share/fonts/Type1/" + FontPath "/usr/share/fonts/OTF/" + FontPath "/usr/share/fonts/TTF/" + FontPath "/usr/share/fonts/CID/" + FontPath "/usr/share/fonts/Speedo/" + FontPath "/usr/share/fonts/75dpi/:unscaled" + FontPath "/usr/share/fonts/100dpi/:unscaled" + FontPath "/usr/share/fonts/75dpi/" + FontPath "/usr/share/fonts/100dpi/" + FontPath "/usr/share/fonts/cyrillic/" + +# ModulePath can be used to set a search path for the X server modules. +# The default path is shown here. + +# ModulePath "/usr/lib/xorg/modules" + +EndSection + +# ********************************************************************** +# Server flags section. +# ********************************************************************** + +Section "ServerFlags" + +# Uncomment this to cause a core dump at the spot where a signal is +# received. This may leave the console in an unusable state, but may +# provide a better stack trace in the core dump to aid in debugging + +# Option "NoTrapSignals" + +# Uncomment this to disable the VT switch sequence +# (where n is 1 through 12). This allows clients to receive these key +# events. + +# Option "DontVTSwitch" + +# Uncomment this to disable the server abort sequence +# This allows clients to receive this key event. + +# Option "DontZap" + +# Uncomment this to disable the / mode switching +# sequences. This allows clients to receive these key events. + +# Option "DontZoom" + +# Uncomment this to disable tuning with the xvidtune client. With +# it the client can still run and fetch card and monitor attributes, +# but it will not be allowed to change them. If it tries it will +# receive a protocol error. + +# Option "DisableVidModeExtension" + +# Uncomment this to enable the use of a non-local xvidtune client. + +# Option "AllowNonLocalXvidtune" + +# Uncomment this to disable dynamically modifying the input device +# (mouse and keyboard) settings. + +# Option "DisableModInDev" + +# Uncomment this to enable the use of a non-local client to +# change the keyboard or mouse settings (currently only xset). + +# Option "AllowNonLocalModInDev" + +# Set the basic blanking screen saver timeout. + +# Option "blank time" "10" # 10 minutes + +# Set the DPMS timeouts. These are set here because they are global +# rather than screen-specific. These settings alone don't enable DPMS. +# It is enabled per-screen (or per-monitor), and even then only when +# the driver supports it. + +# Option "standby time" "20" +# Option "suspend time" "30" +# Option "off time" "60" + +# On some platform the server needs to estimate the sizes of PCI +# memory and pio ranges. This is done by assuming that PCI ranges +# don't overlap. Some broken BIOSes tend to set ranges of inactive +# devices wrong. Here one can adjust how aggressive the assumptions +# should be. Default is 0. + +# Option "EstimateSizesAggresively" "0" + +EndSection + +# ********************************************************************** +# Input devices +# ********************************************************************** + +# ********************************************************************** +# Core keyboard's InputDevice section +# ********************************************************************** + +Section "InputDevice" + + Identifier "Keyboard1" + Driver "kbd" +# For most OSs the protocol can be omitted (it defaults to "Standard"). +# When using XQUEUE (only for SVR3 and SVR4, but not Solaris), +# uncomment the following line. + +# Option "Protocol" "Xqueue" + +# Set the keyboard auto repeat parameters. Not all platforms implement +# this. + +# Option "AutoRepeat" "500 5" + +# Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1)). + +# Option "Xleds" "1 2 3" + +# To disable the XKEYBOARD extension, uncomment XkbDisable. + +# Option "XkbDisable" + +# To customise the XKB settings to suit your keyboard, modify the +# lines below (which are the defaults). For example, for a European +# keyboard, you will probably want to use one of: +# +# Option "XkbModel" "pc102" +# Option "XkbModel" "pc105" +# +# If you have a Microsoft Natural keyboard, you can use: +# +# Option "XkbModel" "microsoft" +# +# If you have a US "windows" keyboard you will want: +# +# Option "XkbModel" "pc104" +# +# Then to change the language, change the Layout setting. +# For example, a german layout can be obtained with: +# +# Option "XkbLayout" "de" +# +# or: +# +# Option "XkbLayout" "de" +# Option "XkbVariant" "nodeadkeys" +# +# If you'd like to switch the positions of your capslock and +# control keys, use: +# +# Option "XkbOptions" "ctrl:swapcaps" + + +# These are the default XKB settings for X.Org +# +# Option "XkbRules" "xorg" +# Option "XkbModel" "pc105" +# Option "XkbLayout" "us" +# Option "XkbVariant" "" +# Option "XkbOptions" "" + +EndSection + + +# ********************************************************************** +# Core Pointer's InputDevice section +# ********************************************************************** + +Section "InputDevice" + +# Identifier and driver + + Identifier "Mouse1" + Driver "mouse" + +# On platforms where PnP mouse detection is supported the following +# protocol setting can be used when using a newer PnP mouse: + +# Option "Protocol" "Auto" + +# The available mouse protocols types that you can set below are: +# Auto BusMouse GlidePoint GlidePointPS/2 IntelliMouse IMPS/2 +# Logitech Microsoft MMHitTab MMSeries Mouseman MouseManPlusPS/2 +# MouseSystems NetMousePS/2 NetScrollPS/2 OSMouse PS/2 SysMouse +# ThinkingMouse ThinkingMousePS/2 Xqueue + Option "Protocol" "PS/2" + +# The mouse device. The device is normally set to /dev/mouse, +# which is usually a symbolic link to the real device. + + Option "Device" "/dev/mouse" +# Option "Device" "/dev/psaux" +# Option "Device" "/dev/ttyS0" +# Option "Device" "/dev/ttyS1" + +# When using XQUEUE, comment out the above two lines, and uncomment +# the following line. + +# Option "Protocol" "Xqueue" + +# Baudrate and SampleRate are only for some Logitech mice. In +# almost every case these lines should be omitted. + +# Option "BaudRate" "9600" +# Option "SampleRate" "150" + +# Emulate3Buttons is an option for 2-button Microsoft mice +# Emulate3Timeout is the timeout in milliseconds (default is 50ms) + +# Option "Emulate3Buttons" +# Option "Emulate3Timeout" "50" + +# ChordMiddle is an option for some 3-button Logitech mice + +# Option "ChordMiddle" + +EndSection + +# Some examples of extended input devices + +# Section "InputDevice" +# Identifier "spaceball" +# Driver "magellan" +# Option "Device" "/dev/cua0" +# EndSection +# +# Section "InputDevice" +# Identifier "spaceball2" +# Driver "spaceorb" +# Option "Device" "/dev/cua0" +# EndSection +# +# Section "InputDevice" +# Identifier "touchscreen0" +# Driver "microtouch" +# Option "Device" "/dev/ttyS0" +# Option "MinX" "1412" +# Option "MaxX" "15184" +# Option "MinY" "15372" +# Option "MaxY" "1230" +# Option "ScreenNumber" "0" +# Option "ReportingMode" "Scaled" +# Option "ButtonNumber" "1" +# Option "SendCoreEvents" +# EndSection +# +# Section "InputDevice" +# Identifier "touchscreen1" +# Driver "elo2300" +# Option "Device" "/dev/ttyS0" +# Option "MinX" "231" +# Option "MaxX" "3868" +# Option "MinY" "3858" +# Option "MaxY" "272" +# Option "ScreenNumber" "0" +# Option "ReportingMode" "Scaled" +# Option "ButtonThreshold" "17" +# Option "ButtonNumber" "1" +# Option "SendCoreEvents" +# EndSection + +# ********************************************************************** +# Monitor section +# ********************************************************************** + +# Any number of monitor sections may be present + +Section "Monitor" + + Identifier "My Monitor" + +# HorizSync is in kHz unless units are specified. +# HorizSync may be a comma separated list of discrete values, or a +# comma separated list of ranges of values. +# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S +# USER MANUAL FOR THE CORRECT NUMBERS. + + HorizSync 31.5 - 50.0 + +# HorizSync 30-64 # multisync +# HorizSync 31.5, 35.2 # multiple fixed sync frequencies +# HorizSync 15-25, 30-50 # multiple ranges of sync frequencies + +# VertRefresh is in Hz unless units are specified. +# VertRefresh may be a comma separated list of discrete values, or a +# comma separated list of ranges of values. +# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S +# USER MANUAL FOR THE CORRECT NUMBERS. + + VertRefresh 40-90 + +EndSection + + +# ********************************************************************** +# Graphics device section +# ********************************************************************** + +# Any number of graphics device sections may be present + +Section "Device" + Identifier "VESA Framebuffer" + Driver "fbdev" + #VideoRam 4096 + # Insert Clocks lines here if appropriate +EndSection + +# ********************************************************************** +# Screen sections +# ********************************************************************** + +# Any number of screen sections may be present. Each describes +# the configuration of a single screen. A single specific screen section +# may be specified from the X server command line with the "-screen" +# option. +Section "Screen" + Identifier "Screen 1" + Device "VESA Framebuffer" + Monitor "My Monitor" + +# You shouldn't need to set a default depth as the server will use +# whatever the framebuffer is set to. If you insist on setting it, make +# sure it matches the setting for your framebuffer. +# DefaultDepth 8 + + Subsection "Display" + Depth 8 + EndSubsection + Subsection "Display" + Depth 16 + EndSubsection + Subsection "Display" + Depth 24 + EndSubsection + Subsection "Display" + Depth 32 + EndSubsection + +EndSection + +# ********************************************************************** +# ServerLayout sections. +# ********************************************************************** + +# Any number of ServerLayout sections may be present. Each describes +# the way multiple screens are organised. A specific ServerLayout +# section may be specified from the X server command line with the +# "-layout" option. In the absence of this, the first section is used. +# When now ServerLayout section is present, the first Screen section +# is used alone. + +Section "ServerLayout" + +# The Identifier line must be present + Identifier "Simple Layout" + +# Each Screen line specifies a Screen section name, and optionally +# the relative position of other screens. The four names after +# primary screen name are the screens to the top, bottom, left and right +# of the primary screen. In this example, screen 2 is located to the +# right of screen 1. + + Screen "Screen 1" + +# Each InputDevice line specifies an InputDevice section name and +# optionally some options to specify the way the device is to be +# used. Those options include "CorePointer", "CoreKeyboard" and +# "SendCoreEvents". + + InputDevice "Mouse1" "CorePointer" + InputDevice "Keyboard1" "CoreKeyboard" + +EndSection + diff --git a/source/x/x11-skel/scripts/xorg.conf-vesa b/source/x/x11-skel/scripts/xorg.conf-vesa new file mode 100644 index 000000000..33325c468 --- /dev/null +++ b/source/x/x11-skel/scripts/xorg.conf-vesa @@ -0,0 +1,484 @@ +# File generated by xf86config. + +# +# Copyright (c) 1999 by The XFree86 Project, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Except as contained in this notice, the name of the XFree86 Project shall +# not be used in advertising or otherwise to promote the sale, use or other +# dealings in this Software without prior written authorization from the +# XFree86 Project. +# + +# ********************************************************************** +# Refer to the XF86Config(4/5) man page for details about the format of +# this file. +# ********************************************************************** + +# NOTE: This is a NEW IMPROVED version of XF86Config-fbdev that uses the vesa +# driver instead of the fbdev driver. Thanks to Kenneth Fanyo who pointed +# this out to me. :) + +# This XF86Config file is designed for use with the VESA framebuffer. +# This generic interface should work with nearly all video cards +# (although not every card will support every resolution). + +# With the new driver, it should no longer be required to have frame buffer +# support in the kernel, or to run it on the console. +# +# Enjoy! :) +# -- volkerdi@slackware.com +# + +# ********************************************************************** +# Module section -- this section is used to specify +# which dynamically loadable modules to load. +# ********************************************************************** +# +Section "Module" + +# This loads the DBE extension module. + + Load "dbe" # Double buffer extension + +# This loads the miscellaneous extensions module, and disables +# initialisation of the XFree86-DGA extension within that module. + SubSection "extmod" + Option "omit xfree86-dga" # don't initialise the DGA extension + EndSubSection + +# This loads the font modules + Load "type1" + Load "freetype" + #Load "speedo" + +# This loads the GLX module + Load "glx" + +EndSection + +# ********************************************************************** +# Files section. This allows default font and rgb paths to be set +# ********************************************************************** + +Section "Files" + +# The location of the RGB database. Note, this is the name of the +# file minus the extension (like ".txt" or ".db"). There is normally +# no need to change the default. + + RgbPath "/usr/share/X11/rgb" + +# Multiple FontPath entries are allowed (which are concatenated together), +# as well as specifying multiple comma-separated entries in one FontPath +# command (or a combination of both methods) +# +# If you don't have a floating point coprocessor and emacs, Mosaic or other +# programs take long to start up, try moving the Type1 and Speedo directory +# to the end of this list (or comment them out). +# + + FontPath "/usr/share/fonts/local/" + FontPath "/usr/share/fonts/misc/" + FontPath "/usr/share/fonts/OTF/" + FontPath "/usr/share/fonts/TTF/" + FontPath "/usr/share/fonts/Type1/" + FontPath "/usr/share/fonts/CID/" + FontPath "/usr/share/fonts/Speedo/" + FontPath "/usr/share/fonts/75dpi/:unscaled" + FontPath "/usr/share/fonts/100dpi/:unscaled" + FontPath "/usr/share/fonts/75dpi/" + FontPath "/usr/share/fonts/100dpi/" + FontPath "/usr/share/fonts/cyrillic/" + +# ModulePath can be used to set a search path for the X server modules. +# The default path is shown here. + +# ModulePath "/usr/lib/xorg/modules" + +EndSection + +# ********************************************************************** +# Server flags section. +# ********************************************************************** + +Section "ServerFlags" + +# Uncomment this to cause a core dump at the spot where a signal is +# received. This may leave the console in an unusable state, but may +# provide a better stack trace in the core dump to aid in debugging + +# Option "NoTrapSignals" + +# Uncomment this to disable the VT switch sequence +# (where n is 1 through 12). This allows clients to receive these key +# events. + +# Option "DontVTSwitch" + +# Uncomment this to disable the server abort sequence +# This allows clients to receive this key event. + +# Option "DontZap" + +# Uncomment this to disable the / mode switching +# sequences. This allows clients to receive these key events. + +# Option "DontZoom" + +# Uncomment this to disable tuning with the xvidtune client. With +# it the client can still run and fetch card and monitor attributes, +# but it will not be allowed to change them. If it tries it will +# receive a protocol error. + +# Option "DisableVidModeExtension" + +# Uncomment this to enable the use of a non-local xvidtune client. + +# Option "AllowNonLocalXvidtune" + +# Uncomment this to disable dynamically modifying the input device +# (mouse and keyboard) settings. + +# Option "DisableModInDev" + +# Uncomment this to enable the use of a non-local client to +# change the keyboard or mouse settings (currently only xset). + +# Option "AllowNonLocalModInDev" + +# Set the basic blanking screen saver timeout. + +# Option "blank time" "10" # 10 minutes + +# Set the DPMS timeouts. These are set here because they are global +# rather than screen-specific. These settings alone don't enable DPMS. +# It is enabled per-screen (or per-monitor), and even then only when +# the driver supports it. + +# Option "standby time" "20" +# Option "suspend time" "30" +# Option "off time" "60" + +# On some platform the server needs to estimate the sizes of PCI +# memory and pio ranges. This is done by assuming that PCI ranges +# don't overlap. Some broken BIOSes tend to set ranges of inactive +# devices wrong. Here one can adjust how aggressive the assumptions +# should be. Default is 0. + +# Option "EstimateSizesAggresively" "0" + +EndSection + +# ********************************************************************** +# Input devices +# ********************************************************************** + +# ********************************************************************** +# Core keyboard's InputDevice section +# ********************************************************************** + +Section "InputDevice" + + Identifier "Keyboard1" + Driver "kbd" +# For most OSs the protocol can be omitted (it defaults to "Standard"). +# When using XQUEUE (only for SVR3 and SVR4, but not Solaris), +# uncomment the following line. + +# Option "Protocol" "Xqueue" + +# Set the keyboard auto repeat parameters. Not all platforms implement +# this. + +# Option "AutoRepeat" "500 5" + +# Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1)). + +# Option "Xleds" "1 2 3" + +# To disable the XKEYBOARD extension, uncomment XkbDisable. + +# Option "XkbDisable" + +# To customise the XKB settings to suit your keyboard, modify the +# lines below (which are the defaults). For example, for a European +# keyboard, you will probably want to use one of: +# +# Option "XkbModel" "pc102" +# Option "XkbModel" "pc105" +# +# If you have a Microsoft Natural keyboard, you can use: +# +# Option "XkbModel" "microsoft" +# +# If you have a US "windows" keyboard you will want: +# +# Option "XkbModel" "pc104" +# +# Then to change the language, change the Layout setting. +# For example, a german layout can be obtained with: +# +# Option "XkbLayout" "de" +# +# or: +# +# Option "XkbLayout" "de" +# Option "XkbVariant" "nodeadkeys" +# +# If you'd like to switch the positions of your capslock and +# control keys, use: +# +# Option "XkbOptions" "ctrl:swapcaps" + + +# These are the default XKB settings for X.Org +# +# Option "XkbRules" "xorg" +# Option "XkbModel" "pc105" +# Option "XkbLayout" "us" +# Option "XkbVariant" "" +# Option "XkbOptions" "" + +EndSection + + +# ********************************************************************** +# Core Pointer's InputDevice section +# ********************************************************************** + +Section "InputDevice" + +# Identifier and driver + + Identifier "Mouse1" + Driver "mouse" + +# On platforms where PnP mouse detection is supported the following +# protocol setting can be used when using a newer PnP mouse: + +# Option "Protocol" "Auto" + +# The available mouse protocols types that you can set below are: +# Auto BusMouse GlidePoint GlidePointPS/2 IntelliMouse IMPS/2 +# Logitech Microsoft MMHitTab MMSeries Mouseman MouseManPlusPS/2 +# MouseSystems NetMousePS/2 NetScrollPS/2 OSMouse PS/2 SysMouse +# ThinkingMouse ThinkingMousePS/2 Xqueue + Option "Protocol" "PS/2" + +# The mouse device. The device is normally set to /dev/mouse, +# which is usually a symbolic link to the real device. + + Option "Device" "/dev/mouse" +# Option "Device" "/dev/psaux" +# Option "Device" "/dev/ttyS0" +# Option "Device" "/dev/ttyS1" + +# When using XQUEUE, comment out the above two lines, and uncomment +# the following line. + +# Option "Protocol" "Xqueue" + +# Baudrate and SampleRate are only for some Logitech mice. In +# almost every case these lines should be omitted. + +# Option "BaudRate" "9600" +# Option "SampleRate" "150" + +# Emulate3Buttons is an option for 2-button Microsoft mice +# Emulate3Timeout is the timeout in milliseconds (default is 50ms) + +# Option "Emulate3Buttons" +# Option "Emulate3Timeout" "50" + +# ChordMiddle is an option for some 3-button Logitech mice + +# Option "ChordMiddle" + +EndSection + +# Some examples of extended input devices + +# Section "InputDevice" +# Identifier "spaceball" +# Driver "magellan" +# Option "Device" "/dev/cua0" +# EndSection +# +# Section "InputDevice" +# Identifier "spaceball2" +# Driver "spaceorb" +# Option "Device" "/dev/cua0" +# EndSection +# +# Section "InputDevice" +# Identifier "touchscreen0" +# Driver "microtouch" +# Option "Device" "/dev/ttyS0" +# Option "MinX" "1412" +# Option "MaxX" "15184" +# Option "MinY" "15372" +# Option "MaxY" "1230" +# Option "ScreenNumber" "0" +# Option "ReportingMode" "Scaled" +# Option "ButtonNumber" "1" +# Option "SendCoreEvents" +# EndSection +# +# Section "InputDevice" +# Identifier "touchscreen1" +# Driver "elo2300" +# Option "Device" "/dev/ttyS0" +# Option "MinX" "231" +# Option "MaxX" "3868" +# Option "MinY" "3858" +# Option "MaxY" "272" +# Option "ScreenNumber" "0" +# Option "ReportingMode" "Scaled" +# Option "ButtonThreshold" "17" +# Option "ButtonNumber" "1" +# Option "SendCoreEvents" +# EndSection + +# ********************************************************************** +# Monitor section +# ********************************************************************** + +# Any number of monitor sections may be present + +Section "Monitor" + + Identifier "My Monitor" + +# HorizSync is in kHz unless units are specified. +# HorizSync may be a comma separated list of discrete values, or a +# comma separated list of ranges of values. +# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S +# USER MANUAL FOR THE CORRECT NUMBERS. + + HorizSync 31.5 - 50.0 + +# HorizSync 30-64 # multisync +# HorizSync 31.5, 35.2 # multiple fixed sync frequencies +# HorizSync 15-25, 30-50 # multiple ranges of sync frequencies + +# VertRefresh is in Hz unless units are specified. +# VertRefresh may be a comma separated list of discrete values, or a +# comma separated list of ranges of values. +# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S +# USER MANUAL FOR THE CORRECT NUMBERS. + + VertRefresh 40-90 + +EndSection + + +# ********************************************************************** +# Graphics device section +# ********************************************************************** + +# Any number of graphics device sections may be present + +Section "Device" + Identifier "VESA Framebuffer" + Driver "vesa" + #VideoRam 4096 + # Insert Clocks lines here if appropriate +EndSection + +# ********************************************************************** +# Screen sections +# ********************************************************************** + +# Any number of screen sections may be present. Each describes +# the configuration of a single screen. A single specific screen section +# may be specified from the X server command line with the "-screen" +# option. +Section "Screen" + Identifier "Screen 1" + Device "VESA Framebuffer" + Monitor "My Monitor" + +# If your card can handle it, a higher default color depth (like 24 or 32) +# is highly recommended. + +# DefaultDepth 8 +# DefaultDepth 16 + DefaultDepth 24 +# DefaultDepth 32 + +# "1024x768" is also a conservative usable default resolution. If you +# have a better monitor, feel free to try resolutions such as +# "1152x864", "1280x1024", "1600x1200", and "1800x1400" (or whatever your +# card/monitor can produce) + + Subsection "Display" + Depth 8 + Modes "1024x768" "800x600" "640x480" + EndSubsection + Subsection "Display" + Depth 16 + Modes "1024x768" "800x600" "640x480" + EndSubsection + Subsection "Display" + Depth 24 + Modes "1024x768" "800x600" "640x480" + EndSubsection + Subsection "Display" + Depth 32 + Modes "1024x768" "800x600" "640x480" + EndSubsection + +EndSection + +# ********************************************************************** +# ServerLayout sections. +# ********************************************************************** + +# Any number of ServerLayout sections may be present. Each describes +# the way multiple screens are organised. A specific ServerLayout +# section may be specified from the X server command line with the +# "-layout" option. In the absence of this, the first section is used. +# When now ServerLayout section is present, the first Screen section +# is used alone. + +Section "ServerLayout" + +# The Identifier line must be present + Identifier "Simple Layout" + +# Each Screen line specifies a Screen section name, and optionally +# the relative position of other screens. The four names after +# primary screen name are the screens to the top, bottom, left and right +# of the primary screen. In this example, screen 2 is located to the +# right of screen 1. + + Screen "Screen 1" + +# Each InputDevice line specifies an InputDevice section name and +# optionally some options to specify the way the device is to be +# used. Those options include "CorePointer", "CoreKeyboard" and +# "SendCoreEvents". + + InputDevice "Mouse1" "CorePointer" + InputDevice "Keyboard1" "CoreKeyboard" + +EndSection + diff --git a/source/x/x11-skel/scripts/xorgsetup b/source/x/x11-skel/scripts/xorgsetup new file mode 100644 index 000000000..5a111dd67 --- /dev/null +++ b/source/x/x11-skel/scripts/xorgsetup @@ -0,0 +1,338 @@ +#!/bin/sh +# Copyright 2001 BSDi, Inc, Concord, CA. Written by volkerdi@slackware.com. +# Copyright 2004 Slackware Linux, Inc., Concord, CA. +# Copyright 2006 Patrick Volkerding, Sebeka, MN. +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + + +# These functions will spit out code to ask for Keyboard Model/Layout/Variant +# Options +# They are pretty much identical, but the text message changes and they parse +# different parts of the same file. +dump_keyboard_model() +{ + echo -n "dialog --title \"SELECT YOUR KEYBOARD MODEL\" --menu \"It is recomended to choose the default keyboard (\\\"pc101\\\") unless you know your keyboard model and it is present in this list. Also note the keyboard model is not the same thing as the keyboard layout (the keyboard layout defaults to \\\"pc105\\\" which is usually correct)\" 21 68 10 " + CAN_START_PARSING=0 + while read LINE ; do + if [[ $LINE == "! model" ]]; then + CAN_START_PARSING=1 + elif [[ $CAN_START_PARSING == 1 ]]; then + if [[ $LINE =~ "^!.*" ]]; then + break + fi + if ! echo $LINE | grep '^//' 1> /dev/null ; then + echo -n $LINE | sed -e's/\s*\([A-Za-z0-9_]\+\)\s\+\(.\+\)$/"\1" "\2" /g' + fi + fi + done < /etc/X11/xkb/rules/xorg.lst + echo " 2> \$TMP/keybmodel" + echo "return \$?" +} + +dump_keyboard_layout() +{ + echo -n "dialog --title \"SELECT YOUR $1 KEYBOARD LAYOUT\" --menu \"The keyboard layout supports the language \ +that is normally used on this keyboard. You would usually select a similar keyboard layout \ +to what you choose for the console. (Defaults to \\\"us\\\") You can select up to 4 different layouts.\" 21 60 10 " + if [ ! $1 = "MAIN" ]; then + echo -n \"none\" \"Do not select an additional layout\"" " + fi + CAN_START_PARSING=0 + while read LINE ; do + if [[ $LINE == "! layout" ]]; then + CAN_START_PARSING=1 + elif [[ $CAN_START_PARSING == 1 ]]; then + if [[ $LINE =~ "^!.*" ]]; then + break + fi + if ! echo $LINE | grep '^//' 1> /dev/null ; then + echo -n $LINE | sed -e's/\s*\([A-Za-z0-9_]\+\)\s\+\(.\+\)$/'\''\1'\'' '\''\2'\'' /g' + fi + fi + done < /etc/X11/xkb/rules/xorg.lst + echo " 2> \$TMP/keyblayout " + echo "return \$?" +} + +# Note: This receives as a parameter the selected layout. +dump_keyboard_variant() +{ + # IMPORTANT: This function only works with X.org 6.9 rules. I haven't + # tested it with 7.0+, but it should be the same format, so it should work. + # This WILL NOT work with X.org 6.8.x (it just has one variant, anyway). + if ! grep "${1}:" /etc/X11/xkb/rules/xorg.lst 1> /dev/null; then + # This keyboard layout doesn't have any variants. + # Lets dump a dummy script instead. + echo "echo none > \$TMP/keybvariant" + echo "return 1" + return + fi + echo -n "dialog --title \"SELECT YOUR KEYBOARD LAYOUT VARIANT\" --menu \"There are some variations \ +avaiable for keyboard layout \\\"$1\\\".\nSelect the one your keyboard uses or none if \ +your keyboard doesn't use a layout variant. If in doubt, select none. (Defaults to \\\"none\\\")\" 15 67 5 " + echo -n \"none\" \"Do not select a layout variant\"" " + grep "${1}:" /etc/X11/xkb/rules/xorg.lst | while read LINE ; do + # This may look scary, but it's a simple pattern, the problem is all + # those things which need to be escaped... + echo -n $LINE | sed -e's/\s*\([A-Za-z0-9_-]\+\)\s\+\('${1}':\)\s\+\(.\+\)$/'\''\1'\'' '\''\3'\'' /g' + done + echo " 2> \$TMP/keybvariant" + echo "return \$?" +} + +dump_keyboard_option() +{ + echo -n "dialog --title \"SELECT YOUR KEYBOARD OPTIONS\" --menu \"Select additional keyboard options. You may continue to select additional options until you select 'none'.\" 18 72 10 " + echo -n \"none\" \"Finished: do not select additional options.\"" " + CAN_START_PARSING=0 + while read LINE ; do + if [[ $LINE == "! option" ]]; then + CAN_START_PARSING=1 + elif [[ $CAN_START_PARSING == 1 ]]; then + if [[ $LINE =~ "^!.*" ]]; then + break + fi + if ! echo $LINE | grep '^//' 1> /dev/null ; then + if echo $LINE | grep ':' 1> /dev/null ; then + echo -n $LINE | sed -e's/\s*\([A-Za-z0-9_]\+\)\s\+\(.\+\)$/"\1" "\2" /g' + fi + fi + fi + done < /etc/X11/xkb/rules/xorg.lst + echo " 2> \$TMP/keyboption " + echo "return \$?" +} + +# If we aren't root, bail: +if [ "$USER" = "root" ]; then + TMP=/var/log/setup/tmp +else + echo "Only root can configure X." + exit +fi + +# Now, this wouldn't make much sense either: +if [ ! -r /usr/X11R6/bin/Xorg ]; then + exit +fi + +dialog --title "CONFIGURE X SERVER?" --yesno \ +"If you like, X can attempt to probe for your video hardware and mouse, and \ +write an initial configuration file to /etc/X11/xorg.conf. Would you like to do \ +this now?" 7 66 +if [ ! $? = 0 ]; then + exit +fi + +if [ ! -d $TMP ]; then + mkdir -p $TMP + chmod 700 $TMP +fi + +# OK, we'll warn the user if there's already an existing xorg.conf: +CONFIG_EXISTS=false +for xf86config in /etc/X11/xorg.conf /etc/xorg.conf /usr/X11R6/lib/X11/xorg.conf $HOME/xorg.conf ; do + if [ -r $xf86config ]; then + CONFIG_EXISTS=$xf86config + fi +done +if [ ! "$CONFIG_EXISTS" = "false" ]; then + dialog --title "FOUND EXISTING xorg.conf in `dirname $CONFIG_EXISTS`" \ + --msgbox "A previous X Window System configuration file has been found. \ +You can now reconfigure X, replacing the file with a new version (and \ +keeping a backup of the old file), or you can abort leaving the existing \ +config file in place. Hit ENTER to rename the xorg.conf file to \ +xorg.conf.backup and create a new one, or ESC to abort." 9 72 + if [ ! $? = 0 ]; then + exit + fi +fi + +# Have the X server create a default config file: +/usr/X11R6/bin/X -configure +if [ ! $? = 0 ]; then + # failure, bail. + exit +fi + +# Move any existing config file(s) aside: +for xf86config in /etc/X11/xorg.conf /etc/xorg.conf /usr/X11R6/lib/X11/xorg.conf $HOME/xorg.conf ; do + if [ -r $xf86config ]; then + mv $xf86config ${xf86config}.backup + fi +done + +# OK, so now that we have a default file in $HOME/xorg.conf.new +# we can set up a default color depth: +dialog --title "SELECT DEFAULT COLOR DEPTH" \ + --menu "Now you may select a default color depth for the X server:" 13 70 6 \ + "24" "24 bit True Color" \ + "16" "16 bit Pseudo Color" \ + "8" "8 bit 256 Color" \ + "4" "4 bit 16 Color" \ + "1" "1 bit Mono B/W" \ + "none" "Go with driver default (usually 8-bit)" 2> $TMP/colordepth +if [ ! $? = 0 ]; then + rm -f $TMP/colordepth + exit +fi + +if grep Driver $HOME/xorg.conf.new | grep \"kbd\" 1> /dev/null ; then + dump_keyboard_model > $TMP/askmodel + . $TMP/askmodel + # The configuration will continue, using Xorg defaults, when the user + # hits ESC or cancel. + if [ $? = 0 ]; then + KBMODEL=`cat $TMP/keybmodel` + fi + for i in "MAIN" "SECOND" "THIRD" "FOURTH"; do + dump_keyboard_layout $i > $TMP/asklayout + . $TMP/asklayout + if [ ! $? = 0 ]; then + break + else + KBLAYOUT=`cat $TMP/keyblayout` + if [ $KBLAYOUT = "none" ]; then + break + fi + if [ ! $KBLAYOUTS = "" ]; then + KBLAYOUTS=$KBLAYOUTS,$KBLAYOUT + else + KBLAYOUTS=$KBLAYOUT + fi + dump_keyboard_variant $KBLAYOUT > $TMP/askvariant + . $TMP/askvariant + if [ ! $? = 0 ]; then + KBVARIANT="none" + else + KBVARIANT=`cat $TMP/keybvariant` + if [ ! $KBVARIANT = "none" ]; then + KBLAYOUTS="$KBLAYOUTS($KBVARIANT)" + fi + fi + fi + done + KBLAYOUT=$KBLAYOUTS +# if [ ! $KBLAYOUT = "us" ]; then + dump_keyboard_option > $TMP/askoption + while [ 1 ]; do + . $TMP/askoption + if [ ! $? = 0 ]; then + break + else + KBOPTION=`cat $TMP/keyboption` + if [ $KBOPTION = "none" ]; then + break + fi + if [ ! $KBOPTIONS = "" ]; then + KBOPTIONS=$KBOPTIONS,$KBOPTION + else + KBOPTIONS=$KBOPTION + fi + fi + done +# fi + rm -f $TMP/{ask,keyb}{model,layout,variant,option} +fi + +# /* I know this completely hoses the indentation of the xorg.conf file, but +# really don't know a good way around that. Shoulda used perl. ;) */ +# NOTE: Thanks to Jonathan Woithe for the IFS fix for output formatting! +START_LOOKING_MONITOR=false +START_LOOKING_MOUSE=false +rm -f /etc/X11/xorg.conf +REAL_IFS=${IFS} +IFS="" +cat $HOME/xorg.conf.new | while read LINE ; do + IFS=${REAL_IFS} + if [ ! "$START_LOOKING_MOUSE" = "true" ]; then + # When looking for a mouse entry we want to write before the EndSection + # mark. + echo "$LINE" >> /etc/X11/xorg.conf + fi + if echo $LINE | grep Section | grep Screen 1> /dev/null ; then + START_LOOKING_MONITOR=true + fi + if [ "$START_LOOKING_MONITOR" = "true" ]; then + if echo $LINE | grep Monitor 1> /dev/null ; then + if [ ! "`cat $TMP/colordepth`" = "none" ]; then + echo -e "\tDefaultDepth `cat $TMP/colordepth`" >> /etc/X11/xorg.conf + fi + START_LOOKING_MONITOR=false + fi + fi + if echo $LINE | grep Driver | grep \"kbd\" 1> /dev/null ; then + # This is a keyboard, lets add the configuration which might have been + # given by the user + if [ ! "$KBMODEL" = "" ]; then + echo -e "\tOption \"XkbModel\" \"$KBMODEL\"" >> /etc/X11/xorg.conf + fi + if [ ! "$KBLAYOUT" = "" ]; then + echo -e "\tOption \"XkbLayout\" \"$KBLAYOUT\"" >> /etc/X11/xorg.conf +# KBVARIANT in KBLAYOUT +# if [ ! "$KBVARIANT" = "none" ]; then +# echo -e "\tOption \"XkbVariant\" \"$KBVARIANT\"" >> /etc/X11/xorg.conf +# fi + fi + if [ ! "$KBOPTIONS" = "" ]; then + echo -e "\tOption \"XkbOptions\" \"$KBOPTIONS\"" >> /etc/X11/xorg.conf + fi + elif echo $LINE | grep Driver | grep \"mouse\" 1> /dev/null ; then + # This is a mouse, lets take a look and check if X was able to configure + # the wheel, otherwize we'll ask the all knowing root. + # If there's a mouse and X didn't detect a wheel, then we ask the user if his + # mouse has a wheel and enable it if so. This should fix the times when X + # doesn't configure the mouse wheel. + START_LOOKING_MOUSE=true + elif [ "$START_LOOKING_MOUSE" = "true" ]; then + if echo $LINE | grep Option | grep \"Device\" 1> /dev/null ; then + MOUSE_NAME=`echo $LINE | sed -e's/\s*//' | sed -e's/\s\+/\t/g' | cut -f 3` + elif echo $LINE | grep ZAxisMapping 1> /dev/null ; then + # X was able to configure the mouse properly, we stop looking for a + # mouse. + START_LOOKING_MOUSE=false + elif echo $LINE | grep EndSection 1> /dev/null ; then + # We reached the end of the section, and didn't find a ZAxisMapping, + # lets ask the all-knowing user. + dialog --title "ADD MOUSE WHEEL SUPPORT" \ + --yesno "Does your mouse (${MOUSE_NAME}) have a wheel and if so, would you like to have it enabled?" 6 60 + if [ $? = 0 ]; then + echo -e "\tOption \"ZAxisMapping\" \"4 5\"" >> /etc/X11/xorg.conf + fi + MOUSE_NAME= + START_LOOKING_MOUSE=false + fi + echo "$LINE" >> /etc/X11/xorg.conf + fi + IFS="" +done +IFS=${REAL_IFS} +rm -f $TMP/colordepth +rm -f $HOME/xorg.conf.new + +dialog --title "X CONFIGURED" \ + --msgbox "Your new X configuration file has been saved to /etc/X11/xorg.conf. \ +You may still need to add or adjust some values in the file to achieve the desired \ +screen resolution. For example, some monitors would require \"HorizSync 30-55\" in \ +the \"Monitor\" section of the configuration file. For complete information about \ +making these adjustments, please refer to \"man xorg.conf\"." \ + 11 66 + diff --git a/source/x/x11-skel/scripts/xwmconfig b/source/x/x11-skel/scripts/xwmconfig new file mode 100644 index 000000000..944207bf5 --- /dev/null +++ b/source/x/x11-skel/scripts/xwmconfig @@ -0,0 +1,224 @@ +#!/bin/sh +# Copyright 1999, 2002 Patrick Volkerding, Moorhead, Minnesota USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# First, let's bail if our being here doesn't make sense: +if [ ! -d /etc/X11/xinit ]; then + exit +fi +if [ "`cd /etc/X11/xinit ; echo *.*`" = '*.*' ]; then + exit +fi + +if [ "$USER" = "root" ]; then + TMP=/var/log/setup/tmp +else + TMP=$HOME/.xwmconfig +fi + +if [ ! -d $TMP ]; then + mkdir -p $TMP + chmod 700 $TMP +fi + +# Do we already have an existing default? +unset PRESELECT +if [ -L /etc/X11/xinit/xinitrc ]; then + CURRENT="`/bin/ls -l /etc/X11/xinit/xinitrc | cut -f 2 -d '>' | cut -b2-`" + PRESELECT=" --default-item $CURRENT " +fi + +# Figure out who we are and set up some background information: +if [ "$USER" = "root" ]; then + BACKTITLE="--backtitle \"Setting system-wide default window manager in /etc/X11/xinit/\"" +else + BACKTITLE="--backtitle \"Setting default window manager in $HOME/.xinitrc\"" +fi + +# This stops --backtitle from cluttering the initial install: +if [ ! -r /proc/kcore ]; then + BACKTITLE="" +fi + +# Remove any previous script: +rm -f $TMP/tmpscript.sh + +# Add the top of the script: +if [ -r /etc/X11/xinit/xinitrc.gnome -a -r /etc/X11/xinit/xinitrc.kde ]; then +cat << EOF > $TMP/tmpscript.sh +#!/bin/sh +dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR X" $PRESELECT --menu \\ +"Please select the default window manager to use with the X Window \\ +System. This will define the style of graphical user interface \\ +the computer uses. KDE and GNOME provide the most features. People \\ +with Windows or MacOS experience will find either one easy to use. \\ +Other window managers are easier on system \\ +resources, or provide other unique features." 12 74 0 \\ +EOF +elif [ -r /etc/X11/xinit/xinitrc.kde ]; then +cat << EOF > $TMP/tmpscript.sh +#!/bin/sh +dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR X" $PRESELECT --menu \\ +"Please select the default window manager to use with the X Window \\ +System. This will define the style of graphical user interface \\ +the computer uses. KDE provides the most features, and people \\ +with Windows or MacOS experience will find it easy to use. \\ +Other window managers are easier on system \\ +resources, or provide other unique features." 12 74 0 \\ +EOF +elif [ -r /etc/X11/xinit/xinitrc.xfce ]; then +cat << EOF > $TMP/tmpscript.sh +#!/bin/sh +dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR X" $PRESELECT --menu \\ +"Please select the default window manager to use with the X Window \\ +System. This will define the style of graphical user interface \\ +the computer uses. XFce provides the most features, and people \\ +with Windows or MacOS experience will find it easy to use. \\ +Other window managers are easier on system \\ +resources, or provide other unique features." 12 74 0 \\ +EOF +else +cat << EOF > $TMP/tmpscript.sh +dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR X" $PRESELECT --menu \\ +"Please select the default window manager to use with the X Window \\ +System. This will define the style of graphical user interface \\ +the computer uses." 12 74 0 \\ +EOF +fi + +# Add KDE as the first and default entry: +if [ -r /etc/X11/xinit/xinitrc.kde ]; then + echo "\"xinitrc.kde\" \"KDE: K Desktop Environment\" \\" >> $TMP/tmpscript.sh +fi + +# Then, we add GNOME: +if [ -r /etc/X11/xinit/xinitrc.gnome ]; then + echo "\"xinitrc.gnome\" \"GNU Network Object Model Environment\" \\" >> $TMP/tmpscript.sh +fi + +# Add XFce: +if [ -r /etc/X11/xinit/xinitrc.xfce ]; then + echo "\"xinitrc.xfce\" \"The Cholesterol Free Desktop Environment\" \\" >> $TMP/tmpscript.sh +fi + +# Add Enlightenment: +if [ -r /etc/X11/xinit/xinitrc.e ]; then + echo "\"xinitrc.e\" \"Enlightenment\" \\" >> $TMP/tmpscript.sh +fi + +# Add Fluxbox: +if [ -r /etc/X11/xinit/xinitrc.fluxbox ]; then + echo "\"xinitrc.fluxbox\" \"The fluxbox window manager\" \\" >> $TMP/tmpscript.sh +fi + +# Add Blackbox: +if [ -r /etc/X11/xinit/xinitrc.blackbox ]; then + echo "\"xinitrc.blackbox\" \"The blackbox window manager\" \\" >> $TMP/tmpscript.sh +fi + +# Add WindowMaker: +if [ -r /etc/X11/xinit/xinitrc.wmaker ]; then + echo "\"xinitrc.wmaker\" \"WindowMaker\" \\" >> $TMP/tmpscript.sh +fi + +# Add FVWM2: +if [ -r /etc/X11/xinit/xinitrc.fvwm2 ]; then + echo "\"xinitrc.fvwm2\" \"F(?) Virtual Window Manager (version 2.xx)\" \\" >> $TMP/tmpscript.sh +fi + +# Add FVWM95: +if [ -r /etc/X11/xinit/xinitrc.fvwm95 ]; then + echo "\"xinitrc.fvwm95\" \"FVWM2 with a Windows look and feel\" \\" >> $TMP/tmpscript.sh +fi + +# Add icewm: +if [ -r /etc/X11/xinit/xinitrc.icewm ]; then + echo "\"xinitrc.icewm\" \"ICE Window Manager\" \\" >> $TMP/tmpscript.sh +fi + +# Add sawfish: +if [ -r /etc/X11/xinit/xinitrc.sawfish ]; then + echo "\"xinitrc.sawfish\" \"Sawfish without GNOME\" \\" >> $TMP/tmpscript.sh +fi + +# Add twm: +if [ -r /etc/X11/xinit/xinitrc.twm ]; then + echo "\"xinitrc.twm\" \"Tab Window Manager (very basic)\" \\" >> $TMP/tmpscript.sh +fi + +# Add mwm: +if [ -r /etc/X11/xinit/xinitrc.mwm ]; then + echo "\"xinitrc.mwm\" \"Motif WM\" \\" >> $TMP/tmpscript.sh +fi + +# Now, add support for the other window managers: +( cd /etc/X11/xinit + for file in xinitrc.* ; do + if [ ! "$file" = "xinitrc.kde" -a ! "$file" = "xinitrc.gnome" \ + -a ! "$file" = "xinitrc.e" -a ! "$file" = "xinitrc.wmaker" \ + -a ! "$file" = "xinitrc.fvwm2" -a ! "$file" = "xinitrc.fvwm95" \ + -a ! "$file" = "xinitrc.icewm" -a ! "$file" = "xinitrc.twm" \ + -a ! "$file" = "xinitrc.mwm" -a ! "$file" = "xinitrc.xfce" \ + -a ! "$file" = "xinitrc.blackbox" -a ! "$file" = "xinitrc.fluxbox" \ + -a ! "$file" = "xinitrc.sawfish" ]; then + echo "\"$file\" \"$file\" \\" >> $TMP/tmpscript.sh + fi + done +) + +# Then, the tail end: +cat << EOF >> $TMP/tmpscript.sh +2> $TMP/output +if [ ! \$? = 0 ]; then + rm -f $TMP/output + echo "Canceled." + exit +fi +EOF + +sh $TMP/tmpscript.sh + +if [ ! -r $TMP/output ]; then + rm -f $TMP/tmpscript.sh + exit +fi + +OUTPUT=`cat $TMP/output` + +# If xwmconfig is run by root, it changes the system-wide default for users +# that do not have a $HOME/.xinitrc: +if [ "$USER" = "root" ]; then + if [ -r /etc/X11/xinit/$OUTPUT ]; then + ( cd /etc/X11/xinit ; rm -f xinitrc ; ln -sf $OUTPUT xinitrc ) + fi +fi + +# Also set up a new $HOME/.xinitrc: +if [ -r /etc/X11/xinit/$OUTPUT -a ! "$HOME" = "/" ]; then + if [ -r $HOME/.xinitrc ]; then + rm -f $HOME/.xinitrc-backup + mv $HOME/.xinitrc $HOME/.xinitrc-backup + fi + cat /etc/X11/xinit/$OUTPUT > $HOME/.xinitrc +fi + +rm -f $TMP/tmpscript.sh $TMP/output + diff --git a/source/x/x11-skel/slack-desc b/source/x/x11-skel/slack-desc new file mode 100644 index 000000000..c4d1de4d1 --- /dev/null +++ b/source/x/x11-skel/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-skel: x11-skel (Miscellaneous things required for X) +x11-skel: +x11-skel: These are some symlinks needed by X11 after moving some files and +x11-skel: directories to conform with the Linux FHS. For example, the fonts +x11-skel: are now in the /usr/share/fonts directory, and this package makes +x11-skel: a symlink to there from /usr/lib/X11/fonts (the default location). +x11-skel: An /etc/xdg directory (the default for XDG_CONFIG_DIRS in the +x11-skel: XDG Base Directory Specification) is also contained in this package, +x11-skel: as well as sample xorg.conf files and other scripts. +x11-skel: +x11-skel: diff --git a/source/x/x11-skel/x11-skel.SlackBuild b/source/x/x11-skel/x11-skel.SlackBuild new file mode 100755 index 000000000..b21b325c9 --- /dev/null +++ b/source/x/x11-skel/x11-skel.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=7.4 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-x11-skel + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $PKG +mkdir -p etc/xdg +mkdir -p etc/X11 +mkdir -p usr/lib${LIBDIRSUFFIX}/X11 +mkdir -p usr/bin +mkdir -p var/log/setup +mkdir -p usr/man/man1 + +# obsolete: +#cp -a $CWD/scripts/xorg.conf-fbdev etc/X11 + +cp -a $CWD/scripts/xorg.conf-vesa etc/X11 +chown -R root:root etc/X11 +find etc/X11 -type f -exec chmod 644 {} \; +cp -a $CWD/scripts/xorgsetup usr/bin +cp -a $CWD/scripts/xwmconfig usr/bin +chown root:root usr/bin/* +chmod 755 usr/bin/* +sed -i -e "s#lib/#lib${LIBDIRSUFFIX}/#g" usr/bin/* +cp -a $CWD/scripts/setup.xwmconfig var/log/setup +chown root:root var/log/setup/setup.xwmconfig +chmod 755 var/log/setup/setup.xwmconfig +cat $CWD/manpages/xwmconfig.1 | gzip -9c > $PKG/usr/man/man1/xwmconfig.1.gz + +mkdir -p install +zcat $CWD/doinst.sh.gz \ + | sed -e "s#lib/#lib${LIBDIRSUFFIX}/#g" -e "s#lib #lib${LIBDIRSUFFIX} #g" \ + > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/x11-skel-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/x/x11/arch.use.flags b/source/x/x11/arch.use.flags new file mode 100644 index 000000000..f28a6ccab --- /dev/null +++ b/source/x/x11/arch.use.flags @@ -0,0 +1,7 @@ +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi diff --git a/source/x/x11/build/appres b/source/x/x11/build/appres new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/appres @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/bdftopcf b/source/x/x11/build/bdftopcf new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/bdftopcf @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/bigreqsproto b/source/x/x11/build/bigreqsproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/bigreqsproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/bitmap b/source/x/x11/build/bitmap new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/bitmap @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/compiz b/source/x/x11/build/compiz new file mode 100644 index 000000000..b8626c4cf --- /dev/null +++ b/source/x/x11/build/compiz @@ -0,0 +1 @@ +4 diff --git a/source/x/x11/build/compositeproto b/source/x/x11/build/compositeproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/compositeproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/damageproto b/source/x/x11/build/damageproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/damageproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/dmxproto b/source/x/x11/build/dmxproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/dmxproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/editres b/source/x/x11/build/editres new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/editres @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/encodings b/source/x/x11/build/encodings new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/encodings @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/evieext b/source/x/x11/build/evieext new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/evieext @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/fixesproto b/source/x/x11/build/fixesproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/fixesproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/font-adobe-100dpi b/source/x/x11/build/font-adobe-100dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-adobe-100dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-adobe-75dpi b/source/x/x11/build/font-adobe-75dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-adobe-75dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-adobe-utopia-100dpi b/source/x/x11/build/font-adobe-utopia-100dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-adobe-utopia-100dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-adobe-utopia-75dpi b/source/x/x11/build/font-adobe-utopia-75dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-adobe-utopia-75dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-adobe-utopia-type1 b/source/x/x11/build/font-adobe-utopia-type1 new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-adobe-utopia-type1 @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-alias b/source/x/x11/build/font-alias new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/font-alias @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/font-arabic-misc b/source/x/x11/build/font-arabic-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-arabic-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bh-100dpi b/source/x/x11/build/font-bh-100dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bh-100dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bh-75dpi b/source/x/x11/build/font-bh-75dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bh-75dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bh-lucidatypewriter-100dpi b/source/x/x11/build/font-bh-lucidatypewriter-100dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bh-lucidatypewriter-100dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bh-lucidatypewriter-75dpi b/source/x/x11/build/font-bh-lucidatypewriter-75dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bh-lucidatypewriter-75dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bh-ttf b/source/x/x11/build/font-bh-ttf new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bh-ttf @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bh-type1 b/source/x/x11/build/font-bh-type1 new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bh-type1 @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bitstream-100dpi b/source/x/x11/build/font-bitstream-100dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bitstream-100dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bitstream-75dpi b/source/x/x11/build/font-bitstream-75dpi new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bitstream-75dpi @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bitstream-speedo b/source/x/x11/build/font-bitstream-speedo new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bitstream-speedo @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-bitstream-type1 b/source/x/x11/build/font-bitstream-type1 new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-bitstream-type1 @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-cronyx-cyrillic b/source/x/x11/build/font-cronyx-cyrillic new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-cronyx-cyrillic @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-cursor-misc b/source/x/x11/build/font-cursor-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-cursor-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-daewoo-misc b/source/x/x11/build/font-daewoo-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-daewoo-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-dec-misc b/source/x/x11/build/font-dec-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-dec-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-ibm-type1 b/source/x/x11/build/font-ibm-type1 new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-ibm-type1 @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-isas-misc b/source/x/x11/build/font-isas-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-isas-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-jis-misc b/source/x/x11/build/font-jis-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-jis-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-micro-misc b/source/x/x11/build/font-micro-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-micro-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-misc-cyrillic b/source/x/x11/build/font-misc-cyrillic new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-misc-cyrillic @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-misc-ethiopic b/source/x/x11/build/font-misc-ethiopic new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-misc-ethiopic @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-misc-meltho b/source/x/x11/build/font-misc-meltho new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-misc-meltho @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-misc-misc b/source/x/x11/build/font-misc-misc new file mode 100644 index 000000000..b8626c4cf --- /dev/null +++ b/source/x/x11/build/font-misc-misc @@ -0,0 +1 @@ +4 diff --git a/source/x/x11/build/font-mutt-misc b/source/x/x11/build/font-mutt-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-mutt-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-schumacher-misc b/source/x/x11/build/font-schumacher-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-schumacher-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-screen-cyrillic b/source/x/x11/build/font-screen-cyrillic new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-screen-cyrillic @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-sony-misc b/source/x/x11/build/font-sony-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-sony-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-sun-misc b/source/x/x11/build/font-sun-misc new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-sun-misc @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-util b/source/x/x11/build/font-util new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/font-util @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/font-winitzki-cyrillic b/source/x/x11/build/font-winitzki-cyrillic new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/font-winitzki-cyrillic @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/font-xfree86-type1 b/source/x/x11/build/font-xfree86-type1 new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/font-xfree86-type1 @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/fontcacheproto b/source/x/x11/build/fontcacheproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/fontcacheproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/fontsproto b/source/x/x11/build/fontsproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/fontsproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/gccmakedep b/source/x/x11/build/gccmakedep new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/gccmakedep @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/iceauth b/source/x/x11/build/iceauth new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/iceauth @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/ico b/source/x/x11/build/ico new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/ico @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/imake b/source/x/x11/build/imake new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/imake @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/kbproto b/source/x/x11/build/kbproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/kbproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/lbxproxy b/source/x/x11/build/lbxproxy new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/lbxproxy @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libICE b/source/x/x11/build/libICE new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libICE @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXScrnSaver b/source/x/x11/build/libXScrnSaver new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXScrnSaver @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXTrap b/source/x/x11/build/libXTrap new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXTrap @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXau b/source/x/x11/build/libXau new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXau @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXcomposite b/source/x/x11/build/libXcomposite new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXcomposite @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXcursor b/source/x/x11/build/libXcursor new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXcursor @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXdamage b/source/x/x11/build/libXdamage new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXdamage @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXdmcp b/source/x/x11/build/libXdmcp new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXdmcp @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXevie b/source/x/x11/build/libXevie new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXevie @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXfixes b/source/x/x11/build/libXfixes new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXfixes @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXfontcache b/source/x/x11/build/libXfontcache new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXfontcache @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXft b/source/x/x11/build/libXft new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXft @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXinerama b/source/x/x11/build/libXinerama new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXinerama @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXmu b/source/x/x11/build/libXmu new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXmu @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXp b/source/x/x11/build/libXp new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXp @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXpm b/source/x/x11/build/libXpm new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXpm @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXprintAppUtil b/source/x/x11/build/libXprintAppUtil new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXprintAppUtil @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXprintUtil b/source/x/x11/build/libXprintUtil new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXprintUtil @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXrender b/source/x/x11/build/libXrender new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXrender @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXres b/source/x/x11/build/libXres new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXres @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXtst b/source/x/x11/build/libXtst new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXtst @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXv b/source/x/x11/build/libXv new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXv @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXvMC b/source/x/x11/build/libXvMC new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXvMC @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXxf86dga b/source/x/x11/build/libXxf86dga new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXxf86dga @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXxf86misc b/source/x/x11/build/libXxf86misc new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXxf86misc @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libXxf86vm b/source/x/x11/build/libXxf86vm new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libXxf86vm @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libdmx b/source/x/x11/build/libdmx new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libdmx @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libfontenc b/source/x/x11/build/libfontenc new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libfontenc @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/liblbxutil b/source/x/x11/build/liblbxutil new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/liblbxutil @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libpthread-stubs b/source/x/x11/build/libpthread-stubs new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libpthread-stubs @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libxkbfile b/source/x/x11/build/libxkbfile new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libxkbfile @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/libxkbui b/source/x/x11/build/libxkbui new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/libxkbui @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/listres b/source/x/x11/build/listres new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/listres @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/lndir b/source/x/x11/build/lndir new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/lndir @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/luit b/source/x/x11/build/luit new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/luit @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/makedepend b/source/x/x11/build/makedepend new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/makedepend @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/mkcomposecache b/source/x/x11/build/mkcomposecache new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/mkcomposecache @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/mkfontdir b/source/x/x11/build/mkfontdir new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/mkfontdir @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/oclock b/source/x/x11/build/oclock new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/oclock @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/printproto b/source/x/x11/build/printproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/printproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/proxymngr b/source/x/x11/build/proxymngr new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/proxymngr @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/recordproto b/source/x/x11/build/recordproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/recordproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/rendercheck b/source/x/x11/build/rendercheck new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/rendercheck @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/resourceproto b/source/x/x11/build/resourceproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/resourceproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/scripts b/source/x/x11/build/scripts new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/scripts @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/scrnsaverproto b/source/x/x11/build/scrnsaverproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/scrnsaverproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/smproxy b/source/x/x11/build/smproxy new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/smproxy @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/trapproto b/source/x/x11/build/trapproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/trapproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/twm b/source/x/x11/build/twm new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/twm @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/videoproto b/source/x/x11/build/videoproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/videoproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/viewres b/source/x/x11/build/viewres new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/viewres @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/x11perf b/source/x/x11/build/x11perf new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/x11perf @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xauth b/source/x/x11/build/xauth new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xauth @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xbacklight b/source/x/x11/build/xbacklight new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xbacklight @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xbiff b/source/x/x11/build/xbiff new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xbiff @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xbitmaps b/source/x/x11/build/xbitmaps new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xbitmaps @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xcalc b/source/x/x11/build/xcalc new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xcalc @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xclipboard b/source/x/x11/build/xclipboard new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xclipboard @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xclock b/source/x/x11/build/xclock new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xclock @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xcmiscproto b/source/x/x11/build/xcmiscproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xcmiscproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xcmsdb b/source/x/x11/build/xcmsdb new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xcmsdb @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xcompmgr b/source/x/x11/build/xcompmgr new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xcompmgr @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xconsole b/source/x/x11/build/xconsole new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xconsole @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xcursor-themes b/source/x/x11/build/xcursor-themes new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xcursor-themes @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xcursorgen b/source/x/x11/build/xcursorgen new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xcursorgen @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xdbedizzy b/source/x/x11/build/xdbedizzy new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xdbedizzy @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xditview b/source/x/x11/build/xditview new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xditview @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xdriinfo b/source/x/x11/build/xdriinfo new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xdriinfo @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xev b/source/x/x11/build/xev new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xev @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xeyes b/source/x/x11/build/xeyes new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xeyes @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86-input-elographics b/source/x/x11/build/xf86-input-elographics new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86-input-elographics @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86-input-mutouch b/source/x/x11/build/xf86-input-mutouch new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86-input-mutouch @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86-video-ati b/source/x/x11/build/xf86-video-ati new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86-video-ati @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86-video-nsc b/source/x/x11/build/xf86-video-nsc new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86-video-nsc @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86-video-openchrome b/source/x/x11/build/xf86-video-openchrome new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86-video-openchrome @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86-video-v4l b/source/x/x11/build/xf86-video-v4l new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86-video-v4l @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86bigfontproto b/source/x/x11/build/xf86bigfontproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86bigfontproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86dga b/source/x/x11/build/xf86dga new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86dga @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86dgaproto b/source/x/x11/build/xf86dgaproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86dgaproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86driproto b/source/x/x11/build/xf86driproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86driproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86miscproto b/source/x/x11/build/xf86miscproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86miscproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86rushproto b/source/x/x11/build/xf86rushproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86rushproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xf86vidmodeproto b/source/x/x11/build/xf86vidmodeproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xf86vidmodeproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xfd b/source/x/x11/build/xfd new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xfd @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xfindproxy b/source/x/x11/build/xfindproxy new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xfindproxy @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xfontsel b/source/x/x11/build/xfontsel new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xfontsel @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xfwp b/source/x/x11/build/xfwp new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xfwp @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xgamma b/source/x/x11/build/xgamma new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xgamma @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xgc b/source/x/x11/build/xgc new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xgc @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xhost b/source/x/x11/build/xhost new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xhost @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xineramaproto b/source/x/x11/build/xineramaproto new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xineramaproto @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xkbevd b/source/x/x11/build/xkbevd new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xkbevd @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xkbprint b/source/x/x11/build/xkbprint new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xkbprint @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xkbutils b/source/x/x11/build/xkbutils new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xkbutils @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xkill b/source/x/x11/build/xkill new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xkill @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xload b/source/x/x11/build/xload new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xload @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xlogo b/source/x/x11/build/xlogo new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xlogo @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xlsatoms b/source/x/x11/build/xlsatoms new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xlsatoms @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xlsclients b/source/x/x11/build/xlsclients new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xlsclients @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xlsfonts b/source/x/x11/build/xlsfonts new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xlsfonts @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xmag b/source/x/x11/build/xmag new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xmag @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xman b/source/x/x11/build/xman new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xman @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xmessage b/source/x/x11/build/xmessage new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xmessage @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xmh b/source/x/x11/build/xmh new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xmh @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xmodmap b/source/x/x11/build/xmodmap new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xmodmap @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xmore b/source/x/x11/build/xmore new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xmore @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xorg-cf-files b/source/x/x11/build/xorg-cf-files new file mode 100644 index 000000000..00750edc0 --- /dev/null +++ b/source/x/x11/build/xorg-cf-files @@ -0,0 +1 @@ +3 diff --git a/source/x/x11/build/xorg-docs b/source/x/x11/build/xorg-docs new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xorg-docs @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xorg-sgml-doctools b/source/x/x11/build/xorg-sgml-doctools new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xorg-sgml-doctools @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xplsprinters b/source/x/x11/build/xplsprinters new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xplsprinters @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xpr b/source/x/x11/build/xpr new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xpr @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xprehashprinterlist b/source/x/x11/build/xprehashprinterlist new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xprehashprinterlist @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xprop b/source/x/x11/build/xprop new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xprop @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xproxymanagementprotocol b/source/x/x11/build/xproxymanagementprotocol new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xproxymanagementprotocol @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xrdb b/source/x/x11/build/xrdb new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xrdb @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xrefresh b/source/x/x11/build/xrefresh new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xrefresh @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xset b/source/x/x11/build/xset new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xset @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xsetmode b/source/x/x11/build/xsetmode new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xsetmode @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xsetpointer b/source/x/x11/build/xsetpointer new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xsetpointer @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xsetroot b/source/x/x11/build/xsetroot new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xsetroot @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xsm b/source/x/x11/build/xsm new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xsm @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xstdcmap b/source/x/x11/build/xstdcmap new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xstdcmap @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xtrap b/source/x/x11/build/xtrap new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xtrap @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xvidtune b/source/x/x11/build/xvidtune new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xvidtune @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xvinfo b/source/x/x11/build/xvinfo new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xvinfo @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/build/xwud b/source/x/x11/build/xwud new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/source/x/x11/build/xwud @@ -0,0 +1 @@ +2 diff --git a/source/x/x11/configure/compiz b/source/x/x11/configure/compiz new file mode 100644 index 000000000..21d8270de --- /dev/null +++ b/source/x/x11/configure/compiz @@ -0,0 +1,15 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --disable-gconf \ + --disable-kde \ + --enable-kde4 \ + --enable-librsvg \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/configure b/source/x/x11/configure/configure new file mode 100644 index 000000000..eb3fd59c5 --- /dev/null +++ b/source/x/x11/configure/configure @@ -0,0 +1,11 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/libX11 b/source/x/x11/configure/libX11 new file mode 100644 index 000000000..093c60441 --- /dev/null +++ b/source/x/x11/configure/libX11 @@ -0,0 +1,12 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --with-xcb=yes \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/libXt b/source/x/x11/configure/libXt new file mode 100644 index 000000000..3c832abd2 --- /dev/null +++ b/source/x/x11/configure/libXt @@ -0,0 +1,12 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --with-appdefaultdir=/etc/X11/app-defaults \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/pixman b/source/x/x11/configure/pixman new file mode 100644 index 000000000..492cf8ae0 --- /dev/null +++ b/source/x/x11/configure/pixman @@ -0,0 +1,19 @@ +if [ "$ARCH" = "x86_64" ]; then + do_sse2="--enable-sse2" +else + do_sse2="--disable-sse2" +fi + +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --disable-vmx \ + --build=$ARCH-slackware-linux \ + ${do_sse2} diff --git a/source/x/x11/configure/setxkbmap b/source/x/x11/configure/setxkbmap new file mode 100644 index 000000000..91f8353fb --- /dev/null +++ b/source/x/x11/configure/setxkbmap @@ -0,0 +1,11 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --with-xkb-config-root=/etc/X11/xkb \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xf86-video-ati b/source/x/x11/configure/xf86-video-ati new file mode 100644 index 000000000..6e41b488e --- /dev/null +++ b/source/x/x11/configure/xf86-video-ati @@ -0,0 +1,19 @@ +xserver_source="/tmp/x11-build/xorg-server-1.6.2" + +if [ ! -d "$xserver_source" ]; then + echo "$xserver_source does not exist, and you need it." + exit 1 +fi + +CFLAGS="$SLKCFLAGS -I${xserver_source}/hw/xfree86/ramdac" \ +CXXFLAGS="$SLKCFLAGS -I${xserver_source}/hw/xfree86/ramdac" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --with-xserver-source=${xserver_source} \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xf86-video-nv b/source/x/x11/configure/xf86-video-nv new file mode 100644 index 000000000..6e41b488e --- /dev/null +++ b/source/x/x11/configure/xf86-video-nv @@ -0,0 +1,19 @@ +xserver_source="/tmp/x11-build/xorg-server-1.6.2" + +if [ ! -d "$xserver_source" ]; then + echo "$xserver_source does not exist, and you need it." + exit 1 +fi + +CFLAGS="$SLKCFLAGS -I${xserver_source}/hw/xfree86/ramdac" \ +CXXFLAGS="$SLKCFLAGS -I${xserver_source}/hw/xfree86/ramdac" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --with-xserver-source=${xserver_source} \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xfs b/source/x/x11/configure/xfs new file mode 100644 index 000000000..38f50c9a8 --- /dev/null +++ b/source/x/x11/configure/xfs @@ -0,0 +1,12 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --disable-devel-docs \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xkbcomp b/source/x/x11/configure/xkbcomp new file mode 100644 index 000000000..91f8353fb --- /dev/null +++ b/source/x/x11/configure/xkbcomp @@ -0,0 +1,11 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --with-xkb-config-root=/etc/X11/xkb \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xkeyboard-config b/source/x/x11/configure/xkeyboard-config new file mode 100644 index 000000000..a5e05d6b5 --- /dev/null +++ b/source/x/x11/configure/xkeyboard-config @@ -0,0 +1,13 @@ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --enable-xkbcomp-symlink \ + --enable-compat-rules \ + --with-xkb-base=/etc/X11/xkb \ + --with-xkb-rules-symlink=xfree86,xorg \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xorg-docs b/source/x/x11/configure/xorg-docs new file mode 100644 index 000000000..77bb98d87 --- /dev/null +++ b/source/x/x11/configure/xorg-docs @@ -0,0 +1,14 @@ +CFLAGS=$SLKCFLAGS \ +CXXFLAGS=$SLKCFLAGS \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --enable-pdf=no \ + --enable-ps=no \ + --enable-html=no \ + --build=$ARCH-slackware-linux diff --git a/source/x/x11/configure/xorg-server b/source/x/x11/configure/xorg-server new file mode 100644 index 000000000..b66600258 --- /dev/null +++ b/source/x/x11/configure/xorg-server @@ -0,0 +1,42 @@ +# Servers to build: +BUILD_SERVERS="--enable-xorg \ + --enable-xvfb \ + --enable-xnest \ + --enable-kdrive \ + --enable-xephyr \ + --enable-xsdl \ + --enable-xfbdev" + +MESA_VERSION=${MESA_VERSION:-7.5} + +# Default font paths to be used by the X server +DEF_FONTPATH="/usr/share/fonts/local,/usr/share/fonts/TTF,/usr/share/fonts/OTF,/usr/share/fonts/Type1,/usr/share/fonts/misc,/usr/share/fonts/CID,/usr/share/fonts/75dpi/:unscaled,/usr/share/fonts/100dpi/:unscaled,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/cyrillic" + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --disable-static \ + --with-pic \ + --with-int10=x86emu \ + --with-default-font-path="${DEF_FONTPATH}" \ + --with-module-dir=/usr/lib${LIBDIRSUFFIX}/xorg/modules \ + --with-dri-driver-path=/usr/lib${LIBDIRSUFFIX}/xorg/modules/dri \ + --with-os-name="Slackware 13.0" \ + --with-os-vendor="Slackware Linux Project" \ + --with-mesa-source=/tmp/Mesa-${MESA_VERSION} \ + --with-xkb-path=/etc/X11/xkb \ + --with-xkb-output=/var/lib/xkb \ + $BUILD_SERVERS \ + --build=$ARCH-slackware-linux + +if [ "$ARCH" = "x86_64" ]; then + # To prevent the error "No rule to make target `-ldl'" + sed -i -e 's#-ldl##' hw/xfree86/Makefile + sed -i -e 's#-lm#-lm -ldl#' hw/xfree86/Makefile +fi + diff --git a/source/x/x11/doinst.sh/font-adobe-100dpi b/source/x/x11/doinst.sh/font-adobe-100dpi new file mode 100644 index 000000000..aa6445d1d --- /dev/null +++ b/source/x/x11/doinst.sh/font-adobe-100dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/100dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-adobe-75dpi b/source/x/x11/doinst.sh/font-adobe-75dpi new file mode 100644 index 000000000..94bb53e84 --- /dev/null +++ b/source/x/x11/doinst.sh/font-adobe-75dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/75dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-adobe-utopia-100dpi b/source/x/x11/doinst.sh/font-adobe-utopia-100dpi new file mode 100644 index 000000000..aa6445d1d --- /dev/null +++ b/source/x/x11/doinst.sh/font-adobe-utopia-100dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/100dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-adobe-utopia-75dpi b/source/x/x11/doinst.sh/font-adobe-utopia-75dpi new file mode 100644 index 000000000..94bb53e84 --- /dev/null +++ b/source/x/x11/doinst.sh/font-adobe-utopia-75dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/75dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-adobe-utopia-type1 b/source/x/x11/doinst.sh/font-adobe-utopia-type1 new file mode 100644 index 000000000..e39512692 --- /dev/null +++ b/source/x/x11/doinst.sh/font-adobe-utopia-type1 @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/Type1 + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-arabic-misc b/source/x/x11/doinst.sh/font-arabic-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-arabic-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bh-100dpi b/source/x/x11/doinst.sh/font-bh-100dpi new file mode 100644 index 000000000..aa6445d1d --- /dev/null +++ b/source/x/x11/doinst.sh/font-bh-100dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/100dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bh-75dpi b/source/x/x11/doinst.sh/font-bh-75dpi new file mode 100644 index 000000000..94bb53e84 --- /dev/null +++ b/source/x/x11/doinst.sh/font-bh-75dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/75dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bh-lucidatypewriter-100dpi b/source/x/x11/doinst.sh/font-bh-lucidatypewriter-100dpi new file mode 100644 index 000000000..aa6445d1d --- /dev/null +++ b/source/x/x11/doinst.sh/font-bh-lucidatypewriter-100dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/100dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bh-lucidatypewriter-75dpi b/source/x/x11/doinst.sh/font-bh-lucidatypewriter-75dpi new file mode 100644 index 000000000..94bb53e84 --- /dev/null +++ b/source/x/x11/doinst.sh/font-bh-lucidatypewriter-75dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/75dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bh-ttf b/source/x/x11/doinst.sh/font-bh-ttf new file mode 100644 index 000000000..bdb050188 --- /dev/null +++ b/source/x/x11/doinst.sh/font-bh-ttf @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/TTF + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bh-type1 b/source/x/x11/doinst.sh/font-bh-type1 new file mode 100644 index 000000000..e39512692 --- /dev/null +++ b/source/x/x11/doinst.sh/font-bh-type1 @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/Type1 + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bitstream-100dpi b/source/x/x11/doinst.sh/font-bitstream-100dpi new file mode 100644 index 000000000..aa6445d1d --- /dev/null +++ b/source/x/x11/doinst.sh/font-bitstream-100dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/100dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bitstream-75dpi b/source/x/x11/doinst.sh/font-bitstream-75dpi new file mode 100644 index 000000000..94bb53e84 --- /dev/null +++ b/source/x/x11/doinst.sh/font-bitstream-75dpi @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/75dpi + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bitstream-speedo b/source/x/x11/doinst.sh/font-bitstream-speedo new file mode 100644 index 000000000..2cbbd2f1b --- /dev/null +++ b/source/x/x11/doinst.sh/font-bitstream-speedo @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/Speedo + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-bitstream-type1 b/source/x/x11/doinst.sh/font-bitstream-type1 new file mode 100644 index 000000000..e39512692 --- /dev/null +++ b/source/x/x11/doinst.sh/font-bitstream-type1 @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/Type1 + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-cronyx-cyrillic b/source/x/x11/doinst.sh/font-cronyx-cyrillic new file mode 100644 index 000000000..960dd9458 --- /dev/null +++ b/source/x/x11/doinst.sh/font-cronyx-cyrillic @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/cyrillic + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-cursor-misc b/source/x/x11/doinst.sh/font-cursor-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-cursor-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-daewoo-misc b/source/x/x11/doinst.sh/font-daewoo-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-daewoo-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-dec-misc b/source/x/x11/doinst.sh/font-dec-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-dec-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-ibm-type1 b/source/x/x11/doinst.sh/font-ibm-type1 new file mode 100644 index 000000000..e39512692 --- /dev/null +++ b/source/x/x11/doinst.sh/font-ibm-type1 @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/Type1 + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-isas-misc b/source/x/x11/doinst.sh/font-isas-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-isas-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-jis-misc b/source/x/x11/doinst.sh/font-jis-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-jis-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-micro-misc b/source/x/x11/doinst.sh/font-micro-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-micro-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-misc-cyrillic b/source/x/x11/doinst.sh/font-misc-cyrillic new file mode 100644 index 000000000..960dd9458 --- /dev/null +++ b/source/x/x11/doinst.sh/font-misc-cyrillic @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/cyrillic + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-misc-ethiopic b/source/x/x11/doinst.sh/font-misc-ethiopic new file mode 100644 index 000000000..b7227e907 --- /dev/null +++ b/source/x/x11/doinst.sh/font-misc-ethiopic @@ -0,0 +1,15 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/OTF + mkfontscale . + mkfontdir . + ) + ( cd /usr/share/fonts/TTF + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-misc-meltho b/source/x/x11/doinst.sh/font-misc-meltho new file mode 100644 index 000000000..0c434b5ae --- /dev/null +++ b/source/x/x11/doinst.sh/font-misc-meltho @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/OTF + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-misc-misc b/source/x/x11/doinst.sh/font-misc-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-misc-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-mutt-misc b/source/x/x11/doinst.sh/font-mutt-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-mutt-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-schumacher-misc b/source/x/x11/doinst.sh/font-schumacher-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-schumacher-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-screen-cyrillic b/source/x/x11/doinst.sh/font-screen-cyrillic new file mode 100644 index 000000000..960dd9458 --- /dev/null +++ b/source/x/x11/doinst.sh/font-screen-cyrillic @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/cyrillic + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-sony-misc b/source/x/x11/doinst.sh/font-sony-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-sony-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-sun-misc b/source/x/x11/doinst.sh/font-sun-misc new file mode 100644 index 000000000..63055f0e1 --- /dev/null +++ b/source/x/x11/doinst.sh/font-sun-misc @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-winitzki-cyrillic b/source/x/x11/doinst.sh/font-winitzki-cyrillic new file mode 100644 index 000000000..960dd9458 --- /dev/null +++ b/source/x/x11/doinst.sh/font-winitzki-cyrillic @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/cyrillic + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/font-xfree86-type1 b/source/x/x11/doinst.sh/font-xfree86-type1 new file mode 100644 index 000000000..e39512692 --- /dev/null +++ b/source/x/x11/doinst.sh/font-xfree86-type1 @@ -0,0 +1,11 @@ +#!/bin/sh +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/Type1 + mkfontscale . + mkfontdir . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/x/x11/doinst.sh/xdm b/source/x/x11/doinst.sh/xdm new file mode 100644 index 000000000..bb08dc5f2 --- /dev/null +++ b/source/x/x11/doinst.sh/xdm @@ -0,0 +1,15 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/X11/xdm/xdm-config.new +config etc/X11/xdm/Xservers.new +config etc/X11/xdm/Xsession.new diff --git a/source/x/x11/doinst.sh/xfs b/source/x/x11/doinst.sh/xfs new file mode 100644 index 000000000..2b67221c2 --- /dev/null +++ b/source/x/x11/doinst.sh/xfs @@ -0,0 +1,14 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/X11/fs/config.new + diff --git a/source/x/x11/doinst.sh/xinit b/source/x/x11/doinst.sh/xinit new file mode 100644 index 000000000..de90b8f2c --- /dev/null +++ b/source/x/x11/doinst.sh/xinit @@ -0,0 +1,5 @@ +# We can't leave people with nothing, so we'll have to set +# a probable default: +if [ ! -r etc/X11/xinit/xinitrc ]; then + ( cd etc/X11/xinit ; ln -sf xinitrc.kde xinitrc ) +fi diff --git a/source/x/x11/doinst.sh/xkeyboard-config b/source/x/x11/doinst.sh/xkeyboard-config new file mode 100644 index 000000000..2b47d6d91 --- /dev/null +++ b/source/x/x11/doinst.sh/xkeyboard-config @@ -0,0 +1,7 @@ +# This has to assume the use of upgradepkg to work. +# Ever wondered why we install new packages twice? +# Here's an example: +if [ -d etc/X11/xkb/symbols/pc ]; then + mv etc/X11/xkb etc/X11/xkb.old.bak.$$ + mkdir -p etc/X11/xkb/rules etc/X11/xkb +fi diff --git a/source/x/x11/doinst.sh/xorg-cf-files b/source/x/x11/doinst.sh/xorg-cf-files new file mode 100644 index 000000000..6711f9f9b --- /dev/null +++ b/source/x/x11/doinst.sh/xorg-cf-files @@ -0,0 +1,5 @@ +#!/bin/sh +# Make sure there is a host.def, but don't mess with the +# contents, as the lesstif package may have already installed +# things in this file. Normally it ships empty. +touch usr/lib/X11/config/host.def diff --git a/source/x/x11/makepkg/xorg-server b/source/x/x11/makepkg/xorg-server new file mode 100644 index 000000000..67b93c971 --- /dev/null +++ b/source/x/x11/makepkg/xorg-server @@ -0,0 +1,35 @@ + +rm -r ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/usr/bin +mv $PKG/usr/bin/Xnest ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/usr/bin +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/usr/man/man1 +mv $PKG/usr/man/man1/Xnest.1.gz ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/usr/man/man1 +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/install +cat $CWD/slack-desc/xorg-server-xnest > ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest/install/slack-desc +cd ${SLACK_X_BUILD_DIR}/package-xorg-server-xnest +/sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/xorg-server-xnest-${MODULAR_PACKAGE_VERSION}-$ARCH-$BUILD.txz + +rm -r ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/usr/bin +mv $PKG/usr/bin/Xvfb ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/usr/bin +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/usr/man/man1 +mv $PKG/usr/man/man1/Xvfb.1.gz ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/usr/man/man1 +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/install +cat $CWD/slack-desc/xorg-server-xvfb > ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb/install/slack-desc +cd ${SLACK_X_BUILD_DIR}/package-xorg-server-xvfb +/sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/xorg-server-xvfb-${MODULAR_PACKAGE_VERSION}-$ARCH-$BUILD.txz + +rm -r ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/usr/bin +mv $PKG/usr/bin/Xephyr ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/usr/bin +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/usr/man/man1 +mv $PKG/usr/man/man1/Xephyr.1.gz ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/usr/man/man1 +mkdir -p ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/install +cat $CWD/slack-desc/xorg-server-xephyr > ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr/install/slack-desc +cd ${SLACK_X_BUILD_DIR}/package-xorg-server-xephyr +/sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/xorg-server-xephyr-${MODULAR_PACKAGE_VERSION}-$ARCH-$BUILD.txz + +# Build the main xorg-server package: +cd $PKG +/sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/xorg-server-${MODULAR_PACKAGE_VERSION}-$ARCH-$BUILD.txz + diff --git a/source/x/x11/modularize b/source/x/x11/modularize new file mode 100644 index 000000000..fd192efba --- /dev/null +++ b/source/x/x11/modularize @@ -0,0 +1,317 @@ +# If a package is listed here, it will be built apart from the +# usual "grab bag" package that's made from each source directory. + +applewmproto +appres +bdftopcf +beforelight +bigreqsproto +bitmap +compiz +compositeproto +constype +damageproto +dmxproto +dri2proto +editres +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-util +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +fonttosfnt +fslsfonts +fstobdf +gccmakedep +glproto +iceauth +ico +imake +inputproto +intel-gpu-tools +kbproto +lbxproxy +libAppleWM +libFS +libICE +libSM +libWindowsWM +libX11 +libXScrnSaver +libXTrap +libXau +libXaw +libXcomposite +libXcursor +libXdamage +libXdmcp +libXevie +libXext +libXfixes +libXfont +libXfontcache +libXft +libXi +libXinerama +libXmu +libXp +libXpm +libXprintAppUtil +libXprintUtil +libXrandr +libXrender +libXres +libXt +libXtst +libXv +libXvMC +libXxf86dga +libXxf86misc +libXxf86vm +libdmx +libfontenc +liblbxutil +libpciaccess +libpthread-stubs +libxcb +libxkbfile +libxkbui +listres +lndir +luit +makedepend +mkcfm +mkcomposecache +mkfontdir +mkfontscale +oclock +pixman +printproto +proxymngr +randrproto +recordproto +rendercheck +renderproto +resourceproto +rgb +rstart +scripts +scrnsaverproto +sessreg +setxkbmap +showfont +smproxy +trapproto +twm +util-macros +videoproto +viewres +windowswmproto +x11perf +xauth +xbacklight +xbiff +xbitmaps +xcalc +xcb-proto +xcb-util +xclipboard +xclock +xcmiscproto +xcmsdb +xcompmgr +xconsole +xcursor-themes +xcursorgen +xdbedizzy +xditview +xdm +xdpyinfo +xdriinfo +xedit +xev +xextproto +xeyes +xf86-input-acecad +xf86-input-aiptek +xf86-input-calcomp +xf86-input-citron +xf86-input-digitaledge +xf86-input-dmc +xf86-input-dynapro +xf86-input-elo2300 +xf86-input-elographics +xf86-input-evdev +xf86-input-fpit +xf86-input-hyperpen +xf86-input-jamstudio +xf86-input-joystick +xf86-input-keyboard +xf86-input-magellan +xf86-input-magictouch +xf86-input-microtouch +xf86-input-mouse +xf86-input-mutouch +xf86-input-palmax +xf86-input-penmount +xf86-input-spaceorb +xf86-input-summa +xf86-input-synaptics +xf86-input-tek4957 +xf86-input-ur98 +xf86-input-vmmouse +xf86-input-void +xf86-video-geode +xf86-video-apm +xf86-video-ark +xf86-video-ast +xf86-video-ati +xf86-video-chips +xf86-video-cirrus +xf86-video-cyrix +xf86-video-dummy +xf86-video-fbdev +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-i810 +xf86-video-impact +xf86-video-imstt +xf86-video-intel +xf86-video-mach64 +xf86-video-mga +xf86-video-neomagic +xf86-video-newport +xf86-video-nsc +xf86-video-nv +xf86-video-openchrome +xf86-video-radeonhd +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx +xf86-video-tdfx +xf86-video-tga +xf86-video-trident +xf86-video-tseng +xf86-video-v4l +xf86-video-vesa +xf86-video-vga +xf86-video-vmware +xf86-video-voodoo +xf86-video-wsfb +xf86-video-xgi +xf86-video-xgixp +xf86bigfontproto +xf86dga +xf86dgaproto +xf86driproto +xf86miscproto +xf86rushproto +xf86vidmodeproto +xfd +xfindproxy +xfontsel +xfs +xfsinfo +xfwp +xgamma +xgc +xhost +xineramaproto +xinit +xinput +xkbcomp +xkbevd +xkbprint +xkbutils +xkeyboard-config +xkill +xload +xlogo +xlsatoms +xlsclients +xlsfonts +xmag +xman +xmessage +xmh +xmodmap +xmore +xorg-cf-files +xorg-docs +xorg-server +xorg-sgml-doctools +xphelloworld +xplsprinters +xpr +xprehashprinterlist +xprop +xproto +xproxymanagementprotocol +xpyb +xrandr +xrdb +xrefresh +xscope +xset +xsetmode +xsetpointer +xsetroot +xsm +xstdcmap +xtrans +xtrap +xvidtune +xvinfo +xwd +xwininfo +xwud diff --git a/source/x/x11/noarch b/source/x/x11/noarch new file mode 100644 index 000000000..2a07c677f --- /dev/null +++ b/source/x/x11/noarch @@ -0,0 +1,85 @@ +# List packages with an $ARCH of "noarch" (i.e. packages +# that contain no binaries) here: +bigreqsproto +compositeproto +damageproto +dejavu-ttf +dmxproto +encodings +evieext +fixesproto +font-adobe-100dpi +font-adobe-75dpi +font-adobe-utopia-100dpi +font-adobe-utopia-75dpi +font-adobe-utopia-type1 +font-alias +font-arabic-misc +font-bh-100dpi +font-bh-75dpi +font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-75dpi +font-bh-ttf +font-bh-type1 +font-bitstream-100dpi +font-bitstream-75dpi +font-bitstream-speedo +font-bitstream-type1 +font-cronyx-cyrillic +font-cursor-misc +font-daewoo-misc +font-dec-misc +font-ibm-type1 +font-isas-misc +font-jis-misc +font-micro-misc +font-misc-cyrillic +font-misc-ethiopic +font-misc-meltho +font-misc-misc +font-mutt-misc +font-schumacher-misc +font-screen-cyrillic +font-sony-misc +font-sun-misc +font-winitzki-cyrillic +font-xfree86-type1 +fontcacheproto +fontsproto +gccmakedep +glproto +inputproto +kbproto +libpthread-stubs +mkfontdir +printproto +randrproto +recordproto +renderproto +resourceproto +scripts +scrnsaverproto +trapproto +ttf-indic-fonts +util-macros +videoproto +x11-skel +xbitmaps +xcb-proto +xcmiscproto +xcursor-themes +xextproto +xf86bigfontproto +xf86dgaproto +xf86driproto +xf86miscproto +xf86rushproto +xf86vidmodeproto +xineramaproto +xkeyboard-config +xorg-cf-files +xorg-docs +xorg-sgml-doctools +xproto +xproxymanagementprotocol +xtrans diff --git a/source/x/x11/package-blacklist b/source/x/x11/package-blacklist new file mode 100644 index 000000000..377624999 --- /dev/null +++ b/source/x/x11/package-blacklist @@ -0,0 +1,39 @@ +# Enter packages to skip (perhaps because they aren't used on +# this platform) below. Just the package name -- no version +# number is needed. + +# MacOS related packages: +applewmproto +windowswmproto +libAppleWM +libWindowsWM + +# Sun video cards: +xf86-video-sunbw2 +xf86-video-suncg14 +xf86-video-suncg3 +xf86-video-suncg6 +xf86-video-sunffb +xf86-video-sunleo +xf86-video-suntcx + +# Obsolete packages: +liboldX +xf86-video-amd +xf86-video-via +xkbdata +xphelloworld +xrx + +# Not applicable to us +grandr +constype + +# CAREFUL NOT TO "SHIP" THE STUFF BELOW IN THE MAIN X PACKAGES DIR! + +# This is probably obsolete, and kills "X -configure" too +xf86-video-nsc + +# We don't want this one, as it causes failure of X with no xorg.conf +xf86-video-fbdev + diff --git a/source/x/x11/patch/compiz.patch b/source/x/x11/patch/compiz.patch new file mode 100644 index 000000000..c2920994d --- /dev/null +++ b/source/x/x11/patch/compiz.patch @@ -0,0 +1,3 @@ +zcat $CWD/patch/compiz/compiz-0.7.8-kde42-crash.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patch/compiz/compiz-0.7.8-kde42-krunner.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patch/compiz/compiz-0.7.8-kde42.patch.gz | patch -p1 --verbose || exit 1 diff --git a/source/x/x11/patch/compiz/compiz-0.7.8-kde42-crash.patch b/source/x/x11/patch/compiz/compiz-0.7.8-kde42-crash.patch new file mode 100644 index 000000000..00f89e2cd --- /dev/null +++ b/source/x/x11/patch/compiz/compiz-0.7.8-kde42-crash.patch @@ -0,0 +1,66 @@ +Implement KDecorationBridge unstable API, needed for KDE 4.2. +--- + +diff --git a/kde/window-decorator-kde4/window.cpp b/kde/window-decorator-kde4/window.cpp +index d2d362b..68c856b 100644 +--- a/kde/window-decorator-kde4/window.cpp ++++ b/kde/window-decorator-kde4/window.cpp +@@ -764,6 +764,31 @@ KWD::Window::grabXServer (bool) + } + + void ++KWD::Window::repaintShadow (void) ++{ ++} ++ ++bool ++KWD::Window::compositingActive (void) const ++{ ++ return true; ++} ++ ++bool ++KWD::Window::shadowsActive (void) const ++{ ++ /* we are drawing the shadows ourselves, no need for the ++ decoration engine to do so */ ++ return false; ++} ++ ++double ++KWD::Window::opacity (void) const ++{ ++ return 1.0; ++} ++ ++void + KWD::Window::createDecoration (void) + { + KDecoration *decor; +diff --git a/kde/window-decorator-kde4/window.h b/kde/window-decorator-kde4/window.h +index bdf2c47..034e6fe 100644 +--- a/kde/window-decorator-kde4/window.h ++++ b/kde/window-decorator-kde4/window.h +@@ -45,7 +45,7 @@ class QMenu; + + namespace KWD + { +-class Window:public QWidget, public KDecorationBridge { ++class Window:public QWidget, public KDecorationBridgeUnstable { + Q_OBJECT public: + + enum Type +@@ -104,6 +104,12 @@ class Window:public QWidget, public KDecorationBridge { + virtual Qt::WFlags initialWFlags (void) const; + virtual void grabXServer (bool grab); + ++ /* unstable API */ ++ virtual void repaintShadow (); ++ virtual bool compositingActive () const; ++ virtual bool shadowsActive () const; ++ virtual double opacity () const; ++ + void handleActiveChange (void); + void updateFrame (WId frame); + void updateWindowGeometry (void); + diff --git a/source/x/x11/patch/compiz/compiz-0.7.8-kde42-krunner.patch b/source/x/x11/patch/compiz/compiz-0.7.8-kde42-krunner.patch new file mode 100644 index 000000000..3de71af82 --- /dev/null +++ b/source/x/x11/patch/compiz/compiz-0.7.8-kde42-krunner.patch @@ -0,0 +1,19 @@ +diff --git a/kde/window-decorator-kde4/decorator.cpp b/kde/window-decorator-kde4/decorator.cpp +index 96b818d..0bf4718 100644 +--- a/kde/window-decorator-kde4/decorator.cpp ++++ b/kde/window-decorator-kde4/decorator.cpp +@@ -649,9 +649,10 @@ KWD::Decorator::x11EventFilter (XEvent *xevent) + } + else if (action == Atoms::toolkitActionRunDialogAtom) + { +- QDBusInterface krunner ("org.kde.krunner", "/Interface", +- "org.kde.krunner.Interface"); +- krunner.call ("display", ""); ++ QDBusInterface krunner ("org.kde.krunner", "/App", ++ "org.kde.krunner.App"); ++ if (krunner.isValid ()) ++ krunner.call ("display"); + } + else if (action == Atoms::toolkitActionForceQuitDialogAtom) + { + diff --git a/source/x/x11/patch/compiz/compiz-0.7.8-kde42.patch b/source/x/x11/patch/compiz/compiz-0.7.8-kde42.patch new file mode 100644 index 000000000..0f9962233 --- /dev/null +++ b/source/x/x11/patch/compiz/compiz-0.7.8-kde42.patch @@ -0,0 +1,89 @@ +diff -ur compiz-0.7.8/configure compiz-0.7.8-kde42/configure +--- compiz-0.7.8/configure 2008-09-17 13:34:28.000000000 +0200 ++++ compiz-0.7.8-kde42/configure 2008-12-01 19:07:49.000000000 +0100 +@@ -25429,7 +25429,7 @@ + kde4libs=`kde4-config --install lib --expandvars 2>/dev/null` + kde4incs=`kde4-config --install include --expandvars 2>/dev/null` + +- kde4_test_includes="kdecoration.h kcommondecoration.h kdecorationbridge.h plasma/panelsvg.h" ++ kde4_test_includes="kdecoration.h kcommondecoration.h kdecorationbridge.h plasma/framesvg.h" + + { echo "$as_me:$LINENO: checking for KWin headers" >&5 + echo $ECHO_N "checking for KWin headers... $ECHO_C" >&6; } +diff -ur compiz-0.7.8/configure.ac compiz-0.7.8-kde42/configure.ac +--- compiz-0.7.8/configure.ac 2008-09-17 13:33:40.000000000 +0200 ++++ compiz-0.7.8-kde42/configure.ac 2008-12-01 19:07:33.000000000 +0100 +@@ -487,7 +487,7 @@ + kde4libs=`kde4-config --install lib --expandvars 2>/dev/null` + kde4incs=`kde4-config --install include --expandvars 2>/dev/null` + +- kde4_test_includes="kdecoration.h kcommondecoration.h kdecorationbridge.h plasma/panelsvg.h" ++ kde4_test_includes="kdecoration.h kcommondecoration.h kdecorationbridge.h plasma/framesvg.h" + + dnl Check for KWin headers + AC_MSG_CHECKING([for KWin headers]) +diff -ur compiz-0.7.8/kde/window-decorator-kde4/switcher.cpp compiz-0.7.8-kde42/kde/window-decorator-kde4/switcher.cpp +--- compiz-0.7.8/kde/window-decorator-kde4/switcher.cpp 2008-08-08 13:20:31.000000000 +0200 ++++ compiz-0.7.8-kde42/kde/window-decorator-kde4/switcher.cpp 2008-12-01 19:13:18.000000000 +0100 +@@ -30,7 +30,7 @@ + + #include + +-#include ++#include + #include + + #include +@@ -46,9 +46,9 @@ + QColor color; + color = Plasma::Theme::defaultTheme ()->color (Plasma::Theme::TextColor); + +- mBackground = new Plasma::PanelSvg(); ++ mBackground = new Plasma::FrameSvg(); + mBackground->setImagePath ("dialogs/background"); +- mBackground->setEnabledBorders(Plasma::PanelSvg::AllBorders); ++ mBackground->setEnabledBorders(Plasma::FrameSvg::AllBorders); + + mBorder.left = mBackground->marginSize(Plasma::LeftMargin); + mBorder.right = mBackground->marginSize(Plasma::RightMargin); +@@ -131,8 +131,8 @@ + p.setCompositionMode (QPainter::CompositionMode_Source); + p.setRenderHint (QPainter::SmoothPixmapTransform); + +- mBackground->resizePanel (QSizeF (contentWidth, contentHeight)); +- mBackground->paintPanel (&p, QRect (0, 0, contentWidth, ++ mBackground->resizeFrame (QSizeF (contentWidth, contentHeight)); ++ mBackground->paintFrame (&p, QRect (0, 0, contentWidth, + contentHeight)); + + mBackgroundPixmap = mPixmap.copy (mBorder.left, mBorder.top, +@@ -168,7 +168,7 @@ + p.setCompositionMode (QPainter::CompositionMode_Source); + + +- mBackground->paintPanel (&p, QRect (mBorder.left, mBorder.top + ++ mBackground->paintFrame (&p, QRect (mBorder.left, mBorder.top + + mGeometry.height () + 5, mGeometry.width (), + fm.height ())); + +diff -ur compiz-0.7.8/kde/window-decorator-kde4/switcher.h compiz-0.7.8-kde42/kde/window-decorator-kde4/switcher.h +--- compiz-0.7.8/kde/window-decorator-kde4/switcher.h 2008-08-08 13:20:31.000000000 +0200 ++++ compiz-0.7.8-kde42/kde/window-decorator-kde4/switcher.h 2008-12-01 19:28:37.000000000 +0100 +@@ -30,7 +30,7 @@ + + namespace Plasma + { +-class PanelSvg; ++class FrameSvg; + } + + class QSpacerItem; +@@ -70,7 +70,7 @@ + + QRect mGeometry; + +- Plasma::PanelSvg *mBackground; ++ Plasma::FrameSvg *mBackground; + QPixmap mPixmap; + QPixmap mBackgroundPixmap; + diff --git a/source/x/x11/patch/xorg-server.patch b/source/x/x11/patch/xorg-server.patch new file mode 100644 index 000000000..41aa4270d --- /dev/null +++ b/source/x/x11/patch/xorg-server.patch @@ -0,0 +1 @@ +zcat $CWD/patch/xorg-server/x11.startwithblackscreen.diff.gz | patch -p1 --verbose || exit 1 diff --git a/source/x/x11/patch/xorg-server/x11.startwithblackscreen.diff b/source/x/x11/patch/xorg-server/x11.startwithblackscreen.diff new file mode 100644 index 000000000..bfa9c305d --- /dev/null +++ b/source/x/x11/patch/xorg-server/x11.startwithblackscreen.diff @@ -0,0 +1,13 @@ +--- ./dix/window.c.orig 2007-01-22 23:39:15.000000000 -0600 ++++ ./dix/window.c 2007-02-14 03:21:03.000000000 -0600 +@@ -140,8 +140,8 @@ + * + ******/ + +-static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11}; +-static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88}; ++static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00}; ++static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00}; + + _X_EXPORT int screenIsSaved = SCREEN_SAVER_OFF; + diff --git a/source/x/x11/patch/xscope.patch b/source/x/x11/patch/xscope.patch new file mode 100644 index 000000000..a41588a0b --- /dev/null +++ b/source/x/x11/patch/xscope.patch @@ -0,0 +1 @@ +zcat $CWD/patch/xscope/xscope-1.1-scope.c.diff.gz | patch -p1 --verbose || exit 1 diff --git a/source/x/x11/patch/xscope/xscope-1.1-scope.c.diff b/source/x/x11/patch/xscope/xscope-1.1-scope.c.diff new file mode 100644 index 000000000..2c01dbac2 --- /dev/null +++ b/source/x/x11/patch/xscope/xscope-1.1-scope.c.diff @@ -0,0 +1,11 @@ +diff -Nur xscope-1.1.orig/scope.c xscope-1.1/scope.c +--- xscope-1.1.orig/scope.c 2008-09-22 21:18:16.000000000 -0500 ++++ xscope-1.1/scope.c 2009-04-08 23:54:12.230818270 -0500 +@@ -58,6 +58,7 @@ + #include + #include + #include ++#include + + #ifdef SYSV + #define bzero(s,l) memset(s, 0, l) diff --git a/source/x/x11/post-install/beforelight.post-install b/source/x/x11/post-install/beforelight.post-install new file mode 100644 index 000000000..9b39d02e8 --- /dev/null +++ b/source/x/x11/post-install/beforelight.post-install @@ -0,0 +1,7 @@ +# DESTDIR is seriously broken on this one, but since nobody +# knows what it's for that's probably why it isn't noticed. +if [ -d $PKG/tmp/x11-build/package-beforelight/etc/X11/app-defaults ]; then + mkdir -p $PKG/etc/X11/app-defaults + mv $PKG/tmp/x11-build/package-beforelight/etc/X11/app-defaults/Beforelight $PKG/etc/X11/app-defaults + rm -rf $PKG/tmp +fi diff --git a/source/x/x11/post-install/encodings.post-install b/source/x/x11/post-install/encodings.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/encodings.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-adobe-100dpi.post-install b/source/x/x11/post-install/font-adobe-100dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-adobe-100dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-adobe-75dpi.post-install b/source/x/x11/post-install/font-adobe-75dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-adobe-75dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-adobe-utopia-100dpi.post-install b/source/x/x11/post-install/font-adobe-utopia-100dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-adobe-utopia-100dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-adobe-utopia-75dpi.post-install b/source/x/x11/post-install/font-adobe-utopia-75dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-adobe-utopia-75dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-adobe-utopia-type1.post-install b/source/x/x11/post-install/font-adobe-utopia-type1.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-adobe-utopia-type1.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-alias.post-install b/source/x/x11/post-install/font-alias.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-alias.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-arabic-misc.post-install b/source/x/x11/post-install/font-arabic-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-arabic-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bh-100dpi.post-install b/source/x/x11/post-install/font-bh-100dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bh-100dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bh-75dpi.post-install b/source/x/x11/post-install/font-bh-75dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bh-75dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bh-lucidatypewriter-100dpi.post-install b/source/x/x11/post-install/font-bh-lucidatypewriter-100dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bh-lucidatypewriter-100dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bh-lucidatypewriter-75dpi.post-install b/source/x/x11/post-install/font-bh-lucidatypewriter-75dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bh-lucidatypewriter-75dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bh-ttf.post-install b/source/x/x11/post-install/font-bh-ttf.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bh-ttf.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bh-type1.post-install b/source/x/x11/post-install/font-bh-type1.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bh-type1.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bitstream-100dpi.post-install b/source/x/x11/post-install/font-bitstream-100dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bitstream-100dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bitstream-75dpi.post-install b/source/x/x11/post-install/font-bitstream-75dpi.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bitstream-75dpi.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bitstream-speedo.post-install b/source/x/x11/post-install/font-bitstream-speedo.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bitstream-speedo.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-bitstream-type1.post-install b/source/x/x11/post-install/font-bitstream-type1.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-bitstream-type1.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-cronyx-cyrillic.post-install b/source/x/x11/post-install/font-cronyx-cyrillic.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-cronyx-cyrillic.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-cursor-misc.post-install b/source/x/x11/post-install/font-cursor-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-cursor-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-daewoo-misc.post-install b/source/x/x11/post-install/font-daewoo-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-daewoo-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-dec-misc.post-install b/source/x/x11/post-install/font-dec-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-dec-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-ibm-type1.post-install b/source/x/x11/post-install/font-ibm-type1.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-ibm-type1.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-isas-misc.post-install b/source/x/x11/post-install/font-isas-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-isas-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-jis-misc.post-install b/source/x/x11/post-install/font-jis-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-jis-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-micro-misc.post-install b/source/x/x11/post-install/font-micro-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-micro-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-misc-cyrillic.post-install b/source/x/x11/post-install/font-misc-cyrillic.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-misc-cyrillic.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-misc-ethiopic.post-install b/source/x/x11/post-install/font-misc-ethiopic.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-misc-ethiopic.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-misc-meltho.post-install b/source/x/x11/post-install/font-misc-meltho.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-misc-meltho.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-misc-misc.post-install b/source/x/x11/post-install/font-misc-misc.post-install new file mode 100644 index 000000000..43a27f906 --- /dev/null +++ b/source/x/x11/post-install/font-misc-misc.post-install @@ -0,0 +1,17 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib +mkdir -p $PKG/usr/share/fonts/misc + +# OK, this seems plain wrong. The install scripts should handle this. + +## We'll use the fonts/encodings on the system, so hopefully they are the right ones... +#( cd /usr/share/fonts/misc +# mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large +# cp -a encodings.dir fonts.alias fonts.dir fonts.scale $PKG/usr/share/fonts/misc +#) diff --git a/source/x/x11/post-install/font-mutt-misc.post-install b/source/x/x11/post-install/font-mutt-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-mutt-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-schumacher-misc.post-install b/source/x/x11/post-install/font-schumacher-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-schumacher-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-screen-cyrillic.post-install b/source/x/x11/post-install/font-screen-cyrillic.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-screen-cyrillic.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-sony-misc.post-install b/source/x/x11/post-install/font-sony-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-sony-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-sun-misc.post-install b/source/x/x11/post-install/font-sun-misc.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-sun-misc.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-util.post-install b/source/x/x11/post-install/font-util.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-util.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-winitzki-cyrillic.post-install b/source/x/x11/post-install/font-winitzki-cyrillic.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-winitzki-cyrillic.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/font-xfree86-type1.post-install b/source/x/x11/post-install/font-xfree86-type1.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/font-xfree86-type1.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/lbxproxy.post-install b/source/x/x11/post-install/lbxproxy.post-install new file mode 100644 index 000000000..9bb110324 --- /dev/null +++ b/source/x/x11/post-install/lbxproxy.post-install @@ -0,0 +1,5 @@ +mkdir -p $PKG/etc/X11 +( cd $PKG/usr/lib/X11 + mv lbxproxy $PKG/etc/X11 + ln -sf ../../../etc/X11/lbxproxy . +) diff --git a/source/x/x11/post-install/libXaw.post-install b/source/x/x11/post-install/libXaw.post-install new file mode 100644 index 000000000..37b7fb180 --- /dev/null +++ b/source/x/x11/post-install/libXaw.post-install @@ -0,0 +1,36 @@ + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# Older versions of libXaw shipped a libXaw8.so.8 aka libXaw.so.8. +# This has since been removed (thanks), so we will, at least for now, +# make libXaw.so.8 a symlink to libXaw.so.7 so that programs that used +# that version of libXaw will still function if they didn't actually +# use any of the Xprint functions that were in .8 but not .7. We are +# not aware of anything that used them, which is probably why the whole +# library ended up considered dead weight. Next time we hope that +# upstream will consider using a different library name instead of +# floating a higher major library version and then pulling it. + +( cd $PKG/usr/lib + ln -sf libXaw.so.7 libXaw.so.8 +) + diff --git a/source/x/x11/post-install/libpthread-stubs.post-install b/source/x/x11/post-install/libpthread-stubs.post-install new file mode 100644 index 000000000..f7ee375ac --- /dev/null +++ b/source/x/x11/post-install/libpthread-stubs.post-install @@ -0,0 +1,5 @@ +# Add documentation: +mkdir -p $PKG/usr/doc/libpthread-stubs-server-$MODULAR_PACKAGE_VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/libpthread-stubs-server-$MODULAR_PACKAGE_VERSION diff --git a/source/x/x11/post-install/libxcb.post-install b/source/x/x11/post-install/libxcb.post-install new file mode 100644 index 000000000..76ac40c0d --- /dev/null +++ b/source/x/x11/post-install/libxcb.post-install @@ -0,0 +1,52 @@ + +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. +# + +# Add documentation: +mkdir -p $PKG/usr/doc/libxcb-$MODULAR_PACKAGE_VERSION +cp -a \ + COPYING INSTALL NEWS README \ + $PKG/usr/doc/libxcb-$MODULAR_PACKAGE_VERSION +mv $PKG/usr/share/doc/libxcb/tutorial $PKG/usr/doc/libxcb-$MODULAR_PACKAGE_VERSION +# The manual isn't building for now, so... +rm -rf $PKG/usr/share/doc/libxcb +rmdir $PKG/usr/share/doc +rmdir $PKG/usr/share + +# Older versions of libxcb shipped a poorly libtooled .la file that caused +# the now-gone libxcb-xlib.so module to be incorrectly linked with many +# binaries and libraries, and cause the module to be listed (again, +# incorrectly) in a lot of .la files. Rather than breaking a large amount +# of existing X programs, we will use this simple trick to allow old binaries +# to keep running, and new things to compile even if a bogus .la file +# referencing libxcb-xlib is in the development environment. +# +# References to libxcb-xlib will go away as things are recompiled in the +# future (we've eliminated any remaining references in Slackware itself). +# +# It's like letting a sliver work out instead of cutting off the finger. + +( cd $PKG/usr/lib + ln -sf libxcb.so.1 libxcb-xlib.so.0 + ln -sf libxcb-xlib.so.0 libxcb-xlib.so + ln -sf libxcb.la libxcb-xlib.la +) + diff --git a/source/x/x11/post-install/mkfontdir.post-install b/source/x/x11/post-install/mkfontdir.post-install new file mode 100644 index 000000000..00a3a22db --- /dev/null +++ b/source/x/x11/post-install/mkfontdir.post-install @@ -0,0 +1,4 @@ +mkdir -p $PKG/var/log/setup +cp -a $CWD/post-install/mkfontdir/setup.04.mkfontdir $PKG/var/log/setup/setup.04.mkfontdir +chown root:root $PKG/var/log/setup/setup.04.mkfontdir +chmod 755 $PKG/var/log/setup/setup.04.mkfontdir diff --git a/source/x/x11/post-install/mkfontdir/setup.04.mkfontdir b/source/x/x11/post-install/mkfontdir/setup.04.mkfontdir new file mode 100644 index 000000000..b54076332 --- /dev/null +++ b/source/x/x11/post-install/mkfontdir/setup.04.mkfontdir @@ -0,0 +1,23 @@ +#!/bin/sh +#BLURB="Run mkfontdir and mkfontscale in font directories." +# Just in case. +chroot . /sbin/ldconfig 1> /dev/null 2> /dev/null +if [ -x usr/bin/fc-cache ]; then + if [ "$COLOR" = "on" -o -r $TMP/SeTcolor ]; then + dialog --title "MKFONTDIR AND MKFONTSCALE UPDATE" --infobox \ + "Please wait while we run mkfontscale and mkfontdir in \ +your font directories." 4 68 + else + echo "Please wait while we run mkfontscale and mkfontdir in your font directories." + fi + for fontdir in 100dpi 75dpi OTF Speedo TTF Type1 cyrillic ; do + if [ -d usr/share/fonts/$fontdir ]; then + chroot . mkfontscale /usr/share/fonts/$fontdir 1> /dev/null 2> /dev/null + chroot . mkfontdir /usr/share/fonts/$fontdir 1> /dev/null 2> /dev/null + fi + done + if [ -d usr/share/fonts/misc ]; then + chroot . mkfontscale /usr/share/fonts/misc 1> /dev/null 2> /dev/null + chroot . mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large /usr/share/fonts/misc 1> /dev/null 2> /dev/null + fi +fi diff --git a/source/x/x11/post-install/pixman.post-install b/source/x/x11/post-install/pixman.post-install new file mode 100644 index 000000000..c2678e748 --- /dev/null +++ b/source/x/x11/post-install/pixman.post-install @@ -0,0 +1,9 @@ +# Yes, this is ugly, but for some reason several things are not +# looking at pixman.pc to get -I/usr/include/pixman-1/. +# This is the path of least resistance (for now). + +( cd $PKG/usr/include + ln -sf pixman-1/pixman-version.h . + ln -sf pixman-1/pixman.h . + ln -sf pixman-1 pixman +) diff --git a/source/x/x11/post-install/proxymngr.post-install b/source/x/x11/post-install/proxymngr.post-install new file mode 100644 index 000000000..29c647c30 --- /dev/null +++ b/source/x/x11/post-install/proxymngr.post-install @@ -0,0 +1,5 @@ +mkdir -p $PKG/etc/X11 +( cd $PKG/usr/lib/X11 + mv proxymngr $PKG/etc/X11 + ln -sf ../../../etc/X11/proxymngr . +) diff --git a/source/x/x11/post-install/rstart.post-install b/source/x/x11/post-install/rstart.post-install new file mode 100644 index 000000000..d51ad34d5 --- /dev/null +++ b/source/x/x11/post-install/rstart.post-install @@ -0,0 +1,5 @@ +mkdir -p $PKG/etc/X11 +( cd $PKG/usr/lib/X11 + mv rstart $PKG/etc/X11 + ln -sf ../../../etc/X11/rstart . +) diff --git a/source/x/x11/post-install/twm.post-install b/source/x/x11/post-install/twm.post-install new file mode 100644 index 000000000..2b8156695 --- /dev/null +++ b/source/x/x11/post-install/twm.post-install @@ -0,0 +1,4 @@ +mkdir -p $PKG/etc/X11/xinit +cp -a $CWD/post-install/twm/xinitrc.twm $PKG/etc/X11/xinit +chown root:root $PKG/etc/X11/xinit/xinitrc.twm +chmod 755 $PKG/etc/X11/xinit/xinitrc.twm diff --git a/source/x/x11/post-install/twm/xinitrc.twm b/source/x/x11/post-install/twm/xinitrc.twm new file mode 100644 index 000000000..1bb5185e6 --- /dev/null +++ b/source/x/x11/post-install/twm/xinitrc.twm @@ -0,0 +1,33 @@ +#!/bin/sh +# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $ + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/usr/lib/X11/xinit/.Xresources +sysmodmap=/usr/lib/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + /usr/bin/xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + /usr/bin/xmodmap $sysmodmap +fi + +if [ -f $userresources ]; then + /usr/bin/xrdb -merge $userresources +fi + +if [ -f $usermodmap ]; then + /usr/bin/xmodmap $usermodmap +fi + +# start some nice programs + +/usr/bin/twm & +/usr/bin/xclock -geometry 50x50-1+1 & +/usr/bin/xterm -geometry 80x50+494+51 & +/usr/bin/xterm -geometry 80x20+494-0 & +exec /usr/bin/xterm -geometry 80x66+0+0 -name login diff --git a/source/x/x11/post-install/x11-app-test.post-install b/source/x/x11/post-install/x11-app-test.post-install new file mode 100644 index 000000000..82ec3cefe --- /dev/null +++ b/source/x/x11/post-install/x11-app-test.post-install @@ -0,0 +1,13 @@ +VERSION=i20070206 +# Move things into /etc/X11 that are supposed to be there: +if [ -d usr/lib/X11 ]; then + ( cd $PKG/usr/lib/X11 + for dir in fs lbxproxy proxymngr rstart xdm xinit xsm ; do + if [ -d $dir ]; then + mkdir -p $PKG/etc/X11 + mv $dir $PKG/etc/X11 + ln -sf ../../../etc/X11/$dir . + done + done + ) +fi diff --git a/source/x/x11/post-install/x11-font.post-install b/source/x/x11/post-install/x11-font.post-install new file mode 100644 index 000000000..25533670d --- /dev/null +++ b/source/x/x11/post-install/x11-font.post-install @@ -0,0 +1,8 @@ +# The fonts really should go in /usr/share/fonts: +mkdir -p $PKG/usr/share +mv $PKG/usr/lib/X11/fonts $PKG/usr/share +# I use this strange sequence so I'll notice if anything else +# pops up in /usr/lib/X11: +rmdir $PKG/usr/lib/X11/fonts +rmdir $PKG/usr/lib/X11 +rmdir $PKG/usr/lib diff --git a/source/x/x11/post-install/x11-util.post-install b/source/x/x11/post-install/x11-util.post-install new file mode 100644 index 000000000..bafbe0d1f --- /dev/null +++ b/source/x/x11/post-install/x11-util.post-install @@ -0,0 +1,2 @@ +# Remove the empty host.def: +rm -f $PKG/usr/lib/X11/config/host.def diff --git a/source/x/x11/post-install/xcb-proto.post-install b/source/x/x11/post-install/xcb-proto.post-install new file mode 100644 index 000000000..eb341027a --- /dev/null +++ b/source/x/x11/post-install/xcb-proto.post-install @@ -0,0 +1,5 @@ +# Add documentation: +mkdir -p $PKG/usr/doc/xcb-proto-$MODULAR_PACKAGE_VERSION +cp -a \ + COPYING README \ + $PKG/usr/doc/xcb-proto-$MODULAR_PACKAGE_VERSION diff --git a/source/x/x11/post-install/xdm.post-install b/source/x/x11/post-install/xdm.post-install new file mode 100644 index 000000000..05e37163e --- /dev/null +++ b/source/x/x11/post-install/xdm.post-install @@ -0,0 +1,16 @@ +mkdir -p $PKG/etc/X11 +( cd $PKG/usr/lib/X11 + mv xdm $PKG/etc/X11 + ln -sf ../../../etc/X11/xdm . +) +mv $PKG/etc/X11/xdm/Xsession $PKG/etc/X11/xdm/Xsession.orig +mv $PKG/etc/X11/xdm/Xsetup_0 $PKG/etc/X11/xdm/Xsetup_0.orig +cp -a $CWD/post-install/xdm/Xsession $PKG/etc/X11/xdm/Xsession +cp -a $CWD/post-install/xdm/Xsetup_0 $PKG/etc/X11/xdm/Xsetup_0 +chown root:root $PKG/etc/X11/xdm/Xsession $PKG/etc/X11/xdm/Xsetup_0 +chmod 755 $PKG/etc/X11/xdm/Xsession $PKG/etc/X11/xdm/Xsetup_0 +( cd $PKG/etc/X11/xdm + mv xdm-config xdm-config.new + mv Xservers Xservers.new + mv Xsession Xsession.new +) diff --git a/source/x/x11/post-install/xdm/Xsession b/source/x/x11/post-install/xdm/Xsession new file mode 100755 index 000000000..6484b0965 --- /dev/null +++ b/source/x/x11/post-install/xdm/Xsession @@ -0,0 +1,203 @@ +#!/bin/sh +# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $ +# +# +# $XFree86: xc/programs/xdm/config/Xsession,v 1.2 1998/01/11 03:48:32 dawes Exp $ +# Modified for Slackware-3.5, 28-Mar-98 volkerdi +# Extensively rewritten for Slackware 7.0, 03-Oct-1999 volkerdi +# Patched to give priority to $HOME/.xsession, 10-Oct-1999 volkerdi +# Merged changes into upstream (XFree86-4.0.2) version, 17-Feb-2001 volkerdi +# Fixes for $PATH (from Jim Diamond), GDM/KDM/XDM, 2003-02-07 volkerdi +# Use absolute paths until $PATH is set, 2006-01-11 (Al's 100th :-) volkerdi +# merged changes from # $Xorg: Xsession,v 1.4 2000/08/17 19:54:17 cpqbld Exp $, 2007-02-13 volkerdi + +# redirect errors to a file in user's home directory if we can +errfile="$HOME/.xsession-errors" +if ( umask 077 && cp /dev/null "$errfile" 2> /dev/null ) +then + exec > "$errfile" 2>&1 +else + + mktemp=/usr/bin/mktemp + for errfile in "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER" + do + if ef="$( umask 077 && $mktemp "$errfile.XXXXXX" 2> /dev/null)" + then + exec > "$ef" 2>&1 + mv "$ef" "$errfile" 2> /dev/null + break + fi + done +fi + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/usr/lib/X11/xinit/.Xresources +sysmodmap=/usr/lib/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -r $sysresources ]; then + /usr/bin/xrdb -merge $sysresources +fi + +if [ -r $sysmodmap ]; then + /usr/bin/xmodmap $sysmodmap +fi + +if [ -r $userresources ]; then + /usr/bin/xrdb -merge $userresources +fi + +if [ -r $usermodmap ]; then + /usr/bin/xmodmap $usermodmap +fi + +# Since xdm doesn't run a bash -login shell (or any other login shell) +# we should source these files to set up the user's environment. +profile=/etc/profile +userprofile=~/.profile + +if [ -r $profile ]; then + source $profile 1> /dev/null 2> /dev/null +fi +if [ -r $userprofile ]; then + source $userprofile 1> /dev/null 2> /dev/null +fi + +# Set the $PATH through the user's preferred shell. +case `basename "$SHELL"` in +bash|sh|ash) + PATH="`( echo 'echo $PATH' | bash --login ) | tail -1`" + ;; +csh|tcsh) + PATH="`( echo 'echo $PATH' | tcsh -l ) | tail -1`" + ;; +ksh) + PATH="`( cat /etc/profile ; echo 'echo $PATH' ) | ksh | tail -1`" + ;; +zsh) + PATH="`( echo 'echo $PATH' | zsh -l ) | tail -1`" + ;; +*) + # We don't know your shell, so we'll set up reasonable defaults. + if [ "`whoami`" = "root" ]; then + PATH=$PATH:/usr/local/sbin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin + else + PATH=$PATH:/usr/local/bin:/bin:/usr/bin + fi + ;; +esac + +# These files (if they exist) are used to set up the X related environment. We used to +# exec .xsession at this location, but that can interfere with choosing a session type +# through XDM/KDM/GDM so it was moved to after a requested session is started. Since +# that means that .xsession might never be run at all when using XDM/KDM/GDM, support +# for the xprofile was added to allow a way for the user to customize the X environment. +if [ -r /etc/xprofile ]; then + source /etc/xprofile +fi +if [ -r ~/.xprofile ]; then + source ~/.xprofile +fi + +# Some people say that an .xsession file should always be given priority, even if a +# different window manager was requested in $1. If you want that behavior, uncomment +# the lines below. This is not recommended (nor, in general, is the use of an +# .xsession file as a default... it should be left for the advanced users). +#if [ -x $HOME/.xsession ]; then +# exec $HOME/.xsession $@ +#fi + +# If a particular session type was requested in $1, start that session: +case "$1" in +failsafe) + xsetroot -solid SteelBlue + exec xterm -geometry 80x24-0-0 + ;; +kde) + exec startkde + ;; +gnome) + exec gnome-session + ;; +openwin) + exec olvwm + ;; +fluxbox) + exec fluxbox + ;; +fvwm2) + xsetroot -solid SteelBlue + exec fvwm2 + ;; +fvwm95) + xsetroot -solid SteelBlue + exec fvwm95 + ;; +blackbox) + exec blackbox + ;; +xfce) + exec /etc/X11/xinit/xinitrc.xfce + ;; +windowmaker) + exec /etc/X11/xinit/xinitrc.wmaker + ;; +afterstep) + exec afterstep + ;; +enlightenment) + exec enlightenment + ;; +twm) + #xclock -geometry 50x50-1+1 & + #xterm -geometry 80x50+494+51 & + #xterm -geometry 80x20+494-0 & + #xterm -geometry 80x66+0+0 -name login & + xsetroot -solid SteelBlue + exec twm + ;; +esac + +# If we aren't running from XDM/KDM/GDM and no window manager was +# specified, then we'll run the user's $HOME/.xsession if it's +# executable. This must be set up to run the user's window manager. +if [ -x $HOME/.xsession ]; then + exec $HOME/.xsession $@ +fi + +# If the user doesn't have their own xsession and none was specified in +# $1, then run the system default session type: +if [ -r /etc/X11/xinit/xinitrc ]; then + exec /etc/X11/xinit/xinitrc +fi + +# If a $startup variable is set to define the window or session manager, +# then run that: +if [ -s "$startup" -a -x "$startup" ]; then + exec "$startup" +else + if [ -r "$resources" ]; then + /usr/bin/xrdb -load "$resources" + fi + # Run xsm as a failsafe. + exec xsm +fi + +startup=$HOME/.xsession +resources=$HOME/.Xresources + +if [ -s "$startup" ]; then + if [ -x "$startup" ]; then + exec "$startup" + else + exec /bin/sh "$startup" + fi +else + if [ -r "$resources" ]; then + /usr/bin/xrdb -load "$resources" + fi + exec /usr/bin/xsm +fi + diff --git a/source/x/x11/post-install/xdm/Xsession.orig b/source/x/x11/post-install/xdm/Xsession.orig new file mode 100755 index 000000000..993e7418d --- /dev/null +++ b/source/x/x11/post-install/xdm/Xsession.orig @@ -0,0 +1,37 @@ +#!/bin/sh +# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $ +# +# +# $XFree86: xc/programs/xdm/config/Xsession,v 1.2 1998/01/11 03:48:32 dawes Exp $ + +# redirect errors to a file in user's home directory if we can +for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER" +do + if ( cp /dev/null "$errfile" 2> /dev/null ) + then + chmod 600 "$errfile" + exec > "$errfile" 2>&1 + break + fi +done + +case $# in +1) + case $1 in + failsafe) + exec xterm -geometry 80x24-0-0 + ;; + esac +esac + +startup=$HOME/.xsession +resources=$HOME/.Xresources + +if [ -s "$startup" -a -x "$startup" ]; then + exec "$startup" +else + if [ -r "$resources" ]; then + xrdb -load "$resources" + fi + exec xsm +fi diff --git a/source/x/x11/post-install/xdm/Xsetup_0 b/source/x/x11/post-install/xdm/Xsetup_0 new file mode 100755 index 000000000..fee6af06c --- /dev/null +++ b/source/x/x11/post-install/xdm/Xsetup_0 @@ -0,0 +1,18 @@ +#!/bin/sh +# $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $ +#xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail + +# Fix backspace problem in login box: +sysmodmap=/etc/X11/xinit/.Xmodmap +if [ -f $sysmodmap ]; then + /usr/bin/xmodmap $sysmodmap +fi + +# If the nifty KDE background loader is around, use it: +if [ -x /opt/kde/bin/kdmdesktop ]; then + /opt/kde/bin/kdmdesktop +elif [ -x /usr/bin/kdmdesktop ]; then + /usr/bin/kdmdesktop +else + /usr/bin/xsetroot -solid SteelBlue +fi diff --git a/source/x/x11/post-install/xdm/Xsetup_0.orig b/source/x/x11/post-install/xdm/Xsetup_0.orig new file mode 100755 index 000000000..8e30694f2 --- /dev/null +++ b/source/x/x11/post-install/xdm/Xsetup_0.orig @@ -0,0 +1,3 @@ +#!/bin/sh +# $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $ +xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail diff --git a/source/x/x11/post-install/xf86-input-joystick.post-install b/source/x/x11/post-install/xf86-input-joystick.post-install new file mode 100644 index 000000000..755c5a9c1 --- /dev/null +++ b/source/x/x11/post-install/xf86-input-joystick.post-install @@ -0,0 +1 @@ +mv $PKG/usr/man/man4x $PKG/usr/man/man4 diff --git a/source/x/x11/post-install/xf86-input-synaptics.post-install b/source/x/x11/post-install/xf86-input-synaptics.post-install new file mode 100644 index 000000000..d7de8a4e0 --- /dev/null +++ b/source/x/x11/post-install/xf86-input-synaptics.post-install @@ -0,0 +1,9 @@ +mkdir -p $PKG/usr/share/hal/fdi/policy/10osvendor +cat fdi/11-x11-synaptics.fdi > \ + $PKG/usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi + +mkdir -p $PKG/usr/doc/xf86-input-synaptics-$MODULAR_PACKAGE_VERSION +cp -a \ + NEWS README TODO \ + $PKG/usr/doc/xf86-input-synaptics-$MODULAR_PACKAGE_VERSION + diff --git a/source/x/x11/post-install/xfs.post-install b/source/x/x11/post-install/xfs.post-install new file mode 100644 index 000000000..0292124e3 --- /dev/null +++ b/source/x/x11/post-install/xfs.post-install @@ -0,0 +1,2 @@ +mv $PKG/etc/X11/fs/config $PKG/etc/X11/fs/config.new + diff --git a/source/x/x11/post-install/xinit.post-install b/source/x/x11/post-install/xinit.post-install new file mode 100644 index 000000000..818764eca --- /dev/null +++ b/source/x/x11/post-install/xinit.post-install @@ -0,0 +1,17 @@ +mkdir -p $PKG/etc/X11 +( cd $PKG/usr/lib/X11 + mv xinit $PKG/etc/X11 + ln -sf ../../../etc/X11/xinit . +) +cp -a $CWD/post-install/xinit/README.Xmodmap $PKG/etc/X11/xinit +chown root:root $PKG/etc/X11/xinit/README.Xmodmap +chmod 644 $PKG/etc/X11/xinit/README.Xmodmap + +# This should be selected by xwmconfig, and should not be included in the +# package at all. Since this was included in the older package (and not +# as "new") upgrading this will erase your xinitrc, and you'll have to +# run xwmconfig again. Sorry about that, but it's better than having your +# xinitrc overwritten with the TWM version... + +rm -f $PKG/etc/X11/xinit/xinitrc + diff --git a/source/x/x11/post-install/xinit/README.Xmodmap b/source/x/x11/post-install/xinit/README.Xmodmap new file mode 100644 index 000000000..237fd9470 --- /dev/null +++ b/source/x/x11/post-install/xinit/README.Xmodmap @@ -0,0 +1,10 @@ + +# In versions of XFree86 prior to 4.3.0, a .Xmodmap file was required in +# this directory in order to make the backspace key function correctly. +# This does not seem to be needed any longer, but if you notice problems +# with the backspace key, you might want to try it. + +# Old .Xmodmap follows: + +keycode 22 = BackSpace + diff --git a/source/x/x11/post-install/xkeyboard-config.post-install b/source/x/x11/post-install/xkeyboard-config.post-install new file mode 100644 index 000000000..8446f0641 --- /dev/null +++ b/source/x/x11/post-install/xkeyboard-config.post-install @@ -0,0 +1,11 @@ +# Move things into /etc/X11 that are supposed to be there: +#mkdir -p $PKG/etc/X11 +#rm -rf $PKG/etc/X11/xkb +#mv $PKG/usr/share/X11/xkb $PKG/etc/X11 +mkdir -p $PKG/usr/share/X11 +( cd $PKG/usr/share/X11 ; ln -sf ../../../etc/X11/xkb . ) +#( cd $PKG/etc/X11/xkb/rules +# ln -sf base.lst xorg.lst +# ln -sf base.xml xorg.xml +# ln -sf base xorg +#) diff --git a/source/x/x11/post-install/xorg-cf-files.post-install b/source/x/x11/post-install/xorg-cf-files.post-install new file mode 100644 index 000000000..e5fc2cc45 --- /dev/null +++ b/source/x/x11/post-install/xorg-cf-files.post-install @@ -0,0 +1,7 @@ +if [ "$(uname -m)" = "x86_64" ]; then + ( cd $PKG/usr/lib/X11/config + zcat $CWD/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff.gz | patch -p1 || exit 1 + ) +fi +# Remove the empty host.def: +rm -f $PKG/usr/lib/X11/config/host.def diff --git a/source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff b/source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff new file mode 100644 index 000000000..424bf7332 --- /dev/null +++ b/source/x/x11/post-install/xorg-cf-files/x11.tmpl.lib64.kludge.diff @@ -0,0 +1,14 @@ +--- ./X11.tmpl.orig 2009-08-10 22:24:59.000000000 -0500 ++++ ./X11.tmpl 2009-08-10 22:26:20.000000000 -0500 +@@ -1461,9 +1461,9 @@ + #endif + #ifndef LibDir + # ifdef ProjectRoot +-# define LibDir Concat(ProjectRoot,/lib/X11) ++# define LibDir Concat(ProjectRoot,/lib64/X11) + # else +-# define LibDir /usr/lib/X11 ++# define LibDir /usr/lib64/X11 + # endif + #endif + #ifndef ModuleDir diff --git a/source/x/x11/post-install/xorg-docs.post-install b/source/x/x11/post-install/xorg-docs.post-install new file mode 100644 index 000000000..9857acafb --- /dev/null +++ b/source/x/x11/post-install/xorg-docs.post-install @@ -0,0 +1 @@ +rm $PKG/usr/man/man7/Xprint.7 diff --git a/source/x/x11/post-install/xorg-server.post-install b/source/x/x11/post-install/xorg-server.post-install new file mode 100644 index 000000000..0185cb70c --- /dev/null +++ b/source/x/x11/post-install/xorg-server.post-install @@ -0,0 +1,17 @@ +# Add COPYING file: +mkdir -p $PKG/usr/doc/xorg-server-$MODULAR_PACKAGE_VERSION +cp -a COPYING $PKG/usr/doc/xorg-server-$MODULAR_PACKAGE_VERSION + +# Don't mess with my /var/log/ permissions: +rmdir $PKG/var/log +rmdir $PKG/var + +# While I hate to have X11 take over another generic-sounding +# piece of prime filesystem real estate, this symlink will +# direct (for now) proprietary X drivers into the corrent +# location: + +( cd $PKG/usr/lib + rm -rf modules + ln -sf xorg/modules . +) diff --git a/source/x/x11/post-install/xsm.post-install b/source/x/x11/post-install/xsm.post-install new file mode 100644 index 000000000..509b84477 --- /dev/null +++ b/source/x/x11/post-install/xsm.post-install @@ -0,0 +1,5 @@ +mkdir -p $PKG/etc/X11 +( cd $PKG/usr/lib/X11 + mv xsm $PKG/etc/X11 + ln -sf ../../../etc/X11/xsm . +) diff --git a/source/x/x11/slack-desc/applewmproto b/source/x/x11/slack-desc/applewmproto new file mode 100644 index 000000000..4a81b79b0 --- /dev/null +++ b/source/x/x11/slack-desc/applewmproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +applewmproto: applewmproto +applewmproto: +applewmproto: applewmproto is part of X11. +applewmproto: +applewmproto: For more information about the X.Org Foundation (the providers of the +applewmproto: X.Org implementation of the X Window System), see their website: +applewmproto: +applewmproto: http://www.x.org +applewmproto: +applewmproto: +applewmproto: diff --git a/source/x/x11/slack-desc/appres b/source/x/x11/slack-desc/appres new file mode 100644 index 000000000..e397c8cd1 --- /dev/null +++ b/source/x/x11/slack-desc/appres @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +appres: appres +appres: +appres: appres is part of X11. +appres: +appres: For more information about the X.Org Foundation (the providers of the +appres: X.Org implementation of the X Window System), see their website: +appres: +appres: http://www.x.org +appres: +appres: +appres: diff --git a/source/x/x11/slack-desc/bdftopcf b/source/x/x11/slack-desc/bdftopcf new file mode 100644 index 000000000..cb2a80a13 --- /dev/null +++ b/source/x/x11/slack-desc/bdftopcf @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bdftopcf: bdftopcf +bdftopcf: +bdftopcf: bdftopcf is part of X11. +bdftopcf: +bdftopcf: For more information about the X.Org Foundation (the providers of the +bdftopcf: X.Org implementation of the X Window System), see their website: +bdftopcf: +bdftopcf: http://www.x.org +bdftopcf: +bdftopcf: +bdftopcf: diff --git a/source/x/x11/slack-desc/beforelight b/source/x/x11/slack-desc/beforelight new file mode 100644 index 000000000..20549ac45 --- /dev/null +++ b/source/x/x11/slack-desc/beforelight @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +beforelight: beforelight +beforelight: +beforelight: beforelight is part of X11. +beforelight: +beforelight: For more information about the X.Org Foundation (the providers of the +beforelight: X.Org implementation of the X Window System), see their website: +beforelight: +beforelight: http://www.x.org +beforelight: +beforelight: +beforelight: diff --git a/source/x/x11/slack-desc/bigreqsproto b/source/x/x11/slack-desc/bigreqsproto new file mode 100644 index 000000000..55c66bbc0 --- /dev/null +++ b/source/x/x11/slack-desc/bigreqsproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bigreqsproto: bigreqsproto +bigreqsproto: +bigreqsproto: bigreqsproto is part of X11. +bigreqsproto: +bigreqsproto: For more information about the X.Org Foundation (the providers of the +bigreqsproto: X.Org implementation of the X Window System), see their website: +bigreqsproto: +bigreqsproto: http://www.x.org +bigreqsproto: +bigreqsproto: +bigreqsproto: diff --git a/source/x/x11/slack-desc/bitmap b/source/x/x11/slack-desc/bitmap new file mode 100644 index 000000000..72423e767 --- /dev/null +++ b/source/x/x11/slack-desc/bitmap @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bitmap: bitmap +bitmap: +bitmap: bitmap is part of X11. +bitmap: +bitmap: For more information about the X.Org Foundation (the providers of the +bitmap: X.Org implementation of the X Window System), see their website: +bitmap: +bitmap: http://www.x.org +bitmap: +bitmap: +bitmap: diff --git a/source/x/x11/slack-desc/compiz b/source/x/x11/slack-desc/compiz new file mode 100644 index 000000000..e13991198 --- /dev/null +++ b/source/x/x11/slack-desc/compiz @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +compiz: compiz +compiz: +compiz: compiz is part of X11. +compiz: +compiz: For more information about the X.Org Foundation (the providers of the +compiz: X.Org implementation of the X Window System), see their website: +compiz: +compiz: http://www.x.org +compiz: +compiz: +compiz: diff --git a/source/x/x11/slack-desc/compositeproto b/source/x/x11/slack-desc/compositeproto new file mode 100644 index 000000000..63e26c778 --- /dev/null +++ b/source/x/x11/slack-desc/compositeproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +compositeproto: compositeproto +compositeproto: +compositeproto: compositeproto is part of X11. +compositeproto: +compositeproto: For more information about the X.Org Foundation (the providers of the +compositeproto: X.Org implementation of the X Window System), see their website: +compositeproto: +compositeproto: http://www.x.org +compositeproto: +compositeproto: +compositeproto: diff --git a/source/x/x11/slack-desc/constype b/source/x/x11/slack-desc/constype new file mode 100644 index 000000000..ddcf95df0 --- /dev/null +++ b/source/x/x11/slack-desc/constype @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +constype: constype +constype: +constype: constype is part of X11. +constype: +constype: For more information about the X.Org Foundation (the providers of the +constype: X.Org implementation of the X Window System), see their website: +constype: +constype: http://www.x.org +constype: +constype: +constype: diff --git a/source/x/x11/slack-desc/damageproto b/source/x/x11/slack-desc/damageproto new file mode 100644 index 000000000..98c085fec --- /dev/null +++ b/source/x/x11/slack-desc/damageproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +damageproto: damageproto +damageproto: +damageproto: damageproto is part of X11. +damageproto: +damageproto: For more information about the X.Org Foundation (the providers of the +damageproto: X.Org implementation of the X Window System), see their website: +damageproto: +damageproto: http://www.x.org +damageproto: +damageproto: +damageproto: diff --git a/source/x/x11/slack-desc/dmxproto b/source/x/x11/slack-desc/dmxproto new file mode 100644 index 000000000..a9598f9a7 --- /dev/null +++ b/source/x/x11/slack-desc/dmxproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dmxproto: dmxproto +dmxproto: +dmxproto: dmxproto is part of X11. +dmxproto: +dmxproto: For more information about the X.Org Foundation (the providers of the +dmxproto: X.Org implementation of the X Window System), see their website: +dmxproto: +dmxproto: http://www.x.org +dmxproto: +dmxproto: +dmxproto: diff --git a/source/x/x11/slack-desc/dri2proto b/source/x/x11/slack-desc/dri2proto new file mode 100644 index 000000000..c416449a2 --- /dev/null +++ b/source/x/x11/slack-desc/dri2proto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +dri2proto: dri2proto +dri2proto: +dri2proto: dri2proto is part of X11. +dri2proto: +dri2proto: For more information about the X.Org Foundation (the providers of the +dri2proto: X.Org implementation of the X Window System), see their website: +dri2proto: +dri2proto: http://www.x.org +dri2proto: +dri2proto: +dri2proto: diff --git a/source/x/x11/slack-desc/editres b/source/x/x11/slack-desc/editres new file mode 100644 index 000000000..efdc8d751 --- /dev/null +++ b/source/x/x11/slack-desc/editres @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +editres: editres +editres: +editres: editres is part of X11. +editres: +editres: For more information about the X.Org Foundation (the providers of the +editres: X.Org implementation of the X Window System), see their website: +editres: +editres: http://www.x.org +editres: +editres: +editres: diff --git a/source/x/x11/slack-desc/encodings b/source/x/x11/slack-desc/encodings new file mode 100644 index 000000000..a6de35175 --- /dev/null +++ b/source/x/x11/slack-desc/encodings @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +encodings: encodings +encodings: +encodings: encodings is part of X11. +encodings: +encodings: For more information about the X.Org Foundation (the providers of the +encodings: X.Org implementation of the X Window System), see their website: +encodings: +encodings: http://www.x.org +encodings: +encodings: +encodings: diff --git a/source/x/x11/slack-desc/evieext b/source/x/x11/slack-desc/evieext new file mode 100644 index 000000000..36a135e6b --- /dev/null +++ b/source/x/x11/slack-desc/evieext @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +evieext: evieext +evieext: +evieext: evieext is part of X11. +evieext: +evieext: For more information about the X.Org Foundation (the providers of the +evieext: X.Org implementation of the X Window System), see their website: +evieext: +evieext: http://www.x.org +evieext: +evieext: +evieext: diff --git a/source/x/x11/slack-desc/fixesproto b/source/x/x11/slack-desc/fixesproto new file mode 100644 index 000000000..7e1a1eab9 --- /dev/null +++ b/source/x/x11/slack-desc/fixesproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fixesproto: fixesproto +fixesproto: +fixesproto: fixesproto is part of X11. +fixesproto: +fixesproto: For more information about the X.Org Foundation (the providers of the +fixesproto: X.Org implementation of the X Window System), see their website: +fixesproto: +fixesproto: http://www.x.org +fixesproto: +fixesproto: +fixesproto: diff --git a/source/x/x11/slack-desc/font-adobe-100dpi b/source/x/x11/slack-desc/font-adobe-100dpi new file mode 100644 index 000000000..50996b1be --- /dev/null +++ b/source/x/x11/slack-desc/font-adobe-100dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-adobe-100dpi: font-adobe-100dpi +font-adobe-100dpi: +font-adobe-100dpi: font-adobe-100dpi is part of X11. +font-adobe-100dpi: +font-adobe-100dpi: For more information about the X.Org Foundation (the providers of the +font-adobe-100dpi: X.Org implementation of the X Window System), see their website: +font-adobe-100dpi: +font-adobe-100dpi: http://www.x.org +font-adobe-100dpi: +font-adobe-100dpi: +font-adobe-100dpi: diff --git a/source/x/x11/slack-desc/font-adobe-75dpi b/source/x/x11/slack-desc/font-adobe-75dpi new file mode 100644 index 000000000..ca91ae5e9 --- /dev/null +++ b/source/x/x11/slack-desc/font-adobe-75dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-adobe-75dpi: font-adobe-75dpi +font-adobe-75dpi: +font-adobe-75dpi: font-adobe-75dpi is part of X11. +font-adobe-75dpi: +font-adobe-75dpi: For more information about the X.Org Foundation (the providers of the +font-adobe-75dpi: X.Org implementation of the X Window System), see their website: +font-adobe-75dpi: +font-adobe-75dpi: http://www.x.org +font-adobe-75dpi: +font-adobe-75dpi: +font-adobe-75dpi: diff --git a/source/x/x11/slack-desc/font-adobe-utopia-100dpi b/source/x/x11/slack-desc/font-adobe-utopia-100dpi new file mode 100644 index 000000000..956f6d53a --- /dev/null +++ b/source/x/x11/slack-desc/font-adobe-utopia-100dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-adobe-utopia-100dpi: font-adobe-utopia-100dpi +font-adobe-utopia-100dpi: +font-adobe-utopia-100dpi: font-adobe-utopia-100dpi is part of X11. +font-adobe-utopia-100dpi: +font-adobe-utopia-100dpi: For more information about the X.Org Foundation (the providers of the +font-adobe-utopia-100dpi: X.Org implementation of the X Window System), see their website: +font-adobe-utopia-100dpi: +font-adobe-utopia-100dpi: http://www.x.org +font-adobe-utopia-100dpi: +font-adobe-utopia-100dpi: +font-adobe-utopia-100dpi: diff --git a/source/x/x11/slack-desc/font-adobe-utopia-75dpi b/source/x/x11/slack-desc/font-adobe-utopia-75dpi new file mode 100644 index 000000000..73571791d --- /dev/null +++ b/source/x/x11/slack-desc/font-adobe-utopia-75dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-adobe-utopia-75dpi: font-adobe-utopia-75dpi +font-adobe-utopia-75dpi: +font-adobe-utopia-75dpi: font-adobe-utopia-75dpi is part of X11. +font-adobe-utopia-75dpi: +font-adobe-utopia-75dpi: For more information about the X.Org Foundation (the providers of the +font-adobe-utopia-75dpi: X.Org implementation of the X Window System), see their website: +font-adobe-utopia-75dpi: +font-adobe-utopia-75dpi: http://www.x.org +font-adobe-utopia-75dpi: +font-adobe-utopia-75dpi: +font-adobe-utopia-75dpi: diff --git a/source/x/x11/slack-desc/font-adobe-utopia-type1 b/source/x/x11/slack-desc/font-adobe-utopia-type1 new file mode 100644 index 000000000..5f6d7d1b3 --- /dev/null +++ b/source/x/x11/slack-desc/font-adobe-utopia-type1 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-adobe-utopia-type1: font-adobe-utopia-type1 +font-adobe-utopia-type1: +font-adobe-utopia-type1: font-adobe-utopia-type1 is part of X11. +font-adobe-utopia-type1: +font-adobe-utopia-type1: For more information about the X.Org Foundation (the providers of the +font-adobe-utopia-type1: X.Org implementation of the X Window System), see their website: +font-adobe-utopia-type1: +font-adobe-utopia-type1: http://www.x.org +font-adobe-utopia-type1: +font-adobe-utopia-type1: +font-adobe-utopia-type1: diff --git a/source/x/x11/slack-desc/font-alias b/source/x/x11/slack-desc/font-alias new file mode 100644 index 000000000..d5e513d5b --- /dev/null +++ b/source/x/x11/slack-desc/font-alias @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-alias: font-alias +font-alias: +font-alias: font-alias is part of X11. +font-alias: +font-alias: For more information about the X.Org Foundation (the providers of the +font-alias: X.Org implementation of the X Window System), see their website: +font-alias: +font-alias: http://www.x.org +font-alias: +font-alias: +font-alias: diff --git a/source/x/x11/slack-desc/font-arabic-misc b/source/x/x11/slack-desc/font-arabic-misc new file mode 100644 index 000000000..bf9d34e26 --- /dev/null +++ b/source/x/x11/slack-desc/font-arabic-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-arabic-misc: font-arabic-misc +font-arabic-misc: +font-arabic-misc: font-arabic-misc is part of X11. +font-arabic-misc: +font-arabic-misc: For more information about the X.Org Foundation (the providers of the +font-arabic-misc: X.Org implementation of the X Window System), see their website: +font-arabic-misc: +font-arabic-misc: http://www.x.org +font-arabic-misc: +font-arabic-misc: +font-arabic-misc: diff --git a/source/x/x11/slack-desc/font-bh-100dpi b/source/x/x11/slack-desc/font-bh-100dpi new file mode 100644 index 000000000..3db086b41 --- /dev/null +++ b/source/x/x11/slack-desc/font-bh-100dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bh-100dpi: font-bh-100dpi +font-bh-100dpi: +font-bh-100dpi: font-bh-100dpi is part of X11. +font-bh-100dpi: +font-bh-100dpi: For more information about the X.Org Foundation (the providers of the +font-bh-100dpi: X.Org implementation of the X Window System), see their website: +font-bh-100dpi: +font-bh-100dpi: http://www.x.org +font-bh-100dpi: +font-bh-100dpi: +font-bh-100dpi: diff --git a/source/x/x11/slack-desc/font-bh-75dpi b/source/x/x11/slack-desc/font-bh-75dpi new file mode 100644 index 000000000..ab93f8a95 --- /dev/null +++ b/source/x/x11/slack-desc/font-bh-75dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bh-75dpi: font-bh-75dpi +font-bh-75dpi: +font-bh-75dpi: font-bh-75dpi is part of X11. +font-bh-75dpi: +font-bh-75dpi: For more information about the X.Org Foundation (the providers of the +font-bh-75dpi: X.Org implementation of the X Window System), see their website: +font-bh-75dpi: +font-bh-75dpi: http://www.x.org +font-bh-75dpi: +font-bh-75dpi: +font-bh-75dpi: diff --git a/source/x/x11/slack-desc/font-bh-lucidatypewriter-100dpi b/source/x/x11/slack-desc/font-bh-lucidatypewriter-100dpi new file mode 100644 index 000000000..d289f9a2a --- /dev/null +++ b/source/x/x11/slack-desc/font-bh-lucidatypewriter-100dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bh-lucidatypewriter-100dpi: font-bh-lucidatypewriter-100dpi +font-bh-lucidatypewriter-100dpi: +font-bh-lucidatypewriter-100dpi: font-bh-lucidatypewriter-100dpi is part of X11. +font-bh-lucidatypewriter-100dpi: +font-bh-lucidatypewriter-100dpi: For more information about the X.Org Foundation (the providers of the +font-bh-lucidatypewriter-100dpi: X.Org implementation of the X Window System), see their website: +font-bh-lucidatypewriter-100dpi: +font-bh-lucidatypewriter-100dpi: http://www.x.org +font-bh-lucidatypewriter-100dpi: +font-bh-lucidatypewriter-100dpi: +font-bh-lucidatypewriter-100dpi: diff --git a/source/x/x11/slack-desc/font-bh-lucidatypewriter-75dpi b/source/x/x11/slack-desc/font-bh-lucidatypewriter-75dpi new file mode 100644 index 000000000..a9ae87e3a --- /dev/null +++ b/source/x/x11/slack-desc/font-bh-lucidatypewriter-75dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bh-lucidatypewriter-75dpi: font-bh-lucidatypewriter-75dpi +font-bh-lucidatypewriter-75dpi: +font-bh-lucidatypewriter-75dpi: font-bh-lucidatypewriter-75dpi is part of X11. +font-bh-lucidatypewriter-75dpi: +font-bh-lucidatypewriter-75dpi: For more information about the X.Org Foundation (the providers of the +font-bh-lucidatypewriter-75dpi: X.Org implementation of the X Window System), see their website: +font-bh-lucidatypewriter-75dpi: +font-bh-lucidatypewriter-75dpi: http://www.x.org +font-bh-lucidatypewriter-75dpi: +font-bh-lucidatypewriter-75dpi: +font-bh-lucidatypewriter-75dpi: diff --git a/source/x/x11/slack-desc/font-bh-ttf b/source/x/x11/slack-desc/font-bh-ttf new file mode 100644 index 000000000..5965002dc --- /dev/null +++ b/source/x/x11/slack-desc/font-bh-ttf @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bh-ttf: font-bh-ttf +font-bh-ttf: +font-bh-ttf: font-bh-ttf is part of X11. +font-bh-ttf: +font-bh-ttf: For more information about the X.Org Foundation (the providers of the +font-bh-ttf: X.Org implementation of the X Window System), see their website: +font-bh-ttf: +font-bh-ttf: http://www.x.org +font-bh-ttf: +font-bh-ttf: +font-bh-ttf: diff --git a/source/x/x11/slack-desc/font-bh-type1 b/source/x/x11/slack-desc/font-bh-type1 new file mode 100644 index 000000000..eb61ed80b --- /dev/null +++ b/source/x/x11/slack-desc/font-bh-type1 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bh-type1: font-bh-type1 +font-bh-type1: +font-bh-type1: font-bh-type1 is part of X11. +font-bh-type1: +font-bh-type1: For more information about the X.Org Foundation (the providers of the +font-bh-type1: X.Org implementation of the X Window System), see their website: +font-bh-type1: +font-bh-type1: http://www.x.org +font-bh-type1: +font-bh-type1: +font-bh-type1: diff --git a/source/x/x11/slack-desc/font-bitstream-100dpi b/source/x/x11/slack-desc/font-bitstream-100dpi new file mode 100644 index 000000000..3ebccefc2 --- /dev/null +++ b/source/x/x11/slack-desc/font-bitstream-100dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bitstream-100dpi: font-bitstream-100dpi +font-bitstream-100dpi: +font-bitstream-100dpi: font-bitstream-100dpi is part of X11. +font-bitstream-100dpi: +font-bitstream-100dpi: For more information about the X.Org Foundation (the providers of the +font-bitstream-100dpi: X.Org implementation of the X Window System), see their website: +font-bitstream-100dpi: +font-bitstream-100dpi: http://www.x.org +font-bitstream-100dpi: +font-bitstream-100dpi: +font-bitstream-100dpi: diff --git a/source/x/x11/slack-desc/font-bitstream-75dpi b/source/x/x11/slack-desc/font-bitstream-75dpi new file mode 100644 index 000000000..49b1f2627 --- /dev/null +++ b/source/x/x11/slack-desc/font-bitstream-75dpi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bitstream-75dpi: font-bitstream-75dpi +font-bitstream-75dpi: +font-bitstream-75dpi: font-bitstream-75dpi is part of X11. +font-bitstream-75dpi: +font-bitstream-75dpi: For more information about the X.Org Foundation (the providers of the +font-bitstream-75dpi: X.Org implementation of the X Window System), see their website: +font-bitstream-75dpi: +font-bitstream-75dpi: http://www.x.org +font-bitstream-75dpi: +font-bitstream-75dpi: +font-bitstream-75dpi: diff --git a/source/x/x11/slack-desc/font-bitstream-speedo b/source/x/x11/slack-desc/font-bitstream-speedo new file mode 100644 index 000000000..f5db39e8c --- /dev/null +++ b/source/x/x11/slack-desc/font-bitstream-speedo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bitstream-speedo: font-bitstream-speedo +font-bitstream-speedo: +font-bitstream-speedo: font-bitstream-speedo is part of X11. +font-bitstream-speedo: +font-bitstream-speedo: For more information about the X.Org Foundation (the providers of the +font-bitstream-speedo: X.Org implementation of the X Window System), see their website: +font-bitstream-speedo: +font-bitstream-speedo: http://www.x.org +font-bitstream-speedo: +font-bitstream-speedo: +font-bitstream-speedo: diff --git a/source/x/x11/slack-desc/font-bitstream-type1 b/source/x/x11/slack-desc/font-bitstream-type1 new file mode 100644 index 000000000..c2c8c89c7 --- /dev/null +++ b/source/x/x11/slack-desc/font-bitstream-type1 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-bitstream-type1: font-bitstream-type1 +font-bitstream-type1: +font-bitstream-type1: font-bitstream-type1 is part of X11. +font-bitstream-type1: +font-bitstream-type1: For more information about the X.Org Foundation (the providers of the +font-bitstream-type1: X.Org implementation of the X Window System), see their website: +font-bitstream-type1: +font-bitstream-type1: http://www.x.org +font-bitstream-type1: +font-bitstream-type1: +font-bitstream-type1: diff --git a/source/x/x11/slack-desc/font-cronyx-cyrillic b/source/x/x11/slack-desc/font-cronyx-cyrillic new file mode 100644 index 000000000..1d8aa0cd9 --- /dev/null +++ b/source/x/x11/slack-desc/font-cronyx-cyrillic @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-cronyx-cyrillic: font-cronyx-cyrillic +font-cronyx-cyrillic: +font-cronyx-cyrillic: font-cronyx-cyrillic is part of X11. +font-cronyx-cyrillic: +font-cronyx-cyrillic: For more information about the X.Org Foundation (the providers of the +font-cronyx-cyrillic: X.Org implementation of the X Window System), see their website: +font-cronyx-cyrillic: +font-cronyx-cyrillic: http://www.x.org +font-cronyx-cyrillic: +font-cronyx-cyrillic: +font-cronyx-cyrillic: diff --git a/source/x/x11/slack-desc/font-cursor-misc b/source/x/x11/slack-desc/font-cursor-misc new file mode 100644 index 000000000..846a7ee5b --- /dev/null +++ b/source/x/x11/slack-desc/font-cursor-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-cursor-misc: font-cursor-misc +font-cursor-misc: +font-cursor-misc: font-cursor-misc is part of X11. +font-cursor-misc: +font-cursor-misc: For more information about the X.Org Foundation (the providers of the +font-cursor-misc: X.Org implementation of the X Window System), see their website: +font-cursor-misc: +font-cursor-misc: http://www.x.org +font-cursor-misc: +font-cursor-misc: +font-cursor-misc: diff --git a/source/x/x11/slack-desc/font-daewoo-misc b/source/x/x11/slack-desc/font-daewoo-misc new file mode 100644 index 000000000..ea2a14fe2 --- /dev/null +++ b/source/x/x11/slack-desc/font-daewoo-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-daewoo-misc: font-daewoo-misc +font-daewoo-misc: +font-daewoo-misc: font-daewoo-misc is part of X11. +font-daewoo-misc: +font-daewoo-misc: For more information about the X.Org Foundation (the providers of the +font-daewoo-misc: X.Org implementation of the X Window System), see their website: +font-daewoo-misc: +font-daewoo-misc: http://www.x.org +font-daewoo-misc: +font-daewoo-misc: +font-daewoo-misc: diff --git a/source/x/x11/slack-desc/font-dec-misc b/source/x/x11/slack-desc/font-dec-misc new file mode 100644 index 000000000..9f1f8457d --- /dev/null +++ b/source/x/x11/slack-desc/font-dec-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-dec-misc: font-dec-misc +font-dec-misc: +font-dec-misc: font-dec-misc is part of X11. +font-dec-misc: +font-dec-misc: For more information about the X.Org Foundation (the providers of the +font-dec-misc: X.Org implementation of the X Window System), see their website: +font-dec-misc: +font-dec-misc: http://www.x.org +font-dec-misc: +font-dec-misc: +font-dec-misc: diff --git a/source/x/x11/slack-desc/font-ibm-type1 b/source/x/x11/slack-desc/font-ibm-type1 new file mode 100644 index 000000000..773d7c57c --- /dev/null +++ b/source/x/x11/slack-desc/font-ibm-type1 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-ibm-type1: font-ibm-type1 +font-ibm-type1: +font-ibm-type1: font-ibm-type1 is part of X11. +font-ibm-type1: +font-ibm-type1: For more information about the X.Org Foundation (the providers of the +font-ibm-type1: X.Org implementation of the X Window System), see their website: +font-ibm-type1: +font-ibm-type1: http://www.x.org +font-ibm-type1: +font-ibm-type1: +font-ibm-type1: diff --git a/source/x/x11/slack-desc/font-isas-misc b/source/x/x11/slack-desc/font-isas-misc new file mode 100644 index 000000000..2be2ce734 --- /dev/null +++ b/source/x/x11/slack-desc/font-isas-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-isas-misc: font-isas-misc +font-isas-misc: +font-isas-misc: font-isas-misc is part of X11. +font-isas-misc: +font-isas-misc: For more information about the X.Org Foundation (the providers of the +font-isas-misc: X.Org implementation of the X Window System), see their website: +font-isas-misc: +font-isas-misc: http://www.x.org +font-isas-misc: +font-isas-misc: +font-isas-misc: diff --git a/source/x/x11/slack-desc/font-jis-misc b/source/x/x11/slack-desc/font-jis-misc new file mode 100644 index 000000000..bbdf362e4 --- /dev/null +++ b/source/x/x11/slack-desc/font-jis-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-jis-misc: font-jis-misc +font-jis-misc: +font-jis-misc: font-jis-misc is part of X11. +font-jis-misc: +font-jis-misc: For more information about the X.Org Foundation (the providers of the +font-jis-misc: X.Org implementation of the X Window System), see their website: +font-jis-misc: +font-jis-misc: http://www.x.org +font-jis-misc: +font-jis-misc: +font-jis-misc: diff --git a/source/x/x11/slack-desc/font-micro-misc b/source/x/x11/slack-desc/font-micro-misc new file mode 100644 index 000000000..f26eae31d --- /dev/null +++ b/source/x/x11/slack-desc/font-micro-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-micro-misc: font-micro-misc +font-micro-misc: +font-micro-misc: font-micro-misc is part of X11. +font-micro-misc: +font-micro-misc: For more information about the X.Org Foundation (the providers of the +font-micro-misc: X.Org implementation of the X Window System), see their website: +font-micro-misc: +font-micro-misc: http://www.x.org +font-micro-misc: +font-micro-misc: +font-micro-misc: diff --git a/source/x/x11/slack-desc/font-misc-cyrillic b/source/x/x11/slack-desc/font-misc-cyrillic new file mode 100644 index 000000000..4e443cbab --- /dev/null +++ b/source/x/x11/slack-desc/font-misc-cyrillic @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-misc-cyrillic: font-misc-cyrillic +font-misc-cyrillic: +font-misc-cyrillic: font-misc-cyrillic is part of X11. +font-misc-cyrillic: +font-misc-cyrillic: For more information about the X.Org Foundation (the providers of the +font-misc-cyrillic: X.Org implementation of the X Window System), see their website: +font-misc-cyrillic: +font-misc-cyrillic: http://www.x.org +font-misc-cyrillic: +font-misc-cyrillic: +font-misc-cyrillic: diff --git a/source/x/x11/slack-desc/font-misc-ethiopic b/source/x/x11/slack-desc/font-misc-ethiopic new file mode 100644 index 000000000..edaa22784 --- /dev/null +++ b/source/x/x11/slack-desc/font-misc-ethiopic @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-misc-ethiopic: font-misc-ethiopic +font-misc-ethiopic: +font-misc-ethiopic: font-misc-ethiopic is part of X11. +font-misc-ethiopic: +font-misc-ethiopic: For more information about the X.Org Foundation (the providers of the +font-misc-ethiopic: X.Org implementation of the X Window System), see their website: +font-misc-ethiopic: +font-misc-ethiopic: http://www.x.org +font-misc-ethiopic: +font-misc-ethiopic: +font-misc-ethiopic: diff --git a/source/x/x11/slack-desc/font-misc-meltho b/source/x/x11/slack-desc/font-misc-meltho new file mode 100644 index 000000000..a30da3d02 --- /dev/null +++ b/source/x/x11/slack-desc/font-misc-meltho @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-misc-meltho: font-misc-meltho +font-misc-meltho: +font-misc-meltho: font-misc-meltho is part of X11. +font-misc-meltho: +font-misc-meltho: For more information about the X.Org Foundation (the providers of the +font-misc-meltho: X.Org implementation of the X Window System), see their website: +font-misc-meltho: +font-misc-meltho: http://www.x.org +font-misc-meltho: +font-misc-meltho: +font-misc-meltho: diff --git a/source/x/x11/slack-desc/font-misc-misc b/source/x/x11/slack-desc/font-misc-misc new file mode 100644 index 000000000..99c7d8ae1 --- /dev/null +++ b/source/x/x11/slack-desc/font-misc-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-misc-misc: font-misc-misc +font-misc-misc: +font-misc-misc: font-misc-misc is part of X11. +font-misc-misc: +font-misc-misc: For more information about the X.Org Foundation (the providers of the +font-misc-misc: X.Org implementation of the X Window System), see their website: +font-misc-misc: +font-misc-misc: http://www.x.org +font-misc-misc: +font-misc-misc: +font-misc-misc: diff --git a/source/x/x11/slack-desc/font-mutt-misc b/source/x/x11/slack-desc/font-mutt-misc new file mode 100644 index 000000000..f1f7a248e --- /dev/null +++ b/source/x/x11/slack-desc/font-mutt-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-mutt-misc: font-mutt-misc +font-mutt-misc: +font-mutt-misc: font-mutt-misc is part of X11. +font-mutt-misc: +font-mutt-misc: For more information about the X.Org Foundation (the providers of the +font-mutt-misc: X.Org implementation of the X Window System), see their website: +font-mutt-misc: +font-mutt-misc: http://www.x.org +font-mutt-misc: +font-mutt-misc: +font-mutt-misc: diff --git a/source/x/x11/slack-desc/font-schumacher-misc b/source/x/x11/slack-desc/font-schumacher-misc new file mode 100644 index 000000000..4d7c58b0a --- /dev/null +++ b/source/x/x11/slack-desc/font-schumacher-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-schumacher-misc: font-schumacher-misc +font-schumacher-misc: +font-schumacher-misc: font-schumacher-misc is part of X11. +font-schumacher-misc: +font-schumacher-misc: For more information about the X.Org Foundation (the providers of the +font-schumacher-misc: X.Org implementation of the X Window System), see their website: +font-schumacher-misc: +font-schumacher-misc: http://www.x.org +font-schumacher-misc: +font-schumacher-misc: +font-schumacher-misc: diff --git a/source/x/x11/slack-desc/font-screen-cyrillic b/source/x/x11/slack-desc/font-screen-cyrillic new file mode 100644 index 000000000..9d65d38d6 --- /dev/null +++ b/source/x/x11/slack-desc/font-screen-cyrillic @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-screen-cyrillic: font-screen-cyrillic +font-screen-cyrillic: +font-screen-cyrillic: font-screen-cyrillic is part of X11. +font-screen-cyrillic: +font-screen-cyrillic: For more information about the X.Org Foundation (the providers of the +font-screen-cyrillic: X.Org implementation of the X Window System), see their website: +font-screen-cyrillic: +font-screen-cyrillic: http://www.x.org +font-screen-cyrillic: +font-screen-cyrillic: +font-screen-cyrillic: diff --git a/source/x/x11/slack-desc/font-sony-misc b/source/x/x11/slack-desc/font-sony-misc new file mode 100644 index 000000000..8fc8b85ee --- /dev/null +++ b/source/x/x11/slack-desc/font-sony-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-sony-misc: font-sony-misc +font-sony-misc: +font-sony-misc: font-sony-misc is part of X11. +font-sony-misc: +font-sony-misc: For more information about the X.Org Foundation (the providers of the +font-sony-misc: X.Org implementation of the X Window System), see their website: +font-sony-misc: +font-sony-misc: http://www.x.org +font-sony-misc: +font-sony-misc: +font-sony-misc: diff --git a/source/x/x11/slack-desc/font-sun-misc b/source/x/x11/slack-desc/font-sun-misc new file mode 100644 index 000000000..d2fd1a338 --- /dev/null +++ b/source/x/x11/slack-desc/font-sun-misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-sun-misc: font-sun-misc +font-sun-misc: +font-sun-misc: font-sun-misc is part of X11. +font-sun-misc: +font-sun-misc: For more information about the X.Org Foundation (the providers of the +font-sun-misc: X.Org implementation of the X Window System), see their website: +font-sun-misc: +font-sun-misc: http://www.x.org +font-sun-misc: +font-sun-misc: +font-sun-misc: diff --git a/source/x/x11/slack-desc/font-util b/source/x/x11/slack-desc/font-util new file mode 100644 index 000000000..4c6a2b2ab --- /dev/null +++ b/source/x/x11/slack-desc/font-util @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-util: font-util +font-util: +font-util: font-util is part of X11. +font-util: +font-util: For more information about the X.Org Foundation (the providers of the +font-util: X.Org implementation of the X Window System), see their website: +font-util: +font-util: http://www.x.org +font-util: +font-util: +font-util: diff --git a/source/x/x11/slack-desc/font-winitzki-cyrillic b/source/x/x11/slack-desc/font-winitzki-cyrillic new file mode 100644 index 000000000..c278dfffd --- /dev/null +++ b/source/x/x11/slack-desc/font-winitzki-cyrillic @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-winitzki-cyrillic: font-winitzki-cyrillic +font-winitzki-cyrillic: +font-winitzki-cyrillic: font-winitzki-cyrillic is part of X11. +font-winitzki-cyrillic: +font-winitzki-cyrillic: For more information about the X.Org Foundation (the providers of the +font-winitzki-cyrillic: X.Org implementation of the X Window System), see their website: +font-winitzki-cyrillic: +font-winitzki-cyrillic: http://www.x.org +font-winitzki-cyrillic: +font-winitzki-cyrillic: +font-winitzki-cyrillic: diff --git a/source/x/x11/slack-desc/font-xfree86-type1 b/source/x/x11/slack-desc/font-xfree86-type1 new file mode 100644 index 000000000..57ab76c60 --- /dev/null +++ b/source/x/x11/slack-desc/font-xfree86-type1 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +font-xfree86-type1: font-xfree86-type1 +font-xfree86-type1: +font-xfree86-type1: font-xfree86-type1 is part of X11. +font-xfree86-type1: +font-xfree86-type1: For more information about the X.Org Foundation (the providers of the +font-xfree86-type1: X.Org implementation of the X Window System), see their website: +font-xfree86-type1: +font-xfree86-type1: http://www.x.org +font-xfree86-type1: +font-xfree86-type1: +font-xfree86-type1: diff --git a/source/x/x11/slack-desc/fontcacheproto b/source/x/x11/slack-desc/fontcacheproto new file mode 100644 index 000000000..8388f4c35 --- /dev/null +++ b/source/x/x11/slack-desc/fontcacheproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fontcacheproto: fontcacheproto +fontcacheproto: +fontcacheproto: fontcacheproto is part of X11. +fontcacheproto: +fontcacheproto: For more information about the X.Org Foundation (the providers of the +fontcacheproto: X.Org implementation of the X Window System), see their website: +fontcacheproto: +fontcacheproto: http://www.x.org +fontcacheproto: +fontcacheproto: +fontcacheproto: diff --git a/source/x/x11/slack-desc/fontsproto b/source/x/x11/slack-desc/fontsproto new file mode 100644 index 000000000..7f5c20a2d --- /dev/null +++ b/source/x/x11/slack-desc/fontsproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fontsproto: fontsproto +fontsproto: +fontsproto: fontsproto is part of X11. +fontsproto: +fontsproto: For more information about the X.Org Foundation (the providers of the +fontsproto: X.Org implementation of the X Window System), see their website: +fontsproto: +fontsproto: http://www.x.org +fontsproto: +fontsproto: +fontsproto: diff --git a/source/x/x11/slack-desc/fonttosfnt b/source/x/x11/slack-desc/fonttosfnt new file mode 100644 index 000000000..158fe2e3f --- /dev/null +++ b/source/x/x11/slack-desc/fonttosfnt @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fonttosfnt: fonttosfnt +fonttosfnt: +fonttosfnt: fonttosfnt is part of X11. +fonttosfnt: +fonttosfnt: For more information about the X.Org Foundation (the providers of the +fonttosfnt: X.Org implementation of the X Window System), see their website: +fonttosfnt: +fonttosfnt: http://www.x.org +fonttosfnt: +fonttosfnt: +fonttosfnt: diff --git a/source/x/x11/slack-desc/fslsfonts b/source/x/x11/slack-desc/fslsfonts new file mode 100644 index 000000000..ca4c416f6 --- /dev/null +++ b/source/x/x11/slack-desc/fslsfonts @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fslsfonts: fslsfonts +fslsfonts: +fslsfonts: fslsfonts is part of X11. +fslsfonts: +fslsfonts: For more information about the X.Org Foundation (the providers of the +fslsfonts: X.Org implementation of the X Window System), see their website: +fslsfonts: +fslsfonts: http://www.x.org +fslsfonts: +fslsfonts: +fslsfonts: diff --git a/source/x/x11/slack-desc/fstobdf b/source/x/x11/slack-desc/fstobdf new file mode 100644 index 000000000..ada9e2ac9 --- /dev/null +++ b/source/x/x11/slack-desc/fstobdf @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fstobdf: fstobdf +fstobdf: +fstobdf: fstobdf is part of X11. +fstobdf: +fstobdf: For more information about the X.Org Foundation (the providers of the +fstobdf: X.Org implementation of the X Window System), see their website: +fstobdf: +fstobdf: http://www.x.org +fstobdf: +fstobdf: +fstobdf: diff --git a/source/x/x11/slack-desc/gccmakedep b/source/x/x11/slack-desc/gccmakedep new file mode 100644 index 000000000..1220112e0 --- /dev/null +++ b/source/x/x11/slack-desc/gccmakedep @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gccmakedep: gccmakedep +gccmakedep: +gccmakedep: gccmakedep is part of X11. +gccmakedep: +gccmakedep: For more information about the X.Org Foundation (the providers of the +gccmakedep: X.Org implementation of the X Window System), see their website: +gccmakedep: +gccmakedep: http://www.x.org +gccmakedep: +gccmakedep: +gccmakedep: diff --git a/source/x/x11/slack-desc/glproto b/source/x/x11/slack-desc/glproto new file mode 100644 index 000000000..2c2ddb6f4 --- /dev/null +++ b/source/x/x11/slack-desc/glproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +glproto: glproto +glproto: +glproto: glproto is part of X11. +glproto: +glproto: For more information about the X.Org Foundation (the providers of the +glproto: X.Org implementation of the X Window System), see their website: +glproto: +glproto: http://www.x.org +glproto: +glproto: +glproto: diff --git a/source/x/x11/slack-desc/iceauth b/source/x/x11/slack-desc/iceauth new file mode 100644 index 000000000..17b0197f8 --- /dev/null +++ b/source/x/x11/slack-desc/iceauth @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +iceauth: iceauth +iceauth: +iceauth: iceauth is part of X11. +iceauth: +iceauth: For more information about the X.Org Foundation (the providers of the +iceauth: X.Org implementation of the X Window System), see their website: +iceauth: +iceauth: http://www.x.org +iceauth: +iceauth: +iceauth: diff --git a/source/x/x11/slack-desc/ico b/source/x/x11/slack-desc/ico new file mode 100644 index 000000000..025dd68cf --- /dev/null +++ b/source/x/x11/slack-desc/ico @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +ico: ico +ico: +ico: ico is part of X11. +ico: +ico: For more information about the X.Org Foundation (the providers of the +ico: X.Org implementation of the X Window System), see their website: +ico: +ico: http://www.x.org +ico: +ico: +ico: diff --git a/source/x/x11/slack-desc/imake b/source/x/x11/slack-desc/imake new file mode 100644 index 000000000..8b1d56313 --- /dev/null +++ b/source/x/x11/slack-desc/imake @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +imake: imake +imake: +imake: imake is part of X11. +imake: +imake: For more information about the X.Org Foundation (the providers of the +imake: X.Org implementation of the X Window System), see their website: +imake: +imake: http://www.x.org +imake: +imake: +imake: diff --git a/source/x/x11/slack-desc/inputproto b/source/x/x11/slack-desc/inputproto new file mode 100644 index 000000000..6b9a33024 --- /dev/null +++ b/source/x/x11/slack-desc/inputproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +inputproto: inputproto +inputproto: +inputproto: inputproto is part of X11. +inputproto: +inputproto: For more information about the X.Org Foundation (the providers of the +inputproto: X.Org implementation of the X Window System), see their website: +inputproto: +inputproto: http://www.x.org +inputproto: +inputproto: +inputproto: diff --git a/source/x/x11/slack-desc/intel-gpu-tools b/source/x/x11/slack-desc/intel-gpu-tools new file mode 100644 index 000000000..b9cdf7c15 --- /dev/null +++ b/source/x/x11/slack-desc/intel-gpu-tools @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +intel-gpu-tools: intel-gpu-tools (Intel DRM Driver Testing Tools) +intel-gpu-tools: +intel-gpu-tools: This is a collection of tools for development and testing of the Intel +intel-gpu-tools: DRM driver. There are many macro-level test suites including xtest, +intel-gpu-tools: rendercheck, piglit, and oglconform. +intel-gpu-tools: +intel-gpu-tools: +intel-gpu-tools: +intel-gpu-tools: +intel-gpu-tools: +intel-gpu-tools: diff --git a/source/x/x11/slack-desc/kbproto b/source/x/x11/slack-desc/kbproto new file mode 100644 index 000000000..c9703ab3a --- /dev/null +++ b/source/x/x11/slack-desc/kbproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +kbproto: kbproto +kbproto: +kbproto: kbproto is part of X11. +kbproto: +kbproto: For more information about the X.Org Foundation (the providers of the +kbproto: X.Org implementation of the X Window System), see their website: +kbproto: +kbproto: http://www.x.org +kbproto: +kbproto: +kbproto: diff --git a/source/x/x11/slack-desc/lbxproxy b/source/x/x11/slack-desc/lbxproxy new file mode 100644 index 000000000..578f938f4 --- /dev/null +++ b/source/x/x11/slack-desc/lbxproxy @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lbxproxy: lbxproxy +lbxproxy: +lbxproxy: lbxproxy is part of X11. +lbxproxy: +lbxproxy: For more information about the X.Org Foundation (the providers of the +lbxproxy: X.Org implementation of the X Window System), see their website: +lbxproxy: +lbxproxy: http://www.x.org +lbxproxy: +lbxproxy: +lbxproxy: diff --git a/source/x/x11/slack-desc/libAppleWM b/source/x/x11/slack-desc/libAppleWM new file mode 100644 index 000000000..d55625101 --- /dev/null +++ b/source/x/x11/slack-desc/libAppleWM @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libAppleWM: libAppleWM +libAppleWM: +libAppleWM: libAppleWM is part of X11. +libAppleWM: +libAppleWM: For more information about the X.Org Foundation (the providers of the +libAppleWM: X.Org implementation of the X Window System), see their website: +libAppleWM: +libAppleWM: http://www.x.org +libAppleWM: +libAppleWM: +libAppleWM: diff --git a/source/x/x11/slack-desc/libFS b/source/x/x11/slack-desc/libFS new file mode 100644 index 000000000..6fe37f3e5 --- /dev/null +++ b/source/x/x11/slack-desc/libFS @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libFS: libFS +libFS: +libFS: libFS is part of X11. +libFS: +libFS: For more information about the X.Org Foundation (the providers of the +libFS: X.Org implementation of the X Window System), see their website: +libFS: +libFS: http://www.x.org +libFS: +libFS: +libFS: diff --git a/source/x/x11/slack-desc/libICE b/source/x/x11/slack-desc/libICE new file mode 100644 index 000000000..78a4761c9 --- /dev/null +++ b/source/x/x11/slack-desc/libICE @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libICE: libICE +libICE: +libICE: libICE is part of X11. +libICE: +libICE: For more information about the X.Org Foundation (the providers of the +libICE: X.Org implementation of the X Window System), see their website: +libICE: +libICE: http://www.x.org +libICE: +libICE: +libICE: diff --git a/source/x/x11/slack-desc/libSM b/source/x/x11/slack-desc/libSM new file mode 100644 index 000000000..06803b32e --- /dev/null +++ b/source/x/x11/slack-desc/libSM @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libSM: libSM +libSM: +libSM: libSM is part of X11. +libSM: +libSM: For more information about the X.Org Foundation (the providers of the +libSM: X.Org implementation of the X Window System), see their website: +libSM: +libSM: http://www.x.org +libSM: +libSM: +libSM: diff --git a/source/x/x11/slack-desc/libWindowsWM b/source/x/x11/slack-desc/libWindowsWM new file mode 100644 index 000000000..162e44bee --- /dev/null +++ b/source/x/x11/slack-desc/libWindowsWM @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libWindowsWM: libWindowsWM +libWindowsWM: +libWindowsWM: libWindowsWM is part of X11. +libWindowsWM: +libWindowsWM: For more information about the X.Org Foundation (the providers of the +libWindowsWM: X.Org implementation of the X Window System), see their website: +libWindowsWM: +libWindowsWM: http://www.x.org +libWindowsWM: +libWindowsWM: +libWindowsWM: diff --git a/source/x/x11/slack-desc/libX11 b/source/x/x11/slack-desc/libX11 new file mode 100644 index 000000000..e7f012739 --- /dev/null +++ b/source/x/x11/slack-desc/libX11 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libX11: libX11 +libX11: +libX11: libX11 is part of X11. +libX11: +libX11: For more information about the X.Org Foundation (the providers of the +libX11: X.Org implementation of the X Window System), see their website: +libX11: +libX11: http://www.x.org +libX11: +libX11: +libX11: diff --git a/source/x/x11/slack-desc/libXScrnSaver b/source/x/x11/slack-desc/libXScrnSaver new file mode 100644 index 000000000..dea8d8649 --- /dev/null +++ b/source/x/x11/slack-desc/libXScrnSaver @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXScrnSaver: libXScrnSaver +libXScrnSaver: +libXScrnSaver: libXScrnSaver is part of X11. +libXScrnSaver: +libXScrnSaver: For more information about the X.Org Foundation (the providers of the +libXScrnSaver: X.Org implementation of the X Window System), see their website: +libXScrnSaver: +libXScrnSaver: http://www.x.org +libXScrnSaver: +libXScrnSaver: +libXScrnSaver: diff --git a/source/x/x11/slack-desc/libXTrap b/source/x/x11/slack-desc/libXTrap new file mode 100644 index 000000000..51443def8 --- /dev/null +++ b/source/x/x11/slack-desc/libXTrap @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXTrap: libXTrap +libXTrap: +libXTrap: libXTrap is part of X11. +libXTrap: +libXTrap: For more information about the X.Org Foundation (the providers of the +libXTrap: X.Org implementation of the X Window System), see their website: +libXTrap: +libXTrap: http://www.x.org +libXTrap: +libXTrap: +libXTrap: diff --git a/source/x/x11/slack-desc/libXau b/source/x/x11/slack-desc/libXau new file mode 100644 index 000000000..f2b092016 --- /dev/null +++ b/source/x/x11/slack-desc/libXau @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXau: libXau +libXau: +libXau: libXau is part of X11. +libXau: +libXau: For more information about the X.Org Foundation (the providers of the +libXau: X.Org implementation of the X Window System), see their website: +libXau: +libXau: http://www.x.org +libXau: +libXau: +libXau: diff --git a/source/x/x11/slack-desc/libXaw b/source/x/x11/slack-desc/libXaw new file mode 100644 index 000000000..3174674bc --- /dev/null +++ b/source/x/x11/slack-desc/libXaw @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXaw: libXaw +libXaw: +libXaw: libXaw is part of X11. +libXaw: +libXaw: For more information about the X.Org Foundation (the providers of the +libXaw: X.Org implementation of the X Window System), see their website: +libXaw: +libXaw: http://www.x.org +libXaw: +libXaw: +libXaw: diff --git a/source/x/x11/slack-desc/libXcomposite b/source/x/x11/slack-desc/libXcomposite new file mode 100644 index 000000000..2fcbe0699 --- /dev/null +++ b/source/x/x11/slack-desc/libXcomposite @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXcomposite: libXcomposite +libXcomposite: +libXcomposite: libXcomposite is part of X11. +libXcomposite: +libXcomposite: For more information about the X.Org Foundation (the providers of the +libXcomposite: X.Org implementation of the X Window System), see their website: +libXcomposite: +libXcomposite: http://www.x.org +libXcomposite: +libXcomposite: +libXcomposite: diff --git a/source/x/x11/slack-desc/libXcursor b/source/x/x11/slack-desc/libXcursor new file mode 100644 index 000000000..1e9116484 --- /dev/null +++ b/source/x/x11/slack-desc/libXcursor @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXcursor: libXcursor +libXcursor: +libXcursor: libXcursor is part of X11. +libXcursor: +libXcursor: For more information about the X.Org Foundation (the providers of the +libXcursor: X.Org implementation of the X Window System), see their website: +libXcursor: +libXcursor: http://www.x.org +libXcursor: +libXcursor: +libXcursor: diff --git a/source/x/x11/slack-desc/libXdamage b/source/x/x11/slack-desc/libXdamage new file mode 100644 index 000000000..58f917df5 --- /dev/null +++ b/source/x/x11/slack-desc/libXdamage @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXdamage: libXdamage +libXdamage: +libXdamage: libXdamage is part of X11. +libXdamage: +libXdamage: For more information about the X.Org Foundation (the providers of the +libXdamage: X.Org implementation of the X Window System), see their website: +libXdamage: +libXdamage: http://www.x.org +libXdamage: +libXdamage: +libXdamage: diff --git a/source/x/x11/slack-desc/libXdmcp b/source/x/x11/slack-desc/libXdmcp new file mode 100644 index 000000000..fc03f5bb3 --- /dev/null +++ b/source/x/x11/slack-desc/libXdmcp @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXdmcp: libXdmcp +libXdmcp: +libXdmcp: libXdmcp is part of X11. +libXdmcp: +libXdmcp: For more information about the X.Org Foundation (the providers of the +libXdmcp: X.Org implementation of the X Window System), see their website: +libXdmcp: +libXdmcp: http://www.x.org +libXdmcp: +libXdmcp: +libXdmcp: diff --git a/source/x/x11/slack-desc/libXevie b/source/x/x11/slack-desc/libXevie new file mode 100644 index 000000000..c97015924 --- /dev/null +++ b/source/x/x11/slack-desc/libXevie @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXevie: libXevie +libXevie: +libXevie: libXevie is part of X11. +libXevie: +libXevie: For more information about the X.Org Foundation (the providers of the +libXevie: X.Org implementation of the X Window System), see their website: +libXevie: +libXevie: http://www.x.org +libXevie: +libXevie: +libXevie: diff --git a/source/x/x11/slack-desc/libXext b/source/x/x11/slack-desc/libXext new file mode 100644 index 000000000..cb5b395b4 --- /dev/null +++ b/source/x/x11/slack-desc/libXext @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXext: libXext +libXext: +libXext: libXext is part of X11. +libXext: +libXext: For more information about the X.Org Foundation (the providers of the +libXext: X.Org implementation of the X Window System), see their website: +libXext: +libXext: http://www.x.org +libXext: +libXext: +libXext: diff --git a/source/x/x11/slack-desc/libXfixes b/source/x/x11/slack-desc/libXfixes new file mode 100644 index 000000000..9b6b9df7a --- /dev/null +++ b/source/x/x11/slack-desc/libXfixes @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXfixes: libXfixes +libXfixes: +libXfixes: libXfixes is part of X11. +libXfixes: +libXfixes: For more information about the X.Org Foundation (the providers of the +libXfixes: X.Org implementation of the X Window System), see their website: +libXfixes: +libXfixes: http://www.x.org +libXfixes: +libXfixes: +libXfixes: diff --git a/source/x/x11/slack-desc/libXfont b/source/x/x11/slack-desc/libXfont new file mode 100644 index 000000000..109b391c6 --- /dev/null +++ b/source/x/x11/slack-desc/libXfont @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXfont: libXfont +libXfont: +libXfont: libXfont is part of X11. +libXfont: +libXfont: For more information about the X.Org Foundation (the providers of the +libXfont: X.Org implementation of the X Window System), see their website: +libXfont: +libXfont: http://www.x.org +libXfont: +libXfont: +libXfont: diff --git a/source/x/x11/slack-desc/libXfontcache b/source/x/x11/slack-desc/libXfontcache new file mode 100644 index 000000000..735bdaa77 --- /dev/null +++ b/source/x/x11/slack-desc/libXfontcache @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXfontcache: libXfontcache +libXfontcache: +libXfontcache: libXfontcache is part of X11. +libXfontcache: +libXfontcache: For more information about the X.Org Foundation (the providers of the +libXfontcache: X.Org implementation of the X Window System), see their website: +libXfontcache: +libXfontcache: http://www.x.org +libXfontcache: +libXfontcache: +libXfontcache: diff --git a/source/x/x11/slack-desc/libXft b/source/x/x11/slack-desc/libXft new file mode 100644 index 000000000..a87a87d46 --- /dev/null +++ b/source/x/x11/slack-desc/libXft @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXft: libXft +libXft: +libXft: libXft is part of X11. +libXft: +libXft: For more information about the X.Org Foundation (the providers of the +libXft: X.Org implementation of the X Window System), see their website: +libXft: +libXft: http://www.x.org +libXft: +libXft: +libXft: diff --git a/source/x/x11/slack-desc/libXi b/source/x/x11/slack-desc/libXi new file mode 100644 index 000000000..f3f0c633c --- /dev/null +++ b/source/x/x11/slack-desc/libXi @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXi: libXi +libXi: +libXi: libXi is part of X11. +libXi: +libXi: For more information about the X.Org Foundation (the providers of the +libXi: X.Org implementation of the X Window System), see their website: +libXi: +libXi: http://www.x.org +libXi: +libXi: +libXi: diff --git a/source/x/x11/slack-desc/libXinerama b/source/x/x11/slack-desc/libXinerama new file mode 100644 index 000000000..e01ab025c --- /dev/null +++ b/source/x/x11/slack-desc/libXinerama @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXinerama: libXinerama +libXinerama: +libXinerama: libXinerama is part of X11. +libXinerama: +libXinerama: For more information about the X.Org Foundation (the providers of the +libXinerama: X.Org implementation of the X Window System), see their website: +libXinerama: +libXinerama: http://www.x.org +libXinerama: +libXinerama: +libXinerama: diff --git a/source/x/x11/slack-desc/libXmu b/source/x/x11/slack-desc/libXmu new file mode 100644 index 000000000..dd6aff00c --- /dev/null +++ b/source/x/x11/slack-desc/libXmu @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXmu: libXmu +libXmu: +libXmu: libXmu is part of X11. +libXmu: +libXmu: For more information about the X.Org Foundation (the providers of the +libXmu: X.Org implementation of the X Window System), see their website: +libXmu: +libXmu: http://www.x.org +libXmu: +libXmu: +libXmu: diff --git a/source/x/x11/slack-desc/libXp b/source/x/x11/slack-desc/libXp new file mode 100644 index 000000000..16eb84a12 --- /dev/null +++ b/source/x/x11/slack-desc/libXp @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXp: libXp +libXp: +libXp: libXp is part of X11. +libXp: +libXp: For more information about the X.Org Foundation (the providers of the +libXp: X.Org implementation of the X Window System), see their website: +libXp: +libXp: http://www.x.org +libXp: +libXp: +libXp: diff --git a/source/x/x11/slack-desc/libXpm b/source/x/x11/slack-desc/libXpm new file mode 100644 index 000000000..82d043809 --- /dev/null +++ b/source/x/x11/slack-desc/libXpm @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXpm: libXpm +libXpm: +libXpm: libXpm is part of X11. +libXpm: +libXpm: For more information about the X.Org Foundation (the providers of the +libXpm: X.Org implementation of the X Window System), see their website: +libXpm: +libXpm: http://www.x.org +libXpm: +libXpm: +libXpm: diff --git a/source/x/x11/slack-desc/libXprintAppUtil b/source/x/x11/slack-desc/libXprintAppUtil new file mode 100644 index 000000000..4ef7b3ede --- /dev/null +++ b/source/x/x11/slack-desc/libXprintAppUtil @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXprintAppUtil: libXprintAppUtil +libXprintAppUtil: +libXprintAppUtil: libXprintAppUtil is part of X11. +libXprintAppUtil: +libXprintAppUtil: For more information about the X.Org Foundation (the providers of the +libXprintAppUtil: X.Org implementation of the X Window System), see their website: +libXprintAppUtil: +libXprintAppUtil: http://www.x.org +libXprintAppUtil: +libXprintAppUtil: +libXprintAppUtil: diff --git a/source/x/x11/slack-desc/libXprintUtil b/source/x/x11/slack-desc/libXprintUtil new file mode 100644 index 000000000..bcad34155 --- /dev/null +++ b/source/x/x11/slack-desc/libXprintUtil @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXprintUtil: libXprintUtil +libXprintUtil: +libXprintUtil: libXprintUtil is part of X11. +libXprintUtil: +libXprintUtil: For more information about the X.Org Foundation (the providers of the +libXprintUtil: X.Org implementation of the X Window System), see their website: +libXprintUtil: +libXprintUtil: http://www.x.org +libXprintUtil: +libXprintUtil: +libXprintUtil: diff --git a/source/x/x11/slack-desc/libXrandr b/source/x/x11/slack-desc/libXrandr new file mode 100644 index 000000000..c86d49abc --- /dev/null +++ b/source/x/x11/slack-desc/libXrandr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXrandr: libXrandr +libXrandr: +libXrandr: libXrandr is part of X11. +libXrandr: +libXrandr: For more information about the X.Org Foundation (the providers of the +libXrandr: X.Org implementation of the X Window System), see their website: +libXrandr: +libXrandr: http://www.x.org +libXrandr: +libXrandr: +libXrandr: diff --git a/source/x/x11/slack-desc/libXrender b/source/x/x11/slack-desc/libXrender new file mode 100644 index 000000000..fe9f3b543 --- /dev/null +++ b/source/x/x11/slack-desc/libXrender @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXrender: libXrender +libXrender: +libXrender: libXrender is part of X11. +libXrender: +libXrender: For more information about the X.Org Foundation (the providers of the +libXrender: X.Org implementation of the X Window System), see their website: +libXrender: +libXrender: http://www.x.org +libXrender: +libXrender: +libXrender: diff --git a/source/x/x11/slack-desc/libXres b/source/x/x11/slack-desc/libXres new file mode 100644 index 000000000..783719f2d --- /dev/null +++ b/source/x/x11/slack-desc/libXres @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXres: libXres +libXres: +libXres: libXres is part of X11. +libXres: +libXres: For more information about the X.Org Foundation (the providers of the +libXres: X.Org implementation of the X Window System), see their website: +libXres: +libXres: http://www.x.org +libXres: +libXres: +libXres: diff --git a/source/x/x11/slack-desc/libXt b/source/x/x11/slack-desc/libXt new file mode 100644 index 000000000..9a03bd981 --- /dev/null +++ b/source/x/x11/slack-desc/libXt @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXt: libXt +libXt: +libXt: libXt is part of X11. +libXt: +libXt: For more information about the X.Org Foundation (the providers of the +libXt: X.Org implementation of the X Window System), see their website: +libXt: +libXt: http://www.x.org +libXt: +libXt: +libXt: diff --git a/source/x/x11/slack-desc/libXtst b/source/x/x11/slack-desc/libXtst new file mode 100644 index 000000000..f71c8475e --- /dev/null +++ b/source/x/x11/slack-desc/libXtst @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXtst: libXtst +libXtst: +libXtst: libXtst is part of X11. +libXtst: +libXtst: For more information about the X.Org Foundation (the providers of the +libXtst: X.Org implementation of the X Window System), see their website: +libXtst: +libXtst: http://www.x.org +libXtst: +libXtst: +libXtst: diff --git a/source/x/x11/slack-desc/libXv b/source/x/x11/slack-desc/libXv new file mode 100644 index 000000000..3bfe02990 --- /dev/null +++ b/source/x/x11/slack-desc/libXv @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXv: libXv +libXv: +libXv: libXv is part of X11. +libXv: +libXv: For more information about the X.Org Foundation (the providers of the +libXv: X.Org implementation of the X Window System), see their website: +libXv: +libXv: http://www.x.org +libXv: +libXv: +libXv: diff --git a/source/x/x11/slack-desc/libXvMC b/source/x/x11/slack-desc/libXvMC new file mode 100644 index 000000000..5557fdb84 --- /dev/null +++ b/source/x/x11/slack-desc/libXvMC @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXvMC: libXvMC +libXvMC: +libXvMC: libXvMC is part of X11. +libXvMC: +libXvMC: For more information about the X.Org Foundation (the providers of the +libXvMC: X.Org implementation of the X Window System), see their website: +libXvMC: +libXvMC: http://www.x.org +libXvMC: +libXvMC: +libXvMC: diff --git a/source/x/x11/slack-desc/libXxf86dga b/source/x/x11/slack-desc/libXxf86dga new file mode 100644 index 000000000..99492bc2a --- /dev/null +++ b/source/x/x11/slack-desc/libXxf86dga @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXxf86dga: libXxf86dga +libXxf86dga: +libXxf86dga: libXxf86dga is part of X11. +libXxf86dga: +libXxf86dga: For more information about the X.Org Foundation (the providers of the +libXxf86dga: X.Org implementation of the X Window System), see their website: +libXxf86dga: +libXxf86dga: http://www.x.org +libXxf86dga: +libXxf86dga: +libXxf86dga: diff --git a/source/x/x11/slack-desc/libXxf86misc b/source/x/x11/slack-desc/libXxf86misc new file mode 100644 index 000000000..8c69dedb9 --- /dev/null +++ b/source/x/x11/slack-desc/libXxf86misc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXxf86misc: libXxf86misc +libXxf86misc: +libXxf86misc: libXxf86misc is part of X11. +libXxf86misc: +libXxf86misc: For more information about the X.Org Foundation (the providers of the +libXxf86misc: X.Org implementation of the X Window System), see their website: +libXxf86misc: +libXxf86misc: http://www.x.org +libXxf86misc: +libXxf86misc: +libXxf86misc: diff --git a/source/x/x11/slack-desc/libXxf86vm b/source/x/x11/slack-desc/libXxf86vm new file mode 100644 index 000000000..0c4820a0d --- /dev/null +++ b/source/x/x11/slack-desc/libXxf86vm @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libXxf86vm: libXxf86vm +libXxf86vm: +libXxf86vm: libXxf86vm is part of X11. +libXxf86vm: +libXxf86vm: For more information about the X.Org Foundation (the providers of the +libXxf86vm: X.Org implementation of the X Window System), see their website: +libXxf86vm: +libXxf86vm: http://www.x.org +libXxf86vm: +libXxf86vm: +libXxf86vm: diff --git a/source/x/x11/slack-desc/libdmx b/source/x/x11/slack-desc/libdmx new file mode 100644 index 000000000..f757df998 --- /dev/null +++ b/source/x/x11/slack-desc/libdmx @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libdmx: libdmx +libdmx: +libdmx: libdmx is part of X11. +libdmx: +libdmx: For more information about the X.Org Foundation (the providers of the +libdmx: X.Org implementation of the X Window System), see their website: +libdmx: +libdmx: http://www.x.org +libdmx: +libdmx: +libdmx: diff --git a/source/x/x11/slack-desc/libfontenc b/source/x/x11/slack-desc/libfontenc new file mode 100644 index 000000000..78b26b029 --- /dev/null +++ b/source/x/x11/slack-desc/libfontenc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libfontenc: libfontenc +libfontenc: +libfontenc: libfontenc is part of X11. +libfontenc: +libfontenc: For more information about the X.Org Foundation (the providers of the +libfontenc: X.Org implementation of the X Window System), see their website: +libfontenc: +libfontenc: http://www.x.org +libfontenc: +libfontenc: +libfontenc: diff --git a/source/x/x11/slack-desc/liblbxutil b/source/x/x11/slack-desc/liblbxutil new file mode 100644 index 000000000..0a42196ec --- /dev/null +++ b/source/x/x11/slack-desc/liblbxutil @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +liblbxutil: liblbxutil +liblbxutil: +liblbxutil: liblbxutil is part of X11. +liblbxutil: +liblbxutil: For more information about the X.Org Foundation (the providers of the +liblbxutil: X.Org implementation of the X Window System), see their website: +liblbxutil: +liblbxutil: http://www.x.org +liblbxutil: +liblbxutil: +liblbxutil: diff --git a/source/x/x11/slack-desc/liboldX b/source/x/x11/slack-desc/liboldX new file mode 100644 index 000000000..d8e65ba42 --- /dev/null +++ b/source/x/x11/slack-desc/liboldX @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +liboldX: liboldX +liboldX: +liboldX: liboldX is part of X11. +liboldX: +liboldX: For more information about the X.Org Foundation (the providers of the +liboldX: X.Org implementation of the X Window System), see their website: +liboldX: +liboldX: http://www.x.org +liboldX: +liboldX: +liboldX: diff --git a/source/x/x11/slack-desc/libpciaccess b/source/x/x11/slack-desc/libpciaccess new file mode 100644 index 000000000..0c499f77a --- /dev/null +++ b/source/x/x11/slack-desc/libpciaccess @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libpciaccess: libpciaccess +libpciaccess: +libpciaccess: libpciaccess is part of X11. +libpciaccess: +libpciaccess: For more information about the X.Org Foundation (the providers of the +libpciaccess: X.Org implementation of the X Window System), see their website: +libpciaccess: +libpciaccess: http://www.x.org +libpciaccess: +libpciaccess: +libpciaccess: diff --git a/source/x/x11/slack-desc/libpthread-stubs b/source/x/x11/slack-desc/libpthread-stubs new file mode 100644 index 000000000..8c0c0e5d3 --- /dev/null +++ b/source/x/x11/slack-desc/libpthread-stubs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libpthread-stubs: libpthread-stubs +libpthread-stubs: +libpthread-stubs: libpthread-stubs is part of X11. +libpthread-stubs: +libpthread-stubs: For more information about the X.Org Foundation (the providers of the +libpthread-stubs: X.Org implementation of the X Window System), see their website: +libpthread-stubs: +libpthread-stubs: http://www.x.org +libpthread-stubs: +libpthread-stubs: +libpthread-stubs: diff --git a/source/x/x11/slack-desc/libxcb b/source/x/x11/slack-desc/libxcb new file mode 100644 index 000000000..35182210a --- /dev/null +++ b/source/x/x11/slack-desc/libxcb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxcb: libxcb (X protocol C-language Binding) +libxcb: +libxcb: The XCB library provides an interface to the X Window System protocol +libxcb: which is fully capable of replacing Xlib. In fact, libX11 makes use +libxcb: of libxcb as much as possible. :-) Porting to XCB has several +libxcb: advantages such as a smaller memory footprint, latency hiding, direct +libxcb: protocol access, and improved thread support. +libxcb: +libxcb: +libxcb: +libxcb: diff --git a/source/x/x11/slack-desc/libxkbfile b/source/x/x11/slack-desc/libxkbfile new file mode 100644 index 000000000..ffaa00a44 --- /dev/null +++ b/source/x/x11/slack-desc/libxkbfile @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxkbfile: libxkbfile +libxkbfile: +libxkbfile: libxkbfile is part of X11. +libxkbfile: +libxkbfile: For more information about the X.Org Foundation (the providers of the +libxkbfile: X.Org implementation of the X Window System), see their website: +libxkbfile: +libxkbfile: http://www.x.org +libxkbfile: +libxkbfile: +libxkbfile: diff --git a/source/x/x11/slack-desc/libxkbui b/source/x/x11/slack-desc/libxkbui new file mode 100644 index 000000000..332ad4144 --- /dev/null +++ b/source/x/x11/slack-desc/libxkbui @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +libxkbui: libxkbui +libxkbui: +libxkbui: libxkbui is part of X11. +libxkbui: +libxkbui: For more information about the X.Org Foundation (the providers of the +libxkbui: X.Org implementation of the X Window System), see their website: +libxkbui: +libxkbui: http://www.x.org +libxkbui: +libxkbui: +libxkbui: diff --git a/source/x/x11/slack-desc/listres b/source/x/x11/slack-desc/listres new file mode 100644 index 000000000..16ae55b50 --- /dev/null +++ b/source/x/x11/slack-desc/listres @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +listres: listres +listres: +listres: listres is part of X11. +listres: +listres: For more information about the X.Org Foundation (the providers of the +listres: X.Org implementation of the X Window System), see their website: +listres: +listres: http://www.x.org +listres: +listres: +listres: diff --git a/source/x/x11/slack-desc/lndir b/source/x/x11/slack-desc/lndir new file mode 100644 index 000000000..0a73ae95d --- /dev/null +++ b/source/x/x11/slack-desc/lndir @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +lndir: lndir +lndir: +lndir: lndir is part of X11. +lndir: +lndir: For more information about the X.Org Foundation (the providers of the +lndir: X.Org implementation of the X Window System), see their website: +lndir: +lndir: http://www.x.org +lndir: +lndir: +lndir: diff --git a/source/x/x11/slack-desc/luit b/source/x/x11/slack-desc/luit new file mode 100644 index 000000000..ab7f144f2 --- /dev/null +++ b/source/x/x11/slack-desc/luit @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +luit: luit +luit: +luit: luit is part of X11. +luit: +luit: For more information about the X.Org Foundation (the providers of the +luit: X.Org implementation of the X Window System), see their website: +luit: +luit: http://www.x.org +luit: +luit: +luit: diff --git a/source/x/x11/slack-desc/makedepend b/source/x/x11/slack-desc/makedepend new file mode 100644 index 000000000..444713af3 --- /dev/null +++ b/source/x/x11/slack-desc/makedepend @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +makedepend: makedepend +makedepend: +makedepend: makedepend is part of X11. +makedepend: +makedepend: For more information about the X.Org Foundation (the providers of the +makedepend: X.Org implementation of the X Window System), see their website: +makedepend: +makedepend: http://www.x.org +makedepend: +makedepend: +makedepend: diff --git a/source/x/x11/slack-desc/mkcfm b/source/x/x11/slack-desc/mkcfm new file mode 100644 index 000000000..fa3a212cc --- /dev/null +++ b/source/x/x11/slack-desc/mkcfm @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mkcfm: mkcfm +mkcfm: +mkcfm: mkcfm is part of X11. +mkcfm: +mkcfm: For more information about the X.Org Foundation (the providers of the +mkcfm: X.Org implementation of the X Window System), see their website: +mkcfm: +mkcfm: http://www.x.org +mkcfm: +mkcfm: +mkcfm: diff --git a/source/x/x11/slack-desc/mkcomposecache b/source/x/x11/slack-desc/mkcomposecache new file mode 100644 index 000000000..c219f99fe --- /dev/null +++ b/source/x/x11/slack-desc/mkcomposecache @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mkcomposecache: mkcomposecache +mkcomposecache: +mkcomposecache: mkcomposecache is part of X11. +mkcomposecache: +mkcomposecache: For more information about the X.Org Foundation (the providers of the +mkcomposecache: X.Org implementation of the X Window System), see their website: +mkcomposecache: +mkcomposecache: http://www.x.org +mkcomposecache: +mkcomposecache: +mkcomposecache: diff --git a/source/x/x11/slack-desc/mkfontdir b/source/x/x11/slack-desc/mkfontdir new file mode 100644 index 000000000..681db8f21 --- /dev/null +++ b/source/x/x11/slack-desc/mkfontdir @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mkfontdir: mkfontdir +mkfontdir: +mkfontdir: mkfontdir is part of X11. +mkfontdir: +mkfontdir: For more information about the X.Org Foundation (the providers of the +mkfontdir: X.Org implementation of the X Window System), see their website: +mkfontdir: +mkfontdir: http://www.x.org +mkfontdir: +mkfontdir: +mkfontdir: diff --git a/source/x/x11/slack-desc/mkfontscale b/source/x/x11/slack-desc/mkfontscale new file mode 100644 index 000000000..57c6f825e --- /dev/null +++ b/source/x/x11/slack-desc/mkfontscale @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mkfontscale: mkfontscale +mkfontscale: +mkfontscale: mkfontscale is part of X11. +mkfontscale: +mkfontscale: For more information about the X.Org Foundation (the providers of the +mkfontscale: X.Org implementation of the X Window System), see their website: +mkfontscale: +mkfontscale: http://www.x.org +mkfontscale: +mkfontscale: +mkfontscale: diff --git a/source/x/x11/slack-desc/oclock b/source/x/x11/slack-desc/oclock new file mode 100644 index 000000000..7e4b2acd2 --- /dev/null +++ b/source/x/x11/slack-desc/oclock @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +oclock: oclock +oclock: +oclock: oclock is part of X11. +oclock: +oclock: For more information about the X.Org Foundation (the providers of the +oclock: X.Org implementation of the X Window System), see their website: +oclock: +oclock: http://www.x.org +oclock: +oclock: +oclock: diff --git a/source/x/x11/slack-desc/pixman b/source/x/x11/slack-desc/pixman new file mode 100644 index 000000000..350e53dd7 --- /dev/null +++ b/source/x/x11/slack-desc/pixman @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pixman: pixman +pixman: +pixman: pixman contains low-level pixel manipulation routines and is used by +pixman: both xorg and cairo. +pixman: +pixman: For more information about the X.Org Foundation (the providers of the +pixman: X.Org implementation of the X Window System), see their website: +pixman: +pixman: http://www.x.org +pixman: +pixman: diff --git a/source/x/x11/slack-desc/printproto b/source/x/x11/slack-desc/printproto new file mode 100644 index 000000000..3aa4fe072 --- /dev/null +++ b/source/x/x11/slack-desc/printproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +printproto: printproto +printproto: +printproto: printproto is part of X11. +printproto: +printproto: For more information about the X.Org Foundation (the providers of the +printproto: X.Org implementation of the X Window System), see their website: +printproto: +printproto: http://www.x.org +printproto: +printproto: +printproto: diff --git a/source/x/x11/slack-desc/proxymngr b/source/x/x11/slack-desc/proxymngr new file mode 100644 index 000000000..63a906609 --- /dev/null +++ b/source/x/x11/slack-desc/proxymngr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +proxymngr: proxymngr +proxymngr: +proxymngr: proxymngr is part of X11. +proxymngr: +proxymngr: For more information about the X.Org Foundation (the providers of the +proxymngr: X.Org implementation of the X Window System), see their website: +proxymngr: +proxymngr: http://www.x.org +proxymngr: +proxymngr: +proxymngr: diff --git a/source/x/x11/slack-desc/randrproto b/source/x/x11/slack-desc/randrproto new file mode 100644 index 000000000..a56827c9a --- /dev/null +++ b/source/x/x11/slack-desc/randrproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +randrproto: randrproto +randrproto: +randrproto: randrproto is part of X11. +randrproto: +randrproto: For more information about the X.Org Foundation (the providers of the +randrproto: X.Org implementation of the X Window System), see their website: +randrproto: +randrproto: http://www.x.org +randrproto: +randrproto: +randrproto: diff --git a/source/x/x11/slack-desc/recordproto b/source/x/x11/slack-desc/recordproto new file mode 100644 index 000000000..caecfd7e4 --- /dev/null +++ b/source/x/x11/slack-desc/recordproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +recordproto: recordproto +recordproto: +recordproto: recordproto is part of X11. +recordproto: +recordproto: For more information about the X.Org Foundation (the providers of the +recordproto: X.Org implementation of the X Window System), see their website: +recordproto: +recordproto: http://www.x.org +recordproto: +recordproto: +recordproto: diff --git a/source/x/x11/slack-desc/rendercheck b/source/x/x11/slack-desc/rendercheck new file mode 100644 index 000000000..9503468ee --- /dev/null +++ b/source/x/x11/slack-desc/rendercheck @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rendercheck: rendercheck +rendercheck: +rendercheck: rendercheck is part of X11. +rendercheck: +rendercheck: For more information about the X.Org Foundation (the providers of the +rendercheck: X.Org implementation of the X Window System), see their website: +rendercheck: +rendercheck: http://www.x.org +rendercheck: +rendercheck: +rendercheck: diff --git a/source/x/x11/slack-desc/renderproto b/source/x/x11/slack-desc/renderproto new file mode 100644 index 000000000..cdc21f016 --- /dev/null +++ b/source/x/x11/slack-desc/renderproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +renderproto: renderproto +renderproto: +renderproto: renderproto is part of X11. +renderproto: +renderproto: For more information about the X.Org Foundation (the providers of the +renderproto: X.Org implementation of the X Window System), see their website: +renderproto: +renderproto: http://www.x.org +renderproto: +renderproto: +renderproto: diff --git a/source/x/x11/slack-desc/resourceproto b/source/x/x11/slack-desc/resourceproto new file mode 100644 index 000000000..8303f74d4 --- /dev/null +++ b/source/x/x11/slack-desc/resourceproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +resourceproto: resourceproto +resourceproto: +resourceproto: resourceproto is part of X11. +resourceproto: +resourceproto: For more information about the X.Org Foundation (the providers of the +resourceproto: X.Org implementation of the X Window System), see their website: +resourceproto: +resourceproto: http://www.x.org +resourceproto: +resourceproto: +resourceproto: diff --git a/source/x/x11/slack-desc/rgb b/source/x/x11/slack-desc/rgb new file mode 100644 index 000000000..34263a01c --- /dev/null +++ b/source/x/x11/slack-desc/rgb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rgb: rgb +rgb: +rgb: rgb is part of X11. +rgb: +rgb: For more information about the X.Org Foundation (the providers of the +rgb: X.Org implementation of the X Window System), see their website: +rgb: +rgb: http://www.x.org +rgb: +rgb: +rgb: diff --git a/source/x/x11/slack-desc/rstart b/source/x/x11/slack-desc/rstart new file mode 100644 index 000000000..e009e289f --- /dev/null +++ b/source/x/x11/slack-desc/rstart @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rstart: rstart +rstart: +rstart: rstart is part of X11. +rstart: +rstart: For more information about the X.Org Foundation (the providers of the +rstart: X.Org implementation of the X Window System), see their website: +rstart: +rstart: http://www.x.org +rstart: +rstart: +rstart: diff --git a/source/x/x11/slack-desc/scripts b/source/x/x11/slack-desc/scripts new file mode 100644 index 000000000..549159b27 --- /dev/null +++ b/source/x/x11/slack-desc/scripts @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scripts: scripts +scripts: +scripts: scripts is part of X11. +scripts: +scripts: For more information about the X.Org Foundation (the providers of the +scripts: X.Org implementation of the X Window System), see their website: +scripts: +scripts: http://www.x.org +scripts: +scripts: +scripts: diff --git a/source/x/x11/slack-desc/scrnsaverproto b/source/x/x11/slack-desc/scrnsaverproto new file mode 100644 index 000000000..70142f892 --- /dev/null +++ b/source/x/x11/slack-desc/scrnsaverproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +scrnsaverproto: scrnsaverproto +scrnsaverproto: +scrnsaverproto: scrnsaverproto is part of X11. +scrnsaverproto: +scrnsaverproto: For more information about the X.Org Foundation (the providers of the +scrnsaverproto: X.Org implementation of the X Window System), see their website: +scrnsaverproto: +scrnsaverproto: http://www.x.org +scrnsaverproto: +scrnsaverproto: +scrnsaverproto: diff --git a/source/x/x11/slack-desc/sessreg b/source/x/x11/slack-desc/sessreg new file mode 100644 index 000000000..8a85e3268 --- /dev/null +++ b/source/x/x11/slack-desc/sessreg @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sessreg: sessreg +sessreg: +sessreg: sessreg is part of X11. +sessreg: +sessreg: For more information about the X.Org Foundation (the providers of the +sessreg: X.Org implementation of the X Window System), see their website: +sessreg: +sessreg: http://www.x.org +sessreg: +sessreg: +sessreg: diff --git a/source/x/x11/slack-desc/setxkbmap b/source/x/x11/slack-desc/setxkbmap new file mode 100644 index 000000000..99beaa92a --- /dev/null +++ b/source/x/x11/slack-desc/setxkbmap @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +setxkbmap: setxkbmap +setxkbmap: +setxkbmap: setxkbmap is part of X11. +setxkbmap: +setxkbmap: For more information about the X.Org Foundation (the providers of the +setxkbmap: X.Org implementation of the X Window System), see their website: +setxkbmap: +setxkbmap: http://www.x.org +setxkbmap: +setxkbmap: +setxkbmap: diff --git a/source/x/x11/slack-desc/showfont b/source/x/x11/slack-desc/showfont new file mode 100644 index 000000000..b53ce29ad --- /dev/null +++ b/source/x/x11/slack-desc/showfont @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +showfont: showfont +showfont: +showfont: showfont is part of X11. +showfont: +showfont: For more information about the X.Org Foundation (the providers of the +showfont: X.Org implementation of the X Window System), see their website: +showfont: +showfont: http://www.x.org +showfont: +showfont: +showfont: diff --git a/source/x/x11/slack-desc/smproxy b/source/x/x11/slack-desc/smproxy new file mode 100644 index 000000000..a8bc5976c --- /dev/null +++ b/source/x/x11/slack-desc/smproxy @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +smproxy: smproxy +smproxy: +smproxy: smproxy is part of X11. +smproxy: +smproxy: For more information about the X.Org Foundation (the providers of the +smproxy: X.Org implementation of the X Window System), see their website: +smproxy: +smproxy: http://www.x.org +smproxy: +smproxy: +smproxy: diff --git a/source/x/x11/slack-desc/trapproto b/source/x/x11/slack-desc/trapproto new file mode 100644 index 000000000..5b0a2174a --- /dev/null +++ b/source/x/x11/slack-desc/trapproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +trapproto: trapproto +trapproto: +trapproto: trapproto is part of X11. +trapproto: +trapproto: For more information about the X.Org Foundation (the providers of the +trapproto: X.Org implementation of the X Window System), see their website: +trapproto: +trapproto: http://www.x.org +trapproto: +trapproto: +trapproto: diff --git a/source/x/x11/slack-desc/twm b/source/x/x11/slack-desc/twm new file mode 100644 index 000000000..78c09f215 --- /dev/null +++ b/source/x/x11/slack-desc/twm @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +twm: twm +twm: +twm: twm is part of X11. +twm: +twm: For more information about the X.Org Foundation (the providers of the +twm: X.Org implementation of the X Window System), see their website: +twm: +twm: http://www.x.org +twm: +twm: +twm: diff --git a/source/x/x11/slack-desc/util-macros b/source/x/x11/slack-desc/util-macros new file mode 100644 index 000000000..39426633e --- /dev/null +++ b/source/x/x11/slack-desc/util-macros @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +util-macros: util-macros +util-macros: +util-macros: util-macros is part of X11. +util-macros: +util-macros: For more information about the X.Org Foundation (the providers of the +util-macros: X.Org implementation of the X Window System), see their website: +util-macros: +util-macros: http://www.x.org +util-macros: +util-macros: +util-macros: diff --git a/source/x/x11/slack-desc/videoproto b/source/x/x11/slack-desc/videoproto new file mode 100644 index 000000000..e90690c2a --- /dev/null +++ b/source/x/x11/slack-desc/videoproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +videoproto: videoproto +videoproto: +videoproto: videoproto is part of X11. +videoproto: +videoproto: For more information about the X.Org Foundation (the providers of the +videoproto: X.Org implementation of the X Window System), see their website: +videoproto: +videoproto: http://www.x.org +videoproto: +videoproto: +videoproto: diff --git a/source/x/x11/slack-desc/viewres b/source/x/x11/slack-desc/viewres new file mode 100644 index 000000000..e710f02bf --- /dev/null +++ b/source/x/x11/slack-desc/viewres @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +viewres: viewres +viewres: +viewres: viewres is part of X11. +viewres: +viewres: For more information about the X.Org Foundation (the providers of the +viewres: X.Org implementation of the X Window System), see their website: +viewres: +viewres: http://www.x.org +viewres: +viewres: +viewres: diff --git a/source/x/x11/slack-desc/windowswmproto b/source/x/x11/slack-desc/windowswmproto new file mode 100644 index 000000000..38e977285 --- /dev/null +++ b/source/x/x11/slack-desc/windowswmproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +windowswmproto: windowswmproto +windowswmproto: +windowswmproto: windowswmproto is part of X11. +windowswmproto: +windowswmproto: For more information about the X.Org Foundation (the providers of the +windowswmproto: X.Org implementation of the X Window System), see their website: +windowswmproto: +windowswmproto: http://www.x.org +windowswmproto: +windowswmproto: +windowswmproto: diff --git a/source/x/x11/slack-desc/x11-app b/source/x/x11/slack-desc/x11-app new file mode 100644 index 000000000..2667d321a --- /dev/null +++ b/source/x/x11/slack-desc/x11-app @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-app: x11-app (the traditional collection of basic X apps) +x11-app: +x11-app: These are the basic X programs that come with the X Window System. +x11-app: +x11-app: +x11-app: +x11-app: +x11-app: +x11-app: +x11-app: +x11-app: diff --git a/source/x/x11/slack-desc/x11-data b/source/x/x11/slack-desc/x11-data new file mode 100644 index 000000000..0b8ef63b8 --- /dev/null +++ b/source/x/x11/slack-desc/x11-data @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-data: x11-data (data files used by X) +x11-data: +x11-data: +x11-data: +x11-data: +x11-data: +x11-data: +x11-data: +x11-data: +x11-data: +x11-data: diff --git a/source/x/x11/slack-desc/x11-doc b/source/x/x11/slack-desc/x11-doc new file mode 100644 index 000000000..8ac7b8b9e --- /dev/null +++ b/source/x/x11/slack-desc/x11-doc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-doc: x11-doc (documentation for X) +x11-doc: +x11-doc: +x11-doc: +x11-doc: +x11-doc: +x11-doc: +x11-doc: +x11-doc: +x11-doc: +x11-doc: diff --git a/source/x/x11/slack-desc/x11-driver b/source/x/x11/slack-desc/x11-driver new file mode 100644 index 000000000..3196549e9 --- /dev/null +++ b/source/x/x11/slack-desc/x11-driver @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-driver: x11-driver (input and output drivers for X) +x11-driver: +x11-driver: +x11-driver: +x11-driver: +x11-driver: +x11-driver: +x11-driver: +x11-driver: +x11-driver: +x11-driver: diff --git a/source/x/x11/slack-desc/x11-font b/source/x/x11/slack-desc/x11-font new file mode 100644 index 000000000..b0bf50f61 --- /dev/null +++ b/source/x/x11/slack-desc/x11-font @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-font: x11-font (fonts for X) +x11-font: +x11-font: Fonts for X. +x11-font: +x11-font: +x11-font: +x11-font: +x11-font: +x11-font: +x11-font: +x11-font: diff --git a/source/x/x11/slack-desc/x11-lib b/source/x/x11/slack-desc/x11-lib new file mode 100644 index 000000000..3090338c6 --- /dev/null +++ b/source/x/x11/slack-desc/x11-lib @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-lib: x11-lib (X11 libraries and header files) +x11-lib: +x11-lib: +x11-lib: +x11-lib: +x11-lib: +x11-lib: +x11-lib: +x11-lib: +x11-lib: +x11-lib: diff --git a/source/x/x11/slack-desc/x11-proto b/source/x/x11/slack-desc/x11-proto new file mode 100644 index 000000000..1c1f97661 --- /dev/null +++ b/source/x/x11/slack-desc/x11-proto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-proto: x11-proto (files used for developing X) +x11-proto: +x11-proto: +x11-proto: +x11-proto: +x11-proto: +x11-proto: +x11-proto: +x11-proto: +x11-proto: +x11-proto: diff --git a/source/x/x11/slack-desc/x11-util b/source/x/x11/slack-desc/x11-util new file mode 100644 index 000000000..a5d30280d --- /dev/null +++ b/source/x/x11/slack-desc/x11-util @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11-util: x11-util (a set of handy utilities for X11) +x11-util: +x11-util: +x11-util: +x11-util: +x11-util: +x11-util: +x11-util: +x11-util: +x11-util: +x11-util: diff --git a/source/x/x11/slack-desc/x11perf b/source/x/x11/slack-desc/x11perf new file mode 100644 index 000000000..8d6996acd --- /dev/null +++ b/source/x/x11/slack-desc/x11perf @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x11perf: x11perf +x11perf: +x11perf: x11perf is part of X11. +x11perf: +x11perf: For more information about the X.Org Foundation (the providers of the +x11perf: X.Org implementation of the X Window System), see their website: +x11perf: +x11perf: http://www.x.org +x11perf: +x11perf: +x11perf: diff --git a/source/x/x11/slack-desc/xauth b/source/x/x11/slack-desc/xauth new file mode 100644 index 000000000..71829a5d7 --- /dev/null +++ b/source/x/x11/slack-desc/xauth @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xauth: xauth +xauth: +xauth: xauth is part of X11. +xauth: +xauth: For more information about the X.Org Foundation (the providers of the +xauth: X.Org implementation of the X Window System), see their website: +xauth: +xauth: http://www.x.org +xauth: +xauth: +xauth: diff --git a/source/x/x11/slack-desc/xbacklight b/source/x/x11/slack-desc/xbacklight new file mode 100644 index 000000000..914a6a79a --- /dev/null +++ b/source/x/x11/slack-desc/xbacklight @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xbacklight: xbacklight +xbacklight: +xbacklight: xbacklight is part of X11. +xbacklight: +xbacklight: For more information about the X.Org Foundation (the providers of the +xbacklight: X.Org implementation of the X Window System), see their website: +xbacklight: +xbacklight: http://www.x.org +xbacklight: +xbacklight: +xbacklight: diff --git a/source/x/x11/slack-desc/xbiff b/source/x/x11/slack-desc/xbiff new file mode 100644 index 000000000..ef65aff3b --- /dev/null +++ b/source/x/x11/slack-desc/xbiff @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xbiff: xbiff +xbiff: +xbiff: xbiff is part of X11. +xbiff: +xbiff: For more information about the X.Org Foundation (the providers of the +xbiff: X.Org implementation of the X Window System), see their website: +xbiff: +xbiff: http://www.x.org +xbiff: +xbiff: +xbiff: diff --git a/source/x/x11/slack-desc/xbitmaps b/source/x/x11/slack-desc/xbitmaps new file mode 100644 index 000000000..91b0a4d24 --- /dev/null +++ b/source/x/x11/slack-desc/xbitmaps @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xbitmaps: xbitmaps +xbitmaps: +xbitmaps: xbitmaps is part of X11. +xbitmaps: +xbitmaps: For more information about the X.Org Foundation (the providers of the +xbitmaps: X.Org implementation of the X Window System), see their website: +xbitmaps: +xbitmaps: http://www.x.org +xbitmaps: +xbitmaps: +xbitmaps: diff --git a/source/x/x11/slack-desc/xcalc b/source/x/x11/slack-desc/xcalc new file mode 100644 index 000000000..d0f6d2e18 --- /dev/null +++ b/source/x/x11/slack-desc/xcalc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xcalc: xcalc +xcalc: +xcalc: xcalc is part of X11. +xcalc: +xcalc: For more information about the X.Org Foundation (the providers of the +xcalc: X.Org implementation of the X Window System), see their website: +xcalc: +xcalc: http://www.x.org +xcalc: +xcalc: +xcalc: diff --git a/source/x/x11/slack-desc/xcb-proto b/source/x/x11/slack-desc/xcb-proto new file mode 100644 index 000000000..72736593d --- /dev/null +++ b/source/x/x11/slack-desc/xcb-proto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xcb-proto: xcb-proto +xcb-proto: +xcb-proto: xcb-proto is part of X11. +xcb-proto: +xcb-proto: For more information about the X.Org Foundation (the providers of the +xcb-proto: X.Org implementation of the X Window System), see their website: +xcb-proto: +xcb-proto: http://www.x.org +xcb-proto: +xcb-proto: +xcb-proto: diff --git a/source/x/x11/slack-desc/xcb-util b/source/x/x11/slack-desc/xcb-util new file mode 100644 index 000000000..450722989 --- /dev/null +++ b/source/x/x11/slack-desc/xcb-util @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +xcb-util: xcb-util +xcb-util: +xcb-util: xcb-util is part of X11. +xcb-util: +xcb-util: For more information about the X.Org Foundation (the providers of the +xcb-util: X.Org implementation of the X Window System), see their website: +xcb-util: +xcb-util: http://www.x.org +xcb-util: +xcb-util: +xcb-util: diff --git a/source/x/x11/slack-desc/xclipboard b/source/x/x11/slack-desc/xclipboard new file mode 100644 index 000000000..9f3092058 --- /dev/null +++ b/source/x/x11/slack-desc/xclipboard @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xclipboard: xclipboard +xclipboard: +xclipboard: xclipboard is part of X11. +xclipboard: +xclipboard: For more information about the X.Org Foundation (the providers of the +xclipboard: X.Org implementation of the X Window System), see their website: +xclipboard: +xclipboard: http://www.x.org +xclipboard: +xclipboard: +xclipboard: diff --git a/source/x/x11/slack-desc/xclock b/source/x/x11/slack-desc/xclock new file mode 100644 index 000000000..04781f5ec --- /dev/null +++ b/source/x/x11/slack-desc/xclock @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xclock: xclock +xclock: +xclock: xclock is part of X11. +xclock: +xclock: For more information about the X.Org Foundation (the providers of the +xclock: X.Org implementation of the X Window System), see their website: +xclock: +xclock: http://www.x.org +xclock: +xclock: +xclock: diff --git a/source/x/x11/slack-desc/xcmiscproto b/source/x/x11/slack-desc/xcmiscproto new file mode 100644 index 000000000..a8c9dcc48 --- /dev/null +++ b/source/x/x11/slack-desc/xcmiscproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xcmiscproto: xcmiscproto +xcmiscproto: +xcmiscproto: xcmiscproto is part of X11. +xcmiscproto: +xcmiscproto: For more information about the X.Org Foundation (the providers of the +xcmiscproto: X.Org implementation of the X Window System), see their website: +xcmiscproto: +xcmiscproto: http://www.x.org +xcmiscproto: +xcmiscproto: +xcmiscproto: diff --git a/source/x/x11/slack-desc/xcmsdb b/source/x/x11/slack-desc/xcmsdb new file mode 100644 index 000000000..9075a18fd --- /dev/null +++ b/source/x/x11/slack-desc/xcmsdb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xcmsdb: xcmsdb +xcmsdb: +xcmsdb: xcmsdb is part of X11. +xcmsdb: +xcmsdb: For more information about the X.Org Foundation (the providers of the +xcmsdb: X.Org implementation of the X Window System), see their website: +xcmsdb: +xcmsdb: http://www.x.org +xcmsdb: +xcmsdb: +xcmsdb: diff --git a/source/x/x11/slack-desc/xcompmgr b/source/x/x11/slack-desc/xcompmgr new file mode 100644 index 000000000..1381b7be3 --- /dev/null +++ b/source/x/x11/slack-desc/xcompmgr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xcompmgr: xcompmgr +xcompmgr: +xcompmgr: xcompmgr is part of X11. +xcompmgr: +xcompmgr: For more information about the X.Org Foundation (the providers of the +xcompmgr: X.Org implementation of the X Window System), see their website: +xcompmgr: +xcompmgr: http://www.x.org +xcompmgr: +xcompmgr: +xcompmgr: diff --git a/source/x/x11/slack-desc/xconsole b/source/x/x11/slack-desc/xconsole new file mode 100644 index 000000000..f3a8f2bd5 --- /dev/null +++ b/source/x/x11/slack-desc/xconsole @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xconsole: xconsole +xconsole: +xconsole: xconsole is part of X11. +xconsole: +xconsole: For more information about the X.Org Foundation (the providers of the +xconsole: X.Org implementation of the X Window System), see their website: +xconsole: +xconsole: http://www.x.org +xconsole: +xconsole: +xconsole: diff --git a/source/x/x11/slack-desc/xcursor-themes b/source/x/x11/slack-desc/xcursor-themes new file mode 100644 index 000000000..d3ffeeb50 --- /dev/null +++ b/source/x/x11/slack-desc/xcursor-themes @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xcursor-themes: xcursor-themes +xcursor-themes: +xcursor-themes: xcursor-themes is part of X11. +xcursor-themes: +xcursor-themes: For more information about the X.Org Foundation (the providers of the +xcursor-themes: X.Org implementation of the X Window System), see their website: +xcursor-themes: +xcursor-themes: http://www.x.org +xcursor-themes: +xcursor-themes: +xcursor-themes: diff --git a/source/x/x11/slack-desc/xcursorgen b/source/x/x11/slack-desc/xcursorgen new file mode 100644 index 000000000..bce69340e --- /dev/null +++ b/source/x/x11/slack-desc/xcursorgen @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xcursorgen: xcursorgen +xcursorgen: +xcursorgen: xcursorgen is part of X11. +xcursorgen: +xcursorgen: For more information about the X.Org Foundation (the providers of the +xcursorgen: X.Org implementation of the X Window System), see their website: +xcursorgen: +xcursorgen: http://www.x.org +xcursorgen: +xcursorgen: +xcursorgen: diff --git a/source/x/x11/slack-desc/xdbedizzy b/source/x/x11/slack-desc/xdbedizzy new file mode 100644 index 000000000..03ecda051 --- /dev/null +++ b/source/x/x11/slack-desc/xdbedizzy @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xdbedizzy: xdbedizzy +xdbedizzy: +xdbedizzy: xdbedizzy is part of X11. +xdbedizzy: +xdbedizzy: For more information about the X.Org Foundation (the providers of the +xdbedizzy: X.Org implementation of the X Window System), see their website: +xdbedizzy: +xdbedizzy: http://www.x.org +xdbedizzy: +xdbedizzy: +xdbedizzy: diff --git a/source/x/x11/slack-desc/xditview b/source/x/x11/slack-desc/xditview new file mode 100644 index 000000000..82b175fbf --- /dev/null +++ b/source/x/x11/slack-desc/xditview @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xditview: xditview +xditview: +xditview: xditview is part of X11. +xditview: +xditview: For more information about the X.Org Foundation (the providers of the +xditview: X.Org implementation of the X Window System), see their website: +xditview: +xditview: http://www.x.org +xditview: +xditview: +xditview: diff --git a/source/x/x11/slack-desc/xdm b/source/x/x11/slack-desc/xdm new file mode 100644 index 000000000..88446a5ec --- /dev/null +++ b/source/x/x11/slack-desc/xdm @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xdm: xdm +xdm: +xdm: xdm is part of X11. +xdm: +xdm: For more information about the X.Org Foundation (the providers of the +xdm: X.Org implementation of the X Window System), see their website: +xdm: +xdm: http://www.x.org +xdm: +xdm: +xdm: diff --git a/source/x/x11/slack-desc/xdpyinfo b/source/x/x11/slack-desc/xdpyinfo new file mode 100644 index 000000000..80af8f41e --- /dev/null +++ b/source/x/x11/slack-desc/xdpyinfo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xdpyinfo: xdpyinfo +xdpyinfo: +xdpyinfo: xdpyinfo is part of X11. +xdpyinfo: +xdpyinfo: For more information about the X.Org Foundation (the providers of the +xdpyinfo: X.Org implementation of the X Window System), see their website: +xdpyinfo: +xdpyinfo: http://www.x.org +xdpyinfo: +xdpyinfo: +xdpyinfo: diff --git a/source/x/x11/slack-desc/xdriinfo b/source/x/x11/slack-desc/xdriinfo new file mode 100644 index 000000000..e5850b3ae --- /dev/null +++ b/source/x/x11/slack-desc/xdriinfo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xdriinfo: xdriinfo +xdriinfo: +xdriinfo: xdriinfo is part of X11. +xdriinfo: +xdriinfo: For more information about the X.Org Foundation (the providers of the +xdriinfo: X.Org implementation of the X Window System), see their website: +xdriinfo: +xdriinfo: http://www.x.org +xdriinfo: +xdriinfo: +xdriinfo: diff --git a/source/x/x11/slack-desc/xedit b/source/x/x11/slack-desc/xedit new file mode 100644 index 000000000..00e969ceb --- /dev/null +++ b/source/x/x11/slack-desc/xedit @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xedit: xedit +xedit: +xedit: xedit is part of X11. +xedit: +xedit: For more information about the X.Org Foundation (the providers of the +xedit: X.Org implementation of the X Window System), see their website: +xedit: +xedit: http://www.x.org +xedit: +xedit: +xedit: diff --git a/source/x/x11/slack-desc/xev b/source/x/x11/slack-desc/xev new file mode 100644 index 000000000..6e95b7f9a --- /dev/null +++ b/source/x/x11/slack-desc/xev @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xev: xev +xev: +xev: xev is part of X11. +xev: +xev: For more information about the X.Org Foundation (the providers of the +xev: X.Org implementation of the X Window System), see their website: +xev: +xev: http://www.x.org +xev: +xev: +xev: diff --git a/source/x/x11/slack-desc/xextproto b/source/x/x11/slack-desc/xextproto new file mode 100644 index 000000000..53df9fed0 --- /dev/null +++ b/source/x/x11/slack-desc/xextproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xextproto: xextproto +xextproto: +xextproto: xextproto is part of X11. +xextproto: +xextproto: For more information about the X.Org Foundation (the providers of the +xextproto: X.Org implementation of the X Window System), see their website: +xextproto: +xextproto: http://www.x.org +xextproto: +xextproto: +xextproto: diff --git a/source/x/x11/slack-desc/xeyes b/source/x/x11/slack-desc/xeyes new file mode 100644 index 000000000..ddf82f0d5 --- /dev/null +++ b/source/x/x11/slack-desc/xeyes @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xeyes: xeyes +xeyes: +xeyes: xeyes is part of X11. +xeyes: +xeyes: For more information about the X.Org Foundation (the providers of the +xeyes: X.Org implementation of the X Window System), see their website: +xeyes: +xeyes: http://www.x.org +xeyes: +xeyes: +xeyes: diff --git a/source/x/x11/slack-desc/xf86-input-acecad b/source/x/x11/slack-desc/xf86-input-acecad new file mode 100644 index 000000000..26ca95cea --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-acecad @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-acecad: xf86-input-acecad +xf86-input-acecad: +xf86-input-acecad: xf86-input-acecad is part of X11. +xf86-input-acecad: +xf86-input-acecad: For more information about the X.Org Foundation (the providers of the +xf86-input-acecad: X.Org implementation of the X Window System), see their website: +xf86-input-acecad: +xf86-input-acecad: http://www.x.org +xf86-input-acecad: +xf86-input-acecad: +xf86-input-acecad: diff --git a/source/x/x11/slack-desc/xf86-input-aiptek b/source/x/x11/slack-desc/xf86-input-aiptek new file mode 100644 index 000000000..f7721e572 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-aiptek @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-aiptek: xf86-input-aiptek +xf86-input-aiptek: +xf86-input-aiptek: xf86-input-aiptek is part of X11. +xf86-input-aiptek: +xf86-input-aiptek: For more information about the X.Org Foundation (the providers of the +xf86-input-aiptek: X.Org implementation of the X Window System), see their website: +xf86-input-aiptek: +xf86-input-aiptek: http://www.x.org +xf86-input-aiptek: +xf86-input-aiptek: +xf86-input-aiptek: diff --git a/source/x/x11/slack-desc/xf86-input-calcomp b/source/x/x11/slack-desc/xf86-input-calcomp new file mode 100644 index 000000000..76dd2653c --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-calcomp @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-calcomp: xf86-input-calcomp +xf86-input-calcomp: +xf86-input-calcomp: xf86-input-calcomp is part of X11. +xf86-input-calcomp: +xf86-input-calcomp: For more information about the X.Org Foundation (the providers of the +xf86-input-calcomp: X.Org implementation of the X Window System), see their website: +xf86-input-calcomp: +xf86-input-calcomp: http://www.x.org +xf86-input-calcomp: +xf86-input-calcomp: +xf86-input-calcomp: diff --git a/source/x/x11/slack-desc/xf86-input-citron b/source/x/x11/slack-desc/xf86-input-citron new file mode 100644 index 000000000..5548268ac --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-citron @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-citron: xf86-input-citron +xf86-input-citron: +xf86-input-citron: xf86-input-citron is part of X11. +xf86-input-citron: +xf86-input-citron: For more information about the X.Org Foundation (the providers of the +xf86-input-citron: X.Org implementation of the X Window System), see their website: +xf86-input-citron: +xf86-input-citron: http://www.x.org +xf86-input-citron: +xf86-input-citron: +xf86-input-citron: diff --git a/source/x/x11/slack-desc/xf86-input-digitaledge b/source/x/x11/slack-desc/xf86-input-digitaledge new file mode 100644 index 000000000..a199da40e --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-digitaledge @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-digitaledge: xf86-input-digitaledge +xf86-input-digitaledge: +xf86-input-digitaledge: xf86-input-digitaledge is part of X11. +xf86-input-digitaledge: +xf86-input-digitaledge: For more information about the X.Org Foundation (the providers of the +xf86-input-digitaledge: X.Org implementation of the X Window System), see their website: +xf86-input-digitaledge: +xf86-input-digitaledge: http://www.x.org +xf86-input-digitaledge: +xf86-input-digitaledge: +xf86-input-digitaledge: diff --git a/source/x/x11/slack-desc/xf86-input-dmc b/source/x/x11/slack-desc/xf86-input-dmc new file mode 100644 index 000000000..890f92e92 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-dmc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-dmc: xf86-input-dmc +xf86-input-dmc: +xf86-input-dmc: xf86-input-dmc is part of X11. +xf86-input-dmc: +xf86-input-dmc: For more information about the X.Org Foundation (the providers of the +xf86-input-dmc: X.Org implementation of the X Window System), see their website: +xf86-input-dmc: +xf86-input-dmc: http://www.x.org +xf86-input-dmc: +xf86-input-dmc: +xf86-input-dmc: diff --git a/source/x/x11/slack-desc/xf86-input-dynapro b/source/x/x11/slack-desc/xf86-input-dynapro new file mode 100644 index 000000000..346eefe89 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-dynapro @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-dynapro: xf86-input-dynapro +xf86-input-dynapro: +xf86-input-dynapro: xf86-input-dynapro is part of X11. +xf86-input-dynapro: +xf86-input-dynapro: For more information about the X.Org Foundation (the providers of the +xf86-input-dynapro: X.Org implementation of the X Window System), see their website: +xf86-input-dynapro: +xf86-input-dynapro: http://www.x.org +xf86-input-dynapro: +xf86-input-dynapro: +xf86-input-dynapro: diff --git a/source/x/x11/slack-desc/xf86-input-elo2300 b/source/x/x11/slack-desc/xf86-input-elo2300 new file mode 100644 index 000000000..6c0bdd574 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-elo2300 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-elo2300: xf86-input-elo2300 +xf86-input-elo2300: +xf86-input-elo2300: xf86-input-elo2300 is part of X11. +xf86-input-elo2300: +xf86-input-elo2300: For more information about the X.Org Foundation (the providers of the +xf86-input-elo2300: X.Org implementation of the X Window System), see their website: +xf86-input-elo2300: +xf86-input-elo2300: http://www.x.org +xf86-input-elo2300: +xf86-input-elo2300: +xf86-input-elo2300: diff --git a/source/x/x11/slack-desc/xf86-input-elographics b/source/x/x11/slack-desc/xf86-input-elographics new file mode 100644 index 000000000..1e256565f --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-elographics @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-elographics: xf86-input-elographics +xf86-input-elographics: +xf86-input-elographics: xf86-input-elographics is part of X11. +xf86-input-elographics: +xf86-input-elographics: For more information about the X.Org Foundation (the providers of the +xf86-input-elographics: X.Org implementation of the X Window System), see their website: +xf86-input-elographics: +xf86-input-elographics: http://www.x.org +xf86-input-elographics: +xf86-input-elographics: +xf86-input-elographics: diff --git a/source/x/x11/slack-desc/xf86-input-evdev b/source/x/x11/slack-desc/xf86-input-evdev new file mode 100644 index 000000000..0adcb026e --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-evdev @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-evdev: xf86-input-evdev +xf86-input-evdev: +xf86-input-evdev: xf86-input-evdev is part of X11. +xf86-input-evdev: +xf86-input-evdev: For more information about the X.Org Foundation (the providers of the +xf86-input-evdev: X.Org implementation of the X Window System), see their website: +xf86-input-evdev: +xf86-input-evdev: http://www.x.org +xf86-input-evdev: +xf86-input-evdev: +xf86-input-evdev: diff --git a/source/x/x11/slack-desc/xf86-input-fpit b/source/x/x11/slack-desc/xf86-input-fpit new file mode 100644 index 000000000..51ee433ef --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-fpit @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-fpit: xf86-input-fpit +xf86-input-fpit: +xf86-input-fpit: xf86-input-fpit is part of X11. +xf86-input-fpit: +xf86-input-fpit: For more information about the X.Org Foundation (the providers of the +xf86-input-fpit: X.Org implementation of the X Window System), see their website: +xf86-input-fpit: +xf86-input-fpit: http://www.x.org +xf86-input-fpit: +xf86-input-fpit: +xf86-input-fpit: diff --git a/source/x/x11/slack-desc/xf86-input-hyperpen b/source/x/x11/slack-desc/xf86-input-hyperpen new file mode 100644 index 000000000..f6d6bda88 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-hyperpen @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-hyperpen: xf86-input-hyperpen +xf86-input-hyperpen: +xf86-input-hyperpen: xf86-input-hyperpen is part of X11. +xf86-input-hyperpen: +xf86-input-hyperpen: For more information about the X.Org Foundation (the providers of the +xf86-input-hyperpen: X.Org implementation of the X Window System), see their website: +xf86-input-hyperpen: +xf86-input-hyperpen: http://www.x.org +xf86-input-hyperpen: +xf86-input-hyperpen: +xf86-input-hyperpen: diff --git a/source/x/x11/slack-desc/xf86-input-jamstudio b/source/x/x11/slack-desc/xf86-input-jamstudio new file mode 100644 index 000000000..70426117f --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-jamstudio @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-jamstudio: xf86-input-jamstudio +xf86-input-jamstudio: +xf86-input-jamstudio: xf86-input-jamstudio is part of X11. +xf86-input-jamstudio: +xf86-input-jamstudio: For more information about the X.Org Foundation (the providers of the +xf86-input-jamstudio: X.Org implementation of the X Window System), see their website: +xf86-input-jamstudio: +xf86-input-jamstudio: http://www.x.org +xf86-input-jamstudio: +xf86-input-jamstudio: +xf86-input-jamstudio: diff --git a/source/x/x11/slack-desc/xf86-input-joystick b/source/x/x11/slack-desc/xf86-input-joystick new file mode 100644 index 000000000..3a43a2545 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-joystick @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-joystick: xf86-input-joystick +xf86-input-joystick: +xf86-input-joystick: xf86-input-joystick is part of X11. +xf86-input-joystick: +xf86-input-joystick: For more information about the X.Org Foundation (the providers of the +xf86-input-joystick: X.Org implementation of the X Window System), see their website: +xf86-input-joystick: +xf86-input-joystick: http://www.x.org +xf86-input-joystick: +xf86-input-joystick: +xf86-input-joystick: diff --git a/source/x/x11/slack-desc/xf86-input-keyboard b/source/x/x11/slack-desc/xf86-input-keyboard new file mode 100644 index 000000000..640e2b55e --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-keyboard @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-keyboard: xf86-input-keyboard +xf86-input-keyboard: +xf86-input-keyboard: xf86-input-keyboard is part of X11. +xf86-input-keyboard: +xf86-input-keyboard: For more information about the X.Org Foundation (the providers of the +xf86-input-keyboard: X.Org implementation of the X Window System), see their website: +xf86-input-keyboard: +xf86-input-keyboard: http://www.x.org +xf86-input-keyboard: +xf86-input-keyboard: +xf86-input-keyboard: diff --git a/source/x/x11/slack-desc/xf86-input-magellan b/source/x/x11/slack-desc/xf86-input-magellan new file mode 100644 index 000000000..70ef43827 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-magellan @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-magellan: xf86-input-magellan +xf86-input-magellan: +xf86-input-magellan: xf86-input-magellan is part of X11. +xf86-input-magellan: +xf86-input-magellan: For more information about the X.Org Foundation (the providers of the +xf86-input-magellan: X.Org implementation of the X Window System), see their website: +xf86-input-magellan: +xf86-input-magellan: http://www.x.org +xf86-input-magellan: +xf86-input-magellan: +xf86-input-magellan: diff --git a/source/x/x11/slack-desc/xf86-input-magictouch b/source/x/x11/slack-desc/xf86-input-magictouch new file mode 100644 index 000000000..72d02f52d --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-magictouch @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-magictouch: xf86-input-magictouch +xf86-input-magictouch: +xf86-input-magictouch: xf86-input-magictouch is part of X11. +xf86-input-magictouch: +xf86-input-magictouch: For more information about the X.Org Foundation (the providers of the +xf86-input-magictouch: X.Org implementation of the X Window System), see their website: +xf86-input-magictouch: +xf86-input-magictouch: http://www.x.org +xf86-input-magictouch: +xf86-input-magictouch: +xf86-input-magictouch: diff --git a/source/x/x11/slack-desc/xf86-input-microtouch b/source/x/x11/slack-desc/xf86-input-microtouch new file mode 100644 index 000000000..412cb01af --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-microtouch @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-microtouch: xf86-input-microtouch +xf86-input-microtouch: +xf86-input-microtouch: xf86-input-microtouch is part of X11. +xf86-input-microtouch: +xf86-input-microtouch: For more information about the X.Org Foundation (the providers of the +xf86-input-microtouch: X.Org implementation of the X Window System), see their website: +xf86-input-microtouch: +xf86-input-microtouch: http://www.x.org +xf86-input-microtouch: +xf86-input-microtouch: +xf86-input-microtouch: diff --git a/source/x/x11/slack-desc/xf86-input-mouse b/source/x/x11/slack-desc/xf86-input-mouse new file mode 100644 index 000000000..5ce1494d1 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-mouse @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-mouse: xf86-input-mouse +xf86-input-mouse: +xf86-input-mouse: xf86-input-mouse is part of X11. +xf86-input-mouse: +xf86-input-mouse: For more information about the X.Org Foundation (the providers of the +xf86-input-mouse: X.Org implementation of the X Window System), see their website: +xf86-input-mouse: +xf86-input-mouse: http://www.x.org +xf86-input-mouse: +xf86-input-mouse: +xf86-input-mouse: diff --git a/source/x/x11/slack-desc/xf86-input-mutouch b/source/x/x11/slack-desc/xf86-input-mutouch new file mode 100644 index 000000000..7c8c7f83c --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-mutouch @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-mutouch: xf86-input-mutouch +xf86-input-mutouch: +xf86-input-mutouch: xf86-input-mutouch is part of X11. +xf86-input-mutouch: +xf86-input-mutouch: For more information about the X.Org Foundation (the providers of the +xf86-input-mutouch: X.Org implementation of the X Window System), see their website: +xf86-input-mutouch: +xf86-input-mutouch: http://www.x.org +xf86-input-mutouch: +xf86-input-mutouch: +xf86-input-mutouch: diff --git a/source/x/x11/slack-desc/xf86-input-palmax b/source/x/x11/slack-desc/xf86-input-palmax new file mode 100644 index 000000000..73328d76a --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-palmax @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-palmax: xf86-input-palmax +xf86-input-palmax: +xf86-input-palmax: xf86-input-palmax is part of X11. +xf86-input-palmax: +xf86-input-palmax: For more information about the X.Org Foundation (the providers of the +xf86-input-palmax: X.Org implementation of the X Window System), see their website: +xf86-input-palmax: +xf86-input-palmax: http://www.x.org +xf86-input-palmax: +xf86-input-palmax: +xf86-input-palmax: diff --git a/source/x/x11/slack-desc/xf86-input-penmount b/source/x/x11/slack-desc/xf86-input-penmount new file mode 100644 index 000000000..ca7e48b84 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-penmount @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-penmount: xf86-input-penmount +xf86-input-penmount: +xf86-input-penmount: xf86-input-penmount is part of X11. +xf86-input-penmount: +xf86-input-penmount: For more information about the X.Org Foundation (the providers of the +xf86-input-penmount: X.Org implementation of the X Window System), see their website: +xf86-input-penmount: +xf86-input-penmount: http://www.x.org +xf86-input-penmount: +xf86-input-penmount: +xf86-input-penmount: diff --git a/source/x/x11/slack-desc/xf86-input-spaceorb b/source/x/x11/slack-desc/xf86-input-spaceorb new file mode 100644 index 000000000..b127b8956 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-spaceorb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-spaceorb: xf86-input-spaceorb +xf86-input-spaceorb: +xf86-input-spaceorb: xf86-input-spaceorb is part of X11. +xf86-input-spaceorb: +xf86-input-spaceorb: For more information about the X.Org Foundation (the providers of the +xf86-input-spaceorb: X.Org implementation of the X Window System), see their website: +xf86-input-spaceorb: +xf86-input-spaceorb: http://www.x.org +xf86-input-spaceorb: +xf86-input-spaceorb: +xf86-input-spaceorb: diff --git a/source/x/x11/slack-desc/xf86-input-summa b/source/x/x11/slack-desc/xf86-input-summa new file mode 100644 index 000000000..c69177bce --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-summa @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-summa: xf86-input-summa +xf86-input-summa: +xf86-input-summa: xf86-input-summa is part of X11. +xf86-input-summa: +xf86-input-summa: For more information about the X.Org Foundation (the providers of the +xf86-input-summa: X.Org implementation of the X Window System), see their website: +xf86-input-summa: +xf86-input-summa: http://www.x.org +xf86-input-summa: +xf86-input-summa: +xf86-input-summa: diff --git a/source/x/x11/slack-desc/xf86-input-synaptics b/source/x/x11/slack-desc/xf86-input-synaptics new file mode 100644 index 000000000..20858404c --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-synaptics @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-synaptics: xf86-input-synaptics +xf86-input-synaptics: +xf86-input-synaptics: xf86-input-synaptics is part of X11. +xf86-input-synaptics: +xf86-input-synaptics: For more information about the X.Org Foundation (the providers of the +xf86-input-synaptics: X.Org implementation of the X Window System), see their website: +xf86-input-synaptics: +xf86-input-synaptics: http://www.x.org +xf86-input-synaptics: +xf86-input-synaptics: +xf86-input-synaptics: diff --git a/source/x/x11/slack-desc/xf86-input-tek4957 b/source/x/x11/slack-desc/xf86-input-tek4957 new file mode 100644 index 000000000..2e0a13ff7 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-tek4957 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-tek4957: xf86-input-tek4957 +xf86-input-tek4957: +xf86-input-tek4957: xf86-input-tek4957 is part of X11. +xf86-input-tek4957: +xf86-input-tek4957: For more information about the X.Org Foundation (the providers of the +xf86-input-tek4957: X.Org implementation of the X Window System), see their website: +xf86-input-tek4957: +xf86-input-tek4957: http://www.x.org +xf86-input-tek4957: +xf86-input-tek4957: +xf86-input-tek4957: diff --git a/source/x/x11/slack-desc/xf86-input-ur98 b/source/x/x11/slack-desc/xf86-input-ur98 new file mode 100644 index 000000000..66680d8cd --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-ur98 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-ur98: xf86-input-ur98 +xf86-input-ur98: +xf86-input-ur98: xf86-input-ur98 is part of X11. +xf86-input-ur98: +xf86-input-ur98: For more information about the X.Org Foundation (the providers of the +xf86-input-ur98: X.Org implementation of the X Window System), see their website: +xf86-input-ur98: +xf86-input-ur98: http://www.x.org +xf86-input-ur98: +xf86-input-ur98: +xf86-input-ur98: diff --git a/source/x/x11/slack-desc/xf86-input-vmmouse b/source/x/x11/slack-desc/xf86-input-vmmouse new file mode 100644 index 000000000..640cc71a1 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-vmmouse @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-vmmouse: xf86-input-vmmouse +xf86-input-vmmouse: +xf86-input-vmmouse: xf86-input-vmmouse is part of X11. +xf86-input-vmmouse: +xf86-input-vmmouse: For more information about the X.Org Foundation (the providers of the +xf86-input-vmmouse: X.Org implementation of the X Window System), see their website: +xf86-input-vmmouse: +xf86-input-vmmouse: http://www.x.org +xf86-input-vmmouse: +xf86-input-vmmouse: +xf86-input-vmmouse: diff --git a/source/x/x11/slack-desc/xf86-input-void b/source/x/x11/slack-desc/xf86-input-void new file mode 100644 index 000000000..889017af2 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-input-void @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-input-void: xf86-input-void +xf86-input-void: +xf86-input-void: xf86-input-void is part of X11. +xf86-input-void: +xf86-input-void: For more information about the X.Org Foundation (the providers of the +xf86-input-void: X.Org implementation of the X Window System), see their website: +xf86-input-void: +xf86-input-void: http://www.x.org +xf86-input-void: +xf86-input-void: +xf86-input-void: diff --git a/source/x/x11/slack-desc/xf86-video-apm b/source/x/x11/slack-desc/xf86-video-apm new file mode 100644 index 000000000..b433ed1dc --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-apm @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-apm: xf86-video-apm +xf86-video-apm: +xf86-video-apm: xf86-video-apm is part of X11. +xf86-video-apm: +xf86-video-apm: For more information about the X.Org Foundation (the providers of the +xf86-video-apm: X.Org implementation of the X Window System), see their website: +xf86-video-apm: +xf86-video-apm: http://www.x.org +xf86-video-apm: +xf86-video-apm: +xf86-video-apm: diff --git a/source/x/x11/slack-desc/xf86-video-ark b/source/x/x11/slack-desc/xf86-video-ark new file mode 100644 index 000000000..20abb2245 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-ark @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-ark: xf86-video-ark +xf86-video-ark: +xf86-video-ark: xf86-video-ark is part of X11. +xf86-video-ark: +xf86-video-ark: For more information about the X.Org Foundation (the providers of the +xf86-video-ark: X.Org implementation of the X Window System), see their website: +xf86-video-ark: +xf86-video-ark: http://www.x.org +xf86-video-ark: +xf86-video-ark: +xf86-video-ark: diff --git a/source/x/x11/slack-desc/xf86-video-ast b/source/x/x11/slack-desc/xf86-video-ast new file mode 100644 index 000000000..8861724bc --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-ast @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-ast: xf86-video-ast +xf86-video-ast: +xf86-video-ast: xf86-video-ast is part of X11. +xf86-video-ast: +xf86-video-ast: For more information about the X.Org Foundation (the providers of the +xf86-video-ast: X.Org implementation of the X Window System), see their website: +xf86-video-ast: +xf86-video-ast: http://www.x.org +xf86-video-ast: +xf86-video-ast: +xf86-video-ast: diff --git a/source/x/x11/slack-desc/xf86-video-ati b/source/x/x11/slack-desc/xf86-video-ati new file mode 100644 index 000000000..b6847e1dd --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-ati @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-ati: xf86-video-ati +xf86-video-ati: +xf86-video-ati: xf86-video-ati is part of X11. +xf86-video-ati: +xf86-video-ati: For more information about the X.Org Foundation (the providers of the +xf86-video-ati: X.Org implementation of the X Window System), see their website: +xf86-video-ati: +xf86-video-ati: http://www.x.org +xf86-video-ati: +xf86-video-ati: +xf86-video-ati: diff --git a/source/x/x11/slack-desc/xf86-video-chips b/source/x/x11/slack-desc/xf86-video-chips new file mode 100644 index 000000000..2422bc205 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-chips @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-chips: xf86-video-chips +xf86-video-chips: +xf86-video-chips: xf86-video-chips is part of X11. +xf86-video-chips: +xf86-video-chips: For more information about the X.Org Foundation (the providers of the +xf86-video-chips: X.Org implementation of the X Window System), see their website: +xf86-video-chips: +xf86-video-chips: http://www.x.org +xf86-video-chips: +xf86-video-chips: +xf86-video-chips: diff --git a/source/x/x11/slack-desc/xf86-video-cirrus b/source/x/x11/slack-desc/xf86-video-cirrus new file mode 100644 index 000000000..f7188813f --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-cirrus @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-cirrus: xf86-video-cirrus +xf86-video-cirrus: +xf86-video-cirrus: xf86-video-cirrus is part of X11. +xf86-video-cirrus: +xf86-video-cirrus: For more information about the X.Org Foundation (the providers of the +xf86-video-cirrus: X.Org implementation of the X Window System), see their website: +xf86-video-cirrus: +xf86-video-cirrus: http://www.x.org +xf86-video-cirrus: +xf86-video-cirrus: +xf86-video-cirrus: diff --git a/source/x/x11/slack-desc/xf86-video-cyrix b/source/x/x11/slack-desc/xf86-video-cyrix new file mode 100644 index 000000000..aebae0068 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-cyrix @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-cyrix: xf86-video-cyrix +xf86-video-cyrix: +xf86-video-cyrix: xf86-video-cyrix is part of X11. +xf86-video-cyrix: +xf86-video-cyrix: For more information about the X.Org Foundation (the providers of the +xf86-video-cyrix: X.Org implementation of the X Window System), see their website: +xf86-video-cyrix: +xf86-video-cyrix: http://www.x.org +xf86-video-cyrix: +xf86-video-cyrix: +xf86-video-cyrix: diff --git a/source/x/x11/slack-desc/xf86-video-dummy b/source/x/x11/slack-desc/xf86-video-dummy new file mode 100644 index 000000000..389e9e3be --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-dummy @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-dummy: xf86-video-dummy +xf86-video-dummy: +xf86-video-dummy: xf86-video-dummy is part of X11. +xf86-video-dummy: +xf86-video-dummy: For more information about the X.Org Foundation (the providers of the +xf86-video-dummy: X.Org implementation of the X Window System), see their website: +xf86-video-dummy: +xf86-video-dummy: http://www.x.org +xf86-video-dummy: +xf86-video-dummy: +xf86-video-dummy: diff --git a/source/x/x11/slack-desc/xf86-video-fbdev b/source/x/x11/slack-desc/xf86-video-fbdev new file mode 100644 index 000000000..ba6e4a6b3 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-fbdev @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-fbdev: xf86-video-fbdev +xf86-video-fbdev: +xf86-video-fbdev: xf86-video-fbdev is part of X11. +xf86-video-fbdev: +xf86-video-fbdev: For more information about the X.Org Foundation (the providers of the +xf86-video-fbdev: X.Org implementation of the X Window System), see their website: +xf86-video-fbdev: +xf86-video-fbdev: http://www.x.org +xf86-video-fbdev: +xf86-video-fbdev: +xf86-video-fbdev: diff --git a/source/x/x11/slack-desc/xf86-video-geode b/source/x/x11/slack-desc/xf86-video-geode new file mode 100644 index 000000000..f96580470 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-geode @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-geode: xf86-video-geode (AMD Geode GX and LX video driver) +xf86-video-geode: +xf86-video-geode: xf86-video-geode is part of X11. +xf86-video-geode: +xf86-video-geode: For more information about the X.Org Foundation (the providers of the +xf86-video-geode: X.Org implementation of the X Window System), see their website: +xf86-video-geode: +xf86-video-geode: http://www.x.org +xf86-video-geode: +xf86-video-geode: +xf86-video-geode: diff --git a/source/x/x11/slack-desc/xf86-video-glint b/source/x/x11/slack-desc/xf86-video-glint new file mode 100644 index 000000000..32fb11c4a --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-glint @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-glint: xf86-video-glint +xf86-video-glint: +xf86-video-glint: xf86-video-glint is part of X11. +xf86-video-glint: +xf86-video-glint: For more information about the X.Org Foundation (the providers of the +xf86-video-glint: X.Org implementation of the X Window System), see their website: +xf86-video-glint: +xf86-video-glint: http://www.x.org +xf86-video-glint: +xf86-video-glint: +xf86-video-glint: diff --git a/source/x/x11/slack-desc/xf86-video-i128 b/source/x/x11/slack-desc/xf86-video-i128 new file mode 100644 index 000000000..bab537802 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-i128 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-i128: xf86-video-i128 +xf86-video-i128: +xf86-video-i128: xf86-video-i128 is part of X11. +xf86-video-i128: +xf86-video-i128: For more information about the X.Org Foundation (the providers of the +xf86-video-i128: X.Org implementation of the X Window System), see their website: +xf86-video-i128: +xf86-video-i128: http://www.x.org +xf86-video-i128: +xf86-video-i128: +xf86-video-i128: diff --git a/source/x/x11/slack-desc/xf86-video-i740 b/source/x/x11/slack-desc/xf86-video-i740 new file mode 100644 index 000000000..e31e5ad49 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-i740 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-i740: xf86-video-i740 +xf86-video-i740: +xf86-video-i740: xf86-video-i740 is part of X11. +xf86-video-i740: +xf86-video-i740: For more information about the X.Org Foundation (the providers of the +xf86-video-i740: X.Org implementation of the X Window System), see their website: +xf86-video-i740: +xf86-video-i740: http://www.x.org +xf86-video-i740: +xf86-video-i740: +xf86-video-i740: diff --git a/source/x/x11/slack-desc/xf86-video-i810 b/source/x/x11/slack-desc/xf86-video-i810 new file mode 100644 index 000000000..99eb5b476 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-i810 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-i810: xf86-video-i810 +xf86-video-i810: +xf86-video-i810: xf86-video-i810 is part of X11. +xf86-video-i810: +xf86-video-i810: For more information about the X.Org Foundation (the providers of the +xf86-video-i810: X.Org implementation of the X Window System), see their website: +xf86-video-i810: +xf86-video-i810: http://www.x.org +xf86-video-i810: +xf86-video-i810: +xf86-video-i810: diff --git a/source/x/x11/slack-desc/xf86-video-impact b/source/x/x11/slack-desc/xf86-video-impact new file mode 100644 index 000000000..9990fc3b7 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-impact @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-impact: xf86-video-impact +xf86-video-impact: +xf86-video-impact: xf86-video-impact is part of X11. +xf86-video-impact: +xf86-video-impact: For more information about the X.Org Foundation (the providers of the +xf86-video-impact: X.Org implementation of the X Window System), see their website: +xf86-video-impact: +xf86-video-impact: http://www.x.org +xf86-video-impact: +xf86-video-impact: +xf86-video-impact: diff --git a/source/x/x11/slack-desc/xf86-video-imstt b/source/x/x11/slack-desc/xf86-video-imstt new file mode 100644 index 000000000..71614b671 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-imstt @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-imstt: xf86-video-imstt +xf86-video-imstt: +xf86-video-imstt: xf86-video-imstt is part of X11. +xf86-video-imstt: +xf86-video-imstt: For more information about the X.Org Foundation (the providers of the +xf86-video-imstt: X.Org implementation of the X Window System), see their website: +xf86-video-imstt: +xf86-video-imstt: http://www.x.org +xf86-video-imstt: +xf86-video-imstt: +xf86-video-imstt: diff --git a/source/x/x11/slack-desc/xf86-video-intel b/source/x/x11/slack-desc/xf86-video-intel new file mode 100644 index 000000000..55be1e31d --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-intel @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-intel: xf86-video-intel +xf86-video-intel: +xf86-video-intel: xf86-video-intel is part of X11. +xf86-video-intel: +xf86-video-intel: For more information about the X.Org Foundation (the providers of the +xf86-video-intel: X.Org implementation of the X Window System), see their website: +xf86-video-intel: +xf86-video-intel: http://www.x.org +xf86-video-intel: +xf86-video-intel: +xf86-video-intel: diff --git a/source/x/x11/slack-desc/xf86-video-mach64 b/source/x/x11/slack-desc/xf86-video-mach64 new file mode 100644 index 000000000..ae70d0990 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-mach64 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-mach64: xf86-video-mach64 +xf86-video-mach64: +xf86-video-mach64: xf86-video-mach64 is part of X11. +xf86-video-mach64: +xf86-video-mach64: For more information about the X.Org Foundation (the providers of the +xf86-video-mach64: X.Org implementation of the X Window System), see their website: +xf86-video-mach64: +xf86-video-mach64: http://www.x.org +xf86-video-mach64: +xf86-video-mach64: +xf86-video-mach64: diff --git a/source/x/x11/slack-desc/xf86-video-mga b/source/x/x11/slack-desc/xf86-video-mga new file mode 100644 index 000000000..e0df509fd --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-mga @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-mga: xf86-video-mga +xf86-video-mga: +xf86-video-mga: xf86-video-mga is part of X11. +xf86-video-mga: +xf86-video-mga: For more information about the X.Org Foundation (the providers of the +xf86-video-mga: X.Org implementation of the X Window System), see their website: +xf86-video-mga: +xf86-video-mga: http://www.x.org +xf86-video-mga: +xf86-video-mga: +xf86-video-mga: diff --git a/source/x/x11/slack-desc/xf86-video-neomagic b/source/x/x11/slack-desc/xf86-video-neomagic new file mode 100644 index 000000000..89676c27a --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-neomagic @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-neomagic: xf86-video-neomagic +xf86-video-neomagic: +xf86-video-neomagic: xf86-video-neomagic is part of X11. +xf86-video-neomagic: +xf86-video-neomagic: For more information about the X.Org Foundation (the providers of the +xf86-video-neomagic: X.Org implementation of the X Window System), see their website: +xf86-video-neomagic: +xf86-video-neomagic: http://www.x.org +xf86-video-neomagic: +xf86-video-neomagic: +xf86-video-neomagic: diff --git a/source/x/x11/slack-desc/xf86-video-newport b/source/x/x11/slack-desc/xf86-video-newport new file mode 100644 index 000000000..18d0daf97 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-newport @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-newport: xf86-video-newport +xf86-video-newport: +xf86-video-newport: xf86-video-newport is part of X11. +xf86-video-newport: +xf86-video-newport: For more information about the X.Org Foundation (the providers of the +xf86-video-newport: X.Org implementation of the X Window System), see their website: +xf86-video-newport: +xf86-video-newport: http://www.x.org +xf86-video-newport: +xf86-video-newport: +xf86-video-newport: diff --git a/source/x/x11/slack-desc/xf86-video-nsc b/source/x/x11/slack-desc/xf86-video-nsc new file mode 100644 index 000000000..1081a9f5f --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-nsc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-nsc: xf86-video-nsc +xf86-video-nsc: +xf86-video-nsc: xf86-video-nsc is part of X11. +xf86-video-nsc: +xf86-video-nsc: For more information about the X.Org Foundation (the providers of the +xf86-video-nsc: X.Org implementation of the X Window System), see their website: +xf86-video-nsc: +xf86-video-nsc: http://www.x.org +xf86-video-nsc: +xf86-video-nsc: +xf86-video-nsc: diff --git a/source/x/x11/slack-desc/xf86-video-nv b/source/x/x11/slack-desc/xf86-video-nv new file mode 100644 index 000000000..dfed5106f --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-nv @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-nv: xf86-video-nv +xf86-video-nv: +xf86-video-nv: xf86-video-nv is part of X11. +xf86-video-nv: +xf86-video-nv: For more information about the X.Org Foundation (the providers of the +xf86-video-nv: X.Org implementation of the X Window System), see their website: +xf86-video-nv: +xf86-video-nv: http://www.x.org +xf86-video-nv: +xf86-video-nv: +xf86-video-nv: diff --git a/source/x/x11/slack-desc/xf86-video-openchrome b/source/x/x11/slack-desc/xf86-video-openchrome new file mode 100644 index 000000000..263de3156 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-openchrome @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-openchrome: xf86-video-openchrome +xf86-video-openchrome: +xf86-video-openchrome: xf86-video-openchrome is part of X11. +xf86-video-openchrome: +xf86-video-openchrome: For more information about the X.Org Foundation (the providers of the +xf86-video-openchrome: X.Org implementation of the X Window System), see their website: +xf86-video-openchrome: +xf86-video-openchrome: http://www.x.org +xf86-video-openchrome: +xf86-video-openchrome: +xf86-video-openchrome: diff --git a/source/x/x11/slack-desc/xf86-video-r128 b/source/x/x11/slack-desc/xf86-video-r128 new file mode 100644 index 000000000..6a5807bcb --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-r128 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-r128: xf86-video-r128 +xf86-video-r128: +xf86-video-r128: xf86-video-r128 is part of X11. +xf86-video-r128: +xf86-video-r128: For more information about the X.Org Foundation (the providers of the +xf86-video-r128: X.Org implementation of the X Window System), see their website: +xf86-video-r128: +xf86-video-r128: http://www.x.org +xf86-video-r128: +xf86-video-r128: +xf86-video-r128: diff --git a/source/x/x11/slack-desc/xf86-video-radeonhd b/source/x/x11/slack-desc/xf86-video-radeonhd new file mode 100644 index 000000000..ce2e72658 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-radeonhd @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-radeonhd: xf86-video-radeonhd (driver for AMD GPG (ATI) R5xx/R6xx chipsets) +xf86-video-radeonhd: +xf86-video-radeonhd: xf86-video-radeonhd is part of X11. +xf86-video-radeonhd: +xf86-video-radeonhd: For more information about the X.Org Foundation (the providers of the +xf86-video-radeonhd: X.Org implementation of the X Window System), see their website: +xf86-video-radeonhd: +xf86-video-radeonhd: http://www.x.org +xf86-video-radeonhd: +xf86-video-radeonhd: +xf86-video-radeonhd: diff --git a/source/x/x11/slack-desc/xf86-video-rendition b/source/x/x11/slack-desc/xf86-video-rendition new file mode 100644 index 000000000..99561b3a6 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-rendition @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-rendition: xf86-video-rendition +xf86-video-rendition: +xf86-video-rendition: xf86-video-rendition is part of X11. +xf86-video-rendition: +xf86-video-rendition: For more information about the X.Org Foundation (the providers of the +xf86-video-rendition: X.Org implementation of the X Window System), see their website: +xf86-video-rendition: +xf86-video-rendition: http://www.x.org +xf86-video-rendition: +xf86-video-rendition: +xf86-video-rendition: diff --git a/source/x/x11/slack-desc/xf86-video-s3 b/source/x/x11/slack-desc/xf86-video-s3 new file mode 100644 index 000000000..f91fd6e99 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-s3 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-s3: xf86-video-s3 +xf86-video-s3: +xf86-video-s3: xf86-video-s3 is part of X11. +xf86-video-s3: +xf86-video-s3: For more information about the X.Org Foundation (the providers of the +xf86-video-s3: X.Org implementation of the X Window System), see their website: +xf86-video-s3: +xf86-video-s3: http://www.x.org +xf86-video-s3: +xf86-video-s3: +xf86-video-s3: diff --git a/source/x/x11/slack-desc/xf86-video-s3virge b/source/x/x11/slack-desc/xf86-video-s3virge new file mode 100644 index 000000000..52fe0a346 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-s3virge @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-s3virge: xf86-video-s3virge +xf86-video-s3virge: +xf86-video-s3virge: xf86-video-s3virge is part of X11. +xf86-video-s3virge: +xf86-video-s3virge: For more information about the X.Org Foundation (the providers of the +xf86-video-s3virge: X.Org implementation of the X Window System), see their website: +xf86-video-s3virge: +xf86-video-s3virge: http://www.x.org +xf86-video-s3virge: +xf86-video-s3virge: +xf86-video-s3virge: diff --git a/source/x/x11/slack-desc/xf86-video-savage b/source/x/x11/slack-desc/xf86-video-savage new file mode 100644 index 000000000..f31d670c8 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-savage @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-savage: xf86-video-savage +xf86-video-savage: +xf86-video-savage: xf86-video-savage is part of X11. +xf86-video-savage: +xf86-video-savage: For more information about the X.Org Foundation (the providers of the +xf86-video-savage: X.Org implementation of the X Window System), see their website: +xf86-video-savage: +xf86-video-savage: http://www.x.org +xf86-video-savage: +xf86-video-savage: +xf86-video-savage: diff --git a/source/x/x11/slack-desc/xf86-video-siliconmotion b/source/x/x11/slack-desc/xf86-video-siliconmotion new file mode 100644 index 000000000..97a28f018 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-siliconmotion @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-siliconmotion: xf86-video-siliconmotion +xf86-video-siliconmotion: +xf86-video-siliconmotion: xf86-video-siliconmotion is part of X11. +xf86-video-siliconmotion: +xf86-video-siliconmotion: For more information about the X.Org Foundation (the providers of the +xf86-video-siliconmotion: X.Org implementation of the X Window System), see their website: +xf86-video-siliconmotion: +xf86-video-siliconmotion: http://www.x.org +xf86-video-siliconmotion: +xf86-video-siliconmotion: +xf86-video-siliconmotion: diff --git a/source/x/x11/slack-desc/xf86-video-sis b/source/x/x11/slack-desc/xf86-video-sis new file mode 100644 index 000000000..d0261754b --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-sis @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-sis: xf86-video-sis +xf86-video-sis: +xf86-video-sis: xf86-video-sis is part of X11. +xf86-video-sis: +xf86-video-sis: For more information about the X.Org Foundation (the providers of the +xf86-video-sis: X.Org implementation of the X Window System), see their website: +xf86-video-sis: +xf86-video-sis: http://www.x.org +xf86-video-sis: +xf86-video-sis: +xf86-video-sis: diff --git a/source/x/x11/slack-desc/xf86-video-sisusb b/source/x/x11/slack-desc/xf86-video-sisusb new file mode 100644 index 000000000..9ab8bcbba --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-sisusb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-sisusb: xf86-video-sisusb +xf86-video-sisusb: +xf86-video-sisusb: xf86-video-sisusb is part of X11. +xf86-video-sisusb: +xf86-video-sisusb: For more information about the X.Org Foundation (the providers of the +xf86-video-sisusb: X.Org implementation of the X Window System), see their website: +xf86-video-sisusb: +xf86-video-sisusb: http://www.x.org +xf86-video-sisusb: +xf86-video-sisusb: +xf86-video-sisusb: diff --git a/source/x/x11/slack-desc/xf86-video-sunbw2 b/source/x/x11/slack-desc/xf86-video-sunbw2 new file mode 100644 index 000000000..f432ae42b --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-sunbw2 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-sunbw2: xf86-video-sunbw2 +xf86-video-sunbw2: +xf86-video-sunbw2: xf86-video-sunbw2 is part of X11. +xf86-video-sunbw2: +xf86-video-sunbw2: For more information about the X.Org Foundation (the providers of the +xf86-video-sunbw2: X.Org implementation of the X Window System), see their website: +xf86-video-sunbw2: +xf86-video-sunbw2: http://www.x.org +xf86-video-sunbw2: +xf86-video-sunbw2: +xf86-video-sunbw2: diff --git a/source/x/x11/slack-desc/xf86-video-suncg14 b/source/x/x11/slack-desc/xf86-video-suncg14 new file mode 100644 index 000000000..de038ed1f --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-suncg14 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-suncg14: xf86-video-suncg14 +xf86-video-suncg14: +xf86-video-suncg14: xf86-video-suncg14 is part of X11. +xf86-video-suncg14: +xf86-video-suncg14: For more information about the X.Org Foundation (the providers of the +xf86-video-suncg14: X.Org implementation of the X Window System), see their website: +xf86-video-suncg14: +xf86-video-suncg14: http://www.x.org +xf86-video-suncg14: +xf86-video-suncg14: +xf86-video-suncg14: diff --git a/source/x/x11/slack-desc/xf86-video-suncg3 b/source/x/x11/slack-desc/xf86-video-suncg3 new file mode 100644 index 000000000..c4b70a91c --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-suncg3 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-suncg3: xf86-video-suncg3 +xf86-video-suncg3: +xf86-video-suncg3: xf86-video-suncg3 is part of X11. +xf86-video-suncg3: +xf86-video-suncg3: For more information about the X.Org Foundation (the providers of the +xf86-video-suncg3: X.Org implementation of the X Window System), see their website: +xf86-video-suncg3: +xf86-video-suncg3: http://www.x.org +xf86-video-suncg3: +xf86-video-suncg3: +xf86-video-suncg3: diff --git a/source/x/x11/slack-desc/xf86-video-suncg6 b/source/x/x11/slack-desc/xf86-video-suncg6 new file mode 100644 index 000000000..e9efb9407 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-suncg6 @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-suncg6: xf86-video-suncg6 +xf86-video-suncg6: +xf86-video-suncg6: xf86-video-suncg6 is part of X11. +xf86-video-suncg6: +xf86-video-suncg6: For more information about the X.Org Foundation (the providers of the +xf86-video-suncg6: X.Org implementation of the X Window System), see their website: +xf86-video-suncg6: +xf86-video-suncg6: http://www.x.org +xf86-video-suncg6: +xf86-video-suncg6: +xf86-video-suncg6: diff --git a/source/x/x11/slack-desc/xf86-video-sunffb b/source/x/x11/slack-desc/xf86-video-sunffb new file mode 100644 index 000000000..17400a0e3 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-sunffb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-sunffb: xf86-video-sunffb +xf86-video-sunffb: +xf86-video-sunffb: xf86-video-sunffb is part of X11. +xf86-video-sunffb: +xf86-video-sunffb: For more information about the X.Org Foundation (the providers of the +xf86-video-sunffb: X.Org implementation of the X Window System), see their website: +xf86-video-sunffb: +xf86-video-sunffb: http://www.x.org +xf86-video-sunffb: +xf86-video-sunffb: +xf86-video-sunffb: diff --git a/source/x/x11/slack-desc/xf86-video-sunleo b/source/x/x11/slack-desc/xf86-video-sunleo new file mode 100644 index 000000000..03b0c2eaa --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-sunleo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-sunleo: xf86-video-sunleo +xf86-video-sunleo: +xf86-video-sunleo: xf86-video-sunleo is part of X11. +xf86-video-sunleo: +xf86-video-sunleo: For more information about the X.Org Foundation (the providers of the +xf86-video-sunleo: X.Org implementation of the X Window System), see their website: +xf86-video-sunleo: +xf86-video-sunleo: http://www.x.org +xf86-video-sunleo: +xf86-video-sunleo: +xf86-video-sunleo: diff --git a/source/x/x11/slack-desc/xf86-video-suntcx b/source/x/x11/slack-desc/xf86-video-suntcx new file mode 100644 index 000000000..800bade3c --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-suntcx @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-suntcx: xf86-video-suntcx +xf86-video-suntcx: +xf86-video-suntcx: xf86-video-suntcx is part of X11. +xf86-video-suntcx: +xf86-video-suntcx: For more information about the X.Org Foundation (the providers of the +xf86-video-suntcx: X.Org implementation of the X Window System), see their website: +xf86-video-suntcx: +xf86-video-suntcx: http://www.x.org +xf86-video-suntcx: +xf86-video-suntcx: +xf86-video-suntcx: diff --git a/source/x/x11/slack-desc/xf86-video-tdfx b/source/x/x11/slack-desc/xf86-video-tdfx new file mode 100644 index 000000000..8d375baf5 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-tdfx @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-tdfx: xf86-video-tdfx +xf86-video-tdfx: +xf86-video-tdfx: xf86-video-tdfx is part of X11. +xf86-video-tdfx: +xf86-video-tdfx: For more information about the X.Org Foundation (the providers of the +xf86-video-tdfx: X.Org implementation of the X Window System), see their website: +xf86-video-tdfx: +xf86-video-tdfx: http://www.x.org +xf86-video-tdfx: +xf86-video-tdfx: +xf86-video-tdfx: diff --git a/source/x/x11/slack-desc/xf86-video-tga b/source/x/x11/slack-desc/xf86-video-tga new file mode 100644 index 000000000..52a30eb0a --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-tga @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-tga: xf86-video-tga +xf86-video-tga: +xf86-video-tga: xf86-video-tga is part of X11. +xf86-video-tga: +xf86-video-tga: For more information about the X.Org Foundation (the providers of the +xf86-video-tga: X.Org implementation of the X Window System), see their website: +xf86-video-tga: +xf86-video-tga: http://www.x.org +xf86-video-tga: +xf86-video-tga: +xf86-video-tga: diff --git a/source/x/x11/slack-desc/xf86-video-trident b/source/x/x11/slack-desc/xf86-video-trident new file mode 100644 index 000000000..f4b6a5702 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-trident @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-trident: xf86-video-trident +xf86-video-trident: +xf86-video-trident: xf86-video-trident is part of X11. +xf86-video-trident: +xf86-video-trident: For more information about the X.Org Foundation (the providers of the +xf86-video-trident: X.Org implementation of the X Window System), see their website: +xf86-video-trident: +xf86-video-trident: http://www.x.org +xf86-video-trident: +xf86-video-trident: +xf86-video-trident: diff --git a/source/x/x11/slack-desc/xf86-video-tseng b/source/x/x11/slack-desc/xf86-video-tseng new file mode 100644 index 000000000..3192fe149 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-tseng @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-tseng: xf86-video-tseng +xf86-video-tseng: +xf86-video-tseng: xf86-video-tseng is part of X11. +xf86-video-tseng: +xf86-video-tseng: For more information about the X.Org Foundation (the providers of the +xf86-video-tseng: X.Org implementation of the X Window System), see their website: +xf86-video-tseng: +xf86-video-tseng: http://www.x.org +xf86-video-tseng: +xf86-video-tseng: +xf86-video-tseng: diff --git a/source/x/x11/slack-desc/xf86-video-v4l b/source/x/x11/slack-desc/xf86-video-v4l new file mode 100644 index 000000000..27e7795fd --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-v4l @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-v4l: xf86-video-v4l +xf86-video-v4l: +xf86-video-v4l: xf86-video-v4l is part of X11. +xf86-video-v4l: +xf86-video-v4l: For more information about the X.Org Foundation (the providers of the +xf86-video-v4l: X.Org implementation of the X Window System), see their website: +xf86-video-v4l: +xf86-video-v4l: http://www.x.org +xf86-video-v4l: +xf86-video-v4l: +xf86-video-v4l: diff --git a/source/x/x11/slack-desc/xf86-video-vermilion b/source/x/x11/slack-desc/xf86-video-vermilion new file mode 100644 index 000000000..2ca79f3e0 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-vermilion @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-vermilion: xf86-video-vermilion +xf86-video-vermilion: +xf86-video-vermilion: xf86-video-vermilion supports the Intel Vermilion Range of chipsets. +xf86-video-vermilion: +xf86-video-vermilion: For more information about the X.Org Foundation (the providers of the +xf86-video-vermilion: X.Org implementation of the X Window System), see their website: +xf86-video-vermilion: +xf86-video-vermilion: http://www.x.org +xf86-video-vermilion: +xf86-video-vermilion: +xf86-video-vermilion: diff --git a/source/x/x11/slack-desc/xf86-video-vesa b/source/x/x11/slack-desc/xf86-video-vesa new file mode 100644 index 000000000..5a1edcafe --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-vesa @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-vesa: xf86-video-vesa +xf86-video-vesa: +xf86-video-vesa: xf86-video-vesa is part of X11. +xf86-video-vesa: +xf86-video-vesa: For more information about the X.Org Foundation (the providers of the +xf86-video-vesa: X.Org implementation of the X Window System), see their website: +xf86-video-vesa: +xf86-video-vesa: http://www.x.org +xf86-video-vesa: +xf86-video-vesa: +xf86-video-vesa: diff --git a/source/x/x11/slack-desc/xf86-video-vga b/source/x/x11/slack-desc/xf86-video-vga new file mode 100644 index 000000000..5a4dde64f --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-vga @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-vga: xf86-video-vga +xf86-video-vga: +xf86-video-vga: xf86-video-vga is part of X11. +xf86-video-vga: +xf86-video-vga: For more information about the X.Org Foundation (the providers of the +xf86-video-vga: X.Org implementation of the X Window System), see their website: +xf86-video-vga: +xf86-video-vga: http://www.x.org +xf86-video-vga: +xf86-video-vga: +xf86-video-vga: diff --git a/source/x/x11/slack-desc/xf86-video-via b/source/x/x11/slack-desc/xf86-video-via new file mode 100644 index 000000000..901931810 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-via @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-via: xf86-video-via +xf86-video-via: +xf86-video-via: xf86-video-via is part of X11. +xf86-video-via: +xf86-video-via: For more information about the X.Org Foundation (the providers of the +xf86-video-via: X.Org implementation of the X Window System), see their website: +xf86-video-via: +xf86-video-via: http://www.x.org +xf86-video-via: +xf86-video-via: +xf86-video-via: diff --git a/source/x/x11/slack-desc/xf86-video-vmware b/source/x/x11/slack-desc/xf86-video-vmware new file mode 100644 index 000000000..d3d818b21 --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-vmware @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-vmware: xf86-video-vmware +xf86-video-vmware: +xf86-video-vmware: xf86-video-vmware is part of X11. +xf86-video-vmware: +xf86-video-vmware: For more information about the X.Org Foundation (the providers of the +xf86-video-vmware: X.Org implementation of the X Window System), see their website: +xf86-video-vmware: +xf86-video-vmware: http://www.x.org +xf86-video-vmware: +xf86-video-vmware: +xf86-video-vmware: diff --git a/source/x/x11/slack-desc/xf86-video-voodoo b/source/x/x11/slack-desc/xf86-video-voodoo new file mode 100644 index 000000000..5ba59ab2f --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-voodoo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-voodoo: xf86-video-voodoo +xf86-video-voodoo: +xf86-video-voodoo: xf86-video-voodoo is part of X11. +xf86-video-voodoo: +xf86-video-voodoo: For more information about the X.Org Foundation (the providers of the +xf86-video-voodoo: X.Org implementation of the X Window System), see their website: +xf86-video-voodoo: +xf86-video-voodoo: http://www.x.org +xf86-video-voodoo: +xf86-video-voodoo: +xf86-video-voodoo: diff --git a/source/x/x11/slack-desc/xf86-video-wsfb b/source/x/x11/slack-desc/xf86-video-wsfb new file mode 100644 index 000000000..0253575ed --- /dev/null +++ b/source/x/x11/slack-desc/xf86-video-wsfb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86-video-wsfb: xf86-video-wsfb +xf86-video-wsfb: +xf86-video-wsfb: xf86-video-wsfb is part of X11. +xf86-video-wsfb: +xf86-video-wsfb: For more information about the X.Org Foundation (the providers of the +xf86-video-wsfb: X.Org implementation of the X Window System), see their website: +xf86-video-wsfb: +xf86-video-wsfb: http://www.x.org +xf86-video-wsfb: +xf86-video-wsfb: +xf86-video-wsfb: diff --git a/source/x/x11/slack-desc/xf86bigfontproto b/source/x/x11/slack-desc/xf86bigfontproto new file mode 100644 index 000000000..d42c5419d --- /dev/null +++ b/source/x/x11/slack-desc/xf86bigfontproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86bigfontproto: xf86bigfontproto +xf86bigfontproto: +xf86bigfontproto: xf86bigfontproto is part of X11. +xf86bigfontproto: +xf86bigfontproto: For more information about the X.Org Foundation (the providers of the +xf86bigfontproto: X.Org implementation of the X Window System), see their website: +xf86bigfontproto: +xf86bigfontproto: http://www.x.org +xf86bigfontproto: +xf86bigfontproto: +xf86bigfontproto: diff --git a/source/x/x11/slack-desc/xf86dga b/source/x/x11/slack-desc/xf86dga new file mode 100644 index 000000000..08c928a98 --- /dev/null +++ b/source/x/x11/slack-desc/xf86dga @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86dga: xf86dga +xf86dga: +xf86dga: xf86dga is part of X11. +xf86dga: +xf86dga: For more information about the X.Org Foundation (the providers of the +xf86dga: X.Org implementation of the X Window System), see their website: +xf86dga: +xf86dga: http://www.x.org +xf86dga: +xf86dga: +xf86dga: diff --git a/source/x/x11/slack-desc/xf86dgaproto b/source/x/x11/slack-desc/xf86dgaproto new file mode 100644 index 000000000..c9ca3fc23 --- /dev/null +++ b/source/x/x11/slack-desc/xf86dgaproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86dgaproto: xf86dgaproto +xf86dgaproto: +xf86dgaproto: xf86dgaproto is part of X11. +xf86dgaproto: +xf86dgaproto: For more information about the X.Org Foundation (the providers of the +xf86dgaproto: X.Org implementation of the X Window System), see their website: +xf86dgaproto: +xf86dgaproto: http://www.x.org +xf86dgaproto: +xf86dgaproto: +xf86dgaproto: diff --git a/source/x/x11/slack-desc/xf86driproto b/source/x/x11/slack-desc/xf86driproto new file mode 100644 index 000000000..c327a43ba --- /dev/null +++ b/source/x/x11/slack-desc/xf86driproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86driproto: xf86driproto +xf86driproto: +xf86driproto: xf86driproto is part of X11. +xf86driproto: +xf86driproto: For more information about the X.Org Foundation (the providers of the +xf86driproto: X.Org implementation of the X Window System), see their website: +xf86driproto: +xf86driproto: http://www.x.org +xf86driproto: +xf86driproto: +xf86driproto: diff --git a/source/x/x11/slack-desc/xf86miscproto b/source/x/x11/slack-desc/xf86miscproto new file mode 100644 index 000000000..883ef9fe1 --- /dev/null +++ b/source/x/x11/slack-desc/xf86miscproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86miscproto: xf86miscproto +xf86miscproto: +xf86miscproto: xf86miscproto is part of X11. +xf86miscproto: +xf86miscproto: For more information about the X.Org Foundation (the providers of the +xf86miscproto: X.Org implementation of the X Window System), see their website: +xf86miscproto: +xf86miscproto: http://www.x.org +xf86miscproto: +xf86miscproto: +xf86miscproto: diff --git a/source/x/x11/slack-desc/xf86rushproto b/source/x/x11/slack-desc/xf86rushproto new file mode 100644 index 000000000..0013da938 --- /dev/null +++ b/source/x/x11/slack-desc/xf86rushproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86rushproto: xf86rushproto +xf86rushproto: +xf86rushproto: xf86rushproto is part of X11. +xf86rushproto: +xf86rushproto: For more information about the X.Org Foundation (the providers of the +xf86rushproto: X.Org implementation of the X Window System), see their website: +xf86rushproto: +xf86rushproto: http://www.x.org +xf86rushproto: +xf86rushproto: +xf86rushproto: diff --git a/source/x/x11/slack-desc/xf86vidmodeproto b/source/x/x11/slack-desc/xf86vidmodeproto new file mode 100644 index 000000000..13acda811 --- /dev/null +++ b/source/x/x11/slack-desc/xf86vidmodeproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xf86vidmodeproto: xf86vidmodeproto +xf86vidmodeproto: +xf86vidmodeproto: xf86vidmodeproto is part of X11. +xf86vidmodeproto: +xf86vidmodeproto: For more information about the X.Org Foundation (the providers of the +xf86vidmodeproto: X.Org implementation of the X Window System), see their website: +xf86vidmodeproto: +xf86vidmodeproto: http://www.x.org +xf86vidmodeproto: +xf86vidmodeproto: +xf86vidmodeproto: diff --git a/source/x/x11/slack-desc/xfd b/source/x/x11/slack-desc/xfd new file mode 100644 index 000000000..31f646f5a --- /dev/null +++ b/source/x/x11/slack-desc/xfd @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfd: xfd +xfd: +xfd: xfd is part of X11. +xfd: +xfd: For more information about the X.Org Foundation (the providers of the +xfd: X.Org implementation of the X Window System), see their website: +xfd: +xfd: http://www.x.org +xfd: +xfd: +xfd: diff --git a/source/x/x11/slack-desc/xfindproxy b/source/x/x11/slack-desc/xfindproxy new file mode 100644 index 000000000..64125d2ce --- /dev/null +++ b/source/x/x11/slack-desc/xfindproxy @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfindproxy: xfindproxy +xfindproxy: +xfindproxy: xfindproxy is part of X11. +xfindproxy: +xfindproxy: For more information about the X.Org Foundation (the providers of the +xfindproxy: X.Org implementation of the X Window System), see their website: +xfindproxy: +xfindproxy: http://www.x.org +xfindproxy: +xfindproxy: +xfindproxy: diff --git a/source/x/x11/slack-desc/xfontsel b/source/x/x11/slack-desc/xfontsel new file mode 100644 index 000000000..cb4594c23 --- /dev/null +++ b/source/x/x11/slack-desc/xfontsel @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfontsel: xfontsel +xfontsel: +xfontsel: xfontsel is part of X11. +xfontsel: +xfontsel: For more information about the X.Org Foundation (the providers of the +xfontsel: X.Org implementation of the X Window System), see their website: +xfontsel: +xfontsel: http://www.x.org +xfontsel: +xfontsel: +xfontsel: diff --git a/source/x/x11/slack-desc/xfs b/source/x/x11/slack-desc/xfs new file mode 100644 index 000000000..33ea36875 --- /dev/null +++ b/source/x/x11/slack-desc/xfs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfs: xfs +xfs: +xfs: xfs is part of X11. +xfs: +xfs: For more information about the X.Org Foundation (the providers of the +xfs: X.Org implementation of the X Window System), see their website: +xfs: +xfs: http://www.x.org +xfs: +xfs: +xfs: diff --git a/source/x/x11/slack-desc/xfsinfo b/source/x/x11/slack-desc/xfsinfo new file mode 100644 index 000000000..87abf1e48 --- /dev/null +++ b/source/x/x11/slack-desc/xfsinfo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfsinfo: xfsinfo +xfsinfo: +xfsinfo: xfsinfo is part of X11. +xfsinfo: +xfsinfo: For more information about the X.Org Foundation (the providers of the +xfsinfo: X.Org implementation of the X Window System), see their website: +xfsinfo: +xfsinfo: http://www.x.org +xfsinfo: +xfsinfo: +xfsinfo: diff --git a/source/x/x11/slack-desc/xfwp b/source/x/x11/slack-desc/xfwp new file mode 100644 index 000000000..572036c67 --- /dev/null +++ b/source/x/x11/slack-desc/xfwp @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfwp: xfwp +xfwp: +xfwp: xfwp is part of X11. +xfwp: +xfwp: For more information about the X.Org Foundation (the providers of the +xfwp: X.Org implementation of the X Window System), see their website: +xfwp: +xfwp: http://www.x.org +xfwp: +xfwp: +xfwp: diff --git a/source/x/x11/slack-desc/xgamma b/source/x/x11/slack-desc/xgamma new file mode 100644 index 000000000..69df14aaa --- /dev/null +++ b/source/x/x11/slack-desc/xgamma @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xgamma: xgamma +xgamma: +xgamma: xgamma is part of X11. +xgamma: +xgamma: For more information about the X.Org Foundation (the providers of the +xgamma: X.Org implementation of the X Window System), see their website: +xgamma: +xgamma: http://www.x.org +xgamma: +xgamma: +xgamma: diff --git a/source/x/x11/slack-desc/xgc b/source/x/x11/slack-desc/xgc new file mode 100644 index 000000000..0de84bc07 --- /dev/null +++ b/source/x/x11/slack-desc/xgc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xgc: xgc +xgc: +xgc: xgc is part of X11. +xgc: +xgc: For more information about the X.Org Foundation (the providers of the +xgc: X.Org implementation of the X Window System), see their website: +xgc: +xgc: http://www.x.org +xgc: +xgc: +xgc: diff --git a/source/x/x11/slack-desc/xhost b/source/x/x11/slack-desc/xhost new file mode 100644 index 000000000..53f9620b2 --- /dev/null +++ b/source/x/x11/slack-desc/xhost @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xhost: xhost +xhost: +xhost: xhost is part of X11. +xhost: +xhost: For more information about the X.Org Foundation (the providers of the +xhost: X.Org implementation of the X Window System), see their website: +xhost: +xhost: http://www.x.org +xhost: +xhost: +xhost: diff --git a/source/x/x11/slack-desc/xineramaproto b/source/x/x11/slack-desc/xineramaproto new file mode 100644 index 000000000..dbdde8001 --- /dev/null +++ b/source/x/x11/slack-desc/xineramaproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xineramaproto: xineramaproto +xineramaproto: +xineramaproto: xineramaproto is part of X11. +xineramaproto: +xineramaproto: For more information about the X.Org Foundation (the providers of the +xineramaproto: X.Org implementation of the X Window System), see their website: +xineramaproto: +xineramaproto: http://www.x.org +xineramaproto: +xineramaproto: +xineramaproto: diff --git a/source/x/x11/slack-desc/xinit b/source/x/x11/slack-desc/xinit new file mode 100644 index 000000000..c1b053181 --- /dev/null +++ b/source/x/x11/slack-desc/xinit @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xinit: xinit +xinit: +xinit: xinit is part of X11. +xinit: +xinit: For more information about the X.Org Foundation (the providers of the +xinit: X.Org implementation of the X Window System), see their website: +xinit: +xinit: http://www.x.org +xinit: +xinit: +xinit: diff --git a/source/x/x11/slack-desc/xinput b/source/x/x11/slack-desc/xinput new file mode 100644 index 000000000..758a6ba6f --- /dev/null +++ b/source/x/x11/slack-desc/xinput @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xinput: xinput +xinput: +xinput: xinput is a utility to configure and test XInput devices. It wasn't +xinput: originally designed to be the primary tool for doing this but it's +xinput: still pretty much the only program out there for doing it. :-) +xinput: +xinput: xinput is part of X11. +xinput: +xinput: For more information about the X.Org Foundation (the providers of the +xinput: X.Org implementation of the X Window System), see their website: +xinput: http://www.x.org diff --git a/source/x/x11/slack-desc/xkbcomp b/source/x/x11/slack-desc/xkbcomp new file mode 100644 index 000000000..ab3fc9b79 --- /dev/null +++ b/source/x/x11/slack-desc/xkbcomp @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xkbcomp: xkbcomp +xkbcomp: +xkbcomp: xkbcomp is part of X11. +xkbcomp: +xkbcomp: For more information about the X.Org Foundation (the providers of the +xkbcomp: X.Org implementation of the X Window System), see their website: +xkbcomp: +xkbcomp: http://www.x.org +xkbcomp: +xkbcomp: +xkbcomp: diff --git a/source/x/x11/slack-desc/xkbdata b/source/x/x11/slack-desc/xkbdata new file mode 100644 index 000000000..5fafad26a --- /dev/null +++ b/source/x/x11/slack-desc/xkbdata @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xkbdata: xkbdata +xkbdata: +xkbdata: xkbdata is part of X11. +xkbdata: +xkbdata: For more information about the X.Org Foundation (the providers of the +xkbdata: X.Org implementation of the X Window System), see their website: +xkbdata: +xkbdata: http://www.x.org +xkbdata: +xkbdata: +xkbdata: diff --git a/source/x/x11/slack-desc/xkbevd b/source/x/x11/slack-desc/xkbevd new file mode 100644 index 000000000..9909e676c --- /dev/null +++ b/source/x/x11/slack-desc/xkbevd @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xkbevd: xkbevd +xkbevd: +xkbevd: xkbevd is part of X11. +xkbevd: +xkbevd: For more information about the X.Org Foundation (the providers of the +xkbevd: X.Org implementation of the X Window System), see their website: +xkbevd: +xkbevd: http://www.x.org +xkbevd: +xkbevd: +xkbevd: diff --git a/source/x/x11/slack-desc/xkbprint b/source/x/x11/slack-desc/xkbprint new file mode 100644 index 000000000..efbe7ab94 --- /dev/null +++ b/source/x/x11/slack-desc/xkbprint @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xkbprint: xkbprint +xkbprint: +xkbprint: xkbprint is part of X11. +xkbprint: +xkbprint: For more information about the X.Org Foundation (the providers of the +xkbprint: X.Org implementation of the X Window System), see their website: +xkbprint: +xkbprint: http://www.x.org +xkbprint: +xkbprint: +xkbprint: diff --git a/source/x/x11/slack-desc/xkbutils b/source/x/x11/slack-desc/xkbutils new file mode 100644 index 000000000..1e98d49d4 --- /dev/null +++ b/source/x/x11/slack-desc/xkbutils @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xkbutils: xkbutils +xkbutils: +xkbutils: xkbutils is part of X11. +xkbutils: +xkbutils: For more information about the X.Org Foundation (the providers of the +xkbutils: X.Org implementation of the X Window System), see their website: +xkbutils: +xkbutils: http://www.x.org +xkbutils: +xkbutils: +xkbutils: diff --git a/source/x/x11/slack-desc/xkeyboard-config b/source/x/x11/slack-desc/xkeyboard-config new file mode 100644 index 000000000..3b9b0bb77 --- /dev/null +++ b/source/x/x11/slack-desc/xkeyboard-config @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xkeyboard-config: xkeyboard-config +xkeyboard-config: +xkeyboard-config: xkeyboard-config is part of X11. +xkeyboard-config: +xkeyboard-config: For more information about the X.Org Foundation (the providers of the +xkeyboard-config: X.Org implementation of the X Window System), see their website: +xkeyboard-config: +xkeyboard-config: http://www.x.org +xkeyboard-config: +xkeyboard-config: +xkeyboard-config: diff --git a/source/x/x11/slack-desc/xkill b/source/x/x11/slack-desc/xkill new file mode 100644 index 000000000..82aedb48b --- /dev/null +++ b/source/x/x11/slack-desc/xkill @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xkill: xkill +xkill: +xkill: xkill is part of X11. +xkill: +xkill: For more information about the X.Org Foundation (the providers of the +xkill: X.Org implementation of the X Window System), see their website: +xkill: +xkill: http://www.x.org +xkill: +xkill: +xkill: diff --git a/source/x/x11/slack-desc/xload b/source/x/x11/slack-desc/xload new file mode 100644 index 000000000..b95b6b6cb --- /dev/null +++ b/source/x/x11/slack-desc/xload @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xload: xload +xload: +xload: xload is part of X11. +xload: +xload: For more information about the X.Org Foundation (the providers of the +xload: X.Org implementation of the X Window System), see their website: +xload: +xload: http://www.x.org +xload: +xload: +xload: diff --git a/source/x/x11/slack-desc/xlogo b/source/x/x11/slack-desc/xlogo new file mode 100644 index 000000000..fbd28cc1e --- /dev/null +++ b/source/x/x11/slack-desc/xlogo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xlogo: xlogo +xlogo: +xlogo: xlogo is part of X11. +xlogo: +xlogo: For more information about the X.Org Foundation (the providers of the +xlogo: X.Org implementation of the X Window System), see their website: +xlogo: +xlogo: http://www.x.org +xlogo: +xlogo: +xlogo: diff --git a/source/x/x11/slack-desc/xlsatoms b/source/x/x11/slack-desc/xlsatoms new file mode 100644 index 000000000..f4e7e79c9 --- /dev/null +++ b/source/x/x11/slack-desc/xlsatoms @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xlsatoms: xlsatoms +xlsatoms: +xlsatoms: xlsatoms is part of X11. +xlsatoms: +xlsatoms: For more information about the X.Org Foundation (the providers of the +xlsatoms: X.Org implementation of the X Window System), see their website: +xlsatoms: +xlsatoms: http://www.x.org +xlsatoms: +xlsatoms: +xlsatoms: diff --git a/source/x/x11/slack-desc/xlsclients b/source/x/x11/slack-desc/xlsclients new file mode 100644 index 000000000..2bcf25fb1 --- /dev/null +++ b/source/x/x11/slack-desc/xlsclients @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xlsclients: xlsclients +xlsclients: +xlsclients: xlsclients is part of X11. +xlsclients: +xlsclients: For more information about the X.Org Foundation (the providers of the +xlsclients: X.Org implementation of the X Window System), see their website: +xlsclients: +xlsclients: http://www.x.org +xlsclients: +xlsclients: +xlsclients: diff --git a/source/x/x11/slack-desc/xlsfonts b/source/x/x11/slack-desc/xlsfonts new file mode 100644 index 000000000..25e25afc7 --- /dev/null +++ b/source/x/x11/slack-desc/xlsfonts @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xlsfonts: xlsfonts +xlsfonts: +xlsfonts: xlsfonts is part of X11. +xlsfonts: +xlsfonts: For more information about the X.Org Foundation (the providers of the +xlsfonts: X.Org implementation of the X Window System), see their website: +xlsfonts: +xlsfonts: http://www.x.org +xlsfonts: +xlsfonts: +xlsfonts: diff --git a/source/x/x11/slack-desc/xmag b/source/x/x11/slack-desc/xmag new file mode 100644 index 000000000..38174dd73 --- /dev/null +++ b/source/x/x11/slack-desc/xmag @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xmag: xmag +xmag: +xmag: xmag is part of X11. +xmag: +xmag: For more information about the X.Org Foundation (the providers of the +xmag: X.Org implementation of the X Window System), see their website: +xmag: +xmag: http://www.x.org +xmag: +xmag: +xmag: diff --git a/source/x/x11/slack-desc/xman b/source/x/x11/slack-desc/xman new file mode 100644 index 000000000..98ce929c3 --- /dev/null +++ b/source/x/x11/slack-desc/xman @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xman: xman +xman: +xman: xman is part of X11. +xman: +xman: For more information about the X.Org Foundation (the providers of the +xman: X.Org implementation of the X Window System), see their website: +xman: +xman: http://www.x.org +xman: +xman: +xman: diff --git a/source/x/x11/slack-desc/xmessage b/source/x/x11/slack-desc/xmessage new file mode 100644 index 000000000..12c9c0dfa --- /dev/null +++ b/source/x/x11/slack-desc/xmessage @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xmessage: xmessage +xmessage: +xmessage: xmessage is part of X11. +xmessage: +xmessage: For more information about the X.Org Foundation (the providers of the +xmessage: X.Org implementation of the X Window System), see their website: +xmessage: +xmessage: http://www.x.org +xmessage: +xmessage: +xmessage: diff --git a/source/x/x11/slack-desc/xmh b/source/x/x11/slack-desc/xmh new file mode 100644 index 000000000..a1415c8bb --- /dev/null +++ b/source/x/x11/slack-desc/xmh @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xmh: xmh +xmh: +xmh: xmh is part of X11. +xmh: +xmh: For more information about the X.Org Foundation (the providers of the +xmh: X.Org implementation of the X Window System), see their website: +xmh: +xmh: http://www.x.org +xmh: +xmh: +xmh: diff --git a/source/x/x11/slack-desc/xmodmap b/source/x/x11/slack-desc/xmodmap new file mode 100644 index 000000000..aeb77cff6 --- /dev/null +++ b/source/x/x11/slack-desc/xmodmap @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xmodmap: xmodmap +xmodmap: +xmodmap: xmodmap is part of X11. +xmodmap: +xmodmap: For more information about the X.Org Foundation (the providers of the +xmodmap: X.Org implementation of the X Window System), see their website: +xmodmap: +xmodmap: http://www.x.org +xmodmap: +xmodmap: +xmodmap: diff --git a/source/x/x11/slack-desc/xmore b/source/x/x11/slack-desc/xmore new file mode 100644 index 000000000..a714db3df --- /dev/null +++ b/source/x/x11/slack-desc/xmore @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xmore: xmore +xmore: +xmore: xmore is part of X11. +xmore: +xmore: For more information about the X.Org Foundation (the providers of the +xmore: X.Org implementation of the X Window System), see their website: +xmore: +xmore: http://www.x.org +xmore: +xmore: +xmore: diff --git a/source/x/x11/slack-desc/xorg-cf-files b/source/x/x11/slack-desc/xorg-cf-files new file mode 100644 index 000000000..a5f15784f --- /dev/null +++ b/source/x/x11/slack-desc/xorg-cf-files @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-cf-files: xorg-cf-files +xorg-cf-files: +xorg-cf-files: xorg-cf-files is part of X11. +xorg-cf-files: +xorg-cf-files: For more information about the X.Org Foundation (the providers of the +xorg-cf-files: X.Org implementation of the X Window System), see their website: +xorg-cf-files: +xorg-cf-files: http://www.x.org +xorg-cf-files: +xorg-cf-files: +xorg-cf-files: diff --git a/source/x/x11/slack-desc/xorg-docs b/source/x/x11/slack-desc/xorg-docs new file mode 100644 index 000000000..aee2a992a --- /dev/null +++ b/source/x/x11/slack-desc/xorg-docs @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-docs: xorg-docs +xorg-docs: +xorg-docs: xorg-docs is part of X11. +xorg-docs: +xorg-docs: For more information about the X.Org Foundation (the providers of the +xorg-docs: X.Org implementation of the X Window System), see their website: +xorg-docs: +xorg-docs: http://www.x.org +xorg-docs: +xorg-docs: +xorg-docs: diff --git a/source/x/x11/slack-desc/xorg-server b/source/x/x11/slack-desc/xorg-server new file mode 100644 index 000000000..9d25b405d --- /dev/null +++ b/source/x/x11/slack-desc/xorg-server @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server: xorg-server (The Xorg server, the core of the X Window System) +xorg-server: +xorg-server: Xorg is a full featured X server that was originally designed for UNIX +xorg-server: and UNIX-like operating systems running on Intel x86 hardware. It now +xorg-server: runs on a wider range of hardware and OS platforms. This work was +xorg-server: derived by the X.Org Foundation from the XFree86 Project's XFree86 +xorg-server: 4.4rc2 release. The XFree86 release was originally derived from X386 +xorg-server: 1.2 by Thomas Roell which was contributed to X11R5 by Snitily Graphics +xorg-server: Consulting Service. +xorg-server: +xorg-server: The home page for the X project is: http://www.x.org diff --git a/source/x/x11/slack-desc/xorg-server-xdmx b/source/x/x11/slack-desc/xorg-server-xdmx new file mode 100644 index 000000000..0cfe5c8ff --- /dev/null +++ b/source/x/x11/slack-desc/xorg-server-xdmx @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server-xdmx: xorg-server-xdmx (Distributed Multi-head X server) +xorg-server-xdmx: +xorg-server-xdmx: Xdmx is a proxy X server that uses one or more other X servers as its +xorg-server-xdmx: display devices. It provides multi-head X functionality for displays +xorg-server-xdmx: that might be located on different machines. +xorg-server-xdmx: +xorg-server-xdmx: +xorg-server-xdmx: +xorg-server-xdmx: +xorg-server-xdmx: +xorg-server-xdmx: diff --git a/source/x/x11/slack-desc/xorg-server-xephyr b/source/x/x11/slack-desc/xorg-server-xephyr new file mode 100644 index 000000000..640f3d189 --- /dev/null +++ b/source/x/x11/slack-desc/xorg-server-xephyr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server-xephyr: xorg-server-xephyr (Improved nested X server/client) +xorg-server-xephyr: +xorg-server-xephyr: Xephyr is a nested X-Client like Xnest, but with some additional +xorg-server-xephyr: features like XRender support. +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: +xorg-server-xephyr: diff --git a/source/x/x11/slack-desc/xorg-server-xnest b/source/x/x11/slack-desc/xorg-server-xnest new file mode 100644 index 000000000..393f93bdd --- /dev/null +++ b/source/x/x11/slack-desc/xorg-server-xnest @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server-xnest: xorg-server-xnest (a nested X server) +xorg-server-xnest: +xorg-server-xnest: Xnest is an experimental nested server for X that acts as both a +xorg-server-xnest: client and a server. Xnest is a client of the real server which +xorg-server-xnest: manages windows and graphics requests on its behalf. Xnest is a +xorg-server-xnest: server to its own clients. Xnest manages windows and graphics +xorg-server-xnest: requests on their behalf. To these clients Xnest appears to be a +xorg-server-xnest: conventional server. +xorg-server-xnest: +xorg-server-xnest: +xorg-server-xnest: diff --git a/source/x/x11/slack-desc/xorg-server-xvfb b/source/x/x11/slack-desc/xorg-server-xvfb new file mode 100644 index 000000000..aff9c642c --- /dev/null +++ b/source/x/x11/slack-desc/xorg-server-xvfb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-server-xvfb: xorg-server-xvfb (virtual framebuffer X server) +xorg-server-xvfb: +xorg-server-xvfb: Xvfb is an X server that can run on machines with no display hardware +xorg-server-xvfb: and no physical input devices. It emulates a dumb framebuffer using +xorg-server-xvfb: virtual memory. The primary use of this server is intended to be +xorg-server-xvfb: server testing. The mfb or cfb code for any depth can be exercised +xorg-server-xvfb: with this server without the need for real hardware that supports the +xorg-server-xvfb: desired depths. A secondary use is testing clients against unusual +xorg-server-xvfb: depths and screen configurations. +xorg-server-xvfb: +xorg-server-xvfb: diff --git a/source/x/x11/slack-desc/xorg-sgml-doctools b/source/x/x11/slack-desc/xorg-sgml-doctools new file mode 100644 index 000000000..1467fb828 --- /dev/null +++ b/source/x/x11/slack-desc/xorg-sgml-doctools @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xorg-sgml-doctools: xorg-sgml-doctools +xorg-sgml-doctools: +xorg-sgml-doctools: xorg-sgml-doctools is part of X11. +xorg-sgml-doctools: +xorg-sgml-doctools: For more information about the X.Org Foundation (the providers of the +xorg-sgml-doctools: X.Org implementation of the X Window System), see their website: +xorg-sgml-doctools: +xorg-sgml-doctools: http://www.x.org +xorg-sgml-doctools: +xorg-sgml-doctools: +xorg-sgml-doctools: diff --git a/source/x/x11/slack-desc/xphelloworld b/source/x/x11/slack-desc/xphelloworld new file mode 100644 index 000000000..e5ae0f3b6 --- /dev/null +++ b/source/x/x11/slack-desc/xphelloworld @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xphelloworld: xphelloworld +xphelloworld: +xphelloworld: xphelloworld is part of X11. +xphelloworld: +xphelloworld: For more information about the X.Org Foundation (the providers of the +xphelloworld: X.Org implementation of the X Window System), see their website: +xphelloworld: +xphelloworld: http://www.x.org +xphelloworld: +xphelloworld: +xphelloworld: diff --git a/source/x/x11/slack-desc/xplsprinters b/source/x/x11/slack-desc/xplsprinters new file mode 100644 index 000000000..b4201593a --- /dev/null +++ b/source/x/x11/slack-desc/xplsprinters @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xplsprinters: xplsprinters +xplsprinters: +xplsprinters: xplsprinters is part of X11. +xplsprinters: +xplsprinters: For more information about the X.Org Foundation (the providers of the +xplsprinters: X.Org implementation of the X Window System), see their website: +xplsprinters: +xplsprinters: http://www.x.org +xplsprinters: +xplsprinters: +xplsprinters: diff --git a/source/x/x11/slack-desc/xpr b/source/x/x11/slack-desc/xpr new file mode 100644 index 000000000..1e7795cac --- /dev/null +++ b/source/x/x11/slack-desc/xpr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xpr: xpr +xpr: +xpr: xpr is part of X11. +xpr: +xpr: For more information about the X.Org Foundation (the providers of the +xpr: X.Org implementation of the X Window System), see their website: +xpr: +xpr: http://www.x.org +xpr: +xpr: +xpr: diff --git a/source/x/x11/slack-desc/xprehashprinterlist b/source/x/x11/slack-desc/xprehashprinterlist new file mode 100644 index 000000000..3444a5eed --- /dev/null +++ b/source/x/x11/slack-desc/xprehashprinterlist @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xprehashprinterlist: xprehashprinterlist +xprehashprinterlist: +xprehashprinterlist: xprehashprinterlist is part of X11. +xprehashprinterlist: +xprehashprinterlist: For more information about the X.Org Foundation (the providers of the +xprehashprinterlist: X.Org implementation of the X Window System), see their website: +xprehashprinterlist: +xprehashprinterlist: http://www.x.org +xprehashprinterlist: +xprehashprinterlist: +xprehashprinterlist: diff --git a/source/x/x11/slack-desc/xprop b/source/x/x11/slack-desc/xprop new file mode 100644 index 000000000..8996f5097 --- /dev/null +++ b/source/x/x11/slack-desc/xprop @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xprop: xprop +xprop: +xprop: xprop is part of X11. +xprop: +xprop: For more information about the X.Org Foundation (the providers of the +xprop: X.Org implementation of the X Window System), see their website: +xprop: +xprop: http://www.x.org +xprop: +xprop: +xprop: diff --git a/source/x/x11/slack-desc/xproto b/source/x/x11/slack-desc/xproto new file mode 100644 index 000000000..e57551ab9 --- /dev/null +++ b/source/x/x11/slack-desc/xproto @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xproto: xproto +xproto: +xproto: xproto is part of X11. +xproto: +xproto: For more information about the X.Org Foundation (the providers of the +xproto: X.Org implementation of the X Window System), see their website: +xproto: +xproto: http://www.x.org +xproto: +xproto: +xproto: diff --git a/source/x/x11/slack-desc/xproxymanagementprotocol b/source/x/x11/slack-desc/xproxymanagementprotocol new file mode 100644 index 000000000..a5586dc68 --- /dev/null +++ b/source/x/x11/slack-desc/xproxymanagementprotocol @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xproxymanagementprotocol: xproxymanagementprotocol +xproxymanagementprotocol: +xproxymanagementprotocol: xproxymanagementprotocol is part of X11. +xproxymanagementprotocol: +xproxymanagementprotocol: For more information about the X.Org Foundation (the providers of the +xproxymanagementprotocol: X.Org implementation of the X Window System), see their website: +xproxymanagementprotocol: +xproxymanagementprotocol: http://www.x.org +xproxymanagementprotocol: +xproxymanagementprotocol: +xproxymanagementprotocol: diff --git a/source/x/x11/slack-desc/xpyb b/source/x/x11/slack-desc/xpyb new file mode 100644 index 000000000..92baab773 --- /dev/null +++ b/source/x/x11/slack-desc/xpyb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-------------------------------------------------------| +xpyb: xpyb +xpyb: +xpyb: xpyb is part of X11. +xpyb: +xpyb: For more information about the X.Org Foundation (the providers of the +xpyb: X.Org implementation of the X Window System), see their website: +xpyb: +xpyb: http://www.x.org +xpyb: +xpyb: +xpyb: diff --git a/source/x/x11/slack-desc/xrandr b/source/x/x11/slack-desc/xrandr new file mode 100644 index 000000000..8f158dd02 --- /dev/null +++ b/source/x/x11/slack-desc/xrandr @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xrandr: xrandr +xrandr: +xrandr: xrandr is part of X11. +xrandr: +xrandr: For more information about the X.Org Foundation (the providers of the +xrandr: X.Org implementation of the X Window System), see their website: +xrandr: +xrandr: http://www.x.org +xrandr: +xrandr: +xrandr: diff --git a/source/x/x11/slack-desc/xrdb b/source/x/x11/slack-desc/xrdb new file mode 100644 index 000000000..26ea47867 --- /dev/null +++ b/source/x/x11/slack-desc/xrdb @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xrdb: xrdb +xrdb: +xrdb: xrdb is part of X11. +xrdb: +xrdb: For more information about the X.Org Foundation (the providers of the +xrdb: X.Org implementation of the X Window System), see their website: +xrdb: +xrdb: http://www.x.org +xrdb: +xrdb: +xrdb: diff --git a/source/x/x11/slack-desc/xrefresh b/source/x/x11/slack-desc/xrefresh new file mode 100644 index 000000000..65e7140c4 --- /dev/null +++ b/source/x/x11/slack-desc/xrefresh @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xrefresh: xrefresh +xrefresh: +xrefresh: xrefresh is part of X11. +xrefresh: +xrefresh: For more information about the X.Org Foundation (the providers of the +xrefresh: X.Org implementation of the X Window System), see their website: +xrefresh: +xrefresh: http://www.x.org +xrefresh: +xrefresh: +xrefresh: diff --git a/source/x/x11/slack-desc/xrx b/source/x/x11/slack-desc/xrx new file mode 100644 index 000000000..3a6e369c8 --- /dev/null +++ b/source/x/x11/slack-desc/xrx @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xrx: xrx +xrx: +xrx: xrx is part of X11. +xrx: +xrx: For more information about the X.Org Foundation (the providers of the +xrx: X.Org implementation of the X Window System), see their website: +xrx: +xrx: http://www.x.org +xrx: +xrx: +xrx: diff --git a/source/x/x11/slack-desc/xscope b/source/x/x11/slack-desc/xscope new file mode 100644 index 000000000..5008a745a --- /dev/null +++ b/source/x/x11/slack-desc/xscope @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xscope: xscope +xscope: +xscope: xscope is part of X11. +xscope: +xscope: For more information about the X.Org Foundation (the providers of the +xscope: X.Org implementation of the X Window System), see their website: +xscope: +xscope: http://www.x.org +xscope: +xscope: +xscope: diff --git a/source/x/x11/slack-desc/xset b/source/x/x11/slack-desc/xset new file mode 100644 index 000000000..e434079c7 --- /dev/null +++ b/source/x/x11/slack-desc/xset @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xset: xset +xset: +xset: xset is part of X11. +xset: +xset: For more information about the X.Org Foundation (the providers of the +xset: X.Org implementation of the X Window System), see their website: +xset: +xset: http://www.x.org +xset: +xset: +xset: diff --git a/source/x/x11/slack-desc/xsetmode b/source/x/x11/slack-desc/xsetmode new file mode 100644 index 000000000..b727c3e95 --- /dev/null +++ b/source/x/x11/slack-desc/xsetmode @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xsetmode: xsetmode +xsetmode: +xsetmode: xsetmode is part of X11. +xsetmode: +xsetmode: For more information about the X.Org Foundation (the providers of the +xsetmode: X.Org implementation of the X Window System), see their website: +xsetmode: +xsetmode: http://www.x.org +xsetmode: +xsetmode: +xsetmode: diff --git a/source/x/x11/slack-desc/xsetpointer b/source/x/x11/slack-desc/xsetpointer new file mode 100644 index 000000000..cbfaa0c2d --- /dev/null +++ b/source/x/x11/slack-desc/xsetpointer @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xsetpointer: xsetpointer +xsetpointer: +xsetpointer: xsetpointer is part of X11. +xsetpointer: +xsetpointer: For more information about the X.Org Foundation (the providers of the +xsetpointer: X.Org implementation of the X Window System), see their website: +xsetpointer: +xsetpointer: http://www.x.org +xsetpointer: +xsetpointer: +xsetpointer: diff --git a/source/x/x11/slack-desc/xsetroot b/source/x/x11/slack-desc/xsetroot new file mode 100644 index 000000000..8a9a4be32 --- /dev/null +++ b/source/x/x11/slack-desc/xsetroot @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xsetroot: xsetroot +xsetroot: +xsetroot: xsetroot is part of X11. +xsetroot: +xsetroot: For more information about the X.Org Foundation (the providers of the +xsetroot: X.Org implementation of the X Window System), see their website: +xsetroot: +xsetroot: http://www.x.org +xsetroot: +xsetroot: +xsetroot: diff --git a/source/x/x11/slack-desc/xsm b/source/x/x11/slack-desc/xsm new file mode 100644 index 000000000..8fe6ba3c1 --- /dev/null +++ b/source/x/x11/slack-desc/xsm @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xsm: xsm +xsm: +xsm: xsm is part of X11. +xsm: +xsm: For more information about the X.Org Foundation (the providers of the +xsm: X.Org implementation of the X Window System), see their website: +xsm: +xsm: http://www.x.org +xsm: +xsm: +xsm: diff --git a/source/x/x11/slack-desc/xstdcmap b/source/x/x11/slack-desc/xstdcmap new file mode 100644 index 000000000..b1bd5e6af --- /dev/null +++ b/source/x/x11/slack-desc/xstdcmap @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xstdcmap: xstdcmap +xstdcmap: +xstdcmap: xstdcmap is part of X11. +xstdcmap: +xstdcmap: For more information about the X.Org Foundation (the providers of the +xstdcmap: X.Org implementation of the X Window System), see their website: +xstdcmap: +xstdcmap: http://www.x.org +xstdcmap: +xstdcmap: +xstdcmap: diff --git a/source/x/x11/slack-desc/xtrans b/source/x/x11/slack-desc/xtrans new file mode 100644 index 000000000..f7ea71c32 --- /dev/null +++ b/source/x/x11/slack-desc/xtrans @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xtrans: xtrans +xtrans: +xtrans: xtrans is part of X11. +xtrans: +xtrans: For more information about the X.Org Foundation (the providers of the +xtrans: X.Org implementation of the X Window System), see their website: +xtrans: +xtrans: http://www.x.org +xtrans: +xtrans: +xtrans: diff --git a/source/x/x11/slack-desc/xtrap b/source/x/x11/slack-desc/xtrap new file mode 100644 index 000000000..bdf77e438 --- /dev/null +++ b/source/x/x11/slack-desc/xtrap @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xtrap: xtrap +xtrap: +xtrap: xtrap is part of X11. +xtrap: +xtrap: For more information about the X.Org Foundation (the providers of the +xtrap: X.Org implementation of the X Window System), see their website: +xtrap: +xtrap: http://www.x.org +xtrap: +xtrap: +xtrap: diff --git a/source/x/x11/slack-desc/xvidtune b/source/x/x11/slack-desc/xvidtune new file mode 100644 index 000000000..bdadf298b --- /dev/null +++ b/source/x/x11/slack-desc/xvidtune @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xvidtune: xvidtune +xvidtune: +xvidtune: xvidtune is part of X11. +xvidtune: +xvidtune: For more information about the X.Org Foundation (the providers of the +xvidtune: X.Org implementation of the X Window System), see their website: +xvidtune: +xvidtune: http://www.x.org +xvidtune: +xvidtune: +xvidtune: diff --git a/source/x/x11/slack-desc/xvinfo b/source/x/x11/slack-desc/xvinfo new file mode 100644 index 000000000..54a44c8a4 --- /dev/null +++ b/source/x/x11/slack-desc/xvinfo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xvinfo: xvinfo +xvinfo: +xvinfo: xvinfo is part of X11. +xvinfo: +xvinfo: For more information about the X.Org Foundation (the providers of the +xvinfo: X.Org implementation of the X Window System), see their website: +xvinfo: +xvinfo: http://www.x.org +xvinfo: +xvinfo: +xvinfo: diff --git a/source/x/x11/slack-desc/xwd b/source/x/x11/slack-desc/xwd new file mode 100644 index 000000000..6b2450a06 --- /dev/null +++ b/source/x/x11/slack-desc/xwd @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xwd: xwd +xwd: +xwd: xwd is part of X11. +xwd: +xwd: For more information about the X.Org Foundation (the providers of the +xwd: X.Org implementation of the X Window System), see their website: +xwd: +xwd: http://www.x.org +xwd: +xwd: +xwd: diff --git a/source/x/x11/slack-desc/xwininfo b/source/x/x11/slack-desc/xwininfo new file mode 100644 index 000000000..03e11ddf5 --- /dev/null +++ b/source/x/x11/slack-desc/xwininfo @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xwininfo: xwininfo +xwininfo: +xwininfo: xwininfo is part of X11. +xwininfo: +xwininfo: For more information about the X.Org Foundation (the providers of the +xwininfo: X.Org implementation of the X Window System), see their website: +xwininfo: +xwininfo: http://www.x.org +xwininfo: +xwininfo: +xwininfo: diff --git a/source/x/x11/slack-desc/xwud b/source/x/x11/slack-desc/xwud new file mode 100644 index 000000000..f0c22d345 --- /dev/null +++ b/source/x/x11/slack-desc/xwud @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xwud: xwud +xwud: +xwud: xwud is part of X11. +xwud: +xwud: For more information about the X.Org Foundation (the providers of the +xwud: X.Org implementation of the X Window System), see their website: +xwud: +xwud: http://www.x.org +xwud: +xwud: +xwud: diff --git a/source/x/x11/x11.SlackBuild b/source/x/x11/x11.SlackBuild new file mode 100755 index 000000000..e47537981 --- /dev/null +++ b/source/x/x11/x11.SlackBuild @@ -0,0 +1,335 @@ +#!/bin/sh +# Copyright 2007-2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# To build only a single package group, specify it as $1, like: +# ./x11.SlackBuild lib +# To build only a single package, specify both the source directory +# and the name of the package, like: +# ./x11.SlackBuild lib libX11 + +pkgbase() { + PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) + case $PKGEXT in + 'gz' ) + PKGRETURN=$(basename $1 .tar.gz) + ;; + 'bz2' ) + PKGRETURN=$(basename $1 .tar.bz2) + ;; + 'lzma' ) + PKGRETURN=$(basename $1 .tar.lzma) + ;; + 'xz' ) + PKGRETURN=$(basename $1 .tar.xz) + ;; + *) + PKGRETURN=$(basename $1) + ;; + esac + echo $PKGRETURN +} + +# Set initial variables: +CWD=$(pwd) +TMP=${TMP:-/tmp} + +# A lot of this stuff just controls the package names this time: +VERSION=${VERSION:-7.4} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +PKGARCH=$ARCH + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +# Set up a few useful functions: + +fix_perms() { + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +} + +process_man_pages() { + # Compress and if needed symlink the man pages: + if [ -d usr/man ]; then + ( cd usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) + fi +} + +process_info_pages() { + # Compress info pages and purge "dir" file from the package: + if [ -d usr/info ]; then + ( cd usr/info + rm -f dir + gzip -9 * + ) + fi +} + +no_usr_share_doc() { + # If there are docs, move them: + if [ -d usr/share/doc ]; then + mkdir -p usr/doc + mv usr/share/doc/* usr/doc + rmdir usr/share/doc + fi +} + +# Set the compile options for the $ARCH being used: +. $CWD/arch.use.flags + +SLACK_X_BUILD_DIR=$TMP/x11-build +mkdir -p $SLACK_X_BUILD_DIR + +# Better have some binaries installed first, as this may not be +# in the "magic order". I built mine by hand through trial-and-error +# before getting this script to work. It wasn't that hard... I think. ;-) +( cd src + for x_source_dir in proto data util xcb lib app doc driver font xserver ; do + # See if $1 is a source directory like "lib": + if [ ! -z "$1" ]; then + if [ ! "$1" = "${x_source_dir}" ]; then + continue + fi + fi + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + rm -rf $PKG + mkdir -p $PKG + ( cd $x_source_dir + for x_pkg in *.tar.?z* ; do + # Reset $PKGARCH to its initial value: + PKGARCH=$ARCH + PKGNAME=$(echo $x_pkg | rev | cut -f 2- -d - | rev) + # Perhaps $PKGARCH should be something different: + if grep -wq "^$PKGNAME" ${CWD}/noarch ; then + PKGARCH=noarch + fi + if grep -wq "^$PKGNAME" ${CWD}/package-blacklist ; then + continue + fi + cd $SLACK_X_BUILD_DIR + # If $2 is set, we only want to build one package: + if [ ! -z "$2" ]; then + if [ "$2" = "$PKGNAME" ]; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + else + continue + fi + fi + if grep -wq "^$PKGNAME" ${CWD}/modularize ; then + # Set $PKG to a private dir for the modular package build: + PKG=$SLACK_X_BUILD_DIR/package-$PKGNAME + rm -rf $PKG + mkdir -p $PKG + fi + + # Let's figure out the version number on the modular package: + MODULAR_PACKAGE_VERSION=$(echo $x_pkg | rev | cut -f 3- -d . | cut -f 1 -d - | rev) + + rm -rf $(pkgbase $x_pkg) + tar xf $CWD/src/${x_source_dir}/${x_pkg} || exit 1 + cd $(pkgbase $x_pkg) || exit 1 + + fix_perms + + # If any patches are needed, call this script to apply them: + if [ -r $CWD/patch/${PKGNAME}.patch ]; then + . $CWD/patch/${PKGNAME}.patch + fi + + # I heard somewhere that -O2 breaks some chipset or another. If you encounter + # problems, please contact volkerdi@slackware.com. Thanks! :-) + + # ./configure, using custom configure script if needed: + if [ -r $CWD/configure/${PKGNAME} ]; then + . $CWD/configure/${PKGNAME} + else + # This is the default configure script: + . $CWD/configure/configure + fi + + if ! make $NUMJOBS ; then + touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed + continue + fi + + make install DESTDIR=$PKG + + # Strip binaries: + ( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : | xargs strip -g 2> /dev/null + ) + + # If there's any special post-install things to do, do them: + if [ -r $CWD/post-install/${PKGNAME}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/${PKGNAME}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + + # If this package requires some doinst.sh material, add it here: + if [ -r $CWD/doinst.sh/${PKGNAME} ]; then + mkdir -p $PKG/install + cat $CWD/doinst.sh/${PKGNAME} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + + # If this is a modular package, build it here: + if [ -d $SLACK_X_BUILD_DIR/package-$PKGNAME ]; then + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/${PKGNAME} ]; then + cat $CWD/slack-desc/${PKGNAME} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/build/${PKGNAME} ]; then + MODBUILD=$(cat $CWD/build/${PKGNAME}) + else + MODBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/${PKGNAME}-${MODULAR_PACKAGE_VERSION}-${PKGARCH}-${MODBUILD}.txz + fi + fi + + # Reset $PKG to assume we're building the whole source dir: + PKG=${SLACK_X_BUILD_DIR}/package-${x_source_dir} + + done + + # Nothing here? Must have been fully modular. :-) + if [ ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/etc -a \ + ! -d ${SLACK_X_BUILD_DIR}/package-${x_source_dir}/usr ]; then + continue + fi + + # Build an "x11-" package for anything that wasn't built modular: + # It's safer to consider these to have binaries in them. ;-) + PKGARCH=$ARCH + cd $PKG + process_man_pages + process_info_pages + no_usr_share_doc + # If there are post-install things to do for the combined package, + # we do them here. This could be used for things like making a + # VERSION number for a combined package. :-) + if [ -r $CWD/post-install/x11-${x_source_dir}.post-install ]; then + RUNSCRIPT=$(mktemp -p $TMP) || exit 1 + cat $CWD/post-install/x11-${x_source_dir}.post-install \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $RUNSCRIPT + . $RUNSCRIPT + rm -f $RUNSCRIPT + fi + mkdir -p $PKG/install + if [ -r $CWD/slack-desc/x11-${x_source_dir} ]; then + cat $CWD/slack-desc/x11-${x_source_dir} > $PKG/install/slack-desc + else + touch $PKG/install/slack-desc-missing + fi + if [ -r $CWD/doinst.sh/x11-${x_source_dir} ]; then + cat $CWD/doinst.sh/x11-${x_source_dir} \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + >> $PKG/install/doinst.sh + fi + if [ -r $CWD/build/x11-${PKGNAME} ]; then + SRCDIRBUILD=$(cat $CWD/build/x11-${PKGNAME}) + else + SRCDIRBUILD=$BUILD + fi + if [ -r $CWD/makepkg/${PKGNAME} ]; then + BUILD=$MODBUILD . $CWD/makepkg/${PKGNAME} + else + /sbin/makepkg -l y -c n ${SLACK_X_BUILD_DIR}/x11-${x_source_dir}-${VERSION}-${PKGARCH}-${SRCDIRBUILD}.txz + fi + ) + done +) + +exit 0 + +# I don't think I'll be using the following stuff, since I went for the latest in +# "individual", rather than a release. That was mostly because version 7.1 depends +# on a version of Mesa that won't build against kernel headers this new (&etc.). + +# If environment variable "REFRESH" is exported, start by refreshing the source tree: +# export REFRESH yes +if [ ! -z "$REFRESH" ]; then + # Only works once, unless you uncomment above. + unset REFRESH + ( cd patches + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/patches + mirror --delete --dereference . + exit" + chmod 644 * + ) + ( cd src + mkdir -p update everything + for dir in app data deprecated doc driver extras font lib proto util xserver ; do + # We won't really download "update", as problems ensue. Plus, --dereference is + # bringing us updated files when needed, so it's redundant (like "everything"). + if [ ! -d $dir ]; then + mkdir $dir + fi + ( cd $dir + lftp -c \ + "lftp ftp://ftp.x.org:/pub/X11R7.1/src/$dir + mirror -c --delete --dereference --include-glob "*.tar.bz2" . + exit" + chmod 644 * + ) + done + ) +fi + diff --git a/source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff b/source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff new file mode 100644 index 000000000..5593f249b --- /dev/null +++ b/source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff @@ -0,0 +1,647 @@ +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c.debian 2000-11-27 14:19:36.000000000 +0100 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c 2008-10-06 11:42:13.000000000 +0200 +@@ -51,11 +51,17 @@ in this Software without prior written a + #include + #endif + ++#include ++#include ++#include + + #if (defined(ASCII_STRING) || defined(ASCII_DISK)) + # include /* for Widget Classes. */ + #endif + ++#include ++#include ++#include + + /**************************************************************** + * +@@ -1007,7 +1013,9 @@ InitStringOrFile(src, newString) + AsciiSrcObject src; + Boolean newString; + { +- char * open_mode = NULL; ++ mode_t open_mode = 0; ++ const char *fdopen_mode = NULL; ++ int fd; + FILE * file; + char fileName[TMPSIZ]; + +@@ -1049,7 +1057,8 @@ Boolean newString; + XtErrorMsg("NoFile", "asciiSourceCreate", "XawError", + "Creating a read only disk widget and no file specified.", + NULL, 0); +- open_mode = "r"; ++ open_mode = O_RDONLY; ++ fdopen_mode = "r"; + break; + case XawtextAppend: + case XawtextEdit: +@@ -1057,9 +1066,17 @@ Boolean newString; + src->ascii_src.string = fileName; + (void) tmpnam(src->ascii_src.string); + src->ascii_src.is_tempfile = TRUE; +- open_mode = "w"; +- } else +- open_mode = "r+"; ++ open_mode = O_WRONLY | O_CREAT | O_EXCL; ++ fdopen_mode = "w"; ++ } else { ++/* O_NOFOLLOW is a BSD & Linux extension */ ++#ifdef O_NOFOLLOW ++ open_mode = O_RDWR | O_NOFOLLOW; ++#else ++ open_mode = O_RDWR; /* unsafe; subject to race conditions */ ++#endif ++ fdopen_mode = "r+"; ++ } + break; + default: + XtErrorMsg("badMode", "asciiSourceCreate", "XawError", +@@ -1078,11 +1095,14 @@ Boolean newString; + } + + if (!src->ascii_src.is_tempfile) { +- if ((file = fopen(src->ascii_src.string, open_mode)) != 0) { +- (void) fseek(file, (Off_t)0, 2); +- src->ascii_src.length = (XawTextPosition) ftell(file); +- return file; +- } else { ++ if ((fd = open(src->ascii_src.string, open_mode, 0666))) { ++ if ((file = fdopen(fd, fdopen_mode)) != NULL) { ++ (void)fseek(file, 0, SEEK_END); ++ src->ascii_src.length = (XawTextPosition)ftell(file); ++ return (file); ++ } ++ } ++ { + String params[2]; + Cardinal num_params = 2; + +@@ -1094,7 +1114,7 @@ Boolean newString; + } + } + src->ascii_src.length = 0; +- return((FILE *)NULL); ++ return(NULL); + } + + static void +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h.debian Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h +--- Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h.debian 1996-10-15 16:41:18.000000000 +0200 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h 2008-10-06 11:42:13.000000000 +0200 +@@ -85,7 +85,11 @@ SOFTWARE. + #ifdef L_tmpnam + #define TMPSIZ L_tmpnam + #else +-#define TMPSIZ 32 /* bytes to allocate for tmpnam */ ++#ifdef PATH_MAX ++#define TMPSIZ PATH_MAX ++#else ++#define TMPSIZ 1024 /* bytes to allocate for tmpnam */ ++#endif + #endif + + #define MAGIC_VALUE ((XawTextPosition) -1) /* Magic value. */ +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c.debian 1996-10-15 16:41:20.000000000 +0200 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c 2008-10-06 11:42:13.000000000 +0200 +@@ -53,6 +53,8 @@ in this Software without prior written a + #include + #include + ++#include "XawAlloc.h" ++ + static void ClassInitialize(); + static void PopupMenu(); + +@@ -179,9 +181,16 @@ Cardinal * num_params; + + if (menu == NULL) { + char error_buf[BUFSIZ]; +- (void) sprintf(error_buf, "MenuButton: %s %s.", +- "Could not find menu widget named", mbw->menu_button.menu_name); +- XtAppWarning(XtWidgetToApplicationContext(w), error_buf); ++ char *err1 = "MenuButton: Could not find menu widget named "; ++ char *perr; ++ int len; ++ ++ len = strlen(err1) + strlen(mbw->menu_button.menu_name) + 1 + 1; ++ perr = XtStackAlloc(len, error_buf); ++ if (perr == NULL) return; ++ sprintf(perr, "%s%s.", err1, mbw->menu_button.menu_name); ++ XtAppWarning(XtWidgetToApplicationContext(w), perr); ++ XtStackFree(perr, error_buf); + return; + } + if (!XtIsRealized(menu)) +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c.debian 2008-10-06 11:42:13.000000000 +0200 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c 2008-10-06 11:42:13.000000000 +0200 +@@ -74,6 +74,9 @@ in this Software without prior written a + #include + #include + #include ++#include ++#include ++#include + + /**************************************************************** + * +@@ -1077,7 +1080,9 @@ InitStringOrFile(src, newString) + MultiSrcObject src; + Boolean newString; + { +- char * open_mode = NULL; ++ mode_t open_mode = 0; ++ const char *fdopen_mode = NULL; ++ int fd; + FILE * file; + char fileName[TMPSIZ]; + Display *d = XtDisplayOfObject((Widget)src); +@@ -1128,7 +1133,8 @@ InitStringOrFile(src, newString) + XtErrorMsg("NoFile", "multiSourceCreate", "XawError", + "Creating a read only disk widget and no file specified.", + NULL, 0); +- open_mode = "r"; ++ open_mode = O_RDONLY; ++ fdopen_mode = "r"; + break; + case XawtextAppend: + case XawtextEdit: +@@ -1141,9 +1147,17 @@ InitStringOrFile(src, newString) + + (void) tmpnam(src->multi_src.string); + src->multi_src.is_tempfile = TRUE; +- open_mode = "w"; +- } else +- open_mode = "r+"; ++ open_mode = O_WRONLY | O_CREAT | O_EXCL; ++ fdopen_mode = "w"; ++ } else { ++/* O_NOFOLLOW is a BSD & Linux extension */ ++#ifdef O_NOFOLLOW ++ open_mode = O_RDWR | O_NOFOLLOW; ++#else ++ open_mode = O_RDWR; /* unsafe; subject to race conditions */ ++#endif ++ fdopen_mode = "r+"; ++ } + break; + default: + XtErrorMsg("badMode", "multiSourceCreate", "XawError", +@@ -1162,11 +1176,14 @@ InitStringOrFile(src, newString) + } + + if (!src->multi_src.is_tempfile) { +- if ((file = fopen(src->multi_src.string, open_mode)) != 0) { +- (void) fseek(file, (Off_t)0, 2); +- src->multi_src.length = ftell (file); +- return file; +- } else { ++ if ((fd = open(src->multi_src.string, open_mode, 0666))) { ++ if ((file = fdopen(fd, fdopen_mode)) != NULL) { ++ (void)fseek(file, 0, SEEK_END); ++ src->multi_src.length = (XawTextPosition)ftell(file); ++ return (file); ++ } ++ } ++ { + String params[2]; + Cardinal num_params = 2; + +@@ -1178,7 +1195,7 @@ InitStringOrFile(src, newString) + } + } + src->multi_src.length = 0; +- return((FILE *)NULL); ++ return(NULL); + #undef StrLen + } + +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h.debian Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h +--- Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h.debian 1996-10-15 16:41:21.000000000 +0200 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h 2008-10-06 11:42:13.000000000 +0200 +@@ -113,7 +113,11 @@ SOFTWARE. + #ifdef L_tmpnam + #define TMPSIZ L_tmpnam + #else +-#define TMPSIZ 32 /* bytes to allocate for tmpnam */ ++#ifdef PATH_MAX ++#define TMPSIZ PATH_MAX ++#else ++#define TMPSIZ 1024 /* bytes to allocate for tmpnam */ ++#endif + #endif + + #define MAGIC_VALUE ((XawTextPosition) -1) /* Magic value. */ +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c.debian 2000-11-27 14:19:36.000000000 +0100 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c 2008-10-06 11:42:13.000000000 +0200 +@@ -56,6 +56,8 @@ SOFTWARE. + #include + #include + ++#include "XawAlloc.h" ++ + #define offset(field) XtOffsetOf(SimpleRec, simple.field) + + static XtResource resources[] = { +@@ -148,11 +150,17 @@ static void ClassPartInitialize(class) + + if (c->simple_class.change_sensitive == NULL) { + char buf[BUFSIZ]; +- +- (void) sprintf(buf, +- "%s Widget: The Simple Widget class method 'change_sensitive' is undefined.\nA function must be defined or inherited.", +- c->core_class.class_name); +- XtWarning(buf); ++ char *pbuf; ++ char *msg1 = " Widget: The Simple Widget class method 'change_sensitive' is undefined.\nA function must be defined or inherited."; ++ int len; ++ ++ len = strlen(msg1) + strlen(c->core_class.class_name) + 1; ++ pbuf = XtStackAlloc(len, buf); ++ if (pbuf != NULL) { ++ sprintf(pbuf, "%s%s", c->core_class.class_name, msg1); ++ XtWarning(pbuf); ++ XtStackFree(pbuf, buf); ++ } + c->simple_class.change_sensitive = ChangeSensitive; + } + +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c.debian 2003-02-17 07:45:07.000000000 +0100 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c 2008-10-06 11:42:13.000000000 +0200 +@@ -51,6 +51,8 @@ in this Software without prior written a + #include + #include + ++#include "XawAlloc.h" ++ + #define streq(a, b) ( strcmp((a), (b)) == 0 ) + + #define offset(field) XtOffsetOf(SimpleMenuRec, simple_menu.field) +@@ -755,9 +757,17 @@ Cardinal * num_params; + + if ( (menu = FindMenu(w, params[0])) == NULL) { + char error_buf[BUFSIZ]; +- (void) sprintf(error_buf, "%s '%s'", +- "Xaw - SimpleMenuWidget: could not find menu named: ", params[0]); +- XtAppWarning(XtWidgetToApplicationContext(w), error_buf); ++ char *err1 = "Xaw - SimpleMenuWidget: could not find menu named: "; ++ char *perr; ++ int len; ++ ++ len = strlen(err1) + strlen(params[0]) + 2 + 1; ++ perr = XtStackAlloc(len, error_buf); ++ if (perr == NULL) ++ return; ++ sprintf(perr, "%s'%s'", err1, params[0]); ++ XtAppWarning(XtWidgetToApplicationContext(w), perr); ++ XtStackFree(perr, error_buf); + return; + } + +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c.debian 2003-02-10 18:18:00.000000000 +0100 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c 2008-10-06 11:42:13.000000000 +0200 +@@ -315,7 +315,15 @@ XtIntervalId *id; /* unused */ + if (w->strip_chart.points != NULL) { + w->strip_chart.points[0].x = w->strip_chart.interval + s; + XDrawPoints(XtDisplay(w), XtWindow(w), w->strip_chart.hiGC, +- w->strip_chart.points, w->strip_chart.scale, ++ /* ++ * patch: ++ * ++ * w->strip_chart.points, w->strip_chart.scale, ++ * ++ * this to avoid a subdle bug of extra spurios scan ++ * line in this widget. ++ */ ++ w->strip_chart.points, w->strip_chart.scale - 1, + CoordModePrevious); + } + +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Text.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/Text.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/Text.c.debian 2008-10-06 11:42:13.000000000 +0200 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/Text.c 2008-10-06 11:43:16.000000000 +0200 +@@ -76,6 +76,8 @@ SOFTWARE. + #include /* for isprint() */ + #include + ++#include "XawAlloc.h" ++ + #ifndef MAX_LEN_CT + #define MAX_LEN_CT 6 /* for sequence: ESC $ ( A \xx \xx */ + #endif +@@ -521,6 +523,8 @@ Cardinal *num_args; /* unused */ + TextWidget ctx = (TextWidget) new; + char error_buf[BUFSIZ]; + int s; ++ char *perr; /* frankie */ ++ size_t len; /* frankie */ + + ctx->text.threeD = XtVaCreateWidget("threeD", threeDWidgetClass, new, + XtNx, 0, XtNy, 0, +@@ -569,10 +573,17 @@ Cardinal *num_args; /* unused */ + if (ctx->text.scroll_vert != XawtextScrollNever) + if ( (ctx->text.resize == XawtextResizeHeight) || + (ctx->text.resize == XawtextResizeBoth) ) { +- (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name, +- "Vertical scrolling not allowed with height resize.\n", +- "Vertical scrolling has been DEACTIVATED."); +- XtAppWarning(XtWidgetToApplicationContext(new), error_buf); ++ char *err1 = "Xaw Text Widget "; ++ char *err2 = ":\nVertical scrolling not allowed with height resize.\n"; ++ char *err3 = "Vertical scrolling has been DEACTIVATED."; ++ len = strlen(err1) + strlen(err2) + strlen(err3) + ++ strlen(ctx->core.name) + 1; ++ perr = XtStackAlloc(len, error_buf); ++ if (perr != NULL) { ++ (void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3); ++ XtAppWarning(XtWidgetToApplicationContext(new), perr); ++ XtStackFree(perr, error_buf); ++ } + ctx->text.scroll_vert = XawtextScrollNever; + } + else if (ctx->text.scroll_vert == XawtextScrollAlways) +@@ -580,18 +591,32 @@ Cardinal *num_args; /* unused */ + + if (ctx->text.scroll_horiz != XawtextScrollNever) + if (ctx->text.wrap != XawtextWrapNever) { +- (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name, +- "Horizontal scrolling not allowed with wrapping active.\n", +- "Horizontal scrolling has been DEACTIVATED."); +- XtAppWarning(XtWidgetToApplicationContext(new), error_buf); ++ char *err1 = "Xaw Text Widget "; ++ char *err2 = ":\nHorizontal scrolling not allowed with wrapping active."; ++ char *err3 = "\nHorizontal scrolling has been DEACTIVATED."; ++ len = strlen(err1) + strlen(err2) + strlen(err3) + ++ strlen(ctx->core.name) + 1; ++ perr = XtStackAlloc(len, error_buf); ++ if (perr != NULL) { ++ (void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3); ++ XtAppWarning(XtWidgetToApplicationContext(new), perr); ++ XtStackFree(perr, error_buf); ++ } + ctx->text.scroll_horiz = XawtextScrollNever; + } + else if ( (ctx->text.resize == XawtextResizeWidth) || + (ctx->text.resize == XawtextResizeBoth) ) { +- (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name, +- "Horizontal scrolling not allowed with width resize.\n", +- "Horizontal scrolling has been DEACTIVATED."); +- XtAppWarning(XtWidgetToApplicationContext(new), error_buf); ++ char *err1 = "Xaw Text Widget "; ++ char *err2 = ":\nHorizontal scrolling not allowed with width resize.\n"; ++ char *err3 = "Horizontal scrolling has been DEACTIVATED."; ++ len = strlen(err1) + strlen(err2) + strlen(err3) + ++ strlen(ctx->core.name) + 1; ++ perr = XtStackAlloc(len, error_buf); ++ if (perr != NULL) { ++ (void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3); ++ XtAppWarning(XtWidgetToApplicationContext(new), perr); ++ XtStackFree(perr, error_buf); ++ } + ctx->text.scroll_horiz = XawtextScrollNever; + } + else if (ctx->text.scroll_horiz == XawtextScrollAlways) +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c.debian 2000-11-27 14:19:36.000000000 +0100 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c 2008-10-06 11:42:13.000000000 +0200 +@@ -66,6 +66,8 @@ in this Software without prior written a + #include /* for O_RDONLY */ + #include + ++#include "XawAlloc.h" ++ + #ifdef X_NOT_STDC_ENV + extern int errno; + #endif +@@ -809,6 +811,8 @@ DoSearch(search) + struct SearchAndReplace * search; + { + char msg[BUFSIZ]; ++ char *pmsg; ++ int len; + Widget tw = XtParent(search->search_popup); + XawTextPosition pos; + XawTextScanDirection dir; +@@ -835,9 +839,20 @@ struct SearchAndReplace * search; + /* The Raw string in find.ptr may be WC I can't use here, so I re - call + GetString to get a tame version. */ + +- if (pos == XawTextSearchError) +- (void) sprintf( msg, "Could not find string ``%s''.", GetString( search->search_text ) ); +- else { ++ if (pos == XawTextSearchError) { ++ char *msg1 = "Could not find string ``"; ++ char *msg2 = "''."; ++ len = strlen(msg1) + strlen(msg2) + ++ strlen(GetString( search->search_text )) + 1; ++ pmsg = XtStackAlloc(len, msg); ++ if (pmsg != NULL) { ++ (void) sprintf( pmsg, "%s%s%s", msg1, GetString( search->search_text ), ++ msg2); ++ } else { ++ pmsg = msg; ++ (void) sprintf( pmsg, "Could not find string"); ++ } ++ } else { + if (dir == XawsdRight) + XawTextSetInsertionPoint( tw, pos + text.length); + else +@@ -849,7 +864,8 @@ struct SearchAndReplace * search; + } + + XawTextUnsetSelection(tw); +- SetSearchLabels(search, msg, "", TRUE); ++ SetSearchLabels(search, pmsg, "", TRUE); ++ XtStackFree(pmsg, msg); + return(FALSE); + } + +@@ -982,13 +998,26 @@ Boolean once_only, show_current; + if ( (new_pos == XawTextSearchError) ) { + if (count == 0) { + char msg[BUFSIZ]; ++ char *pmsg; ++ int len; ++ char *msg1 = "*** Error: Could not find string ``"; ++ char *msg2 = "''. ***"; + + /* The Raw string in find.ptr may be WC I can't use here, + so I call GetString to get a tame version.*/ + +- (void) sprintf( msg, "%s %s %s", "*** Error: Could not find string ``", +- GetString( search->search_text ), "''. ***"); +- SetSearchLabels(search, msg, "", TRUE); ++ len = strlen(msg1) + strlen(msg2) + ++ strlen(GetString( search->search_text )) + 1; ++ pmsg = XtStackAlloc(len, msg); ++ if (pmsg != NULL) { ++ (void) sprintf( pmsg, "%s%s%s", msg1, ++ GetString( search->search_text ), msg2); ++ } else { ++ pmsg = msg; ++ (void) sprintf(pmsg, "*** Error: Could not find string ***"); ++ } ++ SetSearchLabels(search, pmsg, "", TRUE); ++ XtStackFree(pmsg, msg); + return(FALSE); + } + else +@@ -1011,9 +1040,22 @@ Boolean once_only, show_current; + + if (XawTextReplace(tw, pos, end_pos, &replace) != XawEditDone) { + char msg[BUFSIZ]; +- +- (void) sprintf( msg, "'%s' with '%s'. ***", find.ptr, replace.ptr); ++ char *pmsg; ++ int len; ++ char *msg1 = "' with '"; ++ char *msg2 = "'. ***"; ++ ++ len = 1 + strlen(msg1) + strlen(msg2) + strlen(find.ptr) + ++ strlen(replace.ptr) + 1; ++ pmsg = XtStackAlloc(len, msg); ++ if (pmsg != NULL) { ++ (void) sprintf( pmsg, "`%s%s%s%s", find.ptr, msg1, replace.ptr, msg2); ++ } else { ++ pmsg = msg; ++ (void) sprintf(pmsg, "string ***"); ++ } + SetSearchLabels(search, "*** Error while replacing", msg, TRUE); ++ XtStackFree(pmsg, msg); + return(FALSE); + } + +@@ -1164,13 +1206,20 @@ XtArgVal value; + { + Widget temp_widget; + char buf[BUFSIZ]; ++ char *pbuf; ++ int len; + +- (void) sprintf(buf, "%s.%s", FORM_NAME, name); ++ len = strlen(FORM_NAME) + strlen(name) + 2; ++ pbuf = XtStackAlloc(len, buf); ++ if (pbuf == NULL) return FALSE; ++ (void) sprintf(pbuf, "%s.%s", FORM_NAME, name); + +- if ( (temp_widget = XtNameToWidget(shell, buf)) != NULL) { ++ if ( (temp_widget = XtNameToWidget(shell, pbuf)) != NULL) { + SetResource(temp_widget, res_name, value); ++ XtStackFree(pbuf, buf); + return(TRUE); + } ++ XtStackFree(pbuf, buf); + return(FALSE); + } + +diff -up /dev/null Xaw3d-1.5E/xc/lib/Xaw3d/XawAlloc.h +--- /dev/null 2008-10-06 08:37:32.418005377 +0200 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/XawAlloc.h 2008-10-06 11:42:13.000000000 +0200 +@@ -0,0 +1,10 @@ ++/* $XFree86: xc/lib/Xaw/XawAlloc.h,v 1.1.2.1 1998/05/16 09:05:23 dawes Exp $ */ ++ ++#define XtStackAlloc(size, stack_cache_array) \ ++ ((size) <= sizeof(stack_cache_array) \ ++ ? (XtPointer)(stack_cache_array) \ ++ : XtMalloc((unsigned)(size))) ++ ++#define XtStackFree(pointer, stack_cache_array) \ ++ if ((pointer) != ((XtPointer)(stack_cache_array))) XtFree(pointer); else ++ +--- xaw3d-1.5e/xc/lib/Xaw3d/SmeBSB.c 2003-08-04 17:27:58.000000000 +0200 ++++ xaw3d-1.5e/xc/lib/Xaw3d/SmeBSB.c 2003-08-07 15:02:39.000000000 +0200 +@@ -52,6 +52,8 @@ + #include + #include + ++#include "XawAlloc.h" ++ + /* needed for abs() */ + #ifndef X_NOT_STDC_ENV + #include +@@ -712,6 +714,8 @@ + int x, y; + unsigned int width, height, bw; + char buf[BUFSIZ]; ++ char *pbuf; ++ int len; + + if (is_left) { + width = height = 0; +@@ -720,18 +724,24 @@ + if (!XGetGeometry(XtDisplayOfObject(w), + entry->sme_bsb.left_bitmap, &root, &x, &y, + &width, &height, &bw, &entry->sme_bsb.left_depth)) { +- (void) sprintf(buf, "Xaw SmeBSB Object: %s %s \"%s\".", +- "Could not get Left Bitmap", +- "geometry information for menu entry", +- XtName(w)); +- XtAppError(XtWidgetToApplicationContext(w), buf); ++ char *err1 = "Xaw SmeBSB Object: Could not get Left Bitmap geometry information for menu entry "; ++ len = strlen(err1) + strlen(XtName(w)) + 3 + 1; ++ pbuf = XtStackAlloc(len, buf); ++ if (pbuf == NULL) return; ++ sprintf(pbuf, "%s\"%s\".", err1, XtName(w)); ++ XtAppError(XtWidgetToApplicationContext(w), pbuf); ++ XtStackFree(pbuf, buf); + } + #ifdef NEVER + if (entry->sme_bsb.left_depth != 1) { +- (void) sprintf(buf, "Xaw SmeBSB Object: %s \"%s\" %s.", +- "Left Bitmap of entry", XtName(w), +- "is not one bit deep"); +- XtAppError(XtWidgetToApplicationContext(w), buf); ++ char *err1 = "Xaw SmeBSB Object: Left Bitmap of entry "; ++ char *err2 = " is not one bit deep."; ++ len = strlen(err1) + strlen(err2) + strlen(XtName(w)) + 2 + 1; ++ pbuf = XtStackAlloc(len, buf); ++ if (pbuf == NULL) return; ++ sprintf(pbuf, "%s\"%s\"%s", err1, XtName(w), err2); ++ XtAppError(XtWidgetToApplicationContext(w), pbuf); ++ XtStackFree(pbuf, buf); + } + #endif + } +@@ -745,18 +755,24 @@ + if (!XGetGeometry(XtDisplayOfObject(w), + entry->sme_bsb.right_bitmap, &root, &x, &y, + &width, &height, &bw, &entry->sme_bsb.right_depth)) { +- (void) sprintf(buf, "Xaw SmeBSB Object: %s %s \"%s\".", +- "Could not get Right Bitmap", +- "geometry information for menu entry", +- XtName(w)); +- XtAppError(XtWidgetToApplicationContext(w), buf); ++ char *err1 = "Xaw SmeBSB Object: Could not get Right Bitmap geometry information for menu entry "; ++ len = strlen(err1) + strlen(XtName(w)) + 3 + 1; ++ pbuf = XtStackAlloc(len, buf); ++ if (pbuf == NULL) return; ++ sprintf(pbuf, "%s\"%s\".", err1, XtName(w)); ++ XtAppError(XtWidgetToApplicationContext(w), pbuf); ++ XtStackFree(pbuf, buf); + } + #ifdef NEVER + if (entry->sme_bsb.right_depth != 1) { +- (void) sprintf(buf, "Xaw SmeBSB Object: %s \"%s\" %s.", +- "Right Bitmap of entry", XtName(w), +- "is not one bit deep"); +- XtAppError(XtWidgetToApplicationContext(w), buf); ++ char *err1 = "Xaw SmeBSB Object: Right Bitmap of entry "; ++ char *err2 = " is not one bit deep."; ++ len = strlen(err1) + strlen(err2) + strlen(XtName(w)) + 2 + 1; ++ pbuf = XtStackAlloc(len, buf); ++ if (pbuf == NULL) return; ++ sprintf(pbuf, "%s\"%s\"%s", err1, XtName(w), err2); ++ XtAppError(XtWidgetToApplicationContext(w), pbuf); ++ XtStackFree(pbuf, buf); + } + #endif + } diff --git a/source/x/xaw3d/Xaw3d-1.5E.diff b/source/x/xaw3d/Xaw3d-1.5E.diff new file mode 100644 index 000000000..e476b5c46 --- /dev/null +++ b/source/x/xaw3d/Xaw3d-1.5E.diff @@ -0,0 +1,30 @@ +diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c.orig Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c +--- Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c.orig 2003-02-10 18:22:26.000000000 +0100 ++++ Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c 2008-10-06 10:07:46.000000000 +0200 +@@ -1087,7 +1087,11 @@ static void NotifyThumb (w, event, param + Cardinal *num_params; /* unused */ + { + register ScrollbarWidget sbw = (ScrollbarWidget) w; +- float top = sbw->scrollbar.top; ++ union { ++ XtPointer pt; ++ float top; ++ } foo; ++ foo.top = sbw->scrollbar.top; + + #ifndef XAW_ARROW_SCROLLBARS + if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */ +@@ -1116,10 +1120,10 @@ static void NotifyThumb (w, event, param + /* Removed the dependancy on scrollbar arrows. Xterm as distributed in + X11R6.6 by The XFree86 Project wants this correction, with or without + the arrows. */ +- top += 0.0001; ++ foo.top += 0.0001; + /* #endif */ +- XtCallCallbacks (w, XtNthumbProc, *(XtPointer*)&top); +- XtCallCallbacks (w, XtNjumpProc, (XtPointer)&top); ++ XtCallCallbacks (w, XtNthumbProc, foo.pt); ++ XtCallCallbacks (w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top); + } + + diff --git a/source/x/xaw3d/slack-desc b/source/x/xaw3d/slack-desc new file mode 100644 index 000000000..75ce0e1d5 --- /dev/null +++ b/source/x/xaw3d/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xaw3d: xaw3d (3D version of libXaw) +xaw3d: +xaw3d: Xaw3d is a set of 3D widgets by Kaleb S. Keithley based on the Athena +xaw3d: Widget set. The Three-D Athena may be used as a replacement for the +xaw3d: Athena (Xaw) Widget set -- you may relink almost any Athena Widget +xaw3d: based application and obtain a three dimensional appearance on some of +xaw3d: the widgets. You can also replace your shared libXaw with libXaw3d +xaw3d: and obtain the three dimensional appearance without even relinking. +xaw3d: +xaw3d: +xaw3d: diff --git a/source/x/xaw3d/xaw3d.SlackBuild b/source/x/xaw3d/xaw3d.SlackBuild new file mode 100755 index 000000000..2991fe7ad --- /dev/null +++ b/source/x/xaw3d/xaw3d.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-1.5E} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xaw3d +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $TMP/xc +tar xvf $CWD/Xaw3d-$VERSION.tar.gz || exit 1 +( cd xc ; zcat $CWD/Xaw3d-$VERSION.diff.gz | patch -p2 --verbose --backup --suffix=.orig ) +( cd xc ; zcat $CWD/Xaw3d-1.5-debian-fixes.diff.gz | patch -p2 --verbose --backup --suffix=.orig ) +cd xc +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +cd lib/Xaw3d +ln -s .. X11 +xmkmf +make CCOPTIONS="$SLKCFLAGS -I." || exit 1 +strip --strip-unneeded libXaw3d.so.8.0 +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} +cat libXaw3d.so.8.0 > $PKG/usr/lib${LIBDIRSUFFIX}/libXaw3d.so.8.0 +chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libXaw3d.so.8.0 +# Make compat symlinks: +( cd $PKG/usr/lib${LIBDIRSUFFIX} + ln -sf libXaw3d.so.8.0 libXaw3d.so.8 + ln -sf libXaw3d.so.8 libXaw3d.so + ln -sf libXaw3d.so.8 libXaw3d.so.7 + ln -sf libXaw3d.so.7 libXaw3d.so.6 +) +mkdir -p $PKG/usr/doc/Xaw3d-$VERSION +cp -a README.XAW3D $PKG/usr/doc/Xaw3d-$VERSION +chmod 644 $PKG/usr/doc/Xaw3d-$VERSION/README.XAW3D +mkdir -p $PKG/usr/include/X11/Xaw3d +for header in AllWidgets.h AsciiSink.h AsciiSinkP.h AsciiSrc.h AsciiSrcP.h \ +AsciiText.h AsciiTextP.h Box.h BoxP.h Cardinals.h Command.h CommandP.h \ +Dialog.h DialogP.h Form.h FormP.h Grip.h GripP.h Label.h LabelP.h Layout.h \ +LayoutP.h List.h ListP.h MenuButton.h MenuButtoP.h MultiSrc.h MultiSrcP.h \ +MultiSink.h MultiSinkP.h Paned.h PanedP.h Panner.h PannerP.h Porthole.h \ +PortholeP.h Repeater.h RepeaterP.h Reports.h Scrollbar.h ScrollbarP.h \ +Simple.h SimpleP.h SimpleMenu.h SimpleMenP.h Sme.h SmeP.h SmeBSB.h SmeBSBP.h \ +SmeLine.h SmeLineP.h SmeThreeD.h SmeThreeDP.h StripChart.h StripCharP.h \ +Template.c Template.h TemplateP.h Text.h TextP.h TextSink.h TextSinkP.h \ +TextSrc.h TextSrcP.h ThreeD.h ThreeDP.h Tip.h TipP.h Toggle.h ToggleP.h Tree.h \ +TreeP.h VendorEP.h Viewport.h ViewportP.h Xaw3dP.h XawImP.h XawInit.h ; do + cp -a $header $PKG/usr/include/X11/Xaw3d/$header + chmod 644 $PKG/usr/include/X11/Xaw3d/$header +done + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c y $TMP/xaw3d-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/x/xdg-utils/doinst.sh b/source/x/xdg-utils/doinst.sh new file mode 100644 index 000000000..4d72a9617 --- /dev/null +++ b/source/x/xdg-utils/doinst.sh @@ -0,0 +1,100 @@ +#!/bin/sh +# Regarding xdg-open in /etc/mailcap: +# +# It turns out that xdg-open is not very smart about what it +# passes off control to, leading to security problems where (for +# example) a file could be provided on a web site as a PDF, but +# rather than send it to a PDF viewer, xdg-open sends it to kfmclient +# which uses a whole different set of criteria to determine what sort +# of file it is. It's trivial to make something that's detected as +# a PDF at first, but then is executed as a .desktop file later, +# resulting in the execution of arbitrary code as the user. +# +# This is not acceptable, and we see no way to fix it as long as +# xdg-open passes off the resolution of the file type (again) to +# something else. In light of the potential security risks, we +# will turn off the use of xdg-open if it appears to have been +# added by a previous version of the xdg-utils package. +# +# Vulnerability code: CVE-2009-0068 + +# First, we will detect an automatically modified mailcap by +# looking for the comment "# Sample xdg-open entries:" + +if [ -r etc/mailcap ]; then + if grep -q "^# Sample xdg-open entries:$" etc/mailcap ; then + + COOKIE=$(usr/bin/mcookie) + if [ -z $COOKIE ]; then + exit 1 + fi + + # First, add a space to the end of the comment used to detect this + # junk so that we won't detect it again (in case the user decides + # to enable this themselves later on -- their call). Add a warning + # about this type of xdg-open use being insecure. Finally, comment + # out any lines like this. + + echo "# Sample xdg-open entries: " > tmp/mailcap-$COOKIE + cat << EOF >> tmp/mailcap-$COOKIE +# +# NOTE: Using xdg-open in /etc/mailcap in this way has been +# shown to be insecure and is not recommended (CVE-2009-0068)! +# A remote attacker can easily make a filetype such as a +# .desktop script appear to xdg-open as a PDF file causing its +# arbitrary contents to be executed. Consider these to be +# examples of what NOT to do. The xdg-utils package no longer +# adds any lines such as these to /etc/mailcap. +# +EOF + cat etc/mailcap \ + | grep -v "# Sample xdg-open entries:" \ + | sed -e 's/^audio\/\*; \/usr\/bin\/xdg-open %s/#audio\/\*; \/usr\/bin\/xdg-open %s/g' \ + | sed -e 's/^image\/\*; \/usr\/bin\/xdg-open %s/#image\/\*; \/usr\/bin\/xdg-open %s/g' \ + | sed -e 's/^application\/msword; \/usr\/bin\/xdg-open %s/#application\/msword; \/usr\/bin\/xdg-open %s/g' \ + | sed -e 's/^application\/pdf; \/usr\/bin\/xdg-open %s/#application\/pdf; \/usr\/bin\/xdg-open %s/g' \ + | sed -e 's/^application\/postscript ; \/usr\/bin\/xdg-open %s/#application\/postscript ; \/usr\/bin\/xdg-open %s/g' \ + | sed -e 's/^text\/html; \/usr\/bin\/xdg-open %s ; copiousoutput/#text\/html; \/usr\/bin\/xdg-open %s ; copiousoutput/g' >> tmp/mailcap-$COOKIE + + cat tmp/mailcap-$COOKIE > etc/mailcap + rm -f tmp/mailcap-$COOKIE + + fi +fi + +## BEGIN (HERE IS WHAT CAUSED THIS MESS): + +## Add some reasonable default values for xdg-open to /etc/mailcap, +## since this is where many programs look for this information: +# +#if ! grep -q '# Sample xdg-open entries:' etc/mailcap 1> /dev/null 2> /dev/null ; then +# echo "# Sample xdg-open entries:" >> etc/mailcap +# echo >> etc/mailcap +#fi +#if ! grep -q 'audio/' etc/mailcap ; then +# echo 'audio/*; /usr/bin/xdg-open %s' >> etc/mailcap +# echo >> etc/mailcap +#fi +#if ! grep -q 'image/' etc/mailcap ; then +# echo 'image/*; /usr/bin/xdg-open %s' >> etc/mailcap +# echo >> etc/mailcap +#fi +#if ! grep -q 'application/msword' etc/mailcap ; then +# echo 'application/msword; /usr/bin/xdg-open %s' >> etc/mailcap +# echo >> etc/mailcap +#fi +#if ! grep -q 'application/pdf' etc/mailcap ; then +# echo 'application/pdf; /usr/bin/xdg-open %s' >> etc/mailcap +# echo >> etc/mailcap +#fi +#if ! grep -q 'application/postscript' etc/mailcap ; then +# echo 'application/postscript ; /usr/bin/xdg-open %s' >> etc/mailcap +# echo >> etc/mailcap +#fi +#if ! grep -q '#text/html' etc/mailcap ; then +# echo '#text/html; /usr/bin/xdg-open %s ; copiousoutput' >> etc/mailcap +# echo >> etc/mailcap +#fi + +## END + diff --git a/source/x/xdg-utils/slack-desc b/source/x/xdg-utils/slack-desc new file mode 100644 index 000000000..ef97cc6d6 --- /dev/null +++ b/source/x/xdg-utils/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xdg-utils: xdg-utils (command line tools that assist applications) +xdg-utils: +xdg-utils: Xdg-utils is a set of command line tools that assist applications +xdg-utils: with a variety of desktop integration tasks. About half of the +xdg-utils: tools focus on tasks commonly required during the installation of +xdg-utils: a desktop application and the other half focuses on integration +xdg-utils: with the desktop environment while the application is running. +xdg-utils: +xdg-utils: Homepage: http://portland.freedesktop.org/wiki/ +xdg-utils: +xdg-utils: diff --git a/source/x/xdg-utils/xdg-utils-cvs_checkout.sh b/source/x/xdg-utils/xdg-utils-cvs_checkout.sh new file mode 100755 index 000000000..74d7ba0e6 --- /dev/null +++ b/source/x/xdg-utils/xdg-utils-cvs_checkout.sh @@ -0,0 +1,17 @@ +#!/bin/bash + + +MODULE=$(basename $0 -cvs_checkout.sh) +DATE=$(date +%Y%m%d) + +set -x + +rm -rf $MODULE + +cvs -z3 -d:pserver:anonymous@cvs.freedesktop.org:/cvs/portland checkout -P portland/$MODULE +pushd portland +find . -name CVS -exec rm -rf "{}" \; 2> /dev/null +tar cjf ../$MODULE-${DATE}cvs.tar.bz2 $MODULE +popd + +rm -rf portland diff --git a/source/x/xdg-utils/xdg-utils.SlackBuild b/source/x/xdg-utils/xdg-utils.SlackBuild new file mode 100755 index 000000000..dcf1c5c2d --- /dev/null +++ b/source/x/xdg-utils/xdg-utils.SlackBuild @@ -0,0 +1,77 @@ +#!/bin/sh + +# Slackware build script for xdg-utils +# Written by Erik Hanson erik@slackbuilds.org +# Modified for CVS version by Patrick Volkerding + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=xdg-utils +VERSION=1.0.2 +CVS=20090202cvs +ARCH=noarch +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$CVS.tar.bz2 || exit 1 +cd $PRGNAM || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +gzip -9 $PKG/usr/man/man1/* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + LICENSE README RELEASE_NOTES TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/x/xdg-utils/xdg-utils.info b/source/x/xdg-utils/xdg-utils.info new file mode 100644 index 000000000..6b5eaf5fa --- /dev/null +++ b/source/x/xdg-utils/xdg-utils.info @@ -0,0 +1,2 @@ +HOMEPAGE="http://portland.freedesktop.org/wiki/" +DOWNLOAD="http://portland.freedesktop.org/download/xdg-utils-1.0.2.tgz" diff --git a/source/x/xterm/slack-desc b/source/x/xterm/slack-desc new file mode 100644 index 000000000..d5bea31df --- /dev/null +++ b/source/x/xterm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xterm: xterm (terminal emulator for X) +xterm: +xterm: The xterm program is a terminal emulator for the X Window System. +xterm: It provides DEC VT102/VT220 (VTxxx) and Tektronix 4014 compatible +xterm: terminals for programs that cannot use the window system directly. +xterm: +xterm: +xterm: +xterm: +xterm: +xterm: diff --git a/source/x/xterm/xterm.SlackBuild b/source/x/xterm/xterm.SlackBuild new file mode 100755 index 000000000..8f1607cbb --- /dev/null +++ b/source/x/xterm/xterm.SlackBuild @@ -0,0 +1,123 @@ +#!/bin/sh +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=xterm +VERSION=${VERSION:-243} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION + +if [ -d $CWD/patches ]; then + for file in $CWD/patches/* ; do + if [ -f $file ]; then + zcat $file | patch -p1 || exit 1 + fi + done +fi + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --with-app-defaults=/etc/X11/app-defaults \ + --with-utempter \ + --enable-luit \ + --enable-wide-chars \ + --enable-88-color \ + --enable-256-color \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AAA_README_VMS.txt INSTALL MANIFEST README* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/MPlayer/MPlayer.SlackBuild b/source/xap/MPlayer/MPlayer.SlackBuild new file mode 100755 index 000000000..20b947417 --- /dev/null +++ b/source/xap/MPlayer/MPlayer.SlackBuild @@ -0,0 +1,407 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Eric Hameleers, Eindhoven, NL +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: MPlayer +# Descr: a movie player for LINUX +# URL: http://www.mplayerhq.hu/ +# ----------------------------------------------------------------------------- + +PRGNAM=MPlayer +VERSION=${VERSION:-r29390} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +TAG=${TAG:-} + +DOCS="AUTHORS Changelog Copyright LICENSE README DOCS/HTML-single DOCS/tech" + +DEFSKIN=${DEFSKIN:-"Blue"} # Download more skins at the following url: +SKINVER=${SKINVER:-"1.7"} # http://www.mplayerhq.hu/design7/dload.html + +# Available languages: all bg cs de dk el en es fr hu it ja +# ko mk nb nl pl ro ru sk sv tr uk pt_BR zh_CN zh_TW +LANGUAGES="en nl fr de es" # The default is to just add "en" documentation + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" + # --enable-runtime-cpudetection is supported only for x86, x86_64, and PPC + EXTRACONFIGUREOPTIONS="--enable-runtime-cpudetection" +elif [ "$ARCH" = "i486" -o \ + "$ARCH" = "i586" -o \ + "$ARCH" = "i686" ]; then + LIBDIRSUFFIX="" + EXTRACONFIGUREOPTIONS="--enable-runtime-cpudetection" +else + LIBDIRSUFFIX="" + EXTRACONFIGUREOPTIONS="" +fi + +CODECSDIR=/usr/lib${LIBDIRSUFFIX}/codecs # Where the WIN32 codecs are expected for instance + +# --------------------------------------------------------------------------- +# -- PATENT ALERT! -- +# MPlayer source contains an internal copy of 'libdvdcss' for reading DVD's. +# This is considered illegal software in some countries. +# Also, MPLayer can be built with MP3 (lame) and AMR audio encoders +# (needed for FLV and .3GP videos) but these libraries are 'contaminated' +# with patents from Fraunhofer and GGP. +# Also, the AAC encoder has patent issues. +# The Slackware package is built with "USE_PATENTS=NO" i.e. without using +# the lame mp3, faac, AMR and dvdcss libraries. +# This also means that this creates a version of MPlayer that is unable +# to play encrypted DVD's (which is most DVD's on the market). If it is +# allowed in your country to use libdvdcss, this is not a big problem though. +# Install a libdvdcss package and it will be picked up automatically by +# MPlayer's internal libdvdread library, so that MPlayer will again be able +# to play encrypted DVD's. +# +# If you have licenses to use the code, and/or the patents do not apply in +# your region, and you take all legal responsibility, you may wish to build +# MPlayer with the option USE_PATENTS=YES which will include potentially +# patent-encumbered code. +# --------------------------------------------------------------------------- +USE_PATENTS=${USE_PATENTS:-"NO"} + +# MPlayer will try to use one of the TrueType fonts present on the target +# system for it's On Screen Display (OSD) font. +# Slackware 11.0 ships with the Vera and DejaVu fonts, you may want to add +# more fonts to this list. The first font found will be used by creating a +# symbolic link "/usr/share/mplayer/subfont.ttf" to it. +# The use of bitmapped fonts is considered deprecated, but you can still use +# those if you want. Read http://www.mplayerhq.hu/DOCS/HTML/en/fonts-osd.html +# if you want to know more about OSD font configuration. +OSDFONTS="LiberationSans-Regular.ttf \ + Arialuni.ttf arial.ttf \ + DejaVuSans.ttf Vera.ttf" + +# We will work with a stripped-down source tarball, not containing libdvdcss: +[ "$USE_PATENTS" != "YES" ] && EXTRA="_nolibdvdcss" || EXTRA="" + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +SOURCE[0]="$SRCDIR/${PRGNAM}${EXTRA}-${VERSION}.tar.xz" +SRCURL[0]="" + +# The default skin to use (we need to add at least one) +SOURCE[1]="$SRCDIR/${DEFSKIN}-${SKINVER}.tar.bz2" +SRCURL[1]="http://www.mplayerhq.hu/MPlayer/skins/${DEFSKIN}-${SKINVER}.tar.bz2" + +# Use the src_checkout() function if no downloadable tarball exists. +# This function checks out sources from SVN/CVS and creates a tarball of them. +src_checkout() { + # Param #1 : index in the SOURCE[] array. + # Param #2 : full path to where SOURCE[$1] tarball should be created. + # Determine the tarball extension: + PEXT=$(echo "${2}" | sed -r -e 's/.*[^.].(tar.xz|tar.gz|tar.bz2|tgz).*/\1/') + case "$PEXT" in + "tar.xz") TARCOMP="J" ;; + "tar.gz") TARCOMP="z" ;; + "tgz") TARCOMP="z" ;; + "tar.bz2") TARCOMP="j" ;; + *) echo "Archive can only have extension 'tar.xz', '.tar.gz' '.tar.bz2' or '.tgz'" ; exit 1 ;; + esac + case ${1} in + 0) # mplayer + if [ "$(echo ${VERSION}|cut -c1)" == 'r' ]; then # revision instead of date + REV=$(echo ${VERSION} | cut -c2-) + else + REV="{${VERSION}}" + fi + mkdir MPlayer-${VERSION} \ + && cd MPlayer-${VERSION} \ + && svn checkout --revision $REV svn://svn.mplayerhq.hu/mplayer/trunk . \ + && find . -type d -name '.svn' -depth | xargs rm -rf \ + && ([ "$USE_PATENTS" != "YES" ] && rm -rf libdvdcss || true) \ + && chown -R root:root . \ + && cd .. \ + && tar -${TARCOMP}cf ${2} MPlayer-${VERSION} + rm -rf MPlayer-${VERSION} + ;; + *) # Do nothing + ;; + esac +} + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +# Create working directories: +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # erase old package's contents +mkdir -p $OUTPUT # place for the package to be saved + +# Source file availability: +for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do + if ! [ -f ${SOURCE[$i]} ]; then + echo "Source '$(basename ${SOURCE[$i]})' not available yet..." + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE[$i]="$OUTPUT/$(basename ${SOURCE[$i]})" + if ! [ "x${SRCURL[$i]}" == "x" ]; then + echo "Will download file to $(dirname $SOURCE[$i])" + wget -nv -T 20 -O "${SOURCE[$i]}" "${SRCURL[$i]}" || true + if [ $? -ne 0 -o ! -s "${SOURCE[$i]}" ]; then + echo "Downloading '$(basename ${SOURCE[$i]})' failed.. aborting the build." + mv -f "${SOURCE[$i]}" "${SOURCE[$i]}".FAIL + exit 1 + fi + else + # Try if we have a SVN/CVS download routine for ${SOURCE[$i]} + echo "Will checkout sources to $(dirname $SOURCE[$i])" + src_checkout $i "${SOURCE[$i]}" 2>&1 > $OUTPUT/checkout-$(basename ${SOURCE[$i]}).log + fi + if [ ! -f "${SOURCE[$i]}" -o ! -s "${SOURCE[$i]}" ]; then + echo "File '$(basename ${SOURCE[$i]})' not available.. aborting the build." + exit 1 + fi + fi +done + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +# Warn about libdvdread requirement: +if [ "$USE_PATENTS" != "YES" ]; then + cat <<"EOT" +** +** Removing internal DeCSS library. +** If you want to play encrypted DVD's you need to install libdvdcss separately. +** You take full legal responsibility for any use of DeCSS. We neither supply +** DeCSS code nor endorse any illegal use of it. +** +** If you are unaffected by patent concerns because you hold the required +** licenses and permission to use the patented code, or reside in a +** location where this is not a concern, and wish to include the patented +** and restricted code (you take all legal responsibility for doing so), +** then edit this SlackBuild script and change the line: +** USE_PATENTS=${USE_PATENTS:-"NO"} +** to: +** USE_PATENTS="YES" +** +EOT + sleep 5 +fi + +cd $TMP/tmp-$PRGNAM +echo "Extracting the source archive(s) for $PRGNAM..." +tar -xvf ${SOURCE[0]} +[ "$USE_PATENTS" != "YES" ] && rm -rf libdvdcss +chown -R root:root * +chmod -R u+w,go+r-w,a-s * +cd ${PRGNAM}-${VERSION} + +# Determine what X we're running (the modular X returns the prefix +# in the next command, while older versions stay silent): +XPREF=$(pkg-config --variable=prefix x11) || true +[ "$XPREF" == "" ] && XPREF='/usr/X11R6' + +# Remove support for patent encumbered and possibly illegal code: +if [ "$USE_PATENTS" != "YES" ]; then + DO_PATENTED="--disable-libdvdcss-internal \ + --disable-mp3lame --disable-mp3lame-lavc \ + --disable-faac --disable-faac-lavc \ + --disable-libamr_nb --disable-libamr_wb" +else + DO_PATENTED="" +fi + +echo Building ... +# MPlayer wants to automatically determine compiler flags, +# so we don't provide CFLAGS: +./configure --prefix=/usr \ + --mandir=/usr/man \ + --confdir=/etc/mplayer \ + --enable-gui \ + --enable-menu \ + --enable-largefiles \ + --disable-arts \ + --codecsdir=${CODECSDIR} \ + --win32codecsdir=${CODECSDIR} \ + --realcodecsdir=${CODECSDIR} \ + --language="${LANGUAGES}" \ + ${EXTRACONFIGUREOPTIONS} \ + ${DO_PATENTED} \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log +# So that MPlayer does not report "UNKNOWN" as it's version: +echo $VERSION > VERSION +make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log + +# Build the html documentation (not all languages are available): +( cd DOCS/xml + for i in $(echo $LANGUAGES | tr , ' ') ; do + [ -d $i ] && make html-single-$i ; + done +) + +# Prepare the configfile: +mkdir -p $PKG/etc/mplayer +cp etc/example.conf $PKG/etc/mplayer/mplayer.conf.new + +# Install our default skin: +cd $PKG/usr/share/mplayer/skins +tar -xvf ${SOURCE[1]} +chown -R root:root * +chmod -R u+w,go+r-w,a-s * +ln -s ${DEFSKIN} default +cd - + +# Add this to the doinst.sh: +! [ -d $PKG/install ] && mkdir -p $PKG/install +cat <> $PKG/install/doinst.sh +# Handle the incoming configuration files: +config() { + for infile in \$1; do + NEW="\$infile" + OLD="\`dirname \$NEW\`/\`basename \$NEW .new\`" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\`cat \$OLD | md5sum\`" = "\`cat \$NEW | md5sum\`" ]; then + # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} + +# Installing a bitmap font is considered deprecated; use a TTF font instead. +# We try to link to an installed TTF font at install time. +# Configure a default TrueType font to use for the OSD : +if [ ! -f usr/share/mplayer/subfont.ttf ]; then + for font in ${OSDFONTS}; do + if [ -f .${XPREF}/lib${LIBDIRSUFFIX}/X11/fonts/TTF/\${font} ]; then + ( cd usr/share/mplayer/ + ln -sf ${XPREF}/lib${LIBDIRSUFFIX}/X11/fonts/TTF/\${font} subfont.ttf + ) + break + fi + done +fi + +# Prepare the new configuration file +config etc/mplayer/mplayer.conf.new + +if [ -x /usr/bin/update-desktop-database ]; then + chroot . /usr/bin/update-desktop-database -q usr/share/applications +fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x usr/bin/gtk-update-icon-cache ]; then + chroot . /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi + +EOINS + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true +cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +mv $PKG/usr/doc/$PRGNAM-$VERSION/HTML-single $PKG/usr/doc/$PRGNAM-$VERSION/html +# Save a sample of all configuration files: +for i in etc/*.conf ; do + cp $i $PKG/usr/doc/$PRGNAM-$VERSION/$(basename $i)-sample +done +# Save a transcript of all configured options for this specific build: +if [ -n $OUTPUT/configure-${PRGNAM}.log ]; then + cat $OUTPUT/configure-${PRGNAM}.log \ + | sed -n "/^Config files successfully generated/,/^'config.h' and 'config.mak' contain your configuration options./p" \ + > $PKG/usr/doc/$PRGNAM-$VERSION/${PRGNAM}.configuration +fi +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +# Compress the man page(s): +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +( find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc +if [ -f $SRCDIR/doinst.sh ]; then + cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh +fi + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt + +# Warn about libdvdcss requirement (again): +if [ "$USE_PATENTS" != "YES" ]; then + cat <<"EOT" +** +** Internal DECSS library was not built. +** If you want to play encrypted DVD's you need to install libdvdcss separately. +** You take full legal responsibility for any use of DeCSS. We neither supply +** DeCSS code nor endorse any illegal use of it. +** +** If you are unaffected by patent concerns because you hold the required +** licenses and permission to use the patented code, or reside in a +** location where this is not a concern, and wish to include the patented +** and restricted code (you take all legal responsibility for doing so), +** then edit this SlackBuild script and change the line: +** USE_PATENTS=${USE_PATENTS:-"NO"} +** to: +** USE_PATENTS="YES" +** +EOT + +fi + diff --git a/source/xap/MPlayer/slack-desc b/source/xap/MPlayer/slack-desc new file mode 100644 index 000000000..a73feb270 --- /dev/null +++ b/source/xap/MPlayer/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +MPlayer: MPlayer (media player) +MPlayer: +MPlayer: MPlayer is a movie player. It plays most MPEG/VOB, AVI, Ogg/OGM, +MPlayer: VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT, NuppelVideo, +MPlayer: FLI, YUV4MPEG, FILM, RoQ, PVA files, supported by many native, XAnim, +MPlayer: and Win32 DLL codecs. You can watch VideoCD, SVCD, DVD, 3ivx, +MPlayer: DivX 3/4/5, WMV and even H.264 movies. +MPlayer: +MPlayer: Homepage for MPlayer is http://www.mplayerhq.hu/ +MPlayer: +MPlayer: diff --git a/source/xap/audacious-plugins/amidi-plug.fix-drct.diff b/source/xap/audacious-plugins/amidi-plug.fix-drct.diff new file mode 100644 index 000000000..432b955d7 --- /dev/null +++ b/source/xap/audacious-plugins/amidi-plug.fix-drct.diff @@ -0,0 +1,11 @@ +diff -ur ./src/amidi-plug/i_configure.c ../audacious-plugins-1.5.1/src/amidi-plug/i_configure.c +--- ./src/amidi-plug/i_configure.c 2008-05-24 00:44:19.000000000 +0200 ++++ ./src/amidi-plug/i_configure.c 2008-11-13 15:08:57.000000000 +0100 +@@ -28,6 +28,7 @@ + #include "i_configure-fluidsynth.h" + #include "i_configure-dummy.h" + #include "i_utils.h" ++#include + #include + + diff --git a/source/xap/audacious-plugins/audacious-plugins.SlackBuild b/source/xap/audacious-plugins/audacious-plugins.SlackBuild new file mode 100755 index 000000000..47bc40f9f --- /dev/null +++ b/source/xap/audacious-plugins/audacious-plugins.SlackBuild @@ -0,0 +1,128 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=audacious-plugins +VERSION=${VERSION:-1.5.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ARCHOPTS="--disable-sse2" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ARCHOPTS="--disable-sse2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="64" + ARCHOPTS="" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/audacious-plugins.libmtp8.diff.gz | patch -p1 || exit 1 +zcat $CWD/amidi-plug.fix-drct.diff.gz | patch -p1 || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-chardet \ + --enable-amidiplug \ + --enable-timidity \ + --disable-altivec \ + --program-prefix= \ + --program-suffix= \ + ${ARCHOPTS} \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL Mercurial-Access \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/audacious-plugins/audacious-plugins.libmtp8.diff b/source/xap/audacious-plugins/audacious-plugins.libmtp8.diff new file mode 100644 index 000000000..6c224fa5d --- /dev/null +++ b/source/xap/audacious-plugins/audacious-plugins.libmtp8.diff @@ -0,0 +1,16 @@ +--- ./src/mtp_up/mtp.c.orig 2008-05-23 17:44:20.000000000 -0500 ++++ ./src/mtp_up/mtp.c 2008-09-14 14:28:44.000000000 -0500 +@@ -193,11 +193,12 @@ + g_free(from_path); + g_free(tmp); + parent_id = mtp_device->default_music_folder; ++ gentrack->parent_id = parent_id; + + #if DEBUG + g_print("Uploading track '%s'\n",filename); + #endif +- ret = LIBMTP_Send_Track_From_File(mtp_device, filename , gentrack, NULL , NULL, parent_id); ++ ret = LIBMTP_Send_Track_From_File(mtp_device, filename , gentrack, NULL , NULL); + LIBMTP_destroy_track_t(gentrack); + if (ret == 0) + g_print("Track upload finished!\n"); diff --git a/source/xap/audacious-plugins/slack-desc b/source/xap/audacious-plugins/slack-desc new file mode 100644 index 000000000..2c8227339 --- /dev/null +++ b/source/xap/audacious-plugins/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +audacious-plugins: audacious-plugins (Plugins used by the Audacious media player) +audacious-plugins: +audacious-plugins: This is a collection of plugins for Audacious to support additional +audacious-plugins: media formats. +audacious-plugins: +audacious-plugins: The webpage for Audacious is: http://www.audacious-media-player.org. +audacious-plugins: +audacious-plugins: +audacious-plugins: +audacious-plugins: +audacious-plugins: diff --git a/source/xap/audacious/audacious.SlackBuild b/source/xap/audacious/audacious.SlackBuild new file mode 100755 index 000000000..b18a06700 --- /dev/null +++ b/source/xap/audacious/audacious.SlackBuild @@ -0,0 +1,132 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=audacious +VERSION=${VERSION:-1.5.1} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ARCHOPTS="--disable-sse2" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ARCHOPTS="--disable-sse2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ARCHOPTS="" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Fix command line options handling: +zcat $CWD/audacious.handle_cmd_line_options.diff.gz | patch -p1 || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-ipv6 \ + --enable-chardet \ + --disable-altivec \ + --program-prefix= \ + --program-suffix= \ + ${ARCHOPTS} \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING INSTALL Mercurial-Access NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/audacious/audacious.handle_cmd_line_options.diff b/source/xap/audacious/audacious.handle_cmd_line_options.diff new file mode 100644 index 000000000..6ccb22433 --- /dev/null +++ b/source/xap/audacious/audacious.handle_cmd_line_options.diff @@ -0,0 +1,38 @@ +--- ./src/audacious/main.c.orig 2008-05-23 17:00:34.000000000 -0500 ++++ ./src/audacious/main.c 2009-04-10 17:03:00.000000000 -0500 +@@ -315,7 +315,7 @@ + } + + static void +-handle_cmd_line_options() ++handle_cmd_line_options(gboolean skip) + { + gchar **filenames = options.filenames; + #ifdef USE_DBUS +@@ -430,7 +430,7 @@ + } /* is_running */ + else + #endif +- { /* !is_running */ ++ if (!skip) { /* !is_running */ + if (filenames != NULL) + { + gint pos = 0; +@@ -715,7 +715,7 @@ + + signal_handlers_init(); + +- handle_cmd_line_options(); ++ handle_cmd_line_options(TRUE); + + if (options.headless == FALSE) + { +@@ -735,6 +735,8 @@ + plugin_system_init(); + playlist_system_init(); + ++ handle_cmd_line_options(FALSE); ++ + #ifdef USE_DBUS + init_dbus(); + #endif diff --git a/source/xap/audacious/slack-desc b/source/xap/audacious/slack-desc new file mode 100644 index 000000000..6574e8059 --- /dev/null +++ b/source/xap/audacious/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +audacious: audacious (A relatively powerful media player) +audacious: +audacious: Audacious is a media player, based on Beep Media Player, which is in +audacious: turn based on the X Multimedia System (XMMS). It is used to play +audacious: audio and other kinds of media files. By default Audacious can play +audacious: MPEG audio, Ogg Vorbis, RIFF wav, most module formats, and a few +audacious: other formats. Audacious can be extended through plugins to play a +audacious: number of other audio and video formats. +audacious: +audacious: The webpage for Audacious is: http://www.audacious-media-player.org. +audacious: diff --git a/source/xap/blackbox/blackbox.SlackBuild b/source/xap/blackbox/blackbox.SlackBuild new file mode 100755 index 000000000..4505d06e3 --- /dev/null +++ b/source/xap/blackbox/blackbox.SlackBuild @@ -0,0 +1,143 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=blackbox +VERSION=${VERSION:-0.65.0} +BBVER=${BBVER:-0.8.6} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Thanks for the gcc-4.1.1 patch, Debian. :-) +zcat $CWD/blackbox_0.65.0-5.diff.gz | patch -p1 --verbose || exit 1 + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --enable-shape \ + --enable-slit \ + --enable-interlace \ + --enable-nls \ + --enable-timed-cache \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/etc/X11/xinit +zcat $CWD/xinitrc.blackbox.gz > $PKG/etc/X11/xinit/xinitrc.blackbox +chmod 755 $PKG/etc/X11/xinit/xinitrc.blackbox + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS INSTALL LICENSE README* TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +###################################### +# Compile bbkeys program for blackbox: +cd $TMP +rm -rf bbkeys-${BBVER} +tar xvf $CWD/bbkeys-${BBVER}.tar.gz || exit 1 +cd bbkeys-${BBVER} || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --enable-interlace \ + $ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p /usr/doc/bbkeys-$BBKEYS +cp -a \ + AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README* TODO \ + /usr/doc/bbkeys-$BBKEYS + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/blackbox/blackbox_0.65.0-5.diff b/source/xap/blackbox/blackbox_0.65.0-5.diff new file mode 100644 index 000000000..4b6959d85 --- /dev/null +++ b/source/xap/blackbox/blackbox_0.65.0-5.diff @@ -0,0 +1,12462 @@ +--- blackbox-0.65.0.orig/Makefile.in ++++ blackbox-0.65.0/Makefile.in +@@ -68,6 +68,7 @@ + ORDEREDPSEUDO = @ORDEREDPSEUDO@ + PACKAGE = @PACKAGE@ + SHAPE = @SHAPE@ ++XINERAMA = @XINERAMA@ + TIMEDCACHE = @TIMEDCACHE@ + VERSION = @VERSION@ + gencat_cmd = @gencat_cmd@ +--- blackbox-0.65.0.orig/configure ++++ blackbox-0.65.0/configure +@@ -1,42 +1,325 @@ + #! /bin/sh +- + # Guess values for system-dependent variables and create Makefiles. +-# Generated automatically using autoconf version 2.13 +-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. ++# Generated by GNU Autoconf 2.59. + # ++# Copyright (C) 2003 Free Software Foundation, Inc. + # This configure script is free software; the Free Software Foundation + # gives unlimited permission to copy, distribute and modify it. ++## --------------------- ## ++## M4sh Initialization. ## ++## --------------------- ## ++ ++# Be Bourne compatible ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then ++ set -o posix ++fi ++DUALCASE=1; export DUALCASE # for MKS sh ++ ++# Support unset when possible. ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ as_unset=unset ++else ++ as_unset=false ++fi ++ ++ ++# Work around bugs in pre-3.0 UWIN ksh. ++$as_unset ENV MAIL MAILPATH ++PS1='$ ' ++PS2='> ' ++PS4='+ ' ++ ++# NLS nuisances. ++for as_var in \ ++ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ ++ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ ++ LC_TELEPHONE LC_TIME ++do ++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ eval $as_var=C; export $as_var ++ else ++ $as_unset $as_var ++ fi ++done ++ ++# Required to use basename. ++if expr a : '\(a\)' >/dev/null 2>&1; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then ++ as_basename=basename ++else ++ as_basename=false ++fi ++ ++ ++# Name of the executable. ++as_me=`$as_basename "$0" || ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)$' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X/"$0" | ++ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } ++ /^X\/\(\/\/\)$/{ s//\1/; q; } ++ /^X\/\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ ++ ++# PATH needs CR, and LINENO needs CR and PATH. ++# Avoid depending upon Character Ranges. ++as_cr_letters='abcdefghijklmnopqrstuvwxyz' ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS ++as_cr_digits='0123456789' ++as_cr_alnum=$as_cr_Letters$as_cr_digits ++ ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ echo "#! /bin/sh" >conf$$.sh ++ echo "exit 0" >>conf$$.sh ++ chmod +x conf$$.sh ++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ++ PATH_SEPARATOR=';' ++ else ++ PATH_SEPARATOR=: ++ fi ++ rm -f conf$$.sh ++fi ++ ++ ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x$as_lineno_3" = "x$as_lineno_2" || { ++ # Find who we are. Look in the path if we contain no path at all ++ # relative or not. ++ case $0 in ++ *[\\/]* ) as_myself=$0 ;; ++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ++done ++ ++ ;; ++ esac ++ # We did not find ourselves, most probably we were run as `sh COMMAND' ++ # in which case we are not to be found in the path. ++ if test "x$as_myself" = x; then ++ as_myself=$0 ++ fi ++ if test ! -f "$as_myself"; then ++ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 ++ { (exit 1); exit 1; }; } ++ fi ++ case $CONFIG_SHELL in ++ '') ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for as_base in sh bash ksh sh5; do ++ case $as_dir in ++ /*) ++ if ("$as_dir/$as_base" -c ' ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then ++ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } ++ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } ++ CONFIG_SHELL=$as_dir/$as_base ++ export CONFIG_SHELL ++ exec "$CONFIG_SHELL" "$0" ${1+"$@"} ++ fi;; ++ esac ++ done ++done ++;; ++ esac ++ ++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO ++ # uniformly replaced by the line number. The first 'sed' inserts a ++ # line-number line before each line; the second 'sed' does the real ++ # work. The second script uses 'N' to pair each line-number line ++ # with the numbered line, and appends trailing '-' during ++ # substitution so that $LINENO is not a special case at line end. ++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the ++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) ++ sed '=' <$as_myself | ++ sed ' ++ N ++ s,$,-, ++ : loop ++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, ++ t loop ++ s,-$,, ++ s,^['$as_cr_digits']*\n,, ++ ' >$as_me.lineno && ++ chmod +x $as_me.lineno || ++ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 ++ { (exit 1); exit 1; }; } ++ ++ # Don't try to exec as it changes $[0], causing all sort of problems ++ # (the dirname of $[0] is not the place where we might find the ++ # original and so on. Autoconf is especially sensible to this). ++ . ./$as_me.lineno ++ # Exit status is that of the last command. ++ exit ++} ++ ++ ++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in ++ *c*,-n*) ECHO_N= ECHO_C=' ++' ECHO_T=' ' ;; ++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; ++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;; ++esac ++ ++if expr a : '\(a\)' >/dev/null 2>&1; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++rm -f conf$$ conf$$.exe conf$$.file ++echo >conf$$.file ++if ln -s conf$$.file conf$$ 2>/dev/null; then ++ # We could just check for DJGPP; but this test a) works b) is more generic ++ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). ++ if test -f conf$$.exe; then ++ # Don't use ln at all; we don't have any links ++ as_ln_s='cp -p' ++ else ++ as_ln_s='ln -s' ++ fi ++elif ln conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s=ln ++else ++ as_ln_s='cp -p' ++fi ++rm -f conf$$ conf$$.exe conf$$.file ++ ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p=: ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++as_executable_p="test -f" ++ ++# Sed expression to map a string onto a valid CPP name. ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ + +-# Defaults: +-ac_help= ++# IFS ++# We need space, tab and new line, in precisely that order. ++as_nl=' ++' ++IFS=" $as_nl" ++ ++# CDPATH. ++$as_unset CDPATH ++ ++ ++# Name of the host. ++# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, ++# so uname gets run too. ++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` ++ ++exec 6>&1 ++ ++# ++# Initializations. ++# + ac_default_prefix=/usr/local +-# Any additions from configure.in: +-ac_help="$ac_help +- --with-x use the X Window System" +-ac_help="$ac_help +- --enable-shape enable support of the XShape extension [default=yes]" +-ac_help="$ac_help +- --enable-ordered-pseudo include code for ordered pseudocolor (8bpp) +- dithering [default=no]" +-ac_help="$ac_help +- --enable-debug include verbose debugging code [default=no]" +-ac_help="$ac_help +- --enable-nls include natural language support [default=yes]" +-ac_help="$ac_help +- --enable-timed-cache use new timed pixmap cache [default=yes]" +-ac_help="$ac_help +- --enable-maintainer-mode enable make rules and dependencies not useful +- (and sometimes confusing) to the casual installer" ++ac_config_libobj_dir=. ++cross_compiling=no ++subdirs= ++MFLAGS= ++MAKEFLAGS= ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++# Maximum number of lines to put in a shell here document. ++# This variable seems obsolete. It should probably be removed, and ++# only ac_max_sed_lines should be used. ++: ${ac_max_here_lines=38} ++ ++# Identity of this package. ++PACKAGE_NAME= ++PACKAGE_TARNAME= ++PACKAGE_VERSION= ++PACKAGE_STRING= ++PACKAGE_BUGREPORT= ++ ++ac_unique_file="src/blackbox.cc" ++# Factoring default headers for most tests. ++ac_includes_default="\ ++#include ++#if HAVE_SYS_TYPES_H ++# include ++#endif ++#if HAVE_SYS_STAT_H ++# include ++#endif ++#if STDC_HEADERS ++# include ++# include ++#else ++# if HAVE_STDLIB_H ++# include ++# endif ++#endif ++#if HAVE_STRING_H ++# if !STDC_HEADERS && HAVE_MEMORY_H ++# include ++# endif ++# include ++#endif ++#if HAVE_STRINGS_H ++# include ++#endif ++#if HAVE_INTTYPES_H ++# include ++#else ++# if HAVE_STDINT_H ++# include ++# endif ++#endif ++#if HAVE_UNISTD_H ++# include ++#endif" ++ ++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX regex_cmd CPP EGREP X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS SHAPE XINERAMA ORDEREDPSEUDO DEBUG NLS gencat_cmd TIMEDCACHE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBOBJS LTLIBOBJS' ++ac_subst_files='' + + # Initialize some variables set by options. ++ac_init_help= ++ac_init_version=false + # The variables have the same names as the options, with + # dashes changed to underlines. +-build=NONE +-cache_file=./config.cache ++cache_file=/dev/null + exec_prefix=NONE +-host=NONE + no_create= +-nonopt=NONE + no_recursion= + prefix=NONE + program_prefix=NONE +@@ -45,10 +328,15 @@ + silent= + site= + srcdir= +-target=NONE + verbose= + x_includes=NONE + x_libraries=NONE ++ ++# Installation directory options. ++# These are left unexpanded so users can "make install exec_prefix=/foo" ++# and all the variables that are supposed to be based on exec_prefix ++# by default will actually change. ++# Use braces instead of parens because sh, perl, etc. also accept them. + bindir='${exec_prefix}/bin' + sbindir='${exec_prefix}/sbin' + libexecdir='${exec_prefix}/libexec' +@@ -62,17 +350,9 @@ + infodir='${prefix}/info' + mandir='${prefix}/man' + +-# Initialize some other variables. +-subdirs= +-MFLAGS= MAKEFLAGS= +-SHELL=${CONFIG_SHELL-/bin/sh} +-# Maximum number of lines to put in a shell here document. +-ac_max_here_lines=12 +- + ac_prev= + for ac_option + do +- + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" +@@ -80,59 +360,59 @@ + continue + fi + +- case "$ac_option" in +- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; +- *) ac_optarg= ;; +- esac ++ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + +- case "$ac_option" in ++ case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) +- bindir="$ac_optarg" ;; ++ bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) +- ac_prev=build ;; ++ ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) +- build="$ac_optarg" ;; ++ build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) +- cache_file="$ac_optarg" ;; ++ cache_file=$ac_optarg ;; ++ ++ --config-cache | -C) ++ cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) +- datadir="$ac_optarg" ;; ++ datadir=$ac_optarg ;; + + -disable-* | --disable-*) +- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` ++ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. +- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then +- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } +- fi +- ac_feature=`echo $ac_feature| sed 's/-/_/g'` +- eval "enable_${ac_feature}=no" ;; ++ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid feature name: $ac_feature" >&2 ++ { (exit 1); exit 1; }; } ++ ac_feature=`echo $ac_feature | sed 's/-/_/g'` ++ eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) +- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` ++ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. +- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then +- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } +- fi +- ac_feature=`echo $ac_feature| sed 's/-/_/g'` +- case "$ac_option" in +- *=*) ;; ++ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid feature name: $ac_feature" >&2 ++ { (exit 1); exit 1; }; } ++ ac_feature=`echo $ac_feature | sed 's/-/_/g'` ++ case $ac_option in ++ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac +- eval "enable_${ac_feature}='$ac_optarg'" ;; ++ eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ +@@ -141,95 +421,47 @@ + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) +- exec_prefix="$ac_optarg" ;; ++ exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + +- -help | --help | --hel | --he) +- # Omit some internal or obsolete options to make the list less imposing. +- # This message is too long to be a string in the A/UX 3.1 sh. +- cat << EOF +-Usage: configure [options] [host] +-Options: [defaults in brackets after descriptions] +-Configuration: +- --cache-file=FILE cache test results in FILE +- --help print this message +- --no-create do not create output files +- --quiet, --silent do not print \`checking...' messages +- --version print the version of autoconf that created configure +-Directory and file names: +- --prefix=PREFIX install architecture-independent files in PREFIX +- [$ac_default_prefix] +- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX +- [same as prefix] +- --bindir=DIR user executables in DIR [EPREFIX/bin] +- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] +- --libexecdir=DIR program executables in DIR [EPREFIX/libexec] +- --datadir=DIR read-only architecture-independent data in DIR +- [PREFIX/share] +- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] +- --sharedstatedir=DIR modifiable architecture-independent data in DIR +- [PREFIX/com] +- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] +- --libdir=DIR object code libraries in DIR [EPREFIX/lib] +- --includedir=DIR C header files in DIR [PREFIX/include] +- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] +- --infodir=DIR info documentation in DIR [PREFIX/info] +- --mandir=DIR man documentation in DIR [PREFIX/man] +- --srcdir=DIR find the sources in DIR [configure dir or ..] +- --program-prefix=PREFIX prepend PREFIX to installed program names +- --program-suffix=SUFFIX append SUFFIX to installed program names +- --program-transform-name=PROGRAM +- run sed PROGRAM on installed program names +-EOF +- cat << EOF +-Host type: +- --build=BUILD configure for building on BUILD [BUILD=HOST] +- --host=HOST configure for HOST [guessed] +- --target=TARGET configure for TARGET [TARGET=HOST] +-Features and packages: +- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) +- --enable-FEATURE[=ARG] include FEATURE [ARG=yes] +- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) +- --x-includes=DIR X include files are in DIR +- --x-libraries=DIR X library files are in DIR +-EOF +- if test -n "$ac_help"; then +- echo "--enable and --with options recognized:$ac_help" +- fi +- exit 0 ;; ++ -help | --help | --hel | --he | -h) ++ ac_init_help=long ;; ++ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ++ ac_init_help=recursive ;; ++ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ++ ac_init_help=short ;; + + -host | --host | --hos | --ho) +- ac_prev=host ;; ++ ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) +- host="$ac_optarg" ;; ++ host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) +- includedir="$ac_optarg" ;; ++ includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) +- infodir="$ac_optarg" ;; ++ infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) +- libdir="$ac_optarg" ;; ++ libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) +- libexecdir="$ac_optarg" ;; ++ libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ +@@ -238,19 +470,19 @@ + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) +- localstatedir="$ac_optarg" ;; ++ localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) +- mandir="$ac_optarg" ;; ++ mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ +- | --no-cr | --no-c) ++ | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ +@@ -264,26 +496,26 @@ + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) +- oldincludedir="$ac_optarg" ;; ++ oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) +- prefix="$ac_optarg" ;; ++ prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) +- program_prefix="$ac_optarg" ;; ++ program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) +- program_suffix="$ac_optarg" ;; ++ program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ +@@ -300,7 +532,7 @@ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) +- program_transform_name="$ac_optarg" ;; ++ program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) +@@ -310,7 +542,7 @@ + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) +- sbindir="$ac_optarg" ;; ++ sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ +@@ -321,58 +553,57 @@ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) +- sharedstatedir="$ac_optarg" ;; ++ sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) +- site="$ac_optarg" ;; ++ site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) +- srcdir="$ac_optarg" ;; ++ srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) +- sysconfdir="$ac_optarg" ;; ++ sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) +- ac_prev=target ;; ++ ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) +- target="$ac_optarg" ;; ++ target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + +- -version | --version | --versio | --versi | --vers) +- echo "configure generated by autoconf version 2.13" +- exit 0 ;; ++ -version | --version | --versio | --versi | --vers | -V) ++ ac_init_version=: ;; + + -with-* | --with-*) +- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` ++ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. +- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then +- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } +- fi ++ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid package name: $ac_package" >&2 ++ { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` +- case "$ac_option" in +- *=*) ;; ++ case $ac_option in ++ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac +- eval "with_${ac_package}='$ac_optarg'" ;; ++ eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) +- ac_package=`echo $ac_option|sed -e 's/-*without-//'` ++ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. +- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then +- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } +- fi +- ac_package=`echo $ac_package| sed 's/-/_/g'` +- eval "with_${ac_package}=no" ;; ++ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid package name: $ac_package" >&2 ++ { (exit 1); exit 1; }; } ++ ac_package=`echo $ac_package | sed 's/-/_/g'` ++ eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. +@@ -383,99 +614,110 @@ + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) +- x_includes="$ac_optarg" ;; ++ x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) +- x_libraries="$ac_optarg" ;; ++ x_libraries=$ac_optarg ;; + +- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ++ -*) { echo "$as_me: error: unrecognized option: $ac_option ++Try \`$0 --help' for more information." >&2 ++ { (exit 1); exit 1; }; } + ;; + ++ *=*) ++ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 ++ { (exit 1); exit 1; }; } ++ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ++ eval "$ac_envvar='$ac_optarg'" ++ export $ac_envvar ;; ++ + *) +- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then +- echo "configure: warning: $ac_option: invalid host type" 1>&2 +- fi +- if test "x$nonopt" != xNONE; then +- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } +- fi +- nonopt="$ac_option" ++ # FIXME: should be removed in autoconf 3.0. ++ echo "$as_me: WARNING: you should use --build, --host, --target" >&2 ++ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && ++ echo "$as_me: WARNING: invalid host type: $ac_option" >&2 ++ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac + done + + if test -n "$ac_prev"; then +- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +-fi +- +-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 +- +-# File descriptor usage: +-# 0 standard input +-# 1 file creation +-# 2 errors and warnings +-# 3 some systems may open it to /dev/tty +-# 4 used on the Kubota Titan +-# 6 checking for... messages and results +-# 5 compiler messages saved in config.log +-if test "$silent" = yes; then +- exec 6>/dev/null +-else +- exec 6>&1 ++ ac_option=--`echo $ac_prev | sed 's/_/-/g'` ++ { echo "$as_me: error: missing argument to $ac_option" >&2 ++ { (exit 1); exit 1; }; } + fi +-exec 5>./config.log + +-echo "\ +-This file contains any messages produced by compilers while +-running configure, to aid debugging if configure makes a mistake. +-" 1>&5 ++# Be sure to have absolute paths. ++for ac_var in exec_prefix prefix ++do ++ eval ac_val=$`echo $ac_var` ++ case $ac_val in ++ [\\/$]* | ?:[\\/]* | NONE | '' ) ;; ++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 ++ { (exit 1); exit 1; }; };; ++ esac ++done + +-# Strip out --no-create and --no-recursion so they do not pile up. +-# Also quote any args containing shell metacharacters. +-ac_configure_args= +-for ac_arg ++# Be sure to have absolute paths. ++for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ++ localstatedir libdir includedir oldincludedir infodir mandir + do +- case "$ac_arg" in +- -no-create | --no-create | --no-creat | --no-crea | --no-cre \ +- | --no-cr | --no-c) ;; +- -no-recursion | --no-recursion | --no-recursio | --no-recursi \ +- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; +- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) +- ac_configure_args="$ac_configure_args '$ac_arg'" ;; +- *) ac_configure_args="$ac_configure_args $ac_arg" ;; ++ eval ac_val=$`echo $ac_var` ++ case $ac_val in ++ [\\/$]* | ?:[\\/]* ) ;; ++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 ++ { (exit 1); exit 1; }; };; + esac + done + +-# NLS nuisances. +-# Only set these to C if already set. These must not be set unconditionally +-# because not all systems understand e.g. LANG=C (notably SCO). +-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +-# Non-C LC_CTYPE values break the ctype check. +-if test "${LANG+set}" = set; then LANG=C; export LANG; fi +-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi ++# There might be people who depend on the old broken behavior: `$host' ++# used to hold the argument of --host etc. ++# FIXME: To remove some day. ++build=$build_alias ++host=$host_alias ++target=$target_alias ++ ++# FIXME: To remove some day. ++if test "x$host_alias" != x; then ++ if test "x$build_alias" = x; then ++ cross_compiling=maybe ++ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. ++ If a cross compiler is detected then cross compile mode will be used." >&2 ++ elif test "x$build_alias" != "x$host_alias"; then ++ cross_compiling=yes ++ fi ++fi + +-# confdefs.h avoids OS command line length limits that DEFS can exceed. +-rm -rf conftest* confdefs.h +-# AIX cpp loses on an empty file, so make sure it contains at least a newline. +-echo > confdefs.h ++ac_tool_prefix= ++test -n "$host_alias" && ac_tool_prefix=$host_alias- ++ ++test "$silent" = yes && exec 6>/dev/null + +-# A filename unique to this package, relative to the directory that +-# configure is in, which we can look for to find out if srcdir is correct. +-ac_unique_file=src/blackbox.cc + + # Find the source files, if location was not specified. + if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. +- ac_prog=$0 +- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` +- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. ++ ac_confdir=`(dirname "$0") 2>/dev/null || ++$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$0" : 'X\(//\)[^/]' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$0" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. +@@ -485,13 +727,491 @@ + fi + if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then +- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } ++ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 ++ { (exit 1); exit 1; }; } + else +- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } ++ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 ++ { (exit 1); exit 1; }; } + fi + fi +-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` ++(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || ++ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 ++ { (exit 1); exit 1; }; } ++srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ++ac_env_build_alias_set=${build_alias+set} ++ac_env_build_alias_value=$build_alias ++ac_cv_env_build_alias_set=${build_alias+set} ++ac_cv_env_build_alias_value=$build_alias ++ac_env_host_alias_set=${host_alias+set} ++ac_env_host_alias_value=$host_alias ++ac_cv_env_host_alias_set=${host_alias+set} ++ac_cv_env_host_alias_value=$host_alias ++ac_env_target_alias_set=${target_alias+set} ++ac_env_target_alias_value=$target_alias ++ac_cv_env_target_alias_set=${target_alias+set} ++ac_cv_env_target_alias_value=$target_alias ++ac_env_CC_set=${CC+set} ++ac_env_CC_value=$CC ++ac_cv_env_CC_set=${CC+set} ++ac_cv_env_CC_value=$CC ++ac_env_CFLAGS_set=${CFLAGS+set} ++ac_env_CFLAGS_value=$CFLAGS ++ac_cv_env_CFLAGS_set=${CFLAGS+set} ++ac_cv_env_CFLAGS_value=$CFLAGS ++ac_env_LDFLAGS_set=${LDFLAGS+set} ++ac_env_LDFLAGS_value=$LDFLAGS ++ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ++ac_cv_env_LDFLAGS_value=$LDFLAGS ++ac_env_CPPFLAGS_set=${CPPFLAGS+set} ++ac_env_CPPFLAGS_value=$CPPFLAGS ++ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ++ac_cv_env_CPPFLAGS_value=$CPPFLAGS ++ac_env_CXX_set=${CXX+set} ++ac_env_CXX_value=$CXX ++ac_cv_env_CXX_set=${CXX+set} ++ac_cv_env_CXX_value=$CXX ++ac_env_CXXFLAGS_set=${CXXFLAGS+set} ++ac_env_CXXFLAGS_value=$CXXFLAGS ++ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ++ac_cv_env_CXXFLAGS_value=$CXXFLAGS ++ac_env_CPP_set=${CPP+set} ++ac_env_CPP_value=$CPP ++ac_cv_env_CPP_set=${CPP+set} ++ac_cv_env_CPP_value=$CPP ++ ++# ++# Report the --help message. ++# ++if test "$ac_init_help" = "long"; then ++ # Omit some internal or obsolete options to make the list less imposing. ++ # This message is too long to be a string in the A/UX 3.1 sh. ++ cat <<_ACEOF ++\`configure' configures this package to adapt to many kinds of systems. ++ ++Usage: $0 [OPTION]... [VAR=VALUE]... ++ ++To assign environment variables (e.g., CC, CFLAGS...), specify them as ++VAR=VALUE. See below for descriptions of some of the useful variables. ++ ++Defaults for the options are specified in brackets. ++ ++Configuration: ++ -h, --help display this help and exit ++ --help=short display options specific to this package ++ --help=recursive display the short help of all the included packages ++ -V, --version display version information and exit ++ -q, --quiet, --silent do not print \`checking...' messages ++ --cache-file=FILE cache test results in FILE [disabled] ++ -C, --config-cache alias for \`--cache-file=config.cache' ++ -n, --no-create do not create output files ++ --srcdir=DIR find the sources in DIR [configure dir or \`..'] ++ ++_ACEOF ++ ++ cat <<_ACEOF ++Installation directories: ++ --prefix=PREFIX install architecture-independent files in PREFIX ++ [$ac_default_prefix] ++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ++ [PREFIX] ++ ++By default, \`make install' will install all the files in ++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify ++an installation prefix other than \`$ac_default_prefix' using \`--prefix', ++for instance \`--prefix=\$HOME'. ++ ++For better control, use the options below. ++ ++Fine tuning of the installation directories: ++ --bindir=DIR user executables [EPREFIX/bin] ++ --sbindir=DIR system admin executables [EPREFIX/sbin] ++ --libexecdir=DIR program executables [EPREFIX/libexec] ++ --datadir=DIR read-only architecture-independent data [PREFIX/share] ++ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] ++ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] ++ --localstatedir=DIR modifiable single-machine data [PREFIX/var] ++ --libdir=DIR object code libraries [EPREFIX/lib] ++ --includedir=DIR C header files [PREFIX/include] ++ --oldincludedir=DIR C header files for non-gcc [/usr/include] ++ --infodir=DIR info documentation [PREFIX/info] ++ --mandir=DIR man documentation [PREFIX/man] ++_ACEOF ++ ++ cat <<\_ACEOF ++ ++Program names: ++ --program-prefix=PREFIX prepend PREFIX to installed program names ++ --program-suffix=SUFFIX append SUFFIX to installed program names ++ --program-transform-name=PROGRAM run sed PROGRAM on installed program names ++ ++X features: ++ --x-includes=DIR X include files are in DIR ++ --x-libraries=DIR X library files are in DIR ++_ACEOF ++fi ++ ++if test -n "$ac_init_help"; then ++ ++ cat <<\_ACEOF ++ ++Optional Features: ++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) ++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ --enable-shape enable support of the XShape extension default=yes ++ --enable-xinerama enable support of the xinerama extension default=yes ++ --enable-ordered-pseudo include code for ordered pseudocolor (8bpp) ++ dithering default=no ++ --enable-debug include verbose debugging code default=no ++ --enable-nls include natural language support default=yes ++ --enable-timed-cache use new timed pixmap cache default=yes ++ --enable-maintainer-mode enable make rules and dependencies not useful ++ (and sometimes confusing) to the casual installer ++ ++Optional Packages: ++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] ++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ++ --with-x use the X Window System ++ ++Some influential environment variables: ++ CC C compiler command ++ CFLAGS C compiler flags ++ LDFLAGS linker flags, e.g. -L if you have libraries in a ++ nonstandard directory ++ CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have ++ headers in a nonstandard directory ++ CXX C++ compiler command ++ CXXFLAGS C++ compiler flags ++ CPP C preprocessor ++ ++Use these variables to override the choices made by `configure' or to help ++it to find libraries and programs with nonstandard names/locations. ++ ++_ACEOF ++fi ++ ++if test "$ac_init_help" = "recursive"; then ++ # If there are subdirs, report their specific --help. ++ ac_popdir=`pwd` ++ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue ++ test -d $ac_dir || continue ++ ac_builddir=. ++ ++if test "$ac_dir" != .; then ++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` ++ # A "../" for each directory in $ac_dir_suffix. ++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` ++else ++ ac_dir_suffix= ac_top_builddir= ++fi ++ ++case $srcdir in ++ .) # No --srcdir option. We are building in place. ++ ac_srcdir=. ++ if test -z "$ac_top_builddir"; then ++ ac_top_srcdir=. ++ else ++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` ++ fi ;; ++ [\\/]* | ?:[\\/]* ) # Absolute path. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ;; ++ *) # Relative path. ++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_builddir$srcdir ;; ++esac ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac ++ ++ cd $ac_dir ++ # Check for guested configure; otherwise get Cygnus style configure. ++ if test -f $ac_srcdir/configure.gnu; then ++ echo ++ $SHELL $ac_srcdir/configure.gnu --help=recursive ++ elif test -f $ac_srcdir/configure; then ++ echo ++ $SHELL $ac_srcdir/configure --help=recursive ++ elif test -f $ac_srcdir/configure.ac || ++ test -f $ac_srcdir/configure.in; then ++ echo ++ $ac_configure --help ++ else ++ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 ++ fi ++ cd "$ac_popdir" ++ done ++fi ++ ++test -n "$ac_init_help" && exit 0 ++if $ac_init_version; then ++ cat <<\_ACEOF ++ ++Copyright (C) 2003 Free Software Foundation, Inc. ++This configure script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it. ++_ACEOF ++ exit 0 ++fi ++exec 5>config.log ++cat >&5 <<_ACEOF ++This file contains any messages produced by compilers while ++running configure, to aid debugging if configure makes a mistake. ++ ++It was created by $as_me, which was ++generated by GNU Autoconf 2.59. Invocation command line was ++ ++ $ $0 $@ ++ ++_ACEOF ++{ ++cat <<_ASUNAME ++## --------- ## ++## Platform. ## ++## --------- ## ++ ++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` ++ ++/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` ++hostinfo = `(hostinfo) 2>/dev/null || echo unknown` ++/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` ++/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` ++ ++_ASUNAME ++ ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ echo "PATH: $as_dir" ++done ++ ++} >&5 ++ ++cat >&5 <<_ACEOF ++ ++ ++## ----------- ## ++## Core tests. ## ++## ----------- ## ++ ++_ACEOF ++ ++ ++# Keep a trace of the command line. ++# Strip out --no-create and --no-recursion so they do not pile up. ++# Strip out --silent because we don't want to record it for future runs. ++# Also quote any args containing shell meta-characters. ++# Make two passes to allow for proper duplicate-argument suppression. ++ac_configure_args= ++ac_configure_args0= ++ac_configure_args1= ++ac_sep= ++ac_must_keep_next=false ++for ac_pass in 1 2 ++do ++ for ac_arg ++ do ++ case $ac_arg in ++ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ continue ;; ++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ++ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ case $ac_pass in ++ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; ++ 2) ++ ac_configure_args1="$ac_configure_args1 '$ac_arg'" ++ if test $ac_must_keep_next = true; then ++ ac_must_keep_next=false # Got value, back to normal. ++ else ++ case $ac_arg in ++ *=* | --config-cache | -C | -disable-* | --disable-* \ ++ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ++ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ++ | -with-* | --with-* | -without-* | --without-* | --x) ++ case "$ac_configure_args0 " in ++ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ++ esac ++ ;; ++ -* ) ac_must_keep_next=true ;; ++ esac ++ fi ++ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ++ # Get rid of the leading space. ++ ac_sep=" " ++ ;; ++ esac ++ done ++done ++$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } ++$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } ++ ++# When interrupted or exit'd, cleanup temporary files, and complete ++# config.log. We remove comments because anyway the quotes in there ++# would cause problems or look ugly. ++# WARNING: Be sure not to use single quotes in there, as some shells, ++# such as our DU 5.0 friend, will then `close' the trap. ++trap 'exit_status=$? ++ # Save into config.log some information that might help in debugging. ++ { ++ echo ++ ++ cat <<\_ASBOX ++## ---------------- ## ++## Cache variables. ## ++## ---------------- ## ++_ASBOX ++ echo ++ # The following way of writing the cache mishandles newlines in values, ++{ ++ (set) 2>&1 | ++ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in ++ *ac_space=\ *) ++ sed -n \ ++ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ++ ;; ++ *) ++ sed -n \ ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ ;; ++ esac; ++} ++ echo ++ ++ cat <<\_ASBOX ++## ----------------- ## ++## Output variables. ## ++## ----------------- ## ++_ASBOX ++ echo ++ for ac_var in $ac_subst_vars ++ do ++ eval ac_val=$`echo $ac_var` ++ echo "$ac_var='"'"'$ac_val'"'"'" ++ done | sort ++ echo ++ ++ if test -n "$ac_subst_files"; then ++ cat <<\_ASBOX ++## ------------- ## ++## Output files. ## ++## ------------- ## ++_ASBOX ++ echo ++ for ac_var in $ac_subst_files ++ do ++ eval ac_val=$`echo $ac_var` ++ echo "$ac_var='"'"'$ac_val'"'"'" ++ done | sort ++ echo ++ fi ++ ++ if test -s confdefs.h; then ++ cat <<\_ASBOX ++## ----------- ## ++## confdefs.h. ## ++## ----------- ## ++_ASBOX ++ echo ++ sed "/^$/d" confdefs.h | sort ++ echo ++ fi ++ test "$ac_signal" != 0 && ++ echo "$as_me: caught signal $ac_signal" ++ echo "$as_me: exit $exit_status" ++ } >&5 ++ rm -f core *.core && ++ rm -rf conftest* confdefs* conf$$* $ac_clean_files && ++ exit $exit_status ++ ' 0 ++for ac_signal in 1 2 13 15; do ++ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal ++done ++ac_signal=0 + ++# confdefs.h avoids OS command line length limits that DEFS can exceed. ++rm -rf conftest* confdefs.h ++# AIX cpp loses on an empty file, so make sure it contains at least a newline. ++echo >confdefs.h ++ ++# Predefined preprocessor variables. ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_NAME "$PACKAGE_NAME" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_TARNAME "$PACKAGE_TARNAME" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_VERSION "$PACKAGE_VERSION" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_STRING "$PACKAGE_STRING" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" ++_ACEOF ++ ++ ++# Let the site file select an alternate cache file if it wants to. + # Prefer explicitly selected file to automatically selected ones. + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then +@@ -502,39 +1222,103 @@ + fi + for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then +- echo "loading site script $ac_site_file" ++ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 ++echo "$as_me: loading site script $ac_site_file" >&6;} ++ sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi + done + + if test -r "$cache_file"; then +- echo "loading cache $cache_file" +- . $cache_file ++ # Some versions of bash will fail to source /dev/null (special ++ # files actually), so we avoid doing that. ++ if test -f "$cache_file"; then ++ { echo "$as_me:$LINENO: loading cache $cache_file" >&5 ++echo "$as_me: loading cache $cache_file" >&6;} ++ case $cache_file in ++ [\\/]* | ?:[\\/]* ) . $cache_file;; ++ *) . ./$cache_file;; ++ esac ++ fi + else +- echo "creating cache $cache_file" +- > $cache_file ++ { echo "$as_me:$LINENO: creating cache $cache_file" >&5 ++echo "$as_me: creating cache $cache_file" >&6;} ++ >$cache_file ++fi ++ ++# Check that the precious variables saved in the cache have kept the same ++# value. ++ac_cache_corrupted=false ++for ac_var in `(set) 2>&1 | ++ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do ++ eval ac_old_set=\$ac_cv_env_${ac_var}_set ++ eval ac_new_set=\$ac_env_${ac_var}_set ++ eval ac_old_val="\$ac_cv_env_${ac_var}_value" ++ eval ac_new_val="\$ac_env_${ac_var}_value" ++ case $ac_old_set,$ac_new_set in ++ set,) ++ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 ++echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ++ ac_cache_corrupted=: ;; ++ ,set) ++ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 ++echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ++ ac_cache_corrupted=: ;; ++ ,);; ++ *) ++ if test "x$ac_old_val" != "x$ac_new_val"; then ++ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 ++echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ++ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 ++echo "$as_me: former value: $ac_old_val" >&2;} ++ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 ++echo "$as_me: current value: $ac_new_val" >&2;} ++ ac_cache_corrupted=: ++ fi;; ++ esac ++ # Pass precious variables to config.status. ++ if test "$ac_new_set" = set; then ++ case $ac_new_val in ++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ++ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; ++ *) ac_arg=$ac_var=$ac_new_val ;; ++ esac ++ case " $ac_configure_args " in ++ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. ++ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; ++ esac ++ fi ++done ++if $ac_cache_corrupted; then ++ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 ++echo "$as_me: error: changes in the environment can compromise the build" >&2;} ++ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 ++echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} ++ { (exit 1); exit 1; }; } + fi + + ac_ext=c +-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. + ac_cpp='$CPP $CPPFLAGS' +-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +-cross_compiling=$ac_cv_prog_cc_cross +- +-ac_exeext= +-ac_objext=o +-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then +- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. +- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then +- ac_n= ac_c=' +-' ac_t=' ' +- else +- ac_n=-n ac_c= ac_t= +- fi +-else +- ac_n= ac_c='\c' ac_t= +-fi ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + ac_aux_dir= +@@ -547,14 +1331,20 @@ + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break ++ elif test -f $ac_dir/shtool; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/shtool install -c" ++ break + fi + done + if test -z "$ac_aux_dir"; then +- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +-fi +-ac_config_guess=$ac_aux_dir/config.guess +-ac_config_sub=$ac_aux_dir/config.sub +-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. ++ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 ++echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ac_config_guess="$SHELL $ac_aux_dir/config.guess" ++ac_config_sub="$SHELL $ac_aux_dir/config.sub" ++ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + + # Find a good install program. We prefer a C program (faster), + # so one script is as good as another. But avoid the broken or +@@ -563,65 +1353,80 @@ + # SunOS /usr/etc/install + # IRIX /sbin/install + # AIX /bin/install ++# AmigaOS /C/install, which installs bootblocks on floppy discs + # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag + # AFS /usr/afsws/bin/install, which mishandles nonexistent args + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic + # ./install, which can be erroneously created by make from ./install.sh. +-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +-echo "configure:572: checking for a BSD compatible install" >&5 ++echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 + if test -z "$INSTALL"; then +-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++if test "${ac_cv_path_install+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" +- for ac_dir in $PATH; do +- # Account for people who put trailing slashes in PATH elements. +- case "$ac_dir/" in +- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; +- *) +- # OSF1 and SCO ODT 3.0 have their own names for install. +- # Don't use installbsd from OSF since it installs stuff as root +- # by default. +- for ac_prog in ginstall scoinst install; do +- if test -f $ac_dir/$ac_prog; then ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ # Account for people who put trailing slashes in PATH elements. ++case $as_dir/ in ++ ./ | .// | /cC/* | \ ++ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ ++ /usr/ucb/* ) ;; ++ *) ++ # OSF1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF since it installs stuff as root ++ # by default. ++ for ac_prog in ginstall scoinst install; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && +- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : + else +- ac_cv_path_install="$ac_dir/$ac_prog -c" +- break 2 ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 + fi + fi + done +- ;; +- esac +- done +- IFS="$ac_save_IFS" ++ done ++ ;; ++esac ++done ++ + + fi + if test "${ac_cv_path_install+set}" = set; then +- INSTALL="$ac_cv_path_install" ++ INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. +- INSTALL="$ac_install_sh" ++ INSTALL=$ac_install_sh + fi + fi +-echo "$ac_t""$INSTALL" 1>&6 ++echo "$as_me:$LINENO: result: $INSTALL" >&5 ++echo "${ECHO_T}$INSTALL" >&6 + + # Use test -z because SunOS4 sh mishandles braces in ${var-val}. + # It thinks the first close brace ends the variable substitution. + test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +-echo "configure:625: checking whether build environment is sane" >&5 ++echo "$as_me:$LINENO: checking whether build environment is sane" >&5 ++echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 + # Just in case + sleep 1 + echo timestamp > conftestfile +@@ -643,8 +1448,11 @@ + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". +- { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +-alias in your environment" 1>&2; exit 1; } ++ { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken ++alias in your environment" >&5 ++echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken ++alias in your environment" >&2;} ++ { (exit 1); exit 1; }; } + fi + + test "$2" = conftestfile +@@ -653,54 +1461,54 @@ + # Ok. + : + else +- { echo "configure: error: newly created file is older than distributed files! +-Check your system clock" 1>&2; exit 1; } ++ { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! ++Check your system clock" >&5 ++echo "$as_me: error: newly created file is older than distributed files! ++Check your system clock" >&2;} ++ { (exit 1); exit 1; }; } + fi + rm -f conftest* +-echo "$ac_t""yes" 1>&6 +-if test "$program_transform_name" = s,x,x,; then +- program_transform_name= +-else +- # Double any \ or $. echo might interpret backslashes. +- cat <<\EOF_SED > conftestsed +-s,\\,\\\\,g; s,\$,$$,g +-EOF_SED +- program_transform_name="`echo $program_transform_name|sed -f conftestsed`" +- rm -f conftestsed +-fi ++echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + test "$program_prefix" != NONE && +- program_transform_name="s,^,${program_prefix},; $program_transform_name" ++ program_transform_name="s,^,$program_prefix,;$program_transform_name" + # Use a double $ so make ignores it. + test "$program_suffix" != NONE && +- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" +- +-# sed with no file args requires a program. +-test "$program_transform_name" = "" && program_transform_name="s,x,x," +- +-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +-echo "configure:682: checking whether ${MAKE-make} sets \${MAKE}" >&5 +-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ program_transform_name="s,\$,$program_suffix,;$program_transform_name" ++# Double any \ or $. echo might interpret backslashes. ++# By default was `s,x,x', remove it if useless. ++cat <<\_ACEOF >conftest.sed ++s/[\\$]/&&/g;s/;s,x,x,$// ++_ACEOF ++program_transform_name=`echo $program_transform_name | sed -f conftest.sed` ++rm conftest.sed ++ ++echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 ++echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` ++if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat > conftestmake <<\EOF ++ cat >conftest.make <<\_ACEOF + all: +- @echo 'ac_maketemp="${MAKE}"' +-EOF ++ @echo 'ac_maketemp="$(MAKE)"' ++_ACEOF + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. +-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` ++eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` + if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes + else + eval ac_cv_prog_make_${ac_make}_set=no + fi +-rm -f conftestmake ++rm -f conftest.make + fi + if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + SET_MAKE= + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" + fi + +@@ -710,75 +1518,87 @@ + VERSION=0.65.0 + + if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then +- { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } ++ { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 ++echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} ++ { (exit 1); exit 1; }; } + fi + + + + missing_dir=`cd $ac_aux_dir && pwd` +-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +-echo "configure:721: checking for working aclocal" >&5 ++echo "$as_me:$LINENO: checking for working aclocal" >&5 ++echo $ECHO_N "checking for working aclocal... $ECHO_C" >&6 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal +- echo "$ac_t""found" 1>&6 ++ echo "$as_me:$LINENO: result: found" >&5 ++echo "${ECHO_T}found" >&6 + else + ACLOCAL="$missing_dir/missing aclocal" +- echo "$ac_t""missing" 1>&6 ++ echo "$as_me:$LINENO: result: missing" >&5 ++echo "${ECHO_T}missing" >&6 + fi + +-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +-echo "configure:734: checking for working autoconf" >&5 ++echo "$as_me:$LINENO: checking for working autoconf" >&5 ++echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf +- echo "$ac_t""found" 1>&6 ++ echo "$as_me:$LINENO: result: found" >&5 ++echo "${ECHO_T}found" >&6 + else + AUTOCONF="$missing_dir/missing autoconf" +- echo "$ac_t""missing" 1>&6 ++ echo "$as_me:$LINENO: result: missing" >&5 ++echo "${ECHO_T}missing" >&6 + fi + +-echo $ac_n "checking for working automake""... $ac_c" 1>&6 +-echo "configure:747: checking for working automake" >&5 ++echo "$as_me:$LINENO: checking for working automake" >&5 ++echo $ECHO_N "checking for working automake... $ECHO_C" >&6 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake +- echo "$ac_t""found" 1>&6 ++ echo "$as_me:$LINENO: result: found" >&5 ++echo "${ECHO_T}found" >&6 + else + AUTOMAKE="$missing_dir/missing automake" +- echo "$ac_t""missing" 1>&6 ++ echo "$as_me:$LINENO: result: missing" >&5 ++echo "${ECHO_T}missing" >&6 + fi + +-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +-echo "configure:760: checking for working autoheader" >&5 ++echo "$as_me:$LINENO: checking for working autoheader" >&5 ++echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader +- echo "$ac_t""found" 1>&6 ++ echo "$as_me:$LINENO: result: found" >&5 ++echo "${ECHO_T}found" >&6 + else + AUTOHEADER="$missing_dir/missing autoheader" +- echo "$ac_t""missing" 1>&6 ++ echo "$as_me:$LINENO: result: missing" >&5 ++echo "${ECHO_T}missing" >&6 + fi + +-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +-echo "configure:773: checking for working makeinfo" >&5 ++echo "$as_me:$LINENO: checking for working makeinfo" >&5 ++echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6 + # Run test in a subshell; some versions of sh will print an error if + # an executable is not found, even if stderr is redirected. + # Redirect stdin to placate older versions of autoconf. Sigh. + if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo +- echo "$ac_t""found" 1>&6 ++ echo "$as_me:$LINENO: result: found" >&5 ++echo "${ECHO_T}found" >&6 + else + MAKEINFO="$missing_dir/missing makeinfo" +- echo "$ac_t""missing" 1>&6 ++ echo "$as_me:$LINENO: result: missing" >&5 ++echo "${ECHO_T}missing" >&6 + fi + + +@@ -786,214 +1606,657 @@ + test x$prefix = "xNONE" && prefix="$ac_default_prefix" + + +-# Extract the first word of "gcc", so it can be a program name with args. +-set dummy gcc; ac_word=$2 +-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:793: checking for $ac_word" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. ++set dummy ${ac_tool_prefix}gcc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +- ac_dummy="$PATH" +- for ac_dir in $ac_dummy; do +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/$ac_word; then +- ac_cv_prog_CC="gcc" +- break +- fi +- done +- IFS="$ac_save_ifs" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="${ac_tool_prefix}gcc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ + fi + fi +-CC="$ac_cv_prog_CC" ++CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$ac_t""$CC" 1>&6 ++ echo "$as_me:$LINENO: result: $CC" >&5 ++echo "${ECHO_T}$CC" >&6 + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +-if test -z "$CC"; then +- # Extract the first word of "cc", so it can be a program name with args. +-set dummy cc; ac_word=$2 +-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:823: checking for $ac_word" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++fi ++if test -z "$ac_cv_prog_CC"; then ++ ac_ct_CC=$CC ++ # Extract the first word of "gcc", so it can be a program name with args. ++set dummy gcc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- if test -n "$CC"; then +- ac_cv_prog_CC="$CC" # Let the user override the test. ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +- ac_prog_rejected=no +- ac_dummy="$PATH" +- for ac_dir in $ac_dummy; do +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/$ac_word; then +- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then +- ac_prog_rejected=yes +- continue +- fi +- ac_cv_prog_CC="cc" +- break +- fi +- done +- IFS="$ac_save_ifs" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CC="gcc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 ++echo "${ECHO_T}$ac_ct_CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ CC=$ac_ct_CC ++else ++ CC="$ac_cv_prog_CC" ++fi ++ ++if test -z "$CC"; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. ++set dummy ${ac_tool_prefix}cc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="${ac_tool_prefix}cc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ echo "$as_me:$LINENO: result: $CC" >&5 ++echo "${ECHO_T}$CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++fi ++if test -z "$ac_cv_prog_CC"; then ++ ac_ct_CC=$CC ++ # Extract the first word of "cc", so it can be a program name with args. ++set dummy cc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CC="cc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 ++echo "${ECHO_T}$ac_ct_CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ CC=$ac_ct_CC ++else ++ CC="$ac_cv_prog_CC" ++fi ++ ++fi ++if test -z "$CC"; then ++ # Extract the first word of "cc", so it can be a program name with args. ++set dummy cc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ ac_prog_rejected=no ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ++ ac_prog_rejected=yes ++ continue ++ fi ++ ac_cv_prog_CC="cc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ + if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift +- if test $# -gt 0; then ++ if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift +- set dummy "$ac_dir/$ac_word" "$@" +- shift +- ac_cv_prog_CC="$@" ++ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi + fi + fi + fi +-CC="$ac_cv_prog_CC" ++CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$ac_t""$CC" 1>&6 ++ echo "$as_me:$LINENO: result: $CC" >&5 ++echo "${ECHO_T}$CC" >&6 + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +- if test -z "$CC"; then +- case "`uname -s`" in +- *win32* | *WIN32*) +- # Extract the first word of "cl", so it can be a program name with args. +-set dummy cl; ac_word=$2 +-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:874: checking for $ac_word" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++fi ++if test -z "$CC"; then ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in cl ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +- ac_dummy="$PATH" +- for ac_dir in $ac_dummy; do +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/$ac_word; then +- ac_cv_prog_CC="cl" +- break +- fi +- done +- IFS="$ac_save_ifs" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="$ac_tool_prefix$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ + fi + fi +-CC="$ac_cv_prog_CC" ++CC=$ac_cv_prog_CC + if test -n "$CC"; then +- echo "$ac_t""$CC" 1>&6 ++ echo "$as_me:$LINENO: result: $CC" >&5 ++echo "${ECHO_T}$CC" >&6 + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi +- ;; +- esac ++ ++ test -n "$CC" && break ++ done ++fi ++if test -z "$CC"; then ++ ac_ct_CC=$CC ++ for ac_prog in cl ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CC="$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 + fi +- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } ++done ++done ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 ++echo "${ECHO_T}$ac_ct_CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:906: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++ test -n "$ac_ct_CC" && break ++done + +-ac_ext=c +-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +-cross_compiling=$ac_cv_prog_cc_cross ++ CC=$ac_ct_CC ++fi + +-cat > conftest.$ac_ext << EOF ++fi + +-#line 917 "configure" +-#include "confdefs.h" + +-main(){return(0);} +-EOF +-if { (eval echo configure:922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- ac_cv_prog_cc_works=yes +- # If we can't run a trivial program, we are probably using a cross compiler. +- if (./conftest; exit) 2>/dev/null; then +- ac_cv_prog_cc_cross=no +- else +- ac_cv_prog_cc_cross=yes +- fi ++test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH ++See \`config.log' for more details." >&5 ++echo "$as_me: error: no acceptable C compiler found in \$PATH ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++ ++# Provide some information about the compiler. ++echo "$as_me:$LINENO:" \ ++ "checking for C compiler version" >&5 ++ac_compiler=`set X $ac_compile; echo $2` ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version
&5\"") >&5 ++ (eval $ac_compiler --version
&5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 ++ (eval $ac_compiler -v &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 ++ (eval $ac_compiler -V &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++ac_clean_files_save=$ac_clean_files ++ac_clean_files="$ac_clean_files a.out a.exe b.out" ++# Try to create an executable without -o first, disregard a.out. ++# It will help us diagnose broken compilers, and finding out an intuition ++# of exeext. ++echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ++echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ++ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` ++if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 ++ (eval $ac_link_default) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ # Find the output, starting from the most likely. This scheme is ++# not robust to junk in `.', hence go to wildcards (a.*) only as a last ++# resort. ++ ++# Be careful to initialize this variable, since it used to be cached. ++# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ++ac_cv_exeext= ++# b.out is created by i960 compilers. ++for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out ++do ++ test -f "$ac_file" || continue ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ++ ;; ++ conftest.$ac_ext ) ++ # This is the source file. ++ ;; ++ [ab].out ) ++ # We found the default executable, but exeext='' is most ++ # certainly right. ++ break;; ++ *.* ) ++ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ # FIXME: I believe we export ac_cv_exeext for Libtool, ++ # but it would be cool to find out if it's true. Does anybody ++ # maintain Libtool? --akim. ++ export ac_cv_exeext ++ break;; ++ * ) ++ break;; ++ esac ++done + else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- ac_cv_prog_cc_works=no +-fi +-rm -fr conftest* +-ac_ext=c +-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +-cross_compiling=$ac_cv_prog_cc_cross ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +-if test $ac_cv_prog_cc_works = no; then +- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } ++{ { echo "$as_me:$LINENO: error: C compiler cannot create executables ++See \`config.log' for more details." >&5 ++echo "$as_me: error: C compiler cannot create executables ++See \`config.log' for more details." >&2;} ++ { (exit 77); exit 77; }; } ++fi ++ ++ac_exeext=$ac_cv_exeext ++echo "$as_me:$LINENO: result: $ac_file" >&5 ++echo "${ECHO_T}$ac_file" >&6 ++ ++# Check the compiler produces executables we can run. If not, either ++# the compiler is broken, or we cross compile. ++echo "$as_me:$LINENO: checking whether the C compiler works" >&5 ++echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 ++# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 ++# If not cross compiling, check that we can run a simple program. ++if test "$cross_compiling" != yes; then ++ if { ac_try='./$ac_file' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cross_compiling=no ++ else ++ if test "$cross_compiling" = maybe; then ++ cross_compiling=yes ++ else ++ { { echo "$as_me:$LINENO: error: cannot run C compiled programs. ++If you meant to cross compile, use \`--host'. ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot run C compiled programs. ++If you meant to cross compile, use \`--host'. ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ fi + fi +-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:948: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +-cross_compiling=$ac_cv_prog_cc_cross ++echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + +-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +-echo "configure:953: checking whether we are using GNU C" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++rm -f a.out a.exe conftest$ac_cv_exeext b.out ++ac_clean_files=$ac_clean_files_save ++# Check the compiler produces executables we can run. If not, either ++# the compiler is broken, or we cross compile. ++echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 ++echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 ++echo "$as_me:$LINENO: result: $cross_compiling" >&5 ++echo "${ECHO_T}$cross_compiling" >&6 ++ ++echo "$as_me:$LINENO: checking for suffix of executables" >&5 ++echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ # If both `conftest.exe' and `conftest' are `present' (well, observable) ++# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will ++# work properly (i.e., refer to `conftest.exe'), while it won't with ++# `rm'. ++for ac_file in conftest.exe conftest conftest.*; do ++ test -f "$ac_file" || continue ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; ++ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ export ac_cv_exeext ++ break;; ++ * ) break;; ++ esac ++done + else +- cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +- ac_cv_prog_gcc=yes ++ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute suffix of executables: cannot compile and link ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++rm -f conftest$ac_cv_exeext ++echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 ++echo "${ECHO_T}$ac_cv_exeext" >&6 ++ ++rm -f conftest.$ac_ext ++EXEEXT=$ac_cv_exeext ++ac_exeext=$EXEEXT ++echo "$as_me:$LINENO: checking for suffix of object files" >&5 ++echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 ++if test "${ac_cv_objext+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.o conftest.obj ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; ++ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` ++ break;; ++ esac ++done + else +- ac_cv_prog_gcc=no +-fi +-fi +- +-echo "$ac_t""$ac_cv_prog_gcc" 1>&6 ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-if test $ac_cv_prog_gcc = yes; then +- GCC=yes +-else +- GCC= +-fi ++{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute suffix of object files: cannot compile ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++rm -f conftest.$ac_cv_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 ++echo "${ECHO_T}$ac_cv_objext" >&6 ++OBJEXT=$ac_cv_objext ++ac_objext=$OBJEXT ++echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 ++echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 ++if test "${ac_cv_c_compiler_gnu+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++#ifndef __GNUC__ ++ choke me ++#endif + +-ac_test_CFLAGS="${CFLAGS+set}" +-ac_save_CFLAGS="$CFLAGS" +-CFLAGS= +-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:981: checking whether ${CC-cc} accepts -g" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- echo 'void f(){}' > conftest.c +-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_compiler_gnu=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_compiler_gnu=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ac_cv_c_compiler_gnu=$ac_compiler_gnu ++ ++fi ++echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 ++echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 ++GCC=`test $ac_compiler_gnu = yes && echo yes` ++ac_test_CFLAGS=${CFLAGS+set} ++ac_save_CFLAGS=$CFLAGS ++CFLAGS="-g" ++echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 ++echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 ++if test "${ac_cv_prog_cc_g+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes + else +- ac_cv_prog_cc_g=no +-fi +-rm -f conftest* ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + ++ac_cv_prog_cc_g=no + fi +- +-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 ++echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 + if test "$ac_test_CFLAGS" = set; then +- CFLAGS="$ac_save_CFLAGS" ++ CFLAGS=$ac_save_CFLAGS + elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" +@@ -1007,136 +2270,494 @@ + CFLAGS= + fi + fi +- +-for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl ++echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 ++echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 ++if test "${ac_cv_prog_cc_stdc+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_cv_prog_cc_stdc=no ++ac_save_CC=$CC ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ++struct buf { int x; }; ++FILE * (*rcsopen) (struct buf *, struct stat *, int); ++static char *e (p, i) ++ char **p; ++ int i; ++{ ++ return p[i]; ++} ++static char *f (char * (*g) (char **, int), char **p, ...) ++{ ++ char *s; ++ va_list v; ++ va_start (v,p); ++ s = g (p, va_arg (v,int)); ++ va_end (v); ++ return s; ++} ++ ++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has ++ function prototypes and stuff, but not '\xHH' hex character constants. ++ These don't provoke an error unfortunately, instead are silently treated ++ as 'x'. The following induces an error, until -std1 is added to get ++ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an ++ array size at least. It's necessary to write '\x00'==0 to get something ++ that's true only with -std1. */ ++int osf4_cc_array ['\x00' == 0 ? 1 : -1]; ++ ++int test (int i, double x); ++struct s1 {int (*f) (int a);}; ++struct s2 {int (*f) (double a);}; ++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ++int argc; ++char **argv; ++int ++main () ++{ ++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++ ; ++ return 0; ++} ++_ACEOF ++# Don't try gcc -ansi; that turns off useful extensions and ++# breaks some systems' header files. ++# AIX -qlanglvl=ansi ++# Ultrix and OSF/1 -std1 ++# HP-UX 10.20 and later -Ae ++# HP-UX older versions -Aa -D_HPUX_SOURCE ++# SVR4 -Xc -D__EXTENSIONS__ ++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" + do +-# Extract the first word of "$ac_prog", so it can be a program name with args. +-set dummy $ac_prog; ac_word=$2 +-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1017: checking for $ac_word" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ CC="$ac_save_CC $ac_arg" ++ rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_prog_cc_stdc=$ac_arg ++break + else +- if test -n "$CXX"; then +- ac_cv_prog_CXX="$CXX" # Let the user override the test. +-else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +- ac_dummy="$PATH" +- for ac_dir in $ac_dummy; do +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/$ac_word; then +- ac_cv_prog_CXX="$ac_prog" +- break +- fi +- done +- IFS="$ac_save_ifs" ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ + fi ++rm -f conftest.err conftest.$ac_objext ++done ++rm -f conftest.$ac_ext conftest.$ac_objext ++CC=$ac_save_CC ++ + fi +-CXX="$ac_cv_prog_CXX" +-if test -n "$CXX"; then +- echo "$ac_t""$CXX" 1>&6 ++ ++case "x$ac_cv_prog_cc_stdc" in ++ x|xno) ++ echo "$as_me:$LINENO: result: none needed" >&5 ++echo "${ECHO_T}none needed" >&6 ;; ++ *) ++ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 ++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 ++ CC="$CC $ac_cv_prog_cc_stdc" ;; ++esac ++ ++# Some people use a C++ compiler to compile C. Since we use `exit', ++# in C++ we need to declare it. In case someone uses the same compiler ++# for both compiling C and C++ we need to have the C++ compiler decide ++# the declaration of exit, since it's the most demanding environment. ++cat >conftest.$ac_ext <<_ACEOF ++#ifndef __cplusplus ++ choke me ++#endif ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ for ac_declaration in \ ++ '' \ ++ 'extern "C" void std::exit (int) throw (); using std::exit;' \ ++ 'extern "C" void std::exit (int); using std::exit;' \ ++ 'extern "C" void exit (int) throw ();' \ ++ 'extern "C" void exit (int);' \ ++ 'void exit (int);' ++do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_declaration ++#include ++int ++main () ++{ ++exit (42); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++continue + fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_declaration ++int ++main () ++{ ++exit (42); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-test -n "$CXX" && break ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done +-test -n "$CXX" || CXX="gcc" ++rm -f conftest* ++if test -n "$ac_declaration"; then ++ echo '#ifdef __cplusplus' >>confdefs.h ++ echo $ac_declaration >>confdefs.h ++ echo '#endif' >>confdefs.h ++fi + ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1049: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu + +-ac_ext=C +-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ++ac_ext=cc + ac_cpp='$CXXCPP $CPPFLAGS' +-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +-cross_compiling=$ac_cv_prog_cxx_cross +- +-cat > conftest.$ac_ext << EOF +- +-#line 1060 "configure" +-#include "confdefs.h" +- +-int main(){return(0);} +-EOF +-if { (eval echo configure:1065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- ac_cv_prog_cxx_works=yes +- # If we can't run a trivial program, we are probably using a cross compiler. +- if (./conftest; exit) 2>/dev/null; then +- ac_cv_prog_cxx_cross=no +- else +- ac_cv_prog_cxx_cross=yes ++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CXX+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$CXX"; then ++ ac_cv_prog_CXX="$CXX" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 + fi ++done ++done ++ ++fi ++fi ++CXX=$ac_cv_prog_CXX ++if test -n "$CXX"; then ++ echo "$as_me:$LINENO: result: $CXX" >&5 ++echo "${ECHO_T}$CXX" >&6 + else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- ac_cv_prog_cxx_works=no ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi +-rm -fr conftest* +-ac_ext=c +-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +-cross_compiling=$ac_cv_prog_cc_cross + +-echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 +-if test $ac_cv_prog_cxx_works = no; then +- { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } ++ test -n "$CXX" && break ++ done + fi +-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:1091: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +-echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 +-cross_compiling=$ac_cv_prog_cxx_cross +- +-echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 +-echo "configure:1096: checking whether we are using GNU C++" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++if test -z "$CXX"; then ++ ac_ct_CXX=$CXX ++ for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +- ac_cv_prog_gxx=yes ++ if test -n "$ac_ct_CXX"; then ++ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. + else +- ac_cv_prog_gxx=no ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CXX="$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ + fi + fi ++ac_ct_CXX=$ac_cv_prog_ac_ct_CXX ++if test -n "$ac_ct_CXX"; then ++ echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 ++echo "${ECHO_T}$ac_ct_CXX" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi + +-echo "$ac_t""$ac_cv_prog_gxx" 1>&6 ++ test -n "$ac_ct_CXX" && break ++done ++test -n "$ac_ct_CXX" || ac_ct_CXX="g++" + +-if test $ac_cv_prog_gxx = yes; then +- GXX=yes +-else +- GXX= ++ CXX=$ac_ct_CXX + fi + +-ac_test_CXXFLAGS="${CXXFLAGS+set}" +-ac_save_CXXFLAGS="$CXXFLAGS" +-CXXFLAGS= +-echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 +-echo "configure:1124: checking whether ${CXX-g++} accepts -g" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- echo 'void f(){}' > conftest.cc +-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then ++ ++# Provide some information about the compiler. ++echo "$as_me:$LINENO:" \ ++ "checking for C++ compiler version" >&5 ++ac_compiler=`set X $ac_compile; echo $2` ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 ++ (eval $ac_compiler --version &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 ++ (eval $ac_compiler -v &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 ++ (eval $ac_compiler -V &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++ ++echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 ++echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 ++if test "${ac_cv_cxx_compiler_gnu+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++#ifndef __GNUC__ ++ choke me ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_compiler_gnu=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_compiler_gnu=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ac_cv_cxx_compiler_gnu=$ac_compiler_gnu ++ ++fi ++echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 ++echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 ++GXX=`test $ac_compiler_gnu = yes && echo yes` ++ac_test_CXXFLAGS=${CXXFLAGS+set} ++ac_save_CXXFLAGS=$CXXFLAGS ++CXXFLAGS="-g" ++echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 ++echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 ++if test "${ac_cv_prog_cxx_g+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + ac_cv_prog_cxx_g=yes + else +- ac_cv_prog_cxx_g=no +-fi +-rm -f conftest* ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + ++ac_cv_prog_cxx_g=no + fi +- +-echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 ++echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 + if test "$ac_test_CXXFLAGS" = set; then +- CXXFLAGS="$ac_save_CXXFLAGS" ++ CXXFLAGS=$ac_save_CXXFLAGS + elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" +@@ -1150,6 +2771,115 @@ + CXXFLAGS= + fi + fi ++for ac_declaration in \ ++ '' \ ++ 'extern "C" void std::exit (int) throw (); using std::exit;' \ ++ 'extern "C" void std::exit (int); using std::exit;' \ ++ 'extern "C" void exit (int) throw ();' \ ++ 'extern "C" void exit (int);' \ ++ 'void exit (int);' ++do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_declaration ++#include ++int ++main () ++{ ++exit (42); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++continue ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_declaration ++int ++main () ++{ ++exit (42); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++rm -f conftest* ++if test -n "$ac_declaration"; then ++ echo '#ifdef __cplusplus' >>confdefs.h ++ echo $ac_declaration >>confdefs.h ++ echo '#endif' >>confdefs.h ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu + + # Find a good install program. We prefer a C program (faster), + # so one script is as good as another. But avoid the broken or +@@ -1158,505 +2888,1513 @@ + # SunOS /usr/etc/install + # IRIX /sbin/install + # AIX /bin/install ++# AmigaOS /C/install, which installs bootblocks on floppy discs + # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag + # AFS /usr/afsws/bin/install, which mishandles nonexistent args + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic + # ./install, which can be erroneously created by make from ./install.sh. +-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +-echo "configure:1167: checking for a BSD compatible install" >&5 ++echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 + if test -z "$INSTALL"; then +-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++if test "${ac_cv_path_install+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" +- for ac_dir in $PATH; do +- # Account for people who put trailing slashes in PATH elements. +- case "$ac_dir/" in +- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; +- *) +- # OSF1 and SCO ODT 3.0 have their own names for install. +- # Don't use installbsd from OSF since it installs stuff as root +- # by default. +- for ac_prog in ginstall scoinst install; do +- if test -f $ac_dir/$ac_prog; then ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ # Account for people who put trailing slashes in PATH elements. ++case $as_dir/ in ++ ./ | .// | /cC/* | \ ++ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ ++ /usr/ucb/* ) ;; ++ *) ++ # OSF1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF since it installs stuff as root ++ # by default. ++ for ac_prog in ginstall scoinst install; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && +- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : + else +- ac_cv_path_install="$ac_dir/$ac_prog -c" +- break 2 ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 + fi + fi + done +- ;; +- esac +- done +- IFS="$ac_save_IFS" ++ done ++ ;; ++esac ++done ++ + + fi + if test "${ac_cv_path_install+set}" = set; then +- INSTALL="$ac_cv_path_install" ++ INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. +- INSTALL="$ac_install_sh" ++ INSTALL=$ac_install_sh + fi + fi +-echo "$ac_t""$INSTALL" 1>&6 ++echo "$as_me:$LINENO: result: $INSTALL" >&5 ++echo "${ECHO_T}$INSTALL" >&6 + + # Use test -z because SunOS4 sh mishandles braces in ${var-val}. + # It thinks the first close brace ends the variable substitution. + test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + + for ac_prog in sed + do +-# Extract the first word of "$ac_prog", so it can be a program name with args. ++ # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1225: checking for $ac_word" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_regex_cmd'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_regex_cmd+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$regex_cmd"; then + ac_cv_prog_regex_cmd="$regex_cmd" # Let the user override the test. + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +- ac_dummy="$PATH" +- for ac_dir in $ac_dummy; do +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/$ac_word; then +- ac_cv_prog_regex_cmd="$ac_prog" +- break +- fi +- done +- IFS="$ac_save_ifs" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_regex_cmd="$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ + fi + fi +-regex_cmd="$ac_cv_prog_regex_cmd" ++regex_cmd=$ac_cv_prog_regex_cmd + if test -n "$regex_cmd"; then +- echo "$ac_t""$regex_cmd" 1>&6 ++ echo "$as_me:$LINENO: result: $regex_cmd" >&5 ++echo "${ECHO_T}$regex_cmd" >&6 + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +-test -n "$regex_cmd" && break ++ test -n "$regex_cmd" && break + done + + if test x$regex_cmd = "x"; then +- { echo "configure: error: error. sed is required to build the default menu file." 1>&2; exit 1; } ++ { { echo "$as_me:$LINENO: error: error. sed is required to build the default menu file." >&5 ++echo "$as_me: error: error. sed is required to build the default menu file." >&2;} ++ { (exit 1); exit 1; }; } + fi + +-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +-echo "configure:1259: checking how to run the C preprocessor" >&5 ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 ++echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 + # On Suns, sometimes $CPP names a directory. + if test -n "$CPP" && test -d "$CPP"; then + CPP= + fi + if test -z "$CPP"; then +-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ if test "${ac_cv_prog_CPP+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- # This must be in double quotes, not single quotes, because CPP may get +- # substituted into the Makefile and "${CC-cc}" will confuse make. +- CPP="${CC-cc} -E" ++ # Double quotes because CPP needs to be expanded ++ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" ++ do ++ ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, +- # not just through cpp. +- cat > conftest.$ac_ext < +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1280: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then + : + else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP="${CC-cc} -E -traditional-cpp" +- cat > conftest.$ac_ext < +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Broken: fails on valid input. ++continue ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether non-existent headers ++ # can be detected and how. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ # Broken: success on invalid input. ++continue ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then ++ break ++fi ++ ++ done ++ ac_cv_prog_CPP=$CPP ++ ++fi ++ CPP=$ac_cv_prog_CPP ++else ++ ac_cv_prog_CPP=$CPP ++fi ++echo "$as_me:$LINENO: result: $CPP" >&5 ++echo "${ECHO_T}$CPP" >&6 ++ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Broken: fails on valid input. ++continue ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether non-existent headers ++ # can be detected and how. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ # Broken: success on invalid input. ++continue ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then + : + else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP="${CC-cc} -nologo -E" +- cat > conftest.$ac_ext < +-Syntax Error +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1314: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then ++ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details." >&5 ++echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++echo "$as_me:$LINENO: checking for egrep" >&5 ++echo $ECHO_N "checking for egrep... $ECHO_C" >&6 ++if test "${ac_cv_prog_egrep+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if echo a | (grep -E '(a|b)') >/dev/null 2>&1 ++ then ac_cv_prog_egrep='grep -E' ++ else ac_cv_prog_egrep='egrep' ++ fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 ++echo "${ECHO_T}$ac_cv_prog_egrep" >&6 ++ EGREP=$ac_cv_prog_egrep ++ ++ ++echo "$as_me:$LINENO: checking for ANSI C header files" >&5 ++echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 ++if test "${ac_cv_header_stdc+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_header_stdc=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_header_stdc=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "memchr" >/dev/null 2>&1; then + : + else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- CPP=/lib/cpp ++ ac_cv_header_stdc=no + fi + rm -f conftest* ++ + fi +-rm -f conftest* ++ ++if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "free" >/dev/null 2>&1; then ++ : ++else ++ ac_cv_header_stdc=no + fi + rm -f conftest* +- ac_cv_prog_CPP="$CPP" ++ + fi +- CPP="$ac_cv_prog_CPP" ++ ++if test $ac_cv_header_stdc = yes; then ++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ++ if test "$cross_compiling" = yes; then ++ : ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#if ((' ' & 0x0FF) == 0x020) ++# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ++#else ++# define ISLOWER(c) \ ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) ++# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ++#endif ++ ++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ++int ++main () ++{ ++ int i; ++ for (i = 0; i < 256; i++) ++ if (XOR (islower (i), ISLOWER (i)) ++ || toupper (i) != TOUPPER (i)) ++ exit(2); ++ exit (0); ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : + else +- ac_cv_prog_CPP="$CPP" ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++ac_cv_header_stdc=no ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi + fi +-echo "$ac_t""$CPP" 1>&6 ++echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 ++echo "${ECHO_T}$ac_cv_header_stdc" >&6 ++if test $ac_cv_header_stdc = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define STDC_HEADERS 1 ++_ACEOF + +-for ac_hdr in ctype.h dirent.h fcntl.h libgen.h locale.h nl_types.h process.h signal.h stdarg.h stdio.h stdlib.h string.h time.h unistd.h sys/param.h sys/select.h sys/signal.h sys/stat.h sys/time.h sys/types.h sys/wait.h +-do +-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +-echo "configure:1342: checking for $ac_hdr" >&5 +-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext < +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then +- rm -rf conftest* +- eval "ac_cv_header_$ac_safe=yes" +-else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_header_$ac_safe=no" + fi +-rm -f conftest* ++ ++# On IRIX 5.3, sys/types and inttypes.h are conflicting. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ++ inttypes.h stdint.h unistd.h ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_header" >&5 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++ ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_Header=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_Header=no" ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++for ac_header in ctype.h dirent.h fcntl.h libgen.h locale.h nl_types.h process.h signal.h stdarg.h stdio.h stdlib.h string.h time.h unistd.h sys/param.h sys/select.h sys/signal.h sys/stat.h sys/time.h sys/types.h sys/wait.h ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo "$as_me:$LINENO: checking for $ac_header" >&5 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++else ++ # Is the header compilable? ++echo "$as_me:$LINENO: checking $ac_header usability" >&5 ++echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_header_compiler=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_header_compiler=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++echo "${ECHO_T}$ac_header_compiler" >&6 ++ ++# Is the header present? ++echo "$as_me:$LINENO: checking $ac_header presence" >&5 ++echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include <$ac_header> ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes + fi +-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` +- cat >> confdefs.h <&6 ++if test -z "$ac_cpp_err"; then ++ ac_header_preproc=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_preproc=no ++fi ++rm -f conftest.err conftest.$ac_ext ++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++echo "${ECHO_T}$ac_header_preproc" >&6 ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 ++echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ++echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ++ ( ++ cat <<\_ASBOX ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## ++_ASBOX ++ ) | ++ sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++echo "$as_me:$LINENO: checking for $ac_header" >&5 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ eval "$as_ac_Header=\$ac_header_preproc" ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++ ++fi ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ + fi ++ + done + +-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +-echo "configure:1379: checking whether time.h and sys/time.h may both be included" >&5 +-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <&5 ++echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 ++if test "${ac_cv_header_time+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + #include + #include + #include +-int main() { +-struct tm *tp; +-; return 0; } +-EOF +-if { (eval echo configure:1393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +- rm -rf conftest* ++ ++int ++main () ++{ ++if ((struct tm *) 0) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + ac_cv_header_time=yes + else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- ac_cv_header_time=no ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_header_time=no + fi +-rm -f conftest* ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +- +-echo "$ac_t""$ac_cv_header_time" 1>&6 ++echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 ++echo "${ECHO_T}$ac_cv_header_time" >&6 + if test $ac_cv_header_time = yes; then +- cat >> confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\_ACEOF + #define TIME_WITH_SYS_TIME 1 +-EOF ++_ACEOF + + fi + + ++ + for ac_func in basename + do +-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:1417: checking for $ac_func" >&5 +-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $ac_func(); below. */ +-#include ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++else ++ echo "$as_me:$LINENO: checking for basename in -lgen" >&5 ++echo $ECHO_N "checking for basename in -lgen... $ECHO_C" >&6 ++if test "${ac_cv_lib_gen_basename+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lgen $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char basename (); ++int ++main () ++{ ++basename (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_gen_basename=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_gen_basename=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_gen_basename" >&5 ++echo "${ECHO_T}$ac_cv_lib_gen_basename" >&6 ++if test $ac_cv_lib_gen_basename = yes; then ++ cat >>confdefs.h <<\_ACEOF ++#define HAVE_BASENAME 1 ++_ACEOF ++ LIBS="$LIBS -lgen" ++fi ++ ++fi ++done ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++for ac_func in getpid setlocale sigaction strftime strcasestr snprintf vsnprintf catopen catgets catclose ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif + /* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char $ac_func(); ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif + +-int main() { ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++echo "$as_me:$LINENO: checking for t_open in -lnsl" >&5 ++echo $ECHO_N "checking for t_open in -lnsl... $ECHO_C" >&6 ++if test "${ac_cv_lib_nsl_t_open+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lnsl $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char t_open (); ++int ++main () ++{ ++t_open (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_nsl_t_open=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_nsl_t_open=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_t_open" >&5 ++echo "${ECHO_T}$ac_cv_lib_nsl_t_open" >&6 ++if test $ac_cv_lib_nsl_t_open = yes; then ++ LIBS="$LIBS -lnsl" ++fi ++ ++echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 ++echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 ++if test "${ac_cv_lib_socket_socket+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsocket $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char socket (); ++int ++main () ++{ ++socket (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_socket_socket=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_socket_socket=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 ++echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6 ++if test $ac_cv_lib_socket_socket = yes; then ++ LIBS="$LIBS -lsocket" ++fi ++ ++ ++echo "$as_me:$LINENO: checking for X" >&5 ++echo $ECHO_N "checking for X... $ECHO_C" >&6 ++ ++ac_path_x_has_been_run=yes ++ ++# Check whether --with-x or --without-x was given. ++if test "${with_x+set}" = set; then ++ withval="$with_x" ++ ++fi; ++# $have_x is `yes', `no', `disabled', or empty when we do not yet know. ++if test "x$with_x" = xno; then ++ # The user explicitly disabled X. ++ have_x=disabled ++else ++ if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then ++ # Both variables are already set. ++ have_x=yes ++ else ++ if test "${ac_cv_have_x+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ # One or both of the vars are not set, and there is no cached value. ++ac_x_includes=no ac_x_libraries=no ++rm -fr conftest.dir ++if mkdir conftest.dir; then ++ cd conftest.dir ++ # Make sure to not put "make" in the Imakefile rules, since we grep it out. ++ cat >Imakefile <<'_ACEOF' ++acfindx: ++ @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' ++_ACEOF ++ if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then ++ # GNU make sometimes prints "make[1]: Entering...", which would confuse us. ++ eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` ++ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. ++ for ac_extension in a so sl; do ++ if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && ++ test -f $ac_im_libdir/libX11.$ac_extension; then ++ ac_im_usrlibdir=$ac_im_libdir; break ++ fi ++ done ++ # Screen out bogus values from the imake configuration. They are ++ # bogus both because they are the default anyway, and because ++ # using them would break gcc on systems where it needs fixed includes. ++ case $ac_im_incroot in ++ /usr/include) ;; ++ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; ++ esac ++ case $ac_im_usrlibdir in ++ /usr/lib | /lib) ;; ++ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; ++ esac ++ fi ++ cd .. ++ rm -fr conftest.dir ++fi + +-/* The GNU C library defines this for functions which it implements +- to always fail with ENOSYS. Some functions are actually named +- something starting with __ and the normal name is an alias. */ +-#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +-choke me +-#else +-$ac_func(); +-#endif ++# Standard set of common directories for X headers. ++# Check X11 before X11Rn because it is often a symlink to the current release. ++ac_x_header_dirs=' ++/usr/X11/include ++/usr/X11R6/include ++/usr/X11R5/include ++/usr/X11R4/include ++ ++/usr/include/X11 ++/usr/include/X11R6 ++/usr/include/X11R5 ++/usr/include/X11R4 ++ ++/usr/local/X11/include ++/usr/local/X11R6/include ++/usr/local/X11R5/include ++/usr/local/X11R4/include ++ ++/usr/local/include/X11 ++/usr/local/include/X11R6 ++/usr/local/include/X11R5 ++/usr/local/include/X11R4 ++ ++/usr/X386/include ++/usr/x386/include ++/usr/XFree86/include/X11 ++ ++/usr/include ++/usr/local/include ++/usr/unsupported/include ++/usr/athena/include ++/usr/local/x11r5/include ++/usr/lpp/Xamples/include + +-; return 0; } +-EOF +-if { (eval echo configure:1445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_func_$ac_func=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_func_$ac_func=no" +-fi +-rm -f conftest* +-fi ++/usr/openwin/include ++/usr/openwin/share/include' + +-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` +- cat >> confdefs.h <&6 +-echo $ac_n "checking for basename in -lgen""... $ac_c" 1>&6 +-echo "configure:1467: checking for basename in -lgen" >&5 +-ac_lib_var=`echo gen'_'basename | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++if test "$ac_x_includes" = no; then ++ # Guess where to find include files, by looking for a specified header file. ++ # First, try using that file with no special directory specified. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi + else +- ac_save_LIBS="$LIBS" +-LIBS="-lgen $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" ++ ac_cpp_err=yes + fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" +- +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- cat >> confdefs.h <<\EOF +-#define HAVE_BASENAME 1 +-EOF +- LIBS="$LIBS -lgen" ++if test -z "$ac_cpp_err"; then ++ # We can compile using X headers with no special include directory. ++ac_x_includes= + else +- echo "$ac_t""no" 1>&6 +-fi ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-fi ++ for ac_dir in $ac_x_header_dirs; do ++ if test -r "$ac_dir/X11/Intrinsic.h"; then ++ ac_x_includes=$ac_dir ++ break ++ fi + done +- +-for ac_func in getpid setlocale sigaction strftime strcasestr snprintf vsnprintf catopen catgets catclose +-do +-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +-echo "configure:1515: checking for $ac_func" >&5 +-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext < +-/* Override any gcc2 internal prototype to avoid an error. */ +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char $ac_func(); +- +-int main() { +- +-/* The GNU C library defines this for functions which it implements +- to always fail with ENOSYS. Some functions are actually named +- something starting with __ and the normal name is an alias. */ +-#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +-choke me +-#else +-$ac_func(); +-#endif +- +-; return 0; } +-EOF +-if { (eval echo configure:1543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_func_$ac_func=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_func_$ac_func=no" +-fi +-rm -f conftest* + fi ++rm -f conftest.err conftest.$ac_ext ++fi # $ac_x_includes = no + +-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` +- cat >> confdefs.h <conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++XtMalloc (0) ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ LIBS=$ac_save_LIBS ++# We can link X programs with no special library path. ++ac_x_libraries= + else +- echo "$ac_t""no" 1>&6 +-fi +-done ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-echo $ac_n "checking for t_open in -lnsl""... $ac_c" 1>&6 +-echo "configure:1568: checking for t_open in -lnsl" >&5 +-ac_lib_var=`echo nsl'_'t_open | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- ac_save_LIBS="$LIBS" +-LIBS="-lnsl $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" ++LIBS=$ac_save_LIBS ++for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` ++do ++ # Don't even attempt the hair of trying to link an X program! ++ for ac_extension in a so sl; do ++ if test -r $ac_dir/libXt.$ac_extension; then ++ ac_x_libraries=$ac_dir ++ break 2 ++ fi ++ done ++done + fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi # $ac_x_libraries = no + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- LIBS="$LIBS -lnsl" ++if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then ++ # Didn't find X anywhere. Cache the known absence of X. ++ ac_cv_have_x="have_x=no" + else +- echo "$ac_t""no" 1>&6 ++ # Record where we found X for the cache. ++ ac_cv_have_x="have_x=yes \ ++ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" + fi +- +-echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 +-echo "configure:1608: checking for socket in -lsocket" >&5 +-ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- ac_save_LIBS="$LIBS" +-LIBS="-lsocket $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" + fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- LIBS="$LIBS -lsocket" ++ fi ++ eval "$ac_cv_have_x" ++fi # $with_x != no ++ ++if test "$have_x" != yes; then ++ echo "$as_me:$LINENO: result: $have_x" >&5 ++echo "${ECHO_T}$have_x" >&6 ++ no_x=yes + else +- echo "$ac_t""no" 1>&6 ++ # If each of the values was on the command line, it overrides each guess. ++ test "x$x_includes" = xNONE && x_includes=$ac_x_includes ++ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries ++ # Update the cache value to reflect the command line values. ++ ac_cv_have_x="have_x=yes \ ++ ac_x_includes=$x_includes ac_x_libraries=$x_libraries" ++ # It might be that x_includes is empty (headers are found in the ++ # standard search path. Then output the corresponding message ++ ac_out_x_includes=$x_includes ++ test "x$x_includes" = x && ac_out_x_includes="in standard search path" ++ echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5 ++echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6 + fi + + +-# If we find X, set shell vars x_includes and x_libraries to the +-# paths, otherwise set no_x=yes. +-# Uses ac_ vars as temps to allow command line to override cache and checks. +-# --without-x overrides everything else, but does not touch the cache. +-echo $ac_n "checking for X""... $ac_c" 1>&6 +-echo "configure:1653: checking for X" >&5 ++if test "x$ac_path_x_has_been_run" != xyes; then ++ echo "$as_me:$LINENO: checking for X" >&5 ++echo $ECHO_N "checking for X... $ECHO_C" >&6 ++ ++ac_path_x_has_been_run=yes + + # Check whether --with-x or --without-x was given. + if test "${with_x+set}" = set; then + withval="$with_x" +- : +-fi + ++fi; + # $have_x is `yes', `no', `disabled', or empty when we do not yet know. + if test "x$with_x" = xno; then + # The user explicitly disabled X. +@@ -1666,207 +4404,209 @@ + # Both variables are already set. + have_x=yes + else +-if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ if test "${ac_cv_have_x+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else + # One or both of the vars are not set, and there is no cached value. +-ac_x_includes=NO ac_x_libraries=NO +-rm -fr conftestdir +-if mkdir conftestdir; then +- cd conftestdir ++ac_x_includes=no ac_x_libraries=no ++rm -fr conftest.dir ++if mkdir conftest.dir; then ++ cd conftest.dir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. +- cat > Imakefile <<'EOF' ++ cat >Imakefile <<'_ACEOF' + acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +-EOF ++_ACEOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && +- test -f $ac_im_libdir/libX11.$ac_extension; then +- ac_im_usrlibdir=$ac_im_libdir; break ++ test -f $ac_im_libdir/libX11.$ac_extension; then ++ ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. +- case "$ac_im_incroot" in ++ case $ac_im_incroot in + /usr/include) ;; +- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; ++ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac +- case "$ac_im_usrlibdir" in ++ case $ac_im_usrlibdir in + /usr/lib | /lib) ;; +- *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; ++ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. +- rm -fr conftestdir ++ rm -fr conftest.dir + fi + +-if test "$ac_x_includes" = NO; then +- # Guess where to find include files, by looking for this one X11 .h file. +- test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h ++# Standard set of common directories for X headers. ++# Check X11 before X11Rn because it is often a symlink to the current release. ++ac_x_header_dirs=' ++/usr/X11/include ++/usr/X11R6/include ++/usr/X11R5/include ++/usr/X11R4/include ++ ++/usr/include/X11 ++/usr/include/X11R6 ++/usr/include/X11R5 ++/usr/include/X11R4 ++ ++/usr/local/X11/include ++/usr/local/X11R6/include ++/usr/local/X11R5/include ++/usr/local/X11R4/include ++ ++/usr/local/include/X11 ++/usr/local/include/X11R6 ++/usr/local/include/X11R5 ++/usr/local/include/X11R4 ++ ++/usr/X386/include ++/usr/x386/include ++/usr/XFree86/include/X11 ++ ++/usr/include ++/usr/local/include ++/usr/unsupported/include ++/usr/athena/include ++/usr/local/x11r5/include ++/usr/lpp/Xamples/include ++ ++/usr/openwin/include ++/usr/openwin/share/include' + ++if test "$ac_x_includes" = no; then ++ # Guess where to find include files, by looking for a specified header file. + # First, try using that file with no special directory specified. +-cat > conftest.$ac_ext < +-EOF +-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +-{ (eval echo configure:1720: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +-if test -z "$ac_err"; then +- rm -rf conftest* ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then + # We can compile using X headers with no special include directory. + ac_x_includes= + else +- echo "$ac_err" >&5 +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- # Look for the header file in a standard set of common directories. +-# Check X11 before X11Rn because it is often a symlink to the current release. +- for ac_dir in \ +- /usr/X11/include \ +- /usr/X11R6/include \ +- /usr/X11R5/include \ +- /usr/X11R4/include \ +- \ +- /usr/include/X11 \ +- /usr/include/X11R6 \ +- /usr/include/X11R5 \ +- /usr/include/X11R4 \ +- \ +- /usr/local/X11/include \ +- /usr/local/X11R6/include \ +- /usr/local/X11R5/include \ +- /usr/local/X11R4/include \ +- \ +- /usr/local/include/X11 \ +- /usr/local/include/X11R6 \ +- /usr/local/include/X11R5 \ +- /usr/local/include/X11R4 \ +- \ +- /usr/X386/include \ +- /usr/x386/include \ +- /usr/XFree86/include/X11 \ +- \ +- /usr/include \ +- /usr/local/include \ +- /usr/unsupported/include \ +- /usr/athena/include \ +- /usr/local/x11r5/include \ +- /usr/lpp/Xamples/include \ +- \ +- /usr/openwin/include \ +- /usr/openwin/share/include \ +- ; \ +- do +- if test -r "$ac_dir/$x_direct_test_include"; then +- ac_x_includes=$ac_dir +- break +- fi +- done ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ for ac_dir in $ac_x_header_dirs; do ++ if test -r "$ac_dir/X11/Intrinsic.h"; then ++ ac_x_includes=$ac_dir ++ break ++ fi ++done + fi +-rm -f conftest* +-fi # $ac_x_includes = NO ++rm -f conftest.err conftest.$ac_ext ++fi # $ac_x_includes = no + +-if test "$ac_x_libraries" = NO; then ++if test "$ac_x_libraries" = no; then + # Check for the libraries. +- +- test -z "$x_direct_test_library" && x_direct_test_library=Xt +- test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc +- + # See if we find them without any special options. + # Don't add to $LIBS permanently. +- ac_save_LIBS="$LIBS" +- LIBS="-l$x_direct_test_library $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- LIBS="$ac_save_LIBS" ++ ac_save_LIBS=$LIBS ++ LIBS="-lXt $LIBS" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++XtMalloc (0) ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ LIBS=$ac_save_LIBS + # We can link X programs with no special library path. + ac_x_libraries= + else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- LIBS="$ac_save_LIBS" +-# First see if replacing the include by lib works. +-# Check X11 before X11Rn because it is often a symlink to the current release. +-for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ +- /usr/X11/lib \ +- /usr/X11R6/lib \ +- /usr/X11R5/lib \ +- /usr/X11R4/lib \ +- \ +- /usr/lib/X11 \ +- /usr/lib/X11R6 \ +- /usr/lib/X11R5 \ +- /usr/lib/X11R4 \ +- \ +- /usr/local/X11/lib \ +- /usr/local/X11R6/lib \ +- /usr/local/X11R5/lib \ +- /usr/local/X11R4/lib \ +- \ +- /usr/local/lib/X11 \ +- /usr/local/lib/X11R6 \ +- /usr/local/lib/X11R5 \ +- /usr/local/lib/X11R4 \ +- \ +- /usr/X386/lib \ +- /usr/x386/lib \ +- /usr/XFree86/lib/X11 \ +- \ +- /usr/lib \ +- /usr/local/lib \ +- /usr/unsupported/lib \ +- /usr/athena/lib \ +- /usr/local/x11r5/lib \ +- /usr/lpp/Xamples/lib \ +- /lib/usr/lib/X11 \ +- \ +- /usr/openwin/lib \ +- /usr/openwin/share/lib \ +- ; \ ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++LIBS=$ac_save_LIBS ++for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` + do ++ # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl; do +- if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then ++ if test -r $ac_dir/libXt.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done + done + fi +-rm -f conftest* +-fi # $ac_x_libraries = NO ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi # $ac_x_libraries = no + +-if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then ++if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" + else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ +- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" ++ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" + fi + fi ++ + fi + eval "$ac_cv_have_x" + fi # $with_x != no + + if test "$have_x" != yes; then +- echo "$ac_t""$have_x" 1>&6 ++ echo "$as_me:$LINENO: result: $have_x" >&5 ++echo "${ECHO_T}$have_x" >&6 + no_x=yes + else + # If each of the values was on the command line, it overrides each guess. +@@ -1875,14 +4615,21 @@ + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" +- echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 ++ # It might be that x_includes is empty (headers are found in the ++ # standard search path. Then output the corresponding message ++ ac_out_x_includes=$x_includes ++ test "x$x_includes" = x && ac_out_x_includes="in standard search path" ++ echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5 ++echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6 + fi + ++fi + if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. +- cat >> confdefs.h <<\EOF ++ ++cat >>confdefs.h <<\_ACEOF + #define X_DISPLAY_MISSING 1 +-EOF ++_ACEOF + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= + else +@@ -1895,60 +4642,117 @@ + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . +- case "`(uname -sr) 2>/dev/null`" in ++ case `(uname -sr) 2>/dev/null` in + "SunOS 5"*) +- echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 +-echo "configure:1902: checking whether -R must be followed by a space" >&5 +- ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" +- cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* ++ echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 ++echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 ++ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + ac_R_nospace=yes + else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- ac_R_nospace=no ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_R_nospace=no + fi +-rm -f conftest* ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test $ac_R_nospace = yes; then +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + X_LIBS="$X_LIBS -R$x_libraries" + else + LIBS="$ac_xsave_LIBS -R $x_libraries" +- cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + ac_R_space=yes + else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- ac_R_space=no ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_R_space=no + fi +-rm -f conftest* ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test $ac_R_space = yes; then +- echo "$ac_t""yes" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + X_LIBS="$X_LIBS -R $x_libraries" + else +- echo "$ac_t""neither works" 1>&6 ++ echo "$as_me:$LINENO: result: neither works" >&5 ++echo "${ECHO_T}neither works" >&6 + fi + fi +- LIBS="$ac_xsave_LIBS" ++ LIBS=$ac_xsave_LIBS + esac + fi + +@@ -1959,527 +4763,1010 @@ + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else +- # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X +- # libraries were built with DECnet support. And karl@cs.umb.edu says ++ # Martyn Johnson says this is needed for Ultrix, if the X ++ # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). +- echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 +-echo "configure:1967: checking for dnet_ntoa in -ldnet" >&5 +-ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char XOpenDisplay (); ++int ++main () ++{ ++XOpenDisplay (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 ++echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 ++if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-ldnet $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dnet_ntoa (); ++int ++main () ++{ ++dnet_ntoa (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_dnet_dnet_ntoa=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_dnet_dnet_ntoa=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 ++echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 ++if test $ac_cv_lib_dnet_dnet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +-else +- echo "$ac_t""no" 1>&6 + fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then +- echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 +-echo "configure:2008: checking for dnet_ntoa in -ldnet_stub" >&5 +-ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 ++echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6 ++if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-ldnet_stub $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char dnet_ntoa (); ++int ++main () ++{ ++dnet_ntoa (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_dnet_stub_dnet_ntoa=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_dnet_stub_dnet_ntoa=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 ++echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6 ++if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +-else +- echo "$ac_t""no" 1>&6 + fi + + fi ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. +- # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) ++ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display +- # on Irix 5.2, according to dickey@clark.net. +- echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 +-echo "configure:2056: checking for gethostbyname" >&5 +-if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <&5 ++echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 ++if test "${ac_cv_func_gethostbyname+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define gethostbyname to an innocuous variant, in case declares gethostbyname. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define gethostbyname innocuous_gethostbyname ++ + /* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char gethostbyname(); below. */ +-#include +-/* Override any gcc2 internal prototype to avoid an error. */ +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char gethostbyname(); ++ which can conflict with char gethostbyname (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ + +-int main() { ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif + ++#undef gethostbyname ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char gethostbyname (); + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) + choke me + #else +-gethostbyname(); ++char (*f) () = gethostbyname; ++#endif ++#ifdef __cplusplus ++} + #endif + +-; return 0; } +-EOF +-if { (eval echo configure:2084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_func_gethostbyname=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_func_gethostbyname=no" +-fi +-rm -f conftest* +-fi ++int ++main () ++{ ++return f != gethostbyname; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_gethostbyname=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- : +-else +- echo "$ac_t""no" 1>&6 ++ac_cv_func_gethostbyname=no + fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 ++echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 + + if test $ac_cv_func_gethostbyname = no; then +- echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +-echo "configure:2105: checking for gethostbyname in -lnsl" >&5 +-ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 ++echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 ++if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-lnsl $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char gethostbyname (); ++int ++main () ++{ ++gethostbyname (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_nsl_gethostbyname=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_nsl_gethostbyname=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 ++echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 ++if test $ac_cv_lib_nsl_gethostbyname = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +-else +- echo "$ac_t""no" 1>&6 + fi + ++ if test $ac_cv_lib_nsl_gethostbyname = no; then ++ echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 ++echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6 ++if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lbsd $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char gethostbyname (); ++int ++main () ++{ ++gethostbyname (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_bsd_gethostbyname=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_bsd_gethostbyname=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 ++echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6 ++if test $ac_cv_lib_bsd_gethostbyname = yes; then ++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" ++fi ++ ++ fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary +- # on later versions), says simon@lia.di.epfl.ch: it contains +- # gethostby* variants that don't use the nameserver (or something). +- # -lsocket must be given before -lnsl if both are needed. +- # We assume that if connect needs -lnsl, so does gethostbyname. +- echo $ac_n "checking for connect""... $ac_c" 1>&6 +-echo "configure:2154: checking for connect" >&5 +-if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <&5 ++echo $ECHO_N "checking for connect... $ECHO_C" >&6 ++if test "${ac_cv_func_connect+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define connect to an innocuous variant, in case declares connect. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define connect innocuous_connect ++ + /* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char connect(); below. */ +-#include +-/* Override any gcc2 internal prototype to avoid an error. */ +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char connect(); ++ which can conflict with char connect (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif + +-int main() { ++#undef connect + ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char connect (); + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_connect) || defined (__stub___connect) + choke me + #else +-connect(); ++char (*f) () = connect; ++#endif ++#ifdef __cplusplus ++} + #endif + +-; return 0; } +-EOF +-if { (eval echo configure:2182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_func_connect=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_func_connect=no" +-fi +-rm -f conftest* +-fi ++int ++main () ++{ ++return f != connect; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_connect=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- : +-else +- echo "$ac_t""no" 1>&6 ++ac_cv_func_connect=no + fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 ++echo "${ECHO_T}$ac_cv_func_connect" >&6 + + if test $ac_cv_func_connect = no; then +- echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 +-echo "configure:2203: checking for connect in -lsocket" >&5 +-ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 ++echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6 ++if test "${ac_cv_lib_socket_connect+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char connect (); ++int ++main () ++{ ++connect (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_socket_connect=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_socket_connect=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 ++echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6 ++if test $ac_cv_lib_socket_connect = yes; then + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +-else +- echo "$ac_t""no" 1>&6 + fi + + fi + +- # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. +- echo $ac_n "checking for remove""... $ac_c" 1>&6 +-echo "configure:2246: checking for remove" >&5 +-if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <&5 ++echo $ECHO_N "checking for remove... $ECHO_C" >&6 ++if test "${ac_cv_func_remove+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define remove to an innocuous variant, in case declares remove. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define remove innocuous_remove ++ + /* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char remove(); below. */ +-#include +-/* Override any gcc2 internal prototype to avoid an error. */ +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char remove(); ++ which can conflict with char remove (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ + +-int main() { ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif + ++#undef remove ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char remove (); + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_remove) || defined (__stub___remove) + choke me + #else +-remove(); ++char (*f) () = remove; ++#endif ++#ifdef __cplusplus ++} + #endif + +-; return 0; } +-EOF +-if { (eval echo configure:2274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_func_remove=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_func_remove=no" +-fi +-rm -f conftest* +-fi ++int ++main () ++{ ++return f != remove; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_remove=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- : +-else +- echo "$ac_t""no" 1>&6 ++ac_cv_func_remove=no + fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 ++echo "${ECHO_T}$ac_cv_func_remove" >&6 + + if test $ac_cv_func_remove = no; then +- echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 +-echo "configure:2295: checking for remove in -lposix" >&5 +-ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ echo "$as_me:$LINENO: checking for remove in -lposix" >&5 ++echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6 ++if test "${ac_cv_lib_posix_remove+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-lposix $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char remove (); ++int ++main () ++{ ++remove (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_posix_remove=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_posix_remove=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 ++echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6 ++if test $ac_cv_lib_posix_remove = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +-else +- echo "$ac_t""no" 1>&6 + fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. +- echo $ac_n "checking for shmat""... $ac_c" 1>&6 +-echo "configure:2338: checking for shmat" >&5 +-if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <&5 ++echo $ECHO_N "checking for shmat... $ECHO_C" >&6 ++if test "${ac_cv_func_shmat+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define shmat to an innocuous variant, in case declares shmat. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define shmat innocuous_shmat ++ + /* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char shmat(); below. */ +-#include +-/* Override any gcc2 internal prototype to avoid an error. */ +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char shmat(); ++ which can conflict with char shmat (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif + +-int main() { ++#undef shmat + ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shmat (); + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_shmat) || defined (__stub___shmat) + choke me + #else +-shmat(); ++char (*f) () = shmat; ++#endif ++#ifdef __cplusplus ++} + #endif + +-; return 0; } +-EOF +-if { (eval echo configure:2366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_func_shmat=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_func_shmat=no" +-fi +-rm -f conftest* +-fi ++int ++main () ++{ ++return f != shmat; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_func_shmat=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 + +-if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- : +-else +- echo "$ac_t""no" 1>&6 ++ac_cv_func_shmat=no + fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 ++echo "${ECHO_T}$ac_cv_func_shmat" >&6 + + if test $ac_cv_func_shmat = no; then +- echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 +-echo "configure:2387: checking for shmat in -lipc" >&5 +-ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 ++echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6 ++if test "${ac_cv_lib_ipc_shmat+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-lipc $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char shmat (); ++int ++main () ++{ ++shmat (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_ipc_shmat=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_ipc_shmat=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 ++echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6 ++if test $ac_cv_lib_ipc_shmat = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +-else +- echo "$ac_t""no" 1>&6 + fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. +- ac_save_LDFLAGS="$LDFLAGS" ++ ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. +- # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. +- echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 +-echo "configure:2439: checking for IceConnectionNumber in -lICE" >&5 +-ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ # John Interrante, Karl Berry ++ echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 ++echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6 ++if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" +-LIBS="-lICE $X_EXTRA_LIBS $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lICE $X_EXTRA_LIBS $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char IceConnectionNumber (); ++int ++main () ++{ ++IceConnectionNumber (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_ICE_IceConnectionNumber=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_ICE_IceConnectionNumber=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 ++echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6 ++if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +-else +- echo "$ac_t""no" 1>&6 + fi + +- LDFLAGS="$ac_save_LDFLAGS" ++ LDFLAGS=$ac_save_LDFLAGS + + fi + + +-test x$no_x = "xyes" && { echo "configure: error: Blackbox requires the X Window System libraries and headers." 1>&2; exit 1; } ++test x$no_x = "xyes" && { { echo "$as_me:$LINENO: error: Blackbox requires the X Window System libraries and headers." >&5 ++echo "$as_me: error: Blackbox requires the X Window System libraries and headers." >&2;} ++ { (exit 1); exit 1; }; } + + test x$x_includes = "x" && x_includes="/usr/include" + test x$x_libraries = "x" && x_libraries="/usr/lib" +@@ -2489,71 +5776,107 @@ + LIBS="$LIBS $X_LIBS" + LDFLAGS="$LDFLAGS $LIBS $X_PRE_LIBS" + +-echo $ac_n "checking for GCC""... $ac_c" 1>&6 +-echo "configure:2494: checking for GCC" >&5 ++echo "$as_me:$LINENO: checking for GCC" >&5 ++echo $ECHO_N "checking for GCC... $ECHO_C" >&6 + if test x$GCC = "xyes"; then +- echo "$ac_t""yes" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + CXXFLAGS="${CXXFLAGS} -Wall -W -pedantic" + else +- echo "$ac_t""no, trying other compilers" 1>&6 +- echo $ac_n "checking for MIPSpro""... $ac_c" 1>&6 +-echo "configure:2501: checking for MIPSpro" >&5 ++ echo "$as_me:$LINENO: result: no, trying other compilers" >&5 ++echo "${ECHO_T}no, trying other compilers" >&6 ++ echo "$as_me:$LINENO: checking for MIPSpro" >&5 ++echo $ECHO_N "checking for MIPSpro... $ECHO_C" >&6 + mips_pro_ver=`$CC -version 2>&1 | grep -i mipspro | cut -f4 -d ' '` + if test "x$mips_pro_ver" = "x"; then +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + else +- echo "$ac_t""yes, version $mips_pro_ver." 1>&6 +- echo $ac_n "checking for -LANG:std in CXXFLAGS""... $ac_c" 1>&6 +-echo "configure:2508: checking for -LANG:std in CXXFLAGS" >&5 ++ echo "$as_me:$LINENO: result: yes, version $mips_pro_ver." >&5 ++echo "${ECHO_T}yes, version $mips_pro_ver." >&6 ++ echo "$as_me:$LINENO: checking for -LANG:std in CXXFLAGS" >&5 ++echo $ECHO_N "checking for -LANG:std in CXXFLAGS... $ECHO_C" >&6 + lang_std_not_set=`echo $CXXFLAGS | grep "\-LANG:std"` + if test "x$lang_std_not_set" = "x"; then +- echo "$ac_t""not set, setting." 1>&6 ++ echo "$as_me:$LINENO: result: not set, setting." >&5 ++echo "${ECHO_T}not set, setting." >&6 + CXXFLAGS="${CXXFLAGS} -LANG:std" + else +- echo "$ac_t""already set." 1>&6 ++ echo "$as_me:$LINENO: result: already set." >&5 ++echo "${ECHO_T}already set." >&6 + fi +- fi ++ fi + fi + +-echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 +-echo "configure:2520: checking for XOpenDisplay in -lX11" >&5 +-ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++echo "$as_me:$LINENO: checking for XOpenDisplay in -lX11" >&5 ++echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6 ++if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char XOpenDisplay (); ++int ++main () ++{ ++XOpenDisplay (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_X11_XOpenDisplay=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_X11_XOpenDisplay=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_X11_XOpenDisplay" >&5 ++echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6 ++if test $ac_cv_lib_X11_XOpenDisplay = yes; then + LIBS="$LIBS -lX11" + else +- echo "$ac_t""no" 1>&6 +-{ echo "configure: error: Could not find XOpenDisplay in -lX11." 1>&2; exit 1; } ++ { { echo "$as_me:$LINENO: error: Could not find XOpenDisplay in -lX11." >&5 ++echo "$as_me: error: Could not find XOpenDisplay in -lX11." >&2;} ++ { (exit 1); exit 1; }; } + + fi + +@@ -2563,227 +5886,469 @@ + Xext_lib="" + + SHAPE="" +-echo $ac_n "checking whether to build support for the XShape extension""... $ac_c" 1>&6 +-echo "configure:2568: checking whether to build support for the XShape extension" >&5 ++echo "$as_me:$LINENO: checking whether to build support for the XShape extension" >&5 ++echo $ECHO_N "checking whether to build support for the XShape extension... $ECHO_C" >&6 + # Check whether --enable-shape or --disable-shape was given. + if test "${enable_shape+set}" = set; then + enableval="$enable_shape" +- : +-fi + ++fi; + + : ${enableval="yes"} + if test x$enableval = "xyes"; then +- echo "$ac_t""yes" 1>&6 +- echo $ac_n "checking for XShapeCombineShape in -lXext""... $ac_c" 1>&6 +-echo "configure:2580: checking for XShapeCombineShape in -lXext" >&5 +-ac_lib_var=`echo Xext'_'XShapeCombineShape | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ echo "$as_me:$LINENO: checking for XShapeCombineShape in -lXext" >&5 ++echo $ECHO_N "checking for XShapeCombineShape in -lXext... $ECHO_C" >&6 ++if test "${ac_cv_lib_Xext_XShapeCombineShape+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-lXext $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 +- echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6 +-echo "configure:2615: checking for X11/extensions/shape.h" >&5 +- cat > conftest.$ac_ext <&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_Xext_XShapeCombineShape=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_Xext_XShapeCombineShape=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_Xext_XShapeCombineShape" >&5 ++echo "${ECHO_T}$ac_cv_lib_Xext_XShapeCombineShape" >&6 ++if test $ac_cv_lib_Xext_XShapeCombineShape = yes; then ++ echo "$as_me:$LINENO: checking for X11/extensions/shape.h" >&5 ++echo $ECHO_N "checking for X11/extensions/shape.h... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + #include + #include + #include + +-int main() { ++int ++main () ++{ + long foo = ShapeSet +-; return 0; } +-EOF +-if { (eval echo configure:2627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- echo "$ac_t""yes" 1>&6 ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + SHAPE="-DSHAPE"; Xext_lib="-lXext" + else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- echo "$ac_t""no" 1>&6 +- ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ + fi +-rm -f conftest* +- ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ ++fi ++ + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ ++LIBS="$LIBS $Xext_lib" ++ ++LIBS="$LIBS $X_EXTRA_LIBS" ++ ++Xext_lib="" ++ ++XINERAMA="" ++echo "$as_me:$LINENO: checking whether to build support for the Xinerama extension" >&5 ++echo $ECHO_N "checking whether to build support for the Xinerama extension... $ECHO_C" >&6 ++# Check whether --enable-xinerama or --disable-xinerama was given. ++if test "${enable_xinerama+set}" = set; then ++ enableval="$enable_xinerama" ++ ++fi; ++ ++: ${enableval="yes"} ++if test x$enableval = "xyes"; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ echo "$as_me:$LINENO: checking for XineramaQueryScreens in -lXinerama" >&5 ++echo $ECHO_N "checking for XineramaQueryScreens in -lXinerama... $ECHO_C" >&6 ++if test "${ac_cv_lib_Xinerama_XineramaQueryScreens+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lXinerama $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char XineramaQueryScreens (); ++int ++main () ++{ ++XineramaQueryScreens (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_Xinerama_XineramaQueryScreens=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_Xinerama_XineramaQueryScreens=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_Xinerama_XineramaQueryScreens" >&5 ++echo "${ECHO_T}$ac_cv_lib_Xinerama_XineramaQueryScreens" >&6 ++if test $ac_cv_lib_Xinerama_XineramaQueryScreens = yes; then ++ echo "$as_me:$LINENO: checking for X11/extensions/Xinerama.h" >&5 ++echo $ECHO_N "checking for X11/extensions/Xinerama.h... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++ ++int ++main () ++{ ++XineramaScreenInfo* s = 0 ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ XINERAMA="-DXINERAMA"; Xext_lib="-lXext -lXinerama" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ + fi + + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + + + LIBS="$LIBS $Xext_lib" + + ORDEREDPSEUDO="" +-echo $ac_n "checking whether to include Pseudocolor ordered dithering code""... $ac_c" 1>&6 +-echo "configure:2653: checking whether to include Pseudocolor ordered dithering code" >&5 ++echo "$as_me:$LINENO: checking whether to include Pseudocolor ordered dithering code" >&5 ++echo $ECHO_N "checking whether to include Pseudocolor ordered dithering code... $ECHO_C" >&6 + # Check whether --enable-ordered-pseudo or --disable-ordered-pseudo was given. + if test "${enable_ordered_pseudo+set}" = set; then + enableval="$enable_ordered_pseudo" + if test x$enableval = "xyes"; then +- echo "$ac_t""yes" 1>&6 +- ORDEREDPSEUDO="-DORDEREDPSEUDO" ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ ORDEREDPSEUDO="-DORDEREDPSEUDO" + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + else +- echo "$ac_t""no" 1>&6 +- +-fi ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + ++fi; + + + DEBUG="" +-echo $ac_n "checking whether to include verbose debugging code""... $ac_c" 1>&6 +-echo "configure:2672: checking whether to include verbose debugging code" >&5 ++echo "$as_me:$LINENO: checking whether to include verbose debugging code" >&5 ++echo $ECHO_N "checking whether to include verbose debugging code... $ECHO_C" >&6 + # Check whether --enable-debug or --disable-debug was given. + if test "${enable_debug+set}" = set; then + enableval="$enable_debug" + if test x$enableval = "xyes"; then +- echo "$ac_t""yes" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + if test x$GCC = "xyes"; then + DEBUG="-DDEBUG -fno-inline -g" + else + DEBUG="-DDEBUG" + fi + else +- echo "$ac_t""no" 1>&6 +- DEBUG="-DNDEBUG" ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ DEBUG="-DNDEBUG" + fi + else +- echo "$ac_t""no" 1>&6 +- DEBUG="-DNDEBUG" +- +-fi ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ DEBUG="-DNDEBUG" + ++fi; + + + NLS="" +-echo $ac_n "checking whether to include NLS support""... $ac_c" 1>&6 +-echo "configure:2697: checking whether to include NLS support" >&5 ++echo "$as_me:$LINENO: checking whether to include NLS support" >&5 ++echo $ECHO_N "checking whether to include NLS support... $ECHO_C" >&6 + # Check whether --enable-nls or --disable-nls was given. + if test "${enable_nls+set}" = set; then + enableval="$enable_nls" + if test x$enableval = "xyes"; then +- echo "$ac_t""yes" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + NLS="-DNLS" + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + else +- echo "$ac_t""yes" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + NLS="-DNLS" + +-fi +- ++fi; + + +-echo $ac_n "checking for setlocale in -lxpg4""... $ac_c" 1>&6 +-echo "configure:2716: checking for setlocale in -lxpg4" >&5 +-ac_lib_var=`echo xpg4'_'setlocale | sed 'y%./+-%__p_%'` +-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++echo "$as_me:$LINENO: checking for setlocale in -lxpg4" >&5 ++echo $ECHO_N "checking for setlocale in -lxpg4... $ECHO_C" >&6 ++if test "${ac_cv_lib_xpg4_setlocale+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- ac_save_LIBS="$LIBS" ++ ac_check_lib_save_LIBS=$LIBS + LIBS="-lxpg4 $LIBS" +-cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=yes" +-else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- eval "ac_cv_lib_$ac_lib_var=no" +-fi +-rm -f conftest* +-LIBS="$ac_save_LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + +-fi +-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +- echo "$ac_t""yes" 1>&6 ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char setlocale (); ++int ++main () ++{ ++setlocale (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_xpg4_setlocale=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_xpg4_setlocale=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_xpg4_setlocale" >&5 ++echo "${ECHO_T}$ac_cv_lib_xpg4_setlocale" >&6 ++if test $ac_cv_lib_xpg4_setlocale = yes; then + LIBS="$LIBS -lxpg4" +-else +- echo "$ac_t""no" 1>&6 + fi + + + for ac_prog in gencat + do +-# Extract the first word of "$ac_prog", so it can be a program name with args. ++ # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2761: checking for $ac_word" >&5 +-if eval "test \"`echo '$''{'ac_cv_prog_gencat_cmd'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_gencat_cmd+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$gencat_cmd"; then + ac_cv_prog_gencat_cmd="$gencat_cmd" # Let the user override the test. + else +- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +- ac_dummy="$PATH" +- for ac_dir in $ac_dummy; do +- test -z "$ac_dir" && ac_dir=. +- if test -f $ac_dir/$ac_word; then +- ac_cv_prog_gencat_cmd="$ac_prog" +- break +- fi +- done +- IFS="$ac_save_ifs" ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_gencat_cmd="$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ + fi + fi +-gencat_cmd="$ac_cv_prog_gencat_cmd" ++gencat_cmd=$ac_cv_prog_gencat_cmd + if test -n "$gencat_cmd"; then +- echo "$ac_t""$gencat_cmd" 1>&6 ++ echo "$as_me:$LINENO: result: $gencat_cmd" >&5 ++echo "${ECHO_T}$gencat_cmd" >&6 + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + +-test -n "$gencat_cmd" && break ++ test -n "$gencat_cmd" && break + done + + if test x$gencat_cmd = "x"; then +@@ -2792,37 +6357,42 @@ + + + TIMEDCACHE="" +-echo $ac_n "checking whether to use the new timed pixmap cache""... $ac_c" 1>&6 +-echo "configure:2797: checking whether to use the new timed pixmap cache" >&5 ++echo "$as_me:$LINENO: checking whether to use the new timed pixmap cache" >&5 ++echo $ECHO_N "checking whether to use the new timed pixmap cache... $ECHO_C" >&6 + # Check whether --enable-timed-cache or --disable-timed-cache was given. + if test "${enable_timed_cache+set}" = set; then + enableval="$enable_timed_cache" + if test x$enableval = "xyes"; then +- echo "$ac_t""yes" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + TIMEDCACHE="-DTIMEDCACHE" + else +- echo "$ac_t""no" 1>&6 ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 + fi + else +- echo "$ac_t""yes" 1>&6 ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 + TIMEDCACHE="-DTIMEDCACHE" + +-fi +- ++fi; + + +-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +-echo "configure:2816: checking return type of signal handlers" >&5 +-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then +- echo $ac_n "(cached) $ac_c" 1>&6 +-else +- cat > conftest.$ac_ext <&5 ++echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 ++if test "${ac_cv_type_signal+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ + #include + #include + #ifdef signal +-#undef signal ++# undef signal + #endif + #ifdef __cplusplus + extern "C" void (*signal (int, void (*)(int)))(int); +@@ -2830,41 +6400,65 @@ + void (*signal ()) (); + #endif + +-int main() { ++int ++main () ++{ + int i; +-; return 0; } +-EOF +-if { (eval echo configure:2838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +- rm -rf conftest* ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then + ac_cv_type_signal=void + else +- echo "configure: failed program was:" >&5 +- cat conftest.$ac_ext >&5 +- rm -rf conftest* +- ac_cv_type_signal=int ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_signal=int + fi +-rm -f conftest* ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi ++echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 ++echo "${ECHO_T}$ac_cv_type_signal" >&6 + +-echo "$ac_t""$ac_cv_type_signal" 1>&6 +-cat >> confdefs.h <>confdefs.h <<_ACEOF + #define RETSIGTYPE $ac_cv_type_signal +-EOF ++_ACEOF + + + +-echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +-echo "configure:2858: checking whether to enable maintainer-specific portions of Makefiles" >&5 ++echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 ++echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. + if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval + else + USE_MAINTAINER_MODE=no +-fi ++fi; ++ echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 ++echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 + +- echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 +- + + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= +@@ -2874,460 +6468,1332 @@ + MAINTAINER_MODE_FALSE= + fi + MAINT=$MAINTAINER_MODE_TRUE +- + + +-echo "$ac_t""" 1>&6 +-echo "$ac_t"" $PACKAGE version $VERSION configured successfully." 1>&6 +-echo "$ac_t""" 1>&6 +-echo "$ac_t""Using '$prefix' for installation." 1>&6 +-echo "$ac_t""Using '$CXX' for C++ compiler." 1>&6 +-echo "$ac_t""Building with '$CXXFLAGS' for C++ compiler flags." 1>&6 +-echo "$ac_t""Building with '$LIBS' for linker flags." 1>&6 +-echo "$ac_t""" 1>&6 + ++echo "$as_me:$LINENO: result: " >&5 ++echo "${ECHO_T}" >&6 ++echo "$as_me:$LINENO: result: $PACKAGE version $VERSION configured successfully." >&5 ++echo "${ECHO_T} $PACKAGE version $VERSION configured successfully." >&6 ++echo "$as_me:$LINENO: result: " >&5 ++echo "${ECHO_T}" >&6 ++echo "$as_me:$LINENO: result: Using '$prefix' for installation." >&5 ++echo "${ECHO_T}Using '$prefix' for installation." >&6 ++echo "$as_me:$LINENO: result: Using '$CXX' for C++ compiler." >&5 ++echo "${ECHO_T}Using '$CXX' for C++ compiler." >&6 ++echo "$as_me:$LINENO: result: Building with '$CXXFLAGS' for C++ compiler flags." >&5 ++echo "${ECHO_T}Building with '$CXXFLAGS' for C++ compiler flags." >&6 ++echo "$as_me:$LINENO: result: Building with '$LIBS' for linker flags." >&5 ++echo "${ECHO_T}Building with '$LIBS' for linker flags." >&6 ++echo "$as_me:$LINENO: result: " >&5 ++echo "${ECHO_T}" >&6 + + ++ ac_config_headers="$ac_config_headers config.h" + +-trap '' 1 2 15 +-cat > confcache <<\EOF ++ ac_config_commands="$ac_config_commands default-1" ++ ++ ac_config_files="$ac_config_files Makefile src/Makefile util/Makefile data/Makefile data/styles/Makefile doc/Makefile nls/Makefile nls/C/Makefile nls/da_DK/Makefile nls/de_DE/Makefile nls/es_AR/Makefile nls/es_ES/Makefile nls/fr_FR/Makefile nls/hu_HU/Makefile nls/it_IT/Makefile nls/ja_JP/Makefile nls/ko_KR/Makefile nls/lv_LV/Makefile nls/nl_NL/Makefile nls/no_NO/Makefile nls/pl_PL/Makefile nls/pt_BR/Makefile nls/ro_RO/Makefile nls/ru_RU/Makefile nls/sk_SK/Makefile nls/sl_SI/Makefile nls/sv_SE/Makefile nls/uk_UA/Makefile nls/zh_CN/Makefile nls/zh_TW/Makefile version.h" ++cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure + # tests run on this system so they can be shared between configure +-# scripts and configure runs. It is not useful on other systems. +-# If it contains results you don't want to keep, you may remove or edit it. ++# scripts and configure runs, see configure's option --config-cache. ++# It is not useful on other systems. If it contains results you don't ++# want to keep, you may remove or edit it. + # +-# By default, configure uses ./config.cache as the cache file, +-# creating it if it does not exist already. You can give configure +-# the --cache-file=FILE option to use a different cache file; that is +-# what configure does when it calls configure scripts in +-# subdirectories, so they share the cache. +-# Giving --cache-file=/dev/null disables caching, for debugging configure. +-# config.status only pays attention to the cache file if you give it the +-# --recheck option to rerun configure. ++# config.status only pays attention to the cache file if you give it ++# the --recheck option to rerun configure. + # +-EOF ++# `ac_cv_env_foo' variables (set or unset) will be overridden when ++# loading this file, other *unset* `ac_cv_foo' will be assigned the ++# following values. ++ ++_ACEOF ++ + # The following way of writing the cache mishandles newlines in values, + # but we know of no workaround that is simple, portable, and efficient. + # So, don't put newlines in cache variables' values. + # Ultrix sh set writes to stderr and can't be redirected directly, + # and sets the high bit in the cache file unless we assign to the vars. +-(set) 2>&1 | +- case `(ac_space=' '; set | grep ac_space) 2>&1` in +- *ac_space=\ *) +- # `set' does not quote correctly, so add quotes (double-quote substitution +- # turns \\\\ into \\, and sed turns \\ into \). +- sed -n \ +- -e "s/'/'\\\\''/g" \ +- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" +- ;; +- *) +- # `set' quotes correctly as required by POSIX, so do not add quotes. +- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' +- ;; +- esac >> confcache +-if cmp -s $cache_file confcache; then +- : +-else ++{ ++ (set) 2>&1 | ++ case `(ac_space=' '; set | grep ac_space) 2>&1` in ++ *ac_space=\ *) ++ # `set' does not quote correctly, so add quotes (double-quote ++ # substitution turns \\\\ into \\, and sed turns \\ into \). ++ sed -n \ ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ ;; ++ *) ++ # `set' quotes correctly as required by POSIX, so do not add quotes. ++ sed -n \ ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ ;; ++ esac; ++} | ++ sed ' ++ t clear ++ : clear ++ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ ++ t end ++ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ ++ : end' >>confcache ++if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then +- echo "updating cache $cache_file" +- cat confcache > $cache_file ++ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" ++ cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi + fi + rm -f confcache + +-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 +- + test "x$prefix" = xNONE && prefix=$ac_default_prefix + # Let make expand exec_prefix. + test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +-# Any assignment to VPATH causes Sun make to only execute +-# the first set of double-colon rules, so remove it if not needed. +-# If there is a colon in the path, we need to keep it. ++# VPATH may cause trouble with some makes, so we remove $(srcdir), ++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and ++# trailing colons and then remove the whole line if VPATH becomes empty ++# (actually we leave an empty line to preserve line numbers). + if test "x$srcdir" = x.; then +- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' ++ ac_vpsub='/^[ ]*VPATH[ ]*=/{ ++s/:*\$(srcdir):*/:/; ++s/:*\${srcdir}:*/:/; ++s/:*@srcdir@:*/:/; ++s/^\([^=]*=[ ]*\):*/\1/; ++s/:*$//; ++s/^[^=]*=[ ]*$//; ++}' + fi + +-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 +- + DEFS=-DHAVE_CONFIG_H + +-# Without the "./", some shells look in PATH for config.status. +-: ${CONFIG_STATUS=./config.status} ++ac_libobjs= ++ac_ltlibobjs= ++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue ++ # 1. Remove the extension, and $U if already installed. ++ ac_i=`echo "$ac_i" | ++ sed 's/\$U\././;s/\.o$//;s/\.obj$//'` ++ # 2. Add them. ++ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ++ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' ++done ++LIBOBJS=$ac_libobjs + +-echo creating $CONFIG_STATUS +-rm -f $CONFIG_STATUS +-cat > $CONFIG_STATUS <&5 ++echo "$as_me: creating $CONFIG_STATUS" >&6;} ++cat >$CONFIG_STATUS <<_ACEOF ++#! $SHELL ++# Generated by $as_me. + # Run this file to recreate the current configuration. +-# This directory was configured as follows, +-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +-# +-# $0 $ac_configure_args +-# + # Compiler output produced by configure, useful for debugging +-# configure, is in ./config.log if it exists. ++# configure, is in config.log if it exists. + +-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +-for ac_option ++debug=false ++ac_cs_recheck=false ++ac_cs_silent=false ++SHELL=\${CONFIG_SHELL-$SHELL} ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++## --------------------- ## ++## M4sh Initialization. ## ++## --------------------- ## ++ ++# Be Bourne compatible ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then ++ set -o posix ++fi ++DUALCASE=1; export DUALCASE # for MKS sh ++ ++# Support unset when possible. ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ as_unset=unset ++else ++ as_unset=false ++fi ++ ++ ++# Work around bugs in pre-3.0 UWIN ksh. ++$as_unset ENV MAIL MAILPATH ++PS1='$ ' ++PS2='> ' ++PS4='+ ' ++ ++# NLS nuisances. ++for as_var in \ ++ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ ++ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ ++ LC_TELEPHONE LC_TIME ++do ++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ eval $as_var=C; export $as_var ++ else ++ $as_unset $as_var ++ fi ++done ++ ++# Required to use basename. ++if expr a : '\(a\)' >/dev/null 2>&1; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then ++ as_basename=basename ++else ++ as_basename=false ++fi ++ ++ ++# Name of the executable. ++as_me=`$as_basename "$0" || ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)$' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X/"$0" | ++ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } ++ /^X\/\(\/\/\)$/{ s//\1/; q; } ++ /^X\/\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ ++ ++# PATH needs CR, and LINENO needs CR and PATH. ++# Avoid depending upon Character Ranges. ++as_cr_letters='abcdefghijklmnopqrstuvwxyz' ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS ++as_cr_digits='0123456789' ++as_cr_alnum=$as_cr_Letters$as_cr_digits ++ ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ echo "#! /bin/sh" >conf$$.sh ++ echo "exit 0" >>conf$$.sh ++ chmod +x conf$$.sh ++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ++ PATH_SEPARATOR=';' ++ else ++ PATH_SEPARATOR=: ++ fi ++ rm -f conf$$.sh ++fi ++ ++ ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x$as_lineno_3" = "x$as_lineno_2" || { ++ # Find who we are. Look in the path if we contain no path at all ++ # relative or not. ++ case $0 in ++ *[\\/]* ) as_myself=$0 ;; ++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ++done ++ ++ ;; ++ esac ++ # We did not find ourselves, most probably we were run as `sh COMMAND' ++ # in which case we are not to be found in the path. ++ if test "x$as_myself" = x; then ++ as_myself=$0 ++ fi ++ if test ! -f "$as_myself"; then ++ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 ++echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ case $CONFIG_SHELL in ++ '') ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for as_base in sh bash ksh sh5; do ++ case $as_dir in ++ /*) ++ if ("$as_dir/$as_base" -c ' ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then ++ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } ++ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } ++ CONFIG_SHELL=$as_dir/$as_base ++ export CONFIG_SHELL ++ exec "$CONFIG_SHELL" "$0" ${1+"$@"} ++ fi;; ++ esac ++ done ++done ++;; ++ esac ++ ++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO ++ # uniformly replaced by the line number. The first 'sed' inserts a ++ # line-number line before each line; the second 'sed' does the real ++ # work. The second script uses 'N' to pair each line-number line ++ # with the numbered line, and appends trailing '-' during ++ # substitution so that $LINENO is not a special case at line end. ++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the ++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) ++ sed '=' <$as_myself | ++ sed ' ++ N ++ s,$,-, ++ : loop ++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, ++ t loop ++ s,-$,, ++ s,^['$as_cr_digits']*\n,, ++ ' >$as_me.lineno && ++ chmod +x $as_me.lineno || ++ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 ++echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} ++ { (exit 1); exit 1; }; } ++ ++ # Don't try to exec as it changes $[0], causing all sort of problems ++ # (the dirname of $[0] is not the place where we might find the ++ # original and so on. Autoconf is especially sensible to this). ++ . ./$as_me.lineno ++ # Exit status is that of the last command. ++ exit ++} ++ ++ ++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in ++ *c*,-n*) ECHO_N= ECHO_C=' ++' ECHO_T=' ' ;; ++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; ++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;; ++esac ++ ++if expr a : '\(a\)' >/dev/null 2>&1; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++rm -f conf$$ conf$$.exe conf$$.file ++echo >conf$$.file ++if ln -s conf$$.file conf$$ 2>/dev/null; then ++ # We could just check for DJGPP; but this test a) works b) is more generic ++ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). ++ if test -f conf$$.exe; then ++ # Don't use ln at all; we don't have any links ++ as_ln_s='cp -p' ++ else ++ as_ln_s='ln -s' ++ fi ++elif ln conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s=ln ++else ++ as_ln_s='cp -p' ++fi ++rm -f conf$$ conf$$.exe conf$$.file ++ ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p=: ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++as_executable_p="test -f" ++ ++# Sed expression to map a string onto a valid CPP name. ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ ++ ++# IFS ++# We need space, tab and new line, in precisely that order. ++as_nl=' ++' ++IFS=" $as_nl" ++ ++# CDPATH. ++$as_unset CDPATH ++ ++exec 6>&1 ++ ++# Open the log real soon, to keep \$[0] and so on meaningful, and to ++# report actual input values of CONFIG_FILES etc. instead of their ++# values after options handling. Logging --version etc. is OK. ++exec 5>>config.log ++{ ++ echo ++ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ++## Running $as_me. ## ++_ASBOX ++} >&5 ++cat >&5 <<_CSEOF ++ ++This file was extended by $as_me, which was ++generated by GNU Autoconf 2.59. Invocation command line was ++ ++ CONFIG_FILES = $CONFIG_FILES ++ CONFIG_HEADERS = $CONFIG_HEADERS ++ CONFIG_LINKS = $CONFIG_LINKS ++ CONFIG_COMMANDS = $CONFIG_COMMANDS ++ $ $0 $@ ++ ++_CSEOF ++echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 ++echo >&5 ++_ACEOF ++ ++# Files that config.status was made for. ++if test -n "$ac_config_files"; then ++ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS ++fi ++ ++if test -n "$ac_config_headers"; then ++ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS ++fi ++ ++if test -n "$ac_config_links"; then ++ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS ++fi ++ ++if test -n "$ac_config_commands"; then ++ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS ++fi ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++ ++ac_cs_usage="\ ++\`$as_me' instantiates files from templates according to the ++current configuration. ++ ++Usage: $0 [OPTIONS] [FILE]... ++ ++ -h, --help print this help, then exit ++ -V, --version print version number, then exit ++ -q, --quiet do not print progress messages ++ -d, --debug don't remove temporary files ++ --recheck update $as_me by reconfiguring in the same conditions ++ --file=FILE[:TEMPLATE] ++ instantiate the configuration file FILE ++ --header=FILE[:TEMPLATE] ++ instantiate the configuration header FILE ++ ++Configuration files: ++$config_files ++ ++Configuration headers: ++$config_headers ++ ++Configuration commands: ++$config_commands ++ ++Report bugs to ." ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<_ACEOF ++ac_cs_version="\\ ++config.status ++configured by $0, generated by GNU Autoconf 2.59, ++ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" ++ ++Copyright (C) 2003 Free Software Foundation, Inc. ++This config.status script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it." ++srcdir=$srcdir ++INSTALL="$INSTALL" ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++# If no file are specified by the user, then we need to provide default ++# value. By we need to know if files were specified by the user. ++ac_need_defaults=: ++while test $# != 0 + do +- case "\$ac_option" in ++ case $1 in ++ --*=*) ++ ac_option=`expr "x$1" : 'x\([^=]*\)='` ++ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ++ ac_shift=: ++ ;; ++ -*) ++ ac_option=$1 ++ ac_optarg=$2 ++ ac_shift=shift ++ ;; ++ *) # This is not an option, so the user has probably given explicit ++ # arguments. ++ ac_option=$1 ++ ac_need_defaults=false;; ++ esac ++ ++ case $ac_option in ++ # Handling of the options. ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) +- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" +- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; +- -version | --version | --versio | --versi | --vers | --ver | --ve | --v) +- echo "$CONFIG_STATUS generated by autoconf version 2.13" +- exit 0 ;; +- -help | --help | --hel | --he | --h) +- echo "\$ac_cs_usage"; exit 0 ;; +- *) echo "\$ac_cs_usage"; exit 1 ;; ++ ac_cs_recheck=: ;; ++ --version | --vers* | -V ) ++ echo "$ac_cs_version"; exit 0 ;; ++ --he | --h) ++ # Conflict between --help and --header ++ { { echo "$as_me:$LINENO: error: ambiguous option: $1 ++Try \`$0 --help' for more information." >&5 ++echo "$as_me: error: ambiguous option: $1 ++Try \`$0 --help' for more information." >&2;} ++ { (exit 1); exit 1; }; };; ++ --help | --hel | -h ) ++ echo "$ac_cs_usage"; exit 0 ;; ++ --debug | --d* | -d ) ++ debug=: ;; ++ --file | --fil | --fi | --f ) ++ $ac_shift ++ CONFIG_FILES="$CONFIG_FILES $ac_optarg" ++ ac_need_defaults=false;; ++ --header | --heade | --head | --hea ) ++ $ac_shift ++ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ++ ac_need_defaults=false;; ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil | --si | --s) ++ ac_cs_silent=: ;; ++ ++ # This is an error. ++ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 ++Try \`$0 --help' for more information." >&5 ++echo "$as_me: error: unrecognized option: $1 ++Try \`$0 --help' for more information." >&2;} ++ { (exit 1); exit 1; }; } ;; ++ ++ *) ac_config_targets="$ac_config_targets $1" ;; ++ + esac ++ shift + done + +-ac_given_srcdir=$srcdir +-ac_given_INSTALL="$INSTALL" ++ac_configure_extra_args= + +-trap 'rm -fr `echo "Makefile +-src/Makefile +-util/Makefile +-data/Makefile +-data/styles/Makefile +-doc/Makefile +-nls/Makefile +-nls/C/Makefile +-nls/da_DK/Makefile +-nls/de_DE/Makefile +-nls/es_AR/Makefile +-nls/es_ES/Makefile +-nls/fr_FR/Makefile +-nls/hu_HU/Makefile +-nls/it_IT/Makefile +-nls/ja_JP/Makefile +-nls/ko_KR/Makefile +-nls/lv_LV/Makefile +-nls/nl_NL/Makefile +-nls/no_NO/Makefile +-nls/pl_PL/Makefile +-nls/pt_BR/Makefile +-nls/ro_RO/Makefile +-nls/ru_RU/Makefile +-nls/sk_SK/Makefile +-nls/sl_SI/Makefile +-nls/sv_SE/Makefile +-nls/uk_UA/Makefile +-nls/zh_CN/Makefile +-nls/zh_TW/Makefile +-version.h config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +-EOF +-cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +-$ac_vpsub +-$extrasub +-s%@SHELL@%$SHELL%g +-s%@CFLAGS@%$CFLAGS%g +-s%@CPPFLAGS@%$CPPFLAGS%g +-s%@CXXFLAGS@%$CXXFLAGS%g +-s%@FFLAGS@%$FFLAGS%g +-s%@DEFS@%$DEFS%g +-s%@LDFLAGS@%$LDFLAGS%g +-s%@LIBS@%$LIBS%g +-s%@exec_prefix@%$exec_prefix%g +-s%@prefix@%$prefix%g +-s%@program_transform_name@%$program_transform_name%g +-s%@bindir@%$bindir%g +-s%@sbindir@%$sbindir%g +-s%@libexecdir@%$libexecdir%g +-s%@datadir@%$datadir%g +-s%@sysconfdir@%$sysconfdir%g +-s%@sharedstatedir@%$sharedstatedir%g +-s%@localstatedir@%$localstatedir%g +-s%@libdir@%$libdir%g +-s%@includedir@%$includedir%g +-s%@oldincludedir@%$oldincludedir%g +-s%@infodir@%$infodir%g +-s%@mandir@%$mandir%g +-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +-s%@INSTALL_DATA@%$INSTALL_DATA%g +-s%@PACKAGE@%$PACKAGE%g +-s%@VERSION@%$VERSION%g +-s%@ACLOCAL@%$ACLOCAL%g +-s%@AUTOCONF@%$AUTOCONF%g +-s%@AUTOMAKE@%$AUTOMAKE%g +-s%@AUTOHEADER@%$AUTOHEADER%g +-s%@MAKEINFO@%$MAKEINFO%g +-s%@SET_MAKE@%$SET_MAKE%g +-s%@CC@%$CC%g +-s%@CXX@%$CXX%g +-s%@regex_cmd@%$regex_cmd%g +-s%@CPP@%$CPP%g +-s%@X_CFLAGS@%$X_CFLAGS%g +-s%@X_PRE_LIBS@%$X_PRE_LIBS%g +-s%@X_LIBS@%$X_LIBS%g +-s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g +-s%@SHAPE@%$SHAPE%g +-s%@ORDEREDPSEUDO@%$ORDEREDPSEUDO%g +-s%@DEBUG@%$DEBUG%g +-s%@NLS@%$NLS%g +-s%@gencat_cmd@%$gencat_cmd%g +-s%@TIMEDCACHE@%$TIMEDCACHE%g +-s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +-s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +-s%@MAINT@%$MAINT%g ++if $ac_cs_silent; then ++ exec 6>/dev/null ++ ac_configure_extra_args="$ac_configure_extra_args --silent" ++fi ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF ++if \$ac_cs_recheck; then ++ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 ++ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion ++fi ++ ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<_ACEOF ++# ++# INIT-COMMANDS section. ++# ++ ++ ++ ++_ACEOF ++ ++ ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++for ac_config_target in $ac_config_targets ++do ++ case "$ac_config_target" in ++ # Handling of arguments. ++ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; ++ "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; ++ "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; ++ "data/Makefile" ) CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; ++ "data/styles/Makefile" ) CONFIG_FILES="$CONFIG_FILES data/styles/Makefile" ;; ++ "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; ++ "nls/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/Makefile" ;; ++ "nls/C/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/C/Makefile" ;; ++ "nls/da_DK/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/da_DK/Makefile" ;; ++ "nls/de_DE/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/de_DE/Makefile" ;; ++ "nls/es_AR/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/es_AR/Makefile" ;; ++ "nls/es_ES/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/es_ES/Makefile" ;; ++ "nls/fr_FR/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/fr_FR/Makefile" ;; ++ "nls/hu_HU/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/hu_HU/Makefile" ;; ++ "nls/it_IT/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/it_IT/Makefile" ;; ++ "nls/ja_JP/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/ja_JP/Makefile" ;; ++ "nls/ko_KR/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/ko_KR/Makefile" ;; ++ "nls/lv_LV/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/lv_LV/Makefile" ;; ++ "nls/nl_NL/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/nl_NL/Makefile" ;; ++ "nls/no_NO/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/no_NO/Makefile" ;; ++ "nls/pl_PL/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/pl_PL/Makefile" ;; ++ "nls/pt_BR/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/pt_BR/Makefile" ;; ++ "nls/ro_RO/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/ro_RO/Makefile" ;; ++ "nls/ru_RU/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/ru_RU/Makefile" ;; ++ "nls/sk_SK/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/sk_SK/Makefile" ;; ++ "nls/sl_SI/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/sl_SI/Makefile" ;; ++ "nls/sv_SE/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/sv_SE/Makefile" ;; ++ "nls/uk_UA/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/uk_UA/Makefile" ;; ++ "nls/zh_CN/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/zh_CN/Makefile" ;; ++ "nls/zh_TW/Makefile" ) CONFIG_FILES="$CONFIG_FILES nls/zh_TW/Makefile" ;; ++ "version.h" ) CONFIG_FILES="$CONFIG_FILES version.h" ;; ++ "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; ++ "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; ++ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 ++echo "$as_me: error: invalid argument: $ac_config_target" >&2;} ++ { (exit 1); exit 1; }; };; ++ esac ++done ++ ++# If the user did not use the arguments to specify the items to instantiate, ++# then the envvar interface is used. Set only those that are not. ++# We use the long form for the default assignment because of an extremely ++# bizarre bug on SunOS 4.1.3. ++if $ac_need_defaults; then ++ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files ++ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers ++ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands ++fi ++ ++# Have a temporary directory for convenience. Make it in the build tree ++# simply because there is no reason to put it here, and in addition, ++# creating and moving files from /tmp can sometimes cause problems. ++# Create a temporary directory, and hook for its removal unless debugging. ++$debug || ++{ ++ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++ ++{ ++ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=./confstat$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in ." >&2 ++ { (exit 1); exit 1; } ++} ++ ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<_ACEOF ++ ++# ++# CONFIG_FILES section. ++# + ++# No need to generate the scripts if there are no CONFIG_FILES. ++# This happens for instance when ./config.status config.h ++if test -n "\$CONFIG_FILES"; then ++ # Protect against being on the right side of a sed subst in config.status. ++ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; ++ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF ++s,@SHELL@,$SHELL,;t t ++s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t ++s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t ++s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t ++s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t ++s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t ++s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t ++s,@exec_prefix@,$exec_prefix,;t t ++s,@prefix@,$prefix,;t t ++s,@program_transform_name@,$program_transform_name,;t t ++s,@bindir@,$bindir,;t t ++s,@sbindir@,$sbindir,;t t ++s,@libexecdir@,$libexecdir,;t t ++s,@datadir@,$datadir,;t t ++s,@sysconfdir@,$sysconfdir,;t t ++s,@sharedstatedir@,$sharedstatedir,;t t ++s,@localstatedir@,$localstatedir,;t t ++s,@libdir@,$libdir,;t t ++s,@includedir@,$includedir,;t t ++s,@oldincludedir@,$oldincludedir,;t t ++s,@infodir@,$infodir,;t t ++s,@mandir@,$mandir,;t t ++s,@build_alias@,$build_alias,;t t ++s,@host_alias@,$host_alias,;t t ++s,@target_alias@,$target_alias,;t t ++s,@DEFS@,$DEFS,;t t ++s,@ECHO_C@,$ECHO_C,;t t ++s,@ECHO_N@,$ECHO_N,;t t ++s,@ECHO_T@,$ECHO_T,;t t ++s,@LIBS@,$LIBS,;t t ++s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t ++s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t ++s,@INSTALL_DATA@,$INSTALL_DATA,;t t ++s,@PACKAGE@,$PACKAGE,;t t ++s,@VERSION@,$VERSION,;t t ++s,@ACLOCAL@,$ACLOCAL,;t t ++s,@AUTOCONF@,$AUTOCONF,;t t ++s,@AUTOMAKE@,$AUTOMAKE,;t t ++s,@AUTOHEADER@,$AUTOHEADER,;t t ++s,@MAKEINFO@,$MAKEINFO,;t t ++s,@SET_MAKE@,$SET_MAKE,;t t ++s,@CC@,$CC,;t t ++s,@CFLAGS@,$CFLAGS,;t t ++s,@LDFLAGS@,$LDFLAGS,;t t ++s,@CPPFLAGS@,$CPPFLAGS,;t t ++s,@ac_ct_CC@,$ac_ct_CC,;t t ++s,@EXEEXT@,$EXEEXT,;t t ++s,@OBJEXT@,$OBJEXT,;t t ++s,@CXX@,$CXX,;t t ++s,@CXXFLAGS@,$CXXFLAGS,;t t ++s,@ac_ct_CXX@,$ac_ct_CXX,;t t ++s,@regex_cmd@,$regex_cmd,;t t ++s,@CPP@,$CPP,;t t ++s,@EGREP@,$EGREP,;t t ++s,@X_CFLAGS@,$X_CFLAGS,;t t ++s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t ++s,@X_LIBS@,$X_LIBS,;t t ++s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t ++s,@SHAPE@,$SHAPE,;t t ++s,@XINERAMA@,$XINERAMA,;t t ++s,@ORDEREDPSEUDO@,$ORDEREDPSEUDO,;t t ++s,@DEBUG@,$DEBUG,;t t ++s,@NLS@,$NLS,;t t ++s,@gencat_cmd@,$gencat_cmd,;t t ++s,@TIMEDCACHE@,$TIMEDCACHE,;t t ++s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t ++s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t ++s,@MAINT@,$MAINT,;t t ++s,@LIBOBJS@,$LIBOBJS,;t t ++s,@LTLIBOBJS@,$LTLIBOBJS,;t t + CEOF +-EOF + +-cat >> $CONFIG_STATUS <<\EOF ++_ACEOF + +-# Split the substitutions into bite-sized pieces for seds with +-# small command number limits, like on Digital OSF/1 and HP-UX. +-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +-ac_file=1 # Number of current file. +-ac_beg=1 # First line for current file. +-ac_end=$ac_max_sed_cmds # Line after last line for current file. +-ac_more_lines=: +-ac_sed_cmds="" +-while $ac_more_lines; do +- if test $ac_beg -gt 1; then +- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file +- else +- sed "${ac_end}q" conftest.subs > conftest.s$ac_file +- fi +- if test ! -s conftest.s$ac_file; then +- ac_more_lines=false +- rm -f conftest.s$ac_file +- else +- if test -z "$ac_sed_cmds"; then +- ac_sed_cmds="sed -f conftest.s$ac_file" ++ cat >>$CONFIG_STATUS <<\_ACEOF ++ # Split the substitutions into bite-sized pieces for seds with ++ # small command number limits, like on Digital OSF/1 and HP-UX. ++ ac_max_sed_lines=48 ++ ac_sed_frag=1 # Number of current file. ++ ac_beg=1 # First line for current file. ++ ac_end=$ac_max_sed_lines # Line after last line for current file. ++ ac_more_lines=: ++ ac_sed_cmds= ++ while $ac_more_lines; do ++ if test $ac_beg -gt 1; then ++ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag ++ else ++ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag ++ fi ++ if test ! -s $tmp/subs.frag; then ++ ac_more_lines=false + else +- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" ++ # The purpose of the label and of the branching condition is to ++ # speed up the sed processing (if there are no `@' at all, there ++ # is no need to browse any of the substitutions). ++ # These are the two extra sed commands mentioned above. ++ (echo ':t ++ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed ++ if test -z "$ac_sed_cmds"; then ++ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" ++ else ++ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" ++ fi ++ ac_sed_frag=`expr $ac_sed_frag + 1` ++ ac_beg=$ac_end ++ ac_end=`expr $ac_end + $ac_max_sed_lines` + fi +- ac_file=`expr $ac_file + 1` +- ac_beg=$ac_end +- ac_end=`expr $ac_end + $ac_max_sed_cmds` +- fi +-done +-if test -z "$ac_sed_cmds"; then +- ac_sed_cmds=cat +-fi +-EOF +- +-cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then ++ done ++ if test -z "$ac_sed_cmds"; then ++ ac_sed_cmds=cat ++ fi ++fi # test -n "$CONFIG_FILES" ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF ++for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". +- case "$ac_file" in +- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` +- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; +- *) ac_file_in="${ac_file}.in" ;; ++ case $ac_file in ++ - | *:- | *:-:* ) # input from stdin ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ * ) ac_file_in=$ac_file.in ;; + esac + +- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. +- +- # Remove last slash and all that follows it. Not all systems have dirname. +- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` +- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then +- # The file is in a subdirectory. +- test ! -d "$ac_dir" && mkdir "$ac_dir" +- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" +- # A "../" for each directory in $ac_dir_suffix. +- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` +- else +- ac_dir_suffix= ac_dots= +- fi +- +- case "$ac_given_srcdir" in +- .) srcdir=. +- if test -z "$ac_dots"; then top_srcdir=. +- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; +- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; ++ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ++ ac_dir=`(dirname "$ac_file") 2>/dev/null || ++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$ac_file" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ { if $as_mkdir_p; then ++ mkdir -p "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } ++ ++ ac_builddir=. ++ ++if test "$ac_dir" != .; then ++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` ++ # A "../" for each directory in $ac_dir_suffix. ++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` ++else ++ ac_dir_suffix= ac_top_builddir= ++fi ++ ++case $srcdir in ++ .) # No --srcdir option. We are building in place. ++ ac_srcdir=. ++ if test -z "$ac_top_builddir"; then ++ ac_top_srcdir=. ++ else ++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` ++ fi ;; ++ [\\/]* | ?:[\\/]* ) # Absolute path. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ;; + *) # Relative path. +- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" +- top_srcdir="$ac_dots$ac_given_srcdir" ;; ++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_builddir$srcdir ;; ++esac ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac ++ ++ ++ case $INSTALL in ++ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; ++ *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + +- case "$ac_given_INSTALL" in +- [/$]*) INSTALL="$ac_given_INSTALL" ;; +- *) INSTALL="$ac_dots$ac_given_INSTALL" ;; +- esac ++ # Let's still pretend it is `configure' which instantiates (i.e., don't ++ # use $as_me), people would be surprised to read: ++ # /* config.h. Generated by config.status. */ ++ if test x"$ac_file" = x-; then ++ configure_input= ++ else ++ configure_input="$ac_file. " ++ fi ++ configure_input=$configure_input"Generated from `echo $ac_file_in | ++ sed 's,.*/,,'` by configure." + +- echo creating "$ac_file" +- rm -f "$ac_file" +- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." +- case "$ac_file" in +- *Makefile*) ac_comsub="1i\\ +-# $configure_input" ;; +- *) ac_comsub= ;; +- esac ++ # First look for the input files in the build tree, otherwise in the ++ # src tree. ++ ac_file_inputs=`IFS=: ++ for f in $ac_file_in; do ++ case $f in ++ -) echo $tmp/stdin ;; ++ [\\/$]*) ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++echo "$as_me: error: cannot find input file: $f" >&2;} ++ { (exit 1); exit 1; }; } ++ echo "$f";; ++ *) # Relative ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++echo "$as_me: error: cannot find input file: $f" >&2;} ++ { (exit 1); exit 1; }; } ++ fi;; ++ esac ++ done` || { (exit 1); exit 1; } ++ ++ if test x"$ac_file" != x-; then ++ { echo "$as_me:$LINENO: creating $ac_file" >&5 ++echo "$as_me: creating $ac_file" >&6;} ++ rm -f "$ac_file" ++ fi ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF ++ sed "$ac_vpsub ++$extrasub ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF ++:t ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b ++s,@configure_input@,$configure_input,;t t ++s,@srcdir@,$ac_srcdir,;t t ++s,@abs_srcdir@,$ac_abs_srcdir,;t t ++s,@top_srcdir@,$ac_top_srcdir,;t t ++s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t ++s,@builddir@,$ac_builddir,;t t ++s,@abs_builddir@,$ac_abs_builddir,;t t ++s,@top_builddir@,$ac_top_builddir,;t t ++s,@abs_top_builddir@,$ac_abs_top_builddir,;t t ++s,@INSTALL@,$ac_INSTALL,;t t ++" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out ++ rm -f $tmp/stdin ++ if test x"$ac_file" != x-; then ++ mv $tmp/out $ac_file ++ else ++ cat $tmp/out ++ rm -f $tmp/out ++ fi ++ ++done ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF + +- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` +- sed -e "$ac_comsub +-s%@configure_input@%$configure_input%g +-s%@srcdir@%$srcdir%g +-s%@top_srcdir@%$top_srcdir%g +-s%@INSTALL@%$INSTALL%g +-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +-fi; done +-rm -f conftest.s* ++# ++# CONFIG_HEADER section. ++# + + # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where + # NAME is the cpp macro being defined and VALUE is the value it is being given. + # + # ac_d sets the value in "#define NAME VALUE" lines. +-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' +-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' +-ac_dC='\3' +-ac_dD='%g' +-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". +-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +-ac_uB='\([ ]\)%\1#\2define\3' ++ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ++ac_dB='[ ].*$,\1#\2' ++ac_dC=' ' ++ac_dD=',;t' ++# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ++ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_uB='$,\1#\2define\3' + ac_uC=' ' +-ac_uD='\4%g' +-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +-ac_eB='$%\1#\2define\3' +-ac_eC=' ' +-ac_eD='%g' +- +-if test "${CONFIG_HEADERS+set}" != set; then +-EOF +-cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +-fi +-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then ++ac_uD=',;t' ++ ++for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". +- case "$ac_file" in +- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` +- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; +- *) ac_file_in="${ac_file}.in" ;; ++ case $ac_file in ++ - | *:- | *:-:* ) # input from stdin ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ * ) ac_file_in=$ac_file.in ;; + esac + +- echo creating $ac_file ++ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 ++echo "$as_me: creating $ac_file" >&6;} + +- rm -f conftest.frag conftest.in conftest.out +- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` +- cat $ac_file_inputs > conftest.in +- +-EOF +- +-# Transform confdefs.h into a sed script conftest.vals that substitutes +-# the proper values into config.h.in to produce config.h. And first: +-# Protect against being on the right side of a sed subst in config.status. +-# Protect against being in an unquoted here document in config.status. +-rm -f conftest.vals +-cat > conftest.hdr <<\EOF +-s/[\\&%]/\\&/g +-s%[\\$`]%\\&%g +-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp +-s%ac_d%ac_u%gp +-s%ac_u%ac_e%gp +-EOF +-sed -n -f conftest.hdr confdefs.h > conftest.vals +-rm -f conftest.hdr ++ # First look for the input files in the build tree, otherwise in the ++ # src tree. ++ ac_file_inputs=`IFS=: ++ for f in $ac_file_in; do ++ case $f in ++ -) echo $tmp/stdin ;; ++ [\\/$]*) ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++echo "$as_me: error: cannot find input file: $f" >&2;} ++ { (exit 1); exit 1; }; } ++ # Do quote $f, to prevent DOS paths from being IFS'd. ++ echo "$f";; ++ *) # Relative ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++echo "$as_me: error: cannot find input file: $f" >&2;} ++ { (exit 1); exit 1; }; } ++ fi;; ++ esac ++ done` || { (exit 1); exit 1; } ++ # Remove the trailing spaces. ++ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in ++ ++_ACEOF ++ ++# Transform confdefs.h into two sed scripts, `conftest.defines' and ++# `conftest.undefs', that substitutes the proper values into ++# config.h.in to produce config.h. The first handles `#define' ++# templates, and the second `#undef' templates. ++# And first: Protect against being on the right side of a sed subst in ++# config.status. Protect against being in an unquoted here document ++# in config.status. ++rm -f conftest.defines conftest.undefs ++# Using a here document instead of a string reduces the quoting nightmare. ++# Putting comments in sed scripts is not portable. ++# ++# `end' is used to avoid that the second main sed command (meant for ++# 0-ary CPP macros) applies to n-ary macro definitions. ++# See the Autoconf documentation for `clear'. ++cat >confdef2sed.sed <<\_ACEOF ++s/[\\&,]/\\&/g ++s,[\\$`],\\&,g ++t clear ++: clear ++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp ++t end ++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp ++: end ++_ACEOF ++# If some macros were called several times there might be several times ++# the same #defines, which is useless. Nevertheless, we may not want to ++# sort them, since we want the *last* AC-DEFINE to be honored. ++uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines ++sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs ++rm -f confdef2sed.sed + + # This sed command replaces #undef with comments. This is necessary, for + # example, in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. +-cat >> conftest.vals <<\EOF +-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% +-EOF +- +-# Break up conftest.vals because some shells have a limit on +-# the size of here documents, and old seds have small limits too. +- ++cat >>conftest.undefs <<\_ACEOF ++s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, ++_ACEOF ++ ++# Break up conftest.defines because some shells have a limit on the size ++# of here documents, and old seds have small limits too (100 cmds). ++echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ++echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS ++echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS ++echo ' :' >>$CONFIG_STATUS + rm -f conftest.tail +-while : ++while grep . conftest.defines >/dev/null + do +- ac_lines=`grep -c . conftest.vals` +- # grep -c gives empty output for an empty file on some AIX systems. +- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi +- # Write a limited-size here document to conftest.frag. +- echo ' cat > conftest.frag <> $CONFIG_STATUS +- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS ++ # Write a limited-size here document to $tmp/defines.sed. ++ echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS ++ # Speed up: don't consider the non `#define' lines. ++ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS ++ # Work around the forget-to-reset-the-flag bug. ++ echo 't clr' >>$CONFIG_STATUS ++ echo ': clr' >>$CONFIG_STATUS ++ sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF +- sed -f conftest.frag conftest.in > conftest.out +- rm -f conftest.in +- mv conftest.out conftest.in +-' >> $CONFIG_STATUS +- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail +- rm -f conftest.vals +- mv conftest.tail conftest.vals +-done +-rm -f conftest.vals +- +-cat >> $CONFIG_STATUS <<\EOF +- rm -f conftest.frag conftest.h +- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h +- cat conftest.in >> conftest.h +- rm -f conftest.in +- if cmp -s $ac_file conftest.h 2>/dev/null; then +- echo "$ac_file is unchanged" +- rm -f conftest.h +- else +- # Remove last slash and all that follows it. Not all systems have dirname. +- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` +- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then +- # The file is in a subdirectory. +- test ! -d "$ac_dir" && mkdir "$ac_dir" +- fi +- rm -f $ac_file +- mv conftest.h $ac_file ++ sed -f $tmp/defines.sed $tmp/in >$tmp/out ++ rm -f $tmp/in ++ mv $tmp/out $tmp/in ++' >>$CONFIG_STATUS ++ sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail ++ rm -f conftest.defines ++ mv conftest.tail conftest.defines ++done ++rm -f conftest.defines ++echo ' fi # grep' >>$CONFIG_STATUS ++echo >>$CONFIG_STATUS ++ ++# Break up conftest.undefs because some shells have a limit on the size ++# of here documents, and old seds have small limits too (100 cmds). ++echo ' # Handle all the #undef templates' >>$CONFIG_STATUS ++rm -f conftest.tail ++while grep . conftest.undefs >/dev/null ++do ++ # Write a limited-size here document to $tmp/undefs.sed. ++ echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS ++ # Speed up: don't consider the non `#undef' ++ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS ++ # Work around the forget-to-reset-the-flag bug. ++ echo 't clr' >>$CONFIG_STATUS ++ echo ': clr' >>$CONFIG_STATUS ++ sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS ++ echo 'CEOF ++ sed -f $tmp/undefs.sed $tmp/in >$tmp/out ++ rm -f $tmp/in ++ mv $tmp/out $tmp/in ++' >>$CONFIG_STATUS ++ sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail ++ rm -f conftest.undefs ++ mv conftest.tail conftest.undefs ++done ++rm -f conftest.undefs ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++ # Let's still pretend it is `configure' which instantiates (i.e., don't ++ # use $as_me), people would be surprised to read: ++ # /* config.h. Generated by config.status. */ ++ if test x"$ac_file" = x-; then ++ echo "/* Generated by configure. */" >$tmp/config.h ++ else ++ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h + fi +-fi; done ++ cat $tmp/in >>$tmp/config.h ++ rm -f $tmp/in ++ if test x"$ac_file" != x-; then ++ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then ++ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 ++echo "$as_me: $ac_file is unchanged" >&6;} ++ else ++ ac_dir=`(dirname "$ac_file") 2>/dev/null || ++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$ac_file" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ { if $as_mkdir_p; then ++ mkdir -p "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } + +-EOF +-cat >> $CONFIG_STATUS <>$CONFIG_STATUS <<\_ACEOF + ++# ++# CONFIG_COMMANDS section. ++# ++for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ++ ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ++ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_dir=`(dirname "$ac_dest") 2>/dev/null || ++$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$ac_dest" : 'X\(//\)[^/]' \| \ ++ X"$ac_dest" : 'X\(//\)$' \| \ ++ X"$ac_dest" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$ac_dest" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ { if $as_mkdir_p; then ++ mkdir -p "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } ++ ++ ac_builddir=. ++ ++if test "$ac_dir" != .; then ++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` ++ # A "../" for each directory in $ac_dir_suffix. ++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` ++else ++ ac_dir_suffix= ac_top_builddir= ++fi ++ ++case $srcdir in ++ .) # No --srcdir option. We are building in place. ++ ac_srcdir=. ++ if test -z "$ac_top_builddir"; then ++ ac_top_srcdir=. ++ else ++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` ++ fi ;; ++ [\\/]* | ?:[\\/]* ) # Absolute path. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ;; ++ *) # Relative path. ++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_builddir$srcdir ;; ++esac ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac ++ ++ ++ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 ++echo "$as_me: executing $ac_dest commands" >&6;} ++ case $ac_dest in ++ default-1 ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;; ++ esac ++done ++_ACEOF + +-EOF +-cat >> $CONFIG_STATUS <<\EOF +-test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ++cat >>$CONFIG_STATUS <<\_ACEOF + +-exit 0 +-EOF ++{ (exit 0); exit 0; } ++_ACEOF + chmod +x $CONFIG_STATUS +-rm -fr confdefs* $ac_clean_files +-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 ++ac_clean_files=$ac_clean_files_save ++ ++ ++# configure is writing to config.log, and then calls config.status. ++# config.status does its own redirection, appending to config.log. ++# Unfortunately, on DOS this fails, as config.log is still kept open ++# by configure, so config.status won't be able to write to it; its ++# output is simply discarded. So we exec the FD to /dev/null, ++# effectively closing config.log, so it can be properly (re)opened and ++# appended to by config.status. When coming back to configure, we ++# need to make the FD available again. ++if test "$no_create" != yes; then ++ ac_cs_success=: ++ ac_config_status_args= ++ test "$silent" = yes && ++ ac_config_status_args="$ac_config_status_args --quiet" ++ exec 5>/dev/null ++ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false ++ exec 5>>config.log ++ # Use ||, not &&, to avoid exiting from the if with $? = 1, which ++ # would make configure fail if this is the last instruction. ++ $ac_cs_success || { (exit 1); exit 1; } ++fi + +--- blackbox-0.65.0.orig/configure.in ++++ blackbox-0.65.0/configure.in +@@ -106,6 +106,38 @@ + + LIBS="$LIBS $Xext_lib" + ++LIBS="$LIBS $X_EXTRA_LIBS" ++ ++Xext_lib="" ++ ++dnl Check for Xinerama extension support and proper library files. ++XINERAMA="" ++AC_MSG_CHECKING([whether to build support for the Xinerama extension]) ++AC_ARG_ENABLE( ++ xinerama, [ --enable-xinerama enable support of the xinerama extension [default=yes]]) ++ ++: ${enableval="yes"} ++if test x$enableval = "xyes"; then ++ AC_MSG_RESULT([yes]) ++ AC_CHECK_LIB(Xinerama, XineramaQueryScreens, ++ AC_MSG_CHECKING([for X11/extensions/Xinerama.h]) ++ AC_TRY_LINK( ++#include ++#include ++#include ++, XineramaScreenInfo* s = 0, ++ AC_MSG_RESULT([yes]) ++ XINERAMA="-DXINERAMA"; Xext_lib="-lXext -lXinerama", ++ AC_MSG_RESULT([no]) ++ ) ++ ) ++else ++ AC_MSG_RESULT([no]) ++fi ++AC_SUBST(XINERAMA) ++ ++LIBS="$LIBS $Xext_lib" ++ + dnl Check for ordered 8bpp dithering + ORDEREDPSEUDO="" + AC_MSG_CHECKING([whether to include Pseudocolor ordered dithering code]) +--- blackbox-0.65.0.orig/doc/blackbox.1.in ++++ blackbox-0.65.0/doc/blackbox.1.in +@@ -786,6 +786,13 @@ + .EX + .B Default is False. + .EE ++.TP 3 ++.BI "session.screen.slit.xineramaPlacement" " [True|False]" ++Determines whether Xinerama inforation should be used to ++avoid placing the slit in non-viewable regions of the display. ++.EX ++.B Default is True. ++.EE + .\" + .\" ***** MENU CONFIGURABLE FROM MAIN MENU ***** + .\" +@@ -845,6 +852,24 @@ + .B Default is TopToBottom. + .EE + .TP 3 ++.BI "session.screen.xineramaPlacement" " [True|False]" ++Use Xinerama information when deciding where to place windows. ++.EX ++.B Default is True. ++.EE ++.TP 3 ++.BI "session.screen.xineramaMenus" " [True|False]" ++Use Xinerama information to avoid menus spanning screen boundaries. ++.EX ++.B Default is True. ++.EE ++.TP 3 ++.BI "session.screen.xineramaMaximize" " [True|False]" ++Maximize windows to fill one screen when Xineramam is in use. ++.EX ++.B Default is True. ++.EE ++.TP 3 + .BI "session.imageDither" " [True|False]" + This setting is only used when running in low + color modes. Image Dithering helps to show an +@@ -951,6 +976,19 @@ + .EX + .B Default is False. + .EE ++.TP 3 ++.BI "session.screen.toolbar.xineramaPlacement" " [True|False]" ++Use Xinerama information to prevent toolbar from being split ++across screens. ++.EX ++.B Default is True. ++.EE ++.TP 3 ++.BI "session.screen.toolbar.xineramaScreen" " [integer]" ++Xinerama screen number in which to place the toolbar. ++.EX ++.B Default is -1 (auto). ++.EE + .\" + .\" ***** CONFIGURABLE IN BLACKBOXRC ONLY ***** + .\" +--- blackbox-0.65.0.orig/nls/C/Configmenu.m ++++ blackbox-0.65.0/nls/C/Configmenu.m +@@ -40,3 +40,13 @@ + # Top to Bottom + $ #BottomTop + # Bottom to Top ++$ #XineramaOptions ++# Xinerama Options ++$ #XineramaPlacement ++# Window Placement ++$ #XineramaMaximize ++# Window Maximizing ++$ #XineramaToolbar ++# Toolbar Placement ++$ #XineramaMenus ++# Menu Placement +--- blackbox-0.65.0.orig/nls/C/Toolbar.m ++++ blackbox-0.65.0/nls/C/Toolbar.m +@@ -20,3 +20,7 @@ + # Edit current workspace name + $ #ToolbarPlacement + # Toolbar Placement ++$ #ScreenTop ++# Screen %d Top ++$ #ScreenBottom ++# Screen %d Bottom +--- blackbox-0.65.0.orig/nls/convert.awk ++++ blackbox-0.65.0/nls/convert.awk +@@ -4,6 +4,8 @@ + + if (major > 1) + printf "\n" > output ++ else if (codeset) ++ printf "$ codeset=%s\n", codeset > output + printf "$set %d %s\n", major, $3 > output + + if (header) { +--- blackbox-0.65.0.orig/nls/da_DK/Makefile.am ++++ blackbox-0.65.0/nls/da_DK/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/da_DK/Makefile.in ++++ blackbox-0.65.0/nls/da_DK/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/de_DE/Makefile.am ++++ blackbox-0.65.0/nls/de_DE/Makefile.am +@@ -26,7 +26,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/de_DE/Makefile.in ++++ blackbox-0.65.0/nls/de_DE/Makefile.in +@@ -200,7 +200,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/es_ES/Makefile.am ++++ blackbox-0.65.0/nls/es_ES/Makefile.am +@@ -28,7 +28,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/es_ES/Makefile.in ++++ blackbox-0.65.0/nls/es_ES/Makefile.in +@@ -202,7 +202,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/fr_FR/Makefile.am ++++ blackbox-0.65.0/nls/fr_FR/Makefile.am +@@ -26,7 +26,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/fr_FR/Makefile.in ++++ blackbox-0.65.0/nls/fr_FR/Makefile.in +@@ -200,7 +200,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/hu_HU/Makefile.am ++++ blackbox-0.65.0/nls/hu_HU/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-2 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/hu_HU/Makefile.in ++++ blackbox-0.65.0/nls/hu_HU/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-2 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/it_IT/Makefile.am ++++ blackbox-0.65.0/nls/it_IT/Makefile.am +@@ -26,7 +26,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/it_IT/Makefile.in ++++ blackbox-0.65.0/nls/it_IT/Makefile.in +@@ -200,7 +200,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/ja_JP/Makefile.am ++++ blackbox-0.65.0/nls/ja_JP/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=eucJP output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/ja_JP/Makefile.in ++++ blackbox-0.65.0/nls/ja_JP/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=eucJP output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/ko_KR/Makefile.am ++++ blackbox-0.65.0/nls/ko_KR/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=eucKR output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/ko_KR/Makefile.in ++++ blackbox-0.65.0/nls/ko_KR/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=eucKR output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/nl_NL/Makefile.am ++++ blackbox-0.65.0/nls/nl_NL/Makefile.am +@@ -26,7 +26,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/nl_NL/Makefile.in ++++ blackbox-0.65.0/nls/nl_NL/Makefile.in +@@ -200,7 +200,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/no_NO/Makefile.am ++++ blackbox-0.65.0/nls/no_NO/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/no_NO/Makefile.in ++++ blackbox-0.65.0/nls/no_NO/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/pt_BR/Makefile.am ++++ blackbox-0.65.0/nls/pt_BR/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/pt_BR/Makefile.in ++++ blackbox-0.65.0/nls/pt_BR/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/ru_RU/Makefile.am ++++ blackbox-0.65.0/nls/ru_RU/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=KOI8-R output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/ru_RU/Makefile.in ++++ blackbox-0.65.0/nls/ru_RU/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=KOI8-R output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/sl_SI/Makefile.am ++++ blackbox-0.65.0/nls/sl_SI/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-2 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/sl_SI/Makefile.in ++++ blackbox-0.65.0/nls/sl_SI/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-2 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/sv_SE/Makefile.am ++++ blackbox-0.65.0/nls/sv_SE/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/sv_SE/Makefile.in ++++ blackbox-0.65.0/nls/sv_SE/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/uk_UA/Makefile.am ++++ blackbox-0.65.0/nls/uk_UA/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=KOI8-U output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/uk_UA/Makefile.in ++++ blackbox-0.65.0/nls/uk_UA/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=KOI8-U output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/zh_CN/Makefile.am ++++ blackbox-0.65.0/nls/zh_CN/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=GB2312 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/zh_CN/Makefile.in ++++ blackbox-0.65.0/nls/zh_CN/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=GB2312 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/zh_TW/Makefile.am ++++ blackbox-0.65.0/nls/zh_TW/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=BIG5 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/zh_TW/Makefile.in ++++ blackbox-0.65.0/nls/zh_TW/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=BIG5 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/es_AR/Makefile.am ++++ blackbox-0.65.0/nls/es_AR/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/es_AR/Makefile.in ++++ blackbox-0.65.0/nls/es_AR/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-1 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/pl_PL/Makefile.in ++++ blackbox-0.65.0/nls/pl_PL/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-2 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/pl_PL/Makefile.am ++++ blackbox-0.65.0/nls/pl_PL/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-2 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/sk_SK/Makefile.am ++++ blackbox-0.65.0/nls/sk_SK/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk convert=ISO-8859-2 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/sk_SK/Makefile.in ++++ blackbox-0.65.0/nls/sk_SK/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-2 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/lv_LV/Makefile.am ++++ blackbox-0.65.0/nls/lv_LV/Makefile.am +@@ -23,7 +23,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-13 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/nls/lv_LV/Makefile.in ++++ blackbox-0.65.0/nls/lv_LV/Makefile.in +@@ -197,7 +197,7 @@ + + Translation.m: $(MFILES) + @if test x$(NLSTEST) = "x-DNLS"; then \ +- awk -f @srcdir@/../convert.awk output=Translation.m $(MFILES); \ ++ awk -f @srcdir@/../convert.awk codeset=ISO-8859-13 output=Translation.m $(MFILES); \ + fi + + blackbox.cat: Translation.m +--- blackbox-0.65.0.orig/src/BaseDisplay.cc ++++ blackbox-0.65.0/src/BaseDisplay.cc +@@ -86,6 +86,7 @@ + #include "GCCache.hh" + #include "Timer.hh" + #include "Util.hh" ++#include "Xinerama.hh" + + + // X error handler to handle any and all X errors while the application is +@@ -400,9 +401,8 @@ + } + + +-ScreenInfo::ScreenInfo(BaseDisplay *d, unsigned int num) { +- basedisplay = d; +- screen_number = num; ++ScreenInfo::ScreenInfo(BaseDisplay *d, unsigned int num) ++ : basedisplay(d), screen_number(num), xinerama_info(0) { + + root_window = RootWindow(basedisplay->getXDisplay(), screen_number); + +@@ -465,4 +465,12 @@ + + display_string = string("DISPLAY=") + default_string + '.' + + itostring(static_cast(screen_number)); ++ ++#ifdef XINERAMA ++ xinerama_info = new XineramaInfo(this); ++ if (! xinerama_info->haveXinerama()) { ++ delete xinerama_info; ++ xinerama_info = 0; ++ } ++#endif + } +--- blackbox-0.65.0.orig/src/BaseDisplay.hh ++++ blackbox-0.65.0/src/BaseDisplay.hh +@@ -35,6 +35,7 @@ + // forward declaration + class BaseDisplay; + class BGCCache; ++class XineramaInfo; + + #include "Timer.hh" + #include "Util.hh" +@@ -51,11 +52,14 @@ + std::string display_string; + Rect rect; + ++ XineramaInfo* xinerama_info; ++ + public: + ScreenInfo(BaseDisplay *d, unsigned int num); + + inline BaseDisplay *getBaseDisplay(void) const { return basedisplay; } + inline Visual *getVisual(void) const { return visual; } ++ inline XineramaInfo *getXineramaInfo(void) const { return xinerama_info; } + inline Window getRootWindow(void) const { return root_window; } + inline Colormap getColormap(void) const { return colormap; } + inline int getDepth(void) const { return depth; } +--- blackbox-0.65.0.orig/src/Basemenu.cc ++++ blackbox-0.65.0/src/Basemenu.cc +@@ -49,6 +49,7 @@ + #include "Image.hh" + #include "Screen.hh" + #include "Util.hh" ++#include "Xinerama.hh" + + using std::string; + using std::min; +@@ -478,6 +479,29 @@ + drawSubmenu(which_sub); + } + ++void Basemenu::moveInScreen(int screen_x, int screen_y, int dx, int dy) { ++ int x = screen_x + dx; ++ int y = screen_y + dy; ++ ++ Rect rect = screen->getRect(); ++ if (screen->getXineramaInfo() && screen->doXineramaMenus()) { ++ XineramaScreen xinerama = screen->getXineramaInfo()-> ++ screenContaining(screen_x, screen_y); ++ if (xinerama.isValid()) { ++ rect = xinerama.getRect(); ++ } ++ } ++ ++ if (x < rect.left()) x = rect.left(); ++ if (y < rect.top()) y = rect.top(); ++ ++ if (x + static_cast(getWidth()) > rect.right()) ++ x = rect.right() - getWidth() - screen->getBorderWidth(); ++ if (y + static_cast(getHeight()) > rect.bottom()) ++ y = rect.bottom() - getHeight() - screen->getBorderWidth(); ++ ++ move(x,y); ++} + + void Basemenu::redrawTitle(void) { + const char *text = (! menu.label.empty()) ? getLabel() : +@@ -559,16 +583,24 @@ + y = (((shifted) ? menu.y_shift : menu.y) + + menu.height - submenu->menu.height); + +- if ((x + submenu->getWidth()) > screen->getWidth()) ++ Rect rect = screen->getRect(); ++ if (screen->getXineramaInfo() && screen->doXineramaMenus()) { ++ XineramaScreen scr = ++ screen->getXineramaInfo()->screenContaining(menu.x, menu.y); ++ if (scr.isValid()) ++ rect = scr.getRect(); ++ } ++ ++ if ((x + static_cast(submenu->getWidth())) > rect.right()) + x = ((shifted) ? menu.x_shift : menu.x) - + submenu->getWidth() - screen->getBorderWidth(); + +- if (x < 0) x = 0; ++ if (x < rect.left()) x = rect.left(); + +- if ((y + submenu->getHeight()) > screen->getHeight()) +- y = screen->getHeight() - submenu->getHeight() - ++ if ((y + static_cast(submenu->getHeight())) > rect.bottom()) ++ y = rect.bottom() - submenu->getHeight() - + (screen->getBorderWidth() * 2); +- if (y < 0) y = 0; ++ if (y < rect.top()) y = rect.top(); + + submenu->move(x, y); + if (! moving) drawItem(index, True); +@@ -961,22 +993,32 @@ + + void Basemenu::enterNotifyEvent(XCrossingEvent *ce) { + if (ce->window == menu.frame) { ++ ++ Rect rect = screen->getRect(); ++#if 0 ++ if (screen->getXineramaInfo() && screen->doXineramaMenus()) { ++ XineramaScreen xin_scr = ++ screen->getXineramaInfo()->screenContaining(menu.x, menu.y); ++ if (xin_scr.isValid()) { ++ rect = xin_scr.getRect(); ++ } ++ } ++#endif ++ + menu.x_shift = menu.x, menu.y_shift = menu.y; +- if (menu.x + menu.width > screen->getWidth()) { +- menu.x_shift = screen->getWidth() - menu.width - +- screen->getBorderWidth(); ++ if (menu.x + static_cast(menu.width) > rect.right()) { ++ menu.x_shift = rect.right() - menu.width - screen->getBorderWidth(); + shifted = True; +- } else if (menu.x < 0) { +- menu.x_shift = -screen->getBorderWidth(); ++ } else if (menu.x < rect.left()) { ++ menu.x_shift = rect.left() - screen->getBorderWidth(); + shifted = True; + } + +- if (menu.y + menu.height > screen->getHeight()) { +- menu.y_shift = screen->getHeight() - menu.height - +- screen->getBorderWidth(); ++ if (menu.y + static_cast(menu.height) > rect.bottom()) { ++ menu.y_shift = rect.bottom() - menu.height - screen->getBorderWidth(); + shifted = True; +- } else if (menu.y + static_cast(menu.title_h) < 0) { +- menu.y_shift = -screen->getBorderWidth(); ++ } else if (menu.y + static_cast(menu.title_h) < rect.top()) { ++ menu.y_shift = rect.top() - screen->getBorderWidth(); + shifted = True; + } + +--- blackbox-0.65.0.orig/src/Basemenu.hh ++++ blackbox-0.65.0/src/Basemenu.hh +@@ -129,6 +129,7 @@ + void reconfigure(void); + void setLabel(const std::string& label); + void move(int x, int y); ++ void moveInScreen(int screen_x, int screen_y, int dx = 0, int dy = 0); + void update(void); + void setItemSelected(int index, bool sel); + void setItemEnabled(int index, bool enable); +--- blackbox-0.65.0.orig/src/Configmenu.cc ++++ blackbox-0.65.0/src/Configmenu.cc +@@ -36,13 +36,21 @@ + setLabel(i18n(ConfigmenuSet, ConfigmenuConfigOptions, "Config options")); + setInternalMenu(); + ++ int position = 2; + focusmenu = new Focusmenu(this); + placementmenu = new Placementmenu(this); ++ xineramamenu = 0; + + insert(i18n(ConfigmenuSet, ConfigmenuFocusModel, + "Focus Model"), focusmenu); + insert(i18n(ConfigmenuSet, ConfigmenuWindowPlacement, + "Window Placement"), placementmenu); ++ if (scr->getXineramaInfo()) { ++ xineramamenu = new XineramaMenu(this); ++ insert(i18n(ConfigmenuSet, ConfigmenuXineramaOptions, ++ "Xinerama Options"), xineramamenu); ++ position++; ++ } + insert(i18n(ConfigmenuSet, ConfigmenuImageDithering, + "Image Dithering"), 1); + insert(i18n(ConfigmenuSet, ConfigmenuOpaqueMove, +@@ -57,18 +65,19 @@ + "Disable Bindings with Scroll Lock"), 6); + update(); + +- setItemSelected(2, getScreen()->getImageControl()->doDither()); +- setItemSelected(3, getScreen()->doOpaqueMove()); +- setItemSelected(4, getScreen()->doFullMax()); +- setItemSelected(5, getScreen()->doFocusNew()); +- setItemSelected(6, getScreen()->doFocusLast()); +- setItemSelected(7, getScreen()->allowScrollLock()); ++ setItemSelected(position++, getScreen()->getImageControl()->doDither()); ++ setItemSelected(position++, getScreen()->doOpaqueMove()); ++ setItemSelected(position++, getScreen()->doFullMax()); ++ setItemSelected(position++, getScreen()->doFocusNew()); ++ setItemSelected(position++, getScreen()->doFocusLast()); ++ setItemSelected(position++, getScreen()->allowScrollLock()); + } + + + Configmenu::~Configmenu(void) { + delete focusmenu; + delete placementmenu; ++ delete xineramamenu; + } + + +@@ -132,7 +141,8 @@ + void Configmenu::reconfigure(void) { + focusmenu->reconfigure(); + placementmenu->reconfigure(); +- ++ if (xineramamenu) ++ xineramamenu->reconfigure(); + Basemenu::reconfigure(); + } + +@@ -319,3 +329,59 @@ + + reconfigure(); + } ++ ++ ++Configmenu::XineramaMenu::XineramaMenu(Configmenu* cm) ++ : Basemenu(cm->getScreen()) { ++ setLabel(i18n(ConfigmenuSet, ConfigmenuXineramaOptions, "Xinerama Options")); ++ setInternalMenu(); ++ ++ insert(i18n(ConfigmenuSet, ConfigmenuXineramaPlacement, "Window Placement"), ++ ConfigmenuXineramaPlacement); ++ insert(i18n(ConfigmenuSet, ConfigmenuXineramaMaximize, "Window Maximizing"), ++ ConfigmenuXineramaMaximize); ++ insert(i18n(ConfigmenuSet, ConfigmenuXineramaToolbar, "Toolbar Placement"), ++ ConfigmenuXineramaToolbar); ++ insert(i18n(ConfigmenuSet, ConfigmenuXineramaMenus, "Menu Placement"), ++ ConfigmenuXineramaMenus); ++ update(); ++ ++ setItemSelected(0, getScreen()->doXineramaPlacement()); ++ setItemSelected(1, getScreen()->doXineramaMaximize()); ++ setItemSelected(2, getScreen()->doXineramaToolbar()); ++ setItemSelected(3, getScreen()->doXineramaMenus()); ++} ++ ++ ++void Configmenu::XineramaMenu::itemSelected(int button, unsigned int index) { ++ if (button != 1) ++ return; ++ ++ switch (find(index)->function()) { ++ ++ case ConfigmenuXineramaPlacement : { ++ getScreen()->saveXineramaPlacement(! getScreen()->doXineramaPlacement()); ++ setItemSelected(index, getScreen()->doXineramaPlacement()); ++ break; ++ } ++ ++ case ConfigmenuXineramaMaximize : { ++ getScreen()->saveXineramaMaximize(! getScreen()->doXineramaMaximize()); ++ setItemSelected(index, getScreen()->doXineramaMaximize()); ++ break; ++ } ++ ++ case ConfigmenuXineramaToolbar : { ++ getScreen()->saveXineramaToolbar(! getScreen()->doXineramaToolbar()); ++ setItemSelected(index, getScreen()->doXineramaToolbar()); ++ getScreen()->getToolbar()->reconfigure(); ++ break; ++ } ++ ++ case ConfigmenuXineramaMenus : { ++ getScreen()->saveXineramaMenus(! getScreen()->doXineramaMenus()); ++ setItemSelected(index, getScreen()->doXineramaMenus()); ++ break; ++ } ++ } ++} +--- blackbox-0.65.0.orig/src/Configmenu.hh ++++ blackbox-0.65.0/src/Configmenu.hh +@@ -58,8 +58,21 @@ + virtual void reconfigure(void); + }; + ++ class XineramaMenu : public Basemenu { ++ private: ++ XineramaMenu(const XineramaMenu&); ++ XineramaMenu& operator=(const XineramaMenu&); ++ ++ protected: ++ virtual void itemSelected(int button, unsigned int index); ++ ++ public: ++ XineramaMenu(Configmenu *cm); ++ }; ++ + Focusmenu *focusmenu; + Placementmenu *placementmenu; ++ XineramaMenu* xineramamenu; + + friend class Focusmenu; + friend class Placementmenu; +@@ -76,6 +89,7 @@ + + inline Basemenu *getFocusmenu(void) { return focusmenu; } + inline Basemenu *getPlacementmenu(void) { return placementmenu; } ++ inline Basemenu *getXineramamenu(void) { return xineramamenu; } + + void reconfigure(void); + }; +--- blackbox-0.65.0.orig/src/Makefile.in ++++ blackbox-0.65.0/src/Makefile.in +@@ -87,6 +87,7 @@ + ORDEREDPSEUDO = @ORDEREDPSEUDO@ + PACKAGE = @PACKAGE@ + SHAPE = @SHAPE@ ++XINERAMA = @XINERAMA@ + TIMEDCACHE = @TIMEDCACHE@ + VERSION = @VERSION@ + gencat_cmd = @gencat_cmd@ +@@ -95,7 +96,7 @@ + DEFAULT_MENU = $(pkgdatadir)/menu + DEFAULT_STYLE = $(pkgdatadir)/styles/Results + +-CPPFLAGS = @CPPFLAGS@ @SHAPE@ @ORDEREDPSEUDO@ @DEBUG@ @NLS@ @TIMEDCACHE@ -DLOCALEPATH=\"$(pkgdatadir)/nls\" -DDEFAULTMENU=\"$(DEFAULT_MENU)\" -DDEFAULTSTYLE=\"$(DEFAULT_STYLE)\" ++CPPFLAGS = @CPPFLAGS@ @SHAPE@ @XINERAMA@ @ORDEREDPSEUDO@ @DEBUG@ @NLS@ @TIMEDCACHE@ -DLOCALEPATH=\"$(pkgdatadir)/nls\" -DDEFAULTMENU=\"$(DEFAULT_MENU)\" -DDEFAULTSTYLE=\"$(DEFAULT_STYLE)\" + + + bin_PROGRAMS = blackbox +@@ -119,7 +120,8 @@ + blackbox_OBJECTS = BaseDisplay.o Basemenu.o Clientmenu.o Color.o \ + Configmenu.o GCCache.o Iconmenu.o Image.o ImageControl.o Netizen.o \ + Rootmenu.o Screen.o Slit.o Texture.o Timer.o Toolbar.o Util.o Window.o \ +-Windowmenu.o Workspace.o Workspacemenu.o blackbox.o i18n.o main.o ++Windowmenu.o Workspace.o Workspacemenu.o Xinerama.o \ ++blackbox.o i18n.o main.o + blackbox_LDADD = $(LDADD) + blackbox_DEPENDENCIES = + blackbox_LDFLAGS = +@@ -321,11 +323,11 @@ + + BaseDisplay.o: BaseDisplay.cc ../config.h i18n.hh \ + ../nls/blackbox-nls.hh BaseDisplay.hh Timer.hh GCCache.hh Color.hh \ +- Util.hh ++ Util.hh Xinerama.hh + Basemenu.o: Basemenu.cc ../config.h i18n.hh ../nls/blackbox-nls.hh \ + blackbox.hh BaseDisplay.hh Timer.hh Basemenu.hh GCCache.hh Color.hh \ + Image.hh Screen.hh Texture.hh Util.hh Configmenu.hh Iconmenu.hh \ +- Netizen.hh Rootmenu.hh Workspace.hh Workspacemenu.hh ++ Netizen.hh Rootmenu.hh Workspace.hh Workspacemenu.hh Xinerama.hh + Clientmenu.o: Clientmenu.cc ../config.h blackbox.hh i18n.hh \ + ../nls/blackbox-nls.hh BaseDisplay.hh Timer.hh Clientmenu.hh \ + Basemenu.hh Screen.hh Color.hh Texture.hh Util.hh Configmenu.hh \ +@@ -375,13 +377,13 @@ + blackbox.hh BaseDisplay.hh Timer.hh Clientmenu.hh Basemenu.hh \ + GCCache.hh Color.hh Iconmenu.hh Image.hh Rootmenu.hh Screen.hh \ + Texture.hh Util.hh Configmenu.hh Netizen.hh Workspace.hh \ +- Workspacemenu.hh Toolbar.hh Window.hh Windowmenu.hh Slit.hh ++ Workspacemenu.hh Toolbar.hh Window.hh Windowmenu.hh Slit.hh Xinerama.hh + Util.o: Util.cc ../config.h Util.hh + Window.o: Window.cc ../config.h i18n.hh ../nls/blackbox-nls.hh \ + blackbox.hh BaseDisplay.hh Timer.hh GCCache.hh Color.hh Iconmenu.hh \ + Basemenu.hh Image.hh Screen.hh Texture.hh Util.hh Configmenu.hh \ + Netizen.hh Rootmenu.hh Workspace.hh Workspacemenu.hh Toolbar.hh \ +- Window.hh Windowmenu.hh Slit.hh ++ Window.hh Windowmenu.hh Slit.hh Xinerama.hh + Windowmenu.o: Windowmenu.cc ../config.h i18n.hh ../nls/blackbox-nls.hh \ + blackbox.hh BaseDisplay.hh Timer.hh Screen.hh Color.hh Texture.hh \ + Util.hh Configmenu.hh Basemenu.hh Iconmenu.hh Netizen.hh Rootmenu.hh \ +@@ -390,11 +392,12 @@ + blackbox.hh BaseDisplay.hh Timer.hh Clientmenu.hh Basemenu.hh \ + Netizen.hh Screen.hh Color.hh Texture.hh Util.hh Configmenu.hh \ + Iconmenu.hh Rootmenu.hh Workspace.hh Workspacemenu.hh Toolbar.hh \ +- Window.hh Windowmenu.hh ++ Window.hh Windowmenu.hh Xinerama.hh + Workspacemenu.o: Workspacemenu.cc ../config.h i18n.hh \ + ../nls/blackbox-nls.hh blackbox.hh BaseDisplay.hh Timer.hh Screen.hh \ + Color.hh Texture.hh Util.hh Configmenu.hh Basemenu.hh Iconmenu.hh \ + Netizen.hh Rootmenu.hh Workspace.hh Workspacemenu.hh Toolbar.hh ++Xinerama.o: Xinerama.cc ../config.h Util.hh Xinerama.hh + blackbox.o: blackbox.cc ../config.h i18n.hh ../nls/blackbox-nls.hh \ + blackbox.hh BaseDisplay.hh Timer.hh Basemenu.hh Clientmenu.hh \ + GCCache.hh Color.hh Image.hh Rootmenu.hh Screen.hh Texture.hh Util.hh \ +--- blackbox-0.65.0.orig/src/Screen.cc ++++ blackbox-0.65.0/src/Screen.cc +@@ -998,6 +998,9 @@ + + *(session_stack + i++) = configmenu->getFocusmenu()->getWindowID(); + *(session_stack + i++) = configmenu->getPlacementmenu()->getWindowID(); ++ if (configmenu->getXineramamenu()) ++ *(session_stack + i++) = configmenu->getXineramamenu()->getWindowID(); ++ + *(session_stack + i++) = configmenu->getWindowID(); + + *(session_stack + i++) = slit->getMenu()->getDirectionmenu()->getWindowID(); +@@ -1704,38 +1707,18 @@ + if (rootmenu->isVisible()) + rootmenu->hide(); + } else if (xbutton->button == 2) { +- int mx = xbutton->x_root - (workspacemenu->getWidth() / 2); +- int my = xbutton->y_root - (workspacemenu->getTitleHeight() / 2); +- +- if (mx < 0) mx = 0; +- if (my < 0) my = 0; +- +- if (mx + workspacemenu->getWidth() > getWidth()) +- mx = getWidth() - workspacemenu->getWidth() - getBorderWidth(); +- +- if (my + workspacemenu->getHeight() > getHeight()) +- my = getHeight() - workspacemenu->getHeight() - getBorderWidth(); +- +- workspacemenu->move(mx, my); ++ workspacemenu->moveInScreen(xbutton->x_root, xbutton->y_root, ++ -static_cast(workspacemenu->getWidth()) / 2, ++ -static_cast(workspacemenu->getTitleHeight()) / 2); + + if (! workspacemenu->isVisible()) { + workspacemenu->removeParent(); + workspacemenu->show(); + } + } else if (xbutton->button == 3) { +- int mx = xbutton->x_root - (rootmenu->getWidth() / 2); +- int my = xbutton->y_root - (rootmenu->getTitleHeight() / 2); +- +- if (mx < 0) mx = 0; +- if (my < 0) my = 0; +- +- if (mx + rootmenu->getWidth() > getWidth()) +- mx = getWidth() - rootmenu->getWidth() - getBorderWidth(); +- +- if (my + rootmenu->getHeight() > getHeight()) +- my = getHeight() - rootmenu->getHeight() - getBorderWidth(); +- +- rootmenu->move(mx, my); ++ rootmenu->moveInScreen(xbutton->x_root, xbutton->y_root, ++ -static_cast(rootmenu->getWidth()) / 2, ++ -static_cast(rootmenu->getTitleHeight()) / 2); + + if (! rootmenu->isVisible()) { + blackbox->checkMenu(); +--- blackbox-0.65.0.orig/src/Screen.hh ++++ blackbox-0.65.0/src/Screen.hh +@@ -149,15 +149,16 @@ + + bool toolbar_on_top, toolbar_auto_hide, sloppy_focus, auto_raise, + auto_edge_balance, image_dither, ordered_dither, opaque_move, full_max, +- focus_new, focus_last, click_raise, allow_scroll_lock; ++ focus_new, focus_last, click_raise, allow_scroll_lock, ++ xinerama_placement, xinerama_maximize, xinerama_menus, xinerama_toolbar; + BColor border_color; + XrmDatabase stylerc; + + unsigned int workspaces; + int toolbar_placement, toolbar_width_percent, placement_policy, +- edge_snap_threshold, row_direction, col_direction; ++ edge_snap_threshold, row_direction, col_direction, toolbar_xin_screen; + +- bool slit_on_top, slit_auto_hide; ++ bool slit_on_top, slit_auto_hide, xinerama_slit; + int slit_placement, slit_direction; + + unsigned int handle_width, bevel_width, frame_width, border_width; +@@ -224,6 +225,16 @@ + inline bool doFocusNew(void) const { return resource.focus_new; } + inline bool doFocusLast(void) const { return resource.focus_last; } + inline bool allowScrollLock(void) const { return resource.allow_scroll_lock;} ++ inline bool doXineramaPlacement(void) const ++ { return resource.xinerama_placement; } ++ inline bool doXineramaMaximize(void) const ++ { return resource.xinerama_maximize; } ++ inline bool doXineramaMenus(void) const ++ { return resource.xinerama_menus; } ++ inline bool doXineramaToolbar(void) const ++ { return resource.xinerama_toolbar; } ++ inline bool doXineramaSlit(void) const ++ { return resource.xinerama_slit; } + + inline const GC &getOpGC(void) const { return opGC; } + +@@ -281,6 +292,8 @@ + { return resource.row_direction; } + inline int getColPlacementDirection(void) const + { return resource.col_direction; } ++ inline int getXineramaToolbarScreen(void) const ++ { return resource.toolbar_xin_screen; } + + inline void setRootColormapInstalled(bool r) { root_colormap_installed = r; } + inline void saveSloppyFocus(bool s) { resource.sloppy_focus = s; } +@@ -295,6 +308,8 @@ + inline void savePlacementPolicy(int p) { resource.placement_policy = p; } + inline void saveRowPlacementDirection(int d) { resource.row_direction = d; } + inline void saveColPlacementDirection(int d) { resource.col_direction = d; } ++ inline void saveXineramaToolbarScreen(int s) ++ { resource.toolbar_xin_screen = s;} + inline void saveEdgeSnapThreshold(int t) + { resource.edge_snap_threshold = t; } + inline void saveImageDither(bool d) { resource.image_dither = d; } +@@ -303,6 +318,13 @@ + inline void saveFocusNew(bool f) { resource.focus_new = f; } + inline void saveFocusLast(bool f) { resource.focus_last = f; } + inline void saveAllowScrollLock(bool a) { resource.allow_scroll_lock = a; } ++ inline void saveXineramaPlacement(bool p) { resource.xinerama_placement = p; } ++ inline void saveXineramaMaximize(bool m) { resource.xinerama_maximize = m; } ++ inline void saveXineramaMenus(bool m) { resource.xinerama_menus = m; } ++ inline void saveXineramaToolbar(bool t) { resource.xinerama_toolbar = t; } ++ inline void saveXinaramaToolbarScreen(int s) ++ { resource.toolbar_xin_screen = s; } ++ inline void saveXineramaSlit(bool s) { resource.xinerama_slit = s; } + + inline void iconUpdate(void) { iconmenu->update(); } + +--- blackbox-0.65.0.orig/src/Slit.cc ++++ blackbox-0.65.0/src/Slit.cc +@@ -35,6 +35,7 @@ + #include "Screen.hh" + #include "Slit.hh" + #include "Toolbar.hh" ++#include "Xinerama.hh" + + + Slit::Slit(BScreen *scr) { +@@ -481,6 +482,29 @@ + + frame.rect.setPos(x, y); + ++ if (screen->getXineramaInfo() && screen->doXineramaSlit()) { ++ XineramaScreen scr = screen->getXineramaInfo()->screenContaining(frame.rect); ++ if (!scr.isValid()) { ++ scr = screen->getXineramaInfo()->getClosestScreen(x,y); ++ } ++ ++ if (scr.isValid() && (scr.getRect() & frame.rect) != frame.rect) { ++ int w = static_cast(frame.rect.width()); ++ if (x < scr.getRect().left()) ++ x = scr.getRect().left(); ++ else if (x + w > scr.getRect().right()) ++ x = scr.getRect().right() - w; ++ ++ int h = static_cast(frame.rect.height()); ++ if (y < scr.getRect().top()) ++ y = scr.getRect().top(); ++ else if (y + h > scr.getRect().bottom()) ++ y = scr.getRect().bottom() - h; ++ ++ frame.rect.setPos(x, y); ++ } ++ } ++ + // we have to add the border to the rect as it is not accounted for + Rect tbar_rect = screen->getToolbar()->getRect(); + tbar_rect.setSize(tbar_rect.width() + (screen->getBorderWidth() * 2), +@@ -536,22 +560,9 @@ + XLowerWindow(display, frame.window); + } else if (e->button == Button3) { + if (! slitmenu->isVisible()) { +- int x, y; +- +- x = e->x_root - (slitmenu->getWidth() / 2); +- y = e->y_root - (slitmenu->getHeight() / 2); +- +- if (x < 0) +- x = 0; +- else if (x + slitmenu->getWidth() > screen->getWidth()) +- x = screen->getWidth() - slitmenu->getWidth(); +- +- if (y < 0) +- y = 0; +- else if (y + slitmenu->getHeight() > screen->getHeight()) +- y = screen->getHeight() - slitmenu->getHeight(); +- +- slitmenu->move(x, y); ++ slitmenu->moveInScreen(e->x_root, e->y_root, ++ -static_cast(slitmenu->getWidth()) / 2, ++ -static_cast(slitmenu->getHeight()) / 2); + slitmenu->show(); + } else { + slitmenu->hide(); +--- blackbox-0.65.0.orig/src/Timer.hh ++++ blackbox-0.65.0/src/Timer.hh +@@ -98,9 +98,9 @@ + ~_timer_queue(void) {} + + void release(const _Tp& value) { +- c.erase(std::remove(c.begin(), c.end(), value), c.end()); ++ this->c.erase(std::remove(this->c.begin(), this->c.end(), value), this->c.end()); + // after removing the item we need to make the heap again +- std::make_heap(c.begin(), c.end(), comp); ++ std::make_heap(this->c.begin(), this->c.end(), this->comp); + } + bool empty(void) const { return _Base::empty(); } + size_t size(void) const { return _Base::size(); } +--- blackbox-0.65.0.orig/src/Toolbar.cc ++++ blackbox-0.65.0/src/Toolbar.cc +@@ -62,6 +62,7 @@ + #include "Clientmenu.hh" + #include "Workspacemenu.hh" + #include "Slit.hh" ++#include "Xinerama.hh" + + + static long aMinuteFromNow(void) { +@@ -198,8 +199,56 @@ + + + void Toolbar::reconfigure(void) { ++ Rect rect = screen->getRect(); ++ ++ if (screen->getXineramaInfo() && screen->doXineramaToolbar()) { ++ ++ XineramaScreen xinerama = ++ screen->getXineramaInfo()->getScreen(screen->getXineramaToolbarScreen()); ++ ++ if (! xinerama.isValid()) { ++ ++ XineramaList list; ++ switch (screen->getToolbarPlacement()) { ++ case TopLeft: ++ case TopRight: ++ case TopCenter: ++ screen->getXineramaInfo()->getTopScreens(list); ++ break; ++ case BottomLeft: ++ case BottomRight: ++ case BottomCenter: ++ default: ++ screen->getXineramaInfo()->getBottomScreens(list); ++ break; ++ } ++ ++ switch (screen->getToolbarPlacement()) { ++ case TopLeft: ++ case BottomLeft: ++ xinerama = *list.begin(); ++ break; ++ case TopRight: ++ case BottomRight: ++ xinerama = *list.rbegin(); ++ break; ++ case TopCenter: ++ case BottomCenter: ++ default: { ++ XineramaList::iterator itr = list.begin(); ++ for (int count = list.size()/2; count--; ++itr); ++ xinerama = *itr; ++ break; ++ } ++ } ++ screen->saveXineramaToolbarScreen(xinerama.getScreenNumber()); ++ } // end if (invalid xinerama screen) ++ ++ rect = xinerama.getRect(); ++ } // end if (xinerama) ++ + unsigned int height = 0, +- width = (screen->getWidth() * screen->getToolbarWidthPercent()) / 100; ++ width = (rect.width() * screen->getToolbarWidthPercent()) / 100; + + if (i18n.multibyte()) + height = screen->getToolbarStyle()->fontset_extents->max_ink_extent.height; +@@ -218,18 +267,25 @@ + int x, y; + switch (screen->getToolbarPlacement()) { + case TopLeft: ++ case BottomLeft: ++ x = rect.left(); ++ break; + case TopRight: +- case TopCenter: +- if (screen->getToolbarPlacement() == TopLeft) +- x = 0; +- else if (screen->getToolbarPlacement() == TopRight) +- x = screen->getWidth() - frame.rect.width() ++ case BottomRight: ++ x = rect.left() + rect.width() - frame.rect.width() + - (screen->getBorderWidth() * 2); +- else +- x = (screen->getWidth() - frame.rect.width()) / 2; +- +- y = 0; +- ++ break; ++ case TopCenter: ++ case BottomCenter: ++ default: ++ x = rect.left() + (rect.width() - frame.rect.width()) / 2; ++ break; ++ } ++ switch (screen->getToolbarPlacement()) { ++ case TopLeft: ++ case TopRight: ++ case TopCenter: ++ y = rect.top(); + frame.x_hidden = x; + frame.y_hidden = screen->getBevelWidth() - screen->getBorderWidth() + - frame.rect.height(); +@@ -239,19 +295,11 @@ + case BottomRight: + case BottomCenter: + default: +- if (screen->getToolbarPlacement() == BottomLeft) +- x = 0; +- else if (screen->getToolbarPlacement() == BottomRight) +- x = screen->getWidth() - frame.rect.width() +- - (screen->getBorderWidth() * 2); +- else +- x = (screen->getWidth() - frame.rect.width()) / 2; +- +- y = screen->getHeight() - frame.rect.height() ++ y = rect.bottom() - frame.rect.height() + - (screen->getBorderWidth() * 2); + + frame.x_hidden = x; +- frame.y_hidden = screen->getHeight() - screen->getBevelWidth() ++ frame.y_hidden = rect.bottom() - screen->getBevelWidth() + - screen->getBorderWidth(); + break; + } +@@ -758,22 +806,9 @@ + if (toolbarmenu->isVisible()) { + toolbarmenu->hide(); + } else { +- int x, y; +- +- x = be->x_root - (toolbarmenu->getWidth() / 2); +- y = be->y_root - (toolbarmenu->getHeight() / 2); +- +- if (x < 0) +- x = 0; +- else if (x + toolbarmenu->getWidth() > screen->getWidth()) +- x = screen->getWidth() - toolbarmenu->getWidth(); +- +- if (y < 0) +- y = 0; +- else if (y + toolbarmenu->getHeight() > screen->getHeight()) +- y = screen->getHeight() - toolbarmenu->getHeight(); +- +- toolbarmenu->move(x, y); ++ toolbarmenu->moveInScreen(be->x_root, be->y_root, ++ -static_cast(toolbarmenu->getWidth()) / 2, ++ -static_cast(toolbarmenu->getHeight()) / 2); + toolbarmenu->show(); + } + } +@@ -1069,21 +1104,88 @@ + : Basemenu(tm->toolbar->screen) { + setLabel(i18n(ToolbarSet, ToolbarToolbarPlacement, "Toolbar Placement")); + setInternalMenu(); +- setMinimumSublevels(3); ++ reconfigure(); ++} + +- insert(i18n(CommonSet, CommonPlacementTopLeft, "Top Left"), +- Toolbar::TopLeft); +- insert(i18n(CommonSet, CommonPlacementBottomLeft, "Bottom Left"), +- Toolbar::BottomLeft); +- insert(i18n(CommonSet, CommonPlacementTopCenter, "Top Center"), +- Toolbar::TopCenter); +- insert(i18n(CommonSet, CommonPlacementBottomCenter, "Bottom Center"), +- Toolbar::BottomCenter); +- insert(i18n(CommonSet, CommonPlacementTopRight, "Top Right"), +- Toolbar::TopRight); +- insert(i18n(CommonSet, CommonPlacementBottomRight, "Bottom Right"), +- Toolbar::BottomRight); ++void Toolbarmenu::Placementmenu::reconfigure(void) ++{ ++ for (int count = getCount(); count > 0; count = remove(count-1)); ++ ++ if (getScreen()->getXineramaInfo() && getScreen()->doXineramaToolbar()) { ++ char buffer[256]; ++ XineramaList top_list, bottom_list; ++ getScreen()->getXineramaInfo()->getTopScreens(top_list); ++ getScreen()->getXineramaInfo()->getBottomScreens(bottom_list); ++ int width = std::max(top_list.size(),bottom_list.size()) + 2; ++ setMinimumSublevels(width); ++ ++ XineramaList::const_iterator top = top_list.begin(); ++ XineramaList::const_iterator bottom = bottom_list.begin(); ++ ++ insert(i18n(CommonSet, CommonPlacementTopLeft, "Top Left"), ++ handleFromPlacement(Toolbar::TopLeft, top->getScreenNumber())); ++ insert(i18n(CommonSet, CommonPlacementBottomLeft, "Bottom Left"), ++ handleFromPlacement(Toolbar::BottomLeft, bottom->getScreenNumber())); ++ ++ for (int count = width - 2; count--; ) { ++ if (top != top_list.end()) { ++ sprintf(buffer, ++ i18n(ToolbarSet, ToolbarScreenTop, "Screen %d Top"), ++ top->getScreenNumber()); ++ insert(buffer, ++ handleFromPlacement(Toolbar::TopCenter,top->getScreenNumber())); ++ ++top; ++ } ++ else { ++ insert("",-2); ++ } ++ ++ if (bottom != bottom_list.end()) { ++ sprintf(buffer, ++ i18n(ToolbarSet, ToolbarScreenBottom, "Screen %d Bottom"), ++ bottom->getScreenNumber()); ++ insert(buffer, ++ handleFromPlacement(Toolbar::BottomCenter,bottom->getScreenNumber())); ++ ++bottom; ++ } ++ else { ++ insert("",-2); ++ } ++ } ++ ++ int last_scr = top_list.rbegin()->getScreenNumber(); ++ insert(i18n(CommonSet, CommonPlacementTopRight, "Top Right"), ++ handleFromPlacement(Toolbar::TopRight, last_scr)); ++ last_scr = bottom_list.rbegin()->getScreenNumber(); ++ insert(i18n(CommonSet, CommonPlacementBottomRight, "Bottom Right"), ++ handleFromPlacement(Toolbar::BottomRight, last_scr)); ++ ++ update(); ++ ++ for (int index = 0; index < static_cast(getCount()); index++) { ++ if (find(index)->function() == -2) { ++ setItemEnabled(index, false); ++ } ++ } ++ } ++ else { ++ setMinimumSublevels(3); ++ ++ insert(i18n(CommonSet, CommonPlacementTopLeft, "Top Left"), ++ Toolbar::TopLeft); ++ insert(i18n(CommonSet, CommonPlacementBottomLeft, "Bottom Left"), ++ Toolbar::BottomLeft); ++ insert(i18n(CommonSet, CommonPlacementTopCenter, "Top Center"), ++ Toolbar::TopCenter); ++ insert(i18n(CommonSet, CommonPlacementBottomCenter, "Bottom Center"), ++ Toolbar::BottomCenter); ++ insert(i18n(CommonSet, CommonPlacementTopRight, "Top Right"), ++ Toolbar::TopRight); ++ insert(i18n(CommonSet, CommonPlacementBottomRight, "Bottom Right"), ++ Toolbar::BottomRight); ++ } + update(); ++ Basemenu::reconfigure(); + } + + +@@ -1094,7 +1196,14 @@ + BasemenuItem *item = find(index); + if (! item) return; + +- getScreen()->saveToolbarPlacement(item->function()); ++ int placement = Placementmenu::placementFromHandle(item->function()); ++ getScreen()->saveToolbarPlacement(placement); ++ ++ if (getScreen()->getXineramaInfo() && getScreen()->doXineramaToolbar()) { ++ int xinerama = Placementmenu::xineramaFromHandle(item->function()); ++ getScreen()->saveXineramaToolbarScreen(xinerama); ++ } ++ + hide(); + getScreen()->getToolbar()->reconfigure(); + +--- blackbox-0.65.0.orig/src/Toolbar.hh ++++ blackbox-0.65.0/src/Toolbar.hh +@@ -47,6 +47,15 @@ + + public: + Placementmenu(Toolbarmenu *tm); ++ ++ inline static int handleFromPlacement(int placement, int xinerama_screen) ++ { return ((xinerama_screen+1) << 3) | placement; } ++ inline static int placementFromHandle(int handle) ++ { return handle & 0x7; } ++ inline static int xineramaFromHandle(int handle) ++ { return (handle >> 3)-1; } ++ ++ void reconfigure(void); + }; + + Toolbar *toolbar; +--- blackbox-0.65.0.orig/src/Util.hh ++++ blackbox-0.65.0/src/Util.hh +@@ -29,6 +29,14 @@ + + #include + ++struct Point { ++ inline Point(void) : x(0), y(0) {} ++ inline Point(int set_x, int set_y) : x(set_x), y(set_y) {} ++ inline void set(int set_x, int set_y) ++ { x = set_x; y = set_y; } ++ int x, y; ++}; ++ + class Rect { + public: + inline Rect(void) : _x1(0), _y1(0), _x2(0), _y2(0) { } +@@ -51,6 +59,7 @@ + + inline unsigned int width(void) const { return _x2 - _x1 + 1; } + inline unsigned int height(void) const { return _y2 - _y1 + 1; } ++ inline int area(void) const { return width() * height(); } + void setWidth(unsigned int __w); + void setHeight(unsigned int __h); + void setSize(unsigned int __w, unsigned int __h); +@@ -71,6 +80,9 @@ + inline bool valid(void) const { return _x2 > _x1 && _y2 > _y1; } + + bool intersects(const Rect &a) const; ++ ++ inline bool contains( int x, int y ) const ++ { return (x >= _x1) && (x <= _x2) && (y >= _y1) && (y <= _y2); } + + private: + int _x1, _y1, _x2, _y2; +--- blackbox-0.65.0.orig/src/Window.cc ++++ blackbox-0.65.0/src/Window.cc +@@ -44,6 +44,8 @@ + #endif // HAVE_STDLIB_H + } + ++#include ++ + #include "i18n.hh" + #include "blackbox.hh" + #include "GCCache.hh" +@@ -55,6 +57,7 @@ + #include "Window.hh" + #include "Windowmenu.hh" + #include "Workspace.hh" ++#include "Xinerama.hh" + + + /* +@@ -208,8 +211,16 @@ + client.normal_hint_flags & (PPosition|USPosition)) { + applyGravity(frame.rect); + +- if (blackbox->isStartup() || client.rect.intersects(screen->getRect())) ++ if (blackbox->isStartup()) { ++ place_window = False; ++ } ++ else if (s->getXineramaInfo() && s->doXineramaPlacement()) { ++ if (s->getXineramaInfo()->screenContaining(client.rect).isValid()) ++ place_window = False; ++ } ++ else if (client.rect.intersects(screen->getRect())) { + place_window = False; ++ } + } + + /* +@@ -1626,7 +1637,13 @@ + blackbox_attrib.premax_h = + client.rect.height() + frame.margin.top + frame.margin.bottom; + +- const Rect &screen_area = screen->availableArea(); ++ Rect screen_area = screen->availableArea(); ++ if (screen->getXineramaInfo() && screen->doXineramaMaximize()) { ++ XineramaScreen xinerama ++ = screen->getXineramaInfo()->screenContaining(frame.rect); ++ if (xinerama.isValid()) ++ screen_area &= xinerama.getRect(); ++ } + frame.changing = screen_area; + + switch(button) { +@@ -3288,6 +3305,7 @@ + do { + if (multibyte) { + XRectangle ink, logical; ++ if (text_len>100) text_len=100; + XmbTextExtents(fontset, text, text_len, &ink, &logical); + length = logical.width; + } else { +--- blackbox-0.65.0.orig/src/Workspace.cc ++++ blackbox-0.65.0/src/Workspace.cc +@@ -55,13 +55,12 @@ + #include "Window.hh" + #include "Workspace.hh" + #include "Windowmenu.hh" ++#include "Xinerama.hh" + + + Workspace::Workspace(BScreen *scrn, unsigned int i) { + screen = scrn; + +- cascade_x = cascade_y = 32; +- + id = i; + + clientmenu = new Clientmenu(this); +@@ -123,9 +122,6 @@ + for (; it != end; ++it, ++i) + (*it)->setWindowNumber(i); + +- if (i == 0) +- cascade_x = cascade_y = 32; +- + return i; + } + +@@ -548,8 +544,19 @@ + + bool Workspace::smartPlacement(Rect& win, const Rect& availableArea) { + rectList spaces; +- spaces.push_back(availableArea); //initially the entire screen is free + ++ // If xinerama info, initialize spaces to available xinerama screens ++ if (screen->getXineramaInfo() && screen->doXineramaPlacement()) { ++ const XineramaList& list = screen->getXineramaInfo()->getScreens(); ++ for (XineramaList::const_iterator itr = list.begin(); ++ itr != list.end(); ++itr) { ++ spaces.push_back(availableArea & itr->getRect()); ++ } ++ } ++ else { ++ spaces.push_back(availableArea); //initially the entire screen is free ++ } ++ + //Find Free Spaces + BlackboxWindowList::const_iterator wit = windowList.begin(), + end = windowList.end(); +@@ -621,17 +628,45 @@ + } + + +-bool Workspace::cascadePlacement(Rect &win, const Rect &availableArea) { +- if (cascade_x > (availableArea.width() / 2) || +- cascade_y > (availableArea.height() / 2)) +- cascade_x = cascade_y = 32; +- +- if (cascade_x == 32) { +- cascade_x += availableArea.x(); +- cascade_y += availableArea.y(); +- } +- +- win.setPos(cascade_x, cascade_y); ++bool Workspace::cascadePlacement(Rect &win, Rect availableArea, int offset) { ++ ++ // Place window in whichever xinerama screen contains the ++ // pointer. ++ int xinerama_screen = 0; ++ if (screen->getXineramaInfo() && screen->doXineramaPlacement()) { ++ int ptr_x, ptr_y, x, y; ++ Window c, r; ++ unsigned int m; ++ XQueryPointer(screen->getBaseDisplay()->getXDisplay(), ++ screen->getRootWindow(), ++ &r, &c, &ptr_x, &ptr_y, &x, &y, &m); ++ XineramaScreen xinerama = ++ screen->getXineramaInfo()->screenContaining(ptr_x, ptr_y); ++ if (! xinerama.isValid()) ++ xinerama = *(screen->getXineramaInfo()->getScreens().begin()); ++ xinerama_screen = xinerama.getScreenNumber(); ++ availableArea &= xinerama.getRect(); ++ } ++ ++ if (cascade_points.count(xinerama_screen) == 0) { ++ cascade_points[xinerama_screen] = Point(32,32); ++ } ++ Point& pos = cascade_points[xinerama_screen]; ++ ++ if (pos.x < (availableArea.left() + 32) || ++ pos.y < (availableArea.top() + 32) || ++ pos.x > (availableArea.left() + (int)availableArea.width() / 2) || ++ pos.y > (availableArea.top() + (int)availableArea.height() / 2)) ++ pos.x = pos.y = 32; ++ ++ if (pos.x == 32) { ++ pos.x += availableArea.x(); ++ pos.y += availableArea.y(); ++ } ++ ++ win.setPos(pos.x, pos.y); ++ pos.x += offset; ++ pos.y += offset; + + return True; + } +@@ -653,9 +688,8 @@ + } // switch + + if (placed == False) { +- cascadePlacement(new_win, availableArea); +- cascade_x += win->getTitleHeight() + (screen->getBorderWidth() * 2); +- cascade_y += win->getTitleHeight() + (screen->getBorderWidth() * 2); ++ cascadePlacement(new_win, availableArea, ++ win->getTitleHeight() + (screen->getBorderWidth() * 2)); + } + + if (new_win.right() > availableArea.right()) +--- blackbox-0.65.0.orig/src/Workspace.hh ++++ blackbox-0.65.0/src/Workspace.hh +@@ -51,7 +51,7 @@ + + std::string name; + unsigned int id; +- unsigned int cascade_x, cascade_y; ++ std::map cascade_points; + + Workspace(const Workspace&); + Workspace& operator=(const Workspace&); +@@ -62,7 +62,7 @@ + StackVector::iterator &stack); + + void placeWindow(BlackboxWindow *win); +- bool cascadePlacement(Rect& win, const Rect& availableArea); ++ bool cascadePlacement(Rect& win, Rect availableArea, int offset); + bool smartPlacement(Rect& win, const Rect& availableArea); + + public: +--- blackbox-0.65.0.orig/src/blackbox.cc ++++ blackbox-0.65.0/src/blackbox.cc +@@ -1094,6 +1094,26 @@ + screen_number, placement); + XrmPutLineResource(&new_blackboxrc, rc_string); + ++ // write out xinerama settings ++ sprintf(rc_string, "session.screen%d.xineramaPlacement: %s", ++ screen_number, screen->doXineramaPlacement() ? "True" : "False"); ++ XrmPutLineResource(&new_blackboxrc, rc_string); ++ sprintf(rc_string, "session.screen%d.xineramaMaximize: %s", ++ screen_number, screen->doXineramaMaximize() ? "True" : "False"); ++ XrmPutLineResource(&new_blackboxrc, rc_string); ++ sprintf(rc_string, "session.screen%d.xineramaMenuPlacement: %s", ++ screen_number, screen->doXineramaMenus() ? "True" : "False"); ++ XrmPutLineResource(&new_blackboxrc, rc_string); ++ sprintf(rc_string, "session.screen%d.slit.xineramaPlacement: %s", ++ screen_number, screen->doXineramaSlit() ? "True" : "False"); ++ XrmPutLineResource(&new_blackboxrc, rc_string); ++ sprintf(rc_string, "session.screen%d.toolbar.xineramaPlacement: %s", ++ screen_number, screen->doXineramaToolbar() ? "True" : "False"); ++ XrmPutLineResource(&new_blackboxrc, rc_string); ++ sprintf(rc_string, "session.screen%d.toolbar.xineramaScreen: %d", ++ screen_number, screen->getXineramaToolbarScreen()); ++ XrmPutLineResource(&new_blackboxrc, rc_string); ++ + load_rc(screen); + + // these are static, but may not be saved in the users .blackboxrc, +@@ -1215,7 +1235,6 @@ + } + } + +- + void Blackbox::load_rc(BScreen *screen) { + XrmDatabase database = (XrmDatabase) 0; + +@@ -1492,6 +1511,50 @@ + ! strncasecmp("true", value.addr, value.size)) { + screen->saveOpaqueMove(True); + } ++ ++ // load xinerama settings ++ sprintf(name_lookup, "session.screen%d.xineramaPlacement", screen_number); ++ sprintf(class_lookup, "Session.Screen%d.XineramaPlacement", screen_number); ++ screen->saveXineramaPlacement(true); ++ if ((XrmGetResource(database,name_lookup,class_lookup,&value_type,&value)) ++ && ! strncasecmp("false", value.addr, value.size)) { ++ screen->saveXineramaPlacement(false); ++ } ++ sprintf(name_lookup, "session.screen%d.xineramaMaximize", screen_number); ++ sprintf(class_lookup, "Session.Screen%d.XineramaMaximize", screen_number); ++ screen->saveXineramaMaximize(true); ++ if ((XrmGetResource(database,name_lookup,class_lookup,&value_type,&value)) ++ && ! strncasecmp("false", value.addr, value.size)) { ++ screen->saveXineramaMaximize(false); ++ } ++ sprintf(name_lookup, "session.screen%d.xineramaMenuPlacement", screen_number); ++ sprintf(class_lookup, "Session.Screen%d.XineramaMenuPlacement", screen_number); ++ screen->saveXineramaMenus(true); ++ if ((XrmGetResource(database,name_lookup,class_lookup,&value_type,&value)) ++ && ! strncasecmp("false", value.addr, value.size)) { ++ screen->saveXineramaMenus(false); ++ } ++ sprintf(name_lookup, "session.screen%d.slit.xineramaPlacement", screen_number); ++ sprintf(class_lookup, "Session.Screen%d.Slit.XineramaPlacement", screen_number); ++ screen->saveXineramaSlit(true); ++ if ((XrmGetResource(database,name_lookup,class_lookup,&value_type,&value)) ++ && ! strncasecmp("false", value.addr, value.size)) { ++ screen->saveXineramaSlit(false); ++ } ++ sprintf(name_lookup, "session.screen%d.toolbar.xineramaPlacement", screen_number); ++ sprintf(class_lookup, "Session.Screen%d.Toolbar.XineramaPlacement", screen_number); ++ screen->saveXineramaToolbar(true); ++ if ((XrmGetResource(database,name_lookup,class_lookup,&value_type,&value)) ++ && ! strncasecmp("false", value.addr, value.size)) { ++ screen->saveXineramaToolbar(false); ++ } ++ sprintf(name_lookup, "session.screen%d.toolbar.xineramaScreen", screen_number); ++ sprintf(class_lookup, "Session.Screen%d.Toolbar.XineramaScreen", screen_number); ++ screen->saveXineramaToolbarScreen(-1); ++ if ((XrmGetResource(database,name_lookup,class_lookup,&value_type,&value)) ++ && sscanf(value.addr, "%d", &int_value) == 1) { ++ screen->saveXineramaToolbarScreen(int_value); ++ } + + XrmDestroyDatabase(database); + } +--- blackbox-0.65.0.orig/src/Xinerama.cc ++++ blackbox-0.65.0/src/Xinerama.cc +@@ -0,0 +1,153 @@ ++// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- ++// Xinerama.cc for Blackbox - an X11 Window manager ++// Copyright (c) 2002 Jason Kraftcheck ++// ++// Permission is hereby granted, free of charge, to any person obtaining a ++// copy of this software and associated documentation files (the "Software"), ++// to deal in the Software without restriction, including without limitation ++// the rights to use, copy, modify, merge, publish, distribute, sublicense, ++// and/or sell copies of the Software, and to permit persons to whom the ++// Software is furnished to do so, subject to the following conditions: ++// ++// The above copyright notice and this permission notice shall be included in ++// all copies or substantial portions of the Software. ++// ++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++// DEALINGS IN THE SOFTWARE. ++ ++ ++extern "C" { ++#include ++#ifdef XINERAMA ++# include ++#endif ++} ++ ++#include "Xinerama.hh" ++#include "BaseDisplay.hh" ++ ++bool XineramaInfo::update(void) ++{ ++ screen_list.clear(); ++ ++#ifdef XINERAMA ++ int count; ++ XineramaScreenInfo* xinerama_list = XineramaQueryScreens( ++ screen_info->getBaseDisplay()->getXDisplay(), &count ); ++ if (xinerama_list) { ++ if (count > 1) { ++ for( int i = 0; i < count; i++ ) { ++ const XineramaScreenInfo& scr = xinerama_list[i]; ++ screen_list.push_back( XineramaScreen( scr.screen_number, ++ Rect( scr.x_org, scr.y_org, scr.width, scr.height ) ) ); ++ } ++ } ++ XFree(xinerama_list); ++ } ++#endif ++ ++ return haveXinerama(); ++} ++ ++XineramaScreen XineramaInfo::screenContaining( int x, int y ) const ++{ ++ XineramaList::const_iterator itr = getScreens().begin(), ++ end = getScreens().end(); ++ ++ for ( ; itr != end; ++itr) { ++ if (itr->getRect().contains(x,y)) ++ return *itr; ++ }; ++ ++ return XineramaScreen(); ++} ++ ++XineramaScreen XineramaInfo::screenContaining( const Rect& rect ) const ++{ ++ XineramaScreen result; ++ int area = 0; ++ XineramaList::const_iterator itr = getScreens().begin(), ++ end = getScreens().end(); ++ for ( ; itr != end; ++itr) { ++ if (itr->getRect().intersects(rect)) { ++ int a = (itr->getRect() & rect).area(); ++ if (a > area) { ++ result = *itr; ++ area = a; ++ } ++ } ++ } ++ return result; ++} ++ ++ ++XineramaScreen XineramaInfo::getScreen( int x_screen_number ) const ++{ ++ XineramaList::const_iterator itr = getScreens().begin(), ++ end = getScreens().end(); ++ for ( ; itr != end; ++itr) { ++ if (itr->getScreenNumber() == x_screen_number) ++ return *itr; ++ } ++ ++ return XineramaScreen(); ++} ++ ++ ++void XineramaInfo::getTopBottom( XineramaList& result, bool top ) const ++{ ++ for (XineramaList::const_iterator in_itr = screen_list.begin(); ++ in_itr != screen_list.end(); ++in_itr) { ++ ++ XineramaList::iterator out_itr = result.begin(); ++ while (out_itr != result.end() && ++ in_itr->getRect().left() >= out_itr->getRect().right()) ++ ++out_itr; ++ ++ if (out_itr == result.end()) { ++ result.push_back(*in_itr); ++ } ++ else if (in_itr->getRect().right() <= out_itr->getRect().left()) { ++ result.insert(out_itr,*in_itr); ++ } ++ else if ((!top && in_itr->getRect().bottom() > out_itr->getRect().bottom()) || ++ ( top && in_itr->getRect().top() < out_itr->getRect().top())) { ++ *out_itr = *in_itr; ++ } ++ } ++} ++ ++XineramaScreen XineramaInfo::getClosestScreen( int x, int y ) const ++{ ++ if (getScreens().empty()) ++ return XineramaScreen(); ++ ++ XineramaList::const_iterator itr = screen_list.begin(); ++ XineramaScreen result(*itr); ++ unsigned long dist_sqr = distanceSquared(itr->getRect(),x,y); ++ ++itr; ++ ++ for ( ; itr != screen_list.end(); ++itr) { ++ unsigned long ds = distanceSquared(itr->getRect(), x, y); ++ if (ds < dist_sqr) { ++ dist_sqr = ds; ++ result = *itr; ++ } ++ } ++ ++ return result; ++} ++ ++unsigned long XineramaInfo::distanceSquared(const Rect& rect,int x,int y) ++{ ++ unsigned long x_dist = (x < rect.left() ) ? rect.left() - x : ++ (x > rect.right() ) ? x - rect.right() : 0; ++ unsigned long y_dist = (y < rect.top() ) ? rect.top() - y : ++ (y > rect.bottom()) ? y - rect.bottom() : 0; ++ return x_dist * x_dist + y_dist * y_dist; ++} +--- blackbox-0.65.0.orig/src/Xinerama.hh ++++ blackbox-0.65.0/src/Xinerama.hh +@@ -0,0 +1,93 @@ ++// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- ++// Xinerama.hh for Blackbox - an X11 Window manager ++// Copyright (c) 2002 Jason Kraftcheck ++// ++// Permission is hereby granted, free of charge, to any person obtaining a ++// copy of this software and associated documentation files (the "Software"), ++// to deal in the Software without restriction, including without limitation ++// the rights to use, copy, modify, merge, publish, distribute, sublicense, ++// and/or sell copies of the Software, and to permit persons to whom the ++// Software is furnished to do so, subject to the following conditions: ++// ++// The above copyright notice and this permission notice shall be included in ++// all copies or substantial portions of the Software. ++// ++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++// DEALINGS IN THE SOFTWARE. ++ ++#ifndef __Xinerama_hh ++#define __Xinerama_hh ++ ++#include ++ ++#include "Util.hh" ++ ++class XineramaScreen; ++class ScreenInfo; ++ ++typedef std::list XineramaList; ++ ++class XineramaScreen { ++private: ++ int x_screen; ++ Rect rect; ++ ++public: ++ inline XineramaScreen( int screen_number, const Rect& box ) ++ : x_screen(screen_number), rect(box) { } ++ ++ inline XineramaScreen(void) ++ : x_screen(-1) { } ++ ++ inline const Rect& getRect(void) const { return rect; } ++ inline int getScreenNumber(void) const { return x_screen; } ++ ++ inline bool operator==( const XineramaScreen& other ) const ++ { return x_screen == other.x_screen; } ++ ++ inline bool operator!=( const XineramaScreen& other ) const ++ { return x_screen != other.x_screen; } ++ ++ inline bool isValid(void) const { return x_screen >= 0; } ++}; ++ ++class XineramaInfo { ++private: ++ XineramaList screen_list; ++ ScreenInfo* screen_info; ++ ++protected: ++ void getTopBottom( XineramaList& result_list, bool top ) const; ++ ++ static unsigned long distanceSquared( const Rect& rect, int x, int y ); ++ ++public: ++ inline XineramaInfo( ScreenInfo* screen ) : screen_info(screen) ++ { update(); } ++ ++ inline bool haveXinerama(void) const ++ { return !screen_list.empty(); } ++ ++ inline const XineramaList& getScreens(void) const ++ { return screen_list; } ++ ++ bool update(void); ++ ++ XineramaScreen screenContaining( int x, int y ) const; ++ XineramaScreen screenContaining( const Rect& rect ) const; ++ XineramaScreen getScreen( int x_screen_number ) const; ++ XineramaScreen getClosestScreen( int x, int y ) const; ++ ++ inline void getTopScreens( XineramaList& result_list ) const ++ { getTopBottom( result_list, true ); } ++ ++ inline void getBottomScreens( XineramaList& result_list ) const ++ { getTopBottom( result_list, false ); } ++}; ++ ++#endif +--- blackbox-0.65.0.orig/util/Makefile.in ++++ blackbox-0.65.0/util/Makefile.in +@@ -79,7 +79,7 @@ + bin_PROGRAMS = bsetroot + + bsetroot_SOURCES = bsetroot.cc +-bsetroot_LDADD = ../src/BaseDisplay.o ../src/Color.o ../src/GCCache.o ../src/Texture.o ../src/Timer.o ../src/Image.o ../src/ImageControl.o ../src/i18n.o ../src/Util.o ++bsetroot_LDADD = ../src/BaseDisplay.o ../src/Color.o ../src/GCCache.o ../src/Texture.o ../src/Timer.o ../src/Image.o ../src/ImageControl.o ../src/i18n.o ../src/Util.o ../src/Xinerama.o + + MAINTAINERCLEANFILES = Makefile.in + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +--- blackbox-0.65.0.orig/debian/changelog ++++ blackbox-0.65.0/debian/changelog +@@ -0,0 +1,188 @@ ++blackbox (0.65.0-5) unstable; urgency=high ++ ++ * Fixed FTBFS with the missing build dependency on autoconf. ++ (closes: #291133) ++ ++ -- Bruno Barrera C. Tue, 18 Jan 2005 20:22:45 -0300 ++ ++blackbox (0.65.0-4) unstable; urgency=low ++ ++ * Fixed the string length problem. (closes: #178001) ++ * Added Xinerama support. (closes: #277517) ++ ++ -- Bruno Barrera C. Mon, 17 Jan 2005 23:27:56 -0300 ++ ++blackbox (0.65.0-3) unstable; urgency=low ++ ++ * Fixed FTBFS with gcc-3.4 (closes: #266642) ++ * debian/postinst now checks for the correct files to be removed ++ (blackbox-menu instead Blackbox-menu) ++ ++ -- Bruno Barrera C. Fri, 20 Aug 2004 21:44:55 -0400 ++ ++blackbox (0.65.0-2) unstable; urgency=low ++ ++ * New Maintainer (closes: #259585) ++ * Corrected menu-method coding (closes: #251237) ++ * Added a blackbox.desktop file. (closes: #257423) ++ * Completed the debian/copyright file. ++ ++ -- Bruno Barrera C. Fri, 16 Jul 2004 18:26:04 -0400 ++ ++blackbox (0.65.0-1.2) unstable; urgency=low ++ ++ * Non Maintainer Upload ++ * Patch by Matt Kraai to solve FTBFS: Closes: #208814. ++ ++ -- Jesus Climent Wed, 15 Oct 2003 15:38:53 +0300 ++ ++blackbox (0.65.0-1.1) unstable; urgency=low ++ ++ * Non Maintainer Upload ++ * Include in src/Window.cc (Closes: #196245) ++ ++ -- David Pashley Tue, 15 Jul 2003 16:36:04 +0200 ++ ++blackbox (0.65.0-1) unstable; urgency=low ++ ++ * new upstream release ++ * now has man pages for all binaries, closes: #93427 ++ * newer version of bsetbg behaves much better, closes: #109606 ++ * tilde expansion in blackboxrc and menus is now supported, closes: #139330 ++ ++ -- Sean 'Shaleh' Perry Wed, 18 Sep 2002 11:02:00 -0700 ++ ++blackbox (0.65.0-0.pre1) unstable; urgency=low ++ ++ * temporary deb ++ ++ -- Sean 'Shaleh' Perry Fri, 6 Sep 2002 19:33:37 -0700 ++ ++blackbox (0.62.1-1) unstable; urgency=low ++ ++ * new upstream release ++ ++ -- Sean 'Shaleh' Perry Wed, 30 Jan 2002 22:17:06 -0800 ++ ++blackbox (0.62.0-1) unstable; urgency=low ++ ++ * new upstream ++ * I am now the upstream (-: ++ * upstream fixes these, Closes: #72254, #103909, #116767 ++ * Documented update-menu and blackbox behaviour (closes: #117386) ++ * Added README.menu and .style (closes: #81008) ++ * removed empty dir (closes: #78777) ++ ++ -- Sean 'Shaleh' Perry Sat, 19 Jan 2002 11:22:06 -0800 ++ ++blackbox (0.61.1-1.1) unstable; urgency=low ++ ++ * NMU ++ * Fix unsafe temp files in bsetbg. Closes: #102126 ++ * Add class key as needed, printf is a macro as of gcc 3.0. Closes: #105452 ++ ++ -- LaMont Jones Sun, 15 Jul 2001 23:29:46 -0600 ++ ++blackbox (0.61.1-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Sean 'Shaleh' Perry Mon, 9 Oct 2000 10:10:31 -0700 ++ ++blackbox (0.61.0-3) unstable; urgency=low ++ ++ * Changed menu-method to call x-terminal-emulator instead of xterm ++ * Closes: #71981 ++ ++ -- Sean 'Shaleh' Perry Wed, 20 Sep 2000 11:41:45 -0700 ++ ++blackbox (0.61.0-2) unstable; urgency=low ++ ++ * removed echo from the postinst ++ ++ -- Sean 'Shaleh' Perry Thu, 31 Aug 2000 11:35:39 -0700 ++ ++blackbox (0.61.0-1) unstable; urgency=low ++ ++ * New upstream ++ ++ -- Sean 'Shaleh' Perry Fri, 18 Aug 2000 13:29:31 -0700 ++ ++blackbox (0.61.0.20000806-1) unstable; urgency=low ++ ++ * New upstream ++ ++ -- Sean 'Shaleh' Perry Mon, 7 Aug 2000 10:19:22 -0700 ++ ++blackbox (0.61.0.20000726-2) unstable; urgency=low ++ ++ * Oops, forgot to re-run autofriends ++ ++ -- Sean 'Shaleh' Perry Wed, 26 Jul 2000 16:39:15 -0700 ++ ++blackbox (0.61.0.20000726-1) unstable; urgency=low ++ ++ * New upstream beta ++ ++ -- Sean 'Shaleh' Perry Wed, 26 Jul 2000 13:10:07 -0700 ++ ++blackbox (0.60.3-5) unstable; urgency=low ++ ++ * Fix for improper quoting of rootCommand ++ ++ -- Sean 'Shaleh' Perry Thu, 20 Jul 2000 21:41:11 -0700 ++ ++blackbox (0.60.3-4) unstable; urgency=low ++ ++ * Bug fix release ++ * added a CXXFLAGS setting to the rules file. This makes blackbox smaller ++ and faster. ++ * Closes: #45298, #55305, #61552, #64615, #64773, #64851, #64969 ++ ++ -- Sean 'Shaleh' Perry Tue, 18 Jul 2000 13:01:43 -0700 ++ ++blackbox (0.60.3-3) unstable; urgency=low ++ ++ * Oops, left the stylesmenu file ++ ++ -- Sean 'Shaleh' Perry Sat, 27 May 2000 19:40:41 -0700 ++ ++blackbox (0.60.3-2) unstable; urgency=low ++ ++ * Oops, left a call to update-bbstyles ++ ++ -- Sean 'Shaleh' Perry Fri, 26 May 2000 16:12:27 -0700 ++ ++blackbox (0.60.3-1) unstable; urgency=low ++ ++ * New upstream release ++ * Changed user style menu to look in ~/.blackbox/styles to match ++ current practice among style authors ++ * Cleaned up menu-method script and thus the resulting menu file it ++ generates ++ ++ -- Sean 'Shaleh' Perry Fri, 26 May 2000 12:08:34 -0700 ++ ++blackbox (0.60.2-2) unstable; urgency=low ++ ++ * Removed update-styles ++ ++ -- Sean 'Shaleh' Perry Thu, 25 May 2000 14:02:15 -0700 ++ ++blackbox (0.60.2-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Sean 'Shaleh' Perry Thu, 25 May 2000 12:55:42 -0700 ++ ++blackbox (0.60.0.alpha-2) unstable; urgency=low ++ ++ * New maintainer ++ ++ -- Sean 'Shaleh' Perry Thu, 25 May 2000 11:50:49 -0700 ++ ++blackbox (0.60.0.alpha-1) unstable; urgency=low ++ ++ * The Alpha release. ++ ++ -- Brent A. Fulgham Sat, 22 April 2000 13:32:08 -0800 +--- blackbox-0.65.0.orig/debian/conffiles ++++ blackbox-0.65.0/debian/conffiles +@@ -0,0 +1 @@ ++/etc/menu-methods/blackbox +--- blackbox-0.65.0.orig/debian/control ++++ blackbox-0.65.0/debian/control +@@ -0,0 +1,26 @@ ++Source: blackbox ++Section: x11 ++Priority: optional ++Build-Depends: autoconf, xlibs-dev, debhelper ++Maintainer: Bruno Barrera C. ++Standards-Version: 3.5.0 ++ ++Package: blackbox ++Architecture: any ++Depends: ${shlibs:Depends} ++Provides: x-window-manager ++Suggests: menu (>=1.5) ++Description: Window manager for X ++ This is a window manager for X. It is similar in many respects to ++ such popular packages as Window Maker, Enlightenment, and FVWM2. You ++ might be interested in this package if you are tired of window managers ++ that are a heavy drain on your system resources, but you still want ++ an attractive and modern-looking interface. ++ . ++ The best part of all is that this program is coded in C++, so it ++ is even more attractive "under the hood" than it is in service -- no ++ small feat. ++ . ++ If none of this sounds familiar to you, or you want your computer to ++ look like Microsoft Windows or Apple's OS X, you probably don't want ++ this package. +--- blackbox-0.65.0.orig/debian/copyright ++++ blackbox-0.65.0/debian/copyright +@@ -0,0 +1,37 @@ ++This package was debianized by Brent A. Fulgham bfulgham@debian.org on ++Thu, 15 Oct 1998 18:17:09 -0700. ++ ++It was downloaded from http://sf.net/projects/blackboxwm ++ ++Upstream Authors: Sean 'Shaleh' Perry ++ Brad Hughes ++ Jeff Raven ++ ++Copyright: ++ ++The Regents of the University of California. ++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. ++3. Neither the name of the University nor the names of its contributors ++ may be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ ++THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. +--- blackbox-0.65.0.orig/debian/dirs ++++ blackbox-0.65.0/debian/dirs +@@ -0,0 +1,10 @@ ++etc/menu-methods ++etc/X11/blackbox ++usr/bin ++usr/share/man/man1 ++usr/share/doc ++usr/share/doc/blackbox ++usr/share/blackbox ++usr/share/blackbox/styles ++usr/share/blackbox/nls ++usr/share/xsessions +--- blackbox-0.65.0.orig/debian/docs ++++ blackbox-0.65.0/debian/docs +@@ -0,0 +1 @@ ++AUTHORS README README.bsetbg data/README.menu data/README.style +--- blackbox-0.65.0.orig/debian/menu ++++ blackbox-0.65.0/debian/menu +@@ -0,0 +1,24 @@ ++?package(blackbox):needs="wm" \ ++ section="WindowManagers" title="Blackbox" \ ++ command="/usr/bin/blackbox" ++?package(blackbox):needs="blackbox" \ ++ section="WindowManagers" title="Exit" \ ++ command="exit" ++?package(blackbox):needs="blackbox" \ ++ section="WindowManagers" title="Reconfigure" \ ++ command="reconfig" ++?package(blackbox):needs="blackbox" \ ++ section="WindowManagers" title="Restart" \ ++ command="restart" ++?package(blackbox):needs="blackbox" \ ++ section="Blackbox/Styles" title="/usr/share/blackbox/styles" \ ++ command="stylesdir" ++?package(blackbox):needs="blackbox" \ ++ section="Blackbox/Styles" title="~/.blackbox/styles" \ ++ command="stylesdir" ++?package(blackbox):needs="blackbox" \ ++ section="Blackbox" title="Workspaces" \ ++ command="workspaces" ++?package(blackbox):needs="blackbox" \ ++ section="Blackbox" title="Configuration" \ ++ command="config" +--- blackbox-0.65.0.orig/debian/menu-method ++++ blackbox-0.65.0/debian/menu-method +@@ -0,0 +1,27 @@ ++#!/usr/sbin/install-menu ++# ++# Generates blackbox menus for all registered applications. ++ ++!include menu.h ++compat="menu-1" ++outputencoding="LOCALE" ++ ++genmenu="blackbox-menu" ++rootprefix="/etc/X11/blackbox/" ++userprefix=".blackbox/" ++treewalk="M)" ++ ++supported ++ x11= nstring(level(), " ") "[exec] (" esc(title(), "()") ") {" esc($command, "()") "}\n" ++ wm= nstring(level(), " ") "[restart] (" esc(title(), "()") ") {" esc($command, "()") "}\n" ++ text= nstring(level(), " ") "[exec] (" esc(title(), "()") ") {" esc(term(), "()") "}\n" ++blackbox= nstring(level(), " ") "[" esc($command, "()") "] (" esc(title(), "()") ")\n" ++endsupported ++ ++preoutput= \ ++ "# Automatically generated file. Do not edit (see /usr/share/doc/menu/README)\n\n[begin] (Debian)\n" ++ ++startmenu= "" ++submenutitle= nstring(level(), " ") "[submenu] (" esc(title(),"()") ") {" esc($longtitle,"()") "}\n" ++endmenu= nstring(level(), " ") "[end]\n" ++ +--- blackbox-0.65.0.orig/debian/postinst ++++ blackbox-0.65.0/debian/postinst +@@ -0,0 +1,49 @@ ++#!/bin/sh ++# ++# Blackbox postinst ++# ++# Shamelessly ripped off of Marcelo Magallon's script ++# by Brent Fulgham ++# ++set -e ++ ++WMentry="/usr/bin/blackbox" ++ ++add_wm_entry () ++{ ++ update-alternatives --install /usr/bin/x-window-manager x-window-manager $WMentry 50 \ ++ --slave /usr/share/man/man1/x-window-manager.1.gz x-window-manager.1.gz /usr/share/man/man1/blackbox.1.gz ++} ++ ++case "$1" in ++ configure) ++ if [ "$2" ] && dpkg --compare-versions $2 le 0.51.3-12; then ++ update-alternatives --remove x-window-manager /etc/X11/window-managers ++ fi ++ ++ add_wm_entry ++ ++ # clean up after eaarlier debs ++ if [ -f /usr/share/blackbox/styles/stylesmenu ]; then ++ rm /usr/share/blackbox/styles/stylesmenu ++ fi ++ ++ if [ -f /etc/X11/blackbox/blackbox-menu ]; then ++ rm /etc/X11/blackbox/blackbox-menu ++ fi ++ ++ if [ -x /usr/sbin/wm-menu-config ]; then ++ wm-menu-config blackbox on; ++ fi ++ ;; ++ ++ abort-upgrade|abort-deconfigure|abort-remove) ++ # how did we get here? Force a non-zero exit code ++ exit 1 ++ ;; ++ ++ *) ++ ;; ++esac ++ ++#DEBHELPER# +--- blackbox-0.65.0.orig/debian/postrm ++++ blackbox-0.65.0/debian/postrm +@@ -0,0 +1,24 @@ ++#!/bin/sh ++set -e ++ ++Blackbox_entry="/usr/bin/blackbox" ++ ++case "$1" in ++ purge) ++ rm -rf /etc/X11/blackbox ++ ;; ++ remove) ++ if [ -x /usr/sbin/wm-menu-config ]; then ++ wm-menu-config blackbox off ++ fi ++ ++ if [ -x /usr/sbin/register-window-manager ] ; then ++ register-window-manager --remove $Blackbox_entry ++ fi ++ ++ ;; ++ *) ++ ;; ++esac ++ ++#DEBHELPER# +--- blackbox-0.65.0.orig/debian/rules ++++ blackbox-0.65.0/debian/rules +@@ -0,0 +1,71 @@ ++#!/usr/bin/make -f ++# MAde with the aid of dh_make, by Craig Small ++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. ++# Some lines taken from debmake, by Cristoph Lameter. ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++PACKAGE=blackbox ++ ++build: build-stamp ++build-stamp: ++ dh_testdir ++ autoconf ++ CXXFLAGS="-O2 -fno-rtti -fno-exceptions -fno-check-new" ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc/X11/blackbox ++ ++ # Add here commands to compile the package. ++ $(MAKE) DEFAULT_MENU=/etc/X11/blackbox/blackbox-menu ++ ++ touch build-stamp ++ ++clean: ++ dh_testdir ++ dh_testroot ++ rm -f build-stamp install-stamp config.log ++ ++ # Add here commands to clean up after the build process. ++ -$(MAKE) distclean ++ ++ dh_clean ++ ++ ++install: install-stamp ++install-stamp: build-stamp ++ dh_testdir ++ dh_testroot ++ dh_clean -k ++ dh_installdirs ++ ++ # Add here commands to install the package into debian/tmp. ++ $(MAKE) install DESTDIR=`pwd`/debian/tmp ++ # make install places a menu here, but we don't want it ++ rm -f `pwd`/debian/tmp/usr/share/blackbox/menu ++ cp debian/blackbox.desktop `pwd`/debian/tmp/usr/share/xsessions/ ++ touch install-stamp ++ ++# Build architecture-independent files here. ++binary-indep: build install ++# We have nothing to do by default. ++ ++# Build architecture-dependent files here. ++binary-arch: build install ++ dh_testdir ++ dh_testroot ++ dh_installdocs ++ dh_installmenu ++ dh_installchangelogs ChangeLog ++ dh_strip ++ dh_compress ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb ++ ++source diff: ++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false ++ ++binary: binary-indep binary-arch ++.PHONY: build clean binary-indep binary-arch binary +--- blackbox-0.65.0.orig/debian/prerm ++++ blackbox-0.65.0/debian/prerm +@@ -0,0 +1,13 @@ ++#!/bin/sh ++set -e ++ ++case "$1" in ++ remove) ++ update-alternatives --remove x-window-manager /usr/bin/blackbox ++ ;; ++ *) ++ ;; ++esac ++ ++#DEBHELPER# ++ +--- blackbox-0.65.0.orig/debian/README.debian ++++ blackbox-0.65.0/debian/README.debian +@@ -0,0 +1,9 @@ ++User menus: ++ ++When update-menus is run as a user it will create ~/.blackbox-menu. You then ++need to exit blackbox if it is running and edit ~/.blackboxrc. Change the ++line: ++ ++session.menuFile: /etc/X11/blackbox/blackbox-menu ++ ++to point to the new file. +--- blackbox-0.65.0.orig/debian/blackbox.desktop ++++ blackbox-0.65.0/debian/blackbox.desktop +@@ -0,0 +1,12 @@ ++[Desktop Entry] ++Encoding=UTF-8 ++Name=Blackbox ++Comment=Highly configurable and low resource X11 Window manager ++Exec=blackbox ++Terminal=False ++TryExec=blackbox ++Type=Application ++ ++[Window Manager] ++SessionManaged=true ++ diff --git a/source/xap/blackbox/slack-desc b/source/xap/blackbox/slack-desc new file mode 100644 index 000000000..a459e577d --- /dev/null +++ b/source/xap/blackbox/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +blackbox: blackbox (Blackbox window manager) +blackbox: +blackbox: Blackbox is that fast, light window manager you have been looking for +blackbox: without all those annoying library dependencies. +blackbox: +blackbox: Also included in this package is the bbkeys utility for controlling +blackbox: keyboard shortcut commands from within Blackbox. +blackbox: +blackbox: The Blackbox home page is http://blackboxwm.sourceforge.net +blackbox: +blackbox: diff --git a/source/xap/blackbox/xinitrc.blackbox b/source/xap/blackbox/xinitrc.blackbox new file mode 100644 index 000000000..e5822118b --- /dev/null +++ b/source/xap/blackbox/xinitrc.blackbox @@ -0,0 +1,28 @@ +#!/bin/sh +# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/usr/lib/X11/xinit/.Xresources +sysmodmap=/usr/lib/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f $userresources ]; then + xrdb -merge $userresources +fi + +if [ -f $usermodmap ]; then + xmodmap $usermodmap +fi + +# Start the window manager: +exec /usr/bin/blackbox diff --git a/source/xap/electricsheep/README.slackware b/source/xap/electricsheep/README.slackware new file mode 100644 index 000000000..3476cb67f --- /dev/null +++ b/source/xap/electricsheep/README.slackware @@ -0,0 +1,29 @@ +ElectricSheep 2.6.9 +=================== + +Electricsheep can no longer be configured from within the KDE4 screensaver +preferences dialog. Instead, a separate "electricsheep-preferences" +should be used now. The KDE4 screensaver file has been updated to reflect +this change. + +The configuration application, "electricsheep-preferences", will now +display when you push the "setup" button in the screensaver settings in +KDE4 System Settings. The sheep also play in the small preview window +within the System Settings dialog window. + +The "test" button does not work correctly. If you press it, the sheep +will play, but the window in which the animation runs will not stretch +to fullscreen. + +The sheep will play in full screen as expected when the real screensaver +activates after the configured period of idle time. Shake the mouse and +it stops. + +Electricsheep requires MPlayer to display your sheep! In some cases, +the mplayer window may not close after stopping the screensaver. This will +prevent electricsheep to play new sheep when the screensaver activates again. +The solution (it is not a real solution I know) is to kill mplayer with +ksysguard or the commandline "kill". + +============================================================================= +Eric Hameleers :: 07jan2009 diff --git a/source/xap/electricsheep/electricsheep.SlackBuild b/source/xap/electricsheep/electricsheep.SlackBuild new file mode 100755 index 000000000..1ed540cdd --- /dev/null +++ b/source/xap/electricsheep/electricsheep.SlackBuild @@ -0,0 +1,266 @@ +#!/bin/sh + +# Copyright 2008, 2009 Eric Hameleers, Eindhoven, Netherlands +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# 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. +# ----------------------------------------------------------------------------- +# +# Slackware SlackBuild script +# =========================== +# By: Eric Hameleers +# For: electricsheep +# Descr: distributed screensaver +# URL: http://electricsheep.org/ +# Needs: MPlayer (to display the sheep) +# ----------------------------------------------------------------------------- + +PRGNAM=electricsheep +VERSION=${VERSION:-20090306} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +# Where do we look for sources? +SRCDIR=$(cd $(dirname $0); pwd) + +DOCS="COPYING README $SRCDIR/README.slackware" +DOCS_FLAM3="COPYING* README*" +DOCS_FFMPEG="COPYING* CREDITS Changelog MAINTAINERS README" + +SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.xz" +SRCURL="" + +# Place to build (TMP) package (PKG) and output (OUTPUT) the program: +TMP=${TMP:-/tmp/build} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +# Use the src_checkout() function if no downloadable tarball exists. +# This function checks out sources from SVN/CVS and creates a tarball of them. +src_checkout() { + # Param #1 : index in the SOURCE[] array. + # Param #2 : full path to where SOURCE[$1] tarball should be created. + # Determine the tarball extension: + PEXT=$(echo "${2}" | sed -r -e 's/.*[^.].(tar.xz|tar.gz|tar.bz2|tgz).*/\1/') + case "$PEXT" in + "tar.xz") TARCOMP="J" ;; + "tar.gz") TARCOMP="z" ;; + "tgz") TARCOMP="z" ;; + "tar.bz2") TARCOMP="j" ;; + *) echo "Archive can only have extension 'tar.xz', '.tar.gz' '.tar.bz2' or '.tgz'" ; exit 1 ;; + esac + case ${1} in + 0) # electricsheep-$VERSION + REV="{${VERSION}}" + mkdir electricsheep-${VERSION} \ + && cd electricsheep-${VERSION} \ + && svn checkout --revision $REV http://electricsheep.svn.sourceforge.net/svnroot/electricsheep/trunk/client client \ + && svn checkout --revision $REV http://flam3.svn.sourceforge.net/svnroot/flam3/trunk/src flam3 \ + && find . -type d -name '.svn' -depth | xargs rm -rf \ + && chown -R root:root . \ + && ( cd ..; tar -${TARCOMP}cf ${2} electricsheep-${VERSION} ) + cd .. + rm -rf electricsheep-${VERSION} + ;; + *) # do nothing + ;; + esac +} +## +## --- with a little luck, you won't have to edit below this point --- ## +## + +# Exit the script on errors: +set -e +trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR +# Catch unitialized variables: +set -u +P1=${1:-1} + +case "$ARCH" in + i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + arm) SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; + armel) SLKCFLAGS="-O2 -march=armv4t" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; +esac + +# Create working directories: +mkdir -p $OUTPUT # place for the package to be saved +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +mkdir -p $PKG # place for the package to be built +rm -rf $PKG/* # always erase old package's contents +rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build +rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log + # remove old log files + +# Source file availability: +if ! [ -f ${SOURCE} ]; then + echo "Source '$(basename ${SOURCE})' not available yet..." + # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT + [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename ${SOURCE})" + if ! [ "x${SRCURL}" == "x" ]; then + echo "Will download file to $(dirname $SOURCE)" + wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true + if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then + echo "Downloading '$(basename ${SOURCE})' failed.. aborting the build." + mv -f "${SOURCE}" "${SOURCE}".FAIL + exit 1 + fi + else + # Try if we have a SVN/CVS download routine for ${SOURCE} + echo "Will checkout sources to $(dirname $SOURCE)" + src_checkout 0 "${SOURCE}" 2>&1 > $OUTPUT/checkout-$(basename ${SOURCE}).log + fi + if [ ! -f "${SOURCE}" -o ! -s "${SOURCE}" ]; then + echo "File '$(basename ${SOURCE})' not available.. aborting the build." + exit 1 + fi +fi + +if [ "$P1" == "--download" ]; then + echo "Download complete." + exit 0 +fi + +# --- PACKAGE BUILDING --- + +echo "++" +echo "|| $PRGNAM-$VERSION" +echo "++" + +cd $TMP/tmp-$PRGNAM +echo "Extracting the source archive(s) for $PRGNAM..." +tar -xvf ${SOURCE} +cd ${PRGNAM}-${VERSION} +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +echo Building ... +# First the client: +cd client + # mplayer needs a buffer when reading from a pipe: + zcat $SRCDIR/electricsheep.mplayer.diff.gz | patch -p2 --verbose || exit 1 + # To prevent an error later on: + chmod +x ffmpeg/doc/texi2pod.pl + # We do not use gnome: + cat $SRCDIR/electricsheep_gnome-open.patch | patch -p1 --verbose \ + 2>&1 | tee $OUTPUT/patch-$PRGNAM.log + # Prevent install errors due to missing gnome + sed -i -e "/^install-data-local:/,/^$/d" Makefile.in + LDFLAGS="$SLKLDFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log + make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log + make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log +cd .. +# Then the flam3 (fractal flames) renderer: +cd flam3 + LDFLAGS="$SLKLDFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log + make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log + make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log +cd .. + +# Add documentation: +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/{flam3,ffmpeg} +( cd client + cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION +) +( cd client/ffmpeg + cp -a $DOCS_FFMPEG $PKG/usr/doc/$PRGNAM-$VERSION/ffmpeg +) +( cd flam3 + cp -a $DOCS_FLAM3 $PKG/usr/doc/$PRGNAM-$VERSION/flam3 +) +chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION +find $PKG/usr/doc -type f -exec chmod 644 {} \; + +cd client + # Add xscreensaver module: + mkdir -p $PKG/usr/share/xscreensaver/config + install -m644 electricsheep.xml \ + $PKG/usr/share/xscreensaver/config/electricsheep.xml + + # Add the KDE4 screensaver file: + install -D -m644 electricsheep.desktop.kde \ + ${PKG}/usr/share/kde4/services/ScreenSavers/electricsheep.desktop + sed -i -e 's/^X-KDE-Category=.*$/X-KDE-Category=Fractals/' \ + ${PKG}/usr/share/kde4/services/ScreenSavers/electricsheep.desktop + + # Add icons: + mkdir -p $PKG/usr/share/electricsheep + cp -a electricsheep-{smile,frown}.png $PKG/usr/share/electricsheep/ +cd .. + +# Compress the man page(s) +if [ -d $PKG/usr/man ]; then + find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; + for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +fi + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Add a package description: +mkdir -p $PKG/install +cat $SRCDIR/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz.md5 +cd - +cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt diff --git a/source/xap/electricsheep/electricsheep.mplayer.diff b/source/xap/electricsheep/electricsheep.mplayer.diff new file mode 100644 index 000000000..6fe7c4ce4 --- /dev/null +++ b/source/xap/electricsheep/electricsheep.mplayer.diff @@ -0,0 +1,12 @@ +diff -uar electricsheep-20090306.orig/client/electricsheep.c electricsheep-20090306/client/electricsheep.c +--- electricsheep-20090306.orig/client/electricsheep.c 2009-03-06 01:30:18.000000000 +0100 ++++ electricsheep-20090306/client/electricsheep.c 2009-07-01 21:53:21.000000000 +0200 +@@ -1946,6 +1946,8 @@ + } + argv[c++] = "mplayer"; + argv[c++] = "-really-quiet"; ++ argv[c++] = "-cache"; ++ argv[c++] = "8192"; + if (window_id) { + argv[c++] = "-monitoraspect"; + argv[c++] = monitoraspect; diff --git a/source/xap/electricsheep/electricsheep_gnome-open.patch b/source/xap/electricsheep/electricsheep_gnome-open.patch new file mode 100644 index 000000000..e86ec4952 --- /dev/null +++ b/source/xap/electricsheep/electricsheep_gnome-open.patch @@ -0,0 +1,13 @@ +--- electricsheep-20090107/electricsheep-preferences.c.orig 2009-01-07 14:36:30.000000000 +0100 ++++ electricsheep-20090107/electricsheep-preferences.c 2009-01-07 17:27:34.000000000 +0100 +@@ -115,8 +115,8 @@ + } + + void on_helpButton_clicked(GtkWidget *widget, gpointer user_data) { +- if (system("gnome-open http://electricsheep.org/client/LNX_" VERSION ".html &")) +- perror("gnome-open"); ++ if (system("xdg-open http://electricsheep.org/client/LNX_" VERSION ".html &")) ++ perror("xdg-open"); + } + + static void tick() { diff --git a/source/xap/electricsheep/slack-desc b/source/xap/electricsheep/slack-desc new file mode 100644 index 000000000..d82ddf451 --- /dev/null +++ b/source/xap/electricsheep/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +electricsheep: electricsheep (distributed screensaver) +electricsheep: +electricsheep: Electric Sheep is an xscreensaver module that displays mpeg video +electricsheep: of an animated fractal flame. In the background it contributes +electricsheep: render cycles to the next animation. Periodically it uploades +electricsheep: completed frames to the server, where they are compressed for +electricsheep: distribution to all clients. +electricsheep: This program is recommended only if you have a high bandwidth +electricsheep: connection to the internet such as DSL or cable modem. +electricsheep: +electricsheep: electricsheep home: http://electricsheep.org/ diff --git a/source/xap/fluxbox/fluxbox.SlackBuild b/source/xap/fluxbox/fluxbox.SlackBuild new file mode 100755 index 000000000..bb0f03639 --- /dev/null +++ b/source/xap/fluxbox/fluxbox.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +VERSION=1.1.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-fluxbox +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +tar xvf $CWD/fluxbox-$VERSION.tar.?z* || exit 1 +cd fluxbox-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --docdir=/usr/doc/fluxbox-$VERSION \ + --enable-xinerama \ + --enable-shape \ + --enable-slit \ + --enable-interlace \ + --enable-nls \ + --enable-timed-cache \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/etc/X11/xinit +zcat $CWD/xinitrc.fluxbox.gz > $PKG/etc/X11/xinit/xinitrc.fluxbox +chmod 755 $PKG/etc/X11/xinit/xinitrc.fluxbox + +mkdir -p $PKG/usr/doc/fluxbox-$VERSION +cp -a AUTHORS COPYING* INSTALL NEWS README* TODO \ + $PKG/usr/doc/fluxbox-$VERSION +chmod 644 $PKG/usr/doc/fluxbox-$VERSION/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/fluxbox-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/fluxbox/slack-desc b/source/xap/fluxbox/slack-desc new file mode 100644 index 000000000..e1bb595cb --- /dev/null +++ b/source/xap/fluxbox/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fluxbox: fluxbox (Fluxbox window manager) +fluxbox: +fluxbox: Fluxbox is yet another windowmanager for X that is based on blackbox +fluxbox: but with many new features. +fluxbox: +fluxbox: +fluxbox: +fluxbox: +fluxbox: +fluxbox: +fluxbox: diff --git a/source/xap/fluxbox/xinitrc.fluxbox b/source/xap/fluxbox/xinitrc.fluxbox new file mode 100644 index 000000000..d04675a98 --- /dev/null +++ b/source/xap/fluxbox/xinitrc.fluxbox @@ -0,0 +1,28 @@ +#!/bin/sh +# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/usr/lib/X11/xinit/.Xresources +sysmodmap=/usr/lib/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f $userresources ]; then + xrdb -merge $userresources +fi + +if [ -f $usermodmap ]; then + xmodmap $usermodmap +fi + +# Start the window manager: +exec /usr/bin/startfluxbox diff --git a/source/xap/fvwm/doinst.sh b/source/xap/fvwm/doinst.sh new file mode 100644 index 000000000..57a23d6f5 --- /dev/null +++ b/source/xap/fvwm/doinst.sh @@ -0,0 +1,13 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/X11/fvwm2/system.fvwm2rc.new diff --git a/source/xap/fvwm/fvwm.SlackBuild b/source/xap/fvwm/fvwm.SlackBuild new file mode 100755 index 000000000..c990f1a00 --- /dev/null +++ b/source/xap/fvwm/fvwm.SlackBuild @@ -0,0 +1,127 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=fvwm +VERSION=${VERSION:-2.4.20} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc/X11/fvwm2 \ + --mandir=/usr/man \ + --enable-multibyte \ + --program-prefix= \ + --program-suffix= \ + --enable-extras \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Add some ancient icons: +( cd $PKG ; tar xzf $CWD/ancient-icons.tar.gz ) + +# Add a few more things: +mkdir -p $PKG/etc/X11/xinit +zcat $CWD/xinitrc.fvwm2.gz > $PKG/etc/X11/xinit/xinitrc.fvwm2 +chmod 755 $PKG/etc/X11/xinit/xinitrc.fvwm2 +mkdir -p $PKG/etc/X11/fvwm2 +zcat $CWD/system.fvwm2rc.gz > $PKG/etc/X11/fvwm2/system.fvwm2rc.new +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/X11 +( cd $PKG/usr/lib${LIBDIRSUFFIX}/X11 && rm -rf fvwm2 ) +( cd $PKG/usr/lib${LIBDIRSUFFIX}/X11 && ln -sf ../../../etc/X11/fvwm2 fvwm2 ) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL INSTALL.fvwm NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION +( cd docs + cp -a \ + ANNOUNCE BUGS DEVELOPERS FAQ TODO color_combos error_codes fvwm.lsm m4_hacks \ + $PKG/usr/doc/${PKGNAM}-$VERSION +) + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/fvwm/fvwm.colormap.diff b/source/xap/fvwm/fvwm.colormap.diff new file mode 100644 index 000000000..2d2eac94c --- /dev/null +++ b/source/xap/fvwm/fvwm.colormap.diff @@ -0,0 +1,20 @@ +--- ./fvwm/colormaps.c.orig Mon Sep 13 14:10:25 1999 ++++ ./fvwm/colormaps.c Mon Sep 13 14:12:03 1999 +@@ -90,10 +90,13 @@ + /* Reinstall the colormap that we think should be installed, + * UNLESS and unrecognized window has the focus - it might be + * an override-redirect window that has its own colormap. */ +- if((ReInstall)&&(Scr.UnknownWinFocused == None)) +- { +- XInstallColormap(dpy,last_cmap); +- } ++ /* Commented out, since although this behavior is an X standard, it breaks ++ * xlockmore and some other nifty programs, and having it this way doesn't ++ * cause any problems that I'm aware of. */ ++ /* if((ReInstall)&&(Scr.UnknownWinFocused == None)) */ ++ /* { */ ++ /* XInstallColormap(dpy,last_cmap); */ ++ /* } */ + } + + /************************************************************************ diff --git a/source/xap/fvwm/slack-desc b/source/xap/fvwm/slack-desc new file mode 100644 index 000000000..77995d921 --- /dev/null +++ b/source/xap/fvwm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +fvwm: fvwm (a small and fast virtual window manager for X) +fvwm: +fvwm: Fvwm is the classic highly-configurable virtual window manager for +fvwm: X11. It is a derivative of twm, redesigned to minimize memory +fvwm: consumption, provide a 3-D look to window frames, and provide a simple +fvwm: virtual desktop. +fvwm: +fvwm: +fvwm: +fvwm: +fvwm: diff --git a/source/xap/fvwm/system.fvwm2rc b/source/xap/fvwm/system.fvwm2rc new file mode 100644 index 000000000..863643a43 --- /dev/null +++ b/source/xap/fvwm/system.fvwm2rc @@ -0,0 +1,822 @@ +# +# Default system.fvwm2rc for Slackware Linux, adapted from the version +# for fvwm95 (i.e. beware of non-functional commented-out options) +# + +#========================================================================# + +# +# Fonts - one for window titles, another for icons, and another for the menus +# +WindowFont -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-* +IconFont fixed +MenuStyle black grey76 grey30 -adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-* fvwm + +# +# Set the default window colors. The syntax is: +# DefaultColors winforecolor winbackcolor titleforecolor titlebackcolor +# where: +# winbackcolor is the background (border) color of all windows, +# including the menu windows +# winforecolor is used for the menu text +# titlebackcolor is the background color used for title bars of +# non selected windows +# titleforecolor is the color of the title text of non selected windows +# +#DefaultColors Black #c3c3c3 #c3c3c3 grey51 + +# +# Text and background color for the title bar of the active (selected) window +# +#HilightColors White #000080 + +# +# Text and background color for the title bar of sticky windows +# +#StickyColors grey51 #60c080 + +# You can also use the Style command to set the colors of individual +# title bars of some non-selected windows + +#Style "*" ForeColor #c3c3c3 +#Style "*" BackColor grey51 + +#========================================================================# + +# +# Set up the major operating modes +# + +# Let's comment this out and be more UNIX-like :^) +# Style "*" ClickToFocus +# If we use the FvwmTaskBar we don't need the icons :-) +# Style "..." Icon is also commented below. +Style "*" NoIcon +Style "*" MWMFunctions +Style "*" HintOverride +Style "*" MWMDecor + +OpaqueMoveSize 100 +EdgeScroll 100 100 +EdgeResistance 10000 0 + +# +# RandomPlacement prevents user interaction while placing windows: +# +Style "*" RandomPlacement + +# +# NoPPosition instructs fvwm to ignore the PPosition field in window +# geometry hints. Emacs annoyingly sets PPosition to (0,0)! +# +Style "*" NoPPosition + +#========================================================================# + +# +# Set the desk top size in units of physical screen size +# +DeskTopSize 3x2 + +#========================================================================# + +# Set the decoration styles and window options +# Order is important!!!! +# If compatible styles are set for a single window in multiple Style +# commands, then the styles are ORed together. If conflicting styles +# are set, the last one specified is used. + +# These commands should command before any menus or functions are defined, +# and before the internal pager is started. + +# +# Default border and handle widths +# +Style "*" BorderWidth 5, HandleWidth 5 + +Style "Fvwm*" NoTitle, Sticky, WindowListSkip +Style "Fvwm Pager" StaysOnTop, NoHandles +Style "FvwmBanner" StaysOnTop +Style "FvwmButtons" NoTitle, NoHandles, Sticky, WindowListSkip,BorderWidth 5 +Style "*lock" NoTitle, NoHandles, Sticky, WindowListSkip +Style "xbiff" NoTitle, Sticky, WindowListSkip + +# +# Some mini-icons for the title bar +# +#Style "*" TitleIcon mini-x2.xpm +#Style "*xterm*" TitleIcon mini-term.xpm +#Style "rxvt" TitleIcon mini-term.xpm +#Style "xcalc" TitleIcon mini-calc.xpm +#Style "xsession" TitleIcon mini-bx2.xpm +#Style "xv" TitleIcon mini-xv.xpm +#Style "SeaMonkey" TitleIcon mini-nscape.xpm +#Style "xmag" TitleIcon mini-zoom.xpm +#Style "textedit" TitleIcon mini-edit.xpm +#Style "tkps" TitleIcon mini-run.xpm +#Style "Ghostview" TitleIcon mini-gv.xpm +#Style "Xcolorsel" TitleIcon mini-colors.xpm +#Style "IDL*" TitleIcon mini-zoom.xpm +#Style "xeyes" TitleIcon mini-eyes.xpm +#Style "*fm*" TitleIcon mini-filemgr.xpm +# xman resource names +#Style "topBox" TitleIcon mini-book1.xpm +#Style "help" TitleIcon mini-book2.xpm +#Style "manualBrowser" TitleIcon mini-book2.xpm +# xpaint resource names +#Style "xpaint" TitleIcon mini-paint.xpm +#Style "Canvas" TitleIcon mini-paint.xpm +#Style "fatbits" TitleIcon mini-paint.xpm +#Style "filebrowser" TitleIcon mini-paint.xpm + +#Style "rxvt" Icon term.xpm +#Style "xterm" Icon xterm.xpm +#Style "Appointment" Icon datebook.xpm +#Style "xcalc" Icon rcalc.xpm +#Style "xbiff" Icon mail1.xpm +#Style "xmh" Icon mail1.xpm, StartsOnDesk 2 +#Style "xman" Icon xman.xpm +#Style "xvgr" Icon graphs.xpm +#Style "matlab" Icon math4.xpm +#Style "xmag" Icon mag_glass.xpm +#Style "xgraph" Icon graphs.xpm +#Style "xv" Icon xview.xpm +#Style "FvwmButtons" Icon toolbox.xpm +#Style "xconsole" Icon koala.xpm +#Style "xsession" Icon koala.xpm +#Style "textedit" Icon textedit.xpm +#Style "gv" Icon gv.xpm + +#========================================================================# + +# +# Stuff to do at start-up +# + +AddToFunc "InitFunction" +#+ "I" Module FvwmButtons ++ "I" Module FvwmButtons MiniButtons ++ "I" Module FvwmPager 0 0 + +AddToFunc "RestartFunction" +#+ "I" Module FvwmButtons ++ "I" Module FvwmButtons MiniButtons ++ "I" Module FvwmPager 0 0 + +#========================================================================# + +# Now define some handy complex functions + +# +# This one moves and then raises the window if you drag the mouse, +# only raises the window if you click, or does a full maximize if +# you double click +# +AddToFunc "Move-or-Raise" "M" Move ++ "M" Raise ++ "C" Raise ++ "D" Maximize 100 100 + +# +# This one moves and then lowers the window if you drag the mouse, +# only lowers the window if you click, or does a RaiseLower if you double +# click +# +AddToFunc "Move-or-Lower" "M" Move ++ "M" Lower ++ "C" Lower ++ "D" RaiseLower + +# +# This one moves or (de)iconifies: +# +AddToFunc "Move-or-Iconify" "M" Move ++ "D" Iconify + +# +# This one resizes and then raises the window if you drag the mouse, +# only raises the window if you click, or does a RaiseLower if you double +# click +# +AddToFunc "Resize-or-Raise" "M" Resize ++ "M" Raise ++ "C" Raise ++ "D" RaiseLower + + +#========================================================================# + +# +# Now define the menus - defer bindings until later +# + +# This is for the Start menu of the FvwmTaskBar + +DestroyMenu "StartMenu" +AddToMenu "StartMenu" ++ "Manual Pages %mini-book1.xpm%" Exec xman & ++ "Magnifying Glass %mini-zoom.xpm%" Exec xmag & ++ "" Nop ++ "Accessories%mini-hammer.xpm%" Popup Accessories ++ "Applications %mini-x2.xpm%" Popup Applications ++ "File Managers %mini-filemgr.xpm%" Popup Filemanagers ++ "Games %mini-happy.xpm%" Popup Games ++ "Shells %mini-term.xpm" Popup Shells ++ "" Nop ++ "Lock Screen %mini-lock.xpm%" Popup Screenlock ++ "Screensaver %mini-display.xpm%" Popup Screensaver ++ "" Nop ++ "Refresh Screen %mini-ray.xpm%" Refresh ++ "" Nop ++ "Exit Fvwm2 %mini-stop.xpm%" Popup Quit-Verify + +DestroyMenu "Shells" +AddToMenu "Shells" ++ "Xterm (7x14 font)%mini-term.xpm%" Exec xterm -sb -sl 500 -j -ls -fn 7x14 -fb 7x14bold & ++ "Large Xterm (10x20 font)%mini-term.xpm%" Exec xterm -sb -sl 500 -j -ls -fn 10x20 & ++ "" Nop ++ "Rxvt (7x14 font)%mini-term.xpm%" Exec rxvt -font 7x14 -ls & ++ "Large Rxvt (10x20 font)%mini-term.xpm%" Exec rxvt -font 10x20 -ls & + +DestroyMenu "Screensaver" +AddToMenu "Screensaver" ++ "Blank%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode blank & ++ "Random%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode random & ++ "" Nop ++ "Ant%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode ant & ++ "Ball%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode ball & ++ "Bat%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode bat & ++ "Blot%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode blot & ++ "Bomb%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode bomb & ++ "Bouboule%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode bouboule & +#+ "Bob%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode image -bitmap /usr/include/X11/bitmaps/l-bob.xbm -batchcount 7 & +#+ "Bounce%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode bounce & ++ "\"Bob\"%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode bounce & ++ "Braid%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode braid & ++ "Bug%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode bug & ++ "Bubble%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode bubble & ++ "Clock%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode clock & ++ "Coral%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode coral & ++ "Crystal%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode crystal & ++ "Daisy%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode daisy & ++ "Dclock%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode dclock & ++ "Deco%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode deco & ++ "Demon%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode demon & ++ "Dilemma%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode dilemma & ++ "Drift%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode drift & ++ "More" PopUp ScreenSaver2 + +DestroyMenu "Screensaver2" +AddToMenu "Screensaver2" ++ "Eyes%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode eyes & ++ "Fadeplot%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode fadeplot & ++ "Flag%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode flag & ++ "Flame%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode flame & ++ "Forest%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode forest & ++ "Galaxy%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode galaxy & ++ "Geometry%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode geometry & ++ "Grav%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode grav & ++ "Helix%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode helix & ++ "Hop%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode hop & ++ "Hyper%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode hyper & ++ "Ico%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode ico & ++ "Ifs%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode ifs & ++ "Julia%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode julia & ++ "Kaleid%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode kaleid & ++ "Laser%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode laser & ++ "Life%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode life & ++ "Life1d%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode life1d & ++ "Life3d%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode life3d & ++ "Lightning%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode lightning & ++ "Lisa%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode lisa & ++ "Lissie%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode lissie & ++ "Loop%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode loop & ++ "More" PopUp ScreenSaver3 + +DestroyMenu "Screensaver3" +AddToMenu "Screensaver3" ++ "Mandelbrot%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode mandelbrot & ++ "Marquee%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode marquee & ++ "Maze%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode maze & ++ "Mountain%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode mountain & ++ "Munch%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode munch & ++ "Nose%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode nose & ++ "Pacman%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode pacman & ++ "Penguin%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode image -bitmap /usr/include/X11/bitmaps/l-linux.xbm -batchcount 7 & ++ "Penrose%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode penrose & ++ "Petal%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode petal & ++ "Puzzle%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode puzzle & ++ "Pyro%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode pyro & ++ "Qix%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode qix & ++ "Roll%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode roll & ++ "Rotor%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode rotor & ++ "Shape%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode shape & ++ "Sierpinski%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode sierpinski & ++ "Slip%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode slip & ++ "Sphere%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode sphere & ++ "Spiral%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode spiral & ++ "Spline%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode spline & ++ "Star%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode star & ++ "Strange%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode strange & ++ "More" PopUp ScreenSaver4 + +DestroyMenu "Screensaver4" +AddToMenu "Screensaver4" ++ "Swarm%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode swarm & ++ "Swirl%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode swirl & ++ "Triangle%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode triangle & ++ "Tube%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode tube & ++ "Turtle%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode turtle & ++ "Vines%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode vines & ++ "Voters%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode voters & ++ "Wator%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode wator & ++ "Wire%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode wire & ++ "World%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode world & ++ "Worm%mini-bball.xpm%" Exec xlock -nolock -nice 0 -mode worm & + +DestroyMenu "Screenlock" +AddToMenu "Screenlock" ++ "Blank%mini-bball.xpm%" Exec xlock -nice 0 -mode blank & ++ "Random%mini-bball.xpm%" Exec xlock -nice 0 -mode random & ++ "" Nop ++ "Ant%mini-bball.xpm%" Exec xlock -nice 0 -mode ant & ++ "Ball%mini-bball.xpm%" Exec xlock -nice 0 -mode ball & ++ "Bat%mini-bball.xpm%" Exec xlock -nice 0 -mode bat & ++ "Blot%mini-bball.xpm%" Exec xlock -nice 0 -mode blot & ++ "Bomb%mini-bball.xpm%" Exec xlock -nice 0 -mode bomb & ++ "Bouboule%mini-bball.xpm%" Exec xlock -nice 0 -mode bouboule & +#+ "Bob%mini-bball.xpm%" Exec xlock -nice 0 -mode image -bitmap /usr/include/X11/bitmaps/l-bob.xbm -batchcount 7 & +#+ "Bounce%mini-bball.xpm%" Exec xlock -nice 0 -mode bounce & ++ "\"Bob\"%mini-bball.xpm%" Exec xlock -nice 0 -mode bounce & ++ "Braid%mini-bball.xpm%" Exec xlock -nice 0 -mode braid & ++ "Bug%mini-bball.xpm%" Exec xlock -nice 0 -mode bug & ++ "Bubble%mini-bball.xpm%" Exec xlock -nice 0 -mode bubble & ++ "Clock%mini-bball.xpm%" Exec xlock -nice 0 -mode clock & ++ "Coral%mini-bball.xpm%" Exec xlock -nice 0 -mode coral & ++ "Crystal%mini-bball.xpm%" Exec xlock -nice 0 -mode crystal & ++ "Daisy%mini-bball.xpm%" Exec xlock -nice 0 -mode daisy & ++ "Dclock%mini-bball.xpm%" Exec xlock -nice 0 -mode dclock & ++ "Deco%mini-bball.xpm%" Exec xlock -nice 0 -mode deco & ++ "Demon%mini-bball.xpm%" Exec xlock -nice 0 -mode demon & ++ "Dilemma%mini-bball.xpm%" Exec xlock -nice 0 -mode dilemma & ++ "Drift%mini-bball.xpm%" Exec xlock -nice 0 -mode drift & ++ "More" PopUp Screenlock2 + +DestroyMenu "Screenlock2" +AddToMenu "Screenlock2" ++ "Eyes%mini-bball.xpm%" Exec xlock -nice 0 -mode eyes & ++ "Fadeplot%mini-bball.xpm%" Exec xlock -nice 0 -mode fadeplot & ++ "Flag%mini-bball.xpm%" Exec xlock -nice 0 -mode flag & ++ "Flame%mini-bball.xpm%" Exec xlock -nice 0 -mode flame & ++ "Forest%mini-bball.xpm%" Exec xlock -nice 0 -mode forest & ++ "Galaxy%mini-bball.xpm%" Exec xlock -nice 0 -mode galaxy & ++ "Geometry%mini-bball.xpm%" Exec xlock -nice 0 -mode geometry & ++ "Grav%mini-bball.xpm%" Exec xlock -nice 0 -mode grav & ++ "Helix%mini-bball.xpm%" Exec xlock -nice 0 -mode helix & ++ "Hop%mini-bball.xpm%" Exec xlock -nice 0 -mode hop & ++ "Hyper%mini-bball.xpm%" Exec xlock -nice 0 -mode hyper & ++ "Ico%mini-bball.xpm%" Exec xlock -nice 0 -mode ico & ++ "Ifs%mini-bball.xpm%" Exec xlock -nice 0 -mode ifs & ++ "Julia%mini-bball.xpm%" Exec xlock -nice 0 -mode julia & ++ "Kaleid%mini-bball.xpm%" Exec xlock -nice 0 -mode kaleid & ++ "Laser%mini-bball.xpm%" Exec xlock -nice 0 -mode laser & ++ "Life%mini-bball.xpm%" Exec xlock -nice 0 -mode life & ++ "Life1d%mini-bball.xpm%" Exec xlock -nice 0 -mode life1d & ++ "Life3d%mini-bball.xpm%" Exec xlock -nice 0 -mode life3d & ++ "Lightning%mini-bball.xpm%" Exec xlock -nice 0 -mode lightning & ++ "Lisa%mini-bball.xpm%" Exec xlock -nice 0 -mode lisa & ++ "Lissie%mini-bball.xpm%" Exec xlock -nice 0 -mode lissie & ++ "Loop%mini-bball.xpm%" Exec xlock -nice 0 -mode loop & ++ "More" PopUp Screenlock3 + +DestroyMenu "Screenlock3" +AddToMenu "Screenlock3" ++ "Mandelbrot%mini-bball.xpm%" Exec xlock -nice 0 -mode mandelbrot & ++ "Marquee%mini-bball.xpm%" Exec xlock -nice 0 -mode marquee & ++ "Maze%mini-bball.xpm%" Exec xlock -nice 0 -mode maze & ++ "Mountain%mini-bball.xpm%" Exec xlock -nice 0 -mode mountain & ++ "Munch%mini-bball.xpm%" Exec xlock -nice 0 -mode munch & ++ "Nose%mini-bball.xpm%" Exec xlock -nice 0 -mode nose & ++ "Pacman%mini-bball.xpm%" Exec xlock -nice 0 -mode pacman & ++ "Penguin%mini-bball.xpm%" Exec xlock -nice 0 -mode image -bitmap /usr/include/X11/bitmaps/l-linux.xbm -batchcount 7 & ++ "Penrose%mini-bball.xpm%" Exec xlock -nice 0 -mode penrose & ++ "Petal%mini-bball.xpm%" Exec xlock -nice 0 -mode petal & ++ "Puzzle%mini-bball.xpm%" Exec xlock -nice 0 -mode puzzle & ++ "Pyro%mini-bball.xpm%" Exec xlock -nice 0 -mode pyro & ++ "Qix%mini-bball.xpm%" Exec xlock -nice 0 -mode qix & ++ "Roll%mini-bball.xpm%" Exec xlock -nice 0 -mode roll & ++ "Rotor%mini-bball.xpm%" Exec xlock -nice 0 -mode rotor & ++ "Shape%mini-bball.xpm%" Exec xlock -nice 0 -mode shape & ++ "Sierpinski%mini-bball.xpm%" Exec xlock -nice 0 -mode sierpinski & ++ "Slip%mini-bball.xpm%" Exec xlock -nice 0 -mode slip & ++ "Sphere%mini-bball.xpm%" Exec xlock -nice 0 -mode sphere & ++ "Spiral%mini-bball.xpm%" Exec xlock -nice 0 -mode spiral & ++ "Spline%mini-bball.xpm%" Exec xlock -nice 0 -mode spline & ++ "Star%mini-bball.xpm%" Exec xlock -nice 0 -mode star & ++ "Strange%mini-bball.xpm%" Exec xlock -nice 0 -mode strange & ++ "More" PopUp Screenlock4 + +DestroyMenu "Screenlock4" +AddToMenu "Screenlock4" ++ "Swarm%mini-bball.xpm%" Exec xlock -nice 0 -mode swarm & ++ "Swirl%mini-bball.xpm%" Exec xlock -nice 0 -mode swirl & ++ "Triangle%mini-bball.xpm%" Exec xlock -nice 0 -mode triangle & ++ "Tube%mini-bball.xpm%" Exec xlock -nice 0 -mode tube & ++ "Turtle%mini-bball.xpm%" Exec xlock -nice 0 -mode turtle & ++ "Vines%mini-bball.xpm%" Exec xlock -nice 0 -mode vines & ++ "Voters%mini-bball.xpm%" Exec xlock -nice 0 -mode voters & ++ "Wator%mini-bball.xpm%" Exec xlock -nice 0 -mode wator & ++ "Wire%mini-bball.xpm%" Exec xlock -nice 0 -mode wire & ++ "World%mini-bball.xpm%" Exec xlock -nice 0 -mode world & ++ "Worm%mini-bball.xpm%" Exec xlock -nice 0 -mode worm & + +DestroyMenu "Games" +AddToMenu "Games" ++ "Maze%mini-maze.xpm%" Exec maze & ++ "Spider%mini-espada.xpm%" Exec spider & ++ "Chess%mini-slon.xpm%" Exec xboard & ++ "Xlander%mini-xlander.xpm%" Exec xlander & +#+ "Xmahjongg%mini-xmahjongg.xpm%" Exec xmahjongg & ++ "Workman%mini-cdlabel.xpm%" Exec workman & ++ "" Nop ++ "Amusements" Popup Amusements + +DestroyMenu "Amusements" +AddToMenu "Amusements" +#+ "Xcat%mini-cat.xpm%" Exec xcat & ++ "Xeyes%mini-eyes.xpm%" Exec xeyes & ++ "Xlogo%mini-bx2.xpm%" Exec xlogo & ++ "Xroach%mini-roach.xpm%" Exec xroach & ++ "Xsnow%mini-xsnow.xpm%" Exec xsnow & ++ "Stop Xsnow%mini-stop.xpm%" Exec killall xsnow & + +DestroyMenu "Accessories" +AddToMenu "Accessories" ++ "Font viewer (xfontsel)%mini-font.xpm%" Exec xfontsel & ++ "Manual pages%mini-book1.xpm%" Exec xman & ++ "Magnifying glass%mini-zoom.xpm%" Exec xmag & ++ "Oclock%mini-clock.xpm%" Exec oclock & ++ "Running Processes (Top)%mini-run.xpm%" Exec xterm -font 7x14 -T Top -n Top -e top & ++ "System load%mini-perf.xpm%" Exec xload & ++ "Xclipboard%mini-clipboard.xpm%" Exec xclipboard & ++ "Xclock%mini-clock.xpm%" Exec xclock & + +DestroyMenu "Applications" +AddToMenu "Applications" ++ "Emacs%mini-edit.xpm%" Exec emacs & ++ "NcFTP%mini-ftp.xpm%" Exec xterm -name NcFtp -T FTP -ls -fn 7x14 -e ncftp & ++ "GIMP%mini-camera.xpm%" Exec gimp & ++ "Gv%mini-gv.xpm%" Exec gv & ++ "Gnuplot%mini-zoom.xpm%" Exec xterm -T "Gnuplot" -name Gnuplot -fn 7x14 -e gnuplot & ++ "SeaMonkey%mini-nscape.xpm%" Exec seamonkey & ++ "Pine%mini-mail.xpm%" Exec xterm -name Mail -T Mail -ls -fn 7x14 -e pine -i & ++ "Xv%mini-xv.xpm%" Exec xv & ++ "Xedit%mini-edit.xpm%" Exec xedit & ++ "Xfig%mini-xfig.xpm%" Exec xfig & ++ "Xfractint%mini-fractal.xpm%" Exec xterm -font 7x14 -e xfractint & ++ "Xpaint%mini-paint.xpm%" Exec xpaint & ++ "Xpdf%mini-pdf.xpm%" Exec xpdf & ++ "Xxgdb%mini-bug2.xpm%" Exec xxgdb & + +DestroyMenu "Filemanagers" +AddToMenu "Filemanagers" +#+ "TkDesk%mini-desktop.xpm%" Exec tkdesk & ++ "Xfm%mini-filemgr.xpm%" Exec xfm & + +# +# This menu is invoked as a sub-menu - it allows you to quit, +# restart, or switch to another WM. +# +DestroyMenu "Quit-Verify" +AddToMenu "Quit-Verify" ++ "Quit fvwm2%mini-exclam.xpm%" Quit ++ "" Nop ++ "Restart Fvwm2%mini-turn.xpm%" Restart fvwm2 ++ "" Nop ++ "Start fvwm95%mini-exp.xpm%" Restart fvwm95 ++ "Start mwm%mini-mwm.xpm%" Restart mwm ++ "Start olvwm%mini-olwm.xpm%" Restart /usr/openwin/bin/olvwm ++ "Start olwm%mini-olwm.xpm%" Restart /usr/openwin/bin/olwm ++ "Start twm%mini-twm.xpm%" Restart twm + +# +# Provides a list of modules to fire off +# +#DestroyMenu "Module-Popup" +#AddToMenu "Module-Popup" +##+ "Audio" Module FvwmAudio +#+ "Banner%mini.fvwm.xpm%" Module FvwmBanner +#+ "Button Bar%mini-ball.xpm%" Module FvwmButtons +#+ "Button Bar (Mini)%mini-ball.xpm%" Module FvwmButtons MiniButtons +##+ "Clean-Up%mini-pencil.xpm%" Module FvwmClean +##+ "Configure%mini-hammer.xpm%" Module FvwmConfig +#+ "Debug%mini-bug2.xpm%" Module FvwmDebug +##+ "Task bar%mini-exp.xpm%" Module FvwmTaskBar +#+ "Identify%mini-question.xpm%" Module FvwmIdent +#+ "Save Desktop%mini-desktop.xpm%" Module FvwmSaveDesk +#+ "Pager%mini-pager.xpm%" Module FvwmPager 0 0 +#+ "Window List%mini-windows.xpm%" Module FvwmWinList +#+ "Talk%mini-exclam.xpm%" Module FvwmTalk + +AddToMenu Module-Popup "FvwmModules" Title ++ "Identify" Module FvwmIdent ++ "Talk" Module FvwmTalk ++ "" Nop ++ "Button-Bar" Module FvwmButtons ++ "Pager" Module FvwmPager 0 0 ++ "Pager (2 desks)" Module FvwmPager 0 1 ++ "WinList" Module FvwmWinList ++ "" Nop ++ "Banner" Module FvwmBanner ++ "ScrollBar" Module FvwmScroll 50 50 ++ "Background" Module FvwmBacker ++ "AutoRaise" Module FvwmAuto 200 Raise Nop ++ "Stop AutoRaise" KillModule FvwmAuto ++ "" Nop ++ "IconBox" Module FvwmIconBox ++ "IconMan" Module FvwmIconMan ++ "" Nop ++ "Form - Rlogin" Module FvwmForm Rlogin ++ "Form - MyFvwmTalk" Module FvwmForm MyFvwmTalk ++ "Form - QuitVerify" Module FvwmForm QuitVerify + +# +# This menu will fire up some very common utilities +# +DestroyMenu "Utilities" +AddToMenu "Utilities" ++ "" Nop ++ "Xterm%mini-term.xpm%" Exec xterm -sb -sl 500 -j -ls -fn 7x14 -fb 7x14bold & ++ "Running Processes (Top)%mini-run.xpm%" Exec xterm -font 7x14 -T Top -n Top -e top & ++ "Calculator%mini-calc.xpm%" Exec xcalc & ++ "Manual pages%mini-book1.xpm%" Exec xman & ++ "Magnifying glass%mini-zoom.xpm%" Exec xmag & ++ "Oclock%mini-clock.xpm%" Exec oclock & ++ "" Nop ++ "Applications%mini-x2.xpm%" Popup Applications ++ "File Managers%mini-filemgr.xpm%" Popup Filemanagers ++ "Games%mini-happy.xpm%" Popup Games ++ "Shells%mini-term.xpm" Popup Shells ++ "" Nop ++ "Screensaver%mini-display.xpm%" Popup Screensaver ++ "Lock Screen%mini-lock.xpm%" Popup Screenlock ++ "" Nop ++ "Modules%mini-modules.xpm%" Popup Module-Popup ++ "" Nop ++ "Refresh Screen%mini-ray.xpm%" Refresh ++ "" Nop ++ "Exit Fvwm2%mini-stop.xpm%" Popup Quit-Verify + +# +# This defines the most common window operations +# +DestroyMenu "Window Ops" +AddToMenu "Window Ops" Title ++ "&Move%mini-move.xpm%" Function Move-or-Raise ++ "&Resize%mini-resize.xpm%" Function Resize-or-Raise ++ "R&aise%mini-raise.xpm%" Raise ++ "&Lower%mini-lower.xpm%" Lower ++ "(De)Iconify" Iconify ++ "(Un)Stick" Stick ++ "(Un)Maximize%mini-max1.xpm%" Function maximize_func ++ "" Nop ++ "Kill%mini-bomb.xpm%" Destroy ++ "&Close%mini-cross.xpm%" Delete ++ "" Nop ++ "Switch to..." WindowList ++ "Refresh Screen%mini-ray.xpm%" Refresh + +# +# A trimmed down version of "Window Ops", good for binding to decorations +# +AddToMenu "Window-Ops2" "&Restore" Iconify -1 ++ "&Move" Move-or-Raise ++ "&Size" Resize-or-Raise ++ "Mi&nimize" Iconify 1 ++ "Ma&ximize" Maximize 100 100 ++ "" Nop ++ "&Kill" Destroy ++ "&Close Alt+F4" Delete + +#========================================================================# + +# +# One more complex function - couldn't be defined earlier because it used +# pop-up menus +# +# This creates the "system" menu for the title-bar window-ops +# pop-up +# +AddToFunc "window_ops_func" "C" PopUp Window-Ops2 ++ "M" PopUp Window-Ops2 ++ "D" Delete + + +#========================================================================# + +# +# Mouse bindings +# + +# First, for the mouse in the root window +# Button 1 gives the Utilities menu +# Button 2 gives the Window Ops menu +# Button 3 gives the WindowList (like TwmWindows) +# I use the AnyModifier (A) option for the modifier field, so you can hold down +# any shift-control-whatever combination you want! + +# Button Context Modifi Function +Mouse 1 R A Menu "Utilities" Nop +Mouse 2 R A Menu "Window Ops" Nop +Mouse 3 R A WindowList +#Mouse 3 R A Module "winlist" FvwmWinList transient + +# Now the title bar buttons +# Any button in the left title-bar button gives the window ops menu +# Any button in the first right title-bar button Iconifies the window +# Any button in the second title-bar button full-maximizes +# Note the use of "Mouse 0" for AnyButton. + +# Button Context Modif Function +Mouse 0 1 A Function "window_ops_func" +Mouse 0 2 A Maximize 100 100 +Mouse 0 4 A Iconify + +# Now the rest of the frame +# Here I invoke my complex functions for Move-or-lower, Move-or-raise, +# and Resize-or-Raise. +# +# Button 1 in the corner pieces, with any modifiers, gives resize or raise +Mouse 1 F A Function "Resize-or-Raise" +# Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise +Mouse 1 TS A Function "Move-or-Raise" + +# Button 1 in an icons gives move for a drag, de-iconify for a double-click, +# nothing for a single click +# Button 2 in an icon, w/ any modifiers, gives de-iconify +Mouse 1 I A Function "Move-or-Iconify" +Mouse 2 I A Iconify + +# Button 2 in the corners, sides, or title-bar gives the window ops menu +Mouse 2 FST A Function "window_ops_func" + +# Button 3 anywhere in the decoration (except the title-bar buttons) +# does a raise-lower +Mouse 3 TSIF A RaiseLower + +# Button 3 in the window, with the Modifier-1 key (usually alt or diamond) +# gives Raise-Lower. Used to use control here, but that interferes with xterm +Mouse 3 W M RaiseLower + +#========================================================================# + +# Now some keyboard shortcuts. + +# Arrow Keys +# press arrow + control anywhere, and scroll by 1 page +Key Left A C Scroll -100 0 +Key Right A C Scroll +100 +0 +Key Up A C Scroll +0 -100 +Key Down A C Scroll +0 +100 + +# press arrow + meta key, and scroll by 1/10 of a page +Key Left A M Scroll -10 +0 +Key Right A M Scroll +10 +0 +Key Up A M Scroll +0 -10 +Key Down A M Scroll +0 +10 + +# press shift arrow + control anywhere, and move the pointer by 1% of a page +Key Left A SC CursorMove -1 0 +Key Right A SC CursorMove +1 +0 +Key Up A SC CursorMove +0 -1 +Key Down A SC CursorMove +0 +1 + +# press shift arrow + meta key, and move the pointer by 1/10 of a page +Key Left A SM CursorMove -10 +0 +Key Right A SM CursorMove +10 +0 +Key Up A SM CursorMove +0 -10 +Key Down A SM CursorMove +0 +10 + +# Keyboard accelerators +Key F1 A M Popup "Utilities" +Key F1 A M Popup "Utilities" +Key F2 A M Popup "Window Ops" +Key F3 A M Module "WindowList" FvwmWinList +Key F4 A M Iconify +Key F5 A M Move +Key F6 A M Resize +Key F7 A M CirculateUp +Key F8 A M CirculateDown + +#Page Up/Dapge Down keys are used to scroll by one desktop page +# in any context, press page up/down + control +# in root context, just pressing page up/down is OK +# +# I prefer the non-wrapping scroll. These are for example purposes only +#Key Next A C Scroll 100000 0 +#Key Next R N Scroll 100000 0 +#Key Prior A C Scroll -100000 0 +#Key Prior R N Scroll -100000 0 + +Key Tab A M Prev Focus +Key Tab A MS Next Focus + +Key Escape A C WindowList + +#========================================================================# + +# Definitions used by the modules + +#------------------ Pager +*FvwmPagerBack grey60 +*FvwmPagerFore black +*FvwmPagerFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-* +*FvwmPagerHilight #c3c3c3 +*FvwmPagerGeometry -3-27 +*FvwmPagerLabel 0 Desktop +*FvwmPagerSmallFont 5x8 + +#------------------ FvwmButtons +*FvwmButtonsFore Black +*FvwmButtonsBack #c3c3c3 +*FvwmButtonsFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-* +# Geometry - really likes to pick its own size, but giving a position is OK +*FvwmButtonsGeometry -5-5 +# Layout: specify rows or columns, not both +*FvwmButtonsRows 1 + +# Define the buttons to use..... +*FvwmButtons xclock clock.xpm Swallow "xclock" Exec xclock -bg \#c3c3c3 -geometry -1500-1500 -padding 0 & +#*GoodStuff xcmap NULL Swallow "xcmap" xcmap -geometry -1500-1500 +*FvwmButtons (2x1) load NULL Swallow "xload" Exec nice -16 xload -nolabel -bg grey60 -update 5 -geometry -1500-1500 +*FvwmButtons SeaMonkey nscape.xpm Exec "SeaMonkey" seamonkey & +*FvwmButtons xterm rterm.xpm Exec "xterm" xterm -ls -sb -fn 7x14 & +*FvwmButtons xfm Xfm.xpm Exec "Xfm" xfm & +#*FvwmButtons textedit textedit.xpm Exec "Textedit" textedit & +*FvwmButtons xcalc rcalc.xpm Exec "Calculator" xcalc & +*FvwmButtons xv xv.xpm Exec "xv" xv & +#*FvwmButtons gv gv.xpm Exec "gv" gv & +#*FvwmButtons seamonkey nscape.xpm Exec "SeaMonkey" seamonkey -geometry 920x650+90+5 +*FvwmButtons kill rbomb.xpm Destroy +#*FvwmButtons (2x1) - whatever SwallowModule Exec "Desktop" FvwmPager 0 0 +*FvwmButtons (2x1, Swallow(UseOld) "Desktop" 'FvwmPager 0 0') + +#------------------ MiniButtons + +Style "MiniButtons" NoTitle,NoHandles,Sticky,StaysOnTop,WindowListSkip,BorderWidth 0 + +*MiniButtonsFore Black +*MiniButtonsBack #c0c0c0 +*MiniButtonsFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-* +*MiniButtonsGeometry -5-5 +*MiniButtonsRows 1 +*MiniButtonsPadding 1 1 + +*MiniButtons - mini-nscape.xpm Exec "SeaMonkey" seamonkey -geometry 790x543+0+0 & +*MiniButtons - mini-term.xpm Exec "XTerm" xterm -ls -sb -fn 7x14 & +*MiniButtons - mini-filemgr.xpm Exec "Xfm" xfm & +*MiniButtons - mini-calc.xpm Exec "Calculator" xcalc & +#*MiniButtons - mini-gv.xpm Exec "gv" gv & +*MiniButtons - mini-xv.xpm Exec "xv" xv & +*MiniButtons - mini-bomb.xpm Destroy + +#------------------ Identify +*FvwmIdentBack #000080 +*FvwmIdentFore Yellow +*FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-* + +#------------------ FvwmWinList +*FvwmWinListBack #c3c3c3 +*FvwmWinListFore Black +*FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-* +*FvwmWinListAction Click1 Iconify -1,Focus +*FvwmWinListAction Click2 Iconify +*FvwmWinListAction Click3 Module "FvwmIdent" FvwmIdent +*FvwmWinListUseSkipList +*FvwmWinListGeometry +0-1 + +#------------------ FvwmTaskBar +#Style "FvwmTaskBar" NoTitle,BorderWidth 4,HandleWidth 4,Sticky,StaysOnTop,WindowListSkip,CirculateSkip +# I don't like the taskbar to stay to top, since it covers the bottom +# part of SeaMonkey in full-screen mode: +#Style "FvwmTaskBar" NoTitle,BorderWidth 4,HandleWidth 4,Sticky,WindowListSkip,CirculateSkip + +*FvwmTaskBarGeometry +0-0 +*FvwmTaskBarFore Black +*FvwmTaskBarBack #c3c3c3 +*FvwmTaskBarTipsFore black +*FvwmTaskBarTipsBack bisque +*FvwmTaskBarFont -adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-* +*FvwmTaskBarSelFont -adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-*-* +*FvwmTaskBarAction Click1 Iconify -1,Raise,Focus +*FvwmTaskBarAction Click2 Iconify +*FvwmTaskBarAction Click3 Module "FvwmIdent" FvwmIdent +*FvwmTaskBarUseSkipList +*FvwmTaskBarAutoStick +*FvwmTaskBarStartName Start +*FvwmTaskBarStartMenu StartMenu +# Just for fun, let's use the Linux penguin for the Start button: +*FvwmTaskBarStartIcon mini-penguin.xpm +#*FvwmTaskBarStartIcon mini-exp.xpm +*FvwmTaskBarShowTips +*FvwmTaskBarMailProg xterm -e mail diff --git a/source/xap/fvwm/xinitrc.fvwm2 b/source/xap/fvwm/xinitrc.fvwm2 new file mode 100644 index 000000000..955629fcd --- /dev/null +++ b/source/xap/fvwm/xinitrc.fvwm2 @@ -0,0 +1,30 @@ +#!/bin/sh +# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f $userresources ]; then + xrdb -merge $userresources +fi + +if [ -f $usermodmap ]; then + xmodmap $usermodmap +fi + +# start some nice programs + +xsetroot -solid SteelBlue +fvwm2 diff --git a/source/xap/gftp/gftp.SlackBuild b/source/xap/gftp/gftp.SlackBuild new file mode 100755 index 000000000..ba93205e8 --- /dev/null +++ b/source/xap/gftp/gftp.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.0.19 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gftp + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gftp-$VERSION +tar xvf $CWD/gftp-$VERSION.tar.bz2 || exit 1 +cd gftp-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --mandir=/usr/man \ + --docdir=/usr/doc/gftp-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Put symlinks to the themable icons in place +mkdir -p $PKG/usr/share/icons/hicolor/{scalable,16x16,22x22,24x24,32x32,48x48}/apps +ln -s /usr/share/gftp/gftp-scalable.svg \ + $PKG/usr/share/icons/hicolor/scalable/apps/gftp.svg +for i in 16x16 22x22 24x24 32x32 48x48 ; do + ln -s /usr/share/gftp/gftp-${i}.png \ + $PKG/usr/share/icons/hicolor/${i}/apps/gftp.png +done + +mkdir -p $PKG/usr/doc/gftp-$VERSION +cp -a \ + AUTHORS COPYING NEWS README README.html THANKS TODO docs/USERS-GUIDE \ + $PKG/usr/doc/gftp-$VERSION + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gftp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/gftp/gftp.desktop b/source/xap/gftp/gftp.desktop new file mode 100644 index 000000000..0beaf5bce --- /dev/null +++ b/source/xap/gftp/gftp.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=gFTP +Comment=Download and upload files using multiple file transfer protocols +Comment[fr]=Télécharge des fichiers en utilisant le protocole FTP +GenericName=gFTP +Exec=gftp %u +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=gftp +Categories=Network; +X-GNOME-Bugzilla-Bugzilla=GNOME +X-GNOME-Bugzilla-Product=gftp +X-GNOME-Bugzilla-Component=general +X-GNOME-Bugzilla-Version=2.0.19 diff --git a/source/xap/gftp/slack-desc b/source/xap/gftp/slack-desc new file mode 100644 index 000000000..693fb4d28 --- /dev/null +++ b/source/xap/gftp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gftp: gftp (FTP client for X) +gftp: +gftp: gFTP is a multithreaded FTP client for X written using GTK+. It +gftp: features simultaneous downloads, resuming of interrupted file +gftp: transfers, file transfer queues, downloading of entire directories, +gftp: ftp proxy support, remote directory caching, passive and non-passive +gftp: file transfers, drag-n-drop support, bookmarks menu, stop button, +gftp: and many more features. +gftp: +gftp: +gftp: diff --git a/source/xap/gimp/gimp.SlackBuild b/source/xap/gimp/gimp.SlackBuild new file mode 100755 index 000000000..ef001a681 --- /dev/null +++ b/source/xap/gimp/gimp.SlackBuild @@ -0,0 +1,105 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.6.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gimp +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf gimp-$VERSION +tar xvf $CWD/gimp-$VERSION.tar.bz2 || exit 1 +cd gimp-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/gimp-$VERSION \ + --disable-static \ + --enable-gimp-remote \ + --without-gvfs \ + --with-libcurl \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/share/applications $PKG/usr/share/application-registry +make install DESTDIR=$PKG || exit 1 + +# Add a manpage symlink for POLA-compliance +( cd $PKG/usr/man/man1 ; ln -sf gimptool-2.?.1 gimptool.1 ) + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/gimp-$VERSION +cp -a \ + AUTHORS COPYING HACKING INSTALL LICENSE NEWS README* docs/Wilber* \ + $PKG/usr/doc/gimp-$VERSION +( cd $PKG/usr/doc/gimp-$VERSION + for i in \ + libgimp libgimpbase libgimpcolor libgimpconfig libgimpmath \ + libgimpmodule libgimpthumb libgimpwidgets ; do \ + ln -s /usr/share/gtk-doc/html/$i $i-html ; + done +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gimp-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/gimp/slack-desc b/source/xap/gimp/slack-desc new file mode 100644 index 000000000..9f9aca385 --- /dev/null +++ b/source/xap/gimp/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gimp: gimp (The GNU Image Manipulation Program) +gimp: +gimp: The GIMP is a powerful tool for the preparation and manipulation of +gimp: digital images. The GIMP provides the user with a wide variety of +gimp: image manipulation, painting, processing, and rendering tools. The +gimp: GIMP's open design and extensible architecture make for a very +gimp: powerful end product for photo and image retouching, web graphics +gimp: design, or digital illustration. +gimp: +gimp: +gimp: diff --git a/source/xap/gkrellm/gkrellm.SlackBuild b/source/xap/gkrellm/gkrellm.SlackBuild new file mode 100755 index 000000000..222f2567e --- /dev/null +++ b/source/xap/gkrellm/gkrellm.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=2.3.2 +PKGVER=2.3.2 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gkrellm + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gkrellm-$VERSION +tar xvf $CWD/gkrellm-$VERSION.tar.bz2 || exit 1 +cd gkrellm-$VERSION || exit 1 +# Fix library paths (works for all ARCHs): +sed -i -e "s#lib/gkrellm2#lib${LIBDIRSUFFIX}/gkrellm2#g" $(grep -lr 'lib/gkrellm2' *) +# Increase the default width slightly, and don't use the text +# shadow effect by default (this seems better with Pango font +# rendering): +zcat $CWD/gkrellm.theme.defaults.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make \ + INSTALLROOT=/usr \ + INSTALLDIR=/usr/bin \ + INCLUDEDIR=/usr/include \ + MANDIR=/usr/man/man1 \ + LOCALEDIR=/usr/share/locale \ + PKGCONFIGDIR=/usr/lib${LIBDIRSUFFIX}/pkgconfig + +# We will need this installed to build plugins, so... +make install + +# Install to the $PKG dir: +make install \ + INSTALLROOT=$PKG/usr \ + INSTALLDIR=$PKG/usr/bin \ + INCLUDEDIR=$PKG/usr/include \ + MANDIR=$PKG/usr/man/man1 \ + LOCALEDIR=$PKG/usr/share/locale \ + PKGCONFIGDIR=$PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/gkrellm2/plugins + +mkdir -p $PKG/usr/doc/gkrellm-$VERSION +cp -a \ + COPYRIGHT CREDITS INSTALL README Themes.html \ + $PKG/usr/doc/gkrellm-$VERSION + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Add optional plugin(s): +# The countdown plugin is needed to track X-Day. ;-) +COUNTDOWN=0.1.1 +cd $TMP +rm -rf gkrellm-countdown +tar xf $CWD/gkrellm-countdown-$COUNTDOWN.tar.gz || exit 1 +cd gkrellm-countdown || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +make +cp gkrellm-countdown.so $PKG/usr/lib${LIBDIRSUFFIX}/gkrellm2/plugins + +mkdir -p $PKG/usr/doc/gkrellm-countdown-$COUNTDOWN +cp -a \ + COPYING ChangeLog README \ + $PKG/usr/doc/gkrellm-countdown-$COUNTDOWN + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gkrellm-$PKGVER-$ARCH-$BUILD.txz + diff --git a/source/xap/gkrellm/gkrellm.theme.defaults.diff b/source/xap/gkrellm/gkrellm.theme.defaults.diff new file mode 100644 index 000000000..aff6a9fbc --- /dev/null +++ b/source/xap/gkrellm/gkrellm.theme.defaults.diff @@ -0,0 +1,11 @@ +--- ./src/config.c.orig 2008-10-03 19:33:37.000000000 -0500 ++++ ./src/config.c 2008-10-25 20:33:56.000000000 -0500 +@@ -1883,7 +1883,7 @@ + + _GK.chart_height_min = 5; + _GK.chart_height_max = 200; +- _GK.chart_width_ref = 60; ++ _GK.chart_width_ref = 75; + _GK.chart_text_no_fill = FALSE; + _GK.bg_separator_height = 2; + _GK.allow_scaling = FALSE; diff --git a/source/xap/gkrellm/slack-desc b/source/xap/gkrellm/slack-desc new file mode 100644 index 000000000..3540eb6a5 --- /dev/null +++ b/source/xap/gkrellm/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gkrellm: gkrellm (GNU Krell Monitors) +gkrellm: +gkrellm: GKrellM charts SMP CPU, load, Disk, and all active net interfaces +gkrellm: automatically. An on/off button and online timer for the PPP interface +gkrellm: is provided. Monitors for memory and swap usage, file system, internet +gkrellm: connections, APM laptop battery, mbox style mailboxes, and cpu temps. +gkrellm: Also includes an uptime monitor, hostname label, and clock/calendar. +gkrellm: +gkrellm: Bill Wilson is the author of GKrellM. +gkrellm: +gkrellm: diff --git a/source/xap/gnuchess/chess.png b/source/xap/gnuchess/chess.png new file mode 100644 index 000000000..6e4a1bff2 Binary files /dev/null and b/source/xap/gnuchess/chess.png differ diff --git a/source/xap/gnuchess/eboard.desktop b/source/xap/gnuchess/eboard.desktop new file mode 100644 index 000000000..f467664ae --- /dev/null +++ b/source/xap/gnuchess/eboard.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=eboard +GenericName=Chess Game +Comment=A graphical chess engine frontend +Exec=eboard +Icon=/usr/share/pixmaps/chess.png +Terminal=false +Type=Application +Categories=Application;Game;BoardGame diff --git a/source/xap/gnuchess/gnuchess.SlackBuild b/source/xap/gnuchess/gnuchess.SlackBuild new file mode 100755 index 000000000..2b236ae40 --- /dev/null +++ b/source/xap/gnuchess/gnuchess.SlackBuild @@ -0,0 +1,176 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERGNUCHESS=5.07 +VERSJENG=11.2 +VEREBOARD=1.0.3 +VERXBOARD=4.2.7 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=/tmp/package-gnuchess + +rm -rf $PKG +mkdir -p $TMP $PKG + +### gnuchess +cd $TMP +rm -rf gnuchess-$VERGNUCHESS +tar xvf $CWD/gnuchess-$VERGNUCHESS.tar.bz2 || exit 1 +cd gnuchess-$VERGNUCHESS || exit 1 +# make gnuchess compile with gcc4 +zcat $CWD/gnuchess.gcc4_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/gnuchess-$VERGNUCHESS +cp -a \ + doc/README \ + AUTHORS COPYING INSTALL NEWS TODO \ + $PKG/usr/doc/gnuchess-$VERGNUCHESS + +### Sjeng +cd $TMP +rm -rf Sjeng-Free-$VERSJENG +tar xvf $CWD/Sjeng-Free-$VERSJENG.tar.bz2 || exit 1 +cd Sjeng-Free-$VERSJENG || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + $ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/Sjeng-Free-$VERSJENG +cp -a \ + AUTHORS BUGS COPYING NEWS README THANKS TODO \ + $PKG/usr/doc/Sjeng-Free-$VERSJENG + +### eboard +cd $TMP +rm -rf eboard-$VEREBOARD +tar xvf $CWD/eboard-$VEREBOARD.tar.bz2 || exit 1 +cd eboard-$VEREBOARD || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --extra-flags=$(echo $SLKCFLAGS | sed -e "y/ /:/") +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/eboard-$VEREBOARD +cp -a \ + AUTHORS COPYING README TODO Documentation/*.txt \ + $PKG/usr/doc/eboard-$VEREBOARD + +### XBoard +cd $TMP +rm -rf xboard-$VERXBOARD +tar xvf $CWD/xboard-$VERXBOARD.tar.bz2 || exit 1 +cd xboard-$VERXBOARD || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# --infodir is fubar. +zcat $CWD/xboard.infodir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Taken from Debian to fix CVE-2004-2552 +# FOR WHICH THERE IS NO ATTACK VECTOR!!! +zcat $CWD/xboard.buffer_overflow_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --enable-zippy \ + --build=$ARCH-slackware-linux +make $NUMJOBS || make || exit 1 +install -c -s xboard $PKG/usr/bin/xboard +install -c -s zic2xpm $PKG/usr/bin/zic2xpm +install -c cmail $PKG/usr/bin/cmail +install -c ./pxboard $PKG/usr/bin/pxboard +install -c -m 644 ./xboard.man $PKG/usr/man/man6/xboard.6 +install -c -m 644 ./zic2xpm.man $PKG/usr/man/man6/zic2xpm.6 +mkdir -p $PKG/usr/info +install -c -m 644 xboard.info $PKG/usr/info/xboard.info +mkdir -p $PKG/usr/doc/xboard-$VERXBOARD +cp -a \ + AUTHORS COPYING COPYRIGHT FAQ FAQ.html NEWS READ_ME \ + $PKG/usr/doc/xboard-$VERXBOARD + +### Finish up... +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? +gzip -9 $PKG/usr/info/*.info +mkdir -p $PKG/usr/share/pixmaps +cat $CWD/chess.png > $PKG/usr/share/pixmaps/chess.png +mkdir -p $PKG/usr/share/applications +cat $CWD/eboard.desktop > $PKG/usr/share/applications/eboard.desktop +cat $CWD/xboard.desktop > $PKG/usr/share/applications/xboard.desktop + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gnuchess-$VERGNUCHESS-$ARCH-$BUILD.txz + diff --git a/source/xap/gnuchess/gnuchess.SlackBuild.diff b/source/xap/gnuchess/gnuchess.SlackBuild.diff new file mode 100644 index 000000000..0112a9d22 --- /dev/null +++ b/source/xap/gnuchess/gnuchess.SlackBuild.diff @@ -0,0 +1,89 @@ +--- gnuchess.SlackBuild 2006-04-04 03:47:10.000000000 +0300 ++++ gnuchess.SlackBuild 2007-05-08 17:06:11.000000000 +0300 +@@ -4,10 +4,10 @@ + + VERGNUCHESS=5.07 + VERSJENG=11.2 +-VEREBOARD=0.9.5 ++VEREBOARD=1.0.3 + VERXBOARD=4.2.7 + ARCH=${ARCH:-i486} +-BUILD=${BUILD:-2} ++BUILD=${BUILD:-3} + + if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +@@ -27,6 +27,8 @@ + rm -rf gnuchess-$VERGNUCHESS + tar xjvf $CWD/gnuchess-$VERGNUCHESS.tar.bz2 + cd gnuchess-$VERGNUCHESS ++# make gnuchess compile with gcc4 ++zcat $CWD/gnuchess.gcc4_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig + chown -R root:root . + find . -perm 664 -exec chmod 644 {} \; + find . -perm 600 -exec chmod 644 {} \; +@@ -93,33 +95,13 @@ + find . -perm 511 -exec chmod 755 {} \; + find . -perm 711 -exec chmod 755 {} \; + find . -perm 555 -exec chmod 755 {} \; +-CFLAGS="$SLKCFLAGS" \ + ./configure \ +- --prefix=/usr ++ --prefix=/usr --extra-flags=`echo $SLKCFLAGS | sed -e "y/ /:/"` + make -j3 +-#make install DESTDIR=$PKG +-install -d $PKG/usr/bin +-install -m 0755 eboard $PKG/usr/bin/eboard +-install -m 0755 eboard-config $PKG/usr/bin/eboard-config +-install -m 0755 eboard-addtheme $PKG/usr/bin/eboard-addtheme +-install -d $PKG/usr/man/man1 +-install -d $PKG/usr/man/man6 +-install -m 0644 eboard.6 $PKG/usr/man/man6 +-install -m 0644 eboard-addtheme.1 $PKG/usr/man/man1 +-install -m 0644 eboard-config.1 $PKG/usr/man/man1 +-install -d $PKG/usr/share/eboard +-install -m 0644 classic.png $PKG/usr/share/eboard/classic.png +-install -m 0644 ghouls.png $PKG/usr/share/eboard/ghouls.png +-install -m 0644 plastic.png $PKG/usr/share/eboard/plastic.png +-install -m 0644 eboard_themes.conf $PKG/usr/share/eboard/eboard_themes.conf +-install -m 0644 NAG.en.txt $PKG/usr/share/eboard/NAG.en.txt +-( cd multilang +- install -d $PKG/usr/share/eboard +- install -m 0644 eboard.cs.dict eboard.de.dict eboard.es.dict eboard.it.dict eboard.pt_BR.dict $PKG/usr/share/eboard +-) ++make install DESTDIR=$PKG + mkdir -p $PKG/usr/doc/eboard-$VEREBOARD + cp -a \ +- AUTHORS COPYING README TODO \ ++ AUTHORS COPYING README TODO Documentation/*.txt \ + $PKG/usr/doc/eboard-$VEREBOARD + + ### XBoard +@@ -140,6 +122,8 @@ + find . -perm 555 -exec chmod 755 {} \; + # --infodir is fubar. + zcat $CWD/xboard.infodir.diff.gz | patch -p1 --verbose --backup --suffix=.orig ++# Taken from Debian to fix CVE-2004-2552 ++zcat $CWD/xboard.buffer_overflow_fix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + CFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ +@@ -153,6 +137,7 @@ + install -c ./pxboard $PKG/usr/bin/pxboard + install -c -m 644 ./xboard.man $PKG/usr/man/man6/xboard.6 + install -c -m 644 ./zic2xpm.man $PKG/usr/man/man6/zic2xpm.6 ++mkdir -p $PKG/usr/info + install -c -m 644 xboard.info $PKG/usr/info/xboard.info + mkdir -p $PKG/usr/doc/xboard-$VERXBOARD + cp -a \ +@@ -165,8 +150,9 @@ + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + ) + gzip -9 $PKG/usr/man/man?/*.? ++gzip -9 $PKG/usr/info/*.info + mkdir -p $PKG/usr/share/pixmaps +-cat $CWD/chess.png > $PKG/usr/share/pixmaps/chess.png ++cp $CWD/chess.png $PKG/usr/share/pixmaps/chess.png + mkdir -p $PKG/usr/share/applications + cat $CWD/eboard.desktop > $PKG/usr/share/applications/eboard.desktop + cat $CWD/xboard.desktop > $PKG/usr/share/applications/xboard.desktop diff --git a/source/xap/gnuchess/gnuchess.gcc4_fix.diff b/source/xap/gnuchess/gnuchess.gcc4_fix.diff new file mode 100644 index 000000000..a68351941 --- /dev/null +++ b/source/xap/gnuchess/gnuchess.gcc4_fix.diff @@ -0,0 +1,11 @@ +--- gnuchess-5.07/src/input.c 2007-05-08 15:55:16.688003280 +0300 ++++ gnuchess-5.07/src/input.c 2007-05-08 15:55:29.238088685 +0300 +@@ -92,7 +92,7 @@ + fgets(inputstr, MAXSTR, stdin); + } + +-static pthread_t input_thread; ++pthread_t input_thread; + + /* Mutex and condition variable for thread communication */ + diff --git a/source/xap/gnuchess/slack-desc b/source/xap/gnuchess/slack-desc new file mode 100644 index 000000000..967766534 --- /dev/null +++ b/source/xap/gnuchess/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnuchess: gnuchess (GPL licensed chess engines and graphical frontends) +gnuchess: +gnuchess: This is a package of programs for playing chess. It includes the +gnuchess: gnuchess and Sjeng chess engines, and the eboard and XBoard +gnuchess: graphical interfaces to these engines. +gnuchess: +gnuchess: +gnuchess: +gnuchess: +gnuchess: +gnuchess: diff --git a/source/xap/gnuchess/xboard.buffer_overflow_fix.diff b/source/xap/gnuchess/xboard.buffer_overflow_fix.diff new file mode 100644 index 000000000..f36d36bad --- /dev/null +++ b/source/xap/gnuchess/xboard.buffer_overflow_fix.diff @@ -0,0 +1,95 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 09_fix_-icshost_buffer_overflow.dpatch by Florian Ernst +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Of minor importance, though, as there is probably no attack vector +## DP: See bug#343560 + +@DPATCH@ +diff -urNad xboard-4.2.7~/backend.c xboard-4.2.7/backend.c +--- xboard-4.2.7~/backend.c 2003-11-28 10:37:36.000000000 +0100 ++++ xboard-4.2.7/backend.c 2005-12-16 22:19:16.000000000 +0100 +@@ -692,7 +692,7 @@ + sprintf(buf, "Could not open comm port %s", + appData.icsCommPort); + } else { +- sprintf(buf, "Could not connect to host %s, port %s", ++ snprintf(buf, sizeof(buf), "Could not connect to host %s, port %s", + appData.icsHost, appData.icsPort); + } + DisplayFatalError(buf, err, 1); +@@ -869,18 +869,18 @@ + } else if (*appData.gateway != NULLCHAR) { + if (*appData.remoteShell == NULLCHAR) { + /* Use the rcmd protocol to run telnet program on a gateway host */ +- sprintf(buf, "%s %s %s", ++ snprintf(buf, sizeof(buf), "%s %s %s", + appData.telnetProgram, appData.icsHost, appData.icsPort); + return OpenRcmd(appData.gateway, appData.remoteUser, buf, &icsPR); + + } else { + /* Use the rsh program to run telnet program on a gateway host */ + if (*appData.remoteUser == NULLCHAR) { +- sprintf(buf, "%s %s %s %s %s", appData.remoteShell, ++ snprintf(buf, sizeof(buf), "%s %s %s %s %s", appData.remoteShell, + appData.gateway, appData.telnetProgram, + appData.icsHost, appData.icsPort); + } else { +- sprintf(buf, "%s %s -l %s %s %s %s", ++ snprintf(buf, sizeof(buf), "%s %s -l %s %s %s %s", + appData.remoteShell, appData.gateway, + appData.remoteUser, appData.telnetProgram, + appData.icsHost, appData.icsPort); +@@ -1684,7 +1684,7 @@ + + if (loggedOn && !have_set_title && ics_handle[0] != NULLCHAR) { + char buf[MSG_SIZ]; +- sprintf(buf, "%s@%s", ics_handle, appData.icsHost); ++ snprintf(buf, sizeof(buf), "%s@%s", ics_handle, appData.icsHost); + DisplayIcsInteractionTitle(buf); + have_set_title = TRUE; + } +@@ -4882,7 +4882,7 @@ + SendToProgram(buf, cps); + } + if (cps->sendICS) { +- sprintf(buf, "ics %s\n", appData.icsActive ? appData.icsHost : "-"); ++ snprintf(buf, sizeof(buf), "ics %s\n", appData.icsActive ? appData.icsHost : "-"); + SendToProgram(buf, cps); + } + cps->maybeThinking = FALSE; +diff -urNad xboard-4.2.7~/xboard.c xboard-4.2.7/xboard.c +--- xboard-4.2.7~/xboard.c 2003-11-19 09:42:18.000000000 +0100 ++++ xboard-4.2.7/xboard.c 2005-12-16 22:19:16.000000000 +0100 +@@ -6734,8 +6734,8 @@ + strcpy(icon, text); + strcpy(title, text); + } else if (appData.icsActive) { +- sprintf(icon, "%s", appData.icsHost); +- sprintf(title, "%s: %s", programName, appData.icsHost); ++ snprintf(icon, sizeof(icon), "%s", appData.icsHost); ++ snprintf(title, sizeof(title), "%s: %s", programName, appData.icsHost); + } else if (appData.cmailGameName[0] != NULLCHAR) { + sprintf(icon, "%s", "CMail"); + sprintf(title, "%s: %s", programName, "CMail"); +@@ -6804,7 +6804,7 @@ + } else { + fprintf(stderr, "%s: %s: %s\n", + programName, message, strerror(error)); +- sprintf(buf, "%s: %s", message, strerror(error)); ++ snprintf(buf, sizeof(buf), "%s: %s", message, strerror(error)); + message = buf; + } + if (appData.popupExitMessage && boardWidget && XtIsRealized(boardWidget)) { +@@ -7488,9 +7488,9 @@ + char cmdLine[MSG_SIZ]; + + if (port[0] == NULLCHAR) { +- sprintf(cmdLine, "%s %s", appData.telnetProgram, host); ++ snprintf(cmdLine, sizeof(cmdLine), "%s %s", appData.telnetProgram, host); + } else { +- sprintf(cmdLine, "%s %s %s", appData.telnetProgram, host, port); ++ snprintf(cmdLine, sizeof(cmdLine), "%s %s %s", appData.telnetProgram, host, port); + } + return StartChildProcess(cmdLine, "", pr); + } diff --git a/source/xap/gnuchess/xboard.desktop b/source/xap/gnuchess/xboard.desktop new file mode 100644 index 000000000..6336cb63a --- /dev/null +++ b/source/xap/gnuchess/xboard.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=XBoard +GenericName=Chess Game +Comment=A graphical chess engine frontend +Exec=xboard +Icon=/usr/share/pixmaps/chess.png +Terminal=false +Type=Application +Categories=Application;Game;BoardGame diff --git a/source/xap/gnuchess/xboard.infodir.diff b/source/xap/gnuchess/xboard.infodir.diff new file mode 100644 index 000000000..5c18bb026 --- /dev/null +++ b/source/xap/gnuchess/xboard.infodir.diff @@ -0,0 +1,11 @@ +--- ./Makefile.in.orig 2003-11-28 13:12:57.000000000 -0800 ++++ ./Makefile.in 2004-06-26 15:47:07.000000000 -0700 +@@ -21,7 +21,7 @@ + # Yuck; the autoconf generated configure script sets an infodir variable + # and provides a command-line flag to change it, but the default is + # /usr/info instead of /usr/share/info. +-infodir = $(prefix)/share/info ++infodir = /usr/info + + CC = @CC@ + CFLAGS = @CFLAGS@ @CPPFLAGS@ -DINFODIR=\"$(infodir)\" diff --git a/source/xap/gnuplot/gnuplot.SlackBuild b/source/xap/gnuplot/gnuplot.SlackBuild new file mode 100755 index 000000000..f154e16d8 --- /dev/null +++ b/source/xap/gnuplot/gnuplot.SlackBuild @@ -0,0 +1,115 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=4.2.5 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gnuplot + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf gnuplot-$VERSION +tar xvf $CWD/gnuplot-$VERSION.tar.?z* || exit 1 +cd gnuplot-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# To distribute gnuplot binaries, you can not use GNU readline, as +# gnuplot does not use a GPL compatible free license. +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-png \ + --with-gd \ + --datadir=/usr/share/gnuplot \ + --with-readline=builtin \ + --build=${ARCH}-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/gnuplot-$VERSION +cp -a \ + BUGS CodeStyle Copyright FAQ INSTALL NEWS PATCHLEVEL PGPKEYS PORTING \ + README* TODO VERSION \ + $PKG/usr/doc/gnuplot-$VERSION +cp -a demo $PKG/usr/doc/gnuplot-$VERSION +rm -f $PKG/usr/doc/gnuplot-$VERSION/demo/Make* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Make the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/gnuplot-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/gnuplot/slack-desc b/source/xap/gnuplot/slack-desc new file mode 100644 index 000000000..f0007b4a9 --- /dev/null +++ b/source/xap/gnuplot/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gnuplot: gnuplot (plotting utility) +gnuplot: +gnuplot: Gnuplot is a command-line driven interactive function plotting utility +gnuplot: for UNIX, MSDOS, and VMS platforms. The software is copyrighted but +gnuplot: freely distributed (i.e., you don't have to pay for it). It was +gnuplot: originally intended as graphical program which would allow scientists +gnuplot: and students to visualize mathematical functions and data. Gnuplot +gnuplot: supports many different types of terminals, plotters, and printers +gnuplot: (including many color devices, and pseudo-devices like LaTeX) and is +gnuplot: easily extensible to include new devices. +gnuplot: diff --git a/source/xap/gqview/doinst.sh b/source/xap/gqview/doinst.sh new file mode 100644 index 000000000..31da22647 --- /dev/null +++ b/source/xap/gqview/doinst.sh @@ -0,0 +1,7 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database usr/share/applications >/dev/null 2>&1 +fi +if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor > /dev/null 2>&1 +fi + diff --git a/source/xap/gqview/gqview.SlackBuild b/source/xap/gqview/gqview.SlackBuild new file mode 100755 index 000000000..74e0a3a97 --- /dev/null +++ b/source/xap/gqview/gqview.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2006 Robby Workman (http://rlworkman.net) +# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +# Modified by the SlackBuilds.org project + + +PRGNAM=gqview +VERSION=2.1.5 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --program-prefix="" \ + --program-suffix="" \ + --build=i486-slackware-linux + +make $NUMJOBS || make || exit 1 +make install-strip DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +mv $PKG/usr/share/doc/$PRGNAM-$VERSION/* $PKG/usr/doc/$PRGNAM-$VERSION +rm -r $PKG/usr/share/doc + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/gqview/slack-desc b/source/xap/gqview/slack-desc new file mode 100644 index 000000000..d6a6ceab4 --- /dev/null +++ b/source/xap/gqview/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gqview: gqview (GQview Image Browser) +gqview: +gqview: GQview is an image browser that features single-click access to view +gqview: images and move around the directory tree. +gqview: +gqview: Homepage: http://gqview.sourceforge.net/ +gqview: +gqview: +gqview: +gqview: +gqview: diff --git a/source/xap/gucharmap/doinst.sh b/source/xap/gucharmap/doinst.sh new file mode 100644 index 000000000..4e8ba7071 --- /dev/null +++ b/source/xap/gucharmap/doinst.sh @@ -0,0 +1,4 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + diff --git a/source/xap/gucharmap/gucharmap.SlackBuild b/source/xap/gucharmap/gucharmap.SlackBuild new file mode 100755 index 000000000..36f526148 --- /dev/null +++ b/source/xap/gucharmap/gucharmap.SlackBuild @@ -0,0 +1,92 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.26.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gucharmap +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gucharmap-$VERSION +tar xvf $CWD/gucharmap-$VERSION.tar.?z* || exit 1 +cd gucharmap-$VERSION || exit 1 +#zcat $CWD/gucharmap.noscrollkeeper.diff.gz | patch -p1 --verbose || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --docdir=/usr/doc/gucharmap-$VERSION \ + --enable-static=no \ + --enable-python-bindings \ + --disable-gconf \ + --disable-schemas-install \ + --disable-scrollkeeper \ + --build=$ARCH-slackware-linux + +make -i $NUMJOBS || make || exit 1 +make -i install DESTDIR=$PKG || exit 1 + +# We don't want the gconf stuff +rm -rf $PKG/etc + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/gucharmap-$VERSION +cp -a \ + COPYING* NEWS README TODO \ + $PKG/usr/doc/gucharmap-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gucharmap-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/gucharmap/slack-desc b/source/xap/gucharmap/slack-desc new file mode 100644 index 000000000..798e123ba --- /dev/null +++ b/source/xap/gucharmap/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gucharmap: gucharmap (character map utility) +gucharmap: +gucharmap: gucharmap is a Unicode character map and font viewer. +gucharmap: +gucharmap: +gucharmap: +gucharmap: +gucharmap: +gucharmap: +gucharmap: +gucharmap: diff --git a/source/xap/gv/gv.SlackBuild b/source/xap/gv/gv.SlackBuild new file mode 100755 index 000000000..d28abd8ed --- /dev/null +++ b/source/xap/gv/gv.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=gv +VERSION=${VERSION:-3.6.7} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libdir=/etc/X11 \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING INSTALL NEWS README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/gv/slack-desc b/source/xap/gv/slack-desc new file mode 100644 index 000000000..006267776 --- /dev/null +++ b/source/xap/gv/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gv: gv (PS/PDF file viewer) +gv: +gv: gv is a PostScript and PDF previewer. It allows users to view and +gv: navigate through PostScript and PDF documents on an X display by +gv: providing a user interface for the ghostscript interpreter. +gv: +gv: gv was written by Johannes Plass, using the source code for Tim +gv: Theisen's ghostview 1.5 as a starting point. +gv: +gv: +gv: diff --git a/source/xap/gxine/gxine.SlackBuild b/source/xap/gxine/gxine.SlackBuild new file mode 100755 index 000000000..d9b75d0b4 --- /dev/null +++ b/source/xap/gxine/gxine.SlackBuild @@ -0,0 +1,99 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.5.903 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-gxine +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf gxine-$VERSION +tar xvf $CWD/gxine-$VERSION.tar.bz2 || exit 1 +cd gxine-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --mandir=/usr/man \ + --disable-static \ + --with-browser-plugin \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +#zcat $CWD/gxine.desktop.gz > $PKG/usr/share/applications/gxine.desktop +#if [ ! -r $PKG/usr/share/pixmaps/gxine.png ]; then +# exit 1 +#fi + +# I'm sorry, but making this link was the worst suggestion I ever +# went along with. I'll continue to include it (for now), but having +# (buggy) gxine pop up without prompting all the time is ANNOYING!!! +#mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins +#( cd $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins +# ln -sf /usr/lib${LIBDIRSUFFIX}/gxine/gxineplugin.so . +#) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +find $PKG/usr/man -type f -exec gzip -9 {} \; + +mkdir -p $PKG/usr/doc/gxine-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README TODO \ + $PKG/usr/doc/gxine-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/gxine-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/gxine/gxine.desktop b/source/xap/gxine/gxine.desktop new file mode 100644 index 000000000..54e5e6c28 --- /dev/null +++ b/source/xap/gxine/gxine.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=gxine +GenericName=Video Player +Comment=Play films and songs, or watch digital TV +Exec=gxine +MultipleArgs=true +Icon=/usr/share/pixmaps/gxine.png +Terminal=false +Type=Application +StartupNotify=true +Categories=GTK;Application;AudioVideo; +MimeType=video/mpeg;video/msvideo;video/quicktime;video/x-avi;video/x-ms-asf;video/x-ms-wmv;video/x-msvideo;application/x-ogg;application/ogg;audio/x-mp3;audio/x-mpeg;video/x-mpeg;video/x-fli;audio/x-wav;audio/x-mpegurl;audio/x-scpls;audio/x-ms-asx;application/vnd.rn-realmedia;audio/x-real-audio;audio/x-pn-realaudio;application/x-flac;audio/x-flac;application/x-shockwave-flash;audio/mpeg;audio/x-ms-asf;audio/x-m4a;audio/x-ms-wax;video/dv;video/x-anim;video/x-flc;misc/ultravox;application/x-matroska;audio/vnd.rn-realaudio;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-wav;audio/x-pn-windows-acm;image/vnd.rn-realpix;video/vnd.rn-realvideo diff --git a/source/xap/gxine/slack-desc b/source/xap/gxine/slack-desc new file mode 100644 index 000000000..18f7cef45 --- /dev/null +++ b/source/xap/gxine/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +gxine: gxine (GTK+ media player based on Xine) +gxine: +gxine: Xine is a free multimedia player. It plays back CDs, DVDs, and VCDs, +gxine: multimedia files, and multimedia streamed over a network. +gxine: +gxine: The gxine package contains a GTK+ graphical user interface for the +gxine: Xine multimedia player. +gxine: +gxine: +gxine: +gxine: diff --git a/source/xap/imagemagick/imagemagick.SlackBuild b/source/xap/imagemagick/imagemagick.SlackBuild new file mode 100755 index 000000000..cfa074977 --- /dev/null +++ b/source/xap/imagemagick/imagemagick.SlackBuild @@ -0,0 +1,140 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-imagemagick +rm -rf $PKG +mkdir -p $TMP $PKG + +# NOTE: This is to cope with ImageMagick version numbers such as 5.4.7-4, +# which occur fairly often (but not always). If these numbers are all the same, +# then this is not one of those versions. + +# This is a bit messy, so we'll explain it well. :-) + +# This is the base version number, which is needed to cd into the source tree +BASEVER=6.5.3-3 + +# This is the version number used in the source tarball filename +FILEVER=6.5.3-3 + +# This is the version number used in the package, where a version number cannot +# contain a '-' +PKGVER=6.5.3_3 + +# --with-x or not --with-x, that is the question. It seems many other +# distributions don't compile with X support, but it's been traditional +# here. I am moving the prefix to /usr (instead of /usr/X11R6) though, +# because many X-linked things are put into /usr now (like GNOME), and +# I've heard a few reports of compile failures when this isn't in /usr. +# Everyone else does it -- time to follow the path of least resistance. + +cd $TMP +rm -rf ImageMagick-$BASEVER +tar xvf $CWD/ImageMagick-$FILEVER.tar.?z* || exit 1 +cd ImageMagick-$BASEVER || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# --without-modules seems to avoid a segfault when identifying +# or converting ps or eps files... + +# --disable-openmp seems to keep the perl Image::Magick from +# eating up all RAM, and may help other script bindings. + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --program-prefix= \ + --with-x \ + --with-frozenpaths=no \ + --without-modules \ + --disable-openmp \ + --enable-static=no \ + --enable-shared \ + --with-perl \ + --build=$ARCH-slackware-linux + +make $NUMJOBS INSTALLDIRS=vendor || make INSTALLDIRS=vendor || exit 1 +make install INSTALLDIRS=vendor DESTDIR=$PKG || exit 1 + +# Lately ImageMagick has been smoking crack: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libltdl.* + +( cd $PKG + # Nothing but a perl upgrade should replace this (and maybe not even that) + find . -name perllocal.pod | xargs rm -f +) + +# DESTDIR is still broken about this, but works well enough otherwise: +chmod 644 $PKG/usr/share/man/man3/* +mv $PKG/usr/share/man/man3 $PKG/usr/man +rmdir $PKG/usr/share/man + +( cd $PKG/usr/lib${LIBDIRSUFFIX}/perl5 + # Ditch empty dirs: + rmdir */* 2> /dev/null + rmdir * 2> /dev/null +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/usr +mv $PKG/usr/share/doc $PKG/usr +cp -a \ + AUTHORS LICENSE NEWS NOTICE Platforms.txt QuickStart.txt README.txt \ + $PKG/usr/doc/Imag* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/imagemagick-$PKGVER-$ARCH-$BUILD.txz + diff --git a/source/xap/imagemagick/slack-desc b/source/xap/imagemagick/slack-desc new file mode 100644 index 000000000..80ac9a678 --- /dev/null +++ b/source/xap/imagemagick/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +imagemagick: imagemagick (a robust collection of image processing tools) +imagemagick: +imagemagick: ImageMagick is a collection of tools for manipulating and displaying +imagemagick: digital images. It can merge images, transform image dimensions, +imagemagick: do screen captures, create animation sequences, and convert between +imagemagick: many different image formats. +imagemagick: +imagemagick: ImageMagick was written by John Cristy of ImageMagick Studio. +imagemagick: +imagemagick: Home page: http://www.imagemagick.org/ +imagemagick: diff --git a/source/xap/mozilla-firefox/firefox.moz_plugin_path.diff b/source/xap/mozilla-firefox/firefox.moz_plugin_path.diff new file mode 100644 index 000000000..761f295a4 --- /dev/null +++ b/source/xap/mozilla-firefox/firefox.moz_plugin_path.diff @@ -0,0 +1,17 @@ +--- ./firefox.orig 2008-05-29 15:21:18.000000000 -0500 ++++ ./firefox 2008-06-17 12:19:26.000000000 -0500 +@@ -54,6 +54,14 @@ + + moz_libdir=/usr/local/lib/firefox-3.0 + ++# Include /usr/lib/mozilla/plugins in the plugin path: ++if [ "$MOZ_PLUGIN_PATH" ] ; then ++ MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:${moz_libdir}/plugins:/usr/lib/mozilla/plugins ++else ++ MOZ_PLUGIN_PATH=${moz_libdir}/plugins:/usr/lib/mozilla/plugins ++fi ++export MOZ_PLUGIN_PATH ++ + # Use run-mozilla.sh in the current dir if it exists + # If not, then start resolving symlinks until we find run-mozilla.sh + found=0 diff --git a/source/xap/mozilla-firefox/firefox.png b/source/xap/mozilla-firefox/firefox.png new file mode 100644 index 000000000..76204b5d2 Binary files /dev/null and b/source/xap/mozilla-firefox/firefox.png differ diff --git a/source/xap/mozilla-firefox/mimeTypes.rdf b/source/xap/mozilla-firefox/mimeTypes.rdf new file mode 100644 index 000000000..f3bc7b406 --- /dev/null +++ b/source/xap/mozilla-firefox/mimeTypes.rdf @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + diff --git a/source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff b/source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff new file mode 100644 index 000000000..222113044 --- /dev/null +++ b/source/xap/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff @@ -0,0 +1,45 @@ +diff -Nur mozilla-1.9.1.orig/browser/locales/generic/profile/mimeTypes.rdf mozilla-1.9.1/browser/locales/generic/profile/mimeTypes.rdf +--- mozilla-1.9.1.orig/browser/locales/generic/profile/mimeTypes.rdf 2009-06-29 11:14:41.000000000 -0500 ++++ mozilla-1.9.1/browser/locales/generic/profile/mimeTypes.rdf 2009-07-01 08:28:05.407353867 -0500 +@@ -1,13 +1,28 @@ +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ diff --git a/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild new file mode 100755 index 000000000..22dfb33bd --- /dev/null +++ b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild @@ -0,0 +1,184 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Thanks to the folks at the Mozilla Foundation for permission to +# distribute this, and for all the great work! :-) + +# This is a source build script. Unfortunately, there is no official +# binary tarball available for x86_64 + +VERSION=${VERSION:-3.5.2} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +MOZVERS=${MOZVERS:-1.9.1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Try to be gentle to the compiler, no optimizations: +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mozilla-firefox + +rm -rf $PKG +mkdir -p $TMP $PKG/usr/lib${LIBDIRSUFFIX} + +cd $TMP +rm -rf mozilla-$MOZVERS +tar xvf $CWD/firefox-$VERSION-source.tar.bz2 || exit 1 +cd mozilla-$MOZVERS || exit 1 + +# Fix a long standing bug that's prevented staying current on GTK+. +# Thanks to the BLFS folks. :-) +cat << EOF >> layout/build/Makefile.in + +ifdef MOZ_ENABLE_CANVAS +EXTRA_DSO_LDOPTS += \$(XLDFLAGS) -lX11 -lXrender +endif + +EOF + +# Patch mimeTypes.rdf +# Uncomment this if you want to use the patch; otherwise, we overwrite the +# mimeTypes.rdf inside the package directory later +# zcat $CWD/mozilla-firefox-mimeTypes-fix.diff.gz | patch -p1 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +export MOZILLA_OFFICIAL="1" && +export BUILD_OFFICIAL="1" && +export MOZ_PHOENIX="1" && +export CFLAGS="$SLKCFLAGS" && +export CXXFLAGS="$SLKCFLAGS" && +./configure \ + --enable-official-branding \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION \ + --with-system-zlib \ + --enable-application=browser \ + --enable-default-toolkit=cairo-gtk2 \ + --enable-crypto \ + --enable-svg \ + --enable-canvas \ + --enable-xft \ + --enable-xinerama \ + --enable-optimize \ + --enable-reorder \ + --enable-strip \ + --enable-system-cairo \ + --enable-cpp-rtti \ + --enable-single-profile \ + --disable-ldap \ + --disable-accessibility \ + --disable-debug \ + --disable-tests \ + --disable-logging \ + --disable-pedantic \ + --disable-installer \ + --disable-mailnews \ + --disable-composer \ + --disable-profilesharing + # Complains about missing APNG support in Slackware's libpng: + #--with-system-png \ + +#make -f client.mk build MOZ_MAKE_FLAGS="$NUMJOBS" || exit 1 +make MOZ_MAKE_FLAGS="$NUMJOBS" || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We don't need these (just symlinks anyway): +rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/firefox-devel-$VERSION + +# Nor these: +rm -rf $PKG/usr/include + +( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION + #mv defaults/profile/mimeTypes.rdf defaults/profile/mimeTypes.rdf.orig || exit 1 + zcat $CWD/mimeTypes.rdf > defaults/profile/mimeTypes.rdf || exit 1 + zcat $CWD/firefox.moz_plugin_path.diff.gz \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + | patch -p1 --verbose --backup --suffix=.orig || exit 1 + # Clean up if the above patch was successful: + rm -f firefox.orig +) || exit + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins +mkdir -p $PKG/usr/share/applications +cat $CWD/mozilla-firefox.desktop > $PKG/usr/share/applications/mozilla-firefox.desktop +mkdir -p $PKG/usr/share/pixmaps +cat $CWD/firefox.png > $PKG/usr/share/pixmaps/firefox.png + +# These files/directories are usually created if Firefox is run as root, +# which on many systems might (and possibly should) be never. Therefore, if we +# don't see them we'll put stubs in place to prevent startup errors. +( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION + if [ -d extensions/talkback\@mozilla.org ]; then + if [ ! -r extensions/talkback\@mozilla.org/chrome.manifest ]; then + echo > extensions/talkback\@mozilla.org/chrome.manifest + fi + fi + if [ ! -d updates ]; then + mkdir -p updates/0 + fi +) + +# Need some default icons in the right place: +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/chrome/icons/default +install -m 644 other-licenses/branding/firefox/default16.png \ + $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/icons/ +install -m 644 other-licenses/branding/firefox/default16.png \ + $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/chrome/icons/default/ +( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION + install -m 644 icons/{default,mozicon50}.xpm chrome/icons/default/ +) + +# Copy over the LICENSE +install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$VERSION/ + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mozilla-firefox-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/mozilla-firefox/mozilla-firefox.desktop b/source/xap/mozilla-firefox/mozilla-firefox.desktop new file mode 100644 index 000000000..23be26f3a --- /dev/null +++ b/source/xap/mozilla-firefox/mozilla-firefox.desktop @@ -0,0 +1,80 @@ +[Desktop Entry] +Exec=firefox %u +Icon=firefox +Type=Application +Categories=Network; +Name=Firefox +Name[bn]=ফায়ারফকà§à¦¸ +Name[eo]=Mozilo Fajrovulpo +Name[fi]=Mozilla Firefox +Name[pa]=ਫਾਇਰਫੋਕਸ +Name[tg]=Рӯбоҳи оташин +GenericName=Web Browser +GenericName[af]=Web Blaaier +GenericName[ar]=متصÙØ­ ويب +GenericName[az]=Veb SÉ™yyahı +GenericName[bg]=Браузър +GenericName[bn]=ওয়েব বà§à¦°à¦¾à¦‰à¦œà¦¾à¦° +GenericName[br]=Furcher ar Gwiad +GenericName[bs]=WWW Preglednik +GenericName[ca]=Fullejador web +GenericName[cs]=WWW prohlížeÄ +GenericName[cy]=Porydd Gwe +GenericName[da]=Browser +GenericName[de]=Web-Browser +GenericName[el]=ΠεÏιηγητής Î™ÏƒÏ„Î¿Ï +GenericName[eo]=TTT-legilo +GenericName[es]=Navegador web +GenericName[et]=Veebilehitseja +GenericName[eu]=Web arakatzailea +GenericName[fa]=مرورگر وب +GenericName[fi]=WWW-selain +GenericName[fo]=Alnótsfar +GenericName[fr]=Navigateur web +GenericName[gl]=Navegador Web +GenericName[he]=דפדפן ×ינטרנט +GenericName[hi]=वेब बà¥à¤°à¤¾à¤‰à¤œà¤¼à¤° +GenericName[hr]=Web preglednik +GenericName[hu]=WebböngészÅ‘ +GenericName[is]=Vafri +GenericName[it]=Browser Web +GenericName[ja]=ウェブブラウザ +GenericName[ko]=웹 브ë¼ìš°ì € +GenericName[lo]=ເວັບບຣາວເຊີ +GenericName[lt]=Žiniatinklio narÅ¡yklÄ— +GenericName[lv]=Web PÄrlÅ«ks +GenericName[mk]=ПрелиÑтувач на Интернет +GenericName[mn]=Веб-Хөтөч +GenericName[nb]=Nettleser +GenericName[nds]=Nettkieker +GenericName[nl]=Webbrowser +GenericName[nn]=Nettlesar +GenericName[nso]=Seinyakisi sa Web +GenericName[pa]=ਵੈਬ à¨à¨²à¨•à¨¾à¨°à¨¾ +GenericName[pl]=PrzeglÄ…darka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador Web +GenericName[ro]=Navigator de web +GenericName[ru]=Веб-браузер +GenericName[se]=Fierpmádatlogan +GenericName[sk]=Webový prehliadaÄ +GenericName[sl]=Spletni brskalnik +GenericName[sr]=Веб претраживач +GenericName[sr@Latn]=Veb pretraživaÄ +GenericName[ss]=Ibrawuza yeWeb +GenericName[sv]=Webbläsare +GenericName[ta]=வலை உலாவி +GenericName[tg]=ТафÑиргари вÑб +GenericName[th]=เว็บบราวเซอร์ +GenericName[tr]=Web Tarayıcı +GenericName[uk]=Ðавігатор Тенет +GenericName[uz]=Веб-браузер +GenericName[ven]=Buronza ya Webu +GenericName[vi]=Trình duyệt Web +GenericName[wa]=Betchteu waibe +GenericName[xh]=Umkhangeli zincwadi we Web +GenericName[zh_CN]=网页æµè§ˆå™¨ +GenericName[zh_TW]=網é ç€è¦½å™¨ +GenericName[zu]=Umcingi we-Web +MimeType=text/html; +X-KDE-StartupNotify=true diff --git a/source/xap/mozilla-firefox/slack-desc b/source/xap/mozilla-firefox/slack-desc new file mode 100644 index 000000000..a54bac8f0 --- /dev/null +++ b/source/xap/mozilla-firefox/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mozilla-firefox: mozilla-firefox (Mozilla Firefox Web browser) +mozilla-firefox: +mozilla-firefox: This project is a redesign of the Mozilla browser component written +mozilla-firefox: using the XUL user interface language. Firefox empowers you to +mozilla-firefox: browse faster, more safely and more efficiently than with any other +mozilla-firefox: browser. +mozilla-firefox: +mozilla-firefox: Visit the Mozilla Firefox project online: +mozilla-firefox: http://www.mozilla.org/projects/firefox/ +mozilla-firefox: +mozilla-firefox: diff --git a/source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff b/source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff new file mode 100644 index 000000000..fdf20963d --- /dev/null +++ b/source/xap/mozilla-thunderbird/mozilla-thunderbird-firefox.diff @@ -0,0 +1,11 @@ +--- ./defaults/pref/all-thunderbird.js.orig 2005-10-25 22:03:39.000000000 -0500 ++++ ./defaults/pref/all-thunderbird.js 2005-12-09 16:22:00.000000000 -0600 +@@ -440,3 +440,8 @@ + + // prevent status-bar spoofing even if people are foolish enough to turn on JS + pref("dom.disable_window_status_change", true); ++ ++// Use Firefox as the default for http:// and https:// links ++pref("network.protocol-handler.app.http", "/usr/bin/firefox"); ++pref("network.protocol-handler.app.https", "/usr/bin/firefox"); ++ diff --git a/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild b/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild new file mode 100755 index 000000000..9872927db --- /dev/null +++ b/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild @@ -0,0 +1,141 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Thanks to the folks at the Mozilla Foundation for permission to +# distribute this, and for all the great work! :-) + +VERSION=2.0.0.23 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-Os -march=i486 -mcpu=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-Os" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-Os -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-mozilla-thunderbird + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf mozilla +tar xvf $CWD/thunderbird-$VERSION-source.tar.bz2 || exit 1 +cd mozilla || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +export MOZILLA_OFFICIAL="1" && +export BUILD_OFFICIAL="1" && +export MOZ_CO_PROJECT="mail" && +export CFLAGS="$SLKCFLAGS" && +export CXXFLAGS="$SLKCFLAGS" && +./configure \ + --enable-official-branding \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION \ + --with-user-appdir=.thunderbird \ + --with-system-zlib \ + --with-system-png \ + --enable-application=mail \ + --enable-default-toolkit=gtk2 \ + --enable-crypto \ + --enable-xft \ + --enable-pango \ + --enable-xinerama \ + --enable-optimize \ + --enable-reorder \ + --enable-strip \ + --enable-cpp-rtti \ + --enable-single-profile \ + --enable-ldap \ + --disable-freetype2 \ + --disable-accessibility \ + --disable-debug \ + --disable-tests \ + --disable-logging \ + --disable-pedantic \ + --disable-installer \ + --disable-profilesharing \ + --disable-gnomevfs \ + --disable-gnomeui + +make MOZ_OPT_FLAGS="$SLKCFLAGS" MOZ_MAKE_FLAGS="$NUMJOBS" || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# We do not need 20+ MB of includes: +rm -rf $PKG/usr/include + +( cd $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION + echo "Applying firefox patch" + zcat $CWD/mozilla-thunderbird-firefox.diff.gz | patch -p0 --verbose || exit 1 +) || exit 1 + +mkdir -p $PKG/usr/share/applications +cat $CWD/mozilla-thunderbird.desktop > $PKG/usr/share/applications/mozilla-thunderbird.desktop +mkdir -p $PKG/usr/share/pixmaps +cat $CWD/thunderbird.png > $PKG/usr/share/pixmaps/thunderbird.png + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION/chrome/icons/default/ +install -m 644 other-licenses/branding/thunderbird/default.xpm \ + $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION/chrome/icons/default/ +install -m 644 other-licenses/branding/thunderbird/default.xpm \ + $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION/icons/ + +# These files/directories are usually created if Thunderbird is run as root, +# which on many systems might (and possibly should) be never. Therefore, +# if we don't see them we'll put stubs in place to prevent startup errors. +( cd $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION + if [ -d chrome ]; then + if [ ! -r chrome/app-chrome.manifest ]; then + echo > chrome/app-chrome.manifest + fi + fi + if [ ! -d updates ]; then + mkdir -p updates/0 + fi +) + +# Copy over the LICENSE +install -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/thunderbird-$VERSION + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/mozilla-thunderbird-$VERSION-${ARCH}-$BUILD.txz + diff --git a/source/xap/mozilla-thunderbird/mozilla-thunderbird.desktop b/source/xap/mozilla-thunderbird/mozilla-thunderbird.desktop new file mode 100644 index 000000000..0f85ecbe1 --- /dev/null +++ b/source/xap/mozilla-thunderbird/mozilla-thunderbird.desktop @@ -0,0 +1,84 @@ +[Desktop Entry] +Encoding=UTF-8 +Exec=thunderbird +Icon=/usr/share/pixmaps/thunderbird.png +Type=Application +Categories=Application;Network; +Name=Thunderbird +Name[bn]=থাণà§à¦¡à¦¾à¦°à¦¬à¦¾à¦°à§à¦¡ +Name[eo]=Mozilo Tondrobirdo +Name[fi]=Mozilla Thunderbird +Name[pa]=ਥੰਡਰਬਰਡ +Name[tg]=Паррандаи бало +GenericName=Mail Client +GenericName[af]=Pos Kliënt +GenericName[ar]=البريد الألكتروني +GenericName[az]=Poçt Alıcısı +GenericName[be]=Паштовы кліент +GenericName[bg]=ПощенÑки клиент +GenericName[bn]=ইমেইল কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ +GenericName[br]=Arval postel +GenericName[bs]=Program za Äitanje elektronske poÅ¡te +GenericName[ca]=Client de correu electrònic +GenericName[cs]=Klient pro Ätení elektronické poÅ¡ty +GenericName[cy]=Dibynnydd Ebost +GenericName[da]=E-mail-klient +GenericName[de]=E-Mail-Programm +GenericName[el]=Πελάτης mail +GenericName[eo]=Legi kaj sendi retpoÅton +GenericName[es]=Cliente de correo electrónico +GenericName[et]=Meiliklient +GenericName[eu]=Posta bezeroa +GenericName[fa]=کارگیر پست الکترونیکی +GenericName[fi]=Sähköpostiohjelma +GenericName[fo]=Postforrit +GenericName[fr]=Logiciel de messagerie électronique +GenericName[ga]=Cliant Ríomhphoist +GenericName[gl]=Cliente de correo +GenericName[he]=תוכנית דו×ר +GenericName[hi]=डाकिया +GenericName[hr]=Program za Äitanje elektronske poÅ¡te +GenericName[hu]=LevelezÅ‘program +GenericName[id]=Klien Mail +GenericName[is]=Póstforrit +GenericName[it]=Programma di posta elettronica +GenericName[ja]=メールクライアント +GenericName[ko]=편지를 주고 받는 프로그램 +GenericName[lo]=ໄຄà»à»€àº­àº±àº™àºˆàº»àº”ຫມາàºà»€àº­à»€àº¥àº±àºà»‚ຕນິຠ+GenericName[lt]=PaÅ¡to klientas +GenericName[lv]=Pasta Klients +GenericName[mk]=Програма за електронÑка пошта +GenericName[mn]=Э-Захиа-Програм +GenericName[mt]=Klijent tal-imejl +GenericName[nb]=E-postklient +GenericName[nds]=Mailprogramm +GenericName[nl]=E-mailclient +GenericName[nn]=Lesing og sending av e-post +GenericName[nso]=Moreki wa Poso +GenericName[oc]=Programari de correu electrònic +GenericName[pa]=ਪੱਤਰ ਕਲਾਂਇਟ +GenericName[pl]=Program do wysyÅ‚ania i odbierania poczty elektronicznej +GenericName[pt]=Client de E-mail +GenericName[pt_BR]=Cliente de E-mail +GenericName[ro]=Program de poÅŸtă electronică +GenericName[ru]=Клиент Ñлектронной почты +GenericName[se]=Boastaprográmma +GenericName[sk]=Klient elektronickej poÅ¡ty +GenericName[sl]=Program za e-poÅ¡to +GenericName[sr]=Програм за e-пошту +GenericName[sr@Latn]=Program za e-poÅ¡tu +GenericName[ss]=Likhasimende leliposi +GenericName[sv]=E-postklient +GenericName[ta]=அஞà¯à®šà®²à¯ உறà¯à®ªà¯à®ªà®¿à®©à®°à¯ +GenericName[tg]=Коргири почтаи Ñллектроникӣ +GenericName[th]=ไคลเอนต์จดหมายอิเล็à¸à¸—รอนิà¸à¸ªà¹Œ +GenericName[tr]=Posta Ä°stemcisi +GenericName[uk]=Клієнт електронної пошти +GenericName[uz]=Хат-хабар клиенти +GenericName[ven]=Mushumisani na poso +GenericName[wa]=Cliyint d' emilaedje +GenericName[xh]=Umxhasi Weposi +GenericName[zh_CN]=é‚®ä»¶ç¨‹åº +GenericName[zh_TW]=郵件處ç†ç¨‹å¼ +GenericName[zu]=Umxhasi weposi +X-KDE-StartupNotify=true diff --git a/source/xap/mozilla-thunderbird/slack-desc b/source/xap/mozilla-thunderbird/slack-desc new file mode 100644 index 000000000..353b22253 --- /dev/null +++ b/source/xap/mozilla-thunderbird/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mozilla-thunderbird: mozilla-thunderbird (Mozilla Thunderbird mail application) +mozilla-thunderbird: +mozilla-thunderbird: Mozilla Thunderbird is a redesign of the Mozilla mail component +mozilla-thunderbird: written using the XUL user interface language. Thunderbird makes +mozilla-thunderbird: emailing safer, faster, and easier than ever before with the +mozilla-thunderbird: industry's best implementations of features such as intelligent spam +mozilla-thunderbird: filters, built-in RSS reader, quick search, and much more. +mozilla-thunderbird: +mozilla-thunderbird: Visit the Mozilla Thunderbird project online: +mozilla-thunderbird: http://www.mozilla.org/projects/thunderbird/ +mozilla-thunderbird: diff --git a/source/xap/mozilla-thunderbird/thunderbird.png b/source/xap/mozilla-thunderbird/thunderbird.png new file mode 100644 index 000000000..a6172dcda Binary files /dev/null and b/source/xap/mozilla-thunderbird/thunderbird.png differ diff --git a/source/xap/pan/pan.SlackBuild b/source/xap/pan/pan.SlackBuild new file mode 100755 index 000000000..288b34a7b --- /dev/null +++ b/source/xap/pan/pan.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=pan +VERSION=${VERSION:-0.133} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --localstatedir=/var/lib \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING* INSTALL NEWS README TODO \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/pan/slack-desc b/source/xap/pan/slack-desc new file mode 100644 index 000000000..c4336adbc --- /dev/null +++ b/source/xap/pan/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pan: pan (USENET newsreader) +pan: +pan: This is PAN, a powerful and user-friendly USENET newsreader based on +pan: GTK+2. Pan is the only Unix newsreader to score 100% on the Good +pan: Net-Keeping Seal of Approval newsreader evaluations. +pan: +pan: +pan: +pan: +pan: +pan: diff --git a/source/xap/pidgin/pidgin.SlackBuild b/source/xap/pidgin/pidgin.SlackBuild new file mode 100755 index 000000000..fb7def08f --- /dev/null +++ b/source/xap/pidgin/pidgin.SlackBuild @@ -0,0 +1,192 @@ +#!/bin/sh + +# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=pidgin +VERSION=${VERSION:-2.5.9} +PIDGINENC=${PIDGINENC:-3.0} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Allow certificates signed with rsa-md5: +zcat $CWD/purple-allow-sign-rsa-md5.patch.gz | patch -p0 --verbose || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --enable-dot=no \ + --disable-schemas-install \ + --enable-dbus \ + --enable-gnutls=yes \ + --enable-nss=no \ + --enable-gtkspell \ + --enable-cyrus-sasl \ + --with-perl-lib=vendor \ + --disable-meanwhile \ + --disable-avahi \ + --disable-nm \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Fix misplaced items: +eval $(perl '-V:archlib') +eval $(perl '-V:privlib') +VENDORPERL="$(echo $archlib | sed -e "s/perl5/perl5\/vendor_perl/")" + +find $PKG -type f -name perllocal.pod -exec mv {} $PKG/$VENDORPERL/Pidgin.pod \; +mkdir -p $PKG/usr/man/man3 +find $PKG/usr/share/man -type f -name *.3 -exec mv {} $PKG/usr/man/man3 \; +rm -rf $PKG/usr/share/man +rm -r $PKG$privlib + +# This removes our DESTDIR from the packlist filenames, to keep perl's +# internal inventories consistent and correct. +find $PKG -name .packlist | while read plist ; do + sed -e "s%/share/man%/man%g" \ + -e "s%$PKG%%g" \ + -e "s%\.1$%\.1\.gz%g" \ + -e "s%\.2$%\.2\.gz%g" \ + -e "s%\.3$%\.3\.gz%g" \ + -e "s%\.3pm$%\.3pm\.gz%g" \ + -e "s%\.4$%\.4\.gz%g" \ + -e "s%\.5$%\.5\.gz%g" \ + -e "s%\.6$%\.6\.gz%g" \ + -e "s%\.7$%\.7\.gz%g" \ + -e "s%\.8$%\.8\.gz%g" \ + ${plist} > ${plist}.new + mv -f ${plist}.new ${plist} +done + +### add gaim-encryption +( cd $TMP + rm -rf pidgin-encryption-$PIDGINENC + tar xvf $CWD/pidgin-encryption-$PIDGINENC.tar.gz || exit 1 + cd pidgin-encryption-$PIDGINENC + PIDGIN_CFLAGS="-I${PKG}/usr/include/pidgin" \ + PIDGIN_LIBS="-L${PKG}/usr/lib${LIBDIRSUFFIX}" \ + PURPLE_CFLAGS="-I${PKG}/usr/include/libpurple" \ + PURPLE_LIBS="-L${PKG}/usr/lib${LIBDIRSUFFIX}" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --disable-static \ + --with-nss-includes=/usr/include/seamonkey/nss \ + --with-nspr-includes=/usr/include/seamonkey/nspr \ + --with-nss-libs=/usr/lib${LIBDIRSUFFIX}/seamonkey/ \ + --with-nspr-libs=/usr/lib${LIBDIRSUFFIX}/seamonkey/ \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +) || exit 1 +### end add gaim-encryption + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS COPYING COPYRIGHT HACKING INSTALL NEWS PLUGIN_HOWTO README* doc \ + $PKG/usr/doc/${PKGNAM}-$VERSION +( cd $PKG/usr/doc/${PKGNAM}-$VERSION/doc + rm -f Makefile* *.dox *.1 *.in +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/pidgin/purple-allow-sign-rsa-md5.patch b/source/xap/pidgin/purple-allow-sign-rsa-md5.patch new file mode 100644 index 000000000..d882a6e84 --- /dev/null +++ b/source/xap/pidgin/purple-allow-sign-rsa-md5.patch @@ -0,0 +1,12 @@ +--- libpurple/plugins/ssl/ssl-gnutls.c.old 2008-10-17 18:58:31.000000000 +0200 ++++ libpurple/plugins/ssl/ssl-gnutls.c 2008-10-17 18:53:03.000000000 +0200 +@@ -693,7 +693,8 @@ + (Verisign and possibly others have + root certificates that predate the + current standard) */ +- GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT, ++ GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT ++ | GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5, + &verify); + + if (ret != 0) { diff --git a/source/xap/pidgin/slack-desc b/source/xap/pidgin/slack-desc new file mode 100644 index 000000000..a9aabca14 --- /dev/null +++ b/source/xap/pidgin/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pidgin: pidgin (GTK+ instant messaging program) +pidgin: +pidgin: Pidgin allows you to talk to anyone using a variety of messaging +pidgin: protocols, including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN +pidgin: Messenger, Jabber, Gadu-Gadu, Napster, and Zephyr. These protocols +pidgin: are implemented using a modular, easy to use design. To use a +pidgin: protocol, just load the plugin for it. +pidgin: +pidgin: For more info, see: http://www.pidgin.im +pidgin: +pidgin: diff --git a/source/xap/rdesktop/rdesktop.SlackBuild b/source/xap/rdesktop/rdesktop.SlackBuild new file mode 100755 index 000000000..cbfc14980 --- /dev/null +++ b/source/xap/rdesktop/rdesktop.SlackBuild @@ -0,0 +1,106 @@ +#!/bin/sh + +# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=rdesktop +VERSION=${VERSION:-1.6.0} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Configure: +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-sound=alsa \ + --enable-smartcard \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +# Build and install: +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + COPYING README \ + doc \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/rdesktop/slack-desc b/source/xap/rdesktop/slack-desc new file mode 100644 index 000000000..283da1cdd --- /dev/null +++ b/source/xap/rdesktop/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rdesktop: rdesktop (Remote Desktop Protocol client) +rdesktop: +rdesktop: rdesktop is a client for Remote Desktop Protocol (RDP), used in a +rdesktop: number of Microsoft products including Windows NT Terminal Server, +rdesktop: Windows 2000 Server, Windows XP, and Windows 2003 Server. +rdesktop: +rdesktop: For more information, see: http://www.rdesktop.org +rdesktop: +rdesktop: +rdesktop: +rdesktop: diff --git a/source/xap/rxvt/rxvt.SlackBuild b/source/xap/rxvt/rxvt.SlackBuild new file mode 100755 index 000000000..81d394853 --- /dev/null +++ b/source/xap/rxvt/rxvt.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.7.10 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-rxvt +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf rxvt-$VERSION +tar xvf $CWD/rxvt-$VERSION.tar.bz2 || exit 1 +cd rxvt-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +zcat $CWD/rxvt.utempter.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --enable-languages \ + --enable-utmp \ + --enable-wtmp \ + --enable-xpm-background \ + --enable-transparency \ + --enable-menubar \ + --enable-graphics \ + --enable-rxvt-scroll \ + --enable-next-scroll \ + --enable-xterm-scroll \ + --enable-xim \ + --enable-frills \ + --enable-linespace \ + --enable-24bit \ + --enable-keepscrolling \ + --enable-mousewheel \ + --enable-slipwheeling \ + --enable-xgetdefault \ + --enable-old-selection \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +rmdir $PKG/usr/lib $PKG/usr/include +rm $PKG/usr/bin/rxvt-$VERSION +mkdir -p $PKG/usr/doc/rxvt-$VERSION +cp -a \ + rxvt-$VERSION.lsm doc rclock/rclock.html \ + $PKG/usr/doc/rxvt-$VERSION +rm -r $PKG/usr/doc/rxvt-$VERSION/doc/yodl + +gzip -9 $PKG/usr/man/man1/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/rxvt-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/rxvt/rxvt.utempter.diff b/source/xap/rxvt/rxvt.utempter.diff new file mode 100644 index 000000000..54e06f7af --- /dev/null +++ b/source/xap/rxvt/rxvt.utempter.diff @@ -0,0 +1,277 @@ +--- ./src/logging.c.orig 2002-12-15 16:33:04.000000000 -0800 ++++ ./src/logging.c 2003-06-07 21:08:52.000000000 -0700 +@@ -60,157 +60,7 @@ + void + rxvt_makeutent(rxvt_t *r, const char *pty, const char *hostname) + { +-#ifdef HAVE_STRUCT_UTMP +- struct utmp *ut = &(r->h->ut); +-#endif +-#ifdef HAVE_STRUCT_UTMPX +- struct utmpx *utx = &(r->h->utx); +-#endif +-#ifdef HAVE_UTMP_PID +- int i; +-#endif +- char ut_id[5]; +- struct passwd *pwent = getpwuid(getuid()); +- +- if (!STRNCMP(pty, "/dev/", 5)) +- pty += 5; /* skip /dev/ prefix */ +- +- if (!STRNCMP(pty, "pty", 3) || !STRNCMP(pty, "tty", 3)) { +- STRNCPY(ut_id, (pty + 3), sizeof(ut_id)); +- } +-#ifdef HAVE_UTMP_PID +- else if (sscanf(pty, "pts/%d", &i) == 1) +- sprintf(ut_id, "vt%02x", (i & 0xff)); /* sysv naming */ +-#endif +- else if (STRNCMP(pty, "pty", 3) && STRNCMP(pty, "tty", 3)) { +- rxvt_print_error("can't parse tty name \"%s\"", pty); +- return; +- } +- +-#ifdef HAVE_STRUCT_UTMP +- MEMSET(ut, 0, sizeof(struct utmp)); +-# ifdef HAVE_UTMP_PID +- setutent(); +- STRNCPY(ut->ut_id, ut_id, sizeof(ut->ut_id)); +- ut->ut_type = DEAD_PROCESS; +- getutid(ut); /* position to entry in utmp file */ +- STRNCPY(r->h->ut_id, ut_id, sizeof(r->h->ut_id)); +-# endif +-#endif +- +-#ifdef HAVE_STRUCT_UTMPX +- MEMSET(utx, 0, sizeof(struct utmpx)); +- setutxent(); +- STRNCPY(utx->ut_id, ut_id, sizeof(utx->ut_id)); +- utx->ut_type = DEAD_PROCESS; +- getutxid(utx); /* position to entry in utmp file */ +- STRNCPY(r->h->ut_id, ut_id, sizeof(r->h->ut_id)); +-#endif +- +-#ifdef HAVE_STRUCT_UTMP +- STRNCPY(ut->ut_line, pty, sizeof(ut->ut_line)); +- ut->ut_time = time(NULL); +-# ifdef HAVE_UTMP_PID +- STRNCPY(ut->ut_user, (pwent && pwent->pw_name) ? pwent->pw_name : "?", +- sizeof(ut->ut_user)); +- STRNCPY(ut->ut_id, ut_id, sizeof(ut->ut_id)); +- ut->ut_time = time(NULL); +- ut->ut_pid = r->h->cmd_pid; +-# ifdef HAVE_UTMP_HOST +- STRNCPY(ut->ut_host, hostname, sizeof(ut->ut_host)); +-# endif +- ut->ut_type = USER_PROCESS; +- pututline(ut); +- endutent(); /* close the file */ +- r->h->utmp_pos = -1; +-# else +- STRNCPY(ut->ut_name, (pwent && pwent->pw_name) ? pwent->pw_name : "?", +- sizeof(ut->ut_name)); +-# ifdef HAVE_UTMP_HOST +- STRNCPY(ut->ut_host, hostname, sizeof(ut->ut_host)); +-# endif +-# endif +-#endif +- +-#ifdef HAVE_STRUCT_UTMPX +- STRNCPY(utx->ut_line, pty, sizeof(utx->ut_line)); +- STRNCPY(utx->ut_user, (pwent && pwent->pw_name) ? pwent->pw_name : "?", +- sizeof(utx->ut_user)); +- STRNCPY(utx->ut_id, ut_id, sizeof(utx->ut_id)); +- utx->ut_session = getsid(0); +- utx->ut_tv.tv_sec = time(NULL); +- utx->ut_tv.tv_usec = 0; +- utx->ut_pid = r->h->cmd_pid; +-# ifdef HAVE_UTMPX_HOST +- STRNCPY(utx->ut_host, hostname, sizeof(utx->ut_host)); +-# if 0 +- { +- char *colon; +- +- if ((colon = STRRCHR(ut->ut_host, ':')) != NULL) +- *colon = '\0'; +- } +-# endif +-# endif +- utx->ut_type = USER_PROCESS; +- pututxline(utx); +- endutxent(); /* close the file */ +- r->h->utmp_pos = -1; +-#endif +- +-#if defined(HAVE_STRUCT_UTMP) && !defined(HAVE_UTMP_PID) +- { +- int i; +-# ifdef HAVE_TTYSLOT +- i = ttyslot(); +- if (rxvt_write_bsd_utmp(i, ut)) +- r->h->utmp_pos = i; +-# else +- FILE *fd0; +- +- if ((fd0 = fopen(TTYTAB_FILENAME, "r")) != NULL) { +- char buf[256], name[256]; +- +- buf[sizeof(buf) - 1] = '\0'; +- for (i = 1; (fgets(buf, sizeof(buf) - 1, fd0) != NULL);) { +- if (*buf == '#' || sscanf(buf, "%s", name) != 1) +- continue; +- if (!STRCMP(ut->ut_line, name)) { +- if (!rxvt_write_bsd_utmp(i, ut)) +- i = 0; +- r->h->utmp_pos = i; +- fclose(fd0); +- break; +- } +- i++; +- } +- fclose(fd0); +- } +-# endif +- } +-#endif +- +-#ifdef WTMP_SUPPORT +-# ifdef WTMP_ONLY_ON_LOGIN +- if (r->Options & Opt_loginShell) +-# endif +- { +-# ifdef HAVE_STRUCT_UTMP +-# ifdef HAVE_UPDWTMP +- updwtmp(RXVT_WTMP_FILE, ut); +-# else +- rxvt_update_wtmp(RXVT_WTMP_FILE, ut); +-# endif +-# endif +-# ifdef HAVE_STRUCT_UTMPX +- updwtmpx(RXVT_WTMPX_FILE, utx); +-# endif +- } +-#endif +-#if defined(LASTLOG_SUPPORT) && defined(RXVT_LASTLOG_FILE) +- if (r->Options & Opt_loginShell) +- rxvt_update_lastlog(RXVT_LASTLOG_FILE, pty, hostname); +-#endif ++ addToUtmp(pty, NULL, r->cmd_fd); + } + + /* ------------------------------------------------------------------------- */ +@@ -221,85 +71,7 @@ + void + rxvt_cleanutent(rxvt_t *r) + { +-#ifdef HAVE_STRUCT_UTMP +- struct utmp *tmput, *ut = &(r->h->ut); +-#endif +-#ifdef HAVE_STRUCT_UTMPX +- struct utmpx *tmputx, *utx = &(r->h->utx); +-#endif +- +-#ifdef HAVE_STRUCT_UTMP +-# ifdef HAVE_UTMP_PID +- MEMSET(ut, 0, sizeof(struct utmp)); +- setutent(); +- STRNCPY(ut->ut_id, r->h->ut_id, sizeof(ut->ut_id)); +- ut->ut_type = USER_PROCESS; +- if ((tmput = getutid(ut))) /* position to entry in utmp file */ +- ut = tmput; +- ut->ut_type = DEAD_PROCESS; +-# else +- MEMSET(ut->ut_name, 0, sizeof(ut->ut_name)); +-# ifdef HAVE_UTMP_HOST +- MEMSET(ut->ut_host, 0, sizeof(ut->ut_host)); +-# endif +-# endif +- ut->ut_time = time(NULL); +-#endif +- +-#ifdef HAVE_STRUCT_UTMPX +- MEMSET(utx, 0, sizeof(struct utmpx)); +- setutxent(); +- STRNCPY(utx->ut_id, r->h->ut_id, sizeof(utx->ut_id)); +- utx->ut_type = USER_PROCESS; +- if ((tmputx = getutxid(utx))) /* position to entry in utmp file */ +- utx = tmputx; +- utx->ut_type = DEAD_PROCESS; +- utx->ut_session = getsid(0); +- utx->ut_tv.tv_sec = time(NULL); +- utx->ut_tv.tv_usec = 0; +-#endif +- +- /* +- * Write ending wtmp entry +- */ +-#ifdef WTMP_SUPPORT +-# ifdef WTMP_ONLY_ON_LOGIN +- if (r->Options & Opt_loginShell) +-# endif +- { +-# ifdef HAVE_STRUCT_UTMP +-# ifdef HAVE_UPDWTMP +- updwtmp(RXVT_WTMP_FILE, ut); +-# else +- rxvt_update_wtmp(RXVT_WTMP_FILE, ut); +-# endif +-# endif +-# ifdef HAVE_STRUCT_UTMPX +- updwtmpx(RXVT_WTMPX_FILE, utx); +-# endif +- } +-#endif +- +- /* +- * Write utmp entry +- */ +-#ifdef HAVE_STRUCT_UTMP +-# ifdef HAVE_UTMP_PID +- if (ut->ut_pid == r->h->cmd_pid) +- pututline(ut); +- endutent(); +-# else +- if (r->h->utmp_pos > 0) { +- MEMSET(ut, 0, sizeof(struct utmp)); +- rxvt_write_bsd_utmp(r->h->utmp_pos, ut); +- } +-# endif +-#endif +-#ifdef HAVE_STRUCT_UTMPX +- if (utx->ut_pid == r->h->cmd_pid) +- pututxline(utx); +- endutxent(); +-#endif ++ removeFromUtmp(); + } + + /* ------------------------------------------------------------------------- */ +--- ./src/init.c.orig 2002-12-03 21:21:39.000000000 -0800 ++++ ./src/init.c 2003-06-07 21:09:26.000000000 -0700 +@@ -858,6 +858,7 @@ + rxvt_print_error("aborting"); + exit(EXIT_FAILURE); + } ++ rxvt_privileged_utmp(r, SAVE); + } + + /*----------------------------------------------------------------------*/ +@@ -1364,7 +1365,6 @@ + #endif + r->num_fds++; /* counts from 0 */ + +- rxvt_privileged_utmp(r, SAVE); + return cfd; + } + +--- ./autoconf/Make.common.in.orig 2001-11-29 19:22:56.000000000 -0800 ++++ ./autoconf/Make.common.in 2003-06-07 21:08:52.000000000 -0700 +@@ -68,7 +68,7 @@ + + LIBTOOL = @LIBTOOL@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(DEBUG) $(DINCLUDE) $(XINC) -I$(basedir) -I$(srcdir) -I. +-LINK = $(CC) $(CFLAGS) $(LDFLAGS) ++LINK = $(CC) $(CFLAGS) $(LDFLAGS) -lutempter -lutil + + # End of common section of the Makefile + #------------------------------------------------------------------------- diff --git a/source/xap/rxvt/slack-desc b/source/xap/rxvt/slack-desc new file mode 100644 index 000000000..5f278d61c --- /dev/null +++ b/source/xap/rxvt/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rxvt: rxvt (terminal emulator) +rxvt: +rxvt: rxvt is a color vt102 terminal emulator intended as an xterm +rxvt: replacement for users who do not require features such as Tektronix +rxvt: 4014 emulation and toolkit-style configurability. As a result, rxvt +rxvt: uses much less memory -- a significant advantage on a machine serving +rxvt: many X sessions. Also included is rclock, an analog clock for X. +rxvt: +rxvt: +rxvt: +rxvt: diff --git a/source/xap/sane/dll.conf.additions b/source/xap/sane/dll.conf.additions new file mode 100644 index 000000000..3e06e04d2 --- /dev/null +++ b/source/xap/sane/dll.conf.additions @@ -0,0 +1,3 @@ +# HPLIP backend homepage: http://hplip.sf.net/ +# Uncomment the following line if hplip is installed: +hpaio diff --git a/source/xap/sane/doinst.sh b/source/xap/sane/doinst.sh new file mode 100644 index 000000000..99841064e --- /dev/null +++ b/source/xap/sane/doinst.sh @@ -0,0 +1,15 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +for file in etc/sane.d/*.new ; do + config $file +done diff --git a/source/xap/sane/sane.SlackBuild b/source/xap/sane/sane.SlackBuild new file mode 100755 index 000000000..2d82f09e0 --- /dev/null +++ b/source/xap/sane/sane.SlackBuild @@ -0,0 +1,145 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + +VERSION=1.0.19 +BACKVER=1.0.19 +FRONTVER=1.0.14 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-4} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-sane + +rm -rf $PKG +mkdir -p $TMP $PKG + +# First, we'll build the backends +cd $TMP +rm -rf sane-backends-$BACKVER +tar xvf $CWD/sane-backends-$BACKVER.tar.bz2 || exit 1 +cd sane-backends-$BACKVER +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --with-docdir=/usr/doc/sane-$VERSION \ + --localstatedir=/var/lib \ + --enable-locking \ + --with-lockdir=/var/lock/sane \ + --with-group=scanner \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Add the default udev rules, and until it's handled upstream, +# fix their syntax work with recent versions of udev +mkdir -p $PKG/lib/udev/rules.d +sed s/SYSFS/ATTRS/g tools/udev/libsane.rules \ + > $PKG/lib/udev/rules.d/80-libsane.rules +# Add the hal fdi file +mkdir -p $PKG/usr/share/hal/fdi/policy/10osvendor/ +cat tools/hal/libsane.fdi \ + > $PKG/usr/share/hal/fdi/policy/10osvendor/10-libsane.fdi + +# Now let's build the frontends +cd $TMP +rm -rf sane-frontends-$FRONTVER +tar xvf $CWD/sane-frontends-$FRONTVER.tar.bz2 || exit 1 +cd sane-frontends-$FRONTVER +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --with-docdir=/usr/doc/sane-$VERSION \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Fix stupid permissions: +chown -R root:root $PKG/var +chmod 755 $PKG/var +chmod 1777 $PKG/var/lock +chown root:scanner $PKG/var/lock/sane +chmod 775 $PKG/var/lock/sane + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# List additional backends in /etc/sane.d/dll.conf. +# I don't think it will hurt anything to do this, even +# if these backends turn out not to be available: +zcat $CWD/dll.conf.additions.gz >> $PKG/etc/sane.d/dll.conf + +# Move config files: +( cd $PKG/etc/sane.d + for file in *.conf ; do + mv $file ${file}.new + done +) +rm -f /etc/sane.d/*.conf + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/sane-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/sane/slack-desc b/source/xap/sane/slack-desc new file mode 100644 index 000000000..787dbd6f2 --- /dev/null +++ b/source/xap/sane/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +sane: sane (Scanner Access Now Easy) +sane: +sane: SANE is a universal scanner interface that provides standardized +sane: access to any raster image scanner hardware, such as flatbed scanners, +sane: hand-held scanners, video and still cameras, frame-grabbers, and other +sane: similar devices. +sane: +sane: +sane: +sane: +sane: diff --git a/source/xap/seamonkey/doinst.sh b/source/xap/seamonkey/doinst.sh new file mode 100644 index 000000000..c236bea5c --- /dev/null +++ b/source/xap/seamonkey/doinst.sh @@ -0,0 +1,11 @@ +# If there's no mozilla here, then take over: +if [ ! -r usr/bin/mozilla ]; then + ( cd usr/bin ; ln -sf seamonkey mozilla ) +fi +# Hopefully this won't break everything. ;-) +if ! grep /usr/lib/seamonkey etc/ld.so.conf 1> /dev/null 2> /dev/null ; then + echo "/usr/lib/seamonkey" >> etc/ld.so.conf +fi +if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig 2> /dev/null +fi diff --git a/source/xap/seamonkey/seamonkey-icon.png b/source/xap/seamonkey/seamonkey-icon.png new file mode 100644 index 000000000..824ab7a50 Binary files /dev/null and b/source/xap/seamonkey/seamonkey-icon.png differ diff --git a/source/xap/seamonkey/seamonkey-mail-icon.png b/source/xap/seamonkey/seamonkey-mail-icon.png new file mode 100644 index 000000000..123b077bf Binary files /dev/null and b/source/xap/seamonkey/seamonkey-mail-icon.png differ diff --git a/source/xap/seamonkey/seamonkey-mail.desktop b/source/xap/seamonkey/seamonkey-mail.desktop new file mode 100644 index 000000000..1e0b62b1b --- /dev/null +++ b/source/xap/seamonkey/seamonkey-mail.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=SeaMonkey Mail +Comment=Read Mail with SeaMonkey +Exec=/usr/bin/seamonkey -mail +Icon=/usr/share/pixmaps/seamonkey-mail-icon.png +Terminal=0 +Type=Application +Categories=Application;Network; diff --git a/source/xap/seamonkey/seamonkey.SlackBuild b/source/xap/seamonkey/seamonkey.SlackBuild new file mode 100755 index 000000000..a08695589 --- /dev/null +++ b/source/xap/seamonkey/seamonkey.SlackBuild @@ -0,0 +1,233 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-1.1.17} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-seamonkey +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf mozilla +tar xvf $CWD/seamonkey-${VERSION}.source.tar.xz || exit 1 +cd mozilla || exit 1 + +# Add /usr/lib/mozilla/plugins to MOZ_PLUGINS_PATH: +zcat $CWD/seamonkey.moz_plugin_path.diff.gz \ + | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + | patch -p1 --verbose || exit 1 +rm -f xpfe/bootstrap/mozilla.in.orig + +# Make sure the perms/ownerships are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Fix a long standing bug that's prevented staying current on GTK+. +# Thanks to the BLFS folks. :-) +cat >> layout/build/Makefile.in << EOF + +ifdef MOZ_ENABLE_CANVAS +EXTRA_DSO_LDOPTS += \$(XLDFLAGS) -lX11 -lXrender +endif + +EOF + +chown -R root:root . +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 \ +./configure --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-optimize="$CFLAGS" \ + --disable-debug \ + --with-default-mozilla-five-home=/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} \ + --enable-strip \ + --disable-tests \ + --enable-svg \ + --enable-system-cairo \ + --enable-canvas \ + --disable-short-wchar \ + --enable-nspr-autoconf \ + --enable-extensions=default,irc \ + --enable-crypto \ + --disable-xprint \ + --without-system-nspr \ + --with-system-zlib \ + --with-system-jpeg \ + --with-system-png \ + --with-system-mng \ + --enable-application=suite \ + --enable-xft \ + --host=$ARCH-slackware-linux \ + --target=$ARCH-slackware-linux \ + --build=$ARCH-slackware-linux + +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 make $NUMJOBS -s export || exit 1 +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 make $NUMJOBS -s libs || exit 1 +BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 DESTDIR=$PKG make install || exit 1 + +# Install nss headers. +mkdir -p $PKG/usr/include/seamonkey-${VERSION}/nss +find security/nss/lib -name "*.h" -type f -exec cp -a {} $PKG/usr/include/seamonkey-${VERSION}/nss \; +chown -R root:root $PKG/usr/include/seamonkey-${VERSION}/nss +chmod 644 $PKG/usr/include/seamonkey-${VERSION}/nss/* +# Create a more generic include files symlink: +( cd $PKG/usr/include + if [ ! -e seamonkey ]; then + ln -sf seamonkey-${VERSION} seamonkey + fi +) + +# Let the nspr be found by gxine: +( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig; ln -s seamonkey-nspr.pc nspr.pc ) + +# A Better Way to handle the problem below is simply to add /usr/lib/seamonkey +# to /etc/ld.so.conf. After all, the various Mozilla offshoots all set an +# LD_LIBRARY_PATH to make sure *they* use the right libraries anyway, and as +# far as I know seamonkey has the only set of Mozilla development libraries +# right now. Plus, doing it this way doesn't stomp all over efforts by people +# who would like to use seamonkey-nss-solibs. + +## Link some libraries into /usr/lib. Unless this is done, some things (like gxine) +## will be unable to load them, even if they linked with them successfully. +#( cd $PKG/usr/lib${LIBDIRSUFFIX} && ( for somelib in libmozjs.so libnspr4.so libnss3.so libplc4.so libplds4.so libsmime3.so libsoftokn3.so libssl3.so ; do +# # Link to it: +# ln -sf seamonkey-${VERSION}/$somelib . +# done ) +#) + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Strip files: +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# This remains the standard plugin directory for all browsers. +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins + +# Some software won't compile without this symlink: +( cd $PKG/usr/lib${LIBDIRSUFFIX} + if [ ! -e seamonkey ]; then + ln -sf seamonkey-${VERSION} seamonkey + fi +) + +mkdir -p $PKG/usr/share/applications +cp -a $CWD/*.desktop $PKG/usr/share/applications +chown -R root:root $PKG/usr/share/applications +chmod 644 $PKG/usr/share/applications/* +mkdir -p $PKG/usr/share/pixmaps +cp -a $CWD/*.png $PKG/usr/share/pixmaps +chown -R root:root $PKG/usr/share/pixmaps +chmod 644 $PKG/usr/share/pixmaps/* + +mkdir -p $PKG/usr/doc/seamonkey-$VERSION +cp -a \ + LEGAL LICENSE README.txt \ + $PKG/usr/doc/seamonkey-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \ + > $PKG/install/doinst.sh + +cd $TMP/package-seamonkey +/sbin/makepkg -l y -c n -p $TMP/seamonkey-$VERSION-$ARCH-$BUILD.txz + +# Create a standalone seamonkey-solibs package for RPM, gxine, etc. +rm -r $TMP/package-seamonkey-solibs +mkdir -p $TMP/package-seamonkey-solibs/usr/doc +cp -a $PKG/usr/doc/seamonkey-$VERSION $TMP/package-seamonkey-solibs/usr/doc +mkdir -p $TMP/package-seamonkey-solibs/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} +for file in libfreebl3.chk libfreebl3.so libmozjs.so libnspr4.so libnss3.so \ + libnssckbi.so libplc4.so libplds4.so libsmime3.so libsoftokn3.chk \ + libsoftokn3.so libssl3.so ; do + cp -a $PKG/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION}/$file \ + $TMP/package-seamonkey-solibs/usr/lib${LIBDIRSUFFIX}/seamonkey-${VERSION} +done +mkdir $TMP/package-seamonkey-solibs/install +cat << EOF | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" > $TMP/package-seamonkey-solibs/install/doinst.sh +( cd usr/lib ; rm -rf seamonkey ) +( cd usr/lib ; ln -sf seamonkey-$VERSION seamonkey ) +if ! grep /usr/lib/seamonkey etc/ld.so.conf 1> /dev/null 2> /dev/null ; then + echo "/usr/lib/seamonkey" >> etc/ld.so.conf +fi +if [ -x /sbin/ldconfig ]; then + /sbin/ldconfig 2> /dev/null +fi +EOF +cat << EOF > $TMP/package-seamonkey-solibs/install/slack-desc + |-----handy-ruler------------------------------------------------------| +seamonkey-solibs: seamonkey-solibs (Shared libraries from Seamonkey) +seamonkey-solibs: +seamonkey-solibs: This package contains a subset of the shared libraries from Seamonkey +seamonkey-solibs: to provide runtime support for programs that require nss, nspr, and +seamonkey-solibs: js. These libraries are used in programs like RPM and gxine, and can +seamonkey-solibs: be used in others. This package is built from the Seamonkey sources +seamonkey-solibs: and is provided as a standalone runtime package for people who do not +seamonkey-solibs: want to install the entire seamonkey package (as for server use). +seamonkey-solibs: +seamonkey-solibs: This package is runtime only. The include files and other files for +seamonkey-solibs: development can be found in the seamonkey package. +EOF +cd $TMP/package-seamonkey-solibs +/sbin/makepkg -l y -c n -p $TMP/seamonkey-solibs-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/seamonkey/seamonkey.desktop b/source/xap/seamonkey/seamonkey.desktop new file mode 100644 index 000000000..7c988a769 --- /dev/null +++ b/source/xap/seamonkey/seamonkey.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=SeaMonkey +Comment=Web Browser +Exec=/usr/bin/seamonkey +Icon=/usr/share/pixmaps/seamonkey-icon.png +Terminal=0 +Type=Application +Categories=Application;Network; diff --git a/source/xap/seamonkey/seamonkey.moz_plugin_path.diff b/source/xap/seamonkey/seamonkey.moz_plugin_path.diff new file mode 100644 index 000000000..f967580b6 --- /dev/null +++ b/source/xap/seamonkey/seamonkey.moz_plugin_path.diff @@ -0,0 +1,16 @@ +--- ./xpfe/bootstrap/mozilla.in.orig 2006-08-20 17:44:28.000000000 -0500 ++++ ./xpfe/bootstrap/mozilla.in 2007-02-19 21:25:32.000000000 -0600 +@@ -60,6 +60,13 @@ + MOZ_PIS_SESSION_PID="$$" + MOZ_PIS_USER_DIR="${MOZ_USER_DIR}" + export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR ++ # Include /usr/lib/mozilla/plugins in the plugin path: ++ if [ "$MOZ_PLUGIN_PATH" ] ; then ++ MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:${moz_libdir}/plugins:/usr/lib/mozilla/plugins ++ else ++ MOZ_PLUGIN_PATH=${moz_libdir}/plugins:/usr/lib/mozilla/plugins ++ fi ++ export MOZ_PLUGIN_PATH + + case "${1}" in + "start") diff --git a/source/xap/seamonkey/slack-desc b/source/xap/seamonkey/slack-desc new file mode 100644 index 000000000..978c1d09b --- /dev/null +++ b/source/xap/seamonkey/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +seamonkey: SeaMonkey (an open-source web browser suite) +seamonkey: +seamonkey: The SeaMonkey browser suite. SeaMonkey features a state-of-the-art +seamonkey: web browser and powerful email client, as well as a WYSIWYG web page +seamonkey: composer and a feature-rich IRC chat client. For web developers, +seamonkey: mozilla.org's DOM inspector and JavaScript debugger tools are +seamonkey: included as well. +seamonkey: +seamonkey: Visit the SeaMonkey project at this URL: +seamonkey: http://www.mozilla.org/projects/seamonkey/ +seamonkey: diff --git a/source/xap/seyon/seyon-2.20c.lsm b/source/xap/seyon/seyon-2.20c.lsm new file mode 100644 index 000000000..7eb9dbb99 --- /dev/null +++ b/source/xap/seyon/seyon-2.20c.lsm @@ -0,0 +1,16 @@ +Begin3 +Title: Seyon +Version: 2.20c +Entered-date: 09MAY99 +Description: Seyon is a complete full-featured telecommunications package + for the X Window System. Some of its features are: dialing + directory, scripting language, external file transfer protocol + support, zmodem auto-download, configurable keyboard + translation modes. +Keywords: communication seyon x11 rs232 serial +Author: msaggaf@erl.mit.edu (M. Saggaf) +Maintained-by: stevem@chiark.greenend.org.uk (Steve McIntyre) +Primary-site: sunsite.unc.edu /pub/Linux/apps/serialcomm/dialout + 165 KB seyon-2.20c.tar.gz +Copying-policy: GNU GPL +End diff --git a/source/xap/seyon/seyon.SlackBuild b/source/xap/seyon/seyon.SlackBuild new file mode 100755 index 000000000..656d2ff96 --- /dev/null +++ b/source/xap/seyon/seyon.SlackBuild @@ -0,0 +1,112 @@ +#!/bin/sh + +# Copyright 2002-2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.20c +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-seyon + +rm -rf $PKG +mkdir -p $PKG $PKG +cd $TMP +rm -rf seyon-$VERSION +tar xvf $CWD/seyon-$VERSION.tar.gz || exit 1 +cd seyon-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/seyon_2.20c-16.diff.gz | patch -p1 --verbose || exit 1 + +chmod 755 makever.sh +xmkmf +make || exit 1 + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/X11 +make install DESTDIR=$PKG LIBDIR=/usr/lib${LIBDIRSUFFIX}/X11 || exit 1 + +mkdir -p $PKG/etc/X11/seyon +touch $PKG/etc/X11/seyon/Seyon-modem.new +mkdir -p $PKG/etc/X11/app-defaults +cp Seyon-co.ad $PKG/etc/X11/app-defaults/Seyon-color.new +cp Seyon.ad $PKG/etc/X11/app-defaults/Seyon.new + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/seyon-$VERSION/.seyon +cp -a \ + 1-* COPYING $PKG/usr/doc/seyon-$VERSION +cp -a \ + phonelist protocols script.CIS script.PCBoard script.QWK script.unix startup \ + $PKG/usr/doc/seyon-$VERSION/.seyon +find $PKG/usr/doc/seyon-$VERSION -type f -exec chmod 644 {} \; +find $PKG/usr/doc/seyon-$VERSION -type d -exec chmod 755 {} \; +( cd $PKG/usr/doc/seyon-$VERSION ; ln -sf .seyon HOME.seyon.directory.example ) + +mkdir -p $PKG/usr/man/man1 +cat seyon.man | gzip -9c > $PKG/usr/man/man1/seyon.1.gz + +mkdir -p $PKG/install +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/X11/seyon/Seyon-modem.new +config etc/X11/app-defaults/Seyon.new +config etc/X11/app-defaults/Seyon-color.new + +EOF + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/seyon-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/seyon/seyon_2.20c-16.diff b/source/xap/seyon/seyon_2.20c-16.diff new file mode 100644 index 000000000..536e69cbd --- /dev/null +++ b/source/xap/seyon/seyon_2.20c-16.diff @@ -0,0 +1,5031 @@ +--- seyon-2.20c.orig/Seyon.ad ++++ seyon-2.20c/Seyon.ad +@@ -7,6 +7,8 @@ + ! * statement of rights and permissions for this program. + ! * + ++#include "/etc/X11/seyon/Seyon-modem" ++ + *.title: Seyon Command Center + *.iconName: Seyon + +@@ -259,31 +261,6 @@ + *statusBox.rng.label: RNG + + ! +-! Quick Keys +-! +- +-*quickKeyBox.Command.font: 6x10 +- +-*quickKey1.visible: on +-*quickKey2.visible: on +-*quickKey3.visible: on +-*quickKey4.visible: on +-*quickKey5.visible: on +- +-!*quickKey1.action: DialEntries(1); +-!*quickKey2.action: DialEntries(3); +-!*quickKey3.action: FileTransfer(2, ou*); +-!*quickKey4.action: DivertFile(/tmp/lo); +-!*quickKey5.action: Hangup(); Beep(); +-!RunScript(test1); Echo(ll); +- +-*quickKey1.label: Athena +-*quickKey2.label: Ch1 +-*quickKey3.label: UpMail +-*quickKey4.label: DivMsg +-*quickKey5.label: Local +- +-! + ! Fun messages. Send me more please. + ! + +@@ -302,6 +279,7 @@ + "Have something funny? send it!" \ + "I've fallen and I can't get up!" + +++*showFunMessages: off + *notImplemented*title: Seyon Feature + *notImplemented.dialog.label: \ + This feature is not yet implemented\n\ +--- seyon-2.20c.orig/SeDecl.h ++++ seyon-2.20c/SeDecl.h +@@ -66,7 +66,6 @@ + extern FILE *open_file(), + *open_file_va(); + extern void send_break(), +- usleep(), + show(), + showf(), + SeyonMessage(), +--- seyon-2.20c.orig/1-CHANGES ++++ seyon-2.20c/1-CHANGES +@@ -12,7 +12,6 @@ + Rolled in some obvious bug fixes from the Debian version of 2.14c: + * Fixed typo in Seyon.ad: s/replcae/replace + * Added #include to SePort.c for Linux +- * Minor changes to ExecShellCommand; used to crash, should no more. + * Now under GPL (see 1-COPYING for details), new maintainer. + + Versions up to 2.20b: +--- seyon-2.20c.orig/SeTerm.c ++++ seyon-2.20c/SeTerm.c +@@ -10,7 +10,7 @@ + * This file contains routines for Seyon's terminal. The main routine is + * terminal(), which reads characters from the terminal and sends them to the + * port. That routine also forks a child process that reads characters from +- * the port and writes them to the temrinal. Once the parent receives SIGTERM ++ * the port and writes them to the terminal. Once the parent receives SIGTERM + * (which should be sent by the grand parent), it kills the child and exits. + */ + +--- seyon-2.20c.orig/MultiList.c ++++ seyon-2.20c/MultiList.c +@@ -1031,8 +1031,8 @@ + XfwfMultiListWidget mlw; + int row,column; + { +- GC bg_gc,fg_gc; +- XfwfMultiListItem *item; ++ GC bg_gc,fg_gc = 0; ++ XfwfMultiListItem *item = NULL; + int ul_x,ul_y,str_x,str_y,w,h,item_index,has_item,text_h; + + if (!XtIsRealized((Widget)mlw)) return; +--- seyon-2.20c.orig/SeInit.c ++++ seyon-2.20c/SeInit.c +@@ -34,30 +34,30 @@ + #endif + + extern void TopAbout(), +- TopHelp(), +- TopSet(), +- TopTransfer(), +- TopMisc(), +- SetNewlineTrMode(), +- FunMessage(); ++ TopHelp(), ++ TopSet(), ++ TopTransfer(), ++ TopMisc(), ++ SetNewlineTrMode(), ++ FunMessage(); + + extern void upload_acc_ok(), +- setVal_action_ok(), +- manual_dial_action_ok(), +- divert_action_ok(); ++ setVal_action_ok(), ++ manual_dial_action_ok(), ++ divert_action_ok(); + + extern Boolean CvtStringToStringArray(); + + void HangupConfirm(), +- ExecHangup(), +- ExitConfirm(), +- ExitAction(), +- test(); ++ ExecHangup(), ++ ExitConfirm(), ++ ExitAction(), ++ test(); + + Boolean inhibit_child = False; + Widget w_exit, +- w_kill, +- statusMessage; ++ w_kill, ++ statusMessage; + Widget dialWidget, genericWidget; + pid_t w_child_pid = 0; + Pixmap progIcon; +@@ -66,194 +66,202 @@ + + void + InitVariables(topLevel) +- Widget topLevel; ++ Widget topLevel; + { +- char buffer[REG_BUF]; ++ char buffer[REG_BUF]; + +- sprintf(captureFile, "%s/%s", expand_fname(qres.defaultDirectory, buffer), +- qres.captureFile); ++ expand_fname(qres.defaultDirectory, buffer, REG_BUF); + +- SetNewlineTrMode(qres.newlineTranslation); ++ if(REG_BUF > (1 + strlen(buffer) + strlen(qres.captureFile))) ++ sprintf(captureFile, "%s/%s", buffer, qres.captureFile); ++ else ++ { ++ printf("Buffer overflow in InitVariables: %s/%s\nExit\n",buffer, qres.captureFile); ++ exit(1); ++ } ++ ++ SetNewlineTrMode(qres.newlineTranslation); + } + + void + SetIcon(topLevelWidget) +- Widget topLevelWidget; ++ Widget topLevelWidget; + { +- progIcon = +- XCreateBitmapFromData(XtDisplay(topLevelWidget), +- DefaultRootWindow(XtDisplay(topLevelWidget)), +- progIcon_bits, progIcon_width, +- progIcon_height); +- XtVaSetValues(topLevelWidget, XtNiconPixmap, progIcon, NULL); ++ progIcon = ++ XCreateBitmapFromData(XtDisplay(topLevelWidget), ++ DefaultRootWindow(XtDisplay(topLevelWidget)), ++ progIcon_bits, progIcon_width, ++ progIcon_height); ++ XtVaSetValues(topLevelWidget, XtNiconPixmap, progIcon, NULL); + } + + void + CreateCommandCenter() + { +- void GetQuickKeyResources(), +- GetValueByPopupOKAction(), +- DispatchActionsCallback(); +- void TopShell(); +- void KillChildProc(); +- +- Widget mainBox, +- menuBox, +- statusBox, +- messageBox, +- quickKeyBox; +- static Widget status[NUM_MDM_STAT]; +- static Atom wm_delete_window; +- Dimension menuBoxWidth; +- +- struct _quickKeyRes quickKeyRes; +- Widget quickKeyW; +- char qKBuf[REG_BUF]; +- int i, n = 0; +- +- static XtActionsRec actionTable[] = { +- {"UploadOk", upload_acc_ok}, +- {"SetValOk", setVal_action_ok}, +- {"ManualDialOk", manual_dial_action_ok}, +- {"DivertOk", divert_action_ok}, +- {"Exit", ExitAction}, +- {"GetValueByPopupOK", GetValueByPopupOKAction}, +- }; +- +- XtAppAddActions(XtWidgetToApplicationContext(topLevel), actionTable, +- XtNumber(actionTable)); +- +- mainBox = SeAddPaned("mainBox", topLevel); +- statusBox = AddBox("statusBox", mainBox); +- messageBox = SeAddForm("messageBox", mainBox); +- quickKeyBox = AddBox("quickKeyBox", mainBox); +- menuBox = AddBox("menuBox", mainBox); +- +- status[0] = SeAddToggle("dcd", statusBox, NULL); +- status[1] = SeAddToggle("dtr", statusBox, NULL); +- status[2] = SeAddToggle("dsr", statusBox, NULL); +- status[3] = SeAddToggle("rts", statusBox, NULL); +- status[4] = SeAddToggle("cts", statusBox, NULL); +- status[5] = SeAddToggle("rng", statusBox, NULL); +- +- statusMessage = SeAddLabel("message", messageBox); +- +- AddButton("about", menuBox, TopAbout, NULL); +- AddButton("help", menuBox, TopHelp, NULL); +- AddButton("set", menuBox, TopSet, NULL); +- genericWidget = dialWidget = AddButton("dial", menuBox, TopDial, NULL); +- AddButton("transfer", menuBox, TopTransfer, NULL); +- AddButton("shellCommand", menuBox, TopShell, NULL); +- AddButton("misc", menuBox, TopMisc, NULL); +- AddButton("hangup", menuBox, HangupConfirm, NULL); +- w_exit = AddButton("exit", menuBox, ExitConfirm, NULL); +- w_kill = AddButton("kill", menuBox, KillChildProc, NULL); +- +- for (i = 0; i < MAX_SEQUICKKEYS; i++) { +- sprintf(qKBuf, "quickKey%d", i+1); +- GetQuickKeyResources(qKBuf, &quickKeyRes); +- if (quickKeyRes.visible) { +- n++; ++ void GetQuickKeyResources(), ++ GetValueByPopupOKAction(), ++ DispatchActionsCallback(); ++ void TopShell(); ++ void KillChildProc(); ++ ++ Widget mainBox, ++ menuBox, ++ statusBox, ++ messageBox, ++ quickKeyBox; ++ static Widget status[NUM_MDM_STAT]; ++ static Atom wm_delete_window; ++ Dimension menuBoxWidth; ++ ++ struct _quickKeyRes quickKeyRes; ++ Widget quickKeyW; ++ char qKBuf[LRG_BUF]; ++ int i, n = 0; ++ ++ static XtActionsRec actionTable[] = { ++ {"UploadOk", upload_acc_ok}, ++ {"SetValOk", setVal_action_ok}, ++ {"ManualDialOk", manual_dial_action_ok}, ++ {"DivertOk", divert_action_ok}, ++ {"Exit", ExitAction}, ++ {"GetValueByPopupOK", GetValueByPopupOKAction}, ++ }; ++ ++ XtAppAddActions(XtWidgetToApplicationContext(topLevel), actionTable, ++ XtNumber(actionTable)); ++ ++ mainBox = SeAddPaned("mainBox", topLevel); ++ statusBox = AddBox("statusBox", mainBox); ++ messageBox = SeAddForm("messageBox", mainBox); ++ quickKeyBox = AddBox("quickKeyBox", mainBox); ++ menuBox = AddBox("menuBox", mainBox); ++ ++ status[0] = SeAddToggle("dcd", statusBox, NULL); ++ status[1] = SeAddToggle("dtr", statusBox, NULL); ++ status[2] = SeAddToggle("dsr", statusBox, NULL); ++ status[3] = SeAddToggle("rts", statusBox, NULL); ++ status[4] = SeAddToggle("cts", statusBox, NULL); ++ status[5] = SeAddToggle("rng", statusBox, NULL); ++ ++ statusMessage = SeAddLabel("message", messageBox); ++ ++ AddButton("about", menuBox, TopAbout, NULL); ++ AddButton("help", menuBox, TopHelp, NULL); ++ AddButton("set", menuBox, TopSet, NULL); ++ genericWidget = dialWidget = AddButton("dial", menuBox, TopDial, NULL); ++ AddButton("transfer", menuBox, TopTransfer, NULL); ++ AddButton("shellCommand", menuBox, TopShell, NULL); ++ AddButton("misc", menuBox, TopMisc, NULL); ++ AddButton("hangup", menuBox, HangupConfirm, NULL); ++ w_exit = AddButton("exit", menuBox, ExitConfirm, NULL); ++ w_kill = AddButton("kill", menuBox, KillChildProc, NULL); ++ ++ for (i = 0; i < MAX_SEQUICKKEYS; i++) { ++ sprintf(qKBuf, "quickKey%d", i+1); /* qKBuf is large enough here... */ ++ GetQuickKeyResources(qKBuf, &quickKeyRes); ++ if (quickKeyRes.visible) { ++ n++; + quickKeyW = +- AddButton(qKBuf, quickKeyBox, DispatchActionsCallback, NULL); +- } +- } +- if (n == 0) XtDestroyWidget(quickKeyBox); +- +- XtOverrideTranslations(topLevel, +- XtParseTranslationTable("WM_PROTOCOLS: Exit()")); +- +- /* Call UpdateStatusBox() before realizing the top-level widget so that +- the status widget array in that function would be properly initialized +- before the user is able to call hangup(), since the latter passes NULL +- to UpdateStatusBox() */ +- UpdateStatusBox((XtPointer)status); +- +- XtSetMappedWhenManaged(topLevel, False); +- XtRealizeWidget(topLevel); +- XtVaGetValues(menuBox, XtNwidth, &menuBoxWidth, NULL); +- XtVaSetValues(statusBox, XtNwidth, menuBoxWidth, NULL); +- if (n) XtVaSetValues(quickKeyBox, XtNwidth, menuBoxWidth, NULL); +- +- /* +- * (ideally one should not assume any fixed numbers, but this will do +- * for now). +- * +- * width of message box = label width +- * + 2*border width (2*1) +- * + defaultDistance (right) (1) +- * + horizDistance (left) (4) +- * +- * desired width of label = width of menu box +- * - hSpace of menu box (2*4) (to align with buttons) +- * - border with of label (2*1) +- * = width of menu box - 10 +- * +- * => width of message box = width of menu box - 10 + 7 +- * => width of message box < width of menu box +- * => menu box width is the controlling factor in deciding the widnow +- * width, as desired. +- */ +- XtVaSetValues(statusMessage, XtNresizable, True, NULL); +- XtVaSetValues(statusMessage, XtNwidth, menuBoxWidth - 10, NULL); +- XtVaSetValues(statusMessage, XtNresizable, False, NULL); +- +- wm_delete_window = XInternAtom(XtDisplay(topLevel), +- "WM_DELETE_WINDOW", False); +- XSetWMProtocols(XtDisplay(topLevel), XtWindow(topLevel), +- &wm_delete_window, 1); ++ AddButton(qKBuf, quickKeyBox, DispatchActionsCallback, NULL); ++ } ++ } ++ if (n == 0) XtDestroyWidget(quickKeyBox); ++ ++ XtOverrideTranslations(topLevel, ++ XtParseTranslationTable("WM_PROTOCOLS: Exit()")); ++ ++ /* Call UpdateStatusBox() before realizing the top-level widget so that ++ the status widget array in that function would be properly initialized ++ before the user is able to call hangup(), since the latter passes NULL ++ to UpdateStatusBox() */ ++ UpdateStatusBox((XtPointer)status); ++ ++ XtSetMappedWhenManaged(topLevel, False); ++ XtRealizeWidget(topLevel); ++ XtVaGetValues(menuBox, XtNwidth, &menuBoxWidth, NULL); ++ XtVaSetValues(statusBox, XtNwidth, menuBoxWidth, NULL); ++ if (n) XtVaSetValues(quickKeyBox, XtNwidth, menuBoxWidth, NULL); ++ ++ /* ++ * (ideally one should not assume any fixed numbers, but this will do ++ * for now). ++ * ++ * width of message box = label width ++ * + 2*border width (2*1) ++ * + defaultDistance (right) (1) ++ * + horizDistance (left) (4) ++ * ++ * desired width of label = width of menu box ++ * - hSpace of menu box (2*4) (to align with buttons) ++ * - border with of label (2*1) ++ * = width of menu box - 10 ++ * ++ * => width of message box = width of menu box - 10 + 7 ++ * => width of message box < width of menu box ++ * => menu box width is the controlling factor in deciding the widnow ++ * width, as desired. ++ */ ++ XtVaSetValues(statusMessage, XtNresizable, True, NULL); ++ XtVaSetValues(statusMessage, XtNwidth, menuBoxWidth - 10, NULL); ++ XtVaSetValues(statusMessage, XtNresizable, False, NULL); ++ ++ wm_delete_window = XInternAtom(XtDisplay(topLevel), ++ "WM_DELETE_WINDOW", False); ++ XSetWMProtocols(XtDisplay(topLevel), XtWindow(topLevel), ++ &wm_delete_window, 1); + } + + void + TopAbout(parent) +- Widget parent; ++ Widget parent; + { +- Widget popup, +- mBox, +- uBox, +- lBox, +- pic, +- msg, +- caption; +- Pixmap pix; +- Dimension width1, +- width2; +- char msgStr[LRG_BUF]; ++ Widget popup, ++ mBox, ++ uBox, ++ lBox, ++ pic, ++ msg, ++ caption; ++ Pixmap pix; ++ Dimension width1, ++ width2; ++ char msgStr[LRG_BUF]; + #include "authPic.h" + +- popup = SeAddPopup("about", parent); +- mBox = SeAddPaned("mBox", popup); +- uBox = SeAddBox("uBox", mBox); +- lBox = SeAddBox("lBox", mBox); +- +- msg = SeAddLabel("msg", uBox); +- pic = SeAddLabel("pic", uBox); +- caption = SeAddLabel("caption", uBox); ++ popup = SeAddPopup("about", parent); ++ mBox = SeAddPaned("mBox", popup); ++ uBox = SeAddBox("uBox", mBox); ++ lBox = SeAddBox("lBox", mBox); ++ ++ msg = SeAddLabel("msg", uBox); ++ pic = SeAddLabel("pic", uBox); ++ caption = SeAddLabel("caption", uBox); + +- sprintf(msgStr, "%s %s rev. %s\n%s\n%s\n%s", "Seyon version", VERSION, ++ /* msgStr is big enough here */ ++ sprintf(msgStr, "%s %s rev. %s\n%s\n%s\n%s", "Seyon version", VERSION, + REVISION, "Copyright 1992-1993", "(c) Muhammad M. Saggaf", + "All rights reserved"); +- XtVaSetValues(msg, XtNlabel, msgStr, NULL); ++ XtVaSetValues(msg, XtNlabel, msgStr, NULL); + +- pix = XCreateBitmapFromData(XtDisplay(pic), +- DefaultRootWindow(XtDisplay(pic)), +- authPic_bits, authPic_width, +- authPic_height); +- XtVaSetValues(pic, XtNbitmap, pix, NULL); +- +- width1 = SeWidgetWidth(msg); +- width2 = SeWidgetWidth(pic); +- width1 = width1 > width2 ? width1 : width2; +- width2 = SeWidgetWidth(caption); +- width1 = width1 > width2 ? width1 : width2; +- +- XtVaSetValues(msg, XtNwidth, width1, NULL); +- XtVaSetValues(pic, XtNwidth, width1, NULL); +- XtVaSetValues(caption, XtNwidth, width1, NULL); ++ pix = XCreateBitmapFromData(XtDisplay(pic), ++ DefaultRootWindow(XtDisplay(pic)), ++ authPic_bits, authPic_width, ++ authPic_height); ++ XtVaSetValues(pic, XtNbitmap, pix, NULL); ++ ++ width1 = SeWidgetWidth(msg); ++ width2 = SeWidgetWidth(pic); ++ width1 = width1 > width2 ? width1 : width2; ++ width2 = SeWidgetWidth(caption); ++ width1 = width1 > width2 ? width1 : width2; ++ ++ XtVaSetValues(msg, XtNwidth, width1, NULL); ++ XtVaSetValues(pic, XtNwidth, width1, NULL); ++ XtVaSetValues(caption, XtNwidth, width1, NULL); + +- SeAddButton("dismiss", lBox, DestroyShell); ++ SeAddButton("dismiss", lBox, DestroyShell); + +- XtPopupSpringLoaded(popup); ++ XtPopupSpringLoaded(popup); + } + + /* +@@ -262,151 +270,151 @@ + + void + TopHelp(widget) +- Widget widget; ++ Widget widget; + { +- Widget DoDisplayFile(); +- Widget displayPopup; ++ Widget DoDisplayFile(); ++ Widget displayPopup; + +- XtVaSetValues(widget, XtNsensitive, False, NULL); +- displayPopup = DoDisplayFile(widget, qres.helpFile); +- XtAddCallback(displayPopup, XtNdestroyCallback, SetSensitiveOn, widget); ++ XtVaSetValues(widget, XtNsensitive, False, NULL); ++ displayPopup = DoDisplayFile(widget, qres.helpFile); ++ XtAddCallback(displayPopup, XtNdestroyCallback, SetSensitiveOn, widget); + +- PositionShell(displayPopup, widget, SHELLPOS_HWFH); +- XtPopup(displayPopup, XtGrabNone); ++ PositionShell(displayPopup, widget, SHELLPOS_HWFH); ++ XtPopup(displayPopup, XtGrabNone); + } + + void + ExecHangup() + { +- MdmHangup(); +- SeyonMessage("Line Disconnected"); ++ MdmHangup(); ++ SeyonMessage("Line Disconnected"); + } + + void + DoHangup(widget) +- Widget widget; ++ Widget widget; + { +- DestroyShell(widget); +- ExecHangup(); ++ DestroyShell(widget); ++ ExecHangup(); + } + + void + HangupConfirm(widget) +- Widget widget; ++ Widget widget; + { +- Widget popup, +- dialog; ++ Widget popup, ++ dialog; + +- ErrorIfBusy() ++ ErrorIfBusy() + +- if (qres.hangupConfirm) { +- popup = AddSimplePopup("hangup", widget); +- dialog = SeAddDialog("dialog", popup); ++ if (qres.hangupConfirm) { ++ popup = AddSimplePopup("hangup", widget); ++ dialog = SeAddDialog("dialog", popup); + +- XawDialogAddButton(dialog, "yes", DoHangup, (XtPointer) dialog); +- XawDialogAddButton(dialog, "cancel", DestroyShell, NULL); ++ XawDialogAddButton(dialog, "yes", DoHangup, (XtPointer) dialog); ++ XawDialogAddButton(dialog, "cancel", DestroyShell, NULL); + +- PopupCentered(popup, widget); +- } +- else +- ExecHangup(); ++ PopupCentered(popup, widget); ++ } ++ else ++ ExecHangup(); + } + + void + ExitNoHangup(widget) +- Widget widget; ++ Widget widget; + { +- DestroyShell(widget); +- s_exit(widget); ++ DestroyShell(widget); ++ s_exit(widget); + } + + void + ExitHangup(widget) +- Widget widget; ++ Widget widget; + { +- ExecHangup(); +- ExitNoHangup(widget); ++ ExecHangup(); ++ ExitNoHangup(widget); + } + + void + ExitConfirm(widget) +- Widget widget; ++ Widget widget; + { +- Widget popup, +- dialog; ++ Widget popup, ++ dialog; + +- if (qres.exitConfirm && !qres.ignoreModemDCD && Online()) { +- popup = AddSimplePopup("exit", widget); +- dialog = SeAddDialog("dialog", popup); ++ if (qres.exitConfirm && !qres.ignoreModemDCD && Online()) { ++ popup = AddSimplePopup("exit", widget); ++ dialog = SeAddDialog("dialog", popup); + +- XawDialogAddButton(dialog, "yes", ExitHangup, NULL); +- XawDialogAddButton(dialog, "no", ExitNoHangup, NULL); +- XawDialogAddButton(dialog, "cancel", DestroyShell, NULL); ++ XawDialogAddButton(dialog, "yes", ExitHangup, NULL); ++ XawDialogAddButton(dialog, "no", ExitNoHangup, NULL); ++ XawDialogAddButton(dialog, "cancel", DestroyShell, NULL); + +- PopupCentered(popup, widget); +- } +- else +- s_exit(); ++ PopupCentered(popup, widget); ++ } ++ else ++ s_exit(); + } + + void + ExitAction(widget) +- Widget widget; ++ Widget widget; + { +- Boolean wExitButtonStatus; ++ Boolean wExitButtonStatus; + +- /* Prevent the user from exiting the program by f.delete if exiting +- is not permitted */ +- XtVaGetValues(w_exit, XtNsensitive, &wExitButtonStatus, NULL); +- ReturnIfTrue(!wExitButtonStatus); +- s_exit(); ++ /* Prevent the user from exiting the program by f.delete if exiting ++ is not permitted */ ++ XtVaGetValues(w_exit, XtNsensitive, &wExitButtonStatus, NULL); ++ ReturnIfTrue(!wExitButtonStatus); ++ s_exit(); + } + + void + w_exit_up(w_exit_status) +- Boolean w_exit_status; ++ Boolean w_exit_status; + { +- XtVaSetValues(w_exit, XtNsensitive, w_exit_status, NULL); ++ XtVaSetValues(w_exit, XtNsensitive, w_exit_status, NULL); + } + + void + SetKillButtonSens(killWidgetStatus) +- Boolean killWidgetStatus; ++ Boolean killWidgetStatus; + { +- XtVaSetValues(w_kill, XtNsensitive, killWidgetStatus, NULL); +- w_exit_up(!killWidgetStatus); ++ XtVaSetValues(w_kill, XtNsensitive, killWidgetStatus, NULL); ++ w_exit_up(!killWidgetStatus); + } + + void + w_kill_up(w_kill_status) +- Boolean w_kill_status; ++ Boolean w_kill_status; + { +- SetKillButtonSens(w_kill_status); ++ SetKillButtonSens(w_kill_status); + } + + void + KillChildProc() + { +- if (w_child_pid == 0) return; +- if (kill(w_child_pid, SIGTERM) == 0) w_child_pid = 0; ++ if (w_child_pid == 0) return; ++ if (kill(w_child_pid, SIGTERM) == 0) w_child_pid = 0; + } + + void + GetQuickKeyResources(quickKeyName, quickKeyRes) +- String quickKeyName; +- struct _quickKeyRes *quickKeyRes; ++ String quickKeyName; ++ struct _quickKeyRes *quickKeyRes; + { + #define offset(field) XtOffsetOf(struct _quickKeyRes, field) +- static XtResource resources[] = { +- {"visible", "Visible", XtRBoolean, sizeof(Boolean), +- offset(visible), XtRImmediate, (XtPointer)False}, +- {"action", "Action", XtRString, sizeof(String), +- offset(action), XtRString, (XtPointer)""}, +- }; ++ static XtResource resources[] = { ++ {"visible", "Visible", XtRBoolean, sizeof(Boolean), ++ offset(visible), XtRImmediate, (XtPointer)False}, ++ {"action", "Action", XtRString, sizeof(String), ++ offset(action), XtRString, (XtPointer)""}, ++ }; + #undef offset + +- XtGetSubresources(topLevel, (XtPointer)quickKeyRes, quickKeyName, "Command", +- resources, XtNumber(resources), NULL, 0); ++ XtGetSubresources(topLevel, (XtPointer)quickKeyRes, quickKeyName, "Command", ++ resources, XtNumber(resources), NULL, 0); + } + + void +@@ -414,140 +422,140 @@ + { + #define offset(field) XtOffsetOf(struct QueryResources, field) + +- static XtResource resources[] = { +- {"modems", "Modems", XtRString, sizeof(String), +- offset(modems), XtRString, (XtPointer)""}, +- {"script", "Script", XtRString, sizeof(String), +- offset(script), XtRString, (XtPointer) NULL}, ++ static XtResource resources[] = { ++ {"modems", "Modems", XtRString, sizeof(String), ++ offset(modems), XtRString, (XtPointer)""}, ++ {"script", "Script", XtRString, sizeof(String), ++ offset(script), XtRString, (XtPointer) NULL}, + +- {"defaultBPS", "DefaultBPS", XtRString, sizeof(String), +- offset(defaultBPS), XtRString, (XtPointer) "9600"}, +- {"defaultBits", "DefaultBits", XtRInt, sizeof(int), +- offset(defaultBits), XtRImmediate, (XtPointer) 8}, +- {"defaultParity", "DefaultParity", XtRInt, sizeof(int), +- offset(defaultParity), XtRImmediate, (XtPointer) 0}, +- {"defaultStopBits", "DefaultStopBits", XtRInt, sizeof(int), +- offset(defaultStopBits), XtRImmediate, (XtPointer) 1}, +- {"stripHighBit", "StripHighBit", XtRBoolean, sizeof(Boolean), +- offset(stripHighBit), XtRImmediate, (XtPointer) False}, +- {"backspaceTranslation", "BackspaceTranslation", XtRBoolean, +- sizeof(Boolean), offset(backspaceTranslation), XtRImmediate, +- (XtPointer) False}, +- {"metaKeyTranslation", "MetaKeyTranslation", XtRBoolean, +- sizeof(Boolean), offset(metaKeyTranslation), XtRImmediate, +- (XtPointer) True}, +- {"xonxoffFlowControl", "XonxoffFlowControl", XtRBoolean, +- sizeof(Boolean), offset(xonxoffFlowControl), XtRImmediate, +- (XtPointer) False}, +- {"rtsctsFlowControl", "RtsctsFlowControl", XtRBoolean, +- sizeof(Boolean), offset(rtsctsFlowControl), XtRImmediate, +- (XtPointer) False}, +- {"newlineTranslation", "NewlineTranslation", XtRString, +- sizeof(String), offset(newlineTranslation), XtRImmediate, +- (XtPointer) "cr"}, +- +- {"dialPrefix", "DialPrefix", XtRString, sizeof(String), +- offset(dialPrefix), XtRString, (XtPointer) "ATDT"}, +- {"dialSuffix", "DialSuffix", XtRString, sizeof(String), +- offset(dialSuffix), XtRString, (XtPointer) "^M"}, +- {"dialCancelString", "DialCancelString", XtRString, sizeof(String), +- offset(dialCancelString), XtRString, (XtPointer) "^M"}, +- +- {"dialTimeOut", "DialTimeOut", XtRInt, sizeof(int), +- offset(dialTimeOut), XtRImmediate, (XtPointer) 45}, +- {"dialDelay", "DialDelay", XtRInt, sizeof(int), +- offset(dialDelay), XtRImmediate, (XtPointer) 10}, +- {"dialRepeat", "DialRepeat", XtRInt, sizeof(int), +- offset(dialRepeat), XtRImmediate, (XtPointer) 5}, +- +- {"connectString", "ConnectString", XtRString, sizeof(String), +- offset(connectString), XtRString, (XtPointer) "CONNECT"}, +- {"noConnectString1", "NoConnectString1", XtRString, sizeof(String), +- offset(noConnectString[0]), XtRString, (XtPointer) "NO CARRIER"}, +- {"noConnectString2", "NoConnectString2", XtRString, sizeof(String), +- offset(noConnectString[1]), XtRString, (XtPointer) "NO DIALTONE"}, +- {"noConnectString3", "NoConnectString3", XtRString, sizeof(String), +- offset(noConnectString[2]), XtRString, (XtPointer) "BUSY"}, +- {"noConnectString4", "NoConnectString4", XtRString, sizeof(String), +- offset(noConnectString[3]), XtRString, (XtPointer) "VOICE"}, +- +- {"hangupBeforeDial", "HangupBeforeDial", XtRBoolean, sizeof(Boolean), +- offset(hangupBeforeDial), XtRImmediate, (XtPointer)True}, +- {"dialAutoStart", "DialAutoStart", XtRBoolean, sizeof(Boolean), +- offset(dialAutoStart), XtRImmediate, (XtPointer)False}, +- {"dialDirFormat", "DialDirFormat", XtRString, sizeof(String), +- offset(dialDirFormat), XtRString, +- (XtPointer)"%-15s %-15s %6s %1c%1c%1c %1c%1c %s"}, +- {"defaultPhoneEntries", "DefaultPhoneEntries", XtRString, sizeof(String), +- offset(defaultPhoneEntries), XtRString, (XtPointer)NULL}, +- +- {"startupAction", "StartupAction", XtRString, sizeof(String), +- offset(startupAction), XtRString, +- (XtPointer)"RunScript(startup);"}, +- {"postConnectAction", "PostConnectAction", XtRString, sizeof(String), +- offset(postConnectAction), XtRString, (XtPointer)"Beep();"}, +- +- {"autoZmodem", "AutoZmodem", XtRBoolean, sizeof(Boolean), +- offset(autoZmodem), XtRImmediate, (XtPointer)True}, +- {"autoZmodemAction", "AutoZmodemAction", XtRString, sizeof(String), +- offset(autoZmodemAction), XtRString, +- (XtPointer)"ShellCommand($rz);"}, +- +- {"modemVMin", "ModemVMin", XtRInt, sizeof(int), +- offset(modemVMin), XtRImmediate, (XtPointer) 1}, +- {"ignoreModemDCD", "IgnoreModemDCD", XtRBoolean, sizeof(Boolean), +- offset(ignoreModemDCD), XtRImmediate, (XtPointer) False}, +- {"hangupViaDTR", "HangupViaDTR", XtRBoolean, sizeof(Boolean), +- offset(hangupViaDTR), XtRImmediate, (XtPointer)False}, +- {"modemAttentionString", "ModemAttentionString", XtRString, sizeof(String), +- offset(modemAttentionString), XtRString, (XtPointer)"+++"}, +- {"modemHangupString", "ModemHangupString", XtRString, sizeof(String), +- offset(modemHangupString), XtRString, (XtPointer)"ATH^M"}, +- {"hangupConfirm", "HangupConfirm", XtRBoolean, sizeof(Boolean), +- offset(hangupConfirm), XtRImmediate, (XtPointer) True}, +- {"exitConfirm", "ExitConfirm", XtRBoolean, sizeof(Boolean), +- offset(exitConfirm), XtRImmediate, (XtPointer) True}, +- {"neverBeep", "NeverBeep", XtRBoolean, sizeof(Boolean), +- offset(neverBeep), XtRImmediate, (XtPointer)False}, +- +- {"defaultDirectory", "DefaultDirectory", XtRString, sizeof(String), +- offset(defaultDirectory), XtRString, (XtPointer) "~/.seyon"}, +- {"scriptDirectory", "scriptDirectory", XtRString, sizeof(String), +- offset(scriptDirectory), XtRString, (XtPointer) NULL}, +- {"startupFile", "StartupFile", XtRString, sizeof(String), +- offset(startupFile), XtRString, (XtPointer) "startup"}, +- {"phoneFile", "PhoneFile", XtRString, sizeof(String), +- offset(phoneFile), XtRString, (XtPointer) "phonelist"}, +- {"protocolsFile", "ProtocolsFile", XtRString, sizeof(String), +- offset(protocolsFile), XtRString, (XtPointer) "protocols"}, +- {"captureFile", "CaptureFile", XtRString, sizeof(String), +- offset(captureFile), XtRString, (XtPointer) "capture"}, +- {"helpFile", "HelpFile", XtRString, sizeof(String), +- offset(helpFile), XtRString, (XtPointer) HELPFILE}, +- +- {"modemStatusInterval", "ModemStatusInterval", XtRInt, sizeof(int), +- offset(modemStatusInterval), XtRImmediate, (XtPointer) 5}, +- +- {"idleGuard", "IdleGuard", XtRBoolean, sizeof(Boolean), +- offset(idleGuard), XtRImmediate, (XtPointer) False}, +- {"idleGuardInterval", "IdleGuardInterval", XtRInt, sizeof(int), +- offset(idleGuardInterval), XtRImmediate, (XtPointer) 300}, +- {"idleGuardString", "IdleGuardString", XtRString, sizeof(String), +- offset(idleGuardString), XtRImmediate, (XtPointer) " ^H"}, +- +- {"showFunMessages", "ShowFunMessages", XtRBoolean, sizeof(Boolean), +- offset(showFunMessages), XtRImmediate, (XtPointer) True}, +- {"funMessagesInterval", "FunMessagesInterval", XtRInt, sizeof(int), +- offset(funMessagesInterval), XtRImmediate, (XtPointer) 15}, +- {"funMessages", "FunMessages", XtRStringArray, sizeof(String*), +- offset(funMessages), XtRStringArray, (XtPointer) NULL}, +- }; ++ {"defaultBPS", "DefaultBPS", XtRString, sizeof(String), ++ offset(defaultBPS), XtRString, (XtPointer) "9600"}, ++ {"defaultBits", "DefaultBits", XtRInt, sizeof(int), ++ offset(defaultBits), XtRImmediate, (XtPointer) 8}, ++ {"defaultParity", "DefaultParity", XtRInt, sizeof(int), ++ offset(defaultParity), XtRImmediate, (XtPointer) 0}, ++ {"defaultStopBits", "DefaultStopBits", XtRInt, sizeof(int), ++ offset(defaultStopBits), XtRImmediate, (XtPointer) 1}, ++ {"stripHighBit", "StripHighBit", XtRBoolean, sizeof(Boolean), ++ offset(stripHighBit), XtRImmediate, (XtPointer) False}, ++ {"backspaceTranslation", "BackspaceTranslation", XtRBoolean, ++ sizeof(Boolean), offset(backspaceTranslation), XtRImmediate, ++ (XtPointer) False}, ++ {"metaKeyTranslation", "MetaKeyTranslation", XtRBoolean, ++ sizeof(Boolean), offset(metaKeyTranslation), XtRImmediate, ++ (XtPointer) True}, ++ {"xonxoffFlowControl", "XonxoffFlowControl", XtRBoolean, ++ sizeof(Boolean), offset(xonxoffFlowControl), XtRImmediate, ++ (XtPointer) False}, ++ {"rtsctsFlowControl", "RtsctsFlowControl", XtRBoolean, ++ sizeof(Boolean), offset(rtsctsFlowControl), XtRImmediate, ++ (XtPointer) False}, ++ {"newlineTranslation", "NewlineTranslation", XtRString, ++ sizeof(String), offset(newlineTranslation), XtRImmediate, ++ (XtPointer) "cr"}, ++ ++ {"dialPrefix", "DialPrefix", XtRString, sizeof(String), ++ offset(dialPrefix), XtRString, (XtPointer) "ATDT"}, ++ {"dialSuffix", "DialSuffix", XtRString, sizeof(String), ++ offset(dialSuffix), XtRString, (XtPointer) "^M"}, ++ {"dialCancelString", "DialCancelString", XtRString, sizeof(String), ++ offset(dialCancelString), XtRString, (XtPointer) "^M"}, ++ ++ {"dialTimeOut", "DialTimeOut", XtRInt, sizeof(int), ++ offset(dialTimeOut), XtRImmediate, (XtPointer) 45}, ++ {"dialDelay", "DialDelay", XtRInt, sizeof(int), ++ offset(dialDelay), XtRImmediate, (XtPointer) 10}, ++ {"dialRepeat", "DialRepeat", XtRInt, sizeof(int), ++ offset(dialRepeat), XtRImmediate, (XtPointer) 5}, ++ ++ {"connectString", "ConnectString", XtRString, sizeof(String), ++ offset(connectString), XtRString, (XtPointer) "CONNECT"}, ++ {"noConnectString1", "NoConnectString1", XtRString, sizeof(String), ++ offset(noConnectString[0]), XtRString, (XtPointer) "NO CARRIER"}, ++ {"noConnectString2", "NoConnectString2", XtRString, sizeof(String), ++ offset(noConnectString[1]), XtRString, (XtPointer) "NO DIALTONE"}, ++ {"noConnectString3", "NoConnectString3", XtRString, sizeof(String), ++ offset(noConnectString[2]), XtRString, (XtPointer) "BUSY"}, ++ {"noConnectString4", "NoConnectString4", XtRString, sizeof(String), ++ offset(noConnectString[3]), XtRString, (XtPointer) "VOICE"}, ++ ++ {"hangupBeforeDial", "HangupBeforeDial", XtRBoolean, sizeof(Boolean), ++ offset(hangupBeforeDial), XtRImmediate, (XtPointer)True}, ++ {"dialAutoStart", "DialAutoStart", XtRBoolean, sizeof(Boolean), ++ offset(dialAutoStart), XtRImmediate, (XtPointer)False}, ++ {"dialDirFormat", "DialDirFormat", XtRString, sizeof(String), ++ offset(dialDirFormat), XtRString, ++ (XtPointer)"%-15s %-15s %6s %1c%1c%1c %1c%1c %s"}, ++ {"defaultPhoneEntries", "DefaultPhoneEntries", XtRString, sizeof(String), ++ offset(defaultPhoneEntries), XtRString, (XtPointer)NULL}, ++ ++ {"startupAction", "StartupAction", XtRString, sizeof(String), ++ offset(startupAction), XtRString, ++ (XtPointer)"RunScript(startup);"}, ++ {"postConnectAction", "PostConnectAction", XtRString, sizeof(String), ++ offset(postConnectAction), XtRString, (XtPointer)"Beep();"}, ++ ++ {"autoZmodem", "AutoZmodem", XtRBoolean, sizeof(Boolean), ++ offset(autoZmodem), XtRImmediate, (XtPointer)True}, ++ {"autoZmodemAction", "AutoZmodemAction", XtRString, sizeof(String), ++ offset(autoZmodemAction), XtRString, ++ (XtPointer)"ShellCommand($rz);"}, ++ ++ {"modemVMin", "ModemVMin", XtRInt, sizeof(int), ++ offset(modemVMin), XtRImmediate, (XtPointer) 1}, ++ {"ignoreModemDCD", "IgnoreModemDCD", XtRBoolean, sizeof(Boolean), ++ offset(ignoreModemDCD), XtRImmediate, (XtPointer) False}, ++ {"hangupViaDTR", "HangupViaDTR", XtRBoolean, sizeof(Boolean), ++ offset(hangupViaDTR), XtRImmediate, (XtPointer)False}, ++ {"modemAttentionString", "ModemAttentionString", XtRString, sizeof(String), ++ offset(modemAttentionString), XtRString, (XtPointer)"+++"}, ++ {"modemHangupString", "ModemHangupString", XtRString, sizeof(String), ++ offset(modemHangupString), XtRString, (XtPointer)"ATH^M"}, ++ {"hangupConfirm", "HangupConfirm", XtRBoolean, sizeof(Boolean), ++ offset(hangupConfirm), XtRImmediate, (XtPointer) True}, ++ {"exitConfirm", "ExitConfirm", XtRBoolean, sizeof(Boolean), ++ offset(exitConfirm), XtRImmediate, (XtPointer) True}, ++ {"neverBeep", "NeverBeep", XtRBoolean, sizeof(Boolean), ++ offset(neverBeep), XtRImmediate, (XtPointer)False}, ++ ++ {"defaultDirectory", "DefaultDirectory", XtRString, sizeof(String), ++ offset(defaultDirectory), XtRString, (XtPointer) "~/.seyon"}, ++ {"scriptDirectory", "scriptDirectory", XtRString, sizeof(String), ++ offset(scriptDirectory), XtRString, (XtPointer) NULL}, ++ {"startupFile", "StartupFile", XtRString, sizeof(String), ++ offset(startupFile), XtRString, (XtPointer) "startup"}, ++ {"phoneFile", "PhoneFile", XtRString, sizeof(String), ++ offset(phoneFile), XtRString, (XtPointer) "phonelist"}, ++ {"protocolsFile", "ProtocolsFile", XtRString, sizeof(String), ++ offset(protocolsFile), XtRString, (XtPointer) "protocols"}, ++ {"captureFile", "CaptureFile", XtRString, sizeof(String), ++ offset(captureFile), XtRString, (XtPointer) "capture"}, ++ {"helpFile", "HelpFile", XtRString, sizeof(String), ++ offset(helpFile), XtRString, (XtPointer) HELPFILE}, ++ ++ {"modemStatusInterval", "ModemStatusInterval", XtRInt, sizeof(int), ++ offset(modemStatusInterval), XtRImmediate, (XtPointer) 5}, ++ ++ {"idleGuard", "IdleGuard", XtRBoolean, sizeof(Boolean), ++ offset(idleGuard), XtRImmediate, (XtPointer) False}, ++ {"idleGuardInterval", "IdleGuardInterval", XtRInt, sizeof(int), ++ offset(idleGuardInterval), XtRImmediate, (XtPointer) 300}, ++ {"idleGuardString", "IdleGuardString", XtRString, sizeof(String), ++ offset(idleGuardString), XtRImmediate, (XtPointer) " ^H"}, ++ ++ {"showFunMessages", "ShowFunMessages", XtRBoolean, sizeof(Boolean), ++ offset(showFunMessages), XtRImmediate, (XtPointer) True}, ++ {"funMessagesInterval", "FunMessagesInterval", XtRInt, sizeof(int), ++ offset(funMessagesInterval), XtRImmediate, (XtPointer) 15}, ++ {"funMessages", "FunMessages", XtRStringArray, sizeof(String*), ++ offset(funMessages), XtRStringArray, (XtPointer) NULL}, ++ }; + + #undef offset + +- XtSetTypeConverter(XtRString, XtRStringArray, CvtStringToStringArray, +- NULL, 0, XtCacheNone, NULL); ++ XtSetTypeConverter(XtRString, XtRStringArray, CvtStringToStringArray, ++ NULL, 0, XtCacheNone, NULL); + +- XtGetApplicationResources(topLevel, (XtPointer)&qres, resources, +- XtNumber(resources), NULL, 0); ++ XtGetApplicationResources(topLevel, (XtPointer)&qres, resources, ++ XtNumber(resources), NULL, 0); + } +--- seyon-2.20c.orig/SeDial.c ++++ seyon-2.20c/SeDial.c +@@ -89,7 +89,7 @@ + {XMapRaised(XtDisplay(widget), XtWindow(popup)); return;} + + if (disItems[0] == NULL) { +- strcpy(phoneFile, qres.phoneFile); ++ strncpy(phoneFile, qres.phoneFile, REG_BUF); + if (ReadParsePhoneFile(phoneFile, disItems) < 0) return; + + form = XtParent(widget); +@@ -328,7 +328,7 @@ + Widget dialog = XtParent(widget); + char phoneNumber[SM_BUF]; + +- strcpy(phoneNumber, XawDialogGetValueString(dialog)); ++ strncpy(phoneNumber, XawDialogGetValueString(dialog), SM_BUF); + DestroyShell(dialog); + ExecManualDial(XtParent(GetShell(widget)), phoneNumber); + } +@@ -341,7 +341,7 @@ + inhibit_child = True; + manualDial = True; + +- strcpy(phone_number, phoneNumber); ++ strncpy(phone_number, phoneNumber, SM_BUF); + + dialTry = 1; + PreProcessPrep(); +@@ -442,15 +442,15 @@ + if ((ptr = (char*)strstr(raw, keyword)) != NULL) { + ptr += strlen(keyword); + if (strncmp(ptr, "CURRENT", 3)) { +- strcpy(buf, ptr); ++ strncpy(buf, ptr, REG_BUF); + GetWord(buf, wrd); +- strcpy(var, wrd); ++ strncpy(var, wrd, sizeof(*var)); + } + else +- strcpy(var, "CURRENT"); ++ strncpy(var, "CURRENT", sizeof(*var)); + } + else +- strcpy(var, def); ++ strncpy(var, def, sizeof(*var)); + } + + void +@@ -463,8 +463,8 @@ + char svar[TIN_BUF], + sdef[TIN_BUF]; + +- sprintf(svar, "%d", *var); +- sprintf(sdef, "%d", def); ++ sprintf(svar, "%d", *var); /* safe */ ++ sprintf(sdef, "%d", def); /* safe */ + + GetStrField(raw, keyword, svar, sdef); + +@@ -496,7 +496,7 @@ + else { + signal(SIGALRM, SIG_DFL); + alarm(0); +- strcpy(dialMsg, "TIMEOUT"); ++ strncpy(dialMsg, "TIMEOUT", SM_BUF); + longjmp(dial_env, 1); + } + } +@@ -514,6 +514,8 @@ + *bufPtr, + dialString[REG_BUF]; + int i, ++/* length, */ ++ length_remaining, + k; + + if (setjmp(dial_env) != 0) { +@@ -534,8 +536,8 @@ + if (!manualDial) { + + itemName = ddItems[k]->name; +- sprintf(dialString, "\r%s %s%s", ddItems[k]->prefix, ddItems[k]->number, +- ddItems[k]->suffix); ++ strncpy(dialString, FmtString("\r%s %s%s", ddItems[k]->prefix, ++ ddItems[k]->number, ddItems[k]->suffix), REG_BUF); + + if (mbaud(ddItems[k]->baud) < 0) + se_warningf("invalid BPS value in dialing directory: %s", +@@ -552,14 +554,23 @@ + } + else { + itemName = phone_number; +- sprintf(dialString, "\r%s %s%s", qres.dialPrefix, phone_number, +- qres.dialSuffix); ++ strncpy(dialString, FmtString("\r%s %s%s", qres.dialPrefix, phone_number, ++ qres.dialSuffix), REG_BUF); + } + ++ length_remaining = SM_BUF; + if (dialTry == 1) +- sprintf(dialMsg, "Dialing %s", itemName); ++ { ++ strncpy(dialMsg, "Dialing ", length_remaining); ++ length_remaining -= strlen("Dialing "); ++ strncat(dialMsg, itemName, length_remaining); ++ } + else +- sprintf(dialMsg, "Redialing:%d %s", dialTry, itemName); ++ strncpy(dialMsg, "Redialing ", length_remaining); ++ length_remaining -= strlen("Redialing "); ++ sprintf(dialMsg, "%1.1d ", dialTry); ++ length_remaining -= 2; ++ strncat(dialMsg, itemName, length_remaining); + + ProcRequest(SET_MESSAGE, "Setting Up...", ""); + +@@ -589,7 +600,7 @@ + for (i = 0; i < 3; i++) + if (*(bufPtr = StripSpace(qres.noConnectString[i])) && + strncmp(modemResponse, bufPtr, strlen(bufPtr)) == 0) { +- strcpy(dialMsg, modemResponse); ++ strncpy(dialMsg, modemResponse, SM_BUF); + longjmp(dial_env, 1); + } + } /* while(1)... */ +@@ -601,15 +612,20 @@ + String disItems[]; + { + FILE *fp; ++ FILE *devnull; + String rawItems[MAX_ENT + 1]; + char *buf, + *sHold, + disItemsBuf[REG_BUF]; ++ char filename[LRG_BUF]; + int i, + n, ++ length, + iHold; + +- if ((fp = open_file(fname, qres.defaultDirectory)) == NULL) ++ strncpy(filename, fname, REG_BUF); ++ ++ if ((fp = open_file(filename, REG_BUF, qres.defaultDirectory)) == NULL) + return -1; + + ReadCommentedFile(fp, rawItems); +@@ -623,11 +639,9 @@ + + /* Find the number */ + GetWord(buf, ddItems[i]->number); +-/* strcpy(ddItems[i]->number, GetFirstWord(buf));*/ + + /* Find the name */ + GetWord((buf = lptr), ddItems[i]->name); +-/* strcpy(ddItems[i]->name, GetNextWord());*/ + + /* Find other stuff */ + GetStrField(buf, "BPS=", ddItems[i]->baud, qres.defaultBPS); +@@ -643,8 +657,20 @@ + FreeList(rawItems); + FreeList(disItems); + ++ /* Ick... This is horrible - using a user-provided format string ++ means we have no easy way of limiting string length. HACK HACK ++ HACK Use fprintf to output to /dev/null and count the number of ++ bytes... It would be nice if we could rely on having snprintf() */ ++ ++ devnull = fopen("/dev/null", "r+"); ++ if(NULL == devnull) ++ { ++ printf("Open /dev/null failed!?!\n"); ++ return 1; ++ } ++ + for (n = 0; n < i; n++) { +- sprintf(disItemsBuf, qres.dialDirFormat, ++ length = fprintf(devnull, qres.dialDirFormat, + ddItems[n]->name, + ddItems[n]->number, + strncmp((sHold = ddItems[n]->baud), "CUR", 3) ? sHold : "????", +@@ -658,10 +684,33 @@ + strcmp(sHold, qres.dialSuffix) ? 'S' : 'D' : '?', + ddItems[n]->script); + +- disItemsBuf[SM_BUF - 1] = '\0'; +- disItems[n] = XtNewString(disItemsBuf); ++ if(REG_BUF >= length) ++ { ++ sprintf(disItemsBuf, qres.dialDirFormat, ++ ddItems[n]->name, ++ ddItems[n]->number, ++ strncmp((sHold = ddItems[n]->baud), "CUR", 3) ? sHold : "????", ++ (iHold = ddItems[n]->bits) == 100 ? '?' : itoa(iHold), ++ (iHold = ddItems[n]->parity) ? (iHold == 1 ? 'O' : ++ (iHold == 2 ? 'E' : '?')) : 'N', ++ (iHold = ddItems[n]->stopBits) == 100 ? '?' : itoa(iHold), ++ strncmp((sHold = ddItems[n]->prefix), "CUR", 3) ? ++ strcmp(sHold, qres.dialPrefix) ? 'P' : 'D' : '?', ++ strncmp((sHold = ddItems[n]->suffix), "CUR", 3) ? ++ strcmp(sHold, qres.dialSuffix) ? 'S' : 'D' : '?', ++ ddItems[n]->script); ++ disItemsBuf[SM_BUF - 1] = '\0'; ++ disItems[n] = XtNewString(disItemsBuf); ++ } ++ else ++ { ++ printf("ReadParsePhoneFile: attempted overrun: %s\n",ddItems[n]->name); ++ fclose(devnull); ++ return 1; ++ } + } + disItems[n] = NULL; ++ fclose(devnull); + + return 0; + } +--- seyon-2.20c.orig/SePort.c ++++ seyon-2.20c/SePort.c +@@ -51,7 +51,7 @@ + #ifdef linux + #include + #include +-#include ++/* #include */ + #include + #endif + #endif +@@ -127,20 +127,30 @@ + + void + MdmPutString(s) +- char *s; ++ char *s; + { +- char c; +- +- usleep(MDELAY); +- for (; (c = *s); s++) { +- if (*s == '^' && *(s + 1)) +- if (*(++s) == '^') c = *s; +- else c = *s & 0x1f; ++ char c; + +- if (c == '~') sleep(1); +- else send_tbyte(c); + usleep(MDELAY); +- } ++ for (; (c = *s); s++) ++ { ++ if (*s == '^' && *(s + 1)) ++ { ++ if (*(++s) == '^') ++ { ++ c = *s; ++ } ++ else ++ { ++ c = *s & 0x1f; ++ } ++ } ++ if (c == '~') ++ sleep(1); ++ else ++ send_tbyte(c); ++ usleep(MDELAY); ++ } + } + + void +@@ -150,10 +160,7 @@ + *b, + *c; + { +- char buf[REG_BUF]; +- +- sprintf(buf, fmt, a, b, c); +- MdmPutString(buf); ++ MdmPutString(FmtString(fmt,a,b,c)); + } + + void +@@ -224,7 +231,7 @@ + int newModem; + { + static Boolean useModemControl = True; +- int retStat; ++ int retStat = 0; + + if (newModem) useModemControl = True; + +@@ -350,11 +357,11 @@ + + char * + mport(s) /* get/set port string */ +- char *s; ++ char *s; + { +- if (s != NULL) +- strcpy(modem_port, s); +- return (modem_port); ++ if (s != NULL) ++ strncpy(modem_port, s, sizeof(modem_port)); ++ return (modem_port); + } + + int +@@ -650,6 +657,17 @@ + ser_io.flags |= ASYNC_SPD_VHI; + break; + #endif ++#else ++#ifdef B57600 ++ case 57600: ++ baudrate = B57600; ++ break; ++#endif ++#ifdef B115200 ++ case 115200: ++ baudrate = B115200; ++ break; ++#endif + #endif + default: + return (-1); +@@ -702,6 +720,14 @@ + #endif + #endif + return 38400; ++#ifdef B57600 ++ case B57600: ++ return 57600; ++#endif ++#ifdef B115200 ++ case B115200: ++ return 115200; ++#endif + } + + SeError("Consistency error in baud rate"); +@@ -822,7 +848,7 @@ + modemName, "", "")); + break; + default: +- SeError(FmtString("Unknown Error While Openeong Modem ``%s''", ++ SeError(FmtString("Unknown Error While Opening Modem ``%s''", + modemName, "", "")); + break; + } +@@ -946,16 +972,13 @@ + } + + void +-sendf_slowly(format, a, b, c) +- char *format, ++sendf_slowly(fmt, a, b, c) ++ char *fmt, + *a, + *b, + *c; + { +- char buffer[SM_BUF]; +- +- sprintf(buffer, format, a, b, c); +- send_slowly(buffer); ++ send_slowly(FmtString(fmt,a,b,c)); + } + + void +@@ -989,7 +1012,7 @@ + LockModem(modem) + String modem; + { +- strcpy(modem_port, modem); ++ strncpy(modem_port, modem, REG_BUF); + return lock_tty(); + } + +@@ -1004,50 +1027,82 @@ + int + lock_tty() + { +- int lfd; +- pid_t pid, +- lckpid; +- char *modemname; ++ int lfd; ++ pid_t pid, ++ lckpid; ++ char *modemname; + #if LF_USE_ASCII_PID +- char pidstr[20], +- lckpidstr[20]; +- int nb; ++ char pidstr[20], ++ lckpidstr[20]; ++ int nb; + #endif + #if LF_USE_DEV_NUMBERS +- struct stat mbuf; ++ struct stat mbuf; + #endif + +- /* Get our PID, and initialize the filename strings */ +- pid = getpid(); ++ /* Get our PID, and initialize the filename strings */ ++ pid = getpid(); + + #if !LF_USE_DEV_NUMBERS +- modemname = strrchr(modem_port, '/'); +- sprintf(lckf, "%s/%s%s", LF_PATH, LF_PREFIX, +- (modemname ? (modemname + 1) : modem_port)); ++ modemname = strrchr(modem_port, '/'); ++ if(modemname) ++ { ++ if( SM_BUF > (1 + strlen(LF_PATH) + strlen(LF_PREFIX) + strlen(modemname))) ++ sprintf(lckf, "%s/%s%s", LF_PATH, LF_PREFIX, (modemname + 1)); ++ else ++ { ++ SePErrorF("Buffer too small for lock filename in lock_tty(): %s", modemname, "", ""); ++ return -1; ++ } ++ } ++ else ++ { ++ if( SM_BUF > (1 + strlen(LF_PATH) + strlen(LF_PREFIX) + strlen(modem_port))) ++ sprintf(lckf, "%s/%s%s", LF_PATH, LF_PREFIX, (modem_port)); ++ else ++ { ++ SePErrorF("Buffer too small for lock filename in lock_tty(): %s", modem_port, "", ""); ++ return -1; ++ } ++ } ++ + #else +- if(stat(modem_port, &mbuf) < 0) { +- SePErrorF("could not stat modem port %s", modem_port, "", ""); +- return -1; +- } +- sprintf(lckf,"%s/%s%03u.%03u.%03u", LF_PATH, LF_PREFIX, major(mbuf.st_dev), +- major(mbuf.st_rdev), minor(mbuf.st_rdev)); ++ if(stat(modem_port, &mbuf) < 0) { ++ SePErrorF("could not stat modem port %s", modem_port, "", ""); ++ return -1; ++ } ++ if( SM_BUF > (10 + strlen(LF_PATH) + strlen(LF_PREFIX))) ++ sprintf(lckf,"%s/%s%03u.%03u.%03u", LF_PATH, LF_PREFIX, major(mbuf.st_dev), ++ major(mbuf.st_rdev), minor(mbuf.st_rdev)); ++ else ++ { ++ SePErrorF("Buffer too small for lock filename in lock_tty():", "", "", ""); ++ return -1; ++ } + #endif /* LF_USE_DEV_NUMBERS */ + +- sprintf(ltmp, "%s/%s%d", LF_PATH, "LTMP.", pid); +- /* Create the LTMP. file and scribble our PID in it */ +- unlink(ltmp); +- if ((lfd = creat(ltmp, 0644)) == -1) { +- SePErrorF("Could not create temporary lock file %s", ltmp, "", ""); +- return -1; +- } ++ if( SM_BUF > (11 + strlen(LF_PATH))) ++ sprintf(ltmp, "%s/%s%d", LF_PATH, "LTMP.", pid); ++ else ++ { ++ SePErrorF("Buffer too small for ltmp filename in lock_tty():", "", "", ""); ++ return -1; ++ } ++ /* Create the LTMP. file and scribble our PID in it */ ++ unlink(ltmp); ++ if ((lfd = creat(ltmp, 0644)) == -1) { ++ SePErrorF("Could not create temporary lock file %s", ltmp, "", ""); ++ return -1; ++ } + + #if LF_USE_ASCII_PID +- sprintf(pidstr, "%10d\n", pid); +- write(lfd, pidstr, 11); ++ /* pidstr is easily large enough */ ++ sprintf(pidstr, "%10d\n", pid); ++ write(lfd, pidstr, 11); + #else +- write(lfd, (char*)&pid, sizeof(pid)); ++ write(lfd, (char*)&pid, sizeof(pid)); + #endif +- close(lfd); ++ close(lfd); + + /* + * Attempt to link directly - if it works, we're done. +--- seyon-2.20c.orig/protocols ++++ seyon-2.20c/protocols +@@ -6,7 +6,7 @@ + # you have to use the resources + # zmodemAutoDownload and + # zmodemAutoDownloadCommand for that. +-# see the manula page for more details. ++# see the manual page for more details. + + # the format is simple. + +@@ -24,9 +24,9 @@ + + # you can put comments on a single line + # or at the end of a line +- +-regular_zmodem_dl "$ cd /usr/dl; rz -vv" n # like in here +- ++# ++#regular_zmodem_dl "$ cd /usr/dl; rz -vv" n # like in here ++# + # blank lines are OK too, for readability. + + # the title has to be either a single word, like the above +@@ -34,21 +34,29 @@ + + # you put anything instead of y as long as it starts + # with y: y, Y, yes, yep ..etc. +- +-"regular zmodem ul" "$ cd /usr/src; sz -vv" y +- ++# ++#"regular zmodem ul" "$ cd /usr/src; sz -vv" y ++# + # anything that doesn't start with a y is a no + # e.g. n, N, NO, Not, nope, nien, nono ..etc. + # even hello, but the use of words that doesn't start + # with n is highly discouraged +- +-graphic_zmodem_dl "cd /usr/dl; grz No +-xrz3D "$cd /usr/dl; xrz" NO +- ++# ++#graphic_zmodem_dl "cd /usr/dl; grz No ++#xrz3D "$cd /usr/dl; xrz" NO ++# + # here is my own protocols file + # notice how I make it clear to myself + # whether I'm uploading or downloading +- +-"SEND - Zmodem" "$cd /usr/src; sz -vv" y +-"RECEIVE - Reg. Zmodem" "$cd /usr/dl; rz -vv" n +-"RECEIVE - Xrz3D" "$cd /usr/dl; xrz" n ++# ++#"SEND - Zmodem" "$cd /usr/src; sz -vv" y ++#"RECEIVE - Reg. Zmodem" "$cd /usr/dl; rz -vv" n ++#"RECEIVE - Xrz3D" "$cd /usr/dl; xrz" n ++ ++"Zmodem - RECEIVE" "$lrz" n ++"Ymodem - RECEIVE" "$lrb" n ++"Xmodem - RECEIVE" "$lrx" y ++ ++"Zmodem - SEND" "$lsz" y ++"Ymodem - SEND" "$lsb" y ++"Xmodem - SEND" "$lsx" y +--- seyon-2.20c.orig/SeErr.c ++++ seyon-2.20c/SeErr.c +@@ -107,28 +107,26 @@ + + #ifdef notdef + void +-SePopupWarningF(parent, fmt, a, b, c, d) ++SePopupWarningF(parent, fmt, a, b, c) + Widget parent; + String fmt, + a, + b, +- c, +- d; ++ c; + { + SePopupNoticeF(parent, 0, "Seyon Warning", DestroyParentPopup, +- fmt, a, b, c, d); ++ fmt, a, b, c); + } + + void +-SePopupInitWarningF(parent, fmt, a, b, c, d) ++SePopupInitWarningF(parent, fmt, a, b, c) + Widget parent; + String fmt, + a, + b, +- c, +- d; ++ c; + { + SePopupNoticeF(parent, 0, "Seyon Initialization Warning", +- DestroyParentPopup, fmt, a, b, c, d); ++ DestroyParentPopup, fmt, a, b, c); + } + #endif +--- seyon-2.20c.orig/SeSubs.c ++++ seyon-2.20c/SeSubs.c +@@ -45,9 +45,9 @@ + + void + toggle_flag(flag) +- Boolean *flag; ++ Boolean *flag; + { +- *flag = !*flag; ++ *flag = !*flag; + } + + /* +@@ -56,10 +56,10 @@ + + void + show(msg) +- char *msg; ++ char *msg; + { +- fprintf(tfp, "%s\r\n", msg); +- fflush(tfp); ++ fprintf(tfp, "%s\r\n", msg); ++ fflush(tfp); + } + + /* +@@ -68,105 +68,96 @@ + + void + showf(fmt, a, b, c) +- char *fmt, +- *a, +- *b, +- *c; ++ char *fmt, ++ *a, ++ *b, ++ *c; + { +- fprintf(tfp, fmt, a, b, c); +- fprintf(tfp, "\r\n"); ++ fprintf(tfp, fmt, a, b, c); ++ fprintf(tfp, "\r\n"); + } + + void + SeError(msg) +- char *msg; ++ char *msg; + { +- char buf[REG_BUF]; ++ char buf[REG_BUF]; + +- sprintf(buf, "\r>> Error: %s.", msg); +- show(buf); ++ strncpy(buf, "\r>> Error: ",REG_BUF); ++ strncat(buf, msg, REG_BUF-12); ++ buf[REG_BUF - 1] = 0; /* Null-terminate to be sure */ ++ show(buf); + } + + void + SeErrorF(fmt, a, b, c) +- char *fmt, +- *a, +- *b, +- *c; ++ char *fmt, ++ *a, ++ *b, ++ *c; + { +- char buf[REG_BUF]; +- +- sprintf(buf, fmt, a, b, c); +- SeError(buf); ++ SeError(FmtString(fmt, a, b, c)); + } + + void + se_warning(msg) +- char *msg; ++ char *msg; + { +- char buf[REG_BUF]; ++ char buf[REG_BUF]; + +- sprintf(buf, "\r>> Warning: %s.", msg); +- show(buf); ++ strncpy(buf, "\r>> Warning: ",REG_BUF); ++ strncat(buf, msg, REG_BUF-14); ++ buf[REG_BUF - 1] = 0; /* Null-terminate to be sure */ ++ show(buf); + } + + void + se_warningf(fmt, a, b, c) +- char *fmt, +- *a, +- *b, +- *c; ++ char *fmt, ++ *a, ++ *b, ++ *c; + { +- char buf[REG_BUF]; +- +- sprintf(buf, fmt, a, b, c); +- se_warning(buf); ++ se_warning(FmtString(fmt, a, b, c)); + } + + void + SeNotice(msg) +- char *msg; ++ char *msg; + { +- char buf[REG_BUF]; ++ char buf[REG_BUF]; + +- sprintf(buf, "\r>> Notice: %s.", msg); +- show(buf); ++ strncpy(buf, "\r>> Notice: ",REG_BUF); ++ strncat(buf, msg, REG_BUF-13); ++ buf[REG_BUF - 1] = 0; /* Null-terminate to be sure */ ++ show(buf); + } + + void + SeNoticeF(fmt, a, b, c) +- char *fmt, +- *a, +- *b, +- *c; ++ char *fmt, ++ *a, ++ *b, ++ *c; + { +- char buf[REG_BUF]; +- +- sprintf(buf, fmt, a, b, c); +- SeNotice(buf); ++ SeNotice(FmtString(fmt, a, b, c)); + } + + void + SePError(msg) +- char *msg; ++ char *msg; + { +- char buf[REG_BUF]; +- +- sprintf(buf, "%s: %s", msg, strerror(errno)); +- SeError(buf); ++ SeError(FmtString("%s: %s",msg,strerror(errno))); + } + + void + SePErrorF(fmt, a, b, c) +- char *fmt, +- *a, +- *b, +- *c; ++ char *fmt, ++ *a, ++ *b, ++ *c; + { +- char buf[REG_BUF]; +- +- sprintf(buf, fmt, a, b, c); +- SePError(buf); ++ SePError(FmtString(fmt,a,b,c)); + } + + /* ------------------------------------------------------------ +@@ -180,12 +171,12 @@ + int + SeFork() + { +- pid_t pid; ++ pid_t pid; + +- if ((pid = fork()) < 0) +- SePError("Faild to fork process"); ++ if ((pid = fork()) < 0) ++ SePError("Faild to fork process"); + +- return pid; ++ return pid; + } + + /* +@@ -194,119 +185,119 @@ + + void + ShellCommandHandler(sig, fio_p) +- int sig; +- XtPointer fio_p; ++ int sig; ++ XtPointer fio_p; + { +- void PostExecPrep(); ++ void PostExecPrep(); + +- if (wait((int*)0) < 0) SePError("ShellCommand wait failed"); +- XoAppIgnoreSignal(app_con, SIGCHLD); ++ if (wait((int*)0) < 0) SePError("ShellCommand wait failed"); ++ XoAppIgnoreSignal(app_con, SIGCHLD); + +- set_tty_mode(); +- set_modem_fio(*(int *)fio_p); ++ set_tty_mode(); ++ set_modem_fio(*(int *)fio_p); + +- SeyonMessage("Shell Command Completed"); +- PostExecPrep(); +- inhibit_child = False; ++ SeyonMessage("Shell Command Completed"); ++ PostExecPrep(); ++ inhibit_child = False; + } + + void + ShellCommand(command) +- char *command; ++ char *command; + { +- ExecShellCommand(command, 1); ++ ExecShellCommand(command, 1); + } + + void + ExecShellCommand(command, top) +- char *command; +- int top; ++ char *command; ++ int top; + { +- static char *shell = NULL; +- char cmd[REG_BUF], +- *scmd; +- static int fio=0; +- pid_t forkRes; +- +- if (command == NULL) return; +- +- if (shell == NULL) { +- shell = (char*)getenv("SHELL"); +- if (!shell) shell = "/bin/sh"; +- } +- +- if (top) PreExecPrep(); +- +- io_set_attr(tfd, &oldmode); +- fio = get_modem_fio(); +- +- if (top) +- XoAppAddSignal(app_con, SIGCHLD, ShellCommandHandler, (XtPointer)&fio); +- else signal(SIGCHLD, SIG_IGN); +- +- forkRes = SeFork(); +- if (forkRes == 0) { +- scmd = str_stripspc_copy(cmd, command); +- +- show(""); +- +- if (*scmd == '$') { +- SeNotice("Redirecting stdin/stdout"); +- mattach(); /* Attach modem to stdin/stdout */ +- scmd++; ++ static char *shell = NULL; ++ char cmd[REG_BUF], ++ *scmd; ++ static int fio=0; ++ pid_t forkRes; ++ ++ if (command == NULL) return; ++ ++ if (shell == NULL) { ++ shell = (char*)getenv("SHELL"); ++ if (!shell) shell = "/bin/sh"; + } + +- if (setuid(getuid()) < 0) +- SePError("Failed to set effective uid"); ++ if (top) PreExecPrep(); + +- if (*scmd == CNULL) { +- SeNotice(FmtString1("Executing the shell `%s'", shell)); +- execl(shell, shell, (char*)NULL); +- SeError(FmtString1("Execution of the shell `%s' failed", shell)); +- exit(1); +- } ++ io_set_attr(tfd, &oldmode); ++ fio = get_modem_fio(); ++ ++ if (top) ++ XoAppAddSignal(app_con, SIGCHLD, ShellCommandHandler, (XtPointer)&fio); ++ else signal(SIGCHLD, SIG_IGN); ++ ++ forkRes = SeFork(); ++ if (forkRes == 0) { ++ scmd = str_stripspc_copy(cmd, command); ++ ++ show(""); ++ ++ if (*scmd == '$') { ++ SeNotice("Redirecting stdin/stdout"); ++ mattach(); /* Attach modem to stdin/stdout */ ++ scmd++; ++ } ++ ++ if (setuid(getuid()) < 0) ++ SePError("Failed to set effective uid"); ++ ++ if (*scmd == CNULL) { ++ SeNotice(FmtString1("Executing the shell `%s'", shell)); ++ execl(shell, shell, (char*)NULL); ++ SeError(FmtString1("Execution of the shell `%s' failed", shell)); ++ exit(1); ++ } + +- SeNotice(FmtString1("Executing the command `%s'", scmd)); +- execl(shell, shell, "-c", scmd, (char*)NULL); +- SePError(FmtString1("Execution of the command `%s' failed", scmd)); +- exit(1); +- } +- else if (forkRes > 0) { +- if (top) inhibit_child = True; +- else { ++ SeNotice(FmtString1("Executing the command `%s'", scmd)); ++ execl(shell, shell, "-c", scmd, (char*)NULL); ++ SePError(FmtString1("Execution of the command `%s' failed", scmd)); ++ exit(1); ++ } ++ else if (forkRes > 0) { ++ if (top) inhibit_child = True; ++ else { + wait((int*)0); /* Wait for the child process to terminate */ + set_tty_mode(); + set_modem_fio(fio); +- } +- } /* if (forkRes == 0)... */ ++ } ++ } /* if (forkRes == 0)... */ + } + + void + PreProcessPrep() + { +- SuspContTerminal(TERM_SUSPEND); +- SetKillButtonSens(True); ++ SuspContTerminal(TERM_SUSPEND); ++ SetKillButtonSens(True); + } + + void + PostProcessPrep() + { +- SuspContTerminal(TERM_CONTINUE); +- SetKillButtonSens(False); ++ SuspContTerminal(TERM_CONTINUE); ++ SetKillButtonSens(False); + } + + void + PreExecPrep() + { +- SuspContTerminal(0); +- w_exit_up(False); ++ SuspContTerminal(0); ++ w_exit_up(False); + } + + void + PostExecPrep() + { +- SuspContTerminal(1); +- w_exit_up(True); ++ SuspContTerminal(1); ++ w_exit_up(True); + } + + /* +@@ -318,33 +309,34 @@ + */ + + char * +-expand_fname(fname, buffer) +- char *fname, +- *buffer; +-{ +- char *home, +- *buf, +- name[REG_BUF]; +- int i; +- +- str_stripspc_copy(name, fname); +- buf = buffer; +- +- for (i = 0; name[i]; i++) { +- if (name[i] == '~') { +- if ((home = (char *) getenv("HOME")) == NULL) +- return NULL; +- strcpy(buf, home); +- buf += strlen(home); ++expand_fname(fname, buffer, size) ++ char *fname, ++ *buffer; ++ int size; ++{ ++ char *home, ++ *buf, ++ name[REG_BUF]; ++ int i; ++ ++ str_stripspc_copy(name, fname); ++ buf = buffer; ++ ++ for (i = 0; (name[i] && (buffer+REG_BUF > buf)); i++) { ++ if (name[i] == '~') { ++ if ((home = (char *) getenv("HOME")) == NULL) ++ return NULL; ++ strncpy(buf, home, size); ++ buf += strlen(home); ++ } ++ else { ++ *buf = name[i]; ++ buf++; ++ } + } +- else { +- *buf = name[i]; +- buf++; +- } +- } +- *buf = '\0'; ++ *buf = '\0'; + +- return buffer; ++ return buffer; + } + + /* +@@ -353,11 +345,12 @@ + */ + + FILE* +-open_file(fname, directory) +- char *fname, +- *directory; ++open_file(fname, size, directory) ++ char *fname; ++ int size; ++ char *directory; + { +- return open_file_va(fname, directory, NULL); ++ return open_file_va(fname, size, directory, NULL); + } + + /* +@@ -365,120 +358,79 @@ + */ + + FILE* +-open_file_va(fname, dir1, dir2) +- char *fname, +- *dir1, +- *dir2; +-{ +- FILE *fp; +- char name[REG_BUF], +- fullname[REG_BUF], +- buffer[REG_BUF]; +- +- str_stripspc_copy(name, fname); +- +- if (dir1) { +- sprintf(fullname, "%s/%s", expand_fname(dir1, buffer), name); +- +- if ((fp = fopen(fullname, "r")) != NULL) { +- strcpy(fname, fullname); +- return fp; +- } +- +- if (dir2) { +- sprintf(fullname, "%s/%s", expand_fname(dir2, buffer), name); ++open_file_va(fname, size, dir1, dir2) ++ char *fname; ++ int size; ++ char *dir1, ++ *dir2; ++{ ++ FILE *fp; ++ char *fullname, ++ name[REG_BUF], ++ buffer[REG_BUF]; ++ ++ str_stripspc_copy(name, fname); ++ ++ if (dir1) { ++ fullname = FmtString("%s/%s", expand_fname(dir1, buffer, REG_BUF), name, ""); ++ if ((fp = fopen(fullname, "r")) != NULL) { ++ strncpy(fname, fullname, size); ++ return fp; ++ } + +- if ((fp = fopen(fullname, "r")) != NULL) { +- strcpy(fname, fullname); +- return fp; +- } ++ if (dir2) { ++ fullname = FmtString("%s/%s", expand_fname(dir2, buffer, REG_BUF), name, ""); ++ if ((fp = fopen(fullname, "r")) != NULL) { ++ strncpy(fname, fullname, size); ++ return fp; ++ } ++ } ++ } /* if (dir1)... */ ++ ++ if ((fp = fopen(name, "r")) != NULL) { ++ strncpy(fname, name, REG_BUF); ++ return fp; + } +- } /* if (dir1)... */ +- +- if ((fp = fopen(name, "r")) != NULL) { +- strcpy(fname, name); +- return fp; +- } + +- SeErrorF("/OFV/ Could not open the file `%s'", name, "", ""); +- if (dir1) { +- SeNoticeF("Tried the default directory `%s'", dir1, "", ""); +- if (dir2) +- SeNoticeF("Tried the default directory `%s'", dir2, "", ""); +- } +- SeNotice("Tried the current directory"); ++ SeErrorF("/OFV/ Could not open the file `%s'", name, "", ""); ++ if (dir1) { ++ SeNoticeF("Tried the default directory `%s'", dir1, "", ""); ++ if (dir2) ++ SeNoticeF("Tried the default directory `%s'", dir2, "", ""); ++ } ++ SeNotice("Tried the current directory"); + +- return NULL; ++ return NULL; + } + + /* +- * another implementation of the above using varargs, currently not used +- */ +- +-/*FILE *open_file_va(args) +- va_list args; +- va_decl +-{ +- FILE *fp; +- char *name, *dir, fullname[REG_BUF]; +- char buffer[REG_BUF]; +- +- va_start(args); +- name = va_arg(args, char *); +- +- if (fp = fopen(name, "r")) +- return fp; +- +- while(dir = va_arg(args, char *)) +- { +- sprintf(fullname, "%s/%s", expand_fname(SSpc(dir), buffer), name); +- +- if (fp = fopen(fullname, "r")) +- return fp; +- } +- +- va_end(args); +- +- if (dir = (char *) getenv("HOME")) { +- sprintf(fullname, "%s/%s", dir, name); +- +- if (fp = fopen(fullname, "r")) +- return fp; +- } +- +- showf("<< Seyon: file '%s' not in current, default, or home directory >>", +- name, "", ""); +- return NULL; +-}*/ +- +-/* + * read a file into a buffer + */ + + void + read_file(fp, line) +- FILE *fp; +- char *line[]; ++ FILE *fp; ++ char *line[]; + { +- char buffer[REG_BUF + 1]; +- int i; ++ char buffer[REG_BUF + 1]; ++ int i; + +- for (i = 0; i < MAX_ENT && fgets(buffer, REG_BUF, fp) != NULL; i++) +- line[i] = strcpy((char *)malloc(sizeof(buffer)), SSpc(buffer)); +- line[i] = NULL; ++ for (i = 0; i < MAX_ENT && fgets(buffer, REG_BUF, fp) != NULL; i++) ++ line[i] = strcpy((char *)malloc(sizeof(buffer)), SSpc(buffer)); ++ line[i] = NULL; + } + + /* +- * similar to the above, but closes the file after readsing it ++ * similar to the above, but closes the file after reading it + */ + + void + read_close_file(fp, line) +- FILE *fp; +- char *line[]; ++ FILE *fp; ++ char *line[]; + { +- read_file(fp, line); +- fclose(fp); ++ read_file(fp, line); ++ fclose(fp); + } + + /* +@@ -487,12 +439,12 @@ + + void + write_pipe_data(pd, data, size) +- int *pd; +- char *data; +- int size; ++ int *pd; ++ char *data; ++ int size; + { +- if (write(pd[1], data, size) < 0) +- show("<< Could not write to pipe >>"); ++ if (write(pd[1], data, size) < 0) ++ show("<< Could not write to pipe >>"); + } + + /* +@@ -501,11 +453,11 @@ + + void + read_pipe_data(pd, data, size) +- int *pd; +- char *data; +- int size; ++ int *pd; ++ char *data; ++ int size; + { +- read(pd[0], data, size); ++ read(pd[0], data, size); + } + + /* +@@ -515,30 +467,30 @@ + void + IdleGuard() + { +- struct stat statBuf; +- time_t idleTime; +- static time_t totalIdleTime; +- int timeToNextCall; +- +- if (qres.idleGuard && !inhibit_child) { +- if (fstat(tfd, &statBuf) < 0) { +- SePError("/IG/ Could not stat the tty"); +- return; +- } ++ struct stat statBuf; ++ time_t idleTime; ++ static time_t totalIdleTime; ++ int timeToNextCall; ++ ++ if (qres.idleGuard && !inhibit_child) { ++ if (fstat(tfd, &statBuf) < 0) { ++ SePError("/IG/ Could not stat the tty"); ++ return; ++ } ++ ++ if ((idleTime = time((time_t *) 0) - statBuf.st_mtime) >= ++ qres.idleGuardInterval * 0.99) { ++ MdmPutString(qres.idleGuardString); ++ timeToNextCall = qres.idleGuardInterval; ++ totalIdleTime += idleTime; ++ SeyonMessagef("Idle for %d minutes", (totalIdleTime + 30) / 60); ++ } ++ else { ++ timeToNextCall = qres.idleGuardInterval - (int)idleTime; ++ totalIdleTime = 0; ++ } + +- if ((idleTime = time((time_t *) 0) - statBuf.st_mtime) >= +- qres.idleGuardInterval * 0.99) { +- MdmPutString(qres.idleGuardString); +- timeToNextCall = qres.idleGuardInterval; +- totalIdleTime += idleTime; +- SeyonMessagef("Idle for %d minutes", (totalIdleTime + 30) / 60); +- } +- else { +- timeToNextCall = qres.idleGuardInterval - (int)idleTime; +- totalIdleTime = 0; +- } +- +- XtAppAddTimeOut(app_con, timeToNextCall * 1000, ++ XtAppAddTimeOut(app_con, timeToNextCall * 1000, + (XtTimerCallbackProc) IdleGuard, (XtPointer) app_con); +- } ++ } + } +--- seyon-2.20c.orig/Seyon.c ++++ seyon-2.20c/Seyon.c +@@ -72,314 +72,365 @@ + pid_t mainPid; + + int +-main(argc, argv) +- int argc; +- char *argv[]; ++main(int argc, char *argv[]) + { +- int OpenModem(); +- void DispatchActions(), +- GetParameters(), +- ShowOpenModemErrMsg(); +- +- char *arg[REG_BUF], termEmu[REG_BUF]; +- int sepIndex, i, n, retStatus; ++ int OpenModem(); ++ void DispatchActions(), ++ GetParameters(), ++ ShowOpenModemErrMsg(); ++ ++ char *arg[REG_BUF], ++ termEmu[REG_BUF]; ++ int sepIndex, ++ i, ++ n, ++ length, ++ retStatus; + #ifdef HAVE_FAS +- char large_string[1024]; ++ char large_string[LRG_BUF]; + #endif + +- XtAppContext appContext; +- char modemList[LRG_BUF], +- *curModem, +- *startupAction = modemList; ++ int length_remaining; ++ XtAppContext appContext; ++ char modemList[LRG_BUF], ++ *curModem, ++ *startupAction = modemList; + +- static char *fallbackResources[] = { ++ static char *fallbackResources[] = { + #include "Seyon.ad.h" +- NULL, +- }; ++ NULL, ++ }; + +- static XrmOptionDescRec optionList[] = { +- {"-modems", "modems", XrmoptionSepArg, NULL}, +- {"-script", "script", XrmoptionSepArg, NULL}, +- {"-entries", "defaultPhoneEntries", XrmoptionSepArg, NULL}, +- {"-dial", "dialAutoStart", XrmoptionNoArg, "True"}, +- {"-nodial", "dialAutoStart", XrmoptionNoArg, "False"}, +- {"-emulator", "emulator", XrmoptionSepArg, ""}, +- {"-noemulator", "noemulator", XrmoptionNoArg, ""}, +- {"-nodefargs", "nodefargs", XrmoptionNoArg, ""}, +- }; ++ static XrmOptionDescRec optionList[] = { ++ {"-modems", "modems", XrmoptionSepArg, NULL}, ++ {"-script", "script", XrmoptionSepArg, NULL}, ++ {"-entries", "defaultPhoneEntries", XrmoptionSepArg, NULL}, ++ {"-dial", "dialAutoStart", XrmoptionNoArg, "True"}, ++ {"-nodial", "dialAutoStart", XrmoptionNoArg, "False"}, ++ {"-emulator", "emulator", XrmoptionSepArg, ""}, ++ {"-noemulator", "noemulator", XrmoptionNoArg, ""}, ++ {"-nodefargs", "nodefargs", XrmoptionNoArg, ""}, ++ }; + +- for (i = 1; i < argc && strcmp(argv[i], "--"); i++); +- sepIndex = i; ++ for (i = 1; i < argc && strcmp(argv[i], "--"); i++); ++ sepIndex = i; + +- /* Find if the -noemulator switch is given */ +- for (i = 1; i < sepIndex && ++ /* Find if the -noemulator switch is given */ ++ for (i = 1; i < sepIndex && + strncmp(argv[i], "-noemulator", max(4, strlen(argv[i]))); i++); + +- /* If no, launch Seyon via the emulator */ +- if (i >= sepIndex) { ++ /* If no, launch Seyon via the emulator */ ++ if (i >= sepIndex) { + +- for (i = 1; i < sepIndex && +- strncmp(argv[i], "-emulator", max(3, strlen(argv[i]))); i++); +- if (i < sepIndex - 1) +- strcpy(termEmu, argv[i+1]); +- else +- strcpy(termEmu, SEYON_EMU_NAME); +- +- /* Find if the -nodefargs switch is given */ +- for (i = 1; i < sepIndex && +- strncmp(argv[i], "-nodefargs", max(5, strlen(argv[i]))); i++); ++ for (i = 1; i < sepIndex && ++ strncmp(argv[i], "-emulator", max(3, strlen(argv[i]))); i++); ++ if (i < sepIndex - 1) ++ strncpy(termEmu, argv[i+1], REG_BUF); ++ else ++ strncpy(termEmu, SEYON_EMU_NAME, REG_BUF); ++ ++ /* Find if the -nodefargs switch is given */ ++ for (i = 1; i < sepIndex && ++ strncmp(argv[i], "-nodefargs", max(5, strlen(argv[i]))); i++); + +- n = 1; ++ n = 1; + +- /* If no, use the default emulator arguments */ +- if (i >= sepIndex) { ++ /* If no, use the default emulator arguments */ ++ if (i >= sepIndex) { + arg[n] = "-name"; n++; + arg[n] = "Seyon"; n++; + arg[n] = "-T"; n++; + arg[n] = "Seyon Terminal Emulator"; n++; + arg[n] = "-n"; n++; + arg[n] = "Terminal"; n++; +- } ++ } + +- /* Pass all switches aftetr '--' to the emulator */ +- for (i = sepIndex + 1; i < argc; i++, n++) ++ /* Pass all switches aftetr '--' to the emulator */ ++ for (i = sepIndex + 1; i < argc; i++, n++) + arg[n] = argv[i]; + +- arg[n] = "-e"; n++; ++ arg[n] = "-e"; n++; + + #ifndef HAVE_FAS +- arg[n] = argv[0]; n++; +- arg[n] = "-noemulator"; n++; ++ arg[n] = argv[0]; n++; ++ arg[n] = "-noemulator"; n++; + +- /* Pass all switches before '--' to Seyon */ +- for (i = 1; i < sepIndex; i++, n++) ++ /* Pass all switches before '--' to Seyon */ ++ for (i = 1; i < sepIndex; i++, n++) + arg[n] = argv[i]; + #else +- arg[n] = "/bin/sh"; n++; +- arg[n] = "-c"; n++; +- arg[n] = large_string; +- strcpy(arg[n], argv[0]); +- strcat(arg[n], " -noemulator"); +- for (i = 1; i < sepIndex; i++) { +- strcat(arg[n]," "); +- strcat(arg[n],argv[i]); +- } +- n++; ++ arg[n] = "/bin/sh"; n++; ++ arg[n] = "-c"; n++; ++ arg[n] = large_string; ++ length_remaining = LRG_BUF; ++ strncpy(arg[n], argv[0], LRG_BUF); ++ length_remaining -= strlen(argv[0]); ++ length = strlen(" -noemulator"); ++ if(length_remaining > length) ++ { ++ strncat(arg[n], " -noemulator", length_remaining); ++ length_remaining -= length; ++ } ++ else ++ { ++ printf("String overflow in parsing options\n"); ++ exit (1); ++ } ++ for (i = 1; i < sepIndex; i++) { ++ length = strlen(argv[i]) + 1; ++ if(length_remaining > length) ++ { ++ strncat(arg[n]," ", 1); ++ strncat(arg[n],argv[i], length_remaining); ++ } ++ else ++ { ++ printf("String overflow in parsing options\n"); ++ exit (1); ++ } ++ } ++ n++; + #endif + +- arg[n] = NULL; n++; ++ arg[n] = NULL; n++; + +- arg[0] = termEmu; +- execvp(arg[0], arg); ++ arg[0] = termEmu; ++ execvp(arg[0], arg); + +- fprintf(stderr, "%s `%s.\n%s\n", ">> Warning: Could not execute", +- termEmu, ">> Notice: Falling to `xterm'."); ++ fprintf(stderr, "%s `%s.\n%s\n", ">> Warning: Could not execute", ++ termEmu, ">> Notice: Falling to `xterm'."); + +- arg[0] = "xterm"; +- execvp(arg[0], arg); ++ arg[0] = "xterm"; ++ execvp(arg[0], arg); + +- fprintf(stderr, "%s\n%s\n", ">> Error: Could not execute `xterm'.", +- ">> Notice: Giving up."); +- exit(1); +- } /* if (i >= sepIndex)... */ +- +- /* ---------------------------------------------------------------------- */ +- /* ---------------------------------------------------------------------- */ +- +- /* The real program begins here */ +- +- topLevel = XtAppInitialize(&appContext, "Seyon", optionList, +- XtNumber(optionList), &argc, argv, +- fallbackResources, NULL, 0); +- app_con = appContext; +- GetResources(topLevel); +- +- mainPid = getpid(); +- setup_signal_handlers(); +- SetIcon(topLevel); +- +- printf("\r\n%s %s\r\n", "Seyon Copyright (c) 1992-1993 Muhammad M. Saggaf.", +- "All rights reserved."); +- printf("\rVersion %s rev. %s %s-%s %s@%s %s %s.\r\n\n", VERSION, REVISION, +- COMPILE_HOSTTYPE, COMPILE_OSNAME, COMPILE_BY, COMPILE_HOST, +- COMPILE_DATE, COMPILE_TIME); +- +- if ((tfp = fopen("/dev/tty", "r+")) == NULL) { +- PopupInitError("errTtyAccess", exit); +- goto MainLoop; +- } ++ fprintf(stderr, "%s\n%s\n", ">> Error: Could not execute `xterm'.", ++ ">> Notice: Giving up."); ++ exit(1); ++ } /* if (i >= sepIndex)... */ ++ ++ /* ------------------------------------------------------------------ */ ++ /* ------------------------------------------------------------------ */ ++ ++ /* The real program begins here */ ++ ++ topLevel = XtAppInitialize(&appContext, "Seyon", optionList, ++ XtNumber(optionList), &argc, argv, ++ fallbackResources, NULL, 0); ++ app_con = appContext; ++ GetResources(topLevel); ++ ++ mainPid = getpid(); ++ setup_signal_handlers(); ++ SetIcon(topLevel); ++ ++ printf("\r\n%s %s\r\n", "Seyon Copyright (c) 1992-1993 Muhammad M. Saggaf.", ++ "All rights reserved."); ++ printf("\rVersion %s rev. %s %s-%s %s@%s %s %s.\r\n\n", VERSION, REVISION, ++ COMPILE_HOSTTYPE, COMPILE_OSNAME, COMPILE_BY, COMPILE_HOST, ++ COMPILE_DATE, COMPILE_TIME); ++ ++ if ((tfp = fopen("/dev/tty", "r+")) == NULL) { ++ PopupInitError("errTtyAccess", exit); ++ goto MainLoop; ++ } + +- tfd = fileno(tfp); ++ tfd = fileno(tfp); + +- io_get_attr(tfd, &oldmode); /* get current console tty mode */ +- newmode = oldmode; /* copy (structure) to newmode */ ++ io_get_attr(tfd, &oldmode); /* get current console tty mode */ ++ newmode = oldmode; /* copy (structure) to newmode */ + + #if HAVE_TERMIOS || HAVE_TERMIO +- newmode.c_oflag &= ~OPOST; +- newmode.c_iflag |= (IGNBRK | IGNPAR); +- newmode.c_iflag &= ~(IXON | IXOFF | ISTRIP | BRKINT); +- newmode.c_lflag &= ~(ICANON | ISIG | ECHO); +- newmode.c_cflag |= CREAD; +- newmode.c_cc[VMIN] = 1; +- newmode.c_cc[VTIME] = 1; ++ newmode.c_oflag &= ~OPOST; ++ newmode.c_iflag |= (IGNBRK | IGNPAR); ++ newmode.c_iflag &= ~(IXON | IXOFF | ISTRIP | BRKINT); ++ newmode.c_lflag &= ~(ICANON | ISIG | ECHO); ++ newmode.c_cflag |= CREAD; ++ newmode.c_cc[VMIN] = 1; ++ newmode.c_cc[VTIME] = 1; + #else + #if HAVE_SGTTYB +- newmode.sg_flags = CBREAK; ++ newmode.sg_flags = CBREAK; + #endif + #endif + +- set_tty_mode(); ++ set_tty_mode(); + +- InitVariables(topLevel); ++ InitVariables(topLevel); + +- if (argc > 1 && strcmp(argv[1], "--")) { +- SeErrorF("Unknown or incomplete command-line switch: `%s'", argv[1], +- "", ""); +- PopupInitError("errSwitches", do_exit); +- goto MainLoop; +- } ++ if (argc > 1 && strcmp(argv[1], "--")) { ++ SeErrorF("Unknown or incomplete command-line switch: `%s'", argv[1], ++ "", ""); ++ PopupInitError("errSwitches", do_exit); ++ goto MainLoop; ++ } + +- /* ---------------------------------------------------------------------- */ ++ /* ------------------------------------------------------------------- */ + +- /* Open modem port and configure it */ ++ /* Open modem port and configure it */ + +- strcpy(modemList, qres.modems); +- curModem = GetFirstWord(modemList); ++ strncpy(modemList, qres.modems, LRG_BUF); ++ curModem = GetFirstWord(modemList); + +- show("Locating Modems..."); ++ show("Locating Modems..."); + +- do { +- if ((retStatus = OpenModem(curModem)) >= 0) break; ++ do { ++ if ((retStatus = OpenModem(curModem)) >= 0) break; + +- ShowOpenModemErrMsg(curModem, retStatus); +- if (retStatus != ERR_MDM_NOMODEM) ++ ShowOpenModemErrMsg(curModem, retStatus); ++ if (retStatus != ERR_MDM_NOMODEM) + show(FmtString("Modem `%s' is Unavailable.\n", curModem, "", "")); +- curModem = GetNextWord(); +- } while (curModem[0] != '\0'); +- +- if (retStatus < 0) { +- SeError("No Modems Available"); +- PopupInitError("errModemInit", do_exit); +- goto MainLoop; +- } +- +- show(FmtString("Modem `%s' is Available.\n", curModem, "", "")); +- +- /* ---------------------------------------------------------------------- */ +- +- CreateCommandCenter(); +- +- /* ---------------------------------------------------------------------- */ ++ curModem = GetNextWord(); ++ } while (curModem[0] != '\0'); + +- pipe(child_pipe); +- pipe(scriptToMainPipe); +- pipe(mainToTermPipe); +- XtAppAddInput(appContext, child_pipe[0], (XtPointer)XtInputReadMask, +- ExecProcRequest, NULL); +- XtAppAddInput(appContext, scriptToMainPipe[0], (XtPointer)XtInputReadMask, +- GetParameters, NULL); ++ if (retStatus < 0) { ++ SeError("No Modems Available"); ++ PopupInitError("errModemInit", do_exit); ++ goto MainLoop; ++ } ++ ++ show(FmtString("Modem `%s' is Available.\n", curModem, "", "")); ++ ++ /* ------------------------------------------------------------------- */ ++ ++ CreateCommandCenter(); ++ ++ /* ------------------------------------------------------------------- */ ++ ++ pipe(child_pipe); ++ pipe(scriptToMainPipe); ++ pipe(mainToTermPipe); ++ XtAppAddInput(appContext, child_pipe[0], (XtPointer)XtInputReadMask, ++ ExecProcRequest, NULL); ++ XtAppAddInput(appContext, scriptToMainPipe[0], (XtPointer)XtInputReadMask, ++ GetParameters, NULL); ++ ++ IdleGuard(); ++ if (qres.showFunMessages) ++ XtAppAddTimeOut(appContext, qres.funMessagesInterval*1000, ++ FunMessage, NULL); ++ ++ /* ------------------------------------------------------------------- */ ++ ++ length_remaining = LRG_BUF; ++ strncpy(startupAction, qres.startupAction, LRG_BUF); ++ length_remaining -= strlen(startupAction); ++ if (qres.script) ++ { ++ length = strlen(" RunScript();") + strlen(qres.script); ++ if (length_remaining > length) ++ { ++ sprintf(startupAction + strlen(startupAction), ++ " RunScript(%s);", qres.script); ++ length_remaining -= length; ++ } ++ else ++ { ++ printf("String overflow in parsing options\n"); ++ exit (1); ++ } ++ } ++ if (qres.dialAutoStart) ++ { ++ length = strlen(" DialEntries(Default);"); ++ if(length_remaining > length) ++ { ++ strncat(startupAction, " DialEntries(Default);", length); ++ length -= length; ++ } ++ else ++ { ++ printf("String overflow in parsing options\n"); ++ exit (1); ++ } ++ } ++ ++ /* ------------------------------------------------------------------- */ + +- IdleGuard(); +- if (qres.showFunMessages) XtAppAddTimeOut(appContext, +- qres.funMessagesInterval*1000, FunMessage, NULL); ++ linkflag = 2; ++ ProcRequest(DISPATCH_ACTION, "", startupAction); + +- /* ---------------------------------------------------------------------- */ ++ /* ------------------------------------------------------------------- */ + +- strcpy(startupAction, qres.startupAction); +- if (qres.script) sprintf(startupAction + strlen(startupAction), +- " RunScript(%s);", qres.script); +- if (qres.dialAutoStart) strcat(startupAction, " DialEntries(Default);"); +- +- /* ---------------------------------------------------------------------- */ +- +- linkflag = 2; +- ProcRequest(DISPATCH_ACTION, "", startupAction); +- +- /* ---------------------------------------------------------------------- */ +- +- XtSetMappedWhenManaged(topLevel, True); +- XtMapWidget(topLevel); /* I don't know why I need this, but I do */ ++ XtSetMappedWhenManaged(topLevel, True); ++ XtMapWidget(topLevel); /* I don't know why I need this, but I do */ + + MainLoop: +- XtAppMainLoop(app_con); +- return 0; ++ XtAppMainLoop(app_con); ++ return 0; + } + + void +-setup_signal_handlers() ++setup_signal_handlers(void) + { +- signal(SIGINT, SIG_IGN); +- signal(SIGQUIT, SIG_IGN); ++ signal(SIGINT, SIG_IGN); ++ signal(SIGQUIT, SIG_IGN); + + #ifdef SIGBUS +- signal(SIGBUS, die); ++ signal(SIGBUS, die); + #endif +- signal(SIGFPE, die); +- signal(SIGILL, die); +- signal(SIGIOT, die); +- signal(SIGSEGV, die); +- signal(SIGTERM, die); +- signal(SIGTRAP, die); ++ signal(SIGFPE, die); ++ signal(SIGILL, die); ++ signal(SIGIOT, die); ++ signal(SIGSEGV, die); ++ signal(SIGTERM, die); ++ signal(SIGTRAP, die); + } + + void +-die(sig) +- int sig; ++die(int sig) + { +- void KillChildProc(); +- signal(sig, SIG_IGN); ++ void KillChildProc(); ++ signal(sig, SIG_IGN); + +- SeErrorF("Killed by signal %d", sig, "", ""); +- SeNoticeF("Debugging info: pid=%d.", getpid(), "", ""); ++ SeErrorF("Killed by signal %d", sig, "", ""); ++ SeNoticeF("Debugging info: pid=%d.", getpid(), "", ""); + +- if (getpid() == mainPid) { +- KillTerminal(); +- KillChildProc(); ++ if (getpid() == mainPid) { ++ KillTerminal(); ++ KillChildProc(); + +- SeNotice("Press any key to exit"); +- getchar(); +- cleanup_exit(1); +- } +- else { +- write_child_info(child_pipe, KILL_TERM, "Terminal Proc Exited"); +- exit(1); +- } ++ SeNotice("Press any key to exit"); ++ getchar(); ++ cleanup_exit(1); ++ } ++ else { ++ write_child_info(child_pipe, KILL_TERM, "Terminal Proc Exited"); ++ exit(1); ++ } + } + + void +-do_exit(rc) +- int rc; ++do_exit(int rc) + { +- void KillChildProc(); ++ void KillChildProc(); + +- XtUnmapWidget(topLevel); +- KillTerminal(); +- KillChildProc(); ++ XtUnmapWidget(topLevel); ++ KillTerminal(); ++ KillChildProc(); + +- unlock_tty(); ++ unlock_tty(); + +- fflush(tfp); +- restore_orig_mode(); +- fclose(tfp); ++ fflush(tfp); ++ restore_orig_mode(); ++ fclose(tfp); + +- CloseModem(); ++ CloseModem(); + +- XtDestroyApplicationContext(XtWidgetToApplicationContext(topLevel)); ++ XtDestroyApplicationContext(XtWidgetToApplicationContext(topLevel)); + /* XCloseDisplay(XtDisplay(topLevel));*/ +- exit(rc); ++ exit(rc); + } + + void +-cleanup_exit(status) +- int status; ++cleanup_exit(int status) + { +- SeNotice("cleaning up.."); +- do_exit(status); ++ SeNotice("cleaning up.."); ++ do_exit(status); + } + + void + s_exit() + { +- show("I'm rated PG-34!!"); +- do_exit(0); ++ show("I'm rated PG-34!!"); ++ do_exit(0); + } +--- seyon-2.20c.orig/SeTrans.c ++++ seyon-2.20c/SeTrans.c +@@ -51,7 +51,7 @@ + ErrorIfBusy(); + + if (disItems[0] == NULL) { +- strcpy(protocolsFile, qres.protocolsFile); ++ strncpy(protocolsFile, qres.protocolsFile, REG_BUF); + if (ReadParseProtFile(protocolsFile, disItems) < 0) + return; + } +@@ -81,39 +81,47 @@ + + void + DoTransfer(widget, clientData, callData) +- Widget widget; +- XtPointer clientData, +- callData; +-{ +- XfwfMultiListReturnStruct *item; +- Widget popup; +- String* actionData = (String*)clientData; +- char fullCommand[LRG_BUF]; +- +- if (clientData) +- {if ((transCurItemIndex = atoi(actionData[0]) - 1) < 0 || +- transCurItemIndex > MAX_ENT - 1) +- SimpleError("Invalid Entry Number");} +- else { +- if ((item = XfwfMultiListGetHighlighted(mlw))->num_selected == 0) ++ Widget widget; ++ XtPointer clientData, ++ callData; ++{ ++ XfwfMultiListReturnStruct *item; ++ Widget popup; ++ String* actionData = (String*)clientData; ++ char fullCommand[LRG_BUF]; ++ int length_remaining; ++ ++ if (clientData) ++ {if ((transCurItemIndex = atoi(actionData[0]) - 1) < 0 || ++ transCurItemIndex > MAX_ENT - 1) ++ SimpleError("Invalid Entry Number");} ++ else { ++ if ((item = XfwfMultiListGetHighlighted(mlw))->num_selected == 0) + SimpleError("No Item Selected"); +- transCurItemIndex = item->selected_items[0]; +- } ++ transCurItemIndex = item->selected_items[0]; ++ } + +- strcpy(fullCommand, protItems[transCurItemIndex]->command); ++ strncpy(fullCommand, protItems[transCurItemIndex]->command, LRG_BUF); + +- if (protItems[transCurItemIndex]->reqName) +- if (actionData == NULL || actionData[1] == NULL) { ++ if (protItems[transCurItemIndex]->reqName) ++ { ++ if (actionData == NULL || actionData[1] == NULL) ++ { + popup = GetShell(PopupDialogGetValue("upload", widget, exec_upload, +- NULL, lastUploadFile)); ++ NULL, lastUploadFile)); + PopupCentered(popup, (clientData) ? XtParent(GetShell(widget)) : widget); + return; +- } +- else +- strcat(strcat(fullCommand, " "), actionData[1]); +- +- DestroyShell(widget); +- ShellCommand(fullCommand); ++ } ++ else ++ { ++ length_remaining = LRG_BUF - strlen(fullCommand); ++ strncat(fullCommand, " ", length_remaining); ++ length_remaining -= 1; ++ strncat(fullCommand, actionData[1], length_remaining); ++ } ++ } ++ DestroyShell(widget); ++ ShellCommand(fullCommand); + } + + void +@@ -133,11 +141,11 @@ + Widget widget; + { + Widget dialog = XtParent(widget); +- static char cmd[REG_BUF]; ++ static char *cmd; + +- strcpy(lastUploadFile, XawDialogGetValueString(dialog)); +- sprintf(cmd, "%s %s", protItems[transCurItemIndex]->command, +- lastUploadFile); ++ strncpy(lastUploadFile, XawDialogGetValueString(dialog), REG_BUF); ++ cmd = FmtString("%s %s", protItems[transCurItemIndex]->command, ++ lastUploadFile, ""); + + DestroyShell(XtParent(GetShell(widget))); + ShellCommand(cmd); +--- seyon-2.20c.orig/Seyon-co.ad ++++ seyon-2.20c/Seyon-co.ad +@@ -13,26 +13,30 @@ + *foreground: black + *borderColor: white + ++*background: blue ++*foreground: black ++*borderColor: lightBlue ++ + *Command.background: lightBlue +-*Scrollbar.background: darkSeaGreen +-*Toggle.background: darkOliveGreen +-*Toggle.foreground: darkTurquoise +-*List.background: grey +-*XfwfMultiList.background: grey +-*Text*background: grey +-*Text*Scrollbar.background: darkSeaGreen ++*Scrollbar.background: cyan ++*Toggle.background: cyan ++*Toggle.foreground: black ++*List.background: tan ++*XfwfMultiList.background: tan ++*Text*background: tan ++*Text*Scrollbar.background: cyan + + *ok.background: green +-*cancel.background: tomato ++*cancel.background: red + *dismiss.background: orange +-*hangup.background: orange +-*exit.background: tomato +-*kill.background: tomato ++*hangup.background: red ++*exit.background: red ++*kill.background: red + +-*about*msg.background: grey +-*about*pic.background: grey ++*about*msg.background: tan ++*about*pic.background: tan + +-*messageBox.message.background: grey ++*messageBox.message.background: tan + +-*quickKeyBox.Command.background: darkOliveGreen +-*quickKeyBox.Command.foreground: darkTurquoise ++*quickKeyBox.Command.background: orange ++*quickKeyBox.Command.foreground: black +--- seyon-2.20c.orig/config.h ++++ seyon-2.20c/config.h +@@ -302,7 +302,7 @@ + * HDB uucp does) rather than in binary form as other uucp prgrams do + */ + #ifndef LF_USE_ASCII_PID +-#define LF_USE_ASCII_PID NO ++#define LF_USE_ASCII_PID YES + #endif + + /* +@@ -319,7 +319,7 @@ + */ + + #ifndef LF_PATH +-#define LF_PATH "/usr/spool/uucp" ++#define LF_PATH "/var/lock" + #endif + + /* +--- seyon-2.20c.orig/Imakefile ++++ seyon-2.20c/Imakefile +@@ -48,14 +48,16 @@ + InstallNonExecFile(seyon.help,$(LIBDIR)) + + install:: ++/* + @if [ ! -d $(HOME)/.seyon ]; then mkdir $(HOME)/.seyon; fi; \ + echo "=== Copying example files (no overwrite) to $(HOME)/.seyon ..."; \ + for i in phonelist protocols startup script.*; do \ + if [ ! -f $(HOME)/.seyon/$$i ]; then cp $$i $(HOME)/.seyon; fi;\ + done; ++*/ + + clean:: +- rm -f version.h y.tab.* SeParse.c ++ rm -f version.h y.tab.* SeParse.c Seyon.ad.h + + Seyon.c: Seyon.ad.h version.h + +@@ -66,7 +68,7 @@ + rm -f version.h + + version.h: +- ./makever.sh ++ sh ./makever.sh + + SeScan.o: y.tab.h + +--- seyon-2.20c.orig/makever.sh ++++ seyon-2.20c/makever.sh +@@ -48,9 +48,9 @@ + echo "#define VERSION \"$VERSION\"" >> version.h + echo "#define REVISION \"$REVISION\"" >> version.h + +-echo "#ifdef IS_MAIN" >> version.h +-echo "static char version[] = \"\$Revision: $VERSION.$REVISION \$\";"\ +- >> version.h +-echo "#endif" >> version.h ++#echo "#ifdef IS_MAIN" >> version.h ++#echo "static char version[] = \"\$Revision: $VERSION.$REVISION \$\";"\ ++# >> version.h ++#echo "#endif" >> version.h + + echo "Machine type is $machine, OS name is $system" +--- seyon-2.20c.orig/SeScan.c ++++ seyon-2.20c/SeScan.c +@@ -95,8 +95,8 @@ + SC_OUTSIDE, + }; + +-static ScanState = SC_OUTSIDE; +-static ScanDelim = 0; /* Current string delimiter */ ++static int ScanState = SC_OUTSIDE; ++static int ScanDelim = 0; /* Current string delimiter */ + + void NEW_STATE(st) + int st; +@@ -290,8 +290,8 @@ + #ifdef TEST + main() + { +- scSetInputBuf("Just to see if we'\\'re \\n\\033 able to distinguish' words and strings +-\"Also 'quotes' inside strings\" and 'strs \"inside quotes\"' ++ scSetInputBuf("Just to see if we'\\'re \\n\\033 able to distinguish' words and strings\n\ ++\"Also 'quotes' inside strings\" and 'strs \"inside quotes\"'\n\ + Not to forget ^S and ^q control ^ chars"); + + while (lGetWord() != 0); +--- seyon-2.20c.orig/SeSubsX.c ++++ seyon-2.20c/SeSubsX.c +@@ -70,7 +70,8 @@ + + if (onlineTime != oldOnlineTime) { + oldOnlineTime = onlineTime; +- sprintf(buf, "%02d:%02d", onlineTime / 60, onlineTime % 60); ++ /* Buffer is easily big enough */ ++ sprintf(buf, "%02ld:%02ld", onlineTime / 60, onlineTime % 60); + SeSetLabel(statusWidget[0], buf); + } + +@@ -91,6 +92,7 @@ + msg = qres.funMessages[msg_index++]; + if (msg == NULL) { + msg_index = 0; ++ /* Buffer is easily big enough */ + sprintf(vermsg, "Welcome to Seyon version %s.%s", VERSION, REVISION); + msg = vermsg; + } +@@ -171,7 +173,8 @@ + + procRequest.action = action; + +- if (msg) strcpy(procRequest.msg, msg); ++ if (msg) ++ strncpy(procRequest.msg, msg, 80); + else *procRequest.msg = '\0'; + + write_pipe_data(pd, &procRequest, sizeof(procRequest)); +@@ -186,8 +189,8 @@ + struct _procRequest procRequest; + + procRequest.action = action; +- strcpy(procRequest.msg, msg); +- strcpy(procRequest.arg, arg); ++ strncpy(procRequest.msg, msg, 80); ++ strncpy(procRequest.arg, arg, 90); + + write_pipe_data(child_pipe, &procRequest, sizeof(procRequest)); + } +@@ -201,10 +204,7 @@ + *b, + *c; + { +- char buffer[SM_BUF]; +- +- sprintf(buffer, fmt, a, b, c); +- write_child_info(pd, action, buffer); ++ write_child_info(pd, action, FmtString(fmt,a,b,c)); + } + + void +@@ -222,10 +222,7 @@ + b, + c; + { +- char buf[REG_BUF]; +- +- sprintf(buf, fmt, a, b, c); +- SeyonMessage(buf); ++ SeyonMessage(FmtString(fmt,a,b,c)); + } + + Boolean +--- seyon-2.20c.orig/SeActions.c ++++ seyon-2.20c/SeActions.c +@@ -28,6 +28,7 @@ + /* SeDecl.h includes stdio.h */ + #include "SeDecl.h" + #include "version.h" ++#include "config.h" + + #define CheckNumParam(num) {if (*numParam != num) \ + SimpleError("Wrong Number of Parameters");} +@@ -234,7 +235,7 @@ + Cardinal* numParam; + { + int IconifyShell(); +- Widget dirWidget; ++/* Widget dirWidget; */ + static String termWindowId = NULL; + int i; + +@@ -312,10 +313,18 @@ + Cardinal* numParam; + { + void s_set(); ++ int length; ++ int length_remaining; + + ErrorIfBusy(); + CheckNumParam(2); +- sprintf((lptr = line), "%s %s", param[0], param[1]); ++ ++ length_remaining = WBSIZE; ++ length = 1 + strlen(param[0]) + strlen(param[1]); ++ if(length_remaining > length) ++ sprintf((lptr = line), "%s %s", param[0], param[1]); ++ else ++ printf("SetAction: string buffer would have overrun: %s %s\n",param[0], param[1]); + eof_flag = 0; + s_set(); + } +@@ -372,7 +381,7 @@ + prevActionAsync = False, + startup = True; + static Widget actionWidget; +- static String actionStack; ++ static String actionStack = ""; + + void (*actionProc)(); + static char actionName[SM_BUF], +@@ -387,6 +396,9 @@ + Boolean async; + }; + ++ /* A string containing a script of actions to perform at startup. */ ++ String startScript; ++ + static struct _actionTable actionTable[] = { + {"Beep", BeepAction, False}, + {"CloseWindow", CloseWindowAction, False}, +@@ -413,12 +425,12 @@ + switch (intData) { + + case ACTION_NEW_ACTION: +- strcpy(actionName, stringData); ++ strncpy(actionName, stringData, sizeof(actionName)); + numArgs = 0; + return; + + case ACTION_NEW_ARG: +- strcpy((argsArray[numArgs] = args[numArgs]), stringData); ++ strncpy((argsArray[numArgs] = args[numArgs]), stringData, SM_BUF); + numArgs++; + return; + +@@ -461,10 +473,12 @@ + XtFree(actionStack); + + if (startup) { +- startup = False; +- ParseThis(FmtString("Message(\"Welcome to Seyon version %s.%s\"); %s", +- VERSION, REVISION, "RestartTerminal();"), +- DispatchActions); ++ startup = False; ++ startScript ++ = XtNewString( FmtString("Message(\"Welcome to Seyon version %s.%s\"); %s", ++ VERSION, REVISION, "RestartTerminal();")); ++ ParseThis(startScript, DispatchActions); ++ XtFree(startScript); + } + + return; +--- seyon-2.20c.orig/SeScript.c ++++ seyon-2.20c/SeScript.c +@@ -100,8 +100,8 @@ + if (qres.scriptDirectory) scriptDir = qres.scriptDirectory; + else scriptDir = qres.defaultDirectory; + +- strcpy(buf, scriptFileName); +- if ((scriptFP = open_file(buf, scriptDir)) == NULL) ++ strncpy(buf, scriptFileName, REG_BUF); ++ if ((scriptFP = open_file(buf, REG_BUF, scriptDir)) == NULL) + return False; + + exec_close_script(scriptFP); +@@ -110,31 +110,33 @@ + + void + exec_close_script(script_fp) +- FILE *script_fp; ++ FILE *script_fp; + { +- if_flag = 0; +- echo_flag = False; +- captflag = False; +- tty_flag = True; +- eof_flag = 0; ++ if_flag = 0; ++ echo_flag = False; ++ captflag = False; ++ tty_flag = True; ++ eof_flag = 0; + +- if (linkflag == 2) +- linkflag = 0; ++ if (linkflag == 2) ++ linkflag = 0; + +- while (!eof_flag) +- get_line(script_fp); ++ while (!eof_flag) ++ get_line(script_fp); + +- fclose(script_fp); +- if (captflag) +- fclose(cf); ++ fclose(script_fp); ++ if (captflag) ++ fclose(cf); + +- eof_flag = 0; +- lptr = strcpy(line, ""); +- k_when(); ++ eof_flag = 0; ++ /* No buffer length problem here! */ ++ /* But why do this??? */ ++ lptr = strcpy(line, ""); ++ k_when(); + +- linkflag = 0; ++ linkflag = 0; + +- return; ++ return; + } + + static char wf[MAX_LINE]; +@@ -202,7 +204,7 @@ + + + GETTEST_ARG("waitfor"); +- strcpy(wf, word); ++ strncpy(wf, word, MAX_LINE); + + GET_ARG(); + +@@ -331,7 +333,7 @@ + return; + } + +- strcpy(label, word); ++ strncpy(label, word, WBSIZE); + + rewind(script_fp); + while (!found) { +@@ -360,7 +362,7 @@ + if_flag = 0; /* reset IF flag */ + } + +-static if_negate = 0; ++static int if_negate = 0; + + static int + if_test(cond) +--- seyon-2.20c.orig/SeWin.c ++++ seyon-2.20c/SeWin.c +@@ -377,7 +377,7 @@ + { + Widget dialog = XtParent(valueWidget); + +- strcpy(getValueDefValue, XawDialogGetValueString(dialog)); ++ strncpy(getValueDefValue, XawDialogGetValueString(dialog), REG_BUF); + DestroyShell(dialog); + + (*getValueExecProc)(XtParent(GetShell(valueWidget)), getValueDefValue); +@@ -745,10 +745,7 @@ + b, + c; + { +- char buf[REG_BUF]; +- +- sprintf(buf, fmt, a, b, c); +- SePopupMsg(parent, buf); ++ SePopupMsg(parent, FmtString(fmt,a,b,c)); + } + + Widget +@@ -773,20 +770,16 @@ + } + + void +-SePopupNoticeF(parent, title, call_back, fmt, a, b, c, d) ++SePopupNoticeF(parent, title, call_back, fmt, a, b, c) + Widget parent; + String title; + void (*call_back) (); + String fmt, + a, + b, +- c, +- d; ++ c; + { +- char buf[REG_BUF]; +- +- sprintf(buf, fmt, a, b, c); +- SePopupNotice(parent, title, call_back, buf); ++ SePopupNotice(parent, title, call_back, FmtString(fmt,a,b,c)); + } + + /* +@@ -918,10 +911,7 @@ + b, + c; + { +- char buffer[REG_BUF]; +- +- sprintf(buffer, fmt, a, b, c); +- SetStatusMessage(buffer); ++ SetStatusMessage(FmtString(fmt,a,b,c)); + } + + /*---------------------------------------------------------------------------+ +--- seyon-2.20c.orig/SeString.c ++++ seyon-2.20c/SeString.c +@@ -22,12 +22,13 @@ + + char + itoa(num) +- int num; ++ int num; + { +- char buf[TIN_BUF]; ++ char buf[TIN_BUF]; + +- sprintf(buf, "%d", num); +- return buf[0]; ++ /* Buffer is safely big enough */ ++ sprintf(buf, "%d", num); ++ return buf[0]; + } + + /* +@@ -100,8 +101,15 @@ + char buffer[REG_BUF], + *bufptr; + +- strcpy(buffer, source); ++ strncpy(buffer, source, REG_BUF); ++ ++ /* Null-terminate, as expected by str_strip_lead_end_space(). */ ++ buffer[REG_BUF] = '\0'; ++ + bufptr = str_strip_lead_end_space(buffer); ++ ++ /* Must fit, as we can only have removed things from the original ++ string */ + return strcpy(dest, bufptr); + } + +@@ -128,14 +136,43 @@ + return strBuf; + } + ++/* Note that the the (char *) data structure returned by FmtString() ++ is invalidated on subsequent calls, and that the function is not ++ re-entrant. Take care that the pointer returned is not held for ++ use across calls. */ + char* + FmtString(fmt, a, b, c) +- char *fmt, *a, *b, *c; ++ char *fmt, *a, *b, *c; + { +- static char strBuf[LRG_BUF]; ++ static char strBuf[LRG_BUF]; ++ static FILE *devnull=NULL; ++ int length = 0; ++ ++ /* Clear the buffer as it highlights errors elsewhere, such as ++ simultaneous use of the static string or re-entry into this ++ function. */ ++ memset(strBuf, 0, LRG_BUF); ++ ++ /* Ick... This is horrible - using a user-provided format string ++ means we have no easy way of limiting string length. HACK HACK ++ HACK Use fprintf to output to /dev/null and count the number of ++ bytes... It would be nice if we could rely on having snprintf() */ ++ ++ if(NULL == devnull) ++ { ++ devnull = fopen("/dev/null", "r+"); ++ if(NULL == devnull) ++ { ++ printf("Open /dev/null failed!?!\n"); ++ return strBuf; ++ } ++ length = fprintf(devnull, fmt, a, b, c); ++ } ++ ++ if(LRG_BUF >= length) ++ sprintf(strBuf, fmt, a, b, c); + +- sprintf(strBuf, fmt, a, b, c); +- return strBuf; ++ return strBuf; + } + + /* +@@ -189,6 +226,7 @@ + if (*line == '\0') + return NULL; + else if (*line == '\"') ++ + for (wrd = ++line; *line != '\"' && *line; line++); + else + for (wrd = line; !isspace(*line) && *line; line++); +@@ -246,38 +284,38 @@ + * this routine is not currently used, and I'm not if it works + */ + +-char * +-get_word(str, word) +- char *str, +- *word; +-{ +- char *wrd, +- c; +- +- while (isspace(*str) && *str) +- str++; +- +- if (!(*str)) +- word[0] = '\0'; +- +- else if (*str == '\"') { +- for (wrd = ++str; *str != '\"' && *str; str++); +- *str = '\0'; +- strcpy(word, wrd); +- *str = '\"'; +- str++; +- } ++/* char * */ ++/* get_word(str, word) */ ++/* char *str, */ ++/* *word; */ ++/* { */ ++/* char *wrd, */ ++/* c; */ ++ ++/* while (isspace(*str) && *str) */ ++/* str++; */ ++ ++/* if (!(*str)) */ ++/* word[0] = '\0'; */ ++ ++/* else if (*str == '\"') { */ ++/* for (wrd = ++str; *str != '\"' && *str; str++); */ ++/* *str = '\0'; */ ++/* strcpy(word, wrd); */ ++/* *str = '\"'; */ ++/* str++; */ ++/* } */ ++ ++/* else { */ ++/* for (wrd = str; !isspace(*str) && *str; str++); */ ++/* c = *str; */ ++/* *str = '\0'; */ ++/* strcpy(word, wrd); */ ++/* *str = c; */ ++/* } */ + +- else { +- for (wrd = str; !isspace(*str) && *str; str++); +- c = *str; +- *str = '\0'; +- strcpy(word, wrd); +- *str = c; +- } +- +- return str; +-} ++/* return str; */ ++/* } */ + + #if !HAVE_STRERROR + +--- seyon-2.20c.orig/SeParse.y ++++ seyon-2.20c/SeParse.y +@@ -1,8 +1,11 @@ + %{ + #include + #include ++#include + #include "SeParse.h" + ++int yylex(void); ++ + void (*callbackProc)(); + %} + +@@ -81,19 +84,19 @@ + { + char long_line[1000]; + +- char input_str[] = "This(is, a, real, funky); script(); +- Scripts(); Can(be); Multi(Line, \"Can't they?\"); +- Commas(are, no, longer, optional, inside, arglists); +- Scripts(); Can(); contain(\"tabs \\t and backspaces \\b\"); +- As(\"Well\\ as Quoted Strings\", and, '\"Quoted Strings inside +- quoted strings\"'); +- esc(can, appear, outside, strings, ^z, \\012\\015\\n); +- But(parenthesis, should, match); +- We(\"have a funny way of specifying \\012 chars and even)\"); +- backslashes( \" \\\\ \"); +- new(\"in this version are ^m and ^A ctr-escapes, as in ^S^Q\"); +- The(next, line, will, give, a, syntax, error, because, it, has, two, adj, functions, +- without, a, separating, semicolon); ++ char input_str[] = "This(is, a, real, funky); script();\n\ ++ Scripts(); Can(be); Multi(Line, \"Can't they?\");\n\ ++ Commas(are, no, longer, optional, inside, arglists);\n\ ++ Scripts(); Can(); contain(\"tabs \\t and backspaces \\b\");\n\ ++ As(\"Well\\ as Quoted Strings\", and, '\"Quoted Strings inside\n\ ++ quoted strings\"');\n\ ++ esc(can, appear, outside, strings, ^z, \\012\\015\\n)\n\ ++ But(parenthesis, should, match);\n\ ++ We(\"have a funny way of specifying \\012 chars and even)\"); \n\ ++ backslashes( \" \\\\ \");\n\ ++ new(\"in this version are ^m and ^A ctr-escapes, as in ^S^Q\");\n\ ++ The(next, line, will, give, a, syntax, error, because, it, has, two, adj, functions,\n\ ++ without, a, separating, semicolon);\n\ + End() script()"; + + printf("------ String to parse: \n%s\n\n---- Parsing begins:\n", input_str); +--- seyon-2.20c.orig/SeSet.c ++++ seyon-2.20c/SeSet.c +@@ -18,6 +18,9 @@ + + #include "seyon.h" + #include "SeDecl.h" ++#if HAVE_TERMIOS ++#include ++#endif + + extern int param_pipe[2]; + +@@ -84,6 +87,13 @@ + {"baud", {"300", "1200", "2400", "4800", "9600", "19200", "38400", + #if USE_NONSTD_BAUD + "57600", "115200", ++#else ++#ifdef B57600 ++ "57600", ++#endif ++#ifdef B115200 ++ "115200", ++#endif + #endif + NULL}, 1, MenuSetGetBaud}, + {"bits", {"5", "6", "7", "8", NULL}, 1, MenuSetGetCSize}, +@@ -191,7 +201,7 @@ + struct _setValue *vptr; + + vptr = set_value; +- strcpy(vptr->value, modem_port); ++ strncpy(vptr->value, modem_port, SM_BUF); + vptr++; + + curValObjPtr = (vptr = (struct _setValue *)client_data); +--- seyon-2.20c.orig/startup ++++ seyon-2.20c/startup +@@ -4,30 +4,30 @@ + # see the manual page for a complete listing of the keywords + # that can be used with 'set'. + +-# set baud 9600 ++set baud 57600 + + # can be 5, 6, 7, or 8 +-# set bits 8 ++set bits 8 + + # can be 0 (= no parity), 1 (= odd parity), or 2 (= even parity) + # set parity 0 + + # can be 1 or 2 +-# set stopBits 1 ++set stopBits 1 + + # can be nl, cr, or cr/lf + # set newlineTranslation cr + +-# set del on +-# set meta_tr on +-# set xoff off +-# set rtscts on +-# set autozm on ++set del on ++set meta_tr on ++set xoff off ++set rtscts on ++set autozm on + # set idleGuard on + + # put the modem initialization string here if you like one. + # most modern modems do not need it since they store their setup in + # non-volatile memory. + +-# echo "Initializing modem..." +-# transmit "ATZ^M" ++echo "Initializing modem..." ++transmit "ATM0^M" +--- seyon-2.20c.orig/debian/po/POTFILES.in ++++ seyon-2.20c/debian/po/POTFILES.in +@@ -0,0 +1 @@ ++[type: gettext/rfc822deb] templates +--- seyon-2.20c.orig/debian/po/fr.po ++++ seyon-2.20c/debian/po/fr.po +@@ -0,0 +1,49 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: seyon 2.20c-12\n" ++"POT-Creation-Date: 2003-10-13 02:02+0100\n" ++"PO-Revision-Date: 2003-10-16 23:41+0100\n" ++"Last-Translator: Christian Perrier \n" ++"Language-Team: French \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=iso-8859-15\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Description ++#: ../templates:4 ++msgid "Modem device" ++msgstr "Périphérique du modem" ++ ++#. Description ++#: ../templates:4 ++msgid "" ++"Please choose the device file corresponding to the port the modem is " ++"connected to. This may be /dev/ttyS1 or any other device file." ++msgstr "" ++"Veuillez choisir le fichier de périphérique correspondant au port où est " ++"connecté le modem. Cela peut être /dev/ttyS1 ou tout autre fichier de " ++"périphérique." ++ ++#. Description ++#: ../templates:4 ++msgid "" ++"/dev/modem is usually a symbolic link to the appropriate device file. This " ++"configuration program will not setup this link. If you choose \"/dev/modem" ++"\", the link should already exist." ++msgstr "" ++"/dev/modem est généralement un lien symbolique vers le fichier de " ++"périphérique correct. Ce programme de configuration n'établira pas ce lien. " ++"Si vous indiquez « /dev/modem », il faudrait que le lien existe au préalable." +--- seyon-2.20c.orig/debian/po/nl.po ++++ seyon-2.20c/debian/po/nl.po +@@ -0,0 +1,50 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: seyon2.20c-12 \n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2003-07-21 16:50+0200\n" ++"PO-Revision-Date: 2003-09-07 17:46+0100\n" ++"Last-Translator: Tim Vandermeersch \n" ++"Language-Team: dutch \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=iso-8859-1\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Description ++#: ../templates:4 ++msgid "Modem device" ++msgstr "Modem apparaat" ++ ++#. Description ++#: ../templates:4 ++msgid "" ++"Please choose the device file corresponding to the port the modem is " ++"connected to. This may be /dev/ttyS1 or any other device file." ++msgstr "" ++"Gelieve het overeenkomstige apparaat bestand te kiezen van de poort waar de " ++"modem met verbonden is. Dit kan /dev/ttyS1 of een ander apparaat bestand zijn." ++ ++#. Description ++#: ../templates:4 ++msgid "" ++"/dev/modem is usually a symbolic link to the appropriate device file. This " ++"configuration program will not setup this link. If you choose \"/dev/modem" ++"\", the link should already exist." ++msgstr "" ++"/dev/modem is meestal een symbolische link naar het correcte apparaat bestand." ++"Dit configuratie programma zal deze link niet creëren. Als u \"/dev/modem\"" ++"kiest, dient deze link al te bestaan." +--- seyon-2.20c.orig/debian/po/templates.pot ++++ seyon-2.20c/debian/po/templates.pot +@@ -0,0 +1,45 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++#, fuzzy ++msgid "" ++msgstr "" ++"Project-Id-Version: PACKAGE VERSION\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2003-10-13 02:02+0100\n" ++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" ++"Last-Translator: FULL NAME \n" ++"Language-Team: LANGUAGE \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=CHARSET\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Description ++#: ../templates:4 ++msgid "Modem device" ++msgstr "" ++ ++#. Description ++#: ../templates:4 ++msgid "" ++"Please choose the device file corresponding to the port the modem is " ++"connected to. This may be /dev/ttyS1 or any other device file." ++msgstr "" ++ ++#. Description ++#: ../templates:4 ++msgid "" ++"/dev/modem is usually a symbolic link to the appropriate device file. This " ++"configuration program will not setup this link. If you choose \"/dev/modem" ++"\", the link should already exist." ++msgstr "" +--- seyon-2.20c.orig/debian/po/cs.po ++++ seyon-2.20c/debian/po/cs.po +@@ -0,0 +1,49 @@ ++# ++# Translators, if you are not familiar with the PO format, gettext ++# documentation is worth reading, especially sections dedicated to ++# this format, e.g. by running: ++# info -n '(gettext)PO Files' ++# info -n '(gettext)Header Entry' ++# ++# Some information specific to po-debconf are available at ++# /usr/share/doc/po-debconf/README-trans ++# or http://www.debian.org/intl/l10n/po-debconf/README-trans ++# ++# Developers do not need to manually edit POT or PO files. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: seyon\n" ++"Report-Msgid-Bugs-To: \n" ++"POT-Creation-Date: 2003-10-13 02:02+0100\n" ++"PO-Revision-Date: 2004-12-31 11:57+0100\n" ++"Last-Translator: Miroslav Kure \n" ++"Language-Team: Czech \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=ISO-8859-2\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#. Description ++#: ../templates:4 ++msgid "Modem device" ++msgstr "Zaøízení modemu" ++ ++#. Description ++#: ../templates:4 ++msgid "" ++"Please choose the device file corresponding to the port the modem is " ++"connected to. This may be /dev/ttyS1 or any other device file." ++msgstr "" ++"Vyberte soubor zaøízení, který odpovídá portu, ke kterému je modem pøipojen. " ++"Mù¾e to být /dev/ttyS1, nebo nìjaký jiný soubor zaøízení." ++ ++#. Description ++#: ../templates:4 ++msgid "" ++"/dev/modem is usually a symbolic link to the appropriate device file. This " ++"configuration program will not setup this link. If you choose \"/dev/modem" ++"\", the link should already exist." ++msgstr "" ++"/dev/modem èasto bývá symbolickým odkazem na pøíslu¹ný soubor zaøízení. " ++"Tento konfiguraèní program zmínìný odkaz nevytváøí. Zadáte-li tedy \"/dev/" ++"modem\", mìl by odkaz ji¾ existovat." +--- seyon-2.20c.orig/debian/conffiles ++++ seyon-2.20c/debian/conffiles +@@ -0,0 +1,2 @@ ++/etc/X11/app-defaults/Seyon ++/etc/X11/app-defaults/Seyon-color +--- seyon-2.20c.orig/debian/config.include ++++ seyon-2.20c/debian/config.include +@@ -0,0 +1,84 @@ ++# Edit this file to configure debian/rules to build a package. ++# No modification of debian/rules should be neccessary. (Famous last words!) ++# ++# File by Joey Hess ++ ++# What is the name of the primary package in this sourcepackage? ++package=seyon ++ ++# Parameters to pass to rules file. This can include doc files, or ++# command-line switches. ++docs=1-{BUGREPORT,FAQ,HISTORY,README,SURVEY,TODO} ++examples=phonelist protocols startup ++binfiles=$(package) ++copyright=debian/copyright ++ ++# What file must exist in the current directory if the package is ++# properly unpacked here? ++test_file=$(package).h ++ ++# Does this package build from an Imakefile? ++# If so, uncomment the line below. ++use_imakefile=y ++ ++# Does this package build from a Configure script? ++# If so, uncomment the line below and enter the command to run to run the ++# Configure script (ie: "./Configure") ++#use_configure=./Configure ++ ++# What commands to run to build the package? ++define build_command ++ $(MAKE) ++endef ++ ++# What commands to run to clean up after a build? ++define clean_command ++ -$(MAKE) -i clean ++endef ++ ++# List here any files that must be removed during "debian/rules clean" ++# that clean_command doesn't take care of. ++clean_files= ++ ++# List here any temporary directories that are used to build multiple- ++# binary packages. These are automatically created and removed. ++tmp_dirs= ++ ++# List here any files that should be preserved during a build, and restored ++# to their original state during a clean. For example, if the package comes ++# with both an Imakefile and a Makefile, and xmkmf is run, list the original ++# Makefile here so it will be backed up before it is overwritten my xmkmf. ++preserve_files=Makefile ++ ++# What command to run to install the package into debian/tmp? ++# You might want to edit the package's Makefile and add $(PREFIX) ++# to all the paths it installs files to. or, you can just write ++# your own install commands here instead. ++# ++# Note that debian/* and the files in /usr/share/doc will be installed ++# properly for you, you don't need to do that here. ++# ++define install_command ++ $(MAKE) DESTDIR=debian/tmp install ++ install -d debian/tmp/etc/X11/seyon ++ ln -sf /etc/X11/seyon/seyon-emu debian/tmp/usr/X11R6/bin/seyon-emu ++ install -d debian/tmp/usr/X11R6/man/man1 ++ install -m 644 seyon.man debian/tmp/usr/X11R6/man/man1/seyon.1x ++ install -m 644 debian/seyon-emu.man debian/tmp/usr/X11R6/man/man1/seyon-emu.1x ++ # Install 1-CHANGES as upstream changelog. ++ install -d debian/tmp/usr/share/doc/$(package) ++ cp 1-CHANGES debian/tmp/usr/share/doc/$(package)/changelog ++ strip --remove-section=.comment --remove-section=.note debian/tmp/usr/X11R6/bin/seyon ++ install -d debian/tmp/usr/lib/menu ++ install -m 644 debian/menu debian/tmp/usr/lib/menu/seyon ++endef ++ ++# After being installed in debian/tmp, everything is chowned to root.root, ++# and chmod g-ws is run on everything. Enter below any chmod commands you ++# need to run to set files to the proper permissions. This is where you ++# can make programs be suid, etc. ++# (Note that these commands will be run as root.) ++define ch_commands ++ chmod 644 debian/tmp/etc/X11/app-defaults/* ++ chmod 644 debian/tmp/usr/X11R6/lib/X11/seyon.help ++endef +--- seyon-2.20c.orig/debian/copyright ++++ seyon-2.20c/debian/copyright +@@ -0,0 +1,46 @@ ++This is a Debian prepackaged version of seyon. ++ ++This package was originally put together by Joey Hess ++, using sources from: ++ ++ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm/dialout/Seyon-2.14c-tar.gz ++ ++The following copyright applied to the old package: ++ ++====================================================================== ++ ++ Seyon is Copyright (c) 1992 of Muhammad M. Saggaf. Seyon is not ++ public domain. Permission is granted to use and distribute Seyon ++ freely for any use and to sell it at any price without reference to ++ the copyright owner provided that in all above cases Seyon is intact ++ and is not made part of any program either in whole or in part and ++ that this copyright notice is included with Seyon. Permission is ++ also granted to modify the source as long as the modified source is ++ not distributed. ++ ++====================================================================== ++ ++As of May 1999, Muhammad M. Saggaf has given permission for seyon to ++be released and maintained under GPL (see ++/usr/share/common-licenses/GPL): ++ ++Dear Steve: ++ ++I received your letter today (yes, I know it took a long time, it took a ++trip half-way around the world and then back to my current address in the ++U.S.). I share your view about license for Seyon, I think it is too ++restrictive, especially that I'm not actively maintaining it. The purpose ++behind that restriction was to prevent incompatible versions, really, but I ++don't think it was the correct way of doing that. You have my permission to ++modify the license (e.g. the GPL is just fine) and distribute the package ++with the new license. ++ ++My very best wishes, ++ ++-- M. Saggaf ++ msaggaf@erl.mit.edu ++ ++For now I am the new upstream maintainer as well as the Debian ++maintainer for the seyon package. Upstream sources without the Debian ++patches will be made available shortly from sunsite.unc.edu (now ++better known as metalab.unc.edu), as above. +--- seyon-2.20c.orig/debian/examples ++++ seyon-2.20c/debian/examples +@@ -0,0 +1,7 @@ ++script.QWK ++script.unix ++script.CIS ++script.PCBoard ++startup ++protocols ++phonelist +--- seyon-2.20c.orig/debian/postinst ++++ seyon-2.20c/debian/postinst +@@ -0,0 +1,27 @@ ++#!/bin/sh -e ++ ++case "$1" in ++ abort-upgrade|abort-remove|abort-deconfigure) ++ exit 0;; # Don't prompt for configuration if something went wrong... ++esac ++ ++if test -x /usr/bin/update-menus; then update-menus; fi ++ ++EMU=/etc/X11/seyon/seyon-emu ++COLORDEFAULTS=/etc/X11/seyon/Seyon ++MODEMDEFAULTS=/etc/X11/seyon/Seyon-modem ++ ++. /usr/share/debconf/confmodule ++db_version 2.0 ++ ++if [ ! -f $COLORDEFAULTS -o ! -f $MODEMDEFAULTS ]; then ++ ++ # No longer need to worry about colour/mono app-defaults any more; the ++ # system will get it right... ++ ++ ln -sf /usr/bin/x-terminal-emulator $EMU ++ ++fi ++exit 0 ++ ++#DEBHELPER# +--- seyon-2.20c.orig/debian/postrm ++++ seyon-2.20c/debian/postrm +@@ -0,0 +1,21 @@ ++#!/bin/sh -e ++ ++if test -x /usr/bin/update-menus; then update-menus; fi ++ ++XTERM=/etc/X11/seyon/seyon-emu ++COLORDEFAULTS=/etc/X11/seyon/Seyon ++MODEMDEFAULTS=/etc/X11/seyon/Seyon-modem ++ ++if [ "$1" = "purge" ] ++then ++ rm -f $XTERM $COLORDEFAULTS $MODEMDEFAULTS ++ rmdir /etc/X11/seyon /etc/X11 2>/dev/null || true ++ ++ . /usr/share/debconf/confmodule ++ ++ db_purge ++ ++ ++fi ++ ++#DEBHELPER# +--- seyon-2.20c.orig/debian/postrm.debhelper ++++ seyon-2.20c/debian/postrm.debhelper +@@ -0,0 +1,78 @@ ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section ++# Automatically added by dh_installdebconf ++if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then ++ . /usr/share/debconf/confmodule ++ db_purge ++fi ++# End automatically added section +--- seyon-2.20c.orig/debian/preinst ++++ seyon-2.20c/debian/preinst +@@ -0,0 +1,15 @@ ++#! /bin/sh ++# see: dh_installdeb(1) ++ ++set -e ++ ++# Source debconf library ++. /usr/share/debconf/confmodule ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++ ++ +--- seyon-2.20c.orig/debian/rules ++++ seyon-2.20c/debian/rules +@@ -0,0 +1,143 @@ ++#!/usr/bin/make -f ++############################################################################## ++# Generic debian/rules file. Based on: ++# ++#> Sample debian.rules file - for GNU Hello (1.3). ++#> Copyright 1994,1995 by Ian Jackson. ++#> I hereby give you perpetual unlimited permission to copy, ++#> modify and relicense this file, provided that you do not remove ++#> my name from the file itself. (I assert my moral right of ++#> paternity under the Copyright, Designs and Patents Act 1988.) ++# ++# Heavily modified by Joey Hess ++# ++############################################################################## ++# ++# NOTE: You shouldn't have to edit this file. Edit debian/config.include instead. ++# If you must edit this file to get your package to build properly, then ++# I have failed. Let me know; mail jeh22@cornell.edu. ++# ++# (Currently not handled: multiple binary packages from 1 source package, ++# and binary-indep rule.) ++# ++# NOTE: This file is designed so it doesn't need to be run as root. For ++# actions that require that the user be root, the root password will be ++# prompted for, if you're not already root. ++# ++############################################################################## ++ ++# Include config file. ++include debian/config.include ++ ++# Generate a makefile (via configure scriopt or xmkmf). ++makefile-stamp: ++ ifeq ($(strip $(use_imakefile)),y) ++ xmkmf -a ++ endif ++ $(use_configure) ++ touch makefile-stamp ++ ++# Preserve some files that may get deleted/overwritten/modified otherwise. ++preserve-stamp: ++ ifneq ($(strip $(preserve_files)),) ++ $(foreach file,$(preserve_files),-cp $(file) $(file).preserved) ++ endif ++ touch preserve-stamp ++ ++build: preserve-stamp makefile-stamp ++ $(checkdir) ++ $(build_command) ++ touch build ++ ++clean: preserve-stamp makefile-stamp ++ $(checkdir) ++ # Do actual cleaning up here. ++ -rm -f build ++ $(clean_command) ++ -rm -rf *~ debian/*~ debian/files* $(clean_files) ++ $(clean_tmp) ++ # Remove Makefile that xmkmf creates. ++ ifeq ($(strip $(use_imakefile)),y) ++ -rm -f Makefile ++ endif ++ # If we preserved some files, we need to restore them now. ++ ifneq ($(strip $(preserve_files)),) ++ $(foreach file,$(preserve_files),-mv -f $(file).preserved $(file)) ++ endif ++ -rm -f preserve-stamp makefile-stamp ++ ++# Build architecture-independent files here. ++# (not yet set up to be used) ++binary-indep: build ++ $(checkdir) ++ ++# Build architecture-dependent files here. ++binary-arch: build ++ $(checkdir) ++ $(clean_tmp) ++ install -d debian/tmp debian/tmp/DEBIAN debian/tmp/usr/share/doc/$(package) ++ $(install_command) ++ # Compress manpages ++ -gzip -9v -r debian/tmp/usr/man/ debian/tmp/usr/X11R6/man/ ++ # Install documentation files, compressed. ++ ifneq ($(strip $(docs)),) ++ cp $(docs) debian/tmp/usr/share/doc/$(package) ++ gzip -9v debian/tmp/usr/share/doc/$(package)/* ++ endif ++ # Install copyright file, don't compress. ++ ifneq ($(strip $(copyright)),) ++ cp $(copyright) debian/tmp/usr/share/doc/$(package)/copyright ++ endif ++ # Install examples, compressed. ++ ifneq ($(strip $(examples)),) ++ install -d debian/tmp/usr/share/doc/$(package)/examples ++ cp $(examples) debian/tmp/usr/share/doc/$(package)/examples ++ gzip -9v debian/tmp/usr/share/doc/$(package)/examples/* ++ endif ++ # Install other debian files if they exist. ++ -install -m 644 debian/changelog debian/tmp/usr/share/doc/$(package)/changelog.Debian ++ -gzip -9v debian/tmp/usr/share/doc/$(package)/changelog.Debian ++ -install -m 644 debian/conffiles debian/tmp/DEBIAN/conffiles ++ -install -m 755 debian/preinst debian/tmp/DEBIAN/preinst ++ -install -m 755 debian/postinst debian/tmp/DEBIAN/postinst ++ -install -m 755 debian/prerm debian/tmp/DEBIAN/prerm ++ -install -m 755 debian/postrm debian/tmp/DEBIAN/postrm ++ # Generate control file. ++ dpkg-shlibdeps $(binfiles) ++ dpkg-gencontrol -isp ++ # Set permissions. ++ @[ "`whoami`" != root ] && \ ++ echo -e "\n ** Enter root password to set file permissions."; \ ++ debian/rules setperms ++ # C. Perrier. Well, debhelper helps a lot for all this..:-) ++ # Install debconf templates (with debhelper) ++ dh_installdebconf ++ # Actually build the .deb file. ++ dpkg --build debian/tmp .. ++ ++# This must be run suid root, it sets the file permissions in debian/tmp ++setperms: ++ chown -R root.root debian/tmp ++ chmod -R g-ws debian/tmp ++ -$(ch_commands) ++ ++define checkdir ++ @test -f $(test_file) -a -f debian/rules || (echo -e "\n\ ++ ** \"$(test_file)\" or \"debian/rules\" does not exist.\n\ ++ ** Either \"$(package)\" is not unpacked in this directory, or\n\ ++ ** an incorrect test_file is specified in debian/config.\n" && false) ++endef ++ ++# This rm's the debian/tmp directory. ++define clean_tmp ++ -rm -rf debian/tmp >/dev/null 2>&1 ++ @if [ -d debian/tmp ]; then \ ++ if [ "`whoami`" != root ]; then \ ++ echo -e "\n ** Enter root password to remove debian/tmp."; \ ++ fi; \ ++ rm -rf debian/tmp; \ ++ fi ++endef ++ ++binary: binary-indep binary-arch ++.PHONY: clean setperms binary +--- seyon-2.20c.orig/debian/rules.old ++++ seyon-2.20c/debian/rules.old +@@ -0,0 +1,136 @@ ++#!/usr/bin/make -f ++############################################################################## ++# Generic debian/rules file. Based on: ++# ++#> Sample debian.rules file - for GNU Hello (1.3). ++#> Copyright 1994,1995 by Ian Jackson. ++#> I hereby give you perpetual unlimited permission to copy, ++#> modify and relicense this file, provided that you do not remove ++#> my name from the file itself. (I assert my moral right of ++#> paternity under the Copyright, Designs and Patents Act 1988.) ++# ++# Heavily modified by Joey Hess ++# ++############################################################################## ++# ++# NOTE: You shouldn't have to edit this file. Edit debian/config instead. ++# If you must edit this file to get your package to build properly, then ++# I have failed. Let me know; mail me. ++# ++# (Currently not handled: multiple binary packages from 1 source package, ++# and binary-indep rule.) ++# ++# NOTE: This file is designed so it doesn't need to be run as root. For ++# actions that require that the user be root, the root password will be ++# prompted for, if you're not already root. ++# ++############################################################################## ++# ++# Changelog: ++# * Fakeroot and sudo fixes. ++# * Run dpkg-gencontrol after debstd, and delete substvars during clean. ++# * Clean up junk files in subdirs. ++# * Modifications for multiple binary package support. ++# * Call debstd after fixing file perms. ++# * Don't pass package name to debstd + fixes for multi binary packages. ++# * Use build-stamp instead of build. ++# * New email address. ++# * Added changelog. ++# ++############################################################################## ++ ++# Include config file. ++include debian/config ++ ++# Generate a makefile (via configure scriopt or xmkmf). ++makefile-stamp: ++ ifeq ($(strip $(use_imakefile)),y) ++ xmkmf -a ++ endif ++ $(use_configure) ++ touch makefile-stamp ++ ++# Preserve some files that may get deleted/overwritten/modified otherwise. ++preserve-stamp: ++ ifneq ($(strip $(preserve_files)),) ++ $(foreach file,$(preserve_files),cp $(file) $(file).preserved ;) ++ endif ++ touch preserve-stamp ++ ++build-stamp: preserve-stamp makefile-stamp ++ $(checkdir) ++ $(build_command) ++ touch build-stamp ++ ++build: build-stamp ++ ++clean: preserve-stamp makefile-stamp ++ $(checkdir) ++ # Do actual cleaning up here. ++ -rm -f build-stamp ++ $(clean_command) ++ -find . -name '\#*\#' -o -name '*~' -o -name 'DEADJOE' -exec rm -f {} \; ++ -rm -f debian/files* debian/substvars debian/*.substvars $(clean_files) ++ $(clean_tmp) ++ # Remove Makefile that xmkmf creates. ++ ifeq ($(strip $(use_imakefile)),y) ++ -rm -f Makefile ++ endif ++ # If we preserved some files, we need to restore them now. ++ ifneq ($(strip $(preserve_files)),) ++ $(foreach file,$(preserve_files),mv -f $(file).preserved $(file); ) ++ endif ++ -rm -f preserve-stamp makefile-stamp ++ ++# Build architecture-independent files here. ++# (not yet set up to be used) ++binary-indep: build ++ $(checkdir) ++ ++# Build architecture-dependent files here. ++binary-arch: build ++ $(checkdir) ++ $(clean_tmp) ++ $(install_command) ++ # Set permissions and check package for problems, then build package. ++ @if [ "`whoami`" != root ]; then \ ++ echo -e "\n ** Enter root password to set file permissions."; \ ++ sudo debian/rules setperms; \ ++ else \ ++ debian/rules setperms; \ ++ fi ++ ++# This must be run suid root, it sets the file permissions in debian/tmp ++setperms: ++ chown -R root.root debian/tmp ++ chmod -R g-ws debian/tmp ++ # Debstd handles lots of nasty details. This requires that the debmake ++ # package is installed. ++ -debstd $(debstd) $(docs) ++ dpkg-gencontrol -p$(package) ++ $(ch_commands) ++ dpkg --build debian/tmp .. ++ ++define checkdir ++ @test -e $(test_file) -a -f debian/rules || (echo -e "\n\ ++ ** \"$(test_file)\" or \"debian/rules\" does not exist.\n\ ++ ** Either the package is not unpacked in this directory, or\n\ ++ ** an incorrect test_file is specified in debian/config.\n" && false) ++endef ++ ++# This rm's the debian/tmp directory, and any other directories specified in ++# tmpdirs ++define clean_tmp ++ -rm -rf debian/tmp >/dev/null 2>&1 ++ @if [ -d debian/tmp -o -n "$(tmp_dirs)" ]; then \ ++ if [ "`whoami`" != root ]; then \ ++ echo -e "\n ** Enter root password to remove temporary directories $(tmp_dirs)"; \ ++ sudo rm -rf debian/tmp $(tmp_dirs); \ ++ else \ ++ rm -rf debian/tmp $(tmp_dirs); \ ++ fi; \ ++ fi ++endef ++ ++binary: binary-indep binary-arch ++.PHONY: clean setperms binary +--- seyon-2.20c.orig/debian/seyon-emu.man ++++ seyon-2.20c/debian/seyon-emu.man +@@ -0,0 +1,23 @@ ++.TH SEYON 1 \" -*- nroff -*- ++ ++.SH NAME ++Seyon \- X11 Telecommunications Package. ++ ++.SH SYNOPSIS ++.B seyon-emu ++ ++.SH DESCRIPTION ++ ++.P ++ ++\fISeyon-emu\fP is the name of the terminal-emulator program called by ++\fIseyon\fP. This will normally simply be a symbolic link to another ++program (such as \fIxterm\fP or \fIrxvt\fP). Therefore read the manual ++page of the appropriate program for its options. ++ ++.SH SEE ALSO ++rxvt(1), xterm(1), seyon(1) ++ ++This manual page added by Steve McIntyre , ++Debian maintainer of seyon, 14th March 1998. ++ +--- seyon-2.20c.orig/debian/substvars ++++ seyon-2.20c/debian/substvars +@@ -0,0 +1,2 @@ ++shlibs:Depends=libc6 (>= 2.3.2.ds1-4), libice6 | xlibs (>> 4.1.0), libsm6 | xlibs (>> 4.1.0), libx11-6 | xlibs (>> 4.1.0), libxaw7 (>> 4.1.0), libxext6 | xlibs (>> 4.1.0), libxmu6 | xlibs (>> 4.1.0), libxpm4 | xlibs (>> 4.1.0), libxt6 | xlibs (>> 4.1.0) ++misc:Depends=debconf (>= 0.5) | debconf-2.0, debconf (>= 0.5) +--- seyon-2.20c.orig/debian/templates ++++ seyon-2.20c/debian/templates +@@ -0,0 +1,10 @@ ++Template: seyon/device ++Type: string ++Default: /dev/modem ++_Description: Modem device ++ Please choose the device file corresponding to the port the modem is ++ connected to. This may be /dev/ttyS1 or any other device file. ++ . ++ /dev/modem is usually a symbolic link to the appropriate device file. ++ This configuration program will not setup this link. If you choose ++ "/dev/modem", the link should already exist. +--- seyon-2.20c.orig/debian/config ++++ seyon-2.20c/debian/config +@@ -0,0 +1,92 @@ ++#!/bin/sh -e ++ ++# Some ideas stolen from the cvs package ++ ++# Config script for seyon using debconf ++. /usr/share/debconf/confmodule ++db_version 2.0 || [ $? -lt 30 ] ++ ++db_title "Seyon communication software" ++ ++# Defaults ++MODEMDEFAULTS=/etc/X11/seyon/Seyon-modem ++DEFAULTPORT=/dev/modem ++PORT=$DEFAULTPORT ++ ++read_rcfile() { ++ # Default values ++ if [ -f $MODEMDEFAULTS ]; then ++ PORT=`cat $MODEMDEFAULTS | grep -m1 "^seyon\*modems:" | cut -f2 -d: 2>/dev/null` ++ fi ++ if [ -z $PORT ] ; then ++ PORT=$DEFAULTPORT ++ fi ++} ++ ++write_rcfile() { ++ TEMPFILE=`tempfile` ++ if [ -f $MODEMDEFAULTS ]; then ++ ESCAPEDPORT=`echo $PORT | sed 's/\//\\\\\//g'` ++ sed "s/^seyon\*modems:.*$/seyon\*modems: ${ESCAPEDPORT}/" $MODEMDEFAULTS > $TEMPFILE ++ chmod --reference=$MODEMDEFAULTS $TEMPFILE ++ chown --reference=$MODEMDEFAULTS $TEMPFILE ++ else ++ echo "seyon*modems: $PORT" > $TEMPFILE ++ chmod 640 $TEMPFILE ++ chown root.dialout $TEMPFILE ++ fi ++ if [ ! -d /etc/X11/seyon ] ; then ++ mkdir -p /etc/X11/seyon ++ fi ++ mv $TEMPFILE $MODEMDEFAULTS ++} ++ ++set_debconf() { ++ if [ "$PORT" ]; then ++ db_set seyon/device "$PORT" || true ++ fi ++} ++ ++get_debconf() { ++ db_get seyon/device ++ PORT=$RET ++ # If not present, use default ++ if [ "$PORT" = "" ] ++ then ++ PORT=$DEFAULTPORT ++ fi ++} ++ ++ ++input_settings() { ++ db_input low seyon/device || true ++ db_go ++ db_get seyon/device ++ PORT=$RET ++ # If not present, use default ++ if [ "$PORT" = "" ] ++ then ++ PORT=$DEFAULTPORT ++ fi ++} ++ ++ ++## Main program ++# We first read the settings file ++# in order to get admin-modified settings ++read_rcfile ++# Debconf-stored values are updated accordingly ++set_debconf ++# They are re-read from Debconf ++get_debconf ++# In case the package has never been configured, the settings ++# are asked through debconf ++input_settings ++# They are re-re-read from debconf ++# for updating variables ++get_debconf ++# The settings file is written ++write_rcfile ++# Then we do some other stuff, which could sometimes lead to ++# debconf showing screens ++# This is why they are here and not in the postinst script +--- seyon-2.20c.orig/debian/control ++++ seyon-2.20c/debian/control +@@ -0,0 +1,18 @@ ++Source: seyon ++Section: comm ++Priority: extra ++Maintainer: Steve McIntyre <93sam@debian.org> ++Standards-Version: 3.6.1.1 ++Build-Depends: xlibs-dev, xutils, libxaw7-dev | libxaw-dev, bison, debhelper (>= 4.1.16) ++ ++Package: seyon ++Architecture: any ++Depends: ${shlibs:Depends}, xterm | x-terminal-emulator, debconf (>= 1.2.9) ++Suggests: lrzsz, ckermit ++Description: Full-featured native X11 communications program ++ Seyon is a complete full-featured modem communications package ++ for the X Window System. Some of its features are: ++ - dialing directory ++ - terminal emulation (DEC VT02, Tektronix 4014 and ANSI) ++ - script language ++ - Zmodem +--- seyon-2.20c.orig/debian/menu ++++ seyon-2.20c/debian/menu +@@ -0,0 +1,3 @@ ++?package(seyon):needs="X11" section="Apps/Net" hints="Terminal" \ ++ title="Seyon" longtitle="Seyon communications program" \ ++ command="seyon" +--- seyon-2.20c.orig/debian/prerm ++++ seyon-2.20c/debian/prerm +@@ -0,0 +1,10 @@ ++#!/bin/sh ++ ++ ++PACKAGE=seyon ++ ++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/$PACKAGE ]; then ++ rm -f /usr/doc/$PACKAGE ++fi ++ ++#DEBHELPER# +--- seyon-2.20c.orig/debian/changelog ++++ seyon-2.20c/debian/changelog +@@ -0,0 +1,267 @@ ++seyon (2.20c-16) unstable; urgency=low ++ ++ * Added Czech debconf template. Thanks to Miroslav Kure for the ++ patch. Closes: #288019. ++ ++ -- Steve McIntyre <93sam@debian.org> Mon, 03 Jan 2005 21:49:33 +0000 ++ ++seyon (2.20c-15) unstable; urgency=low ++ ++ * Fix handling of /etc/X11/seyon/Seyon-modem on new ++ installations. Closes: #275167. Thanks to Rob Epping for the patch. ++ * Updated Standards-version and fixed some lintian warnings. ++ ++ -- Steve McIntyre <93sam@debian.org> Mon, 25 Oct 2004 22:58:45 +0100 ++ ++seyon (2.20c-14) unstable; urgency=low ++ ++ * Updated French debconf template. Thanks to Christian ++ Perrier. Closes: #216159. ++ * Added Dutch debconf template. Thanks to Tim Vandermeersch. Closes: ++ #209081. ++ ++ -- Steve McIntyre <93sam@debian.org> Sun, 02 Nov 2003 16:10:08 +0000 ++ ++seyon (2.20c-13) unstable; urgency=low ++ ++ * Fixed typo in debian/templates. Closes: #209080 ++ * Update to use new serial speed interface for Linux. Closes: #206321. ++ Thanks to Elrik Fuller for the patch. ++ ++ -- Steve McIntyre <93sam@debian.org> Mon, 13 Oct 2003 02:00:51 +0100 ++ ++seyon (2.20c-12) unstable; urgency=low ++ ++ * Patch by Christian Perrier : ++ - rename debian/config to debian/config.include (avoid confusion ++ with the config file needed by debconf) ++ - Now uses debconf : ++ - Depends on debconf (>= 1.2.9 for gettext) ++ - new config script (should properly handle admin-modified settings ++ -->debconf is not a registry) ++ - rewrote postint ++ - new templates file (gettext-based) ++ This should make the installation uninteractive. Closes: #147269 ++ This should also remember the serial port on upgrade; Closes: #92414 ++ - Any value may be entered for the modem device. Closes: #87564 ++ * Make sure that the new Seyon-modem config file has the same ++ permissions as the old one. ++ ++ -- Steve McIntyre <93sam@debian.org> Mon, 21 Jul 2003 20:31:27 +0100 ++ ++seyon (2.20c-11) unstable; urgency=high ++ ++ * Real fix for the string-handling bug in FmtString(). Many thanks ++ to Barry Kitson for a _huge_ amount of work on this one. ++ * Several other less major string cleanups, again thanks to Barry. ++ ++ -- Steve McIntyre <93sam@debian.org> Wed, 16 Jul 2003 01:39:22 +0100 ++ ++seyon (2.20c-10) unstable; urgency=low ++ ++ * Fix for a nasty string-handling bug. Thanks to Barry Kitson for ++ the inspiration. Closes: #90613, #132484. ++ * Make sure we delete the generated Seyon.ad.h file on a "make clean". ++ ++ -- Steve McIntyre <93sam@debian.org> Mon, 14 Jul 2003 02:49:49 +0100 ++ ++seyon (2.20c-9) unstable; urgency=low ++ ++ * Fix multi-line strings so will build again with gcc 3.3. Closes: #196280 ++ Thanks to Joshua Kwan for the patch. ++ * Finally get around to replacing the NMU version. Closes: #133890 ++ Thanks Junichi... ++ * Fixed some lintian warnings ++ ++ -- Steve McIntyre <93sam@debian.org> Sat, 07 Jun 2003 19:08:02 +0100 ++ ++seyon (2.20c-8.1) unstable; urgency=low ++ ++ * NMU ++ * Do not write to $(HOME) when building. (closes: #133890) ++ * Fix build-deps to depend on libxaw7-dev | libxaw-dev instead of ++ libxaw-dev only. ++ ++ -- Junichi Uekawa Fri, 17 May 2002 21:12:50 +0900 ++ ++seyon (2.20c-8) unstable; urgency=medium ++ ++ * Added Build-Depends on bison. Closes: #123699. ++ * Turned app-defaults files into conffiles after lintian warning. ++ ++ -- Steve McIntyre <93sam@debian.org> Wed, 19 Dec 2001 17:24:13 +0000 ++ ++seyon (2.20c-7) unstable; urgency=low ++ ++ * Added Build-Depends on libxaw-dev. Closes: #89742. ++ ++ -- Steve McIntyre <93sam@debian.org> Thu, 15 Mar 2001 15:55:19 +0000 ++ ++seyon (2.20c-6) unstable; urgency=low ++ ++ * Properly added menu entry. Sorry! Closes: #80160. ++ ++ -- Steve McIntyre <93sam@debian.org> Wed, 14 Mar 2001 00:03:32 +0000 ++ ++seyon (2.20c-5) unstable; urgency=low ++ ++ * Added xutils to Build-Depends. Closes: #89134. ++ * Changed dependency on x-terminal-emulator to xterm | x-terminal-emulator to fix lintian warning. ++ * Added menu hint. Closes: #80160. ++ * I still think there's no better place in the menu structure than Apps/Net. Closes: #15080. ++ ++ -- Steve McIntyre <93sam@debian.org> Sat, 10 Mar 2001 11:12:39 +0000 ++ ++seyon (2.20c-4) unstable; urgency=low ++ ++ * New maintainer address. ++ * Renamed Build-Depends-Indep to Build-Depends. ++ ++ -- Steve McIntyre <93sam@debian.org> Wed, 07 Mar 2001 22:53:31 +0000 ++ ++seyon (2.20c-3) unstable; urgency=medium ++ ++ * Removed a broken usleep() declaration from SeDecl.h. Closes: #87532 ++ ++ -- Steve McIntyre Sun, 25 Feb 2001 11:31:56 +0000 ++ ++seyon (2.20c-2) unstable; urgency=medium ++ ++ * Move app-defaults file to /etc/X11/app-defaults. Closes: #86289 ++ * Now explicitly depends on x-terminal-emulator instead of imlicitly on xterm. Closes: #75343 ++ * Fixed includes from SePort.c, so it now builds again. Closes: 84487 ++ * Updated Standards-Version, added Build-Depends. ++ * Fixed lots of lintian warnings. ++ ++ -- Steve McIntyre Sat, 24 Feb 2001 11:01:56 +0000 ++ ++seyon (2.20c-1) unstable; urgency=low ++ ++ * Call makever.sh with sh, so it doesn't need to be executable. Fixes Bug#38037 ++ ++ -- Steve McIntyre Sun, 23 May 1999 20:19:56 +0100 ++ ++seyon (2.20c-0) unstable; urgency=low ++ ++ * Hurrah! Seyon is now free! Check the copyright file for more info. ++ Fixes Bug#20914. ++ * New upstream version, new upstream maintainer (me!) ++ ++ -- Steve McIntyre Sun, 09 May 1999 21:18:01 +0100 ++ ++seyon (2.14c-12) frozen unstable; urgency=low ++ ++ * Removed obsolete dependency on xbase. Would be important bug if we weren'y non-free... ++ ++ -- Steve McIntyre Sat, 06 Feb 1999 13:32:15 +0000 ++ ++seyon (2.14c-11) frozen unstable; urgency=low ++ ++ * Replaced Suggests: for now non-existent kermit package with ckermit. ++ ++ -- Steve McIntyre Thu, 14 Jan 1999 23:54:15 +0000 ++ ++seyon (2.14c-10) frozen unstable; urgency=low ++ ++ * Integrated non-maintainer diff (9.1) ++ ++ -- Steve McIntyre Wed, 30 Dec 1998 01:48:53 +0000 ++ ++seyon (2.14c-9.1) frozen unstable; urgency=low ++ ++ * non-maintainer (binary-only) upload for Alpha ++ * ignore error from $(ch_commands) as chmodding the Seyon symlink fails if ++ seyon isn't installed yet (and hence no /etc/X11/seyon/Seyon file). ++ ++ -- Paul Slootman Tue, 29 Dec 1998 20:11:10 +0100 ++ ++seyon (2.14c-9) frozen unstable; urgency=low ++ ++ * Fixed typo in mono app-default file; s/replcae/replace; thanks to Remo Badii for pointing this one out. ++ ++ -- Steve McIntyre Sun, 24 Oct 1998 20:15:08 +0100 ++ ++seyon (2.14c-8) unstable; urgency=low ++ ++ * Fixed script-handling code so it no longer seg-faults after running a "shell" command. Fixes Bug#27015. ++ * Include examples for phonelist, protocols and startup. Fixes Bug#23268. ++ ++ -- Steve McIntyre Sat, 17 Oct 1998 22:03:16 +0100 ++ ++seyon (2.14c-7) frozen unstable; urgency=low ++ ++ * Added missing sunsite reference to copyright file. Fixes bug #19870 ++ * Added error-checking to postinst - don't ask questions if something went wrong. Fizes bug #12608. ++ * Restores X beep after use; fixes bug #17231. ++ ++ -- Steve McIntyre Thu, 26 Mar 1998 22:54:54 -0000 ++ ++seyon (2.14c-6) unstable; urgency=low ++ ++ * New maintainer ++ * Added simple man page for seyon-emu. ++ * Other packaging fixes to close bug #19402. ++ * Uses correct devices (fixes bug #15061) ++ * Postinst fixed (fixes bug #16226) ++ ++ -- Steve McIntyre Sat, 14 Mar 1998 20:31:43 -0000 ++ ++seyon (2.14c-5.3) unstable; urgency=low ++ ++ * Fixed postint to not fail if enter is pressed in response to the first ++ question with no 'y' or 'n'. ++ * Postinst and postrm do not use bashisms, changes them to use /bin/sh. ++ ++ -- Joey Hess Sun, 16 Nov 1997 00:42:06 -0500 ++ ++seyon (2.14c-5.2) unstable; urgency=low ++ ++ * Libc6 release. ++ ++ -- Joey Hess Sun, 16 Nov 1997 00:42:06 -0500 ++ ++seyon (2.14c-5.1) unstable; urgency=low ++ ++ * Changed maintainer to Debian QA Group; seyon is orphaned. ++ * Updated to use new source format (#9561). ++ * Use pristine sources. ++ * Register with menu system. ++ * Depend on xbase for xterm. ++ * Use ttyS instead of cua (#4922). ++ * If upgrading, and we used cua before, update the conffiles to use ttyS ++ instead. ++ * Include phonelist in the examples directory (#6475). ++ ++ -- Joey Hess Mon, 1 Sep 1997 13:13:24 -0400 ++ ++Wed Jul 24 23:18:23 1996 Sven Rudolph ++ ++ * debian.control: added exetended description (Bug#3689) ++ ++ * debian.rules: corrected multiarchitecture support ++ ++ * debian.control: added Section: and Priority: ++ ++Thu Apr 4 19:38:36 1996 Sven Rudolph ++ ++ * releasing 2.14c-3 ++ ++ * rebuilt for ELF ++ ++ * debian.postinst: fixed creytion of seyon-emu symlink ++ ++ * debian.control: removed Package_Revision field ++ added Architecture field ++ ++Thu Sep 21 23:23:52 1995 Sven Rudolph ++ ++ * moved config data to /etc/X11/seyon ++ ++ * debian.postinst: postinst doesn't modify ++ /etc/X11/xinit/Xresources and ++ /etc/X11/xdm/Xresources now ++ ++ * debian.control: fixed entries for DEPENDS and OPTIONAL ++ (Bug#1409, Bug#1177) ++ ++ * debian.control: corrected location of manpage (Bug#490) +--- seyon-2.20c.orig/typescript ++++ seyon-2.20c/typescript +@@ -0,0 +1,37 @@ ++Script started on Thu Feb 24 23:08:45 2000 ++hammer:~/debian/seyon/seyon-2.20c$ make clean && make ++rm -f seyon ++rm -f version.h y.tab.* SeParse.c ++rm -f *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut "#"* ++rm -f version.h ++sh ./makever.sh ++Machine type is i686, OS name is Linux ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o Seyon.o Seyon.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeActions.o SeActions.c ++bison -y -d SeParse.y ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeScan.o SeScan.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeDial.o SeDial.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeErr.o SeErr.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeGeneric.o SeGeneric.c ++rm -f SeInit.o ++gcc -c -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DHELPFILE=\"/usr/X11R6/lib/X11/seyon.help\" SeInit.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeIo.o SeIo.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeMisc.o SeMisc.c ++mv -f y.tab.c SeParse.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeParse.o SeParse.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SePort.o SePort.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeScript.o SeScript.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSet.o SeSet.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSig.o SeSig.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeString.o SeString.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSubs.o SeSubs.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSubsX.o SeSubsX.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeSupp.o SeSupp.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeTerm.o SeTerm.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeTrans.o SeTrans.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o SeWin.o SeWin.c ++gcc -O2 -g -Wall -I/usr/X11R6/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE=500L -D_BSD_SOURCE -D_SVID_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -c -o MultiList.o MultiList.c ++rm -f seyon ++gcc -o seyon -O2 -g -Wall -L/usr/X11R6/lib Seyon.o SeActions.o SeScan.o SeDial.o SeErr.o SeGeneric.o SeInit.o SeIo.o SeMisc.o SeParse.o SePort.o SeScript.o SeSet.o SeSig.o SeString.o SeSubs.o SeSubsX.o SeSupp.o SeTerm.o SeTrans.o SeWin.o MultiList.o -lXaw -lXmu -lXt -lSM -lICE -lXext -lX11 ++hammer:~/debian/seyon/seyon-2.20c$ ++Script done on Thu Feb 24 23:09:17 2000 diff --git a/source/xap/seyon/slack-desc b/source/xap/seyon/slack-desc new file mode 100644 index 000000000..70c0d0899 --- /dev/null +++ b/source/xap/seyon/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +seyon: seyon (telecommunications package) +seyon: +seyon: Seyon is a complete full-featured telecommunications package for the +seyon: X Window System. Some of its features are: Dialing directory that +seyon: supports an unlimited number of entries. Terminal emulation window +seyon: supporting DEC VT02, Tektronix 4014, and ANSI. Script language to +seyon: automate tedious tasks such as logging into remote hosts. Unlimited +seyon: number of slots for external file transfer protocols. Support for +seyon: zmodem auto-download. Seyon is intended to be both simple and +seyon: extensively configurable. +seyon: diff --git a/source/xap/thunar-volman/slack-desc b/source/xap/thunar-volman/slack-desc new file mode 100644 index 000000000..a5fdf60b8 --- /dev/null +++ b/source/xap/thunar-volman/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------| +thunar-volman: thunar-volman (Thunar Volume Manager Plugin) +thunar-volman: +thunar-volman: thunar-volman is an extension for the Thunar File Manager, +thunar-volman: which enables automatic management of removable drives and +thunar-volman: media. +thunar-volman: +thunar-volman: It was designed to look and act similar to gnome-volume-manager +thunar-volman: to get consistent removable drive and media management in both +thunar-volman: Xfce and GNOME. +thunar-volman: +thunar-volman: diff --git a/source/xap/thunar-volman/thunar-volman.SlackBuild b/source/xap/thunar-volman/thunar-volman.SlackBuild new file mode 100755 index 000000000..bf14ff9e3 --- /dev/null +++ b/source/xap/thunar-volman/thunar-volman.SlackBuild @@ -0,0 +1,84 @@ +#!/bin/sh + +# Slackware build script for thunar-volman +# http://goodies.xfce.org/releases/thunar-volman/ + +# Copyright 2007-2009 Robby Workman, Northport, Alabama, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''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 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. + + +PRGNAM=thunar-volman +VERSION=0.3.80 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --enable-debug=no \ + --build=$ARCH-slackware-linux + +make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS \ + $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/vim-gvim b/source/xap/vim-gvim new file mode 120000 index 000000000..1a147f49f --- /dev/null +++ b/source/xap/vim-gvim @@ -0,0 +1 @@ +../ap/vim \ No newline at end of file diff --git a/source/xap/windowmaker/slack-desc b/source/xap/windowmaker/slack-desc new file mode 100644 index 000000000..ef3edbe72 --- /dev/null +++ b/source/xap/windowmaker/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +windowmaker: windowmaker (a fast and elegant window manager) +windowmaker: +windowmaker: Window Maker is a window manager for the X Window System that is +windowmaker: relatively fast and small, feature rich, easy to use, with a simple +windowmaker: and elegant appearance reminiscent of the NeXTSTEP(tm) graphical +windowmaker: user interface. +windowmaker: +windowmaker: Window Maker is part of the official GNU project. +windowmaker: +windowmaker: +windowmaker: diff --git a/source/xap/windowmaker/windowmaker.SlackBuild b/source/xap/windowmaker/windowmaker.SlackBuild new file mode 100755 index 000000000..8736f0589 --- /dev/null +++ b/source/xap/windowmaker/windowmaker.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=20060427cvs +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-windowmaker +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf WindowMaker-$VERSION +tar xvf $CWD/WindowMaker-$VERSION.tar.bz2 || exit 1 +cd WindowMaker-$VERSION || exit 1 + +zcat $CWD/windowmaker.no-mmx.diff.gz | patch -p1 --verbose -F 3 || exit 1 +sh autogen.sh + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# This should be non-interactive where possible. +zcat $CWD/wmaker.inst.diff.gz | patch -p1 --verbose || exit + +LINGUAS="$(cd po ; /bin/ls *.po | sed 's/.po//g')" \ +GNUSTEP_LOCAL_ROOT=/usr/lib${LIBDIRSUFFIX}/GNUstep \ +CFLAGS="$SLKCFLAGS" \ +NLSDIR=/usr/share/locale \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc/X11 \ + --enable-gnome \ + --enable-kde \ + --enable-usermenu \ + --with-appspath=/usr/lib${LIBDIRSUFFIX}/GNUstep/Applications \ + --build=$ARCH-slackware-linux + +# NLS bugs like -i +make $NUMJOBS || make -i || exit 1 + +# Change /usr/local/GNUstep to /usr/lib/GNUstep in the WMRootMenu: +sed -i -e "s#/usr/local/GNUstep/Applications/WPrefs.app/#/usr/lib${LIBDIRSUFFIX}/GNUstep/Applications/WPrefs.app/#" \ + $(grep -lr '/usr/local/GNUstep/Applications/WPrefs.app/' *) + +make -i install DESTDIR=$PKG +mkdir -p $PKG/usr/doc/WindowMaker-$VERSION +cp -a \ + AUTHORS BUGFORM BUGS COPYING COPYING.WTFPL FAQ FAQ.I18N FAQ.I18N.cs FAQ.I18N.sk INSTALL INSTALL.cs INSTALL.es INSTALL.fr INSTALL.pt INSTALL.sk MIRRORS NEWS README README.definable-cursor README.pt TODO \ + $PKG/usr/doc/WindowMaker-$VERSION +cd $TMP +rm -rf WindowMaker-extra-0.1 +tar xvf $CWD/WindowMaker-extra-0.1.tar.gz || exit 1 +cd WindowMaker-extra-0.1 || exit 1 +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-iconsdir=/usr/share/pixmaps \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/etc/X11/xinit +cat $CWD/xinitrc.wmaker > $PKG/etc/X11/xinit/xinitrc.wmaker +chmod 755 $PKG/etc/X11/xinit/xinitrc.wmaker + +gzip -9 $PKG/usr/man/man1/* $PKG/usr/man/sk/man1/* + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/windowmaker-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/windowmaker/windowmaker.no-mmx.diff b/source/xap/windowmaker/windowmaker.no-mmx.diff new file mode 100644 index 000000000..277cc79e4 --- /dev/null +++ b/source/xap/windowmaker/windowmaker.no-mmx.diff @@ -0,0 +1,19 @@ +--- ./configure.ac.01 2008-06-02 08:42:30.000000000 +0200 ++++ ./configure.ac 2008-06-02 08:46:49.000000000 +0200 +@@ -190,7 +190,15 @@ + # until we fix it, leave it disabled + asm_support=no + mmx_support=no +-if test "$ac_cv_prog_gcc" = yes; then ++ ++check_for_mmx_support=yes ++AC_ARG_ENABLE(mmx, ++ [ --disable-mmx disable compilation of MMX inline assembly ], ++ [if test x$enableval != xyes; then ++ check_for_mmx_support=no ++ fi]) ++ ++if test "$ac_cv_prog_gcc" = yes -a "$check_for_mmx_support" = yes; then + case $host_cpu in + *i?86*) + # gcc-3.3 or newer complains about some of our stuff without this diff --git a/source/xap/windowmaker/wmaker.inst.diff b/source/xap/windowmaker/wmaker.inst.diff new file mode 100644 index 000000000..c80edd341 --- /dev/null +++ b/source/xap/windowmaker/wmaker.inst.diff @@ -0,0 +1,45 @@ +--- ./util/wmaker.inst.in.orig 2002-05-30 13:13:46.000000000 -0700 ++++ ./util/wmaker.inst.in 2002-05-30 13:16:37.000000000 -0700 +@@ -37,19 +37,7 @@ + make_script() { + ISCRIPT=$1 + +- cat << EOF >> $ISCRIPT +-# Window Maker default X session startup script +- +-PATH="\$PATH:$BINDIR" +- +-# If you login from xdm, uncomment this to make error messages appear +-# in the console window. +-# +-# tail -f $HOME/.xsession-errors > /dev/console & +- +-exec wmaker +- +-EOF ++ cat /etc/X11/xinit/xinitrc.wmaker >> $ISCRIPT + chmod +rx $ISCRIPT + } + +@@ -329,20 +317,7 @@ + + trap "show_end_message;exit" 2 + +-echo +-echo "Now the .xinitrc, .Xclients or .xsession script must be updated so that" +-echo "it calls wmaker when you start an X session." +-echo "Type the name of the file that must be changed (normally .xinitrc)." +-echo "If the file already exists, it will be backed up with a .old.$DATE " +-echo "extension" +-echo "If you want to edit it by hand, hit -C now." +-read file +- +-if test "x$file" = "x"; then +- echo "Using .xinitrc as a default value" +- file=.xinitrc +-fi +- ++file=.xinitrc + if [ -f $USERDIR/$file ]; then + mv $USERDIR/$file $USERDIR/$file.old.$DATE + fi diff --git a/source/xap/windowmaker/xinitrc.wmaker b/source/xap/windowmaker/xinitrc.wmaker new file mode 100644 index 000000000..4e28503b1 --- /dev/null +++ b/source/xap/windowmaker/xinitrc.wmaker @@ -0,0 +1,38 @@ +#!/bin/sh +# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/usr/X11R6/lib/X11/xinit/.Xresources +sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f $userresources ]; then + xrdb -merge $userresources +fi + +if [ -f $usermodmap ]; then + xmodmap $usermodmap +fi + +# If the user lacks $HOME/GNUstep, install it: +if [ ! -f $HOME/GNUstep/Defaults/WindowMaker ]; then + wmaker.inst +fi + +# Test for cpp, which wmaker uses to process config files: +if [ ! -x /usr/bin/cpp ]; then + NOCPP="--no-cpp" +fi + +# Start the window manager: +exec /usr/bin/wmaker $NOCPP diff --git a/source/xap/x11-ssh-askpass/README b/source/xap/x11-ssh-askpass/README new file mode 100644 index 000000000..e1247b388 --- /dev/null +++ b/source/xap/x11-ssh-askpass/README @@ -0,0 +1,10 @@ +x11-ssh-askpass is an X11-based passphrase dialog for use with OpenSSH. + +To utilize this service, you will need a private SSH key in ~/.ssh/ +If you log on using kdm, then just create a ~/.xprofile with the +contents of /usr/doc/x11-ssh-askpass-1.2.4.1/xprofile.sample + +If you are launching X from console (with startx), then you can edit your +~/.xinitrc to source ~/.xprofile or just add the contents of ~/.xprofile +to ~/.xinitrc to it. Of course, there are other acceptable ways to do +the same thing - gurus can roll their own. diff --git a/source/xap/x11-ssh-askpass/slack-desc b/source/xap/x11-ssh-askpass/slack-desc new file mode 100644 index 000000000..d467253f4 --- /dev/null +++ b/source/xap/x11-ssh-askpass/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler---------------------------------------------| +x11-ssh-askpass: x11-ssh-askpass (an X11-based passphrase dialog) +x11-ssh-askpass: +x11-ssh-askpass: x11-ssh-askpass is an X11-based passphrase dialog for use +x11-ssh-askpass: with OpenSSH. +x11-ssh-askpass: +x11-ssh-askpass: +x11-ssh-askpass: +x11-ssh-askpass: +x11-ssh-askpass: +x11-ssh-askpass: +x11-ssh-askpass: diff --git a/source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild b/source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild new file mode 100755 index 000000000..837b7f8a9 --- /dev/null +++ b/source/xap/x11-ssh-askpass/x11-ssh-askpass.SlackBuild @@ -0,0 +1,67 @@ +#!/bin/sh + +# Slackware build script for x11-ssh-askpass +# Written by "Vincent Batts " + +# Modified by Robby Workman + +VERSION=1.2.4.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} +TAG=${TAG:-} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-x11-ssh-askpass +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf x11-ssh-askpass-$VERSION +tar xvf $CWD/x11-ssh-askpass-$VERSION.tar.gz +cd x11-ssh-askpass-$VERSION +chown -R root:root . +chmod -R a-s,u+rw,go+r-w . + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --with-app-defaults-dir=/etc/X11/app-defaults + +xmkmf || exit 1 +make includes || exit 1 +make || exit 1 +make install DESTDIR=$PKG || exit 1 +make install.man DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +gzip -9 $PKG/usr/man/man1/x11-ssh-askpass.1x + +mkdir -p $PKG/usr/doc/x11-ssh-askpass-$VERSION +cp README $CWD/xprofile.sample $PKG/usr/doc/x11-ssh-askpass-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/x11-ssh-askpass-$VERSION-$ARCH-$BUILD$TAG.txz diff --git a/source/xap/x11-ssh-askpass/x11-ssh-askpass.info b/source/xap/x11-ssh-askpass/x11-ssh-askpass.info new file mode 100644 index 000000000..3a94bf367 --- /dev/null +++ b/source/xap/x11-ssh-askpass/x11-ssh-askpass.info @@ -0,0 +1,10 @@ +PRGNAM="x11-ssh-askpass" +VERSION="1.2.4.1" +HOMEPAGE="http://www.jmknoble.net/software/x11-ssh-askpass/" +DOWNLOAD="http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-1.2.4.1.tar.gz" +MD5SUM="8f2e41f3f7eaa8543a2440454637f3c3" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +MAINTAINER="Vincent Batts" +EMAIL="vbatts@batts.mine.nu" +APPROVED="rworkman" diff --git a/source/xap/x11-ssh-askpass/xprofile.sample b/source/xap/x11-ssh-askpass/xprofile.sample new file mode 100644 index 000000000..dce0eae0c --- /dev/null +++ b/source/xap/x11-ssh-askpass/xprofile.sample @@ -0,0 +1,14 @@ +#!/bin/sh + +usessh=${usessh:-yes} + +if test "$usessh" = "yes" -a -d $HOME/.ssh ; then + SSH_ASKPASS="/usr/libexec/x11-ssh-askpass" + if [ -x $SSH_ASKPASS ] ; then + export SSH_ASKPASS + ssh-agent > $HOME/.ssh/agent + . $HOME/.ssh/agent + ssh-add + fi +fi + diff --git a/source/xap/x3270/doinst.sh b/source/xap/x3270/doinst.sh new file mode 100644 index 000000000..049c91e4f --- /dev/null +++ b/source/xap/x3270/doinst.sh @@ -0,0 +1,24 @@ +#!/bin/sh +config() { + NEW="$1" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/X11/x3270/ibm_hosts.new + +# Update the X font indexes: +if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then + ( cd /usr/share/fonts/misc + mkfontscale . + mkfontdir -e /usr/share/fonts/encodings -e /usr/share/fonts/encodings/large . + ) +fi +if [ -x /usr/bin/fc-cache ]; then + /usr/bin/fc-cache -f +fi diff --git a/source/xap/x3270/slack-desc b/source/xap/x3270/slack-desc new file mode 100644 index 000000000..15eff71d7 --- /dev/null +++ b/source/xap/x3270/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +x3270: x3270 (IBM host access tool for X) +x3270: +x3270: x3270 opens a telnet connection to an IBM host in an X window. Since +x3270: the window created by x3270 can use its own font for displaying +x3270: characters, is a fairly accurate representation of an IBM 3278. +x3270: +x3270: +x3270: +x3270: +x3270: +x3270: diff --git a/source/xap/x3270/x3270.SlackBuild b/source/xap/x3270/x3270.SlackBuild new file mode 100755 index 000000000..225142a24 --- /dev/null +++ b/source/xap/x3270/x3270.SlackBuild @@ -0,0 +1,89 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +TARBVER=3.3.7p8 +VERSION=3.3.7p8 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-x3270 + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf x3270-$VERSION +tar xvf $CWD/x3270-$TARBVER.tar.bz2 || exit 1 +cd x3270-3.3 || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure \ + --prefix=/usr \ + --sysconfdir=/etc/X11 \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +mv $PKG/etc/X11/x3270/ibm_hosts $PKG/etc/X11/x3270/ibm_hosts.new +find $PKG -name fonts.dir -exec rm {} \; +if [ -d $PKG/usr/lib/X11/fonts/misc ]; then + mkdir -p $PKG/usr/share/fonts + mv $PKG/usr/lib/X11/fonts/misc $PKG/usr/share/fonts + rmdir $PKG/usr/lib/X11/fonts/misc 2> /dev/null + rmdir $PKG/usr/lib/X11/fonts 2> /dev/null + rmdir $PKG/usr/lib/X11 2> /dev/null + rmdir $PKG/usr/lib 2> /dev/null +fi + +mkdir -p $PKG/etc/X11/app-defaults +cat X3270.xad > $PKG/etc/X11/app-defaults/X3270 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/man/man{1,5} +for file in x3270-script.man x3270.man x3270if.man ; do + cat $file | gzip -9c > $PKG/usr/man/man1/`basename $file .man`.1.gz +done +cat ibm_hosts.man | gzip -9c > $PKG/usr/man/man5/ibm_hosts.5.gz + +mkdir -p $PKG/usr/doc/x3270-$VERSION +cp -a \ + LICENSE README* Examples html \ + $PKG/usr/doc/x3270-$VERSION + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/x3270-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xchat/patches/patches.url b/source/xap/xchat/patches/patches.url new file mode 100644 index 000000000..33531f7c9 --- /dev/null +++ b/source/xap/xchat/patches/patches.url @@ -0,0 +1 @@ +http://xchat.org/files/source/2.8/patches/ diff --git a/source/xap/xchat/patches/xc286-smallfixes.diff b/source/xap/xchat/patches/xc286-smallfixes.diff new file mode 100644 index 000000000..da9001522 --- /dev/null +++ b/source/xap/xchat/patches/xc286-smallfixes.diff @@ -0,0 +1,68 @@ +# +# Various small fixes from CVS that are considered safe to apply to 2.8.6. +# +--- xchat-2.8.6/src/common/cfgfiles.c 2008-02-05 21:02:47.000000000 +1100 ++++ xchat-2.8.6p1/src/common/cfgfiles.c 2008-06-15 13:45:43.000000000 +1000 +@@ -886,7 +886,6 @@ + set_showval (session *sess, const struct prefs *var, char *tbuf) + { + int len, dots, j; +- static const char *offon[] = { "OFF", "ON" }; + + len = strlen (var->name); + memcpy (tbuf, var->name, len); +@@ -909,8 +908,10 @@ + *((int *) &prefs + var->offset)); + break; + case TYPE_BOOL: +- sprintf (tbuf + len, "\0033:\017 %s\n", offon[ +- *((int *) &prefs + var->offset)]); ++ if (*((int *) &prefs + var->offset)) ++ sprintf (tbuf + len, "\0033:\017 %s\n", "ON"); ++ else ++ sprintf (tbuf + len, "\0033:\017 %s\n", "OFF"); + break; + } + PrintText (sess, tbuf); +--- xchat-2.8.6/src/common/chanopt.c 2008-06-10 22:00:55.000000000 +1000 ++++ xchat-2.8.6p1/src/common/chanopt.c 2008-06-15 13:48:04.000000000 +1000 +@@ -32,7 +32,7 @@ + + #define S_F(xx) STRUCT_OFFSET_STR(struct session,xx) + +-channel_options chanopt[] = ++static const channel_options chanopt[] = + { + {"alert_beep", "BEEP", S_F(alert_beep)}, + {"alert_taskbar", NULL, S_F(alert_taskbar)}, +--- xchat-2.8.6/src/common/servlist.c 2008-04-01 19:22:34.000000000 +1100 ++++ xchat-2.8.6p1/src/common/servlist.c 2008-06-15 13:57:41.000000000 +1000 +@@ -509,6 +509,8 @@ + list = g_slist_nth (net->servlist, net->selected); + if (!list) + list = net->servlist; ++ if (!list) ++ return; + ircserv = list->data; + + /* incase a protocol switch is added to the servlist gui */ +--- xchat-2.8.6/src/common/text.c 2008-03-28 13:20:04.000000000 +1100 ++++ xchat-2.8.6p1/src/common/text.c 2008-06-15 13:59:59.000000000 +1000 +@@ -216,7 +216,7 @@ + static void + scrollback_save (session *sess, char *text) + { +- char buf[1024]; ++ char buf[512 * 4]; + time_t stamp; + int len; + +@@ -266,7 +266,7 @@ + scrollback_load (session *sess) + { + int fh; +- char buf[1024]; ++ char buf[512 * 4]; + char *text; + time_t stamp; + int lines; diff --git a/source/xap/xchat/patches/xchat.gtk_2_14.diff b/source/xap/xchat/patches/xchat.gtk_2_14.diff new file mode 100644 index 000000000..f0a42a1cc --- /dev/null +++ b/source/xap/xchat/patches/xchat.gtk_2_14.diff @@ -0,0 +1,191 @@ +diff -ur xchat-2.8.6.orig/src/fe-gtk/about.c xchat-2.8.6/src/fe-gtk/about.c +--- xchat-2.8.6.orig/src/fe-gtk/about.c 2008-04-01 10:58:38.000000000 +0200 ++++ xchat-2.8.6/src/fe-gtk/about.c 2008-10-12 14:12:59.329706289 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/ascii.c xchat-2.8.6/src/fe-gtk/ascii.c +--- xchat-2.8.6.orig/src/fe-gtk/ascii.c 2008-02-05 11:02:50.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/ascii.c 2008-10-12 14:12:59.329706289 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/banlist.c xchat-2.8.6/src/fe-gtk/banlist.c +--- xchat-2.8.6.orig/src/fe-gtk/banlist.c 2008-02-05 11:02:50.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/banlist.c 2008-10-12 14:12:59.329706289 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/fe-gtk.c xchat-2.8.6/src/fe-gtk/fe-gtk.c +--- xchat-2.8.6.orig/src/fe-gtk/fe-gtk.c 2008-02-24 09:39:44.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/fe-gtk.c 2008-10-12 14:12:59.339702951 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/ignoregui.c xchat-2.8.6/src/fe-gtk/ignoregui.c +--- xchat-2.8.6.orig/src/fe-gtk/ignoregui.c 2008-02-05 11:02:52.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/ignoregui.c 2008-10-12 14:12:59.343034799 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/maingui.c xchat-2.8.6/src/fe-gtk/maingui.c +--- xchat-2.8.6.orig/src/fe-gtk/maingui.c 2008-04-01 10:53:41.000000000 +0200 ++++ xchat-2.8.6/src/fe-gtk/maingui.c 2008-10-12 14:12:59.349699891 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/menu.c xchat-2.8.6/src/fe-gtk/menu.c +--- xchat-2.8.6.orig/src/fe-gtk/menu.c 2008-06-08 09:59:37.000000000 +0200 ++++ xchat-2.8.6/src/fe-gtk/menu.c 2008-10-12 14:12:59.349699891 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/notifygui.c xchat-2.8.6/src/fe-gtk/notifygui.c +--- xchat-2.8.6.orig/src/fe-gtk/notifygui.c 2008-02-05 11:03:34.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/notifygui.c 2008-10-12 14:12:59.363033500 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/palette.c xchat-2.8.6/src/fe-gtk/palette.c +--- xchat-2.8.6.orig/src/fe-gtk/palette.c 2008-02-05 11:02:52.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/palette.c 2008-10-12 14:12:59.363033500 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/pixmaps.c xchat-2.8.6/src/fe-gtk/pixmaps.c +--- xchat-2.8.6.orig/src/fe-gtk/pixmaps.c 2008-02-05 11:02:52.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/pixmaps.c 2008-10-12 14:12:59.363033500 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/plugingui.c xchat-2.8.6/src/fe-gtk/plugingui.c +--- xchat-2.8.6.orig/src/fe-gtk/plugingui.c 2008-02-05 11:02:52.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/plugingui.c 2008-10-12 14:12:59.363033500 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/rawlog.c xchat-2.8.6/src/fe-gtk/rawlog.c +--- xchat-2.8.6.orig/src/fe-gtk/rawlog.c 2008-02-24 05:49:37.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/rawlog.c 2008-10-12 14:12:59.366369608 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/search.c xchat-2.8.6/src/fe-gtk/search.c +--- xchat-2.8.6.orig/src/fe-gtk/search.c 2008-02-05 11:02:53.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/search.c 2008-10-12 14:12:59.369703062 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/urlgrab.c xchat-2.8.6/src/fe-gtk/urlgrab.c +--- xchat-2.8.6.orig/src/fe-gtk/urlgrab.c 2008-02-05 11:02:53.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/urlgrab.c 2008-10-12 14:12:59.376368714 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/userlistgui.c xchat-2.8.6/src/fe-gtk/userlistgui.c +--- xchat-2.8.6.orig/src/fe-gtk/userlistgui.c 2008-02-05 11:02:53.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/userlistgui.c 2008-10-12 14:12:59.379703216 +0200 +@@ -16,7 +16,7 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-#define GTK_DISABLE_DEPRECATED ++/* #define GTK_DISABLE_DEPRECATED */ + + #include + #include +diff -ur xchat-2.8.6.orig/src/fe-gtk/xtext.h xchat-2.8.6/src/fe-gtk/xtext.h +--- xchat-2.8.6.orig/src/fe-gtk/xtext.h 2008-02-24 05:48:02.000000000 +0100 ++++ xchat-2.8.6/src/fe-gtk/xtext.h 2008-10-12 14:10:49.203049619 +0200 +@@ -1,6 +1,7 @@ + #ifndef __XTEXT_H__ + #define __XTEXT_H__ + ++#include + #include + #ifdef USE_XFT + #include diff --git a/source/xap/xchat/slack-desc b/source/xap/xchat/slack-desc new file mode 100644 index 000000000..70c75e67c --- /dev/null +++ b/source/xap/xchat/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xchat: xchat (GTK+-based IRC client) +xchat: +xchat: X-Chat is a GTK+-based IRC (Internet Relay Chat) client. +xchat: +xchat: +xchat: +xchat: +xchat: +xchat: +xchat: +xchat: diff --git a/source/xap/xchat/xchat.SlackBuild b/source/xap/xchat/xchat.SlackBuild new file mode 100755 index 000000000..1f05472bf --- /dev/null +++ b/source/xap/xchat/xchat.SlackBuild @@ -0,0 +1,114 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=2.8.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xchat +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf xchat-$VERSION +tar xvf $CWD/xchat-$VERSION.tar.bz2 || exit 1 +cd xchat-$VERSION || exit 1 +if [ -d $CWD/patches ]; then + for file in $CWD/patches/*.diff.gz ; do + zcat $file | patch -p1 --verbose || exit 1 + done +fi +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --localstatedir=/var/lib \ + --enable-tcl=/usr/lib${LIBDIRSUFFIX} \ + --enable-ipv6 \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/xchat-$VERSION +cp -a \ + AUTHORS COPYING HACKING INSTALL README \ + $PKG/usr/doc/xchat-$VERSION + +# In case they ever add this stuff: + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info pages and purge "dir" file from the package: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $TMP/package-xchat +/sbin/makepkg -l y -c n $TMP/xchat-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xfce/patches/exo_quoting_fix.diff b/source/xap/xfce/patches/exo_quoting_fix.diff new file mode 100644 index 000000000..ac6544576 --- /dev/null +++ b/source/xap/xfce/patches/exo_quoting_fix.diff @@ -0,0 +1,66 @@ +Index: exo-open/main.c +=================================================================== +--- exo-open/main.c (revision 30250) ++++ exo-open/main.c (revision 30251) +@@ -36,7 +36,17 @@ + #include + + ++/** ++ * For testing this code the following commands should work: ++ * ++ * exo-open --launch WebBrowser http://xfce.org (bug #5461). ++ * exo-open http://xfce.org ++ * exo-open --launch TerminalEmulator ./script.sh 'something with a space' 'nospace' (bug #5132). ++ * exo-open --launch TerminalEmulator ssh -l username some.host.com ++ **/ + ++ ++ + static gboolean opt_help = FALSE; + static gboolean opt_version = FALSE; + static gchar *opt_launch = NULL; +@@ -143,6 +153,8 @@ + { + if (argc > 1) + { ++ /* NOTE: see the comment at the top of this document! */ ++ + /* combine all specified parameters to one parameter string */ + join = g_string_new (NULL); + for (i = 1; argv[i] != NULL; i++) +@@ -150,11 +162,18 @@ + /* separate the arguments */ + if (i > 1) + join = g_string_append_c (join, ' '); +- +- /* append the quoted argument */ +- quoted = g_shell_quote (argv[i]); +- join = g_string_append (join, quoted); +- g_free (quoted); ++ ++ /* only quote arguments with spaces */ ++ if (strchr (argv[i], ' ') != NULL) ++ { ++ quoted = g_shell_quote (argv[i]); ++ join = g_string_append (join, quoted); ++ g_free (quoted); ++ } ++ else ++ { ++ join = g_string_append (join, argv[i]); ++ } + } + parameter = g_string_free (join, FALSE); + } +@@ -163,6 +182,10 @@ + parameter = NULL; + } + ++#ifndef NDEBUG ++ g_message ("launch=%s, wd=%s, parameters (%d)=%s", opt_launch, opt_working_directory, argc, parameter); ++#endif ++ + /* run the preferred application */ + if (!exo_execute_preferred_application (opt_launch, parameter, opt_working_directory, NULL, &err)) + { diff --git a/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff b/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff new file mode 100644 index 000000000..4370281a3 --- /dev/null +++ b/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff @@ -0,0 +1,48 @@ +diff --git a/plugins/launcher/launcher.c b/plugins/launcher/launcher.c +index 8edc66c..1e370c4 100644 +--- a/plugins/launcher/launcher.c ++++ b/plugins/launcher/launcher.c +@@ -37,6 +37,30 @@ + #include "launcher-exec.h" + #include "launcher-dialog.h" + ++/* for 4.4 settings migration */ ++static const gchar *icon_category_map[] = { ++ "applications-other", ++ "accessories-text-editor", ++ "system-file-manager", ++ "applications-accessories", ++ "applications-games", ++ "help-browser", ++ "applications-multimedia", ++ "applications-internet", ++ "applications-graphics", ++ "printer", ++ "office-calendar", ++ "applications-office", ++ "audio-card", ++ "utilities-terminal", ++ "applications-development", ++ "preferences-desktop", ++ "applications-system", ++ "applications-other", ++ "applications-accessories", ++}; ++#define ICON_CATEGORY_MAP_MAX (G_N_ELEMENTS (icon_category_map) - 1) ++ + /* prototypes */ + static void launcher_utility_icon_theme_changed (GtkIconTheme *icon_theme, + LauncherPlugin *launcher); +@@ -1216,6 +1240,12 @@ launcher_plugin_read (LauncherPlugin *launcher) + entry->name = launcher_plugin_read_entry (rc, "Name"); + entry->comment = launcher_plugin_read_entry (rc, "Comment"); + entry->icon = launcher_plugin_read_entry (rc, "Icon"); ++ if (G_UNLIKELY (!entry->icon)) ++ { ++ gint icon_category = xfce_rc_read_int_entry (rc, "X-XFCE-IconCategory", -1); ++ if (G_LIKELY (icon_category >= 0 && icon_category <= ICON_CATEGORY_MAP_MAX)) ++ entry->icon = g_strdup (icon_category_map[icon_category]); ++ } + entry->exec = launcher_plugin_read_entry (rc, "Exec"); + entry->path = launcher_plugin_read_entry (rc, "Path"); + diff --git a/source/xap/xfce/patches/migrate-itheme-smartly.diff b/source/xap/xfce/patches/migrate-itheme-smartly.diff new file mode 100644 index 000000000..e9c66ed2e --- /dev/null +++ b/source/xap/xfce/patches/migrate-itheme-smartly.diff @@ -0,0 +1,92 @@ +Index: scripts/xfconf-migration-4.6.pl.in +=================================================================== +--- a/scripts/xfconf-migration-4.6.pl.in (revision 29645) ++++ b/scripts/xfconf-migration-4.6.pl.in (working copy) +@@ -256,6 +256,77 @@ + return $mcs.'.xml'; + } + ++sub icon_theme_exists ++{ ++ my ($dirref,$themename) = @_; ++ my @dirs = @{$dirref}; ++ ++ foreach my $d (@dirs) { ++ return 1 if(-f "$d/$themename/index.theme"); ++ } ++ ++ return 0; ++} ++ ++sub migrate_icon_theme ++{ ++ my ($ref,$chan) = @_; ++ my %opts = %{$ref}; ++ my $opt = 'Net/IconThemeName'; ++ ++ return if(!defined($opts{$opt})); ++ my $val = $opts{$opt}->{'value'}; ++ ++ if(lc($val) eq 'rodent') { ++ # we don't ship rodent anymore, so try to find something suitable ++ my @icondirs; ++ if(defined($ENV{'XDG_DATA_HOME'})) { ++ @icondirs = ( $ENV{'XDG_DATA_HOME'} . '/icons' ); ++ } else { ++ @icondirs = ( $ENV{'HOME'} . '/.local/share/icons' ); ++ } ++ ++ if(defined($ENV{'XDG_DATA_DIRS'})) { ++ push(@icondirs, split(/:/, $ENV{'XDG_DATA_DIRS'})); ++ } else { ++ push(@icondirs, ( '/usr/share/icons', '/usr/local/share/icons' )); ++ } ++ ++ $val = undef; ++ foreach my $itheme (('Tango', 'gnome', 'crystalsvg')) { ++ if(icon_theme_exists(\@icondirs, $itheme)) { ++ $val = $itheme; ++ last; ++ } ++ } ++ ++ if(!defined($val)) { ++ # pick the first one that is not 'hicolor' ++ foreach my $d (@icondirs) { ++ opendir(DIR, $d) and do { ++ my @subdirs = grep { $_ ne 'hicolor' && -d "$d/$_" } readdir(DIR); ++ foreach my $sd (@subdirs) { ++ if(-f "$d/$sd/index.theme") { ++ $val = $sd; ++ last; ++ } ++ } ++ closedir(DIR); ++ }; ++ last if(defined($val)); ++ } ++ ++ if(!defined($val)) { ++ # ok, their system is kinda b0rked; not much we can do ++ warn("Couldn't find a suitable icon theme to migrate to"); ++ return; ++ } ++ } ++ } ++ ++ xfconf_set($chan, 'string', '/Net/IconThemeName', $val); ++} ++ + sub migrate_xsettings + { + my $mcs = 'gtk'; +@@ -283,8 +354,7 @@ + '/Net/CursorBlinkTime', 'int'); + save_xfconf_prop($ref, $chan, 'Net/DndDragThreshold', + '/Net/DndDragThreshold', 'int'); +- save_xfconf_prop($ref, $chan, 'Net/IconThemeName', +- '/Net/IconThemeName', 'string'); ++ migrate_icon_theme($ref, $chan); + save_xfconf_prop($ref, $chan, 'Net/ThemeName', + '/Net/ThemeName', 'string'); + diff --git a/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff b/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff new file mode 100644 index 000000000..d9608470f --- /dev/null +++ b/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff @@ -0,0 +1,132 @@ +diff -Nur Terminal-0.4.0.orig/Makefile.in Terminal-0.4.0/Makefile.in +--- Terminal-0.4.0.orig/Makefile.in 2009-07-20 13:04:04.000000000 -0500 ++++ Terminal-0.4.0/Makefile.in 2009-07-20 13:50:20.529864039 -0500 +@@ -986,7 +986,7 @@ + + TerminalHelp: TerminalHelp.in Makefile + rm -f TerminalHelp.gen TerminalHelp +- sed -e "s,\@datadir\@,$(datadir),g" \ ++ sed -e "s,\@docdir\@,$(docdir),g" \ + < $(srcdir)/TerminalHelp.in \ + > TerminalHelp.gen + mv TerminalHelp.gen TerminalHelp +diff -Nur Terminal-0.4.0.orig/TerminalHelp.in Terminal-0.4.0/TerminalHelp.in +--- Terminal-0.4.0.orig/TerminalHelp.in 2009-07-20 13:03:50.000000000 -0500 ++++ Terminal-0.4.0/TerminalHelp.in 2009-07-20 13:50:20.529864039 -0500 +@@ -19,7 +19,7 @@ + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + # + +-HELPDIR="@datadir@/doc/Terminal/" ++HELPDIR="@docdir@/" + + if test -n "$LC_ALL"; then + LC=$LC_ALL +diff -Nur Terminal-0.4.0.orig/doc/C/Makefile.in Terminal-0.4.0/doc/C/Makefile.in +--- Terminal-0.4.0.orig/doc/C/Makefile.in 2009-07-20 13:04:02.000000000 -0500 ++++ Terminal-0.4.0/doc/C/Makefile.in 2009-07-20 13:50:20.533867320 -0500 +@@ -260,7 +260,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Terminal/C ++TARGET_DIR = $(docdir)/C + STYLESHEET = ../terminal.xsl + DOCUMENT = Terminal.xml + +diff -Nur Terminal-0.4.0.orig/doc/C/images/Makefile.in Terminal-0.4.0/doc/C/images/Makefile.in +--- Terminal-0.4.0.orig/doc/C/images/Makefile.in 2009-07-20 13:04:02.000000000 -0500 ++++ Terminal-0.4.0/doc/C/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500 +@@ -240,7 +240,7 @@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-imagesdir = $(datadir)/doc/Terminal/C/images ++imagesdir = $(docdir)/C/images + images_DATA = \ + terminal-compose-shortcut.png \ + terminal-edit-preferences.png \ +diff -Nur Terminal-0.4.0.orig/doc/Makefile.in Terminal-0.4.0/doc/Makefile.in +--- Terminal-0.4.0.orig/doc/Makefile.in 2009-07-20 13:04:02.000000000 -0500 ++++ Terminal-0.4.0/doc/Makefile.in 2009-07-20 13:51:00.229192942 -0500 +@@ -286,7 +286,7 @@ + fr \ + ja + +-cssdir = $(datadir)/doc/Terminal ++cssdir = $(docdir)/ + css_DATA = \ + terminal.css + +diff -Nur Terminal-0.4.0.orig/doc/da/Makefile.in Terminal-0.4.0/doc/da/Makefile.in +--- Terminal-0.4.0.orig/doc/da/Makefile.in 2009-07-20 13:04:02.000000000 -0500 ++++ Terminal-0.4.0/doc/da/Makefile.in 2009-07-20 13:50:20.533867320 -0500 +@@ -260,7 +260,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Terminal/da ++TARGET_DIR = $(docdir)/da + STYLESHEET = ../terminal.xsl + DOCUMENT = Terminal.xml + +diff -Nur Terminal-0.4.0.orig/doc/da/images/Makefile.in Terminal-0.4.0/doc/da/images/Makefile.in +--- Terminal-0.4.0.orig/doc/da/images/Makefile.in 2009-07-20 13:04:02.000000000 -0500 ++++ Terminal-0.4.0/doc/da/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500 +@@ -240,7 +240,7 @@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-imagesdir = $(datadir)/doc/Terminal/da/images ++imagesdir = $(docdir)/da/images + images_DATA = \ + terminal-compose-shortcut.png \ + terminal-edit-preferences.png \ +diff -Nur Terminal-0.4.0.orig/doc/fr/Makefile.in Terminal-0.4.0/doc/fr/Makefile.in +--- Terminal-0.4.0.orig/doc/fr/Makefile.in 2009-07-20 13:04:02.000000000 -0500 ++++ Terminal-0.4.0/doc/fr/Makefile.in 2009-07-20 13:50:20.533867320 -0500 +@@ -260,7 +260,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Terminal/fr ++TARGET_DIR = $(docdir)/fr + STYLESHEET = ../terminal.xsl + DOCUMENT = Terminal.xml + +diff -Nur Terminal-0.4.0.orig/doc/fr/images/Makefile.in Terminal-0.4.0/doc/fr/images/Makefile.in +--- Terminal-0.4.0.orig/doc/fr/images/Makefile.in 2009-07-20 13:04:03.000000000 -0500 ++++ Terminal-0.4.0/doc/fr/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500 +@@ -240,7 +240,7 @@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-imagesdir = $(datadir)/doc/Terminal/fr/images ++imagesdir = $(docdir)/fr/images + images_DATA = \ + terminal-compose-shortcut.png \ + terminal-edit-preferences.png \ +diff -Nur Terminal-0.4.0.orig/doc/ja/Makefile.in Terminal-0.4.0/doc/ja/Makefile.in +--- Terminal-0.4.0.orig/doc/ja/Makefile.in 2009-07-20 13:04:03.000000000 -0500 ++++ Terminal-0.4.0/doc/ja/Makefile.in 2009-07-20 13:50:20.537889876 -0500 +@@ -260,7 +260,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Terminal/ja ++TARGET_DIR = $(docdir)/ja + STYLESHEET = ../terminal.xsl + DOCUMENT = Terminal.xml + +diff -Nur Terminal-0.4.0.orig/doc/ja/images/Makefile.in Terminal-0.4.0/doc/ja/images/Makefile.in +--- Terminal-0.4.0.orig/doc/ja/images/Makefile.in 2009-07-20 13:04:03.000000000 -0500 ++++ Terminal-0.4.0/doc/ja/images/Makefile.in 2009-07-20 13:50:20.537889876 -0500 +@@ -240,7 +240,7 @@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-imagesdir = $(datadir)/doc/Terminal/ja/images ++imagesdir = $(docdir)/ja/images + images_DATA = \ + terminal-compose-shortcut.png \ + terminal-edit-preferences.png \ diff --git a/source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff b/source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff new file mode 100644 index 000000000..52d076d93 --- /dev/null +++ b/source/xap/xfce/patches/thunar-1.0.1-fixup_docdir.diff @@ -0,0 +1,360 @@ +diff -Nur Thunar-1.0.1.orig/Makefile.in Thunar-1.0.1/Makefile.in +--- Thunar-1.0.1.orig/Makefile.in 2009-04-18 09:41:09.000000000 -0500 ++++ Thunar-1.0.1/Makefile.in 2009-07-20 19:36:55.895440657 -0500 +@@ -932,7 +932,7 @@ + + ThunarHelp: ThunarHelp.in Makefile + rm -f ThunarHelp.gen ThunarHelp +- sed -e "s,\@datadir\@,$(datadir),g" \ ++ sed -e "s,\@htmldir\@,$(htmldir),g" \ + < $(srcdir)/ThunarHelp.in \ + > ThunarHelp.gen + mv ThunarHelp.gen ThunarHelp +diff -Nur Thunar-1.0.1.orig/ThunarHelp.in Thunar-1.0.1/ThunarHelp.in +--- Thunar-1.0.1.orig/ThunarHelp.in 2008-10-22 01:43:23.000000000 -0500 ++++ Thunar-1.0.1/ThunarHelp.in 2009-07-20 19:36:38.235721255 -0500 +@@ -19,7 +19,7 @@ + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + # + +-HELPDIR="@datadir@/doc/Thunar/html/" ++HELPDIR="@htmldir@/" + + if test -n "$LC_ALL"; then + LC=$LC_ALL +diff -Nur Thunar-1.0.1.orig/docs/Makefile.in Thunar-1.0.1/docs/Makefile.in +--- Thunar-1.0.1.orig/docs/Makefile.in 2009-04-18 09:40:14.000000000 -0500 ++++ Thunar-1.0.1/docs/Makefile.in 2009-07-20 19:36:38.235721255 -0500 +@@ -292,7 +292,7 @@ + builddir = @builddir@ + datadir = @datadir@ + datarootdir = @datarootdir@ +-docdir = $(datadir)/doc/Thunar ++docdir = @docdir@ + dvidir = @dvidir@ + exec_prefix = @exec_prefix@ + host = @host@ +diff -Nur Thunar-1.0.1.orig/docs/manual/C/Makefile.in Thunar-1.0.1/docs/manual/C/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/C/Makefile.in 2009-04-18 09:40:19.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/C/Makefile.in 2009-07-20 19:36:38.235721255 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/C ++TARGET_DIR = $(htmldir)/C + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/C/images/Makefile.in Thunar-1.0.1/docs/manual/C/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/C/images/Makefile.in 2009-04-18 09:40:21.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/C/images/Makefile.in 2009-07-20 19:36:38.235721255 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/C/images ++imagesdir = $(htmldir)/C/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/Makefile.in Thunar-1.0.1/docs/manual/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/Makefile.in 2009-04-18 09:40:22.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/Makefile.in 2009-07-20 19:36:38.235721255 -0500 +@@ -338,7 +338,7 @@ + tr \ + zh_TW + +-cssdir = $(datadir)/doc/Thunar/html ++cssdir = $(htmldir) + css_DATA = \ + thunar.css + +diff -Nur Thunar-1.0.1.orig/docs/manual/da/Makefile.in Thunar-1.0.1/docs/manual/da/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/da/Makefile.in 2009-04-18 09:40:22.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/da/Makefile.in 2009-07-20 19:36:38.239694094 -0500 +@@ -317,7 +317,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/da ++TARGET_DIR = $(htmldir)/da + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/da/images/Makefile.in Thunar-1.0.1/docs/manual/da/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/da/images/Makefile.in 2009-04-18 09:40:24.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/da/images/Makefile.in 2009-07-20 19:36:38.239694094 -0500 +@@ -311,7 +311,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/da/images ++imagesdir = $(htmldir)/da/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/es/Makefile.in Thunar-1.0.1/docs/manual/es/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/es/Makefile.in 2009-04-18 09:40:24.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/es/Makefile.in 2009-07-20 19:36:38.239694094 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/es ++TARGET_DIR = $(htmldir)/es + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/es/images/Makefile.in Thunar-1.0.1/docs/manual/es/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/es/images/Makefile.in 2009-04-18 09:40:25.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/es/images/Makefile.in 2009-07-20 19:36:38.239694094 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/es/images ++imagesdir = $(htmldir)/es/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/eu/Makefile.in Thunar-1.0.1/docs/manual/eu/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/eu/Makefile.in 2009-04-18 09:40:25.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/eu/Makefile.in 2009-07-20 19:36:38.239694094 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/eu ++TARGET_DIR = $(htmldir)/eu + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/eu/images/Makefile.in Thunar-1.0.1/docs/manual/eu/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/eu/images/Makefile.in 2009-04-18 09:40:26.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/eu/images/Makefile.in 2009-07-20 19:36:38.239694094 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/eu/images ++imagesdir = $(htmldir)/eu/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/fr/Makefile.in Thunar-1.0.1/docs/manual/fr/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/fr/Makefile.in 2009-04-18 09:40:26.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/fr/Makefile.in 2009-07-20 19:36:38.243692845 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/fr ++TARGET_DIR = $(htmldir)/fr + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/fr/images/Makefile.in Thunar-1.0.1/docs/manual/fr/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/fr/images/Makefile.in 2009-04-18 09:40:27.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/fr/images/Makefile.in 2009-07-20 19:36:38.243692845 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/fr/images ++imagesdir = $(htmldir)/fr/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/gl/Makefile.in Thunar-1.0.1/docs/manual/gl/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/gl/Makefile.in 2009-04-18 09:40:27.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/gl/Makefile.in 2009-07-20 19:36:38.243692845 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/gl ++TARGET_DIR = $(htmldir)/gl + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/gl/images/Makefile.in Thunar-1.0.1/docs/manual/gl/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/gl/images/Makefile.in 2009-04-18 09:40:29.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/gl/images/Makefile.in 2009-07-20 19:36:38.243692845 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/C/images ++imagesdir = $(htmldir)/C/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/it/Makefile.in Thunar-1.0.1/docs/manual/it/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/it/Makefile.in 2009-04-18 09:40:30.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/it/Makefile.in 2009-07-20 19:36:38.243692845 -0500 +@@ -317,7 +317,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/it ++TARGET_DIR = $(htmldir)/it + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/it/images/Makefile.in Thunar-1.0.1/docs/manual/it/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/it/images/Makefile.in 2009-04-18 09:40:31.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/it/images/Makefile.in 2009-07-20 19:36:38.243692845 -0500 +@@ -311,7 +311,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/it/images ++imagesdir = $(htmldir)/it/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/ja/Makefile.in Thunar-1.0.1/docs/manual/ja/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/ja/Makefile.in 2009-04-18 09:40:32.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/ja/Makefile.in 2009-07-20 19:36:38.247717296 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/ja ++TARGET_DIR = $(htmldir)/ja + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/ja/images/Makefile.in Thunar-1.0.1/docs/manual/ja/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/ja/images/Makefile.in 2009-04-18 09:40:33.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/ja/images/Makefile.in 2009-07-20 19:36:38.247717296 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/ja/images ++imagesdir = $(htmldir)/ja/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/nl/Makefile.in Thunar-1.0.1/docs/manual/nl/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/nl/Makefile.in 2009-04-18 09:40:34.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/nl/Makefile.in 2009-07-20 19:36:38.247717296 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/nl ++TARGET_DIR = $(htmldir)/nl + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/nl/images/Makefile.in Thunar-1.0.1/docs/manual/nl/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/nl/images/Makefile.in 2009-04-18 09:40:34.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/nl/images/Makefile.in 2009-07-20 19:36:38.247717296 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/nl/images ++imagesdir = $(htmldir)/nl/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/pl/Makefile.in Thunar-1.0.1/docs/manual/pl/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/pl/Makefile.in 2009-04-18 09:40:34.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/pl/Makefile.in 2009-07-20 19:36:38.247717296 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/pl ++TARGET_DIR = $(htmldir)/pl + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/pl/images/Makefile.in Thunar-1.0.1/docs/manual/pl/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/pl/images/Makefile.in 2009-04-18 09:40:34.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/pl/images/Makefile.in 2009-07-20 19:36:38.247717296 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/pl/images ++imagesdir = $(htmldir)/pl/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/ru/Makefile.in Thunar-1.0.1/docs/manual/ru/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/ru/Makefile.in 2009-04-18 09:40:35.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/ru/Makefile.in 2009-07-20 19:36:38.251717303 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/ru ++TARGET_DIR = $(htmldir)/ru + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/ru/images/Makefile.in Thunar-1.0.1/docs/manual/ru/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/ru/images/Makefile.in 2009-04-18 09:40:35.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/ru/images/Makefile.in 2009-07-20 19:36:38.251717303 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/ru/images ++imagesdir = $(htmldir)/ru/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/tr/Makefile.in Thunar-1.0.1/docs/manual/tr/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/tr/Makefile.in 2009-04-18 09:40:35.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/tr/Makefile.in 2009-07-20 19:36:38.251717303 -0500 +@@ -317,7 +317,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/tr ++TARGET_DIR = $(htmldir)/tr + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/tr/images/Makefile.in Thunar-1.0.1/docs/manual/tr/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/tr/images/Makefile.in 2009-04-18 09:40:36.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/tr/images/Makefile.in 2009-07-20 19:36:38.251717303 -0500 +@@ -311,7 +311,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/tr/images ++imagesdir = $(htmldir)/tr/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ +diff -Nur Thunar-1.0.1.orig/docs/manual/zh_TW/Makefile.in Thunar-1.0.1/docs/manual/zh_TW/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/zh_TW/Makefile.in 2009-04-18 09:40:36.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/zh_TW/Makefile.in 2009-07-20 19:36:38.251717303 -0500 +@@ -319,7 +319,7 @@ + SUBDIRS = \ + images + +-TARGET_DIR = $(datadir)/doc/Thunar/html/zh_TW ++TARGET_DIR = $(htmldir)/zh_TW + STYLESHEET = ../thunar.xsl + DOCUMENT = Thunar.xml + +diff -Nur Thunar-1.0.1.orig/docs/manual/zh_TW/images/Makefile.in Thunar-1.0.1/docs/manual/zh_TW/images/Makefile.in +--- Thunar-1.0.1.orig/docs/manual/zh_TW/images/Makefile.in 2009-04-18 09:40:36.000000000 -0500 ++++ Thunar-1.0.1/docs/manual/zh_TW/images/Makefile.in 2009-07-20 19:36:38.251717303 -0500 +@@ -313,7 +313,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + xfconf_query_found = @xfconf_query_found@ +-imagesdir = $(datadir)/doc/Thunar/html/zh_TW/images ++imagesdir = $(htmldir)/zh_TW/images + images_DATA = \ + bulk-rename.png \ + file-manager-window.png \ diff --git a/source/xap/xfce/patches/xfcalendar.desktop.in.diff b/source/xap/xfce/patches/xfcalendar.desktop.in.diff new file mode 100644 index 000000000..d88267815 --- /dev/null +++ b/source/xap/xfce/patches/xfcalendar.desktop.in.diff @@ -0,0 +1,9 @@ +--- a/xfcalendar.desktop.in 2009-03-01 10:13:10.349305702 -0600 ++++ b/xfcalendar.desktop.in 2009-03-01 10:13:29.564307721 -0600 +@@ -10,4 +10,5 @@ + Terminal=false + Type=Application + Categories=X-XFCE;Office;Calendar;GTK; ++OnlyShowIn=XFCE; + _GenericName=Calendar + diff --git a/source/xap/xfce/patches/xfdesktop-fix_education_icon.diff b/source/xap/xfce/patches/xfdesktop-fix_education_icon.diff new file mode 100644 index 000000000..56a340608 --- /dev/null +++ b/source/xap/xfce/patches/xfdesktop-fix_education_icon.diff @@ -0,0 +1,11 @@ +diff -Nur xfdesktop-4.6.1.orig/modules/menu/directory-data/xfce-education.directory.in xfdesktop-4.6.1/modules/menu/directory-data/xfce-education.directory.in +--- xfdesktop-4.6.1.orig/modules/menu/directory-data/xfce-education.directory.in 2009-01-12 16:03:19.000000000 -0600 ++++ xfdesktop-4.6.1/modules/menu/directory-data/xfce-education.directory.in 2009-07-31 01:04:29.029467762 -0500 +@@ -2,6 +2,6 @@ + Version=1.0 + Encoding=UTF-8 + Type=Directory +-Icon= ++Icon=applications-education + _Name=Education + _Comment=Educational software diff --git a/source/xap/xfce/profile.d/xfce.csh b/source/xap/xfce/profile.d/xfce.csh new file mode 100755 index 000000000..ccc2b8f15 --- /dev/null +++ b/source/xap/xfce/profile.d/xfce.csh @@ -0,0 +1,6 @@ +#!/bin/csh +if ( $?XDG_CONFIG_DIRS ) then + setenv XDG_CONFIG_DIRS ${XDG_CONFIG_DIRS}:/etc/xfce/xdg +else + setenv XDG_CONFIG_DIRS /etc/xdg:/etc/xfce/xdg +endif diff --git a/source/xap/xfce/profile.d/xfce.sh b/source/xap/xfce/profile.d/xfce.sh new file mode 100755 index 000000000..adb187c10 --- /dev/null +++ b/source/xap/xfce/profile.d/xfce.sh @@ -0,0 +1,7 @@ +#!/bin/sh +if [ ! "$XDG_CONFIG_DIRS" = "" ]; then + XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:/etc/xfce/xdg +else + XDG_CONFIG_DIRS=/etc/xdg:/etc/xfce/xdg +fi +export XDG_CONFIG_DIRS diff --git a/source/xap/xfce/slack-desc b/source/xap/xfce/slack-desc new file mode 100644 index 000000000..ecedf0104 --- /dev/null +++ b/source/xap/xfce/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfce: xfce (a fast and lightweight desktop environment for X) +xfce: +xfce: Xfce is a fast and lightweight desktop environment that is both +xfce: visually appealing and easy to use. +xfce: +xfce: For more information, see: http://www.xfce.org +xfce: +xfce: Xfce was developed by Olivier Fourdan. +xfce: +xfce: +xfce: diff --git a/source/xap/xfce/xfce.SlackBuild b/source/xap/xfce/xfce.SlackBuild new file mode 100755 index 000000000..2ed8042e6 --- /dev/null +++ b/source/xap/xfce/xfce.SlackBuild @@ -0,0 +1,201 @@ +#!/bin/sh + +# Copyright 2003 Slackware Linux, Inc., Concord, CA, USA +# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=4.6.1 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-5} + +# A few tarballs have different versions; handle them here +XDT_VERS=4.6.0 # xfce4-dev-tools version +EXO_VERS=0.3.101 # exo version +THUNAR_VERS=1.0.1 # thunar version +GXE_VERS=2.6.0 # gtk-xfce-engine version +TERM_VERS=0.4.0 # terminal version +MPAD_VERS=0.2.16 # mousepad version +XFWMTHEME_VERS=4.6.0 # xfwm4-themes version + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp/xfce-build-dir} +PKG=$TMP/package-xfce + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 + +COMPRESSION=xz +COMPRESSUTIL=xz + +# The Rodent theme isn't xdg-compliant, so they're not shipping it +# xfce4-icon-theme-$VERSION.tar.$COMPRESSION +# We'll set Tango as the system default instead... + +for file in \ + xfce4-dev-tools-$XDT_VERS.tar.$COMPRESSION \ + libxfce4util-$VERSION.tar.$COMPRESSION \ + xfconf-$VERSION.tar.$COMPRESSION \ + libxfcegui4-$VERSION.tar.$COMPRESSION \ + libxfce4menu-$VERSION.tar.$COMPRESSION \ + exo-$EXO_VERS.tar.$COMPRESSION \ + xfce4-panel-$VERSION.tar.$COMPRESSION \ + Thunar-$THUNAR_VERS.tar.$COMPRESSION \ + xfce4-settings-$VERSION.tar.$COMPRESSION \ + xfce4-session-$VERSION.tar.$COMPRESSION \ + xfdesktop-$VERSION.tar.$COMPRESSION \ + xfwm4-$VERSION.tar.$COMPRESSION \ + xfce-utils-$VERSION.tar.$COMPRESSION \ + xfce4-mixer-$VERSION.tar.$COMPRESSION \ + xfprint-$VERSION.tar.$COMPRESSION \ + xfce4-appfinder-$VERSION.tar.$COMPRESSION \ + gtk-xfce-engine-$GXE_VERS.tar.$COMPRESSION \ + Terminal-$TERM_VERS.tar.$COMPRESSION \ + xfwm4-themes-$XFWMTHEME_VERS.tar.$COMPRESSION \ + mousepad-$MPAD_VERS.tar.$COMPRESSION \ + orage-$VERSION.tar.$COMPRESSION ; +do + $COMPRESSUTIL -dc $CWD/src/$file | tar xvf - || exit 1 + cd $(basename $file .tar.$COMPRESSION) || exit 1 + chown -R root:root . + find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + + # Here's where we patch or set up any other package-specific stuff: + # Patch to only show xfcalendar in XFce (otherwise it shows up in + # KDE's Lost & Found and does not work): + if [ "$file" = "orage-$VERSION.tar.$COMPRESSION" ]; then + zcat $CWD/patches/xfcalendar.desktop.in.diff.gz | patch -p1 || exit 1 + fi + # Fix http://bugzilla.xfce.org/show_bug.cgi?id=5461 + # and enable python bindings in libexo + if [ "$file" = "exo-$EXO_VERS.tar.$COMPRESSION" ]; then + zcat $CWD/patches/exo_fix_quoting.diff.gz | patch -p0 || exit 1 + PACKAGE_SPECIFIC_OPTIONS="--enable-python" + fi + # Make Terminal respect --docdir + if [ "$file" = "Terminal-$TERM_VERS.tar.$COMPRESSION" ]; then + zcat $CWD/patches/terminal-0.4.0-fixup_docdir.diff.gz | patch -p1 || exit 1 + fi + # Make Thunar respect --docdir + if [ "$file" = "Thunar-$THUNAR_VERS.tar.$COMPRESSION" ]; then + zcat $CWD/patches/thunar-1.0.1-fixup_docdir.diff.gz | patch -p1 || exit 1 + fi + # Fix the missing education icon in the desktop menu + if [ "$file" = "xfdesktop-$VERSION.tar.$COMPRESSION" ]; then + zcat $CWD/patches/xfdesktop-fix_education_icon.diff.gz | patch -p1 || exit 1 + fi + # End patches/package-specific stuff + + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc/xfce \ + --mandir=/usr/man \ + --docdir=/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION) \ + --htmldir=/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION)/html \ + --disable-static \ + --build=$ARCH-slackware-linux \ + $PACKAGE_SPECIFIC_OPTIONS + + # Unset this now -- we're done with it + unset PACKAGE_SPECIFIC_OPTIONS + + make $NUMJOBS || make || exit 1 + make install || exit 1 + make install DESTDIR=$PKG + + mkdir -p $PKG/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION) + # This will cause errors, but won't miss any docs: + cp -a \ + AUTHORS BUGS COMPOSITOR COPYING* FAQ HACKING INSTALL \ + NEWS NOTES README* THANKS TODO example.gtkrc-2.0 \ + $PKG/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION) \ + 2> /dev/null || true + + cd - ; +done + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# The Rodent icon theme isn't xdg compliant, so it spews errors quite often +# and just flat breaks some things here and there, so the Xfce team elected +# not to ship it with 4.6.0. In the meantime, we'll default to Tango. +sed -i s/Rodent/Tango/ \ + $PKG/etc/xfce/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml + +# We're going to borrow the "applications-education" icons (six of them) +# from kde's oxygen icon theme (it's LGPL) +tar xf $CWD/icons.tar.xz -C $PKG/usr/share + +# We don't want any of those icon caches +find $PKG/usr/share/icons -type f -name "index-theme.cache" -exec rm -f {} \; + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/etc/profile.d +cp -a $CWD/profile.d/* $PKG/etc/profile.d +chown root:root $PKG/etc/profile.d/* +chmod 755 $PKG/etc/profile.d/* + +mkdir -p $PKG/etc/X11/xinit +( cd $PKG/etc/X11/xinit + ln -sf ../../xfce/xdg/xfce4/xinitrc xinitrc.xfce + chmod 755 ../../xfce/xdg/xfce4/xinitrc +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xfce-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xfce4-power-manager/doinst.sh b/source/xap/xfce4-power-manager/doinst.sh new file mode 100644 index 000000000..1f8ff67de --- /dev/null +++ b/source/xap/xfce4-power-manager/doinst.sh @@ -0,0 +1,10 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi + diff --git a/source/xap/xfce4-power-manager/slack-desc b/source/xap/xfce4-power-manager/slack-desc new file mode 100644 index 000000000..d1dd7ec16 --- /dev/null +++ b/source/xap/xfce4-power-manager/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------| +xfce4-power-manager: xfce4-power-manager (Power Management Daemon for Xfce) +xfce4-power-manager: +xfce4-power-manager: xfce4-power-manager makes power management functions (such as +xfce4-power-manager: suspend and hibernate) easy inside the Xfce Desktop Environment +xfce4-power-manager: (but it should also work in any other desktop environment). +xfce4-power-manager: +xfce4-power-manager: +xfce4-power-manager: +xfce4-power-manager: +xfce4-power-manager: +xfce4-power-manager: diff --git a/source/xap/xfce4-power-manager/xfce4-power-manager.SlackBuild b/source/xap/xfce4-power-manager/xfce4-power-manager.SlackBuild new file mode 100755 index 000000000..1487b2d05 --- /dev/null +++ b/source/xap/xfce4-power-manager/xfce4-power-manager.SlackBuild @@ -0,0 +1,91 @@ +#!/bin/sh + +# Slackware build script for xfce4-power-manager + +# Copyright 2008-2009 Robby Workman Northport, Alabama, USA +# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PRGNAM=xfce4-power-manager +VERSION=0.6.6 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PRGNAM + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc/xfce \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --enable-debug=no \ + --build=$ARCH-slackware-linux + +make || exit 1 +make install DESTDIR=$PKG + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html +cp -a \ + AUTHORS COPYING ChangeLog INSTALL NEWS README TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +( cd $PKG/usr/doc/$PRGNAM-$VERSION/html + ln -s /usr/share/xfce4/doc/C/xfce4-power-manager.html index.html + ln -s /usr/share/xfce4/doc/C/images . +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xfractint/slack-desc b/source/xap/xfractint/slack-desc new file mode 100644 index 000000000..0b8614fa4 --- /dev/null +++ b/source/xap/xfractint/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xfractint: xfractint (fractal generation program) +xfractint: +xfractint: Xfractint draws a wide variety of fractals. Xfractint is a port of the +xfractint: DOS program Fractint. +xfractint: +xfractint: The primary original authors of Fractint are Bert Tyler, Timothy +xfractint: Wegner, Mark Peterson, and Pieter Branderhorst. Fractint was ported +xfractint: to X by Ken Shirriff. +xfractint: +xfractint: +xfractint: diff --git a/source/xap/xfractint/xfractint.SlackBuild b/source/xap/xfractint/xfractint.SlackBuild new file mode 100755 index 000000000..1ae5e6fef --- /dev/null +++ b/source/xap/xfractint/xfractint.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/sh + +# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=xfractint +VERSION=${VERSION:-20.04p09} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/xfractint-${VERSION}.tar.bz2 || exit 1 +cd ${PKGNAM}-${VERSION} || exit 1 + +rm -f unix/calmanfx.o # contains i386 code + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +make OPT="$SLKCFLAGS" SRCDIR=/usr/share/xfractint SHRDIR=/usr/share/xfractint BINDIR=/usr/bin MANDIR=/usr/man/man1 || exit 1 + +mkdir -p $PKG/usr/{bin,man/man1,share/xfractint} +make install SRCDIR=$PKG/usr/share/xfractint SHRDIR=$PKG/usr/share/xfractint BINDIR=$PKG/usr/bin MANDIR=$PKG/usr/man/man1 || exit 1 + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add palette maps missing from latest sources: +( cd $PKG/usr/share/${PKGNAM}/maps ; tar xf $CWD/palette.maps.tar.gz ) + +# Fix all wrong permissions in /usr/share/xfractint +( cd $PKG/usr/share + find . -perm 777 -exec chmod 755 {} \; + find . -perm 666 -exec chmod 644 {} \; +) + +# Add a documentation directory: +mkdir -p ${PKG}/usr/doc/${PKGNAM}-$VERSION +cp -a *.txt read.me $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xgames/maze.diff b/source/xap/xgames/maze.diff new file mode 100644 index 000000000..77ec739c7 --- /dev/null +++ b/source/xap/xgames/maze.diff @@ -0,0 +1,22 @@ +--- ./getopt.c.orig Wed Aug 4 14:48:46 1999 ++++ ./getopt.c Wed Aug 4 14:48:55 1999 +@@ -22,7 +22,7 @@ + char *optarg; + + int +-getopt(argc, argv, opts) ++maze_getopt(argc, argv, opts) + int argc; + char **argv, *opts; + { +--- ./maze.c.orig Wed Aug 4 14:48:59 1999 ++++ ./maze.c Wed Aug 4 14:49:10 1999 +@@ -136,7 +136,7 @@ + int flags; + + cmd = argv[0]; +- while ((c = getopt(argc, argv, "rSd:g:")) != EOF) ++ while ((c = maze_getopt(argc, argv, "rSd:g:")) != EOF) + switch(c) { + + case 'S': diff --git a/source/xap/xgames/slack-desc b/source/xap/xgames/slack-desc new file mode 100644 index 000000000..a81a038c7 --- /dev/null +++ b/source/xap/xgames/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xgames: xgames (small X games collection) +xgames: +xgames: A few small and historic games and toys for X. +xgames: +xgames: Includes maze, spider, xcolormap, xlander, xminesweep, xroach, xsnow. +xgames: +xgames: +xgames: +xgames: +xgames: +xgames: diff --git a/source/xap/xgames/spider.diff b/source/xap/xgames/spider.diff new file mode 100644 index 000000000..b0704f147 --- /dev/null +++ b/source/xap/xgames/spider.diff @@ -0,0 +1,121 @@ +--- ./globals.h.orig 1991-09-28 12:46:20.000000000 -0500 ++++ ./globals.h 2007-02-21 20:14:54.000000000 -0600 +@@ -96,6 +96,6 @@ + Bool can_get_help_files(); + #endif + +-extern char *malloc(); +-extern char *calloc(); +-extern char *realloc(); ++extern void *malloc(); ++extern void *calloc(); ++extern void *realloc(); +--- ./movelog.c.orig 1991-09-28 12:46:17.000000000 -0500 ++++ ./movelog.c 2007-02-21 20:17:21.000000000 -0600 +@@ -22,6 +22,7 @@ + #ifdef SVR4 + #include + #endif ++#include + + #define CACHE_SIZE 50 + static int move_index = 0; +@@ -33,6 +34,21 @@ + + extern int cheat_count; + ++Rank flip_ranks[NUM_RANKS] = { ++ King, Queen, Jack, Ten, Nine, Eight, Seven, ++ Six, Five, Four, Three, Deuce, Ace ++}; ++ ++static int ++card_to_int(card) ++CardPtr card; ++{ ++int val; ++ ++ val = card->suit * 13 + flip_ranks[card->rank]; ++ return (val); ++} ++ + make_deck_cache() + { + CardPtr tmp; +@@ -280,11 +296,6 @@ + } + } + +-Rank flip_ranks[NUM_RANKS] = { +- King, Queen, Jack, Ten, Nine, Eight, Seven, +- Six, Five, Four, Three, Deuce, Ace +-}; +- + static void + int_to_card(val, suit, rank) + int val; +@@ -298,16 +309,6 @@ + assert (*rank >= Ace && *suit <= King); + } + +-static int +-card_to_int(card) +-CardPtr card; +-{ +-int val; +- +- val = card->suit * 13 + flip_ranks[card->rank]; +- return (val); +-} +- + static CardPtr + find_card(cache, suit, rank) + CardPtr *cache; +@@ -709,6 +710,23 @@ + } + } + ++static int ++restore_game(str, str2) ++char *str, *str2; ++{ ++ ++ if (read_position(str) != 0) { ++ return (-1); ++ } ++ ++ init_cache(); /* clear out the move cache */ ++ ++ if (str2) ++ read_moves(str2); ++ ++ return (0); ++} ++ + read_selection(buf) + char *buf; + { +@@ -786,23 +804,6 @@ + show_message(buf); + } + +-static int +-restore_game(str, str2) +-char *str, *str2; +-{ +- +- if (read_position(str) != 0) { +- return (-1); +- } +- +- init_cache(); /* clear out the move cache */ +- +- if (str2) +- read_moves(str2); +- +- return (0); +-} +- + /* + * play the same deck again + */ diff --git a/source/xap/xgames/xcolormap.diff b/source/xap/xgames/xcolormap.diff new file mode 100644 index 000000000..57a0bee7c --- /dev/null +++ b/source/xap/xgames/xcolormap.diff @@ -0,0 +1,22 @@ +--- ./Makefile.orig Wed Aug 4 14:53:55 1999 ++++ ./Makefile Wed Aug 4 14:54:07 1999 +@@ -3,7 +3,7 @@ + PROGRAM = xcolormap + OBJS = xcolormap.o + +-LIBS = -lm -lXt -lX11 ++LIBS = -lm -L /usr/X11R6/lib -lXt -lX11 + + all: $(PROGRAM) + +--- ./xcolormap.c.orig Wed Aug 4 14:53:23 1999 ++++ ./xcolormap.c Wed Aug 4 14:53:49 1999 +@@ -113,7 +113,7 @@ + + if (!TheDisplay) + { +- XtWarning ("%s: can't open display, exiting...", APPNAME); ++ XtWarning ("%s: can't open display, exiting..."); + exit (0); + } + diff --git a/source/xap/xgames/xcuckoo.diff b/source/xap/xgames/xcuckoo.diff new file mode 100644 index 000000000..00c014cb3 --- /dev/null +++ b/source/xap/xgames/xcuckoo.diff @@ -0,0 +1,12 @@ +diff -u xcuckoo.orig/xcuckoo.c xcuckoo/xcuckoo.c +--- xcuckoo.orig/xcuckoo.c 1992-05-05 02:38:34.000000000 -0500 ++++ xcuckoo/xcuckoo.c 2007-02-28 13:10:37.000000000 -0600 +@@ -37,7 +37,7 @@ + #include "version.h" + #include "patchlevel.h" + +-extern char *malloc(); ++extern void *malloc(); + + /* R4 concession */ + #ifndef XPointer diff --git a/source/xap/xgames/xgames.SlackBuild b/source/xap/xgames/xgames.SlackBuild new file mode 100755 index 000000000..e2514f816 --- /dev/null +++ b/source/xap/xgames/xgames.SlackBuild @@ -0,0 +1,154 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=0.3 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xgames +rm -rf $PKG +mkdir -p $TMP $PKG + +# Build spider: +cd $TMP +tar xvf $CWD/spider.tar.gz || exit 1 +cd spider || exit 1 +zcat $CWD/spider.diff.gz | patch -p1 --verbose || exit 1 +xmkmf +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/usr/bin +cat spider > $PKG/usr/bin/spider +mkdir -p $PKG/usr/man/man6 +cat spider.man | gzip -9c > $PKG/usr/man/man6/spider.6.gz +mkdir -p $PKG/usr/doc/xgames-$VERSION/spider +cp -a README* $PKG/usr/doc/xgames-$VERSION/spider + +# Build maze: +cd $TMP +tar xvf $CWD/maze.tar.gz || exit 1 +cd maze || exit 1 +zcat $CWD/maze.diff.gz | patch -p1 || exit 1 +xmkmf +make $NUMJOBS || make || exit 1 +cat maze > $PKG/usr/bin/maze +cat maze.man | gzip -9c > $PKG/usr/man/man6/maze.6.gz +mkdir -p $PKG/usr/doc/xgames-$VERSION/maze +cp -a README $PKG/usr/doc/xgames-$VERSION/maze + +# Build xcolormap: +cd $TMP +tar xvf $CWD/xcolormap.tar.gz || exit 1 +cd xcolormap || exit 1 +zcat $CWD/xcolormap.diff.gz | patch -p1 || exit 1 +make $NUMJOBS || make || exit 1 +cat xcolormap > $PKG/usr/bin/xcolormap +mkdir -p $PKG/usr/doc/xgames-$VERSION/xcolormap +cp -a README $PKG/usr/doc/xgames-$VERSION/xcolormap + +# Build xcuckoo: +cd $TMP +tar xvf $CWD/xcuckoo-1.1.tar.gz || exit 1 +cd xcuckoo || exit 1 +zcat $CWD/xcuckoo.diff.gz | patch -p1 --verbose || exit 1 +xmkmf +make $NUMJOBS || make || exit 1 +cat xcuckoo > $PKG/usr/bin/xcuckoo +cat xcuckoo.man | gzip -9c > $PKG/usr/man/man6/xcuckoo.6.gz +mkdir -p $PKG/usr/doc/xgames-$VERSION/xcuckoo +cp -a CHANGES $PKG/usr/doc/xgames-$VERSION/xcuckoo + +# Build xlander: +cd $TMP +tar xvf $CWD/xlander.tar.gz || exit 1 +cd xlander || exit 1 +zcat $CWD/xlander.fixes.diff.gz | patch -p1 || exit 1 +zcat $CWD/xlander-2009-07-18.diff.gz | patch -p1 || exit 1 +xmkmf +make $NUMJOBS || make || exit 1 +cat xlander > $PKG/usr/bin/xlander +cat xlander.man | gzip -9c > $PKG/usr/man/man6/xlander.6.gz +mkdir -p $PKG/usr/doc/xgames-$VERSION/xlander +cp -a README $PKG/usr/doc/xgames-$VERSION/xlander + +# Build xminesweep: +cd $TMP +tar xvf $CWD/xminesweep3.0.tar.gz || exit 1 +cd xminesweep3.0 || exit 1 +xmkmf +make $NUMJOBS || make || exit 1 +cat xminesweep > $PKG/usr/bin/xminesweep +cat xminesweep.man | gzip -9c > $PKG/usr/man/man6/xminesweep.6.gz +mkdir -p $PKG/usr/doc/xgames-$VERSION/xminesweep +cp -a README $PKG/usr/doc/xgames-$VERSION/xminesweep + +# Build xneko: +cd $TMP +tar xvf $CWD/xneko.tar.gz || exit 1 +cd xneko || exit 1 +xmkmf +make $NUMJOBS || make || exit 1 +cat xneko > $PKG/usr/bin/xneko +cat xneko.man | gzip -9c > $PKG/usr/man/man6/xneko.6.gz +mkdir -p $PKG/usr/doc/xgames-$VERSION/xneko +cp -a README $PKG/usr/doc/xgames-$VERSION/xneko + +# Build xroach: +cd $TMP +tar xvf $CWD/xroach.tar.gz || exit 1 +cd xroach || exit 1 +xmkmf +make $NUMJOBS || make || exit 1 +cat xroach > $PKG/usr/bin/xroach +cat xroach.man | gzip -9c > $PKG/usr/man/man6/xroach.6.gz +mkdir -p $PKG/usr/doc/xgames-$VERSION/xroach +cp -a README.linux $PKG/usr/doc/xgames-$VERSION/xroach + +# Build xsnow: +cd $TMP +tar xvf $CWD/xsnow-1.40.tar.gz || exit 1 +cd xsnow-1.40 || exit 1 +xmkmf +make $NUMJOBS || make || exit 1 +cat xsnow > $PKG/usr/bin/xsnow +cat xsnow.man | gzip -9c > $PKG/usr/man/man6/xsnow.6.gz +mkdir -p $PKG/usr/doc/xgames-$VERSION/xsnow +cp -a README $PKG/usr/doc/xgames-$VERSION/xsnow + +# Fix everything up: +chmod 755 $PKG/usr/bin/* +strip $PKG/usr/bin/* + +( cd $PKG/usr/doc + find . -type f -exec chown root.root {} \; + find . -type f -exec chmod 644 {} \; +) + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xgames-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xgames/xlander-2009-07-18.diff b/source/xap/xgames/xlander-2009-07-18.diff new file mode 100644 index 000000000..21402ea4d --- /dev/null +++ b/source/xap/xgames/xlander-2009-07-18.diff @@ -0,0 +1,86 @@ +diff --git a/game.c b/game.c +index e6f3a53..b789081 100644 +--- a/game.c ++++ b/game.c +@@ -93,7 +93,7 @@ void RateLanding (db, lander) + extern LINE landingpad[]; + int x_distance, z_distance; /* Distance from center of pad */ + int abs (); +- void InitializeLander (), DisplayAcceleration (); ++ void InitFrameRate (), InitializeLander (), DisplayAcceleration (); + + x_distance = + abs ((int) (db->off_x - (landingpad[0].x1 + (PAD_WIDTH >> 1)))); +@@ -108,6 +108,7 @@ void RateLanding (db, lander) + } + XDrawImageString (d, instrBuffer, gcInstr, 381, 84, buf, strlen (buf)); + Pause ("Press mouse button to continue"); ++ InitFrameRate (); + InitializeLander (db, lander); + + /* +diff --git a/initialize.c b/initialize.c +index 99a81c5..279e3f2 100644 +--- a/initialize.c ++++ b/initialize.c +@@ -60,7 +60,7 @@ void InitializeLander (craft, lander) + lander->retro_thruster = 0; + lander->vert_speed = 0.0; + lander->heading = 1.36; +- lander->lat_veloc = 100.0; ++ lander->lat_veloc = 300.0; + lander->fuel = FULL_TANK; + lander->alt = craft->off_y / PIXELS_PER_FOOT; + } +diff --git a/patchlevel.h b/patchlevel.h +index 9625f98..be79bb8 100644 +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -1,2 +1,2 @@ +-#define PATCHLEVEL 3 ++#define PATCHLEVEL 4 + +diff --git a/xlander.c b/xlander.c +index 2b2c103..318e5df 100644 +--- a/xlander.c ++++ b/xlander.c +@@ -101,9 +101,17 @@ void DisplayWorld () + } + + ++void InitFrameRate () ++{ ++ gettimeofday(&frame_time, NULL); ++ gettimeofday(&prev_frame_time, NULL); ++ fps = 1000000.0; /* Avoid initial spike */ ++} ++ ++ + void UpdateFrameRate () + { +- unsigned long sec, usec, diff; ++ long sec, usec, diff; + + gettimeofday(&frame_time, NULL); + sec = frame_time.tv_sec - prev_frame_time.tv_sec; +@@ -164,6 +172,7 @@ int main (argc, argv) + */ + mask = sigblock (sigmask (SIGINT)); + Pause ("Press any mouse button to begin"); ++ InitFrameRate (); + DisplayAcceleration (); + for (;;) { + UpdateOrientation (world, craft, &lander); +diff --git a/xlander.h b/xlander.h +index ea157f7..ea072d3 100644 +--- a/xlander.h ++++ b/xlander.h +@@ -44,7 +44,7 @@ + #define PIXELS_PER_FOOT 6 /* Number of pixels per foot */ + #define ACCELERATION -5.310 /* Acceleration of gravity (ft/sec^2) */ + #define RETRO 35.0 /* Acceleration due to retroactive thruster */ +-#define LATERAL_THRUST 5.0 /* Acceleration due to lateral thruster */ ++#define LATERAL_THRUST 1.0 /* Acceleration due to lateral thruster */ + #define PI 3.1415926535897932384 + #define HALFPI 1.5707963 /* pi/2 */ + #define TWOPI100 628 diff --git a/source/xap/xgames/xlander.fixes.diff b/source/xap/xgames/xlander.fixes.diff new file mode 100644 index 000000000..7212e1839 --- /dev/null +++ b/source/xap/xgames/xlander.fixes.diff @@ -0,0 +1,228 @@ +diff -ru a-slackware-1995-06-17/game.c b-gary/game.c +--- a-slackware-1995-06-17/game.c 1995-06-17 21:23:00.000000000 -0400 ++++ b-gary/game.c 2007-03-01 04:08:49.000000000 -0500 +@@ -165,7 +165,7 @@ + switch (event.type) { + case KeyPress: + if (lander->fuel > 0.0) { +- XLookupString (&event, &ch, 1, &keysym, (XComposeStatus *) 0); ++ XLookupString ((XKeyEvent *) &event, &ch, 1, &keysym, (XComposeStatus *) 0); + if (ch == lander->controls[0] || keysym == XK_Up) + lander->rear_thruster = lander->lateral_thrust; + else if (ch == lander->controls[1] || keysym == XK_Down) +@@ -179,7 +179,7 @@ + } + break; + case KeyRelease: +- XLookupString (&event, &ch, 1, &keysym, (XComposeStatus *) 0); ++ XLookupString ((XKeyEvent *) &event, &ch, 1, &keysym, (XComposeStatus *) 0); + if (ch == lander->controls[0] || keysym == XK_Up) + lander->rear_thruster = 0; + else if (ch == lander->controls[1] || keysym == XK_Down) +@@ -197,24 +197,26 @@ + } + + if (lander->retro_thruster > 0) +- lander->fuel -= RETRO_BURN; ++ lander->fuel -= RETRO_BURN / fps; + if (lander->front_thruster > 0) +- lander->fuel -= LATERAL_BURN; ++ lander->fuel -= LATERAL_BURN / fps; + if (lander->rear_thruster > 0) +- lander->fuel -= LATERAL_BURN; ++ lander->fuel -= LATERAL_BURN / fps; + if (lander->left_thruster > 0) +- lander->fuel -= LATERAL_BURN; ++ lander->fuel -= LATERAL_BURN / fps; + if (lander->right_thruster > 0) +- lander->fuel -= LATERAL_BURN; ++ lander->fuel -= LATERAL_BURN / fps; ++ if (lander->fuel < 0.0) ++ lander->fuel = 0.0; /* Prevents gas gauge from going negative */ + lander->vert_speed += +- (lander->retro_thruster + acceleration) / TICKS_PER_SECOND; +- lander->alt += lander->vert_speed / TICKS_PER_SECOND; ++ (lander->retro_thruster + acceleration) / fps; ++ lander->alt += lander->vert_speed / fps; + lat_accel_x = lander->right_thruster - lander->left_thruster; + lat_accel_y = lander->rear_thruster - lander->front_thruster; + lat_veloc_x = lander->lat_veloc * cos (lander->heading) + lat_accel_x; + lat_veloc_y = lander->lat_veloc * sin (lander->heading) + lat_accel_y; +- craft->off_x += (lat_veloc_x / TICKS_PER_SECOND) * PIXELS_PER_FOOT; +- craft->off_z += (lat_veloc_y / TICKS_PER_SECOND) * PIXELS_PER_FOOT; ++ craft->off_x += (lat_veloc_x / fps) * PIXELS_PER_FOOT; ++ craft->off_z += (lat_veloc_y / fps) * PIXELS_PER_FOOT; + lander->lat_veloc = + sqrt (lat_veloc_x * lat_veloc_x + lat_veloc_y * lat_veloc_y); + +diff -ru a-slackware-1995-06-17/globals.c b-gary/globals.c +--- a-slackware-1995-06-17/globals.c 1995-06-17 21:22:36.000000000 -0400 ++++ b-gary/globals.c 2007-03-01 04:08:49.000000000 -0500 +@@ -27,3 +27,4 @@ + XrmDatabase resources = (XrmDatabase) 0; + /* X Resource database */ + float acceleration = 0.0; /* Acceleration due to gravity */ ++float fps; /* Current frames per second */ +diff -ru a-slackware-1995-06-17/globals.h b-gary/globals.h +--- a-slackware-1995-06-17/globals.h 1995-06-17 21:22:41.000000000 -0400 ++++ b-gary/globals.h 2007-03-01 04:08:49.000000000 -0500 +@@ -30,5 +30,6 @@ + extern int px, py, pz; + extern int roll, pitch, yaw; + extern float acceleration; ++extern float fps; + +-#endif _globals_h_ ++#endif /* _globals_h_ */ +diff -ru a-slackware-1995-06-17/initialize.c b-gary/initialize.c +--- a-slackware-1995-06-17/initialize.c 1995-06-17 21:23:00.000000000 -0400 ++++ b-gary/initialize.c 2007-03-01 04:08:49.000000000 -0500 +@@ -61,7 +61,7 @@ + lander->vert_speed = 0.0; + lander->heading = 1.36; + lander->lat_veloc = 100.0; +- lander->fuel = 320.0; ++ lander->fuel = FULL_TANK; + lander->alt = craft->off_y / PIXELS_PER_FOOT; + } + +@@ -293,7 +293,7 @@ + + world->min_x = world->min_y = -HALF_WORLD_LENGTH; + world->max_x = world->max_y = HALF_WORLD_WIDTH; +- srandom ((long) time ((int *) 0)); ++ srandom ((long) time ((time_t *) 0)); + for (x = -HALF_WORLD_WIDTH; x < HALF_WORLD_WIDTH; + r ^= 1, x += EDGE_LENGTH + (int) x_offset) + for (y = r * (int) y_offset - HALF_WORLD_LENGTH; y < HALF_WORLD_LENGTH; +diff -ru a-slackware-1995-06-17/instrument.c b-gary/instrument.c +--- a-slackware-1995-06-17/instrument.c 1995-06-17 21:22:39.000000000 -0400 ++++ b-gary/instrument.c 2007-03-01 04:08:49.000000000 -0500 +@@ -48,7 +48,7 @@ + { + static int heading_x = 50, heading_y = 15; + static int fuel_level = 80, old_x = 290, old_y = 10; +- int new_fuel_level = (int) fuel / 4; ++ int new_fuel_level = (int) (fuel / (float) FULL_TANK * 80.0); + char buf[32]; + + /* +diff -ru a-slackware-1995-06-17/patchlevel.h b-gary/patchlevel.h +--- a-slackware-1995-06-17/patchlevel.h 1995-06-17 21:23:00.000000000 -0400 ++++ b-gary/patchlevel.h 2007-03-01 04:08:49.000000000 -0500 +@@ -1,2 +1,2 @@ +-#define PATCHLEVEL 2 ++#define PATCHLEVEL 3 + +diff -ru a-slackware-1995-06-17/xlander.c b-gary/xlander.c +--- a-slackware-1995-06-17/xlander.c 1995-06-17 21:22:36.000000000 -0400 ++++ b-gary/xlander.c 2007-03-01 04:08:49.000000000 -0500 +@@ -14,6 +14,7 @@ + + #include "xlander.h" + #include "globals.h" ++#include + + /* + * A lander +@@ -68,6 +69,7 @@ + static DATABASE *world, *craft, *thrust, *shadow; + static LANDER lander; + int mask; ++struct timeval frame_time, prev_frame_time; + + /****************************************************************************** + ** DisplayWorld +@@ -98,7 +100,26 @@ + XSync (d,False); + } + +-void main (argc, argv) ++ ++void UpdateFrameRate () ++{ ++ unsigned long sec, usec, diff; ++ ++ gettimeofday(&frame_time, NULL); ++ sec = frame_time.tv_sec - prev_frame_time.tv_sec; ++ usec = frame_time.tv_usec - prev_frame_time.tv_usec; ++ if(usec < 0) { ++ usec += 1000000; ++ sec--; ++ } ++ diff = sec * 1000000 + usec; ++ fps = 1000000.0 / (float) diff; ++ prev_frame_time.tv_sec = frame_time.tv_sec; ++ prev_frame_time.tv_usec = frame_time.tv_usec; ++} ++ ++ ++int main (argc, argv) + int argc; + char *argv[]; + { +@@ -113,6 +134,10 @@ + thrust = DBInitFromData (thrust_data, THRUSTSIZE); + shadow = DBInitFromData (shadow_data, SHADOWSIZE); + ++ gettimeofday(&frame_time, NULL); ++ gettimeofday(&prev_frame_time, NULL); ++ fps = 1000000.0; /* Prevent startup pulse */ ++ + /* + * Initial coordinates of the lander... + */ +@@ -143,7 +168,9 @@ + for (;;) { + UpdateOrientation (world, craft, &lander); + DisplayWorld (); ++ UpdateFrameRate (); + (void) sigsetmask (mask); + mask = sigblock (sigmask (SIGINT)); + } ++ return 0; + } +diff -ru a-slackware-1995-06-17/xlander.h b-gary/xlander.h +--- a-slackware-1995-06-17/xlander.h 1995-06-17 21:23:00.000000000 -0400 ++++ b-gary/xlander.h 2007-03-01 04:08:49.000000000 -0500 +@@ -20,6 +20,7 @@ + #ifndef _xlander_h_ + #define _xlander_h_ + ++#include + #include + #include + #include +@@ -41,7 +42,6 @@ + #define HALF_WORLD_LENGTH (WORLD_LENGTH >> 1) + #define HALF_WORLD_WIDTH (WORLD_WIDTH >> 1) + #define PIXELS_PER_FOOT 6 /* Number of pixels per foot */ +-#define TICKS_PER_SECOND 3 /* Number of frames per second */ + #define ACCELERATION -5.310 /* Acceleration of gravity (ft/sec^2) */ + #define RETRO 35.0 /* Acceleration due to retroactive thruster */ + #define LATERAL_THRUST 5.0 /* Acceleration due to lateral thruster */ +@@ -53,7 +53,7 @@ + #define LAT_SPEED 30.0 /* Maximum lateral speed without crashing */ + #define RETRO_BURN 1.6 /* Retroactive thruster fuel consumption */ + #define LATERAL_BURN 0.4 /* Lateral thruster fuel consumption */ +-#define FULL_TANK 320 /* Full tank of fuel */ ++#define FULL_TANK 15 /* Full tank of fuel */ + #define MAX_VELOC 640.0 /* Maximum velocity */ + + #define LANDER_WIDTH 600 +@@ -107,9 +107,6 @@ + + DATABASE *DBInit (), *DBInitFromData (), *LoadDataBase (); + void DBInsert (), DBFinish (), DBPlot (), SwapBuffers (), exit (); +-#ifndef _AIX +-char *malloc (); +-#endif + double atof (); + #ifdef sun + int printf (), fprintf (), time (); +@@ -122,4 +119,4 @@ + #define WorldToRadarX(x) (290 + (((int) (x) + (WORLD_WIDTH >> 1)) / 250)) + #define WorldToRadarY(y) (90 - (((int) (y) + (WORLD_LENGTH >> 1)) / 250)) + +-#endif _xlander_h_ ++#endif /* _xlander_h_ */ diff --git a/source/xap/xine-lib/slack-desc b/source/xap/xine-lib/slack-desc new file mode 100644 index 000000000..276736680 --- /dev/null +++ b/source/xap/xine-lib/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xine-lib: xine-lib (xine multimedia playback engine libraries) +xine-lib: +xine-lib: xine-lib is a free (GPL licensed) high-performance multimedia +xine-lib: playback engine. The xine shared libraries are used by xine-ui (and +xine-lib: other media players and multimedia applications) for smooth video +xine-lib: processing and playback of multimedia streams such as movies, radio +xine-lib: and TV network streams, DVDs, and VCDs. +xine-lib: +xine-lib: +xine-lib: +xine-lib: diff --git a/source/xap/xine-lib/xine-lib.SlackBuild b/source/xap/xine-lib/xine-lib.SlackBuild new file mode 100755 index 000000000..84c6703f1 --- /dev/null +++ b/source/xap/xine-lib/xine-lib.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +# Version on the tarball +VERSION=1.1.16.3 +# Version used in the source directory to cd into +DIRVER=1.1.16.3 +# Version used for the Slackware package +PKGVER=1.1.16.3 + +# I would use "-march=i486 -mtune=i686" here as usual, but with XINE it's all or nothing. +# I'd rather have it work well for the i686/Athlon crowd than suck for everyone. +ARCH=${ARCH:-x86_64} +TARGET=${TARGET:-$ARCH-pc-linux-gnu} +BUILD=${BUILD:-6} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xine-lib +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf xine-lib-$VERSION +tar xvf $CWD/xine-lib-$VERSION.tar.bz2 || exit 1 +cd xine-lib-$DIRVER || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +XINE_BUILD=$TARGET \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --docdir=/usr/doc/xine-lib-$VERSION \ + --mandir=/usr/man \ + --with-w32-path=/usr/lib${LIBDIRSUFFIX}/codecs \ + --with-arts \ + --disable-nosefart \ + --without-speex + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/codecs + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done +) + +# Copy a few missed docs, and remove the redundant html FAQ (we have a txt) +cp -a \ + ABOUT-NLS AUTHORS NEWS \ + $PKG/usr/doc/xine-lib-$VERSION +rm -f $PKG/usr/doc/xine-lib-$VERSION/faq.html + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xine-lib-$PKGVER-$ARCH-$BUILD.txz + diff --git a/source/xap/xine-ui/slack-desc b/source/xap/xine-ui/slack-desc new file mode 100644 index 000000000..f4e39279e --- /dev/null +++ b/source/xap/xine-ui/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xine-ui: xine-ui (xine multimedia playback engine user interface) +xine-ui: +xine-ui: Xine is a free multimedia player. It plays back CDs, DVDs, and VCDs, +xine-ui: multimedia files, and multimedia streamed over a network. +xine-ui: +xine-ui: The xine-ui package contains the graphical user interface for the +xine-ui: xine multimedia player. +xine-ui: +xine-ui: +xine-ui: +xine-ui: diff --git a/source/xap/xine-ui/xine-ui.SlackBuild b/source/xap/xine-ui/xine-ui.SlackBuild new file mode 100755 index 000000000..1dd61f1f6 --- /dev/null +++ b/source/xap/xine-ui/xine-ui.SlackBuild @@ -0,0 +1,87 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.99.5 +# I would use "-march=i486 -mcpu=i686" here as usual, but with XINE it's all or nothing. +# I'd rather have it work well for the i686/Athlon crowd than suck for everyone. +ARCH=${ARCH:-x86_64} +TARGET=${TARGET:-$ARCH-pc-linux-gnu} +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xine-ui +rm -rf $PKG +mkdir -p $TMP $PKG/usr + +cd $TMP +rm -rf xine-ui-$VERSION +tar xvf $CWD/xine-ui-$VERSION.tar.bz2 || exit 1 +cd xine-ui-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +XINE_BUILD=$TARGET \ +./configure \ + --prefix=/usr \ + --with-aalib \ + --with-caca \ + --build=$TARGET + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/share/applications +zcat $CWD/xine.desktop.gz > $PKG/usr/share/applications/xine.desktop + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +( cd $PKG/usr/man + find . -name "*.?" | xargs gzip -9 +) + +mkdir -p $PKG/usr/doc/xine-ui-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING NEWS README \ + doc/README* \ + $PKG/usr/doc/xine-ui-$VERSION +cp -a \ + src/xitk/xine-toolkit/README \ + $PKG/usr/doc/xine-ui-$VERSION/README.xitk +# redundant +rm -rf $PKG/usr/share/doc + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xine-ui-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xine-ui/xine.desktop b/source/xap/xine-ui/xine.desktop new file mode 100644 index 000000000..0936a4e99 --- /dev/null +++ b/source/xap/xine-ui/xine.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Xine +Name[pl]=Odtwarzacz xine +GenericName=Media Player +Comment=Xine Media Player +Comment[pl]=Odtwarzacz filmów +Icon=xine.xpm +Exec=xine +Terminal=0 +Type=Application +Categories=Application;AudioVideo;Player; +MimeType=video/mpeg;video/quicktime;video/x-msvideo;video/x-anim;audio/x-mp3;audio/x-mp2; +# vi: encoding=utf-8 diff --git a/source/xap/xlockmore/l-bob.README b/source/xap/xlockmore/l-bob.README new file mode 100644 index 000000000..8e868f885 --- /dev/null +++ b/source/xap/xlockmore/l-bob.README @@ -0,0 +1,5 @@ + +The image of J. R. "Bob" Dobbs found in the file l-bob.xbm, and used as the +"bob" (xlockmore) screensaver in Slackware, is a registered trademark of +The Subgenius Foundation (http://www.subgenius.com). Used by permission. + diff --git a/source/xap/xlockmore/l-bob.xbm b/source/xap/xlockmore/l-bob.xbm new file mode 100644 index 000000000..ceea6daf7 --- /dev/null +++ b/source/xap/xlockmore/l-bob.xbm @@ -0,0 +1,364 @@ +#define image_width 172 +#define image_height 246 +static unsigned char image_bits[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3a,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0xa0, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0, + 0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x07,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xf0,0x00, + 0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0xf0,0x00,0x00, + 0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07, + 0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff, + 0xff,0xff,0xdf,0xff,0xf3,0xff,0x1f,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, + 0x00,0x00,0xfe,0xff,0xff,0xff,0xdf,0xff,0xff,0x9f,0xff,0xe3,0xff,0x3f,0x00, + 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x9f,0xff, + 0xff,0x3f,0xff,0xc7,0xff,0x3f,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00, + 0x80,0xff,0xff,0xff,0xff,0x1f,0xf2,0x7f,0x7f,0xfe,0xc3,0xff,0x7f,0x00,0x00, + 0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0x3f,0xc0,0x7f, + 0x7e,0xfc,0xc1,0xff,0xff,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xe0, + 0xff,0xff,0xff,0xcf,0x7f,0x00,0xff,0x7c,0xfc,0xc1,0xff,0xff,0x01,0x00,0x00, + 0x00,0xf0,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0x0f,0xff,0x00,0xff,0x78, + 0xf0,0xc1,0xff,0xff,0x03,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0xff, + 0xff,0xfc,0x1f,0xfe,0x00,0xff,0x30,0xe0,0x81,0xff,0xff,0x03,0x00,0x00,0x00, + 0xf0,0x00,0x00,0x00,0x00,0xfc,0xff,0x7f,0x38,0x1f,0xfc,0x01,0xfe,0x01,0xe0, + 0x83,0xff,0xf9,0x07,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xff,0xff,0x3f, + 0x38,0x1e,0xf8,0x01,0xfc,0x01,0xe0,0x87,0xff,0xfb,0x07,0x00,0x00,0x00,0xf0, + 0x00,0x00,0x00,0x80,0xff,0xff,0x7f,0x00,0x3c,0xf0,0x01,0xf8,0x01,0xe0,0x8f, + 0xff,0xf3,0x07,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xc0,0xff,0xff,0x7f,0x00, + 0x3c,0xf0,0x03,0xf8,0x01,0xc0,0xff,0xff,0xf3,0x0f,0x00,0x00,0x00,0xf0,0x00, + 0x00,0x00,0xc0,0xff,0xff,0xff,0x00,0x7c,0xe0,0x03,0xf0,0x01,0xc0,0xff,0xff, + 0xf3,0x3f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0x81,0x7f, + 0xe0,0x03,0xf0,0x03,0xc0,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0xf0,0x00,0x00, + 0x00,0xe0,0xff,0xff,0xff,0x83,0xff,0xe0,0x03,0xe0,0x03,0xc0,0xff,0xff,0xff, + 0xff,0x01,0x00,0x00,0xf0,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x97,0xff,0xc0, + 0x07,0xe0,0x03,0x80,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0xf0,0x00,0x00,0x00, + 0xf0,0xff,0xff,0xff,0xff,0xff,0xc1,0x07,0xc0,0x07,0x80,0xff,0xff,0xff,0xff, + 0x07,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xc1,0x07, + 0xc0,0x03,0x80,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0xf0,0x00,0x00,0x00,0xf8, + 0xff,0xff,0xff,0xff,0xff,0x83,0x0f,0xc0,0x07,0xc0,0xff,0xff,0xff,0xff,0x3f, + 0x00,0x00,0xf0,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xc7,0x0f,0xc0, + 0x1f,0xe0,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0xf0,0x00,0x00,0x00,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xcf,0x1f,0xc0,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0x00, + 0x00,0xf0,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xc0,0x7f, + 0xfe,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xf0,0x00,0x00,0x00,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xc3,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0x01,0x00, + 0xf0,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0x7f,0xfe, + 0xff,0xff,0xff,0xff,0xff,0x03,0x00,0xf0,0x00,0x00,0x80,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0xf0, + 0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff, + 0xff,0xff,0xff,0xff,0x0f,0x00,0xf0,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0x0f,0xff,0xff,0x1f,0x00,0xf0,0x00, + 0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff, + 0x07,0xff,0xff,0x1f,0x00,0xf0,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x3f,0xff,0xff,0xbf,0x00,0xff,0xff,0x1f,0x00,0xf0,0x00,0x00, + 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0x0f,0x00, + 0xff,0xff,0x1f,0x00,0xf0,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x03,0x00,0xfe,0xff,0x3f,0x00,0xf0,0x00,0x00,0xe0, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xfe, + 0xff,0x3f,0x00,0xf0,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x1f,0x00,0x00,0xfe,0xff,0x3f,0x00,0xf0,0x00,0x00,0xf0,0xff, + 0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0xfc,0xff, + 0x3f,0x00,0xf0,0x00,0x00,0xf0,0xff,0xff,0x7f,0xf0,0xff,0xff,0xff,0xff,0xff, + 0xff,0x0f,0x00,0x00,0x00,0xfc,0xff,0x3f,0x00,0xf0,0x00,0x00,0xf0,0xff,0xff, + 0x7f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0xf8,0xff,0x3f, + 0x00,0xf0,0x00,0x00,0xf0,0xff,0xff,0x03,0xf0,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x00,0x00,0x00,0x00,0xf8,0xff,0x3f,0x00,0xf0,0x00,0x00,0xf0,0xff,0xff,0x03, + 0xe0,0xff,0xff,0xe7,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0xf8,0xff,0x7f,0x00, + 0xf0,0x00,0x00,0xf0,0xff,0xff,0x01,0x00,0x00,0x80,0xc3,0xff,0xff,0x01,0x00, + 0x00,0x00,0x00,0xf8,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x01,0x00, + 0x00,0x00,0x00,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0x7f,0x00,0xf0, + 0x00,0x00,0xf8,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0xf8,0x07,0x00,0x00,0x00, + 0x00,0x00,0xf0,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0x7f,0x00,0xf0,0x00, + 0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xe0,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x07,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0x7f,0x00,0xf0,0x00,0x00, + 0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xc0,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8, + 0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0, + 0xff,0xff,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff, + 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff, + 0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff, + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x7f, + 0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x80,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x7f,0x00, + 0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x80,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0x7f,0x00,0xf0, + 0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xc0,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xc0,0xff,0x7f,0x00,0xf0,0x00, + 0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x70,0xc0,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xc0,0xff,0x7f,0x00,0xf0,0x00,0x00, + 0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0, + 0xc1,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x03,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xc1,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8, + 0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xc1, + 0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xf8,0xc1,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff, + 0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xc1,0xff, + 0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xf8,0xc1,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf0,0xff,0xff, + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xc1,0xff,0x7f, + 0x00,0xf0,0x00,0x00,0xf0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xf0,0xc1,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf0,0xff,0xff,0x03, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xc1,0xff,0x7f,0x00, + 0xf0,0x00,0x00,0xf0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xf0,0xc1,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf0,0xff,0xff,0x03,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xc1,0xff,0x7f,0x00,0xf0, + 0x00,0x00,0xf0,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xe0,0xc3,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf0,0xff,0xff,0x03,0x40,0x91, + 0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x00,0xe0,0xc3,0xff,0x7f,0x00,0xf0,0x00, + 0x00,0xf0,0xff,0xff,0x03,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0xf0,0xff,0x0f, + 0xe0,0xc3,0xff,0x7f,0x00,0xf0,0x00,0x00,0xf0,0xff,0xff,0xc3,0xff,0xff,0x0f, + 0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xf3,0xc3,0xff,0x7f,0x00,0xf0,0x00,0x00, + 0xfc,0xff,0xff,0xe3,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xf7, + 0x83,0xff,0xff,0x00,0xf0,0x00,0x00,0xfc,0xff,0xff,0xf3,0xff,0xff,0x7f,0x00, + 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x83,0xff,0xff,0x00,0xf0,0x00,0x00,0xfc, + 0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x03, + 0xff,0xff,0x00,0xf0,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00, + 0x00,0x80,0xff,0xff,0xff,0xff,0x07,0xff,0xff,0x00,0xf0,0x00,0x00,0xfc,0xff, + 0xff,0xff,0x01,0xfc,0xff,0x01,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0x07,0xff, + 0xff,0x00,0xf0,0x00,0x00,0xfc,0xff,0xff,0x5f,0x00,0xf8,0xff,0x03,0x00,0x00, + 0xc0,0xff,0x3f,0x00,0xff,0x0f,0xff,0xff,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff, + 0x1f,0x00,0xe0,0xff,0x07,0x00,0x00,0xe0,0xff,0x03,0x00,0xfc,0x0f,0xfe,0x7f, + 0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x1f,0x00,0xc0,0xff,0x0f,0x00,0x00,0xf0, + 0xff,0x00,0x00,0xf0,0x0f,0xfe,0x7f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0x1f, + 0xf0,0xff,0xff,0x1f,0x00,0x00,0xf8,0xff,0x23,0x00,0xe0,0x1f,0xfe,0x3f,0x00, + 0xf0,0x00,0x00,0xf8,0xff,0xff,0x1f,0xfe,0xff,0xff,0x3f,0x00,0x00,0xfc,0xff, + 0xff,0x07,0xe0,0x1f,0xfe,0x3f,0x00,0xf0,0x00,0x00,0xf8,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x00,0x00,0xfe,0xff,0xff,0x3f,0xc0,0x1f,0xfe,0x3f,0x00,0xf0, + 0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff, + 0x7f,0xc0,0x1f,0xfe,0x3f,0x00,0xf0,0x00,0x00,0xf8,0xff,0x3f,0xfe,0xff,0xff, + 0xff,0xff,0x01,0x80,0xff,0xff,0xff,0xff,0x81,0x1f,0xfc,0x3f,0x00,0xf0,0x00, + 0x00,0xf8,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0x01,0xc0,0xff,0xff,0xff,0xff, + 0x83,0x1f,0xfc,0x3f,0x00,0xf0,0x00,0x00,0xf8,0xff,0x1f,0xf8,0xff,0xff,0xff, + 0xff,0x01,0xe0,0xff,0xff,0xff,0xff,0x83,0x1f,0xfc,0x3f,0x00,0xf0,0x00,0x00, + 0xf8,0xff,0x1f,0xf8,0xf7,0xff,0xf9,0xff,0x01,0xe0,0xff,0xff,0xff,0xfb,0x03, + 0x1f,0xfc,0x3f,0x00,0xf0,0x00,0x00,0xf8,0xff,0x0f,0xf8,0xc1,0xff,0xe0,0xff, + 0x03,0xf0,0xff,0x83,0xff,0xe1,0x07,0x1e,0xfe,0x3f,0x00,0xf0,0x00,0x00,0xf8, + 0xff,0x0f,0xf8,0xc1,0xff,0xe0,0xff,0x03,0xf0,0xff,0x83,0xff,0xe1,0x07,0x1e, + 0xfe,0x3f,0x00,0xf0,0x00,0x00,0xf8,0xff,0x0f,0xf8,0xc0,0xff,0xe0,0xff,0x03, + 0xe0,0xff,0x81,0xff,0xe1,0x07,0x1f,0xfe,0x3f,0x00,0xf0,0x00,0x00,0xf8,0xff, + 0x0f,0xf8,0xc0,0xff,0xe0,0xff,0x03,0xc0,0xff,0x80,0xff,0xe1,0x03,0x1e,0xfe, + 0x3f,0x00,0xf0,0x00,0x00,0xf8,0xff,0x1f,0x70,0xc0,0x7f,0xf0,0xff,0x03,0x00, + 0x00,0x80,0xff,0xe1,0x01,0x1e,0xfe,0x3f,0x00,0xf0,0x00,0x00,0xf8,0xff,0x1f, + 0x20,0x00,0x07,0xf8,0xff,0x03,0x00,0x00,0xf8,0xff,0xc0,0x00,0x1e,0xfe,0x1f, + 0x00,0xf0,0x00,0x00,0xf8,0xff,0x0f,0x00,0x00,0x00,0xfe,0xff,0x03,0x00,0x00, + 0xfe,0x07,0x00,0x00,0x1e,0xfe,0x1f,0x00,0xf0,0x00,0x00,0xf8,0xff,0x0f,0x00, + 0x00,0x80,0xff,0xfc,0x03,0x00,0x00,0xfe,0x03,0x00,0x00,0x1e,0xfe,0x1f,0x00, + 0xf0,0x00,0x00,0xf8,0xbf,0x0f,0x00,0x00,0xe0,0xff,0xfc,0x03,0x00,0x00,0xfe, + 0x03,0x00,0x00,0x08,0xfe,0x1f,0x00,0xf0,0x00,0x00,0xf0,0xbf,0x0f,0x00,0x00, + 0xf8,0x7f,0xfc,0x03,0x00,0x00,0xfc,0x0f,0x00,0x00,0x00,0xfe,0x1f,0x00,0xf0, + 0x00,0x00,0xf0,0x3f,0x0f,0x00,0xfc,0xff,0x3f,0xf8,0x03,0x00,0x00,0xf8,0xff, + 0x00,0x00,0x00,0xfe,0x0f,0x00,0xf0,0x00,0x00,0xf0,0x3f,0x0e,0x00,0xfc,0xff, + 0x0f,0xf8,0x01,0x00,0x00,0xf0,0xff,0x01,0x00,0x00,0xfe,0x1f,0x00,0xf0,0x00, + 0x00,0xf0,0x3f,0x0f,0x00,0xfc,0xff,0x07,0xf8,0x01,0x00,0x00,0xc0,0xff,0x01, + 0x00,0x00,0xfe,0x0f,0x00,0xf0,0x00,0x00,0xf0,0x7f,0x06,0x00,0xfc,0xff,0x01, + 0xf8,0x01,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x0f,0x00,0xf0,0x00,0x00, + 0xf0,0x7f,0x06,0x00,0xe0,0x3f,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xfe,0x0f,0x00,0xf0,0x00,0x00,0xf0,0x7f,0x06,0x00,0x00,0x07,0x00,0xf8, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x07,0x00,0xf0,0x00,0x00,0xe0, + 0x7f,0x00,0x00,0x00,0x00,0x00,0xf8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xfe,0x07,0x00,0xf0,0x00,0x00,0xe0,0x7f,0x00,0x00,0x00,0x00,0x00,0xf8,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x07,0x00,0xf0,0x00,0x00,0xf0,0x7f, + 0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, + 0x07,0x00,0xf0,0x00,0x00,0xe0,0x7f,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x0f,0x00,0xf0,0x00,0x00,0xe0,0x7f,0x1c, + 0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x0f, + 0x00,0xf0,0x00,0x00,0xe0,0x7f,0x3c,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x9e,0x0f,0x00,0xf0,0x00,0x00,0xe0,0xff,0x3c,0x00, + 0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9e,0x0f,0x00, + 0xf0,0x00,0x00,0xc0,0xfd,0x7c,0x00,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x9e,0x0f,0x00,0xf0,0x00,0x00,0x80,0xfd,0x7c,0x00,0x00, + 0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x07,0x00,0xf0, + 0x00,0x00,0x00,0xfc,0x7c,0x00,0x00,0x00,0x80,0x3f,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x9f,0x07,0x00,0xf0,0x00,0x00,0x00,0xfc,0xfc,0x00,0x00,0x00, + 0x80,0x3f,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x07,0x00,0xf0,0x00, + 0x00,0x80,0xff,0xfc,0x00,0x00,0x00,0xe0,0x3f,0x00,0x38,0x00,0x00,0x00,0x00, + 0x00,0x00,0xff,0x03,0x00,0xf0,0x00,0x00,0x80,0xff,0xf8,0x01,0x00,0x00,0xf0, + 0x3f,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,0x00,0xf0,0x00,0x00, + 0x00,0xff,0xf8,0x03,0x00,0x00,0xf8,0x3f,0x00,0x20,0x00,0x1e,0x00,0x00,0x00, + 0x04,0xef,0x01,0x00,0xf0,0x00,0x00,0x00,0xff,0xf8,0x03,0x00,0x00,0xff,0x1f, + 0x00,0x20,0xc0,0x7f,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, + 0x7c,0xf8,0x07,0x00,0x80,0xff,0x1f,0x00,0x00,0xe0,0xff,0x01,0x00,0x00,0x0f, + 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0x07,0x00,0xe0,0xff,0x1f,0x00, + 0x00,0xe0,0xff,0x03,0x00,0xc0,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00, + 0xf8,0x07,0x00,0xf0,0xff,0x1f,0x00,0x00,0xf0,0xff,0x07,0x00,0xc0,0x1f,0x00, + 0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0x0f,0x00,0xf8,0xfe,0x1f,0x00,0x00, + 0xfc,0xf3,0x0f,0x00,0xf0,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8, + 0x0f,0x00,0x7c,0xfc,0x3f,0x00,0x80,0xff,0xe1,0x3f,0x00,0xf8,0x0f,0x00,0x00, + 0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0x1f,0x00,0x3e,0xfc,0xbf,0x00,0xe0,0xff, + 0xc0,0x3f,0x00,0xfe,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0x1f, + 0x00,0x1f,0xfc,0xff,0x03,0xf0,0x7f,0x80,0x7f,0x80,0xff,0x0f,0x00,0x00,0x00, + 0xf0,0x00,0x00,0x00,0x00,0xf8,0x1f,0x80,0x0f,0xfe,0xff,0x07,0xfe,0x3f,0x00, + 0x7f,0xf8,0xff,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0x7f,0xe0, + 0x07,0xff,0xff,0xff,0xff,0x1f,0x00,0xff,0xf9,0xff,0x0f,0x00,0x00,0x00,0xf0, + 0x00,0x00,0x00,0x00,0xf8,0xff,0xf0,0x83,0xff,0xff,0xff,0xff,0x03,0x00,0xfe, + 0xff,0xff,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0x83, + 0xff,0xff,0xff,0xff,0x00,0x00,0xfe,0xff,0xff,0x0f,0x00,0x00,0x00,0xf0,0x00, + 0x00,0x00,0x00,0xfc,0xff,0xff,0x80,0xff,0xff,0xff,0x7f,0x00,0x00,0xfc,0xff, + 0xff,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xe0,0xff, + 0xff,0xff,0x3f,0x00,0x00,0xf8,0xff,0xff,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00, + 0x00,0x00,0xfc,0xff,0x7f,0xe0,0xff,0xff,0xff,0x1f,0x00,0x00,0xf8,0xff,0xff, + 0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xfc,0xff,0x3f,0xf0,0xff,0xff, + 0xff,0x0f,0x00,0x00,0xf0,0xff,0xff,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, + 0x00,0xfe,0xff,0x1f,0xfc,0xff,0xff,0xff,0x07,0x00,0x00,0xf8,0xff,0xff,0x0f, + 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xfc,0xff,0x07,0xff,0xff,0xff,0xff, + 0x03,0x00,0xf0,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00, + 0xfc,0xff,0x83,0xff,0xff,0xff,0xff,0x01,0x00,0xff,0xff,0x1f,0xff,0x1f,0x00, + 0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xfc,0xff,0x81,0xff,0xff,0xff,0xff,0x00, + 0xe0,0xff,0xff,0x07,0xf8,0x1f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xfc, + 0xff,0x01,0xff,0xff,0xff,0x3f,0x80,0xff,0xff,0xff,0x01,0xf8,0x3f,0x00,0x00, + 0x00,0xf0,0x00,0x00,0x00,0x00,0xfc,0xff,0x01,0xfe,0xff,0xff,0x1f,0xc0,0xff, + 0xff,0xff,0x00,0xf8,0x1f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0xff, + 0x01,0xf8,0xff,0xff,0x1f,0xf8,0xff,0xff,0x7f,0x00,0xf8,0x1f,0x00,0x00,0x00, + 0xf0,0x00,0x00,0x00,0x00,0xf8,0xff,0x01,0xf8,0x8f,0xfc,0xff,0xff,0xff,0xff, + 0x3f,0x00,0xfc,0x1f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf8,0xff,0x01, + 0xf8,0x0f,0xe0,0xff,0xff,0x07,0xf8,0x0f,0x00,0xfc,0x1f,0x00,0x00,0x00,0xf0, + 0x00,0x00,0x00,0x00,0xf8,0xe7,0x03,0xf8,0x0f,0x00,0x04,0x00,0x00,0xf8,0x0f, + 0x00,0xfc,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf0,0xef,0x03,0xfc, + 0x0f,0x00,0x00,0x00,0x00,0xfe,0x07,0x00,0xfc,0x0f,0x00,0x00,0x00,0xf0,0x00, + 0x00,0x00,0x00,0xf0,0xef,0x07,0xfc,0x1f,0x00,0x00,0x00,0x00,0xff,0x03,0x00, + 0xfc,0x0f,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xf0,0xc7,0x07,0xf8,0x3f, + 0x00,0x00,0x00,0x00,0xff,0x01,0x00,0xfe,0x07,0x00,0x00,0x00,0xf0,0x00,0x00, + 0x00,0x00,0xe0,0xc7,0x07,0xf8,0xff,0x01,0x00,0x00,0x00,0xff,0x00,0x00,0xfe, + 0x07,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xe0,0xc7,0x07,0xf0,0xff,0x0f, + 0x00,0x00,0x00,0xff,0x00,0x00,0xff,0x07,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, + 0x00,0xe0,0xc7,0x07,0xf0,0xff,0x1f,0x00,0x00,0x80,0xff,0x00,0x00,0xff,0x03, + 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0xc0,0xcf,0x07,0xf0,0xff,0x3f,0x00, + 0x00,0xc0,0x7f,0x00,0x00,0xff,0x03,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00, + 0xc0,0xdf,0x07,0xe0,0xff,0x3f,0x00,0x00,0xe0,0x07,0x00,0x80,0xff,0x01,0x00, + 0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x80,0x9f,0x0f,0xe0,0xff,0x7f,0x00,0x00, + 0xc6,0x00,0x00,0x80,0xff,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x80, + 0xbf,0x0f,0xe0,0xff,0x7f,0x00,0xfc,0x0f,0x00,0x00,0x80,0xff,0x00,0x00,0x00, + 0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xff,0x0f,0xc0,0xff,0xff,0xff,0xff,0x0f, + 0x00,0x00,0xc0,0xff,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xff, + 0x0f,0x80,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0xc0,0x7f,0x00,0x00,0x00,0x00, + 0xf0,0x00,0x00,0x00,0x00,0x00,0xfe,0x0f,0x80,0xff,0xff,0xff,0x7f,0x00,0x00, + 0x00,0xc0,0x7f,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xfe,0x0f, + 0x80,0xff,0xff,0xf0,0x3f,0x00,0x00,0x00,0xe0,0x7f,0x00,0x00,0x00,0x00,0xf0, + 0x00,0x00,0x00,0x00,0x00,0xfc,0x1f,0xc0,0xff,0x7f,0x00,0x00,0x00,0x00,0x00, + 0xe0,0x3f,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xfc,0x1f,0xe0, + 0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f,0x00,0x00,0x00,0x00,0xf0,0x00, + 0x00,0x00,0x00,0x00,0xf8,0x3c,0xf0,0xff,0x7f,0x00,0x00,0x10,0x00,0x00,0xf0, + 0x1f,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xf8,0x3c,0xf0,0xff, + 0xff,0x00,0xf0,0x7f,0x00,0x00,0xf8,0x1f,0x00,0x00,0x00,0x00,0xf0,0x00,0x00, + 0x00,0x00,0x00,0xf0,0x18,0xfc,0xff,0xff,0x07,0xfe,0xff,0x00,0x00,0xf8,0x1f, + 0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0xe0,0x10,0xfe,0xff,0xff, + 0xff,0xff,0xff,0x01,0x00,0xf8,0x0f,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, + 0x00,0x00,0xe0,0x00,0xff,0xcf,0xff,0xff,0xff,0xff,0x01,0x00,0xfc,0x0f,0x00, + 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x40,0xc0,0xff,0x87,0xff,0xff, + 0xff,0xff,0x01,0x00,0xfc,0x07,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00, + 0x00,0x00,0xe0,0xff,0x83,0xff,0xff,0xff,0xff,0x00,0x00,0xfc,0x03,0x00,0x00, + 0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0x81,0xff,0xff,0xff, + 0x7f,0x00,0x00,0xfe,0x03,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00, + 0x00,0xf0,0xff,0x81,0xff,0xff,0xff,0x1f,0x00,0x00,0xfe,0x01,0x00,0x00,0x00, + 0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xc1,0xff,0xcf,0xff,0x0f, + 0x00,0x00,0xff,0x01,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00, + 0xfc,0xff,0xf0,0xff,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00, + 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xf0,0xff,0x00,0x00,0x00,0x00, + 0xc0,0xff,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, + 0x7f,0xf0,0x3f,0x00,0x00,0x00,0x00,0xc0,0xff,0x00,0x00,0x00,0x00,0x00,0xf0, + 0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x3f,0xf0,0x3f,0x00,0x00,0x00,0x00,0xc0, + 0x7f,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0xc0,0x00,0x00,0x00,0xff,0x3f, + 0xfc,0x1f,0x00,0x00,0x00,0x00,0xe0,0x3f,0x00,0x00,0x00,0x00,0x00,0xf0,0x00, + 0x00,0xf0,0x03,0x03,0xc0,0xff,0x1f,0xfc,0x0f,0x00,0x00,0x00,0x00,0xf0,0x1f, + 0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0xfc,0x83,0x07,0xe0,0xff,0x3f,0xfc, + 0x07,0x00,0x00,0x00,0x00,0xf8,0x0f,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00, + 0xfe,0x87,0x07,0xf0,0xff,0x3f,0xfe,0x07,0x00,0x00,0x00,0x00,0xfc,0x0f,0x00, + 0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0xfe,0xc3,0x0f,0xf8,0xff,0xff,0xff,0x07, + 0x00,0x00,0x00,0x00,0xfe,0x0f,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x80,0xff, + 0xc3,0x1f,0xfc,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00,0xff,0x03,0x00,0x00, + 0x00,0x00,0x00,0xf0,0x00,0x80,0xff,0xe3,0x1f,0xfe,0xff,0xff,0xff,0x07,0x00, + 0x00,0x00,0x00,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xe0,0xff,0xf1, + 0x3f,0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x80,0xff,0x01,0x00,0x00,0x00, + 0x00,0x00,0xf0,0x00,0xe0,0x1f,0xfc,0xff,0xff,0x3f,0xfc,0xff,0x03,0x00,0x00, + 0x00,0xe0,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xe0,0x1f,0xfc,0xff, + 0xff,0x3f,0xfc,0xff,0x03,0x00,0x00,0x00,0xe0,0x7f,0x00,0x00,0x00,0x00,0x00, + 0x00,0xf0,0x00,0xe0,0x0f,0xfc,0xff,0xff,0x1f,0xfc,0xff,0x03,0x00,0x00,0x00, + 0xf0,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xc0,0x01,0xfe,0xff,0xff, + 0x1f,0xf8,0xff,0x07,0x00,0x00,0x00,0xfc,0x3f,0x00,0x00,0x00,0x00,0x00,0x00, + 0xf0,0x00,0x00,0x00,0xfe,0xff,0xff,0x0f,0xf8,0xff,0x0f,0x00,0x00,0x80,0xff, + 0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xfe,0xff,0xff,0x07, + 0xf0,0xff,0xff,0x0f,0x08,0xfc,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0, + 0x00,0x0f,0x1c,0xfc,0xff,0xff,0x07,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x80,0xff,0x1f,0xf8,0xff,0xff,0x03,0xc0, + 0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00, + 0xff,0x3f,0xf8,0xff,0xff,0x01,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00, + 0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xff,0x3f,0xf0,0xff,0xff,0x00,0x80,0xff, + 0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xff, + 0x7f,0xf0,0xff,0xff,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xf0,0x00,0xff,0xff,0xe0,0xff,0x7f,0x00,0x00,0xf0,0xff, + 0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xff,0xff, + 0xe0,0xff,0x7f,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xf0,0x00,0xfe,0xff,0xc0,0xff,0x3f,0x00,0x00,0x00,0x00,0xf8, + 0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xfc,0xff,0xc1, + 0xff,0x1f,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xf0,0x00,0xfc,0xff,0xc1,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xfc,0xff,0xc1,0xff, + 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xf0,0x00,0xfc,0xff,0xc1,0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xf8,0xff,0xc3,0xff,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xf0,0x00,0xf8,0xff,0xc3,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xf0,0xff,0xc3,0xff,0x01,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0, + 0x00,0xf0,0xff,0xc7,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xe0,0xff,0xff,0xff,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00, + 0xe0,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xc0,0xff,0xff,0x3f,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x80, + 0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0xfe, + 0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xf0,0x00,0x00,0xfc,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0xf8,0xff, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xf0,0x00,0x00,0xe0,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0}; diff --git a/source/xap/xlockmore/l-linux.xbm b/source/xap/xlockmore/l-linux.xbm new file mode 100644 index 000000000..7ceeaf905 --- /dev/null +++ b/source/xap/xlockmore/l-linux.xbm @@ -0,0 +1,205 @@ +#define image_width 128 +#define image_height 151 +static unsigned char image_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x05, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x06, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x09, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x02, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x50, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x14, 0x00, + 0xe8, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x2e, 0x00, 0x5c, 0x07, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x5f, 0x00, 0xf7, 0x0b, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0x7d, 0x00, + 0xfe, 0x0f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x83, 0x7f, 0x80, 0xff, 0x0b, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xf1, 0x80, 0x0f, 0x1f, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xe0, 0x80, + 0x87, 0x1e, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc7, 0xc8, 0x81, 0x87, 0x1c, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xd0, 0x80, 0x03, 0x3c, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xd0, 0x81, + 0x03, 0x3c, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc7, 0xc0, 0x00, 0x03, 0x3c, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xc0, 0x2a, 0x03, 0x3c, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x41, 0xff, + 0x01, 0x3c, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x87, 0xa1, 0x2b, 0x0f, 0x1e, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xeb, 0xfe, 0x9f, 0x0f, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf7, 0xfb, + 0x76, 0x0d, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0xba, 0xdf, 0xff, 0x07, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xea, 0xfd, 0xdb, 0x1e, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x7d, 0x6f, + 0xff, 0x1b, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x87, 0xd6, 0xfd, 0x6d, 0x1b, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x47, 0xfb, 0xef, 0xf7, 0x15, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x47, 0x6d, 0xff, + 0x3e, 0x1d, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x87, 0xde, 0xbb, 0xcf, 0x16, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfa, 0xef, 0xb3, 0x0b, 0x04, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xd8, 0xbe, + 0xe8, 0x05, 0x08, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x87, 0xf2, 0x37, 0x55, 0x1d, 0x54, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x01, 0x40, 0x7d, 0x3f, 0x28, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xd7, 0xbf, + 0x8b, 0x3f, 0xa8, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x8f, 0x57, 0x65, 0xf5, 0x77, 0x50, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x4e, 0x5b, 0x75, 0x5f, 0x40, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x3f, 0x2a, + 0xfd, 0x7f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x83, 0x77, 0x89, 0xee, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0xdf, 0xf5, 0xff, 0xff, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x81, 0x7f, 0xff, + 0xfe, 0xff, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc0, 0xff, 0xfd, 0xff, 0xff, 0x01, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xc0, 0xdf, 0xb7, 0xff, 0xff, 0x03, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0xff, 0xfe, + 0xff, 0xff, 0x03, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0xf0, 0xff, 0xfb, 0xff, 0xff, 0x07, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x03, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x01, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0x3f, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x07, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xc3, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xe3, 0xc3, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x5f, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xf7, 0x8f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x36, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xbb, 0x1d, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xf7, 0x37, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x36, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xda, 0x5e, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xbf, 0x7f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0xbd, 0xfb, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2d, 0x00, 0x80, 0xfb, 0xff, + 0xff, 0xff, 0xeb, 0xbf, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, + 0x00, 0x80, 0xfe, 0xff, 0xff, 0x7f, 0xfd, 0xf5, 0x81, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xbf, 0x15, 0x00, 0xc0, 0xf7, 0xff, 0xff, 0x5f, 0xb7, 0xde, + 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x6f, 0x00, 0xe0, 0xfe, 0xff, + 0xff, 0xaf, 0xfd, 0xff, 0x07, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x3d, + 0x00, 0xb0, 0xf7, 0xff, 0xff, 0x6a, 0xd7, 0xb6, 0x05, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x57, 0x01, 0xd4, 0xfd, 0xff, 0x6f, 0xb5, 0xbf, 0xff, + 0x0f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xbb, 0x4a, 0x75, 0xff, 0xff, + 0xf3, 0xef, 0xf5, 0xb6, 0x06, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd6, + 0xaa, 0xda, 0xf7, 0xff, 0x5f, 0x7d, 0xef, 0xff, 0x1f, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0xbf, 0xaa, 0xf6, 0xfd, 0xff, 0xf5, 0xdf, 0x7f, 0xb7, + 0x2d, 0x00, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xd5, 0x55, 0xbb, 0xde, 0xff, + 0xdd, 0xf6, 0xd5, 0xfb, 0x3f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xbf, 0xbe, + 0xfe, 0xee, 0xf7, 0xff, 0xf7, 0x7b, 0x7f, 0x6f, 0x5b, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0x7f, 0xd5, 0xab, 0xfd, 0xbd, 0xff, 0x7b, 0xef, 0xfd, 0xdf, + 0xbf, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xfd, 0xda, 0xb7, 0xef, 0xff, + 0xad, 0xbf, 0x57, 0xfb, 0xf6, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xbf, 0xaa, + 0xf7, 0xfe, 0xfd, 0xfe, 0xfb, 0xf5, 0xff, 0xb7, 0x7f, 0x01, 0xfe, 0xff, + 0xff, 0xff, 0x3f, 0xfd, 0x5e, 0xb7, 0xb7, 0xfb, 0x6d, 0x5f, 0xbd, 0xee, + 0xeb, 0x02, 0xfe, 0xff, 0xff, 0xff, 0x5f, 0xab, 0xfb, 0xfd, 0xde, 0xff, + 0xf7, 0xff, 0xef, 0xbd, 0xfe, 0x03, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xfd, + 0xef, 0xdf, 0xbd, 0xed, 0xdb, 0xea, 0xfb, 0xfb, 0xbb, 0xc5, 0xff, 0xff, + 0xff, 0xff, 0x83, 0xb6, 0x7d, 0xf7, 0xf7, 0xff, 0xb5, 0xbf, 0x5e, 0xaf, + 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfb, 0xdf, 0xdf, 0xfe, 0xad, + 0xfb, 0xee, 0xf7, 0xff, 0xde, 0xea, 0xff, 0xff, 0xff, 0xff, 0x40, 0xad, + 0xfb, 0xfa, 0xd7, 0xfe, 0xd7, 0xbb, 0xde, 0xf6, 0xfb, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0xfd, 0xee, 0xbf, 0xfd, 0xb7, 0xfb, 0xff, 0xfb, 0xbf, + 0xbf, 0xd6, 0xff, 0xff, 0xff, 0x1f, 0xc0, 0xee, 0xbf, 0xf7, 0x77, 0xdf, + 0x55, 0xdb, 0x5f, 0xed, 0xd6, 0xaf, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xbb, + 0xf6, 0x5e, 0xdf, 0xf6, 0xfb, 0xfe, 0xf6, 0xff, 0xff, 0xb5, 0xff, 0xff, + 0xff, 0x03, 0x40, 0xf5, 0xbf, 0xfb, 0xfb, 0xdf, 0xed, 0xab, 0xdf, 0x55, + 0x5b, 0x1f, 0xff, 0xff, 0xff, 0x00, 0x80, 0xde, 0xfa, 0x5e, 0x6f, 0xf5, + 0xb7, 0xff, 0xf6, 0xfe, 0xff, 0x6b, 0xfc, 0xff, 0x1f, 0x00, 0x40, 0xf7, + 0xd7, 0xf7, 0xfb, 0xff, 0xdb, 0xed, 0xff, 0xbb, 0xed, 0x36, 0xe0, 0x7f, + 0x00, 0x00, 0x80, 0x7a, 0x7f, 0xdd, 0xae, 0xfe, 0xed, 0xde, 0xb6, 0xff, + 0x77, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xdd, 0xed, 0xfb, 0xdf, 0xff, + 0x57, 0xbb, 0xfb, 0xdb, 0xde, 0xab, 0x00, 0x00, 0x00, 0x00, 0x40, 0xf7, + 0xf7, 0xdf, 0xea, 0xff, 0xbb, 0xed, 0xae, 0xbe, 0x7f, 0x5d, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xba, 0xbf, 0x76, 0xfb, 0xff, 0x4b, 0xb5, 0xf5, 0xf7, + 0xf6, 0x57, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6d, 0xdb, 0xaf, 0xfc, 0xff, + 0xa7, 0xaa, 0x56, 0xdd, 0x5f, 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, + 0xf7, 0x5a, 0xff, 0xff, 0x1f, 0xa9, 0x5a, 0xf5, 0xf6, 0x2b, 0x00, 0x00, + 0x00, 0x00, 0xa0, 0x5a, 0x5d, 0x95, 0xff, 0xff, 0xff, 0xa7, 0x52, 0xab, + 0x5d, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6a, 0xd7, 0xca, 0xff, 0xff, + 0xff, 0x1f, 0xa4, 0x54, 0xab, 0x09, 0x00, 0xfc, 0xff, 0xff, 0x00, 0xaa, + 0xba, 0xf2, 0xff, 0xff, 0xff, 0xff, 0x41, 0xaa, 0x5a, 0x25, 0xf8, 0xff, + 0xff, 0xff, 0x0f, 0xd5, 0x4a, 0xf9, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xa4, + 0x4a, 0x02, 0xfc, 0xff, 0xff, 0xff, 0x4f, 0xa4, 0x2a, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x11, 0x29, 0x91, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x52, + 0x95, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x44, 0xc4, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x90, 0x04, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x12, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x08, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff}; diff --git a/source/xap/xlockmore/s-bob.xbm b/source/xap/xlockmore/s-bob.xbm new file mode 100644 index 000000000..47b240904 --- /dev/null +++ b/source/xap/xlockmore/s-bob.xbm @@ -0,0 +1,94 @@ +#define s-bob_width 86 +#define s-bob_height 123 +static char s-bob_bits[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00, + 0x00,0xfe,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff, + 0xff,0xff,0x01,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xfd,0x07,0x00, + 0x00,0x00,0x00,0xf0,0xff,0x7f,0xff,0xf7,0xfb,0x07,0x00,0x00,0x00,0x00,0xf8, + 0xff,0x7f,0xf8,0xee,0xf9,0x0f,0x00,0x00,0x00,0x00,0xfc,0xff,0xf3,0xf0,0xcc, + 0xf9,0x1f,0x00,0x00,0x00,0x00,0xfe,0x4f,0xe7,0xe1,0x81,0xf1,0x3d,0x00,0x00, + 0x00,0x00,0xff,0x0f,0xc6,0xc1,0x81,0xf3,0x3d,0x00,0x00,0x00,0x80,0xff,0x0f, + 0x8e,0xc1,0x81,0xff,0x7d,0x00,0x00,0x00,0x80,0xff,0x1f,0x8f,0x81,0x81,0xff, + 0xff,0x01,0x00,0x00,0xc0,0xff,0xff,0x9f,0x83,0x03,0xff,0xff,0x03,0x00,0x00, + 0xc0,0xff,0xff,0x1f,0x83,0x83,0xff,0xff,0x07,0x00,0x00,0xe0,0xff,0xff,0xbf, + 0x87,0xef,0xff,0xff,0x0f,0x00,0x00,0xf0,0xff,0xff,0xff,0x9f,0xef,0xff,0xff, + 0x1f,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x3f,0x00,0x00,0xf0, + 0xff,0xff,0xff,0xff,0xef,0xff,0xf3,0x7f,0x00,0x00,0xf8,0xff,0xff,0xff,0xff, + 0xf7,0x7f,0xf0,0x7f,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0x1f,0xe0,0x7f, + 0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0x07,0xe0,0x7f,0x00,0x00,0xfc,0xff, + 0xfc,0xff,0xff,0x3f,0x00,0xe0,0x7f,0x00,0x00,0xfc,0x1f,0xfc,0xff,0xff,0x0f, + 0x00,0xc0,0x7f,0x00,0x00,0xfc,0x1f,0x00,0x90,0xff,0x01,0x00,0xc0,0xff,0x00, + 0x00,0xfc,0x1f,0x00,0x00,0x3c,0x00,0x00,0xc0,0xff,0x00,0x00,0xfc,0x1f,0x00, + 0x00,0x00,0x00,0x00,0x80,0xff,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00, + 0x80,0xff,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x00,0x00, + 0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x00,0x00,0xfc,0x1f,0x00,0x00, + 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x00, + 0xff,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x00,0x00,0xfc, + 0x1f,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00, + 0x00,0x00,0x8c,0xff,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x9c,0xff, + 0x00,0x00,0xfc,0x3f,0x00,0x00,0x00,0x00,0x00,0x9c,0xff,0x00,0x00,0xfc,0x3f, + 0x00,0x00,0x00,0x00,0x00,0x9c,0xff,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00,0x00, + 0x00,0x9c,0xff,0x00,0x00,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x9c,0xff,0x00, + 0x00,0xfc,0x1f,0x00,0x00,0x00,0x00,0x00,0x98,0xff,0x00,0x00,0xfc,0x1f,0xff, + 0x03,0x00,0xc0,0x3f,0x98,0xff,0x00,0x00,0xfe,0x9f,0xff,0x07,0x00,0xe0,0xff, + 0x1f,0xff,0x00,0x00,0xfe,0xff,0xff,0x0f,0x00,0xf0,0xff,0x1f,0xff,0x00,0x00, + 0xfe,0xff,0xe1,0x1f,0x00,0xf0,0xff,0x3f,0xff,0x00,0x00,0xfc,0x7f,0x80,0x3f, + 0x00,0xf8,0x01,0x3e,0xfe,0x00,0x00,0xfc,0x7f,0xfc,0x7f,0x00,0xfc,0x01,0x78, + 0x7e,0x00,0x00,0xfc,0xff,0xff,0xff,0x00,0xfe,0x7f,0x78,0x7e,0x00,0x00,0xfc, + 0xe7,0xff,0xff,0x01,0xff,0xff,0x71,0x7e,0x00,0x00,0xfc,0xc7,0xff,0xff,0x81, + 0xff,0xff,0x71,0x7e,0x00,0x00,0xfc,0xc3,0xf9,0xf8,0xc1,0x1f,0x9f,0x63,0x7e, + 0x00,0x00,0xfc,0xc3,0xf8,0xf8,0x81,0x1f,0x9f,0x73,0x7e,0x00,0x00,0xfc,0xc7, + 0xf8,0xfc,0x01,0x00,0x9f,0x61,0x7e,0x00,0x00,0xfc,0x03,0x00,0xfe,0x01,0xe0, + 0x03,0x60,0x7e,0x00,0x00,0x7c,0x03,0x80,0xef,0x01,0xe0,0x01,0x00,0x7e,0x00, + 0x00,0x7c,0x03,0xfe,0xc7,0x01,0xc0,0x0f,0x00,0x3e,0x00,0x00,0x7c,0x03,0xfe, + 0xc3,0x01,0x80,0x1f,0x00,0x3e,0x00,0x00,0xfc,0x02,0x78,0xc0,0x01,0x00,0x00, + 0x00,0x3e,0x00,0x00,0xf8,0x00,0x00,0xc0,0x01,0x00,0x00,0x00,0x3e,0x00,0x00, + 0xfc,0x00,0x00,0xc0,0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0xf8,0x06,0x00,0xc0, + 0x00,0x00,0x00,0x00,0x3e,0x00,0x00,0xf8,0x06,0x00,0xe0,0x00,0x00,0x00,0x00, + 0x36,0x00,0x00,0xf0,0x0e,0x00,0xf0,0x00,0x00,0x00,0x00,0x37,0x00,0x00,0xe0, + 0x0e,0x00,0x70,0x40,0x00,0x00,0x00,0x3f,0x00,0x00,0xf0,0x1c,0x00,0x7c,0x40, + 0x00,0x00,0x00,0x1f,0x00,0x00,0xf0,0x1c,0x00,0x7f,0x00,0xf8,0x00,0x20,0x00, + 0x00,0x00,0x00,0x3c,0x80,0x7f,0x00,0xf8,0x01,0x38,0x00,0x00,0x00,0x00,0x3c, + 0xc0,0x7e,0x00,0xde,0x03,0x3c,0x00,0x00,0x00,0x00,0x7c,0x60,0x7e,0x80,0x8f, + 0x07,0x3e,0x00,0x00,0x00,0x00,0x7c,0x30,0xfe,0xe3,0x07,0xcf,0x3f,0x00,0x00, + 0x00,0x00,0xfc,0x1c,0xff,0xff,0x01,0xfe,0x3f,0x00,0x00,0x00,0x00,0xfe,0x0f, + 0xff,0xff,0x00,0xfe,0x3f,0x00,0x00,0x00,0x00,0xfe,0x8f,0xff,0x7f,0x00,0xfc, + 0x3f,0x00,0x00,0x00,0x00,0xfe,0xe7,0xff,0x3f,0x00,0xfc,0x3f,0x00,0x00,0x00, + 0x00,0xfe,0xf1,0xff,0x1f,0xf0,0x7f,0x7f,0x00,0x00,0x00,0x00,0xfe,0xf1,0xff, + 0x07,0xff,0x1f,0x7c,0x00,0x00,0x00,0x00,0xfc,0xc1,0xff,0xc7,0xff,0x0f,0x7c, + 0x00,0x00,0x00,0x00,0xfc,0xc1,0x83,0xff,0xc3,0x03,0x7e,0x00,0x00,0x00,0x00, + 0xbc,0xe1,0x03,0x00,0xe0,0x03,0x3e,0x00,0x00,0x00,0x00,0xbc,0xc3,0x07,0x00, + 0xf0,0x01,0x3e,0x00,0x00,0x00,0x00,0xb8,0xc3,0x3f,0x00,0xf0,0x00,0x3f,0x00, + 0x00,0x00,0x00,0xb8,0xc3,0x7f,0x00,0xf8,0x00,0x1f,0x00,0x00,0x00,0x00,0x70, + 0x83,0xff,0x00,0x0a,0x00,0x0f,0x00,0x00,0x00,0x00,0xf0,0x83,0xff,0xff,0x03, + 0x80,0x0f,0x00,0x00,0x00,0x00,0xe0,0x03,0xff,0xff,0x00,0x80,0x0f,0x00,0x00, + 0x00,0x00,0xe0,0x87,0xff,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0xc0,0xc6, + 0xff,0x00,0x04,0xc0,0x07,0x00,0x00,0x00,0x00,0xc0,0xe4,0xff,0xe3,0x0f,0xc0, + 0x07,0x00,0x00,0x00,0x00,0x80,0xf0,0xfb,0xff,0x1f,0xe0,0x03,0x00,0x00,0x00, + 0x00,0x00,0xf8,0xf1,0xff,0x0f,0xe0,0x01,0x00,0x00,0x00,0x00,0x00,0xfc,0xf1, + 0xff,0x07,0xe0,0x01,0x00,0x00,0x00,0x00,0x00,0xfe,0xfc,0x01,0x00,0xf0,0x00, + 0x00,0x00,0x00,0x00,0x00,0xfe,0x7c,0x00,0x00,0xf8,0x00,0x00,0x00,0x00,0x08, + 0x00,0x7f,0x7e,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x1e,0x83,0x7f,0x3e,0x00, + 0x00,0x3c,0x00,0x00,0x00,0x00,0x9e,0xc3,0xff,0x3f,0x00,0x00,0x3e,0x00,0x00, + 0x00,0x00,0x9f,0xe7,0xff,0x3f,0x00,0x00,0x1f,0x00,0x00,0x00,0x80,0xe7,0xff, + 0xe7,0x1f,0x00,0x80,0x0f,0x00,0x00,0x00,0x80,0xe3,0xff,0xe7,0x1f,0x00,0xc0, + 0x0f,0x00,0x00,0x00,0x00,0xe0,0xff,0xc3,0x3f,0x00,0xf0,0x07,0x00,0x00,0x00, + 0x30,0xe6,0xff,0x83,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0xf0,0xc7,0xff,0x01, + 0xff,0xff,0xff,0x01,0x00,0x00,0x00,0xf0,0xcf,0xff,0x00,0xfe,0xff,0xff,0x00, + 0x00,0x00,0x00,0xf0,0x8f,0xff,0x00,0xf0,0xff,0x7f,0x00,0x00,0x00,0x00,0xe0, + 0x9f,0x7f,0x00,0x00,0xf0,0x1f,0x00,0x00,0x00,0x00,0xe0,0x9f,0x3f,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x9f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xc0,0x9f,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff, + 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x07,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xfe,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00}; diff --git a/source/xap/xlockmore/slack-desc b/source/xap/xlockmore/slack-desc new file mode 100644 index 000000000..92ee2c419 --- /dev/null +++ b/source/xap/xlockmore/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xlockmore: xlockmore (screen locker for X) +xlockmore: +xlockmore: Patrick J. Naughton's xlock screensaver/locker for X, with many +xlockmore: more modes added by David A. Bagley. +xlockmore: +xlockmore: The 'Bob' bitmap has been included especially for Slackware, as well +xlockmore: as a Linux penguin logo. (NOTE: the image of J. R. "Bob" Dobbs is a +xlockmore: registered trademark of The Subgenius Foundation, used by permission) +xlockmore: +xlockmore: +xlockmore: diff --git a/source/xap/xlockmore/xlockmore.SlackBuild b/source/xap/xlockmore/xlockmore.SlackBuild new file mode 100755 index 000000000..f25bf14e1 --- /dev/null +++ b/source/xap/xlockmore/xlockmore.SlackBuild @@ -0,0 +1,108 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=5.28 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC -lcrypt" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xlockmore +rm -rf $PKG +mkdir -p $TMP $PKG + +## Explode the package framework: +#cd $PKG +#tar xzvf $CWD/_xlockmore.tar.gz + +cd $TMP +rm -rf xlockmore-$VERSION +tar xvf $CWD/xlockmore-$VERSION.tar.bz2 || exit 1 +cd xlockmore-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/xlockmore.bitmap.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +mkdir -p $PKG/usr/include/X11/bitmaps +cp $CWD/l-bob.xbm $PKG/usr/include/X11/bitmaps +cp $CWD/s-bob.xbm $PKG/usr/include/X11/bitmaps +cp $CWD/l-linux.xbm $PKG/usr/include/X11/bitmaps +mkdir -p $PKG/usr/doc/xlockmore-$VERSION +cp -a README $PKG/usr/doc/xlockmore-$VERSION/README +cp -a docs/* $PKG/usr/doc/xlockmore-$VERSION +cp -a $CWD/l-bob.README $PKG/usr/doc/xlockmore-$VERSION +## Normal compile: +#./configure --prefix=/usr --without-opengl --without-mesagl \ +# --without-dtsaver --without-rplay --without-nas --disable-bomb +# Use MesaGL/OpenGL: +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --without-dtsaver \ + --without-ttf \ + --without-gtk \ + --without-rplay \ + --without-nas \ + --disable-bomb \ + --without-motif \ + --without-esound \ + --without-gtk \ + $ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +cd xlock + +mkdir -p $PKG/etc/X11/app-defaults +cat XLock.ad > $PKG/etc/X11/app-defaults/XLock +mkdir -p $PKG/usr/bin +cat xlock > $PKG/usr/bin/xlock +chown root.shadow $PKG/usr/bin/xlock +chmod 2751 $PKG/usr/bin/xlock + +mkdir -p $PKG/usr/man/man1 +cat xlock.man | gzip -9c > $PKG/usr/man/man1/xlock.1.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/xlockmore-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xlockmore/xlockmore.bitmap.diff b/source/xap/xlockmore/xlockmore.bitmap.diff new file mode 100644 index 000000000..f9d777583 --- /dev/null +++ b/source/xap/xlockmore/xlockmore.bitmap.diff @@ -0,0 +1,20 @@ +--- ./xlock/XLock.ad.orig 2002-05-13 09:51:34.000000000 -0700 ++++ ./xlock/XLock.ad 2002-05-29 21:25:39.000000000 -0700 +@@ -75,6 +75,8 @@ + !XLock.*.bitmap: bitmaps/m-xlock.xbm + !XLock.*.bitmap: pixmaps/m-xlock.xpm + !XLock.*.bitmap: /usr/lib/X11/xlock/bitmaps ++! It's best to have no default here, or it kills the bat mode: ++!XLock.*.bitmap: /usr/X11R6/include/X11/bitmaps/s-bob.xbm + + ! For mailbox check application + !XLock.mailCmd: /usr/ucb/mail -e +@@ -165,6 +167,8 @@ + !XLock.bounce.cycles: 1 + XLock.bounce.size: 0 + XLock.bounce.saturation: 1.0 ++! "Bob" is taking over the bounce mode by default: ++XLock.bounce.bitmap: /usr/X11R6/include/X11/bitmaps/s-bob.xbm + XLock.braid.delay: 1000 + XLock.braid.count: 15 + XLock.braid.cycles: 100 diff --git a/source/xap/xmms/slack-desc b/source/xap/xmms/slack-desc new file mode 100644 index 000000000..6ea4362d2 --- /dev/null +++ b/source/xap/xmms/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xmms: xmms (X Multimedia System) +xmms: +xmms: XMMS is the X Multimedia System. It is used to play audio and other +xmms: kinds of media files. By default XMMS can play MPEG audio, Ogg +xmms: Vorbis, RIFF wav, most module formats, and a few other formats. XMMS +xmms: can be extended through plugins to play a number of other audio and +xmms: video formats. +xmms: +xmms: +xmms: +xmms: diff --git a/source/xap/xmms/xmms.SlackBuild b/source/xap/xmms/xmms.SlackBuild new file mode 100755 index 000000000..b11afde61 --- /dev/null +++ b/source/xap/xmms/xmms.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=1.2.11 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-3} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + ARCHOPTS="--enable-simd" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ARCHOPTS="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ARCHOPTS="" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xmms +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf xmms-$VERSION +tar xvf $CWD/xmms-$VERSION.tar.bz2 || exit 1 +cd xmms-$VERSION || exit 1 + +zcat $CWD/xmms.gtk.doublesize.diff.gz | patch -p1 || exit 1 +zcat $CWD/xmms.wmxmms_vis_depth_workaround.diff.gz | patch -p0 || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var/lib \ + --disable-static \ + --with-ipv6 \ + $ARCHOPTS \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Add a .desktop file for the menus: +mkdir -p $PKG/usr/share/applications +cat $CWD/xmms.desktop > $PKG/usr/share/applications/xmms.desktop + +mkdir -p $PKG/usr/doc/xmms-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING FAQ INSTALL NEWS README TODO \ + $PKG/usr/doc/xmms-$VERSION + +# Finish up... +gzip -9 $PKG/usr/man/*/* + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xmms-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xmms/xmms.desktop b/source/xap/xmms/xmms.desktop new file mode 100644 index 000000000..49e4870b4 --- /dev/null +++ b/source/xap/xmms/xmms.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Name=XMMS +GenericName=Audio Player +Comment=Play music +Comment[hu]=Zene lejátszása +Comment[de]=Musik abspielen +Exec=xmms %U +Icon=xmms +MimeType=application/x-ogg;audio/mp3;audio/mpeg;audio/mpegurl;audio/prs.sid;audio/x-flac;audio/x-it;audio/x-mod;audio/x-mp3;audio/x-mpeg;audio/x-mpegurl;audio/x-ms-wma;audio/x-musepack;audio/x-s3m;audio/x-scpls;audio/x-stm;audio/x-wav;audio/x-xm;application/ogg;audio/x-vorbis+ogg +Categories=Application;GTK;AudioVideo;Player; +Terminal=false +Type=Application +Encoding=UTF-8 diff --git a/source/xap/xmms/xmms.gtk.doublesize.diff b/source/xap/xmms/xmms.gtk.doublesize.diff new file mode 100644 index 000000000..226bb78a7 --- /dev/null +++ b/source/xap/xmms/xmms.gtk.doublesize.diff @@ -0,0 +1,11 @@ +--- ./xmms/util.c.orig 2006-07-16 08:40:04.000000000 -0500 ++++ ./xmms/util.c 2008-09-12 15:49:41.000000000 -0500 +@@ -175,7 +175,7 @@ + * This needs to be optimized + */ + +- dblimg = gdk_image_new(GDK_IMAGE_NORMAL, gdk_visual_get_best(), img->width << 1, img->height << 1); ++ dblimg = gdk_image_new(GDK_IMAGE_NORMAL, gdk_visual_get_best_with_depth(img->depth), img->width << 1, img->height << 1); + if (dblimg->bpp == 1) + { + char *srcptr, *ptr, *ptr2; diff --git a/source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff b/source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff new file mode 100644 index 000000000..8b940791b --- /dev/null +++ b/source/xap/xmms/xmms.wmxmms_vis_depth_workaround.diff @@ -0,0 +1,11 @@ +--- wmxmms/wmxmms.c.orig 2008-11-09 19:32:24.000000000 -0600 ++++ wmxmms/wmxmms.c 2008-09-13 12:17:35.000000000 -0500 +@@ -650,7 +650,7 @@ + dock_gc = gdk_gc_new(icon_win->window); + + launch_pixmap = gdk_pixmap_new(window->window, 64, 64, +- gdk_visual_get_best_depth()); ++ -1); + + launch_mask = gdk_pixmap_new(window->window, 64, 64, 1); + mask_gc = gdk_gc_new(launch_mask); diff --git a/source/xap/xpaint/slack-desc b/source/xap/xpaint/slack-desc new file mode 100644 index 000000000..93027a60a --- /dev/null +++ b/source/xap/xpaint/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xpaint: xpaint (simple X paint program) +xpaint: +xpaint: XPaint is a versatile bitmap/pixmap editing tool with a feature set +xpaint: similar to MacPaint. +xpaint: +xpaint: The short features list: +xpaint: Brushes, Spray paint, Pencil, Lines, Arcs, Pattern Fill, Text, +xpaint: Boxes, Circles, Polygons. +xpaint: Works on multiple images simultaneously. Cut/Copy/Paste between all +xpaint: active images. Fatbits/Zoom on the image windows. +xpaint: diff --git a/source/xap/xpaint/xpaint.SlackBuild b/source/xap/xpaint/xpaint.SlackBuild new file mode 100755 index 000000000..c353c7384 --- /dev/null +++ b/source/xap/xpaint/xpaint.SlackBuild @@ -0,0 +1,120 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +PKGNAM=xpaint +VERSION=${VERSION:-2.7.8.1} +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +if [ "$ARCH" = "x86_64" ]; then + # Make it detect Xaw3d: + sed -i -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $( grep -lr 'usr/lib/' * ) +fi +zcat ${CWD}/xpaint_xaw3d_no_scroll_mode.diff.gz | patch -p1 || exit 1 +#zcat ${CWD}/xpaint_2.7.8.1-1.2.diff.gz | patch -p1 || exit 1 + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +./configure + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG +make install.man DESTDIR=$PKG + +( cd bitmaps + mkdir -p ${PKG}/usr/include/X11/bitmaps + find . -name "*.xbm" -exec cp {} ${PKG}/usr/include/X11/bitmaps \; + mkdir -p ${PKG}/usr/include/X11/pixmaps + find . -name "*.xpm" -exec cp {} ${PKG}/usr/include/X11/pixmaps \; + mkdir -p /install +) + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p ${PKG}/usr/doc/xpaint-$VERSION +cp -a \ + README README.PNG README.old TODO \ + ${PKG}/usr/doc/xpaint-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > ${PKG}/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xpaint/xpaint_2.7.8.1-1.2.diff b/source/xap/xpaint/xpaint_2.7.8.1-1.2.diff new file mode 100644 index 000000000..1f8cc82e1 --- /dev/null +++ b/source/xap/xpaint/xpaint_2.7.8.1-1.2.diff @@ -0,0 +1,47 @@ +--- ./misc.h.orig 2005-08-15 14:50:05.000000000 -0500 ++++ ./misc.h 2007-05-10 16:46:23.000000000 -0500 +@@ -24,7 +24,7 @@ + long random(void); + #endif + +-#if !defined(__VMS) & !defined(linux) & !defined(__EMX__) & !defined(__FreeBSD__) & !defined(__CYGWIN__) ++#if !defined(__VMS) & !defined(linux) & !defined(__EMX__) & !defined(__FreeBSD__) & !defined(__CYGWIN__) & !defined(__GLIBC__) + #if defined(BSD4_4) || defined(HPArchitecture) || defined(SGIArchitecture) || defined(_AIX) || defined(_SCO_DS) + void srandom(unsigned int); + #else +--- ./Local.config.orig 2005-04-30 16:33:14.000000000 -0500 ++++ ./Local.config 2007-05-10 16:47:02.000000000 -0500 +@@ -132,11 +132,11 @@ + XCOMM You must have the XPM library. + XCOMM Make sure the path name to the library is correct. + +-XPM_LIB = -L/usr/X11R6/lib -lXpm ++XPM_LIB = -lXpm + + XCOMM Make sure this points to the location of the 'xpm.h' file. + +-XPM_INCLUDE = -I/usr/X11R6/include/X11 ++XPM_INCLUDE = -I/usr/include/X11 + + + DEPENDFLAGS = -I./bitmaps +--- ./configure.orig 2005-06-03 07:26:11.000000000 -0500 ++++ ./configure 2007-05-10 16:46:23.000000000 -0500 +@@ -7,7 +7,7 @@ + echo "(looking for Xaw, Xaw3d, Xaw95, neXtaw)" + echo "" + else +- WIDGETS=`echo $1 | tr [a:z] [A:Z]` ++ WIDGETS=`echo $1` + fi + + if test "$WIDGETS" = "" ; then +@@ -54,7 +54,7 @@ + fi + fi + +-if test "$WIDGETS" = "XAW3DG" ; then ++if test "$WIDGETS" = "xaw3dg" ; then + ln -sf /usr/include/X11/Xaw3d xaw_incdir + echo "XAWLIB_DEFINES = -DXAW3D -DXAW3DG" + echo "XAWLIB_DEFINES = -DXAW3D -DXAW3DG" > Local.xawdefs diff --git a/source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff b/source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff new file mode 100644 index 000000000..f89b12c1d --- /dev/null +++ b/source/xap/xpaint/xpaint_xaw3d_no_scroll_mode.diff @@ -0,0 +1,11 @@ +--- xpaint-2.7.8.1/misc.c.orig 2005-04-24 11:57:52.000000000 +0000 ++++ xpaint-2.7.8.1/misc.c 2008-11-06 21:43:46.000000000 +0000 +@@ -671,7 +671,7 @@ + } + else return; + if (sb == None) return; +-#ifdef XAW3DG ++#if defined(XAW3DG) && defined(XAW_ARROW_SCROLLBARS) + if (((ScrollbarWidget)sb)->scrollbar.scroll_mode == 2 /* if scroll continuous */ + || LookAhead (sb, event)) + return; diff --git a/source/xap/xpdf/VendorP.h.buggy.diff b/source/xap/xpdf/VendorP.h.buggy.diff new file mode 100644 index 000000000..a8c91ab4b --- /dev/null +++ b/source/xap/xpdf/VendorP.h.buggy.diff @@ -0,0 +1,19 @@ +--- ./VendorP.h.orig 2007-02-14 02:45:33.000000000 -0600 ++++ ./VendorP.h 2007-08-08 14:22:17.000000000 -0500 +@@ -76,6 +76,8 @@ + XtPointer extension; /* pointer to extension record */ + } VendorShellClassPart; + ++struct VendorShellClassRec; ++/* + typedef struct _VendorShellClassRec { + CoreClassPart core_class; + CompositeClassPart composite_class; +@@ -85,6 +87,7 @@ + } VendorShellClassRec; + + externalref VendorShellClassRec vendorShellClassRec; ++*/ + + /* New fields for the vendor shell widget. */ + diff --git a/source/xap/xpdf/slack-desc b/source/xap/xpdf/slack-desc new file mode 100644 index 000000000..164302aa7 --- /dev/null +++ b/source/xap/xpdf/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xpdf: xpdf (PDF viewer for X) +xpdf: +xpdf: Xpdf is a viewer for Portable Document Format (PDF) files. +xpdf: +xpdf: xpdf was written by Derek B. Noonburg. +xpdf: +xpdf: The xpdf package requires the t1lib package to render Type 1 fonts. +xpdf: +xpdf: +xpdf: +xpdf: diff --git a/source/xap/xpdf/xpdf-3.02pl1.patch b/source/xap/xpdf/xpdf-3.02pl1.patch new file mode 100644 index 000000000..cd42fb962 --- /dev/null +++ b/source/xap/xpdf/xpdf-3.02pl1.patch @@ -0,0 +1,33 @@ +*** xpdf-3.02.orig/xpdf/Stream.cc Tue Feb 27 14:05:52 2007 +--- xpdf-3.02/xpdf/Stream.cc Thu Jul 26 14:44:43 2007 +*************** +*** 410,424 **** + ok = gFalse; + + nVals = width * nComps; +- if (width <= 0 || nComps <= 0 || nBits <= 0 || +- nComps >= INT_MAX / nBits || +- width >= INT_MAX / nComps / nBits || +- nVals * nBits + 7 < 0) { +- return; +- } + pixBytes = (nComps * nBits + 7) >> 3; + rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes; +! if (rowBytes <= 0) { + return; + } + predLine = (Guchar *)gmalloc(rowBytes); +--- 410,422 ---- + ok = gFalse; + + nVals = width * nComps; + pixBytes = (nComps * nBits + 7) >> 3; + rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes; +! if (width <= 0 || nComps <= 0 || nBits <= 0 || +! nComps > gfxColorMaxComps || +! nBits > 16 || +! width >= INT_MAX / nComps || // check for overflow in nVals +! nVals >= (INT_MAX - 7) / nBits) { // check for overflow in rowBytes + return; + } + predLine = (Guchar *)gmalloc(rowBytes); diff --git a/source/xap/xpdf/xpdf-3.02pl2.patch b/source/xap/xpdf/xpdf-3.02pl2.patch new file mode 100644 index 000000000..ab9e3c671 --- /dev/null +++ b/source/xap/xpdf/xpdf-3.02pl2.patch @@ -0,0 +1,823 @@ +diff -c -r xpdf-3.02pl1.orig/xpdf/Stream.cc xpdf-3.02/xpdf/Stream.cc +*** xpdf-3.02pl1.orig/xpdf/Stream.cc Thu Oct 25 15:47:38 2007 +--- xpdf-3.02/xpdf/Stream.cc Thu Oct 25 15:48:19 2007 +*************** +*** 1243,1265 **** + columns = columnsA; + if (columns < 1) { + columns = 1; +! } +! if (columns + 4 <= 0) { +! columns = INT_MAX - 4; + } + rows = rowsA; + endOfBlock = endOfBlockA; + black = blackA; +! refLine = (short *)gmallocn(columns + 3, sizeof(short)); +! codingLine = (short *)gmallocn(columns + 2, sizeof(short)); + + eof = gFalse; + row = 0; + nextLine2D = encoding < 0; + inputBits = 0; +! codingLine[0] = 0; +! codingLine[1] = refLine[2] = columns; +! a0 = 1; + + buf = EOF; + } +--- 1243,1268 ---- + columns = columnsA; + if (columns < 1) { + columns = 1; +! } else if (columns > INT_MAX - 2) { +! columns = INT_MAX - 2; + } + rows = rowsA; + endOfBlock = endOfBlockA; + black = blackA; +! // 0 <= codingLine[0] < codingLine[1] < ... < codingLine[n] = columns +! // ---> max codingLine size = columns + 1 +! // refLine has one extra guard entry at the end +! // ---> max refLine size = columns + 2 +! codingLine = (int *)gmallocn(columns + 1, sizeof(int)); +! refLine = (int *)gmallocn(columns + 2, sizeof(int)); + + eof = gFalse; + row = 0; + nextLine2D = encoding < 0; + inputBits = 0; +! codingLine[0] = columns; +! a0i = 0; +! outputBits = 0; + + buf = EOF; + } +*************** +*** 1278,1286 **** + row = 0; + nextLine2D = encoding < 0; + inputBits = 0; +! codingLine[0] = 0; +! codingLine[1] = columns; +! a0 = 1; + buf = EOF; + + // skip any initial zero bits and end-of-line marker, and get the 2D +--- 1281,1289 ---- + row = 0; + nextLine2D = encoding < 0; + inputBits = 0; +! codingLine[0] = columns; +! a0i = 0; +! outputBits = 0; + buf = EOF; + + // skip any initial zero bits and end-of-line marker, and get the 2D +*************** +*** 1297,1507 **** + } + } + + int CCITTFaxStream::lookChar() { + short code1, code2, code3; +! int a0New; +! GBool err, gotEOL; +! int ret; +! int bits, i; + +! // if at eof just return EOF +! if (eof && codingLine[a0] >= columns) { +! return EOF; + } + + // read the next row +! err = gFalse; +! if (codingLine[a0] >= columns) { + + // 2-D encoding + if (nextLine2D) { +- // state: +- // a0New = current position in coding line (0 <= a0New <= columns) +- // codingLine[a0] = last change in coding line +- // (black-to-white if a0 is even, +- // white-to-black if a0 is odd) +- // refLine[b1] = next change in reference line of opposite color +- // to a0 +- // invariants: +- // 0 <= codingLine[a0] <= a0New +- // <= refLine[b1] <= refLine[b1+1] <= columns +- // 0 <= a0 <= columns+1 +- // refLine[0] = 0 +- // refLine[n] = refLine[n+1] = columns +- // -- for some 1 <= n <= columns+1 +- // end condition: +- // 0 = codingLine[0] <= codingLine[1] < codingLine[2] < ... +- // < codingLine[n-1] < codingLine[n] = columns +- // -- where 1 <= n <= columns+1 + for (i = 0; codingLine[i] < columns; ++i) { + refLine[i] = codingLine[i]; + } +! refLine[i] = refLine[i + 1] = columns; +! b1 = 1; +! a0New = codingLine[a0 = 0] = 0; +! do { + code1 = getTwoDimCode(); + switch (code1) { + case twoDimPass: +! if (refLine[b1] < columns) { +! a0New = refLine[b1 + 1]; +! b1 += 2; + } + break; + case twoDimHoriz: +! if ((a0 & 1) == 0) { +! code1 = code2 = 0; + do { +! code1 += code3 = getWhiteCode(); + } while (code3 >= 64); + do { +! code2 += code3 = getBlackCode(); + } while (code3 >= 64); + } else { +- code1 = code2 = 0; + do { +! code1 += code3 = getBlackCode(); + } while (code3 >= 64); + do { +! code2 += code3 = getWhiteCode(); + } while (code3 >= 64); + } +! if (code1 > 0 || code2 > 0) { +! if (a0New + code1 <= columns) { +! codingLine[a0 + 1] = a0New + code1; +! } else { +! codingLine[a0 + 1] = columns; +! } +! ++a0; +! if (codingLine[a0] + code2 <= columns) { +! codingLine[a0 + 1] = codingLine[a0] + code2; +! } else { +! codingLine[a0 + 1] = columns; +! } +! ++a0; +! a0New = codingLine[a0]; +! while (refLine[b1] <= a0New && refLine[b1] < columns) { +! b1 += 2; + } + } + break; +! case twoDimVert0: +! if (refLine[b1] < columns) { +! a0New = codingLine[++a0] = refLine[b1]; +! ++b1; +! while (refLine[b1] <= a0New && refLine[b1] < columns) { +! b1 += 2; + } +- } else { +- a0New = codingLine[++a0] = columns; + } + break; + case twoDimVertR1: +! if (refLine[b1] + 1 < columns) { +! a0New = codingLine[++a0] = refLine[b1] + 1; +! ++b1; +! while (refLine[b1] <= a0New && refLine[b1] < columns) { +! b1 += 2; + } +- } else { +- a0New = codingLine[++a0] = columns; + } + break; +! case twoDimVertL1: +! if (refLine[b1] - 1 > a0New || (a0 == 0 && refLine[b1] == 1)) { +! a0New = codingLine[++a0] = refLine[b1] - 1; +! --b1; +! while (refLine[b1] <= a0New && refLine[b1] < columns) { +! b1 += 2; + } + } + break; +! case twoDimVertR2: +! if (refLine[b1] + 2 < columns) { +! a0New = codingLine[++a0] = refLine[b1] + 2; +! ++b1; +! while (refLine[b1] <= a0New && refLine[b1] < columns) { +! b1 += 2; + } +- } else { +- a0New = codingLine[++a0] = columns; + } + break; + case twoDimVertL2: +! if (refLine[b1] - 2 > a0New || (a0 == 0 && refLine[b1] == 2)) { +! a0New = codingLine[++a0] = refLine[b1] - 2; +! --b1; +! while (refLine[b1] <= a0New && refLine[b1] < columns) { +! b1 += 2; + } +! } +! break; +! case twoDimVertR3: +! if (refLine[b1] + 3 < columns) { +! a0New = codingLine[++a0] = refLine[b1] + 3; +! ++b1; +! while (refLine[b1] <= a0New && refLine[b1] < columns) { +! b1 += 2; + } +- } else { +- a0New = codingLine[++a0] = columns; + } + break; +! case twoDimVertL3: +! if (refLine[b1] - 3 > a0New || (a0 == 0 && refLine[b1] == 3)) { +! a0New = codingLine[++a0] = refLine[b1] - 3; +! --b1; +! while (refLine[b1] <= a0New && refLine[b1] < columns) { +! b1 += 2; + } + } + break; + case EOF: + eof = gTrue; +! codingLine[a0 = 0] = columns; +! return EOF; + default: + error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1); + err = gTrue; + break; + } +! } while (codingLine[a0] < columns); + + // 1-D encoding + } else { +! codingLine[a0 = 0] = 0; +! while (1) { + code1 = 0; +! do { +! code1 += code3 = getWhiteCode(); +! } while (code3 >= 64); +! codingLine[a0+1] = codingLine[a0] + code1; +! ++a0; +! if (codingLine[a0] >= columns) { +! break; +! } +! code2 = 0; +! do { +! code2 += code3 = getBlackCode(); +! } while (code3 >= 64); +! codingLine[a0+1] = codingLine[a0] + code2; +! ++a0; +! if (codingLine[a0] >= columns) { +! break; + } + } + } + +- if (codingLine[a0] != columns) { +- error(getPos(), "CCITTFax row is wrong length (%d)", codingLine[a0]); +- // force the row to be the correct length +- while (codingLine[a0] > columns) { +- --a0; +- } +- codingLine[++a0] = columns; +- err = gTrue; +- } +- + // byte-align the row + if (byteAlign) { + inputBits &= ~7; +--- 1300,1529 ---- + } + } + ++ inline void CCITTFaxStream::addPixels(int a1, int blackPixels) { ++ if (a1 > codingLine[a0i]) { ++ if (a1 > columns) { ++ error(getPos(), "CCITTFax row is wrong length (%d)", a1); ++ err = gTrue; ++ a1 = columns; ++ } ++ if ((a0i & 1) ^ blackPixels) { ++ ++a0i; ++ } ++ codingLine[a0i] = a1; ++ } ++ } ++ ++ inline void CCITTFaxStream::addPixelsNeg(int a1, int blackPixels) { ++ if (a1 > codingLine[a0i]) { ++ if (a1 > columns) { ++ error(getPos(), "CCITTFax row is wrong length (%d)", a1); ++ err = gTrue; ++ a1 = columns; ++ } ++ if ((a0i & 1) ^ blackPixels) { ++ ++a0i; ++ } ++ codingLine[a0i] = a1; ++ } else if (a1 < codingLine[a0i]) { ++ if (a1 < 0) { ++ error(getPos(), "Invalid CCITTFax code"); ++ err = gTrue; ++ a1 = 0; ++ } ++ while (a0i > 0 && a1 <= codingLine[a0i - 1]) { ++ --a0i; ++ } ++ codingLine[a0i] = a1; ++ } ++ } ++ + int CCITTFaxStream::lookChar() { + short code1, code2, code3; +! int b1i, blackPixels, i, bits; +! GBool gotEOL; + +! if (buf != EOF) { +! return buf; + } + + // read the next row +! if (outputBits == 0) { +! +! // if at eof just return EOF +! if (eof) { +! return EOF; +! } +! +! err = gFalse; + + // 2-D encoding + if (nextLine2D) { + for (i = 0; codingLine[i] < columns; ++i) { + refLine[i] = codingLine[i]; + } +! refLine[i++] = columns; +! refLine[i] = columns; +! codingLine[0] = 0; +! a0i = 0; +! b1i = 0; +! blackPixels = 0; +! // invariant: +! // refLine[b1i-1] <= codingLine[a0i] < refLine[b1i] < refLine[b1i+1] +! // <= columns +! // exception at left edge: +! // codingLine[a0i = 0] = refLine[b1i = 0] = 0 is possible +! // exception at right edge: +! // refLine[b1i] = refLine[b1i+1] = columns is possible +! while (codingLine[a0i] < columns) { + code1 = getTwoDimCode(); + switch (code1) { + case twoDimPass: +! addPixels(refLine[b1i + 1], blackPixels); +! if (refLine[b1i + 1] < columns) { +! b1i += 2; + } + break; + case twoDimHoriz: +! code1 = code2 = 0; +! if (blackPixels) { + do { +! code1 += code3 = getBlackCode(); + } while (code3 >= 64); + do { +! code2 += code3 = getWhiteCode(); + } while (code3 >= 64); + } else { + do { +! code1 += code3 = getWhiteCode(); + } while (code3 >= 64); + do { +! code2 += code3 = getBlackCode(); + } while (code3 >= 64); + } +! addPixels(codingLine[a0i] + code1, blackPixels); +! if (codingLine[a0i] < columns) { +! addPixels(codingLine[a0i] + code2, blackPixels ^ 1); +! } +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +! b1i += 2; +! } +! break; +! case twoDimVertR3: +! addPixels(refLine[b1i] + 3, blackPixels); +! blackPixels ^= 1; +! if (codingLine[a0i] < columns) { +! ++b1i; +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +! b1i += 2; + } + } + break; +! case twoDimVertR2: +! addPixels(refLine[b1i] + 2, blackPixels); +! blackPixels ^= 1; +! if (codingLine[a0i] < columns) { +! ++b1i; +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +! b1i += 2; + } + } + break; + case twoDimVertR1: +! addPixels(refLine[b1i] + 1, blackPixels); +! blackPixels ^= 1; +! if (codingLine[a0i] < columns) { +! ++b1i; +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +! b1i += 2; + } + } + break; +! case twoDimVert0: +! addPixels(refLine[b1i], blackPixels); +! blackPixels ^= 1; +! if (codingLine[a0i] < columns) { +! ++b1i; +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +! b1i += 2; + } + } + break; +! case twoDimVertL3: +! addPixelsNeg(refLine[b1i] - 3, blackPixels); +! blackPixels ^= 1; +! if (codingLine[a0i] < columns) { +! if (b1i > 0) { +! --b1i; +! } else { +! ++b1i; +! } +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +! b1i += 2; + } + } + break; + case twoDimVertL2: +! addPixelsNeg(refLine[b1i] - 2, blackPixels); +! blackPixels ^= 1; +! if (codingLine[a0i] < columns) { +! if (b1i > 0) { +! --b1i; +! } else { +! ++b1i; + } +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +! b1i += 2; + } + } + break; +! case twoDimVertL1: +! addPixelsNeg(refLine[b1i] - 1, blackPixels); +! blackPixels ^= 1; +! if (codingLine[a0i] < columns) { +! if (b1i > 0) { +! --b1i; +! } else { +! ++b1i; +! } +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +! b1i += 2; + } + } + break; + case EOF: ++ addPixels(columns, 0); + eof = gTrue; +! break; + default: + error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1); ++ addPixels(columns, 0); + err = gTrue; + break; + } +! } + + // 1-D encoding + } else { +! codingLine[0] = 0; +! a0i = 0; +! blackPixels = 0; +! while (codingLine[a0i] < columns) { + code1 = 0; +! if (blackPixels) { +! do { +! code1 += code3 = getBlackCode(); +! } while (code3 >= 64); +! } else { +! do { +! code1 += code3 = getWhiteCode(); +! } while (code3 >= 64); + } ++ addPixels(codingLine[a0i] + code1, blackPixels); ++ blackPixels ^= 1; + } + } + + // byte-align the row + if (byteAlign) { + inputBits &= ~7; +*************** +*** 1560,1573 **** + // this if we know the stream contains end-of-line markers because + // the "just plow on" technique tends to work better otherwise + } else if (err && endOfLine) { +! do { + if (code1 == EOF) { + eof = gTrue; + return EOF; + } + eatBits(1); +! code1 = lookBits(13); +! } while ((code1 >> 1) != 0x001); + eatBits(12); + if (encoding > 0) { + eatBits(1); +--- 1582,1598 ---- + // this if we know the stream contains end-of-line markers because + // the "just plow on" technique tends to work better otherwise + } else if (err && endOfLine) { +! while (1) { +! code1 = lookBits(13); + if (code1 == EOF) { + eof = gTrue; + return EOF; + } ++ if ((code1 >> 1) == 0x001) { ++ break; ++ } + eatBits(1); +! } + eatBits(12); + if (encoding > 0) { + eatBits(1); +*************** +*** 1575,1585 **** + } + } + +! a0 = 0; +! outputBits = codingLine[1] - codingLine[0]; +! if (outputBits == 0) { +! a0 = 1; +! outputBits = codingLine[2] - codingLine[1]; + } + + ++row; +--- 1600,1610 ---- + } + } + +! // set up for output +! if (codingLine[0] > 0) { +! outputBits = codingLine[a0i = 0]; +! } else { +! outputBits = codingLine[a0i = 1]; + } + + ++row; +*************** +*** 1587,1625 **** + + // get a byte + if (outputBits >= 8) { +! ret = ((a0 & 1) == 0) ? 0xff : 0x00; +! if ((outputBits -= 8) == 0) { +! ++a0; +! if (codingLine[a0] < columns) { +! outputBits = codingLine[a0 + 1] - codingLine[a0]; +! } + } + } else { + bits = 8; +! ret = 0; + do { + if (outputBits > bits) { +! i = bits; +! bits = 0; +! if ((a0 & 1) == 0) { +! ret |= 0xff >> (8 - i); + } +! outputBits -= i; + } else { +! i = outputBits; +! bits -= outputBits; +! if ((a0 & 1) == 0) { +! ret |= (0xff >> (8 - i)) << bits; + } + outputBits = 0; +! ++a0; +! if (codingLine[a0] < columns) { +! outputBits = codingLine[a0 + 1] - codingLine[a0]; + } + } +! } while (bits > 0 && codingLine[a0] < columns); + } +- buf = black ? (ret ^ 0xff) : ret; + return buf; + } + +--- 1612,1654 ---- + + // get a byte + if (outputBits >= 8) { +! buf = (a0i & 1) ? 0x00 : 0xff; +! outputBits -= 8; +! if (outputBits == 0 && codingLine[a0i] < columns) { +! ++a0i; +! outputBits = codingLine[a0i] - codingLine[a0i - 1]; + } + } else { + bits = 8; +! buf = 0; + do { + if (outputBits > bits) { +! buf <<= bits; +! if (!(a0i & 1)) { +! buf |= 0xff >> (8 - bits); + } +! outputBits -= bits; +! bits = 0; + } else { +! buf <<= outputBits; +! if (!(a0i & 1)) { +! buf |= 0xff >> (8 - outputBits); + } ++ bits -= outputBits; + outputBits = 0; +! if (codingLine[a0i] < columns) { +! ++a0i; +! outputBits = codingLine[a0i] - codingLine[a0i - 1]; +! } else if (bits > 0) { +! buf <<= bits; +! bits = 0; + } + } +! } while (bits); +! } +! if (black) { +! buf ^= 0xff; + } + return buf; + } + +*************** +*** 1661,1666 **** +--- 1690,1698 ---- + code = 0; // make gcc happy + if (endOfBlock) { + code = lookBits(12); ++ if (code == EOF) { ++ return 1; ++ } + if ((code >> 5) == 0) { + p = &whiteTab1[code]; + } else { +*************** +*** 1673,1678 **** +--- 1705,1713 ---- + } else { + for (n = 1; n <= 9; ++n) { + code = lookBits(n); ++ if (code == EOF) { ++ return 1; ++ } + if (n < 9) { + code <<= 9 - n; + } +*************** +*** 1684,1689 **** +--- 1719,1727 ---- + } + for (n = 11; n <= 12; ++n) { + code = lookBits(n); ++ if (code == EOF) { ++ return 1; ++ } + if (n < 12) { + code <<= 12 - n; + } +*************** +*** 1709,1717 **** + code = 0; // make gcc happy + if (endOfBlock) { + code = lookBits(13); + if ((code >> 7) == 0) { + p = &blackTab1[code]; +! } else if ((code >> 9) == 0) { + p = &blackTab2[(code >> 1) - 64]; + } else { + p = &blackTab3[code >> 7]; +--- 1747,1758 ---- + code = 0; // make gcc happy + if (endOfBlock) { + code = lookBits(13); ++ if (code == EOF) { ++ return 1; ++ } + if ((code >> 7) == 0) { + p = &blackTab1[code]; +! } else if ((code >> 9) == 0 && (code >> 7) != 0) { + p = &blackTab2[(code >> 1) - 64]; + } else { + p = &blackTab3[code >> 7]; +*************** +*** 1723,1728 **** +--- 1764,1772 ---- + } else { + for (n = 2; n <= 6; ++n) { + code = lookBits(n); ++ if (code == EOF) { ++ return 1; ++ } + if (n < 6) { + code <<= 6 - n; + } +*************** +*** 1734,1739 **** +--- 1778,1786 ---- + } + for (n = 7; n <= 12; ++n) { + code = lookBits(n); ++ if (code == EOF) { ++ return 1; ++ } + if (n < 12) { + code <<= 12 - n; + } +*************** +*** 1747,1752 **** +--- 1794,1802 ---- + } + for (n = 10; n <= 13; ++n) { + code = lookBits(n); ++ if (code == EOF) { ++ return 1; ++ } + if (n < 13) { + code <<= 13 - n; + } +*************** +*** 1961,1966 **** +--- 2011,2022 ---- + // allocate a buffer for the whole image + bufWidth = ((width + mcuWidth - 1) / mcuWidth) * mcuWidth; + bufHeight = ((height + mcuHeight - 1) / mcuHeight) * mcuHeight; ++ if (bufWidth <= 0 || bufHeight <= 0 || ++ bufWidth > INT_MAX / bufWidth / (int)sizeof(int)) { ++ error(getPos(), "Invalid image size in DCT stream"); ++ y = height; ++ return; ++ } + for (i = 0; i < numComps; ++i) { + frameBuf[i] = (int *)gmallocn(bufWidth * bufHeight, sizeof(int)); + memset(frameBuf[i], 0, bufWidth * bufHeight * sizeof(int)); +*************** +*** 3036,3041 **** +--- 3092,3102 ---- + } + scanInfo.firstCoeff = str->getChar(); + scanInfo.lastCoeff = str->getChar(); ++ if (scanInfo.firstCoeff < 0 || scanInfo.lastCoeff > 63 || ++ scanInfo.firstCoeff > scanInfo.lastCoeff) { ++ error(getPos(), "Bad DCT coefficient numbers in scan info block"); ++ return gFalse; ++ } + c = str->getChar(); + scanInfo.ah = (c >> 4) & 0x0f; + scanInfo.al = c & 0x0f; +diff -c -r xpdf-3.02pl1.orig/xpdf/Stream.h xpdf-3.02/xpdf/Stream.h +*** xpdf-3.02pl1.orig/xpdf/Stream.h Tue Feb 27 14:05:52 2007 +--- xpdf-3.02/xpdf/Stream.h Thu Oct 25 15:48:15 2007 +*************** +*** 528,540 **** + int row; // current row + int inputBuf; // input buffer + int inputBits; // number of bits in input buffer +! short *refLine; // reference line changing elements +! int b1; // index into refLine +! short *codingLine; // coding line changing elements +! int a0; // index into codingLine + int outputBits; // remaining ouput bits + int buf; // character buffer + + short getTwoDimCode(); + short getWhiteCode(); + short getBlackCode(); +--- 528,542 ---- + int row; // current row + int inputBuf; // input buffer + int inputBits; // number of bits in input buffer +! int *codingLine; // coding line changing elements +! int *refLine; // reference line changing elements +! int a0i; // index into codingLine +! GBool err; // error on current line + int outputBits; // remaining ouput bits + int buf; // character buffer + ++ void addPixels(int a1, int black); ++ void addPixelsNeg(int a1, int black); + short getTwoDimCode(); + short getWhiteCode(); + short getBlackCode(); diff --git a/source/xap/xpdf/xpdf-3.02pl3.patch b/source/xap/xpdf/xpdf-3.02pl3.patch new file mode 100644 index 000000000..b5988805f --- /dev/null +++ b/source/xap/xpdf/xpdf-3.02pl3.patch @@ -0,0 +1,1145 @@ +diff -r -c xpdf-3.02.orig/goo/gmem.cc xpdf-3.02/goo/gmem.cc +*** xpdf-3.02.orig/goo/gmem.cc Tue Feb 27 14:05:51 2007 +--- xpdf-3.02/goo/gmem.cc Thu Mar 19 15:47:25 2009 +*************** +*** 55,61 **** + void *data; + unsigned long *trl, *p; + +! if (size <= 0) { + return NULL; + } + size1 = gMemDataSize(size); +--- 55,69 ---- + void *data; + unsigned long *trl, *p; + +! if (size < 0) { +! #if USE_EXCEPTIONS +! throw GMemException(); +! #else +! fprintf(stderr, "Invalid memory allocation size\n"); +! exit(1); +! #endif +! } +! if (size == 0) { + return NULL; + } + size1 = gMemDataSize(size); +*************** +*** 91,97 **** + #else + void *p; + +! if (size <= 0) { + return NULL; + } + if (!(p = malloc(size))) { +--- 99,113 ---- + #else + void *p; + +! if (size < 0) { +! #if USE_EXCEPTIONS +! throw GMemException(); +! #else +! fprintf(stderr, "Invalid memory allocation size\n"); +! exit(1); +! #endif +! } +! if (size == 0) { + return NULL; + } + if (!(p = malloc(size))) { +*************** +*** 112,118 **** + void *q; + int oldSize; + +! if (size <= 0) { + if (p) { + gfree(p); + } +--- 128,142 ---- + void *q; + int oldSize; + +! if (size < 0) { +! #if USE_EXCEPTIONS +! throw GMemException(); +! #else +! fprintf(stderr, "Invalid memory allocation size\n"); +! exit(1); +! #endif +! } +! if (size == 0) { + if (p) { + gfree(p); + } +*************** +*** 131,137 **** + #else + void *q; + +! if (size <= 0) { + if (p) { + free(p); + } +--- 155,169 ---- + #else + void *q; + +! if (size < 0) { +! #if USE_EXCEPTIONS +! throw GMemException(); +! #else +! fprintf(stderr, "Invalid memory allocation size\n"); +! exit(1); +! #endif +! } +! if (size == 0) { + if (p) { + free(p); + } +diff -r -c xpdf-3.02.orig/xpdf/JBIG2Stream.cc xpdf-3.02/xpdf/JBIG2Stream.cc +*** xpdf-3.02.orig/xpdf/JBIG2Stream.cc Tue Feb 27 14:05:52 2007 +--- xpdf-3.02/xpdf/JBIG2Stream.cc Tue Mar 31 10:55:23 2009 +*************** +*** 422,433 **** + table[i] = table[len]; + + // assign prefixes +! i = 0; +! prefix = 0; +! table[i++].prefix = prefix++; +! for (; table[i].rangeLen != jbig2HuffmanEOT; ++i) { +! prefix <<= table[i].prefixLen - table[i-1].prefixLen; +! table[i].prefix = prefix++; + } + } + +--- 422,435 ---- + table[i] = table[len]; + + // assign prefixes +! if (table[0].rangeLen != jbig2HuffmanEOT) { +! i = 0; +! prefix = 0; +! table[i++].prefix = prefix++; +! for (; table[i].rangeLen != jbig2HuffmanEOT; ++i) { +! prefix <<= table[i].prefixLen - table[i-1].prefixLen; +! table[i].prefix = prefix++; +! } + } + } + +*************** +*** 491,497 **** + } + if (p->bits < 0) { + error(str->getPos(), "Bad two dim code in JBIG2 MMR stream"); +! return 0; + } + bufLen -= p->bits; + return p->n; +--- 493,499 ---- + } + if (p->bits < 0) { + error(str->getPos(), "Bad two dim code in JBIG2 MMR stream"); +! return EOF; + } + bufLen -= p->bits; + return p->n; +*************** +*** 507,513 **** + ++nBytesRead; + } + while (1) { +! if (bufLen >= 7 && ((buf >> (bufLen - 7)) & 0x7f) == 0) { + if (bufLen <= 12) { + code = buf << (12 - bufLen); + } else { +--- 509,515 ---- + ++nBytesRead; + } + while (1) { +! if (bufLen >= 11 && ((buf >> (bufLen - 7)) & 0x7f) == 0) { + if (bufLen <= 12) { + code = buf << (12 - bufLen); + } else { +*************** +*** 550,563 **** + ++nBytesRead; + } + while (1) { +! if (bufLen >= 6 && ((buf >> (bufLen - 6)) & 0x3f) == 0) { + if (bufLen <= 13) { + code = buf << (13 - bufLen); + } else { + code = buf >> (bufLen - 13); + } + p = &blackTab1[code & 0x7f]; +! } else if (bufLen >= 4 && ((buf >> (bufLen - 4)) & 0x0f) == 0) { + if (bufLen <= 12) { + code = buf << (12 - bufLen); + } else { +--- 552,566 ---- + ++nBytesRead; + } + while (1) { +! if (bufLen >= 10 && ((buf >> (bufLen - 6)) & 0x3f) == 0) { + if (bufLen <= 13) { + code = buf << (13 - bufLen); + } else { + code = buf >> (bufLen - 13); + } + p = &blackTab1[code & 0x7f]; +! } else if (bufLen >= 7 && ((buf >> (bufLen - 4)) & 0x0f) == 0 && +! ((buf >> (bufLen - 6)) & 0x03) != 0) { + if (bufLen <= 12) { + code = buf << (12 - bufLen); + } else { +*************** +*** 683,690 **** + h = hA; + line = (wA + 7) >> 3; + if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) { +! data = NULL; +! return; + } + // need to allocate one extra guard byte for use in combine() + data = (Guchar *)gmalloc(h * line + 1); +--- 686,694 ---- + h = hA; + line = (wA + 7) >> 3; + if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) { +! // force a call to gmalloc(-1), which will throw an exception +! h = -1; +! line = 2; + } + // need to allocate one extra guard byte for use in combine() + data = (Guchar *)gmalloc(h * line + 1); +*************** +*** 698,705 **** + h = bitmap->h; + line = bitmap->line; + if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) { +! data = NULL; +! return; + } + // need to allocate one extra guard byte for use in combine() + data = (Guchar *)gmalloc(h * line + 1); +--- 702,710 ---- + h = bitmap->h; + line = bitmap->line; + if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) { +! // force a call to gmalloc(-1), which will throw an exception +! h = -1; +! line = 2; + } + // need to allocate one extra guard byte for use in combine() + data = (Guchar *)gmalloc(h * line + 1); +*************** +*** 754,759 **** +--- 759,766 ---- + inline void JBIG2Bitmap::getPixelPtr(int x, int y, JBIG2BitmapPtr *ptr) { + if (y < 0 || y >= h || x >= w) { + ptr->p = NULL; ++ ptr->shift = 0; // make gcc happy ++ ptr->x = 0; // make gcc happy + } else if (x < 0) { + ptr->p = &data[y * line]; + ptr->shift = 7; +*************** +*** 798,803 **** +--- 805,814 ---- + Guint src0, src1, src, dest, s1, s2, m1, m2, m3; + GBool oneByte; + ++ // check for the pathological case where y = -2^31 ++ if (y < -0x7fffffff) { ++ return; ++ } + if (y < 0) { + y0 = -y; + } else { +*************** +*** 1011,1018 **** +--- 1022,1034 ---- + JBIG2SymbolDict::JBIG2SymbolDict(Guint segNumA, Guint sizeA): + JBIG2Segment(segNumA) + { ++ Guint i; ++ + size = sizeA; + bitmaps = (JBIG2Bitmap **)gmallocn(size, sizeof(JBIG2Bitmap *)); ++ for (i = 0; i < size; ++i) { ++ bitmaps[i] = NULL; ++ } + genericRegionStats = NULL; + refinementRegionStats = NULL; + } +*************** +*** 1021,1027 **** + Guint i; + + for (i = 0; i < size; ++i) { +! delete bitmaps[i]; + } + gfree(bitmaps); + if (genericRegionStats) { +--- 1037,1045 ---- + Guint i; + + for (i = 0; i < size; ++i) { +! if (bitmaps[i]) { +! delete bitmaps[i]; +! } + } + gfree(bitmaps); + if (genericRegionStats) { +*************** +*** 1296,1301 **** +--- 1314,1326 ---- + goto eofError2; + } + ++ // check for missing page information segment ++ if (!pageBitmap && ((segType >= 4 && segType <= 7) || ++ (segType >= 20 && segType <= 43))) { ++ error(getPos(), "First JBIG2 segment associated with a page must be a page information segment"); ++ goto syntaxError; ++ } ++ + // read the segment data + switch (segType) { + case 0: +*************** +*** 1411,1416 **** +--- 1436,1443 ---- + Guint i, j, k; + Guchar *p; + ++ symWidths = NULL; ++ + // symbol dictionary flags + if (!readUWord(&flags)) { + goto eofError; +*************** +*** 1466,1485 **** + codeTables = new GList(); + numInputSyms = 0; + for (i = 0; i < nRefSegs; ++i) { +! seg = findSegment(refSegs[i]); +! if (seg->getType() == jbig2SegSymbolDict) { +! numInputSyms += ((JBIG2SymbolDict *)seg)->getSize(); +! } else if (seg->getType() == jbig2SegCodeTable) { +! codeTables->append(seg); + } + } + + // compute symbol code length +! symCodeLen = 0; +! i = 1; +! while (i < numInputSyms + numNewSyms) { + ++symCodeLen; +! i <<= 1; + } + + // get the input symbol bitmaps +--- 1493,1524 ---- + codeTables = new GList(); + numInputSyms = 0; + for (i = 0; i < nRefSegs; ++i) { +! if ((seg = findSegment(refSegs[i]))) { +! if (seg->getType() == jbig2SegSymbolDict) { +! j = ((JBIG2SymbolDict *)seg)->getSize(); +! if (numInputSyms > UINT_MAX - j) { +! error(getPos(), "Too many input symbols in JBIG2 symbol dictionary"); +! delete codeTables; +! goto eofError; +! } +! numInputSyms += j; +! } else if (seg->getType() == jbig2SegCodeTable) { +! codeTables->append(seg); +! } + } + } ++ if (numInputSyms > UINT_MAX - numNewSyms) { ++ error(getPos(), "Too many input symbols in JBIG2 symbol dictionary"); ++ delete codeTables; ++ goto eofError; ++ } + + // compute symbol code length +! symCodeLen = 1; +! i = (numInputSyms + numNewSyms) >> 1; +! while (i) { + ++symCodeLen; +! i >>= 1; + } + + // get the input symbol bitmaps +*************** +*** 1491,1501 **** + k = 0; + inputSymbolDict = NULL; + for (i = 0; i < nRefSegs; ++i) { +! seg = findSegment(refSegs[i]); +! if (seg->getType() == jbig2SegSymbolDict) { +! inputSymbolDict = (JBIG2SymbolDict *)seg; +! for (j = 0; j < inputSymbolDict->getSize(); ++j) { +! bitmaps[k++] = inputSymbolDict->getBitmap(j); + } + } + } +--- 1530,1541 ---- + k = 0; + inputSymbolDict = NULL; + for (i = 0; i < nRefSegs; ++i) { +! if ((seg = findSegment(refSegs[i]))) { +! if (seg->getType() == jbig2SegSymbolDict) { +! inputSymbolDict = (JBIG2SymbolDict *)seg; +! for (j = 0; j < inputSymbolDict->getSize(); ++j) { +! bitmaps[k++] = inputSymbolDict->getBitmap(j); +! } + } + } + } +*************** +*** 1510,1515 **** +--- 1550,1558 ---- + } else if (huffDH == 1) { + huffDHTable = huffTableE; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffDHTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffDW == 0) { +*************** +*** 1517,1533 **** +--- 1560,1585 ---- + } else if (huffDW == 1) { + huffDWTable = huffTableC; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffDWTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffBMSize == 0) { + huffBMSizeTable = huffTableA; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffBMSizeTable = + ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffAggInst == 0) { + huffAggInstTable = huffTableA; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffAggInstTable = + ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } +*************** +*** 1560,1566 **** + } + + // allocate symbol widths storage +- symWidths = NULL; + if (huff && !refAgg) { + symWidths = (Guint *)gmallocn(numNewSyms, sizeof(Guint)); + } +--- 1612,1617 ---- +*************** +*** 1602,1607 **** +--- 1653,1662 ---- + goto syntaxError; + } + symWidth += dw; ++ if (i >= numNewSyms) { ++ error(getPos(), "Too many symbols in JBIG2 symbol dictionary"); ++ goto syntaxError; ++ } + + // using a collective bitmap, so don't read a bitmap here + if (huff && !refAgg) { +*************** +*** 1638,1643 **** +--- 1693,1702 ---- + arithDecoder->decodeInt(&refDX, iardxStats); + arithDecoder->decodeInt(&refDY, iardyStats); + } ++ if (symID >= numInputSyms + i) { ++ error(getPos(), "Invalid symbol ID in JBIG2 symbol dictionary"); ++ goto syntaxError; ++ } + refBitmap = bitmaps[symID]; + bitmaps[numInputSyms + i] = + readGenericRefinementRegion(symWidth, symHeight, +*************** +*** 1704,1709 **** +--- 1763,1774 ---- + } else { + arithDecoder->decodeInt(&run, iaexStats); + } ++ if (i + run > numInputSyms + numNewSyms || ++ (ex && j + run > numExSyms)) { ++ error(getPos(), "Too many exported symbols in JBIG2 symbol dictionary"); ++ delete symbolDict; ++ goto syntaxError; ++ } + if (ex) { + for (cnt = 0; cnt < run; ++cnt) { + symbolDict->setBitmap(j++, bitmaps[i++]->copy()); +*************** +*** 1713,1718 **** +--- 1778,1788 ---- + } + ex = !ex; + } ++ if (j != numExSyms) { ++ error(getPos(), "Too few symbols in JBIG2 symbol dictionary"); ++ delete symbolDict; ++ goto syntaxError; ++ } + + for (i = 0; i < numNewSyms; ++i) { + delete bitmaps[numInputSyms + i]; +*************** +*** 1735,1740 **** +--- 1805,1814 ---- + + return gTrue; + ++ codeTableError: ++ error(getPos(), "Missing code table in JBIG2 symbol dictionary"); ++ delete codeTables; ++ + syntaxError: + for (i = 0; i < numNewSyms; ++i) { + if (bitmaps[numInputSyms + i]) { +*************** +*** 1837,1842 **** +--- 1911,1918 ---- + } + } else { + error(getPos(), "Invalid segment reference in JBIG2 text region"); ++ delete codeTables; ++ return; + } + } + symCodeLen = 0; +*************** +*** 1871,1876 **** +--- 1947,1955 ---- + } else if (huffFS == 1) { + huffFSTable = huffTableG; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffFSTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffDS == 0) { +*************** +*** 1880,1885 **** +--- 1959,1967 ---- + } else if (huffDS == 2) { + huffDSTable = huffTableJ; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffDSTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffDT == 0) { +*************** +*** 1889,1894 **** +--- 1971,1979 ---- + } else if (huffDT == 2) { + huffDTTable = huffTableM; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffDTTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffRDW == 0) { +*************** +*** 1896,1901 **** +--- 1981,1989 ---- + } else if (huffRDW == 1) { + huffRDWTable = huffTableO; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffRDWTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffRDH == 0) { +*************** +*** 1903,1908 **** +--- 1991,1999 ---- + } else if (huffRDH == 1) { + huffRDHTable = huffTableO; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffRDHTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffRDX == 0) { +*************** +*** 1910,1915 **** +--- 2001,2009 ---- + } else if (huffRDX == 1) { + huffRDXTable = huffTableO; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffRDXTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffRDY == 0) { +*************** +*** 1917,1927 **** +--- 2011,2027 ---- + } else if (huffRDY == 1) { + huffRDYTable = huffTableO; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffRDYTable = ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } + if (huffRSize == 0) { + huffRSizeTable = huffTableA; + } else { ++ if (i >= (Guint)codeTables->getLength()) { ++ goto codeTableError; ++ } + huffRSizeTable = + ((JBIG2CodeTable *)codeTables->get(i++))->getHuffTable(); + } +*************** +*** 2016,2023 **** +--- 2116,2130 ---- + + return; + ++ codeTableError: ++ error(getPos(), "Missing code table in JBIG2 text region"); ++ gfree(codeTables); ++ delete syms; ++ return; ++ + eofError: + error(getPos(), "Unexpected EOF in JBIG2 stream"); ++ return; + } + + JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine, +*************** +*** 2324,2331 **** + error(getPos(), "Bad symbol dictionary reference in JBIG2 halftone segment"); + return; + } +! seg = findSegment(refSegs[0]); +! if (seg->getType() != jbig2SegPatternDict) { + error(getPos(), "Bad symbol dictionary reference in JBIG2 halftone segment"); + return; + } +--- 2431,2438 ---- + error(getPos(), "Bad symbol dictionary reference in JBIG2 halftone segment"); + return; + } +! if (!(seg = findSegment(refSegs[0])) || +! seg->getType() != jbig2SegPatternDict) { + error(getPos(), "Bad symbol dictionary reference in JBIG2 halftone segment"); + return; + } +*************** +*** 2483,2489 **** + + // read the bitmap + bitmap = readGenericBitmap(mmr, w, h, templ, tpgdOn, gFalse, +! NULL, atx, aty, mmr ? 0 : length - 18); + + // combine the region bitmap into the page bitmap + if (imm) { +--- 2590,2596 ---- + + // read the bitmap + bitmap = readGenericBitmap(mmr, w, h, templ, tpgdOn, gFalse, +! NULL, atx, aty, mmr ? length - 18 : 0); + + // combine the region bitmap into the page bitmap + if (imm) { +*************** +*** 2505,2510 **** +--- 2612,2654 ---- + error(getPos(), "Unexpected EOF in JBIG2 stream"); + } + ++ inline void JBIG2Stream::mmrAddPixels(int a1, int blackPixels, ++ int *codingLine, int *a0i, int w) { ++ if (a1 > codingLine[*a0i]) { ++ if (a1 > w) { ++ error(getPos(), "JBIG2 MMR row is wrong length ({0:d})", a1); ++ a1 = w; ++ } ++ if ((*a0i & 1) ^ blackPixels) { ++ ++*a0i; ++ } ++ codingLine[*a0i] = a1; ++ } ++ } ++ ++ inline void JBIG2Stream::mmrAddPixelsNeg(int a1, int blackPixels, ++ int *codingLine, int *a0i, int w) { ++ if (a1 > codingLine[*a0i]) { ++ if (a1 > w) { ++ error(getPos(), "JBIG2 MMR row is wrong length ({0:d})", a1); ++ a1 = w; ++ } ++ if ((*a0i & 1) ^ blackPixels) { ++ ++*a0i; ++ } ++ codingLine[*a0i] = a1; ++ } else if (a1 < codingLine[*a0i]) { ++ if (a1 < 0) { ++ error(getPos(), "Invalid JBIG2 MMR code"); ++ a1 = 0; ++ } ++ while (*a0i > 0 && a1 <= codingLine[*a0i - 1]) { ++ --*a0i; ++ } ++ codingLine[*a0i] = a1; ++ } ++ } ++ + JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h, + int templ, GBool tpgdOn, + GBool useSkip, JBIG2Bitmap *skip, +*************** +*** 2517,2523 **** + JBIG2BitmapPtr atPtr0, atPtr1, atPtr2, atPtr3; + int *refLine, *codingLine; + int code1, code2, code3; +! int x, y, a0, pix, i, refI, codingI; + + bitmap = new JBIG2Bitmap(0, w, h); + bitmap->clearToZero(); +--- 2661,2667 ---- + JBIG2BitmapPtr atPtr0, atPtr1, atPtr2, atPtr3; + int *refLine, *codingLine; + int code1, code2, code3; +! int x, y, a0i, b1i, blackPixels, pix, i; + + bitmap = new JBIG2Bitmap(0, w, h); + bitmap->clearToZero(); +*************** +*** 2527,2535 **** + if (mmr) { + + mmrDecoder->reset(); + refLine = (int *)gmallocn(w + 2, sizeof(int)); +! codingLine = (int *)gmallocn(w + 2, sizeof(int)); +! codingLine[0] = codingLine[1] = w; + + for (y = 0; y < h; ++y) { + +--- 2671,2688 ---- + if (mmr) { + + mmrDecoder->reset(); ++ if (w > INT_MAX - 2) { ++ error(getPos(), "Bad width in JBIG2 generic bitmap"); ++ // force a call to gmalloc(-1), which will throw an exception ++ w = -3; ++ } ++ // 0 <= codingLine[0] < codingLine[1] < ... < codingLine[n] = w ++ // ---> max codingLine size = w + 1 ++ // refLine has one extra guard entry at the end ++ // ---> max refLine size = w + 2 ++ codingLine = (int *)gmallocn(w + 1, sizeof(int)); + refLine = (int *)gmallocn(w + 2, sizeof(int)); +! codingLine[0] = w; + + for (y = 0; y < h; ++y) { + +*************** +*** 2537,2664 **** + for (i = 0; codingLine[i] < w; ++i) { + refLine[i] = codingLine[i]; + } +! refLine[i] = refLine[i + 1] = w; + + // decode a line +! refI = 0; // b1 = refLine[refI] +! codingI = 0; // a1 = codingLine[codingI] +! a0 = 0; +! do { + code1 = mmrDecoder->get2DCode(); + switch (code1) { + case twoDimPass: +! if (refLine[refI] < w) { +! a0 = refLine[refI + 1]; +! refI += 2; +! } +! break; + case twoDimHoriz: +! if (codingI & 1) { +! code1 = 0; +! do { +! code1 += code3 = mmrDecoder->getBlackCode(); +! } while (code3 >= 64); +! code2 = 0; +! do { +! code2 += code3 = mmrDecoder->getWhiteCode(); +! } while (code3 >= 64); +! } else { +! code1 = 0; +! do { +! code1 += code3 = mmrDecoder->getWhiteCode(); +! } while (code3 >= 64); +! code2 = 0; +! do { +! code2 += code3 = mmrDecoder->getBlackCode(); +! } while (code3 >= 64); +! } +! if (code1 > 0 || code2 > 0) { +! a0 = codingLine[codingI++] = a0 + code1; +! a0 = codingLine[codingI++] = a0 + code2; +! while (refLine[refI] <= a0 && refLine[refI] < w) { +! refI += 2; +! } +! } +! break; +! case twoDimVert0: +! a0 = codingLine[codingI++] = refLine[refI]; +! if (refLine[refI] < w) { +! ++refI; +! } +! break; +! case twoDimVertR1: +! a0 = codingLine[codingI++] = refLine[refI] + 1; +! if (refLine[refI] < w) { +! ++refI; +! while (refLine[refI] <= a0 && refLine[refI] < w) { +! refI += 2; +! } +! } +! break; +! case twoDimVertR2: +! a0 = codingLine[codingI++] = refLine[refI] + 2; +! if (refLine[refI] < w) { +! ++refI; +! while (refLine[refI] <= a0 && refLine[refI] < w) { +! refI += 2; +! } +! } +! break; + case twoDimVertR3: +! a0 = codingLine[codingI++] = refLine[refI] + 3; +! if (refLine[refI] < w) { +! ++refI; +! while (refLine[refI] <= a0 && refLine[refI] < w) { +! refI += 2; +! } +! } +! break; +! case twoDimVertL1: +! a0 = codingLine[codingI++] = refLine[refI] - 1; +! if (refI > 0) { +! --refI; +! } else { +! ++refI; +! } +! while (refLine[refI] <= a0 && refLine[refI] < w) { +! refI += 2; +! } +! break; +! case twoDimVertL2: +! a0 = codingLine[codingI++] = refLine[refI] - 2; +! if (refI > 0) { +! --refI; +! } else { +! ++refI; +! } +! while (refLine[refI] <= a0 && refLine[refI] < w) { +! refI += 2; +! } +! break; + case twoDimVertL3: +! a0 = codingLine[codingI++] = refLine[refI] - 3; +! if (refI > 0) { +! --refI; +! } else { +! ++refI; +! } +! while (refLine[refI] <= a0 && refLine[refI] < w) { +! refI += 2; +! } +! break; + default: + error(getPos(), "Illegal code in JBIG2 MMR bitmap data"); + break; + } +! } while (a0 < w); +! codingLine[codingI++] = w; + + // convert the run lengths to a bitmap line + i = 0; +! while (codingLine[i] < w) { + for (x = codingLine[i]; x < codingLine[i+1]; ++x) { + bitmap->setPixel(x, y); + } + i += 2; + } + } +--- 2690,2846 ---- + for (i = 0; codingLine[i] < w; ++i) { + refLine[i] = codingLine[i]; + } +! refLine[i++] = w; +! refLine[i] = w; + + // decode a line +! codingLine[0] = 0; +! a0i = 0; +! b1i = 0; +! blackPixels = 0; +! // invariant: +! // refLine[b1i-1] <= codingLine[a0i] < refLine[b1i] < refLine[b1i+1] <= w +! // exception at left edge: +! // codingLine[a0i = 0] = refLine[b1i = 0] = 0 is possible +! // exception at right edge: +! // refLine[b1i] = refLine[b1i+1] = w is possible +! while (codingLine[a0i] < w) { + code1 = mmrDecoder->get2DCode(); + switch (code1) { + case twoDimPass: +! mmrAddPixels(refLine[b1i + 1], blackPixels, codingLine, &a0i, w); +! if (refLine[b1i + 1] < w) { +! b1i += 2; +! } +! break; + case twoDimHoriz: +! code1 = code2 = 0; +! if (blackPixels) { +! do { +! code1 += code3 = mmrDecoder->getBlackCode(); +! } while (code3 >= 64); +! do { +! code2 += code3 = mmrDecoder->getWhiteCode(); +! } while (code3 >= 64); +! } else { +! do { +! code1 += code3 = mmrDecoder->getWhiteCode(); +! } while (code3 >= 64); +! do { +! code2 += code3 = mmrDecoder->getBlackCode(); +! } while (code3 >= 64); +! } +! mmrAddPixels(codingLine[a0i] + code1, blackPixels, +! codingLine, &a0i, w); +! if (codingLine[a0i] < w) { +! mmrAddPixels(codingLine[a0i] + code2, blackPixels ^ 1, +! codingLine, &a0i, w); +! } +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < w) { +! b1i += 2; +! } +! break; + case twoDimVertR3: +! mmrAddPixels(refLine[b1i] + 3, blackPixels, codingLine, &a0i, w); +! blackPixels ^= 1; +! if (codingLine[a0i] < w) { +! ++b1i; +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < w) { +! b1i += 2; +! } +! } +! break; +! case twoDimVertR2: +! mmrAddPixels(refLine[b1i] + 2, blackPixels, codingLine, &a0i, w); +! blackPixels ^= 1; +! if (codingLine[a0i] < w) { +! ++b1i; +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < w) { +! b1i += 2; +! } +! } +! break; +! case twoDimVertR1: +! mmrAddPixels(refLine[b1i] + 1, blackPixels, codingLine, &a0i, w); +! blackPixels ^= 1; +! if (codingLine[a0i] < w) { +! ++b1i; +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < w) { +! b1i += 2; +! } +! } +! break; +! case twoDimVert0: +! mmrAddPixels(refLine[b1i], blackPixels, codingLine, &a0i, w); +! blackPixels ^= 1; +! if (codingLine[a0i] < w) { +! ++b1i; +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < w) { +! b1i += 2; +! } +! } +! break; + case twoDimVertL3: +! mmrAddPixelsNeg(refLine[b1i] - 3, blackPixels, codingLine, &a0i, w); +! blackPixels ^= 1; +! if (codingLine[a0i] < w) { +! if (b1i > 0) { +! --b1i; +! } else { +! ++b1i; +! } +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < w) { +! b1i += 2; +! } +! } +! break; +! case twoDimVertL2: +! mmrAddPixelsNeg(refLine[b1i] - 2, blackPixels, codingLine, &a0i, w); +! blackPixels ^= 1; +! if (codingLine[a0i] < w) { +! if (b1i > 0) { +! --b1i; +! } else { +! ++b1i; +! } +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < w) { +! b1i += 2; +! } +! } +! break; +! case twoDimVertL1: +! mmrAddPixelsNeg(refLine[b1i] - 1, blackPixels, codingLine, &a0i, w); +! blackPixels ^= 1; +! if (codingLine[a0i] < w) { +! if (b1i > 0) { +! --b1i; +! } else { +! ++b1i; +! } +! while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < w) { +! b1i += 2; +! } +! } +! break; +! case EOF: +! mmrAddPixels(w, 0, codingLine, &a0i, w); +! break; + default: + error(getPos(), "Illegal code in JBIG2 MMR bitmap data"); ++ mmrAddPixels(w, 0, codingLine, &a0i, w); + break; + } +! } + + // convert the run lengths to a bitmap line + i = 0; +! while (1) { + for (x = codingLine[i]; x < codingLine[i+1]; ++x) { + bitmap->setPixel(x, y); + } ++ if (codingLine[i+1] >= w || codingLine[i+2] >= w) { ++ break; ++ } + i += 2; + } + } +*************** +*** 2706,2712 **** + ltp = !ltp; + } + if (ltp) { +! bitmap->duplicateRow(y, y-1); + continue; + } + } +--- 2888,2896 ---- + ltp = !ltp; + } + if (ltp) { +! if (y > 0) { +! bitmap->duplicateRow(y, y-1); +! } + continue; + } + } +*************** +*** 2909,2916 **** + return; + } + if (nRefSegs == 1) { +! seg = findSegment(refSegs[0]); +! if (seg->getType() != jbig2SegBitmap) { + error(getPos(), "Bad bitmap reference in JBIG2 generic refinement segment"); + return; + } +--- 3093,3100 ---- + return; + } + if (nRefSegs == 1) { +! if (!(seg = findSegment(refSegs[0])) || +! seg->getType() != jbig2SegBitmap) { + error(getPos(), "Bad bitmap reference in JBIG2 generic refinement segment"); + return; + } +*************** +*** 3004,3009 **** +--- 3188,3197 ---- + tpgrCX2 = refBitmap->nextPixel(&tpgrCXPtr2); + tpgrCX2 = (tpgrCX2 << 1) | refBitmap->nextPixel(&tpgrCXPtr2); + tpgrCX2 = (tpgrCX2 << 1) | refBitmap->nextPixel(&tpgrCXPtr2); ++ } else { ++ tpgrCXPtr0.p = tpgrCXPtr1.p = tpgrCXPtr2.p = NULL; // make gcc happy ++ tpgrCXPtr0.shift = tpgrCXPtr1.shift = tpgrCXPtr2.shift = 0; ++ tpgrCXPtr0.x = tpgrCXPtr1.x = tpgrCXPtr2.x = 0; + } + + for (x = 0; x < w; ++x) { +*************** +*** 3075,3080 **** +--- 3263,3272 ---- + tpgrCX2 = refBitmap->nextPixel(&tpgrCXPtr2); + tpgrCX2 = (tpgrCX2 << 1) | refBitmap->nextPixel(&tpgrCXPtr2); + tpgrCX2 = (tpgrCX2 << 1) | refBitmap->nextPixel(&tpgrCXPtr2); ++ } else { ++ tpgrCXPtr0.p = tpgrCXPtr1.p = tpgrCXPtr2.p = NULL; // make gcc happy ++ tpgrCXPtr0.shift = tpgrCXPtr1.shift = tpgrCXPtr2.shift = 0; ++ tpgrCXPtr0.x = tpgrCXPtr1.x = tpgrCXPtr2.x = 0; + } + + for (x = 0; x < w; ++x) { +diff -r -c xpdf-3.02.orig/xpdf/JBIG2Stream.h xpdf-3.02/xpdf/JBIG2Stream.h +*** xpdf-3.02.orig/xpdf/JBIG2Stream.h Tue Feb 27 14:05:52 2007 +--- xpdf-3.02/xpdf/JBIG2Stream.h Tue Mar 31 10:50:07 2009 +*************** +*** 78,83 **** +--- 78,87 ---- + Guint *refSegs, Guint nRefSegs); + void readGenericRegionSeg(Guint segNum, GBool imm, + GBool lossless, Guint length); ++ void mmrAddPixels(int a1, int blackPixels, ++ int *codingLine, int *a0i, int w); ++ void mmrAddPixelsNeg(int a1, int blackPixels, ++ int *codingLine, int *a0i, int w); + JBIG2Bitmap *readGenericBitmap(GBool mmr, int w, int h, + int templ, GBool tpgdOn, + GBool useSkip, JBIG2Bitmap *skip, diff --git a/source/xap/xpdf/xpdf-arabic.diff b/source/xap/xpdf/xpdf-arabic.diff new file mode 100644 index 000000000..a6dfcf1f5 --- /dev/null +++ b/source/xap/xpdf/xpdf-arabic.diff @@ -0,0 +1,7 @@ +--- ./add-to-xpdfrc.orig 2003-02-16 16:54:40.000000000 -0600 ++++ ./add-to-xpdfrc 2008-03-02 01:24:14.000000000 -0600 +@@ -1,3 +1,3 @@ + #----- begin Arabic support package (2003-feb-16) +-unicodeMap ISO-8859-6 /usr/local/share/xpdf/arabic/ISO-8859-6.unicodeMap ++unicodeMap ISO-8859-6 /usr/share/xpdf/arabic/ISO-8859-6.unicodeMap + #----- end Arabic support package diff --git a/source/xap/xpdf/xpdf-chinese-simplified.diff b/source/xap/xpdf/xpdf-chinese-simplified.diff new file mode 100644 index 000000000..adb125a49 --- /dev/null +++ b/source/xap/xpdf/xpdf-chinese-simplified.diff @@ -0,0 +1,19 @@ +--- ./add-to-xpdfrc.orig 2004-07-27 17:28:08.000000000 -0500 ++++ ./add-to-xpdfrc 2008-03-02 01:46:16.000000000 -0600 +@@ -1,9 +1,9 @@ + #----- begin Chinese Simplified support package (2004-jul-27) +-cidToUnicode Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode +-unicodeMap ISO-2022-CN /usr/local/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap +-unicodeMap EUC-CN /usr/local/share/xpdf/chinese-simplified/EUC-CN.unicodeMap +-unicodeMap GBK /usr/local/share/xpdf/chinese-simplified/GBK.unicodeMap +-cMapDir Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/CMap +-toUnicodeDir /usr/local/share/xpdf/chinese-simplified/CMap +-#displayCIDFontTT Adobe-GB1 /usr/..../gkai00mp.ttf ++cidToUnicode Adobe-GB1 /usr/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode ++unicodeMap ISO-2022-CN /usr/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap ++unicodeMap EUC-CN /usr/share/xpdf/chinese-simplified/EUC-CN.unicodeMap ++unicodeMap GBK /usr/share/xpdf/chinese-simplified/GBK.unicodeMap ++cMapDir Adobe-GB1 /usr/share/xpdf/chinese-simplified/CMap ++toUnicodeDir /usr/share/xpdf/chinese-simplified/CMap ++displayCIDFontTT Adobe-GB1 /usr/share/fonts/TTF/wqy-zenhei.ttf + #----- end Chinese Simplified support package diff --git a/source/xap/xpdf/xpdf-chinese-traditional.diff b/source/xap/xpdf/xpdf-chinese-traditional.diff new file mode 100644 index 000000000..71d35ee5d --- /dev/null +++ b/source/xap/xpdf/xpdf-chinese-traditional.diff @@ -0,0 +1,17 @@ +--- ./add-to-xpdfrc.orig 2004-07-27 17:28:07.000000000 -0500 ++++ ./add-to-xpdfrc 2008-03-02 01:45:16.000000000 -0600 +@@ -1,8 +1,8 @@ + #----- begin Chinese Traditional support package (2004-jul-27) +-cidToUnicode Adobe-CNS1 /usr/local/share/xpdf/chinese-traditional/Adobe-CNS1.cidToUnicode +-unicodeMap Big5 /usr/local/share/xpdf/chinese-traditional/Big5.unicodeMap +-unicodeMap Big5ascii /usr/local/share/xpdf/chinese-traditional/Big5ascii.unicodeMap +-cMapDir Adobe-CNS1 /usr/local/share/xpdf/chinese-traditional/CMap +-toUnicodeDir /usr/local/share/xpdf/chinese-traditional/CMap +-#displayCIDFontTT Adobe-CNS1 /usr/..../bkai00mp.ttf ++cidToUnicode Adobe-CNS1 /usr/share/xpdf/chinese-traditional/Adobe-CNS1.cidToUnicode ++unicodeMap Big5 /usr/share/xpdf/chinese-traditional/Big5.unicodeMap ++unicodeMap Big5ascii /usr/share/xpdf/chinese-traditional/Big5ascii.unicodeMap ++cMapDir Adobe-CNS1 /usr/share/xpdf/chinese-traditional/CMap ++toUnicodeDir /usr/share/xpdf/chinese-traditional/CMap ++displayCIDFontTT Adobe-CNS1 /usr/share/fonts/TTF/wqy-zenhei.ttf + #----- end Chinese Traditional support package diff --git a/source/xap/xpdf/xpdf-cyrillic.diff b/source/xap/xpdf/xpdf-cyrillic.diff new file mode 100644 index 000000000..ec841961e --- /dev/null +++ b/source/xap/xpdf/xpdf-cyrillic.diff @@ -0,0 +1,9 @@ +--- ./add-to-xpdfrc.orig 2003-07-08 00:43:40.000000000 -0500 ++++ ./add-to-xpdfrc 2008-03-02 01:27:17.000000000 -0600 +@@ -1,4 +1,4 @@ + #----- begin Cyrillic support package (2003-jun-28) +-nameToUnicode /usr/local/share/xpdf/cyrillic/Bulgarian.nameToUnicode +-unicodeMap KOI8-R /usr/local/share/xpdf/cyrillic/KOI8-R.unicodeMap ++nameToUnicode /usr/share/xpdf/cyrillic/Bulgarian.nameToUnicode ++unicodeMap KOI8-R /usr/share/xpdf/cyrillic/KOI8-R.unicodeMap + #----- end Cyrillic support package diff --git a/source/xap/xpdf/xpdf-greek.diff b/source/xap/xpdf/xpdf-greek.diff new file mode 100644 index 000000000..fe47d4434 --- /dev/null +++ b/source/xap/xpdf/xpdf-greek.diff @@ -0,0 +1,9 @@ +--- ./add-to-xpdfrc.orig 2003-07-08 00:43:40.000000000 -0500 ++++ ./add-to-xpdfrc 2008-03-02 01:28:00.000000000 -0600 +@@ -1,4 +1,4 @@ + #----- begin Greek support package (2003-jun-28) +-nameToUnicode /usr/local/share/xpdf/greek/Greek.nameToUnicode +-unicodeMap ISO-8859-7 /usr/local/share/xpdf/greek/ISO-8859-7.unicodeMap ++nameToUnicode /usr/share/xpdf/greek/Greek.nameToUnicode ++unicodeMap ISO-8859-7 /usr/share/xpdf/greek/ISO-8859-7.unicodeMap + #----- end Greek support package diff --git a/source/xap/xpdf/xpdf-hebrew.diff b/source/xap/xpdf/xpdf-hebrew.diff new file mode 100644 index 000000000..e7d091d00 --- /dev/null +++ b/source/xap/xpdf/xpdf-hebrew.diff @@ -0,0 +1,9 @@ +--- ./add-to-xpdfrc.orig 2008-03-02 01:28:33.000000000 -0600 ++++ ./add-to-xpdfrc 2008-03-02 01:28:45.000000000 -0600 +@@ -1,4 +1,4 @@ + #----- begin Hebrew support package (2003-feb-16) +-unicodeMap ISO-8859-8 /usr/local/share/xpdf/hebrew/ISO-8859-8.unicodeMap +-unicodeMap Windows-1255 /usr/local/share/xpdf/hebrew/Windows-1255.unicodeMap ++unicodeMap ISO-8859-8 /usr/share/xpdf/hebrew/ISO-8859-8.unicodeMap ++unicodeMap Windows-1255 /usr/share/xpdf/hebrew/Windows-1255.unicodeMap + #----- end Hebrew support package diff --git a/source/xap/xpdf/xpdf-japanese.diff b/source/xap/xpdf/xpdf-japanese.diff new file mode 100644 index 000000000..5c1878fe8 --- /dev/null +++ b/source/xap/xpdf/xpdf-japanese.diff @@ -0,0 +1,57 @@ +--- ./add-to-xpdfrc.orig 2008-03-02 01:31:08.000000000 -0600 ++++ ./add-to-xpdfrc 2008-03-02 01:31:32.000000000 -0600 +@@ -1,9 +1,47 @@ + #----- begin Japanese support package (2004-jul-27) +-cidToUnicode Adobe-Japan1 /usr/local/share/xpdf/japanese/Adobe-Japan1.cidToUnicode +-unicodeMap ISO-2022-JP /usr/local/share/xpdf/japanese/ISO-2022-JP.unicodeMap +-unicodeMap EUC-JP /usr/local/share/xpdf/japanese/EUC-JP.unicodeMap +-unicodeMap Shift-JIS /usr/local/share/xpdf/japanese/Shift-JIS.unicodeMap +-cMapDir Adobe-Japan1 /usr/local/share/xpdf/japanese/CMap +-toUnicodeDir /usr/local/share/xpdf/japanese/CMap +-#displayCIDFontTT Adobe-Japan1 /usr/..../kochi-mincho.ttf ++cidToUnicode Adobe-Japan1 /usr/share/xpdf/japanese/Adobe-Japan1.cidToUnicode ++unicodeMap ISO-2022-JP /usr/share/xpdf/japanese/ISO-2022-JP.unicodeMap ++unicodeMap EUC-JP /usr/share/xpdf/japanese/EUC-JP.unicodeMap ++unicodeMap Shift-JIS /usr/share/xpdf/japanese/Shift-JIS.unicodeMap ++cMapDir Adobe-Japan1 /usr/share/xpdf/japanese/CMap ++toUnicodeDir /usr/share/xpdf/japanese/CMap ++ ++### use Sazanami by default ++displayCIDFontTT Adobe-Japan1 /usr/share/fonts/TTF/sazanami-mincho.ttf ++### use Sazanami (Sazanami Gothic) if gothic font is required ++displayNamedCIDFontTT ShinGo-Bold /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT ShinGo-regular /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT MidashiGo-MB31 /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT FutoGoB101-Bold /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT HeiseiKakuGo-W5 /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT HeiseiKakuGo-W9 /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT HeiseiMaruGo-W4 /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT MS-Gothic /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT HG-GothicB /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT Kochi-Gothic /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT GothicBBB-Medium-H /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT GothicBBB-Medium /usr/share/fonts/TTF/sazanami-gothic.ttf ++displayNamedCIDFontTT Ryumin-Light-H /usr/share/fonts/TTF/sazanami-mincho.ttf ++displayNamedCIDFontTT Ryumin-Light /usr/share/fonts/TTF/sazanami-mincho.ttf ++ ++### make default font name to "Ryumin-Light" when converted to PostScript ++psFont16 Adobe-Japan1 H Ryumin-Light-H ISO-2022-JP ++psFont16 Adobe-Japan1 V Ryumin-Light-V ISO-2022-JP ++# use "Gothic-BBB-Medium" if gothic font is required ++psNamedFont16 MidashiGo-MB31 H GothicBBB-Medium-H ISO-2022-JP ++psNamedFont16 MidashiGo-MB31 V GothicBBB-Medium-V ISO-2022-JP ++psNamedFont16 FutoGoB101-Bold H GothicBBB-Medium-H ISO-2022-JP ++psNamedFont16 FutoGoB101-Bold V GothicBBB-Medium-V ISO-2022-JP ++psNamedFont16 HeiseiKakuGo-W5 H GothicBBB-Medium-H ISO-2022-JP ++psNamedFont16 HeiseiKakuGo-W5 V GothicBBB-Medium-V ISO-2022-JP ++psNamedFont16 HeiseiKakuGo-W9 H GothicBBB-Medium-H ISO-2022-JP ++psNamedFont16 HeiseiKakuGo-W9 V GothicBBB-Medium-V ISO-2022-JP ++psNamedFont16 HeiseiMaruGo-W4 H GothicBBB-Medium-H ISO-2022-JP ++psNamedFont16 HeiseiMaruGo-W4 V GothicBBB-Medium-V ISO-2022-JP ++psNamedFont16 MS-Gothic H GothicBBB-Medium-H ISO-2022-JP ++psNamedFont16 MS-Gothic V GothicBBB-Medium-V ISO-2022-JP ++psNamedFont16 HG-GothicB H GothicBBB-Medium-H ISO-2022-JP ++psNamedFont16 HG-GothicB V GothicBBB-Medium-V ISO-2022-JP ++psNamedFont16 Kochi-Gothic H GothicBBB-Medium-H ISO-2022-JP ++psNamedFont16 Kochi-Gothic V GothicBBB-Medium-V ISO-2022-JP + #----- end Japanese support package diff --git a/source/xap/xpdf/xpdf-korean.diff b/source/xap/xpdf/xpdf-korean.diff new file mode 100644 index 000000000..632fc2145 --- /dev/null +++ b/source/xap/xpdf/xpdf-korean.diff @@ -0,0 +1,15 @@ +--- ./add-to-xpdfrc.orig 2005-07-07 13:05:05.000000000 -0500 ++++ ./add-to-xpdfrc 2008-03-02 01:33:52.000000000 -0600 +@@ -1,8 +1,8 @@ + #----- begin Korean support package (2005-jul-07) +-cidToUnicode Adobe-Korea1 /usr/local/share/xpdf/korean/Adobe-Korea1.cidToUnicode +-unicodeMap ISO-2022-KR /usr/local/share/xpdf/korean/ISO-2022-KR.unicodeMap +-cMapDir Adobe-Korea1 /usr/local/share/xpdf/korean/CMap +-toUnicodeDir /usr/local/share/xpdf/korean/CMap ++cidToUnicode Adobe-Korea1 /usr/share/xpdf/korean/Adobe-Korea1.cidToUnicode ++unicodeMap ISO-2022-KR /usr/share/xpdf/korean/ISO-2022-KR.unicodeMap ++cMapDir Adobe-Korea1 /usr/share/xpdf/korean/CMap ++toUnicodeDir /usr/share/xpdf/korean/CMap + #displayCIDFontTT Adobe-Korea1 /usr/..../batang.ttf" + #displayCIDFontTT Unidocs-Korea1 /usr/..../batang.ttf" + #----- end Korean support package diff --git a/source/xap/xpdf/xpdf-latin2.diff b/source/xap/xpdf/xpdf-latin2.diff new file mode 100644 index 000000000..88ce2444e --- /dev/null +++ b/source/xap/xpdf/xpdf-latin2.diff @@ -0,0 +1,7 @@ +--- ./add-to-xpdfrc.orig 2002-11-03 17:49:15.000000000 -0600 ++++ ./add-to-xpdfrc 2008-03-02 01:35:51.000000000 -0600 +@@ -1,3 +1,3 @@ + #----- begin Latin2 support package (2002-oct-22) +-unicodeMap Latin2 /usr/local/share/xpdf/latin2/Latin2.unicodeMap ++unicodeMap Latin2 /usr/share/xpdf/latin2/Latin2.unicodeMap + #----- end Latin2 support package diff --git a/source/xap/xpdf/xpdf-resizefix.diff b/source/xap/xpdf/xpdf-resizefix.diff new file mode 100644 index 000000000..4be7feb0a --- /dev/null +++ b/source/xap/xpdf/xpdf-resizefix.diff @@ -0,0 +1,34 @@ +--- ./fofi/FoFiType1.cc.orig 2007-02-27 16:05:51.000000000 -0600 ++++ ./fofi/FoFiType1.cc 2007-04-11 19:58:28.000000000 -0500 +@@ -235,9 +235,14 @@ + } + } + } else { +- if (strtok(buf, " \t") && +- (p = strtok(NULL, " \t\n\r")) && !strcmp(p, "def")) { +- break; ++ p = strtok(buf, " \t\n\r"); ++ if (p) ++ { ++ if (!strcmp(p, "def")) break; ++ if (!strcmp(p, "readonly")) break; ++ // the spec does not says this but i'm mantaining old xpdf behaviour that accepts "foo def" as end of the encoding array ++ p = strtok(buf, " \t\n\r"); ++ if (p && !strcmp(p, "def")) break; + } + } + } +--- ./splash/Splash.cc.orig 2007-02-27 16:05:52.000000000 -0600 ++++ ./splash/Splash.cc 2007-04-11 19:58:35.000000000 -0500 +@@ -1501,6 +1501,11 @@ + xPath->aaScale(); + } + xPath->sort(); ++ if (!&xPath->segs[0]) ++ { ++ delete xPath; ++ return splashErrEmptyPath; ++ } + scanner = new SplashXPathScanner(xPath, eo); + + // get the min and max x and y values diff --git a/source/xap/xpdf/xpdf-thai.diff b/source/xap/xpdf/xpdf-thai.diff new file mode 100644 index 000000000..75b9b1a28 --- /dev/null +++ b/source/xap/xpdf/xpdf-thai.diff @@ -0,0 +1,9 @@ +--- ./add-to-xpdfrc.orig 2002-11-03 17:49:15.000000000 -0600 ++++ ./add-to-xpdfrc 2008-03-02 01:36:36.000000000 -0600 +@@ -1,4 +1,4 @@ + #----- begin Thai support package (2002-jan-16) +-nameToUnicode /usr/local/share/xpdf/thai/Thai.nameToUnicode +-unicodeMap TIS-620 /usr/local/share/xpdf/thai/TIS-620.unicodeMap ++nameToUnicode /usr/share/xpdf/thai/Thai.nameToUnicode ++unicodeMap TIS-620 /usr/share/xpdf/thai/TIS-620.unicodeMap + #----- end Thai support package diff --git a/source/xap/xpdf/xpdf-turkish.diff b/source/xap/xpdf/xpdf-turkish.diff new file mode 100644 index 000000000..ec7fe79f0 --- /dev/null +++ b/source/xap/xpdf/xpdf-turkish.diff @@ -0,0 +1,7 @@ +--- ./add-to-xpdfrc.orig 2002-11-03 17:49:15.000000000 -0600 ++++ ./add-to-xpdfrc 2008-03-02 01:37:33.000000000 -0600 +@@ -1,3 +1,3 @@ + #----- begin Turkish support package (2002-apr-10) +-unicodeMap ISO-8859-9 /usr/local/share/xpdf/turkish/ISO-8859-9.unicodeMap ++unicodeMap ISO-8859-9 /usr/share/xpdf/turkish/ISO-8859-9.unicodeMap + #----- end Turkish support package diff --git a/source/xap/xpdf/xpdf.SlackBuild b/source/xap/xpdf/xpdf.SlackBuild new file mode 100755 index 000000000..d07fb9aa6 --- /dev/null +++ b/source/xap/xpdf/xpdf.SlackBuild @@ -0,0 +1,143 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=3.02 +PATCHLEVEL=pl3 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=1 + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xpdf +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf xpdf-$VERSION +tar xvf $CWD/xpdf-$VERSION.tar.gz || exit 1 +cd xpdf-$VERSION || exit 1 + +zcat $CWD/xpdf-resizefix.diff.gz | patch -p1 --verbose || exit 1 +cat $CWD/xpdf-3.02pl1.patch | patch -p1 --verbose || exit 1 +cat $CWD/xpdf-3.02pl2.patch | patch -p1 --verbose || exit 1 +cat $CWD/xpdf-3.02pl3.patch | patch -p1 --verbose || exit 1 +zcat $CWD/xpdf_3.02-1.3.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +zcat $CWD/xpdfrc.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --with-gzip \ + --with-freetype2-includes=/usr/include/freetype2 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/etc +cat doc/sample-xpdfrc > $PKG/etc/xpdfrc +mkdir -p $PKG/usr/share/applications +cat $CWD/xpdf.desktop > $PKG/usr/share/applications/xpdf.desktop +mkdir -p $PKG/usr/share/icons +cat xpdf/xpdfIcon.xpm > $PKG/usr/share/icons/xpdfIcon.xpm + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +chmod 755 $PKG/usr/bin/* +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/usr/doc/xpdf-$VERSION +cp -a \ + ANNOUNCE CHANGES COPYING INSTALL README \ + $PKG/usr/doc/xpdf-$VERSION +chmod 644 $PKG/usr/doc/xpdf-$VERSION/* + +# Add additional language support: +for language in xpdf-arabic xpdf-chinese-simplified xpdf-chinese-traditional xpdf-cyrillic xpdf-greek xpdf-hebrew xpdf-japanese xpdf-korean xpdf-latin2 xpdf-thai xpdf-turkish ; do + rm -rf ${language} + tar xf $CWD/${language}.tar.gz + ( cd ${language} + zcat $CWD/${language}.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + chown -R root:root . + find . -type f -exec chmod 644 {} \; + cat add-to-xpdfrc >> $PKG/etc/xpdfrc + mkdir -p $PKG/usr/share/xpdf/$(echo ${language} | cut -f2- -d -) + cp -a * $PKG/usr/share/xpdf/$(echo ${language} | cut -f2- -d -) + ) +done + +mkdir -p $PKG/install +mv $PKG/etc/xpdfrc $PKG/etc/xpdfrc.new +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config etc/xpdfrc.new +EOF +cat $CWD/slack-desc > $PKG/install/slack-desc + +# We'll use the versions of these from the poppler derived work (if they exist here): +( cd $PKG/usr/bin + rm -f pdfinfo pdftops pdftoppm pdftohtml pdftotext pdfimages pdffonts + cd $PKG/usr/man/man1 + for file in pdfinfo pdftops pdftoppm pdftohtml pdftotext pdfimages pdffonts ; do + rm -f ${file}.1.gz + done +) + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/xpdf-${VERSION}${PATCHLEVEL}-$ARCH-$BUILD.txz + diff --git a/source/xap/xpdf/xpdf.desktop b/source/xap/xpdf/xpdf.desktop new file mode 100644 index 000000000..b8f4c9b17 --- /dev/null +++ b/source/xap/xpdf/xpdf.desktop @@ -0,0 +1,100 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=X PDF +Name[bn]=à¦à¦•à§à¦¸ পি-ডি-à¦à¦« +Name[de]=X-PDF +Name[eo]=XPDF +Name[es]=PDF para X +Name[fr]=XPDF +Name[hi]=à¤à¤•à¥à¤¸ पीडीà¤à¤« +Name[ko]=Xìš© PDF +Name[mn]=X-PDF +Name[nds]=X-PDF +Name[te]=à°Žà°•à±à°¸à± పిడిఎఫౠ+MimeType=application/pdf +GenericName=PDF Viewer +GenericName[af]=Pdf Aansig +GenericName[ar]=عارض الملÙات PDF +GenericName[az]=PDF Nümayişçisi +GenericName[be]=ПраглÑдальнік PDF +GenericName[bg]=Преглед на PDF документи +GenericName[bn]=পি-ডি-à¦à¦« পà§à¦°à¦¦à¦°à§à¦¶à¦• +GenericName[br]=Gweler PDF +GenericName[bs]=Preglednik PDF dokumenata +GenericName[ca]=Visor PDF +GenericName[cs]=ProhlížeÄ PDF souborů +GenericName[csb]=Przezérnik PDF +GenericName[cy]=Gwelydd PDF +GenericName[da]=PDF-fremviser +GenericName[de]=PDF-Betrachter +GenericName[el]=ΠÏοβολέας PDF +GenericName[eo]=PDF-rigardilo +GenericName[es]=Visor de documentos PDF +GenericName[et]=PDF failide vaatamine +GenericName[eu]=PDF ikustailua +GenericName[fa]=مشاهده‌گر PDF +GenericName[fi]=PDF-näytin +GenericName[fo]=PDF-vísari +GenericName[fr]=Afficheur PDF +GenericName[fy]=PDF-werjefteprogramma +GenericName[ga]=Amharcán PDF +GenericName[gl]=Visualizador de PDF +GenericName[he]=מציג קבצי PDF +GenericName[hi]=पीडीà¤à¤« पà¥à¤°à¤¦à¤°à¥à¤¶à¤• +GenericName[hr]=Preglednik PDF dokumenata +GenericName[hu]=PDF-nézegetÅ‘ +GenericName[id]=Viewer PDF +GenericName[is]=PDF-sjá +GenericName[it]=Visualizzatore PDF +GenericName[ja]=PDF ビューア +GenericName[kk]=PDF қарау құралы +GenericName[km]=កម្មវិធី​មើល PDF +GenericName[ko]=PDF 보기 +GenericName[lo]=ສະà»àº”ງຜົນPDF +GenericName[lt]=PDF ŽiÅ«riklis +GenericName[lv]=PDF SkatÄ«tÄjs +GenericName[mk]=Прегледувач на PDF +GenericName[mn]=PDF-Харагч +GenericName[ms]=Pemapar PDF +GenericName[mt]=Werrej PDF +GenericName[nb]=PDF-leser +GenericName[nds]=Kieker för PDF-Dateien +GenericName[ne]=PDF दरà¥à¤¶à¤• +GenericName[nl]=PDF-weergaveprogramma +GenericName[nn]=PDF-lesar +GenericName[nso]=Molebeledi wa PDF +GenericName[oc]=Visualisor PDF +GenericName[pa]=PDF ਦਰਸ਼ਕ +GenericName[pl]=PrzeglÄ…darka plików PDF +GenericName[pt]=Visualizador de PDFs +GenericName[pt_BR]=Visualizador de arquivos PDF +GenericName[ro]=Vizualizor de documente PDF +GenericName[ru]=ПроÑмотр PDF +GenericName[rw]=Mugaragaza PDF +GenericName[se]=PDF-logan +GenericName[sk]=PrehliadaÄ PDF súborov +GenericName[sl]=Pregledovalnik datotek PDF +GenericName[sr]=PDF приказивач +GenericName[sr@Latn]=PDF prikazivaÄ +GenericName[ss]=Sibuki se PDF +GenericName[sv]=PDF-visare +GenericName[ta]=PDF காடà¯à®šà®¿ +GenericName[tg]=Ðамоишгари PDF +GenericName[th]=ตัวà¹à¸ªà¸”งผล PDF +GenericName[tr]=PDF Görüntüleyici +GenericName[tt]=PDF Kürsätkeç +GenericName[uk]=ПереглÑдач PDF +GenericName[uz]=PDF кўрувчи +GenericName[ven]=Tshivhoni tsha PDF +GenericName[vi]=Trình xem PDF +GenericName[wa]=HÃ¥yneu di documints PDF +GenericName[zh_CN]=PDF 查看器 +GenericName[zh_TW]=PDF æª¢è¦–ç¨‹å¼ +GenericName[zu]=Umbukisi we-PDF +Exec=xpdf +Icon=xpdfIcon +Path= +Type=Application +Terminal=false +X-KDE-StartupNotify=false +Categories=Graphics;PDFViewer; diff --git a/source/xap/xpdf/xpdf_3.02-1.3.diff b/source/xap/xpdf/xpdf_3.02-1.3.diff new file mode 100644 index 000000000..6a769e5c9 --- /dev/null +++ b/source/xap/xpdf/xpdf_3.02-1.3.diff @@ -0,0 +1,4470 @@ +--- xpdf-3.02.orig/debian/README.Debian ++++ xpdf-3.02/debian/README.Debian +@@ -0,0 +1,16 @@ ++ ++This package incorporates the following Xpdf language ++packages: ++ ++xpdf-cyrillic 2002-jun-28 ++xpdf-greek 2002-jun-28 ++xpdf-hebrew 2003-feb-16 ++xpdf-latin2 2002-oct-22 ++xpdf-thai 2002-jan-16 ++xpdf-turkish 2002-apr-10 ++xpdf-arabic 2003-feb-16 ++ ++xpdf-chinese-simplified, xpdf-chinese-traditional, xpdf-korean ++and xpdf-japanese are separate Debian packages in the "non-free" ++section of the Debian archive. ++ +--- xpdf-3.02.orig/debian/xpdf-utils.files ++++ xpdf-3.02/debian/xpdf-utils.files +@@ -0,0 +1,10 @@ ++/usr/share/man/man1/pdftotext.1 ++/usr/share/man/man1/pdfinfo.1 ++/usr/share/man/man1/pdffonts.1 ++/usr/share/man/man1/pdfimages.1 ++/usr/share/man/man1/pdftops.1 ++/usr/bin/pdftops ++/usr/bin/pdftotext ++/usr/bin/pdfinfo ++/usr/bin/pdffonts ++/usr/bin/pdfimages +--- xpdf-3.02.orig/debian/patches-obselete/04_freetype-glyph.dpatch ++++ xpdf-3.02/debian/patches-obselete/04_freetype-glyph.dpatch +@@ -0,0 +1,20 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 04_freetype-glyph.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Bug fix for Freetype glyph handling ++ ++@DPATCH@ ++ ++--- xpdf-3.00.orig/splash/SplashFTFont.cc +++++ xpdf-3.00/splash/SplashFTFont.cc ++@@ -238,6 +238,9 @@ ++ if (FT_Get_Glyph(slot, &glyph)) { ++ return NULL; ++ } +++ if (glyph->format != FT_GLYPH_FORMAT_OUTLINE) { +++ return NULL; +++ } ++ path.path = new SplashPath(); ++ path.needClose = gFalse; ++ FT_Outline_Decompose(&((FT_OutlineGlyph)glyph)->outline, +--- xpdf-3.02.orig/debian/patches-obselete/07_decrypt.dpatch ++++ xpdf-3.02/debian/patches-obselete/07_decrypt.dpatch +@@ -0,0 +1,52 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 07_decrypt.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Avoid potential buffer overruns during decryption ++ ++@DPATCH@ ++diff -urNad --exclude=CVS --exclude=.svn ./xpdf/Decrypt.cc /tmp/dpep-work.wRRwAu/xpdf-3.01/xpdf/Decrypt.cc ++--- ./xpdf/Decrypt.cc 2005-08-17 15:34:31.000000000 +1000 +++++ /tmp/dpep-work.wRRwAu/xpdf-3.01/xpdf/Decrypt.cc 2005-08-19 18:47:09.000000000 +1000 ++@@ -75,6 +75,11 @@ ++ Guchar fx, fy; ++ int len, i, j; ++ +++ // check whether we have non-zero keyLength +++ if ( !keyLength ) { +++ return gFalse; +++ } +++ ++ // try using the supplied owner password to generate the user password ++ *ownerPasswordOk = gFalse; ++ if (ownerPassword) { ++@@ -100,7 +105,7 @@ ++ } else { ++ memcpy(test2, ownerKey->getCString(), 32); ++ for (i = 19; i >= 0; --i) { ++- for (j = 0; j < keyLength; ++j) { +++ for (j = 0; j < keyLength && j < 16; ++j) { ++ tmpKey[j] = test[j] ^ i; ++ } ++ rc4InitKey(tmpKey, keyLength, fState); ++@@ -140,6 +145,11 @@ ++ int len, i, j; ++ GBool ok; ++ +++ // check whether we have non-zero keyLength +++ if ( !keyLength ) { +++ return gFalse; +++ } +++ ++ // generate file key ++ buf = (Guchar *)gmalloc(72 + fileID->getLength()); ++ if (userPassword) { ++@@ -184,7 +194,7 @@ ++ } else if (encRevision == 3) { ++ memcpy(test, userKey->getCString(), 32); ++ for (i = 19; i >= 0; --i) { ++- for (j = 0; j < keyLength; ++j) { +++ for (j = 0; j < keyLength && j < 16; ++j) { ++ tmpKey[j] = fileKey[j] ^ i; ++ } ++ rc4InitKey(tmpKey, keyLength, fState); +--- xpdf-3.02.orig/debian/patches-obselete/03_freetype-build.dpatch ++++ xpdf-3.02/debian/patches-obselete/03_freetype-build.dpatch +@@ -0,0 +1,301 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 03_freetype-build.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Use pkg-config to locate FreeType build information ++ ++@DPATCH@ ++diff -urNad --exclude=CVS --exclude=.svn ./configure.in /tmp/dpep-work.9fnwEh/xpdf-3.01/configure.in ++--- ./configure.in 2005-08-19 17:06:04.000000000 +1000 +++++ /tmp/dpep-work.9fnwEh/xpdf-3.01/configure.in 2005-08-19 17:12:11.000000000 +1000 ++@@ -301,10 +301,8 @@ ++ AC_SUBST(t1_CFLAGS) ++ ++ dnl ##### Check for FreeType 2.x. ++-dnl ##### (Note: FT_Get_Name_Index was added in FT 2.0.5, and is ++-dnl ##### the reason that Xpdf requires 2.0.5+.) ++-smr_CHECK_LIB(freetype2, freetype, [FreeType2 font rasterizer - version 2.0.5+], ++- FT_Get_Name_Index, ft2build.h, -lm) +++PKG_CHECK_MODULES(freetype2, freetype2 >= 9.5.3, smr_have_freetype2_library="yes", +++ smr_have_freetype2_library="no") ++ AC_SUBST(freetype2_LIBS) ++ AC_SUBST(freetype2_CFLAGS) ++ if test "x$smr_have_freetype2_library" = xyes; then ++diff -urNad --exclude=CVS --exclude=.svn ./smr.m4 /tmp/dpep-work.9fnwEh/xpdf-3.01/smr.m4 ++--- ./smr.m4 1970-01-01 10:00:00.000000000 +1000 +++++ /tmp/dpep-work.9fnwEh/xpdf-3.01/smr.m4 2005-08-19 17:12:05.000000000 +1000 ++@@ -0,0 +1,274 @@ +++# <<< smr.m4 from smr_macros 0.2.4 >>> +++ +++dnl ####################### -*- Mode: M4 -*- ########################### +++dnl smr.m4 -- +++dnl +++dnl Copyright (C) 1999 Matthew D. Langston +++dnl Copyright (C) 1998 Steve Robbins +++dnl +++dnl This file is free software; you can redistribute it and/or modify it +++dnl under the terms of the GNU General Public License as published by +++dnl the Free Software Foundation; either version 2 of the License, or +++dnl (at your option) any later version. +++dnl +++dnl This file is distributed in the hope that it will be useful, but +++dnl WITHOUT ANY WARRANTY; without even the implied warranty of +++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +++dnl General Public License for more details. +++dnl +++dnl You should have received a copy of the GNU General Public License +++dnl along with this file; if not, write to: +++dnl +++dnl Free Software Foundation, Inc. +++dnl Suite 330 +++dnl 59 Temple Place +++dnl Boston, MA 02111-1307, USA. +++dnl #################################################################### +++ +++ +++dnl NOTE: The macros in this file are extensively documented in the +++dnl accompanying `smr_macros.texi' Texinfo file. Please see the +++dnl Texinfo documentation for the definitive specification of how +++dnl these macros are supposed to work. If the macros work +++dnl differently than the Texinfo documentation says they should, +++dnl then the macros (and not the Texinfo documentation) has the +++dnl bug(s). +++ +++dnl This is a convenient macro which translates illegal characters for +++dnl bourne shell variables into legal characters. It has the same +++dnl functionality as sed 'y%./+-:%__p__%'. +++AC_DEFUN([smr_safe_translation], [patsubst(patsubst([$1], [+], [p]), [./-:], [_])]) +++ +++AC_DEFUN(smr_SWITCH, +++[ +++ dnl Define convenient aliases for the arguments since there are so +++ dnl many of them and I keep confusing myself whenever I have to edit +++ dnl this macro. +++ pushdef([smr_name], $1) +++ pushdef([smr_help_string], $2) +++ pushdef([smr_default], $3) +++ pushdef([smr_yes_define], $4) +++ pushdef([smr_no_define], $5) +++ +++ dnl Do some sanity checking of the arguments. +++ ifelse([regexp(smr_default, [^\(yes\|no\)$])], -1, [AC_MSG_ERROR($0: third arg must be either yes or no)]) +++ +++ dnl Create the help string +++ pushdef([smr_lhs], [--ifelse(smr_default, yes, disable, enable)-smr_name])dnl +++ pushdef([smr_rhs], [ifelse(smr_default, yes, disable, enable) smr_help_string (default is smr_default)])dnl +++ +++ dnl Add the option to `configure --help'. We don't need to supply the +++ dnl 4th argument to AC_ARG_ENABLE (i.e. the code to set the default +++ dnl value) because that is done below by AC_CACHE_CHECK. +++ AC_ARG_ENABLE([smr_name], +++ AC_HELP_STRING([smr_lhs], [smr_rhs]), +++ smr_cv_enable_[]smr_name=$enableval) +++ +++ dnl We cache the result so that the user doesn't have to remember +++ dnl which flags they passed to `configure'. +++ AC_CACHE_CHECK([whether to enable smr_help_string], +++ smr_cv_enable_[]smr_name, +++ smr_cv_enable_[]smr_name=smr_default) +++ +++ ifelse(smr_yes_define, , , test x"[$]smr_cv_enable_[]smr_name" = xyes && AC_DEFINE(smr_yes_define)) +++ ifelse(smr_no_define, , , test x"[$]smr_cv_enable_[]smr_name" = xno && AC_DEFINE(smr_no_define)) +++ +++ dnl Sanity check the value assigned to smr_cv_enable_$1 to force it to +++ dnl be either `yes' or `no'. +++ if test ! x"[$]smr_cv_enable_[]smr_name" = xyes; then +++ if test ! x"[$]smr_cv_enable_[]smr_name" = xno; then +++ AC_MSG_ERROR([smr_lhs must be either yes or no]) +++ fi +++ fi +++ +++ popdef([smr_name]) +++ popdef([smr_help_string]) +++ popdef([smr_default]) +++ popdef([smr_yes_define]) +++ popdef([smr_no_define]) +++ popdef([smr_lhs]) +++ popdef([smr_rhs]) +++]) +++ +++ +++AC_DEFUN(smr_ARG_WITHLIB, +++[ +++ dnl Define convenient aliases for the arguments since there are so +++ dnl many of them and I keep confusing myself whenever I have to edit +++ dnl this macro. +++ pushdef([smr_name], $1) +++ pushdef([smr_libname], ifelse($2, , smr_name, $2)) +++ pushdef([smr_help_string], $3) +++ pushdef([smr_safe_name], smr_safe_translation(smr_name)) +++ +++ dnl Add the option to `configure --help'. We don't need to supply the +++ dnl 4th argument to AC_ARG_WITH (i.e. the code to set the default +++ dnl value) because that is done below by AC_CACHE_CHECK. +++ AC_ARG_WITH(smr_safe_name-library, +++ AC_HELP_STRING([--with-smr_safe_name-library[[=PATH]]], +++ [use smr_name library ifelse(smr_help_string, , , (smr_help_string))]), +++ smr_cv_with_[]smr_safe_name[]_library=$withval) +++ +++ dnl We cache the result so that the user doesn't have to remember +++ dnl which flags they passed to `configure'. +++ AC_CACHE_CHECK([whether to use smr_name library], +++ smr_cv_with_[]smr_safe_name[]_library, +++ smr_cv_with_[]smr_safe_name[]_library=maybe) +++ +++ +++ case x"[$]smr_cv_with_[]smr_safe_name[]_library" in +++ xyes | xmaybe) +++ smr_safe_name[]_LIBS="-l[]smr_libname" +++ with_[]smr_safe_name=[$]smr_cv_with_[]smr_safe_name[]_library +++ ;; +++ xno) +++ smr_safe_name[]_LIBS= +++ with_[]smr_safe_name=no +++ ;; +++ *) +++ if test -f "[$]smr_cv_with_[]smr_safe_name[]_library"; then +++ smr_safe_name[]_LIBS=[$]smr_cv_with_[]smr_safe_name[]_library +++ elif test -d "[$]smr_cv_with_[]smr_safe_name[]_library"; then +++ smr_safe_name[]_LIBS="-L[$]smr_cv_with_[]smr_safe_name[]_library -l[]smr_libname" +++ else +++ AC_MSG_ERROR([argument must be boolean, file, or directory]) +++ fi +++ with_[]smr_safe_name=yes +++ ;; +++ esac +++ +++ popdef([smr_name]) +++ popdef([smr_libname]) +++ popdef([smr_help_string]) +++ popdef([smr_safe_name]) +++]) +++ +++ +++AC_DEFUN(smr_ARG_WITHINCLUDES, +++[ +++ dnl Define convenient aliases for the arguments since there are so +++ dnl many of them and I keep confusing myself whenever I have to edit +++ dnl this macro. +++ pushdef([smr_name], $1) +++ pushdef([smr_header], $2) +++ pushdef([smr_extra_flags], $3) +++ pushdef([smr_safe_name], smr_safe_translation(smr_name)) +++ +++ dnl Add the option to `configure --help'. We don't need to supply the +++ dnl 4th argument to AC_ARG_WITH (i.e. the code to set the default +++ dnl value) because that is done below by AC_CACHE_CHECK. +++ AC_ARG_WITH(smr_safe_name-includes, +++ AC_HELP_STRING([--with-smr_safe_name-includes[[=DIR]]], +++ [set directory for smr_name headers]), +++ smr_cv_with_[]smr_safe_name[]_includes=$withval) +++ +++ dnl We cache the result so that the user doesn't have to remember +++ dnl which flags they passed to `configure'. +++ AC_CACHE_CHECK([where to find the smr_name header files], +++ smr_cv_with_[]smr_safe_name[]_includes, +++ smr_cv_with_[]smr_safe_name[]_includes=) +++ +++ if test ! x"[$]smr_cv_with_[]smr_safe_name[]_includes" = x; then +++ if test -d "[$]smr_cv_with_[]smr_safe_name[]_includes"; then +++ smr_safe_name[]_CFLAGS="-I[$]smr_cv_with_[]smr_safe_name[]_includes" +++ else +++ AC_MSG_ERROR([argument must be a directory]) +++ fi +++ else +++ smr_safe_name[]_CFLAGS= +++ fi +++ +++ dnl This bit of logic comes from the autoconf AC_PROG_CC macro. We +++ dnl need to put the given include directory into CPPFLAGS temporarily, +++ dnl but then restore CPPFLAGS to its old value. +++ smr_test_CPPFLAGS="${CPPFLAGS+set}" +++ smr_save_CPPFLAGS="$CPPFLAGS" +++ CPPFLAGS="$CPPFLAGS [$]smr_safe_name[]_CFLAGS smr_extra_flags" +++ +++ dnl If the header file smr_header exists, then define +++ dnl HAVE_[]smr_header (in all capitals). +++ AC_CHECK_HEADERS([smr_header], +++ smr_have_[]smr_safe_name[]_header=yes, +++ smr_have_[]smr_safe_name[]_header=no) +++ +++ if test x"$smr_test_CPPFLAGS" = xset; then +++ CPPFLAGS=$smr_save_CPPFLAGS +++ else +++ unset CPPFLAGS +++ fi +++ +++ popdef([smr_name]) +++ popdef([smr_header]) +++ popdef([smr_extra_flags]) +++ popdef([smr_safe_name]) +++]) +++ +++ +++AC_DEFUN(smr_CHECK_LIB, +++[ +++ dnl Define convenient aliases for the arguments since there are so +++ dnl many of them and I keep confusing myself whenever I have to edit +++ dnl this macro. +++ pushdef([smr_name], $1) +++ pushdef([smr_libname], ifelse($2, , smr_name, $2)) +++ pushdef([smr_help_string], $3) +++ pushdef([smr_function], $4) +++ pushdef([smr_header], $5) +++ pushdef([smr_extra_libs], $6) +++ pushdef([smr_extra_flags], $7) +++ pushdef([smr_prototype], $8) +++ pushdef([smr_safe_name], smr_safe_translation(smr_name)) +++ +++ dnl Give the user (via "configure --help") an interface to specify +++ dnl whether we should use the library or not, and possibly where we +++ dnl should find it. +++ smr_ARG_WITHLIB([smr_name], [smr_libname], [smr_help_string]) +++ +++ if test ! x"$with_[]smr_safe_name" = xno; then +++ +++ # If we got this far, then the user didn't explicitly ask not to use +++ # the library. +++ +++ dnl If the caller of smr_CHECK_LIB specified a header file for this +++ dnl library, then give the user (via "configure --help") an +++ dnl interface to specify where this header file can be found (if it +++ dnl isn't found by the compiler by default). +++ ifelse(smr_header, , , [smr_ARG_WITHINCLUDES(smr_name, smr_header, smr_extra_flags)]) +++ +++ # We need only look for the library if the header has been found +++ # (or no header is needed). +++ if test [$]smr_have_[]smr_safe_name[]_header != no; then +++ +++ AC_CHECK_LIB(smr_libname, +++ smr_function, +++ smr_have_[]smr_safe_name[]_library=yes, +++ smr_have_[]smr_safe_name[]_library=no, +++ [$]smr_safe_name[]_CFLAGS [smr_extra_flags] [$]smr_safe_name[]_LIBS [smr_extra_libs], +++ [ifelse(smr_prototype, , , [[#]include ])], +++ smr_prototype) +++ fi +++ +++ if test x"[$]smr_have_[]smr_safe_name[]_library" = xyes; then +++ AC_MSG_RESULT([using smr_name library]) +++ else +++ smr_safe_name[]_LIBS= +++ smr_safe_name[]_CFLAGS= +++ +++ if test x"$with_[]smr_safe_name" = xmaybe; then +++ AC_MSG_RESULT([not using smr_name library]) +++ else +++ AC_MSG_WARN([requested smr_name library not found!]) +++ fi +++ fi +++ fi +++ +++ popdef([smr_name]) +++ popdef([smr_libname]) +++ popdef([smr_help_string]) +++ popdef([smr_function]) +++ popdef([smr_header]) +++ popdef([smr_extra_libs]) +++ popdef([smr_extra_flags]) +++ popdef([smr_prototype]) +++ popdef([smr_safe_name]) +++]) +--- xpdf-3.02.orig/debian/patches-obselete/05_gmem.dpatch ++++ xpdf-3.02/debian/patches-obselete/05_gmem.dpatch +@@ -0,0 +1,97 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 05_gmem.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Change all size parameters to size_t (why?) ++ ++@DPATCH@ ++diff -urNad --exclude=CVS --exclude=.svn ./goo/gmem.c /tmp/dpep-work.0qyf6L/xpdf-3.01/goo/gmem.c ++--- ./goo/gmem.c 2005-08-19 19:02:18.000000000 +1000 +++++ /tmp/dpep-work.0qyf6L/xpdf-3.01/goo/gmem.c 2005-08-19 19:05:34.000000000 +1000 ++@@ -54,9 +54,9 @@ ++ ++ #endif /* DEBUG_MEM */ ++ ++-void *gmalloc(int size) { +++void *gmalloc(size_t size) { ++ #ifdef DEBUG_MEM ++- int size1; +++ size_t size1; ++ char *mem; ++ GMemHdr *hdr; ++ void *data; ++@@ -96,11 +96,11 @@ ++ #endif ++ } ++ ++-void *grealloc(void *p, int size) { +++void *grealloc(void *p, size_t size) { ++ #ifdef DEBUG_MEM ++ GMemHdr *hdr; ++ void *q; ++- int oldSize; +++ size_t oldSize; ++ ++ if (size == 0) { ++ if (p) ++@@ -137,8 +137,8 @@ ++ #endif ++ } ++ ++-void *gmallocn(int nObjs, int objSize) { ++- int n; +++void *gmallocn(int nObjs, size_t objSize) { +++ size_t n; ++ ++ n = nObjs * objSize; ++ if (objSize == 0 || n / objSize != nObjs) { ++@@ -148,8 +148,8 @@ ++ return gmalloc(n); ++ } ++ ++-void *greallocn(void *p, int nObjs, int objSize) { ++- int n; +++void *greallocn(void *p, int nObjs, size_t objSize) { +++ size_t n; ++ ++ n = nObjs * objSize; ++ if (objSize == 0 || n / objSize != nObjs) { ++@@ -161,7 +161,7 @@ ++ ++ void gfree(void *p) { ++ #ifdef DEBUG_MEM ++- int size; +++ size_t size; ++ GMemHdr *hdr; ++ GMemHdr *prevHdr, *q; ++ int lst; ++diff -urNad --exclude=CVS --exclude=.svn ./goo/gmem.h /tmp/dpep-work.0qyf6L/xpdf-3.01/goo/gmem.h ++--- ./goo/gmem.h 2005-08-19 19:02:18.000000000 +1000 +++++ /tmp/dpep-work.0qyf6L/xpdf-3.01/goo/gmem.h 2005-08-19 19:04:24.000000000 +1000 ++@@ -19,13 +19,13 @@ ++ * Same as malloc, but prints error message and exits if malloc() ++ * returns NULL. ++ */ ++-extern void *gmalloc(int size); +++extern void *gmalloc(size_t size); ++ ++ /* ++ * Same as realloc, but prints error message and exits if realloc() ++ * returns NULL. If

is NULL, calls malloc instead of realloc(). ++ */ ++-extern void *grealloc(void *p, int size); +++extern void *grealloc(void *p, size_t size); ++ ++ /* ++ * These are similar to gmalloc and grealloc, but take an object count ++@@ -33,8 +33,8 @@ ++ * bytes, but there is an additional error check that the total size ++ * doesn't overflow an int. ++ */ ++-extern void *gmallocn(int nObjs, int objSize); ++-extern void *greallocn(void *p, int nObjs, int objSize); +++extern void *gmallocn(int nObjs, size_t objSize); +++extern void *greallocn(void *p, int nObjs, size_t objSize); ++ ++ /* ++ * Same as free, but checks for and ignores NULL pointers. +--- xpdf-3.02.orig/debian/patches-obselete/00list ++++ xpdf-3.02/debian/patches-obselete/00list +@@ -0,0 +1,10 @@ ++# Security fixes: ++04_freetype-glyph.dpatch ++05_gmem.dpatch ++06_splashpath.dpatch ++07_decrypt.dpatch ++08_core_action.dpatch ++23_security3.dpatch ++# Fix for full screen handling (bug#247602) ++31_fullscreen.patch ++32_vscroll.patch +--- xpdf-3.02.orig/debian/patches-obselete/31_fullscreen.dpatch ++++ xpdf-3.02/debian/patches-obselete/31_fullscreen.dpatch +@@ -0,0 +1,45 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 31_fullscreen.dpatch by Junichi Uekawa ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: NETWM support, rediff of 247602 by Eugeniy Meshcheryakov ++ ++@DPATCH@ ++diff -urNad xpdf-3.01~/xpdf/XPDFViewer.cc xpdf-3.01/xpdf/XPDFViewer.cc ++--- xpdf-3.01~/xpdf/XPDFViewer.cc 2006-07-12 23:58:06.000000000 +0900 +++++ xpdf-3.01/xpdf/XPDFViewer.cc 2006-07-12 23:59:42.000000000 +0900 ++@@ -1049,6 +1049,9 @@ ++ #endif ++ int depth; ++ Pixel fg, bg, arm; +++ Atom wmStateAtom; +++ Atom wmStateFullscreenAtom; +++ XClientMessageEvent event; ++ ++ // show the window ++ XtPopup(win, XtGrabNone); ++@@ -1240,6 +1243,24 @@ ++ about_height, ++ fg, arm, depth), ++ NULL); +++ if (app->getFullScreen()) { +++ XtUnmanageChild(toolBar); +++ wmStateAtom = XInternAtom(display, "_NET_WM_STATE", False); +++ wmStateFullscreenAtom = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", False); +++ event.type = ClientMessage; +++ event.serial = 0; +++ event.send_event = True; +++ event.window = XtWindow(win); +++ event.message_type = wmStateAtom; +++ event.format = 32; +++ event.data.l[0] = 1; /* _NET_WM_STATE_ADD */ +++ event.data.l[1] = wmStateFullscreenAtom; +++ event.data.l[2] = 0; +++ event.data.l[3] = 0; +++ event.data.l[4] = 0; +++ XSendEvent(display, RootWindow(display, screenNum), False, +++ SubstructureRedirectMask | SubstructureNotifyMask, (XEvent *)&event); +++ } ++ } ++ ++ void XPDFViewer::closeWindow() { +--- xpdf-3.02.orig/debian/patches-obselete/08_core_action.dpatch ++++ xpdf-3.02/debian/patches-obselete/08_core_action.dpatch +@@ -0,0 +1,20 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 08_core_action.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: No description. ++ ++@DPATCH@ ++diff -urNad --exclude=CVS --exclude=.svn ./xpdf/XPDFCore.cc /tmp/dpep-work.ujprcX/xpdf-3.01/xpdf/XPDFCore.cc ++--- ./xpdf/XPDFCore.cc 2005-08-19 18:27:53.000000000 +1000 +++++ /tmp/dpep-work.ujprcX/xpdf-3.01/xpdf/XPDFCore.cc 2005-08-19 18:52:50.000000000 +1000 ++@@ -452,6 +452,9 @@ ++ GString *msg; ++ int i; ++ +++ if (action == 0) +++ return; +++ ++ switch (kind = action->getKind()) { ++ ++ // GoTo / GoToR action +--- xpdf-3.02.orig/debian/patches-obselete/32_vscroll.dpatch ++++ xpdf-3.02/debian/patches-obselete/32_vscroll.dpatch +@@ -0,0 +1,98 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 32_vscroll.dpatch by Junichi Uekawa ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: remove scrollbar patch, updated from 247602 by Eugeniy Meshcheryakov ++ ++@DPATCH@ ++diff -urNad xpdf-3.01~/xpdf/XPDFCore.cc xpdf-3.01/xpdf/XPDFCore.cc ++--- xpdf-3.01~/xpdf/XPDFCore.cc 2006-07-13 00:06:46.000000000 +0900 +++++ xpdf-3.01/xpdf/XPDFCore.cc 2006-07-13 00:08:17.000000000 +0900 ++@@ -881,39 +881,40 @@ ++ XtSetArg(args[n], XmNvisualPolicy, XmVARIABLE); ++n; ++ scrolledWin = XmCreateScrolledWindow(parentWidget, "scroll", args, n); ++ XtManageChild(scrolledWin); ++- n = 0; ++- XtSetArg(args[n], XmNorientation, XmHORIZONTAL); ++n; ++- XtSetArg(args[n], XmNminimum, 0); ++n; ++- XtSetArg(args[n], XmNmaximum, 1); ++n; ++- XtSetArg(args[n], XmNsliderSize, 1); ++n; ++- XtSetArg(args[n], XmNvalue, 0); ++n; ++- XtSetArg(args[n], XmNincrement, 1); ++n; ++- XtSetArg(args[n], XmNpageIncrement, 1); ++n; ++- hScrollBar = XmCreateScrollBar(scrolledWin, "hScrollBar", args, n); ++- XtManageChild(hScrollBar); ++- XtAddCallback(hScrollBar, XmNvalueChangedCallback, ++- &hScrollChangeCbk, (XtPointer)this); +++ if (!fullScreen) { +++ n = 0; +++ XtSetArg(args[n], XmNorientation, XmHORIZONTAL); ++n; +++ XtSetArg(args[n], XmNminimum, 0); ++n; +++ XtSetArg(args[n], XmNmaximum, 1); ++n; +++ XtSetArg(args[n], XmNsliderSize, 1); ++n; +++ XtSetArg(args[n], XmNvalue, 0); ++n; +++ XtSetArg(args[n], XmNincrement, 1); ++n; +++ XtSetArg(args[n], XmNpageIncrement, 1); ++n; +++ hScrollBar = XmCreateScrollBar(scrolledWin, "hScrollBar", args, n); +++ XtManageChild(hScrollBar); +++ XtAddCallback(hScrollBar, XmNvalueChangedCallback, +++ &hScrollChangeCbk, (XtPointer)this); ++ #ifndef DISABLE_SMOOTH_SCROLL ++- XtAddCallback(hScrollBar, XmNdragCallback, ++- &hScrollDragCbk, (XtPointer)this); +++ XtAddCallback(hScrollBar, XmNdragCallback, +++ &hScrollDragCbk, (XtPointer)this); ++ #endif ++- n = 0; ++- XtSetArg(args[n], XmNorientation, XmVERTICAL); ++n; ++- XtSetArg(args[n], XmNminimum, 0); ++n; ++- XtSetArg(args[n], XmNmaximum, 1); ++n; ++- XtSetArg(args[n], XmNsliderSize, 1); ++n; ++- XtSetArg(args[n], XmNvalue, 0); ++n; ++- XtSetArg(args[n], XmNincrement, 1); ++n; ++- XtSetArg(args[n], XmNpageIncrement, 1); ++n; ++- vScrollBar = XmCreateScrollBar(scrolledWin, "vScrollBar", args, n); ++- XtManageChild(vScrollBar); ++- XtAddCallback(vScrollBar, XmNvalueChangedCallback, ++- &vScrollChangeCbk, (XtPointer)this); +++ n = 0; +++ XtSetArg(args[n], XmNorientation, XmVERTICAL); ++n; +++ XtSetArg(args[n], XmNminimum, 0); ++n; +++ XtSetArg(args[n], XmNmaximum, 1); ++n; +++ XtSetArg(args[n], XmNsliderSize, 1); ++n; +++ XtSetArg(args[n], XmNvalue, 0); ++n; +++ XtSetArg(args[n], XmNincrement, 1); ++n; +++ XtSetArg(args[n], XmNpageIncrement, 1); ++n; +++ vScrollBar = XmCreateScrollBar(scrolledWin, "vScrollBar", args, n); +++ XtManageChild(vScrollBar); +++ XtAddCallback(vScrollBar, XmNvalueChangedCallback, +++ &vScrollChangeCbk, (XtPointer)this); ++ #ifndef DISABLE_SMOOTH_SCROLL ++- XtAddCallback(vScrollBar, XmNdragCallback, ++- &vScrollDragCbk, (XtPointer)this); +++ XtAddCallback(vScrollBar, XmNdragCallback, +++ &vScrollDragCbk, (XtPointer)this); ++ #endif ++- +++ } ++ // create the drawing area ++ n = 0; ++ XtSetArg(args[n], XmNshadowType, XmSHADOW_IN); ++n; ++@@ -1459,7 +1460,7 @@ ++ XtSetArg(args[n], XmNsliderSize, drawAreaWidth); ++n; ++ XtSetArg(args[n], XmNincrement, 16); ++n; ++ XtSetArg(args[n], XmNpageIncrement, drawAreaWidth); ++n; ++- XtSetValues(hScrollBar, args, n); +++ if (hScrollBar) XtSetValues(hScrollBar, args, n); ++ ++ if (pages->getLength() > 0) { ++ if (continuousMode) { ++@@ -1479,7 +1480,7 @@ ++ XtSetArg(args[n], XmNsliderSize, drawAreaHeight); ++n; ++ XtSetArg(args[n], XmNincrement, 16); ++n; ++ XtSetArg(args[n], XmNpageIncrement, drawAreaHeight); ++n; ++- XtSetValues(vScrollBar, args, n); +++ if (vScrollBar) XtSetValues(vScrollBar, args, n); ++ } ++ ++ void XPDFCore::setCursor(Cursor cursor) { +--- xpdf-3.02.orig/debian/patches-obselete/23_security3.dpatch ++++ xpdf-3.02/debian/patches-obselete/23_security3.dpatch +@@ -0,0 +1,45 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 23_security3.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Red Hat-supplied patch for CAN-2006-0301 ++ ++@DPATCH@ ++diff -urNad xpdf-3.01~/splash/Splash.cc xpdf-3.01/splash/Splash.cc ++--- xpdf-3.01~/splash/Splash.cc 2006-02-01 20:41:14.000000000 +1100 +++++ xpdf-3.01/splash/Splash.cc 2006-02-01 20:41:41.000000000 +1100 ++@@ -931,6 +931,10 @@ ++ int alpha2, ialpha2; ++ Guchar t; ++ +++ if ( (unsigned) x >= (unsigned) bitmap->getWidth() || +++ (unsigned) y >= (unsigned) bitmap->getHeight()) +++ return; +++ ++ if (noClip || state->clip->test(x, y)) { ++ if (alpha != 1 || softMask || state->blendFunc) { ++ blendFunc = state->blendFunc ? state->blendFunc : &blendNormal; ++@@ -1198,6 +1202,11 @@ ++ updateModY(y); ++ } ++ +++ if ((unsigned) x0 >= (unsigned) bitmap->getWidth() || +++ (unsigned) x1 >= (unsigned) bitmap->getWidth() || +++ (unsigned) y >= (unsigned) bitmap->getHeight()) +++ return; +++ ++ if (alpha != 1 || softMask || state->blendFunc) { ++ blendFunc = state->blendFunc ? state->blendFunc : &blendNormal; ++ if (softMask) { ++@@ -1828,6 +1837,11 @@ ++ updateModY(y); ++ } ++ +++ if ((unsigned) x0 >= (unsigned) bitmap->getWidth() || +++ (unsigned) x1 >= (unsigned) bitmap->getWidth() || +++ (unsigned) y >= (unsigned) bitmap->getHeight()) +++ return; +++ ++ switch (bitmap->mode) { ++ case splashModeMono1: ++ p = &bitmap->data[y * bitmap->rowSize + (x0 >> 3)]; +--- xpdf-3.02.orig/debian/patches-obselete/06_splashpath.dpatch ++++ xpdf-3.02/debian/patches-obselete/06_splashpath.dpatch +@@ -0,0 +1,20 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 06_splashpath.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: No description. ++ ++@DPATCH@ ++diff -urNad --exclude=CVS --exclude=.svn ./splash/Splash.cc /tmp/dpep-work.Z6NPbI/xpdf-3.01/splash/Splash.cc ++--- ./splash/Splash.cc 2005-08-17 15:34:30.000000000 +1000 +++++ /tmp/dpep-work.Z6NPbI/xpdf-3.01/splash/Splash.cc 2005-08-19 18:36:11.000000000 +1000 ++@@ -820,6 +820,9 @@ ++ if (path->length == 0) { ++ return splashErrEmptyPath; ++ } +++ if (path->length == 1) { +++ return splashErrBogusPath; +++ } ++ xPath = new SplashXPath(path, state->flatness, gTrue); ++ xPath->sort(); ++ scanner = new SplashXPathScanner(xPath, eo); +--- xpdf-3.02.orig/debian/xpdfrc ++++ xpdf-3.02/debian/xpdfrc +@@ -0,0 +1,96 @@ ++#======================================================================== ++# ++# System-wide xpdfrc file ++# ++# The Xpdf tools look for a config file in two places: ++# 1. ~/.xpdfrc ++# 2. /etc/xpdf/xpdfrc ++# ++# Note that if ~/.xpdfrc exists, Xpdf will NOT read the system ++# configuration file /etc/xpdf/xpdfrc. You may wish to include it ++# from your ~/.xpdfrc using: ++# include /etc/xpdf/xpdfrc ++# and then add additional settings. ++# ++# For complete details on config file syntax and available options, ++# please see the xpdfrc(5) man page. ++# ++# http://www.foolabs.com/xpdf/ ++# ++#======================================================================== ++ ++#----- display fonts ++ ++# These map the Base-14 fonts to the Type 1 fonts that ship with ++# ghostscript (gsfonts package). ++ ++displayFontT1 Times-Roman /usr/share/fonts/type1/gsfonts/n021003l.pfb ++displayFontT1 Times-Italic /usr/share/fonts/type1/gsfonts/n021023l.pfb ++displayFontT1 Times-Bold /usr/share/fonts/type1/gsfonts/n021004l.pfb ++displayFontT1 Times-BoldItalic /usr/share/fonts/type1/gsfonts/n021024l.pfb ++displayFontT1 Helvetica /usr/share/fonts/type1/gsfonts/n019003l.pfb ++displayFontT1 Helvetica-Oblique /usr/share/fonts/type1/gsfonts/n019023l.pfb ++displayFontT1 Helvetica-Bold /usr/share/fonts/type1/gsfonts/n019004l.pfb ++displayFontT1 Helvetica-BoldOblique /usr/share/fonts/type1/gsfonts/n019024l.pfb ++displayFontT1 Courier /usr/share/fonts/type1/gsfonts/n022003l.pfb ++displayFontT1 Courier-Oblique /usr/share/fonts/type1/gsfonts/n022023l.pfb ++displayFontT1 Courier-Bold /usr/share/fonts/type1/gsfonts/n022004l.pfb ++displayFontT1 Courier-BoldOblique /usr/share/fonts/type1/gsfonts/n022024l.pfb ++displayFontT1 Symbol /usr/share/fonts/type1/gsfonts/s050000l.pfb ++displayFontT1 ZapfDingbats /usr/share/fonts/type1/gsfonts/d050000l.pfb ++ ++# If you need to display PDF files that refer to non-embedded fonts, ++# you should add one or more fontDir options to point to the ++# directories containing the font files. Xpdf will only look at .pfa, ++# .pfb, and .ttf files in those directories (other files will simply ++# be ignored). ++ ++#fontDir /usr/local/fonts/bakoma ++ ++#----- PostScript output control ++ ++# Set the default PostScript file or command. ++ ++psFile "|lpr" ++ ++# Set the default PostScript paper size -- this can be letter, legal, ++# A4, or A3. You can also specify a paper size as width and height ++# (in points). Xpdf uses the paper size in /etc/papersize by default. ++ ++#psPaperSize letter ++ ++#----- text output control ++ ++# Choose a text encoding for copy-and-paste and for pdftotext output. ++# The Latin1, ASCII7, and UTF-8 encodings are built into Xpdf. Other ++# encodings are available in the language support packages. ++ ++#textEncoding UTF-8 ++ ++# Choose the end-of-line convention for multi-line copy-and-past and ++# for pdftotext output. The available options are unix, mac, and dos. ++ ++#textEOL unix ++ ++#----- misc settings ++ ++# Enable Type 1 font rasterizing with t1lib. Default "yes". ++ ++#enableT1lib no ++ ++# Enable TrueType and Type 1 font rasterizing with FreeType. Default "yes". ++ ++#enableFreeType no ++ ++# Enable anti-aliasing of fonts. Default "yes". ++ ++#antialias no ++ ++# Set the command used to run a web browser when a URL hyperlink is ++# clicked. ++ ++urlCommand "sensible-browser '%s'" ++ ++# Include the language configuration file list generated by update-xpdfrc ++include /etc/xpdf/includes ++ +--- xpdf-3.02.orig/debian/xpdf-common.postinst ++++ xpdf-3.02/debian/xpdf-common.postinst +@@ -0,0 +1,20 @@ ++#!/bin/sh ++set -e ++ ++if [ "$1" = "configure" ]; then ++ /usr/sbin/update-xpdfrc ++fi ++ ++# Remove old /etc/xpdfrc if present ++rm -f /etc/xpdfrc ++ ++# Move accidental /etc/xpdf/xpdf-* language files ++# to their proper names (bug in 2.01-1) ++for i in cyrillic greek hebrew latin2 thai turkish; do ++ if [ -e /etc/xpdf/xpdf-$i ]; then ++ mv /etc/xpdf/xpdf-$i /etc/xpdf/xpdfrc-$i ++ fi ++done ++ ++#DEBHELPER# ++ +--- xpdf-3.02.orig/debian/control ++++ xpdf-3.02/debian/control +@@ -0,0 +1,75 @@ ++Source: xpdf ++Section: text ++Priority: optional ++Maintainer: Hamish Moffatt ++Standards-Version: 3.7.2 ++Build-Depends: libt1-dev (>= 5.0.2-3), libxext-dev, libxp-dev, libxt-dev, libxpm-dev, libx11-dev, lesstif2-dev | libmotif-dev, x-dev, debhelper (>= 4.2.21), libfreetype6-dev (>= 2.1.2-1), libpaper-dev | libpaperg-dev, pkg-config, dpatch, automake1.9, autoconf ++Build-Conflicts: libttf-dev, libstroke0-dev, autoconf2.13 ++ ++Package: xpdf ++Architecture: all ++Depends: xpdf-reader, xpdf-utils, xpdf-common ++Conflicts: xpdf-i (<= 0.90-8) ++Replaces: xpdf-i (<= 0.90-8) ++Description: Portable Document Format (PDF) suite ++ xpdf is a suite of tools for Portable Document Format (PDF) files. (These are ++ sometimes called 'Acrobat' files after the name of Adobe's PDF software.) ++ . ++ The tools include xpdf, a PDF viewer (in the package xpdf-reader), ++ and PDF converters (including to/from PostScript) (in the package ++ xpdf-utils). ++ . ++ This package is intended for compatibility with previous versions of ++ this package only. You can safely remove it from your system. ++ ++Package: xpdf-common ++Architecture: all ++Conflicts: xpdf (<= 0.93-6), xpdf-cyrillic, xpdf-greek, xpdf-hebrew, xpdf-latin2, xpdf-thai, xpdf-turkish ++Replaces: xpdf-cyrillic, xpdf-greek, xpdf-hebrew, xpdf-latin2, xpdf-thai, xpdf-turkish ++Suggests: xpdf-reader | xpdf-utils ++Recommends: gsfonts-x11 ++Description: Portable Document Format (PDF) suite -- common files ++ xpdf is a suite of tools for Portable Document Format (PDF) files. (These are ++ sometimes called 'Acrobat' files after the name of Adobe's PDF software.) ++ . ++ This package contains common files needed by the other xpdf packages. ++ ++Package: xpdf-reader ++Architecture: any ++Depends: ${shlibs:Depends}, gsfonts (>= 6.0-1), xpdf-common (>= ${source:Version}), xpdf-common (<< ${source:Version}.1~) ++Provides: pdf-viewer, postscript-preview ++Conflicts: xpdf-i (<= 0.90-8), xpdf (<= 0.93-6) ++Suggests: www-browser ++Description: Portable Document Format (PDF) suite -- viewer for X11 ++ xpdf is a suite of tools for Portable Document Format (PDF) files. (These are ++ sometimes called 'Acrobat' files after the name of Adobe's PDF software.) ++ . ++ This package contains xpdf itself, a PDF viewer for X11. ++ xpdf is designed to be small and efficient. xpdf supports encrypted ++ PDF files. Standard X fonts, Truetype fonts and Type 1 fonts are supported. ++ . ++ This package also contains pdftoppm, a utility for converting ++ PDF files to PBM, PGM and PPM formats. ++ . ++ See also the xpdf-utils package for conversion utilities and the ++ other xpdf-* packages for additional language support. ++ ++Package: xpdf-utils ++Architecture: any ++Depends: ${shlibs:Depends}, gsfonts (>= 6.0-1), xpdf-common (>= ${source:Version}), xpdf-common (<< ${source:Version}.1~) ++Provides: pdf-viewer, postscript-preview, poppler-utils ++Conflicts: xpdf-i (<= 0.90-8), xpdf (<= 0.93-6), poppler-utils ++Replaces: poppler-utils ++Suggests: pdftk ++Description: Portable Document Format (PDF) suite -- utilities ++ xpdf is a suite of tools for Portable Document Format (PDF) files. (These are ++ sometimes called 'Acrobat' files after the name of Adobe's PDF software.) ++ . ++ This package contains pdftops (PDF to PostScript converter), ++ pdfinfo (PDF document information extractor), pdfimages ++ (PDF image extractor), pdftotext (PDF to text converter), and ++ pdffonts (PDF font analyzer). ++ . ++ To view PDF files, see the xpdf-reader package. That package ++ also contains pdftoppm (PDF to Portable Bitmap converter). ++ +--- xpdf-3.02.orig/debian/xpdf-reader.mime ++++ xpdf-3.02/debian/xpdf-reader.mime +@@ -0,0 +1,2 @@ ++application/pdf; /usr/bin/xpdf %s; test=test "$DISPLAY" != ""; description=Portable Document Format; nametemplate=%s.pdf; priority=6 ++application/x-pdf; /usr/bin/xpdf %s; test=test "$DISPLAY" != ""; description=Portable Document Format; nametemplate=%s.pdf; priority=6 +--- xpdf-3.02.orig/debian/xpdf-common.dirs ++++ xpdf-3.02/debian/xpdf-common.dirs +@@ -0,0 +1,7 @@ ++usr/share/doc/xpdf-common ++usr/share/doc/xpdf-common/examples ++usr/share/man/man5 ++usr/share/man/man8 ++usr/share/xpdf ++usr/sbin ++etc/xpdf +--- xpdf-3.02.orig/debian/update-xpdfrc ++++ xpdf-3.02/debian/update-xpdfrc +@@ -0,0 +1,22 @@ ++#!/bin/sh ++set -e ++ ++TARGET=/etc/xpdf/includes ++ ++# Generate /etc/xpdf/includes from /etc/xpdf/* ++# This allows the xpdf-* language add-on packages ++# to supply configuration file snippets. ++ ++echo \# DO NOT EDIT THIS FILE DIRECTLY. >> $TARGET ++echo \# This file was automatically generated by /usr/sbin/update-xpdfrc. > $TARGET ++echo \# Instead, add or remove files in /etc/xpdf/ then run >> $TARGET ++echo \# /usr/sbin/update-xpdfrc to regenerate this file. >> $TARGET ++echo >> $TARGET ++ ++find /etc/xpdf \ ++ -name xpdfrc-\* \ ++ -and -not -name \*.dpkg\* \ ++ -and -not -name \*~ \ ++ -and -not -name \*,v \ ++ -printf "include %p\n" >> $TARGET ++ +--- xpdf-3.02.orig/debian/xpdf-reader.files ++++ xpdf-3.02/debian/xpdf-reader.files +@@ -0,0 +1,4 @@ ++usr/share/man/man1/pdftoppm.1 ++usr/share/man/man1/xpdf.1 ++usr/bin/xpdf ++usr/bin/pdftoppm +--- xpdf-3.02.orig/debian/update-xpdfrc.8 ++++ xpdf-3.02/debian/update-xpdfrc.8 +@@ -0,0 +1,46 @@ ++.\" Please adjust this date whenever revising the manpage. ++.\" ++.\" Some roff macros, for reference: ++.\" .nh disable hyphenation ++.\" .hy enable hyphenation ++.\" .ad l left justify ++.\" .ad b justify to both left and right margins ++.\" .nf disable filling ++.\" .fi enable filling ++.\" .br insert line break ++.\" .sp insert n+1 empty lines ++.\" for manpage-specific macros, see man(7) ++.TH "update-xpdfrc" "8" "October 22, 2002" "Hamish Moffatt" ++.SH "NAME" ++update\-xpdfrc \- program to generate xpdf's configuration file ++.SH "SYNOPSIS" ++.B update\-xdfrc ++.SH "DESCRIPTION" ++.B \fBupdate\-xpdfrc\fR ++is a program used to generate part of the \fIxpdfrc(5)\fR file used ++by xpdf. The generated configuration file contains a list of the ++configuration snippets provided by the xpdf-* language packages. ++ ++You may edit the file \fI/etc/xpdfrc\fR to configure xpdf. ++However, do not edit the generated file \fI/etc/xpdf/includes\fR. ++It is updated whenever a language package is added or removed. ++You must include the file /etc/xpdf/includes in your xpdfrc ++to make use of this functionality. ++ ++The language support packages (xpdf-japanese etc) provide additional ++configuration files such as \fI/etc/xpdf/xpdfrc-japanese\fR, which will be ++listed in the generated \fI/etc/xpdf/includes\fR. ++ ++.SH "FILES" ++.nf ++.ta \w'/etc/xpdf/xpdfrc\-* 'u ++/etc/xpdf/xpdfrc main configuration file ++.br ++/etc/xpdf/xpdf\-* additional configuration files ++.SH "SEE ALSO" ++.BR xpdfrc (5), ++.BR xpdf (1). ++.SH "AUTHOR" ++This manual page and the update-xpdfrc utility was written by Hamish Moffatt ++for the Debian GNU/Linux system (but may be used by others). ++.\" vim:syn=nroff +--- xpdf-3.02.orig/debian/xpdf.postinst ++++ xpdf-3.02/debian/xpdf.postinst +@@ -0,0 +1,18 @@ ++#!/bin/sh ++set -e ++ ++# Attempt to remove the /usr/share/doc/xpdf directory. ++# If it exists. dpkg won't replace it with the symbolic ++# link. ++ ++if [ "$1" = "configure" ]; then ++ ++ if [ -d /usr/share/doc/xpdf ]; then ++ rm -rf /usr/share/doc/xpdf ++ ln -sf xpdf-common /usr/share/doc/xpdf ++ fi ++ ++fi ++ ++#DEBHELPER# ++ +--- xpdf-3.02.orig/debian/xpdf-utils.dirs ++++ xpdf-3.02/debian/xpdf-utils.dirs +@@ -0,0 +1,3 @@ ++usr/share/doc ++usr/share/man/man1 ++usr/bin +--- xpdf-3.02.orig/debian/compat ++++ xpdf-3.02/debian/compat +@@ -0,0 +1 @@ ++4 +--- xpdf-3.02.orig/debian/lang/etc/xpdf/xpdfrc-cyrillic ++++ xpdf-3.02/debian/lang/etc/xpdf/xpdfrc-cyrillic +@@ -0,0 +1,4 @@ ++#----- begin Cyrillic support package (2003-jun-28) ++nameToUnicode /usr/share/xpdf/cyrillic/Bulgarian.nameToUnicode ++unicodeMap KOI8-R /usr/share/xpdf/cyrillic/KOI8-R.unicodeMap ++#----- end Cyrillic support package +--- xpdf-3.02.orig/debian/lang/etc/xpdf/xpdfrc-hebrew ++++ xpdf-3.02/debian/lang/etc/xpdf/xpdfrc-hebrew +@@ -0,0 +1,4 @@ ++#----- begin Hebrew support package (2003-feb-16) ++unicodeMap ISO-8859-8 /usr/share/xpdf/hebrew/ISO-8859-8.unicodeMap ++unicodeMap Windows-1255 /usr/share/xpdf/hebrew/Windows-1255.unicodeMap ++#----- end Hebrew support package +--- xpdf-3.02.orig/debian/lang/etc/xpdf/xpdfrc-latin2 ++++ xpdf-3.02/debian/lang/etc/xpdf/xpdfrc-latin2 +@@ -0,0 +1,3 @@ ++#----- begin Latin2 support package (2002-oct-22) ++unicodeMap Latin2 /usr/share/xpdf/latin2/Latin2.unicodeMap ++#----- end Latin2 support package +--- xpdf-3.02.orig/debian/lang/etc/xpdf/xpdfrc-turkish ++++ xpdf-3.02/debian/lang/etc/xpdf/xpdfrc-turkish +@@ -0,0 +1,3 @@ ++#----- begin Turkish support package (2002-apr-10) ++unicodeMap ISO-8859-9 /usr/share/xpdf/turkish/ISO-8859-9.unicodeMap ++#----- end Turkish support package +--- xpdf-3.02.orig/debian/lang/etc/xpdf/xpdfrc-greek ++++ xpdf-3.02/debian/lang/etc/xpdf/xpdfrc-greek +@@ -0,0 +1,4 @@ ++#----- begin Greek support package (2002-feb-13) ++nameToUnicode /usr/share/xpdf/greek/Greek.nameToUnicode ++unicodeMap ISO-8859-7 /usr/share/xpdf/greek/ISO-8859-7.unicodeMap ++#----- end Greek support package +--- xpdf-3.02.orig/debian/lang/etc/xpdf/xpdfrc-arabic ++++ xpdf-3.02/debian/lang/etc/xpdf/xpdfrc-arabic +@@ -0,0 +1,3 @@ ++#----- begin Arabic support package (2003-feb-16) ++unicodeMap ISO-8859-6 /usr/share/xpdf/arabic/ISO-8859-6.unicodeMap ++#----- end Arabic support package +--- xpdf-3.02.orig/debian/lang/etc/xpdf/xpdfrc-thai ++++ xpdf-3.02/debian/lang/etc/xpdf/xpdfrc-thai +@@ -0,0 +1,4 @@ ++#----- begin Thai support package (2002-jan-16) ++nameToUnicode /usr/share/xpdf/thai/Thai.nameToUnicode ++unicodeMap TIS-620 /usr/share/xpdf/thai/TIS-620.unicodeMap ++#----- end Thai support package +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/hebrew/Windows-1255.unicodeMap ++++ xpdf-3.02/debian/lang/usr/share/xpdf/hebrew/Windows-1255.unicodeMap +@@ -0,0 +1,66 @@ ++000a 000a 0a ++000c 000d 0c ++0020 007e 20 ++00a0 00a3 a0 ++00a5 00a9 a5 ++00ab 00b9 ab ++00bb 00bf bb ++00d7 aa ++00f7 ba ++010c 43 ++010d 63 ++0131 69 ++0141 4c ++0142 6c ++0152 4f45 ++0153 6f65 ++0160 53 ++0161 73 ++0178 59 ++017d 5a ++017e 7a ++0192 83 ++02c6 88 ++02da b0 ++02dc 98 ++05b0 05b9 c0 ++05bb 05c3 cb ++05f0 05f4 d4 ++05d0 05ea e0 ++200e 200f fd ++2013 2014 96 ++2018 2019 91 ++201a 82 ++201c 201d 93 ++201e 84 ++2020 86 ++2021 87 ++2022 95 ++2026 85 ++2030 89 ++2039 8b ++203a 9b ++2044 2f ++20aa a4 ++20ac 80 ++2122 99 ++2212 2d ++f6f9 4c ++f6fa 4f45 ++f6fc b0 ++f6fd 53 ++f6fe 7e ++f6ff 5a ++f721 21 ++f724 24 ++f726 26 ++f730 f739 30 ++f73f 3f ++f761 f77a 41 ++f7a1 f7a2 a1 ++f7bf bf ++fb00 6666 ++fb01 6669 ++fb02 666c ++fb03 666669 ++fb04 66666c +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/hebrew/ISO-8859-8.unicodeMap ++++ xpdf-3.02/debian/lang/usr/share/xpdf/hebrew/ISO-8859-8.unicodeMap +@@ -0,0 +1,63 @@ ++000a 000a 0a ++000c 000d 0c ++0020 007e 20 ++00a0 00a0 20 ++00a2 00a9 a2 ++00ab 00b9 ab ++00bb 00be bb ++010c 43 ++010d 63 ++0131 69 ++0141 4c ++0142 6c ++0152 4f45 ++0153 6f65 ++0160 53 ++0161 73 ++0178 59 ++017d 5a ++017e 7a ++02c6 5e ++02da b0 ++02dc 7e ++05d0 05ea e0 ++05f0 e5e5 ++05f1 e5e9 ++05f2 e9e9 ++2013 ad ++2014 2d2d ++2018 60 ++2019 27 ++201a 2c ++201c 22 ++201d 22 ++201e 2c2c ++2022 b7 ++2026 2e2e2e ++2039 3c ++203a 3e ++2044 2f ++2122 544d ++2212 2d ++f6f9 4c ++f6fa 4f45 ++f6fc b0 ++f6fd 53 ++f6fe 7e ++f6ff 5a ++f721 21 ++f724 24 ++f726 26 ++f730 f739 30 ++f73f 3f ++f761 f77a 41 ++f7a1 f7a2 a1 ++f7bf bf ++f7e0 f7f6 c0 ++f7f8 f7fe d8 ++f7ff 59 ++fb00 6666 ++fb01 6669 ++fb02 666c ++fb03 666669 ++fb04 66666c +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/arabic/ISO-8859-6.unicodeMap ++++ xpdf-3.02/debian/lang/usr/share/xpdf/arabic/ISO-8859-6.unicodeMap +@@ -0,0 +1,40 @@ ++000a 000a 0a ++000c 000d 0c ++0020 007e 20 ++00a0 00a0 20 ++00a4 a4 ++00ad ad ++02c6 5e ++02dc 7e ++060c 060c ac ++061b 061b bb ++061f 061f bf ++0621 063a c1 ++0640 0652 e0 ++2013 2013 ad ++2014 2014 2d2d ++2018 2018 60 ++2019 2019 27 ++201a 201a 2c ++201c 201c 22 ++201d 201d 22 ++201e 201e 2c2c ++2026 2026 2e2e2e ++2039 2039 3c ++203a 203a 3e ++2044 2044 2f ++2122 2122 544d ++2212 2212 2d ++f6f9 f6f9 4c ++f6fe f6fe 7e ++f721 f721 21 ++f724 f724 24 ++f726 f726 26 ++f730 f739 30 ++f73f f73f 3f ++f761 f77a 41 ++fb00 fb00 6666 ++fb01 fb01 6669 ++fb02 fb02 666c ++fb03 fb03 666669 ++fb04 fb04 66666c +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/thai/Thai.nameToUnicode ++++ xpdf-3.02/debian/lang/usr/share/xpdf/thai/Thai.nameToUnicode +@@ -0,0 +1,116 @@ ++0e01 ThaiCharacterKoKai ++0e02 ThaiCharacterKhoKhai ++0e03 ThaiCharacterKhoKhuat ++0e04 ThaiCharacterKhoKhwai ++0e05 ThaiCharacterKhoKhon ++0e06 ThaiCharacterKhoRakhang ++0e07 ThaiCharacterNgoNgu ++0e08 ThaiCharacterChoChan ++0e09 ThaiCharacterChoChing ++0e0a ThaiCharacterChoChang ++0e0b ThaiCharacterSoSo ++0e0c ThaiCharacterChoChoe ++0e0d ThaiCharacterYoYing ++0e0e ThaiCharacterDoChada ++0e0f ThaiCharacterToPatak ++0e10 ThaiCharacterThoThan ++0e11 ThaiCharacterThoNangmontho ++0e12 ThaiCharacterThoPhuthao ++0e13 ThaiCharacterNoNen ++0e14 ThaiCharacterDoDek ++0e15 ThaiCharacterToTao ++0e16 ThaiCharacterThoThung ++0e17 ThaiCharacterThoThahan ++0e18 ThaiCharacterThoThong ++0e19 ThaiCharacterNoNu ++0e1a ThaiCharacterBoBaimai ++0e1b ThaiCharacterPoPla ++0e1c ThaiCharacterPhoPhung ++0e1d ThaiCharacterFoFa ++0e1e ThaiCharacterPhoPhan ++0e1f ThaiCharacterFoFan ++0e20 ThaiCharacterPhoSamphao ++0e21 ThaiCharacterMoMa ++0e22 ThaiCharacterYoYak ++0e23 ThaiCharacterRoRua ++0e24 ThaiCharacterRu ++0e25 ThaiCharacterLoLing ++0e26 ThaiCharacterLu ++0e27 ThaiCharacterWoWaen ++0e28 ThaiCharacterSoSala ++0e29 ThaiCharacterSoRusi ++0e2a ThaiCharacterSoSua ++0e2b ThaiCharacterHoHip ++0e2c ThaiCharacterLoChula ++0e2d ThaiCharacterOAng ++0e2e ThaiCharacterHoNokhuk ++0e2f ThaiCharacterPaiyannoi ++0e30 ThaiCharacterSaraA ++0e31 ThaiCharacterMaiHan-akat ++0e32 ThaiCharacterSaraAa ++0e33 ThaiCharacterSaraAm ++0e34 ThaiCharacterSaraI ++0e35 ThaiCharacterSaraIi ++0e36 ThaiCharacterSaraUe ++0e37 ThaiCharacterSaraUee ++0e38 ThaiCharacterSaraU ++0e39 ThaiCharacterSaraUu ++0e3a ThaiCharacterPhinthu ++0e3f ThaiCurrencySymbolBaht ++0e40 ThaiCharacterSaraE ++0e41 ThaiCharacterSaraAe ++0e42 ThaiCharacterSaraO ++0e43 ThaiCharacterSaraAiMaimuan ++0e44 ThaiCharacterSaraAiMaimalai ++0e45 ThaiCharacterLakkhangyao ++0e46 ThaiCharacterMaiyamok ++0e47 ThaiCharacterMaitaikhu ++0e48 ThaiCharacterMaiEk ++0e49 ThaiCharacterMaiTho ++0e4a ThaiCharacterMaiTri ++0e4b ThaiCharacterMaiChattawa ++0e4c ThaiCharacterThanthakhat ++0e4d ThaiCharacterNikhahit ++0e4e ThaiCharacterYamakkan ++0e4f ThaiCharacterFongman ++0e50 ThaiDigitZero ++0e51 ThaiDigitOne ++0e52 ThaiDigitTwo ++0e53 ThaiDigitThree ++0e54 ThaiDigitFour ++0e55 ThaiDigitFive ++0e56 ThaiDigitSix ++0e57 ThaiDigitSeven ++0e58 ThaiDigitEight ++0e59 ThaiDigitNine ++0e5a ThaiCharacterAngkhankhu ++0e5b ThaiCharacterKhomut ++0e4c ThaiCharacterThanthakhatLowLeft ++0e49 ThaiCharacterMaiThoLeft ++0e38 ThaiCharacterSaraULow ++0e31 ThaiCharacterMaiHanAkat ++0e4b ThaiCharacterMaiChattawaLeft ++0e37 ThaiCharacterSaraUeeLeft ++0e4a ThaiCharacterMaiTriLeft ++0e3a ThaiCharacterPhinthuLow ++0e48 ThaiCharacterMaiEkLeft ++0e49 ThaiCharacterMaiThoLow ++0e0d ThaiCharacterYoYingDescless ++0e4b ThaiCharacterMaiChattawaLow ++0e4a ThaiCharacterMaiTriLow ++0e48 ThaiCharacterMaiEkLow ++0e31 ThaiCharacterMaiHanAkatLeft ++0e4c ThaiCharacterThanthakhatLeft ++0e34 ThaiCharacterSaraILeft ++0e4d ThaiCharacterNikhahitLeft ++0e3f ThaiCharacterBaht ++0e49 ThaiCharacterMaiThoLowLeft ++0e4b ThaiCharacterMaiChattawaLowLeft ++0e4c ThaiCharacterThanthakhatLow ++0e39 ThaiCharacterSaraUuLow ++0e4a ThaiCharacterMaiTriLowLeft ++0e35 ThaiCharacterSaraIiLeft ++0e48 ThaiCharacterMaiEkLowLeft ++0e47 ThaiCharacterMaitaikhuLeft ++0e10 ThaiCharacterThoThanDescless ++0e36 ThaiCharacterSaraUeLeft +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/thai/TIS-620.unicodeMap ++++ xpdf-3.02/debian/lang/usr/share/xpdf/thai/TIS-620.unicodeMap +@@ -0,0 +1,47 @@ ++000a 0a ++000c 000d 0c ++0020 007e 20 ++00a0 20 ++0131 69 ++0141 4c ++0142 6c ++0152 4f45 ++0153 6f65 ++0160 53 ++0161 73 ++0178 59 ++017d 5a ++017e 7a ++02c6 5e ++02dc 7e ++0e01 0e3a a1 ++0e3f 0e5b df ++2013 2d2d ++2014 2d2d ++2018 60 ++2019 27 ++201a 2c ++201c 22 ++201d 22 ++201e 2c2c ++2022 2a ++2026 2e2e2e ++2039 3c ++203a 3e ++2044 2f ++2122 544d ++2212 2d ++f700 b0 ++f701 f704 d4 ++f705 f709 e8 ++f70a f70e e8 ++f70f ad ++f710 d1 ++f711 ed ++f712 f717 e7 ++f718 f71a d8 ++fb00 6666 ++fb01 6669 ++fb02 666c ++fb03 666669 ++fb04 66666c +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/greek/ISO-8859-7.unicodeMap ++++ xpdf-3.02/debian/lang/usr/share/xpdf/greek/ISO-8859-7.unicodeMap +@@ -0,0 +1,63 @@ ++000a 0a ++000c 000d 0c ++0020 007e 20 ++00a0 a0 ++00a3 a3 ++00a6 00a9 a6 ++00ab 00ad ab ++00b0 00b4 b0 ++00b5 ec ++00b7 b7 ++00bb bb ++00bd bd ++02c6 5e ++02da b0 ++02dc 7e ++0374 b4 ++037e 3b ++0384 038a b4 ++038c bc ++038e 03a1 be ++03a3 03ce d3 ++03d0 e2 ++03d1 e8 ++03d2 d5 ++03d3 be ++03d4 db ++03d5 f6 ++03d6 f0 ++03d7 eae1e9 ++03da d3d4 ++03db f3f4 ++03f0 ea ++03f1 f1 ++03f2 63 ++03f3 6a ++03f4 c8 ++03f5 e5 ++2013 ad ++2014 af ++2018 60 ++2019 a2 ++201a 2c ++201b a1 ++201c 22 ++201d 22 ++201e 2c2c ++2022 b7 ++2026 2e2e2e ++2039 3c ++203a 3e ++2044 2f ++20ac c5f5f1fe ++20af c4f1f7 ++2122 544d ++2126 d9 ++2206 c4 ++2212 2d ++2219 b7 ++fb00 6666 ++fb01 6669 ++fb02 666c ++fb03 666669 ++fb04 66666c +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/greek/Greek.nameToUnicode ++++ xpdf-3.02/debian/lang/usr/share/xpdf/greek/Greek.nameToUnicode +@@ -0,0 +1,11 @@ ++0396 Dzeta ++039e Ksi ++039f Omikron ++03a7 Khi ++03b2 betatwo ++03b6 dzeta ++03be ksi ++03bf omikron ++03c3 sigmafinal ++03c6 phitwo ++03c7 khi +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/cyrillic/KOI8-R.unicodeMap ++++ xpdf-3.02/debian/lang/usr/share/xpdf/cyrillic/KOI8-R.unicodeMap +@@ -0,0 +1,100 @@ ++000a 0a ++000c 000d 0c ++0020 007e 20 ++00a0 9a ++00a9 bf ++00b0 9c ++00b2 9d ++00b7 9e ++00f7 9f ++02c6 5e ++02da 9c ++02dc 7e ++0401 b3 ++0410 0411 e1 ++0412 f7 ++0413 e7 ++0414 0415 e4 ++0416 f6 ++0417 fa ++0418 041f e9 ++0420 0423 f2 ++0424 e6 ++0425 e8 ++0426 e3 ++0427 fe ++0428 fb ++0429 fd ++042a ff ++042b f9 ++042c f8 ++042d fc ++042e e0 ++042f f1 ++0430 0431 c1 ++0432 d7 ++0433 c7 ++0434 0435 c4 ++0436 d6 ++0437 da ++0438 c9 ++0439 043f ca ++0440 0443 d2 ++0444 c6 ++0445 c8 ++0446 c3 ++0447 de ++0448 db ++0449 dd ++044a df ++044b d9 ++044c d8 ++044d dc ++044e c0 ++044f d1 ++0451 a3 ++2013 2d ++2014 2d2d ++2018 60 ++2019 27 ++201a 2c ++201c 22 ++201d 22 ++201e 2c2c ++2022 9e ++2026 2e2e2e ++2039 3c ++203a 3e ++2044 2f ++2122 544d ++2212 2d ++2219 221a 95 ++2248 97 ++2264 2265 98 ++2320 93 ++2321 9b ++2500 80 ++2502 81 ++250c 82 ++2510 83 ++2514 84 ++2518 85 ++251c 86 ++2524 87 ++252c 88 ++2534 89 ++253c 8a ++2550 2552 a0 ++2553 2561 a4 ++2562 256c b4 ++2580 8b ++2584 8c ++2588 8d ++258c 8e ++2590 2593 8f ++25a0 94 ++fb00 6666 ++fb01 6669 ++fb02 666c ++fb03 666669 ++fb04 66666c +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/cyrillic/Bulgarian.nameToUnicode ++++ xpdf-3.02/debian/lang/usr/share/xpdf/cyrillic/Bulgarian.nameToUnicode +@@ -0,0 +1,58 @@ ++0410 As ++0411 Buki ++0412 Wjedi ++0413 Glagol ++0414 Dobro ++0415 Jest ++0416 Schiwete ++0417 Selmja ++0418 Ische ++0419 Ischebreve ++041a Kako ++041b Ljudi ++041c Muislete ++041d Nasche ++041e On ++041f Pakoj ++0420 Rzui ++0421 Slovo ++0422 Twerdo ++0423 Uk ++0424 Fert ++0425 Cherr ++0426 Zui ++0427 Tscherw ++0428 Scha ++0429 Schtscha ++042a Jerr ++042e Ju ++042f Ja ++0430 as ++0431 buki ++0432 wjedi ++0433 glagol ++0434 dobro ++0435 jest ++0436 schiwete ++0437 selmja ++0438 ische ++0439 ischebreve ++043a kako ++043b ljudi ++043c muislete ++043d nasche ++043e on ++043f pakoj ++0440 rzui ++0441 slovo ++0442 twerdo ++0443 uk ++0444 fert ++0445 cherr ++0446 zui ++0447 tscherw ++0448 scha ++0449 schtscha ++044a jerr ++044e ju ++044f ja +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/latin2/Latin2.unicodeMap ++++ xpdf-3.02/debian/lang/usr/share/xpdf/latin2/Latin2.unicodeMap +@@ -0,0 +1,134 @@ ++000a 000a 0a ++000c 000d 0c ++0020 007e 20 ++00a0 00a0 20 ++00a4 a4 ++00a7 00a8 a7 ++00ad ad ++00b0 b0 ++00b4 b4 ++00b8 b8 ++00c1 00c2 c1 ++00c4 c4 ++00c7 c7 ++00c9 c9 ++00cb cb ++00cd 00ce cd ++00d3 00d4 d3 ++00d6 00d7 d6 ++00da da ++00dc 00dd dc ++00df df ++00e1 00e2 e1 ++00e4 e4 ++00e7 e7 ++00e9 e9 ++00eb eb ++00ed 00ee ed ++00f3 00f4 f3 ++00f6 00f7 f6 ++00fa fa ++00fc 00fd fc ++0102 c3 ++0103 e3 ++0104 a1 ++0105 b1 ++0106 c6 ++0107 e6 ++010c c8 ++010d e8 ++010e cf ++010f ef ++0110 d0 ++0111 f0 ++0118 ca ++0119 ea ++011a cc ++011b ec ++0131 69 ++0132 494a ++0133 696a ++0139 c5 ++013a e5 ++013d a5 ++013e b5 ++0141 a3 ++0142 b3 ++0143 d1 ++0144 f1 ++0147 d2 ++0148 f2 ++0150 d5 ++0151 f5 ++0152 4f45 ++0153 6f65 ++0154 c0 ++0155 e0 ++0158 d8 ++0159 f8 ++015a a6 ++015b b6 ++015e aa ++015f ba ++0160 a9 ++0161 b9 ++0162 de ++0163 fe ++0164 ab ++0165 bb ++016e d9 ++016f f9 ++0170 db ++0171 fb ++0178 59 ++0179 ac ++017a bc ++017b af ++017c bf ++017d ae ++017e be ++02c6 5e ++02c7 b7 ++02d8 a2 ++02d9 ff ++02da b0 ++02db b2 ++02dc 7e ++02dd bd ++2013 2013 ad ++2014 2014 2d2d ++2018 2018 60 ++2019 2019 27 ++201a 201a 2c ++201c 201c 22 ++201d 201d 22 ++201e 201e 2c2c ++2022 2022 b7 ++2026 2026 2e2e2e ++2039 2039 3c ++203a 203a 3e ++2044 2044 2f ++2122 2122 544d ++2212 2212 2d ++f6f9 f6f9 4c ++f6fa f6fa 4f45 ++f6fc f6fc b0 ++f6fd f6fd 53 ++f6fe f6fe 7e ++f6ff f6ff 5a ++f721 f721 21 ++f724 f724 24 ++f726 f726 26 ++f730 f739 30 ++f73f f73f 3f ++f761 f77a 41 ++f7a1 f7a2 a1 ++f7bf f7bf bf ++f7e0 f7f6 c0 ++f7f8 f7fe d8 ++f7ff f7ff 59 ++fb00 fb00 6666 ++fb01 fb01 6669 ++fb02 fb02 666c ++fb03 fb03 666669 ++fb04 fb04 66666c +--- xpdf-3.02.orig/debian/lang/usr/share/xpdf/turkish/ISO-8859-9.unicodeMap ++++ xpdf-3.02/debian/lang/usr/share/xpdf/turkish/ISO-8859-9.unicodeMap +@@ -0,0 +1,67 @@ ++000a 0a ++000c 000d 0c ++0020 007e 20 ++00a0 20 ++00a1 00ac a1 ++00ae 00cf ae ++00d1 00dc d1 ++00df 00ef df ++00f1 00fc f1 ++00ff ff ++010c 43 ++010d 63 ++011e d0 ++011f f0 ++0130 dd ++0131 fd ++0141 4c ++0142 6c ++0152 4f45 ++0153 6f65 ++015e de ++015f fe ++0160 53 ++0161 73 ++0178 59 ++017d 5a ++017e 7a ++02c6 5e ++02da b0 ++02dc 7e ++2013 ad ++2014 2d2d ++2018 60 ++2019 27 ++201a 2c ++201c 22 ++201d 22 ++201e 2c2c ++2022 b7 ++2026 2e2e2e ++2039 3c ++203a 3e ++2044 2f ++2122 544d ++2212 2d ++f6f9 4c ++f6fa 4f45 ++f6fc b0 ++f6fd 53 ++f6fe 7e ++f6ff 5a ++f721 21 ++f724 24 ++f726 26 ++f730 f739 30 ++f73f 3f ++f761 f77a 41 ++f7a1 f7a2 a1 ++f7bf bf ++f7e0 f7f6 c0 ++f7f8 f7fe d8 ++f7ff 59 ++fb00 6666 ++fb01 6669 ++fb02 666c ++fb03 666669 ++fb04 66666c +--- xpdf-3.02.orig/debian/changelog ++++ xpdf-3.02/debian/changelog +@@ -0,0 +1,801 @@ ++xpdf (3.02-1.3) unstable; urgency=high ++ ++ * Non-maintainer upload by testing security team. ++ * Included fix-CVE-2007-5393_2007-5392_2007-4352.dpatch to address the ++ following security issues (Closes: #450629) ++ - CVE-2007-5393 buffer overflow in the CCITTFaxStream::lookChar leading ++ to arbitrary code execution via a crafted pdf file. ++ - CVE-2007-5392 integer overflow in the DCTStream::reset resulting in a ++ heap based buffer overflow allows code execution. ++ - CVE-2007-4352 array index error in DCTStream::readProgressiveDataUnit ++ leads to memory corruption and possibly arbitrary code execution. ++ ++ -- Nico Golde Fri, 09 Nov 2007 09:22:19 +0100 ++ ++xpdf (3.02-1.2) unstable; urgency=high ++ ++ * Non-maintainer upload by testing security team. ++ * Removed post-3.5.7-kdegraphics-CVE-2007-3387.diff.dpatch and ++ created fix-CVE-2007-3387_CVE-2007-5049.dpatch to have a fix ++ for CVE-2007-3387 and a buffer overflow in GetNextLine() ++ (CVE-2007-5049) since they are related (Closes: #443906). ++ ++ -- Nico Golde Thu, 27 Sep 2007 12:05:46 +0200 ++ ++xpdf (3.02-1.1) unstable; urgency=high ++ ++ * Non-maintainer upload with permission of the maintainer ++ * Fix integer overflow in the StreamPredictor::StreamPredictor ++ function by adding post-3.5.7-kdegraphics-CVE-2007-3387.diff.dpatch ++ (Closes: #435462) Fixes: CVE-2007-3387 ++ ++ -- Steffen Joeris Tue, 07 Aug 2007 14:00:34 +1000 ++ ++xpdf (3.02-1) unstable; urgency=low ++ ++ * New upstream release (closes: #413611) ++ * Adds PDF 1.6 and 1.7 support (closes: #320509, #329372) ++ * Fixes segfault on Postscript conversion (in xpdf or pdftops) ++ with libc6 2.5-1, though probably also fixed in libc6 already ++ (closes: #419618) ++ * Improved rendering of some PDFs (closes: #409759, #242294, #280767) ++ * Improved full screen handling (obseletes patches incorporated ++ in 3.01-9; 31_fullscreen.dpatch, 32_vscroll.dpatch) ++ * Adds new options to the xpdfrc(5) (closes: #384024) ++ * Fixed handling of some broken PDFs (closes: #330711) ++ * On-the-fly switch to full screen is possible (closes: #281479) ++ * Adds configurable keybindings ++ ++ * Patched Latin2 unicode map to include IJ sequences; thanks to ++ Petr Peringer for the patch (closes: #402757) ++ * Fix reference to /etc/xpdf/xpdf-* -> /etc/xpdf/xpdfrc-* in ++ update-xpdfrc(8) (closes: #402852) ++ * Added -title support to zxpdf (closes: #338096) ++ * Updated debian/copyright (closes: #407888) ++ * Modified xpdfrc(5) to note that options are case sensitive (closes: ++ #417979) ++ * Fix package relationships so that package is bin-NMU safe ++ ++ -- Hamish Moffatt Wed, 25 Apr 2007 02:42:16 +1000 ++ ++xpdf (3.01-9) unstable; urgency=low ++ ++ * Incorporate patches from Eugeniy Meshcheryakov and Junichi Uekawa to ++ fix fullscreen mode when using a NETWM-compliant window manager ++ (closes: #247602, #362496, #367845, #168970, #192397, #165047) ++ (31_fullscreen.dpatch, 32_vscroll.dpatch) ++ * Nasty, nasty patch to workaround FTBFS due to incompatility ++ between latest g++-4.1 and lesstif - bug#377230 (40_lesstif_copy.dpatch, ++ 41_lesstif_cpp.dpatch) ++ * Upgrade to standards-revision 3.7.2 ++ * Made xpdf-common recommend gsfonts-x11 (closes: #329804) ++ ++ -- Hamish Moffatt Sat, 15 Jul 2006 16:01:16 +1000 ++ ++xpdf (3.01-8) unstable; urgency=low ++ ++ * Add patch 05_freetype-2.2.dpatch: make splash/SplashFTFont.cc ++ compatible with FreeType 2.2 (ie don't use FreeType internals ++ directly any more). Fixes unreported FTBFS. ++ * Enable additional compile-time options: --enable-opi, ++ --enable-multithreaded, --enable-wordlist ++ ++ -- Hamish Moffatt Sat, 27 May 2006 00:58:12 +1000 ++ ++xpdf (3.01-7) unstable; urgency=high ++ ++ * SECURITY UPDATE: incorporated upstream patch revision 3.01pl2 ++ (obseletes several patches collected from Red Hat, Ubuntu etc). ++ * References: CAN-2005-3191/3192/3193/3624/3625/2626/2627/3628, ++ CAN-2006-0301 (all included, some improved by this patch) ++ ++ -- Hamish Moffatt Thu, 16 Feb 2006 00:22:13 +1100 ++ ++xpdf (3.01-6) unstable; urgency=high ++ ++ * SECURITY UPDATE: fixed buffer overflow in splash image handling ++ (Splash/splash.cc) using patch supplied by Red Hat: ++ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=179046 ++ (closes: #350785, #350783) ++ * References: CVE-2006-0301 ++ * My first upload from the side of the road on borrowed wifi ++ in a foreign country... ++ ++ -- Hamish Moffatt Wed, 1 Feb 2006 22:42:42 +1300 ++ ++xpdf (3.01-5) unstable; urgency=low ++ ++ * Changed build-dep on libpaperg-dev to libpaper-dev (closes: #346397) ++ * Made xpdf-utils conflicts/replaces/provides poppler-utils ++ ++ -- Hamish Moffatt Sun, 8 Jan 2006 13:25:57 +1100 ++ ++xpdf (3.01-4) unstable; urgency=high ++ ++ * SECURITY UPDATE: added additional precautionary checks ++ supplied by Martin Pitt, Chris Evans and Ludwid Nussel ++ * Changed build-dep on xlibs-dev to individual lib*-dev packages ++ ++ -- Hamish Moffatt Fri, 6 Jan 2006 18:55:24 +1100 ++ ++xpdf (3.01-3) unstable; urgency=high ++ ++ * SECURITY UPDATE: fix several potential buffer overflows: ++ DCTStream Baseline Heap Overflow, DCTStream Progressive Heap Overflow, ++ StreamPredictor Heap Overflow, JPX Stream Reader Heap Overflow ++ (closes: #322462) (21_security.dpatch) ++ * References: CAN-2005-3193, CAN-2005-3191 ++ ++ -- Hamish Moffatt Tue, 6 Dec 2005 23:05:10 +0000 ++ ++xpdf (3.01-2) unstable; urgency=low ++ ++ * Incorporate upstream patch to fix resize issues with some ++ window managers (20_resize.dpatch) ++ (closes: #325112, #326888, #327572, #329112, #324172) ++ * Fix incorrect escape sequences in xpdf.1 (closes: #320631) ++ Thanks to Erik Schanze for the patch. (01_manpage.dpatch) ++ ++ -- Hamish Moffatt Mon, 10 Oct 2005 23:34:46 +1000 ++ ++xpdf (3.01-1) unstable; urgency=low ++ ++ * New upstream release (closes: #323715) ++ * Added initial transparency support (closes: #181958, #284504, #243533) ++ * Improved performance of pattern handling (closes: #220628) ++ * Rasterizer optimisations (closes: #229714, #283549) ++ * Handle negative font sizes (closes: #267790, #269495) ++ * Fixed bugs in the Type 1C font parser ++ (closes: #280291, #308547, #316895, #322906, #317708) ++ and TrueType (closes: #270086) ++ * Fix borders with some files (closes: #284307) ++ * Fixed copy/paste losing text (closes: #310042) ++ * Window is sized to fit the document page (closes: #249039, #254843) ++ * Background window is now gray to show page size (closes: #295696) ++ * Directories are not scanned until open dialog used (closes: #298742) ++ * Fixed other crashes (closes: #251057, #264298, #303710), ++ PostScript output bugs (closes: #295685) ++ ++ * Added build-conflicts with libstroke0-dev, as it supplies ++ autoconf macros that conflict with xpdf's own ++ * Added category and generic name entries to the Desktop file ++ (closes: #302546); thanks to Alejandro Exojo for the patch ++ * Register for MIME type application/x-pdf in addition to ++ application/pdf (closes: #319057) ++ * Updated to standards-revision 3.6.2 ++ ++ -- Hamish Moffatt Fri, 19 Aug 2005 22:48:35 +1000 ++ ++xpdf (3.00-15) unstable; urgency=low ++ ++ * SECURITY UPDATE: fix potiential DoS attack through hand-crafted ++ PDFs with corrupt loca tables (closes: #322462) ++ * References: CAN-2005-2097 ++ ++ -- Hamish Moffatt Wed, 17 Aug 2005 07:55:17 +1000 ++ ++xpdf (3.00-14) unstable; urgency=low ++ ++ * Use dpatch for patch management; added build-dep on dpatch ++ * Fix FTBFS with gcc-4.0 (closes: #316836); ++ thanks to Daniel Schepler for the patch ++ * xpdf-utils now suggests: pdftk (closes: #306624) ++ * Fix page parameter handling in zxpdf (closes: #315458) ++ ++ -- Hamish Moffatt Sun, 17 Jul 2005 01:07:20 +1000 ++ ++xpdf (3.00-13) unstable; urgency=low ++ ++ * SECURITY UPDATE: fix buffer overflow for PDF documents with an /Encrypt ++ /Length value > 16 (xpdf/XRef.cc) (upstream xpdf-3.00pl3.patch) ++ * References: CAN-2005-0064 (in addition to previous changes) ++ ++ * Added desktop entry to xpdf-reader (adapted from Ubuntu with thanks) ++ (closes: #280812) ++ * Updated build-dependency on debhelper to 4.2.21 to get dh_desktop ++ ++ * Fixed FTBFS on amd64 with gcc-4.0 resulting from cast from void* ++ to int in xpdf/XPDFViewer.cc (closes: #288727) ++ Thanks to Andreas Jochens for the patch. ++ ++ * Added note to header of source files modified to remove PDF ++ permission checking as requested by upstream in bug#298584 ++ ++ -- Hamish Moffatt Tue, 22 Mar 2005 23:33:52 +1100 ++ ++xpdf (3.00-12) unstable; urgency=high ++ ++ * SECURITY UPDATE: Fixed buffer overflow that could overwrite the stack ++ and hence cause the execution of arbitrary code as reported by ++ iDEFENSE (xpdf/Decrypt.cc) ++ * References: CAN-2005-0064 ++ ++ -- Hamish Moffatt Wed, 19 Jan 2005 23:48:56 +1100 ++ ++xpdf (3.00-11) unstable; urgency=high ++ ++ * SECURITY UPDATE: fix potential buffer overflow ++ Applied patch to colour map handling in xpdf/Gfx.cc (closes: #286742) ++ * References: CAN-2004-1125 ++ ++ -- Hamish Moffatt Thu, 23 Dec 2004 08:16:24 +1100 ++ ++xpdf (3.00-10) unstable; urgency=high ++ ++ * SECURITY UPDATE: fix potential buffer overflow ++ * goo/gmem.[ch]: change declarations of gmalloc and grealloc to use size_t ++ instead of int; int truncated sizes to 32 bits, which made xpdf still ++ vulnerable to integer (and eventually buffer) overflow attacks on 64 bit ++ platforms like amd64. ++ * Thanks to Marcus Meissner for providing the patch ++ and Martin Pitt for providing the changes for ++ Debian in the form of 3.00-9ubuntu2 ++ * References: ++ CAN-2004-0889 (incomplete fix in version 3.00-9) ++ ++ * Incorporated patch from Arnaud Giersch to fix crashes with ++ certain PDFs (closes: #278693, #279292) ++ ++ -- Hamish Moffatt Mon, 8 Nov 2004 00:23:22 +1100 ++ ++xpdf (3.00-9) unstable; urgency=high ++ ++ * Applied patch to fix vulnerability CAN-2004:0889: integer overflow ++ issues that could allow denial of service or possibly arbitrary ++ code execution ++ ++ -- Hamish Moffatt Thu, 21 Oct 2004 23:49:32 +1000 ++ ++xpdf (3.00-8) unstable; urgency=low ++ ++ * Final cleanup for sarge. ++ * Fixed handling of some PDFs causing crashes (Closes: #254864) ++ Modified splash/SplashFTFont.cc to prevent crash caused by calling ++ FreeType's FT_Decompose_Outline with a non-outline object ++ * Cleaned up dependency on libt1-5 to prevent duplicate depends ++ * Moved pixmaps to /usr/share/pixmaps ++ * Cleaned up lintian warnings ++ ++ -- Hamish Moffatt Wed, 18 Aug 2004 23:32:07 +1000 ++ ++xpdf (3.00-7) unstable; urgency=low ++ ++ * Changed wrapper script to use /bin/bash explicitly ++ (closes: #245943, #248090) ++ * Add /usr/share/bug/xpdf/control so that bugs submitted to 'xpdf' ++ go to 'xpdf-reader' instead ++ * Update supplied configuration file for new configuration options ++ (closes: #246351) ++ * Added menu icon (closes: #244504) ++ ++ -- Hamish Moffatt Sun, 9 May 2004 23:24:30 +1000 ++ ++xpdf (3.00-6) unstable; urgency=low ++ ++ * Add dependency on libt1-5 >= 5.0.2 to fix several Xpdf crashes ++ (closes: #238946, #243847, #243879) ++ * Fixed wrapper script so that X resources are still located ++ correctly (closes: #242513) ++ ++ -- Hamish Moffatt Sun, 25 Apr 2004 21:48:25 +1000 ++ ++xpdf (3.00-5) unstable; urgency=low ++ ++ * Fix crash when clicking bookmarks in some PDFs (closes: #236007) ++ * Not uploaded ++ ++ -- Hamish Moffatt Tue, 30 Mar 2004 23:31:16 +1000 ++ ++xpdf (3.00-4) unstable; urgency=low ++ ++ * Build with new libt1 rather than old t1lib (closes: #234273) ++ * Fixed repeated text in pdfimages(1) (closes: #202139) ++ * Fix crash on some PDFs due to empty paths (closes: #231709, #240187) ++ (thanks to Guillaume Morin for the patch) ++ * Applied upstream patch to add TrueType font collection (TTC) support ++ (closes: #232340) ++ ++ -- Hamish Moffatt Tue, 30 Mar 2004 22:30:35 +1000 ++ ++xpdf (3.00-3) unstable; urgency=low ++ ++ * Add upstream patch to fix handling of 16-bit TrueType fonts ++ * Added note to /etc/xpdf/xpdfrc file warning that user configuration ++ files (~/.xpdfrc) override the system-wide file, rather than supplement ++ it (closes: #230853) ++ * Updated /etc/xpdf/xpdfrc to remove obselete X font mappings ++ (no longer supported) ++ * Updated /usr/share/doc/xpdf-common/examples/sample-xpdfrc for 3.00 ++ (closes: #229874) by supplying the debian package version instead ++ of upstream's ++ ++ -- Hamish Moffatt Tue, 10 Feb 2004 23:00:02 +1100 ++ ++xpdf (3.00-2) unstable; urgency=low ++ ++ * Added build-dep for pkg-config ++ ++ -- Hamish Moffatt Wed, 28 Jan 2004 00:38:31 +1100 ++ ++xpdf (3.00-1) unstable; urgency=low ++ ++ * New upstream release ++ * Enter now works in Find dialog to start searching (closes: #167975) ++ * Find dialog text input grows when window is resized (closes: #205208) ++ * Fixed crashes with some PDFs (closes: #223989, #224943, #225289, #229264) ++ * Fixed inverted horizontal mouse wheel behaviour (closes: #224849) ++ * Fixed slow rendering of some documents (closes: #222254) ++ * Corrected location of upstream sources in copyright file ++ (closes: #229670) ++ * Fixed location of configuration file in manual pages ++ (/etc/xpdfrc -> /etc/xpdf/xpdfrc) ++ ++ -- Hamish Moffatt Mon, 26 Jan 2004 14:39:30 +1100 ++ ++xpdf (2.03-2) unstable; urgency=low ++ ++ * Applied upstream patch to fix reading of JBIG encoded files (closes: ++ #220450) ++ * Wrapper script will now use exec when calling xpdf.bin ++ (closes: #219736) and zxpdf will do the same when calling xpdf ++ ++ -- Hamish Moffatt Fri, 14 Nov 2003 09:08:11 +1100 ++ ++xpdf (2.03-1) unstable; urgency=low ++ ++ * New upstream release ++ * Fixes crashes with some documents (closes: #215867, #212990) ++ * Supports PDF outline (bookmarks) (closes: #166926) ++ * Supports clipping to text which makes some more PDF files ++ display correctly (closes: #184070) ++ * Fix PDF BitsPerComponent handling (closes: #185950) ++ * Handle PDFs with broken Unicode cmap table (closes: #188532) ++ * Handle PDFs with broken DCT streams (closes: #193718) ++ * Improved text extraction with right-to-left scripts (closes: #176745) ++ * If the print command is changed in the print dialog, it won't ++ be reset if another file is opened (closes: #200466) ++ ++ * Updated Greek and Cyrillic language support to 2003-jun-28 versions ++ * Provided manual page for xpdf.bin (symlink to xpdf(1)) (closes: #211887) ++ * update-xpdfrc will now ignore backup (*~) and RCS files (closes: #194124) ++ ++ -- Hamish Moffatt Wed, 22 Oct 2003 22:43:47 +1000 ++ ++xpdf (2.02pl1-1) unstable; urgency=high ++ ++ * Upstream patch release to fix security hole in URL handling ++ (closes: #198032) ++ ++ -- Hamish Moffatt Thu, 19 Jun 2003 23:06:21 +1000 ++ ++xpdf (2.02-2) unstable; urgency=low ++ ++ * Modified xpdf(1) to include information about zxpdf ++ (closes: #175535) ++ * Modified zxpdf to work with no command line parameters ++ * Modified zxpdf to recognise .PDF (upper case) file extension ++ ++ -- Hamish Moffatt Wed, 23 Apr 2003 00:27:50 +1000 ++ ++xpdf (2.02-1) unstable; urgency=low ++ ++ * New upstream release ++ * Incorporated new Arabic language package 2003-feb-16 ++ * Updated Hebrew language support to 2003-feb-16 ++ * Upstream: fixed display problems in some PDFs (closes: #181076, ++ #144047, #167827, #176856, #180829) ++ * Upstream: fixed crash on find-next before find (closes: #172973) ++ * Upstream: fixed color handling in buttons (closes: #171398) ++ * Upstream: fixed crash if Ctrl-W pressed while file open (closes: #177698) ++ ++ -- Hamish Moffatt Sun, 30 Mar 2003 14:06:43 +1000 ++ ++xpdf (2.01-3) unstable; urgency=low ++ ++ * Fixed wrapper script bug: incorrect handling of command line ++ parameters (closes: #174965, #174851) ++ * Fixed wrapper script bug: should set $LC_ALL as well as $LANG ++ (closes: #174717) ++ ++ -- Hamish Moffatt Sat, 4 Jan 2003 15:59:01 +1100 ++ ++xpdf (2.01-2) unstable; urgency=low ++ ++ * Applied patch to fix buffer overflow as reported by iDEFENSE ++ * Fixed name of language configuration files (/etc/xpdf/xpdf-* renamed ++ back to xpdfrc-*) (closes: #173046) ++ * Modified update-xpdfrc to ignore .dpkg* files in /etc/xpdf ++ (closes: #173268) ++ * Made xpdf a wrapper script which calls real xpdf binary to work ++ around locale problems (closes: #167956, #168717, #169339, #172009) ++ ++ -- Hamish Moffatt Sat, 28 Dec 2002 00:35:52 +1100 ++ ++xpdf (2.01-1) unstable; urgency=low ++ ++ * New upstream release ++ * Merged in the small and free xpdf language packages xpdf-cyrillic, ++ xpdf-greek, xpdf-hebrew, xpdf-latin2, xpdf-thai and xpdf-turkish; ++ the others remain as seperate packages in non-free. ++ ++ -- Hamish Moffatt Sun, 8 Dec 2002 00:02:37 +1100 ++ ++xpdf (2.00-2) unstable; urgency=low ++ ++ * Recompile with lesstif2 (closes: #170624) ++ * Change the default urlCommand to sensible-browser, which will make it ++ honour the BROWSER variable, and run a good default browser that is ++ installed if that is not set. Sure beats hardcoding non-free netscape. ++ (closes: #170085) ++ * Suggest www-browser. ++ * Fixed incorrect resource names in xpdf(1) (closes: #168730) ++ * Set a default print command (closes: #168520) ++ ++ -- Hamish Moffatt Sat, 30 Nov 2002 13:08:38 +1100 ++ ++xpdf (2.00-1) unstable; urgency=low ++ ++ * New upstream release - uses Lesstif instead of old Xpdf-specific toolkit ++ * Upstream: Control-P now brings up the print dialog (closes: #157225) ++ * Upstream: Worked around problems with fonts in some PDF files ++ (closes: #159778) ++ * Upstream: 'Save as' now uses the standard Motif save dialog, so any ++ filename can be entered (closes: #158423) ++ * Upstream: handles malformed PDFs with error messages rather than ++ silently as happened previously in some cases (closes: #151241) ++ * Upstream: fullscreen behaviour is working fine in this version ++ (closes: #156252) ++ * Upstream: Enter works in save dialog (closes: #166942) ++ * Upstream: now uses standard Motif file selector dialog (closes: #160255) ++ * No performance issues observed with resizing the window (closes: #165847) ++ * Tweaked configuration mechanism not to build /etc/xpdfrc now, ++ but an include file for the main configuration file instead. ++ No changes to the language packages are required to support this. ++ ++ -- Hamish Moffatt Tue, 5 Nov 2002 11:49:24 +1100 ++ ++xpdf (1.01-3) unstable; urgency=low ++ ++ * Recompile with more recent FreeType, updated dependencies to match ++ (closes: #155946) ++ * Made xpdf handle missing default paper name from libpaper ++ (eg if $PAPERSIZE is set to a non-existent file) (closes: #150360) ++ ++ -- Hamish Moffatt Wed, 4 Sep 2002 21:49:41 +1000 ++ ++xpdf (1.01-2) unstable; urgency=low ++ ++ * Fixed dependencies to ensure that xpdf-common, xpdf-reader and ++ xpdf-utils versions are always synchronised (closes: #147897, ++ #151683) ++ ++ -- Hamish Moffatt Sun, 7 Jul 2002 01:24:00 +1000 ++ ++xpdf (1.01-1) unstable; urgency=low ++ ++ * New upstream release (closes: #146286, #147428) ++ including support for Type 3 fonts (closes: #128686, #137378, ++ #137416, #143245, #145541, #147614) ++ * Removed empty examples directory (closes: #145057, #146336) ++ * Changed dependency on gsfonts to require the woody version ++ or newer (>= 6.0-1) (closes: #146398) ++ * Applied patch to allow copying and printing of protected ++ PDF files (closes: #145558) ++ ++ -- Hamish Moffatt Wed, 22 May 2002 23:16:47 +1000 ++ ++xpdf (1.00-4) unstable; urgency=low ++ ++ * xpdf-reader: added zxpdf script contributed by Yann Dirson to allow ++ viewing of compressed PDF files (closes: #87316, #14227) ++ * xpdf-reader, xpdf-utils: corrected location of the configuration ++ files in the manual pages (closes: #139982) ++ * xpdf-common: added note to /etc/xpdf/xpdfrc describing configuration ++ file scheme (closes: #143372) ++ ++ -- Hamish Moffatt Thu, 25 Apr 2002 10:57:47 +1000 ++ ++xpdf (1.00-3) unstable; urgency=low ++ ++ * Fixed conflicts with xpdf-i (should conflict with versions ++ <= 0.90-8, not 0.90-7) (closes: #136385, #136157) ++ * Applied patch from the upstream author to fix the missing ++ initialZoom X resource (closes: #135712) ++ ++ -- Hamish Moffatt Sat, 9 Mar 2002 00:23:33 +1100 ++ ++xpdf (1.00-2) unstable; urgency=low ++ ++ * Fixed problem with building the arch-specific packages when ++ xpdf-common was not installed (tried to overwrite /etc/xpdfrc) ++ (closes: #134336, #134338) ++ ++ -- Hamish Moffatt Mon, 18 Feb 2002 08:36:59 +1100 ++ ++xpdf (1.00-1) unstable; urgency=low ++ ++ * New upstream release (closes: #131961) ++ * Split the xpdf package into xpdf-reader, xpdf-utils and a ++ metapackage, xpdf. This reduces the number of library packages ++ required if you just want pdf2ps, for example. (closes: #122786) ++ * The new upstream release has the language support split into ++ seperate packages. See xpdf-chinese-simplified, ++ xpdf-chinese-traditional, xpdf-korean, xpdf-japanese, ++ xpdf-thai and xpdf-cyrillic. NOTE: some of these are ++ non-free. ++ ++ -- Hamish Moffatt Sat, 2 Feb 2002 23:44:20 +1100 ++ ++xpdf (0.93-6) unstable; urgency=low ++ ++ * Applied patch from the upstream author Derek Noonburg ++ to fix an unitialized variable which causes xpdf ++ to sometimes crash on Alpha systems (closes: #124314) ++ ++ -- Hamish Moffatt Wed, 16 Jan 2002 21:30:53 +1100 ++ ++xpdf (0.93-5) unstable; urgency=low ++ ++ * Applied patch from the upstream author Derek Noonburg ++ to fix TrueType font embedding bugs (closes: #123913) ++ * Added Build-Conflicts: with libttf-dev; the compile gets ++ mixed up between freetype1 and freetype2 when libttf-dev ++ is installed (closes: #123565) ++ ++ -- Hamish Moffatt Wed, 9 Jan 2002 22:46:49 +1100 ++ ++xpdf (0.93-4) unstable; urgency=low ++ ++ * Added menu hint "Documents" (closes: #121029) ++ ++ -- Hamish Moffatt Sun, 25 Nov 2001 13:02:24 +1100 ++ ++xpdf (0.93-3) unstable; urgency=low ++ ++ * Added app-defaults file mapping for Type 1 base-14 fonts (requires ++ gsfonts) (closes: #120649, #120994) ++ * Added libpaper support; xpdf now gets the default paper size from ++ X resources, $PAPERSIZE, /etc/papersize, or defaults to letter ++ (closes: #120645) ++ ++ -- Hamish Moffatt Sun, 25 Nov 2001 11:38:19 +1100 ++ ++xpdf (0.93-2) unstable; urgency=low ++ ++ * Removed final references to install-mime (closes: #120423) ++ * Linked with libfreetype6 (closes: #116283) ++ * Configuration file moved to /etc/xpdfrc (was /usr/etc/xpdfrc by mistake) ++ * Also linked with t1lib ++ ++ -- Hamish Moffatt Sat, 24 Nov 2001 16:20:23 +1100 ++ ++xpdf (0.93-1) unstable; urgency=low ++ ++ * New upstream release (closes: #81911, #107448) ++ ++ -- Hamish Moffatt Wed, 7 Nov 2001 23:54:52 +1100 ++ ++xpdf (0.92-5) unstable; urgency=low ++ ++ * Fixed freetype file locations which caused the build to fail if ++ libfreetype6-dev wasn't installed (but isn't actually used) ++ (closes: #111745) ++ ++ -- Hamish Moffatt Tue, 11 Sep 2001 20:21:47 +1000 ++ ++xpdf (0.92-4) unstable; urgency=low ++ ++ * Added libttf-dev to build-deps so that xpdf will be built with ++ TrueType font support (closes: #108667) ++ * Increased xpdf's priority in mailcap from 4 to 6 to be above ++ gv and acroread (closes: #106858) ++ ++ -- Hamish Moffatt Sun, 2 Sep 2001 14:54:11 +1000 ++ ++xpdf (0.92-3) unstable; urgency=low ++ ++ * Changed build-dep on xpm4g-dev to xlibs-dev (closes: #83814) ++ * Re-enabled Chinese language support (closes: #74974) ++ ++ -- Hamish Moffatt Mon, 29 Jan 2001 08:23:06 +1100 ++ ++xpdf (0.92-2) unstable; urgency=low ++ ++ * Recompiled with latest X libraries ++ ++ -- Hamish Moffatt Thu, 18 Jan 2001 08:21:23 +1100 ++ ++xpdf (0.92-1) unstable; urgency=low ++ ++ * New upstream release ++ * Updated Standards-Version ++ ++ -- Hamish Moffatt Wed, 6 Dec 2000 21:16:34 +1100 ++ ++xpdf (0.91-3) unstable; urgency=low ++ ++ * Enabled Chinese language support (closes: #74974) ++ ++ -- Hamish Moffatt Tue, 7 Nov 2000 15:52:41 +1100 ++ ++xpdf (0.91-2) unstable; urgency=low ++ ++ * Changed replaces/conflicts with xpdf-i to allow installation ++ of xpdf-i 0.91-1 (dummy package) as well as xpdf >= 0.91 ++ ++ -- Hamish Moffatt Tue, 19 Sep 2000 22:55:44 +1100 ++ ++xpdf (0.91-1) unstable; urgency=low ++ ++ * New upstream version (closes: #43604, #47391, #61055, #67591, #50170) ++ * Upstream source now includes decryption; xpdf-i is now obselete ++ ++ -- Hamish Moffatt Sun, 20 Aug 2000 18:25:07 +1000 ++ ++xpdf (0.90-6) unstable; urgency=low ++ ++ * Added build-depends for debhelper, xpm4g-dev and xlib6g-dev ++ (closes: #68464, #61585) ++ ++ -- Hamish Moffatt Mon, 7 Aug 2000 19:29:08 +1000 ++ ++xpdf (0.90-5) unstable; urgency=low ++ ++ * Added build-depends for t1lib-dev (closes: #55658) ++ ++ -- Hamish Moffatt Tue, 1 Aug 2000 21:03:43 +1000 ++ ++xpdf (0.90-4) unstable; urgency=low ++ ++ * Recompile for t1lib1 ++ ++ -- Hamish Moffatt Mon, 3 Jan 2000 09:45:45 +1100 ++ ++xpdf (0.90-3) unstable; urgency=low ++ ++ * FHS compliant ++ * Converted to debhelper ++ * Moved xpdf binary from /usr/X11R6/bin to /usr/bin ++ ++ -- Hamish Moffatt Fri, 1 Oct 1999 23:51:31 +1000 ++ ++xpdf (0.90-2) unstable; urgency=low ++ ++ * Recompiled with t1lib 0.9.1-4 to get correct dependencies ++ ++ -- Hamish Moffatt Sat, 11 Sep 1999 00:59:17 +1000 ++ ++xpdf (0.90-1) unstable; urgency=low ++ ++ * New upstream version ++ ++ -- Hamish Moffatt Sat, 14 Aug 1999 14:31:00 +1000 ++ ++xpdf (0.80-6) unstable; urgency=low ++ ++ * Added code in postinst and postrm to remove old MIME entries ++ added using install-mime (fixes #37724, #31293) ++ ++ -- Hamish Moffatt Sun, 23 May 1999 00:25:00 +1000 ++ ++xpdf (0.80-5) unstable; urgency=low ++ ++ * Fixed error in /usr/lib/mime/packages/xpdf (fixes #37537) ++ ++ -- Hamish Moffatt Sat, 15 May 1999 22:35:00 +1000 ++ ++xpdf (0.80-4) unstable; urgency=low ++ ++ * Fixed bug in postinst introduced in 0.80-3 (fixes #37009, #37026) ++ * xpdf now Conflicts with and Replaces xpdf-i ++ ++ -- Hamish Moffatt Sun, 02 May 1999 18:20:00 +1000 ++ ++xpdf (0.80-3) unstable; urgency=low ++ ++ * Fixed incorrect mime support handling with patch from David Rocher ++ (fixes bug#36901) ++ ++ -- Hamish Moffatt Sat, 01 May 1999 18:45:00 +1000 ++ ++xpdf (0.80-2) unstable; urgency=low ++ ++ * Enabled support for 16-bit Japanese fonts (fixes bug#30671) ++ ++ -- Hamish Moffatt Fri, 18 Dec 1998 00:18:00 +1100 ++ ++xpdf (0.80-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Hamish Moffatt Sun, 29 Nov 1998 01:03:00 +1100 ++ ++xpdf (0.7a-3) unstable; urgency=low ++ ++ * Previous upload had wrong section and was rejected ++ * Change of license; xpdf is now GPL (see ++ http://www.debian.org/Lists-Archives/debian-devel-9809/msg00193.html) ++ ++ -- Hamish Moffatt Sat, 10 Oct 1998 11:12:00 +1000 ++ ++xpdf (0.7a-2) unstable; urgency=low ++ ++ * New maintainer ++ * Updated to use update-mime (fixes#26532) ++ * Removed dependency on mime-support, as instructed by update-mime(1) ++ * Rebuilt with new libstdc++ ++ ++ -- Hamish Moffatt Tue, 06 Oct 1998 19:43:00 +1000 ++ ++xpdf (0.7a-1) non-free; urgency=low ++ ++ * Upgraded to new upstream release xpdf-0.7a ++ ++ -- Dirk Eddelbuettel Mon, 2 Mar 1998 19:24:35 -0500 ++ ++xpdf (0.7-3) non-free; urgency=low ++ ++ * Moved to non-free as the copyright violated #3 of the DFSG (fixes #14360) ++ ++ -- Dirk Eddelbuettel Tue, 4 Nov 1997 20:44:26 -0500 ++ ++xpdf (0.7-2) unstable; urgency=low ++ ++ * Compiled with GNU libc2 aka libc6 ++ * Linked against xlib6g and xpm4g (fixes bug #12915) ++ * Uses pristine upstream sources as xpdf_0.7.orig.tar.gz ++ * Upgraded to Debian Policy 2.3.0.0 ++ * Added menu file for xpdf ++ ++ -- Dirk Eddelbuettel Tue, 30 Sep 1997 20:34:09 -0400 ++ ++xpdf (0.7-1) unstable; urgency=low ++ ++ * New upstream release xpdf-0.7 ++ ++ -- Dirk Eddelbuettel Thu, 29 May 1997 21:22:38 -0400 ++ ++xpdf (0.6-1) unstable frozen; urgency=low ++ ++ * New upstream release xpdf-0.6 (fixes bug #4476) ++ ++ * Changed Priority: to optional as per override file on master ++ ++ * Converted package management files to Debian Standard 2.1.1.0 ++ * Changed maintainer email address to ++ ++ -- Dirk Eddelbuettel Sun, 24 Nov 1996 16:50:23 -0500 ++ ++Sat Aug 10 16:22:28 1996 Dirk Eddelbuettel ++ ++ * xpdf-0.5-1 release: only changes to Debian package files ++ ++ * debian.control: now Depends on mime-support, suitable postinst ++ and postrm scripts added (with thanks to Brian White); ++ also updated virtual package dependencies, now Provides: a ++ pdf-viewer as well as postscript-preview and Depends changed ++ to X11R6 from elf-x11r6lib ++ ++ * debian.rules: install xpdf.1x, not xpdf.1 ++ ++Mon May 27 20:58:19 1996 Dirk Eddelbuettel ++ ++ * xpdf-0.5-0 release: upgraded to upstream version 0.5 ++ ++Sun Apr 28 09:51:02 1996 Dirk Eddelbuettel ++ ++ * xpdf-0.4-0 release: upgraded to upstream version 0.4 ++ ++ * debian.control: added Architecture:, changed Section: to text, ++ added note that xpdftops is now included ++ ++Wed Feb 14 21:49:17 1996 Dirk Eddelbuettel ++ ++ * xpdf-0.3-1 release ++ ++ * debian.rules: fix location of README to /usr/doc/xpdf (bug#2333) ++ ++Sun Jan 28 17:36:31 1996 Dirk Eddelbuettel ++ ++ * xpdf-0.3-0: Initial Debian release ++ +--- xpdf-3.02.orig/debian/xpdf.dirs ++++ xpdf-3.02/debian/xpdf.dirs +@@ -0,0 +1,2 @@ ++usr/share/doc ++usr/share/bug/xpdf +--- xpdf-3.02.orig/debian/xpdf-common.postrm ++++ xpdf-3.02/debian/xpdf-common.postrm +@@ -0,0 +1,9 @@ ++#!/bin/sh ++set -e ++ ++if [ "$1" = "purge" ]; then ++ rm -f /etc/xpdf/includes ++fi ++ ++#DEBHELPER# ++ +--- xpdf-3.02.orig/debian/xpdf.desktop ++++ xpdf-3.02/debian/xpdf.desktop +@@ -0,0 +1,11 @@ ++[Desktop Entry] ++Encoding=UTF-8 ++Name=xpdf ++GenericName=PDF viewer ++Comment=View PDF files ++Exec=xpdf ++Icon=xpdf.xpm ++Terminal=false ++Type=Application ++MimeType=application/pdf; ++Categories=PDFViewer;Viewer;Graphics; +--- xpdf-3.02.orig/debian/xpdf-reader.menu ++++ xpdf-3.02/debian/xpdf-reader.menu +@@ -0,0 +1,8 @@ ++?package(xpdf-reader):\ ++ needs="x11" \ ++ section="Apps/Viewers" \ ++ command="/usr/bin/xpdf" \ ++ title="Xpdf" \ ++ hints="Documents" \ ++ icon="/usr/share/pixmaps/xpdf.xpm" \ ++ longtitle="Xpdf: Portable Document Format (PDF) file viewer for X" +--- xpdf-3.02.orig/debian/xpdf-bug-control ++++ xpdf-3.02/debian/xpdf-bug-control +@@ -0,0 +1 @@ ++Submit-As: xpdf-reader +--- xpdf-3.02.orig/debian/xpdf-reader.dirs ++++ xpdf-3.02/debian/xpdf-reader.dirs +@@ -0,0 +1,7 @@ ++usr/share/doc ++usr/share/applications ++usr/share/man/man1 ++usr/lib/mime/packages ++usr/lib/menu ++usr/bin ++usr/share/pixmaps +--- xpdf-3.02.orig/debian/patches/40_lesstif_copy.dpatch ++++ xpdf-3.02/debian/patches/40_lesstif_copy.dpatch +@@ -0,0 +1,18 @@ ++#! /bin/sh -e ++## DP: make local copy of lesstif headers for use in patch 41 ++ ++dpatch_patch () ++{ ++ mkdir lesstif ++ cp -a /usr/include/Xm lesstif/ ++} ++ ++dpatch_unpatch () ++{ ++ rm -rf lesstif ++} ++ ++DPATCH_LIB_NO_DEFAULT=1 ++ ++. /usr/share/dpatch/dpatch.lib.sh ++ +--- xpdf-3.02.orig/debian/patches/01_manpage.dpatch ++++ xpdf-3.02/debian/patches/01_manpage.dpatch +@@ -0,0 +1,258 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 01_manpage.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Manual page updates ++ ++@DPATCH@ ++diff -urNad xpdf-3.02~/doc/pdffonts.1 xpdf-3.02/doc/pdffonts.1 ++--- xpdf-3.02~/doc/pdffonts.1 2007-04-25 01:26:52.000000000 +1000 +++++ xpdf-3.02/doc/pdffonts.1 2007-04-25 01:26:55.000000000 +1000 ++@@ -73,9 +73,7 @@ ++ .SH CONFIGURATION FILE ++ Pdffonts reads a configuration file at startup. It first tries to ++ find the user's private config file, ~/.xpdfrc. If that doesn't ++-exist, it looks for a system-wide config file, typically ++-/usr/local/etc/xpdfrc (but this location can be changed when pdffonts ++-is built). See the +++exist, it looks for a system-wide config file, /etc/xpdf/xpdfrc. See the ++ .BR xpdfrc (5) ++ man page for details. ++ .SH OPTIONS ++diff -urNad xpdf-3.02~/doc/pdfimages.1 xpdf-3.02/doc/pdfimages.1 ++--- xpdf-3.02~/doc/pdfimages.1 2007-04-25 01:26:52.000000000 +1000 +++++ xpdf-3.02/doc/pdfimages.1 2007-04-25 01:26:55.000000000 +1000 ++@@ -12,9 +12,9 @@ ++ saves images from a Portable Document Format (PDF) file as Portable ++ Pixmap (PPM), Portable Bitmap (PBM), or JPEG files. ++ .PP ++-Pdfimages reads the PDF file, scans one or more pages, +++Pdfimages reads the PDF file ++ .IR PDF-file , ++-and writes one PPM, PBM, or JPEG file for each image, +++scans one or more pages, and writes one PPM, PBM, or JPEG file for each image, ++ .IR image-root - nnn . xxx , ++ where ++ .I nnn ++@@ -28,9 +28,7 @@ ++ .SH CONFIGURATION FILE ++ Pdfimages reads a configuration file at startup. It first tries to ++ find the user's private config file, ~/.xpdfrc. If that doesn't ++-exist, it looks for a system-wide config file, typically ++-/usr/local/etc/xpdfrc (but this location can be changed when pdfimages ++-is built). See the +++exist, it looks for a system-wide config file, /etc/xpdf/xpdfrc. See the ++ .BR xpdfrc (5) ++ man page for details. ++ .SH OPTIONS ++diff -urNad xpdf-3.02~/doc/pdfinfo.1 xpdf-3.02/doc/pdfinfo.1 ++--- xpdf-3.02~/doc/pdfinfo.1 2007-04-25 01:26:52.000000000 +1000 +++++ xpdf-3.02/doc/pdfinfo.1 2007-04-25 01:26:55.000000000 +1000 ++@@ -71,8 +71,7 @@ ++ .SH CONFIGURATION FILE ++ Pdfinfo reads a configuration file at startup. It first tries to find ++ the user's private config file, ~/.xpdfrc. If that doesn't exist, it ++-looks for a system-wide config file, typically /usr/local/etc/xpdfrc ++-(but this location can be changed when pdfinfo is built). See the +++looks for a system-wide config file, /etc/xpdf/xpdfrc. See the ++ .BR xpdfrc (5) ++ man page for details. ++ .SH OPTIONS ++diff -urNad xpdf-3.02~/doc/pdftoppm.1 xpdf-3.02/doc/pdftoppm.1 ++--- xpdf-3.02~/doc/pdftoppm.1 2007-04-25 01:26:52.000000000 +1000 +++++ xpdf-3.02/doc/pdftoppm.1 2007-04-25 01:26:55.000000000 +1000 ++@@ -24,9 +24,7 @@ ++ .SH CONFIGURATION FILE ++ Pdftoppm reads a configuration file at startup. It first tries to ++ find the user's private config file, ~/.xpdfrc. If that doesn't ++-exist, it looks for a system-wide config file, typically ++-/usr/local/etc/xpdfrc (but this location can be changed when pdftoppm ++-is built). See the +++exist, it looks for a system-wide config file, /etc/xpdf/xpdfrc. See the ++ .BR xpdfrc (5) ++ man page for details. ++ .SH OPTIONS ++diff -urNad xpdf-3.02~/doc/pdftops.1 xpdf-3.02/doc/pdftops.1 ++--- xpdf-3.02~/doc/pdftops.1 2007-04-25 01:26:52.000000000 +1000 +++++ xpdf-3.02/doc/pdftops.1 2007-04-25 01:26:55.000000000 +1000 ++@@ -31,8 +31,7 @@ ++ .SH CONFIGURATION FILE ++ Pdftops reads a configuration file at startup. It first tries to find ++ the user's private config file, ~/.xpdfrc. If that doesn't exist, it ++-looks for a system-wide config file, typically /usr/local/etc/xpdfrc ++-(but this location can be changed when pdftops is built). See the +++looks for a system-wide config file, /etc/xpdf/xpdfrc. See the ++ .BR xpdfrc (5) ++ man page for details. ++ .SH OPTIONS ++diff -urNad xpdf-3.02~/doc/pdftotext.1 xpdf-3.02/doc/pdftotext.1 ++--- xpdf-3.02~/doc/pdftotext.1 2007-04-25 01:26:52.000000000 +1000 +++++ xpdf-3.02/doc/pdftotext.1 2007-04-25 01:26:55.000000000 +1000 ++@@ -28,9 +28,7 @@ ++ .SH CONFIGURATION FILE ++ Pdftotext reads a configuration file at startup. It first tries to ++ find the user's private config file, ~/.xpdfrc. If that doesn't ++-exist, it looks for a system-wide config file, typically ++-/usr/local/etc/xpdfrc (but this location can be changed when pdftotext ++-is built). See the +++exist, it looks for a system-wide config file, /etc/xpdf/xpdfrc. See the ++ .BR xpdfrc (5) ++ man page for details. ++ .SH OPTIONS ++diff -urNad xpdf-3.02~/doc/xpdf.1 xpdf-3.02/doc/xpdf.1 ++--- xpdf-3.02~/doc/xpdf.1 2007-04-25 01:26:52.000000000 +1000 +++++ xpdf-3.02/doc/xpdf.1 2007-04-25 01:26:55.000000000 +1000 ++@@ -7,10 +7,15 @@ ++ [options] ++ .RI [ PDF-file ++ .RI [ page " | +" dest ]] +++.sp +++.B zxpdf +++[options] +++.RI [ PDF-file +++.RI [ page " | +" dest ]] ++ .SH DESCRIPTION ++ .B Xpdf ++ is a viewer for Portable Document Format (PDF) files. (These are also ++-sometimes also called \'Acrobat' files, from the name of Adobe's PDF +++sometimes also called 'Acrobat' files, from the name of Adobe's PDF ++ software.) Xpdf runs under the X Window System on UNIX, VMS, and ++ OS/2. ++ .PP ++@@ -29,7 +34,7 @@ ++ xpdf file.pdf 18 ++ .RE ++ .PP ++-You can also give a named destination, prefixed with \'+' in place of +++You can also give a named destination, prefixed with '+' in place of ++ the page number. (This is only useful with PDF files that provide ++ named destination targets.) ++ .PP ++@@ -38,11 +43,17 @@ ++ .RS ++ xpdf ++ .RE +++.PP +++Compressed files (gz and bz2) may be viewed using the command: +++.PP +++.RS +++zxpdf file.pdf.gz +++.RE +++.PP ++ .SH CONFIGURATION FILE ++ Xpdf reads a configuration file at startup. It first tries to find ++ the user's private config file, ~/.xpdfrc. If that doesn't exist, it ++-looks for a system-wide config file, typically /usr/local/etc/xpdfrc ++-(but this location can be changed when xpdf is built). See the +++looks for a system-wide config file, /etc/xpdf/xpdfrc. See the ++ .BR xpdfrc (5) ++ man page for details. ++ .SH OPTIONS ++@@ -92,8 +103,8 @@ ++ .TP ++ .BI \-z " zoom" ++ Set the initial zoom factor. A number specifies a zoom percentage, ++-where 100 means 72 dpi.You may also specify \'page', to fit the page ++-to the window size, or \'width', to fit the page width to the window +++where 100 means 72 dpi.You may also specify 'page', to fit the page +++to the window size, or 'width', to fit the page width to the window ++ width. ++ .RB "[config file: " initialZoom "; or X resource: " xpdf.initialZoom ] ++ .TP ++@@ -123,7 +134,7 @@ ++ .BI \-ps " PS-file" ++ Set the default file name for PostScript output (i.e., the name which ++ will appear in the print dialog). This can also be of the form ++-\'|command' to pipe the PostScript through a command. +++'|command' to pipe the PostScript through a command. ++ .RB "[config file: " psFile ] ++ .TP ++ .BI \-paper " size" ++@@ -231,7 +242,7 @@ ++ .RB "[X resource: " xpdf*fontList ] ++ .PP ++ The color and font options only affect the user interface elements, ++-not the PDF display (the \'paper'). +++not the PDF display (the 'paper'). ++ .PP ++ The following X resources do not have command line option equivalents: ++ .TP ++@@ -254,7 +265,7 @@ ++ .B "dashed left/right arrow buttons" ++ Move backward or forward along the history path. ++ .TP ++-.B "\'Page' entry box" +++.B "'Page' entry box" ++ Move to a specific page number. Click in the box to activate it, type ++ the page number, then hit return. ++ .TP ++@@ -267,17 +278,17 @@ ++ .B "print button" ++ Bring up a dialog for generating a PostScript file. The dialog has ++ options to set the pages to be printed and the PostScript file name. ++-The file name can be \'-' for stdout or \'|command' to pipe the ++-PostScript through a command, e.g., \'|lpr'. +++The file name can be '-' for stdout or '|command' to pipe the +++PostScript through a command, e.g., '|lpr'. ++ .TP ++-.B "\'?' button" ++-Bring up the \'about xpdf' window. +++.B "'?' button" +++Bring up the 'about xpdf' window. ++ .TP ++ .B "link info" ++-The space between the \'?' and \'Quit' buttons is used to show the URL +++The space between the '?' and 'Quit' buttons is used to show the URL ++ or external file name when the mouse is over a link. ++ .TP ++-.B "\'Quit' button" +++.B "'Quit' button" ++ Quit xpdf. ++ .PP ++ .SS Menu ++@@ -333,9 +344,9 @@ ++ .PP ++ .SS Links ++ Clicking on a hyperlink will jump to the link's destination. A link ++-to another PDF document will make xpdf load that document. A ++-\'launch' link to an executable program will display a dialog, and if ++-you click \'ok', execute the program. URL links call an external +++to another PDF document will make xpdf load that document. A 'launch' +++link to an executable program will display a dialog, and if +++you click 'ok', execute the program. URL links call an external ++ command (see the ++ .B WEB BROWSERS ++ section below). ++@@ -458,7 +469,7 @@ ++ .PP ++ When you click on a URL link in a PDF file, xpdf will execute the ++ command specified by the urlCommand config file option, replacing an ++-occurrence of \'%s' with the URL. For example, to call netscape with +++occurrence of '%s' with the URL. For example, to call netscape with ++ the URL, add this line to your config file: ++ .PP ++ .RS ++@@ -809,8 +820,8 @@ ++ xpdf -remote myServer file.pdf ++ .RE ++ .PP ++-If there is currently no xpdf running in server mode with the name ++-\'myServer', a new xpdf window will be opened. If another command: +++If there is currently no xpdf running in server mode with the name 'myServer', +++a new xpdf window will be opened. If another command: ++ .PP ++ .RS ++ xpdf -remote myServer another.pdf 9 ++diff -urNad xpdf-3.02~/doc/xpdfrc.5 xpdf-3.02/doc/xpdfrc.5 ++--- xpdf-3.02~/doc/xpdfrc.5 2007-02-28 09:05:51.000000000 +1100 +++++ xpdf-3.02/doc/xpdfrc.5 2007-04-25 01:28:30.000000000 +1000 ++@@ -19,6 +19,9 @@ ++ .PP ++ The following sections list all of the configuration options, sorted ++ into functional groups. There is an examples section at the end. +++.PP +++Note that all settings are case-sensitive; in particular, boolean options +++are "yes" and "no" (rather than "Yes" or "No"). ++ .SH INCLUDE FILES ++ .TP ++ .BI include " config\-file" +--- xpdf-3.02.orig/debian/patches/00list ++++ xpdf-3.02/debian/patches/00list +@@ -0,0 +1,24 @@ ++01_manpage.dpatch ++02_permissions.dpatch ++#10_add_accelerators.dpatch # doesn't work ++ ++# Security fixes: ++#04_freetype-glyph.dpatch # Not obvious ++#05_gmem.dpatch # Not obvious ++#06_splashpath.dpatch # Not obvious ++#07_decrypt.dpatch # Not obvious ++#08_core_action.dpatch # Not obvious ++#23_security3.dpatch # Not obvious ++ ++# Lesstif bug#377230 workaround: ++40_lesstif_copy.dpatch ++41_lesstif_cpp.dpatch ++ ++# Final cleanup: ++99_autoconf.dpatch ++ ++# Fix CVE-2007-3387 and CVE-2007-5049 ++fix-CVE-2007-3387_CVE-2007-5049.dpatch ++ ++# Fix CVE-2007-5393, CVE-2007-5392, CVE-2007-4352 ++fix-CVE-2007-5393_2007-5392_2007-4352.dpatch +--- xpdf-3.02.orig/debian/patches/02_permissions.dpatch ++++ xpdf-3.02/debian/patches/02_permissions.dpatch +@@ -0,0 +1,176 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## permissions.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Remove PDF file permission checks ++ ++@DPATCH@ ++diff -urNad xpdf-3.02~/xpdf/PDFCore.cc xpdf-3.02/xpdf/PDFCore.cc ++--- xpdf-3.02~/xpdf/PDFCore.cc 2007-02-28 09:05:52.000000000 +1100 +++++ xpdf-3.02/xpdf/PDFCore.cc 2007-04-24 23:43:59.000000000 +1000 ++@@ -4,6 +4,8 @@ ++ // ++ // Copyright 2004 Glyph & Cog, LLC ++ // +++// Modified for Debian by Hamish Moffatt, 18 August 2005. +++// ++ //======================================================================== ++ ++ #include ++@@ -1563,9 +1565,11 @@ ++ int x0, y0, x1, y1, t; ++ GString *s; ++ +++#ifdef ENFORCE_PERMISSIONS ++ if (!doc->okToCopy()) { ++ return NULL; ++ } +++#endif ++ if ((page = findPage(pg))) { ++ cvtUserToDev(pg, xMin, yMin, &x0, &y0); ++ cvtUserToDev(pg, xMax, yMax, &x1, &y1); ++diff -urNad xpdf-3.02~/xpdf/XPDFCore.cc xpdf-3.02/xpdf/XPDFCore.cc ++--- xpdf-3.02~/xpdf/XPDFCore.cc 2007-02-28 09:05:52.000000000 +1100 +++++ xpdf-3.02/xpdf/XPDFCore.cc 2007-04-24 23:46:39.000000000 +1000 ++@@ -4,6 +4,8 @@ ++ // ++ // Copyright 2002-2003 Glyph & Cog, LLC ++ // +++// Modified for Debian by Hamish Moffatt, 22 May 2002. +++// ++ //======================================================================== ++ ++ #include ++@@ -384,11 +386,15 @@ ++ #ifndef NO_TEXT_SELECT ++ if (selectULX != selectLRX && ++ selectULY != selectLRY) { +++#ifdef ENFORCE_PERMISSIONS ++ if (doc->okToCopy()) { ++ copySelection(); ++ } else { ++ error(-1, "Copying of text from this document is not allowed."); ++ } +++#else +++ copySelection(); +++#endif ++ } ++ #endif ++ } ++@@ -407,9 +413,11 @@ ++ int pg; ++ double ulx, uly, lrx, lry; ++ +++#ifdef ENFORCE_PERMISSIONS ++ if (!doc->okToCopy()) { ++ return; ++ } +++#endif ++ if (getSelection(&pg, &ulx, &uly, &lrx, &lry)) { ++ //~ for multithreading: need a mutex here ++ if (currentSelection) { ++diff -urNad xpdf-3.02~/xpdf/XPDFViewer.cc xpdf-3.02/xpdf/XPDFViewer.cc ++--- xpdf-3.02~/xpdf/XPDFViewer.cc 2007-02-28 09:05:52.000000000 +1100 +++++ xpdf-3.02/xpdf/XPDFViewer.cc 2007-04-24 23:43:59.000000000 +1000 ++@@ -4,6 +4,8 @@ ++ // ++ // Copyright 2002-2003 Glyph & Cog, LLC ++ // +++// Modified for Debian by Hamish Moffatt, 22 May 2002. +++// ++ //======================================================================== ++ ++ #include ++@@ -3406,10 +3408,12 @@ ++ PSOutputDev *psOut; ++ ++ doc = viewer->core->getDoc(); +++#ifdef ENFORCE_PERMISSIONS ++ if (!doc->okToPrint()) { ++ error(-1, "Printing this document is not allowed."); ++ return; ++ } +++#endif ++ ++ viewer->core->setBusyCursor(gTrue); ++ ++diff -urNad xpdf-3.02~/xpdf/pdfimages.cc xpdf-3.02/xpdf/pdfimages.cc ++--- xpdf-3.02~/xpdf/pdfimages.cc 2007-02-28 09:05:52.000000000 +1100 +++++ xpdf-3.02/xpdf/pdfimages.cc 2007-04-24 23:43:59.000000000 +1000 ++@@ -4,6 +4,8 @@ ++ // ++ // Copyright 1998-2003 Glyph & Cog, LLC ++ // +++// Modified for Debian by Hamish Moffatt, 22 May 2002. +++// ++ //======================================================================== ++ ++ #include ++@@ -119,11 +121,13 @@ ++ } ++ ++ // check for copy permission +++#ifdef ENFORCE_PERMISSIONS ++ if (!doc->okToCopy()) { ++ error(-1, "Copying of images from this document is not allowed."); ++ exitCode = 3; ++ goto err1; ++ } +++#endif ++ ++ // get page range ++ if (firstPage < 1) ++diff -urNad xpdf-3.02~/xpdf/pdftops.cc xpdf-3.02/xpdf/pdftops.cc ++--- xpdf-3.02~/xpdf/pdftops.cc 2007-02-28 09:05:52.000000000 +1100 +++++ xpdf-3.02/xpdf/pdftops.cc 2007-04-24 23:43:59.000000000 +1000 ++@@ -4,6 +4,8 @@ ++ // ++ // Copyright 1996-2003 Glyph & Cog, LLC ++ // +++// Modified for Debian by Hamish Moffatt, 22 May 2002. +++// ++ //======================================================================== ++ ++ #include ++@@ -278,12 +280,14 @@ ++ goto err1; ++ } ++ +++#ifdef ENFORCE_PERMISSIONS ++ // check for print permission ++ if (!doc->okToPrint()) { ++ error(-1, "Printing this document is not allowed."); ++ exitCode = 3; ++ goto err1; ++ } +++#endif ++ ++ // construct PostScript file name ++ if (argc == 3) { ++diff -urNad xpdf-3.02~/xpdf/pdftotext.cc xpdf-3.02/xpdf/pdftotext.cc ++--- xpdf-3.02~/xpdf/pdftotext.cc 2007-02-28 09:05:52.000000000 +1100 +++++ xpdf-3.02/xpdf/pdftotext.cc 2007-04-24 23:43:59.000000000 +1000 ++@@ -4,6 +4,8 @@ ++ // ++ // Copyright 1997-2003 Glyph & Cog, LLC ++ // +++// Modified for Debian by Hamish Moffatt, 22 May 2002. +++// ++ //======================================================================== ++ ++ #include ++@@ -160,12 +162,14 @@ ++ goto err2; ++ } ++ +++#ifdef ENFORCE_PERMISSIONS ++ // check for copy permission ++ if (!doc->okToCopy()) { ++ error(-1, "Copying of text from this document is not allowed."); ++ exitCode = 3; ++ goto err2; ++ } +++#endif ++ ++ // construct text file name ++ if (argc == 3) { +--- xpdf-3.02.orig/debian/patches/fix-CVE-2007-5393_2007-5392_2007-4352.dpatch ++++ xpdf-3.02/debian/patches/fix-CVE-2007-5393_2007-5392_2007-4352.dpatch +@@ -0,0 +1,652 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## fix-CVE-2007-5393_2007-5392_2007-4352.dpatch by Nico Golde ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: No description. ++ ++@DPATCH@ ++diff -urNad xpdf-3.02~/xpdf/Stream.cc xpdf-3.02/xpdf/Stream.cc ++--- xpdf-3.02~/xpdf/Stream.cc 2007-02-27 23:05:52.000000000 +0100 +++++ xpdf-3.02/xpdf/Stream.cc 2007-11-09 09:20:09.000000000 +0100 ++@@ -1245,23 +1245,26 @@ ++ columns = columnsA; ++ if (columns < 1) { ++ columns = 1; ++- } ++- if (columns + 4 <= 0) { ++- columns = INT_MAX - 4; +++ } else if (columns > INT_MAX - 2) { +++ columns = INT_MAX - 2; ++ } ++ rows = rowsA; ++ endOfBlock = endOfBlockA; ++ black = blackA; ++- refLine = (short *)gmallocn(columns + 3, sizeof(short)); ++- codingLine = (short *)gmallocn(columns + 2, sizeof(short)); +++ // 0 <= codingLine[0] < codingLine[1] < ... < codingLine[n] = columns +++ // ---> max codingLine size = columns + 1 +++ // refLine has one extra guard entry at the end +++ // ---> max refLine size = columns + 2 +++ codingLine = (int *)gmallocn(columns + 1, sizeof(int)); +++ refLine = (int *)gmallocn(columns + 2, sizeof(int)); ++ ++ eof = gFalse; ++ row = 0; ++ nextLine2D = encoding < 0; ++ inputBits = 0; ++- codingLine[0] = 0; ++- codingLine[1] = refLine[2] = columns; ++- a0 = 1; +++ codingLine[0] = columns; +++ a0i = 0; +++ outputBits = 0; ++ ++ buf = EOF; ++ } ++@@ -1280,9 +1283,9 @@ ++ row = 0; ++ nextLine2D = encoding < 0; ++ inputBits = 0; ++- codingLine[0] = 0; ++- codingLine[1] = columns; ++- a0 = 1; +++ codingLine[0] = columns; +++ a0i = 0; +++ outputBits = 0; ++ buf = EOF; ++ ++ // skip any initial zero bits and end-of-line marker, and get the 2D ++@@ -1299,211 +1302,230 @@ ++ } ++ } ++ +++inline void CCITTFaxStream::addPixels(int a1, int blackPixels) { +++ if (a1 > codingLine[a0i]) { +++ if (a1 > columns) { +++ error(getPos(), "CCITTFax row is wrong length (%d)", a1); +++ err = gTrue; +++ a1 = columns; +++ } +++ if ((a0i & 1) ^ blackPixels) { +++ ++a0i; +++ } +++ codingLine[a0i] = a1; +++ } +++} +++ +++inline void CCITTFaxStream::addPixelsNeg(int a1, int blackPixels) { +++ if (a1 > codingLine[a0i]) { +++ if (a1 > columns) { +++ error(getPos(), "CCITTFax row is wrong length (%d)", a1); +++ err = gTrue; +++ a1 = columns; +++ } +++ if ((a0i & 1) ^ blackPixels) { +++ ++a0i; +++ } +++ codingLine[a0i] = a1; +++ } else if (a1 < codingLine[a0i]) { +++ if (a1 < 0) { +++ error(getPos(), "Invalid CCITTFax code"); +++ err = gTrue; +++ a1 = 0; +++ } +++ while (a0i > 0 && a1 <= codingLine[a0i - 1]) { +++ --a0i; +++ } +++ codingLine[a0i] = a1; +++ } +++} +++ ++ int CCITTFaxStream::lookChar() { ++ short code1, code2, code3; ++- int a0New; ++- GBool err, gotEOL; ++- int ret; ++- int bits, i; +++ int b1i, blackPixels, i, bits; +++ GBool gotEOL; ++ ++- // if at eof just return EOF ++- if (eof && codingLine[a0] >= columns) { ++- return EOF; +++ if (buf != EOF) { +++ return buf; ++ } ++ ++ // read the next row ++- err = gFalse; ++- if (codingLine[a0] >= columns) { +++ if (outputBits == 0) { +++ +++ // if at eof just return EOF +++ if (eof) { +++ return EOF; +++ } +++ +++ err = gFalse; ++ ++ // 2-D encoding ++ if (nextLine2D) { ++- // state: ++- // a0New = current position in coding line (0 <= a0New <= columns) ++- // codingLine[a0] = last change in coding line ++- // (black-to-white if a0 is even, ++- // white-to-black if a0 is odd) ++- // refLine[b1] = next change in reference line of opposite color ++- // to a0 ++- // invariants: ++- // 0 <= codingLine[a0] <= a0New ++- // <= refLine[b1] <= refLine[b1+1] <= columns ++- // 0 <= a0 <= columns+1 ++- // refLine[0] = 0 ++- // refLine[n] = refLine[n+1] = columns ++- // -- for some 1 <= n <= columns+1 ++- // end condition: ++- // 0 = codingLine[0] <= codingLine[1] < codingLine[2] < ... ++- // < codingLine[n-1] < codingLine[n] = columns ++- // -- where 1 <= n <= columns+1 ++ for (i = 0; codingLine[i] < columns; ++i) { ++ refLine[i] = codingLine[i]; ++ } ++- refLine[i] = refLine[i + 1] = columns; ++- b1 = 1; ++- a0New = codingLine[a0 = 0] = 0; ++- do { +++ refLine[i++] = columns; +++ refLine[i] = columns; +++ codingLine[0] = 0; +++ a0i = 0; +++ b1i = 0; +++ blackPixels = 0; +++ // invariant: +++ // refLine[b1i-1] <= codingLine[a0i] < refLine[b1i] < refLine[b1i+1] +++ // <= columns +++ // exception at left edge: +++ // codingLine[a0i = 0] = refLine[b1i = 0] = 0 is possible +++ // exception at right edge: +++ // refLine[b1i] = refLine[b1i+1] = columns is possible +++ while (codingLine[a0i] < columns) { ++ code1 = getTwoDimCode(); ++ switch (code1) { ++ case twoDimPass: ++- if (refLine[b1] < columns) { ++- a0New = refLine[b1 + 1]; ++- b1 += 2; +++ addPixels(refLine[b1i + 1], blackPixels); +++ if (refLine[b1i + 1] < columns) { +++ b1i += 2; ++ } ++ break; ++ case twoDimHoriz: ++- if ((a0 & 1) == 0) { ++- code1 = code2 = 0; +++ code1 = code2 = 0; +++ if (blackPixels) { ++ do { ++- code1 += code3 = getWhiteCode(); +++ code1 += code3 = getBlackCode(); ++ } while (code3 >= 64); ++ do { ++- code2 += code3 = getBlackCode(); +++ code2 += code3 = getWhiteCode(); ++ } while (code3 >= 64); ++ } else { ++- code1 = code2 = 0; ++ do { ++- code1 += code3 = getBlackCode(); +++ code1 += code3 = getWhiteCode(); ++ } while (code3 >= 64); ++ do { ++- code2 += code3 = getWhiteCode(); +++ code2 += code3 = getBlackCode(); ++ } while (code3 >= 64); ++ } ++- if (code1 > 0 || code2 > 0) { ++- if (a0New + code1 <= columns) { ++- codingLine[a0 + 1] = a0New + code1; ++- } else { ++- codingLine[a0 + 1] = columns; ++- } ++- ++a0; ++- if (codingLine[a0] + code2 <= columns) { ++- codingLine[a0 + 1] = codingLine[a0] + code2; ++- } else { ++- codingLine[a0 + 1] = columns; ++- } ++- ++a0; ++- a0New = codingLine[a0]; ++- while (refLine[b1] <= a0New && refLine[b1] < columns) { ++- b1 += 2; +++ addPixels(codingLine[a0i] + code1, blackPixels); +++ if (codingLine[a0i] < columns) { +++ addPixels(codingLine[a0i] + code2, blackPixels ^ 1); +++ } +++ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +++ b1i += 2; +++ } +++ break; +++ case twoDimVertR3: +++ addPixels(refLine[b1i] + 3, blackPixels); +++ blackPixels ^= 1; +++ if (codingLine[a0i] < columns) { +++ ++b1i; +++ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +++ b1i += 2; ++ } ++ } ++ break; ++- case twoDimVert0: ++- if (refLine[b1] < columns) { ++- a0New = codingLine[++a0] = refLine[b1]; ++- ++b1; ++- while (refLine[b1] <= a0New && refLine[b1] < columns) { ++- b1 += 2; +++ case twoDimVertR2: +++ addPixels(refLine[b1i] + 2, blackPixels); +++ blackPixels ^= 1; +++ if (codingLine[a0i] < columns) { +++ ++b1i; +++ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +++ b1i += 2; ++ } ++- } else { ++- a0New = codingLine[++a0] = columns; ++ } ++ break; ++ case twoDimVertR1: ++- if (refLine[b1] + 1 < columns) { ++- a0New = codingLine[++a0] = refLine[b1] + 1; ++- ++b1; ++- while (refLine[b1] <= a0New && refLine[b1] < columns) { ++- b1 += 2; +++ addPixels(refLine[b1i] + 1, blackPixels); +++ blackPixels ^= 1; +++ if (codingLine[a0i] < columns) { +++ ++b1i; +++ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +++ b1i += 2; ++ } ++- } else { ++- a0New = codingLine[++a0] = columns; ++ } ++ break; ++- case twoDimVertL1: ++- if (refLine[b1] - 1 > a0New || (a0 == 0 && refLine[b1] == 1)) { ++- a0New = codingLine[++a0] = refLine[b1] - 1; ++- --b1; ++- while (refLine[b1] <= a0New && refLine[b1] < columns) { ++- b1 += 2; +++ case twoDimVert0: +++ addPixels(refLine[b1i], blackPixels); +++ blackPixels ^= 1; +++ if (codingLine[a0i] < columns) { +++ ++b1i; +++ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +++ b1i += 2; ++ } ++ } ++ break; ++- case twoDimVertR2: ++- if (refLine[b1] + 2 < columns) { ++- a0New = codingLine[++a0] = refLine[b1] + 2; ++- ++b1; ++- while (refLine[b1] <= a0New && refLine[b1] < columns) { ++- b1 += 2; +++ case twoDimVertL3: +++ addPixelsNeg(refLine[b1i] - 3, blackPixels); +++ blackPixels ^= 1; +++ if (codingLine[a0i] < columns) { +++ if (b1i > 0) { +++ --b1i; +++ } else { +++ ++b1i; +++ } +++ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +++ b1i += 2; ++ } ++- } else { ++- a0New = codingLine[++a0] = columns; ++ } ++ break; ++ case twoDimVertL2: ++- if (refLine[b1] - 2 > a0New || (a0 == 0 && refLine[b1] == 2)) { ++- a0New = codingLine[++a0] = refLine[b1] - 2; ++- --b1; ++- while (refLine[b1] <= a0New && refLine[b1] < columns) { ++- b1 += 2; +++ addPixelsNeg(refLine[b1i] - 2, blackPixels); +++ blackPixels ^= 1; +++ if (codingLine[a0i] < columns) { +++ if (b1i > 0) { +++ --b1i; +++ } else { +++ ++b1i; ++ } ++- } ++- break; ++- case twoDimVertR3: ++- if (refLine[b1] + 3 < columns) { ++- a0New = codingLine[++a0] = refLine[b1] + 3; ++- ++b1; ++- while (refLine[b1] <= a0New && refLine[b1] < columns) { ++- b1 += 2; +++ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +++ b1i += 2; ++ } ++- } else { ++- a0New = codingLine[++a0] = columns; ++ } ++ break; ++- case twoDimVertL3: ++- if (refLine[b1] - 3 > a0New || (a0 == 0 && refLine[b1] == 3)) { ++- a0New = codingLine[++a0] = refLine[b1] - 3; ++- --b1; ++- while (refLine[b1] <= a0New && refLine[b1] < columns) { ++- b1 += 2; +++ case twoDimVertL1: +++ addPixelsNeg(refLine[b1i] - 1, blackPixels); +++ blackPixels ^= 1; +++ if (codingLine[a0i] < columns) { +++ if (b1i > 0) { +++ --b1i; +++ } else { +++ ++b1i; +++ } +++ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) { +++ b1i += 2; ++ } ++ } ++ break; ++ case EOF: +++ addPixels(columns, 0); ++ eof = gTrue; ++- codingLine[a0 = 0] = columns; ++- return EOF; +++ break; ++ default: ++ error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1); +++ addPixels(columns, 0); ++ err = gTrue; ++ break; ++ } ++- } while (codingLine[a0] < columns); +++ } ++ ++ // 1-D encoding ++ } else { ++- codingLine[a0 = 0] = 0; ++- while (1) { +++ codingLine[0] = 0; +++ a0i = 0; +++ blackPixels = 0; +++ while (codingLine[a0i] < columns) { ++ code1 = 0; ++- do { ++- code1 += code3 = getWhiteCode(); ++- } while (code3 >= 64); ++- codingLine[a0+1] = codingLine[a0] + code1; ++- ++a0; ++- if (codingLine[a0] >= columns) { ++- break; ++- } ++- code2 = 0; ++- do { ++- code2 += code3 = getBlackCode(); ++- } while (code3 >= 64); ++- codingLine[a0+1] = codingLine[a0] + code2; ++- ++a0; ++- if (codingLine[a0] >= columns) { ++- break; +++ if (blackPixels) { +++ do { +++ code1 += code3 = getBlackCode(); +++ } while (code3 >= 64); +++ } else { +++ do { +++ code1 += code3 = getWhiteCode(); +++ } while (code3 >= 64); ++ } +++ addPixels(codingLine[a0i] + code1, blackPixels); +++ blackPixels ^= 1; ++ } ++ } ++ ++- if (codingLine[a0] != columns) { ++- error(getPos(), "CCITTFax row is wrong length (%d)", codingLine[a0]); ++- // force the row to be the correct length ++- while (codingLine[a0] > columns) { ++- --a0; ++- } ++- codingLine[++a0] = columns; ++- err = gTrue; ++- } ++- ++ // byte-align the row ++ if (byteAlign) { ++ inputBits &= ~7; ++@@ -1562,14 +1584,17 @@ ++ // this if we know the stream contains end-of-line markers because ++ // the "just plow on" technique tends to work better otherwise ++ } else if (err && endOfLine) { ++- do { +++ while (1) { +++ code1 = lookBits(13); ++ if (code1 == EOF) { ++ eof = gTrue; ++ return EOF; ++ } +++ if ((code1 >> 1) == 0x001) { +++ break; +++ } ++ eatBits(1); ++- code1 = lookBits(13); ++- } while ((code1 >> 1) != 0x001); +++ } ++ eatBits(12); ++ if (encoding > 0) { ++ eatBits(1); ++@@ -1577,11 +1602,11 @@ ++ } ++ } ++ ++- a0 = 0; ++- outputBits = codingLine[1] - codingLine[0]; ++- if (outputBits == 0) { ++- a0 = 1; ++- outputBits = codingLine[2] - codingLine[1]; +++ // set up for output +++ if (codingLine[0] > 0) { +++ outputBits = codingLine[a0i = 0]; +++ } else { +++ outputBits = codingLine[a0i = 1]; ++ } ++ ++ ++row; ++@@ -1589,39 +1614,43 @@ ++ ++ // get a byte ++ if (outputBits >= 8) { ++- ret = ((a0 & 1) == 0) ? 0xff : 0x00; ++- if ((outputBits -= 8) == 0) { ++- ++a0; ++- if (codingLine[a0] < columns) { ++- outputBits = codingLine[a0 + 1] - codingLine[a0]; ++- } +++ buf = (a0i & 1) ? 0x00 : 0xff; +++ outputBits -= 8; +++ if (outputBits == 0 && codingLine[a0i] < columns) { +++ ++a0i; +++ outputBits = codingLine[a0i] - codingLine[a0i - 1]; ++ } ++ } else { ++ bits = 8; ++- ret = 0; +++ buf = 0; ++ do { ++ if (outputBits > bits) { ++- i = bits; ++- bits = 0; ++- if ((a0 & 1) == 0) { ++- ret |= 0xff >> (8 - i); +++ buf <<= bits; +++ if (!(a0i & 1)) { +++ buf |= 0xff >> (8 - bits); ++ } ++- outputBits -= i; +++ outputBits -= bits; +++ bits = 0; ++ } else { ++- i = outputBits; ++- bits -= outputBits; ++- if ((a0 & 1) == 0) { ++- ret |= (0xff >> (8 - i)) << bits; +++ buf <<= outputBits; +++ if (!(a0i & 1)) { +++ buf |= 0xff >> (8 - outputBits); ++ } +++ bits -= outputBits; ++ outputBits = 0; ++- ++a0; ++- if (codingLine[a0] < columns) { ++- outputBits = codingLine[a0 + 1] - codingLine[a0]; +++ if (codingLine[a0i] < columns) { +++ ++a0i; +++ outputBits = codingLine[a0i] - codingLine[a0i - 1]; +++ } else if (bits > 0) { +++ buf <<= bits; +++ bits = 0; ++ } ++ } ++- } while (bits > 0 && codingLine[a0] < columns); +++ } while (bits); +++ } +++ if (black) { +++ buf ^= 0xff; ++ } ++- buf = black ? (ret ^ 0xff) : ret; ++ return buf; ++ } ++ ++@@ -1663,6 +1692,9 @@ ++ code = 0; // make gcc happy ++ if (endOfBlock) { ++ code = lookBits(12); +++ if (code == EOF) { +++ return 1; +++ } ++ if ((code >> 5) == 0) { ++ p = &whiteTab1[code]; ++ } else { ++@@ -1675,6 +1707,9 @@ ++ } else { ++ for (n = 1; n <= 9; ++n) { ++ code = lookBits(n); +++ if (code == EOF) { +++ return 1; +++ } ++ if (n < 9) { ++ code <<= 9 - n; ++ } ++@@ -1686,6 +1721,9 @@ ++ } ++ for (n = 11; n <= 12; ++n) { ++ code = lookBits(n); +++ if (code == EOF) { +++ return 1; +++ } ++ if (n < 12) { ++ code <<= 12 - n; ++ } ++@@ -1711,9 +1749,12 @@ ++ code = 0; // make gcc happy ++ if (endOfBlock) { ++ code = lookBits(13); +++ if (code == EOF) { +++ return 1; +++ } ++ if ((code >> 7) == 0) { ++ p = &blackTab1[code]; ++- } else if ((code >> 9) == 0) { +++ } else if ((code >> 9) == 0 && (code >> 7) != 0) { ++ p = &blackTab2[(code >> 1) - 64]; ++ } else { ++ p = &blackTab3[code >> 7]; ++@@ -1725,6 +1766,9 @@ ++ } else { ++ for (n = 2; n <= 6; ++n) { ++ code = lookBits(n); +++ if (code == EOF) { +++ return 1; +++ } ++ if (n < 6) { ++ code <<= 6 - n; ++ } ++@@ -1736,6 +1780,9 @@ ++ } ++ for (n = 7; n <= 12; ++n) { ++ code = lookBits(n); +++ if (code == EOF) { +++ return 1; +++ } ++ if (n < 12) { ++ code <<= 12 - n; ++ } ++@@ -1749,6 +1796,9 @@ ++ } ++ for (n = 10; n <= 13; ++n) { ++ code = lookBits(n); +++ if (code == EOF) { +++ return 1; +++ } ++ if (n < 13) { ++ code <<= 13 - n; ++ } ++@@ -1963,6 +2013,12 @@ ++ // allocate a buffer for the whole image ++ bufWidth = ((width + mcuWidth - 1) / mcuWidth) * mcuWidth; ++ bufHeight = ((height + mcuHeight - 1) / mcuHeight) * mcuHeight; +++ if (bufWidth <= 0 || bufHeight <= 0 || +++ bufWidth > INT_MAX / bufWidth / (int)sizeof(int)) { +++ error(getPos(), "Invalid image size in DCT stream"); +++ y = height; +++ return; +++ } ++ for (i = 0; i < numComps; ++i) { ++ frameBuf[i] = (int *)gmallocn(bufWidth * bufHeight, sizeof(int)); ++ memset(frameBuf[i], 0, bufWidth * bufHeight * sizeof(int)); ++@@ -3038,6 +3094,11 @@ ++ } ++ scanInfo.firstCoeff = str->getChar(); ++ scanInfo.lastCoeff = str->getChar(); +++ if (scanInfo.firstCoeff < 0 || scanInfo.lastCoeff > 63 || +++ scanInfo.firstCoeff > scanInfo.lastCoeff) { +++ error(getPos(), "Bad DCT coefficient numbers in scan info block"); +++ return gFalse; +++ } ++ c = str->getChar(); ++ scanInfo.ah = (c >> 4) & 0x0f; ++ scanInfo.al = c & 0x0f; ++diff -urNad xpdf-3.02~/xpdf/Stream.h xpdf-3.02/xpdf/Stream.h ++--- xpdf-3.02~/xpdf/Stream.h 2007-02-27 23:05:52.000000000 +0100 +++++ xpdf-3.02/xpdf/Stream.h 2007-11-09 09:20:09.000000000 +0100 ++@@ -528,13 +528,15 @@ ++ int row; // current row ++ int inputBuf; // input buffer ++ int inputBits; // number of bits in input buffer ++- short *refLine; // reference line changing elements ++- int b1; // index into refLine ++- short *codingLine; // coding line changing elements ++- int a0; // index into codingLine +++ int *codingLine; // coding line changing elements +++ int *refLine; // reference line changing elements +++ int a0i; // index into codingLine +++ GBool err; // error on current line ++ int outputBits; // remaining ouput bits ++ int buf; // character buffer ++ +++ void addPixels(int a1, int black); +++ void addPixelsNeg(int a1, int black); ++ short getTwoDimCode(); ++ short getWhiteCode(); ++ short getBlackCode(); +--- xpdf-3.02.orig/debian/patches/10_add_accelerators.dpatch ++++ xpdf-3.02/debian/patches/10_add_accelerators.dpatch +@@ -0,0 +1,33 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 10_add_accelerators.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Add keyboard accelerators for rotate (#385962) ++ ++@DPATCH@ ++diff -urNad xpdf-3.02~/xpdf/XPDFViewer.cc xpdf-3.02/xpdf/XPDFViewer.cc ++--- xpdf-3.02~/xpdf/XPDFViewer.cc 2007-04-25 01:40:50.000000000 +1000 +++++ xpdf-3.02/xpdf/XPDFViewer.cc 2007-04-25 01:42:13.000000000 +1000 ++@@ -1958,16 +1958,22 @@ ++ n = 0; ++ s = XmStringCreateLocalized("Rotate counterclockwise"); ++ XtSetArg(args[n], XmNlabelString, s); ++n; +++ s2 = XmStringCreateLocalized("["); +++ XtSetArg(args[n], XmNacceleratorText, s2); ++n; ++ btn = XmCreatePushButton(popupMenu, "rotateCCW", args, n); ++ XmStringFree(s); +++ XmStringFree(s2); ++ XtManageChild(btn); ++ XtAddCallback(btn, XmNactivateCallback, ++ &rotateCCWCbk, (XtPointer)this); ++ n = 0; ++ s = XmStringCreateLocalized("Rotate clockwise"); ++ XtSetArg(args[n], XmNlabelString, s); ++n; +++ s2 = XmStringCreateLocalized("]"); +++ XtSetArg(args[n], XmNacceleratorText, s2); ++n; ++ btn = XmCreatePushButton(popupMenu, "rotateCW", args, n); ++ XmStringFree(s); +++ XmStringFree(s2); ++ XtManageChild(btn); ++ XtAddCallback(btn, XmNactivateCallback, ++ &rotateCWCbk, (XtPointer)this); +--- xpdf-3.02.orig/debian/patches/fix-CVE-2007-3387_CVE-2007-5049.dpatch ++++ xpdf-3.02/debian/patches/fix-CVE-2007-3387_CVE-2007-5049.dpatch +@@ -0,0 +1,31 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## fix-CVE-2007-3387_CVE-2007-5049.dpatch by Nico Golde ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: No description. ++ ++@DPATCH@ ++diff -urNad xpdf-3.02~/xpdf/Stream.cc xpdf-3.02/xpdf/Stream.cc ++--- xpdf-3.02~/xpdf/Stream.cc 2007-02-27 23:05:52.000000000 +0100 +++++ xpdf-3.02/xpdf/Stream.cc 2007-09-27 12:04:52.000000000 +0200 ++@@ -410,15 +410,13 @@ ++ ok = gFalse; ++ ++ nVals = width * nComps; ++- if (width <= 0 || nComps <= 0 || nBits <= 0 || ++- nComps >= INT_MAX / nBits || ++- width >= INT_MAX / nComps / nBits || ++- nVals * nBits + 7 < 0) { ++- return; ++- } ++ pixBytes = (nComps * nBits + 7) >> 3; ++ rowBytes = ((nVals * nBits + 7) >> 3) + pixBytes; ++- if (rowBytes <= 0) { +++ if (width <= 0 || nComps <= 0 || nBits <= 0 || +++ nComps > gfxColorMaxComps || +++ nBits > 16 || +++ width >= INT_MAX / nComps || // check for overflow in nVals +++ nVals >= (INT_MAX - 7) / nBits) { // check for overflow in rowBytes ++ return; ++ } ++ predLine = (Guchar *)gmalloc(rowBytes); +--- xpdf-3.02.orig/debian/patches/99_autoconf.dpatch ++++ xpdf-3.02/debian/patches/99_autoconf.dpatch +@@ -0,0 +1,19 @@ ++#! /bin/sh -e ++## DP: run aclocal and autoconf ++ ++dpatch_patch () ++{ ++ tar cf debian/patched/autoconf.tar configure aclocal.m4 ++ aclocal-1.9 -I . ++ autoconf ++} ++ ++dpatch_unpatch () ++{ ++ tar xf debian/patched/autoconf.tar ++} ++ ++DPATCH_LIB_NO_DEFAULT=1 ++ ++. /usr/share/dpatch/dpatch.lib.sh ++ +--- xpdf-3.02.orig/debian/patches/41_lesstif_cpp.dpatch ++++ xpdf-3.02/debian/patches/41_lesstif_cpp.dpatch +@@ -0,0 +1,30 @@ ++#! /bin/sh /usr/share/dpatch/dpatch-run ++## 41_lesstif_cpp.dpatch by ++## ++## All lines beginning with `## DP:' are a description of the patch. ++## DP: Work around mixed C/C++ linkages in lesstif - #377230 ++ ++@DPATCH@ ++diff -urNad xpdf-3.01~/lesstif/Xm/VendorSP.h xpdf-3.01/lesstif/Xm/VendorSP.h ++--- xpdf-3.01~/lesstif/Xm/VendorSP.h 2006-05-28 08:30:56.000000000 +1000 +++++ xpdf-3.01/lesstif/Xm/VendorSP.h 2006-07-15 14:42:38.000000000 +1000 ++@@ -30,10 +30,6 @@ ++ #include ++ #include ++ ++-#ifdef __cplusplus ++-extern "C" { ++-#endif ++- ++ XMLIBEXPORT extern Cardinal _XmFilterResources(XtResource *resources, ++ Cardinal numResources, ++ WidgetClass filterClass, ++@@ -58,8 +54,5 @@ ++ XMLIBEXPORT extern VendorShellClassRec vendorShellClassRec; ++ ++ ++-#ifdef __cplusplus ++-} ++-#endif ++ ++ #endif /* _XM_VENDORSP_H */ +--- xpdf-3.02.orig/debian/zxpdf ++++ xpdf-3.02/debian/zxpdf +@@ -0,0 +1,52 @@ ++#!/bin/bash ++ ++# Copyright (c) 2001 Alcove - http://www.alcove.com/ ++# Please distribute under the terms of the GNU GPL, version 2 ++ ++# Author: Yann Dirson ++# $Id: zxpdf,v 1.1 2001/09/28 10:23:35 ydirson Exp $ ++ ++set -e ++ ++file= ++flags= ++title="zxpdf" ++while [ $# -gt 0 ] ++do ++ case "$1" in ++ -z|-g|-geometry|-remote|-rgb|-papercolor|-eucjp|-t1lib|-ps|-paperw|-paperh) ++ flags="$flags $1 $2"; shift ;; ++ -title) title="$2"; shift ;; ++ -*) flags="$flags $1" ;; ++ *.pdf|*.PDF) file="$1"; shift; pages="$@"; cat=; break ;; ++ *.gz|*.Z) file="$1"; shift; pages="$@"; cat=zcat; break ;; ++ *.bz2) file="$1"; shift; pages="$@"; cat=bzcat; break ;; ++ *) echo >&2 "ERROR: unknown suffix in file \`$1'"; exit 1 ;; ++ esac ++ shift ++done ++ ++if [ $# -ge 1 ] # optional page argument ++then ++ echo >&2 "ERROR: Too many arguments" ++fi ++ ++if [ x"$title" == x -a x"$tmp" != x ] ++then ++ title="zxpdf: $file" ++fi ++ ++if [ -z "$cat" ] ++then ++ tmp="$file" ++else ++ tmp=$(basename "$file") ++ tmp=$(tempfile -p "${tmp%.pdf*}" -s .pdf) ++ $cat "$file" >"$tmp" ++fi ++ ++if [ "$tmp" == "" ]; then ++ exec xpdf -title $title $flags ++else ++ exec xpdf -title $title $flags "$tmp" $pages ++fi +--- xpdf-3.02.orig/debian/copyright ++++ xpdf-3.02/debian/copyright +@@ -0,0 +1,42 @@ ++ ++This is Debian GNU/Linux's prepackaged version of the 'xpdf' viewer written ++by Derek B. Noonburg. This package was original built by ++Dirk Eddelbuettel and since 1998 has been ++maintained by Hamish Moffatt . Current sources are found ++at ++ http://www.foolabs.com/xpdf ++ ++ ++The upstream author's email address is: derekn@foolabs.com ++ ++Copyright: ++ ++Xpdf is copyright 1996-2007 Derek B. Noonburg. ++ ++Xpdf is licensed under the GNU General Public License (GPL), version ++2. In my opinion, the GPL is a convoluted, confusing, ambiguous mess. ++But it's also pervasive, and I'm sick of arguing. And even if it is ++confusing, the basic idea is good. ++ ++In order to cut down on the confusion a little bit, here are some ++informal clarifications: ++ ++- I don't mind if you redistribute xpdf in source and/or binary form, ++ as long as you include all of the documentation: README, man pages ++ (or help files), and COPYING. (Note that the README file contains a ++ pointer to a web page with the source code.) ++ ++- Selling a CD-ROM that contains xpdf is fine with me, as long as it ++ includes the documentation. I wouldn't mind receiving a sample ++ copy, but it's not necessary. ++ ++- If you make useful changes to xpdf, please make the source code ++ available -- post it on a web site, email it to me, whatever. ++ ++For information on commercial licensing and consulting, please see the ++Glyph & Cog web site: ++ ++ http://www.glyphandcog.com/ ++ ++The full text of the GPL can be found in /usr/share/common-licenses/GPL. ++ +--- xpdf-3.02.orig/debian/xpdf.xpm ++++ xpdf-3.02/debian/xpdf.xpm +@@ -0,0 +1,177 @@ ++/* XPM */ ++static char *xpdf[] = { ++/* columns rows colors chars-per-pixel */ ++"32 32 139 2", ++" c #003D000F000F", ++". c #0CE40CE00CE0", ++"X c #1E7600000000", ++"o c #138D13B413B4", ++"O c #19E816001600", ++"+ c #1B021CF31CF3", ++"@ c #26B900000000", ++"# c #2D20004E004E", ++"$ c #2DCD0F260F26", ++"% c #342B0C290C29", ++"& c #39F700000000", ++"* c #35BB16E016E0", ++"= c #3F3D10DC10DC", ++"- c #23C023C023C0", ++"; c #2DB72DF22DF2", ++": c #32B02C2C2C2C", ++"> c #331533153315", ++", c #3D4F3DAB3DAB", ++"< c #412900000000", ++"1 c #4E4400000000", ++"2 c #438A16751675", ++"3 c #552E00090009", ++"4 c #589D00000000", ++"5 c #553814381438", ++"6 c #466A40084008", ++"7 c #578D29C429C4", ++"8 c #63DD00000000", ++"9 c #706515B015B0", ++"0 c #708517F717F7", ++"q c #71D819011901", ++"w c #42B142B242B2", ++"e c #4AB94AB64AB6", ++"r c #5F30420C420C", ++"t c #52F852745274", ++"y c #553A59885988", ++"u c #5C0B535A535A", ++"i c #599959D559D5", ++"p c #618059D459D4", ++"a c #7FA2562B562B", ++"s c #63F465206520", ++"d c #699169916991", ++"f c #7B317B717B71", ++"g c #AE2F00880088", ++"h c #B26E00000000", ++"j c #B8C604F204F2", ++"k c #B90308810881", ++"l c #B13817391739", ++"z c #BFF611DD11DD", ++"x c #A7343C313C31", ++"c c #B6A136E436E4", ++"v c #B14F39523952", ++"b c #A7CA44514451", ++"n c #AC7B5BE65BE6", ++"m c #ABF678C378C3", ++"M c #C79F00000000", ++"N c #CD5500170017", ++"B c #C4B212E112E1", ++"V c #CED416B516B5", ++"C c #DD5300000000", ++"Z c #DCAC0C610C61", ++"A c #D83D139D139D", ++"S c #DCCB13C113C1", ++"D c #D90D194E194E", ++"F c #D87234623462", ++"G c #D84A3CFC3CFC", ++"H c #DED13D643D64", ++"J c #E229000B000B", ++"K c #E2CE09930993", ++"L c #E45115631563", ++"P c #E54D19161916", ++"I c #E2BC21232123", ++"U c #CE1D46944694", ++"Y c #CD8C53CB53CB", ++"T c #D70F42BB42BB", ++"R c #DA5454E754E7", ++"E c #D9295CAA5CAA", ++"W c #CAFD63A163A1", ++"Q c #C9846E7E6E7E", ++"! c #DEBA65C865C8", ++"~ c #DD2D7F957F95", ++"^ c #E4DA44214421", ++"/ c #E3A452AE52AE", ++"( c #ED3959C459C4", ++") c #E22F650D650D", ++"_ c #845284888488", ++"` c #86F188C288C2", ++"' c #8DE18DEE8DEE", ++"] c #935A941B941B", ++"[ c #9CE89CF49CF4", ++"{ c #A7A8850E850E", ++"} c #AA8084FC84FC", ++"| c #AFF888F088F0", ++" . c #B29381928192", ++".. c #B6EE8A448A44", ++"X. c #A3FDA3EBA3EB", ++"o. c #AB35AC0CAC0C", ++"O. c #B246B246B246", ++"+. c #B969B4DDB4DD", ++"@. c #BB90BB8FBB8F", ++"#. c #CD068F7A8F7A", ++"$. c #CDC0936A936A", ++"%. c #D20085B385B3", ++"&. c #D6699ED29ED2", ++"*. c #DC829C599C59", ++"=. c #CD42A62FA62F", ++"-. c #CE21ABF7ABF7", ++";. c #CD9AB2CBB2CB", ++":. c #CD0CC08AC08A", ++">. c #D8C2A77BA77B", ++",. c #EAE89F659F65", ++"<. c #EC71BE37BE37", ++"1. c #F4BBA0EAA0EA", ++"2. c #F5C9AB37AB37", ++"3. c #FB7DAD09AD09", ++"4. c #C526C505C505", ++"5. c #CD07CC65CC65", ++"6. c #D032D33DD33D", ++"7. c #D630C522C522", ++"8. c #DA43C538C538", ++"9. c #DFD0CAA7CAA7", ++"0. c #D260D3EFD3EF", ++"q. c #D4D9D990D990", ++"w. c #DB0BDBC3DBC3", ++"e. c #E08DE8F0E8F0", ++"r. c #E76CC6A0C6A0", ++"t. c #E78BD27BD27B", ++"y. c #EFD9D5B1D5B1", ++"u. c #EAC6DCDCDCDC", ++"i. c #E5DCE474E474", ++"p. c #E7BFEA2AEA2A", ++"a. c #ED83E7CCE7CC", ++"s. c #EBD0EBC8EBC8", ++"d. c #EE64F2ADF2AD", ++"f. c #F714E461E461", ++"g. c #F915E48FE48F", ++"h. c #FD3EEA64EA64", ++"j. c #F276F27AF27A", ++"k. c #FCA4F400F400", ++"l. c #FFF3FFF3FFF3", ++/* pixels */ ++" ", ++" ", ++"< 1 1 3 3 & @ 1 1 @ ", ++"8 N J J J N 4 # g J h # ", ++" 4 N J J J N 4 O w w o o 6 b A h # ", ++" 4 N J C J N 4 , w.5.> O X.4.7.>.% ", ++" 4 N J J J N 4 O.O. ` y.F ! q.O ", ++" 4 N J J J N 4 - 0.o. # ;.2.h 2 , ", ++" 4 N J J J N 4 w s.] @ x p.| # ", ++" 4 N J J J N 4 w p.} g T p._ ", ++" 3 N J J J N 4 e d.%.C U s.f ", ++" . . 3 M J J J N 4 X i k.H g a s.> ", ++" ; @.f t n / D J J B 6 y u .h.l 7 ] j.d t . ", ++" > @.l.w.] s 6.*.K A #.8.W ! u.a.* ; [ d.d t ", ++" o _ 4.l.d d h.A Q e.R C A r.6.o . +.5.o ", ++" + _ j.e i s.0 &.<.A J A 8.4.. . 4.4.o ", ++" _ s.w i p.O o.3.C J S t.4.. o 5.@.. ", ++" ] s.w . ] 6.= -.2.C J P h.~ 4 O i.f ", ++" X.j.w w w...j ,.r.c N ^ k.( N 0 s.i ", ++" o.s.] ' o...z J c 4.5.$.=.f.1.K ) g.X.. ", ++" O 4.O.O + 2 k J g # o + + 5 V P K L D q ", ++" w s.] # g J h # 4 N J J C N 4 ", ++" w p._ @ h J g # 4 N J J J N 4 ", ++" e d.} g J h # 4 N J J J N 4 ", ++" i k.Y J g # 4 N J J J N 4 ", ++" s h.I g # 4 N J J J N 4 ", ++" $ +.s.m # 4 N J J J N 4 ", ++" # g T b : 4 N J J J N 4 ", ++" # h J g # 4 N J J J N < ", ++" @ 1 1 @ & 1 3 1 3 X ", ++" ", ++" " ++}; +--- xpdf-3.02.orig/debian/xpdf-wrapper ++++ xpdf-3.02/debian/xpdf-wrapper +@@ -0,0 +1,5 @@ ++#!/bin/bash ++LANG=C ++LC_ALL=C ++export LANG LC_ALL ++exec -a xpdf xpdf.bin "$@" +--- xpdf-3.02.orig/debian/rules ++++ xpdf-3.02/debian/rules +@@ -0,0 +1,110 @@ ++#!/usr/bin/make -f ++# -*- makefile -*- ++# debian.rules file for the Debian GNU/Linux xpdf package ++# Copyright 1996,1997,1998 by Dirk Eddelbuettel ++# Copyright 1998-2006 by Hamish Moffatt ++ ++build: build-stamp ++build-stamp: patch ++ dh_testdir ++ #CC=gcc-4.0 CXX=g++-4.0 ./configure ++ ./configure \ ++ --prefix=/usr \ ++ --sysconfdir=/etc/xpdf \ ++ --mandir=/usr/share/man \ ++ --with-x \ ++ --enable-freetype2 \ ++ --enable-opi \ ++ --enable-wordlist \ ++ --enable-multithreaded \ ++ --with-Xm-includes=$(shell pwd)/lesstif \ ++ --with-freetype2-includes=/usr/include/freetype2 \ ++ --with-t1-includes=/usr/include ++ $(MAKE) ++ touch build-stamp ++ ++clean: clean1 unpatch ++clean1: ++ dh_testdir ++ -$(MAKE) -i distclean ++ rm -rf *~ debian/*~ debian/files* build-stamp aconf.h ++ rm -rf fofi/Makefile splash/Makefile ++ dh_clean ++ ++binary-indep: # Nothing to build ++ dh_testdir ++ dh_installdirs -i ++ ln -sf xpdf-common debian/xpdf/usr/share/doc/xpdf ++ ++ cp doc/xpdfrc.5 debian/xpdf-common/usr/share/man/man5 ++ cp debian/xpdfrc debian/xpdf-common/usr/share/doc/xpdf-common/examples/sample-xpdfrc ++ cp debian/update-xpdfrc debian/xpdf-common/usr/sbin ++ chmod +x debian/xpdf-common/usr/sbin/update-xpdfrc ++ cp debian/xpdfrc debian/xpdf-common/etc/xpdf ++ cp debian/xpdf-bug-control debian/xpdf/usr/share/bug/xpdf/control ++ ++ dh_installdocs -pxpdf-common README debian/README.Debian ++ dh_installchangelogs -pxpdf-common CHANGES ++ cp debian/update-xpdfrc.8 debian/xpdf-common/usr/share/man/man8 ++ ++ cp -a debian/lang/* debian/xpdf-common/ ++ ++ dh_compress -i ++ dh_fixperms -i ++ dh_installdeb -i ++ dh_shlibdeps -i ++ dh_gencontrol -i ++ dh_md5sums -i ++ dh_builddeb -i ++ ++binary-arch: build ++ dh_testdir ++ ++ dh_installdirs -a ++ mkdir -p debian/tmp ++ mkdir -p debian/tmp/usr/share ++ $(MAKE) install DESTDIR=`pwd`/debian/tmp ++ ++ ln -sf xpdf-common debian/xpdf-reader/usr/share/doc/xpdf-reader ++ ln -sf xpdf-common debian/xpdf-utils/usr/share/doc/xpdf-utils ++ ++ cp debian/zxpdf debian/xpdf-reader/usr/bin ++ chmod +x debian/xpdf-reader/usr/bin/zxpdf ++ ln -sf xpdf.1.gz debian/xpdf-reader/usr/share/man/man1/zxpdf.1.gz ++ ln -sf xpdf.1.gz debian/xpdf-reader/usr/share/man/man1/xpdf.bin.1.gz ++ ++ cp debian/xpdf.xpm debian/xpdf-reader/usr/share/pixmaps ++ ++ dh_installdocs -a ++ dh_movefiles -a ++ rm -rf debian/tmp ++ ++ # rename xpdf binary and install wrapper script ++ mv debian/xpdf-reader/usr/bin/xpdf debian/xpdf-reader/usr/bin/xpdf.bin ++ cp debian/xpdf-wrapper debian/xpdf-reader/usr/bin/xpdf ++ chmod +x debian/xpdf-reader/usr/bin/xpdf ++ cp debian/xpdf.desktop debian/xpdf-reader/usr/share/applications/ ++ ++ dh_installmime -pxpdf-reader ++ dh_installmenu -pxpdf-reader ++ dh_strip -a ++ dh_desktop -a ++ dh_compress -a ++ dh_fixperms -a ++ dh_installdeb -a ++ dh_shlibdeps -a ++ dh_gencontrol -a ++ dh_md5sums -a ++ dh_builddeb -a ++ ++patch: patch-stamp ++patch-stamp: ++ dpatch apply-all ++ #dpatch call-all -a=pkg-info >patch-stamp ++ touch patch-stamp ++ ++unpatch: ++ dpatch deapply-all ++ rm -rf patch-stamp debian/patched ++ ++binary: binary-indep binary-arch diff --git a/source/xap/xpdf/xpdfrc.diff b/source/xap/xpdf/xpdfrc.diff new file mode 100644 index 000000000..f005414e0 --- /dev/null +++ b/source/xap/xpdf/xpdfrc.diff @@ -0,0 +1,43 @@ +--- ./doc/sample-xpdfrc.orig 2005-08-17 00:34:30.000000000 -0500 ++++ ./doc/sample-xpdfrc 2007-02-17 21:26:12.000000000 -0600 +@@ -29,20 +29,20 @@ + # installed in a "standard" location, xpdf will find them + # automatically.) + +-#displayFontT1 Times-Roman /usr/local/share/ghostscript/fonts/n021003l.pfb +-#displayFontT1 Times-Italic /usr/local/share/ghostscript/fonts/n021023l.pfb +-#displayFontT1 Times-Bold /usr/local/share/ghostscript/fonts/n021004l.pfb +-#displayFontT1 Times-BoldItalic /usr/local/share/ghostscript/fonts/n021024l.pfb +-#displayFontT1 Helvetica /usr/local/share/ghostscript/fonts/n019003l.pfb +-#displayFontT1 Helvetica-Oblique /usr/local/share/ghostscript/fonts/n019023l.pfb +-#displayFontT1 Helvetica-Bold /usr/local/share/ghostscript/fonts/n019004l.pfb +-#displayFontT1 Helvetica-BoldOblique /usr/local/share/ghostscript/fonts/n019024l.pfb +-#displayFontT1 Courier /usr/local/share/ghostscript/fonts/n022003l.pfb +-#displayFontT1 Courier-Oblique /usr/local/share/ghostscript/fonts/n022023l.pfb +-#displayFontT1 Courier-Bold /usr/local/share/ghostscript/fonts/n022004l.pfb +-#displayFontT1 Courier-BoldOblique /usr/local/share/ghostscript/fonts/n022024l.pfb +-#displayFontT1 Symbol /usr/local/share/ghostscript/fonts/s050000l.pfb +-#displayFontT1 ZapfDingbats /usr/local/share/ghostscript/fonts/d050000l.pfb ++displayFontT1 Times-Roman /usr/share/ghostscript/fonts/n021003l.pfb ++displayFontT1 Times-Italic /usr/share/ghostscript/fonts/n021023l.pfb ++displayFontT1 Times-Bold /usr/share/ghostscript/fonts/n021004l.pfb ++displayFontT1 Times-BoldItalic /usr/share/ghostscript/fonts/n021024l.pfb ++displayFontT1 Helvetica /usr/share/ghostscript/fonts/n019003l.pfb ++displayFontT1 Helvetica-Oblique /usr/share/ghostscript/fonts/n019023l.pfb ++displayFontT1 Helvetica-Bold /usr/share/ghostscript/fonts/n019004l.pfb ++displayFontT1 Helvetica-BoldOblique /usr/share/ghostscript/fonts/n019024l.pfb ++displayFontT1 Courier /usr/share/ghostscript/fonts/n022003l.pfb ++displayFontT1 Courier-Oblique /usr/share/ghostscript/fonts/n022023l.pfb ++displayFontT1 Courier-Bold /usr/share/ghostscript/fonts/n022004l.pfb ++displayFontT1 Courier-BoldOblique /usr/share/ghostscript/fonts/n022024l.pfb ++displayFontT1 Symbol /usr/share/ghostscript/fonts/s050000l.pfb ++displayFontT1 ZapfDingbats /usr/share/ghostscript/fonts/d050000l.pfb + + # If you need to display PDF files that refer to non-embedded fonts, + # you should add one or more fontDir options to point to the +@@ -88,4 +88,4 @@ + # Set the command used to run a web browser when a URL hyperlink is + # clicked. + +-#urlCommand "netscape -remote 'openURL(%s)'" ++#urlCommand "firefox -remote 'openURL(%s)'" diff --git a/source/xap/xsane/slack-desc b/source/xap/xsane/slack-desc new file mode 100644 index 000000000..330a2e566 --- /dev/null +++ b/source/xap/xsane/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xsane: xsane (Graphical frontend to SANE, Scanner Access Now Easy) +xsane: +xsane: xsane provides a graphical user-interface to control an image +xsane: acquisition device such as a flatbed scanner. It allows previewing +xsane: and scanning individual images and can be invoked either directly +xsane: from the command-line or through the GIMP image manipulation program. +xsane: +xsane: xsane accesses image acquisition devices through the SANE (Scanner +xsane: Access Now Easy) interface. +xsane: +xsane: diff --git a/source/xap/xsane/xsane.SlackBuild b/source/xap/xsane/xsane.SlackBuild new file mode 100755 index 000000000..f8d730124 --- /dev/null +++ b/source/xap/xsane/xsane.SlackBuild @@ -0,0 +1,96 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=0.996 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xsane + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf xsane-$VERSION +tar xvf $CWD/xsane-$VERSION.tar.bz2 || exit 1 +cd xsane-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +rmdir $PKG/usr/sbin + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/xsane-$VERSION +cp -a \ + xsane.* \ + $PKG/usr/doc/xsane-$VERSION +rm -f $PKG/usr/doc/xsane-$VERSION/xsane.spec* +( cd $PKG/usr/doc/xsane-$VERSION ; ln -s /usr/share/sane/xsane/doc html ) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xsane-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xscreensaver/setuid.c b/source/xap/xscreensaver/setuid.c new file mode 100644 index 000000000..343dcf097 --- /dev/null +++ b/source/xap/xscreensaver/setuid.c @@ -0,0 +1,274 @@ +/* setuid.c --- management of runtime privileges. + * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include /* not used for much... */ + +/* This file doesn't need the Xt headers, so stub these types out... */ +#undef XtPointer +#define XtAppContext void* +#define XrmDatabase void* +#define XtIntervalId void* +#define XtPointer void* +#define Widget void* + +#include "xscreensaver.h" + +#ifndef EPERM +#include +#endif + +#include /* for getpwnam() and struct passwd */ +#include /* for getgrgid() and struct group */ + +static const char * +uid_gid_string (uid_t uid, gid_t gid) +{ + static char buf[255]; + struct passwd *p = 0; + struct group *g = 0; + p = getpwuid (uid); + g = getgrgid (gid); + sprintf (buf, "%s/%s (%ld/%ld)", + (p && p->pw_name ? p->pw_name : "???"), + (g && g->gr_name ? g->gr_name : "???"), + (long) uid, (long) gid); + return buf; +} + + +void +describe_uids (saver_info *si, FILE *out) +{ + uid_t uid = getuid(); + gid_t gid = getgid(); + uid_t euid = geteuid(); + gid_t egid = getegid(); + char *s1 = strdup (uid_gid_string (uid, gid)); + char *s2 = strdup (uid_gid_string (euid, egid)); + + if (si->orig_uid && *si->orig_uid && + (!!strcmp (si->orig_uid, s1) || + !!strcmp (si->orig_uid, s2))) + fprintf (out, "%s: initial effective uid/gid was %s\n", blurb(), + si->orig_uid); + + fprintf (out, "%s: running as %s", blurb(), s1); + if (uid != euid || gid != egid) + fprintf (out, "; effectively %s", s2); + fprintf(out, "\n"); + free(s1); + free(s2); +} + + +static int +set_ids_by_number (uid_t uid, gid_t gid, char **message_ret) +{ + int uid_errno = 0; + int gid_errno = 0; + struct passwd *p = getpwuid (uid); + struct group *g = getgrgid (gid); + + if (message_ret) + *message_ret = 0; + + /* Rumor has it that some implementations of of setuid() do nothing + when called with -1; therefore, if the "nobody" user has a uid of + -1, then that would be Really Bad. Rumor further has it that such + systems really ought to be using -2 for "nobody", since that works. + So, if we get a uid (or gid, for good measure) of -1, switch to -2 + instead. Note that this must be done after we've looked up the + user/group names with getpwuid(-1) and/or getgrgid(-1). + */ + if (gid == (gid_t) -1) gid = (gid_t) -2; + if (uid == (uid_t) -1) uid = (uid_t) -2; + + errno = 0; + if (setgid (gid) != 0) + gid_errno = errno ? errno : -1; + + errno = 0; + if (setuid (uid) != 0) + uid_errno = errno ? errno : -1; + + if (uid_errno == 0 && gid_errno == 0) + { + static char buf [1024]; + sprintf (buf, "changed uid/gid to %s/%s (%ld/%ld).", + (p && p->pw_name ? p->pw_name : "???"), + (g && g->gr_name ? g->gr_name : "???"), + (long) uid, (long) gid); + if (message_ret) + *message_ret = buf; + return 0; + } + else + { + char buf [1024]; + if (gid_errno) + { + sprintf (buf, "%s: couldn't set gid to %s (%ld)", + blurb(), + (g && g->gr_name ? g->gr_name : "???"), + (long) gid); + if (gid_errno == -1) + fprintf(stderr, "%s: unknown error\n", buf); + else + perror(buf); + } + + if (uid_errno) + { + sprintf (buf, "%s: couldn't set uid to %s (%ld)", + blurb(), + (p && p->pw_name ? p->pw_name : "???"), + (long) uid); + if (uid_errno == -1) + fprintf(stderr, "%s: unknown error\n", buf); + else + perror(buf); + } + + return -1; + } +} + + +/* If we've been run as setuid or setgid to someone else (most likely root) + turn off the extra permissions so that random user-specified programs + don't get special privileges. (On some systems it is necessary to install + this program as setuid root in order to read the passwd file to implement + lock-mode.) + + *** WARNING: DO NOT DISABLE ANY OF THE FOLLOWING CODE! + If you do so, you will open a security hole. See the sections + of the xscreensaver manual titled "LOCKING AND ROOT LOGINS", + and "USING XDM". + */ +void +hack_uid (saver_info *si) +{ + + /* Discard privileges, and set the effective user/group ids to the + real user/group ids. That is, give up our "chmod +s" rights. + */ + { + uid_t euid = geteuid(); + gid_t egid = getegid(); + uid_t uid = getuid(); + gid_t gid = getgid(); + + si->orig_uid = strdup (uid_gid_string (euid, egid)); + + if (uid != euid || gid != egid) + if (set_ids_by_number (uid, gid, &si->uid_message) != 0) + saver_exit (si, 1, 0); + } + + + /* Locking can't work when running as root, because we have no way of + knowing what the user id of the logged in user is (so we don't know + whose password to prompt for.) + + *** WARNING: DO NOT DISABLE THIS CODE! + If you do so, you will open a security hole. See the sections + of the xscreensaver manual titled "LOCKING AND ROOT LOGINS", + and "USING XDM". + */ + if (getuid() == (uid_t) 0) + { + si->locking_disabled_p = True; + si->nolock_reason = "running as root"; + } + + + /* If we're running as root, switch to a safer user. This is above and + beyond the fact that we've disabling locking, above -- the theory is + that running graphics demos as root is just always a stupid thing + to do, since they have probably never been security reviewed and are + more likely to be buggy than just about any other kind of program. + (And that assumes non-malicious code. There are also attacks here.) + + *** WARNING: DO NOT DISABLE THIS CODE! + If you do so, you will open a security hole. See the sections + of the xscreensaver manual titled "LOCKING AND ROOT LOGINS", + and "USING XDM". + */ + if (getuid() == (uid_t) 0) + { + struct passwd *p; + + p = getpwnam ("nobody"); + if (! p) p = getpwnam ("noaccess"); + if (! p) p = getpwnam ("daemon"); + if (! p) + { + fprintf (stderr, + "%s: running as root, and couldn't find a safer uid.\n", + blurb()); + saver_exit(si, 1, 0); + } + + if (set_ids_by_number (p->pw_uid, p->pw_gid, &si->uid_message) != 0) + saver_exit (si, -1, 0); + } + + + /* If there's anything even remotely funny looking about the passwd struct, + or if we're running as some other user from the list below (a + non-comprehensive selection of users known to be privileged in some way, + and not normal end-users) then disable locking. If it was possible, + switching to "nobody" would be the thing to do, but only root itself has + the privs to do that. + + *** WARNING: DO NOT DISABLE THIS CODE! + If you do so, you will open a security hole. See the sections + of the xscreensaver manual titled "LOCKING AND ROOT LOGINS", + and "USING XDM". + */ + { + uid_t uid = getuid (); /* get it again */ + struct passwd *p = getpwuid (uid); /* get it again */ + + if (!p || + uid == (uid_t) 0 || + uid == (uid_t) -1 || + uid == (uid_t) -2 || + p->pw_uid == (uid_t) 0 || + p->pw_uid == (uid_t) -1 || + p->pw_uid == (uid_t) -2 || + !p->pw_name || + !*p->pw_name || + !strcmp (p->pw_name, "root") || + !strcmp (p->pw_name, "nobody") || + !strcmp (p->pw_name, "noaccess") || + !strcmp (p->pw_name, "operator") || + !strcmp (p->pw_name, "daemon") || + !strcmp (p->pw_name, "bin") || + !strcmp (p->pw_name, "adm") || + !strcmp (p->pw_name, "sys") || + !strcmp (p->pw_name, "games")) + { + static char buf [1024]; + sprintf (buf, "running as %s", + (p && p->pw_name && *p->pw_name + ? p->pw_name : "")); + si->nolock_reason = buf; + si->locking_disabled_p = True; + si->dangerous_uid_p = True; + } + } +} diff --git a/source/xap/xscreensaver/slack-desc b/source/xap/xscreensaver/slack-desc new file mode 100644 index 000000000..85e2b909c --- /dev/null +++ b/source/xap/xscreensaver/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xscreensaver: xscreensaver (a screen saver and locker for X) +xscreensaver: +xscreensaver: A modular screen saver and locker for the X Window System. Highly +xscreensaver: customizable: allows the use of any program that can draw on the +xscreensaver: root window as a display mode. More than 100 display modes are +xscreensaver: included in this package. +xscreensaver: +xscreensaver: +xscreensaver: +xscreensaver: +xscreensaver: diff --git a/source/xap/xscreensaver/xscreensaver.SlackBuild b/source/xap/xscreensaver/xscreensaver.SlackBuild new file mode 100755 index 000000000..4eb2fdfd4 --- /dev/null +++ b/source/xap/xscreensaver/xscreensaver.SlackBuild @@ -0,0 +1,103 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=5.08 +ARCH=${ARCH:-x86_64} +NUMJOBS=${NUMJOBS:-" -j7 "} +BUILD=${BUILD:-2} + + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xscreensaver + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf xscreensaver-$VERSION +tar xvf $CWD/xscreensaver-$VERSION.tar.?z* || exit 1 +cd xscreensaver-$VERSION + +# Allow xscreensaver to work setgid shadow. I'd rather avoid requiring +# setuid root on this if at all possible... +zcat $CWD/xscreensaver.setuid.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Add support for the electricsheep distributed screensaver: +zcat $CWD/xscreensaver.electricsheep.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +xml_config=/usr/bin/xml-config xml2_config=/usr/bin/xml2-config \ + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --mandir=/usr/man \ + --with-x-app-defaults=/etc/X11/app-defaults \ + --with-shadow \ + --with-jpeg \ + --with-gl \ + --build=$ARCH-slackware-linux + +# We use '-i' because xscreensaver's NLS support has always been horribly broken +make -i $NUMJOBS || make -i +make -i install_prefix=$PKG install-strip + +gzip -9 $PKG/usr/man/man?/* + +chown root:shadow $PKG/usr/bin/xscreensaver +chmod 2751 $PKG/usr/bin/xscreensaver + +# This is needed for the menus: +mkdir -p $PKG/usr/share/pixmaps +mkdir -p $PKG/etc +mkdir -p $PKG/usr/doc/xscreensaver-$VERSION +cp -a \ + README* \ + $PKG/usr/doc/xscreensaver-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/xscreensaver-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xscreensaver/xscreensaver.electricsheep.diff b/source/xap/xscreensaver/xscreensaver.electricsheep.diff new file mode 100644 index 000000000..27b11961c --- /dev/null +++ b/source/xap/xscreensaver/xscreensaver.electricsheep.diff @@ -0,0 +1,20 @@ +--- ./driver/XScreenSaver_ad.h.orig 2008-12-28 01:59:19.000000000 -0600 ++++ ./driver/XScreenSaver_ad.h 2009-05-15 16:22:44.000000000 -0500 +@@ -138,6 +138,7 @@ + squiral -root \\n\ + wander -root \\n\ + - webcollage -root \\n\ ++ electricsheep --root 1 \\n\ + xflame -root \\n\ + xmatrix -root \\n\ + GL: gflux -root \\n\ +--- ./driver/XScreenSaver.ad.in.orig 2008-12-28 01:33:15.000000000 -0600 ++++ ./driver/XScreenSaver.ad.in 2009-05-15 16:22:04.000000000 -0500 +@@ -239,6 +239,7 @@ + squiral -root \n\ + wander -root \n\ + - webcollage -root \n\ ++ electricsheep --root 1 \n\ + xflame -root \n\ + xmatrix -root \n\ + @GL_KLUDGE@ GL: gflux -root \n\ diff --git a/source/xap/xscreensaver/xscreensaver.setuid.diff b/source/xap/xscreensaver/xscreensaver.setuid.diff new file mode 100644 index 000000000..c6810af55 --- /dev/null +++ b/source/xap/xscreensaver/xscreensaver.setuid.diff @@ -0,0 +1,179 @@ +--- ./driver/setuid.c.orig 2006-02-08 20:28:38.000000000 -0600 ++++ ./driver/setuid.c 2006-04-04 16:48:08.000000000 -0500 +@@ -1,5 +1,5 @@ + /* setuid.c --- management of runtime privileges. +- * xscreensaver, Copyright (c) 1993-1998, 2005 Jamie Zawinski ++ * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that +@@ -41,7 +41,7 @@ + struct group *g = 0; + p = getpwuid (uid); + g = getgrgid (gid); +- sprintf (buf, "%.100s/%.100s (%ld/%ld)", ++ sprintf (buf, "%s/%s (%ld/%ld)", + (p && p->pw_name ? p->pw_name : "???"), + (g && g->gr_name ? g->gr_name : "???"), + (long) uid, (long) gid); +@@ -74,50 +74,11 @@ + } + + +-/* Returns true if we need to call setgroups(). +- +- Without calling setgroups(), the process will retain any supplementary +- gids associated with the uid, e.g.: +- +- % groups root +- root : root bin daemon sys adm disk wheel +- +- However, setgroups() can only be called by root, and returns EPERM +- for other users even if the call would be a no-op (e.g., setting the +- group list to the current list.) So, to avoid that spurious error, +- before calling setgroups() we first check whether the current list +- of groups contains only one element, our target group. If so, we +- don't need to call setgroups(). +- */ +-static int +-setgroups_needed_p (uid_t target_group) +-{ +- gid_t groups[1024]; +- int n, size; +- size = sizeof(groups) / sizeof(gid_t); +- n = getgroups (size - 1, groups); +- if (n < 0) +- { +- char buf [1024]; +- sprintf (buf, "%s: getgroups(%ld, ...)", blurb(), (long int)(size - 1)); +- perror (buf); +- return 1; +- } +- else if (n == 0) /* an empty list means only egid is in effect. */ +- return 0; +- else if (n == 1 && groups[0] == target_group) /* one element, the target */ +- return 0; +- else /* more than one, or the wrong one. */ +- return 1; +-} +- +- + static int + set_ids_by_number (uid_t uid, gid_t gid, char **message_ret) + { + int uid_errno = 0; + int gid_errno = 0; +- int sgs_errno = 0; + struct passwd *p = getpwuid (uid); + struct group *g = getgrgid (gid); + +@@ -136,11 +97,6 @@ + if (uid == (uid_t) -1) uid = (uid_t) -2; + + errno = 0; +- if (setgroups_needed_p (gid) && +- setgroups (1, &gid) < 0) +- sgs_errno = errno ? errno : -1; +- +- errno = 0; + if (setgid (gid) != 0) + gid_errno = errno ? errno : -1; + +@@ -148,10 +104,10 @@ + if (setuid (uid) != 0) + uid_errno = errno ? errno : -1; + +- if (uid_errno == 0 && gid_errno == 0 && sgs_errno == 0) ++ if (uid_errno == 0 && gid_errno == 0) + { + static char buf [1024]; +- sprintf (buf, "changed uid/gid to %.100s/%.100s (%ld/%ld).", ++ sprintf (buf, "changed uid/gid to %s/%s (%ld/%ld).", + (p && p->pw_name ? p->pw_name : "???"), + (g && g->gr_name ? g->gr_name : "???"), + (long) uid, (long) gid); +@@ -162,71 +118,28 @@ + else + { + char buf [1024]; +- gid_t groups[1024]; +- int n, size; +- +- if (sgs_errno) +- { +- sprintf (buf, "%s: couldn't setgroups to %.100s (%ld)", +- blurb(), +- (g && g->gr_name ? g->gr_name : "???"), +- (long) gid); +- if (sgs_errno == -1) +- fprintf(stderr, "%s: unknown error\n", buf); +- else +- { +- errno = sgs_errno; +- perror(buf); +- } +- +- fprintf (stderr, "%s: effective group list: ", blurb()); +- size = sizeof(groups) / sizeof(gid_t); +- n = getgroups (size - 1, groups); +- if (n < 0) +- fprintf (stderr, "unknown!\n"); +- else +- { +- int i; +- fprintf (stderr, "["); +- for (i = 0; i < n; i++) +- { +- g = getgrgid (groups[i]); +- if (i > 0) fprintf (stderr, ", "); +- if (g && g->gr_name) fprintf (stderr, "%s", g->gr_name); +- else fprintf (stderr, "%ld", (long) groups[i]); +- } +- fprintf (stderr, "]\n"); +- } +- } +- + if (gid_errno) + { +- sprintf (buf, "%s: couldn't set gid to %.100s (%ld)", ++ sprintf (buf, "%s: couldn't set gid to %s (%ld)", + blurb(), + (g && g->gr_name ? g->gr_name : "???"), + (long) gid); + if (gid_errno == -1) + fprintf(stderr, "%s: unknown error\n", buf); + else +- { +- errno = gid_errno; +- perror(buf); +- } ++ perror(buf); + } + + if (uid_errno) + { +- sprintf (buf, "%s: couldn't set uid to %.100s (%ld)", ++ sprintf (buf, "%s: couldn't set uid to %s (%ld)", + blurb(), + (p && p->pw_name ? p->pw_name : "???"), + (long) uid); + if (uid_errno == -1) + fprintf(stderr, "%s: unknown error\n", buf); + else +- { +- errno = uid_errno; +- perror(buf); +- } ++ perror(buf); + } + + return -1; +@@ -350,7 +263,7 @@ + !strcmp (p->pw_name, "games")) + { + static char buf [1024]; +- sprintf (buf, "running as %.100s", ++ sprintf (buf, "running as %s", + (p && p->pw_name && *p->pw_name + ? p->pw_name : "")); + si->nolock_reason = buf; diff --git a/source/xap/xv/slack-desc b/source/xap/xv/slack-desc new file mode 100644 index 000000000..2fc481666 --- /dev/null +++ b/source/xap/xv/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xv: xv (John Bradley's interactive image viewer) +xv: +xv: xv is an interactive image manipulation program. +xv: +xv: NOTICE: This program is unregistered shareware. Please read the +xv: license information included. +xv: +xv: +xv: +xv: +xv: diff --git a/source/xap/xv/xv-3.10a-jumbo-README.txt b/source/xap/xv/xv-3.10a-jumbo-README.txt new file mode 100644 index 000000000..63627ddff --- /dev/null +++ b/source/xap/xv/xv-3.10a-jumbo-README.txt @@ -0,0 +1,442 @@ +These are the latest versions of the XV jumbo patches I originally created +in February 2000 (but never distributed) and eventually updated and released +in May 2004, prompted by a discussion on LWN (http://lwn.net/Articles/76391/). +Information about the patches, updates to the patches, and the patches +themselves can all be found here: + + http://pobox.com/~newt/greg_xv.html + http://freshmeat.net/projects/xvjumbopatches/ + +(Use the "Subscribe to new releases" link on the latter page if you want to +be notified of new versions automatically; trivial registration required.) + +These two patches incorporate all of the fix- and enhancement-patches +available from John's XV site (http://www.trilon.com/xv/downloads.html +and ftp://ftp.trilon.com/pub/xv/patches/), plus a number of my own fixes +and additions, plus quite a few from other people--though not all of the +ones I'd intended to, due to lack of time after dealing with the latest +set of security issues (one of which I discovered, sigh). They're still +not fully complete, and it's possible they never will be, but I do plan +to continue tinkering with them whenever the mood strikes--and I may even +release them publicly on rare occasions. (At the current rate, it looks +like once a year may be the best we can hope for...we'll see.) + +Also be aware that several other people have had the same idea over the +years. Ones I've found, more or less by accident, include: + + - Landon Curt "chongo" Noll (http://www.isthe.com/chongo/) + http://www.isthe.com/chongo/src/xv-patch/ + - Mark Ashley + http://www.ibiblio.org/pub/packages/solaris/sparc/html/xv.3.10a.p19.html + - Peter Jordan + http://www.ibiblio.org/pub/Linux/apps/graphics/viewers/X/xv-3.10a.patch.* + - Uwe F. Mayer (http://www.tux.org/~mayer/) + http://www.tux.org/~mayer/linux/book/node311.html + - Kurt Wall + http://www.kurtwerks.com/software/xv.html + - Chisato Yamauchi (http://phe.phyas.aichi-edu.ac.jp/~cyamauch/index_en.html) + http://phe.phyas.aichi-edu.ac.jp/~cyamauch/xv.html + - Daisuke Yabuki + http://www.optix.org/~dxy/solaris/xv/ + - Pekoe (http://pekoe.lair.net/) + http://pekoe.lair.net/diary/xv.html + - FreeBSD FreshPorts + http://www.freshports.org/graphics/xv/ + - Kyoichiro Suda + http://www.coara.or.jp/~sudakyo/XV_jp.html + +I very much doubt that this is an exhaustive list. So far, most of the +other patch-sets appear not to be as extensive or as up-to-date as my own, +particularly now that the (very large) "Japanese extension" patches are +incorporated--big thanks to Werner Fink of SuSE for that! + +Below I summarize the component patches that are encompassed by my jumbo +bugfixes and jumbo enhancements patches. Unfortunately, some of my own +additions never saw the light of day as standalone patches, but considering +the number of overlaps (collisions) already implicit in this list, it would +have been difficult to accomplish even if I'd had the time. + +Here's a quick guide to the "third-party" credits in the lists below: + + AAC = Andrey A. Chernov [ache] + (http://cvsweb.freebsd.org/ports/graphics/xv/files/patch-ab) + AD = Andreas Dilger (adilger clusterfs.com) + AL = Alexander Lehmann (lehmann usa.net) + AT = Anthony Thyssen (http://www.cit.gu.edu.au/~anthony/) + DAC = David A. Clunie (http://www.dclunie.com/xv-pcd.html) + EK = Egmont Koblinger (egmont users.sourceforge.net) + GRR = Greg Roelofs (http://pobox.com/~newt/) + GV = Guido Vollbeding (http://sylvana.net/guido/) + IM = IKEMOTO Masahiro (ikeyan airlab.cs.ritsumei.ac.jp) + JCE = John C. Elliott (http://www.seasip.demon.co.uk/ZX/zxdload.html) + JHB = John H. Bradley, of course (http://www.trilon.com/xv/) + JPD = Jean-Pierre Demailly (http://www-fourier.ujf-grenoble.fr/~demailly/) + JR = John Rochester (http://www.freebsd.org/cgi/query-pr.cgi?pr=2920) + (also http://cvsweb.freebsd.org/ports/graphics/xv/files/patch-af, -ag) + JZ = Joe Zbiciak (http://spatula-city.org/~im14u2c/) + KS = Kyoichiro Suda (http://www.coara.or.jp/~sudakyo/XV_jp.html) + LCN = Landon Curt "chongo" Noll (http://www.isthe.com/chongo/) + LJ = Larry Jones (lawrence.jones ugs.com) + PBJ = Peter Jordan (http://www.ibiblio.org/pub/Linux/apps/graphics/viewers/X/) + PSV = Pawel S. Veselov (http://manticore.2y.net/wbmp.html) + SB = Sean Borman (http://www.nd.edu/~sborman/software/xvwheelmouse.html) + SJT = TenThumbs (tenthumbs cybernex.net) + TA = Tim Adye (http://hepwww.rl.ac.uk/Adye/xv-psnewstyle.html) + TI = Tetsuya INOUE (tin329 chino.it.okayama-u.ac.jp) + TO = Tavis Ormandy (taviso gentoo.org) + WF = Werner Fink (http://www.suse.de/~werner/) + +Other credits are as listed on the XV Downloads page or in the respective +patches (e.g., the jp-extension patches or within the PNG patch). + +Finally, please note that these patches have not been blessed by John Bradley +in any way (although I copied him on the May 2004 announcement--no response +at that time). Nor have I personally tested every change and feature! (See +the BIG SCARY WARNING below for further caveats.) In other words, they're +both completely unofficial and completely unguaranteed. But they seem to +work for me. (And when they don't, I fix 'em. Eventually, anyway... ;-) ) + +One further "final" note: as of this release, I am no longer updating the +fixes patch; new stuff (including fixes) now appears only in the enhancements +one. It simply became too much of a timesink to maintain parallel trees--not +to mention parallel makefiles (generic/public vs. local/personal, old vs. +new libjpeg/libtiff) and xv.h (unregistered/public vs. registered/personal), +particularly when some fixes came about while working on an enhancement and +others were provided by third parties relative to the previous fix+enh state. +Hence the mismatched "20050410" date on the fixes patch. + +GRR 20050501 + + +How to build +------------ + +The following assumes you, the user, already have the libtiff,[1] +libjpeg,[2] libpng,[3] and zlib[4] libraries downloaded, patched (if +necessary), compiled, and installed, not to mention a C compiler and +the bzip2,[5] tar,[6] patch,[7] and make[8] utilities. You should also +have downloaded the original XV 3.10a source distribution from the XV +Downloads page[9] and be able to edit its Makefile and config.h files +as indicated in the INSTALL file. Finally, you should know what a +Unix(-style) command line is, where to find one, and how to wield it +with abandon (or at least with adult supervision)--and preferably not +as the root user until the make install step. (A filesystem is a +terrible thing to waste.) + + [1] http://www.remotesensing.org/libtiff/ + [2] http://www.ijg.org/ + [3] http://www.libpng.org/pub/png/libpng.html + [4] http://www.zlib.net/ + [5] http://sources.redhat.com/bzip2/ + [6] http://www.gnu.org/directory/devel/specific/tar.html + [7] http://www.gnu.org/directory/devel/specific/patch.html + [8] http://www.gnu.org/directory/devel/specific/make.html + [9] http://www.trilon.com/xv/downloads.html#src-distrib + ++-------------------------------------------------------------------------+ +| | +| BIG SCARY WARNING | +| | +| These patches work for Greg (and parts of them apparently work for | +| various other people), and so far Greg's CPU still computes and his | +| hard disks haven't been wiped. But there's no guarantee that that | +| will be the case for you! In particular, not every incorporated patch | +| has been explicitly tested, nor has every possible subcase of the | +| explicitly tested subset. (Read that again; it's grammatical.) Nor are | +| these patches officially blessed by John Bradley in any way. In other | +| words, if you use these patches, you do so at your own risk. (Greg | +| doesn't believe there are any serious problems remaining, but then, | +| what programmer ever does? Bugs happen.) | +| | ++-------------------------------------------------------------------------+ + +Assuming you have the prerequisites out of the way and aren't scared +off by the Big Scary Warning, here's the build procedure: + + bzip2 -dc xv-3.10a-jumbo-patches-20050501.tar.bz2 | tar xvf - + (or tar xvzf xv-3.10a-jumbo-patches-20050501.tar.gz) + + tar xvzf xv-3.10a.tar.gz + + cd xv-3.10a + + patch -p1 < ../xv-3.10a-jumbo-fix-patch-20050410.txt + + [optional] patch -p1 < ../xv-3.10a-jumbo-enh-patch-20050501.txt + + edit Makefile and config.h as directed in INSTALL file (in particular, + ensure paths to external libraries and header files are correct) + + make + + ./xv your_favorite_image your_other_favorite_image etc. + +If everything seems to be working to your satisfaction, go ahead and install: + + make -n install (and double-check that things will be installed + where you want them to be) + + become root if necessary (e.g., type su) + + make install + +That wasn't so hard, was it? + + +Summary of incorporated and unincorporated patches +-------------------------------------------------- + +fixes ((*) = listed on XV Downloads page, (f) = on ftp site only): + +20040516: + - grabpatch (*) [obsoleted by new-xvgrab.c below] + - vispatch (*) + - mp-tiff-patch (*) [technically an enhancement, but JHB says...] + - longname.patch (*) [*SECURITY*] + - xpm.patch (*) + - deepcolor.patch (*) [slightly modified for language conformance] + - gifpatch (*) + - exceed_grab.patch (*) + - xv-redhat6-readme.txt (*) [slightly modified for portability] + - beos.patch (*) [modified for portability] + - croppad.patch (f) + - epsfpatch (f) + - tiff1200.patch (*) + - gssafer.patch (*) [*SECURITY*] + - new-xvgrab.c (f) [includes grabpatch but not exceed_grab.patch] + - xcmap.diff (AD) [part of xv-3.10a-png-1.2d.tar.gz] + - fixes for huge number gcc -Wall warnings--including two bugs (GRR) + - fix for cleandir script when no makefile exists (GRR) + - *SECURITY* fix for gets() in vdcomp.c (GRR, LCN vdcomp-security.patch) + - *SECURITY* fix for getwd() on Linux (GRR, LCN Linux-compile.patch) + - fix for "no fuss" Linux compiles (LCN Linux-compile.patch) + - partial *SECURITY* fix for mktemp() in xv.c and xvdir.c (GRR) + (remaining instances in xv.c (2), xvimage.c, xvfits.c, xvpds.c, xvps.c, and + possibly xvtiff.c--most involve system()) + - freebsd-vdcomp-newline.patch (AAC) + - xv-3.10a.patch.linux (PBJ) [/bin/sh versions of cleandir, RANLIB.sh only] + - removed trailing white space (GRR) [purely cosmetic] +20040523: + - fixed compilation error in registered versions (GRR) +20050410: + - fix for YCbCr oversaturated-green bug(s) in TIFF decoder (GRR) + - provisional fix for contiguous tiled TIFFs with bottom-* orientation (GRR) + - fixes for gcc 3.3 -Wall warnings (GRR) + - fix for incorrect 16/24-bit display of xwd dumps (SJT) + - *SECURITY* fix for multiple input-validation bugs (OpenBSD/SuSE, Gentoo, GRR) + (this also completes the partial mktemp() security fix listed above) + - fix for (probable) 24-bit endianness bug in fixpix code (GRR) + + +enhancements ((*) = listed on XV Downloads page, () = third-party): + +20040516: + - xv-3.10a.JPEG-patch (*) + (xv-3.10a.JPEG-patch.old differs only in ftp site listed in comments at top) + - xv-3.10a.TIFF-patch (*) + - xv-3.10a-png-1.2d.tar.gz (AL, AD) (*) + (xvjpeg.diff and xvtiff.diff ignored; xcmap.diff included in fixes) + - xvpng-1.2d-fix3.patch (GRR, SJT) (*) + - pdf.patch (*) + - windowid.patch + windowid.patch.readme (*) + - bmp32.patch (*) + - fixpix-20000610.tar.gz (GV) + (identical to 19961127 version except for README updates and new Win32 file) + [modified to be runtime-selectable via -/+fixpix option] + - browse-remember.patch (JZ) + - faster-smooth.patch (JZ) + - PAM support (GRR) + - PNG/GIF -ibg ("image background") transparency option (GRR) + (does not yet support TIFF, XPM or TGA) + - VersionInfo* in help screen (GRR) + - minor grammar/spelling fixes (GRR) + - floating-point support for -wait when USE_TICKS enabled (GRR) + - wheelmouse.patch (SB) + - freebsd-gravity-hints-patch (JR) + - xv-zx.patch (JCE) + - xv3.10a.wapbmp.patch (PSV) + - xv-3.10a-pcd.patch.20010708 (DAC) + - jp-ext-bzip2-1.1.patch + (from ftp://ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/shige/xv/) +20050410: + - boosted maximum number of files from 4096 to 32768 (GRR) + (note that OS kernel limits may also apply; for example, in Linux see + MAX_ARG_PAGES in linux-/include/linux/binfmts.h) + - xv-3.10a-bmp16.patch (KS) + - final-image delay (e.g., "-wait 0.2,3" : pause 3 secs on final image) (GRR) + - xv-numpad.patch (EK) + - xv-delete-is-not-backspace.patch (EK) + - made browser window (schnauzer) and icons configurable (AT, GRR) +20050501: + - xv-3.10a-bmpfix.patch (WF) [*SECURITY*] + - xv310a-jp-extension-rev5.3.3.tar.gz (TI, IM, ..., WF) + (adds support for MAG, MAKI, Pi, PIC, and PIC2 formats[*]; "magic suffix" + detection/conversion; MacBinary prefixes; archives as virtual filesystems; + multilingual text viewer [though not Unicode]; etc.) + - xv-3.10a-yaos.dif (WF, TO) [*SECURITY*] + (fixes a number of format-string issues and system() calls) + - xv-3.10a.dif (WF) [*SECURITY*] + (fixes more format-string issues, mktemp() and open() calls, and compilation + warnings [mostly from jp-extension patch]) + - xv-3.10a-jumbo-jpd_startgrab-patch-20050420.txt (JPD) + - PATCH.alwaysnever (LJ) + - PATCH.bsd (LJ) + - PATCH.linedraw (LJ) + - PATCH.multipage (LJ) + - PATCH.multipageGIF (LJ) + - PATCH.random (LJ) + - PATCH.stat (LJ) + - PATCH.thumbs (LJ) + - xv-startgrab-imake-hips.patch (JPD) + ("hips" portion only; adds support for HIPS image format[*]) + - xv-3.10a-formatstr.patch (KS) + - xv-3.10a-shortsleep.patch (KS) + - xv-3.10a-locale-linux.patch (KS) + - xv-3.10a-printkey.patch (KS) + - xv-3.10a-sysconfdir.patch (KS) + - added PREFIX and DESTDIR support to Makefile (KS, GRR) + - xv-3.10a-xvexecpath.patch (but disabled pending fixes) (KS) + - xv-3.10a-zeroquit.patch (KS, GRR) + + +[*] Note that all six of these formats may still suffer from exploitable heap + overflows [*SECURITY*] when decoding images with large (possibly invalid) + dimensions; as a result, they are DISABLED by default. (Search for "GRR + POSSIBLE OVERFLOW / FIXME" comments in xvmag.c, xvmaki.c, xvpi.c, xvpic.c, + xvpic2.c, and xvhips.c, but keep in mind that these may not be exhaustive.) + Users who choose to overlook these security issues can enable any or all + of them by editing config.h. + + +not (yet?) included: + + - others from http://www.coara.or.jp/~sudakyo/XV_jp.html (some are duplicates): + -rw-r--r-- 4644 Mar 11 2004 xv-3.10a-directory.patch + -rw-r--r-- 462 Mar 11 2004 xv-3.10a-dirwkey.patch + -rw-r--r-- 688 Mar 11 2004 xv-3.10a-docdir.patch + -rw-r--r-- 11952 Mar 11 2004 xv-3.10a-download-test0.patch + -rw-r--r-- 41786 Mar 11 2004 xv-3.10a-download-test1.patch + -rw-r--r-- 42397 Mar 11 2004 xv-3.10a-download-test2.patch + -rw-r--r-- 47679 Mar 11 2004 xv-3.10a-download-test3.patch + -rw-r--r-- 52745 Mar 11 2004 xv-3.10a-download-test4.patch + -rw-r--r-- 3423 Apr 24 2004 xv-3.10a-keyzoom.patch + -rw-r--r-- 12387 Mar 15 2004 xv-3.10a-menubutton.patch + -rw-r--r-- 1178 Apr 24 2004 xv-3.10a-noblink.patch + -rw-r--r-- 57092 Jul 9 2004 xv-3.10a-resolution.patch + -rw-r--r-- 4645 Apr 24 2004 xv-3.10a-selall.patch + -rw-r--r-- 702 Apr 24 2004 xv-3.10a-showlongname.patch + -rw-r--r-- 1205 Apr 24 2004 xv-3.10a-staytoppdir.patch + -rw-r--r-- 4228 Apr 24 2004 xv-3.10a-wheelmouse.patch + -rw-r--r-- 744 Apr 24 2004 xv-3.10a-xvbutt_wait.patch + -rw-r--r-- 3757 Jul 9 2004 xv-3.10a-xvscrl_button2.patch + -rw-r--r-- 1494 Jul 9 2004 xv-3.10a-xvscrl_wait.patch + -rw-r--r-- 19352 Jul 9 2004 xv-3.10a-xvzoom.patch + + - xv-3.10a+jp-extension-rev5.3.3+FLmask.v2.1+png+misc.patch ["mask" support] + + - xv-psnewstyle.patch (TA) [coming later in 2005?] + - xv-3.10a.patch.linux (PBJ) [maybe use vdcomp.c changes?] + - xvxpm-anthony-thyssen.c (AT) ["slate grey" bug already gone?] + + - stuff in xv/unsupt: + -rw-r--r-- 30527 Dec 22 1994 FITS.rite + -rw-r--r-- 49152 Dec 22 1994 FITS.tar + -rw-r--r-- 3753 Dec 22 1994 G3.patch1 + -rw-r--r-- 24576 Dec 22 1994 G3.tar + -rw-r--r-- 1098 Dec 22 1994 INFO.cgm + -rw-r--r-- 1941 Dec 22 1994 README + -rwxr-xr-x 1059 Dec 22 1994 getweather + -rwxr-xr-x 2186 Dec 22 1994 getweather.ksh + -rw-r--r-- 856 Dec 22 1994 twm.fix + -rw-r--r-- 844 Dec 22 1994 vargs.c + -rw-r--r-- 47626 Dec 22 1994 vis + -rw-r--r-- 21097 Dec 22 1994 xscm + + + +not finished (and/or even started ;-) ): + + - fix xvpng.c not to use direct struct access + - (better) fix for never-ending pile of SLOW popups when viewing TIFFs with + unknown tags (or truncated/corrupted images) + - fix for minor .Z inefficiency in xv.c ("FIXME") + - fix for filename entry-field mouse/cursor bogosity + (want at least positioning to work; preferably also select/cut/paste) + - fix for spacebar-for-next-image getting stuck at first text file + - fix for .ppm.gz "disk leak" [can't reproduce...already fixed?] + (maybe occurs only if filesystem is already nearly full? bad .gz?) + + - transparency support for TIFF, XPM and TGA images + - support for tiled background image (with transparent foreground image) + - MNG/JNG support + - SVG support + + +ChangeLog +--------- + + 20000220 + original pair of jumbo patches, comprising perhaps 16 fix-patches and a + dozen enhancement-patches; never publicly released + + 20040516 + first public release, incorporating 25 fix-patches and 21 enhancement- + patches + + 20040523 + minor fix to xvctrl.c to support registered versions (GRR warnings-patch + was slightly overzealous); switched to tarball packaging + + 20040531 + fixed undefined CLK_TCK with gcc -ansi (enh/USE_TICKS option); made + libjpeg, libtiff, libpng and zlib sections of makefile more consistent + (enh) + + 20040606 + added freshmeat link, build instructions, and changelog to jumbo README + (this file) + + 20050213 + increased max number of files from 4096 to 32768 (enh) + + 20050320-20050410 + fixed two very long-standing YCbCr bugs in TIFF decoder (fix); + provisionally fixed bug in TIFF decoder for contiguous tiled TIFFs with + bottom-* orientation (fix/USE_TILED_TIFF_BOTLEFT_FIX option); fixed new + gcc 3.3 warnings (fix); fixed incorrect 16/24-bit display of xwd dumps + (fix); fixed multiple input-validation bugs (potential heap overflows) + and mktemp() dependencies (*SECURITY* fixes: CAN-2004-1725, CAN-2004- + 1726, CAN-2005-0665, CERT VU#622622, and others); added support for 16- + and 32-bit BMPs using bitfields "compression" (enh); fixed probable byte- + sex bug in 24-bit FixPix display code (enh/USE_24BIT_ENDIAN_FIX option); + fixed numerical-keypad NumLock behavior and delete-key behavior in file- + load/save window (enh); made schnauzer window and icons configurable (enh) + + 20050417 + incorporated "Japanese extension" patches, revision 5.3.3 (enh); fixed + additional *SECURITY* issues (format-string vulnerabilities, system() + and mktemp() calls, etc., but NOT heap overflows in new decoders) both + in existing code and in jp-extension additions (enh) + + 20050425 + added support for -startgrab option (enh); added support for a "Never" + button to file-overwrite popups (enh); added NetBSD and BSDI to list of + mkstemp()-supporting systems (enh); improved line-drawing code to set the + correct pixels for lines of all slopes (enh); added "Page n of m" to Info + window for multipage images (enh); added support for multipage (animated) + GIFs (enh); fixed -random support so randomized file list can be traversed + normally in forward or backward direction (enh); added typecasts to stat() + printfs for portability (enh); fixed erroneous use of "creation" time and + forced unlink prior to overwrite in schnauzer thumbnail code (enh); added + HIPS support (enh/HAVE_HIPS option) + + 20050501 + extended multipage keyboard support (PgUp/PgDn) to all windows except + control ("console") and directory (enh); fixed minor (non-security) + format-string issue in xv.c (enh); shortened delay on popup error windows + from 3 seconds to 1 second (enh); tweaked text-viewer localization support + (TV_L10N) for Linux (enh); added keyboard short cuts for Color and + Grayscale buttons in print dialog (enh); added support for separate "magic + suffix" (xv_mgcsfx) config dir (enh); added PREFIX and DESTDIR support to + Makefile (enh); fixed handling of zero-length files and other text-viewer + failures (enh) diff --git a/source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt b/source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt new file mode 100644 index 000000000..d78b601a9 --- /dev/null +++ b/source/xap/xv/xv-3.10a-jumbo-enh-patch-20050501.txt @@ -0,0 +1,28167 @@ +diff : xv-3.10a-jumbo-enh-patch-20050501.txt + +This is a unified diff. It should be applied (using Larry Wall's "patch" +program) to the XV 3.10a sources AFTER the jumbo-fixes patch has already +been applied. + +diffs below: + Imakefile + Makefile + Makefile.std + README.jumbo + README.pcd + bggen.c + bits/br_bzip2 + bits/br_mag + bits/br_maki + bits/br_mgcsfx + bits/br_pcd + bits/br_pi + bits/br_pic + bits/br_pic2 + bits/br_png + bits/br_zx + config.h + tiff/Makefile + vdcomp.c + xcmap.c + xv.c + xv.h + xv_mgcsfx.sample + xvbmp.c + xvbrowse.c + xvctrl.c + xvdial.c + xvdir.c + xvevent.c + xvfits.c + xvgam.c + xvgif.c + xvgrab.c + xvhips.c + xvhips.h + xvimage.c + xvinfo.c + xvjpeg.c + xvmag.c + xvmaki.c + xvmgcsfx.c + xvmisc.c + xvml.c + xvml.h + xvpbm.c + xvpcd.c + xvpds.c + xvpi.c + xvpic.c + xvpic2.c + xvpng.c + xvpopup.c + xvps.c + xvrle.c + xvroot.c + xvsmooth.c + xvtext.c + xvtiff.c + xvtiffwr.c + xvvd.c + xvwbmp.c + xvxpm.c + xvzx.c + + +diff -ruN xv-3.10a-bugfixes/Imakefile xv-3.10a-enhancements/Imakefile +--- xv-3.10a-bugfixes/Imakefile 1995-01-13 12:24:01.000000000 -0800 ++++ xv-3.10a-enhancements/Imakefile 2005-04-17 14:04:22.000000000 -0700 +@@ -104,6 +104,11 @@ + SGI = -Dsgi + #endif + ++/* install directory of xv_mgcsfx.sample. */ ++MGCSFXDIR = $(LIBDIR) ++/* Directory of default configuration file. */ ++MGCSFX = -DMGCSFXDIR=\"$(MGCSFXDIR)\" ++ + + + +@@ -137,6 +142,8 @@ + #if defined(SCOArchitecture) + SCO= -Dsco -DPOSIX -DNO_RANDOM + SYS_LIBRARIES= -lm -lc -lx ++#elif defined(HPArchitecture) ++SYS_LIBRARIES= -lm -lV3 + #else + SYS_LIBRARIES= -lm + #endif +@@ -147,7 +154,7 @@ + + DEFINES= $(SCO) $(UNIX) $(NODIRENT) $(VPRINTF) $(TIMERS) \ + $(HPUX7) $(JPEG) $(TIFF) $(PDS) $(DXWM) $(RAND) \ +- $(BACKING_STORE) $(BSDTYPES) $(SGI) ++ $(BACKING_STORE) $(BSDTYPES) $(SGI) $(MGCSFX) + + INCLUDES = $(JPEGINCLUDE) $(TIFFINCLUDE) + +@@ -157,7 +164,9 @@ + xvdial.c xvgraf.c xvsunras.c xvjpeg.c xvps.c xvpopup.c xvdflt.c \ + xvtiff.c xvtiffwr.c xvpds.c xvrle.c xviris.c xvgrab.c vprintf.c \ + xvbrowse.c xvtext.c xvpcx.c xviff.c xvtarga.c xvxpm.c xvcut.c \ +- xvxwd.c xvfits.c ++ xvxwd.c xvfits.c xvpng.c xvzx.c xvwbmp.c xvpcd.c \ ++ xvmag.c xvpic.c xvmaki.c xvpi.c xvpic2.c xvvd.c xvmgcsfx.c \ ++ xvml.c + + OBJS1 = xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \ + xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \ +@@ -165,7 +174,9 @@ + xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ + xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ + xvbrowse.o xvtext.o xvpcx.o xviff.o xvtarga.o xvxpm.o xvcut.o \ +- xvxwd.o xvfits.o ++ xvxwd.o xvfits.o xvpng.o xvzx.o xvwbmp.o xvpcd.o \ ++ xvmag.o xvpic.o xvmaki.o xvpi.o xvpic2.o xvvd.o xvmgcsfx.o \ ++ xvml.o + + SRCS2= bggen.c + OBJS2= bggen.o +@@ -266,6 +277,8 @@ + InstallManPageLong(docs/xvp2p,$(MANDIR),xvpictoppm) + InstallManPageLong(docs/vdcomp,$(MANDIR),vdcomp) + ++InstallNonExecFile(xv_mgcsfx.sample,$(MGCSFXDIR)) ++ + tar: + tar cf xv.tar Makefile* Imakefile *.c *.h bits docs \ + docs unsupt vms $(JPEGDIR) $(TIFFDIR) $(MISC) +diff -ruN xv-3.10a-bugfixes/Makefile xv-3.10a-enhancements/Makefile +--- xv-3.10a-bugfixes/Makefile 2005-04-06 08:17:13.000000000 -0700 ++++ xv-3.10a-enhancements/Makefile 2005-05-01 10:23:32.000000000 -0700 +@@ -41,10 +41,14 @@ + + + ### Installation locations +-BINDIR = /usr/local/bin +-MANDIR = /usr/local/man/man1 ++PREFIX = /usr/local ++BINDIR = $(PREFIX)/bin ++MANDIR = $(PREFIX)/man/man1 + MANSUF = 1 +-LIBDIR = /usr/local/lib ++DOCDIR = $(PREFIX)/doc/xv-3.10a ++LIBDIR = $(PREFIX)/lib/xv ++SYSCONFDIR = $(PREFIX)/etc ++DESTDIR = + + + buildit: all +@@ -59,13 +63,59 @@ + ### on your machine, *COMMENT OUT* the following lines + ### + JPEG = -DDOJPEG +-JPEGDIR = jpeg +-JPEGINC = -I$(JPEGDIR) +-JPEGLIB = $(JPEGDIR)/libjpeg.a +-$(JPEGDIR)/jconfig.h: +- cd $(JPEGDIR) ; ./configure CC='$(CC)' +-$(JPEGLIB): $(JPEGDIR)/jconfig.h +- cd $(JPEGDIR) ; make ++#JPEGDIR = jpeg ++JPEGDIR = /usr ++#JPEGDIR = /usr/local ++#JPEGDIR = ../../libjpeg ++### ++JPEGINC = -I$(JPEGDIR)/include ++#JPEGINC = -I$(JPEGDIR) ++### ++JPEGLIB = -L$(JPEGDIR)/lib -ljpeg ++#JPEGLIB = -L$(JPEGDIR) -ljpeg ++#JPEGLIB = $(JPEGDIR)/libjpeg.a ++### ++### this is intended to build the ancient version (5a) that's included in the ++### "jpeg" subdir of XV, not an arbitrary copy of libjpeg: ++### ++#$(JPEGDIR)/jconfig.h: ++# cd $(JPEGDIR) ; ./configure CC='$(CC)' ++#$(JPEGLIB): $(JPEGDIR)/jconfig.h ++# cd $(JPEGDIR) ; make ++ ++ ++### ++### if, for whatever reason, you're unable to get the PNG library to compile ++### on your machine, *COMMENT OUT* the following lines ++### ++PNG = -DDOPNG ++PNGDIR = /usr ++#PNGDIR = /usr/local ++#PNGDIR = ../../libpng ++### ++PNGINC = -I$(PNGDIR)/include ++#PNGINC = -I$(PNGDIR) ++### ++PNGLIB = -L$(PNGDIR)/lib -lpng ++#PNGLIB = -L$(PNGDIR) -lpng ++#PNGLIB = $(PNGDIR)/libpng.a ++ ++ ++### ++### if, for whatever reason, you're unable to get both the PNG library and ++### (newer versions of) the TIFF library to compile on your machine, *COMMENT ++### OUT* the following lines ++### ++ZLIBDIR = /usr ++#ZLIBDIR = /usr/local ++#ZLIBDIR = ../../zlib ++### ++ZLIBINC = -I$(ZLIBDIR)/include ++#ZLIBINC = -I$(ZLIBDIR) ++### ++ZLIBLIB = -L$(ZLIBDIR)/lib -lz ++#ZLIBLIB = -L$(ZLIBDIR) -lz ++#ZLIBLIB = $(ZLIBDIR)/libz.a + + + ### +@@ -80,17 +130,32 @@ + ### + #TIFF = -DDOTIFF + TIFF = -DDOTIFF -DUSE_TILED_TIFF_BOTLEFT_FIX +-TIFFDIR = tiff +-TIFFINC = -I$(TIFFDIR) +-TIFFLIB = $(TIFFDIR)/libtiff.a +-$(TIFFLIB): +- ( cd $(TIFFDIR) ; make CC='$(CC)' COPTS='$(CCOPTS) $(MCHN)' ) ++#TIFFDIR = tiff ++TIFFDIR = /usr ++#TIFFDIR = /usr/local ++#TIFFDIR = ../../libtiff ++### ++TIFFINC = -I$(TIFFDIR)/include ++#TIFFINC = -I$(TIFFDIR) ++### ++### libtiff 3.5 and up may be compiled with zlib and libjpeg, but dependency ++### is properly handled in LIBS line ~143 lines below ++### ++TIFFLIB = -L$(TIFFDIR)/lib -ltiff ++#TIFFLIB = -L$(TIFFDIR) -ltiff ++#TIFFLIB = $(TIFFDIR)/libtiff.a ++### ++### this is intended to build the ancient version (3.3.016 beta) that's included ++### in the "tiff" subdir of XV, not an arbitrary copy of libtiff: ++### ++#$(TIFFLIB): ++# ( cd $(TIFFDIR) ; make CC='$(CC)' COPTS='$(CCOPTS) $(MCHN)' ) + + + ### + ### if, for whatever reason, you're unable to get the PDS/VICAR support + ### to compile (xvpds.c, and vdcomp.c), *COMMENT OUT* the following line, +-### and also remove 'vdcomp' from the 'all:' dependancy ++### and also remove 'vdcomp' from the 'all:' dependency + ### + PDS = -DDOPDS + +@@ -98,8 +163,10 @@ + #----------System V---------- + + # if you are running on a SysV-based machine, such as HP, Silicon Graphics, +-# Solaris, etc., uncomment the following line to get mostly there. +-#UNIX = -DSVR4 ++# Solaris, etc.; uncomment one of the following lines to get you *most* of ++# the way there. SYSV means System V R3. ++# UNIX = -DSVR4 ++# UNIX = -DSYSV + + + #----------Machine-Specific Configurations---------- +@@ -121,12 +188,15 @@ + # To use old HP compilers (HPUX 7.0 or so), you may need + #MCHN= -Dhpux -D_HPUX_SOURCE +Ns4000 + # +-# also, if you're using HP's compiler, add '-Aa' to whichever of those ++# Also, if you're using HP's compiler, add '-Aa' to whichever of those + # two lines you're using, to turn on ANSI C mode. Or so I'm told. + # +-# note: You may need to add '-I/usr/include/X11R5' (or R6, or whatever) ++# Note: You may need to add '-I/usr/include/X11R5' (or R6, or whatever) + # to whichever of those lines you used, as HP tends to store their X11 + # include files in a non-standard place... ++# ++# And you probably have to add '-lV3' to the end of the LIBS def when ++# using XV's AUTO_EXPAND option. + + + ### for LINUX, uncomment the following line +@@ -205,6 +275,16 @@ + #VPRINTF = -DNEED_VPRINTF -DLONGINT -DNOSTDHDRS + + ++# if your X Window System compiled with -DX_LOCALE, ++# uncomment the following line: ++# TVL10N = -DX_LOCALE ++ ++# Install directory of xv_mgcsfx.sample. ++MGCSFXDIR = $(LIBDIR) ++# Directory of default configuration file. ++MGCSFX = -DMGCSFXDIR=\"$(MGCSFXDIR)\" ++ ++ + + + ################ END OF CONFIGURATION OPTIONS ################# +@@ -212,13 +292,14 @@ + + + +-CFLAGS = $(CCOPTS) $(JPEG) $(JPEGINC) $(TIFF) $(TIFFINC) $(PDS) \ +- $(NODIRENT) $(VPRINTF) $(TIMERS) $(UNIX) $(BSDTYPES) $(RAND) \ +- $(DXWM) $(MCHN) ++CFLAGS = $(CCOPTS) $(PNG) $(PNGINC) $(ZLIBINC) $(JPEG) $(JPEGINC) \ ++ $(TIFF) $(TIFFINC) $(PDS) $(NODIRENT) $(VPRINTF) $(TIMERS) \ ++ $(UNIX) $(BSDTYPES) $(RAND) $(DXWM) $(MCHN) $(TVL10N) $(MGCSFX) \ ++ -DSYSCONFDIR=\"$(SYSCONFDIR)\" -DXVEXECPATH=\"$(LIBDIR)\" + + ### remove -lm for BeOS: +-LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) -lm +-#LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) ++LIBS = $(TIFFLIB) $(JPEGLIB) $(PNGLIB) $(ZLIBLIB) -L/usr/X11R6/lib -lX11 -lm ++#LIBS = $(TIFFLIB) $(JPEGLIB) $(PNGLIB) $(ZLIBLIB) -lX11 + + OBJS = xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \ + xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \ +@@ -226,7 +307,9 @@ + xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ + xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ + xvbrowse.o xvtext.o xvpcx.o xviff.o xvtarga.o xvxpm.o xvcut.o \ +- xvxwd.o xvfits.o ++ xvxwd.o xvfits.o xvpng.o xvzx.o xvwbmp.o xvpcd.o xvhips.o \ ++ xvmag.o xvpic.o xvmaki.o xvpi.o xvpic2.o xvvd.o xvmgcsfx.o \ ++ xvml.o + + MISC = README INSTALL CHANGELOG IDEAS + +@@ -236,10 +319,12 @@ + + + +-all: $(JPEGLIB) $(TIFFLIB) xv bggen vdcomp xcmap xvpictoppm ++#all: $(JPEGLIB) $(TIFFLIB) xv bggen vdcomp xcmap xvpictoppm ++all: xv bggen vdcomp xcmap xvpictoppm + + +-xv: $(OBJS) $(JPEGLIB) $(TIFFLIB) ++#xv: $(OBJS) $(JPEGLIB) $(TIFFLIB) ++xv: $(OBJS) + $(CC) -o xv $(CFLAGS) $(OBJS) $(LIBS) + + bggen: bggen.c +@@ -268,13 +353,14 @@ + + + install: all +- cp xv bggen vdcomp xcmap xvpictoppm $(BINDIR) +- cp docs/xv.man $(MANDIR)/xv.$(MANSUF) +- cp docs/bggen.man $(MANDIR)/bggen.$(MANSUF) +- cp docs/xcmap.man $(MANDIR)/xcmap.$(MANSUF) +- cp docs/xvp2p.man $(MANDIR)/xvpictoppm.$(MANSUF) +- cp docs/vdcomp.man $(MANDIR)/vdcomp.$(MANSUF) +- cp docs/xvdocs.ps* $(LIBDIR) ++ cp xv bggen vdcomp xcmap xvpictoppm $(DESTDIR)$(BINDIR) ++ cp docs/xv.man $(DESTDIR)$(MANDIR)/xv.$(MANSUF) ++ cp docs/bggen.man $(DESTDIR)$(MANDIR)/bggen.$(MANSUF) ++ cp docs/xcmap.man $(DESTDIR)$(MANDIR)/xcmap.$(MANSUF) ++ cp docs/xvp2p.man $(DESTDIR)$(MANDIR)/xvpictoppm.$(MANSUF) ++ cp docs/vdcomp.man $(DESTDIR)$(MANDIR)/vdcomp.$(MANSUF) ++ cp docs/xvdocs.ps* $(DESTDIR)$(LIBDIR) # or $(DESTDIR)$(DOCDIR) ++ #cp xv_mgcsfx.sample $(DESTDIR)$(SYSCONFDIR)/xv_mgcsfx + + tar: + # tar only local jpeg and tiff dirs, not user's or system's copies: +@@ -299,7 +385,7 @@ + xvbrowse.o: bits/br_pcx bits/br_jfif bits/br_tiff bits/br_pds + xvbrowse.o: bits/br_ps bits/br_iff bits/br_targa bits/br_xpm + xvbrowse.o: bits/br_trash bits/fcurs bits/fccurs bits/fdcurs bits/fcursm +-xvbrowse.o: bits/br_xwd ++xvbrowse.o: bits/br_xwd bits/br_png bits/br_zx bits/br_pcd bits/br_bzip2 + + xvbutt.o: bits/cboard50 bits/rb_frame bits/rb_frame1 bits/rb_top + xvbutt.o: bits/rb_bot bits/rb_dtop bits/rb_dbot bits/rb_body +diff -ruN xv-3.10a-bugfixes/Makefile.std xv-3.10a-enhancements/Makefile.std +--- xv-3.10a-bugfixes/Makefile.std 2005-04-06 08:17:13.000000000 -0700 ++++ xv-3.10a-enhancements/Makefile.std 2005-05-01 10:23:32.000000000 -0700 +@@ -41,10 +41,14 @@ + + + ### Installation locations +-BINDIR = /usr/local/bin +-MANDIR = /usr/local/man/man1 ++PREFIX = /usr/local ++BINDIR = $(PREFIX)/bin ++MANDIR = $(PREFIX)/man/man1 + MANSUF = 1 +-LIBDIR = /usr/local/lib ++DOCDIR = $(PREFIX)/doc/xv-3.10a ++LIBDIR = $(PREFIX)/lib/xv ++SYSCONFDIR = $(PREFIX)/etc ++DESTDIR = + + + buildit: all +@@ -59,13 +63,59 @@ + ### on your machine, *COMMENT OUT* the following lines + ### + JPEG = -DDOJPEG +-JPEGDIR = jpeg +-JPEGINC = -I$(JPEGDIR) +-JPEGLIB = $(JPEGDIR)/libjpeg.a +-$(JPEGDIR)/jconfig.h: +- cd $(JPEGDIR) ; ./configure CC='$(CC)' +-$(JPEGLIB): $(JPEGDIR)/jconfig.h +- cd $(JPEGDIR) ; make ++#JPEGDIR = jpeg ++JPEGDIR = /usr ++#JPEGDIR = /usr/local ++#JPEGDIR = ../../libjpeg ++### ++JPEGINC = -I$(JPEGDIR)/include ++#JPEGINC = -I$(JPEGDIR) ++### ++JPEGLIB = -L$(JPEGDIR)/lib -ljpeg ++#JPEGLIB = -L$(JPEGDIR) -ljpeg ++#JPEGLIB = $(JPEGDIR)/libjpeg.a ++### ++### this is intended to build the ancient version (5a) that's included in the ++### "jpeg" subdir of XV, not an arbitrary copy of libjpeg: ++### ++#$(JPEGDIR)/jconfig.h: ++# cd $(JPEGDIR) ; ./configure CC='$(CC)' ++#$(JPEGLIB): $(JPEGDIR)/jconfig.h ++# cd $(JPEGDIR) ; make ++ ++ ++### ++### if, for whatever reason, you're unable to get the PNG library to compile ++### on your machine, *COMMENT OUT* the following lines ++### ++PNG = -DDOPNG ++PNGDIR = /usr ++#PNGDIR = /usr/local ++#PNGDIR = ../../libpng ++### ++PNGINC = -I$(PNGDIR)/include ++#PNGINC = -I$(PNGDIR) ++### ++PNGLIB = -L$(PNGDIR)/lib -lpng ++#PNGLIB = -L$(PNGDIR) -lpng ++#PNGLIB = $(PNGDIR)/libpng.a ++ ++ ++### ++### if, for whatever reason, you're unable to get both the PNG library and ++### (newer versions of) the TIFF library to compile on your machine, *COMMENT ++### OUT* the following lines ++### ++ZLIBDIR = /usr ++#ZLIBDIR = /usr/local ++#ZLIBDIR = ../../zlib ++### ++ZLIBINC = -I$(ZLIBDIR)/include ++#ZLIBINC = -I$(ZLIBDIR) ++### ++ZLIBLIB = -L$(ZLIBDIR)/lib -lz ++#ZLIBLIB = -L$(ZLIBDIR) -lz ++#ZLIBLIB = $(ZLIBDIR)/libz.a + + + ### +@@ -80,17 +130,32 @@ + ### + #TIFF = -DDOTIFF + TIFF = -DDOTIFF -DUSE_TILED_TIFF_BOTLEFT_FIX +-TIFFDIR = tiff +-TIFFINC = -I$(TIFFDIR) +-TIFFLIB = $(TIFFDIR)/libtiff.a +-$(TIFFLIB): +- ( cd $(TIFFDIR) ; make CC='$(CC)' COPTS='$(CCOPTS) $(MCHN)' ) ++#TIFFDIR = tiff ++TIFFDIR = /usr ++#TIFFDIR = /usr/local ++#TIFFDIR = ../../libtiff ++### ++TIFFINC = -I$(TIFFDIR)/include ++#TIFFINC = -I$(TIFFDIR) ++### ++### libtiff 3.5 and up may be compiled with zlib and libjpeg, but dependency ++### is properly handled in LIBS line ~143 lines below ++### ++TIFFLIB = -L$(TIFFDIR)/lib -ltiff ++#TIFFLIB = -L$(TIFFDIR) -ltiff ++#TIFFLIB = $(TIFFDIR)/libtiff.a ++### ++### this is intended to build the ancient version (3.3.016 beta) that's included ++### in the "tiff" subdir of XV, not an arbitrary copy of libtiff: ++### ++#$(TIFFLIB): ++# ( cd $(TIFFDIR) ; make CC='$(CC)' COPTS='$(CCOPTS) $(MCHN)' ) + + + ### + ### if, for whatever reason, you're unable to get the PDS/VICAR support + ### to compile (xvpds.c, and vdcomp.c), *COMMENT OUT* the following line, +-### and also remove 'vdcomp' from the 'all:' dependancy ++### and also remove 'vdcomp' from the 'all:' dependency + ### + PDS = -DDOPDS + +@@ -98,8 +163,10 @@ + #----------System V---------- + + # if you are running on a SysV-based machine, such as HP, Silicon Graphics, +-# Solaris, etc., uncomment the following line to get mostly there. +-#UNIX = -DSVR4 ++# Solaris, etc.; uncomment one of the following lines to get you *most* of ++# the way there. SYSV means System V R3. ++# UNIX = -DSVR4 ++# UNIX = -DSYSV + + + #----------Machine-Specific Configurations---------- +@@ -121,12 +188,15 @@ + # To use old HP compilers (HPUX 7.0 or so), you may need + #MCHN= -Dhpux -D_HPUX_SOURCE +Ns4000 + # +-# also, if you're using HP's compiler, add '-Aa' to whichever of those ++# Also, if you're using HP's compiler, add '-Aa' to whichever of those + # two lines you're using, to turn on ANSI C mode. Or so I'm told. + # +-# note: You may need to add '-I/usr/include/X11R5' (or R6, or whatever) ++# Note: You may need to add '-I/usr/include/X11R5' (or R6, or whatever) + # to whichever of those lines you used, as HP tends to store their X11 + # include files in a non-standard place... ++# ++# And you probably have to add '-lV3' to the end of the LIBS def when ++# using XV's AUTO_EXPAND option. + + + ### for LINUX, uncomment the following line +@@ -205,6 +275,16 @@ + #VPRINTF = -DNEED_VPRINTF -DLONGINT -DNOSTDHDRS + + ++# if your X Window System compiled with -DX_LOCALE, ++# uncomment the following line: ++# TVL10N = -DX_LOCALE ++ ++# Install directory of xv_mgcsfx.sample. ++MGCSFXDIR = $(LIBDIR) ++# Directory of default configuration file. ++MGCSFX = -DMGCSFXDIR=\"$(MGCSFXDIR)\" ++ ++ + + + ################ END OF CONFIGURATION OPTIONS ################# +@@ -212,13 +292,14 @@ + + + +-CFLAGS = $(CCOPTS) $(JPEG) $(JPEGINC) $(TIFF) $(TIFFINC) $(PDS) \ +- $(NODIRENT) $(VPRINTF) $(TIMERS) $(UNIX) $(BSDTYPES) $(RAND) \ +- $(DXWM) $(MCHN) ++CFLAGS = $(CCOPTS) $(PNG) $(PNGINC) $(ZLIBINC) $(JPEG) $(JPEGINC) \ ++ $(TIFF) $(TIFFINC) $(PDS) $(NODIRENT) $(VPRINTF) $(TIMERS) \ ++ $(UNIX) $(BSDTYPES) $(RAND) $(DXWM) $(MCHN) $(TVL10N) $(MGCSFX) \ ++ -DSYSCONFDIR=\"$(SYSCONFDIR)\" -DXVEXECPATH=\"$(LIBDIR)\" + + ### remove -lm for BeOS: +-LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) -lm +-#LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) ++LIBS = $(TIFFLIB) $(JPEGLIB) $(PNGLIB) $(ZLIBLIB) -L/usr/X11R6/lib -lX11 -lm ++#LIBS = $(TIFFLIB) $(JPEGLIB) $(PNGLIB) $(ZLIBLIB) -lX11 + + OBJS = xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \ + xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \ +@@ -226,7 +307,9 @@ + xvdial.o xvgraf.o xvsunras.o xvjpeg.o xvps.o xvpopup.o xvdflt.o \ + xvtiff.o xvtiffwr.o xvpds.o xvrle.o xviris.o xvgrab.o vprintf.o \ + xvbrowse.o xvtext.o xvpcx.o xviff.o xvtarga.o xvxpm.o xvcut.o \ +- xvxwd.o xvfits.o ++ xvxwd.o xvfits.o xvpng.o xvzx.o xvwbmp.o xvpcd.o xvhips.o \ ++ xvmag.o xvpic.o xvmaki.o xvpi.o xvpic2.o xvvd.o xvmgcsfx.o \ ++ xvml.o + + MISC = README INSTALL CHANGELOG IDEAS + +@@ -236,10 +319,12 @@ + + + +-all: $(JPEGLIB) $(TIFFLIB) xv bggen vdcomp xcmap xvpictoppm ++#all: $(JPEGLIB) $(TIFFLIB) xv bggen vdcomp xcmap xvpictoppm ++all: xv bggen vdcomp xcmap xvpictoppm + + +-xv: $(OBJS) $(JPEGLIB) $(TIFFLIB) ++#xv: $(OBJS) $(JPEGLIB) $(TIFFLIB) ++xv: $(OBJS) + $(CC) -o xv $(CFLAGS) $(OBJS) $(LIBS) + + bggen: bggen.c +@@ -268,13 +353,14 @@ + + + install: all +- cp xv bggen vdcomp xcmap xvpictoppm $(BINDIR) +- cp docs/xv.man $(MANDIR)/xv.$(MANSUF) +- cp docs/bggen.man $(MANDIR)/bggen.$(MANSUF) +- cp docs/xcmap.man $(MANDIR)/xcmap.$(MANSUF) +- cp docs/xvp2p.man $(MANDIR)/xvpictoppm.$(MANSUF) +- cp docs/vdcomp.man $(MANDIR)/vdcomp.$(MANSUF) +- cp docs/xvdocs.ps* $(LIBDIR) ++ cp xv bggen vdcomp xcmap xvpictoppm $(DESTDIR)$(BINDIR) ++ cp docs/xv.man $(DESTDIR)$(MANDIR)/xv.$(MANSUF) ++ cp docs/bggen.man $(DESTDIR)$(MANDIR)/bggen.$(MANSUF) ++ cp docs/xcmap.man $(DESTDIR)$(MANDIR)/xcmap.$(MANSUF) ++ cp docs/xvp2p.man $(DESTDIR)$(MANDIR)/xvpictoppm.$(MANSUF) ++ cp docs/vdcomp.man $(DESTDIR)$(MANDIR)/vdcomp.$(MANSUF) ++ cp docs/xvdocs.ps* $(DESTDIR)$(LIBDIR) # or $(DESTDIR)$(DOCDIR) ++ #cp xv_mgcsfx.sample $(DESTDIR)$(SYSCONFDIR)/xv_mgcsfx + + tar: + # tar only local jpeg and tiff dirs, not user's or system's copies: +@@ -299,7 +385,7 @@ + xvbrowse.o: bits/br_pcx bits/br_jfif bits/br_tiff bits/br_pds + xvbrowse.o: bits/br_ps bits/br_iff bits/br_targa bits/br_xpm + xvbrowse.o: bits/br_trash bits/fcurs bits/fccurs bits/fdcurs bits/fcursm +-xvbrowse.o: bits/br_xwd ++xvbrowse.o: bits/br_xwd bits/br_png bits/br_zx bits/br_pcd bits/br_bzip2 + + xvbutt.o: bits/cboard50 bits/rb_frame bits/rb_frame1 bits/rb_top + xvbutt.o: bits/rb_bot bits/rb_dtop bits/rb_dbot bits/rb_body +diff -ruN xv-3.10a-bugfixes/README.jumbo xv-3.10a-enhancements/README.jumbo +--- xv-3.10a-bugfixes/README.jumbo 2005-04-10 19:55:23.000000000 -0700 ++++ xv-3.10a-enhancements/README.jumbo 2005-05-01 13:45:58.000000000 -0700 +@@ -14,10 +14,10 @@ + available from John's XV site (http://www.trilon.com/xv/downloads.html + and ftp://ftp.trilon.com/pub/xv/patches/), plus a number of my own fixes + and additions, plus quite a few from other people--though not all of the +-ones I'd intended to (sorry, SJT, AT, and JPD!) due to lack of time after +-dealing with the latest security issue (which I discovered, sigh). They're +-still not fully complete, and it's possible they never will be, but I do +-plan to continue working on them whenever the mood strikes--and I may even ++ones I'd intended to, due to lack of time after dealing with the latest ++set of security issues (one of which I discovered, sigh). They're still ++not fully complete, and it's possible they never will be, but I do plan ++to continue tinkering with them whenever the mood strikes--and I may even + release them publicly on rare occasions. (At the current rate, it looks + like once a year may be the best we can hope for...we'll see.) + +@@ -26,91 +26,86 @@ + + - Landon Curt "chongo" Noll (http://www.isthe.com/chongo/) + http://www.isthe.com/chongo/src/xv-patch/ +- - Mark Ashley ++ - Mark Ashley + http://www.ibiblio.org/pub/packages/solaris/sparc/html/xv.3.10a.p19.html +- - Peter Jordan ++ - Peter Jordan + http://www.ibiblio.org/pub/Linux/apps/graphics/viewers/X/xv-3.10a.patch.* + - Uwe F. Mayer (http://www.tux.org/~mayer/) + http://www.tux.org/~mayer/linux/book/node311.html +- - Kurt Wall ++ - Kurt Wall + http://www.kurtwerks.com/software/xv.html + - Chisato Yamauchi (http://phe.phyas.aichi-edu.ac.jp/~cyamauch/index_en.html) + http://phe.phyas.aichi-edu.ac.jp/~cyamauch/xv.html +- - Daisuke Yabuki ++ - Daisuke Yabuki + http://www.optix.org/~dxy/solaris/xv/ + - Pekoe (http://pekoe.lair.net/) + http://pekoe.lair.net/diary/xv.html + - FreeBSD FreshPorts + http://www.freshports.org/graphics/xv/ +- - ++ - Kyoichiro Suda + http://www.coara.or.jp/~sudakyo/XV_jp.html + +-I very much doubt that this is an exhaustive list. So far, most of the other +-patch-sets appear not to be quite as extensive or as up-to-date as my own, +-although the last three or four do include the [large] Japanese extension +-patches that I omitted--not because they're unworthy, but simply because I +-didn't find them until collisions between the two sets of patches had become +-a large problem. (Maybe for the next release... I'd intended to try for +-this release, but the security issues ended up taking almost all of my +-available time. And, to be honest, from my perspective, inclusion of the +-jp-extension patches is more for completeness' sake than personal interest, +-so their priority is fairly low.) ++I very much doubt that this is an exhaustive list. So far, most of the ++other patch-sets appear not to be as extensive or as up-to-date as my own, ++particularly now that the (very large) "Japanese extension" patches are ++incorporated--big thanks to Werner Fink of SuSE for that! + + Below I summarize the component patches that are encompassed by my jumbo + bugfixes and jumbo enhancements patches. Unfortunately, some of my own + additions never saw the light of day as standalone patches, but considering + the number of overlaps (collisions) already implicit in this list, it would +-have been difficult to accomplish even if I'd had the time. In any case, +-they're present in these jumbo patches but not chongo's, so those who _really_ +-care can "subtract" the two sets of patches to see what I did. ++have been difficult to accomplish even if I'd had the time. + + Here's a quick guide to the "third-party" credits in the lists below: + + AAC = Andrey A. Chernov [ache] + (http://cvsweb.freebsd.org/ports/graphics/xv/files/patch-ab) +- AD = Andreas Dilger (adilger@clusterfs.com) +- AL = Alexander Lehmann (lehmann@usa.net) ++ AD = Andreas Dilger (adilger clusterfs.com) ++ AL = Alexander Lehmann (lehmann usa.net) + AT = Anthony Thyssen (http://www.cit.gu.edu.au/~anthony/) + DAC = David A. Clunie (http://www.dclunie.com/xv-pcd.html) +- EK = Egmont Koblinger (egmont@users.sourceforge.net) ++ EK = Egmont Koblinger (egmont users.sourceforge.net) + GRR = Greg Roelofs (http://pobox.com/~newt/) + GV = Guido Vollbeding (http://sylvana.net/guido/) ++ IM = IKEMOTO Masahiro (ikeyan airlab.cs.ritsumei.ac.jp) + JCE = John C. Elliott (http://www.seasip.demon.co.uk/ZX/zxdload.html) + JHB = John H. Bradley, of course (http://www.trilon.com/xv/) + JPD = Jean-Pierre Demailly (http://www-fourier.ujf-grenoble.fr/~demailly/) + JR = John Rochester (http://www.freebsd.org/cgi/query-pr.cgi?pr=2920) + (also http://cvsweb.freebsd.org/ports/graphics/xv/files/patch-af, -ag) + JZ = Joe Zbiciak (http://spatula-city.org/~im14u2c/) ++ KS = Kyoichiro Suda (http://www.coara.or.jp/~sudakyo/XV_jp.html) + LCN = Landon Curt "chongo" Noll (http://www.isthe.com/chongo/) ++ LJ = Larry Jones (lawrence.jones ugs.com) + PBJ = Peter Jordan (http://www.ibiblio.org/pub/Linux/apps/graphics/viewers/X/) + PSV = Pawel S. Veselov (http://manticore.2y.net/wbmp.html) + SB = Sean Borman (http://www.nd.edu/~sborman/software/xvwheelmouse.html) +- SJT = TenThumbs (tenthumbs@cybernex.net) ++ SJT = TenThumbs (tenthumbs cybernex.net) + TA = Tim Adye (http://hepwww.rl.ac.uk/Adye/xv-psnewstyle.html) ++ TI = Tetsuya INOUE (tin329 chino.it.okayama-u.ac.jp) ++ TO = Tavis Ormandy (taviso gentoo.org) ++ WF = Werner Fink (http://www.suse.de/~werner/) + + Other credits are as listed on the XV Downloads page or in the respective + patches (e.g., the jp-extension patches or within the PNG patch). + + Finally, please note that these patches have not been blessed by John Bradley +-in any way (although I copied him on the May 2004 announcement--no response). +-Nor have I personally tested every change and feature! (See the BIG SCARY +-WARNING below for further caveats.) In other words, they're both completely +-unofficial and completely unguaranteed. But they seem to work for me. (And +-when they don't, I fix 'em. Eventually, anyway... ;-) ) +- +-One further "final" note: this may well be the last release to include +-separate fix- and enhancements-patches. It is too much of a timesink to +-maintain parallel trees--not to mention parallel makefiles (generic/public +-vs. local/personal, old vs. new libjpeg/libtiff) and xv.h (unregistered/ +-public vs. registered/personal), particularly when some fixes come about +-while working on an enhancement. Henceforth--assuming, of course, that +-there _is_ a "henceforth"--I expect to merge the patches into a single +-jumbo patch. (Alternatively, I may simply freeze the current fix-patch +-and continue to evolve only the enhancements patch; in particular, new +-fixes would appear only in it. Either approach would be simple enough; +-feedback as to which would be preferable is welcomed.) ++in any way (although I copied him on the May 2004 announcement--no response ++at that time). Nor have I personally tested every change and feature! (See ++the BIG SCARY WARNING below for further caveats.) In other words, they're ++both completely unofficial and completely unguaranteed. But they seem to ++work for me. (And when they don't, I fix 'em. Eventually, anyway... ;-) ) ++ ++One further "final" note: as of this release, I am no longer updating the ++fixes patch; new stuff (including fixes) now appears only in the enhancements ++one. It simply became too much of a timesink to maintain parallel trees--not ++to mention parallel makefiles (generic/public vs. local/personal, old vs. ++new libjpeg/libtiff) and xv.h (unregistered/public vs. registered/personal), ++particularly when some fixes came about while working on an enhancement and ++others were provided by third parties relative to the previous fix+enh state. ++Hence the mismatched "20050410" date on the fixes patch. + +-GRR 20050410 ++GRR 20050501 + + + How to build +@@ -158,8 +153,8 @@ + Assuming you have the prerequisites out of the way and aren't scared + off by the Big Scary Warning, here's the build procedure: + +- bzip2 -dc xv-3.10a-jumbo-patches-20050410.tar.bz2 | tar xvf - +- (or tar xvzf xv-3.10a-jumbo-patches-20050410.tar.gz) ++ bzip2 -dc xv-3.10a-jumbo-patches-20050501.tar.bz2 | tar xvf - ++ (or tar xvzf xv-3.10a-jumbo-patches-20050501.tar.gz) + + tar xvzf xv-3.10a.tar.gz + +@@ -167,7 +162,7 @@ + + patch -p1 < ../xv-3.10a-jumbo-fix-patch-20050410.txt + +- [optional] patch -p1 < ../xv-3.10a-jumbo-enh-patch-20050410.txt ++ [optional] patch -p1 < ../xv-3.10a-jumbo-enh-patch-20050501.txt + + edit Makefile and config.h as directed in INSTALL file (in particular, + ensure paths to external libraries and header files are correct) +@@ -221,6 +216,8 @@ + - freebsd-vdcomp-newline.patch (AAC) + - xv-3.10a.patch.linux (PBJ) [/bin/sh versions of cleandir, RANLIB.sh only] + - removed trailing white space (GRR) [purely cosmetic] ++20040523: ++ - fixed compilation error in registered versions (GRR) + 20050410: + - fix for YCbCr oversaturated-green bug(s) in TIFF decoder (GRR) + - provisional fix for contiguous tiled TIFFs with bottom-* orientation (GRR) +@@ -265,12 +262,50 @@ + - boosted maximum number of files from 4096 to 32768 (GRR) + (note that OS kernel limits may also apply; for example, in Linux see + MAX_ARG_PAGES in linux-/include/linux/binfmts.h) +- - xv-3.10a-bmp16.patch +- (from http://www.coara.or.jp/~sudakyo/XV_jp.html) ++ - xv-3.10a-bmp16.patch (KS) + - final-image delay (e.g., "-wait 0.2,3" : pause 3 secs on final image) (GRR) + - xv-numpad.patch (EK) + - xv-delete-is-not-backspace.patch (EK) + - made browser window (schnauzer) and icons configurable (AT, GRR) ++20050501: ++ - xv-3.10a-bmpfix.patch (WF) [*SECURITY*] ++ - xv310a-jp-extension-rev5.3.3.tar.gz (TI, IM, ..., WF) ++ (adds support for MAG, MAKI, Pi, PIC, and PIC2 formats[*]; "magic suffix" ++ detection/conversion; MacBinary prefixes; archives as virtual filesystems; ++ multilingual text viewer [though not Unicode]; etc.) ++ - xv-3.10a-yaos.dif (WF, TO) [*SECURITY*] ++ (fixes a number of format-string issues and system() calls) ++ - xv-3.10a.dif (WF) [*SECURITY*] ++ (fixes more format-string issues, mktemp() and open() calls, and compilation ++ warnings [mostly from jp-extension patch]) ++ - xv-3.10a-jumbo-jpd_startgrab-patch-20050420.txt (JPD) ++ - PATCH.alwaysnever (LJ) ++ - PATCH.bsd (LJ) ++ - PATCH.linedraw (LJ) ++ - PATCH.multipage (LJ) ++ - PATCH.multipageGIF (LJ) ++ - PATCH.random (LJ) ++ - PATCH.stat (LJ) ++ - PATCH.thumbs (LJ) ++ - xv-startgrab-imake-hips.patch (JPD) ++ ("hips" portion only; adds support for HIPS image format[*]) ++ - xv-3.10a-formatstr.patch (KS) ++ - xv-3.10a-shortsleep.patch (KS) ++ - xv-3.10a-locale-linux.patch (KS) ++ - xv-3.10a-printkey.patch (KS) ++ - xv-3.10a-sysconfdir.patch (KS) ++ - added PREFIX and DESTDIR support to Makefile (KS, GRR) ++ - xv-3.10a-xvexecpath.patch (but disabled pending fixes) (KS) ++ - xv-3.10a-zeroquit.patch (KS, GRR) ++ ++ ++[*] Note that all six of these formats may still suffer from exploitable heap ++ overflows [*SECURITY*] when decoding images with large (possibly invalid) ++ dimensions; as a result, they are DISABLED by default. (Search for "GRR ++ POSSIBLE OVERFLOW / FIXME" comments in xvmag.c, xvmaki.c, xvpi.c, xvpic.c, ++ xvpic2.c, and xvhips.c, but keep in mind that these may not be exhaustive.) ++ Users who choose to overlook these security issues can enable any or all ++ of them by editing config.h. + + + not (yet?) included: +@@ -284,31 +319,21 @@ + -rw-r--r-- 42397 Mar 11 2004 xv-3.10a-download-test2.patch + -rw-r--r-- 47679 Mar 11 2004 xv-3.10a-download-test3.patch + -rw-r--r-- 52745 Mar 11 2004 xv-3.10a-download-test4.patch +- -rw-r--r-- 415 Mar 11 2004 xv-3.10a-formatstr.patch + -rw-r--r-- 3423 Apr 24 2004 xv-3.10a-keyzoom.patch +- -rw-r--r-- 1461 Mar 11 2004 xv-3.10a-locale-linux.patch + -rw-r--r-- 12387 Mar 15 2004 xv-3.10a-menubutton.patch + -rw-r--r-- 1178 Apr 24 2004 xv-3.10a-noblink.patch +- -rw-r--r-- 484 Mar 11 2004 xv-3.10a-printkey.patch + -rw-r--r-- 57092 Jul 9 2004 xv-3.10a-resolution.patch + -rw-r--r-- 4645 Apr 24 2004 xv-3.10a-selall.patch +- -rw-r--r-- 360 Mar 11 2004 xv-3.10a-shortsleep.patch + -rw-r--r-- 702 Apr 24 2004 xv-3.10a-showlongname.patch + -rw-r--r-- 1205 Apr 24 2004 xv-3.10a-staytoppdir.patch +- -rw-r--r-- 1591 Mar 15 2004 xv-3.10a-sysconfdir.patch + -rw-r--r-- 4228 Apr 24 2004 xv-3.10a-wheelmouse.patch + -rw-r--r-- 744 Apr 24 2004 xv-3.10a-xvbutt_wait.patch +- -rw-r--r-- 712 Mar 11 2004 xv-3.10a-xvexecpath.patch + -rw-r--r-- 3757 Jul 9 2004 xv-3.10a-xvscrl_button2.patch + -rw-r--r-- 1494 Jul 9 2004 xv-3.10a-xvscrl_wait.patch + -rw-r--r-- 19352 Jul 9 2004 xv-3.10a-xvzoom.patch +- -rw-r--r-- 1827 Apr 24 2004 xv-3.10a-zeroquit.patch + +- - xv310a-jp-extension-rev5.3.3.tar.gz [extensive] +- - xv-3.10a-jp-extension-5.3.3-png-1.2d.patch [PNG patch relative to jp-ext] +- - xv-3.10a+jp-extension-rev5.3.3+FLmask.v2.1+png+misc.patch [??] ++ - xv-3.10a+jp-extension-rev5.3.3+FLmask.v2.1+png+misc.patch ["mask" support] + +- - xv-grab-imake-hips.patch (JPD) [HIPS format, -startgrab option] + - xv-psnewstyle.patch (TA) [coming later in 2005?] + - xv-3.10a.patch.linux (PBJ) [maybe use vdcomp.c changes?] + - xvxpm-anthony-thyssen.c (AT) ["slate grey" bug already gone?] +@@ -332,8 +357,8 @@ + not finished (and/or even started ;-) ): + + - fix xvpng.c not to use direct struct access +- - fix for never-ending pile of SLOW popups when viewing TIFFs with unknown tags +- (or truncated/corrupted images) ++ - (better) fix for never-ending pile of SLOW popups when viewing TIFFs with ++ unknown tags (or truncated/corrupted images) + - fix for minor .Z inefficiency in xv.c ("FIXME") + - fix for filename entry-field mouse/cursor bogosity + (want at least positioning to work; preferably also select/cut/paste) +@@ -344,6 +369,7 @@ + - transparency support for TIFF, XPM and TGA images + - support for tiled background image (with transparent foreground image) + - MNG/JNG support ++ - SVG support + + + ChangeLog +@@ -364,7 +390,7 @@ + 20040531 + fixed undefined CLK_TCK with gcc -ansi (enh/USE_TICKS option); made + libjpeg, libtiff, libpng and zlib sections of makefile more consistent +- (enh); ++ (enh) + + 20040606 + added freshmeat link, build instructions, and changelog to jumbo README +@@ -385,3 +411,32 @@ + sex bug in 24-bit FixPix display code (enh/USE_24BIT_ENDIAN_FIX option); + fixed numerical-keypad NumLock behavior and delete-key behavior in file- + load/save window (enh); made schnauzer window and icons configurable (enh) ++ ++ 20050417 ++ incorporated "Japanese extension" patches, revision 5.3.3 (enh); fixed ++ additional *SECURITY* issues (format-string vulnerabilities, system() ++ and mktemp() calls, etc., but NOT heap overflows in new decoders) both ++ in existing code and in jp-extension additions (enh) ++ ++ 20050425 ++ added support for -startgrab option (enh); added support for a "Never" ++ button to file-overwrite popups (enh); added NetBSD and BSDI to list of ++ mkstemp()-supporting systems (enh); improved line-drawing code to set the ++ correct pixels for lines of all slopes (enh); added "Page n of m" to Info ++ window for multipage images (enh); added support for multipage (animated) ++ GIFs (enh); fixed -random support so randomized file list can be traversed ++ normally in forward or backward direction (enh); added typecasts to stat() ++ printfs for portability (enh); fixed erroneous use of "creation" time and ++ forced unlink prior to overwrite in schnauzer thumbnail code (enh); added ++ HIPS support (enh/HAVE_HIPS option) ++ ++ 20050501 ++ extended multipage keyboard support (PgUp/PgDn) to all windows except ++ control ("console") and directory (enh); fixed minor (non-security) ++ format-string issue in xv.c (enh); shortened delay on popup error windows ++ from 3 seconds to 1 second (enh); tweaked text-viewer localization support ++ (TV_L10N) for Linux (enh); added keyboard short cuts for Color and ++ Grayscale buttons in print dialog (enh); added support for separate "magic ++ suffix" (xv_mgcsfx) config dir (enh); added PREFIX and DESTDIR support to ++ Makefile (enh); fixed handling of zero-length files and other text-viewer ++ failures (enh) +diff -ruN xv-3.10a-bugfixes/README.pcd xv-3.10a-enhancements/README.pcd +--- xv-3.10a-bugfixes/README.pcd 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/README.pcd 2001-07-08 11:21:19.000000000 -0700 +@@ -0,0 +1,159 @@ ++Copyright 1993-2001 David Clunie. ++ ++PCD patch for XV 3.10a Release Notes 2001/07/08. ++ ++See also the progress notes at the end of this file. Thanks to all those ++contributors who have substantially improved this patch. ++ ++These patches allow xv to read Kodak photocd files and choose which of the ++5 available resolutions one wants to view. ++ ++When a photocd file is loaded, a dialog box asks which resolution you ++would like. The visual schnauzer builds thumbnails by reading the lowest ++resolution image. The selected resolution can be selected from the ++command line with the -pcd option: ++ ++ [-pcd 0|1|2|3|4] ++ ++where: ++ ++ 0=192*128, base/16 resolution ++ 1=384*256, base/4 resolution ++ 2=768*512, base resolution ++ 3=1536*1024, 4base resolution ++ 4=3072*2048 16base resolution. ++ ++Note that the Pro format is not supported. ++ ++The command line option allows loops without the dialog box popping up, eg.: ++ ++ xv -pcd 1 -wloop -wait 10 *.pcd ++ ++The code is pretty crude and was written quickly for a specific purpose and ++has not really been cleaned up. It is poorly structured, full of debugging ++codes and verbose comments, and there is very little attempt at optimizing ++things. No profiling has been done. ++ ++There is not yet support for overview files, nor is there a facility to ++use the higher resolution chroma planes from when viewing lower resolution ++images. ++ ++It's only claim to fame is that it works and produces reasonable looking ++images. ++ ++The outline of this is shamelessly derived from xvpbm.c to read the ++file, and xvtiffwr.c to handle the popup window and X stuff (X never ++has been my forte !), and the PhotoCD format information (though not ++the code) was found in Hadmut Danisch's (danisch@ira.uka.de) hpcdtoppm ++program in which he has reverse engineered the format by studying ++hex dumps of PhotoCDs ! The color stuff and Huffman decding were ++extensively revised by Matthew Francey. ++ ++Feel free to send me comments or improvements, or even better, more ++information about the photo CD format ... hopefully someone who really ++knows what they are doing will tidy it up or do a neater job. ++ ++david (dclunie@dclunie.com) ++ ++--------- ++ ++The trace #define in xvpcd.c is now in the right place, and the ansi ++prototype for the magnify function has been fixed. Colin made me switch to ++xvbcopy() which seems like a good idea for System V victims. ++ ++--------- ++ ++Date: Wed, 22 Dec 1993 16:09:52 --1000 ++From: colinc@fitmail.fit.qut.edu.au (Colin Canfield ) ++ ++I have done some more work using your patch I thought you might be intested in. ++The major change was adding a size parameter to the LoadPCD; either -1 to mean ++the popup or else the size you desired. This allows batch mode processing, ++specifically xv -pcd , and the visual schnauzer can work in ++quick mode (ie. you don't have to select each image size when it is building ++the icons) ++ ++I have added an xbm file for the file type but haven't drawn an icon for it, ++this is in bitmaps/br_pcd.xbm. I will just send you the new files. ++ ++--------- ++ ++From: andrew@andrew.triumf.ca (Andrew Daviel) ++Date: 16 Feb 1995 23:32:21 GMT ++ ++This is David Clunie's patch for xv-3.00 tuned a bit to work ++on xv-3.10. The code's all the same except for replacing ++"trace" with "fprintf" in xvpcd.c and adding an "unsigned" qualifier to ++keep my compiler (gcc) happy. Oh yes, changed RFT_PCD to 20 as ++John Bradley has now used 15 through 19. ++ ++--------- ++ ++From: dclunie@flash.us.com (David A. Clunie) ++Date: Thu Jun 15 14:43:46 GMT+0300 1995 ++ ++Andrew's patch didn't include Colin's browser changes, so I redid the ++xv-3.10 update from scratch ... it seems pretty much the same as ++Andrew's changes. I also edited the Imakefile and Makefiles in order ++to support the PCD changes, as well as make the install process a ++little more flexible, with options to strip and set modes and so on. ++Also made RFT_PCD 25 so as not to conflict with magpic patch from Japan ++by Ikemoto Masahiro , and used his ++bitmap icon for pcd files. ++ ++Now there are two versions of the patch, one which should be applied ++to the xv-3.10 distribution. ++ ++The other should be applied to xv-3.10 AFTER Ikemoto Masahiro's ++Patch.magpic2.PhotoCD.XV319a, in order to add the browser features to ++the latter, as well as fixing a Makefile typo (was xcpcd.c not xvpcd.c) ++and including unistd.h for the SEEK_xxx constants in the magicpic ++stuff. ++ ++--------- ++ ++Subject: Re: photo-cd patch for xv ++From: Matthew Francey ++Date: Mon, 26 Mar 2001 15:37:55 +0000 ++ ++Attached is a revised version of xvpcd.c; the areas that I have ++re-written or changed are in a different coding style so you can tell ++what has changed. The GNU 'indent' program can be run against the file ++to enforce a consistent style .. ++ ++Here is what I've done though: ++ ++a) huffman table reader re-written, because it would fail on some ++ photocd files with "unusual" huffman codes. ++ ++b) the huffman-coded corrections are now properly applied ++ ++c) the corrections can sometimes over or underflow; clipping has been ++ introduced and effectively fixes the problem, but I suspect that ++ there is something deeper going on. ++ ++d) the "official" YCC->sRGB transform is done. a "beyond 100% white" ++ mapping table was snarfed from ImageMagick. an option for using a ++ flat linear LUT was added -- this can make somewhat over-exposed images ++ look alot nicer. ++ ++e) there were strange problems where the code wouldn't be able to find ++ the huffman tables and data for the 16base image (the bit-buffering ++ code was starting mid-sector, instead of at a sector boundary). Looking ++ at a pcd file with a hex editor suggests to me that it is possible to ++ just skip directly to these huffman tables -- no special "+12" and such ++ constants necessary. But I haven't tried this yet. ++ ++The results: I've been able to read about 50 or 60 .pcd files [scattered ++in age from 6 years old to scans done last week] with this code without ++incident. Image quality at the high resolution is excellent. Even the ++trivial amount of LUT control is useful when dealing with over-exposed ++images. ++ ++If I get around to it: finer LUT control to take advantage of the ++slightly extended dynamic range of PhotoCD scans, especially in regards to ++dark or somewhat underexposed scenes. ++ ++ ++ ++ +diff -ruN xv-3.10a-bugfixes/bggen.c xv-3.10a-enhancements/bggen.c +--- xv-3.10a-bugfixes/bggen.c 2004-05-16 17:50:52.000000000 -0700 ++++ xv-3.10a-enhancements/bggen.c 2005-04-17 14:04:22.000000000 -0700 +@@ -34,7 +34,7 @@ + #define MAXCOLS 128 + + /* some VMS thing... */ +-#ifdef vax11c ++#if defined(vax11c) || (defined(__sony_news) && (defined(bsd43) || defined(__bsd43) || defined(SYSTYPE_BSD) || defined(__SYSTYPE_BSD))) + #include + #endif + +diff -ruN xv-3.10a-bugfixes/bits/br_bzip2 xv-3.10a-enhancements/bits/br_bzip2 +--- xv-3.10a-bugfixes/bits/br_bzip2 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_bzip2 1998-04-12 19:23:39.000000000 -0700 +@@ -0,0 +1,27 @@ ++#define br_bzip2_width 48 ++#define br_bzip2_height 48 ++static unsigned char br_bzip2_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x7c, 0xbe, 0x3d, 0x0e, 0x02, 0x20, 0xfc, 0xbe, 0x7d, 0x1f, 0x02, ++ 0x20, 0xcc, 0xb0, 0x6d, 0x1b, 0x02, 0x20, 0xcc, 0x98, 0x6d, 0x1b, 0x02, ++ 0x20, 0xfc, 0x98, 0x6d, 0x18, 0x02, 0x20, 0x7c, 0x8c, 0x7d, 0x0c, 0x02, ++ 0x20, 0xcc, 0x8c, 0x3d, 0x0e, 0x02, 0x20, 0xcc, 0x84, 0x0d, 0x06, 0x02, ++ 0x20, 0xcc, 0x86, 0x0d, 0x03, 0x02, 0x20, 0xfc, 0xbe, 0x0d, 0x1f, 0x02, ++ 0x20, 0x7c, 0xbe, 0x0d, 0x1f, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03}; +diff -ruN xv-3.10a-bugfixes/bits/br_mag xv-3.10a-enhancements/bits/br_mag +--- xv-3.10a-bugfixes/bits/br_mag 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_mag 2005-04-17 14:04:22.000000000 -0700 +@@ -0,0 +1,27 @@ ++#define br_mag_width 48 ++#define br_mag_height 48 ++static unsigned char br_mag_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x0c, 0x86, 0xc1, 0x0f, 0x02, ++ 0x20, 0x0c, 0xc6, 0xe3, 0x1f, 0x02, 0x20, 0x1c, 0xe7, 0x67, 0x18, 0x02, ++ 0x20, 0x1c, 0x77, 0x6e, 0x18, 0x02, 0x20, 0xbc, 0x37, 0x6c, 0x00, 0x02, ++ 0x20, 0xbc, 0x37, 0x6c, 0x00, 0x02, 0x20, 0xec, 0x36, 0x6c, 0x1e, 0x02, ++ 0x20, 0xec, 0xf6, 0x6f, 0x1e, 0x02, 0x20, 0x4c, 0xf6, 0x6f, 0x18, 0x02, ++ 0x20, 0x4c, 0x36, 0x6c, 0x18, 0x02, 0x20, 0x0c, 0x36, 0x6c, 0x18, 0x02, ++ 0x20, 0x0c, 0x36, 0xec, 0x1f, 0x02, 0x20, 0x0c, 0x36, 0xcc, 0x0f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03}; +diff -ruN xv-3.10a-bugfixes/bits/br_maki xv-3.10a-enhancements/bits/br_maki +--- xv-3.10a-bugfixes/bits/br_maki 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_maki 2005-04-17 14:04:22.000000000 -0700 +@@ -0,0 +1,27 @@ ++#define br_maki_width 48 ++#define br_maki_height 48 ++static unsigned char br_maki_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x83, 0x61, 0x18, 0x33, 0x02, ++ 0x20, 0x83, 0xf1, 0x98, 0x33, 0x02, 0x20, 0xc7, 0xf9, 0x99, 0x31, 0x02, ++ 0x20, 0xc7, 0x9d, 0xdb, 0x30, 0x02, 0x20, 0xef, 0x0d, 0xfb, 0x30, 0x02, ++ 0x20, 0xef, 0x0d, 0x7b, 0x30, 0x02, 0x20, 0xbb, 0x0d, 0x7b, 0x30, 0x02, ++ 0x20, 0xbb, 0xfd, 0xdb, 0x30, 0x02, 0x20, 0x93, 0xfd, 0xdb, 0x30, 0x02, ++ 0x20, 0x93, 0x0d, 0x9b, 0x31, 0x02, 0x20, 0x83, 0x0d, 0x9b, 0x31, 0x02, ++ 0x20, 0x83, 0x0d, 0x1b, 0x33, 0x02, 0x20, 0x83, 0x0d, 0x1b, 0x33, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03}; +diff -ruN xv-3.10a-bugfixes/bits/br_mgcsfx xv-3.10a-enhancements/bits/br_mgcsfx +--- xv-3.10a-bugfixes/bits/br_mgcsfx 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_mgcsfx 2005-04-17 14:04:22.000000000 -0700 +@@ -0,0 +1,27 @@ ++#define br_mgcsfx_width 48 ++#define br_mgcsfx_height 48 ++static unsigned char br_mgcsfx_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x3c, 0xcf, 0x71, 0x00, 0x02, ++ 0x20, 0x6c, 0x61, 0xda, 0x00, 0x02, 0x20, 0x6c, 0x67, 0xd8, 0x1e, 0x02, ++ 0x20, 0x3c, 0x61, 0xd8, 0x1e, 0x02, 0x20, 0x6c, 0x61, 0xda, 0x00, 0x02, ++ 0x20, 0x6c, 0xcf, 0x71, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x4e, 0x7a, 0xef, 0x3d, 0x02, 0x20, 0xd3, 0x32, 0x68, 0x6c, 0x02, ++ 0x20, 0xc3, 0x32, 0xe4, 0x6c, 0x02, 0x20, 0x5b, 0x33, 0x62, 0x6c, 0x02, ++ 0x20, 0x53, 0x33, 0x61, 0x6c, 0x02, 0x20, 0x4e, 0x7a, 0xef, 0x3d, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03}; +diff -ruN xv-3.10a-bugfixes/bits/br_pcd xv-3.10a-enhancements/bits/br_pcd +--- xv-3.10a-bugfixes/bits/br_pcd 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_pcd 1995-06-15 21:31:53.000000000 -0700 +@@ -0,0 +1,27 @@ ++#define br_pcd_width 48 ++#define br_pcd_height 48 ++static unsigned char br_pcd_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x67, 0x00, 0xe0, 0x1c, 0x02, ++ 0x20, 0x6f, 0x00, 0xf0, 0x3d, 0x02, 0x20, 0x6b, 0x00, 0xb0, 0x2d, 0x02, ++ 0x20, 0x6b, 0x00, 0x33, 0x2c, 0x02, 0x20, 0x6b, 0x00, 0x33, 0x2c, 0x02, ++ 0x20, 0xeb, 0x98, 0x37, 0x2c, 0x02, 0x20, 0xef, 0xbd, 0x37, 0x2c, 0x02, ++ 0x20, 0x67, 0x2d, 0x33, 0x2c, 0x02, 0x20, 0x63, 0x2d, 0x33, 0x2c, 0x02, ++ 0x20, 0x63, 0x2d, 0x33, 0x2c, 0x02, 0x20, 0x63, 0x2d, 0xb3, 0x2d, 0x02, ++ 0x20, 0x63, 0x3d, 0xf7, 0x3d, 0x02, 0x20, 0x63, 0x19, 0xe6, 0x1c, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03}; +diff -ruN xv-3.10a-bugfixes/bits/br_pi xv-3.10a-enhancements/bits/br_pi +--- xv-3.10a-bugfixes/bits/br_pi 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_pi 2005-04-17 14:04:22.000000000 -0700 +@@ -0,0 +1,27 @@ ++#define br_pi_width 48 ++#define br_pi_height 48 ++static unsigned char br_pi_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x80, 0x1f, 0x7e, 0x00, 0x02, ++ 0x20, 0x80, 0x3f, 0x7e, 0x00, 0x02, 0x20, 0x80, 0x31, 0x18, 0x00, 0x02, ++ 0x20, 0x80, 0x31, 0x18, 0x00, 0x02, 0x20, 0x80, 0x31, 0x18, 0x00, 0x02, ++ 0x20, 0x80, 0x39, 0x18, 0x00, 0x02, 0x20, 0x80, 0x1f, 0x18, 0x00, 0x02, ++ 0x20, 0x80, 0x0f, 0x18, 0x00, 0x02, 0x20, 0x80, 0x01, 0x18, 0x00, 0x02, ++ 0x20, 0x80, 0x01, 0x18, 0x00, 0x02, 0x20, 0x80, 0x01, 0x18, 0x00, 0x02, ++ 0x20, 0x80, 0x01, 0x7e, 0x00, 0x02, 0x20, 0x80, 0x01, 0x7e, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03}; +diff -ruN xv-3.10a-bugfixes/bits/br_pic xv-3.10a-enhancements/bits/br_pic +--- xv-3.10a-bugfixes/bits/br_pic 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_pic 2005-04-17 14:04:22.000000000 -0700 +@@ -0,0 +1,27 @@ ++#define br_pic_width 48 ++#define br_pic_height 48 ++static unsigned char br_pic_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xf0, 0xf3, 0xf3, 0x01, 0x02, ++ 0x20, 0xf0, 0xf7, 0xfb, 0x03, 0x02, 0x20, 0x30, 0xc6, 0x18, 0x03, 0x02, ++ 0x20, 0x30, 0xc6, 0x18, 0x00, 0x02, 0x20, 0x30, 0xc6, 0x18, 0x00, 0x02, ++ 0x20, 0x30, 0xc7, 0x18, 0x00, 0x02, 0x20, 0xf0, 0xc3, 0x18, 0x00, 0x02, ++ 0x20, 0xf0, 0xc1, 0x18, 0x00, 0x02, 0x20, 0x30, 0xc0, 0x18, 0x00, 0x02, ++ 0x20, 0x30, 0xc0, 0x18, 0x00, 0x02, 0x20, 0x30, 0xc0, 0x18, 0x03, 0x02, ++ 0x20, 0x30, 0xf0, 0xfb, 0x03, 0x02, 0x20, 0x30, 0xf0, 0xf3, 0x01, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03}; +diff -ruN xv-3.10a-bugfixes/bits/br_pic2 xv-3.10a-enhancements/bits/br_pic2 +--- xv-3.10a-bugfixes/bits/br_pic2 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_pic2 2005-04-17 14:04:22.000000000 -0700 +@@ -0,0 +1,27 @@ ++#define br_pic2_width 48 ++#define br_pic2_height 48 ++static unsigned char br_pic2_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x3f, 0x3f, 0x1f, 0x1f, 0x02, ++ 0x20, 0x7f, 0xbf, 0xbf, 0x3f, 0x02, 0x20, 0x63, 0x8c, 0xb1, 0x31, 0x02, ++ 0x20, 0x63, 0x8c, 0x01, 0x30, 0x02, 0x20, 0x63, 0x8c, 0x01, 0x30, 0x02, ++ 0x20, 0x73, 0x8c, 0x01, 0x30, 0x02, 0x20, 0x3f, 0x8c, 0x01, 0x18, 0x02, ++ 0x20, 0x1f, 0x8c, 0x01, 0x0c, 0x02, 0x20, 0x03, 0x8c, 0x01, 0x06, 0x02, ++ 0x20, 0x03, 0x8c, 0x01, 0x03, 0x02, 0x20, 0x03, 0x8c, 0xb1, 0x01, 0x02, ++ 0x20, 0x03, 0xbf, 0xbf, 0x3f, 0x02, 0x20, 0x03, 0x3f, 0x9f, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03}; +diff -ruN xv-3.10a-bugfixes/bits/br_png xv-3.10a-enhancements/bits/br_png +--- xv-3.10a-bugfixes/bits/br_png 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_png 1996-06-13 14:32:08.000000000 -0700 +@@ -0,0 +1,28 @@ ++#define br_png_width 48 ++#define br_png_height 48 ++static unsigned char br_png_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0xf8, 0x19, 0xc3, 0x07, 0x02, 0x20, 0x18, 0x3b, 0x63, 0x0c, 0x02, ++ 0x20, 0x18, 0x3b, 0x33, 0x00, 0x02, 0x20, 0x18, 0x5b, 0x33, 0x00, 0x02, ++ 0x20, 0xf8, 0x59, 0x33, 0x0f, 0x02, 0x20, 0x18, 0x98, 0x33, 0x0c, 0x02, ++ 0x20, 0x18, 0x98, 0x33, 0x0c, 0x02, 0x20, 0x18, 0x18, 0x63, 0x0c, 0x02, ++ 0x20, 0x18, 0x18, 0xc3, 0x0b, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, ++ }; +diff -ruN xv-3.10a-bugfixes/bits/br_zx xv-3.10a-enhancements/bits/br_zx +--- xv-3.10a-bugfixes/bits/br_zx 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/bits/br_zx 1998-08-06 13:00:03.000000000 -0700 +@@ -0,0 +1,28 @@ ++#define br_zx_width 48 ++#define br_zx_height 48 ++static unsigned char br_zx_bits[] = { ++ 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x20, 0x00, 0x00, 0x00, 0x81, 0x00, ++ 0x20, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0xff, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0xff, 0xff, 0xff, 0x7f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x7f, 0xce, 0x01, 0x0e, 0x02, 0x20, 0x61, 0x84, 0x00, 0x11, 0x02, ++ 0x20, 0x30, 0x48, 0x00, 0x10, 0x02, 0x20, 0x18, 0x38, 0x10, 0x08, 0x02, ++ 0x20, 0x0c, 0x30, 0x10, 0x0e, 0x02, 0x20, 0x06, 0x68, 0x7c, 0x10, 0x02, ++ 0x20, 0x03, 0x48, 0x10, 0x10, 0x02, 0x20, 0x41, 0x84, 0x10, 0x11, 0x02, ++ 0x20, 0x7f, 0xce, 0x01, 0x0e, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, 0x20, 0xff, 0xff, 0xff, 0xff, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x40, 0x02, 0x20, 0xff, 0xff, 0xff, 0x3f, 0x02, ++ 0x20, 0x00, 0x00, 0x00, 0x10, 0x02, 0x20, 0x00, 0x00, 0x00, 0x08, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0x84, 0x03, 0x20, 0x00, 0x00, 0x00, 0xc2, 0x03, ++ 0x20, 0x00, 0x00, 0x00, 0xe1, 0x03, 0x20, 0x00, 0x00, 0x80, 0xf0, 0x02, ++ 0x20, 0x00, 0x00, 0x40, 0x78, 0x02, 0x20, 0x00, 0x00, 0x20, 0x3c, 0x02, ++ 0x20, 0x00, 0x00, 0x10, 0x1e, 0x02, 0x20, 0x00, 0x00, 0x08, 0x0f, 0x03, ++ 0x20, 0x00, 0x00, 0x84, 0x87, 0x03, 0x20, 0x00, 0x00, 0xc2, 0xc3, 0x03, ++ 0x20, 0x00, 0x00, 0xe1, 0xe1, 0x03, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, ++ }; +diff -ruN xv-3.10a-bugfixes/config.h xv-3.10a-enhancements/config.h +--- xv-3.10a-bugfixes/config.h 2005-03-21 23:21:31.000000000 -0800 ++++ xv-3.10a-enhancements/config.h 2005-04-30 23:52:42.000000000 -0700 +@@ -6,26 +6,46 @@ + /*************************************************************************** + * GZIP'd file support + * +- * if you have the gnu uncompression utility 'gunzip', XV can use it to +- * automatically 'unzip' any gzip'd files. To enable this feature, +- * change 'undef' to 'define' in the following line. Needless to say, if +- * your gunzip is installed elsewhere on your machine, change the 'GUNZIP' +- * definition appropriately. (use 'which gunzip' to find if you have gunzip, +- * and where it lives) ++ * if you have the GNU uncompression utility 'gunzip' (or 'gzip' itself, ++ * which is just a link to gunzip), XV can use it to automatically 'unzip' ++ * any gzip'd files. To enable this feature, change 'undef' to 'define' in ++ * the following line. Needless to say, if your gunzip is installed elsewhere ++ * on your machine, change the 'GUNZIP' definition appropriately. (use ++ * 'which gunzip' to find if you have gunzip, and where it lives; ditto for ++ * gzip) + */ +-#undef USE_GUNZIP ++#define USE_GUNZIP + + #ifdef USE_GUNZIP + # ifdef VMS + # define GUNZIP "UNCOMPRESS" + # else +-/* define GUNZIP "/usr/local/bin/gunzip -q" */ +-# define GUNZIP "/usr/bin/gzip -dq" /* more portable */ ++# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__linux__) ++# define GUNZIP "/usr/bin/gzip -dq" ++# else ++# define GUNZIP "/usr/local/bin/gzip -dq" /* is full path truly needed? */ ++# endif + # endif + #endif + + + /*************************************************************************** ++ * BZIP2'd file support ++ * ++ * if you have the uncompression utility 'bunzip2' (or 'bzip2' itself, which ++ * is just a link to bunzip2), XV can use it to automatically 'unzip' any ++ * bzip2'd files. To enable this feature, change 'undef' to 'define' in the ++ * following line (if not already done). Use 'which bunzip2' or 'which bzip2' ++ * to find if you have bzip2/bunzip2, and where it lives. ++ */ ++#define USE_BUNZIP2 ++ ++#ifdef USE_BUNZIP2 ++# define BUNZIP2 "bzip2 -d" /* should this include the full path? */ ++#endif ++ ++ ++/*************************************************************************** + * compress'd file support + * + * if you have GUNZIP defined above, just ignore this, as 'gunzip' can +@@ -38,7 +58,14 @@ + */ + #define UNCOMPRESS "/usr/ucb/uncompress" + +-#if defined(hpux) || defined(SVR4) || defined(__386BSD__) ++#if defined(hpux) || defined(SVR4) || \ ++ defined(__386BSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ ++ defined(__linux__) ++ /* ++ I want to use BSD macro for checking if this OS is *BSD or not, ++ but the macro is defined in , which I don't know all ++ machine has or not. ++ */ + # undef UNCOMPRESS + # define UNCOMPRESS "/usr/bin/uncompress" + #endif +@@ -90,6 +117,7 @@ + */ + + /* #define GS_PATH "/usr/local/bin/gs" */ ++#define GS_PATH "/usr/bin/gs" + /* #define GS_LIB "." */ + /* #define GS_DEV "ppmraw" */ + +@@ -120,3 +148,201 @@ + + #define BACKING_STORE + ++ ++/*************************************************************************** ++ * PhotoCD/MAG/PIC/MAKI/Pi/PIC2/HIPS format Support: ++ * ++ * if, for whatever reason--say, security concerns--you don't want to ++ * include support for one or more of the PhotoCD, MAG/MAKI/Pi/PIC/PIC2 ++ * (Japanese), or HIPS (astronomical) image formats, change the relevant ++ * 'define' to 'undef' in the following lines. Conversely, if you *do* ++ * want them, change 'undef' to 'define' as appropriate. ++ */ ++ ++#define HAVE_PCD /* believed to be reasonably safe */ ++ ++#undef HAVE_MAG /* probable security issues */ ++#undef HAVE_MAKI /* probable security issues */ ++#undef HAVE_PI /* probable security issues */ ++#undef HAVE_PIC /* probable security issues */ ++#undef HAVE_PIC2 /* probable security issues */ ++ ++#undef HAVE_HIPS /* probable security issues */ ++ ++ ++/*************************************************************************** ++ * MacBinary file support: ++ * ++ * if you want XV to be able to handle ``MacBinary'' files (which have ++ * 128 byte info file header at the head), change 'undef' to 'define' ++ * in the following line. ++ */ ++ ++#undef MACBINARY ++ ++ ++/*************************************************************************** ++ * Auto Expand support: ++ * ++ * if you want to extract archived file automatically and regard it as ++ * a directory, change 'undef' to 'define' in the AUTO_EXPAND line. ++ * ++ * Virtual Thumbdir support: ++ * ++ * if you want Virtual directory based Thumbdir(It means that XV ++ * doesn't forget builded Icons still be quited even if the directory ++ * is read-only), change 'undef' to 'define' the VIRTUAL_TD line. ++ */ ++ ++#undef AUTO_EXPAND ++#undef VIRTUAL_TD ++ ++#if defined(VIRTUAL_TD) && !defined(AUTO_EXPAND) ++# undef VIRTUAL_TD ++#endif ++ ++ ++/*************************************************************************** ++ * Adjust the aspect ratio of Icons: ++ * ++ * if you want to adjust the aspect ratio of the icons in Visual ++ * Schnauzer, change 'undef' to 'define' in the following line. ++ */ ++ ++#undef VS_ADJUST ++ ++ ++/*************************************************************************** ++ * Restore original colormap: ++ * ++ * if you want to restore original colormap when icons in Visual ++ * Shunauzer is double-clicked, change 'undef' to 'define' in the ++ * following line. ++ */ ++ ++#undef VS_RESCMAP ++ ++ ++/*************************************************************************** ++ * TextViewer l10n support: ++ * ++ * if you want XV to show the text in Japanese on TextViewer, change ++ * 'undef' to 'define' in the following line. ++ */ ++ ++#undef TV_L10N ++ ++#ifdef TV_L10N ++/* ++ * if you want to change the default code-set used in case that XV ++ * fails to select correct code-set, uncomment the '#define ++ * LOCALE_DEFAULT' line and change the 'LOCALE_DEFAULT' definition ++ * appropriately. ++ * (0:ASCII, 1:EUC-j, 2:JIS, 3:MS Kanji) */ ++ ++/* # define LOCALE_DEFAULT 0 */ ++ ++/* ++ * Uncomment and edit the following lines, if your X Window System was ++ * not compiled with -DX_LOCALE and you failed to display the Japanese ++ * text in TextViewer. You don't have to write locale name of JIS code-set ++ * and Microsoft code-set, if your system doesn't support those code-sets. ++ */ ++ ++/* ++# define LOCALE_NAME_EUC "ja_JP.EUC" ++# define LOCALE_NAME_JIS "ja_JP.JIS" ++# define LOCALE_NAME_MSCODE "ja_JP.SJIS" ++*/ ++ ++/* ++ * if your system doesn't have the Japanese fonts in the sizes, ++ * Uncomment and edit the following font size entries. ++ */ ++ ++/* # define TV_FONTSIZE 14,16,24 */ ++ ++/* ++ * If you need, uncomment and modify the following font name. ++ */ ++ ++/* # define TV_FONTSET "-*-fixed-medium-r-normal--%d-*" */ ++#endif /* TV_L10N */ ++ ++ ++/*************************************************************************** ++ * User definable filter support: ++ * ++ * Use the filters as input and output method for load and save unsupported ++ * image format file. The filter command is recognized by definition of ++ * magic number or suffix in "~/.xv_mgcsfx" . ++ * To enable this feature, change 'undef' to 'define' in the following line. ++ */ ++#undef HAVE_MGCSFX ++ ++#ifdef HAVE_MGCSFX ++/* ++ * Support symbol 'auto' as in startup file. This type ++ * cannot use pipe as input; it writes to a temporary file and recognizes ++ * the actual filetype by XV processing. ++ */ ++# define HAVE_MGCSFX_AUTO ++ ++/* ++ * The startup file of definition for MgcSfx. 'MGCSFX_SITE_RC' is read ++ * first and '~/MGCSFX_RC' is second. So same definitions in both files ++ * are overridden by '~/MGCSFX_RC' ++ * To define startup file, see the sample of startup file 'xv_mgcsfx.sample'. ++ */ ++# define MGCSFX_SITE_RC "xv_mgcsfx" ++# define MGCSFX_RC ".xv_mgcsfx" ++ ++/* ++ * If you want startup file to pass preprocessor in reading time, then ++ * change 'undef' to 'define' in the following line. ++ * ++ * WARNING : If you decide to use preprocessor, you must not write ++ * '# ' style comment in startup file. Because, ++ * preprocessor can't recognize. */ ++# undef USE_MGCSFX_PREPROCESSOR ++ ++# ifdef USE_MGCSFX_PREPROCESSOR ++/* ++ * This is used like "system("MGCSFX_PREPROCESSOR MGCSFX_RC > tmp_name");", ++ * and read tmp_name instead of MGCSFX_RC. ++ */ ++# define MGCSFX_PREPROCESSOR "/usr/lib/cpp" ++/* # define MGCSFX_PREPROCESSOR "cc -E" */ ++ ++# endif /* USE_MGCSFX_PREPROCESSOR */ ++ ++/* ++ * Default string of command. If input command is required for undefined file, ++ * dialog is popuped with 'MGCSFX_DEFAULT_INPUT_COMMAND'. And, if output ++ * command is required in save dialog of MgcSfx, dialog is popuped with ++ * 'MGCSFX_DEFAULT_OUTPUT_COMMAND'. ++ * ++ * WARNING : Now, supported only 'PNM' image format, when command input is ++ * required. You should define filter which use 'PNM' image format ++ * as input or output. ++ */ ++# define MGCSFX_DEFAULT_INPUT_COMMAND "tifftopnm" ++# define MGCSFX_DEFAULT_OUTPUT_COMMAND "pnmtotiff" ++ ++#endif /* HAVE_MGCSFX */ ++ ++ ++/*************************************************************************** ++ * Multi-Lingual TextViewer ++ * ++ * if you want XV to show the text in multi-lingual on TextViewer, change ++ * 'undef' to 'define' in the following line. ++ */ ++ ++#undef TV_MULTILINGUAL ++ ++#define TV_DEFAULT_CODESET TV_EUC_JAPAN ++ ++#ifdef TV_MULTILINGUAL ++# undef TV_L10N ++#endif +diff -ruN xv-3.10a-bugfixes/tiff/Makefile xv-3.10a-enhancements/tiff/Makefile +--- xv-3.10a-bugfixes/tiff/Makefile 2004-05-16 18:49:11.000000000 -0700 ++++ xv-3.10a-enhancements/tiff/Makefile 2005-04-17 14:45:28.000000000 -0700 +@@ -38,7 +38,7 @@ + IPATH= -I. + + COPTS= -O +-CFLAGS= ${COPTS} ${IPATH} ++CFLAGS= ${COPTS} ${IPATH} -D_BSD_SOURCE + + INCS= tiff.h tiffio.h + +diff -ruN xv-3.10a-bugfixes/vdcomp.c xv-3.10a-enhancements/vdcomp.c +--- xv-3.10a-bugfixes/vdcomp.c 2005-03-20 17:48:59.000000000 -0800 ++++ xv-3.10a-enhancements/vdcomp.c 2005-04-17 22:59:39.000000000 -0700 +@@ -106,6 +106,7 @@ + !defined(pyr) && \ + !defined(__UMAXV__) && \ + !defined(bsd43) && \ ++ !defined(__bsd43) && \ + !defined(aux) && \ + !defined(__bsdi__) && \ + !defined(sequent) && \ +@@ -115,7 +116,14 @@ + # if defined(hp300) || defined(hp800) || defined(NeXT) + # include /* it's in 'sys' on HPs and NeXT */ + # else +-# include ++# if !defined(__386BSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__) ++ /* ++ I want to use BSD macro for checking if this OS is *BSD or not, ++ but the macro is defined in , which I don't know all ++ machine has or not. ++ */ ++# include ++# endif + # endif + # endif + #endif /* !VMS */ +diff -ruN xv-3.10a-bugfixes/xcmap.c xv-3.10a-enhancements/xcmap.c +--- xv-3.10a-bugfixes/xcmap.c 2005-03-20 15:51:59.000000000 -0800 ++++ xv-3.10a-enhancements/xcmap.c 2005-04-17 14:45:28.000000000 -0700 +@@ -163,7 +163,7 @@ + XSetBackground(theDisp,theGC,bcol); + + CreateMainWindow(cmd,geom,argc,argv); +- Resize(WIDE,HIGH); ++ Resize((int)WIDE,(int)HIGH); + + XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask | ButtonPressMask); +@@ -212,10 +212,10 @@ + + case ConfigureNotify: { + XConfigureEvent *conf_event = (XConfigureEvent *) event; ++ int w = conf_event->width, h = conf_event->height; + +- if (conf_event->window == mainW && +- (conf_event->width != WIDE || conf_event->height != HIGH)) +- Resize(conf_event->width, conf_event->height); ++ if (conf_event->window == mainW && (w != WIDE || h != HIGH)) ++ Resize((int)(w ? w : WIDE), (int)(h ? h : HIGH)); + } + break; + +@@ -274,6 +274,8 @@ + WIDE = HIGH = 256; /* default window size */ + + x=y=w=h=1; ++ hints.flags = 0; ++ + i=XParseGeometry(geom,&x,&y,&w,&h); + if (i&WidthValue) + { +diff -ruN xv-3.10a-bugfixes/xv.c xv-3.10a-enhancements/xv.c +--- xv-3.10a-bugfixes/xv.c 2005-03-20 22:25:22.000000000 -0800 ++++ xv-3.10a-enhancements/xv.c 2005-05-01 13:33:25.000000000 -0700 +@@ -62,6 +62,19 @@ + + static char basefname[128]; /* just the current fname, no path */ + ++#ifdef TV_L10N ++# ifndef TV_FONTSET ++# define TV_FONTSET "-*-fixed-medium-r-normal--%d-*" ++# endif ++# ifndef TV_FONTSIZE ++# define TV_FONTSIZE 14,16 ++# endif ++ ++static int mfontsize[] = { TV_FONTSIZE, 0 }; ++static char mfontset[256]; ++#endif ++ ++ + /* things to do upon successfully loading an image */ + static int autoraw = 0; /* force raw if using stdcmap */ + static int autodither = 0; /* dither */ +@@ -78,6 +91,12 @@ + + static int force8 = 0; /* force 8-bit mode */ + static int force24 = 0; /* force 24-bit mode */ ++#ifdef HAVE_PCD ++static int PcdSize = -1; /* force dialog to ask */ ++#endif ++ ++static float waitsec_nonfinal = -1; /* "normal" waitsec value */ ++static float waitsec_final = -1; /* final-image waitsec value */ + + /* used in DeleteCmd() and Quit() */ + static char **mainargv; +@@ -103,7 +122,6 @@ + static void openNextLoop PARM((void)); + static void openPrevPic PARM((void)); + static void openNamedPic PARM((void)); +-static int findRandomPic PARM((void)); + static void mainLoop PARM((void)); + static void createMainWindow PARM((char *, char *)); + static void setWinIconNames PARM((char *)); +@@ -120,16 +138,17 @@ + int imap, ctrlmap, gmap, browmap, cmtmap, clrroot, nopos, limit2x; + char *display, *whitestr, *blackstr, *histr, *lostr, + *infogeom, *fgstr, *bgstr, *ctrlgeom, *gamgeom, *browgeom, *tmpstr; +-char *rootfgstr, *rootbgstr, *visualstr, *textgeom, *cmtgeom; ++char *rootfgstr, *rootbgstr, *imagebgstr, *visualstr, *textgeom, *cmtgeom; + char *monofontname, *flistName; ++#ifdef TV_L10N ++char **misscharset, *defstr; ++int nmisscharset; ++#endif + int curstype, stdinflag, browseMode, savenorm, preview, pscomp, preset, + rmodeset, gamset, cgamset, perfect, owncmap, rwcolor, stdcmap; + int nodecor; + double gamval, rgamval, ggamval, bgamval; + +- +- +- + /*******************************************/ + int main(argc, argv) + int argc; +@@ -137,6 +156,9 @@ + /*******************************************/ + { + int i; ++#ifdef TV_L10N ++ int j; ++#endif + XColor ecdef; + Window rootReturn, parentReturn, *children; + unsigned int numChildren, rootDEEP; +@@ -153,6 +175,13 @@ + /*** variable Initialization ***/ + /*****************************************************/ + ++#ifdef TV_L10N ++ /* setlocale(LC_ALL, localeList[LOCALE_EUCJ]); */ ++ setlocale(LC_ALL, ""); ++ xlocale = (int)XSupportsLocale(); /* assume that (Bool) is (int) */ ++ /* if X doesn't support ja_JP.ujis text viewer l10n doesn't work. */ ++#endif ++ + xv_getwd(initdir, sizeof(initdir)); + searchdir[0] = '\0'; + fullfname[0] = '\0'; +@@ -162,7 +191,7 @@ + + /* init internal variables */ + display = NULL; +- fgstr = bgstr = rootfgstr = rootbgstr = NULL; ++ fgstr = bgstr = rootfgstr = rootbgstr = imagebgstr = NULL; + histr = lostr = whitestr = blackstr = NULL; + visualstr = monofontname = flistName = NULL; + winTitle = NULL; +@@ -180,6 +209,7 @@ + autoclose = autoDelete = 0; + cmapInGam = 0; + grabDelay = 0; ++ startGrab = 0; + showzoomcursor = 0; + perfect = owncmap = stdcmap = rwcolor = 0; + +@@ -228,6 +258,10 @@ + if (!tmpdir) FatalError("can't malloc 'tmpdir'\n"); + strcpy(tmpdir, tmpstr); + } ++#ifdef AUTO_EXPAND ++ Vdinit(); ++ vd_handler_setup(); ++#endif + + /* init command-line options flags */ + infogeom = DEFINFOGEOM; ctrlgeom = DEFCTRLGEOM; +@@ -238,7 +272,7 @@ + ninstall = 0; fixedaspect = 0; noFreeCols = nodecor = 0; + DEBUG = 0; bwidth = 2; + nolimits = useroot = clrroot = noqcheck = 0; +- waitsec = -1; waitloop = 0; automax = 0; ++ waitsec = waitsec_final = -1.0; waitloop = 0; automax = 0; + rootMode = 0; hsvmode = 0; + rmodeset = gamset = cgamset = 0; + nopos = limit2x = 0; +@@ -251,6 +285,10 @@ + preset = 0; + viewonly = 0; + ++#ifdef ENABLE_FIXPIX_SMOOTH ++ do_fixpix_smooth = 0; ++#endif ++ + /* init 'xormasks' array */ + xorMasks[0] = 0x01010101; + xorMasks[1] = 0x02020203; +@@ -277,6 +315,24 @@ + tiffW = (Window) NULL; tiffUp = 0; + #endif + ++#ifdef HAVE_PNG ++ pngW = (Window) NULL; pngUp = 0; ++#endif ++ ++ pcdW = (Window) NULL; pcdUp = 0; ++ ++#ifdef HAVE_PIC2 ++ pic2W = (Window) NULL; pic2Up = 0; ++#endif ++ ++#ifdef HAVE_PCD ++ pcdW = (Window) NULL; pcdUp = 0; ++#endif ++ ++#ifdef HAVE_MGCSFX ++ mgcsfxW = (Window) NULL; mgcsfxUp = 0; ++#endif ++ + imap = ctrlmap = gmap = browmap = cmtmap = 0; + + ch_offx = ch_offy = p_offx = p_offy = 0; +@@ -303,13 +359,35 @@ + verifyArgs(); + + ++#if 0 ++#ifdef XVEXECPATH ++ /* set up path to search for external executables */ ++ { ++ char *systempath = getenv("PATH"); ++ char *xvexecpath = getenv("XVPATH"); ++ if (xvexecpath == NULL) xvexecpath = XVEXECPATH; ++ /* FIXME: can systempath == NULL? */ ++ strcat(systempath, ":"); /* FIXME: writing to mem we don't own */ ++ strcat(systempath, xvexecpath); /* FIXME: writing to mem we don't own */ ++ /* FIXME: was there supposed to be a setenv() call in here? */ ++ if (DEBUG) ++ fprintf(stderr, "DEBUG: executable search path: %s\n", systempath); ++ } ++#endif ++#endif ++ ++ + /*****************************************************/ + /*** X Setup ***/ + /*****************************************************/ + + theScreen = DefaultScreen(theDisp); + theCmap = DefaultColormap(theDisp, theScreen); +- rootW = RootWindow(theDisp,theScreen); ++ if (spec_window) { ++ rootW = spec_window; ++ } else { ++ rootW = RootWindow(theDisp,theScreen); ++ } + theGC = DefaultGC(theDisp,theScreen); + theVisual = DefaultVisual(theDisp,theScreen); + ncells = DisplayCells(theDisp, theScreen); +@@ -320,7 +398,7 @@ + + rootDEEP = dispDEEP; + +- /* things dependant on theVisual: ++ /* things dependent on theVisual: + * dispDEEP, theScreen, rootW, ncells, theCmap, theGC, + * vrWIDE, dispWIDE, vrHIGH, dispHIGH, maxWIDE, maxHIGH + */ +@@ -500,6 +578,7 @@ + arrow = XCreateFontCursor(theDisp,(u_int) curstype); + cross = XCreateFontCursor(theDisp,XC_crosshair); + tcross = XCreateFontCursor(theDisp,XC_tcross); ++ tlcorner = XCreateFontCursor(theDisp,XC_top_left_corner); + zoom = XCreateFontCursor(theDisp,XC_sizing); + + { +@@ -575,6 +654,18 @@ + xvAllocColor(theDisp, theCmap, &ecdef)) rootbg = ecdef.pixel; + + ++ /* GRR 19980308: set up image bg color (for transparent images) */ ++ have_imagebg = 0; ++ if (imagebgstr && XParseColor(theDisp, theCmap, imagebgstr, &ecdef) && ++ xvAllocColor(theDisp, theCmap, &ecdef)) { ++ /* imagebg = ecdef.pixel; */ ++ have_imagebg = 1; ++ imagebgR = ecdef.red; ++ imagebgG = ecdef.green; ++ imagebgB = ecdef.blue; ++ } ++ ++ + /* set up hi/lo colors */ + i=0; + if (dispDEEP > 1) { /* only if we're on a reasonable display */ +@@ -664,6 +755,61 @@ + + monofont=monofinfo->fid; + ++#ifdef TV_L10N ++ if (xlocale) { ++ i = 0; ++ while (mfontsize[i]) { ++ xlocale = 1; /* True */ ++ ++ sprintf(mfontset, TV_FONTSET, mfontsize[i]); ++/*fprintf(stderr, "FontSet: %s\n", mfontset);*/ ++ ++ monofset = XCreateFontSet(theDisp, mfontset, ++ &misscharset, &nmisscharset, &defstr); ++# if 0 /* not useful */ ++ if (!monofset) { ++ /* the current locale is not supported */ ++/*fprintf(stderr, "Current locale `%s' is not supported.\n", localeList[i]);*/ ++ xlocale = 0; ++ break; ++ } ++# endif ++/*fprintf(stderr, "# of misscharset in mfontsize[%d]: %d\n", i,nmisscharset);*/ ++ ++ for (j = 0; j < nmisscharset; j++) { ++ if (!strncmp(misscharset[j], "jisx0208", 8)) { ++ /* font for JIS X 0208 is not found */ ++ xlocale = 0; ++ break; ++ } ++ } ++ ++ if (xlocale) { ++ monofsetinfo = XExtentsOfFontSet(monofset); ++ monofsetinfo->max_logical_extent.width = mfontsize[i]; ++ /* correct size of TextViewer ++ in case that JIS X 0208 is not found */ ++ break; ++ } ++ ++ i++; ++ } /* while (mfontsize[i]) */ ++ ++# if 0 ++ if (nmisscharset > 0) { ++ sprintf(str,"missing %d charset:\n", nmisscharset); ++ for (i = 0; i < nmisscharset; i++) { ++ sprintf(str, "%s\t%s\n", str, misscharset[i]); ++ } ++# if 0 ++ FatalError(str); ++# else ++ fprintf(stderr, "%s", str); ++# endif ++ } ++# endif ++ } ++#endif /* TV_L10N */ + + + +@@ -693,6 +839,18 @@ + } + else namelist[0] = NULL; + } ++ else if (randomShow) { ++ int i, j; ++ char *tmp; ++ ++ srandom((int)time((time_t *)0)); ++ for (i = numnames; i > 1; i--) { ++ j = random() % i; ++ tmp = namelist[i-1]; ++ namelist[i-1] = namelist[j]; ++ namelist[j] = tmp; ++ } ++ } + + if (numnames) makeDispNames(); + +@@ -796,6 +954,25 @@ + XSetTransientForHint(theDisp, tiffW, dirW); + #endif + ++#ifdef HAVE_PNG ++ CreatePNGW(); ++ XSetTransientForHint(theDisp, pngW, dirW); ++#endif ++ ++#ifdef HAVE_PCD ++ CreatePCDW(); ++ XSetTransientForHint(theDisp, pcdW, dirW); ++#endif ++ ++#ifdef HAVE_PIC2 ++ CreatePIC2W(); ++ XSetTransientForHint(theDisp, pic2W, dirW); ++#endif ++ ++#ifdef HAVE_MGCSFX ++ CreateMGCSFXW(); ++ XSetTransientForHint(theDisp, mgcsfxW, dirW); ++#endif + + LoadFishCursors(); + SetCursors(-1); +@@ -964,7 +1141,11 @@ + + dispDEEP = vinfo[best].depth; + theScreen = vinfo[best].screen; +- rootW = RootWindow(theDisp, theScreen); ++ if (spec_window) { ++ rootW = spec_window; ++ } else { ++ rootW = RootWindow(theDisp,theScreen); ++ } + ncells = vinfo[best].colormap_size; + theCmap = XCreateColormap(theDisp, rootW, theVisual, AllocNone); + +@@ -1095,6 +1276,9 @@ + + if (rd_str ("fileList")) flistName = def_str; + if (rd_flag("fixed")) fixedaspect = def_int; ++#ifdef ENABLE_FIXPIX_SMOOTH ++ if (rd_flag("fixpix")) do_fixpix_smooth = def_int; ++#endif + if (rd_flag("force8")) force8 = def_int; + if (rd_flag("force24")) force24 = def_int; + if (rd_str ("foreground")) fgstr = def_str; +@@ -1106,21 +1290,37 @@ + if (rd_str ("highlight")) histr = def_str; + if (rd_str ("iconGeometry")) icongeom = def_str; + if (rd_flag("iconic")) startIconic = def_int; ++ if (rd_str ("imageBackground")) imagebgstr = def_str; + if (rd_str ("infoGeometry")) infogeom = def_str; + if (rd_flag("infoMap")) imap = def_int; + if (rd_flag("loadBrowse")) browseMode = def_int; + if (rd_str ("lowlight")) lostr = def_str; ++#ifdef MACBINARY ++ if (rd_flag("macbinary")) handlemacb = def_int; ++#endif ++#ifdef HAVE_MGCSFX ++ if (rd_flag("mgcsfx")) mgcsfx = def_int; ++#endif + if (rd_flag("mono")) mono = def_int; + if (rd_str ("monofont")) monofontname = def_str; + if (rd_int ("ncols")) ncols = def_int; + if (rd_flag("ninstall")) ninstall = def_int; + if (rd_flag("nodecor")) nodecor = def_int; + if (rd_flag("nolimits")) nolimits = def_int; ++#ifdef HAVE_MGCSFX ++ if (rd_flag("nomgcsfx")) nomgcsfx = def_int; ++#endif ++#if defined(HAVE_PIC) || defined(HAVE_PIC2) ++ if (rd_flag("nopicadjust")) nopicadjust = def_int; ++#endif + if (rd_flag("nopos")) nopos = def_int; + if (rd_flag("noqcheck")) noqcheck = def_int; + if (rd_flag("nostat")) nostat = def_int; + if (rd_flag("ownCmap")) owncmap = def_int; + if (rd_flag("perfect")) perfect = def_int; ++#ifdef HAVE_PIC2 ++ if (rd_flag("pic2split")) pic2split = def_int; ++#endif + if (rd_flag("popupKludge")) winCtrPosKludge = def_int; + if (rd_str ("print")) strncpy(printCmd, def_str, + (size_t) PRINTCMDLEN); +@@ -1138,6 +1338,9 @@ + if (rd_str ("textviewGeometry")) textgeom = def_str; + if (rd_flag("useStdCmap")) stdcmap = def_int; + if (rd_str ("visual")) visualstr = def_str; ++#ifdef VS_ADJUST ++ if (rd_flag("vsadjust")) vsadjust = def_int; ++#endif + if (rd_flag("vsDisable")) novbrowse = def_int; + if (rd_str ("vsGeometry")) browgeom = def_str; + if (rd_flag("vsMap")) browmap = def_int; +@@ -1172,7 +1375,13 @@ + } + + if (numnames (size_t) 2 && +- strcmp(basefname+strlen(basefname)-2,".Z")==0) ++ if (strlen(basefname)>2 && strcmp(basefname+strlen(basefname)-2,".Z")==0) + basefname[strlen(basefname)-2]='\0'; + else { + #ifdef GUNZIP +- if (strlen(basefname)>2 && strcmp(basefname+strlen(basefname)-2,".Z")==0) ++ if (strlen(basefname)>2 && strcmp(basefname+strlen(basefname)-2,".z")==0) + basefname[strlen(basefname)-2]='\0'; +- +- else if (strlen(basefname)>3 && +- strcmp(basefname+strlen(basefname)-3,".gz")==0) ++ else ++ if (strlen(basefname)>3 && strcmp(basefname+strlen(basefname)-3,".gz")==0) + basefname[strlen(basefname)-3]='\0'; +-#endif /* GUNZIP */ ++#endif ++#ifdef BUNZIP2 ++ if (strlen(basefname)>4 && strcmp(basefname+strlen(basefname)-4,".bz2")==0) ++ basefname[strlen(basefname)-4]='\0'; ++#endif + } + + +@@ -1973,6 +2291,9 @@ + + if (strcmp(filename,STDINSTR)==0) { + FILE *fp = NULL; ++#ifndef USE_MKSTEMP ++ int tmpfd; ++#endif + + #ifndef VMS + sprintf(filename,"%s/xvXXXXXX",tmpdir); +@@ -1984,13 +2305,18 @@ + fp = fdopen(mkstemp(filename), "w"); + #else + mktemp(filename); +- fp = fopen(filename, "w"); ++ tmpfd = open(filename,O_WRONLY|O_CREAT|O_EXCL,S_IRWUSR); ++ if (tmpfd < 0) FatalError("openPic(): can't create temporary file"); ++ fp = fdopen(tmpfd,"w"); + #endif + if (!fp) FatalError("openPic(): can't write temporary file"); + + clearerr(stdin); + while ( (i=getchar()) != EOF) putc(i,fp); + fclose(fp); ++#ifndef USE_MKSTEMP ++ close(tmpfd); ++#endif + + /* and remove it from list, since we can never reload from stdin */ + if (strcmp(namelist[0], STDINSTR)==0) deleteFromList(0); +@@ -2005,15 +2331,21 @@ + (no pipes or stdin, though it could be compressed) to be loaded */ + filetype = ReadFileType(filename); + ++#ifdef HAVE_MGCSFX ++ if (mgcsfx && filetype == RFT_UNKNOWN){ /* force use MgcSfx */ ++ if(getInputCom() != 0) filetype = RFT_MGCSFX; ++ } ++#endif + +- if (filetype == RFT_COMPRESS) { /* a compressed file. uncompress it */ ++ /* if it's a compressed file, uncompress it: */ ++ if ((filetype == RFT_COMPRESS) || (filetype == RFT_BZIP2)) { + char tmpname[128]; + + if ( + #ifndef VMS +- UncompressFile(filename, tmpname) ++ UncompressFile(filename, tmpname, filetype) + #else +- UncompressFile(basefname, tmpname) ++ UncompressFile(basefname, tmpname, filetype) + #endif + ) { + +@@ -2029,6 +2361,57 @@ + WaitCursor(); + } + ++#ifdef MACBINARY ++ if (handlemacb && macb_file == True) { ++ char tmpname[128]; ++ ++ if (RemoveMacbinary(filename, tmpname)) { ++ if (strcmp(fullname,filename)!=0) unlink(filename); ++ strcpy(origname, filename); ++ strcpy(filename, tmpname); ++ } ++ else filetype = RFT_ERROR; ++ ++ WaitCursor(); ++ } ++#endif ++ ++#ifdef HAVE_MGCSFX_AUTO ++ if (filetype == RFT_MGCSFX) { ++ char tmpname[128], tmp[256]; ++ char *icom; ++ ++ if ((icom = mgcsfx_auto_input_com(filename)) != NULL) { ++ sprintf(tmpname, "%s/xvmsautoXXXXXX", tmpdir); ++#ifdef USE_MKSTEMP ++ close(mkstemp(tmpname)); ++#else ++ mktemp(tmpname); ++#endif ++ SetISTR(ISTR_INFO, "Converting to known format by MgcSfx auto..."); ++ sprintf(tmp,"%s >%s", icom, tmpname); ++ } ++ else goto ms_auto_no; ++ ++#ifndef VMS ++ if (system(tmp)) ++#else ++ if (!system(tmp)) ++#endif ++ { ++ SetISTR(ISTR_INFO, "Unable to convert '%s' by MgcSfx auto.", ++ BaseName(filename)); ++ Warning(); ++ filetype = RFT_ERROR; ++ goto ms_auto_no; ++ } ++ ++ filetype = ReadFileType(tmpname); ++ if (strcmp(fullname,filename)!=0) unlink(filename); ++ strcpy(filename, tmpname); ++ } ++ms_auto_no: ++#endif /* HAVE_MGCSFX_AUTO */ + + if (filetype == RFT_ERROR) { + char foostr[512]; +@@ -2042,10 +2425,16 @@ + + if (filetype == RFT_UNKNOWN) { + /* view as a text/hex file */ +- TextView(filename); ++#ifdef MACBINARY ++ if (origname[0]) ++ i = TextView(origname); ++ else ++#endif ++ i = TextView(filename); + SetISTR(ISTR_INFO,"'%s' not in a recognized format.", basefname); + /* Warning(); */ +- goto SHOWN_AS_TEXT; ++ if (i) goto SHOWN_AS_TEXT; ++ else goto FAILED; + } + + if (filetype < RFT_ERROR) { +@@ -2073,8 +2462,9 @@ + if (filetype == RFT_XBM && (!i || pinfo.w==0 || pinfo.h==0)) { + /* probably just a '.h' file or something... */ + SetISTR(ISTR_INFO," "); +- TextView(filename); +- goto SHOWN_AS_TEXT; ++ i = TextView(filename); ++ if (i) goto SHOWN_AS_TEXT; ++ else goto FAILED; + } + + if (!i) { +@@ -2209,12 +2599,15 @@ + if (fullname && strcmp(fullname,filename)!=0) unlink(filename); + + +- SetISTR(ISTR_INFO,formatStr); ++ SetISTR(ISTR_INFO, "%s", formatStr); + + SetInfoMode(INF_PART); +- SetISTR(ISTR_FILENAME, "%s", +- (filenum==DFLTPIC || filenum==GRABBED || frompipe) ? +- "" : basefname); ++ if (filenum==DFLTPIC || filenum==GRABBED || frompipe) ++ SetISTR(ISTR_FILENAME, ""); ++ else if (numPages > 1) ++ SetISTR(ISTR_FILENAME, "%s Page %d of %d", basefname, curPage+1, numPages); ++ else ++ SetISTR(ISTR_FILENAME, "%s", basefname); + + SetISTR(ISTR_RES,"%d x %d",pWIDE,pHIGH); + SetISTR(ISTR_COLOR, ""); +@@ -2424,7 +2817,7 @@ + if (autodither && ncols>0) epicMode = EM_DITH; + + /* if in CM_STDCMAP mode, and *not* in '-wait 0', then autodither */ +- if (colorMapMode == CM_STDCMAP && waitsec != 0) epicMode = EM_DITH; ++ if (colorMapMode == CM_STDCMAP && waitsec != 0.0) epicMode = EM_DITH; + + /* if -smooth or image has been shrunk to fit screen */ + if (autosmooth || (pWIDE >maxWIDE || pHIGH>maxHIGH) +@@ -2510,7 +2903,11 @@ + to generate the correct exposes (particularly with 'BitGravity' turned + on */ + +- if (mainW && !useroot) GenExpose(mainW, 0, 0, (u_int) eWIDE, (u_int) eHIGH); ++ /*Brian T. Schellenberger: fix for X 4.2 refresh problem*/ ++ if (mainW && !useroot) { ++ XSync(theDisp, False); ++ GenExpose(mainW, 0, 0, (u_int) eWIDE, (u_int) eHIGH); ++ } + + return 1; + +@@ -2542,6 +2939,9 @@ + } + + ++extern byte ZXheader[128]; /* [JCE] Spectrum screen magic number is ++ defined in xvzx.c */ ++ + + /********************************/ + int ReadFileType(fname) +@@ -2554,76 +2954,105 @@ + + FILE *fp; + byte magicno[30]; /* first 30 bytes of file */ +- int rv, n; ++ int rv=RFT_UNKNOWN, n; ++#ifdef MACBINARY ++ int macbin_alrchk = False; ++#endif + + if (!fname) return RFT_ERROR; /* shouldn't happen */ + + fp = xv_fopen(fname, "r"); + if (!fp) return RFT_ERROR; + ++ if (strlen(fname) > 4 && ++ strcasecmp(fname+strlen(fname)-5, ".wbmp")==0) rv = RFT_WBMP; ++ + n = fread(magicno, (size_t) 1, (size_t) 30, fp); + fclose(fp); + +- if (n<30) return RFT_UNKNOWN; /* files less than 30 bytes long... */ ++ if (n<30) return rv; /* files less than 30 bytes long... */ + +- rv = RFT_UNKNOWN; ++#ifdef MACBINARY ++ macb_file = False; ++ while (1) { ++#endif + +- if (strncmp((char *) magicno,"GIF87a", (size_t) 6)==0 || +- strncmp((char *) magicno,"GIF89a", (size_t) 6)==0) rv = RFT_GIF; ++#ifdef HAVE_MGCSFX ++ if (is_mgcsfx(fname, magicno, 30) != 0) rv = RFT_MGCSFX; ++ else ++#endif ++ if (strncmp((char *) magicno,"GIF87a", (size_t) 6)==0 || ++ strncmp((char *) magicno,"GIF89a", (size_t) 6)==0) rv = RFT_GIF; + + else if (strncmp((char *) magicno,"VIEW", (size_t) 4)==0 || +- strncmp((char *) magicno,"WEIV", (size_t) 4)==0) rv = RFT_PM; ++ strncmp((char *) magicno,"WEIV", (size_t) 4)==0) rv = RFT_PM; ++ ++#ifdef HAVE_PIC2 ++ else if (magicno[0]=='P' && magicno[1]=='2' && ++ magicno[2]=='D' && magicno[3]=='T') rv = RFT_PIC2; ++#endif + + else if (magicno[0] == 'P' && magicno[1]>='1' && +- magicno[1]<='6') rv = RFT_PBM; ++ (magicno[1]<='6' || magicno[1]=='8')) rv = RFT_PBM; + + /* note: have to check XPM before XBM, as first 2 chars are the same */ + else if (strncmp((char *) magicno, "/* XPM */", (size_t) 9)==0) rv = RFT_XPM; + + else if (strncmp((char *) magicno,"#define", (size_t) 7)==0 || +- (magicno[0] == '/' && magicno[1] == '*')) rv = RFT_XBM; ++ (magicno[0] == '/' && magicno[1] == '*')) rv = RFT_XBM; + + else if (magicno[0]==0x59 && (magicno[1]&0x7f)==0x26 && +- magicno[2]==0x6a && (magicno[3]&0x7f)==0x15) rv = RFT_SUNRAS; ++ magicno[2]==0x6a && (magicno[3]&0x7f)==0x15) rv = RFT_SUNRAS; + +- else if (magicno[0] == 'B' && magicno[1] == 'M') rv = RFT_BMP; ++ else if (magicno[0] == 'B' && magicno[1] == 'M') rv = RFT_BMP; + +- else if (magicno[0]==0x52 && magicno[1]==0xcc) rv = RFT_UTAHRLE; ++ else if (magicno[0]==0x52 && magicno[1]==0xcc) rv = RFT_UTAHRLE; + + else if ((magicno[0]==0x01 && magicno[1]==0xda) || +- (magicno[0]==0xda && magicno[1]==0x01)) rv = RFT_IRIS; ++ (magicno[0]==0xda && magicno[1]==0x01)) rv = RFT_IRIS; + +- else if (magicno[0]==0x1f && magicno[1]==0x9d) rv = RFT_COMPRESS; ++ else if (magicno[0]==0x1f && magicno[1]==0x9d) rv = RFT_COMPRESS; + + #ifdef GUNZIP +- else if (magicno[0]==0x1f && magicno[1]==0x8b) rv = RFT_COMPRESS; ++ else if (magicno[0]==0x1f && magicno[1]==0x8b) rv = RFT_COMPRESS; + #endif + +- else if (magicno[0]==0x0a && magicno[1] <= 5) rv = RFT_PCX; ++#ifdef BUNZIP2 ++ else if (magicno[0]==0x42 && magicno[1]==0x5a) rv = RFT_BZIP2; ++#endif ++ ++ else if (magicno[0]==0x0a && magicno[1] <= 5) rv = RFT_PCX; + + else if (strncmp((char *) magicno, "FORM", (size_t) 4)==0 && +- strncmp((char *) magicno+8, "ILBM", (size_t) 4)==0) rv = RFT_IFF; ++ strncmp((char *) magicno+8, "ILBM", (size_t) 4)==0) rv = RFT_IFF; + + else if (magicno[0]==0 && magicno[1]==0 && + magicno[2]==2 && magicno[3]==0 && + magicno[4]==0 && magicno[5]==0 && +- magicno[6]==0 && magicno[7]==0) rv = RFT_TARGA; ++ magicno[6]==0 && magicno[7]==0) rv = RFT_TARGA; + + else if (magicno[4]==0x00 && magicno[5]==0x00 && +- magicno[6]==0x00 && magicno[7]==0x07) rv = RFT_XWD; ++ magicno[6]==0x00 && magicno[7]==0x07) rv = RFT_XWD; + + else if (strncmp((char *) magicno,"SIMPLE ", (size_t) 8)==0 && +- magicno[29] == 'T') rv = RFT_FITS; ++ magicno[29] == 'T') rv = RFT_FITS; + ++ /* [JCE] Spectrum screen */ ++ else if (memcmp(magicno, ZXheader, (size_t) 18)==0) rv = RFT_ZX; + + #ifdef HAVE_JPEG + else if (magicno[0]==0xff && magicno[1]==0xd8 && +- magicno[2]==0xff) rv = RFT_JFIF; ++ magicno[2]==0xff) rv = RFT_JFIF; + #endif + + #ifdef HAVE_TIFF + else if ((magicno[0]=='M' && magicno[1]=='M') || +- (magicno[0]=='I' && magicno[1]=='I')) rv = RFT_TIFF; ++ (magicno[0]=='I' && magicno[1]=='I')) rv = RFT_TIFF; ++#endif ++ ++#ifdef HAVE_PNG ++ else if (magicno[0]==0x89 && magicno[1]=='P' && ++ magicno[2]=='N' && magicno[3]=='G') rv = RFT_PNG; + #endif + + #ifdef HAVE_PDS +@@ -2635,11 +3064,59 @@ + rv = RFT_PDSVICAR; + #endif + +-#ifdef GS_PATH ++#ifdef GS_PATH /* Ghostscript handles both PostScript and PDF */ + else if (strncmp((char *) magicno, "%!", (size_t) 2)==0 || +- strncmp((char *) magicno, "\004%!", (size_t) 3)==0) rv = RFT_PS; ++ strncmp((char *) magicno, "\004%!", (size_t) 3)==0 || ++ strncmp((char *) magicno, "%PDF", (size_t) 4)==0) rv = RFT_PS; + #endif + ++#ifdef HAVE_MAG ++ else if (strncmp((char *) magicno,"MAKI02 ", (size_t) 8)==0) rv = RFT_MAG; ++#endif ++ ++#ifdef HAVE_MAKI ++ else if (strncmp((char *) magicno,"MAKI01A ", (size_t) 8)==0 || ++ strncmp((char *) magicno,"MAKI01B ", (size_t) 8)==0) rv = RFT_MAKI; ++#endif ++ ++#ifdef HAVE_PIC ++ else if (magicno[0]=='P' && magicno[1]=='I'&&magicno[2]=='C') rv = RFT_PIC; ++#endif ++ ++#ifdef HAVE_PI ++ else if (magicno[0]=='P' && magicno[1]=='i') rv = RFT_PI; ++#endif ++ ++#ifdef HAVE_HIPS ++ else if (strstr((char *) magicno, "./digest")) rv = RFT_HIPS; ++#endif ++ ++#ifdef HAVE_PCD ++ else if (magicno[0]==0xff && magicno[1]==0xff && ++ magicno[2]==0xff && magicno[3]==0xff) rv = RFT_PCD; ++#endif ++ ++#ifdef MACBINARY ++ /* Now we try to handle MacBinary files, but the method is VERY dirty... */ ++ if (macbin_alrchk == True) { ++ macb_file = True; ++ break; ++ } ++ ++ if (rv != RFT_UNKNOWN) ++ break; ++ ++ /* Skip MACBSIZE and recheck */ ++ macbin_alrchk = True; ++ fp = xv_fopen(fname, "r"); ++ if (!fp) return RFT_ERROR; ++ fseek(fp, MACBSIZE, SEEK_SET); ++ n = fread(magicno, (size_t) 1, (size_t) 30, fp); ++ fclose(fp); ++ ++ if (n<30) return RFT_UNKNOWN; /* files less than 30 bytes long... */ ++ } ++#endif + return rv; + } + +@@ -2652,9 +3129,10 @@ + PICINFO *pinfo; + { + /* if quick is set, we're being called to generate icons, or something +- like that. We should load the image as quickly as possible. Currently, +- this only affects the LoadPS routine, which, if quick is set, only +- generates the page file for the first page of the document */ ++ like that. We should load the image as quickly as possible. Previously, ++ this affected only the LoadPS routine, which, if quick is set, only ++ generates the page file for the first page of the document. Now it ++ also affects PCD, which loads only a thumbnail. */ + + int rv = 0; + +@@ -2665,7 +3143,11 @@ + switch (ftype) { + case RFT_GIF: rv = LoadGIF (fname, pinfo); break; + case RFT_PM: rv = LoadPM (fname, pinfo); break; ++#ifdef HAVE_MGCSFX ++ case RFT_PBM: rv = LoadPBM (fname, pinfo, -1); break; ++#else + case RFT_PBM: rv = LoadPBM (fname, pinfo); break; ++#endif + case RFT_XBM: rv = LoadXBM (fname, pinfo); break; + case RFT_SUNRAS: rv = LoadSunRas(fname, pinfo); break; + case RFT_BMP: rv = LoadBMP (fname, pinfo); break; +@@ -2677,21 +3159,60 @@ + case RFT_XPM: rv = LoadXPM (fname, pinfo); break; + case RFT_XWD: rv = LoadXWD (fname, pinfo); break; + case RFT_FITS: rv = LoadFITS (fname, pinfo, quick); break; ++ case RFT_ZX: rv = LoadZX (fname, pinfo); break; /* [JCE] */ ++ case RFT_WBMP: rv = LoadWBMP (fname, pinfo); break; ++ ++#ifdef HAVE_PCD ++ /* if quick is switched on, use the smallest image size; don't ask the user */ ++ case RFT_PCD: rv = LoadPCD (fname, pinfo, quick ? 0 : PcdSize); break; ++#endif + + #ifdef HAVE_JPEG +- case RFT_JFIF: rv = LoadJFIF (fname, pinfo, quick); break; ++ case RFT_JFIF: rv = LoadJFIF (fname, pinfo, quick); break; + #endif + + #ifdef HAVE_TIFF +- case RFT_TIFF: rv = LoadTIFF (fname, pinfo, quick); break; ++ case RFT_TIFF: rv = LoadTIFF (fname, pinfo, quick); break; ++#endif ++ ++#ifdef HAVE_PNG ++ case RFT_PNG: rv = LoadPNG (fname, pinfo); break; + #endif + + #ifdef HAVE_PDS +- case RFT_PDSVICAR: rv = LoadPDS (fname, pinfo); break; ++ case RFT_PDSVICAR: rv = LoadPDS (fname, pinfo); break; + #endif + + #ifdef GS_PATH +- case RFT_PS: rv = LoadPS (fname, pinfo, quick); break; ++ case RFT_PS: rv = LoadPS (fname, pinfo, quick); break; ++#endif ++ ++#ifdef HAVE_MAG ++ case RFT_MAG: rv = LoadMAG (fname, pinfo); break; ++#endif ++ ++#ifdef HAVE_MAKI ++ case RFT_MAKI: rv = LoadMAKI (fname, pinfo); break; ++#endif ++ ++#ifdef HAVE_PIC ++ case RFT_PIC: rv = LoadPIC (fname, pinfo); break; ++#endif ++ ++#ifdef HAVE_PI ++ case RFT_PI: rv = LoadPi (fname, pinfo); break; ++#endif ++ ++#ifdef HAVE_PIC2 ++ case RFT_PIC2: rv = LoadPIC2 (fname, pinfo, quick); break; ++#endif ++ ++#ifdef HAVE_HIPS ++ case RFT_HIPS: rv = LoadHIPS (fname, pinfo); break; ++#endif ++ ++#ifdef HAVE_MGCSFX ++ case RFT_MGCSFX: rv = LoadMGCSFX (fname, pinfo); break; + #endif + + } +@@ -2700,13 +3221,17 @@ + + + /********************************/ +-int UncompressFile(name, uncompname) ++int UncompressFile(name, uncompname, filetype) + char *name, *uncompname; ++ int filetype; + { + /* returns '1' on success, with name of uncompressed file in uncompname + returns '0' on failure */ + + char namez[128], *fname, buf[512]; ++#ifndef USE_MKSTEMP ++ int tmpfd; ++#endif + + fname = name; + namez[0] = '\0'; +@@ -2746,15 +3271,23 @@ + close(mkstemp(uncompname)); + #else + mktemp(uncompname); ++ tmpfd = open(uncompname,O_WRONLY|O_CREAT|O_EXCL,S_IRWUSR); ++ if (tmpfd < 0) FatalError("UncompressFile(): can't create temporary file"); ++ close(tmpfd); + #endif + + #ifndef VMS +- sprintf(buf,"%s -c %s >%s", UNCOMPRESS, fname, uncompname); ++ if (filetype == RFT_COMPRESS) ++ sprintf(buf,"%s -c '%s' > '%s'", UNCOMPRESS, fname, uncompname); ++# ifdef BUNZIP2 ++ else if (filetype == RFT_BZIP2) ++ sprintf(buf,"%s -c '%s' > '%s'", BUNZIP2, fname, uncompname); ++# endif + #else /* it IS VMS */ + # ifdef GUNZIP +- sprintf(buf,"%s %s %s", UNCOMPRESS, fname, uncompname); ++ sprintf(buf,"%s '%s' '%s'", UNCOMPRESS, fname, uncompname); + # else +- sprintf(buf,"%s %s", UNCOMPRESS, fname); ++ sprintf(buf,"%s '%s'", UNCOMPRESS, fname); + # endif + #endif + +@@ -2797,6 +3330,62 @@ + } + + ++#ifdef MACBINARY ++/********************************/ ++int RemoveMacbinary(src, dst) ++ char *src, *dst; ++{ ++ char buffer[8192]; /* XXX */ ++ int n, eof; ++#ifndef USE_MKSTEMP ++ int tmpfd; ++#endif ++ FILE *sfp, *dfp; ++ ++ sprintf(dst, "%s/xvmXXXXXX", tmpdir); ++#ifdef USE_MKSTEMP ++ close(mkstemp(dst)); ++#else ++ mktemp(dst); ++ tmpfd = open(dst,O_WRONLY|O_CREAT|O_EXCL,S_IRWUSR); ++ if (tmpfd < 0) FatalError("RemoveMacbinary(): can't create temporary file"); ++#endif ++ ++ SetISTR(ISTR_INFO, "Removing MacBinary..."); ++ ++ sfp = xv_fopen(src, "r"); ++#ifdef USE_MKSTEMP ++ dfp = xv_fopen(dst, "w"); ++#else ++ dfp = fdopen(tmpfd, "w"); ++#endif ++ if (!sfp || !dfp) { ++ SetISTR(ISTR_INFO, "Unable to remove a InfoFile header form '%s'.", src); ++ Warning(); ++ return 0; ++ } ++ fseek(sfp, MACBSIZE, SEEK_SET); ++ while ((n = fread(buffer, 1, sizeof(buffer), sfp)) == 8192) /* XXX */ ++ fwrite(buffer, 1, n, dfp); ++ if ((eof = feof(sfp))) ++ fwrite(buffer, 1, n, dfp); ++ fclose(sfp); ++ fflush(dfp); ++ fclose(dfp); ++#ifndef USE_MKSTEMP ++ close(tmpfd); ++#endif ++ if (!eof) { ++ SetISTR(ISTR_INFO, "Unable to remove a InfoFile header form '%s'.", src); ++ Warning(); ++ return 0; ++ } ++ ++ return 1; ++} ++#endif ++ ++ + /********************************/ + void KillPageFiles(bname, numpages) + char *bname; +@@ -2918,6 +3507,9 @@ + + char fullcmd[512], tmpname[64], str[512]; + int i; ++#ifndef USE_MKSTEMP ++ int tmpfd; ++#endif + + if (!cmd || (strlen(cmd) < (size_t) 2)) return 1; + +@@ -2926,6 +3518,9 @@ + close(mkstemp(tmpname)); + #else + mktemp(tmpname); ++ tmpfd = open(tmpname,O_WRONLY|O_CREAT|O_EXCL,S_IRWUSR); ++ if (tmpfd < 0) FatalError("openPic(): can't create temporary file"); ++ close(tmpfd); + #endif + if (tmpname[0] == '\0') { /* mktemp() or mkstemp() blew up */ + sprintf(str,"Unable to create temporary filename."); +@@ -2966,26 +3561,21 @@ + { + int i; + ++ waitsec = (numnames <= 1)? waitsec_final : waitsec_nonfinal; ++ + if (!numnames) { openPic(DFLTPIC); return; } + + i = 0; +- if (!randomShow) { +- while (numnames>0) { +- if (openPic(0)) return; /* success */ +- else { +- if (polling && !i) +- fprintf(stderr,"%s: POLLING: Waiting for file '%s' \n\tto %s\n", +- cmd, namelist[0], "be created, or whatever..."); +- i = 1; +- } ++ while (numnames>0) { ++ if (openPic(0)) return; /* success */ ++ else { ++ if (polling && !i) ++ fprintf(stderr,"%s: POLLING: Waiting for file '%s' \n\tto %s\n", ++ cmd, namelist[0], "be created, or whatever..."); ++ i = 1; + } + } + +- else { /* pick random first picture */ +- for (i=findRandomPic(); i>=0; i=findRandomPic()) +- if (openPic(i)) return; /* success */ +- } +- + if (numnames>1) FatalError("couldn't open any pictures"); + else Quit(-1); + } +@@ -3014,19 +3604,15 @@ + { + int i; + +- if (!randomShow) { +- if (curname>=0) i = curname+1; +- else if (nList.selected >= 0 && nList.selected < numnames) +- i = nList.selected; +- else i = 0; ++ if (curname>=0) i = curname+1; ++ else if (nList.selected >= 0 && nList.selected < numnames) ++ i = nList.selected; ++ else i = 0; + +- while (i=0; i=findRandomPic()) +- if (openPic(i)) return; +- } ++ waitsec = (i == numnames-1)? waitsec_final : waitsec_nonfinal; ++ ++ while (i=0) i = curname+1; +- else if (nList.selected >= 0 && nList.selected < numnames) +- i = nList.selected; +- else i = 0; ++ if (curname>=0) i = curname+1; ++ else if (nList.selected >= 0 && nList.selected < numnames) ++ i = nList.selected; ++ else i = 0; + +- if (loop) { i = 0; loop = 0; } ++ if (loop) { i = 0; loop = 0; } + +- while (i=0; i=findRandomPic()) +- if (openPic(i)) return; +- } ++ waitsec = (i == numnames-1)? waitsec_final : waitsec_nonfinal; ++ ++ while (i vrWIDE) x = vrWIDE - eWIDE; /* keep on screen */ + if (y+eHIGH > vrHIGH) y = vrHIGH - eHIGH; +@@ -3245,7 +3795,7 @@ + hints.x = x; hints.y = y; + hints.width = eWIDE; hints.height = eHIGH; + hints.max_width = maxWIDE; hints.max_height = maxHIGH; +- hints.flags |= USSize | PMaxSize; ++ hints.flags |= USSize | PMaxSize | PWinGravity; + + xswa.bit_gravity = StaticGravity; + xswa.background_pixel = bg; +@@ -3294,10 +3844,6 @@ + } + } + +- +- XSetStandardProperties(theDisp,mainW,"","",None,NULL,0,&hints); +- setWinIconNames(name); +- + xwmh.input = True; + xwmh.flags = InputHint; + +@@ -3322,12 +3868,13 @@ + } + } + } +- XSetWMHints(theDisp, mainW, &xwmh); + + classh.res_name = "xv"; + classh.res_class = "XVroot"; +- XSetClassHint(theDisp, mainW, &classh); + ++ XmbSetWMProperties(theDisp, mainW, NULL, NULL, NULL, 0, &hints, &xwmh, ++ &classh); ++ setWinIconNames(name); + + if (nodecor) { /* turn of image window decorations (in MWM) */ + Atom mwm_wm_hints; +@@ -4070,16 +4617,30 @@ + unsigned long nitems, nleft; + byte *data; + +- i = XGetWindowProperty(theDisp, RootWindow(theDisp, 0), +- resAtom, 0L, 1L, False, +- XA_STRING, &actType, &actFormat, &nitems, &nleft, +- (unsigned char **) &data); ++ if (spec_window) { ++ i = XGetWindowProperty(theDisp, spec_window, ++ resAtom, 0L, 1L, False, ++ XA_STRING, &actType, &actFormat, &nitems, &nleft, ++ (unsigned char **) &data); ++ } else { ++ i = XGetWindowProperty(theDisp, RootWindow(theDisp, 0), ++ resAtom, 0L, 1L, False, ++ XA_STRING, &actType, &actFormat, &nitems, &nleft, ++ (unsigned char **) &data); ++ } + if (i==Success && actType==XA_STRING && actFormat==8) { + if (nitems>0 && data) XFree(data); +- i = XGetWindowProperty(theDisp, RootWindow(theDisp, 0), resAtom, 0L, +- (long) ((nleft+4+3)/4), +- False, XA_STRING, &actType, &actFormat, +- &nitems, &nleft, (unsigned char **) &data); ++ if (spec_window) { ++ i = XGetWindowProperty(theDisp, spec_window, resAtom, 0L, ++ (long) ((nleft+4+3)/4), ++ False, XA_STRING, &actType, &actFormat, ++ &nitems, &nleft, (unsigned char **) &data); ++ } else { ++ i = XGetWindowProperty(theDisp, RootWindow(theDisp, 0), resAtom, 0L, ++ (long) ((nleft+4+3)/4), ++ False, XA_STRING, &actType, &actFormat, ++ &nitems, &nleft, (unsigned char **) &data); ++ } + if (i==Success && actType==XA_STRING && actFormat==8 && data) { + def_resource = XrmGetStringDatabase((char *) data); + XFree(data); +diff -ruN xv-3.10a-bugfixes/xv.h xv-3.10a-enhancements/xv.h +--- xv-3.10a-bugfixes/xv.h 2005-04-10 09:37:18.000000000 -0700 ++++ xv-3.10a-enhancements/xv.h 2005-05-01 13:32:10.000000000 -0700 +@@ -14,8 +14,9 @@ + /* GRR orig jumbo enhancements patch: 20000220 */ + /* GRR 1st public jumbo F+E patches: 20040531 */ + /* GRR 2nd public jumbo F+E patches: 20050410 */ +-#define REVDATE "version 3.10a-jumboFix of 20050410" +-#define VERSTR "3.10a-20050410" ++/* GRR 3rd public jumbo F+E patches: 20050501 */ ++#define REVDATE "version 3.10a-jumboFix+Enh of 20050501" ++#define VERSTR "3.10a-20050501" + + /* + * uncomment the following, and modify for your site, but only if you've +@@ -49,6 +50,10 @@ + /* START OF MACHINE-DEPENDENT CONFIGURATION INFO */ + /*************************************************/ + ++ ++#define ENABLE_FIXPIX_SMOOTH /* GRR 19980607 */ ++ ++ + /* Things to make xv more likely to just build, without the user tweaking + the makefile */ + +@@ -67,6 +72,14 @@ + # define SVR4 + #endif + ++#if defined(__sony_news) && defined(bsd43) && !defined(__bsd43) ++# define __bsd43 ++#elif defined(__sony_news) && (defined(SYSTYPE_BSD) || defined(__SYSTYPE_BSD)) && !defined(bsd43) && !defined(__bsd43) ++# define bsd43 ++# define __bsd43 ++#endif ++ ++#include /* for interrupt handling */ + + /* at least on Linux, the following file (1) includes sys/types.h and + * (2) defines __USE_BSD (which was not defined before here), so __linux__ +@@ -78,7 +91,9 @@ + # ifndef _LINUX_LIMITS_H + # include + # endif +-# define USLEEP ++# ifndef USLEEP ++# define USLEEP ++# endif + /* want only one or the other defined, not both: */ + # if !defined(BSDTYPES) && !defined(__USE_BSD) + # define BSDTYPES +@@ -117,6 +132,16 @@ + #endif + + ++#if defined(__sony_news) && defined(__bsd43) ++# include ++#endif ++ ++ ++#if defined(__FreeBSD__) ++# include ++#endif ++ ++ + /* include files */ + #include + #include +@@ -132,9 +157,11 @@ + + #ifndef VMS + # include +- extern int errno; /* SHOULD be in errno.h, but often isn't */ +-# if !defined(__NetBSD__) && !(defined(__linux__) && defined(__USE_BSD)) +- extern char *sys_errlist[]; /* this too... */ ++# ifndef __NetBSD__ ++# if !(defined __GLIBC__ && __GLIBC__ >= 2) ++ extern int errno; /* SHOULD be in errno.h, but often isn't */ ++ extern char *sys_errlist[]; /* this too... */ ++# endif + # endif + #endif + +@@ -203,9 +230,10 @@ + #include + #include + ++#ifdef TV_L10N ++# include ++#endif + +-#undef SIGCHLD /* defined in both Xos.h and signal.h */ +-#include /* for interrupt handling */ + + #include + +@@ -316,7 +344,9 @@ + # endif + #endif + +- ++#ifndef S_IRWUSR ++# define S_IRWUSR (S_IRUSR|__S_IWRITE) ++#endif + + #ifndef MAXPATHLEN + # define MAXPATHLEN 256 +@@ -343,13 +373,36 @@ + #endif + + +-/* GRR 20040430: This is new and still only partially implemented. No doubt +- * there are many other systems that have mkstemp() (SUSv3), +- * but let's start small... */ +-#if defined(__linux__) || defined(__OpenBSD__) +-# define USE_MKSTEMP /* use 'mkstemp()' instead of 'mktemp()' */ ++/* GRR 20040430: This is new and still not fully deployed. No doubt there ++ * are other systems that have mkstemp() (SUSv3); we can add ++ * them later. */ ++#ifndef VMS /* VMS hates multi-line definitions */ ++# if defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) || \ ++ defined(__bsdi__) ++# ifndef USE_MKSTEMP ++# define USE_MKSTEMP /* use 'mkstemp()' instead of 'mktemp()' */ ++# endif /* >> SECURITY ISSUE << */ ++# endif ++#endif ++ ++ ++/* GRR 20040503: This is new and so far tested only under Linux. But it ++ * allows -wait to work with subsecond values as long as ++ * times() exists and clock_t is a long int (latter matters ++ * only if/when clocks wrap, which for Linux is multiples of ++ * 497.11 days since the last reboot). */ ++#if defined(__linux__) ++# define USE_TICKS /* use times()/Timer(), not time()/sleep() */ ++# include /* LONG_MAX (really want CLOCK_T_MAX) */ ++# include /* times() */ ++# ifndef CLK_TCK /* can be undefined in strict-ANSI mode */ ++# define CLK_TCK CLOCKS_PER_SEC /* claimed to be same thing in time.h */ ++# endif + #endif + ++#if (defined(SYSV) || defined(SVR4) || defined(linux)) && !defined(USE_GETCWD) ++# define USE_GETCWD ++#endif + + /*****************************/ + /* END OF CONFIGURATION INFO */ +@@ -363,17 +416,21 @@ + # define HAVE_TIFF + #endif + ++#ifdef DOPNG ++# define HAVE_PNG ++#endif ++ + #ifdef DOPDS + # define HAVE_PDS + #endif + + + +-#define PROGNAME "xv" /* used in resource database */ ++#define PROGNAME "xv" /* used in resource database */ + +-#define MAXNAMES 4096 /* max # of files in ctrlW list */ ++#define MAXNAMES 32768 /* max # of files in ctrlW list */ + +-#define MAXBRWIN 4 /* max # of vis browser windows */ ++#define MAXBRWIN 16 /* max # of vis browser windows */ + + /* strings in the INFOBOX (used in SetISTR and GetISTR) */ + #define NISTR 10 /* number of ISTRs */ +@@ -494,24 +551,80 @@ + #define F_TIFINC 0 + #endif + ++#ifdef HAVE_PNG ++#define F_PNGINC 1 ++#else ++#define F_PNGINC 0 ++#endif ++ ++#ifdef HAVE_MAG ++# define F_MAGINC 1 ++#else ++# define F_MAGINC 0 ++#endif ++ ++#ifdef HAVE_PIC ++# define F_PICINC 1 ++#else ++# define F_PICINC 0 ++#endif ++ ++#ifdef HAVE_MAKI ++# define F_MAKINC 1 ++#else ++# define F_MAKINC 0 ++#endif ++ ++#ifdef HAVE_PI ++# define F_PAIINC 1 ++#else ++# define F_PAIINC 0 ++#endif ++ ++#ifdef HAVE_PIC2 ++# define F_PC2INC 1 ++#else ++# define F_PC2INC 0 ++#endif ++ ++#ifdef HAVE_MGCSFX ++# define F_MGCSFXINC 1 ++#else ++# define F_MGCSFXINC 0 ++#endif ++ ++#ifdef MACBINARY ++# define MACBSIZE 128 ++#endif + + #define F_GIF 0 + #define F_JPEG ( 0 + F_JPGINC) + #define F_TIFF ( 0 + F_JPGINC + F_TIFINC) +-#define F_PS ( 1 + F_JPGINC + F_TIFINC) +-#define F_PBMRAW ( 2 + F_JPGINC + F_TIFINC) +-#define F_PBMASCII ( 3 + F_JPGINC + F_TIFINC) +-#define F_XBM ( 4 + F_JPGINC + F_TIFINC) +-#define F_XPM ( 5 + F_JPGINC + F_TIFINC) +-#define F_BMP ( 6 + F_JPGINC + F_TIFINC) +-#define F_SUNRAS ( 7 + F_JPGINC + F_TIFINC) +-#define F_IRIS ( 8 + F_JPGINC + F_TIFINC) +-#define F_TARGA ( 9 + F_JPGINC + F_TIFINC) +-#define F_FITS (10 + F_JPGINC + F_TIFINC) +-#define F_PM (11 + F_JPGINC + F_TIFINC) +-#define F_DELIM1 (12 + F_JPGINC + F_TIFINC) /* ----- */ +-#define F_FILELIST (13 + F_JPGINC + F_TIFINC) +-#define F_MAXFMTS (14 + F_JPGINC + F_TIFINC) /* 15, normally */ ++#define F_PNG ( 0 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_PS ( 1 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_PBMRAW ( 2 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_PBMASCII ( 3 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_XBM ( 4 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_XPM ( 5 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_BMP ( 6 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_SUNRAS ( 7 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_IRIS ( 8 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_TARGA ( 9 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_FITS (10 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_PM (11 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define F_ZX (12 + F_JPGINC + F_TIFINC + F_PNGINC) /* [JCE] */ ++#define F_WBMP (13 + F_JPGINC + F_TIFINC + F_PNGINC) ++#define JP_EXT_F (F_WBMP) ++#define F_MAG (JP_EXT_F + F_MAGINC) ++#define F_PIC (JP_EXT_F + F_MAGINC + F_PICINC) ++#define F_MAKI (JP_EXT_F + F_MAGINC + F_PICINC + F_MAKINC) ++#define F_PI (JP_EXT_F + F_MAGINC + F_PICINC + F_MAKINC + F_PAIINC) ++#define F_PIC2 (JP_EXT_F + F_MAGINC + F_PICINC + F_MAKINC + F_PAIINC + F_PC2INC) ++#define F_MGCSFX (JP_EXT_F + F_MAGINC + F_PICINC + F_MAKINC + F_PAIINC + F_PC2INC + F_MGCSFXINC) ++#define JP_EXT_F_END (F_MGCSFX) ++#define F_DELIM1 (JP_EXT_F_END + 1) /* ----- */ ++#define F_FILELIST (JP_EXT_F_END + 2) ++#define F_MAXFMTS (JP_EXT_F_END + 3) /* 23, normally */ + + + +@@ -541,6 +654,19 @@ + #define RFT_XPM 17 + #define RFT_XWD 18 + #define RFT_FITS 19 ++#define RFT_PNG 20 ++#define RFT_ZX 21 /* [JCE] */ ++#define RFT_WBMP 22 ++#define RFT_PCD 23 ++#define RFT_HIPS 24 ++#define RFT_BZIP2 25 ++#define JP_EXT_RFT (RFT_BZIP2) ++#define RFT_MAG (JP_EXT_RFT + 1) ++#define RFT_MAKI (JP_EXT_RFT + 2) ++#define RFT_PIC (JP_EXT_RFT + 3) ++#define RFT_PI (JP_EXT_RFT + 4) ++#define RFT_PIC2 (JP_EXT_RFT + 5) ++#define RFT_MGCSFX (JP_EXT_RFT + 6) + + /* definitions for page up/down, arrow up/down list control */ + #define LS_PAGEUP 0 +@@ -599,7 +725,8 @@ + #define RM_CBRICK 7 /* centered on a 'brick' bg */ + #define RM_ECENTER 8 /* symmetrical tiled */ + #define RM_ECMIRR 9 /* symmetrical mirror tiled */ +-#define RM_MAX RM_ECMIRR ++#define RM_UPLEFT 10 /* just in upper left corner */ ++#define RM_MAX RM_UPLEFT + + + /* values of colorMapMode */ +@@ -649,7 +776,8 @@ + #define RMB_CBRICK 8 + #define RMB_ECENTER 9 + #define RMB_ECMIRR 10 +-#define RMB_MAX 11 ++#define RMB_UPLEFT 11 ++#define RMB_MAX 12 + + + /* indicies into conv24MB */ +@@ -784,9 +912,9 @@ + int len; /* length of major axis */ + int vert; /* true if vertical, else horizontal */ + int active; /* true if scroll bar can do anything*/ +- int min,max; /* min/max values 'pos' can take */ +- int val; /* 'value' of scrollbar */ +- int page; /* amt val change on pageup/pagedown */ ++ double min,max; /* min/max values 'pos' can take */ ++ double val; /* 'value' of scrollbar */ ++ double page; /* amt val change on pageup/pagedown */ + int tpos; /* thumb pos. (pixels from tmin) */ + int tmin,tmax; /* min/max thumb offsets (from 0,0) */ + int tsize; /* size of thumb (in pixels) */ +@@ -801,9 +929,10 @@ + typedef struct { Window win; /* window ID */ + int x,y,w,h; /* window coords in parent */ + int active; /* true if can do anything*/ +- int min,max; /* min/max values 'pos' can take */ +- int val; /* 'value' of dial */ +- int page; /* amt val change on pageup/pagedown */ ++ double min,max; /* min/max values 'pos' can take */ ++ double val; /* 'value' of dial */ ++ double inc; /* amt val change on up/down */ ++ double page; /* amt val change on pageup/pagedown */ + char *title; /* title for this guage */ + char *units; /* string appended to value */ + u_long fg,bg,hi,lo; /* colors */ +@@ -971,15 +1100,19 @@ + WHERE unsigned int ncells, dispWIDE, dispHIGH, dispDEEP; + WHERE unsigned int vrWIDE, vrHIGH, maxWIDE, maxHIGH; + WHERE Colormap theCmap, LocalCmap; +-WHERE Window rootW, mainW, vrootW; ++WHERE Window spec_window, rootW, mainW, vrootW; + WHERE GC theGC; + WHERE u_long black, white, fg, bg, infofg, infobg; + WHERE u_long hicol, locol; + WHERE u_long blkRGB, whtRGB; + WHERE Font mfont, monofont; + WHERE XFontStruct *mfinfo, *monofinfo; ++#ifdef TV_L10N ++WHERE XFontSet monofset; ++WHERE XFontSetExtents *monofsetinfo; ++#endif + WHERE Visual *theVisual; +-WHERE Cursor arrow, cross, tcross, zoom, inviso; ++WHERE Cursor arrow, cross, tcross, zoom, inviso, tlcorner; + WHERE Pixmap iconPix, iconmask; + WHERE Pixmap riconPix, riconmask; + WHERE int showzoomcursor; +@@ -996,6 +1129,10 @@ + WHERE int picType; /* CONV24_8BIT,CONV24_24BIT,etc.*/ + WHERE char *picComments; /* text comments on current pic */ + ++#ifdef TV_L10N ++WHERE int xlocale; /* true if Xlib supports locale */ ++#endif ++ + WHERE int numPages, curPage; /* for multi-page files */ + WHERE char pageBaseName[64]; /* basename for multi-page files */ + +@@ -1029,6 +1166,23 @@ + WHERE unsigned long cols[256]; /* maps pic pixel values to X pixel vals */ + WHERE int fc2pcol[256]; /* maps freecols into pic pixel values */ + WHERE int numcols; /* # of desired colors in picture */ ++#ifdef MACBINARY ++WHERE char macb_file; /* True if this file type is MacBinary */ ++WHERE int handlemacb; /* True if we want to handle MacBinary */ ++#endif ++#if defined(HAVE_PIC) || defined(HAVE_PIC2) ++WHERE int nopicadjust; /* True if we don't want to adjust aspect */ ++#endif ++#ifdef HAVE_PIC2 ++WHERE int pic2split; /* True if we want to split multiblocks */ ++#endif ++#ifdef VS_ADJUST ++WHERE int vsadjust; /* True if we want to adjust aspect of icons */ ++#endif ++#ifdef HAVE_MGCSFX ++WHERE int mgcsfx; /* True if we want to force use MgcSfx */ ++WHERE int nomgcsfx; /* True if we don't want to use MgcSfx */ ++#endif + + /* Std Cmap stuff */ + WHERE byte stdr[256], stdg[256], stdb[256]; /* std 3/3/2 cmap */ +@@ -1083,42 +1237,47 @@ + noFreeCols, /* don't free colors when loading new pic */ + autoquit, /* quit in '-root' or when click on win */ + xerrcode, /* errorcode of last X error */ +- grabDelay; /* # of seconds to sleep at start of Grab */ ++ grabDelay, /* # of seconds to sleep at start of Grab */ ++ startGrab; /* start immediate grab ? */ + + WHERE int state824; /* displays warning when going 8->24 */ + + WHERE float defaspect, /* default aspect ratio to use */ + normaspect; /* normal aspect ratio of this picture */ + +-WHERE unsigned long rootbg, rootfg; /* fg/bg for root border */ +-WHERE int waitsec; /* secs btwn pics. -1=wait for event */ +-WHERE int waitloop; /* loop at end of slide show? */ +-WHERE int automax; /* maximize pic on open */ +-WHERE int rootMode; /* mode used for -root images */ ++WHERE u_long rootbg, rootfg; /* fg/bg for root border */ ++WHERE u_short imagebgR; ++WHERE u_short imagebgG; /* GRR 19980308: bg for transpar. images */ ++WHERE u_short imagebgB; ++WHERE int have_imagebg; ++WHERE double waitsec; /* secs btwn pics. -1.0=wait for event */ ++WHERE int waitloop; /* loop at end of slide show? */ ++WHERE int automax; /* maximize pic on open */ ++WHERE int rootMode; /* mode used for -root images */ + +-WHERE int nostat; /* if true, don't stat() in LdCurDir */ ++WHERE int nostat; /* if true, don't stat() in LdCurDir */ + +-WHERE int ctrlColor; /* whether or not to use colored butts */ ++WHERE int ctrlColor; /* whether or not to use colored butts */ + +-WHERE char *def_str; /* used by rd_*() routines */ ++WHERE char *def_str; /* used by rd_*() routines */ + WHERE int def_int; +-WHERE char *tmpdir; /* equal to "/tmp" or $TMPDIR env var */ +-WHERE Pixmap gray25Tile, /* used for 3d effect on 1-bit disp's */ ++WHERE char *tmpdir; /* equal to "/tmp" or $TMPDIR env var */ ++WHERE Pixmap gray25Tile, /* used for 3d effect on 1-bit disp's */ + gray50Tile; +-WHERE int autoDelete; /* delete cmd-line files on exit? */ ++WHERE int autoDelete; /* delete cmd-line files on exit? */ + + #define PRINTCMDLEN 256 + WHERE char printCmd[PRINTCMDLEN]; + + /* stuff used for 'info' box */ + WHERE Window infoW; +-WHERE int infoUp; /* boolean: whether infobox is visible */ ++WHERE int infoUp; /* boolean: whether infobox is visible */ + WHERE int infoMode; + + + /* stuff used for 'ctrl' box */ + WHERE Window ctrlW; +-WHERE int ctrlUp; /* boolean: whether ctrlbox is visible */ ++WHERE int ctrlUp; /* boolean: whether ctrlbox is visible */ + WHERE char *namelist[MAXNAMES]; /* list of file names from argv */ + WHERE char *origlist[MAXNAMES]; /* only names from argv (autoDelete)*/ + WHERE int orignumnames; +@@ -1157,25 +1316,30 @@ + + + /* stuff used for 'browse' box */ +-WHERE int anyBrowUp; /* whether *any* browser visible */ ++WHERE int anyBrowUp; /* whether *any* browser visible */ + + /* stuff used for textview windows */ +-WHERE int anyTextUp; /* are any text windows visible? */ +-WHERE int commentUp; /* comment window up? */ ++WHERE int anyTextUp; /* are any text windows visible? */ ++WHERE int commentUp; /* comment window up? */ + + /* stuff used for xvcut.c */ +-WHERE int forceClipFile; /* don't use property clipboard */ +-WHERE int clearR, clearG, clearB; /* clear color in 24-bit mode */ ++WHERE int forceClipFile; /* don't use property clipboard */ ++WHERE int clearR, clearG, clearB; /* clear color in 24-bit mode */ + + + /* stuff used for 'ps' box */ + WHERE Window psW; +-WHERE int psUp; /* is psW mapped, or what? */ ++WHERE int psUp; /* is psW mapped, or what? */ + WHERE CBUTT encapsCB, pscompCB; + WHERE char *gsDev, *gsGeomStr; + WHERE int gsRes; + + ++/* stuff used for 'pcd' box */ ++WHERE Window pcdW; ++WHERE int pcdUp; /* is pcdW mapped, or what? */ ++ ++ + #ifdef HAVE_JPEG + /* stuff used for 'jpeg' box */ + WHERE Window jpegW; +@@ -1190,6 +1354,91 @@ + #endif + + ++#ifdef HAVE_PNG ++/* stuff used for 'png' box */ ++WHERE Window pngW; ++WHERE int pngUp; /* is pngW mapped, or what? */ ++#endif ++ ++ ++#ifdef ENABLE_FIXPIX_SMOOTH ++WHERE int do_fixpix_smooth; /* GRR 19980607: runtime FS dithering */ ++#endif ++ ++#ifdef HAVE_PIC2 ++/* stuff used for 'pic2' box */ ++WHERE Window pic2W; ++WHERE int pic2Up; /* is pic2W mapped, or what? */ ++#endif /* HAVE_PIC2 */ ++ ++#ifdef HAVE_PCD ++/* stuff used for 'pcd' box */ ++WHERE Window pcdW; ++WHERE int pcdUp; /* is pcdW mapped, or what? */ ++#endif /* HAVE_PCD */ ++ ++#ifdef HAVE_MGCSFX ++/* stuff used for 'mgcsfx' box */ ++WHERE Window mgcsfxW; ++WHERE Window mgcsfxNameW; ++WHERE int mgcsfxUp; /* is mgcsfxW mapped, or what? */ ++#endif /* HAVE_MGCSFX */ ++ ++#ifdef TV_L10N ++/* stuff used for TextViewer Japanization */ ++# define LOCALE_USASCII 0 ++# define LOCALE_EUCJ 1 ++# define LOCALE_JIS 2 ++# define LOCALE_MSCODE 3 ++ ++# ifndef LOCALE_DEFAULT ++# define LOCALE_DEFAULT 0 ++# endif /* !LOCALE_DEFAULT */ ++ ++# ifndef MAIN ++ extern char *localeList[]; ++# else ++# ifndef LOCALE_NAME_EUC ++# ifndef X_LOCALE ++# if defined(__FreeBSD__) ++ char *localeList[] = {"", "ja_JP.EUC", "none", "none"}; ++# elif defined(__linux__) ++ char *localeList[] = {"", "ja_JP.eucJP", "none", "ja_JP.SJIS"}; ++# elif defined(__sun) || defined(sun) ++ char *localeList[] = {"", "ja", "none", "none"}; ++# elif defined(__sgi) /* sgi, __sgi, __sgi__ (gcc) */ ++ char *localeList[] = {"", "ja_JP.EUC", "none", "none"}; ++# elif defined(sony_news) ++ char *localeList[] = {"", "ja_JP.EUC", "none", "ja_JP.SJIS"}; ++# elif defined(nec) ++ char *localeList[] = {"", "japan", "none", "none"}; ++# elif defined(__hpux) ++ char *localeList[] = {"", "japanese.euc", "none", "japanese"}; ++# elif defined(__osf__) ++ char *localeList[] = {"", "ja_JP.deckanji", "none", "ja_JP.SJIS"}; ++# elif defined(_AIX) ++ char *localeList[] = {"", "ja_JP", "none", "Ja_JP" }; ++# elif defined(__bsdi) ++ char *localeList[] = {"", "Japanese-EUC", "none", "none" }; ++# else ++ char *localeList[] = {"", "ja_JP.EUC", "ja_JP.JIS", "ja_JP.SJIS"}; ++# endif ++# else ++# if (XlibSpecificationRelease > 5) ++ char *localeList[] = {"", "ja_JP.eucJP", "ja_JP.JIS7", ++ "ja_JP.SJIS"}; ++# else ++ char *localeList[] = {"", "ja_JP.ujis", "ja_JP.jis7", ++ "ja_JP.mscode"}; ++# endif ++# endif /* X_LOCALE */ ++# else ++ char *localeList[] = {"", LOCALE_NAME_EUC, ++ LOCALE_NAME_JIS, LOCALE_NAME_MSCODE}; ++# endif /* LOCALE_NAME_EUC */ ++# endif /* MAIN */ ++#endif /* TV_L10N */ ++ + #undef WHERE + + +@@ -1199,8 +1448,11 @@ + /****************************** XV.C ****************************/ + int ReadFileType PARM((char *)); + int ReadPicFile PARM((char *, int, PICINFO *, int)); +-int UncompressFile PARM((char *, char *)); ++int UncompressFile PARM((char *, char *, int)); + void KillPageFiles PARM((char *, int)); ++#ifdef MACBINARY ++int RemoveMacbinary PARM((char *, char *)); ++#endif + + void NewPicGetColors PARM((int, int)); + void FixAspect PARM((int, int *, int *)); +@@ -1429,6 +1681,9 @@ + int CheckPoll PARM((int)); + void DIRDeletedFile PARM((char *)); + void DIRCreatedFile PARM((char *)); ++FILE *pic2_OpenOutFile PARM((char *, int *)); ++void pic2_KillNullFile PARM((FILE *)); ++int OpenOutFileDesc PARM((char *)); + + + /*************************** XVBROWSE.C ************************/ +@@ -1448,7 +1703,7 @@ + + /*************************** XVTEXT.C ************************/ + void CreateTextWins PARM((char *, char *)); +-void TextView PARM((char *)); ++int TextView PARM((char *)); + void OpenTextView PARM((char *, int, char *, int)); + + void OpenCommentText PARM((void)); +@@ -1466,6 +1721,8 @@ + int TextCheckEvent PARM((XEvent *, int *, int *)); + int TextDelWin PARM((Window)); + ++int CharsetCheckEvent PARM((XEvent *)); ++int CharsetDelWin PARM((Window)); + + + /**************************** XVGAM.C **************************/ +@@ -1502,12 +1759,12 @@ + + + /*************************** XVDIAL.C ***************************/ +-void DCreate PARM((DIAL *, Window, int, int, int, int, int, +- int, int, int, u_long, u_long, u_long, +- u_long, char *, char *)); ++void DCreate PARM((DIAL *, Window, int, int, int, int, double, ++ double, double, double, double, u_long, ++ u_long, u_long, u_long, char *, char *)); + +-void DSetRange PARM((DIAL *, int, int, int, int)); +-void DSetVal PARM((DIAL *, int)); ++void DSetRange PARM((DIAL *, double,double,double,double,double)); ++void DSetVal PARM((DIAL *, double)); + void DSetActive PARM((DIAL *, int)); + void DRedraw PARM((DIAL *)); + int DTrack PARM((DIAL *, int, int)); +@@ -1585,7 +1842,11 @@ + byte *, byte *, int, int, char *)); + + /**************************** XVPBM.C ***************************/ ++#ifdef HAVE_MGCSFX ++int LoadPBM PARM((char *, PICINFO *, int)); ++#else + int LoadPBM PARM((char *, PICINFO *)); ++#endif + int WritePBM PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte *, int, int, int, char *)); + +@@ -1604,6 +1865,11 @@ + int WriteBMP PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte *, int, int)); + ++/**************************** XVWBMP.C ***************************/ ++int LoadWBMP PARM((char *, PICINFO *)); ++int WriteWBMP PARM((FILE *, byte *, int, int, int, byte *, ++ byte *, byte *, int, int)); ++ + /**************************** XVRLE.C ***************************/ + int LoadRLE PARM((char *, PICINFO *)); + +@@ -1642,6 +1908,7 @@ + void JPEGDialog PARM((int)); + int JPEGCheckEvent PARM((XEvent *)); + void JPEGSaveParams PARM((char *, int)); ++void VersionInfoJPEG PARM((void)); /* GRR 19980605 */ + + /**************************** XVTIFF.C ***************************/ + int LoadTIFF PARM((char *, PICINFO *, int)); +@@ -1649,6 +1916,15 @@ + void TIFFDialog PARM((int)); + int TIFFCheckEvent PARM((XEvent *)); + void TIFFSaveParams PARM((char *, int)); ++void VersionInfoTIFF PARM((void)); /* GRR 19980605 */ ++ ++/**************************** XVPNG.C ***************************/ ++int LoadPNG PARM((char *, PICINFO *)); ++void CreatePNGW PARM((void)); ++void PNGDialog PARM((int)); ++int PNGCheckEvent PARM((XEvent *)); ++void PNGSaveParams PARM((char *, int)); ++void VersionInfoPNG PARM((void)); /* GRR 19980605 */ + + /**************************** XVPDS.C ***************************/ + int LoadPDS PARM((char *, PICINFO *)); +@@ -1661,6 +1937,87 @@ + void PSResize PARM((void)); + int LoadPS PARM((char *, PICINFO *, int)); + ++/************************ [JCE] XVZX.C ***************************/ ++ ++int LoadZX PARM((char *, PICINFO *)); ++int WriteZX PARM((FILE *, byte *, int, int, int, byte *, ++ byte *, byte *, int, int, char *)); ++ ++/**************************** XVPCD.C ***************************/ ++int LoadPCD PARM((char *, PICINFO *, int)); ++void CreatePCDW PARM((void)); ++void PCDDialog PARM((int)); ++int PCDCheckEvent PARM((XEvent *)); ++void PCDSetParamOptions PARM((char *)); ++ ++/*************************** XVMAG.C ***************************/ ++int LoadMAG PARM((char *, PICINFO *)); ++int WriteMAG PARM((FILE *, byte *, int, int, int, ++ byte *, byte *, byte *, int, int, char *)); ++ ++/*************************** XVMAKI.C ***************************/ ++int LoadMAKI PARM((char *, PICINFO *)); ++int WriteMAKI PARM((FILE *, byte *, int, int, int, ++ byte *, byte *, byte *, int, int)); ++ ++/*************************** XVPIC.C ***************************/ ++int LoadPIC PARM((char *, PICINFO *)); ++int WritePIC PARM((FILE *, byte *, int, int, int, ++ byte *, byte *, byte *, int, int, char *)); ++ ++/*************************** XVPI.C ***************************/ ++int LoadPi PARM((char *, PICINFO *)); ++int WritePi PARM((FILE *, byte *, int, int, int, ++ byte *, byte *, byte *, int, int, char *)); ++ ++/*************************** XVPIC2.C ***************************/ ++int LoadPIC2 PARM((char *, PICINFO *, int)); ++void CreatePIC2W PARM((void)); ++void PIC2Dialog PARM((int)); ++int PIC2CheckEvent PARM((XEvent *)); ++int PIC2SetParamOptions PARM((char *)); ++ ++/**************************** XVPCD.C ***************************/ ++int LoadPCD PARM((char *, PICINFO *,int)); ++void CreatePCDW PARM((void)); ++void PCDDialog PARM((int)); ++int PCDCheckEvent PARM((XEvent *)); ++void PCDSetParamOptions PARM((char *)); ++ ++/**************************** XVHIPS.C ***************************/ ++int LoadHIPS PARM((char *, PICINFO *)); ++ ++/*************************** XVMGCSFX.C ***************************/ ++int is_mgcsfx PARM((char *, unsigned char *, int)); ++char *mgcsfx_auto_input_com PARM((char *)); ++int LoadMGCSFX PARM((char *, PICINFO *)); ++void CreateMGCSFXW PARM((void)); ++void MGCSFXDialog PARM((int)); ++int MGCSFXCheckEvent PARM((XEvent *)); ++int MGCSFXSaveParams PARM((char *, int)); ++ ++int getInputCom PARM((void)); ++int getOutputCom PARM((void)); ++ ++/**************************** XVVD.C ****************************/ ++void Vdinit PARM((void)); ++void Vdsettle PARM((void)); ++int Chvdir PARM((char *)); ++void Dirtovd PARM((char *)); ++void Vdtodir PARM((char *)); ++void Dirtosubst PARM((char *)); ++int Mkvdir PARM((char *)); ++void Mkvdir_force PARM((char *)); ++int Rmvdir PARM((char *)); ++int Movevdir PARM((char *, char *)); ++int Isarchive PARM((char *)); ++int Isvdir PARM((char *)); ++void vd_HUPhandler PARM((void)); ++void vd_handler PARM((int)); ++int vd_Xhandler PARM((Display *, XErrorEvent *)); ++int vd_XIOhandler PARM((Display *)); ++void vd_handler_setup PARM((void)); ++ + /*************************** XVPOPUP.C ***************************/ + void CenterMapWindow PARM((Window, int, int, int, int)); + int PopUp PARM((char *, char **, int)); +@@ -1714,3 +2071,13 @@ + void CoordP2E PARM((int, int, int *, int *)); + void CoordE2P PARM((int, int, int *, int *)); + ++#if defined(__mips) && defined(__SYSTYPE_BSD43) ++# define strstr(A,B) pds_strstr((A),(B)) ++# undef S_IFIFO ++#endif /* !mips_bsd */ ++ ++#ifndef SEEK_SET ++# define SEEK_SET 0 ++# define SEEK_CUR 1 ++# define SEEK_END 2 ++#endif +diff -ruN xv-3.10a-bugfixes/xv_mgcsfx.sample xv-3.10a-enhancements/xv_mgcsfx.sample +--- xv-3.10a-bugfixes/xv_mgcsfx.sample 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xv_mgcsfx.sample 2005-04-17 14:04:22.000000000 -0700 +@@ -0,0 +1,125 @@ ++#/* ++# Configuration file for XV with recognition of 'Magic and Suffix' ++# ++# ++# $Id: xv_mgcsfx.sample,v 1.11 95/10/03 17:00:05 tin329 Exp Locker: tin329 $ ++# ++# Author: Tetsuya INOUE ++# ++# ++# MgcSfx definition should write in one line. ++# Format: ++# :::::::: ++# If you decide to not use preprocessor, comment style is allowed. ++# # ++# ++# Description of your recognized image format. ++# Type ID for recognition. (You should use 'magic'.) ++# * magic Data of string style. ++# `\' escape for special characters: ++# \b \f \n \r \t \v \\ \' \" \a \? ++# \0 ...\377 octal value ++# \x0 ...\xff hexadecimal value ++# * suffix Suffix of file name. ++# This type check instead ++# of . ++# * [b|l]eint16 2 byte integer of [big|little] endian. ++# * [b|l]eint32 4 byte integer of [big|little] endian. ++# Offset of magic number in the target image file. ++# Data(magic number) of to match at . ++# Suffix of filename with '.'start. ++# ++# Input image format type (output from ). ++# * PNM (PPM, PGM, PBM) ++# * AUTO Recognized by xv management, and load. ++# This is different from others, because ++# this write file to temporary. ++# Output image format type (input to ). ++# * PNM_RAW (PPM_RAW, PGM_RAW, PBM_RAW) ++# * PNM_ASCII (PPM_ASCII, PGM_ASCII, PBM_ASCII) ++# ++# Command to get the input image. ++# * Command mast read stdin or file(specified by ++# argument), and write to stdout. ++# * Use %s to represent the file name. Without %s, ++# get file on stdin. ++# Command to put the output image. ++# * Command mast read stdin and write to stdout. ++# ++# Any message. ++#*/ ++ ++#/*############################################################################ ++# ++# definition of the rule with Magic and Suffix ++# ++#*/ ++ ++# /* Canon View Station Image Format */ ++ViewStation(std):magic:0:VsStdImf V0.2:.vs:PNM:VStopnm %s:PNM_RAW:pnmtoVS ++ViewStation(obj):magic:0:VsObjFormat V1.0:.vs:PNM:VSobjtopnm -:PNM_RAW:pnmtoVSobj ++ ++# /* CERN httpd cache */ ++# /* unchc skip header of CERN httpd cache file, and write data to stdout. */ ++CERN httpd cache:magic:0:HTTP/1.0::AUTO:unchc %s:: ++ ++# /* XLD4(Q4) image format */ ++XLD(Q4):magic:11:MAJYO:.q4:PNM:q4toppm:: ++ ++# /* ML1 image format */ ++ML1:magic:0:\1\0\0\x1a:.ml1:PNM:ml1toppm %s:: ++ ++# /* Pict image format, 256 color only */ ++PICT:suffix:::.pict:PNM:picttoppm:PNM_RAW:ppmquant 256 | ppmtopict ++PICT(gzip):suffix:::.pict.gz:PNM:gzip -dc | picttoppm:PNM_RAW:ppmquant 256 | ppmtopict | gzip ++PICT(compress):suffix:::.pict.Z:PNM:compress -dc | picttoppm:PNM_RAW:ppmquant 256 | ppmtopict | compress ++ ++# /* Tim image format(used by SONY PlayStation) */ ++TIM:magic:0:\x10\x00\x00\x00:.tim:PNM:timtoppm:: ++ ++# /* Cam image format(used by CASIO QV-10) */ ++# /* CAM:magic:0:\x07\x20\x4d\x4d:.cam:AUTO:camtoppm -j:PNM_RAW */ ++CAM:magic:0:\x07\x20\x4d\x4d:.cam:PNM:camtoppm:: ++ ++# /* Portable Network Graphics (PNG) format : magic is "0x89 PNG" */ ++PNG:magic:0:\x89\x50\x4e\x47:.png:PNM:pngtopnm %s:PNM_RAW:pnmtopng ++# /* PNG(interlace):magic:0:\x89\x50\x4e\x47:.png:PNM:pngtopnm %s:PNM_RAW:pnmtopng -interlace */ ++ ++# /* DB-Z, SAURUS Freehand Memo, PV-F1 Action Board, Wiz Quick Memo format */ ++# /* Use xbm2free-1.10 or later. Old version is NOT a filter. */ ++# /* To show version of xbm2free, type "xbm2free" (with no argument). */ ++ZAURUS:magic:19:IMG1:.zau:PBM_ASCII:free2pbm:PBM:pbmtoxbm|xbm2free -s - ++DBZ:magic:19:IMG1:.dbz:::PBM:pbmtoxbm|xbm2free -d - ++PVF1:magic:12:IMG1:.pvf1:PBM_ASCII:free2pbm:PBM:pbmtoxbm|xbm2free -v - ++# /* WIZ:magic:19:IMG1:.wiz:::PBM:pbmtoxbm|xbm2free -w - */ ++ ++ ++ ++# /* Compress:magic:0:\037\235:.Z:AUTO:uncompress %s:: */ ++# /* Gzip:magic:0:\037\213:.gz:AUTO:gunzip %s:: */ ++# /* Gzip(old):magic:0:\037\236:.z:AUTO:gunzip %s:: */ ++ ++# /* MAKI:magic:0:MAKI01A\040:.mki:::: */ ++# /* MAKI:magic:0:MAKI01B\040:.mki:::: */ ++# /* MAG:magic:0:MAKI02\040\040:.mag:::: */ ++# /* Pi:magic:0:Pi:.pi:::: */ ++# /* PIC:magic:0:PIC:.pic:::: */ ++# /* PIC2:magic:0:P2DT:.p2:::: */ ++# /* PhotoCD:magic:0:\xff\xff\xff\xff:.pcd:::: */ ++ ++# /* PBM(ascii):magic:0:P1:.pbm:::: */ ++# /* PGM(ascii):magic:0:P2:.pgm:::: */ ++# /* PPM(ascii):magic:0:P3:.ppm:::: */ ++# /* PBM(raw):magic:0:P4:.pbm:::: */ ++# /* PGM(raw):magic:0:P5:.pgm:::: */ ++# /* PPM(raw):magic:0:P6:.ppm:::: */ ++ ++# /* Sun raster:magic:0:\131\246\152\225:.sun:::: */ ++# /* JFIF(JPEG):magic:0:\xff\xd8\xff:.jpg:::: */ ++# /* TIFF big-endian:magic:0:\115\115:.tif:::: */ ++# /* TIFF little-endian:magic:0:\111\111:.tif:::: */ ++# /* GIF(87):magic:0:GIF87a:.gif:::: */ ++# /* GIF(89):magic:0:GIF89a:.gif:::: */ ++# /* SGI(1):magic:0:\x01\xda:.rgb:::: */ ++# /* SGI(2):magic:0:\xda\x01:.rgb:::: */ ++# /* XWD:magic:0:\0\0\0\7: :::: */ +diff -ruN xv-3.10a-bugfixes/xvbmp.c xv-3.10a-enhancements/xvbmp.c +--- xv-3.10a-bugfixes/xvbmp.c 2005-03-27 18:12:17.000000000 -0800 ++++ xv-3.10a-enhancements/xvbmp.c 2005-04-17 13:56:31.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * xvbmp.c - i/o routines for .BMP files (MS Windows 3.x) ++ * xvbmp.c - I/O routines for .BMP files (MS Windows 3.x and later; OS/2) + * + * LoadBMP(fname, numcols) + * WriteBMP(fp, pic, ptype, w, h, r, g, b, numcols, style); +@@ -9,30 +9,39 @@ + + #include "xv.h" + +-/* comments on error handling: +- a truncated file is not considered a Major Error. The file is loaded, the +- rest of the pic is filled with 0's. +- +- a file with garbage characters in it is an unloadable file. All allocated +- stuff is tossed, and LoadBMP returns non-zero +- +- not being able to malloc is a Fatal Error. The program is aborted. */ +- +- +-#define BI_RGB 0 +-#define BI_RLE8 1 +-#define BI_RLE4 2 ++/* Comments on error-handling: ++ A truncated file is not considered a Major Error. The file is loaded, ++ and the rest of the pic is filled with 0's. ++ ++ A file with garbage characters in it is an unloadable file. All allocated ++ stuff is tossed, and LoadBMP returns non-zero. ++ ++ Not being able to malloc is a Fatal Error. The program is aborted. */ ++ ++ ++#define BI_RGB 0 /* a.k.a. uncompressed */ ++#define BI_RLE8 1 ++#define BI_RLE4 2 ++#define BI_BITFIELDS 3 /* BMP version 4 */ ++#define BI_JPEG 4 /* BMP version 5 (not yet supported) */ ++#define BI_PNG 5 /* BMP version 5 (not yet supported) */ + + #define WIN_OS2_OLD 12 + #define WIN_NEW 40 + #define OS2_NEW 64 + ++#if (defined(UINT_MAX) && UINT_MAX != 0xffffffffU) ++# error XV's BMP code requires 32-bit unsigned integer type, but u_int isn't ++#endif ++ + static long filesize; + + static int loadBMP1 PARM((FILE *, byte *, u_int, u_int)); + static int loadBMP4 PARM((FILE *, byte *, u_int, u_int, u_int)); + static int loadBMP8 PARM((FILE *, byte *, u_int, u_int, u_int)); +-static int loadBMP24 PARM((FILE *, byte *, u_int, u_int)); ++static int loadBMP16 PARM((FILE *, byte *, u_int, u_int, u_int *)); ++static int loadBMP24 PARM((FILE *, byte *, u_int, u_int, u_int)); ++static int loadBMP32 PARM((FILE *, byte *, u_int, u_int, u_int *)); + static u_int getshort PARM((FILE *)); + static u_int getint PARM((FILE *)); + static void putshort PARM((FILE *, int)); +@@ -52,15 +61,14 @@ + PICINFO *pinfo; + /*******************************************/ + { +- FILE *fp; +- int i, c, c1, rv; +- u_int bfSize, bfOffBits, biSize, biWidth, biHeight, biPlanes; +- u_int biBitCount, biCompression, biSizeImage, biXPelsPerMeter; +- u_int biYPelsPerMeter, biClrUsed, biClrImportant; +- int bPad; +- char *cmpstr; +- byte *pic24, *pic8; +- char buf[512], *bname; ++ FILE *fp; ++ int i, c, c1, rv, bPad; ++ u_int bfSize, bfOffBits, biSize, biWidth, biHeight, biPlanes; ++ u_int biBitCount, biCompression, biSizeImage, biXPelsPerMeter; ++ u_int biYPelsPerMeter, biClrUsed, biClrImportant; ++ u_int colormask[3]; ++ char buf[512], *bname, *cmpstr, rgb_bits[16]; ++ byte *pic24, *pic8; + + /* returns '1' on success */ + +@@ -98,14 +106,13 @@ + biClrUsed = getint(fp); + biClrImportant = getint(fp); + } +- + else { /* old bitmap format */ + biWidth = getshort(fp); /* Types have changed ! */ + biHeight = getshort(fp); + biPlanes = getshort(fp); + biBitCount = getshort(fp); + +- /* Not in old versions so have to compute them*/ ++ /* not in old versions, so have to compute them */ + biSizeImage = (((biPlanes * biBitCount*biWidth)+31)/32)*4*biHeight; + + biCompression = BI_RGB; +@@ -126,25 +133,39 @@ + if (FERROR(fp)) { bmpError(bname,"EOF reached in file header"); goto ERROR; } + + +- /* error checking */ +- if ((biBitCount!=1 && biBitCount!=4 && biBitCount!=8 && biBitCount!=24) || +- biPlanes!=1 || biCompression>BI_RLE4 || ++ /* error-checking */ ++ if ((biBitCount!=1 && biBitCount!=4 && biBitCount!=8 && ++ biBitCount!=16 && biBitCount!=24 && biBitCount!=32) || ++ biPlanes!=1 || biCompression>BI_PNG || + biWidth<=0 || biHeight<=0 || + (biClrUsed && biClrUsed > (1 << biBitCount))) { + + sprintf(buf, +- "Bogus BMP File! (%dx%d, Bits=%d, Colors=%d, Planes=%d, Compr=%d)", ++ "Unsupported BMP type (%dx%d, Bits=%d, Colors=%d, Planes=%d, " ++ "Compr=%d)", + biWidth, biHeight, biBitCount, biClrUsed, biPlanes, biCompression); + + bmpError(bname, buf); + goto ERROR; + } + ++ if (biCompression>BI_BITFIELDS) { ++ sprintf(buf, "Unsupported BMP compression method (%s)", ++ biCompression == BI_JPEG? "JPEG" : ++ biCompression == BI_PNG? "PNG" : ++ "unknown/newer than v5"); ++ ++ bmpError(bname, buf); ++ goto ERROR; ++ } ++ + if (((biBitCount==1 || biBitCount==24) && biCompression != BI_RGB) || +- (biBitCount==4 && biCompression==BI_RLE8) || +- (biBitCount==8 && biCompression==BI_RLE4)) { ++ (biBitCount==4 && biCompression!=BI_RGB && biCompression!=BI_RLE4) || ++ (biBitCount==8 && biCompression!=BI_RGB && biCompression!=BI_RLE8) || ++ ((biBitCount==16 || biBitCount==32) && ++ biCompression!=BI_RGB && biCompression!=BI_BITFIELDS)) { + +- sprintf(buf,"Bogus BMP File! (bitCount=%d, Compression=%d)", ++ sprintf(buf,"Unsupported BMP type (bitCount=%d, Compression=%d)", + biBitCount, biCompression); + + bmpError(bname, buf); +@@ -156,20 +177,23 @@ + if (biSize != WIN_OS2_OLD) { + /* skip ahead to colormap, using biSize */ + c = biSize - 40; /* 40 bytes read from biSize to biClrImportant */ +- for (i=0; i (1 << biBitCount)) +- biClrUsed = (1 << biBitCount); +- */ +- + cmaplen = (biClrUsed) ? biClrUsed : 1 << biBitCount; + for (i=0; ib[i] = getc(fp); +@@ -205,7 +229,7 @@ + + /* create pic8 or pic24 */ + +- if (biBitCount==24) { ++ if (biBitCount==16 || biBitCount==24 || biBitCount==32) { + u_int npixels = biWidth * biHeight; + u_int count = 3 * npixels; + +@@ -227,19 +251,35 @@ + WaitCursor(); + + /* load up the image */ +- if (biBitCount == 1) rv = loadBMP1(fp,pic8,biWidth,biHeight); +- else if (biBitCount == 4) rv = loadBMP4(fp,pic8,biWidth,biHeight, +- biCompression); +- else if (biBitCount == 8) rv = loadBMP8(fp,pic8,biWidth,biHeight, +- biCompression); +- else rv = loadBMP24(fp,pic24,biWidth,biHeight); ++ switch (biBitCount) { ++ case 1: ++ rv = loadBMP1(fp, pic8, biWidth, biHeight); ++ break; ++ case 4: ++ rv = loadBMP4(fp, pic8, biWidth, biHeight, biCompression); ++ break; ++ case 8: ++ rv = loadBMP8(fp, pic8, biWidth, biHeight, biCompression); ++ break; ++ case 16: ++ rv = loadBMP16(fp, pic24, biWidth, biHeight, /* v-- BI_RGB */ ++ biCompression == BI_BITFIELDS? colormask : NULL); ++ break; ++ default: ++ if (biBitCount == 32 && biCompression == BI_BITFIELDS) ++ rv = loadBMP32(fp, pic24, biWidth, biHeight, colormask); ++ else /* 24 or (32 and BI_RGB) */ ++ rv = loadBMP24(fp, pic24, biWidth, biHeight, biBitCount); ++ break; ++ } + + if (rv) bmpError(bname, "File appears truncated. Winging it."); + ++ + fclose(fp); + + +- if (biBitCount == 24) { ++ if (biBitCount > 8) { + pinfo->pic = pic24; + pinfo->type = PIC24; + } +@@ -251,6 +291,22 @@ + cmpstr = ""; + if (biCompression == BI_RLE4) cmpstr = ", RLE4 compressed"; + else if (biCompression == BI_RLE8) cmpstr = ", RLE8 compressed"; ++ else if (biCompression == BI_BITFIELDS) { ++ int bit, c[3], i; ++ u_int mask; ++ ++ for (i = 0; i < 3; ++i) { ++ mask = colormask[i]; ++ c[i] = 0; ++ for (bit = 0; bit < 32; ++bit) { ++ if (mask & 1) ++ ++c[i]; ++ mask >>= 1; ++ } ++ } ++ sprintf(rgb_bits, ", RGB%d%d%d", c[0], c[1], c[2]); ++ cmpstr = rgb_bits; ++ } + + pinfo->w = biWidth; pinfo->h = biHeight; + pinfo->normw = pinfo->w; pinfo->normh = pinfo->h; +@@ -282,12 +338,13 @@ + u_int w,h; + { + int i,j,c,bitnum,padw; +- byte *pp; ++ byte *pp = pic8 + ((h - 1) * w); ++ size_t l = w*h; + + c = 0; + padw = ((w + 31)/32) * 32; /* 'w', padded to be a multiple of 32 */ + +- for (i=h-1; i>=0; i--) { ++ for (i=h-1; i>=0 && (pp - pic8 <= l); i--) { + pp = pic8 + (i * w); + if ((i&0x3f)==0) WaitCursor(); + for (j=bitnum=0; j=0; i--) { ++ for (i=h-1; i>=0 && (pp - pic8 <= l); i--) { + pp = pic8 + (i * w); + if ((i&0x3f)==0) WaitCursor(); + +@@ -353,7 +410,7 @@ + + if (c) { /* encoded mode */ + c1 = getc(fp); +- for (i=0; i>4)&0x0f); + } + +@@ -373,7 +430,7 @@ + } + + else { /* absolute mode */ +- for (i=0; i>4)&0x0f); + } +@@ -402,14 +459,18 @@ + u_int w,h,comp; + { + int i,j,c,c1,padw,x,y,rv; +- byte *pp; ++ byte *pp = pic8 + ((h - 1) * w); ++ size_t l = w*h; ++ byte *pend; + + rv = 0; + ++ pend = pic8 + w * h; ++ + if (comp == BI_RGB) { /* read uncompressed data */ + padw = ((w + 3)/4) * 4; /* 'w' padded to a multiple of 4pix (32 bits) */ + +- for (i=h-1; i>=0; i--) { ++ for (i=h-1; i>=0 && (pp - pic8 <= l); i--) { + pp = pic8 + (i * w); + if ((i&0x3f)==0) WaitCursor(); + +@@ -425,12 +486,12 @@ + x = y = 0; + pp = pic8 + x + (h-y-1)*w; + +- while (y>= 1; ++ } ++ bitshift[i+3] = bitshift[i] + 16; ++ ++ colorbits[i] = 0; ++ for (; bit < 32; ++bit) { ++ if (buf & 1) ++ ++colorbits[i]; ++ else ++ break; ++ buf >>= 1; ++ } ++ if (colorbits[i] > 8) { /* over 8-bit depth */ ++ bitshift[i] += (colorbits[i] - 8); ++ bitshift[i+3] = bitshift[i] + 16; ++ bitshift2[i] = bitshift2[i+3] = 0; ++ } else ++ bitshift2[i] = bitshift2[i+3] = 8 - colorbits[i]; ++ } ++ } ++ ++ if (DEBUG > 1) ++ fprintf(stderr, "loadBMP16: bitfields\n" ++ "\tR: bits = %2d, mask = %08x, shift >>%2d, <<%2d\n" ++ "\t (mask = %08x, shift >>%2d, <<%2d)\n" ++ "\tG: bits = %2d, mask = %08x, shift >>%2d, <<%2d\n" ++ "\t (mask = %08x, shift >>%2d, <<%2d)\n" ++ "\tB: bits = %2d, mask = %08x, shift >>%2d, <<%2d\n" ++ "\t (mask = %08x, shift >>%2d, <<%2d)\n", ++ colorbits[0], colormask[0], bitshift[0], bitshift2[0], ++ colormask[3], bitshift[3], bitshift2[3], ++ colorbits[1], colormask[1], bitshift[1], bitshift2[1], ++ colormask[4], bitshift[4], bitshift2[4], ++ colorbits[2], colormask[2], bitshift[2], bitshift2[2], ++ colormask[5], bitshift[5], bitshift2[5]); ++ ++ for (y = h-1; y >= 0 && (pp - pic24 <= l); y--) { ++ pp = pic24 + (3 * w * y); ++ if ((y&0x3f)==0) WaitCursor(); ++ ++ for (x = w; x > 1; x -= 2) { ++ buf = getint(fp); ++ *(pp++) = (buf & colormask[0]) >> bitshift[0] << bitshift2[0]; ++ *(pp++) = (buf & colormask[1]) >> bitshift[1] << bitshift2[1]; ++ *(pp++) = (buf & colormask[2]) >> bitshift[2] << bitshift2[2]; ++ *(pp++) = (buf & colormask[3]) >> bitshift[3] << bitshift2[3]; ++ *(pp++) = (buf & colormask[4]) >> bitshift[4] << bitshift2[4]; ++ *(pp++) = (buf & colormask[5]) >> bitshift[5] << bitshift2[5]; ++ } ++ if (w & 1) { /* padded to 2 pix */ ++ buf = getint(fp); ++ *(pp++) = (buf & colormask[0]) >> bitshift[0]; ++ *(pp++) = (buf & colormask[1]) >> bitshift[1]; ++ *(pp++) = (buf & colormask[2]) >> bitshift[2]; ++ } ++ } ++ ++ return FERROR(fp)? 1 : 0; ++} ++ ++ ++ ++/*******************************************/ ++static int loadBMP24(fp, pic24, w, h, bits) /* also handles 32-bit BI_RGB */ + FILE *fp; + byte *pic24; +- u_int w,h; ++ u_int w,h, bits; + { + int i,j,padb,rv; +- byte *pp; ++ byte *pp = pic24 + ((h - 1) * w * 3); ++ size_t l = w*h*3; + + rv = 0; + + padb = (4 - ((w*3) % 4)) & 0x03; /* # of pad bytes to read at EOscanline */ ++ if (bits==32) padb = 0; + + for (i=h-1; i>=0; i--) { + pp = pic24 + (i * w * 3); + if ((i&0x3f)==0) WaitCursor(); + +- for (j=0; j>= 1; ++ } ++ ++ colorbits[i] = 0; ++ for (; bit < 32; ++bit) { ++ if (buf & 1) ++ ++colorbits[i]; ++ else ++ break; ++ buf >>= 1; ++ } ++ if (colorbits[i] > 8) { /* over 8-bit depth */ ++ bitshift[i] += (colorbits[i] - 8); ++ bitshift2[i] = 0; ++ } else ++ bitshift2[i] = 8 - colorbits[i]; ++ } ++ ++ if (DEBUG > 1) ++ fprintf(stderr, "loadBMP32: bitfields\n" ++ "\tR: bits = %2d, mask = %08x, shift >>%2d, <<%2d\n" ++ "\tG: bits = %2d, mask = %08x, shift >>%2d, <<%2d\n" ++ "\tB: bits = %2d, mask = %08x, shift >>%2d, <<%2d\n", ++ colorbits[0], colormask[0], bitshift[0], bitshift2[0], ++ colorbits[1], colormask[1], bitshift[1], bitshift2[1], ++ colorbits[2], colormask[2], bitshift[2], bitshift2[2]); ++ ++ for (y = h-1; y >= 0; y--) { ++ pp = pic24 + (3 * w * y); ++ if ((y&0x3f)==0) WaitCursor(); ++ ++ for(x = w; x > 0; x --) { ++ buf = getint(fp); ++ *(pp++) = (buf & colormask[0]) >> bitshift[0] << bitshift2[0]; ++ *(pp++) = (buf & colormask[1]) >> bitshift[1] << bitshift2[1]; ++ *(pp++) = (buf & colormask[2]) >> bitshift[2] << bitshift2[2]; ++ } ++ } ++ ++ return FERROR(fp)? 1 : 0; ++} ++ ++ ++ ++/*******************************************/ + static u_int getshort(fp) + FILE *fp; + { +@@ -523,7 +755,7 @@ + int c, c1, c2, c3; + c = getc(fp); c1 = getc(fp); c2 = getc(fp); c3 = getc(fp); + return ((u_int) c) + +- (((u_int) c1) << 8) + ++ (((u_int) c1) << 8) + + (((u_int) c2) << 16) + + (((u_int) c3) << 24); + } +diff -ruN xv-3.10a-bugfixes/xvbrowse.c xv-3.10a-enhancements/xvbrowse.c +--- xv-3.10a-bugfixes/xvbrowse.c 2004-05-16 18:01:25.000000000 -0700 ++++ xv-3.10a-enhancements/xvbrowse.c 2005-04-25 23:30:27.000000000 -0700 +@@ -24,6 +24,10 @@ + typedef unsigned int mode_t; /* file mode bits */ + #endif + ++#ifndef MAX ++# define MAX(a,b) (((a)>(b))?(a):(b)) /* used only for wheelmouse support */ ++#endif ++ + + /* load up built-in icons */ + #include "bits/br_file" +@@ -36,6 +40,7 @@ + #include "bits/br_error" + /* #include "bits/br_unknown" commented out (near line 492) */ + #include "bits/br_cmpres" ++#include "bits/br_bzip2" + + #include "bits/br_gif" + #include "bits/br_pm" +@@ -50,11 +55,20 @@ + #include "bits/br_tiff" + #include "bits/br_pds" + #include "bits/br_ps" ++#include "bits/br_pcd" + #include "bits/br_iff" + #include "bits/br_targa" + #include "bits/br_xpm" + #include "bits/br_xwd" + #include "bits/br_fits" ++#include "bits/br_png" ++#include "bits/br_zx" /* [JCE] The Spectrum+3 icon */ ++#include "bits/br_mag" ++#include "bits/br_maki" ++#include "bits/br_pic" ++#include "bits/br_pi" ++#include "bits/br_pic2" ++#include "bits/br_mgcsfx" + + #include "bits/br_trash" + #include "bits/fcurs" +@@ -94,14 +108,23 @@ + #define BF_XPM 25 + #define BF_XWD 26 + #define BF_FITS 27 +-#define BF_MAX 28 /* # of built-in icons */ ++#define BF_PNG 28 ++#define BF_ZX 29 /* [JCE] Spectrum SCREEN$ */ ++#define BF_PCD 30 ++#define BF_BZIP2 31 ++#define JP_EXT_BF (BF_BZIP2) ++#define BF_MAG (JP_EXT_BF + 1) ++#define BF_MAKI (JP_EXT_BF + 2) ++#define BF_PIC (JP_EXT_BF + 3) ++#define BF_PI (JP_EXT_BF + 4) ++#define BF_PIC2 (JP_EXT_BF + 5) ++#define BF_MGCSFX (JP_EXT_BF + 6) ++#define JP_EXT_BF_END (BF_MGCSFX) ++#define BF_MAX (JP_EXT_BF_END + 1) /* # of built-in icons */ + + #define ISLOADABLE(ftyp) (ftyp!=BF_DIR && ftyp!=BF_CHR && ftyp!=BF_BLK && \ + ftyp!=BF_SOCK && ftyp!=BF_FIFO) + +-#define DEF_BROWWIDE 615 /* default size of window */ +-#define DEF_BROWHIGH 356 +- + #define SCROLLVERT 8 /* height of scroll region at top/bottom of iconw */ + #define PAGEVERT 40 /* during rect drag, if further than this, page */ + +@@ -113,16 +136,35 @@ + #define BOTMARGIN 58 /* room for a row of buttons and a line of text */ + #define LRMARGINS 5 /* left and right margins */ + +-#define ISIZE_WIDE 80 /* maximum size of an icon */ +-#define ISIZE_HIGH 60 ++/* some people like bigger icons; 4:3 aspect ratio is recommended ++ * (NOTE: standard XV binaries will not be able to read larger icons!) */ ++#ifndef ISIZE_WIDE ++# define ISIZE_WIDE 80 /* maximum size of an icon */ ++#endif ++#ifndef ISIZE_HIGH ++# define ISIZE_HIGH 60 ++#endif + +-#define ISPACE_WIDE (ISIZE_WIDE+16) /* icon spacing */ ++#ifndef ISIZE_WPAD ++# define ISIZE_WPAD 16 /* extra horizontal padding between icons */ ++#endif ++ ++#ifndef INUM_WIDE ++# define INUM_WIDE 6 /* size initial window to hold this many icons */ ++#endif ++#ifndef INUM_HIGH ++# define INUM_HIGH 3 ++#endif ++ ++#define ISPACE_WIDE (ISIZE_WIDE+ISIZE_WPAD) /* icon spacing */ + #define ISPACE_TOP 4 /* dist btwn top of ISPACE and ISIZE */ + #define ISPACE_TTOP 4 /* dist btwn bot of icon and title */ + #define ISPACE_HIGH (ISIZE_HIGH+ISPACE_TOP+ISPACE_TTOP+16+4) + + #define DBLCLICKTIME 300 /* milliseconds */ + ++#define COUNT(x) (sizeof (x) / sizeof (x)[0]) ++ + /* button/menu indicies */ + #define BR_CHDIR 0 + #define BR_DELETE 1 +@@ -140,12 +182,23 @@ + #define BR_NBUTTS 13 /* # of command buttons */ + #define BR_SEP1 13 /* separator */ + #define BR_HIDDEN 14 ++#ifdef AUTO_EXPAND ++#define BR_CLEARVD 15 ++#define BR_SELFILES 16 ++#define BR_NCMDS 17 /* # of menu commands */ ++#else + #define BR_SELFILES 15 + #define BR_NCMDS 16 /* # of menu commands */ ++#endif + + #define BUTTW 80 + #define BUTTH 24 + ++/* original size of window was 615 x 356 (for 80x60 thumbnails in 6x3 array) */ ++#define DEF_BROWWIDE (ISPACE_WIDE * INUM_WIDE + LRMARGINS * 2 + 29) ++#define DEF_BROWHIGH (ISPACE_HIGH * INUM_HIGH + BUTTH * 2 + 16 + 28) ++/* last number is a fudge--e.g., extra spaces, borders, etc. -----^ */ ++ + static char *showHstr = "Show hidden files"; + static char *hideHstr = "Hide 'hidden' files"; + +@@ -164,6 +217,9 @@ + "Close window\t^c", + MBSEP, + "Show hidden files", /* no equiv */ ++#ifdef AUTO_EXPAND ++ "Clear virtual directory", ++#endif + "Select files...\t^f" + }; + +@@ -209,6 +265,13 @@ + } BROWINFO; + + ++/* keep track of last icon visible in each path */ ++typedef struct IVIS IVIS; ++ struct IVIS { IVIS *next; ++ char *name; ++ int icon; ++ }; ++ + static Cursor movecurs, copycurs, delcurs; + static BROWINFO binfo[MAXBRWIN]; + static Pixmap bfIcons[BF_MAX], trashPix; +@@ -294,10 +357,16 @@ + static void cp_special PARM((struct stat *, int)); + static void cp_fifo PARM((struct stat *, int)); + ++#ifdef AUTO_EXPAND ++static int stat2bf PARM((u_int, char *)); ++#else + static int stat2bf PARM((u_int)); ++#endif + + static int selmatch PARM((char *, char *)); + static int selmatch1 PARM((char *, char *)); ++static void recIconVisible PARM((char *, int)); ++static void restIconVisible PARM((BROWINFO *)); + + + +@@ -511,9 +580,10 @@ + bfIcons[BF_JFIF]=MakePix1(br->win,br_jfif_bits,br_jfif_width,br_jfif_height); + bfIcons[BF_TIFF]=MakePix1(br->win,br_tiff_bits,br_tiff_width,br_tiff_height); + bfIcons[BF_PDS] =MakePix1(br->win,br_pds_bits, br_pds_width, br_pds_height); +- +- bfIcons[BF_COMPRESS]= MakePix1(br->win, br_cmpres_bits, +- br_cmpres_width, br_cmpres_height); ++ bfIcons[BF_COMPRESS] = MakePix1(br->win, br_cmpres_bits, ++ br_cmpres_width, br_cmpres_height); ++ bfIcons[BF_BZIP2] = MakePix1(br->win, br_bzip2_bits, ++ br_bzip2_width, br_bzip2_height); + + bfIcons[BF_PS] =MakePix1(br->win,br_ps_bits, br_ps_width, br_ps_height); + bfIcons[BF_IFF] =MakePix1(br->win,br_iff_bits, br_iff_width, br_iff_height); +@@ -524,6 +594,16 @@ + bfIcons[BF_XPM] =MakePix1(br->win,br_xpm_bits, br_xpm_width, br_xpm_height); + bfIcons[BF_XWD] =MakePix1(br->win,br_xwd_bits, br_xwd_width, br_xwd_height); + bfIcons[BF_FITS]=MakePix1(br->win,br_fits_bits,br_fits_width,br_fits_height); ++ bfIcons[BF_PNG] =MakePix1(br->win,br_png_bits, br_png_width, br_png_height); ++ bfIcons[BF_ZX] =MakePix1(br->win,br_zx_bits, br_zx_width, br_zx_height); ++ bfIcons[BF_PCD] =MakePix1(br->win,br_pcd_bits, br_pcd_width, br_pcd_height); ++ bfIcons[BF_MAG] =MakePix1(br->win,br_mag_bits, br_mag_width, br_mag_height); ++ bfIcons[BF_MAKI]=MakePix1(br->win,br_maki_bits,br_maki_width,br_maki_height); ++ bfIcons[BF_PIC] =MakePix1(br->win,br_pic_bits, br_pic_width, br_pic_height); ++ bfIcons[BF_PI] =MakePix1(br->win,br_pi_bits, br_pi_width, br_pi_height); ++ bfIcons[BF_PIC2]=MakePix1(br->win,br_pic2_bits,br_pic2_width,br_pic2_height); ++ bfIcons[BF_MGCSFX] = MakePix1(br->win,br_mgcsfx_bits, ++ br_mgcsfx_width,br_mgcsfx_height); + + + /* check that they all got built */ +@@ -698,6 +778,9 @@ + } + } + ++#ifdef VS_RESCMAP ++static int _IfTempOut=0; ++#endif + + /***************************************************************/ + void KillBrowseWindows() +@@ -730,7 +813,6 @@ + return 0; + } + +- + /***************************************************************/ + static int brChkEvent(br, xev) + BROWINFO *br; +@@ -745,15 +827,32 @@ + + if (!hasBeenSized) return 0; /* ignore evrythng until we get 1st Resize */ + ++ ++#ifdef VS_RESCMAP ++ /* force change color map if have LocalCmap */ ++ if (browPerfect && browCmap && (_IfTempOut==2)) { ++ int i; ++ XSetWindowAttributes xswa; ++ ++ xswa.colormap = LocalCmap? LocalCmap : theCmap; ++ for (i=0; itype == Expose) { + int x,y,w,h; + XExposeEvent *e = (XExposeEvent *) xev; + x = e->x; y = e->y; w = e->width; h = e->height; + + /* throw away excess redraws for 'dumb' windows */ +- if (e->count > 0 && (e->window == br->scrl.win)) {} ++ if (e->count > 0 && (e->window == br->scrl.win)) ++ ; + +- else if (e->window == br->scrl.win) SCRedraw(&(br->scrl)); ++ else if (e->window == br->scrl.win) ++ SCRedraw(&(br->scrl)); + + else if (e->window == br->win || e->window == br->iconW) { /* smart wins */ + /* group individual expose rects into a single expose region */ +@@ -806,13 +905,57 @@ + int i,x,y; + x = e->x; y = e->y; + +- if (e->button == Button1) { ++#ifdef VS_RESCMAP ++ if (browCmap && browPerfect && (_IfTempOut!=0)) ++ { ++ XSetWindowAttributes xswa; ++ _IfTempOut--; ++ xswa.colormap = browCmap; ++ for(i=0;ibutton == Button1) { + if (e->window == br->win) clickBrow(br,x,y); + else if (e->window == br->scrl.win) SCTrack(&(br->scrl),x,y); + else if (e->window == br->iconW) { + i = clickIconWin(br, x,y,(unsigned long) e->time, + (e->state&ControlMask) || (e->state&ShiftMask)); +- ++ } ++ else rv = 0; ++ } ++ else if (e->button == Button4) { /* note min vs. max, + vs. - */ ++ /* scroll regardless of where we are in the browser window */ ++ if (e->window == br->win || ++ e->window == br->scrl.win || ++ e->window == br->iconW) ++ { ++ SCRL *sp=&(br->scrl); ++ int halfpage=MAX(1,sp->page/2); /* user resize to 1 line? */ ++ ++ if (sp->val > sp->min+halfpage) ++ SCSetVal(sp,sp->val-halfpage); ++ else ++ SCSetVal(sp,sp->min); ++ } ++ else rv = 0; ++ } ++ else if (e->button == Button5) { /* note max vs. min, - vs. + */ ++ /* scroll regardless of where we are in the browser window */ ++ if (e->window == br->win || ++ e->window == br->scrl.win || ++ e->window == br->iconW) ++ { ++ SCRL *sp=&(br->scrl); ++ int halfpage=MAX(1,sp->page/2); /* user resize to 1 line? */ ++ ++ if (sp->val < sp->max-halfpage) ++ SCSetVal(sp,sp->val+halfpage); ++ else ++ SCSetVal(sp,sp->max); + } + else rv = 0; + } +@@ -1101,6 +1244,10 @@ + case BR_SELFILES: doSelFilesCmd(br); break; + + case BR_RECURSUP: doRecurseCmd(br); break; ++ ++#ifdef AUTO_EXPAND ++ case BR_CLEARVD: Vdsettle(); break; ++#endif + } + } + +@@ -1250,6 +1397,18 @@ + int i, allowtext; + + if (!nostr) setSelInfoStr(br, sel); ++#ifdef AUTO_EXPAND ++ if (Isvdir(br->path)) { ++ BTSetActive(&br->but[BR_DELETE], 0); ++ br->cmdMB.dim[BR_DELETE] = 1; ++ ++ BTSetActive(&br->but[BR_RENAME], 0); ++ br->cmdMB.dim[BR_RENAME] = 1; ++ ++ BTSetActive(&br->but[BR_MKDIR], 0); ++ br->cmdMB.dim[BR_MKDIR] = 1; ++ } else { ++#endif + BTSetActive(&br->but[BR_DELETE], br->numlit>0); + br->cmdMB.dim[BR_DELETE] = !(br->numlit>0); + +@@ -1258,6 +1417,11 @@ + + BTSetActive(&br->but[BR_GENICON], br->numlit>0); + br->cmdMB.dim[BR_GENICON] = !(br->numlit>0); ++#ifdef AUTO_EXPAND ++ BTSetActive(&br->but[BR_MKDIR], 1); ++ br->cmdMB.dim[BR_MKDIR] = 0; ++ } ++#endif + + /* turn on 'text view' cmd if exactly one non-dir is lit */ + allowtext = 0; +@@ -1318,8 +1482,11 @@ + struct stat st; + + sprintf(buf, "%s%s", br->path, bf->name); /* build filename */ ++#ifdef AUTO_EXPAND ++ Dirtovd(buf); ++#endif + if (stat(buf, &st) == 0) { +- sprintf(buf, "%s: %ld bytes", bf->name, st.st_size); ++ sprintf(buf, "%s: %ld bytes", bf->name, (long)st.st_size); + strcat(buf, buf1); + } + } +@@ -1598,6 +1765,10 @@ + { + int sval, first, numvis; + ++ /* if we know what path we have, remember last visible icon for this path */ ++ if (br->path) ++ recIconVisible(br->path, num); ++ + /* if icon #i isn't visible, adjust scrollbar so it *is* */ + + sval = br->scrl.val; +@@ -1649,29 +1820,14 @@ + return; + } + +- + /***************************************************************/ +-static int clickIconWin(br, mx, my, mtime, multi) +- BROWINFO *br; +- int mx,my,multi; +- unsigned long mtime; ++static int updateSel(br, sel, multi, mtime) ++ BROWINFO *br; ++ int sel, multi; ++ unsigned long mtime; + { +- /* returns '-1' normally, returns an index into bfList[] if the user +- double-clicks an icon */ +- +- int i,j, rv, sel, cpymode, dodel; +- BROWINFO *destBr; +- BFIL *bf; +- char buf[256], *destFolderName; +- +- rv = -1; /* default return value */ +- if (!br->bfList || !br->bfLen) return rv; +- +- destBr = br; destFolderName = "."; +- +- sel = mouseInWhichIcon(br, mx, my); +- +- dodel = 0; ++ int i; ++ BFIL *bf; + + if (sel == -1) { /* clicked on nothing */ + if (!multi) { /* deselect all */ +@@ -1728,11 +1884,12 @@ + + + /* see if we've double-clicked something */ +- if (sel==br->lastIconClicked && mtime-br->lastClickTime < DBLCLICKTIME) { ++ if (mtime && ++ sel==br->lastIconClicked && mtime-br->lastClickTime < DBLCLICKTIME) { + br->lastIconClicked = -1; /* YES */ + + doubleClick(br, sel); +- return rv; ++ return -1; + } + + else { +@@ -1741,9 +1898,36 @@ + } + } + +- + changedNumLit(br, -1, 0); ++ return 0; ++} ++ + ++/***************************************************************/ ++static int clickIconWin(br, mx, my, mtime, multi) ++ BROWINFO *br; ++ int mx,my,multi; ++ unsigned long mtime; ++{ ++ /* returns '-1' normally, returns an index into bfList[] if the user ++ double-clicks an icon */ ++ ++ int i,j, sel, cpymode, dodel; ++ BROWINFO *destBr; ++ BFIL *bf; ++ char buf[256], *destFolderName; ++ ++ if (!br->bfList || !br->bfLen) return -1; ++ ++ destBr = br; destFolderName = "."; ++ ++ sel = mouseInWhichIcon(br, mx, my); ++ dodel = 0; ++ ++ recIconVisible(br->path, sel); ++ ++ if (updateSel(br, sel, multi, mtime)) ++ return -1; + + + { /* track mouse until button1 is released */ +@@ -2098,7 +2282,7 @@ + } + } /* end of 'tracking' sub-function */ + +- return rv; ++ return -1; + } + + /*******************************************/ +@@ -2164,15 +2348,35 @@ + else sprintf(buf, "%s%s", br->path, br->bfList[sel].name); + #endif + ++#ifdef AUTO_EXPAND ++ if (Chvdir(buf)) { ++#else + if (chdir(buf)) { ++#endif + char str[512]; + sprintf(str,"Unable to cd to '%s'\n", br->bfList[sel].name); + setBrowStr(br, str); + XBell(theDisp, 50); + } + else { ++#ifdef AUTO_EXPAND ++ if (Isvdir(buf)) { ++ BTSetActive(&br->but[BR_DELETE], 0); ++ br->cmdMB.dim[BR_DELETE] = 1; ++ ++ BTSetActive(&br->but[BR_RENAME], 0); ++ br->cmdMB.dim[BR_RENAME] = 1; ++ ++ BTSetActive(&br->but[BR_MKDIR], 0); ++ br->cmdMB.dim[BR_MKDIR] = 1; ++ } else { ++ BTSetActive(&br->but[BR_MKDIR], 1); ++ br->cmdMB.dim[BR_MKDIR] = 0; ++ } ++#endif + scanDir(br); + SCSetVal(&(br->scrl), 0); /* reset to top on a chdir */ ++ restIconVisible(br); + } + } + +@@ -2193,6 +2397,28 @@ + } + else { *event_retP = LOADPIC; SetDirFName(buf); } + ++#ifdef VS_RESCMAP ++ /* Change Colormap for browser */ ++ if (browPerfect && browCmap) ++ { ++ int i; ++ XSetWindowAttributes xswa; ++ if(LocalCmap) ++ { ++ xswa.colormap = LocalCmap; ++ _IfTempOut=2; ++ } ++ else ++ { ++ xswa.colormap = theCmap; ++ _IfTempOut=2; ++ } ++ for(i=0;ipath, br->bfList[i].name); ++#ifdef AUTO_EXPAND ++ Dirtovd(foo); ++#endif + for (j=0; jbfLen && !br->bfList[i].lit; i++); /* find lit one */ + sprintf(fname, "%s%s", br->path, br->bfList[i].name); ++#ifdef AUTO_EXPAND ++ Dirtovd(fname); ++#endif + viewsel = !(strcmp(fname, fullfname)); + + if (viewsel) { +@@ -2553,7 +2785,11 @@ + } + #endif + ++#ifdef AUTO_EXPAND ++ if (Chvdir(tmppath)) { ++#else + if (chdir(tmppath)) { ++#endif + char str[512]; + sprintf(str,"Unable to cd to '%s'\n", tmppath); + MBRedraw(&(br->dirMB)); +@@ -2561,8 +2797,24 @@ + XBell(theDisp, 50); + } + else { ++#ifdef AUTO_EXPAND ++ if (Isvdir(tmppath)) { ++ BTSetActive(&br->but[BR_DELETE], 0); ++ br->cmdMB.dim[BR_DELETE] = 1; ++ ++ BTSetActive(&br->but[BR_RENAME], 0); ++ br->cmdMB.dim[BR_RENAME] = 1; ++ ++ BTSetActive(&br->but[BR_MKDIR], 0); ++ br->cmdMB.dim[BR_MKDIR] = 1; ++ } else { ++ BTSetActive(&br->but[BR_MKDIR], 1); ++ br->cmdMB.dim[BR_MKDIR] = 0; ++ } ++#endif + scanDir(br); + SCSetVal(&br->scrl, 0); /* reset to top of window on a chdir */ ++ restIconVisible(br); + } + } + } +@@ -2581,7 +2833,11 @@ + if ((strlen(br->path) > (size_t) 2) && br->path[strlen(br->path)-1] == '/') + br->path[strlen(br->path)-1] = '\0'; + ++#ifdef AUTO_EXPAND ++ rv = Chvdir(br->path); ++#else + rv = chdir(br->path); ++#endif + if (rv) { + char str[512]; + sprintf(str, "Unable to cd to '%s'\n", br->path); +@@ -2589,6 +2845,23 @@ + XBell(theDisp, 50); + } + ++#ifdef AUTO_EXPAND ++ if (Isvdir(br->path)) { ++ BTSetActive(&br->but[BR_DELETE], 0); ++ br->cmdMB.dim[BR_DELETE] = 1; ++ ++ BTSetActive(&br->but[BR_RENAME], 0); ++ br->cmdMB.dim[BR_RENAME] = 1; ++ ++ BTSetActive(&br->but[BR_MKDIR], 0); ++ br->cmdMB.dim[BR_MKDIR] = 1; ++ } else { ++ BTSetActive(&br->but[BR_MKDIR], 1); ++ br->cmdMB.dim[BR_MKDIR] = 0; ++ } ++#endif ++ ++ restIconVisible(br); + strcat(br->path, "/"); /* put trailing '/' back on */ + return rv; + } +@@ -2615,8 +2888,13 @@ + strcpy(dstbr->mblist[i], srcbr->mblist[i]); + } + +- dstbr->dirMB.list = srcbr->mblist; ++#if 0 ++ dstbr->dirMB.list = srcbr->mblist; /* original bug..? */ + dstbr->dirMB.nlist = srcbr->ndirs; ++#else ++ dstbr->dirMB.list = dstbr->mblist; /* fixed by */ ++ dstbr->dirMB.nlist = dstbr->ndirs; /* jp-extension. */ ++#endif + + XClearArea(theDisp, dstbr->dirMB.win, dstbr->dirMB.x, dstbr->dirMB.y, + dstbr->dirMB.w+3, dstbr->dirMB.h+3, False); +@@ -2974,7 +3252,11 @@ + + + if (stat(bf->name, &st)==0) { ++#ifdef AUTO_EXPAND ++ bf->ftype = stat2bf((u_int) st.st_mode , bf->name); ++#else + bf->ftype = stat2bf((u_int) st.st_mode); ++#endif + if (bf->ftype == BF_FILE && (st.st_mode & 0111)) bf->ftype = BF_EXE; + + switch (bf->ftype) { +@@ -3006,6 +3288,7 @@ + case RFT_XBM: bf->ftype = BF_XBM; break; + case RFT_SUNRAS: bf->ftype = BF_SUNRAS; break; + case RFT_BMP: bf->ftype = BF_BMP; break; ++ case RFT_WBMP: bf->ftype = BF_BMP; break; + case RFT_UTAHRLE: bf->ftype = BF_UTAHRLE; break; + case RFT_IRIS: bf->ftype = BF_IRIS; break; + case RFT_PCX: bf->ftype = BF_PCX; break; +@@ -3013,12 +3296,22 @@ + case RFT_TIFF: bf->ftype = BF_TIFF; break; + case RFT_PDSVICAR: bf->ftype = BF_PDS; break; + case RFT_COMPRESS: bf->ftype = BF_COMPRESS; break; ++ case RFT_BZIP2: bf->ftype = BF_BZIP2; break; + case RFT_PS: bf->ftype = BF_PS; break; + case RFT_IFF: bf->ftype = BF_IFF; break; + case RFT_TARGA: bf->ftype = BF_TARGA; break; + case RFT_XPM: bf->ftype = BF_XPM; break; + case RFT_XWD: bf->ftype = BF_XWD; break; + case RFT_FITS: bf->ftype = BF_FITS; break; ++ case RFT_PNG: bf->ftype = BF_PNG; break; ++ case RFT_ZX: bf->ftype = BF_ZX; break; /* [JCE] */ ++ case RFT_PCD: bf->ftype = BF_PCD; break; ++ case RFT_MAG: bf->ftype = BF_MAG; break; ++ case RFT_MAKI: bf->ftype = BF_MAKI; break; ++ case RFT_PIC: bf->ftype = BF_PIC; break; ++ case RFT_PI: bf->ftype = BF_PI; break; ++ case RFT_PIC2: bf->ftype = BF_PIC2; break; ++ case RFT_MGCSFX: bf->ftype = BF_MGCSFX; break; + } + } + } +@@ -3405,7 +3698,7 @@ + double wexpand,hexpand; + int iwide, ihigh; + byte *icon24, *icon8; +- char str[256], str1[256], *readname, uncompname[128]; ++ char str[256], str1[256], readname[128], uncompname[128]; + char basefname[128], *uncName; + + +@@ -3414,7 +3707,7 @@ + basefname[0] = '\0'; + pinfo.pic = (byte *) NULL; + pinfo.comment = (char *) NULL; +- readname = bf->name; ++ strncpy(readname, bf->name, sizeof(readname) - 1); + + /* free any old info in 'bf' */ + if (bf->imginfo) free (bf->imginfo); +@@ -3431,7 +3724,7 @@ + + filetype = ReadFileType(bf->name); + +- if (filetype == RFT_COMPRESS) { ++ if ((filetype == RFT_COMPRESS) || (filetype == RFT_BZIP2)) { + #if (defined(VMS) && !defined(GUNZIP)) + /* VMS decompress doesn't like the file to have a trailing .Z in fname + however, GUnZip is OK with it, which we are calling UnCompress */ +@@ -3442,9 +3735,9 @@ + uncName = bf->name; + #endif + +- if (UncompressFile(uncName, uncompname)) { ++ if (UncompressFile(uncName, uncompname, filetype)) { + filetype = ReadFileType(uncompname); +- readname = uncompname; ++ strncpy(readname, uncompname, sizeof(readname) - 1); + } + else { + sprintf(str, "Couldn't uncompress file '%s'", bf->name); +@@ -3453,6 +3746,56 @@ + } + } + ++#ifdef MACBINARY ++ if (handlemacb && macb_file == True && bf->ftype != BF_ERROR) { ++ if (RemoveMacbinary(readname, uncompname)) { ++ if (strcmp(readname, bf->name)!=0) unlink(readname); ++ strncpy(readname, uncompname, sizeof(readname) - 1); ++ } ++ else { ++ sprintf(str, "Unable to remove a InfoFile header form '%s'.", bf->name); ++ setBrowStr(br, str); ++ bf->ftype = BF_ERROR; ++ } ++ } ++#endif ++ ++#ifdef HAVE_MGCSFX_AUTO ++ if (bf->ftype != BF_ERROR) { ++ if(filetype == RFT_MGCSFX){ ++ char tmpname[128]; ++ char *icom; ++ ++ if((icom = mgcsfx_auto_input_com(bf->name)) != NULL){ ++ sprintf(tmpname, "%s/xvmsautoXXXXXX", tmpdir); ++#ifdef USE_MKSTEMP ++ close(mkstemp(tmpname)); ++#else ++ mktemp(tmpname); ++#endif ++ SetISTR(ISTR_INFO, "Converting to known format by MgcSfx auto..."); ++ sprintf(str,"%s >%s", icom, tmpname); ++ }else goto ms_auto_no; ++ ++#ifndef VMS ++ if (system(str)) ++#else ++ if (!system(str)) ++#endif ++ { ++ sprintf(str, "Unable to convert '%s' by MgcSfx auto.", bf->name); ++ setBrowStr(br, str); ++ bf->ftype = BF_ERROR; ++ } else { ++ filetype = ReadFileType(tmpname); ++ if (strcmp(readname, bf->name)!=0) unlink(readname); ++ strncpy(readname, tmpname, sizeof(readname) - 1); ++ } ++ } ++ } ++ms_auto_no: ++#endif /* HAVE_MGCSFX_AUTO */ ++ + /* get rid of comments. don't need 'em */ + if (pinfo.comment) free(pinfo.comment); pinfo.comment = (char *) NULL; + +@@ -3470,6 +3813,9 @@ + else { + /* otherwise it's a known filetype... do the *hard* part now... */ + ++#ifdef VS_ADJUST ++ normaspect = defaspect; ++#endif + i = ReadPicFile(readname, filetype, &pinfo, 1); + KillPageFiles(pinfo.pagebname, pinfo.numpages); + +@@ -3489,7 +3835,7 @@ + } + + /* if we made an uncompressed file, we can rm it now */ +- if (readname != bf->name) unlink(readname); ++ if (strcmp(readname, bf->name)!=0) unlink(readname); + + + /* at this point either BF_ERROR, BF_UNKNOWN, BF_EXE or pic */ +@@ -3507,16 +3853,30 @@ + + /* compute size of icon (iwide,ihigh) */ + ++#ifdef VS_ADJUST ++ if (!vsadjust) normaspect = 1; ++ ++ wexpand = (double) (pinfo.w * normaspect) / (double) ISIZE_WIDE; ++#else + wexpand = (double) pinfo.w / (double) ISIZE_WIDE; ++#endif /* VS_ADJUST */ + hexpand = (double) pinfo.h / (double) ISIZE_HIGH; + + if (wexpand >= 1.0 || hexpand >= 1.0) { /* don't expand small icons */ + if (wexpand>hexpand) { ++#ifdef VS_ADJUST ++ iwide = (int) ((pinfo.w * normaspect) / wexpand + 0.5); ++#else + iwide = (int) (pinfo.w / wexpand + 0.5); ++#endif + ihigh = (int) (pinfo.h / wexpand + 0.5); + } + else { ++#ifdef VS_ADJUST ++ iwide = (int) ((pinfo.w * normaspect) / hexpand + 0.5); ++#else + iwide = (int) (pinfo.w / hexpand + 0.5); ++#endif + ihigh = (int) (pinfo.h / hexpand + 0.5); + } + } +@@ -3566,6 +3926,15 @@ + case RFT_XPM: strcat(str,"XPM file"); break; + case RFT_XWD: strcat(str,"XWD file"); break; + case RFT_FITS: strcat(str,"FITS file"); break; ++ case RFT_PNG: strcat(str,"PNG file"); break; ++ case RFT_ZX: strcat(str,"Spectrum SCREEN$"); break; /* [JCE] */ ++ case RFT_PCD: strcat(str,"PhotoCD file"); break; ++ case RFT_MAG: strcat(str,"MAG file"); break; ++ case RFT_MAKI: strcat(str,"MAKI file"); break; ++ case RFT_PIC: strcat(str,"PIC file"); break; ++ case RFT_PI: strcat(str,"PI file"); break; ++ case RFT_PIC2: strcat(str,"PIC2 file"); break; ++ case RFT_MGCSFX: strcat(str,"Magic Suffix file"); break; + default: strcat(str,"file of unknown type"); break; + } + +@@ -3669,6 +4038,10 @@ + + sprintf(thFname, "%s%s/%s", br->path, THUMBDIR, bf->name); + ++#ifdef AUTO_EXPAND ++ Dirtovd(thFname); ++#endif ++ + fp = fopen(thFname, "r"); + if (!fp) return; /* nope, it doesn't have one */ + +@@ -3784,6 +4157,11 @@ + + sprintf(thFname, "%s%s/%s", br->path, THUMBDIR, bf->name); + ++#ifdef AUTO_EXPAND ++ Dirtovd(thFname); ++#endif ++ ++ unlink(thFname); /* just in case there's already an unwritable one */ + fp = fopen(thFname, "w"); + if (!fp) { + sprintf(buf, "Can't create thumbnail file '%s': %s", thFname, +@@ -3848,15 +4226,30 @@ + + sprintf(thFname, "%s%s", br->path, THUMBDIRNAME); + ++#ifdef AUTO_EXPAND ++ Dirtovd(thFname); ++#endif ++ + i = stat(thFname, &st); + if (i) { /* failed, let's create it */ + sprintf(thFname, "%s.", br->path); ++#ifdef AUTO_EXPAND ++ Dirtovd(thFname); ++#endif + i = stat(thFname, &st); /* get permissions of parent dir */ + if (!i) perm = st.st_mode & 07777; + else perm = 0755; + + sprintf(thFname, "%s%s", br->path, THUMBDIRNAME); ++#ifdef AUTO_EXPAND ++ Dirtovd(thFname); ++# ifdef VIRTUAL_TD ++ if (mkdir(thFname, (mode_t) perm) < 0) ++ Mkvdir_force(thFname); ++# else + mkdir(thFname, (mode_t) perm); ++# endif ++#endif + } + } + +@@ -3898,7 +4291,7 @@ + for (i=0, bf=br->bfList; ibfLen; i++, bf++) { + if (bf->ftype <= BF_FILE || bf->ftype >= BF_ERROR || bf->ftype==BF_EXE) { + +- /* ie, not a 'special' file */ ++ /* i.e., not a 'special' file */ + + int s1, s2; + char thfname[256]; +@@ -3912,10 +4305,9 @@ + sprintf(thfname, "%s/%s", THUMBDIR, bf->name); + s2 = stat(thfname, &thumbst); + +- if (s1 || s2 || filest.st_mtime > thumbst.st_mtime || +- filest.st_ctime > thumbst.st_ctime) { ++ if (s1 || s2 || filest.st_mtime > thumbst.st_mtime) { + /* either stat'ing the file or the thumbfile failed, or +- both stat's succeeded and the file has a newer mod or creation ++ both stat's succeeded and the file has a newer mod + time than the thumbnail file */ + + makeIconVisible(br, i); +@@ -3927,8 +4319,12 @@ + iconsBuilt++; + if (DEBUG) + fprintf(stderr,"icon made:fname='%s' thfname='%s' %d,%d,%ld,%ld\n", +- bf->name, thfname, s1,s2,filest.st_mtime,thumbst.st_mtime); ++ bf->name, thfname, s1, s2, ++ (long)filest.st_mtime, (long)thumbst.st_mtime); + } ++ } else if (filest.st_ctime > thumbst.st_ctime) { ++ /* update protections */ ++ chmod(thfname, (mode_t) (filest.st_mode & 07777)); + } + } + statcount++; +@@ -3963,7 +4359,11 @@ + sprintf(thfname, "%s/%s", THUMBDIR, dp->d_name); + if (stat(thfname, &thumbst)==0) { /* success */ + int tmp; ++#ifdef AUTO_EXPAND ++ tmp = stat2bf((u_int) thumbst.st_mode , thfname); ++#else + tmp = stat2bf((u_int) thumbst.st_mode); ++#endif + + if (tmp == BF_FILE) { /* a plain file */ + /* see if this thumbfile has an associated pic file */ +@@ -4042,6 +4442,15 @@ + static char *labels[] = { "\nOk", "\033Cancel" }; + struct stat st; + ++#ifdef AUTO_EXPAND ++ if (Isvdir(br->path)) { ++ sprintf(buf,"Sorry, you can't rename file in the virtual directory, '%s'", ++ br->path); ++ ErrPopUp(buf, "\nBummer!"); ++ return; ++ } ++#endif ++ + if (cdBrow(br)) return; + + /* find the selected file */ +@@ -4129,6 +4538,15 @@ + static char *labels[] = { "\nOk", "\033Cancel" }; + struct stat st; + ++#ifdef AUTO_EXPAND ++ if (Isvdir(br->path)) { ++ sprintf(buf,"Sorry, you can't mkdir in the virtual directory, '%s'", ++ br->path); ++ ErrPopUp(buf, "\nBummer!"); ++ return; ++ } ++#endif ++ + if (cdBrow(br)) return; + + buf[0] = '\0'; +@@ -4197,14 +4615,34 @@ + if (cdBrow(br)) return; /* prints its own error message */ + } + ++#ifdef AUTO_EXPAND ++ if (Chvdir(buf)) { ++#else + if (chdir(buf)) { ++#endif + sprintf(str,"Unable to cd to '%s'\n", buf); + setBrowStr(br, str); + XBell(theDisp, 50); + } + else { ++#ifdef AUTO_EXPAND ++ if (Isvdir(buf)) { ++ BTSetActive(&br->but[BR_DELETE], 0); ++ br->cmdMB.dim[BR_DELETE] = 1; ++ ++ BTSetActive(&br->but[BR_RENAME], 0); ++ br->cmdMB.dim[BR_RENAME] = 1; ++ ++ BTSetActive(&br->but[BR_MKDIR], 0); ++ br->cmdMB.dim[BR_MKDIR] = 1; ++ } else { ++ BTSetActive(&br->but[BR_MKDIR], 1); ++ br->cmdMB.dim[BR_MKDIR] = 0; ++ } ++#endif + scanDir(br); + SCSetVal(&(br->scrl), 0); /* reset to top on a chdir */ ++ restIconVisible(br); + } + } + +@@ -4229,6 +4667,15 @@ + char buf[512]; + static char *yesno[] = { "\004Delete", "\033Cancel" }; + ++#ifdef AUTO_EXPAND ++ if (Isvdir(br->path)) { ++ sprintf(buf,"Sorry, you can't delete file at the virtual directory, '%s'", ++ br->path); ++ ErrPopUp(buf, "\nBummer!"); ++ return; ++ } ++#endif ++ + if (!br->bfLen || !br->bfList || !br->numlit) return; + + if (cdBrow(br)) return; /* can't cd to this directory. screw it! */ +@@ -4251,7 +4698,11 @@ + for (i=0, bf=br->bfList; ibfLen; i++,bf++) { + if (bf->lit) { + if (firstdel == -1) firstdel = i; +- if (bf->ftype == BF_DIR) numdirs++; ++ if (bf->ftype == BF_DIR ++#ifdef AUTO_EXPAND ++ && (!Isarchive(bf->name)) ++#endif ++ ) numdirs++; + else numfiles++; + } + } +@@ -4265,7 +4716,12 @@ + slen = strlen(buf); + + for (i=0, bf=br->bfList; ibfLen; i++,bf++) { ++#ifdef AUTO_EXPAND ++ if (bf->lit && (bf->ftype != BF_DIR || Isarchive(bf->name))) { ++#else + if (bf->lit && bf->ftype != BF_DIR) { ++#endif ++ + if ( (slen + strlen(bf->name) + 1) > 256) { + strcat(buf,"..."); + break; +@@ -4277,7 +4733,7 @@ + } + } + +- i = PopUp(buf, yesno, 2); ++ i = PopUp(buf, yesno, COUNT(yesno)); + if (i) return; /* cancelled */ + } + +@@ -4290,7 +4746,11 @@ + slen = strlen(buf); + + for (i=0, bf=br->bfList; ibfLen; i++,bf++) { ++#ifdef AUTO_EXPAND ++ if (bf->lit && (bf->ftype == BF_DIR || !Isarchive(bf->name))) { ++#else + if (bf->lit && bf->ftype == BF_DIR) { ++#endif + if ( (slen + strlen(bf->name) + 1) > 256) { + strcat(buf,"..."); + break; +@@ -4302,7 +4762,7 @@ + } + } + +- i = PopUp(buf, yesno, 2); ++ i = PopUp(buf, yesno, COUNT(yesno)); + if (i) return; /* cancelled */ + } + +@@ -4311,7 +4771,11 @@ + + for (i=0, bf=br->bfList; ibfLen; i++,bf++) { + if (bf->lit) { +- if (bf->ftype == BF_DIR) rm_dir (br, bf->name); ++ if (bf->ftype == BF_DIR ++#ifdef AUTO_EXPAND ++ && !Isarchive(bf->name) ++#endif ++ ) rm_dir (br, bf->name); + else rm_file(br, bf->name); + } + } +@@ -4440,7 +4904,11 @@ + xv_getwd(orgDir, sizeof(orgDir)); + + sprintf(curDir, "%s%s", br->path, subdir); ++#ifdef AUTO_EXPAND ++ if (Chvdir(curDir)) { ++#else + if (chdir(curDir)) { ++#endif + char str[512]; + sprintf(str, "Unable to cd to '%s'\n", curDir); + setBrowStr(br, str); +@@ -4452,14 +4920,24 @@ + /* have we looped? */ + for (i=0; ibfLen; i++) srcBr->bfList[i].lit = 0; ++ srcBr->numlit = 0; ++ } ++ ++ + /* clear all files in the destination folder */ + for (i=0; ibfLen; i++) { + dstBr->bfList[i].lit = 0; +@@ -4793,7 +5322,51 @@ + SetCursors(-1); + } + ++static int recursive_remove(dir) ++ char *dir; ++{ ++ DIR *dp = NULL; ++ struct dirent *di; ++ char name[MAXPATHLEN+1]; ++ ++ strncpy(name, dir, MAXPATHLEN); ++ name[MAXPATHLEN] = 0; ++ ++ if (name[strlen(name) - 1] == '/') ++ name[strlen(name) - 1] = 0; + ++ if ((dp = opendir(name)) == NULL) ++ goto err; ++ ++ while ((di = readdir(dp)) != NULL) { ++ char buf[MAXPATHLEN+1]; ++ struct stat st; ++ ++ if (!strcmp(di->d_name, ".") || !strcmp(di->d_name, "..")) ++ continue; ++ ++ snprintf(buf, MAXPATHLEN, "%s/%s", name, di->d_name); ++ ++ if (stat(buf, &st) < 0) ++ continue; ++ ++ if (S_ISDIR(st.st_mode)) { ++ if (recursive_remove(buf) < 0) ++ goto err; ++ } else ++ unlink(buf); ++ } ++ ++ if (rmdir(name) < 0) ++ goto err; ++ ++ closedir(dp); ++ return 0; ++ ++err: ++ if (dp) closedir(dp); ++ return -1; ++} + + /*************************************************/ + static int moveFile(src,dst) +@@ -4811,31 +5384,45 @@ + int i, srcdir, dstdir; + struct stat st; + char buf[512]; +- static char *owbuts[4] = { "\nOk", "dDon't ask", "nNo", "\033Cancel" }; ++ static char *owbuts[] = { "\nOk", "aAlways", "nNo", "NNever", "\033Cancel" }; + + if (DEBUG) fprintf(stderr,"moveFile %s %s\n", src, dst); + ++#ifdef AUTO_EXPAND ++ Dirtosubst(src); ++#endif ++ + if (stat(src, &st)) return 0; /* src doesn't exist, it would seem */ ++#ifdef AUTO_EXPAND ++ srcdir = (stat2bf((u_int) st.st_mode , src) == BF_DIR); ++#else + srcdir = (stat2bf((u_int) st.st_mode) == BF_DIR); ++#endif + + /* see if destination exists */ ++ + if (stat(dst, &st)==0) { ++ if (overwrite==OWRT_NEVER) return -1; ++#ifdef AUTO_EXPAND ++ dstdir = (stat2bf((u_int) st.st_mode , dst) == BF_DIR); ++#else + dstdir = (stat2bf((u_int) st.st_mode) == BF_DIR); ++#endif + + if (overwrite==OWRT_ASK) { +- sprintf(buf, "%s '%s' exists.\n\nOverwrite?", ++ snprintf(buf, sizeof(buf), "%s '%s' exists.\n\nOverwrite?", + dstdir ? "Directory" : "File", dst); +- i = PopUp(buf, owbuts, 4); +- +- if (i==1) overwrite = OWRT_NOASK; +- else if (i==2) return -1; +- else if (i==3) { overwrite = OWRT_CANCEL; return 1; } ++ switch (PopUp(buf, owbuts, COUNT(owbuts))) { ++ case 1: overwrite = OWRT_ALWAYS; break; ++ case 2: return -1; ++ case 3: overwrite = OWRT_NEVER; return -1; ++ case 4: overwrite = OWRT_CANCEL; return 1; ++ } + } + + if (dstdir) { + #ifndef VMS /* we don't delete directories in VMS */ +- sprintf(buf, "rm -rf %s", dst); +- if (system(buf)) { /* okay, so it's cheating... */ ++ if (recursive_remove(dst)) { /* okay, so it's cheating... */ + SetISTR(ISTR_WARNING, "Unable to remove directory %s", dst); + return 1; + } +@@ -4858,9 +5445,8 @@ + if (i == 0) { /* copied okay, kill the original */ + if (srcdir) { + #ifndef VMS /* we don't delete directories in VMS */ +- sprintf(buf, "rm -rf %s", src); +- if (system(buf)) { /* okay, so it's cheating... */ +- SetISTR(ISTR_WARNING, "Unable to remove directory %s", dst); ++ if (recursive_remove(src)) { /* okay, so it's cheating... */ ++ SetISTR(ISTR_WARNING, "Unable to remove directory %s", src); + return 1; + } + #endif /* VMS */ +@@ -4906,38 +5492,51 @@ + fall through: if dest doesn't exist, copy the directory, recurs */ + + +- int i, dstExists, srcdir, dstdir; ++ int dstExists, srcdir, dstdir; + struct stat srcSt, dstSt; + char buf[1024]; +- static char *owdiff[3] = { "\nOk", "nNo", "\033Cancel" }; +- static char *owsame[4] = { "\nOk", "dDon't Ask", "nNo", "\033Cancel" }; ++ static char *owdiff[] = { "\nOk", "nNo", "\033Cancel" }; ++ static char *owsame[] = { "\nOk", "aAlways", "nNo", "NNever", "\033Cancel" }; + + if (DEBUG) fprintf(stderr,"copyFile %s %s\n", src, dst); + ++#ifdef AUTO_EXPAND ++ Dirtosubst(src); ++#endif ++ + if (stat(src,&srcSt)) return 0; /* source doesn't exist, it would seem */ + + dstExists = (stat(dst, &dstSt)==0); + + if (dstExists) { /* ask about overwriting... */ +- srcdir = (stat2bf((u_int) srcSt.st_mode) == BF_DIR); +- dstdir = (stat2bf((u_int) dstSt.st_mode) == BF_DIR); ++#ifdef AUTO_EXPAND ++ srcdir = (stat2bf((u_int) srcSt.st_mode , src) == BF_DIR); ++ dstdir = (stat2bf((u_int) dstSt.st_mode , dst) == BF_DIR); ++#else ++ srcdir = (stat2bf((u_int) srcSt.st_mode) == BF_DIR); ++ dstdir = (stat2bf((u_int) dstSt.st_mode) == BF_DIR); ++#endif + + sprintf(buf, "%s '%s' already exists. Replace it with %s '%s'?", + (dstdir) ? "Directory" : "File", dst, + (srcdir) ? "contents of directory" : "file", src); + + if (srcdir == dstdir) { ++ if (overwrite==OWRT_NEVER) return -1; + if (overwrite==OWRT_ASK) { +- i = PopUp(buf, owsame, 4); +- if (i==1) overwrite = OWRT_NOASK; +- if (i==2) return -1; +- else if (i==3) { overwrite = OWRT_CANCEL; return 1; } ++ switch (PopUp(buf, owsame, COUNT(owsame))) { ++ case 1: overwrite = OWRT_ALWAYS; break; ++ case 2: return -1; ++ case 3: overwrite = OWRT_NEVER; return -1; ++ case 4: overwrite = OWRT_CANCEL; return 1; ++ } + } + } + else { /* one's a dir, the other's a file. *ALWAYS* ask! */ +- i = PopUp(buf, owdiff, 3); +- if (i==1) return -1; +- else if (i==2) { overwrite = OWRT_CANCEL; return 1; } ++ switch (PopUp(buf, owdiff, COUNT(owdiff))) { ++ case 1: return -1; ++ case 2: overwrite = OWRT_CANCEL; return 1; ++ } + } + + +@@ -5035,8 +5634,11 @@ + havedst = 1; + } + +- ++#ifdef AUTO_EXPAND ++ switch(stat2bf((u_int) srcSt.st_mode , cpDstPath)) { ++#else + switch(stat2bf((u_int) srcSt.st_mode)) { ++#endif + /* determine how to copy, by filetype */ + + /* NOTE: There is no S_IFLNK case here, since we're using 'stat()' and +@@ -5052,7 +5654,11 @@ + } + } + else { ++#ifdef AUTO_EXPAND ++ if (stat2bf((u_int) dstSt.st_mode , cpDstPath) != BF_DIR) { ++#else + if (stat2bf((u_int) dstSt.st_mode) != BF_DIR) { ++#endif + SetISTR(ISTR_WARNING,"%s: not a directory", cpDstPath); + copyerr++; + return; +@@ -5130,7 +5736,12 @@ + goto done; + } + +- if (stat2bf((u_int) srcSt.st_mode) == BF_DIR) { ++#ifdef AUTO_EXPAND ++ if (stat2bf((u_int) srcSt.st_mode , cpSrcPath) == BF_DIR) ++#else ++ if (stat2bf((u_int) srcSt.st_mode) == BF_DIR) ++#endif ++ { + cpSrcPath[oldsrclen] = '\0'; + continue; /* don't remove from list, just skip */ + } +@@ -5189,9 +5800,9 @@ + int exists; + /*****************************/ + { +- register int srcFd, dstFd, rcount, wcount, i; ++ register int srcFd, dstFd, rcount, wcount; + char buf[8192]; +- static char *owbuts[4] = { "\nOk", "dDon't Ask", "nNo", "\033Cancel" }; ++ static char *owbuts[] = { "\nOk", "aAlways", "nNo", "NNever", "\033Cancel" }; + + if (DEBUG) fprintf(stderr,"cp_file: src='%s', dst='%s'\n", + cpSrcPath, cpDstPath); +@@ -5203,13 +5814,15 @@ + } + + if (exists) { ++ if (overwrite==OWRT_NEVER) return; + if (overwrite==OWRT_ASK) { + sprintf(buf, "File '%s' exists.\n\nOverwrite?", cpDstPath); +- i = PopUp(buf, owbuts, 4); +- +- if (i==1) overwrite = OWRT_NOASK; +- else if (i==2) return; +- else if (i==3) { overwrite = OWRT_CANCEL; return; } ++ switch (PopUp(buf, owbuts, 4)) { ++ case 1: overwrite = OWRT_ALWAYS; break; ++ case 2: return; ++ case 3: overwrite = OWRT_NEVER; return; ++ case 4: overwrite = OWRT_CANCEL; return; ++ } + } + dstFd = open(cpDstPath, O_WRONLY|O_TRUNC, 0); + } +@@ -5303,8 +5916,14 @@ + + + /*********************************/ ++#ifdef AUTO_EXPAND ++static int stat2bf(uistmode, path) ++ u_int uistmode; ++ char *path; ++#else + static int stat2bf(uistmode) + u_int uistmode; ++#endif + { + /* given the 'st.st_mode' field from a successful stat(), returns + BF_FILE, BF_DIR, BF_BLK, BF_CHR, BF_FIFO, or BF_SOCK. Does *NOT* +@@ -5318,6 +5937,9 @@ + else if (S_ISBLK(stmode)) rv = BF_BLK; + else if (S_ISFIFO(stmode)) rv = BF_FIFO; + else if (S_ISSOCK(stmode)) rv = BF_SOCK; ++#ifdef AUTO_EXPAND ++ else if (Isarchive(path)) rv = BF_DIR; ++#endif + else rv = BF_FILE; + + return rv; +@@ -5418,4 +6040,56 @@ + } + + ++static IVIS *icon_vis_list = NULL; ++ ++/***************************************************************/ ++static void recIconVisible(name, icon) ++ char *name; ++ int icon; ++{ ++ IVIS *ptr, *prev = NULL; ++ ++ for (ptr = icon_vis_list; ptr; prev = ptr, ptr = ptr->next) { ++ if (!strcmp(ptr->name, name)) { ++ ptr->icon = icon; ++ return; ++ } ++ } ++ ++ ptr = calloc(sizeof(IVIS), 1); ++ if (!ptr) ++ return; ++ ++ ptr->name = strdup(name); + ++ if (!ptr->name) { ++ free(ptr); ++ return; ++ } ++ ++ if (!prev) { ++ icon_vis_list = ptr; ++ } else { ++ prev->next = ptr; ++ } ++ ++ ptr->next = NULL; ++ ptr->icon = icon; ++} ++ ++/***************************************************************/ ++static void restIconVisible(br) ++ BROWINFO *br; ++{ ++ IVIS *ptr; ++ ++ for (ptr = icon_vis_list; ptr; ptr = ptr->next) { ++ if (!strcmp(ptr->name, br->path)) { ++ if (ptr->icon >= 0) { ++ makeIconVisible(br, ptr->icon); ++ updateSel(br, ptr->icon, 0, 0); ++ } ++ return; ++ } ++ } ++} +diff -ruN xv-3.10a-bugfixes/xvctrl.c xv-3.10a-enhancements/xvctrl.c +--- xv-3.10a-bugfixes/xvctrl.c 2004-05-23 11:56:37.000000000 -0700 ++++ xv-3.10a-enhancements/xvctrl.c 2004-05-23 12:15:18.000000000 -0700 +@@ -104,7 +104,8 @@ + "Root: centered, warp", + "Root: centered, brick", + "Root: symmetrical tiled", +- "Root: symmetrical mirrored" }; ++ "Root: symmetrical mirrored", ++ "Root: upper left corner" }; + + static char *conv24MList[] = { "8-bit mode\t\2448", + "24-bit mode\t\2448", +diff -ruN xv-3.10a-bugfixes/xvdial.c xv-3.10a-enhancements/xvdial.c +--- xv-3.10a-bugfixes/xvdial.c 2004-05-16 18:01:57.000000000 -0700 ++++ xv-3.10a-enhancements/xvdial.c 2004-05-16 18:06:38.000000000 -0700 +@@ -41,20 +41,21 @@ + + + /* local functions */ +-static int whereInDial PARM((DIAL *, int, int)); +-static void drawArrow PARM((DIAL *)); +-static void drawValStr PARM((DIAL *)); +-static void drawButt PARM((DIAL *, int, int)); +-static int computeDialVal PARM((DIAL *, int, int)); +-static void dimDial PARM((DIAL *)); ++static int whereInDial PARM((DIAL *, int, int)); ++static void drawArrow PARM((DIAL *)); ++static void drawValStr PARM((DIAL *)); ++static void drawButt PARM((DIAL *, int, int)); ++static double computeDialVal PARM((DIAL *, int, int)); ++static void dimDial PARM((DIAL *)); + + + /***************************************************/ +-void DCreate(dp, parent, x, y, w, h, minv, maxv, curv, page, ++void DCreate(dp, parent, x, y, w, h, minv, maxv, curv, inc, page, + fg, bg, hi, lo, title, units) + DIAL *dp; + Window parent; +-int x,y,w,h,minv,maxv,curv,page; ++int x,y,w,h; ++double minv,maxv,curv,inc,page; + unsigned long fg,bg,hi,lo; + char *title, *units; + { +@@ -98,18 +99,18 @@ + 1,fg,bg); + if (!dp->win) FatalError("can't create dial window"); + +- DSetRange(dp, minv, maxv, curv, page); ++ DSetRange(dp, minv, maxv, curv, inc, page); + XSelectInput(theDisp, dp->win, ExposureMask | ButtonPressMask); + } + + + /***************************************************/ +-void DSetRange(dp, minv, maxv, curv, page) +-DIAL *dp; +-int minv, maxv, curv, page; ++void DSetRange(dp, minv, maxv, curv, inc, page) ++DIAL *dp; ++double minv, maxv, curv, inc, page; + { + if (maxvmin = minv; dp->max = maxv; dp->page = page; ++ dp->min = minv; dp->max = maxv; dp->inc = inc; dp->page = page; + dp->active = (minv < maxv); + + DSetVal(dp, curv); +@@ -118,8 +119,8 @@ + + /***************************************************/ + void DSetVal(dp, curv) +-DIAL *dp; +-int curv; ++DIAL *dp; ++double curv; + { + RANGE(curv, dp->min, dp->max); /* make sure curv is in-range */ + +@@ -129,7 +130,7 @@ + XSetForeground(theDisp, theGC, dp->bg); + drawArrow(dp); + +- dp->val = curv; ++ dp->val = (double)((int)(curv / dp->inc + (curv > 0 ? 0.5 : -0.5))) * dp->inc; + + /* draw new arrow and string */ + XSetForeground(theDisp, theGC, dp->fg); +@@ -202,7 +203,8 @@ + int mx,my; + { + Window rW,cW; +- int rx,ry, x,y, ipos, pos, lit, i, origval; ++ int rx, ry, x, y, ipos, pos, lit; ++ double origval; + unsigned int mask; + + lit = 0; +@@ -224,9 +226,9 @@ + if (ipos != INDIAL) { + drawButt(dp, ipos, 1); + switch (ipos) { +- case INCW1: if (dp->val < dp->max) DSetVal(dp, dp->val+1); break; ++ case INCW1: if (dp->val < dp->max) DSetVal(dp, dp->val+dp->inc); break; + case INCW2: if (dp->val < dp->max) DSetVal(dp, dp->val+dp->page); break; +- case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-1); break; ++ case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->inc); break; + case INCCW2: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->page); break; + } + if (dp->drawobj != NULL) (dp->drawobj)(); +@@ -235,8 +237,9 @@ + } + + else { +- i = computeDialVal(dp, mx, my); +- DSetVal(dp, i); ++ double v; ++ v = computeDialVal(dp, mx, my); ++ DSetVal(dp, v); + if (dp->drawobj != NULL) (dp->drawobj)(); + } + +@@ -246,11 +249,11 @@ + if (!(mask & Button1Mask)) break; /* button released */ + + if (ipos == INDIAL) { +- int j; +- i = computeDialVal(dp, x, y); +- j = dp->val; +- DSetVal(dp, i); +- if (j != dp->val) { ++ double v, w; ++ v = computeDialVal(dp, x, y); ++ w = dp->val; ++ DSetVal(dp, v); ++ if (w != dp->val) { + /* track whatever dial controls */ + if (dp->drawobj != NULL) (dp->drawobj)(); + } +@@ -266,11 +269,11 @@ + + if (lit) { + switch (ipos) { +- case INCW1: if (dp->val < dp->max) DSetVal(dp, dp->val+1); ++ case INCW1: if (dp->val < dp->max) DSetVal(dp, dp->val+dp->inc); + break; + case INCW2: if (dp->val < dp->max) DSetVal(dp, dp->val+dp->page); + break; +- case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-1); ++ case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->inc); + break; + case INCCW2: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->page); + break; +@@ -320,19 +323,20 @@ + static void drawArrow(dp) + DIAL *dp; + { +- int i, rad, cx, cy; ++ int rad, cx, cy; ++ double v; + XPoint arrow[4]; + + rad = dp->rad; cx = dp->cx; cy = dp->cy; + + /* map pos (range minv..maxv) into degrees (range 240..-60) */ +- i = 240 + (-300 * (dp->val - dp->min)) / (dp->max - dp->min); +- arrow[0].x = cx + (int) ((double) rad * .80 * cos(i * DEG2RAD)); +- arrow[0].y = cy - (int) ((double) rad * .80 * sin(i * DEG2RAD)); +- arrow[1].x = cx + (int) ((double) rad * .33 * cos((i+160) * DEG2RAD)); +- arrow[1].y = cy - (int) ((double) rad * .33 * sin((i+160) * DEG2RAD)); +- arrow[2].x = cx + (int) ((double) rad * .33 * cos((i-160) * DEG2RAD)); +- arrow[2].y = cy - (int) ((double) rad * .33 * sin((i-160) * DEG2RAD)); ++ v = 240 + (-300 * (dp->val - dp->min)) / (dp->max - dp->min); ++ arrow[0].x = cx + (int) ((double) rad * .80 * cos(v * DEG2RAD)); ++ arrow[0].y = cy - (int) ((double) rad * .80 * sin(v * DEG2RAD)); ++ arrow[1].x = cx + (int) ((double) rad * .33 * cos((v+160) * DEG2RAD)); ++ arrow[1].y = cy - (int) ((double) rad * .33 * sin((v+160) * DEG2RAD)); ++ arrow[2].x = cx + (int) ((double) rad * .33 * cos((v-160) * DEG2RAD)); ++ arrow[2].y = cy - (int) ((double) rad * .33 * sin((v-160) * DEG2RAD)); + arrow[3].x = arrow[0].x; + arrow[3].y = arrow[0].y; + XDrawLines(theDisp, dp->win, theGC, arrow, 4, CoordModeOrigin); +@@ -343,23 +347,37 @@ + static void drawValStr(dp) + DIAL *dp; + { +- int i, x1, x2; ++ int tot, i, x1, x2; + char foo[60], foo1[60]; + + /* compute longest string necessary so we can right-align this thing */ +- sprintf(foo,"%d",dp->min); x1 = strlen(foo); +- sprintf(foo,"%d",dp->max); x2 = strlen(foo); ++ sprintf(foo,"%d",(int)dp->min); x1 = strlen(foo); ++ sprintf(foo,"%d",(int)dp->max); x2 = strlen(foo); + if (dp->min < 0 && dp->max > 0) x2++; /* put '+' at beginning */ + i = x1; if (x2>x1) i = x2; + if (dp->units) i += strlen(dp->units); + +- if (dp->min < 0 && dp->max > 0) sprintf(foo,"%+d", dp->val); +- else sprintf(foo,"%d", dp->val); ++ sprintf(foo,"%g",dp->inc); /* space for decimal values */ ++ tot = i + strlen(foo) - 1; /* Take away the 0 from the beginning */ ++ ++ if (dp->min < 0.0 && dp->max > 0.0) sprintf(foo,"%+g", dp->val); ++ else sprintf(foo,"%g", dp->val); ++ ++ if (dp->inc < 1.0) ++ { ++ int j; ++ ++ if (dp->val == (double)((int)dp->val)) ++ strcat(foo,"."); ++ ++ for (j = strlen(foo); j < tot; j++) ++ strcat(foo,"0"); ++ } + + if (dp->units) strcat(foo,dp->units); + foo1[0] = '\0'; + if (strlen(foo) < (size_t) i) { +- for (i = i - strlen(foo); i>0; i--) strcat(foo1," "); ++ for (i-=strlen(foo);i>0;i--) strcat(foo1," "); + } + strcat(foo1, foo); + +@@ -411,12 +429,13 @@ + + + /***************************************************/ +-static int computeDialVal(dp, x, y) ++static double computeDialVal(dp, x, y) + DIAL *dp; + int x, y; + { +- int dx, dy, val; +- double angle; ++ int dx, dy; ++ ++ double angle, val; + + /* compute dx, dy (distance from cx, cy). Note: +dy is *up* */ + dx = x - dp->cx; dy = dp->cy - y; +@@ -436,8 +455,10 @@ + if (angle > 270.0) angle -= 360.0; + if (angle < -90.0) angle += 360.0; + +- val = (int) ((dp->max - dp->min) * (240.0 - angle) / 300.0) + dp->min; ++ val = ((dp->max - dp->min) * (240.0 - angle) / 300.0) + dp->min; + ++ /* round value to be an even multiple of dp->inc */ ++ val = (double)((int)(val / dp->inc + 0.5)) * dp->inc; + return val; + } + +diff -ruN xv-3.10a-bugfixes/xvdir.c xv-3.10a-enhancements/xvdir.c +--- xv-3.10a-bugfixes/xvdir.c 2005-03-20 18:38:30.000000000 -0800 ++++ xv-3.10a-enhancements/xvdir.c 2005-04-25 22:24:28.000000000 -0700 +@@ -62,6 +62,9 @@ + #ifdef HAVE_TIFF + "TIFF", + #endif ++#ifdef HAVE_PNG ++ "PNG", ++#endif + "PostScript", + "PBM/PGM/PPM (raw)", + "PBM/PGM/PPM (ascii)", +@@ -73,9 +76,32 @@ + "Targa (24-bit)", + "FITS", + "PM", ++ "Spectrum SCREEN$", /* [JCE] */ ++ "WBMP", ++#ifdef HAVE_MAG ++ "MAG", ++#endif ++#ifdef HAVE_PIC ++ "PIC", ++#endif ++#ifdef HAVE_MAKI ++ "MAKI (640x400 only)", ++#endif ++#ifdef HAVE_PI ++ "PI", ++#endif ++#ifdef HAVE_PIC2 ++ "PIC2", ++#endif ++#ifdef HAVE_MGCSFX ++ "MgcSfx", ++#endif + MBSEP, + "Filename List"}; + ++#ifdef HAVE_PIC2 ++extern int PIC2SaveParams PARM((char *, int)); ++#endif + + static void arrangeButts PARM((int)); + static void RedrawDList PARM((int, SCRL *)); +@@ -570,7 +596,11 @@ + } + #endif + ++#ifdef AUTO_EXPAND ++ if (Chvdir(tmppath)) { ++#else + if (chdir(tmppath)) { ++#endif + char str[512]; + sprintf(str,"Unable to cd to '%s'\n", tmppath); + *trunc_point = '/'; /* restore the path */ +@@ -635,7 +665,11 @@ + xv_getwd(path, sizeof(path)); + #endif + ++#ifdef AUTO_EXPAND ++ if (Chvdir(path)) { ++#else + if (chdir(path)) { ++#endif + ErrPopUp("Current load/save directory seems to have gone away!", + "\nYikes!"); + #ifdef apollo +@@ -643,7 +677,11 @@ + #else + strcpy(path,"/"); + #endif ++#ifdef AUTO_EXPAND ++ Chvdir(path); ++#else + chdir(path); ++#endif + } + + changedDir = strcmp(path, oldpath); +@@ -748,6 +786,9 @@ + else if (S_ISFIFO(ftype)) fnames[i][0] = C_FIFO; + else if (S_ISSOCK(ftype)) fnames[i][0] = C_SOCK; + else if (fnames[i][0] == C_REG && (mode&0111)) fnames[i][0] = C_EXE; ++#ifdef AUTO_EXPAND ++ else if (Isarchive(fnames[i]+1)) fnames[i][0] = C_DIR; ++#endif + } + else { + /* fprintf(stderr,"problems 'stat-ing' files\n");*/ +@@ -847,7 +888,7 @@ + scrollToFileName(); + } + +- else if (c=='\010' || c=='\177') { /* BS or DEL */ ++ else if (c=='\010') { /* BS */ + if (curPos==0) return(-1); /* at beginning of str */ + xvbcopy(&filename[curPos], &filename[curPos-1], (size_t) (len-curPos+1)); + curPos--; +@@ -872,7 +913,7 @@ + curPos = len; + } + +- else if (c=='\004') { /* ^D: delete character at curPos */ ++ else if (c=='\004' || c=='\177') { /* ^D or DEL: delete character at curPos */ + if (curPos==len) return(-1); + xvbcopy(&filename[curPos+1], &filename[curPos], (size_t) (len-curPos)); + } +@@ -1055,6 +1096,25 @@ + + fullname = GetDirFullName(); + ++#ifdef AUTO_EXPAND ++ { ++ char path[MAXPATHLEN]; ++ ++ GetDirPath(path); ++ Mkvdir(path); ++ if ((i = Isvdir(fullname)) & 01) { ++ char buf[128]; ++ sprintf(buf, ++ "Sorry, you can't save file in the virtual directory, '%s'", ++ path); ++ ErrPopUp(buf, "\nBummer!"); ++ return -1; ++ } ++ if (i & 06) ++ Rmvdir(fullname); ++ } ++#endif ++ + fmt = MBWhich(&fmtMB); + col = MBWhich(&colMB); + +@@ -1116,7 +1176,34 @@ + } + #endif + ++#ifdef HAVE_PNG ++ else if (fmt == F_PNG) { /* PNG */ ++ PNGSaveParams(fullname, col); ++ PNGDialog(1); /* open PNG Dialog box */ ++ dbut[S_BOK].lit = 0; BTRedraw(&dbut[S_BOK]); ++ return 0; /* always 'succeeds' */ ++ } ++#endif ++ ++#ifdef HAVE_PIC2 ++ else if (fmt == F_PIC2) { /* PIC2 */ ++ if (PIC2SaveParams(fullname, col) < 0) ++ return 0; ++ PIC2Dialog(1); /* open PIC2 Dialog box */ ++ dbut[S_BOK].lit = 0; BTRedraw(&dbut[S_BOK]); ++ return 0; /* always 'succeeds' */ ++ } ++#endif /* HAVE_PIC2 */ + ++#ifdef HAVE_MGCSFX ++ else if (fmt == F_MGCSFX) { /* MGCSFX */ ++ if (MGCSFXSaveParams(fullname, col) < 0) ++ return 0; ++ MGCSFXDialog(1); /* open MGCSFX Dialog box */ ++ dbut[S_BOK].lit = 0; BTRedraw(&dbut[S_BOK]); ++ return 0; /* always 'succeeds' */ ++ } ++#endif /* HAVE_MGCSFX */ + + + WaitCursor(); +@@ -1164,6 +1251,10 @@ + rv = WriteBMP (fp, thepic, ptype, w, h, rp, gp, bp, nc, col); + break; + ++ case F_WBMP: ++ rv = WriteWBMP (fp, thepic, ptype, w, h, rp, gp, bp, nc, col); ++ break; ++ + case F_IRIS: + rv = WriteIRIS (fp, thepic, ptype, w, h, rp, gp, bp, nc, col); + break; +@@ -1181,6 +1272,35 @@ + rv = WriteFITS (fp, thepic, ptype, w, h, rp, gp, bp, nc, col, + picComments); + break; ++ ++ case F_ZX: /* [JCE] Spectrum SCREEN$ */ ++ rv = WriteZX (fp, thepic, ptype, w, h, rp, gp, bp, nc, col, ++ picComments); ++ break; ++#ifdef HAVE_MAG ++ case F_MAG: ++ rv = WriteMAG (fp, thepic, ptype, w, h, rp, gp, bp, nc, col, ++ picComments); ++ break; ++#endif /* HAVE_MAG */ ++#ifdef HAVE_PIC ++ case F_PIC: ++ rv = WritePIC (fp, thepic, ptype, w, h, rp, gp, bp, nc, col, ++ picComments); ++ break; ++#endif /* HAVE_PIC */ ++#ifdef HAVE_MAKI ++ case F_MAKI: ++ rv = WriteMAKI (fp, thepic, ptype, w, h, rp, gp, bp, nc, col); ++ break; ++#endif /* HAVE_MAKI */ ++ ++#ifdef HAVE_PI ++ case F_PI: ++ rv = WritePi (fp, thepic, ptype, w, h, rp, gp, bp, nc, col, ++ picComments); ++ break; ++#endif /* HAVE_PI */ + } + + +@@ -1310,7 +1430,8 @@ + + else if (group == F_FORMAT) { + MBSelect(&fmtMB, bnum); +- if (MBWhich(&fmtMB) == F_XBM) { /* turn off all but B/W */ ++ if (MBWhich(&fmtMB) == F_XBM || ++ MBWhich(&fmtMB) == F_WBMP) { /* turn off all but B/W */ + colMB.dim[F_FULLCOLOR] = 1; + colMB.dim[F_GREYSCALE] = 1; + colMB.dim[F_BWDITHER] = 0; +@@ -1389,14 +1510,29 @@ + (strcmp(lowsuf,"eps" )==0) || + (strcmp(lowsuf,"rgb" )==0) || + (strcmp(lowsuf,"tga" )==0) || +- (strcmp(lowsuf,"xpm" )==0) || + (strcmp(lowsuf,"fits")==0) || + (strcmp(lowsuf,"fts" )==0) || ++#ifdef HAVE_JPEG + (strcmp(lowsuf,"jpg" )==0) || + (strcmp(lowsuf,"jpeg")==0) || + (strcmp(lowsuf,"jfif")==0) || ++#endif ++#ifdef HAVE_TIFF + (strcmp(lowsuf,"tif" )==0) || +- (strcmp(lowsuf,"tiff")==0)) { ++ (strcmp(lowsuf,"tiff")==0) || ++#endif ++#ifdef HAVE_PNG ++ (strcmp(lowsuf,"png" )==0) || ++#endif ++ (strcmp(lowsuf,"wbmp")==0) || ++ (strcmp(lowsuf,"xpm" )==0) || ++ (strcmp(lowsuf,"tiff")==0) || ++ (strcmp(lowsuf,"mag" )==0) || ++ (strcmp(lowsuf,"pic" )==0) || ++ (strcmp(lowsuf,"mki" )==0) || ++ (strcmp(lowsuf,"pi" )==0) || ++ (strcmp(lowsuf,"p2" )==0) || ++ (strcmp(lowsuf,"pcd" )==0)) { + + /* found one. set lowsuf = to the new suffix, and tack on to filename */ + +@@ -1419,6 +1555,7 @@ + case F_XBM: strcpy(lowsuf,"xbm"); break; + case F_SUNRAS: strcpy(lowsuf,"ras"); break; + case F_BMP: strcpy(lowsuf,"bmp"); break; ++ case F_WBMP: strcpy(lowsuf,"wbmp"); break; + case F_PS: strcpy(lowsuf,"ps"); break; + case F_IRIS: strcpy(lowsuf,"rgb"); break; + case F_TARGA: strcpy(lowsuf,"tga"); break; +@@ -1432,8 +1569,33 @@ + #ifdef HAVE_TIFF + case F_TIFF: strcpy(lowsuf,"tif"); break; + #endif ++ ++#ifdef HAVE_PNG ++ case F_PNG: strcpy(lowsuf,"png"); break; ++#endif ++ ++#ifdef HAVE_MAG ++ case F_MAG: strcpy(lowsuf,"mag"); break; ++#endif ++ ++#ifdef HAVE_PIC ++ case F_PIC: strcpy(lowsuf,"pic"); break; ++#endif ++ ++#ifdef HAVE_MAKI ++ case F_MAKI: strcpy(lowsuf,"mki"); break; ++#endif ++ ++#ifdef HAVE_PI ++ case F_PI: strcpy(lowsuf,"pi"); break; ++#endif ++ ++#ifdef HAVE_PIC2 ++ case F_PIC2: strcpy(lowsuf,"p2"); break; ++#endif + } + ++ + if (allcaps) { /* upper-caseify lowsuf */ + for (sp=lowsuf; *sp; sp++) + *sp = (islower(*sp)) ? toupper(*sp) : *sp; +@@ -1499,6 +1661,11 @@ + } + #endif + ++#ifdef AUTO_EXPAND ++ Mkvdir(newpath); ++ Dirtovd(newpath); ++#endif ++ + if (stat(newpath, &st)==0) { + int isdir; + +@@ -1596,7 +1763,11 @@ + dopipe = 0; + + /* make sure we're in the correct directory */ ++#ifdef AUTO_EXPAND ++ if (strlen(path)) Chvdir(path); ++#else + if (strlen(path)) chdir(path); ++#endif + + if (ISPIPE(filename[0])) { /* do piping */ + /* make up some bogus temp file to put this in */ +@@ -2002,7 +2173,7 @@ + if (stat(namelist[curname], &origStat)==0) { + haveStat = 1; + if (DEBUG) fprintf(stderr," origStat.size=%ld, origStat.mtime=%ld\n", +- origStat.st_size, origStat.st_mtime); ++ (long)origStat.st_size, (long)origStat.st_mtime); + } + } + } +@@ -2027,7 +2198,7 @@ + + if (stat(namelist[curname], &st)==0) { + if (DEBUG) fprintf(stderr," st.size=%ld, st.mtime=%ld\n", +- st.st_size, st.st_mtime); ++ (long)st.st_size, (long)st.st_mtime); + + if ((st.st_size == origStat.st_size) && + (st.st_mtime == origStat.st_mtime)) return 0; /* no change */ +@@ -2080,3 +2251,164 @@ + } + + ++#ifdef HAVE_PIC2 ++/**** Stuff for PIC2Dialog box ****/ ++FILE *pic2_OpenOutFile(filename, append) ++char *filename; ++int *append; ++{ ++ /* opens file for output. does various error handling bits. Returns ++ an open file pointer if success, NULL if failure */ ++ ++ FILE *fp = NULL; ++ struct stat st; ++ ++ if (!filename || filename[0] == '\0') ++ return (NULL); ++ strcpy(outFName, filename); ++ dopipe = 0; ++ ++ /* make sure we're in the correct directory */ ++#ifdef AUTO_EXPAND ++ if (strlen(path)) Chvdir(path); ++#else ++ if (strlen(path)) chdir(path); ++#endif ++ ++ if (ISPIPE(filename[0])) { /* do piping */ ++ /* make up some bogus temp file to put this in */ ++#ifndef VMS ++ sprintf(outFName, "%s/xvXXXXXX", tmpdir); ++#else ++ strcpy(outFName, "[]xvXXXXXX.lis"); ++#endif ++#ifdef USE_MKSTEMP ++ fp = fdopen(mkstemp(outFName), "w"); ++#else ++ mktemp(outFName); ++#endif ++ dopipe = 1; ++ } ++ ++ ++ /* see if file exists (i.e., we're overwriting) */ ++ *append = 0; ++#ifdef USE_MKSTEMP ++ if (!dopipe) ++#endif ++ if (stat(outFName, &st)==0) { /* stat succeeded, file must exist */ ++ if (ReadFileType(outFName) != RFT_PIC2) { ++ static char *foo[] = { "\nOk", "\033Cancel" }; ++ char str[512]; ++ ++ sprintf(str,"Overwrite existing file '%s'?", outFName); ++ if (PopUp(str, foo, 2)) ++ return (NULL); ++ } else { ++ static char *foo[] = { "\nOk", "\033Cancel" }; ++ char str[512]; ++ ++ sprintf(str,"Append to existing file '%s'?", outFName); ++ if (PopUp(str, foo, 2)) { ++ sprintf(str,"Overwrite existing file '%s'?", outFName); ++ if (PopUp(str, foo, 2)) ++ return (NULL); ++ } else ++ *append = 1; ++ } ++ } ++ ++ /* Open file */ ++#ifdef USE_MKSTEMP ++ if (!dopipe) ++#endif ++ fp = *append ? fopen(outFName, "r+") : fopen(outFName, "w"); ++ if (!fp) { ++ char str[512]; ++ sprintf(str,"Can't write file '%s'\n\n %s.",outFName, ERRSTR(errno)); ++ ErrPopUp(str, "\nBummer"); ++ return (NULL); ++ } ++ ++ return (fp); ++} ++ ++ ++/***************************************/ ++void pic2_KillNullFile(fp) ++FILE *fp; ++{ ++ fseek(fp, (size_t) 0, SEEK_END); ++ if (ftell(fp) > 0) { ++ fclose(fp); ++ return; ++ } else { ++ fclose(fp); ++ unlink(outFName); ++ return; ++ } ++} ++#endif /* HAVE_PIC2 */ ++ ++ ++#ifdef HAVE_MGCSFX ++/**** Stuff for MGCSFX Dialog box ****/ ++/***************************************/ ++int OpenOutFileDesc(filename) ++ char *filename; ++{ ++ /* opens file for output. does various error handling bits. Returns ++ an open file pointer if success, NULL if failure */ ++ ++ int fd; ++ struct stat st; ++ ++ if (!filename || filename[0] == '\0') return -1; ++ strcpy(outFName, filename); ++ dopipe = 0; ++ ++ /* make sure we're in the correct directory */ ++#ifdef AUTO_EXPAND ++ if (strlen(path)) Chvdir(path); ++#else ++ if (strlen(path)) chdir(path); ++#endif ++ ++ if (ISPIPE(filename[0])) { /* do piping */ ++ /* make up some bogus temp file to put this in */ ++#ifndef VMS ++ sprintf(outFName, "%s/xvXXXXXX", tmpdir); ++#else ++ strcpy(outFName, "[]xvXXXXXX.lis"); ++#endif ++#ifdef USE_MKSTEMP ++ close(mkstemp(outFName)); ++#else ++ mktemp(outFName); ++#endif ++ dopipe = 1; ++ } ++ ++ ++ /* if didn't just create it, see if file exists (i.e., we're overwriting) */ ++ if (!dopipe && stat(outFName, &st)==0) { /* stat succeeded, file exists */ ++ static char *foo[] = { "\nOk", "\033Cancel" }; ++ char str[512]; ++ ++ sprintf(str,"Overwrite existing file '%s'?", outFName); ++ if (PopUp(str, foo, 2)) return -1; ++ } ++ ++ ++ /* Open file */ ++ fd = open(outFName, O_WRONLY | O_CREAT | O_TRUNC, (0644)); ++ if (fd < 0) { ++ char str[512]; ++ sprintf(str,"Can't write file '%s'\n\n %s.", outFName, ERRSTR(errno)); ++ ErrPopUp(str, "\nBummer"); ++ return -1; ++ } ++ ++ return fd; ++} ++#endif /* HAVE_MGCSFX */ +diff -ruN xv-3.10a-bugfixes/xvevent.c xv-3.10a-enhancements/xvevent.c +--- xv-3.10a-bugfixes/xvevent.c 2004-05-16 18:02:03.000000000 -0700 ++++ xv-3.10a-enhancements/xvevent.c 2005-05-01 09:33:38.000000000 -0700 +@@ -64,6 +64,8 @@ + + static void annotatePic PARM((void)); + ++static int debkludge_offx; ++static int debkludge_offy; + + /****************/ + int EventLoop() +@@ -71,13 +73,25 @@ + { + XEvent event; + int retval,done,waiting; +- time_t orgtime, curtime; ++#ifdef USE_TICKS ++ clock_t waitsec_ticks=0L, orgtime_ticks=0L, curtime_ticks; ++ clock_t elapsed_ticks=0L, remaining_interval; ++#else ++ time_t orgtime=0L, curtime; ++#endif + + + #ifndef NOSIGNAL + signal(SIGQUIT, onInterrupt); + #endif + ++ if (startGrab == 1) { ++ startGrab = 2; ++ FakeButtonPress(&but[BGRAB]); ++ FakeKeyPress(ctrlW, XK_Return); ++ return(1); ++ } ++ + /* note: there's no special event handling if we're using the root window. + if we're using the root window, we will recieve NO events for mainW */ + +@@ -100,18 +114,24 @@ + + while (!done) { + +- if (waitsec > -1 && canstartwait && !waiting && XPending(theDisp)==0) { ++ if (waitsec >= 0.0 && canstartwait && !waiting && XPending(theDisp)==0) { + /* we wanna wait, we can wait, we haven't started waiting yet, and + all pending events (ie, drawing the image the first time) + have been dealt with: START WAITING */ +- time((time_t *) &orgtime); ++#ifdef USE_TICKS ++ waitsec_ticks = (clock_t)(waitsec * CLK_TCK); ++ orgtime_ticks = times(NULL); /* unclear if NULL valid, but OK on Linux */ ++#else ++ orgtime = time(NULL); ++#endif + waiting = 1; + } + + + /* if there's an XEvent pending *or* we're not doing anything + in real-time (polling, flashing the selection, etc.) get next event */ +- if ((waitsec==-1 && !polling && !HaveSelection()) || XPending(theDisp)>0) { ++ if ((waitsec<0.0 && !polling && !HaveSelection()) || XPending(theDisp)>0) ++ { + XNextEvent(theDisp, &event); + retval = HandleEvent(&event,&done); + } +@@ -121,7 +141,7 @@ + DrawSelection(0); + DrawSelection(1); + XFlush(theDisp); +- Timer(200); ++ Timer(200); /* milliseconds */ + } + + if (polling) { +@@ -129,13 +149,32 @@ + else if (!XPending(theDisp)) sleep(1); + } + +- if (waitsec>-1 && waiting) { +- time((time_t *) &curtime); +- if (curtime - orgtime < waitsec) sleep(1); +- else { +- if (waitloop) return NEXTLOOP; +- else return NEXTQUIT; +- } ++ if (waitsec>=0.0 && waiting) { ++#ifdef USE_TICKS ++ curtime_ticks = times(NULL); /* value in ticks */ ++ if (curtime_ticks < orgtime_ticks) { ++ /* clock ticks rolled over: need to correct for that (i.e., ++ * curtime_ticks is presumably quite small, while orgtime_ticks ++ * should be close to LONG_MAX, so do math accordingly--any way ++ * to check whether clock_t is *not* a signed long?) */ ++ elapsed_ticks = curtime_ticks + (LONG_MAX - orgtime_ticks); ++ } else ++ elapsed_ticks = curtime_ticks - orgtime_ticks; ++ remaining_interval = waitsec_ticks - elapsed_ticks; ++ if (remaining_interval >= (clock_t)(1 * CLK_TCK)) ++ sleep(1); ++ else { ++ /* less than one second remaining: do delay in msec, then return */ ++ Timer((remaining_interval * 1000L) / CLK_TCK); /* can't overflow */ ++ return waitloop? NEXTLOOP : NEXTQUIT; ++ } ++#else ++ curtime = time(NULL); /* value in seconds */ ++ if (curtime - orgtime < (time_t)waitsec) ++ sleep(1); ++ else ++ return waitloop? NEXTLOOP : NEXTQUIT; ++#endif + } + } + } /* while (!done) */ +@@ -154,7 +193,24 @@ + int *donep; + { + static int wasInfoUp=0, wasCtrlUp=0, wasDirUp=0, wasGamUp=0, wasPsUp=0; +- static int wasJpegUp=0, wasTiffUp=0; ++#ifdef HAVE_JPEG ++ static int wasJpegUp=0; ++#endif ++#ifdef HAVE_TIFF ++ static int wasTiffUp=0; ++#endif ++#ifdef HAVE_PNG ++ static int wasPngUp=0; ++#endif ++#ifdef HAVE_PCD ++ static int wasPcdUp=0; ++#endif ++#ifdef HAVE_PIC2 ++ static int wasPic2Up=0; ++#endif ++#ifdef HAVE_MGCSFX ++ static int wasMgcSfxUp=0; ++#endif + + static int mainWKludge=0; /* force first mainW expose after a mainW config + to redraw all of mainW */ +@@ -233,6 +289,28 @@ + if (TIFFCheckEvent(event)) break; /* event has been processed */ + #endif + ++#ifdef HAVE_PNG ++ if (PNGCheckEvent (event)) break; /* event has been processed */ ++#endif ++ ++ if (PCDCheckEvent(event)) break; /* event has been processed */ ++ ++#ifdef HAVE_PIC2 ++ if (PIC2CheckEvent(event)) break; /* event has been processed */ ++#endif ++ ++#ifdef HAVE_PCD ++ if (PCDCheckEvent (event)) break; /* event has been processed */ ++#endif ++ ++#ifdef HAVE_MGCSFX ++ if (MGCSFXCheckEvent(event)) break; /* event has been processed */ ++#endif ++ ++#ifdef TV_MULTILINGUAL ++ if (CharsetCheckEvent(event)) break; /* event has been processed */ ++#endif ++ + if (GamCheckEvent (event)) break; /* event has been processed */ + if (BrowseCheckEvent (event, &retval, &done)) break; /* event eaten */ + if (TextCheckEvent (event, &retval, &done)) break; /* event eaten */ +@@ -344,6 +422,9 @@ + + if (BrowseDelWin(client_event->window)) break; + if (TextDelWin(client_event->window)) break; ++#ifdef TV_MULTILINGUAL ++ if (CharsetDelWin(client_event->window)) break; ++#endif + + if (client_event->window == infoW) InfoBox(0); + else if (client_event->window == gamW) GamBox(0); +@@ -359,6 +440,24 @@ + else if (client_event->window == tiffW) TIFFDialog(0); + #endif + ++#ifdef HAVE_PNG ++ else if (client_event->window == pngW) PNGDialog(0); ++#endif ++ ++ else if (client_event->window == pcdW) PCDDialog(0); ++ ++#ifdef HAVE_PIC2 ++ else if (client_event->window == pic2W) PIC2Dialog(0); ++#endif ++ ++#ifdef HAVE_PCD ++ else if (client_event->window == pcdW) PCDDialog(0); ++#endif ++ ++#ifdef HAVE_MGCSFX ++ else if (client_event->window == mgcsfxW) MGCSFXDialog(0); ++#endif ++ + else if (client_event->window == mainW) Quit(0); + } + } +@@ -534,10 +633,21 @@ + #ifdef HAVE_JPEG + if (wasJpegUp) { JPEGDialog(wasJpegUp); wasJpegUp=0; } + #endif +- + #ifdef HAVE_TIFF + if (wasTiffUp) { TIFFDialog(wasTiffUp); wasTiffUp=0; } + #endif ++#ifdef HAVE_PNG ++ if (wasPngUp) { PNGDialog(wasJpegUp); wasPngUp=0; } ++#endif ++#ifdef HAVE_PCD ++ if (wasPcdUp) { PCDDialog(wasPcdUp); wasPcdUp=0; } ++#endif ++#ifdef HAVE_PIC2 ++ if (wasPic2Up) { PIC2Dialog(wasPic2Up); wasPic2Up=0; } ++#endif ++#ifdef HAVE_MGCSFX ++ if (wasMgcSfxUp) { MGCSFXDialog(wasMgcSfxUp); wasMgcSfxUp=0; } ++#endif + } + } + } +@@ -572,10 +682,21 @@ + #ifdef HAVE_JPEG + if (jpegUp) { wasJpegUp = jpegUp; JPEGDialog(0); } + #endif +- + #ifdef HAVE_TIFF + if (tiffUp) { wasTiffUp = tiffUp; TIFFDialog(0); } + #endif ++#ifdef HAVE_PNG ++ if (pngUp) { wasPngUp = pngUp; PNGDialog(0); } ++#endif ++#ifdef HAVE_PCD ++ if (pcdUp) { wasPcdUp = pcdUp; PCDDialog(0); } ++#endif ++#ifdef HAVE_PIC2 ++ if (pic2Up) { wasPic2Up = pic2Up; PIC2Dialog(0); } ++#endif ++#ifdef HAVE_MGCSFX ++ if (mgcsfxUp) { wasMgcSfxUp = mgcsfxUp; MGCSFXDialog(0); } ++#endif + } + } + } +@@ -641,6 +762,30 @@ + p_offy = xwa.y; + } + ++ /* Gather info to keep right border inside */ ++ { ++ Window current; ++ Window root_r; ++ Window parent_r; ++ Window *children_r; ++ int nchildren_r; ++ XWindowAttributes xwa; ++ ++ parent_r=mainW; ++ current=mainW; ++ do { ++ current=parent_r; ++ XQueryTree(theDisp, current, &root_r, &parent_r, ++ &children_r, &nchildren_r); ++ if (children_r!=NULL) { ++ XFree(children_r); ++ } ++ } while(parent_r!=root_r); ++ XGetWindowAttributes(theDisp, current, &xwa); ++ debkludge_offx=eWIDE-xwa.width+p_offx; ++ debkludge_offy=eHIGH-xwa.height+p_offy; ++ } ++ + + /* move window around a bit... */ + { +@@ -997,7 +1142,8 @@ + + int i; + char txt[512], str[PRINTCMDLEN + 10]; +- static char *labels[] = { " Color", " Grayscale", " B/W", "\033Cancel" }; ++ static char *labels[] = { "\03Color", "\07Grayscale", " B/W", "\033Cancel" }; ++ /* ^B ("\02") already used for moving cursor back */ + + strcpy(txt, "Print: Enter a command that will read a PostScript file "); + strcat(txt, "from stdin and print it to the desired printer.\n\n"); +@@ -1147,6 +1293,26 @@ + if (TIFFCheckEvent(event)) break; + #endif + ++#ifdef HAVE_PNG ++ if (PNGCheckEvent (event)) break; ++#endif ++ ++#ifdef HAVE_PCD ++ if (PCDCheckEvent (event)) break; /* event has been processed */ ++#endif ++ ++#ifdef HAVE_PIC2 ++ if (PIC2CheckEvent(event)) break; ++#endif ++ ++#ifdef HAVE_MGCSFX ++ if (MGCSFXCheckEvent(event)) break; ++#endif ++ ++#ifdef TV_MULTILINGUAL ++ if (CharsetCheckEvent(event)) break; ++#endif ++ + if (GamCheckEvent (event)) break; + if (BrowseCheckEvent (event, &retval, &done)) break; + if (TextCheckEvent (event, &retval, &done)) break; +@@ -1276,6 +1442,48 @@ + else if (shift) BlurPaint(); + break; + ++ case Button4: /* note min vs. max, + vs. - */ ++ if (win == ctrlW || win == nList.win || win == nList.scrl.win) { ++ SCRL *sp=&nList.scrl; ++ int halfpage=sp->page/2; ++ ++ if (sp->val > sp->min+halfpage) ++ SCSetVal(sp,sp->val-halfpage); ++ else ++ SCSetVal(sp,sp->min); ++ } ++ else if (win == dirW || win == dList.win || win == dList.scrl.win) { ++ SCRL *sp=&dList.scrl; ++ int halfpage=sp->page/2; ++ ++ if (sp->val > sp->min+halfpage) ++ SCSetVal(sp,sp->val-halfpage); ++ else ++ SCSetVal(sp,sp->min); ++ } ++ break; ++ ++ case Button5: /* note max vs. min, - vs. + */ ++ if (win == ctrlW || win == nList.win || win == nList.scrl.win) { ++ SCRL *sp=&nList.scrl; ++ int halfpage=sp->page/2; ++ ++ if (sp->val < sp->max-halfpage) ++ SCSetVal(sp,sp->val+halfpage); ++ else ++ SCSetVal(sp,sp->max); ++ } ++ else if (win == dirW || win == dList.win || win == dList.scrl.win) { ++ SCRL *sp=&dList.scrl; ++ int halfpage=sp->page/2; ++ ++ if (sp->val < sp->max-halfpage) ++ SCSetVal(sp,sp->val+halfpage); ++ else ++ SCSetVal(sp,sp->max); ++ } ++ break; ++ + default: break; + } + } +@@ -1364,16 +1572,35 @@ + if (TIFFCheckEvent(event)) break; + #endif + ++#ifdef HAVE_PNG ++ if (PNGCheckEvent (event)) break; ++#endif ++ ++ if (PCDCheckEvent (event)) break; ++ ++#ifdef HAVE_PIC2 ++ if (PIC2CheckEvent(event)) break; ++#endif ++ ++#ifdef HAVE_PCD ++ if (PCDCheckEvent (event)) break; ++#endif ++ ++#ifdef HAVE_MGCSFX ++ if (MGCSFXCheckEvent(event)) break; ++#endif ++ + if (GamCheckEvent (event)) break; + if (BrowseCheckEvent (event, &retval, &done)) break; + if (TextCheckEvent (event, &retval, &done)) break; + + +- /* check for pageup/pagedown, 'p' in main window +- (you can use shift-up or shift-down if no crop rectangle drawn) +- (for viewing multipage docs) */ ++ /* Support for multi-image files ("multipage docs"). Check for PgUp/PgDn ++ or 'p' in any window but control or directory; PgUp/PgDn are already ++ used to page through the file list in those windows. If no cropping ++ rectangle is active, shift-Up and shift-Down also work. */ + +- if (key_event->window == mainW) { ++ if (key_event->window != ctrlW && key_event->window != dirW) { + dealt = 1; + + ck = CursorKey(ks, shift, 0); +@@ -1578,13 +1805,13 @@ + } + break; + +- case '\010': +- case '\177': FakeButtonPress(&but[BPREV]); break; ++ case '\010': FakeButtonPress(&but[BPREV]); break; + + + case '\014': FakeButtonPress(&but[BLOAD]); break; /* ^L */ + case '\023': FakeButtonPress(&but[BSAVE]); break; /* ^S */ + case '\020': FakeButtonPress(&but[BPRINT]); break; /* ^P */ ++ case '\177': + case '\004': FakeButtonPress(&but[BDELETE]); break; /* ^D */ + + /* BCOPY, BCUT, BPASTE, BCLEAR handled in 'meta' case */ +@@ -2025,6 +2252,16 @@ + if (xwa->width < dispWIDE && xwc.x < p_offx) xwc.x = p_offx; + if (xwa->height < dispHIGH && xwc.y < p_offy) xwc.y = p_offy; + ++ /* Try to keep bottom right decorations inside */ ++ if (xwc.x+eWIDE-debkludge_offx>dispWIDE) { ++ xwc.x=dispWIDE-eWIDE+debkludge_offx; ++ if (xwc.x<0) xwc.x=0; ++ } ++ if (xwc.y+eHIGH-debkludge_offy>dispHIGH) { ++ xwc.y=dispHIGH-eHIGH+debkludge_offy; ++ if (xwc.y<0) xwc.y=0; ++ } ++ + xwc.width = xwa->width; + xwc.height = xwa->height; + +@@ -2370,6 +2607,24 @@ + if (tiffUp) TIFFDialog(0); /* close tiff window */ + #endif + ++#ifdef HAVE_PNG ++ if (pngUp) PNGDialog(0); /* close png window */ ++#endif ++ ++ if (pcdUp) PCDDialog(0); /* close pcd window */ ++ ++#ifdef HAVE_PIC2 ++ if (pic2Up) PIC2Dialog(0); /* close pic2 window */ ++#endif ++ ++#ifdef HAVE_PCD ++ if (pcdUp) PCDDialog(0); /* close pcd window */ ++#endif ++ ++#ifdef HAVE_MGCSFX ++ if (mgcsfxUp) MGCSFXDialog(0); /* close mgcsfx window */ ++#endif ++ + ClosePopUp(); + + /* make the interrupt signal look like a '\n' keypress in ctrlW */ +@@ -2574,26 +2829,43 @@ + static void paintLine(x,y,x1,y1) + int x,y,x1,y1; + { +- int dx,dy,i,lx,ly,adx,ady; ++ int t,dx,dy,d,dd; + +- dx = x1-x; dy = y1-y; +- adx = abs(dx); ady = abs(dy); ++ dx = abs(x1-x); dy = abs(y1-y); + +- if (dx == 0 && dy == 0) paintPixel(x,y); +- +- else if (adx > ady) { /* X is major axis */ +- for (i=0; i<=adx; i++) { +- lx = x + (i * dx + (adx/2)) / abs(dx); +- ly = y + (i * dy + (adx/2)) / abs(dx); +- paintPixel(lx,ly); ++ if (dx >= dy) { /* X is major axis */ ++ if (x > x1) { ++ t = x; x = x1; x1 = t; ++ t = y; y = y1; y1 = t; ++ } ++ d = dy + dy - dx; ++ dd = y < y1 ? 1 : -1; ++ while (x <= x1) { ++ paintPixel(x,y); ++ if (d > 0) { ++ y += dd; ++ d -= dx + dx; ++ } ++ ++x; ++ d += dy + dy; + } + } + + else { /* Y is major axis */ +- for (i=0; i<=ady; i++) { +- lx = x + (i * dx + (ady/2)) / ady; +- ly = y + (i * dy + (ady/2)) / ady; +- paintPixel(lx,ly); ++ if (y > y1) { ++ t = x; x = x1; x1 = t; ++ t = y; y = y1; y1 = t; ++ } ++ d = dx + dx - dy; ++ dd = x < x1 ? 1 : -1; ++ while (y <= y1) { ++ paintPixel(x,y); ++ if (d > 0) { ++ x += dd; ++ d -= dy + dy; ++ } ++ ++y; ++ d += dx + dx; + } + } + +diff -ruN xv-3.10a-bugfixes/xvfits.c xv-3.10a-enhancements/xvfits.c +--- xv-3.10a-bugfixes/xvfits.c 2005-04-02 21:08:45.000000000 -0800 ++++ xv-3.10a-enhancements/xvfits.c 2005-04-17 14:45:28.000000000 -0700 +@@ -14,7 +14,7 @@ + * provided "as is" without express or implied warranty. + */ + +- ++#define NEEDSDIR /* for S_IRUSR|S_IWUSR */ + #include "xv.h" + + #define NCARDS (36) +@@ -228,7 +228,7 @@ + * If there was a problem writing files, then a error message will be set. + */ + +- int i, npixels=nx * ny, nwrt; ++ int i, npixels=nx * ny, nwrt, tmpfd; + FILE *fp; + char *error; + char filename[70]; +@@ -254,7 +254,12 @@ + + for (i=0; i < nz && !error; i++) { + sprintf(filename, "%s%d", basename, i+1); +- fp = xv_fopen(filename, "w"); ++ tmpfd = open(filename,O_WRONLY|O_CREAT|O_EXCL,S_IRWUSR); ++ if (tmpfd < 0) { ++ error = "Unable to open temporary file"; ++ break; ++ } ++ fp = fdopen(tmpfd, "w"); + if (!fp) { + error = "Unable to open temporary file"; + break; +@@ -262,13 +267,17 @@ + + if (wrheader(fp, nx, ny, comment)) { + error = "I/O error writing temporary file"; ++ fflush(fp); + fclose(fp); + unlink(filename); ++ close(tmpfd); + break; + } + + nwrt = fwrite(image+i*npixels, sizeof(byte), (size_t) npixels, fp); ++ fflush(fp); + fclose(fp); ++ close(tmpfd); + + if (nwrt == 0) { /* failed to write any data */ + error = "I/O error writing temporary file"; +diff -ruN xv-3.10a-bugfixes/xvgam.c xv-3.10a-enhancements/xvgam.c +--- xv-3.10a-bugfixes/xvgam.c 2004-05-16 18:02:11.000000000 -0700 ++++ xv-3.10a-enhancements/xvgam.c 2004-05-16 18:06:48.000000000 -0700 +@@ -265,11 +265,11 @@ + BTCreate(&gbut[G_BRNDCOL], cmapF, 5 + 66 + 67 + 2, 189, 66, BUTTH, + "Random", infofg, infobg, hicol, locol); + +- DCreate(&rhDial, cmapF, 5, 215, 66, 100, 0,360,180, 5, ++ DCreate(&rhDial, cmapF, 5, 215, 66, 100, 0.0, 360.0, 180.0, 1.0, 5.0, + infofg, infobg, hicol, locol, "Hue", NULL); +- DCreate(&gsDial, cmapF, 72, 215, 66, 100, 0,360,180, 5, ++ DCreate(&gsDial, cmapF, 72, 215, 66, 100, 0.0, 360.0, 180.0, 1.0, 5.0, + infofg, infobg, hicol, locol, "Sat.", NULL); +- DCreate(&bvDial, cmapF, 139, 215, 66, 100, 0,360,180, 5, ++ DCreate(&bvDial, cmapF, 139, 215, 66, 100, 0.0, 360.0, 180.0, 1.0, 5.0, + infofg, infobg, hicol, locol, "Value", NULL); + + rhDial.drawobj = gsDial.drawobj = bvDial.drawobj = dragEditColor; +@@ -359,7 +359,7 @@ + + srcHD.drawobj = dstHD.drawobj = whtHD.drawobj = dragHueDial; + +- DCreate(&satDial, hsvF, 100, 199, 100, 121, -100, 100, 0, 5, ++ DCreate(&satDial, hsvF, 100, 199, 100, 121, -100.0, 100.0, 0.0, 1.0, 5.0, + infofg, infobg,hicol,locol, "Saturation", "%"); + + hueRB = RBCreate(NULL, hsvF, 7, 153, "1", +@@ -722,7 +722,7 @@ + + if (whtHD.enabCB.val && whtHD.satval) hsvnonlinear++; + +- if (satDial.val != 0) hsvnonlinear++; ++ if (satDial.val != 0.0) hsvnonlinear++; + + /* check intensity graf */ + for (i=0; i<256 && intGraf.func[i]==i; i++); +@@ -1291,14 +1291,14 @@ + rgb2hsv(rcmap[editColor], gcmap[editColor], bcmap[editColor], &h, &s, &v); + if (h<0) h = 0; + +- DSetVal(&rhDial, (int) h); +- DSetVal(&gsDial, (int) (s*100)); +- DSetVal(&bvDial, (int) (v*100)); ++ DSetVal(&rhDial, h); ++ DSetVal(&gsDial, s*100); ++ DSetVal(&bvDial, v*100); + } + else { +- DSetVal(&rhDial, rcmap[editColor]); +- DSetVal(&gsDial, gcmap[editColor]); +- DSetVal(&bvDial, bcmap[editColor]); ++ DSetVal(&rhDial, (double)rcmap[editColor]); ++ DSetVal(&gsDial, (double)gcmap[editColor]); ++ DSetVal(&bvDial, (double)bcmap[editColor]); + } + } + +@@ -1310,16 +1310,15 @@ + + if (hsvmode) { + int rv, gv, bv; +- hsv2rgb((double) rhDial.val, ((double) gsDial.val) / 100.0, +- ((double) bvDial.val) / 100.0, &rv, &gv, &bv); ++ hsv2rgb(rhDial.val, gsDial.val / 100.0, bvDial.val / 100.0, &rv, &gv, &bv); + rcmap[editColor] = rv; + gcmap[editColor] = gv; + bcmap[editColor] = bv; + } + else { +- rcmap[editColor] = rhDial.val; +- gcmap[editColor] = gsDial.val; +- bcmap[editColor] = bvDial.val; ++ rcmap[editColor] = (int)rhDial.val; ++ gcmap[editColor] = (int)gsDial.val; ++ bcmap[editColor] = (int)bvDial.val; + } + } + +@@ -1561,9 +1560,9 @@ + gsDial.title = "Green"; + bvDial.title = "Blue"; + +- DSetRange(&rhDial, 0, 255, rcmap[editColor], 16); +- DSetRange(&gsDial, 0, 255, gcmap[editColor], 16); +- DSetRange(&bvDial, 0, 255, bcmap[editColor], 16); ++ DSetRange(&rhDial, 0.0, 255.0, (double)rcmap[editColor], 1.0, 16.0); ++ DSetRange(&gsDial, 0.0, 255.0, (double)gcmap[editColor], 1.0, 16.0); ++ DSetRange(&bvDial, 0.0, 255.0, (double)bcmap[editColor], 1.0, 16.0); + + XClearWindow(theDisp, rhDial.win); DRedraw(&rhDial); + XClearWindow(theDisp, gsDial.win); DRedraw(&gsDial); +@@ -1581,9 +1580,9 @@ + &h, &s, &v); + + if (h<0.0) h = 0.0; +- DSetRange(&rhDial, 0, 360, (int) h, 5); +- DSetRange(&gsDial, 0, 100, (int) (s*100), 5); +- DSetRange(&bvDial, 0, 100, (int) (v*100), 5); ++ DSetRange(&rhDial, 0.0, 360.0, h, 1.0, 5.0); ++ DSetRange(&gsDial, 0.0, 100.0, s*100, 1.0, 5.0); ++ DSetRange(&bvDial, 0.0, 100.0, v*100, 1.0, 5.0); + + XClearWindow(theDisp, rhDial.win); DRedraw(&rhDial); + XClearWindow(theDisp, gsDial.win); DRedraw(&gsDial); +@@ -1891,7 +1890,7 @@ + } + + /* apply satDial value to s */ +- s = s + ((double) satDial.val) / 100.0; ++ s = s + satDial.val / 100.0; + if (s<0.0) s = 0.0; + if (s>1.0) s = 1.0; + +@@ -2007,7 +2006,7 @@ + + gs->hueRBnum = RBWhich(hueRB); + +- gs->satval = satDial.val; ++ gs->satval = (int)satDial.val; + GetGrafState(&intGraf,&gs->istate); + GetGrafState(&rGraf, &gs->rstate); + GetGrafState(&gGraf, &gs->gstate); +@@ -2064,8 +2063,8 @@ + changed++; + } + +- if (gs->satval != satDial.val) { +- DSetVal(&satDial,gs->satval); ++ if (gs->satval != (int)satDial.val) { ++ DSetVal(&satDial,(double)gs->satval); + changed++; + } + +@@ -3200,7 +3199,7 @@ + + if (whtHD.enabCB.val && whtHD.satval) hsvmod++; + +- if (satDial.val != 0) hsvmod++; ++ if (satDial.val != 0.0) hsvmod++; + + /* check intensity graf */ + for (i=0; i<256; i++) { +@@ -3284,7 +3283,7 @@ + } + + /* apply satDial value to s */ +- s = s + satDial.val; ++ s = s + (int)satDial.val; + if (s< 0) s = 0; + if (s>100) s = 100; + +diff -ruN xv-3.10a-bugfixes/xvgif.c xv-3.10a-enhancements/xvgif.c +--- xv-3.10a-bugfixes/xvgif.c 2005-04-03 11:53:13.000000000 -0700 ++++ xv-3.10a-enhancements/xvgif.c 2005-04-30 21:47:44.000000000 -0700 +@@ -50,6 +50,7 @@ + BytesPerScanline, /* bytes per scanline in output raster */ + ColorMapSize, /* number of colors */ + Background, /* background color */ ++ Transparent, /* transparent color (GRR 19980314) */ + CodeSize, /* Code size, read from GIF header */ + InitCodeSize, /* Starting code size, used during Clear */ + Code, /* Value returned by ReadCode */ +@@ -111,16 +112,20 @@ + + register byte ch, *origptr; + register int i, block; +- int aspect, gotimage; ++ int aspect; ++ char tmpname[256]; ++ byte r[256], g[256], b[256]; + + /* initialize variables */ +- BitOffset = XC = YC = OutCount = gotimage = 0; ++ BitOffset = XC = YC = OutCount = 0; + Pass = -1; + RawGIF = Raster = pic8 = NULL; + gif89 = 0; ++ Transparent = -1; + + pinfo->pic = (byte *) NULL; + pinfo->comment = (char *) NULL; ++ pinfo->numpages= 0; + + bname = BaseName(fname); + fp = xv_fopen(fname,"r"); +@@ -145,7 +150,7 @@ + + if (fread(dataptr, (size_t) filesize, (size_t) 1, fp) != 1) + return( gifError(pinfo, "GIF data read failed") ); +- ++ fclose(fp); + + origptr = dataptr; + +@@ -161,6 +166,7 @@ + RWidth = ch + 0x100 * NEXTBYTE; /* screen dimensions... not used. */ + ch = NEXTBYTE; + RHeight = ch + 0x100 * NEXTBYTE; ++ if (DEBUG) fprintf(stderr,"GIF89 logical screen = %d x %d\n",RWidth,RHeight); + + ch = NEXTBYTE; + HasColormap = ((ch & COLORMAPMASK) ? True : False); +@@ -176,6 +182,8 @@ + if (!gif89) return(gifError(pinfo,"corrupt GIF file (screen descriptor)")); + else normaspect = (float) (aspect + 15) / 64.0; /* gif89 aspect ratio */ + if (DEBUG) fprintf(stderr,"GIF89 aspect = %f\n", normaspect); ++ /* FIXME: apparently this _should_ apply to all frames in a multi-image ++ * GIF (i.e., PgUp/PgDn), but it doesn't */ + } + + +@@ -183,20 +191,23 @@ + + if (HasColormap) + for (i=0; ir[i] = NEXTBYTE; +- pinfo->g[i] = NEXTBYTE; +- pinfo->b[i] = NEXTBYTE; ++ r[i] = NEXTBYTE; ++ g[i] = NEXTBYTE; ++ b[i] = NEXTBYTE; + } + else { /* no colormap in GIF file */ + /* put std EGA palette (repeated 16 times) into colormap, for lack of + anything better to do */ + + for (i=0; i<256; i++) { +- pinfo->r[i] = EGApalette[i&15][0]; +- pinfo->g[i] = EGApalette[i&15][1]; +- pinfo->b[i] = EGApalette[i&15][2]; ++ r[i] = EGApalette[i&15][0]; ++ g[i] = EGApalette[i&15][1]; ++ b[i] = EGApalette[i&15][2]; + } + } ++ memcpy(pinfo->r, r, sizeof r); ++ memcpy(pinfo->g, g, sizeof g); ++ memcpy(pinfo->b, b, sizeof b); + + /* possible things at this point are: + * an application extension block +@@ -334,12 +345,28 @@ + if (DEBUG) fprintf(stderr,"Graphic Control extension\n\n"); + + SetISTR(ISTR_INFO, "%s: %s", bname, +- "Graphic Control Extension in GIF file. Ignored."); ++ "Graphic Control Extension ignored."); + +- /* read (and ignore) data sub-blocks */ ++ /* read (and ignore) data sub-blocks, unless compositing with ++ * user-defined background */ + do { +- j = 0; sbsize = NEXTBYTE; +- while (jnumpages+1); + if (DEBUG) fprintf(stderr," at start: offset=0x%x\n",dataptr-RawGIF); + +- if (gotimage) { /* just skip over remaining images */ +- int i,misc,ch,ch1; ++ BitOffset = XC = YC = Pass = OutCount = 0; + +- /* skip image header */ +- SKIPBYTE; SKIPBYTE; /* left position */ +- SKIPBYTE; SKIPBYTE; /* top position */ +- SKIPBYTE; SKIPBYTE; /* width */ +- SKIPBYTE; SKIPBYTE; /* height */ +- misc = NEXTBYTE; /* misc. bits */ +- +- if (misc & 0x80) { /* image has local colormap. skip it */ +- for (i=0; i< 1 << ((misc&7)+1); i++) { +- SKIPBYTE; SKIPBYTE; SKIPBYTE; ++ if (pinfo->numpages > 0) { /* do multipage stuff */ ++ if (pinfo->numpages == 1) { /* first time only... */ ++ xv_mktemp(pinfo->pagebname, "xvpgXXXXXX"); ++ if (pinfo->pagebname[0] == '\0') { ++ ErrPopUp("LoadGIF: Unable to create temporary filename???", ++ "\nHow unlikely!"); ++ return 0; + } + } +- +- SKIPBYTE; /* minimum code size */ +- +- /* skip image data sub-blocks */ +- do { +- ch = ch1 = NEXTBYTE; +- while (ch--) SKIPBYTE; +- if ((dataptr - RawGIF) > filesize) break; /* EOF */ +- } while(ch1); ++ sprintf(tmpname, "%s%d", pinfo->pagebname, pinfo->numpages); ++ fp = xv_fopen(tmpname, "w"); ++ if (!fp) { ++ ErrPopUp("LoadGIF: Unable to open temp file", "\nDang!"); ++ return 0; ++ } ++ if (WriteGIF(fp, pinfo->pic, pinfo->type, pinfo->w, pinfo->h, pinfo->r, ++ pinfo->g, pinfo->b, numcols, pinfo->colType, NULL)) { ++ fclose(fp); ++ ErrPopUp("LoadGIF: Error writing temp file", "\nBummer!"); ++ return 0; ++ } ++ fclose(fp); ++ free(pinfo->pic); ++ pinfo->pic = (byte *) NULL; ++ if (HasColormap) { ++ memcpy(pinfo->r, r, sizeof r); ++ memcpy(pinfo->g, g, sizeof g); ++ memcpy(pinfo->b, b, sizeof b); ++ } + } +- +- else if (readImage(pinfo)) gotimage = 1; ++ if (readImage(pinfo)) pinfo->numpages++; + if (DEBUG) fprintf(stderr," at end: dataptr=0x%x\n",dataptr-RawGIF); + } + +@@ -425,7 +458,7 @@ + sprintf(str, "Unknown block type (0x%02x) at offset 0x%x", + block, (dataptr - origptr) - 1); + +- if (!gotimage) return gifError(pinfo, str); ++ if (!pinfo->numpages) return gifError(pinfo, str); + else gifWarning(str); + } + +@@ -438,8 +471,34 @@ + free(RawGIF); RawGIF = NULL; + free(Raster); Raster = NULL; + +- if (!gotimage) ++ if (!pinfo->numpages) + return( gifError(pinfo, "no image data found in GIF file") ); ++ if (pinfo->numpages > 1) { ++ /* write the last page temp file */ ++ int numpages = pinfo->numpages; ++ char *comment = pinfo->comment; ++ sprintf(tmpname, "%s%d", pinfo->pagebname, pinfo->numpages); ++ fp = xv_fopen(tmpname, "w"); ++ if (!fp) { ++ ErrPopUp("LoadGIF: Unable to open temp file", "\nDang!"); ++ return 0; ++ } ++ if (WriteGIF(fp, pinfo->pic, pinfo->type, pinfo->w, pinfo->h, pinfo->r, ++ pinfo->g, pinfo->b, numcols, pinfo->colType, NULL)) { ++ fclose(fp); ++ ErrPopUp("LoadGIF: Error writing temp file", "\nBummer!"); ++ return 0; ++ } ++ fclose(fp); ++ free(pinfo->pic); ++ pinfo->pic = (byte *) NULL; ++ ++ /* load the first page temp file */ ++ sprintf(tmpname, "%s%d", pinfo->pagebname, 1); ++ i = LoadGIF(tmpname, pinfo); ++ pinfo->numpages = numpages; ++ pinfo->comment = comment; ++ } + + return 1; + } +@@ -484,6 +543,17 @@ + } + + ++ /* GRR 19980314 */ ++ /* need not worry about size of EGA palette: full 256 colors */ ++ if (have_imagebg && Transparent >= 0 && ++ Transparent < ((Misc&0x80)? (1 << ((Misc&7)+1)) : ColorMapSize) ) ++ { ++ pinfo->r[Transparent] = (imagebgR >> 8); ++ pinfo->g[Transparent] = (imagebgG >> 8); ++ pinfo->b[Transparent] = (imagebgB >> 8); ++ } ++ ++ + + /* Start reading the raster data. First we get the intial code size + * and compute decompressor constant values, based on this code size. +@@ -540,7 +610,7 @@ + return( gifError(pinfo, "image dimensions out of range") ); + picptr = pic8 = (byte *) malloc((size_t) maxpixels); + if (!pic8) FatalError("LoadGIF: couldn't malloc 'pic8'"); +- ++ + + + /* Decompress the file, continuing until you see the GIF EOF code. +@@ -642,11 +712,10 @@ + SetISTR(ISTR_WARNING,"%s: %s", bname, + "This GIF file seems to be truncated. Winging it."); + if (!Interlace) /* clear->EOBuffer */ +- xvbzero((char *) pic8+npixels, (size_t) (maxpixels-npixels)); ++ xvbzero((char *) pic8+npixels, ++ (size_t) (maxpixels-npixels<0 ? 0 : maxpixels-npixels)); + } + +- fclose(fp); +- + /* fill in the PICINFO structure */ + + pinfo->pic = pic8; +diff -ruN xv-3.10a-bugfixes/xvgrab.c xv-3.10a-enhancements/xvgrab.c +--- xv-3.10a-bugfixes/xvgrab.c 2004-05-16 18:03:30.000000000 -0700 ++++ xv-3.10a-enhancements/xvgrab.c 2005-04-25 23:39:32.000000000 -0700 +@@ -14,6 +14,13 @@ + #define NEEDSTIME + #include "xv.h" + ++/* Allow flexibility in use of buttons JPD */ ++#define WINDOWGRABMASK Button1Mask /* JPD prefers Button2Mask */ ++#define RECTGTRACKMASK Button2Mask /* JPD prefers Button1Mask*/ ++#define CANCELGRABMASK Button3Mask ++ ++#define DO_GRABFLASH /* JPD prefers not to do that; just a loss of time ... */ ++ + + union swapun { + CARD32 l; +@@ -69,12 +76,15 @@ + 0 if cancelled */ + + int i, x, y, x1, y1, x2, y2, ix, iy, iw, ih, rv; +- int rx, ry, pretendGotB1, autograb; ++ int rx, ry, GotButton, autograb; ++ int cancelled = 0; + Window rW, cW, clickWin; + unsigned int mask; ++#ifdef RECOLOR_GRAB_CURSOR + XColor fc, bc; ++#endif + +- pretendGotB1 = 0; ++ GotButton = 0; + + if (grabInProgress) return 0; /* avoid recursive grabs during delay */ + +@@ -122,15 +132,23 @@ + free(grabPic); grabPic = (byte *) NULL; + } + +- ++ /* recolor cursor to indicate that grabbing is active? */ ++ /* Instead, change cursor JPD */ ++#ifdef RECOLOR_GRAB_CURSOR + fc.flags = bc.flags = DoRed | DoGreen | DoBlue; + fc.red = fc.green = fc.blue = 0xffff; + bc.red = bc.green = bc.blue = 0x0000; + XRecolorCursor(theDisp, tcross, &fc, &bc); ++#endif + + + XBell(theDisp, 0); /* beep once at start of grab */ + ++ /* Change cursor to top_left_corner JPD */ ++ XGrabPointer(theDisp, rootW, False, ++ PointerMotionMask|ButtonPressMask|ButtonReleaseMask, ++ GrabModeAsync, GrabModeAsync, None, tlcorner, CurrentTime); ++ + if (!autograb) XGrabButton(theDisp, (u_int) AnyButton, 0, rootW, False, 0, + GrabModeAsync, GrabModeSync, None, tcross); + +@@ -142,7 +160,7 @@ + rv = 0; + goto exit; + } +- else { pretendGotB1 = 1; mask = Button1Mask; } ++ else { GotButton = 1; mask = WINDOWGRABMASK; } + } + + else { /* !autograb */ +@@ -170,16 +188,20 @@ + } + } + ++ XUngrabPointer(theDisp, CurrentTime); ++ /* Reset cursor to XC_tcross JPD */ ++ XGrabPointer(theDisp, rootW, False, ++ PointerMotionMask|ButtonPressMask|ButtonReleaseMask, ++ GrabModeAsync, GrabModeAsync, None, tcross, CurrentTime); + + /*** + *** got button click (or pretending we did, if autograb) + ***/ + +- +- if (mask & Button3Mask || rW!=rootW) { /* Button3: CANCEL GRAB */ ++ if (mask & CANCELGRABMASK || rW!=rootW) { /* CANCEL GRAB */ + while (1) { /* wait for button to be released */ + if (XQueryPointer(theDisp,rootW,&rW,&cW,&rx,&ry,&x1,&y1,&mask)) { +- if (!(mask & Button3Mask)) break; ++ if (!(mask & CANCELGRABMASK)) break; + } + } + +@@ -187,19 +209,21 @@ + XBell(theDisp, 0); + XBell(theDisp, 0); + rv = 0; ++ cancelled = 1; + goto exit; + } + + +- +- if (mask & Button1Mask) { /* Button1: GRAB WINDOW (& FRAME, maybe) */ +- while (!pretendGotB1) { /* wait for button to be released, if clicked */ ++ if (mask & WINDOWGRABMASK) { /* GRAB WINDOW (& FRAME, maybe) */ ++ while (!GotButton) { /* wait for button to be released, if clicked */ + int rx,ry,x1,y1; Window rW, cW; + if (XQueryPointer(theDisp,rootW,&rW,&cW,&rx,&ry,&x1,&y1,&mask)) { +- if (!(mask & Button1Mask)) break; ++ if (!(mask & WINDOWGRABMASK)) break; + } + } + ++ grabwin: ++ + clickWin = (cW) ? cW : rootW; + + if (clickWin == rootW) { /* grab entire screen */ +@@ -223,7 +247,6 @@ + } + } + +- + /* range checking: keep rectangle fully on-screen */ + if (ix<0) { iw += ix; ix = 0; } + if (iy<0) { ih += iy; iy = 0; } +@@ -244,8 +267,7 @@ + endflash(); + } + +- +- else { /* Button2: TRACK A RECTANGLE */ ++ else { /* TRACK A RECTANGLE */ + int origrx, origry; + + clickWin = rootW; +@@ -259,7 +281,7 @@ + /* Wait for button release while tracking rectangle on screen */ + while (1) { + if (XQueryPointer(theDisp,rootW,&rW,&cW,&rx,&ry,&x,&y,&mask)) { +- if (!(mask & Button2Mask)) break; ++ if (!(mask & RECTGTRACKMASK)) break; + } + + flashrect(ix, iy, iw, ih, 0); /* turn off rect */ +@@ -276,6 +298,7 @@ + + flashrect(ix, iy, iw, ih, 0); /* turn off rect */ + ++#ifdef DO_GRABFLASH + /* flash the rectangle a bit... */ + for (i=0; i<5; i++) { + flashrect(ix, iy, iw, ih, 1); +@@ -283,13 +306,26 @@ + flashrect(ix, iy, iw, ih, 0); + XFlush(theDisp); Timer(100); + } ++#endif ++ + endflash(); + ++ /* if rectangle has zero width or height, search for child window JPD */ ++ if (iw==0 && ih==0) { ++ int xr, yr; ++ Window childW = 0; ++ if (rW && cW) ++ XTranslateCoordinates(theDisp, rW, cW, rx, ry, &xr, &yr, &childW); ++ if (childW) ++ cW = childW; ++ goto grabwin; ++ } ++ + XUngrabServer(theDisp); + } + +- + /*** ++ *** now that clickWin,ix,iy,iw,ih are known, try to grab the bits : + *** grab screen area (ix,iy,iw,ih) + ***/ + +@@ -303,9 +339,16 @@ + + SetCursors(-1); + +- + exit: + ++ XUngrabPointer(theDisp, CurrentTime); ++ XUngrabServer(theDisp); ++ ++ if (startGrab) { ++ startGrab = 0; ++ if (cancelled) Quit(0); ++ } ++ + if (hidewins) { /* remap XV windows */ + autoclose += 2; /* force it on once */ + if (mainW && dispMode == RMB_WINDOW) { +@@ -1217,7 +1260,3 @@ + + return 1; + } +- +- +- +- +diff -ruN xv-3.10a-bugfixes/xvhips.c xv-3.10a-enhancements/xvhips.c +--- xv-3.10a-bugfixes/xvhips.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvhips.c 2005-04-30 23:49:14.000000000 -0700 +@@ -0,0 +1,406 @@ ++/* ++ * xvhips.c - load routine for 'HIPS' format pictures ++ * ++ * LoadHIPS(fname, numcols) ++ */ ++ ++/* ++ * Copyright 1989, 1990 by the University of Pennsylvania ++ * ++ * Permission to use, copy, and distribute for non-commercial purposes, ++ * is hereby granted without fee, providing that the above copyright ++ * notice appear in all copies and that both the copyright notice and this ++ * permission notice appear in supporting documentation. ++ * ++ * The software may be modified for your own purposes, but modified versions ++ * may not be distributed. ++ * ++ * This software is provided "as is" without any express or implied warranty. ++ */ ++ ++#include "xv.h" ++ ++#ifdef HAVE_HIPS ++ ++#define Boolean FREDDIE ++#include "xvhips.h" ++#undef Boolean ++ ++#include ++ ++#define LINES 100 ++#define LINELENGTH 132 ++ ++static int fread_header(int fd, struct header *hd); ++static char *getline(int fd, char **s, int *l); ++static int dfscanf(int fd); ++static void make_grayscale(char *r, char *g, char *b); ++static float hls_value (float n1, float n2, float hue); ++static void hls_to_rgb(float h, float l, float s, ++ float *r, float *g, float *b); ++static void make_huescale(char *r, char *g, char *b); ++static void make_heatscale(char *r, char *g, char *b); ++static int load_colourmap(char *filestem, int max_colours, ++ char *r, char *g, char *b); ++ ++/************************************************************************ ++ * ++ * Read Header routines ++ * ++ ************************************************************************/ ++ ++static char *ssave[LINES]; ++static int slmax[LINES]; ++static int lalloc = 0; ++//extern char *calloc(); ++ ++ ++ ++static int fread_header(fd, hd) ++ int fd; ++ struct header *hd; ++{ ++ int lineno, len, i; ++ char *s; ++ ++/*fprintf(stderr,"fread_header: entered\n");*/ ++ if(lalloc<1) { ++ ssave[0] = calloc(LINELENGTH, sizeof (char)); ++ slmax[0] = LINELENGTH; ++ lalloc = 1; ++ } ++/*fprintf(stderr,"fread_header: ssave allocated\n");*/ ++ getline(fd,&ssave[0],&slmax[0]); ++ hd->orig_name = calloc(strlen(ssave[0])+1, sizeof (char)); ++ strcpy(hd->orig_name,ssave[0]); ++ getline(fd,&ssave[0],&slmax[0]); ++ hd->seq_name = calloc(strlen(ssave[0])+1, sizeof (char)); ++ strcpy(hd->seq_name,ssave[0]); ++ hd->num_frame = dfscanf(fd); ++ getline(fd,&ssave[0],&slmax[0]); ++ hd->orig_date = calloc(strlen(ssave[0])+1, sizeof (char)); ++ strcpy(hd->orig_date,ssave[0]); ++ hd->rows = dfscanf(fd); ++ hd->cols = dfscanf(fd); ++ hd->bits_per_pixel = dfscanf(fd); ++ hd->bit_packing = dfscanf(fd); ++ hd->pixel_format = dfscanf(fd); ++ lineno = 0; ++ len = 1; ++ getline(fd,&ssave[0],&slmax[0]); ++ s = ssave[0]; ++ while(*(s += strlen(s)-3) == '|') { ++ len += strlen(ssave[lineno]); ++ lineno++; ++ if (lineno >= LINES) ++ fprintf(stderr, "Too many lines in header history"); ++ if(lineno >= lalloc) { ++ ssave[lineno] = calloc(LINELENGTH, sizeof (char)); ++ slmax[lineno] = LINELENGTH; ++ lalloc++; ++ } ++ getline(fd,&ssave[lineno],&slmax[lineno]); ++ s = ssave[lineno]; ++ } ++ len += strlen(ssave[lineno]); ++ hd->seq_history = calloc(len, sizeof (char)); ++ hd->seq_history[0] = '\0'; ++ for (i=0;i<=lineno;i++) ++ strcat(hd->seq_history,ssave[i]); ++ lineno = 0; ++ len = 1; ++ while(strcmp(getline(fd,&ssave[lineno],&slmax[lineno]),".\n")) { ++ len += strlen(ssave[lineno]); ++ lineno++; ++ if (lineno >= LINES) ++ fprintf(stderr, "Too many lines in header desc."); ++ if(lineno >= lalloc) { ++ ssave[lineno] = calloc(LINELENGTH, sizeof (char)); ++ slmax[lineno] = LINELENGTH; ++ lalloc++; ++ } ++ } ++ hd->seq_desc = calloc(len, sizeof (char)); ++ *hd->seq_desc = '\0'; ++ for (i=0;iseq_desc,ssave[i]); ++/*fprintf(stderr,"fread_header: exiting\n");*/ ++ return 0; ++} ++ ++ ++ ++static char *getline(fd,s,l) ++ int fd; ++ char **s; ++ int *l; ++{ ++ int i,m; ++ char c,*s1,*s2; ++ ++ i = 0; ++ s1 = *s; ++ m = *l; ++ while(read(fd,&c,1) == 1 && c != '\n') { ++ if (m-- <= 2) { ++ s2 = calloc(LINELENGTH+*l,sizeof (char)); ++ strcpy(s2,*s); ++ *s = s2; ++ *l += LINELENGTH; ++ m = LINELENGTH; ++ s1 = s2 + strlen(s2); ++ } ++ *s1++ = c; ++ } ++ if (c == '\n') { ++ *s1++ = '\n'; ++ *s1 = '\0'; ++ return *s; ++ } ++ fprintf(stderr, "Unexpected EOF while reading header."); ++ return NULL; ++} ++ ++ ++ ++static int dfscanf(fd) ++ int fd; ++{ ++ int i; ++ ++ getline(fd,&ssave[0],&slmax[0]); ++ sscanf(ssave[0],"%d",&i); ++ return(i); ++} ++ ++ ++ ++/*******************************************/ ++int LoadHIPS(fname,pinfo) ++ char *fname; ++ PICINFO * pinfo; ++/*******************************************/ ++{ ++ FILE *fp; ++ struct header h; ++ char * pic; ++ ++ /* open the stream, if necesary */ ++ fp=fopen(fname,"r"); ++ if (!fp) return 0; ++ ++ if (!fread_header(fileno(fp), &h)) { ++ SetISTR(ISTR_WARNING,"Can't read HIPS header"); ++ return 0; ++ } ++ ++ pinfo->w = h.cols; ++ pinfo->h = h.rows; ++ pic = pinfo->pic = (byte *) malloc(h.rows * h.cols); // GRR POSSIBLE OVERFLOW / FIXME ++ if (!pic) FatalError("couldn't malloc HIPS file"); ++ ++ if (!fread(pic, 1, h.cols*h.rows, fp)) { ++ SetISTR(ISTR_WARNING,"Error reading HIPS data.\n"); ++ return 0; ++ } ++ fclose (fp); ++ ++ pinfo->frmType = F_SUNRAS; ++ pinfo->colType = F_FULLCOLOR; ++ sprintf(pinfo->fullInfo, "HIPS file (%d bytes)", h.cols*h.rows); ++ sprintf(pinfo->shrtInfo, "HIPS file."); ++ pinfo->comment = (char *) NULL; ++ ++ { ++ char cmapname[256]; ++ /* Check header for colormap spec */ ++ char * s = h.seq_desc - 1; ++ char * cmaptag = "+COLORMAP"; ++ int sl = strlen(cmaptag); ++ cmapname[0] = 0; ++ while (*++s) ++ if (*s == '+') ++ if (strncmp(s, cmaptag, sl) == 0) { ++ char * p = s + sl; ++ while (*p && (*p == ' ' || *p == '\n' || *p == '\t')) p++; ++ sscanf(p, "%s", cmapname); ++ SetISTR(ISTR_INFO, cmapname); ++ fprintf(stderr, "Colormap = [%s]\n", cmapname); ++ } ++ ++ if (strcmp(cmapname, "gray") == 0 || strcmp(cmapname, "grey") == 0) ++ make_grayscale(pinfo->r, pinfo->g, pinfo->b); ++ else if (strcmp(cmapname, "heat") == 0) ++ make_heatscale(pinfo->r, pinfo->g, pinfo->b); ++ else if (strcmp(cmapname, "hues") == 0) ++ make_huescale(pinfo->r, pinfo->g, pinfo->b); ++ else if (!cmapname[0] || !load_colourmap(cmapname, 256, pinfo->r, pinfo->g, pinfo->b)) ++ make_grayscale(pinfo->r, pinfo->g, pinfo->b); ++ sprintf(pinfo->fullInfo, "HIPS file (%d x %d), Colormap = [%s]", h.cols, h.rows, cmapname); ++ } ++ ++ return 1; ++} ++ ++ ++ ++static void make_grayscale(char * r, char * g, char * b) ++{ ++ int i; ++ /* default grayscale colors */ ++ r[0] = 40; g[0] = 150; b[0] = 100; /* "green4" background */ ++ for(i = 1; i < 256; i++) ++ r[i] = g[i] = b[i] = i; ++} ++ ++ ++ ++static float hls_value (n1, n2, hue) ++ float n1,n2,hue; ++{ ++ if (hue>360.0) ++ hue-=360.0 ; ++ else if (hue<0.0) ++ hue+=360.0 ; ++ ++ if (hue<60.0) ++ return( n1+(n2-n1)*hue/60.0 ) ; ++ else if (hue<180.0) ++ return ( n2 ) ; ++ else if (hue<240.0) ++ return ( n1+(n2-n1)*(240.0-hue)/60.0 ) ; ++ else ++ return (n1) ; ++} ++ ++ ++ ++static void hls_to_rgb(h,l,s, r,g,b) ++ float h, l, s; ++ float *r, *g, *b; ++{ ++ static float m1, m2 ; ++ ++ if (l<=0.5) ++ m2=l*(1+s) ; ++ else ++ m2=l+s-l*s ; ++ m1=2.0*l-m2 ; ++ if (s==0.0) *r=*g=*b=l ; ++ else { ++ *r=hls_value(m1,m2,h+120.0) ; ++ *g=hls_value(m1,m2,h) ; ++ *b=hls_value(m1,m2,h-120.0) ; ++ } ++ ++} ++ ++ ++ ++static void make_huescale(char * r, char * g, char * b) ++{ ++ int j; ++ r[0] = g[0] = b[0] = 0; ++ for (j = 1; j<256; j++) ++ { ++ float fr, fg, fb; ++ hls_to_rgb((double)(256.0-j)*360.0/256.0, 0.5, 1.0, &fr, &fg, &fb); ++ r[j] = rint(255*fr); ++ g[j] = rint(255*fg); ++ b[j] = rint(255*fb); ++ } ++} ++ ++ ++ ++static void make_heatscale(char * r, char * g, char * b) ++{ ++ int j; ++ r[0] = g[0] = b[0] = 0; ++ for (j = 1; j<256; j++) ++ { ++ if(j<255/2) ++ r[j] = j*255/(255/2-1); ++ else ++ r[j]=255; ++ if (j>=255/2+255/3) ++ g[j] = 255; ++ else if (j>255/3) ++ g[j] = (j-255/3)*255/(255/2-1); ++ else ++ g[j] = 0; ++ if (j>255/2) ++ b[j] = (j-255/2)*255/(255-255/2-1); ++ else ++ b[j] = 0; ++ } ++} ++ ++ ++ ++static int load_colourmap(char *filestem, int max_colours, ++ char *r, char *g, char *b) ++{ ++ FILE * fp; ++ int numread=0; ++ char * filename; ++ char str[200]; ++ int num_colors; ++ /* ++ * Look for palette file in local directory ++ */ ++ ++ filename = (char*)alloca(strlen(filestem) + 5); ++ strcpy(filename, filestem); ++ strcat(filename, ".PAL"); /* Add the PAL suffix to the name specified */ ++ fp = fopen(filename,"r"); ++ if (!fp) { ++ /* ++ * If not found, try in $IM2HOME/etc/palettes ++ */ ++ char * im2home = (char*)getenv("IM2HOME"); ++ char * palette_subdirectory = "etc/palettes"; ++ char * fullfilename; ++ if (!im2home) ++ { ++ im2home = "/home/jewel/imagine2"; ++ fprintf(stderr,"IM2HOME environment variable not set -- using [%s]\n",im2home); ++ } ++ fullfilename = alloca(strlen(im2home)+strlen(palette_subdirectory)+strlen(filename)+5); ++ sprintf(fullfilename, "%s/%s/%s",im2home,palette_subdirectory,filename); ++ fp = fopen(fullfilename,"r"); ++ if (!fp) ++ { ++ fprintf(stderr,"Couldn't find any palette file -- looked for [%s] and [%s].\n", ++ filename,fullfilename); ++ perror("Last system error message was"); ++ return 0; ++ } ++ } ++ ++ strcpy(str,"(null)"); ++ if (!fscanf(fp,"%s\n",str) || strncmp(str,"Palette",7) != 0) { ++ fprintf(stderr,"error: First line of palette file should be `Palette', not [%s]\n", str); ++ return 0; ++ } ++ ++ fscanf(fp,"%[^\n]",str) ; /* Scan to end of line */ ++ fscanf (fp,"%d",&num_colors);/* Read the number of colours in the file */ ++ fgets(str,120,fp) ; /* Skip the text description, and general info lines */ ++ fgets(str,120,fp) ; ++ ++ while ((numread (B) ? (A) : (B)) ++#endif /* MAX */ ++#ifndef MIN ++# define MIN(A,B) ((A) < (B) ? (A) : (B)) ++#endif /* MIN */ ++#ifndef ABS ++# define ABS(A) ((A) > 0 ? (A) : (-(A))) ++#endif /* ABS */ ++#ifndef BETWEEN ++# define BETWEEN(A,B,C) (((A) < (B)) ? (B) : (((A) > (C)) ? (C) : (A))) ++#endif /* BETWEEN */ ++#ifndef SIGN ++# define SIGN(A,B) (((B) > 0) ? (A) : (-(A))) ++#endif /* SIGN */ +diff -ruN xv-3.10a-bugfixes/xvimage.c xv-3.10a-enhancements/xvimage.c +--- xv-3.10a-bugfixes/xvimage.c 2005-03-31 07:23:39.000000000 -0800 ++++ xv-3.10a-enhancements/xvimage.c 2005-04-17 23:00:10.000000000 -0700 +@@ -21,6 +21,16 @@ + * int LoadPad(pinfo, fname); + */ + ++/* The following switch should better be provided at runtime for ++ * comparison purposes. ++ * At the moment it's only compile time, unfortunately. ++ * Who can make adaptions for use as a runtime switch by a menu option? ++ * [GRR 19980607: now via do_fixpix_smooth global; macro renamed to ENABLE_] ++ * [see http://sylvana.net/fixpix/ for home page, further info] ++ */ ++/* #define ENABLE_FIXPIX_SMOOTH */ /* GRR 19980607: moved into xv.h */ ++ ++#define NEEDSDIR /* for S_IRUSR|S_IWUSR */ + #include "copyright.h" + + #include "xv.h" +@@ -36,7 +46,9 @@ + static int doAutoCrop24 PARM((void)); + static void floydDitherize1 PARM((XImage *, byte *, int, int, int, + byte *, byte *,byte *)); ++#if 0 /* NOTUSED */ + static int highbit PARM((unsigned long)); ++#endif + + static int doPadSolid PARM((char *, int, int, int, int)); + static int doPadBggen PARM((char *, int, int, int, int)); +@@ -46,6 +58,267 @@ + static int ReadImageFile1 PARM((char *, PICINFO *)); + + ++/* The following array represents the pixel values for each shade ++ * of the primary color components. ++ * If 'p' is a pointer to a source image rgb-byte-triplet, we can ++ * construct the output pixel value simply by 'oring' together ++ * the corresponding components: ++ * ++ * unsigned char *p; ++ * unsigned long pixval; ++ * ++ * pixval = screen_rgb[0][*p++]; ++ * pixval |= screen_rgb[1][*p++]; ++ * pixval |= screen_rgb[2][*p++]; ++ * ++ * This is both efficient and generic, since the only assumption ++ * is that the primary color components have separate bits. ++ * The order and distribution of bits does not matter, and we ++ * don't need additional variables and shifting/masking code. ++ * The array size is 3 KBytes total and thus very reasonable. ++ */ ++ ++static unsigned long screen_rgb[3][256]; ++ ++/* The following array holds the exact color representations ++ * reported by the system. ++ * This is useful for less than 24 bit deep displays as a base ++ * for additional dithering to get smoother output. ++ */ ++ ++static byte screen_set[3][256]; ++ ++/* The following routine initializes the screen_rgb and screen_set ++ * arrays. ++ * Since it is executed only once per program run, it does not need ++ * to be super-efficient. ++ * ++ * The method is to draw points in a pixmap with the specified shades ++ * of primary colors and then get the corresponding XImage pixel ++ * representation. ++ * Thus we can get away with any Bit-order/Byte-order dependencies. ++ * ++ * The routine uses some global X variables: theDisp, theScreen, ++ * and dispDEEP. Adapt these to your application as necessary. ++ * I've not passed them in as parameters, since for other platforms ++ * than X these may be different (see vfixpix.c), and so the ++ * screen_init() interface is unique. ++ * ++ * BUG: I've read in the "Xlib Programming Manual" from O'Reilly & ++ * Associates, that the DefaultColormap in TrueColor might not ++ * provide the full shade representation in XAllocColor. ++ * In this case one had to provide a 'best' colormap instead. ++ * However, my tests with Xaccel on a Linux-Box with a Mach64 ++ * card were fully successful, so I leave that potential problem ++ * to you at the moment and would appreciate any suggestions... ++ */ ++ ++static void screen_init() ++{ ++ static int init_flag; /* assume auto-init as 0 */ ++ Pixmap check_map; ++ GC check_gc; ++ XColor check_col; ++ XImage *check_image; ++ int ci, i; ++ ++ if (init_flag) return; ++ init_flag = 1; ++ ++ check_map = XCreatePixmap(theDisp, RootWindow(theDisp,theScreen), ++ 1, 1, dispDEEP); ++ check_gc = XCreateGC(theDisp, check_map, 0, NULL); ++ for (ci = 0; ci < 3; ci++) { ++ for (i = 0; i < 256; i++) { ++ check_col.red = 0; ++ check_col.green = 0; ++ check_col.blue = 0; ++ /* Do proper upscaling from unsigned 8 bit (image data values) ++ to unsigned 16 bit (X color representation). */ ++ ((unsigned short *)&check_col.red)[ci] = (unsigned short)((i << 8) | i); ++ if (theVisual->class == TrueColor) ++ XAllocColor(theDisp, theCmap, &check_col); ++ else ++ xvAllocColor(theDisp, theCmap, &check_col); ++ screen_set[ci][i] = ++ (((unsigned short *)&check_col.red)[ci] >> 8) & 0xff; ++ XSetForeground(theDisp, check_gc, check_col.pixel); ++ XDrawPoint(theDisp, check_map, check_gc, 0, 0); ++ check_image = XGetImage(theDisp, check_map, 0, 0, 1, 1, ++ AllPlanes, ZPixmap); ++ if (check_image) { ++ switch (check_image->bits_per_pixel) { ++ case 8: ++ screen_rgb[ci][i] = *(CARD8 *)check_image->data; ++ break; ++ case 16: ++ screen_rgb[ci][i] = *(CARD16 *)check_image->data; ++ break; ++ case 24: ++ screen_rgb[ci][i] = ++ ((unsigned long)*(CARD8 *)check_image->data << 16) | ++ ((unsigned long)*(CARD8 *)(check_image->data + 1) << 8) | ++ (unsigned long)*(CARD8 *)(check_image->data + 2); ++ break; ++ case 32: ++ screen_rgb[ci][i] = *(CARD32 *)check_image->data; ++ break; ++ } ++ XDestroyImage(check_image); ++ } ++ } ++ } ++ XFreeGC(theDisp, check_gc); ++ XFreePixmap(theDisp, check_map); ++} ++ ++ ++#ifdef ENABLE_FIXPIX_SMOOTH ++ ++/* The following code is based in part on: ++ * ++ * jquant1.c ++ * ++ * Copyright (C) 1991-1996, Thomas G. Lane. ++ * This file is part of the Independent JPEG Group's software. ++ * For conditions of distribution and use, see the accompanying README file. ++ * ++ * This file contains 1-pass color quantization (color mapping) routines. ++ * These routines provide mapping to a fixed color map using equally spaced ++ * color values. Optional Floyd-Steinberg or ordered dithering is available. ++ */ ++ ++/* Declarations for Floyd-Steinberg dithering. ++ * ++ * Errors are accumulated into the array fserrors[], at a resolution of ++ * 1/16th of a pixel count. The error at a given pixel is propagated ++ * to its not-yet-processed neighbors using the standard F-S fractions, ++ * ... (here) 7/16 ++ * 3/16 5/16 1/16 ++ * We work left-to-right on even rows, right-to-left on odd rows. ++ * ++ * We can get away with a single array (holding one row's worth of errors) ++ * by using it to store the current row's errors at pixel columns not yet ++ * processed, but the next row's errors at columns already processed. We ++ * need only a few extra variables to hold the errors immediately around the ++ * current column. (If we are lucky, those variables are in registers, but ++ * even if not, they're probably cheaper to access than array elements are.) ++ * ++ * We provide (#columns + 2) entries per component; the extra entry at each ++ * end saves us from special-casing the first and last pixels. ++ */ ++ ++typedef INT16 FSERROR; /* 16 bits should be enough */ ++typedef int LOCFSERROR; /* use 'int' for calculation temps */ ++ ++typedef struct { byte *colorset; ++ FSERROR *fserrors; ++ } FSBUF; ++ ++/* Floyd-Steinberg initialization function. ++ * ++ * It is called 'fs2_init' since it's specialized for our purpose and ++ * could be embedded in a more general FS-package. ++ * ++ * Returns a malloced FSBUF pointer which has to be passed as first ++ * parameter to subsequent 'fs2_dither' calls. ++ * The FSBUF structure does not need to be referenced by the calling ++ * application, it can be treated from the app like a void pointer. ++ * ++ * The current implementation does only require to free() this returned ++ * pointer after processing. ++ * ++ * Returns NULL if malloc fails. ++ * ++ * NOTE: The FSBUF structure is designed to allow the 'fs2_dither' ++ * function to work with an *arbitrary* number of color components ++ * at runtime! This is an enhancement over the IJG code base :-). ++ * Only fs2_init() specifies the (maximum) number of components. ++ */ ++ ++static FSBUF *fs2_init(width) ++int width; ++{ ++ FSBUF *fs; ++ FSERROR *p; ++ ++ fs = (FSBUF *) ++ malloc(sizeof(FSBUF) * 3 + ((size_t)width + 2) * sizeof(FSERROR) * 3); ++ if (fs == 0) return fs; ++ ++ fs[0].colorset = screen_set[0]; ++ fs[1].colorset = screen_set[1]; ++ fs[2].colorset = screen_set[2]; ++ ++ p = (FSERROR *)(fs + 3); ++ memset(p, 0, ((size_t)width + 2) * sizeof(FSERROR) * 3); ++ ++ fs[0].fserrors = p; ++ fs[1].fserrors = p + 1; ++ fs[2].fserrors = p + 2; ++ ++ return fs; ++} ++ ++/* Floyd-Steinberg dithering function. ++ * ++ * NOTE: ++ * (1) The image data referenced by 'ptr' is *overwritten* (input *and* ++ * output) to allow more efficient implementation. ++ * (2) Alternate FS dithering is provided by the sign of 'nc'. Pass in ++ * a negative value for right-to-left processing. The return value ++ * provides the right-signed value for subsequent calls! ++ * (3) This particular implementation assumes *no* padding between lines! ++ * Adapt this if necessary. ++ */ ++ ++static int fs2_dither(fs, ptr, nc, num_rows, num_cols) ++FSBUF *fs; ++byte *ptr; ++int nc, num_rows, num_cols; ++{ ++ int abs_nc, ci, row, col; ++ LOCFSERROR delta, cur, belowerr, bpreverr; ++ byte *dataptr, *colsetptr; ++ FSERROR *errorptr; ++ ++ if ((abs_nc = nc) < 0) abs_nc = -abs_nc; ++ for (row = 0; row < num_rows; row++) { ++ for (ci = 0; ci < abs_nc; ci++, ptr++) { ++ dataptr = ptr; ++ colsetptr = fs[ci].colorset; ++ errorptr = fs[ci].fserrors; ++ if (nc < 0) { ++ dataptr += (num_cols - 1) * abs_nc; ++ errorptr += (num_cols + 1) * abs_nc; ++ } ++ cur = belowerr = bpreverr = 0; ++ for (col = 0; col < num_cols; col++) { ++ cur += errorptr[nc]; ++ cur += 8; cur >>= 4; ++ if ((cur += *dataptr) < 0) cur = 0; ++ else if (cur > 255) cur = 255; ++ *dataptr = cur & 0xff; ++ cur -= colsetptr[cur]; ++ delta = cur << 1; cur += delta; ++ bpreverr += cur; cur += delta; ++ belowerr += cur; cur += delta; ++ errorptr[0] = (FSERROR)bpreverr; ++ bpreverr = belowerr; ++ belowerr = delta >> 1; ++ dataptr += nc; ++ errorptr += nc; ++ } ++ errorptr[0] = (FSERROR)bpreverr; ++ } ++ ptr += (num_cols - 1) * abs_nc; ++ nc = -nc; ++ } ++ return nc; ++} ++ ++#endif /* ENABLE_FIXPIX_SMOOTH */ ++ + + #define DO_CROP 0 + #define DO_ZOOM 1 +@@ -1348,7 +1621,7 @@ + SetISTR(ISTR_WARNING, "Invalid image dimensions for dithering"); + return (byte *)NULL; + } +- ++ + outpic = (byte *) malloc((size_t) npixels); + if (!outpic) return outpic; + +@@ -1838,7 +2111,7 @@ + unsigned int wide, high; + { + /* +- * this has to do the none-to-simple bit of converting the data in 'pic24' ++ * This has to do the none-too-simple bit of converting the data in 'pic24' + * into something usable by X. + * + * There are two major approaches: if we're displaying on a TrueColor +@@ -1852,7 +2125,7 @@ + * mode. (In that by this point, a 3/3/2 standard colormap has been + * created for our use (though all 256 colors may not be unique...), and + * we're just going to display the 24-bit picture by dithering with those +- * colors ++ * colors.) + * + */ + +@@ -1890,33 +2163,17 @@ + /* Non-ColorMapped Visuals: TrueColor, DirectColor */ + /************************************************************************/ + +- unsigned long r, g, b, rmask, gmask, bmask, xcol; +- int rshift, gshift, bshift, bperpix, bperline, border, cshift; +- int maplen; ++ unsigned long xcol; ++ int bperpix, bperline; + byte *imagedata, *lip, *ip, *pp; + + +- /* compute various shifting constants that we'll need... */ +- +- rmask = theVisual->red_mask; +- gmask = theVisual->green_mask; +- bmask = theVisual->blue_mask; +- +- rshift = 7 - highbit(rmask); +- gshift = 7 - highbit(gmask); +- bshift = 7 - highbit(bmask); +- +- maplen = theVisual->map_entries; +- if (maplen>256) maplen=256; +- cshift = 7 - highbit((u_long) (maplen-1)); +- + xim = XCreateImage(theDisp, theVisual, dispDEEP, ZPixmap, 0, NULL, + wide, high, 32, 0); + if (!xim) FatalError("couldn't create X image!"); + + bperline = xim->bytes_per_line; + bperpix = xim->bits_per_pixel; +- border = xim->byte_order; + + imagedata = (byte *) malloc((size_t) (high * bperline)); + if (!imagedata) FatalError("couldn't malloc imagedata"); +@@ -1930,85 +2187,141 @@ + FatalError(buf); + } + ++ screen_init(); + +- lip = imagedata; pp = pic24; +- for (i=0; iclass == DirectColor) { +- r = (u_long) directConv[(r>>cshift) & 0xff] << cshift; +- g = (u_long) directConv[(g>>cshift) & 0xff] << cshift; +- b = (u_long) directConv[(b>>cshift) & 0xff] << cshift; +- } +- +- +- /* shift the bits around */ +- if (rshift<0) r = r << (-rshift); +- else r = r >> rshift; +- +- if (gshift<0) g = g << (-gshift); +- else g = g >> gshift; +- +- if (bshift<0) b = b << (-bshift); +- else b = b >> bshift; +- +- r = r & rmask; +- g = g & gmask; +- b = b & bmask; +- +- xcol = r | g | b; +- +- if (bperpix == 32) { +- if (border == MSBFirst) { +- *ip++ = (xcol>>24) & 0xff; +- *ip++ = (xcol>>16) & 0xff; +- *ip++ = (xcol>>8) & 0xff; +- *ip++ = xcol & 0xff; +- } +- else { /* LSBFirst */ +- *ip++ = xcol & 0xff; +- *ip++ = (xcol>>8) & 0xff; +- *ip++ = (xcol>>16) & 0xff; +- *ip++ = (xcol>>24) & 0xff; +- } +- } +- +- else if (bperpix == 24) { +- if (border == MSBFirst) { +- *ip++ = (xcol>>16) & 0xff; +- *ip++ = (xcol>>8) & 0xff; +- *ip++ = xcol & 0xff; +- } +- else { /* LSBFirst */ +- *ip++ = xcol & 0xff; +- *ip++ = (xcol>>8) & 0xff; +- *ip++ = (xcol>>16) & 0xff; +- } +- } ++#ifdef ENABLE_FIXPIX_SMOOTH ++ if (do_fixpix_smooth) { ++#if 0 ++ /* If we wouldn't have to save the original pic24 image data, ++ * the following code would do the dither job by overwriting ++ * the image data, and the normal render code would then work ++ * without any change on that data. ++ * Unfortunately, this approach would hurt the xv assumptions... ++ */ ++ if (bperpix < 24) { ++ FSBUF *fs = fs2_init(wide); ++ if (fs) { ++ fs2_dither(fs, pic24, 3, high, wide); ++ free(fs); ++ } ++ } ++#else ++ /* ...so we have to take a different approach with linewise ++ * dithering/rendering in a loop using a temporary line buffer. ++ */ ++ if (bperpix < 24) { ++ FSBUF *fs = fs2_init(wide); ++ if (fs) { ++ byte *row_buf = malloc((size_t)wide * 3); ++ if (row_buf) { ++ int nc = 3; ++ byte *picp = pic24; lip = imagedata; ++ ++ switch (bperpix) { ++ case 8: ++ for (i=0; i>8) & 0xff; +- *ip++ = xcol & 0xff; +- } +- else { /* LSBFirst */ +- *ip++ = xcol & 0xff; +- *ip++ = (xcol>>8) & 0xff; ++ return xim; + } +- } +- +- else if (bperpix == 8) { +- *ip++ = xcol & 0xff; +- } ++ free(fs); ++ } + } ++#endif /* 0? */ + } ++#endif /* ENABLE_FIXPIX_SMOOTH */ ++ ++ lip = imagedata; pp = pic24; ++ ++ switch (bperpix) { ++ case 8: ++ for (i=0; i>16) & 0xff; ++ *ip++ = (xcol>>8) & 0xff; ++ *ip++ = xcol & 0xff; ++ } ++ else { /* LSBFirst */ ++ *ip++ = xcol & 0xff; ++ *ip++ = (xcol>>8) & 0xff; ++ *ip++ = (xcol>>16) & 0xff; ++ } ++#else /* GRR: this came with the FixPix patch, but I don't think it's right */ ++ *ip++ = (xcol >> 16) & 0xff; /* (no way to test, however, so */ ++ *ip++ = (xcol >> 8) & 0xff; /* it's left enabled by default) */ ++ *ip++ = xcol & 0xff; ++#endif ++ } ++ } ++ break; ++ ++ case 32: ++ for (i=0; i=0; i--, ul<<=1); + return i; + } ++#endif /* 0 - NOTUSED */ + + + +@@ -2680,6 +2995,9 @@ + char *str; + int wide, high, opaque,omode; + { ++#ifndef USE_MKSTEMP ++ int tmpfd; ++#endif + int i; + byte *bgpic24; + char syscmd[512], fname[128], errstr[512]; +@@ -2705,6 +3023,13 @@ + close(mkstemp(fname)); + #else + mktemp(fname); ++ tmpfd = open(fname, O_WRONLY|O_CREAT|O_EXCL,S_IRWUSR); ++ if (tmpfd < 0) { ++ sprintf(errstr, "Error: can't create temporary file %s", fname); ++ ErrPopUp(errstr, "\nDoh!"); ++ return 0; ++ } ++ close(tmpfd); + #endif + + /* run bggen to generate the background */ +@@ -2978,7 +3303,7 @@ + + ftype = ReadFileType(name); + +- if (ftype == RFT_COMPRESS) { /* handle compressed/gzipped files */ ++ if ((ftype == RFT_COMPRESS) || (ftype == RFT_BZIP2)) { /* handle .Z,gz,bz2 */ + #ifdef VMS + basefname[0] = '\0'; + strcpy(basefname, name); /* remove trailing .Z */ +@@ -2988,7 +3313,7 @@ + uncName = name; + #endif + +- if (UncompressFile(uncName, uncompname)) { ++ if (UncompressFile(uncName, uncompname, ftype)) { + ftype = ReadFileType(uncompname); + readname = uncompname; + } +@@ -3029,9 +3354,3 @@ + + return 1; + } +- +- +- +- +- +- +diff -ruN xv-3.10a-bugfixes/xvinfo.c xv-3.10a-enhancements/xvinfo.c +--- xv-3.10a-bugfixes/xvinfo.c 2004-05-16 18:03:43.000000000 -0700 ++++ xv-3.10a-enhancements/xvinfo.c 2005-05-01 00:05:53.000000000 -0700 +@@ -265,7 +265,7 @@ + if (stnum == ISTR_WARNING && !ctrlUp && !infoUp && !anyBrowUp && + strlen(istrs[stnum])) { + OpenAlert(istrs[stnum]); +- sleep(3); ++ sleep(1); /* was 3, but _really_ slow for TIFFs with unknown tags... */ + CloseAlert(); + } + } +diff -ruN xv-3.10a-bugfixes/xvjpeg.c xv-3.10a-enhancements/xvjpeg.c +--- xv-3.10a-bugfixes/xvjpeg.c 2005-03-27 16:23:06.000000000 -0800 ++++ xv-3.10a-enhancements/xvjpeg.c 2005-04-17 14:45:28.000000000 -0700 +@@ -51,11 +51,21 @@ + static void clickJD PARM((int, int)); + static void doCmd PARM((int)); + static void writeJPEG PARM((void)); ++#if JPEG_LIB_VERSION > 60 ++METHODDEF(void) xv_error_exit PARM((j_common_ptr)); ++METHODDEF(void) xv_error_output PARM((j_common_ptr)); ++METHODDEF(void) xv_prog_meter PARM((j_common_ptr)); ++#else + METHODDEF void xv_error_exit PARM((j_common_ptr)); + METHODDEF void xv_error_output PARM((j_common_ptr)); + METHODDEF void xv_prog_meter PARM((j_common_ptr)); ++#endif + static unsigned int j_getc PARM((j_decompress_ptr)); ++#if JPEG_LIB_VERSION > 60 ++METHODDEF(boolean) xv_process_comment PARM((j_decompress_ptr)); ++#else + METHODDEF boolean xv_process_comment PARM((j_decompress_ptr)); ++#endif + static int writeJFIF PARM((FILE *, byte *, int,int,int)); + + +@@ -85,10 +95,10 @@ + + XSelectInput(theDisp, jpegW, ExposureMask | ButtonPressMask | KeyPressMask); + +- DCreate(&qDial, jpegW, 10, 10, 80, 100, 1, 100, 75, 5, ++ DCreate(&qDial, jpegW, 10, 10, 80, 100, 1.0, 100.0, 75.0, 1.0, 5.0, + infofg, infobg, hicol, locol, "Quality", "%"); + +- DCreate(&smDial, jpegW, 120, 10, 80, 100, 0, 100, 0, 5, ++ DCreate(&smDial, jpegW, 120, 10, 80, 100, 0.0, 100.0, 0.0, 1.0, 5.0, + infofg, infobg, hicol, locol, "Smoothing", "%"); + + BTCreate(&jbut[J_BOK], jpegW, JWIDE-180-1, JHIGH-10-BUTTH-1, 80, BUTTH, +@@ -415,7 +425,11 @@ + + + /**************************************************/ +-METHODDEF void xv_error_exit(cinfo) ++#if JPEG_LIB_VERSION > 60 ++METHODDEF(void) xv_error_exit(cinfo) ++#else ++METHODDEF void xv_error_exit(cinfo) ++#endif + j_common_ptr cinfo; + { + my_error_ptr myerr; +@@ -427,7 +441,11 @@ + + + /**************************************************/ +-METHODDEF void xv_error_output(cinfo) ++#if JPEG_LIB_VERSION > 60 ++METHODDEF(void) xv_error_output(cinfo) ++#else ++METHODDEF void xv_error_output(cinfo) ++#endif + j_common_ptr cinfo; + { + my_error_ptr myerr; +@@ -441,7 +459,11 @@ + + + /**************************************************/ +-METHODDEF void xv_prog_meter(cinfo) ++#if JPEG_LIB_VERSION > 60 ++METHODDEF(void) xv_prog_meter(cinfo) ++#else ++METHODDEF void xv_prog_meter(cinfo) ++#endif + j_common_ptr cinfo; + { + struct jpeg_progress_mgr *prog; +@@ -706,7 +728,11 @@ + + + /**************************************************/ +-METHODDEF boolean xv_process_comment(cinfo) ++#if JPEG_LIB_VERSION > 60 ++METHODDEF(boolean) xv_process_comment(cinfo) ++#else ++METHODDEF boolean xv_process_comment(cinfo) ++#endif + j_decompress_ptr cinfo; + { + int length, hasnull; +@@ -794,8 +820,8 @@ + + + jpeg_set_defaults(&cinfo); +- jpeg_set_quality(&cinfo, qDial.val, TRUE); +- cinfo.smoothing_factor = smDial.val; ++ jpeg_set_quality(&cinfo, (int)qDial.val, TRUE); ++ cinfo.smoothing_factor = (int)smDial.val; + + + jpeg_start_compress(&cinfo, TRUE); +@@ -804,7 +830,7 @@ + /*** COMMENT HANDLING ***/ + + sprintf(xvcmt, "%sXV %s Quality = %d, Smoothing = %d\n", +- CREATOR_STR, REVDATE, qDial.val, smDial.val); ++ CREATOR_STR, REVDATE, (int)qDial.val, (int)smDial.val); + + if (picComments) { /* append XV comment */ + char *sp, *sp1; int done; +@@ -866,4 +892,27 @@ + + + ++ ++/*******************************************/ ++void ++VersionInfoJPEG() /* GRR 19980605, 19980607 */ ++{ ++ int major = JPEG_LIB_VERSION / 10; ++ int minor = JPEG_LIB_VERSION % 10; ++ char minoralpha[2]; ++ ++ if (minor) { ++ minoralpha[0] = (char)(minor - 1 + 'a'); ++ minoralpha[1] = '\0'; ++ } else ++ minoralpha[0] = '\0'; ++ ++/* fprintf(stderr, " Compiled with libjpeg %d.%d.\n", major, minor); */ ++ fprintf(stderr, " Compiled with libjpeg %d%s.\n", major, minoralpha); ++} ++ ++ ++ ++ ++ + #endif /* HAVE_JPEG */ +diff -ruN xv-3.10a-bugfixes/xvmag.c xv-3.10a-enhancements/xvmag.c +--- xv-3.10a-bugfixes/xvmag.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvmag.c 2005-04-17 22:56:58.000000000 -0700 +@@ -0,0 +1,866 @@ ++/* ++ * xvmag.c - load routine for `MAG' format pictures. ++ * ++ * The `MAG' format is used by many Japanese personal computer users. ++ * This program is based on MAGBIBLE.DOC which is the specification ++ * for `MAG' format written by Woody RINN. It is written in Japanese, ++ * and exists in some anon-ftp sites. ++ */ ++ ++#include "xv.h" ++#include ++ ++#ifdef HAVE_MAG ++ ++typedef unsigned short data16; ++ ++struct mag { ++ jmp_buf jmp; ++ FILE *fp; ++ long fsize; ++ int m_256, m_dig, m_8, m_200; ++ int x1, y1, x2, y2, left_pad, right_pad; ++ int p_width, p_height, width, height; ++ long h_off, a_off, a_size, b_off, b_size, p_off, p_size; ++ byte *a, *b, *p; ++}; ++ ++static void mag_open_file PARM((struct mag*, char*)); ++static void mag_read_check_data PARM((struct mag*)); ++static void mag_read_comment PARM((struct mag*, char**)); ++static void mag_read_header PARM((struct mag*)); ++static void mag_read_palette PARM((struct mag*, byte*, byte*, byte*)); ++static void mag_read_flags PARM((struct mag*)); ++static void mag_read_pixel_data PARM((struct mag*)); ++static void mag_expand_body PARM((struct mag*, byte**)); ++ ++static void mag_compress_data PARM((struct mag*, byte*)); ++static void mag_write_check_data PARM((struct mag*)); ++static void mag_write_comment PARM((struct mag*, char *)); ++static void mag_write_palette PARM((struct mag*, int, ++ byte*, byte*, byte*, int)); ++static void mag_write_flags PARM((struct mag*)); ++static void mag_write_pixel_data PARM((struct mag*)); ++static void mag_write_header PARM((struct mag*)); ++static void mag_set_double_word PARM((long, byte *)); ++ ++static void mag_init_info PARM((struct mag*)); ++static void mag_cleanup_mag_info PARM((struct mag*, int)); ++static void mag_cleanup_pinfo PARM((PICINFO*)); ++static void mag_memory_error PARM((char*, char*)); ++static void mag_error PARM((struct mag*, int)); ++static void mag_file_error PARM((struct mag*, int)); ++static void mag_file_warning PARM((struct mag*, int)); ++static void mag_show_struct PARM((struct mag*)); ++static void *mag_malloc PARM((size_t, char*)); ++static void *mag_realloc PARM((void*, size_t, char*)); ++ ++ ++static char *mag_id = "MAKI02 "; ++static struct{ ++ int dx, dy; ++}points[16] = { ++ { 0, 0}, { 1, 0}, { 2, 0}, { 4, 0}, ++ { 0, 1}, { 1, 1}, ++ { 0, 2}, { 1, 2}, { 2, 2}, ++ { 0, 4}, { 1, 4}, { 2, 4}, ++ { 0, 8}, { 1, 8}, { 2, 8}, ++ { 0, 16}, ++}; ++static int try[15] = {1, 4, 5, 6, 7, 9, 10, 2, 8, 11, 12, 13, 14, 3, 15}; ++ ++static char *mag_msgs[] = { ++ NULL, ++#define MAG_OPEN 1 ++ "can't open file", ++#define MAG_CORRUPT 2 ++ "file currupted.", ++#define MAG_FORMAT 3 ++ "not MAG format.", ++#define MAG_WRITE 4 ++ "write failed.", ++}; ++ ++ ++#define H4(x) (((int) (x) >> 4) & 0x0f) /* operates on a byte */ ++#define L4(x) ((x) & 0x0f) ++#define H8(x) (((x) >> 8) & 0xff) /* operates on a data16 */ ++#define L8(x) ((x) & 0xff) ++ ++#define error(msgnum) longjmp(mi->jmp, msgnum) ++ ++ ++/* The main routine to load a MAG file. */ ++int LoadMAG(fname, pinfo) ++ char *fname; ++ PICINFO *pinfo; ++{ ++ struct mag mag; ++ int e; ++ ++ if(DEBUG) fputs("LoadMAG:\n", stderr); ++ ++ pinfo->comment = NULL; ++ mag_init_info(&mag); ++ if((e = setjmp(mag.jmp)) != 0){ ++ /* When an error occurs, comes here. */ ++ mag_cleanup_mag_info(&mag, 0); ++ mag_cleanup_pinfo(pinfo); ++ return 0; ++ } ++ ++ mag_open_file(&mag, fname); ++ mag_read_check_data(&mag); ++ mag_read_comment(&mag, &pinfo->comment); ++ mag_read_header(&mag); ++ mag_read_palette(&mag, pinfo->r, pinfo->g, pinfo->b); ++ mag_read_flags(&mag); ++ mag_read_pixel_data(&mag); ++ mag_expand_body(&mag, &pinfo->pic); ++ ++ pinfo->w = pinfo->normw = mag.width; ++ pinfo->h = pinfo->normh = mag.height; ++ pinfo->type = PIC8; ++ pinfo->frmType = F_MAG; ++ pinfo->colType = F_FULLCOLOR; ++ sprintf(pinfo->fullInfo, "MAG, %d colors%s (%ld bytes)", ++ mag.m_256 ? 256 : (mag.m_8 ? 8 : 16), ++ mag.m_200 ? ", aspect 0.5" : "", mag.fsize); ++ sprintf(pinfo->shrtInfo, "%dx%d MAG", mag.width, mag.height); ++ if(mag.m_200) ++ normaspect = 0.5; ++ ++ mag_cleanup_mag_info(&mag, 0); ++ return 1; ++} ++ ++static void mag_open_file(mi, fname) ++ struct mag *mi; ++ char *fname; ++{ ++ if((mi->fp = fopen(fname, "rb")) == NULL) ++ mag_file_error(mi, MAG_OPEN); ++ fseek(mi->fp, (size_t) 0, SEEK_END); ++ mi->fsize = ftell(mi->fp); ++ fseek(mi->fp, (size_t) 0, SEEK_SET); ++} ++ ++static void mag_read_check_data(mi) ++ struct mag *mi; ++{ ++ char buffer[8]; ++ ++ if(fread(buffer, (size_t) 8, (size_t) 1, mi->fp) != 1) ++ mag_file_error(mi, MAG_CORRUPT); ++ if(strncmp(buffer, mag_id, (size_t) 8) != 0) ++ mag_error(mi, MAG_FORMAT); ++} ++ ++static void mag_read_comment(mi, p) ++ struct mag *mi; ++ char **p; ++{ ++ int max = -1, i = 0; ++ int c; ++ ++ while((c = fgetc(mi->fp)) != EOF){ ++ if(c == 0x1a) ++ break; ++ if(max < i){ ++ max += 16; ++ *p = mag_realloc(*p, (size_t) max + 1, "mag_read_comment#1"); ++ } ++ (*p)[i++] = c; ++ } ++ ++ if(c == EOF) ++ mag_file_error(mi, MAG_CORRUPT); ++ ++ if(max < i){ ++ *p = mag_realloc(*p, (size_t) max + 2, "mag_read_comment#2"); ++ } ++ if(i > 24){ ++ (*p)[i] = '\0'; ++ strcpy(*p, &(*p)[24]); ++ }else{ ++ (*p)[0] = '\0'; ++ } ++} ++ ++static void mag_read_header(mi) ++ struct mag *mi; ++{ ++ byte buf[32]; ++ ++ mi->h_off = ftell(mi->fp); ++ ++ if(fread(buf, (size_t) 32, (size_t) 1, mi->fp) != 1) ++ mag_file_error(mi, MAG_CORRUPT); ++ ++ mi->m_256 = buf[3] & 0x80; ++ mi->m_dig = buf[3] & 0x04; ++ mi->m_8 = buf[3] & 0x02; ++ mi->m_200 = buf[3] & 0x01; ++ ++ mi->x1 = buf[ 4] + buf[ 5] * 256; ++ mi->y1 = buf[ 6] + buf[ 7] * 256; ++ mi->x2 = buf[ 8] + buf[ 9] * 256; ++ mi->y2 = buf[10] + buf[11] * 256; ++ ++#define get_dword(a, b, c, d) \ ++ ((long)(a) << 24 | (long)(b) << 16 | (long)(c) << 8 | (long)(d)) ++ ++ mi->a_off = get_dword(buf[15], buf[14], buf[13], buf[12]); ++ mi->b_off = get_dword(buf[19], buf[18], buf[17], buf[16]); ++ mi->b_size = get_dword(buf[23], buf[22], buf[21], buf[20]); ++ mi->p_off = get_dword(buf[27], buf[26], buf[25], buf[24]); ++ mi->p_size = get_dword(buf[31], buf[30], buf[29], buf[28]); ++#undef get_dword ++ ++ mi->a_size = mi->b_off - mi->a_off; ++ mi->a_off += mi->h_off; ++ mi->b_off += mi->h_off; ++ mi->p_off += mi->h_off; ++ ++ mi->width = mi->x2 - mi->x1 + 1; ++ mi->height = mi->y2 - mi->y1 + 1; ++ mi->left_pad = mi->x1 & 07; ++ mi->right_pad = 07 - (mi->x2 & 07); ++ mi->x1 -= mi->left_pad; /* x1 = 8m */ ++ mi->x2 += mi->right_pad; /* x2 = 8n+7 */ ++ mi->p_width = ((mi->x2 + 1) - mi->x1) / (mi->m_256 ? 2 : 4); ++ mi->p_height = (mi->y2 + 1) - mi->y1; ++ ++ if(DEBUG) mag_show_struct(mi); ++} ++ ++static void mag_read_palette(mi, r, g, b) ++ struct mag *mi; ++ byte *r, *g, *b; ++{ ++ int num_palettes; ++ byte *buf; ++ ++ if(mi->m_256) ++ num_palettes = 256; ++ else ++ num_palettes = 16; ++ ++ buf = mag_malloc((size_t)num_palettes * 3, "mag_read_palette"); ++ ++ if(fread(buf, (size_t) 3, (size_t) num_palettes, mi->fp) != num_palettes){ ++ free(buf); ++ mag_file_error(mi, MAG_CORRUPT); ++ } ++ ++ for(num_palettes--; num_palettes >= 0; num_palettes--){ ++ g[num_palettes] = buf[num_palettes * 3 ]; ++ r[num_palettes] = buf[num_palettes * 3 + 1]; ++ b[num_palettes] = buf[num_palettes * 3 + 2]; ++ } ++ ++ free(buf); ++} ++ ++static void mag_read_flags(mi) ++ struct mag *mi; ++{ ++ mi->a = mag_malloc((size_t) mi->a_size, "mag_read_flags#1"); ++ mi->b = mag_malloc((size_t) mi->b_size, "mag_read_flags#2"); ++ ++ fseek(mi->fp, mi->a_off, SEEK_SET); ++ if(fread(mi->a, (size_t) mi->a_size, (size_t) 1, mi->fp) != 1) ++ mag_file_warning(mi, MAG_CORRUPT); ++ if(fread(mi->b, (size_t) mi->b_size, (size_t) 1, mi->fp) != 1) ++ mag_file_warning(mi, MAG_CORRUPT); ++} ++ ++static void mag_read_pixel_data(mi) ++ struct mag *mi; ++{ ++ mi->p = mag_malloc((size_t) mi->p_size, "mag_read_pixel_data"); ++ ++ fseek(mi->fp, mi->p_off, SEEK_SET); ++ if(fread(mi->p, (size_t) mi->p_size, (size_t) 1, mi->fp) != 1) ++ mag_file_warning(mi, MAG_CORRUPT); ++} ++ ++/* MAG expanding routine */ ++static void mag_expand_body(mi, pic0) ++ struct mag *mi; ++ byte **pic0; ++{ ++ int ai, bi, fi, pi; ++ int px, py, x, y; ++ byte *flag; ++ byte mask; ++ data16 *pixel0; ++ ++ flag = mag_malloc((size_t) mi->p_width / 2, "mag_expand_body#1"); ++ *pic0 = mag_malloc((size_t) mi->width * mi->height, "mag_expand_body#2"); // GRR POSSIBLE OVERFLOW / FIXME ++ pixel0 = mag_malloc((size_t) 2 * mi->p_width * 17, "mag_expand_body#3"); // GRR POSSIBLE OVERFLOW / FIXME ++ ++#define pixel(x, y) pixel0[(y) % 17 * mi->p_width + (x)] ++ ++ ai = bi = pi = 0; ++ mask = 0x80; ++ for(y = py = 0; py < mi->p_height; py++){ ++ for(fi = 0; fi < mi->p_width / 2; fi++){ ++ if(py == 0){ ++ if(mi->a[ai] & mask) ++ flag[fi] = mi->b[bi++]; ++ else ++ flag[fi] = 0; ++ }else{ ++ if(mi->a[ai] & mask) ++ flag[fi] ^= mi->b[bi++]; ++ } ++ if((mask >>= 1) == 0){ ++ mask = 0x80; ++ ai++; ++ } ++ } ++ ++ for(px = fi = 0; fi < mi->p_width / 2; fi++){ ++ int f = H4(flag[fi]); ++ if(f == 0){ ++ pixel(px, py) = mi->p[pi] + mi->p[pi + 1] * 256; ++ px++; ++ pi+=2; ++ }else{ ++ int dx = points[f].dx, dy = points[f].dy; ++ pixel(px, py) = pixel(px - dx, py - dy); ++ px++; ++ } ++ ++ f = L4(flag[fi]); ++ if(f == 0){ ++ pixel(px, py) = mi->p[pi] + mi->p[pi + 1] * 256; ++ px++; ++ pi+=2; ++ }else{ ++ int dx = points[f].dx, dy = points[f].dy; ++ pixel(px, py) = pixel(px - dx, py - dy); ++ px++; ++ } ++ } ++ ++#define inside(x) ((unsigned int)(x) < mi->width) ++#define pic(x, y) (*pic0)[(y) * mi->width + (x)] ++ for(x = -mi->left_pad, px = 0; px < mi->p_width; px++){ ++ data16 p = pixel(px, py); ++ if(mi->m_256){ ++ if(inside(x)) ++ pic(x, y) = L8(p); ++ x++; ++ if(inside(x)) ++ pic(x, y) = H8(p); ++ x++; ++ }else{ ++ if(inside(x)) ++ pic(x, y) = H4(L8(p)); ++ x++; ++ if(inside(x)) ++ pic(x, y) = L4(L8(p)); ++ x++; ++ if(inside(x)) ++ pic(x, y) = H4(H8(p)); ++ x++; ++ if(inside(x)) ++ pic(x, y) = L4(H8(p)); ++ x++; ++ } ++ } ++ y++; ++ } ++#undef pic ++#undef inside ++#undef pixel ++ ++ free(flag); ++ free(pixel0); ++} ++ ++ ++/* The main routine to write a MAG file. */ ++int WriteMAG(fp, pic, ptype, w, h, rmap, gmap, bmap, numcols, colorstyle, ++ comment) ++ FILE *fp; ++ byte *pic; ++ int ptype, w, h; ++ byte *rmap, *gmap, *bmap; ++ int numcols, colorstyle; ++ char *comment; ++{ ++ byte rtemp[256], gtemp[256], btemp[256]; ++ struct mag mag; ++ int e; ++ ++ if(DEBUG) fputs("WriteMag\n", stderr); ++ ++ mag_init_info(&mag); ++ mag.fp = fp; ++ ++ if(ptype == PIC24){ ++ if(!(pic = Conv24to8(pic, w, h, 256, rtemp, gtemp, btemp))) ++ mag_memory_error("Conv24to8", "WriteMAG"); ++ rmap = rtemp; ++ gmap = gtemp; ++ bmap = btemp; ++ numcols = 256; ++ mag.m_256 = 1; ++ }else{ ++ if(numcols > 16) ++ mag.m_256 = 1; ++ } ++ ++ if((e = setjmp(mag.jmp)) != 0){ ++ /* When an error occurs, comes here. */ ++ mag_cleanup_mag_info(&mag, 1); ++ return -1; ++ } ++ ++ mag.x2 = w - 1; ++ mag.y2 = h - 1; ++ mag.right_pad = 07 - (mag.x2 & 07); ++ mag.p_width = (w + mag.right_pad) / (mag.m_256 ? 2 : 4); ++ mag.p_height = h; ++ mag.width = w; ++ mag.height = h; ++ mag.a_size = (mag.p_width * mag.p_height + 15) / 16; /* x/2/8 */ // GRR POSSIBLE OVERFLOW / FIXME ++ if(mag.a_size % 2) ++ mag.a_size++; ++ ++ mag_compress_data(&mag, pic); ++ mag_write_check_data(&mag); ++ mag_write_comment(&mag, comment); ++ ++ mag.h_off = ftell(mag.fp); ++ ++ mag_write_palette(&mag, numcols, rmap, gmap, bmap, ++ colorstyle == F_GREYSCALE); ++ mag_write_flags(&mag); ++ mag_write_pixel_data(&mag); ++ mag_write_header(&mag); ++ ++ mag_cleanup_mag_info(&mag, 1); ++ return 0; ++} ++ ++/* MAG compressing routine */ ++static void mag_compress_data(mi, pic0) ++ struct mag *mi; ++ byte *pic0; ++{ ++ int ai, bi, pi, i; ++ int bmax, pmax; ++ byte mask; ++ byte *flag0; ++ data16 *pixel0; ++ int px, py, x, y; ++ ++ pixel0 = mag_malloc((size_t) 2 * mi->p_width * mi->p_height, // GRR POSSIBLE OVERFLOW / FIXME ++ "mag_compress_data#1"); ++ flag0 = mag_malloc((size_t) mi->p_width * mi->p_height, // GRR POSSIBLE OVERFLOW / FIXME ++ "mag_compress_data#2"); ++ ++#define pic(x, y) pic0[(y) * mi->width + (x)] ++ /* convert dots to pixels */ ++ i = 0; ++ for(y = py = 0; py < mi->p_height; py++){ ++ for(x = px = 0; px < mi->p_width; px++){ ++ data16 p = 0; ++ if(mi->m_256){ ++ if(x < mi->width) ++ p += pic(x, y); ++ x++; ++ if(x < mi->width) ++ p += pic(x, y) * 256; ++ x++; ++ }else{ ++ if(x < mi->width) ++ p += pic(x, y) * 16; ++ x++; ++ if(x < mi->width) ++ p += pic(x, y); ++ x++; ++ if(x < mi->width) ++ p += pic(x, y) * 4096; ++ x++; ++ if(x < mi->width) ++ p += pic(x, y) * 256; ++ x++; ++ } ++ pixel0[i++] = p; ++ } ++ y++; ++ } ++#undef pic ++ ++#define pixel(x, y) pixel0[(y) * mi->p_width + (x)] ++#define flag(x, y) flag0[(y) * mi->p_width + (x)] ++ /* get flags */ ++ pmax = pi = 0; ++ for(py = 0; py < mi->p_height; py++){ ++ for(px = 0; px < mi->p_width; px++){ ++ int t; ++ for(t = 0; t < 15; t++){ ++ int dx = points[try[t]].dx, dy = points[try[t]].dy; ++ if(dx <= px && dy <= py){ ++ if(pixel(px - dx, py - dy) == pixel(px, py)) ++ break; ++ } ++ } ++ if(t < 15){ ++ flag(px, py) = try[t]; ++ }else{ ++ flag(px, py) = 0; ++ if(pmax <= pi + 1){ ++ pmax += 128; ++ mi->p = mag_realloc(mi->p, (size_t) pmax, ++ "mag_compress_data#3"); ++ } ++ mi->p[pi++] = L8(pixel(px, py)); ++ mi->p[pi++] = H8(pixel(px, py)); ++ } ++ } ++ } ++#undef flag ++#undef pixel ++ ++ /* pack 2 flags into 1 byte */ ++ for(i = 0; i < mi->p_width / 2 * mi->p_height; i++) ++ flag0[i] = flag0[i * 2] * 16 + flag0[i * 2 + 1]; ++ ++#define flag(x, y) flag0[(y) * mi->p_width / 2 + (x)] ++ for(py = mi->p_height - 1; py >= 1; py--){ ++ for(px = 0; px < mi->p_width / 2; px++) ++ flag(px, py) ^= flag(px, py - 1); ++ } ++#undef flag ++ ++ mask = 0x80; ++ ai = bi = bmax = 0; ++ mi->a = mag_malloc((size_t) mi->a_size, "mag_compress_data#4"); // GRR POSSIBLE OVERFLOW / FIXME ++ for(i = 0; i < mi->p_width / 2 * mi->p_height; i++){ ++ if(flag0[i] == 0){ ++ mi->a[ai] &= ~mask; ++ }else{ ++ if(bmax == bi){ ++ bmax += 128; ++ mi->b = mag_realloc(mi->b, (size_t) bmax, ++ "mag_compress_data#4"); ++ } ++ mi->b[bi++] = flag0[i]; ++ mi->a[ai] |= mask; ++ } ++ ++ if((mask >>= 1) == 0){ ++ mask = 0x80; ++ ai++; ++ } ++ } ++ ++ if(bi % 2) ++ bi++; ++ mi->b_size = bi; ++ ++ mi->p_size = pi; ++ ++ free(pixel0); ++ free(flag0); ++} ++ ++static void mag_write_check_data(mi) ++ struct mag *mi; ++{ ++ if(fwrite(mag_id, (size_t) 8, (size_t) 1, mi->fp) != 1) ++ mag_file_error(mi, MAG_WRITE); ++} ++ ++static void mag_write_comment(mi, comment) ++ struct mag *mi; ++ char *comment; ++{ ++ char *p; ++ int i; ++ ++ if(fputs("XV ", mi->fp) == EOF) ++ mag_file_error(mi, MAG_WRITE); ++ ++ if((p = (char *) getenv("USER")) == NULL) ++ p = "????????"; ++ for(i = 5; i < 24; i++){ ++ if(*p == '\0') ++ break; ++ if(fputc(*p++, mi->fp) == EOF) ++ mag_file_error(mi, MAG_WRITE); ++ } ++ for( ; i < 24; i++){ ++ if(fputc(' ', mi->fp) == EOF) ++ mag_file_error(mi, MAG_WRITE); ++ } ++ ++ if(comment){ ++ int l = strlen(comment); ++ if(l > 0){ ++ int i; ++ for(i = 0; i < l; i++){ ++ if(comment[i] == 0x1a) ++ comment[i] = ' '; ++ } ++ if(fwrite(comment, (size_t) l, (size_t) 1, mi->fp) != 1) ++ mag_file_error(mi, MAG_WRITE); ++ } ++ } ++ ++ if(fputc(0x1a, mi->fp) == EOF) ++ mag_file_error(mi, MAG_WRITE); ++} ++ ++static void mag_write_palette(mi, num, r, g, b, grey) ++ struct mag *mi; ++ int num; ++ byte *r, *g, *b; ++ int grey; ++{ ++ int i, left; ++ char buf[3]; ++ ++ fseek(mi->fp, 32L, SEEK_CUR); /* skip header area */ ++ for(i = 0; i < num; i++){ ++ buf[0] = *g++; ++ buf[1] = *r++; ++ buf[2] = *b++; ++ if(grey) ++ buf[0] = buf[1] = buf[2] = MONO(buf[1], buf[0], buf[2]); ++ if(fwrite(buf, (size_t) 3, (size_t) 1, mi->fp) != 1) ++ mag_file_error(mi, MAG_WRITE); ++ } ++ if(num < 16){ ++ left = 16 - num; ++ }else if(num == 16){ ++ left = 0; ++ }else if(num < 256){ ++ left = 256 - num; ++ }else if(num == 256){ ++ left = 0; ++ }else ++ left = 0; /* shouldn't happen */ ++ ++ if(left > 0){ ++ for(i = 0; i < left; i++){ ++ if(fwrite(buf, (size_t) 3, (size_t) 1, mi->fp) != 1) ++ mag_file_error(mi, MAG_WRITE); ++ } ++ } ++} ++ ++static void mag_write_flags(mi) ++ struct mag *mi; ++{ ++ int i; ++ ++ mi->a_off = ftell(mi->fp); ++ for(i = 0; i < mi->a_size; i++){ ++ if(fputc(mi->a[i], mi->fp) == EOF) ++ mag_file_error(mi, MAG_WRITE); ++ } ++ ++ mi->b_off = ftell(mi->fp); ++ for(i = 0; i < mi->b_size; i++){ ++ if(fputc(mi->b[i], mi->fp) == EOF) ++ mag_file_error(mi, MAG_WRITE); ++ } ++} ++ ++static void mag_write_pixel_data(mi) ++ struct mag *mi; ++{ ++ int i; ++ ++ mi->p_off = ftell(mi->fp); ++ for(i = 0; i < mi->p_size; i++){ ++ if(fputc(mi->p[i], mi->fp) == EOF) ++ mag_file_error(mi, MAG_WRITE); ++ } ++} ++ ++static void mag_write_header(mi) ++ struct mag *mi; ++{ ++ byte buf[32]; ++ ++ if(DEBUG) mag_show_struct(mi); ++ ++ mi->a_off -= mi->h_off; ++ mi->b_off -= mi->h_off; ++ mi->p_off -= mi->h_off; ++ ++ buf[ 0] = buf[1] = buf[2] = 0; ++ buf[ 3] = (mi->m_256 ? 0x80 : 0); ++ buf[ 4] = buf[5] = 0; ++ buf[ 6] = buf[7] = 0; ++ buf[ 8] = L8(mi->x2); ++ buf[ 9] = H8(mi->x2); ++ buf[10] = L8(mi->y2); ++ buf[11] = H8(mi->y2); ++ mag_set_double_word(mi->a_off, &buf[12]); ++ mag_set_double_word(mi->b_off, &buf[16]); ++ mag_set_double_word(mi->b_size, &buf[20]); ++ mag_set_double_word(mi->p_off, &buf[24]); ++ mag_set_double_word(mi->p_size, &buf[28]); ++ ++ fseek(mi->fp, mi->h_off, SEEK_SET); ++ if(fwrite(buf, (size_t) 32, (size_t) 1, mi->fp) != 1) ++ mag_file_error(mi, MAG_WRITE); ++} ++ ++static void mag_set_double_word(n, p) ++ long n; ++ byte *p; ++{ ++ p[0] = n % 256; /* ugly...anything wrong with shift/mask operations? */ ++ p[1] = n / 256 % 256; /* (n >> 8) & 0xff */ ++ p[2] = n / 256 / 256 % 256; /* (n >> 16) & 0xff */ ++ p[3] = n / 256 / 256 / 256 % 256; /* (n >> 24) & 0xff */ ++} ++ ++/* ++ * The routines to initialize or clean up. ++ * mag_init_info: ++ * initializes a mag structure. ++ * mag_cleanup_mag_info: ++ * cleans up a mag structure. ++ * mag_cleanup_pinfo: ++ * cleans up a PICINFO structure. ++ */ ++static void mag_init_info(mi) ++ struct mag *mi; ++{ ++ mi->fp = NULL; ++ mi->fsize = 0; ++ mi->m_256 = mi->m_dig = mi->m_8 = mi->m_200 = 0; ++ mi->x1 = mi->y1 = mi->x2 = mi->y2 = 0; ++ mi->left_pad = mi->right_pad = 0; ++ mi->p_width = mi->p_height = mi->width = mi->height = 0; ++ mi->h_off = mi->p_off = mi->p_size = 0; ++ mi->a_off = mi->a_size = mi->b_off = mi->b_size = 0; ++ mi->a = NULL; ++ mi->b = NULL; ++ mi->p = NULL; ++} ++ ++static void mag_cleanup_mag_info(mi, writing) ++ struct mag *mi; ++ int writing; ++{ ++ if(mi->fp && !writing) ++ fclose(mi->fp); ++ if(mi->a) ++ free(mi->a); ++ if(mi->b) ++ free(mi->b); ++ if(mi->p) ++ free(mi->p); ++} ++ ++static void mag_cleanup_pinfo(pinfo) ++ PICINFO *pinfo; ++{ ++ if(pinfo->comment){ ++ free(pinfo->comment); ++ pinfo->comment = NULL; ++ } ++ if(pinfo->pic){ ++ free(pinfo->pic); ++ pinfo->pic = NULL; ++ } ++} ++ ++/* ++ * Error handler. ++ * mag_memory_error: ++ * shows an error message, and terminates. ++ * mag_error: ++ * shows an non-file error message, and jumps to the entry for errors. ++ * mag_file_error: ++ * shows an file error message, and jumps to the entry for errors. ++ * mag_file_warning: ++ * shows an file warning message. ++ */ ++static void mag_memory_error(scm, fn) ++ char *scm, *fn; ++{ ++ char buf[128]; ++ sprintf(buf, "%s: can't allocate memory. (%s)", scm, fn); ++ FatalError(buf); ++} ++ ++static void mag_error(mi, mn) ++ struct mag *mi; ++ int mn; ++{ ++ SetISTR(ISTR_WARNING, "%s", mag_msgs[mn]); ++ longjmp(mi->jmp, 1); ++} ++ ++static void mag_file_error(mi, mn) ++ struct mag *mi; ++ int mn; ++{ ++ if(feof(mi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", mag_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", mag_msgs[mn], ERRSTR(errno)); ++ longjmp(mi->jmp, 1); ++} ++ ++static void mag_file_warning(mi, mn) ++ struct mag *mi; ++ int mn; ++{ ++ if(feof(mi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", mag_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", mag_msgs[mn], ERRSTR(errno)); ++} ++ ++static void mag_show_struct (mi) ++ struct mag *mi; ++{ ++ fprintf(stderr, " 256 colors: %s\n", mi->m_256 ? "true" : "false"); ++ fprintf(stderr, " 8 colors: %s\n", mi->m_8 ? "true" : "false"); ++ fprintf(stderr, " digital colors: %s\n", mi->m_dig ? "true" : "false"); ++ fprintf(stderr, " aspect ratio: %f\n", mi->m_200 ? 0.5 : 1.0); ++ fprintf(stderr, " image size: %dx%d\n", mi->width, mi->height); ++ fprintf(stderr, " left pad: %d\n", mi->left_pad); ++ fprintf(stderr, " right pad: %d\n", mi->right_pad); ++ fprintf(stderr, " h_off: %ld\n", mi->h_off); ++ fprintf(stderr, " A: off:%ld, size:%ld\n", mi->a_off, mi->a_size); ++ fprintf(stderr, " B: off:%ld, size:%ld\n", mi->b_off, mi->b_size); ++ fprintf(stderr, " P: off:%ld, size:%ld\n", mi->p_off, mi->p_size); ++} ++ ++/* Memory related routines. */ ++static void *mag_malloc(n, fn) ++ size_t n; ++ char *fn; ++{ ++ void *r = (void *) malloc(n); ++ if(r == NULL) ++ mag_memory_error("malloc", fn); ++ return r; ++} ++ ++static void *mag_realloc(p, n, fn) ++ void *p; ++ size_t n; ++ char *fn; ++{ ++ void *r = (p == NULL) ? (void *) malloc(n) : (void *) realloc(p, n); ++ if(r == NULL) ++ mag_memory_error("realloc", fn); ++ return r; ++} ++#endif /* HAVE_MAG */ +diff -ruN xv-3.10a-bugfixes/xvmaki.c xv-3.10a-enhancements/xvmaki.c +--- xv-3.10a-bugfixes/xvmaki.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvmaki.c 2005-04-17 22:57:01.000000000 -0700 +@@ -0,0 +1,794 @@ ++/* ++ * xvmaki.c - load routine for `MAKI' format pictures. ++ * ++ * The `MAKI' format was used by some Japanese personal computer users. ++ */ ++ ++#include "xv.h" ++#include ++ ++#ifdef HAVE_MAKI ++ ++typedef unsigned short data16; ++typedef unsigned int data32; ++ ++struct maki_info { ++ jmp_buf jmp; ++ FILE *fp; ++ long fsize; ++ int x0, y0, x1, y1; ++ int width, height; ++ float aspect; ++ long fb_size; ++ long pa_size, pb_size; ++ int m_maki01b, m_200, m_dig8; ++ data16 ext_flag; ++ byte *fa, *fb, *pa, *pb; ++ byte *vs; ++ int numcols; ++ byte *forma, *formb; ++}; ++ ++ ++static void maki_open_file PARM((struct maki_info*, char*)); ++static void maki_check_id PARM((struct maki_info*)); ++static void maki_skip_comment PARM((struct maki_info*)); ++static void maki_read_header PARM((struct maki_info*)); ++static void maki_read_palette PARM((struct maki_info*, ++ byte*, byte*, byte*)); ++static void maki_read_flags PARM((struct maki_info*)); ++static void maki_read_pixel_data PARM((struct maki_info*)); ++static void maki_expand_virtual_screen PARM((struct maki_info*)); ++static void maki_expand_pixel_data PARM((struct maki_info*, byte**)); ++static void maki_init_info PARM((struct maki_info*)); ++ ++static void maki_make_pixel_data PARM((struct maki_info*, byte*)); ++static void maki_make_virtual_screen PARM((struct maki_info*)); ++static void maki_make_flags PARM((struct maki_info*)); ++static void maki_write_check_id PARM((struct maki_info*)); ++static void maki_write_comment PARM((struct maki_info*)); ++static void maki_write_header PARM((struct maki_info*)); ++static void maki_write_palette PARM((struct maki_info*, ++ byte*, byte*, byte*, int)); ++static void maki_write_flags PARM((struct maki_info*)); ++static void maki_write_pixel_data PARM((struct maki_info*)); ++ ++static void maki_cleanup_maki_info PARM((struct maki_info*, int)); ++static void maki_cleanup_pinfo PARM((PICINFO*)); ++static void maki_memory_error PARM((char*, char*)); ++static void maki_error PARM((struct maki_info*, int)); ++static void maki_file_error PARM((struct maki_info*, int)); ++static void maki_file_warning PARM((struct maki_info*, int)); ++static void maki_show_maki_info PARM((struct maki_info*)); ++static void *maki_malloc PARM((size_t, char*)); ++static void *maki_realloc PARM((void *, size_t, char*)); ++ ++static char maki_id_a[] = "MAKI01A "; ++static char maki_id_b[] = "MAKI01B "; ++ ++static char *maki_msgs[] = { ++ NULL, ++#define MAKI_OPEN 1 ++ "can't open file.", ++#define MAKI_CORRUPT 2 ++ "file corrupted.", ++#define MAKI_FORMAT 3 ++ "not MAKI format.", ++#define MAKI_BAD_DATA 4 ++ "bad data.", ++#define MAKI_COMMENT 5 ++ "no '^Z' after comment.", ++#define MAKI_SIZE 6 ++ "bad size.", ++#define MAKI_WRITE 7 ++ "write failed.", ++}; ++ ++#define H4(b) ((b) >> 4 & 0xf) ++#define L4(b) ((b) & 0xf) ++#define error(msg_num) longjmp(mi->jmp, msg_num) ++ ++int LoadMAKI(fname, pinfo) ++ char *fname; ++ PICINFO *pinfo; ++{ ++ struct maki_info maki; ++ int e; ++ ++ if(DEBUG) fputs("LoadMAKI:\n", stderr); ++ ++ pinfo->comment = NULL; ++ maki_init_info(&maki); ++ if((e = setjmp(maki.jmp)) != 0){ ++ /* When an error occurs, comes here. */ ++ maki_cleanup_maki_info(&maki, 0); ++ maki_cleanup_pinfo(pinfo); ++ return 0; ++ } ++ ++ maki_open_file(&maki, fname); ++ maki_check_id(&maki); ++ maki_skip_comment(&maki); ++ maki_read_header(&maki); ++ maki_read_palette(&maki, pinfo->r, pinfo->g, pinfo->b); ++ maki_read_flags(&maki); ++ maki_read_pixel_data(&maki); ++ maki_expand_virtual_screen(&maki); ++ maki_expand_pixel_data(&maki, &pinfo->pic); ++ ++ pinfo->w = pinfo->normw = maki.width; ++ pinfo->h = pinfo->normh = maki.height; ++ pinfo->type = PIC8; ++ pinfo->frmType = F_MAKI; ++ pinfo->colType = F_FULLCOLOR; ++ sprintf(pinfo->fullInfo, "MAKI, 16 colors (%ld bytes)", maki.fsize); ++ sprintf(pinfo->shrtInfo, "%dx%d MAKI", maki.width, maki.height); ++ normaspect = maki.aspect; ++ ++ maki_cleanup_maki_info(&maki, 0); ++ return 1; ++} ++ ++static void maki_open_file(mi, fname) ++ struct maki_info *mi; ++ char *fname; ++{ ++ if((mi->fp = fopen(fname, "rb")) == NULL) ++ maki_file_error(mi, MAKI_OPEN); ++ fseek(mi->fp, (size_t) 0, SEEK_END); ++ mi->fsize = ftell(mi->fp); ++ fseek(mi->fp, (size_t) 0, SEEK_SET); ++} ++ ++static void maki_check_id(mi) ++ struct maki_info *mi; ++{ ++ char buf[8]; ++ if(fread(buf, (size_t) 8, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_CORRUPT); ++ if(strncmp(buf, maki_id_a, (size_t) 8) != 0 && ++ strncmp(buf, maki_id_b, (size_t) 8) != 0) ++ maki_error(mi, MAKI_FORMAT); ++ mi->m_maki01b = (buf[6] == 'B'); ++} ++ ++static void maki_skip_comment(mi) ++ struct maki_info *mi; ++{ ++ int i; ++ int c; ++ ++ for(i = 0; i < 24; i++){ ++ if((c = fgetc(mi->fp)) == EOF) ++ maki_file_error(mi, MAKI_CORRUPT); ++ if(c == '\032') /* ^Z, 0x1a */ ++ break; ++ } ++ if(c != '\032') ++ maki_file_error(mi, MAKI_COMMENT); ++ ++ fseek(mi->fp, 32L, SEEK_SET); ++} ++ ++static void maki_read_header(mi) ++ struct maki_info *mi; ++{ ++ byte buf[16]; ++ ++ if(fread(buf, (size_t) 16, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_CORRUPT); ++ ++ mi->fb_size = (long)buf[ 0] << 8 | (long)buf[ 1]; ++ mi->pa_size = (long)buf[ 2] << 8 | (long)buf[ 3]; ++ mi->pb_size = (long)buf[ 4] << 8 | (long)buf[ 5]; ++ mi->ext_flag = (long)buf[ 6] << 8 | (long)buf[ 7]; ++ mi->x0 = (long)buf[ 8] << 8 | (long)buf[ 9]; ++ mi->y0 = (long)buf[10] << 8 | (long)buf[11]; ++ mi->x1 = (long)buf[12] << 8 | (long)buf[13]; ++ mi->y1 = (long)buf[14] << 8 | (long)buf[15]; ++ ++ mi->width = mi->x1-- - mi->x0; ++ mi->height = mi->y1-- - mi->y0; ++ mi->m_200 = mi->ext_flag & 1; ++ mi->m_dig8 = mi->ext_flag & 2; ++ mi->aspect = mi->m_200 ? 0.5 : 1.0; ++ ++ if(DEBUG) maki_show_maki_info(mi); ++} ++ ++static void maki_read_palette(mi, r, g, b) ++ struct maki_info *mi; ++ byte *r, *g, *b; ++{ ++ byte buf[48], *p; ++ ++ if(fread(buf, (size_t) 48, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_CORRUPT); ++ ++ for(p = buf; p < &buf[48]; ){ ++ *g++ = *p++; ++ *r++ = *p++; ++ *b++ = *p++; ++ } ++} ++ ++static void maki_read_flags(mi) ++ struct maki_info *mi; ++{ ++ mi->fa = maki_malloc((size_t) 1000 , "maki_read_flags#1"); ++ mi->fb = maki_malloc((size_t) mi->fb_size, "maki_read_flags#2"); ++ ++ if(fread(mi->fa, (size_t) 1000, (size_t) 1, mi->fp) != 1) ++ maki_file_warning(mi, MAKI_CORRUPT); ++ if(fread(mi->fb, (size_t) mi->fb_size, (size_t) 1, mi->fp) != 1) ++ maki_file_warning(mi, MAKI_CORRUPT); ++} ++ ++static void maki_read_pixel_data(mi) ++ struct maki_info *mi; ++{ ++ mi->pa = maki_malloc((size_t) mi->pa_size, "maki_read_pixel_data#1"); ++ mi->pb = maki_malloc((size_t) mi->pb_size, "maki_read_pixel_data#2"); ++ ++ if(fread(mi->pa, (size_t) mi->pa_size, (size_t) 1, mi->fp) != 1) ++ maki_file_warning(mi, MAKI_CORRUPT); ++ if(fread(mi->pb, (size_t) mi->pb_size, (size_t) 1, mi->fp) != 1) ++ maki_file_warning(mi, MAKI_CORRUPT); ++} ++ ++static void maki_expand_virtual_screen(mi) ++ struct maki_info *mi; ++{ ++ int x, y, fai, fbi; ++ int bpl = mi->width / 2 / 8; /* bytes per line */ ++ byte mask; ++ mi->vs = maki_malloc((size_t) bpl * mi->height, // GRR POSSIBLE OVERFLOW / FIXME ++ "maki_expand_virtual_screen"); ++ ++ fai = fbi = 0; ++ mask = 0x80; ++ for(y = 0; y < mi->height; y += 4){ ++ for(x = 0; x < mi->width / 2; x += 4){ ++ if(mi->fa[fai] & mask){ ++ byte bh, bl; ++ bh = mi->fb[fbi++]; ++ bl = mi->fb[fbi++]; ++ if(x % 8 == 0){ ++ mi->vs[ y * bpl + x / 8] = H4(bh) << 4; ++ mi->vs[(y + 1) * bpl + x / 8] = L4(bh) << 4; ++ mi->vs[(y + 2) * bpl + x / 8] = H4(bl) << 4; ++ mi->vs[(y + 3) * bpl + x / 8] = L4(bl) << 4; ++ }else{ ++ mi->vs[ y * bpl + x / 8] |= H4(bh); ++ mi->vs[(y + 1) * bpl + x / 8] |= L4(bh); ++ mi->vs[(y + 2) * bpl + x / 8] |= H4(bl); ++ mi->vs[(y + 3) * bpl + x / 8] |= L4(bl); ++ } ++ }else{ ++ if(x % 8 == 0){ ++ mi->vs[ y * bpl + x / 8] = 0; ++ mi->vs[(y + 1) * bpl + x / 8] = 0; ++ mi->vs[(y + 2) * bpl + x / 8] = 0; ++ mi->vs[(y + 3) * bpl + x / 8] = 0; ++ }else{ ++/* mi->vs[ y * bpl + x / 8] |= 0; ++ mi->vs[(y + 1) * bpl + x / 8] |= 0; ++ mi->vs[(y + 2) * bpl + x / 8] |= 0; ++ mi->vs[(y + 3) * bpl + x / 8] |= 0; */ ++ } ++ } ++ ++ if((mask >>= 1) == 0){ ++ mask = 0x80; ++ fai++; ++ } ++ } ++ } ++} ++ ++static void maki_expand_pixel_data(mi, pic) ++ struct maki_info *mi; ++ byte **pic; ++{ ++ int x, y; ++ int vsi, pi, max_pi; ++ byte *p; ++ byte mask; ++ int gap; ++ *pic = maki_malloc((size_t) mi->width * mi->height, // GRR POSSIBLE OVERFLOW / FIXME ++ "maki_expand_pixel_data"); ++ ++ vsi = pi = 0; ++ p = mi->pa; ++ max_pi = mi->pa_size - 1; ++ mask = 0x80; ++ for(y = 0; y < mi->height; y++){ ++ for(x = 0; x < mi->width; x += 2){ ++ if(mi->vs[vsi] & mask){ ++ if(pi > max_pi){ ++ if(p == mi->pb) ++ maki_error(mi, MAKI_BAD_DATA); ++ pi = 0; ++ p = mi->pb; ++ max_pi = mi->pb_size - 1; ++ } ++ (*pic)[y * mi->width + x ] = H4(p[pi]); ++ (*pic)[y * mi->width + x + 1] = L4(p[pi]); ++ pi++; ++ }else{ ++ (*pic)[y * mi->width + x ] = 0; ++ (*pic)[y * mi->width + x + 1] = 0; ++ } ++ ++ if((mask >>= 1) == 0){ ++ mask = 0x80; ++ vsi++; ++ } ++ } ++ } ++ ++ gap = mi->m_maki01b ? 4 : 2; ++ ++ for(y = gap; y < mi->height; y++){ ++ for(x = 0; x < mi->width; x++) ++ (*pic)[y * mi->width + x] ^= (*pic)[(y - gap) * mi->width + x]; ++ } ++} ++ ++ ++int WriteMAKI(fp, pic, ptype, w, h, rmap, gmap, bmap, numcols, colorstyle) ++ FILE *fp; ++ byte *pic; ++ int ptype, w, h; ++ byte *rmap, *gmap, *bmap; ++ int numcols, colorstyle; ++{ ++ byte rtemp[256], gtemp[256], btemp[256]; ++ struct maki_info maki, *mi = &maki; ++ int e; ++ ++ if(DEBUG) fputs("WriteMAKI:\n", stderr); ++ ++ maki_init_info(&maki); ++ if((e = setjmp(maki.jmp)) != 0){ ++ /* An error occurs */ ++ maki_cleanup_maki_info(&maki, 1); ++ return -1; ++ } ++ ++ if(w != 640 || h != 400) { ++ char str[512]; ++ sprintf(str,"MAKI: %s Should be 640x400", maki_msgs[MAKI_SIZE]); ++ ErrPopUp(str, "\nBummer!"); ++ maki_error(mi, MAKI_SIZE); ++ } ++ ++ maki.fp = fp; ++ maki.width = w; ++ maki.height = h; ++ maki.x1 = w - 1; ++ maki.y1 = h - 1; ++ ++ if(ptype == PIC24){ ++ if(!(pic = Conv24to8(pic, w, h, 16, rtemp, gtemp, btemp))) ++ maki_memory_error("Conv24to8#1", "WriteMAKI"); ++ rmap = rtemp; ++ gmap = gtemp; ++ bmap = btemp; ++ }else if(numcols > 16){ ++ if(!(pic = Conv8to24(pic, w, h, rmap, gmap, bmap))) ++ maki_memory_error("Conv8to24", "WriteMAKI"); ++ if(!(pic = Conv24to8(pic, w, h, 16, rtemp, gtemp, btemp))) ++ maki_memory_error("Conv24to8#2", "WriteMAKI"); ++ rmap = rtemp; ++ gmap = gtemp; ++ bmap = btemp; ++ }else ++ maki.numcols = numcols; ++ ++ maki_make_pixel_data(&maki, pic); ++ maki_make_virtual_screen(&maki); ++ maki_make_flags(&maki); ++ maki_write_check_id(&maki); ++ maki_write_comment(&maki); ++ maki_write_header(&maki); ++ maki_write_palette(&maki, rmap, gmap, bmap, colorstyle == F_GREYSCALE); ++ maki_write_flags(&maki); ++ maki_write_pixel_data(&maki); ++ ++ maki_cleanup_maki_info(&maki, 1); ++ return 0; ++} ++ ++static void maki_make_pixel_data(mi, pic) ++ struct maki_info *mi; ++ byte *pic; ++{ ++ int x, y, i; ++ int nza, nzb; ++ ++ mi->forma = maki_malloc((size_t) mi->width / 2 * mi->height, // GRR POSSIBLE OVERFLOW / FIXME ++ "maki_make_pixel_data#1"); ++ mi->formb = maki_malloc((size_t) mi->width / 2 * mi->height, // GRR POSSIBLE OVERFLOW / FIXME ++ "maki_make_pixel_data#2"); ++ ++ for(y = 0; y < mi->height; y++){ ++ for(x = 0; x < mi->width; x += 2){ ++ byte b; ++ b = pic[y * mi->width + x] << 4 | pic[y * mi->width + x + 1]; ++ mi->forma[y * mi->width / 2 + x / 2] = b; ++ mi->formb[y * mi->width / 2 + x / 2] = b; ++ } ++ } ++ ++ for(y = mi->height - 1; y >= 2; y--){ ++ for(x = 0; x < mi->width / 2; x++){ ++ mi->forma[y * mi->width / 2 + x] ^= ++ mi->forma[(y - 2) * mi->width / 2 + x]; ++ } ++ } ++ ++ for(y = mi->height - 1; y >= 4; y--){ ++ for(x = 0; x < mi->width / 2; x++){ ++ mi->formb[y * mi->width / 2 + x] ^= ++ mi->formb[(y - 4) * mi->width / 2 + x]; ++ } ++ } ++ ++ nza = nzb = 0; ++ for(i = 0; i < mi->width / 2 * mi->height; i++){ ++ if(mi->forma[i] != 0) ++ nza++; ++ if(mi->formb[i] != 0) ++ nzb++; ++ } ++ if(nza > nzb){ ++ mi->m_maki01b = 1; ++ free(mi->forma); ++ mi->forma = NULL; ++ }else{ ++ mi->m_maki01b = 0; ++ free(mi->formb); ++ mi->formb = NULL; ++ } ++} ++ ++static void maki_make_virtual_screen(mi) ++ struct maki_info *mi; ++{ ++ int bpl = mi->width / 2 / 8; ++ int vsi, pai, pbi, max_pai, max_pbi; ++ byte mask; ++ byte *pixels; ++ int x, y; ++ ++ mi->vs = maki_malloc((size_t) bpl * mi->height, // GRR POSSIBLE OVERFLOW / FIXME ++ "maki_make_virtual_screen#1"); ++ ++ if(mi->m_maki01b) ++ pixels = mi->formb; ++ else ++ pixels = mi->forma; ++ ++ vsi = pai = pbi = 0; ++ max_pai = max_pbi = -1; ++ mask = 0x80; ++ for(y = 0; y < mi->height; y++){ ++ for(x = 0; x < mi->width / 2; x++){ ++ if(pixels[y * mi->width / 2 + x] == 0){ ++ mi->vs[vsi] &= ~mask; ++ }else{ ++ mi->vs[vsi] |= mask; ++ if(y < 200){ ++ if(pai > max_pai){ ++ max_pai += 1024; ++ mi->pa = maki_realloc(mi->pa, (size_t) max_pai + 1, ++ "maki_make_virtual_screen#2"); ++ } ++ mi->pa[pai++] = pixels[y * mi->width / 2 + x]; ++ }else{ ++ if(pbi > max_pbi){ ++ max_pbi += 1024; ++ mi->pb = maki_realloc(mi->pb, (size_t) max_pbi + 2, ++ "maki_make_virtual_screen#3"); ++ } ++ mi->pb[pbi++] = pixels[y * mi->width / 2 + x]; ++ } ++ } ++ ++ if((mask >>= 1) == 0){ ++ mask = 0x80; ++ vsi++; ++ } ++ } ++ } ++ ++ mi->pa_size = pai; ++ mi->pb_size = pbi; ++} ++ ++static void maki_make_flags(mi) ++ struct maki_info *mi; ++{ ++ int bpl = mi->width / 2 / 8; ++ int fbi, max_fbi; ++ int fai; ++ int x, y; ++ byte mask; ++ ++ mi->fa = maki_malloc((size_t) bpl * mi->height, "maki_make_flags#1"); // GRR POSSIBLE OVERFLOW / FIXME ++ ++ fbi = fai = 0; ++ max_fbi = -1; ++ mask = 0x80; ++ for(y = 0; y < mi->height; y += 4){ ++ for(x = 0; x < mi->width / 2; x += 4){ ++ if(x % 8 == 0){ ++ if(H4(mi->vs[ y * bpl + x / 8]) == 0 && ++ H4(mi->vs[(y + 1) * bpl + x / 8]) == 0 && ++ H4(mi->vs[(y + 2) * bpl + x / 8]) == 0 && ++ H4(mi->vs[(y + 3) * bpl + x / 8]) == 0){ ++ mi->fa[fai] &= ~mask; ++ }else{ ++ mi->fa[fai] |= mask; ++ if(fbi + 1 > max_fbi){ ++ max_fbi += 1024; ++ mi->fb = maki_realloc(mi->fb, (size_t) max_fbi + 1, ++ "maki_make_flags#2"); ++ } ++ mi->fb[fbi++] = H4(mi->vs[ y * bpl + x / 8]) << 4 ++ | H4(mi->vs[(y + 1) * bpl + x / 8]); ++ mi->fb[fbi++] = H4(mi->vs[(y + 2) * bpl + x / 8]) << 4 ++ | H4(mi->vs[(y + 3) * bpl + x / 8]); ++ } ++ }else{ ++ if(L4(mi->vs[ y * bpl + x / 8]) == 0 && ++ L4(mi->vs[(y + 1) * bpl + x / 8]) == 0 && ++ L4(mi->vs[(y + 2) * bpl + x / 8]) == 0 && ++ L4(mi->vs[(y + 3) * bpl + x / 8]) == 0){ ++ mi->fa[fai] &= ~mask; ++ }else{ ++ mi->fa[fai] |= mask; ++ if(fbi + 1 > max_fbi){ ++ max_fbi += 1024; ++ mi->fb = maki_realloc(mi->fb, (size_t) max_fbi + 1, ++ "maki_make_flags#3"); ++ } ++ mi->fb[fbi++] = L4(mi->vs[ y * bpl + x / 8]) << 4 ++ | L4(mi->vs[(y + 1) * bpl + x / 8]); ++ mi->fb[fbi++] = L4(mi->vs[(y + 2) * bpl + x / 8]) << 4 ++ | L4(mi->vs[(y + 3) * bpl + x / 8]); ++ } ++ } ++ ++ if((mask >>= 1) == 0){ ++ mask = 0x80; ++ fai++; ++ } ++ } ++ } ++ ++ mi->fb_size = fbi; ++} ++ ++static void maki_write_check_id(mi) ++ struct maki_info *mi; ++{ ++ char *id = mi->m_maki01b ? maki_id_b : maki_id_a; ++ if(fwrite(id, (size_t) 8, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++} ++ ++static void maki_write_comment(mi) ++ struct maki_info *mi; ++{ ++ char buf[24]; ++ char *p; ++ int i = 0; ++ ++ strcpy(buf, "XV "); ++ ++ if((p = (char *) getenv("USER")) == NULL) ++ p = "????????"; ++ for(i = 5; i < 23; i++){ ++ if(*p == '\0') ++ break; ++ buf[i] = *p++; ++ } ++ for( ; i < 23; i++) ++ buf[i] = ' '; ++ ++ buf[i] = '\032'; /* ^Z, 0x1a */ ++ ++ if(fwrite(buf, (size_t) 24, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++} ++ ++static void maki_write_header(mi) ++ struct maki_info *mi; ++{ ++ byte buf[16]; ++ ++ if(DEBUG) maki_show_maki_info(mi); ++ ++#define set_word(i, v) {buf[i]=(v)>>8&0xff;buf[i+1]=(v)&0xff;} ++ set_word(0, mi->fb_size); ++ set_word(2, mi->pa_size); ++ set_word(4, mi->pb_size); ++ set_word(6, mi->ext_flag); ++ set_word(8, mi->x0); ++ set_word(10, mi->y0); ++ set_word(12, mi->x1 + 1); ++ set_word(14, mi->y1 + 1); ++#undef set_word ++ ++ if(fwrite(buf, (size_t) 16, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++} ++ ++static void maki_write_palette(mi, r, g, b, grey) ++ struct maki_info *mi; ++ byte *r, *g, *b; ++ int grey; ++{ ++ int i; ++ char buf[3]; ++ for(i = 0; i < mi->numcols; i++){ ++ buf[0] = *g++; ++ buf[1] = *r++; ++ buf[2] = *b++; ++ if(grey) ++ buf[0] = buf[1] = buf[2] = MONO(buf[1], buf[0], buf[2]); ++ if(fwrite(buf, (size_t) 3, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++ } ++ for( ; i < 16; i++){ ++ if(fwrite(buf, (size_t) 3, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++ } ++} ++ ++static void maki_write_flags(mi) ++ struct maki_info *mi; ++{ ++ int bpl = mi->width / 2 / 8; ++ if(fwrite(mi->fa, (size_t) bpl * mi->height / 16, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++ ++ if(fwrite(mi->fb, (size_t) mi->fb_size, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++} ++ ++static void maki_write_pixel_data(mi) ++ struct maki_info *mi; ++{ ++ if(fwrite(mi->pa, (size_t) mi->pa_size, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++ ++ if(fwrite(mi->pb, (size_t) mi->pb_size, (size_t) 1, mi->fp) != 1) ++ maki_file_error(mi, MAKI_WRITE); ++} ++ ++ ++ ++static void maki_init_info(mi) ++ struct maki_info *mi; ++{ ++ xvbzero((char *)mi, sizeof(struct maki_info)); ++ mi->fp = NULL; ++ mi->fsize = 0; ++ mi->x0 = mi->y0 = mi->x1 = mi->y1 = 0; ++ mi->width = mi->height = 0; ++ mi->aspect = 1.0; ++ mi->fb_size = mi->pa_size = mi->pb_size = 0; ++ mi->m_maki01b = mi->m_200 = mi->m_dig8 = 0; ++ mi->ext_flag = 0; ++ mi->fa = mi->fb = mi->pa = mi->pb = NULL; ++ mi->vs = NULL; ++ mi->numcols = 16; ++ mi->forma = mi->formb = NULL; ++} ++ ++static void maki_cleanup_maki_info(mi, writing) ++ struct maki_info *mi; ++ int writing; ++{ ++ if(mi->fp && !writing) ++ fclose(mi->fp); ++ if(mi->fa) ++ free(mi->fa); ++ if(mi->fb) ++ free(mi->fb); ++ if(mi->pa) ++ free(mi->pa); ++ if(mi->pb) ++ free(mi->pb); ++ if(mi->vs) ++ free(mi->vs); ++ if(mi->forma) ++ free(mi->forma); ++ if(mi->formb) ++ free(mi->formb); ++} ++ ++static void maki_cleanup_pinfo(pi) ++ PICINFO *pi; ++{ ++ if(pi->pic){ ++ free(pi->pic); ++ pi->pic = NULL; ++ } ++} ++ ++static void maki_memory_error(scm, fn) ++ char *scm, *fn; ++{ ++ char buf[128]; ++ sprintf(buf, "%s: coulndn't allocate memory. (%s)", scm, fn); ++ FatalError(buf); ++} ++ ++static void maki_error(mi, mn) ++ struct maki_info *mi; ++ int mn; ++{ ++ SetISTR(ISTR_WARNING, "%s", maki_msgs[mn]); ++ longjmp(mi->jmp, 1); ++} ++ ++static void maki_file_error(mi, mn) ++ struct maki_info *mi; ++ int mn; ++{ ++ if(feof(mi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", maki_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", maki_msgs[mn], ERRSTR(errno)); ++ longjmp(mi->jmp, 1); ++} ++ ++static void maki_file_warning(mi, mn) ++ struct maki_info *mi; ++ int mn; ++{ ++ if(feof(mi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", maki_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", maki_msgs[mn], ERRSTR(errno)); ++} ++ ++static void maki_show_maki_info(mi) ++ struct maki_info *mi; ++{ ++ fprintf(stderr, " file size: %ld.\n", mi->fsize); ++ fprintf(stderr, " image size: %dx%d.\n", mi->width, mi->height); ++ fprintf(stderr, " aspect: %f.\n", mi->aspect); ++ fprintf(stderr, " flag B size: %ld.\n", mi->fb_size); ++ fprintf(stderr, " pixel data size: A:%ld, B:%ld.\n", ++ mi->pa_size, mi->pb_size); ++ fprintf(stderr, " MAKI01B: %s.\n", mi->m_maki01b ? "true" : "false"); ++ fprintf(stderr, " 200 line mode: %s.\n", mi->m_200 ? "true" : "false"); ++ fprintf(stderr, " digital 8 colors: %s.\n", mi->m_dig8 ? "true" : "false"); ++} ++ ++static void *maki_malloc(n, fn) ++ size_t n; ++ char *fn; ++{ ++ void *r = (void *) malloc(n); ++ if(r == NULL) ++ maki_memory_error("malloc", fn); ++ return r; ++} ++ ++static void *maki_realloc(p, n, fn) ++ void *p; ++ size_t n; ++ char *fn; ++{ ++ void *r = (p == NULL) ? (void *) malloc(n) : (void *) realloc(p, n); ++ if(r == NULL) ++ maki_memory_error("realloc", fn); ++ return r; ++} ++#endif /* HAVE_MAKI */ +diff -ruN xv-3.10a-bugfixes/xvmgcsfx.c xv-3.10a-enhancements/xvmgcsfx.c +--- xv-3.10a-bugfixes/xvmgcsfx.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvmgcsfx.c 2005-05-01 10:20:12.000000000 -0700 +@@ -0,0 +1,2276 @@ ++/* ++ * $Id: xvmgcsfx.c,v 1.23 95/11/27 19:03:36 tin329 Exp Locker: tin329 $ ++ * xvmgcsfx.c - Use the filters as input and output method. ++ * ++ * Features ++ * ======== ++ * Use the filters as input and output method for load and save unsupported ++ * image format file. The filter command is recognized by definition of ++ * magic number or suffix in "~/.xv_mgcsfx" . ++ * ++ * Bugs ++ * ==== ++ * There are many bugs. ++ * Let's go hunting for insects with an insect net. (it's all joke.) ++ * ++ * Author ++ * ====== ++ * Tetsuya INOUE ++ */ ++ ++/* ++ * Known Bugs and Todo / $B$"$l$3$l5$$K$J$k$3$H(B ++ * ++ * ~/.xv_mgcsfx $BFb(B ++ * $B!&Dj5A$,IT40A4$@$H%(%i!<(B (':'$B$N?t(B)$B!#(B ++ * $B!&%G%j%_%?$H$7$F(B ':' $B$r;H$&$N$G!"%9%?!<%H%"%C%W%U%!%$%kFb$G(B ++ * ':' $B$rMQ$$$FDj5A$O$G$-$J$$!#(B'\:'$B$G$b%@%a!#(B ++ * $B!&(B magic $B%?%$%W$G!"#8?J?t$O#37eJ,#0!A#7$rD4$Y!"#1#6?J?t$O(B ++ * isxdigit $B$,??$rJV$94VCf=hM}$5$l$k!#$7$+$7!"#1#b#y#t#e$H(B ++ * $B$7$F$7$+I>2A$5$l$J$$!#(B ++ * $B!&%W%j%W%m%;%C%5$r;H$&$H$-$O!"%3%a%s%H$N=q$-J}$KCm0U$7$J$1$l$P$J(B ++ * $B$i$J$$!#%W%j%W%m%;%C%5$K$h$C$F$O%3%a%s%H$,%(%i!<$K$J$k!#(B ++ * $B!&%Q%$%W$X$NF~=PNO$N%U%)!<%^%C%H$Nl9g$rG'$a$k$+!)(B ++ * $B!&(Bcompress(gzip)$B$N%U%!%$%k$O%F%s%]%i%j$G$O(B xvtmp??? $B$H$$$&L>A0$J(B ++ * $B$N$G(B suffix $B$G$O<1JL$G$-$J$$!#(B ++ * ++ * $BG'<1$9$k;~$K(B MACBINARY $B$K$OIi$1$k(B(in xv.c)$B!#(B ++ * ++ * $BB?=E$K(B pipe $B$rDL$9$3$H$,$G$-$J$$!#(B(pipe $B$,(B seek $B$G$-$J$$$+$i(B) ++ * $B!&(Bsocketpair $B$G!"(Brecv $B$K(B MSG_PEEK $B%U%i%0$r$D$+$C$F6uFI$_$9$k!#(B ++ * $B!&$3$l$r$d$k$H%U%!%$%k$NG'<1$,$a$A$c$a$A$cCY$/$J$k!#(B ++ * ++ * $B%j%=!<%9$G@_Dj(B ++ * $B!&%j%=!<%9$G@_Dj$9$kJ}$,LLE]$/$5$$(B ++ * ++ * $B%^%8%C%/%J%s%P!<$N@_Dj$K@55,I=8=(B ++ * ++ * $B%;!<%VMQ%W%m%;%9$,<:GT$9$k>l9g$NBP:v$,:#0l$D(B ++ * ++ * DEC OSF/1 V3.0 $B$G$O!"%Q%$%W$K%G!<%?$,$^$@$J$$;~$KFI$_9~$b$&$H$9$k$H!"(B ++ * read $B$,IT40A4$K$J$k!#(B(in xvpbm.c) ++ * $BF1MM$K=q$-9~$_;~$K$bLdBj$,@8$8$k$+$b$7$l$J$$!#(B ++ */ ++ ++#define NEEDSDIR /* for stat() */ ++#include "xv.h" ++ ++ ++#ifdef HAVE_MGCSFX ++ ++ ++#ifdef __osf__ ++# ifdef __alpha ++# define ARCHITECTURE64 1 ++# endif /* __alpha */ ++#endif /* __osf__ */ ++ ++#ifdef ARCHITECTURE64 ++typedef short int16; ++typedef int int32; ++typedef long int64; ++#else ++typedef short int16; ++typedef long int32; ++#endif /* ARCHITECTURE64 */ ++ ++#ifdef sgi ++# define vfork fork ++#endif ++ ++#define USE_SIGCHLD ++#if 0 ++# undef USE_SIGCHLD ++#endif ++ ++#ifdef USE_SIGCHLD ++# include ++#endif ++ ++typedef struct _mgcsfxtab ++{ ++ struct _mgcsfxtab *next; ++ char *description; ++ int mgcsfx_type; ++ int offset; ++ union{ ++ int16 int16_data; ++ int32 int32_data; ++ char *string_data; ++ } dt; ++ int string_len; ++ char *suffix; ++ int input_image_type; ++ char *input_command; ++ int output_image_type; ++ char *output_command; ++} mgcsfxtab; ++ ++ ++#ifndef MGCSFXDIR ++# define MGCSFXDIR "/usr/local/lib" ++#endif ++#ifndef SYSCONFDIR ++# define SYSCONFDIR MGCSFXDIR ++#endif ++#ifndef MGCSFX_SITE_RC ++# define MGCSFX_SITE_RC "xv_mgcsfx" ++#endif ++#ifndef MGCSFX_RC ++# define MGCSFX_RC ".xv_mgcsfx" ++#endif ++ ++#ifdef USE_MGCSFX_PREPROCESSOR ++# ifndef MGCSFX_PREPROCESSOR ++# define MGCSFX_PREPROCESSOR "/usr/lib/cpp" ++# endif ++#endif ++ ++ ++/* Check type for Magic number and Suffix */ ++enum {T_UNKNOWN, ++ T_MAGIC, T_SUFFIX, ++ T_BEINT16, T_BEINT32, T_BEINT64, ++ T_LEINT16, T_LEINT32, T_LEINT64}; ++ ++/* Image Type for input and output format */ ++enum {IT_UNKNOWN, ++#ifdef HAVE_MGCSFX_AUTO ++ IT_AUTO, ++#endif /* HAVE_MGCSFX_AUTO */ ++ IT_PNM, IT_PPM, IT_PGM, IT_PBM, ++ IT_PNM_RAW, IT_PPM_RAW, IT_PGM_RAW, IT_PBM_RAW, ++ IT_PNM_ASCII, IT_PPM_ASCII, IT_PGM_ASCII, IT_PBM_ASCII, ++ IT_GIF, IT_JPEG, IT_TIFF, IT_JFIF, /* IT_PS, IT_COMPRESS,*/ ++ IT_XBM, IT_XPM, IT_BMP, IT_SUNRAS, IT_IRIS, IT_XWD, ++ /* IT_TARGA, IT_FITS, IT_PM, IT_UTAHRLE, IT_PCX, IT_PDSVICAR, IT_IFF, */ ++ IT_MAG, IT_MAKI, IT_PI, IT_PIC, IT_PIC2 /* , IT_PCD */}; ++ ++ ++/*--------------------------------------------------------------------------*/ ++void mgcsfx_handler PARM((int)); ++void mgcsfx_handler_setup PARM((void)); ++ ++#ifdef USE_MGCSFX_PREPROCESSOR ++static char *get_tmp_fname PARM((void)); ++static char *make_preprocessed_file PARM((char *)); ++#endif /* USE_MGCSFX_PREPROCESSOR */ ++ ++int is_mgcsfx PARM((char *, unsigned char *, int)); ++ ++char *mgcsfx_auto_input_com PARM((char *)); ++ ++ ++static mgcsfxtab *free_mgcsfx PARM((mgcsfxtab *)); ++static char *fgettoken PARM((FILE*, int)); ++static int string_fin PARM((char *)); ++static int type_mgcsfx PARM((char *)); ++static int type_image PARM((char *)); ++ ++static void read_mgcsfx PARM((mgcsfxtab **, char *)); ++static void init_mgcsfx PARM((void)); ++static mgcsfxtab *find_mgcsfx PARM((char *, unsigned char *, int)); ++ ++int LoadMGCSFX PARM((char *, PICINFO *)); ++ ++#ifdef SVR4 ++typedef void Sigfunc(int); ++static Sigfunc *xv_signal PARM((int , Sigfunc *)); ++#endif ++ ++/*--------------------------------------------------------------------------*/ ++mgcsfxtab *mgcsfx_table = NULL; ++int mgcsfx_setup_flag = 0; ++ ++int nitem_mgcsfx = 0; ++int desc_width = 0; ++ ++int max_offset_mgcsfx = 0; ++int max_length_mgcsfx = 0; ++int need_buf_size = 0; ++ ++static char input_command_ex[1024]; ++static int input_command_ex_flag = 0; ++ ++#ifdef USE_SIGCHLD ++static int w_p_fail=0; ++#endif ++ ++/*--------------------------------------------------------------------------*/ ++ ++/***************************************************/ ++void mgcsfx_handler(sig) ++ int sig; ++{ ++#ifdef USE_SIGCHLD ++ int pid, pst; ++#endif ++ ++#if defined(SYSV) || defined(SVR4) ++ sighold(sig); ++#else ++ sigblock(sigmask(sig)); ++#endif ++ ++#ifdef USE_SIGCHLD ++ if(w_p_fail == 1){ ++ /* ++ * At this point, process write to broken pipe. ++ * Probably external command was can't exec. ++ */ ++ w_p_fail = 2; ++ pid = wait(&pst); ++ } ++#endif ++ ++ return; ++ ++ /* Quit(1); */ /*exit(1);*/ ++} ++ ++void mgcsfx_handler_setup() ++{ ++#ifdef SVR4 ++ xv_signal(SIGPIPE, (void (*)PARM((int))) mgcsfx_handler); ++ xv_signal(SIGCHLD, (void (*)PARM((int))) mgcsfx_handler); ++#else ++# ifdef SYSV ++ sigset(SIGPIPE, (void (*)PARM((int))) mgcsfx_handler); ++ sigset(SIGCHLD, (void (*)PARM((int))) mgcsfx_handler); ++# else ++ signal(SIGPIPE, (void (*)PARM((int))) mgcsfx_handler); ++ signal(SIGCHLD, (void (*)PARM((int))) mgcsfx_handler); ++# endif ++#endif ++} ++ ++/***************************************************/ ++#ifdef USE_MGCSFX_PREPROCESSOR ++static char *get_tmp_fname() ++{ ++ static char tmp[MAXPATHLEN+1]; ++ ++#ifndef VMS ++ sprintf(tmp, "%s/xvmgcsfxXXXXXX",tmpdir); ++#else ++ /* sprintf(tmp, "Sys$Scratch:xvmgcsfxXXXXXX"); */ ++ strcpy(tmp, "[]xvmgcsfxXXXXXX"); ++#endif /* VMS */ ++ ++#ifdef USE_MKSTEMP ++ close(mkstemp(tmp)); ++#else ++ mktemp(tmp); ++#endif ++ ++ return tmp; ++} ++ ++static char *make_preprocessed_file(fname) ++ char *fname; ++{ ++ char buf[512]; ++ char *tmp_name; ++ ++ tmp_name = get_tmp_fname(); ++ ++#ifndef VMS ++ sprintf(buf,"%s %s > %s", MGCSFX_PREPROCESSOR, fname, tmp_name); ++#else ++ sprintf(buf,"%s %s > %s", MGCSFX_PREPROCESSOR, fname, tmp_name); /* really OK? */ ++#endif ++ ++ SetISTR(ISTR_INFO, "Preprocessing '%s'...", BaseName(fname)); ++#ifndef VMS ++ if (system(buf)) ++#else ++ if (!system(buf)) ++#endif ++ { ++ SetISTR(ISTR_INFO, "Unable to preprocess '%s'.", BaseName(fname)); ++ Warning(); ++ return NULL; ++ } ++ ++ return tmp_name; ++} ++#endif /* USE_MGCSFX_PREPROCESSOR */ ++ ++/***************************************************/ ++/* $BG'<1$G$-$k%U%!%$%k$+$I$&$+D4$Y$k(B */ ++int is_mgcsfx(fname,buffer,size) ++ char *fname; ++ unsigned char *buffer; ++ int size; ++{ ++ mgcsfxtab *magic; ++ FILE *fp; ++ unsigned char *buf; ++ int s; ++ ++ if(nomgcsfx){ ++ return 0; ++ }else{ ++ if(size < need_buf_size){ ++ if((buf = (unsigned char *)calloc(need_buf_size, sizeof(char)))==NULL){ ++ fprintf(stderr,"Can't allocate memory\n"); ++ return 0; ++ } ++ if((fp = xv_fopen(fname, "r"))==NULL){ ++ fprintf(stderr,"Can't open file %s\n", fname); ++ free(buf); ++ return 0; ++ } ++ s = fread(buf, 1, need_buf_size, fp); ++ if((magic = find_mgcsfx(fname, buf, s))!=NULL && ++ magic->input_command != NULL){ ++ free(buf); ++ fclose(fp); ++ return 1; ++ }else{ ++ free(buf); ++ fclose(fp); ++ return 0; ++ } ++ }else{ ++ if((magic = find_mgcsfx(fname, buffer, size))!=NULL && ++ magic->input_command != NULL){ ++ return 1; ++ }else{ ++ return 0; ++ } ++ } ++ } ++} ++ ++#ifdef HAVE_MGCSFX_AUTO ++char *mgcsfx_auto_input_com(fname) ++char *fname; ++{ ++ static char command[1024]; ++ mgcsfxtab *magic; ++ char *ptr; ++ ++ FILE *fp; ++ unsigned char *buf; ++ int s; ++ ++ if((buf = (unsigned char *)calloc(need_buf_size, sizeof(char)))==NULL){ ++ fprintf(stderr,"Can't allocate memory\n"); ++ return NULL; ++ } ++ if((fp = xv_fopen(fname, "r"))==NULL){ ++ fprintf(stderr,"Can't open file %s\n", fname); ++ free(buf); ++ return NULL; ++ } ++ s = fread(buf, 1, need_buf_size, fp); ++ if((magic = find_mgcsfx(fname, buf, s))!=NULL && ++ magic->input_command != NULL && magic->input_image_type == IT_AUTO){ ++ if ((ptr = strstr(magic->input_command, "%s"))){ ++ sprintf(command, magic->input_command, fname); ++ }else{ ++ sprintf(command, "%s < %s", magic->input_command, fname); ++ } ++ free(buf); ++ fclose(fp); ++ return command; ++ }else{ ++ free(buf); ++ fclose(fp); ++ return NULL; ++ } ++} ++#endif /* HAVE_MGCSFX_AUTO */ ++ ++/***************************************************/ ++static mgcsfxtab *free_mgcsfx(m) ++ mgcsfxtab *m; ++{ ++ mgcsfxtab *next; ++ if(m == NULL) return NULL; ++ next = m->next; ++ if(m->description != NULL) free(m->description); ++ if(m->mgcsfx_type == T_MAGIC && m->dt.string_data != NULL) ++ free(m->dt.string_data); ++ if(m->suffix != NULL) free(m->suffix); ++ if(m->input_command != NULL) free(m->input_command); ++ if(m->output_command != NULL) free(m->output_command); ++ free(m); ++ return next; ++} ++ ++ ++ ++/***************************************************/ ++/* char c $B$^$?$O(B '\n' $B$G6h@Z$i$l$?J8;zNs$rl9g$O(B '\n' $B$r%9%H%j!<%`$KLa$9(B) ++ */ ++#define CBUF_SIZE 1024 ++static char *fgettoken(fp, c) ++ FILE *fp; ++ int c; /* Real mean is char */ ++{ ++ char *buf; ++ char *buf2; ++ int i; ++ int n=0; ++ int max=0; ++ int count = 1; ++ ++ char *ss; ++ char *se; ++ ++ if((buf = (char *)calloc(CBUF_SIZE, sizeof(char))) == NULL){ ++ fprintf(stderr,"Can't allocate memory\n"); ++ exit(1); ++ } ++ max = CBUF_SIZE; ++ count = 2; ++ ++ do{ ++ if((i = getc(fp))==EOF || i == '\n' || i == c) break; ++ ++ buf[n] = (char)i; ++ ++ if(i != c && n == max-1){ ++ buf[max] = '\0'; ++ if((buf2 = (char *)calloc(CBUF_SIZE * count, sizeof(char))) == NULL){ ++ fprintf(stderr,"Can't allocate memory\n"); ++ exit(1); ++ } ++ strcpy(buf2, buf); ++ free(buf); ++ buf = buf2; ++ buf2 = NULL; ++ max = CBUF_SIZE * count; ++ count++; ++ } ++ ++ n++; ++ }while(i != c); ++ ++ buf[n] = '\0'; ++ ++ /* $B:G=i$H:G8e$N6uGrJ8;z$r@Z$j5M$a$k(B */ ++ ss = buf + strspn(buf, " \t\b\r\n"); /* find the first non-white space */ ++ se = buf + strlen(buf); /* find the end of the string */ ++ ++ /* strip from the end first */ ++ while ((--se >= ss) && strchr(" \t\b\r\n", *se)); ++ *(++se) = '\0'; ++ ++ if(i == EOF && strlen(ss)==0){ /* EOF $B$J$i(B NULL $B$rJV$9(B */ ++ free(buf); ++ return NULL; ++ }else if(i == '\n' && strlen(ss)==0){ /* $B2~9T$N$_$N>l9g(B */ ++ static char cr[2] = {'\n','\0'}; ++ buf2 = strdup(cr); ++ free(buf); ++ return buf2; ++ }else{ /* $BDL>o(B */ ++ if(i == '\n' && strlen(ss)>0) ungetc(i,fp); ++ buf2 = strdup(ss); ++ free(buf); ++ return buf2; ++ } ++} ++ ++ ++ ++/***************************************************/ ++/* $BJ8;zNsCf$NFC= '0') && (ptr[1] <= '7')){ ++ if ((ptr[2] >= '0') && (ptr[2] <= '7')){ /* \000 ...\377 */ ++ *cptr = ((*ptr - '0') * 64) +((ptr[1] - '0') * 8) +(ptr[1] - '0'); ++ ptr += 2; ++ }else{ /* \00 ...\77 */ ++ *cptr = ((*ptr - '0') * 8) + (ptr[1] - '0'); ++ ++ptr; ++ } ++ }else{ /* \0 ...\7 */ ++ *cptr = *ptr - '0'; ++ } ++ break; ++ case 'x': /* Hexadecimal constant \x0 .. \xff */ ++ if (isxdigit (ptr[1])){ ++ *cptr = 0; ++ while (isxdigit (*(++ptr))) ++ *cptr = (*cptr * 16) + ++ (*ptr > '9' ? tolower (*ptr) - ('a' - 10) : *ptr - '0'); ++ --ptr; ++ break; ++ } ++ default: ++ /* *(cptr++) = '\\'; No use for treat '\z' as 'z' */ ++ *cptr = *ptr; ++ break; ++ } ++ } ++ ++cptr; ++ } ++ *cptr = '\0'; ++ length = cptr - string_data; ++ return length; ++} ++ ++/***************************************************/ ++static int type_mgcsfx(str) ++ char *str; ++{ ++ if(str == NULL){ ++ return T_UNKNOWN; ++ }else if(!strcmp(str, "magic") || !strcmp(str, "MAGIC")){ ++ return T_MAGIC; ++ }else if(!strcmp(str, "string") || !strcmp(str, "STRING")){ ++ return T_MAGIC; ++ }else if(!strcmp(str, "suffix") || !strcmp(str, "SUFFIX")){ ++ return T_SUFFIX; ++ }else if(!strcmp(str, "beint16") || !strcmp(str, "BEINT16")){ ++ return T_BEINT16; ++ }else if(!strcmp(str, "leint16") || !strcmp(str, "LEINT16")){ ++ return T_LEINT16; ++ }else if(!strcmp(str, "beint32") || !strcmp(str, "BEINT32")){ ++ return T_BEINT32; ++ }else if(!strcmp(str, "leint32") || !strcmp(str, "LEINT32")){ ++ return T_LEINT32; ++ }else{ ++ return T_UNKNOWN; ++ } ++} ++ ++/***************************************************/ ++static int type_image(str) ++ char *str; ++{ ++ if(str == NULL){ ++ return IT_UNKNOWN; ++#ifdef HAVE_MGCSFX_AUTO ++ }else if(!strcmp(str, "auto") || !strcmp(str, "AUTO")){ ++ return IT_AUTO; ++#endif /* HAVE_MGCSFX_AUTO */ ++ }else if(!strcmp(str, "pnm") || !strcmp(str, "PNM")){ ++ return IT_PNM; ++ }else if(!strcmp(str, "ppm") || !strcmp(str, "PPM")){ ++ return IT_PPM; ++ }else if(!strcmp(str, "pgm") || !strcmp(str, "PGM")){ ++ return IT_PGM; ++ }else if(!strcmp(str, "pbm") || !strcmp(str, "PBM")){ ++ return IT_PBM; ++ }else if(!strcmp(str, "pnm_raw") || !strcmp(str, "PNM_RAW")){ ++ return IT_PNM_RAW; ++ }else if(!strcmp(str, "ppm_raw") || !strcmp(str, "PPM_RAW")){ ++ return IT_PPM_RAW; ++ }else if(!strcmp(str, "pgm_raw") || !strcmp(str, "PGM_RAW")){ ++ return IT_PGM_RAW; ++ }else if(!strcmp(str, "pbm_raw") || !strcmp(str, "PBM_RAW")){ ++ return IT_PBM_RAW; ++ }else if(!strcmp(str, "pnm_ascii") || !strcmp(str, "PNM_ASCII")){ ++ return IT_PNM_ASCII; ++ }else if(!strcmp(str, "ppm_ascii") || !strcmp(str, "PPM_ASCII")){ ++ return IT_PPM_ASCII; ++ }else if(!strcmp(str, "pgm_ascii") || !strcmp(str, "PGM_ASCII")){ ++ return IT_PGM_ASCII; ++ }else if(!strcmp(str, "pbm_ascii") || !strcmp(str, "PBM_ASCII")){ ++ return IT_PBM_ASCII; ++ ++ }else if(!strcmp(str, "gif") || !strcmp(str, "GIF")){ ++ return IT_GIF; ++ }else if(!strcmp(str, "jpeg") || !strcmp(str, "JPEG")){ ++ return IT_JPEG; ++ }else if(!strcmp(str, "tiff") || !strcmp(str, "TIFF")){ ++ return IT_TIFF; ++ }else if(!strcmp(str, "jfif") || !strcmp(str, "JFIF")){ ++ return IT_JFIF; ++ ++ }else if(!strcmp(str, "xbm") || !strcmp(str, "XBM")){ ++ return IT_XBM; ++ }else if(!strcmp(str, "xpm") || !strcmp(str, "XPM")){ ++ return IT_XPM; ++ }else if(!strcmp(str, "bmp") || !strcmp(str, "BMP")){ ++ return IT_BMP; ++ }else if(!strcmp(str, "sunras") || !strcmp(str, "SUNRAS")){ ++ return IT_SUNRAS; ++ }else if(!strcmp(str, "iris") || !strcmp(str, "IRIS")){ ++ return IT_IRIS; ++ }else if(!strcmp(str, "xwd") || !strcmp(str, "XWD")){ ++ return IT_XWD; ++ ++ }else if(!strcmp(str, "mag") || !strcmp(str, "MAG")){ ++ return IT_MAG; ++ }else if(!strcmp(str, "maki") || !strcmp(str, "MAKI")){ ++ return IT_MAKI; ++ }else if(!strcmp(str, "pi") || !strcmp(str, "PI")){ ++ return IT_PI; ++ }else if(!strcmp(str, "pic") || !strcmp(str, "PIC")){ ++ return IT_PIC; ++ }else if(!strcmp(str, "pic2") || !strcmp(str, "PIC2")){ ++ return IT_PIC2; ++ ++ }else{ ++ return IT_UNKNOWN; ++ } ++} ++ ++/*--------------------------------------------------------------------------*/ ++#define mgcsfx_read_error(FILENAME, LINENUM, AFTERFIELD) \ ++fprintf (stderr,\ ++"%s: line %d: missing fields of %s field\n",\ ++FILENAME, LINENUM, AFTERFIELD); ++ ++#define magic_type_error(FILENAME, LINENUM, MAGICNUMBER) \ ++fprintf (stderr,\ ++"%s: line %d: invalid field '%s'\n",\ ++FILENAME, LINENUM, MAGICNUMBER); ++/*--------------------------------------------------------------------------*/ ++ ++/***************************************************/ ++static void read_mgcsfx(mgcsfx_table, fname) ++ mgcsfxtab **mgcsfx_table; ++ char *fname; ++{ ++ FILE *fp; ++ char *s; ++ int line_number = 0; ++ int str_len; ++ int reach_end; ++ int def_err; ++ ++ char *description; ++ char *mgcsfx_type; ++ char *offset; ++ char *magic; ++ char *suffix; ++ char *i_img; ++ char *i_com; ++ char *o_img; ++ char *o_com; ++ ++ mgcsfxtab *ent; ++ mgcsfxtab **entry; ++ ++ ++ if((fp=fopen(fname, "r"))==NULL){ ++ /* fprintf(stderr, "Can't open %s\n",fname); */ ++ return; ++ } ++ ++ while(1){ ++retry: ++ line_number++; ++ def_err = 0; ++ ++ s= NULL; ++ description = mgcsfx_type = offset = magic = suffix ++ = i_img = i_com = o_img = o_com = NULL; ++ reach_end = 0; ++ ++ if((s = fgettoken(fp, ':'))==NULL) break; /* EOF $B$J$i=*$j(B */ ++ if(*s == '#'){/* $B@hF,$,(B '#' $B$J$iFI$_$H$P$9(B */ ++ while((s = fgettoken(fp, '\n'))!=NULL){ ++ if(*s == '\n'){ ++ free(s); ++ goto retry; ++ } ++ free(s); ++ } ++ if(s == NULL) break; ++ }else if(*s == '\n'){/* $B6u9T$OL5;k(B */ ++ free(s); ++ goto retry; ++ } ++ if(strlen(s) > 0) description = s; ++ else free(s); ++ ++ if((s = fgettoken(fp, ':'))==NULL || *s == '\n'){/* $B2?$b$J$$$J$i@_Dj%_%9(B */ ++ if(s != NULL) free(s); ++ mgcsfx_read_error(fname, line_number, "data type"); ++ goto next; ++ } ++ if(strlen(s) > 0) mgcsfx_type = s; ++ else free(s); ++ ++ if((s = fgettoken(fp, ':'))==NULL || *s == '\n'){/* $B2?$b$J$$$J$i@_Dj%_%9(B */ ++ if(s != NULL) free(s); ++ mgcsfx_read_error(fname, line_number, "byte offset"); ++ goto next; ++ } ++ if(strlen(s) > 0) offset = s; ++ else free(s); ++ ++ if((s = fgettoken(fp, ':'))==NULL || *s == '\n'){/* $B2?$b$J$$$J$i@_Dj%_%9(B */ ++ if(s != NULL) free(s); ++ mgcsfx_read_error(fname, line_number, "magic number"); ++ goto next; ++ } ++ if(strlen(s) > 0) magic = s; ++ else free(s); ++ ++ if((s = fgettoken(fp, ':'))==NULL || *s == '\n'){/* $B2?$b$J$$$J$i@_Dj%_%9(B */ ++ if(s != NULL) free(s); ++ mgcsfx_read_error(fname, line_number, "suffix"); ++ goto next; ++ } ++ if(strlen(s) > 0) suffix = s; ++ else free(s); ++ ++ if((s = fgettoken(fp, ':'))==NULL || *s == '\n'){/* $B2?$b$J$$$J$i@_Dj%_%9(B */ ++ if(s != NULL) free(s); ++ mgcsfx_read_error(fname, line_number, "input image type"); ++ goto next; ++ } ++ if(strlen(s) > 0) i_img = s; ++ else free(s); ++ ++ if((s = fgettoken(fp, ':'))==NULL || *s == '\n'){/* $B2?$b$J$$$J$i@_Dj%_%9(B */ ++ if(s != NULL) free(s); ++ mgcsfx_read_error(fname, line_number, "input command"); ++ goto next; ++ } ++ if(strlen(s) > 0) i_com = s; ++ else free(s); ++ ++ if((s = fgettoken(fp, ':'))==NULL || *s == '\n'){/* $B2?$b$J$$$J$i@_Dj%_%9(B */ ++ if(s != NULL) free(s); ++ mgcsfx_read_error(fname, line_number, "output image type"); ++ goto next; ++ } ++ if(strlen(s) > 0) o_img = s; ++ else free(s); ++ ++ if((s = fgettoken(fp, '#'))==NULL || *s == '\n'){/* $B2?$b$J$$$J$i@_Dj%_%9(B */ ++ /* ++ free(s); ++ mgcsfx_read_error(fname, line_number, "output command"); ++ goto next; ++ */ ++ if(s != NULL){ ++ *s = '\0'; ++ reach_end = 1; ++ } ++ } ++ if(s != NULL){ ++ if(strlen(s) > 0) o_com = s; ++ else free(s); ++ } ++ ++ if(reach_end == 0){ ++ while((s = fgettoken(fp, '\n'))!=NULL){/* $B9TKv$N%4%_$rnext = NULL; ++ ent->description = NULL; ++ ent->mgcsfx_type = T_UNKNOWN; ++ ent->offset = 0; ++ ent->string_len = 0; ++ ent->suffix = NULL; ++ ent->input_image_type = IT_UNKNOWN; ++ ent->input_command = NULL; ++ ent->output_image_type = IT_UNKNOWN; ++ ent->output_command = NULL; ++ ++ if(description != NULL){ ++ ent->description = description; ++ description = NULL; ++ }else{ ++ fprintf (stderr,"%s: line %d: undefined field.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ } ++ ++ if(mgcsfx_type == NULL){ ++ fprintf (stderr,"%s: line %d: undefined field.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ } ++ ent->mgcsfx_type = type_mgcsfx(mgcsfx_type); ++ switch(ent->mgcsfx_type){ ++ case T_SUFFIX: ++ if(suffix == NULL){ ++ fprintf (stderr, ++ "%s: line %d: conflict definition : undefined field.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ } ++ break; ++ case T_BEINT16: ++ if (sscanf(magic, "%hi", &(ent->dt.int16_data)) != 1){ ++ magic_type_error(fname, line_number, magic); ++ def_err ++; ++ goto next2; ++ } ++ break; ++ case T_LEINT16: ++ if (sscanf(magic, "%hi", &(ent->dt.int16_data)) != 1){ ++ magic_type_error(fname, line_number, magic); ++ def_err ++; ++ goto next2; ++ } ++ break; ++#ifdef ARCHITECTURE64 ++ case T_BEINT32: ++ if (sscanf(magic, "%i", &(ent->dt.int32_data)) != 1){ ++ magic_type_error(fname, line_number, magic); ++ def_err ++; ++ goto next2; ++ } ++ break; ++ case T_LEINT32: ++ if (sscanf(magic, "%i", &(ent->dt.int32_data)) != 1){ ++ magic_type_error(fname, line_number, magic); ++ def_err ++; ++ goto next2; ++ } ++ break; ++#else ++ case T_BEINT32: ++ if (sscanf(magic, "%li", &(ent->dt.int32_data)) != 1){ ++ magic_type_error(fname, line_number, magic); ++ def_err ++; ++ goto next2; ++ } ++ break; ++ case T_LEINT32: ++ if (sscanf(magic, "%li", &(ent->dt.int32_data)) != 1){ ++ magic_type_error(fname, line_number, magic); ++ def_err ++; ++ goto next2; ++ } ++ break; ++#endif /* ARCHITECTURE64 */ ++ case T_MAGIC: ++ if(magic == NULL){ ++ fprintf (stderr,"%s: line %d: undefined field.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ } ++ if((str_len = string_fin(magic))<=0){ ++ fprintf (stderr,"%s: line %d: invalid field.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ } ++ ++ ent->string_len = str_len; ++ if((ent->dt.string_data = (char *)malloc(str_len + 1))==NULL){ ++ fprintf(stderr,"Can't allocate memory\n"); ++ exit(1); ++ } ++ memcpy(ent->dt.string_data, magic, str_len + 1); ++ break; ++ case T_UNKNOWN: ++ default: ++ fprintf (stderr,"%s: line %d: invalid field.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ break; ++ }; ++ ++ ++ if(offset == NULL){ ++ if(ent->mgcsfx_type == T_MAGIC || ++ ent->mgcsfx_type == T_BEINT16 || ++ ent->mgcsfx_type == T_LEINT16 || ++ ent->mgcsfx_type == T_BEINT32 || ++ ent->mgcsfx_type == T_LEINT32){ ++ fprintf (stderr, ++ "%s: line %d: conflict definition : undefined field.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ } ++ }else{ ++ if(ent->mgcsfx_type != T_SUFFIX) sscanf(offset, "%i", &(ent->offset)); ++ } ++ ++ if(suffix != NULL){ ++ ent->suffix = suffix; ++ suffix = NULL; ++ } ++ ++ if((i_img == NULL && i_com == NULL) && (o_img == NULL || o_com == NULL)){ ++ fprintf (stderr,"%s: line %d: invalid definition.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ } ++ if((o_img == NULL && o_com == NULL) && (i_img == NULL || i_com == NULL)){ ++ fprintf (stderr,"%s: line %d: invalid definition.\n", ++ fname, line_number); ++ def_err ++; ++ goto next2; ++ } ++ ++ if(i_img != NULL && i_com != NULL){ ++ ent->input_image_type = type_image(i_img); ++ ent->input_command = i_com; ++ i_com = NULL; ++ }else{ ++ ent->input_image_type = IT_UNKNOWN; ++ ent->input_command = NULL; ++ } ++ ++ if(o_img != NULL && o_com != NULL){ ++ ent->output_image_type = type_image(o_img); ++ ent->output_command = o_com; ++ o_com = NULL; ++ }else{ ++ ent->output_image_type = IT_UNKNOWN; ++ ent->output_command = NULL; ++ } ++ /* end of create mgcsfxtab */ ++ ++ ++next2:; ++ ++ if(def_err != 0 || DEBUG){ ++ fprintf(stderr,"Description : %s \t -> %s\n", ++ description ? description : "--+--", ++ ent->description ? ent->description : "-- error --"); ++ fprintf(stderr,"Type : %s \t -> %d\n", ++ mgcsfx_type ? mgcsfx_type : "--+--", ++ ent->mgcsfx_type); ++ fprintf(stderr,"Offset : %s \t -> %d\n", ++ offset ? offset : "--+--", ++ ent->offset); ++ ++ fprintf(stderr,"Magic : %s", magic ? magic : "--+--"); ++ switch(ent->mgcsfx_type){ ++ case T_BEINT16: ++ case T_LEINT16: ++ fprintf(stderr," \t -> %d\n",ent->dt.int16_data); ++ break; ++ case T_BEINT32: ++ case T_LEINT32: ++ fprintf(stderr," \t -> %ld\n",ent->dt.int32_data); ++ break; ++ case T_MAGIC: ++ fprintf(stderr," \t -> %s\n",ent->dt.string_data); ++ break; ++ default: ++ fprintf(stderr,"\n"); ++ break; ++ }; ++ ++ fprintf(stderr,"Suffix : %s \t -> %s\n", ++ suffix ? suffix : "--+--", ++ ent->suffix ? ent->suffix : "--+--"); ++ fprintf(stderr,"i Image : %s \t -> %d\n", ++ i_img ? i_img : "--+--", ++ ent->input_image_type); ++ fprintf(stderr,"i Command : %s \t -> %s\n", ++ i_com ? i_com : "--+--", ++ ent->input_command ? ent->input_command : "--+--"); ++ fprintf(stderr,"o Image : %s \t -> %d\n", ++ o_img ? o_img : "--+--", ++ ent->output_image_type); ++ fprintf(stderr,"o Command : %s \t -> %s\n", ++ o_com ? o_com : "--+--", ++ ent->output_command ? ent->output_command : "--+--"); ++ fprintf(stderr,"\n"); ++ } ++ ++ if(description != NULL) free(description); ++ if(mgcsfx_type != NULL) free(mgcsfx_type); ++ if(offset != NULL) free(offset); ++ if(magic != NULL) free(magic); ++ if(suffix != NULL) free(suffix); ++ if(i_img != NULL) free(i_img); ++ if(i_com != NULL) free(i_com); ++ if(o_img != NULL) free(o_img); ++ if(o_com != NULL) free(o_com); ++ ++ ++ if(def_err != 0) goto next3; ++ ++ /* Override any existing entry for this magic number/file type */ ++ for(entry = mgcsfx_table; *entry; entry = &((*entry)->next)){ ++ if((ent->mgcsfx_type == (*entry)->mgcsfx_type) && ++ ( ++ ((ent->offset == (*entry)->offset) && ++ (((ent->mgcsfx_type == T_BEINT16) && ++ (ent->dt.int16_data == (*entry)->dt.int16_data)) || ++ ((ent->mgcsfx_type == T_BEINT32) && ++ (ent->dt.int32_data == (*entry)->dt.int32_data)) || ++ ((ent->mgcsfx_type == T_LEINT16) && ++ (ent->dt.int16_data == (*entry)->dt.int16_data)) || ++ ((ent->mgcsfx_type == T_LEINT32) && ++ (ent->dt.int32_data == (*entry)->dt.int32_data)) || ++ ++ ((ent->mgcsfx_type == T_MAGIC) && ++ !memcmp(ent->dt.string_data, (*entry)->dt.string_data, ++ ent->string_len)) ++ )) || ++ ((ent->mgcsfx_type == T_SUFFIX) && ++ !strcmp(ent->suffix, (*entry)->suffix)) ++ ) ++ ){ ++ ++ free ((*entry)->description); ++ (*entry)->description = ent->description; ++ ent->description = NULL; ++ ++ (*entry)->input_image_type = ent->input_image_type; ++ if ((*entry)->input_command) free ((*entry)->input_command); ++ (*entry)->input_command = ent->input_command; ++ ent->input_command = NULL; ++ ++ (*entry)->output_image_type = ent->output_image_type; ++ if ((*entry)->output_command) free ((*entry)->output_command); ++ (*entry)->output_command = ent->output_command; ++ ent->output_command = NULL; ++ ++ free_mgcsfx(ent); ++ break; ++ } ++ } ++ if (!*entry){ ++ ent->next = NULL; ++ *entry = ent; ++ } ++ ++ /* if(s == NULL) break; */ ++next3:; ++ if(def_err != 0) free_mgcsfx(ent); ++ } /* end of while(1) */ ++} ++ ++ ++/***************************************************/ ++/* $B%^%8%C%/%J%s%P!$rF@$F!"FI$_9~$^$;$k(B */ ++static void init_mgcsfx () ++{ ++ extern char *getenv (); ++ ++ char *home_dir; ++ char fname[1024]; ++ mgcsfxtab *entry; ++ int len; ++ struct stat st; ++ ++#ifdef USE_MGCSFX_PREPROCESSOR ++ char *pp_fname; ++#endif /* USE_MGCSFX_PREPROCESSOR */ ++ ++ mgcsfx_table = NULL; ++ ++ mgcsfx_handler_setup(); ++ ++ if(nomgcsfx){ ++ mgcsfx_setup_flag = 1; ++ nitem_mgcsfx = 0; ++ desc_width = 0; ++ }else{ ++ sprintf (fname, "%s/%s", SYSCONFDIR, MGCSFX_SITE_RC); ++ if(stat(fname, &st) == 0 && S_ISREG(st.st_mode)){ ++ /* Read the site MagicSuffix table into a linked list */ ++#ifdef USE_MGCSFX_PREPROCESSOR ++ if((pp_fname = make_preprocessed_file(fname)) != NULL){ ++ read_mgcsfx (&mgcsfx_table, pp_fname); ++ } ++ unlink(pp_fname); ++#else ++ read_mgcsfx (&mgcsfx_table, fname); ++#endif /* USE_MGCSFX_PREPROCESSOR */ ++ } ++ ++ /* Read the personal MgcSfx table into the list overriding site entries */ ++ if ((home_dir = getenv ("HOME"))){ ++ sprintf (fname, "%s/%s", home_dir, MGCSFX_RC); ++ if(stat(fname, &st) == 0 && S_ISREG(st.st_mode)){ ++#ifdef USE_MGCSFX_PREPROCESSOR ++ if((pp_fname = make_preprocessed_file(fname)) != NULL){ ++ read_mgcsfx (&mgcsfx_table, pp_fname); ++ } ++ unlink(pp_fname); ++#else ++ read_mgcsfx (&mgcsfx_table, fname); ++#endif /* USE_MGCSFX_PREPROCESSOR */ ++ } ++ } ++ ++ mgcsfx_setup_flag = 1; ++ ++ nitem_mgcsfx = 0; ++ desc_width = 0; ++ for (entry = mgcsfx_table; entry; entry = entry->next){ ++ nitem_mgcsfx ++; ++ len = strlen(entry->description); ++ if(len > desc_width) desc_width = len; ++ if(max_offset_mgcsfx < entry->offset) max_offset_mgcsfx = entry->offset; ++ if(entry->mgcsfx_type == T_MAGIC && ++ max_length_mgcsfx < entry->string_len) ++ max_length_mgcsfx = entry->string_len; ++ } ++ if(max_length_mgcsfx == 0) max_length_mgcsfx = sizeof(int32); ++ need_buf_size = max_offset_mgcsfx + max_length_mgcsfx + 1;/* 1 is safety */ ++ } ++} ++ ++/***************************************************/ ++/* $B%^%8%C%/%J%s%P!<$rD4$Y$F!"Dj5A$7$F$$$k%F!<%V%k$r8!:w$9$k(B ++ $B%^%8%C%/%J%s%P!<$N%F!<%V%k$rFI$_9~$s$G$$$J$$$J$iFI$_9~$`(B */ ++static mgcsfxtab *find_mgcsfx (fname, buffer, buffer_size) ++ char *fname; ++ unsigned char *buffer; ++ int buffer_size; ++{ ++ mgcsfxtab *entry; ++ int16 buf16; ++ int32 buf32; ++ char *suf; ++ ++ if (mgcsfx_setup_flag == 0) init_mgcsfx (); ++ ++ for (entry = mgcsfx_table; entry; entry = entry->next){ ++ switch (entry->mgcsfx_type){ ++ case T_BEINT16: ++ if ((buffer_size > 0) && ++ ((entry->offset + sizeof (int16)) <= buffer_size)){ ++ buf16 = ((char)*(buffer + entry->offset) << 8) | ++ ((char)*(buffer + entry->offset +1)); ++ if(entry->dt.int16_data == buf16) return entry; ++ } ++ break; ++ case T_LEINT16: ++ if ((buffer_size > 0) && ++ ((entry->offset + sizeof (int16)) <= buffer_size)){ ++ buf16 = ((char)*(buffer + entry->offset +1) << 8) | ++ ((char)*(buffer + entry->offset)); ++ if(entry->dt.int16_data == buf16) return entry; ++ } ++ break; ++ case T_BEINT32: ++ if ((buffer_size > 0) && ++ ((entry->offset + sizeof (int32)) <= buffer_size)){ ++ buf32 = ((char)*(buffer + entry->offset) << 24) | ++ ((char)*(buffer + entry->offset +1) << 16) | ++ ((char)*(buffer + entry->offset +2) << 8) | ++ ((char)*(buffer + entry->offset +3)); ++ if(entry->dt.int32_data == buf32) return entry; ++ } ++ break; ++ case T_LEINT32: ++ if ((buffer_size > 0) && ++ ((entry->offset + sizeof (int32)) <= buffer_size)){ ++ buf32 = ((char)*(buffer + entry->offset +3) << 24) | ++ ((char)*(buffer + entry->offset +2) << 16) | ++ ((char)*(buffer + entry->offset +1) << 8) | ++ ((char)*(buffer + entry->offset)); ++ if(entry->dt.int32_data == buf32) return entry; ++ } ++ break; ++ case T_MAGIC: ++ if ((buffer_size > 0) && ++ ((entry->offset + entry->string_len) ++ <= buffer_size) && ++ !memcmp (entry->dt.string_data, buffer + entry->offset, ++ entry->string_len )) ++ return entry; ++ break; ++ case T_SUFFIX: ++ if(fname != NULL && entry->suffix != NULL){ ++ if(strlen(fname) - strlen(entry->suffix) > 0){ ++ suf = fname + (strlen(fname) - strlen(entry->suffix)); ++ if(!strcmp(suf, entry->suffix)) return entry; ++ } ++ } ++ break; ++ case T_UNKNOWN: ++ default: ++ return NULL; ++ break; ++ } ++ } ++ return NULL; ++} ++ ++ ++ ++ ++ ++/***************************************************/ ++/* $B%^%8%C%/%J%s%P!<$NDj5A$rD4$Y$F!"$=$l$K$"$o$;$?%3%^%s%I$rinput_command) || ++ (magic == NULL && mgcsfx && input_command_ex_flag)){ ++ ++ if(magic == NULL){ ++ if (fname != NULL && (ptr = strstr(input_command_ex, "%s"))){ ++ sprintf (command, input_command_ex, fname); ++ }else{ ++ strcpy (command, input_command_ex); ++ fname=NULL; ++ } ++ }else{ ++ /* Use stdin or give file name */ ++ if (fname != NULL && (ptr = strstr(magic->input_command, "%s"))){ ++ sprintf (command, magic->input_command, fname); ++ }else{ ++ strcpy (command, magic->input_command); ++ fname=NULL; ++ } ++ } ++ ++ /* Do the pipe/fork/exec here */ ++ if (pipe (fd) < 0){ ++ fprintf (stderr, "Can't pipe : %s\n", file_name); ++ close(file); ++ return 0; ++ } ++ ++ if ((pid = vfork ()) < 0){ ++ fprintf (stderr, "Can't vfork : %s\n", file_name); ++ close (fd[0]); ++ close (fd[1]); ++ close(file); ++ return 0; ++ } ++ ++ if (!pid){ ++ close(0); ++ if (fname == NULL || (open ("/dev/null", O_RDONLY) < 0)){ ++ dup(file); ++ } ++ close(file); ++ close(1); ++ dup(fd[1]); ++ close(2); ++ open("/dev/null", O_WRONLY); ++ close(fd[0]); ++ execl("/bin/sh", "/bin/sh", "-c", command, 0); ++ _exit(127); ++ } ++ ++ close (fd[1]); ++ dup2(fd[0], file); ++ close (fd[0]); ++ fname = NULL; ++ magic_cur = magic; ++ } ++/* } while(magic != NULL); */ ++ ++ free(buffer); ++ ++ if(magic_cur == NULL && mgcsfx && input_command_ex_flag){ ++ i_it = IT_PNM; ++ i_com = input_command_ex; ++ }else{ ++ i_it = magic_cur->input_image_type; ++ i_com = magic_cur->input_command; ++ } ++ ++ if((magic_cur != NULL && i_com) || ++ (magic_cur == NULL && mgcsfx && input_command_ex_flag)){ ++ switch(i_it){ ++ case IT_PNM: ++ case IT_PPM: ++ case IT_PGM: ++ case IT_PBM: ++ case IT_PNM_RAW: ++ case IT_PPM_RAW: ++ case IT_PGM_RAW: ++ case IT_PBM_RAW: ++ case IT_PNM_ASCII: ++ case IT_PPM_ASCII: ++ case IT_PGM_ASCII: ++ case IT_PBM_ASCII: ++ rv = LoadPBM(file_name, pinfo, file); ++ break; ++ case IT_GIF: ++ case IT_JPEG: ++ case IT_TIFF: ++ case IT_JFIF: ++ case IT_XBM: ++ case IT_XPM: ++ case IT_BMP: ++ case IT_SUNRAS: ++ case IT_IRIS: ++ case IT_XWD: ++ case IT_MAG: ++ case IT_MAKI: ++ case IT_PI: ++ case IT_PIC: ++ case IT_PIC2: ++ SetISTR(ISTR_WARNING, "Yet supported input image type (from filter output)"); ++ rv = 0; ++ break; ++ case IT_UNKNOWN: ++ SetISTR(ISTR_WARNING, "Unknown input image type (from filter output)"); ++ rv = 0; ++ break; ++#ifdef HAVE_MGCSFX_AUTO ++ case IT_AUTO: ++#endif ++ default: ++ SetISTR(ISTR_WARNING, "Error in input image type (from filter output)"); ++ rv = 0; ++ break; ++ } ++ }else{ ++ rv = 0; ++ } ++ ++ /* fail if pid still == -2? */ ++ while(wait(&pst) != pid); /* FIXME? pid isn't necessarily initialized... */ ++ if( *((char *)&pst) != 0 ) rv = 0; ++ ++ input_command_ex_flag = 0; ++ ++ return rv; ++ ++ /* fclose(fp); close in Load??? */ ++ /* return 0; error */ ++ /* return 1; ok */ ++} ++ ++ ++ ++ ++ ++/*--------------------------------------------------------------------------*/ ++#ifndef MGCSFX_DEFAULT_INPUT_COMMAND ++# define MGCSFX_DEFAULT_INPUT_COMMAND "tifftopnm" ++#endif ++#ifndef MGCSFX_DEFAULT_OUTPUT_COMMAND ++# define MGCSFX_DEFAULT_OUTPUT_COMMAND "pnmtotiff" ++#endif ++ ++int MSWIDE = 0; ++int MSHIGH = 0; ++ ++#define MS_NBUTTS 2 ++#define MS_BOK 0 ++#define MS_BCANC 1 ++#define BUTTW 60 /* width of buttons (OK or Cancel) */ ++#define BUTTH 24 /* height of buttons (OK or Cancel) */ ++#define RBSIZE 15 /* width and height of RB button (select, ON or OFF)*/ ++#define CWIDE 8 /* width of character */ ++/* #define CHIGH height of character defined in xv.h */ ++#define MARGIN 3 /* margin of button and label SPACING */ ++ ++#define MSD_TITLE "Save file with external command..." ++#define MSD_RBTITLE "Type of Magic and Suffix" ++#define MSD_IC_TITLE "input command" ++ ++static BUTT msbut[MS_NBUTTS]; ++static RBUTT *typeRB; ++ ++static char output_command_ex[1024]; ++static int output_command_ex_flag = 0; ++ ++static int colorType; ++ ++static int w_pid; ++static int w_pstatus; ++ ++#define MSNAMWIDE 252 /* width of 'file name' entry window */ ++#define MAXFNLEN 256 /* max len of filename being entered */ ++static char DialogFileName[MAXFNLEN+100]; /* filename being entered */ ++static int curPos, stPos, enPos; /* filename textedit stuff */ ++ ++ ++static mgcsfxtab *get_mgcsfx PARM((int)); ++static void changeSuffix PARM((int)); ++ ++static int WriteMGCSFX PARM((FILE**,byte*,int,int,int, ++ byte*,byte*,byte*,int,int,char*, ++ int, int, char*)); ++void CreateMGCSFXW PARM((void)); ++void MGCSFXDialog PARM((int)); ++int MGCSFXCheckEvent PARM((XEvent *)); ++int MGCSFXSaveParams PARM((char *, int)); ++ ++static void drawMSD PARM((int,int,int,int)); ++static void clickMSD PARM((int,int)); ++static void doCmd PARM((int)); ++static int writeMGCSFX PARM((void)); ++ ++static void changeSuffix PARM((int)); ++static void redrawNamMSD PARM((void)); ++static void showFNamMSD PARM((void)); ++static int keyinMSD PARM((int)); ++ ++int getInputCom PARM((void)); ++int getOutputCom PARM((void)); ++/*--------------------------------------------------------------------------*/ ++ ++/***************************************************/ ++/* $B$I$l$rA*$s$@$+D4$Y$k!##0$O%3%^%s%I$rF~NO$9$k$b$N$H$9$k(B */ ++static mgcsfxtab *get_mgcsfx(ms_type) ++ int ms_type; ++{ ++ mgcsfxtab *magic; ++ int i; ++ ++ magic = NULL; ++ if(ms_type != 0){ ++ i = 1; ++ for(magic = mgcsfx_table; (magic && inext){i++;} ++ } ++ return magic; ++} ++ ++/***************************************************/ ++/* $B30It%3%^%s%I$routput_command)){ ++ ++ /* Do the pipe/fork/exec here */ ++ if (pipe (fd) < 0){ ++ fprintf (stderr, "Can't pipe : %s\n", file_name); ++ return -1; ++ } ++ ++ if ((pid = vfork ()) < 0){ ++ fprintf (stderr, "Can't vfork : %s\n", file_name); ++ close (fd[0]); ++ close (fd[1]); ++ return -1; ++ } ++ ++ if (!pid){ ++ close(1); ++ dup(file); ++ close(file); ++ close(0); ++ dup(fd[0]); ++ close(2); ++ open("/dev/null", O_WRONLY); ++ close(fd[1]); ++ if(ms_type == 0){ ++ execl("/bin/sh", "/bin/sh", "-c", output_command_ex, 0); ++ }else{ ++ execl("/bin/sh", "/bin/sh", "-c", magic->output_command, 0); ++ } ++ _exit(127); ++ } ++ ++ close (fd[0]); ++ dup2(fd[1], file); ++ close (fd[1]); ++ ++ }else{ ++ return -1; ++ } ++ ++ ++ *fp = fdopen(file, "w"); ++ ++ /* sleep(1); Best way is wait for checking SIGCHLD, but it's feel waist.*/ ++ ++#ifdef USE_SIGCHLD ++ if(w_p_fail != 2){ ++#endif ++ if(ms_type == 0){ ++ rv = WritePBM(*fp,pic,ptype,w,h,rmap,gmap,bmap,numcols,colorstyle, ++ 1, comment); ++ }else{ ++ switch(magic -> output_image_type){ ++ case IT_PNM: ++ case IT_PPM: ++ case IT_PGM: ++ case IT_PBM: ++ case IT_PNM_RAW: ++ case IT_PPM_RAW: ++ case IT_PGM_RAW: ++ case IT_PBM_RAW: ++ rv = WritePBM(*fp,pic,ptype,w,h,rmap,gmap,bmap,numcols,colorstyle, ++ 1, comment); ++ break; ++ case IT_PNM_ASCII: ++ case IT_PPM_ASCII: ++ case IT_PGM_ASCII: ++ case IT_PBM_ASCII: ++ rv = WritePBM(*fp,pic,ptype,w,h,rmap,gmap,bmap,numcols,colorstyle, ++ 0, comment); ++ break; ++ case IT_GIF: ++ case IT_JPEG: ++ case IT_TIFF: ++ case IT_JFIF: ++ case IT_XBM: ++ case IT_XPM: ++ case IT_BMP: ++ case IT_SUNRAS: ++ case IT_IRIS: ++ case IT_XWD: ++ case IT_MAG: ++ case IT_MAKI: ++ case IT_PI: ++ case IT_PIC: ++ case IT_PIC2: ++ SetISTR(ISTR_WARNING, "Yet supported output image type (to filter input)"); ++ rv = -1; ++ break; ++ case IT_UNKNOWN: ++ SetISTR(ISTR_WARNING, "Unknown output image type (to filter input)"); ++ rv = -1; ++ break; ++#ifdef HAVE_MGCSFX_AUTO ++ case IT_AUTO: ++#endif ++ default: ++ SetISTR(ISTR_WARNING, "Error in output image type (to filter input)"); ++ rv = -1; ++ break; ++ } ++ } ++#ifdef USE_SIGCHLD ++ }else{ ++ rv = -1; ++ } ++#endif ++ ++#ifdef USE_SIGCHLD ++ if(w_p_fail != 2){ ++#endif ++ w_pid = pid; ++#ifdef USE_SIGCHLD ++ w_p_fail = 0; ++ }else{ ++ rv = -1; ++ } ++#endif ++ ++ output_command_ex_flag = 0; ++ ++ return rv; ++ ++ /* fclose(*fp); close in CloseOutFile in writeMGCSFX */ ++ /* return 0; ok */ ++ /* return -1; error */ ++} ++ ++/***************************************************/ ++void CreateMGCSFXW() ++{ ++ int y; ++ int type_num; ++ mgcsfxtab *entry; ++ ++ if (mgcsfx_setup_flag == 0) init_mgcsfx (); ++ ++ if(desc_width < strlen(MSD_IC_TITLE)) desc_width = strlen(MSD_IC_TITLE); ++ nitem_mgcsfx ++; ++ ++ MSWIDE = desc_width * CWIDE + RBSIZE + 36; /* 36 is start of RB button */ ++ MSHIGH = nitem_mgcsfx * (RBSIZE + MARGIN); ++ ++ if(MSWIDE < strlen(MSD_TITLE) + 20) MSWIDE = strlen(MSD_TITLE) + 20; ++ if(MSWIDE < strlen(MSD_RBTITLE) + 16) MSWIDE = strlen(MSD_RBTITLE) + 16; ++ if(MSWIDE < MSNAMWIDE + 10) MSWIDE = MSNAMWIDE + 10; ++ if(MSWIDE < BUTTW * 2 + 10) MSWIDE = BUTTW * 2 + 10; ++ ++ MSHIGH += 55 + LINEHIGH + 10 + BUTTH + 10; ++ ++ MSWIDE += 20; /* right side margin */ ++ MSHIGH += 10; /* RB buttun down side margin */ ++ ++ ++ mgcsfxW = CreateWindow("xv mgcsfx", "XVmgcsfx", NULL, ++ MSWIDE, MSHIGH, infofg, infobg, 0); ++ if (!mgcsfxW) FatalError("can't create mgcsfx window!"); ++ ++ XSelectInput(theDisp, mgcsfxW, ++ ExposureMask | ButtonPressMask | KeyPressMask); ++ ++ mgcsfxNameW = XCreateSimpleWindow(theDisp, mgcsfxW, ++ 10, MSHIGH-LINEHIGH-10-BUTTH-10-1, ++ (u_int) MSNAMWIDE+6, (u_int) LINEHIGH+5, ++ 1, infofg, infobg); ++ if (!mgcsfxNameW) FatalError("can't create mgcsfx name window"); ++ XSelectInput(theDisp, mgcsfxNameW, ExposureMask); ++ ++ /* Ok $B%\%?%s(B */ ++ BTCreate(&msbut[MS_BOK], mgcsfxW, ++ MSWIDE-BUTTW-10-BUTTW-10-1, MSHIGH-BUTTH-10-1, ++ BUTTW, BUTTH, ++ "Ok", infofg, infobg, hicol, locol); ++ /* Cancel $B%\%?%s(B*/ ++ BTCreate(&msbut[MS_BCANC], mgcsfxW, ++ MSWIDE-BUTTW-10-1, MSHIGH-BUTTH-10-1, ++ BUTTW, BUTTH, ++ "Cancel", infofg, infobg, hicol, locol); ++ ++ y = 55; ++ /* User should input command to exec external command */ ++ typeRB = RBCreate(NULL, mgcsfxW, 36, y, MSD_IC_TITLE, ++ infofg, infobg,hicol,locol); ++ y += (RBSIZE + MARGIN); /* 18 */ ++ ++ type_num = 1; ++ for (entry = mgcsfx_table; entry; entry = entry->next){ ++ RBCreate(typeRB, mgcsfxW, 36, y, entry->description, ++ infofg, infobg,hicol,locol); ++ y += (RBSIZE + MARGIN); /* 18 */ ++ if(entry->output_command == NULL){ ++ RBSetActive(typeRB, type_num, 0); /* if no command, off */ ++ } ++ type_num++; ++ } ++ ++ XMapSubwindows(theDisp, mgcsfxW); ++} ++ ++ ++/***************************************************/ ++void MGCSFXDialog(vis) ++ int vis; ++{ ++ if (vis) { ++ CenterMapWindow(mgcsfxW, msbut[MS_BOK].x + msbut[MS_BOK].w/2, ++ msbut[MS_BOK].y + msbut[MS_BOK].h/2, MSWIDE, MSHIGH); ++ } ++ else XUnmapWindow(theDisp, mgcsfxW); ++ mgcsfxUp = vis; ++} ++ ++ ++/***************************************************/ ++int MGCSFXCheckEvent(xev) ++ XEvent *xev; ++{ ++ /* check event to see if it's for one of our subwindows. If it is, ++ deal accordingly, and return '1'. Otherwise, return '0' */ ++ ++ int rv; ++ rv = 1; ++ ++ if (!mgcsfxUp) return (0); ++ ++ if (xev->type == Expose) { ++ int x,y,w,h; ++ XExposeEvent *e = (XExposeEvent *) xev; ++ x = e->x; y = e->y; w = e->width; h = e->height; ++ ++ if (e->window == mgcsfxW) drawMSD(x, y, w, h); ++ else rv = 0; ++ } ++ ++ else if (xev->type == ButtonPress) { ++ XButtonEvent *e = (XButtonEvent *) xev; ++ int x,y; ++ x = e->x; y = e->y; ++ ++ if (e->button == Button1) { ++ if (e->window == mgcsfxW) clickMSD(x,y); ++ else rv = 0; ++ } /* button1 */ ++ else rv = 0; ++ } /* button press */ ++ ++ else if (xev->type == KeyPress) { ++ XKeyEvent *e = (XKeyEvent *) xev; ++ char buf[128]; KeySym ks; XComposeStatus status; ++ int stlen; ++ ++ stlen = XLookupString(e,buf,128,&ks,&status); ++ buf[stlen] = '\0'; ++ ++ if (e->window == mgcsfxW) { ++ if (stlen) { ++ keyinMSD(buf[0]); ++ } ++ } ++ else rv = 0; ++ } ++ else rv = 0; ++ ++ if (rv == 0 && (xev->type == ButtonPress || xev->type == KeyPress)) { ++ XBell(theDisp, 50); ++ rv = 1; /* eat it */ ++ } ++ ++ return (rv); ++} ++ ++ ++/***************************************************/ ++int MGCSFXSaveParams(fname, col) ++ char *fname; ++ int col; ++{ ++ colorType = col; ++ strcpy(DialogFileName, GetDirFName()); ++ return (0); ++} ++ ++/***************************************************/ ++/* $B%@%$%"%m%0$rI=<($9$k$H$-$N=hM}(B */ ++static void drawMSD(x,y,w,h) ++ int x,y,w,h; ++{ ++ int i; ++ XRectangle xr; ++ ++ xr.x = x; xr.y = y; xr.width = w; xr.height = h; ++ XSetClipRectangles(theDisp, theGC, 0,0, &xr, 1, Unsorted); ++ ++ XSetForeground(theDisp, theGC, infofg); ++ XSetBackground(theDisp, theGC, infobg); ++ ++ for (i = 0; i < MS_NBUTTS; i++) BTRedraw(&msbut[i]); ++ ++ ULineString(mgcsfxW, typeRB->x-16, typeRB->y-3-DESCENT, ++ MSD_RBTITLE); ++ RBRedraw(typeRB, -1); ++ ++ DrawString(mgcsfxW, 20, 29, MSD_TITLE); ++ ++ XSetClipMask(theDisp, theGC, None); ++ ++ showFNamMSD(); ++} ++ ++/***************************************************/ ++/* $B%@%$%"%m%0$r%/%j%C%/$7$?$H$-$N=hM}(B */ ++static void clickMSD(x,y) ++ int x,y; ++{ ++ int i; ++ BUTT *bp; ++ ++ /* check BUTTs */ ++ ++ /* check the RBUTTS first, since they don't DO anything */ ++ if ((i = RBClick(typeRB, x,y)) >= 0) { /* $BA*Br(B(type)$B%\%?%s$N=hM}(B */ ++ (void) RBTrack(typeRB, i); /* $BA*Br(B(type)$B%\%?%s$r2!$7$?$H$-(B */ ++ changeSuffix(i); ++ return; ++ } ++ ++ for (i = 0; i < MS_NBUTTS; i++) { /* Ok,Cancel $B%\%?%s$N=hM}(B */ ++ bp = &msbut[i]; ++ if (PTINRECT(x, y, bp->x, bp->y, bp->w, bp->h)) ++ break; ++ } ++ if (i < MS_NBUTTS) /* found one */ /* Ok,Cancel $B%\%?%s$r2!$7$?$H$-(B */ ++ if (BTTrack(bp)) doCmd(i); ++} ++ ++/***************************************************/ ++/* $B%\%?%s(B(Ok, Cancel) $B$N=hM}(B */ ++static void doCmd(cmd) ++ int cmd; ++{ ++ int rv; ++ ++ switch (cmd) { ++ case MS_BOK: /* Ok button */ { ++ char *fullname; ++ ++ rv = writeMGCSFX(); /* Save with filter(MGCSFX) */ ++ MGCSFXDialog(0); ++ ++ fullname = GetDirFullName(); ++ if (!ISPIPE(fullname[0])) { ++ XVCreatedFile(fullname); ++ if(!rv) StickInCtrlList(0); ++ } ++ } ++ break; ++ case MS_BCANC: /* Cancel button */ ++ DialogFileName[0] = '\0'; ++ curPos = stPos = enPos = 0; ++ MGCSFXDialog(0); ++ break; ++ default: ++ break; ++ } ++} ++ ++/*******************************************/ ++static int writeMGCSFX() ++{ ++ int rv, type; ++ int ptype, w, h, pfree, nc; ++ byte *inpix, *rmap, *gmap, *bmap; ++ ++ FILE *fp = NULL; ++ int file; ++ char *fullname; ++ ++ rv = -1; ++ type = RBWhich(typeRB); ++ ++ SetDirFName(DialogFileName); /* change filename in dir dialog */ ++ fullname = GetDirFullName(); ++ ++ if(type == 0){ ++ if(getOutputCom() == 0) return rv; ++ } ++ ++ file = OpenOutFileDesc(fullname); ++ if(file < 0) return rv; ++ ++ WaitCursor(); ++ inpix = GenSavePic(&ptype, &w, &h, &pfree, &nc, &rmap, &gmap, &bmap); ++ ++ rv = WriteMGCSFX(&fp, inpix, ptype, w, h, ++ rmap, gmap, bmap, nc, colorType, fullname, ++ type, file, picComments); ++ ++ SetCursors(-1); ++ ++ if (CloseOutFile(fp, fullname, rv) == 0) DirBox(0); ++ ++ WaitCursor(); ++#ifdef USE_SIGCHLD ++ if(w_p_fail == 0){ ++#endif ++ while(wait(&w_pstatus) != w_pid); /* if( *((char *)&w_pstatus) != 0 ) ; */ ++#ifdef USE_SIGCHLD ++ }else{ ++ w_p_fail = 0; ++ } ++#endif ++ w_pid = 0; ++ w_pstatus = 0; ++ ++ if (pfree) free(inpix); ++ return rv; ++} ++ ++ ++/***************************************/ ++static void changeSuffix(ms_type) ++ int ms_type; ++{ ++ /* see if there's a common suffix at the end of the DialogFileName. ++ if there is, remember what case it was (all caps or all lower), lop ++ it off, and replace it with a new appropriate suffix, in the ++ same case */ ++ ++ int allcaps; ++ char *suffix, *sp, *dp, lowsuf[512]; ++ mgcsfxtab *magic; ++ ++ /* find the last '.' in the DialogFileName */ ++ suffix = (char *) rindex(DialogFileName, '.'); ++ if (!suffix) return; ++ suffix++; /* point to first letter of the suffix */ ++ ++ /* check for all-caposity */ ++ for (sp = suffix, allcaps=1; *sp; sp++) ++ if (islower(*sp)) allcaps = 0; ++ ++ /* copy the suffix into an all-lower-case buffer */ ++ for (sp=suffix, dp=lowsuf; *sp; sp++, dp++) { ++ *dp = (isupper(*sp)) ? tolower(*sp) : *sp; ++ } ++ *dp = '\0'; ++ ++ ++ magic = get_mgcsfx(ms_type); ++ if(magic != NULL && magic->suffix != NULL){ ++ strcpy(lowsuf,(magic->suffix)+1); ++ ++ if (allcaps) { /* upper-caseify lowsuf */ ++ for (sp=lowsuf; *sp; sp++) ++ *sp = (islower(*sp)) ? toupper(*sp) : *sp; ++ } ++ ++ /* one other case: if the original suffix started with a single ++ capital letter, make the new suffix start with a single cap */ ++ if (isupper(suffix[0])) lowsuf[0] = toupper(lowsuf[0]); ++ ++ strcpy(suffix, lowsuf); /* tack onto DialogFileName */ ++ showFNamMSD(); ++ } ++} ++ ++/***************************************************/ ++/* $B%@%$%"%m%0Fb$K%U%!%$%k%M!<%`$rI=<($9$k$H$-$N=hM}(B ($B2<@A$1(B)*/ ++static void redrawNamMSD() ++{ ++ int cpos; ++ ++ /* draw substring DialogFileName[stPos:enPos] and cursor */ ++ ++ Draw3dRect(mgcsfxNameW, 0, 0, (u_int) MSNAMWIDE+5, (u_int) LINEHIGH+4, R3D_IN, 2, ++ hicol, locol, infobg); ++ ++ XSetForeground(theDisp, theGC, infofg); ++ ++ if (stPos>0) { /* draw a "there's more over here" doowah */ ++ XDrawLine(theDisp, mgcsfxNameW, theGC, 0,0,0,LINEHIGH+5); ++ XDrawLine(theDisp, mgcsfxNameW, theGC, 1,0,1,LINEHIGH+5); ++ XDrawLine(theDisp, mgcsfxNameW, theGC, 2,0,2,LINEHIGH+5); ++ } ++ ++ if ((size_t) enPos < strlen(DialogFileName)) { ++ /* draw a "there's more over here" doowah */ ++ XDrawLine(theDisp, mgcsfxNameW, theGC, MSNAMWIDE+5,0,MSNAMWIDE+5,LINEHIGH+5); ++ XDrawLine(theDisp, mgcsfxNameW, theGC, MSNAMWIDE+4,0,MSNAMWIDE+4,LINEHIGH+5); ++ XDrawLine(theDisp, mgcsfxNameW, theGC, MSNAMWIDE+3,0,MSNAMWIDE+3,LINEHIGH+5); ++ } ++ ++ XDrawString(theDisp, mgcsfxNameW, theGC,3,ASCENT+3,DialogFileName+stPos, enPos-stPos); ++ ++ cpos = XTextWidth(mfinfo, &DialogFileName[stPos], curPos-stPos); ++ XDrawLine(theDisp, mgcsfxNameW, theGC, 3+cpos, 2, 3+cpos, 2+CHIGH+1); ++ XDrawLine(theDisp, mgcsfxNameW, theGC, 3+cpos, 2+CHIGH+1, 5+cpos, 2+CHIGH+3); ++ XDrawLine(theDisp, mgcsfxNameW, theGC, 3+cpos, 2+CHIGH+1, 1+cpos, 2+CHIGH+3); ++} ++ ++/***************************************************/ ++/* $B%@%$%"%m%0Fb$K%U%!%$%k%M!<%`$rI=<($9$k(B */ ++static void showFNamMSD() ++{ ++ int len; ++ ++ len = strlen(DialogFileName); ++ ++ if (curPosenPos) enPos = curPos; ++ ++ if (stPos>len) stPos = (len>0) ? len-1 : 0; ++ if (enPos>len) enPos = (len>0) ? len-1 : 0; ++ ++ /* while substring is shorter than window, inc enPos */ ++ ++ while (XTextWidth(mfinfo, &DialogFileName[stPos], enPos-stPos) < MSNAMWIDE ++ && enPos MSNAMWIDE) { ++ if (enPos != curPos) enPos--; ++ else stPos++; ++ } ++ ++ ++ if (ctrlColor) XClearArea(theDisp, mgcsfxNameW, 2,2, (u_int) MSNAMWIDE+5-3, ++ (u_int) LINEHIGH+4-3, False); ++ else XClearWindow(theDisp, mgcsfxNameW); ++ ++ redrawNamMSD(); ++ BTSetActive(&msbut[MS_BOK], strlen(DialogFileName)!=0); ++} ++ ++/***************************************************/ ++/* $B%-!=' ' && c<'\177') { /* printable characters */ ++ /* note: only allow 'piped commands' in savemode... */ ++ ++ /* only allow spaces in 'piped commands', not filenames */ ++ if (c==' ' && (!ISPIPE(DialogFileName[0]) || curPos==0)) return (-1); ++ ++ /* only allow vertbars in 'piped commands', not filenames */ ++ if (c=='|' && curPos!=0 && !ISPIPE(DialogFileName[0])) return(-1); ++ ++ if (len >= MAXFNLEN-1) return(-1); /* max length of string */ ++ xvbcopy(&DialogFileName[curPos], &DialogFileName[curPos+1], (size_t) (len-curPos+1)); ++ DialogFileName[curPos]=c; curPos++; ++ } ++ ++ else if (c=='\010' || c=='\177') { /* BS or DEL */ ++ if (curPos==0) return(-1); /* at beginning of str */ ++ xvbcopy(&DialogFileName[curPos], &DialogFileName[curPos-1], (size_t) (len-curPos+1)); ++ curPos--; ++ } ++ ++ else if (c=='\025') { /* ^U: clear entire line */ ++ DialogFileName[0] = '\0'; ++ curPos = 0; ++ } ++ ++ else if (c=='\013') { /* ^K: clear to end of line */ ++ DialogFileName[curPos] = '\0'; ++ } ++ ++ else if (c=='\001') { /* ^A: move to beginning */ ++ curPos = 0; ++ } ++ ++ else if (c=='\005') { /* ^E: move to end */ ++ curPos = len; ++ } ++ ++ else if (c=='\004') { /* ^D: delete character at curPos */ ++ if (curPos==len) return(-1); ++ xvbcopy(&DialogFileName[curPos+1], &DialogFileName[curPos], (size_t) (len-curPos)); ++ } ++ ++ else if (c=='\002') { /* ^B: move backwards char */ ++ if (curPos==0) return(-1); ++ curPos--; ++ } ++ ++ else if (c=='\006') { /* ^F: move forwards char */ ++ if (curPos==len) return(-1); ++ curPos++; ++ } ++ ++ else if (c=='\012' || c=='\015') { /* CR(\r) or LF(\n) */ ++ FakeButtonPress(&msbut[MS_BOK]); ++ } ++ ++ else if (c=='\033') { /* ESC = Cancel */ ++ FakeButtonPress(&msbut[MS_BCANC]); ++ } ++ ++ else if (c=='\011') { /* tab = filename expansion */ ++ if (1 /* !autoComplete() */) XBell(theDisp, 0); ++ else { ++ curPos = strlen(DialogFileName); ++ } ++ } ++ ++ else return(-1); /* unhandled character */ ++ ++ showFNamMSD(); ++ ++ return(0); ++} ++ ++ ++/*******************************************/ ++int getInputCom() ++{ ++ static char *labels[] = { "\nOk", "\033Cancel" }; ++ int i; ++ ++ strcpy(input_command_ex, MGCSFX_DEFAULT_INPUT_COMMAND); ++ i = GetStrPopUp("Input External Command (Input is PNM):", labels, 2, ++ input_command_ex, 1024, "",0); ++ if (i == 0 && strlen(input_command_ex) != 0){ ++ input_command_ex_flag = 1; ++ return 1; ++ }else{ ++ input_command_ex_flag = 0; ++ return 0; ++ } ++} ++ ++int getOutputCom() ++{ ++ static char *labels[] = { "\nOk", "\033Cancel" }; ++ int i; ++ ++ strcpy(output_command_ex, MGCSFX_DEFAULT_OUTPUT_COMMAND); ++ i = GetStrPopUp("Input External Command (Output is PNM_RAW):", labels, 2, ++ output_command_ex, 1024, "",0); ++ if (i == 0 && strlen(output_command_ex) != 0){ ++ output_command_ex_flag = 1; ++ return 1; ++ }else{ ++ output_command_ex_flag = 0; ++ return 0; ++ } ++} ++ ++#ifdef SVR4 ++Sigfunc * ++xv_signal(signo, func) ++ int signo; ++ Sigfunc *func; ++{ ++ struct sigaction act, oact; ++ ++ act.sa_handler = func; ++ sigemptyset(&act.sa_mask); ++ act.sa_flags = 0; ++ act.sa_flags |= SA_RESTART; ++ ++ if (sigaction(signo, &act, &oact) < 0) ++ return SIG_ERR; ++ ++ return oact.sa_handler; ++} ++#endif ++ ++#endif /* HAVE_MGCSFX */ +diff -ruN xv-3.10a-bugfixes/xvmisc.c xv-3.10a-enhancements/xvmisc.c +--- xv-3.10a-bugfixes/xvmisc.c 2005-03-20 22:47:06.000000000 -0800 ++++ xv-3.10a-enhancements/xvmisc.c 2005-04-17 14:45:28.000000000 -0700 +@@ -103,10 +103,18 @@ + if (!usesize || !(i&WidthValue)) w = defw; + if (!usesize || !(i&HeightValue)) h = defh; + +- hints.flags |= USSize; ++ hints.flags |= USSize | PWinGravity; + +- if (i&XValue && i&XNegative) x = dispWIDE - w - abs(x); +- if (i&YValue && i&YNegative) y = dispHIGH - h - abs(y); ++ hints.win_gravity = NorthWestGravity; ++ if (i&XValue && i&XNegative) { ++ hints.win_gravity = NorthEastGravity; ++ x = dispWIDE - (w + 2 * bwidth) - abs(x); ++ } ++ if (i&YValue && i&YNegative) { ++ hints.win_gravity = (hints.win_gravity == NorthWestGravity) ? ++ SouthWestGravity : SouthEastGravity; ++ y = dispHIGH - (h + 2 * bwidth) - abs(y); ++ } + + + #define VROOT_TRANS +@@ -142,20 +150,19 @@ + if (!win) return(win); /* leave immediately if couldn't create */ + + +- XSetStandardProperties(theDisp, win, name, name, None, NULL, 0, &hints); +- + xwmh.input = True; + xwmh.flags = InputHint; + if (iconPix) { xwmh.icon_pixmap = iconPix; xwmh.flags |= IconPixmapHint; } +- XSetWMHints(theDisp, win, &xwmh); + + if (clname && strlen(clname)) { + classh.res_name = "xv"; + classh.res_class = clname; +- XSetClassHint(theDisp, win, &classh); + StoreDeleteWindowProp(win); + } + ++ XmbSetWMProperties(theDisp, win, name, name, NULL, 0, &hints, &xwmh, ++ clname ? &classh : NULL); ++ + return(win); + } + +@@ -232,28 +239,28 @@ + int i = CK_NONE; + + if (ks==XK_Up || ks==XK_KP_Up || +- ks==XK_KP_8 || ks==XK_F28) i=CK_UP; ++ ks==XK_F28) i=CK_UP; + + else if (ks==XK_Down || ks==XK_KP_Down || +- ks==XK_KP_2 || ks==XK_F34) i=CK_DOWN; ++ ks==XK_F34) i=CK_DOWN; + + else if (ks==XK_Left || ks==XK_KP_Left || +- ks==XK_KP_4 || ks==XK_F30) i=CK_LEFT; ++ ks==XK_F30) i=CK_LEFT; + + else if (ks==XK_Right || ks==XK_KP_Right || +- ks==XK_KP_6 || ks==XK_F32) i=CK_RIGHT; ++ ks==XK_F32) i=CK_RIGHT; + + else if (ks==XK_Prior || ks==XK_KP_Prior || +- ks==XK_KP_9 || ks==XK_F29) i=CK_PAGEUP; ++ ks==XK_F29) i=CK_PAGEUP; + + else if (ks==XK_Next || ks==XK_KP_Next || +- ks==XK_KP_3 || ks==XK_F35) i=CK_PAGEDOWN; ++ ks==XK_F35) i=CK_PAGEDOWN; + + else if (ks==XK_Home || ks==XK_KP_Home || +- ks==XK_KP_7 || ks==XK_F27) i=CK_HOME; ++ ks==XK_F27) i=CK_HOME; + + else if (ks==XK_End || ks==XK_KP_End || +- ks==XK_KP_1 || ks==XK_F33) i=CK_END; ++ ks==XK_F33) i=CK_END; + + else i = CK_NONE; + +@@ -503,6 +510,11 @@ + as we have to keep the alloc'd colors around, but we don't want anything + else to stay */ + ++#ifdef AUTO_EXPAND ++ chdir(initdir); ++ Vdsettle(); ++#endif ++ + if (!theDisp) exit(i); /* called before connection opened */ + + if (useroot && i==0) { /* save the root info */ +@@ -526,6 +538,26 @@ + if (tiffW) XDestroyWindow(theDisp, tiffW); + #endif + ++#ifdef HAVE_PNG ++ if (pngW) XDestroyWindow(theDisp, pngW); ++#endif ++ ++#ifdef HAVE_PCD ++ if (pcdW) XDestroyWindow(theDisp, pcdW); ++#endif ++ ++#ifdef HAVE_PIC2 ++ if (pic2W) XDestroyWindow(theDisp, pic2W); ++#endif ++ ++#ifdef HAVE_MGCSFX ++ if (mgcsfxW) XDestroyWindow(theDisp, mgcsfxW); ++#endif ++ ++#ifdef HAVE_PNG ++ if (pngW) XDestroyWindow(theDisp, pngW); ++#endif ++ + /* if NOT using stdcmap for images, free stdcmap */ + if (colorMapMode != CM_STDCMAP) { + int j; +@@ -722,6 +754,26 @@ + #ifdef HAVE_TIFF + if (tiffW) XDefineCursor(theDisp, tiffW, otherc); + #endif ++ ++#ifdef HAVE_PNG ++ if (pngW) XDefineCursor(theDisp, pngW, otherc); ++#endif ++ ++#ifdef HAVE_PNG ++ if (pngW) XDefineCursor(theDisp, pngW, otherc); ++#endif ++ ++#ifdef HAVE_PCD ++ if (pcdW) XDefineCursor(theDisp, pcdW, otherc); ++#endif ++ ++#ifdef HAVE_PIC2 ++ if (pic2W) XDefineCursor(theDisp, pic2W, otherc); ++#endif ++ ++#ifdef HAVE_MGCSFX ++ if (mgcsfxW) XDefineCursor(theDisp, mgcsfxW, otherc); ++#endif + } + + +@@ -921,7 +973,7 @@ + void XVCreatedFile(fullname) + char *fullname; + { +- /* called whenever a file has been deleted. Updates browser & dir windows, ++ /* called whenever a file has been created. Updates browser & dir windows, + if necessary */ + + BRCreatedFile(fullname); +@@ -1006,6 +1058,9 @@ + ((rv=(char *) getenv("cwd"))==NULL)) rv = "./"; + strcpy(buf, rv); + } ++#ifdef AUTO_EXPAND ++ Vdtodir(buf); ++#endif + } + + +diff -ruN xv-3.10a-bugfixes/xvml.c xv-3.10a-enhancements/xvml.c +--- xv-3.10a-bugfixes/xvml.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvml.c 2005-04-17 22:57:34.000000000 -0700 +@@ -0,0 +1,989 @@ ++/* ++ * xvml.c - makes text item structure for multi-lingual textviewer. ++ * ++ * Entry Points: ++ * struct ml_text *ml_draw_text() ++ * struct context *ml_create_context() ++ * int ml_set_charsets() ++ * void get_monofont_size() ++ */ ++ ++#include "xv.h" ++#include ++ ++#ifdef TV_MULTILINGUAL /* whole this file. */ ++ ++#include "xvml.h" ++#define HAVE_STRDUP 1 ++#define USE_MULE_EXTENSION ++ ++#ifndef __STDC__ ++#define CHAR char ++#else ++#define CHAR int ++#endif ++ ++#define CODE_SI 0x0e /* LS0 */ ++#define CODE_SO 0x0f /* LS1 */ ++#define CODE_SS2 ((unsigned char) 0x8e) ++#define CODE_SS3 ((unsigned char) 0x8f) ++ ++int ml_tab_width = 64; /* dots */ ++ ++struct charset { ++ int bpc; /* bytes per char */ ++ int noc; /* number of chars */ ++ char designator; ++ char *registry; ++ int bit7; ++ ++ int loaded; ++ char *fontname; ++ ++ XFontStruct *fs; ++} charset[] = { ++ { 1, 94, 'B', "iso8859-1", 0, 0, NULL, NULL}, ++ { 1, 96, 'A', "iso8859-1", 1, 0, NULL, NULL}, ++ { 1, 94, '0', "omron_udc_zh-0", 0, 0, NULL, NULL}, ++ { 1, 94, '2', "mulearabic-0", 0, 0, NULL, NULL}, ++ { 1, 94, '3', "mulearabic-1", 0, 0, NULL, NULL}, ++ { 1, 94, '4', "mulearabic-2", 0, 0, NULL, NULL}, ++ { 1, 94, 'J', "jisx0201.1976-0", 0, 0, NULL, NULL}, ++ { 1, 96, '0', "muleipa-1", 1, 0, NULL, NULL}, ++ { 1, 96, '1', "viscii1.1-1", 1, 0, NULL, NULL}, ++ { 1, 96, '2', "viscii1.1-1", 1, 0, NULL, NULL}, ++ { 1, 96, 'B', "iso8859-2", 1, 0, NULL, NULL}, ++ { 1, 96, 'C', "iso8859-3", 1, 0, NULL, NULL}, ++ { 1, 96, 'D', "iso8859-4", 1, 0, NULL, NULL}, ++ { 1, 96, 'T', "tis620.1986-0", 1, 0, NULL, NULL}, ++ { 1, 96, 'F', "iso8859-7", 1, 0, NULL, NULL}, ++ { 1, 96, 'G', "iso8859-6", 1, 0, NULL, NULL}, ++ { 1, 96, 'H', "iso8859-8", 1, 0, NULL, NULL}, ++ { 1, 94, 'I', "jisx0201.1976-0", 1, 0, NULL, NULL}, ++ { 1, 96, 'L', "iso8859-5", 1, 0, NULL, NULL}, ++ { 1, 96, 'M', "iso8859-9", 1, 0, NULL, NULL}, ++ { 2, 94, '2', "ethio-0", 0, 0, NULL, NULL}, ++ { 2, 94, '@', "jisx0208.1978", 0, 0, NULL, NULL}, ++ { 2, 94, 'A', "gb2312.1980-0", 0, 0, NULL, NULL}, ++ { 2, 94, 'B', "jisx0208.1983-0", 0, 0, NULL, NULL}, ++ { 2, 94, 'C', "ksc5601.1987-0", 0, 0, NULL, NULL}, ++ { 2, 94, 'D', "jisx0212.1990-0", 0, 0, NULL, NULL}, ++ { 2, 94, '0', "big5.eten-0", 0, 0, NULL, NULL}, ++ { 2, 94, '1', "big5.hku-0", 0, 0, NULL, NULL}, ++ /* End Mark */ ++ { 0, 0, 0, NULL, 0, 0, NULL, NULL}, ++}; ++#define NR_CHARSETS ((int) (sizeof charset / sizeof charset[0])) ++ ++static struct charset *ascii = NULL; ++ ++struct context { ++ struct charset *g[4]; ++ struct charset **gl, **gr; ++ struct charset **ss; ++ int eol; /* 0: \n, 1: \r\n, 2: \r, 3: any */ ++ int valid[4]; /* g[i] is valid? */ ++ int short_form; /* allow shortened designator sequence? */ ++ int lock_shift; /* allow locking shift? */ ++ ++ unsigned char *cbuf, *cbp; ++ struct ml_text text; ++ int line; ++ int delta; ++ int toolong; ++ ++ Display *dpy; ++ Screen *scr; ++ Window root_win; ++}; ++#define DPY (context->dpy) ++#define SCR (context->scr) ++#define ROOT_WIN (context->root_win) ++ ++static unsigned char *escape_sequence PARM((unsigned char *)); ++static unsigned char *designator_sequence PARM((unsigned char *)); ++static void locking_shift PARM((unsigned CHAR)); ++static void single_shift PARM((unsigned CHAR)); ++static void put_unknown_char PARM((unsigned CHAR)); ++static struct charset *search_charset PARM((int, int, int)); ++static void pack_string PARM((struct charset *, ++ unsigned char *, int)); ++static void init_xrm PARM((void)); ++static void init_xrm_fonts PARM((void)); ++static void init_xrm_tab PARM((void)); ++#ifndef HAVE_STRDUP ++static char *strdup PARM((char *)); ++#endif ++ ++static char *default_fonts[] = { /* default for xrm_fonts */ ++ "-sony-fixed-medium-r-normal--16-*-*-*-*-*-iso8859-1", ++ "-jis-fixed-medium-r-normal--16-*-*-*-*-*-jisx0208.1983-0", ++}; ++static int xrm_nfonts; ++static char **xrm_fonts; ++ ++static struct context *context; /* current context */ ++ ++struct ml_text *ml_draw_text(ctx, string, len) ++ struct context *ctx; ++ char *string; ++ int len; ++{ ++ unsigned char *str = (unsigned char *) string; ++ unsigned char *estr = str + len; ++ ++ context = ctx; ++ ++ if(ascii == NULL){ ++ fputs("ml_draw_text: call ml_set_charsets, first.\n", stderr); ++ return NULL; ++ } ++ ++ if(!str) ++ return &context->text; ++ ++ WaitCursor(); ++ ++ if (context->text.maxlines != 0) { ++ struct ml_text *tp = &context->text; ++ struct ml_line *lp; ++ int i; ++ for (i = tp->nlines, lp = tp->lines; i > 0; i--, lp++) { ++ if (lp->maxitems != 0) ++ free((char *) lp->items); ++ } ++ free((char *) tp->lines); ++ tp->maxlines = tp->nlines = 0; ++ } ++ if (context->cbuf != NULL) ++ free((char *) context->cbuf); ++ context->cbp = (unsigned char *) malloc((size_t) len * 8);/* all \xxx */ ++ context->cbuf = context->cbp; ++ context->line = 0; ++ context->delta = 0; ++ context->ss = NULL; ++ ++ while(str < estr){ ++ if((*str & 0x80) == 0){ /* left half */ ++ struct charset *cs = context->ss ? *context->ss : *context->gl; ++ unsigned char min_char, max_char; ++ if (cs != NULL) { ++ if(cs->noc == 94){ ++ min_char = 0x21; ++ max_char = 0x7e; ++ }else{ ++ min_char = 0x20; ++ max_char = 0x7f; ++ } ++ } ++ ++ if (cs == NULL) ++ put_unknown_char(*str++); ++ else if(*str < min_char || *str > max_char){ /* C1 */ ++ switch(*str){ ++ case ' ': ++ { ++ unsigned char *p = str + 1; ++ while (*p == ' ' && p < estr) ++ p++; ++ pack_string(ascii, str, (int) (p - str)); ++ str = p; ++ } ++ break; ++ ++ case '\t': ++ pack_string(ascii, str++, 0); ++ break; ++ ++ case '\n': ++ switch (context->eol) { ++ case 0: /* unix type eol */ ++ pack_string(ascii, str, 0); ++ WaitCursor(); ++ str++; ++ break; ++ case 1: /* dos type eol */ ++ case 2: /* mac type eol */ ++ put_unknown_char('\n'); ++ str++; ++ break; ++ case 3: /* any type eol */ ++ pack_string(ascii, str++, 0); ++ while (*str == '\n' || *str == '\r') ++ str++; ++ WaitCursor(); ++ break; ++ } ++ break; ++ ++ case '\r': ++ switch (context->eol) { ++ case 0: ++ put_unknown_char('\r'); ++ str++; ++ break; ++ case 1: ++ str++; ++ if (*str == '\n') ++ pack_string(ascii, str++, 0); ++ else ++ put_unknown_char('\r'); ++ break; ++ case 2: ++ pack_string(ascii, str, 0); ++ WaitCursor(); ++ str++; ++ break; ++ case 3: ++ pack_string(ascii, str++, 0); ++ while (*str == '\n' || *str == '\r') ++ str++; ++ WaitCursor(); ++ break; ++ } ++ break; ++ ++ case '\033': ++ { ++ unsigned char *p; ++ str++; ++ if((p = escape_sequence(str)) == str) ++ put_unknown_char('\033'); ++ else ++ str = p; ++ } ++ break; ++ ++ case CODE_SI: ++ case CODE_SO: ++ if (!context->lock_shift) ++ put_unknown_char((unsigned int) *str++); ++ else ++ locking_shift((unsigned int) *str++); ++ break; ++ ++ default: ++ put_unknown_char((unsigned int) *str++); ++ } ++ }else{ /* GL */ ++ if (context->ss != NULL) { ++ pack_string(cs, str, 1); ++ str += cs->bpc; ++ context->ss = NULL; ++ } else { ++ int n; ++ ++ if (cs->bpc == 1) { ++ unsigned char *p = str; ++ for (n = 0; p < estr; n++) { ++ if (*p < min_char || *p > max_char) ++ break; ++ p++; ++ } ++ pack_string(cs, str, n); ++ str = p; ++ } else { ++ unsigned char *p = str; ++ for (n = 0; p < estr - 1; n++) { ++ if (*p < min_char || *p > max_char || ++ *(p + 1) < min_char || *(p + 1) > max_char) ++ break; ++ p += 2; ++ } ++ if (n > 0) ++ pack_string(cs, str, n); ++ else ++ put_unknown_char(*p++); ++ str = p; ++ } ++ } ++ } ++ }else{ /* right half */ ++ struct charset *cs = context->ss ? *context->ss : *context->gr; ++ unsigned char min_char, max_char; ++ if (cs != NULL) { ++ if(cs->noc == 94){ ++ min_char = 0xa1; ++ max_char = 0xfe; ++ }else{ ++ min_char = 0xa0; ++ max_char = 0xff; ++ } ++ } ++ ++ if (cs == NULL) ++ put_unknown_char(*str++); ++ else if(*str < min_char || *str > max_char){ /* C2 */ ++ unsigned char c = *str++; ++ switch(c){ ++ case CODE_SS2: ++ case CODE_SS3: ++ single_shift((unsigned CHAR) c); ++ break; ++ default: ++ put_unknown_char(c); ++ } ++ }else{ /* GR */ ++ if (context->ss != NULL) { ++ pack_string(cs, str, 1); ++ str += cs->bpc; ++ context->ss = NULL; ++ } else { ++ int n; ++ ++ if (cs->bpc == 1) { ++ unsigned char *p = str; ++ for (n = 0; p < estr; n++) { ++ if (*p < min_char || *p > max_char) ++ break; ++ p++; ++ } ++ pack_string(cs, str, n); ++ str = p; ++ } else { ++ unsigned char *p = str; ++ for (n = 0; p < estr - 1; n++) { ++ if (*p < min_char || *p > max_char || ++ *(p + 1) < min_char || *(p + 1) > max_char) ++ break; ++ p += 2; ++ } ++ if (n > 0) ++ pack_string(cs, str, n); ++ else ++ put_unknown_char(*p++); ++ str = p; ++ } ++ } ++ } ++ } ++ } ++ ++ { ++ struct ml_text *tp = &context->text; ++ struct ml_line *lp; ++ int i; ++ ++ tp->width = 0; ++ tp->height = 0; ++ for (lp = tp->lines, i = tp->nlines; i > 0; lp++, i--) { ++ if (lp->nitems == 0) { ++ lp->ascent = ascii->fs->ascent; ++ lp->descent = ascii->fs->descent; ++ } ++ if (tp->width < lp->width) ++ tp->width = lp->width; ++ tp->height += lp->ascent + lp->descent; ++ } ++ } ++ ++ SetCursors(-1); ++ return &context->text; ++} ++ ++static unsigned char *escape_sequence(str) ++ unsigned char *str; ++{ ++ unsigned char *p; ++ switch(*str){ ++ case '$': ++ case '(': case ')': case '*': case '+': ++ case '-': case '.': case '/': case ',': ++ if((p = designator_sequence(str)) == NULL) ++ return str; ++ return p; ++ case 'n': case 'o': case '~': case '}': case '|': ++ if (!context->lock_shift) ++ return str; ++ locking_shift(*str); ++ return str + 1; ++ case 'N': case 'O': ++ single_shift(*str); ++ return str + 1; ++ } ++ return str; ++ ++} ++ ++static unsigned char *designator_sequence(str) ++ unsigned char *str; ++{ ++ unsigned char *p = str; ++ int noc, bpc, n_g, shortened; ++ unsigned char des; ++ struct charset *cs; ++ ++ if(*p == '$'){ ++ bpc = 2; ++ p++; ++ }else ++ bpc = 1; ++ ++ switch(*p++){ ++ case '(': noc = 94; n_g = 0; des = *p++; shortened = 0; break; ++ case ')': noc = 94; n_g = 1; des = *p++; shortened = 0; break; ++ case '*': noc = 94; n_g = 2; des = *p++; shortened = 0; break; ++ case '+': noc = 94; n_g = 3; des = *p++; shortened = 0; break; ++#ifdef USE_MULE_EXTENSION ++ case ',': noc = 96; n_g = 0; des = *p++; shortened = 0; break; ++#endif ++ case '-': noc = 96; n_g = 1; des = *p++; shortened = 0; break; ++ case '.': noc = 96; n_g = 2; des = *p++; shortened = 0; break; ++ case '/': noc = 96; n_g = 3; des = *p++; shortened = 0; break; ++ case '@': noc = 94; n_g = 0; des = 'B'; shortened = 0; break; ++ case 'A': noc = 94; n_g = 0; des = 'A'; shortened = 1; break; ++ case 'B': noc = 94; n_g = 0; des = 'B'; shortened = 1; break; ++ default: return NULL; ++ } ++ if (!context->short_form && shortened) ++ return NULL; ++ ++ if((cs = search_charset(bpc, noc, des)) == NULL){ ++ if(DEBUG){ ++ fprintf(stderr, "designator_sequence: (%d,%d,%c) not found.\n", ++ bpc, noc, des); ++ } ++ return NULL; ++ } ++ if (!context->valid[n_g]) ++ return NULL; ++ context->g[n_g] = cs; ++ if(DEBUG){ ++ fprintf(stderr, ++ "designator_sequence: G%d is `%s'.\n", n_g, cs->registry); ++ } ++ return p; ++} ++ ++static void locking_shift(c) ++ unsigned CHAR c; ++{ ++ switch((unsigned char) c){ ++ case CODE_SI: context->gl = &context->g[0]; break; ++ case CODE_SO: context->gl = &context->g[1]; break; ++ case 'n': context->gl = &context->g[2]; break; ++ case 'o': context->gl = &context->g[3]; break; ++ case '~': context->gr = &context->g[1]; break; ++ case '}': context->gr = &context->g[2]; break; ++ case '|': context->gr = &context->g[3]; break; ++ } ++ if(DEBUG){ ++ fprintf(stderr, "locking_shift: (%d,%d).\n", ++ (int)(context->gl - context->g), ++ (int)(context->gr - context->g)); ++ } ++} ++ ++static void single_shift(c) ++ unsigned CHAR c; ++{ ++ switch((unsigned char) c){ ++ case CODE_SS2: context->ss = &context->g[2]; break; ++ case CODE_SS3: context->ss = &context->g[3]; break; ++ } ++} ++ ++ ++static void put_unknown_char(chr) ++ unsigned CHAR chr; ++{ ++ unsigned char c = chr; ++ ++ if(c < 0x20){ ++ unsigned char buf[2]; ++ buf[0] = '^'; ++ buf[1] = c + 0x40; ++ pack_string(ascii, buf, 2); ++ }else{ ++ unsigned char buf[4]; ++ buf[0] = '\\'; ++ buf[1] = ((c >> 6) & 07) + '0'; ++ buf[2] = ((c >> 3) & 07) + '0'; ++ buf[3] = ((c ) & 07) + '0'; ++ pack_string(ascii, buf, 4); ++ } ++} ++ ++struct context *ml_create_context(s) ++ Screen *s; ++{ ++ context = (struct context *) malloc(sizeof *context); ++ ++ context->g[0] = NULL; ++ context->g[1] = NULL; ++ context->g[2] = NULL; ++ context->g[3] = NULL; ++ context->gl = NULL; ++ context->gr = NULL; ++ context->ss = NULL; ++ ++ context->cbuf = NULL; ++ context->text.maxlines = context->text.nlines = 0; ++ context->line = 0; ++ context->delta = 0; ++ context->toolong = 0; ++ ++ DPY = DisplayOfScreen(s); ++ SCR = s; ++ ROOT_WIN = RootWindowOfScreen(s); ++ ++ return context; ++} ++ ++ ++int ml_set_charsets(ctx, sys) ++ struct context *ctx; ++ struct coding_system *sys; ++{ ++ int retval = 0; ++ int i; ++ ++ context = ctx; ++ ++ if(ascii == NULL){ ++ init_xrm(); ++ if((ascii = search_charset(1, 94, 'B')) == NULL){ ++ fputs("ml_set_charsets: ascii charset not found.\n", stderr); ++ Quit(1); ++ } ++ if (ascii->fs == NULL) { ++ fputs("ml_set_charsets: iso8859-1 font not found.\n", stderr); ++ Quit(1); ++ } ++ } ++ for(i = 0; i < 4; i++){ ++ switch(sys->design[i].bpc){ ++ case -1: /* make G[i] invalid */ ++ context->valid[i] = 0; ++ break; ++ ++ case 0: /* don't change */ ++ break; ++ ++ case 1: case 2: /* change it */ ++ if((context->g[i] = search_charset(sys->design[i].bpc, ++ sys->design[i].noc, ++ sys->design[i].des)) == NULL){ ++ fputs("ml_set_charsets: ", stderr); ++ fprintf(stderr, "(%d,%d,%c) is specified as G%d, ", ++ sys->design[i].bpc, sys->design[i].noc, ++ sys->design[i].des, i); ++ fputs("but not found. using `iso8859-1'.\n", stderr); ++ context->g[i] = ascii; ++ retval++; ++ } ++ context->valid[i] = 1; ++ break; ++ ++ default: /* error */ ++ fprintf(stderr,"ml_set_charsets: bad arguments of G%d. ", i); ++ fputs("using `iso8859-1'.\n", stderr); ++ context->g[i] = ascii; ++ retval++; ++ } ++ } ++ if((unsigned int) sys->gl < 4) ++ context->gl = &context->g[sys->gl]; ++ else{ ++ fprintf(stderr, "ml_set_charsets: bad number as GL. using G0.\n"); ++ context->gl = &context->g[0]; ++ } ++ if((unsigned int) sys->gr < 4) ++ context->gr = &context->g[sys->gr]; ++ else{ ++ fprintf(stderr, "ml_set_charsets: bad number as GR. using G0.\n"); ++ context->gr = &context->g[0]; ++ } ++ context->eol = sys->eol; ++ context->short_form = sys->short_form; ++ context->lock_shift = sys->lock_shift; ++ return retval; ++} ++ ++static struct charset *search_charset(bpc, noc, des) ++ int bpc, noc; ++ int des; ++{ ++ struct charset *cset; ++ for(cset = charset; cset->bpc != 0; cset++){ ++ if(cset->bpc == bpc && ++ cset->noc == noc && ++ cset->designator == (char) des){ ++ if(!cset->loaded){ ++#if 0 ++ int i, l; ++ l = strlen(cset->registry); ++ for (i = 0; i < xrm_nfonts; i++) { ++ int li = strlen(xrm_fonts[i]); ++ if (li > l) { ++ if (xrm_fonts[i][li - l - 1] == '-' && ++ strcmp(xrm_fonts[i] + li - l, ++ cset->registry) == 0) { ++ if ((cset->fs = XLoadQueryFont(DPY, xrm_fonts[i])) ++ != NULL) { ++ if (DEBUG) { ++ fprintf(stderr, "%s for %s\n", ++ xrm_fonts[i], cset->registry); ++ } ++ cset->fontname = xrm_fonts[i]; ++ break; ++ } else ++ SetISTR(ISTR_WARNING, ++ "%s: font not found.", xrm_fonts[i]); ++ } ++ } ++ } ++#else ++ int i, l; ++ l = strlen(cset->registry); ++ for (i = 0; i < xrm_nfonts && cset->fs == NULL; i++) { ++ int j, nfnts = 0; ++ char **fnts = XListFonts(DPY, xrm_fonts[i], ++ 65535, &nfnts); ++ for (j = 0 ; j < nfnts; j++) { ++ int ll = strlen(fnts[j]); ++ if (*(fnts[j] + ll - l - 1) == '-' && ++ strcmp(fnts[j] + ll - l, cset->registry)== 0) { ++ if ((cset->fs = XLoadQueryFont(DPY, fnts[j])) ++ != NULL) { ++ if (DEBUG) { ++ fprintf(stderr, "%s for %s\n", ++ fnts[j], cset->registry); ++ } ++ cset->fontname = strdup(fnts[j]); ++ break; ++ } else ++ SetISTR(ISTR_WARNING, ++ "%s: font not found", fnts[j]); ++ } ++ } ++ if (fnts != NULL) ++ XFreeFontNames(fnts); ++ } ++#endif ++ if(cset->fs == NULL){ ++ SetISTR(ISTR_WARNING, ++ "font for %s not found.\nusing ascii font.", ++ cset->registry); ++ if (ascii != NULL) ++ cset->fs = ascii->fs; ++ } ++ ++ cset->loaded = 1; ++ } ++ return cset; ++ } ++ } ++ return NULL; ++} ++ ++static void pack_string(cs, str, len) ++ struct charset *cs; ++ unsigned char *str; ++ int len; /* number of chars(not bytes) */ ++{ ++ struct ml_text *mt = &context->text; ++ struct ml_line *lp; ++ XTextItem16 *ip; ++ ++ if (context->line == mt->maxlines) { ++ int oldmax = mt->maxlines; ++ if (mt->maxlines < 1) ++ mt->maxlines = 1; ++ else ++ mt->maxlines = 2 * mt->maxlines; ++ if (oldmax == 0) ++ mt->lines = (struct ml_line *) ++ malloc(sizeof(struct ml_line) * mt->maxlines); ++ else { ++ mt->lines = (struct ml_line *) ++ realloc(mt->lines, ++ sizeof(struct ml_line) * mt->maxlines); ++ } ++ } ++ lp = &mt->lines[context->line]; ++ if (mt->nlines == context->line) { ++ mt->nlines++; ++ lp->maxitems = 0; ++ lp->nitems = 0; ++ lp->width = 0; ++ lp->ascent = lp->descent = 0; ++ } ++ ++ if (len == 0) { ++ switch (*str) { ++ case '\n': ++ context->line++; ++ context->delta = 0; ++ context->toolong = 0; ++ break; ++ case '\t': ++ { ++ int nx, x = lp->width + context->delta; ++ nx = (x + ml_tab_width) / ml_tab_width * ml_tab_width; ++ context->delta += nx - x; ++ } ++ break; ++ } ++ return; ++ } ++ ++ if (context->toolong) ++ return; ++ if (lp->width > 30000) { ++ context->toolong = 1; ++ cs = ascii; ++ str = (unsigned char *) "..."; ++ len = 3; ++ } ++ ++ if (lp->nitems == lp->maxitems) { ++ int oldmax = lp->maxitems; ++ if (lp->maxitems < 1) ++ lp->maxitems = 1; ++ else ++ lp->maxitems = 2 * lp->maxitems; ++ if (oldmax == 0) ++ lp->items = (XTextItem16 *) ++ malloc(sizeof(XTextItem16) * lp->maxitems); ++ else ++ lp->items = (XTextItem16 *) ++ realloc(lp->items, ++ sizeof(XTextItem16) * lp->maxitems); ++ } ++ ip = &lp->items[lp->nitems++]; ++ ip->chars = (XChar2b *) context->cbp; ++ ip->nchars = len; ++ ip->delta = context->delta; ++ ip->font = cs->fs->fid; ++ context->cbp += 2 * len; ++ context->delta = 0; ++ ++ if (cs->bpc == 1) { ++ XChar2b *p; ++ unsigned char b7 = cs->bit7 ? 0x80 : 0; ++ int i; ++ for (i = len, p = ip->chars; i > 0; i--, p++) { ++ p->byte1 = '\0'; ++ p->byte2 = (*str++ & 0x7f) | b7; ++ } ++ } else { ++ XChar2b *p; ++ unsigned char b7 = cs->bit7 ? 0x80 : 0; ++ int i; ++ for (i = len, p = ip->chars; i > 0; i--, p++) { ++ p->byte1 = (*str++ & 0x7f) | b7; ++ p->byte2 = (*str++ & 0x7f) | b7; ++ } ++ } ++ ++ lp->width += XTextWidth16(cs->fs, ip->chars, ip->nchars); ++ if (lp->ascent < cs->fs->ascent) ++ lp->ascent = cs->fs->ascent; ++ if (lp->descent < cs->fs->descent) ++ lp->descent = cs->fs->descent; ++} ++ ++void get_monofont_size(wide, high) ++ int *wide, *high; ++{ ++ if (ascii == NULL) { ++ fputs("ml_draw_text: call ml_set_charsets, first.\n", stderr); ++ return; ++ } ++ *wide = ascii->fs->max_bounds.width; ++ *high = ascii->fs->ascent + ascii->fs->descent; ++} ++ ++static void init_xrm() ++{ ++ init_xrm_fonts(); ++ init_xrm_tab(); ++} ++ ++static void init_xrm_fonts() ++{ ++ char *p, *fns = XGetDefault(theDisp, "xv", "fontSet"); ++ int n; ++ if (fns == NULL) { ++ xrm_fonts = default_fonts; ++ xrm_nfonts = sizeof default_fonts / sizeof *default_fonts; ++ return; ++ } ++ while(*fns == ' ' || *fns == '\t') ++ fns++; ++ if (*fns == '\0') { ++ xrm_fonts = default_fonts; ++ xrm_nfonts = sizeof default_fonts / sizeof *default_fonts; ++ return; ++ } ++ fns = strdup(fns); ++ ++ n = 1; ++ for (p = fns; *p != '\0'; p++) { ++ if (*p == ',') ++ n++; ++ } ++ xrm_nfonts = n; ++ xrm_fonts = (char **) malloc(sizeof (char *) * xrm_nfonts); ++ for (n = 0, p = fns; n < xrm_nfonts && *p != '\0'; ) { ++ while (*p == ' ' || *p == '\t') ++ p++; ++ xrm_fonts[n++] = p; ++ while (1) { ++ char *q; ++ while (*p != ' ' && *p != '\t' && *p != ',' && *p != '\0') ++ p++; ++ q = p; ++ while (*q == ' ' || *q == '\t') ++ q++; ++ if (*q == ',' || *q == '\0') { ++ *p = '\0'; ++ p = q + 1; ++ break; ++ } else ++ p = q; ++ } ++ } ++ for ( ; n < xrm_nfonts; n++) ++ xrm_fonts[n] = ""; ++} ++ ++static void init_xrm_tab() ++{ ++ char *ts = XGetDefault(theDisp, "xv", "tabWidth"); ++ unsigned short tab; ++ if (ts == NULL) ++ tab = 64; ++ else { ++ char *ep; ++ long t; ++ int bad = 0; ++ t = strtol(ts, &ep, 0); ++ tab = (unsigned short) t; ++ if (ep != NULL) { ++ while (*ep == ' ' && *ep == '\t') ++ ep++; ++ if (*ep != '\0') ++ bad = 1; ++ } ++ if (tab != (long) (unsigned long) t) ++ bad = 1; ++ if (bad) { ++ SetISTR(ISTR_WARNING, "bad tab width."); ++ tab = 64; ++ } ++ } ++ ml_tab_width = tab; ++} ++ ++ ++#ifndef HAVE_STRDUP ++static char *strdup(str) ++ char *str; ++{ ++ return strcpy(malloc(strlen(str) + 1), str); ++} ++#endif ++ ++char *lookup_registry(d, b7) ++ struct design d; ++ int *b7; ++{ ++ int i; ++ for (i = 0; i < NR_CHARSETS; i++) { ++ if (charset[i].bpc == d.bpc && charset[i].noc == d.noc && ++ charset[i].designator == d.des) { ++ *b7 = charset[i].bit7; ++ return charset[i].registry; ++ } ++ } ++ return NULL; ++} ++ ++struct design lookup_design(registry, b7) ++ char *registry; ++ int b7; ++{ ++ struct design d; ++ int i; ++ d.bpc = 0; ++ d.noc = 0; ++ d.des = '\0'; ++ for (i = 0; i < NR_CHARSETS; i++) { ++ if (strcmp(charset[i].registry, registry) == 0 && ++ charset[i].bit7 == b7) { ++ d.bpc = charset[i].bpc; ++ d.noc = charset[i].noc; ++ d.des = charset[i].designator; ++ break; ++ } ++ } ++ return d; ++} ++ ++char *sjis_to_jis(orig, len, newlen) ++ char *orig; ++ int len, *newlen; ++{ ++ unsigned char *new; ++ unsigned char *p, *q, *endp; ++ if (len == 0) { ++ *newlen = 0; ++ return (char *) malloc((size_t) 1); ++ } ++ new = (unsigned char *) malloc((size_t) len * 4); /* big enough */ ++ for (p = (unsigned char *) orig, endp = p + len, q = new; p < endp; ) { ++ if ((*p & 0x80) == 0) /* 1 byte char */ ++ *q++ = *p++; ++ else if (*p >= 0x81 && *p <= 0x9f) { /* kanji 1st byte */ ++ unsigned char c1 = *p++; ++ unsigned char c2 = *p++; ++ if (c2 < 0x40 || c2 > 0xfc) { /* bad 2nd byte */ ++ *q++ = CODE_SS2; ++ *q++ = c1; ++ *q++ = CODE_SS2; ++ *q++ = c2; ++ } else { /* right 2nd byte */ ++ if (c2 <= 0x9e) { ++ if (c2 > 0x7f) ++ c2--; ++ c1 = (c1 - 0x81) * 2 + 1 + 0xa0; ++ c2 = (c2 - 0x40) + 1 + 0xa0; ++ } else { ++ c1 = (c1 - 0x81) * 2 + 2 + 0xa0; ++ c2 = (c2 - 0x9f) + 1 + 0xa0; ++ } ++ *q++ = c1; ++ *q++ = c2; ++ } ++ } else if (*p >= 0xe0 && *p <= 0xef) { /* kanji 1st byte */ ++ unsigned char c1 = *p++; ++ unsigned char c2 = *p++; ++ if (c2 < 0x40 || c2 > 0xfc) { /* bad 2nd byte */ ++ *q++ = CODE_SS2; ++ *q++ = c1; ++ *q++ = CODE_SS2; ++ *q++ = c2; ++ } else { /* right 2nd byte */ ++ if (c2 <= 0x9e) { ++ c1 = (c1 - 0xe0) * 2 + 63 + 0xa0; ++ c2 = (c2 - 0x40) + 1 + 0xa0; ++ } else { ++ c1 = (c1 - 0xe0) * 2 + 64 + 0xa0; ++ c2 = (c2 - 0x9f) + 1 + 0xa0; ++ } ++ *q++ = c1; ++ *q++ = c2; ++ } ++ } else { /* katakana or something */ ++ *q++ = CODE_SS2; ++ *q++ = *p++; ++ } ++ } ++ *newlen = q - new; ++ ++ return (char *) realloc(new, (size_t) *newlen); ++} ++ ++#endif /* TV_MULTILINGUAL */ +diff -ruN xv-3.10a-bugfixes/xvml.h xv-3.10a-enhancements/xvml.h +--- xv-3.10a-bugfixes/xvml.h 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvml.h 2005-04-17 22:57:45.000000000 -0700 +@@ -0,0 +1,96 @@ ++#ifndef MLVIEW_H ++#define MLVIEW_H ++ ++/* ++ * What is this? ++ * ++ * It is a package to show multi-lingual text. ++ * ++ * How to use? ++ * ++ * 1. Call ml_set_screen(Screen *scr); ++ * Tell this package the screen you use. ++ * ++ * 2. Call ml_set_charsets(struct char_spec spec[4], int gl, int gr); ++ * Tell this package the initial charsets. ++ * Gn is set to the charset specified by spec[n], respectively. ++ * GL and GR are set to G[gl] and G[gr], respectively. ++ * If first call, iso8859-1 font is loaded. ++ * ++ * 3. Call ml_draw_text(char *string); ++ * It Creates a bitmap, and returns it to you. ++ * If something goes wrong, it returns None. ++ * DON'T free the returned pixmaps!! ++ * ++ * BUGS: ++ * - Amharic and Tigrigna characters are strange. ++ * - Big5 is not supported. ++ * - Reverse direction is not supported. ++ * - Composing is not supported. ++ * - Cantonese can't be shown. ++ * - Texts which have many lines are buggy. ++ * ++ * NOTE: ++ * - Shifted JIS and Shifted GB must be converted to iso2022 in advance. ++ * ++ * Example of parameters to ml_set_charsets: ++ * - EUC-Japan ++ * spec = { {1, 94, 'B'}, G0 is US-ASCII ++ * {2, 94, 'B'}, G1 is JIS X0208 ++ * {1, 94, 'J'}, G2 is (right-half of)JIS X0201 ++ * {2, 94, 'D'} }; G3 is JIS X0212 ++ * gl = 0; GL is G0 ++ * gr = 1; GR is G1 ++ * ++ * - Compound Text ++ * spec = { {1, 94, 'B'}, G0 is US-ASCII ++ * {1, 96, 'A'}, G1 is Latin-1 ++ * {1, 94, 'B'}, G2 is US-ASCII (maybe unused) ++ * {1, 94, 'B'} }; G3 is US-ASCII (maybe unused) ++ * gl = 0; GL is G0 ++ * gr = 1; GR is G1 ++ * ++ * - Korean Mail ++ * spec = { {1, 94, 'B'}, G0 is US-ASCII ++ * {2, 94, 'C'}, G1 is KSC5601 ++ * {1, 94, 'B'}, G2 is US-ASCII (maybe unused) ++ * {1, 94, 'B'} }; G3 is US-ASCII (maybe unused) ++ * gl = 0; GL is G0 ++ * gl = 1; GR is G1 ++ */ ++ ++struct coding_system { ++ struct design { ++ int bpc; /* byte per char if 1 or 2, ++ don't touch if 0, or ++ don't use if -1.*/ ++ int noc; /* number of chars (94 or 96) */ ++ char des; /* designator ('A', 'B', ...) */ ++ } design[4]; ++ int gl, gr; ++ int eol; ++ int short_form; ++ int lock_shift; ++}; ++ ++struct ml_text { ++ int maxlines, nlines; ++ struct ml_line { ++ int maxitems, nitems; ++ int width, ascent, descent; ++ XTextItem16 *items; ++ } *lines; ++ int width, height; ++}; ++ ++struct context; ++struct ml_text *ml_draw_text PARM((struct context *, char *, int)); ++struct context *ml_create_context PARM((Screen *)); ++int ml_set_charsets PARM((struct context *, ++ struct coding_system *)); ++void get_monofont_size PARM((int *, int *)); ++char *sjis_to_jis PARM((char *, int, int *)); ++char *lookup_registry PARM((struct design, int *)); ++struct design lookup_design PARM((char *, int)); ++ ++#endif +diff -ruN xv-3.10a-bugfixes/xvpbm.c xv-3.10a-enhancements/xvpbm.c +--- xv-3.10a-bugfixes/xvpbm.c 2005-04-03 14:25:28.000000000 -0700 ++++ xv-3.10a-enhancements/xvpbm.c 2005-04-17 14:04:22.000000000 -0700 +@@ -23,6 +23,15 @@ + */ + + ++typedef unsigned short ush; ++typedef unsigned char uch; ++ ++#define alpha_composite(composite, fg, alpha, bg) { \ ++ ush temp = ((ush)(fg)*(ush)(alpha) + \ ++ (ush)(bg)*(ush)(255 - (ush)(alpha)) + (ush)128); \ ++ (composite) = (uch)((temp + (temp >> 8)) >> 8); \ ++} ++ + #define TRUNCSTR "File appears to be truncated." + + static int garbage; +@@ -31,6 +40,7 @@ + static int loadpbm PARM((FILE *, PICINFO *, int)); + static int loadpgm PARM((FILE *, PICINFO *, int, int)); + static int loadppm PARM((FILE *, PICINFO *, int, int)); ++static int loadpam PARM((FILE *, PICINFO *, int, int)); + static int getint PARM((FILE *, PICINFO *)); + static int getbit PARM((FILE *, PICINFO *)); + static int getshort PARM((FILE *)); +@@ -38,10 +48,83 @@ + + static char *bname; + ++ ++#ifdef HAVE_MGCSFX ++/* ++ * When file read or file write is fail, probably it's caused by ++ * reading from pipe which has no data yet, or writing to pipe ++ * which is not ready yet. ++ * Then we can use system call select() on descriptor of pipe and wait. ++ * If you want, change 'undef' to 'define' in the following line. ++ * This feature is performance-killer. ++ */ ++#undef FIX_PIPE_ERROR ++ ++#ifdef __osf__ ++# ifdef __alpha ++# define FIX_PIPE_ERROR ++# endif ++#endif ++ ++#endif /* HAVE_MGCSFX */ ++ ++ ++#ifdef FIX_PIPE_ERROR ++ ++int pipefdr; ++ ++struct timeval timeout; ++int width; ++fd_set fds; ++ ++static void ready_read() ++{ ++ if(pipefdr < 0) return; /* if file descriptor is not pipe, OK */ ++ WaitCursor(); ++ ++reselect: ++ /* setting of timeout */ ++ timeout.tv_sec = 1; /* 1 sec */ ++ timeout.tv_usec = 0; /* 0 usec */ ++ ++ FD_ZERO(&fds); /* clear bits */ ++ FD_SET(pipefdr, &fds); /* set bit of fd in fds */ ++ ++ /* number of file descriptor to want check (0 $B!A(B width-1) */ ++ width = pipefdr + 1; ++ ++ /* select returns number of file descriptors */ ++ if (select(width, &fds, NULL, NULL, &timeout) < 0){ ++ if(DEBUG){ ++ fprintf(stderr, "No file descriptors can't selected, waiting...\n"); ++ } ++ goto reselect; ++ } ++ ++ if (FD_ISSET(pipefdr, &fds)){ ++ /* Now, descriptor of pipe is ready to read */ ++ return; ++ }else{ ++ if(DEBUG){ ++ fprintf(stderr, "Can't read from pipe yet, waiting...\n"); ++ } ++ goto reselect; ++ } ++ ++} ++#endif /* FIX_PIPE_ERROR */ ++ + /*******************************************/ ++#ifdef HAVE_MGCSFX ++int LoadPBM(fname, pinfo, fd) ++ char *fname; ++ PICINFO *pinfo; ++ int fd; ++#else + int LoadPBM(fname, pinfo) + char *fname; + PICINFO *pinfo; ++#endif /* HAVE_MGCSFX */ + /*******************************************/ + { + /* returns '1' on success */ +@@ -50,6 +133,10 @@ + int c, c1; + int maxv, rv; + ++#ifdef FIX_PIPE_ERROR ++ pipefdr = fd; ++#endif ++ + garbage = maxv = rv = 0; + bname = BaseName(fname); + +@@ -57,6 +144,22 @@ + pinfo->comment = (char *) NULL; + + ++#ifdef HAVE_MGCSFX ++ if(fd < 0){ ++ /* open the file */ ++ fp = xv_fopen(fname,"r"); ++ if (!fp) return (pbmError(bname, "can't open file")); ++ ++ /* compute file length */ ++ fseek(fp, 0L, 2); ++ filesize = ftell(fp); ++ fseek(fp, 0L, 0); ++ }else{ ++ fp = fdopen(fd, "r"); ++ if (!fp) return (pbmError(bname, "can't open file")); ++ filesize = 0; /* dummy */ ++ } ++#else + /* open the file */ + fp = xv_fopen(fname,"r"); + if (!fp) return (pbmError(bname, "can't open file")); +@@ -65,6 +168,7 @@ + fseek(fp, 0L, 2); + filesize = ftell(fp); + fseek(fp, 0L, 0); ++#endif /* HAVE_MGCSFX */ + + + /* read the first two bytes of the file to determine which format +@@ -73,7 +177,8 @@ + "P6" = raw pixmap */ + + c = getc(fp); c1 = getc(fp); +- if (c!='P' || c1<'1' || c1>'6') return(pbmError(bname, "unknown format")); ++ if (c!='P' || c1<'1' || (c1>'6' && c1!='8')) /* GRR alpha */ ++ return(pbmError(bname, "unknown format")); + + /* read in header information */ + pinfo->w = getint(fp, pinfo); pinfo->h = getint(fp, pinfo); +@@ -104,6 +209,7 @@ + if (c1=='1' || c1=='4') rv = loadpbm(fp, pinfo, c1=='4' ? 1 : 0); + else if (c1=='2' || c1=='5') rv = loadpgm(fp, pinfo, c1=='5' ? 1 : 0, maxv); + else if (c1=='3' || c1=='6') rv = loadppm(fp, pinfo, c1=='6' ? 1 : 0, maxv); ++ else if (c1=='8') rv = loadpam(fp, pinfo, 1 , maxv); + + fclose(fp); + +@@ -248,7 +354,20 @@ + } + } + else { ++#ifdef FIX_PIPE_ERROR ++ reread: ++ numgot += fread(pic8 + numgot, (size_t) 1, (size_t) w*h - numgot, fp); /* read raw data */ ++ if(errno == EINTR){ ++ if(DEBUG){ ++ fprintf(stderr, ++ "Can't read all data from pipe, call select and waiting...\n"); ++ } ++ ready_read(); ++ goto reread; ++ } ++#else + numgot = fread(pic8, (size_t)1, (size_t)npixels, fp); /* read raw data */ ++#endif + } + } + +@@ -315,7 +434,20 @@ + } + } + else { ++#ifdef FIX_PIPE_ERROR ++ reread: ++ numgot += fread(pic24 + numgot, (size_t) 1, (size_t) w*h*3 - numgot, fp); /* read data */ ++ if(errno == EINTR){ ++ if(DEBUG){ ++ fprintf(stderr, ++ "Can't read all data from pipe, call select and waiting...\n"); ++ } ++ ready_read(); ++ goto reread; ++ } ++#else + numgot = fread(pic24, (size_t) 1, (size_t) bufsize, fp); /* read data */ ++#endif + } + } + +@@ -341,6 +473,122 @@ + } + + ++/*******************************************/ ++static int loadpam(fp, pinfo, raw, maxv) /* unofficial RGBA extension */ ++ FILE *fp; ++ PICINFO *pinfo; ++ int raw, maxv; ++{ ++ byte *p, *pix, *pic24, *linebuf, scale[256], bgR, bgG, bgB, r, g, b, a; ++ int i, j, bitshift, w, h, npixels, bufsize, linebufsize, holdmaxv; ++ ++ w = pinfo->w; ++ h = pinfo->h; ++ ++ npixels = w * h; ++ bufsize = 3*npixels; ++ linebufsize = 4*w; ++ if (w <= 0 || h <= 0 || npixels/w != h || bufsize/3 != npixels || ++ linebufsize/4 != w) ++ return pbmError(bname, "image dimensions too large"); ++ ++ /* allocate 24-bit image */ ++ pic24 = (byte *) calloc((size_t) bufsize, (size_t) 1); ++ if (!pic24) FatalError("couldn't malloc 'pic24' for PAM"); ++ ++ /* allocate line buffer for pre-composited RGBA data */ ++ linebuf = (byte *) malloc((size_t) linebufsize); ++ if (!linebuf) { ++ free(pic24); ++ FatalError("couldn't malloc 'linebuf' for PAM"); ++ } ++ ++ pinfo->pic = pic24; ++ pinfo->type = PIC24; ++ sprintf(pinfo->fullInfo, "PAM, %s format. (%ld bytes)", ++ (raw) ? "raw" : "ascii", filesize); ++ sprintf(pinfo->shrtInfo, "%dx%d PAM.", w, h); ++ pinfo->colType = F_FULLCOLOR; ++ ++ ++ /* if maxv>255, keep dropping bits until it's reasonable */ ++ holdmaxv = maxv; ++ bitshift = 0; ++ while (maxv>255) { maxv = maxv>>1; bitshift++; } ++ ++ ++ numgot = 0; ++ ++ if (!raw) { /* GRR: not alpha-ready */ ++ return pbmError(bname, "can't handle non-raw PAM image"); ++/* ++ for (i=0, pix=pic24; i> bitshift); ++ } ++ */ ++ } ++ else { /* raw */ ++ if (holdmaxv>255) { /* GRR: not alpha-ready */ ++ return pbmError(bname, "can't handle PAM image with maxval > 255"); ++/* ++ for (i=0, pix=pic24; i> bitshift); ++ } ++ */ ++ } ++ else { ++ if (have_imagebg) { /* GRR: alpha-ready */ ++ bgR = (imagebgR >> 8); ++ bgG = (imagebgG >> 8); ++ bgB = (imagebgB >> 8); ++ } else { ++ bgR = bgG = bgB = 0; ++ } ++ for (i=0, pix=pic24; i RGB conversion ++ * factors, but I have calculated them from his tables and the results ++ * look good enough to me. ++ * ++ * Added size parameter to allow the schnautzer to create thumnails ++ * without requesting the size every time. ++ */ ++ ++#include "xv.h" ++#include ++ ++#ifdef HAVE_PCD ++ ++#define TRACE 0 ++#if TRACE ++# define trace(x) fprintf x ++#else ++# define trace(x) ++#endif ++ ++/* Comments on error-handling: ++ A truncated file is not considered a Major Error. The file is loaded, ++ and the rest of the pic is filled with 0's. ++ ++ Not being able to malloc is a Fatal Error. The program is aborted. */ ++ ++ ++#ifdef __STDC__ ++static void magnify(int, int, int, int, int, byte *); ++static int pcdError(char *, char *); ++static int gethuffdata(byte *, byte *, byte *, int, int); ++#else ++static void magnify(); ++static int pcdError(); ++static int gethuffdata(); ++#endif ++ ++#define wcurfactor 16 /* Call WaitCursor() every n rows */ ++ ++static int size; /* Set by window routines */ ++static int leaveitup;/* Cleared by docmd() when OK or CANCEL pressed */ ++static int goforit; /* Set to 1 if OK or 0 if CANCEL */ ++static FILE *fp; ++static CBUTT lutCB; ++ ++/* ++ * This "beyond 100%" table is taken from ImageMagick (gamma 2.2). ++ * Why there are 351 entries and not 346 as per Kodak documentation ++ * is a mystery. ++ */ ++static double rscale = 1.00, ++ gscale = 1.00, ++ bscale = 1.00; ++ ++static byte Y[351] = { ++ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ++ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ++ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, ++ 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, ++ 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, ++ 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, ++ 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, ++ 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, ++ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, ++ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, ++ 107, 108, 110, 111, 112, 113, 114, 115, 116, 117, ++ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, ++ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, ++ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, ++ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, ++ 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, ++ 169, 170, 171, 172, 173, 174, 175, 176, 176, 177, ++ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, ++ 188, 189, 190, 191, 192, 193, 193, 194, 195, 196, ++ 197, 198, 199, 200, 201, 201, 202, 203, 204, 205, ++ 206, 207, 207, 208, 209, 210, 211, 211, 212, 213, ++ 214, 215, 215, 216, 217, 218, 218, 219, 220, 221, ++ 221, 222, 223, 224, 224, 225, 226, 226, 227, 228, ++ 228, 229, 230, 230, 231, 232, 232, 233, 234, 234, ++ 235, 236, 236, 237, 237, 238, 238, 239, 240, 240, ++ 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, ++ 245, 246, 246, 247, 247, 247, 248, 248, 248, 249, ++ 249, 249, 249, 250, 250, 250, 250, 251, 251, 251, ++ 251, 251, 252, 252, 252, 252, 252, 253, 253, 253, ++ 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, ++ 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, ++ 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, ++ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, ++ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, ++ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, ++ 255 ++}; ++ ++/*******************************************/ ++/* The size should be -1 for the popup to ask otherwise fast is assumed */ ++/* returns '1' on success */ ++/*******************************************/ ++int ++LoadPCD(char *fname, PICINFO *pinfo, int theSize) ++{ ++ long offset; ++ int mag; ++ int rotate; ++ byte header[3*0x800]; ++ byte *pic24, *luma, *chroma1, *chroma2, *ptr, *lptr, *c1ptr, *c2ptr; ++ int w, h, npixels, bufsize; ++ int row, col; ++ int huffplanes; ++ char *bname; ++ ++ bname = BaseName(fname); ++ pinfo->pic = NULL; ++ pinfo->comment = NULL; ++ ++ ++ /* ++ * open the file ++ */ ++ if((fp=fopen(fname,"r")) == NULL) ++ return pcdError(bname, "can't open file"); ++ ++ /* ++ * inspect the header ++ */ ++ if(fread(&header[0], 1, sizeof(header), fp) != sizeof(header)) ++ return pcdError(bname, "could not load PCD header"); ++ if(strncmp(&header[0x800], "PCD_", 4) != 0) ++ return pcdError(bname, "not a PCD file"); ++ rotate = header[0x0E02] & 0x03; ++ ++/* base/16 ++ - plain data starts at sector 1+2+1=4 ++ (numbered from 0, ie. the 5th sector) ++ - luma 192*128 = 24576 bytes (12 sectors) ++ + chroma1 96*64 = 6144 bytes (3 sectors) ++ + chroma2 96*64 = 6144 bytes (3 sectors) ++ = total 18 sectors ++ ++ - NB. "Plain" data is interleaved - 2 luma rows 192 wide, ++ then 1 of each of the chroma rows 96 wide ! ++ ++ base/4 ++ - plain data starts at sector 1+2+1+18+1=23 ++ - luma 384*256 = 98304 bytes (48 sectors) ++ + chroma1 192*128 = 24576 bytes (12 sectors) ++ + chroma2 192*128 = 24576 bytes (12 sectors) ++ = total 72 sectors ++ ++ - NB. "Plain" data is interleaved - 2 luma rows 384 wide, ++ then 1 of each of the chroma rows 192 wide ! ++ ++ base ++ - plain data starts at sector 1+2+1+18+1+72+1=96 ++ ++ - luma 768*512 = 393216 bytes (192 sectors) ++ + chroma1 384*256 = 98304 bytes (48 sectors) ++ + chroma2 384*256 = 98304 bytes (48 sectors) ++ = total 288 sectors ++ ++ - NB. "Plain" data is interleaved - 2 luma rows 768 wide, ++ then 1 of each of the chroma rows 384 wide ! ++ ++ 4base ++ - plain data for base is read ++ - luma data interpolated *2 ++ - chroma data interpolated *4 ++ ++ - cd_offset is 1+2+1+18+1+72+1+288=384 ++ - at cd_offset+4 (388) is huffman table ++ - at cd_offset+5 (389) is 4base luma plane ++ ++ (the sector at cd_offset+3 seems to contain 256 words each of ++ which is an offset presumably to the sector containing certain ++ rows ? rows/4 given 1024 possible rows. The rest of this sector ++ is filled with zeroes) ++ ++ ++ 16base ++ - plain data for base is read ++ - luma data interpolated *2 ++ - chroma data interpolated *4 ++ ++ - cd_offset is 1+2+1+18+1+72+1+288=384 ++ - at cd_offset+4 (388) is huffman table for 4 base ++ - at cd_offset+5 (389) is 4base luma plane ++ - luma plane interpolated *2 ++ ++ - cd_offset is set to current position (should be start of sector) ++ - at cd_offset+12 is huffman table for 16 base ++ - at cd_offset+14 is 16 base luma & 2 chroma planes which are read ++ (note that the luma plane comes first, with a sync pattern ++ announcing each row from 0 to 2047, then the two chroma planes ++ are interleaved by row, the row # being even from 0 to 2046, with ++ each row containing 1536 values, the chroma1 row coming first, ++ finally followed by a sync pattern with a row of 2048 announcing ++ the end (its plane seems to be set to 3, ie. chroma2) ++ - chroma planes interpolated *2 ++ ++ (the sector at cd_offset+10 & 11 seem to contain 1024 pairs of words ++ the first for luma and the second for chroma, each of ++ which is an offset presumably to the sector containing certain ++ rows ? rows/2 given 2048 possible rows) ++ ++Not yet implemented: ++ ++In order to do overskip for base and 4base, one has to reach the chroma ++data for 16 base: ++ ++ - for 4base, after reading the 4base luma plane (and presumably ++ skipping the chroma planes) one sets cd_offset to the start of ++ the "current" sector ++ ++ - for base, one has to skip the 4base data first: ++ - cd_offset is set to 384 ++ - at (cd_offset+3 sectors)[510] is a 16 bit word high byte 1st ++ containing an offset to the beginning of the 16base stuff ++ though there is then a loop until >30 0xff's start a sector ! ++ ++ - being now positioned after the end of the 4base stuff, ++ - at (cd_offset+10 sectors)[2] is a 16 bit word high byte 1st ++ containing an offset to the chroma planes. ++ - at cd_offset+12 is the set of huffman tables ++ ++ - for base, the 16base chroma planes are then halved ++*/ ++ ++ PCDSetParamOptions(bname); ++ if (theSize == -1) ++ { ++ PCDDialog(1); /* Open PCD Dialog box */ ++ SetCursors(-1); /* Somebody has already set it to wait :( */ ++ leaveitup=1; ++ goforit=0; ++ size = 1; ++ /* block until the popup window gets closed */ ++ while (leaveitup) { ++ int i; ++ XEvent event; ++ XNextEvent(theDisp, &event); ++ HandleEvent(&event, &i); ++ } ++ /* At this point goforit and size will have been set */ ++ if (!goforit) { ++ /* nothing allocated so nothing needs freeing */ ++ return 0; ++ } ++ WaitCursor(); ++ } ++ else ++ { ++ size = theSize; ++ goforit = 1; ++ } ++ ++ if(lutCB.val) ++ rscale = gscale = bscale = 255.0/346.0; ++ else ++ rscale = gscale = bscale = 1.0; ++ ++ switch (size) { ++ case 0: ++ pinfo->w = 192; ++ pinfo->h = 128; ++ offset=4*0x800; ++ mag=1; ++ huffplanes=0; ++ sprintf(pinfo->fullInfo, "PhotoCD, base/16 resolution"); ++ break; ++ ++ case 1: ++ pinfo->w = 384; ++ pinfo->h = 256; ++ offset=23*0x800; ++ mag=1; ++ huffplanes=0; ++ sprintf(pinfo->fullInfo, "PhotoCD, base/4 resolution"); ++ break; ++ ++ case 2: ++ default: ++ pinfo->w = 768; ++ pinfo->h = 512; ++ offset=96*0x800; ++ mag=1; ++ huffplanes=0; ++ sprintf(pinfo->fullInfo, "PhotoCD, base resolution"); ++ break; ++ ++ case 3: ++ pinfo->w = 1536; ++ pinfo->h = 1024; ++ offset=96*0x800; ++ mag=2; ++ huffplanes=1; ++ sprintf(pinfo->fullInfo, "PhotoCD, 4base resolution"); ++ break; ++ ++ case 4: ++ pinfo->w=3072; ++ pinfo->h=2048; ++ offset=96*0x800; ++ mag=4; ++ huffplanes=2; ++ sprintf(pinfo->fullInfo, "PhotoCD, 16base resolution"); ++ break; ++ } ++ ++ /* ++ * rotate? ++ */ ++ w = pinfo->w; ++ h = pinfo->h; ++ switch(rotate) { ++ case 0: ++ break; ++ ++ case 1: ++ case 3: ++ pinfo->w = h; ++ pinfo->h = w; ++ break; ++ ++ default: ++ fprintf(stderr, "unknown image rotate %d; assuming none\n", ++ rotate); ++ rotate = 0; ++ } ++ ++ /* ++ * allocate 24-bit image ++ */ ++ npixels = pinfo->w * pinfo->h; ++ bufsize = 3 * npixels; ++ if (pinfo->w <= 0 || pinfo->h <= 0 || npixels/pinfo->w != pinfo->h || ++ bufsize/3 != npixels) ++ FatalError("image dimensions out of range"); ++ ++ pinfo->pic = (byte *)malloc((size_t) bufsize); ++ if(!pinfo->pic) ++ FatalError("couldn't malloc '24-bit RGB plane'"); ++ ++ pinfo->type = PIC24; ++ sprintf(pinfo->shrtInfo, "%dx%d PhotoCD.", pinfo->w, pinfo->h); ++ pinfo->colType = F_FULLCOLOR; ++ pinfo->frmType = -1; ++ ++ if(fseek(fp, offset, SEEK_SET) == -1) { ++ free(pinfo->pic); ++ return pcdError(bname,"Can't find start of data."); ++ } ++ ++ pic24 = pinfo->pic; ++ ++ luma=(byte *)calloc(npixels,1); ++ if(!luma) { ++ free(pinfo->pic); ++ FatalError("couldn't malloc 'luma plane'"); ++ } ++ ++ chroma1=(byte *)calloc(npixels/4,1); ++ if(!chroma1) { ++ free(pinfo->pic); ++ free(luma); ++ FatalError("couldn't malloc 'chroma1 plane'"); ++ } ++ ++ chroma2=(byte *)calloc(npixels/4,1); ++ if(!chroma2) { ++ free(pinfo->pic); ++ free(luma); ++ free(chroma1); ++ FatalError("couldn't malloc 'chroma2 plane'"); ++ } ++ ++ /* Read 2 luma rows length w, then one of each chroma rows w/2 */ ++ /* If a mag factor is active, the small image is read into the */ ++ /* top right hand corner of the larger allocated image */ ++ ++ trace((stderr, "base image: start @ 0x%08lx (sector %ld.%ld)\n", ++ ftell(fp), ftell(fp)/0x800, ftell(fp) % 0x800)); ++ for(row=0,lptr=luma,c1ptr=chroma1,c2ptr=chroma2; row R'G'B' and image rotate ++ */ ++ ptr=pic24; ++ lptr=luma; c1ptr=chroma1; c2ptr=chroma2; ++ for(row = 0; row < h; ++row) { ++ byte *rowc1ptr = c1ptr, ++ *rowc2ptr = c2ptr; ++ int k = 0; ++ ++ switch(rotate) { ++ case 1: ++ ptr = &pic24[row*3 + (w - 1)*h*3]; ++ k = -3*(h + 1); ++ break; ++ ++ case 3: ++ ptr = &pic24[(h - 1 - row)*3]; ++ k = 3*(h - 1); ++ break; ++ ++ default: ++ ptr = &pic24[row*w*3]; ++ k = 0; ++ break; ++ } ++ for(col = 0; col < w; ++col) { ++ double L = 1.3584*(double) *lptr++, ++ C1 = 2.2179*(double) (*c1ptr - 156), ++ C2 = 1.8215*(double) (*c2ptr - 137); ++ int r = rscale*(L + C2), ++ g = gscale*(L - 0.194*C1 - 0.509*C2), ++ b = bscale*(L + C1); ++ ++ if(lutCB.val) { ++ if(r < 0) r = 0; else if(r >= 255) r = 255; ++ if(g < 0) g = 0; else if(g >= 255) g = 255; ++ if(b < 0) b = 0; else if(b >= 255) b = 255; ++ } else { ++ if(r < 0) r = 0; else if(r >= 351) r = 350; ++ if(g < 0) g = 0; else if(g >= 351) g = 350; ++ if(b < 0) b = 0; else if(b >= 351) b = 350; ++ r = Y[r]; g = Y[g]; b = Y[b]; ++ } ++ *ptr++ = r; ++ *ptr++ = g; ++ *ptr++ = b; ++ ptr += k; ++ if(col & 1) { ++ ++c1ptr; ++ ++c2ptr; ++ } ++ } ++ if((row & 1) == 0) { ++ c1ptr = rowc1ptr; ++ c2ptr = rowc2ptr; ++ } ++ if(row%wcurfactor == 0) ++ WaitCursor(); ++ } ++ free(luma); free(chroma1); free(chroma2); ++ return 1; ++} ++ ++/* ++ * derived from Hadmut Danisch's interpolate() ++ */ ++static void ++magnify(int mag, /* power of 2 by which to magnify in place */ ++ int h, int w, /* the "start" unmag'd dimensions of the array */ ++ int mh, int mw, /* the real (maximum) dimensions of the array */ ++ byte *p) /* pointer to the data */ ++{ ++ int x,y,yi; ++ byte *optr,*nptr,*uptr; /* MUST be unsigned, else averaging fails */ ++ ++ while (mag > 1) { ++ ++ /* create every 2nd new row from 0 */ ++ /* even pixels being equal to the old, odd ones averaged with successor */ ++ /* special case being the last column which is just set equal to the */ ++ /* second last) ... */ ++ ++ for(y=0;y>1; /* odd averaged */ ++ } ++ } ++ ++ /* Fill in odd rows, as average of prior & succeeding rows, with */ ++ /* even pixels average of one column, odd pixels average of two */ ++ ++ for(y=0;y>1; /* even pixels */ ++ nptr[1]=(((int)optr[0])+ ++ ((int)optr[2])+ ++ ((int)uptr[0])+ ++ ((int)uptr[2])+2)>>2; /* odd pixels */ ++ nptr+=2; optr+=2; uptr+=2; ++ } ++ *(nptr++)=(((int)*(optr++))+ ++ ((int)*(uptr++))+1)>>1; /* 2nd last pixel */ ++ *(nptr++)=(((int)*(optr++))+ ++ ((int)*(uptr++))+1)>>1; /* last pixel */ ++ } ++ ++ xvbcopy(p + (2*h-2)*mw, /* 2nd last row */ ++ p + (2*h-1)*mw, /* the last row */ ++ 2*w); /* length of a new row */ ++ ++ h*=2; w*=2; ++ mag>>=1; /* Obviously mag must be a power of 2 ! */ ++ } ++} ++ ++/*******************************************/ ++static int ++pcdError(char *fname, char *st) ++{ ++ SetISTR(ISTR_WARNING,"%s: %s", fname, st); ++ return 0; ++} ++ ++ ++/**** Stuff for PCDDialog box ****/ ++ ++#define TWIDE 380 ++#define THIGH 160 ++#define T_NBUTTS 2 ++#define T_BOK 0 ++#define T_BCANC 1 ++#define BUTTH 24 ++ ++static void drawTD PARM((int, int, int, int)); ++static void clickTD PARM((int, int)); ++static void doCmd PARM((int)); ++static void PCDSetParams PARM((void)); ++ ++/* local variables */ ++static BUTT tbut[T_NBUTTS]; ++static RBUTT *resnRB; ++ ++ ++ ++/***************************************************/ ++void CreatePCDW() ++{ ++ int y; ++ ++ pcdW = CreateWindow("xv pcd", "XVpcd", NULL, ++ TWIDE, THIGH, infofg, infobg, 0); ++ if (!pcdW) FatalError("can't create pcd window!"); ++ ++ XSelectInput(theDisp, pcdW, ExposureMask | ButtonPressMask | KeyPressMask); ++ ++ BTCreate(&tbut[T_BOK], pcdW, TWIDE-140-1, THIGH-10-BUTTH-1, 60, BUTTH, ++ "Ok", infofg, infobg, hicol, locol); ++ ++ BTCreate(&tbut[T_BCANC], pcdW, TWIDE-70-1, THIGH-10-BUTTH-1, 60, BUTTH, ++ "Cancel", infofg, infobg, hicol, locol); ++ ++ y = 55; ++ resnRB = RBCreate(NULL, pcdW, 36, y, "192*128 Base/16", ++ infofg, infobg,hicol,locol); ++ RBCreate(resnRB, pcdW, 36, y+18, "384*256 Base/4", ++ infofg, infobg,hicol,locol); ++ RBCreate(resnRB, pcdW, 36, y+36, "768*512 Base", ++ infofg, infobg, hicol, locol); ++ RBCreate(resnRB, pcdW, TWIDE/2, y, "1536*1024 4Base", ++ infofg, infobg, hicol, locol); ++ RBCreate(resnRB, pcdW, TWIDE/2, y+18, "3072*2048 16Base", ++ infofg, infobg, hicol, locol); ++ ++ CBCreate(&lutCB, pcdW, TWIDE/2, y+36, "Linear LUT", ++ infofg, infobg, hicol, locol); ++ ++ RBSelect(resnRB, 2); ++ ++ XMapSubwindows(theDisp, pcdW); ++} ++ ++ ++/***************************************************/ ++void PCDDialog(vis) ++int vis; ++{ ++ if (vis) { ++ CenterMapWindow(pcdW, tbut[T_BOK].x + tbut[T_BOK].w/2, ++ tbut[T_BOK].y + tbut[T_BOK].h/2, TWIDE, THIGH); ++ } ++ else XUnmapWindow(theDisp, pcdW); ++ pcdUp = vis; ++} ++ ++ ++/***************************************************/ ++int PCDCheckEvent(xev) ++XEvent *xev; ++{ ++ /* check event to see if it's for one of our subwindows. If it is, ++ deal accordingly, and return '1'. Otherwise, return '0' */ ++ ++ int rv; ++ rv = 1; ++ ++ if (!pcdUp) return 0; ++ ++ if (xev->type == Expose) { ++ int x,y,w,h; ++ XExposeEvent *e = (XExposeEvent *) xev; ++ x = e->x; y = e->y; w = e->width; h = e->height; ++ ++ if (e->window == pcdW) drawTD(x, y, w, h); ++ else rv = 0; ++ } ++ ++ else if (xev->type == ButtonPress) { ++ XButtonEvent *e = (XButtonEvent *) xev; ++ int x,y; ++ x = e->x; y = e->y; ++ ++ if (e->button == Button1) { ++ if (e->window == pcdW) clickTD(x,y); ++ else rv = 0; ++ } /* button1 */ ++ else rv = 0; ++ } /* button press */ ++ ++ ++ else if (xev->type == KeyPress) { ++ XKeyEvent *e = (XKeyEvent *) xev; ++ char buf[128]; KeySym ks; XComposeStatus status; ++ int stlen; ++ ++ stlen = XLookupString(e,buf,128,&ks,&status); ++ buf[stlen] = '\0'; ++ ++ RemapKeyCheck(ks, buf, &stlen); ++ ++ if (e->window == pcdW) { ++ if (stlen) { ++ if (buf[0] == '\r' || buf[0] == '\n') { /* enter */ ++ FakeButtonPress(&tbut[T_BOK]); ++ } ++ else if (buf[0] == '\033') { /* ESC */ ++ FakeButtonPress(&tbut[T_BCANC]); ++ } ++ } ++ } ++ else rv = 0; ++ } ++ else rv = 0; ++ ++ if (rv==0 && (xev->type == ButtonPress || xev->type == KeyPress)) { ++ XBell(theDisp, 50); ++ rv = 1; /* eat it */ ++ } ++ ++ return rv; ++} ++ ++ ++/***************************************************/ ++void ++PCDSetParamOptions(char *fname) ++{ ++ int cur; ++ cur = RBWhich(resnRB); ++ ++ RBSetActive(resnRB,0,1); ++ RBSetActive(resnRB,1,1); ++ RBSetActive(resnRB,2,1); ++ RBSetActive(resnRB,3,1); ++ RBSetActive(resnRB,4,1); ++ CBSetActive(&lutCB,1); ++} ++ ++ ++/***************************************************/ ++static void ++drawTD(int x, int y, int w, int h) ++{ ++ char *title = "Load PhotoCD file..."; ++ int i; ++ XRectangle xr; ++ ++ xr.x = x; xr.y = y; xr.width = w; xr.height = h; ++ XSetClipRectangles(theDisp, theGC, 0,0, &xr, 1, Unsorted); ++ ++ XSetForeground(theDisp, theGC, infofg); ++ XSetBackground(theDisp, theGC, infobg); ++ ++ for (i=0; ix-16, resnRB->y-10-DESCENT, "Resolution"); ++ RBRedraw(resnRB, -1); ++ CBRedraw(&lutCB); ++ ++ XDrawString(theDisp, pcdW, theGC, 20, 19, title, strlen(title)); ++ ++ XSetClipMask(theDisp, theGC, None); ++} ++ ++ ++/***************************************************/ ++static void clickTD(x,y) ++int x,y; ++{ ++ int i; ++ BUTT *bp; ++ ++ /* check BUTTs */ ++ ++ /* check the RBUTTS first, since they don't DO anything */ ++ if ( (i=RBClick(resnRB, x,y)) >= 0) { ++ (void) RBTrack(resnRB, i); ++ return; ++ } ++ ++ if(CBClick(&lutCB, x, y)) { ++ (void) CBTrack(&lutCB); ++ return; ++ } ++ ++ for (i=0; ix, bp->y, bp->w, bp->h)) break; ++ } ++ ++ if (i= 16) { ++ fprintf(stderr, ++ "gethufftable: improbable length @ %d/%d\n", ++ i, num); ++ dumphufftab(num, huf, hufftop/2, hufftab); ++ free(hufftab); ++ return NULL; ++ } ++ ++ /* ++ * walk the whole set of codes ++ */ ++ huffptr = 0; ++ for(j = 0; j < 16; ++j, codeword *= 2) { ++ /* ++ * choose the child node ++ */ ++ if(codeword & 0x8000) ++ ++huffptr; ++ ++ /* ++ * store value at end-of-code ++ */ ++ if(j == length) { ++ /* ++ * more sanity ++ */ ++ if((codeword *= 2) & 0xffff) { ++ fprintf(stderr, ++ "gethufftable: " ++ ":probable invalid code @ %d\n", ++ i); ++ dumphufftab(num, huf, ++ hufftop/2, hufftab); ++ free(hufftab); ++ return NULL; ++ } ++ hufftab[huffptr] = 1 + (int) huf[4*i + 3]; ++ break; ++ } ++ ++ /* ++ * otherwise, follow the tree to date ++ */ ++ if(hufftab[huffptr] < 0) { ++ huffptr -= hufftab[huffptr]; ++ continue; ++ } else if(hufftab[huffptr] > 0) { ++ fprintf(stderr, "duplicate code %d %d/%d\n", ++ huffptr, i, num); ++ dumphufftab(num, huf, hufftop/2, hufftab); ++ free(hufftab); ++ return NULL; ++ } ++ ++ /* ++ * and if necessary, make the tree bigger ++ */ ++ if((hufftop += 2) >= N) { ++ int oldN = N; ++#if TRACE ++ dumphufftab(num, huf, hufftop/2, hufftab); ++#endif ++ N *= 2; ++ bufsize = N*sizeof(int); ++ if (N/2 != oldN || bufsize/N != sizeof(int)) { ++ SetISTR(ISTR_WARNING, ++ "new Huffman table is too large"); ++ free(hufftab); ++ return NULL; ++ } ++ h = (int *)realloc(hufftab, bufsize); ++ if(h == NULL) { ++ fprintf(stderr, ++ "Table overflow %d/%d\n", ++ i, num); ++ dumphufftab(num, huf, ++ hufftop/2, hufftab); ++ free(hufftab); ++ FatalError( ++ "couldn't realloc Huffman table"); ++ } ++ hufftab = h; ++ } ++ ++ /* ++ * then add new ptr ++ */ ++ hufftab[huffptr] = huffptr - hufftop; ++ huffptr = hufftop; ++ hufftab[huffptr + 0] = ++ hufftab[huffptr + 1] = 0; ++ } ++ } ++ return hufftab; ++} ++ ++/* WORDTYPE & char buffer must be unsigned else */ ++/* fills with sign bit not 0 on right shifts */ ++typedef unsigned int WORDTYPE; ++typedef int SWORDTYPE; ++#define WORDSIZE sizeof(WORDTYPE) ++#define NBYTESINBUF 0x800 ++ ++static byte buffer[NBYTESINBUF]; ++static int bitsleft=0; ++static int bytesleft=0; ++static byte *bufptr; ++static WORDTYPE word; ++ ++#if 0 ++static void ++dumpbuffer(void) ++{ ++ int i,left; ++ byte *ptr=buffer; ++ ++ fprintf(stderr,"dumpbuffer: bytesleft=%d bitsleft= %d word=0x%08lx\n", ++ bytesleft,bitsleft,(unsigned long)word); ++ for (left=NBYTESINBUF; left>0; left-=16) { ++ fprintf(stderr,"%05d ",left); ++ for (i=0; i<8; i++) { ++ fprintf(stderr,"%02x",*ptr++); ++ fprintf(stderr,"%02x ",*ptr++); ++ } ++ fprintf(stderr,"\n"); ++ } ++} ++#endif /* 0 */ ++ ++static void ++loadbuffer(void) ++{ ++ if ((bytesleft=fread(buffer,1,NBYTESINBUF,fp)) == 0) { ++ fprintf(stderr,"Truncation error\n"); ++ exit(1); ++ } ++ bufptr=buffer; ++ /* dumpbuffer(); */ ++} ++ ++static void ++loadbyte(void) ++{ ++ if (bytesleft <= 0) loadbuffer(); ++ --bytesleft; ++ word|=(WORDTYPE)(*bufptr++)<<(sizeof(WORDTYPE)*8-8-bitsleft); ++ bitsleft+=8; ++} ++ ++static int ++getbit(void) ++{ ++ int bit; ++ ++ while (bitsleft <= 0) loadbyte(); ++ --bitsleft; ++ bit=(SWORDTYPE)(word)<0; /* assumes word is signed */ ++ /* bit=word>>(sizeof(WORDTYPE)*8-1); */ ++ word<<=1; ++ return bit; ++} ++ ++static WORDTYPE ++getnn(int nn) ++{ ++ WORDTYPE value; ++ ++ while (bitsleft <= nn) loadbyte(); ++ bitsleft-=nn; ++ value=word>>(sizeof(WORDTYPE)*8-nn); ++ word<<=nn; ++ return value; ++} ++ ++static WORDTYPE ++isnn(int nn) ++{ ++ WORDTYPE value; ++ ++ while (bitsleft <= nn) loadbyte(); ++ value=word>>(sizeof(WORDTYPE)*8-nn); ++ return value; ++} ++ ++static void ++skipnn(int nn) ++{ ++ while (bitsleft <= nn) loadbyte(); ++ bitsleft-=nn; ++ word<<=nn; ++} ++ ++#define get1() (getbit()) ++#define get2() (getnn(2)) ++#define get8() (getnn(8)) ++#define get13() (getnn(13)) ++#define get16() (getnn(16)) ++#define get24() (getnn(24)) ++ ++#define is24() (isnn(24)) ++ ++#define skip1() (skipnn(1)) ++#define skip24() (skipnn(24)) ++ ++static int ++gethuffdata( byte *luma, ++ byte *chroma1, ++ byte *chroma2, ++ int realrowwidth, ++ int maxrownumber) ++{ ++static byte clip[3*256]; ++ int *hufftable[3], *huffstart = NULL, *huffptr = NULL; ++ int row, col, plane, i, result = 1; ++#if TRACE ++ int uflow = 0, oflow = 0; ++#endif ++ byte *pixelptr = NULL; ++ ++ trace((stderr,"gethuffdata: start @ 0x%08lx (sector %ld.%ld)\n", ++ ftell(fp), ftell(fp)/0x800, ftell(fp) % 0x800)); ++ ++ /* ++ * correction clipping ++ */ ++ if(clip[256+255] == 0) { ++ for(i = 0; i < 256; ++i) ++ clip[i + 0] = 0x00, ++ clip[i + 256] = (byte) i, ++ clip[i + 512] = 0xff; ++ } ++ ++ /* ++ * should really only look for luma plane for 4base, but the ++ * there are zeroes in the rest of the sector that give both ++ * chroma tables 0 length ++ */ ++ for(i = 0; i < 3; ++i) ++ hufftable[i] = NULL; ++ for(i = 0; i < 3; ++i) { ++ if((hufftable[i] = gethufftable()) == NULL) { ++ result = 0; ++ break; ++ } ++ } ++ if(result == 0) ++ goto oops; ++ ++ /* ++ * skip remainder of current sector ++ */ ++ i = (ftell(fp) | 0x7ff) + 1; ++ if(fseek(fp, i, SEEK_SET) < 0) { ++ fprintf(stderr, "gethuffdata: sector skip failed\n"); ++ return 0; ++ } ++ ++ /* ++ * skip remainder of "sector" ++ */ ++ i = 0; ++ while (is24() != 0xfffffe) { ++ (void)get24(); ++ if(++i == 1) ++ trace((stderr,"gethuffdata: skipping for sync ...")); ++ } ++ if(i != 0) ++ trace((stderr, " %d times\n", i)); ++ ++ while(result) { ++ if(is24() == 0xfffffe) { ++ skip24(); ++ plane = get2(); ++ row = get13(); col = 0; ++ skip1(); ++ if(row >= maxrownumber) { ++ trace((stderr, ++ "gethuffdata: stopping at row %d\n", ++ row)); ++ break; ++ } ++ switch (plane) { ++ case 0: ++ huffstart = hufftable[0]; ++ pixelptr = luma + row*realrowwidth; ++ break; ++ ++ case 2: ++ huffstart = hufftable[1]; ++ pixelptr = chroma1 + row/2*realrowwidth/2; ++ break; ++ ++ case 3: ++ huffstart = hufftable[2]; ++ pixelptr = chroma2 + row/2*realrowwidth/2; ++ break; ++ ++ default: ++ fprintf(stderr, "gethuffdata: bad plane %d\n", ++ plane); ++ result = 0; ++ break; ++ } ++ WaitCursor(); ++ continue; ++ } ++ ++ /* ++ * locate correction in huffman tree ++ */ ++ for(huffptr = huffstart;;) { ++ huffptr += get1(); ++ if(*huffptr < 0) { ++ huffptr -= *huffptr; ++ } else if(*huffptr == 0) { ++ fprintf(stderr, ++ "gethuffdata: invalid code: " ++ "image quality reduced\n"); ++ result = 0; ++ break; ++ } else ++ break; ++ } ++ if(!result) ++ break; ++ ++ /* ++ * apply correction to the pixel ++ * ++ * eeeek!! the corrections can sometimes over or underflow! ++ * this strongly suggested that the 'magnify' method was in ++ * some way wrong. however, experiments showed that the ++ * over/under flows even occured for the pixels that are ++ * copied through magnify without change (ie, the even ++ * row/even column case). curiously, though, the odd ++ * column and odd row cases were about 3x more likely to have ++ * the over/underflow, and the odd row/odd column case was ++ * about 5x higher, so maybe the use of a bi-linear ++ * interpolation is not correct -- just *close*? ++ * ++ * the other clue in this area is that the overflows are ++ * by far most frequenct along edges of very bright ++ * areas -- rarely in the interior of such regions. ++ */ ++ i = (int) *pixelptr + (signed char) (*huffptr - 1); ++#if TRACE ++ if(i > 255) ++ ++oflow; ++/* trace((stderr, ++ "gethuffdata: oflow %d %d %d\n", row, col, i));*/ ++ else if(i < 0) ++ ++uflow; ++/* trace((stderr, ++ "gethuffdata: uflow %d %d %d\n", row, col, i));*/ ++ ++col; ++#endif ++ *pixelptr++ = clip[i + 256]; ++ } ++ ++oops: ++ for(i = 0; i < 3; ++i) ++ free(hufftable[i]); ++ trace((stderr, "gethuffdata: uflow=%d oflow=%d\n", uflow, oflow)); ++ trace((stderr, "gethuffdata: done @ 0x%08lx (sector %ld.%d)\n", ++ ftell(fp), ftell(fp)/0x800, 0x800 - bytesleft)); ++ return result; ++} ++ ++#endif /* HAVE_PCD */ +diff -ruN xv-3.10a-bugfixes/xvpds.c xv-3.10a-enhancements/xvpds.c +--- xv-3.10a-bugfixes/xvpds.c 2005-04-03 11:31:30.000000000 -0700 ++++ xv-3.10a-enhancements/xvpds.c 2005-04-17 21:40:40.000000000 -0700 +@@ -77,8 +77,7 @@ + * Huffman-encoded, and the encoding histogram follows the ASCII headers. + * To decode these, we use a slightly modified version of "vdcomp.c" from the + * NASA Viking CD-ROMS. For xv to work, you need to have vdcomp compiled +- * and in your search path. vdcomp.c should be included with this +-distribution. ++ * and in your search path. vdcomp.c should be included with this distribution. + * + * I've heard that newer discs have FITS images on them. If they do, support + * for them will be added when I get one. Until then, you can use fitstopgm. +@@ -102,7 +101,7 @@ + * This software is provided "as is" without any express or implied warranty. + */ + +- ++#define NEEDSDIR /* for S_IRUSR|S_IWUSR */ + #include "xv.h" + + #ifdef HAVE_PDS +@@ -129,27 +128,32 @@ + + /* This is arbitrary. Everything I've seen so far fits in 50 chars */ + #define COMMENTSIZE 50 ++#define INOTESIZE 1000 + + + static int lastwasinote = FALSE; +-static char scanbuff [MAX_SIZE], +- rtbuff [RTBUFFSIZE], +- inote [20*COMMENTSIZE], +- infobuff [COMMENTSIZE], +- spacecraft [COMMENTSIZE], +- target [COMMENTSIZE], +- filtname [COMMENTSIZE], +- gainmode [COMMENTSIZE], +- editmode [COMMENTSIZE], +- scanmode [COMMENTSIZE], +- exposure [COMMENTSIZE], +- shuttermode [COMMENTSIZE], +- mphase [COMMENTSIZE], +- iname [COMMENTSIZE], +- itime [COMMENTSIZE], +- garbage [1020], ++static char scanbuff [MAX_SIZE+1], ++ rtbuff [RTBUFFSIZE+1], ++ inote [INOTESIZE+1], ++ infobuff [COMMENTSIZE+1], ++ spacecraft [COMMENTSIZE+1], ++ target [COMMENTSIZE+1], ++ filtname [COMMENTSIZE+1], ++ gainmode [COMMENTSIZE+1], ++ editmode [COMMENTSIZE+1], ++ scanmode [COMMENTSIZE+1], ++ exposure [COMMENTSIZE+1], ++ shuttermode [COMMENTSIZE+1], ++ mphase [COMMENTSIZE+1], ++ iname [COMMENTSIZE+1], ++ itime [COMMENTSIZE+1], ++ garbage [1024], + *tmptmp, + pdsuncompfname[FNAMESIZE]; ++ ++#define SSTR(l) "%" #l "s" ++#define S(l) SSTR(l) ++ + byte *image; + static int elaphe; + +@@ -251,6 +255,9 @@ + /* returns '1' on success, '0' on failure */ + + int tempnum, bytewidth, bufsize; ++#ifndef USE_MKSTEMP ++ int tmpfd; ++#endif + FILE *zf; + static int isfixed,teco,i,j,itype,vaxbyte, + recsize,hrecsize,irecsize,isimage,labelrecs,labelsofar, +@@ -397,7 +404,7 @@ + + if (strcmp(scanbuff,"END") == 0) { + break; +- } else if (sscanf(scanbuff," RECORD_TYPE = %s",rtbuff) == 1) { ++ } else if (sscanf(scanbuff, " RECORD_TYPE = " S(RTBUFFSIZE), rtbuff) == 1) { + if (strncmp(rtbuff,"VARIABLE_LENGTH", (size_t) 15) == 0) { + /* itype=PDSVARIABLE; */ + } else if (strncmp(rtbuff,"FIXED_LENGTH", (size_t) 12) == 0) { +@@ -416,7 +423,7 @@ + if (irecsize == 0) irecsize=recsize; + lastwasinote=FALSE; + continue; +- } else if (sscanf(scanbuff," FILE_TYPE = %s", rtbuff) != 0) { ++ } else if (sscanf(scanbuff, " FILE_TYPE = " S(RTBUFFSIZE), rtbuff) != 0) { + lastwasinote=FALSE; + if (strncmp(rtbuff,"IMAGE", (size_t) 5) == 0) { + isimage=TRUE; +@@ -445,74 +452,74 @@ + lastwasinote=FALSE; continue; + } else if (sscanf(scanbuff," SAMPLE_BITS = %d", &samplesize) == 1) { + lastwasinote=FALSE; continue; +- } else if (sscanf(scanbuff," SAMPLE_TYPE = %s", sampletype) == 1) { ++ } else if (sscanf(scanbuff, " SAMPLE_TYPE = " S(64), sampletype) == 1) { + lastwasinote=FALSE; continue; +- } else if (sscanf(scanbuff," SPACECRAFT_NAME = %s %s", ++ } else if (sscanf(scanbuff," SPACECRAFT_NAME = " S(COMMENTSIZE) " " S(1023), + spacecraft,garbage) == 2 ) { +- strcat(spacecraft,xv_strstr(scanbuff, spacecraft)+strlen(spacecraft)); ++ const char *tmp = xv_strstr(scanbuff, spacecraft) + strlen(spacecraft); ++ strncat(spacecraft, tmp, COMMENTSIZE - strlen(spacecraft)); + lastwasinote=FALSE; continue; +- } else if (sscanf(scanbuff," SPACECRAFT_NAME = %s", spacecraft) == 1) { ++ } else if (sscanf(scanbuff, " SPACECRAFT_NAME = " S(COMMENTSIZE), spacecraft) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," TARGET_NAME = %s", target) == 1) { ++ } else if (sscanf(scanbuff, " TARGET_NAME = " S(COMMENTSIZE), target) == 1) { + lastwasinote=FALSE; continue; +- } else if (sscanf(scanbuff," TARGET_BODY = %s", target) == 1) { ++ } else if (sscanf(scanbuff, " TARGET_BODY = " S(COMMENTSIZE), target) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," MISSION_PHASE_NAME = %s", mphase) == 1) { ++ } else if (sscanf(scanbuff, " MISSION_PHASE_NAME = " S(COMMENTSIZE), mphase) == 1) { + lastwasinote=FALSE; continue; +- } else if (sscanf(scanbuff," MISSION_PHASE = %s", mphase) == 1) { ++ } else if (sscanf(scanbuff, " MISSION_PHASE = " S(COMMENTSIZE), mphase) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," INSTRUMENT_NAME = %s", iname) == 1) { ++ } else if (sscanf(scanbuff, " INSTRUMENT_NAME = " S(COMMENTSIZE), iname) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," GAIN_MODE_ID = %s", gainmode) == 1) { ++ } else if (sscanf(scanbuff, " GAIN_MODE_ID = " S(COMMENTSIZE), gainmode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," INSTRUMENT_GAIN_STATE = %s",gainmode)==1) { ++ } else if (sscanf(scanbuff, " INSTRUMENT_GAIN_STATE = " S(COMMENTSIZE), gainmode) ==1 ) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," EDIT_MODE_ID = %s", editmode) == 1) { ++ } else if (sscanf(scanbuff, " EDIT_MODE_ID = " S(COMMENTSIZE), editmode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," INSTRUMENT_EDIT_MODE = %s", editmode)==1) { ++ } else if (sscanf(scanbuff, " INSTRUMENT_EDIT_MODE = " S(COMMENTSIZE), editmode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," SCAN_MODE_ID = %s", scanmode) == 1) { ++ } else if (sscanf(scanbuff, " SCAN_MODE_ID = " S(COMMENTSIZE), scanmode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," INSTRUMENT_SCAN_RATE = %s", scanmode)==1) { ++ } else if (sscanf(scanbuff, " INSTRUMENT_SCAN_RATE = " S(COMMENTSIZE), scanmode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," SHUTTER_MODE_ID = %s", shuttermode) == 1) { ++ } else if (sscanf(scanbuff, " SHUTTER_MODE_ID = " S(COMMENTSIZE), shuttermode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," INSTRUMENT_SHUTTER_MODE = %s", +- shuttermode) == 1) { ++ } else if (sscanf(scanbuff, " INSTRUMENT_SHUTTER_MODE = " S(COMMENTSIZE), shuttermode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," SCAN_MODE_ID = %s", scanmode) == 1) { ++ } else if (sscanf(scanbuff, " SCAN_MODE_ID = " S(COMMENTSIZE), scanmode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," INSTRUMENT_SCAN_RATE = %s", scanmode)==1) { ++ } else if (sscanf(scanbuff, " INSTRUMENT_SCAN_RATE = " S(COMMENTSIZE), scanmode) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," SPACECRAFT_EVENT_TIME = %s", itime) == 1) { ++ } else if (sscanf(scanbuff, " SPACECRAFT_EVENT_TIME = " S(COMMENTSIZE), itime) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," IMAGE_TIME = %s", itime) == 1) { ++ } else if (sscanf(scanbuff, " IMAGE_TIME = " S(COMMENTSIZE), itime) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," FILTER_NAME = %s", filtname) == 1) { ++ } else if (sscanf(scanbuff, " FILTER_NAME = " S(COMMENTSIZE), filtname) == 1) { + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff," INSTRUMENT_FILTER_NAME = %s",filtname)==1) { ++ } else if (sscanf(scanbuff, " INSTRUMENT_FILTER_NAME = " S(COMMENTSIZE), filtname) == 1) { + lastwasinote=FALSE; continue; + +- } else if ((sscanf(scanbuff," EXPOSURE_DURATION = %s", exposure) == 1) +- || (sscanf(scanbuff," INSTRUMENT_EXPOSURE_DURATION = %s", +- exposure) == 1)) { ++ } else if ((sscanf(scanbuff, " EXPOSURE_DURATION = " S(COMMENTSIZE), exposure) == 1) ++ || (sscanf(scanbuff, " INSTRUMENT_EXPOSURE_DURATION = " S(COMMENTSIZE), ++ exposure)) == 1) { + tmptmp = (char *) index(scanbuff,'='); + tmptmp++; + while((*tmptmp) == ' ') +@@ -520,10 +527,10 @@ + strcpy(exposure,tmptmp); + lastwasinote=FALSE; continue; + +- } else if (sscanf(scanbuff, "NOTE = %s", inote) == 1) { ++ } else if (sscanf(scanbuff, "NOTE = " S(INOTESIZE), inote) == 1) { + tmptmp = (char *) index(scanbuff,'='); tmptmp++; + while (((*tmptmp) == ' ') || ((*tmptmp) == '"')) tmptmp++; +- strcpy(inote,tmptmp); ++ strncpy(inote, tmptmp, INOTESIZE - 1); + strcat(inote," "); + + /* evil and somewhat risky: A "note" (really, any textual +@@ -548,7 +555,7 @@ + } else if (lastwasinote) { + tmptmp=scanbuff; + while (((*tmptmp) == ' ') || ((*tmptmp) == '"')) tmptmp++; +- strcat(inote,tmptmp); ++ strncat(inote, tmptmp, INOTESIZE - strlen(inote) - 1); + strcat(inote," "); + if (index(tmptmp,'"') != NULL) + lastwasinote=FALSE; +@@ -647,27 +654,27 @@ + + *infobuff='\0'; + if (*spacecraft) { +- strcat(infobuff,spacecraft); ++ strncat(infobuff, spacecraft, sizeof(infobuff) - 1); + } + + if (*target) { +- strcat(infobuff,", "); +- strcat(infobuff,target); ++ strncat(infobuff, ", ", sizeof(infobuff) - strlen(infobuff) - 1); ++ strncat(infobuff, target, sizeof(infobuff) - strlen(infobuff) - 1); + } + + if (*filtname) { +- strcat(infobuff,", "); +- strcat(infobuff,filtname); ++ strncat(infobuff, ", ", sizeof(infobuff) - strlen(infobuff) - 1); ++ strncat(infobuff, filtname, sizeof(infobuff) - strlen(infobuff) - 1); + } + + if (*itime) { +- strcat(infobuff,", "); +- strcat(infobuff,itime); ++ strncat(infobuff, ", ", sizeof(infobuff) - strlen(infobuff) - 1); ++ strncat(infobuff, itime, sizeof(infobuff) - strlen(infobuff) - 1); + } + +- SetISTR(ISTR_WARNING,infobuff); ++ SetISTR(ISTR_WARNING, "%s", infobuff); + +- strcpy(pdsuncompfname,fname); ++ strncpy(pdsuncompfname,fname,sizeof(pdsuncompfname) - 1); + ftypstr = ""; + + switch (itype) { +@@ -695,7 +702,7 @@ + fclose(zf); + + #ifndef VMS +- sprintf(pdsuncompfname,"%s/xvhuffXXXXXX", tmpdir); ++ snprintf(pdsuncompfname, sizeof(pdsuncompfname) - 1, "%s/xvhuffXXXXXX", tmpdir); + #else + strcpy(pdsuncompfname,"sys$disk:[]xvhuffXXXXXX"); + #endif +@@ -704,10 +711,16 @@ + close(mkstemp(pdsuncompfname)); + #else + mktemp(pdsuncompfname); ++ tmpfd = open(pdsuncompfname,O_WRONLY|O_CREAT|O_EXCL,S_IRWUSR); ++ if (tmpfd < 0) { ++ SetISTR(ISTR_WARNING,"Unable to create temporary file."); ++ return 0; ++ } ++ close(tmpfd); + #endif + + #ifndef VMS +- sprintf(scanbuff,"%s %s - 4 >%s",PDSUNCOMP,fname,pdsuncompfname); ++ sprintf(scanbuff,"%s '%s' - 4 > %s", PDSUNCOMP, fname, pdsuncompfname); + #else + sprintf(scanbuff,"%s %s %s 4",PDSUNCOMP,fname,pdsuncompfname); + #endif +@@ -823,26 +836,26 @@ + char tmp[256]; + *(pinfo->comment) = '\0'; + +- sprintf(tmp, "Spacecraft: %-28sTarget: %-32s\n", spacecraft, target); +- strcat(pinfo->comment, tmp); ++ sprintf(tmp, "Spacecraft: %-28.28sTarget: %-32.32s\n", spacecraft, target); ++ strncat(pinfo->comment, tmp, 2000 - strlen(pinfo->comment) - 1); + +- sprintf(tmp, "Filter: %-32sMission phase: %-24s\n", filtname, mphase); +- strcat(pinfo->comment, tmp); ++ sprintf(tmp, "Filter: %-32.32sMission phase: %-24.24s\n", filtname, mphase); ++ strncat(pinfo->comment, tmp, 2000 - strlen(pinfo->comment) - 1); + +- sprintf(tmp, "Image time: %-28sGain mode: %-29s\n", itime, gainmode); +- strcat(pinfo->comment, tmp); ++ sprintf(tmp, "Image time: %-28.28sGain mode: %-29.29s\n", itime, gainmode); ++ strncat(pinfo->comment, tmp, 2000 - strlen(pinfo->comment) - 1); + +- sprintf(tmp, "Edit mode: %-29sScan mode: %-29s\n", editmode, scanmode); +- strcat(pinfo->comment, tmp); ++ sprintf(tmp, "Edit mode: %-29.29sScan mode: %-29.29s\n", editmode, scanmode); ++ strncat(pinfo->comment, tmp, 2000 - strlen(pinfo->comment) - 1); + +- sprintf(tmp, "Exposure: %-30sShutter mode: %-25s\n", exposure,shuttermode); +- strcat(pinfo->comment, tmp); ++ sprintf(tmp, "Exposure: %-30.30sShutter mode: %-25.25s\n", exposure,shuttermode); ++ strncat(pinfo->comment, tmp, 2000 - strlen(pinfo->comment) - 1); + +- sprintf(tmp, "Instrument: %-28sImage time: %-28s\n", iname, itime); +- strcat(pinfo->comment, tmp); ++ sprintf(tmp, "Instrument: %-28.28sImage time: %-28.28s\n", iname, itime); ++ strncat(pinfo->comment, tmp, 2000 - strlen(pinfo->comment) - 1); + +- sprintf(tmp, "Image Note: %-28s", inote); +- strcat(pinfo->comment, tmp); ++ sprintf(tmp, "Image Note: %-28.28s", inote); ++ strncat(pinfo->comment, tmp, 2000 - strlen(pinfo->comment) - 1); + } + + if (LoadPDSPalette(fname, pinfo)) return 1; +diff -ruN xv-3.10a-bugfixes/xvpi.c xv-3.10a-enhancements/xvpi.c +--- xv-3.10a-bugfixes/xvpi.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvpi.c 2005-04-17 22:57:04.000000000 -0700 +@@ -0,0 +1,1060 @@ ++/* ++ * xvpi.c - load routine for `Pi' format pictures. ++ * ++ * The `Pi' format is made by Yanagisawa. ++ * It is common among many Japanese personal computer users. ++ * ++ */ ++ ++#include "xv.h" ++#include ++ ++#ifdef HAVE_PI ++ ++typedef unsigned short data16; ++typedef unsigned int data32; ++ ++struct pi_info { ++ jmp_buf jmp; ++ FILE *fp; ++ struct { ++ int rest; ++ byte cur; ++ }bs; ++ long fsize; ++ byte mode; ++ int width, height; ++ float aspect; ++ int cbits; ++ int numcols; ++ byte *cmap; ++ struct ct_t{ ++ struct elt_t *top; ++ struct elt_t{ ++ struct elt_t *old, *recent; ++ byte val; ++ } *elt; ++ }*ct; ++ int defcmap; ++ int writing_grey; ++}; ++ ++static void pi_open_file PARM((struct pi_info*, char*)); ++static void pi_read_header PARM((struct pi_info*, char**)); ++static void pi_check_id PARM((struct pi_info*)); ++static void pi_read_comment PARM((struct pi_info*, char**)); ++static void pi_read_palette PARM((struct pi_info*)); ++static void pi_expand PARM((struct pi_info*, byte**)); ++static byte pi_read_color PARM((struct pi_info*, int)); ++static int pi_read_position PARM((struct pi_info*)); ++static data32 pi_read_length PARM((struct pi_info*)); ++static int pi_copy_pixels PARM((struct pi_info*, ++ byte*, int, int, data32)); ++ ++static void pi_write_header PARM((struct pi_info*, ++ char*, byte*, byte*, byte*)); ++static void pi_write_id PARM((struct pi_info*)); ++static void pi_write_comment PARM((struct pi_info*, char*)); ++static void pi_write_palette PARM((struct pi_info*, byte*, byte*, byte*)); ++static void pi_compress PARM((struct pi_info*, byte*)); ++static void pi_write_gabage PARM((struct pi_info*)); ++static void pi_write_color PARM((struct pi_info*, int, int)); ++static int pi_test_matching PARM((struct pi_info*, ++ byte*, int, int, data32*)); ++static void pi_write_position PARM((struct pi_info*, int)); ++static void pi_write_length PARM((struct pi_info*, data32)); ++ ++static void pi_table_create PARM((struct pi_info*)); ++static byte pi_table_get_value PARM((struct pi_info*, int, int)); ++static int pi_table_lookup_value PARM((struct pi_info*, int, int)); ++static data32 pi_read_bits PARM((struct pi_info*, int)); ++static void pi_write_bits PARM((struct pi_info*, data32, int)); ++static void pi_init_pi_info PARM((struct pi_info*)); ++static void pi_cleanup_pi_info PARM((struct pi_info*, int)); ++static void pi_cleanup_pinfo PARM((PICINFO*)); ++static void pi_memory_error PARM((char*, char*)); ++static void pi_error PARM((struct pi_info*, int)); ++static void pi_file_error PARM((struct pi_info*, int)); ++static void pi_file_warning PARM((struct pi_info*, int)); ++static void pi_show_pi_info PARM((struct pi_info*)); ++static void *pi_malloc PARM((size_t, char*)); ++static void *pi_realloc PARM((void*, size_t, char*)); ++ ++ ++static char *pi_id = "Pi"; ++static char *pi_msgs[] = { ++ NULL, ++#define PI_OPEN 1 ++ "couldn't open.", ++#define PI_CORRUPT 2 ++ "file corrupted.", ++#define PI_FORMAT 3 ++ "not PI format.", ++#define PI_PLANES 4 ++ "bad number of planes.", ++#define PI_WRITE 5 ++ "write failed.", ++}; ++ ++ ++/* The main routine of `Pi' loader. */ ++int LoadPi(fname, pinfo) ++ char *fname; ++ PICINFO *pinfo; ++{ ++ struct pi_info pi; ++ int e; ++ int i; ++ if(DEBUG) fputs("LoadPi:\n", stderr); ++ ++ pinfo->comment = NULL; ++ pi_init_pi_info(&pi); ++ if((e = setjmp(pi.jmp)) != 0){ ++ /* When an error occurs, comes here. */ ++ pi_cleanup_pi_info(&pi, 0); ++ pi_cleanup_pinfo(pinfo); ++ if(DEBUG) fputs("\n", stderr); ++ return 0; ++ } ++ ++ pi_open_file(&pi, fname); ++ pi_read_header(&pi, &pinfo->comment); ++ pi_expand(&pi, &pinfo->pic); ++ ++ pinfo->normw = pinfo->w = pi.width; ++ pinfo->normh = pinfo->h = pi.height; ++ pinfo->type = PIC8; ++ if(pi.numcols > 256) /* shouldn't happen. */ ++ pi.numcols = 256; ++ for(i = 0; i < pi.numcols; i++){ ++ pinfo->r[i] = pi.cmap[i * 3 ]; ++ pinfo->g[i] = pi.cmap[i * 3 + 1]; ++ pinfo->b[i] = pi.cmap[i * 3 + 2]; ++ } ++ pinfo->frmType = F_PI; ++ pinfo->colType = F_FULLCOLOR; ++ sprintf(pinfo->fullInfo, "Pi, %d colors (%ld bytes)", ++ pi.numcols, pi.fsize); ++ sprintf(pinfo->shrtInfo, "%dx%d Pi.", pi.width, pi.height); ++ normaspect = pi.aspect; ++ ++ pi_cleanup_pi_info(&pi, 0); ++ if(DEBUG) fputs("\n", stderr); ++ return 1; ++} ++ ++static void pi_open_file(pi, fname) ++ struct pi_info *pi; ++ char *fname; ++{ ++ if((pi->fp = fopen(fname, "rb")) == NULL) ++ pi_file_error(pi, PI_OPEN); ++ fseek(pi->fp, (size_t) 0, SEEK_END); ++ pi->fsize = ftell(pi->fp); ++ fseek(pi->fp, (size_t) 0, SEEK_SET); ++} ++ ++static void pi_read_header(pi, comm) ++ struct pi_info *pi; ++ char **comm; ++{ ++ byte buf[10]; ++ int mda; ++ int i; ++ ++ pi_check_id(pi); ++ pi_read_comment(pi, comm); ++ ++ if(fread(buf, (size_t) 10, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_CORRUPT); ++ ++ pi->mode = buf[0]; ++ pi->defcmap = pi->mode & 0x80; ++ if(buf[1] != 0 && buf[2] != 0) ++ pi->aspect = (float) buf[2] / (int) buf[1]; ++ pi->cbits = buf[3]; ++ pi->numcols = 1 << pi->cbits; ++ ++ if(pi->cbits != 4 && pi->cbits != 8) ++ pi_error(pi, PI_PLANES); ++ ++ mda = (int) buf[8] << 8 | (int) buf[9]; ++ for(i = 0; i < mda; i++){ ++ if(fgetc(pi->fp) == EOF) ++ pi_file_error(pi, PI_CORRUPT); ++ } ++ ++ if(fread(buf, (size_t) 4, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_CORRUPT); ++ pi->width = (int) buf[0] << 8 | (int) buf[1]; ++ pi->height = (int) buf[2] << 8 | (int) buf[3]; ++ ++ pi_read_palette(pi); ++ ++ if(DEBUG) pi_show_pi_info(pi); ++} ++ ++static void pi_check_id(pi) ++ struct pi_info *pi; ++{ ++ char buf[2]; ++ ++ if(fread(buf, (size_t) 2, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_CORRUPT); ++ if(strncmp(buf, pi_id, (size_t) 2) != 0) ++ pi_error(pi, PI_FORMAT); ++} ++ ++static void pi_read_comment(pi, comm) ++ struct pi_info *pi; ++ char **comm; ++{ ++/* ++ * The comment format is like: ++ * comment string `^Z' dummy string `\0' ++ */ ++ int max = -1, i = 0; ++ int c; ++ ++ while(1){ ++ if((c = fgetc(pi->fp)) == EOF) ++ pi_file_error(pi, PI_CORRUPT); ++ if(c == '\032') /* 0x1a, '^Z' */ ++ break; ++ if(max < i){ ++ max += 32; ++ *comm = pi_realloc(*comm, (size_t) max + 1, "pi_read_comment(1)"); ++ } ++ (*comm)[i++] = c; ++ } ++ if(max < i){ ++ max++; ++ *comm = pi_realloc(*comm, (size_t) max + 1, "pi_read_comment(2)"); ++ } ++ (*comm)[i] = '\0'; ++ ++ while((c = fgetc(pi->fp)) != '\0'){ /* skip the dummy area */ ++ if(c == EOF) ++ pi_file_error(pi, PI_CORRUPT); ++ } ++} ++ ++static void pi_read_palette(pi) ++ struct pi_info *pi; ++{ ++ pi->cmap = pi_malloc((size_t) pi->numcols * 3, "pi_read_palette"); ++ if(pi->mode & 0x80){ ++ if(pi->numcols == 16){ ++ int i; ++ byte on; ++ ++ on = 0x77; ++ for(i = 0; i < 8; i++){ ++ pi->cmap[i * 3 ] = i & 2 ? on : 0; ++ pi->cmap[i * 3 + 1] = i & 4 ? on : 0; ++ pi->cmap[i * 3 + 2] = i & 1 ? on : 0; ++ } ++ on = 0xff; ++ for(; i < 16; i++){ ++ pi->cmap[i * 3 ] = i & 2 ? on : 0; ++ pi->cmap[i * 3 + 1] = i & 4 ? on : 0; ++ pi->cmap[i * 3 + 2] = i & 1 ? on : 0; ++ } ++ }else{ /* pi->numcols == 256 */ ++ int i; ++ byte r, g, b; ++ r = g = b = 0; ++ for(i = 0; i < 256; i++){ ++ pi->cmap[i * 3 ] = r; ++ pi->cmap[i * 3 + 1] = g; ++ pi->cmap[i * 3 + 2] = b; ++ if((b += 0x40) == 0){ ++ if((r += 0x20) == 0) ++ g += 0x20; ++ } ++ } ++ } ++ }else{ ++ if(fread(pi->cmap, (size_t) pi->numcols * 3, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_CORRUPT); ++ } ++} ++ ++/* The main routine to expand `Pi' file. */ ++static void pi_expand(pi, pic) ++ struct pi_info *pi; ++ byte **pic; ++{ ++ byte prev_col = 0; ++ int prev_pos = -1; ++ int cnt = 0, max_cnt = pi->width * pi->height; ++ ++ *pic = pi_malloc((size_t) max_cnt, "pi_expand"); // GRR POSSIBLE OVERFLOW / FIXME ++ ++ pi_table_create(pi); ++ ++ if(pi->width > 2){ ++ (*pic)[0] = pi_read_color(pi, 0); ++ (*pic)[1] = pi_read_color(pi, (*pic)[0]); ++ ++ while(cnt < max_cnt){ ++ int pos = pi_read_position(pi); ++ if(pos != prev_pos){ ++ data32 len = pi_read_length(pi); ++ cnt = pi_copy_pixels(pi, *pic, cnt, pos, len); ++ prev_col = (*pic)[cnt - 1]; ++ prev_pos = pos; ++ }else{ ++ do{ ++ prev_col = pi_read_color(pi, (int) prev_col); ++ (*pic)[cnt++] = prev_col; ++ prev_col = pi_read_color(pi, (int) prev_col); ++ (*pic)[cnt++] = prev_col; ++ }while(pi_read_bits(pi, 1) == 1); ++ ++ prev_pos = -1; ++ } ++ } ++ }else{ ++ while(cnt < max_cnt){ ++ prev_col = pi_read_color(pi, (int) prev_col); ++ (*pic)[cnt++] = prev_col; ++ } ++ } ++} ++ ++static byte pi_read_color(pi, prev) ++ struct pi_info *pi; ++ int prev; ++{ ++ byte n; ++ if(pi->cbits == 4){ ++ if(pi_read_bits(pi, 1) == 1) ++ n = pi_read_bits(pi, 1); /* 1x */ ++ else{ ++ if(pi_read_bits(pi, 1) == 0) ++ n = pi_read_bits(pi, 1) + 2; /* 00x */ ++ else{ ++ if(pi_read_bits(pi, 1) == 0) ++ n = pi_read_bits(pi, 2) + 4; /* 010xx */ ++ else ++ n = pi_read_bits(pi, 3) + 8; /* 011xxx */ ++ } ++ } ++ }else{ /* cbits == 8 */ ++ if(pi_read_bits(pi, 1) == 1) ++ n = pi_read_bits(pi, 1); ++ else{ ++ int bits = 0; ++ byte base = 2; ++ while(bits < 6){ ++ if(pi_read_bits(pi, 1) == 0) ++ break; ++ bits++; ++ base <<= 1; ++ } ++ n = pi_read_bits(pi, bits + 1) + base; ++ } ++ } ++ ++ return pi_table_get_value(pi, prev, (int) n); ++} ++ ++static int pi_read_position(pi) ++ struct pi_info *pi; ++{ ++ byte r; ++ if((r = pi_read_bits(pi, 2)) != 3) ++ return (int) r; ++ else ++ return (int) pi_read_bits(pi, 1) + 3; ++} ++ ++static data32 pi_read_length(pi) ++ struct pi_info *pi; ++{ ++ data32 r = 1; ++ int bits = 0; ++ while(pi_read_bits(pi, 1) == 1){ ++ r <<= 1; ++ bits++; ++ } ++ if(bits > 0) ++ return r + pi_read_bits(pi, bits); ++ return 1; ++} ++ ++static int pi_copy_pixels(pi, pic, cnt, pos, len) ++ struct pi_info *pi; ++ byte *pic; ++ int cnt, pos; ++ data32 len; ++{ ++ int s = 0, d = cnt; ++ int max = pi->width * pi->height; ++ switch(pos){ ++ case 0: ++ if(cnt < 2){ ++ if(pic[0] == pic[1]) ++ s = cnt - 2; ++ else ++ s = cnt - 4; ++ }else{ ++ if(pic[cnt - 2] == pic[cnt - 1]) ++ s = cnt - 2; ++ else ++ s = cnt - 4; ++ } ++ break; ++ case 1: ++ s = cnt - pi->width; ++ break; ++ case 2: ++ s = cnt - pi->width * 2; ++ break; ++ case 3: ++ s = cnt - pi->width + 1; ++ break; ++ case 4: ++ s = cnt - pi->width - 1; ++ } ++ ++ len *= 2; ++ while(s < 0 && len != 0 && d < max){ ++ pic[d++] = pic[-(s++) % 2]; ++ len--; ++ } ++ while(len != 0 && d < max){ ++ pic[d++] = pic[s++]; ++ len--; ++ } ++ return d; ++} ++ ++/* The main routine of `Pi' saver. */ ++int WritePi(fp, pic, ptype, w, h, rmap, gmap, bmap, numcols, colorstyle, ++ comment) ++ FILE *fp; ++ byte *pic; ++ int ptype, w, h; ++ byte *rmap, *gmap, *bmap; ++ int numcols, colorstyle; ++ char *comment; ++{ ++ byte rtemp[256], gtemp[256], btemp[256]; ++ struct pi_info pi; ++ int e; ++ ++ if(DEBUG) fputs("WritePi\n", stderr); ++ pi_init_pi_info(&pi); ++ pi.fp = fp; ++ pi.width = w; ++ pi.height = h; ++ pi.writing_grey = (colorstyle == F_GREYSCALE); ++ if(ptype == PIC24){ ++ if(!(pic = Conv24to8(pic, w, h, 256, rtemp, gtemp, btemp))) ++ pi_memory_error("Conv24to8", "WritePi"); ++ rmap = rtemp; ++ gmap = gtemp; ++ bmap = btemp; ++ numcols = 256; ++ } ++ ++ if((e = setjmp(pi.jmp)) != 0){ ++ /* When an error occurs, comes here. */ ++ pi_cleanup_pi_info(&pi, 1); ++ if(DEBUG) fputs("\n", stderr); ++ return -1; ++ } ++ ++ pi.numcols = numcols; ++ pi_write_header(&pi, comment, rmap, gmap, bmap); ++ pi_compress(&pi, pic); ++ pi_write_gabage(&pi); ++ ++ pi_cleanup_pi_info(&pi, 1); ++ if(DEBUG) fputs("\n", stderr); ++ return 0; ++} ++ ++static void pi_write_header(pi, comm, r, g, b) ++ struct pi_info *pi; ++ char *comm; ++ byte *r, *g, *b; ++{ ++ byte buf[14]; ++ ++ if(DEBUG) pi_show_pi_info(pi); ++ ++ pi_write_id(pi); ++ pi_write_comment(pi, comm); ++ ++ buf[0] = buf[1] = buf[2] = 0; ++ buf[3] = pi->cbits = pi->numcols > 16 ? 8 : 4; ++ buf[4] = 'X'; ++ buf[5] = 'V'; ++ buf[6] = ' '; ++ buf[7] = ' '; ++ buf[8] = buf[9] = 0; ++ buf[10] = pi->width >> 8; ++ buf[11] = pi->width; ++ buf[12] = pi->height >> 8; ++ buf[13] = pi->height; ++ if(fwrite(buf, (size_t) 14, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_WRITE); ++ ++ pi_write_palette(pi, r, g, b); ++} ++ ++static void pi_write_id(pi) ++ struct pi_info *pi; ++{ ++ if(fwrite(pi_id, (size_t) 2, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_WRITE); ++} ++ ++static void pi_write_comment(pi, comm) ++ struct pi_info *pi; ++ char *comm; ++{ ++ if(comm){ ++ int i; ++ for(i = 0; comm[i]; i++){ ++ if(comm[i] == '\032') /* 0x1a, '^Z' */ ++ comm[i] = ' '; ++ } ++ if(i > 0){ ++ if(fwrite(comm, (size_t) i, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_WRITE); ++ } ++ } ++ ++ if(fwrite("\032\0", (size_t) 2, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_WRITE); ++} ++ ++static void pi_write_palette(pi, r, g, b) ++ struct pi_info *pi; ++ byte *r, *g, *b; ++{ ++ int i; ++ int pinum = 1 << pi->cbits; ++ char buf[3]; ++ ++ for(i = 0; i < pi->numcols; i++){ ++ buf[0] = *r++; ++ buf[1] = *g++; ++ buf[2] = *b++; ++ if(pi->writing_grey) ++ buf[0] = buf[1] = buf[2] = MONO(buf[0], buf[1], buf[2]); ++ if(fwrite(buf, (size_t) 3, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_WRITE); ++ } ++ for( ; i < pinum; i++){ ++ if(fwrite(buf, (size_t) 3, (size_t) 1, pi->fp) != 1) ++ pi_file_error(pi, PI_WRITE); ++ } ++ pi->numcols = pinum; ++} ++ ++/* The main routine to compress `Pi' format. */ ++static void pi_compress(pi, pic) ++ struct pi_info *pi; ++ byte *pic; ++{ ++ byte prev_col = 0; ++ int prev_pos = -1; ++ int cnt = 0, max_cnt = pi->width * pi->height; ++ pi_table_create(pi); ++ ++ if(pi->width > 2){ ++ int pos; ++ data32 len; ++ ++ pi_write_color(pi, 0, pic[0]); ++ pi_write_color(pi, pic[0], pic[1]); ++ pos = pi_test_matching(pi, pic, prev_pos, cnt, &len); ++ while(cnt < max_cnt){ ++ if(pos >= 0){ ++ pi_write_position(pi, pos); ++ pi_write_length(pi, len); ++ if((cnt += len * 2) >= max_cnt) ++ break; ++ prev_col = pic[cnt - 1]; ++ prev_pos = pos; ++ pos = pi_test_matching(pi, pic, prev_pos, cnt, &len); ++ }else{ ++ pi_write_position(pi, prev_pos); ++ prev_pos = -1; ++ while(pos < 0){ ++ pi_write_color(pi, (int) prev_col, pic[cnt]); ++ prev_col = pic[cnt]; ++ if(++cnt >= max_cnt) ++ break; ++ pi_write_color(pi, (int) prev_col, pic[cnt]); ++ prev_col = pic[cnt]; ++ if(++cnt >= max_cnt) ++ break; ++ pos = pi_test_matching(pi, pic, -1, cnt, &len); ++ if(pos < 0) ++ pi_write_bits(pi, 1, 1); ++ else ++ pi_write_bits(pi, 0, 1); ++ } ++ } ++ } ++ }else{ ++ while(cnt < max_cnt){ ++ pi_write_color(pi, (int) prev_col, pic[cnt]); ++ prev_col = pic[cnt++]; ++ } ++ } ++} ++ ++static void pi_write_gabage(pi) ++ struct pi_info *pi; ++{ ++ pi_write_bits(pi, 0, 32); ++} ++ ++static void pi_write_color(pi, prev, col) ++ struct pi_info *pi; ++ int prev, col; ++{ ++ int n = pi_table_lookup_value(pi, prev, col); ++ ++ if(pi->cbits == 4){ ++ if(n < 2) ++ pi_write_bits(pi, (data32) n | 2, 2); ++ else if(n < 4) ++ pi_write_bits(pi, (data32) n - 2, 3); ++ else if(n < 8) ++ pi_write_bits(pi, (data32) (n - 4) | 8, 5); ++ else ++ pi_write_bits(pi, (data32) (n - 8) | 24, 6); ++ }else{ /* cbits == 8 */ ++ if(n < 2){ ++ pi_write_bits(pi, (data32) n | 2, 2); ++ }else{ ++ int bits = 0; ++ byte base = 2; ++ while(bits < 6){ ++ if(n < (int) base * 2) ++ break; ++ bits++; ++ base <<= 1; ++ } ++ pi_write_bits(pi, 0, 1); ++ if(bits > 0) ++ pi_write_bits(pi, 0xffffffff, bits); ++ if(bits < 6) ++ pi_write_bits(pi, 0, 1); ++ pi_write_bits(pi, (data32) n - base, bits + 1); ++ } ++ } ++} ++ ++static int pi_test_matching(pi, pic, prev, cnt, len) ++ struct pi_info *pi; ++ byte *pic; ++ int prev, cnt; ++ data32 *len; ++{ ++ data32 lens[5]; ++ int pos, p; ++ int s, d = 0; ++ int max = pi->width * pi->height; ++ ++ for(pos = 0; pos < 5; pos++){ ++ switch(pos){ ++ case 0: ++ if(cnt < 2){ ++ if(pic[0] == pic[1]) ++ d = cnt - 2; ++ else ++ d = cnt - 4; ++ }else{ ++ if(pic[cnt - 2] == pic[cnt - 1]) ++ d = cnt - 2; ++ else ++ d = cnt - 4; ++ } ++ break; ++ case 1: ++ d = cnt - pi->width; ++ break; ++ case 2: ++ d = cnt - pi->width * 2; ++ break; ++ case 3: ++ d = cnt - pi->width + 1; ++ break; ++ case 4: ++ d = cnt - pi->width - 1; ++ } ++ s = cnt; ++ lens[pos] = 0; ++ ++ if(prev == 0 && pos == 0) ++ continue; ++ ++ while(d < max){ ++ if(pic[(d < 0) ? (-d) % 2 : d] != pic[s]) ++ break; ++ lens[pos]++; ++ d++; ++ s++; ++ } ++ ++ } ++ ++ for(pos = 0, p = 1; p < 5; p++){ ++ if(lens[p] >= lens[pos]) ++ pos = p; ++ } ++ ++ if(lens[pos] / 2 == 0) ++ return -1; ++ *len = lens[pos] / 2; ++ return pos; ++} ++ ++static void pi_write_position(pi, pos) ++ struct pi_info *pi; ++ int pos; ++{ ++ switch(pos){ ++ case 0: ++ pi_write_bits(pi, 0, 2); ++ break; ++ case 1: ++ pi_write_bits(pi, 1, 2); ++ break; ++ case 2: ++ pi_write_bits(pi, 2, 2); ++ break; ++ case 3: ++ pi_write_bits(pi, 6, 3); ++ break; ++ case 4: ++ pi_write_bits(pi, 7, 3); ++ break; ++ } ++} ++ ++static void pi_write_length(pi, len) ++ struct pi_info *pi; ++ data32 len; ++{ ++ int bits = 0; ++ data32 base = 1; ++ ++ while(len >= base * 2){ ++ bits++; ++ base <<= 1; ++ } ++ if(bits > 0){ ++ pi_write_bits(pi, 0xffffffff, bits); ++ pi_write_bits(pi, 0, 1); ++ pi_write_bits(pi, len - base, bits); ++ }else ++ pi_write_bits(pi, 0, 1); ++} ++ ++/* ++ * These pi_table_* functions manipulate the color table. ++ * pi_table_create: ++ * allocates and initializes a color table. ++ * pi_table_get_value: ++ * get the specified value, and move it to the top of the list. ++ * pi_table_lookup_value: ++ * look up the specified value, and move it to the top of the list. ++ */ ++static void pi_table_create(pi) ++ struct pi_info *pi; ++{ ++ struct ct_t *t; ++ int i; ++ byte mask = pi->numcols - 1; ++ pi->ct = pi_malloc(sizeof *pi->ct * pi->numcols, "pi_table_create(1)"); ++ for(i = 0, t = pi->ct; i < pi->numcols; i++, t++){ ++ int j; ++ byte v = i; ++ t->elt = pi_malloc(sizeof *t->elt * pi->numcols, "pi_table_create(2)"); ++ t->top = &t->elt[pi->numcols - 1]; ++ for(j = 0; j < pi->numcols; j++){ ++ v = (v + 1) & mask; ++ if(j > 0) ++ t->elt[j].old = &t->elt[j - 1]; ++ else ++ t->elt[0].old = t->top; ++ if(j < pi->numcols - 1) ++ t->elt[j].recent = &t->elt[j + 1]; ++ else ++ t->elt[j].recent = &t->elt[0]; ++ t->elt[j].val = v; ++ } ++ t->elt[0].old = t->top; ++ t->top->recent = &t->elt[0]; ++ } ++} ++ ++static byte pi_table_get_value(pi, left, num) ++ struct pi_info *pi; ++ int left, num; ++{ ++ struct ct_t *t = &pi->ct[left]; ++ struct elt_t *e = t->top; ++ if(left >= pi->numcols || num >= pi->numcols) ++ abort(); ++ if(num != 0){ ++ do { ++ e = e->old; ++ }while(--num != 0); ++ ++ e->old->recent = e->recent; ++ e->recent->old = e->old; ++ ++ e->recent = t->top->recent; ++ e->recent->old = e; ++ e->old = t->top; ++ t->top->recent = e; ++ ++ t->top = e; ++ } ++ return e->val; ++} ++ ++static int pi_table_lookup_value(pi, left, v) ++ struct pi_info *pi; ++ int left, v; ++{ ++ struct ct_t *t = &pi->ct[left]; ++ struct elt_t *e = t->top; ++ int num = 0; ++ ++ if(left >= pi->numcols || v >= pi->numcols) ++ abort(); ++ ++ while(e->val != v){ ++ e = e->old; ++ num++; ++ } ++ ++ if(num != 0){ ++ e->old->recent = e->recent; ++ e->recent->old = e->old; ++ ++ e->recent = t->top->recent; ++ e->recent->old = e; ++ e->old = t->top; ++ t->top->recent = e; ++ ++ t->top = e; ++ } ++ ++ return num; ++} ++ ++/* ++ * These 2 functions read or write to a bit stream. ++ * pi_read_bits: ++ * reads a specified-bit data from the bit stream. ++ * pi_write_bits: ++ * writes a specified-bit data to the bit stream. ++ */ ++static data32 pi_read_bits(pi, numbits) ++ struct pi_info *pi; ++ int numbits; ++{ ++ data32 r = 0; ++ ++ while(numbits > 0){ ++ while(pi->bs.rest > 0 && numbits > 0){ ++ r = (r << 1) | (pi->bs.cur & 0x80 ? 1 : 0); ++ pi->bs.cur <<= 1; ++ pi->bs.rest--; ++ numbits--; ++ } ++ if(numbits > 0){ ++ int c; ++ if((c = fgetc(pi->fp)) == EOF) ++ pi_file_warning(pi, PI_CORRUPT); ++ pi->bs.cur = c; ++ pi->bs.rest = 8; ++ } ++ } ++ ++ return r; ++} ++ ++static void pi_write_bits(pi, dat, bits) ++ struct pi_info *pi; ++ data32 dat; ++ int bits; ++{ ++ data32 dat_mask = 1 << (bits - 1); ++ while(bits > 0){ ++ while(pi->bs.rest < 8 && bits > 0){ ++ pi->bs.cur <<= 1; ++ if(dat & dat_mask) ++ pi->bs.cur |= 1; ++ pi->bs.rest++; ++ bits--; ++ dat_mask >>= 1; ++ } ++ if(pi->bs.rest >= 8){ ++ if(fputc((int)pi->bs.cur, pi->fp) == EOF) ++ pi_file_error(pi, PI_WRITE); ++ pi->bs.cur = 0; ++ pi->bs.rest = 0; ++ } ++ } ++} ++ ++/* ++ * The routines to initialize or clean up. ++ * pi_inif_pi_info: ++ * initializes a pi_info structure. ++ * pi_cleanup_pi_info: ++ * cleanup pi_info structure. It frees allocated memories. ++ * pi_cleanup_pinfo: ++ * cleanup PICINFO structure when an error occurs. ++ */ ++static void pi_init_pi_info(pi) ++ struct pi_info *pi; ++{ ++ pi->fp = NULL; ++ pi->bs.rest = 0; ++ pi->bs.cur = 0; ++ pi->fsize = 0; ++ pi->mode = 0; ++ pi->width = pi->mode = 0; ++ pi->aspect = 1.0; ++ pi->cbits = 0; ++ pi->numcols = 0; ++ pi->cmap = NULL; ++ pi->ct = NULL; ++ pi->defcmap = 0; ++ pi->writing_grey = 0; ++} ++ ++static void pi_cleanup_pi_info(pi, writing) ++ struct pi_info *pi; ++ int writing; ++{ ++ if(pi->fp && !writing){ ++ fclose(pi->fp); ++ pi->fp = NULL; ++ } ++ if(pi->cmap){ ++ free(pi->cmap); ++ pi->cmap = NULL; ++ } ++ if(pi->ct){ ++ int i; ++ for(i = 0; i < pi->numcols; i++) ++ free(pi->ct[i].elt); ++ free(pi->ct); ++ pi->ct = NULL; ++ } ++} ++ ++static void pi_cleanup_pinfo(pinfo) ++ PICINFO *pinfo; ++{ ++ if(pinfo->pic){ ++ free(pinfo->pic); ++ pinfo->pic = NULL; ++ } ++ if(pinfo->comment){ ++ free(pinfo->comment); ++ pinfo->comment = NULL; ++ } ++} ++ ++/* ++ * Error handling routins. ++ * pi_memory_error: ++ * shows a error message, and terminates. ++ * pi_error: ++ * shows a non-file error message. ++ * pi_file_error: ++ * shows a file error message. ++ */ ++static void pi_memory_error(scm, fn) ++ char *scm, *fn; ++{ ++ char buf[128]; ++ sprintf(buf, "%s: couldn't allocate memory. (%s)", scm ,fn); ++ FatalError(buf); ++} ++ ++static void pi_error(pi, mn) ++ struct pi_info *pi; ++ int mn; ++{ ++ SetISTR(ISTR_WARNING, "%s", pi_msgs[mn]); ++ longjmp(pi->jmp, 1); ++} ++ ++static void pi_file_error(pi, mn) ++ struct pi_info *pi; ++ int mn; ++{ ++ if(feof(pi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", pi_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", pi_msgs[mn], ERRSTR(errno)); ++ longjmp(pi->jmp, 1); ++} ++ ++static void pi_file_warning(pi, mn) ++ struct pi_info *pi; ++ int mn; ++{ ++ if(feof(pi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", pi_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", pi_msgs[mn], ERRSTR(errno)); ++} ++ ++static void pi_show_pi_info(pi) ++ struct pi_info *pi; ++{ ++ fprintf(stderr, " file size: %ld.\n", pi->fsize); ++ fprintf(stderr, " mode: 0x%02x.\n", pi->mode); ++ fprintf(stderr, " image size: %dx%d.\n", pi->width, pi->height); ++ fprintf(stderr, " aspect: %f.\n", pi->aspect); ++ fprintf(stderr, " number of color bits: %d.\n", pi->cbits); ++ fprintf(stderr, " number of colors: %d.\n", pi->numcols); ++ fprintf(stderr, " using default colormap: %s.\n", ++ pi->defcmap ? "true" : "false"); ++ fprintf(stderr, " writing greyscale image: %s.\n", ++ pi->writing_grey ? "true" : "false"); ++} ++ ++/* ++ * Memory related routines. If failed, they calls pi_memory_error. ++ */ ++static void *pi_malloc(n, fn) ++ size_t n; ++ char *fn; ++{ ++ void *r = (void *) malloc(n); ++ if(r == NULL) ++ pi_memory_error("malloc", fn); ++ return r; ++} ++ ++static void *pi_realloc(p, n, fn) ++ void *p; ++ size_t n; ++ char *fn; ++{ ++ void *r = (p == NULL) ? (void *) malloc(n) : (void *) realloc(p, n); ++ if(r == NULL) ++ pi_memory_error("realloc", fn); ++ return r; ++} ++#endif /* HAVE_PI */ +diff -ruN xv-3.10a-bugfixes/xvpic.c xv-3.10a-enhancements/xvpic.c +--- xv-3.10a-bugfixes/xvpic.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvpic.c 2005-04-17 22:57:08.000000000 -0700 +@@ -0,0 +1,1285 @@ ++/* ++ * xvpic.c - load routine for `PIC' format pictures. ++ * ++ * The `PIC' format is used by many Japanese personal computer users. ++ */ ++ ++#include "xv.h" ++#include ++ ++#ifdef HAVE_PIC ++ ++typedef unsigned short data16; ++typedef unsigned int data32; ++ ++struct pic_info { ++ jmp_buf jmp; ++ FILE *fp; ++ struct { ++ int rest; ++ byte cur; ++ }bs; ++ long fsize; ++ int type, mode; ++ int width, height; ++ float aspect; ++ int cbits; ++ int cmapped; ++ byte *cmap; ++ int cached; ++ struct cache_t { ++ int newest; ++ struct cachenode_t { ++ data32 dat; ++ int newer, older; ++ } *node; ++ } cache; ++ int g_bits, r_bits, b_bits, i_bits; ++ int inv_gr; ++ int tiled256; ++ int numcols; ++ int writing_grey; ++ data32 *data; ++}; ++ ++static void pic_open_file PARM((struct pic_info*,char*)); ++static void pic_check_id PARM((struct pic_info*)); ++static void pic_read_comment PARM((struct pic_info*, char**)); ++static void pic_read_header PARM((struct pic_info*)); ++static void pic_expand_data PARM((struct pic_info*)); ++static int pic_expanding_read_len PARM((struct pic_info*)); ++static data32 pic_expanding_read_color PARM((struct pic_info*)); ++static void pic_expanding_read_chain ++ PARM((struct pic_info*, int, int, data32)); ++static void pic_make_xvpic ++ PARM((struct pic_info*, byte**, byte*, byte*, byte*)); ++ ++static void pic_write_id PARM((struct pic_info*)); ++static void pic_write_comment PARM((struct pic_info*, char*)); ++static void pic_write_header PARM((struct pic_info*)); ++static void pic_write_palette ++ PARM((struct pic_info*, byte*, byte*, byte*)); ++static void pic_make_sparse_data PARM((struct pic_info*, byte*)); ++static void pic_write_data PARM((struct pic_info*)); ++static void pic_write_length PARM((struct pic_info*, data32)); ++static void pic_write_color PARM((struct pic_info*, data32)); ++static void pic_write_chain ++ PARM((struct pic_info*, int, int, data32)); ++ ++static data32 pic_read_rgb PARM((struct pic_info*)); ++static data32 pic_read_color_code PARM((struct pic_info*)); ++static void pic_write_rgb PARM((struct pic_info*, data32)); ++static void pic_write_color_code PARM((struct pic_info*, data32)); ++ ++static void pic_cache_init PARM((struct pic_info*)); ++static data32 pic_cache_get_value PARM((struct pic_info*, int)); ++static void pic_cache_add_value PARM((struct pic_info*, data32)); ++static int pic_cache_lookup PARM((struct pic_info*, data32)); ++ ++static data32 pic_read_bits PARM((struct pic_info*, int)); ++static void pic_write_bits PARM((struct pic_info*, data32, int)); ++static byte pic_pad_bit PARM((int, data32)); ++ ++static void pic_init_info PARM((struct pic_info*)); ++static void pic_cleanup_pic_info PARM((struct pic_info*, int)); ++static void pic_cleanup_pinfo PARM((PICINFO*)); ++static void pic_memory_error PARM((char*, char*)); ++static void pic_error PARM((struct pic_info*, int)); ++static void pic_file_error PARM((struct pic_info*, int)); ++static void pic_file_warning PARM((struct pic_info*, int)); ++static void pic_show_pic_info PARM((struct pic_info*)); ++static void *pic_malloc PARM((size_t, char*)); ++static void *pic_realloc PARM((void*, size_t, char*)); ++ ++ ++static char *pic_id = "PIC"; ++ ++/* Error Messages */ ++static char *pic_msgs[] = { ++ NULL, ++#define PIC_OPEN 1 ++ "can't open file.", ++#define PIC_CORRUPT 2 ++ "file corrupted.", ++#define PIC_FORMAT 3 ++ "not PIC format.", ++#define PIC_SUPPORT 4 ++ "unsupported type.", ++#define PIC_COMMENT 5 ++ "can't read comment.", ++#define PIC_TYPE 6 ++ "bad machine type.", ++#define PIC_MODE 7 ++ "bad machine-dependent mode.", ++#define PIC_NUM_COLORS 8 ++ "bad number of colors.", ++#define PIC_SIZE 9 ++ "bad size.", ++#define PIC_ASPECT 10 ++ "bad aspect.", ++#define PIC_WRITE 11 ++ "write failed.", ++}; ++ ++#define H4(b) (((b) >> 4) & 0x0f) ++#define L4(b) ( (b) & 0x0f) ++ ++ ++/* The main routine to load a PIC file. */ ++int LoadPIC(fname, pinfo) ++ char *fname; ++ PICINFO *pinfo; ++{ ++ int e; ++ struct pic_info pic; ++ char buf[128]; ++ ++ if(DEBUG) fputs("LoadPIC:\n", stderr); ++ ++ pic_init_info(&pic); ++ ++ pinfo->comment = NULL; ++ if((e = setjmp(pic.jmp)) != 0){ ++ /* When an error occurs, comes here. */ ++ pic_cleanup_pic_info(&pic, 0); ++ pic_cleanup_pinfo(pinfo); ++ if(DEBUG) fputs("\n", stderr); ++ return 0; ++ } ++ ++ pic_open_file(&pic, fname); ++ pic_check_id(&pic); ++ pic_read_comment(&pic, &pinfo->comment); ++ pic_read_header(&pic); ++ pic_expand_data(&pic); ++ pic_make_xvpic(&pic, &pinfo->pic, pinfo->r, pinfo->g, pinfo->b); ++ ++ pinfo->w = pic.width; ++ if(pic.tiled256) ++ pinfo->h = pic.height * 2; ++ else ++ pinfo->h = pic.height; ++ pinfo->normw = pinfo->w; ++ pinfo->normh = pinfo->h; ++ pinfo->type = pic.cmapped ? PIC8 : PIC24; ++ pinfo->frmType = F_PIC; ++ pinfo->colType = F_FULLCOLOR; ++ strcpy(pinfo->fullInfo, "PIC"); ++ switch(pic.type){ ++ case 0x0: ++ strcat(pinfo->fullInfo, ", X68k"); ++ break; ++ case 0x1: ++ strcat(pinfo->fullInfo, ", PC-88VA"); ++ if(pic.mode & 1) ++ strcat(pinfo->fullInfo, ", HR"); ++ if(pic.mode & 2) ++ strcat(pinfo->fullInfo, ", tiled 256"); ++ break; ++ case 0x2: ++ strcat(pinfo->fullInfo, ", FM-TOWNS"); ++ if(pic.mode == 0x5){ ++ strcat(pinfo->fullInfo, ", low-resolution"); ++ }else{ ++ strcat(pinfo->fullInfo, ", high-resolution"); ++ } ++ break; ++ case 0x3: ++ strcat(pinfo->fullInfo, ", Macintosh"); ++ break; ++ case 0xf: ++ ; ++ } ++ sprintf(buf, " (%ld bytes)", pic.fsize); ++ strcat(pinfo->fullInfo, buf); ++ sprintf(pinfo->shrtInfo, "%dx%d(aspect %4.2f) PIC.", ++ pinfo->w, pinfo->h, pic.aspect); ++ if (!nopicadjust) ++ normaspect = pic.aspect; ++ ++ pic_cleanup_pic_info(&pic, 0); ++ if(DEBUG) fputs("\n", stderr); ++ return 1; ++} ++ ++static void pic_open_file(pi, fname) ++ struct pic_info *pi; ++ char *fname; ++{ ++ if((pi->fp = fopen(fname, "rb")) == NULL) ++ pic_file_error(pi, PIC_OPEN); ++ fseek(pi->fp, (size_t) 0, SEEK_END); ++ pi->fsize = ftell(pi->fp); ++ fseek(pi->fp, (size_t) 0, SEEK_SET); ++} ++ ++static void pic_check_id(pi) ++ struct pic_info *pi; ++{ ++ char buf[3]; ++ if(fread(buf, (size_t) 3, (size_t) 1, pi->fp) != 1) ++ pic_file_error(pi, PIC_CORRUPT); ++ if(strncmp(buf, pic_id, (size_t) 3) != 0) ++ pic_error(pi, PIC_FORMAT); ++} ++ ++static void pic_read_comment(pi, comm) ++ struct pic_info *pi; ++ char **comm; ++{ ++ /* The comment field is like: ++ * comment-string ^Z dummy \0 \0 ++ */ ++ int max = -1, i = 0; ++ int c; ++ ++ while(1){ ++ if((c = fgetc(pi->fp)) == EOF) ++ pic_file_error(pi, PIC_CORRUPT); ++ if(c == '\032') /* 0x1a, '^Z' */ ++ break; ++ if(max < i){ ++ max += 32; ++ *comm = pic_realloc(*comm, (size_t) max + 1, "pic_read_comment#1"); ++ } ++ (*comm)[i++] = c; ++ } ++ ++ if(max < i){ ++ max++; ++ *comm = pic_realloc(*comm, (size_t) max + 1, "pic_read_comment#2"); ++ } ++ (*comm)[i] = '\0'; ++ ++ while((c = fgetc(pi->fp)) != '\0'){ /* skip the dummy area */ ++ if(c == EOF) ++ pic_file_error(pi, PIC_CORRUPT); ++ } ++ ++ if(fgetc(pi->fp) != '\0') /* check the reserved byte */ ++ pic_error(pi, PIC_SUPPORT); ++} ++ ++static void pic_read_header(pi) ++ struct pic_info *pi; ++{ ++ pi->mode = pic_read_bits(pi, 4); ++ pi->type = pic_read_bits(pi, 4); ++ pi->cbits = pic_read_bits(pi, 16); ++ pi->width = pic_read_bits(pi, 16); ++ pi->height = pic_read_bits(pi, 16); ++ ++ /* machine-dependent setup. */ ++ switch(pi->type){ ++ case 0x0: /* X68K */ ++ if(pi->mode != 0) ++ pic_error(pi, PIC_MODE); ++ switch(pi->cbits){ ++ case 4: ++ pi->aspect = 1.0; ++ pi->g_bits = pi->r_bits = pi->b_bits = 5; ++ pi->i_bits = 1; ++ pi->cmapped = 1; ++ break; ++ ++ case 8: ++ pi->aspect = 4.0 / 3.0; ++ pi->g_bits = pi->r_bits = pi->b_bits = 5; ++ pi->i_bits = 1; ++ pi->cmapped = 1; ++ break; ++ ++ case 15: ++ pi->aspect = 4.0 / 3.0; ++ pi->g_bits = pi->r_bits = pi->b_bits = 5; ++ pi->cached = 1; ++ break; ++ ++ case 16: ++ pi->aspect = 4.0 / 3.0; ++ pi->g_bits = pi->r_bits = pi->b_bits = 5; ++ pi->i_bits = 1; ++ pi->cached = 1; ++ break; ++ ++ default: ++ pic_error(pi, PIC_NUM_COLORS); ++ } ++ break; ++ ++ case 0x1: /* PC-88VA */ ++ if(pi->height > 1000) ++ pic_error(pi, PIC_SIZE); ++ switch(pi->width * 1000 + pi->height){ ++ case 640400: ++ case 640204: ++ case 640200: ++ case 320408: ++ case 320400: ++ case 320200: ++ break; ++ default: ++ pic_error(pi, PIC_SIZE); ++ } ++ pi->aspect = 400.0 / pi->height; ++ pi->aspect *= pi->width / 640.0; ++ if(pi->mode & 0x1) /* HR mode */ ++ pi->aspect *= 2.0; ++ if(pi->mode & 0x2){ /* tiled 256 format */ ++ if(pi->cbits != 16) ++ pic_error(pi, PIC_NUM_COLORS); ++ pi->tiled256 = 1; ++ } ++ switch(pi->cbits){ ++ case 8: ++ pi->g_bits = pi->r_bits = 3; ++ pi->b_bits = 2; ++ break; ++ ++ case 12: ++ pi->g_bits = pi->r_bits = pi->b_bits = 4; ++ pi->cached = 1; ++ break; ++ ++ case 16: ++ pi->g_bits = 6; ++ pi->r_bits = pi->b_bits = 5; ++ pi->cached = 1; ++ break; ++ ++ default: ++ pic_error(pi, PIC_NUM_COLORS); ++ } ++ break; ++ ++ case 0x2: /* FM-TOWNS */ ++ if(pi->cbits != 15) ++ pic_error(pi, PIC_NUM_COLORS); ++ switch(pi->mode){ ++ case 0x5: ++ case 0xc: ++ break; ++ default: ++ pic_error(pi, PIC_MODE); ++ } ++ pi->g_bits = pi->r_bits = pi->b_bits = 5; ++ pi->cached = 1; ++ break; ++ ++ case 0x3: /* MAC */ ++ if(pi->cbits != 15) ++ pic_error(pi, PIC_NUM_COLORS); ++ pi->r_bits = pi->g_bits = pi->b_bits = 5; ++ pi->inv_gr = 1; ++ break; ++ ++ case 0xf: /* misc */ ++ { ++ byte ah, al; ++ ++ switch(pi->mode){ ++ case 0x0: ++ break; ++ case 0x1: ++ pi->aspect = 4.0 / 3.0; ++ break; ++ case 0xf: ++ break; ++ default: ++ pic_error(pi, PIC_MODE); ++ } ++ pic_read_bits(pi, 16); /* x */ ++ pic_read_bits(pi, 16); /* y */ ++ ah = pic_read_bits(pi, 8); ++ al = pic_read_bits(pi, 8); ++ if(ah > 0 && al > 0) ++ pi->aspect = (float) al / (int) ah; ++ else if(pi->mode == 0xf) ++ pic_error(pi, PIC_ASPECT); ++ switch(pi->cbits){ ++ case 4: ++ case 8: ++ pi->g_bits = pi->r_bits = pi->b_bits = pic_read_bits(pi, 8); ++ pi->cmapped = 1; ++ break; ++ ++ case 12: ++ pi->g_bits = pi->r_bits = pi->b_bits = 4; ++ pi->cached = 1; ++ break; ++ ++ case 15: ++ pi->g_bits = pi->r_bits = pi->b_bits = 5; ++ pi->cached = 1; ++ break; ++ ++ case 16: ++ pi->g_bits = pi->r_bits = pi->b_bits = 5; ++ pi->i_bits = 1; ++ pi->cached = 1; ++ break; ++ ++ case 24: ++ pi->g_bits = pi->r_bits = pi->b_bits = 8; ++ pi->cached = 1; ++ break; ++ ++ case 32: ++ pic_error(pi, PIC_SUPPORT); ++ break; ++ ++ default: ++ pic_error(pi, PIC_NUM_COLORS); ++ } ++ } ++ break; ++ ++ default: ++ pic_error(pi, PIC_TYPE); ++ } ++ ++ pi->numcols = 1 << pi->cbits; ++ ++ /* read palette data */ ++ if(pi->cmapped){ ++ int i; ++ pi->cmap = pic_malloc((size_t) 3 * pi->numcols, "pic_read_header#1"); ++ for(i = 0; i < pi->numcols; i++){ ++ data32 c = pic_read_rgb(pi); ++ pi->cmap[i * 3 ] = c >> 16 & 0xff; ++ pi->cmap[i * 3 + 1] = c >> 8 & 0xff; ++ pi->cmap[i * 3 + 2] = c & 0xff; ++ } ++ } ++ ++ /* setup color code cache */ ++ if(pi->cached) ++ pic_cache_init(pi); ++ ++ ++ pi->data = pic_malloc(sizeof(data32) * pi->width * pi->height, // GRR POSSIBLE OVERFLOW / FIXME ++ "pic_read_header#2"); ++ { ++ int i; ++ for(i = 0; i < pi->width * pi->height; i++) ++ pi->data[i] = 0xffffffff; ++ } ++ ++ if(DEBUG) ++ pic_show_pic_info(pi); ++} ++ ++/* The main routine to expand a PIC file. */ ++static void pic_expand_data(pi) ++ struct pic_info *pi; ++{ ++ int cnt; ++ data32 c; ++ pi->data[0] = c = 0; ++ for(cnt = -1; cnt < pi->width * pi->height; ){ ++ int len = pic_expanding_read_len(pi); ++ cnt += len; ++ if(cnt < pi->width * pi->height){ ++ int x = cnt % pi->width; ++ int y = cnt / pi->width; ++ data32 c = pic_expanding_read_color(pi); ++ pic_expanding_read_chain(pi, x, y, c); ++ } ++ } ++} ++ ++static int pic_expanding_read_len(pi) ++ struct pic_info *pi; ++{ ++ int len; ++ byte bits; ++ for(len = 2, bits = 1; pic_read_bits(pi, 1) == 1; bits++) ++ len <<= 1; ++ return len - 1 + pic_read_bits(pi, bits); ++} ++ ++static data32 pic_expanding_read_color(pi) ++ struct pic_info *pi; ++{ ++ if(pi->cached){ ++ byte b = pic_read_bits(pi, 1); ++ if(b){ ++ return pic_cache_get_value(pi, (int) pic_read_bits(pi, 7)); ++ }else{ ++ data32 c = pic_read_color_code(pi); ++ pic_cache_add_value(pi, c); ++ return c; ++ } ++ } ++ return pic_read_color_code(pi); ++} ++ ++static void pic_expanding_read_chain(pi, x, y, c) ++ struct pic_info *pi; ++ int x, y; ++ data32 c; ++{ ++ pi->data[y * pi->width + x] = c; ++ if(pic_read_bits(pi, 1) == 1){ ++ int fin = 0; ++ while(!fin){ ++ switch(pic_read_bits(pi, 2)){ ++ case 1: /* left */ ++ pi->data[(++y) * pi->width + (--x)] = c; ++ break; ++ case 2: /* middle */ ++ pi->data[(++y) * pi->width + x ] = c; ++ break; ++ case 3: /* right */ ++ pi->data[(++y) * pi->width + (++x)] = c; ++ break; ++ case 0: /* far or nothing */ ++ if(pic_read_bits(pi, 1) == 0) ++ fin = 1; ++ else{ ++ if(pic_read_bits(pi, 1) == 0) ++ pi->data[(++y) * pi->width + (x -= 2)] = c; ++ else ++ pi->data[(++y) * pi->width + (x += 2)] = c; ++ } ++ } ++ } ++ } ++} ++ ++/* ++ * Make a picture from the expanded data. ++ */ ++static void pic_make_xvpic(pi, xp, rp, gp, bp) ++ struct pic_info *pi; ++ byte **xp, *rp, *gp, *bp; ++{ ++ if(pi->cmapped){ ++ if(pi->tiled256) ++ *xp = pic_malloc((size_t) pi->width * pi->height * 2, // GRR POSSIBLE OVERFLOW / FIXME ++ "pic_make_xvpic#1"); ++ else ++ *xp = pic_malloc((size_t) pi->width * pi->height, // GRR POSSIBLE OVERFLOW / FIXME ++ "pic_make_xvpic#2"); ++ }else ++ *xp = pic_malloc((size_t) pi->width * pi->height * 3, // GRR POSSIBLE OVERFLOW / FIXME ++ "pic_make_xvpic#3"); ++ ++ if(pi->cmapped){ ++ int i; ++ ++ for(i = 0; i < pi->numcols; i++){ ++ rp[i] = pi->cmap[i * 3 ]; ++ gp[i] = pi->cmap[i * 3 + 1]; ++ bp[i] = pi->cmap[i * 3 + 2]; ++ } ++ ++ if(pi->tiled256){ ++ int pic_idx = 0, dat_idx; ++ data16 col = 0; ++ for(dat_idx = 0; dat_idx < pi->width * pi->height; dat_idx++){ ++ if(pi->data[dat_idx] != 0xffffffff) ++ col = pi->data[dat_idx]; ++ (*xp)[pic_idx++] = col & 0xff; ++ (*xp)[pic_idx++] = col >> 8 & 0xff; ++ dat_idx++; ++ } ++ }else{ ++ int pic_idx = 0, dat_idx; ++ byte col = 0; ++ for(dat_idx = 0; dat_idx < pi->width * pi->height; dat_idx++){ ++ if(pi->data[dat_idx] != 0xffffffff) ++ col = pi->data[dat_idx]; ++ (*xp)[pic_idx++] = col; ++ } ++ } ++ }else{ ++ int pic_idx = 0, dat_idx; ++ byte r = 0, g = 0, b = 0; ++ for(dat_idx = 0; dat_idx < pi->width * pi->height; dat_idx++){ ++ if(pi->data[dat_idx] != 0xffffffff){ ++ data32 col = pi->data[dat_idx]; ++ r = col >> 16 & 0xff; ++ g = col >> 8 & 0xff; ++ b = col & 0xff; ++ } ++ (*xp)[pic_idx++] = r; ++ (*xp)[pic_idx++] = g; ++ (*xp)[pic_idx++] = b; ++ } ++ } ++} ++ ++ ++/* The main routine to write PIC file. */ ++int WritePIC(fp, pic0, ptype, w, h, rmap, gmap, bmap, numcols, colorstyle, ++ comment) ++ FILE *fp; ++ byte *pic0; ++ int ptype, w, h; ++ byte *rmap, *gmap, *bmap; ++ int numcols, colorstyle; ++ char *comment; ++{ ++ struct pic_info pic; ++ int e; ++ ++ if(DEBUG) fputs("WritePIC:\n", stderr); ++ ++ pic_init_info(&pic); ++ pic.fp = fp; ++ pic.width = w; ++ pic.height = h; ++ pic.writing_grey = (colorstyle == F_GREYSCALE); ++ if(ptype != PIC24){ /* PIC8 */ ++ pic.cmapped = 1; ++ pic.cached = 0; ++ pic.cbits = 8; ++ pic.g_bits = ++ pic.r_bits = ++ pic.b_bits = 8; ++ pic.i_bits = 0; ++ pic.numcols = numcols; ++ }else{ /* PIC24 */ ++ pic.cmapped = 0; ++ pic.cached = 1; ++ pic.cbits = 24; ++ pic.g_bits = ++ pic.r_bits = ++ pic.b_bits = 8; ++ pic.i_bits = 0; ++ pic.numcols = 1 << 24; ++ pic_cache_init(&pic); ++ } ++ ++ if((e = setjmp(pic.jmp)) != 0){ ++ /* When an error occurs while writing, comes here. */ ++ pic_cleanup_pic_info(&pic, 1); ++ if(DEBUG) fputs("\n", stderr); ++ return -1; ++ } ++ ++ pic_write_id(&pic); ++ pic_write_comment(&pic, comment); ++ pic_write_header(&pic); ++ if(pic.cmapped) ++ pic_write_palette(&pic, rmap, gmap, bmap); ++ pic_make_sparse_data(&pic, pic0); ++ pic_write_data(&pic); ++ pic_write_bits(&pic, 0, 8); ++ ++ pic_cleanup_pic_info(&pic, 1); ++ if(DEBUG) fputs("\n", stderr); ++ return 0; ++} ++ ++static void pic_write_id(pi) ++ struct pic_info *pi; ++{ ++ if(fwrite("PIC", (size_t) 3, (size_t) 1, pi->fp) != 1) ++ pic_file_error(pi, PIC_WRITE); ++} ++ ++static void pic_write_comment(pi, comm) ++ struct pic_info *pi; ++ char *comm; ++{ ++ if(comm){ ++ while(*comm){ ++ int c = *comm; ++ if(c == '\032') ++ c = ' '; ++ if(fputc(*comm, pi->fp) == EOF) ++ pic_file_error(pi, PIC_WRITE); ++ comm++; ++ } ++ } ++ /* write ^Z, 0, and reserved. */ ++ if(fwrite("\032\0\0", (size_t)3, (size_t) 1, pi->fp) != 1) ++ pic_file_error(pi, PIC_WRITE); ++} ++ ++static void pic_write_header(pi) ++ struct pic_info *pi; ++{ ++ if(DEBUG) pic_show_pic_info(pi); ++ pic_write_bits(pi, (data32) 0, 4); /* mode: 1:1 */ ++ pic_write_bits(pi, (data32) 0xf, 4); /* type: misc */ ++ pic_write_bits(pi, (data32) pi->cbits, 16); /* bits */ ++ pic_write_bits(pi, (data32) pi->width, 16); /* width */ ++ pic_write_bits(pi, (data32) pi->height, 16); /* height */ ++ pic_write_bits(pi, (data32) 0xffff, 16); /* x: unused */ ++ pic_write_bits(pi, (data32) 0xffff, 16); /* y: unused */ ++ pic_write_bits(pi, (data32) 0x0101, 16); /* real aspect */ ++} ++ ++static void pic_write_palette(pi, r, g, b) ++ struct pic_info *pi; ++ byte *r, *g, *b; ++{ ++ int i; ++ data32 rgb = 0; ++ pic_write_bits(pi, (data32) pi->g_bits, 8); ++ for(i = 0; i < pi->numcols; i++){ ++ rgb = (data32) *r++ << 16 | (data32) *g++ << 8 | (data32) *b++; ++ pic_write_rgb(pi, rgb); ++ } ++ for( ; i < 256; i++) ++ pic_write_rgb(pi, rgb); ++} ++ ++static void pic_make_sparse_data(pi, dat) ++ struct pic_info *pi; ++ byte *dat; ++{ ++ int i; ++ data32 c; ++ ++ pi->data = pic_malloc(sizeof(data32) * pi->width * pi->height, // GRR POSSIBLE OVERFLOW / FIXME ++ "pic_make_sparse_data"); ++ ++ if(pi->cmapped){ ++ c = 0; ++ for(i = 0; i < pi->width * pi->height; i++){ ++ if(c != dat[i]) ++ c = pi->data[i] = dat[i]; ++ else ++ pi->data[i] = 0xffffffff; ++ } ++ }else{ ++ int j = 0; ++ c = 0; ++ for(i = 0; i < pi->width * pi->height; i++){ ++ data32 r, g, b, t; ++ r = dat[j++]; ++ g = dat[j++]; ++ b = dat[j++]; ++ t = r << 16 | g << 8 | b; ++ if(c != t) ++ c = pi->data[i] = t; ++ else ++ pi->data[i] = 0xffffffff; ++ } ++ } ++} ++ ++static void pic_write_data(pi) ++ struct pic_info *pi; ++{ ++ int i; ++ int max = pi->width * pi->height; ++ data32 c = 0; ++ ++ i = -1; ++ while(i < max){ ++ int j; ++ for(j = i + 1; j < max; j++){ ++ if(pi->data[j] != 0xffffffff) ++ break; ++ } ++ pic_write_length(pi, (data32) j - i); ++ i = j; ++ if(i < max){ ++ pic_write_color(pi, c = pi->data[i]); ++ pic_write_chain(pi, i % pi->width, i / pi->width, c); ++ } ++ } ++} ++ ++static void pic_write_length(pi, len) ++ struct pic_info *pi; ++ data32 len; ++{ ++ int bits = 0; /* leading 1's */ ++ int max = 2; ++ ++ while(len > max){ ++ max = (max + 1) * 2; ++ bits++; ++ } ++ pic_write_bits(pi, 0xffffffff, bits); ++ pic_write_bits(pi, 0, 1); ++ pic_write_bits(pi, len - max / 2, bits + 1); ++} ++ ++static void pic_write_color(pi, c) ++ struct pic_info *pi; ++ data32 c; ++{ ++ if(pi->cached){ ++ int idx = pic_cache_lookup(pi, c); ++ if(idx < 0){ /* not found */ ++ pic_write_bits(pi, 0, 1); ++ pic_write_color_code(pi, c); ++ pic_cache_add_value(pi, c); ++ }else{ /* found */ ++ pic_write_bits(pi, (data32) 0xffffffff, 1); ++ pic_write_bits(pi, (data32) idx, 7); ++ } ++ }else ++ pic_write_color_code(pi, c); ++} ++ ++static void pic_write_chain(pi, x, y, c) ++ struct pic_info *pi; ++ int x, y; ++ data32 c; ++{ ++ int ctr = (y + 1) * pi->width + x; ++ ++ if(y < pi->height - 1 && ++ ( pi->data[ctr ] == c || ++ (x > 0 && pi->data[ctr - 1] == c) || ++ (x < pi->width - 1 && pi->data[ctr + 1] == c) || ++ (x > 1 && pi->data[ctr - 2] == c) || ++ (x < pi->width - 2 && pi->data[ctr + 2] == c))){ ++ pic_write_bits(pi, 1, 1); ++ while(++y < pi->height){ ++ if(pi->data[ctr] == c){ /* center */ ++ pic_write_bits(pi, 2, 2); ++ pi->data[ctr] = 0xffffffff; ++ ctr += pi->width; ++ }else if(x > 0 && pi->data[ctr - 1] == c){ /* left */ ++ pic_write_bits(pi, 1, 2); ++ pi->data[ctr - 1] = 0xffffffff; ++ ctr += pi->width - 1; ++ }else if(x < pi->width - 1 && pi->data[ctr + 1] == c){/* right */ ++ pic_write_bits(pi, 3, 2); ++ pi->data[ctr + 1] = 0xffffffff; ++ ctr += pi->width + 1; ++ }else if(x > 1 && pi->data[ctr - 2] == c){ /* 2-left */ ++ pic_write_bits(pi, 2, 4); ++ pi->data[ctr - 2] = 0xffffffff; ++ ctr += pi->width - 2; ++ }else if(x < pi->width - 2 && pi->data[ctr + 2] == c){/* 2-right */ ++ pic_write_bits(pi, 3, 4); ++ pi->data[ctr + 2] = 0xffffffff; ++ ctr += pi->width + 2; ++ }else /* nothing */ ++ break; ++ } ++ pic_write_bits(pi, 0, 3); ++ }else ++ pic_write_bits(pi, 0, 1); ++} ++ ++ ++/* ++ * These 4 functions read or write a color. ++ * ++ * pic_read_rgb: ++ * reads an RGB. Each bit length is [rgb]_bits, but ++ * it is expanded to 8bits when returned. ++ * ++ * pic_read_color_code: ++ * reads a color code, whose length is cbits. ++ * It is the index to the colormap or RGB itself. ++ * ++ * pic_write_rgb: ++ * writes an RGB value. ++ * ++ * pic_write_color_code: ++ * writes a color code. ++ */ ++static data32 pic_read_rgb(pi) ++ struct pic_info *pi; ++{ ++ int rb = pi->r_bits, gb = pi->g_bits, bb = pi->b_bits; ++ byte r, g, b; ++ if(pi->inv_gr){ ++ r = pic_read_bits(pi, rb); ++ g = pic_read_bits(pi, gb); ++ }else{ ++ g = pic_read_bits(pi, gb); ++ r = pic_read_bits(pi, rb); ++ } ++ b = pic_read_bits(pi, bb); ++ if(pi->i_bits){ ++ byte i; ++ i = pic_read_bits(pi, pi->i_bits); ++ r = r << pi->i_bits | i; ++ g = g << pi->i_bits | i; ++ b = b << pi->i_bits | i; ++ rb += pi->i_bits; ++ gb += pi->i_bits; ++ bb += pi->i_bits; ++ } ++ r = pic_pad_bit(rb, r); ++ g = pic_pad_bit(gb, g); ++ b = pic_pad_bit(bb, b); ++ ++ return (data32) r << 16 | (data32) g << 8 | (data32) b; ++} ++ ++static data32 pic_read_color_code(pi) ++ struct pic_info *pi; ++{ ++ if(pi->cmapped) ++ return pic_read_bits(pi, pi->cbits); ++ return pic_read_rgb(pi); ++} ++ ++static void pic_write_rgb(pi, rgb) ++ struct pic_info *pi; ++ data32 rgb; ++{ ++ byte r = rgb >> 16; ++ byte g = rgb >> 8; ++ byte b = rgb; ++ if(pi->writing_grey) ++ r = g = b = MONO(r, g, b); ++ pic_write_bits(pi, g, pi->g_bits); ++ pic_write_bits(pi, r, pi->r_bits); ++ pic_write_bits(pi, b, pi->b_bits); ++} ++ ++static void pic_write_color_code(pi, code) ++ struct pic_info *pi; ++ data32 code; ++{ ++ if(pi->cmapped){ ++ pic_write_bits(pi, code, pi->cbits); ++ }else{ ++ pic_write_rgb(pi, code); ++ } ++} ++ ++ ++/* ++ * These pic_cache_* functions are an implementation of the color cache. ++ * ++ * pic_cache_init: ++ * initializes the cache. ++ * ++ * pic_cache_get_value: ++ * gets a color indexed by the argument `idx'. ++ * It updates the `most recently used' time. ++ * ++ * pic_cache_add_value: ++ * adds a color to the top of the cache list. ++ */ ++static void pic_cache_init(pi) ++ struct pic_info *pi; ++{ ++ int i; ++ pi->cache.node = pic_malloc(sizeof(struct cachenode_t) * 128, ++ "pic_cache_init"); ++ for(i = 0; i < 128; i++){ ++ pi->cache.node[i].newer = i + 1; ++ pi->cache.node[i].older = i - 1; ++ pi->cache.node[i].dat = 0; ++ } ++ pi->cache.node[ 0].older = 127; ++ pi->cache.node[127].newer = 0; ++ pi->cache.newest = 0; ++} ++ ++static data32 pic_cache_get_value(pi, idx) ++ struct pic_info *pi; ++ int idx; ++{ ++ struct cachenode_t *p = pi->cache.node; ++ int n = pi->cache.newest; ++ if(n != idx){ ++ p[p[idx].newer].older = p[idx].older; ++ p[p[idx].older].newer = p[idx].newer; ++ ++ p[p[n].newer].older = idx; ++ p[idx].newer = p[n].newer; ++ p[n].newer = idx; ++ p[idx].older = n; ++ ++ pi->cache.newest = idx; ++ } ++ return pi->cache.node[idx].dat; ++} ++ ++static void pic_cache_add_value(pi, dat) ++ struct pic_info *pi; ++ data32 dat; ++{ ++ pi->cache.newest = pi->cache.node[pi->cache.newest].newer; ++ pi->cache.node[pi->cache.newest].dat = dat; ++} ++ ++static int pic_cache_lookup(pi, dat) ++ struct pic_info *pi; ++ data32 dat; ++{ ++ int i; ++ for(i = 0; i < 128; i++){ ++ if(pi->cache.node[i].dat == dat){ ++ pic_cache_get_value(pi, i); ++ return i; ++ } ++ } ++ return -1; ++} ++ ++ ++/* ++ * These pic_{read,write}_bits functions access the bit stream. ++ * pic_read_bits: ++ * reads the specified bits from the file. ++ * ++ * pic_write_bits: ++ * writes the specified bits to the file. ++ */ ++static data32 pic_read_bits(pi, bits) ++ struct pic_info *pi; ++ int bits; ++{ ++ data32 r = 0; ++ ++ while(bits > 0){ ++ while(pi->bs.rest > 0 && bits > 0){ ++ r = (r << 1) | (pi->bs.cur & 0x80 ? 1 : 0); ++ pi->bs.cur <<= 1; ++ pi->bs.rest--; ++ bits--; ++ } ++ if(bits > 0){ ++ int c; ++ if((c = fgetc(pi->fp)) == EOF){ ++ pic_file_warning(pi, PIC_CORRUPT); ++ c = 0; ++ } ++ pi->bs.cur = c; ++ pi->bs.rest = 8; ++ } ++ } ++ ++ return r; ++} ++ ++static void pic_write_bits(pi, dat, bits) ++ struct pic_info *pi; ++ data32 dat; ++ int bits; ++{ ++ data32 dat_mask = 1 << (bits - 1); ++ while(bits > 0){ ++ while(pi->bs.rest < 8 && bits > 0){ ++ pi->bs.cur <<= 1; ++ if(dat & dat_mask) ++ pi->bs.cur |= 1; ++ pi->bs.rest++; ++ bits--; ++ dat_mask >>= 1; ++ } ++ if(pi->bs.rest >= 8){ ++ if(fputc((int)pi->bs.cur, pi->fp) == EOF) ++ pic_error(pi, PIC_WRITE); ++ pi->bs.cur = 0; ++ pi->bs.rest = 0; ++ } ++ } ++} ++ ++ ++/* ++ * This function extends sub-8-bit data to 8-bit data using bit-replication. ++ */ ++static byte pic_pad_bit(bits, dat) ++ int bits; ++ data32 dat; ++{ ++ switch(bits){ ++ case 1: ++ if(dat & 1) ++ dat = 0xff; ++ else ++ dat = 0; ++ break; ++ case 2: ++ dat = dat << 6 | dat << 4 | dat << 2 | dat; ++ break; ++ case 3: ++ dat = dat << 5 | dat << 2 | dat >> 1; ++ break; ++ case 4: ++ dat = dat << 4 | dat; ++ break; ++ case 5: ++ dat = dat << 3 | dat >> 2; ++ break; ++ case 6: ++ dat = dat << 2 | dat >> 4; ++ break; ++ case 7: ++ dat = dat << 1 | dat >> 6; ++ } ++ ++ return dat; ++} ++ ++/* ++ * These functions initialize or clean up structures. ++ * pic_init_info: ++ * initializes a pic_info structure. ++ * pic_cleanup_pic_info: ++ * cleans up a pic_info structure. ++ * pic_cleanup_pinfo: ++ * cleans up a PICINFO structure. ++ */ ++static void pic_init_info(pi) ++ struct pic_info *pi; ++{ ++ pi->fp = NULL; ++ pi->bs.rest = 0; ++ pi->bs.cur = '\0'; ++ pi->type = pi->mode = 0; ++ pi->width = pi->height = 0; ++ pi->aspect = 1.0; ++ pi->cbits = 0; ++ pi->cmapped = pi->cached = 0; ++ pi->cache.node = NULL; ++ pi->cmap = NULL; ++ pi->g_bits = pi->r_bits = pi->b_bits = pi->i_bits = 0; ++ pi->inv_gr = 0; ++ pi->tiled256 = 0; ++ pi->numcols = 0; ++ pi->writing_grey = 0; ++} ++ ++static void pic_cleanup_pic_info(pi, writing) ++ struct pic_info *pi; ++ int writing; ++{ ++ if(!writing && pi->fp) ++ fclose(pi->fp); ++ if(pi->cmap) ++ free(pi->cmap); ++ if(pi->cache.node) ++ free(pi->cache.node); ++ if(pi->data) ++ free(pi->data); ++ pi->fp = NULL; ++ pi->cmap = NULL; ++ pi->cache.node = NULL; ++ pi->data = NULL; ++} ++ ++static void pic_cleanup_pinfo(pinfo) ++ PICINFO *pinfo; ++{ ++ if(pinfo->pic){ ++ free(pinfo->pic); ++ pinfo->pic = NULL; ++ } ++ if(pinfo->comment){ ++ free(pinfo->comment); ++ pinfo->comment = NULL; ++ } ++} ++ ++/* ++ * Error Handlers. ++ * pic_memory_error: ++ * shows an error message and terminates. ++ * pic_error: ++ * shows a non-file error message and jumps to the entry for errors. ++ * pic_file_error: ++ * shows a file error message and jumps to the entry for errors. ++ * pic_file_warning: ++ * shows a file warning message. ++ */ ++static void pic_memory_error(scm, fn) ++ char *scm, *fn; ++{ ++ char buf[128]; ++ sprintf(buf, "%s: can't allocate memory. (%s)", scm, fn); ++ FatalError(buf); ++} ++ ++static void pic_error(pi, mn) ++ struct pic_info *pi; ++ int mn; ++{ ++ SetISTR(ISTR_WARNING, "%s", pic_msgs[mn]); ++ longjmp(pi->jmp, 1); ++} ++ ++static void pic_file_error(pi, mn) ++ struct pic_info *pi; ++ int mn; ++{ ++ if(feof(pi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", pic_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", pic_msgs[mn], ERRSTR(errno)); ++ longjmp(pi->jmp, 1); ++} ++ ++static void pic_file_warning(pi, mn) ++ struct pic_info *pi; ++ int mn; ++{ ++ if(feof(pi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", pic_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", pic_msgs[mn], ERRSTR(errno)); ++} ++ ++static void pic_show_pic_info(pi) ++ struct pic_info *pi; ++{ ++ fprintf(stderr, " file size: %ld.\n", pi->fsize); ++ ++ fputs(" machine: ", stderr); ++ switch(pi->type){ ++ case 0x0: ++ fputs("X68k", stderr); ++ break; ++ case 0x1: ++ fputs("PC-88VA", stderr); ++ if(pi->mode & 1) ++ fputs(",HR", stderr); ++ if(pi->mode & 2) ++ fputs(",tiled256", stderr); ++ break; ++ case 0x2: ++ fprintf(stderr, ++ "FM-TOWNS,%s-resolution", pi->mode == 5 ? "low" : "high"); ++ break; ++ case 0x3: ++ fputs("Macintosh", stderr); ++ break; ++ case 0xf: ++ fputs("misc", stderr); ++ } ++ fputs("\n", stderr); ++ ++ fprintf(stderr, " image size: %dx%d\n", pi->width, pi->height); ++ fprintf(stderr, " aspect: %f\n", pi->aspect); ++ fprintf(stderr, " cache: %s\n", pi->cached ? "on" : "off"); ++ fprintf(stderr, " colormap: %s\n", pi->cmapped ? "on" : "off"); ++ fprintf(stderr, " number of color bits: %d\n", pi->cbits); ++ fprintf(stderr, " number of RGB bits: R%d,G%d,B%d,I%d\n", ++ pi->r_bits, pi->g_bits, pi->b_bits, pi->i_bits); ++ fprintf(stderr, " inverted G&R: %s\n", pi->inv_gr ? "true" : "false"); ++ fprintf(stderr, " number of colors: %d\n", pi->numcols); ++} ++ ++/* Memory related routines. */ ++static void *pic_malloc(n, fn) ++ size_t n; ++ char *fn; ++{ ++ void *r = (void *) malloc(n); ++ if(r == NULL) ++ pic_memory_error("malloc", fn); ++ return r; ++} ++ ++static void *pic_realloc(p, n, fn) ++ void *p; ++ size_t n; ++ char *fn; ++{ ++ void *r = (p == NULL) ? (void *) malloc(n) : (void *) realloc(p, n); ++ if(r == NULL) ++ pic_memory_error("realloc", fn); ++ return r; ++} ++#endif /* HAVE_PIC */ +diff -ruN xv-3.10a-bugfixes/xvpic2.c xv-3.10a-enhancements/xvpic2.c +--- xv-3.10a-bugfixes/xvpic2.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvpic2.c 2005-04-17 22:56:07.000000000 -0700 +@@ -0,0 +1,3608 @@ ++/* ++ * $Id: xvpic2.c,v 2.9.1.14 1995/04/24 15:34:15 ikeyan Exp $ ++ * xvpic2.c - load and save routines for `PIC2' format pictures. ++ * ++ * ++ * Outline ++ * ======= ++ * xvpic2.c supports the PIC2 format image file. It is used some ++ * Japanese personal computer users. ++ * ++ * The PIC2 format is designed by A.Yanagisawa. It is an excellent ++ * format except for its encode/decode speed. ;-) ++ * ++ * The features of the PIC2 format: ++ * - Powerful header information (included author, filename, title, ++ * saver, product number, created date and comment). ++ * - Reversible compression, and very high compression ratio (in many ++ * cases, a higher compression ratio than the JPEG compression; ++ * because of its compression method, PIC2 is especially good at ++ * pictures like cell animation). ++ * - Can handle full-color (24 bits) image. ++ * - Can include multi image blocks into one PIC2 file. ++ * - Have four different block format (P2SS, P2SF, P2BM and ++ * P2BI). P2SS format uses arithmetic compression for storing ++ * data. P2SF uses normal run-length compression. P2BM and P2BI is ++ * raw image format. Select any one according to the situation. ++ * ++ * Explanation of the PIC2 compression: ++ ++ * - In the first place, try to record pixel color, uses color caches ++ * which keep some recent colors, and formed according to color's ++ * frequency. PIC2 has some color cache spaces that are switched by ++ * upper pixel value of current pixel. If cache is hit, record ++ * that. ++ * - Unfortunately, in the case of color cache didn't hit, record the ++ * difference from the value estimated with the value of upper and ++ * left pixel of current pixel (similar to PNG's AVG predictor). ++ * - And extract image's color chain if exist, and record that (it ++ * results in image's outline). ++ * - In all cases, arithmetic compression is used in the final stage ++ * before writing the file, which in theory produces the ideal ++ * compression ratio (P2SS). ++ * ++ * Features ++ * ======== ++ * - Support 3,6,9,12,15,18,21,24bit PIC2 format (Load/Save). ++ * - Support all image block formats of PIC2 (Load/Save). ++ * - Support multi block PIC2 file (Load/Save). ++ * ++ * ++ * Bugs ++ * ==== ++ * - Unsupport 8bit PIC2 image file. ++ * ++ * If you find other bugs (surely exist :-)), send me bug-report. ++ * ++ * ++ * Author ++ * ====== ++ * IKEMOTO Masahiro ++ */ ++ ++#define PIC2_IGNORE_UNUSED_FUNCTIONS ++#define NEEDSDIR ++ ++#include "xv.h" ++#include ++ ++#ifdef HAVE_PIC2 ++ ++typedef unsigned long pixel; ++ ++#define pic2_cextoshort(addr) ( \ ++ (((short) (((byte *) addr)[0])) << 8) | \ ++ ( (short) (((byte *) addr)[1])) \ ++) ++#define pic2_cextolong(addr) ( \ ++ (((long) (((byte *) addr)[0])) << 24) | \ ++ (((long) (((byte *) addr)[1])) << 16) | \ ++ (((long) (((byte *) addr)[2])) << 8) | \ ++ ( (long) (((byte *) addr)[3])) \ ++) ++#define pic2_shorttocex(addr, n) { \ ++ ((byte *) addr)[0] = (((unsigned short) (n) >> 8) & 0xff); \ ++ ((byte *) addr)[1] = ( (unsigned short) (n) & 0xff); \ ++} ++#define pic2_longtocex(addr, n) { \ ++ ((byte *) addr)[0] = (((unsigned long) (n) >> 24) & 0xff); \ ++ ((byte *) addr)[1] = (((unsigned long) (n) >> 16) & 0xff); \ ++ ((byte *) addr)[2] = (((unsigned long) (n) >> 8) & 0xff); \ ++ ((byte *) addr)[3] = ( (unsigned long) (n) & 0xff); \ ++} ++#define pic2_shift_bits(b, n) (((n) > 0) ? ((b) << (n)) : ((b) >> -(n))) ++ ++#define PIC2_READ_MODE 0 ++#define PIC2_WRITE_MODE 1 ++ ++#define PIC2_ARITH_CACHE 32 ++#define PIC2_ARITH_CONTEXT 128 ++#define PIC2_FAST_CACHE 64 ++ ++#define PIC2_HEADER_SIZE 124 ++#define PIC2_BLOCK_HEADER_SIZE 26 ++ ++struct pic2_header { ++ char magic[4]; ++ char name[18]; ++ char subtitle[8]; ++ char crlf0[2]; ++ char title[30]; ++ char crlf1[2]; ++ char saver[30]; ++ char crlf2[2]; ++ char eof[1]; ++ char reserve0[1]; ++ short flag; ++ short no; ++ long time; ++ long size; ++ short depth; ++ short x_aspect; ++ short y_aspect; ++ short x_max; ++ short y_max; ++ long reserve1; ++}; ++ ++struct pic2_block { ++ char id[4]; ++ long size; ++ short flag; ++ short x_wid; ++ short y_wid; ++ short x_offset; ++ short y_offset; ++ long opaque; ++ long reserve; ++}; ++ ++struct pic2_info { ++ jmp_buf jmp; ++ FILE *fp; ++ struct { ++ int rest; ++ byte cur; ++ int bits; ++ char zero; ++ }bs; ++ long fsize; ++ struct pic2_header *header; ++ struct pic2_block *block; ++ int n_pal; ++ int pal_bits; ++ byte pal[256][3]; ++ char *comment; ++ char mode; ++ long next_pos; ++ long block_pos; ++ short x_max; ++ short y_max; ++ int ynow; ++ byte *buf; ++ pixel *vram_prev; ++ pixel *vram_now; ++ pixel *vram_next; ++ short *flag_now; ++ short *flag_next; ++ short *flag2_now; ++ short *flag2_next; ++ short *flag2_next2; ++ pixel (*cache)[PIC2_ARITH_CACHE]; ++ unsigned short *cache_pos; ++ unsigned short *mulu_tab; ++ long aa; ++ long cc; ++ long dd; ++ char cache_hit_c; ++ int (*next_line) PARM((struct pic2_info *, pixel **)); ++ char writing_grey; ++ char pagebname[64]; ++ int pnum; ++}; ++ ++static void pic2_open_file PARM((struct pic2_info*,char*)); ++static void pic2_read_header PARM((struct pic2_info*)); ++static void pic2_read_block_header1 PARM((struct pic2_info*)); ++static void pic2_read_block_header2 PARM((struct pic2_info*)); ++static short pic2_arith_decode_bit PARM((struct pic2_info*,int)); ++static short pic2_arith_decode_nn PARM((struct pic2_info*,int)); ++static void pic2_arith_expand_chain PARM((struct pic2_info*,int,int,pixel)); ++static short pic2_arith_get_number PARM((struct pic2_info*,int,int)); ++static pixel pic2_arith_read_color PARM((struct pic2_info*,int)); ++static int pic2_arith_expand_line PARM((struct pic2_info*,pixel**)); ++static int pic2_arith_loader_init PARM((struct pic2_info*)); ++static int pic2_fast_read_length PARM((struct pic2_info*)); ++static void pic2_fast_expand_chain PARM((struct pic2_info*,int,pixel)); ++static pixel pic2_fast_read_color PARM((struct pic2_info*,pixel)); ++static int pic2_fast_expand_line PARM((struct pic2_info*,pixel**)); ++static int pic2_fast_loader_init PARM((struct pic2_info*)); ++static int pic2_beta_expand_line PARM((struct pic2_info*,pixel**)); ++static int pic2_beta_loader_init PARM((struct pic2_info*)); ++static void pic2_make_xvpic PARM((struct pic2_info*,byte**, ++ byte*,byte*,byte*)); ++static void pic2_make_pagefile PARM((struct pic2_info*,char*,int)); ++static void pic2_setup_pic2_info PARM((struct pic2_info*, ++ char*,char*,char*,char*, ++ int,int,int,int,int,int,char *)); ++static void pic2_append PARM((struct pic2_info*)); ++static void pic2_write_header1 PARM((struct pic2_info*)); ++static void pic2_write_header2 PARM((struct pic2_info*)); ++static void pic2_write_block_header PARM((struct pic2_info*)); ++static void pic2_arith_write_zero_bit PARM((struct pic2_info*)); ++static void pic2_arith_flush_bit_buf PARM((struct pic2_info*)); ++static void pic2_arith_carry_bit PARM((struct pic2_info*)); ++static void pic2_arith_encode_bit PARM((struct pic2_info*,int,int)); ++static void pic2_arith_encode_nbyte PARM((struct pic2_info*,int,int,int)); ++static void pic2_arith_encode_nn PARM((struct pic2_info*,int,int)); ++static void pic2_arith_press_chain PARM((struct pic2_info*,int)); ++static void pic2_arith_put_number PARM((struct pic2_info*,int,int,int)); ++static void pic2_arith_write_color PARM((struct pic2_info*,int)); ++static void pic2_arith_press_line2 PARM((struct pic2_info*)); ++static int pic2_arith_press_line PARM((struct pic2_info*,pixel**)); ++static int pic2_arith_saver_init PARM((struct pic2_info*,pixel**)); ++static void pic2_fast_write_length PARM((struct pic2_info*,int)); ++static void pic2_fast_press_chain PARM((struct pic2_info*,int)); ++static void pic2_fast_press_chain2 PARM((struct pic2_info*,int)); ++static void pic2_fast_flush_chain PARM((struct pic2_info*)); ++static void pic2_fast_write_color PARM((struct pic2_info*,int)); ++static void pic2_fast_press_line2 PARM((struct pic2_info*)); ++static int pic2_fast_press_line PARM((struct pic2_info*,pixel**)); ++static int pic2_fast_saver_init PARM((struct pic2_info*,pixel**)); ++static int pic2_beta_press_line PARM((struct pic2_info*,pixel**)); ++static int pic2_beta_saver_init PARM((struct pic2_info*,pixel**)); ++static void pic2_write_data PARM((struct pic2_info*,byte*, ++ int,int,int,int,int, ++ byte*,byte*,byte*,int,int)); ++static int pic2_next_line PARM((struct pic2_info*,pixel**)); ++static int pic2_next_block PARM((struct pic2_info*)); ++static int pic2_find_block PARM((struct pic2_info*)); ++static int pic2_load_block PARM((struct pic2_info*)); ++static int pic2_save_block PARM((struct pic2_info*,pixel**, ++ int,int,int,int,char*,pixel)); ++#ifndef PIC2_IGNORE_UNUSED_FUNCTIONS ++static void pic2_read_palette PARM((struct pic2_info*, ++ byte*,byte*,byte*)); ++static void pic2_write_palette PARM((struct pic2_info*,int,int, ++ byte*,byte*,byte*)); ++#endif /* !PIC2_IGNORE_UNUSED_FUNCTIONS */ ++static byte pic2_convert_color_bits PARM((int,int,int)); ++static byte pic2_pad_color_bits PARM((int,int,int)); ++static byte pic2_reduce_color_bits PARM((int,int,int)); ++static pixel pic2_exchange_rg PARM((pixel,int)); ++static void pic2_handle_para PARM((struct pic2_info*,int)); ++static int pic2_alloc_buffer PARM((struct pic2_info*)); ++static void pic2_free_buffer PARM((struct pic2_info*)); ++static long pic2_seek_file PARM((struct pic2_info*,long,int)); ++static long pic2_tell_file PARM((struct pic2_info*)); ++static int pic2_read_file PARM((struct pic2_info*,void*,size_t)); ++static long pic2_read_long PARM((struct pic2_info*)); ++static short pic2_read_short PARM((struct pic2_info*)); ++static char pic2_read_char PARM((struct pic2_info*)); ++static int pic2_write_file PARM((struct pic2_info*,void*,size_t)); ++static int pic2_write_long PARM((struct pic2_info*,long)); ++static int pic2_write_short PARM((struct pic2_info*,int)); ++static int pic2_write_char PARM((struct pic2_info*,int)); ++static unsigned long pic2_read_bits PARM((struct pic2_info*,int)); ++static void pic2_write_bits PARM((struct pic2_info*, ++ unsigned long,int)); ++static void pic2_flush_bits PARM((struct pic2_info*)); ++static void pic2_memory_error PARM((char*,char*)); ++static void pic2_error PARM((struct pic2_info*,int)); ++static void pic2_file_error PARM((struct pic2_info*,int)); ++static void pic2_init_info PARM((struct pic2_info*)); ++static void pic2_cleanup_pic2_info PARM((struct pic2_info*,int)); ++static void pic2_cleanup_pinfo PARM((PICINFO*)); ++static void pic2_show_pic2_info PARM((struct pic2_info*)); ++static char *pic2_strncpy PARM((char*,char*,size_t)); ++static void *pic2_malloc PARM((size_t,char*)); ++static void *pic2_new PARM((size_t,char*)); ++ ++static int WritePIC2 PARM((FILE*,byte*,int,int,int, ++ byte*,byte*,byte*,int,int,char*, ++ int,int,int,int,int,char*)); ++ ++static char *pic2_id = "P2DT"; ++ ++/* Error Messages */ ++static char *pic2_msgs[] = { ++ NULL, ++#define PIC2_OPEN 1 ++ "can't open file.", ++#define PIC2_CORRUPT 2 ++ "file corrupted.", ++#define PIC2_FORMAT 3 ++ "not PIC2 format.", ++#define PIC2_DEPTH 4 ++ "bit depths not divisible by 3 are unsupported.", ++#define PIC2_TMPFILE 5 ++ "unable to create temporary filename???", ++#define PIC2_PAGE 6 ++ "couldn't load the page.", ++#define PIC2_APPEND 7 ++ "cannot append.", ++#define PIC2_WRITE 8 ++ "write failed.", ++}; ++ ++struct _form_tab { ++ char *id; ++ int (*loader_init) PARM((struct pic2_info *)); ++ int (*saver_init) PARM((struct pic2_info *, pixel **)); ++} form_tab[] = { ++ { "P2SS", pic2_arith_loader_init, pic2_arith_saver_init}, ++ { "P2SF", pic2_fast_loader_init, pic2_fast_saver_init}, ++ { "P2BM", pic2_beta_loader_init, pic2_beta_saver_init}, ++ { "P2BI", pic2_beta_loader_init, pic2_beta_saver_init}, ++}; ++#define n_form_tab (sizeof(form_tab) / sizeof(struct _form_tab)) ++#define P2SS 0 ++#define P2SF 1 ++#define P2BM 2 ++#define P2BI 3 ++ ++/* The main routine to load a PIC2 file. */ ++int LoadPIC2(fname, pinfo, quick) ++char *fname; ++PICINFO *pinfo; ++int quick; ++{ ++ int e, i, block; ++ struct pic2_info pic2; ++ ++ if (DEBUG) ++ fputs("LoadPIC2:\n", stderr); ++ ++ pic2_init_info(&pic2); ++ ++ if ((e = setjmp(pic2.jmp)) != 0){ ++ /* When an error occurs, comes here. */ ++ pic2_free_buffer(&pic2); ++ pic2_cleanup_pic2_info(&pic2, 0); ++ pic2_cleanup_pinfo(pinfo); ++ if (pic2split) ++ KillPageFiles(pic2.pagebname, pic2.pnum); ++ SetCursors(-1); ++ if (DEBUG) ++ fputs("\n", stderr); ++ return (0); ++ } ++ pic2_open_file(&pic2, fname); ++ pic2_read_header(&pic2); ++ ++ if ((i = pic2_find_block(&pic2)) == 0) ++ pic2_file_error(&pic2, PIC2_CORRUPT); ++ ++ block = 1; ++ while(i == 2) { ++ SetISTR(ISTR_WARNING, "unknown or invalid block #%d.", block); ++ i = pic2_next_block(&pic2); ++ block++; ++ } ++ ++ if (pic2split && !quick) { ++ char firstpage[512]; ++ struct stat st; ++#ifndef USE_MKSTEMP ++ int tmpfd; ++#endif ++ ++#ifndef VMS ++ sprintf(pic2.pagebname, "%s/xvpic2XXXXXX", tmpdir); ++#else ++ sprintf(pic2.pagebname, "Sys$Scratch:xvpic2XXXXXX"); ++#endif ++#ifdef USE_MKSTEMP ++ close(mkstemp(pic2.pagebname)); ++#else ++ mktemp(pic2.pagebname); ++ tmpfd = open(pic2.pagebname, O_WRONLY|O_CREAT|O_EXCL, S_IRWUSR); ++ if (tmpfd < 0) FatalError("LoadPIC2(): can't create temporary file"); ++ close(tmpfd); ++#endif ++ if (pic2.pagebname[0] == '\0') ++ pic2_error(&pic2, PIC2_TMPFILE); ++ strcat(pic2.pagebname, "."); ++ ++ sprintf(firstpage, "%s%d", pic2.pagebname, 1); ++ if (stat(firstpage, &st)) { ++ for (pic2.pnum = 1; i >= 1; pic2.pnum++) { ++ pic2_load_block(&pic2); ++ pic2_make_pagefile(&pic2, pic2.pagebname, pic2.pnum); ++ while(block++, (i = pic2_next_block(&pic2)) == 2) ++ SetISTR(ISTR_WARNING, ++ "unknown or invalid block #%d.", block); ++ } ++ pinfo->numpages = --pic2.pnum; ++ if (!LoadPIC2(firstpage, pinfo, 1)) ++ pic2_error(&pic2, PIC2_PAGE); ++ if (pic2.pnum == 1) ++ unlink(firstpage); ++ else ++ strcpy(pinfo->pagebname, pic2.pagebname); ++ } else ++ if (!LoadPIC2(fname, pinfo, 1)) ++ pic2_error(&pic2, PIC2_PAGE); ++ } else { ++ char buf[128], format[64]; ++ int j; ++ ++ pinfo->w = pic2.x_max; ++ pinfo->h = pic2.y_max; ++ pinfo->normw = pinfo->w; ++ pinfo->normh = pinfo->h; ++ pinfo->type = PIC24; ++ for (j = 0; j < n_form_tab; j++) { ++ if (xvbcmp(pic2.block->id, form_tab[j].id, (size_t) 4) == 0) ++ break; ++ } ++ pinfo->frmType = F_PIC2; ++ pinfo->colType = F_FULLCOLOR; ++ pinfo->comment = pic2.comment; ++ ++ if (pic2split) { ++ pic2_make_xvpic(&pic2, &pinfo->pic, pinfo->r, pinfo->g, pinfo->b); ++ strcpy(format, form_tab[j].id); ++ } else { ++ for (pic2.pnum = 1; i >= 1; pic2.pnum++) { ++ SetISTR(ISTR_INFO, "composing block #%d", block); ++ pic2_make_xvpic(&pic2, &pinfo->pic, ++ pinfo->r, pinfo->g, pinfo->b); ++ while(block++, (i = pic2_next_block(&pic2)) == 2) ++ SetISTR(ISTR_WARNING, ++ "unknown or invalid block #%d.", block); ++ } ++ if (--block > 1) ++ if (block != --pic2.pnum) ++ sprintf(format, "MultiBlock[%d/%d]", block, pic2.pnum); ++ else ++ sprintf(format, "MultiBlock[%d]", block); ++ else ++ strcpy(format, form_tab[j].id); ++ } ++ sprintf(buf, "PIC2(%s). %d colors (%ld bytes)", format, ++ (int) 1 << pic2.header->depth, pic2.fsize); ++ strcat(pinfo->fullInfo, buf); ++ sprintf(pinfo->shrtInfo, "%dx%d(aspect %4.2f) PIC2(%s).", ++ pinfo->w, pinfo->h, ++ (float) pic2.header->x_aspect / (float) pic2.header->y_aspect, ++ format); ++ if (!nopicadjust) ++ normaspect = (float) pic2.header->x_aspect ++ / (float) pic2.header->y_aspect; ++ } ++ pic2_cleanup_pic2_info(&pic2, 0); ++ SetCursors(-1); ++ if (DEBUG) ++ fputs("\n", stderr); ++ return (1); ++} ++ ++/* ++ * This function opens the file, and set its size. ++ */ ++static void pic2_open_file(pi, fname) ++ struct pic2_info *pi; ++ char *fname; ++{ ++ if ((pi->fp = fopen(fname, "rb")) == NULL) ++ pic2_file_error(pi, PIC2_OPEN); ++ fseek(pi->fp, (size_t) 0, SEEK_END); ++ pi->fsize = ftell(pi->fp); ++ fseek(pi->fp, (size_t) 0, SEEK_SET); ++} ++ ++/* ++ * These functions read the PIC2 header informations. ++ * pic2_read_header: ++ * reads the PIC2 header. ++ * pic2_read_block_header1: ++ * reads the id number of block header and the size of block. ++ * pic2_read_block_header2: ++ * reads the rest of block header. ++ */ ++static void pic2_read_header(pi) ++struct pic2_info *pi; ++{ ++ long s_comment; ++ ++ pi->mode = PIC2_READ_MODE; ++ ++ /* read header image */ ++ pic2_read_file(pi, pi->header->magic, 4); ++ pic2_read_file(pi, pi->header->name, 18); ++ pic2_read_file(pi, pi->header->subtitle, 8); ++ pic2_read_file(pi, pi->header->crlf0, 2); ++ pic2_read_file(pi, pi->header->title, 30); ++ pic2_read_file(pi, pi->header->crlf1, 2); ++ pic2_read_file(pi, pi->header->saver, 30); ++ pic2_read_file(pi, pi->header->crlf2, 2); ++ pic2_read_file(pi, pi->header->eof, 1); ++ pic2_read_file(pi, pi->header->reserve0, 1); ++ pi->header->flag = pic2_read_short(pi); ++ pi->header->no = pic2_read_short(pi); ++ pi->header->time = pic2_read_long(pi); ++ pi->header->size = pic2_read_long(pi); ++ pi->header->depth = pic2_read_short(pi); ++ pi->header->x_aspect = pic2_read_short(pi); ++ pi->header->y_aspect = pic2_read_short(pi); ++ pi->header->x_max = pic2_read_short(pi); ++ pi->header->y_max = pic2_read_short(pi); ++ pi->header->reserve1 = pic2_read_long(pi); ++ ++ /* check magic number */ ++ if (strncmp(pi->header->magic, pic2_id, (size_t) 4) != 0) ++ pic2_error(pi, PIC2_FORMAT); ++ ++ /* read palette data, if exists */ ++ if (pi->header->flag & 1) { ++ pi->pal_bits = pic2_read_char(pi); ++ pi->n_pal = pic2_read_short(pi); ++ pic2_read_file(pi, pi->pal, (size_t) (pi->n_pal * 3)); ++ } ++ ++ /* read comments */ ++ s_comment = pi->header->size - pic2_tell_file(pi); ++ pi->comment = pic2_new(s_comment + 1, "pic2_read_header"); ++ pic2_read_file(pi, pi->comment, (size_t) s_comment); ++ pi->comment[s_comment] = '\0'; ++ ++ pi->x_max = pi->header->x_max; ++ pi->y_max = pi->header->y_max; ++ ++ /* set initial block point */ ++ pi->next_pos = pic2_tell_file(pi); ++} ++ ++static void pic2_read_block_header1(pi) ++struct pic2_info *pi; ++{ ++ pic2_read_file(pi, pi->block->id, 4); ++ pi->block->size = pic2_read_long(pi); ++} ++ ++static void pic2_read_block_header2(pi) ++struct pic2_info *pi; ++{ ++ pi->block->flag = pic2_read_short(pi); ++ pi->block->x_wid = pic2_read_short(pi); ++ pi->block->y_wid = pic2_read_short(pi); ++ pi->block->x_offset = pic2_read_short(pi); ++ pi->block->y_offset = pic2_read_short(pi); ++ pi->block->opaque = pic2_read_long(pi); ++ pi->block->reserve = pic2_read_long(pi); ++} ++ ++/* ++ * These functions are arithmetic pic2 format extractor. ++ */ ++static short pic2_arith_decode_bit(pi, c) ++struct pic2_info *pi; ++int c; ++{ ++ unsigned short pp; ++ ++ pp = pi->mulu_tab[(pi->aa & 0x7f00) / 2 + c]; ++ if (pi->dd >= (int) pp) { ++ pi->dd -= pp; ++ pi->aa -= pp; ++ ++ while ((short) pi->aa >= 0) { ++ pi->dd *= 2; ++ if (pic2_read_bits(pi, 1)) ++ pi->dd++; ++ pi->aa *= 2; ++ } ++ return (1); ++ } else { ++ pi->aa = pp; ++ ++ while ((short) pi->aa >= 0) { ++ pi->dd *= 2; ++ if (pic2_read_bits(pi, 1)) ++ pi->dd++; ++ pi->aa *= 2; ++ } ++ return (0); ++ } ++} ++ ++static short pic2_arith_decode_nn(pi, c) ++struct pic2_info *pi; ++int c; ++{ ++ int n; ++ ++ if (pic2_arith_decode_bit(pi, c)) { ++ /* n < 1 */ ++ n = 0; ++ } else if (pic2_arith_decode_bit(pi, c + 1)) { ++ /* n < 1 + 2 */ ++ n = 1; ++ if (pic2_arith_decode_bit(pi, c + 8)) ++ n += 1; ++ } else if (pic2_arith_decode_bit(pi, c + 2)) { ++ /* n < 1 + 2 + 4 */ ++ n = 1 + 2; ++ if (pic2_arith_decode_bit(pi, c + 8)) ++ n += 1; ++ if (pic2_arith_decode_bit(pi, c + 9)) ++ n += 2; ++ } else if (pic2_arith_decode_bit(pi, c + 3)) { ++ /* n < 1 + 2 + 4 + 8 */ ++ n = 1 + 2 + 4; ++ if (pic2_arith_decode_bit(pi, c + 8)) ++ n += 1; ++ if (pic2_arith_decode_bit(pi, c + 9)) ++ n += 2; ++ if (pic2_arith_decode_bit(pi, c + 10)) ++ n += 4; ++ } else if (pic2_arith_decode_bit(pi, c + 4)) { ++ /* n < 1 + 2 + 4 + 8 + 16 */ ++ n = 1 + 2 + 4 + 8; ++ if (pic2_arith_decode_bit(pi, c + 8)) ++ n += 1; ++ if (pic2_arith_decode_bit(pi, c + 9)) ++ n += 2; ++ if (pic2_arith_decode_bit(pi, c + 10)) ++ n += 4; ++ if (pic2_arith_decode_bit(pi, c + 11)) ++ n += 8; ++ } else if (pic2_arith_decode_bit(pi, c + 5)) { ++ /* n < 1 + 2 + 4 + 8 + 16 + 32 */ ++ n = 1 + 2 + 4 + 8 + 16; ++ if (pic2_arith_decode_bit(pi, c + 8)) ++ n += 1; ++ if (pic2_arith_decode_bit(pi, c + 9)) ++ n += 2; ++ if (pic2_arith_decode_bit(pi, c + 10)) ++ n += 4; ++ if (pic2_arith_decode_bit(pi, c + 11)) ++ n += 8; ++ if (pic2_arith_decode_bit(pi, c + 12)) ++ n += 16; ++ ++ } else if (pic2_arith_decode_bit(pi, c + 6)) { ++ /* n < 1 + 2 + 4 + 8 + 16 + 32 + 64 */ ++ n = 1 + 2 + 4 + 8 + 16 + 32; ++ if (pic2_arith_decode_bit(pi, c + 8)) ++ n += 1; ++ if (pic2_arith_decode_bit(pi, c + 9)) ++ n += 2; ++ if (pic2_arith_decode_bit(pi, c + 10)) ++ n += 4; ++ if (pic2_arith_decode_bit(pi, c + 11)) ++ n += 8; ++ if (pic2_arith_decode_bit(pi, c + 12)) ++ n += 16; ++ if (pic2_arith_decode_bit(pi, c + 13)) ++ n += 32; ++ ++ } else if (pic2_arith_decode_bit(pi, c + 7)) { ++ /* n < 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 */ ++ n = 1 + 2 + 4 + 8 + 16 + 32 + 64; ++ if (pic2_arith_decode_bit(pi, c + 8)) ++ n += 1; ++ if (pic2_arith_decode_bit(pi, c + 9)) ++ n += 2; ++ if (pic2_arith_decode_bit(pi, c + 10)) ++ n += 4; ++ if (pic2_arith_decode_bit(pi, c + 11)) ++ n += 8; ++ if (pic2_arith_decode_bit(pi, c + 12)) ++ n += 16; ++ if (pic2_arith_decode_bit(pi, c + 13)) ++ n += 32; ++ if (pic2_arith_decode_bit(pi, c + 14)) ++ n += 64; ++ ++ } else { ++ n = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128; ++ } ++ return (n); ++} ++ ++static void pic2_arith_expand_chain(pi, x, y, cc) ++struct pic2_info *pi; ++int x, y; ++pixel cc; ++{ ++ static const unsigned short c_tab[] = { ++ 80 + 6 * 5, /* -5 */ ++ 80 + 6 * 4, ++ 80 + 6 * 3, ++ 80 + 6 * 2, ++ 80 + 6 * 1, ++ 80 + 6 * 0, /* 0 */ ++ 80 + 6 * 0, /* 1 */ ++ }; ++ unsigned short b; ++ ++ b = c_tab[pi->flag_now[x] + 5]; ++ if (!pic2_arith_decode_bit(pi, b++)) { ++ if (pic2_arith_decode_bit(pi, b++)) { /* down */ ++ pi->vram_next[x ] = cc; ++ pi->flag_next[x ] = -1; ++ } else if (pic2_arith_decode_bit(pi, b++)) { /* left */ ++ pi->vram_next[x - 1] = cc; ++ pi->flag_next[x - 1] = -2; ++ } else if (pic2_arith_decode_bit(pi, b++)) { /* right */ ++ pi->vram_next[x + 1] = cc; ++ pi->flag_next[x + 1] = -3; ++ } else if (pic2_arith_decode_bit(pi, b++)) { /* left2 */ ++ pi->vram_next[x - 2] = cc; ++ pi->flag_next[x - 2] = -4; ++ } else { /* right2 */ ++ pi->vram_next[x + 2] = cc; ++ pi->flag_next[x + 2] = -5; ++ } ++ } ++} ++ ++static short pic2_arith_get_number(pi, c, bef) ++struct pic2_info *pi; ++int c, bef; ++{ ++ unsigned short n; ++ byte maxcol; ++ ++ maxcol = 0xff >> (8 - pi->header->depth / 3); ++ ++ n = pic2_arith_decode_nn(pi, c); ++ if (bef > ((int) maxcol >> 1)) { ++ if (n > ((int) maxcol - bef) * 2) ++ n = maxcol - n; ++ else if (n & 1) ++ n = n / 2 + bef + 1; ++ else ++ n = bef - n / 2; ++ } else { ++ if ((int) n > (bef * 2)) ++ n = n; ++ else if (n & 1) ++ n = n / 2 + bef + 1; ++ else ++ n = bef - n / 2; ++ } ++ return (n); ++} ++ ++static pixel pic2_arith_read_color(pi, x) ++struct pic2_info *pi; ++int x; ++{ ++ pixel c1, c2, cc; ++ unsigned short i, j, k, m; ++ short r, g, b, r0, g0, b0; ++ short colbits; ++ pixel rmask, gmask, bmask; ++ byte maxcol; ++ ++ colbits = pi->header->depth / 3; ++ rmask = (0xff >> (8 - colbits)) << (colbits * 2); ++ gmask = (0xff >> (8 - colbits)) << colbits; ++ bmask = (0xff >> (8 - colbits)); ++ maxcol = (byte) bmask; ++ ++ c1 = pi->vram_prev[x]; ++ k = ((c1 >> ((colbits - 3) * 3)) & 0x1c0) ++ | ((c1 >> ((colbits - 3) * 2)) & 0x038) ++ | ((c1 >> (colbits - 3) ) & 0x007); ++ if (colbits == 5) ++ k = pic2_exchange_rg(k, 3); ++ ++ if (pic2_arith_decode_bit(pi, pi->cache_hit_c)) { /* ouch */ ++ pi->cache_hit_c = 16; ++ ++ c2 = pi->vram_now[x - 1]; ++ r = ((c1 & rmask) + (c2 & rmask)) >> (colbits * 2 + 1); ++ g = ((c1 & gmask) + (c2 & gmask)) >> (colbits + 1); ++ b = ((c1 & bmask) + (c2 & bmask)) >> ( 1); ++ ++ g0 = pic2_arith_get_number(pi, 32, g); ++ r = r + g0 - g; ++ if (r > (short) maxcol) ++ r = maxcol; ++ else if (r < 0) ++ r = 0; ++ ++ b = b + g0 - g; ++ if (b > (short) maxcol) ++ b = maxcol; ++ else if (b < 0) ++ b = 0; ++ ++ r0 = pic2_arith_get_number(pi, 48, r); ++ b0 = pic2_arith_get_number(pi, 64, b); ++ ++ pi->cache_pos[k] = j = (pi->cache_pos[k] - 1) & (PIC2_ARITH_CACHE - 1); ++ pi->cache[k][j] = cc = (r0 << (colbits * 2)) | (g0 << colbits) | b0; ++ } else { ++ pi->cache_hit_c = 15; ++ ++ j = pic2_arith_decode_nn(pi, 17); ++ m = pi->cache_pos[k]; ++ i = (m + j / 2) & (PIC2_ARITH_CACHE - 1); ++ j = (m + j) & (PIC2_ARITH_CACHE - 1); ++ ++ cc = pi->cache[k][j]; ++ pi->cache[k][j] = pi->cache[k][i]; ++ pi->cache[k][i] = pi->cache[k][m]; ++ pi->cache[k][m] = cc; ++ } ++ return (cc); ++} ++ ++static int pic2_arith_expand_line(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ int ymax; ++ int x, xw; ++ pixel cc; ++ ++ pic2_handle_para(pi, 0); ++ ++ xw = pi->block->x_wid; ++ ymax = pi->block->y_wid - 1; ++ ++ if (pi->ynow > ymax) ++ return (-2); /* end */ ++ ++ /* set right end of previous line before left end of current line. */ ++ if (pi->ynow == 0) { ++ cc = 0; ++ } else ++ cc = pi->vram_prev[xw - 1]; ++ pi->vram_now[-1] = cc; ++ ++ /* clear flag for change point */ ++ xvbzero((char *) pi->flag_next, xw * sizeof(pi->flag_next[0])); ++ ++ /* clear flag for position probability space */ ++ xvbzero((char *) pi->flag2_next2, xw * sizeof(pi->flag2_next2[0])); ++ ++ for (x = 0; x < xw; x++) { ++ if (pi->flag_now[x] < 0) { ++ cc = pi->vram_now[x]; ++ if (pi->ynow < ymax) ++ pic2_arith_expand_chain(pi, x, pi->ynow, cc); ++ } else if (pic2_arith_decode_bit(pi, pi->flag2_now[x])) { ++ /* ajust probability space around of change point */ ++ pi->flag2_now [x + 1]++; ++ pi->flag2_now [x + 2]++; ++ pi->flag2_next [x - 1]++; ++ pi->flag2_next [x ]++; ++ pi->flag2_next [x + 1]++; ++ pi->flag2_next2[x - 1]++; ++ pi->flag2_next2[x ]++; ++ pi->flag2_next2[x + 1]++; ++ ++ pi->vram_now[x] = cc = pic2_arith_read_color(pi, x); ++ if (pi->ynow < ymax) ++ pic2_arith_expand_chain(pi, x, pi->ynow, cc); ++ } else ++ pi->vram_now[x] = cc; ++ } ++ if (line != NULL) ++ *line = pi->vram_now; ++ pi->ynow++; ++ ++ pic2_handle_para(pi, 1); ++ ++ return (pi->ynow - 1); ++} ++ ++static int pic2_arith_loader_init(pi) ++struct pic2_info *pi; ++{ ++ unsigned short p2b[256]; ++ int i, xw; ++ ++ pi->ynow = 0; ++ ++ /* check the color depth */ ++ if (pi->header->depth % 3) ++ pic2_error(pi, PIC2_DEPTH); ++ ++ /* set function for extract next line */ ++ pi->next_line = pic2_arith_expand_line; ++ ++ /* clear cache and flags */ ++ xw = pi->block->x_wid; ++ xvbzero((char *) pi->cache, 8 * 8 * 8 * sizeof(pi->cache[0])); ++ xvbzero((char *) pi->cache_pos, 8 * 8 * 8 * sizeof(pi->cache_pos[0])); ++ ++ xvbzero((char *) pi->flag_now, xw * sizeof(pi->flag_now[0])); ++ xvbzero((char *) pi->flag2_now, 8 + xw * sizeof(pi->flag2_now[0])); ++ xvbzero((char *) pi->flag2_next, 8 + xw * sizeof(pi->flag2_next[0])); ++ ++ /* go to picture data field */ ++ pic2_seek_file(pi, pi->block_pos + PIC2_BLOCK_HEADER_SIZE, SEEK_SET); ++ ++ /* clear bit field marker */ ++ pi->bs.rest = 0; ++ pi->bs.cur = 0; ++ ++ /* read probability table */ ++ for (i = 0; i < PIC2_ARITH_CONTEXT; i++) ++ p2b[i] = pic2_read_short(pi); ++ ++ /* make multiplication table */ ++ for (i = 0; i < 16384; i++) { ++ pi->mulu_tab[i] = (long) (i / 128 + 128) * (int) p2b[i & 127] / 256; ++ if (pi->mulu_tab[i] == 0) pi->mulu_tab[i] = 1; ++ } ++ /* initialize some valuables */ ++ pi->aa = 0xffff; ++ pi->dd = 0; ++ for (i = 0; i < 16; i++) { ++ pi->dd *= 2; ++ if (pic2_read_bits(pi, 1)) ++ pi->dd |= 1; ++ } ++ pi->cache_hit_c = 16; ++ ++ return (0); ++} ++ ++/* ++ * These functions are fast pic2 compression extractor. ++ */ ++static int pic2_fast_read_length(pi) ++struct pic2_info *pi; ++{ ++ int a; ++ ++ a = 0; ++ while (pic2_read_bits(pi, 1)) { ++ a++; ++ } ++ if (a == 0) ++ return (0); ++ return (pic2_read_bits(pi, a) + (1 << a) - 1); ++} ++ ++static void pic2_fast_expand_chain(pi, x, cc) ++struct pic2_info *pi; ++int x; ++pixel cc; ++{ ++ if (pic2_read_bits(pi, 1) != 0) { ++ if (pic2_read_bits(pi, 1) != 0) { /* down */ ++ pi->vram_next[x] = cc; ++ pi->flag_next[x] = -1; ++ } else if (pic2_read_bits(pi, 1) != 0) { ++ if (pic2_read_bits(pi, 1) == 0) { /* left2down */ ++ pi->vram_next[x - 2] = cc; ++ pi->flag_next[x - 2] = -1; ++ } else { /* left1down */ ++ pi->vram_next[x - 1] = cc; ++ pi->flag_next[x - 1] = -1; ++ } ++ } else { ++ if (pic2_read_bits(pi, 1) == 0) { /* right2down */ ++ pi->vram_next[x + 2] = cc; ++ pi->flag_next[x + 2] = -1; ++ } else { /* left1down */ ++ pi->vram_next[x + 1] = cc; ++ pi->flag_next[x + 1] = -1; ++ } ++ } ++ } ++} ++ ++static pixel pic2_fast_read_color(pi, bc) ++struct pic2_info *pi; ++pixel bc; ++{ ++ pixel cc; ++ unsigned short j, k, m; ++ short depth, colbits; ++ pixel (*cache)[PIC2_FAST_CACHE]; ++ ++ depth = pi->header->depth; ++ colbits = depth / 3; ++ cache = (pixel (*)[PIC2_FAST_CACHE]) pi->cache; ++ ++ bc = pic2_exchange_rg(bc, colbits); ++ k = pic2_shift_bits(bc, 8 - depth); ++ if (pic2_read_bits(pi, 1) == 0) { ++ pi->cache_pos[k] = m = (pi->cache_pos[k] - 1) & (PIC2_FAST_CACHE - 1); ++ cc = pic2_read_bits(pi, depth); ++ cc = pic2_exchange_rg(cc, colbits); ++ cache[k][m] = cc; ++ } else { ++ j = pic2_read_bits(pi, 6); /* 6= log2(PIC2_FAST_CACHE) */ ++ m = pi->cache_pos[k]; ++ cc = cache[k][(m + j) & (PIC2_FAST_CACHE - 1)]; ++ } ++ return (cc); ++} ++ ++static int pic2_fast_expand_line(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ int ymax; ++ int x, xw; ++ pixel cc; ++ ++ pic2_handle_para(pi, 0); ++ ++ xw = pi->block->x_wid; ++ ymax = pi->block->y_wid - 1; ++ ++ if (pi->ynow > ymax) ++ return (-2); ++ ++ if (pi->ynow == 0) { ++ pi->dd = 0; ++ pi->aa = pic2_fast_read_length(pi); ++ if (pi->aa == 1023) ++ pi->dd = 1023; ++ else if (pi->aa > 1023) ++ pi->aa--; ++ cc = 0; ++ } else ++ cc = pi->vram_prev[xw - 1]; ++ ++ xvbzero((char *) pi->flag_next, xw * sizeof(pi->flag_next[0])); ++ ++ for (x = 0; x < xw; x++) { ++ if (pi->dd > 0) { ++ if (pi->flag_now[x] < 0) { /* on chain ? */ ++ cc = pi->vram_now[x]; ++ pic2_fast_expand_chain(pi, x, cc); ++ if (--pi->dd == 0) { ++ pi->aa = pic2_fast_read_length(pi); ++ if (pi->aa == 1023) ++ pi->dd = 1023; ++ else if (pi->aa > 1023) ++ pi->aa--; ++ } ++ } else ++ pi->vram_now[x] = cc; ++ } else { ++ if (pi->flag_now[x] < 0) { /* on chain ? */ ++ cc = pi->vram_now[x]; ++ pic2_fast_expand_chain(pi, x, cc); ++ } else if (--pi->aa < 0) { ++ cc = pi->vram_now[x] = pic2_fast_read_color(pi, cc); ++ pic2_fast_expand_chain(pi, x, cc); ++ pi->aa = pic2_fast_read_length(pi); ++ if (pi->aa == 1023) ++ pi->dd = 1023; ++ else if (pi->aa > 1023) ++ pi->aa--; ++ } else ++ pi->vram_now[x] = cc; ++ } ++ } ++ if (line != NULL) ++ *line = pi->vram_now; ++ pi->ynow++; ++ ++ pic2_handle_para(pi, 1); ++ ++ return (pi->ynow - 1); ++} ++ ++static int pic2_fast_loader_init(pi) ++struct pic2_info *pi; ++{ ++ int xw; ++ ++ pi->ynow = 0; ++ ++ /* check the color depth */ ++ if (pi->header->depth % 3) ++ pic2_error(pi, PIC2_DEPTH); ++ ++ /* set function for extract next line */ ++ pi->next_line = pic2_fast_expand_line; ++ ++ /* clear cache and flags */ ++ xw = pi->block->x_wid; ++ xvbzero((char *) pi->cache, sizeof(pi->cache[0]) * 256); ++ xvbzero((char *) pi->cache_pos, sizeof(pi->cache_pos[0]) * 8 * 8 * 8); ++ xvbzero((char *) pi->flag_now, (xw + 8) * sizeof(pi->flag_now[0])); ++ xvbzero((char *) pi->flag_next, (xw + 8) * sizeof(pi->flag_next[0])); ++ ++ /* go to picture data field */ ++ pic2_seek_file(pi, pi->block_pos + PIC2_BLOCK_HEADER_SIZE, SEEK_SET); ++ ++ /* clear bit field marker */ ++ pi->bs.rest = 0; ++ pi->bs.cur = 0; ++ ++ return (0); ++} ++ ++/* ++ * These functions are beta pic2 format extractor. ++ */ ++static int pic2_beta_expand_line(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ int i, xw, ymax; ++ byte a, b, c, *p; ++ pixel *pc; ++ short depth, pixbyte, colbits; ++ ++ depth = pi->header->depth; ++ pixbyte = depth / 8 + ((depth % 8) > 0); ++ colbits = depth / 3; ++ ++ xw = pi->block->x_wid; ++ ymax = pi->block->y_wid - 1; ++ ++ if (pi->ynow > ymax) ++ return (-2); /* end */ ++ ++ pc = pi->vram_now; ++ p = (byte *) pi->vram_prev; ++ if (pixbyte == 3) { ++ pic2_read_file(pi, pi->vram_prev, (size_t) (xw * pixbyte)); ++ for (i = 0; i < xw; i++, pc++) { ++ a = *p++; ++ b = *p++; ++ c = *p++; ++ *pc = ((pixel) a << 16) | ((pixel) b << 8) | (pixel) c; ++ } ++ } else if (pixbyte == 2) { ++ pic2_read_file(pi, pi->vram_prev, (size_t) (xw * 2)); ++ if (strncmp(pi->block->id, "P2BM", 4) == 0) { ++ for (i = 0; i < xw; i++, pc++) { ++ a = *p++; ++ b = *p++; ++ *pc = ((pixel) a << 8) | (pixel) b; ++ if (colbits == 5) { ++ *pc >>= 1; ++ *pc = pic2_exchange_rg(*pc, colbits); ++ } ++ } ++ } else { ++ for (i = 0; i < xw; i++, pc++) { ++ a = *p++; ++ b = *p++; ++ *pc = ((pixel) b << 8) | (pixel) a; ++ if (colbits == 5) { ++ *pc >>= 1; ++ *pc = pic2_exchange_rg(*pc, colbits); ++ } ++ } ++ } ++ } else { ++ pic2_read_file(pi, pi->vram_prev, (size_t) xw); ++ for (i = 0; i < xw; i++) ++ *pc++ = *p++; ++ } ++ if (line != NULL) ++ *line = pi->vram_now; ++ ++ pc = pi->vram_prev; ++ pi->vram_prev = pi->vram_now; ++ pi->vram_now = pi->vram_next; ++ pi->vram_next = pc; ++ ++ pi->ynow++; ++ return (pi->ynow - 1); ++} ++ ++static int pic2_beta_loader_init(pi) ++struct pic2_info *pi; ++{ ++ pi->ynow = 0; ++ pi->next_line = pic2_beta_expand_line; ++ pic2_seek_file(pi, pi->block_pos + PIC2_BLOCK_HEADER_SIZE, SEEK_SET); ++ return (0); ++} ++ ++/* ++ * Make a picture from the expanded data. ++ */ ++static void pic2_make_xvpic(pi, xp, rp, gp, bp) ++struct pic2_info *pi; ++byte **xp, *rp, *gp, *bp; ++{ ++ int line, i; ++ pixel *linep, opaque; ++ short colbits; ++ byte colmask; ++ ++ if (*xp == NULL) ++ *xp = pic2_new((size_t) pi->x_max * pi->y_max * 3, "pic2_make_xvpic"); // GRR POSSIBLE OVERFLOW / FIXME ++ ++ if (pi->block->flag & 1) ++ opaque = pi->block->opaque; ++ else ++ opaque = 0xffffffff; ++ ++ colbits = pi->header->depth / 3; ++ colmask = 0xff >> (8 - colbits); ++ ++ line = pic2_load_block(pi); ++ for (;;) { ++ int pic_idx; ++ ++ line = pic2_next_line(pi, &linep); ++ if (line < 0) ++ break; ++ pic_idx = ((line + pi->block->y_offset) * pi->x_max ++ + pi->block->x_offset) * 3; ++ ++ for (i = 0; i < pi->block->x_wid; i++, linep++) { ++ byte r, g, b; ++ ++ if (*linep != opaque) { ++ r = ((*linep >> (colbits * 2)) & colmask); ++ r = pic2_convert_color_bits(r, colbits, 8); ++ g = ((*linep >> colbits ) & colmask); ++ g = pic2_convert_color_bits(g, colbits, 8); ++ b = ( *linep & colmask); ++ b = pic2_convert_color_bits(b, colbits, 8); ++ (*xp)[pic_idx++] = r; ++ (*xp)[pic_idx++] = g; ++ (*xp)[pic_idx++] = b; ++ } else ++ pic_idx += 3; ++ ++ WaitCursor(); ++ } ++ } ++} ++ ++/* ++ * This function splits a multiblock PIC2 file into several pages. ++ */ ++static void pic2_make_pagefile(pi, pagebname, pnum) ++struct pic2_info *pi; ++char *pagebname; ++int pnum; ++{ ++ struct pic2_info pic2; ++ FILE *fp; ++ char pagefile[64], *buf; ++ size_t imagesize; ++ ++ sprintf(pagefile, "%s%d", pagebname, pnum); ++ if ((fp = fopen(pagefile, "wb")) == NULL) ++ pic2_error(pi, PIC2_WRITE); ++ ++ xvbcopy((char *) pi, (char *) &pic2, sizeof(struct pic2_info)); ++ pic2.fp = fp; ++ ++ pic2_write_header1(&pic2); ++ ++ pic2_write_block_header(&pic2); ++ ++ imagesize = pi->block->size - PIC2_BLOCK_HEADER_SIZE; ++ buf = (char *) pic2_malloc(imagesize, "pic2_make_pagefile"); ++ ++ pic2_seek_file(pi, pi->block_pos + PIC2_BLOCK_HEADER_SIZE, SEEK_SET); ++ if (fread(buf, (size_t) 1, imagesize, pi->fp) < imagesize) { ++ free(buf); ++ pic2_file_error(pi, PIC2_CORRUPT); ++ } ++ if (fwrite(buf, (size_t) 1, imagesize, fp) < imagesize) { ++ free(buf); ++ pic2_error(pi, PIC2_WRITE); ++ } ++ free(buf); ++ ++ pic2.next_pos = pic2_tell_file(&pic2); ++ pic2_write_header2(&pic2); ++ ++ fclose(fp); ++} ++ ++/* The main routine to save a PIC2 file. */ ++static int WritePIC2(fp, pic0, ptype, w, h, rmap, gmap, bmap, numcols, ++ colorstyle, fname, type, depth, x_offset, y_offset, ++ append, comment) ++FILE *fp; ++byte *pic0; ++int ptype, w, h; ++byte *rmap, *gmap, *bmap; ++int numcols, colorstyle; ++char *fname; ++int type, depth; ++int x_offset, y_offset; ++int append; ++char *comment; ++{ ++ struct pic2_info pic2; ++ char creator[256], title[256], saver[256]; ++ int e; ++ ++ if (DEBUG) ++ fputs("WritePIC2:\n", stderr); ++ ++ pic2_init_info(&pic2); ++ pic2.fp = fp; ++ pic2.writing_grey = (colorstyle == F_GREYSCALE); ++ ++ if ((e = setjmp(pic2.jmp)) != 0){ ++ /* When an error occurs while writing, comes here. */ ++ pic2_free_buffer(&pic2); ++ pic2_cleanup_pic2_info(&pic2, 1); ++ SetCursors(-1); ++ if (DEBUG) ++ fputs("\n", stderr); ++ return (-1); ++ } ++ sprintf(creator, "XV Version %s", VERSTR); ++ pic2_strncpy(title, comment, 30); ++ sprintf(saver, "XV %s/UNIX/Bradley", VERSTR); ++ ++ if (!append) { ++ pic2_setup_pic2_info(&pic2, creator, fname, title, saver, ++ 0, depth, 1, 1, w, h, comment); ++ pic2_write_header1(&pic2); ++ } else { ++ pic2_read_header(&pic2); ++ pic2_append(&pic2); ++ free(pic2.comment); ++ pic2_setup_pic2_info(&pic2, creator, fname, title, saver, ++ 0, depth, 1, 1, w, h, comment); ++ } ++ ++ pic2_write_data(&pic2, pic0, ptype, x_offset, y_offset, w, h, ++ rmap, gmap, bmap, type, depth); ++ pic2_write_header2(&pic2); ++ ++ pic2_cleanup_pic2_info(&pic2, 1); ++ SetCursors(-1); ++ if (DEBUG) ++ fputs("\n", stderr); ++ return (0); ++} ++ ++/* ++ * This function initializes pic2_info. ++ */ ++static void pic2_setup_pic2_info(pi, name, fname, title, saver, no, depth, ++ x_aspect, y_aspect, x_max, y_max, comment) ++struct pic2_info *pi; ++char *name, *fname, *title, *saver; ++int no, depth; ++int x_aspect, y_aspect; ++int x_max, y_max; ++char *comment; ++{ ++ char basename[256], *suffix; ++ ++ pi->mode = PIC2_WRITE_MODE; ++ ++ /* set magic number */ ++ strncpy(pi->header->magic, pic2_id, 4); ++ ++ /* set creator's name */ ++ pic2_strncpy(pi->header->name, (char *) name, 18); ++ ++ /* set title and subtitle */ ++ pic2_strncpy(pi->header->title, (char *) title, 30); ++ strcpy(basename, BaseName(fname)); ++ suffix = (char *) rindex(basename, '.'); ++ if (suffix) { ++ suffix++; ++ if (!strcmp(suffix, "p2") || !strcmp(suffix, "P2")) ++ *(suffix - 1) = '\0'; ++ } ++ pic2_strncpy(pi->header->subtitle, basename, 8); ++ ++ /* set saver */ ++ pic2_strncpy(pi->header->saver, saver, 30); ++ ++ /* set picture number */ ++ pi->header->no = no; ++ ++ /* import comment */ ++ pi->comment = comment; ++ ++ /* set some picture's info */ ++ pi->header->depth = depth; ++ pi->header->x_aspect = x_aspect; ++ pi->header->y_aspect = y_aspect; ++ pi->header->x_max = x_max; ++ pi->header->y_max = y_max; ++ ++ /* set some gaps */ ++ pi->header->crlf0[0] = pi->header->crlf1[0] = pi->header->crlf2[0] = 0x0d; ++ pi->header->crlf0[1] = pi->header->crlf1[1] = pi->header->crlf2[1] = 0x0a; ++ ++ pi->header->eof[0] = 0x1a; ++ pi->header->reserve0[0] = 0; ++ pi->header->reserve1 = 0; ++ ++ /* set palettes */ ++ if (pi->n_pal > 0) ++ pi->header->flag = 1; ++ else ++ pi->header->flag = 0; ++} ++ ++/* ++ * This function appends to existing pic2 file. ++ */ ++static void pic2_append(pi) ++struct pic2_info *pi; ++{ ++ int block; ++ ++ block = pic2_find_block(pi); ++ while (block > 0) ++ block = pic2_next_block(pi); ++ ++ if (block != 0) ++ pic2_error(pi, PIC2_APPEND); ++} ++ ++/* ++ * These functions write the PIC2 header. ++ * pic2_write_header1: ++ * write palette data and comment. ++ * pic2_write_header2: ++ * write the terminate block and rest header. ++ * pic2_write_block_header: ++ * write the block header. ++ */ ++static void pic2_write_header1(pi) ++struct pic2_info *pi; ++{ ++ char *comment; ++ ++ /* seek to block start position */ ++ pic2_seek_file(pi, PIC2_HEADER_SIZE, SEEK_SET); ++ ++ /* write palette */ ++ if (pi->n_pal > 0) { ++ pic2_write_char(pi, pi->pal_bits); ++ pic2_write_short(pi, pi->n_pal); ++ pic2_write_file(pi, pi->pal, (size_t) (pi->n_pal * 3)); ++ } ++ /* save comment */ ++ comment = pi->comment; ++ if (pi->comment != NULL) { ++ for (comment = pi->comment; *comment; comment++) { ++ if (*comment == '\n') { ++ pic2_write_char(pi, '\r'); ++ pic2_write_char(pi, '\n'); ++ } else if (*comment != '\r') ++ pic2_write_char(pi, *comment); ++ } ++ pic2_write_char(pi, 0); ++ } ++ /* set the next block position */ ++ pi->next_pos = pic2_tell_file(pi); ++ pi->header->size = pi->next_pos; ++} ++ ++static void pic2_write_header2(pi) ++struct pic2_info *pi; ++{ ++ pic2_seek_file(pi, pi->next_pos, SEEK_SET); ++ ++ /* write terminate block */ ++ pic2_write_long(pi, 0); ++ pic2_write_long(pi, 0); ++ ++ /* set some header information */ ++ if (pi->header->x_max < pi->x_max) ++ pi->header->x_max = pi->x_max; ++ if (pi->header->y_max < pi->x_max) ++ pi->header->y_max = pi->y_max; ++ ++ pi->header->time = time(NULL); ++ pic2_seek_file(pi, 0, SEEK_SET); ++ ++ /* write header image */ ++ pic2_write_file(pi, pi->header->magic, 4); ++ pic2_write_file(pi, pi->header->name, 18); ++ pic2_write_file(pi, pi->header->subtitle, 8); ++ pic2_write_file(pi, pi->header->crlf0, 2); ++ pic2_write_file(pi, pi->header->title, 30); ++ pic2_write_file(pi, pi->header->crlf1, 2); ++ pic2_write_file(pi, pi->header->saver, 30); ++ pic2_write_file(pi, pi->header->crlf2, 2); ++ pic2_write_file(pi, pi->header->eof, 1); ++ pic2_write_file(pi, pi->header->reserve0, 1); ++ pic2_write_short(pi, pi->header->flag); ++ pic2_write_short(pi, pi->header->no); ++ pic2_write_long(pi, pi->header->time); ++ pic2_write_long(pi, pi->header->size); ++ pic2_write_short(pi, pi->header->depth); ++ pic2_write_short(pi, pi->header->x_aspect); ++ pic2_write_short(pi, pi->header->y_aspect); ++ pic2_write_short(pi, pi->header->x_max); ++ pic2_write_short(pi, pi->header->y_max); ++ pic2_write_long(pi, pi->header->reserve1); ++} ++ ++static void pic2_write_block_header(pi) ++struct pic2_info *pi; ++{ ++ pic2_write_file(pi, pi->block->id, 4); ++ pic2_write_long(pi, pi->block->size); ++ pic2_write_short(pi, pi->block->flag); ++ pic2_write_short(pi, pi->block->x_wid); ++ pic2_write_short(pi, pi->block->y_wid); ++ pic2_write_short(pi, pi->block->x_offset); ++ pic2_write_short(pi, pi->block->y_offset); ++ pic2_write_long(pi, pi->block->opaque); ++ pic2_write_long(pi, pi->block->reserve); ++} ++ ++/* ++ * These functions implement the arithmetic-format compressor. ++ */ ++#define pic2_arith_write_one_bit(pi) (pi->bs.bits++) ++ ++static void pic2_arith_write_zero_bit(pi) ++struct pic2_info *pi; ++{ ++ if (pi->bs.zero) ++ pic2_write_bits(pi, 0, 1); ++ ++ while (pi->bs.bits--) ++ pic2_write_bits(pi, 1, 1); ++ ++ pi->bs.bits = 0; ++ pi->bs.zero = 1; ++} ++ ++static void pic2_arith_flush_bit_buf(pi) ++struct pic2_info *pi; ++{ ++ int i; ++ ++ for (i = 0; i < 16; i++) { ++ if (pi->cc & 0x8000) ++ pic2_arith_write_one_bit(pi); ++ else ++ pic2_arith_write_zero_bit(pi); ++ pi->cc <<= 1; ++ } ++ pic2_arith_write_zero_bit(pi); ++ pic2_flush_bits(pi); ++} ++ ++static void pic2_arith_carry_bit(pi) ++struct pic2_info *pi; ++{ ++ pic2_write_bits(pi, 1, 1); ++ ++ if (pi->bs.bits == 0) { ++ pi->bs.zero = 0; ++ } else { ++ while (--pi->bs.bits) ++ pic2_write_bits(pi, 0, 1); ++ pi->bs.zero = 1; ++ } ++} ++ ++static void pic2_arith_encode_bit(pi, n, c) ++struct pic2_info *pi; ++int n, c; ++{ ++ int pp; ++ long *c_sum, *c_0_sum; ++ ++ c_sum = (long *) pi->mulu_tab; ++ c_0_sum = c_sum + PIC2_ARITH_CONTEXT + 1; ++ ++ if (pi->dd == 0) { ++ c_sum[c]++; ++ if (n == 0) ++ c_0_sum[c]++; ++ return; ++ } ++ pp = pi->mulu_tab[(pi->aa & 0x7f00) / 2 + c]; ++ if (n != 0) { ++ pi->cc = pi->cc + pp; ++ if (pi->cc > 0xffff) { ++ pic2_arith_carry_bit(pi); ++ pi->cc = pi->cc & 0xffff; ++ } ++ pi->aa = pi->aa - pp; ++ while (pi->aa < 0x8000) { ++ if (pi->cc & 0x8000) ++ pic2_arith_write_one_bit(pi); ++ else ++ pic2_arith_write_zero_bit(pi); ++ pi->cc = (pi->cc * 2) & 0xffff; ++ pi->aa = pi->aa * 2; ++ } ++ } else { ++ pi->aa = pp; ++ ++ while (pi->aa < 0x8000) { ++ if (pi->cc & 0x8000) ++ pic2_arith_write_one_bit(pi); ++ else ++ pic2_arith_write_zero_bit(pi); ++ pi->cc = (pi->cc * 2) & 0xffff; ++ pi->aa = pi->aa * 2; ++ } ++ } ++} ++ ++static void pic2_arith_encode_nbyte(pi, n, c, max) ++struct pic2_info *pi; ++int n, c, max; ++{ ++ short i; ++ ++ for (i = 0; i < n; i++) { ++ pic2_arith_encode_bit(pi, 0, c + i); ++ } ++ if (n < max) ++ pic2_arith_encode_bit(pi, 1, c + n); ++} ++ ++static void pic2_arith_encode_nn(pi, n, c) ++struct pic2_info *pi; ++int n, c; ++{ ++ if (n < 1) { ++ pic2_arith_encode_bit(pi, 1, c); ++ } else if (n < 1 + 2) { ++ pic2_arith_encode_bit(pi, 0, c); ++ pic2_arith_encode_bit(pi, 1, c + 1); ++ n -= 1; ++ pic2_arith_encode_bit(pi, n & 1, c + 8); ++ } else if (n < 1 + 2 + 4) { ++ pic2_arith_encode_bit(pi, 0, c); ++ pic2_arith_encode_bit(pi, 0, c + 1); ++ pic2_arith_encode_bit(pi, 1, c + 2); ++ n -= 1 + 2; ++ pic2_arith_encode_bit(pi, n & 1, c + 8); ++ pic2_arith_encode_bit(pi, n & 2, c + 9); ++ } else if (n < 1 + 2 + 4 + 8) { ++ pic2_arith_encode_bit(pi, 0, c); ++ pic2_arith_encode_bit(pi, 0, c + 1); ++ pic2_arith_encode_bit(pi, 0, c + 2); ++ pic2_arith_encode_bit(pi, 1, c + 3); ++ n -= 1 + 2 + 4; ++ pic2_arith_encode_bit(pi, n & 1, c + 8); ++ pic2_arith_encode_bit(pi, n & 2, c + 9); ++ pic2_arith_encode_bit(pi, n & 4, c + 10); ++ } else if (n < 1 + 2 + 4 + 8 + 16) { ++ pic2_arith_encode_bit(pi, 0, c); ++ pic2_arith_encode_bit(pi, 0, c + 1); ++ pic2_arith_encode_bit(pi, 0, c + 2); ++ pic2_arith_encode_bit(pi, 0, c + 3); ++ pic2_arith_encode_bit(pi, 1, c + 4); ++ n -= 1 + 2 + 4 + 8; ++ pic2_arith_encode_bit(pi, n & 1, c + 8); ++ pic2_arith_encode_bit(pi, n & 2, c + 9); ++ pic2_arith_encode_bit(pi, n & 4, c + 10); ++ pic2_arith_encode_bit(pi, n & 8, c + 11); ++ } else if (n < 1 + 2 + 4 + 8 + 16 + 32) { ++ pic2_arith_encode_bit(pi, 0, c); ++ pic2_arith_encode_bit(pi, 0, c + 1); ++ pic2_arith_encode_bit(pi, 0, c + 2); ++ pic2_arith_encode_bit(pi, 0, c + 3); ++ pic2_arith_encode_bit(pi, 0, c + 4); ++ pic2_arith_encode_bit(pi, 1, c + 5); ++ n -= 1 + 2 + 4 + 8 + 16; ++ pic2_arith_encode_bit(pi, n & 1, c + 8); ++ pic2_arith_encode_bit(pi, n & 2, c + 9); ++ pic2_arith_encode_bit(pi, n & 4, c + 10); ++ pic2_arith_encode_bit(pi, n & 8, c + 11); ++ pic2_arith_encode_bit(pi, n & 16, c + 12); ++ } else if (n < 1 + 2 + 4 + 8 + 16 + 32 + 64) { ++ pic2_arith_encode_bit(pi, 0, c); ++ pic2_arith_encode_bit(pi, 0, c + 1); ++ pic2_arith_encode_bit(pi, 0, c + 2); ++ pic2_arith_encode_bit(pi, 0, c + 3); ++ pic2_arith_encode_bit(pi, 0, c + 4); ++ pic2_arith_encode_bit(pi, 0, c + 5); ++ pic2_arith_encode_bit(pi, 1, c + 6); ++ n -= 1 + 2 + 4 + 8 + 16 + 32; ++ pic2_arith_encode_bit(pi, n & 1, c + 8); ++ pic2_arith_encode_bit(pi, n & 2, c + 9); ++ pic2_arith_encode_bit(pi, n & 4, c + 10); ++ pic2_arith_encode_bit(pi, n & 8, c + 11); ++ pic2_arith_encode_bit(pi, n & 16, c + 12); ++ pic2_arith_encode_bit(pi, n & 32, c + 13); ++ } else if (n < 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128) { ++ pic2_arith_encode_bit(pi, 0, c); ++ pic2_arith_encode_bit(pi, 0, c + 1); ++ pic2_arith_encode_bit(pi, 0, c + 2); ++ pic2_arith_encode_bit(pi, 0, c + 3); ++ pic2_arith_encode_bit(pi, 0, c + 4); ++ pic2_arith_encode_bit(pi, 0, c + 5); ++ pic2_arith_encode_bit(pi, 0, c + 6); ++ pic2_arith_encode_bit(pi, 1, c + 7); ++ n -= 1 + 2 + 4 + 8 + 16 + 32 + 64; ++ pic2_arith_encode_bit(pi, n & 1, c + 8); ++ pic2_arith_encode_bit(pi, n & 2, c + 9); ++ pic2_arith_encode_bit(pi, n & 4, c + 10); ++ pic2_arith_encode_bit(pi, n & 8, c + 11); ++ pic2_arith_encode_bit(pi, n & 16, c + 12); ++ pic2_arith_encode_bit(pi, n & 32, c + 13); ++ pic2_arith_encode_bit(pi, n & 64, c + 14); ++ } else { ++ pic2_arith_encode_bit(pi, 0, c); ++ pic2_arith_encode_bit(pi, 0, c + 1); ++ pic2_arith_encode_bit(pi, 0, c + 2); ++ pic2_arith_encode_bit(pi, 0, c + 3); ++ pic2_arith_encode_bit(pi, 0, c + 4); ++ pic2_arith_encode_bit(pi, 0, c + 5); ++ pic2_arith_encode_bit(pi, 0, c + 6); ++ pic2_arith_encode_bit(pi, 0, c + 7); ++ } ++} ++ ++static void pic2_arith_press_chain(pi, x) ++struct pic2_info *pi; ++int x; ++{ ++ int b, d; ++ pixel c; ++ ++ b = -(pi->flag_now[x]); ++ c = pi->vram_now[x]; ++ d = 0; ++ ++ if (b < 0) ++ b = 0; ++ ++ if (pi->flag_next[x] == 1 && pi->vram_next[x] == c) { ++ d = 1; ++ pi->flag_next[x] = -1; ++ } else if (pi->flag_next[x - 1] == 1 && pi->vram_next[x - 1] == c) { ++ d = 2; ++ pi->flag_next[x - 1] = -2; ++ } else if (pi->flag_next[x + 1] == 1 && pi->vram_next[x + 1] == c) { ++ d = 3; ++ pi->flag_next[x + 1] = -3; ++ } else if (pi->flag_next[x - 2] == 1 && pi->vram_next[x - 2] == c) { ++ d = 4; ++ pi->flag_next[x - 2] = -4; ++ } else if (pi->flag_next[x + 2] == 1 && pi->vram_next[x + 2] == c) { ++ if ((pi->flag_now[x + 2] != 0 && pi->vram_now[x + 2] == c) ++ || (pi->flag_now[x + 1] != 0 && pi->vram_now[x + 1] == c) ++ || (pi->flag_now[x + 3] != 0 && pi->vram_now[x + 3] == c)) { ++ pic2_arith_encode_nbyte(pi, 0, 80 + 6 * b, 5); ++ return; ++ } ++ d = 5; ++ pi->flag_next[x + 2] = -5; ++ } ++ pic2_arith_encode_nbyte(pi, d, 80 + 6 * b, 5); ++} ++ ++static void pic2_arith_put_number(pi, xn, xa, xb) ++struct pic2_info *pi; ++int xn, xa, xb; ++{ ++ short n; ++ byte maxcol; ++ ++ maxcol = 0xff >> (8 - pi->header->depth / 3); ++ ++ if (xa > ((int) maxcol >> 1)) { ++ if (xb > xa) ++ n = (xb - xa) * 2 - 1; ++ else if (xa - ((int) maxcol - xa) > xb) ++ n = maxcol - xb; ++ else ++ n = (xa - xb) * 2; ++ } else { ++ if (xb <= xa) ++ n = (xa - xb) * 2; ++ else if (2 * xa < xb) ++ n = xb; ++ else ++ n = (xb - xa) * 2 - 1; ++ } ++ pic2_arith_encode_nn(pi, n, xn); ++} ++ ++static void pic2_arith_write_color(pi, x) ++struct pic2_info *pi; ++int x; ++{ ++ pixel c1, c2, cc; ++ short g0, r0, b0, r, g, b; ++ int i, j; ++ unsigned short k; ++ pixel *p, *pp; ++ short colbits; ++ pixel rmask, gmask, bmask; ++ byte maxcol; ++ ++ colbits = pi->header->depth / 3; ++ rmask = (0xff >> (8 - colbits)) << (colbits * 2); ++ gmask = (0xff >> (8 - colbits)) << colbits; ++ bmask = (0xff >> (8 - colbits)); ++ maxcol = (byte) bmask; ++ ++ cc = pi->vram_now[x]; ++ c1 = pi->vram_prev[x]; ++ k = ((c1 >> ((colbits - 3) * 3)) & 0x1c0) ++ | ((c1 >> ((colbits - 3) * 2)) & 0x038) ++ | ((c1 >> (colbits - 3) ) & 0x007); ++ if (colbits == 5) ++ k = pic2_exchange_rg(k, 3); ++ ++ p = pi->cache[k]; ++ for (i = 0; i < (PIC2_ARITH_CACHE - 1); i++) { ++ if (cc == *p++) ++ break; ++ } ++ if (i == (PIC2_ARITH_CACHE - 1)) { ++ pp = p - 1; ++ for (j = i; j > 0; j--) { ++ *--p = *--pp; ++ } ++ pi->cache[k][0] = cc; ++ pic2_arith_encode_bit(pi, 1, pi->cache_hit_c); ++ pi->cache_hit_c = 16; ++ ++ c2 = pi->vram_now[x - 1]; ++ r = ((c1 & rmask) + (c2 & rmask)) >> (colbits * 2 + 1); ++ g = ((c1 & gmask) + (c2 & gmask)) >> (colbits + 1); ++ b = ((c1 & bmask) + (c2 & bmask)) >> ( 1); ++ ++ r0 = (cc >> (colbits * 2)) & maxcol; ++ g0 = (cc >> colbits ) & maxcol; ++ b0 = cc & maxcol; ++ ++ r = r + g0 - g; ++ if (r < 0) ++ r = 0; ++ else if (r > (short) maxcol) ++ r = maxcol; ++ ++ b = b + g0 - g; ++ if (b < 0) ++ b = 0; ++ else if (b > (short) maxcol) ++ b = maxcol; ++ ++ pic2_arith_put_number(pi, 32, g, g0); ++ pic2_arith_put_number(pi, 48, r, r0); ++ pic2_arith_put_number(pi, 64, b, b0); ++ } else { ++ *--p = pi->cache[k][i / 2]; ++ pi->cache[k][i / 2] = pi->cache[k][0]; ++ pi->cache[k][0] = cc; ++ ++ pic2_arith_encode_bit(pi, 0, pi->cache_hit_c); ++ pi->cache_hit_c = 15; ++ pic2_arith_encode_nn(pi, i, 17); ++ } ++} ++ ++static void pic2_arith_press_line2(pi) ++struct pic2_info *pi; ++{ ++ int x, xw, ymax; ++ pixel cc; ++ ++ xw = pi->block->x_wid; ++ ymax = pi->block->y_wid -1; ++ cc = pi->vram_now[xw - 1]; /* last color */ ++ pi->vram_next[-1] = cc; ++ ++ /* mark change point */ ++ for (x = 0; x < xw; x++) ++ if (cc != pi->vram_next[x]) { ++ pi->flag_next[x] = 1; ++ cc = pi->vram_next[x]; ++ } else ++ pi->flag_next[x] = 0; ++ ++ for (x = 0; x < xw; x++) { ++ if (pi->flag_now[x] == 1) { /* change point */ ++ pi->flag2_now [x + 1]++; ++ pi->flag2_now [x + 2]++; ++ pi->flag2_next [x - 1]++; ++ pi->flag2_next [x ]++; ++ pi->flag2_next [x + 1]++; ++ pi->flag2_next2[x - 1]++; ++ pi->flag2_next2[x ]++; ++ pi->flag2_next2[x + 1]++; ++ ++ /* write change point */ ++ pic2_arith_encode_bit(pi, 1, pi->flag2_now[x]); ++ ++ /* write color */ ++ pic2_arith_write_color(pi, x); ++ ++ /* if not last line, write chain */ ++ if (pi->ynow - 1 < ymax) ++ pic2_arith_press_chain(pi, x); ++ } else if (pi->flag_now[x] == 0) /* not on chain */ ++ /* write change point */ ++ pic2_arith_encode_bit(pi, 0, pi->flag2_now[x]); ++ else /* on chain */ ++ /* if not on last line, write next chain */ ++ if (pi->ynow - 1 < ymax) ++ pic2_arith_press_chain(pi, x); ++ } ++} ++ ++static int pic2_arith_press_line(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ int i, xw, ymax; ++ long *c_sum, *c_0_sum; ++ ++ xw = pi->block->x_wid; ++ ymax = pi->block->y_wid -1; ++ c_sum = (long *) pi->mulu_tab; ++ c_0_sum = c_sum + PIC2_ARITH_CONTEXT +1; ++ ++ pic2_handle_para(pi, 0); ++ ++ xvbzero((char *) pi->flag2_next2 - 4, ++ (8 + xw) * sizeof(pi->flag2_next2[0])); ++ ++ if (pi->ynow == 0) { /* first line */ ++ int x; ++ pixel cc = 0; ++ ++ if (pi->dd != 0) { /* compress pass */ ++ unsigned short c_tab[PIC2_ARITH_CONTEXT]; ++ ++ for (i = 0; i < PIC2_ARITH_CONTEXT; i++) { ++ unsigned long a, b; ++ a = c_0_sum[i]; ++ b = c_sum[i]; ++ while (a > 32767) { ++ a /= 2; ++ b /= 2; ++ } ++ if (a == b) ++ c_tab[i] = 0xffff; /* b==0 here, too */ ++ else ++ c_tab[i] = (65536 * a) / b; /* a < b, so less 65536 */ ++ } ++ for (i = 0; i < 16384; i++) { ++ pi->mulu_tab[i] = (long) (i / 128 + 128) * (int) c_tab[i & 127] / 256; ++ if (pi->mulu_tab[i] == 0) ++ pi->mulu_tab[i] = 1; /* 0 is wrong */ ++ } ++ for (i = 0; i < PIC2_ARITH_CONTEXT; i++) ++ pic2_write_short(pi, c_tab[i]); ++ ++ xvbzero((char *) pi->vram_now, xw * sizeof(pi->vram_now[0])); ++ } else { /* statistical pass */ ++ xvbzero((char *) c_0_sum, PIC2_ARITH_CONTEXT * sizeof(c_0_sum[0])); ++ xvbzero((char *) c_sum, PIC2_ARITH_CONTEXT * sizeof(c_sum[0])); ++ } ++ ++ /* initialize flags */ ++ xvbzero((char *) pi->cache, 8 * 8 * 8 * sizeof(pi->cache[0])); ++ xvbzero((char *) pi->cache_pos, 8 * 8 * 8 * sizeof(pi->cache_pos[0])); ++ ++ xvbzero((char *) pi->flag2_next - 4, ++ (8 + xw) * sizeof(pi->flag2_next[0])); ++ xvbzero((char *) pi->flag2_next2 - 4, ++ (8 + xw) * sizeof(pi->flag2_next2[0])); ++ ++ pi->vram_next[-1] = cc; ++ for (x = 0; x < xw; x++) ++ if (cc != pi->vram_next[x]) { ++ pi->flag_next[x] = 1; ++ cc = pi->vram_next[x]; ++ } else ++ pi->flag_next[x] = 0; ++ ++ pi->aa = 0xffff; ++ cc = 0; ++ pi->cache_hit_c = 16; ++ } else /* after second line */ ++ pic2_arith_press_line2(pi); ++ ++ if (pi->ynow == ymax) { ++ pi->ynow++; ++ pic2_handle_para(pi, 1); ++ pic2_handle_para(pi, 0); ++ pic2_arith_press_line2(pi); ++ } ++ /* line buffer for next data */ ++ if (line != NULL) ++ *line = pi->vram_prev; ++ ++ pi->ynow++; ++ ++ if (pi->ynow - 1 < ymax) { ++ pic2_handle_para(pi, 1); ++ return (pi->ynow); ++ } else { /* end */ ++ if (pi->dd == 0) { /* statistical pass */ ++ pi->dd = 1; ++ pi->ynow = 0; ++ pic2_handle_para(pi, 1); ++ return (0); ++ } else { ++ pic2_handle_para(pi, 1); ++ pic2_arith_flush_bit_buf(pi); ++ return (-2); /* end */ ++ } ++ } ++} ++ ++static int pic2_arith_saver_init(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ pi->ynow = 0; ++ ++ /* check the color depth */ ++ if (pi->header->depth % 3) ++ pic2_error(pi, PIC2_DEPTH); ++ ++ /* set next line function */ ++ pi->next_line = pic2_arith_press_line; ++ ++ if (line != NULL) ++ *line = pi->vram_next + 4; ++ ++ pic2_seek_file(pi, pi->next_pos + PIC2_BLOCK_HEADER_SIZE, SEEK_SET); ++ ++ /* clear bit field marker */ ++ pi->bs.rest = 0; ++ pi->bs.cur = 0; ++ pi->bs.zero = 0; ++ pi->bs.bits = 0; ++ ++ return (0); ++} ++ ++/* ++ * These functions are fast pic2 format compressor. ++ */ ++static void pic2_fast_write_length(pi, n) ++struct pic2_info *pi; ++int n; ++{ ++ int a, b; ++ static const unsigned short len_data[8][2] = { ++ {1, 0}, ++ {1, 0}, ++ {3, 4}, ++ {3, 5}, ++ {5, 24}, ++ {5, 25}, ++ {5, 26}, ++ {5, 27}, ++ }; ++ ++ n++; ++ if (n < 8) ++ pic2_write_bits(pi, len_data[n][1], len_data[n][0]); ++ else { ++ a = 0; ++ b = 2; ++ while (n > b - 1) { ++ a = a + 1; ++ b = b * 2; ++ } ++ pic2_write_bits(pi, 0xfffffffe, a + 1); ++ if (a > 0) ++ pic2_write_bits(pi, n - b / 2, a); ++ } ++} ++ ++static void pic2_fast_press_chain(pi, x) ++struct pic2_info *pi; ++int x; ++{ ++ int ymax; ++ pixel cc; ++ ++ ymax = pi->block->y_wid -1; ++ cc = pi->vram_now[x]; ++ ++ if (pi->ynow - 1 == ymax) { ++ pic2_write_bits(pi, 0, 1); ++ return; ++ } ++ if (pi->flag_next[x] == 1 && pi->vram_next[x] == cc) { ++ pi->flag_next[x] = -1; ++ pic2_write_bits(pi, 3, 2); ++ } else if (pi->flag_next[x - 1] == 1 && pi->vram_next[x - 1] == cc) { ++ pi->flag_next[x - 1] = -1; ++ pic2_write_bits(pi, 11, 4); ++ } else if (pi->flag_next[x + 1] == 1 && pi->vram_next[x + 1] == cc) { ++ pi->flag_next[x + 1] = -1; ++ pic2_write_bits(pi, 9, 4); ++ } else if (pi->flag_next[x - 2] == 1 && pi->vram_next[x - 2] == cc) { ++ pi->flag_next[x - 2] = -1; ++ pic2_write_bits(pi, 10, 4); ++ } else if ((pi->flag_next[x + 2] == 1 && pi->vram_next[x + 2] == cc) ++ && !(pi->flag_now[x + 2] != 0 && pi->vram_now[x + 2] == cc)) { ++ pi->flag_next[x + 2] = -1; ++ pic2_write_bits(pi, 8, 4); ++ } else ++ pic2_write_bits(pi, 0, 1); ++} ++ ++static void pic2_fast_press_chain2(pi, x) ++struct pic2_info *pi; ++int x; ++{ ++ int ymax; ++ pixel cc; ++ char *chain_buff; ++ ++ ymax = pi->block->y_wid -1; ++ chain_buff = (char *) pi->mulu_tab; ++ cc = pi->vram_now[x]; ++ ++ if (pi->ynow - 1 == ymax) { ++ chain_buff[pi->cc++] = 0; ++ return; ++ } ++ if (pi->flag_next[x] == 1 && pi->vram_next[x] == cc) { ++ pi->flag_next[x] = -1; ++ chain_buff[pi->cc++] = 1; ++ } else if (pi->flag_next[x - 1] == 1 && pi->vram_next[x - 1] == cc) { ++ pi->flag_next[x - 1] = -1; ++ chain_buff[pi->cc++] = 2; ++ } else if (pi->flag_next[x + 1] == 1 && pi->vram_next[x + 1] == cc) { ++ pi->flag_next[x + 1] = -1; ++ chain_buff[pi->cc++] = 3; ++ } else if (pi->flag_next[x - 2] == 1 && pi->vram_next[x - 2] == cc) { ++ pi->flag_next[x - 2] = -1; ++ chain_buff[pi->cc++] = 4; ++ } else if ((pi->flag_next[x + 2] == 1 && pi->vram_next[x + 2] == cc) ++ && !(pi->flag_now[x + 2] != 0 && pi->vram_now[x + 2] == cc)) { ++ pi->flag_next[x + 2] = -1; ++ chain_buff[pi->cc++] = 5; ++ } else ++ chain_buff[pi->cc++] = 0; ++} ++ ++static void pic2_fast_flush_chain(pi) ++struct pic2_info *pi; ++{ ++ int i; ++ char *chain_buf; ++ ++ chain_buf = (char *) pi->mulu_tab; ++ for (i = 0; i < pi->cc; i++){ ++ switch (chain_buf[i]) { ++ case 0: ++ pic2_write_bits(pi, 0, 1); ++ break; ++ case 1: ++ pic2_write_bits(pi, 3, 2); ++ break; ++ case 2: ++ pic2_write_bits(pi, 11, 4); ++ break; ++ case 3: ++ pic2_write_bits(pi, 9, 4); ++ break; ++ case 4: ++ pic2_write_bits(pi, 10, 4); ++ break; ++ case 5: ++ pic2_write_bits(pi, 8, 4); ++ break; ++ } ++ } ++ pi->cc = 0; ++} ++ ++static void pic2_fast_write_color(pi, x) ++struct pic2_info *pi; ++int x; ++{ ++ pixel cc, bc; ++ unsigned short j, k, m; ++ short depth, colbits; ++ pixel (*cache)[PIC2_FAST_CACHE]; ++ ++ depth = pi->header->depth; ++ colbits = depth / 3; ++ cache = (pixel (*)[PIC2_FAST_CACHE]) pi->cache; ++ ++ bc = pi->vram_now[x - 1]; ++ bc = pic2_exchange_rg(bc, colbits); ++ k = pic2_shift_bits(bc, 8 - depth); ++ cc = pi->vram_now[x]; ++ m = pi->cache_pos[k]; ++ ++ for (j = 0; j < PIC2_FAST_CACHE; j++) ++ if (cache[k][(m + j) & (PIC2_FAST_CACHE - 1)] == cc) ++ break; ++ ++ if (j == PIC2_FAST_CACHE) { ++ m = (m - 1) & (PIC2_FAST_CACHE - 1); ++ pi->cache_pos[k] = m; ++ cache[k][m] = cc; ++ ++ cc = pic2_exchange_rg(cc, colbits); ++ pic2_write_bits(pi, 0, 1); ++ pic2_write_bits(pi, cc, depth); ++ } else { ++ pic2_write_bits(pi, 1, 1); ++ pic2_write_bits(pi, j, 6); ++ } ++} ++ ++static void pic2_fast_press_line2(pi) ++struct pic2_info *pi; ++{ ++ int x, xw; ++ pixel cc; ++ ++ xw = pi->block->x_wid; ++ cc = pi->vram_now[xw - 1]; /* last color */ ++ pi->vram_next[-1] = cc; ++ ++ /* mark change point */ ++ for (x = 0; x < xw; x++) ++ if (cc != pi->vram_next[x]) { ++ pi->flag_next[x] = 1; ++ cc = pi->vram_next[x]; ++ } else ++ pi->flag_next[x] = 0; ++ ++ for (x = 0; x < xw; x++) ++ if (pi->flag_now[x] == 1) { /* change point */ ++ if (pi->aa >= 1023) ++ pi->aa++; ++ pic2_fast_write_length(pi, pi->aa); ++ pic2_fast_flush_chain(pi); ++ pi->aa = 0; ++ pic2_fast_write_color(pi, x); ++ pic2_fast_press_chain(pi, x); ++ } else if (pi->flag_now[x] == 0) { ++ pi->aa++; ++ } else { ++ pic2_fast_press_chain2(pi, x); ++ if (pi->cc == 1023) { ++ pic2_fast_write_length(pi, 1023); ++ pic2_fast_flush_chain(pi); ++ pi->aa = 0; ++ } ++ } ++} ++ ++static int pic2_fast_press_line(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ int xw, ymax; ++ ++ xw = pi->block->x_wid; ++ ymax = pi->block->y_wid -1; ++ ++ pic2_handle_para(pi, 0); ++ ++ if (pi->ynow == 0) { /* first line */ ++ int x; ++ pixel cc = 0; ++ ++ /* initialize flags */ ++ xvbzero((char *) pi->cache, 256 * sizeof(pi->cache[0])); ++ xvbzero((char *) pi->cache_pos, ++ PIC2_FAST_CACHE * sizeof(pi->cache_pos[0])); ++ ++ /* mark change point */ ++ pi->vram_next[-1] = cc; ++ for (x = 0; x < xw; x++) ++ if (cc != pi->vram_next[x]) { ++ pi->flag_next[x] = 1; ++ cc = pi->vram_next[x]; ++ } else ++ pi->flag_next[x] = 0; ++ ++ pi->cc = 0; ++ pi->aa = 0; ++ } else /* after second line */ ++ pic2_fast_press_line2(pi); ++ ++ if (pi->ynow == ymax) { ++ pi->ynow++; ++ pic2_handle_para(pi, 1); ++ pic2_handle_para(pi, 0); ++ pic2_fast_press_line2(pi); ++ } ++ /* line buffer for next data */ ++ if (line != NULL) ++ *line = pi->vram_prev; ++ ++ pi->ynow++; ++ ++ if (pi->ynow - 1 < ymax) { ++ pic2_handle_para(pi, 1); ++ return (pi->ynow); ++ } else { /* end */ ++ pic2_handle_para(pi, 1); ++ if (pi->aa >= 1023) ++ pi->aa++; ++ pic2_fast_write_length(pi, pi->aa); ++ pic2_fast_flush_chain(pi); ++ return (-2); /* end */ ++ } ++} ++ ++static int pic2_fast_saver_init(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ pi->ynow = 0; ++ ++ /* check the color depth */ ++ if (pi->header->depth % 3) ++ pic2_error(pi, PIC2_DEPTH); ++ ++ /* set next line function */ ++ pi->next_line = pic2_fast_press_line; ++ if (line != NULL) ++ *line = pi->vram_next + 4; ++ ++ pic2_seek_file(pi, pi->next_pos + PIC2_BLOCK_HEADER_SIZE, SEEK_SET); ++ ++ /* clear bit field marker */ ++ pi->bs.rest = 0; ++ pi->bs.cur = 0; ++ ++ return (0); ++} ++ ++/* ++ * These functions are beta pic2 format compressor. ++ */ ++static int pic2_beta_press_line(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ int i, xw, ymax; ++ byte *p; ++ pixel *pc; ++ short depth, pixbyte, colbits; ++ ++ depth = pi->header->depth; ++ pixbyte = depth / 8 + ((depth % 8) > 0); ++ colbits = depth / 3; ++ ++ xw = pi->block->x_wid; ++ ymax = pi->block->y_wid - 1; ++ ++ pc = pi->vram_now; ++ p = (byte *) pi->vram_prev; ++ if (pixbyte == 3) { ++ for (i = 0; i < xw; i++, pc++) { ++ *p++ = *pc >> 16; ++ *p++ = *pc >> 8; ++ *p++ = *pc; ++ } ++ pic2_write_file(pi, pi->vram_prev, (size_t) (xw * 3)); ++ } else if (pixbyte == 2) { ++ if (strncmp(pi->block->id, "P2BM", 4) == 0) ++ for (i = 0; i < xw; i++, pc++) { ++ if (colbits == 5) { ++ *pc = pic2_exchange_rg(*pc, colbits); ++ *pc <<= 1; ++ } ++ *p++ = *pc >> 8; ++ *p++ = *pc; ++ } ++ else ++ for (i = 0; i < xw; i++, pc++) { ++ if (colbits == 5) { ++ *pc = pic2_exchange_rg(*pc, colbits); ++ *pc <<= 1; ++ } ++ *p++ = *pc; ++ *p++ = *pc >> 8; ++ } ++ pic2_write_file(pi, pi->vram_prev, (size_t) (xw * 2)); ++ } else { ++ for (i = 0; i < xw; i++, pc++) ++ *p++ = *pc; ++ pic2_write_file(pi, pi->vram_prev, (size_t) xw); ++ } ++ if (line != NULL) ++ *line = pi->vram_now; ++ ++ pi->ynow++; ++ if (pi->ynow > ymax) ++ return (-2); ++ return (pi->ynow); ++} ++ ++static int pic2_beta_saver_init(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ pi->ynow = 0; ++ ++ *line = pi->vram_now; ++ pi->next_line = pic2_beta_press_line; ++ pic2_seek_file(pi, pi->next_pos + PIC2_BLOCK_HEADER_SIZE, SEEK_SET); ++ return (0); ++} ++ ++/* ++ * This function saves compressed data. ++ */ ++static void pic2_write_data(pi, data, ptype, x_offset, y_offset, w, h, ++ rmap, gmap, bmap, type, depth) ++struct pic2_info *pi; ++byte *data; ++int ptype; ++int x_offset, y_offset; ++int w, h; ++byte *rmap, *gmap, *bmap; ++int type, depth; ++{ ++ int i, line; ++ pixel *linep; ++ short colbits; ++ ++ colbits = pi->header->depth / 3; ++ ++ line = pic2_save_block(pi, &linep, x_offset, y_offset, w, h, ++ form_tab[type].id, 0xffffffff); ++ while (line >= 0) { ++ byte r, g, b; ++ int pic_idx; ++ ++ pic_idx = line * w * ((ptype == PIC24) ? 3 : 1); ++ ++ for (i = 0; i < w; i++) { ++ if (ptype != PIC24) { ++ r = rmap[data[pic_idx]]; ++ g = gmap[data[pic_idx]]; ++ b = bmap[data[pic_idx]]; ++ pic_idx++; ++ } else { ++ r = data[pic_idx++]; ++ g = data[pic_idx++]; ++ b = data[pic_idx++]; ++ } ++ if (pi->writing_grey) ++ r = g = b = MONO(r, g, b); ++ ++ r = pic2_convert_color_bits(r, 8, colbits); ++ g = pic2_convert_color_bits(g, 8, colbits); ++ b = pic2_convert_color_bits(b, 8, colbits); ++ ++ linep[i] = ((pixel) r << (colbits * 2)) ++ | ((pixel) g << colbits ) ++ | ((pixel) b ); ++ } ++ line = pic2_next_line(pi, &linep); ++ WaitCursor(); ++ } ++} ++ ++/* ++ * This function compresses/extracts one line buffer. ++ */ ++static int pic2_next_line(pi, line) ++struct pic2_info *pi; ++pixel **line; ++{ ++ int res; ++ ++ res = pi->next_line(pi, line); ++ if (res == -2) { ++ if (pi->mode == PIC2_WRITE_MODE) { ++ long new_pos; ++ ++ new_pos = pic2_tell_file(pi); ++ pi->block->size = new_pos - pi->next_pos; ++ pic2_seek_file(pi, pi->next_pos, SEEK_SET); ++ pic2_write_block_header(pi); ++ pi->next_pos = new_pos; ++ if (DEBUG) ++ pic2_show_pic2_info(pi); ++ } ++ pic2_free_buffer(pi); ++ } ++ return (res); ++} ++ ++/* ++ * These functions find the pic2 image block. ++ * pic2_next_block: ++ * moves the file pointer to the next image block. ++ * pic2_find_block: ++ * finds the first image block and moves the file pointer there. ++ */ ++static int pic2_next_block(pi) ++struct pic2_info *pi; ++{ ++ int i; ++ ++ if (pi->mode != PIC2_READ_MODE) ++ return (-1); ++ ++ /* go to block for read */ ++ pic2_seek_file(pi, pi->next_pos, SEEK_SET); ++ ++ /* read the head of block header */ ++ pic2_read_block_header1(pi); ++ ++ /* end block ? */ ++ if (pi->block->id[0] == 0) ++ return (0); ++ ++ /* set current block */ ++ pi->block_pos = pi->next_pos; ++ ++ /* set next block */ ++ pi->next_pos += pi->block->size; ++ ++ /* check block id */ ++ for (i = 0; i < n_form_tab; i++) { ++ if (xvbcmp(pi->block->id, form_tab[i].id, (size_t) 4) == 0) ++ break; ++ } ++ if (i == n_form_tab) ++ return (2); ++ ++ /* read the rest of block header */ ++ pic2_read_block_header2(pi); ++ ++ if (pi->block->x_offset + pi->block->x_wid > pi->x_max) ++ pi->x_max = pi->block->x_offset + pi->block->x_wid; ++ ++ if (pi->block->y_offset + pi->block->y_wid > pi->y_max) ++ pi->y_max = pi->block->y_offset + pi->block->y_wid; ++ ++ if (DEBUG) ++ pic2_show_pic2_info(pi); ++ return (1); ++} ++ ++static int pic2_find_block(pi) ++struct pic2_info *pi; ++{ ++ if (pi->mode != PIC2_READ_MODE) ++ return (-1); ++ ++ pi->next_pos = pi->header->size; ++ return (pic2_next_block(pi)); ++} ++ ++/* ++ * These functions load/save the pic2 image block. ++ * pic2_load_block: ++ * initializes loader information with current block information. ++ * pic2_save_block: ++ * initializes saver information. ++ */ ++static int pic2_load_block(pi) ++struct pic2_info *pi; ++{ ++ int i; ++ ++ for (i = 0; i < n_form_tab; i++) { ++ if (xvbcmp(pi->block->id, form_tab[i].id, (size_t) 4) == 0) ++ break; ++ } ++ if (i == n_form_tab) ++ return (2); ++ ++ pic2_alloc_buffer(pi); ++ return (form_tab[i].loader_init(pi)); ++} ++ ++static int pic2_save_block(pi, line, x, y, xw, yw, id, opaque) ++struct pic2_info *pi; ++pixel **line; ++int x, y, xw, yw; ++char *id; ++pixel opaque; ++{ ++ int i; ++ ++ for (i = 0; i < n_form_tab; i++) { ++ if (xvbcmp(id, form_tab[i].id, (size_t) 4) == 0) ++ break; ++ } ++ if (i == n_form_tab) ++ return (2); ++ ++ strncpy(pi->block->id, id, 4); ++ pi->block->x_wid = xw; ++ pi->block->y_wid = yw; ++ pi->block->x_offset = x; ++ pi->block->y_offset = y; ++ pi->block->reserve = 0; ++ ++ if (x < 0) ++ x = 0; ++ if (y < 0) ++ y = 0; ++ if (x + xw > pi->x_max) ++ pi->x_max = x + xw; ++ if (y + yw > pi->y_max) ++ pi->y_max = y + yw; ++ ++ if (opaque != 0xffffffff) { ++ pi->block->flag = 1; ++ pi->block->opaque = opaque; ++ } else { ++ pi->block->flag = 0; ++ pi->block->opaque = 0; ++ } ++ pic2_alloc_buffer(pi); ++ ++ return (form_tab[i].saver_init(pi, line)); ++} ++ ++/* ++ * These functions set/get palettes. ++ * pic2_read_palette: ++ * copy the palettes from pic2_info to PICINFO. ++ * pic2_write_palette: ++ * copy the palettes from PICINFO to pic2_info. ++ */ ++#ifndef PIC2_IGNORE_UNUSED_FUNCTIONS ++static void pic2_read_palette(pi, r, g, b) ++struct pic2_info *pi; ++byte *r, *g, *b; ++{ ++ int i; ++ ++ if (pi->n_pal > 256) ++ pi->n_pal = 256; ++ ++ if (pi->pal_bits > 8) ++ pi->pal_bits = 8; ++ ++ for (i = 0; i < pi->n_pal; i++) { ++ *r++ =pic2_convert_color_bits(pi->pal[i][0] >> (8 - pi->pal_bits), ++ pi->pal_bits, 8); ++ *g++ =pic2_convert_color_bits(pi->pal[i][1] >> (8 - pi->pal_bits), ++ pi->pal_bits, 8); ++ *b++ =pic2_convert_color_bits(pi->pal[i][2] >> (8 - pi->pal_bits), ++ pi->pal_bits, 8); ++ } ++} ++ ++static void pic2_write_palette(pi, n_pal, pal_bits, r, g, b) ++struct pic2_info *pi; ++int n_pal, pal_bits; ++byte *r, *g, *b; ++{ ++ int i; ++ ++ if (n_pal > 256) ++ pi->n_pal = 256; ++ else ++ pi->n_pal = n_pal; ++ ++ if (pal_bits > 8) ++ pi->pal_bits = 8; ++ else ++ pi->pal_bits = pal_bits; ++ ++ for (i = 0; i < n_pal; i++) { ++ pi->pal[i][0] = pic2_convert_color_bits(*r++, 8, pal_bits) ++ << (8 - pal_bits); ++ pi->pal[i][1] = pic2_convert_color_bits(*g++, 8, pal_bits) ++ << (8 - pal_bits); ++ pi->pal[i][2] = pic2_convert_color_bits(*b++, 8, pal_bits) ++ << (8 - pal_bits); ++ } ++} ++#endif /* PIC2_IGNORE_UNUSED_FUNCTIONS */ ++ ++/* ++ * These functions handle color bits. ++ * pic2_convert_color_bits: ++ * converts color bits. ++ * pic2_pad_color_bits: ++ * pads color bits. ++ * pic2_reduce_color_bits: ++ * reduces color bits. ++ * pic2_exchange_rg: ++ * exchanges red and green values. ++ */ ++static byte pic2_convert_color_bits(c, from, to) ++int c, from, to; ++{ ++ if (from == to) ++ return ((byte) c); ++ else if (from < to) ++ return (pic2_pad_color_bits(c, from, to)); ++ else ++ return (pic2_reduce_color_bits(c, from, to)); ++} ++ ++static byte pic2_pad_color_bits(c, from, to) ++int c, from, to; ++{ ++ byte p = 0; ++ ++ do { ++ to -= from; ++ p |= pic2_shift_bits(c, to); ++ } while (to >= 0); ++ return (p); ++} ++ ++static byte pic2_reduce_color_bits(c, from, to) ++int c, from, to; ++{ ++ return ((byte) (c >> (from - to))); ++} ++ ++static pixel pic2_exchange_rg(p, colbits) ++pixel p; ++int colbits; ++{ ++ pixel rmask, gmask, bmask; ++ ++ rmask = (0xff >> (8 - colbits)) << (colbits * 2); ++ gmask = (0xff >> (8 - colbits)) << colbits; ++ bmask = (0xff >> (8 - colbits)); ++ ++ p = ((p << colbits) & rmask) ++ | ((p >> colbits) & gmask) ++ | ( p & bmask); ++ return (p); ++} ++ ++/* ++ * This function handles work memory buffer. ++ */ ++static void pic2_handle_para(pi, mode) ++struct pic2_info *pi; ++int mode; ++{ ++ static pixel *vram_prev, *vram_now, *vram_next; ++ static short *flag_now, *flag_next; ++ static short *flag2_now, *flag2_next, *flag2_next2; ++ ++ switch (mode) { ++ case 0: ++ vram_prev = pi->vram_prev; ++ vram_now = pi->vram_now; ++ vram_next = pi->vram_next; ++ flag_now = pi->flag_now; ++ flag_next = pi->flag_next; ++ flag2_now = pi->flag2_now; ++ flag2_next = pi->flag2_next; ++ flag2_next2 = pi->flag2_next2; ++ pi->vram_prev += 4; ++ pi->vram_now += 4; ++ pi->vram_next += 4; ++ pi->flag_now += 4; ++ pi->flag_next += 4; ++ pi->flag2_now += 4; ++ pi->flag2_next += 4; ++ pi->flag2_next2 += 4; ++ break; ++ case 1: ++ pi->vram_prev = vram_now; ++ pi->vram_now = vram_next; ++ pi->vram_next = vram_prev; ++ pi->flag_now = flag_next; ++ pi->flag_next = flag_now; ++ pi->flag2_now = flag2_next; ++ pi->flag2_next = flag2_next2; ++ pi->flag2_next2 = flag2_now; ++ break; ++ } ++} ++ ++/* ++ * These functions alloc/free work memory. ++ * pic2_alloc_buffer: ++ * alloc work memory buffer. ++ * pic2_free_buffer: ++ * free work memory buffer. ++ */ ++static int pic2_alloc_buffer(pi) ++struct pic2_info *pi; ++{ ++ int wid; ++ byte *p; ++ ++ if (pi->buf != NULL) ++ return (-1); ++ ++ wid = pi->block->x_wid; ++ ++ p = pi->buf = (byte *) pic2_new((wid + 8) * sizeof(pixel) * 3 // GRR POSSIBLE OVERFLOW / FIXME ++ + sizeof(pi->cache[0]) * 8 * 8 * 8 ++ + sizeof(pi->cache_pos[0]) * 8 * 8 * 8 ++ + sizeof(pi->mulu_tab[0]) * 16384 ++ + sizeof(pi->flag_now[0]) * ((wid+8) * 5), ++ "pic2_alloc_buffer"); ++ ++ pi->vram_prev = (pixel *) p; ++ p += (wid + 8) * sizeof(pixel); ++ pi->vram_now = (pixel *) p; ++ p += (wid + 8) * sizeof(pixel); ++ pi->vram_next = (pixel *) p; ++ p += (wid + 8) * sizeof(pixel); ++ pi->cache = (pixel (*)[PIC2_ARITH_CACHE]) p; ++ p += sizeof(pi->cache[0]) * 8 * 8 * 8; ++ pi->cache_pos = (unsigned short *) p; ++ p += sizeof(pi->cache_pos[0]) * 8 * 8 * 8; ++ pi->mulu_tab = (unsigned short *) p; ++ p += sizeof(pi->mulu_tab[0]) * 16384; ++ pi->flag_now = (short *) p; ++ p += sizeof(pi->flag_now[0]) * (wid + 8); ++ pi->flag_next = (short *) p; ++ p += sizeof(pi->flag_next[0]) * (wid + 8); ++ pi->flag2_now = (short *) p; ++ p += sizeof(pi->flag2_now[0]) * (wid + 8); ++ pi->flag2_next = (short *) p; ++ p += sizeof(pi->flag2_next[0]) * (wid + 8); ++ pi->flag2_next2 = (short *) p; ++ p += sizeof(pi->flag2_next2[0]) * (wid + 8); ++ return (0); ++} ++ ++static void pic2_free_buffer(pi) ++struct pic2_info *pi; ++{ ++ free(pi->buf); ++ pi->buf = NULL; ++} ++ ++/* ++ * These functions handle the file pointer. ++ * pic2_seek_file: ++ * moves the file pointer. ++ * pic2_tell_file: ++ * tells the location of the file pointer. ++ */ ++static long pic2_seek_file(pi, offset, whence) ++struct pic2_info *pi; ++long offset; ++int whence; ++{ ++ long n; ++ ++ n = fseek(pi->fp, offset, whence); ++ if (n < 0) ++ pic2_file_error(pi, PIC2_CORRUPT); ++ ++ return (n); ++} ++ ++static long pic2_tell_file(pi) ++struct pic2_info *pi; ++{ ++ return (ftell(pi->fp)); ++} ++ ++/* ++ * These functions handle file. ++ * pic2_read_file: ++ * reads data from the file. ++ * pic2_read_long: ++ * reads long word data from the file and converts to internal expression. ++ * pic2_read_short: ++ * reads word data from the file and converts to internal expression. ++ * pic2_read_char: ++ * reads byte data from the file. ++ * pic2_write_file: ++ * writes data to the file. ++ * pic2_write_long: ++ * converts long word data to common expression and writes to the file. ++ * pic2_write_short: ++ * converts word data to common expression and writes to the file. ++ * pic2_write_char: ++ * writes byte data to the file. ++ */ ++static int pic2_read_file(pi, buf, size) ++struct pic2_info *pi; ++void *buf; ++size_t size; ++{ ++ if (fread(buf, (size_t) 1, size, pi->fp) < size) ++ pic2_file_error(pi, PIC2_CORRUPT); ++ return (0); ++} ++ ++static long pic2_read_long(pi) ++struct pic2_info *pi; ++{ ++ byte buf[4]; ++ ++ if (fread(buf, (size_t) 4, (size_t) 1, pi->fp) < 1) ++ pic2_file_error(pi, PIC2_CORRUPT); ++ return (pic2_cextolong(buf)); ++} ++ ++static short pic2_read_short(pi) ++struct pic2_info *pi; ++{ ++ byte buf[2]; ++ ++ if (fread(buf, (size_t) 2, (size_t) 1, pi->fp) < 1) ++ pic2_file_error(pi, PIC2_CORRUPT); ++ return (pic2_cextoshort(buf)); ++} ++ ++static char pic2_read_char(pi) ++struct pic2_info *pi; ++{ ++ int c; ++ ++ if ((c = fgetc(pi->fp)) == EOF) ++ pic2_file_error(pi, PIC2_CORRUPT); ++ return ((char) c); ++} ++ ++static int pic2_write_file(pi, buf, size) ++struct pic2_info *pi; ++void *buf; ++size_t size; ++{ ++ if (fwrite(buf, (size_t) 1, size, pi->fp) < size) ++ pic2_error(pi, PIC2_WRITE); ++ return (0); ++} ++ ++static int pic2_write_long(pi, n) ++struct pic2_info *pi; ++long n; ++{ ++ byte buf[4]; ++ ++ pic2_longtocex(buf, n); ++ if (fwrite(buf, (size_t) 4, (size_t) 1, pi->fp) < 1) ++ pic2_error(pi, PIC2_WRITE); ++ return (0); ++} ++ ++static int pic2_write_short(pi, n) ++struct pic2_info *pi; ++int n; ++{ ++ byte buf[2]; ++ ++ pic2_shorttocex(buf, n); ++ if (fwrite(buf, (size_t) 2, (size_t) 1, pi->fp) < 1) ++ pic2_error(pi, PIC2_WRITE); ++ return (0); ++} ++ ++static int pic2_write_char(pi, c) ++struct pic2_info *pi; ++int c; ++{ ++ if (fputc(c, pi->fp) == EOF) ++ pic2_error(pi, PIC2_WRITE); ++ return (0); ++} ++ ++/* ++ * These functions access the bit stream. ++ * pic2_read_bits: ++ * reads the specified bits from the file. ++ * pic2_write_bits: ++ * writes the specified bits to the file. ++ * pic2_flush_bits: ++ * flushes bit buffer to the file. ++ */ ++static unsigned long pic2_read_bits(pi, bits) ++struct pic2_info *pi; ++int bits; ++{ ++ unsigned long r = 0; ++ ++ while (bits > 0) { ++ while (pi->bs.rest > 0 && bits > 0) { ++ r = (r << 1) | (pi->bs.cur & 0x80 ? 1 : 0); ++ pi->bs.cur <<= 1; ++ pi->bs.rest--; ++ bits--; ++ } ++ if (bits > 0) { ++ int c; ++ if ((c = fgetc(pi->fp)) == EOF) ++ pic2_file_error(pi, PIC2_CORRUPT); ++ pi->bs.cur = (byte) c; ++ pi->bs.rest = 8; ++ } ++ } ++ return r; ++} ++ ++static void pic2_write_bits(pi, dat, bits) ++struct pic2_info *pi; ++unsigned long dat; ++int bits; ++{ ++ unsigned long dat_mask = 1 << (bits - 1); ++ ++ while (bits > 0) { ++ while (pi->bs.rest < 8 && bits > 0) { ++ pi->bs.cur <<= 1; ++ if (dat & dat_mask) ++ pi->bs.cur |= 1; ++ pi->bs.rest++; ++ bits--; ++ dat_mask >>= 1; ++ } ++ if (pi->bs.rest >= 8) { ++ if ((fputc((int) pi->bs.cur, pi->fp)) == EOF) ++ pic2_error(pi, PIC2_WRITE); ++ pi->bs.cur = 0; ++ pi->bs.rest = 0; ++ } ++ } ++} ++ ++static void pic2_flush_bits(pi) ++struct pic2_info *pi; ++{ ++ if (pi->bs.rest < 8) { ++ pi->bs.cur <<= 8 - pi->bs.rest; ++ if (fputc((int) pi->bs.cur, pi->fp) == EOF) ++ pic2_error(pi, PIC2_WRITE); ++ pi->bs.cur = 0; ++ pi->bs.rest = 0; ++ } ++} ++ ++/* ++ * These functions initialize or clean up structures. ++ * pic2_init_info: ++ * initializes a pic2_info structure. ++ * pic2_cleanup_pic2_info: ++ * cleans up a pic_info structure. ++ * pic2_cleanup_pinfo: ++ * cleans up a PICINFO structure. ++ */ ++static void pic2_init_info(pi) ++struct pic2_info *pi; ++{ ++ xvbzero((char *) pi, sizeof(struct pic2_info)); ++ pi->header = pic2_new(sizeof(struct pic2_header), "pic2_init_info#1"); ++ pi->block = pic2_new(sizeof(struct pic2_block), "pic2_init_info#2"); ++} ++ ++static void pic2_cleanup_pic2_info(pi, writing) ++struct pic2_info *pi; ++int writing; ++{ ++ if (!writing && pi->fp) ++ fclose(pi->fp); ++ if (pi->header) ++ free(pi->header); ++ if (pi->block) ++ free(pi->block); ++ pi->fp = NULL; ++ pi->header = NULL; ++ pi->block = NULL; ++ pi->comment = NULL; ++} ++ ++static void pic2_cleanup_pinfo(pinfo) ++PICINFO *pinfo; ++{ ++ if (pinfo->pic){ ++ free(pinfo->pic); ++ pinfo->pic = NULL; ++ } ++ if (pinfo->comment){ ++ free(pinfo->comment); ++ pinfo->comment = NULL; ++ } ++} ++ ++/* ++ * Error Handlers. ++ * pic2_memory_error: ++ * shows an error message and terminates. ++ * pic2_error: ++ * shows a non-file error message and jumps to the entry for errors. ++ * pic2_file_error: ++ * shows a file error message and jumps to the entry for errors. ++ */ ++static void pic2_memory_error(scm, fn) ++char *scm, *fn; ++{ ++ char buf[128]; ++ sprintf(buf, "%s: can't allocate memory. (%s)", scm, fn); ++ FatalError(buf); ++} ++ ++static void pic2_error(pi, mn) ++struct pic2_info *pi; ++int mn; ++{ ++ SetISTR(ISTR_WARNING, "%s", pic2_msgs[mn]); ++ longjmp(pi->jmp, 1); ++} ++ ++static void pic2_file_error(pi, mn) ++ struct pic2_info *pi; ++ int mn; ++{ ++ if (feof(pi->fp)) ++ SetISTR(ISTR_WARNING, "%s (end of file)", pic2_msgs[mn]); ++ else ++ SetISTR(ISTR_WARNING, "%s (%s)", pic2_msgs[mn], ERRSTR(errno)); ++ longjmp(pi->jmp, 1); ++} ++ ++static void pic2_show_pic2_info(pi) ++ struct pic2_info *pi; ++{ ++ fprintf(stderr, "file size: %ld.\n", pi->fsize); ++ fprintf(stderr, "full image size: %dx%d\n", pi->x_max, pi->y_max); ++ fprintf(stderr, "number of palettes: %d\n", pi->n_pal); ++ fprintf(stderr, "depth of palettes: %d\n", pi->pal_bits); ++ fprintf(stderr, "current block position: %ld\n", pi->block_pos); ++ fprintf(stderr, "next block position: %ld\n\n", pi->next_pos); ++ ++ fprintf(stderr, "header flag: %x\n", pi->header->flag); ++ fprintf(stderr, "header size: %ld\n", pi->header->size); ++ fprintf(stderr, "x_aspect: %d, y_aspect: %d\n", ++ pi->header->x_aspect, pi->header->y_aspect); ++ fprintf(stderr, "number of color bits: %d\n\n", pi->header->depth); ++ ++ fprintf(stderr, "image block id: %s\n", pi->block->id); ++ fprintf(stderr, "image block size: %ld\n", pi->block->size); ++ fprintf(stderr, "block flag: %x\n", pi->block->flag); ++ ++ fprintf(stderr, "block image size: %dx%d\n", ++ pi->block->x_wid, pi->block->y_wid); ++ fprintf(stderr, "x_offset: %d\n", pi->block->x_offset); ++ fprintf(stderr, "y_offset: %d\n", pi->block->y_offset); ++ fprintf(stderr, "opaque color: %lx\n\n", pi->block->opaque); ++} ++ ++/* ++ * This function is similar to strncpy. ++ * But this pads with whitespace after the null character. ++ */ ++static char *pic2_strncpy(dest, src, n) ++char *dest, *src; ++size_t n; ++{ ++ char *r; ++ ++ r = dest; ++ while (n--) ++ if ((src != NULL) && (*src != '\r') && (*src != '\n') && *src) ++ *dest++ = *src++; ++ else ++ *dest++ = ' '; ++ return (r); ++} ++ ++/* ++ * These functions create a memory block. ++ */ ++static void *pic2_malloc(size, fn) ++size_t size; ++char *fn; ++{ ++ void *p; ++ ++ p = (void *) malloc(size); ++ if (p == NULL) ++ pic2_memory_error("malloc", fn); ++ return (p); ++} ++ ++static void *pic2_new(size, fn) ++size_t size; ++char *fn; ++{ ++ void *p; ++ ++ p = (void *) pic2_malloc(size, fn); ++ xvbzero((char *) p, size); ++ return (p); ++} ++ ++ ++ ++ ++/**** Stuff for PIC2Dialog box ****/ ++ ++#define TWIDE 320 ++#define THIGH 178 ++#define T_NBUTTS 2 ++#define T_BOK 0 ++#define T_BCANC 1 ++#define BUTTH 24 ++ ++static void drawTD PARM((int,int,int,int)); ++static void clickTD PARM((int,int)); ++static void doCmd PARM((int)); ++static void writePIC2 PARM((void)); ++ ++/* local variables */ ++static FILE *fp; ++static char *filename; ++static int colorType; ++static int append; ++static int x_offset; ++static int y_offset; ++static BUTT tbut[T_NBUTTS]; ++static RBUTT *typeRB; ++static RBUTT *depthRB; ++ ++ ++ ++/***************************************************/ ++void CreatePIC2W() ++{ ++ int y; ++ ++ pic2W = CreateWindow("xv pic2", "XVpic2", NULL, ++ TWIDE, THIGH, infofg, infobg, 0); ++ if (!pic2W) ++ FatalError("can't create pic2 window!"); ++ ++ XSelectInput(theDisp, pic2W, ++ ExposureMask | ButtonPressMask | KeyPressMask); ++ ++ BTCreate(&tbut[T_BOK], pic2W, TWIDE-140-1, THIGH-10-BUTTH-1, 60, BUTTH, ++ "Ok", infofg, infobg, hicol, locol); ++ ++ BTCreate(&tbut[T_BCANC], pic2W, TWIDE-70-1, THIGH-10-BUTTH-1, 60, BUTTH, ++ "Cancel", infofg, infobg, hicol, locol); ++ ++ y = 55; ++ typeRB = RBCreate(NULL, pic2W, 36, y, "P2SS", ++ infofg, infobg,hicol,locol); ++ RBCreate(typeRB, pic2W, 36, y+18, "P2SF", ++ infofg, infobg,hicol,locol); ++ RBCreate(typeRB, pic2W, 36, y+36, "P2BM", ++ infofg, infobg, hicol, locol); ++ RBCreate(typeRB, pic2W, 36, y+54, "P2BI", ++ infofg, infobg, hicol, locol); ++ ++ depthRB = RBCreate(NULL, pic2W, TWIDE/2-16, y, " 3bit", ++ infofg, infobg,hicol,locol); ++ RBCreate(depthRB, pic2W, TWIDE/2-16, y+18, " 6bit", ++ infofg, infobg,hicol,locol); ++ RBCreate(depthRB, pic2W, TWIDE/2-16, y+36, " 9bit", ++ infofg, infobg, hicol, locol); ++ RBCreate(depthRB, pic2W, TWIDE/2-16, y+54, "12bit", ++ infofg, infobg, hicol, locol); ++ RBCreate(depthRB, pic2W, TWIDE/4*3-16, y, "15bit", ++ infofg, infobg, hicol, locol); ++ RBCreate(depthRB, pic2W, TWIDE/4*3-16, y+18, "18bit", ++ infofg, infobg, hicol, locol); ++ RBCreate(depthRB, pic2W, TWIDE/4*3-16, y+36, "21bit", ++ infofg, infobg, hicol, locol); ++ RBCreate(depthRB, pic2W, TWIDE/4*3-16, y+54, "24bit", ++ infofg, infobg, hicol, locol); ++ ++ XMapSubwindows(theDisp, pic2W); ++} ++ ++ ++/***************************************************/ ++void PIC2Dialog(vis) ++int vis; ++{ ++ if (vis) { ++ CenterMapWindow(pic2W, tbut[T_BOK].x + tbut[T_BOK].w/2, ++ tbut[T_BOK].y + tbut[T_BOK].h/2, TWIDE, THIGH); ++ } ++ else XUnmapWindow(theDisp, pic2W); ++ pic2Up = vis; ++} ++ ++ ++/***************************************************/ ++int PIC2CheckEvent(xev) ++XEvent *xev; ++{ ++ /* check event to see if it's for one of our subwindows. If it is, ++ deal accordingly and return '1'. Otherwise, return '0'. */ ++ ++ int rv; ++ rv = 1; ++ ++ if (!pic2Up) ++ return (0); ++ ++ if (xev->type == Expose) { ++ int x,y,w,h; ++ XExposeEvent *e = (XExposeEvent *) xev; ++ x = e->x; y = e->y; w = e->width; h = e->height; ++ ++ if (e->window == pic2W) drawTD(x, y, w, h); ++ else rv = 0; ++ } ++ ++ else if (xev->type == ButtonPress) { ++ XButtonEvent *e = (XButtonEvent *) xev; ++ int x,y; ++ x = e->x; y = e->y; ++ ++ if (e->button == Button1) { ++ if (e->window == pic2W) clickTD(x,y); ++ else rv = 0; ++ } /* button1 */ ++ else rv = 0; ++ } /* button press */ ++ ++ ++ else if (xev->type == KeyPress) { ++ XKeyEvent *e = (XKeyEvent *) xev; ++ char buf[128]; KeySym ks; XComposeStatus status; ++ int stlen; ++ ++ stlen = XLookupString(e,buf,128,&ks,&status); ++ buf[stlen] = '\0'; ++ ++ if (e->window == pic2W) { ++ if (stlen) { ++ if (buf[0] == '\r' || buf[0] == '\n') { /* enter */ ++ FakeButtonPress(&tbut[T_BOK]); ++ } ++ else if (buf[0] == '\033') { /* ESC */ ++ FakeButtonPress(&tbut[T_BCANC]); ++ } ++ } ++ } ++ else rv = 0; ++ } ++ else rv = 0; ++ ++ if (rv == 0 && (xev->type == ButtonPress || xev->type == KeyPress)) { ++ XBell(theDisp, 50); ++ rv = 1; /* eat it */ ++ } ++ ++ return (rv); ++} ++ ++ ++/***************************************************/ ++int PIC2SaveParams(fname, col) ++char *fname; ++int col; ++{ ++ filename = fname; ++ colorType = col; ++ ++ /* see if we can open the output file before proceeding */ ++ fp = pic2_OpenOutFile(filename, &append); ++ if (!fp) ++ return (-1); ++ ++ RBSetActive(typeRB,0,1); ++ RBSetActive(typeRB,1,1); ++ RBSetActive(typeRB,2,1); ++ RBSetActive(typeRB,3,1); ++ RBSelect(typeRB,0); ++ ++ ++ if (append) { ++ struct pic2_info pic2; ++ ++ pic2_init_info(&pic2); ++ pic2.fp = fp; ++ pic2_read_header(&pic2); ++ ++ RBSetActive(depthRB,0,0); ++ RBSetActive(depthRB,1,0); ++ RBSetActive(depthRB,2,0); ++ RBSetActive(depthRB,3,0); ++ RBSetActive(depthRB,4,0); ++ RBSetActive(depthRB,5,0); ++ RBSetActive(depthRB,6,0); ++ RBSetActive(depthRB,7,0); ++ ++ switch (pic2.header->depth) { ++ case 3: ++ RBSetActive(depthRB,0,1); ++ RBSelect(depthRB,0); ++ RBSetActive(typeRB,3,0); ++ break; ++ case 6: ++ RBSetActive(depthRB,1,1); ++ RBSelect(depthRB,1); ++ RBSetActive(typeRB,3,0); ++ break; ++ case 9: ++ RBSetActive(depthRB,2,1); ++ RBSelect(depthRB,2); ++ break; ++ case 12: ++ RBSetActive(depthRB,3,1); ++ RBSelect(depthRB,3); ++ break; ++ case 15: ++ RBSetActive(depthRB,4,1); ++ RBSelect(depthRB,4); ++ break; ++ case 18: ++ RBSetActive(depthRB,5,1); ++ RBSelect(depthRB,5); ++ RBSetActive(typeRB,3,0); ++ break; ++ case 21: ++ RBSetActive(depthRB,6,1); ++ RBSelect(depthRB,6); ++ RBSetActive(typeRB,3,0); ++ break; ++ case 24: ++ RBSetActive(depthRB,7,1); ++ RBSelect(depthRB,7); ++ RBSetActive(typeRB,3,0); ++ break; ++ default: { ++ char str[512]; ++ sprintf(str, "unsupported PIC2 file '%s'.", filename); ++ ErrPopUp(str, "\nBummer"); ++ CloseOutFile(fp, filename, 0); ++ fp = OpenOutFile(fname); ++ if (!fp) ++ return (-1); ++ break; ++ } ++ } ++ pic2_seek_file(&pic2, 0, SEEK_SET); ++ pic2_cleanup_pic2_info(&pic2, 1); ++ } else { ++ RBSetActive(depthRB,0,1); ++ RBSetActive(depthRB,1,1); ++ RBSetActive(depthRB,2,1); ++ RBSetActive(depthRB,3,1); ++ RBSetActive(depthRB,4,1); ++ RBSetActive(depthRB,5,1); ++ RBSetActive(depthRB,6,1); ++ RBSetActive(depthRB,7,1); ++ RBSelect(depthRB,7); ++ RBSetActive(typeRB,3,0); ++ } ++ return (0); ++} ++ ++ ++/***************************************************/ ++static void drawTD(x,y,w,h) ++int x,y,w,h; ++{ ++ char *title = "Save PIC2 file..."; ++ int i; ++ XRectangle xr; ++ ++ xr.x = x; xr.y = y; xr.width = w; xr.height = h; ++ XSetClipRectangles(theDisp, theGC, 0,0, &xr, 1, Unsorted); ++ ++ XSetForeground(theDisp, theGC, infofg); ++ XSetBackground(theDisp, theGC, infobg); ++ ++ for (i = 0; i < T_NBUTTS; i++) ++ BTRedraw(&tbut[i]); ++ ++ ULineString(pic2W, typeRB->x-16, typeRB->y-3-DESCENT, "FormatType"); ++ ULineString(pic2W, depthRB->x-16, depthRB->y-3-DESCENT, "ColorDepth"); ++ RBRedraw(typeRB, -1); ++ RBRedraw(depthRB, -1); ++ ++ DrawString(pic2W, 20, 29, title); ++ ++ XSetClipMask(theDisp, theGC, None); ++} ++ ++static void clickTD(x,y) ++int x,y; ++{ ++ int i; ++ BUTT *bp; ++ ++ /* check BUTTs */ ++ ++ /* check the RBUTTS first, since they don't DO anything */ ++ if ((i = RBClick(typeRB, x,y)) >= 0) { ++ (void) RBTrack(typeRB, i); ++ return; ++ } else if ((i = RBClick(depthRB, x,y)) >= 0) { ++ (void) RBTrack(depthRB, i); ++ if ((2 <= i) && (i <= 4)) ++ RBSetActive(typeRB,3,1); ++ else { ++ RBSetActive(typeRB,3,0); ++ if (RBWhich(typeRB) == 3) ++ RBSelect(typeRB,0); ++ return; ++ } ++ } ++ for (i = 0; i < T_NBUTTS; i++) { ++ bp = &tbut[i]; ++ if (PTINRECT(x, y, bp->x, bp->y, bp->w, bp->h)) ++ break; ++ } ++ if (i < T_NBUTTS) /* found one */ ++ if (BTTrack(bp)) ++ doCmd(i); ++} ++ ++ ++ ++/***************************************************/ ++static void doCmd(cmd) ++int cmd; ++{ ++ switch (cmd) { ++ case T_BOK: { ++ char *fullname; ++ char buf[64], *x_offsetp, *y_offsetp; ++ static char *labels[] = { "\nOk", "\033Cancel" }; ++ XEvent event; ++ int i; ++ ++ strcpy(buf, "0,0"); ++ i = GetStrPopUp("Enter offset (x,y):", labels, 2, buf, 64, ++ "01234567890,", 1); ++ ++ if (i) ++ return; ++ if (strlen(buf)==0) ++ return; ++ ++ x_offsetp = buf; ++ y_offsetp = index(buf, ','); ++ if (!y_offsetp) ++ return; ++ *(y_offsetp++) = '\0'; ++ if ((*x_offsetp == '\0') || (*y_offsetp == '\0')) ++ return; ++ x_offset = atoi(x_offsetp); ++ y_offset = atoi(y_offsetp); ++ ++ XNextEvent(theDisp, &event); ++ HandleEvent(&event, &i); ++ ++ writePIC2(); ++ PIC2Dialog(0); ++ ++ fullname = GetDirFullName(); ++ if (!ISPIPE(fullname[0])) { ++ XVCreatedFile(fullname); ++ StickInCtrlList(0); ++ } ++ } ++ break; ++ case T_BCANC: ++ pic2_KillNullFile(fp); ++ PIC2Dialog(0); ++ break; ++ default: ++ break; ++ } ++} ++ ++ ++/*******************************************/ ++static void writePIC2() ++{ ++ int w, h, nc, rv, type, depth, ptype, pfree; ++ byte *inpix, *rmap, *gmap, *bmap; ++ ++ ++ WaitCursor(); ++ inpix = GenSavePic(&ptype, &w, &h, &pfree, &nc, &rmap, &gmap, &bmap); ++ ++ if (colorType == F_REDUCED) ++ colorType = F_FULLCOLOR; ++ ++ switch (RBWhich(typeRB)) { ++ case 0: type = P2SS; break; ++ case 1: type = P2SF; break; ++ case 2: type = P2BM; break; ++ case 3: type = P2BI; break; ++ default: type = P2SS; break; ++ } ++ switch (RBWhich(depthRB)) { ++ case 0: depth = 3; break; ++ case 1: depth = 6; break; ++ case 2: depth = 9; break; ++ case 3: depth = 12; break; ++ case 4: depth = 15; break; ++ case 5: depth = 18; break; ++ case 6: depth = 21; break; ++ case 7: depth = 24; break; ++ default: depth = 24; break; ++ } ++ rv = WritePIC2(fp, inpix, ptype, w, h, ++ rmap, gmap, bmap, nc, colorType, filename, ++ type, depth, x_offset, y_offset, append, picComments); ++ ++ if (CloseOutFile(fp, filename, rv) == 0) ++ DirBox(0); ++ ++ if (pfree) ++ free(inpix); ++} ++#endif /* HAVE_PIC2 */ +diff -ruN xv-3.10a-bugfixes/xvpng.c xv-3.10a-enhancements/xvpng.c +--- xv-3.10a-bugfixes/xvpng.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvpng.c 2005-04-17 15:00:08.000000000 -0700 +@@ -0,0 +1,1081 @@ ++/* ++ * xvpng.c - load and write routines for 'PNG' format pictures ++ * ++ * callable functions ++ * ++ * CreatePNGW() ++ * PNGDialog(vis) ++ * PNGCheckEvent(xev) ++ * PNGSaveParams(fname, col) ++ * LoadPNG(fname, pinfo) ++ * VersionInfoPNG() ++ */ ++ ++/*#include "copyright.h"*/ ++/* (c) 1995 by Alexander Lehmann ++ * This file is a suplement to xv and is supplied under the same copying ++ * conditions (except the shareware part). ++ * Modified by Andreas Dilger to fix ++ * error handling for bad PNGs, add dialogs for interlacing and ++ * compression selection, and upgrade to libpng-0.89. ++ * Modified by Greg Roelofs, TenThumbs and others to fix bugs and add ++ * features. ++ * The copyright will be passed on to JB at some future point if he ++ * so desires. ++ */ ++ ++#include "xv.h" ++ ++#ifdef HAVE_PNG ++ ++#include "png.h" ++ ++/*** Stuff for PNG Dialog box ***/ ++#define PWIDE 318 ++#define PHIGH 215 ++ ++#define DISPLAY_GAMMA 2.20 /* default display gamma */ ++#define COMPRESSION 6 /* default zlib compression level, not max ++ (Z_BEST_COMPRESSION) */ ++ ++#define HAVE_tRNS (info_ptr->valid & PNG_INFO_tRNS) ++ ++#define DWIDE 86 ++#define DHIGH 104 ++#define PFX PWIDE-93 ++#define PFY 44 ++#define PFH 20 ++ ++#define P_BOK 0 ++#define P_BCANC 1 ++#define P_NBUTTS 2 ++ ++#define BUTTH 24 ++ ++#define LF 10 /* a.k.a. '\n' on ASCII machines */ ++#define CR 13 /* a.k.a. '\r' on ASCII machines */ ++ ++/*** local functions ***/ ++static void drawPD PARM((int, int, int, int)); ++static void clickPD PARM((int, int)); ++static void doCmd PARM((int)); ++static void writePNG PARM((void)); ++static int WritePNG PARM((FILE *, byte *, int, int, int, ++ byte *, byte *, byte *, int)); ++ ++static void png_xv_error PARM((png_structp png_ptr, ++ png_const_charp message)); ++static void png_xv_warning PARM((png_structp png_ptr, ++ png_const_charp message)); ++ ++/*** local variables ***/ ++static char *filename; ++static char *fbasename; ++static int colorType; ++static int read_anything; ++static double Display_Gamma = DISPLAY_GAMMA; ++ ++static DIAL cDial, gDial; ++static BUTT pbut[P_NBUTTS]; ++static CBUTT interCB; ++static CBUTT FdefCB, FnoneCB, FsubCB, FupCB, FavgCB, FPaethCB; ++ ++/**************************************************************************/ ++/* PNG SAVE DIALOG ROUTINES ***********************************************/ ++/**************************************************************************/ ++ ++ ++/*******************************************/ ++void CreatePNGW() ++{ ++ pngW = CreateWindow("xv png", "XVPNG", NULL, ++ PWIDE, PHIGH, infofg, infobg, 0); ++ if (!pngW) FatalError("can't create PNG window!"); ++ ++ XSelectInput(theDisp, pngW, ExposureMask | ButtonPressMask | KeyPressMask); ++ ++ DCreate(&cDial, pngW, 12, 25, DWIDE, DHIGH, (double)Z_NO_COMPRESSION, ++ (double)Z_BEST_COMPRESSION, COMPRESSION, 1.0, 3.0, ++ infofg, infobg, hicol, locol, "Compression", NULL); ++ ++ DCreate(&gDial, pngW, DWIDE+27, 25, DWIDE, DHIGH, 1.0, 3.5,DISPLAY_GAMMA,0.01,0.2, ++ infofg, infobg, hicol, locol, "Disp. Gamma", NULL); ++ ++ CBCreate(&interCB, pngW, DWIDE+30, DHIGH+3*LINEHIGH+2, "interlace", ++ infofg, infobg, hicol, locol); ++ ++ CBCreate(&FdefCB, pngW, PFX, PFY, "Default", ++ infofg, infobg, hicol, locol); ++ FdefCB.val = 1; ++ ++ CBCreate(&FnoneCB, pngW, PFX, FdefCB.y + PFH + 4, "none", ++ infofg, infobg, hicol, locol); ++ CBCreate(&FsubCB, pngW, PFX, FnoneCB.y + PFH, "sub", ++ infofg, infobg, hicol, locol); ++ CBCreate(&FupCB, pngW, PFX, FsubCB.y + PFH, "up", ++ infofg, infobg, hicol, locol); ++ CBCreate(&FavgCB, pngW, PFX, FupCB.y + PFH, "average", ++ infofg, infobg, hicol, locol); ++ CBCreate(&FPaethCB, pngW, PFX, FavgCB.y + PFH, "Paeth", ++ infofg, infobg, hicol, locol); ++ ++ FnoneCB.val = FsubCB.val = FupCB.val = FavgCB.val = FPaethCB.val = 1; ++ CBSetActive(&FnoneCB, !FdefCB.val); ++ CBSetActive(&FsubCB, !FdefCB.val); ++ CBSetActive(&FupCB, !FdefCB.val); ++ CBSetActive(&FavgCB, !FdefCB.val); ++ CBSetActive(&FPaethCB, !FdefCB.val); ++ ++ BTCreate(&pbut[P_BOK], pngW, PWIDE-180-1, PHIGH-10-BUTTH-1, 80, BUTTH, ++ "Ok", infofg, infobg, hicol, locol); ++ BTCreate(&pbut[P_BCANC], pngW, PWIDE-90-1, PHIGH-10-BUTTH-1, 80, BUTTH, ++ "Cancel", infofg, infobg, hicol, locol); ++ ++ XMapSubwindows(theDisp, pngW); ++} ++ ++ ++/*******************************************/ ++void PNGDialog(vis) ++ int vis; ++{ ++ if (vis) { ++ CenterMapWindow(pngW, pbut[P_BOK].x + (int) pbut[P_BOK].w/2, ++ pbut[P_BOK].y + (int) pbut[P_BOK].h/2, ++ PWIDE, PHIGH); ++ } ++ else XUnmapWindow(theDisp, pngW); ++ pngUp = vis; ++} ++ ++ ++/*******************************************/ ++int PNGCheckEvent(xev) ++ XEvent *xev; ++{ ++ /* check event to see if it's for one of our subwindows. If it is, ++ deal accordingly, and return '1'. Otherwise, return '0' */ ++ ++ int rv; ++ rv = 1; ++ ++ if (!pngUp) return 0; ++ ++ if (xev->type == Expose) { ++ int x,y,w,h; ++ XExposeEvent *e = (XExposeEvent *) xev; ++ x = e->x; y = e->y; w = e->width; h = e->height; ++ ++ /* throw away excess expose events for 'dumb' windows */ ++ if (e->count > 0 && (e->window == cDial.win)) {} ++ ++ else if (e->window == pngW) drawPD(x, y, w, h); ++ else if (e->window == cDial.win) DRedraw(&cDial); ++ else if (e->window == gDial.win) DRedraw(&gDial); ++ else rv = 0; ++ } ++ ++ else if (xev->type == ButtonPress) { ++ XButtonEvent *e = (XButtonEvent *) xev; ++ int x,y; ++ x = e->x; y = e->y; ++ ++ if (e->button == Button1) { ++ if (e->window == pngW) clickPD(x,y); ++ else if (e->window == cDial.win) DTrack(&cDial,x,y); ++ else if (e->window == gDial.win) DTrack(&gDial,x,y); ++ else rv = 0; ++ } /* button1 */ ++ else rv = 0; ++ } /* button press */ ++ ++ else if (xev->type == KeyPress) { ++ XKeyEvent *e = (XKeyEvent *) xev; ++ char buf[128]; KeySym ks; ++ int stlen; ++ ++ stlen = XLookupString(e,buf,128,&ks,(XComposeStatus *) NULL); ++ buf[stlen] = '\0'; ++ ++ RemapKeyCheck(ks, buf, &stlen); ++ ++ if (e->window == pngW) { ++ if (stlen) { ++ if (buf[0] == '\r' || buf[0] == '\n') { /* enter */ ++ FakeButtonPress(&pbut[P_BOK]); ++ } ++ else if (buf[0] == '\033') { /* ESC */ ++ FakeButtonPress(&pbut[P_BCANC]); ++ } ++ } ++ } ++ else rv = 0; ++ } ++ else rv = 0; ++ ++ if (rv==0 && (xev->type == ButtonPress || xev->type == KeyPress)) { ++ XBell(theDisp, 50); ++ rv = 1; /* eat it */ ++ } ++ ++ return rv; ++} ++ ++ ++/*******************************************/ ++void PNGSaveParams(fname, col) ++ char *fname; ++ int col; ++{ ++ filename = fname; ++ colorType = col; ++} ++ ++ ++/*******************************************/ ++static void drawPD(x, y, w, h) ++ int x, y, w, h; ++{ ++ char *title = "Save PNG file..."; ++ ++ char ctitle1[20]; ++ char *ctitle2 = "Useful range"; ++ char *ctitle3 = "is 2 - 7."; ++ char *ctitle4 = "Uncompressed = 0"; ++ ++ char *ftitle = "Row Filters:"; ++ ++ char gtitle[20]; ++ ++ int i; ++ XRectangle xr; ++ ++ xr.x = x; xr.y = y; xr.width = w; xr.height = h; ++ XSetClipRectangles(theDisp, theGC, 0,0, &xr, 1, Unsorted); ++ ++ XSetForeground(theDisp, theGC, infofg); ++ XSetBackground(theDisp, theGC, infobg); ++ ++ for (i=0; ix, bp->y, bp->w, bp->h)) break; ++ } ++ ++ if (ijmpbuf)) { ++ png_destroy_write_struct(&png_ptr, &info_ptr); ++ return -1; ++ } ++ ++ png_init_io(png_ptr, fp); ++ ++ png_set_compression_level(png_ptr, (int)cDial.val); ++ ++ /* Don't bother filtering if we aren't compressing the image */ ++ if (FdefCB.val) ++ { ++ if ((int)cDial.val == 0) ++ png_set_filter(png_ptr, 0, PNG_FILTER_NONE); ++ } ++ else ++ { ++ filter = FnoneCB.val ? PNG_FILTER_NONE : 0; ++ filter |= FsubCB.val ? PNG_FILTER_SUB : 0; ++ filter |= FupCB.val ? PNG_FILTER_UP : 0; ++ filter |= FavgCB.val ? PNG_FILTER_AVG : 0; ++ filter |= FPaethCB.val ? PNG_FILTER_PAETH : 0; ++ ++ png_set_filter(png_ptr, 0, filter); ++ } ++ ++ info_ptr->width = w; ++ info_ptr->height = h; ++ if (w <= 0 || h <= 0) { ++ SetISTR(ISTR_WARNING, "%s: image dimensions out of range (%dx%d)", ++ fbasename, w, h); ++ png_destroy_write_struct(&png_ptr, &info_ptr); ++ return -1; ++ } ++ ++ info_ptr->interlace_type = interCB.val ? 1 : 0; ++ ++ linesize = 0; /* quiet a compiler warning */ ++ ++ if (colorType == F_FULLCOLOR || colorType == F_REDUCED) { ++ if(ptype == PIC24) { ++ linesize = 3*w; ++ if (linesize/3 < w) { ++ SetISTR(ISTR_WARNING, "%s: image dimensions too large (%dx%d)", ++ fbasename, w, h); ++ png_destroy_write_struct(&png_ptr, &info_ptr); ++ return -1; ++ } ++ info_ptr->color_type = PNG_COLOR_TYPE_RGB; ++ info_ptr->bit_depth = 8; ++ } else { ++ linesize = w; ++ info_ptr->color_type = PNG_COLOR_TYPE_PALETTE; ++ if(numcols <= 2) ++ info_ptr->bit_depth = 1; ++ else ++ if(numcols <= 4) ++ info_ptr->bit_depth = 2; ++ else ++ if(numcols <= 16) ++ info_ptr->bit_depth = 4; ++ else ++ info_ptr->bit_depth = 8; ++ ++ for(i = 0; i < numcols; i++) { ++ palette[i].red = rmap[i]; ++ palette[i].green = gmap[i]; ++ palette[i].blue = bmap[i]; ++ } ++ info_ptr->num_palette = numcols; ++ info_ptr->palette = palette; ++ info_ptr->valid |= PNG_INFO_PLTE; ++ } ++ } ++ ++ else if(colorType == F_GREYSCALE || colorType == F_BWDITHER) { ++ info_ptr->color_type = PNG_COLOR_TYPE_GRAY; ++ if(colorType == F_BWDITHER) { ++ /* shouldn't happen */ ++ if (ptype == PIC24) FatalError("PIC24 and B/W Stipple in WritePNG()"); ++ ++ info_ptr->bit_depth = 1; ++ if(MONO(rmap[0], gmap[0], bmap[0]) > MONO(rmap[1], gmap[1], bmap[1])) { ++ remap[0] = 1; ++ remap[1] = 0; ++ } ++ else { ++ remap[0] = 0; ++ remap[1] = 1; ++ } ++ linesize = w; ++ } ++ else { ++ if(ptype == PIC24) { ++ linesize = 3*w; ++ if (linesize/3 < w) { ++ SetISTR(ISTR_WARNING, "%s: image dimensions too large (%dx%d)", ++ fbasename, w, h); ++ png_destroy_write_struct(&png_ptr, &info_ptr); ++ return -1; ++ } ++ info_ptr->bit_depth = 8; ++ } ++ else { ++ int low_precision; ++ ++ linesize = w; ++ ++ for(i = 0; i < numcols; i++) ++ remap[i] = MONO(rmap[i], gmap[i], bmap[i]); ++ ++ for(; i < 256; i++) ++ remap[i]=0; ++ ++ info_ptr->bit_depth = 8; ++ ++ /* Note that this fails most of the time because of gamma */ ++ /* try to adjust to 4-bit precision grayscale */ ++ ++ low_precision=1; ++ ++ for(i = 0; i < numcols; i++) { ++ if((remap[i] & 0x0f) * 0x11 != remap[i]) { ++ low_precision = 0; ++ break; ++ } ++ } ++ ++ if(low_precision) { ++ for(i = 0; i < numcols; i++) { ++ remap[i] &= 0xf; ++ } ++ info_ptr->bit_depth = 4; ++ ++ /* try to adjust to 2-bit precision grayscale */ ++ ++ for(i = 0; i < numcols; i++) { ++ if((remap[i] & 0x03) * 0x05 != remap[i]) { ++ low_precision = 0; ++ break; ++ } ++ } ++ } ++ ++ if(low_precision) { ++ for(i = 0; i < numcols; i++) { ++ remap[i] &= 3; ++ } ++ info_ptr->bit_depth = 2; ++ ++ /* try to adjust to 1-bit precision grayscale */ ++ ++ for(i = 0; i < numcols; i++) { ++ if((remap[i] & 0x01) * 0x03 != remap[i]) { ++ low_precision = 0; ++ break; ++ } ++ } ++ } ++ ++ if(low_precision) { ++ for(i = 0; i < numcols; i++) { ++ remap[i] &= 1; ++ } ++ info_ptr->bit_depth = 1; ++ } ++ } ++ } ++ } ++ ++ else ++ png_error(png_ptr, "Unknown colorstyle in WritePNG"); ++ ++ if ((text = (png_textp)malloc(sizeof(png_text)))) { ++ sprintf(software, "XV %s", REVDATE); ++ ++ text->compression = -1; ++ text->key = "Software"; ++ text->text = software; ++ text->text_length = strlen(text->text); ++ ++ info_ptr->max_text = 1; ++ info_ptr->num_text = 1; ++ info_ptr->text = text; ++ } ++ ++ Display_Gamma = gDial.val; /* Save the current gamma for loading */ ++ ++ info_ptr->gamma = 1.0/gDial.val; ++ info_ptr->valid |= PNG_INFO_gAMA; ++ ++ png_write_info(png_ptr, info_ptr); ++ ++ if(info_ptr->bit_depth < 8) ++ png_set_packing(png_ptr); ++ ++ pass=png_set_interlace_handling(png_ptr); ++ ++ if((png_line = malloc(linesize)) == NULL) ++ png_error(png_ptr, "cannot allocate temp image line"); ++ ++ for(i = 0; i < pass; i++) { ++ int j; ++ p = pic; ++ for(j = 0; j < h; j++) { ++ if(info_ptr->color_type == PNG_COLOR_TYPE_GRAY) { ++ int k; ++ for(k = 0; k < w; k++) ++ png_line[k] = ptype==PIC24 ? MONO(p[k*3], p[k*3+1], p[k*3+2]) : ++ remap[p[k]]; ++ png_write_row(png_ptr, png_line); ++ } else /* RGB or palette */ ++ png_write_row(png_ptr, p); ++ if((j & 0x1f) == 0) WaitCursor(); ++ p += linesize; ++ } ++ } ++ ++ free(png_line); ++ ++ savecmnt = NULL; /* quiet a compiler warning */ ++ ++ if (text) ++ { ++ if (picComments && strlen(picComments) && ++ (savecmnt = (char *)malloc((strlen(picComments) + 1)*sizeof(char)))) { ++ png_textp tp; ++ char *comment, *key; ++ ++ strcpy(savecmnt, picComments); ++ key = savecmnt; ++ tp = text; ++ info_ptr->num_text = 0; ++ ++ comment = strchr(key, ':'); ++ ++ do { ++ /* Allocate a larger structure for comments if necessary */ ++ if (info_ptr->num_text >= info_ptr->max_text) ++ { ++ if ((tp = ++ realloc(text, (info_ptr->num_text + 2)*sizeof(png_text))) == NULL) ++ { ++ break; ++ } ++ else ++ { ++ text = tp; ++ tp = &text[info_ptr->num_text]; ++ info_ptr->max_text += 2; ++ } ++ } ++ ++ /* See if it looks like a PNG keyword from LoadPNG */ ++ /* GRR: should test for strictly < 80, right? (key = 1-79 chars only) */ ++ if(comment && comment[1] == ':' && comment - key <= 80) { ++ *(comment++) = '\0'; ++ *(comment++) = '\0'; ++ ++ /* If the comment is the 'Software' chunk XV writes, we remove it, ++ since we have already stored one */ ++ if (strcmp(key, "Software") == 0 && strncmp(comment, "XV", 2) == 0) { ++ key = strchr(comment, '\n'); ++ if(key) ++ key++; /* skip \n */ ++ comment = strchr(key, ':'); ++ } ++ /* We have another keyword and/or comment to write out */ ++ else { ++ tp->key = key; ++ tp->text = comment; ++ ++ /* We have to find the end of this comment, and the next keyword ++ if there is one */ ++ for (; NULL != (key = comment = strchr(comment, ':')); comment++) ++ if (key[1] == ':') ++ break; ++ ++ /* It looks like another keyword, go backward to the beginning */ ++ if (key) { ++ while(key > tp->text && *key != '\n') ++ key--; ++ ++ if (key > tp->text && comment - key <= 80) { ++ *key = '\0'; ++ key++; ++ } ++ } ++ ++ tp->text_length = strlen(tp->text); ++ ++ /* We don't have another keyword, so remove the last newline */ ++ if (!key && tp->text[tp->text_length - 1] == '\n') ++ { ++ tp->text[tp->text_length] = '\0'; ++ tp->text_length--; ++ } ++ ++ tp->compression = tp->text_length > 640 ? 0 : -1; ++ info_ptr->num_text++; ++ tp++; ++ } ++ } ++ /* Just a generic comment: make sure line-endings are valid for PNG */ ++ else { ++ char *p=key, *q=key; /* only deleting chars, not adding any */ ++ ++ while (*p) { ++ if (*p == CR) { /* lone CR or CR/LF: EOL either way */ ++ *q++ = LF; /* LF is the only allowed PNG line-ending */ ++ if (p[1] == LF) /* get rid of any original LF */ ++ ++p; ++ } else if (*p == LF) /* lone LF */ ++ *q++ = LF; ++ else ++ *q++ = *p; ++ ++p; ++ } ++ *q = '\0'; /* unnecessary...but what the heck */ ++ tp->key = "Comment"; ++ tp->text = key; ++ tp->text_length = q - key; ++ tp->compression = tp->text_length > 750 ? 0 : -1; ++ info_ptr->num_text++; ++ key = NULL; ++ } ++ } while (key && *key); ++ } ++ else ++ { ++ info_ptr->num_text = 0; ++ } ++ } ++ info_ptr->text = text; ++ ++ png_convert_from_time_t(&(info_ptr->mod_time), time(NULL)); ++ info_ptr->valid |= PNG_INFO_tIME; ++ ++ png_write_end(png_ptr, info_ptr); ++ fflush(fp); /* just in case we core-dump before finishing... */ ++ ++ if (text) ++ { ++ free(text); ++ /* must do this or png_destroy_write_struct() 0.97+ will free text again: */ ++ info_ptr->text = (png_textp)NULL; ++ if (savecmnt) ++ { ++ free(savecmnt); ++ savecmnt = (char *)NULL; ++ } ++ } ++ ++ png_destroy_write_struct(&png_ptr, &info_ptr); ++ ++ return 0; ++} ++ ++ ++/*******************************************/ ++int LoadPNG(fname, pinfo) ++ char *fname; ++ PICINFO *pinfo; ++/*******************************************/ ++{ ++ /* returns '1' on success */ ++ ++ FILE *fp; ++ png_struct *png_ptr; ++ png_info *info_ptr; ++ png_color_16 my_background; ++ int i,j; ++ int linesize, bufsize; ++ int filesize; ++ int pass; ++ int gray_to_rgb; ++ size_t commentsize; ++ ++ fbasename = BaseName(fname); ++ ++ pinfo->pic = (byte *) NULL; ++ pinfo->comment = (char *) NULL; ++ ++ read_anything=0; ++ ++ /* open the file */ ++ fp = xv_fopen(fname,"r"); ++ if (!fp) { ++ SetISTR(ISTR_WARNING,"%s: can't open file", fname); ++ return 0; ++ } ++ ++ /* find the size of the file */ ++ fseek(fp, 0L, 2); ++ filesize = ftell(fp); ++ fseek(fp, 0L, 0); ++ ++ png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, ++ png_xv_error, png_xv_warning); ++ if(!png_ptr) { ++ fclose(fp); ++ FatalError("malloc failure in LoadPNG"); ++ } ++ ++ info_ptr = png_create_info_struct(png_ptr); ++ ++ if(!info_ptr) { ++ fclose(fp); ++ png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL); ++ FatalError("malloc failure in LoadPNG"); ++ } ++ ++ if(setjmp(png_ptr->jmpbuf)) { ++ fclose(fp); ++ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); ++ if(!read_anything) { ++ if(pinfo->pic) { ++ free(pinfo->pic); ++ pinfo->pic = NULL; ++ } ++ if(pinfo->comment) { ++ free(pinfo->comment); ++ pinfo->comment = NULL; ++ } ++ } ++ return read_anything; ++ } ++ ++ png_init_io(png_ptr, fp); ++ png_read_info(png_ptr, info_ptr); ++ ++ pinfo->w = pinfo->normw = info_ptr->width; ++ pinfo->h = pinfo->normh = info_ptr->height; ++ if (pinfo->w <= 0 || pinfo->h <= 0) { ++ SetISTR(ISTR_WARNING, "%s: image dimensions out of range (%dx%d)", ++ fbasename, pinfo->w, pinfo->h); ++ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); ++ return read_anything; ++ } ++ ++ pinfo->frmType = F_PNG; ++ ++ sprintf(pinfo->fullInfo, "PNG, %d bit ", ++ info_ptr->bit_depth * info_ptr->channels); ++ ++ switch(info_ptr->color_type) { ++ case PNG_COLOR_TYPE_PALETTE: ++ strcat(pinfo->fullInfo, "palette color"); ++ break; ++ ++ case PNG_COLOR_TYPE_GRAY: ++ strcat(pinfo->fullInfo, "grayscale"); ++ break; ++ ++ case PNG_COLOR_TYPE_GRAY_ALPHA: ++ strcat(pinfo->fullInfo, "grayscale+alpha"); ++ break; ++ ++ case PNG_COLOR_TYPE_RGB: ++ strcat(pinfo->fullInfo, "truecolor"); ++ break; ++ ++ case PNG_COLOR_TYPE_RGB_ALPHA: ++ strcat(pinfo->fullInfo, "truecolor+alpha"); ++ break; ++ } ++ ++ sprintf(pinfo->fullInfo + strlen(pinfo->fullInfo), ++ ", %sinterlaced. (%d bytes)", ++ info_ptr->interlace_type ? "" : "non-", filesize); ++ ++ sprintf(pinfo->shrtInfo, "%lux%lu PNG", info_ptr->width, info_ptr->height); ++ ++ if (info_ptr->bit_depth < 8) ++ png_set_packing(png_ptr); ++ ++ if (info_ptr->valid & PNG_INFO_gAMA) ++ png_set_gamma(png_ptr, Display_Gamma, info_ptr->gamma); ++ else ++ png_set_gamma(png_ptr, Display_Gamma, 0.45); ++ ++ gray_to_rgb = 0; /* quiet a compiler warning */ ++ ++ if (have_imagebg) { ++ if (info_ptr->bit_depth == 16) { ++ my_background.red = imagebgR; ++ my_background.green = imagebgG; ++ my_background.blue = imagebgB; ++ my_background.gray = imagebgG; /* only used if all three equal... */ ++ } else { ++ my_background.red = (imagebgR >> 8); ++ my_background.green = (imagebgG >> 8); ++ my_background.blue = (imagebgB >> 8); ++ my_background.gray = my_background.green; ++ } ++ png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN, ++ 0, Display_Gamma); ++ if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA || ++ (info_ptr->color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) && ++ (imagebgR != imagebgG || imagebgR != imagebgB)) /* i.e., colored bg */ ++ { ++ png_set_gray_to_rgb(png_ptr); ++ png_set_expand(png_ptr); ++ gray_to_rgb = 1; ++ } ++ } else { ++ if (info_ptr->valid & PNG_INFO_bKGD) { ++ png_set_background(png_ptr, &info_ptr->background, ++ PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); ++ } else { ++ my_background.red = my_background.green = my_background.blue = ++ my_background.gray = 0; ++ png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN, ++ 0, Display_Gamma); ++ } ++ } ++ ++ if (info_ptr->bit_depth == 16) ++ png_set_strip_16(png_ptr); ++ ++ if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY || ++ info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) ++ { ++ if (info_ptr->bit_depth == 1) ++ pinfo->colType = F_BWDITHER; ++ else ++ pinfo->colType = F_GREYSCALE; ++ png_set_expand(png_ptr); ++ } ++ ++ pass=png_set_interlace_handling(png_ptr); ++ ++ png_read_update_info(png_ptr, info_ptr); ++ ++ if(info_ptr->color_type == PNG_COLOR_TYPE_RGB || ++ info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb) ++ { ++ linesize = 3 * pinfo->w; ++ if (linesize/3 < pinfo->w) { /* know pinfo->w > 0 (see above) */ ++ SetISTR(ISTR_WARNING, "%s: image dimensions too large (%dx%d)", ++ fbasename, pinfo->w, pinfo->h); ++ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); ++ return read_anything; ++ } ++ pinfo->colType = F_FULLCOLOR; ++ pinfo->type = PIC24; ++ } else { ++ linesize = pinfo->w; ++ pinfo->type = PIC8; ++ if(info_ptr->color_type == PNG_COLOR_TYPE_GRAY || ++ info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { ++ for(i = 0; i < 256; i++) ++ pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i; ++ } else { ++ pinfo->colType = F_FULLCOLOR; ++ for(i = 0; i < info_ptr->num_palette; i++) { ++ pinfo->r[i] = info_ptr->palette[i].red; ++ pinfo->g[i] = info_ptr->palette[i].green; ++ pinfo->b[i] = info_ptr->palette[i].blue; ++ } ++ } ++ } ++ ++ bufsize = linesize * pinfo->h; ++ if (bufsize/linesize < pinfo->h) { /* know linesize, pinfo->h > 0 (above) */ ++ SetISTR(ISTR_WARNING, "%s: image dimensions too large (%dx%d)", ++ fbasename, pinfo->w, pinfo->h); ++ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); ++ return read_anything; ++ } ++ pinfo->pic = calloc((size_t)bufsize, (size_t)1); ++ ++ if(!pinfo->pic) { ++ png_error(png_ptr, "can't allocate space for PNG image"); ++ } ++ ++ png_start_read_image(png_ptr); ++ ++ for(i = 0; i < pass; i++) { ++ byte *p = pinfo->pic; ++ for(j = 0; j < pinfo->h; j++) { ++ png_read_row(png_ptr, p, NULL); ++ read_anything = 1; ++ if((j & 0x1f) == 0) WaitCursor(); ++ p += linesize; ++ } ++ } ++ ++ png_read_end(png_ptr, info_ptr); ++ ++ if(info_ptr->num_text > 0) { ++ commentsize = 1; ++ ++ for(i = 0; i < info_ptr->num_text; i++) ++ commentsize += strlen(info_ptr->text[i].key) + 1 + ++ info_ptr->text[i].text_length + 2; ++ ++ if((pinfo->comment = malloc(commentsize)) == NULL) { ++ png_warning(png_ptr,"can't allocate comment string"); ++ } ++ else { ++ pinfo->comment[0] = '\0'; ++ for(i = 0; i < info_ptr->num_text; i++) { ++ strcat(pinfo->comment, info_ptr->text[i].key); ++ strcat(pinfo->comment, "::"); ++ strcat(pinfo->comment, info_ptr->text[i].text); ++ strcat(pinfo->comment, "\n"); ++ } ++ } ++ } ++ ++ png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); ++ ++ fclose(fp); ++ ++ return 1; ++} ++ ++ ++/*******************************************/ ++static void ++png_xv_error(png_ptr, message) ++ png_structp png_ptr; ++ png_const_charp message; ++{ ++ SetISTR(ISTR_WARNING,"%s: libpng error: %s", fbasename, message); ++ ++ longjmp(png_ptr->jmpbuf, 1); ++} ++ ++ ++/*******************************************/ ++static void ++png_xv_warning(png_ptr, message) ++ png_structp png_ptr; ++ png_const_charp message; ++{ ++ if (!png_ptr) ++ return; ++ ++ SetISTR(ISTR_WARNING,"%s: libpng warning: %s", fbasename, message); ++} ++ ++ ++/*******************************************/ ++void ++VersionInfoPNG() /* GRR 19980605 */ ++{ ++ fprintf(stderr, " Compiled with libpng %s; using libpng %s.\n", ++ PNG_LIBPNG_VER_STRING, png_libpng_ver); ++ fprintf(stderr, " Compiled with zlib %s; using zlib %s.\n", ++ ZLIB_VERSION, zlib_version); ++} ++ ++#endif /* HAVE_PNG */ +diff -ruN xv-3.10a-bugfixes/xvpopup.c xv-3.10a-enhancements/xvpopup.c +--- xv-3.10a-bugfixes/xvpopup.c 2004-05-16 18:04:13.000000000 -0700 ++++ xv-3.10a-enhancements/xvpopup.c 2005-04-25 08:21:34.000000000 -0700 +@@ -23,7 +23,7 @@ + #define OMIT_ICON_BITS + #include "bits/icon" /* icon_bits[] not used, but icon_width/height are */ + +-#define PUWIDE 400 ++#define PUWIDE 480 + #define PUHIGH 170 + + #define PAD_PUWIDE 480 +@@ -201,14 +201,14 @@ + + if (!padHaveDooDads) { + DCreate(&padWDial, popW, 16, puhigh-16-100-1,75,100, +- 1, 2048, pWIDE, 10, ++ 1.0, 2048.0, (double)pWIDE, 1.0, 10.0, + infofg, infobg, hicol, locol, "Width", NULL); + DCreate(&padHDial, popW, 16+1+75, puhigh-16-100-1,75,100, +- 1, 2048, pHIGH, 10, ++ 1.0, 2048.0, (double)pHIGH, 1.0, 10.0, + infofg, infobg, hicol, locol, "Height", NULL); + + DCreate(&padODial, popW, 16+1+75+75+9, puhigh-16-100-1,75,100, +- 0, 100, 100, 10, ++ 0.0, 100.0, 100.0, 1.0, 10.0, + infofg, infobg, hicol, locol, "Opaque", NULL); + + MBCreate(&padMthdMB, popW, 100-2+44, 10, 140, 19, NULL, +@@ -259,9 +259,9 @@ + else if (poptyp == ISPAD) { + BTSetActive(&bts[0], (int) strlen(gsBuf)); + i = pWIDE * 3; RANGE(i,2048,9999); +- DSetRange(&padWDial, 1, i, padWDial.val, 10); ++ DSetRange(&padWDial, 1.0, (double)i, padWDial.val, 1.0, 10.0); + i = pHIGH * 3; RANGE(i,2048,9999); +- DSetRange(&padHDial, 1, i, padHDial.val, 10); ++ DSetRange(&padHDial, 1.0, (double)i, padHDial.val, 1.0, 10.0); + + DSetActive(&padWDial, (padMode!=PAD_LOAD)); /* DSetRange activates dial */ + DSetActive(&padHDial, (padMode!=PAD_LOAD)); +@@ -287,15 +287,19 @@ + /* center first button in window around mouse position, with constraint that + window be fully on the screen */ + +- CenterMapWindow(popW, 40 + bts[0].x, BUTTH/2 + bts[0].y, puwide, puhigh); + popUp = poptyp; ++ if (startGrab == 2) ++ startGrab = 4; ++ else { ++ CenterMapWindow(popW, 40 + bts[0].x, BUTTH/2 + bts[0].y, puwide, puhigh); + +- /* MUST wait for VisibilityNotify event to come in, else we run the risk +- of UnMapping the window *before* the Map request completed. This +- appears to be bad, (It leaves an empty window frame up.) though it +- generally only happens on slow servers. Better safe than screwed... */ ++ /* MUST wait for VisibilityNotify event to come in, else we run the risk ++ of UnMapping the window *before* the Map request completed. This ++ appears to be bad, (It leaves an empty window frame up.) though it ++ generally only happens on slow servers. Better safe than screwed... */ + +- XWindowEvent(theDisp, popW, VisibilityChangeMask, &event); ++ XWindowEvent(theDisp, popW, VisibilityChangeMask, &event); ++ } + + /* block until this window gets closed */ + while (popUp) { +@@ -466,9 +470,9 @@ + changedGSBuf(); /* careful! popW doesn't exist yet! */ + + if (padHaveDooDads) { +- oldW = padWDial.val; +- oldH = padHDial.val; +- oldO = padODial.val; ++ oldW = (int)padWDial.val; ++ oldH = (int)padHDial.val; ++ oldO = (int)padODial.val; + } + else { oldW = pWIDE; oldH = pHIGH; oldO = 100; } + +@@ -487,9 +491,9 @@ + } + + if (rv == 1) { /* cancelled: restore normal values */ +- DSetVal(&padWDial, oldW); +- DSetVal(&padHDial, oldH); +- DSetVal(&padODial, oldO); ++ DSetVal(&padWDial, (double)oldW); ++ DSetVal(&padHDial, (double)oldH); ++ DSetVal(&padODial, (double)oldO); + } + + XUnmapWindow(theDisp, padWDial.win); +@@ -499,9 +503,9 @@ + /* load up return values */ + *pMode = padMode; + *pStr = padBuf; +- *pWide = padWDial.val; +- *pHigh = padHDial.val; +- *pOpaque = padODial.val; ++ *pWide = (int)padWDial.val; ++ *pHigh = (int)padHDial.val; ++ *pOpaque = (int)padODial.val; + *pOmode = padOMode; + + return rv; +@@ -956,14 +960,14 @@ + int x,y; + { + int i; +- BUTT *bp; ++ BUTT *bp = NULL; + + for (i=0; ix, bp->y, bp->w, bp->h)) break; + } + +- if (i= 10 && def_int <= 720) { +- int i = (int) ((PIX2INCH * 100) / def_int); ++ double v = (PIX2INCH * 100) / def_int; + +- DSetVal(&xsDial, i); +- DSetVal(&ysDial, i); ++ DSetVal(&xsDial, v); ++ DSetVal(&ysDial, v); + } + } + +@@ -839,7 +839,7 @@ + if (scx < scy) { sz_iny = h * scx; } + else { sz_inx = w * scy; } + +- DSetVal(&xsDial, (int) ((100 * (sz_inx * PIX2INCH) / w) + .5)); ++ DSetVal(&xsDial, 100 * (sz_inx * PIX2INCH) / w); + DSetVal(&ysDial, xsDial.val); + + sz_inx = (double) w / PIX2INCH * (xsDial.val / 100.0); +@@ -1561,9 +1561,9 @@ + the first one is loaded (but not deleted) */ + + #ifdef GS_PATH +- char tmp[512], gscmd[512], cmdstr[512], tmpname[64]; ++ #define CMDSIZE 1024 ++ char tmp[512], gscmd[512], cmdstr[CMDSIZE], tmpname[64]; + int gsresult, nump, i, filetype, doalert, epsf; +- char *rld; + #endif + + pinfo->pic = (byte *) NULL; +@@ -1596,7 +1596,7 @@ + /* build 'gscmd' string */ + + #ifndef VMS /* VMS needs quotes around mixed case command lines */ +- sprintf(gscmd, "%s -sDEVICE=%s -r%d -q -dNOPAUSE -sOutputFile=%s%%d ", ++ sprintf(gscmd, "%s -sDEVICE=%s -r%d -q -dSAFER -dNOPAUSE -sOutputFile=%s%%d ", + GS_PATH, gsDev, gsRes, tmpname); + #else + sprintf(gscmd, +@@ -1734,32 +1734,48 @@ + + /******************************************************************/ + #ifdef GS_PATH +-void buildCmdStr(str, gscmd, fname, quick, epsf) +- char *str, *gscmd, *fname; ++void buildCmdStr(str, gscmd, xname, quick, epsf) ++ char *str, *gscmd, *xname; + int quick, epsf; + { + /* note 'epsf' set only on files that don't have a showpage cmd */ ++ char *x, *y, *fname; ++ ++ x = (char *) malloc((5 * strlen(xname))+3); ++ if (!x) ++ FatalError("malloc failure in xvps.c buildCmdStr"); ++ fname = x; ++ *x++ = 0x27; ++ ++ for (y = xname; *y; ++y) { ++ if (0x27 == *y) { ++ strcpy(x, "'\"'\"'"); ++ x += strlen(x); ++ } else *x++ = *y; ++ } ++ strcpy (x, "'"); + + #ifndef VMS + +- if (epsf) sprintf(str, "echo '\n showpage ' | cat '%s' - | %s -", ++ if (epsf) snprintf(str, CMDSIZE, "echo '\n showpage ' | cat %s - | %s -", + fname, gscmd); + +- else if (quick) sprintf(str, "echo '%s' | cat - '%s' | %s -", ++ else if (quick) snprintf(str, CMDSIZE, "echo %s | cat - %s | %s -", + "/showpage { showpage quit } bind def", + fname, gscmd); + +- else sprintf(str, "%s -- %s", gscmd, fname); ++ else snprintf(str, CMDSIZE, "%s -- %s", gscmd, fname); + + #else /* VMS */ + /* VMS doesn't have pipes or an 'echo' command and GS doesn't like +- Unix-style file names as input files in the VMS version */ ++ Unix-style filenames as input files in the VMS version */ + strcat(tmp, " -- "); + rld = strrchr(fname, '/'); /* Pointer to last '/' */ + if (rld) rld++; /* Pointer to filename */ + else rld = fname; /* No path - use original string */ + strcat(tmp, rld); + #endif /* VMS */ ++ free(fname); + } + #endif /* GS_PATH */ + +diff -ruN xv-3.10a-bugfixes/xvrle.c xv-3.10a-enhancements/xvrle.c +--- xv-3.10a-bugfixes/xvrle.c 2005-03-29 23:29:14.000000000 -0800 ++++ xv-3.10a-enhancements/xvrle.c 2004-05-16 18:07:46.000000000 -0700 +@@ -43,7 +43,7 @@ + byte bgcol[256]; + byte maps[3][256]; + int xpos, ypos, w, h, flags, ncolors, pixelbits, ncmap, cmaplen; +- int cmtlen, npixels, bufsize=0; ++ int cmtlen; + byte *img; + long filesize; + char *bname, *errstr; +@@ -176,44 +176,32 @@ + + errstr = NULL; + if (ncolors == 0 || ncolors == 2) +- errstr = "Unsupported number of channels in RLE file"; ++ errstr = "Unsupt. # of channels in RLE file.\n"; + + if (pixelbits != 8) +- errstr = "Only 8-bit pixels supported in RLE files"; ++ errstr = "Only 8-bit pixels supported in RLE files.\n"; + + if (ncmap==0 || ncmap==1 || ncmap == 3 || ncmap == ncolors) { /* ok */ } +- else errstr = "Invalid number of colormap channels in RLE file"; ++ else errstr = "Invalid # of colormap channels in RLE file.\n"; + +- npixels = w * h; +- if (w <= 0 || h <= 0 || npixels/w != h) +- errstr = "RLE image dimensions out of range"; ++ if (w<1 || h<1) ++ errstr = "Bogus size in RLE header.\n"; + + + if (errstr) { + fclose(fp); +- if (pinfo->comment) +- free(pinfo->comment); +- pinfo->comment = (char *) NULL; ++ if (pinfo->comment) free(pinfo->comment); pinfo->comment = (char *) NULL; + return rleError(bname, errstr); + } + + + /* allocate image memory */ +- if (ncolors == 1) +- img = (byte *) calloc((size_t) npixels, (size_t) 1); +- else { +- bufsize = 3*npixels; +- if (bufsize/3 != npixels) +- return rleError(bname, "RLE image dimensions out of range"); +- img = (byte *) calloc((size_t) bufsize, (size_t) 1); +- } +- ++ if (ncolors == 1) img = (byte *) calloc((size_t) w * h, (size_t) 1); ++ else img = (byte *) calloc((size_t) w * h * 3, (size_t) 1); + if (!img) { + fclose(fp); +- if (pinfo->comment) +- free(pinfo->comment); +- pinfo->comment = (char *) NULL; +- return rleError(bname, "Unable to allocate RLE image data"); ++ if (pinfo->comment) free(pinfo->comment); pinfo->comment = (char *) NULL; ++ return rleError(bname, "unable to allocate image data.\n"); + } + + +@@ -221,10 +209,10 @@ + if ((flags & H_CLEARFIRST) && !(flags & H_NO_BACKGROUND)) { + byte *ip; + if (ncolors == 1) { +- for (i=0, ip=img; i= 3 && ncolors >=3) { /* one curve per band */ +- for (i=0, ip=img; ishigh-1) y1=shigh-1; } + +@@ -172,30 +172,30 @@ + else { + /* compute weighting factors */ + apx = abs(px); apy = abs(py); +- pA = (apx * apy) / 100; +- pB = (apy * (100 - apx)) / 100; +- pC = (apx * (100 - apy)) / 100; +- pD = 100 - (pA + pB + pC); ++ pA = (apx * apy) >> 7; /* div 128 */ ++ pB = (apy * (128 - apx)) >> 7; /* div 128 */ ++ pC = (apx * (128 - apy)) >> 7; /* div 128 */ ++ pD = 128 - (pA + pB + pC); + + if (is24) { +- *pp++ = ((int) (pA * rA))/100 + ((int) (pB * rB))/100 + +- ((int) (pC * rC))/100 + ((int) (pD * rD))/100; ++ *pp++ = (((int) (pA * rA))>>7) + (((int) (pB * rB))>>7) + ++ (((int) (pC * rC))>>7) + (((int) (pD * rD))>>7); + +- *pp++ = ((int) (pA * gA))/100 + ((int) (pB * gB))/100 + +- ((int) (pC * gC))/100 + ((int) (pD * gD))/100; ++ *pp++ = (((int) (pA * gA))>>7) + (((int) (pB * gB))>>7) + ++ (((int) (pC * gC))>>7) + (((int) (pD * gD))>>7); + +- *pp++ = ((int) (pA * bA))/100 + ((int) (pB * bB))/100 + +- ((int) (pC * bC))/100 + ((int) (pD * bD))/100; ++ *pp++ = (((int) (pA * bA))>>7) + (((int) (pB * bB))>>7) + ++ (((int) (pC * bC))>>7) + (((int) (pD * bD))>>7); + } + else { /* 8-bit pic */ +- *pp++ = ((int) (pA * rmap[cA]))/100 + ((int)(pB * rmap[cB]))/100 + +- ((int) (pC * rmap[cC]))/100 + ((int)(pD * rmap[cD]))/100; ++ *pp++ = (((int)(pA * rmap[cA]))>>7) + (((int)(pB * rmap[cB]))>>7) + ++ (((int)(pC * rmap[cC]))>>7) + (((int)(pD * rmap[cD]))>>7); + +- *pp++ = ((int) (pA * gmap[cA]))/100 + ((int)(pB * gmap[cB]))/100 + +- ((int) (pC * gmap[cC]))/100 + ((int)(pD * gmap[cD]))/100; ++ *pp++ = (((int)(pA * gmap[cA]))>>7) + (((int)(pB * gmap[cB]))>>7) + ++ (((int)(pC * gmap[cC]))>>7) + (((int)(pD * gmap[cD]))>>7); + +- *pp++ = ((int)(pA * bmap[cA]))/100 + ((int)(pB * bmap[cB]))/100 + +- ((int)(pC * bmap[cC]))/100 + ((int)(pD * bmap[cD]))/100; ++ *pp++ = (((int)(pA * bmap[cA]))>>7) + (((int)(pB * bmap[cB]))>>7) + ++ (((int)(pC * bmap[cC]))>>7) + (((int)(pD * bmap[cD]))>>7); + } + } + } +diff -ruN xv-3.10a-bugfixes/xvtext.c xv-3.10a-enhancements/xvtext.c +--- xv-3.10a-bugfixes/xvtext.c 2004-05-16 18:04:38.000000000 -0700 ++++ xv-3.10a-enhancements/xvtext.c 2005-05-01 13:04:23.000000000 -0700 +@@ -19,9 +19,13 @@ + #include "copyright.h" + + #include "xv.h" ++#ifdef TV_MULTILINGUAL ++#include "xvml.h" ++#endif + +- +-#define BUTTW 80 ++#define BUTTW1 80 ++#define BUTTW2 60 ++#define BUTTW3 110 + #define BUTTH 24 + + #define TOPMARGIN 30 /* from top of window to top of text window */ +@@ -36,11 +40,28 @@ + #define TV_ASCII 0 + #define TV_HEX 1 + #define TV_CLOSE 2 +-#define TV_NBUTTS 3 + ++#define TV_E_NBUTTS 3 ++ ++#ifdef TV_L10N ++# define TV_RESCAN 3 ++# define TV_USASCII 4 ++# define TV_JIS 5 ++# define TV_EUCJ 6 ++# define TV_MSCODE 7 ++ ++# define TV_J_NBUTTS 8 ++#endif + + #define TITLELEN 128 + ++#ifdef TV_MULTILINGUAL ++struct coding_spec { ++ struct coding_system coding_system; ++ char *(*converter)PARM((char *, int, int *)); ++}; ++#endif ++ + /* data needed per text window */ + typedef struct { Window win, textW; + int vis, wasvis; +@@ -57,16 +78,89 @@ + int chwide, chhigh; /* size of textW, in chars */ + int hexmode; /* true if disp Hex, else Ascii */ + SCRL vscrl, hscrl; +- BUTT but[TV_NBUTTS], nopBut; ++#ifdef TV_L10N ++ int code; /* current character code */ ++ BUTT but[TV_J_NBUTTS], nopBut; ++#else ++ BUTT but[TV_E_NBUTTS], nopBut; ++#endif ++#ifdef TV_MULTILINGUAL ++/* int codeset; */ ++ struct coding_spec ccs; /* current coding_spec */ ++ BUTT csbut; ++ char *cv_text; ++ int cv_len; ++ struct context *ctx; ++ struct ml_text *txt; ++ struct csinfo_t *cs; ++#endif + } TVINFO; + + + static TVINFO tinfo[MAXTVWIN]; + static int hasBeenSized = 0; + static int haveWindows = 0; ++static int nbutts; /* # of buttons */ + static int mfwide, mfhigh, mfascent; /* size of chars in mono font */ + static int *event_retP, *event_doneP; /* used in tvChkEvent() */ +- ++#ifdef TV_MULTILINGUAL ++# define TV_PLAIN 0 ++# define TV_ISO_8859_1 1 ++# define TV_ISO_2022_JP 2 ++# define TV_EUC_JAPAN 3 ++# define TV_ISO_2022_INT_1 4 ++# define TV_ISO_2022_KR 5 ++# define TV_EUC_KOREA 6 ++# define TV_ISO_2022_SS2_8 7 ++# define TV_ISO_2022_SS2_7 8 ++# define TV_SHIFT_JIS 9 ++# define TV_NCSS 10 ++static char *codeSetNames[TV_NCSS] = { ++ "plain", ++ "iso-8859-1", ++ "iso-2022-jp", ++ "euc-japan", ++ "iso-2022-int-1", ++ "iso-2022-kr", ++ "euc-korea", ++ "iso-2022-ss2-8", ++ "iso-2022-ss2-7", ++ "Shift JIS", ++}; ++static struct coding_spec coding_spec[TV_NCSS] = { ++ /* --- G0 --- --- G1 --- --- G2 --- --- G3 --- GL GR EOL SF LS */ ++ /* plain */ ++ {{{{ 1,94,'B'}, { 1,94,'B'}, { 1,94,'B'}, { 1,94,'B'}}, 0, 0, 0, 1, 1}, ++ NULL}, ++ /* iso-8859-1 */ ++ {{{{ 1,94,'B'}, { 1,96,'A'}, {-1,94,'B'}, {-1,94,'B'}}, 0, 1, 0, 0, 0}, ++ NULL}, ++ /* iso-2022-jp */ ++ {{{{ 1,94,'B'}, {-1,94,'B'}, {-1,94,'B'}, {-1,94,'B'}}, 0, 0, 0, 1, 0}, ++ NULL}, ++ /* euc-japan */ ++ {{{{ 1,94,'B'}, { 2,94,'B'}, { 1,94,'J'}, { 2,94,'D'}}, 0, 1, 0, 1, 0}, ++ NULL}, ++ /* iso-2022-int-1 */ ++ {{{{ 1,94,'B'}, { 2,94,'C'}, {-1,94,'B'}, {-1,94,'B'}}, 0, 1, 0, 1, 1}, ++ NULL}, ++ /* iso-2022-kr */ ++ {{{{ 1,94,'B'}, { 2,94,'C'}, {-1,94,'B'}, {-1,94,'B'}}, 0, 1, 0, 0, 1}, ++ NULL}, ++ /* euc-korea */ ++ {{{{ 1,94,'B'}, { 2,94,'C'}, {-1,94,'B'}, {-1,94,'B'}}, 0, 1, 0, 0, 0}, ++ NULL}, ++ /* iso-2022-ss2-8 */ ++ {{{{ 1,94,'B'}, {-1,94,'C'}, { 0,94,'B'}, {-1,94,'B'}}, 0, 1, 0, 0, 0}, ++ NULL}, ++ /* iso-2022-ss2-7 */ ++ {{{{ 1,94,'B'}, {-1,94,'C'}, { 0,94,'B'}, {-1,94,'B'}}, 0, 1, 0, 1, 0}, ++ NULL}, ++ /* shift jis */ ++ {{{{ 1,94,'B'}, { 2,94,'B'}, { 1,94,'J'}, { 2,94,'D'}}, 0, 1, 1, 1, 0}, ++ sjis_to_jis}, ++}; ++#endif + + static void closeText PARM((TVINFO *)); + static int tvChkEvent PARM((TVINFO *, XEvent *)); +@@ -82,7 +176,15 @@ + static void textKey PARM((TVINFO *, int)); + static void doHexAsciiCmd PARM((TVINFO *, int)); + static void computeText PARM((TVINFO *)); +- ++#ifdef TV_L10N ++static int selectCodeset PARM((TVINFO *)); ++#endif ++#ifdef TV_MULTILINGUAL ++static void setCodingSpec PARM((TVINFO *, struct coding_spec *)); ++static void createCsWins PARM((char *)); ++static void openCsWin PARM((TVINFO *)); ++static void closeCsWin PARM((TVINFO *)); ++#endif + + /* HEXMODE output looks like this: + 0x00000000: 00 11 22 33 44 55 66 77 - 88 99 aa bb cc dd ee ff 0123456789abcdef +@@ -98,12 +200,51 @@ + XSizeHints hints; + XSetWindowAttributes xswa; + TVINFO *tv; ++#ifdef TV_MULTILINGUAL ++ int default_codeset; ++#endif + ++#ifdef TV_L10N ++ if (!xlocale) { ++#endif ++ mfwide = monofinfo->max_bounds.width; ++ mfhigh = monofinfo->ascent + monofinfo->descent; ++ mfascent = monofinfo->ascent; + +- mfwide = monofinfo->max_bounds.width; +- mfhigh = monofinfo->ascent + monofinfo->descent; +- mfascent = monofinfo->ascent; ++ nbutts = TV_E_NBUTTS; /* # of buttons */ ++#ifdef TV_L10N ++ } ++ else { ++ mfwide = monofsetinfo->max_logical_extent.width / 2; /* shit! */ ++ mfhigh = monofsetinfo->max_logical_extent.height + 1; ++ mfascent = mfhigh; ++ ++ nbutts = TV_J_NBUTTS; /* # of buttons */ ++ } ++#endif + ++#ifdef TV_MULTILINGUAL ++ { ++ char *dc = XGetDefault(theDisp, "xv", "codeSet"); ++ if (dc == NULL) ++ default_codeset = TV_DEFAULT_CODESET; ++ else { ++ for (i = 0; i < TV_NCSS; i++) { ++ if (strcmp(dc, codeSetNames[i]) == 0) ++ break; ++ } ++ if (i >= TV_NCSS) { ++ if (strcmp(dc, "iso-2022") == 0) ++ default_codeset = TV_PLAIN; ++ else { ++ SetISTR(ISTR_WARNING, "%s: unknown codeset.", dc); ++ default_codeset = TV_PLAIN; ++ } ++ } else ++ default_codeset = i; ++ } ++ } ++#endif + /* compute default size of textview windows. should be big enough to + hold an 80x24 text window */ + +@@ -118,6 +259,14 @@ + for (i=0; ictx = ml_create_context(ScreenOfDisplay(theDisp, theScreen)); ++ tv->txt = NULL; ++ tv->cv_text = NULL; ++ tv->cv_len = 0; ++ ml_set_charsets(tv->ctx, &coding_spec[TV_PLAIN].coding_system); ++#endif ++ + tv->win = CreateWindow((itextW, ExposureMask | ButtonPressMask); + + +- BTCreate(&(tv->but[TV_ASCII]), tv->win, 0,0,BUTTW,BUTTH, ++ BTCreate(&(tv->but[TV_ASCII]), tv->win, 0,0,BUTTW1,BUTTH, + "Ascii",infofg,infobg,hicol,locol); +- BTCreate(&(tv->but[TV_HEX]), tv->win, 0,0,BUTTW,BUTTH, ++ BTCreate(&(tv->but[TV_HEX]), tv->win, 0,0,BUTTW1,BUTTH, + "Hex",infofg,infobg,hicol,locol); +- BTCreate(&(tv->but[TV_CLOSE]), tv->win, 0,0,BUTTW,BUTTH, ++ BTCreate(&(tv->but[TV_CLOSE]), tv->win, 0,0,BUTTW1,BUTTH, + "Close",infofg,infobg,hicol,locol); + ++#ifdef TV_L10N ++ if (xlocale) { ++ BTCreate(&(tv->but[TV_RESCAN]), tv->win, 0,0,BUTTW2,BUTTH, ++ "RESCAN",infofg,infobg,hicol,locol); ++ BTCreate(&(tv->but[TV_USASCII]), tv->win, 0,0,BUTTW2,BUTTH, ++ "ASCII",infofg,infobg,hicol,locol); ++ BTCreate(&(tv->but[TV_JIS]), tv->win, 0,0,BUTTW2,BUTTH, ++ "JIS",infofg,infobg,hicol,locol); ++ BTCreate(&(tv->but[TV_EUCJ]), tv->win, 0,0,BUTTW2,BUTTH, ++ "EUC-j",infofg,infobg,hicol,locol); ++ BTCreate(&(tv->but[TV_MSCODE]), tv->win, 0,0,BUTTW2,BUTTH, ++ "MS Kanji",infofg,infobg,hicol,locol); ++ } ++#endif ++ + BTCreate(&(tv->nopBut), tv->win, 0,0, (u_int) tv->vscrl.tsize+1, + (u_int) tv->vscrl.tsize+1, "", infofg, infobg, hicol, locol); + tv->nopBut.active = 0; + + XMapSubwindows(theDisp, tv->win); + ++#ifdef TV_MULTILINGUAL ++ BTCreate(&tv->csbut, tv->win, 0, 0, BUTTW1, BUTTH, "Code Sets", ++ infofg, infobg, hicol, locol); ++#endif ++ + tv->text = (char *) NULL; + tv->textlen = 0; + tv->title[0] = '\0'; ++#ifdef TV_L10N ++ tv->code = (xlocale ? LOCALE_DEFAULT : 0); ++#endif ++#ifdef TV_MULTILINGUAL ++ tv->ccs = coding_spec[default_codeset]; ++#endif + } +- ++#ifdef TV_MULTILINGUAL ++ get_monofont_size(&mfwide, &mfhigh); ++ /* recalculate sizes. */ ++ defwide = 80 * mfwide + 2*LRMARGINS + 8 + 20; /* -ish */ ++ defhigh = 24 * mfhigh + TOPMARGIN + BOTMARGIN + 8 + 20; /* ish */ ++ cmthigh = 6 * mfhigh + TOPMARGIN + BOTMARGIN + 8 + 20; /* ish */ ++#endif + + for (i=0; itext = (char *) NULL; + tv->lines = (char **) NULL; + tv->numlines = tv->textlen = tv->hexmode = 0; ++ ++#ifdef TV_MULTILINGUAL ++ closeCsWin(tv); ++#endif + } + + +@@ -591,6 +790,40 @@ + else if (e->window == tv->textW) { } + else rv = 0; + } ++ else if (e->button == Button4) { /* note min vs. max, + vs. - */ ++ /* scroll regardless of where we are in the text window */ ++ if (e->window == tv->win || ++ e->window == tv->vscrl.win || ++ e->window == tv->hscrl.win || ++ e->window == tv->textW) ++ { ++ SCRL *sp=&(tv->vscrl); ++ int halfpage=sp->page/2; ++ ++ if (sp->val > sp->min+halfpage) ++ SCSetVal(sp,sp->val-halfpage); ++ else ++ SCSetVal(sp,sp->min); ++ } ++ else rv = 0; ++ } ++ else if (e->button == Button5) { /* note max vs. min, - vs. + */ ++ /* scroll regardless of where we are in the text window */ ++ if (e->window == tv->win || ++ e->window == tv->vscrl.win || ++ e->window == tv->hscrl.win || ++ e->window == tv->textW) ++ { ++ SCRL *sp=&(tv->vscrl); ++ int halfpage=sp->page/2; ++ ++ if (sp->val < sp->max-halfpage) ++ SCSetVal(sp,sp->val+halfpage); ++ else ++ SCSetVal(sp,sp->max); ++ } ++ else rv = 0; ++ } + else rv = 0; + } + +@@ -633,7 +866,9 @@ + int i, maxw, maxh; + XSizeHints hints; + ++#ifndef TV_MULTILINGUAL + if (tv->wide == w && tv->high == h) return; /* no change in size */ ++#endif + + if (XGetNormalHints(theDisp, tv->win, &hints)) { + hints.width = w; +@@ -657,10 +892,23 @@ + XMoveResizeWindow(theDisp, tv->textW, LRMARGINS, TOPMARGIN, + (u_int) tv->twWide, (u_int) tv->twHigh); + +- for (i=0; ibut[i].x = tv->wide - (TV_NBUTTS-i) * (BUTTW+5); ++ for (i=0; ibut[i].x = tv->wide - (TV_E_NBUTTS-i) * (BUTTW1+5); + tv->but[i].y = tv->high - BUTTH - 5; + } ++#ifdef TV_MULTILINGUAL ++ tv->csbut.x = 5; ++ tv->csbut.y = tv->high - BUTTH - 5; ++#endif ++ ++#ifdef TV_L10N ++ if (xlocale) { ++ for (; ibut[i].x = 5 + (i-TV_E_NBUTTS) * (BUTTW2+5); ++ tv->but[i].y = tv->high - BUTTH - 5; ++ } ++ } ++#endif + + computeScrlVals(tv); + +@@ -711,6 +959,29 @@ + case TV_CLOSE: if (tv == &tinfo[CMTWIN]) CloseCommentText(); + else closeText(tv); + break; ++ ++#ifdef TV_L10N ++ case TV_RESCAN: ++ tv->code = selectCodeset(tv); ++ drawTextW(0, &tv->vscrl); ++ break; ++ case TV_USASCII: ++ tv->code = LOCALE_USASCII; ++ drawTextW(0, &tv->vscrl); ++ break; ++ case TV_JIS: ++ tv->code = LOCALE_JIS; ++ drawTextW(0, &tv->vscrl); ++ break; ++ case TV_EUCJ: ++ tv->code = LOCALE_EUCJ; ++ drawTextW(0, &tv->vscrl); ++ break; ++ case TV_MSCODE: ++ tv->code = LOCALE_MSCODE; ++ drawTextW(0, &tv->vscrl); ++ break; ++#endif /* TV_L10N */ + } + } + +@@ -745,8 +1016,10 @@ + drawNumLines(tv); + + /* draw the buttons */ +- for (i=0; ibut[i])); +- ++ for (i=0; ibut[i])); ++#ifdef TV_MULTILINGUAL ++ BTRedraw(&tv->csbut); ++#endif + BTRedraw(&tv->nopBut); + } + +@@ -816,7 +1089,14 @@ + int delta; + SCRL *sptr; + { +- int i, j, lnum, hpos, cpos, extrach, lwide; ++ int i, j, lnum, hpos, vpos, cpos, lwide; ++#ifndef TV_MULTILINGUAL ++ int extrach; ++#endif ++#ifdef TV_L10N ++ int desig_stat; /* for ISO 2022-JP */ ++ /* 0: ASCII, 1: JIS X 0208, 2: GL is JIS X 0201 kana */ ++#endif + TVINFO *tv; + char linestr[512]; + u_char *sp, *ep, *lp; +@@ -839,12 +1119,38 @@ + XSetFont(theDisp, theGC, monofont); + + hpos = tv->hscrl.val; ++ vpos = tv->vscrl.val; + lwide = (tv->chwide < 500) ? tv->chwide : 500; + + /* draw text */ + if (!tv->hexmode) { /* ASCII mode */ ++#ifdef TV_MULTILINGUAL ++ XClearArea(theDisp, tv->textW, 0, 0, ++ (u_int) tv->twWide, (u_int) tv->twHigh, False); ++ if(tv->txt == NULL) ++ return; ++ else { ++ int i; ++ int y; ++ struct ml_text *tp = tv->txt; ++ struct ml_line *lp; ++ ++ XSetFunction(theDisp, theGC, GXcopy); ++ XSetClipMask(theDisp, theGC, None); ++ y = 3; ++ for (lp = &tp->lines[vpos], i = tp->nlines - vpos; ++ i > 0; lp++, i--) { ++ XDrawText16(theDisp, tv->textW, theGC, ++ -mfwide * hpos + 3, y + lp->ascent, ++ lp->items, lp->nitems); ++ y += lp->ascent + lp->descent; ++ if (y > tv->twHigh) ++ break; ++ } ++ } ++#else + for (i=0; ichhigh; i++) { /* draw each line */ +- lnum = i + tv->vscrl.val; ++ lnum = i + vpos; + if (lnum < tv->numlines-1) { + + /* find start of displayed portion of line. This is *wildly* +@@ -865,7 +1171,13 @@ + cpos--; sp++; + } + else if (*sp < 32) extrach = 1; ++ ++#ifdef TV_L10N ++ else if (!tv->code && *sp > 127) extrach = 3; ++#else + else if (*sp > 127) extrach = 3; ++#endif ++ + else sp++; + } + else { +@@ -881,6 +1193,10 @@ + + /* build up the linestr buffer, which is the current line, padded + with blanks to a width of exactly tv->chwide chars */ ++#ifdef TV_L10N ++ desig_stat = 0; /* for ISO 2022-JP */ ++ /* 0: ASCII, 1: JIS X 0208, 2: GL is JIS X 0201 kana */ ++#endif + for (cpos=0, lp=(byte *) linestr; cpos=ep) *lp = ' '; + else { +@@ -894,13 +1210,117 @@ + cpos--; lp--; sp++; + } + ++#ifdef TV_L10N ++ else if (*sp < 32 && !(tv->code == LOCALE_JIS && *sp == 0x1b)) { ++#else + else if (*sp < 32) { ++#endif + if (!extrach) extrach = 2; + if (extrach == 2) *lp = '^'; + else if (extrach == 1) *lp = *sp + 64; + } + ++#ifdef TV_L10N ++ /* convert to EUC-Japan */ ++ else if (tv->code == LOCALE_JIS) { ++ if (*sp == 0x1b) { /* ESC */ ++ if (*(sp+1) == '$') { ++ if (*(sp+2) == 'B' || *(sp+2) == 'A' || *(sp+2) == '@') { ++ /* ESC $ B, ESC $ A, ESC $ @ */ ++ desig_stat = 1; ++ sp += 3; cpos--; lp--; ++ } ++ else if (*(sp+2) == '(' && *(sp+3) == 'B') { ++ /* ESC $ ( B */ ++ desig_stat = 1; ++ sp += 4; cpos--; lp--; ++ } ++ } ++ else if (*(sp+1) == '(') { ++ if (*(sp+2) == 'B' || *(sp+2) == 'J' || *(sp+2) == 'H') { ++ /* ESC ( B, ESC ( J, ESC ( H */ ++ desig_stat = 0; ++ sp += 3; cpos--; lp--; ++ } ++ else if (*(sp+2) == 'I') { ++ /* ESC ( I */ ++ desig_stat = 2; ++ sp += 3; cpos--; lp--; ++ } ++ } ++ else if (*(sp+1) == ')' && *(sp+2) == 'I') { ++ /* ESC ) I */ ++ desig_stat = 2; ++ sp += 3; cpos--; lp--; ++ } ++ else { /* error */ ++ *lp = ' '; sp++; ++ } ++ } ++ ++ else { ++ switch (desig_stat) { ++ case 0: /* ASCII */ ++ *lp = *sp++; ++ break; ++ case 1: /* JIS X 0208 */ ++ *lp++ = *sp++ | 0x80; ++ *lp = *sp++ | 0x80; ++ cpos++; ++ break; ++ case 2: /* JIS X 0201 kana */ ++#if defined(__osf__) && !defined(X_LOCALE) ++ *lp = '='; sp++; ++#else ++ *lp++ = 0x8e; /* ^N | 0x80 */ ++ *lp = *sp++ | 0x80; ++#endif ++ break; ++ default: /* error */ ++ *lp = *sp++; ++ break; ++ } ++ } ++ } ++ ++ else if (tv->code == LOCALE_MSCODE) { ++ if ((*sp >= 0x81 && *sp <= 0x9f) ++ || (*sp >= 0xe0 && *sp <= 0xef)) { ++ static u_char c1, c2; ++ ++/*fprintf(stderr, "(%x,%x)->", *sp, *(sp+1));*/ ++ c1 = ((*sp - ((*sp>=0xe0) ? 0xb0 : 0x70)) << 1) ++ - ((*(sp+1)<=0x9e) ? 1 : 0); ++ c2 = *(sp+1); ++ if (c2 >= 0x9f) c2 -= 0x7e; /* 0x9F - 0xFC */ ++ else if (c2 >= 0x80) c2 -= 0x20; /* 0x80 - 0x9E */ ++ else c2 -= 0x1f; /* 0x40 - 0x7E */ ++ ++ *lp++ = c1 | 0x80; ++ *lp = c2 | 0x80; ++ sp += 2; ++/*fprintf(stderr, "(%x %x) ", c1 | 0x80, c2 | 0x80);*/ ++ cpos++; ++ } ++ ++ else if (*sp >= 0xa1 && *sp <= 0xdf) { /* JIS X 0201 kana */ ++#if defined(__osf__) && !defined(X_LOCALE) ++ *lp = '='; sp++; ++#else ++ *lp++ = 0x8e; /* ^N | 0x80 */ ++ *lp = *sp++; ++#endif ++ } ++ ++ else *lp = *sp++; ++ } ++#endif /* TV_L10N */ ++ ++#ifdef TV_L10N ++ else if (!tv->code && *sp > 127) { ++#else + else if (*sp > 127) { ++#endif + if (!extrach) extrach = 4; + if (extrach == 4) *lp = '\\'; + else if (extrach == 3) *lp = ((u_char)(*sp & 0700) >> 6) + '0'; +@@ -916,6 +1336,9 @@ + } + } + } ++#ifdef TV_L10N ++ *lp = '\0'; /* terminate linestr */ ++#endif + } + + else { /* below bottom of file. Just build a blank str */ +@@ -923,15 +1346,22 @@ + } + + /* draw the line */ +- XDrawImageString(theDisp, tv->textW, theGC, +- 3, i*mfhigh + 3 + mfascent, linestr, lwide); ++#ifdef TV_L10N ++ if (xlocale) ++ XmbDrawImageString(theDisp, tv->textW, monofset, theGC, ++ 3, i*mfhigh + 1 + mfascent, linestr, strlen(linestr)); ++ else ++#endif ++ XDrawImageString(theDisp, tv->textW, theGC, ++ 3, i*mfhigh + 3 + mfascent, linestr, lwide); + } /* for i ... */ ++#endif /* TV_MULTILINGUAL */ + } /* if hexmode */ + + + else { /* HEX MODE */ + for (i=0; ichhigh; i++) { /* draw each line */ +- lnum = i + tv->vscrl.val; ++ lnum = i + vpos; + if (lnum < tv->hexlines) { + + char hexstr[80], tmpstr[16]; +@@ -957,7 +1387,11 @@ + + for (j=0; j<16; j++) { + if (sp+j < ep) { ++#ifdef TV_L10N ++ if (sp[j] >= 32 && (sp[j] <= 127 || tv->code)) *lp++ = sp[j]; ++#else + if (sp[j] >= 32 && sp[j] <= 127) *lp++ = sp[j]; ++#endif + else *lp++ = '.'; + } + else *lp++ = ' '; +@@ -1005,14 +1439,21 @@ + int i; + BUTT *bp; + +- for (i=0, bp=tv->but; ibut; ix,bp->y,bp->w,bp->h)) break; + } + +- if (icsbut.x, tv->csbut.y, tv->csbut.w, tv->csbut.h)) { ++ if (BTTrack(&tv->csbut)) ++ openCsWin(tv); ++ } ++#endif + } + + +@@ -1042,13 +1483,38 @@ + + /* keyboard equivalents */ + switch (buf[0]) { +- case '\001': doCmd(tv, TV_ASCII); break; /* ^A = Ascii */ +- case '\010': doCmd(tv, TV_HEX); break; /* ^H = Hex */ +- +- case '\033': doCmd(tv, TV_CLOSE); break; /* ESC = Close window */ ++ case '\001': case 'a': case 'A': ++ doCmd(tv, TV_ASCII); break; /* ^A = Ascii */ ++ case '\010': case 'h': case 'H': ++ doCmd(tv, TV_HEX); break; /* ^H = Hex */ ++ ++ case '\021': case 'q': case 'Q': ++ case '\003': case 'c': case 'C': ++ case '\033': ++ doCmd(tv, TV_CLOSE); break; /* ESC = Close window */ + + default: break; + } ++ ++#ifdef TV_L10N ++ if (xlocale) { ++ switch (buf[0]) { ++ case '\022': case 'r': case 'R': ++ doCmd(tv, TV_RESCAN); break; ++ case '\012': case 'j': case 'J': ++ doCmd(tv, TV_JIS); break; ++ case '\005': case 'e': case 'E': ++ case '\025': case 'u': case 'U': ++ doCmd(tv, TV_EUCJ); break; ++ case '\015': case 'm': case 'M': ++ case '\023': case 's': case 'S': ++ doCmd(tv, TV_MSCODE); break; ++ ++ default: break; ++ } ++ } ++#endif /* TV_L10N */ ++ + } + + +@@ -1109,7 +1575,20 @@ + if (inumlines-1) SCSetVal(&tv->vscrl, i); + } + ++#ifdef TV_L10N ++ /* redraw text */ ++ if (xlocale) { ++ XClearArea(theDisp, tv->textW, 0, 0, ++ (u_int) tv->twWide, (u_int) tv->twHigh, False); ++ ++ drawTextW(0, &tv->vscrl); ++ } ++#endif ++#ifdef TV_MULTILINGUAL ++ XClearArea(theDisp, tv->textW, 0, 0, ++ (u_int) tv->twWide, (u_int) tv->twHigh, False); + drawTextW(0, &tv->vscrl); ++#endif + } + + +@@ -1122,9 +1601,22 @@ + int i,j,wide,maxwide,space; + byte *sp; + ++#ifdef TV_L10N ++ /* select code-set */ ++ if (xlocale) ++ tv->code = selectCodeset(tv); ++#endif /* TV_L10N */ ++ + if (!tv->text) { + tv->numlines = tv->hexlines = 0; + tv->lines = (char **) NULL; ++#ifdef TV_MULTILINGUAL ++ if (tv->cv_text != NULL) { ++ free(tv->cv_text); ++ tv->cv_text = NULL; ++ } ++ tv->txt = NULL; ++#endif + return; + } + +@@ -1172,17 +1664,129 @@ + wide += space; + } + else if (*sp < 32) wide += 2; ++#ifdef TV_L10N ++ else if (*sp > 127 && !tv->code) wide += 4; ++#else + else if (*sp > 127) wide += 4; ++#endif + else wide++; + } + if (wide > maxwide) maxwide = wide; + } + tv->maxwide = maxwide; + ++#ifdef TV_MULTILINGUAL ++ ml_set_charsets(tv->ctx, &tv->ccs.coding_system); ++ if (tv->cv_text != NULL) { ++ free(tv->cv_text); ++ tv->cv_text = NULL; ++ } ++ if (tv->ccs.converter == NULL) { ++ tv->txt = ml_draw_text(tv->ctx, tv->text, tv->textlen); ++ } else { ++ tv->cv_text = (*tv->ccs.converter)(tv->text, tv->textlen, &tv->cv_len); ++ tv->txt = ml_draw_text(tv->ctx, tv->cv_text, tv->cv_len); ++ } ++ tv->maxwide = tv->txt->width / mfwide; ++ tv->numlines = tv->txt->height / mfhigh + 1; ++#endif ++ + tv->hexlines = (tv->textlen + 15) / 16; + } + + ++/***************************************************/ ++#ifdef TV_L10N ++static int selectCodeset(tv) ++ TVINFO *tv; ++{ ++ u_char *sp; ++ int i, len; ++ int code = LOCALE_USASCII; /* == 0 */ ++ ++ ++ len = tv->textlen; ++ ++ /* select code-set */ ++ if (xlocale) { ++ sp = (u_char *) tv->text; i = 0; ++ while (i < len - 1) { ++ if (*sp == 0x1b && ++ (*(sp+1) == '$' || *(sp+1) == '(' || *(sp+1) == ')')) { ++ code = LOCALE_JIS; ++ break; ++ } ++ ++ else if (*sp >= 0xa1 && *sp <= 0xdf) { ++ if (*(sp+1) >= 0xf0 && *(sp+1) <= 0xfe) { ++ code = LOCALE_EUCJ; ++ break; ++ } ++# if (LOCALE_DEFAULT == LOCALE_EUCJ) ++ else { ++ sp++; i++; ++ } ++# endif ++ } ++ ++ else if ((*sp >= 0x81 && *sp <= 0x9f) || (*sp >= 0xe0 && *sp <= 0xef)) { ++ if ((*(sp+1) >= 0x40 && *(sp+1) <= 0x7e) || *(sp+1) == 0x80) { ++ code = LOCALE_MSCODE; ++ break; ++ } ++ else if (*(sp+1) == 0xfd || *(sp+1) == 0xfe) { ++ code = LOCALE_EUCJ; ++ break; ++ } ++ else { ++ sp++; i++; ++ } ++ } ++ ++ else if (*sp >= 0xf0 && *sp <= 0xfe) { ++ code = LOCALE_EUCJ; ++ break; ++ } ++ ++ sp++; i++; ++ } ++ if (!code) code = LOCALE_DEFAULT; ++ } ++ ++ return code; ++} ++#endif /* TV_L10N */ ++ ++#ifdef TV_MULTILINGUAL ++static void setCodingSpec(tv, cs) ++ TVINFO *tv; ++ struct coding_spec *cs; ++{ ++ if (xvbcmp((char *) &tv->ccs, (char *) cs, sizeof *cs) == 0) ++ return; ++ ++ tv->ccs = *cs; ++#if 0 ++ ml_set_charsets(tv->ctx, &tv->ccs.coding_system); ++ if (tv->cv_text != NULL) { ++ free(tv->cv_text); ++ tv->cv_text = NULL; ++ } ++ if (tv->ccs.converter == NULL) { ++ tv->txt = ml_draw_text(tv->ctx, tv->text, tv->textlen); ++ } else { ++ tv->cv_text = (*tv->ccs.converter)(tv->text, tv->textlen, &tv->cv_len); ++ tv->txt = ml_draw_text(tv->ctx, tv->cv_text, tv->cv_len); ++ } ++#else ++ computeText(tv); ++ computeScrlVals(tv); ++#endif ++ /* drawTextW(0, &tv->vscrl); */ ++} ++#endif ++ ++ + /**********************************************************************/ + /* BUILT-IN TEXT FILES ************************************************/ + /**********************************************************************/ +@@ -1555,8 +2159,509 @@ + OpenTextView(keyhelp, (int) strlen(keyhelp), "XV Help", 0); + } + ++#ifdef TV_MULTILINGUAL ++ ++#define TV_ML_ACCEPT TV_NCSS ++#define TV_ML_CLOSE (TV_ML_ACCEPT + 1) ++#define TV_ML_NBUTTS (TV_ML_CLOSE + 1) ++ ++#define TV_ML_RETCODE 0 ++# define TV_ML_RET_LF 0 ++# define TV_ML_RET_CRLF 1 ++# define TV_ML_RET_CR 2 ++# define TV_ML_RET_ANY 3 ++#define TV_ML_GL 1 ++#define TV_ML_GR 2 ++#define TV_ML_CVTR 3 ++#define TV_ML_NRBUTTS 4 ++ ++#define TV_ML_SHORT 0 ++#define TV_ML_LOCK 1 ++#define TV_ML_NCBUTTS 2 ++ ++#define TV_ML_NLISTS 4 ++ ++#define CSWIDE (BUTTW3 * 5 + 5 * 6) ++#define CSHIGH 450 ++ ++typedef struct csinfo_t { ++ TVINFO *tv; ++ RBUTT *rbt[TV_ML_NRBUTTS]; ++ CBUTT cbt[TV_ML_NCBUTTS]; ++ LIST ls[TV_ML_NLISTS]; ++ BUTT bt[TV_ML_NBUTTS]; ++ int up; ++ Window win; ++ struct coding_spec tcs; /* temporary coding_spec */ ++} CSINFO; ++CSINFO csinfo[MAXTVWIN]; ++static char **regs; ++static int nregs; ++ ++static int csCheckEvent PARM((CSINFO *, XEvent *)); ++static void csReflect PARM((CSINFO *)); ++static void csRedraw PARM((CSINFO *)); ++static void csListRedraw PARM((LIST *)); ++static void csLsRedraw PARM((int, SCRL *)); ++static void create_registry_list PARM((void)); ++ ++static char *(*cvtrtab[])PARM((char *, int, int *)) = { ++ NULL, ++ sjis_to_jis, ++}; ++ ++static void createCsWins(geom) ++ char *geom; ++{ ++ XSetWindowAttributes xswa; ++ int i, j; ++ ++ create_registry_list(); ++ ++ xswa.backing_store = WhenMapped; ++ for (i = 0; i < MAXTVWIN; i++) { ++ char nam[8]; ++ TVINFO *tv = &tinfo[i]; ++ CSINFO *cs = &csinfo[i]; ++ tv->cs = cs; ++ cs->tv = tv; ++ sprintf(nam, "XVcs%d", i); ++ cs->win = CreateWindow("xv codeset", nam, geom, ++ CSWIDE, CSHIGH, infofg, infobg, 0); ++ if (!cs->win) FatalError("couldn't create 'charset' window!"); ++#ifdef BACKING_STORE ++ XChangeWindowAttributes(theDisp, cs->win, CWBackingStore, &xswa); ++#endif ++ XSelectInput(theDisp, cs->win, ExposureMask | ButtonPressMask); ++ ++ DrawString(cs->win, 5, 5 + ASCENT, "Initial States"); ++ for (i = 0; i < TV_ML_NLISTS; i++) { ++ int x, y; ++ char buf[80]; ++ ++ if (i / 2 == 0) ++ x = 15; ++ else ++ x = 280; ++ if (i % 2 == 0) ++ y = 5 + LINEHIGH * 1; ++ else ++ y = 5 + LINEHIGH * 7 + SPACING * 3; ++ ++ sprintf(buf, "Designation for G%d:", i + 1); ++ DrawString(cs->win, x, y + ASCENT, buf); ++ ++ LSCreate(&cs->ls[i], cs->win, x + 15, y + LINEHIGH, ++ 200, LINEHIGH * 5, 5, ++ regs, nregs + 2, ++ infofg, infobg, hicol, locol, csLsRedraw, 0, 0); ++ cs->ls[i].selected = 0; ++ } ++ ++ for (i = 0; i < 2; i++) { ++ char *p; ++ int n; ++ int x, y; ++ ++ if ((p = (char *) malloc(3 * 4)) == NULL) ++ FatalError("out of memory in createCsWins()."); ++ strcpy(p, "G1 G2 G3 G4"); ++ p[2] = p[5] = p[8] = '\0'; ++ n = (i == 0 ? TV_ML_GL : TV_ML_GR); ++ x = (i == 0 ? 15 : 280); ++ y = 235; ++ DrawString(cs->win, x, y + ASCENT, "Assignment for GL:"); ++ x += 15; ++ y += LINEHIGH; ++ cs->rbt[n] = RBCreate(NULL, cs->win, ++ x, y, p, infofg, infobg, hicol, locol); ++ for (j = 1; j < 4; j++) { ++ p += 3; ++ x += 50; ++ RBCreate(cs->rbt[n], cs->win, ++ x, y, p, infofg, infobg, hicol, locol); ++ } ++ } ++ ++ DrawString(cs->win, 5, 280 + ASCENT, "Ret Code:"); ++ cs->rbt[TV_ML_RETCODE] = ++ RBCreate(NULL, cs->win, 20, 300, "LF", infofg,infobg, hicol,locol); ++ RBCreate(cs->rbt[TV_ML_RETCODE], cs->win, 20, 300 + 20, "CR+LF", ++ infofg, infobg, hicol, locol); ++ RBCreate(cs->rbt[TV_ML_RETCODE], cs->win, 90, 300, "CR", ++ infofg, infobg, hicol, locol); ++ RBCreate(cs->rbt[TV_ML_RETCODE], cs->win, 90, 300 + 20, "Any", ++ infofg, infobg, hicol, locol); ++ ++ DrawString(cs->win, 350, 280 + ASCENT, "Converter:"); ++ cs->rbt[TV_ML_CVTR] = ++ RBCreate(NULL, cs->win, 365, 300, "Nothing", ++ infofg, infobg, hicol, locol); ++ RBCreate(cs->rbt[TV_ML_CVTR], cs->win, 365, 300 + 20, "Shift JIS", ++ infofg, infobg, hicol, locol); ++ ++ CBCreate(&cs->cbt[TV_ML_SHORT], cs->win, 200, 300, "Short Form", ++ infofg, infobg, hicol, locol); ++ CBCreate(&cs->cbt[TV_ML_LOCK], cs->win, 200, 320, "Locking Shift", ++ infofg, infobg, hicol, locol); ++ ++ for (j = 0; j < TV_NCSS; j++) { ++ BTCreate(&cs->bt[j], cs->win, ++ 5 + (BUTTW3 + 5) * (j % 5), ++ 350 + 5 + (BUTTH + 5) * (j / 5), ++ BUTTW3, BUTTH, codeSetNames[j], ++ infofg, infobg, hicol, locol); ++ } ++ BTCreate(&cs->bt[TV_ML_ACCEPT], cs->win, ++ CSWIDE - 10 - BUTTW3 * 2, CSHIGH - 5 - BUTTH, BUTTW3, BUTTH, ++ "Accept", infofg, infobg, hicol, locol); ++ BTCreate(&cs->bt[TV_ML_CLOSE], cs->win, ++ CSWIDE - 5 - BUTTW3, CSHIGH - 5 - BUTTH, BUTTW3, BUTTH, ++ "Close", infofg, infobg, hicol, locol); + ++ XMapSubwindows(theDisp, cs->win); ++ cs->up = 0; ++ } ++} + ++static void openCsWin(tv) ++ TVINFO *tv; ++{ ++ CSINFO *cs = tv->cs; ++ if (cs->up) ++ return; + ++ XMapRaised(theDisp, cs->win); ++ cs->up = 1; ++ cs->tcs = cs->tv->ccs; ++ csReflect(cs); ++} + ++static void closeCsWin(tv) ++ TVINFO *tv; ++{ ++ CSINFO *cs = tv->cs; ++ if (!cs->up) ++ return; ++ cs->up = 0; ++ XUnmapWindow(theDisp, cs->win); ++} ++ ++int CharsetCheckEvent(xev) ++ XEvent *xev; ++{ ++ int i; ++ CSINFO *cs; ++ ++ for (cs = csinfo, i = 0; i < MAXTVWIN; cs++, i++) { ++ if (!cs->up) ++ continue; ++ if (csCheckEvent(cs, xev)) ++ break; ++ } ++ if (i < MAXTVWIN) ++ return 1; ++ return 0; ++} ++ ++static int csCheckEvent(cs, xev) ++ CSINFO *cs; ++ XEvent *xev; ++{ ++ RBUTT **rbp; ++ CBUTT *cbp; ++ LIST *ls; ++ BUTT *bp; ++ int i, n; ++ ++ if (xev->type == Expose) { ++ int x, y, w, h; ++ XExposeEvent *e = (XExposeEvent *) xev; ++ x = e->x; y = e->y; w = e->width; h = e->height; ++ ++ if (cs->win == e->window){ ++ csRedraw(cs); ++ return 1; ++ } else { ++ for (i = 0; i < TV_ML_NLISTS; i++) { ++ if (cs->ls[i].win == e->window) { ++ LSRedraw(&cs->ls[i], 0); ++ return 1; ++ } ++ } ++ for (i = 0; i < TV_ML_NLISTS; i++) { ++ if (cs->ls[i].scrl.win == e->window) { ++ SCRedraw(&cs->ls[i].scrl); ++ return 1; ++ } ++ } ++ } ++ } else if (xev->type == ButtonPress) { ++ int x, y; ++ XButtonEvent *e = (XButtonEvent *) xev; ++ x = e->x; y = e->y; ++ if (cs->win == e->window) { ++ for (bp = cs->bt, i = 0; i < TV_ML_NBUTTS; bp++, i++) { ++ if (PTINRECT(x, y, bp->x, bp->y, bp->w, bp->h)) ++ break; ++ } ++ if (i < TV_ML_NBUTTS) { ++ if (BTTrack(bp)) { ++ if (i < TV_NCSS) { ++ cs->tcs = coding_spec[i]; ++ csReflect(cs); ++ } else { ++ switch (i) { ++ case TV_ML_ACCEPT: ++ setCodingSpec(cs->tv, &cs->tcs); ++ break; ++ case TV_ML_CLOSE: ++ closeCsWin(cs->tv); ++ break; ++ } ++ } ++ } ++ return 1; ++ } ++ for (cbp = cs->cbt, i = 0; i < TV_ML_NCBUTTS; cbp++, i++) { ++ if (CBClick(cbp, x, y) && CBTrack(cbp)) ++ break; ++ } ++ if (i < TV_ML_NCBUTTS) { ++ switch (i) { ++ case TV_ML_SHORT: ++ cs->tcs.coding_system.short_form = cbp->val; ++ break; ++ case TV_ML_LOCK: ++ cs->tcs.coding_system.lock_shift = cbp->val; ++ break; ++ } ++ return 1; ++ } ++ for (rbp = cs->rbt, i = 0; i < TV_ML_NRBUTTS; rbp++, i++) { ++ if ((n = RBClick(*rbp, x, y)) >= 0 && RBTrack(*rbp, n)) { ++ break; ++ } ++ } ++ if (i < TV_ML_NRBUTTS) { ++ switch (i) { ++ case TV_ML_RETCODE: ++ cs->tcs.coding_system.eol = n; ++ break; ++ case TV_ML_GL: ++ cs->tcs.coding_system.gl = n; ++ break; ++ case TV_ML_GR: ++ cs->tcs.coding_system.gr = n; ++ break; ++ case TV_ML_CVTR: ++ cs->tcs.converter = cvtrtab[n]; ++ break; ++ } ++ return 1; ++ } ++ } else { ++ for (ls = cs->ls, i = 0; i < TV_ML_NLISTS; ls++, i++) { ++ if (ls->win == e->window) { ++ LSClick(ls, e); ++ n = ls->selected; ++ if (n < nregs) { ++ char r[32], *p = r; ++ int b7; ++ strcpy(r, regs[n]); ++ if ((p = strrchr(r, '/')) != NULL) { ++ *p = '\0'; ++ b7 = (*(p + 1) == 'R' ? 1 : 0); ++ } else ++ b7 = 0; /* shouldn't occur */ ++ cs->tcs.coding_system.design[i] = lookup_design(r, b7); ++ } else if (n == nregs) /* initially none is designed. */ ++ cs->tcs.coding_system.design[i].bpc = 0; ++ else ++ cs->tcs.coding_system.design[i].bpc = -1; ++ return 1; ++ } ++ } ++ for (ls = cs->ls, i = 0; i < TV_ML_NLISTS; ls++, i++) { ++ if (ls->scrl.win == e->window) { ++ SCTrack(&ls->scrl, x, y); ++ return 1; ++ } ++ } ++ } ++ } ++ return 0; ++} ++ ++static void csReflect(cs) ++ CSINFO *cs; ++{ ++ int i; ++ ++ RBSelect(cs->rbt[TV_ML_RETCODE], cs->tcs.coding_system.eol); ++ RBSelect(cs->rbt[TV_ML_GL], cs->tcs.coding_system.gl); ++ RBSelect(cs->rbt[TV_ML_GR], cs->tcs.coding_system.gr); ++ for (i = 0; i < sizeof cvtrtab / sizeof cvtrtab[0]; i++) { ++ if (cs->tcs.converter == cvtrtab[i]) ++ break; ++ } ++ if (i >= sizeof cvtrtab / sizeof cvtrtab[0]) ++ FatalError("program error in csReflect()."); ++ RBSelect(cs->rbt[TV_ML_CVTR], i); ++ ++ cs->cbt[TV_ML_SHORT].val = cs->tcs.coding_system.short_form; ++ cs->cbt[TV_ML_LOCK].val = cs->tcs.coding_system.lock_shift; ++ for (i = 0; i < TV_ML_NLISTS; i++) { ++ struct design design = cs->tcs.coding_system.design[i]; ++ char *reg, r[32]; ++ int b7; ++ int n = 0; ++ switch (design.bpc) { ++ case -1: ++ n = nregs + 1; ++ break; ++ case 0: ++ n = nregs; ++ break; ++ case 1: ++ case 2: ++ if ((reg = lookup_registry(design, &b7)) == NULL) ++ FatalError("internal error in csReflect."); ++ sprintf(r, "%s/%s", reg, b7 ? "Right" : "Left"); ++ for (n = 0; n < nregs; n++) { ++ if (strcmp(regs[n], r) == 0) ++ break; ++ } ++ } ++ cs->ls[i].selected = n; ++ ScrollToCurrent(&cs->ls[i]); ++ } ++ csRedraw(cs); ++ for (i = 0; i < TV_ML_NLISTS; i++) ++ csListRedraw(&cs->ls[i]); ++} ++ ++static void csRedraw(cs) ++ CSINFO *cs; ++{ ++ int i; ++ ++ XSetForeground(theDisp, theGC, infofg); ++ DrawString(cs->win, 5,5 + ASCENT, "Initial States"); ++ for (i = 0; i < TV_ML_NLISTS; i++) { ++ int x, y; ++ char buf[80]; ++ ++ if (i / 2 == 0) ++ x = 15; ++ else ++ x = 280; ++ if (i % 2 == 0) ++ y = 5 + LINEHIGH * 1; ++ else ++ y = 5 + LINEHIGH * 7 + SPACING * 3; ++ ++ sprintf(buf, "Designation for G%d:", i); ++ DrawString(cs->win, x, y + ASCENT, buf); ++ } ++ ++ DrawString(cs->win, 15, 235 + ASCENT, "Invocation for GL:"); ++ DrawString(cs->win, 280, 235 + ASCENT, "Invocation for GR:"); ++ DrawString(cs->win, 5, 280 + ASCENT, "Ret Code:"); ++ DrawString(cs->win, 350, 280 + ASCENT, "Converter:"); ++ ++ for (i = 0; i < TV_ML_NBUTTS; i++) ++ BTRedraw(&cs->bt[i]); ++ for (i = 0; i < TV_ML_NCBUTTS; i++) ++ CBRedraw(&cs->cbt[i]); ++ for (i = 0; i < TV_ML_NRBUTTS; i++) ++ RBRedraw(cs->rbt[i], -1); ++} ++ ++static void csListRedraw(ls) ++ LIST *ls; ++{ ++ int i; ++ for (i = 0; i < TV_ML_NLISTS; i++) { ++ LSRedraw(ls, 0); ++ SCRedraw(&ls->scrl); ++ } ++} ++ ++static void csLsRedraw(delta, sptr) ++ int delta; ++ SCRL *sptr; ++{ ++ int i, j; ++ for (i = 0; i < MAXTVWIN; i++) { ++ for (j = 0; j < TV_ML_NLISTS; j++) { ++ if (sptr == &csinfo[i].ls[j].scrl) { ++ LSRedraw(&csinfo[i].ls[j], delta); ++ return; ++ } ++ } ++ } ++} ++ ++int CharsetDelWin(win) ++ Window win; ++{ ++ CSINFO *cs; ++ int i; ++ ++ for (cs = csinfo, i = 0; i < TV_NCSS; cs++, i++) { ++ if (cs->win == win) { ++ if (cs->up) { ++ XUnmapWindow(theDisp, cs->win); ++ cs->up = 0; ++ } ++ return 1; ++ } ++ } ++ return 0; ++} ++ ++static int reg_comp PARM((const void *, const void *)); ++static void create_registry_list() ++{ ++ struct design d; ++ char *names, *p; ++ int i; ++ ++ if ((p = names = (char *) malloc(32 * 0x80 * 2 * 2)) == NULL) ++ FatalError("out of memory in create_name_list#1."); ++ nregs = 0; ++ for (d.bpc = 1; d.bpc <=2; d.bpc++) { ++ for (d.noc = 94; d.noc <= 96; d.noc += 2) { ++ for (d.des = ' '; (unsigned char) d.des < 0x80; d.des++) { ++ int b7; ++ char *r; ++ if ((r = lookup_registry(d, &b7)) != NULL) { ++ sprintf(p, "%s/%s", r, b7 ? "Right" : "Left"); ++ p += strlen(p) + 1; ++ nregs++; ++ } ++ } ++ } ++ } ++ if ((names = (char *) realloc(names, (size_t) (p - names))) == NULL) ++ FatalError("out of memory in create_name_list#2."); ++ if ((regs = (char **) malloc(sizeof(char *) * (nregs + 3))) == NULL) ++ FatalError("out of memory in create_name_list#3."); ++ p = names; ++ for (i = 0; i < nregs; i++) { ++ regs[i] = p; ++ p += strlen(p) + 1; ++ } ++ qsort(regs, (size_t) nregs, sizeof(char *), reg_comp); ++ regs[i++] = "nothing"; ++ regs[i++] = "unused"; ++ regs[i++] = NULL; ++} ++static int reg_comp(dst, src) ++ const void *dst, *src; ++{ ++ return strcmp(*(char **) dst, *(char **) src); ++} + ++#endif /* TV_MULTILINGUAL */ +diff -ruN xv-3.10a-bugfixes/xvtiff.c xv-3.10a-enhancements/xvtiff.c +--- xv-3.10a-bugfixes/xvtiff.c 2005-03-27 17:25:31.000000000 -0800 ++++ xv-3.10a-enhancements/xvtiff.c 2005-04-17 14:11:55.000000000 -0700 +@@ -512,7 +512,7 @@ + vsprintf(cp, fmt, ap); + strcat(cp, "."); + +- SetISTR(ISTR_WARNING,buf); ++ SetISTR(ISTR_WARNING, "%s", buf); + + error_occurred = 1; + } +@@ -536,7 +536,7 @@ + vsprintf(cp, fmt, ap); + strcat(cp, "."); + +- SetISTR(ISTR_WARNING,buf); ++ SetISTR(ISTR_WARNING, "%s", buf); + } + + +@@ -564,6 +564,10 @@ + static byte **BWmap; + static byte **PALmap; + ++/* XXXX Work around some collisions with the new library. */ ++#define tileContigRoutine _tileContigRoutine ++#define tileSeparateRoutine _tileSeparateRoutine ++ + typedef void (*tileContigRoutine) PARM((byte*, u_char*, RGBvalue*, + uint32, uint32, int, int)); + +@@ -603,7 +607,7 @@ + uint32, uint32, int, int)); + static void put4bitbwtile PARM((byte *, u_char *, RGBvalue *, + uint32, uint32, int, int)); +-static void put16bitbwtile PARM((byte *, u_char *, RGBvalue *, ++static void put16bitbwtile PARM((byte *, u_short *, RGBvalue *, + uint32, uint32, int, int)); + + static void putRGBcontig8bittile PARM((byte *, u_char *, RGBvalue *, +@@ -653,7 +657,7 @@ + + default: + TIFFError(TIFFFileName(tif), +- "Sorry, can not handle %d-bit pictures", bitspersample); ++ "Sorry, cannot handle %d-bit pictures", bitspersample); + return (0); + } + +@@ -666,7 +670,7 @@ + + default: + TIFFError(TIFFFileName(tif), +- "Sorry, can not handle %d-channel images", samplesperpixel); ++ "Sorry, cannot handle %d-channel images", samplesperpixel); + return (0); + } + +@@ -1157,7 +1161,7 @@ + b = g + stripsize; + put = pickTileSeparateCase(Map); + if (put == 0) { +- TIFFError(filename, "Can not handle format"); ++ TIFFError(filename, "Cannot handle format"); + return (0); + } + y = setorientation(tif, h); +@@ -1197,7 +1201,7 @@ + /* + * Greyscale images with less than 8 bits/sample are handled + * with a table to avoid lots of shifts and masks. The table +- * is setup so that put*bwtile (below) can retrieve 8/bitspersample ++ * is set up so that put*bwtile (below) can retrieve 8/bitspersample + * pixel values simply by indexing into the table with one + * number. + */ +@@ -1249,11 +1253,11 @@ + + + /* +- * Palette images with <= 8 bits/sample are handled +- * with a table to avoid lots of shifts and masks. The table +- * is setup so that put*cmaptile (below) can retrieve 8/bitspersample +- * pixel values simply by indexing into the table with one +- * number. ++ * Palette images with <= 8 bits/sample are handled with ++ * a table to avoid lots of shifts and masks. The table ++ * is set up so that put*cmaptile (below) can retrieve ++ * (8/bitspersample) pixel-values simply by indexing into ++ * the table with one number. + */ + static int makecmap() + { +@@ -1305,7 +1309,7 @@ + /* + * The following routines move decoded data returned + * from the TIFF library into rasters filled with packed +- * ABGR pixels (i.e. suitable for passing to lrecwrite.) ++ * ABGR pixels (i.e., suitable for passing to lrecwrite.) + * + * The routines have been created according to the most + * important cases and optimized. pickTileContigCase and +@@ -1376,7 +1380,7 @@ + int fromskew, toskew; + { + while (h-- > 0) { +- UNROLL8(w, , *cp++ = PALmap[*pp++][0]) ++ UNROLL8(w, , *cp++ = PALmap[*pp++][0]); + cp += toskew; + pp += fromskew; + } +@@ -1529,7 +1533,7 @@ + */ + static void put16bitbwtile(cp, pp, Map, w, h, fromskew, toskew) + byte *cp; +- u_char *pp; ++ u_short *pp; + RGBvalue *Map; + uint32 w, h; + int fromskew, toskew; +@@ -1538,8 +1542,7 @@ + + while (h-- > 0) { + for (x=w; x>0; x--) { +- *cp++ = Map[(pp[0] << 8) + pp[1]]; +- pp += 2; ++ *cp++ = Map[*pp++]; + } + cp += toskew; + pp += fromskew; +@@ -1577,7 +1580,7 @@ + *cp++ = pp[0]; + *cp++ = pp[1]; + *cp++ = pp[2]; +- pp += samplesperpixel) ++ pp += samplesperpixel); + cp += toskew; + pp += fromskew; + } +@@ -1650,7 +1653,7 @@ + *cp++ = *r++; + *cp++ = *g++; + *cp++ = *b++; +- ) ++ ); + SKEW(r, g, b, fromskew); + cp += toskew; + } +@@ -1857,7 +1860,7 @@ + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + switch (bitspersample) { +- case 16: put = put16bitbwtile; break; ++ case 16: put = (tileContigRoutine) put16bitbwtile; break; + case 8: put = putgreytile; break; + case 4: put = put4bitbwtile; break; + case 2: put = put2bitbwtile; break; +@@ -1872,7 +1875,7 @@ + break; + } + +- if (put==0) TIFFError(filename, "Can not handle format"); ++ if (put==0) TIFFError(filename, "Cannot handle format"); + return (put); + } + +@@ -1880,8 +1883,8 @@ + /* + * Select the appropriate conversion routine for unpacked data. + * +- * NB: we assume that unpacked single channel data is directed +- * to the "packed routines. ++ * NB: we assume that unpacked single-channel data is directed ++ * to the "packed" routines. + */ + static tileSeparateRoutine pickTileSeparateCase(Map) + RGBvalue* Map; +@@ -1897,10 +1900,32 @@ + break; + } + +- if (put==0) TIFFError(filename, "Can not handle format"); ++ if (put==0) TIFFError(filename, "Cannot handle format"); + return (put); + } + + + ++/*******************************************/ ++void ++VersionInfoTIFF() /* GRR 19980605 */ ++{ ++ char temp[1024], *p, *q; ++ ++ strcpy(temp, TIFFGetVersion()); ++ p = temp; ++ while (!isdigit(*p)) ++ ++p; ++ if ((q = strchr(p, '\n')) != NULL) ++ *q = '\0'; ++ ++ fprintf(stderr, " Compiled with libtiff %s", p); ++#ifdef TIFFLIB_VERSION ++ fprintf(stderr, " of %d", TIFFLIB_VERSION); /* e.g., 19960307 */ ++#endif ++ fprintf(stderr, ".\n"); ++} ++ ++ ++ + #endif /* HAVE_TIFF */ +diff -ruN xv-3.10a-bugfixes/xvtiffwr.c xv-3.10a-enhancements/xvtiffwr.c +--- xv-3.10a-bugfixes/xvtiffwr.c 2005-03-28 08:39:52.000000000 -0800 ++++ xv-3.10a-enhancements/xvtiffwr.c 2005-04-17 14:45:28.000000000 -0700 +@@ -86,6 +86,9 @@ + TIFFSetField(tif, TIFFTAG_GROUP3OPTIONS, + GROUP3OPT_2DENCODING+GROUP3OPT_FILLBITS); + ++ if (comp == COMPRESSION_LZW) ++ TIFFSetField(tif, TIFFTAG_PREDICTOR, 2); ++ + TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); + TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 1); + TIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); +diff -ruN xv-3.10a-bugfixes/xvvd.c xv-3.10a-enhancements/xvvd.c +--- xv-3.10a-bugfixes/xvvd.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvvd.c 2005-04-17 22:56:02.000000000 -0700 +@@ -0,0 +1,1101 @@ ++ ++/* ++ * xvvd.c - extract archived file automatically and regard it as a ++ * (virtual) directory. ++ */ ++ ++#define NEEDSDIR ++ ++#include "xv.h" ++ ++#ifdef AUTO_EXPAND ++ ++static void vd_Dirtovd PARM((char *)); ++static void vd_Vdtodir PARM((char *)); ++static int vd_Mkvdir PARM((char *)); ++static int vd_Rmvdir PARM((char *)); ++static int vd_Movevdir PARM((char *, char *)); ++static void vd_addvdtable PARM((char *)); ++static void vd_packvdtable PARM((void)); ++static int vd_recursive_mkdir PARM((char *)); ++static int vd_recursive_rmdir PARM((char *)); ++static void vd_optimize_path PARM((char *)); ++static int vd_ftype PARM((char *)); ++static int vd_compp PARM((char *, char *)); ++static int vd_UncompressFile PARM((char *, char *)); ++static int vd_tarc PARM((char *)); ++static u_int vd_tar_sumchk PARM((char *)); ++ ++#define VD_VDTABLESIZE 100 ++ ++#define VD_ERR -2 ++#define VD_UKN -1 ++ ++static char *ext_command[] = { ++/* KEEP 0 */ ++ NULL, ++#define VD_ARC 1 ++ "arc xo %s", ++#define VD_ARJ 2 ++ "unarj x %s", ++#define VD_LZH 3 ++ "lha -xf %s", ++#define VD_TAR 4 ++ "tar xvf %s", ++#define VD_ZIP 5 ++ "unzip -xo %s", ++#define VD_ZOO 6 ++ "zoo xOS %s", ++}; ++ ++int vdcount = 0; ++ ++static char vdroot[MAXPATHLEN+1]; ++static char *vdtable[VD_VDTABLESIZE]; ++ ++/* ++ * These functions initialize and settle virtual directory system. ++ * Vdinit: ++ * creates root of virtual directory. ++ * Vdsettle: ++ * sweeps virtual directories. ++ */ ++void Vdinit() ++{ ++#ifndef VMS ++ char tmp[MAXPATHLEN+1]; ++ ++ xv_getwd(tmp, MAXPATHLEN+1); ++ if (chdir(tmpdir)) { ++ fprintf(stderr, "Warning: cannot chdir to tmpdir = '%s'.\n", tmpdir); ++ fprintf(stderr, ++ " I will use current directory '%s' instead of tmpdir.\n", ++ tmp); ++ } ++ xv_getwd(vdroot, MAXPATHLEN+1); ++ strcat(vdroot, "/.xvvdXXXXXX"); ++ chdir(tmp); ++#else ++ sprintf(vdroot, "Sys$Scratch:xvvdXXXXXX"); ++#endif /* VMS */ ++#ifdef USE_MKSTEMP ++ close(mkstemp(vdroot)); ++#else ++ mktemp(vdroot); ++#endif ++ ++ if (!vd_recursive_mkdir(vdroot)) ++ tmpdir = vdroot; ++} ++ ++void Vdsettle() ++{ ++ int i; ++ ++ for (i = 0; i < vdcount; i++) ++ free(vdtable[i]); ++ ++ vdcount = 0; ++ ++ vd_recursive_rmdir(vdroot); ++} ++ ++/* ++ * This function chdir to virtual directory, if specified path is in ++ * virtual directlry. ++ */ ++int Chvdir(dir) ++char *dir; ++{ ++ char buf[MAXPATHLEN+1]; ++ ++ if (Mkvdir(dir) == VD_ERR) ++ return -1; ++ ++ strcpy(buf, dir); ++ Dirtovd(buf); ++ ++ return (chdir(buf)); ++} ++ ++/* ++ * These functions convert directory <-> virtual directory. ++ * Dirtovd: ++ * front interface of vd_Dirtovd. ++ * vd_Dirtovd: ++ * converts directory to virtual directory. ++ * Vdtodir: ++ * front interface of vd_Vdtodir. ++ * vd_Vdtodir: ++ * converts virtual directory to normal directory. ++ * Dirtosubst: ++ * converts directory to substance of archive. ++ */ ++void Dirtovd(dir) ++char *dir; ++{ ++ vd_optimize_path(dir); ++ ++ vd_Dirtovd(dir); ++} ++ ++static void vd_Dirtovd(dir) ++char *dir; ++{ ++ int i; ++ ++ for (i = 0; i < vdcount; i++) ++ if (!strncmp(dir, vdtable[i], strlen(vdtable[i]))) { ++ char tmp[MAXPATHLEN+1]; ++ ++ sprintf(tmp, "%s%s", vdroot, dir); ++ strcpy(dir, tmp); ++ Dirtovd(dir); ++ } ++} ++ ++void Vdtodir(dir) ++char *dir; ++{ ++ vd_optimize_path(dir); ++ ++ vd_Vdtodir(dir); ++} ++ ++static void vd_Vdtodir(vd) ++char *vd; ++{ ++ int i; ++ char tmp[MAXPATHLEN+1]; ++ ++ for (i = vdcount-1; i >= 0; i--) { ++ sprintf(tmp, "%s%s", vdroot, vdtable[i]); ++ if(!strncmp(vd, tmp, strlen(tmp))) { ++ strcpy(tmp, vd+strlen(vdroot)); ++ strcpy(vd, tmp); ++ Vdtodir(vd); ++ } ++ } ++} ++ ++void Dirtosubst(dir) ++char *dir; ++{ ++ char tmp[MAXPATHLEN+1]; ++ ++ Dirtovd(dir); ++ ++ strcpy(tmp, dir+strlen(vdroot)); ++ ++ if (Isarchive(tmp)) ++ strcpy(dir, tmp); ++} ++ ++/* ++ * These functions make virtual directory and extracts archive, if ++ * specified path is archive. ++ * Mkvdir: ++ * front interface of vd_Mkvdir. ++ * vd_Mkvdir: ++ * does real work. ++ * Mkvdir_force: (used by makeThumbDir(in xvbrowse.c) only) ++ * make virtual directory by force. ++ */ ++int Mkvdir(dir) ++char *dir; ++{ ++ char dir1[MAXPATHLEN+1], dir2[MAXPATHLEN+1]; ++ char *d1, *d2; ++ int rv; ++ ++#if defined(SYSV) || defined(SVR4) || defined(__USE_XOPEN_EXTENDED) ++ sighold(SIGHUP); ++ sighold(SIGCHLD); ++#else ++ int mask; ++ mask = sigblock(sigmask(SIGHUP)|sigmask(SIGCHLD)); ++#endif ++ ++ strcpy(dir1, dir); ++ vd_optimize_path(dir1); ++ ++ if ((rv = vd_Mkvdir(dir1)) != VD_ERR) ++ goto MKVDIR_END; ++ ++ strcpy(dir2, dir1); ++ d2 = dir2 + strlen(dir2); ++ while (rv == VD_ERR) { ++ d2--; ++ while (*d2 != '/') ++ d2--; ++ *d2 = '\0'; ++ rv = vd_Mkvdir(dir2); ++ } ++ d1 = dir1 + strlen(dir2); ++ while ((rv != VD_ERR) && (*d1 != '\0')) { ++ *d2++ = *d1++; ++ while ((*d1 != '/') && (*d1 != '\0')) ++ *d2++ = *d1++; ++ *d2 = '\0'; ++ rv = vd_Mkvdir(dir2); ++ } ++ ++MKVDIR_END: ++#if defined(SYSV) || defined(SVR4) || defined(__USE_XOPEN_EXTENDED) ++ sigrelse(SIGHUP); ++ sigrelse(SIGCHLD); ++#else ++ sigsetmask(mask); ++#endif ++ ++ return rv; ++} ++ ++static int vd_Mkvdir(dir) ++char *dir; ++{ ++ char dir1[MAXPATHLEN+1], dir2[MAXPATHLEN+1], tmp[MAXPATHLEN+1]; ++ int ftype, i; ++ struct stat st; ++ FILE *pfp; ++ ++ strcpy(dir1, dir); ++ Dirtovd(dir1); ++ strcpy(dir2, dir1); ++ ++ WaitCursor(); ++ ++ if ((ftype = vd_ftype(dir1)) < 0) { ++ SetCursors(-1); ++ return ftype; ++ } ++ if (ftype == RFT_COMPRESS) { ++ if (!(ftype = vd_compp(dir1, tmp))) { ++ SetCursors(-1); ++ return ftype; ++ } ++ strcpy(dir1, tmp); ++ } ++ ++ if (!stat(dir1, &st)) { ++ for(i = 0; i < vdcount; i++) ++ if (!strcmp(vdtable[i], dir2)) { ++ SetCursors(-1); ++ return 0; ++ } ++ ++ if (!S_ISDIR(st.st_mode)) { ++ char origdir[MAXPATHLEN+1], buf[MAXPATHLEN+10], buf1[100]; ++ ++ if (vdcount >= VD_VDTABLESIZE) { ++ ErrPopUp("Sorry, you can't make virtual directory any more.", ++ "\nBummer!"); ++ goto VD_MKVDIR_ERR; ++ } ++ ++ WaitCursor(); ++ ++ xv_getwd(origdir, MAXPATHLEN+1); ++ ++ sprintf(tmp, "%s%s", vdroot, dir2); ++ if (vd_recursive_mkdir(tmp) || chdir(tmp)) { ++ SetISTR(ISTR_INFO, "fail to make virtual directory."); ++ Warning(); ++ goto VD_MKVDIR_ERR; ++ } ++ sprintf(buf, ext_command[ftype], dir1); ++ ++ WaitCursor(); ++ ++ if((pfp = popen(buf, "r")) == NULL) { ++ SetISTR(ISTR_INFO, "fail to extract archive '%s'.", ++ BaseName(dir2)); ++ Warning(); ++ goto VD_MKVDIR_ERR; ++ } ++ while (1) { ++ if (fread(buf1, 1, sizeof(buf1), pfp) < sizeof(buf1)) ++ break; ++ WaitCursor(); ++ } ++ if (!feof(pfp)) { ++ SetISTR(ISTR_INFO, "Pipe was broken."); ++ Warning(); ++ pclose(pfp); ++ goto VD_MKVDIR_ERR; ++ } ++ pclose(pfp); ++ ++ if (strcmp(dir1, dir2)) ++ unlink(dir1); ++ ++ vd_addvdtable(dir2); ++ Dirtovd(origdir); ++ chdir(origdir); ++ SetCursors(-1); ++ return 0; ++ ++VD_MKVDIR_ERR: ++ if (strcmp(dir1, dir2)) ++ unlink(dir1); ++ SetCursors(-1); ++ return VD_ERR; ++ } ++ } ++ SetCursors(-1); ++ return VD_ERR; ++} ++ ++#ifdef VIRTUAL_TD ++void Mkvdir_force(dir) ++char *dir; ++{ ++ char tmp[MAXPATHLEN+1]; ++ ++ if (vdcount >= VD_VDTABLESIZE) { ++ ErrPopUp("Sorry, you can't make virtual directory any more.", ++ "\nBummer!"); ++ return; ++ } ++ ++ sprintf(tmp, "%s%s", vdroot, dir); ++ if (vd_recursive_mkdir(tmp)) { ++ SetISTR(ISTR_INFO, "Failed to make virtual directory."); ++ Warning(); ++ return; ++ } ++ ++ vd_addvdtable(dir); ++} ++#endif /* VIRTUAL_TD */ ++ ++/* ++ * These functions remove virtual directory, if exists. ++ * Rmvdir: ++ * front interface of vd_Rmvdir. ++ * vd_Rmvdir: ++ * remove virtual directory function. ++ */ ++int Rmvdir(dir) ++char *dir; ++{ ++ int rv; ++ char buf[MAXPATHLEN+1]; ++ ++ strcpy(buf, dir); ++ vd_optimize_path(buf); ++ ++ rv = vd_Rmvdir(buf); ++ vd_packvdtable(); ++ return rv; ++} ++ ++static int vd_Rmvdir(dir) ++char *dir; ++{ ++ int i; ++ char tmp[MAXPATHLEN+1]; ++ ++ for(i = 0; i < vdcount; i++) ++ if (!strncmp(dir, vdtable[i], strlen(dir))) { ++ sprintf(tmp, "%s%s", vdroot, vdtable[i]); ++ if (vd_Rmvdir(tmp)) ++ return 1; ++ if (vd_recursive_rmdir(tmp)) ++ return 1; ++ vdtable[i][0] = '\0'; ++ } ++ return 0; ++} ++ ++/* ++ * These functions move virtual directory, if exists. ++ * Movevdir: ++ * front interface of move virtual directory function. ++ * vd_Movevdir: ++ * does real work. ++ */ ++int Movevdir(src, dst) ++char *src, *dst; ++{ ++/* ++ char sbuf[MAXPATHLEN+1], dbuf[MAXPATHLEN+1]; ++ ++ strcpy(sbuf, src); ++ vd_optimize_path(sbuf); ++ ++ strcpy(dbuf, dst); ++ vd_optimize_path(dbuf); ++ ++ return (vd_Movevdir(sbuf, dbuf)); ++*/ ++ return (vd_Movevdir(src, dst)); ++} ++ ++static int vd_Movevdir(src, dst) ++char *src, *dst; ++{ ++ int i; ++ char *p, *pp; ++ char tmp[MAXPATHLEN+1], tmps[MAXPATHLEN+1], tmpd[MAXPATHLEN+1]; ++ ++ for (i = 0; i < vdcount; i++) ++ if (!strncmp(src, vdtable[i], strlen(src))) { ++ sprintf(tmps, "%s%s", vdroot, vdtable[i]); ++ sprintf(tmp, "%s%s", dst, vdtable[i]+strlen(src)); ++ sprintf(tmpd, "%s%s", vdroot, tmp); ++ ++ if (vd_Movevdir(tmps, tmpd)) ++ return 1; ++ ++ pp = vdtable[i]; ++ p = (char *) malloc(strlen(tmp)+1); ++ strcpy(p, tmp); ++ vdtable[i] = p; ++ ++ strcpy(tmp, tmpd); ++ for (p = tmp+strlen(tmp); *p != '/'; p--) ++ ; ++ *p = '\0'; ++ ++ if (vd_recursive_mkdir(tmp)) ++ goto VD_MOVEVDIR_ERR; ++ ++ if (rename(tmps, tmpd) < 0) ++ goto VD_MOVEVDIR_ERR; ++ ++ free(pp); ++ } ++ return 0; ++ ++VD_MOVEVDIR_ERR: ++ free(vdtable[i]); ++ vdtable[i] = pp; ++ return 1; ++} ++ ++/* ++ * These functions handle table of virtual directories. ++ * vd_addvdtable: ++ * adds virtual directory to table. ++ * vd_packvdtable: ++ * removes disused virtual directories from table. ++ */ ++static void vd_addvdtable(vd) ++char *vd; ++{ ++ char *p; ++ p = (char *) malloc(strlen(vd)+1); ++ strcpy(p, vd); ++ vdtable[vdcount] = p; ++ vdcount++; ++} ++ ++static void vd_packvdtable() ++{ ++ int i, j; ++ ++ for (i = j = 0; i < vdcount; i++) ++ if (vdtable[i][0] != '\0') ++ vdtable[j++] = vdtable[i]; ++ else ++ free(vdtable[i]); ++ ++ vdcount = j; ++} ++ ++/* ++ * These are utility functions. ++ * vd_recursive_mkdir: ++ * makes directories recursively. ++ * vd_recursive_rmdir ++ * removes directories recursively. ++ */ ++static int vd_recursive_mkdir(dir) ++char *dir; ++{ ++ char buf[MAXPATHLEN+1], *p; ++ struct stat st; ++ ++ strcpy(buf, dir); ++ ++ if (buf[strlen(buf) - 1] == '/') ++ buf[strlen(buf) - 1] = '\0'; ++ ++ p = rindex(buf, '/'); ++ *p = '\0'; ++ ++ if (stat(buf, &st) < 0) ++ if (vd_recursive_mkdir(buf) < 0) ++ return (-1); ++ ++ *p = '/'; ++ if (mkdir(buf, 0700) < 0) ++ return (-1); ++ ++ return (0); ++} ++ ++static int vd_recursive_rmdir(dir) ++char *dir; ++{ ++ char buf[MAXPATHLEN+1], buf2[MAXPATHLEN+1]; ++ DIR *dp; ++ struct dirent *di; ++ ++ strcpy(buf, dir); ++ ++ if (buf[strlen(buf) - 1] == '/') ++ buf[strlen(buf) - 1] = '\0'; ++ ++ if ((dp = opendir(buf)) == NULL) ++ return (-1); ++ ++ while ((di = readdir(dp)) != NULL) { ++ struct stat st; ++ ++ if (!strcmp(di->d_name, ".") || !strcmp(di->d_name, "..")) ++ continue; ++ ++ sprintf(buf2, "%s/%s", dir, di->d_name); ++ ++ stat(buf2, &st); ++ if (S_ISDIR(st.st_mode)) { ++ if (vd_recursive_rmdir(buf2) < 0) ++ goto VD_RECURSIVE_RMDIR_ERR; ++ } else ++ unlink(buf2); ++ } ++ if (rmdir(buf) < 0) ++ goto VD_RECURSIVE_RMDIR_ERR; ++ ++ closedir(dp); ++ return (0); ++ ++VD_RECURSIVE_RMDIR_ERR: ++ closedir(dp); ++ return (-1); ++} ++ ++/* ++ * These functions test specified path. ++ * Isarchive: ++ * tests whether it's an archive? ++ * Isvdir: ++ * tests whether it's in the virtual directory? ++ */ ++int Isarchive(path) ++char *path; ++{ ++ int ftype; ++ ++ if ((ftype = vd_ftype(path)) < 0) ++ return 0; ++ ++ if (ftype == RFT_COMPRESS) ++ if (!(ftype = vd_compp(path, NULL))) ++ return 0; ++ ++ return ftype; ++} ++ ++int Isvdir(path) ++char *path; ++{ ++ int rv = 0; ++ char tmp1[MAXPATHLEN+1], tmp2[MAXPATHLEN+1]; ++ int archive1, archive2; ++ ++ strcpy(tmp1, path); ++ strcpy(tmp2, path); ++ ++ vd_optimize_path(tmp1); ++ Dirtovd(tmp2); ++ ++ archive1 = Isarchive(tmp1); ++ archive2 = Isarchive(tmp2); ++ ++ if (strcmp(tmp1, tmp2)) { ++ char tmp3[MAXPATHLEN+1], tmp4[MAXPATHLEN+1]; ++ int archive3, archive4; ++ ++ sprintf(tmp3, "%s%s", vdroot, tmp1); ++ strcpy(tmp4, tmp2+strlen(vdroot)); ++ ++ archive3 = Isarchive(tmp3); ++ archive4 = Isarchive(tmp4); ++ ++ if (archive4 && !strcmp(tmp1, tmp4)) { ++ rv |= 06; ++ return rv; ++ } ++ rv |= 01; ++ if (archive2) ++ rv |= 02; ++ else if (archive4) ++ rv |= 06; ++ return rv; ++ } ++ if (archive1) ++ rv |= 02; ++ ++ return rv; ++} ++ ++/* ++ * This function optimizes given path. ++ * Expand '~' to home directory and removes '.', and treat '..'. ++ */ ++static void vd_optimize_path(path) ++char *path; ++{ ++ char *tmp, *reserve; ++ ++ if (!strcmp(path, STDINSTR)) ++ return; ++ ++ if (*path == '\0') { ++ xv_getwd(path, MAXPATHLEN+1); ++ return; ++ } ++ if (*path == '~') ++ Globify(path); ++ if (*path != '/') { ++ char tmp[MAXPATHLEN+1]; ++ ++ strcpy(tmp, path); ++ xv_getwd(path, MAXPATHLEN+1); ++ strcat(path, "/"); ++ strcat(path, tmp); ++ } ++ ++ reserve = tmp = path; ++ while(*path != '\0') { ++ if (*path == '/') { ++ *tmp++ = *path; ++ while (*++path == '/') ++ ; ++ continue; ++ } ++ if ((*path == '.') && (*(path-1) == '/')) { ++ if (*(path+1) == '/') { ++ tmp--; ++ path++; ++ continue; ++ } else if (*(path+1) == '\0') { ++ tmp--; ++ break; ++ } else if (*(path+1) == '.') { ++ if (*(path+2) == '/') { ++ if ((tmp - reserve) > 1) ++ for (tmp-=2; (*tmp != '/'); tmp--) ++ ; ++ else ++ tmp = reserve; ++ path+=2; ++ continue; ++ } else if (*(path+2) == '\0') { ++ if ((tmp - reserve) > 1) ++ for (tmp-=2; (*tmp != '/'); tmp--) ++ ; ++ else ++ tmp = reserve+1; ++ break; ++ } ++ } ++ } ++ *tmp++ = *path++; ++ } ++ if (((tmp - reserve) > 1) && *(tmp-1) == '/') ++ tmp--; ++ if (tmp == reserve) ++ *tmp++ = '/'; ++ ++ *tmp = '\0'; ++} ++ ++/* ++ * These functions detect file type. ++ */ ++static int vd_ftype(fname) ++char *fname; ++{ ++ /* check archive type */ ++ ++ FILE *fp; ++ byte magicno[30]; /* first 30 bytes of file */ ++ int rv, n; ++ struct stat st; ++ ++ if (!fname) return VD_ERR; /* shouldn't happen */ ++ ++ if ((!stat(fname, &st)) && (st.st_mode & S_IFMT) == S_IFDIR) ++ return VD_UKN; ++ fp = xv_fopen(fname, "r"); ++ if (!fp) return VD_ERR; ++ ++ n = fread(magicno, (size_t) 1, (size_t) 30, fp); ++ fclose(fp); ++ ++ if (n<30) return VD_UKN; /* files less than 30 bytes long... */ ++ ++ rv = VD_UKN; ++ ++ if (magicno[0] == 0x60 && magicno[1]==0xea) rv = VD_ARJ; ++ ++ else if (magicno[2] == '-' && magicno[3] == 'l' && ++ magicno[4] == 'h') rv = VD_LZH; ++ ++ else if (strncmp((char *) magicno,"PK", (size_t) 2)==0) rv = VD_ZIP; ++ ++ else if (magicno[20]==0xdc && magicno[21]==0xa7 && ++ magicno[22]==0xc4 && magicno[23]==0xfd) rv = VD_ZOO; ++ ++ else if (vd_tarc(fname)) rv = VD_TAR; ++ ++ else if (magicno[0]==0x1f && magicno[1]==0x9d) rv = RFT_COMPRESS; ++ ++ else if (!strncmp((char *) &magicno[11], "MAJYO", (size_t) 5)) ++ rv = VD_UKN; /* XXX */ ++ ++ else if (magicno[0] == 26) rv = VD_ARC; ++ ++#ifdef GUNZIP ++ else if (magicno[0]==0x1f && magicno[1]==0x8b) rv = RFT_COMPRESS;/* gzip */ ++ else if (magicno[0]==0x1f && magicno[1]==0x9e) rv = RFT_COMPRESS;/* old */ ++ else if (magicno[0]==0x1f && magicno[1]==0x1e) rv = RFT_COMPRESS;/* pack */ ++#endif ++ ++ return rv; ++} ++ ++static int vd_compp(path, newpath) ++char *path, *newpath; ++{ ++ /* ++ * uncompress and check archive type. ++ * ++ * If newpath is NULL, uncompress only 512 byte of 'path' and ++ * check archive type, so it is for SPEED-UP strategy. ++ * In this case, caller this function does not have to unlink ++ * tempoary file. ++ * Unfortunately it does not work in VMS system. ++ */ ++ ++ int file_type, r; ++ char uncompname[128], basename[128]; ++ int comptype; ++ ++ if (newpath) *newpath = '\0'; ++ strncpy(basename, path, 127); ++ comptype = ReadFileType(path); ++#if (defined(VMS) && !defined(GUNZIP)) ++ /* VMS decompress doesn't like the file to have a trailing .Z in fname ++ however, GUnZip is OK with it, which we are calling UnCompress */ ++ *rindex (basename, '.') = '\0'; ++#endif ++#ifdef VMS ++ if (UncompressFile(basename, uncompname)) { ++#else ++ if (newpath == NULL) ++ r = vd_UncompressFile(basename, uncompname); ++ else ++ r = UncompressFile(basename, uncompname, comptype); ++ if (r) { ++#endif ++ if ((file_type = vd_ftype(uncompname)) < 0) { ++ unlink(uncompname); ++ return 0; ++ } ++ if (newpath) strcpy(newpath, uncompname); ++ else unlink(uncompname); ++ } else { ++ return 0; ++ } ++ return file_type; ++} ++ ++#define HEADERSIZE 512 ++ ++static void vd_Dirtovd PARM((char *)); ++static int stderr_on PARM((void)); ++static int stderr_off PARM((void)); ++static FILE *popen_nul PARM((char *, char *)); ++ ++static int vd_UncompressFile(name, uncompname) ++char *name, *uncompname; ++{ ++ /* Yap, I`m nearly same as original `UncompnameFile' function, but, ++ 1) I extract `name' file ONLY first 512 byte. ++ 2) I'm called only from UNIX and UNIX like OS, *NOT* VMS */ ++ /* returns '1' on success, with name of uncompressed file in uncompname ++ returns '0' on failure */ ++ ++ char namez[128], *fname, buf[512], tmp[HEADERSIZE]; ++ int n, tmpfd; ++ FILE *pfp, *tfp; ++ ++ fname = name; ++ namez[0] = '\0'; ++ ++ ++#ifndef GUNZIP ++ /* see if compressed file name ends with '.Z'. If it *doesn't*, we need ++ to temporarily rename it so it *does*, uncompress it, and rename it ++ *back* to what it was. necessary because uncompress doesn't handle ++ files that don't end with '.Z' */ ++ ++ if (strlen(name) >= (size_t) 2 && ++ strcmp(name + strlen(name)-2,".Z")!=0 && ++ strcmp(name + strlen(name)-2,".z")!=0) { ++ strcpy(namez, name); ++ strcat(namez,".Z"); ++ ++ if (rename(name, namez) < 0) { ++ sprintf(buf, "Error renaming '%s' to '%s': %s", ++ name, namez, ERRSTR(errno)); ++ ErrPopUp(buf, "\nBummer!"); ++ return 0; ++ } ++ ++ fname = namez; ++ } ++#endif /* not GUNZIP */ ++ ++ sprintf(uncompname, "%s/xvuXXXXXX", tmpdir); ++#ifdef USE_MKSTEMP ++ tmpfd = mkstemp(uncompname); ++#else ++ mktemp(uncompname); ++#endif ++ ++ sprintf(buf,"%s -c %s", UNCOMPRESS, fname); ++ SetISTR(ISTR_INFO, "Uncompressing Header '%s'...", BaseName(fname)); ++ if ((pfp = popen_nul(buf, "r")) == NULL) { ++ SetISTR(ISTR_INFO, "Cannot extract for archive '%s'.", ++ BaseName(fname)); ++ Warning(); ++#ifdef USE_MKSTEMP ++ if (tmpfd >= 0) ++ close(tmpfd); ++#endif ++ return 0; ++ } ++#ifdef USE_MKSTEMP ++ if (tmpfd < 0) ++#else ++ if ((tmpfd = open(uncompname,O_WRONLY|O_CREAT|O_EXCL,S_IRWUSR)) < 0) ++#endif ++ { ++ SetISTR(ISTR_INFO, "Unable to create temporary file.", ++ BaseName(uncompname)); ++ Warning(); ++ pclose(pfp); ++ } ++ if ((tfp = fdopen(tmpfd, "w")) == NULL) { ++ SetISTR(ISTR_INFO, "Unable to create temporary file.", ++ BaseName(uncompname)); ++ Warning(); ++ close(tmpfd); ++ pclose(pfp); ++ return 0; ++ } ++ if ((n = fread(tmp, 1, sizeof(tmp), pfp)) != HEADERSIZE) { ++ SetISTR(ISTR_INFO, "Unable to read '%s'.", ++ BaseName(fname)); ++ Warning(); ++ pclose(pfp); ++ fflush(tfp); ++ fclose(tfp); ++ close(tmpfd); ++ return 0; ++ } ++ fwrite(tmp, 1, n, tfp); ++ fflush(tfp); ++ fclose(tfp); ++ close(tmpfd); ++ pclose(pfp); ++ ++ /* if we renamed the file to end with a .Z for the sake of 'uncompress', ++ rename it back to what it once was... */ ++ ++ if (strlen(namez)) { ++ if (rename(namez, name) < 0) { ++ sprintf(buf, "Error renaming '%s' to '%s': %s", ++ namez, name, ERRSTR(errno)); ++ ErrPopUp(buf, "\nBummer!"); ++ } ++ } ++ ++ return 1; ++} ++ ++#define TARBLOCK 512 ++#define CKSTART 148 /* XXX */ ++#define CKSIZE 8 ++ ++/* ++ * Tar file: 1, other: 0 ++ */ ++static int vd_tarc(fname) ++char *fname; ++{ ++ FILE *fp; ++ unsigned int sum; ++ char *ckp, buf[TARBLOCK]; ++ ++ if ((fp = fopen(fname, "r")) == NULL) ++ return 0; ++ ++ fread(buf, TARBLOCK, 1, fp); ++ fclose(fp); ++ ++ for (sum = 0, ckp = buf + CKSTART; ++ (ckp < buf + CKSTART + CKSIZE) && *ckp != '\0'; ++ ckp++) { ++ sum *= 8; ++ if (*ckp == ' ') ++ continue; ++ if (*ckp < '0' || '7' < *ckp) ++ return 0; ++ sum += *ckp - '0'; ++ } ++ if (sum != vd_tar_sumchk(buf)) ++ return 0; ++ ++ return 1; ++} ++ ++static unsigned int vd_tar_sumchk(buf) ++char *buf; ++{ ++ int i; ++ unsigned int sum = 0; ++ ++ for (i = 0; i < CKSTART; i++) { ++ sum += *(buf + i); ++ } ++ sum += ' ' * 8; ++ for (i += 8; i < TARBLOCK; i++) { ++ sum += *(buf + i); ++ } ++ return sum; ++} ++ ++ ++static int stde = -1; /* fd of stderr */ ++static int nul = -1; /* fd of /dev/null */ ++ ++/* ++ * switch off the output to stderr(bypass to /dev/null). ++ */ ++static int stderr_off() ++{ ++ if (nul < 0) ++ nul = open("/dev/null", O_RDONLY); ++ if (nul < 0) { ++ fprintf(stderr, "/dev/null open failure\n"); ++ return -1; ++ } ++ if (stde < 0) ++ stde = dup(2); ++ if (stde < 0) { ++ fprintf(stderr, "duplicate stderr failure\n"); ++ return -1; ++ } ++ close(2); ++ dup(nul); ++ return 0; ++} ++ ++/* ++ * turn on stderr output. ++ */ ++static int stderr_on() ++{ ++ if ((stde < 0) || (nul < 0)) { ++ fprintf(stderr, "stderr_on should call after stderr_off\n"); ++ return -1; ++ } ++ close(2); ++ dup(stde); ++ return 0; ++} ++ ++/* ++ * popen with no output to stderr. ++ */ ++static FILE *popen_nul(prog, mode) ++char *prog, *mode; ++{ ++ FILE *fp; ++ ++ stderr_off(); ++ fp = popen(prog, mode); ++ stderr_on(); ++ return fp; ++} ++ ++/* ++ * These functions are for SIGNAL. ++ * If XV end by C-c, there are dust of directory which name is .xvvd???, ++ * made by xvvd. Then, I handle SIGINT, and add good finish. ++ */ ++void vd_HUPhandler() ++{ ++#if defined(SYSV) || defined(SVR4) || defined(__USE_XOPEN_EXTENDED) ++ sighold(SIGHUP); ++#else ++ int mask; ++ mask = sigblock(sigmask(SIGHUP)); ++#endif ++ ++ Vdsettle(); ++ ++#if defined(SYSV) || defined(SVR4) || defined(__USE_XOPEN_EXTENDED) ++ sigrelse(SIGHUP); ++ signal(SIGHUP, (void (*)PARM((int))) vd_HUPhandler); ++#else ++ sigsetmask(mask); ++#endif ++} ++ ++void vd_handler(sig) ++int sig; ++{ ++#if defined(SYSV) || defined(SVR4) || defined(__USE_XOPEN_EXTENDED) ++ sighold(sig); ++#else ++ sigblock(sigmask(sig)); ++#endif ++ ++ Quit(1); /*exit(1);*/ ++} ++ ++int vd_Xhandler(disp,event) ++Display *disp; ++XErrorEvent *event; ++{ ++ Quit(1); /*exit(1);*/ ++ return (1); /* Not reached */ ++} ++ ++int vd_XIOhandler(disp) ++Display *disp; ++{ ++ fprintf(stderr, "XIO fatal IO error ? (?) on X server\n"); ++ fprintf(stderr, "You must exit normally in xv usage.\n"); ++ Quit(1); /*exit(1);*/ ++ return (1); /* Not reached */ ++} ++ ++void vd_handler_setup() ++{ ++ signal(SIGHUP, (void (*)PARM((int))) vd_HUPhandler); ++ signal(SIGINT, (void (*)PARM((int))) vd_handler); ++ signal(SIGTERM,(void (*)PARM((int))) vd_handler); ++ ++ (void)XSetErrorHandler(vd_Xhandler); ++ (void)XSetIOErrorHandler(vd_XIOhandler); ++} ++#endif /* AUTO_EXPAND */ +diff -ruN xv-3.10a-bugfixes/xvwbmp.c xv-3.10a-enhancements/xvwbmp.c +--- xv-3.10a-bugfixes/xvwbmp.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvwbmp.c 2005-04-03 14:02:18.000000000 -0700 +@@ -0,0 +1,323 @@ ++/* ++ * xvwbmp.c - i/o routings for WBMP files ++ * defined by OMA (http://www.openmobilealliance.com) ++ * as a standard for images for micro devices. ++ * ++ * exports : ++ * ++ * LoadWBMP(fname, numcols); ++ * WriteWBMP(fp, pic, ptype, w, h, r, g, b, numcols, style); ++ * ++ * author: Pawel S. Veselov ++ * http://manticore.2y.net/ ++ * ++ */ ++ ++#include "xv.h" ++ ++typedef short int16; ++typedef unsigned char uint8; ++typedef unsigned short uint16; /* sizeof (uint16) must == 2 */ ++#if defined(__alpha) || _MIPS_SZLONG == 64 ++typedef int int32; ++typedef unsigned int uint32; /* sizeof (uint32) must == 4 */ ++#else ++typedef long int32; ++typedef unsigned long uint32; /* sizeof (uint32) must == 4 */ ++#endif ++ ++#define MUST(a) if (!(a)) {\ ++ return fail(st_fname, st_err);\ ++ close(fd); \ ++ } ++#define READU8(fd,u) if ((read(fd, &u, 1)<1)) {\ ++ myfree(); \ ++ close(fd); \ ++ return fail(st_fname, err_ueof); } ++#define SREADU8(fd, u) if ((read(fd, &u, 1,)<1)) {\ ++ { st_err = err_ueof; return 0; } ++ ++#define SREADC(fd, str, l) { \ ++ str = (char*)mymalloc(l); \ ++ if (!str) { \ ++ myfree(); \ ++ FatalError("LoadWBMP: can't malloc extension buffer"); \ ++ } \ ++ if (read(fd, str, l)r[0] = 0; ++ pinfo->g[0] = 0; ++ pinfo->b[0] = 0; ++ pinfo->r[1] = 255; ++ pinfo->g[1] = 255; ++ pinfo->b[1] = 255; ++ ++ pinfo->pic = render1(raw, raw_size, npixels); ++ pinfo->type = PIC8; ++ ++ pinfo->w = pinfo->normw = width; ++ pinfo->h = pinfo->normh = height; ++ pinfo->frmType = F_BWDITHER; ++ ++ sprintf(pinfo->fullInfo, "WBMP, 1 bit per pixel, %d bytes", raw_size); ++ sprintf(pinfo->shrtInfo, "%dx%d WBMP (WAP/OMA).", width, height); ++ pinfo->comment = (char*)NULL; ++ ++ close(fd); ++ ++ myfree(); ++ return 1; ++} ++ ++int WriteWBMP(FILE * fp, byte * pic, int ptype, int w, int h, ++ byte * rmap, byte *gmap, byte *bmap, ++ int numcols, int colorstyle) ++{ ++ int count = 0; ++ uint8 bit = 0; ++ int i; ++ ++ write_mb(0, fp); /* type : always 0 */ ++ putc(0, fp); /* fixed header : always 0 for type 0 */ ++ write_mb((uint32)w, fp); ++ write_mb((uint32)h, fp); ++ ++ /* ready to write data */ ++ ++ for (i=0; i> (no*7)) & 0x7f); ++ putc(value, f); ++ } while ((no--)>0); ++ ++} ++ ++int read_mb(int * dst, int fd) ++{ ++ int ac = 0; ++ int ct = 0; ++ ++ while (1) { ++ uint8 bt; ++ if ((ct++)==6) { ++ st_err = err_inmb; ++ return 0; ++ } ++ ++ if ((read(fd, &bt, 1)) < 1) { ++ st_err = err_ueof; ++ return 0; ++ } ++ ac = (ac << 7) | (bt & 0x7f); /* accumulates up to 42 bits?? FIXME */ ++ if (!(bt & 0x80)) ++ break; ++ } ++ *dst = ac; ++ return 1; ++} ++ ++int read_ext(int fd, uint8 fixed) ++{ ++ if (!(fixed&0x7f)) { /* no extensions */ ++ return 1; ++ } ++ ++ /* ++ * The only described type is WBMP 0, that must not ++ * have extensions. ++ */ ++ ++ st_err = err_extf; ++ return 0; ++ ++ /* ++ ++ fixed = (fixed >> 5)&0x3; ++ ++ switch (fixed) { ++ case 0: ++ while (true) { ++ SREADU8(fd, fixed); ++ if (!(fixed & 0x7f)) { break; } ++ } ++ break; ++ case 0x3: ++ { ++ char * par; ++ char * val; ++ SREADU8(fd, fixed); ++ SREADC(fd, par, (fixed>>4)&0x6); ++ SREADC(fd, val, fixed&0xf); ++ } ++ break; ++ } ++ */ ++} ++ ++void * mymalloc(int l) ++{ ++ mymem = (void**)realloc(mymem, mymems+1); ++ if (!mymem) ++ FatalError("LoadWBMP: can't realloc buffer"); ++ return (mymem[mymems++] = malloc(l)); ++} ++ ++void myfree() ++{ ++ int i; ++ ++ if (mymem) { ++ for (i=0; i>7)&1; ++ ++ if ((++cnt)==8) { ++ cb = *(++data); ++ cnt = 0; ++ } else { ++ cb <<=1; ++ } ++ } ++ return pic; ++} +diff -ruN xv-3.10a-bugfixes/xvxpm.c xv-3.10a-enhancements/xvxpm.c +--- xv-3.10a-bugfixes/xvxpm.c 2005-03-28 22:22:50.000000000 -0800 ++++ xv-3.10a-enhancements/xvxpm.c 2005-04-17 14:45:28.000000000 -0700 +@@ -175,7 +175,15 @@ + + do { + char key[3]; +- char color[40]; /* Need to figure a good size for this... */ ++ char color[80]; /* Need to figure a good size for this... */ ++ ++/* ++ * Problem with spaces in color names ++ * ++ * X s Color Name m Other Name c Last Name ++ * ++ * ... this parser doesn't find `Any Name' ++ */ + + for (j=0; j<2 && (c != ' ') && (c != '\t') && (c != EOF); j++) { + key[j] = c; +@@ -187,7 +195,7 @@ + if (c == EOF) /* The failure condition of getc() */ + return (XpmLoadError(bname, "Error parsing colormap line")); + +- for (j=0; j<39 && (c!=' ') && (c!='\t') && (c!='"') && c!=EOF; j++) { ++ for (j=0; j<79 && (c!=' ') && (c!='\t') && (c!='"') && c!=EOF; j++) { + color[j] = c; + c = XpmGetc(fp); + } +@@ -248,7 +256,7 @@ + else { /* 'None' or unrecognized color spec */ + int rgb; + +- if (strcmp(color, "None") == 0) rgb = 0xb2c0dc; /* infobg */ ++ if (strcasecmp(color, "None") == 0) rgb = 0xb2c0dc; /* infobg */ + else { + SetISTR(ISTR_INFO, "%s: unknown color spec '%s'", bname, color); + Timer(1000); +@@ -321,7 +329,8 @@ + *i_sptr++ = mapentry->cv_rgb[2]; + } + } /* for ( j < w ) */ +- (void)XpmGetc(fp); /* Throw away the close " */ ++ while (((c = XpmGetc(fp))!=EOF) && /* Throw away the close " and */ ++ (c != '"')); /* erase all remaining pixels */ + + if (!(i%7)) WaitCursor(); + } /* for ( i < h ) */ +diff -ruN xv-3.10a-bugfixes/xvzx.c xv-3.10a-enhancements/xvzx.c +--- xv-3.10a-bugfixes/xvzx.c 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-enhancements/xvzx.c 2004-05-16 18:08:33.000000000 -0700 +@@ -0,0 +1,349 @@ ++/* ++ * xvzx.c - load routine for Spectrum screen$ ++ * ++ * John Elliott, 7 August 1998 ++ * ++ * LoadZX(fname, pinfo) - load file ++ * WriteZX(fp,pic,ptype,w,h,r,g,b,numcols,style,cmt,comment) - convert to ++ * 256x192 SCREEN$ and save. ++ */ ++ ++#include "copyright.h" ++ ++#include "xv.h" ++ ++ ++ ++/* ++ * comments on error handling: ++ * a file with a bad header checksum is a warning error. ++ * ++ * not being able to malloc is a Fatal Error. The program is aborted. ++ */ ++ ++ ++#define TRUNCSTR "File appears to be truncated." ++ ++static int zxError PARM((char *, char *)); ++ ++static char *bname; ++ ++/*******************************************/ ++int LoadZX(fname, pinfo) ++ char *fname; ++ PICINFO *pinfo; ++/*******************************************/ ++{ ++ /* returns '1' on success */ ++ ++ FILE *fp; ++ unsigned int c, c1; ++ int x,y, trunc; ++ byte *zxfile; ++ ++ bname = BaseName(fname); ++ ++ pinfo->pic = (byte *) NULL; ++ pinfo->comment = (char *) NULL; ++ ++ /* Allocate memory for a 256x192x8bit image */ ++ ++ pinfo->pic = (byte *)malloc(256*192); ++ if (!pinfo->pic) FatalError("malloc failure in xvzx.c LoadZX"); ++ ++ /* Allocate 1B80h bytes and slurp the whole file into memory */ ++ ++ zxfile = (byte *)malloc(7040); ++ if (!zxfile) FatalError("malloc failure in xvzx.c LoadZX"); ++ ++ /* open the file */ ++ fp = xv_fopen(fname,"r"); ++ if (!fp) return (zxError(bname, "can't open file")); ++ ++ /* Load it in en bloc */ ++ memset(zxfile, 0, 7040); ++ if (fread(zxfile, 1, 7040, fp) < 7040) trunc = 1; ++ ++ /* Transform to 8-bit */ ++ ++ for (y = 0; y < 192; y++) for (x = 0; x < 256; x++) ++ { ++ /* Spectrum screen layout: three 2k segments at y=0, y=64, y=128 */ ++ /* In each segment: Scan lines 0,8,16,...,56,1,9,...,57 etc. Each ++ scanline is 32 bytes, so line 1 is 256 bytes after line 0 ++ ++ So address of line start is ((y>>6) * 2048) + ((y & 7) * 256) ++ + ((y & 0x38) * 4) ++ ++ The colour byte for a cell is at screen + 6k + (y >> 3)*32 + (x>>3) ++ ++ */ ++ ++ int offset; ++ byte *dst = pinfo->pic + 256*y + x; ++ byte attr, pt, mask; ++ ++ offset = (y >> 6) * 2048; ++ offset += (y & 7) * 256; ++ offset += (y & 0x38) * 4; ++ offset += (x >> 3); ++ ++ pt = zxfile[offset + 128]; /* Ink/paper map */ ++ ++ offset = 0x1880; ++ offset += (y >> 3) * 32; ++ offset += (x >> 3); ++ ++ attr = zxfile[offset]; /* Colours for cell */ ++ ++ mask = 0x80; ++ ++ if (x & 7) mask >>= (x & 7); ++ ++ if (pt & mask) *dst = attr & 7; /* Ink */ ++ else *dst = (attr >> 3) & 7; /* Paper */ ++ ++ if (attr & 0x40) *dst |= 8; /* High intensity */ ++ } ++ ++ /* Picture bytes converted; now build the colour maps */ ++ ++ pinfo->normw = pinfo->w = 256; ++ pinfo->normh = pinfo->h = 192; ++ pinfo->type = PIC8; ++ ++ for (c = 0; c < 16; c++) ++ { ++ if (c < 8) c1 = 192; else c1 = 255; /* low-intensity colours use 192 */ ++ /* high-intensity colours use 255 */ ++ pinfo->b[c] = (c & 1 ? c1 : 0); ++ pinfo->r[c] = (c & 2 ? c1 : 0); ++ pinfo->g[c] = (c & 4 ? c1 : 0); ++ } ++ ++ pinfo->colType = F_FULLCOLOR; ++ pinfo->frmType = F_ZX; /* Save as SCREEN$ */ ++ sprintf(pinfo->fullInfo, "Spectrum SCREEN$, load address %04x", ++ zxfile[16]+256*zxfile[17]); ++ strcpy(pinfo->shrtInfo, "Spectrum SCREEN$."); ++ ++ /* Almost as an afterthought, check that the +3DOS header is valid. ++ ++ If it isn't, then odds are that the file isn't a graphic. But it ++ had the right magic number, so it might be. Let them see it anyway. ++ ++ The check is: Byte 127 of the header should be the 8-bit sum of bytes ++ 0-126 of the header. The header should also have the ++ +3DOS magic number, but we know it does or we wouldn't ++ have got this far. ++ */ ++ ++ c1 = 0; ++ for (c1 = c = 0; c < 127; c++) c1 = ((c1 + zxfile[c]) & 0xFF); ++ if (c1 != zxfile[127]) zxError(bname, "Bad header checksum."); ++ ++ fclose(fp); ++ free(zxfile); ++ return 1; ++} ++ ++ ++ ++ ++ ++/*******************************************/ ++static int zxError(fname, st) ++ char *fname, *st; ++{ ++ SetISTR(ISTR_WARNING,"%s: %s", fname, st); ++ return 0; ++} ++ ++ ++/* Spectrum screen file header. The first 18 bytes are used in the magic ++ number test */ ++ ++byte ZXheader[128] = ++{ ++ 'P', 'L', 'U', 'S', '3', 'D', 'O', 'S', 26, /* Spectrum +3DOS file */ ++ 1, 0, /* Header type 1.0 */ ++ 128, 27, 0, 0, /* 7040 bytes */ ++ 3, /* Binary format */ ++ 0, 27, /* 6912 data bytes */ ++ 0, 64 /* load address 0x4000 */ ++}; ++ ++ ++ ++/* Get the Spectrum colour/bright byte (0-15) from a pixel */ ++ ++static int PointZX(pic, w, h, rmap, gmap, bmap, x, y) ++ byte *pic; ++ int w,h; ++ byte *rmap, *gmap, *bmap; ++ int x,y; ++{ ++ int index, r, g, b, zxc; ++ ++ /* If the picture is smaller than the screen, pad out the edges ++ with "bright black" - a colour not otherwise returned */ ++ ++ if (x >= w || y >= h) return 8; ++ ++ /* Get colour index */ ++ ++ index = pic[y*w + x]; ++ ++ /* Convert to rgb */ ++ ++ r = rmap[index]; ++ g = gmap[index]; ++ b = bmap[index]; ++ zxc = 0; ++ ++ /* Work out Spectrum colour by a simplistic "nearest colour" method */ ++ ++ if (b >= 160) zxc |= 1; /* Blue */ ++ if (r >= 160) zxc |= 2; /* Red */ ++ if (g >= 160) zxc |= 4; /* Green */ ++ if (r > 208 || g >= 208 || b >= 208) zxc |= 8; /* High intensity */ ++ ++ return zxc; ++} ++ ++ ++/* Work out what colours should be used in a cell */ ++ ++static void CellZX(pic, w, h, rmap, gmap, bmap, cx, cy, zxfile) ++ byte *pic; ++ int w,h; ++ byte *rmap, *gmap, *bmap; ++ int cx,cy; ++ byte *zxfile; ++{ ++ byte counts[16]; /* Count of no. of colours */ ++ int offset, ink, paper, n, m, x, y, x0, y0, di, dp; ++ ++ x0 = cx * 8; /* Convert from cell to pixel coords */ ++ y0 = cy * 8; ++ ++ for (n = 0; n < 16; n++) counts[n] = 0; /* Reset all counts */ ++ ++ /* Count no. of pixels of various colours */ ++ ++ for (y = y0; y < y0+8; y++) for (x = x0; x < x0+8; x++) ++ { ++ m = PointZX(pic, w, h, rmap, gmap, bmap, x, y); ++ ++ counts[m]++; ++ } ++ counts[8] = 0; /* Discard Bright Black (pixels not in the picture area) ++ */ ++ ++ /* Assign the most popular colour as ink */ ++ for (n = m = ink = 0; n < 16; n++) if (counts[n] > m) ++ { ++ ink = n; ++ m = counts[n]; ++ } ++ counts[ink] = 0; ++ ++ /* Assign the next most popular colour as paper */ ++ for (n = m = paper = 0; n < 16; n++) if (counts[n] > m) ++ { ++ paper = n; ++ m = counts[n]; ++ } ++ /* We have ink and paper. Set cell's attributes */ ++ ++ offset = cy*32 + cx + 0x1880; ++ ++ /* Set the high-intensity bit if ink is high-intensity */ ++ if (ink & 8) zxfile[offset] = 0x40; else zxfile[offset] = 0; ++ zxfile[offset] |= ((paper & 7) << 3); ++ zxfile[offset] |= (ink & 7); ++ ++ /* Plot the points */ ++ for (y = y0; y < y0+8; y++) ++ { ++ byte mask = 0x80; ++ ++ offset = (y >> 6) * 2048; ++ offset += (y & 7) * 256; ++ offset += (y & 0x38) * 4; ++ offset += (x0 >> 3); ++ ++ for (x = x0; x < x0+8; x++) ++ { ++ /* Work out whether the point should be plotted as ink or ++ paper */ ++ m = PointZX(pic, w, h, rmap, gmap, bmap, x, y); ++ ++ di = (ink & 7) - (m & 7); /* "Difference" from ink */ ++ dp = (paper & 7) - (m & 7); /* "Difference" from paper */ ++ ++ if (di < 0) di = -di; ++ if (dp < 0) dp = -dp; ++ ++ if (di < dp) /* Point is more like ink */ ++ zxfile[offset+128] |= mask; ++ ++ mask = (mask >> 1); ++ } ++ } ++ ++} ++ ++ ++ ++/*******************************************/ ++int WriteZX(fp,pic,ptype,w,h,rmap,gmap,bmap,numcols,colorstyle,comment) ++ FILE *fp; ++ byte *pic; ++ int ptype, w,h; ++ byte *rmap, *gmap, *bmap; ++ int numcols, colorstyle; ++ char *comment; ++{ ++ int rv, x, y; ++ byte *zxfile; ++ byte *pic8; ++ byte rtemp[256],gtemp[256],btemp[256]; ++ ++ /* To simplify matters, reduce 24-bit to 8-bit. Since the Spectrum ++ screen is 3.5-bit anyway, it doesn't make much difference */ ++ ++ if (ptype == PIC24) ++ { ++ pic8 = Conv24to8(pic, w, h, 256, rtemp,gtemp,btemp); ++ if (!pic8) FatalError("Unable to malloc in WriteZX()"); ++ rmap = rtemp; gmap = gtemp; bmap = btemp; numcols=256; ++ } ++ else pic8 = pic; ++ ++ ZXheader[127] = 0x71; /* The correct checksum. */ ++ ++ /* Create a memory image of the SCREEN$ */ ++ ++ zxfile = (byte *)malloc(7040); ++ if (!zxfile) FatalError("malloc failure in xvzx.c WriteZX"); ++ ++ memset(zxfile, 0, 7040); /* Reset all points to black */ ++ memcpy(zxfile, ZXheader, 128); /* Create +3DOS header */ ++ ++ /* Convert the image, character cell by character cell */ ++ for (y = 0; y < 24; y++) for (x = 0; x < 32; x++) ++ { ++ CellZX(pic8, w, h, rmap, gmap, bmap, x, y, zxfile); ++ } ++ rv = 0; ++ if (fwrite(zxfile, 1, 7040, fp) < 7040) rv = -1; ++ ++ if (ptype == PIC24) free(pic8); ++ free(zxfile); ++ ++ if (ferror(fp)) rv = -1; ++ ++ return rv; ++} ++ diff --git a/source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt b/source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt new file mode 100644 index 000000000..cc4e72d39 --- /dev/null +++ b/source/xap/xv/xv-3.10a-jumbo-fix-patch-20050410.txt @@ -0,0 +1,28743 @@ +diff : xv-3.10a-jumbo-fix-patch-20050410.txt + +This is a unified diff. It should be applied (using Larry Wall's "patch" +program) to the stock XV 3.10a sources. If desired, the jumbo-enhancements +patch may be applied afterward. + +diffs below: + Makefile + Makefile.std + README.jumbo + bggen.c + bits/icon + cleandir + config.h + copyright.h + tiff/Makefile + tiff/Makefile.std + tiff/RANLIB.sh + vdcomp.c + xcmap.c + xv.c + xv.h + xv24to8.c + xvalg.c + xvbmp.c + xvbrowse.c + xvbutt.c + xvcolor.c + xvctrl.c + xvcut.c + xvdflt.c + xvdial.c + xvdir.c + xvevent.c + xvfits.c + xvgam.c + xvgif.c + xvgifwr.c + xvgrab.c + xvgraf.c + xviff.c + xvimage.c + xvinfo.c + xviris.c + xvjpeg.c + xvmisc.c + xvpbm.c + xvpcx.c + xvpds.c + xvpictoppm.c + xvpm.c + xvpopup.c + xvps.c + xvrle.c + xvroot.c + xvscrl.c + xvsmooth.c + xvsunras.c + xvtarga.c + xvtext.c + xvtiff.c + xvtiffwr.c + xvxbm.c + xvxpm.c + xvxwd.c + + +diff -ruN xv-3.10a/Makefile xv-3.10a-bugfixes/Makefile +--- xv-3.10a/Makefile 1995-01-23 12:20:54.000000000 -0800 ++++ xv-3.10a-bugfixes/Makefile 2005-04-06 08:17:13.000000000 -0700 +@@ -2,7 +2,11 @@ + + # your C compiler (and options) of choice + CC = cc +-# CC = gcc -ansi ++#CC = gcc -ansi ++# note that -ansi kills __USE_MISC (gcc 2.95.3), which (at least in Linux) ++# determines whether stdlib.h includes prototypes for mktemp(), random(), etc. ++# (i.e., if you use it, you will get unnecessary compiler warnings) ++#CC = gcc + + # use this if you're using 'cc' on a DEC Alpha (OSF/1) or MIPS (Ultrix) system: + # CC = cc -std1 -Olimit 750 +@@ -14,8 +18,13 @@ + # -Wuninitialized -Wparentheses + + +-CCOPTS = -O +- ++CCOPTS = -O ++# these are the usual optimization and warning options for gcc; all such ++# warnings but one (mktemp() use) have been eliminated (at least on Linux): ++#CCOPTS = -O3 -Wall ++# for the next step up in gcc noise, try adding -W (but note that it adds a ++# huge number of unused-parameter and signed/unsigned comparison warnings): ++#CCOPTS = -O3 -Wall -W + + ### NOTE: Sun running OpenWindows: + ### if you're using a SUN running OPENWINDOWS, you need to add these two +@@ -27,6 +36,10 @@ + ### '-I' options on the CCOPTS line to tell the compiler where said files are. + + ++# BeOS _may_ need to use a different version (below), but probably not ++CLEANDIR = cleandir ++ ++ + ### Installation locations + BINDIR = /usr/local/bin + MANDIR = /usr/local/man/man1 +@@ -38,7 +51,7 @@ + + + ########################### CONFIGURATION OPTIONS ############################ +-### NOTE: be sure to check 'config.h', for a few other configuration options ++### NOTE: be sure to check 'config.h', for a few other configuration options + ############################################################################## + + ### +@@ -59,18 +72,25 @@ + ### if, for whatever reason, you're unable to get the TIFF library to compile + ### on your machine, *COMMENT OUT* the following lines + ### +-TIFF = -DDOTIFF ++### GRR 20050319: USE_TILED_TIFF_BOTLEFT_FIX enables an experimental fix for ++### tiled TIFFs with ORIENTATION_BOTLEFT. It may break other tiled TIFFs, ++### or it may be required for certain other TIFF types (e.g., strips with ++### ORIENTATION_BOTLEFT). I don't have a sufficient variety of TIFF test ++### images at hand. ++### ++#TIFF = -DDOTIFF ++TIFF = -DDOTIFF -DUSE_TILED_TIFF_BOTLEFT_FIX + TIFFDIR = tiff + TIFFINC = -I$(TIFFDIR) + TIFFLIB = $(TIFFDIR)/libtiff.a + $(TIFFLIB): +- ( cd $(TIFFDIR) ; make CC='$(CC)' ) ++ ( cd $(TIFFDIR) ; make CC='$(CC)' COPTS='$(CCOPTS) $(MCHN)' ) + + + ### + ### if, for whatever reason, you're unable to get the PDS/VICAR support + ### to compile (xvpds.c, and vdcomp.c), *COMMENT OUT* the following line, +-### and also remove 'vdcomp' from the 'all:' dependancy ++### and also remove 'vdcomp' from the 'all:' dependancy + ### + PDS = -DDOPDS + +@@ -78,17 +98,25 @@ + #----------System V---------- + + # if you are running on a SysV-based machine, such as HP, Silicon Graphics, +-# Solaris, etc., uncomment the following line to get mostly there. ++# Solaris, etc., uncomment the following line to get mostly there. + #UNIX = -DSVR4 + + +-#----------Machine Specific Configurations---------- ++#----------Machine-Specific Configurations---------- ++ ++### If you are using a BeOS system, uncomment the following line ++#MCHN = -DUSE_GETCWD -I/usr/X11/include -L/usr/X11/lib ++### ++### The stock version of cleandir now should work for BeOS, too, so try ++### leaving this commented out: ++#CLEANDIR = cleandir.BeOS ++ + + ### If you are using an SGI system, uncomment the following line + #MCHN = -Dsgi + + +-### For HP-UX, uncomment the following line: ++### For HP-UX, uncomment the following line + #MCHN= -Dhpux -D_HPUX_SOURCE + # To use old HP compilers (HPUX 7.0 or so), you may need + #MCHN= -Dhpux -D_HPUX_SOURCE +Ns4000 +@@ -102,22 +130,22 @@ + + + ### for LINUX, uncomment the following line +-#MCHN = -DLINUX ++#MCHN = -DLINUX -L/usr/X11R6/lib + + + # For SCO 1.1 (UNIX 3.2v2) machines, uncomment the following: + #MCHN = -Dsco -DPOSIX + # + # For ODT 2.0 (UNIX 3.2v4) machines, uncomment the following: +-#MCHN= -Dsco -DPOSIX -DNO_RANDOM ++#MCHN= -Dsco -DPOSIX -DNO_RANDOM + # + # Also, you should add '-lc -lx' to the end of the LIBS def below + # -lx must be after -lc so you get the right directory routines. + + + # for UMAX V by Encore Computers uncomment the following line for +-# the portable c compiler, system specific definitions and +-# location of local X11 library(if site specific, modify -L option) ++# the portable C compiler, system-specific definitions and ++# location of local X11 library (if site-specific, modify -L option) + # No other switches should be necessary, or so I'm told... + # + #MCHN = -q extensions=pcc_c -D__UMAXV__ -L/usr2/usr/lib/X11 -DSVR4 +@@ -147,8 +175,8 @@ + #TIMERS = -DUSLEEP + + +-# if XV locks up whenever you click on *any* of the buttons, the Timer() +-# function in xvmisc.c is going out to lunch. A simple workaround is to ++# if XV locks up whenever you click on *any* of the buttons, the Timer() ++# function in xvmisc.c is going out to lunch. A simple workaround is to + # uncomment the following line: + #TIMERS = -DNOTIMER + +@@ -160,7 +188,7 @@ + #DXWM = -DDXWM + + +-# if, during compilation, your system complains about the types ++# if, during compilation, your system complains about the types + # 'u_long', 'u_short', 'u_int', etc. as being undefined, uncomment the + # following line: + #BSDTYPES = -DBSDTYPES +@@ -188,7 +216,9 @@ + $(NODIRENT) $(VPRINTF) $(TIMERS) $(UNIX) $(BSDTYPES) $(RAND) \ + $(DXWM) $(MCHN) + ++### remove -lm for BeOS: + LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) -lm ++#LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) + + OBJS = xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \ + xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \ +@@ -231,9 +261,10 @@ + + clean: xvclean + rm -f bggen vdcomp xcmap xvpictoppm +- ./cleandir $(JPEGDIR) +- rm -f $(JPEGDIR)/jconfig.h $(JPEGDIR)/Makefile +- ./cleandir $(TIFFDIR) ++# clean only local jpeg and tiff dirs, not user's or system's copies: ++ ./$(CLEANDIR) jpeg ++ rm -f jpeg/jconfig.h jpeg/Makefile ++ ./$(CLEANDIR) tiff + + + install: all +@@ -246,8 +277,9 @@ + cp docs/xvdocs.ps* $(LIBDIR) + + tar: ++# tar only local jpeg and tiff dirs, not user's or system's copies: + tar cvf xv.tar Makefile* Imakefile *.c *.h bits \ +- docs unsupt vms $(JPEGDIR) $(TIFFDIR) $(MISC) ++ docs unsupt vms jpeg tiff $(MISC) + + xvtar: + tar cvf xv.tar Makefile* Imakefile *.c *.h bits +@@ -257,26 +289,26 @@ + + ################# bitmap dependencies #################### + +-xv.o: bits/icon bits/iconmask bits/runicon bits/runiconm +-xv.o: bits/cboard50 bits/gray25 ++xv.o: bits/icon bits/iconmask bits/runicon bits/runiconm ++xv.o: bits/cboard50 bits/gray25 + + xvbrowse.o: bits/br_file bits/br_dir bits/br_exe bits/br_chr bits/br_blk +-xvbrowse.o: bits/br_sock bits/br_fifo bits/br_error bits/br_unknown ++xvbrowse.o: bits/br_sock bits/br_fifo bits/br_error # bits/br_unknown + xvbrowse.o: bits/br_cmpres bits/br_gif bits/br_pm bits/br_pbm + xvbrowse.o: bits/br_sunras bits/br_bmp bits/br_utah bits/br_iris +-xvbrowse.o: bits/br_pcx bits/br_jfif bits/br_tiff bits/br_pds ++xvbrowse.o: bits/br_pcx bits/br_jfif bits/br_tiff bits/br_pds + xvbrowse.o: bits/br_ps bits/br_iff bits/br_targa bits/br_xpm + xvbrowse.o: bits/br_trash bits/fcurs bits/fccurs bits/fdcurs bits/fcursm +-xvbrowse.o: bits/br_xwd ++xvbrowse.o: bits/br_xwd + + xvbutt.o: bits/cboard50 bits/rb_frame bits/rb_frame1 bits/rb_top + xvbutt.o: bits/rb_bot bits/rb_dtop bits/rb_dbot bits/rb_body + xvbutt.o: bits/rb_dot bits/cb_check bits/mb_chk + + xvctrl.o: bits/gray25 bits/gray50 bits/i_fifo bits/i_chr bits/i_dir +-xvctrl.o: bits/i_blk bits/i_lnk bits/i_sock bits/i_exe bits/i_reg ++xvctrl.o: bits/i_blk bits/i_lnk bits/i_sock bits/i_exe bits/i_reg + xvctrl.o: bits/h_rotl bits/h_rotr bits/fliph bits/flipv bits/p10 +-xvctrl.o: bits/m10 bits/cut bits/copy bits/paste bits/clear ++xvctrl.o: bits/m10 bits/cut bits/copy bits/paste bits/clear + xvctrl.o: bits/uicon bits/oicon1 bits/oicon2 bits/icon + xvctrl.o: bits/padimg bits/annot + +@@ -285,13 +317,13 @@ + xvdflt.o: bits/logo_top bits/logo_bot bits/logo_out bits/xv_jhb + xvdflt.o: bits/xv_cpyrt bits/xv_rev bits/xv_ver + xvdflt.o: bits/xf_left bits/xf_right bits/font5x9.h +-xvdflt.o: xvdflt.h ++xvdflt.o: xvdflt.h + + xvdial.o: bits/dial_cw1 bits/dial_ccw1 bits/dial_cw2 bits/dial_ccw2 + + xvdir.o: bits/d_load bits/d_save + +-xvevent.o: bits/dropper bits/dropperm bits/pen bits/penm ++xvevent.o: bits/dropper bits/dropperm bits/pen bits/penm + xvevent.o: bits/blur bits/blurm + + xvgam.o: bits/h_rotl bits/h_rotr bits/h_flip bits/h_sinc bits/h_sdec +diff -ruN xv-3.10a/Makefile.std xv-3.10a-bugfixes/Makefile.std +--- xv-3.10a/Makefile.std 1995-01-23 17:06:26.000000000 -0800 ++++ xv-3.10a-bugfixes/Makefile.std 2005-04-06 08:17:13.000000000 -0700 +@@ -2,7 +2,11 @@ + + # your C compiler (and options) of choice + CC = cc +-# CC = gcc -ansi ++#CC = gcc -ansi ++# note that -ansi kills __USE_MISC (gcc 2.95.3), which (at least in Linux) ++# determines whether stdlib.h includes prototypes for mktemp(), random(), etc. ++# (i.e., if you use it, you will get unnecessary compiler warnings) ++#CC = gcc + + # use this if you're using 'cc' on a DEC Alpha (OSF/1) or MIPS (Ultrix) system: + # CC = cc -std1 -Olimit 750 +@@ -14,8 +18,13 @@ + # -Wuninitialized -Wparentheses + + +-CCOPTS = -O +- ++CCOPTS = -O ++# these are the usual optimization and warning options for gcc; all such ++# warnings but one (mktemp() use) have been eliminated (at least on Linux): ++#CCOPTS = -O3 -Wall ++# for the next step up in gcc noise, try adding -W (but note that it adds a ++# huge number of unused-parameter and signed/unsigned comparison warnings): ++#CCOPTS = -O3 -Wall -W + + ### NOTE: Sun running OpenWindows: + ### if you're using a SUN running OPENWINDOWS, you need to add these two +@@ -27,6 +36,10 @@ + ### '-I' options on the CCOPTS line to tell the compiler where said files are. + + ++# BeOS _may_ need to use a different version (below), but probably not ++CLEANDIR = cleandir ++ ++ + ### Installation locations + BINDIR = /usr/local/bin + MANDIR = /usr/local/man/man1 +@@ -38,7 +51,7 @@ + + + ########################### CONFIGURATION OPTIONS ############################ +-### NOTE: be sure to check 'config.h', for a few other configuration options ++### NOTE: be sure to check 'config.h', for a few other configuration options + ############################################################################## + + ### +@@ -59,18 +72,25 @@ + ### if, for whatever reason, you're unable to get the TIFF library to compile + ### on your machine, *COMMENT OUT* the following lines + ### +-TIFF = -DDOTIFF ++### GRR 20050319: USE_TILED_TIFF_BOTLEFT_FIX enables an experimental fix for ++### tiled TIFFs with ORIENTATION_BOTLEFT. It may break other tiled TIFFs, ++### or it may be required for certain other TIFF types (e.g., strips with ++### ORIENTATION_BOTLEFT). I don't have a sufficient variety of TIFF test ++### images at hand. ++### ++#TIFF = -DDOTIFF ++TIFF = -DDOTIFF -DUSE_TILED_TIFF_BOTLEFT_FIX + TIFFDIR = tiff + TIFFINC = -I$(TIFFDIR) + TIFFLIB = $(TIFFDIR)/libtiff.a + $(TIFFLIB): +- ( cd $(TIFFDIR) ; make CC='$(CC)' ) ++ ( cd $(TIFFDIR) ; make CC='$(CC)' COPTS='$(CCOPTS) $(MCHN)' ) + + + ### + ### if, for whatever reason, you're unable to get the PDS/VICAR support + ### to compile (xvpds.c, and vdcomp.c), *COMMENT OUT* the following line, +-### and also remove 'vdcomp' from the 'all:' dependancy ++### and also remove 'vdcomp' from the 'all:' dependancy + ### + PDS = -DDOPDS + +@@ -78,17 +98,25 @@ + #----------System V---------- + + # if you are running on a SysV-based machine, such as HP, Silicon Graphics, +-# Solaris, etc., uncomment the following line to get mostly there. ++# Solaris, etc., uncomment the following line to get mostly there. + #UNIX = -DSVR4 + + +-#----------Machine Specific Configurations---------- ++#----------Machine-Specific Configurations---------- ++ ++### If you are using a BeOS system, uncomment the following line ++#MCHN = -DUSE_GETCWD -I/usr/X11/include -L/usr/X11/lib ++### ++### The stock version of cleandir now should work for BeOS, too, so try ++### leaving this commented out: ++#CLEANDIR = cleandir.BeOS ++ + + ### If you are using an SGI system, uncomment the following line + #MCHN = -Dsgi + + +-### For HP-UX, uncomment the following line: ++### For HP-UX, uncomment the following line + #MCHN= -Dhpux -D_HPUX_SOURCE + # To use old HP compilers (HPUX 7.0 or so), you may need + #MCHN= -Dhpux -D_HPUX_SOURCE +Ns4000 +@@ -102,22 +130,22 @@ + + + ### for LINUX, uncomment the following line +-#MCHN = -DLINUX ++#MCHN = -DLINUX -L/usr/X11R6/lib + + + # For SCO 1.1 (UNIX 3.2v2) machines, uncomment the following: + #MCHN = -Dsco -DPOSIX + # + # For ODT 2.0 (UNIX 3.2v4) machines, uncomment the following: +-#MCHN= -Dsco -DPOSIX -DNO_RANDOM ++#MCHN= -Dsco -DPOSIX -DNO_RANDOM + # + # Also, you should add '-lc -lx' to the end of the LIBS def below + # -lx must be after -lc so you get the right directory routines. + + + # for UMAX V by Encore Computers uncomment the following line for +-# the portable c compiler, system specific definitions and +-# location of local X11 library(if site specific, modify -L option) ++# the portable C compiler, system-specific definitions and ++# location of local X11 library (if site-specific, modify -L option) + # No other switches should be necessary, or so I'm told... + # + #MCHN = -q extensions=pcc_c -D__UMAXV__ -L/usr2/usr/lib/X11 -DSVR4 +@@ -147,8 +175,8 @@ + #TIMERS = -DUSLEEP + + +-# if XV locks up whenever you click on *any* of the buttons, the Timer() +-# function in xvmisc.c is going out to lunch. A simple workaround is to ++# if XV locks up whenever you click on *any* of the buttons, the Timer() ++# function in xvmisc.c is going out to lunch. A simple workaround is to + # uncomment the following line: + #TIMERS = -DNOTIMER + +@@ -160,7 +188,7 @@ + #DXWM = -DDXWM + + +-# if, during compilation, your system complains about the types ++# if, during compilation, your system complains about the types + # 'u_long', 'u_short', 'u_int', etc. as being undefined, uncomment the + # following line: + #BSDTYPES = -DBSDTYPES +@@ -188,7 +216,9 @@ + $(NODIRENT) $(VPRINTF) $(TIMERS) $(UNIX) $(BSDTYPES) $(RAND) \ + $(DXWM) $(MCHN) + ++### remove -lm for BeOS: + LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) -lm ++#LIBS = -lX11 $(JPEGLIB) $(TIFFLIB) + + OBJS = xv.o xvevent.o xvroot.o xvmisc.o xvimage.o xvcolor.o xvsmooth.o \ + xv24to8.o xvgif.o xvpm.o xvinfo.o xvctrl.o xvscrl.o xvalg.o \ +@@ -231,9 +261,10 @@ + + clean: xvclean + rm -f bggen vdcomp xcmap xvpictoppm +- ./cleandir $(JPEGDIR) +- rm -f $(JPEGDIR)/jconfig.h $(JPEGDIR)/Makefile +- ./cleandir $(TIFFDIR) ++# clean only local jpeg and tiff dirs, not user's or system's copies: ++ ./$(CLEANDIR) jpeg ++ rm -f jpeg/jconfig.h jpeg/Makefile ++ ./$(CLEANDIR) tiff + + + install: all +@@ -246,8 +277,9 @@ + cp docs/xvdocs.ps* $(LIBDIR) + + tar: ++# tar only local jpeg and tiff dirs, not user's or system's copies: + tar cvf xv.tar Makefile* Imakefile *.c *.h bits \ +- docs unsupt vms $(JPEGDIR) $(TIFFDIR) $(MISC) ++ docs unsupt vms jpeg tiff $(MISC) + + xvtar: + tar cvf xv.tar Makefile* Imakefile *.c *.h bits +@@ -257,26 +289,26 @@ + + ################# bitmap dependencies #################### + +-xv.o: bits/icon bits/iconmask bits/runicon bits/runiconm +-xv.o: bits/cboard50 bits/gray25 ++xv.o: bits/icon bits/iconmask bits/runicon bits/runiconm ++xv.o: bits/cboard50 bits/gray25 + + xvbrowse.o: bits/br_file bits/br_dir bits/br_exe bits/br_chr bits/br_blk +-xvbrowse.o: bits/br_sock bits/br_fifo bits/br_error bits/br_unknown ++xvbrowse.o: bits/br_sock bits/br_fifo bits/br_error # bits/br_unknown + xvbrowse.o: bits/br_cmpres bits/br_gif bits/br_pm bits/br_pbm + xvbrowse.o: bits/br_sunras bits/br_bmp bits/br_utah bits/br_iris +-xvbrowse.o: bits/br_pcx bits/br_jfif bits/br_tiff bits/br_pds ++xvbrowse.o: bits/br_pcx bits/br_jfif bits/br_tiff bits/br_pds + xvbrowse.o: bits/br_ps bits/br_iff bits/br_targa bits/br_xpm + xvbrowse.o: bits/br_trash bits/fcurs bits/fccurs bits/fdcurs bits/fcursm +-xvbrowse.o: bits/br_xwd ++xvbrowse.o: bits/br_xwd + + xvbutt.o: bits/cboard50 bits/rb_frame bits/rb_frame1 bits/rb_top + xvbutt.o: bits/rb_bot bits/rb_dtop bits/rb_dbot bits/rb_body + xvbutt.o: bits/rb_dot bits/cb_check bits/mb_chk + + xvctrl.o: bits/gray25 bits/gray50 bits/i_fifo bits/i_chr bits/i_dir +-xvctrl.o: bits/i_blk bits/i_lnk bits/i_sock bits/i_exe bits/i_reg ++xvctrl.o: bits/i_blk bits/i_lnk bits/i_sock bits/i_exe bits/i_reg + xvctrl.o: bits/h_rotl bits/h_rotr bits/fliph bits/flipv bits/p10 +-xvctrl.o: bits/m10 bits/cut bits/copy bits/paste bits/clear ++xvctrl.o: bits/m10 bits/cut bits/copy bits/paste bits/clear + xvctrl.o: bits/uicon bits/oicon1 bits/oicon2 bits/icon + xvctrl.o: bits/padimg bits/annot + +@@ -285,13 +317,13 @@ + xvdflt.o: bits/logo_top bits/logo_bot bits/logo_out bits/xv_jhb + xvdflt.o: bits/xv_cpyrt bits/xv_rev bits/xv_ver + xvdflt.o: bits/xf_left bits/xf_right bits/font5x9.h +-xvdflt.o: xvdflt.h ++xvdflt.o: xvdflt.h + + xvdial.o: bits/dial_cw1 bits/dial_ccw1 bits/dial_cw2 bits/dial_ccw2 + + xvdir.o: bits/d_load bits/d_save + +-xvevent.o: bits/dropper bits/dropperm bits/pen bits/penm ++xvevent.o: bits/dropper bits/dropperm bits/pen bits/penm + xvevent.o: bits/blur bits/blurm + + xvgam.o: bits/h_rotl bits/h_rotr bits/h_flip bits/h_sinc bits/h_sdec +diff -ruN xv-3.10a/README.jumbo xv-3.10a-bugfixes/README.jumbo +--- xv-3.10a/README.jumbo 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-bugfixes/README.jumbo 2005-04-10 19:55:23.000000000 -0700 +@@ -0,0 +1,387 @@ ++These are the latest versions of the XV jumbo patches I originally created ++in February 2000 (but never distributed) and eventually updated and released ++in May 2004, prompted by a discussion on LWN (http://lwn.net/Articles/76391/). ++Information about the patches, updates to the patches, and the patches ++themselves can all be found here: ++ ++ http://pobox.com/~newt/greg_xv.html ++ http://freshmeat.net/projects/xvjumbopatches/ ++ ++(Use the "Subscribe to new releases" link on the latter page if you want to ++be notified of new versions automatically; trivial registration required.) ++ ++These two patches incorporate all of the fix- and enhancement-patches ++available from John's XV site (http://www.trilon.com/xv/downloads.html ++and ftp://ftp.trilon.com/pub/xv/patches/), plus a number of my own fixes ++and additions, plus quite a few from other people--though not all of the ++ones I'd intended to (sorry, SJT, AT, and JPD!) due to lack of time after ++dealing with the latest security issue (which I discovered, sigh). They're ++still not fully complete, and it's possible they never will be, but I do ++plan to continue working on them whenever the mood strikes--and I may even ++release them publicly on rare occasions. (At the current rate, it looks ++like once a year may be the best we can hope for...we'll see.) ++ ++Also be aware that several other people have had the same idea over the ++years. Ones I've found, more or less by accident, include: ++ ++ - Landon Curt "chongo" Noll (http://www.isthe.com/chongo/) ++ http://www.isthe.com/chongo/src/xv-patch/ ++ - Mark Ashley ++ http://www.ibiblio.org/pub/packages/solaris/sparc/html/xv.3.10a.p19.html ++ - Peter Jordan ++ http://www.ibiblio.org/pub/Linux/apps/graphics/viewers/X/xv-3.10a.patch.* ++ - Uwe F. Mayer (http://www.tux.org/~mayer/) ++ http://www.tux.org/~mayer/linux/book/node311.html ++ - Kurt Wall ++ http://www.kurtwerks.com/software/xv.html ++ - Chisato Yamauchi (http://phe.phyas.aichi-edu.ac.jp/~cyamauch/index_en.html) ++ http://phe.phyas.aichi-edu.ac.jp/~cyamauch/xv.html ++ - Daisuke Yabuki ++ http://www.optix.org/~dxy/solaris/xv/ ++ - Pekoe (http://pekoe.lair.net/) ++ http://pekoe.lair.net/diary/xv.html ++ - FreeBSD FreshPorts ++ http://www.freshports.org/graphics/xv/ ++ - ++ http://www.coara.or.jp/~sudakyo/XV_jp.html ++ ++I very much doubt that this is an exhaustive list. So far, most of the other ++patch-sets appear not to be quite as extensive or as up-to-date as my own, ++although the last three or four do include the [large] Japanese extension ++patches that I omitted--not because they're unworthy, but simply because I ++didn't find them until collisions between the two sets of patches had become ++a large problem. (Maybe for the next release... I'd intended to try for ++this release, but the security issues ended up taking almost all of my ++available time. And, to be honest, from my perspective, inclusion of the ++jp-extension patches is more for completeness' sake than personal interest, ++so their priority is fairly low.) ++ ++Below I summarize the component patches that are encompassed by my jumbo ++bugfixes and jumbo enhancements patches. Unfortunately, some of my own ++additions never saw the light of day as standalone patches, but considering ++the number of overlaps (collisions) already implicit in this list, it would ++have been difficult to accomplish even if I'd had the time. In any case, ++they're present in these jumbo patches but not chongo's, so those who _really_ ++care can "subtract" the two sets of patches to see what I did. ++ ++Here's a quick guide to the "third-party" credits in the lists below: ++ ++ AAC = Andrey A. Chernov [ache] ++ (http://cvsweb.freebsd.org/ports/graphics/xv/files/patch-ab) ++ AD = Andreas Dilger (adilger@clusterfs.com) ++ AL = Alexander Lehmann (lehmann@usa.net) ++ AT = Anthony Thyssen (http://www.cit.gu.edu.au/~anthony/) ++ DAC = David A. Clunie (http://www.dclunie.com/xv-pcd.html) ++ EK = Egmont Koblinger (egmont@users.sourceforge.net) ++ GRR = Greg Roelofs (http://pobox.com/~newt/) ++ GV = Guido Vollbeding (http://sylvana.net/guido/) ++ JCE = John C. Elliott (http://www.seasip.demon.co.uk/ZX/zxdload.html) ++ JHB = John H. Bradley, of course (http://www.trilon.com/xv/) ++ JPD = Jean-Pierre Demailly (http://www-fourier.ujf-grenoble.fr/~demailly/) ++ JR = John Rochester (http://www.freebsd.org/cgi/query-pr.cgi?pr=2920) ++ (also http://cvsweb.freebsd.org/ports/graphics/xv/files/patch-af, -ag) ++ JZ = Joe Zbiciak (http://spatula-city.org/~im14u2c/) ++ LCN = Landon Curt "chongo" Noll (http://www.isthe.com/chongo/) ++ PBJ = Peter Jordan (http://www.ibiblio.org/pub/Linux/apps/graphics/viewers/X/) ++ PSV = Pawel S. Veselov (http://manticore.2y.net/wbmp.html) ++ SB = Sean Borman (http://www.nd.edu/~sborman/software/xvwheelmouse.html) ++ SJT = TenThumbs (tenthumbs@cybernex.net) ++ TA = Tim Adye (http://hepwww.rl.ac.uk/Adye/xv-psnewstyle.html) ++ ++Other credits are as listed on the XV Downloads page or in the respective ++patches (e.g., the jp-extension patches or within the PNG patch). ++ ++Finally, please note that these patches have not been blessed by John Bradley ++in any way (although I copied him on the May 2004 announcement--no response). ++Nor have I personally tested every change and feature! (See the BIG SCARY ++WARNING below for further caveats.) In other words, they're both completely ++unofficial and completely unguaranteed. But they seem to work for me. (And ++when they don't, I fix 'em. Eventually, anyway... ;-) ) ++ ++One further "final" note: this may well be the last release to include ++separate fix- and enhancements-patches. It is too much of a timesink to ++maintain parallel trees--not to mention parallel makefiles (generic/public ++vs. local/personal, old vs. new libjpeg/libtiff) and xv.h (unregistered/ ++public vs. registered/personal), particularly when some fixes come about ++while working on an enhancement. Henceforth--assuming, of course, that ++there _is_ a "henceforth"--I expect to merge the patches into a single ++jumbo patch. (Alternatively, I may simply freeze the current fix-patch ++and continue to evolve only the enhancements patch; in particular, new ++fixes would appear only in it. Either approach would be simple enough; ++feedback as to which would be preferable is welcomed.) ++ ++GRR 20050410 ++ ++ ++How to build ++------------ ++ ++The following assumes you, the user, already have the libtiff,[1] ++libjpeg,[2] libpng,[3] and zlib[4] libraries downloaded, patched (if ++necessary), compiled, and installed, not to mention a C compiler and ++the bzip2,[5] tar,[6] patch,[7] and make[8] utilities. You should also ++have downloaded the original XV 3.10a source distribution from the XV ++Downloads page[9] and be able to edit its Makefile and config.h files ++as indicated in the INSTALL file. Finally, you should know what a ++Unix(-style) command line is, where to find one, and how to wield it ++with abandon (or at least with adult supervision)--and preferably not ++as the root user until the make install step. (A filesystem is a ++terrible thing to waste.) ++ ++ [1] http://www.remotesensing.org/libtiff/ ++ [2] http://www.ijg.org/ ++ [3] http://www.libpng.org/pub/png/libpng.html ++ [4] http://www.zlib.net/ ++ [5] http://sources.redhat.com/bzip2/ ++ [6] http://www.gnu.org/directory/devel/specific/tar.html ++ [7] http://www.gnu.org/directory/devel/specific/patch.html ++ [8] http://www.gnu.org/directory/devel/specific/make.html ++ [9] http://www.trilon.com/xv/downloads.html#src-distrib ++ +++-------------------------------------------------------------------------+ ++| | ++| BIG SCARY WARNING | ++| | ++| These patches work for Greg (and parts of them apparently work for | ++| various other people), and so far Greg's CPU still computes and his | ++| hard disks haven't been wiped. But there's no guarantee that that | ++| will be the case for you! In particular, not every incorporated patch | ++| has been explicitly tested, nor has every possible subcase of the | ++| explicitly tested subset. (Read that again; it's grammatical.) Nor are | ++| these patches officially blessed by John Bradley in any way. In other | ++| words, if you use these patches, you do so at your own risk. (Greg | ++| doesn't believe there are any serious problems remaining, but then, | ++| what programmer ever does? Bugs happen.) | ++| | +++-------------------------------------------------------------------------+ ++ ++Assuming you have the prerequisites out of the way and aren't scared ++off by the Big Scary Warning, here's the build procedure: ++ ++ bzip2 -dc xv-3.10a-jumbo-patches-20050410.tar.bz2 | tar xvf - ++ (or tar xvzf xv-3.10a-jumbo-patches-20050410.tar.gz) ++ ++ tar xvzf xv-3.10a.tar.gz ++ ++ cd xv-3.10a ++ ++ patch -p1 < ../xv-3.10a-jumbo-fix-patch-20050410.txt ++ ++ [optional] patch -p1 < ../xv-3.10a-jumbo-enh-patch-20050410.txt ++ ++ edit Makefile and config.h as directed in INSTALL file (in particular, ++ ensure paths to external libraries and header files are correct) ++ ++ make ++ ++ ./xv your_favorite_image your_other_favorite_image etc. ++ ++If everything seems to be working to your satisfaction, go ahead and install: ++ ++ make -n install (and double-check that things will be installed ++ where you want them to be) ++ ++ become root if necessary (e.g., type su) ++ ++ make install ++ ++That wasn't so hard, was it? ++ ++ ++Summary of incorporated and unincorporated patches ++-------------------------------------------------- ++ ++fixes ((*) = listed on XV Downloads page, (f) = on ftp site only): ++ ++20040516: ++ - grabpatch (*) [obsoleted by new-xvgrab.c below] ++ - vispatch (*) ++ - mp-tiff-patch (*) [technically an enhancement, but JHB says...] ++ - longname.patch (*) [*SECURITY*] ++ - xpm.patch (*) ++ - deepcolor.patch (*) [slightly modified for language conformance] ++ - gifpatch (*) ++ - exceed_grab.patch (*) ++ - xv-redhat6-readme.txt (*) [slightly modified for portability] ++ - beos.patch (*) [modified for portability] ++ - croppad.patch (f) ++ - epsfpatch (f) ++ - tiff1200.patch (*) ++ - gssafer.patch (*) [*SECURITY*] ++ - new-xvgrab.c (f) [includes grabpatch but not exceed_grab.patch] ++ - xcmap.diff (AD) [part of xv-3.10a-png-1.2d.tar.gz] ++ - fixes for huge number gcc -Wall warnings--including two bugs (GRR) ++ - fix for cleandir script when no makefile exists (GRR) ++ - *SECURITY* fix for gets() in vdcomp.c (GRR, LCN vdcomp-security.patch) ++ - *SECURITY* fix for getwd() on Linux (GRR, LCN Linux-compile.patch) ++ - fix for "no fuss" Linux compiles (LCN Linux-compile.patch) ++ - partial *SECURITY* fix for mktemp() in xv.c and xvdir.c (GRR) ++ (remaining instances in xv.c (2), xvimage.c, xvfits.c, xvpds.c, xvps.c, and ++ possibly xvtiff.c--most involve system()) ++ - freebsd-vdcomp-newline.patch (AAC) ++ - xv-3.10a.patch.linux (PBJ) [/bin/sh versions of cleandir, RANLIB.sh only] ++ - removed trailing white space (GRR) [purely cosmetic] ++20050410: ++ - fix for YCbCr oversaturated-green bug(s) in TIFF decoder (GRR) ++ - provisional fix for contiguous tiled TIFFs with bottom-* orientation (GRR) ++ - fixes for gcc 3.3 -Wall warnings (GRR) ++ - fix for incorrect 16/24-bit display of xwd dumps (SJT) ++ - *SECURITY* fix for multiple input-validation bugs (OpenBSD/SuSE, Gentoo, GRR) ++ (this also completes the partial mktemp() security fix listed above) ++ - fix for (probable) 24-bit endianness bug in fixpix code (GRR) ++ ++ ++enhancements ((*) = listed on XV Downloads page, () = third-party): ++ ++20040516: ++ - xv-3.10a.JPEG-patch (*) ++ (xv-3.10a.JPEG-patch.old differs only in ftp site listed in comments at top) ++ - xv-3.10a.TIFF-patch (*) ++ - xv-3.10a-png-1.2d.tar.gz (AL, AD) (*) ++ (xvjpeg.diff and xvtiff.diff ignored; xcmap.diff included in fixes) ++ - xvpng-1.2d-fix3.patch (GRR, SJT) (*) ++ - pdf.patch (*) ++ - windowid.patch + windowid.patch.readme (*) ++ - bmp32.patch (*) ++ - fixpix-20000610.tar.gz (GV) ++ (identical to 19961127 version except for README updates and new Win32 file) ++ [modified to be runtime-selectable via -/+fixpix option] ++ - browse-remember.patch (JZ) ++ - faster-smooth.patch (JZ) ++ - PAM support (GRR) ++ - PNG/GIF -ibg ("image background") transparency option (GRR) ++ (does not yet support TIFF, XPM or TGA) ++ - VersionInfo* in help screen (GRR) ++ - minor grammar/spelling fixes (GRR) ++ - floating-point support for -wait when USE_TICKS enabled (GRR) ++ - wheelmouse.patch (SB) ++ - freebsd-gravity-hints-patch (JR) ++ - xv-zx.patch (JCE) ++ - xv3.10a.wapbmp.patch (PSV) ++ - xv-3.10a-pcd.patch.20010708 (DAC) ++ - jp-ext-bzip2-1.1.patch ++ (from ftp://ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/shige/xv/) ++20050410: ++ - boosted maximum number of files from 4096 to 32768 (GRR) ++ (note that OS kernel limits may also apply; for example, in Linux see ++ MAX_ARG_PAGES in linux-/include/linux/binfmts.h) ++ - xv-3.10a-bmp16.patch ++ (from http://www.coara.or.jp/~sudakyo/XV_jp.html) ++ - final-image delay (e.g., "-wait 0.2,3" : pause 3 secs on final image) (GRR) ++ - xv-numpad.patch (EK) ++ - xv-delete-is-not-backspace.patch (EK) ++ - made browser window (schnauzer) and icons configurable (AT, GRR) ++ ++ ++not (yet?) included: ++ ++ - others from http://www.coara.or.jp/~sudakyo/XV_jp.html (some are duplicates): ++ -rw-r--r-- 4644 Mar 11 2004 xv-3.10a-directory.patch ++ -rw-r--r-- 462 Mar 11 2004 xv-3.10a-dirwkey.patch ++ -rw-r--r-- 688 Mar 11 2004 xv-3.10a-docdir.patch ++ -rw-r--r-- 11952 Mar 11 2004 xv-3.10a-download-test0.patch ++ -rw-r--r-- 41786 Mar 11 2004 xv-3.10a-download-test1.patch ++ -rw-r--r-- 42397 Mar 11 2004 xv-3.10a-download-test2.patch ++ -rw-r--r-- 47679 Mar 11 2004 xv-3.10a-download-test3.patch ++ -rw-r--r-- 52745 Mar 11 2004 xv-3.10a-download-test4.patch ++ -rw-r--r-- 415 Mar 11 2004 xv-3.10a-formatstr.patch ++ -rw-r--r-- 3423 Apr 24 2004 xv-3.10a-keyzoom.patch ++ -rw-r--r-- 1461 Mar 11 2004 xv-3.10a-locale-linux.patch ++ -rw-r--r-- 12387 Mar 15 2004 xv-3.10a-menubutton.patch ++ -rw-r--r-- 1178 Apr 24 2004 xv-3.10a-noblink.patch ++ -rw-r--r-- 484 Mar 11 2004 xv-3.10a-printkey.patch ++ -rw-r--r-- 57092 Jul 9 2004 xv-3.10a-resolution.patch ++ -rw-r--r-- 4645 Apr 24 2004 xv-3.10a-selall.patch ++ -rw-r--r-- 360 Mar 11 2004 xv-3.10a-shortsleep.patch ++ -rw-r--r-- 702 Apr 24 2004 xv-3.10a-showlongname.patch ++ -rw-r--r-- 1205 Apr 24 2004 xv-3.10a-staytoppdir.patch ++ -rw-r--r-- 1591 Mar 15 2004 xv-3.10a-sysconfdir.patch ++ -rw-r--r-- 4228 Apr 24 2004 xv-3.10a-wheelmouse.patch ++ -rw-r--r-- 744 Apr 24 2004 xv-3.10a-xvbutt_wait.patch ++ -rw-r--r-- 712 Mar 11 2004 xv-3.10a-xvexecpath.patch ++ -rw-r--r-- 3757 Jul 9 2004 xv-3.10a-xvscrl_button2.patch ++ -rw-r--r-- 1494 Jul 9 2004 xv-3.10a-xvscrl_wait.patch ++ -rw-r--r-- 19352 Jul 9 2004 xv-3.10a-xvzoom.patch ++ -rw-r--r-- 1827 Apr 24 2004 xv-3.10a-zeroquit.patch ++ ++ - xv310a-jp-extension-rev5.3.3.tar.gz [extensive] ++ - xv-3.10a-jp-extension-5.3.3-png-1.2d.patch [PNG patch relative to jp-ext] ++ - xv-3.10a+jp-extension-rev5.3.3+FLmask.v2.1+png+misc.patch [??] ++ ++ - xv-grab-imake-hips.patch (JPD) [HIPS format, -startgrab option] ++ - xv-psnewstyle.patch (TA) [coming later in 2005?] ++ - xv-3.10a.patch.linux (PBJ) [maybe use vdcomp.c changes?] ++ - xvxpm-anthony-thyssen.c (AT) ["slate grey" bug already gone?] ++ ++ - stuff in xv/unsupt: ++ -rw-r--r-- 30527 Dec 22 1994 FITS.rite ++ -rw-r--r-- 49152 Dec 22 1994 FITS.tar ++ -rw-r--r-- 3753 Dec 22 1994 G3.patch1 ++ -rw-r--r-- 24576 Dec 22 1994 G3.tar ++ -rw-r--r-- 1098 Dec 22 1994 INFO.cgm ++ -rw-r--r-- 1941 Dec 22 1994 README ++ -rwxr-xr-x 1059 Dec 22 1994 getweather ++ -rwxr-xr-x 2186 Dec 22 1994 getweather.ksh ++ -rw-r--r-- 856 Dec 22 1994 twm.fix ++ -rw-r--r-- 844 Dec 22 1994 vargs.c ++ -rw-r--r-- 47626 Dec 22 1994 vis ++ -rw-r--r-- 21097 Dec 22 1994 xscm ++ ++ ++ ++not finished (and/or even started ;-) ): ++ ++ - fix xvpng.c not to use direct struct access ++ - fix for never-ending pile of SLOW popups when viewing TIFFs with unknown tags ++ (or truncated/corrupted images) ++ - fix for minor .Z inefficiency in xv.c ("FIXME") ++ - fix for filename entry-field mouse/cursor bogosity ++ (want at least positioning to work; preferably also select/cut/paste) ++ - fix for spacebar-for-next-image getting stuck at first text file ++ - fix for .ppm.gz "disk leak" [can't reproduce...already fixed?] ++ (maybe occurs only if filesystem is already nearly full? bad .gz?) ++ ++ - transparency support for TIFF, XPM and TGA images ++ - support for tiled background image (with transparent foreground image) ++ - MNG/JNG support ++ ++ ++ChangeLog ++--------- ++ ++ 20000220 ++ original pair of jumbo patches, comprising perhaps 16 fix-patches and a ++ dozen enhancement-patches; never publicly released ++ ++ 20040516 ++ first public release, incorporating 25 fix-patches and 21 enhancement- ++ patches ++ ++ 20040523 ++ minor fix to xvctrl.c to support registered versions (GRR warnings-patch ++ was slightly overzealous); switched to tarball packaging ++ ++ 20040531 ++ fixed undefined CLK_TCK with gcc -ansi (enh/USE_TICKS option); made ++ libjpeg, libtiff, libpng and zlib sections of makefile more consistent ++ (enh); ++ ++ 20040606 ++ added freshmeat link, build instructions, and changelog to jumbo README ++ (this file) ++ ++ 20050213 ++ increased max number of files from 4096 to 32768 (enh) ++ ++ 20050320-20050410 ++ fixed two very long-standing YCbCr bugs in TIFF decoder (fix); ++ provisionally fixed bug in TIFF decoder for contiguous tiled TIFFs with ++ bottom-* orientation (fix/USE_TILED_TIFF_BOTLEFT_FIX option); fixed new ++ gcc 3.3 warnings (fix); fixed incorrect 16/24-bit display of xwd dumps ++ (fix); fixed multiple input-validation bugs (potential heap overflows) ++ and mktemp() dependencies (*SECURITY* fixes: CAN-2004-1725, CAN-2004- ++ 1726, CAN-2005-0665, CERT VU#622622, and others); added support for 16- ++ and 32-bit BMPs using bitfields "compression" (enh); fixed probable byte- ++ sex bug in 24-bit FixPix display code (enh/USE_24BIT_ENDIAN_FIX option); ++ fixed numerical-keypad NumLock behavior and delete-key behavior in file- ++ load/save window (enh); made schnauzer window and icons configurable (enh) +diff -ruN xv-3.10a/bggen.c xv-3.10a-bugfixes/bggen.c +--- xv-3.10a/bggen.c 1994-12-22 14:34:41.000000000 -0800 ++++ xv-3.10a-bugfixes/bggen.c 2004-05-16 17:50:52.000000000 -0700 +@@ -18,6 +18,11 @@ + #include + #include + ++#ifdef __STDC__ ++# include /* atoi() */ ++# include /* isdigit() */ ++#endif ++ + #ifndef M_PI + # define M_PI 3.1415926535897932385 + #endif +@@ -46,8 +51,8 @@ + + typedef unsigned char byte; + +-struct color { int r,g,b; +- int y; ++struct color { int r,g,b; ++ int y; + } colors[MAXCOLS], *cur, *nex; + + int numcols; +@@ -62,7 +67,7 @@ + double computeDist PARM((int, int, int, int, int)); + void writePPM PARM((byte *, int, int, int)); + +- ++ + /*************************************/ + int main(argc,argv) + int argc; +@@ -80,18 +85,18 @@ + char *geom = NULL; + char *rptgeom = NULL; + +- ++ + #ifdef VMS + getredirection(&argc, &argv); + #endif +- ++ + + for (i=1; i8) usage(); +- +- ++ ++ + if (geom) { + int x,y; unsigned int w,h; + i = XParseGeometry(geom, &x, &y, &w, &h); + if (i&WidthValue) { wset++; wide = (int) w; } + if (i&HeightValue) { hset++; high = (int) h; } + } +- +- ++ ++ + /* attempt to connect to X server and get screen dimensions */ + if (theDisp) { + i = DefaultScreen(theDisp); + if (!wset) wide = DisplayWidth(theDisp, i); + if (!hset) high = DisplayHeight(theDisp, i); + } +- +- ++ ++ + /* normalize 'rot' */ + while (rot< 0) rot += 360; + while (rot>=360) rot -= 360; +- +- ++ ++ + rptwide = wide; rpthigh = high; + if (rptgeom) { + int x,y; unsigned int w,h; + i = XParseGeometry(rptgeom, &x, &y, &w, &h); + if (i&WidthValue) rptwide = (int) w; + if (i&HeightValue) rpthigh = (int) h; +- ++ + RANGE(rptwide, 1, wide); + RANGE(rpthigh, 1, high); + } +- +- + +- ++ ++ ++ + rpic24 = (byte *) malloc(rptwide * rpthigh * 3 * sizeof(byte)); +- if (rptwide != wide || rpthigh != high) ++ if (rptwide != wide || rpthigh != high) + pic24 = (byte *) malloc(wide * high * 3 * sizeof(byte)); + else pic24 = rpic24; + +@@ -229,7 +234,7 @@ + exit(1); + } + for (i=0, pp=pic24; iy < i) { cur++; nex++; } +- ++ + r = cur->r + ((nex->r - cur->r) * (i - cur->y)) / (nex->y - cur->y); + g = cur->g + ((nex->g - cur->g) * (i - cur->y)) / (nex->y - cur->y); + b = cur->b + ((nex->b - cur->b) * (i - cur->y)) / (nex->y - cur->y); +- ++ + r = r & bmask[bits-1]; + g = g & bmask[bits-1]; + b = b & bmask[bits-1]; +- ++ + for (j=0; j1.0) rat = 1.0; +- ++ + cval = rat * nc1; + bc = floor(cval); + crat = cval - bc; +- ++ + if (bc < nc1) { + r = colors[bc].r + crat * (colors[bc+1].r - colors[bc].r); + g = colors[bc].g + crat * (colors[bc+1].g - colors[bc].g); +@@ -383,7 +388,7 @@ + g = colors[nc1].g; + b = colors[nc1].b; + } +- ++ + *pp++ = (byte) r; *pp++ = (byte) g; *pp++ = (byte) b; + } + } +@@ -395,9 +400,9 @@ + int x,y,cx,cy,rot; + { + /* rot has to be in range 0-359 */ +- +- double x1, y1, x2, y2, x3, y3, d, d1, b, theta; +- ++ ++ double x1, y1, x2, y2, x3, y3, d, d1, b; ++ + if (rot == 0) return (double) (y - cy); + if (rot == 180) return (double) (cy - y); + +@@ -407,7 +412,7 @@ + /* x2,y2 = vertical projection onto a || line that runs through cx,cy */ + x2 = x1; + y2 = cy - (cx-x2)*tant1; +- ++ + d1 = y2 - y1; /* vertical distance between lines */ + b = d1 * cost1; + +@@ -435,11 +440,11 @@ + int w,h,doascii; + { + /* dumps a pic24 in PPM format to stdout */ +- ++ + int x,y; +- ++ + printf("P%s %d %d 255\n", (doascii) ? "3" : "6", w, h); +- ++ + for (y=0; y10) number of machines. ++ * but rather, the total number of people who use XV on any sort of ++ * recurring basis. Site licenses are available (and recommended) for those ++ * who wish to run XV on a large (>10) number of machines. + * Contact the author for more details. + * + * The author may be contacted via: +diff -ruN xv-3.10a/tiff/Makefile xv-3.10a-bugfixes/tiff/Makefile +--- xv-3.10a/tiff/Makefile 1994-12-22 14:35:12.000000000 -0800 ++++ xv-3.10a-bugfixes/tiff/Makefile 2004-05-16 18:49:11.000000000 -0700 +@@ -30,8 +30,10 @@ + # OF THIS SOFTWARE. + # + +-AR= ar +-RANLIB= ./RANLIB.csh ++AR= ar ++CHMOD= chmod ++#RANLIB= ./RANLIB.csh ++RANLIB= ./RANLIB.sh + + IPATH= -I. + +@@ -60,6 +62,7 @@ + + ${ALL}: ${OBJS} + ${AR} rc libtiff.a $? ++ ${CHMOD} +x ${RANLIB} + ${RANLIB} libtiff.a + + ${OBJS}: tiffio.h tiff.h tiffcomp.h tiffiop.h tiffconf.h +diff -ruN xv-3.10a/tiff/Makefile.std xv-3.10a-bugfixes/tiff/Makefile.std +--- xv-3.10a/tiff/Makefile.std 1994-12-22 14:35:16.000000000 -0800 ++++ xv-3.10a-bugfixes/tiff/Makefile.std 2004-05-16 18:50:39.000000000 -0700 +@@ -30,8 +30,10 @@ + # OF THIS SOFTWARE. + # + +-AR= /bin/ar +-RANLIB= ./RANLIB.csh ++AR= /bin/ar ++CHMOD= chmod ++#RANLIB= ./RANLIB.csh ++RANLIB= ./RANLIB.sh + + IPATH= -I. + +@@ -60,6 +62,7 @@ + + ${ALL}: ${OBJS} + ${AR} rc libtiff.a $? ++ ${CHMOD} +x ${RANLIB} + ${RANLIB} libtiff.a + + ${OBJS}: tiffio.h tiff.h tiffcomp.h tiffiop.h tiffconf.h +diff -ruN xv-3.10a/tiff/RANLIB.sh xv-3.10a-bugfixes/tiff/RANLIB.sh +--- xv-3.10a/tiff/RANLIB.sh 1969-12-31 16:00:00.000000000 -0800 ++++ xv-3.10a-bugfixes/tiff/RANLIB.sh 2004-05-10 23:31:38.000000000 -0700 +@@ -0,0 +1,22 @@ ++#!/bin/sh -f ++# ++# tests to see if the program 'ranlib' exists. If it does, runs ranlib on ++# the first argument (a library name). Otherwise, does nothing, and returns ++# ++# written by John Bradley for the XV 3.00 release ++# thanks to John Hagan for shell-script hackery ++# ++ ++echo "executing 'ranlib $1'..." ++ ++# Is there a ranlib? Let's try and then suffer the consequences... ++ranlib $1 >& /dev/null ++ ++if [ $? -ne 0 ]; then ++ echo "There doesn't seem to be a ranlib on this system..." ++ echo "Don't worry about it." ++fi ++ ++echo "" ++echo "" ++ +diff -ruN xv-3.10a/vdcomp.c xv-3.10a-bugfixes/vdcomp.c +--- xv-3.10a/vdcomp.c 1994-12-22 14:34:47.000000000 -0800 ++++ xv-3.10a-bugfixes/vdcomp.c 2005-03-20 17:48:59.000000000 -0800 +@@ -5,8 +5,8 @@ + /* Decompresses images using Kris Becker's subroutine DECOMP.C */ + /* which is included in this program in a shortened version. */ + /* */ +-/* Reads a variable length compressed PDS image and outputs a */ +-/* fixed length uncompressed image file in PDS format with */ ++/* Reads a variable-length compressed PDS image and outputs a */ ++/* fixed-length uncompressed image file in PDS format with */ + /* labels, image histogram, engineering table, line header table */ + /* and an image with PDS, FITS, VICAR or no labels. If used on */ + /* a non-byte-swapped machine the image histogram is un-swapped. */ +@@ -108,7 +108,9 @@ + !defined(bsd43) && \ + !defined(aux) && \ + !defined(__bsdi__) && \ +- !defined(sequent) ++ !defined(sequent) && \ ++ !defined(__FreeBSD__) && \ ++ !defined(__OpenBSD__) + + # if defined(hp300) || defined(hp800) || defined(NeXT) + # include /* it's in 'sys' on HPs and NeXT */ +@@ -121,15 +123,17 @@ + + #include + +-#define TRUE 1 +-#define FALSE 0 ++#define TRUE 1 ++#define FALSE 0 + +- /* pc i/o defines */ +-#define O_BINARY 0x8000 /* file mode is binary */ ++#define NAMELEN 1024 /* inname and outname sizes */ + +- /* vax i/o defines */ +-#define RECORD_TYPE "rfm=fix" /* VAX fixed length output */ +-#define CTX "ctx=bin" /* no translation of \n */ ++ /* PC I/O defines */ ++#define O_BINARY 0x8000 /* file mode is binary */ ++ ++ /* VAX/VMS I/O defines */ ++#define RECORD_TYPE "rfm=fix" /* VAX/VMS fixed-length output */ ++#define CTX "ctx=bin" /* no translation of \n */ + #define FOP "fop=cif,sup" /* file processing ops */ + + typedef struct leaf { struct leaf *right; +@@ -176,7 +180,7 @@ + + int infile; + FILE *outfile; +-char inname[1024],outname[1024]; ++char inname[NAMELEN], outname[NAMELEN]; + int output_format; + int record_bytes, max_lines; + int line_samples, fits_pad; +@@ -185,8 +189,8 @@ + + /*************************************************/ + int main(argc,argv) +- int argc; +- char **argv; ++ int argc; ++ char **argv; + { + unsigned char ibuf[2048],obuf[2048]; + unsigned char blank=32; +@@ -200,12 +204,12 @@ + /* */ + /*********************************************************************/ + +- strcpy(inname," "); ++ strcpy(inname," "); + strcpy(outname," "); + output_format = 0; + + if (argc == 1); /* prompt user for parameters */ +- else if (argc == 2 && (strncmp(argv[1],"help",(size_t) 4) == 0 || ++ else if (argc == 2 && (strncmp(argv[1],"help",(size_t) 4) == 0 || + strncmp(argv[1],"HELP",(size_t) 4) == 0 || + strncmp(argv[1],"?", (size_t) 1) == 0)) { + fprintf(stderr, +@@ -214,18 +218,22 @@ + fprintf(stderr," infile - name of compressed image file. \n"); + fprintf(stderr," outfile - name of uncompressed output file.\n"); + fprintf(stderr," output format - selected from the following list:\n"); +- fprintf(stderr,"\n"); +- fprintf(stderr," 1 SFDU/PDS format [DEFAULT].\n"); +- fprintf(stderr," 2 FITS format. \n"); +- fprintf(stderr," 3 VICAR format. \n"); +- fprintf(stderr," 4 Unlabelled binary array. \n\n"); ++ fprintf(stderr,"\n"); ++ fprintf(stderr," 1 SFDU/PDS format [DEFAULT].\n"); ++ fprintf(stderr," 2 FITS format. \n"); ++ fprintf(stderr," 3 VICAR format. \n"); ++ fprintf(stderr," 4 Unlabelled binary array. \n\n"); + exit(1); +- } ++ } + else { +- strcpy(inname,argv[1]); +- if (argc >= 3) strcpy(outname,argv[2]); ++ strncpy(inname, argv[1], sizeof(inname)-1); ++ inname[sizeof(inname)-1] = '\0'; ++ if (argc >= 3) { ++ strncpy(outname, argv[2], sizeof(outname)-1); ++ outname[sizeof(outname)-1] = '\0'; ++ } + if (argc == 3) output_format = 1; +- if (argc == 4) sscanf(argv[3],"%d",&output_format); ++ if (argc == 4) sscanf(argv[3],"%d",&output_format); + } + + host = check_host(); +@@ -244,13 +252,13 @@ + case 4: no_labels(host); break; + } + +- if (record_bytes == 836) { /* set up values for image sizes */ ++ if (record_bytes == 836) { /* set up values for image sizes */ + max_lines = 800; + fits_pad = 2240; + line_samples = 800; + } + else { +- max_lines = 1056; ++ max_lines = 1056; + fits_pad = 1536; + line_samples = 1204; + } +@@ -394,12 +402,12 @@ + if (record_bytes == 1204) /* do checksum for viking */ + for (i=0; i 0 && line < max_lines); + +- if (record_bytes == 1204 && (outfile != stdout)) ++ if (record_bytes == 1204 && (outfile != stdout)) + /* print checksum for viking */ + fprintf(stderr,"\n Image label checksum = %d computed checksum = %d\n", + label_checksum,checksum); +@@ -425,33 +433,36 @@ + /*********************************************************************/ + + int get_files(host) +-int host; ++ int host; + { +- short shortint; + typedef long off_t; ++ short shortint; ++ char *s; + + if (inname[0] == ' ') { + printf("\nEnter name of file to be decompressed: "); +- gets (inname); ++ fgets(inname, sizeof(inname), stdin); ++ if ((s = strchr(inname, '\n')) != NULL) ++ *s = '\0'; + } + +- if (host == 1 | host == 2) { +- if ((infile = open(inname,O_RDONLY | O_BINARY)) <= 0) { +- fprintf(stderr,"\ncan't open input file: %s\n",inname); ++ if (host == 1 || host == 2) { ++ if ((infile = open(inname, O_RDONLY | O_BINARY)) <= 0) { ++ fprintf(stderr,"\ncan't open input file: %s\n", inname); + exit(1); + } + } +- else if (host == 3 | host == 5) { +- if ((infile = open(inname,O_RDONLY)) <= 0) { +- fprintf(stderr,"\ncan't open input file: %s\n",inname); ++ else if (host == 3 || host == 5) { ++ if ((infile = open(inname, O_RDONLY)) <= 0) { ++ fprintf(stderr,"\ncan't open input file: %s\n", inname); + exit(1); + } + + /****************************************************************/ +- /* If we are on a vax see if the file is in var length format. */ +- /* This logic is in here in case the vax file has been stored */ ++ /* If we are on a VAX see if the file is in var length format. */ ++ /* This logic is in here in case the VAX file has been stored */ + /* in fixed or undefined format. This might be necessary since */ +- /* vax variable length files can't be moved to other computer */ ++ /* VAX variable-length files can't be moved to other computer */ + /* systems with standard comm programs (kermit, for example). */ + /****************************************************************/ + +@@ -459,9 +470,9 @@ + read(infile,&shortint, (size_t) 2); + if (shortint > 0 && shortint < 80) { + host = 4; /* change host to 4 */ +- printf("This is not a VAX variable length file."); ++ printf("This is not a VAX variable-length file."); + } +- else printf("This is a VAX variable length file."); ++ else printf("This is a VAX variable-length file."); + lseek(infile,(off_t) 0,0); /* reposition to beginning of file */ + } + } +@@ -474,13 +485,17 @@ + printf("\n 3. VICAR format."); + printf("\n 4. Unlabelled binary array.\n"); + printf("\n Enter format number:"); +- gets(inname); ++ fgets(inname, sizeof(inname), stdin); ++ if ((s = strchr(inname, '\n')) != NULL) ++ *s = '\0'; + output_format = atoi(inname); + } while (output_format < 1 || output_format > 4); + + if (outname[0] == ' ') { + printf("\nEnter name of uncompressed output file: "); +- gets (outname); ++ fgets(outname, sizeof(outname), stdin); ++ if ((s = strchr(outname, '\n')) != NULL) ++ *s = '\0'; + } + + return(host); +@@ -495,68 +510,68 @@ + /*********************************************************************/ + + void open_files(host) +-int *host; ++ int *host; + { + if (*host == 1 || *host == 2 || *host == 5) { + if (outname[0] == '-') outfile=stdout; +- else if ((outfile = fopen(outname,"wb"))==NULL) { +- fprintf(stderr,"\ncan't open output file: %s\n",outname); ++ else if ((outfile = fopen(outname, "wb"))==NULL) { ++ fprintf(stderr,"\ncan't open output file: %s\n", outname); + exit(1); + } + } + + else if (*host == 3 || *host == 4) { + if (output_format == 1) { /* write PDS format blocks */ +- if (record_bytes == 836) { +- if ((outfile=fopen(outname,"w" ++ if (record_bytes == 836) { ++ if ((outfile=fopen(outname, "w" + #ifdef VMS + ,"mrs=836",FOP,CTX,RECORD_TYPE + #endif + ))==NULL) { +- fprintf(stderr,"\ncan't open output file: %s\n",outname); ++ fprintf(stderr,"\ncan't open output file: %s\n", outname); + exit(1); + } + } + else { +- if ((outfile=fopen(outname,"w" ++ if ((outfile=fopen(outname, "w" + #ifdef VMS + ,"mrs=1204",FOP,CTX,RECORD_TYPE + #endif + ))==NULL) { +- fprintf(stderr,"\ncan't open output file: %s\n",outname); ++ fprintf(stderr,"\ncan't open output file: %s\n", outname); + exit(1); + } + } + } + else if (output_format == 2) { /* write FITS format blocks */ +- if ((outfile=fopen(outname,"w" ++ if ((outfile=fopen(outname, "w" + #ifdef VMS + ,"mrs=2880",FOP,CTX,RECORD_TYPE + #endif + ))==NULL) { +- fprintf(stderr,"\ncan't open output file: %s\n",outname); ++ fprintf(stderr,"\ncan't open output file: %s\n", outname); + exit(1); + } + } + +- else { /* write fixed length records */ +- if (record_bytes == 836) { +- if ((outfile=fopen(outname,"w" ++ else { /* write fixed-length records */ ++ if (record_bytes == 836) { ++ if ((outfile=fopen(outname, "w" + #ifdef VMS + ,"mrs=800",FOP,CTX,RECORD_TYPE + #endif + ))==NULL) { +- fprintf(stderr,"\ncan't open output file: %s\n",outname); ++ fprintf(stderr,"\ncan't open output file: %s\n", outname); + exit(1); + } + } + else { +- if ((outfile=fopen(outname,"w" ++ if ((outfile=fopen(outname, "w" + #ifdef VMS + ,"mrs=1204",FOP,CTX,RECORD_TYPE + #endif + ))==NULL) { +- fprintf(stderr,"\ncan't open output file: %s\n",outname); ++ fprintf(stderr,"\ncan't open output file: %s\n", outname); + exit(1); + } + } +@@ -572,11 +587,11 @@ + /*********************************************************************/ + + void pds_labels(host) +- int host; ++ int host; + { +- char outstring[80],ibuf[2048]; ++ char ibuf[2048]; + unsigned char cr=13,lf=10,blank=32; +- short length,nlen,total_bytes,line,i; ++ short length,total_bytes,i; + + + total_bytes = 0; +@@ -613,11 +628,11 @@ + (size_t) 53,(size_t) 1,outfile); + else + fwrite("CCSD3ZF0000100000001NJPL3IF0PDS200000001 = SFDU_LABEL", +- (size_t) 53,(size_t) 1,outfile); ++ (size_t) 53,(size_t) 1,outfile); + + fprintf(outfile,"%c%c",cr,lf); + fwrite("/* FILE FORMAT AND LENGTH */",(size_t) 37,(size_t) 1, +- outfile); ++ outfile); + fprintf(outfile,"%c%c",cr,lf); + fwrite("RECORD_TYPE = FIXED_LENGTH",(size_t) 47, + (size_t) 1,outfile); +@@ -710,7 +725,7 @@ + } + else { + strcpy(ibuf+35,"60"); +- length = length - 2; ++ length = length - 2; + } + + fwrite(ibuf,(size_t) length,(size_t) 1,outfile); +@@ -730,7 +745,7 @@ + } + + else if ((i = strncmp(ibuf," ENCODING",(size_t) 9)) == 0); +- ++ + /*****************************************************************/ + /* delete the encoding type label in the image object */ + /*****************************************************************/ +@@ -787,10 +802,10 @@ + /*********************************************************************/ + + void fits_labels(host) +-int host; ++ int host; + { + char ibuf[2048],outstring[80]; +- short length,nlen,total_bytes,line,i; ++ short length,total_bytes,i; + unsigned char cr=13,lf=10,blank=32; + + do { +@@ -799,7 +814,7 @@ + /*****************************************************************/ + /* find the checksum and store in label_checksum */ + /*****************************************************************/ +- if ((i = strncmp(ibuf," CHECKSUM",(size_t) 9)) == 0) { ++ if ((i = strncmp(ibuf," CHECKSUM",(size_t) 9)) == 0) { + ibuf[length] = '\0'; + label_checksum = atol(ibuf+35); + } +@@ -842,7 +857,7 @@ + + if (record_bytes == 836) + strcpy(outstring,"NAXIS1 = 800"); +- else ++ else + strcpy(outstring,"NAXIS1 = 1204"); + + strcat(outstring," "); +@@ -862,7 +877,7 @@ + + strcpy(outstring,"END "); + strcat(outstring," "); +- ++ + fwrite(outstring,(size_t) 78,(size_t) 1,outfile); + fprintf(outfile,"%c%c",cr,lf); + total_bytes = total_bytes + 80; +@@ -871,6 +886,7 @@ + for (i=total_bytes; i<2880; i++) fputc(blank,outfile); + } + ++ + /*********************************************************************/ + /* */ + /* subroutine vicar_labels - write vicar labels to output file */ +@@ -878,11 +894,10 @@ + /*********************************************************************/ + + void vicar_labels(host) +-int host; +- ++ int host; + { + char ibuf[2048],outstring[80]; +- short length,nlen,total_bytes,line,i; ++ short length,total_bytes,i; + unsigned char cr=13,lf=10,blank=32; + + do { +@@ -890,7 +905,7 @@ + /*****************************************************************/ + /* find the checksum and store in label_checksum */ + /*****************************************************************/ +- if ((i = strncmp(ibuf," CHECKSUM",(size_t) 9)) == 0) { ++ if ((i = strncmp(ibuf," CHECKSUM",(size_t) 9)) == 0) { + ibuf[length] = '\0'; + label_checksum = atol(ibuf+35); + } +@@ -950,10 +965,10 @@ + /*********************************************************************/ + + void no_labels(host) +-int host; ++ int host; + { +- char ibuf[2048],outstring[80]; +- short length,nlen,total_bytes,line,i; ++ char ibuf[2048]; ++ short length,i; + + do { + length = read_var(ibuf,host); +@@ -961,7 +976,7 @@ + /*****************************************************************/ + /* find the checksum and store in label_checksum */ + /*****************************************************************/ +- if ((i = strncmp(ibuf," CHECKSUM",(size_t) 9)) == 0) { ++ if ((i = strncmp(ibuf," CHECKSUM",(size_t) 9)) == 0) { + ibuf[length] = '\0'; + label_checksum = atol(ibuf+35); + } +@@ -984,15 +999,16 @@ + open_files(&host); + } + ++ + /*********************************************************************/ + /* */ +-/* subroutine read_var - read variable length records from input file*/ ++/* subroutine read_var - read variable-length records from input file*/ + /* */ + /*********************************************************************/ + + int read_var(ibuf,host) +-char *ibuf; +-int host; ++ char *ibuf; ++ int host; + { + int length,result,nlen; + char temp; +@@ -1027,19 +1043,19 @@ + return (length); + + case 3: /*******************************************************/ +- /* VAX host with variable length support */ ++ /* VAX host with variable-length support */ + /*******************************************************/ + length = read(infile,ibuf,(size_t) 2048/* upper bound */); + return (length); + + case 4: /*******************************************************/ +- /* VAX host, but not a variable length file */ ++ /* VAX host, but not a variable-length file */ + /*******************************************************/ + length = 0; + result = read(infile,&length,(size_t) 2); + nlen = read(infile,ibuf,(size_t) length+(length%2)); + +- /* check to see if we crossed a vax record boundary */ ++ /* check to see if we crossed a VAX record boundary */ + while (nlen < length) + nlen += read(infile,ibuf+nlen,(size_t) length+(length%2)-nlen); + return (length); +@@ -1061,6 +1077,7 @@ + return 0; + } + ++ + /*********************************************************************/ + /* */ + /* subroutine check_host - find out what kind of machine we are on */ +@@ -1115,23 +1132,23 @@ + "Host 5 - 32 bit integers without swapping, no var len support."); + } + +- if ((*outname)!='-') fprintf(stderr,"%s\n",hostname); ++ if ((*outname) != '-') fprintf(stderr, "%s\n", hostname); + return(host); + } + + +-int swap_int(inval) /* swap 4 byte integer */ +- int inval; ++int swap_int(inval) /* swap 4 byte integer */ ++ int inval; + { +- union /* this union is used to swap 16 and 32 bit integers */ ++ union /* this union is used to swap 16 and 32 bit integers */ + { + char ichar[4]; + short slen; + int llen; + } onion; + char temp; +- +- /* byte swap the input field */ ++ ++ /* byte swap the input field */ + onion.llen = inval; + temp = onion.ichar[0]; + onion.ichar[0]=onion.ichar[3]; +@@ -1146,17 +1163,16 @@ + /**************************************************************************** + *_TITLE decompress - decompresses image lines stored in compressed format * + *_ARGS TYPE NAME I/O DESCRIPTION */ +- char *ibuf; /* I Compressed data buffer */ +- char *obuf; /* O Decompressed image line */ +- int *nin; /* I Number of bytes on input buffer */ +- int *nout; /* I Number of bytes in output buffer */ +- ++ char *ibuf; /* I Compressed data buffer */ ++ char *obuf; /* O Decompressed image line */ ++ int *nin; /* I Number of bytes on input buffer */ ++ int *nout; /* I Number of bytes in output buffer */ + { + /* The external root pointer to tree */ + extern NODE *tree; + + dcmprs(ibuf,obuf,nin,nout,tree); +- ++ + return; + } + +@@ -1165,8 +1181,7 @@ + /*************************************************************************** + *_TITLE decmpinit - initializes the Huffman tree * + *_ARGS TYPE NAME I/O DESCRIPTION */ +- int *hist; /* I First-difference histogram. */ +- ++ int *hist; /* I First-difference histogram. */ + { + extern NODE *tree; /* Huffman tree root pointer */ + tree = huff_tree(hist); +@@ -1178,8 +1193,7 @@ + /**************************************************************************** + *_TITLE huff_tree - constructs the Huffman tree; returns pointer to root * + *_ARGS TYPE NAME I/O DESCRIPTION */ +- int *hist; /* I First difference histogram */ +- ++ int *hist; /* I First difference histogram */ + { + /* Local variables used */ + int freq_list[512]; /* Histogram frequency list */ +@@ -1189,7 +1203,6 @@ + NODE **np; /* Node list pointer */ + + int num_freq; /* Number non-zero frequencies in histogram */ +- int sum; /* Sum of all frequencies */ + + short int num_nodes; /* Counter for DN initialization */ + short int cnt; /* Miscellaneous counter */ +@@ -1228,7 +1241,7 @@ + + j = 0; + for (i=4 ; --i >= 0 ; j = (j << 8) | *(cp+i)); +- ++ + /* Now make the assignment */ + *fp++ = j; + temp = new_node(num_nodes); +@@ -1341,7 +1354,7 @@ + l--; + if ( j <= freq_list) break; + } +- ++ + } + return; + } +@@ -1362,9 +1375,9 @@ + NODE *ptr = root; /* pointer to position in tree */ + unsigned char test; /* test byte for bit set */ + unsigned char idn; /* input compressed byte */ +- ++ + char odn; /* last dn value decompressed */ +- ++ + char *ilim = ibuf + *nin; /* end of compressed bytes */ + char *olim = obuf + *nout; /* end of output buffer */ + +@@ -1406,10 +1419,9 @@ + /**************************************************************************** + *_TITLE free_tree - free memory of all allocated nodes * + *_ARGS TYPE NAME I/O DESCRIPTION */ +- int *nfreed; /* O Return of total count of nodes * ++ int *nfreed; /* O Return of total count of nodes * + * freed. */ +- +-/* ++/* * + *_DESCR This routine is supplied to the programmer to free up all the * + * allocated memory required to build the huffman tree. The count * + * of the nodes freed is returned in the parameter 'nfreed'. The * +@@ -1417,11 +1429,10 @@ + * than one file per run, the program will not keep allocating new * + * memory without first deallocating all previous nodes associated * + * with the previous file decompression. * +- ++* * + *_HIST 16-AUG-89 Kris Becker USGS, Flagstaff Original Version * + *_END * + ****************************************************************************/ +- + { + int total_free = 0; + +@@ -1435,36 +1446,33 @@ + + int free_node(pnode,total_free) + /*************************************************************************** +-*_TITLE free_node - deallocates an allocated NODE pointer ++*_TITLE free_node - deallocates an allocated NODE pointer * + *_ARGS TYPE NAME I/O DESCRIPTION */ + NODE *pnode; /* I Pointer to node to free */ +- int total_free; /* I Total number of freed nodes */ +- +-/* ++ int total_free; /* I Total number of freed nodes */ ++/* * + *_DESCR free_node will check both right and left pointers of a node * + * and then free the current node using the free() C utility. * + * Note that all nodes attached to the node via right or left * + * pointers area also freed, so be sure that this is the desired * + * result when calling this routine. * +- ++* * + * This routine is supplied to allow successive calls to the * + * decmpinit routine. It will free up the memory allocated * + * by previous calls to the decmpinit routine. The call to free * +-* a previous huffman tree is: total = free_node(tree,(int) 0); * ++* a previous huffman tree is: total = free_node(tree,(int) 0); * + * This call must be done by the programmer application routine * + * and is not done by any of these routines. * + *_HIST 16-AUG-89 Kris Becker U.S.G.S Flagstaff Original Version */ + { + if (pnode == (NODE *) NULL) return(total_free); +- ++ + if (pnode->right != (NODE *) NULL) + total_free = free_node(pnode->right,total_free); + if (pnode->left != (NODE *) NULL) + total_free = free_node(pnode->left,total_free); +- ++ + free((char *) pnode); + return(total_free + 1); + } + +- +- +diff -ruN xv-3.10a/xcmap.c xv-3.10a-bugfixes/xcmap.c +--- xv-3.10a/xcmap.c 1995-01-03 13:14:52.000000000 -0800 ++++ xv-3.10a-bugfixes/xcmap.c 2005-03-20 15:51:59.000000000 -0800 +@@ -9,6 +9,9 @@ + + /* include files */ + #include ++#ifdef __STDC__ ++# include /* exit(), abs() */ ++#endif + #include + #include + +@@ -18,7 +21,7 @@ + #include + + #ifdef VMS +-#define index strchr ++# define index strchr + #endif + + typedef unsigned char byte; +@@ -75,50 +78,50 @@ + int i; + char *display, *geom; + XEvent event; +- ++ + cmd = argv[0]; + display = geom = NULL; +- +- ++ ++ + /*********************Options*********************/ +- ++ + for (i = 1; i < argc; i++) { + char *strind; +- ++ + if (!strncmp(argv[i],"-g", (size_t)2)) { /* geometry */ + i++; + geom = argv[i]; + continue; + } +- ++ + if (argv[i][0] == '=') { /* old-style geometry */ + geom = argv[i]; + continue; + } +- ++ + if (!strncmp(argv[i],"-d",(size_t) 2)) { /* display */ + i++; + display = argv[i]; + continue; + } +- ++ + strind = (char *) index(argv[i], ':'); /* old-style display */ + if(strind != NULL) { + display = argv[i]; + continue; + } +- ++ + Syntax(); + } +- +- ++ ++ + /*****************************************************/ +- ++ + /* Open up the display. */ +- ++ + if ( (theDisp=XOpenDisplay(display)) == NULL) + FatalError("can't open display"); +- ++ + theScreen = DefaultScreen(theDisp); + theCmap = DefaultColormap(theDisp, theScreen); + rootW = RootWindow(theDisp,theScreen); +@@ -126,9 +129,9 @@ + fcol = WhitePixel(theDisp,theScreen); + bcol = BlackPixel(theDisp,theScreen); + theVisual = DefaultVisual(theDisp,theScreen); +- ++ + dispcells = DisplayCells(theDisp, theScreen); +- ++ + if (dispcells>256) { + sprintf(tmpstr,"dispcells = %d. %s", + dispcells, "This program can only deal with <= 8-bit displays."); +@@ -140,27 +143,32 @@ + nxcells = nycells = 8; + else if (dispcells>4) + nxcells = nycells = 4; +- else ++ else if (dispcells>2) + nxcells = nycells = 2; +- ++ else ++ { ++ nxcells = 2; ++ nycells = 1; ++ } ++ + /**************** Create/Open X Resources ***************/ + if ((mfinfo = XLoadQueryFont(theDisp,FONT))==NULL) { + sprintf(tmpstr,"couldn't open '%s' font",FONT); + FatalError(tmpstr); + } +- ++ + mfont=mfinfo->fid; + XSetFont(theDisp,theGC,mfont); + XSetForeground(theDisp,theGC,fcol); + XSetBackground(theDisp,theGC,bcol); +- ++ + CreateMainWindow(cmd,geom,argc,argv); + Resize(WIDE,HIGH); +- +- XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask ++ ++ XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask | ButtonPressMask); + XMapWindow(theDisp,mainW); +- ++ + /**************** Main loop *****************/ + while (1) { + XNextEvent(theDisp, &event); +@@ -177,41 +185,41 @@ + switch (event->type) { + case Expose: { + XExposeEvent *exp_event = (XExposeEvent *) event; +- +- if (exp_event->window==mainW) ++ ++ if (exp_event->window==mainW) + DrawWindow(exp_event->x,exp_event->y, + exp_event->width, exp_event->height); + } + break; +- ++ + case ButtonPress: { + XButtonEvent *but_event = (XButtonEvent *) event; +- +- if (but_event->window == mainW && but_event->button == Button1) ++ ++ if (but_event->window == mainW && but_event->button == Button1) + TrackMouse(but_event->x, but_event->y); + } + break; +- ++ + case KeyPress: { + XKeyEvent *key_event = (XKeyEvent *) event; + KeySym ks; + XComposeStatus status; +- ++ + XLookupString(key_event,tmpstr,128,&ks,&status); + if (tmpstr[0]=='q' || tmpstr[0]=='Q') Quit(); + } + break; +- ++ + case ConfigureNotify: { + XConfigureEvent *conf_event = (XConfigureEvent *) event; +- +- if (conf_event->window == mainW && ++ ++ if (conf_event->window == mainW && + (conf_event->width != WIDE || conf_event->height != HIGH)) + Resize(conf_event->width, conf_event->height); + } + break; +- +- ++ ++ + case CirculateNotify: + case MapNotify: + case DestroyNotify: +@@ -220,7 +228,7 @@ + case UnmapNotify: + case MappingNotify: + case ClientMessage: break; +- ++ + default: /* ignore unexpected events */ + break; + } /* end of switch */ +@@ -262,24 +270,31 @@ + XSizeHints hints; + int i,x,y; + unsigned int w,h; +- ++ + WIDE = HIGH = 256; /* default window size */ +- ++ + x=y=w=h=1; + i=XParseGeometry(geom,&x,&y,&w,&h); +- if (i&WidthValue) WIDE = (int) w; +- if (i&HeightValue) HIGH = (int) h; +- +- if (i&XValue || i&YValue) hints.flags = USPosition; +- else hints.flags = PPosition; +- +- hints.flags |= USSize; +- +- if (i&XValue && i&XNegative) +- x = XDisplayWidth(theDisp,theScreen)-WIDE-abs(x); +- if (i&YValue && i&YNegative) +- y = XDisplayHeight(theDisp,theScreen)-HIGH-abs(y); +- ++ if (i&WidthValue) ++ { ++ WIDE = (int) w; ++ hints.flags |= USSize; ++ } ++ if (i&HeightValue) ++ { ++ HIGH = (int) h; ++ hints.flags |= USSize; ++ } ++ ++ if (i&XValue || i&YValue) ++ { ++ if (i&XNegative) ++ x = XDisplayWidth(theDisp,theScreen)-WIDE-abs(x); ++ if (i&YNegative) ++ y = XDisplayHeight(theDisp,theScreen)-HIGH-abs(y); ++ hints.flags |= USPosition; ++ } ++ + hints.x=x; hints.y=y; + hints.width = WIDE; hints.height = HIGH; + hints.max_width = DisplayWidth(theDisp,theScreen); +@@ -288,22 +303,22 @@ + hints.min_height = 16; + hints.width_inc = hints.height_inc = 16; + hints.flags |= PMaxSize | PMinSize | PResizeInc; +- ++ + xswa.background_pixel = bcol; + xswa.border_pixel = fcol; + xswa.cursor = XCreateFontCursor (theDisp, XC_top_left_arrow); + xswamask = CWBackPixel | CWBorderPixel | CWCursor; +- ++ + mainW = XCreateWindow(theDisp,rootW,x,y,(unsigned int) WIDE, +- (unsigned int) HIGH, 2, 0, ++ (unsigned int) HIGH, 2, 0, + (unsigned int) CopyFromParent, + CopyFromParent, xswamask, &xswa); +- ++ + XSetStandardProperties(theDisp,mainW,"xcmap","xcmap",None, + argv,argc,&hints); +- ++ + if (!mainW) FatalError("Can't open main window"); +- ++ + } + + +@@ -312,11 +327,11 @@ + int x,y,w,h; + { + int i,j,x1,y1,x2,y2; +- ++ + x1 = x / cWIDE; y1 = y / cHIGH; /* (x1,y1) (x2,y2): bounding */ + x2 = ((x+w) + cWIDE - 1) / cWIDE; /* rect in cell coords */ + y2 = ((y+h) + cHIGH - 1) / cHIGH; +- ++ + for (i=y1; i=WIDE) x=WIDE-1; + if (y<0) y=0; if (y>=HIGH) y=HIGH-1; +- ++ + if (!pvalup) { /* it's not up. make it so */ + if (y >= HIGH/2) pvaly = 0; else pvaly = HIGH - 12; + pvalup = 1; +@@ -378,30 +393,30 @@ + XClearArea(theDisp,mainW,0,pvaly, + (unsigned int) WIDE, (unsigned int) 13,True); + } +- ++ + x /= cWIDE; y /= cHIGH; +- ++ + pix = y * nxcells + x; +- ++ + if (pix != lastpix) { + XColor def; + char *sp; +- ++ + XSetForeground(theDisp,theGC,fcol); + lastpix = def.pixel = pix; + if (pix24-bit */ ++ for (i=0; i= 24)) best=i; ++ } ++ for (i=0; i24 && best<0) best = i; ++ } ++ for (i=0; i24-bit ? */ ++ if (vinfo[i].depth >= 24) best = i; + } + } + + if (best == -1) { /* look for a DirectColor, 24-bit or more (pref 24) */ + rvinfo.class = DirectColor; + if (vinfo) XFree((char *) vinfo); ++ + vinfo = XGetVisualInfo(theDisp, flags, &rvinfo, &numvis); + if (vinfo) { +- for (i=0, best = -1; i= 24)) best=i; ++ } ++ for (i=0; i24 && best<0) best = i; ++ } ++ for (i=0; i24-bit ? */ ++ if (vinfo[i].depth >= 24) best = i; + } + } + } +- ++ + if (best>=0 && best= 0) { ++ if (vclass >= 0) { + rvinfo.class = vclass; vinfomask = VisualClassMask; + } + else { rvinfo.visualid = vid; vinfomask = VisualIDMask; } +- ++ + rvinfo.screen = theScreen; + vinfomask |= VisualScreenMask; + +@@ -429,9 +443,9 @@ + /* make linear colormap for DirectColor visual */ + if (theVisual->class == DirectColor) makeDirectCmap(); + +- defaultVis = (XVisualIDFromVisual(theVisual) == ++ defaultVis = (XVisualIDFromVisual(theVisual) == + XVisualIDFromVisual(DefaultVisual(theDisp, DefaultScreen(theDisp)))); +- ++ + + /* turn GraphicsExposures OFF in the default GC */ + { +@@ -456,12 +470,12 @@ + Atom actual_type; + int actual_format; + unsigned long nitems, bytesafter; +- Window *newRoot = NULL; ++ byte *newRoot = NULL; /* byte instead of Window avoids type-pun warning */ + XWindowAttributes xwa; + if (XGetWindowProperty (theDisp, children[i], __SWM_VROOT, 0L, 1L, + False, XA_WINDOW, &actual_type, &actual_format, &nitems, + &bytesafter, (unsigned char **) &newRoot) == Success && newRoot) { +- vrootW = *newRoot; ++ vrootW = *(Window *)newRoot; + XGetWindowAttributes(theDisp, vrootW, &xwa); + vrWIDE = xwa.width; vrHIGH = xwa.height; + dispDEEP = xwa.depth; +@@ -492,7 +506,7 @@ + XColor fc, bc; + fc.red = fc.green = fc.blue = 0xffff; + bc.red = bc.green = bc.blue = 0x0000; +- ++ + XRecolorCursor(theDisp, zoom, &fc, &bc); + } + +@@ -541,7 +555,7 @@ + + + /* set up fg,bg colors */ +- fg = black; bg = white; ++ fg = black; bg = white; + if (fgstr && XParseColor(theDisp, theCmap, fgstr, &ecdef) && + xvAllocColor(theDisp, theCmap, &ecdef)) { + fg = ecdef.pixel; +@@ -590,7 +604,7 @@ + if (theVisual->class == StaticGray || theVisual->class == GrayScale) + mono = 1; + } +- ++ + + + iconPix = MakePix1(rootW, icon_bits, icon_width, icon_height); +@@ -598,27 +612,27 @@ + riconPix = MakePix1(rootW, runicon_bits, runicon_width, runicon_height); + riconmask= MakePix1(rootW, runiconm_bits, runiconm_width,runiconm_height); + +- if (!iconPix || !iconmask || !riconPix || !riconmask) ++ if (!iconPix || !iconmask || !riconPix || !riconmask) + FatalError("Unable to create icon pixmaps\n"); + +- gray50Tile = XCreatePixmapFromBitmapData(theDisp, rootW, ++ gray50Tile = XCreatePixmapFromBitmapData(theDisp, rootW, + (char *) cboard50_bits, +- cboard50_width, cboard50_height, ++ cboard50_width, cboard50_height, + infofg, infobg, dispDEEP); + if (!gray50Tile) FatalError("Unable to create gray50Tile bitmap\n"); + +- gray25Tile = XCreatePixmapFromBitmapData(theDisp, rootW, ++ gray25Tile = XCreatePixmapFromBitmapData(theDisp, rootW, + (char *) gray25_bits, +- gray25_width, gray25_height, ++ gray25_width, gray25_height, + infofg, infobg, dispDEEP); + if (!gray25Tile) FatalError("Unable to create gray25Tile bitmap\n"); + + + /* try to load fonts */ +- if ( (mfinfo = XLoadQueryFont(theDisp,FONT1))==NULL && +- (mfinfo = XLoadQueryFont(theDisp,FONT2))==NULL && +- (mfinfo = XLoadQueryFont(theDisp,FONT3))==NULL && +- (mfinfo = XLoadQueryFont(theDisp,FONT4))==NULL && ++ if ( (mfinfo = XLoadQueryFont(theDisp,FONT1))==NULL && ++ (mfinfo = XLoadQueryFont(theDisp,FONT2))==NULL && ++ (mfinfo = XLoadQueryFont(theDisp,FONT3))==NULL && ++ (mfinfo = XLoadQueryFont(theDisp,FONT4))==NULL && + (mfinfo = XLoadQueryFont(theDisp,FONT5))==NULL) { + sprintf(str, + "couldn't open the following fonts:\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s", +@@ -632,14 +646,14 @@ + + if (monofontname) { + monofinfo = XLoadQueryFont(theDisp, monofontname); +- if (!monofinfo) fprintf(stderr,"xv: unable to load font '%s'\n", ++ if (!monofinfo) fprintf(stderr,"xv: unable to load font '%s'\n", + monofontname); +- } ++ } + + if (!monofinfo) { +- if ((monofinfo = XLoadQueryFont(theDisp,MFONT1))==NULL && +- (monofinfo = XLoadQueryFont(theDisp,MFONT2))==NULL && +- (monofinfo = XLoadQueryFont(theDisp,MFONT3))==NULL && ++ if ((monofinfo = XLoadQueryFont(theDisp,MFONT1))==NULL && ++ (monofinfo = XLoadQueryFont(theDisp,MFONT2))==NULL && ++ (monofinfo = XLoadQueryFont(theDisp,MFONT3))==NULL && + (monofinfo = XLoadQueryFont(theDisp,MFONT4))==NULL) { + sprintf(str,"couldn't open %s fonts:\n\t%s\n\t%s\n\t%s\n\t%s", + "any of the following", +@@ -649,28 +663,28 @@ + } + + monofont=monofinfo->fid; +- + +- +- ++ ++ ++ + /* if ncols wasn't set, set it to 2^dispDEEP, unless dispDEEP=1, in which + case ncols = 0; (ncols = max number of colors allocated. on 1-bit + displays, no colors are allocated */ +- ++ + if (ncols == -1) { + if (dispDEEP>1) ncols = 1 << ((dispDEEP>8) ? 8 : dispDEEP); + else ncols = 0; + } + else if (ncols>256) ncols = 256; /* so program doesn't blow up */ +- +- ++ ++ + GenerateFSGamma(); /* has to be done before 'OpenBrowse()' is called */ +- +- +- ++ ++ ++ + /* no filenames. build one-name (stdio) list (if stdinflag) */ + if (numnames==0) { +- if (stdinflag) { ++ if (stdinflag) { + /* have to malloc namelist[0] so we can free it in deleteFromList() */ + namelist[0] = (char *) malloc(strlen(STDINSTR) + 1); + if (!namelist[0]) FatalError("unable to to build namelist[0]"); +@@ -679,16 +693,16 @@ + } + else namelist[0] = NULL; + } +- ++ + if (numnames) makeDispNames(); +- +- +- if (viewonly || autoquit) { +- imap = ctrlmap = gmap = browmap = cmtmap = 0; ++ ++ ++ if (viewonly || autoquit) { ++ imap = ctrlmap = gmap = browmap = cmtmap = 0; + novbrowse = 1; + } +- +- ++ ++ + /* create the info box window */ + CreateInfo(infogeom); + XSelectInput(theDisp, infoW, ExposureMask | ButtonPressMask | KeyPressMask +@@ -698,12 +712,12 @@ + RedrawInfo(0,0,1000,1000); /* explicit draw if mapped */ + XFlush(theDisp); + } +- +- ++ ++ + /* create the control box window */ + CreateCtrl(ctrlgeom); + epicMode = EM_RAW; SetEpicMode(); +- ++ + XSelectInput(theDisp, ctrlW, ExposureMask | ButtonPressMask | KeyPressMask + | StructureNotifyMask); + if (ctrlmap < 0) { /* map iconified */ +@@ -719,22 +733,22 @@ + RedrawCtrl(0,0,1000,1000); /* explicit draw if mapped */ + XFlush(theDisp); + } +- ++ + fixDispNames(); + ChangedCtrlList(); +- ++ + /* disable root modes if using non-default visual */ + if (!defaultVis) { + for (i=RMB_ROOT; ired_mask; + gmask = theVisual->green_mask; +@@ -849,22 +863,22 @@ + + if (rshift<0) rmask = rmask << (-rshift); + else rmask = rmask >> rshift; +- ++ + if (gshift<0) gmask = gmask << (-gshift); + else gmask = gmask >> gshift; +- ++ + if (bshift<0) bmask = bmask << (-bshift); + else bmask = bmask >> bshift; + + + cmaplen = theVisual->map_entries; + if (cmaplen>256) cmaplen=256; +- ++ + + /* try to alloc a 'cmaplen' long grayscale colormap. May not get all + entries for whatever reason. Build table 'directConv[]' that + maps range [0..(cmaplen-1)] into set of colors we did get */ +- ++ + for (i=0; i<256; i++) { origgot[i] = 0; directConv[i] = 0; } + + for (i=numgot=0; i= 0 && !origgot[i-numbak]) numbak++; + while ((i + numfwd) < cmaplen && !origgot[i+numfwd]) numfwd++; +- ++ + if (i-numbak<0 || !origgot[i-numbak]) numbak = 999; + if (i+numfwd>=cmaplen || !origgot[i+numfwd]) numfwd = 999; +- ++ + if (numbak-8 conv.*/ + conv24 = CONV24_SLOW; +- ++ + else if (!argcmp(argv[i],"-smooth",3,1,&autosmooth)); /* autosmooth */ + else if (!argcmp(argv[i],"-stdcmap",3,1,&stdcmap)); /* use stdcmap */ + + else if (!argcmp(argv[i],"-tgeometry",2,0,&pm)) /* textview geom */ + { if (++i 15) { +@@ -1498,7 +1512,7 @@ + fprintf(stderr," (Valid values: 1, 2, 3, 4)\n"); + + preset = 0; +- } ++ } + + if (waitsec < 0) noFreeCols = 0; /* disallow nfc if not doing slideshow */ + if (noFreeCols && perfect) { perfect = 0; owncmap = 1; } +@@ -1512,13 +1526,13 @@ + + defaultCmapMode = colorMapMode; /* default mode for 8-bit images */ + +- if (nopos) { ++ if (nopos) { + maingeom = infogeom = ctrlgeom = gamgeom = browgeom = textgeom = NULL; + cmtgeom = NULL; + } + + /* if -root and -maxp, disallow 'integer' tiling modes */ +- if (useroot && fixedaspect && automax && !rmodeset && ++ if (useroot && fixedaspect && automax && !rmodeset && + (rootMode == RM_TILE || rootMode == RM_IMIRROR)) + rootMode = RM_CSOLID; + } +@@ -1656,7 +1670,7 @@ + /***********************************/ + static void rmodeSyntax() + { +- fprintf(stderr,"%s: unknown root mode '%d'. Valid modes are:\n", ++ fprintf(stderr,"%s: unknown root mode '%d'. Valid modes are:\n", + cmd, rootMode); + fprintf(stderr,"\t0: tiling\n"); + fprintf(stderr,"\t1: integer tiling\n"); +@@ -1679,13 +1693,11 @@ + int minlen, plusallowed; + int *plusminus; + { +- /* does a string compare between a1 and a2. To return '0', a1 and a2 ++ /* does a string compare between a1 and a2. To return '0', a1 and a2 + must match to the length of a2, and that length has to + be at least 'minlen'. Otherwise, return non-zero. plusminus set to '1' + if '-option', '0' if '+option' */ + +- int i; +- + if ((strlen(a1) < (size_t) minlen) || (strlen(a2) < (size_t) minlen)) + return 1; + if (strlen(a1) > strlen(a2)) return 1; +@@ -1694,7 +1706,7 @@ + + if (a1[0]=='-' || (plusallowed && a1[0]=='+')) { + /* only set if we match */ +- *plusminus = (a1[0] == '-'); ++ *plusminus = (a1[0] == '-'); + return 0; + } + +@@ -1721,8 +1733,7 @@ + int oldCXOFF, oldCYOFF, oldCWIDE, oldCHIGH, wascropped; + char *tmp; + char *fullname, /* full name of the original file */ +- filename[512], /* full name of file to load (could be /tmp/xxx)*/ +- globnm[512]; /* globbed version of fullname of orig file */ ++ filename[512]; /* full name of file to load (could be /tmp/xxx)*/ + + xvbzero((char *) &pinfo, sizeof(PICINFO)); + +@@ -1748,7 +1759,7 @@ + + /* if we're not loading next or prev page in a multi-page doc, kill off + page files */ +- if (strlen(pageBaseName) && filenum!=OP_PAGEDN && filenum!=OP_PAGEUP) ++ if (strlen(pageBaseName) && filenum!=OP_PAGEDN && filenum!=OP_PAGEUP) + killpage = 1; + + +@@ -1799,7 +1810,7 @@ + } + + else if (filenum == PADDED) { +- /* need fullfname (used for window/icon name), ++ /* need fullfname (used for window/icon name), + basefname(compute from fullfname) */ + + i = LoadPad(&pinfo, fullfname); +@@ -1864,7 +1875,7 @@ + + + /* chop off trailing ".Z", ".z", or ".gz" from displayed basefname, if any */ +- if (strlen(basefname) > (size_t) 2 && ++ if (strlen(basefname) > (size_t) 2 && + strcmp(basefname+strlen(basefname)-2,".Z")==0) + basefname[strlen(basefname)-2]='\0'; + else { +@@ -1872,7 +1883,7 @@ + if (strlen(basefname)>2 && strcmp(basefname+strlen(basefname)-2,".Z")==0) + basefname[strlen(basefname)-2]='\0'; + +- else if (strlen(basefname)>3 && ++ else if (strlen(basefname)>3 && + strcmp(basefname+strlen(basefname)-3,".gz")==0) + basefname[strlen(basefname)-3]='\0'; + #endif /* GUNZIP */ +@@ -1881,7 +1892,7 @@ + + if (filenum == LOADPIC && ISPIPE(fullname[0])) { + /* if we're reading from a pipe, 'filename' will have the /tmp/xvXXXXXX +- filename, and we can skip a lot of stuff: (such as prepending ++ filename, and we can skip a lot of stuff: (such as prepending + 'initdir' to relative paths, dealing with reading from stdin, etc. */ + + /* at this point, fullname = "! do some commands", +@@ -1891,11 +1902,11 @@ + + else { /* NOT reading from a PIPE */ + +- /* if fullname doesn't start with a '/' (ie, it's a relative path), +- (and it's not LOADPIC and it's not the special case '') ++ /* if fullname doesn't start with a '/' (ie, it's a relative path), ++ (and it's not LOADPIC and it's not the special case '') + then we need to prepend a directory name to it: +- +- prepend 'initdir', ++ ++ prepend 'initdir', + if we have a searchdir (ie, we have multiple places to look), + see if such a file exists (via fopen()), + if it does, we're done. +@@ -1904,7 +1915,7 @@ + if it does, we're done. + if it doesn't, remove all prepended directories, and fall through + to error code below. */ +- ++ + if (filenum!=LOADPIC && fullname[0]!='/' && strcmp(fullname,STDINSTR)!=0) { + char *tmp1; + +@@ -1954,26 +1965,30 @@ + } + } + } +- ++ + strcpy(filename, fullname); +- +- ++ ++ + /* if the file is STDIN, write it out to a temp file */ + + if (strcmp(filename,STDINSTR)==0) { +- FILE *fp; ++ FILE *fp = NULL; + +-#ifndef VMS ++#ifndef VMS + sprintf(filename,"%s/xvXXXXXX",tmpdir); + #else /* it is VMS */ + sprintf(filename, "[]xvXXXXXX"); + #endif ++ ++#ifdef USE_MKSTEMP ++ fp = fdopen(mkstemp(filename), "w"); ++#else + mktemp(filename); ++ fp = fopen(filename, "w"); ++#endif ++ if (!fp) FatalError("openPic(): can't write temporary file"); + + clearerr(stdin); +- fp = fopen(filename,"w"); +- if (!fp) FatalError("openPic(): can't write temporary file"); +- + while ( (i=getchar()) != EOF) putc(i,fp); + fclose(fp); + +@@ -2003,7 +2018,7 @@ + ) { + + filetype = ReadFileType(tmpname); /* and try again */ +- ++ + /* if we made a /tmp file (from stdin, etc.) won't need it any more */ + if (strcmp(fullname,filename)!=0) unlink(filename); + +@@ -2084,7 +2099,7 @@ + /**************/ + /* SUCCESS!!! */ + /**************/ +- ++ + + GOTIMAGE: + /* successfully read this picture. No failures from here on out +@@ -2097,7 +2112,7 @@ + if (conv24MB.flags[CONV24_LOCK]) { /* locked */ + if (pinfo.type==PIC24 && picType==PIC8) { /* 24 -> 8 bit */ + byte *pic8; +- pic8 = Conv24to8(pinfo.pic, pinfo.w, pinfo.h, ncols, ++ pic8 = Conv24to8(pinfo.pic, pinfo.w, pinfo.h, ncols, + pinfo.r, pinfo.g, pinfo.b); + free(pinfo.pic); + pinfo.pic = pic8; +@@ -2108,7 +2123,7 @@ + + else if (pinfo.type!=PIC24 && picType==PIC24) { /* 8 -> 24 bit */ + byte *pic24; +- pic24 = Conv8to24(pinfo.pic, pinfo.w, pinfo.h, ++ pic24 = Conv8to24(pinfo.pic, pinfo.w, pinfo.h, + pinfo.r, pinfo.g, pinfo.b); + free(pinfo.pic); + pinfo.pic = pic24; +@@ -2144,7 +2159,7 @@ + + if (mainW && !useroot) { + /* avoid generating excess configure events while we resize the window */ +- XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask ++ XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask + | ButtonPressMask | KeyReleaseMask + | EnterWindowMask | LeaveWindowMask); +@@ -2162,7 +2177,7 @@ + pHIGH = pinfo.h; + if (pinfo.frmType >=0) SetDirSaveMode(F_FORMAT, pinfo.frmType); + if (pinfo.colType >=0) SetDirSaveMode(F_COLORS, pinfo.colType); +- ++ + SetISTR(ISTR_FORMAT, pinfo.fullInfo); + strcpy(formatStr, pinfo.shrtInfo); + picComments = pinfo.comment; +@@ -2195,11 +2210,11 @@ + + + SetISTR(ISTR_INFO,formatStr); +- ++ + SetInfoMode(INF_PART); +- SetISTR(ISTR_FILENAME, +- (filenum==DFLTPIC || filenum==GRABBED || frompipe) +- ? "" : basefname); ++ SetISTR(ISTR_FILENAME, "%s", ++ (filenum==DFLTPIC || filenum==GRABBED || frompipe) ? ++ "" : basefname); + + SetISTR(ISTR_RES,"%d x %d",pWIDE,pHIGH); + SetISTR(ISTR_COLOR, ""); +@@ -2219,7 +2234,7 @@ + + + /* handle various 'auto-whatever' command line options +- Note that if 'frompoll' is set, things that have to do with ++ Note that if 'frompoll' is set, things that have to do with + setting the expansion factor are skipped, as we'll want it to + display in the (already-existing) window at the same size */ + +@@ -2254,7 +2269,7 @@ + w = eWIDE; h = (w*3) / 4; + eWIDE = w; eHIGH = h; + } +- ++ + + if (eWIDE != cWIDE || eHIGH != cHIGH) epic = (byte *) NULL; + +@@ -2306,14 +2321,14 @@ + aspWIDE = eWIDE; aspHIGH = eHIGH; /* aspect-corrected eWIDE,eHIGH */ + + if (hexpand < 0.0) eWIDE=(int)(aspWIDE / -hexpand); /* neg: reciprocal */ +- else eWIDE=(int)(aspWIDE * hexpand); ++ else eWIDE=(int)(aspWIDE * hexpand); + if (vexpand < 0.0) eHIGH=(int)(aspHIGH / -vexpand); /* neg: reciprocal */ +- else eHIGH=(int)(aspHIGH * vexpand); ++ else eHIGH=(int)(aspHIGH * vexpand); + + if (maingeom) { + /* deal with geometry spec. Note, they shouldn't have given us + *both* an expansion factor and a geomsize. The geomsize wins out */ +- ++ + int i,x,y,gewide,gehigh; u_int w,h; + + gewide = eWIDE; gehigh = eHIGH; +@@ -2321,11 +2336,11 @@ + + if (i&WidthValue) gewide = (int) w; + if (i&HeightValue) gehigh = (int) h; +- ++ + /* handle case where the pinheads only specified width *or * height */ + if (( i&WidthValue && ~i&HeightValue) || + (~i&WidthValue && i&HeightValue)) { +- ++ + if (i&WidthValue) { gehigh = (aspHIGH * gewide) / pWIDE; } + else { gewide = (aspWIDE * gehigh) / pHIGH; } + } +@@ -2391,7 +2406,7 @@ + + /* if we're using an integer tiled root mode, truncate eWIDE/eHIGH to + be an integer divisor of the display size */ +- ++ + if (useroot && (rootMode == RM_TILE || rootMode == RM_IMIRROR)) { + /* make picture size a divisor of the rootW size. round down */ + i = (dispWIDE + eWIDE-1) / eWIDE; eWIDE = (dispWIDE + i-1) / i; +@@ -2419,7 +2434,7 @@ + + /* 'dithering' makes no sense in 24-bit mode */ + if (picType == PIC24 && epicMode == EM_DITH) epicMode = EM_RAW; +- ++ + SetEpicMode(); + } /* end of !frompoll */ + +@@ -2450,7 +2465,7 @@ + if (useroot) mainW = vrootW; + if (eWIDE != cWIDE || eHIGH != cHIGH) epic = (byte *) NULL; + +- NewPicGetColors(autonorm, autohisteq); ++ NewPicGetColors(autonorm, autohisteq); + + GenerateEpic(eWIDE, eHIGH); /* want to dither *after* color allocs */ + CreateXImage(); +@@ -2474,7 +2489,7 @@ + SetISTR(ISTR_INFO,"%s %s %s", formatStr, + (picType==PIC8) ? "8-bit mode." : "24-bit mode.", + tmp); +- ++ + SetInfoMode(INF_FULL); + if (freename) free(fullname); + +@@ -2499,16 +2514,16 @@ + + return 1; + +- ++ + FAILED: + SetCursors(-1); + KillPageFiles(pinfo.pagebname, pinfo.numpages); + +- if (fullname && strcmp(fullname,filename)!=0) ++ if (fullname && strcmp(fullname,filename)!=0) + unlink(filename); /* kill /tmp file */ + if (freename) free(fullname); + +- if (!fromint && !polling && filenum>=0 && filenum=0 && filenum='1' && ++ else if (magicno[0] == 'P' && magicno[1]>='1' && + magicno[1]<='6') rv = RFT_PBM; + + /* note: have to check XPM before XBM, as first 2 chars are the same */ +@@ -2586,7 +2601,7 @@ + + else if (magicno[0]==0x0a && magicno[1] <= 5) rv = RFT_PCX; + +- else if (strncmp((char *) magicno, "FORM", (size_t) 4)==0 && ++ else if (strncmp((char *) magicno, "FORM", (size_t) 4)==0 && + strncmp((char *) magicno+8, "ILBM", (size_t) 4)==0) rv = RFT_IFF; + + else if (magicno[0]==0 && magicno[1]==0 && +@@ -2597,12 +2612,12 @@ + else if (magicno[4]==0x00 && magicno[5]==0x00 && + magicno[6]==0x00 && magicno[7]==0x07) rv = RFT_XWD; + +- else if (strncmp((char *) magicno,"SIMPLE ", (size_t) 8)==0 && ++ else if (strncmp((char *) magicno,"SIMPLE ", (size_t) 8)==0 && + magicno[29] == 'T') rv = RFT_FITS; +- ++ + + #ifdef HAVE_JPEG +- else if (magicno[0]==0xff && magicno[1]==0xd8 && ++ else if (magicno[0]==0xff && magicno[1]==0xd8 && + magicno[2]==0xff) rv = RFT_JFIF; + #endif + +@@ -2668,7 +2683,7 @@ + #endif + + #ifdef HAVE_TIFF +- case RFT_TIFF: rv = LoadTIFF (fname, pinfo); break; ++ case RFT_TIFF: rv = LoadTIFF (fname, pinfo, quick); break; + #endif + + #ifdef HAVE_PDS +@@ -2703,7 +2718,7 @@ + to what it was. necessary because uncompress doesn't handle files + that don't end with '.Z' */ + +- if (strlen(name) >= (size_t) 2 && ++ if (strlen(name) >= (size_t) 2 && + strcmp(name + strlen(name)-2,".Z")!=0 && + strcmp(name + strlen(name)-2,".z")!=0) { + strcpy(namez, name); +@@ -2721,34 +2736,42 @@ + #endif /* not VMS and not GUNZIP */ + + +- + #ifndef VMS + sprintf(uncompname, "%s/xvuXXXXXX", tmpdir); ++#else ++ strcpy(uncompname, "[]xvuXXXXXX"); ++#endif ++ ++#ifdef USE_MKSTEMP ++ close(mkstemp(uncompname)); ++#else + mktemp(uncompname); ++#endif ++ ++#ifndef VMS + sprintf(buf,"%s -c %s >%s", UNCOMPRESS, fname, uncompname); + #else /* it IS VMS */ +- strcpy(uncompname, "[]xvuXXXXXX"); +- mktemp(uncompname); +-# ifdef GUNZIP ++# ifdef GUNZIP + sprintf(buf,"%s %s %s", UNCOMPRESS, fname, uncompname); +-# else ++# else + sprintf(buf,"%s %s", UNCOMPRESS, fname); +-# endif ++# endif + #endif + + SetISTR(ISTR_INFO, "Uncompressing '%s'...", BaseName(fname)); + #ifndef VMS +- if (system(buf)) { ++ if (system(buf)) + #else +- if (!system(buf)) { ++ if (!system(buf)) + #endif ++ { + SetISTR(ISTR_INFO, "Unable to uncompress '%s'.", BaseName(fname)); + Warning(); + return 0; + } + +-#ifndef VMS +- /* if we renamed the file to end with a .Z for the sake of 'uncompress', ++#ifndef VMS ++ /* if we renamed the file to end with a .Z for the sake of 'uncompress', + rename it back to what it once was... */ + + if (strlen(namez)) { +@@ -2769,7 +2792,7 @@ + } + */ + #endif /* not VMS */ +- ++ + return 1; + } + +@@ -2798,11 +2821,11 @@ + { + int i; + +- /* some stuff that necessary whenever running an algorithm or ++ /* some stuff that necessary whenever running an algorithm or + installing a new 'pic' (or switching 824 modes) */ + + numcols = 0; /* gets set by SortColormap: set to 0 for PIC24 images */ +- for (i=0; i<256; i++) cols[i]=infobg; ++ for (i=0; i<256; i++) cols[i]=infobg; + + if (picType == PIC8) { + byte trans[256]; +@@ -2811,18 +2834,18 @@ + } + + if (picType == PIC8) { +- /* see if image is a b/w bitmap. ++ /* see if image is a b/w bitmap. + If so, use '-black' and '-white' colors */ + if (numcols == 2) { + if ((rMap[0] == gMap[0] && rMap[0] == bMap[0] && rMap[0] == 255) && + (rMap[1] == gMap[1] && rMap[1] == bMap[1] && rMap[1] == 0)) { + /* 0=wht, 1=blk */ +- rMap[0] = (whtRGB>>16)&0xff; +- gMap[0] = (whtRGB>>8)&0xff; ++ rMap[0] = (whtRGB>>16)&0xff; ++ gMap[0] = (whtRGB>>8)&0xff; + bMap[0] = whtRGB&0xff; + + rMap[1] = (blkRGB>>16)&0xff; +- gMap[1] = (blkRGB>>8)&0xff; ++ gMap[1] = (blkRGB>>8)&0xff; + bMap[1] = blkRGB&0xff; + } + +@@ -2852,10 +2875,10 @@ + } + + /* save the desired RGB colormap (before dicking with it) */ +- for (i=0; i /tmp/xv******" appended). ++ * runs command (with "> /tmp/xv******" appended). + * returns "/tmp/xv******" in fname + * returns '0' if everything's cool, '1' on error + */ +@@ -2899,8 +2922,12 @@ + if (!cmd || (strlen(cmd) < (size_t) 2)) return 1; + + sprintf(tmpname,"%s/xvXXXXXX", tmpdir); ++#ifdef USE_MKSTEMP ++ close(mkstemp(tmpname)); ++#else + mktemp(tmpname); +- if (tmpname[0] == '\0') { /* mktemp() blew up */ ++#endif ++ if (tmpname[0] == '\0') { /* mktemp() or mkstemp() blew up */ + sprintf(str,"Unable to create temporary filename."); + ErrPopUp(str, "\nHow unlikely!"); + return 1; +@@ -2946,7 +2973,7 @@ + while (numnames>0) { + if (openPic(0)) return; /* success */ + else { +- if (polling && !i) ++ if (polling && !i) + fprintf(stderr,"%s: POLLING: Waiting for file '%s' \n\tto %s\n", + cmd, namelist[0], "be created, or whatever..."); + i = 1; +@@ -2970,11 +2997,11 @@ + int i; + + if (curname>=0) i = curname+1; +- else if (nList.selected >= 0 && nList.selected < numnames) ++ else if (nList.selected >= 0 && nList.selected < numnames) + i = nList.selected; + else i = 0; + +- ++ + while (i=0) i = curname+1; +- else if (nList.selected >= 0 && nList.selected < numnames) ++ else if (nList.selected >= 0 && nList.selected < numnames) + i = nList.selected; + else i = 0; + +@@ -3015,7 +3042,7 @@ + if (!randomShow) { + + if (curname>=0) i = curname+1; +- else if (nList.selected >= 0 && nList.selected < numnames) ++ else if (nList.selected >= 0 && nList.selected < numnames) + i = nList.selected; + else i = 0; + +@@ -3044,7 +3071,7 @@ + int i; + + if (curname>0) i = curname-1; +- else if (nList.selected>0 && nList.selected < numnames) ++ else if (nList.selected>0 && nList.selected < numnames) + i = nList.selected - 1; + else i = numnames-1; + +@@ -3089,7 +3116,7 @@ + loadList = (byte *) malloc((size_t) listLen); + for (k=0; k= 0, a filenum to GOTO */ + + int i; + +- /* if curname<0 (there is no 'current' file), 'Next' means view the ++ /* if curname<0 (there is no 'current' file), 'Next' means view the + selected file (or the 0th file, if no selection either), and 'Prev' means + view the one right before the selected file */ + +@@ -3133,7 +3160,7 @@ + } + + else if (i==PREVPIC) { +- if (curname>0 || (curname<0 && nList.selected>0)) ++ if (curname>0 || (curname<0 && nList.selected>0)) + openPrevPic(); + } + +@@ -3151,7 +3178,7 @@ + + else if (i==THISNEXT) { /* open current sel, 'next' until success */ + int j; +- j = nList.selected; ++ j = nList.selected; + if (j<0) j = 0; + while (j normaspect && grow)) { /* modify height */ + exp = curaspect / normaspect; + *h = (int) (eHIGH * exp + .5); + } + + /* if too narrow & grow, grow width. too wide and shrink, shrink width */ +- if ((curaspect < normaspect && grow) || ++ if ((curaspect < normaspect && grow) || + (curaspect > normaspect && !grow)) { /* modify width */ + exp = normaspect / curaspect; + *w = (int) (eWIDE * exp + .5); +@@ -3423,22 +3450,22 @@ + suffix = namelist[0]; + prelen = 0; /* length of prefix to be removed */ + n = i = 0; /* shut up pesky compiler warnings */ +- ++ + done = 0; + while (!done) { + suffix = (char *) index(suffix,'/'); /* find next '/' in file name */ + if (!suffix) break; +- ++ + suffix++; /* go past it */ + n = suffix - namelist[0]; + for (i=1; i (nList.w-10-16)) { /* have to trunc. */ + tmp = dname; + while (1) { + tmp = (char *) index(tmp,'/'); /* find next '/' in filename */ + if (!tmp) { tmp = dname; break; } +- ++ + tmp++; /* move to char following the '/' */ + if (StringWidth(tmp) <= (nList.w-10-16)) { /* is cool now */ + j++; break; +@@ -3484,9 +3511,9 @@ + + name = GetDirFName(); + GetDirPath(cwd); +- ++ + AddFNameToCtrlList(cwd, name); +- ++ + if (select) { + nList.selected = numnames-1; + curname = numnames - 1; +@@ -3501,32 +3528,32 @@ + char *fpath, *fname; + { + /* stick given path/name into 'namelist'. Doesn't redraw list */ +- +- char *fullname, *dname; ++ ++ char *fullname; + char cwd[MAXPATHLEN], globnm[MAXPATHLEN+100]; + int i; +- ++ + if (!fpath) fpath = ""; /* bulletproofing... */ +- if (!fname) fname = ""; +- ++ if (!fname) fname = ""; ++ + if (numnames == MAXNAMES) return; /* full up */ +- ++ + /* handle globbing */ + if (fname[0] == '~') { + strcpy(globnm, fname); + Globify(globnm); + fname = globnm; + } +- ++ + if (fname[0] != '/') { /* prepend path */ + strcpy(cwd, fpath); /* copy it to a modifiable place */ +- ++ + /* make sure fpath has a trailing '/' char */ + if (strlen(cwd)==0 || cwd[strlen(cwd)-1]!='/') strcat(cwd, "/"); +- ++ + fullname = (char *) malloc(strlen(cwd) + strlen(fname) + 2); + if (!fullname) FatalError("couldn't alloc name in AddFNameToCtrlList()\n"); +- ++ + sprintf(fullname, "%s%s", cwd, fname); + } + else { /* copy name to fullname */ +@@ -3534,15 +3561,15 @@ + if (!fullname) FatalError("couldn't alloc name in AddFNameToCtrlList()\n"); + strcpy(fullname, fname); + } +- +- ++ ++ + /* see if this name is a duplicate. Don't add it if it is. */ + for (i=0; i0)); + } + } +- ++ + + /***********************************/ + int DeleteCmd() + { + /* 'delete' button was pressed. Pop up a dialog box to determine + what should be deleted, then do it. +- returns '1' if THE CURRENTLY VIEWED entry was deleted from the list, +- in which case the 'selected' filename on the ctrl list is now ++ returns '1' if THE CURRENTLY VIEWED entry was deleted from the list, ++ in which case the 'selected' filename on the ctrl list is now + different, and should be auto-loaded, or something */ + + static char *bnames[] = { "\004Disk File", "\nList Entry", "\033Cancel" }; +@@ -3616,9 +3643,9 @@ + "'Disk File' deletes file associated with selection."); + + del = PopUp(str, bnames, 3); +- ++ + if (del == 2) return 0; /* cancel */ +- ++ + if (del == 0) { /* 'Disk File' */ + char *name; + if (namelist[delnum][0] != '/') { /* prepend 'initdir' */ +@@ -3669,13 +3696,13 @@ + + if (delnum != numnames-1) { + /* snip out of namelist and dispnames lists */ +- xvbcopy((char *) &namelist[delnum+1], (char *) &namelist[delnum], ++ xvbcopy((char *) &namelist[delnum+1], (char *) &namelist[delnum], + (numnames - delnum - 1) * sizeof(namelist[0])); + +- xvbcopy((char *) &dispnames[delnum+1], (char *) &dispnames[delnum], ++ xvbcopy((char *) &dispnames[delnum+1], (char *) &dispnames[delnum], + (numnames - delnum - 1) * sizeof(dispnames[0])); + } +- ++ + numnames--; + if (numnames==0) BTSetActive(&but[BDELETE],0); + windowMB.dim[WMB_TEXTVIEW] = (numnames==0); +@@ -3686,7 +3713,7 @@ + if (nList.selected >= numnames) nList.selected = numnames-1; + if (nList.selected < 0) nList.selected = 0; + +- SCSetRange(&nList.scrl, 0, numnames - nList.nlines, ++ SCSetRange(&nList.scrl, 0, numnames - nList.nlines, + nList.scrl.val, nList.nlines-1); + ScrollToCurrent(&nList); + DrawCtrlNumFiles(); +@@ -3753,7 +3780,7 @@ + if (useroot && resetroot) ClearRoot(); + + if (mainW == (Window) NULL || useroot) { /* window not visible */ +- useroot = 0; ++ useroot = 0; + + if (haveoldinfo) { /* just remap mainW and resize it */ + XWMHints xwmh; +@@ -3771,8 +3798,8 @@ + xwmh.input = True; + xwmh.flags = InputHint; + +- xwmh.icon_pixmap = iconPix; +- xwmh.icon_mask = iconmask; ++ xwmh.icon_pixmap = iconPix; ++ xwmh.icon_mask = iconmask; + xwmh.flags |= ( IconPixmapHint | IconMaskHint) ; + + xwmh.flags |= StateHint; +@@ -3787,7 +3814,7 @@ + else { /* first time. need to create mainW */ + mainW = (Window) NULL; + createMainWindow(maingeom, fnam); +- XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask ++ XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask | ButtonPressMask + | KeyReleaseMask | ColormapChangeMask + | EnterWindowMask | LeaveWindowMask ); +@@ -3802,7 +3829,7 @@ + + else { /* mainW already visible */ + createMainWindow(maingeom, fnam); +- XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask ++ XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask | ButtonPressMask + | KeyReleaseMask | ColormapChangeMask + | EnterWindowMask | LeaveWindowMask ); +@@ -3845,13 +3872,13 @@ + if (LocalCmap) regen=1; + + /* this reallocs the colors */ +- if (colorMapMode==CM_PERFECT || colorMapMode==CM_OWNCMAP) ++ if (colorMapMode==CM_PERFECT || colorMapMode==CM_OWNCMAP) + ChangeCmapMode(CM_NORMAL, 0, 0); +- +- ++ ++ + XUnmapWindow(theDisp, mainW); + mainW = vrootW; +- ++ + if (!ctrlUp) { /* make sure ctrl is up when going to 'root' mode */ + XWMHints xwmh; + xwmh.input = True; +@@ -3861,7 +3888,7 @@ + CtrlBox(1); + } + } +- ++ + useroot = 1; + rootMode = dispMode - RMB_ROOT; + ew = eWIDE; eh = eHIGH; +@@ -3877,7 +3904,7 @@ + GenerateEpic(ew, eh); + CreateXImage(); + } +- else if (regen) CreateXImage(); ++ else if (regen) CreateXImage(); + + KillOldRootInfo(); + MakeRootPic(); +@@ -3954,7 +3981,7 @@ + if (rd_str_cl(name, "", 0)) { /* sets def_str */ + if (sscanf(def_str, "%d", &def_int) == 1) return 1; + else { +- fprintf(stderr, "%s: couldn't read integer value for %s resource\n", ++ fprintf(stderr, "%s: couldn't read integer value for %s resource\n", + cmd, name); + return 0; + } +@@ -3976,14 +4003,14 @@ + char *name; + { + /* returns '1' if successful. result in def_int */ +- ++ + char buf[256]; + + if (rd_str_cl(name, "", 0)) { /* sets def_str */ + strcpy(buf, def_str); + lower_str(buf); + +- def_int = (strcmp(buf, "on")==0) || ++ def_int = (strcmp(buf, "on")==0) || + (strcmp(buf, "1")==0) || + (strcmp(buf, "true")==0) || + (strcmp(buf, "yes")==0); +@@ -3992,12 +4019,12 @@ + + else return 0; + } +- ++ + + + + static int xrm_initted = 0; +- ++ + /***********************************/ + int rd_str_cl (name_str, class_str, reinit) + char *name_str; +@@ -4044,14 +4071,14 @@ + byte *data; + + i = XGetWindowProperty(theDisp, RootWindow(theDisp, 0), +- resAtom, 0L, 1L, False, +- XA_STRING, &actType, &actFormat, &nitems, &nleft, ++ resAtom, 0L, 1L, False, ++ XA_STRING, &actType, &actFormat, &nitems, &nleft, + (unsigned char **) &data); + if (i==Success && actType==XA_STRING && actFormat==8) { + if (nitems>0 && data) XFree(data); +- i = XGetWindowProperty(theDisp, RootWindow(theDisp, 0), resAtom, 0L, ++ i = XGetWindowProperty(theDisp, RootWindow(theDisp, 0), resAtom, 0L, + (long) ((nleft+4+3)/4), +- False, XA_STRING, &actType, &actFormat, ++ False, XA_STRING, &actType, &actFormat, + &nitems, &nleft, (unsigned char **) &data); + if (i==Success && actType==XA_STRING && actFormat==8 && data) { + def_resource = XrmGetStringDatabase((char *) data); +@@ -4064,8 +4091,8 @@ + + + if (!gotit) { +- xrm_str = XResourceManagerString(theDisp); +- ++ xrm_str = XResourceManagerString(theDisp); ++ + if (xrm_str) { + def_resource = XrmGetStringDatabase(xrm_str); + if (DEBUG) fprintf(stderr,"rd_str_cl: Using RESOURCE_MANAGER prop.\n"); +@@ -4073,7 +4100,7 @@ + else { /* no RESOURCE_MANAGER prop. read from 'likely' file */ + char foo[256], *homedir, *xenviron; + XrmDatabase res1; +- ++ + #ifdef VMS + strcpy(foo, "SYS$LOGIN:DECW$XDEFAULTS.DAT"); + #else +@@ -4081,33 +4108,33 @@ + if (!homedir) homedir = "."; + sprintf(foo,"%s/.Xdefaults", homedir); + #endif +- ++ + def_resource = XrmGetFileDatabase(foo); +- ++ + if (DEBUG) { + fprintf(stderr,"rd_str_cl: No RESOURCE_MANAGER prop.\n"); + fprintf(stderr,"rd_str_cl: Using file '%s' (%s) ", + foo, (def_resource) ? "success" : "failure"); + } +- +- ++ ++ + /* merge file pointed to by XENVIRONMENT */ + xenviron = (char *) getenv("XENVIRONMENT"); + if (xenviron) { + res1 = XrmGetFileDatabase(xenviron); +- ++ + if (DEBUG) { + fprintf(stderr,"merging XENVIRONMENT='%s' (%s) ", + xenviron, (res1) ? "success" : "failure"); + } +- ++ + if (res1) { /* merge databases */ + if (!def_resource) def_resource = res1; + else XrmMergeDatabases(res1, &def_resource); + } + } +- +- ++ ++ + if (DEBUG) fprintf(stderr,"\n\n"); + } + } +@@ -4120,13 +4147,13 @@ + strcpy (q_name, PROGNAME); + strcat (q_name, "."); + strcat (q_name, name_str); +- ++ + strcpy (q_class, "Program"); + strcat (q_class, "."); + strcat (q_class, class_str); + + (void) XrmGetResource(def_resource, q_name, q_class, &type, &result); +- ++ + def_str = result.addr; + if (def_str) return (1); + else return (0); +diff -ruN xv-3.10a/xv.h xv-3.10a-bugfixes/xv.h +--- xv-3.10a/xv.h 1995-01-23 12:22:23.000000000 -0800 ++++ xv-3.10a-bugfixes/xv.h 2005-04-10 09:37:18.000000000 -0700 +@@ -1,6 +1,6 @@ + /* + * xv.h - header file for xv, but you probably guessed as much +- * ++ * + * Author: John Bradley (bradley@cis.upenn.edu) + */ + +@@ -8,8 +8,14 @@ + #include "config.h" + + +-#define REVDATE "Version 3.10a Rev: 12/29/94" +-#define VERSTR "3.10a" ++/* xv 3.10a: 19941229 */ ++/* PNG patch 1.2d: 19960731 */ ++/* GRR orig jumbo fixes patch: 20000213 */ ++/* GRR orig jumbo enhancements patch: 20000220 */ ++/* GRR 1st public jumbo F+E patches: 20040531 */ ++/* GRR 2nd public jumbo F+E patches: 20050410 */ ++#define REVDATE "version 3.10a-jumboFix of 20050410" ++#define VERSTR "3.10a-20050410" + + /* + * uncomment the following, and modify for your site, but only if you've +@@ -62,15 +68,27 @@ + #endif + + +-#ifdef LINUX ++/* at least on Linux, the following file (1) includes sys/types.h and ++ * (2) defines __USE_BSD (which was not defined before here), so __linux__ ++ * block is now moved after this #include */ ++#include /* need type declarations immediately */ ++ ++ ++#ifdef __linux__ + # ifndef _LINUX_LIMITS_H + # include + # endif ++# define USLEEP ++ /* want only one or the other defined, not both: */ ++# if !defined(BSDTYPES) && !defined(__USE_BSD) ++# define BSDTYPES ++# endif ++# if defined(BSDTYPES) && defined(__USE_BSD) ++# undef BSDTYPES ++# endif + #endif + + +-#include /* need type declarations immediately */ +- + /*********************************************************/ + + +@@ -115,17 +133,21 @@ + #ifndef VMS + # include + extern int errno; /* SHOULD be in errno.h, but often isn't */ +-# ifndef __NetBSD__ ++# if !defined(__NetBSD__) && !(defined(__linux__) && defined(__USE_BSD)) + extern char *sys_errlist[]; /* this too... */ + # endif + #endif + + + /* not everyone has the strerror() function, or so I'm told */ +-#ifndef VMS +-# define ERRSTR(x) sys_errlist[x] +-#else ++#ifdef VMS + # define ERRSTR(x) strerror(x, vaxc$errno) ++#else ++# if defined(__BEOS__) || defined(__linux__) /* or all modern/glibc systems? */ ++# define ERRSTR(x) strerror(x) ++# else ++# define ERRSTR(x) sys_errlist[x] ++# endif + #endif + + +@@ -159,7 +181,9 @@ + !defined(bsd43) && \ + !defined(aux) && \ + !defined(__bsdi__) && \ +- !defined(sequent) ++ !defined(sequent) && \ ++ !defined(__FreeBSD__) && \ ++ !defined(__OpenBSD__) + + # if defined(hp300) || defined(hp800) || defined(NeXT) + # include /* it's in 'sys' on HPs and NeXT */ +@@ -205,6 +229,10 @@ + # include + # endif + ++# ifdef __BEOS__ ++# include ++# endif ++ + /*** for select() call ***/ + # ifdef __hpux + # define XV_FDTYPE (int *) +@@ -259,7 +287,7 @@ + * make them if missing, along with a few fictitious ones + * Cameron Simpson (cameron@cse.unsw.edu.au) + */ +- ++ + #ifndef S_ISDIR /* missing POSIX-type macros */ + # define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR) + # define S_ISBLK(mode) (((mode)&S_IFMT) == S_IFBLK) +@@ -308,10 +336,18 @@ + + #ifndef VMS /* VMS hates multi-line definitions */ + # if defined(SVR4) || defined(SYSV) || defined(sco) || \ +- defined(XENIX) || defined(__osf__) ++ defined(XENIX) || defined(__osf__) || defined(__linux__) + # undef USE_GETCWD + # define USE_GETCWD /* use 'getcwd()' instead of 'getwd()' */ +-# endif ++# endif /* >> SECURITY ISSUE << */ ++#endif ++ ++ ++/* GRR 20040430: This is new and still only partially implemented. No doubt ++ * there are many other systems that have mkstemp() (SUSv3), ++ * but let's start small... */ ++#if defined(__linux__) || defined(__OpenBSD__) ++# define USE_MKSTEMP /* use 'mkstemp()' instead of 'mktemp()' */ + #endif + + +@@ -320,15 +356,15 @@ + /*****************************/ + + #ifdef DOJPEG +-#define HAVE_JPEG ++# define HAVE_JPEG + #endif + + #ifdef DOTIFF +-#define HAVE_TIFF ++# define HAVE_TIFF + #endif + + #ifdef DOPDS +-#define HAVE_PDS ++# define HAVE_PDS + #endif + + +@@ -442,7 +478,7 @@ + + /* following list gives indicies into 'saveFormats[]' array in xvdir.c + note that JPEG and TIFF entries may or may not exist, and following +- constants have to be adjusted accordingly. Also, don't worry about ++ constants have to be adjusted accordingly. Also, don't worry about + duplicate cases if JPGINC or TIFINC = 0. All code that references + F_JPEG or F_TIFF is #ifdef'd, so it won't be a problem */ + +@@ -482,7 +518,7 @@ + /* return values from ReadFileType() + * positive values are *definitely* readable formats (HAVE_*** is defined) + * negative values are random files that XV can't read, but display as +- * different icons in the visual browser ++ * different icons in the visual browser + */ + #define RFT_ERROR -1 /* couldn't open file, or whatever... */ + #define RFT_UNKNOWN 0 +@@ -742,7 +778,7 @@ + + typedef unsigned char byte; + +-typedef struct scrl { ++typedef struct scrl { + Window win; /* window ID */ + int x,y,w,h; /* window coords in parent */ + int len; /* length of major axis */ +@@ -972,12 +1008,12 @@ + /* this is converted to 'theImage' */ + WHERE int eWIDE, eHIGH; /* size of epic */ + +-WHERE byte *egampic; /* expanded, gammified cpic ++WHERE byte *egampic; /* expanded, gammified cpic + (only used in 24-bit mode) */ + + WHERE int p_offx, p_offy; /* offset of reparented windows */ + WHERE int ch_offx,ch_offy; /* ChngAttr ofst for reparented windows */ +-WHERE int kludge_offx, /* WM kludges for SetWindowPos routine */ ++WHERE int kludge_offx, /* WM kludges for SetWindowPos routine */ + kludge_offy; + WHERE int winCtrPosKludge; /* kludge for popup positioning... */ + +@@ -1072,7 +1108,7 @@ + WHERE int autoDelete; /* delete cmd-line files on exit? */ + + #define PRINTCMDLEN 256 +-WHERE char printCmd[PRINTCMDLEN]; ++WHERE char printCmd[PRINTCMDLEN]; + + /* stuff used for 'info' box */ + WHERE Window infoW; +@@ -1135,7 +1171,7 @@ + /* stuff used for 'ps' box */ + WHERE Window psW; + WHERE int psUp; /* is psW mapped, or what? */ +-WHERE CBUTT encapsCB, pscompCB; ++WHERE CBUTT encapsCB, pscompCB; + WHERE char *gsDev, *gsGeomStr; + WHERE int gsRes; + +@@ -1210,7 +1246,7 @@ + + /*************************** XVMISC.C ***************************/ + void StoreDeleteWindowProp PARM((Window)); +-Window CreateWindow PARM((char *, char *, char *, int, int, ++Window CreateWindow PARM((char *, char *, char *, int, int, + u_long, u_long, int)); + void DrawString PARM((Window, int, int, char *)); + void CenterString PARM((Window, int, int, char *)); +@@ -1222,7 +1258,7 @@ + void GenExpose PARM((Window, int, int, u_int, u_int)); + void DimRect PARM((Window, int, int, u_int, u_int, u_long)); + +-void Draw3dRect PARM((Window, int, int, u_int, u_int, int, int, ++void Draw3dRect PARM((Window, int, int, u_int, u_int, int, int, + u_long, u_long, u_long)); + + void RemapKeyCheck PARM((KeySym, char *, int *)); +@@ -1237,7 +1273,7 @@ + void SetCursors PARM((int)); + char *BaseName PARM((char *)); + +-void DrawTempGauge PARM((Window, int, int, int, int, double, ++void DrawTempGauge PARM((Window, int, int, int, int, double, + u_long, u_long, u_long, u_long, char *)); + void ProgressMeter PARM((int, int, int, char *)); + void XVDeletedFile PARM((char *)); +@@ -1248,6 +1284,7 @@ + void xv_getwd PARM((char *, size_t)); + char *xv_strstr PARM((char *, char *)); + FILE *xv_fopen PARM((char *, char *)); ++void xv_mktemp PARM((char *, char *)); + void Timer PARM((int)); + + /*************************** XVCOLOR.C ***************************/ +@@ -1282,11 +1319,11 @@ + void DrawEpic PARM((void)); + void KillOldPics PARM((void)); + +-byte *FSDither PARM((byte *, int, int, int, ++byte *FSDither PARM((byte *, int, int, int, + byte *, byte *, byte *, int, int)); + + void CreateXImage PARM((void)); +-XImage *Pic8ToXImage PARM((byte *, u_int, u_int, u_long *, ++XImage *Pic8ToXImage PARM((byte *, u_int, u_int, u_long *, + byte *, byte *, byte *)); + + XImage *Pic24ToXImage PARM((byte *, u_int, u_int)); +@@ -1306,21 +1343,21 @@ + void DoAlg PARM((int)); + + /*************************** XVSMOOTH.C ***************************/ +-byte *SmoothResize PARM((byte *, int, int, int, int, byte *, byte *, ++byte *SmoothResize PARM((byte *, int, int, int, int, byte *, byte *, + byte *, byte *, byte *, byte *, int)); + +-byte *Smooth24 PARM((byte *, int, int, int, int, int, ++byte *Smooth24 PARM((byte *, int, int, int, int, int, + byte *, byte *, byte *)); + +-byte *DoColorDither PARM((byte *, byte *, int, int, byte *, byte *, ++byte *DoColorDither PARM((byte *, byte *, int, int, byte *, byte *, + byte *, byte *, byte *, byte *, int)); + +-byte *Do332ColorDither PARM((byte *, byte *, int, int, byte *, byte *, ++byte *Do332ColorDither PARM((byte *, byte *, int, int, byte *, byte *, + byte *, byte *, byte *, byte *, int)); + + /*************************** XV24TO8.C **************************/ + void Init24to8 PARM((void)); +-byte *Conv24to8 PARM((byte *, int, int, int, ++byte *Conv24to8 PARM((byte *, int, int, int, + byte *, byte *, byte *)); + + byte *Conv8to24 PARM((byte *, int, int, byte *, byte *, byte *)); +@@ -1337,7 +1374,7 @@ + void DrawCtrlStr PARM((void)); + void ScrollToCurrent PARM((LIST *)); + +-void LSCreate PARM((LIST *, Window, int, int, int, int, int, ++void LSCreate PARM((LIST *, Window, int, int, int, int, int, + char **, int, u_long, u_long, u_long, u_long, + void (*)(int, SCRL *), int, int)); + +@@ -1384,7 +1421,7 @@ + FILE *OpenOutFile PARM((char *)); + int CloseOutFile PARM((FILE *, char *, int)); + +-byte *GenSavePic PARM((int*, int*,int*, int*, int*, ++byte *GenSavePic PARM((int*, int*,int*, int*, int*, + byte**, byte**, byte**)); + void GetSaveSize PARM((int *, int *)); + +@@ -1451,11 +1488,11 @@ + void GamSetAutoApply PARM((int)); + + /*************************** XVSCRL.C ***************************/ +-void SCCreate PARM((SCRL *, Window, int, int, int, int, +- int, int, int, int, u_long, u_long, ++void SCCreate PARM((SCRL *, Window, int, int, int, int, ++ int, int, int, int, u_long, u_long, + u_long, u_long, void (*)(int, SCRL *))); + +-void SCChange PARM((SCRL *, int, int, int, int, int, ++void SCChange PARM((SCRL *, int, int, int, int, int, + int, int, int)); + + void SCSetRange PARM((SCRL *, int, int, int, int)); +@@ -1465,8 +1502,8 @@ + + + /*************************** XVDIAL.C ***************************/ +-void DCreate PARM((DIAL *, Window, int, int, int, int, int, +- int, int, int, u_long, u_long, u_long, ++void DCreate PARM((DIAL *, Window, int, int, int, int, int, ++ int, int, int, u_long, u_long, u_long, + u_long, char *, char *)); + + void DSetRange PARM((DIAL *, int, int, int, int)); +@@ -1477,7 +1514,7 @@ + + + /**************************** XVBUTT.C ***************************/ +-void BTCreate PARM((BUTT *, Window, int, int, u_int, u_int, ++void BTCreate PARM((BUTT *, Window, int, int, u_int, u_int, + char *, u_long, u_long, u_long, u_long)); + + void BTSetActive PARM((BUTT *, int)); +@@ -1485,7 +1522,7 @@ + int BTTrack PARM((BUTT *)); + + +-RBUTT *RBCreate PARM((RBUTT *, Window, int, int, char *, ++RBUTT *RBCreate PARM((RBUTT *, Window, int, int, char *, + u_long, u_long, u_long, u_long)); + + void RBRedraw PARM((RBUTT *, int)); +@@ -1497,7 +1534,7 @@ + int RBTrack PARM((RBUTT *, int)); + + +-void CBCreate PARM((CBUTT *, Window, int, int, char *, ++void CBCreate PARM((CBUTT *, Window, int, int, char *, + u_long, u_long, u_long, u_long)); + + void CBRedraw PARM((CBUTT *)); +@@ -1506,8 +1543,8 @@ + int CBTrack PARM((CBUTT *)); + + +-void MBCreate PARM((MBUTT *, Window, int, int, u_int, u_int, +- char *, ++void MBCreate PARM((MBUTT *, Window, int, int, u_int, u_int, ++ char *, + char **, int,u_long,u_long, u_long, u_long)); + + void MBRedraw PARM((MBUTT *)); +@@ -1519,7 +1556,7 @@ + + + /**************************** XVGRAF.C ***************************/ +-void CreateGraf PARM((GRAF *, Window, int, int, ++void CreateGraf PARM((GRAF *, Window, int, int, + u_long, u_long, char *)); + + void InitGraf PARM((GRAF *)); +@@ -1539,32 +1576,32 @@ + int LoadGIF PARM((char *, PICINFO *)); + + /*************************** XVGIFWR.C **************************/ +-int WriteGIF PARM((FILE *, byte *, int, int, int, ++int WriteGIF PARM((FILE *, byte *, int, int, int, + byte *, byte *, byte *, int, int, char *)); + + /**************************** XVPM.C ****************************/ + int LoadPM PARM((char *, PICINFO *)); +-int WritePM PARM((FILE *, byte *, int, int, int, byte *, ++int WritePM PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte *, int, int, char *)); + + /**************************** XVPBM.C ***************************/ + int LoadPBM PARM((char *, PICINFO *)); +-int WritePBM PARM((FILE *, byte *, int, int, int, byte *, ++int WritePBM PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte *, int, int, int, char *)); + + /**************************** XVXBM.C ***************************/ + int LoadXBM PARM((char *, PICINFO *)); +-int WriteXBM PARM((FILE *, byte *, int, int, byte *, byte *, ++int WriteXBM PARM((FILE *, byte *, int, int, byte *, byte *, + byte *, char *)); + + /**************************** XVSUNRAS.C ***************************/ + int LoadSunRas PARM((char *, PICINFO *)); +-int WriteSunRas PARM((FILE *, byte *, int, int, int, byte *, ++int WriteSunRas PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte*, int, int, int)); + + /**************************** XVBMP.C ***************************/ + int LoadBMP PARM((char *, PICINFO *)); +-int WriteBMP PARM((FILE *, byte *, int, int, int, byte *, ++int WriteBMP PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte *, int, int)); + + /**************************** XVRLE.C ***************************/ +@@ -1572,7 +1609,7 @@ + + /**************************** XVIRIS.C ***************************/ + int LoadIRIS PARM((char *, PICINFO *)); +-int WriteIRIS PARM((FILE *, byte *, int, int, int, byte *, ++int WriteIRIS PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte *, int, int)); + + /**************************** XVPCX.C ***************************/ +@@ -1583,12 +1620,12 @@ + + /**************************** XVTARGA.C ***************************/ + int LoadTarga PARM((char *, PICINFO *)); +-int WriteTarga PARM((FILE *, byte *, int, int, int, byte *, ++int WriteTarga PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte *, int, int)); + + /**************************** XVXPM.C ***************************/ + int LoadXPM PARM((char *, PICINFO *)); +-int WriteXPM PARM((FILE *, byte *, int, int, int, byte *, ++int WriteXPM PARM((FILE *, byte *, int, int, int, byte *, + byte *, byte *, int, int, char *, char *)); + + /**************************** XVXWD.C ***************************/ +@@ -1607,7 +1644,7 @@ + void JPEGSaveParams PARM((char *, int)); + + /**************************** XVTIFF.C ***************************/ +-int LoadTIFF PARM((char *, PICINFO *)); ++int LoadTIFF PARM((char *, PICINFO *, int)); + void CreateTIFFW PARM((void)); + void TIFFDialog PARM((int)); + int TIFFCheckEvent PARM((XEvent *)); +@@ -1628,7 +1665,7 @@ + void CenterMapWindow PARM((Window, int, int, int, int)); + int PopUp PARM((char *, char **, int)); + void ErrPopUp PARM((char *, char *)); +-int GetStrPopUp PARM((char *, char **, int, char *, int, ++int GetStrPopUp PARM((char *, char **, int, char *, int, + char *, int)); + int GrabPopUp PARM((int *, int *)); + int PadPopUp PARM((int *, char **, int *, int *, int *, int *)); +diff -ruN xv-3.10a/xv24to8.c xv-3.10a-bugfixes/xv24to8.c +--- xv-3.10a/xv24to8.c 1995-01-13 11:49:21.000000000 -0800 ++++ xv-3.10a-bugfixes/xv24to8.c 2004-05-16 18:00:58.000000000 -0700 +@@ -14,15 +14,15 @@ + * + * The Conv24to8 procedure will set up the following: it will allocate, make + * & return 'pic8', a 'w' by 'h' (passed in values) 8-bit picture. +- * it will load up the rmap, gmap and bmap colormap arrays. it will NOT ++ * it will load up the rmap, gmap and bmap colormap arrays. it will NOT + * calculate numcols, since the cmap sort procedure has to be called anyway + * +- * Conv24to8 returns 'pic8' if successful, 'NULL' on failure (presumably on a ++ * Conv24to8 returns 'pic8' if successful, 'NULL' on failure (presumably on a + * malloc()) + * +- * The 'slow' code, while still based on Heckbert's Median Cut algorithm, ++ * The 'slow' code, while still based on Heckbert's Median Cut algorithm, + * has been shamelessly lifted from the Independent JPEG Group's software +- * (jquant2.c), as (for a variety of reasons) theirs was far better than ++ * (jquant2.c), as (for a variety of reasons) theirs was far better than + * the version I was previously using. Thanks guys! + * + * Also, as is my way, I've stripped out most of the IJG's well-written +@@ -65,10 +65,10 @@ + { + /* returns pointer to new 8-bit-per-pixel image (w*h) if successful, or + NULL if unsuccessful */ +- ++ + int i; + byte *pic8; +- ++ + if (!pic24) return NULL; + + pic8 = (byte *) malloc((size_t) (w * h)); +@@ -79,9 +79,9 @@ + + if (nc<=0) nc = 255; /* 'nc == 0' breaks code */ + +- if (!noqcheck && quick_check(pic24, w,h, pic8, rm,gm,bm, nc)) { ++ if (!noqcheck && quick_check(pic24, w,h, pic8, rm,gm,bm, nc)) { + SetISTR(ISTR_INFO,"No color compression was necessary.\n"); +- return pic8; ++ return pic8; + } + + switch (conv24) { +@@ -89,19 +89,19 @@ + SetISTR(ISTR_INFO,"Doing 'quick' 24-bit to 8-bit conversion."); + i = quick_quant(pic24, w, h, pic8, rm, gm, bm, nc); + break; +- ++ + case CONV24_BEST: + SetISTR(ISTR_INFO,"Doing 'best' 24-bit to 8-bit conversion."); + i = ppm_quant(pic24, w, h, pic8, rm, gm, bm, nc); + break; +- ++ + case CONV24_SLOW: + default: + SetISTR(ISTR_INFO,"Doing 'slow' 24-bit to 8-bit conversion."); + i = slow_quant(pic24, w, h, pic8, rm, gm, bm, nc); + break; + } +- ++ + if (i) { free(pic8); pic8 = NULL; } + return pic8; + } +@@ -134,7 +134,7 @@ + + return pic24; + } +- ++ + + /****************************/ + static int quick_check(pic24, w,h, pic8, rmap,gmap,bmap, maxcol) +@@ -154,10 +154,10 @@ + if (maxcol>256) maxcol = 256; + + /* put the first color in the table by hand */ +- nc = 0; mid = 0; ++ nc = 0; mid = 0; + + for (i=w*h,p=pic24; i; i--) { +- col = (((u_long) *p++) << 16); ++ col = (((u_long) *p++) << 16); + col += (((u_long) *p++) << 8); + col += *p++; + +@@ -184,7 +184,7 @@ + pic24 into colormap offsets into 'colors' */ + + for (i=w*h,p=pic24, pix=pic8; i; i--,pix++) { +- col = (((u_long) *p++) << 16); ++ col = (((u_long) *p++) << 16); + col += (((u_long) *p++) << 8); + col += *p++; + +@@ -206,7 +206,7 @@ + + /* and load up the 'desired colormap' */ + for (i=0; i>16; ++ rmap[i] = colors[i]>>16; + gmap[i] = (colors[i]>>8) & 0xff; + bmap[i] = colors[i] & 0xff; + } +@@ -224,7 +224,7 @@ + { + /* called after 'pic8' has been alloced, pWIDE,pHIGH set up, mono/1-bit + checked already */ +- ++ + /* up to 256 colors: 3 bits R, 3 bits G, 2 bits B (RRRGGGBB) */ + #define RMASK 0xe0 + #define RSHIFT 0 +@@ -252,7 +252,7 @@ + gmap[i] = (((i<>RSHIFT) | ((g1&GMASK)>>GSHIFT) | ++ val = (((r1&RMASK)>>RSHIFT) | ((g1&GMASK)>>GSHIFT) | + ((b1&BMASK)>>BSHIFT)); + *pp = val; +- ++ + /* compute color errors */ + r1 -= rmap[val]; + g1 -= gmap[val]; + b1 -= bmap[val]; +- ++ + /* Add fractions of errors to adjacent pixels */ + if (j!=jmax) { /* adjust RIGHT pixel */ + thisptr[0] += (r1*7) / 16; + thisptr[1] += (g1*7) / 16; + thisptr[2] += (b1*7) / 16; + } +- ++ + if (i!=imax) { /* do BOTTOM pixel */ + nextptr[0] += (r1*5) / 16; + nextptr[1] += (g1*5) / 16; +@@ -316,7 +316,7 @@ + } + } + } +- ++ + free(thisline); + free(nextline); + return 0; +@@ -329,7 +329,7 @@ + #undef BMASK + #undef BSHIFT + } +- ++ + + + +@@ -381,7 +381,7 @@ + + /* Luminance macro. */ + +-/* ++/* + * #define PPM_LUMIN(p) \ + * ( 0.299 * PPM_GETR(p) + 0.587 * PPM_GETG(p) + 0.114 * PPM_GETB(p) ) + */ +@@ -472,7 +472,7 @@ + + if (DEBUG) fprintf(stderr,"%s: remapping to ppm-style internal fmt\n", fn); + WaitCursor(); +- ++ + pixels = (pixel **) malloc(rows * sizeof(pixel *)); + if (!pixels) FatalError("couldn't allocate 'pixels' array"); + for (row=0; row= bl) + qsort((char*) &(chv[indx]), (size_t) clrs, sizeof(struct chist_item), + greencompare ); +- else ++ else + qsort((char*) &(chv[indx]), (size_t) clrs, sizeof(struct chist_item), + bluecompare ); + } +@@ -750,7 +750,7 @@ + ++boxes; + qsort((char*) bv, (size_t) boxes, sizeof(struct box), sumcompare); + } /* while (boxes ... */ +- ++ + /* + ** Ok, we've got enough boxes. Now choose a representative color for + ** each box. There are a number of possible ways to make this choice. +@@ -761,7 +761,7 @@ + ** method is used by switching the commenting on the REP_ defines at + ** the beginning of this source file. + */ +- ++ + for (bi=0; bicolor ) - ++ return (int) PPM_GETR( ((chist_vec)p1)->color ) - + (int) PPM_GETR( ((chist_vec)p2)->color ); + } + +@@ -799,7 +799,7 @@ + static int greencompare(p1, p2) + const void *p1, *p2; + { +- return (int) PPM_GETG( ((chist_vec)p1)->color ) - ++ return (int) PPM_GETG( ((chist_vec)p1)->color ) - + (int) PPM_GETG( ((chist_vec)p2)->color ); + } + +@@ -807,7 +807,7 @@ + static int bluecompare(p1, p2) + const void *p1, *p2; + { +- return (int) PPM_GETB( ((chist_vec)p1)->color ) - ++ return (int) PPM_GETB( ((chist_vec)p1)->color ) - + (int) PPM_GETB( ((chist_vec)p2)->color ); + } + +@@ -821,7 +821,7 @@ + + + /****************************************************************************/ +-static chist_vec ++static chist_vec + ppm_computechist(pixels, cols, rows, maxcolors, colorsP) + pixel** pixels; + int cols, rows, maxcolors; +@@ -840,7 +840,7 @@ + + + /****************************************************************************/ +-static chash_table ppm_computechash(pixels, cols, rows, ++static chash_table ppm_computechash(pixels, cols, rows, + maxcolors, colorsP ) + pixel** pixels; + int cols, rows, maxcolors; +@@ -861,14 +861,14 @@ + + for (chl = cht[hash]; chl != (chist_list) 0; chl = chl->next) + if (PPM_EQUAL(chl->ch.color, *pP)) break; +- ++ + if (chl != (chist_list) 0) ++(chl->ch.value); + else { + if ((*colorsP)++ > maxcolors) { + ppm_freechash(cht); + return (chash_table) 0; + } +- ++ + chl = (chist_list) malloc(sizeof(struct chist_list_item)); + if (!chl) FatalError("ran out of memory computing hash table"); + +@@ -878,7 +878,7 @@ + cht[hash] = chl; + } + } +- ++ + return cht; + } + +@@ -1114,7 +1114,7 @@ + register int i; + register long maxc = 0; + boxptr which = NULL; +- ++ + for (i = 0, boxp = boxlist; i < numboxes; i++, boxp++) { + if (boxp->colorcount > maxc && boxp->volume > 0) { + which = boxp; +@@ -1133,7 +1133,7 @@ + register int i; + register INT32 maxv = 0; + boxptr which = NULL; +- ++ + for (i = 0, boxp = boxlist; i < numboxes; i++, boxp++) { + if (boxp->volume > maxv) { + which = boxp; +@@ -1153,11 +1153,11 @@ + int c0min,c0max,c1min,c1max,c2min,c2max; + INT32 dist0,dist1,dist2; + long ccount; +- ++ + c0min = boxp->c0min; c0max = boxp->c0max; + c1min = boxp->c1min; c1max = boxp->c1max; + c2min = boxp->c2min; c2max = boxp->c2max; +- ++ + if (c0max > c0min) + for (c0 = c0min; c0 <= c0max; c0++) + for (c1 = c1min; c1 <= c1max; c1++) { +@@ -1229,7 +1229,7 @@ + dist1 = ((c1max - c1min) << C1_SHIFT) * C1_SCALE; + dist2 = ((c2max - c2min) << C2_SHIFT) * C2_SCALE; + boxp->volume = dist0*dist0 + dist1*dist1 + dist2*dist2; +- ++ + ccount = 0; + for (c0 = c0min; c0 <= c0max; c0++) + for (c1 = c1min; c1 <= c1max; c1++) { +@@ -1315,11 +1315,11 @@ + long c0total = 0; + long c1total = 0; + long c2total = 0; +- ++ + c0min = boxp->c0min; c0max = boxp->c0max; + c1min = boxp->c1min; c1max = boxp->c1max; + c2min = boxp->c2min; c2max = boxp->c2max; +- ++ + for (c0 = c0min; c0 <= c0max; c0++) + for (c1 = c1min; c1 <= c1max; c1++) { + histp = & histogram[c0][c1][c2min]; +@@ -1332,7 +1332,7 @@ + } + } + } +- ++ + sl_colormap[0][icolor] = (JSAMPLE) ((c0total + (total>>1)) / total); + sl_colormap[1][icolor] = (JSAMPLE) ((c1total + (total>>1)) / total); + sl_colormap[2][icolor] = (JSAMPLE) ((c2total + (total>>1)) / total); +@@ -1505,12 +1505,12 @@ + bptr = bestdist; + for (i = BOX_C0_ELEMS*BOX_C1_ELEMS*BOX_C2_ELEMS-1; i >= 0; i--) + *bptr++ = 0x7FFFFFFFL; +- ++ + /* Nominal steps between cell centers ("x" in Thomas article) */ + #define STEP_C0 ((1 << C0_SHIFT) * C0_SCALE) + #define STEP_C1 ((1 << C1_SHIFT) * C1_SCALE) + #define STEP_C2 ((1 << C2_SHIFT) * C2_SCALE) +- ++ + for (i = 0; i < numcolors; i++) { + icolor = colorlist[i]; + /* Compute (square of) distance from minc0/c1/c2 to this color */ +@@ -1576,7 +1576,7 @@ + minc0 = (c0 << BOX_C0_SHIFT) + ((1 << C0_SHIFT) >> 1); + minc1 = (c1 << BOX_C1_SHIFT) + ((1 << C1_SHIFT) >> 1); + minc2 = (c2 << BOX_C2_SHIFT) + ((1 << C2_SHIFT) >> 1); +- ++ + numcolors = find_nearby_colors(minc0, minc1, minc2, colorlist); + + /* Determine the actually nearest colors. */ +diff -ruN xv-3.10a/xvalg.c xv-3.10a-bugfixes/xvalg.c +--- xv-3.10a/xvalg.c 1994-12-22 14:34:47.000000000 -0800 ++++ xv-3.10a-bugfixes/xvalg.c 2004-05-16 18:01:13.000000000 -0700 +@@ -38,7 +38,7 @@ + double, int)); + static void doPixel PARM((byte *,int,int,byte *, int,int,int,int, + int, int)); +-static void doSpread PARM((byte *,int,int,byte *, int,int,int,int, ++static void doSpread PARM((byte *,int,int,byte *, int,int,int,int, + int, int)); + static void doMedianFilter PARM((byte *,int,int,byte *, int,int,int,int, int)); + +@@ -89,7 +89,7 @@ + /************************************************************/ + void AlgInit() + { +- /* called whenver an image file is loaded. disposes of origPic ++ /* called whenver an image file is loaded. disposes of origPic + if neccessary, and points it to null */ + + if (origPic) free(origPic); +@@ -160,7 +160,7 @@ + { + /* runs a n*n convolution mask (all 1's) over 'pic', + producing a 24-bit version. Then calls 24to8 to generate a new 8-bit +- image, and installs it. ++ image, and installs it. + + Note that 'n' must be odd for things to work properly */ + +@@ -169,7 +169,7 @@ + static char *labels[] = { "\nOk", "\033Cancel" }; + char txt[256]; + static char buf[64] = { '3', '\0' }; +- ++ + sprintf(txt, "Blur: \n\n%s", + "Enter mask size (ex. 3, 5, 7, ...)"); + +@@ -178,7 +178,7 @@ + n = atoi(buf); + + if (n < 1 || (n&1)!=1) { +- ErrPopUp("Error: The value entered must be odd and greater than zero.", ++ ErrPopUp("Error: The value entered must be odd and greater than zero.", + "\nOh!"); + return; + } +@@ -194,7 +194,7 @@ + + if (start24bitAlg(&pic24, &tmpPic)) return; + xvbcopy((char *) pic24, (char *) tmpPic, (size_t) (pWIDE*pHIGH*3)); +- ++ + doBlurConvolv(pic24, pWIDE,pHIGH, tmpPic, sx,sy,sw,sh, n); + + end24bitAlg(pic24, tmpPic); +@@ -212,7 +212,7 @@ + static char *labels[] = { "\nOk", "\033Cancel" }; + char txt[256]; + static char buf[64] = { '7', '5', '\0' }; +- ++ + sprintf(txt, "Sharpen: \n\n%s", + "Enter enhancement factor (0-99%)"); + +@@ -236,7 +236,7 @@ + + if (start24bitAlg(&pic24, &tmpPic)) return; + xvbcopy((char *) pic24, (char *) tmpPic, (size_t) (pWIDE*pHIGH*3)); +- ++ + doSharpConvolv(pic24, pWIDE,pHIGH, tmpPic, sx,sy,sw,sh, n); + + end24bitAlg(pic24, tmpPic); +@@ -264,7 +264,7 @@ + xvbcopy((char *) pic24, (char *) tmpPic, (size_t) (pWIDE*pHIGH*3)); + + doEdgeConvolv(pic24, pWIDE, pHIGH, tmpPic, sx,sy,sw,sh); +- ++ + SetISTR(ISTR_INFO, "%snormalizing...", str); + + /* Normalize results */ +@@ -292,19 +292,19 @@ + /************************/ + static void TinFoil() + { +- byte *pic24, *p24, *tmpPic, *tp, *tlp; ++ byte *pic24, *tmpPic, *tp, *tlp; + char *str; +- int i, j, v, maxv,sx,sy,sw,sh; +- ++ int i, j, v, sx,sy,sw,sh; ++ + WaitCursor(); +- ++ + str = "Doing cheesy embossing effect..."; + SetISTR(ISTR_INFO, str); +- ++ + if (HaveSelection()) GetSelRCoords(&sx,&sy,&sw,&sh); + else { sx = 0; sy = 0; sw = pWIDE; sh = pHIGH; } + CropRect2Rect(&sx,&sy,&sw,&sh, 0,0,pWIDE,pHIGH); +- ++ + if (start24bitAlg(&pic24, &tmpPic)) return; + xvbcopy((char *) pic24, (char *) tmpPic, (size_t) (pWIDE*pHIGH*3)); + +@@ -315,9 +315,9 @@ + *tp++ = 128; *tp++ = 128; *tp++ = 128; + } + } +- ++ + doAngleConvolv(pic24, pWIDE, pHIGH, tmpPic, sx,sy,sw,sh); +- ++ + /* mono-ify selected area of tmpPic */ + for (i=sy; i=sely && y1=selx && x1=sely && i=selx && j=sely && i=selx && j fabs(dslope)) { /* y axis is major */ + ey = (dy<0) ? sely : sely+selh-1; +@@ -1092,7 +1092,7 @@ + printUTime("end of blend"); + } + +- ++ + + /************************/ + static void doRotate(pic24, w, h, results, selx,sely,selw,selh, rotval, clear) +@@ -1104,7 +1104,7 @@ + by the amount specified in degrees (rotval), and stores the result in + 'results', which is also a w*h 24-bit image. The rotated bits are + clipped to fit in 'results'. If 'clear', the (unrotated) rectangular +- region is cleared (in results) first. ++ region is cleared (in results) first. + sel[x,y,w,h] is guaranteed to be within image bounds */ + + byte *pp, *dp; +@@ -1118,7 +1118,7 @@ + printUTime("start of rotate"); + + /* +- * cfx,cfy - center point of sel rectangle (double) ++ * cfx,cfy - center point of sel rectangle (double) + * rx1,ry1 - top-left of sel, rotated + * rx2,ry2 - bot-left of sel, rotated + * rx3,ry3 - top-right of sel, rotated +@@ -1174,7 +1174,7 @@ + /* now, for each pixel in rb[x,y,w,h], do the inverse rotation to see if + it would be in the original unrotated selection rectangle. if it *is*, + compute and store an appropriate color, otherwise skip it */ +- ++ + for (y=rby; y %7.2f %7.2f (d=%f ang=%f)\n", ++ fprintf(stderr,"(%4d,%4d) -> %7.2f %7.2f (d=%f ang=%f)\n", + cx,cy, *rx,*ry, d, ang); + #endif + } +- ++ + + + /************************/ +@@ -1323,29 +1323,29 @@ + byte *pic24, *results; + int w, h, selx,sely,selw,selh, pixX,pixY; + { +- /* runs 'pixelization' algorithm. replaces each pixX-by-pixY region ++ /* runs 'pixelization' algorithm. replaces each pixX-by-pixY region + (smaller on edges) with the average color within that region */ +- ++ + byte *pp; + int nwide, nhigh, i,j, x,y, x1,y1, stx,sty; + int nsum, rsum, gsum, bsum; +- ++ + printUTime("start of pixelize"); +- ++ + /* center grid on selection */ + nwide = (selw + pixX-1) / pixX; + nhigh = (selh + pixY-1) / pixY; +- ++ + stx = selx - (nwide*pixX - selw)/2; + sty = sely - (nhigh*pixY - selh)/2; +- ++ + y = sty; + for (i=0; i0) { /* just to be safe... */ + rsum /= nsum; gsum /= nsum; bsum /= nsum; + RANGE(rsum,0,255); RANGE(gsum,0,255); RANGE(bsum,0,255); + } +- +- ++ ++ + /* STORE color in rect:[x,y,pixX,pixY] */ + for (y1=y; y1=sely && y1=selx && x10; d=d/2) { + for (i=d; i=0 && rtab[j]>rtab[j+d]; j-=d) { +@@ -1531,14 +1531,14 @@ + } + } + } +- ++ + c2 = count/2; + *rp++ = (byte) ( (count&1) ? rtab[c2] : (rtab[c2] + rtab[c2-1])/2); + *rp++ = (byte) ( (count&1) ? gtab[c2] : (gtab[c2] + gtab[c2-1])/2); + *rp++ = (byte) ( (count&1) ? btab[c2] : (btab[c2] + btab[c2-1])/2); + } + } +- ++ + free(rtab); free(gtab); free(btab); + printUTime("end of doMedianFilter"); + } +@@ -1549,7 +1549,7 @@ + static void intsort(a, n) + int *a, n; + { +- /* uses the shell-sort algorithm. for the relatively small data sets ++ /* uses the shell-sort algorithm. for the relatively small data sets + we'll be using, should be quicker than qsort() because of all the + function calling overhead associated with qsort(). */ + +@@ -1571,7 +1571,7 @@ + byte **pic24, **tmpPic; + { + /* generates a 24-bit version of 'pic', if neccessary, and also mallocs +- * a pWIDE*pHIGH*3 24-bit output pic. ++ * a pWIDE*pHIGH*3 24-bit output pic. + * + * Returns '1' if there's some sort of screwup, '0' if cool + */ +@@ -1588,7 +1588,7 @@ + *tmpPic = (byte *) calloc((size_t) (pWIDE * pHIGH * 3), (size_t) 1); + if (!(*tmpPic)) { + SetCursors(-1); +- ErrPopUp("Unable to malloc() tmp 24-bit image in start24bitAlg()", ++ ErrPopUp("Unable to malloc() tmp 24-bit image in start24bitAlg()", + "\nTough!"); + if (picType == PIC8) free(*pic24); + return 1; +@@ -1609,16 +1609,16 @@ + saveOrigPic(); /* also kills pic/cpic/epic/egampic/theImage, NOT pic24 */ + + /* copy results to pic24 */ +- xvbcopy((char *) outPic, (char *) pic24, (size_t) (pWIDE*pHIGH*3)); ++ xvbcopy((char *) outPic, (char *) pic24, (size_t) (pWIDE*pHIGH*3)); + free(outPic); + + if (picType == PIC8) { + pic = Conv24to8(pic24, pWIDE, pHIGH, ncols, rMap,gMap,bMap); + free(pic24); +- if (!pic) { ++ if (!pic) { + SetCursors(-1); + ErrPopUp("Some sort of failure occured in 24to8 conversion\n","\nDamn!"); +- NoAlg(); ++ NoAlg(); + return; + } + } +@@ -1632,7 +1632,7 @@ + static void saveOrigPic() + { + /* saves original picture into origPic, if it hasn't already been done. +- This allows us to undo algorithms... ++ This allows us to undo algorithms... + + Also, frees all pics, (except 'pic', if we're in PIC24 mode) */ + +@@ -1649,7 +1649,7 @@ + /* make a backup copy of 'pic' */ + origPic = (byte *) malloc((size_t)(pWIDE*pHIGH*((picType==PIC8) ? 1 : 3))); + if (!origPic) FatalError("out of memory in 'saveOrigPic()'"); +- xvbcopy((char *) pic, (char *) origPic, ++ xvbcopy((char *) pic, (char *) origPic, + (size_t) (pWIDE * pHIGH * ((picType==PIC8) ? 1 : 3))); + + origPicType = picType; +diff -ruN xv-3.10a/xvbmp.c xv-3.10a-bugfixes/xvbmp.c +--- xv-3.10a/xvbmp.c 1994-12-22 14:34:42.000000000 -0800 ++++ xv-3.10a-bugfixes/xvbmp.c 2005-03-27 18:12:17.000000000 -0800 +@@ -14,7 +14,7 @@ + rest of the pic is filled with 0's. + + a file with garbage characters in it is an unloadable file. All allocated +- stuff is tossed, and LoadPBM returns non-zero ++ stuff is tossed, and LoadBMP returns non-zero + + not being able to malloc is a Fatal Error. The program is aborted. */ + +@@ -54,9 +54,9 @@ + { + FILE *fp; + int i, c, c1, rv; +- unsigned int bfSize, bfOffBits, biSize, biWidth, biHeight, biPlanes; +- unsigned int biBitCount, biCompression, biSizeImage, biXPelsPerMeter; +- unsigned int biYPelsPerMeter, biClrUsed, biClrImportant; ++ u_int bfSize, bfOffBits, biSize, biWidth, biHeight, biPlanes; ++ u_int biBitCount, biCompression, biSizeImage, biXPelsPerMeter; ++ u_int biYPelsPerMeter, biClrUsed, biClrImportant; + int bPad; + char *cmpstr; + byte *pic24, *pic8; +@@ -69,7 +69,7 @@ + + fp = xv_fopen(fname,"r"); + if (!fp) return (bmpError(bname, "couldn't open file")); +- ++ + fseek(fp, 0L, 2); /* figure out the file size */ + filesize = ftell(fp); + fseek(fp, 0L, 0); +@@ -104,11 +104,11 @@ + biHeight = getshort(fp); + biPlanes = getshort(fp); + biBitCount = getshort(fp); +- ++ + /* Not in old versions so have to compute them*/ + biSizeImage = (((biPlanes * biBitCount*biWidth)+31)/32)*4*biHeight; +- +- biCompression = BI_RGB; ++ ++ biCompression = BI_RGB; + biXPelsPerMeter = biYPelsPerMeter = 0; + biClrUsed = biClrImportant = 0; + } +@@ -127,11 +127,14 @@ + + + /* error checking */ +- if ((biBitCount!=1 && biBitCount!=4 && biBitCount!=8 && biBitCount!=24) || +- biPlanes!=1 || biCompression>BI_RLE4) { +- +- sprintf(buf,"Bogus BMP File! (bitCount=%d, Planes=%d, Compression=%d)", +- biBitCount, biPlanes, biCompression); ++ if ((biBitCount!=1 && biBitCount!=4 && biBitCount!=8 && biBitCount!=24) || ++ biPlanes!=1 || biCompression>BI_RLE4 || ++ biWidth<=0 || biHeight<=0 || ++ (biClrUsed && biClrUsed > (1 << biBitCount))) { ++ ++ sprintf(buf, ++ "Bogus BMP File! (%dx%d, Bits=%d, Colors=%d, Planes=%d, Compr=%d)", ++ biWidth, biHeight, biBitCount, biClrUsed, biPlanes, biCompression); + + bmpError(bname, buf); + goto ERROR; +@@ -154,7 +157,7 @@ + /* skip ahead to colormap, using biSize */ + c = biSize - 40; /* 40 bytes read from biSize to biClrImportant */ + for (i=0; i (1 << biBitCount)) ++ biClrUsed = (1 << biBitCount); ++ */ ++ + cmaplen = (biClrUsed) ? biClrUsed : 1 << biBitCount; + for (i=0; ib[i] = getc(fp); +@@ -173,7 +181,7 @@ + } + } + +- if (FERROR(fp)) ++ if (FERROR(fp)) + { bmpError(bname,"EOF reached in BMP colormap"); goto ERROR; } + + if (DEBUG>1) { +@@ -188,7 +196,7 @@ + if (biSize != WIN_OS2_OLD) { + /* Waste any unused bytes between the colour map (if present) + and the start of the actual bitmap data. */ +- ++ + while (bPad > 0) { + (void) getc(fp); + bPad--; +@@ -198,11 +206,21 @@ + /* create pic8 or pic24 */ + + if (biBitCount==24) { +- pic24 = (byte *) calloc((size_t) biWidth * biHeight * 3, (size_t) 1); ++ u_int npixels = biWidth * biHeight; ++ u_int count = 3 * npixels; ++ ++ if (biWidth == 0 || biHeight == 0 || npixels/biWidth != biHeight || ++ count/3 != npixels) ++ return (bmpError(bname, "image dimensions too large")); ++ pic24 = (byte *) calloc((size_t) count, (size_t) 1); + if (!pic24) return (bmpError(bname, "couldn't malloc 'pic24'")); + } + else { +- pic8 = (byte *) calloc((size_t) biWidth * biHeight, (size_t) 1); ++ u_int npixels = biWidth * biHeight; ++ ++ if (biWidth == 0 || biHeight == 0 || npixels/biWidth != biHeight) ++ return (bmpError(bname, "image dimensions too large")); ++ pic8 = (byte *) calloc((size_t) npixels, (size_t) 1); + if (!pic8) return(bmpError(bname, "couldn't malloc 'pic8'")); + } + +@@ -216,7 +234,7 @@ + biCompression); + else rv = loadBMP24(fp,pic24,biWidth,biHeight); + +- if (rv) bmpError(bname, "File appears truncated. Winging it.\n"); ++ if (rv) bmpError(bname, "File appears truncated. Winging it."); + + fclose(fp); + +@@ -254,7 +272,7 @@ + ERROR: + fclose(fp); + return 0; +-} ++} + + + /*******************************************/ +@@ -277,7 +295,7 @@ + c = getc(fp); + bitnum = 0; + } +- ++ + if (j=0; i--) { + pp = pic8 + (i * w); + if ((i&0x3f)==0) WaitCursor(); +- ++ + for (j=nybnum=0; j> 4; + c <<= 4; +@@ -325,55 +343,55 @@ + if (FERROR(fp)) break; + } + } +- ++ + else if (comp == BI_RLE4) { /* read RLE4 compressed data */ +- x = y = 0; ++ x = y = 0; + pp = pic8 + x + (h-y-1)*w; +- ++ + while (y>4)&0x0f); + } +- ++ + else { /* c==0x00 : escape codes */ + c = getc(fp); if (c == EOF) { rv = 1; break; } +- ++ + if (c == 0x00) { /* end of line */ + x=0; y++; pp = pic8 + x + (h-y-1)*w; +- } +- ++ } ++ + else if (c == 0x01) break; /* end of pic8 */ +- ++ + else if (c == 0x02) { /* delta */ + c = getc(fp); x += c; + c = getc(fp); y += c; + pp = pic8 + x + (h-y-1)*w; + } +- ++ + else { /* absolute mode */ + for (i=0; i>4)&0x0f); + } +- ++ + if (((c&3)==1) || ((c&3)==2)) getc(fp); /* read pad byte */ + } + } /* escape processing */ + if (FERROR(fp)) break; + } /* while */ + } +- ++ + else { + fprintf(stderr,"unknown BMP compression type 0x%0x\n", comp); + } +- ++ + if (FERROR(fp)) rv = 1; + return rv; +-} ++} + + + +@@ -385,7 +403,7 @@ + { + int i,j,c,c1,padw,x,y,rv; + byte *pp; +- ++ + rv = 0; + + if (comp == BI_RGB) { /* read uncompressed data */ +@@ -404,7 +422,7 @@ + } + + else if (comp == BI_RLE8) { /* read RLE8 compressed data */ +- x = y = 0; ++ x = y = 0; + pp = pic8 + x + (h-y-1)*w; + + while (y=0; i--) { + pp = pic24 + (i * w * 3); + if ((i&0x3f)==0) WaitCursor(); +- ++ + for (j=0; j>8) & 0xff; ++ c = ((u_int) i) & 0xff; c1 = (((u_int) i)>>8) & 0xff; + putc(c, fp); putc(c1,fp); + } + +@@ -529,10 +547,10 @@ + int i; + { + int c, c1, c2, c3; +- c = ((unsigned int ) i) & 0xff; +- c1 = (((unsigned int) i)>>8) & 0xff; +- c2 = (((unsigned int) i)>>16) & 0xff; +- c3 = (((unsigned int) i)>>24) & 0xff; ++ c = ((u_int) i) & 0xff; ++ c1 = (((u_int) i)>>8) & 0xff; ++ c2 = (((u_int) i)>>16) & 0xff; ++ c3 = (((u_int) i)>>24) & 0xff; + + putc(c, fp); putc(c1,fp); putc(c2,fp); putc(c3,fp); + } +@@ -562,11 +580,11 @@ + * 8-bit image + * note that PIC24 and F_BWDITHER/F_REDUCED won't happen + * +- * if colorstyle == F_BWDITHER, it writes a 1-bit image ++ * if colorstyle == F_BWDITHER, it writes a 1-bit image + * + */ + +- int i,j, nc, nbits, bperlin, cmaplen; ++ int i,j, nc, nbits, bperlin, cmaplen, npixels; + byte *graypic, *sp, *dp, graymap[256]; + + nc = nbits = cmaplen = 0; +@@ -576,10 +594,16 @@ + /* generate a faked 8-bit per pixel image with a grayscale cmap, + so that it can just fall through existing 8-bit code */ + +- graypic = (byte *) malloc((size_t) w*h); ++ npixels = w * h; ++ if (w <= 0 || h <= 0 || npixels/w != h) { ++ SetISTR(ISTR_WARNING, "image dimensions too large"); ++ return -1; ++ } ++ ++ graypic = (byte *) malloc((size_t) npixels); + if (!graypic) FatalError("unable to malloc in WriteBMP()"); + +- for (i=0,sp=pic824,dp=graypic; i=0; i--) { +- pp = pic8 + (i * w); ++ pp = pic8 + (i * w); + if ((i&0x3f)==0) WaitCursor(); + + for (j=bitnum=c=0; j<=padw; j++,bitnum++) { +@@ -716,7 +740,7 @@ + putc(c,fp); + bitnum = c = 0; + } +- ++ + c <<= 1; + + if (jiconW = XCreateSimpleWindow(theDisp, br->win, 1,1, 100,100, ++ br->iconW = XCreateSimpleWindow(theDisp, br->win, 1,1, 100,100, + 1,browfg,browbg); + if (!br->iconW) FatalError("can't create schnauzer icon window!"); + +- SCCreate(&(br->scrl), br->win, 0,0, 1,100, 0,0,0,0, ++ SCCreate(&(br->scrl), br->win, 0,0, 1,100, 0,0,0,0, + browfg, browbg, browhi, browlo, drawIconWin); + + +@@ -486,7 +486,7 @@ + bfIcons[BF_SOCK]=MakePix1(br->win,br_sock_bits,br_sock_width,br_sock_height); + bfIcons[BF_FIFO]=MakePix1(br->win,br_fifo_bits,br_fifo_width,br_fifo_height); + +- bfIcons[BF_ERROR] = MakePix1(br->win, br_error_bits, ++ bfIcons[BF_ERROR] = MakePix1(br->win, br_error_bits, + br_error_width, br_error_height); + + /* bfIcons[BF_UNKNOWN] = MakePix1(br->win, br_unknown_bits, +@@ -501,9 +501,9 @@ + + bfIcons[BF_SUNRAS] = MakePix1(br->win, br_sunras_bits, + br_sunras_width, br_sunras_height); +- bfIcons[BF_BMP] = MakePix1(br->win,br_bmp_bits, ++ bfIcons[BF_BMP] = MakePix1(br->win,br_bmp_bits, + br_bmp_width, br_bmp_height); +- bfIcons[BF_UTAHRLE] = MakePix1(br->win, br_utahrle_bits, ++ bfIcons[BF_UTAHRLE] = MakePix1(br->win, br_utahrle_bits, + br_utahrle_width, br_utahrle_height); + + bfIcons[BF_IRIS]=MakePix1(br->win,br_iris_bits,br_iris_width,br_iris_height); +@@ -528,13 +528,13 @@ + + /* check that they all got built */ + for (i=0; ivis) break; + } + if (i==MAXBRWIN) return; /* full up: shouldn't happen */ +- ++ + anyBrowUp = 1; + XMapRaised(theDisp, br->win); + br->vis = 1; +- ++ + freeBfList(br); + + /* see if some browser is pointing to the same path as CWD. If so, +@@ -645,7 +645,7 @@ + /* free all info for this browse window */ + freeBfList(br); + sprintf(br->path, BOGUSPATH); +- ++ + /* turn on 'open new window' command doodads */ + windowMB.dim[WMB_BROWSE] = 0; + for (i=0; iwindow == br->win) drawBrow(br); + + else if (e->window == br->iconW) +@@ -811,7 +810,7 @@ + if (e->window == br->win) clickBrow(br,x,y); + else if (e->window == br->scrl.win) SCTrack(&(br->scrl),x,y); + else if (e->window == br->iconW) { +- i = clickIconWin(br, x,y,(unsigned long) e->time, ++ i = clickIconWin(br, x,y,(unsigned long) e->time, + (e->state&ControlMask) || (e->state&ShiftMask)); + + } +@@ -837,7 +836,7 @@ + + if (br->wide != e->width || br->high != e->height) { + if (DEBUG) fprintf(stderr,"Forcing a redraw! (from configure)\n"); +- XClearArea(theDisp, br->win, 0, 0, ++ XClearArea(theDisp, br->win, 0, 0, + (u_int) e->width, (u_int) e->height, True); + resizeBrowse(br, e->width, e->height); + } +@@ -877,7 +876,7 @@ + int w,h; + { + XSizeHints hints; +- int i, minv, maxv, curv, page, maxh; ++ int i, maxv, page, maxh; + + if (br->wide == w && br->high == h) return; /* no change in size */ + +@@ -895,7 +894,7 @@ + br->iwHigh = (maxh / ISPACE_HIGH) * ISPACE_HIGH; + if (br->iwHigh < ISPACE_HIGH) br->iwHigh = ISPACE_HIGH; + +- XMoveResizeWindow(theDisp, br->iconW, LRMARGINS, TOPMARGIN, ++ XMoveResizeWindow(theDisp, br->iconW, LRMARGINS, TOPMARGIN, + (u_int) br->iwWide, (u_int) br->iwHigh); + + +@@ -907,11 +906,11 @@ + for (i=0; inumbutshown) ++ if (inumbutshown) + br->but[i].x = br->wide - (1+br->numbutshown-i) * (BUTTW+5); + else if (i==BR_CLOSE) + br->but[i].x = br->wide - (BUTTW+5); +- else ++ else + br->but[i].x = br->wide + 10; /* offscreen */ + + br->but[i].y = br->high - BUTTH - 5; +@@ -928,11 +927,11 @@ + br->numWide = br->iwWide / ISPACE_WIDE; + br->visHigh = br->iwHigh / ISPACE_HIGH; + +- /* compute minv,maxv,curv,page values based on new current size */ ++ /* compute maxv,page values based on new current size */ + computeScrlVals(br, &maxv, &page); + if (br->scrl.val>maxv) br->scrl.val = maxv; +- +- SCChange(&br->scrl, LRMARGINS+br->iwWide+1, TOPMARGIN, ++ ++ SCChange(&br->scrl, LRMARGINS+br->iwWide+1, TOPMARGIN, + 1, br->iwHigh, 0, maxv, br->scrl.val, page); + } + +@@ -945,7 +944,7 @@ + /* put string in *all* browse windows */ + int i; + +- for (i=0; idispstr, str, (size_t) 256); ++ br->dispstr[255] = '\0'; + drawBrowStr(br); + XFlush(theDisp); + } +@@ -992,7 +992,7 @@ + + char tmp[64]; + +- sprintf(tmp, "Re-coloring icons: processed %d out of %d...", ++ sprintf(tmp, "Re-coloring icons: processed %d out of %d...", + i+1, br->bfLen); + setBrowStr(br, tmp); + } +@@ -1011,14 +1011,14 @@ + { + /* called when file 'name' has been deleted. If any of the browsers + were showing the directory that the file was in, does a rescan() */ +- ++ + int i; + char buf[MAXPATHLEN + 2], *tmp; + + strcpy(buf, name); + tmp = BaseName(buf); + *tmp = '\0'; /* truncate after last '/' */ +- ++ + for (i=0; ibfLen; i++) ++ for (i=0; ibfLen; i++) + br->bfList[i].lit = 1; + br->numlit = br->bfLen; + +@@ -1087,13 +1087,13 @@ + break; + + case BR_TEXTVIEW: doTextCmd(br); break; +- ++ + case BR_QUIT: Quit(0); break; + + case BR_CLOSE: closeBrowse(br); break; + + case BR_HIDDEN: br->showhidden = !br->showhidden; +- br->cmdMB.list[cmd] = (br->showhidden) ++ br->cmdMB.list[cmd] = (br->showhidden) + ? hideHstr : showHstr; + rescanDir(br); + break; +@@ -1137,16 +1137,16 @@ + + if (br->bfLen != 1) sprintf(foo, "%d files", br->bfLen); + else strcpy(foo, "1 file"); +- ++ + XSetForeground(theDisp, theGC, browbg); +- XFillRectangle(theDisp,br->win, theGC, x+1,y+1, ++ XFillRectangle(theDisp,br->win, theGC, x+1,y+1, + (u_int) StringWidth(foo)+6, (u_int) br->dirMB.h-1); + + XSetForeground(theDisp,theGC,browfg); + XDrawRectangle(theDisp,br->win, theGC, x,y, + (u_int) StringWidth(foo)+7, (u_int) br->dirMB.h); + +- Draw3dRect(br->win, x+1, y+1, (u_int) StringWidth(foo)+5, ++ Draw3dRect(br->win, x+1, y+1, (u_int) StringWidth(foo)+5, + (u_int) br->dirMB.h-2, R3D_IN, 2, browhi, browlo, browbg); + + XSetForeground(theDisp,theGC,browfg); +@@ -1163,7 +1163,7 @@ + + if (nf != 1) sprintf(foo,"%d files",nf); + else strcpy(foo,"1 file"); +- ++ + XClearArea(theDisp,br->win, 30, br->dirMB.y, + (u_int) StringWidth(foo)+8, (u_int) br->dirMB.h+1, False); + } +@@ -1185,13 +1185,13 @@ + + XSetForeground(theDisp,theGC,browfg); + XDrawRectangle(theDisp,br->win, theGC, x,y, (u_int) w, (u_int) h); +- Draw3dRect(br->win, x+1, y+1, (u_int) w-2, (u_int) h-2, ++ Draw3dRect(br->win, x+1, y+1, (u_int) w-2, (u_int) h-2, + R3D_IN, 2, browhi, browlo, browbg); + + XSetForeground(theDisp,theGC,browfg); + XSetBackground(theDisp,theGC,browbg); +- XCopyPlane(theDisp, trashPix, br->win, theGC, +- 0,0,(u_int) br_trash_width, (u_int) br_trash_height, ++ XCopyPlane(theDisp, trashPix, br->win, theGC, ++ 0,0,(u_int) br_trash_width, (u_int) br_trash_height, + x+(w-br_trash_width)/2, y+(h-br_trash_height)/2, + 1L); + } +@@ -1222,7 +1222,7 @@ + y = br->high - (BUTTH+10) - (CHIGH + 6); + + XSetForeground(theDisp, theGC, browbg); +- XFillRectangle(theDisp, br->win, theGC, 0, y+3, ++ XFillRectangle(theDisp, br->win, theGC, 0, y+3, + (u_int) br->wide, (u_int) CHIGH+1); + + XSetForeground(theDisp, theGC, browfg); +@@ -1277,7 +1277,7 @@ + { + /* sets the '# files selected' string in the brow window appropriately */ + +- /* criteria: ++ /* criteria: + * if no files are lit, display '' + * if 1 file is lit, pretend it was selected, fall through... + * if 1 or more files are lit +@@ -1316,7 +1316,7 @@ + + else if (bf->ftype != BF_DIR) { /* no info. display file size */ + struct stat st; +- ++ + sprintf(buf, "%s%s", br->path, bf->name); /* build filename */ + if (stat(buf, &st) == 0) { + sprintf(buf, "%s: %ld bytes", bf->name, st.st_size); +@@ -1360,8 +1360,8 @@ + if (j>=0 && j < br->bfLen) drawIcon(br,j); + } + } +- +- Draw3dRect(br->iconW, 0, 0, (u_int) br->iwWide-1, (u_int) br->iwHigh-1, ++ ++ Draw3dRect(br->iconW, 0, 0, (u_int) br->iwWide-1, (u_int) br->iwHigh-1, + R3D_IN, 2, browhi, browlo, browbg); + } + +@@ -1371,10 +1371,8 @@ + int delta; + SCRL *sptr; + { +- int i,indx, x,y, ix,iy, num; +- BFIL *bf; ++ int i,indx, num; + BROWINFO *br; +- char tmpstr[64], *nstr; + + /* figure out BROWINFO pointer from SCRL pointer */ + for (i=0; i br->iwHigh-4) h = (br->iwHigh-4)-y + 2; + } + XFillRectangle(theDisp, br->iconW, theGC, x, y, ISPACE_WIDE, (u_int) h); +- ++ + if (indx>=0 && indx < br->bfLen) drawIcon(br, indx); + } + } + +- Draw3dRect(br->iconW, 0, 0, (u_int) br->iwWide-1, (u_int) br->iwHigh-1, ++ Draw3dRect(br->iconW, 0, 0, (u_int) br->iwWide-1, (u_int) br->iwHigh-1, + R3D_IN, 2, browhi, browlo, browbg); + } + +@@ -1431,7 +1429,10 @@ + { + int i,x,y,ix,iy,sw,sh,sx,sy; + BFIL *bf; +- char tmpstr[64], fixedname[64], *nstr, *str; ++ char tmpstr[64], *nstr, *str; ++#ifdef VMS ++ char fixedname[64]; ++#endif + + + if (num<0 || num >= br->bfLen) return; +@@ -1463,12 +1464,12 @@ + } + + else if (bf->ftype == BF_HAVEIMG && bf->ximage) { +- XPutImage(theDisp, br->iconW, theGC, bf->ximage, 0,0, ix,iy, ++ XPutImage(theDisp, br->iconW, theGC, bf->ximage, 0,0, ix,iy, + (u_int) bf->w, (u_int) bf->h); + } + + else { /* shouldn't happen */ +- XDrawRectangle(theDisp, br->iconW, theGC, ix, iy, ++ XDrawRectangle(theDisp, br->iconW, theGC, ix, iy, + (u_int) bf->w, (u_int) bf->h); + } + +@@ -1488,24 +1489,25 @@ + + /* decide if the title is too big, and shorten if neccesary */ + if (StringWidth(str) > ISPACE_WIDE-6) { +- int dotpos; ++ int dotpos; + strncpy(tmpstr, str, (size_t) 56); ++ tmpstr[56] = '\0'; /* MR: otherwise it dies on long file names */ + dotpos = strlen(tmpstr); + strcat(tmpstr,"..."); + + while(StringWidth(tmpstr) > ISPACE_WIDE-6 && dotpos>0) { + /* change last non-dot char in tmpstr to a dot, and lop off + last dot */ +- ++ + dotpos--; + tmpstr[dotpos] = '.'; + tmpstr[dotpos+3] = '\0'; + } +- ++ + nstr = tmpstr; + } + else nstr = str; +- ++ + + /* draw the title */ + sw = StringWidth(nstr); +@@ -1516,12 +1518,12 @@ + + XSetForeground(theDisp, theGC, + (bf->lit && bf->lit!=ICON_ONLY) ? browfg : browbg); +- XFillRectangle(theDisp, br->iconW, theGC, sx, sy, ++ XFillRectangle(theDisp, br->iconW, theGC, sx, sy, + (u_int) sw + 4, (u_int) sh + 2); + + XSetForeground(theDisp, theGC, + (bf->lit && bf->lit!=ICON_ONLY) ? browbg : browfg); +- CenterString(br->iconW, x + ISPACE_WIDE/2, ++ CenterString(br->iconW, x + ISPACE_WIDE/2, + y + ISPACE_TOP + ISIZE_HIGH + ISPACE_TTOP + CHIGH/2, nstr); + } + +@@ -1535,7 +1537,6 @@ + + int i,x,y,ix,iy,w,h; + BFIL *bf; +- char tmpstr[64], *nstr; + + if (num<0 || num >= br->bfLen) return; + bf = &(br->bfList[num]); +@@ -1579,12 +1580,12 @@ + y = (i / br->numWide) * ISPACE_HIGH; + + XSetForeground(theDisp, theGC, browbg); +- XFillRectangle(theDisp, br->iconW, theGC, ++ XFillRectangle(theDisp, br->iconW, theGC, + x, y + ISPACE_TOP + ISIZE_HIGH + ISPACE_TTOP - 1, + (u_int) ISPACE_WIDE, (u_int) LINEHIGH); + +- if (ctrlColor) +- Draw3dRect(br->iconW, 0, 0, (u_int) br->iwWide-1, (u_int) br->iwHigh-1, ++ if (ctrlColor) ++ Draw3dRect(br->iconW, 0, 0, (u_int) br->iwWide-1, (u_int) br->iwHigh-1, + R3D_IN, 2, browhi, browlo, browbg); + } + +@@ -1658,7 +1659,7 @@ + /* returns '-1' normally, returns an index into bfList[] if the user + double-clicks an icon */ + +- int i,j, base, num, x,y,ix,iy, rv, sel, cpymode, dodel; ++ int i,j, rv, sel, cpymode, dodel; + BROWINFO *destBr; + BFIL *bf; + char buf[256], *destFolderName; +@@ -1681,7 +1682,7 @@ + } + + changedNumLit(br, sel, 0); +- br->lastIconClicked = -1; ++ br->lastIconClicked = -1; + } + + +@@ -1725,10 +1726,9 @@ + + changedNumLit(br, sel, 0); + +- ++ + /* see if we've double-clicked something */ + if (sel==br->lastIconClicked && mtime-br->lastClickTime < DBLCLICKTIME) { +- int k; + br->lastIconClicked = -1; /* YES */ + + doubleClick(br, sel); +@@ -1759,10 +1759,10 @@ + first = 1; hasrect = 0; cpymode = 0; + origsval = br->scrl.val; + +- if ( (sel>=0 && !multi) || sel==-1) { ++ if ( (sel>=0 && !multi) || sel==-1) { + /* clicked on an icon, or clicked on nothing... */ + +- while (!XQueryPointer(theDisp, rootW, &rW, &cW, &rootx, &rooty, ++ while (!XQueryPointer(theDisp, rootW, &rW, &cW, &rootx, &rooty, + &x,&y,&mask)); + if (mask & Button1Mask) { /* still held down */ + +@@ -1773,7 +1773,7 @@ + else curs = movecurs; + + /* change cursors */ +- for (i=0; i=0) { /* see if changed copy/move status (and cursor) */ + int cmod; +- ++ + cmod = (mask&ControlMask || mask&ShiftMask) ? 1 : 0; + + if (cmod != cpymode && !dodel) { + curs = (cmod) ? copycurs : movecurs; +- for (i=0; iiconW, rootx,rooty, ++ XTranslateCoordinates(theDisp, rW, br->iconW, rootx,rooty, + &iwx,&iwy, &cW); + + /* find deepest child that the mouse is in */ +@@ -1837,12 +1837,12 @@ + /* if it's in any icon window, and we're doing icon-dragging + OR we're doing a rectangle-drag */ + +- if (i=0 && (oldx!=x || oldy!=y || oldbrnum!=i)) { /* moved */ +@@ -1873,7 +1873,7 @@ + } + } + +- ++ + /* if we clicked on an icon (originally), and therefore are + showing the 'move files' cursor, see if the cursor is within + the icon region of any folders. If so, light up *the icon +@@ -1904,9 +1904,9 @@ + + /* Dragging a selection rectangle. */ + +- else { ++ else { + static int prevx, prevy, prevcnt; +- int origy, top, left, wide, high, cnt; ++ int origy, cnt; + + if (first) { prevx = mx; prevy = my; first=0; prevcnt = -1; } + +@@ -1922,18 +1922,18 @@ + + rx = (mx < x) ? mx : x; + ry = (origy < y) ? origy : y; +- rw = abs(mx - x); ++ rw = abs(mx - x); + rh = abs(origy - y); + + /* figure out which icons need to be lit/unlit. Only + redraw those that have changed state */ +- ++ + for (i=0,cnt=0, bf=br->bfList; ibfLen; i++,bf++) { +- int ix, iy, isin, light; ++ int ix, iy, isin; + +- ix = ((i%br->numWide) * ISPACE_WIDE) ++ ix = ((i%br->numWide) * ISPACE_WIDE) + + ISPACE_WIDE/2 - bf->w/2; +- iy = ((i/br->numWide) * ISPACE_HIGH) ++ iy = ((i/br->numWide) * ISPACE_HIGH) + + ISPACE_TOP + ISIZE_HIGH - bf->h; + + iy = iy - br->scrl.val * ISPACE_HIGH; +@@ -1994,7 +1994,7 @@ + } + + /* RELEASED BUTTON: back to normal arrow cursor */ +- for (i=0; ilit == TEMP_LIT || bf->lit == TEMP_LIT1) { + bf->lit = 1; drawIcon(br, i); + } +- ++ + if (bf->lit) br->numlit++; + } + +@@ -2020,7 +2020,6 @@ + + /* if doing a copy or a move, do the thing to the files */ + if (sel >= 0) { +- char *destFolder; + + if (DEBUG) { + fprintf(stderr,"---------------\n"); +@@ -2029,7 +2028,7 @@ + fprintf(stderr,"Dest Folder: '%s'\n", destFolderName); + } + +- ++ + if (!br->numlit) { + if (DEBUG) fprintf(stderr, "no selected files. Nothing to do!\n"); + } +@@ -2042,7 +2041,7 @@ + if (DEBUG) fprintf(stderr, "no destination. Nothing to do!\n"); + } + +- else if (strcmp(destFolderName,".") == 0 && ++ else if (strcmp(destFolderName,".") == 0 && + strcmp(br->path, destBr->path) == 0) { + if (DEBUG) fprintf(stderr,"source == destination. Nothing to do!\n"); + } +@@ -2067,12 +2066,12 @@ + } + } + if (DEBUG) fprintf(stderr,"\n\n"); +- ++ + #ifdef VMS + /* +- * For VMS, our directory file names are identifed by the +- * special filename extension, ".DIR". Unfortunately, this +- * needs to be stripped before we ever actually use the name ++ * For VMS, our directory file names are identifed by the ++ * special filename extension, ".DIR". Unfortunately, this ++ * needs to be stripped before we ever actually use the name + * in a copy command... :( RLD 26-FEB-1993 + */ + +@@ -2080,7 +2079,7 @@ + #endif + + +- dragFiles(br, destBr, br->path, destBr->path, destFolderName, nlist, ++ dragFiles(br, destBr, br->path, destBr->path, destFolderName, nlist, + ncnt, cpymode); + + /* free namelist */ +@@ -2155,7 +2154,7 @@ + } + + +- ++ + /* double-clicked something. We should do something about it */ + if (br->bfList[sel].ftype == BF_DIR) { /* try to cd */ + #ifndef VMS +@@ -2193,7 +2192,7 @@ + *event_retP = THISNEXT; + } + else { *event_retP = LOADPIC; SetDirFName(buf); } +- ++ + *event_doneP = 1; /* make MainLoop load image */ + } + } +@@ -2259,7 +2258,7 @@ + stlen = XLookupString(kevt, buf, 128, &ks, (XComposeStatus *) NULL); + shift = kevt->state & ShiftMask; + ck = CursorKey(ks, shift, 1); +- dealt = 1; ++ dealt = 1; + + RemapKeyCheck(ks, buf, &stlen); + +@@ -2306,7 +2305,7 @@ + char fname[MAXPATHLEN]; + + /* if 'shift-space' find last lit icon, select the next one after it, +- and load it. If 'space' do the same, but lose prior lit. These ++ and load it. If 'space' do the same, but lose prior lit. These + are the only cases where br->numlit >1 allowed */ + + if (br->numlit>1 && buf[0] != ' ') return; +@@ -2314,7 +2313,7 @@ + if (buf[0]==' ' && (br->numlit>1 || (br->numlit==1 && shift))) { + for (i=br->bfLen-1; i>=0 && !br->bfList[i].lit; i--); /* i=last lit */ + if (i==br->bfLen-1) return; +- ++ + i++; + if (!shift) { + for (j=0; jbfLen; j++) { +@@ -2364,7 +2363,7 @@ + for (i=0; ibfLen && !br->bfList[i].lit; i++); /* find lit one */ + sprintf(fname, "%s%s", br->path, br->bfList[i].name); + viewsel = !(strcmp(fname, fullfname)); +- ++ + if (viewsel) { + if (buf[0]==' ') browKey(br, CK_RIGHT); + else browKey(br, CK_LEFT); +@@ -2372,7 +2371,7 @@ + + if (!br->bfList[i].lit || !viewsel) { /* changed selection */ + for (i=0; ibfLen && !br->bfList[i].lit; i++); /* find it */ +- if (br->bfList[i].ftype != BF_DIR) ++ if (br->bfList[i].ftype != BF_DIR) + doubleClick(br, -1); + } + } +@@ -2410,10 +2409,10 @@ + /* handle up/down/left/right keys + * + * if precisely *one* item is lit, than the up/down/left/right keys move +- * the selection. ++ * the selection. + * + * if NO items are lit, then left/right select the first/last fully-displayed +- * icon, and up/down simply scroll window up or down, without selecting ++ * icon, and up/down simply scroll window up or down, without selecting + * anything + * + * if more than one item is lit, up/down/left/right keys BEEP +@@ -2443,8 +2442,8 @@ + if (key == CK_DOWN) j = i + br->numWide; + if (key == CK_LEFT) j = i - 1; + if (key == CK_RIGHT) j = i + 1; +- +- if (j >= 0 && j < br->bfLen) { ++ ++ if (j >= 0 && j < br->bfLen) { + br->bfList[i].lit = 0; + br->bfList[j].lit = 1; + makeIconVisible(br,j); +@@ -2455,7 +2454,7 @@ + } + } + +- ++ + if (br->numlit == 0) { /* no current selection */ + if (key == CK_UP) SCSetVal(&br->scrl, br->scrl.val - 1); + if (key == CK_DOWN) SCSetVal(&br->scrl, br->scrl.val + 1); +@@ -2541,13 +2540,13 @@ + * The VMS chdir always needs 2 components (device and directory), + * so convert "/device" to "/device/000000" and convert + * "/" to "/XV_Root_Device/000000" (XV_RootDevice will need to be +- * a special concealed device setup to provide list of available ++ * a special concealed device setup to provide list of available + * disks). + * + * End 'tmppath' by changing trailing '/' (of dir name) to a '\0' + */ + *rindex ( tmppath, '/') = '\0'; +- if ( ((br->ndirs-sel) == 2) && (strlen(tmppath) > 1) ) ++ if ( ((br->ndirs-sel) == 2) && (strlen(tmppath) > 1) ) + strcat ( tmppath, "/000000" ); /* add root dir for device */ + else if ((br->ndirs-sel) == 1 ) + strcpy ( tmppath, "/XV_Root_Device/000000" ); /* fake top level */ +@@ -2599,7 +2598,7 @@ + static void copyDirInfo(srcbr, dstbr) + BROWINFO *srcbr, *dstbr; + { +- /* copies br info from an already existing browser window ++ /* copies br info from an already existing browser window + (ie, one that is already showing the same directory) */ + + int i, oldnum, maxv, page; +@@ -2619,7 +2618,7 @@ + dstbr->dirMB.list = srcbr->mblist; + dstbr->dirMB.nlist = srcbr->ndirs; + +- XClearArea(theDisp, dstbr->dirMB.win, dstbr->dirMB.x, dstbr->dirMB.y, ++ XClearArea(theDisp, dstbr->dirMB.win, dstbr->dirMB.x, dstbr->dirMB.y, + dstbr->dirMB.w+3, dstbr->dirMB.h+3, False); + + i = StringWidth(dstbr->mblist[0]) + 10; +@@ -2644,7 +2643,7 @@ + + if ((i&0x03) == 0) drawTemp(dstbr, i, dstbr->bfLen); + if ((i & 0x3f) == 0) WaitCursor(); +- ++ + sbf = &(srcbr->bfList[i]); + dbf = &(dstbr->bfList[i]); + +@@ -2670,7 +2669,7 @@ + if (sbf->pimage) { + dbf->pimage = (byte *) malloc((size_t) dbf->w * dbf->h); + if (!dbf->pimage) FatalError("ran out of memory for dbf->pimage"); +- xvbcopy((char *) sbf->pimage, (char *) dbf->pimage, ++ xvbcopy((char *) sbf->pimage, (char *) dbf->pimage, + (size_t) (dbf->w * dbf->h)); + } + else dbf->pimage = (byte *) NULL; +@@ -2681,10 +2680,10 @@ + xvbcopy((char *) sbf->ximage, (char *) dbf->ximage, sizeof(XImage)); + + if (sbf->ximage->data) { +- dbf->ximage->data = (char *) malloc((size_t) dbf->ximage->height * ++ dbf->ximage->data = (char *) malloc((size_t) dbf->ximage->height * + dbf->ximage->bytes_per_line); + if (!dbf->ximage->data) FatalError("ran out of memory for ximg data"); +- xvbcopy((char *) sbf->ximage->data, (char *) dbf->ximage->data, ++ xvbcopy((char *) sbf->ximage->data, (char *) dbf->ximage->data, + (size_t) dbf->ximage->height * dbf->ximage->bytes_per_line); + } + } +@@ -2701,15 +2700,15 @@ + computeScrlVals(dstbr, &maxv, &page); + if (dstbr->scrl.val > maxv) dstbr->scrl.val = maxv; + +- XClearArea(theDisp, dstbr->iconW, 0, 0, (u_int) dstbr->iwWide, ++ XClearArea(theDisp, dstbr->iconW, 0, 0, (u_int) dstbr->iwWide, + (u_int) dstbr->iwHigh, True); + SCSetRange(&dstbr->scrl, 0, maxv, dstbr->scrl.val, page); + + SetCursors(-1); + } + +- +- ++ ++ + + /***************************************************************/ + static void scanDir(br) +@@ -2726,7 +2725,7 @@ + * and it's reasonable to expect folks to want to add their own bitmaps + */ + +- int i,j,k,oldbflen,vmsparent; ++ int i,j,oldbflen,vmsparent; + BFIL *bf; + + DIR *dirp; +@@ -2775,7 +2774,7 @@ + + /* build brMBlist */ + for (i = br->ndirs-1,j=0; i>=0; i--,j++) { +- size_t stlen = (i<(br->ndirs-1)) ? dirnames[i+1] - dirnames[i] ++ size_t stlen = (i<(br->ndirs-1)) ? dirnames[i+1] - dirnames[i] + : strlen(dirnames[i]); + + br->mblist[j] = (char *) malloc(stlen+1); +@@ -2784,13 +2783,13 @@ + strncpy(br->mblist[j], dirnames[i], stlen); + br->mblist[j][stlen] = '\0'; + } +- ++ + + /* refresh the brdirMB button */ + br->dirMB.list = br->mblist; + br->dirMB.nlist = br->ndirs; + +- XClearArea(theDisp, br->dirMB.win, br->dirMB.x, br->dirMB.y, ++ XClearArea(theDisp, br->dirMB.win, br->dirMB.x, br->dirMB.y, + br->dirMB.w+3, br->dirMB.h+3, False); + + i = StringWidth(br->mblist[0]) + 10; +@@ -2815,7 +2814,7 @@ + /* count how many files are in the list */ + + dirp = opendir("."); +- if (!dirp) { ++ if (!dirp) { + endScan(br, oldbflen); + setBrowStr(br, "Couldn't read current directory."); + SetCursors(-1); +@@ -2827,11 +2826,11 @@ + #endif + + while ( (dp = readdir(dirp)) != NULL) { +- if (strcmp(dp->d_name, ".") && ++ if (strcmp(dp->d_name, ".") && + strcmp(dp->d_name, THUMBDIR)) { +- if (!br->showhidden && dp->d_name[0] == '.' && ++ if (!br->showhidden && dp->d_name[0] == '.' && + strcmp(dp->d_name,"..")!=0) continue; +- else ++ else + br->bfLen++; + } + if ((br->bfLen & 0x3f) == 0) WaitCursor(); +@@ -2877,13 +2876,13 @@ + } + else { + do { dp = readdir(dirp); } +- while (dp && (strcmp(dp->d_name, ".")==0 || ++ while (dp && (strcmp(dp->d_name, ".")==0 || + strcmp(dp->d_name, THUMBDIR)==0 || + strcmp(dp->d_name, THUMBDIRNAME)==0 || + (br->ndirs==1 && strcmp(dp->d_name,"..")==0) || +- (!br->showhidden && dp->d_name[0] == '.' && ++ (!br->showhidden && dp->d_name[0] == '.' && + strcmp(dp->d_name,"..")!=0))); +- ++ + if (!dp) { br->bfLen = i; break; } /* dir got shorter... */ + } + +@@ -2940,11 +2939,11 @@ + if (w<1) w = 1; + if (h<1) h = 1; + +- XClearArea(theDisp, br->iconW, (ctrlColor) ? 2 : 0, (ctrlColor) ? 2 : 0, ++ XClearArea(theDisp, br->iconW, (ctrlColor) ? 2 : 0, (ctrlColor) ? 2 : 0, + (u_int) w, (u_int) h, False); + + SCSetRange(&br->scrl, 0, maxv, br->scrl.val, page); +- ++ + SetCursors(-1); + } + +@@ -2972,7 +2971,7 @@ + bf->pimage = (byte *) NULL; + bf->ximage = (XImage *) NULL; + bf->lit = 0; +- ++ + + if (stat(bf->name, &st)==0) { + bf->ftype = stat2bf((u_int) st.st_mode); +@@ -3048,11 +3047,11 @@ + bfcompares++; + if ((bfcompares & 0x7f)==0) WaitCursor(); + +- /* sort critera: directories first, in alphabetical order, ++ /* sort critera: directories first, in alphabetical order, + followed by everything else, in alphabetical order */ +- ++ + if ((b1->ftype == BF_DIR && b2->ftype == BF_DIR) || +- (b1->ftype != BF_DIR && b2->ftype != BF_DIR)) ++ (b1->ftype != BF_DIR && b2->ftype != BF_DIR)) + return strcmp(b1->name, b2->name); + + else if (b1->ftype == BF_DIR && b2->ftype != BF_DIR) return -1; +@@ -3108,7 +3107,7 @@ + for (i=0; ibfList[i].name) + 1); + if (!bfnames[i]) FatalError("couldn't alloc bfnames in rescanDir()"); +- ++ + strcpy(bfnames[i], br->bfList[i].name); + } + } +@@ -3121,7 +3120,7 @@ + + /* note, either (or both) dirnames/bfnames can be NULL, in which case + their respective 'len's will be zero */ +- ++ + /* sort the two name lists */ + if (bflen) qsort((char *) bfnames, (size_t) bflen, sizeof(char *),namcmp); + if (dirlen) qsort((char *) dirnames, (size_t) dirlen,sizeof(char *),namcmp); +@@ -3153,7 +3152,7 @@ + } + } + bflen = j; +- ++ + + for (i=j=0; ibfLen - bflen + dirlen; /* oldlen - #del'd + #created */ + if (newlen>0) { +@@ -3241,7 +3240,7 @@ + if (bf->pimage) free(bf->pimage); + if (bf->ximage) xvDestroyImage(bf->ximage); + } +- ++ + free(br->bfList); + } + +@@ -3267,13 +3266,13 @@ + int *lenP; + int dohidden; + { +- /* loads up all directory entries into an array. This *isn't* a great +- way to do it, but I can't count on 'scandir()' existing on ++ /* loads up all directory entries into an array. This *isn't* a great ++ way to do it, but I can't count on 'scandir()' existing on + every system. Returns 'NULL' on failure, or pointer to array of + 'lenP' strings on success. '.' and '..' ARE included in list + if !dohidden, all '.*' files are skipped (except . and ..) */ + +- int i, j, dirlen; ++ int i, dirlen; + DIR *dirp; + char **names; + #ifdef NODIRENT +@@ -3294,9 +3293,9 @@ + /* count # of entries in dir (worst case) */ + for (dirlen=0; (dp = readdir(dirp)) != NULL; dirlen++); + if (!dirlen) { +- closedir(dirp); ++ closedir(dirp); + *lenP = dirlen; +- return (char **) NULL; ++ return (char **) NULL; + } + + +@@ -3312,7 +3311,7 @@ + + if (!dohidden) { + #ifndef VMS +- if (dp->d_name[0] == '.' && ++ if (dp->d_name[0] == '.' && + strcmp(dp->d_name,"." )!=0 && + strcmp(dp->d_name,"..")!=0) continue; + #endif +@@ -3324,7 +3323,7 @@ + strcpy(names[i], dp->d_name); + i++; + } +- ++ + if (iname || bf->name[0] == '\0') return; /* shouldn't happen */ + str[0] = '\0'; + basefname[0] = '\0'; + pinfo.pic = (byte *) NULL; + pinfo.comment = (char *) NULL; + readname = bf->name; +- ++ + /* free any old info in 'bf' */ + if (bf->imginfo) free (bf->imginfo); + if (bf->pimage) free (bf->pimage); + if (bf->ximage) xvDestroyImage(bf->ximage); +- ++ + bf->imginfo = (char *) NULL; + bf->pimage = (byte *) NULL; + bf->ximage = (XImage *) NULL; +@@ -3429,9 +3428,9 @@ + + /* skip all 'special' files */ + if (!ISLOADABLE(bf->ftype)) return; +- ++ + filetype = ReadFileType(bf->name); +- ++ + if (filetype == RFT_COMPRESS) { + #if (defined(VMS) && !defined(GUNZIP)) + /* VMS decompress doesn't like the file to have a trailing .Z in fname +@@ -3442,7 +3441,7 @@ + #else + uncName = bf->name; + #endif +- ++ + if (UncompressFile(uncName, uncompname)) { + filetype = ReadFileType(uncompname); + readname = uncompname; +@@ -3453,61 +3452,61 @@ + bf->ftype = BF_ERROR; + } + } +- ++ + /* get rid of comments. don't need 'em */ + if (pinfo.comment) free(pinfo.comment); pinfo.comment = (char *) NULL; +- +- if (filetype == RFT_ERROR) { ++ ++ if (filetype == RFT_ERROR) { + sprintf(str,"Couldn't open file '%s'", bf->name); + setBrowStr(br, str); + bf->ftype = BF_ERROR; + } +- ++ + else if (filetype == RFT_UNKNOWN) { + /* if it *was* an 'exe', leave it that way */ + if (bf->ftype != BF_EXE) bf->ftype = BF_UNKNOWN; + } +- ++ + else { + /* otherwise it's a known filetype... do the *hard* part now... */ +- ++ + i = ReadPicFile(readname, filetype, &pinfo, 1); + KillPageFiles(pinfo.pagebname, pinfo.numpages); +- ++ + if (!i) bf->ftype = BF_ERROR; +- ++ + if (i && (pinfo.w<=0 || pinfo.h<=0)) { /* bogus size */ + bf->ftype = BF_ERROR; + free(pinfo.pic); pinfo.pic = (byte *) NULL; + } +- ++ + if (bf->ftype==BF_ERROR && filetype==RFT_XBM) bf->ftype = BF_UNKNOWN; + } +- ++ + /* get rid of comment, as we don't need it */ +- if (pinfo.comment) { ++ if (pinfo.comment) { + free(pinfo.comment); pinfo.comment = (char *) NULL; + } +- ++ + /* if we made an uncompressed file, we can rm it now */ + if (readname != bf->name) unlink(readname); +- +- ++ ++ + /* at this point either BF_ERROR, BF_UNKNOWN, BF_EXE or pic */ +- ++ + if (!pinfo.pic) { + if (bf->ftype == BF_EXE) return; /* don't write thumbfiles for exe's */ +- ++ + bf->w = br_file_width; bf->h = br_file_height; + writeThumbFile(br, bf, NULL, 0, 0, NULL); /* BF_ERROR, BF_UNKNOWN */ + return; + } +- ++ + /* at this point, we have a pic, so it must be an image file */ +- +- ++ ++ + /* compute size of icon (iwide,ihigh) */ +- ++ + wexpand = (double) pinfo.w / (double) ISIZE_WIDE; + hexpand = (double) pinfo.h / (double) ISIZE_HIGH; + +@@ -3527,13 +3526,13 @@ + + + /* generate icon */ +- icon24 = Smooth24(pinfo.pic, pinfo.type==PIC24, pinfo.w, pinfo.h, ++ icon24 = Smooth24(pinfo.pic, pinfo.type==PIC24, pinfo.w, pinfo.h, + iwide, ihigh, pinfo.r,pinfo.g,pinfo.b); + if (!icon24) { bf->ftype = BF_FILE; free(pinfo.pic); return; } + + sprintf(str, "%dx%d ", pinfo.normw, pinfo.normh); + switch (filetype) { +- case RFT_GIF: if (xv_strstr(pinfo.shrtInfo, "GIF89")) ++ case RFT_GIF: if (xv_strstr(pinfo.shrtInfo, "GIF89")) + strcat(str,"GIF89 file"); + else + strcat(str,"GIF87 file"); +@@ -3543,12 +3542,12 @@ + + case RFT_PBM: if (xv_strstr(pinfo.fullInfo, "raw")) strcat(str,"Raw "); + else strcat(str,"Ascii "); +- ++ + for (i=0; i<3 && (strlen(pinfo.fullInfo)>(size_t)3); i++){ + str1[0] = pinfo.fullInfo[i]; str1[1] = '\0'; + strcat(str, str1); + } +- ++ + strcat(str," file"); + break; + +@@ -3569,19 +3568,19 @@ + case RFT_FITS: strcat(str,"FITS file"); break; + default: strcat(str,"file of unknown type"); break; + } +- +- ++ ++ + /* find out length of original file */ + { FILE *fp; + long filesize; + char buf[64]; +- ++ + fp = fopen(bf->name, "r"); + if (fp) { + fseek(fp, 0L, 2); + filesize = ftell(fp); + fclose(fp); +- ++ + sprintf(buf," (%ld bytes)", filesize); + strcat(str, buf); + } +@@ -3609,17 +3608,17 @@ + bf->w = iwide; + bf->h = ihigh; + bf->ftype = BF_HAVEIMG; +- ++ + bf->ximage = Pic8ToXImage(icon8, (u_int) iwide, (u_int) ihigh, browcols, + browR, browG, browB); +- ++ + free(icon24); + free(pinfo.pic); + } + + + +- ++ + + + /* +@@ -3682,7 +3681,7 @@ + /* read comments until we see '#END_OF_COMMENTS', or hit EOF */ + while (1) { + if (!fgets(buf, 256, fp)) goto errexit; +- ++ + if (!strncmp(buf, "#END_OF_COMMENTS", strlen("#END_OF_COMMENTS"))) + break; + +@@ -3714,7 +3713,7 @@ + + + /* read width, height, maxval */ +- if (!fgets(buf, 256, fp) || sscanf(buf, "%d %d %d", &w, &h, &mv) != 3) ++ if (!fgets(buf, 256, fp) || sscanf(buf, "%d %d %d", &w, &h, &mv) != 3) + goto errexit; + + +@@ -3738,14 +3737,14 @@ + bf->h = h; + bf->ftype = BF_HAVEIMG; + bf->imginfo = info; +- +- bf->ximage = Pic8ToXImage(icon8, (u_int) w, (u_int) h, browcols, ++ ++ bf->ximage = Pic8ToXImage(icon8, (u_int) w, (u_int) h, browcols, + browR, browG, browB); + } + else { + if (info) free(info); + } +- ++ + fclose(fp); + return; + +@@ -3757,7 +3756,7 @@ + } + + +- ++ + /***************************************************************/ + static void writeThumbFile(br, bf, icon8, w, h, info) + BROWINFO *br; +@@ -3787,7 +3786,7 @@ + + fp = fopen(thFname, "w"); + if (!fp) { +- sprintf(buf, "Can't create thumbnail file '%s': %s", thFname, ++ sprintf(buf, "Can't create thumbnail file '%s': %s", thFname, + ERRSTR(errno)); + setBrowStr(br, buf); + return; /* can't write... */ +@@ -3829,9 +3828,9 @@ + setBrowStr(br, buf); + return; /* can't write... */ + } +- ++ + fclose(fp); +- ++ + chmod(thFname, (mode_t) perm); + } + +@@ -3915,7 +3914,7 @@ + + if (s1 || s2 || filest.st_mtime > thumbst.st_mtime || + filest.st_ctime > thumbst.st_ctime) { +- /* either stat'ing the file or the thumbfile failed, or ++ /* either stat'ing the file or the thumbfile failed, or + both stat's succeeded and the file has a newer mod or creation + time than the thumbnail file */ + +@@ -3926,8 +3925,8 @@ + + if (bf->ftype != BF_EXE) { + iconsBuilt++; +- if (DEBUG) +- fprintf(stderr,"icon made:fname='%s' thfname='%s' %d,%d,%d,%d\n", ++ if (DEBUG) ++ fprintf(stderr,"icon made:fname='%s' thfname='%s' %d,%d,%ld,%ld\n", + bf->name, thfname, s1,s2,filest.st_mtime,thumbst.st_mtime); + } + } +@@ -3974,7 +3973,7 @@ + } + } + statcount++; +- ++ + if ((statcount % 30)==0) WaitCursor(); + } + closedir(dirp); +@@ -3998,16 +3997,16 @@ + { + if (maxcnt<1) return; /* none of that naughty ol' divide by zero stuff */ + +- DrawTempGauge(br->win, 5, br->dirMB.y, ++ DrawTempGauge(br->win, 5, br->dirMB.y, + (int) br->dirMB.x-10, (int) br->dirMB.h, + (double) cnt / (double) maxcnt, + browfg, browbg, browhi, browlo, ""); + } +- ++ + static void clearTemp(br) + BROWINFO *br; + { +- XClearArea(theDisp, br->win, 5, br->dirMB.y, ++ XClearArea(theDisp, br->win, 5, br->dirMB.y, + (u_int) br->dirMB.x-10+1, (u_int) br->dirMB.h + 1, True); + } + +@@ -4048,7 +4047,7 @@ + /* find the selected file */ + for (i=0; ibfLen && !br->bfList[i].lit; i++); + if (i==br->bfLen) return; /* shouldn't happen */ +- ++ + origname = br->bfList[i].name; num = i; + + if (strcmp(origname, "..")==0) { +@@ -4058,7 +4057,7 @@ + return; + } + +- sprintf(txt, "Enter a new name for the %s '%s':", ++ sprintf(txt, "Enter a new name for the %s '%s':", + (br->bfList[i].ftype==BF_DIR) ? "directory" : "file", + origname); + +@@ -4107,7 +4106,7 @@ + drawIcon(br, num); + + for (i=0; ipath)==0) ++ if (&binfo[i] != br && strcmp(binfo[i].path, br->path)==0) + rescanDir(&binfo[i]); + } + +@@ -4133,7 +4132,7 @@ + if (cdBrow(br)) return; + + buf[0] = '\0'; +- i = GetStrPopUp("Enter name for new directory:", labels, 2, ++ i = GetStrPopUp("Enter name for new directory:", labels, 2, + buf, 128, "/ |\'\"<>,", 0); + if (i) return; /* cancelled */ + +@@ -4161,7 +4160,7 @@ + + /* rescan current br, and all other br's pointing to same directory */ + for (i=0; ipath)==0) ++ if (strcmp(binfo[i].path, br->path)==0) + rescanDir(&binfo[i]); + } + +@@ -4179,7 +4178,7 @@ + int i; + static char buf[MAXPATHLEN+100]; + static char *labels[] = { "\nOk", "\033Cancel" }; +- char str[512]; ++ char str[512]; + + buf[0] = '\0'; + i = GetStrPopUp("Change to directory:", labels, 2, buf, MAXPATHLEN, " ", 0); +@@ -4226,7 +4225,7 @@ + */ + + BFIL *bf; +- int i, j, numdirs, numfiles, slen, firstdel; ++ int i, numdirs, numfiles, slen, firstdel; + char buf[512]; + static char *yesno[] = { "\004Delete", "\033Cancel" }; + +@@ -4258,7 +4257,7 @@ + } + + +- /* if any plain files are being toasted, bring up the low-key ++ /* if any plain files are being toasted, bring up the low-key + confirmation box */ + + if (numfiles) { +@@ -4281,7 +4280,7 @@ + i = PopUp(buf, yesno, 2); + if (i) return; /* cancelled */ + } +- ++ + + /* if any directories are being toasted, bring up the are you REALLY sure + confirmation box */ +@@ -4309,7 +4308,7 @@ + + + /* okay, at this point they've been warned. do the deletion */ +- ++ + for (i=0, bf=br->bfList; ibfLen; i++,bf++) { + if (bf->lit) { + if (bf->ftype == BF_DIR) rm_dir (br, bf->name); +@@ -4340,7 +4339,7 @@ + + /* rescan other br's that are looking at this directory */ + for (i=0; ipath)==0) ++ if (&binfo[i] != br && strcmp(binfo[i].path, br->path)==0) + rescanDir(&binfo[i]); + } + +@@ -4356,7 +4355,7 @@ + int i; + static char buf[MAXPATHLEN+100]; + static char *labels[] = { "\nOk", "\033Cancel" }; +- char str[512]; ++ char str[512]; + + buf[0] = '\0'; + strcpy(str,"Select file name(s). Wildcard '*' is allowed. "); +@@ -4396,7 +4395,7 @@ + { + int i; + static char *labels[] = { "\nOk", "\033Cancel" }; +- char str[512]; ++ char str[512]; + + strcpy(str,"Recursive Update: This could take *quite* a while.\n"); + strcat(str,"Are you sure?"); +@@ -4415,7 +4414,7 @@ + + + /*******************************************/ +-static void recurseUpdate(br, subdir) ++static void recurseUpdate(br, subdir) + BROWINFO *br; + char *subdir; + { +@@ -4430,7 +4429,7 @@ + * and for each subdir in this dir, recurse + * + * if cur dir != orig dir, cd back to orig dir and reload 'br' +- */ ++ */ + + int i; + char orgDir[MAXPATHLEN + 2]; +@@ -4449,7 +4448,7 @@ + } + + xv_getwd(curDir, sizeof(curDir)); +- ++ + /* have we looped? */ + for (i=0; ibfLen; i++) { + bf = &(br->bfList[i]); +- if (bf && +- bf->ftype == BF_DIR && ++ if (bf && ++ bf->ftype == BF_DIR && + strcmp(bf->name, ".") && + strcmp(bf->name, "..") && + strcmp(bf->name, THUMBDIRNAME) ) { +@@ -4524,7 +4523,7 @@ + tmp = (char *) rindex(buf1, '/'); + if (!tmp) strcpy(buf1,"."); + else *tmp = '\0'; +- ++ + sprintf(buf, "%s/%s/%s", buf1, THUMBDIR, BaseName(name)); + if (DEBUG) fprintf(stderr," (%s)\n", buf); + +@@ -4548,7 +4547,7 @@ + BROWINFO *br; + { + /* recursively delete this directory, and all things under it */ +- ++ + int i, dirlen, longpath, oldpathlen; + char **names, *name, buf[512]; + struct stat st; +@@ -4569,7 +4568,7 @@ + name = names[i]; + + /* skip . and .. (not that we should ever see them... */ +- if (name[0] == '.' && (name[1]=='\0' || ++ if (name[0] == '.' && (name[1]=='\0' || + (name[1]=='.' && name[2]=='\0'))) goto done; + + if (strlen(name) + oldpathlen >= (MAXPATHLEN-3)) { +@@ -4586,7 +4585,7 @@ + rmdirPath[oldpathlen] = '\0'; + goto done; + } +- ++ + if (stat2bf((u_int) st.st_mode) == BF_DIR) { /* skip, for now */ + rmdirPath[oldpathlen] = '\0'; + continue; /* don't remove from list */ +@@ -4594,7 +4593,7 @@ + + rm_file(br, rmdirPath); + rmdirPath[oldpathlen] = '\0'; +- ++ + done: /* remove name from list */ + free(name); + names[i] = (char *) NULL; +@@ -4645,19 +4644,19 @@ + + + /*******************************************/ +-static void dragFiles(srcBr, dstBr, srcpath, dstpath, dstdir, ++static void dragFiles(srcBr, dstBr, srcpath, dstpath, dstdir, + names, nlen, cpymode) + BROWINFO *srcBr, *dstBr; + char *srcpath, *dstpath, *dstdir, **names; + int nlen, cpymode; + { +- /* move or copy file(s) and their associated thumbnail files. ++ /* move or copy file(s) and their associated thumbnail files. + srcpath and dstpath will have trailing '/'s. dstdir is name of + folder in dstpath (or "." or "..") to write to. names is an nlen + long array of strings (the simple filenames of the files to move) + if 'cpymode' copy files, otherwise move them */ + +- int i, j, k, dothumbs, fail; ++ int i, j, dothumbs, fail; + char dstp[MAXPATHLEN + 1]; + char src[MAXPATHLEN+1], dst[MAXPATHLEN+1]; + char buf[128]; +@@ -4750,7 +4749,7 @@ + + + /* clear all files in the destination folder */ +- for (i=0; ibfLen; i++) { ++ for (i=0; ibfLen; i++) { + dstBr->bfList[i].lit = 0; + } + dstBr->numlit = 0; +@@ -4760,10 +4759,10 @@ + for (i=0; ibfList; ++ for (j=0, bf=dstBr->bfList; + jbfLen && strcmp(name, bf->name)!=0; j++, bf++); +- if (jbfLen) { +- bf->lit = 1; dstBr->numlit++; ++ if (jbfLen) { ++ bf->lit = 1; dstBr->numlit++; + } + } + +@@ -4783,10 +4782,10 @@ + changedNumLit(srcBr, -1, 0); + + +- if (fail) sprintf(buf, "Some files were not %s because of errors.", ++ if (fail) sprintf(buf, "Some files were not %s because of errors.", + cpymode ? "copied" : "moved"); + +- else if (nlen>1) sprintf(buf, "%d files %s", nlen, ++ else if (nlen>1) sprintf(buf, "%d files %s", nlen, + (cpymode) ? "copied" : "moved"); + else buf[0] = '\0'; + setBrowStr(srcBr, buf); +@@ -4824,7 +4823,7 @@ + dstdir = (stat2bf((u_int) st.st_mode) == BF_DIR); + + if (overwrite==OWRT_ASK) { +- sprintf(buf, "%s '%s' exists.\n\nOverwrite?", ++ sprintf(buf, "%s '%s' exists.\n\nOverwrite?", + dstdir ? "Directory" : "File", dst); + i = PopUp(buf, owbuts, 4); + +@@ -4848,7 +4847,7 @@ + } + } + +- ++ + if (!rename(src, dst)) return 0; /* Ok */ + if (errno != EXDEV) return 1; /* failure, of some sort */ + +@@ -4896,7 +4895,7 @@ + /* possible cases: source is either a file or a directory, or doesn't exist, + destination is either a file, a directory, or doesn't exist. + +- if source doesn't exist, nothing to do. ++ if source doesn't exist, nothing to do. + if source is a file: + if dest is a file, popup 'overwriting' question, delete file if ok + if dest is a dir, popup 'overwriting dir' question, delete dir if ok +@@ -4957,7 +4956,7 @@ + /* destination doesn't exist no more, if it ever did... */ + userMask = umask(0); /* grab the umask */ + umask((mode_t) userMask); /* put it back... */ +- ++ + + strcpy(cpSrcPath, src); + strcpy(cpDstPath, dst); +@@ -5017,7 +5016,7 @@ + called recursively by cp_dir, there are *no* guarantees that either file + exists or not */ + +- int i, havedst; ++ int havedst; + struct stat srcSt, dstSt; + + if (stat(cpSrcPath, &srcSt)) { /* src doesn't exist, usefully... */ +@@ -5037,7 +5036,7 @@ + } + + +- switch(stat2bf((u_int) srcSt.st_mode)) { ++ switch(stat2bf((u_int) srcSt.st_mode)) { + /* determine how to copy, by filetype */ + + /* NOTE: There is no S_IFLNK case here, since we're using 'stat()' and +@@ -5059,12 +5058,12 @@ + return; + } + } +- ++ + cp_dir(); + if (!havedst) chmod(cpDstPath, srcSt.st_mode); +- ++ + break; +- ++ + + case BF_CHR: + case BF_BLK: cp_special(&srcSt, havedst); break; +@@ -5089,12 +5088,12 @@ + { + int i, dirlen, oldsrclen, olddstlen, longpath; + char **names, *name; +- struct stat srcSt, dstSt; ++ struct stat srcSt; + + + /* src and dst directories both exists now. copy entries */ + +- if (DEBUG) fprintf(stderr,"cp_dir: src='%s', dst='%s'\n", ++ if (DEBUG) fprintf(stderr,"cp_dir: src='%s', dst='%s'\n", + cpSrcPath, cpDstPath); + + longpath = 0; +@@ -5110,9 +5109,9 @@ + + for (i=0; i= (MAXPATHLEN-3)) || + (strlen(name) + olddstlen >= (MAXPATHLEN-3))) { +@@ -5130,12 +5129,12 @@ + cpSrcPath[oldsrclen] = '\0'; + goto done; + } +- ++ + if (stat2bf((u_int) srcSt.st_mode) == BF_DIR) { + cpSrcPath[oldsrclen] = '\0'; + continue; /* don't remove from list, just skip */ + } +- ++ + strcat(cpDstPath, "/"); + strcat(cpDstPath, name); + cp(); /* RECURSE */ +@@ -5169,7 +5168,7 @@ + strcat(cpDstPath, name); + + cp(); /* RECURSE */ +- ++ + cpSrcPath[oldsrclen] = '\0'; + cpDstPath[olddstlen] = '\0'; + } +@@ -5191,10 +5190,10 @@ + /*****************************/ + { + register int srcFd, dstFd, rcount, wcount, i; +- char str[512], buf[8192]; ++ char buf[8192]; + static char *owbuts[4] = { "\nOk", "dDon't Ask", "nNo", "\033Cancel" }; + +- if (DEBUG) fprintf(stderr,"cp_file: src='%s', dst='%s'\n", ++ if (DEBUG) fprintf(stderr,"cp_file: src='%s', dst='%s'\n", + cpSrcPath, cpDstPath); + + if ((srcFd = open(cpSrcPath, O_RDONLY, 0)) == -1) { +@@ -5255,7 +5254,7 @@ + int exists; + /*********************************/ + { +- if (DEBUG) fprintf(stderr,"cp_spec: src='%s', dst='%s'\n", ++ if (DEBUG) fprintf(stderr,"cp_spec: src='%s', dst='%s'\n", + cpSrcPath, cpDstPath); + + if (exists && unlink(cpDstPath)) { +@@ -5281,7 +5280,7 @@ + int exists; + /*********************************/ + { +- if (DEBUG) fprintf(stderr,"cp_fifo: src='%s', dst='%s'\n", ++ if (DEBUG) fprintf(stderr,"cp_fifo: src='%s', dst='%s'\n", + cpSrcPath, cpDstPath); + + #ifdef S_IFIFO +@@ -5302,12 +5301,12 @@ + + + +- ++ + /*********************************/ + static int stat2bf(uistmode) + u_int uistmode; + { +- /* given the 'st.st_mode' field from a successful stat(), returns ++ /* given the 'st.st_mode' field from a successful stat(), returns + BF_FILE, BF_DIR, BF_BLK, BF_CHR, BF_FIFO, or BF_SOCK. Does *NOT* + return BF_EXE */ + +@@ -5357,8 +5356,8 @@ + static int selmatch1(name, arg) + char *name, *arg; + { +- /* returns non-zero if 'name' matches 'arg'. Any '*' chars found in arg +- are considered wildcards that match any number of characters, ++ /* returns non-zero if 'name' matches 'arg'. Any '*' chars found in arg ++ are considered wildcards that match any number of characters, + including zero. */ + + char *sp, *oldnp; +@@ -5379,7 +5378,7 @@ + while (*name) name++; + while (*arg ) arg++; + name--; arg--; +- ++ + while (*arg != '*') { + if (*arg != *name || namefg); + XDrawLines(theDisp, bp->win, theGC, ipts, 5, CoordModeOrigin); /* inset */ + +- XDrawLine(theDisp, bp->win, theGC, x+1, y + 1, ++ XDrawLine(theDisp, bp->win, theGC, x+1, y + 1, + ipts[0].x, ipts[0].y); + XDrawLine(theDisp, bp->win, theGC, x+1, y + (int) h - 1, + ipts[1].x, ipts[1].y); + XDrawLine(theDisp, bp->win, theGC, x + (int) w - 1, y + (int) h - 1, + ipts[2].x, ipts[2].y); +- XDrawLine(theDisp, bp->win, theGC, x + (int) w - 1, y+1, ++ XDrawLine(theDisp, bp->win, theGC, x + (int) w - 1, y+1, + ipts[3].x, ipts[3].y); + + if (bp->lit) { +@@ -184,12 +184,12 @@ + XDrawRectangle(theDisp, bp->win, theGC, x+1, y+1, w-2, h-2); + } + } +- ++ + else { /* ctrlColor */ + XSetForeground(theDisp, theGC, bp->bg); + XFillRectangle(theDisp, bp->win, theGC, x+1, y+1, w-1, h-1); + +- Draw3dRect(bp->win, x+1, y+1, w-2, h-2, R3D_OUT, bp->fwidth, ++ Draw3dRect(bp->win, x+1, y+1, w-2, h-2, R3D_OUT, bp->fwidth, + bp->hi, bp->lo, bp->bg); + + XSetForeground(theDisp, theGC, bp->fg); +@@ -198,7 +198,7 @@ + if (bp->lit) + XDrawRectangle(theDisp, bp->win, theGC, x+1, y+1, w-2, h-2); + } +- ++ + + + +@@ -210,7 +210,7 @@ + + XSetBackground(theDisp, theGC, bp->bg); + +- if (bp->colorpix) ++ if (bp->colorpix) + XCopyArea (theDisp,bp->pix, bp->win, theGC, 0,0,bp->pw,bp->ph, x1,y1); + else + XCopyPlane(theDisp,bp->pix, bp->win, theGC, 0,0,bp->pw,bp->ph, x1,y1,1L); +@@ -262,15 +262,15 @@ + if (bp->lit==inval && PTINRECT(x, y, bp->x, bp->y, bp->w, bp->h)) { + bp->lit = !inval; BTRedraw(bp); XFlush(theDisp); + } +- ++ + if (bp->lit!=inval && !PTINRECT(x, y, bp->x, bp->y, bp->w, bp->h)) { + bp->lit = inval; BTRedraw(bp); XFlush(theDisp); + } + } + + rval = (bp->lit != inval); +- +- if (bp->lit && !bp->toggle) ++ ++ if (bp->lit && !bp->toggle) + { bp->lit = 0; BTRedraw(bp); XFlush(theDisp); } + + return(rval); +@@ -295,13 +295,13 @@ + { + /* mallocs an RBUTT, fills in the fields, and appends it to rblist + if rblist is NULL, this is the first rb in the list. It will +- be made the 'selected' one ++ be made the 'selected' one + +- Note: no need to check return status. It'll fatal error if it ++ Note: no need to check return status. It'll fatal error if it + can't malloc */ + + RBUTT *rb, *rbptr; +- Pixmap rb_frame, rb_frame1, rb_top, rb_bot, rb_dtop, rb_dbot, rb_body, ++ Pixmap rb_frame, rb_frame1, rb_top, rb_bot, rb_dtop, rb_dbot, rb_body, + rb_dot; + + rb = (RBUTT *) malloc(sizeof(RBUTT)); +@@ -348,7 +348,7 @@ + rb_off = XCreatePixmap(theDisp, rootW, RBSIZE, RBSIZE, dispDEEP); + rb_off1 = XCreatePixmap(theDisp, rootW, RBSIZE, RBSIZE, dispDEEP); + +- if (!rb_frame || !rb_frame1 || !rb_top || !rb_bot || !rb_dtop || ++ if (!rb_frame || !rb_frame1 || !rb_top || !rb_bot || !rb_dtop || + !rb_dbot || !rb_body || !rb_dot || !rb_on || !rb_on1 || + !rb_off || !rb_off1) + FatalError("unable to create radio-button pixmaps"); +@@ -410,7 +410,7 @@ + XFillRectangle(theDisp, rb_on, theGC, 0,0,RBSIZE,RBSIZE); + XFillRectangle(theDisp, rb_on1, theGC, 0,0,RBSIZE,RBSIZE); + } +- ++ + XSetStipple(theDisp, theGC, rb_frame); + XSetForeground(theDisp, theGC, fg); + XFillRectangle(theDisp, rb_on, theGC, 0,0,RBSIZE,RBSIZE); +@@ -437,7 +437,7 @@ + + return(rb); + } +- ++ + + + +@@ -475,23 +475,23 @@ + int lit; + { + /* draws the rb being pointed at */ +- ++ + Pixmap pix; +- ++ + if (!rb) return; /* rb = NULL */ +- ++ + XSetForeground(theDisp, theGC, rb->fg); +- ++ + if (rb->selected) { pix = (lit) ? rb_on1 : rb_on; } + else { pix = (lit) ? rb_off1 : rb_off; } +- ++ + XCopyArea(theDisp, pix, rb->win, theGC, 0,0,RBSIZE,RBSIZE, rb->x, rb->y); +- DrawString(rb->win, rb->x + RBSIZE + 4, ++ DrawString(rb->win, rb->x + RBSIZE + 4, + rb->y + RBSIZE/2 - CHIGH/2 + ASCENT, rb->str); + + if (!rb->active) { /* if non-active, dim button and string */ + DimRect(rb->win, rb->x, rb->y, RBSIZE, RBSIZE, rb->bg); +- DimRect(rb->win, rb->x + RBSIZE + 4, rb->y + RBSIZE/2 - CHIGH/2, ++ DimRect(rb->win, rb->x + RBSIZE + 4, rb->y + RBSIZE/2 - CHIGH/2, + (u_int) StringWidth(rb->str), (u_int) CHIGH, rb->bg); + } + } +@@ -527,19 +527,19 @@ + } + + +- ++ + /***********************************************/ + int RBWhich(rblist) + RBUTT *rblist; + { + int i; +- ++ + /* returns index of currently selected rb. if none, returns -1 */ +- ++ + i = 0; +- while (rblist && !rblist->selected) ++ while (rblist && !rblist->selected) + { rblist = (RBUTT *) rblist->next; i++; } +- ++ + if (!rblist) return -1; /* didn't find one */ + return i; + } +@@ -550,9 +550,9 @@ + RBUTT *rblist; + { + int i; +- ++ + /* returns # of rb's in the list */ +- ++ + i = 0; + while (rblist) { rblist = (RBUTT *) rblist->next; i++; } + return i; +@@ -566,13 +566,13 @@ + { + RBUTT *rb; + int i; +- ++ + /* sets 'active' status of rb #n. does redrawing */ +- ++ + rb=rblist; i=0; + while (rb && i!=n) { rb = (RBUTT *) rb->next; i++; } + if (!rb) return; /* n out of range. do nothing */ +- ++ + if (rb->active != act) { + rb->active = act; + drawRB(rb, 0); +@@ -588,13 +588,13 @@ + int i; + + /* searches through rblist to see if mouse click at mx,my is in the +- clickable region of any of the rb's. If it finds one, it returns ++ clickable region of any of the rb's. If it finds one, it returns + it's index in the list. If not, returns -1 */ + + i = 0; + while (rblist) { + if (PTINRECT(mx, my, rblist->x, rblist->y, RBSIZE, RBSIZE)) break; +- ++ + rblist = (RBUTT *) rblist->next; + i++; + } +@@ -613,9 +613,9 @@ + Window rW, cW; + int i, x, y, rx, ry, lit, rv; + unsigned int mask; +- ++ + /* returns '1' if selection changed */ +- ++ + rb=rblist; i=0; + while (rb && i!=n) { rb = (RBUTT *) rb->next; i++; } + if (!rb) return 0; /* n out of range */ +@@ -637,7 +637,7 @@ + drawRB(rb, lit); + XFlush(theDisp); + } +- ++ + if (lit && !PTINRECT(x, y, rb->x, rb->y, RBSIZE, RBSIZE)) { + lit=0; + drawRB(rb, lit); +@@ -690,14 +690,14 @@ + do so. We'll be needing them, y'see... */ + + if (!cbpixmade) { +- cbcheck = XCreatePixmapFromBitmapData(theDisp, rootW, ++ cbcheck = XCreatePixmapFromBitmapData(theDisp, rootW, + (char *) cb_check_bits, + cb_check_width, cb_check_height, fg, bg, dispDEEP); + + cbpixmade = 1; + } + } +- ++ + + + +@@ -708,25 +708,25 @@ + /* draws the cb being pointed at */ + + XSetForeground(theDisp, theGC, cb->bg); +- XFillRectangle(theDisp, cb->win, theGC, cb->x+2, cb->y+2, ++ XFillRectangle(theDisp, cb->win, theGC, cb->x+2, cb->y+2, + XVCBSIZE-3,XVCBSIZE-3); + + XSetForeground(theDisp, theGC, cb->fg); + XDrawRectangle(theDisp, cb->win, theGC, cb->x, cb->y, XVCBSIZE, XVCBSIZE); + Draw3dRect(cb->win, cb->x+1, cb->y+1, XVCBSIZE-2, XVCBSIZE-2, R3D_OUT, 2, +- cb->hi, cb->lo, cb->bg); ++ cb->hi, cb->lo, cb->bg); + +- if (cb->val) XCopyArea(theDisp, cbcheck, cb->win, theGC, +- 0, 0, cb_check_width, cb_check_height, ++ if (cb->val) XCopyArea(theDisp, cbcheck, cb->win, theGC, ++ 0, 0, cb_check_width, cb_check_height, + cb->x+3, cb->y+3); +- ++ + XSetForeground(theDisp, theGC, cb->fg); +- DrawString(cb->win, cb->x + XVCBSIZE+4, ++ DrawString(cb->win, cb->x + XVCBSIZE+4, + cb->y+XVCBSIZE/2 - CHIGH/2 + ASCENT, cb->str); + + if (!cb->active) { /* if non-active, dim button and string */ + DimRect(cb->win, cb->x, cb->y, XVCBSIZE, XVCBSIZE, cb->bg); +- DimRect(cb->win, cb->x + XVCBSIZE+4, cb->y+XVCBSIZE/2 - CHIGH/2, ++ DimRect(cb->win, cb->x + XVCBSIZE+4, cb->y+XVCBSIZE/2 - CHIGH/2, + (u_int) StringWidth(cb->str), (u_int) CHIGH, cb->bg); + } + } +@@ -761,7 +761,6 @@ + Window rW, cW; + int x, y, rx, ry, lit; + unsigned int mask; +- Pixmap litpix, darkpix; + + /* called once we've figured out that the mouse clicked in 'cb' */ + +@@ -782,7 +781,7 @@ + drawCB(cb,lit); + XFlush(theDisp); + } +- ++ + if (lit && !PTINRECT(x, y, cb->x, cb->y, XVCBSIZE, XVCBSIZE)) { + lit=0; + drawCB(cb,lit); +@@ -809,28 +808,28 @@ + { + /* draws highlighting */ + if (lit) { +- if (ctrlColor) ++ if (ctrlColor) + Draw3dRect(cb->win, cb->x+1, cb->y+1, XVCBSIZE-2, XVCBSIZE-2, R3D_IN, 2, + cb->hi, cb->lo, cb->bg); + else { + XSetForeground(theDisp, theGC, cb->fg); +- XDrawRectangle(theDisp, cb->win, theGC, cb->x+1, cb->y+1, ++ XDrawRectangle(theDisp, cb->win, theGC, cb->x+1, cb->y+1, + XVCBSIZE-2, XVCBSIZE-2); + } + } + + else { +- if (ctrlColor) ++ if (ctrlColor) + Draw3dRect(cb->win, cb->x+1, cb->y+1, XVCBSIZE-2, XVCBSIZE-2, R3D_OUT, 2, + cb->hi, cb->lo, cb->bg); + else { + XSetForeground(theDisp, theGC, cb->bg); +- XDrawRectangle(theDisp, cb->win, theGC, cb->x+1, cb->y+1, ++ XDrawRectangle(theDisp, cb->win, theGC, cb->x+1, cb->y+1, + XVCBSIZE-2, XVCBSIZE-2); + } + } + } +- ++ + + + /******************* MBUTT ROUTINES ************************/ +@@ -851,7 +850,7 @@ + XSetWindowAttributes xswa; + unsigned long xswamask; + int i; +- ++ + if (!mbpixmade) { + mbchk = XCreatePixmapFromBitmapData(theDisp, rootW, (char *) mb_chk_bits, + mb_chk_width, mb_chk_height, fg, bg, dispDEEP); +@@ -889,7 +888,7 @@ + xswa.save_under = True; + xswamask = CWBackPixel | CWBorderPixel | CWSaveUnder; + +- mb->mwin = XCreateWindow(theDisp, mb->win, x, y, w, h, ++ mb->mwin = XCreateWindow(theDisp, mb->win, x, y, w, h, + (u_int) 2, (int) dispDEEP, InputOutput, + theVisual, xswamask, &xswa); + +@@ -898,7 +897,7 @@ + XSelectInput(theDisp, mb->mwin, ExposureMask | VisibilityChangeMask); + XSetTransientForHint(theDisp, mb->mwin, mb->win); + } +- ++ + + + +@@ -908,15 +907,15 @@ + { + /* draws a menu button in it's normal state. (When it's actively being + used (to select an item), all drawing is handled in MBTrack) */ +- ++ + int x,y,i,r,x1,y1; + unsigned int w,h; +- ++ + r = 2; /* amt of shadow */ + x = mb->x; y = mb->y; w = mb->w; h = mb->h; +- x1 = x + (int) w; ++ x1 = x + (int) w; + y1 = y + (int) h; +- ++ + XSetForeground(theDisp, theGC, mb->bg); + XFillRectangle(theDisp, mb->win, theGC, x+1, y+1, w-1, h-1); + +@@ -940,7 +939,7 @@ + XSetBackground(theDisp, theGC, mb->bg); + XCopyPlane(theDisp, mb->pix, mb->win, theGC, 0,0, + (u_int) mb->pw, (u_int) mb->ph, x1,y1, 1L); +- if (!mb->active) ++ if (!mb->active) + DimRect(mb->win, x1,y1, (u_int) mb->pw, (u_int) mb->ph, mb->bg); + } + +@@ -997,14 +996,14 @@ + MBUTT *mb; + { + /* returns index of first checked selection, or '-1' if nothing selected */ +- ++ + int i; + + if (!mb->hascheck) return -1; + + for (i=0; inlist; i++) + if (mb->flags[i]) return i; +- ++ + return -1; + } + +@@ -1017,13 +1016,13 @@ + /* makes entry #n the selected entry (ie, the only one with a check mark) + Does all redrawing. Does nothing if entry #n already selected. + Don't let it select 'dim' entries */ +- ++ + int i; +- ++ + if (n<0 || n>mb->nlist) return; /* # out of range */ + if (!mb->hascheck) return; /* shouldn't happen */ + if (mb->flags[n]) return; /* already selected */ +- ++ + for (i=0; iflags[i] = 0; + + mb->flags[n] = 1; +@@ -1083,7 +1082,7 @@ + } + } + mwide += 8; /* extra room at edges */ +- ++ + /* make wider if any checked menu items */ + for (i=0; inlist && !mb->flags[i]; i++); + hascheck = (inlist || mb->hascheck); +@@ -1091,7 +1090,7 @@ + if (hascheck && mb->title) mwide += 8; + + if (mwide < (mb->w+1)) mwide = mb->w+1; /* at least as wide as button */ +- ++ + mhigh = mb->nlist * LINEHIGH + 2 + extratop; + + mx = mb->x-1; my = mb->y - 1; +@@ -1144,10 +1143,10 @@ + } + + if (mb->flags[i]) { +- XCopyArea(theDisp, mbchk, win, theGC, 0, 0, mb_chk_width, mb_chk_height, ++ XCopyArea(theDisp, mbchk, win, theGC, 0, 0, mb_chk_width, mb_chk_height, + x - 10, y - 8); + } +- ++ + if (!strcmp(mb->list[i], MBSEP)) { + mb->dim[i] = 1; /* don't select this one */ + if (ctrlColor) { +@@ -1161,15 +1160,15 @@ + XDrawLine(theDisp,win,theGC,4,y-(ASCENT/2)+1, mwide-5, y-(ASCENT/2)+1); + XSetForeground(theDisp, theGC, mb->fg); + } +- else ++ else + XDrawLine(theDisp, win, theGC, 4, y-(ASCENT/2), mwide-5, y-(ASCENT/2)); + } + else { + DrawString(win, x, y, txtstr); +- if (tabstr) ++ if (tabstr) + DrawString(win, mwide - mtabwide - 4, y, tabstr); + +- if (mb->dim[i]) ++ if (mb->dim[i]) + DimRect(win, x, y-ASCENT, (u_int) mwide, (u_int) CHIGH, mb->bg); + XSetForeground(theDisp, theGC, mb->fg); + } +diff -ruN xv-3.10a/xvcolor.c xv-3.10a-bugfixes/xvcolor.c +--- xv-3.10a/xvcolor.c 1995-01-06 11:29:23.000000000 -0800 ++++ xv-3.10a-bugfixes/xvcolor.c 2004-05-16 18:01:37.000000000 -0700 +@@ -52,7 +52,7 @@ + int pwide, phigh, *pnumcols; + { + /* operates on 8-bit images. sorts the colormap into 'best' order +- * 'order' is the 'best' order to allocate the colors. 'trans' is a ++ * 'order' is the 'best' order to allocate the colors. 'trans' is a + * transformation to be done to pic, cpic, and epic (in PIC8 mode) to + * compress the colormap + */ +@@ -67,22 +67,22 @@ + /* initialize histogram and compute it */ + for (i=0; i<256; i++) hist[i]=0; + for (i=pwide*phigh, p=pic; i; i--, p++) hist[*p]++; +- ++ + if (DEBUG>1) { + fprintf(stderr,"%s: Desired colormap\n",cmd); +- for (i=0; i<256; i++) ++ for (i=0; i<256; i++) + if (hist[i]) fprintf(stderr,"(%3d %02x,%02x,%02x %d)\n", + i,rmap[i],gmap[i],bmap[i], hist[i]); + fprintf(stderr,"\n\n"); + } +- +- ++ ++ + /* put the actually-used colors into the 'c' array in the order they occur + also, while we're at it, calculate ncols, and close up gaps in + colortable */ +- ++ + for (i=ncols=0; i<256; i++) { +- if (hist[i]) { ++ if (hist[i]) { + rmap[ncols] = rmap[i]; + gmap[ncols] = gmap[i]; + bmap[ncols] = bmap[i]; +@@ -104,8 +104,8 @@ + } + xvbcopy((char *) &c[entry], (char *) &c1[0], sizeof(CMAPENT)); + c[entry].use = 0; /* dealt with */ +- +- ++ ++ + /* sort rest of colormap. Half of the entries are allocated on the + basis of distance from already allocated colors, and half on the + basis of usage. (NB: 'taxicab' distance is used throughout this file.) +@@ -116,7 +116,7 @@ + To obtain O(n^2) performance, we keep each unselected color + (in c[], with use>0) marked with the minimum distance to any of + the selected colors (in c1[]). Each time we select a color, we +- can update the minimum distances in O(n) time. ++ can update the minimum distances in O(n) time. + + mod by Tom Lane Tom.Lane@g.gp.cs.cmu.edu */ + +@@ -134,8 +134,8 @@ + for (j=0, cj=c; juse) { /* this color has not been marked already */ + /* update mindist */ +- d = (cj->r - ckR)*(cj->r - ckR) + +- (cj->g - ckG)*(cj->g - ckG) + ++ d = (cj->r - ckR)*(cj->r - ckR) + ++ (cj->g - ckG)*(cj->g - ckG) + + (cj->b - ckB)*(cj->b - ckB); + if (cj->mindist > d) cj->mindist = d; + if (cj->mindist > mdist) { mdist = cj->mindist; entry = j; } +@@ -148,8 +148,8 @@ + for (j=0, cj=c; juse) { /* this color has not been marked already */ + /* update mindist */ +- d = (cj->r - ckR)*(cj->r - ckR) + +- (cj->g - ckG)*(cj->g - ckG) + ++ d = (cj->r - ckR)*(cj->r - ckR) + ++ (cj->g - ckG)*(cj->g - ckG) + + (cj->b - ckB)*(cj->b - ckB); + if (cj->mindist > d) cj->mindist = d; + if (cj->use > mdist) { mdist = cj->use; entry = j; } +@@ -162,18 +162,18 @@ + xvbcopy((char *) &c[entry], (char *) &c1[i], sizeof(CMAPENT)); + c[entry].use = 0; + } +- ++ + + for (i=0; i1) { + fprintf(stderr,"%s: result of sorting colormap\n",cmd); +- for (i=0; i %d\n", i, order[i]); + fprintf(stderr,"\n"); + } +@@ -240,7 +240,7 @@ + SetISTR(ISTR_COLOR,"Using %s colormap.", + (haveStdCmap == STD_111 ? "2x2x2" : + haveStdCmap == STD_222 ? "4x4x4" : +- haveStdCmap == STD_232 ? "4x8x4" : ++ haveStdCmap == STD_232 ? "4x8x4" : + haveStdCmap == STD_666 ? "6x6x6" : "8x8x4")); + + if (ncols>0) SetISTR(ISTR_COLOR2,stdCmapSuccess); +@@ -251,7 +251,7 @@ + + for (i=0; i>3) | ++ i332 = ((int)rMap[i]&0xe0) | (((int)gMap[i]&0xe0)>>3) | + (((int)bMap[i]&0xc0)>>6); + + cols[i] = stdcols[i332]; +@@ -291,7 +291,7 @@ + } + + else { +- for (i=0; i> 8; + bdisp[c] = defs[c].blue >> 8; + failed[c]= 0; +- ++ + /* see if the newly allocated color is new and different */ + for (j=0, fcptr=freecols; j0) { /* only do SECOND PASS if there IS a colormap to read */ + for (i=0; i>8); + gd = gi - (ctab[j].green>>8); + bd = bi - (ctab[j].blue >>8); +- ++ + d = rd*rd + gd*gd + bd*bd; + if (dclass == TrueColor || theVisual->class == DirectColor) { + unsigned long r, g, b, rmask, gmask, bmask, origr, origg, origb; + int rshift, gshift, bshift; +- +- /* shift r,g,b so that high bit of 16-bit color specification is +- * aligned with high bit of r,g,b-mask in visual, ++ ++ /* shift r,g,b so that high bit of 16-bit color specification is ++ * aligned with high bit of r,g,b-mask in visual, + * AND each component with its mask, + * and OR the three components together + */ +@@ -781,7 +781,7 @@ + " mask=%04lx,%04lx,%04lx pix=%08lx\n", + rmask, gmask, bmask, cdef->pixel); + } +- ++ + return 1; + } + else { +@@ -811,7 +811,7 @@ + { + int i, j; + +- /* if regroup is set, we *must* do a full realloc, as the cols[] array ++ /* if regroup is set, we *must* do a full realloc, as the cols[] array + isn't correct anymore. (cell groupings changed) */ + + ApplyECctrls(); /* set {r,g,b}cmap[editColor] based on dial settings */ +@@ -830,16 +830,16 @@ + } + } + +- ++ + /* do something clever if we're using R/W color and this colorcell isn't + shared */ + + if (!regroup && allocMode==AM_READWRITE && rwthistime) { + /* let's try to be clever */ +- /* determine if the editColor cell is unique, or shared (among ++ /* determine if the editColor cell is unique, or shared (among + non-group members, that is) */ + +- for (i=j=0; iclass == TrueColor || ++ if (theVisual->class == TrueColor || + theVisual->class == DirectColor) desMode = STD_332; + else if (colorMapMode == CM_STDCMAP) desMode = STD_232; + else desMode = STD_222; +@@ -983,9 +983,9 @@ + } + + +- if (DEBUG) fprintf(stderr,"MakeStdCmaps: have=%d, des=%d, ncols=%d\n", ++ if (DEBUG) fprintf(stderr,"MakeStdCmaps: have=%d, des=%d, ncols=%d\n", + haveStdCmap, desMode, ncols); +- ++ + if (haveStdCmap != STD_NONE && haveStdCmap == desMode) return 0; + freeStdCmaps(); + +@@ -997,7 +997,7 @@ + for (i=0; i<256; i++) des2got[i] = i; + exactCnt = nearCnt = 0; + +- ++ + if (desMode == STD_111) { /* try to alloc 8 colors */ + /* generate a 1/1/1 desired colormap */ + maplen = 8; +@@ -1009,7 +1009,7 @@ + bmap[i] = (b*255); + } + } +- ++ + else if (desMode == STD_222) { /* try to alloc 64 colors */ + /* generate a 2/2/2 desired colormap */ + maplen = 64; +@@ -1021,7 +1021,7 @@ + bmap[i] = (b*255)/3; + } + } +- ++ + else if (desMode == STD_232) { /* try to alloc 128 colors */ + /* generate a 2/3/2 desired colormap */ + maplen = 128; +@@ -1033,7 +1033,7 @@ + bmap[i] = (b*255)/3; + } + } +- ++ + else if (desMode == STD_666) { /* try to alloc 216 colors */ + /* generate a 6*6*6 desired colormap */ + maplen = 216; +@@ -1045,14 +1045,14 @@ + bmap[i] = (b*255)/5; + } + } +- ++ + else { /* desMode == STD_332 */ + maplen = 256; + for (i=0; i0) { + for (i=0; i>8); + gd = gmap[i] - (ctab[j].green>>8); + bd = bmap[i] - (ctab[j].blue >>8); +- ++ + d = CDIST(rd, gd, bd); + if (d 1) { + fprintf(stderr,"MakeStdCmaps: ncols=%d maplen=%d\n", ncols, maplen); + fprintf(stderr," std*[]= "); +- for (i=0; i<256; i++) ++ for (i=0; i<256; i++) + fprintf(stderr,"%02x,%02x,%02x ",stdr[i],stdg[i],stdb[i]); + fprintf(stderr,"\n\n"); + + fprintf(stderr," disp[]= "); +- for (i=0; i<256; i++) ++ for (i=0; i<256; i++) + fprintf(stderr,"%02x,%02x,%02x ",stdrdisp[i],stdgdisp[i],stdbdisp[i]); + fprintf(stderr,"\n\n"); + + fprintf(stderr," stdcols[]= "); +- for (i=0; i<256; i++) ++ for (i=0; i<256; i++) + fprintf(stderr,"%02lx ",stdcols[i]); + fprintf(stderr,"\n\n"); + + fprintf(stderr," stdfreecols[%d] = ", stdnfcols); +- for (i=0; i0) +- sprintf(stdCmapSuccess, "Got %d out of %d colors. (%d close color%s)", ++ if (nearCnt>0) ++ sprintf(stdCmapSuccess, "Got %d out of %d colors. (%d close color%s)", + exactCnt, maplen, nearCnt, (nearCnt>1) ? "s" : ""); + else + sprintf(stdCmapSuccess, "Got %d out of %d colors.", exactCnt, maplen); +@@ -1292,11 +1292,11 @@ + /* This function should only be called once, at the start of the program. + * + * produces many things: +- * browR,browG,browB[256] ++ * browR,browG,browB[256] + * - a 3/3/2 colormap used by genIcon + * browcols[256] - maps 3/3/2 values into X colors + * browCmap - local cmap used in browse window, if browPerfect +- */ ++ */ + + int i,j,r,g,b, screwed, num, exactCnt, nearCnt; + XColor def; +@@ -1306,8 +1306,8 @@ + long d, mind; + + +- if (DEBUG) +- fprintf(stderr,"MakeBrowCmap: perfect = %d, ncols = %d\n", ++ if (DEBUG) ++ fprintf(stderr,"MakeBrowCmap: perfect = %d, ncols = %d\n", + browPerfect, ncols); + + if (ncols == 0 || !CMAPVIS(theVisual)) browPerfect = 0; +@@ -1350,7 +1350,7 @@ + def.red = rmap[order[i]] << 8; + def.green = gmap[order[i]] << 8; + def.blue = bmap[order[i]] << 8; +- ++ + def.flags = DoRed | DoGreen | DoBlue; + + if (xvAllocColor(theDisp, browCmap, &def)) { /* success */ +@@ -1358,14 +1358,14 @@ + descols[order[i]] = def.pixel; + + if (DEBUG>1) +- fprintf(stderr,"makebrowcmap: Phase 1: Alloc %x,%x,%x succeeded!\n", ++ fprintf(stderr,"makebrowcmap: Phase 1: Alloc %x,%x,%x succeeded!\n", + rmap[order[i]], gmap[order[i]], bmap[order[i]]); + } + else failed[order[i]] = 1; + } + +- +- /* PHASE 2: map remaining unallocated colors into closest we got */ ++ ++ /* PHASE 2: map remaining unallocated colors into closest we got */ + + for (i=0; i<256; i++) { + if (failed[i]) { +@@ -1377,9 +1377,9 @@ + if (d1) +- fprintf(stderr,"makebrowcmap: closest to %x,%x,%x = %x,%x,%x\n", ++ fprintf(stderr,"makebrowcmap: closest to %x,%x,%x = %x,%x,%x\n", + rmap[i],gmap[i],bmap[i], rmap[num], gmap[num], bmap[num]); + + if (failed[num]) screwed = 1; +@@ -1406,7 +1406,7 @@ + byte *rmap, *gmap, *bmap, *order; + int maplen; + { +- /* takes a colormap (maxlen 256) and produces an order array that ++ /* takes a colormap (maxlen 256) and produces an order array that + contains the most-diverse order for allocating these colors */ + + int dist[256], i, pick, maxv, ocnt, d; +@@ -1422,7 +1422,7 @@ + + ocnt = 0; + order[ocnt++] = pick; +- ++ + /* init dist[] array */ + for (i=0; i SBUTTH+8) { +- skip = SBUTTH + 7; ++ if (skip > SBUTTH+8) { ++ skip = SBUTTH + 7; + topskip = nList.y + (nList.h - (6*skip + (CHIGH+5))) / 2; + } + +@@ -258,7 +261,7 @@ + #define R_BY3 (topskip + (int)(3*skip)) + #define R_BY4 (topskip + (int)(4*skip)) + #define R_BY5 (topskip + (int)(5*skip)) +- ++ + BTCreate(&but[BNEXT], ctrlW, R_BX0, R_BY0, R_BW1, SBUTTH, "Next", BCLS); + BTCreate(&but[BPREV], ctrlW, R_BX0, R_BY1, R_BW1, SBUTTH, "Prev", BCLS); + BTCreate(&but[BLOAD], ctrlW, R_BX0, R_BY2, R_BW1, SBUTTH, "Load", BCLS); +@@ -309,7 +312,7 @@ + BTCreate(&but[BABOUT], ctrlW,BX4, BY1,BUTTW,BUTTH,"About XV",BCLS); + BTCreate(&but[BQUIT], ctrlW,BX5, BY1,BUTTW,BUTTH,"Quit", BCLS); + +- BTCreate(&but[BXV], ctrlW,5,5, 100, (u_int) nList.y - 5 - 2 - 5, ++ BTCreate(&but[BXV], ctrlW,5,5, 100, (u_int) nList.y - 5 - 2 - 5, + "", BCLS); + + SetButtPix(&but[BCOPY], copyPix, copy_width, copy_height); +@@ -329,7 +332,7 @@ + if (ctrlColor) { + SetButtPix(&but[BXV], oiconPix, oicon1_width, oicon1_height); + but[BXV].colorpix = 1; +- } ++ } + else SetButtPix(&but[BXV], iconPix, icon_width, icon_height); + #else + SetButtPix(&but[BXV], uiconPix, uicon_width, uicon_height); +@@ -338,21 +341,21 @@ + XMapSubwindows(theDisp, ctrlW); + + +- /* have to create menu buttons after XMapSubWindows, as we *don't* want ++ /* have to create menu buttons after XMapSubWindows, as we *don't* want + the popup menus mapped */ + +- MBCreate(&dispMB, ctrlW, CTRLWIDE - 8 - 112 - 2*(112+2), 5,112,19, ++ MBCreate(&dispMB, ctrlW, CTRLWIDE - 8 - 112 - 2*(112+2), 5,112,19, + "Display", dispMList, DMB_MAX, BCLS); +- MBCreate(&conv24MB, ctrlW, CTRLWIDE - 8 - 112 - (112+2), 5,112,19, ++ MBCreate(&conv24MB, ctrlW, CTRLWIDE - 8 - 112 - (112+2), 5,112,19, + "24/8 Bit", conv24MList, CONV24_MAX, BCLS); +- MBCreate(&algMB, ctrlW, CTRLWIDE - 8 - 112, 5,112,19, ++ MBCreate(&algMB, ctrlW, CTRLWIDE - 8 - 112, 5,112,19, + "Algorithms", algMList, ALG_MAX, BCLS); + +- MBCreate(&rootMB, ctrlW, CTRLWIDE - 8 - 112 - 2*(112+2), 5+21,112,19, ++ MBCreate(&rootMB, ctrlW, CTRLWIDE - 8 - 112 - 2*(112+2), 5+21,112,19, + "Root", rootMList, RMB_MAX, BCLS); +- MBCreate(&windowMB, ctrlW, CTRLWIDE - 8 - 112 - (112+2), 5+21,112,19, ++ MBCreate(&windowMB, ctrlW, CTRLWIDE - 8 - 112 - (112+2), 5+21,112,19, + "Windows", windowMList, WMB_MAX, BCLS); +- MBCreate(&sizeMB, ctrlW, CTRLWIDE - 8 - 112, 5+21,112,19, ++ MBCreate(&sizeMB, ctrlW, CTRLWIDE - 8 - 112, 5+21,112,19, + "Image Size", sizeMList, SZMB_MAX, BCLS); + + +@@ -395,7 +398,7 @@ + byte *bits; + int w,h; + { +- return XCreatePixmapFromBitmapData(theDisp, win, (char *) bits, ++ return XCreatePixmapFromBitmapData(theDisp, win, (char *) bits, + (u_int) w, (u_int) h, 1L,0L,1); + } + +@@ -404,7 +407,7 @@ + void CtrlBox(vis) + int vis; + { +- if (vis) XMapRaised(theDisp, ctrlW); ++ if (vis) XMapRaised(theDisp, ctrlW); + else XUnmapWindow(theDisp, ctrlW); + + ctrlUp = vis; +@@ -416,7 +419,6 @@ + int x,y,w,h; + { + int i; +- XRectangle xr; + + RANGE(w, 0, CTRLWIDE); + RANGE(h, 0, CTRLHIGH); +@@ -452,7 +454,7 @@ + /***************************************************/ + void DrawCtrlNumFiles() + { +- int x,y,w,h; ++ int x,y,w; + char foo[40]; + + x = but[BNEXT].x; +@@ -463,14 +465,14 @@ + XSetBackground(theDisp, theGC, infobg); + + sprintf(foo, "%d file%s", numnames, (numnames==1) ? "" : "s"); +- ++ + XSetForeground(theDisp, theGC, infobg); + XFillRectangle(theDisp,ctrlW, theGC, x+1,y+1, (u_int) w-1, (u_int) CHIGH+5); + + XSetForeground(theDisp,theGC,infofg); + XDrawRectangle(theDisp,ctrlW, theGC, x,y, (u_int) w, (u_int) CHIGH+6); + +- Draw3dRect(ctrlW, x+1,y+1, (u_int) w-2, (u_int) CHIGH+4, ++ Draw3dRect(ctrlW, x+1,y+1, (u_int) w-2, (u_int) CHIGH+4, + R3D_IN, 2, hicol, locol, infobg); + + XSetForeground(theDisp,theGC,infofg); +@@ -489,7 +491,7 @@ + st1 = GetISTR(ISTR_WARNING); + + XSetForeground(theDisp, theGC, infobg); +- XFillRectangle(theDisp, ctrlW, theGC, 0, y+1, ++ XFillRectangle(theDisp, ctrlW, theGC, 0, y+1, + CTRLWIDE, (u_int)((CHIGH+4)*2+1)); + + XSetForeground(theDisp, theGC, infofg); +@@ -501,7 +503,7 @@ + XSetForeground(theDisp, theGC, locol); + XDrawLine(theDisp, ctrlW, theGC, 0, y+1, CTRLWIDE, y+1); + XDrawLine(theDisp, ctrlW, theGC, 0, y+CHIGH+5, CTRLWIDE, y+CHIGH+5); +- XDrawLine(theDisp, ctrlW, theGC, 0, y+(CHIGH+4)*2+1, ++ XDrawLine(theDisp, ctrlW, theGC, 0, y+(CHIGH+4)*2+1, + CTRLWIDE, y+(CHIGH+4)*2+1); + } + +@@ -542,16 +544,16 @@ + void ScrollToCurrent(lst) + LIST *lst; + { +- /* called when selected item on list is changed. Makes the selected ++ /* called when selected item on list is changed. Makes the selected + item visible. If it already is, nothing happens. Otherwise, it +- attempts to scroll so that the selection appears in the middle of ++ attempts to scroll so that the selection appears in the middle of + the list window */ + + int halfway; + + if (lst->selected < 0) return; /* no selection, do nothing */ + +- if (lst->selected > lst->scrl.val && ++ if (lst->selected > lst->scrl.val && + lst->selected < lst->scrl.val + lst->nlines-1) LSRedraw(lst, 0); + else { + halfway = (lst->nlines)/2; /* offset to the halfway pt. of the list */ +@@ -590,7 +592,7 @@ + lp->win = XCreateSimpleWindow(theDisp,win,x,y,(u_int) w, (u_int) h,1,fg,bg); + if (!lp->win) FatalError("can't create list window!"); + +- lp->x = x; lp->y = y; ++ lp->x = x; lp->y = y; + lp->w = w; lp->h = h; + lp->fg = fg; lp->bg = bg; + lp->hi = hi; lp->lo = lo; +@@ -603,7 +605,7 @@ + + XSelectInput(theDisp, lp->win, ExposureMask | ButtonPressMask); + +- SCCreate(&lp->scrl, lp->win, w-20, -1, 1, h, 0, ++ SCCreate(&lp->scrl, lp->win, w-20, -1, 1, h, 0, + nstr-nlines, 0, nlines-1, fg, bg, hi, lo, fptr); + + XMapSubwindows(theDisp, lp->win); +@@ -646,7 +648,7 @@ + LIST *lp; + { + /* redraws lists 3d-effect, which can be trounced by drawSel() */ +- Draw3dRect(lp->win, 0, 0, lp->w-1, lp->h-1, R3D_IN, 2, ++ Draw3dRect(lp->win, 0, 0, lp->w-1, lp->h-1, R3D_IN, 2, + lp->hi, lp->lo, lp->bg); + } + +@@ -675,43 +677,43 @@ + else { fg = lp->fg; bg = lp->bg; } + + XSetForeground(theDisp, theGC, bg); +- XFillRectangle(theDisp, lp->win, theGC, x0, y0+i*LINEHIGH, ++ XFillRectangle(theDisp, lp->win, theGC, x0, y0+i*LINEHIGH, + (u_int) wide+1, (u_int) LINEHIGH); + + if (j>=0 && jnstr) { /* only draw string if valid */ + XSetForeground(theDisp, theGC, fg); + XSetBackground(theDisp, theGC, bg); + +- if (!lp->filetypes) ++ if (!lp->filetypes) + DrawString(lp->win, x0+3, y0+i*LINEHIGH + ASCENT + 1, lp->str[j]); + else { + int ypos = y0 + i*LINEHIGH + (LINEHIGH - i_fifo_height)/2; + +- if (lp->str[j][0] == C_FIFO) ++ if (lp->str[j][0] == C_FIFO) + XCopyPlane(theDisp, fifoPix, lp->win, theGC, 0, 0, + i_fifo_width, i_fifo_height, x0+3, ypos, 1L); + +- else if (lp->str[j][0] == C_CHR) ++ else if (lp->str[j][0] == C_CHR) + XCopyPlane(theDisp, chrPix, lp->win, theGC, 0, 0, + i_chr_width, i_chr_height, x0+3, ypos, 1L); + +- else if (lp->str[j][0] == C_DIR) ++ else if (lp->str[j][0] == C_DIR) + XCopyPlane(theDisp, dirPix, lp->win, theGC, 0, 0, + i_dir_width, i_dir_height, x0+3, ypos, 1L); + +- else if (lp->str[j][0] == C_BLK) ++ else if (lp->str[j][0] == C_BLK) + XCopyPlane(theDisp, blkPix, lp->win, theGC, 0, 0, + i_blk_width, i_blk_height, x0+3, ypos, 1L); + +- else if (lp->str[j][0] == C_LNK) ++ else if (lp->str[j][0] == C_LNK) + XCopyPlane(theDisp, lnkPix, lp->win, theGC, 0, 0, + i_lnk_width, i_lnk_height, x0+3, ypos, 1L); + +- else if (lp->str[j][0] == C_SOCK) ++ else if (lp->str[j][0] == C_SOCK) + XCopyPlane(theDisp, sockPix, lp->win, theGC, 0, 0, + i_sock_width, i_sock_height, x0+3, ypos, 1L); + +- else if (lp->str[j][0] == C_EXE) ++ else if (lp->str[j][0] == C_EXE) + XCopyPlane(theDisp, exePix, lp->win, theGC, 0, 0, + i_exe_width, i_exe_height, x0+3, ypos, 1L); + +@@ -720,8 +722,8 @@ + i_reg_width, i_reg_height, x0+3, ypos, 1L); + + +- DrawString(lp->win, x0+3 + i_fifo_width + 3, +- y0+i*LINEHIGH + ASCENT + 1, ++ DrawString(lp->win, x0+3 + i_fifo_width + 3, ++ y0+i*LINEHIGH + ASCENT + 1, + lp->str[j]+1); + } + } +@@ -735,7 +737,7 @@ + { + int i; + +- for (i = lp->scrl.val; i < lp->scrl.val + lp->nlines; i++) ++ for (i = lp->scrl.val; i < lp->scrl.val + lp->nlines; i++) + drawSel(lp,i); + ls3d(lp); + } +@@ -762,7 +764,7 @@ + if (sel >= lp->nstr) sel = lp->selected; + + /* see if it's a double click */ +- if (ev->time - lasttime < DBLCLKTIME && sel==lastsel ++ if (ev->time - lasttime < DBLCLKTIME && sel==lastsel + && (lp->scrl.val + (y-y0)/LINEHIGH) < lp->nstr + && !INACTIVE(lp,sel)) { + return (sel); +@@ -782,7 +784,7 @@ + while (XQueryPointer(theDisp,lp->win,&rW,&cW,&rx,&ry,&x,&y,&mask)) { + if (!(mask & Button1Mask)) break; /* button released */ + +- if (yscrl.val > lp->scrl.min) { + lp->selected = lp->scrl.val - 1; + SCSetVal(&lp->scrl, lp->scrl.val - 1); +@@ -804,7 +806,7 @@ + if (sel >= lp->nstr) sel = lp->nstr - 1; + + if (sel != lp->selected && sel >= lp->scrl.val && +- sel < lp->scrl.val + lp->nlines) { ++ sel < lp->scrl.val + lp->nlines) { + /* dragged to another on current page */ + oldsel = lp->selected; + lp->selected = sel; +@@ -829,17 +831,17 @@ + else if (key==LS_PAGEDOWN) SCSetVal(&lp->scrl,lp->scrl.val + (lp->nlines-1)); + else if (key==LS_HOME) SCSetVal(&lp->scrl,lp->scrl.min); + else if (key==LS_END) SCSetVal(&lp->scrl,lp->scrl.max); +- ++ + else if (key==LS_LINEUP) { + /* if the selected item visible, but not the top line */ +- if (lp->selected > lp->scrl.val && ++ if (lp->selected > lp->scrl.val && + lp->selected <= lp->scrl.val + lp->nlines - 1) { + /* then just move it */ + lp->selected--; + drawSel(lp, lp->selected); drawSel(lp, lp->selected+1); + ls3d(lp); + } +- ++ + /* if it's the top line... */ + else if (lp->selected == lp->scrl.val) { + if (lp->selected > 0) { +@@ -847,7 +849,7 @@ + SCSetVal(&lp->scrl, lp->selected); + } + } +- ++ + /* if it's not visible, put it on the bottom line */ + else { + lp->selected = lp->scrl.val + lp->nlines - 1; +@@ -856,10 +858,10 @@ + ls3d(lp); + } + } +- ++ + else if (key==LS_LINEDOWN) { + /* if the selected item visible, but not the bottom line */ +- if (lp->selected >= lp->scrl.val && ++ if (lp->selected >= lp->scrl.val && + lp->selected < lp->scrl.val + lp->nlines - 1) { + if (lp->selected < lp->nstr-1) { + /* then just move it */ +@@ -868,7 +870,7 @@ + ls3d(lp); + } + } +- ++ + /* if it's the bottom line... */ + else if (lp->selected == lp->scrl.val + lp->nlines - 1) { + if (lp->selected < lp->nstr-1) { +@@ -876,7 +878,7 @@ + SCSetVal(&lp->scrl, lp->scrl.val+1); + } + } +- ++ + /* if it's not visible, put it on the top line */ + else { + lp->selected = lp->scrl.val; +diff -ruN xv-3.10a/xvcut.c xv-3.10a-bugfixes/xvcut.c +--- xv-3.10a/xvcut.c 1995-01-13 11:55:48.000000000 -0800 ++++ xv-3.10a-bugfixes/xvcut.c 2004-05-16 18:01:43.000000000 -0700 +@@ -15,7 +15,7 @@ + * static void clearSelectedArea(); + * static void makeClipFName (); + * static int countcols24 (byte *, int,int, int,int,int,int)); +- * static int countNewCols (byte*, int, int, byte*, int, ++ * static int countNewCols (byte*, int, int, byte*, int, + * int, int, int, int); + * + * void InitSelection (); +@@ -72,7 +72,7 @@ + static void clearSelectedArea PARM((void)); + static void makeClipFName PARM((void)); + static int countcols24 PARM((byte *, int, int, int, int, int, int)); +-static int countNewCols PARM((byte *, int, int, byte *, int, ++static int countNewCols PARM((byte *, int, int, byte *, int, + int, int, int, int)); + static int dragHandle PARM((XButtonEvent *)); + static void dragSelection PARM((XButtonEvent *, u_int, int)); +@@ -210,7 +210,7 @@ + if (!PasteAllowed()) { XBell(theDisp, 0); return; } + + cimg = getFromClip(); +- if (!cimg) return; ++ if (!cimg) return; + + /* if there's no selection, make one! */ + if (!HaveSelection()) makePasteSel(cimg); +@@ -231,7 +231,7 @@ + + byte *dp, *dpic, *clippic, *clipcmap; + int clipw, cliph, clipis24, len, istran, trval; +- int i, j, sx,sy,sw,sh, cx,cy,cw,ch, dx,dy,dw,dh,dx2,dy2; ++ int i, j, sx,sy,sw,sh, cx,cy,cw,ch, dx,dy,dw,dh; + + + /* +@@ -245,7 +245,7 @@ + ((int) (cimg[CIMG_LEN + 2]<<16)) | + ((int) (cimg[CIMG_LEN + 3]<<24)); + +- if (len < CIMG_PIC24) return; ++ if (len < CIMG_PIC24) return; + + istran = cimg[CIMG_TRANS]; + trval = cimg[CIMG_TRVAL]; +@@ -268,7 +268,7 @@ + * already, because if we *are*, we'd prefer to do any clipboard rescaling + * in 24-bit space for the obvious reasons. + * +- * possibilities: ++ * possibilities: + * PIC24 - easy, do clipboard rescale in 24-bit space + * PIC8, and clipboard is 8 bits, (or 24-bits, but with <=256 colors) + * and total unique colors < 256: +@@ -283,7 +283,7 @@ + + /* dx,dy,dw,dh is the rectangle (in PIC coords) where the paste will occur + (cropped to be entirely within PIC */ +- ++ + dx = sx; dy = sy; dw = sw; dh = sh; + CropRect2Rect(&dx, &dy, &dw, &dh, 0, 0, pWIDE, pHIGH); + +@@ -291,7 +291,7 @@ + /* cx,cy,cw,ch is the rectangle of the clipboard data (in clipboard coords) + that will actually be used in the paste operation */ + +- cx = (sx>=0) ? 0 : ((-sx) * clipw) / sw; ++ cx = (sx>=0) ? 0 : ((-sx) * clipw) / sw; + cy = (sy>=0) ? 0 : ((-sy) * cliph) / sh; + cw = (dw * clipw) / sw; + ch = (dh * cliph) / sh; +@@ -302,26 +302,26 @@ + if (picType == PIC8) { + int ncc, keep8; + char buf[512]; +- ++ + if (clipis24) { /* pasting in a 24-bit image that *requires* promotion */ + static char *bnames[] = { "\nOkay", "\033Cancel" }; + strcpy(buf, "Warning: Pasting this 24-bit image will require "); + strcat(buf, "promoting the current image to 24 bits."); +- ++ + if (PopUp(buf, bnames, 2)) goto exit; /* Cancelled */ + else Change824Mode(PIC24); /* promote pic to 24 bits */ + } + + else { /* clip is 8 bits */ + ncc = countNewCols(clippic,clipw,cliph,clipcmap,clipis24,cx,cy,cw,ch); +- ++ + if (ncc + numcols > 256) { + static char *bnames[] = { "\nPromote", "8Keep 8-bit", "\033Cancel" }; + strcpy(buf,"Warning: The image and the clipboard combine to have "); + strcat(buf,"more than 256 unique colors. Promoting the "); + strcat(buf,"image to 24 bits is recommended, otherwise the contents "); + strcat(buf,"of the clipboard will probably lose some colors."); +- ++ + keep8 = PopUp(buf, bnames, 3); + if (keep8==2) goto exit; /* Cancel */ + else if (keep8==0) Change824Mode(PIC24); /* promote pic to 24 bits */ +@@ -331,8 +331,8 @@ + + + +- +- ++ ++ + /* legal possibilities at this point: + * pic is PIC24: clip is 8 or 24 + * pic is PIC8: clip is 8, or clip is 24 but has 256 or fewer colors +@@ -342,18 +342,18 @@ + + if (picType == PIC8) { + int clx, cly, r,g,b,k,mind,close,newcols; +- byte *cp, *clp, *pp, *ccp, newr[256], newg[256], newb[256], remap[256]; ++ byte *cp, *clp, *pp, newr[256], newg[256], newb[256], remap[256]; + byte order[256], trans[256]; + int bperpix, dpncols; +- ++ + dpic = (byte *) malloc((size_t) dw * dh); + if (!dpic) FatalError("Out of memory in DoImgPaste()\n"); +- ++ + bperpix = (clipis24) ? 3 : 1; + newcols = 0; +- ++ + /* dpic = a scaled, 8-bit representation of clippic[cx,cy,cw,ch] */ +- ++ + if (!clipis24) { /* copy colormap from clip data into newr,g,b[] */ + for (i=0; i<256; i++) { + newr[i] = clipcmap[i*3]; +@@ -366,22 +366,22 @@ + dp = dpic + i*dw; + cly = cy + (i * ch) / dh; + clp = clippic + (cly*clipw * bperpix); +- ++ + for (j=0; j0) { +@@ -763,9 +763,9 @@ + XFree((void *) data); + + /* read the rest of the data (len bytes) */ +- i = XGetWindowProperty(theDisp, rootW, clipAtom, 1L, +- (long) ((len-4)+3)/4, +- False, XA_STRING, &actType, &actFormat, &nitems, ++ i = XGetWindowProperty(theDisp, rootW, clipAtom, 1L, ++ (long) ((len-4)+3)/4, ++ False, XA_STRING, &actType, &actFormat, &nitems, + &nleft, (unsigned char **) &data); + + if (i==Success) { +@@ -791,8 +791,8 @@ + } + } + +- +- /* if we're still here, then the prop method was less than successful. ++ ++ /* if we're still here, then the prop method was less than successful. + use the file method, instead */ + + if (!clipfname) makeClipFName(); +@@ -800,7 +800,7 @@ + fp = fopen(clipfname, "r"); + if (!fp) { + unlink(clipfname); +- sprintf(str, "Can't read clipboard file '%s'\n\n %s.", ++ sprintf(str, "Can't read clipboard file '%s'\n\n %s.", + clipfname, ERRSTR(errno)); + ErrPopUp(str,"\nBletch!"); + return (byte *) NULL; +@@ -877,19 +877,19 @@ + clipAtom = XInternAtom(theDisp, CLIPPROP, True); + if (clipAtom != None) XDeleteProperty(theDisp, rootW, clipAtom); + } +- +- ++ ++ + if (!forceClipFile) { + clipAtom = XInternAtom(theDisp, CLIPPROP, False); /* find or make prop */ + if (clipAtom != None) { + /* try to store the data in the property */ +- ++ + xerrcode = 0; + XChangeProperty(theDisp, rootW, clipAtom, XA_STRING, 8, PropModeReplace, + cimg, len); + XSync(theDisp, False); /* make it happen *now* */ + if (!xerrcode) return; /* success! */ +- ++ + /* failed, use file method */ + XDeleteProperty(theDisp, rootW, clipAtom); + } +@@ -903,7 +903,7 @@ + fp = fopen(clipfname, "w"); + if (!fp) { + unlink(clipfname); +- sprintf(str, "Can't write clipboard file '%s'\n\n %s.", ++ sprintf(str, "Can't write clipboard file '%s'\n\n %s.", + clipfname, ERRSTR(errno)); + ErrPopUp(str,"\nBletch!"); + return; +@@ -996,7 +996,7 @@ + byte *pp; + + nc = 0; +- ++ + for (i=y; nc<257 && itime - lastClickTime) < DBLCLKTIME) { + lastClickButton=Button3; + if (HaveSelection() && PTINRECT(px, py, selrx, selry, selrw, selrh)) { +- EnableSelection(0); ++ EnableSelection(0); + rv = 1; + } + else { +@@ -1225,7 +1225,7 @@ + else if (ev->button == Button2) { /* do a drag & drop operation */ + if (HaveSelection() && PTINRECT(px,py,selrx,selry,selrw,selrh)) { + /* clip selection rect to pic */ +- EnableSelection(0); ++ EnableSelection(0); + CropRect2Rect(&selrx, &selry, &selrw, &selrh, 0, 0, pWIDE, pHIGH); + + if (selrw<1 || selrh<1) rv = 0; +@@ -1253,8 +1253,8 @@ + * holding SHIFT constrains selection to be square, + * holding CTRL constrains selection to keep original aspect ratio + */ +- +- int i, mex, mey, mpx, mpy, offx,offy; ++ ++ int mex, mey, mpx, mpy, offx,offy; + int sex, sey, sex2, sey2, sew, seh, sew2, seh2, hs, h2; + int istp, isbt, islf, isrt, isvm, ishm; + int cnstsq, cnstasp; +@@ -1272,7 +1272,7 @@ + sew2 = sew/2; + seh2 = seh/2; + sex2--; sey2--; +- ++ + if (sew>=35 && seh>=35) hs=7; + else if (sew>=20 && seh>=20) hs=5; + else if (sew>= 9 && seh>= 9) hs=3; +@@ -1307,7 +1307,7 @@ + + + /* it's definitely in a handle... track 'til released */ +- ++ + DrawSelection(0); + selFilled = 1; + selTracking = 1; +@@ -1366,12 +1366,12 @@ + else { chwide=1; newwide = (int) (seh*orgaspect); } + } + } +- ++ + if (chwide) { + if (islf) { sex = (sex+sew) - newwide; } + sew = newwide; + } +- ++ + if (chhigh) { + if (istp) { sey = (sey+seh) - newhigh; } + seh = newhigh; +@@ -1380,7 +1380,7 @@ + + if (sew<1) sew=1; + if (seh<1) seh=1; +- ++ + if (sex!=selrx || sey!=selry || sew!=selrw || seh!=selrh) { + DrawSelection(0); + selrx = sex; selry = sey; selrw = sew; selrh = seh; +@@ -1395,14 +1395,14 @@ + Timer(100); + } + } +- ++ + EnableSelection(0); + + selFilled = 0; + selTracking = 0; + + /* only 'enable' the selection if it intersects CPIC */ +- if (selrx < cXOFF+cWIDE && selrx+selrw > cXOFF && ++ if (selrx < cXOFF+cWIDE && selrx+selrw > cXOFF && + selry < cYOFF+cHIGH && selry+selrh > cYOFF) EnableSelection(1); + + return 1; +@@ -1422,7 +1422,7 @@ + * + * if 'dragndrop', changes cursor, monitors CTRL status + */ +- ++ + int mpx, mpy, offx, offy; + int newsx, newsy, orgsx, orgsy, cnstrain, docopy, lastdocopy; + Window rW, cW; +@@ -1436,9 +1436,9 @@ + + CoordE2P(ev->x, ev->y, &mpx, &mpy); + offx = mpx - selrx; offy = mpy - selry; +- ++ + /* track rectangle until we get a release */ +- ++ + DrawSelection(0); + selFilled = 1; + selTracking = 1; +@@ -1467,7 +1467,7 @@ + dx = newsx - orgsx; dy = newsy - orgsy; + if (abs(dx) > abs(dy)) dy = 0; + else if (abs(dy) > abs(dx)) dx = 0; +- ++ + newsx = orgsx + dx; newsy = orgsy + dy; + } + +@@ -1485,7 +1485,7 @@ + Timer(100); + } + } +- ++ + EnableSelection(0); + + selFilled = 0; +@@ -1495,7 +1495,7 @@ + + /* only do if the selection intersects CPIC */ + +- if (selrx < cXOFF+cWIDE && selrx+selrw > cXOFF && ++ if (selrx < cXOFF+cWIDE && selrx+selrw > cXOFF && + selry < cYOFF+cHIGH && selry+selrh > cYOFF) { + + EnableSelection(1); +@@ -1503,10 +1503,10 @@ + if (dragndrop) { + int tmpsx, tmpsy; + byte *data; +- ++ + tmpsx = selrx; tmpsy = selry; + selrx = orgsx; selry = orgsy; +- ++ + data = getSelection(); /* copy old data */ + if (data) { + if (!docopy) clearSelectedArea(); +@@ -1531,29 +1531,29 @@ + int rx,ry,ox,oy,x,y,active, x1, y1, x2, y2, cnstrain; + int i, px,py,px2,py2,pw,ph; + unsigned int mask; +- ++ + /* called on a B1 press in mainW to draw a new rectangular selection. + * any former selection has already been removed. holding shift down +- * while tracking constrains selection to a square ++ * while tracking constrains selection to a square + */ +- ++ + active = 0; +- ++ + x1 = ox = ev->x; y1 = oy = ev->y; /* nail down one corner */ + selrx = selry = selrw = selrh = 0; + selTracking = 1; +- ++ + while (1) { + if (!XQueryPointer(theDisp,mainW,&rW,&cW,&rx,&ry,&x,&y,&mask)) continue; + if (!(mask & Button1Mask)) break; /* button released */ + cnstrain = (mask & ShiftMask); +- ++ + if (x!=ox || y!=oy) { /* moved. erase and redraw (?) */ + x2 = x; y2 = y; +- ++ + /* x1,y1,x2,y2 are in epic coords. sort, convert to pic coords, + and if changed, erase+redraw */ +- ++ + CoordE2P(x1, y1, &px, &py); + CoordE2P(x2, y2, &px2, &py2); + if (px>px2) { i=px; px=px2; px2=i; } +@@ -1561,17 +1561,17 @@ + pw = px2-px+1; ph=py2-py+1; + + /* keep px,py,pw,ph inside 'pic' */ +- ++ + if (px<0) { pw+=px; px=0; } + if (py<0) { ph+=py; py=0; } + if (px>pWIDE-1) px = pWIDE-1; + if (py>pHIGH-1) py = pHIGH-1; +- ++ + if (pw<0) pw=0; + if (ph<0) ph=0; + if (px+pw>pWIDE) pw = pWIDE - px; + if (py+ph>pHIGH) ph = pHIGH - py; +- ++ + if (cnstrain) { /* make a square at smaller of w,h */ + if (ph>pw) { if (y2ph) { if (x2 selr{x,y,w,h} + if the rectangle has changed, erase old and draw new */ +- ++ + if (px!=selrx || py!=selry || pw!=selrw || ph!=selrh) { + DrawSelection(0); + selrx = px; selry = py; selrw = pw; selrh = ph; + DrawSelection(1); +- ++ + haveSel = active = (pw>0 && ph>0); + if (infoUp) SetSelectionString(); + XFlush(theDisp); +@@ -1615,7 +1615,7 @@ + set, pick a new 'color' to invert the selection with */ + + int x,y,x1,y1,w,h; +- ++ + if (newcol) selColor = (selColor+1) & 0x7; + + /* convert selr{x,y,w,h} into epic coords */ +@@ -1650,7 +1650,7 @@ + if (y<0 && y+h>eHIGH && selFilled!=1) + XDrawLine(theDisp, mainW, theGC, x, eHIGH/2, x+w, eHIGH/2); + +- ++ + if (selFilled==0 || selFilled == 1) { + /* one little kludge: if w or h == eWIDE or eHIGH, make it one smaller */ + if (x+w == eWIDE) w--; +@@ -1664,17 +1664,17 @@ + else if (w>=20 && h>=20) { hs=5; h1=4; h2=2; } + else if (w>= 9 && h>= 9) { hs=3; h1=2; h2=1; } + else hs=h1=h2=0; +- ++ + if (hs) { + XFillRectangle(theDisp,mainW,theGC,x+1, y+1, (u_int)h1,(u_int)h1); + XFillRectangle(theDisp,mainW,theGC,x+w/2-h2,y+1, (u_int)hs,(u_int)h1); + XFillRectangle(theDisp,mainW,theGC,x+w-h1, y+1, (u_int)h1,(u_int)h1); +- ++ + XFillRectangle(theDisp,mainW,theGC,x+1, y+h/2-h2, + (u_int)h1, (u_int)hs); + XFillRectangle(theDisp,mainW,theGC,x+w-h1,y+h/2-h2, + (u_int)h1, (u_int)hs); +- ++ + XFillRectangle(theDisp,mainW,theGC,x+1, y+h-h1, + (u_int)h1,(u_int)h1); + XFillRectangle(theDisp,mainW,theGC,x+w/2-h2,y+h-h1, +@@ -1683,7 +1683,7 @@ + (u_int)h1,(u_int)h1); + } + } +- ++ + if (selFilled==1) { + XDrawLine(theDisp, mainW, theGC, x+1, y+1, x+w-1, y+h-1); + XDrawLine(theDisp, mainW, theGC, x+1, y+h-1, x+w-1, y+1); +@@ -1692,8 +1692,8 @@ + else if (selFilled==2) { + XFillRectangle(theDisp, mainW, theGC, x,y,(u_int) w, (u_int) h); + } +- +- ++ ++ + XSetFunction(theDisp,theGC,GXcopy); + XSetPlaneMask(theDisp, theGC, AllPlanes); + } +@@ -1703,7 +1703,7 @@ + void MoveGrowSelection(dx,dy,dw,dh) + int dx,dy,dw,dh; + { +- /* moves and/or grows the selection by the specified amount ++ /* moves and/or grows the selection by the specified amount + (in pic coords). keeps the selection entirely within 'pic'. + (called by 'CropKey()') */ + +@@ -1729,7 +1729,7 @@ + } + } + +- ++ + /***********************************/ + void BlinkSelection(cnt) + int cnt; +diff -ruN xv-3.10a/xvdflt.c xv-3.10a-bugfixes/xvdflt.c +--- xv-3.10a/xvdflt.c 1994-12-22 14:34:42.000000000 -0800 ++++ xv-3.10a-bugfixes/xvdflt.c 2004-05-16 18:01:46.000000000 -0700 +@@ -16,12 +16,12 @@ + #include "bits/xv_rev" + #include "bits/xv_ver" + #include "bits/xf_left" +-#include "bits/xf_right" ++/* #include "bits/xf_right" not used */ + #include "bits/font5x9.h" + + + #ifndef USEOLDPIC +-# include "xvdflt.h" ++# include "xvdflt.h" + #endif + + +@@ -100,21 +100,21 @@ + setcolor(pinfo, 252, 0, 0, 0); /* black background for text */ + + +- xbm2pic((byte *) xv_cpyrt_bits, xv_cpyrt_width, xv_cpyrt_height, ++ xbm2pic((byte *) xv_cpyrt_bits, xv_cpyrt_width, xv_cpyrt_height, + dfltpic, DWIDE, DHIGH, DWIDE/2+1, 203+1, 252); +- xbm2pic((byte *) xv_cpyrt_bits, xv_cpyrt_width, xv_cpyrt_height, ++ xbm2pic((byte *) xv_cpyrt_bits, xv_cpyrt_width, xv_cpyrt_height, + dfltpic, DWIDE, DHIGH, DWIDE/2, 203, 250); + + i = xv_ver_width + xv_rev_width + 30; + +- xbm2pic((byte *) xv_ver_bits, xv_ver_width, xv_ver_height, ++ xbm2pic((byte *) xv_ver_bits, xv_ver_width, xv_ver_height, + dfltpic, DWIDE, DHIGH, DWIDE/2 - (i/2) + xv_ver_width/2+1, 220+1,252); +- xbm2pic((byte *) xv_rev_bits, xv_rev_width, xv_rev_height, ++ xbm2pic((byte *) xv_rev_bits, xv_rev_width, xv_rev_height, + dfltpic, DWIDE, DHIGH, DWIDE/2 + (i/2) - xv_rev_width/2+1, 220+1,252); + +- xbm2pic((byte *) xv_ver_bits, xv_ver_width, xv_ver_height, ++ xbm2pic((byte *) xv_ver_bits, xv_ver_width, xv_ver_height, + dfltpic, DWIDE, DHIGH, DWIDE/2 - (i/2) + xv_ver_width/2, 220, 250); +- xbm2pic((byte *) xv_rev_bits, xv_rev_width, xv_rev_height, ++ xbm2pic((byte *) xv_rev_bits, xv_rev_width, xv_rev_height, + dfltpic, DWIDE, DHIGH, DWIDE/2 + (i/2) - xv_rev_width/2, 220, 250); + + strcpy(str,"Press mouse button for menu."); +@@ -169,7 +169,7 @@ + for (i=k=0; i mouse button for menu."); +@@ -281,7 +281,7 @@ + } + } + } +-} ++} + + + /*******************************************/ +@@ -300,7 +300,7 @@ + byte *dfltpic; + PICINFO *pinfo; + { +- int i,j,k, dr, dg, db; ++ int i,j, dr, dg, db; + byte *pp; + + pp = dfltpic; +@@ -357,7 +357,7 @@ + + for ( ; *str; str++, cx+=6) { + i = (byte) *str; +- if (i >= 32 && i < 128) ++ if (i >= 32 && i < 128) + xbm2pic(font5x9[i - 32], 5, 9, pic, pw, ph, cx, cy, col); + } + } +diff -ruN xv-3.10a/xvdial.c xv-3.10a-bugfixes/xvdial.c +--- xv-3.10a/xvdial.c 1995-01-03 13:20:31.000000000 -0800 ++++ xv-3.10a-bugfixes/xvdial.c 2004-05-16 18:01:57.000000000 -0700 +@@ -1,11 +1,11 @@ +-/* ++/* + * xvdial.c - DIAL handling functions + * + * callable functions: + * + * DCreate() - creates a dial + * DSetRange() - sets min/max/current values of control +- * DSetVal() - sets value of control ++ * DSetVal() - sets value of control + * DSetActive() - turns dial '.active' on and off + * DRedraw() - redraws the dial + * DTrack() - called when clicked. Operates control 'til mouseup +@@ -50,7 +50,7 @@ + + + /***************************************************/ +-void DCreate(dp, parent, x, y, w, h, minv, maxv, curv, page, ++void DCreate(dp, parent, x, y, w, h, minv, maxv, curv, page, + fg, bg, hi, lo, title, units) + DIAL *dp; + Window parent; +@@ -60,13 +60,13 @@ + { + + if (!pixmaps_built) { +- cw1Pix = XCreatePixmapFromBitmapData(theDisp, parent, ++ cw1Pix = XCreatePixmapFromBitmapData(theDisp, parent, + (char *) dial_cw1_bits, PW, PH, fg, bg, dispDEEP); +- ccw1Pix = XCreatePixmapFromBitmapData(theDisp, parent, ++ ccw1Pix = XCreatePixmapFromBitmapData(theDisp, parent, + (char *) dial_ccw1_bits, PW, PH, fg, bg, dispDEEP); +- cw2Pix = XCreatePixmapFromBitmapData(theDisp, parent, ++ cw2Pix = XCreatePixmapFromBitmapData(theDisp, parent, + (char *) dial_cw2_bits, PW, PH, fg, bg, dispDEEP); +- ccw2Pix = XCreatePixmapFromBitmapData(theDisp, parent, ++ ccw2Pix = XCreatePixmapFromBitmapData(theDisp, parent, + (char *) dial_ccw2_bits, PW, PH, fg, bg, dispDEEP); + } + +@@ -126,14 +126,14 @@ + if (curv == dp->val) return; + + /* erase old arrow */ +- XSetForeground(theDisp, theGC, dp->bg); ++ XSetForeground(theDisp, theGC, dp->bg); + drawArrow(dp); + + dp->val = curv; + + /* draw new arrow and string */ + XSetForeground(theDisp, theGC, dp->fg); +- XSetBackground(theDisp, theGC, dp->bg); ++ XSetBackground(theDisp, theGC, dp->bg); + drawArrow(dp); + drawValStr(dp); + if (!dp->active) dimDial(dp); +@@ -229,18 +229,18 @@ + case INCCW1: if (dp->val > dp->min) DSetVal(dp, dp->val-1); break; + case INCCW2: if (dp->val > dp->min) DSetVal(dp, dp->val-dp->page); break; + } +- if (dp->drawobj != NULL) (dp->drawobj)(); ++ if (dp->drawobj != NULL) (dp->drawobj)(); + Timer(INC1WAIT); + lit = 1; + } + +- else { ++ else { + i = computeDialVal(dp, mx, my); + DSetVal(dp, i); +- if (dp->drawobj != NULL) (dp->drawobj)(); ++ if (dp->drawobj != NULL) (dp->drawobj)(); + } + +- ++ + /* loop until mouse is released */ + while (XQueryPointer(theDisp,dp->win,&rW,&cW,&rx,&ry,&x,&y,&mask)) { + if (!(mask & Button1Mask)) break; /* button released */ +@@ -252,7 +252,7 @@ + DSetVal(dp, i); + if (j != dp->val) { + /* track whatever dial controls */ +- if (dp->drawobj != NULL) (dp->drawobj)(); ++ if (dp->drawobj != NULL) (dp->drawobj)(); + } + } + +@@ -266,7 +266,7 @@ + + if (lit) { + switch (ipos) { +- case INCW1: if (dp->val < dp->max) DSetVal(dp, dp->val+1); ++ case INCW1: if (dp->val < dp->max) DSetVal(dp, dp->val+1); + break; + case INCW2: if (dp->val < dp->max) DSetVal(dp, dp->val+dp->page); + break; +@@ -277,7 +277,7 @@ + } + + /* track whatever dial controls */ +- if (dp->drawobj != NULL) (dp->drawobj)(); ++ if (dp->drawobj != NULL) (dp->drawobj)(); + + Timer(INC2WAIT); + } +@@ -305,17 +305,17 @@ + + /* returns region * that x,y is in. returns -1 if none */ + +- for (i=0; i<4; i++) ++ for (i=0; i<4; i++) + if (PTINRECT(x,y, dp->bx[i], dp->by[i], 14, 10)) return i; + +- if (PTINRECT(x,y, dp->cx - dp->rad, dp->cy - dp->rad, ++ if (PTINRECT(x,y, dp->cx - dp->rad, dp->cy - dp->rad, + 2*dp->rad, 2*dp->rad)) + return INDIAL; + + return -1; + } + +- ++ + /***************************************************/ + static void drawArrow(dp) + DIAL *dp; +@@ -366,10 +366,10 @@ + XSetForeground(theDisp, theGC, dp->fg); + XSetBackground(theDisp, theGC, dp->bg); + XSetFont(theDisp, theGC, monofont); +- XDrawImageString(theDisp, dp->win, theGC, ++ XDrawImageString(theDisp, dp->win, theGC, + dp->w/2 - XTextWidth(monofinfo, foo1, (int) strlen(foo1))/2, + dp->h-14 - (monofinfo->ascent + monofinfo->descent)/2 +- + monofinfo->ascent, ++ + monofinfo->ascent, + foo1, (int) strlen(foo1)); + XSetFont(theDisp, theGC, mfont); + } +@@ -431,7 +431,7 @@ + } + else if (dx>0) angle = atan((double) dy / (double) dx) * RAD2DEG; + else angle = atan((double) -dy / (double) -dx) * RAD2DEG + 180.0; +- ++ + /* map angle into range: -90..270, then into to value */ + if (angle > 270.0) angle -= 360.0; + if (angle < -90.0) angle += 360.0; +diff -ruN xv-3.10a/xvdir.c xv-3.10a-bugfixes/xvdir.c +--- xv-3.10a/xvdir.c 1995-01-03 13:21:39.000000000 -0800 ++++ xv-3.10a-bugfixes/xvdir.c 2005-03-20 18:38:30.000000000 -0800 +@@ -1,4 +1,4 @@ +-/* ++/* + * xvdir.c - Directory changin', file i/o dialog box + * + * callable functions: +@@ -50,7 +50,7 @@ + #define COLWIDE 150 /* width of colMB */ + + /* NOTE: make sure these match up with F_* definitions in xv.h */ +-static char *saveColors[] = { "Full Color", ++static char *saveColors[] = { "Full Color", + "Greyscale", + "B/W Dithered", + "Reduced Color" }; +@@ -83,14 +83,16 @@ + static int dnamcmp PARM((const void *, const void *)); + static int FNameCdable PARM((void)); + static void loadCWD PARM((void)); ++#ifdef FOO + static int cd_able PARM((char *)); ++#endif + static void scrollToFileName PARM((void)); + static void setFName PARM((char *)); + static void showFName PARM((void)); + static void changeSuffix PARM((void)); + static int autoComplete PARM((void)); + +-static byte *handleBWandReduced PARM((byte *, int,int,int, int, int *, ++static byte *handleBWandReduced PARM((byte *, int,int,int, int, int *, + byte **, byte **, byte **)); + static byte *handleNormSel PARM((int *, int *, int *, int *)); + +@@ -119,7 +121,7 @@ + static char oldfname[MAXFNLEN+100]; + + /* the name of the file actually opened. (the temp file if we are piping) */ +-static char outFName[256]; ++static char outFName[256]; + static int dopipe; + + +@@ -127,48 +129,46 @@ + void CreateDirW(geom) + char *geom; + { +- int w, y; +- + path[0] = '\0'; + + xv_getwd(loadpath, sizeof(loadpath)); + xv_getwd(savepath, sizeof(savepath)); + +- ++ + dirW = CreateWindow("","XVdir", geom, DIRWIDE, DIRHIGH, infofg, infobg, 0); + if (!dirW) FatalError("couldn't create 'directory' window!"); + +- LSCreate(&dList, dirW, 10, 5 + 3*(6+LINEHIGH) + 6, LISTWIDE, +- LINEHIGH*NLINES, NLINES, fnames, numfnames, infofg, infobg, ++ LSCreate(&dList, dirW, 10, 5 + 3*(6+LINEHIGH) + 6, LISTWIDE, ++ LINEHIGH*NLINES, NLINES, fnames, numfnames, infofg, infobg, + hicol, locol, RedrawDList, 1, 0); + +- dnamW = XCreateSimpleWindow(theDisp, dirW, 80, dList.y + (int) dList.h + 30, +- (u_int) DNAMWIDE+6, (u_int) LINEHIGH+5, ++ dnamW = XCreateSimpleWindow(theDisp, dirW, 80, dList.y + (int) dList.h + 30, ++ (u_int) DNAMWIDE+6, (u_int) LINEHIGH+5, + 1, infofg, infobg); + if (!dnamW) FatalError("can't create name window"); + XSelectInput(theDisp, dnamW, ExposureMask); + + +- CBCreate(&browseCB, dirW, DIRWIDE/2, dList.y + (int) dList.h + 6, ++ CBCreate(&browseCB, dirW, DIRWIDE/2, dList.y + (int) dList.h + 6, + "Browse", infofg, infobg, hicol,locol); + +- CBCreate(&savenormCB, dirW, 220, dList.y + (int) dList.h + 6, ++ CBCreate(&savenormCB, dirW, 220, dList.y + (int) dList.h + 6, + "Normal Size", infofg, infobg,hicol,locol); + +- CBCreate(&saveselCB, dirW, 80, dList.y + (int) dList.h + 6, ++ CBCreate(&saveselCB, dirW, 80, dList.y + (int) dList.h + 6, + "Selected Area", infofg, infobg,hicol,locol); + + + /* y-coordinates get filled in when window is opened */ +- BTCreate(&dbut[S_BOK], dirW, 259, 0, 80, BUTTH, ++ BTCreate(&dbut[S_BOK], dirW, 259, 0, 80, BUTTH, + "Ok", infofg, infobg,hicol,locol); +- BTCreate(&dbut[S_BCANC], dirW, 259, 0, 80, BUTTH, ++ BTCreate(&dbut[S_BCANC], dirW, 259, 0, 80, BUTTH, + "Cancel", infofg,infobg,hicol,locol); +- BTCreate(&dbut[S_BRESCAN], dirW, 259, 0, 80, BUTTH, ++ BTCreate(&dbut[S_BRESCAN], dirW, 259, 0, 80, BUTTH, + "Rescan", infofg,infobg,hicol,locol); +- BTCreate(&dbut[S_BOLDSET], dirW, 259, 0, 80, BUTTH, ++ BTCreate(&dbut[S_BOLDSET], dirW, 259, 0, 80, BUTTH, + "Prev Set", infofg,infobg,hicol,locol); +- BTCreate(&dbut[S_BOLDNAM], dirW, 259, 0, 80, BUTTH, ++ BTCreate(&dbut[S_BOLDNAM], dirW, 259, 0, 80, BUTTH, + "Prev Name", infofg,infobg,hicol,locol); + + SetDirFName(""); +@@ -180,33 +180,33 @@ + * create MBUTTs *after* calling XMapSubWindows() to keep popup unmapped + */ + +- MBCreate(&dirMB, dirW, 50, dList.y -(LINEHIGH+6), ++ MBCreate(&dirMB, dirW, 50, dList.y -(LINEHIGH+6), + (u_int) DDWIDE, (u_int) LINEHIGH, NULL, NULL, 0, + infofg,infobg,hicol,locol); + +- MBCreate(&fmtMB, dirW, DIRWIDE-FMTWIDE-10, 5, +- (u_int) FMTWIDE, (u_int) LINEHIGH, NULL, saveFormats, F_MAXFMTS, ++ MBCreate(&fmtMB, dirW, DIRWIDE-FMTWIDE-10, 5, ++ (u_int) FMTWIDE, (u_int) LINEHIGH, NULL, saveFormats, F_MAXFMTS, + infofg,infobg,hicol,locol); + fmtMB.hascheck = 1; + MBSelect(&fmtMB, 0); + +- MBCreate(&colMB, dirW, DIRWIDE-COLWIDE-10, 5+LINEHIGH+6, +- (u_int) COLWIDE, (u_int) LINEHIGH, NULL, saveColors, F_MAXCOLORS, ++ MBCreate(&colMB, dirW, DIRWIDE-COLWIDE-10, 5+LINEHIGH+6, ++ (u_int) COLWIDE, (u_int) LINEHIGH, NULL, saveColors, F_MAXCOLORS, + infofg,infobg,hicol,locol); + colMB.hascheck = 1; + MBSelect(&colMB, 0); + + +- d_loadPix = XCreatePixmapFromBitmapData(theDisp, dirW, +- (char *) d_load_bits, d_load_width, d_load_height, ++ d_loadPix = XCreatePixmapFromBitmapData(theDisp, dirW, ++ (char *) d_load_bits, d_load_width, d_load_height, + infofg, infobg, dispDEEP); + +- d_savePix = XCreatePixmapFromBitmapData(theDisp, dirW, +- (char *) d_save_bits, d_save_width, d_save_height, ++ d_savePix = XCreatePixmapFromBitmapData(theDisp, dirW, ++ (char *) d_save_bits, d_save_width, d_save_height, + infofg, infobg, dispDEEP); + + } +- ++ + + /***************************************************/ + void DirBox(mode) +@@ -261,7 +261,7 @@ + + BTSetActive(&dbut[S_BOLDSET], haveoldinfo); + BTSetActive(&dbut[S_BOLDNAM], haveoldinfo); +- ++ + CBSetActive(&saveselCB, HaveSelection()); + + MBSetActive(&fmtMB, 1); +@@ -303,15 +303,15 @@ + if (gap>16) { + gap = 16; + top = dList.y + (dList.h - (nbts*BUTTH) - (ngaps*gap))/2; +- ++ + for (i=0; i txtw) txtw = StringWidth(COLLABEL); + + if (!savemode) { +- XCopyArea(theDisp, d_loadPix, dirW, theGC, 0,0,d_load_width,d_load_height, ++ XCopyArea(theDisp, d_loadPix, dirW, theGC, 0,0,d_load_width,d_load_height, + 10, (dirMB.y-6)/2 - d_load_height/2); + + XSetFillStyle(theDisp, theGC, FillStippled); +@@ -399,18 +398,18 @@ + i = v = 0; + if (MBClick(&fmtMB, x,y) && (v=MBTrack(&fmtMB))>=0) i=1; + else if (MBClick(&colMB, x,y) && (v=MBTrack(&colMB))>=0) i=2; +- ++ + if (i) { /* changed one of them */ + if (i==1) SetDirSaveMode(F_FORMAT, v); + else SetDirSaveMode(F_COLORS, v); + changeSuffix(); + } + } +- +- ++ ++ + if (!savemode) { /* LOAD */ + if (CBClick(&browseCB,x,y)) CBTrack(&browseCB); +- } ++ } + else { /* SAVE */ + if (CBClick(&savenormCB,x,y)) CBTrack(&savenormCB); + else if (CBClick(&saveselCB,x,y)) CBTrack(&saveselCB); +@@ -482,7 +481,7 @@ + } + + if (oldnumnames != numnames) { /* added some */ +- if (numnames>0) BTSetActive(&but[BDELETE],1); ++ if (numnames>0) BTSetActive(&but[BDELETE],1); + windowMB.dim[WMB_TEXTVIEW] = (numnames==0); + + LSNewData(&nList, dispnames, numnames); +@@ -564,7 +563,7 @@ + * a special concealed device setup to provide a list of available + * disks). + */ +- if ( ((ndirs-sel) == 2) && (strlen(tmppath) > 1) ) ++ if ( ((ndirs-sel) == 2) && (strlen(tmppath) > 1) ) + strcat ( tmppath, "/000000" ); /* add root dir for device */ + else if ((ndirs-sel) == 1 ) { + strcpy ( tmppath, "/XV_Root_Device/000000" ); /* fake top level */ +@@ -602,7 +601,7 @@ + xv_getwd(path, sizeof(path)); + LoadCurrentDirectory(); + } +- ++ + + + /***************************************************/ +@@ -621,7 +620,7 @@ + #else + struct dirent *dp; + #endif +- ++ + + /* get rid of previous file names */ + for (i=0; id_name, ".")==0 || +- (strcmp(dp->d_name, "..")==0 && ++ if (strcmp(dp->d_name, ".")==0 || ++ (strcmp(dp->d_name, "..")==0 && + (strcmp(path,"/")==0 || strcmp(path,"//")==0)) || + strcmp(dp->d_name, THUMBDIR)==0) { + /* skip over '.' and '..' and THUMBDIR */ +@@ -733,7 +732,7 @@ + /* For VMS we will default all files EXCEPT directories to avoid + the high cost of the VAX C implementation of the stat function. + Suggested by Kevin Oberman (OBERMAN@icdc.llnl.gov) */ +- ++ + if (xv_strstr (fnames[i]+1, ".DIR") != NULL) fnames[i][0] = C_DIR; + if (xv_strstr (fnames[i]+1, ".EXE") != NULL) fnames[i][0] = C_EXE; + if (xv_strstr (fnames[i]+1, ".OBJ") != NULL) fnames[i][0] = C_BLK; +@@ -784,11 +783,13 @@ + + + /***************************************************/ ++#ifdef FOO + static int cd_able(str) + char *str; + { + return ((str[0] == C_DIR || str[0] == C_LNK)); + } ++#endif /* FOO */ + + + /***************************************************/ +@@ -829,7 +830,7 @@ + int len; + + len = strlen(filename); +- ++ + if (c>=' ' && c<'\177') { /* printable characters */ + /* note: only allow 'piped commands' in savemode... */ + +@@ -918,19 +919,19 @@ + { + /* called to 'auto complete' a filename being entered. If the name that + has been entered so far is anything but a simple filename (ie, has +- spaces, pipe char, '/', etc) fails. If it is a simple filename, ++ spaces, pipe char, '/', etc) fails. If it is a simple filename, + looks through the name list to find something that matches what's already + been typed. If nothing matches, it fails. If more than one thing + matches, it sets the name to the longest string that the multiple +- matches have in common, and succeeds (and beeps). ++ matches have in common, and succeeds (and beeps). + If only one matches, sets the string to the match and succeeds. +- ++ + returns zero on failure, non-zero on success */ +- ++ + int i, firstmatch, slen, nummatch, cnt; + + /* is filename a simple filename? */ +- if (strlen(filename)==0 || ++ if (strlen(filename)==0 || + ISPIPE(filename[0]) || + index(filename, '/') || + filename[0]=='~' ) return 0; +@@ -946,7 +947,7 @@ + firstmatch = i; + + /* count # of matches */ +- for (i=firstmatch, nummatch=0; ++ for (i=firstmatch, nummatch=0; + ienPos) enPos = curPos; +- ++ + if (stPos>len) stPos = (len>0) ? len-1 : 0; + if (enPos>len) enPos = (len>0) ? len-1 : 0; +- ++ + /* while substring is shorter than window, inc enPos */ +- ++ + while (XTextWidth(mfinfo, &filename[stPos], enPos-stPos) < DNAMWIDE + && enPos=0) MBSelect(&colMB, bnum); + } +- ++ + + else if (group == F_FORMAT) { + MBSelect(&fmtMB, bnum); +@@ -1322,10 +1331,10 @@ + colMB.dim[F_GREYSCALE] = 0; + colMB.dim[F_BWDITHER] = 0; + colMB.dim[F_REDUCED] = (picType==PIC8) ? 0 : 1; +- if (picType!=PIC8 && MBWhich(&colMB)==F_REDUCED) ++ if (picType!=PIC8 && MBWhich(&colMB)==F_REDUCED) + MBSelect(&colMB, F_FULLCOLOR); + } +- ++ + if (MBWhich(&fmtMB) == F_FILELIST) { + MBSetActive(&colMB, 0); + CBSetActive(&savenormCB, 0); +@@ -1337,12 +1346,12 @@ + } + } + +- ++ + + /***************************************/ + static void changeSuffix() + { +- /* see if there's a common suffix at the end of the filename. ++ /* see if there's a common suffix at the end of the filename. + if there is, remember what case it was (all caps or all lower), lop + it off, and replace it with a new appropriate suffix, in the + same case */ +@@ -1356,7 +1365,7 @@ + suffix++; /* point to first letter of the suffix */ + + /* check for all-caposity */ +- for (sp = suffix, allcaps=1; *sp; sp++) ++ for (sp = suffix, allcaps=1; *sp; sp++) + if (islower(*sp)) allcaps = 0; + + /* copy the suffix into an all-lower-case buffer */ +@@ -1401,7 +1410,7 @@ + case F_GIF: strcpy(lowsuf,"gif"); break; + case F_PM: strcpy(lowsuf,"pm"); break; + case F_PBMRAW: +- case F_PBMASCII: if (col == F_FULLCOLOR || col == F_REDUCED) ++ case F_PBMASCII: if (col == F_FULLCOLOR || col == F_REDUCED) + strcpy(lowsuf,"ppm"); + else if (col == F_GREYSCALE) strcpy(lowsuf,"pgm"); + else if (col == F_BWDITHER) strcpy(lowsuf,"pbm"); +@@ -1426,10 +1435,10 @@ + } + + if (allcaps) { /* upper-caseify lowsuf */ +- for (sp=lowsuf; *sp; sp++) ++ for (sp=lowsuf; *sp; sp++) + *sp = (islower(*sp)) ? toupper(*sp) : *sp; + } +- ++ + /* one other case: if the original suffix started with a single + capital letter, make the new suffix start with a single cap */ + if (isupper(suffix[0])) lowsuf[0] = toupper(lowsuf[0]); +@@ -1439,7 +1448,7 @@ + } + + } +- ++ + + /***************************************************/ + int DirCheckCD() +@@ -1462,7 +1471,7 @@ + static int FNameCdable() + { + /* returns '1' if filename is a directory, and goes there */ +- ++ + char newpath[1024]; + struct stat st; + int retval = 0; +@@ -1518,7 +1527,7 @@ + retval = 1; + } + } +- ++ + return retval; + } + +@@ -1550,7 +1559,7 @@ + + if (*uname=='\0') { /* no name. substitute ~ with $HOME */ + char *homedir; +- homedir = (char *) getenv("HOME"); ++ homedir = (char *) getenv("HOME"); + if (homedir == NULL) homedir = "."; + strcpy(tmp,homedir); + strcat(tmp,sp); +@@ -1579,7 +1588,7 @@ + /* opens file for output. does various error handling bits. Returns + an open file pointer if success, NULL if failure */ + +- FILE *fp; ++ FILE *fp = NULL; + struct stat st; + + if (!filename || filename[0] == '\0') return NULL; +@@ -1596,23 +1605,34 @@ + #else + strcpy(outFName, "[]xvXXXXXX.lis"); + #endif ++#ifdef USE_MKSTEMP ++ fp = fdopen(mkstemp(outFName), "w"); ++#else + mktemp(outFName); ++#endif + dopipe = 1; + } + + +- /* see if file exists (ie, we're overwriting) */ +- if (stat(outFName, &st)==0) { /* stat succeeded, file must exist */ +- static char *foo[] = { "\nOk", "\033Cancel" }; +- char str[512]; ++#ifdef USE_MKSTEMP /* (prior) nonexistence of file is already guaranteed by */ ++ if (!dopipe) /* mkstemp(), but now mkstemp() itself has created it */ ++#endif ++ /* see if file exists (i.e., we're overwriting) */ ++ if (stat(outFName, &st)==0) { /* stat succeeded, file must exist */ ++ static char *foo[] = { "\nOk", "\033Cancel" }; ++ char str[512]; + +- sprintf(str,"Overwrite existing file '%s'?", outFName); +- if (PopUp(str, foo, 2)) return NULL; +- } +- ++ sprintf(str,"Overwrite existing file '%s'?", outFName); ++ if (PopUp(str, foo, 2)) return NULL; ++ } ++ ++ ++ /* Open file (if not already open via mkstemp()) */ ++#ifdef USE_MKSTEMP ++ if (!dopipe) ++#endif ++ fp = fopen(outFName, "w"); + +- /* Open file */ +- fp = fopen(outFName, "w"); + if (!fp) { + char str[512]; + sprintf(str,"Can't write file '%s'\n\n %s.",outFName, ERRSTR(errno)); +@@ -1622,7 +1642,7 @@ + + return fp; + } +- ++ + + /***************************************/ + int CloseOutFile(fp, filename, failed) +@@ -1642,9 +1662,8 @@ + return 1; + } + +- ++ + if (fclose(fp) == EOF) { +- static char *foo[] = { "\nWeird!" }; + char str[512]; + sprintf(str,"Can't close file '%s'\n\n %s.",outFName, ERRSTR(errno)); + ErrPopUp(str, "\nWeird!"); +@@ -1666,7 +1685,7 @@ + } + + SetISTR(ISTR_INFO,"Successfully wrote '%s'%s", outFName, buf); +- ++ + if (dopipe) { + char cmd[512], str[1024]; + int i; +@@ -1709,7 +1728,7 @@ + return 0; + } + +- ++ + + + static byte rBW[2], gBW[2], bBW[2]; +@@ -1732,7 +1751,7 @@ + bwpic = (byte *) NULL; + *nc = numcols; *rpp = rMap; *gpp = gMap; *bpp = bMap; + +- /* quick check: if we're saving a 24-bit image, then none of this ++ /* quick check: if we're saving a 24-bit image, then none of this + complicated 'reduced'/dithered/smoothed business comes into play. + 'reduced' is disabled, for semi-obvious reasons, in 24-bit mode, + as is 'dithered'. If 'smoothed', and we're saving at current +@@ -1744,32 +1763,32 @@ + if we're saving B/W DITHERED, and deal accordingly */ + + +- if (ptype == PIC24) { ++ if (ptype == PIC24) { + if (color != F_BWDITHER) return NULL; + else { /* generate a bw-dithered version */ + byte *p24, *thepic; +- ++ + thepic = pic; + p24 = GammifyPic24(thepic, pw, ph); + if (p24) thepic = p24; +- ++ + /* generate a FSDithered 1-byte per pixel image */ + bwpic = FSDither(thepic, PIC24, pw, ph, NULL,NULL,NULL, 0, 1); + if (!bwpic) FatalError("unable to malloc dithered picture (DoSave)"); +- ++ + if (p24) free(p24); /* won't need it any more */ +- ++ + /* build a BW colormap */ + rBW[0] = gBW[0] = bBW[0] = 0; + rBW[1] = gBW[1] = bBW[1] = 255; +- ++ + *rpp = rBW; *gpp = gBW; *bpp = bBW; + *nc = 2; +- ++ + return bwpic; + } + } +- ++ + + + /* ptype == PIC8 ... */ +@@ -1777,7 +1796,7 @@ + *nc = numcols; *rpp = rMap; *gpp = gMap; *bpp = bMap; + if (color==F_REDUCED) { *rpp = rdisp; *gpp = gdisp; *bpp = bdisp; } + +- /* if DITHER or SMOOTH, and color==FULLCOLOR or GREY, ++ /* if DITHER or SMOOTH, and color==FULLCOLOR or GREY, + make color=REDUCED, so it will be written with the correct colortable */ + + if ((epicMode == EM_DITH || epicMode == EM_SMOOTH) && color != F_REDUCED) { +@@ -1789,7 +1808,7 @@ + *rpp = gray; *gpp = gray; *bpp = gray; + } + } +- ++ + + + +@@ -1823,8 +1842,8 @@ + * and whether or not it should be freed when we're done with it. The 'pic' + * returned is the desired portion of 'cpic' or 'epic' if there is a + * selection, and the saveselCB is enabled, or alternately, it's the +- * whole cpic or epic. +- * ++ * whole cpic or epic. ++ * + * if selection does not intersect cpic/epic, returns cpic/epic + * NEVER RETURNS NULL + */ +@@ -1837,7 +1856,7 @@ + if (savenormCB.val) { thepic = cpic; pw = cWIDE; ph = cHIGH; } + else { thepic = epic; pw = eWIDE; ph = eHIGH; } + +- *pwide = pw; *phigh = ph; ++ *pwide = pw; *phigh = ph; + + + if (saveselCB.active && saveselCB.val && HaveSelection()) { +@@ -1862,7 +1881,7 @@ + CoordP2E(x2,y2, &x2, &y2); + slx = x1; sly = y1; slw = x2-x1; slh = y2-y1; + CropRect2Rect(&slx, &sly, &slw, &slh, 0,0,pw,ph); +- ++ + if (slw<1 || slh<1) { slx = sly = 0; slw=pw; slh=ph; } + + if (slx!=0 || sly!=0 || slw!=pw || slh!=ph) { +@@ -1871,7 +1890,7 @@ + } + } + +- *pwide = slw; *phigh = slh; ++ *pwide = slw; *phigh = slh; + } + + return thepic; +@@ -1884,11 +1903,11 @@ + byte **rmapP, **gmapP, **bmapP; + { + /* handles the whole ugly mess of the various save options. +- * returns an image, of type 'ptypeP', size 'wP,hP'. ++ * returns an image, of type 'ptypeP', size 'wP,hP'. + * if (*ptypeP == PIC8), also returns numcols 'ncP', and the r,g,b map + * to use rmapP, gmapP, bmapP. + * +- * if freeP is set, image can safely be freed after it is saved ++ * if freeP is set, image can safely be freed after it is saved + */ + + byte *pic1, *pic2; +@@ -1896,9 +1915,9 @@ + + pic1 = handleNormSel(&ptype, &w, &h, &pfree); + +- pic2 = handleBWandReduced(pic1, ptype, w,h, MBWhich(&colMB), ++ pic2 = handleBWandReduced(pic1, ptype, w,h, MBWhich(&colMB), + ncP, rmapP, gmapP, bmapP); +- if (pic2) { ++ if (pic2) { + if (pfree) free(pic1); + pic1 = pic2; + pfree = 1; +@@ -1906,7 +1925,7 @@ + } + + +- if (ptype == PIC24) { ++ if (ptype == PIC24) { + pic2 = GammifyPic24(pic1, w, h); + if (pic2) { + if (pfree) free(pic1); +@@ -1920,7 +1939,7 @@ + return pic1; + } + +- ++ + /***************************************/ + void GetSaveSize(wP, hP) + int *wP, *hP; +@@ -1947,7 +1966,7 @@ + CoordP2E(x2,y2, &x2, &y2); + slx = x1; sly = y1; slw = x2-x1; slh = y2-y1; + CropRect2Rect(&slx, &sly, &slw, &slh, 0,0,eWIDE,eHIGH); +- ++ + if (slw<1 || slh<1) { slx = sly = 0; slw=eWIDE; slh=eHIGH; } + } + } +@@ -1982,7 +2001,7 @@ + + if (stat(namelist[curname], &origStat)==0) { + haveStat = 1; +- if (DEBUG) fprintf(stderr," origStat.size=%ld, origStat.mtime=%d\n", ++ if (DEBUG) fprintf(stderr," origStat.size=%ld, origStat.mtime=%ld\n", + origStat.st_size, origStat.st_mtime); + } + } +@@ -1993,7 +2012,7 @@ + int CheckPoll(del) + int del; + { +- /* returns '1' if the file has been modified, and either ++ /* returns '1' if the file has been modified, and either + A) the file has stabilized (st = lastStat), or + B) 'del' seconds have gone by since the file last changed size + */ +@@ -2007,14 +2026,14 @@ + (strcmp(namelist[curname], STDINSTR)!=0)) { + + if (stat(namelist[curname], &st)==0) { +- if (DEBUG) fprintf(stderr," st.size=%ld, st.mtime=%d\n", ++ if (DEBUG) fprintf(stderr," st.size=%ld, st.mtime=%ld\n", + st.st_size, st.st_mtime); + + if ((st.st_size == origStat.st_size) && + (st.st_mtime == origStat.st_mtime)) return 0; /* no change */ + + /* if it's changed since last looked ... */ +- if (!haveLastStat || ++ if (!haveLastStat || + st.st_size != lastStat.st_size || + st.st_mtime != lastStat.st_mtime) { + xvbcopy((char *) &st, (char *) &lastStat, sizeof(struct stat)); +@@ -2031,7 +2050,7 @@ + } + } + } +- ++ + return 0; + } + +@@ -2042,14 +2061,13 @@ + { + /* called when file 'name' has been deleted. If any of the browsers + were showing the directory that the file was in, does a rescan() */ +- +- int i; ++ + char buf[MAXPATHLEN + 2], *tmp; + + strcpy(buf, name); + tmp = BaseName(buf); + *tmp = '\0'; /* truncate after last '/' */ +- ++ + if (strcmp(path, buf)==0) LoadCurrentDirectory(); + } + +diff -ruN xv-3.10a/xvevent.c xv-3.10a-bugfixes/xvevent.c +--- xv-3.10a/xvevent.c 1995-01-23 15:20:24.000000000 -0800 ++++ xv-3.10a-bugfixes/xvevent.c 2004-05-16 18:02:03.000000000 -0700 +@@ -101,15 +101,15 @@ + while (!done) { + + if (waitsec > -1 && canstartwait && !waiting && XPending(theDisp)==0) { +- /* we wanna wait, we can wait, we haven't started waiting yet, and +- all pending events (ie, drawing the image the first time) ++ /* we wanna wait, we can wait, we haven't started waiting yet, and ++ all pending events (ie, drawing the image the first time) + have been dealt with: START WAITING */ + time((time_t *) &orgtime); + waiting = 1; + } + + +- /* if there's an XEvent pending *or* we're not doing anything ++ /* if there's an XEvent pending *or* we're not doing anything + in real-time (polling, flashing the selection, etc.) get next event */ + if ((waitsec==-1 && !polling && !HaveSelection()) || XPending(theDisp)>0) { + XNextEvent(theDisp, &event); +@@ -187,7 +187,7 @@ + + #ifdef VMS + static int borders_sized = 0; +- ++ + if (!borders_sized && !useroot && exp_event->window == mainW) { + /* + * Initial expose of main window, find the size of the ancestor +@@ -198,13 +198,13 @@ + int status, count, mwid, mhgt, x, y, w, h, b, d, mbrd; + Window root, parent, *children, crw = exp_event->window; + borders_sized = 1; +- status = XGetGeometry(theDisp, crw, ++ status = XGetGeometry(theDisp, crw, + &root, &x, &y, &mwid, &mhgt, &mbrd, &d); +- ++ + for ( parent = crw, w=mwid, h=mhgt; + status && (parent != root) && (parent != vrootW); ) { + crw = parent; +- status = XQueryTree ( theDisp, crw, &root, &parent, ++ status = XQueryTree ( theDisp, crw, &root, &parent, + &children, &count ); + if ( children != NULL ) XFree ( children ); + } +@@ -221,7 +221,7 @@ + win = exp_event->window; + x = exp_event->x; y = exp_event->y; + w = exp_event->width; h = exp_event->height; +- ++ + if (PUCheckEvent (event)) break; /* event has been processed */ + if (PSCheckEvent (event)) break; /* event has been processed */ + +@@ -238,7 +238,7 @@ + if (TextCheckEvent (event, &retval, &done)) break; /* event eaten */ + + /* if the window doesn't do intelligent redraw, drop but last expose */ +- if (exp_event->count>0 && ++ if (exp_event->count>0 && + win != mainW && win != ctrlW && win != dirW && win != infoW) break; + + +@@ -301,7 +301,7 @@ + if (DEBUG) fprintf(stderr,"No configs pending.\n"); + /* if (DEBUG) XClearArea(theDisp, mainW, x,y,w,h, False); */ + DrawWindow(x,y,w,h); +- ++ + if (HaveSelection()) DrawSelection(0); + + canstartwait = 1; /* finished drawing */ +@@ -314,7 +314,7 @@ + else if (win == infoW) RedrawInfo(x,y,w,h); + else if (win == ctrlW) RedrawCtrl(x,y,w,h); + else if (win == dirW) RedrawDirW(x,y,w,h); +- ++ + XSetClipMask(theDisp, theGC, None); + XDestroyRegion(reg); + } +@@ -324,10 +324,10 @@ + else if (win == dList.win) LSRedraw(&dList,0); + else if (win == dList.scrl.win) SCRedraw(&dList.scrl); + else if (win == dnamW) RedrawDNamW(); +- } ++ } + break; + +- ++ + + case ClientMessage: { + Atom proto, delwin; +@@ -382,8 +382,8 @@ + XSizeHints hints; + + /* +- * if there's a virtual window manager running (e.g. tvtwm / olvwm), +- * we're going to get 'cevt' values in terms of the ++ * if there's a virtual window manager running (e.g. tvtwm / olvwm), ++ * we're going to get 'cevt' values in terms of the + * 'real' root window (the one that is the size of the screen). + * We'll want to translate them into values that are in terms of + * the 'virtual' root window (the 'big' one) +@@ -392,7 +392,7 @@ + if (vrootW != rootW) { + int x1,y1; Window child; + +- XTranslateCoordinates(theDisp, rootW, vrootW, cevt->x, cevt->y, ++ XTranslateCoordinates(theDisp, rootW, vrootW, cevt->x, cevt->y, + &x1, &y1, &child); + if (DEBUG) fprintf(stderr," CONFIG trans %d,%d root -> %d,%d vroot\n", + cevt->x, cevt->y, x1, y1); +@@ -401,11 +401,11 @@ + + #ifndef VMS + /* read hints for this window and adjust any position hints, but +- only if this is a 'synthetic' event sent to us by the WM ++ only if this is a 'synthetic' event sent to us by the WM + ('real' events from the server have useless x,y info, since the + mainW has been reparented by the WM) */ + +- if (cevt->send_event && ++ if (cevt->send_event && + XGetNormalHints(theDisp, cevt->window, &hints)) { + + if (DEBUG) fprintf(stderr," CONFIG got hints (0x%x %d,%d)\n", +@@ -439,11 +439,11 @@ + * This sucks! + * + * So, if we have just loaded an image, and we get a Synthetic conf +- * that is not the desired size (eWIDExeHIGH), ignore it, as it's ++ * that is not the desired size (eWIDExeHIGH), ignore it, as it's + * just the conf generated by moving the old window. And stop + * ignoring further config events + * +- * EVIL KLUDGE: do *not* ignore configs that are <100x100. Not ++ * EVIL KLUDGE: do *not* ignore configs that are <100x100. Not + * ignoring them won't be a big performance problem, and it'll get + * around the 'I only got one config in the wrong size' problem when + * initially displaying small images +@@ -453,7 +453,7 @@ + + /* fprintf(stderr,"***mainw, ignore=%d, send_event=%d, evtSize=%d,%d, size=%d,%d\n", ignoreConfigs, cevt->send_event, cevt->width, cevt->height, eWIDE, eHIGH); */ + +- if (ignoreConfigs==1 && cevt->send_event && ++ if (ignoreConfigs==1 && cevt->send_event && + (cevt->width != eWIDE || cevt->height != eHIGH)) { + ignoreConfigs=0; /* ignore this one only */ + break; +@@ -470,7 +470,7 @@ + else { + XEvent xev; + if (DEBUG) fprintf(stderr,"No configs pend."); +- ++ + if (cevt->width == eWIDE && cevt->height == eHIGH) { + if (DEBUG) fprintf(stderr,"No redraw\n"); + } +@@ -478,12 +478,12 @@ + if (DEBUG) fprintf(stderr,"Do full redraw\n"); + + Resize(cevt->width, cevt->height); +- ++ + /* eat any pending expose events and do a full redraw */ + while (XCheckTypedWindowEvent(theDisp, mainW, Expose, &xev)) { + XExposeEvent *exp = (XExposeEvent *) &xev; + +- if (DEBUG) ++ if (DEBUG) + fprintf(stderr," ate expose (%s) (count=%d) %d,%d %dx%d\n", + exp->send_event ? "synth" : "real", exp->count, + exp->x, exp->y, exp->width, exp->height); +@@ -508,9 +508,9 @@ + + } + break; +- + +- ++ ++ + case CirculateNotify: + case DestroyNotify: + case GravityNotify: break; +@@ -554,7 +554,7 @@ + + /* don't do it if we've just switched to a root mode */ + if ((unmap_event->window == mainW && dispMode == 0) || +- (unmap_event->window == ctrlW && dispMode != 0)) { ++ (unmap_event->window == ctrlW && dispMode != 0)) { + + if (autoclose) { + if (autoclose>1) autoclose -= 2; /* grab kludge */ +@@ -586,8 +586,8 @@ + XReparentEvent *reparent_event = (XReparentEvent *) event; + + if (DEBUG) { +- fprintf(stderr,"Reparent: mainW=%x ->win=%x ->ev=%x ->parent=%x ", +- (u_int) mainW, (u_int) reparent_event->window, ++ fprintf(stderr,"Reparent: mainW=%x ->win=%x ->ev=%x ->parent=%x ", ++ (u_int) mainW, (u_int) reparent_event->window, + (u_int) reparent_event->event, (u_int) reparent_event->parent); + fprintf(stderr,"%d,%d\n", reparent_event->x, reparent_event->y); + } +@@ -598,7 +598,7 @@ + + p_offx = p_offy = 0; /* topleft correction for WMs titlebar */ + +- if (ch_offx == 0 && ch_offy == 0) { ++ if (ch_offx == 0 && ch_offy == 0) { + /* looks like the user is running MWM or OLWM */ + + XWindowAttributes xwa; +@@ -609,8 +609,8 @@ + + XSync(theDisp, False); + XGetWindowAttributes(theDisp, mainW, &xwa); +- +- if (DEBUG) ++ ++ if (DEBUG) + fprintf(stderr,"XGetAttr: mainW %d,%d %dx%d\n", xwa.x, xwa.y, + xwa.width, xwa.height); + +@@ -620,8 +620,8 @@ + + XSync(theDisp, False); + XGetWindowAttributes(theDisp, reparent_event->parent, &xwa); +- +- if (DEBUG) ++ ++ if (DEBUG) + fprintf(stderr,"XGetAttr: parent %d,%d %dx%d\n", xwa.x, xwa.y, + xwa.width, xwa.height); + } +@@ -641,42 +641,42 @@ + p_offy = xwa.y; + } + +- ++ + /* move window around a bit... */ + { + XWindowAttributes xwa; + GetWindowPos(&xwa); + xwa.width = eWIDE; xwa.height = eHIGH; +- ++ + /* try to keep the damned thing on-screen, if possible */ + if (xwa.x + xwa.width > dispWIDE) xwa.x = dispWIDE - xwa.width; + if (xwa.y + xwa.height > dispHIGH) xwa.y = dispHIGH - xwa.height; + if (xwa.x < 0) xwa.x = 0; + if (xwa.y < 0) xwa.y = 0; +- ++ + SetWindowPos(&xwa); + } + + } + } + break; +- ++ + + case EnterNotify: + case LeaveNotify: { + XCrossingEvent *cross_event = (XCrossingEvent *) event; + if (cross_event->window == mainW || 0 + /* (cross_event->window == gamW && cmapInGam) */ ) { +- ++ + if (cross_event->type == EnterNotify && cross_event->window == mainW) { + zoomCurs(cross_event->state); + } + + +- if (cross_event->type == EnterNotify && LocalCmap && !ninstall) ++ if (cross_event->type == EnterNotify && LocalCmap && !ninstall) + XInstallColormap(theDisp,LocalCmap); + +- if (cross_event->type == LeaveNotify && LocalCmap && !ninstall) ++ if (cross_event->type == LeaveNotify && LocalCmap && !ninstall) + XUninstallColormap(theDisp,LocalCmap); + } + } +@@ -685,12 +685,12 @@ + + case SelectionClear: break; + +- case SelectionRequest: ++ case SelectionRequest: + { + XSelectionRequestEvent *xsrevt = (XSelectionRequestEvent *) event; + XSelectionEvent xse; + +- if (xsrevt->owner != ctrlW || ++ if (xsrevt->owner != ctrlW || + xsrevt->selection != XA_PRIMARY || + xsrevt->target != XA_STRING) { /* can't do it. */ + xse.property = None; +@@ -702,7 +702,7 @@ + if (xse.property != None) { + xerrcode = 0; + XChangeProperty(theDisp, xsrevt->requestor, xse.property, +- XA_STRING, 8, PropModeReplace, ++ XA_STRING, 8, PropModeReplace, + (byte *) ((xevPriSel) ? xevPriSel : "\0"), + (int) ((xevPriSel) ? strlen(xevPriSel)+1 : 1)); + XSync(theDisp, False); +@@ -721,9 +721,9 @@ + XSync(theDisp, False); + } + break; +- +- +- ++ ++ ++ + default: break; /* ignore unexpected events */ + } /* switch */ + +@@ -738,7 +738,7 @@ + int i; + { + /* called to handle selection of a dispMB item */ +- ++ + if (i<0 || i>=DMB_MAX) return; + + if (dispMB.dim[i]) return; /* disabled */ +@@ -747,36 +747,36 @@ + if (i==DMB_RAW) epicMode = EM_RAW; + else if (i==DMB_DITH) epicMode = EM_DITH; + else epicMode = EM_SMOOTH; +- +- SetEpicMode(); ++ ++ SetEpicMode(); + GenerateEpic(eWIDE, eHIGH); + DrawEpic(); + SetCursors(-1); + } +- ++ + else if (i==DMB_COLRW) { /* toggle rw on/off */ + dispMB.flags[i] = !dispMB.flags[i]; + allocMode = (dispMB.flags[i]) ? AM_READWRITE : AM_READONLY; + ChangeCmapMode(colorMapMode, 1, 0); + } +- ++ + else if (i>=DMB_COLNORM && i<=DMB_COLSTDC && !dispMB.flags[i]) { + switch (i) { +- case DMB_COLNORM: +- ChangeCmapMode(CM_NORMAL, 1, 0); +- defaultCmapMode = CM_NORMAL; ++ case DMB_COLNORM: ++ ChangeCmapMode(CM_NORMAL, 1, 0); ++ defaultCmapMode = CM_NORMAL; + break; +- case DMB_COLPERF: ++ case DMB_COLPERF: + ChangeCmapMode(CM_PERFECT,1, 0); +- defaultCmapMode = CM_PERFECT; ++ defaultCmapMode = CM_PERFECT; + break; +- case DMB_COLOWNC: ++ case DMB_COLOWNC: + ChangeCmapMode(CM_OWNCMAP,1, 0); +- defaultCmapMode = CM_OWNCMAP; ++ defaultCmapMode = CM_OWNCMAP; + break; +- case DMB_COLSTDC: ++ case DMB_COLSTDC: + ChangeCmapMode(CM_STDCMAP,1, 0); +- defaultCmapMode = CM_STDCMAP; ++ defaultCmapMode = CM_STDCMAP; + break; + } + } +@@ -788,17 +788,17 @@ + int i; + { + /* called to handle selection of a rootMB item */ +- ++ + if (i<0 || i>=RMB_MAX) return; + if (rootMB.flags[i]) return; + if (rootMB.dim[i]) return; + + dispMode = i; +- ++ + /* move checkmark */ + for (i=RMB_WINDOW; i8->24 */ + char buf[512]; +- ++ + sprintf(buf,"Warning: You appear to have taken a 24-bit "); + strcat(buf, "image, turned it to an 8-bit image, and turned "); + strcat(buf, "it back into a 24-bit image. Understand that "); + strcat(buf, "image data has probably been lost in this "); + strcat(buf, "transformation. You *may* want to reload the "); + strcat(buf, "original image to avoid this problem."); +- ++ + ErrPopUp(buf, "\nI Know!"); +- ++ + state824 = 2; /* shut up until next image is loaded */ + } + } + } +- ++ + else if (i==CONV24_LOCK) { + conv24MB.flags[i] = !conv24MB.flags[i]; + } +- ++ + else if (i>=CONV24_FAST && i<=CONV24_BEST) { + conv24 = i; + for (i=CONV24_FAST; i<=CONV24_BEST; i++) { +@@ -859,15 +859,15 @@ + else chdir(initdir); + OpenBrowse(); + break; +- ++ + case WMB_COLEDIT: GamBox (!gamUp); break; + case WMB_INFO: InfoBox(!infoUp); break; +- +- case WMB_COMMENT: ++ ++ case WMB_COMMENT: + if (!commentUp) OpenCommentText(); + else CloseCommentText(); + break; +- ++ + case WMB_TEXTVIEW: textViewCmd(); break; + case WMB_ABOUTXV: ShowLicense(); break; + case WMB_KEYHELP: ShowKeyHelp(); break; +@@ -892,19 +892,19 @@ + double r,wr,hr; + wr = ((double) cWIDE) / maxWIDE; + hr = ((double) cHIGH) / maxHIGH; +- ++ + r = (wr>hr) ? wr : hr; /* r is the max(wr,hr) */ + w = (int) ((cWIDE / r) + 0.5); + h = (int) ((cHIGH / r) + 0.5); + } + else { w = cWIDE; h = cHIGH; } +- ++ + WResize(w, h); + break; + + case SZMB_MAXPIC: WMaximize(); break; + +- case SZMB_MAXPECT: ++ case SZMB_MAXPECT: + { + int w1,h1; + w1 = eWIDE; h1 = eHIGH; +@@ -925,24 +925,24 @@ + if (h==eHIGH) h++; + WResize(w,h); + break; +- +- ++ ++ + case SZMB_SETSIZE: setSizeCmd(); break; + case SZMB_ASPECT: FixAspect(1, &w, &h); WResize(w,h); break; + +- case SZMB_4BY3: ++ case SZMB_4BY3: + w = eWIDE; h = (w * 3) / 4; + if (h>maxHIGH) { h = eHIGH; w = (h*4)/3; } + WResize(w,h); + break; + +- case SZMB_INTEXP: ++ case SZMB_INTEXP: + { + /* round (eWIDE/cWIDE),(eHIGH/cHIGH) to nearest + integer expansion/compression values */ +- ++ + double w,h; +- ++ + if (eWIDE >= cWIDE) { + w = ((double) eWIDE) / cWIDE; + w = floor(w + 0.5); +@@ -961,7 +961,7 @@ + } + w = pick; + } +- ++ + if (eHIGH >= cHIGH) { + h = ((double) eHIGH) / cHIGH; + h = floor(h + 0.5); +@@ -980,11 +980,11 @@ + } + h = pick; + } +- ++ + WResize((int) (w*cWIDE), (int) (h*cHIGH)); + } + break; +- ++ + default: break; + } + } +@@ -998,7 +998,7 @@ + int i; + char txt[512], str[PRINTCMDLEN + 10]; + static char *labels[] = { " Color", " Grayscale", " B/W", "\033Cancel" }; +- ++ + strcpy(txt, "Print: Enter a command that will read a PostScript file "); + strcat(txt, "from stdin and print it to the desired printer.\n\n"); + #ifndef VMS +@@ -1011,11 +1011,11 @@ + if (i == 3 || strlen(printCmd)==0) return; /* CANCEL */ + + if (dirUp == BLOAD) DirBox(0); +- ++ + SetDirSaveMode(F_FORMAT, F_PS); + SetDirSaveMode(F_COLORS, i); + +- if (printCmd[0] != '|' && printCmd[0] != '!') ++ if (printCmd[0] != '|' && printCmd[0] != '!') + sprintf(str, "| %s", printCmd); + else strcpy(str, printCmd); + +@@ -1090,7 +1090,7 @@ + Window win; + { + static char foo[16]; +- ++ + if (win == mainW) return "mainW"; + else if (win == rootW) return "rootW"; + else if (win == vrootW) return "vrootW"; +@@ -1106,7 +1106,7 @@ + } + } + +- ++ + /***********************************/ + static void handleButtonEvent(event, donep, retvalp) + XEvent *event; +@@ -1127,38 +1127,36 @@ + case ButtonPress: + /* *always* check for pop-up events, as errors can happen... */ + if (PUCheckEvent (event)) break; +- ++ + if (autoquit && win == mainW) Quit(0); +- ++ + if (viewonly) break; /* ignore all other button presses */ +- ++ + if (win == mainW && !useroot && showzoomcursor) { + DoZoom(x, y, but_event->button); + break; + } +- ++ + if (PSCheckEvent (event)) break; +- ++ + #ifdef HAVE_JPEG + if (JPEGCheckEvent(event)) break; + #endif +- ++ + #ifdef HAVE_TIFF + if (TIFFCheckEvent(event)) break; + #endif +- ++ + if (GamCheckEvent (event)) break; + if (BrowseCheckEvent (event, &retval, &done)) break; + if (TextCheckEvent (event, &retval, &done)) break; +- ++ + switch (but_event->button) { +- +- case Button1: ++ ++ case Button1: + if (win == mainW) DoSelection(but_event); +- ++ + else if (win == ctrlW) { +- int w,h; +- + if (MBClick(&dispMB, x,y)) SelectDispMB (MBTrack(&dispMB) ); + else if (MBClick(&conv24MB, x,y)) Select24to8MB (MBTrack(&conv24MB)); + else if (MBClick(&rootMB, x,y)) SelectRootMB (MBTrack(&rootMB) ); +@@ -1170,9 +1168,9 @@ + if (i>=0) DoAlg(i); + break; + } +- ++ + i=ClickCtrl(x,y); +- ++ + switch (i) { + case BNEXT: retval= NEXTPIC; done=1; break; + case BPREV: retval= PREVPIC; done=1; break; +@@ -1192,21 +1190,21 @@ + case BROTR: Rotate(0); break; + case BFLIPH: Flip(0); break; + case BFLIPV: Flip(1); break; +- ++ + case BCROP: Crop(); break; + case BUNCROP: UnCrop(); break; + case BACROP: AutoCrop(); break; +- ++ + case BPAD: + { + int mode, wide, high, opaque, omode; char *str; +- ++ + while (PadPopUp(&mode, &str, &wide, &high, &opaque, &omode)==0) { +- if (DoPad(mode, str, wide, high, opaque, omode)) { ++ if (DoPad(mode, str, wide, high, opaque, omode)) { + done = 1; retval = PADDED; break; + } +- } +- } ++ } ++ } + break; + + case BANNOT: annotatePic(); break; +@@ -1214,27 +1212,27 @@ + case BABOUT: SelectWindowMB(WMB_ABOUTXV); break; + case BXV: retval = DFLTPIC; done=1; break; + case BQUIT: retval = QUIT; done=1; break; +- ++ + default: break; + } +- ++ + if (i==BFLIPH || i==BFLIPV) { + DrawEpic(); + SetCursors(-1); + } + } +- ++ + else if (win == nList.win) { + i=LSClick(&nList,but_event); + if (curname<0) ActivePrevNext(); + if (i>=0) { done = 1; retval = i; } + } +- ++ + else if (win == nList.scrl.win) SCTrack(&nList.scrl, x, y); +- ++ + else if (win == dirW) { + i=ClickDirW(x,y); +- ++ + switch (i) { + case S_BOK: if (dirUp == BLOAD) { + if (!DirCheckCD()) { +@@ -1246,53 +1244,53 @@ + DoSave(); + } + break; +- ++ + case S_BCANC: DirBox(0); break; +- ++ + case S_BRESCAN: + WaitCursor(); LoadCurrentDirectory(); SetCursors(-1); + break; + } + } +- ++ + else if (win == dList.win) { + i=LSClick(&dList,but_event); + SelectDir(i); + } +- ++ + else if (win == dList.scrl.win) SCTrack(&dList.scrl, x,y); + else if (win == infoW) InfoBox(0); /* close info */ +- ++ + break; +- +- +- case Button2: ++ ++ ++ case Button2: + if (win == mainW && !useroot) { + if (!shift && !DoSelection(but_event)) TrackPicValues(x,y); + else if (shift) Paint(); + } + break; +- ++ + case Button3: /* if using root, MUST NOT get rid of ctrlbox. */ +- if (!shift && !useroot) CtrlBox(!ctrlUp); ++ if (!shift && !useroot) CtrlBox(!ctrlUp); + else if (shift) BlurPaint(); + break; +- ++ + default: break; + } + } +- ++ + *donep = done; *retvalp = retval; + } + +- ++ + /***********************************/ + static void handleKeyEvent(event, donep, retvalp) + XEvent *event; + int *donep, *retvalp; + { + /* handles KeyPress and KeyRelease events, called from HandleEvent */ +- ++ + XKeyEvent *key_event; + KeySym ks; + char buf[128]; +@@ -1306,26 +1304,26 @@ + switch (event->type) { + case KeyRelease: + if (viewonly) break; /* ignore all user input */ +- ++ + stlen = XLookupString(key_event,buf,128,&ks,(XComposeStatus *) NULL); + dealt = 0; +- ++ + if (key_event->window == mainW) { + u_int foo = key_event->state; + +- if (ks == XK_Shift_L || ks == XK_Shift_R) ++ if (ks == XK_Shift_L || ks == XK_Shift_R) + foo = foo & (u_int) (~ShiftMask); +- if (ks == XK_Control_L || ks == XK_Control_R) ++ if (ks == XK_Control_L || ks == XK_Control_R) + foo = foo & (u_int) (~ControlMask); +- if (ks == XK_Meta_L || ks == XK_Meta_R) ++ if (ks == XK_Meta_L || ks == XK_Meta_R) + foo = foo & (u_int) (~Mod1Mask); +- if (ks == XK_Alt_L || ks == XK_Alt_R) ++ if (ks == XK_Alt_L || ks == XK_Alt_R) + foo = foo & (u_int) (~Mod1Mask); + + zoomCurs(foo); + } + break; +- ++ + + case KeyPress: + svkeystate = key_event->state; +@@ -1343,11 +1341,11 @@ + if (PUCheckEvent (event)) break; /* always check popups */ + + if (autoquit && key_event->window == mainW) Quit(0); +- ++ + if (viewonly && !frominterrupt) break; /* ignore all user input */ +- ++ + if (PSCheckEvent (event)) break; +- ++ + if (key_event->window == mainW) { + u_int foo = key_event->state; + +@@ -1371,7 +1369,7 @@ + if (TextCheckEvent (event, &retval, &done)) break; + + +- /* check for pageup/pagedown, 'p' in main window ++ /* check for pageup/pagedown, 'p' in main window + (you can use shift-up or shift-down if no crop rectangle drawn) + (for viewing multipage docs) */ + +@@ -1386,7 +1384,7 @@ + else XBell(theDisp,0); + } + +- else if (ck==CK_PAGEDOWN || ++ else if (ck==CK_PAGEDOWN || + (ck==CK_DOWN && shift && !but[BCROP].active)) { + if (strlen(pageBaseName) && numPages>1) { + done = 1; retval = OP_PAGEDN; +@@ -1429,7 +1427,7 @@ + + if (dealt) break; + } +- ++ + + + /* check for crop rect keys */ +@@ -1468,7 +1466,7 @@ + if (theList == &dList && dealt) { /* changed dir selection */ + SelectDir(-1); /* nothing was double-clicked */ + } +- ++ + if (dealt) break; + } + +@@ -1491,7 +1489,7 @@ + else if (ks==XK_2) FakeButtonPress(&gbut[G_B2]); + else if (ks==XK_3) FakeButtonPress(&gbut[G_B3]); + else if (ks==XK_4) FakeButtonPress(&gbut[G_B4]); +- else if (ks==XK_r || ks==XK_0) ++ else if (ks==XK_r || ks==XK_0) + FakeButtonPress(&gbut[G_BRESET]); + + else if (ks==XK_x) FakeButtonPress(&but[BCUT]); +@@ -1521,7 +1519,7 @@ + + else if (ks==XK_a) FakeButtonPress(&gbut[G_BAPPLY]); + +- else if (ks==XK_8) { ++ else if (ks==XK_8) { + if (picType==PIC8) Select24to8MB(CONV24_24BIT); + else Select24to8MB(CONV24_8BIT); + } +@@ -1530,20 +1528,20 @@ + + if (dealt) break; + } +- ++ + if (!stlen) break; +- ++ + if (key_event->window == dirW) { + if (DirKey(buf[0])) XBell(theDisp,0); + } + else { /* commands valid in any window */ + switch (buf[0]) { +- ++ + /* things in dispMB */ + case 'r': SelectDispMB(DMB_RAW); break; + case 'd': SelectDispMB(DMB_DITH); break; + case 's': SelectDispMB(DMB_SMOOTH); break; +- ++ + /* things in sizeMB */ + case 'n': SelectSizeMB(SZMB_NORM); break; + case 'm': SelectSizeMB(SZMB_MAXPIC); break; +@@ -1556,7 +1554,7 @@ + case 'a': SelectSizeMB(SZMB_ASPECT); break; + case '4': SelectSizeMB(SZMB_4BY3); break; + case 'I': SelectSizeMB(SZMB_INTEXP); break; +- ++ + /* things in windowMB */ + case '\026': + case 'V': SelectWindowMB(WMB_BROWSE); break; /* ^V or V */ +@@ -1565,36 +1563,36 @@ + case '\003': SelectWindowMB(WMB_COMMENT); break; /* ^C */ + case '\024': SelectWindowMB(WMB_TEXTVIEW); break; /* ^T */ + case '\001': SelectWindowMB(WMB_ABOUTXV); break; /* ^A */ +- +- +- ++ ++ ++ + /* buttons in ctrlW */ + case '\t': + case ' ': FakeButtonPress(&but[BNEXT]); break; +- ++ + case '\r': + case '\n': + if (nList.selected >= 0 && nList.selected < nList.nstr) { +- done = 1; retval = nList.selected; ++ done = 1; retval = nList.selected; + if (frominterrupt) retval = RELOAD; + } + break; +- ++ + case '\010': + case '\177': FakeButtonPress(&but[BPREV]); break; +- +- ++ ++ + case '\014': FakeButtonPress(&but[BLOAD]); break; /* ^L */ + case '\023': FakeButtonPress(&but[BSAVE]); break; /* ^S */ + case '\020': FakeButtonPress(&but[BPRINT]); break; /* ^P */ + case '\004': FakeButtonPress(&but[BDELETE]); break; /* ^D */ +- ++ + /* BCOPY, BCUT, BPASTE, BCLEAR handled in 'meta' case */ +- ++ + case '\007': FakeButtonPress(&but[BGRAB]); break; /* ^G */ +- ++ + /* BUP10, BDN10 handled in sizeMB case */ +- ++ + case 'T': FakeButtonPress(&but[BROTL]); break; + case 't': FakeButtonPress(&but[BROTR]); break; + case 'h': FakeButtonPress(&but[BFLIPH]); break; +@@ -1604,24 +1602,24 @@ + case 'C': FakeButtonPress(&but[BACROP]); break; + case 'P': FakeButtonPress(&but[BPAD]); break; + case 'A': FakeButtonPress(&but[BANNOT]); break; +- ++ + /* BABOUT handled in windowMB case */ +- ++ + case '\021': /* ^Q */ + case 'q': FakeButtonPress(&but[BQUIT]); break; +- ++ + case '?': if (!useroot) CtrlBox(!ctrlUp); break; +- ++ + /* things in color editor */ + case 'R': FakeButtonPress(&gbut[G_BRESET]); break; + case 'H': FakeButtonPress(&gbut[G_BHISTEQ]); break; + case 'N': FakeButtonPress(&gbut[G_BMAXCONT]); break; +- ++ + default: break; + } + } + } +- ++ + *donep = done; *retvalp = retval; + } + +@@ -1657,7 +1655,7 @@ + else name = namelist[i]; + + TextView(name); +- ++ + if (name != namelist[i]) free(name); + } + +@@ -1671,7 +1669,7 @@ + int i, arg1, arg2, numargs, pct1, pct2, state, neww, newh; + char txt[512], buf[64], *sp, ch; + static char *labels[] = { "\nOk", "\033Cancel" }; +- ++ + sprintf(txt, "Enter new image display size (ex. '400 x 300'),\n"); + strcat (txt, "expansion ratio (ex. '75%'),\n"); + strcat (txt, "or expansion ratios (ex. '200% x 125%'):"); +@@ -1685,7 +1683,7 @@ + + + /* attempt to parse the string accordingly... +- * parses strings of the type: [%] [ x [%] ] ++ * parses strings of the type: [%] [ x [%] ] + * (-ish. all by itself isn't legal) + * there may be any # of spaces between items, including zero + */ +@@ -1825,7 +1823,7 @@ + + if (theImage) + XPutImage(theDisp,mainW,theGC,theImage,x,y,x,y, (u_int) w, (u_int) h); +- else ++ else + if (DEBUG) fprintf(stderr,"Tried to DrawWindow when theImage was NULL\n"); + } + +@@ -1872,7 +1870,7 @@ + XWindowAttributes xwa; + xvbzero((char *) &xwa, sizeof(XWindowAttributes)); + xwa.x = xwa.y = 0; +- xwa.width = dispWIDE; ++ xwa.width = dispWIDE; + xwa.height = dispHIGH; + SetWindowPos(&xwa); + } +@@ -1898,14 +1896,14 @@ + rotatesLeft++; + XClearWindow(theDisp, mainW); /* get rid of old bits */ + GenExpose(mainW, 0, 0, (u_int) eWIDE, (u_int) eHIGH); +- { int ew, eh; ++ { int ew, eh; + ew = eWIDE; eh = eHIGH; + WResize(eWIDE, eHIGH); + if (ew>maxWIDE || eh>maxHIGH) { /* rotated pic too big, scale down */ + double r,wr,hr; + wr = ((double) ew) / maxWIDE; + hr = ((double) eh) / maxHIGH; +- ++ + r = (wr>hr) ? wr : hr; /* r is the max(wr,hr) */ + ew = (int) ((ew / r) + 0.5); + eh = (int) ((eh / r) + 0.5); +@@ -1920,7 +1918,7 @@ + void WCrop(w,h,dx,dy) + int w,h,dx,dy; + { +- int cx, cy, cw, ch, ex, ey; ++ int ex, ey; + XWindowAttributes xwa; + + if (useroot) { +@@ -1931,7 +1929,7 @@ + else { + /* we want to move window to old x,y + dx,dy (in pic coords) */ + GetWindowPos(&xwa); +- ++ + if (!origcropvalid) { /* first crop. remember win pos */ + origcropvalid = 1; + origcropx = xwa.x; +@@ -1939,7 +1937,7 @@ + } + + CoordC2E(dx, dy, &ex, &ey); +- ++ + xwa.x += ex; xwa.y += ey; + xwa.width = w; xwa.height = h; + GenExpose(mainW, 0, 0, (u_int) eWIDE, (u_int) eHIGH); +@@ -1980,7 +1978,7 @@ + if (xwa.x<0) xwa.x = 0; + if (xwa.y<0) xwa.y = 0; + xwa.width = w; xwa.height = h; +- ++ + if (!useroot) { + SetWindowPos(&xwa); + GenExpose(mainW, 0, 0, (u_int) eWIDE, (u_int) eHIGH); +@@ -1995,8 +1993,8 @@ + XWindowAttributes *xwa; + { + Window child; +- +- /* returns the x,y,w,h coords of mainW. x,y are relative to rootW ++ ++ /* returns the x,y,w,h coords of mainW. x,y are relative to rootW + the border is not included (x,y map to top-left pixel in window) */ + + /* Get the window width/height */ +@@ -2023,7 +2021,7 @@ + + /* if we're less than max size in one axis, allow window manager doohickeys + on the screen */ +- ++ + if (xwa->width < dispWIDE && xwc.x < p_offx) xwc.x = p_offx; + if (xwa->height < dispHIGH && xwc.y < p_offy) xwc.y = p_offy; + +@@ -2034,9 +2032,9 @@ + #ifdef BAD_IDEA + /* if there is a virtual window manager running, then we should translate + the coordinates that are in terms of 'real' screen into coordinates +- that are in terms of the 'virtual' root window ++ that are in terms of the 'virtual' root window + from: Daren W. Latham */ +- ++ + if (vrootW != rootW) { /* virtual window manager running */ + int x1,y1; + Window child; +@@ -2045,14 +2043,14 @@ + xwc.x,xwc.y,x1,y1); + xwc.x = x1; xwc.y = y1; + } +-#endif ++#endif + + + if (DEBUG) { + fprintf(stderr, + "SWP: xwa=%d,%d %dx%d xwc=%d,%d %dx%d off=%d,%d bw=%d klg=%d,%d\n", + xwa->x, xwa->y, xwa->width, xwa->height, +- xwc.x, xwc.y, xwc.width, xwc.height, p_offx, p_offy, ++ xwc.x, xwc.y, xwc.width, xwc.height, p_offx, p_offy, + xwa->border_width, kludge_offx, kludge_offy); + } + +@@ -2080,7 +2078,7 @@ + + /* all non-DXWM window managers (?) */ + /* Move/Resize the window. */ +- XConfigureWindow(theDisp, mainW, ++ XConfigureWindow(theDisp, mainW, + CWX | CWY | CWWidth | CWHeight /*| CWBorderWidth*/, &xwc); + } + +@@ -2090,7 +2088,7 @@ + static void CropKey(dx,dy,grow,crop) + int dx,dy,grow,crop; + { +- int x1,x2,y1,y2,active, ocx, ocy; ++ int ocx, ocy; + + if (crop) { /* chop off a pixel from the appropriate edge */ + int dealt=1; +@@ -2112,7 +2110,7 @@ + } + return; + } +- ++ + if (grow) MoveGrowSelection(0, 0, dx, dy); + else MoveGrowSelection(dx, dy, 0, 0); + } +@@ -2128,7 +2126,7 @@ + u_long wh, bl; + int ty, w, ecol, done1; + char foo[128]; +- char *str = ++ char *str = + "8888,8888 = 123,123,123 #123456 (123,123,123 HSV) [-2345,-2345]"; + + ecol = 0; wh = infobg; bl = infofg; +@@ -2136,14 +2134,14 @@ + if (!dropper) { + Pixmap pix, mask; + XColor cfg, cbg; +- ++ + cfg.red = cfg.green = cfg.blue = 0x0000; + cbg.red = cbg.green = cbg.blue = 0xffff; +- ++ + pix = MakePix1(rootW, dropper_bits, dropper_width, dropper_height); + mask= MakePix1(rootW, dropperm_bits, dropperm_width, dropperm_height); +- if (pix && mask) +- dropper = XCreatePixmapCursor(theDisp, pix, mask, &cfg, &cbg, ++ if (pix && mask) ++ dropper = XCreatePixmapCursor(theDisp, pix, mask, &cfg, &cbg, + dropper_x_hot, dropper_y_hot); + if (pix) XFreePixmap(theDisp, pix); + if (mask) XFreePixmap(theDisp, mask); +@@ -2151,7 +2149,7 @@ + + if (dropper) XDefineCursor(theDisp, mainW, dropper); + +- /* do a colormap search for black and white if LocalCmap ++ /* do a colormap search for black and white if LocalCmap + and use those colors instead of infobg and infofg */ + + if (LocalCmap) { +@@ -2159,7 +2157,7 @@ + + for (i=0; iascent + mfinfo->descent)-4; + + XSetForeground(theDisp, theGC, bl); +- XFillRectangle(theDisp, mainW, theGC, 0, ty, (u_int) w + 8, ++ XFillRectangle(theDisp, mainW, theGC, 0, ty, (u_int) w + 8, + (u_int) (monofinfo->ascent+monofinfo->descent) + 4); + XSetForeground(theDisp, theGC, wh); + XSetBackground(theDisp, theGC, bl); +@@ -2198,15 +2196,15 @@ + + if (!XQueryPointer(theDisp,mainW,&rW,&cW,&rx,&ry,&x,&y,&mask)) continue; + if (done1 && !(mask & Button2Mask)) break; /* button released */ +- ++ + CoordE2P(x,y, &px, &py); +- RANGE(px,0,pWIDE-1); ++ RANGE(px,0,pWIDE-1); + RANGE(py,0,pHIGH-1); +- ++ + if (px!=ox || py!=oy || !done1) { /* moved, or firsttime. erase & draw */ + double h1, s1, v1; + int rval, gval, bval; +- ++ + if (picType == PIC8) { + ecol = pix = pic[py * pWIDE + px]; + rval = rcmap[pix]; gval = gcmap[pix]; bval = bcmap[pix]; +@@ -2216,7 +2214,7 @@ + gval = pic[py * pWIDE * 3 + px * 3 + 1]; + bval = pic[py * pWIDE * 3 + px * 3 + 2]; + } +- ++ + clearR = rval; clearG = gval; clearB = bval; + + rgb2hsv(rval, gval, bval, &h1, &s1, &v1); +@@ -2229,8 +2227,8 @@ + px, py, rval, gval, bval, rval, gval, bval, + (int) h1, (int) (s1 * 100), (int) (v1 * 100), + px-orgx, py-orgy); +- +- XDrawImageString(theDisp,mainW,theGC, 4, ty + 2 + monofinfo->ascent, ++ ++ XDrawImageString(theDisp,mainW,theGC, 4, ty + 2 + monofinfo->ascent, + foo, (int) strlen(foo)); + ox = px; oy = py; + done1 = 1; +@@ -2275,7 +2273,7 @@ + + /* returns true if there's a config event in which mainW changes size + in the event queue */ +- ++ + XSync(theDisp, False); + foo = 0; + XCheckIfEvent(theDisp, &ev, IsConfig, &foo); +@@ -2328,7 +2326,7 @@ + * BadMatch errors on XGetImage + */ + +- if ((xerrcode == BadAlloc) || ++ if ((xerrcode == BadAlloc) || + (xerrcode == BadAccess && err->request_code==88 /* X_FreeColors */ ) || + (err->request_code == 113 /* X_KillClient */ ) || + (xerrcode == BadLength && err->request_code==18 /* X_ChangeProp */ ) || +@@ -2361,7 +2359,7 @@ + { + /* but first, if any input-grabbing popups are active, we have to 'cancel' + them. */ +- ++ + if (psUp) PSDialog(0); /* close PS window */ + + #ifdef HAVE_JPEG +@@ -2400,14 +2398,14 @@ + if (!pen) { + Pixmap pix, pmask; + XColor cfg, cbg; +- ++ + cfg.red = cfg.green = cfg.blue = 0x0000; + cbg.red = cbg.green = cbg.blue = 0xffff; +- ++ + pix = MakePix1(rootW, pen_bits, pen_width, pen_height); + pmask= MakePix1(rootW, penm_bits, penm_width, penm_height); +- if (pix && pmask) +- pen = XCreatePixmapCursor(theDisp, pix, pmask, &cfg, &cbg, ++ if (pix && pmask) ++ pen = XCreatePixmapCursor(theDisp, pix, pmask, &cfg, &cbg, + pen_x_hot, pen_y_hot); + if (pix) XFreePixmap(theDisp, pix); + if (pmask) XFreePixmap(theDisp, pmask); +@@ -2416,7 +2414,7 @@ + if (pen) XDefineCursor(theDisp, mainW, pen); + + +- XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask ++ XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask /* | ButtonPressMask */ + | KeyReleaseMask | ColormapChangeMask + | EnterWindowMask | LeaveWindowMask ); +@@ -2435,7 +2433,7 @@ + + switch (state) { + case 0: /* initial state: make sure we do one pixel */ +- px1 = lx = px; py1 = ly = py; ++ px1 = lx = px; py1 = ly = py; + paintPixel(px, py); + + if (nmask & ShiftMask ) state = 99; +@@ -2444,7 +2442,7 @@ + else state = 10; + break; + +- ++ + case 1: /* waiting for click */ + if (nmask & ShiftMask) state = 99; + else if ( mask & Button2Mask) { +@@ -2459,7 +2457,7 @@ + } + break; + +- ++ + case 10: /* in freehand drawing mode */ + if (nmask & ShiftMask ) state = 99; + else if (nmask & Button2Mask) state = 1; +@@ -2507,11 +2505,11 @@ + XSync(theDisp, False); + Timer(100); + } +- ++ + if (nmask & Button2Mask) seenRelease = 1; + } + break; +- ++ + case 99: /* EXIT loop: cleanup */ + if (line) { /* erase old xor-line */ + paintXLine(lx, ly, px1, py1, 0); +@@ -2521,11 +2519,11 @@ + break; + } + } +- +- ++ ++ + WaitCursor(); +- +- XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask ++ ++ XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask | ButtonPressMask + | KeyReleaseMask | ColormapChangeMask + | EnterWindowMask | LeaveWindowMask ); +@@ -2557,17 +2555,17 @@ + byte *pp = pic + (y * pWIDE + x) * 3; + pp[0] = clearR; pp[1] = clearG; pp[2] = clearB; + } +- ++ + /* visual feedback */ + CoordP2E(x, y, &ex, &ey); + CoordP2E(x+1, y+1, &ex1, &ey1); +- ++ + ew = ex1-ex; eh = ey1-ey; +- ++ + if (picType == PIC8) XSetForeground(theDisp, theGC, cols[editColor]); + else XSetForeground(theDisp, theGC, RGBToXColor(clearR, clearG, clearB)); +- +- if (ew>0 && eh>0) ++ ++ if (ew>0 && eh>0) + XFillRectangle(theDisp,mainW,theGC, ex,ey, (u_int) ew, (u_int) eh); + } + +@@ -2577,7 +2575,7 @@ + int x,y,x1,y1; + { + int dx,dy,i,lx,ly,adx,ady; +- ++ + dx = x1-x; dy = y1-y; + adx = abs(dx); ady = abs(dy); + +@@ -2598,7 +2596,7 @@ + paintPixel(lx,ly); + } + } +- ++ + + } + +@@ -2618,14 +2616,14 @@ + CoordP2E(x+1,y+1,&tx1,&ty1); + ex = tx + (tx1 - tx)/2; + ey = ty + (ty1 - ty)/2; +- ++ + CoordP2E(x1, y1, &tx, &ty); + CoordP2E(x1+1,y1+1,&tx1,&ty1); + ex1 = tx + (tx1 - tx)/2; + ey1 = ty + (ty1 - ty)/2; +- ++ + if (ex==ex1 && ey==ey1) return; +- ++ + XSetPlaneMask(theDisp, theGC, xorMasks[pntxlcol]); + XSetFunction(theDisp, theGC, GXinvert); + XDrawLine(theDisp, mainW, theGC, ex, ey, ex1, ey1); +@@ -2638,10 +2636,8 @@ + static void BlurPaint() + { + Window rW,cW; +- int rx,ry,ox,oy,x,y, px,py, ex,ey, ex1,ey1, ew, eh, done1, dragging; +- int uppedpic; ++ int rx,ry,ox,oy,x,y, px,py, done1, dragging; + u_int mask; +- byte *pp; + + /* blurs pixels in either editCol (PIC8) or clear{R,G,B} (PIC24) until + 'shift' key is released. */ +@@ -2653,14 +2649,14 @@ + if (!blur) { + Pixmap pix, mask; + XColor cfg, cbg; +- ++ + cfg.red = cfg.green = cfg.blue = 0x0000; + cbg.red = cbg.green = cbg.blue = 0xffff; +- ++ + pix = MakePix1(rootW, blur_bits, blur_width, blur_height); + mask= MakePix1(rootW, blurm_bits, blurm_width, blurm_height); +- if (pix && mask) +- blur = XCreatePixmapCursor(theDisp, pix, mask, &cfg, &cbg, ++ if (pix && mask) ++ blur = XCreatePixmapCursor(theDisp, pix, mask, &cfg, &cbg, + blur_x_hot, blur_y_hot); + if (pix) XFreePixmap(theDisp, pix); + if (mask) XFreePixmap(theDisp, mask); +@@ -2669,7 +2665,7 @@ + if (blur) XDefineCursor(theDisp, mainW, blur); + + +- XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask ++ XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask /* | ButtonPressMask */ + | KeyReleaseMask | ColormapChangeMask + | EnterWindowMask | LeaveWindowMask ); +@@ -2682,12 +2678,12 @@ + if (!(mask & Button3Mask)) { dragging = 0; continue; } + + CoordE2P(x,y, &px, &py); +- ++ + if (!dragging || (dragging && (px!=ox || py!=oy))) { /* click or drag */ + if (!dragging) blurPixel(px,py); + else { + int dx,dy,i,lx,ly; +- ++ + dx = px-ox; dy = py-oy; /* at least one will be non-zero */ + if (abs(dx) > abs(dy)) { /* X is major axis */ + for (i=0; i<=abs(dx); i++) { +@@ -2707,10 +2703,10 @@ + done1 = 1; dragging = 1; ox = px; oy = py; + } + } +- ++ + WaitCursor(); +- +- XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask ++ ++ XSelectInput(theDisp, mainW, ExposureMask | KeyPressMask + | StructureNotifyMask | ButtonPressMask + | KeyReleaseMask | ColormapChangeMask + | EnterWindowMask | LeaveWindowMask ); +@@ -2731,9 +2727,9 @@ + { + /* returns position of highest set bit in 'ul' as an integer (0-31), + or -1 if none */ +- ++ + int i; unsigned long hb; +- ++ + hb = 0x80; hb = hb << 24; /* hb = 0x80000000UL */ + for (i=31; ((ul & hb) == 0) && i>=0; i--, ul<<=1); + return i; +@@ -2757,7 +2753,7 @@ + + d = 3*(256*256); j=0; + for (i=0; iclass==TrueColor || theVisual->class==DirectColor) { + unsigned long rmask, gmask, bmask; + int rshift, gshift, bshift, cshift, maplen; +- ++ + /* compute various shifting constants that we'll need... */ +- ++ + rmask = theVisual->red_mask; + gmask = theVisual->green_mask; + bmask = theVisual->blue_mask; +- ++ + rshift = 7 - highbit(rmask); + gshift = 7 - highbit(gmask); + bshift = 7 - highbit(bmask); +- ++ + if (theVisual->class == DirectColor) { + maplen = theVisual->map_entries; + if (maplen>256) maplen=256; + cshift = 7 - highbit((u_long) (maplen-1)); +- ++ + r = (u_long) directConv[(r>>cshift) & 0xff] << cshift; + g = (u_long) directConv[(g>>cshift) & 0xff] << cshift; + b = (u_long) directConv[(b>>cshift) & 0xff] << cshift; + } +- +- ++ ++ + /* shift the bits around */ + if (rshift<0) r = r << (-rshift); + else r = r >> rshift; +- ++ + if (gshift<0) g = g << (-gshift); + else g = g >> gshift; +- ++ + if (bshift<0) b = b << (-bshift); + else b = b >> bshift; +- ++ + r = r & rmask; + g = g & gmask; + b = b & bmask; +- ++ + rv =r | g | b; + } +- ++ + else { /* non-TrueColor/DirectColor visual */ + if (!ncols) + rv = ((r + g + b >= 128*3) ? white : black); +@@ -2820,14 +2816,14 @@ + + return rv; + } +- +- ++ ++ + /***********************/ + static void blurPixel(x,y) + int x,y; + { + /* blurs pixel x,y (pic coords) into pic in editColor (PIC8) or clearR,G,B +- (PIC24) and does appropriate screen feedback. Does a 3x3 average ++ (PIC24) and does appropriate screen feedback. Does a 3x3 average + around the pixel, and replaces it with the average value (PIC24), or + the closest existing color to the average value (PIC8) */ + +@@ -2861,7 +2857,7 @@ + if (picType == PIC8) { /* find nearest actual color */ + d = 3*(256*256); j=0; + for (i=0; i0 && eh>0) ++ ++ if (ew>0 && eh>0) + XFillRectangle(theDisp,mainW,theGC, ex,ey, (u_int) ew, (u_int) eh); + } + +@@ -2901,13 +2897,13 @@ + static char buf[256] = {'\0'}; + static char *labels[] = {"\nOk", "\033Cancel" }; + +- sprintf(txt, "Image Annotation:\n\n%s", ++ sprintf(txt, "Image Annotation:\n\n%s", + "Enter string to be placed on image."); +- ++ + i = GetStrPopUp(txt, labels, 2, buf, 256, "", 0); + if (i==1 || strlen(buf)==0) return; +- +- ++ ++ + /* build a 'cimg' array to be pasted on clipboard */ + w = strlen(buf) * 6 - 1; h = 9; + len = CIMG_PIC8 + w*h; +diff -ruN xv-3.10a/xvfits.c xv-3.10a-bugfixes/xvfits.c +--- xv-3.10a/xvfits.c 1994-12-27 23:43:29.000000000 -0800 ++++ xv-3.10a-bugfixes/xvfits.c 2005-04-02 21:08:45.000000000 -0800 +@@ -63,7 +63,7 @@ + /* returns '1' on success */ + + FITS fs; +- int i, nx, ny, nz, bitpix, np, nrd, ioerror; ++ int i, nx, ny, nz, bitpix, nrd, ioerror, npixels, bufsize; + byte *image; + char *error; + char basename[64]; +@@ -72,7 +72,7 @@ + fits_block = (char *) malloc((size_t) BLOCKSIZE); + if (!fits_block) FatalError("Insufficient memory for FITS block buffer"); + } +- ++ + error = ftopen3d(&fs, fname, &nx, &ny, &nz, &bitpix); + if (error) { + SetISTR(ISTR_WARNING, "%s", error); +@@ -80,9 +80,15 @@ + } + + if (quick) nz = 1; /* only load first plane */ +- np = nx * ny * nz; ++ npixels = nx * ny; ++ bufsize = nz * npixels; ++ if (nx <= 0 || ny <= 0 || npixels/nx != ny || bufsize/nz != npixels) { ++ SetISTR(ISTR_WARNING, "FITS image dimensions out of range (%dx%dx%d)", ++ nx, ny, nz); ++ return 0; ++ } + +- image = (byte *) malloc((size_t) np); ++ image = (byte *) malloc((size_t) bufsize); + if (!image) FatalError("Insufficient memory for image"); + + /* +@@ -90,7 +96,7 @@ + * to ensure that we get that same scaling for all planes. + */ + +- nrd = ftgbyte(&fs, image, np); ++ nrd = ftgbyte(&fs, image, bufsize); + ioerror = ferror(fs.fp); + ftclose(&fs); + +@@ -104,33 +110,32 @@ + return 0; + } + +- else if (nrd < np) { /* read partial image */ ++ else if (nrd < bufsize) { /* read partial image */ + if (ioerror) + SetISTR(ISTR_WARNING, "%s", "Truncated FITS file due to I/O error"); + else + SetISTR(ISTR_WARNING, "%s", "Truncated FITS file"); +- ++ + { byte *foo; +- for (foo=image+nrd; foo 1) { + /* how many planes do we actually have? */ +- nz = (nrd-1)/(nx*ny) + 1; ++ nz = (nrd-1)/(npixels) + 1; + + /* returns how many sub-files created */ + nz = splitfits(image, fs.comment, nx, ny, nz, basename); +- np = nx * ny; +- image = (byte *)realloc(image, (size_t) np); /* toss all but first */ ++ image = (byte *)realloc(image, (size_t) npixels); /* toss all but first */ + } +- ++ + /* There seems to be a convention that fits files be displayed using + * a cartesian coordinate system. Thus the first pixel is in the lower left + * corner. Fix this by reflecting in the line y=ny/2. + */ + flip(image, nx, ny); +- ++ + /* Success! */ + pinfo->pic = image; + pinfo->type = PIC8; +@@ -149,12 +154,12 @@ + pinfo->numpages = nz; + strcpy(pinfo->pagebname, basename); + } +- ++ + return 1; +-} ++} ++ + + +- + /*******************************************/ + int WriteFITS(fp,pic,ptype,w,h,rmap,gmap,bmap,numcols,colorstyle,comment) + FILE *fp; +@@ -164,16 +169,16 @@ + int numcols, colorstyle; + char *comment; + { +- int i, j, np, nend; ++ int i, j, npixels, nend; + byte *ptr; + char *error; + byte rgb[256]; +- ++ + if (!fits_block) { + fits_block = (char *) malloc((size_t) BLOCKSIZE); + if (!fits_block) FatalError("Insufficient memory for FITS block buffer"); + } +- ++ + error = wrheader(fp, w, h, comment); + if (error) { + SetISTR(ISTR_WARNING, "%s", error); +@@ -197,12 +202,12 @@ + } + } + +- np = w*h; ++ npixels = w*h; + + /* nend is the number of padding characters at the end of the last block */ +- nend = ((np+BLOCKSIZE-1)/BLOCKSIZE)*BLOCKSIZE - np; ++ nend = ((npixels+BLOCKSIZE-1)/BLOCKSIZE)*BLOCKSIZE - npixels; + if (nend) for (i=0; ifp = fp; + fs->bitpix = 0; + fs->naxis = 0; + fs->cpos = 0; +- ++ + /* read header */ + error = rdheader(fs); + if (error) { + ftclose(fs); + return error; + } +- ++ + naxis = fs->naxis; +- ++ + /* get number of data */ + fs->ndata = 1; +- for (i=0; indata = fs->ndata * fs->axes[i]; +- ++ + *nx = fs->axes[0]; + *ny = fs->axes[1]; + if (naxis == 2) *nz = 1; + else *nz = fs->axes[2]; +- ++ + *bitpix = fs->bitpix; +- ++ + return NULL; + } + +@@ -418,11 +426,11 @@ + char *block=fits_block, *p; + char *error; + long int val; /* the value */ +- ++ + fs->comment = NULL; + commlen = 0; + commsize = 256; +- ++ + res = fread(block, sizeof(char), (size_t) BLOCKSIZE, fs->fp); + if (res != BLOCKSIZE) return "Error reading FITS file"; + i = 0; +@@ -464,13 +472,13 @@ + if (res != BLOCKSIZE) return "Error reading FITS file"; + i = 0; + } +- ++ + sprintf(name, "NAXIS%d", j+1); + error = rdcard(&block[i*80], name, T_INT, &val); + if (error) return error; + if (val < 0) return "Bad NAXISn value in FITS file"; + if (val == 0) return "FITS file does not contain an image"; +- ++ + if (j < 3) fs->axes[j] = val; + else if (val != 1) return "FITS file has more than three dimensions"; + i++; +@@ -488,21 +496,21 @@ + if (res != BLOCKSIZE) return "Unexpected eof in FITS file"; + i = 0; + } +- ++ + p = &block[i*80]; + if (strncmp(p, "END ", (size_t) 8) == 0) break; +- if (strncmp(p, "HISTORY ", (size_t) 8) == 0 || ++ if (strncmp(p, "HISTORY ", (size_t) 8) == 0 || + strncmp(p, "COMMENT ", (size_t) 8) == 0) { + p += 8; /* skip keyword */ + for (j=71; j >= 0; j--) if (p[j] != ' ') break; + j++; /* make j length of comment */ + if (j > 0) { /* skip blank comment cards */ + if (fs->comment == NULL) { +- fs->comment = (char *) malloc((size_t) commsize); ++ fs->comment = (char *) malloc((size_t) commsize); /* initially 256 */ + if (fs->comment == NULL) + FatalError("Insufficient memory for comment buffer"); + } +- ++ + if (commlen + j + 2 > commsize) { /* if too small */ + char *new; + commsize += commsize; /* double size of array */ +@@ -515,7 +523,7 @@ + free(fs->comment); + fs->comment = new; + } +- ++ + xvbcopy(p, &fs->comment[commlen], (size_t) j); /* add string */ + commlen += j; + fs->comment[commlen++] = '\n'; /* with trailing cr */ +@@ -556,9 +564,9 @@ + + l = strlen(name); + if (l) xvbcopy(name, card, (size_t) l); /* copy name */ +- ++ + if (dtype == T_NOVAL) return; +- ++ + if (dtype == T_STR) { + l = kvalue; + if (l <= 0) return; +@@ -566,9 +574,9 @@ + xvbcopy(svalue, &card[8], (size_t) l); + return; + } +- ++ + card[8] = '='; +- ++ + if (dtype == T_LOG) + card[29] = kvalue ? 'T' : 'F'; + else { /* T_INT */ +@@ -599,7 +607,7 @@ + int i, ptr; + char namestr[9]; + static char error[45]; +- ++ + xvbcopy(card, namestr, (size_t) 8); + + for (i=7; i>=0 && namestr[i] == ' '; i--); +@@ -609,24 +617,24 @@ + sprintf(error, "Keyword %s not found in FITS file", name); + return error; + } +- ++ + + /* get start of value */ + ptr = 10; + while (ptr < 80 && card[ptr] == ' ') ptr++; + if (ptr == 80) return "FITS file has missing keyword value"; /* no value */ +- ++ + if (dtype == T_LOG) { + if (ptr != 29 || (card[29] != 'T' && card[29] != 'F')) + return "Keyword has bad logical value in FITS file"; + *kvalue = (card[29] == 'T'); +- } ++ } + + else { /* an integer */ + int j; + long int ival; + char num[21]; +- ++ + if (ptr > 29) return "Keyword has bad integer value in FITS file"; + xvbcopy(&card[ptr], num, (size_t) (30-ptr)); + num[30-ptr] = '\0'; +@@ -634,7 +642,7 @@ + if (j != 1) return "Keyword has bad integer value in FITS file"; + *kvalue = ival; + } +- ++ + return NULL; + } + +@@ -660,13 +668,13 @@ + */ + + int res; +- ++ + if (nelem == 0) return 0; +- ++ + res = fread(buffer, (size_t) fs->size, (size_t) nelem, fs->fp); + /* if failed to read all the data because at end of file */ + if (res != nelem && feof(fs->fp)) { +- /* nblock is the number of elements in a record. ++ /* nblock is the number of elements in a record. + size is always a factor of BLOCKSIZE */ + + int loffs, nblock=BLOCKSIZE/fs->size; +@@ -714,7 +722,7 @@ + byte *ptr=buffer; + + /* +- * conversions. Although the data may be signed, reverse using unsigned ++ * conversions. Although the data may be signed, reverse using unsigned + * variables. + * Because the native int types may be larger than the types in the file, + * we start from the end and work backwards to avoid overwriting data +@@ -741,12 +749,12 @@ + ((unsigned int)ptr[2] << 8) | + ((unsigned int)ptr[3]); + } +- ++ + /* convert from IEE 754 single precision to native form */ + else if (fs->bitpix == -32) { + int j, k, expo; + static float *exps=NULL; +- ++ + if (exps == NULL) { + exps = (float *)malloc(256 * sizeof(float)); + if (exps == NULL) FatalError("Insufficient memory for exps store"); +@@ -754,7 +762,7 @@ + for (i=151; i < 256; i++) exps[i] = 2.*exps[i-1]; + for (i=149; i >= 0; i--) exps[i] = 0.5*exps[i+1]; + } +- ++ + for (i=0; i < n; i++, ptr+=4) { + k = (int)*ptr; + j = ((int)ptr[1] << 16) | ((int)ptr[2] << 8) | (int)ptr[3]; +@@ -765,13 +773,13 @@ + } + + } +- ++ + /* convert from IEE 754 double precision to native form */ + else if (fs->bitpix == -64) { + int expo, k, l; + unsigned int j; + static double *exps=NULL; +- ++ + if (exps == NULL) { + exps = (double *)malloc(2048 * sizeof(double)); + if (exps == NULL) FatalError("Insufficient memory for exps store"); +@@ -779,7 +787,7 @@ + for (i=1076; i < 2048; i++) exps[i] = 2.*exps[i-1]; + for (i=1074; i >= 0; i--) exps[i] = 0.5*exps[i+1]; + } +- ++ + for (i=0; i < n; i++, ptr+=8) { + k = (int)*ptr; + j = ((unsigned int)ptr[1] << 24) | ((unsigned int)ptr[2] << 16) | +@@ -813,23 +821,36 @@ + */ + + void *voidbuff; +- int i, n, nrd; ++ int i, n, nrd, bufsize, overflow=0; + + /* if the data is byte, then read it directly */ + if (fs->bitpix == 8) + return ftgdata(fs, cbuff, nelem); +- ++ + /* allocate a buffer to store the image */ +- if (fs->bitpix == 16) +- voidbuff = (void *)malloc(nelem * sizeof(short int)); +- else if (fs->bitpix == 32) +- voidbuff = (void *)malloc(nelem * sizeof(int)); +- else +- voidbuff = (void *)malloc(nelem * (size_t) fs->size); /* float, double */ ++ if (fs->bitpix == 16) { ++ bufsize = nelem * sizeof(short int); ++ if (bufsize/nelem != (int)sizeof(short int)) ++ overflow = 1; ++ } else if (fs->bitpix == 32) { ++ bufsize = nelem * sizeof(int); ++ if (bufsize/nelem != (int)sizeof(short int)) ++ overflow = 1; ++ } else { ++ bufsize = nelem * fs->size; /* float, double */ ++ if (bufsize/nelem != fs->size) ++ overflow = 1; ++ } + ++ if (overflow) { ++ SetISTR(ISTR_WARNING, "FITS image dimensions out of range"); ++ return 0; ++ } ++ ++ voidbuff = (void *)malloc((size_t) bufsize); + if (voidbuff == NULL) { + char emess[60]; +- sprintf(emess, "Insufficient memory for raw image of %d bytes", ++ sprintf(emess, "Insufficient memory for raw image of %d bytes", + nelem*fs->size); + FatalError(emess); + } +@@ -843,28 +864,28 @@ + short int *buffer=voidbuff; + int max, min, maxmin_t; + float scale; +- ++ + min = max = buffer[0]; + for (i=1; i < n; i++, buffer++) maxmin(*buffer, max, min); + scale = (max == min) ? 0. : 255./(float)(max-min); +- ++ + /* rescale and convert */ + for (i=0, buffer=voidbuff; i < n; i++) + cbuff[i] = (byte)(scale*(float)((int)buffer[i]-min)); +- ++ + /* convert long int to byte */ +- } ++ } + + else if (fs->bitpix == 32) { + int *buffer=voidbuff; + int max, min, maxmin_t; + float scale, fmin; +- ++ + min = max = buffer[0]; + for (i=1; i < n; i++, buffer++) maxmin(*buffer, max, min); + scale = (max == min) ? 1. : 255./((double)max-(double)min); + fmin = (float)min; +- ++ + /* rescale and convert */ + if (scale < 255./2.1e9) /* is max-min too big for an int ? */ + for (i=0, buffer=voidbuff; i < n; i++) +@@ -872,34 +893,34 @@ + else /* use integer subtraction */ + for (i=0, buffer=voidbuff; i < n; i++) + cbuff[i] = (byte)(scale*(float)(buffer[i]-min)); +- +- +- } ++ ++ ++ } + + /* convert float to byte */ + else if (fs->bitpix == -32) { + float *buffer=voidbuff; + float max, min, maxmin_t, scale; +- ++ + min = max = buffer[0]; + for (i=1; i < n; i++, buffer++) maxmin(*buffer, max, min); + scale = (max == min) ? 0. : 255./(max-min); +- ++ + /* rescale and convert */ + for (i=0, buffer=voidbuff; i < n; i++) + cbuff[i] = (byte)(scale*(buffer[i]-min)); +- +- } ++ ++ } + + /* convert double to byte */ + else if (fs->bitpix == -64) { + double *buffer=voidbuff; + double max, min, maxmin_t, scale; +- ++ + min = max = buffer[0]; + for (i=1; i < n; i++, buffer++) maxmin(*buffer, max, min); + scale = (max == min) ? 0. : 255./(max-min); +- ++ + /* rescale and convert */ + for (i=0, buffer=voidbuff; i < n; i++) + cbuff[i] = (byte)(scale*(buffer[i]-min)); +@@ -923,7 +944,7 @@ + int i; + int j, v; + byte *buff1, *buff2; +- ++ + for (i=0; i < ny/2; i++) { + buff1 = &buffer[i*nx]; + buff2 = &buffer[(ny-1-i)*nx]; +diff -ruN xv-3.10a/xvgam.c xv-3.10a-bugfixes/xvgam.c +--- xv-3.10a/xvgam.c 1995-01-13 11:51:14.000000000 -0800 ++++ xv-3.10a-bugfixes/xvgam.c 2004-05-16 18:02:11.000000000 -0700 +@@ -1,4 +1,4 @@ +-/* ++/* + * xvgam.c + * + * callable functions: +@@ -87,7 +87,7 @@ + GRAF_STATE istate, rstate, gstate, bstate; + }; + +-static struct gamstate undo[MAXUNDO], preset[4], defstate; ++static struct gamstate undo[MAXUNDO], preset[4], defstate; + static struct gamstate *defLoadState; + + static int uptr, uhead, utail; +@@ -153,7 +153,7 @@ + static void dragHueDial PARM((void)); + static void dragEditColor PARM((void)); + +-static void HDCreate PARM((HDIAL *, Window, int, int, int, int, ++static void HDCreate PARM((HDIAL *, Window, int, int, int, int, + int, int, char *, u_long, u_long)); + + static void HDRedraw PARM((HDIAL *, int)); +@@ -212,13 +212,13 @@ + { + XSetWindowAttributes xswa; + +- gamW = CreateWindow("xv color editor", "XVcedit", geom, ++ gamW = CreateWindow("xv color editor", "XVcedit", geom, + GAMW, GAMH, infofg,infobg, 0); + if (!gamW) FatalError("can't create cedit window!"); +- ++ + cmapF = XCreateSimpleWindow(theDisp,gamW, 10, 8,CMAPF_WIDE,CMAPF_HIGH, + 1,infofg,infobg); +- butF = XCreateSimpleWindow(theDisp,gamW, 10, 336,BUTF_WIDE,BUTF_HIGH, ++ butF = XCreateSimpleWindow(theDisp,gamW, 10, 336,BUTF_WIDE,BUTF_HIGH, + 1,infofg,infobg); + modF = XCreateSimpleWindow(theDisp,gamW, 10, 438,MODF_WIDE,MODF_HIGH, + 1,infofg,infobg); +@@ -227,7 +227,7 @@ + rgbF = XCreateSimpleWindow(theDisp,gamW, 467, 8,RGBF_WIDE,RGBF_HIGH, + 1,infofg,infobg); + +- if (!cmapF || !butF || !modF || !hsvF || !rgbF) ++ if (!cmapF || !butF || !modF || !hsvF || !rgbF) + FatalError("couldn't create frame windows"); + + #ifdef BACKING_STORE +@@ -251,25 +251,25 @@ + /********** COLORMAP editing doo-wahs ***********/ + + +- BTCreate(&gbut[G_BCOLUNDO], cmapF, 5, 165, 66, BUTTH, ++ BTCreate(&gbut[G_BCOLUNDO], cmapF, 5, 165, 66, BUTTH, + "ColUndo", infofg, infobg, hicol, locol); +- BTCreate(&gbut[G_BCOLREV], cmapF, 5 + 66 + 1, 165, 67, BUTTH, ++ BTCreate(&gbut[G_BCOLREV], cmapF, 5 + 66 + 1, 165, 67, BUTTH, + "Revert", infofg, infobg, hicol, locol); +- BTCreate(&gbut[G_BHSVRGB], cmapF, 5+66+67+2, 165, 66, BUTTH, ++ BTCreate(&gbut[G_BHSVRGB], cmapF, 5+66+67+2, 165, 66, BUTTH, + "RGB/HSV", infofg, infobg, hicol, locol); + +- BTCreate(&gbut[G_BMONO], cmapF, 5, 189, 66, BUTTH, ++ BTCreate(&gbut[G_BMONO], cmapF, 5, 189, 66, BUTTH, + "Grey", infofg, infobg, hicol, locol); +- BTCreate(&gbut[G_BRV], cmapF, 5 + 66 + 1, 189, 67, BUTTH, ++ BTCreate(&gbut[G_BRV], cmapF, 5 + 66 + 1, 189, 67, BUTTH, + "RevVid", infofg, infobg, hicol, locol); +- BTCreate(&gbut[G_BRNDCOL], cmapF, 5 + 66 + 67 + 2, 189, 66, BUTTH, ++ BTCreate(&gbut[G_BRNDCOL], cmapF, 5 + 66 + 67 + 2, 189, 66, BUTTH, + "Random", infofg, infobg, hicol, locol); + +- DCreate(&rhDial, cmapF, 5, 215, 66, 100, 0,360,180, 5, ++ DCreate(&rhDial, cmapF, 5, 215, 66, 100, 0,360,180, 5, + infofg, infobg, hicol, locol, "Hue", NULL); +- DCreate(&gsDial, cmapF, 72, 215, 66, 100, 0,360,180, 5, ++ DCreate(&gsDial, cmapF, 72, 215, 66, 100, 0,360,180, 5, + infofg, infobg, hicol, locol, "Sat.", NULL); +- DCreate(&bvDial, cmapF, 139, 215, 66, 100, 0,360,180, 5, ++ DCreate(&bvDial, cmapF, 139, 215, 66, 100, 0,360,180, 5, + infofg, infobg, hicol, locol, "Value", NULL); + + rhDial.drawobj = gsDial.drawobj = bvDial.drawobj = dragEditColor; +@@ -291,44 +291,44 @@ + #define BY2 (BY0 + BYSPACE*2) + #define BY3 (BY0 + BYSPACE*3) + +- BTCreate(&gbut[G_BAPPLY], butF, BX0,BY0, 52,BUTTH,"Apply", ++ BTCreate(&gbut[G_BAPPLY], butF, BX0,BY0, 52,BUTTH,"Apply", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_BNOGAM], butF, BX0,BY1, 52,BUTTH,"NoMod", ++ BTCreate(&gbut[G_BNOGAM], butF, BX0,BY1, 52,BUTTH,"NoMod", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_BMAXCONT],butF, BX0,BY2, 52,BUTTH,"Norm", ++ BTCreate(&gbut[G_BMAXCONT],butF, BX0,BY2, 52,BUTTH,"Norm", + infofg,infobg,hicol,locol); + BTCreate(&gbut[G_BHISTEQ], butF, BX0,BY3, 52,BUTTH,"HistEq", + infofg,infobg,hicol,locol); + + BTCreate(&gbut[G_BUP_BR],butF, BX1,BY0, 52,BUTTH,"Brite", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_BDN_BR],butF, BX1,BY1, 52,BUTTH,"Dim", ++ BTCreate(&gbut[G_BDN_BR],butF, BX1,BY1, 52,BUTTH,"Dim", + infofg,infobg,hicol,locol); + BTCreate(&gbut[G_BUP_CN],butF, BX1,BY2, 52,BUTTH,"Sharp", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_BDN_CN],butF, BX1,BY3, 52,BUTTH,"Dull", ++ BTCreate(&gbut[G_BDN_CN],butF, BX1,BY3, 52,BUTTH,"Dull", + infofg,infobg,hicol,locol); + +- BTCreate(&gbut[G_BRESET],butF, BX2, BY0, 52,BUTTH,"Reset", ++ BTCreate(&gbut[G_BRESET],butF, BX2, BY0, 52,BUTTH,"Reset", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_B1], butF, BX2, BY1, 25,BUTTH,"1", ++ BTCreate(&gbut[G_B1], butF, BX2, BY1, 25,BUTTH,"1", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_B2], butF, BX2+26,BY1, 26,BUTTH,"2", ++ BTCreate(&gbut[G_B2], butF, BX2+26,BY1, 26,BUTTH,"2", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_B3], butF, BX2, BY2, 25,BUTTH,"3", ++ BTCreate(&gbut[G_B3], butF, BX2, BY2, 25,BUTTH,"3", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_B4], butF, BX2+26,BY2, 26,BUTTH,"4", ++ BTCreate(&gbut[G_B4], butF, BX2+26,BY2, 26,BUTTH,"4", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_BSET], butF, BX2, BY3, 52,BUTTH,"Set", ++ BTCreate(&gbut[G_BSET], butF, BX2, BY3, 52,BUTTH,"Set", + infofg,infobg,hicol,locol); + +- BTCreate(&gbut[G_BUNDO], butF, BX3, BY0, 52,BUTTH,"Undo", ++ BTCreate(&gbut[G_BUNDO], butF, BX3, BY0, 52,BUTTH,"Undo", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_BREDO], butF, BX3, BY1, 52,BUTTH,"Redo", ++ BTCreate(&gbut[G_BREDO], butF, BX3, BY1, 52,BUTTH,"Redo", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_BGETRES],butF,BX3, BY2, 52,BUTTH,"CutRes", ++ BTCreate(&gbut[G_BGETRES],butF,BX3, BY2, 52,BUTTH,"CutRes", + infofg,infobg,hicol,locol); +- BTCreate(&gbut[G_BCLOSE],butF, BX3, BY3, 52,BUTTH,"Close", ++ BTCreate(&gbut[G_BCLOSE],butF, BX3, BY3, 52,BUTTH,"Close", + infofg,infobg,hicol,locol); + + +@@ -338,11 +338,11 @@ + + CBCreate(&enabCB, modF,2,2, "Display with HSV/RGB mods.", + infofg,infobg,hicol,locol); +- CBCreate(&autoCB, modF,2,2+17, "Auto-apply HSV/RGB mods.", ++ CBCreate(&autoCB, modF,2,2+17, "Auto-apply HSV/RGB mods.", + infofg,infobg,hicol,locol); + CBCreate(&dragCB, modF,2,2+17*2,"Auto-apply while dragging.", + infofg,infobg,hicol,locol); +- CBCreate(&resetCB,modF,2,2+17*3,"Auto-reset on new image.", ++ CBCreate(&resetCB,modF,2,2+17*3,"Auto-reset on new image.", + infofg,infobg,hicol,locol); + + enabCB.val = autoCB.val = resetCB.val = dragCB.val = 1; +@@ -359,23 +359,23 @@ + + srcHD.drawobj = dstHD.drawobj = whtHD.drawobj = dragHueDial; + +- DCreate(&satDial, hsvF, 100, 199, 100, 121, -100, 100, 0, 5, ++ DCreate(&satDial, hsvF, 100, 199, 100, 121, -100, 100, 0, 5, + infofg, infobg,hicol,locol, "Saturation", "%"); + +- hueRB = RBCreate(NULL, hsvF, 7, 153, "1", ++ hueRB = RBCreate(NULL, hsvF, 7, 153, "1", + infofg, infobg,hicol,locol); +- RBCreate (hueRB,hsvF, 47, 153, "2", ++ RBCreate (hueRB,hsvF, 47, 153, "2", + infofg, infobg,hicol,locol); +- RBCreate (hueRB,hsvF, 87, 153, "3", ++ RBCreate (hueRB,hsvF, 87, 153, "3", + infofg, infobg,hicol,locol); +- RBCreate (hueRB,hsvF, 7, 170, "4", ++ RBCreate (hueRB,hsvF, 7, 170, "4", + infofg, infobg,hicol,locol); +- RBCreate (hueRB,hsvF, 47, 170, "5", ++ RBCreate (hueRB,hsvF, 47, 170, "5", + infofg, infobg,hicol,locol); +- RBCreate (hueRB,hsvF, 87, 170, "6", ++ RBCreate (hueRB,hsvF, 87, 170, "6", + infofg, infobg,hicol,locol); + +- BTCreate(&hueclrB, hsvF, 127, 158, 70, BUTTH, "Reset", ++ BTCreate(&hueclrB, hsvF, 127, 158, 70, BUTTH, "Reset", + infofg, infobg,hicol,locol); + + initHmap(); +@@ -394,13 +394,13 @@ + + InitGraf(&gGraf); + CreateGraf(&gGraf, rgbF, 10, 179, infofg, infobg, "Green"); +- ++ + InitGraf(&bGraf); + CreateGraf(&bGraf, rgbF, 10, 338, infofg, infobg, "Blue"); + + satDial.drawobj = dragGamma; + intGraf.drawobj = rGraf.drawobj = gGraf.drawobj = bGraf.drawobj = dragGamma; +- ++ + SetHSVmode(); + + ctrls2gamstate(&defstate); +@@ -415,14 +415,14 @@ + Str2Graf(&preset[1].rstate,"L 4 : 0,0 : 127,0 : 128,255 : 255,255"); + Str2Graf(&preset[1].gstate,"L 4 : 0,0 : 127,0 : 128,255 : 255,255"); + Str2Graf(&preset[1].bstate,"L 4 : 0,0 : 127,0 : 128,255 : 255,255"); +- ++ + + /* set up preset2 as a 'temperature' pseudo-color preset */ + ctrls2gamstate(&preset[2]); + Str2Graf(&preset[2].rstate,"S 4 : 0,0 : 105,0 : 155,140 : 255,255"); + Str2Graf(&preset[2].gstate,"S 5 : 0,0 : 57,135 : 127,255 : 198,135 : 255,0"); + Str2Graf(&preset[2].bstate,"S 4 : 0,255 : 100,140 : 150,0 : 255,0"); +- ++ + + /* set up preset3 as a 'map' pseudo-color preset */ + ctrls2gamstate(&preset[3]); +@@ -480,7 +480,7 @@ + + computeHSVlinear(); + } +- ++ + + /***************************************************/ + int GamCheckEvent(xev) +@@ -492,14 +492,14 @@ + int rv; + + rv = 1; +- ++ + if (xev->type == Expose) { + int x,y,w,h; + XExposeEvent *e = (XExposeEvent *) xev; + x = e->x; y = e->y; w = e->width; h = e->height; + + /* throw away excess redraws for 'dumb' windows */ +- if (e->count > 0 && ++ if (e->count > 0 && + (e->window == satDial.win || e->window == rhDial.win || + e->window == gsDial.win || e->window == bvDial.win || + e->window == cmapF || e->window == modF || +@@ -600,7 +600,7 @@ + + + else if (e->window == hsvF) { +- if (HDClick(&srcHD, x,y) || HDClick(&dstHD, x,y)) { ++ if (HDClick(&srcHD, x,y) || HDClick(&dstHD, x,y)) { + dials2hmap(); + build_hremap(); + changedGam(); +@@ -654,7 +654,7 @@ + e->window == gsDial.win || + e->window == bvDial.win) { + +- if ((e->window == rhDial.win && DTrack(&rhDial, x,y)) || ++ if ((e->window == rhDial.win && DTrack(&rhDial, x,y)) || + (e->window == gsDial.win && DTrack(&gsDial, x,y)) || + (e->window == bvDial.win && DTrack(&bvDial, x,y))) { + saveCMap(&prevcmap); +@@ -683,7 +683,7 @@ + XKeyEvent *e = (XKeyEvent *) xev; + char buf[128]; KeySym ks; + int stlen; +- ++ + stlen = XLookupString(e,buf,128,&ks,(XComposeStatus *) NULL); + buf[stlen] = '\0'; + +@@ -792,7 +792,7 @@ + int x,y; + { + XPoint pts[8]; +- ++ + pts[0].x = x+10; pts[0].y = y; + pts[1].x = x-4; pts[1].y = y-100; + pts[2].x = x-4; pts[2].y = y-40; +@@ -873,11 +873,11 @@ + XSetForeground(theDisp, theGC, infofg); + + if (picType != PIC8) { +- CenterString(cmapF, CMAPX + CMAPW/2, CMAPY + CMAPH/2, ++ CenterString(cmapF, CMAPX + CMAPW/2, CMAPY + CMAPH/2, + "No colormap in 24-bit mode."); + return; + } +- ++ + + + for (i=0; iwin == butF && PTINRECT(x, y, bp->x, bp->y, bp->w, bp->h)) break; + } + +- /* if 'Set' is lit, and we didn't click 'set' or 'Reset' or '1'..'4', ++ /* if 'Set' is lit, and we didn't click 'set' or 'Reset' or '1'..'4', + turn it off */ + if (i!=G_BSET && i!=G_B1 && i!=G_B2 && i!=G_B3 && i!=G_B4 && i!=G_BRESET + && gbut[G_BSET].lit) { +- gbut[G_BSET].lit = 0; ++ gbut[G_BSET].lit = 0; + BTRedraw(&gbut[G_BSET]); + } +- ++ + + if (i0, clicked on something in same group + remove target from group + curgroup>0, clicked on something in different group +- merge groups. (target group gets ++ merge groups. (target group gets + set equal to current values) + curgroup>0, clicked on something in no group + add target to curgroup + curgroup=0, clicked on something in a group +- add editColor to target group, ++ add editColor to target group, + set curgroup = target group + target group gets current values + curgroup=0, clicked on something in no group +@@ -1185,7 +1185,7 @@ + } + } + +- else if ((mode!=DELONLY) && cellgroup[cnum] != curgroup && ++ else if ((mode!=DELONLY) && cellgroup[cnum] != curgroup && + cellgroup[cnum]>0) { + /* merge clicked-on group into curgroup */ + mode = ADDONLY; +@@ -1196,11 +1196,11 @@ + selectCell(i,1); + rcmap[i] = rcmap[editColor]; + gcmap[i] = gcmap[editColor]; +- bcmap[i] = bcmap[editColor]; ++ bcmap[i] = bcmap[editColor]; + } + } + } +- ++ + else if ((mode!=DELONLY) && cellgroup[cnum] == 0) { + /* merge clicked-on cell into curgroup */ + mode = ADDONLY; +@@ -1209,7 +1209,7 @@ + selectCell(cnum,1); + rcmap[cnum] = rcmap[editColor]; + gcmap[cnum] = gcmap[editColor]; +- bcmap[cnum] = bcmap[editColor]; ++ bcmap[cnum] = bcmap[editColor]; + } + } + +@@ -1224,14 +1224,14 @@ + selectCell(i,1); + rcmap[i] = rcmap[editColor]; + gcmap[i] = gcmap[editColor]; +- bcmap[i] = bcmap[editColor]; ++ bcmap[i] = bcmap[editColor]; + } + } + curgroup = cellgroup[cnum]; + cellgroup[editColor] = curgroup; + } +- +- else if ((mode!=DELONLY) && (cellgroup[cnum] == 0) ++ ++ else if ((mode!=DELONLY) && (cellgroup[cnum] == 0) + && (cnum != editColor)) { + /* create new group for these two cells (cnum and editColor) */ + mode = ADDONLY; +@@ -1247,14 +1247,14 @@ + } + + return rv; +-} +- ++} ++ + + /*********************/ + void ChangeEC(num) + int num; + { +- /* given a color # that is to become the new editColor, do all ++ /* given a color # that is to become the new editColor, do all + highlighting/unhighlighting, copy editColor's rgb values to + the rgb/hsv dials */ + +@@ -1301,8 +1301,8 @@ + DSetVal(&bvDial, bcmap[editColor]); + } + } +- +- ++ ++ + /*********************/ + void ApplyECctrls() + { +@@ -1310,7 +1310,7 @@ + + if (hsvmode) { + int rv, gv, bv; +- hsv2rgb((double) rhDial.val, ((double) gsDial.val) / 100.0, ++ hsv2rgb((double) rhDial.val, ((double) gsDial.val) / 100.0, + ((double) bvDial.val) / 100.0, &rv, &gv, &bv); + rcmap[editColor] = rv; + gcmap[editColor] = gv; +@@ -1330,7 +1330,7 @@ + { + /* this function generates the Floyd-Steinberg gamma curve (fsgamcr) + +- This function generates a 4 point spline curve to be used as a ++ This function generates a 4 point spline curve to be used as a + non-linear grey 'colormap'. Two of the points are nailed down at 0,0 + and 255,255, and can't be changed. You specify the other two. If + you specify points on the line (0,0 - 255,255), you'll get the normal +@@ -1345,7 +1345,7 @@ + double yf[4]; + + InitSpline(x, y, 4, yf); +- ++ + for (i=0; i<256; i++) { + j = (int) EvalSpline(x, y, yf, 4, (double) i); + if (j<0) j=0; +@@ -1364,14 +1364,14 @@ + + switch (cmd) { + +- case G_BAPPLY: ++ case G_BAPPLY: + if (enabCB.val != 1) { enabCB.val = 1; CBRedraw(&enabCB); } +- applyGamma(0); ++ applyGamma(0); + break; + + case G_BNOGAM: + if (enabCB.val != 0) { enabCB.val = 0; CBRedraw(&enabCB); } +- applyGamma(0); ++ applyGamma(0); + break; + + case G_BUNDO: gamUndo(); break; +@@ -1383,7 +1383,7 @@ + + + +- case G_BDN_BR: ++ case G_BDN_BR: + case G_BUP_BR: GetGrafState(&intGraf, &gs); + for (i=0; i < gs.nhands; i++) { + if (cmd==G_BUP_BR) gs.hands[i].y += 10; +@@ -1434,7 +1434,7 @@ + else if (cmd==G_B3) ptr = &preset[2]; + else if (cmd==G_B4) ptr = &preset[3]; + else if (cmd==G_BRESET) ptr = &defstate; +- ++ + if (gbut[G_BSET].lit) { + ctrls2gamstate(ptr); + gbut[G_BSET].lit = 0; +@@ -1454,7 +1454,7 @@ + break; + + +- case G_BCOLREV: ++ case G_BCOLREV: + { + struct cmapstate tmp1cmap; + int gchg; +@@ -1463,9 +1463,9 @@ + gchg = (i!=numcols); + + saveCMap(&tmpcmap); /* buffer current cmapstate */ +- ++ + for (i=0; i0 && !hist[i]; i--); + *rmaxv = i; + } +- ++ + else { /* PIC24 */ + int v,minv,maxv; + +@@ -1724,7 +1724,7 @@ + hist[v]++; + } + } +- ++ + *rminv = minv; *rmaxv = maxv; + } + +@@ -1764,13 +1764,13 @@ + int i, histeq[256], minv, maxv; + + calcHistEQ(histeq, &minv, &maxv); /* ignore minv,maxv */ +- +- for (i=0; i<256; i++) ++ ++ for (i=0; i<256; i++) + intGraf.func[i] = histeq[i]; +- ++ + for (i=0; i< intGraf.nhands; i++) + intGraf.hands[i].y = intGraf.func[intGraf.hands[i].x]; +- ++ + intGraf.entergamma = 0; + + if (gamUp) { +@@ -1797,7 +1797,7 @@ + if (v>maxv) maxv = v; + } + } +- else { ++ else { + int histeq[256]; + calcHistEQ(histeq, &minv, &maxv); /* ignore histeq */ + } +@@ -1833,11 +1833,11 @@ + for (i=0; i= 128*3) + ? white : black; + } +@@ -1875,7 +1875,7 @@ + if (DEBUG>1) fprintf(stderr," (v=%f)",v); + + if (h>=0) { +- hi = (int) h; ++ hi = (int) h; + if (hi<0) hi += 360; + if (hi>=360) hi -= 360; + h = (double) hremap[hi]; +@@ -1884,7 +1884,7 @@ + if (whtHD.enabCB.val) { + h = (double) whtHD.stval; + s = (double) whtHD.satval / 100.0; +- ++ + /* special case: if stval = satval = 0, set hue = -1 */ + if (whtHD.stval == 0 && whtHD.satval == 0) h = -1.0; + } +@@ -1899,13 +1899,13 @@ + if (DEBUG>1) fprintf(stderr," -> %d,%d,%d",rv,gv,bv); + } + +- rMap[col] = rGraf.func[rv]; ++ rMap[col] = rGraf.func[rv]; + gMap[col] = gGraf.func[gv]; + bMap[col] = bGraf.func[bv]; + +- if (!ncols) +- cols[col] = +- (((int)rMap[col]) + ((int)gMap[col]) + ((int)bMap[col]) >= 128*3) ++ if (!ncols) ++ cols[col] = ++ (((int)rMap[col]) + ((int)gMap[col]) + ((int)bMap[col]) >= 128*3) + ? white : black; + + if (DEBUG>1) fprintf(stderr," -> %d,%d,%d\n",rMap[col],gMap[col],bMap[col]); +@@ -2001,8 +2001,8 @@ + { + xvbcopy((char *) hmap, (char *) gs->hmap, sizeof(hmap)); + +- gs->wht_stval = whtHD.stval; +- gs->wht_satval = whtHD.satval; ++ gs->wht_stval = whtHD.stval; ++ gs->wht_satval = whtHD.satval; + gs->wht_enab = whtHD.enabCB.val; + + gs->hueRBnum = RBWhich(hueRB); +@@ -2042,7 +2042,7 @@ + srcHD.ccwise = hm->src_ccw; + HDRedraw(&srcHD, HD_ALL | HD_CLEAR); + } +- ++ + if (dstHD.stval != hm->dst_st || + dstHD.enval != hm->dst_en || + dstHD.ccwise != hm->dst_ccw) { +@@ -2051,7 +2051,7 @@ + dstHD.ccwise = hm->dst_ccw; + HDRedraw(&dstHD, HD_ALL | HD_CLEAR); + } +- } ++ } + + + if (whtHD.stval != gs->wht_stval || whtHD.satval != gs->wht_satval || +@@ -2063,7 +2063,7 @@ + HDRedraw(&whtHD, HD_ALL | HD_CLEAR); + changed++; + } +- ++ + if (gs->satval != satDial.val) { + DSetVal(&satDial,gs->satval); + changed++; +@@ -2203,7 +2203,7 @@ + } + + +- ++ + + /*********************/ + static void parseResources() +@@ -2226,7 +2226,7 @@ + if (i) { sprintf(gname,"preset%d",i); gsp = &preset[i-1]; } + else { sprintf(gname,"default"); gsp = &defstate; } + +- xvbcopy((char *) gsp, (char *) &gs, ++ xvbcopy((char *) gsp, (char *) &gs, + sizeof(struct gamstate)); /* load 'gs' with defaults */ + + for (j=0; j<6; j++) { /* xv.*.huemap resources */ +@@ -2239,7 +2239,7 @@ + lower_str(def_str); + if (sscanf(def_str,"%d %d %s %d %d %s", + &fst, &fen, fcw, &tst, &ten, tcw) != 6) { +- fprintf(stderr,"%s: unable to parse resource 'xv.%s: %s'\n", ++ fprintf(stderr,"%s: unable to parse resource 'xv.%s: %s'\n", + cmd, tmp, def_str); + } + else { +@@ -2260,7 +2260,7 @@ + int wst, wsat, enab; + if (DEBUG) fprintf(stderr,"parseResource 'xv.%s: %s'\n",tmp, def_str); + if (sscanf(def_str,"%d %d %d", &wst, &wsat, &enab) != 3) { +- fprintf(stderr,"%s: unable to parse resource 'xv.%s: %s'\n", ++ fprintf(stderr,"%s: unable to parse resource 'xv.%s: %s'\n", + cmd, tmp, def_str); + } + else { /* successful parse */ +@@ -2276,7 +2276,7 @@ + int sat; + if (DEBUG) fprintf(stderr,"parseResource 'xv.%s: %s'\n",tmp, def_str); + if (sscanf(def_str,"%d", &sat) != 1) { +- fprintf(stderr,"%s: unable to parse resource 'xv.%s: %s'\n", ++ fprintf(stderr,"%s: unable to parse resource 'xv.%s: %s'\n", + cmd, tmp, def_str); + } + else { /* successful parse */ +@@ -2304,7 +2304,7 @@ + } + } + } +- ++ + /* copy (potentially) modified gs back to default/preset */ + xvbcopy((char *) &gs, (char *) gsp, sizeof(struct gamstate)); + } +@@ -2324,16 +2324,16 @@ + /* write out current state */ + ctrls2gamstate(&gstate); + strcpy(gname, "xv.default"); +- ++ + /* write out huemap resources */ + for (i=0; i<6; i++) { + if (1 || gstate.hmap[i].src_st != gstate.hmap[i].dst_st || + gstate.hmap[i].src_en != gstate.hmap[i].dst_en || + gstate.hmap[i].src_ccw != gstate.hmap[i].dst_ccw) { +- sprintf(tmp, "%s.huemap%d: %3d %3d %3s %3d %3d %3s\n", gname, i+1, +- gstate.hmap[i].src_st, gstate.hmap[i].src_en, ++ sprintf(tmp, "%s.huemap%d: %3d %3d %3s %3d %3d %3s\n", gname, i+1, ++ gstate.hmap[i].src_st, gstate.hmap[i].src_en, + gstate.hmap[i].src_ccw ? "CCW" : "CW", +- gstate.hmap[i].dst_st, gstate.hmap[i].dst_en, ++ gstate.hmap[i].dst_st, gstate.hmap[i].dst_en, + gstate.hmap[i].dst_ccw ? "CCW" : "CW"); + strcat(rsrc, tmp); + } +@@ -2341,7 +2341,7 @@ + + /* write out whtmap resource */ + if (1 || gstate.wht_stval || gstate.wht_satval || gstate.wht_enab != 1) { +- sprintf(tmp, "%s.whtmap: %d %d %d\n", gname, gstate.wht_stval, ++ sprintf(tmp, "%s.whtmap: %d %d %d\n", gname, gstate.wht_stval, + gstate.wht_satval, gstate.wht_enab); + strcat(rsrc, tmp); + } +@@ -2372,7 +2372,7 @@ + + NewCutBuffer(rsrc); + } +- ++ + + /*****************************/ + static void dragGamma () +@@ -2381,14 +2381,14 @@ + while gamma ctrls are being dragged + applies change to image if dragCB.val is set + does NOT call saveGamState() (as changedGam does) */ +- ++ + if (dragCB.val && dragCB.active) { + hsvnonlinear = 1; /* force HSV calculations during drag */ + applyGamma(0); + } + } + +- ++ + /*****************************/ + static void dragHueDial() + { +@@ -2396,7 +2396,7 @@ + while hue gamma ctrls are being dragged + applies change to image if dragCB.val is set + does NOT call saveGamState() (as changedGam does) */ +- ++ + if (dragCB.val && dragCB.active) { + dials2hmap(); + build_hremap(); +@@ -2413,14 +2413,14 @@ + while color editor ctrls are being dragged + applies change to image if dragCB.val is set + does NOT call saveCMap(&prevcmap); BTSetActive(&gbut[G_BCOLUNDO],1); */ +- ++ + if (dragCB.val && dragCB.active) ApplyEditColor(0); + } + + +- +- +- ++ ++ ++ + + /**********************************************/ + /************* HUE wheel functions ***********/ +@@ -2470,7 +2470,7 @@ + hdbpix2[HDB_ROTR] = hdbpix1[HDB_ROTR]; + } + +- ++ + #define BCOLS fg,bg,hicol,locol + + if (hd->range) { +@@ -2526,7 +2526,7 @@ + XSetForeground(theDisp, theGC, hd->fg); + XDrawArc(theDisp, hd->win, theGC, hd->x - HD_RADIUS, hd->y - HD_RADIUS, + HD_RADIUS*2, HD_RADIUS*2, 0, 360*64); +- ++ + for (i=0; i<6; i++) { + int kldg; + +@@ -2553,8 +2553,8 @@ + a = hdg2xdg(hd->stval) * DEG2RAD; + pol2xy(hd->x, hd->y, a, HD_RADIUS - 4, &x, &y); + XDrawLine(theDisp, hd->win, theGC, hd->x, hd->y, x,y); +- +- if (flags & HD_CLHNDS) ++ ++ if (flags & HD_CLHNDS) + XFillRectangle(theDisp, hd->win, theGC, x-2,y-2, 5,5); + else { + XSetForeground(theDisp, theGC, hd->bg); +@@ -2567,8 +2567,8 @@ + a = hdg2xdg(hd->enval) * DEG2RAD; + pol2xy(hd->x, hd->y, a, HD_RADIUS - 4, &x, &y); + XDrawLine(theDisp, hd->win, theGC, hd->x, hd->y, x,y); +- +- if (flags & HD_CLHNDS) ++ ++ if (flags & HD_CLHNDS) + XFillRectangle(theDisp, hd->win, theGC, x-2,y-2, 5,5); + else { + XSetForeground(theDisp, theGC, hd->bg); +@@ -2587,7 +2587,7 @@ + r = ((HD_RADIUS - 4) * hd->satval) / 100; + pol2xy(hd->x, hd->y, a, r, &x, &y); + +- if (flags & HD_CLHNDS) ++ if (flags & HD_CLHNDS) + XFillRectangle(theDisp, hd->win, theGC, x-2,y-2, 5,5); + else { + XFillRectangle(theDisp, hd->win, theGC, hd->x-1, hd->y-1, 3,3); +@@ -2600,7 +2600,7 @@ + } + } + } +- ++ + + + +@@ -2653,13 +2653,13 @@ + XSetBackground(theDisp, theGC, hd->bg); + + if (hd->range) { +- sprintf(vstr,"%3d\007,%3d\007 %s", hd->stval, hd->enval, ++ sprintf(vstr,"%3d\007,%3d\007 %s", hd->stval, hd->enval, + hd->ccwise ? "CCW" : " CW"); + } + else { + sprintf(vstr,"%3d\007 %3d%%", hd->stval, hd->satval); + } +- ++ + XDrawImageString(theDisp, hd->win, theGC, + hd->x - XTextWidth(monofinfo, vstr, (int) strlen(vstr))/2, + hd->y + HD_RADIUS + 24, vstr, (int) strlen(vstr)); +@@ -2669,7 +2669,7 @@ + + if (flags & HD_TITLE) { + XSetForeground(theDisp, theGC, hd->fg); +- ULineString(hd->win, hd->x - HD_RADIUS - 15, hd->y - HD_RADIUS - 4, ++ ULineString(hd->win, hd->x - HD_RADIUS - 15, hd->y - HD_RADIUS - 4, + hd->str); + } + +@@ -2694,7 +2694,7 @@ + } + + +- ++ + /**************************************************/ + static int HDClick(hd,mx,my) + HDIAL *hd; +@@ -2716,7 +2716,7 @@ + if (!hd->range && !hd->enabCB.val) return 0; /* disabled */ + + +- if ( ((mx - hd->x) * (mx - hd->x) + (my - hd->y) * (my - hd->y)) ++ if ( ((mx - hd->x) * (mx - hd->x) + (my - hd->y) * (my - hd->y)) + < (HD_RADIUS * HD_RADIUS)) { + return HDTrack(hd,mx,my); + } +@@ -2816,14 +2816,14 @@ + hd->satval--; if (hd->satval<0) hd->satval = 0; + HDRedraw(hd, HD_HANDS | HD_VALS); + } +- ++ + else if (bnum == HDB_SAT && hd->satval<100) { + HDRedraw(hd, HD_CLHNDS); + hd->satval++; if (hd->satval>100) hd->satval = 100; + HDRedraw(hd, HD_HANDS | HD_VALS); + } + } +- ++ + break; + } + +@@ -2836,7 +2836,7 @@ + } + + if (bp->lit) { bp->lit = 0; BTRedraw(bp); } +- ++ + return 1; + } + +@@ -2872,7 +2872,7 @@ + + dx = x - hd->x; dy = y - hd->y; + dist = sqrt(dx*dx + dy*dy); +- ++ + newsat = (int) (dist / ((double) (HD_RADIUS - 4)) * 100); + RANGE(newsat,0,100); + +@@ -2899,7 +2899,7 @@ + a = hdg2xdg(hd->enval) * DEG2RAD; + pol2xy(hd->x, hd->y, a, HD_RADIUS-4, &x,&y); + if (PTINRECT(mx,my,x-3,y-3,7,7)) handle = 2; +- ++ + + + if (!handle) { /* not in either, rotate both */ +@@ -2939,7 +2939,7 @@ + } + rv = (origj != j); + } +- ++ + + else { /* in one of the handles */ + if (handle==1) valp = &(hd->stval); else valp = &(hd->enval); +@@ -2958,22 +2958,22 @@ + + if (!hd->ccwise) { + ddist = (hd->enval - hd->stval + 360) % 360; +- if (handle==1) ++ if (handle==1) + ndist = (hd->enval - j + 360) % 360; + else + ndist = (j - hd->stval + 360) % 360; + } + else { + ddist = (hd->stval - hd->enval + 360) % 360; +- if (handle==1) ++ if (handle==1) + ndist = (j - hd->enval + 360) % 360; + else + ndist = (hd->stval - j + 360) % 360; + } + +- if (abs(ddist - ndist) >= 180 && ddist<180) ++ if (abs(ddist - ndist) >= 180 && ddist<180) + hd->ccwise = !hd->ccwise; +- ++ + *valp = j; + HDRedraw(hd, HD_HANDS | HD_DIR | HD_VALS); + +@@ -2986,8 +2986,8 @@ + + return rv; + } +- +- ++ ++ + + /**************************************************/ + static int hdg2xdg(hdg) +@@ -3012,7 +3012,7 @@ + *yp = cy - (int) (sin(ang) * (double) rad); + } + +- ++ + /***************************************************/ + static int computeHDval(hd, x, y) + HDIAL *hd; +@@ -3044,7 +3044,7 @@ + + + +- ++ + /****************************************************/ + static void initHmap() + { +@@ -3117,10 +3117,10 @@ + (hmap[i].src_en != hmap[i].dst_en) || + (hmap[i].src_ccw != hmap[i].dst_ccw)) { /* not a 1:1 mapping */ + +- st1 = hmap[i].src_st; ++ st1 = hmap[i].src_st; + en1 = hmap[i].src_en; + if (hmap[i].src_ccw) { +- inc1 = -1; ++ inc1 = -1; + len1 = (st1 - en1 + 360) % 360; + } + else { +@@ -3131,7 +3131,7 @@ + st2 = hmap[i].dst_st; + en2 = hmap[i].dst_en; + if (hmap[i].dst_ccw) { +- inc2 = -1; ++ inc2 = -1; + len2 = (st2 - en2 + 360) % 360; + } + else { +@@ -3179,7 +3179,7 @@ + + byte *pp, *op; + int i,j; +- int rv, gv, bv, vi, hi; ++ int rv, gv, bv; + byte *outpic; + int min, max, del, h, s, v; + int f, p, q, t, vs100, vsf10000; +@@ -3270,7 +3270,7 @@ + + /* map near-black to black to avoid weird effects */ + if (v <= 16) s = 0; +- ++ + /* apply intGraf.func[] function to 'v' (the intensity) */ + v = intGraf.func[v]; + +@@ -3295,7 +3295,7 @@ + if (h==NOHUE || !s) { rv = gv = bv = v; } + else { + if (h==360) h = 0; +- ++ + h = (h*100) / 60; /* h is in range 000..599 (0.0 - 5.99) */ + j = h - (h%100); /* j = 000, 100, 200, 300, 400, 500 */ + f = h - j; /* 'fractional' part of h (00..99) */ +@@ -3305,7 +3305,7 @@ + p = v - vs100; + q = v - vsf10000; + t = v - vs100 + vsf10000; +- ++ + switch (j) { + case 000: rv = v; gv = t; bv = p; break; + case 100: rv = q; gv = v; bv = p; break; +@@ -3319,7 +3319,7 @@ + } /* if hsvmod */ + + +- *op++ = rGraf.func[rv]; ++ *op++ = rGraf.func[rv]; + *op++ = gGraf.func[gv]; + *op++ = bGraf.func[bv]; + } +diff -ruN xv-3.10a/xvgif.c xv-3.10a-bugfixes/xvgif.c +--- xv-3.10a/xvgif.c 1995-01-10 11:54:41.000000000 -0800 ++++ xv-3.10a-bugfixes/xvgif.c 2005-04-03 11:53:13.000000000 -0700 +@@ -28,13 +28,14 @@ + typedef int boolean; + + #define NEXTBYTE (*dataptr++) ++#define SKIPBYTE (dataptr++) /* quiet some compiler warnings */ + #define EXTENSION 0x21 + #define IMAGESEP 0x2c + #define TRAILER 0x3b + #define INTERLACEMASK 0x40 + #define COLORMAPMASK 0x80 + +- ++ + + FILE *fp; + +@@ -82,11 +83,11 @@ + char *id89 = "GIF89a"; + + static int EGApalette[16][3] = { +- {0,0,0}, {0,0,128}, {0,128,0}, {0,128,128}, ++ {0,0,0}, {0,0,128}, {0,128,0}, {0,128,128}, + {128,0,0}, {128,0,128}, {128,128,0}, {200,200,200}, + {100,100,100}, {100,100,255}, {100,255,100}, {100,255,255}, + {255,100,100}, {255,100,255}, {255,255,100}, {255,255,255} }; +- ++ + + static int readImage PARM((PICINFO *)); + static int readCode PARM((void)); +@@ -108,12 +109,13 @@ + { + /* returns '1' if successful */ + +- register byte ch, ch1, *origptr; ++ register byte ch, *origptr; + register int i, block; + int aspect, gotimage; + + /* initialize variables */ +- BitOffset = XC = YC = Pass = OutCount = gotimage = 0; ++ BitOffset = XC = YC = OutCount = gotimage = 0; ++ Pass = -1; + RawGIF = Raster = pic8 = NULL; + gif89 = 0; + +@@ -129,16 +131,19 @@ + fseek(fp, 0L, 2); + filesize = ftell(fp); + fseek(fp, 0L, 0); +- +- /* the +256's are so we can read truncated GIF files without fear of ++ ++ if (filesize + 256 < filesize) ++ return( gifError(pinfo, "GIF file size is too large") ); ++ ++ /* the +256's are so we can read truncated GIF files without fear of + segmentation violation */ + if (!(dataptr = RawGIF = (byte *) calloc((size_t) filesize+256, (size_t) 1))) +- return( gifError(pinfo, "not enough memory to read gif file") ); +- +- if (!(Raster = (byte *) calloc((size_t) filesize+256,(size_t) 1))) +- return( gifError(pinfo, "not enough memory to read gif file") ); +- +- if (fread(dataptr, (size_t) filesize, (size_t) 1, fp) != 1) ++ FatalError("LoadGIF: not enough memory to read GIF file"); ++ ++ if (!(Raster = (byte *) calloc((size_t) filesize+256,(size_t) 1))) ++ FatalError("LoadGIF: not enough memory to read GIF file"); ++ ++ if (fread(dataptr, (size_t) filesize, (size_t) 1, fp) != 1) + return( gifError(pinfo, "GIF data read failed") ); + + +@@ -147,35 +152,35 @@ + if (strncmp((char *) dataptr, id87, (size_t) 6)==0) gif89 = 0; + else if (strncmp((char *) dataptr, id89, (size_t) 6)==0) gif89 = 1; + else return( gifError(pinfo, "not a GIF file")); +- ++ + dataptr += 6; +- ++ + /* Get variables from the GIF screen descriptor */ +- ++ + ch = NEXTBYTE; + RWidth = ch + 0x100 * NEXTBYTE; /* screen dimensions... not used. */ + ch = NEXTBYTE; + RHeight = ch + 0x100 * NEXTBYTE; +- ++ + ch = NEXTBYTE; + HasColormap = ((ch & COLORMAPMASK) ? True : False); +- ++ + BitsPerPixel = (ch & 7) + 1; + numcols = ColorMapSize = 1 << BitsPerPixel; + BitMask = ColorMapSize - 1; +- ++ + Background = NEXTBYTE; /* background color... not used. */ +- ++ + aspect = NEXTBYTE; + if (aspect) { + if (!gif89) return(gifError(pinfo,"corrupt GIF file (screen descriptor)")); + else normaspect = (float) (aspect + 15) / 64.0; /* gif89 aspect ratio */ + if (DEBUG) fprintf(stderr,"GIF89 aspect = %f\n", normaspect); + } +- +- ++ ++ + /* Read in global colormap. */ +- ++ + if (HasColormap) + for (i=0; ir[i] = NEXTBYTE; +@@ -221,19 +226,19 @@ + if (blocksize == 2) { + aspnum = NEXTBYTE; + aspden = NEXTBYTE; +- if (aspden>0 && aspnum>0) ++ if (aspden>0 && aspnum>0) + normaspect = (float) aspnum / (float) aspden; + else { normaspect = 1.0; aspnum = aspden = 1; } + +- if (DEBUG) fprintf(stderr,"GIF87 aspect extension: %d:%d = %f\n\n", ++ if (DEBUG) fprintf(stderr,"GIF87 aspect extension: %d:%d = %f\n\n", + aspnum, aspden,normaspect); + } + else { +- for (i=0; i0) { /* eat any following data subblocks */ +- for (i=0; i0) { /* build into one un-blocked comment */ ++ /* this can overflow iff cmtlen == 2G - 1, but then filesize ++ * would have to be > 2GB, which was disallowed above */ + cmt = (byte *) malloc((size_t) (cmtlen + 1)); +- if (!cmt) gifWarning("couldn't malloc space for comments\n"); +- else { ++ if (!cmt) FatalError("LoadGIF: couldn't malloc space for comments"); ++ /* else */ { + sp = cmt; + do { + sbsize = (*ptr1++); +@@ -267,10 +274,10 @@ + if (pinfo->comment) { /* have to strcat onto old comments */ + cmt1 = (byte *) malloc(strlen(pinfo->comment) + cmtlen + 2); + if (!cmt1) { +- gifWarning("couldn't malloc space for comments\n"); + free(cmt); ++ FatalError("LoadGIF: couldn't malloc space for comments"); + } +- else { ++ /* else */ { + strcpy((char *) cmt1, (char *) pinfo->comment); + strcat((char *) cmt1, (char *) "\n"); + strcat((char *) cmt1, (char *) cmt); +@@ -288,8 +295,8 @@ + else if (fn == 0x01) { /* PlainText Extension */ + int j,sbsize,ch; + int tgLeft, tgTop, tgWidth, tgHeight, cWidth, cHeight, fg, bg; +- +- SetISTR(ISTR_INFO, "%s: %s", bname, ++ ++ SetISTR(ISTR_INFO, "%s: %s", bname, + "PlainText extension found in GIF file. Ignored."); + + sbsize = NEXTBYTE; +@@ -302,12 +309,12 @@ + fg = NEXTBYTE; + bg = NEXTBYTE; + i=12; +- for ( ; i filesize) break; /* EOF */ + } while(ch1); + } + + else if (readImage(pinfo)) gotimage = 1; +- if (DEBUG) fprintf(stderr," at end: dataptr=0x%lx\n",dataptr-RawGIF); ++ if (DEBUG) fprintf(stderr," at end: dataptr=0x%x\n",dataptr-RawGIF); + } + + +@@ -415,7 +422,7 @@ + + /* don't mention bad block if file was trunc'd, as it's all bogus */ + if ((dataptr - origptr) < filesize) { +- sprintf(str, "Unknown block type (0x%02x) at offset 0x%lx", ++ sprintf(str, "Unknown block type (0x%02x) at offset 0x%x", + block, (dataptr - origptr) - 1); + + if (!gotimage) return gifError(pinfo, str); +@@ -431,7 +438,7 @@ + free(RawGIF); RawGIF = NULL; + free(Raster); Raster = NULL; + +- if (!gotimage) ++ if (!gotimage) + return( gifError(pinfo, "no image data found in GIF file") ); + + return 1; +@@ -448,7 +455,7 @@ + npixels = maxpixels = 0; + + /* read in values from the image descriptor */ +- ++ + ch = NEXTBYTE; + LeftOfs = ch + 0x100 * NEXTBYTE; + ch = NEXTBYTE; +@@ -472,33 +479,33 @@ + + if (!HasColormap && !(Misc&0x80)) { + /* no global or local colormap */ +- SetISTR(ISTR_WARNING, "%s: %s", bname, ++ SetISTR(ISTR_WARNING, "%s: %s", bname, + "No colormap in this GIF file. Assuming EGA colors."); + } +- + +- ++ ++ + /* Start reading the raster data. First we get the intial code size + * and compute decompressor constant values, based on this code size. + */ +- ++ + CodeSize = NEXTBYTE; + + ClearCode = (1 << CodeSize); + EOFCode = ClearCode + 1; + FreeCode = FirstFree = ClearCode + 2; +- ++ + /* The GIF spec has it that the code size is the code size used to + * compute the above values is the code size given in the file, but the + * code size used in compression/decompression is the code size given in + * the file plus one. (thus the ++). + */ +- ++ + CodeSize++; + InitCodeSize = CodeSize; + MaxCode = (1 << CodeSize); + ReadMask = MaxCode - 1; +- ++ + + + /* UNBLOCK: +@@ -506,7 +513,7 @@ + * to the Raster array, turning it from a series of blocks into one long + * data stream, which makes life much easier for readCode(). + */ +- ++ + ptr1 = Raster; + do { + ch = ch1 = NEXTBYTE; +@@ -525,18 +532,21 @@ + fprintf(stderr,"xv: LoadGIF() - picture is %dx%d, %d bits, %sinterlaced\n", + Width, Height, BitsPerPixel, Interlace ? "" : "non-"); + } +- ++ + + /* Allocate the 'pic' */ +- maxpixels = Width*Height; ++ maxpixels = Width*Height; /* 65535*65535 max (but everything is int) */ ++ if (Width <= 0 || Height <= 0 || maxpixels/Width != Height) ++ return( gifError(pinfo, "image dimensions out of range") ); + picptr = pic8 = (byte *) malloc((size_t) maxpixels); +- if (!pic8) return( gifError(pinfo, "couldn't malloc 'pic8'") ); ++ if (!pic8) FatalError("LoadGIF: couldn't malloc 'pic8'"); ++ ++ + +- + /* Decompress the file, continuing until you see the GIF EOF code. + * One obvious enhancement is to add checking for corrupt files here. + */ +- ++ + Code = readCode(); + while (Code != EOFCode) { + /* Clear code sets everything back to its initial value, then reads the +@@ -563,58 +573,58 @@ + break; } + + CurCode = InCode = Code; +- ++ + /* If greater or equal to FreeCode, not in the hash table yet; + * repeat the last character decoded + */ +- ++ + if (CurCode >= FreeCode) { + CurCode = OldCode; + if (OutCount > 4096) { /* printf("outcount1 blew up\n"); */ break; } + OutCode[OutCount++] = FinChar; + } +- ++ + /* Unless this code is raw data, pursue the chain pointed to by CurCode + * through the hash table to its end; each code in the chain puts its + * associated output code on the output queue. + */ +- ++ + while (CurCode > BitMask) { + if (OutCount > 4096) break; /* corrupt file */ + OutCode[OutCount++] = Suffix[CurCode]; + CurCode = Prefix[CurCode]; + } +- ++ + if (OutCount > 4096) { /* printf("outcount blew up\n"); */ break; } +- ++ + /* The last code in the chain is treated as raw data. */ +- ++ + FinChar = CurCode & BitMask; + OutCode[OutCount++] = FinChar; +- ++ + /* Now we put the data out to the Output routine. + * It's been stacked LIFO, so deal with it that way... + */ + + /* safety thing: prevent exceeding range of 'pic8' */ + if (npixels + OutCount > maxpixels) OutCount = maxpixels-npixels; +- ++ + npixels += OutCount; + if (!Interlace) for (i=OutCount-1; i>=0; i--) *picptr++ = OutCode[i]; + else for (i=OutCount-1; i>=0; i--) doInterlace(OutCode[i]); + OutCount = 0; + + /* Build the hash table on-the-fly. No table is stored in the file. */ +- ++ + Prefix[FreeCode] = OldCode; + Suffix[FreeCode] = FinChar; + OldCode = InCode; +- ++ + /* Point to the next slot in the table. If we exceed the current + * MaxCode value, increment the code size unless it's already 12. If it + * is, do nothing: the next code decompressed better be CLEAR + */ +- ++ + FreeCode++; + if (FreeCode >= MaxCode) { + if (CodeSize < 12) { +@@ -627,7 +637,7 @@ + Code = readCode(); + if (npixels >= maxpixels) break; + } +- ++ + if (npixels != maxpixels) { + SetISTR(ISTR_WARNING,"%s: %s", bname, + "This GIF file seems to be truncated. Winging it."); +@@ -640,7 +650,7 @@ + /* fill in the PICINFO structure */ + + pinfo->pic = pic8; +- pinfo->w = Width; ++ pinfo->w = Width; + pinfo->h = Height; + pinfo->type = PIC8; + pinfo->frmType = F_GIF; +@@ -650,8 +660,8 @@ + + sprintf(pinfo->fullInfo, + "GIF%s, %d bit%s per pixel, %sinterlaced. (%d bytes)", +- (gif89) ? "89" : "87", BitsPerPixel, +- (BitsPerPixel==1) ? "" : "s", ++ (gif89) ? "89" : "87", BitsPerPixel, ++ (BitsPerPixel==1) ? "" : "s", + Interlace ? "" : "non-", filesize); + + sprintf(pinfo->shrtInfo, "%dx%d GIF%s.",Width,Height,(gif89) ? "89" : "87"); +@@ -668,13 +678,13 @@ + * maintain our location in the Raster array as a BIT Offset. We compute + * the byte Offset into the raster array by dividing this by 8, pick up + * three bytes, compute the bit Offset into our 24-bit chunk, shift to +- * bring the desired code to the bottom, then mask it off and return it. ++ * bring the desired code to the bottom, then mask it off and return it. + */ + + static int readCode() + { + int RawCode, ByteOffset; +- ++ + ByteOffset = BitOffset / 8; + RawCode = Raster[ByteOffset] + (Raster[ByteOffset + 1] << 8); + if (CodeSize >= 8) +@@ -692,42 +702,47 @@ + { + static byte *ptr = NULL; + static int oldYC = -1; +- ++ ++ if (Pass == -1) { /* first time through - init stuff */ ++ oldYC = -1; ++ Pass = 0; ++ } ++ + if (oldYC != YC) { ptr = pic8 + YC * Width; oldYC = YC; } +- ++ + if (YC= Height) { Pass++; YC = 4; } + break; +- ++ + case 1: + YC += 8; + if (YC >= Height) { Pass++; YC = 2; } + break; +- ++ + case 2: + YC += 4; + if (YC >= Height) { Pass++; YC = 1; } + break; +- ++ + case 3: + YC += 2; break; +- ++ + default: + break; + } +@@ -735,7 +750,7 @@ + } + + +- ++ + /*****************************/ + static int gifError(pinfo, st) + PICINFO *pinfo; +diff -ruN xv-3.10a/xvgifwr.c xv-3.10a-bugfixes/xvgifwr.c +--- xv-3.10a/xvgifwr.c 1995-01-03 13:22:21.000000000 -0800 ++++ xv-3.10a-bugfixes/xvgifwr.c 2004-05-16 18:03:27.000000000 -0700 +@@ -2,11 +2,11 @@ + * xvgifwr.c - handles writing of GIF files. based on flgife.c and + * flgifc.c from the FBM Library, by Michael Maudlin + * +- * Contains: ++ * Contains: + * WriteGIF(fp, pic, ptype, w, h, rmap, gmap, bmap, numcols, colorstyle, + * comment) + * +- * Note: slightly brain-damaged, in that it'll only write non-interlaced ++ * Note: slightly brain-damaged, in that it'll only write non-interlaced + * GIF files (in the interests of speed, or something) + * + */ +@@ -34,7 +34,7 @@ + * James A. Woods (decvax!ihnp4!ames!jaw) + * Joe Orost (decvax!vax135!petsd!joe) + *****************************************************************/ +- ++ + + #include "xv.h" + +@@ -44,7 +44,6 @@ + static int curx, cury; + static long CountDown; + static int Interlace; +-static byte bw[2] = {0, 0xff}; + + static void putword PARM((int, FILE *)); + static void compress PARM((int, FILE *, byte *, int)); +@@ -97,7 +96,7 @@ + for (i=0; i= nc) break; +- ++ + BitsPerPixel = i; + + ColorMapSize = 1 << BitsPerPixel; +- ++ + RWidth = Width = w; + RHeight = Height = h; + LeftOfs = TopOfs = 0; +- ++ + CountDown = w * h; /* # of pixels we'll be doing */ + + if (BitsPerPixel <= 1) InitCodeSize = 2; +@@ -137,7 +136,7 @@ + return (1); + } + +- if (DEBUG) ++ if (DEBUG) + fprintf(stderr,"WrGIF: pic=%lx, w,h=%dx%d, numcols=%d, Bits%d,Cmap=%d\n", + (u_long) pic8, w,h,numcols,BitsPerPixel,ColorMapSize); + +@@ -152,7 +151,7 @@ + i = 0x80; /* Yes, there is a color map */ + i |= (8-1)<<4; /* OR in the color resolution (hardwired 8) */ + i |= (BitsPerPixel - 1); /* OR in the # of bits per pixel */ +- fputc(i,fp); ++ fputc(i,fp); + + fputc(Background, fp); /* background color */ + +@@ -290,7 +289,7 @@ + /* + * compress stdin to stdout + * +- * Algorithm: use open addressing double hashing (no chaining) on the ++ * Algorithm: use open addressing double hashing (no chaining) on the + * prefix code / next character combination. We do a variant of Knuth's + * algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime + * secondary probe. Here, the modular division first probe is gives way +@@ -370,7 +369,7 @@ + cl_hash( (count_int) hsize_reg); /* clear hash table */ + + output(ClearCode); +- ++ + while (len) { + c = pc2nc[*data++]; len--; + in_count++; +@@ -399,7 +398,7 @@ + continue; + } + +- if ( (long)HashTabOf (i) >= 0 ) ++ if ( (long)HashTabOf (i) >= 0 ) + goto probe; + + nomatch: +@@ -454,7 +453,7 @@ + cur_accum |= ((long)code << cur_bits); + else + cur_accum = code; +- ++ + cur_bits += n_bits; + + while( cur_bits >= 8 ) { +@@ -482,7 +481,7 @@ + maxcode = MAXCODE(n_bits); + } + } +- ++ + if( code == EOFCode ) { + /* At EOF, write the rest of the buffer */ + while( cur_bits > 0 ) { +@@ -492,11 +491,11 @@ + } + + flush_char(); +- ++ + fflush( g_outfile ); + + #ifdef FOO +- if( ferror( g_outfile ) ) ++ if( ferror( g_outfile ) ) + FatalError("unable to write GIF file"); + #endif + } +@@ -582,7 +581,7 @@ + int c; + { + accum[ a_count++ ] = c; +- if( a_count >= 254 ) ++ if( a_count >= 254 ) + flush_char(); + } + +@@ -596,4 +595,4 @@ + fwrite(accum, (size_t) 1, (size_t) a_count, g_outfile ); + a_count = 0; + } +-} ++} +diff -ruN xv-3.10a/xvgrab.c xv-3.10a-bugfixes/xvgrab.c +--- xv-3.10a/xvgrab.c 1994-12-22 14:34:47.000000000 -0800 ++++ xv-3.10a-bugfixes/xvgrab.c 2004-05-16 18:03:30.000000000 -0700 +@@ -6,7 +6,7 @@ + * Contains: + * int Grab() - handles the GRAB command + * int LoadGrab(); - 'loads' the pic from the last succesful Grab +- * ++ * + */ + + #include "copyright.h" +@@ -14,29 +14,54 @@ + #define NEEDSTIME + #include "xv.h" + +-static byte *grabPic = (byte *) NULL; +-static int gbits; /* either '8' or '24' */ +-static byte grabmapR[256], grabmapG[256], grabmapB[256]; /* colormap */ +-static int gWIDE,gHIGH; +-static int grabInProgress=0; +-static int hidewins = 0; +-static GC rootGC; +- +-static void flashrect PARM((int, int, int, int, int)); +-static void startflash PARM((void)); +-static void endflash PARM((void)); +-static int grabImage PARM((Window, int, int, int, int)); +-static void ungrabX PARM((void)); +-static int convertImage PARM((XImage *, XColor *, int, +- XWindowAttributes *)); +- +-static int lowbitnum PARM((unsigned long)); +-static int getxcolors PARM((XWindowAttributes *, XColor **)); +-static Window xvClientWindow PARM((Display *, Window)); ++ ++union swapun { ++ CARD32 l; ++ CARD16 s; ++ CARD8 b[sizeof(CARD32)]; ++}; + + ++struct rectlist { ++ int x,y,w,h; ++ struct rectlist *next; ++}; + + ++static byte *grabPic = (byte *) NULL; ++static int gptype; ++static byte grabmapR[256], grabmapG[256], grabmapB[256]; ++static int gXOFF, gYOFF, gWIDE,gHIGH; ++static int grabInProgress=0; ++static int hidewins = 0; ++static GC rootGC; ++static struct rectlist *regrabList; ++ ++ ++static void flashrect PARM((int, int, int, int, int)); ++static void startflash PARM((void)); ++static void endflash PARM((void)); ++static void ungrabX PARM((void)); ++static int lowbitnum PARM((unsigned long)); ++static int getxcolors PARM((XWindowAttributes *, XColor **)); ++ ++static void printWinTree PARM((Window, int)); ++static void errSpace PARM((int)); ++ ++static int grabRootRegion PARM((int, int, int, int)); ++static int grabWinImage PARM((Window, VisualID, Colormap, int)); ++static int convertImageAndStuff PARM((XImage *, XColor *, int, ++ XWindowAttributes *, ++ int,int,int,int)); ++ ++static int RectIntersect PARM((int,int,int,int, int,int,int,int)); ++ ++static int CountColors24 PARM((byte *, int, int, ++ int, int, int, int)); ++ ++static int Trivial24to8 PARM((byte *, int, int, byte *, ++ byte *, byte *, byte *, int)); ++ + /***********************************/ + int Grab() + { +@@ -45,8 +70,7 @@ + + int i, x, y, x1, y1, x2, y2, ix, iy, iw, ih, rv; + int rx, ry, pretendGotB1, autograb; +- int oldaclose; +- Window rW, cW, clickWin, tmpwin; ++ Window rW, cW, clickWin; + unsigned int mask; + XColor fc, bc; + +@@ -75,7 +99,7 @@ + grabInProgress = 1; /* guard against recursive grabs during delay */ + time(&startT); + while (1) { +- time(&t); ++ time(&t); + if (t >= startT + grabDelay) break; + if (XPending(theDisp)>0) { + XEvent evt; +@@ -91,25 +115,25 @@ + grabInProgress = 0; + } + +- ++ + rootGC = DefaultGC(theDisp, theScreen); +- ++ + if (grabPic) { /* throw away previous 'grabbed' pic, if there is one */ + free(grabPic); grabPic = (byte *) NULL; + } + + + fc.flags = bc.flags = DoRed | DoGreen | DoBlue; +- fc.red = fc.green = fc.blue = 0xffff; ++ fc.red = fc.green = fc.blue = 0xffff; + bc.red = bc.green = bc.blue = 0x0000; + XRecolorCursor(theDisp, tcross, &fc, &bc); + + + XBell(theDisp, 0); /* beep once at start of grab */ + +- if (!autograb) XGrabButton(theDisp, (u_int) AnyButton, 0, rootW, False, 0, ++ if (!autograb) XGrabButton(theDisp, (u_int) AnyButton, 0, rootW, False, 0, + GrabModeAsync, GrabModeSync, None, tcross); +- ++ + if (autograb) { + XGrabServer(theDisp); /* until we've done the grabImage */ + if (!XQueryPointer(theDisp,rootW,&rW,&cW,&rx,&ry,&x1,&y1,&mask)) { +@@ -136,7 +160,7 @@ + XNextEvent(theDisp, &evt); + i = HandleEvent(&evt, &done); + if (done) { /* only 'new image' cmd accepted=quit */ +- if (i==QUIT) { ++ if (i==QUIT) { + XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW); + Quit(0); + } +@@ -145,12 +169,12 @@ + + } + } +- +- ++ ++ + /*** + *** got button click (or pretending we did, if autograb) + ***/ +- ++ + + if (mask & Button3Mask || rW!=rootW) { /* Button3: CANCEL GRAB */ + while (1) { /* wait for button to be released */ +@@ -158,7 +182,7 @@ + if (!(mask & Button3Mask)) break; + } + } +- ++ + XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW); + XBell(theDisp, 0); + XBell(theDisp, 0); +@@ -175,69 +199,40 @@ + if (!(mask & Button1Mask)) break; + } + } +- +- if (!cW || cW == rootW) clickWin = rootW; +- else { +- int xr, yr; Window chwin; +- XTranslateCoordinates(theDisp, rW, cW, rx, ry, &xr, &yr, &chwin); +- if (chwin != None) { +- XWindowAttributes clickxwa, parentxwa; +- +- clickWin = xvClientWindow(theDisp, chwin); +- +- /* decide if we want to just grab clickWin, or cW. +- basically, if they're different in any important way +- (depth, visual, colormap), grab 'clickWin' only, +- as it's the important part */ +- +- if (!clickWin || +- (XGetWindowAttributes(theDisp, clickWin, &clickxwa) && +- XGetWindowAttributes(theDisp, cW, &parentxwa) && +- clickxwa.visual->class == parentxwa.visual->class && +- clickxwa.colormap == parentxwa.colormap && +- clickxwa.depth == parentxwa.depth) +- ) +- clickWin = cW; /* close enough! */ +- } +- else clickWin = cW; +- +- if (DEBUG) +- fprintf(stderr, "rW = %x, cW = %x, chwin = %x, clickWin = %x\n", +- (u_int) rW, (u_int) cW, (u_int) chwin, (u_int) clickWin); +- } +- +- ++ ++ clickWin = (cW) ? cW : rootW; ++ + if (clickWin == rootW) { /* grab entire screen */ + if (DEBUG) fprintf(stderr,"Grab: clicked on root window.\n"); + ix = iy = 0; iw = dispWIDE; ih = dispHIGH; + } + else { + int x,y; Window win; unsigned int rw,rh,rb,rd; +- ++ + if (XGetGeometry(theDisp,clickWin,&rW, &x, &y, &rw, &rh, &rb, &rd)) { + iw = (int) rw; ih = (int) rh; +- ++ + XTranslateCoordinates(theDisp, clickWin, rootW, 0, 0, &ix,&iy, &win); +- +- if (DEBUG) fprintf(stderr,"clickWin=0x%x: %d,%d %dx%d depth=%ud\n", +- (u_int) clickWin, ix, iy, iw, ih, rd); ++ ++ if (DEBUG) fprintf(stderr,"clickWin=0x%x: %d,%d %dx%d depth=%ud\n", ++ (u_int) clickWin, ix, iy, iw, ih, rd); + } + else { + ix = iy = 0; iw = dispWIDE; ih = dispHIGH; clickWin = rootW; + if (DEBUG) fprintf(stderr,"XGetGeometry failed? (using root win)\n"); + } + } +- +- ++ ++ + /* range checking: keep rectangle fully on-screen */ + if (ix<0) { iw += ix; ix = 0; } + if (iy<0) { ih += iy; iy = 0; } + if (ix+iw>dispWIDE) iw = dispWIDE-ix; + if (iy+ih>dispHIGH) ih = dispHIGH-iy; +- +- ++ ++ + if (DEBUG) fprintf(stderr,"using %d,%d (%dx%d)\n", ix, iy, iw, ih); +- ++ + /* flash the rectangle a bit... */ + startflash(); + for (i=0; i<5; i++) { +@@ -252,13 +247,12 @@ + + else { /* Button2: TRACK A RECTANGLE */ + int origrx, origry; +- Window origcW; + +- clickWin = rootW; origcW = cW; ++ clickWin = rootW; + origrx = ix = x2 = rx; + origry = iy = y2 = ry; + iw = ih = 0; +- ++ + XGrabServer(theDisp); + startflash(); + +@@ -276,51 +270,36 @@ + iw = abs(rx - x1); ih = abs(ry - y1); + x2 = rx; y2 = ry; + } +- ++ + if (iw>1 && ih>1) flashrect(ix,iy,iw,ih,1); /* turn on rect */ + } + + flashrect(ix, iy, iw, ih, 0); /* turn off rect */ ++ ++ /* flash the rectangle a bit... */ ++ for (i=0; i<5; i++) { ++ flashrect(ix, iy, iw, ih, 1); ++ XFlush(theDisp); Timer(100); ++ flashrect(ix, iy, iw, ih, 0); ++ XFlush(theDisp); Timer(100); ++ } + endflash(); +- ++ + XUngrabServer(theDisp); +- +- +- if (origcW == cW) { /* maybe it's entirely in one window??? */ +- if (cW) { /* will be 0 if clicked in rootW */ +- Window stwin, enwin, stwin1, enwin1; +- if (DEBUG) fprintf(stderr,"origcW=%x cW=%x ", +- (u_int) origcW, (u_int) cW); +- XTranslateCoordinates(theDisp,rootW,cW, origrx,origry,&x,&y,&stwin); +- XTranslateCoordinates(theDisp,rootW,cW, rx, ry, &x,&y,&enwin); +- +- if (DEBUG) fprintf(stderr,"stwin=%x enwin=%x ", +- (u_int) stwin, (u_int) enwin); +- if (stwin == enwin && stwin != None) { +- stwin1 = xvClientWindow(theDisp, stwin); +- enwin1 = xvClientWindow(theDisp, enwin); +- if (DEBUG) fprintf(stderr,"stwin1=%x enwin1=%x ", +- (u_int) stwin1, (u_int) enwin1); +- +- if (stwin1 == enwin1 && stwin1) clickWin = stwin1; +- else clickWin = stwin; +- } +- if (DEBUG) fprintf(stderr,"\n"); +- } +- else clickWin = rootW; +- } + } +- ++ + + /*** +- *** now that clickWin,ix,iy,iw,ih are known, try to grab the bits... ++ *** grab screen area (ix,iy,iw,ih) + ***/ + + ++ if (DEBUG>1) printWinTree(clickWin, 0); ++ + WaitCursor(); + + if (!autograb) XGrabServer(theDisp); /* until we've done the grabImage */ +- rv = grabImage(clickWin,ix,iy,iw,ih); /* ungrabs the server & button */ ++ rv = grabRootRegion(ix, iy, iw, ih); /* ungrabs the server & button */ + + SetCursors(-1); + +@@ -337,25 +316,25 @@ + + if (DEBUG) fprintf(stderr,"==remapped mainW. waiting for Config.\n"); + +- /* sit here until we see a MapNotify on mainW followed by a ++ /* sit here until we see a MapNotify on mainW followed by a + ConfigureNotify on mainW */ + + state = 0; +- while (1) { ++ while (state != 3) { + XEvent event; + XNextEvent(theDisp, &event); + HandleEvent(&event, &i); + +- if (state==0 && event.type == MapNotify && +- event.xmap.window == mainW) state = 1; ++ if (!(state&1) && event.type == MapNotify && ++ event.xmap.window == mainW) state |= 1; + +- if (state==1 && event.type == ConfigureNotify && +- event.xconfigure.window == mainW) break; ++ if (!(state&2) && event.type == ConfigureNotify && ++ event.xconfigure.window == mainW) state |= 2; + } + + if (DEBUG) fprintf(stderr,"==after remapping mainW, GOT Config.\n"); + } +- ++ + else if (ctrlW) CtrlBox(1); + } + +@@ -364,6 +343,45 @@ + + + /***********************************/ ++int LoadGrab(pinfo) ++ PICINFO *pinfo; ++{ ++ /* loads up (into XV structures) last image successfully grabbed. ++ returns '0' on failure, '1' on success */ ++ ++ int i; ++ ++ if (!grabPic) return 0; /* no image to use */ ++ ++ pinfo->type = gptype; ++ if (pinfo->type == PIC8) { ++ for (i=0; i<256; i++) { ++ pinfo->r[i] = grabmapR[i]; ++ pinfo->g[i] = grabmapG[i]; ++ pinfo->b[i] = grabmapB[i]; ++ } ++ } ++ ++ pinfo->pic = grabPic; ++ pinfo->normw = pinfo->w = gWIDE; ++ pinfo->normh = pinfo->h = gHIGH; ++ pinfo->frmType = -1; ++ pinfo->colType = -1; ++ ++ sprintf(pinfo->fullInfo,"<%s internal>", ++ (pinfo->type == PIC8) ? "8-bit" : "24-bit"); ++ ++ sprintf(pinfo->shrtInfo,"%dx%d image.",gWIDE, gHIGH); ++ ++ pinfo->comment = (char *) NULL; ++ ++ grabPic = (byte *) NULL; ++ ++ return 1; ++} ++ ++ ++/***********************************/ + static void flashrect(x,y,w,h,show) + int x,y,w,h,show; + { +@@ -373,7 +391,7 @@ + XSetPlaneMask(theDisp, rootGC, xorMasks[maskno]); + + if (!show) { /* turn off rectangle */ +- if (isvis) ++ if (isvis) + XDrawRectangle(theDisp, rootW, rootGC, x, y, (u_int) w-1, (u_int) h-1); + + isvis = 0; +@@ -391,15 +409,16 @@ + + /***********************************/ + static void startflash() +-{ ++{ + /* set up for drawing a flashing rectangle */ + XSetFunction(theDisp, rootGC, GXinvert); + XSetSubwindowMode(theDisp, rootGC, IncludeInferiors); + } + ++ + /***********************************/ + static void endflash() +-{ ++{ + XSetFunction(theDisp, rootGC, GXcopy); + XSetSubwindowMode(theDisp, rootGC, ClipByChildren); + XSetPlaneMask(theDisp, rootGC, AllPlanes); +@@ -408,21 +427,157 @@ + + + /***********************************/ +-static int grabImage(clickWin, x, y, w, h) +- Window clickWin; ++static void ungrabX() ++{ ++ XUngrabServer(theDisp); ++ XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW); ++} ++ ++ ++/**************************************/ ++static int lowbitnum(ul) ++ unsigned long ul; ++{ ++ /* returns position of lowest set bit in 'ul' as an integer (0-31), ++ or -1 if none */ ++ ++ int i; ++ for (i=0; ((ul&1) == 0) && i<32; i++, ul>>=1); ++ if (i==32) i = -1; ++ return i; ++} ++ ++ ++ ++/**********************************************/ ++/* getxcolors() function snarfed from 'xwd.c' */ ++/**********************************************/ ++ ++#define lowbit(x) ((x) & (~(x) + 1)) ++ ++static int getxcolors(win_info, colors) ++ XWindowAttributes *win_info; ++ XColor **colors; ++{ ++ int i, ncolors; ++ ++ *colors = (XColor *) NULL; ++ ++ if (win_info->visual->class == TrueColor) { ++ if (DEBUG>1) fprintf(stderr,"TrueColor visual: no colormap needed\n"); ++ return 0; ++ } ++ ++ else if (!win_info->colormap) { ++ if (DEBUG>1) fprintf(stderr,"no colormap associated with window\n"); ++ return 0; ++ } ++ ++ ncolors = win_info->visual->map_entries; ++ if (DEBUG>1) fprintf(stderr,"%d entries in colormap\n", ncolors); ++ ++ if (!(*colors = (XColor *) malloc (sizeof(XColor) * ncolors))) ++ FatalError("malloc failed in getxcolors()"); ++ ++ ++ if (win_info->visual->class == DirectColor) { ++ Pixel red, green, blue, red1, green1, blue1; ++ ++ if (DEBUG>1) fprintf(stderr,"DirectColor visual\n"); ++ ++ red = green = blue = 0; ++ red1 = lowbit(win_info->visual->red_mask); ++ green1 = lowbit(win_info->visual->green_mask); ++ blue1 = lowbit(win_info->visual->blue_mask); ++ for (i=0; i win_info->visual->red_mask) red = 0; ++ green += green1; ++ if (green > win_info->visual->green_mask) green = 0; ++ blue += blue1; ++ if (blue > win_info->visual->blue_mask) blue = 0; ++ } ++ } ++ else { ++ for (i=0; icolormap, *colors, ncolors); ++ ++ return(ncolors); ++} ++ ++ ++ ++/*******************************************/ ++static void printWinTree(win,tab) ++ Window win; ++ int tab; ++{ ++ u_int i, nchildren; ++ Window root, parent, *children, chwin; ++ XWindowAttributes xwa; ++ int xr, yr; ++ ++ if (!XGetWindowAttributes(theDisp, win, &xwa)) { ++ errSpace(tab); ++ fprintf(stderr,"pWT: can't XGetWindowAttributes(%08x)\n", (u_int) win); ++ return; ++ } ++ ++ XTranslateCoordinates(theDisp, win, rootW, 0,0, &xr,&yr, &chwin); ++ if (xwa.map_state==IsViewable) { ++ errSpace(tab); ++ fprintf(stderr,"%08x: %4d,%4d %4dx%4d vis: %02x cm=%x %s\n", ++ (u_int) win, xr,yr, xwa.width, xwa.height, ++ (u_int) XVisualIDFromVisual(xwa.visual), ++ (u_int) xwa.colormap, ++ ((xwa.map_state==IsUnmapped) ? "unmapped " : ++ (xwa.map_state==IsUnviewable) ? "unviewable" : ++ (xwa.map_state==IsViewable) ? "viewable " : ++ " ") ); ++ ++ if (!XQueryTree(theDisp, win, &root, &parent, &children, &nchildren)) { ++ errSpace(tab); ++ fprintf(stderr,"pWT: XQueryTree(%08x) failed\n", (u_int) win); ++ if (children) XFree((char *)children); ++ return; ++ } ++ ++ for (i=0; i0; n--) putc(' ', stderr); ++} ++ ++ ++ ++ ++/***********************************/ ++static int grabRootRegion(x, y, w, h) + int x, y, w, h; + { + /* attempts to grab the specified rectangle of the root window +- returns '1' on success. clickWin is used to figure out the depth +- and colormap to use */ ++ returns '1' on success */ + +- XImage *image; +- XWindowAttributes xwa; +- XColor *colors; +- int ncolors, i, ix, iy; +- char str[256]; +- Window win; ++ XWindowAttributes xwa; ++ int i; + ++ regrabList = (struct rectlist *) NULL; + + /* range checking */ + if (x<0) { w += x; x = 0; } +@@ -430,86 +585,246 @@ + if (x+w>dispWIDE) w = dispWIDE-x; + if (y+h>dispHIGH) h = dispHIGH-y; + +- if (w==0 || h==0) { /* selected nothing */ ++ if (w<=0 || h<=0) { /* selected nothing */ + ungrabX(); + return 0; + } + +- if (!XGetWindowAttributes(theDisp, clickWin, &xwa)) { +- sprintf(str,"Unable to get window attributes for clicked-on window\n"); ++ ++ /* grab this region, using the default (root's) visual */ ++ ++ /* now for all top-level windows (children of root), in bottom->top order ++ if they intersect the grabregion ++ are they drawn entirely (including children) using default visual+cmap? ++ yes: if they intersect 'regrab' list, grab'em - else skip'em ++ no: grab them, add their rectangle to 'regrab' list ++ */ ++ ++ ++ /* make a 24bit grabPic */ ++ gptype = PIC24; ++ gXOFF = x; gYOFF = y; gWIDE = w; gHIGH = h; ++ grabPic = (byte *) malloc((size_t) gWIDE * gHIGH * 3); ++ if (!grabPic) { + ungrabX(); +- ErrPopUp(str, "\nThat Sucks!"); ++ ErrPopUp("Unable to malloc() space for grabbed image!", "\nBite Me!"); + return 0; + } + +- +- XTranslateCoordinates(theDisp, rootW, clickWin, x, y, &ix, &iy, &win); +- +- xerrcode = 0; +- image = XGetImage(theDisp, clickWin, ix, iy, (u_int) w, (u_int) h, +- AllPlanes, ZPixmap); +- if (xerrcode || !image || !image->data) { +- sprintf(str, "Unable to get image (%d,%d %dx%d) from display", ix,iy,w,h); ++ if (!XGetWindowAttributes(theDisp, rootW, &xwa)) { + ungrabX(); +- ErrPopUp(str, "\nThat Sucks!"); ++ ErrPopUp("Can't get window attributes for root window!", "\nBite Me!"); + return 0; + } + +- ncolors = getxcolors(&xwa, &colors); ++ i = grabWinImage(rootW, XVisualIDFromVisual(xwa.visual), xwa.colormap,0); + + ungrabX(); + +- if (ncolors && DEBUG) { +- fprintf(stderr, "Colormap:\n"); +- for (i=0; i>8, colors[i].green>>8, +- colors[i].blue>>8); +- fprintf(stderr,"\n"); +- } +- +- + XBell(theDisp, 0); /* beep twice at end of grab */ + XBell(theDisp, 0); + +- i = convertImage(image, colors, ncolors, &xwa); ++ { /* free regrabList */ ++ struct rectlist *rr, *tmprr; ++ rr = regrabList; ++ while (rr) { ++ tmprr = rr->next; ++ free((char *) rr); ++ rr = tmprr; ++ } ++ regrabList = (struct rectlist *) NULL; ++ } ++ ++ if (i) { ++ ErrPopUp("Warning: Problems occurred during grab.","\nWYSInWYG!"); ++ return 0; ++ } + +- /* DO *NOT* use xvDestroyImage(), as the 'data' field was alloc'd by X, not +- necessarily through 'malloc() / free()' */ +- XDestroyImage(image); +- +- if (colors) free((char *) colors); + +- return i; ++ /* if 256 or fewer colors in grabPic, make it a PIC8 */ ++ i = CountColors24(grabPic, gWIDE, gHIGH, 0,0,gWIDE,gHIGH); ++ if (i<=256) { ++ byte *pic8; ++ pic8 = (byte *) malloc((size_t) (gWIDE * gHIGH)); ++ if (pic8) { ++ if (Trivial24to8(grabPic, gWIDE,gHIGH, pic8, ++ grabmapR,grabmapG,grabmapB,256)) { ++ free((char *) grabPic); ++ grabPic = pic8; ++ gptype = PIC8; ++ } ++ } ++ } ++ ++ return 1; /* full success */ + } + + +-static void ungrabX() ++/***********************************/ ++static int grabWinImage(win, parentVid, parentCmap, toplevel) ++ Window win; ++ VisualID parentVid; ++ Colormap parentCmap; ++ int toplevel; + { +- XUngrabServer(theDisp); +- XUngrabButton(theDisp, (u_int) AnyButton, 0, rootW); +-} ++ /* grabs area of window (and its children) that intersects ++ * grab region (root coords: gXOFF,gYOFF,gWIDE,gHIGH), and stuffs ++ * relevant bits into the grabPic (a gWIDE*gHIGH PIC24) ++ * ++ * Note: special kludge for toplevel windows (children of root): ++ * since that's the only case where a window can be obscuring something ++ * that isn't its parent ++ * ++ * returns 0 if okay, 1 if problems occurred ++ */ ++ ++ ++ int i, rv, dograb; ++ int wx, wy, ww, wh; /* root coords of window */ ++ int gx, gy, gw, gh; /* root coords of grab region of win*/ ++ Window chwin; /* unused */ ++ u_int nchildren; ++ Window root, parent, *children; ++ XWindowAttributes xwa; + ++ /* first, quick checks to avoid recursing down useless branches */ + ++ if (!XGetWindowAttributes(theDisp, win, &xwa)) { ++ if (DEBUG) fprintf(stderr,"gWI: can't get win attr (%08x)\n", (u_int) win); ++ return 1; ++ } + ++ if (xwa.class == InputOnly || xwa.map_state != IsViewable) return 0; + ++ rv = 0; ++ dograb = 1; ++ wx = 0; wy = 0; ww = (int) xwa.width; wh = (int) xwa.height; ++ ++ /* if this window doesn't intersect, none of its children will, either */ ++ XTranslateCoordinates(theDisp, win, rootW, 0,0, &wx, &wy, &chwin); ++ if (!RectIntersect(wx,wy,ww,wh, gXOFF,gYOFF,gWIDE,gHIGH)) return 0; ++ ++ gx = wx; gy = wy; gw = ww; gh = wh; ++ CropRect2Rect(&gx,&gy,&gw,&gh, gXOFF,gYOFF,gWIDE,gHIGH); ++ ++ if (win==rootW) { ++ /* always grab */ ++ } ++ ++ else if (XVisualIDFromVisual(xwa.visual) == parentVid && ++ ((xwa.visual->class==TrueColor) || xwa.colormap == parentCmap)) { ++ ++ /* note: if both visuals are TrueColor, don't compare cmaps */ ++ ++ /* normally, if the vis/cmap info of a window is the same as its parent, ++ no need to regrab window. special case if this is a toplevel ++ window, as it can be obscuring windows that *aren't* its parent */ ++ ++ if (toplevel) { ++ /* we probably already have this region. Check it against regrabList ++ If it intersects none, no need to grab. ++ If it intersects one, crop to that rectangle and grab ++ if it intersects >1, don't crop, just grab gx,gy,gw,gh */ ++ ++ struct rectlist *rr, *cr; ++ ++ i=0; cr=rr=regrabList; ++ while (rr) { ++ if (RectIntersect(gx,gy,gw,gh, rr->x,rr->y,rr->w,rr->h)) { ++ i++; cr = rr; ++ } ++ rr = rr->next; ++ } ++ ++ if (i==0) dograb=0; /* no need to grab */ ++ ++ if (i==1) CropRect2Rect(&gx,&gy,&gw,&gh, cr->x,cr->y,cr->w,cr->h); ++ } ++ else dograb = 0; ++ } ++ ++ else { ++ /* different vis/cmap from parent: ++ add to regrab list, if not already fully contained in list */ ++ struct rectlist *rr; ++ ++ /* check to see if fully contained... */ ++ rr=regrabList; ++ while (rr && RectIntersect(gx,gy,gw,gh, rr->x,rr->y,rr->w,rr->h)!=2) ++ rr = rr->next; ++ ++ if (!rr) { /* add to list */ ++ if (DEBUG) ++ fprintf(stderr,"added to regrabList: %d,%d %dx%d\n",gx,gy,gw,gh); ++ ++ rr = (struct rectlist *) malloc(sizeof(struct rectlist)); ++ if (!rr) return 1; ++ else { ++ rr->x = gx; rr->y = gy; rr->w = gw; rr->h = gh; ++ rr->next = regrabList; ++ regrabList = rr; ++ } ++ } ++ } ++ ++ /* at this point, we have to grab gx,gy,gw,gh from 'win' */ ++ ++ if (dograb) { ++ int ix, iy, ncolors; ++ XColor *colors; ++ XImage *image; ++ ++ XTranslateCoordinates(theDisp, rootW, win, gx, gy, &ix, &iy, &chwin); ++ ++ if (DEBUG) ++ fprintf(stderr,"Grabbing win (%08x) %d,%d %dx%d\n", ++ (u_int) win, gx,gy,gw,gh); ++ ++ WaitCursor(); ++ ++ xerrcode = 0; ++ image = XGetImage(theDisp, win, ix, iy, (u_int) gw, (u_int) gh, ++ AllPlanes, ZPixmap); ++ if (xerrcode || !image || !image->data) return 1; ++ ++ ncolors = getxcolors(&xwa, &colors); ++ rv = convertImageAndStuff(image, colors, ncolors, &xwa, ++ gx - gXOFF, gy - gYOFF, gw, gh); ++ XDestroyImage(image); /* can't use xvDestroyImage: alloc'd by X! */ ++ if (colors) free((char *) colors); ++ } ++ ++ ++ /* recurse into children to see if any of them are 'different'... */ ++ ++ if (!XQueryTree(theDisp, win, &root, &parent, &children, &nchildren)) { ++ if (DEBUG) fprintf(stderr,"XQueryTree(%08x) failed\n", (u_int) win); ++ if (children) XFree((char *)children); ++ return rv+1; ++ } ++ ++ for (i=0; ivisual) visual = xwap->visual; +- else visual = theVisual; ++ visual = xwap->visual; ++ + +- if (DEBUG) { ++ if (DEBUG>1) { + fprintf(stderr,"convertImage:\n"); + fprintf(stderr," %dx%d (offset %d), %s\n", +- image->width, image->height, image->xoffset, +- (image->format == XYBitmap || image->format == XYPixmap) ++ image->width, image->height, image->xoffset, ++ (image->format == XYBitmap || image->format == XYPixmap) + ? "XYPixmap" : "ZPixmap"); + + fprintf(stderr,"byte_order = %s, bitmap_bit_order = %s, unit=%d, pad=%d\n", +@@ -575,41 +889,17 @@ + sprintf(errstr, "%s\nReturned image bitmap_unit (%d) non-standard.", + "Can't deal with this display.", image->bitmap_unit); + ErrPopUp(errstr, "\nThat Sucks!"); +- return 0; ++ return 1; + } + + if (!ncolors && visual->class != TrueColor) { + sprintf(errstr, "%s\nOnly TrueColor displays can have no colormap.", + "Can't deal with this display."); + ErrPopUp(errstr, "\nThat Sucks!"); +- return 0; ++ return 1; + } + + +- /* build the 'global' grabPic stuff */ +- gWIDE = image->width; gHIGH = image->height; +- +- if (visual->class == TrueColor || visual->class == DirectColor || +- ncolors > 256) { +- grabPic = (byte *) malloc((size_t) gWIDE * gHIGH * 3); +- gbits = 24; +- } +- else { +- grabPic = (byte *) malloc((size_t) gWIDE * gHIGH); +- gbits = 8; +- +- /* load up the colormap */ +- for (i=0; i> 8; +- grabmapG[i] = colors[i].green >> 8; +- grabmapB[i] = colors[i].blue >> 8; +- } +- } +- +- if (!grabPic) FatalError("unable to malloc grabPic in convertImage()"); +- pptr = grabPic; +- +- + if (visual->class == TrueColor || visual->class == DirectColor) { + unsigned int tmp; + +@@ -634,16 +924,35 @@ + while (tmp >= 256) { tmp >>= 1; b8shift -= 1; } + while (tmp < 128) { tmp <<= 1; b8shift += 1; } + +- if (DEBUG) ++ if (DEBUG>1) + fprintf(stderr,"True/DirectColor: shifts=%d,%d,%d 8shifts=%d,%d,%d\n", + rshift, gshift, bshift, r8shift, g8shift, b8shift); + } + + +- bits_per_item = image->bitmap_unit; +- bits_used = bits_per_item; ++ bits_per_item = image->bitmap_unit; + bits_per_pixel = image->bits_per_pixel; + ++ ++ /* add code for freako 'exceed' server, where bitmapunit = 8 ++ and bitsperpix = 32 (and depth=24)... */ ++ ++ if (bits_per_item < bits_per_pixel) { ++ bits_per_item = bits_per_pixel; ++ ++ /* round bits_per_item up to next legal value, if necc */ ++ if (bits_per_item < 8) bits_per_item = 8; ++ else if (bits_per_item < 16) bits_per_item = 16; ++ else bits_per_item = 32; ++ } ++ ++ ++ /* which raises the question: how (can?) you ever have a 24 bits per pix, ++ (ie, 3 bytes, no alpha/padding) */ ++ ++ ++ bits_used = bits_per_item; /* so it will get a new item first time */ ++ + if (bits_per_pixel == 32) pixmask = 0xffffffff; + else pixmask = (((CARD32) 1) << bits_per_pixel) - 1; + +@@ -652,14 +961,15 @@ + + /* if we're on an lsbfirst machine, or the image came from an lsbfirst + machine, we should flip the bytes around. NOTE: if we're on an +- lsbfirst machine *and* the image came from an lsbfirst machine, ++ lsbfirst machine *and* the image came from an lsbfirst machine, + *don't* flip bytes, as it should work out */ + +- /* pity we don't have a logical exclusive-or */ + flipBytes = ( isLsbMachine && byte_order != LSBFirst) || + (!isLsbMachine && byte_order == LSBFirst); + + for (i=0; iheight; i++) { ++ pptr = grabPic + ((i+gy) * gWIDE + gx) * 3; ++ + lineptr = (byte *) image->data + (i * image->bytes_per_line); + bptr = ((CARD8 *) lineptr) - 1; + sptr = ((CARD16 *) lineptr) - 1; +@@ -667,35 +977,39 @@ + bits_used = bits_per_item; + + for (j=0; jwidth; j++) { +- + /* get the next pixel value from the image data */ + + if (bits_used == bits_per_item) { /* time to move on to next b/s/l */ + switch (bits_per_item) { +- case 8: bptr++; break; +- case 16: sptr++; sval = *sptr; +- if (flipBytes) { /* swap CARD16 */ +- sw.s = sval; +- tmpbyte = sw.b[0]; +- sw.b[0] = sw.b[1]; +- sw.b[1] = tmpbyte; +- sval = sw.s; +- } +- break; +- case 32: lptr++; lval = *lptr; +- if (flipBytes) { /* swap CARD32 */ +- sw.l = lval; +- tmpbyte = sw.b[0]; +- sw.b[0] = sw.b[3]; +- sw.b[3] = tmpbyte; +- tmpbyte = sw.b[1]; +- sw.b[1] = sw.b[2]; +- sw.b[2] = tmpbyte; +- lval = sw.l; +- } +- break; ++ case 8: ++ bptr++; break; ++ ++ case 16: ++ sptr++; sval = *sptr; ++ if (flipBytes) { /* swap CARD16 */ ++ sw.s = sval; ++ tmpbyte = sw.b[0]; ++ sw.b[0] = sw.b[1]; ++ sw.b[1] = tmpbyte; ++ sval = sw.s; ++ } ++ break; ++ ++ case 32: ++ lptr++; lval = *lptr; ++ if (flipBytes) { /* swap CARD32 */ ++ sw.l = lval; ++ tmpbyte = sw.b[0]; ++ sw.b[0] = sw.b[3]; ++ sw.b[3] = tmpbyte; ++ tmpbyte = sw.b[1]; ++ sw.b[1] = sw.b[2]; ++ sw.b[2] = tmpbyte; ++ lval = sw.l; ++ } ++ break; + } +- ++ + bits_used = 0; + if (bit_order == MSBFirst) bit_shift = bits_per_item - bits_per_pixel; + else bit_shift = 0; +@@ -711,11 +1025,11 @@ + else bit_shift += bits_per_pixel; + bits_used += bits_per_pixel; + +- ++ + /* okay, we've got the next pixel value in 'pixvalue' */ +- ++ + if (visual->class == TrueColor || visual->class == DirectColor) { +- /* in either case, we have to take the pixvalue and ++ /* in either case, we have to take the pixvalue and + break it out into individual r,g,b components */ + rval = (pixvalue & rmask) >> rshift; + gval = (pixvalue & gmask) >> gshift; +@@ -741,212 +1055,169 @@ + /* use pixel value as an index into colors array */ + + if (pixvalue >= ncolors) { +- FatalError("convertImage(): pixvalue >= ncolors"); +- } +- +- if (gbits == 24) { /* too many colors for 8-bit colormap */ +- *pptr++ = (colors[pixvalue].red) >> 8; +- *pptr++ = (colors[pixvalue].green) >> 8; +- *pptr++ = (colors[pixvalue].blue) >> 8; ++ fprintf(stderr, "WARNING: convertImage(): pixvalue >= ncolors\n"); ++ return 1; + } +- else *pptr++ = pixvalue & 0xff; + ++ *pptr++ = (colors[pixvalue].red) >> 8; ++ *pptr++ = (colors[pixvalue].green) >> 8; ++ *pptr++ = (colors[pixvalue].blue) >> 8; + } + } + } + +- return 1; ++ return 0; + } + + + +-/**************************************/ +-static int lowbitnum(ul) +- unsigned long ul; ++/***********************************/ ++static int RectIntersect(ax,ay,aw,ah, bx,by,bw,bh) ++ int ax,ay,aw,ah, bx,by,bw,bh; + { +- /* returns position of lowest set bit in 'ul' as an integer (0-31), +- or -1 if none */ +- +- int i; +- for (i=0; ((ul&1) == 0) && i<32; i++, ul>>=1); +- if (i==32) i = -1; +- return i; +-} ++ /* returns 0 if rectangles A and B do not intersect ++ returns 1 if A partially intersects B ++ returns 2 if rectangle A is fully enclosed by B */ + ++ int ax1,ay1, bx1,by1; + ++ ax1 = ax+aw-1; ay1 = ay+ah-1; ++ bx1 = bx+bw-1; by1 = by+bh-1; + +-/**************************************/ +-/* following code snarfed from 'xwd.c' */ +-/**************************************/ ++ if (ax1bx1 || ay1by1) return 0; + +-#define lowbit(x) ((x) & (~(x) + 1)) ++ if (ax>=bx && ax1<=bx1 && ay>=by && ay1<=by) return 2; + ++ return 1; ++} + +-static int getxcolors(win_info, colors) +- XWindowAttributes *win_info; +- XColor **colors; +-{ +- int i, ncolors; +- Colormap cmap; +- +- *colors = (XColor *) NULL; +- +- if (win_info->visual->class == TrueColor) { +- if (DEBUG) fprintf(stderr,"TrueColor visual: no colormap needed\n"); +- return 0; +- } + +- else if (!win_info->colormap) { +- if (DEBUG) fprintf(stderr,"no colormap associated with window\n"); +- return 0; +- } + +- ncolors = win_info->visual->map_entries; +- if (DEBUG) fprintf(stderr,"%d entries in colormap\n", ncolors); + +- if (!(*colors = (XColor *) malloc (sizeof(XColor) * ncolors))) +- FatalError("malloc failed in getxcolors()"); + ++/** stuff needed to make new xvgrab work in 3.10a. **/ + +- if (win_info->visual->class == DirectColor) { +- Pixel red, green, blue, red1, green1, blue1; ++/********************************************/ ++static int CountColors24(pic, pwide, phigh, x, y, w, h) ++ byte *pic; ++ int pwide, phigh, x,y,w,h; ++{ ++ /* counts the # of unique colors in a selected rect of a PIC24 ++ returns '0-256' or >256 */ + +- if (DEBUG) fprintf(stderr,"DirectColor visual\n"); ++ int i, j, nc; ++ int low, high, mid; ++ u_int colors[257], col; ++ byte *pp; ++ ++ nc = 0; ++ ++ for (i=y; nc<257 && i colors[mid]) low = mid + 1; ++ else break; ++ } + +- red = green = blue = 0; +- red1 = lowbit(win_info->visual->red_mask); +- green1 = lowbit(win_info->visual->green_mask); +- blue1 = lowbit(win_info->visual->blue_mask); +- for (i=0; i win_info->visual->red_mask) red = 0; +- green += green1; +- if (green > win_info->visual->green_mask) green = 0; +- blue += blue1; +- if (blue > win_info->visual->blue_mask) blue = 0; +- } +- } +- else { +- for (i=0; icolormap, *colors, ncolors); +- +- return(ncolors); ++ return nc; + } +- + + +- +- +-/***********************************/ +-int LoadGrab(pinfo) +- PICINFO *pinfo; ++/****************************/ ++static int Trivial24to8(pic24, w,h, pic8, rmap,gmap,bmap, maxcol) ++ byte *pic24, *pic8, *rmap, *gmap, *bmap; ++ int w,h,maxcol; + { +- /* loads up (into XV structures) last image successfully grabbed. +- returns '0' on failure, '1' on success */ +- +- int i; +- +- if (!grabPic) return 0; /* no image to use */ +- +- if (gbits == 24) pinfo->type = PIC24; +- else { +- pinfo->type = PIC8; ++ /* scans picture until it finds more than 'maxcol' different colors. If it ++ finds more than 'maxcol' colors, it returns '0'. If it DOESN'T, it does ++ the 24-to-8 conversion by simply sticking the colors it found into ++ a colormap, and changing instances of a color in pic24 into colormap ++ indicies (in pic8) */ ++ ++ unsigned long colors[256],col; ++ int i, nc, low, high, mid; ++ byte *p, *pix; ++ ++ if (maxcol>256) maxcol = 256; ++ ++ /* put the first color in the table by hand */ ++ nc = 0; mid = 0; ++ ++ for (i=w*h,p=pic24; i; i--) { ++ col = (((u_long) *p++) << 16); ++ col += (((u_long) *p++) << 8); ++ col += *p++; ++ ++ /* binary search the 'colors' array to see if it's in there */ ++ low = 0; high = nc-1; ++ while (low <= high) { ++ mid = (low+high)/2; ++ if (col < colors[mid]) high = mid - 1; ++ else if (col > colors[mid]) low = mid + 1; ++ else break; ++ } + +- for (i=0; i<256; i++) { +- pinfo->r[i] = grabmapR[i]; +- pinfo->g[i] = grabmapG[i]; +- pinfo->b[i] = grabmapB[i]; ++ if (high < low) { /* didn't find color in list, add it. */ ++ if (nc>=maxcol) return 0; ++ xvbcopy((char *) &colors[low], (char *) &colors[low+1], ++ (nc - low) * sizeof(u_long)); ++ colors[low] = col; ++ nc++; + } + } + +- pinfo->pic = grabPic; +- pinfo->normw = pinfo->w = gWIDE; +- pinfo->normh = pinfo->h = gHIGH; +- pinfo->frmType = -1; +- pinfo->colType = -1; +- +- sprintf(pinfo->fullInfo,"<%s internal>", +- (pinfo->type == PIC8) ? "8-bit" : "24-bit"); +- +- sprintf(pinfo->shrtInfo,"%dx%d image.",gWIDE, gHIGH); +- +- pinfo->comment = (char *) NULL; +- +- grabPic = (byte *) NULL; +- +- return 1; +-} +- +- +- +- +- +-#include +-#include +- +-static Window TryChildren PARM((Display *, Window, Atom)); + +-/* Find a window with WM_STATE, else return '0' */ ++ /* run through the data a second time, this time mapping pixel values in ++ pic24 into colormap offsets into 'colors' */ + +-static Window xvClientWindow (dpy, win) +- Display *dpy; +- Window win; +-{ +- Atom WM_STATE; +- Atom type = None; +- int format; +- unsigned long nitems, after; +- unsigned char *data; +- Window inf; +- +- WM_STATE = XInternAtom(dpy, "WM_STATE", True); +- if (!WM_STATE) return win; ++ for (i=w*h,p=pic24, pix=pic8; i; i--,pix++) { ++ col = (((u_long) *p++) << 16); ++ col += (((u_long) *p++) << 8); ++ col += *p++; ++ ++ /* binary search the 'colors' array. It *IS* in there */ ++ low = 0; high = nc-1; ++ while (low <= high) { ++ mid = (low+high)/2; ++ if (col < colors[mid]) high = mid - 1; ++ else if (col > colors[mid]) low = mid + 1; ++ else break; ++ } + +- XGetWindowProperty(dpy, win, WM_STATE, 0L, 0L, False, AnyPropertyType, +- &type, &format, &nitems, &after, &data); +- if (type) return win; ++ if (high < low) { ++ fprintf(stderr,"Trivial24to8: impossible situation!\n"); ++ exit(1); ++ } ++ *pix = mid; ++ } + +- inf = TryChildren(dpy, win, WM_STATE); ++ /* and load up the 'desired colormap' */ ++ for (i=0; i>16; ++ gmap[i] = (colors[i]>>8) & 0xff; ++ bmap[i] = colors[i] & 0xff; ++ } + +- return inf; ++ return 1; + } + +-static Window TryChildren (dpy, win, WM_STATE) +- Display *dpy; +- Window win; +- Atom WM_STATE; +-{ +- Window root, parent; +- Window *children; +- unsigned int nchildren; +- unsigned int i; +- Atom type = None; +- int format; +- unsigned long nitems, after; +- unsigned char *data; +- Window inf = 0; +- +- if (!XQueryTree(dpy, win, &root, &parent, &children, &nchildren)) +- return 0; + +- for (i = 0; !inf && (i < nchildren); i++) { +- XGetWindowProperty(dpy, children[i], WM_STATE, 0L, 0L, False, +- AnyPropertyType, &type, &format, &nitems, +- &after, &data); +- if (type) +- inf = children[i]; +- } + +- for (i = 0; !inf && (i < nchildren); i++) +- inf = TryChildren(dpy, children[i], WM_STATE); + +- if (children) XFree((char *)children); +- return inf; +-} +diff -ruN xv-3.10a/xvgraf.c xv-3.10a-bugfixes/xvgraf.c +--- xv-3.10a/xvgraf.c 1994-12-22 14:34:42.000000000 -0800 ++++ xv-3.10a-bugfixes/xvgraf.c 2004-05-16 18:03:34.000000000 -0700 +@@ -1,4 +1,4 @@ +-/* ++/* + * xvgraf.c - GRAF window handling functions + * + * callable functions: +@@ -88,7 +88,7 @@ + gp->win = XCreateSimpleWindow(theDisp, parent, x,y, GWIDE, GHIGH, 1, fg,bg); + if (!gp->win) FatalError("can't create graph (main) window"); + +- gp->gwin = XCreateSimpleWindow(theDisp, gp->win, 2, GHIGH-132, ++ gp->gwin = XCreateSimpleWindow(theDisp, gp->win, 2, GHIGH-132, + 128, 128, 1, fg,bg); + if (!gp->gwin) FatalError("can't create graph (sub) window"); + +@@ -96,7 +96,7 @@ + BTCreate(&gp->butts[i], gp->win, GWIDE-GBWIDE-2, 1+i * (GBHIGH + 1), + GBWIDE, GBHIGH, (char *) NULL, fg, bg, hicol, locol); + gp->butts[i].pix = gfbpix[i]; +- gp->butts[i].pw = PW; ++ gp->butts[i].pw = PW; + gp->butts[i].ph = PH; + } + +@@ -132,7 +132,7 @@ + + gp->gammamode = 0; gp->gamma = 1.0; + } +- ++ + + /***************************************************/ + void RedrawGraf(gp, gwin) +@@ -148,7 +148,7 @@ + else { + Draw3dRect(gp->win, 0,0, GWIDE-1, GHIGH-1, R3D_OUT, 1, hicol, locol, + gp->bg); +- ++ + XSetForeground(theDisp, theGC, gp->fg); + XSetBackground(theDisp, theGC, gp->bg); + DrawString(gp->win, 2, 1+ASCENT, gp->str); +@@ -165,7 +165,7 @@ + { + int i,x,y; + XPoint pts[129], *pt; +- ++ + + if (gp->entergamma) { + char *str1 = "Enter gamma"; +@@ -181,15 +181,15 @@ + x = 10 + StringWidth(str2) + 8; + y = 30 + ASCENT + CHIGH + 3; + i = StringWidth(gp->gvstr); +- if (gp->entergamma < 0 && strlen(gp->gvstr)) { ++ if (gp->entergamma < 0 && strlen(gp->gvstr)) { + /* show string highlited */ + XFillRectangle(theDisp, gp->gwin, theGC, x-1, y-ASCENT-1, + (u_int) i+2, (u_int) CHIGH+2); + XSetForeground(theDisp, theGC, gp->bg); + } +- else ++ else + XDrawLine(theDisp, gp->gwin, theGC, x+i, y-ASCENT, x+i, y+DESCENT); +- ++ + DrawString(gp->gwin, x,y, gp->gvstr); + + return; +@@ -267,7 +267,7 @@ + if (igammamode = 0; + +@@ -312,7 +312,7 @@ + if (gp->nhands < MAX_GHANDS) { + /* find largest x-gap in handles, put new handle in mid */ + int lgap, lpos, x, y; +- ++ + lgap = gp->hands[1].x - gp->hands[0].x; + lpos = 1; + for (j=1; jnhands-1; j++) +@@ -320,11 +320,11 @@ + lgap = gp->hands[j+1].x - gp->hands[j].x; + lpos = j+1; + } +- ++ + /* open up position in hands[] array */ +- xvbcopy((char *) &gp->hands[lpos], (char *) &gp->hands[lpos+1], ++ xvbcopy((char *) &gp->hands[lpos], (char *) &gp->hands[lpos+1], + (gp->nhands - lpos) * sizeof(XPoint)); +- ++ + x = gp->hands[lpos-1].x + lgap/2; + y = gp->func[x]; + gp->hands[lpos].x = x; +@@ -343,7 +343,7 @@ + BTSetActive(&gp->butts[GFB_DELH], 1); + } + break; +- ++ + case GFB_DELH: + if (gp->nhands > 2) { + /* find (middle) point whose x-distance to previous +@@ -361,9 +361,9 @@ + mdist = dist; mpos = j; + } + } +- ++ + /* delete position 'mpos' in hands[] array */ +- xvbcopy((char *) &gp->hands[mpos+1], (char *) &gp->hands[mpos], ++ xvbcopy((char *) &gp->hands[mpos+1], (char *) &gp->hands[mpos], + (gp->nhands-mpos-1) * sizeof(XPoint)); + + gp->nhands--; +@@ -408,16 +408,16 @@ + + /* keep original mouse position in 'mx,my', and warp mouse to center + of screen */ +- grab = !XGrabPointer(theDisp, gp->gwin, False, 0, GrabModeAsync, ++ grab = !XGrabPointer(theDisp, gp->gwin, False, 0, GrabModeAsync, + GrabModeAsync, None, inviso, (Time) CurrentTime); +- XWarpPointer(theDisp, None, rootW, 0,0,0,0, ++ XWarpPointer(theDisp, None, rootW, 0,0,0,0, + (int) dispWIDE/2, (int) dispHIGH/2); + +- origx = dispWIDE/2; origy = dispHIGH/2; ++ origx = dispWIDE/2; origy = dispHIGH/2; + orighx = gp->hands[h].x; orighy = gp->hands[h].y; + + gp->gammamode = 0; +- offx = gp->hands[h].x - origx; ++ offx = gp->hands[h].x - origx; + offy = gp->hands[h].y - origy; + + vertonly = (h==0 || h==(gp->nhands-1)); +@@ -434,7 +434,7 @@ + + dx = x - origx; dy = origy - y; /* flip y axis */ + +- /* new (virt) position of handle is (desired) ++ /* new (virt) position of handle is (desired) + orighx + dx, orighy + dy */ + + if (!vertonly) { /* keep this handle between its neighbors */ +@@ -448,7 +448,7 @@ + if (newx != gp->hands[h].x || newy != gp->hands[h].y) { + /* this handle has moved... */ + XSetForeground(theDisp, theGC, gp->bg); +- XFillRectangle(theDisp, gp->gwin, theGC, ++ XFillRectangle(theDisp, gp->gwin, theGC, + (gp->hands[h].x/2)-3, ((255-gp->hands[h].y)/2)-3, 7,7); + + gp->hands[h].x = newx; gp->hands[h].y = newy; +@@ -464,7 +464,7 @@ + } + + drawHandPos(gp, -1); +- XWarpPointer(theDisp, None, gp->gwin, 0,0,0,0, ++ XWarpPointer(theDisp, None, gp->gwin, 0,0,0,0, + gp->hands[h].x/2, (255-gp->hands[h].y)/2); + if (grab) XUngrabPointer(theDisp, (Time) CurrentTime); + } +@@ -481,9 +481,9 @@ + { + int w; + char *tstr = "888,888"; +- ++ + /* if hnum < 0, clears the text area */ +- ++ + XSetFont(theDisp, theGC, monofont); + w = XTextWidth(monofinfo, tstr, (int) strlen(tstr)); + +@@ -492,12 +492,12 @@ + + XSetForeground(theDisp, theGC, gp->fg); + XSetBackground(theDisp, theGC, gp->bg); +- XDrawImageString(theDisp, gp->win, theGC, 130-w, 1+ASCENT, ++ XDrawImageString(theDisp, gp->win, theGC, 130-w, 1+ASCENT, + str, (int) strlen(str)); + + XSetFont(theDisp, theGC, mfont); + } +- ++ + + /***************************************************/ + int GrafKey(gp,str) +@@ -518,7 +518,7 @@ + } + + while (*str) { +- if (gp->entergamma == -1 && ++ if (gp->entergamma == -1 && + (*str != '\012' && *str != '\015' && *str != '\033')) { + gp->entergamma = 1; + gp->gvstr[0] = '\0'; +@@ -529,7 +529,7 @@ + len = strlen(gp->gvstr); + + if (*str>= '0' && *str <= '9') { +- if (len < GVMAX) { ++ if (len < GVMAX) { + gp->gvstr[len++] = *str; + gp->gvstr[len] = '\0'; + ok = 1; +@@ -607,18 +607,18 @@ + + /* do sanity check. (x-coords must be sorted (strictly increasing)) */ + +- for (i=0; inhands; i++) { +- RANGE(gp->hands[i].x, 0, 255); ++ for (i=0; inhands; i++) { ++ RANGE(gp->hands[i].x, 0, 255); + RANGE(gp->hands[i].y, 0, 255); + } + + gp->hands[0].x = 0; gp->hands[gp->nhands-1].x = 255; + for (i=1; inhands-1; i++) { + if (gp->hands[i].x < i) gp->hands[i].x = i; +- if (gp->hands[i].x > 256-gp->nhands+i) ++ if (gp->hands[i].x > 256-gp->nhands+i) + gp->hands[i].x = 256-gp->nhands+i; + +- if (gp->hands[i].x <= gp->hands[i-1].x) ++ if (gp->hands[i].x <= gp->hands[i-1].x) + gp->hands[i].x = gp->hands[i-1].x + 1; + } + +@@ -647,17 +647,17 @@ + else { /* gp->gamma == 0.0 */ + for (i=0; i<256; i++) gp->func[i] = 0; + } +- +- ++ ++ + for (i=0; inhands; i++) { + gp->hands[i].y = gp->func[gp->hands[i].x]; + } + } +- ++ + else if (!gp->spline) { /* do linear interpolation */ + int y,x1,y1,x2,y2; + double yd; +- ++ + for (i=0; inhands-1; i++) { + x1 = gp->hands[ i ].x; y1 = gp->hands[ i ].y; + x2 = gp->hands[i+1].x; y2 = gp->hands[i+1].y; +@@ -676,12 +676,12 @@ + double yf[MAX_GHANDS]; + double yd; + +- for (i=0; inhands; i++) { ++ for (i=0; inhands; i++) { + x[i] = gp->hands[i].x; y[i] = gp->hands[i].y; + } +- ++ + InitSpline(x, y, gp->nhands, yf); +- ++ + for (i=0; i<256; i++) { + yd = EvalSpline(x, y, yf, gp->nhands, (double) i); + j = (int) floor(yd + 0.5); +@@ -750,7 +750,7 @@ + if (!str) return 1; /* NULL strings don't parse well! */ + + /* first, strip all pesky whitespace from str */ +- for (sp=str, dp=tstr; *sp; sp++) ++ for (sp=str, dp=tstr; *sp; sp++) + if (*sp > ' ') { *dp = *sp; dp++; } + *dp = '\0'; + +@@ -764,7 +764,7 @@ + } + else return 1; + } +- ++ + /* read Spline, or Line (S/L) character */ + sp = tstr; + if (*sp == 'S' || *sp == 's') spline = 1; +@@ -784,7 +784,7 @@ + while (*sp && *sp != ':') {*dp = *sp; dp++; sp++; } + *dp++ = '\0'; + if (sscanf(tstr1,"%d,%d",&x, &y) != 2) return 1; +- if (x < 0 || x > 255 || ++ if (x < 0 || x > 255 || + y < 0 || y > 255) return 1; /* out of range */ + coords[i].x = x; coords[i].y = y; + } +@@ -837,7 +837,7 @@ + IFSET(gp->gamma, gsp->gamma); + IFSET(gp->nhands, gsp->nhands); + +- if (strcmp(gp->gvstr, gsp->gvstr)) ++ if (strcmp(gp->gvstr, gsp->gvstr)) + { strcpy(gp->gvstr, gsp->gvstr); rv++; } + + for (i=0; inhands; i++) { +@@ -880,7 +880,7 @@ + sig = ((double) x[i]-x[i-1]) / ((double) x[i+1] - x[i-1]); + p = sig * y2[i-1] + 2.0; + y2[i] = (sig-1.0) / p; +- u[i] = (((double) y[i+1]-y[i]) / (x[i+1]-x[i])) - ++ u[i] = (((double) y[i+1]-y[i]) / (x[i+1]-x[i])) - + (((double) y[i]-y[i-1]) / (x[i]-x[i-1])); + u[i] = (6.0 * u[i]/(x[i+1]-x[i-1]) - sig*u[i-1]) / p; + } +@@ -912,9 +912,9 @@ + if (h==0.0) FatalError("bad xvalues in splint\n"); + a = (xa[khi]-x)/h; + b = (x-xa[klo])/h; +- return (a*ya[klo] + b*ya[khi] + ((a*a*a-a)*y2a[klo] +(b*b*b-b)*y2a[khi]) ++ return (a*ya[klo] + b*ya[khi] + ((a*a*a-a)*y2a[klo] +(b*b*b-b)*y2a[khi]) + * (h*h) / 6.0); + } +- ++ + + +diff -ruN xv-3.10a/xviff.c xv-3.10a-bugfixes/xviff.c +--- xv-3.10a/xviff.c 1995-01-13 11:54:54.000000000 -0800 ++++ xv-3.10a-bugfixes/xviff.c 2005-04-03 11:57:56.000000000 -0700 +@@ -39,7 +39,7 @@ + + static long filesize; + +-static int readID PARM((FILE *, char *)); ++/* static int readID PARM((FILE *, char *)); DOES NOT EXIST */ + static int iffError PARM((char *, char *)); + static void decomprle PARM((byte *, byte *, long, long)); + static unsigned int iff_getword PARM((byte *)); +@@ -65,16 +65,16 @@ + /*******************************************/ + { + /* returns '1' on success */ +- ++ + register byte bitmsk, rval, gval, bval; + register long col, colbit; + FILE *fp; + int rv; +- int BMHDok, CMAPok, CAMGok, BODYok; ++ int BMHDok, CMAPok, CAMGok; + int bmhd_width, bmhd_height, bmhd_bitplanes, bmhd_transcol; + int i, j, k, lineskip, colors, fmt; + byte bmhd_masking, bmhd_compression; +- long chunkLen, camg_viewmode, decomp_bufsize; ++ long chunkLen, camg_viewmode; + byte *databuf, *dataptr, *cmapptr, *picptr, *pic, *bodyptr; + byte *workptr, *workptr2, *workptr3, *decomp_mem; + +@@ -138,6 +138,7 @@ + BODY chunk was found or dataptr ran over end of file */ + + while ((rv<0) && (dataptr < (databuf + filesize))) { ++ int npixels = 0; + chunkLen = (iff_getlong(dataptr + 4) + 1) & 0xfffffffe; /* make even */ + + if (strncmp((char *) dataptr, "BMHD", (size_t) 4)==0) { /* BMHD chunk? */ +@@ -149,25 +150,30 @@ + bmhd_transcol = iff_getword(dataptr + 8 + 12); + BMHDok = 1; /* got BMHD */ + dataptr += 8 + chunkLen; /* to next chunk */ ++ ++ npixels = bmhd_width * bmhd_height; /* 65535*65535 max */ ++ if (bmhd_width <= 0 || bmhd_height <= 0 ++ || npixels/bmhd_width != bmhd_height) ++ return (iffError(bname, "xviff: image dimensions out of range")); + } + + + else if (strncmp((char *) dataptr, "CMAP", (size_t) 4)==0) { /* CMAP ? */ + cmapptr = dataptr + 8; + colors = chunkLen / 3; /* calc no of colors */ +- ++ + /* copy colors to color map */ + for (i=0; i < colors; i++) { + pinfo->r[i] = *cmapptr++; + pinfo->g[i] = *cmapptr++; + pinfo->b[i] = *cmapptr++; + } +- ++ + CMAPok = 1; /* got CMAP */ + dataptr += 8 + chunkLen; /* to next chunk */ + } + +- ++ + else if (strncmp((char *) dataptr, "CAMG", (size_t) 4)==0) { /* CAMG ? */ + camg_viewmode = iff_getlong(dataptr + 8); /* get viewmodes */ + CAMGok = 1; /* got CAMG */ +@@ -176,19 +182,28 @@ + + + else if (strncmp((char *) dataptr, "BODY", (size_t) 4)==0) { /* BODY ? */ ++ int byte_width = (((bmhd_width + 15) >> 4) << 1); /* 8192 max */ ++ + bodyptr = dataptr + 8; /* -> BODY data */ +- ++ + if (BMHDok) { /* BMHD found? */ + /* if BODY is compressed, allocate buffer for decrunched BODY and + decompress it (run length encoding) */ +- ++ + if (bmhd_compression == 1) { + /* calc size of decrunch buffer - (size of the actual picture + decompressed in interleaved Amiga bitplane format) */ + +- decomp_bufsize = (((bmhd_width + 15) >> 4) << 1) +- * bmhd_height * bmhd_bitplanes; +- ++ int bytes_per_bitplane = byte_width * bmhd_height; /* 536862720 max */ ++ long decomp_bufsize = bytes_per_bitplane * bmhd_bitplanes; ++ ++ if (byte_width <= 0 || bmhd_height <= 0 || ++ bytes_per_bitplane/byte_width != bmhd_height || ++ decomp_bufsize/bytes_per_bitplane != bmhd_bitplanes) ++ { ++ return (iffError(bname, "xviff: image dimensions out of range")); ++ } ++ + if ((decomp_mem = (byte *)malloc((size_t) decomp_bufsize)) != NULL) { + decomprle(dataptr + 8, decomp_mem, chunkLen, decomp_bufsize); + bodyptr = decomp_mem; /* -> uncompressed BODY */ +@@ -200,12 +215,13 @@ + FatalError("xviff: cannot malloc() decrunch buffer"); + } + } +- ++ + + /* the following determines the type of the ILBM file. + it's either NORMAL, EHB, HAM, HAM8 or 24BIT */ +- ++ + fmt = ILBM_NORMAL; /* assume normal ILBM */ ++ /* FIXME: does ILBM_NORMAL really support up to 255 bitplanes? */ + + if (bmhd_bitplanes == 24) fmt = ILBM_24BIT; + else if (bmhd_bitplanes == 8) { +@@ -216,7 +232,7 @@ + if (camg_viewmode & 0x80) fmt = ILBM_EHB; + else if (camg_viewmode & 0x800) fmt = ILBM_HAM; + } +- ++ + + if (DEBUG) { + fprintf(stderr, "LoadIFF: %s %dx%d, planes=%d (%d cols), comp=%d\n", +@@ -225,9 +241,9 @@ + (fmt==ILBM_HAM8) ? "HAM8 ILBM" : + (fmt==ILBM_EHB) ? "EHB ILBM" : + (fmt==ILBM_24BIT) ? "24BIT ILBM" : "unknown ILBM", +- bmhd_width, bmhd_height, bmhd_bitplanes, ++ bmhd_width, bmhd_height, bmhd_bitplanes, + 1<> 4) << 1; +- ++ lineskip = byte_width; ++ + for (i=0; ir[i + colors] = pinfo->r[i] >> 1; + pinfo->g[i + colors] = pinfo->g[i] >> 1; + pinfo->b[i + colors] = pinfo->b[i] >> 1; + } + } +- ++ + pic = picptr; /* ptr to chunky buffer */ + workptr = bodyptr; /* ptr to uncmp'd pic, planar format */ +- +- lineskip = ((bmhd_width + 15) >> 4) << 1; /* # of bytes/line */ +- ++ lineskip = byte_width; ++ + for (i=0; i> 1; /* shift mask to next bit */ + if (bitmsk == 0) { /* if mask is zero */ +@@ -382,7 +404,7 @@ + workptr2++; /* mv ptr to next byte */ + } + } /* for j ... */ +- ++ + workptr += lineskip * bmhd_bitplanes; /* to next line */ + } /* for i ... */ + +@@ -399,7 +421,7 @@ + pinfo->colType = F_FULLCOLOR; + pinfo->frmType = -1; + +- sprintf(pinfo->fullInfo, "%s (%ld bytes)", ++ sprintf(pinfo->fullInfo, "%s (%ld bytes)", + (fmt==ILBM_NORMAL) ? "IFF ILBM" : + (fmt==ILBM_HAM) ? "HAM ILBM" : + (fmt==ILBM_HAM8) ? "HAM8 ILBM" : +@@ -414,7 +436,8 @@ + } /* if BMHDok */ + + else rv = 0; /* didn't get BMHD header */ +- } ++ ++ } /* "BODY" chunk */ + + else { + if (DEBUG) +@@ -440,10 +463,10 @@ + + /************************************************************************** + void decomprle(source, destination, source length, buffer size) +- ++ + Decompress run-length encoded data from source to destination. Terminates + when source is decoded completely or destination buffer is full. +- ++ + The decruncher is as optimized as I could make it, without risking + safety in case of corrupt BODY chunks. + ***************************************************************************/ +@@ -455,12 +478,12 @@ + register long slen, dlen; + { + register byte codeByte, dataByte; +- ++ + while ((slen > 0) && (dlen > 0)) { +- ++ + /* read control byte */ + codeByte = *sptr++; +- ++ + if (codeByte < 0x80) { + codeByte++; + if ((slen > (long) codeByte) && (dlen >= (long) codeByte)) { +diff -ruN xv-3.10a/xvimage.c xv-3.10a-bugfixes/xvimage.c +--- xv-3.10a/xvimage.c 1995-01-13 16:11:36.000000000 -0800 ++++ xv-3.10a-bugfixes/xvimage.c 2005-03-31 07:23:39.000000000 -0800 +@@ -34,7 +34,7 @@ + static void do_pan_calc PARM((int, int, int *, int *)); + static void crop1 PARM((int, int, int, int, int)); + static int doAutoCrop24 PARM((void)); +-static void floydDitherize1 PARM((XImage *, byte *, int, int, int, ++static void floydDitherize1 PARM((XImage *, byte *, int, int, int, + byte *, byte *,byte *)); + static int highbit PARM((unsigned long)); + +@@ -74,7 +74,7 @@ + GenerateEpic(w,h); + CreateXImage(); + } +- ++ + + + /********************************************/ +@@ -90,15 +90,15 @@ + + cp = cpic; + bperpix = (picType == PIC8) ? 1 : 3; +- ++ + for (i=0; i=eWIDE || ory>=eHIGH) return; + +- ++ + crop1(opx, opy, opw, oph, DO_ZOOM); + } + +@@ -306,15 +306,15 @@ + static void compute_zoom_rect(x, y, px, py, pw, ph) + int x, y, *px, *py, *pw, *ph; + { +- /* given a mouse pos (in epic coords), return x,y,w,h PIC coords for +- a 'zoom in by 2x' rectangle to be tracked. The rectangle stays ++ /* given a mouse pos (in epic coords), return x,y,w,h PIC coords for ++ a 'zoom in by 2x' rectangle to be tracked. The rectangle stays + completely within 'pic' boundaries, and moves in 'pic' increments */ + + CoordE2P(x, y, px, py); +- *pw = (cWIDE+1)/2; ++ *pw = (cWIDE+1)/2; + *ph = (cHIGH+1)/2; + +- *px = *px - (*pw)/2; ++ *px = *px - (*pw)/2; + *py = *py - (*ph)/2; + + RANGE(*px, 0, pWIDE - *pw); +@@ -327,7 +327,7 @@ + { + int x,y,w,h, x2,y2, ex,ey,ew,eh; + +- /* compute a cropping rectangle (in pic coordinates) that's twice ++ /* compute a cropping rectangle (in pic coordinates) that's twice + the size of eWIDE,eHIGH, centered around eWIDE/2, eHIGH/2, but no + larger than pWIDE,PHIGH */ + +@@ -362,7 +362,7 @@ + int i, ox,oy,offx,offy, rw,rh, px, py, dx, dy,m; + Window rW, cW; unsigned int mask; int rx, ry; + +- offx = ox = mx; ++ offx = ox = mx; + offy = oy = my; + rw = eWIDE-1; rh = eHIGH-1; + m = 0; +@@ -374,50 +374,50 @@ + + /* track until Button2 is released */ + while (1) { +- if (!XQueryPointer(theDisp, mainW, &rW, &cW, &rx, &ry, ++ if (!XQueryPointer(theDisp, mainW, &rW, &cW, &rx, &ry, + &mx, &my, &mask)) continue; + if (!(mask & ControlMask)) break; /* cancelled */ + if (!(mask & Button2Mask)) break; /* button released */ +- ++ + if (mask & ShiftMask) { /* constrain mx,my to horiz or vertical */ + if (abs(mx-offx) > abs(my-offy)) my = offy; + else mx = offx; + } +- ++ + do_pan_calc(offx, offy, &mx, &my); +- ++ + if (mx!=ox || my!=oy) { +- XDrawRectangle(theDisp, mainW, theGC, ox-offx, oy-offy, ++ XDrawRectangle(theDisp, mainW, theGC, ox-offx, oy-offy, + (u_int) rw, (u_int) rh); +- XDrawRectangle(theDisp, mainW, theGC, mx-offx, my-offy, ++ XDrawRectangle(theDisp, mainW, theGC, mx-offx, my-offy, + (u_int) rw, (u_int) rh); + ox = mx; oy = my; + } + else { +- XDrawRectangle(theDisp, mainW, theGC, ox-offx, oy-offy, ++ XDrawRectangle(theDisp, mainW, theGC, ox-offx, oy-offy, + (u_int) rw, (u_int) rh); + m = (m+1)&7; + XSetPlaneMask(theDisp, theGC, xorMasks[m]); +- XDrawRectangle(theDisp, mainW, theGC, ox-offx, oy-offy, ++ XDrawRectangle(theDisp, mainW, theGC, ox-offx, oy-offy, + (u_int) rw, (u_int) rh); + XFlush(theDisp); + Timer(100); + } + } +- ++ + mx = ox; my = oy; /* in case mx,my changed on button release */ + + if (!(mask & ControlMask)) { /* cancelled */ +- XDrawRectangle(theDisp, mainW, theGC, mx-offx, my-offy, ++ XDrawRectangle(theDisp, mainW, theGC, mx-offx, my-offy, + (u_int) rw, (u_int) rh); + XSetFunction(theDisp, theGC, GXcopy); + XSetPlaneMask(theDisp, theGC, AllPlanes); + return; + } +- ++ + + for (i=0; i<4; i++) { +- XDrawRectangle(theDisp, mainW, theGC, mx-offx, my-offy, ++ XDrawRectangle(theDisp, mainW, theGC, mx-offx, my-offy, + (u_int) rw, (u_int) rh); + XFlush(theDisp); + Timer(100); +@@ -430,7 +430,7 @@ + dx = px - cXOFF; dy = py - cYOFF; + + if (dx==0 && dy==0) { /* didn't pan anywhere */ +- XDrawRectangle(theDisp, mainW, theGC, mx-offx, my-offy, ++ XDrawRectangle(theDisp, mainW, theGC, mx-offx, my-offy, + (u_int) rw, (u_int) rh); + XSetFunction(theDisp, theGC, GXcopy); + XSetPlaneMask(theDisp, theGC, AllPlanes); +@@ -485,7 +485,7 @@ + /***********************************/ + void Crop() + { +- int i, x, y, w, h; ++ int x, y, w, h; + + if (!HaveSelection()) return; + +@@ -499,8 +499,7 @@ + static void crop1(x,y,w,h,zm) + int x,y,w,h,zm; + { +- int i,j,oldew,oldeh,oldcx,oldcy; +- byte *cp, *pp; ++ int oldew,oldeh,oldcx,oldcy; + + oldcx = cXOFF; oldcy = cYOFF; + oldew = eWIDE; oldeh = eHIGH; +@@ -529,7 +528,7 @@ + if (cpic == pic) return; /* not cropped */ + + BTSetActive(&but[BUNCROP],0); +- ++ + if (epicMode == EM_SMOOTH) { /* turn off smoothing */ + epicMode = EM_RAW; SetEpicMode(); + } +@@ -538,7 +537,7 @@ + FreeEpic(); + if (cpic && cpic != pic) free(cpic); + cpic = NULL; +- ++ + + w = (pWIDE * eWIDE) / cWIDE; h = (pHIGH * eHIGH) / cHIGH; + if (w>maxWIDE || h>maxHIGH) { +@@ -566,7 +565,7 @@ + WUnCrop(); + SetCropString(); + } +- ++ + + /***********************************/ + void AutoCrop() +@@ -583,7 +582,7 @@ + WCrop(eWIDE, eHIGH, cXOFF-oldcx, cYOFF-oldcy); + } + } +- ++ + SetCursors(-1); + } + +@@ -650,7 +649,7 @@ + + /* do the actual cropping */ + if (cleft || ctop || cbot || cright) { +- DoCrop(cXOFF+cleft, cYOFF+ctop, ++ DoCrop(cXOFF+cleft, cYOFF+ctop, + cWIDE-(cleft+cright), cHIGH-(ctop+cbot)); + return 1; + } +@@ -673,7 +672,7 @@ + # define NEIGHBOR 16 /* within 6% of neighboring pixels */ + # define MISSPCT 6 /* and up to 6% that don't match */ + # define inabsrange(a,n) ( (a) < n && (a) > -n ) +- ++ + + if (cHIGH<3 || cWIDE<3) return 0; + +@@ -739,7 +738,7 @@ + while (cleft + 1 < cWIDE) { /* see if we can delete this line */ + oldr = bgR; oldg = bgG; oldb = bgB; + +- for (i=0, misses=0, cp1=cp; imaxWIDE || eHIGH>maxHIGH) { /* make 'normal' size */ +@@ -869,7 +868,7 @@ + double r,wr,hr; + wr = ((double) cWIDE) / maxWIDE; + hr = ((double) cHIGH) / maxHIGH; +- ++ + r = (wr>hr) ? wr : hr; /* r is the max(wr,hr) */ + eWIDE = (int) ((cWIDE / r) + 0.5); + eHIGH = (int) ((cHIGH / r) + 0.5); +@@ -906,12 +905,12 @@ + int dir; + { + int i; +- ++ + /* dir=0: 90 degrees clockwise, else 90 degrees counter-clockwise */ + WaitCursor(); +- ++ + RotatePic(pic, picType, &pWIDE, &pHIGH, dir); +- ++ + /* rotate clipped version and modify 'clip' coords */ + if (cpic != pic && cpic != NULL) { + if (!dir) { +@@ -928,7 +927,7 @@ + RotatePic(cpic, picType, &cWIDE, &cHIGH,dir); + } + else { cWIDE = pWIDE; cHIGH = pHIGH; } +- ++ + /* rotate expanded version */ + if (epic != cpic && epic != NULL) { + WaitCursor(); +@@ -940,7 +939,7 @@ + SetISTR(ISTR_RES,"%d x %d",pWIDE,pHIGH); + + SetISTR(ISTR_EXPAND, "%.5g%% x %.5g%% (%d x %d)", +- 100.0 * ((float) eWIDE) / cWIDE, ++ 100.0 * ((float) eWIDE) / cWIDE, + 100.0 * ((float) eHIGH) / cHIGH, eWIDE, eHIGH); + } + +@@ -951,7 +950,7 @@ + int *wp, *hp; + int ptype, dir; + { +- /* rotates a w*h array of bytes 90 deg clockwise (dir=0) ++ /* rotates a w*h array of bytes 90 deg clockwise (dir=0) + or counter-clockwise (dir != 0). swaps w and h */ + + byte *pic1, *pix1, *pix; +@@ -960,7 +959,7 @@ + + bperpix = (ptype == PIC8) ? 1 : 3; + +- w = *wp; h = *hp; ++ w = *wp; h = *hp; + pix1 = pic1 = (byte *) malloc((size_t) (w*h*bperpix)); + if (!pic1) FatalError("Not enough memory to rotate!"); + +@@ -968,15 +967,15 @@ + if (dir==0) { + for (i=0; i=0; j--, pix1++, pix-=w) ++ for (j=h-1, pix=pic+(h-1)*w + i; j>=0; j--, pix1++, pix-=w) + *pix1 = *pix; + } + else { + int bperlin = w*bperpix; + int k; +- +- for (j=h-1, pix=pic+(h-1)*w*bperpix + i*bperpix; +- j>=0; j--, pix -= bperlin) ++ ++ for (j=h-1, pix=pic+(h-1)*w*bperpix + i*bperpix; ++ j>=0; j--, pix -= bperlin) + for (k=0; k=0; i--) { /* CCW */ + if (bperpix == 1) { +- for (j=0, pix=pic+i; j0) nextptr[-1] += ((err*3)/16); +@@ -1414,9 +1420,9 @@ + for (j=w-1; j>=0; j--, pp--, thisptr--, nextptr--) { + if (*thisptr<128) { err = *thisptr; *pp = (byte) bval; } + else { err = *thisptr-255; *pp = (byte) wval; } +- ++ + if (j>0) thisptr[-1] += ((err*7)/16); +- ++ + if (i0) nextptr[-1] += (err/16); +@@ -1449,8 +1455,8 @@ + } + + +- if (picType == PIC8) +- theImage = Pic8ToXImage(epic, (u_int) eWIDE, (u_int) eHIGH, ++ if (picType == PIC8) ++ theImage = Pic8ToXImage(epic, (u_int) eWIDE, (u_int) eHIGH, + cols, rMap, gMap, bMap); + else if (picType == PIC24) + theImage = Pic24ToXImage(egampic, (u_int) eWIDE, (u_int) eHIGH); +@@ -1482,7 +1488,7 @@ + + if (!pic8) return xim; /* shouldn't happen */ + +- if (DEBUG > 1) ++ if (DEBUG > 1) + fprintf(stderr,"Pic8ToXImage(): creating a %dx%d Ximage, %d bits deep\n", + wide, high, dispDEEP); + +@@ -1491,7 +1497,7 @@ + if (dispDEEP == 1) { + byte *imagedata; + +- xim = XCreateImage(theDisp, theVisual, dispDEEP, XYPixmap, 0, NULL, ++ xim = XCreateImage(theDisp, theVisual, dispDEEP, XYPixmap, 0, NULL, + wide, high, 32, 0); + if (!xim) FatalError("couldn't create xim!"); + +@@ -1506,11 +1512,11 @@ + + /* if ncols==0, do a 'black' and 'white' dither */ + if (ncols == 0) { +- /* note that if dispDEEP > 8, dithpic will just have '0' and '1' instead ++ /* note that if dispDEEP > 8, dithpic will just have '0' and '1' instead + of 'black' and 'white' */ + + dithpic = FSDither(pic8, PIC8, (int) wide, (int) high, rmap, gmap, bmap, +- (int) ((dispDEEP <= 8) ? black : 0), ++ (int) ((dispDEEP <= 8) ? black : 0), + (int) ((dispDEEP <= 8) ? white : 1)); + } + +@@ -1521,14 +1527,14 @@ + case 8: { + byte *imagedata, *ip, *pp; + int j, imWIDE, nullCount; +- ++ + nullCount = (4 - (wide % 4)) & 0x03; /* # of padding bytes per line */ + imWIDE = wide + nullCount; +- ++ + /* Now create the image data - pad each scanline as necessary */ + imagedata = (byte *) malloc((size_t) (imWIDE * high)); + if (!imagedata) FatalError("couldn't malloc imagedata"); +- ++ + pp = (dithpic) ? dithpic : pic8; + + for (i=0, ip=imagedata; idata = (char *) imagedata; + +- ++ + pp = (dithpic) ? dithpic : pic8; + + if (xim->bits_per_pixel == 4) { +@@ -1601,20 +1607,20 @@ + else FatalError("This display's too bizarre. Can't create XImage."); + } + break; +- ++ + + /*********************************/ +- ++ + case 2: { /* by M.Kossa@frec.bull.fr (Marc Kossa) */ + /* MSBFirst mods added by dale@ntg.com (Dale Luck) */ +- /* additional fixes by evol@infko.uni-koblenz.de ++ /* additional fixes by evol@infko.uni-koblenz.de + (Randolf Werner) for NeXT 2bit grayscale with MouseX */ + + byte *imagedata, *ip, *pp; + byte *lip; + int bperline, half, j; + +- xim = XCreateImage(theDisp, theVisual, dispDEEP, ZPixmap, 0, NULL, ++ xim = XCreateImage(theDisp, theVisual, dispDEEP, ZPixmap, 0, NULL, + wide, high, 8, 0); + if (!xim) FatalError("couldn't create xim!"); + +@@ -1674,11 +1680,11 @@ + *ip = (dithpic) ? *pp : (byte) xcolors[*pp]; + } + } +- ++ + else FatalError("This display's too bizarre. Can't create XImage."); + } + break; +- ++ + + /*********************************/ + +@@ -1686,8 +1692,8 @@ + case 6: { + byte *imagedata, *ip, *pp; + int bperline; +- +- xim = XCreateImage(theDisp, theVisual, dispDEEP, ZPixmap, 0, NULL, ++ ++ xim = XCreateImage(theDisp, theVisual, dispDEEP, ZPixmap, 0, NULL, + wide, high, 8, 0); + if (!xim) FatalError("couldn't create xim!"); + +@@ -1707,17 +1713,16 @@ + } + } + break; +- ++ + + /*********************************/ + + case 12: + case 15: + case 16: { +- unsigned short *imagedata, *ip; +- byte *pp; ++ byte *imagedata, *ip, *pp; + +- imagedata = (unsigned short *) malloc((size_t) (2*wide*high)); ++ imagedata = (byte *) malloc((size_t) (2*wide*high)); + if (!imagedata) FatalError("couldn't malloc imagedata"); + + xim = XCreateImage(theDisp,theVisual,dispDEEP,ZPixmap,0, +@@ -1736,10 +1741,12 @@ + if (xim->byte_order == MSBFirst) { + for (i=wide*high, ip=imagedata; i>0; i--,pp++) { + if (((i+1)&0x1ffff) == 0) WaitCursor(); +- if (dithpic) { +- *ip++ = ((*pp) ? white : black) & 0xffff; +- } +- else *ip++ = xcolors[*pp] & 0xffff; ++ ++ if (dithpic) xcol = ((*pp) ? white : black) & 0xffff; ++ else xcol = xcolors[*pp] & 0xffff; ++ ++ *ip++ = (xcol>>8) & 0xff; ++ *ip++ = (xcol) & 0xff; + } + } + else { /* LSBFirst */ +@@ -1749,14 +1756,14 @@ + if (dithpic) xcol = ((*pp) ? white : black) & 0xffff; + else xcol = xcolors[*pp]; + +- /* WAS *ip++ = ((xcol>>8) & 0xff) | ((xcol&0xff) << 8); */ +- *ip++ = (unsigned short) (xcol); ++ *ip++ = (xcol) & 0xff; ++ *ip++ = (xcol>>8) & 0xff; + } + } + } + break; + +- ++ + /*********************************/ + + case 24: +@@ -1766,7 +1773,7 @@ + + imagedata = (byte *) malloc((size_t) (4*wide*high)); + if (!imagedata) FatalError("couldn't malloc imagedata"); +- ++ + xim = XCreateImage(theDisp,theVisual,dispDEEP,ZPixmap,0, + (char *) imagedata, wide, high, 32, 0); + if (!xim) FatalError("couldn't create xim!"); +@@ -1774,7 +1781,7 @@ + do32 = (xim->bits_per_pixel == 32); + + pp = (dithpic) ? dithpic : pic8; +- ++ + if (xim->byte_order == MSBFirst) { + for (i=0, ip=imagedata; i> rshift; +- ++ + if (gshift<0) g = g << (-gshift); + else g = g >> gshift; + +@@ -2019,17 +2026,17 @@ + bwdith = 0; + + if (ncols == 0 && dispDEEP != 1) { /* do 'black' and 'white' dither */ +- /* note that if dispDEEP > 8, pic8 will just have '0' and '1' instead ++ /* note that if dispDEEP > 8, pic8 will just have '0' and '1' instead + of 'black' and 'white' */ + +- pic8 = FSDither(pic24, PIC24, (int) wide, (int) high, NULL, NULL, NULL, +- (int) ((dispDEEP <= 8) ? black : 0), ++ pic8 = FSDither(pic24, PIC24, (int) wide, (int) high, NULL, NULL, NULL, ++ (int) ((dispDEEP <= 8) ? black : 0), + (int) ((dispDEEP <= 8) ? white : 1)); + bwdith = 1; + } + + else { /* do color dither using stdcmap */ +- pic8 = Do332ColorDither(pic24, NULL, (int) wide, (int) high, ++ pic8 = Do332ColorDither(pic24, NULL, (int) wide, (int) high, + NULL, NULL, NULL, + stdrdisp, stdgdisp, stdbdisp, 256); + } +@@ -2046,14 +2053,14 @@ + case 8: { + byte *imagedata, *ip, *pp; + int j, imWIDE, nullCount; +- ++ + nullCount = (4 - (wide % 4)) & 0x03; /* # of padding bytes per line */ + imWIDE = wide + nullCount; +- ++ + /* Now create the image data - pad each scanline as necessary */ + imagedata = (byte *) malloc((size_t) (imWIDE * high)); + if (!imagedata) FatalError("couldn't malloc imagedata"); +- ++ + for (i=0, pp=pic8, ip=imagedata; ibits_per_pixel != 8) + FatalError("This display's too bizarre. Can't create XImage."); + +@@ -2238,7 +2245,7 @@ + } + break; + +- ++ + /*********************************/ + + case 15: +@@ -2282,7 +2289,7 @@ + } + break; + +- ++ + /*********************************/ + + /* this wouldn't seem likely to happen, but what the heck... */ +@@ -2295,7 +2302,7 @@ + + imagedata = (byte *) malloc((size_t) (4*wide*high)); + if (!imagedata) FatalError("couldn't malloc imagedata"); +- ++ + xim = XCreateImage(theDisp,theVisual,dispDEEP,ZPixmap,0, + (char *) imagedata, wide, high, 32, 0); + if (!xim) FatalError("couldn't create xim!"); +@@ -2303,7 +2310,7 @@ + bperpix = xim->bits_per_pixel; + + pp = pic8; +- ++ + if (xim->byte_order == MSBFirst) { + for (i=wide*high, ip=imagedata; i>0; i--,pp++) { + if (((i+1)&0x1ffff) == 0) WaitCursor(); +@@ -2327,7 +2334,7 @@ + if (bperpix == 32) *ip++ = 0; + } + } +- } ++ } + break; + + } /* end of the switch */ +@@ -2346,7 +2353,7 @@ + int mode; + { + /* move checkmark */ +- conv24MB.flags[CONV24_8BIT] = (mode==PIC8); ++ conv24MB.flags[CONV24_8BIT] = (mode==PIC8); + conv24MB.flags[CONV24_24BIT] = (mode==PIC24); + + if (mode == PIC24) { +@@ -2383,15 +2390,13 @@ + void Change824Mode(mode) + int mode; + { +- static int oldcmapmode = -1; +- + if (mode == picType) return; /* same mode, do nothing */ + + Set824Menus(mode); + + if (!pic) { /* done all we wanna do when there's no pic */ + picType = mode; +- return; ++ return; + } + + /* should probably actually *do* something involving colors, regenrating +@@ -2474,7 +2479,7 @@ + int ptype, w,h, sx,sy,sw,sh; + { + /* mallocs and returns the selected subimage (sx,sy,sw,sh) of pic. +- selection is guaranteed to be within pic boundaries. ++ selection is guaranteed to be within pic boundaries. + NEVER RETURNS NULL */ + + byte *rpic, *sp, *dp; +@@ -2520,7 +2525,6 @@ + installs the new pic and all that... Returns '0' on failure */ + + int rv; +- char loadName[256]; + + if (padPic) free(padPic); + if (holdcomment) free(holdcomment); +@@ -2530,8 +2534,8 @@ + + rv = 1; + +- if ((mode != PAD_LOAD) && (wide == pWIDE && high == pHIGH && opaque==100)) { +- ErrPopUp("Padding to same size as pic while fully opaque has no effect.", ++ if ((mode != PAD_LOAD) && (wide == cWIDE && high == cHIGH && opaque==100)) { ++ ErrPopUp("Padding to same size as pic while fully opaque has no effect.", + "\nI see"); + return 0; + } +@@ -2539,8 +2543,8 @@ + WaitCursor(); + + if (mode == PAD_SOLID) rv = doPadSolid(str, wide, high, opaque,omode); +- else if (mode == PAD_BGGEN) rv = doPadBggen(str, wide, high, opaque,omode); +- else if (mode == PAD_LOAD) rv = doPadLoad (str, wide, high, opaque,omode); ++ else if (mode == PAD_BGGEN) rv = doPadBggen(str, wide, high, opaque,omode); ++ else if (mode == PAD_LOAD) rv = doPadLoad (str, wide, high, opaque,omode); + + SetCursors(-1); + +@@ -2556,7 +2560,7 @@ + + return 1; + } +- ++ + + /***********************************/ + int LoadPad(pinfo, fname) +@@ -2645,7 +2649,7 @@ + return 0; + } + } +- ++ + + + pic24 = (byte *) malloc(wide * high * 3 * sizeof(byte)); +@@ -2656,7 +2660,7 @@ + return 0; + } + +- ++ + /* fill pic24 with solidRGB */ + for (i=0,pp=pic24; i>16) & 0xff; +@@ -2697,7 +2701,11 @@ + #else + strcpy(fname, "Sys$Disk:[]xvuXXXXXX"); + #endif ++#ifdef USE_MKSTEMP ++ close(mkstemp(fname)); ++#else + mktemp(fname); ++#endif + + /* run bggen to generate the background */ + sprintf(syscmd, "bggen -g %dx%d %s > %s", wide, high, str, fname); +@@ -2713,7 +2721,7 @@ + ErrPopUp(errstr, "\nDoh!"); + return 0; + } +- ++ + + /* read the file that's been created */ + if (!ReadImageFile1(fname, &pinfo)) { +@@ -2791,7 +2799,7 @@ + int wide, high, opaque,omode; + { + /* copies 'pic' onto the given 24-bit background image, converts back to +- 8-bit (if necessary), and loads up pad* variables. ++ 8-bit (if necessary), and loads up pad* variables. + frees pic24 if necessary */ + + byte *pp, *p24; +@@ -2806,30 +2814,30 @@ + + /* copy 'pic' centered onto pic24. */ + +- sx = (wide - pWIDE) / 2; +- sy = (high - pHIGH) / 2; +- +- for (py = 0; py= 0 && p24y < high) { +- for (px=0; px= 0 && p24x < wide) { + p24 = pic24 + (p24y*wide + p24x)*3; +- +- ++ ++ + if (picType == PIC24) { /* src is PIC24 */ +- pp = pic + (py * pWIDE + px) *3; ++ pp = cpic + (py * cWIDE + px) *3; + r = pp[0]; g = pp[1]; b = pp[2]; + } + else { /* src is PIC8 */ +- pp = pic + (py*pWIDE + px); ++ pp = cpic + (py*cWIDE + px); + r = rMap[*pp]; g = gMap[*pp]; b = bMap[*pp]; + } +- ++ + if (omode == PAD_ORGB) { + rval = (r * fg) / 100 + ((int) p24[0] * bg) / 100; + gval = (g * fg) / 100 + ((int) p24[1] * bg) / 100; +@@ -2845,7 +2853,7 @@ + + if (omode == PAD_OINT) { + h = fh; +- s = fs; ++ s = fs; + /* v = (fv * fg) / 100.0 + (bv * bg) / 100.0; */ + v = (fv * bv * bw) + (fv * fw); + } +@@ -2855,18 +2863,18 @@ + h = fh; + /* s = (fs * fg) / 100.0 + (bs * bg) / 100.0; */ + s = (fs * bs * bw) + (fs * fw); +- v = fv; ++ v = fv; + } + else if (omode == PAD_OHUE) { /* the hard one! */ +- int fdeg,bdeg,len1,len2; +- ++ int fdeg,bdeg; ++ + fdeg = (fh<0) ? -1 : (int) floor(fh + 0.5); + bdeg = (bh<0) ? -1 : (int) floor(bh + 0.5); + + if (fdeg>=0 && bdeg>=0) { /* both are colors */ + /* convert H,S onto x,y coordinates on the colorwheel for + constant V */ +- ++ + double fx,fy, bx,by, ox,oy; + + if (fg == 100 || bg == 100) { /* E-Z special case */ +@@ -2874,17 +2882,17 @@ + else { h = bh; s = fs; v=fv; } + } + else { /* general case */ +- ++ + fh *= (3.14159 / 180.0); /* -> radians */ + bh *= (3.14159 / 180.0); +- ++ + fx = fs * cos(fh); fy = fs * sin(fh); + bx = bs * cos(bh); by = bs * sin(bh); +- ++ + /* compute pt. on line between fx,fy and bx,by */ + ox = (fx * (fg/100.0)) + (bx * (bg/100.0)); + oy = (fy * (fg/100.0)) + (by * (bg/100.0)); +- ++ + /* convert ox,oy back into hue,sat */ + s = sqrt((ox * ox) + (oy * oy)); + if (ox == 0.0) { +@@ -2897,7 +2905,7 @@ + while (h<0.0) h += 360.0; + while (h>=360.0) h -= 360.0; + } +- ++ + v = fv; + } + } +@@ -2924,7 +2932,7 @@ + v = (fv * bv * bw) + (fv * fw); + hsv2rgb(h,s,v, &rval,&gval,&bval); + } +- ++ + RANGE(rval, 0, 255); RANGE(gval, 0, 255); RANGE(bval, 0, 255); + *p24++ = rval; *p24++ = gval; *p24++ = bval; + } +@@ -2958,12 +2966,15 @@ + + + /*******************************/ +-static int ReadImageFile1(name, pinfo) ++static int ReadImageFile1(name, pinfo) + char *name; + PICINFO *pinfo; + { + int i, ftype; +- char basefname[128], uncompname[128], errstr[256], *uncName, *readname; ++ char uncompname[128], errstr[256], *uncName, *readname; ++#ifdef VMS ++ char basefname[128]; ++#endif + + ftype = ReadFileType(name); + +@@ -2976,7 +2987,7 @@ + #else + uncName = name; + #endif +- ++ + if (UncompressFile(uncName, uncompname)) { + ftype = ReadFileType(uncompname); + readname = uncompname; +@@ -3004,7 +3015,7 @@ + KillPageFiles(pinfo->pagebname, pinfo->numpages); + + if (!i || (i && (pinfo->w<=0 || pinfo->h<=0))) { +- if (i) { ++ if (i) { + if (pinfo->pic) free(pinfo->pic); + if (pinfo->comment) free(pinfo->comment); + } +@@ -3021,6 +3032,6 @@ + + + +- ++ + + +diff -ruN xv-3.10a/xvinfo.c xv-3.10a-bugfixes/xvinfo.c +--- xv-3.10a/xvinfo.c 1994-12-22 14:34:41.000000000 -0800 ++++ xv-3.10a-bugfixes/xvinfo.c 2004-05-16 18:03:43.000000000 -0700 +@@ -1,4 +1,4 @@ +-/* ++/* + * xvinfo.c - 'Info' box handling functions + * + * callable functions: +@@ -8,7 +8,7 @@ + * maps/unmaps window, etc. + * RedrawInfo(x,y,w,h) - called by 'expose' events + * SetInfoMode(mode) - changes amount of info Info window shows +- * SetISTR(st, fmt, args) - sprintf's into ISTR #st. Redraws it in window ++ * SetISTR(st, fmt, args) - sprintf's into ISTR #st. Redraws it in window + * char *GetISTR(st) - returns pointer to ISTR #st, or NULL if st bogus + */ + +@@ -45,18 +45,18 @@ + void CreateInfo(geom) + char *geom; + { +- infoW = CreateWindow("xv info", "XVinfo", geom, INFOWIDE, INFOHIGH, ++ infoW = CreateWindow("xv info", "XVinfo", geom, INFOWIDE, INFOHIGH, + infofg, infobg, 0); + if (!infoW) FatalError("can't create info window!"); +- +- pennPix = XCreatePixmapFromBitmapData(theDisp, infoW, ++ ++ pennPix = XCreatePixmapFromBitmapData(theDisp, infoW, + (char *) penn_bits, penn_width, penn_height, infofg, infobg, dispDEEP); + + pnetPix = XCreatePixmapFromBitmapData(theDisp,infoW, +- (char *) pennnet_bits, pennnet_width, pennnet_height, ++ (char *) pennnet_bits, pennnet_width, pennnet_height, + infofg, infobg, dispDEEP); + } +- ++ + + /***************************************************/ + void InfoBox(vis) +@@ -64,7 +64,7 @@ + { + if (vis) XMapRaised(theDisp, infoW); + else XUnmapWindow(theDisp, infoW); +- ++ + infoUp = vis; + } + +@@ -74,15 +74,15 @@ + int x,y,w,h; + { + int i; +- ++ + XSetForeground(theDisp, theGC, infofg); + XSetBackground(theDisp, theGC, infobg); + + /* draw the two icons */ + XCopyArea(theDisp, pennPix, infoW, theGC, 0, 0, penn_width, penn_height, + 36 - penn_width/2, 36 - penn_height/2); +- XCopyArea(theDisp, pnetPix, infoW, theGC, 0, 0, pennnet_width, +- pennnet_height, INFOWIDE - 36 - pennnet_width/2, ++ XCopyArea(theDisp, pnetPix, infoW, theGC, 0, 0, pennnet_width, ++ pennnet_height, INFOWIDE - 36 - pennnet_width/2, + 36 - pennnet_height/2); + + /* draw the credits */ +@@ -90,7 +90,7 @@ + CenterString(infoW, INFOWIDE/2, 36-LINEHIGH, str); + CenterString(infoW, INFOWIDE/2, 36, + "by John Bradley (bradley@dccs.upenn.edu)"); +- CenterString(infoW, INFOWIDE/2, 36+LINEHIGH, ++ CenterString(infoW, INFOWIDE/2, 36+LINEHIGH, + "Copyright 1994, John Bradley - All Rights Reserved"); + + +@@ -139,8 +139,8 @@ + + if (infoMode == INF_NONE || infoMode == INF_STR) return; + if (infoMode == INF_PART && fnum>=3) return; +- +- XDrawString(theDisp, infoW, theGC, 10, TOPBASE + fnum*LINEHIGH, ++ ++ XDrawString(theDisp, infoW, theGC, 10, TOPBASE + fnum*LINEHIGH, + fname[fnum], (int) strlen(fname[fnum])); + } + +@@ -150,7 +150,7 @@ + int st; + { + /* erase area of string, and draw it with new contents */ +- ++ + if (infoMode == INF_NONE) return; + if (infoMode == INF_STR && st > ISTR_WARNING) return; + if (infoMode == INF_PART && st > ISTR_RES) return; +@@ -170,12 +170,12 @@ + } + else { + XSetForeground(theDisp, theGC, infobg); +- XFillRectangle(theDisp, infoW, theGC, +- STLEFT, TOPBASE - ASCENT + (st-ISTR_FILENAME)*LINEHIGH, ++ XFillRectangle(theDisp, infoW, theGC, ++ STLEFT, TOPBASE - ASCENT + (st-ISTR_FILENAME)*LINEHIGH, + (u_int) INFOWIDE-STLEFT, (u_int) LINEHIGH); + XSetForeground(theDisp, theGC, infofg); + XDrawString(theDisp, infoW, theGC, STLEFT, +- TOPBASE + (st-ISTR_FILENAME)*LINEHIGH, istrs[st], ++ TOPBASE + (st-ISTR_FILENAME)*LINEHIGH, istrs[st], + (int) strlen(istrs[st])); + } + } +@@ -187,21 +187,21 @@ + int mode; + { + int y1, y2; +- ++ + infoMode = mode; + if (infoUp) { /* only do this if window is mapped */ + y1 = TOPBASE - ASCENT; + y2 = INFOHIGH-43; +- ++ + XSetForeground(theDisp, theGC, infobg); +- +- XFillRectangle(theDisp,infoW,theGC,0,y1, ++ ++ XFillRectangle(theDisp,infoW,theGC,0,y1, + (u_int) INFOWIDE, (u_int) y2-y1); +- XFillRectangle(theDisp,infoW,theGC,0,INFOHIGH-39, ++ XFillRectangle(theDisp,infoW,theGC,0,INFOHIGH-39, + (u_int) INFOWIDE, (u_int) 17); +- XFillRectangle(theDisp,infoW,theGC,0,INFOHIGH-19, ++ XFillRectangle(theDisp,infoW,theGC,0,INFOHIGH-19, + (u_int) INFOWIDE, (u_int) 17); +- ++ + drawStrings(); + } + } +@@ -237,9 +237,9 @@ + else istrs[stnum][0] = '\0'; + } + va_end(args); +- ++ + if (stnum == ISTR_COLOR) { +- sprintf(istrs[ISTR_INFO], "%s %s %s", formatStr, ++ sprintf(istrs[ISTR_INFO], "%s %s %s", formatStr, + (picType==PIC8) ? "8-bit mode." : "24-bit mode.", + istrs[ISTR_COLOR]); + } +@@ -250,19 +250,19 @@ + XFlush(theDisp); + } + +- if (ctrlUp && (stnum == ISTR_INFO || stnum == ISTR_WARNING || ++ if (ctrlUp && (stnum == ISTR_INFO || stnum == ISTR_WARNING || + stnum == ISTR_COLOR)) { + DrawCtrlStr(); + XFlush(theDisp); + } + +- if (anyBrowUp && (stnum == ISTR_WARNING || stnum == ISTR_INFO) ++ if (anyBrowUp && (stnum == ISTR_WARNING || stnum == ISTR_INFO) + && strlen(istrs[stnum])) { + SetBrowStr(istrs[stnum]); + XFlush(theDisp); + } + +- if (stnum == ISTR_WARNING && !ctrlUp && !infoUp && !anyBrowUp && ++ if (stnum == ISTR_WARNING && !ctrlUp && !infoUp && !anyBrowUp && + strlen(istrs[stnum])) { + OpenAlert(istrs[stnum]); + sleep(3); +diff -ruN xv-3.10a/xviris.c xv-3.10a-bugfixes/xviris.c +--- xv-3.10a/xviris.c 1994-12-22 14:34:47.000000000 -0800 ++++ xv-3.10a-bugfixes/xviris.c 2005-04-03 12:08:03.000000000 -0700 +@@ -14,7 +14,7 @@ + * + * This code should work on machines with any byte order. + * +- * Could someone make this run real fast using multiple processors ++ * Could someone make this run real fast using multiple processors + * or how about using memory mapped files to speed it up? + * + * Paul Haeberli - 1991 +@@ -44,7 +44,7 @@ + u_short zsize; + u_long min; + u_long max; +- u_long wastebytes; ++ u_long wastebytes; + char name[80]; + u_long colormap; + +@@ -112,7 +112,8 @@ + IMAGE img; + byte *rawdata, *rptr; + byte *pic824, *bptr; +- int trunc, i, j; ++ int trunc, i, npixels, bufsize; ++ u_short ii, jj; + long filesize; + + trunc = 0; +@@ -133,11 +134,11 @@ + img.imagic = getshort(fp); + img.type = getshort(fp); + img.dim = getshort(fp); +- img.xsize = getshort(fp); ++ img.xsize = getshort(fp); /* u_short */ + img.ysize = getshort(fp); + img.zsize = getshort(fp); + +- if (FERROR(fp)) { ++ if (FERROR(fp) || img.xsize == 0 || img.ysize == 0 || img.zsize == 0) { + fclose(fp); + return irisError(bname, "error in header info"); + } +@@ -148,7 +149,7 @@ + } + + rawdata = getimagedata(fp, &img); +- if (!rawdata) { ++ if (!rawdata) { + fclose(fp); + if (loaderr) irisError(bname, loaderr); + return 0; +@@ -162,18 +163,22 @@ + /* got the raw image data. Convert to an XV image (1,3 bytes / pix) */ + + ++ npixels = img.xsize * img.ysize; /* 65535*65535 = (2^32 - 131071) max */ ++ if (npixels/img.xsize != img.ysize) ++ return irisError(bname, "IRIS image dimensions out of range"); ++ + if (img.zsize < 3) { /* grayscale */ +- pic824 = (byte *) malloc((size_t) img.xsize * img.ysize); ++ pic824 = (byte *) malloc((size_t) npixels); + if (!pic824) FatalError("couldn't malloc pic824 in LoadIRIS()"); + + /* copy plane 3 from rawdata into pic824, inverting pic vertically */ +- for (i=0, bptr=pic824; i<(int) img.ysize; i++) { +- rptr = rawdata + 3 + ((img.ysize - 1) - i) * (img.xsize * 4); +- for (j=0; j<(int) img.xsize; j++, bptr++, rptr+=4) *bptr = *rptr; ++ for (ii=0, bptr=pic824; iir[i] = pinfo->g[i] = pinfo->b[i] = i; + + pinfo->pic = pic824; +@@ -188,13 +193,17 @@ + } + + else { /* truecolor */ +- pic824 = (byte *) malloc((size_t) img.xsize * img.ysize * 3); ++ bufsize = 3 * npixels; ++ if (npixels/img.xsize != img.ysize || bufsize/3 != npixels) { ++ return irisError(bname, "IRIS image dimensions out of range"); ++ } ++ pic824 = (byte *) malloc((size_t) bufsize); + if (!pic824) FatalError("couldn't malloc pic824 in LoadIRIS()"); +- ++ + /* copy plane 3 from rawdata into pic824, inverting pic vertically */ +- for (i=0, bptr=pic824; i<(int) img.ysize; i++) { +- rptr = rawdata + ((img.ysize - 1) - i) * (img.xsize * 4); +- for (j=0; j<(int) img.xsize; j++, rptr+=4) { ++ for (ii=0, bptr=pic824; iicomment = (char *) NULL; + + return 1; +-} ++} + + + /*******************************************/ +@@ -237,15 +246,15 @@ + FILE *fp; + IMAGE *img; + { +- /* read in a B/W RGB or RGBA iris image file and return a ++ /* read in a B/W RGB or RGBA iris image file and return a + pointer to an array of 4-byte pixels, arranged ABGR, NULL on error */ + + byte *base, *lptr; + byte *verdat; +- int y, z, pos, len, tablen; ++ int y, z, tablen; + int xsize, ysize, zsize; + int bpp, rle, cur, badorder; +- int rlebuflen; ++ int rlebuflen, npixels, bufsize; + + + rle = ISRLE(img->type); +@@ -257,21 +266,33 @@ + return (byte *) NULL; + } + +- xsize = img->xsize; ++ xsize = img->xsize; /* all three are > 0 (checked by caller), <= 65535 */ + ysize = img->ysize; + zsize = img->zsize; ++ npixels = xsize * ysize; /* 65535*65535 = (2^32 - 131071) max */ ++ if (npixels/xsize != ysize) { ++ loaderr = "IRIS image dimensions out of range"; ++ return (byte *) NULL; ++ } + + if (rle) { + byte *rledat; + u_long *starttab, *lengthtab; + +- rlebuflen = 2 * xsize + 10; ++ rlebuflen = 2 * xsize + 10; /* 10 <= rlebuflen <= 131080 */ + tablen = ysize * zsize; +- starttab = (u_long *) malloc((size_t) tablen * sizeof(long)); +- lengthtab = (u_long *) malloc((size_t) tablen * sizeof(long)); ++ bufsize = tablen * sizeof(long); ++ ++ if (tablen/ysize != zsize || bufsize/tablen != sizeof(long)) { ++ loaderr = "IRIS image dimensions out of range"; ++ return (byte *)NULL; ++ } ++ ++ starttab = (u_long *) malloc((size_t) bufsize); ++ lengthtab = (u_long *) malloc((size_t) bufsize); + rledat = (byte *) malloc((size_t) rlebuflen); + +- if (!starttab || !lengthtab || !rledat) ++ if (!starttab || !lengthtab || !rledat) + FatalError("out of memory in LoadIRIS()"); + + fseek(fp, 512L, 0); +@@ -298,7 +319,13 @@ + fseek(fp, (long) (512 + 2*tablen*4), 0); + cur = 512 + 2*tablen*4; + +- base = (byte *) malloc((size_t) (xsize*ysize+TAGLEN) * 4); ++ bufsize = 4 * (npixels+TAGLEN); ++ if (bufsize/4 != (npixels+TAGLEN)) { ++ loaderr = "Bogus IRIS File!"; ++ free(starttab); free(lengthtab); free(rledat); ++ return (byte *)NULL; ++ } ++ base = (byte *) malloc((size_t) bufsize); + if (!base) FatalError("out of memory in LoadIRIS()"); + + addimgtag(base,xsize,ysize); +@@ -349,12 +376,17 @@ + } /* end of RLE case */ + + else { /* not RLE */ ++ bufsize = 4 * (npixels+TAGLEN); ++ if (bufsize/4 != (npixels+TAGLEN)) { ++ loaderr = "Bogus IRIS File!"; ++ return (byte *)NULL; ++ } ++ base = (byte *) malloc((size_t) bufsize); + verdat = (byte *) malloc((size_t) xsize); +- base = (byte *) malloc((size_t) (xsize*ysize+TAGLEN) * 4); + if (!base || !verdat) FatalError("out of memory in LoadIRIS()"); + + addimgtag(base,xsize,ysize); +- ++ + fseek(fp,512L,0); + + for (z=0; z 65535 || h > 65535) { ++ SetISTR(ISTR_WARNING, "image dimensions too large for IRIS format"); ++ return -1; ++ } ++ + /* load up header */ + img.imagic = IMAGIC; + img.type = ITYPE_RLE | (1 & BPPMASK); /* RLE, 1 byteperpix */ + img.dim = (colorstyle == F_FULLCOLOR) ? 3 : 2; +- img.xsize = w; +- img.ysize = h; ++ img.xsize = (u_short)w; ++ img.ysize = (u_short)h; + img.zsize = zsize = (colorstyle == F_FULLCOLOR) ? 3 : 1; + img.min = 0; + img.max = 255; +@@ -537,22 +574,33 @@ + if (ferror(fp)) { fclose(fp); return -1; } + + /* allocate RLE compression tables & stuff */ +- rlebuflen = 2*w + 10; +- tablen = h * zsize; ++ rlebuflen = 2*w + 10; /* 10 <= rlebuflen <= 131080 */ ++ tablen = h * zsize; /* 1 <= tablen <= 196605 */ + ++ /* no overflow is possible with any of these (given check on w,h above): */ + starttab = (u_long *) malloc((size_t) tablen * sizeof(long)); + lengthtab = (u_long *) malloc((size_t) tablen * sizeof(long)); + rlebuf = (byte *) malloc((size_t) rlebuflen); +- lumbuf = (byte *) malloc((size_t) w * 4); ++ lumbuf = (byte *) malloc((size_t) w * 4); /* 262140 max */ + +- if (!starttab || !lengthtab || !rlebuf || !lumbuf) ++ if (!starttab || !lengthtab || !rlebuf || !lumbuf) + FatalError("out of memory in WriteIRIS()"); + + pos = 512 + 2 * (tablen * 4); + fseek(fp, (long) pos, 0); + + /* convert image into 4-byte per pix image that the compress routines want */ +- longpic = (byte *) malloc((size_t) w * h * 4); ++ npixels = w * h; ++ bufsize = 4 * npixels; ++ if (npixels/w != h || bufsize/4 != npixels) { ++ SetISTR(ISTR_WARNING, "can't malloc longpic in WriteIRIS()"); ++ free(starttab); ++ free(lengthtab); ++ free(rlebuf); ++ free(lumbuf); ++ return -1; ++ } ++ longpic = (byte *) malloc((size_t) bufsize); + if (!longpic) FatalError("couldn't malloc longpic in WriteIRIS()"); + + for (i=0, pptr=pic; i rlebuflen) { ++ /* this condition shouldn't kill XV, just abort writing the image */ + FatalError("WriteIRIS: rlebuf is too small"); + exit(1); + } +@@ -618,10 +667,10 @@ + + return 0; + } +- ++ + + /*************************************/ +-static void lumrow(rgbptr, lumptr, n) ++static void lumrow(rgbptr, lumptr, n) + byte *rgbptr, *lumptr; + int n; + { +@@ -640,7 +689,7 @@ + int z, cnt; + { + byte *iptr, *ibufend, *sptr, *optr; +- short todo, cc; ++ short todo, cc; + long count; + + lbuf += z; +@@ -685,7 +734,7 @@ + cc = *iptr; + iptr += 4; + while ((iptr126 ? 126:count; +@@ -694,7 +743,7 @@ + *optr++ = cc; + } + } +- ++ + *optr++ = 0; + return (optr - rlebuf); + } +diff -ruN xv-3.10a/xvjpeg.c xv-3.10a-bugfixes/xvjpeg.c +--- xv-3.10a/xvjpeg.c 1995-01-05 00:17:13.000000000 -0800 ++++ xv-3.10a-bugfixes/xvjpeg.c 2005-03-27 16:23:06.000000000 -0800 +@@ -35,7 +35,7 @@ + This is currently hardcoded to be twice the size of a schnauzer icon, as + the schnauzer's the only thing that does a quick load... */ + +-#define QUICKWIDE 160 ++#define QUICKWIDE 160 + #define QUICKHIGH 120 + + struct my_error_mgr { +@@ -80,28 +80,26 @@ + /***************************************************/ + void CreateJPEGW() + { +- XClassHint classh; +- + jpegW = CreateWindow("xv jpeg","XVjpeg",NULL,JWIDE,JHIGH,infofg,infobg,0); + if (!jpegW) FatalError("can't create jpeg window!"); +- ++ + XSelectInput(theDisp, jpegW, ExposureMask | ButtonPressMask | KeyPressMask); +- +- DCreate(&qDial, jpegW, 10, 10, 80, 100, 1, 100, 75, 5, ++ ++ DCreate(&qDial, jpegW, 10, 10, 80, 100, 1, 100, 75, 5, + infofg, infobg, hicol, locol, "Quality", "%"); +- +- DCreate(&smDial, jpegW, 120, 10, 80, 100, 0, 100, 0, 5, ++ ++ DCreate(&smDial, jpegW, 120, 10, 80, 100, 0, 100, 0, 5, + infofg, infobg, hicol, locol, "Smoothing", "%"); +- +- BTCreate(&jbut[J_BOK], jpegW, JWIDE-180-1, JHIGH-10-BUTTH-1, 80, BUTTH, ++ ++ BTCreate(&jbut[J_BOK], jpegW, JWIDE-180-1, JHIGH-10-BUTTH-1, 80, BUTTH, + "Ok", infofg, infobg, hicol, locol); +- +- BTCreate(&jbut[J_BCANC], jpegW, JWIDE-90-1, JHIGH-10-BUTTH-1, 80, BUTTH, ++ ++ BTCreate(&jbut[J_BCANC], jpegW, JWIDE-90-1, JHIGH-10-BUTTH-1, 80, BUTTH, + "Cancel", infofg, infobg, hicol, locol); +- ++ + XMapSubwindows(theDisp, jpegW); + } +- ++ + + /***************************************************/ + void JPEGDialog(vis) +@@ -122,32 +120,32 @@ + { + /* check event to see if it's for one of our subwindows. If it is, + deal accordingly, and return '1'. Otherwise, return '0' */ +- ++ + int rv; + rv = 1; +- ++ + if (!jpegUp) return 0; +- ++ + if (xev->type == Expose) { + int x,y,w,h; + XExposeEvent *e = (XExposeEvent *) xev; + x = e->x; y = e->y; w = e->width; h = e->height; +- ++ + /* throw away excess expose events for 'dumb' windows */ +- if (e->count > 0 && (e->window == qDial.win || ++ if (e->count > 0 && (e->window == qDial.win || + e->window == smDial.win)) {} +- ++ + else if (e->window == jpegW) drawJD(x, y, w, h); + else if (e->window == qDial.win) DRedraw(&qDial); + else if (e->window == smDial.win) DRedraw(&smDial); + else rv = 0; + } +- ++ + else if (xev->type == ButtonPress) { + XButtonEvent *e = (XButtonEvent *) xev; + int x,y; + x = e->x; y = e->y; +- ++ + if (e->button == Button1) { + if (e->window == jpegW) clickJD(x,y); + else if (e->window == qDial.win) DTrack(&qDial, x,y); +@@ -156,18 +154,18 @@ + } /* button1 */ + else rv = 0; + } /* button press */ +- +- ++ ++ + else if (xev->type == KeyPress) { + XKeyEvent *e = (XKeyEvent *) xev; + char buf[128]; KeySym ks; + int stlen; +- ++ + stlen = XLookupString(e,buf,128,&ks,(XComposeStatus *) NULL); + buf[stlen] = '\0'; +- ++ + RemapKeyCheck(ks, buf, &stlen); +- ++ + if (e->window == jpegW) { + if (stlen) { + if (buf[0] == '\r' || buf[0] == '\n') { /* enter */ +@@ -181,12 +179,12 @@ + else rv = 0; + } + else rv = 0; +- ++ + if (rv==0 && (xev->type == ButtonPress || xev->type == KeyPress)) { + XBell(theDisp, 50); + rv = 1; /* eat it */ + } +- ++ + return rv; + } + +@@ -211,17 +209,17 @@ + char *title3 = "quality = bigger file."; + char *title4 = "Use smoothing if saving"; + char *title5 = "an 8-bit image (eg, a GIF)."; +- ++ + char *qtitle1 = "Default = 75."; + char *qtitle2 = "Useful range"; + char *qtitle3 = "is 5-95."; + char *smtitle1 = "Default = 0 (none)."; + char *smtitle2 = "10-30 is enough"; + char *smtitle3 = "for typical GIFs."; +- ++ + int i; + XRectangle xr; +- ++ + xr.x = x; xr.y = y; xr.width = w; xr.height = h; + XSetClipRectangles(theDisp, theGC, 0,0, &xr, 1, Unsorted); + +@@ -240,11 +238,11 @@ + DrawString(jpegW, 15, 10+100+10+ASCENT, qtitle1); + DrawString(jpegW, 15, 10+100+10+ASCENT+LINEHIGH, qtitle2); + DrawString(jpegW, 15, 10+100+10+ASCENT+LINEHIGH*2, qtitle3); +- ++ + DrawString(jpegW, 115, 10+100+10+ASCENT+LINEHIGH*0, smtitle1); + DrawString(jpegW, 115, 10+100+10+ASCENT+LINEHIGH*1, smtitle2); + DrawString(jpegW, 115, 10+100+10+ASCENT+LINEHIGH*2, smtitle3); +- ++ + XSetClipMask(theDisp, theGC, None); + } + +@@ -255,14 +253,14 @@ + { + int i; + BUTT *bp; +- ++ + /* check BUTTs */ +- ++ + for (i=0; ix, bp->y, bp->w, bp->h)) break; + } +- ++ + if (i 0 (above) */ ++ if (count/3 < npixels) { ++ SetISTR(ISTR_WARNING, "%s: image dimensions too large (%dx%d)", ++ fbasename, w, h); ++ return; ++ } ++ ++ image24 = (byte *) malloc((size_t) count); + if (!image24) { /* this simply isn't going to work */ + FatalError("writeJPEG: unable to malloc image24\n"); + } + +- for (i=0, ip=image24, ep=inpix; ir[i] = pinfo->g[i] = pinfo->b[i] = i; + } + else { + cinfo.out_color_space = JCS_RGB; + cinfo.quantize_colors = FALSE; /* default: give 24-bit image to XV */ +- ++ + if (!quick && picType==PIC8 && conv24MB.flags[CONV24_LOCK] == 1) { + /* + * we're locked into 8-bit mode: +@@ -563,23 +578,23 @@ + * if CONV24_SLOW, use JPEG's two-pass quantizer + * if CONV24_BEST, or other, ask for 24-bit image and hand it to XV + */ +- ++ + cinfo.desired_number_of_colors = 256; +- ++ + if (conv24 == CONV24_FAST || conv24 == CONV24_SLOW) { + cinfo.quantize_colors = TRUE; + state824=1; /* image was converted from 24 to 8 bits */ +- ++ + cinfo.two_pass_quantize = (conv24 == CONV24_SLOW); + } + } +- ++ + SetISTR(ISTR_INFO,"Loading %dx%d Color JPEG (%ld bytes)...", + w,h,filesize); + } +- ++ + jpeg_calc_output_dimensions(&cinfo); /* note colorspace changes... */ +- ++ + + if (cinfo.output_components != 1 && cinfo.output_components != 3) { + SetISTR(ISTR_WARNING, "%s: can't read %d-plane JPEG file!", +@@ -594,7 +609,18 @@ + bperpix = cinfo.output_components; + pinfo->type = (bperpix == 1) ? PIC8 : PIC24; + +- pic = (byte *) malloc((size_t) (w * h * bperpix)); ++ bperline = w * bperpix; ++ count = h * bperline; ++ if (w <= 0 || h <= 0 || bperline/w < bperpix || count/h < bperline) { ++ SetISTR(ISTR_WARNING, "%s: image dimensions too large (%dx%d)", ++ fbasename, w, h); ++ jpeg_destroy_decompress(&cinfo); ++ fclose(fp); ++ if (comment) free(comment); ++ return 0; ++ } ++ ++ pic = (byte *) malloc((size_t) count); + if (!pic) { + SetISTR(ISTR_WARNING, "%s: can't read JPEG file - out of memory", + fbasename); +@@ -603,15 +629,24 @@ + if (comment) free(comment); + return 0; + } +- ++ + jpeg_start_decompress(&cinfo); + + while (cinfo.output_scanline < cinfo.output_height) { ++ if (cinfo.output_scanline < 0) { /* should never happen, but... */ ++ SetISTR(ISTR_WARNING, "%s: invalid negative scanline (%d)", ++ fbasename, cinfo.output_scanline); ++ jpeg_destroy_decompress(&cinfo); ++ fclose(fp); ++ if (comment) free(comment); ++ free(pic); ++ return 0; ++ } + rowptr[0] = (JSAMPROW) &pic[cinfo.output_scanline * w * bperpix]; + (void) jpeg_read_scanlines(&cinfo, rowptr, (JDIMENSION) 1); + } + +- ++ + + /* return 'PICINFO' structure to XV */ + +@@ -623,7 +658,7 @@ + if (cinfo.out_color_space == JCS_GRAYSCALE) { + sprintf(pinfo->fullInfo, "Greyscale JPEG. (%ld bytes)", filesize); + pinfo->colType = F_GREYSCALE; +- ++ + for (i=0; i<256; i++) pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i; + } + else { +@@ -638,10 +673,10 @@ + } + } + } +- +- sprintf(pinfo->shrtInfo, "%dx%d %s JPEG. ", w,h, ++ ++ sprintf(pinfo->shrtInfo, "%dx%d %s JPEG. ", w,h, + (cinfo.out_color_space == JCS_GRAYSCALE) ? "Greyscale " : "Color "); +- ++ + pinfo->comment = comment; + + jpeg_finish_decompress(&cinfo); +@@ -651,8 +686,8 @@ + comment = (char *) NULL; + return 1; + } +- +- ++ ++ + + + /**************************************************/ +@@ -660,7 +695,7 @@ + j_decompress_ptr cinfo; + { + struct jpeg_source_mgr *datasrc = cinfo->src; +- ++ + if (datasrc->bytes_in_buffer == 0) { + if (! (*datasrc->fill_input_buffer) (cinfo)) + ERREXIT(cinfo, JERR_CANT_SUSPEND); +@@ -688,7 +723,7 @@ + } + else comment = (char *) realloc(comment, strlen(comment) + length + 1); + if (!comment) FatalError("out of memory in xv_process_comment"); +- ++ + oldsp = sp = comment + strlen(comment); + hasnull = 0; + +@@ -770,19 +805,19 @@ + + sprintf(xvcmt, "%sXV %s Quality = %d, Smoothing = %d\n", + CREATOR_STR, REVDATE, qDial.val, smDial.val); +- ++ + if (picComments) { /* append XV comment */ + char *sp, *sp1; int done; + + i = strlen(picComments); + comment = (char *) malloc(i + strlen(xvcmt) + 2 + 1); + if (!comment) FatalError("out of memory in writeJFIF()"); +- ++ + strcpy(comment, picComments); +- ++ + /* see if there's a line that starts with 'CREATOR: ' in the + comments. If there is, rip it out. */ +- ++ + sp = comment; done = 0; + while (!done && *sp) { + if (strncmp(sp, CREATOR_STR, strlen(CREATOR_STR)) == 0) { +@@ -801,7 +836,7 @@ + } + } + +- /* count # of \n's at end of comment. ++ /* count # of \n's at end of comment. + If none, add 2. If one, add 1. If two or more, add none. */ + + sp = comment + strlen(comment); +@@ -814,15 +849,15 @@ + strcat(comment, xvcmt); + } + else comment = xvcmt; +- +- ++ ++ + jpeg_write_marker(&cinfo,JPEG_COM,(byte *) comment,(u_int) strlen(comment)); +- ++ + while (cinfo.next_scanline < cinfo.image_height) { + rowptr[0] = (JSAMPROW) &pic[cinfo.next_scanline * w * bperpix]; + (void) jpeg_write_scanlines(&cinfo, rowptr, (JDIMENSION) 1); + } +- ++ + jpeg_finish_compress(&cinfo); + jpeg_destroy_compress(&cinfo); + return 0; +diff -ruN xv-3.10a/xvmisc.c xv-3.10a-bugfixes/xvmisc.c +--- xv-3.10a/xvmisc.c 1995-01-13 15:41:34.000000000 -0800 ++++ xv-3.10a-bugfixes/xvmisc.c 2005-03-20 22:47:06.000000000 -0800 +@@ -28,6 +28,8 @@ + * int xvbcmp (s1, s2, length) + * void xvbzero(s, length) + * char *xv_strstr(s1, s2) ++ * FILE *xv_fopen(str, str) ++ * void xv_mktemp(str) + * void Timer(milliseconds) + */ + +@@ -36,6 +38,10 @@ + #define NEEDSTIME + #include "xv.h" + ++#ifdef __linux__ /* probably others, too, but being conservative */ ++# include /* getwd() */ ++#endif ++ + #include "bits/fc_left" + #include "bits/fc_leftm" + #include "bits/fc_left1" +@@ -61,12 +67,12 @@ + + /* the following fakes 'XSetWMProtocols(theDisp, win, &atom_DELWIN, 1);' */ + +- if (! atom_PROTOCOLS) ++ if (! atom_PROTOCOLS) + atom_PROTOCOLS = XInternAtom (theDisp, "WM_PROTOCOLS", False); + + if (atom_PROTOCOLS == None) return; + +- XChangeProperty(theDisp, win, atom_PROTOCOLS, XA_ATOM, 32, ++ XChangeProperty(theDisp, win, atom_PROTOCOLS, XA_ATOM, 32, + PropModeReplace, (unsigned char *) &atom_DELWIN, 1); + } + +@@ -91,9 +97,9 @@ + x = y = 1; + i = XParseGeometry(geom,&x,&y, (unsigned int *) &w, (unsigned int *) &h); + +- if ((i&XValue || i&YValue)) hints.flags = USPosition; ++ if ((i&XValue || i&YValue)) hints.flags = USPosition; + else hints.flags = PPosition; +- ++ + if (!usesize || !(i&WidthValue)) w = defw; + if (!usesize || !(i&HeightValue)) h = defh; + +@@ -130,7 +136,7 @@ + xswamask = CWBackPixel | CWBorderPixel | CWColormap; + if (!usesize) xswamask |= CWBitGravity; + +- win = XCreateWindow(theDisp, rootW, x, y, (u_int) w, (u_int) h, ++ win = XCreateWindow(theDisp, rootW, x, y, (u_int) w, (u_int) h, + (u_int) bwidth, (int) dispDEEP, InputOutput, + theVisual, xswamask, &xswa); + if (!win) return(win); /* leave immediately if couldn't create */ +@@ -152,7 +158,7 @@ + + return(win); + } +- ++ + + + /**************************************************/ +@@ -164,7 +170,7 @@ + XDrawString(theDisp, win, theGC, x, y, str, (int) strlen(str)); + } + +- ++ + /**************************************************/ + void CenterString(win,x,y,str) + Window win; +@@ -174,7 +180,7 @@ + DrawString(win, CENTERX(mfinfo, x, str), CENTERY(mfinfo, y), str); + } + +- ++ + /**************************************************/ + void ULineString(win,x,y,str) + Window win; +@@ -182,11 +188,11 @@ + char *str; + { + DrawString(win, x, y, str); +- XDrawLine(theDisp, win, theGC, x, y+DESCENT-1, ++ XDrawLine(theDisp, win, theGC, x, y+DESCENT-1, + x+StringWidth(str), y+DESCENT-1); + } + +- ++ + /**************************************************/ + int StringWidth(str) + char *str; +@@ -194,13 +200,13 @@ + return(XTextWidth(mfinfo, str, (int) strlen(str))); + } + +- ++ + /**************************************************/ + int CursorKey(ks, shift, dotrans) + KeySym ks; + int shift, dotrans; + { +- /* called by the KeyPress/KeyRelease event handler to determine if a ++ /* called by the KeyPress/KeyRelease event handler to determine if a + given keypress is a cursor key. More complex than you'd think, since + certain Sun Keyboards generate a variety of odd keycodes, and not all + keyboards *have* all these keys. Note that 'shifted' arrow keys +@@ -225,16 +231,16 @@ + + int i = CK_NONE; + +- if (ks==XK_Up || ks==XK_KP_Up || ++ if (ks==XK_Up || ks==XK_KP_Up || + ks==XK_KP_8 || ks==XK_F28) i=CK_UP; + +- else if (ks==XK_Down || ks==XK_KP_Down || ++ else if (ks==XK_Down || ks==XK_KP_Down || + ks==XK_KP_2 || ks==XK_F34) i=CK_DOWN; + +- else if (ks==XK_Left || ks==XK_KP_Left || ++ else if (ks==XK_Left || ks==XK_KP_Left || + ks==XK_KP_4 || ks==XK_F30) i=CK_LEFT; + +- else if (ks==XK_Right || ks==XK_KP_Right || ++ else if (ks==XK_Right || ks==XK_KP_Right || + ks==XK_KP_6 || ks==XK_F32) i=CK_RIGHT; + + else if (ks==XK_Prior || ks==XK_KP_Prior || +@@ -257,7 +263,7 @@ + else if (i==CK_UP) i=CK_PAGEUP; + else if (i==CK_DOWN) i=CK_PAGEDOWN; + } +- ++ + return i; + } + +@@ -334,9 +340,9 @@ + ev.window = win; + ev.x = x; ev.y = y; ev.width = w; ev.height = h; + ev.count = 0; +- ++ + XSendEvent(theDisp, win, False, NoEventMask, (XEvent *) &ev); +-} ++} + + + /***********************************/ +@@ -381,7 +387,7 @@ + u_int w, h; + u_long bg; + { +- /* stipple a rectangular region by drawing 'bg' where there's 1's ++ /* stipple a rectangular region by drawing 'bg' where there's 1's + in the stipple pattern */ + + XSetFillStyle (theDisp, theGC, FillStippled); +@@ -400,7 +406,7 @@ + unsigned int w,h; + unsigned long hi, lo, bg; + { +- int i,r,x1,y1; ++ int i, x1, y1; + + x1 = x + (int) w; + y1 = y + (int) h; +@@ -413,7 +419,7 @@ + XDrawLine(theDisp, win, theGC, x+i, y1-i, x+i, y+i); + XDrawLine(theDisp, win, theGC, x+i, y+i, x1-i, y+i); + } +- ++ + /* draw bot-right */ + XSetForeground(theDisp, theGC, (inout==R3D_OUT) ? lo : hi); + +@@ -431,18 +437,18 @@ + } + } + } +- ++ + + + /**************************************************/ + void SetCropString() + { + /* sets the crop string in the info box to be correct. should +- be called whenever 'but[BCROP].active', cXOFF,cYOFF,cWIDE,cHIGH ++ be called whenever 'but[BCROP].active', cXOFF,cYOFF,cWIDE,cHIGH + are changed */ + +- if (cpic != pic) +- SetISTR(ISTR_CROP, "%dx%d rectangle starting at %d,%d", ++ if (cpic != pic) ++ SetISTR(ISTR_CROP, "%dx%d rectangle starting at %d,%d", + cWIDE, cHIGH, cXOFF, cYOFF); + else SetISTR(ISTR_CROP, ""); + } +@@ -469,7 +475,7 @@ + char *st; + + /* give 'em time to read message */ +- if (infoUp || ctrlUp || anyBrowUp) sleep(3); ++ if (infoUp || ctrlUp || anyBrowUp) sleep(3); + else { + st = GetISTR(ISTR_INFO); + OpenAlert(st); +@@ -477,7 +483,7 @@ + CloseAlert(); + } + } +- ++ + + /***********************************/ + void FatalError (identifier) +@@ -491,7 +497,7 @@ + /***********************************/ + void Quit(i) + int i; +-{ ++{ + /* called when the program exits. frees everything explictly created + EXCEPT allocated colors. This is used when 'useroot' is in operation, + as we have to keep the alloc'd colors around, but we don't want anything +@@ -521,9 +527,9 @@ + #endif + + /* if NOT using stdcmap for images, free stdcmap */ +- if (colorMapMode != CM_STDCMAP) { ++ if (colorMapMode != CM_STDCMAP) { + int j; +- for (j=0; j= max) { /* remove temp gauge */ +@@ -945,7 +951,7 @@ + */ + + if (src==dst || len<=0) return; /* nothin' to do */ +- ++ + if (srcdst) { /* do a backward copy */ + src = src + len - 1; + dst = dst + len - 1; +@@ -957,7 +963,7 @@ + for ( ; len>0; len--, src++, dst++) *dst = *src; + } + } +- ++ + + /***************************************************/ + int xvbcmp (s1, s2, len) +@@ -987,7 +993,7 @@ + { + /* gets the current working directory. No trailing '/' */ + +- char *rv; ++ char *rv; + + #ifdef USE_GETCWD + rv = (char *) getcwd(buf, buflen); +@@ -996,7 +1002,7 @@ + #endif + + if (!rv || strlen(rv)==0) { +- if (((rv=(char *) getenv("PWD"))==NULL) && ++ if (((rv=(char *) getenv("PWD"))==NULL) && + ((rv=(char *) getenv("cwd"))==NULL)) rv = "./"; + strcpy(buf, rv); + } +@@ -1006,7 +1012,7 @@ + + /***************************************************/ + +-/* ++/* + * Source code for the "strstr" library routine. + * + * Copyright 1988 Regents of the University of California +@@ -1066,6 +1072,22 @@ + } + + ++/***************************************************/ ++/* GRR 20050320: added actual mk[s]temp() call... */ ++void xv_mktemp(buf, fname) ++ char *buf, *fname; ++{ ++#ifndef VMS ++ sprintf(buf, "%s/%s", tmpdir, fname); ++#else ++ sprintf(buf, "Sys$Disk:[]%s", fname); ++#endif ++#ifdef USE_MKSTEMP ++ close(mkstemp(buf)); ++#else ++ mktemp(buf); ++#endif ++} + + + /*******/ +@@ -1124,7 +1146,7 @@ + { + /* default Timer() method now uses 'select()', which probably works + on all systems *anyhow* (except for VMS...) */ +- ++ + struct timeval time; + + time.tv_sec = usec / 1000000L; +diff -ruN xv-3.10a/xvpbm.c xv-3.10a-bugfixes/xvpbm.c +--- xv-3.10a/xvpbm.c 1995-01-03 13:23:44.000000000 -0800 ++++ xv-3.10a-bugfixes/xvpbm.c 2005-04-03 14:25:28.000000000 -0700 +@@ -115,7 +115,7 @@ + } + + return rv; +-} ++} + + + +@@ -127,15 +127,21 @@ + { + byte *pic8; + byte *pix; +- int i,j,bit,w,h; ++ int i,j,bit,w,h,npixels; ++ ++ w = pinfo->w; ++ h = pinfo->h; + +- w = pinfo->w; h = pinfo->h; +- pic8 = (byte *) calloc((size_t) w * h, (size_t) 1); +- if (!pic8) return pbmError(bname, "couldn't malloc 'pic8'"); ++ npixels = w * h; ++ if (w <= 0 || h <= 0 || npixels/w != h) ++ return pbmError(bname, "image dimensions too large"); ++ ++ pic8 = (byte *) calloc((size_t) npixels, (size_t) 1); ++ if (!pic8) FatalError("couldn't malloc 'pic8' for PBM"); + + pinfo->pic = pic8; + pinfo->type = PIC8; +- sprintf(pinfo->fullInfo, "PBM, %s format. (%ld bytes)", ++ sprintf(pinfo->fullInfo, "PBM, %s format. (%ld bytes)", + (raw) ? "raw" : "ascii", filesize); + sprintf(pinfo->shrtInfo, "%dx%d PBM.", w, h); + pinfo->colType = F_BWDITHER; +@@ -153,7 +159,7 @@ + for (j=0; jw; ++ h = pinfo->h; + +- w = pinfo->w; h = pinfo->h; +- pic8 = (byte *) calloc((size_t) w*h, (size_t) 1); +- if (!pic8) return(pbmError(bname, "couldn't malloc 'pic8'")); ++ npixels = w * h; ++ if (w <= 0 || h <= 0 || npixels/w != h) ++ return pbmError(bname, "image dimensions too large"); ++ ++ pic8 = (byte *) calloc((size_t) npixels, (size_t) 1); ++ if (!pic8) FatalError("couldn't malloc 'pic8' for PGM"); + + + pinfo->pic = pic8; + pinfo->type = PIC8; +- sprintf(pinfo->fullInfo, "PGM, %s format. (%ld bytes)", ++ sprintf(pinfo->fullInfo, "PGM, %s format. (%ld bytes)", + (raw) ? "raw" : "ascii", filesize); + sprintf(pinfo->shrtInfo, "%dx%d PGM.", pinfo->w, pinfo->h); + pinfo->colType = F_GREYSCALE; +@@ -236,11 +248,11 @@ + } + } + else { +- numgot = fread(pic8, (size_t) 1, (size_t) w*h, fp); /* read raw data */ ++ numgot = fread(pic8, (size_t)1, (size_t)npixels, fp); /* read raw data */ + } + } + +- if (numgot != w*h) pbmError(bname, TRUNCSTR); /* warning only */ ++ if (numgot != npixels) pbmError(bname, TRUNCSTR); /* warning only */ + + if (garbage) { + return (pbmError(bname, "Garbage characters in image data.")); +@@ -256,18 +268,24 @@ + PICINFO *pinfo; + int raw, maxv; + { +- byte *pix, *pic24, scale[256], *pic8; +- int i,j,bitshift, w, h, holdmaxv; ++ byte *pix, *pic24, scale[256]; ++ int i,j,bitshift, w, h, npixels, bufsize, holdmaxv; ++ ++ w = pinfo->w; ++ h = pinfo->h; + +- w = pinfo->w; h = pinfo->h; ++ npixels = w * h; ++ bufsize = 3*npixels; ++ if (w <= 0 || h <= 0 || npixels/w != h || bufsize/3 != npixels) ++ return pbmError(bname, "image dimensions too large"); + + /* allocate 24-bit image */ +- pic24 = (byte *) calloc((size_t) w*h*3, (size_t) 1); +- if (!pic24) FatalError("couldn't malloc 'pic24'"); ++ pic24 = (byte *) calloc((size_t) bufsize, (size_t) 1); ++ if (!pic24) FatalError("couldn't malloc 'pic24' for PPM"); + + pinfo->pic = pic24; + pinfo->type = PIC24; +- sprintf(pinfo->fullInfo, "PPM, %s format. (%ld bytes)", ++ sprintf(pinfo->fullInfo, "PPM, %s format. (%ld bytes)", + (raw) ? "raw" : "ascii", filesize); + sprintf(pinfo->shrtInfo, "%dx%d PPM.", w, h); + pinfo->colType = F_FULLCOLOR; +@@ -297,20 +315,20 @@ + } + } + else { +- numgot = fread(pic24, (size_t) 1, (size_t) w*h*3, fp); /* read data */ ++ numgot = fread(pic24, (size_t) 1, (size_t) bufsize, fp); /* read data */ + } + } +- +- if (numgot != w*h*3) pbmError(bname, TRUNCSTR); ++ ++ if (numgot != bufsize) pbmError(bname, TRUNCSTR); + + if (garbage) + return(pbmError(bname, "Garbage characters in image data.")); + + +- /* have to scale all RGB values up (Conv24to8 expects RGB values to +- range from 0-255 */ ++ /* have to scale up all RGB values (Conv24to8 expects RGB values to ++ range from 0-255) */ + +- if (maxv<255) { ++ if (maxv<255) { + for (i=0; i<=maxv; i++) scale[i] = (i * 255) / maxv; + + for (i=0, pix=pic24; icomment[0] = '\0'; + } + else { +- tmpptr = (char *) realloc(pinfo->comment, +- strlen(pinfo->comment) + strlen(cmt) + 1); ++ tmpptr = (char *) realloc(pinfo->comment, ++ strlen(pinfo->comment) + strlen(cmt) + 1); + if (!tmpptr) FatalError("realloc failure in xvpbm.c getint"); + pinfo->comment = tmpptr; + } +@@ -445,8 +463,8 @@ + pinfo->comment[0] = '\0'; + } + else { +- tmpptr = (char *) realloc(pinfo->comment, +- strlen(pinfo->comment) + strlen(cmt) + 1); ++ tmpptr = (char *) realloc(pinfo->comment, ++ strlen(pinfo->comment) + strlen(cmt) + 1); + if (!tmpptr) FatalError("realloc failure in xvpbm.c getint"); + pinfo->comment = tmpptr; + } +@@ -490,7 +508,7 @@ + char *comment; + { + /* writes a PBM/PGM/PPM file to the already open stream +- if (raw), writes as RAW bytes, otherwise writes as ASCII ++ if (raw), writes as RAW bytes, otherwise writes as ASCII + 'colorstyle' single-handedly determines the type of file written + if colorstyle==0, (Full Color) a PPM file is written + if colorstyle==1, (Greyscale) a PGM file is written +@@ -546,7 +564,7 @@ + } + } + else { +- if (ptype==PIC8) ++ if (ptype==PIC8) + fprintf(fp,"%3d %3d %3d ",rmap[*pix], gmap[*pix], bmap[*pix]); + else + fprintf(fp,"%3d %3d %3d ",pix[0], pix[1], pix[2]); +@@ -554,7 +572,7 @@ + len+=12; + if (len>58) { fprintf(fp,"\n"); len=0; } + } +- ++ + pix += (ptype==PIC24) ? 3 : 1; + } + } +@@ -626,10 +644,3 @@ + + return 0; + } +- +- +- +- +- +- +- +diff -ruN xv-3.10a/xvpcx.c xv-3.10a-bugfixes/xvpcx.c +--- xv-3.10a/xvpcx.c 1995-01-10 15:06:37.000000000 -0800 ++++ xv-3.10a-bugfixes/xvpcx.c 2005-03-25 08:10:03.000000000 -0800 +@@ -29,7 +29,7 @@ + #define PCX_YMAXH 11 + /* hres (12,13) and vres (14,15) not used */ + #define PCX_CMAP 16 /* start of 16*3 colormap data */ +-#define PCX_PLANES 65 ++#define PCX_PLANES 65 + #define PCX_BPRL 66 + #define PCX_BPRH 67 + +@@ -51,8 +51,8 @@ + { + FILE *fp; + long filesize; +- char *bname, *errstr; +- byte hdr[128], *image; ++ char *bname; ++ byte hdr[128]; + int i, colors, gray, fullcolor; + + pinfo->type = PIC8; +@@ -64,7 +64,7 @@ + /* open the stream */ + fp = xv_fopen(fname,"r"); + if (!fp) return (pcxError(bname, "unable to open file")); +- ++ + + /* figure out the file size */ + fseek(fp, 0L, 2); +@@ -84,10 +84,10 @@ + return pcxError(bname,"unrecognized magic number"); + } + +- pinfo->w = (hdr[PCX_XMAXL] + ((int) hdr[PCX_XMAXH]<<8)) ++ pinfo->w = (hdr[PCX_XMAXL] + ((int) hdr[PCX_XMAXH]<<8)) + - (hdr[PCX_XMINL] + ((int) hdr[PCX_XMINH]<<8)); + +- pinfo->h = (hdr[PCX_YMAXL] + ((int) hdr[PCX_YMAXH]<<8)) ++ pinfo->h = (hdr[PCX_YMAXL] + ((int) hdr[PCX_YMAXH]<<8)) + - (hdr[PCX_YMINL] + ((int) hdr[PCX_YMINH]<<8)); + + pinfo->w++; pinfo->h++; +@@ -96,10 +96,10 @@ + fullcolor = (hdr[PCX_BPP] == 8 && hdr[PCX_PLANES] == 3); + + if (DEBUG) { +- fprintf(stderr,"PCX: %dx%d image, version=%d, encoding=%d\n", ++ fprintf(stderr,"PCX: %dx%d image, version=%d, encoding=%d\n", + pinfo->w, pinfo->h, hdr[PCX_VER], hdr[PCX_ENC]); + fprintf(stderr," BitsPerPixel=%d, planes=%d, BytePerRow=%d, colors=%d\n", +- hdr[PCX_BPP], hdr[PCX_PLANES], ++ hdr[PCX_BPP], hdr[PCX_PLANES], + hdr[PCX_BPRL] + ((int) hdr[PCX_BPRH]<<8), + colors); + } +@@ -190,9 +190,9 @@ + + if (colors > 2 || (colors==2 && !gray)) { /* grayscale or PseudoColor */ + pinfo->colType = (gray) ? F_GREYSCALE : F_FULLCOLOR; +- sprintf(pinfo->fullInfo, +- "%s PCX, %d plane%s, %d bit%s per pixel. (%ld bytes)", +- (gray) ? "Greyscale" : "Color", ++ sprintf(pinfo->fullInfo, ++ "%s PCX, %d plane%s, %d bit%s per pixel. (%ld bytes)", ++ (gray) ? "Greyscale" : "Color", + hdr[PCX_PLANES], (hdr[PCX_PLANES]==1) ? "" : "s", + hdr[PCX_BPP], (hdr[PCX_BPP]==1) ? "" : "s", + filesize); +@@ -218,15 +218,21 @@ + byte *hdr; + { + /* load an image with at most 8 bits per pixel */ +- ++ + byte *image; +- ++ int count; ++ + /* note: overallocation to make life easier... */ +- image = (byte *) malloc((size_t) (pinfo->h + 1) * pinfo->w + 16); ++ count = (pinfo->h + 1) * pinfo->w + 16; /* up to 65537*65536+16 (~ 65552) */ ++ if (pinfo->w <= 0 || pinfo->h <= 0 || count/pinfo->w < pinfo->h) { ++ pcxError(fname, "Bogus 8-bit PCX file!!"); ++ return (0); ++ } ++ image = (byte *) malloc((size_t) count); + if (!image) FatalError("Can't alloc 'image' in pcxLoadImage8()"); +- +- xvbzero((char *) image, (size_t) ((pinfo->h+1) * pinfo->w + 16)); +- ++ ++ xvbzero((char *) image, (size_t) count); ++ + switch (hdr[PCX_BPP]) { + case 1: pcxLoadRaster(fp, image, 1, hdr, pinfo->w, pinfo->h); break; + case 8: pcxLoadRaster(fp, image, 8, hdr, pinfo->w, pinfo->h); break; +@@ -249,25 +255,33 @@ + byte *hdr; + { + byte *pix, *pic24, scale[256]; +- int c, i, j, w, h, maxv, cnt, planes, bperlin, nbytes; +- ++ int c, i, j, w, h, maxv, cnt, planes, bperlin, nbytes, count; ++ + w = pinfo->w; h = pinfo->h; +- +- planes = (int) hdr[PCX_PLANES]; +- bperlin = hdr[PCX_BPRL] + ((int) hdr[PCX_BPRH]<<8); +- ++ ++ planes = (int) hdr[PCX_PLANES]; /* 255 max, but can't get here unless = 3 */ ++ bperlin = hdr[PCX_BPRL] + ((int) hdr[PCX_BPRH]<<8); /* 65535 max */ ++ ++ j = h*planes; /* w and h are limited to 65536, planes to 3 */ ++ count = w*j; /* ...so this could wrap up to 3 times */ ++ nbytes = bperlin*j; /* ...and this almost 3 times */ ++ if (w <= 0 || h <= 0 || planes <= 0 || bperlin <= 0 || ++ j/h < planes || count/w < j || nbytes/bperlin < j) { ++ pcxError(fname, "Bogus 24-bit PCX file!!"); ++ return (0); ++ } ++ + /* allocate 24-bit image */ +- pic24 = (byte *) malloc((size_t) w*h*planes); +- if (!pic24) FatalError("couldn't malloc 'pic24'"); +- +- xvbzero((char *) pic24, (size_t) w*h*planes); +- ++ pic24 = (byte *) malloc((size_t) count); ++ if (!pic24) FatalError("Can't malloc 'pic24' in pcxLoadImage24()"); ++ ++ xvbzero((char *) pic24, (size_t) count); ++ + maxv = 0; + pix = pinfo->pic = pic24; + i = 0; /* planes, in this while loop */ + j = 0; /* bytes per line, in this while loop */ +- nbytes = bperlin*h*planes; +- ++ + while (nbytes > 0 && (c = getc(fp)) != EOF) { + if ((c & 0xC0) == 0xC0) { /* have a rep. count */ + cnt = c & 0x3F; +@@ -275,9 +289,9 @@ + if (c == EOF) { getc(fp); break; } + } + else cnt = 1; +- ++ + if (c > maxv) maxv = c; +- ++ + while (cnt-- > 0) { + if (j < w) { + *pix = c; +@@ -297,19 +311,19 @@ + } + } + } +- +- ++ ++ + /* scale all RGB to range 0-255, if they aren't */ + +- if (maxv<255) { ++ if (maxv<255) { + for (i=0; i<=maxv; i++) scale[i] = (i * 255) / maxv; +- ++ + for (i=0, pix=pic24; i= (int) hdr[PCX_PLANES]) { /* moved to next row */ + plane = 0; +@@ -367,13 +381,13 @@ + } + else { /* next plane, same row */ + image = oldimage; +- } ++ } + + pmask = 1 << plane; + } + } + } +-} ++} + + + +diff -ruN xv-3.10a/xvpds.c xv-3.10a-bugfixes/xvpds.c +--- xv-3.10a/xvpds.c 1995-01-03 13:25:52.000000000 -0800 ++++ xv-3.10a-bugfixes/xvpds.c 2005-04-03 11:31:30.000000000 -0700 +@@ -22,23 +22,23 @@ + Choice of algorithm for 16->8 bit conversion--linear or histogram stretch. + (adds CONV24_HIST item in "24/8 bit" pull-down menu.) + Uses any "palette.tab" file in cwd to color PDS/VICAR image. +- ++ + * 9-2-91 began integration. Much of this code is lifted from vicar.c, + which I wrote for xloadimage. This is a little simpler, though. +- ++ + * 10-17-91 pdsuncomp is called with system(), which typically feeds the + commandline to sh. Make sure that your .profile adds wherever + you have pdsuncomp to the PATH, like +- ++ + PATH=$PATH:/usr/local/bin +- ++ + * 11-15-91 substituted vdcomp from Viking CD's for pdsuncomp. I added + recognition of - and shut off various messages +- ++ + * 1-5-92 merged into xv rel 2 +- ++ + * 3-11-92 cleaned up some comments +- ++ + * 3-24-92 Got some new CD's from NASA of mosics and other processed Viking + stuff. There are actually records terminated with CRNLCR in + these images, as well as ones that identify the spacecraft name +@@ -46,14 +46,14 @@ + yet further to deal with these. There's a Sun 4 XView binary for + an image display program on these discs, but it's nowhere near as + neat as the good Mr. Bradley's XV. +- +- ++ ++ + * Sources of these CD's: + * + * National Space Science Data Center + * Goddard Space Flight Center + * Code 933.4 +- * Greenbelt, Maryland ++ * Greenbelt, Maryland + * (301) 286-6695 + * or call + * (301) 286-9000 (300,1200,2400 bps) +@@ -91,10 +91,10 @@ + * Copyright 1989, 1990 by Anthony A. Datri + * + * Permission to use, copy, and distribute for non-commercial purposes, +- * is hereby granted without fee, providing that the above copyright ++ * is hereby granted without fee, providing that the above copyright + * notice appear in all copies, that both the copyright notice and this + * permission notice appear in supporting documentation. +- * ++ * + * In exception to the above, permission to John Bradley is hereby granted to + * distribute this code as he sees fit within the context of his "xv" image + * viewer. +@@ -132,8 +132,8 @@ + + + static int lastwasinote = FALSE; +-static char scanbuff [MAX_SIZE], +- rtbuff [RTBUFFSIZE], ++static char scanbuff [MAX_SIZE], ++ rtbuff [RTBUFFSIZE], + inote [20*COMMENTSIZE], + infobuff [COMMENTSIZE], + spacecraft [COMMENTSIZE], +@@ -203,10 +203,10 @@ + } + return(count); + +- case EOF: *bp='\0'; return(count); +- ++ case EOF: *bp='\0'; return(count); ++ + case '\0': return(count); +- ++ + default: count++; *bp++ = c; + } + } +@@ -242,7 +242,7 @@ + * disc seem to leave off the first two bytes. Sigh. This may sometimes be + * a distinction between the fixed and variable-record files. + */ +- ++ + /*******************************************/ + int LoadPDS(fname, pinfo) + char *fname; +@@ -250,11 +250,11 @@ + { + /* returns '1' on success, '0' on failure */ + +- int tempnum; ++ int tempnum, bytewidth, bufsize; + FILE *zf; + static int isfixed,teco,i,j,itype,vaxbyte, + recsize,hrecsize,irecsize,isimage,labelrecs,labelsofar, +- x,y,lpsize,lssize,samplesize,returnp,labelsize,yy; ++ w,h,lpsize,lssize,samplesize,returnp,labelsize,yy; + char *tmp; + char *ftypstr; + unsigned long filesize; +@@ -265,7 +265,7 @@ + returnp = isimage = FALSE; + itype = PDSTRASH; + +- teco = i = j = recsize = hrecsize = irecsize = labelrecs = x = y = 0; ++ teco = i = j = recsize = hrecsize = irecsize = labelrecs = w = h = 0; + lpsize = lssize = samplesize = labelsize = labelsofar = 0; + + (*pdsuncompfname) = (*iname) = (*target) = (*filtname) = (*garbage) = '\0'; +@@ -363,7 +363,7 @@ + * length indicator. If the length indicator is odd, then a pad byte + * is appended to the end of the record so that all records contain + * an even number of bytes." */ +- ++ + i=getc(zf); + j=getc(zf); + if (j == EOF) { +@@ -371,7 +371,7 @@ + fclose(zf); + return 0; + } +- ++ + teco = i + (j << 8); + if (teco % 2) teco++; + +@@ -380,7 +380,7 @@ + fclose(zf); + return 0; + } +- ++ + scanbuff[teco]='\0'; + } + +@@ -429,11 +429,11 @@ + (sscanf(scanbuff," LABEL_RECORDS = %d", &labelrecs) == 1)) { + lastwasinote=FALSE; + continue; +- } else if (sscanf(scanbuff," IMAGE_LINES = %d",&y) == 1) { ++ } else if (sscanf(scanbuff," IMAGE_LINES = %d",&h) == 1) { + isimage=TRUE; lastwasinote=FALSE; continue; +- } else if (sscanf(scanbuff," LINE_SAMPLES = %d",&x) == 1) { ++ } else if (sscanf(scanbuff," LINE_SAMPLES = %d",&w) == 1) { + lastwasinote=FALSE; continue; +- } else if (sscanf(scanbuff," LINES = %d",&y) == 1) { ++ } else if (sscanf(scanbuff," LINES = %d",&h) == 1) { + isimage=TRUE; lastwasinote=FALSE; continue; + } else if (sscanf(scanbuff," HEADER_RECORD_BYTES = %d",&hrecsize)==1) { + lastwasinote=FALSE; continue; +@@ -472,7 +472,7 @@ + + } else if (sscanf(scanbuff," INSTRUMENT_GAIN_STATE = %s",gainmode)==1) { + lastwasinote=FALSE; continue; +- ++ + } else if (sscanf(scanbuff," EDIT_MODE_ID = %s", editmode) == 1) { + lastwasinote=FALSE; continue; + +@@ -531,11 +531,11 @@ + * get my hands on the clown who designed this format... + * What we basically assume here + * is that a NOTE record that doesn't end with a " is +- * followed by some number of continuations, one of which ++ * followed by some number of continuations, one of which + * will have a " in it. If this turns out to not be true, + * well, we'll segmentation fault real soon. We use + * lastwasinote as a semaphore to indicate that the previous +- * record was an unfinished NOTE record. We clear the ++ * record was an unfinished NOTE record. We clear the + * flag in each of the above record types for potential + * error recovery, although it really breaks up the beauty + * of the cascading sscanfs. Dykstra'd love me for this one */ +@@ -568,10 +568,10 @@ + fclose(zf); + return 0; + } +- ++ + vaxbyte = strncmp(sampletype, "VAX_", (size_t) 4) == 0 || + strncmp(sampletype, "LSB_", (size_t) 4) == 0; +- ++ + } else if (itype == VICAR) { + /* we've got a VICAR file. Let's find out how big the puppy is */ + ungetc(' ', zf); +@@ -582,8 +582,8 @@ + SetISTR(ISTR_WARNING,"LoadPDS: bad NL in VICAR\n"); + returnp=TRUE; + } +- +- if (sscanf(tmp," NL = %d",&y) != 1) { ++ ++ if (sscanf(tmp," NL = %d",&h) != 1) { + SetISTR(ISTR_WARNING,"LoadPDS: bad scan NL in VICAR\n"); + returnp=TRUE; + } +@@ -593,7 +593,7 @@ + returnp=TRUE; + } + +- if (sscanf(tmp, " NS = %d",&x) != 1) { ++ if (sscanf(tmp, " NS = %d",&w) != 1) { + SetISTR(ISTR_WARNING,"LoadPDS: bad scan NS in VICAR\n"); + returnp=TRUE; + } +@@ -625,6 +625,13 @@ + returnp=TRUE; + } + ++ /* samplesize can be arbitrarily large (up to int limit) in non-VICAR files */ ++ if (samplesize != 8 && samplesize != 16) { ++ SetISTR(ISTR_WARNING,"LoadPDS: %d bits per pixel not supported", ++ samplesize); ++ returnp=TRUE; ++ } ++ + if (returnp) { + fclose(zf); + return 0; +@@ -689,11 +696,19 @@ + + #ifndef VMS + sprintf(pdsuncompfname,"%s/xvhuffXXXXXX", tmpdir); +- mktemp(pdsuncompfname); +- sprintf(scanbuff,"%s %s - 4 >%s",PDSUNCOMP,fname,pdsuncompfname); + #else + strcpy(pdsuncompfname,"sys$disk:[]xvhuffXXXXXX"); ++#endif ++ ++#ifdef USE_MKSTEMP ++ close(mkstemp(pdsuncompfname)); ++#else + mktemp(pdsuncompfname); ++#endif ++ ++#ifndef VMS ++ sprintf(scanbuff,"%s %s - 4 >%s",PDSUNCOMP,fname,pdsuncompfname); ++#else + sprintf(scanbuff,"%s %s %s 4",PDSUNCOMP,fname,pdsuncompfname); + #endif + +@@ -727,63 +742,72 @@ + fread(scanbuff, (size_t) labelsize, (size_t) 1, zf); + } + +- x *= samplesize/8; ++ /* samplesize is bits per pixel; guaranteed at this point to be 8 or 16 */ ++ bytewidth = w * (samplesize/8); ++ bufsize = bytewidth * h; ++ if (w <= 0 || h <= 0 || bytewidth/w != (samplesize/8) || ++ bufsize/bytewidth != h) ++ { ++ SetISTR(ISTR_WARNING,"LoadPDS: image dimensions out of range (%dx%dx%d)", ++ w, h, samplesize/8); ++ fclose(zf); ++ return 0; ++ } + +- image = (byte *) malloc((size_t) x*y); ++ image = (byte *) malloc((size_t) bufsize); + if (image == NULL) { +- SetISTR(ISTR_WARNING,"LoadPDS: couldn't malloc %d",x*y); + fclose(zf); + if (isfixed == FALSE) + unlink(pdsuncompfname); +- exit(1); ++ FatalError("LoadPDS: can't malloc image buffer"); + } + + if ((lssize || lpsize) && + ((itype == PDSFIXED) || (itype == VIKINGFIXED) || (itype == VICAR)) ) { + /* ARrrrgh. Some of these images have crud intermixed with the image, */ + /* preventing us from freading in one fell swoop */ +- /* (whatever a fell swoop is */ ++ /* (whatever a fell swoop is) */ + +- for (yy=0; yypic = image; +- pinfo->w = x; +- pinfo->h = y; ++ pinfo->w = w; /* true pixel-width now (no longer bytewidth!) */ ++ pinfo->h = h; + + if (samplesize == 16) + if (Convert16BitImage(fname, pinfo, +@@ -798,25 +822,25 @@ + if (pinfo->comment) { + char tmp[256]; + *(pinfo->comment) = '\0'; +- ++ + sprintf(tmp, "Spacecraft: %-28sTarget: %-32s\n", spacecraft, target); + strcat(pinfo->comment, tmp); +- ++ + sprintf(tmp, "Filter: %-32sMission phase: %-24s\n", filtname, mphase); + strcat(pinfo->comment, tmp); +- ++ + sprintf(tmp, "Image time: %-28sGain mode: %-29s\n", itime, gainmode); + strcat(pinfo->comment, tmp); +- ++ + sprintf(tmp, "Edit mode: %-29sScan mode: %-29s\n", editmode, scanmode); + strcat(pinfo->comment, tmp); +- ++ + sprintf(tmp, "Exposure: %-30sShutter mode: %-25s\n", exposure,shuttermode); + strcat(pinfo->comment, tmp); +- ++ + sprintf(tmp, "Instrument: %-28sImage time: %-28s\n", iname, itime); + strcat(pinfo->comment, tmp); +- ++ + sprintf(tmp, "Image Note: %-28s", inote); + strcat(pinfo->comment, tmp); + } +@@ -868,23 +892,20 @@ + m = 65536 * sizeof(byte); + lut = (byte *) malloc(m); + if (lut == NULL) { +- SetISTR(ISTR_WARNING,"LoadPDS: couldn't malloc %d", m); +- return 0; ++ FatalError("LoadPDS: can't malloc LUT buffer"); + } +- pinfo->w /= 2; + + /* allocate histogram table */ + m = 65536 * sizeof(long); + hist = (long *) malloc(m); + if (hist == NULL) { +- SetISTR(ISTR_WARNING,"LoadPDS: couldn't malloc %d", m); + free(lut); +- return 0; ++ FatalError("LoadPDS: can't malloc histogram buffer"); + } + + /* check whether histogram file exists */ + #ifdef VMS +- c = (char *) rindex(strcpy(name, ++ c = (char *) rindex(strcpy(name, + (c = (char *) rindex(fname, ':')) ? c+1 : fname), + ']'); + #else +@@ -947,14 +968,20 @@ + } + } + +- /* allocate new 8-bit image */ + free(hist); ++ ++ /* allocate new 8-bit image */ + n = pinfo->w * pinfo->h; ++ if (pinfo->w <= 0 || pinfo->h <= 0 || n/pinfo->w != pinfo->h) { ++ SetISTR(ISTR_WARNING,"LoadPDS: image dimensions out of range (%dx%d)", ++ pinfo->w, pinfo->h); ++ free(lut); ++ return 0; ++ } + pPix8 = (byte *)malloc(n*sizeof(byte)); + if (pPix8 == NULL) { +- SetISTR(ISTR_WARNING,"LoadPDS: couldn't malloc %d", n*sizeof(byte)); + free(lut); +- return 0; ++ FatalError("LoadPDS: can't malloc 16-to-8-bit conversion buffer"); + } + + /* convert the 16-bit image to 8-bit */ +@@ -979,16 +1006,16 @@ + FILE *fp; + char name[1024], buf[256], *c; + int i, n, r, g, b; +- ++ + #ifdef VMS +- c = (char *) rindex(strcpy(name, ++ c = (char *) rindex(strcpy(name, + (c = (char *) rindex(fname, ':')) ? c+1 : fname), + ']'); + #else + c = (char *) rindex(strcpy(name, fname), '/'); + #endif /* VMS */ + (void)strcpy(c ? c+1 : name, "palette.tab"); +- ++ + if ((fp = xv_fopen(name, "r")) == NULL) + return 0; + for (i = 0; i < 256; i++) { +@@ -1014,7 +1041,3 @@ + + + #endif /* HAVE_PDS */ +- +- +- +- +diff -ruN xv-3.10a/xvpictoppm.c xv-3.10a-bugfixes/xvpictoppm.c +--- xv-3.10a/xvpictoppm.c 1995-01-13 11:57:14.000000000 -0800 ++++ xv-3.10a-bugfixes/xvpictoppm.c 2005-04-10 09:36:04.000000000 -0700 +@@ -77,7 +77,7 @@ + FILE *fp; + byte *icon8, *pic24, *ip, *pp; + char buf[256]; +- int i, builtin, w, h, mv; ++ int i, builtin, w, h, maxval, npixels, p24sz; + + fp = stdin; + builtin = 0; +@@ -88,42 +88,45 @@ + /* read comments until we see '#END_OF_COMMENTS', or hit EOF */ + while (1) { + if (!fgets(buf, 256, fp)) errexit(); +- ++ + if (!strncmp(buf, "#END_OF_COMMENTS", (size_t) 16)) break; + + else if (!strncmp(buf, "#BUILTIN:", (size_t) 9)) { + builtin = 1; +- fprintf(stderr,"Built-In icon: no image to convert!\n"); ++ fprintf(stderr, "Built-in icon: no image to convert\n"); + exit(1); + } + } + + + /* read width, height, maxval */ +- if (!fgets(buf, 256, fp) || sscanf(buf, "%d %d %d", &w, &h, &mv) != 3) ++ if (!fgets(buf, 256, fp) || sscanf(buf, "%d %d %d", &w, &h, &maxval) != 3) + errexit(); + ++ npixels = w * h; ++ p24sz = 3 * npixels; + +- if (w<1 || h<1 || mv != 255) { +- fprintf(stderr,"Bogus thumbnail file!\n"); ++ if (w <= 0 || h <= 0 || maxval != 255 || npixels/w != h || p24sz/3 != npixels) ++ { ++ fprintf(stderr, "Thumbnail dimensions out of range\n"); + exit(1); + } + + + /* read binary data */ +- icon8 = (byte *) malloc((size_t) w * h); ++ icon8 = (byte *) malloc((size_t) npixels); + if (!icon8) errexit(); + +- i = fread(icon8, (size_t) 1, (size_t) w*h, fp); +- if (i != w*h) errexit(); ++ i = fread(icon8, (size_t) 1, (size_t) npixels, fp); ++ if (i != npixels) errexit(); ++ + +- + /* make 24-bit version of icon */ +- pic24 = (byte *) malloc((size_t) w * h * 3); ++ pic24 = (byte *) malloc((size_t) p24sz); + if (!pic24) errexit(); + + /* convert icon from 332 to 24-bit image */ +- for (i=0, ip=icon8, pp=pic24; i> 5) & 0x07)) * 255) / 7; + pp[1] = ( ((int) ((*ip >> 2) & 0x07)) * 255) / 7; + pp[2] = ( ((int) ((*ip >> 0) & 0x03)) * 255) / 3; +@@ -160,10 +163,3 @@ + + if (ferror(fp)) errexit(); + } +- +- +- +- +- +- +- +diff -ruN xv-3.10a/xvpm.c xv-3.10a-bugfixes/xvpm.c +--- xv-3.10a/xvpm.c 1994-12-22 14:34:40.000000000 -0800 ++++ xv-3.10a-bugfixes/xvpm.c 2005-03-29 08:30:12.000000000 -0800 +@@ -60,7 +60,7 @@ + + FILE *fp; + byte *pic8; +- int isize,i,flipit,w,h; ++ int isize,i,flipit,w,h,npixels,nRGBbytes; + char *bname; + + bname = BaseName(fname); +@@ -103,10 +103,11 @@ + thePic.pm_cmtsize = flip4(thePic.pm_cmtsize); + } + +- w = thePic.pm_ncol; h = thePic.pm_nrow; ++ w = thePic.pm_ncol; ++ h = thePic.pm_nrow; + + /* make sure that the input picture can be dealt with */ +- if ( thePic.pm_nband!=1 || ++ if ( thePic.pm_nband!=1 || + (thePic.pm_form!=PM_I && thePic.pm_form!=PM_C) || + (thePic.pm_form==PM_I && thePic.pm_np>1) || + (thePic.pm_form==PM_C && (thePic.pm_np==2 || thePic.pm_np>4)) ) { +@@ -114,20 +115,27 @@ + fprintf(stderr,"(ie, 1-plane PM_I, or 1-, 3-, or 4-plane PM_C)\n"); + + return pmError(bname, "PM file in unsupported format"); +- } ++ } + + + isize = pm_isize(&thePic); ++ npixels = w*h; ++ nRGBbytes = 3*npixels; ++ ++ /* make sure image is more-or-less valid (and no overflows) */ ++ if (isize <= 0 || w <= 0 || h <= 0 || npixels/w < h || ++ nRGBbytes/3 < npixels || thePic.pm_cmtsize < 0) ++ return pmError(bname, "Bogus PM file!!"); + +- if (DEBUG) ++ if (DEBUG) + fprintf(stderr,"%s: LoadPM() - loading a %dx%d %s pic, %d planes\n", +- cmd, w, h, (thePic.pm_form==PM_I) ? "PM_I" : "PM_C", ++ cmd, w, h, (thePic.pm_form==PM_I) ? "PM_I" : "PM_C", + thePic.pm_np); + +- ++ + /* allocate memory for picture and read it in */ + thePic.pm_image = (char *) malloc((size_t) isize); +- if (thePic.pm_image == NULL) ++ if (thePic.pm_image == NULL) + return( pmError(bname, "unable to malloc PM picture") ); + + if (fread(thePic.pm_image, (size_t) isize, (size_t) 1, fp) != 1) { +@@ -147,7 +155,7 @@ + } + } + } +- ++ + fclose(fp); + + +@@ -155,11 +163,11 @@ + int *intptr; + byte *pic24, *picptr; + +- if ((pic24 = (byte *) malloc((size_t) w*h*3))==NULL) { ++ if ((pic24 = (byte *) malloc((size_t) nRGBbytes))==NULL) { + if (thePic.pm_cmt) free(thePic.pm_cmt); + return( pmError(bname, "unable to malloc 24-bit picture") ); + } +- ++ + intptr = (int *) thePic.pm_image; + picptr = pic24; + +@@ -190,7 +198,7 @@ + else if (thePic.pm_form == PM_C && thePic.pm_np>1) { + byte *pic24, *picptr, *rptr, *gptr, *bptr; + +- if ((pic24 = (byte *) malloc((size_t) w*h*3))==NULL) { ++ if ((pic24 = (byte *) malloc((size_t) nRGBbytes))==NULL) { + if (thePic.pm_cmt) free(thePic.pm_cmt); + return( pmError(bname, "unable to malloc 24-bit picture") ); + } +@@ -210,12 +218,12 @@ + pinfo->pic = pic24; + pinfo->type = PIC24; + } +- ++ + + else if (thePic.pm_form == PM_C && thePic.pm_np==1) { + /* don't have to convert, just point pic at thePic.pm_image */ + pic8 = (byte *) thePic.pm_image; +- for (i=0; i<256; i++) ++ for (i=0; i<256; i++) + pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i; /* build mono cmap */ + + pinfo->pic = pic8; +@@ -228,10 +236,10 @@ + pinfo->normw = pinfo->w; pinfo->normh = pinfo->h; + + pinfo->frmType = F_PM; +- pinfo->colType = (thePic.pm_form==PM_I || thePic.pm_np>1) ++ pinfo->colType = (thePic.pm_form==PM_I || thePic.pm_np>1) + ? F_FULLCOLOR : F_GREYSCALE; +- sprintf(pinfo->fullInfo,"PM, %s. (%d plane %s) (%ld bytes)", +- (thePic.pm_form==PM_I || thePic.pm_np>1) ++ sprintf(pinfo->fullInfo,"PM, %s. (%d plane %s) (%d bytes)", ++ (thePic.pm_form==PM_I || thePic.pm_np>1) + ? "24-bit color" : "8-bit greyscale", + thePic.pm_np, (thePic.pm_form==PM_I) ? "PM_I" : "PM_C", + isize + PM_IOHDR_SIZE + thePic.pm_cmtsize); +@@ -313,7 +321,7 @@ + + else if (colorstyle == 1) { /* GreyScale: 8 bits per pixel */ + byte rgb[256]; +- ++ + if (ptype == PIC8) { + for (i=0; i dispHIGH) wy = dispHIGH - h; + } + +- ++ + if (winCtrPosKludge) { + wx -= (p_offx + ch_offx); + wy -= (p_offy + ch_offy); +- } ++ } + else { + wx -= (ch_offx); + wy -= (ch_offy); +@@ -197,7 +198,7 @@ + /* attach controls to popW, now that it exists */ + if (poptyp==ISGRAB) ahideCB.win = popW; + else if (poptyp == ISPAD) { +- ++ + if (!padHaveDooDads) { + DCreate(&padWDial, popW, 16, puhigh-16-100-1,75,100, + 1, 2048, pWIDE, 10, +@@ -230,8 +231,8 @@ + XMapWindow(theDisp, padWDial.win); + XMapWindow(theDisp, padHDial.win); + XMapWindow(theDisp, padODial.win); +- } +- ++ } ++ + + XResizeWindow(theDisp, popW, (u_int) puwide, (u_int) puhigh); + XStoreName (theDisp, popW, wname); +@@ -257,9 +258,9 @@ + } + else if (poptyp == ISPAD) { + BTSetActive(&bts[0], (int) strlen(gsBuf)); +- i = pWIDE * 3; RANGE(i,2048,9999); ++ i = pWIDE * 3; RANGE(i,2048,9999); + DSetRange(&padWDial, 1, i, padWDial.val, 10); +- i = pHIGH * 3; RANGE(i,2048,9999); ++ i = pHIGH * 3; RANGE(i,2048,9999); + DSetRange(&padHDial, 1, i, padHDial.val, 10); + + DSetActive(&padWDial, (padMode!=PAD_LOAD)); /* DSetRange activates dial */ +@@ -283,14 +284,14 @@ + } + } + +- /* center first button in window around mouse position, with constraint that ++ /* center first button in window around mouse position, with constraint that + window be fully on the screen */ + + CenterMapWindow(popW, 40 + bts[0].x, BUTTH/2 + bts[0].y, puwide, puhigh); + popUp = poptyp; + + /* MUST wait for VisibilityNotify event to come in, else we run the risk +- of UnMapping the window *before* the Map request completed. This ++ of UnMapping the window *before* the Map request completed. This + appears to be bad, (It leaves an empty window frame up.) though it + generally only happens on slow servers. Better safe than screwed... */ + +@@ -338,10 +339,10 @@ + button labels have 1-character accellerators at the front, same + as in PopUp(). Note that it would be suboptimal to make any + of the 1-character accellerators be the same character as one of +- the edit-text command keys ++ the edit-text command keys + + Also note that the filter string should only contain normal printable +- characters (' ' through '\177'), as ctrl chars are pre-filtered ++ characters (' ' through '\177'), as ctrl chars are pre-filtered + (ie, interpreted as emacs-like commands) */ + + gsBuf = buf; gsBufLen = buflen; +@@ -358,7 +359,7 @@ + gsy = PUHIGH - 10 - BUTTH - 10 - gsh - 20; + + gsw = PUWIDE - gsx - 10; +- ++ + changedGSBuf(); /* careful! popW doesn't exist yet! */ + + return doPopUp(txt, labels, n, ISGETSTR, "xv prompt"); +@@ -390,7 +391,7 @@ + changedGSBuf(); /* careful! popW doesn't exist yet! */ + + /* window value gets filled in in doPopUp() */ +- CBCreate(&ahideCB, (Window) NULL, ++ CBCreate(&ahideCB, (Window) NULL, + PUWIDE-10-18-StringWidth(HIDESTR), + gsy+2, HIDESTR, infofg, infobg, hicol, locol); + ahideCB.val = *pHide; +@@ -464,8 +465,8 @@ + + changedGSBuf(); /* careful! popW doesn't exist yet! */ + +- if (padHaveDooDads) { +- oldW = padWDial.val; ++ if (padHaveDooDads) { ++ oldW = padWDial.val; + oldH = padHDial.val; + oldO = padODial.val; + } +@@ -496,8 +497,8 @@ + XUnmapWindow(theDisp, padODial.win); + + /* load up return values */ +- *pMode = padMode; +- *pStr = padBuf; ++ *pMode = padMode; ++ *pStr = padBuf; + *pWide = padWDial.val; + *pHigh = padHDial.val; + *pOpaque = padODial.val; +@@ -513,8 +514,6 @@ + /* generates padCol* and padBg* lists used in 'Defaults' MBUTT. Grabs + all the X resources values it can, and adds appropriate defaults */ + +- int i; +- + rd_str_cl("foo", "", 1); /* rebuild database */ + + build1PadList("color", padColVals, padColNames, &padColLen, +@@ -526,15 +525,15 @@ + build1PadList("load", padLoadVals, padLoadNames, &padLoadLen, + (char **) NULL, (char **) NULL, 0); + } +- +- ++ ++ + /***************************************************/ + static void build1PadList(typstr, vals, nams, lenp, dvals, dnams, dlen) + char *typstr, **vals, **nams, **dvals, **dnams; + int *lenp, dlen; + { + int i; +- char resname[128], name[256], value[256]; ++ char resname[128]; + + for (i=0; i<*lenp; i++) { /* kill old lists */ + free(nams[i]); +@@ -548,7 +547,7 @@ + vals[*lenp] = (char *) malloc(strlen(def_str)+1); + if (!vals[*lenp]) continue; + strcpy(vals[*lenp], def_str); +- ++ + sprintf(resname, "pad.%s.name%d", typstr, i); + if (rd_str_cl(resname, "Dialog.Menu.Slot",0)) { /* and it has a name! */ + nams[*lenp] = (char *) malloc(strlen(def_str)+1); +@@ -560,13 +559,14 @@ + nams[*lenp] = (char *) malloc((size_t) 32); + if (!nams[*lenp]) { free(vals[*lenp]); continue; } + strncpy(nams[*lenp], vals[*lenp], (size_t) 31); ++ nams[*lenp][31] = '\0'; + } +- ++ + if (strlen(nams[*lenp]) > (size_t) 20) { /* fix long names */ + char *sp = nams[*lenp] + 18; + *sp++ = '.'; *sp++ = '.'; *sp++ = '.'; *sp++ = '\0'; + } +- ++ + *lenp = (*lenp) + 1; + } + } +@@ -583,7 +583,7 @@ + strcpy(nams[*lenp], dnams[i]); + *lenp = (*lenp) + 1; + } +-} ++} + + + +@@ -605,7 +605,7 @@ + void OpenAlert(txt) + char *txt; + { +- /* pops up a window with txt displayed in it (*no buttons*). ++ /* pops up a window with txt displayed in it (*no buttons*). + returns immediately. window is closed by 'CloseAlert()'. + No 'PopUp()' calls are allowed while an Alert is displayed. */ + +@@ -624,14 +624,14 @@ + puwide = PUWIDE; puhigh = PUHIGH; + XResizeWindow(theDisp, popW, (u_int) puwide, (u_int) puhigh); + +- /* center last button in window around mouse position, with constraint that ++ /* center last button in window around mouse position, with constraint that + window be fully on the screen */ + + CenterMapWindow(popW, puwide/2, puhigh/2, puwide, puhigh); + popUp = ISALERT; + + /* MUST wait for VisibilityNotify event to come in, else we run the risk +- of UnMapping the window *before* the Map request completed. This ++ of UnMapping the window *before* the Map request completed. This + appears to be bad, (It leaves an empty window frame up.) though it + generally only happens on slow servers. Better safe than screwed... */ + +@@ -695,7 +695,7 @@ + XKeyEvent *e = (XKeyEvent *) xev; + char buf[128]; KeySym ks; + int stlen, i, shift, ck; +- ++ + stlen = XLookupString(e,buf,128,&ks,(XComposeStatus *) NULL); + shift = e->state & ShiftMask; + ck = CursorKey(ks, shift, 0); +@@ -725,7 +725,7 @@ + rv = 1; + } + +- if (!rv && (popUp==ISGETSTR || popUp==ISGRAB || popUp==ISPAD)) { ++ if (!rv && (popUp==ISGETSTR || popUp==ISGRAB || popUp==ISPAD)) { + if (e->window == popW) { doGetStrKey(buf[0]); rv = 1; } + } + } +@@ -775,10 +775,10 @@ + int i, inbreak, lineno, top, hardcr, maxln, len[TR_MAXLN]; + + XSetForeground(theDisp, theGC, fg); +- ++ + sp = txt; lineno = hardcr = 0; + +- maxln = h / LINEHIGH; ++ maxln = h / LINEHIGH; + RANGE(maxln,0,TR_MAXLN); + while (*sp && lineno w) { +@@ -812,7 +812,7 @@ + } + + start[lineno] = sp; len[lineno] = ep-sp; +- ++ + /* make sure we don't print a trailing '\n' character! */ + if (len[lineno] > 0) { + while (sp[len[lineno]-1] == '\n') len[lineno] = len[lineno] - 1; +@@ -835,7 +835,7 @@ + /***************************************************/ + static void createPUD() + { +- popW = CreateWindow("xv confirm", "XVconfirm", "+0+0", ++ popW = CreateWindow("xv confirm", "XVconfirm", "+0+0", + PUWIDE, PUHIGH, infofg, infobg, 0); + if (!popW) FatalError("can't create popup window!"); + +@@ -847,7 +847,7 @@ + bts = (BUTT *) NULL; + nbts = selected = firsttime = 0; + } +- ++ + + /***************************************************/ + static void attachPUD() +@@ -913,24 +913,24 @@ + XDrawLine(theDisp, popW, theGC, 16+1+75+75+5, puhigh-140 + 6+8, + 16+1+75+75+5, puhigh-10-4); + } +- ++ + + XSetForeground(theDisp, theGC, infofg); +- XDrawRectangle(theDisp, popW, theGC, 268, puhigh-140, ++ XDrawRectangle(theDisp, popW, theGC, 268, puhigh-140, + (u_int) puwide - 10 - 268, 130-BUTTH-10); +- Draw3dRect(popW, 268+1, puhigh-140+1, (u_int) puwide -10-268-2, ++ Draw3dRect(popW, 268+1, puhigh-140+1, (u_int) puwide -10-268-2, + 130-2 - BUTTH-10, R3D_IN,2,hicol,locol,infobg); +- +- TextRect(popW,padInst,268+5, puhigh-140+3, puwide-10-268-10, ++ ++ TextRect(popW,padInst,268+5, puhigh-140+3, puwide-10-268-10, + 130-6 - BUTTH-10, infofg); + } + + else { + XCopyPlane(theDisp, iconPix, popW, theGC, 0,0, icon_width, icon_height, + 10,10+(puhigh-30-BUTTH-icon_height)/2, 1L); +- ++ + xt = 10+icon_width+20; yt = 10; +- ++ + if (popUp == ISGETSTR) { + TextRect(popW, text, xt, yt, puwide-10-xt, gsy-20, infofg); + drawGSBuf(); +@@ -947,22 +947,22 @@ + /***************************************************/ + static void drawPadOMStr() + { +- CenterString(popW, padODial.x + (padODial.w - 13)/2, ++ CenterString(popW, padODial.x + (padODial.w - 13)/2, + puhigh-16-100-12, padOMStr[padOMode]); + } +- ++ + /***************************************************/ + static void clickPUD(x,y) + int x,y; + { + int i; + BUTT *bp; +- ++ + for (i=0; ix, bp->y, bp->w, bp->h)) break; + } +- ++ + if (i=' ' && c<'\177') { /* 'NORMAL' CHARACTERS */ + if (flen) { /* check filter string */ +@@ -1097,7 +1097,7 @@ + if (!gsAllow && i< flen) return 1; /* found in 'disallow' filter */ + if ( gsAllow && i==flen) return 1; /* not found in 'allow' filter */ + } +- ++ + if (len >= gsBufLen-1) return 1; /* at max length */ + + xvbcopy(&gsBuf[gsCurPos], &gsBuf[gsCurPos+1], (size_t) len-gsCurPos+1); +@@ -1147,7 +1147,7 @@ + + changedGSBuf(); /* compute gsEnPos, gsStPos */ + +- if (ctrlColor) ++ if (ctrlColor) + XClearArea(theDisp, popW, gsx+3,gsy+3, (u_int)gsw-5, (u_int)gsh-5, False); + else + XClearArea(theDisp, popW, gsx+1,gsy+1, (u_int)gsw-1, (u_int)gsh-1, False); +@@ -1175,7 +1175,7 @@ + /***************************************************/ + static void changedGSBuf() + { +- /* cursor position (or whatever) may have changed. adjust displayed ++ /* cursor position (or whatever) may have changed. adjust displayed + portion of gsBuf */ + + int len; +@@ -1212,7 +1212,7 @@ + + XSetForeground(theDisp, theGC, infofg); + XDrawRectangle(theDisp, popW, theGC, gsx, gsy, (u_int) gsw, (u_int) gsh); +- Draw3dRect(popW, gsx+1, gsy+1, (u_int) gsw-2, (u_int) gsh-2, ++ Draw3dRect(popW, gsx+1, gsy+1, (u_int) gsw-2, (u_int) gsh-2, + R3D_IN, 2, hicol,locol,infobg); + + XSetForeground(theDisp, theGC, infofg); +diff -ruN xv-3.10a/xvps.c xv-3.10a-bugfixes/xvps.c +--- xv-3.10a/xvps.c 1994-12-22 14:34:42.000000000 -0800 ++++ xv-3.10a-bugfixes/xvps.c 2005-03-30 08:18:17.000000000 -0800 +@@ -1,4 +1,4 @@ +-/* ++/* + * xvps.c - Postscript dialog box, file output functions + * + * callable functions: +@@ -71,10 +71,13 @@ + static void psColorImage PARM((FILE *)); + static void psColorMap PARM((FILE *fp, int, int, byte *, byte *, byte *)); + static void psRleCmapImage PARM((FILE *, int)); +-static void epsPreview PARM((FILE *, byte *, int, int, int, int, ++static void epsPreview PARM((FILE *, byte *, int, int, int, int, + byte *, byte *, byte *, int)); + static int writeBWStip PARM((FILE *, byte *, char *, int, int, int)); + ++#ifdef GS_PATH ++static void buildCmdStr PARM((char *, char *, char *, int, int)); ++#endif + + + /* local variables */ +@@ -123,7 +126,7 @@ + void CreatePSD(geom) + char *geom; + { +- psW = CreateWindow("xv postscript", "XVps", geom, ++ psW = CreateWindow("xv postscript", "XVps", geom, + PSWIDE, PSHIGH, infofg, infobg, 0); + if (!psW) FatalError("can't create postscript window!"); + +@@ -139,9 +142,9 @@ + CBCreate(&encapsCB, psW, 240, 7, "preview", infofg, infobg, hicol, locol); + CBCreate(&pscompCB, psW, 331, 7, "compress", infofg, infobg, hicol, locol); + +- DCreate(&xsDial, psW, 240, 30, 80, 100, 10, 800, 100, 5, ++ DCreate(&xsDial, psW, 240, 30, 80, 100, 10, 800, 100, 5, + infofg, infobg, hicol, locol, "Width", "%"); +- DCreate(&ysDial, psW, 331, 30, 80, 100, 10, 800, 100, 5, ++ DCreate(&ysDial, psW, 331, 30, 80, 100, 10, 800, 100, 5, + infofg, infobg, hicol, locol, "Height", "%"); + xsDial.drawobj = changedScale; + ysDial.drawobj = changedScale; +@@ -154,38 +157,38 @@ + RBCreate(orientRB, psW, 36+80, 240+18, "Landscape", infofg, infobg, + hicol, locol); + +- paperRB = RBCreate(NULL, psW,36, 240+18+36, "8.5\"x11\"", ++ paperRB = RBCreate(NULL, psW,36, 240+18+36, "8.5\"x11\"", + infofg, infobg, hicol, locol); + RBCreate(paperRB, psW, 36+80, 240+18+36, "A4", + infofg, infobg, hicol, locol); +- RBCreate(paperRB, psW, 36+122, 240+18+36, "B5", ++ RBCreate(paperRB, psW, 36+122, 240+18+36, "B5", + infofg, infobg, hicol, locol); +- RBCreate(paperRB, psW, 36+164, 240+18+36, "A3", ++ RBCreate(paperRB, psW, 36+164, 240+18+36, "A3", + infofg, infobg, hicol, locol); + RBCreate(paperRB, psW, 36, 240+36+36, "8.5\"x14\"", + infofg, infobg, hicol, locol); +- RBCreate(paperRB, psW, 36+80, 240+36+36, "11\"x17\"", ++ RBCreate(paperRB, psW, 36+80, 240+36+36, "11\"x17\"", + infofg, infobg, hicol, locol); +- RBCreate(paperRB, psW, 36, 240+54+36, "4\"x5\"", ++ RBCreate(paperRB, psW, 36, 240+54+36, "4\"x5\"", + infofg, infobg, hicol, locol); +- RBCreate(paperRB, psW, 36+80, 240+54+36, "35mm slide", ++ RBCreate(paperRB, psW, 36+80, 240+54+36, "35mm slide", + infofg, infobg, hicol, locol); + +- BTCreate(&psbut[PS_BOK], psW, PSWIDE-180, PSHIGH-10-BUTTH, 80, BUTTH, ++ BTCreate(&psbut[PS_BOK], psW, PSWIDE-180, PSHIGH-10-BUTTH, 80, BUTTH, + "Ok", infofg, infobg, hicol, locol); +- BTCreate(&psbut[PS_BCANC], psW, PSWIDE-90, PSHIGH-10-BUTTH, 80, BUTTH, ++ BTCreate(&psbut[PS_BCANC], psW, PSWIDE-90, PSHIGH-10-BUTTH, 80, BUTTH, + "Cancel", infofg, infobg, hicol, locol); + +- BTCreate(&psbut[PS_BCENT], psW, 240, 154, 55, BUTTH-2, ++ BTCreate(&psbut[PS_BCENT], psW, 240, 154, 55, BUTTH-2, + "Center", infofg, infobg, hicol, locol); +- BTCreate(&psbut[PS_BORG], psW, 298, 154, 55, BUTTH-2, ++ BTCreate(&psbut[PS_BORG], psW, 298, 154, 55, BUTTH-2, + "Origin", infofg, infobg, hicol, locol); +- BTCreate(&psbut[PS_BMAX], psW, 356, 154, 55, BUTTH-2, ++ BTCreate(&psbut[PS_BMAX], psW, 356, 154, 55, BUTTH-2, + "Max", infofg, infobg, hicol, locol); + +- BTCreate(&psbut[PS_BPOSX], psW, 256-14, 190+13-8, 8,8, "", ++ BTCreate(&psbut[PS_BPOSX], psW, 256-14, 190+13-8, 8,8, "", + infofg, infobg, hicol, locol); +- BTCreate(&psbut[PS_BPOSY], psW, 256-14, 190+26-8, 8,8, "", ++ BTCreate(&psbut[PS_BPOSY], psW, 256-14, 190+26-8, 8,8, "", + infofg, infobg, hicol, locol); + + posxType = posyType = 0; +@@ -246,7 +249,7 @@ + + XMapSubwindows(theDisp, psW); + } +- ++ + + /***************************************************/ + void PSDialog(vis) +@@ -289,7 +292,7 @@ + x = e->x; y = e->y; w = e->width; h = e->height; + + /* throw away excess expose events for 'dumb' windows */ +- if (e->count > 0 && ++ if (e->count > 0 && + (e->window == xsDial.win || e->window == ysDial.win || + e->window == pageF)) {} + +@@ -332,7 +335,7 @@ + XKeyEvent *e = (XKeyEvent *) xev; + char buf[128]; KeySym ks; + int stlen, shift, ck; +- ++ + stlen = XLookupString(e,buf,128,&ks,(XComposeStatus *) NULL); + shift = e->state & ShiftMask; + ck = CursorKey(ks, shift, 0); +@@ -497,7 +500,7 @@ + XSetFont(theDisp, theGC, mfont); + } + +- ++ + /***************************************************/ + static void drawSizeStr() + { +@@ -522,7 +525,7 @@ + XSetFont(theDisp, theGC, mfont); + } + +- ++ + /***************************************************/ + static void drawResStr() + { +@@ -540,9 +543,9 @@ + XSetFont(theDisp, theGC, mfont); + } + +- +- +- ++ ++ ++ + /***************************************************/ + static void drawPage() + { +@@ -554,7 +557,7 @@ + XSetForeground(theDisp, theGC, infofg); + XDrawRectangle(theDisp, pageF, theGC, pageRect.x, pageRect.y, + (u_int) pageRect.width, (u_int) pageRect.height); +- ++ + drawIRect(1); + } + +@@ -611,7 +614,7 @@ + unsigned int mask; + double offx, offy, newx, newy; + +- /* compute offset (in inches) between 'drag point' and ++ /* compute offset (in inches) between 'drag point' and + the top-left corner of the image */ + + offx = ((mx - pageRect.x) / in2pix) - pos_inx; +@@ -642,7 +645,7 @@ + char *fullname; + + switch (cmd) { +- case PS_BOK: writePS(); ++ case PS_BOK: writePS(); + PSDialog(0); + fullname = GetDirFullName(); + if (!ISPIPE(fullname[0])) { +@@ -721,15 +724,15 @@ + + GetSaveSize(&w, &h); + +- sz_inx = (double) w / PIX2INCH * (xsDial.val / 100.0); +- sz_iny = (double) h / PIX2INCH * (ysDial.val / 100.0); ++ sz_inx = (double) w / PIX2INCH * (xsDial.val / 100.0); ++ sz_iny = (double) h / PIX2INCH * (ysDial.val / 100.0); + + /* round to integer .001ths of an inch */ + sz_inx = floor(sz_inx * 1000.0 + 0.5) / 1000.0; + sz_iny = floor(sz_iny * 1000.0 + 0.5) / 1000.0; + +- dpix = (int) (PIX2INCH / (xsDial.val / 100.0)); +- dpiy = (int) (PIX2INCH / (ysDial.val / 100.0)); ++ dpix = (int) (PIX2INCH / (xsDial.val / 100.0)); ++ dpiy = (int) (PIX2INCH / (ysDial.val / 100.0)); + + /* make sure 'center' of image is still on page */ + hsx = sz_inx/2; hsy = sz_iny/2; +@@ -783,20 +786,20 @@ + { + int x,y,w,h; + XRectangle xr; +- ++ + x = pageRect.x + (int) (pos_inx * in2pix); + y = pageRect.y + (int) (pos_iny * in2pix); + w = sz_inx * in2pix; + h = sz_iny * in2pix; +- ++ + xr.x = pageRect.x + 1; + xr.y = pageRect.y + 1; + xr.width = pageRect.width - 1; + xr.height = pageRect.height - 1; +- ++ + if (draw) XSetForeground(theDisp, theGC, infofg); + else XSetForeground(theDisp, theGC, infobg); +- ++ + XSetClipRectangles(theDisp, theGC, 0,0, &xr, 1, Unsorted); + XDrawRectangle(theDisp, pageF, theGC, x, y, (u_int) w, (u_int) h); + XDrawLine(theDisp, pageF, theGC, x, y, x+w, y+h); +@@ -839,15 +842,15 @@ + DSetVal(&xsDial, (int) ((100 * (sz_inx * PIX2INCH) / w) + .5)); + DSetVal(&ysDial, xsDial.val); + +- sz_inx = (double) w / PIX2INCH * (xsDial.val / 100.0); +- sz_iny = (double) h / PIX2INCH * (ysDial.val / 100.0); ++ sz_inx = (double) w / PIX2INCH * (xsDial.val / 100.0); ++ sz_iny = (double) h / PIX2INCH * (ysDial.val / 100.0); + + /* round to integer .001ths of an inch */ + sz_inx = floor(sz_inx * 1000.0 + 0.5) / 1000.0; + sz_iny = floor(sz_iny * 1000.0 + 0.5) / 1000.0; + +- dpix = (int) (PIX2INCH / (xsDial.val / 100.0)); +- dpiy = (int) (PIX2INCH / (ysDial.val / 100.0)); ++ dpix = (int) (PIX2INCH / (xsDial.val / 100.0)); ++ dpiy = (int) (PIX2INCH / (ysDial.val / 100.0)); + + pos_inx = psizex/2 - sz_inx/2; + pos_iny = psizey/2 - sz_iny/2; +@@ -888,7 +891,7 @@ + static void writePS() + { + FILE *fp; +- int i, j, q, err, rpix, gpix, bpix, nc, ptype; ++ int i, j, err, rpix, gpix, bpix, nc, ptype; + int iw, ih, ox, oy, slen, lwidth, bits, colorps, w, h, pfree; + double iwf, ihf; + byte *inpix, *rmap, *gmap, *bmap; +@@ -900,13 +903,19 @@ + if (!fp) return; + + WaitCursor(); +- ++ + inpix = GenSavePic(&ptype, &w, &h, &pfree, &nc, &rmap, &gmap, &bmap); + +- ++ if (w <= 0 || h <= 0 || w*2 < w) { ++ SetISTR(ISTR_WARNING,"%s: Image dimensions out of range", filename); ++ CloseOutFile(fp, filename, 1); ++ return; ++ } ++ ++ + /* printed image will have size iw,ih (in picas) */ + iw = (int) (sz_inx * 72.0 + 0.5); +- ih = (int) (sz_iny * 72.0 + 0.5); ++ ih = (int) (sz_iny * 72.0 + 0.5); + iwf = sz_inx * 72.0; + ihf = sz_iny * 72.0; + +@@ -923,12 +932,12 @@ + fprintf(fp,"%%%%Creator: XV %s - by John Bradley\n",REVDATE); + + if (RBWhich(orientRB)==ORNT_LAND) /* Landscape mode */ +- fprintf(fp,"%%%%BoundingBox: %d %d %d %d\n", ++ fprintf(fp,"%%%%BoundingBox: %d %d %d %d\n", + (int) (pos_iny * 72.0 + 0.5), + (int) (pos_inx * 72.0 + 0.5), + (int) (pos_iny * 72.0 + 0.5) + ih, + (int) (pos_inx * 72.0 + 0.5) + iw); +- else ++ else + fprintf(fp,"%%%%BoundingBox: %d %d %d %d\n", ox, oy, ox+iw, oy+ih); + + fprintf(fp,"%%%%Pages: 1\n"); +@@ -943,9 +952,9 @@ + case F_BWDITHER: slen = (w+7)/8; bits = 1; colorps = 0; break; + default: FatalError("unknown colorType in writePS()"); break; + } +- ++ + if (encapsCB.val) epsPreview(fp, inpix, ptype, colorType, w, h, +- rmap,gmap,bmap, ++ rmap,gmap,bmap, + (RBWhich(orientRB)==ORNT_LAND) ); + + fprintf(fp,"%%%%EndProlog\n\n"); +@@ -978,7 +987,7 @@ + fprintf(fp,"%% print in landscape mode\n"); + fprintf(fp,"90 rotate 0 %d translate\n\n",(int) (-psizey*72.0)); + } +- ++ + if (RBWhich(paperRB) == PSZ_4BY5 || + RBWhich(paperRB) == PSZ_35MM) { + fprintf(fp,"%% we're going to a 4x5 or a 35mm film recorder.\n"); +@@ -1083,12 +1092,12 @@ + gpix = inpix[1]; + bpix = inpix[2]; + } +- +- if (colorps) { ++ ++ if (colorps) { + err = fprintf(fp,"%02x%02x%02x",rpix,gpix,bpix); + lwidth+=6; + } +- ++ + else { /* greyscale */ + err = fprintf(fp,"%02x", MONO(rpix,gpix,bpix)); + lwidth+=2; +@@ -1106,7 +1115,7 @@ + fprintf(fp,"\n\n"); + fprintf(fp,"%%\n"); + fprintf(fp,"%% Compression made this file %.2f%% %s\n", +- 100.0 * ((double) outbytes) / ++ 100.0 * ((double) outbytes) / + ((double) eWIDE * eHIGH * ((colorps) ? 3 : 1)), + "of the uncompressed size."); + fprintf(fp,"%%\n"); +@@ -1147,10 +1156,10 @@ + * + * returns length of the rleline vector + */ +- ++ + int i, j, blocklen, isrun, rlen; + byte block[256], pix; +- ++ + blocklen = isrun = rlen = 0; + + for (i=0; i1) { /* have a non-run block to flush */ +@@ -1215,7 +1224,7 @@ + + else { + rleline[rlen++] = (blocklen-1) | 0x80; +- for (j=0; j MONO(rmap[1],gmap[1],bmap[1])); + } + +- +- fprintf(fp,"%%%%BeginPreview: %d %d %d %d\n", w, h, 1, ++ ++ fprintf(fp,"%%%%BeginPreview: %d %d %d %d\n", w, h, 1, + (w/(72*4) + 1) * h); + + writeBWStip(fp, prev, "% ", w, h, !flipbw); +@@ -1471,7 +1496,7 @@ + char *prompt; + int w, h, flipbw; + { +- /* write the given 'pic' (B/W stippled, 1 byte per pixel, 0=blk,1=wht) ++ /* write the given 'pic' (B/W stippled, 1 byte per pixel, 0=blk,1=wht) + out as hexadecimal, max of 72 hex chars per line. + + if 'flipbw', then 0=white, 1=black +@@ -1535,25 +1560,32 @@ + document is multiple pages, a series of PNM files are created, and + the first one is loaded (but not deleted) */ + +- +- char tmp[512], tmp1[512], tmpname[64]; +- int gsresult, nump, i, filetype; ++#ifdef GS_PATH ++ char tmp[512], gscmd[512], cmdstr[512], tmpname[64]; ++ int gsresult, nump, i, filetype, doalert, epsf; + char *rld; ++#endif + + pinfo->pic = (byte *) NULL; + pinfo->comment = (char *) NULL; + +- + #ifdef GS_PATH + ++ doalert = (!quick && !ctrlUp && !infoUp); /* open alert if no info wins */ ++ epsf = 0; ++ + #ifndef VMS + sprintf(tmpname, "%s/xvpgXXXXXX", tmpdir); + #else + sprintf(tmpname, "Sys$Scratch:xvpgXXXXXX"); + #endif + ++#ifdef USE_MKSTEMP ++ close(mkstemp(tmpname)); ++#else + mktemp(tmpname); +- if (tmpname[0] == '\0') { /* mktemp() blew up */ ++#endif ++ if (tmpname[0] == '\0') { /* mktemp() or mkstemp() blew up */ + sprintf(str,"LoadPS: Unable to create temporary filename???"); + ErrPopUp(str, "\nHow unlikely!"); + return 0; +@@ -1561,13 +1593,13 @@ + strcat(tmpname,"."); + + +- /* build command string */ ++ /* build 'gscmd' string */ + + #ifndef VMS /* VMS needs quotes around mixed case command lines */ +- sprintf(tmp, "%s -sDEVICE=%s -r%d -q -dNOPAUSE -sOutputFile=%s%%d ", ++ sprintf(gscmd, "%s -sDEVICE=%s -r%d -q -dNOPAUSE -sOutputFile=%s%%d ", + GS_PATH, gsDev, gsRes, tmpname); + #else +- sprintf(tmp, ++ sprintf(gscmd, + "%s \"-sDEVICE=%s\" -r%d -q \"-dNOPAUSE\" \"-sOutputFile=%s%%d\" ", + GS_PATH, gsDev, gsRes, tmpname); + #endif +@@ -1575,74 +1607,60 @@ + + #ifdef GS_LIB + # ifndef VMS +- sprintf(tmp1, "-I%s ", GS_LIB); ++ sprintf(tmp, "-I%s ", GS_LIB); + # else +- sprintf(tmp1, "\"-I%s\"", GS_LIB); ++ sprintf(tmp, "\"-I%s\" ", GS_LIB); + # endif +- strcat(tmp, tmp1); ++ strcat(gscmd, tmp); + #endif + +- if (gsGeomStr) { +- sprintf(tmp1, "-g%s ", gsGeomStr); +- strcat(tmp, tmp1); +- } +- +- /* if 'quick' is set, stop processing after first page by tacking +- some PostScript commands that break the 'showpage' operator onto +- the front of the stream passed to the ghostscript interpreter */ + ++ /* prevent some potential naughtiness... */ + #ifndef VMS +- if (quick) { +- sprintf(tmp1, "echo '%s' | cat - %s | %s -", +- "/showpage { showpage quit } bind def", /* mk showpage exit */ +- fname, tmp); +- strcpy(tmp, tmp1); +- } +- else { +- strcat(tmp, " -- "); +- strcat(tmp, fname); +- } +-#else /* VMS */ +- /* VMS doesn't have pipes or an 'echo' command and GS doesn't like +- Unix-style file names as input files in the VMS version */ +- strcat(tmp, " -- "); +- rld = strrchr(fname, '/'); /* Pointer to last '/' */ +- if (rld) rld++; /* Pointer to filename */ +- else rld = fname; /* No path - use original string */ +- strcat(tmp, rld); ++ strcat(gscmd, "-dSAFER "); ++#else ++ strcat(gscmd, "\"-dSAFER\" "); + #endif + + ++ if (gsGeomStr) { ++ sprintf(tmp, "-g%s ", gsGeomStr); ++ strcat(gscmd, tmp); ++ } + + +- WaitCursor(); +- +- if (DEBUG) fprintf(stderr,"LoadPS: executing command '%s'\n", tmp); +- SetISTR(ISTR_INFO, "Running '%s'...", GS_PATH); ++ do { ++ buildCmdStr(cmdstr, gscmd, fname, quick, epsf); + +- sprintf(tmp1, "Running %s", tmp); +- if (!quick && !ctrlUp && !infoUp) OpenAlert(tmp1); ++ if (DEBUG) fprintf(stderr,"LoadPS: executing command '%s'\n", cmdstr); ++ SetISTR(ISTR_INFO, "Running '%s'...", GS_PATH); ++ sprintf(tmp, "Running %s", cmdstr); ++ if (doalert && epsf==0) OpenAlert(tmp); /* open alert first time only */ + +-#ifndef VMS +- gsresult = system(tmp); +-#else +- gsresult = !system(tmp); ++ WaitCursor(); ++ gsresult = system(cmdstr); ++ WaitCursor(); ++#ifdef VMS ++ gsresult = !gsresult; /* VMS returns non-zero if OK */ + #endif + +- WaitCursor(); ++ /* count # of files produced... */ ++ for (i=1; i<1000; i++) { ++ struct stat st; ++ sprintf(tmp, "%s%d", tmpname, i); ++ if (stat(tmp, &st)!=0) break; ++ } ++ nump = i-1; ++ WaitCursor(); + +- if (!quick && !ctrlUp && !infoUp) CloseAlert(); ++ /* EPSF hack: if gsresult==0 (OK) and 0 pages produced, ++ try tacking a 'showpage' onto the end of the file, do it again... */ ++ ++ if (!gsresult && !nump && !epsf) epsf++; ++ } while (!gsresult && !nump && epsf<2); ++ ++ if (doalert) CloseAlert(); + +- /* figure out how many page files were created, by stating files. +- breaks out on first failure, assuming there won't be any more after +- that, and it would complicate matters too much anyhow... */ +- +- for (i=1; i<1000; i++) { +- struct stat st; +- sprintf(tmp, "%s%d", tmpname, i); +- if (stat(tmp, &st)!=0) break; +- } +- nump = i-1; + + WaitCursor(); + +@@ -1664,7 +1682,7 @@ + return 0; + } + +- SetISTR(ISTR_INFO, "Running '%s'... Done. (%d page%s)", ++ SetISTR(ISTR_INFO, "Running '%s'... Done. (%d page%s)", + GS_PATH, nump, (nump==1) ? "" : "s"); + } + +@@ -1677,8 +1695,8 @@ + + sprintf(tmp, "%s%d", tmpname, 1); + filetype = ReadFileType(tmp); +- +- if (filetype == RFT_ERROR || filetype == RFT_UNKNOWN || ++ ++ if (filetype == RFT_ERROR || filetype == RFT_UNKNOWN || + filetype == RFT_COMPRESS) { /* shouldn't happen */ + SetISTR(ISTR_WARNING, "Couldn't load first page '%s'", tmp); + KillPageFiles(tmpname, nump); +@@ -1695,7 +1713,7 @@ + KillPageFiles(tmpname, nump); + SetCursors(-1); + return 0; +- } ++ } + + + /* SUCCESS! */ +@@ -1712,3 +1730,38 @@ + we don't have 'gs' package */ + } + ++ ++ ++/******************************************************************/ ++#ifdef GS_PATH ++void buildCmdStr(str, gscmd, fname, quick, epsf) ++ char *str, *gscmd, *fname; ++ int quick, epsf; ++{ ++ /* note 'epsf' set only on files that don't have a showpage cmd */ ++ ++#ifndef VMS ++ ++ if (epsf) sprintf(str, "echo '\n showpage ' | cat '%s' - | %s -", ++ fname, gscmd); ++ ++ else if (quick) sprintf(str, "echo '%s' | cat - '%s' | %s -", ++ "/showpage { showpage quit } bind def", ++ fname, gscmd); ++ ++ else sprintf(str, "%s -- %s", gscmd, fname); ++ ++#else /* VMS */ ++ /* VMS doesn't have pipes or an 'echo' command and GS doesn't like ++ Unix-style file names as input files in the VMS version */ ++ strcat(tmp, " -- "); ++ rld = strrchr(fname, '/'); /* Pointer to last '/' */ ++ if (rld) rld++; /* Pointer to filename */ ++ else rld = fname; /* No path - use original string */ ++ strcat(tmp, rld); ++#endif /* VMS */ ++} ++#endif /* GS_PATH */ ++ ++ ++ +diff -ruN xv-3.10a/xvrle.c xv-3.10a-bugfixes/xvrle.c +--- xv-3.10a/xvrle.c 1995-01-19 09:27:47.000000000 -0800 ++++ xv-3.10a-bugfixes/xvrle.c 2005-03-29 23:29:14.000000000 -0800 +@@ -43,8 +43,8 @@ + byte bgcol[256]; + byte maps[3][256]; + int xpos, ypos, w, h, flags, ncolors, pixelbits, ncmap, cmaplen; +- int cmtlen; +- byte *img, *pic8; ++ int cmtlen, npixels, bufsize=0; ++ byte *img; + long filesize; + char *bname, *errstr; + +@@ -57,7 +57,7 @@ + /* open the stream */ + fp = xv_fopen(fname,"r"); + if (!fp) return (rleError(bname, "unable to open file")); +- ++ + + /* figure out the file size */ + fseek(fp, 0L, 2); +@@ -85,7 +85,7 @@ + if (DEBUG) { + fprintf(stderr,"RLE: %dx%d image at %d,%d\n", w, h, xpos, ypos); + fprintf(stderr,"flags: 0x%02x (%s%s%s%s)\n", +- flags, ++ flags, + (flags & H_CLEARFIRST) ? "CLEARFIRST " : "", + (flags & H_NO_BACKGROUND) ? "NO_BG " : "", + (flags & H_ALPHA) ? "ALPHA " : "", +@@ -93,7 +93,7 @@ + + fprintf(stderr, "%d bands, %d pixelbits, %d cmap bands, %d cmap entries\n", + ncolors, pixelbits, ncmap, cmaplen); +- } ++ } + + if (!(flags & H_NO_BACKGROUND)) { + if (DEBUG) fprintf(stderr, "background value: "); +@@ -176,32 +176,44 @@ + + errstr = NULL; + if (ncolors == 0 || ncolors == 2) +- errstr = "Unsupt. # of channels in RLE file.\n"; ++ errstr = "Unsupported number of channels in RLE file"; + + if (pixelbits != 8) +- errstr = "Only 8-bit pixels supported in RLE files.\n"; ++ errstr = "Only 8-bit pixels supported in RLE files"; + + if (ncmap==0 || ncmap==1 || ncmap == 3 || ncmap == ncolors) { /* ok */ } +- else errstr = "Invalid # of colormap channels in RLE file.\n"; ++ else errstr = "Invalid number of colormap channels in RLE file"; + +- if (w<1 || h<1) +- errstr = "Bogus size in RLE header.\n"; ++ npixels = w * h; ++ if (w <= 0 || h <= 0 || npixels/w != h) ++ errstr = "RLE image dimensions out of range"; + + + if (errstr) { + fclose(fp); +- if (pinfo->comment) free(pinfo->comment); pinfo->comment = (char *) NULL; ++ if (pinfo->comment) ++ free(pinfo->comment); ++ pinfo->comment = (char *) NULL; + return rleError(bname, errstr); + } + + + /* allocate image memory */ +- if (ncolors == 1) img = (byte *) calloc((size_t) w * h, (size_t) 1); +- else img = (byte *) calloc((size_t) w * h * 3, (size_t) 1); ++ if (ncolors == 1) ++ img = (byte *) calloc((size_t) npixels, (size_t) 1); ++ else { ++ bufsize = 3*npixels; ++ if (bufsize/3 != npixels) ++ return rleError(bname, "RLE image dimensions out of range"); ++ img = (byte *) calloc((size_t) bufsize, (size_t) 1); ++ } ++ + if (!img) { + fclose(fp); +- if (pinfo->comment) free(pinfo->comment); pinfo->comment = (char *) NULL; +- return rleError(bname, "unable to allocate image data.\n"); ++ if (pinfo->comment) ++ free(pinfo->comment); ++ pinfo->comment = (char *) NULL; ++ return rleError(bname, "Unable to allocate RLE image data"); + } + + +@@ -209,10 +221,10 @@ + if ((flags & H_CLEARFIRST) && !(flags & H_NO_BACKGROUND)) { + byte *ip; + if (ncolors == 1) { +- for (i=0, ip=img; i= 3 && ncolors >=3) { /* one curve per band */ +- for (i=0, ip=img; ipic = img; +- pinfo->w = w; ++ pinfo->w = w; + pinfo->h = h; + pinfo->normw = pinfo->w; pinfo->normh = pinfo->h; + pinfo->frmType = -1; /* no default format to save in */ +@@ -260,7 +272,7 @@ + if (ncmap == 0 || ncmap == 1) { /* grey, or grey with gamma curve */ + pinfo->colType = F_GREYSCALE; + sprintf(pinfo->fullInfo, "Greyscale RLE. (%ld bytes)", filesize); +- for (i=0; i<256; i++) ++ for (i=0; i<256; i++) + pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i; + } + else { +@@ -272,7 +284,7 @@ + pinfo->b[i] = maps[2][i]; + } + } +- ++ + sprintf(pinfo->shrtInfo, "%dx%d RLE.",w, h); + } + +@@ -294,7 +306,7 @@ + int w, h, ncolors, ncmap; + { + int posx, posy, plane, bperpix, i, pixval, skipcalls; +- int opcode, operand, done, c, c1; ++ int opcode, operand, done, c, c1; + byte *ip; + + posx = posy = plane = done = skipcalls = 0; +@@ -324,7 +336,7 @@ + case RSkipPixelsOp: + if (opcode & LONG_OP) { getc(fp); operand = GETINT(fp); } + else operand = getc(fp); +- ++ + posx += operand; + break; + +@@ -340,7 +352,7 @@ + c = getc(fp); + if (planeeWIDE) { w1 = (eWIDE-x); } + + if (y<0) { offy = -y; h1 -= offy; y = 0; } + if (y+h1>eHIGH) { h1 = (eHIGH-y); } +- +- XPutImage(theDisp, tmpPix, theGC, theImage, offx, offy, ++ ++ XPutImage(theDisp, tmpPix, theGC, theImage, offx, offy, + x, y, (u_int) w1, (u_int) h1); + } + } +@@ -140,7 +140,7 @@ + + else if (rmode == RM_CWARP) { /* warp effect */ + XSetForeground(theDisp, theGC, rootfg); +- for (i=0; i<=dispWIDE; i+=8) ++ for (i=0; i<=dispWIDE; i+=8) + XDrawLine(theDisp,tmpPix,theGC, i,0, (int) dispWIDE-i,(int) dispHIGH); + for (i=0; i<=dispHIGH; i+=8) + XDrawLine(theDisp,tmpPix,theGC, 0,i, (int) dispWIDE, (int) dispHIGH-i); +@@ -150,16 +150,16 @@ + XSetForeground(theDisp, theGC, rootfg); + for (i=k=0; ilen = len; + sp->uplit = sp->dnlit = 0; + +- if (vert) XMoveResizeWindow(theDisp, sp->win, x,y, ++ if (vert) XMoveResizeWindow(theDisp, sp->win, x,y, + (u_int) sp->tsize,(u_int) len); + else XMoveResizeWindow(theDisp, sp->win, x,y, + (u_int) len, (u_int) sp->tsize); +@@ -144,7 +144,7 @@ + if (maxvmin = minv; sp->max = maxv; sp->page = page; + sp->active = (minv < maxv); +- ++ + /* adjust scroll bar background */ + if (sp->active) { + if (ctrlColor) XSetWindowBackground(theDisp, sp->win, sp->lo); +@@ -174,7 +174,7 @@ + + sp->val = curv; + +- if (sp->active) ++ if (sp->active) + sp->tpos = sp->tmin + ((sp->tmax - sp->tmin)*(curv - sp->min)) + / (sp->max - sp->min); + +@@ -194,20 +194,20 @@ + XSetBackground(theDisp, theGC, sp->bg); + + XClearWindow(theDisp, sp->win); +- ++ + drawArrow(sp,UPLINE); /* draw up/down arrows */ + drawArrow(sp,DNLINE); + + XSetForeground(theDisp, theGC, sp->fg); + +- if (sp->vert) { ++ if (sp->vert) { + XDrawLine(theDisp, sp->win, theGC, 0, sp->tsize, sp->tsize, sp->tsize); +- XDrawLine(theDisp, sp->win, theGC, 0, sp->len-sp->tsize-1, ++ XDrawLine(theDisp, sp->win, theGC, 0, sp->len-sp->tsize-1, + sp->tsize, sp->len-sp->tsize-1); + } + else { /* horizontal version */ + XDrawLine(theDisp, sp->win, theGC, sp->tsize, 0, sp->tsize, sp->tsize); +- XDrawLine(theDisp, sp->win, theGC, sp->len - sp->tsize-1, 0, ++ XDrawLine(theDisp, sp->win, theGC, sp->len - sp->tsize-1, 0, + sp->len - sp->tsize-1, sp->tsize); + } + +@@ -225,7 +225,7 @@ + + if (arr == UPLINE) { + XSetForeground(theDisp, theGC, sp->bg); +- XFillRectangle(theDisp, sp->win, theGC, 0, 0, ++ XFillRectangle(theDisp, sp->win, theGC, 0, 0, + (u_int) sp->tsize, (u_int) sp->tsize); + + if (sp->vert) butpix = (sp->uplit) ? up1Pix : upPix; +@@ -235,14 +235,14 @@ + XSetBackground(theDisp, theGC, sp->bg); + XCopyPlane(theDisp, butpix, sp->win, theGC, 0, 0, up_width,up_height, + 3,3, 1L); +- Draw3dRect(sp->win, 0,0, (u_int) sp->tsize-1, (u_int) sp->tsize-1, ++ Draw3dRect(sp->win, 0,0, (u_int) sp->tsize-1, (u_int) sp->tsize-1, + (sp->uplit) ? R3D_IN : R3D_OUT, 2, sp->hi, sp->lo, sp->bg); + } + + else if (arr == DNLINE) { + if (sp->vert) { + XSetForeground(theDisp, theGC, sp->bg); +- XFillRectangle(theDisp, sp->win, theGC, 0, sp->len - sp->tsize, ++ XFillRectangle(theDisp, sp->win, theGC, 0, sp->len - sp->tsize, + (u_int) sp->tsize, (u_int) sp->tsize); + butpix = (sp->dnlit) ? down1Pix : downPix; + +@@ -251,8 +251,8 @@ + XCopyPlane(theDisp, butpix, sp->win, theGC, 0, 0, up_width,up_height, + 3, sp->len - 3 - up_height, 1L); + +- Draw3dRect(sp->win, 0, sp->len - sp->tsize, +- (u_int) sp->tsize-1, (u_int) sp->tsize-1, ++ Draw3dRect(sp->win, 0, sp->len - sp->tsize, ++ (u_int) sp->tsize-1, (u_int) sp->tsize-1, + (sp->dnlit) ? R3D_IN : R3D_OUT, 2, sp->hi, sp->lo, sp->bg); + } + +@@ -267,8 +267,8 @@ + XCopyPlane(theDisp, butpix, sp->win, theGC, 0, 0, up_width,up_height, + sp->len - 3 - up_width, 3, 1L); + +- Draw3dRect(sp->win, sp->len - sp->tsize, 0, +- (u_int) sp->tsize-1, (u_int) sp->tsize-1, ++ Draw3dRect(sp->win, sp->len - sp->tsize, 0, ++ (u_int) sp->tsize-1, (u_int) sp->tsize-1, + (sp->dnlit) ? R3D_IN : R3D_OUT, 2, sp->hi, sp->lo, sp->bg); + } + } +@@ -283,17 +283,17 @@ + { + if (sp->vert) { + /* clear out thumb area with background color */ +- XClearArea(theDisp, sp->win, 0, sp->tsize+1, (u_int) sp->tsize, ++ XClearArea(theDisp, sp->win, 0, sp->tsize+1, (u_int) sp->tsize, + (u_int) ((sp->len-sp->tsize-1)-(sp->tsize+1)), False); + + if (sp->active) { /* a thumb is necessary */ + + XSetForeground(theDisp, theGC, sp->bg); +- XFillRectangle(theDisp, sp->win, theGC, 1, sp->tpos+1, ++ XFillRectangle(theDisp, sp->win, theGC, 1, sp->tpos+1, + (u_int) (sp->tsize-2), (u_int) (sp->tsize-2)); + + XSetForeground(theDisp, theGC, sp->fg); +- XDrawRectangle(theDisp, sp->win, theGC, 0, sp->tpos, ++ XDrawRectangle(theDisp, sp->win, theGC, 0, sp->tpos, + (u_int) (sp->tsize-1), (u_int) (sp->tsize-1)); + + XDrawLine(theDisp, sp->win, theGC, 9-3, sp->tpos+6, 9+3, sp->tpos+6); +@@ -301,7 +301,7 @@ + XDrawLine(theDisp, sp->win, theGC, 9-3, sp->tpos+10,9+3, sp->tpos+10); + XDrawLine(theDisp, sp->win, theGC, 9-3, sp->tpos+12,9+3, sp->tpos+12); + +- Draw3dRect(sp->win, 1, sp->tpos+1, ++ Draw3dRect(sp->win, 1, sp->tpos+1, + (u_int) sp->tsize-3, (u_int) sp->tsize-3, R3D_OUT,2, + sp->hi, sp->lo, sp->bg); + } +@@ -309,17 +309,17 @@ + + else { /* horizontal */ + /* clear out thumb area with background color */ +- XClearArea(theDisp, sp->win, sp->tsize+1, 0, +- (u_int) ((sp->len-sp->tsize-1)-(sp->tsize+1)), ++ XClearArea(theDisp, sp->win, sp->tsize+1, 0, ++ (u_int) ((sp->len-sp->tsize-1)-(sp->tsize+1)), + (u_int) sp->tsize, False); + + if (sp->active) { /* a thumb is necessary */ + XSetForeground(theDisp, theGC, sp->bg); +- XFillRectangle(theDisp, sp->win, theGC, sp->tpos+1, 1, ++ XFillRectangle(theDisp, sp->win, theGC, sp->tpos+1, 1, + (u_int) (sp->tsize-2), (u_int) (sp->tsize-2)); + + XSetForeground(theDisp, theGC, sp->fg); +- XDrawRectangle(theDisp, sp->win, theGC, sp->tpos, 0, ++ XDrawRectangle(theDisp, sp->win, theGC, sp->tpos, 0, + (u_int) (sp->tsize-1), (u_int) (sp->tsize-1)); + + XDrawLine(theDisp, sp->win, theGC, sp->tpos+6, 9-3, sp->tpos+6, 9+3); +@@ -327,7 +327,7 @@ + XDrawLine(theDisp, sp->win, theGC, sp->tpos+10,9-3, sp->tpos+10,9+3); + XDrawLine(theDisp, sp->win, theGC, sp->tpos+12,9-3, sp->tpos+12,9+3); + +- Draw3dRect(sp->win, sp->tpos+1, 1, ++ Draw3dRect(sp->win, sp->tpos+1, 1, + (u_int) sp->tsize-3, (u_int) sp->tsize-3, R3D_OUT,2, + sp->hi, sp->lo, sp->bg); + } +@@ -450,8 +450,8 @@ + case DNLINE: /* arrows */ + pos = whereInScrl(sp,x,y); + if (pos == ipos) { +- if (!lit) { +- lit = 1; ++ if (!lit) { ++ lit = 1; + if (ipos == UPLINE) { sp->uplit = 1; drawArrow(sp,UPLINE); } + else { sp->dnlit = 1; drawArrow(sp,DNLINE); } + } +@@ -467,16 +467,16 @@ + } + } + } +- ++ + else { +- if (lit) { +- lit = 0; ++ if (lit) { ++ lit = 0; + if (ipos == UPLINE) { sp->uplit = 0; drawArrow(sp,UPLINE); } + else { sp->dnlit = 0; drawArrow(sp,DNLINE); } + } + } + break; +- ++ + } + } + +diff -ruN xv-3.10a/xvsmooth.c xv-3.10a-bugfixes/xvsmooth.c +--- xv-3.10a/xvsmooth.c 1994-12-22 14:34:42.000000000 -0800 ++++ xv-3.10a-bugfixes/xvsmooth.c 2004-05-16 18:04:28.000000000 -0700 +@@ -4,11 +4,11 @@ + * Contains: + * byte *SmoothResize(src8, swide, shigh, dwide, dhigh, + * rmap, gmap, bmap, rdmap, gdmap, bdmap, maplen) +- * byte *Smooth24(pic824, is24, swide, shigh, dwide, dhigh, ++ * byte *Smooth24(pic824, is24, swide, shigh, dwide, dhigh, + * rmap, gmap, bmap) +- * byte *DoColorDither(pic24, pic8, w, h, rmap,gmap,bmap, ++ * byte *DoColorDither(pic24, pic8, w, h, rmap,gmap,bmap, + * rdisp, gdisp, bdisp, maplen) +- * byte *Do332ColorDither(pic24, pic8, w, h, rmap,gmap,bmap, ++ * byte *Do332ColorDither(pic24, pic8, w, h, rmap,gmap,bmap, + * rdisp, gdisp, bdisp, maplen) + */ + +@@ -18,21 +18,21 @@ + + static int smoothX PARM((byte *, byte *, int, int, int, int, int, + byte *, byte *, byte *)); +-static int smoothY PARM((byte *, byte *, int, int, int, int, int, ++static int smoothY PARM((byte *, byte *, int, int, int, int, int, + byte *, byte *, byte *)); + static int smoothXY PARM((byte *, byte *, int, int, int, int, int, + byte *, byte *, byte *)); + + + /***************************************************/ +-byte *SmoothResize(srcpic8, swide, shigh, dwide, dhigh, ++byte *SmoothResize(srcpic8, swide, shigh, dwide, dhigh, + rmap, gmap, bmap, rdmap, gdmap, bdmap, maplen) + byte *srcpic8, *rmap, *gmap, *bmap, *rdmap, *gdmap, *bdmap; + int swide, shigh, dwide, dhigh, maplen; + { +- /* generic interface to Smooth and ColorDither code. +- given an 8-bit-per, swide * shigh image with colormap rmap,gmap,bmap, +- will generate a new 8-bit-per, dwide * dhigh image, which is dithered ++ /* generic interface to Smooth and ColorDither code. ++ given an 8-bit-per, swide * shigh image with colormap rmap,gmap,bmap, ++ will generate a new 8-bit-per, dwide * dhigh image, which is dithered + using colors found in rdmap, gdmap, bdmap arrays */ + + /* returns ptr to a dwide*dhigh array of bytes, or NULL on failure */ +@@ -50,7 +50,7 @@ + + return (byte *) NULL; + } +- ++ + + + /***************************************************/ +@@ -83,23 +83,23 @@ + bperpix = (is24) ? 3 : 1; + + /* decide which smoothing routine to use based on type of expansion */ +- if (dwide < swide && dhigh < shigh) ++ if (dwide < swide && dhigh < shigh) + retval = smoothXY(pic24, pic824, is24, swide, shigh, dwide, dhigh, + rmap, gmap, bmap); + +- else if (dwide < swide && dhigh >= shigh) ++ else if (dwide < swide && dhigh >= shigh) + retval = smoothX (pic24, pic824, is24, swide, shigh, dwide, dhigh, + rmap, gmap, bmap); + +- else if (dwide >= swide && dhigh < shigh) ++ else if (dwide >= swide && dhigh < shigh) + retval = smoothY (pic24, pic824, is24, swide, shigh, dwide, dhigh, + rmap, gmap, bmap); + + else { + /* dwide >= swide && dhigh >= shigh */ + +- /* cx,cy = original pixel in pic824. px,py = relative position +- of pixel ex,ey inside of cx,cy as percentages +-50%, +-50%. ++ /* cx,cy = original pixel in pic824. px,py = relative position ++ of pixel ex,ey inside of cx,cy as percentages +-50%, +-50%. + 0,0 = middle of pixel */ + + /* we can save a lot of time by precomputing cxtab[] and pxtab[], both +@@ -115,10 +115,10 @@ + + for (ex=0; ex> 6; + lbufB[j] = ((int) ((*cptr++ * pcnt0) + (*cptr1++ * pcnt1))) >> 6; + } +- } ++ } + else { /* 8-bit input pic */ + for (j=0; j> 6; +@@ -314,8 +314,8 @@ + return 0; + } + +- +- ++ ++ + + + +@@ -405,7 +405,7 @@ + lbufB[j] += ((int)((bmap[*cptr]*pct0[j])+(bmap[*cptr1]*pct1[j]))) >> 6; + } + } +- ++ + linecnt++; + } + +@@ -421,13 +421,13 @@ + return retval; + } + +- +- ++ ++ + + + + /***************************************************/ +-static int smoothXY(pic24, pic824, is24, swide, shigh, dwide, dhigh, ++static int smoothXY(pic24, pic824, is24, swide, shigh, dwide, dhigh, + rmap, gmap, bmap) + byte *pic24, *pic824, *rmap, *gmap, *bmap; + int is24, swide, shigh, dwide, dhigh; +@@ -462,7 +462,7 @@ + + bperpix = (is24) ? 3 : 1; + +- for (j=0; j<=swide; j++) ++ for (j=0; j<=swide; j++) + pixarr[j] = (j*dwide + (15*swide)/16) / swide; + + lastline = linecnt = pixR = pixG = pixB = 0; +@@ -526,20 +526,20 @@ + return 0; + } + +- +- ++ ++ + + /********************************************/ +-byte *DoColorDither(pic24, pic8, w, h, rmap, gmap, bmap, ++byte *DoColorDither(pic24, pic8, w, h, rmap, gmap, bmap, + rdisp, gdisp, bdisp, maplen) + byte *pic24, *pic8, *rmap, *gmap, *bmap, *rdisp, *gdisp, *bdisp; + int w, h, maplen; + { + /* takes a 24 bit picture, of size w*h, dithers with the colors in + rdisp, gdisp, bdisp (which have already been allocated), +- and generates an 8-bit w*h image, which it returns. ++ and generates an 8-bit w*h image, which it returns. + ignores input value 'pic8' +- returns NULL on error ++ returns NULL on error + + note: the rdisp,gdisp,bdisp arrays should be the 'displayed' colors, + not the 'desired' colors +@@ -547,7 +547,7 @@ + if pic24 is NULL, uses the passed-in pic8 (an 8-bit image) as + the source, and the rmap,gmap,bmap arrays as the desired colors */ + +- byte *np, *ep, *newpic; ++ byte *np, *ep, *newpic; + short *cache; + int r2, g2, b2; + int *thisline, *nextline, *thisptr, *nextptr, *tmpptr; +@@ -558,11 +558,11 @@ + int fserrmap[512]; /* -255 .. 0 .. +255 */ + + /* compute somewhat non-linear floyd-steinberg error mapping table */ +- for (i=j=0; i<=0x40; i++,j++) ++ for (i=j=0; i<=0x40; i++,j++) + { fserrmap[256+i] = j; fserrmap[256-i] = -j; } +- for ( ; i<0x80; i++, j += !(i&1) ? 1 : 0) ++ for ( ; i<0x80; i++, j += !(i&1) ? 1 : 0) + { fserrmap[256+i] = j; fserrmap[256-i] = -j; } +- for ( ; i<=0xff; i++) ++ for ( ; i<=0xff; i++) + { fserrmap[256+i] = j; fserrmap[256-i] = -j; } + + +@@ -575,7 +575,7 @@ + cache = (short *) calloc((size_t) (2<<14), sizeof(short)); + thisline = (int *) malloc(pwide3 * sizeof(int)); + nextline = (int *) malloc(pwide3 * sizeof(int)); +- if (!cache || !newpic || !thisline || !nextline) { ++ if (!cache || !newpic || !thisline || !nextline) { + if (newpic) free(newpic); + if (cache) free(cache); + if (thisline) free(thisline); +@@ -624,30 +624,30 @@ + + r2 = *thisptr++; g2 = *thisptr++; b2 = *thisptr++; + +- /* map r2,g2,b2 components (could be outside 0..255 range) ++ /* map r2,g2,b2 components (could be outside 0..255 range) + into 0..255 range */ +- ++ + if (r2<0 || g2<0 || b2<0) { /* are there any negatives in RGB? */ + if (r2d) ? g2 - d : 0; + b2 = (b2>d) ? b2 - d : 0; + break; + + case 1: r2 -= g2; b2 -= g2; d = (abs(g2) * 3) / 2; /* GREEN */ + r2 = (r2>d) ? r2 - d : 0; +- g2 = 0; ++ g2 = 0; + b2 = (b2>d) ? b2 - d : 0; + break; + + case 2: r2 -= b2; g2 -= b2; d = (abs(b2) * 3) / 2; /* BLUE */ + r2 = (r2>d) ? r2 - d : 0; + g2 = (g2>d) ? g2 - d : 0; +- b2 = 0; ++ b2 = 0; + break; + } + } +@@ -674,7 +674,7 @@ + mind = 10000; + for (k=closest=0; k7; k++) { + d = abs(r2 - rdisp[k]) +- + abs(g2 - gdisp[k]) ++ + abs(g2 - gdisp[k]) + + abs(b2 - bdisp[k]); + if (d>3) | (bb>>6); + +diff -ruN xv-3.10a/xvsunras.c xv-3.10a-bugfixes/xvsunras.c +--- xv-3.10a/xvsunras.c 1994-12-22 14:34:42.000000000 -0800 ++++ xv-3.10a-bugfixes/xvsunras.c 2005-04-02 18:04:20.000000000 -0800 +@@ -54,8 +54,8 @@ + PICINFO *pinfo; + { + FILE *fp; +- int linesize,lsize,csize,isize,i,w,h,d; +- byte *image, *line, *pic8; ++ int linesize,lsize,csize,isize,i,w,h,d,npixels,nbytes; ++ byte *image, *line; + struct rasterfile sunheader; + char *bname; + +@@ -85,7 +85,7 @@ + sunheader.ras_depth != 8 && + sunheader.ras_depth != 24 && + sunheader.ras_depth != 32) { +- fprintf (stderr, "Sun rasterfile image has depth %d\n", ++ fprintf (stderr, "Sun rasterfile image has depth %d\n", + sunheader.ras_depth); + fprintf (stderr, "Depths supported are 1, 8, 24, and 32\n"); + fclose(fp); +@@ -115,26 +115,59 @@ + + w = sunheader.ras_width; + h = sunheader.ras_height; +- d = sunheader.ras_depth; +- isize = sunheader.ras_length ? +- sunheader.ras_length : +- (w * h * d) / 8; ++ d = sunheader.ras_depth; /* 1, 8, 24, or 32 (above) */ ++ npixels = w * h; ++ if (w <= 0 || h <= 0 || npixels/w != h) { ++ fprintf (stderr, "Sun rasterfile image has invalid dimensions (%dx%d)\n", ++ w, h); ++ fclose(fp); ++ return 0; ++ } ++ if (d == 1) ++ nbytes = npixels/8; /* should round up here, but used only for printf */ ++ else { ++ nbytes = npixels * (d/8); ++/* ++ [nbytes (isize) used only in printfs; don't really care about overflows] ++ if (nbytes/npixels != (d/8)) { ++ fprintf (stderr, "Sun rasterfile has invalid dimensions (%dx%dx%d)\n", ++ w, h, d); ++ fclose(fp); ++ return 0; ++ } ++ */ ++ } ++ isize = sunheader.ras_length ? sunheader.ras_length : nbytes; + csize = (sunheader.ras_maptype == RMT_NONE) ? 0 : sunheader.ras_maplength; + + +- /* compute length of the output (xv-format) image */ +- lsize = w * h; +- if (d == 24 || d == 32) lsize = lsize * 3; ++ /* length of the output (xv-format) image */ ++ lsize = npixels; ++ if (d == 24 || d == 32) { ++ lsize *= 3; ++ if (lsize/3 != npixels) { ++ fprintf (stderr, "Sun rasterfile has invalid dimensions (%dx%dx%d)\n", ++ w, h, d); ++ fclose(fp); ++ return 0; ++ } ++ } + + + linesize = w * d; ++ if (linesize/w != d || linesize + 15 < linesize) { ++ fprintf (stderr, "Sun rasterfile has invalid dimensions (%dx%dx%d)\n", ++ w, h, d); ++ fclose(fp); ++ return 0; ++ } + if (linesize % 16) linesize += (16 - (linesize % 16)); + linesize /= 8; + + if (DEBUG) { + fprintf(stderr,"%s: LoadSunRas() - loading a %dx%d pic, %d planes\n", + cmd, w, h, d); +- fprintf (stderr, ++ fprintf (stderr, + "type %d, maptype %d, isize %d, csize %d, lsize %d, linesize %d\n", + sunheader.ras_type, sunheader.ras_maptype, + isize, csize, lsize, linesize); +@@ -188,13 +221,13 @@ + } + + switch (d) { +- case 1: sunRas1to8 (image + w * i, line, w); ++ case 1: sunRas1to8 (image + w * i, line, w); + break; + case 8: xvbcopy((char *) line, (char *) image + w * i, (size_t) w); + break; + case 24: xvbcopy((char *) line, (char *) image + w * i * 3, (size_t) w*3); + break; +- ++ + case 32: + { + int k; +@@ -202,7 +235,7 @@ + ip = line; + op = (byte *) (image + w * i * 3); + for (k = 0; ktype = PIC8; + + pinfo->pic = image; +- pinfo->w = w; ++ pinfo->w = w; + pinfo->h = h; + pinfo->normw = pinfo->w; pinfo->normh = pinfo->h; + pinfo->frmType = F_SUNRAS; +@@ -364,10 +397,15 @@ + + /* special case: if PIC24 and writing GREYSCALE, write 8-bit file */ + if (ptype == PIC24 && colorstyle == F_GREYSCALE) { +- graypic = (byte *) malloc((size_t) w*h); ++ int npixels = w * h; ++ if (w <= 0 || h <= 0 || npixels/w != h) { ++ SetISTR(ISTR_WARNING, "Image is too large (%dx%d)", w, h); ++ return (2); ++ } ++ graypic = (byte *) malloc((size_t) npixels); + if (!graypic) FatalError("unable to malloc in WriteSunRas()"); +- +- for (i=0,sp=pic,dp=graypic; i>8)&0xff,fp); + putc(h&0xff, fp); +diff -ruN xv-3.10a/xvtext.c xv-3.10a-bugfixes/xvtext.c +--- xv-3.10a/xvtext.c 1995-01-13 15:46:28.000000000 -0800 ++++ xv-3.10a-bugfixes/xvtext.c 2004-05-16 18:04:38.000000000 -0700 +@@ -1,6 +1,6 @@ + /* + * xvtext.c - text file display window routines +- * ++ * + * includes: + * void CreateTextWins(geom, cmtgeom); + * void OpenTextView(text, textlen, title, freeonclose); +@@ -98,8 +98,7 @@ + XSizeHints hints; + XSetWindowAttributes xswa; + TVINFO *tv; +- int gx,gy,gw,gh,gset,gx1,gy1; +- ++ + + mfwide = monofinfo->max_bounds.width; + mfhigh = monofinfo->ascent + monofinfo->descent; +@@ -120,10 +119,10 @@ + tv = &tinfo[i]; + + tv->win = CreateWindow((iwin) FatalError("can't create textview window!"); + +@@ -135,17 +134,17 @@ + + /* note: everything is sized and positioned in resizeText() */ + +- tv->textW = XCreateSimpleWindow(theDisp, tv->win, 1,1, 100,100, ++ tv->textW = XCreateSimpleWindow(theDisp, tv->win, 1,1, 100,100, + 1,infofg,infobg); + if (!tv->textW) FatalError("can't create textview text window!"); + +- SCCreate(&(tv->vscrl), tv->win, 0,0, 1,100, 0,0,0,0, ++ SCCreate(&(tv->vscrl), tv->win, 0,0, 1,100, 0,0,0,0, + infofg, infobg, hicol, locol, drawTextW); + +- SCCreate(&(tv->hscrl), tv->win, 0,0, 0,100, 0,0,0,0, ++ SCCreate(&(tv->hscrl), tv->win, 0,0, 0,100, 0,0,0,0, + infofg, infobg, hicol, locol, drawTextW); + +- if (XGetNormalHints(theDisp, tv->win, &hints)) ++ if (XGetNormalHints(theDisp, tv->win, &hints)) + hints.flags |= PMinSize; + else + hints.flags = PMinSize; +@@ -162,7 +161,7 @@ + + XSelectInput(theDisp, tv->textW, ExposureMask | ButtonPressMask); + +- ++ + BTCreate(&(tv->but[TV_ASCII]), tv->win, 0,0,BUTTW,BUTTH, + "Ascii",infofg,infobg,hicol,locol); + BTCreate(&(tv->but[TV_HEX]), tv->win, 0,0,BUTTW,BUTTH, +@@ -185,7 +184,7 @@ + for (i=0; itextlen = len; + tv->freeonclose = freeonclose; + strncpy(tv->title, title, (size_t) TITLELEN-1); ++ tv->title[TITLELEN-1] = '\0'; + + computeText(tv); /* compute # lines and linestarts array */ + +@@ -316,7 +314,6 @@ + { + /* opens up the reserved 'comment' textview window */ + +- int i; + TVINFO *tv; + + tv = &tinfo[CMTWIN]; +@@ -351,9 +348,9 @@ + tv->textlen = (tv->text) ? strlen(tv->text) : 0; + tv->freeonclose = 0; + +- if (strlen(fullfname)) ++ if (strlen(fullfname)) + sprintf(tv->title, "File: '%s'", BaseName(fullfname)); +- else ++ else + sprintf(tv->title, ""); + + computeText(tv); /* compute # lines and linestarts array */ +@@ -504,7 +501,7 @@ + if (tv->freeonclose && tv->text) free(tv->text); + if (tv->lines) free(tv->lines); + +- tv->text = (char *) NULL; ++ tv->text = (char *) NULL; + tv->lines = (char **) NULL; + tv->numlines = tv->textlen = tv->hexmode = 0; + } +@@ -518,7 +515,7 @@ + /* checks event to see if it's a text-window related thing. If it + is, it eats the event and returns '1', otherwise '0'. */ + +- int i, rv; ++ int rv; + + rv = 1; + +@@ -560,7 +557,7 @@ + count++; + } while (XCheckWindowEvent(theDisp, evt.xexpose.window, + ExposureMask, &evt)); +- ++ + XClipBox(reg, &rect); /* bounding box of region */ + XSetRegion(theDisp, theGC, reg); + +@@ -570,7 +567,7 @@ + fprintf(stderr,"grouped %d expose events into %d,%d %dx%d rect\n", + count, rect.x, rect.y, rect.width, rect.height); + } +- ++ + if (e->window == tv->win) drawTextView(tv); + else if (e->window == tv->textW) drawTextW(0, &(tv->vscrl)); + +@@ -584,7 +581,7 @@ + + else if (xev->type == ButtonPress) { + XButtonEvent *e = (XButtonEvent *) xev; +- int i,x,y; ++ int x,y; + x = e->x; y = e->y; + + if (e->button == Button1) { +@@ -615,7 +612,7 @@ + + if (tv->wide != e->width || tv->high != e->height) { + if (DEBUG) fprintf(stderr,"Forcing a redraw! (from configure)\n"); +- XClearArea(theDisp, tv->win, 0, 0, ++ XClearArea(theDisp, tv->win, 0, 0, + (u_int) e->width, (u_int) e->height, True); + resizeText(tv, e->width, e->height); + } +@@ -633,7 +630,7 @@ + TVINFO *tv; + int w,h; + { +- int i, maxw, maxh, hmax, hpage, vmax, vpage; ++ int i, maxw, maxh; + XSizeHints hints; + + if (tv->wide == w && tv->high == h) return; /* no change in size */ +@@ -657,7 +654,7 @@ + tv->twWide = tv->chwide * mfwide + 6; + tv->twHigh = tv->chhigh * mfhigh + 6; + +- XMoveResizeWindow(theDisp, tv->textW, LRMARGINS, TOPMARGIN, ++ XMoveResizeWindow(theDisp, tv->textW, LRMARGINS, TOPMARGIN, + (u_int) tv->twWide, (u_int) tv->twHigh); + + for (i=0; ichwide / 4; + vpag = tv->chhigh - 1; + +- +- SCChange(&tv->vscrl, LRMARGINS + tv->twWide+1, TOPMARGIN, ++ ++ SCChange(&tv->vscrl, LRMARGINS + tv->twWide+1, TOPMARGIN, + 1, tv->twHigh, 0, vmax, tv->vscrl.val, vpag); + + SCChange(&tv->hscrl, LRMARGINS, TOPMARGIN + tv->twHigh + 1, +@@ -731,11 +728,11 @@ + y = 5; + + XSetForeground(theDisp, theGC, infobg); +- XFillRectangle(theDisp, tv->win, theGC, 5+1, y+1, ++ XFillRectangle(theDisp, tv->win, theGC, 5+1, y+1, + (u_int) StringWidth(tv->title)+6, (u_int) CHIGH+4); + + XSetForeground(theDisp, theGC, infofg); +- XDrawRectangle(theDisp, tv->win, theGC, 5, y, ++ XDrawRectangle(theDisp, tv->win, theGC, 5, y, + (u_int) StringWidth(tv->title)+7, (u_int) CHIGH+5); + + Draw3dRect(tv->win, 5+1, y+1, (u_int) StringWidth(tv->title)+5, +@@ -763,15 +760,15 @@ + + if (tv->hexmode) nl = tv->hexlines; + else { +- if (tv->numlines>0 && +- tv->lines[tv->numlines-1] - tv->lines[tv->numlines-2] == 1) ++ if (tv->numlines>0 && ++ tv->lines[tv->numlines-1] - tv->lines[tv->numlines-2] == 1) + nl = tv->numlines - 2; /* line after last \n has zero length */ + else nl = tv->numlines - 1; + } + if (nl<0) nl = 0; + +- sprintf(tmpstr, "%d byte%s, %d line%s", +- tv->textlen, (tv->textlen!=1) ? "s" : "", ++ sprintf(tmpstr, "%d byte%s, %d line%s", ++ tv->textlen, (tv->textlen!=1) ? "s" : "", + nl, (nl!=1) ? "s" : ""); + + w = StringWidth(tmpstr) + 7; /* width of frame */ +@@ -779,13 +776,13 @@ + y = 6; + + XSetForeground(theDisp, theGC, infobg); +- XFillRectangle(theDisp, tv->win, theGC, (x-w)+1, y+1, ++ XFillRectangle(theDisp, tv->win, theGC, (x-w)+1, y+1, + (u_int) (w-1), (u_int) CHIGH+4); + + XSetForeground(theDisp, theGC, infofg); + XDrawRectangle(theDisp, tv->win, theGC, x-w, y, (u_int) w, (u_int) CHIGH+5); + +- Draw3dRect(tv->win, (x-w)+1, y+1, (u_int) (w-2), (u_int) CHIGH+3, ++ Draw3dRect(tv->win, (x-w)+1, y+1, (u_int) (w-2), (u_int) CHIGH+3, + R3D_IN,2,hicol,locol,infobg); + + XSetForeground(theDisp, theGC, infofg); +@@ -800,10 +797,10 @@ + int x, y, w, nl; + char tmpstr[64]; + +- nl = (tv->hexmode) ? tv->hexlines : tv->numlines-1; ++ nl = (tv->hexmode) ? tv->hexlines : tv->numlines-1; + +- sprintf(tmpstr, "%d byte%s, %d line%s", +- tv->textlen, (tv->textlen>1) ? "s" : "", ++ sprintf(tmpstr, "%d byte%s, %d line%s", ++ tv->textlen, (tv->textlen>1) ? "s" : "", + nl, (nl>1) ? "s" : ""); + + w = StringWidth(tmpstr) + 7; /* width of frame */ +@@ -825,14 +822,14 @@ + u_char *sp, *ep, *lp; + + /* figure out TVINFO pointer from SCRL pointer */ +- for (i=0; ichhigh; i++) { /* draw each line */ + lnum = i + tv->vscrl.val; + if (lnum < tv->numlines-1) { +- ++ + /* find start of displayed portion of line. This is *wildly* + complicated by the ctrl-character and tab expansion... */ + +@@ -902,7 +899,7 @@ + if (extrach == 2) *lp = '^'; + else if (extrach == 1) *lp = *sp + 64; + } +- ++ + else if (*sp > 127) { + if (!extrach) extrach = 4; + if (extrach == 4) *lp = '\\'; +@@ -926,7 +923,7 @@ + } + + /* draw the line */ +- XDrawImageString(theDisp, tv->textW, theGC, ++ XDrawImageString(theDisp, tv->textW, theGC, + 3, i*mfhigh + 3 + mfascent, linestr, lwide); + } /* for i ... */ + } /* if hexmode */ +@@ -936,7 +933,7 @@ + for (i=0; ichhigh; i++) { /* draw each line */ + lnum = i + tv->vscrl.val; + if (lnum < tv->hexlines) { +- ++ + char hexstr[80], tmpstr[16]; + + /* generate hex for this line */ +@@ -972,7 +969,7 @@ + now build 'linestr', which is going to have hexstr shifted + and/or padded with blanks (ie, the displayed portion or hexstr) */ + +- /* skip obscured beginning of line, if any */ ++ /* skip obscured beginning of line, if any */ + for (cpos=0, sp=(byte *) hexstr; cpostextW, theGC, ++ XDrawImageString(theDisp, tv->textW, theGC, + 3, i*mfhigh + 3 + mfascent, linestr, lwide); + } /* for i ... */ + } /* else hexmode */ +- ++ + + + XSetFont(theDisp, theGC, mfont); + +- Draw3dRect(tv->textW, 0, 0, (u_int) (tv->twWide-1), (u_int) (tv->twHigh-1), ++ Draw3dRect(tv->textW, 0, 0, (u_int) (tv->twWide-1), (u_int) (tv->twHigh-1), + R3D_IN, 2, hicol, locol, infobg); + } + +@@ -1033,7 +1030,7 @@ + stlen = XLookupString(kevt, buf, 128, &ks, (XComposeStatus *) NULL); + shift = kevt->state & ShiftMask; + ck = CursorKey(ks, shift, 1); +- dealt = 1; ++ dealt = 1; + + RemapKeyCheck(ks, buf, &stlen); + +@@ -1060,8 +1057,6 @@ + TVINFO *tv; + int key; + { +- int i,j; +- + if (!tv->textlen) return; + + /* an arrow key (or something like that) was pressed in icon window. +@@ -1108,7 +1103,7 @@ + else { /* switch to ascii mode */ + pos = oldvscrl * 16; + for (i=0; inumlines-1; i++) { +- if (tv->lines[i+1] - tv->text > pos && ++ if (tv->lines[i+1] - tv->text > pos && + tv->lines[i] - tv->text <= pos) break; + } + if (inumlines-1) SCSetVal(&tv->vscrl, i); +@@ -1127,9 +1122,9 @@ + int i,j,wide,maxwide,space; + byte *sp; + +- if (!tv->text) { +- tv->numlines = tv->hexlines = 0; +- tv->lines = (char **) NULL; ++ if (!tv->text) { ++ tv->numlines = tv->hexlines = 0; ++ tv->lines = (char **) NULL; + return; + } + +@@ -1153,8 +1148,8 @@ + + tv->lines[tv->numlines - 1] = tv->text + tv->textlen + 1; + +- /* each line has a trailing '\n' character, except for the last line, +- which has a trailing '\0' character. In any case, all lines can ++ /* each line has a trailing '\n' character, except for the last line, ++ which has a trailing '\0' character. In any case, all lines can + be printed by printing ((lines[n+1] - lines[n]) - 1) characters, + starting with lines[n]. + +@@ -1164,13 +1159,13 @@ + + /* compute length of longest line, when shown in 'ascii' mode. Takes + into account the fact that non-printing chars (<32 or >127) will be +- shown in an 'expanded' form. (<32 chars will be shown as '^A' ++ shown in an 'expanded' form. (<32 chars will be shown as '^A' + (or whatever), and >127 chars will be shown as octal '\275') */ + + maxwide = 0; + for (i=0; inumlines-1; i++) { + /* compute displayed width of line #i */ +- for (sp=(byte *) tv->lines[i], wide=0; sp<(byte *) tv->lines[i+1]-1; ++ for (sp=(byte *) tv->lines[i], wide=0; sp<(byte *) tv->lines[i+1]-1; + sp++) { + if (*sp == '\011') { /* tab to next multiple of 8 */ + space = ((wide+8) & (~7)) - wide; +diff -ruN xv-3.10a/xvtiff.c xv-3.10a-bugfixes/xvtiff.c +--- xv-3.10a/xvtiff.c 1995-01-13 11:53:34.000000000 -0800 ++++ xv-3.10a-bugfixes/xvtiff.c 2005-03-27 17:25:31.000000000 -0800 +@@ -1,7 +1,7 @@ + /* + * xvtiff.c - load routine for 'TIFF' format pictures + * +- * LoadTIFF(fname, numcols) - load a TIFF file ++ * LoadTIFF(fname, numcols, quick) - load a TIFF file + */ + + #ifndef va_start +@@ -15,6 +15,35 @@ + #include "tiffio.h" /* has to be after xv.h, as it needs varargs/stdarg */ + + ++/* Portions fall under the following copyright: ++ * ++ * Copyright (c) 1992, 1993, 1994 Sam Leffler ++ * Copyright (c) 1992, 1993, 1994 Silicon Graphics, Inc. ++ * ++ * Permission to use, copy, modify, distribute, and sell this software and ++ * its documentation for any purpose is hereby granted without fee, provided ++ * that (i) the above copyright notices and this permission notice appear in ++ * all copies of the software and related documentation, and (ii) the names of ++ * Sam Leffler and Silicon Graphics may not be used in any advertising or ++ * publicity relating to the software without the specific, prior written ++ * permission of Sam Leffler and Silicon Graphics. ++ * ++ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, ++ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY ++ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ++ * ++ * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ++ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, ++ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, ++ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF ++ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE ++ * OF THIS SOFTWARE. ++ */ ++ ++ ++static int copyTiff PARM((TIFF *, char *)); ++static int cpStrips PARM((TIFF *, TIFF *)); ++static int cpTiles PARM((TIFF *, TIFF *)); + static byte *loadPalette PARM((TIFF *, uint32, uint32, int, int, PICINFO *)); + static byte *loadColor PARM((TIFF *, uint32, uint32, int, int, PICINFO *)); + static int loadImage PARM((TIFF *, uint32, uint32, byte *, int)); +@@ -28,19 +57,23 @@ + static int error_occurred; + + /*******************************************/ +-int LoadTIFF(fname, pinfo) +- char *fname; ++int LoadTIFF(fname, pinfo, quick) ++ char *fname; + PICINFO *pinfo; ++ int quick; + /*******************************************/ + { + /* returns '1' on success, '0' on failure */ + + TIFF *tif; + uint32 w, h; ++ float xres, yres; + short bps, spp, photo, orient; + FILE *fp; + byte *pic8; + char *desc, oldpath[MAXPATHLEN+1], tmppath[MAXPATHLEN+1], *sp; ++ char tmp[256], tmpname[256]; ++ int i, nump; + + error_occurred = 0; + +@@ -60,6 +93,8 @@ + filesize = ftell(fp); + fclose(fp); + ++ ++ + rmap = pinfo->r; gmap = pinfo->g; bmap = pinfo->b; + + /* a kludge: temporarily cd to the directory that the file is in (if +@@ -80,10 +115,61 @@ + else filename = BaseName(fname); + } + } +- +- + +- tif=TIFFOpen(filename,"r"); ++ ++ nump = 1; ++ ++ if (!quick) { ++ /* see if there's more than 1 image in tiff file, to determine if we ++ should do multi-page thing... */ ++ ++ tif = TIFFOpen(filename,"r"); ++ if (!tif) return 0; ++ while (TIFFReadDirectory(tif)) nump++; ++ TIFFClose(tif); ++ if (DEBUG) ++ fprintf(stderr,"LoadTIFF: %d page%s found\n", nump, nump==1 ? "" : "s"); ++ ++ ++ /* if there are multiple images, copy them out to multiple tmp files, ++ and load the first one... */ ++ ++ /* GRR 20050320: converted this fake mktemp() to use mktemp()/mkstemp() ++ internally (formerly it simply prepended tmpdir to the string and ++ returned immediately) */ ++ xv_mktemp(tmpname, "xvpgXXXXXX"); ++ ++ if (tmpname[0] == '\0') { /* mktemp() or mkstemp() blew up */ ++ sprintf(str,"LoadTIFF: Unable to create temporary filename???"); ++ ErrPopUp(str, "\nHow unlikely!"); ++ return 0; ++ } ++ ++ if (nump>1) { ++ TIFF *in; ++ ++ in = TIFFOpen(filename, "r"); ++ if (!in) return 0; ++ for (i=1; i<=nump; i++) { ++ sprintf(tmp, "%s%d", tmpname, i); ++ if (!copyTiff(in, tmp)) { ++ SetISTR(ISTR_WARNING, "LoadTIFF: Error writing page files!"); ++ break; ++ } ++ ++ if (!TIFFReadDirectory(in)) break; ++ } ++ if (DEBUG) ++ fprintf(stderr,"LoadTIFF: %d page%s written\n", ++ i-1, (i-1)==1 ? "" : "s"); ++ ++ sprintf(tmp, "%s%d", tmpname, 1); /* open page #1 */ ++ filename = tmp; ++ } ++ } /* if (!quick) ... */ ++ ++ ++ tif = TIFFOpen(filename,"r"); + if (!tif) return 0; + + /* flip orientation so that image comes in X order */ +@@ -107,6 +193,11 @@ + TIFFGetFieldDefaulted(tif, TIFFTAG_BITSPERSAMPLE, &bps); + TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &photo); + TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &spp); ++ if ((TIFFGetField(tif, TIFFTAG_XRESOLUTION, &xres) == 1) && ++ (TIFFGetField(tif, TIFFTAG_YRESOLUTION, &yres) == 1)) { ++ normaspect = yres / xres; ++ if (DEBUG) fprintf(stderr,"TIFF aspect = %f\n", normaspect); ++ } + + if (spp == 1) { + pic8 = loadPalette(tif, w, h, photo, bps, pinfo); +@@ -116,19 +207,19 @@ + + /* try to get comments, if any */ + pinfo->comment = (char *) NULL; +- ++ + desc = (char *) NULL; + + TIFFGetField(tif, TIFFTAG_IMAGEDESCRIPTION, &desc); + if (desc && strlen(desc) > (size_t) 0) { + /* kludge: tiff library seems to return bizarre comments */ +- if (strlen(desc)==4 && strcmp(desc, "\367\377\353\370")==0) {} ++ if (strlen(desc)==4 && strcmp(desc, "\367\377\353\370")==0) {} + else { + pinfo->comment = (char *) malloc(strlen(desc) + 1); + if (pinfo->comment) strcpy(pinfo->comment, desc); + } + } +- ++ + TIFFClose(tif); + + /* un-kludge */ +@@ -139,6 +230,8 @@ + if (pic8) free(pic8); + if (pinfo->comment) free(pinfo->comment); + pinfo->comment = (char *) NULL; ++ if (!quick && nump>1) KillPageFiles(tmpname, nump); ++ SetCursors(-1); + return 0; + } + +@@ -148,15 +241,168 @@ + pinfo->normw = pinfo->w; pinfo->normh = pinfo->h; + pinfo->frmType = F_TIFF; + ++ if (nump>1) strcpy(pinfo->pagebname, tmpname); ++ pinfo->numpages = nump; + + if (pinfo->pic) return 1; + ++ + /* failed. if we malloc'd a comment, free it */ + if (pinfo->comment) free(pinfo->comment); + pinfo->comment = (char *) NULL; + ++ if (!quick && nump>1) KillPageFiles(tmpname, nump); ++ SetCursors(-1); ++ + return 0; +-} ++} ++ ++ ++ ++ ++/*******************************************/ ++ ++#define CopyField(tag, v) \ ++ if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) ++#define CopyField2(tag, v1, v2) \ ++ if (TIFFGetField(in, tag, &v1, &v2)) TIFFSetField(out, tag, v1, v2) ++#define CopyField3(tag, v1, v2, v3) \ ++ if (TIFFGetField(in, tag, &v1, &v2, &v3)) TIFFSetField(out, tag, v1, v2, v3) ++ ++ ++/*******************************************/ ++static int copyTiff(in, fname) ++ TIFF *in; ++ char *fname; ++{ ++ /* copies tiff (sub)image to given filename. (Used only for multipage ++ images.) Returns 0 on error */ ++ ++ TIFF *out; ++ short bitspersample, samplesperpixel, shortv, *shortav; ++ uint32 w, l; ++ float floatv; ++ char *stringv; ++ uint32 longv; ++ uint16 *red, *green, *blue, shortv2; ++ int rv; ++ ++ out = TIFFOpen(fname, "w"); ++ if (!out) return 0; ++ ++ CopyField (TIFFTAG_SUBFILETYPE, longv); ++ CopyField (TIFFTAG_TILEWIDTH, w); ++ CopyField (TIFFTAG_TILELENGTH, l); ++ CopyField (TIFFTAG_IMAGEWIDTH, w); ++ CopyField (TIFFTAG_IMAGELENGTH, l); ++ CopyField (TIFFTAG_BITSPERSAMPLE, bitspersample); ++ CopyField (TIFFTAG_COMPRESSION, shortv); ++ CopyField (TIFFTAG_PREDICTOR, shortv); ++ CopyField (TIFFTAG_PHOTOMETRIC, shortv); ++ CopyField (TIFFTAG_THRESHHOLDING, shortv); ++ CopyField (TIFFTAG_FILLORDER, shortv); ++ CopyField (TIFFTAG_ORIENTATION, shortv); ++ CopyField (TIFFTAG_SAMPLESPERPIXEL, samplesperpixel); ++ CopyField (TIFFTAG_MINSAMPLEVALUE, shortv); ++ CopyField (TIFFTAG_MAXSAMPLEVALUE, shortv); ++ CopyField (TIFFTAG_XRESOLUTION, floatv); ++ CopyField (TIFFTAG_YRESOLUTION, floatv); ++ CopyField (TIFFTAG_GROUP3OPTIONS, longv); ++ CopyField (TIFFTAG_GROUP4OPTIONS, longv); ++ CopyField (TIFFTAG_RESOLUTIONUNIT, shortv); ++ CopyField (TIFFTAG_PLANARCONFIG, shortv); ++ CopyField (TIFFTAG_ROWSPERSTRIP, longv); ++ CopyField (TIFFTAG_XPOSITION, floatv); ++ CopyField (TIFFTAG_YPOSITION, floatv); ++ CopyField (TIFFTAG_IMAGEDEPTH, longv); ++ CopyField (TIFFTAG_TILEDEPTH, longv); ++ CopyField2(TIFFTAG_EXTRASAMPLES, shortv, shortav); ++ CopyField3(TIFFTAG_COLORMAP, red, green, blue); ++ CopyField2(TIFFTAG_PAGENUMBER, shortv, shortv2); ++ CopyField (TIFFTAG_ARTIST, stringv); ++ CopyField (TIFFTAG_IMAGEDESCRIPTION,stringv); ++ CopyField (TIFFTAG_MAKE, stringv); ++ CopyField (TIFFTAG_MODEL, stringv); ++ CopyField (TIFFTAG_SOFTWARE, stringv); ++ CopyField (TIFFTAG_DATETIME, stringv); ++ CopyField (TIFFTAG_HOSTCOMPUTER, stringv); ++ CopyField (TIFFTAG_PAGENAME, stringv); ++ CopyField (TIFFTAG_DOCUMENTNAME, stringv); ++ ++ if (TIFFIsTiled(in)) rv = cpTiles (in, out); ++ else rv = cpStrips(in, out); ++ ++ TIFFClose(out); ++ return rv; ++} ++ ++ ++/*******************************************/ ++static int cpStrips(in, out) ++ TIFF *in, *out; ++{ ++ tsize_t bufsize; ++ byte *buf; ++ ++ bufsize = TIFFStripSize(in); ++ if (bufsize <= 0) return 0; /* tsize_t is signed */ ++ buf = (byte *) malloc((size_t) bufsize); ++ if (buf) { ++ tstrip_t s, ns = TIFFNumberOfStrips(in); ++ uint32 *bytecounts; ++ ++ TIFFGetField(in, TIFFTAG_STRIPBYTECOUNTS, &bytecounts); ++ for (s = 0; s < ns; s++) { ++ if (bytecounts[s] > bufsize) { ++ buf = (unsigned char *) realloc(buf, (size_t) bytecounts[s]); ++ if (!buf) return (0); ++ bufsize = bytecounts[s]; ++ } ++ if (TIFFReadRawStrip (in, s, buf, (tsize_t) bytecounts[s]) < 0 || ++ TIFFWriteRawStrip(out, s, buf, (tsize_t) bytecounts[s]) < 0) { ++ free(buf); ++ return 0; ++ } ++ } ++ free(buf); ++ return 1; ++ } ++ return 0; ++} ++ ++ ++/*******************************/ ++static int cpTiles(in, out) ++ TIFF *in, *out; ++{ ++ tsize_t bufsize; ++ byte *buf; ++ ++ bufsize = TIFFTileSize(in); ++ if (bufsize <= 0) return 0; /* tsize_t is signed */ ++ buf = (unsigned char *) malloc((size_t) bufsize); ++ if (buf) { ++ ttile_t t, nt = TIFFNumberOfTiles(in); ++ uint32 *bytecounts; ++ ++ TIFFGetField(in, TIFFTAG_TILEBYTECOUNTS, &bytecounts); ++ for (t = 0; t < nt; t++) { ++ if (bytecounts[t] > bufsize) { ++ buf = (unsigned char *)realloc(buf, (size_t) bytecounts[t]); ++ if (!buf) return (0); ++ bufsize = bytecounts[t]; ++ } ++ if (TIFFReadRawTile (in, t, buf, (tsize_t) bytecounts[t]) < 0 || ++ TIFFWriteRawTile(out, t, buf, (tsize_t) bytecounts[t]) < 0) { ++ free(buf); ++ return 0; ++ } ++ } ++ free(buf); ++ return 1; ++ } ++ return 0; ++} + + + /*******************************************/ +@@ -167,6 +413,7 @@ + PICINFO *pinfo; + { + byte *pic8; ++ uint32 npixels; + + switch (photo) { + case PHOTOMETRIC_PALETTE: +@@ -178,7 +425,7 @@ + case PHOTOMETRIC_MINISWHITE: + case PHOTOMETRIC_MINISBLACK: + pinfo->colType = (bps==1) ? F_BWDITHER : F_GREYSCALE; +- sprintf(pinfo->fullInfo,"TIFF, %u-bit, %s format. (%ld bytes)", ++ sprintf(pinfo->fullInfo,"TIFF, %u-bit, %s format. (%ld bytes)", + bps, + photo == PHOTOMETRIC_MINISWHITE ? "min-is-white" : + "min-is-black", +@@ -186,9 +433,16 @@ + break; + } + +- sprintf(pinfo->shrtInfo, "%ux%u TIFF.",w,h); ++ sprintf(pinfo->shrtInfo, "%ux%u TIFF.",(u_int) w, (u_int) h); ++ ++ npixels = w*h; ++ if (npixels/w != h) { ++ /* SetISTR(ISTR_WARNING, "loadPalette() - image dimensions too large"); */ ++ TIFFError(filename, "Image dimensions too large"); ++ return (byte *) NULL; ++ } + +- pic8 = (byte *) malloc((size_t) w*h); ++ pic8 = (byte *) malloc((size_t) npixels); + if (!pic8) FatalError("loadPalette() - couldn't malloc 'pic8'"); + + if (loadImage(tif, w, h, pic8, 0)) return pic8; +@@ -205,19 +459,28 @@ + PICINFO *pinfo; + { + byte *pic24, *pic8; ++ uint32 npixels, count; + + pinfo->colType = F_FULLCOLOR; +- sprintf(pinfo->fullInfo, "TIFF, %u-bit, %s format. (%ld bytes)", ++ sprintf(pinfo->fullInfo, "TIFF, %u-bit, %s format. (%ld bytes)", + bps, + (photo == PHOTOMETRIC_RGB ? "RGB" : + photo == PHOTOMETRIC_YCBCR ? "YCbCr" : + "???"), + filesize); + +- sprintf(pinfo->shrtInfo, "%ux%u TIFF.",w,h); ++ sprintf(pinfo->shrtInfo, "%ux%u TIFF.",(u_int) w, (u_int) h); ++ ++ npixels = w*h; ++ count = 3*npixels; ++ if (npixels/w != h || count/3 != npixels) { ++ /* SetISTR(ISTR_WARNING, "loadPalette() - image dimensions too large"); */ ++ TIFFError(filename, "Image dimensions too large"); ++ return (byte *) NULL; ++ } + + /* allocate 24-bit image */ +- pic24 = (byte *) malloc((size_t) w*h*3); ++ pic24 = (byte *) malloc((size_t) count); + if (!pic24) FatalError("loadColor() - couldn't malloc 'pic24'"); + + pic8 = (byte *) NULL; +@@ -301,10 +564,10 @@ + static byte **BWmap; + static byte **PALmap; + +-typedef void (*tileContigRoutine) PARM((byte*, u_char*, RGBvalue*, ++typedef void (*tileContigRoutine) PARM((byte*, u_char*, RGBvalue*, + uint32, uint32, int, int)); + +-typedef void (*tileSeparateRoutine) PARM((byte*, u_char*, u_char*, u_char*, ++typedef void (*tileSeparateRoutine) PARM((byte*, u_char*, u_char*, u_char*, + RGBvalue*, uint32, uint32, int, int)); + + +@@ -312,13 +575,13 @@ + + static int gt PARM((TIFF *, uint32, uint32, byte *)); + static uint32 setorientation PARM((TIFF *, uint32)); +-static int gtTileContig PARM((TIFF *, byte *, RGBvalue *, ++static int gtTileContig PARM((TIFF *, byte *, RGBvalue *, + uint32, uint32, int)); +-static int gtTileSeparate PARM((TIFF *, byte *, RGBvalue *, ++static int gtTileSeparate PARM((TIFF *, byte *, RGBvalue *, + uint32, uint32, int)); +-static int gtStripContig PARM((TIFF *, byte *, RGBvalue *, ++static int gtStripContig PARM((TIFF *, byte *, RGBvalue *, + uint32, uint32, int)); +-static int gtStripSeparate PARM((TIFF *, byte *, RGBvalue *, ++static int gtStripSeparate PARM((TIFF *, byte *, RGBvalue *, + uint32, uint32, int)); + + static int makebwmap PARM((void)); +@@ -349,18 +612,18 @@ + static void putRGBcontig16bittile PARM((byte *, u_short *, RGBvalue *, + uint32, uint32, int, int)); + +-static void putRGBseparate8bittile PARM((byte *, u_char *, u_char *, +- u_char *, RGBvalue *, ++static void putRGBseparate8bittile PARM((byte *, u_char *, u_char *, ++ u_char *, RGBvalue *, + uint32, uint32, int, int)); + +-static void putRGBseparate16bittile PARM((byte *, u_short *, u_short *, +- u_short *, RGBvalue *, ++static void putRGBseparate16bittile PARM((byte *, u_short *, u_short *, ++ u_short *, RGBvalue *, + uint32, uint32, int, int)); + + + static void initYCbCrConversion PARM((void)); + +-static void putRGBContigYCbCrClump PARM((byte *, u_char *, int, int, ++static void putRGBContigYCbCrClump PARM((byte *, u_char *, int, int, + uint32, int, int, int)); + + static void putcontig8bitYCbCrtile PARM((byte *, u_char *, RGBvalue *, +@@ -382,10 +645,10 @@ + + TIFFGetFieldDefaulted(tif, TIFFTAG_BITSPERSAMPLE, &bitspersample); + switch (bitspersample) { +- case 1: +- case 2: ++ case 1: ++ case 2: + case 4: +- case 8: ++ case 8: + case 16: break; + + default: +@@ -397,8 +660,8 @@ + + TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel); + switch (samplesperpixel) { +- case 1: +- case 3: ++ case 1: ++ case 3: + case 4: break; + + default: +@@ -470,7 +733,7 @@ + TIFFGetFieldDefaulted(tif, TIFFTAG_MINSAMPLEVALUE, &minsamplevalue); + TIFFGetFieldDefaulted(tif, TIFFTAG_MAXSAMPLEVALUE, &maxsamplevalue); + Map = NULL; +- ++ + switch (photometric) { + case PHOTOMETRIC_YCBCR: + TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRCOEFFICIENTS, +@@ -481,12 +744,12 @@ + &refBlackWhite); + initYCbCrConversion(); + /* fall thru... */ +- ++ + case PHOTOMETRIC_RGB: + bpp *= 3; + if (minsamplevalue == 0 && maxsamplevalue == 255) + break; +- ++ + /* fall thru... */ + case PHOTOMETRIC_MINISBLACK: + case PHOTOMETRIC_MINISWHITE: +@@ -509,7 +772,7 @@ + if (range<256) { + for (x=0; x<=range; x++) rmap[x] = gmap[x] = bmap[x] = Map[x]; + } else { +- for (x=0; x<256; x++) ++ for (x=0; x<256; x++) + rmap[x] = gmap[x] = bmap[x] = Map[(range*x)/255]; + } + +@@ -590,6 +853,8 @@ + TIFF *tif; + uint32 h; + { ++ /* note that orientation was flipped in LoadTIFF() (near line 175) */ ++ + uint32 y; + + TIFFGetFieldDefaulted(tif, TIFFTAG_ORIENTATION, &orientation); +@@ -613,6 +878,11 @@ + orientation = ORIENTATION_TOPLEFT; + /* fall thru... */ + case ORIENTATION_TOPLEFT: ++ /* GRR 20050319: This may be wrong for tiled images (also stripped?); ++ * looks like we want to return th-1 instead of h-1 in at least some ++ * cases. For now, just added quick hack (USE_TILED_TIFF_BOTLEFT_FIX) ++ * to gtTileContig(). (Note that, as of libtiff 3.7.1, tiffcp still ++ * has exactly the same bug.) */ + y = h-1; + break; + } +@@ -623,11 +893,11 @@ + + + /* +- * Get an tile-organized image that has ++ * Get a tile-organized image that has + * PlanarConfiguration contiguous if SamplesPerPixel > 1 + * or + * SamplesPerPixel == 1 +- */ ++ */ + /*******************************************/ + static int gtTileContig(tif, raster, Map, h, w, bpp) + TIFF *tif; +@@ -642,11 +912,14 @@ + int fromskew, toskew; + u_int nrow; + tileContigRoutine put; ++ tsize_t bufsize; + + put = pickTileContigCase(Map); + if (put == 0) return (0); + +- buf = (u_char *) malloc((size_t) TIFFTileSize(tif)); ++ bufsize = TIFFTileSize(tif); ++ if (bufsize <= 0) return 0; /* tsize_t is signed */ ++ buf = (u_char *) malloc((size_t) bufsize); + if (buf == 0) { + TIFFError(filename, "No space for tile buffer"); + return (0); +@@ -655,12 +928,27 @@ + TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tw); + TIFFGetField(tif, TIFFTAG_TILELENGTH, &th); + y = setorientation(tif, h); ++#ifdef USE_TILED_TIFF_BOTLEFT_FIX /* image _originally_ ORIENTATION_BOTLEFT */ ++ /* this fix causes tiles as a whole to be placed starting at the top, ++ * regardless of orientation; the only difference is what happens within ++ * a given tile (see toskew, below) */ ++ /* GRR FIXME: apply globally in setorientation()? */ ++ if (orientation == ORIENTATION_TOPLEFT) ++ y = th-1; ++#endif ++ /* toskew causes individual tiles to copy from bottom to top for ++ * ORIENTATION_TOPLEFT and from top to bottom otherwise */ + toskew = (orientation == ORIENTATION_TOPLEFT ? -tw + -w : -tw + w); + + for (row = 0; row < h; row += th) { + nrow = (row + th > h ? h - row : th); + for (col = 0; col < w; col += tw) { +- if (TIFFReadTile(tif,buf,(uint32)col, (uint32)row, 0, 0) < 0 ++ /* ++ * This reads the tile at (col,row) into buf. "The data placed in buf ++ * are returned decompressed and, typically, in the native byte- and ++ * bit-ordering, but are otherwise packed." ++ */ ++ if (TIFFReadTile(tif, buf, (uint32)col, (uint32)row, 0, 0) < 0 + && stoponerr) break; + + if (col + tw > w) { +@@ -670,14 +958,18 @@ + */ + uint32 npix = w - col; + fromskew = tw - npix; +- (*put)(raster + (y*w + col)*bpp, buf, Map, npix, (uint32) nrow, +- fromskew, (int) ((toskew + fromskew)*bpp)); ++ (*put)(raster + (y*w + col)*bpp, buf, Map, npix, (uint32) nrow, ++ fromskew, (int) ((toskew + fromskew)*bpp) ); + } else +- (*put)(raster + (y*w + col)*bpp, buf, Map, tw, (uint32) nrow, ++ (*put)(raster + (y*w + col)*bpp, buf, Map, tw, (uint32) nrow, + 0, (int) (toskew*bpp)); + } + ++#ifdef USE_TILED_TIFF_BOTLEFT_FIX /* image _originally_ ORIENTATION_BOTLEFT */ ++ y += nrow; ++#else + y += (orientation == ORIENTATION_TOPLEFT ? -nrow : nrow); ++#endif + } + free(buf); + return (1); +@@ -687,11 +979,11 @@ + + + /* +- * Get an tile-organized image that has ++ * Get a tile-organized image that has + * SamplesPerPixel > 1 + * PlanarConfiguration separated + * We assume that all such images are RGB. +- */ ++ */ + + /*******************************************/ + static int gtTileSeparate(tif, raster, Map, h, w, bpp) +@@ -701,20 +993,26 @@ + uint32 h, w; + int bpp; + { +- uint32 col, row, y; + uint32 tw, th; ++ uint32 col, row, y; + u_char *buf; + u_char *r, *g, *b; +- int tilesize; ++ tsize_t tilesize; ++ uint32 bufsize; + int fromskew, toskew; + u_int nrow; + tileSeparateRoutine put; +- ++ + put = pickTileSeparateCase(Map); + if (put == 0) return (0); + + tilesize = TIFFTileSize(tif); +- buf = (u_char *)malloc((size_t) (3*tilesize)); ++ bufsize = 3*tilesize; ++ if (tilesize <= 0 || bufsize/3 != tilesize) { /* tsize_t is signed */ ++ TIFFError(filename, "Image dimensions too large"); ++ return 0; ++ } ++ buf = (u_char *) malloc((size_t) bufsize); + if (buf == 0) { + TIFFError(filename, "No space for tile buffer"); + return (0); +@@ -751,10 +1049,10 @@ + */ + uint32 npix = w - col; + fromskew = tw - npix; +- (*put)(raster + (y*w + col)*bpp, r, g, b, Map, npix, (uint32) nrow, ++ (*put)(raster + (y*w + col)*bpp, r, g, b, Map, npix, (uint32) nrow, + fromskew, (int) ((toskew + fromskew)*bpp)); + } else +- (*put)(raster + (y*w + col)*bpp, r, g, b, Map, tw, (uint32) nrow, ++ (*put)(raster + (y*w + col)*bpp, r, g, b, Map, tw, (uint32) nrow, + 0, (int) (toskew*bpp)); + } + y += (orientation == ORIENTATION_TOPLEFT ? -nrow : nrow); +@@ -768,7 +1066,7 @@ + * PlanarConfiguration contiguous if SamplesPerPixel > 1 + * or + * SamplesPerPixel == 1 +- */ ++ */ + /*******************************************/ + static int gtStripContig(tif, raster, Map, h, w, bpp) + TIFF *tif; +@@ -784,11 +1082,15 @@ + uint32 imagewidth; + int scanline; + int fromskew, toskew; +- ++ tsize_t bufsize; ++ + put = pickTileContigCase(Map); + if (put == 0) + return (0); +- buf = (u_char *) malloc((size_t) TIFFStripSize(tif)); ++ ++ bufsize = TIFFStripSize(tif); ++ if (bufsize <= 0) return 0; /* tsize_t is signed */ ++ buf = (u_char *) malloc((size_t) bufsize); + if (buf == 0) { + TIFFError(filename, "No space for strip buffer"); + return (0); +@@ -828,20 +1130,29 @@ + uint32 h, w; + int bpp; + { ++ uint32 nrow, row, y; + u_char *buf; + u_char *r, *g, *b; +- uint32 row, y, nrow; ++ tsize_t stripsize; ++ uint32 bufsize; ++ int fromskew, toskew; + int scanline; + tileSeparateRoutine put; + uint32 rowsperstrip; + uint32 imagewidth; +- u_int stripsize; +- int fromskew, toskew; +- ++ + stripsize = TIFFStripSize(tif); +- r = buf = (u_char *) malloc((size_t) 3*stripsize); +- if (buf == 0) ++ bufsize = 3*stripsize; ++ if (stripsize <= 0 || bufsize/3 != stripsize) { /* tsize_t is signed */ ++ TIFFError(filename, "Image dimensions too large"); ++ return 0; ++ } ++ buf = (u_char *) malloc((size_t) bufsize); ++ if (buf == 0) { ++ TIFFError(filename, "No space for strip buffer"); + return (0); ++ } ++ r = buf; + g = r + stripsize; + b = g + stripsize; + put = pickTileSeparateCase(Map); +@@ -861,7 +1172,7 @@ + nrow = (row + rowsperstrip > h ? h - row : rowsperstrip); + band = 0; + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, (uint32) row, band), +- (tdata_t) r, (tsize_t)(nrow*scanline)) < 0 ++ (tdata_t) r, (tsize_t)(nrow*scanline)) < 0 + && stoponerr) break; + + band = 1; +@@ -871,7 +1182,7 @@ + + band = 2; + if (TIFFReadEncodedStrip(tif, TIFFComputeStrip(tif, (uint32) row, band), +- (tdata_t) b, (tsize_t)(nrow*scanline)) < 0 ++ (tdata_t) b, (tsize_t)(nrow*scanline)) < 0 + && stoponerr) break; + + (*put)(raster + y*w*bpp, r, g, b, Map, w, nrow, fromskew, toskew*bpp); +@@ -895,7 +1206,7 @@ + register int i; + int nsamples = 8 / bitspersample; + register byte *p; +- ++ + BWmap = (byte **)malloc( + 256*sizeof (byte *)+(256*nsamples*sizeof(byte))); + if (BWmap == NULL) { +@@ -949,7 +1260,7 @@ + register int i; + int nsamples = 8 / bitspersample; + register byte *p; +- ++ + PALmap = (byte **)malloc( + 256*sizeof (byte *)+(256*nsamples*sizeof(byte))); + if (PALmap == NULL) { +@@ -1014,7 +1325,7 @@ + #define CASE4(x,op) switch (x) { case 3: op; case 2: op; case 1: op; } + + #define UNROLL8(w, op1, op2) { \ +- uint32 x; \ ++ uint32 x; \ + for (x = w; x >= 8; x -= 8) { \ + op1; \ + REPEAT8(op2); \ +@@ -1026,7 +1337,7 @@ + } + + #define UNROLL4(w, op1, op2) { \ +- register uint32 x; \ ++ uint32 x; \ + for (x = w; x >= 4; x -= 4) { \ + op1; \ + REPEAT4(op2); \ +@@ -1038,7 +1349,7 @@ + } + + #define UNROLL2(w, op1, op2) { \ +- register uint32 x; \ ++ uint32 x; \ + for (x = w; x >= 2; x -= 2) { \ + op1; \ + REPEAT2(op2); \ +@@ -1048,7 +1359,7 @@ + op2; \ + } \ + } +- ++ + + #define SKEW(r,g,b,skew) { r += skew; g += skew; b += skew; } + +@@ -1065,7 +1376,7 @@ + int fromskew, toskew; + { + while (h-- > 0) { +- UNROLL8(w,0, *cp++ = PALmap[*pp++][0]); ++ UNROLL8(w, , *cp++ = PALmap[*pp++][0]) + cp += toskew; + pp += fromskew; + } +@@ -1082,7 +1393,7 @@ + int fromskew, toskew; + { + register byte *bw; +- ++ + fromskew /= 2; + while (h-- > 0) { + UNROLL2(w, bw = PALmap[*pp++], *cp++ = *bw++); +@@ -1103,7 +1414,7 @@ + int fromskew, toskew; + { + register byte *bw; +- ++ + fromskew /= 4; + while (h-- > 0) { + UNROLL4(w, bw = PALmap[*pp++], *cp++ = *bw++); +@@ -1123,10 +1434,10 @@ + int fromskew, toskew; + { + register byte *bw; +- ++ + fromskew /= 8; + while (h-- > 0) { +- UNROLL8(w, bw = PALmap[*pp++], *cp++ = *bw++); ++ UNROLL8(w, bw = PALmap[*pp++], *cp++ = *bw++) + cp += toskew; + pp += fromskew; + } +@@ -1164,10 +1475,10 @@ + int fromskew, toskew; + { + register byte *bw; +- ++ + fromskew /= 8; + while (h-- > 0) { +- UNROLL8(w, bw = BWmap[*pp++], *cp++ = *bw++); ++ UNROLL8(w, bw = BWmap[*pp++], *cp++ = *bw++) + cp += toskew; + pp += fromskew; + } +@@ -1184,7 +1495,7 @@ + int fromskew, toskew; + { + register byte *bw; +- ++ + fromskew /= 4; + while (h-- > 0) { + UNROLL4(w, bw = BWmap[*pp++], *cp++ = *bw++); +@@ -1204,7 +1515,7 @@ + int fromskew, toskew; + { + register byte *bw; +- ++ + fromskew /= 2; + while (h-- > 0) { + UNROLL2(w, bw = BWmap[*pp++], *cp++ = *bw++); +@@ -1224,7 +1535,7 @@ + int fromskew, toskew; + { + register uint32 x; +- ++ + while (h-- > 0) { + for (x=w; x>0; x--) { + *cp++ = Map[(pp[0] << 8) + pp[1]]; +@@ -1262,11 +1573,11 @@ + } + } else { + while (h-- > 0) { +- UNROLL8(w,0, ++ UNROLL8(w, , + *cp++ = pp[0]; + *cp++ = pp[1]; + *cp++ = pp[2]; +- pp += samplesperpixel); ++ pp += samplesperpixel) + cp += toskew; + pp += fromskew; + } +@@ -1284,7 +1595,7 @@ + int fromskew, toskew; + { + register u_int x; +- ++ + fromskew *= samplesperpixel; + if (Map) { + while (h-- > 0) { +@@ -1320,7 +1631,7 @@ + RGBvalue *Map; + uint32 w, h; + int fromskew, toskew; +- ++ + { + if (Map) { + while (h-- > 0) { +@@ -1335,11 +1646,11 @@ + } + } else { + while (h-- > 0) { +- UNROLL8(w,0, ++ UNROLL8(w, , + *cp++ = *r++; + *cp++ = *g++; + *cp++ = *b++; +- ); ++ ) + SKEW(r, g, b, fromskew); + cp += toskew; + } +@@ -1357,7 +1668,7 @@ + int fromskew, toskew; + { + uint32 x; +- ++ + if (Map) { + while (h-- > 0) { + for (x = w; x > 0; x--) { +@@ -1381,7 +1692,7 @@ + } + } + +-#define Code2V(c, RB, RW, CR) ((((c)-(int)RB)*(float)CR)/(float)(RW-RB)) ++#define Code2V(c, RB, RW, CR) (((((int)c)-(int)RB)*(float)CR)/(float)(RW-RB)) + + #define CLAMP(f,min,max) \ + (int)((f)+.5 < (min) ? (min) : (f)+.5 > (max) ? (max) : (f)+.5) +@@ -1391,16 +1702,32 @@ + #define LumaBlue YCbCrCoeffs[2] + + static float D1, D2; +-static float D3, D4, D5; ++static float D3, D4 /*, D5 */; + + + static void initYCbCrConversion() + { ++ /* ++ * Old, broken version (goes back at least to 19920426; made worse 19941222): ++ * YCbCrCoeffs[] = {0.299, 0.587, 0.114} ++ * D1 = 1.402 ++ * D2 = 0.714136 ++ * D3 = 1.772 ++ * D4 = 0.138691 <-- bogus ++ * D5 = 1.70358 <-- unnecessary ++ * ++ * New, fixed version (GRR 20050319): ++ * YCbCrCoeffs[] = {0.299, 0.587, 0.114} ++ * D1 = 1.402 ++ * D2 = 0.714136 ++ * D3 = 1.772 ++ * D4 = 0.344136 ++ */ + D1 = 2 - 2*LumaRed; + D2 = D1*LumaRed / LumaGreen; + D3 = 2 - 2*LumaBlue; +- D4 = D2*LumaBlue / LumaGreen; +- D5 = 1.0 / LumaGreen; ++ D4 = D3*LumaBlue / LumaGreen; /* ARGH, used to be D2*LumaBlue/LumaGreen ! */ ++/* D5 = 1.0 / LumaGreen; */ /* unnecessary */ + } + + static void putRGBContigYCbCrClump(cp, pp, cw, ch, w, n, fromskew, toskew) +@@ -1412,7 +1739,7 @@ + { + float Cb, Cr; + int j, k; +- ++ + Cb = Code2V(pp[n], refBlackWhite[2], refBlackWhite[3], 127); + Cr = Code2V(pp[n+1], refBlackWhite[4], refBlackWhite[5], 127); + for (j = 0; j < ch; j++) { +@@ -1421,8 +1748,24 @@ + Y = Code2V(*pp++, + refBlackWhite[0], refBlackWhite[1], 255); + R = Y + Cr*D1; ++/* G = Y*D5 - Cb*D4 - Cr*D2; highly bogus! */ ++ G = Y - Cb*D4 - Cr*D2; + B = Y + Cb*D3; +- G = Y*D5 - Cb*D4 - Cr*D2; ++ /* ++ * These are what the JPEG/JFIF equations--which aren't _necessarily_ ++ * what JPEG/TIFF uses but which seem close enough--are supposed to be, ++ * according to Avery Lee (e.g., see http://www.fourcc.org/fccyvrgb.php): ++ * ++ * R = Y + 1.402 (Cr-128) ++ * G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128) ++ * B = Y + 1.772 (Cb-128) ++ * ++ * Translated into xvtiff.c notation: ++ * ++ * R = Y + Cr*D1 ++ * G = Y - Cb*D4' - Cr*D2 (i.e., omit D5 and fix D4) ++ * B = Y + Cb*D3 ++ */ + cp[3*k+0] = CLAMP(R,0,255); + cp[3*k+1] = CLAMP(G,0,255); + cp[3*k+2] = CLAMP(B,0,255); +@@ -1452,7 +1795,7 @@ + u_int Coff = YCbCrVertSampling * YCbCrHorizSampling; + byte *tp; + uint32 x; +- ++ + /* XXX adjust fromskew */ + while (h >= YCbCrVertSampling) { + tp = cp; +@@ -1481,7 +1824,7 @@ + pp += Coff+2; + } + if (x > 0) +- putRGBContigYCbCrClump(tp, pp, (int) x, (int) h, w, ++ putRGBContigYCbCrClump(tp, pp, (int) x, (int) h, w, + (int)Coff, (int)(YCbCrHorizSampling-x),toskew); + } + } +@@ -1493,7 +1836,7 @@ + RGBvalue* Map; + { + tileContigRoutine put = 0; +- ++ + switch (photometric) { + case PHOTOMETRIC_RGB: + switch (bitspersample) { +@@ -1501,7 +1844,7 @@ + case 16: put = (tileContigRoutine) putRGBcontig16bittile; break; + } + break; +- ++ + case PHOTOMETRIC_PALETTE: + switch (bitspersample) { + case 8: put = put8bitcmaptile; break; +@@ -1544,7 +1887,7 @@ + RGBvalue* Map; + { + tileSeparateRoutine put = 0; +- ++ + switch (photometric) { + case PHOTOMETRIC_RGB: + switch (bitspersample) { +diff -ruN xv-3.10a/xvtiffwr.c xv-3.10a-bugfixes/xvtiffwr.c +--- xv-3.10a/xvtiffwr.c 1995-01-03 13:28:13.000000000 -0800 ++++ xv-3.10a-bugfixes/xvtiffwr.c 2005-03-28 08:39:52.000000000 -0800 +@@ -9,15 +9,15 @@ + + #ifdef HAVE_TIFF + +-#include "tiffio.h" /* has to be after xv.h, as it needs varargs/stdarg */ ++#include /* has to be after xv.h, as it needs varargs/stdarg */ + + + #define ALLOW_JPEG 0 /* set to '1' to allow 'JPEG' choice in dialog box */ + + + static void setupColormap PARM((TIFF *, byte *, byte *, byte *)); +-static int WriteTIFF PARM((FILE *, byte *, int, int, int, +- byte *, byte *, byte *, int, int, ++static int WriteTIFF PARM((FILE *, byte *, int, int, int, ++ byte *, byte *, byte *, int, int, + char *, int, char *)); + + +@@ -29,7 +29,7 @@ + { + short red[256], green[256], blue[256]; + int i; +- ++ + /* convert 8-bit colormap to 16-bit */ + for (i=0; i<256; i++) { + #define SCALE(x) ((((int)x)*((1L<<16)-1))/255) +@@ -43,6 +43,7 @@ + + + /*******************************************/ ++/* Returns '0' if successful. */ + static int WriteTIFF(fp,pic,ptype,w,h,rmap,gmap,bmap,numcols,colorstyle, + fname,comp,comment) + FILE *fp; +@@ -55,6 +56,13 @@ + TIFF *tif; + byte *pix; + int i,j; ++ int npixels = w*h; ++ ++ if (w <= 0 || h <= 0 || npixels/w != h) { ++ SetISTR(ISTR_WARNING, "%s: image dimensions too large", fname); ++ /* TIFFError(fname, "Image dimensions too large"); */ ++ return -1; ++ } + + #ifndef VMS + tif = TIFFOpen(fname, "w"); +@@ -62,7 +70,7 @@ + tif = TIFFFdOpen(dup(fileno(fp)), fname, "w"); + #endif + +- if (!tif) return 0; ++ if (!tif) return -1; /* GRR: was 0 */ + + WaitCursor(); + +@@ -84,19 +92,27 @@ + TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, h); + + TIFFSetField(tif, TIFFTAG_RESOLUTIONUNIT, (int)2); +- TIFFSetField(tif, TIFFTAG_XRESOLUTION, (float)1200.0); +- TIFFSetField(tif, TIFFTAG_YRESOLUTION, (float)1200.0); ++ TIFFSetField(tif, TIFFTAG_XRESOLUTION, (float) 72.0); ++ TIFFSetField(tif, TIFFTAG_YRESOLUTION, (float) 72.0); + + + /* write the image data */ + + if (ptype == PIC24) { /* only have to deal with FULLCOLOR or GREYSCALE */ + if (colorstyle == F_FULLCOLOR) { ++ int count = 3*npixels; ++ ++ if (count/3 != npixels) { /* already know w, h, npixels > 0 */ ++ /* SetISTR(ISTR_WARNING, "%s: image dimensions too large", fname); */ ++ TIFFError(fname, "Image dimensions too large"); ++ return -1; ++ } ++ + TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 3); + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); +- +- TIFFWriteEncodedStrip(tif, 0, pic, w*h*3); ++ ++ TIFFWriteEncodedStrip(tif, 0, pic, count); + } + + else { /* colorstyle == F_GREYSCALE */ +@@ -106,13 +122,13 @@ + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); + +- tpic = (byte *) malloc((size_t) w*h); ++ tpic = (byte *) malloc((size_t) npixels); + if (!tpic) FatalError("unable to malloc in WriteTIFF()"); + +- for (i=0, tp=tpic, sp=pic; i MONO(rmap[1],gmap[1],bmap[1])); + TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 1); + TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); +- tpic = (byte *) malloc((size_t) TIFFStripSize(tif)); ++ stripsize = TIFFStripSize(tif); ++ if (stripsize <= 0) { ++ TIFFError(fname, "Image dimensions too large"); ++ return -1; ++ } ++ tpic = (byte *) malloc((size_t) stripsize); ++ if (tpic == 0) { ++ TIFFError(fname, "No space for strip buffer"); ++ return -1; ++ } + tp = tpic; + for (i=0, pix=pic; itype == KeyPress) { + XKeyEvent *e = (XKeyEvent *) xev; +- char buf[128]; KeySym ks; XComposeStatus status; ++ char buf[128]; KeySym ks; XComposeStatus status; + int stlen; +- ++ + stlen = XLookupString(e,buf,128,&ks,&status); + buf[stlen] = '\0'; + +@@ -381,7 +407,7 @@ + /* check BUTTs */ + + /* check the RBUTTS first, since they don't DO anything */ +- if ( (i=RBClick(compRB, x,y)) >= 0) { ++ if ( (i=RBClick(compRB, x,y)) >= 0) { + (void) RBTrack(compRB, i); + return; + } +@@ -417,7 +443,7 @@ + } + } + break; +- ++ + case T_BCANC: TIFFDialog(0); break; + + default: break; +diff -ruN xv-3.10a/xvxbm.c xv-3.10a-bugfixes/xvxbm.c +--- xv-3.10a/xvxbm.c 1994-12-22 14:34:41.000000000 -0800 ++++ xv-3.10a-bugfixes/xvxbm.c 2005-03-28 22:06:50.000000000 -0800 +@@ -25,7 +25,7 @@ + * move forward to next occurence of '0x' + * repeat + */ +- ++ + + static int xbmError PARM((char *, char *)); + +@@ -59,7 +59,7 @@ + + /* read width: skip lines until we hit a #define */ + while (1) { +- if (!fgets(line,256,fp)) ++ if (!fgets(line,256,fp)) + return(xbmError(bname, "EOF reached in header info.")); + + if (strncmp(line,"#define", (size_t) 7)==0 && +@@ -70,9 +70,9 @@ + + /* read height: skip lines until we hit another #define */ + while (1) { +- if (!fgets(line,256,fp)) ++ if (!fgets(line,256,fp)) + return(xbmError(bname, "EOF reached in header info.")); +- ++ + if (strncmp(line,"#define", (size_t) 7)==0 && + sscanf(line,"#define %s %d", name, &h)==2 && + xv_strstr(name, "_height") != NULL) break; +@@ -84,18 +84,18 @@ + c = getc(fp); c1 = getc(fp); + while (c1!=EOF && !(c=='0' && c1=='x') ) { c = c1; c1 = getc(fp); } + +- if (c1==EOF) ++ if (c1==EOF) + return(xbmError(bname, "No bitmap data found")); + +- if (w<1 || h<1 || w>10000 || h>10000) ++ if (w<1 || h<1 || w>10000 || h>10000) + return(xbmError(bname, "not an XBM file")); +- +- pic8 = (byte *) calloc((size_t) w*h, (size_t) 1); ++ ++ pic8 = (byte *) calloc((size_t) w*h, (size_t) 1); /* safe (10^8 max) */ + if (!pic8) return(xbmError(bname, "couldn't malloc 'pic8'")); + + /* load up the pinfo structure */ + pinfo->pic = pic8; +- pinfo->w = w; ++ pinfo->w = w; + pinfo->h = h; + pinfo->normw = pinfo->w; pinfo->normh = pinfo->h; + pinfo->type = PIC8; +@@ -125,13 +125,13 @@ + if (!bit) { + /* get next byte from file. we're already positioned at it */ + c = getc(fp); c1 = getc(fp); +- if (c<0 || c1<0) { +- /* EOF: break out of loop */ ++ if (c<0 || c1<0) { ++ /* EOF: break out of loop */ + c=c1='0'; i=h; j=w; + xbmError(bname, "The file would appear to be truncated."); + } + +- if (hex[c1] == 255) { ++ if (hex[c1] == 255) { + if (hex[c] == 255) k = 0; /* no digits after the '0x' ... */ + else k = hex[c]; + } +@@ -149,7 +149,7 @@ + fclose(fp); + + return 1; +-} ++} + + + +@@ -172,7 +172,7 @@ + { + /* pic is expected to be an array of w*h bytes, each of which is either + '0' or '1'. +- The 'darker' of {rmap,gmap,bmap}[0] and {rmap,gmap,bmap}[1] is ++ The 'darker' of {rmap,gmap,bmap}[0] and {rmap,gmap,bmap}[1] is + considered black, and the other one, white. + Some sort of stippling algorithm should've + been called already to produce pic, otherwise the output won't be at all +@@ -188,7 +188,7 @@ + foo = (char *) index(name,'.'); + if (foo) *foo='\0'; /* truncated name at first '.' */ + +- fprintf(fp,"#define %s_width %d\n",name,w); ++ fprintf(fp,"#define %s_width %d\n",name,w); + fprintf(fp,"#define %s_height %d\n",name,h); + fprintf(fp,"static char %s_bits[] = {\n",name); + +diff -ruN xv-3.10a/xvxpm.c xv-3.10a-bugfixes/xvxpm.c +--- xv-3.10a/xvxpm.c 1994-12-22 14:34:42.000000000 -0800 ++++ xv-3.10a-bugfixes/xvxpm.c 2005-03-28 22:22:50.000000000 -0800 +@@ -10,7 +10,7 @@ + * format images. + * + * Thanks go to Sam Yates (syates@spam.maths.adelaide.edu.au) for +- * provideing inspiration. ++ * providing inspiration. + */ + + #define VALUES_LEN 80 /* Max length of values line */ +@@ -63,7 +63,7 @@ + PICINFO *pinfo; + { + /* returns '1' on success */ +- ++ + FILE *fp; + hentry item; + int c; +@@ -73,100 +73,110 @@ + byte *i_sptr; /* image search pointer */ + long filesize; + int w, h, nc, cpp, line_pos; ++ int npixels; + short i, j, k; /* for() loop indexes */ + hentry *clmp; /* colormap hash-table */ + hentry *c_sptr; /* cmap hash-table search pointer*/ + XColor col; +- ++ + bname = BaseName(fname); + fp = fopen(fname, "r"); + if (!fp) + return (XpmLoadError(bname, "couldn't open file")); +- ++ + if (DEBUG) + printf("LoadXPM(): Loading xpm from %s\n", fname); +- ++ + fseek(fp, 0L, 2); + filesize = ftell(fp); + fseek(fp, 0L, 0); +- ++ + bufchar = -2; + in_quote = FALSE; +- ++ + /* Read in the values line. It is the first string in the + * xpm, and contains four numbers. w, h, num_colors, and + * chars_per_pixel. */ +- ++ + /* First, get to the first string */ + while (((c = XpmGetc(fp))!=EOF) && (c != '"')) ; + line_pos = 0; +- ++ + /* Now, read in the string */ + while (((c = XpmGetc(fp))!=EOF) && (line_pos < VALUES_LEN) && (c != '"')) { + values[line_pos++] = c; + } + if (c != '"') + return (XpmLoadError(bname, "error parsing values line")); +- ++ + values[line_pos] = '\0'; + sscanf(values, "%d%d%d%d", &w, &h, &nc, &cpp); + if (nc <= 0 || cpp <= 0) + return (XpmLoadError(bname, "No colours in Xpm?")); +- ++ ++ npixels = w * h; ++ if (w <= 0 || h <= 0 || npixels/w != h) ++ return (XpmLoadError(bname, "Image dimensions out of range")); ++ + if (nc > 256) + pinfo->type = PIC24; + else + pinfo->type = PIC8; +- ++ + if (DEBUG) + printf("LoadXPM(): reading a %dx%d image (%d colors)\n", w, h, nc); +- ++ + /* We got this far... */ + WaitCursor(); +- ++ + if (!hash_init(nc)) + return (XpmLoadError(bname, "Not enough memory to hash colormap")); +- ++ + clmp = (hentry *) malloc(nc * sizeof(hentry)); /* Holds the colormap */ +- if (pinfo->type == PIC8) pic = (byte *) malloc((size_t) (w*h)); +- else pic = (byte *) malloc((size_t) (w*h*3)); +- ++ if (pinfo->type == PIC8) ++ pic = (byte *) malloc((size_t) npixels); ++ else { ++ int bufsize = 3*npixels; ++ if (bufsize/3 != npixels) ++ return (XpmLoadError(bname, "Image dimensions out of range")); ++ pic = (byte *) malloc((size_t) bufsize); ++ } ++ + if (!clmp || !pic) + return (XpmLoadError(bname, "Not enough memory to load pixmap")); +- ++ + c_sptr = clmp; + i_sptr = pic; +- ++ + /* initialize the 'hex' array for zippy ASCII-hex -> int conversion */ +- ++ + for (i = 0 ; i < 256 ; i++) hex[i] = 0; + for (i = '0'; i <= '9' ; i++) hex[i] = i - '0'; + for (i = 'a'; i <= 'f' ; i++) hex[i] = i - 'a' + 10; + for (i = 'A'; i <= 'F' ; i++) hex[i] = i - 'A' + 10; +- ++ + /* Again, we've made progress. */ + WaitCursor(); +- ++ + /* Now, we need to read the colormap. */ + pinfo->colType = F_BWDITHER; + for (i = 0 ; i < nc ; i++) { + while (((c = XpmGetc(fp))!=EOF) && (c != '"')) ; + if (c != '"') + return (XpmLoadError(bname, "Error reading colormap")); +- ++ + for (j = 0 ; j < cpp ; j++) + c_sptr->token[j] = XpmGetc(fp); + c_sptr->token[j] = '\0'; +- ++ + while (((c = XpmGetc(fp))!=EOF) && ((c == ' ') || (c == '\t'))) ; + if (c == EOF) /* The failure condition of getc() */ + return (XpmLoadError(bname, "Error parsing colormap line")); +- ++ + do { + char key[3]; + char color[40]; /* Need to figure a good size for this... */ +- short hd; /* Hex digits per R, G, or B */ +- ++ + for (j=0; j<2 && (c != ' ') && (c != '\t') && (c != EOF); j++) { + key[j] = c; + c = XpmGetc(fp); +@@ -185,14 +195,14 @@ + + while ((c == ' ') || (c == '\t')) + c = XpmGetc(fp); +- ++ + if (DEBUG > 1) + printf("LoadXPM(): Got color key '%s', color '%s'\n", + key, color); +- ++ + if (key[0] == 's') /* Don't find a color for a symbolic name */ + continue; +- ++ + if (XParseColor(theDisp,theCmap,color,&col)) { + if (pinfo->type == PIC8) { + pinfo->r[i] = col.red >> 8; +@@ -201,8 +211,8 @@ + c_sptr->cv_index = i; + + /* Is there a better way to do this? */ +- if (pinfo->colType != F_FULLCOLOR) +- if (pinfo->colType == F_GREYSCALE) ++ if (pinfo->colType != F_FULLCOLOR) { ++ if (pinfo->colType == F_GREYSCALE) { + if (pinfo->r[i] == pinfo->g[i] && + pinfo->g[i] == pinfo->b[i]) + /* Still greyscale... */ +@@ -210,9 +220,9 @@ + else + /* It's color */ + pinfo->colType = F_FULLCOLOR; +- else ++ } else { + if (pinfo->r[i] == pinfo->g[i] && +- pinfo->g[i] == pinfo->b[i]) ++ pinfo->g[i] == pinfo->b[i]) { + if ((pinfo->r[i] == 0 || pinfo->r[i] == 0xff) && + (pinfo->g[i] == 0 || pinfo->g[i] == 0xff) && + (pinfo->b[i] == 0 || pinfo->b[i] == 0xff)) +@@ -221,10 +231,12 @@ + else + /* It's greyscale */ + pinfo->colType = F_GREYSCALE; +- else ++ } else + /* It's color */ + pinfo->colType = F_FULLCOLOR; +- ++ } ++ } ++ + } + else { /* PIC24 */ + c_sptr->cv_rgb[0] = col.red >> 8; +@@ -242,7 +254,7 @@ + Timer(1000); + rgb = 0x808080; + } +- ++ + if (pinfo->type == PIC8) { + pinfo->r[i] = (rgb>>16) & 0xff; + pinfo->g[i] = (rgb>> 8) & 0xff; +@@ -256,39 +268,39 @@ + } + } + +- ++ + xvbcopy((char *) c_sptr, (char *) &item, sizeof(item)); + hash_insert(&item); +- +- if (DEBUG > 1) ++ ++ if (DEBUG > 1) + printf("LoadXPM(): Cmap entry %d, 0x%02x 0x%02x 0x%02x, token '%s'\n", + i, pinfo->r[i], pinfo->g[i], pinfo->b[i], c_sptr->token); +- ++ + if (*key == 'c') { /* This is the color entry, keep it. */ + while (c!='"' && c!=EOF) c = XpmGetc(fp); + break; + } +- ++ + } while (c != '"'); + c_sptr++; + + if (!(i%13)) WaitCursor(); + } /* for */ +- ++ + + if (DEBUG) + printf("LoadXPM(): Read and stored colormap.\n"); +- ++ + /* Now, read the pixmap. */ + for (i = 0 ; i < h ; i++) { + while (((c = XpmGetc(fp))!=EOF) && (c != '"')) ; + if (c != '"') + return (XpmLoadError(bname, "Error reading colormap")); +- ++ + for (j = 0 ; j < w ; j++) { + char pixel[TOKEN_LEN]; + hentry *mapentry; +- ++ + for (k = 0 ; k < cpp ; k++) + pixel[k] = XpmGetc(fp); + pixel[k] = '\0'; +@@ -300,7 +312,7 @@ + pixel); + return (XpmLoadError(bname, "Can't map resolve into colormap")); + } +- ++ + if (pinfo->type == PIC8) + *i_sptr++ = mapentry->cv_index; + else { +@@ -310,27 +322,27 @@ + } + } /* for ( j < w ) */ + (void)XpmGetc(fp); /* Throw away the close " */ +- ++ + if (!(i%7)) WaitCursor(); + } /* for ( i < h ) */ +- ++ + pinfo->pic = pic; + pinfo->normw = pinfo->w = w; + pinfo->normh = pinfo->h = h; + pinfo->frmType = F_XPM; + + if (DEBUG) printf("LoadXPM(): pinfo->colType is %d\n", pinfo->colType); +- ++ + sprintf(pinfo->fullInfo, "Xpm v3 Pixmap (%ld bytes)", filesize); + sprintf(pinfo->shrtInfo, "%dx%d Xpm.", w, h); + pinfo->comment = (char *)NULL; +- ++ + hash_destroy(); + free(clmp); +- ++ + if (fp != stdin) + fclose(fp); +- ++ + return(1); + } + +@@ -349,17 +361,17 @@ + FILE *f; + { + int c, d, lastc; +- ++ + if (bufchar != -2) { + /* The last invocation of this routine read the character... */ + c = bufchar; + bufchar = -2; + return(c); + } +- ++ + if ((c = getc(f)) == EOF) + return(EOF); +- ++ + if (c == '"') + in_quote = !in_quote; + else if (!in_quote && c == '/') { /* might be a C-style comment */ +@@ -389,14 +401,14 @@ + + + /***************************************/ +-static int hash(token) ++static int hash(token) + char *token; + { + int i, sum; + + for (i=sum=0; token[i] != '\0'; i++) + sum += token[i]; +- ++ + sum = sum % hash_len; + return (sum); + } +@@ -414,7 +426,7 @@ + */ + + int i; +- ++ + hash_len = 257; + + hashtab = (hentry **) malloc(sizeof(hentry *) * hash_len); +@@ -425,7 +437,7 @@ + + for (i = 0 ; i < hash_len ; i++) + hashtab[i] = NULL; +- ++ + return 1; + } + +@@ -436,22 +448,22 @@ + { + int key; + hentry *tmp; +- ++ + key = hash(entry->token); +- ++ + tmp = (hentry *) malloc(sizeof(hentry)); + if (!tmp) { + SetISTR(ISTR_WARNING, "Couldn't malloc hash entry in LoadXPM()!\n"); + return 0; + } +- ++ + xvbcopy((char *)entry, (char *)tmp, sizeof(hentry)); +- ++ + if (hashtab[key]) tmp->next = hashtab[key]; + else tmp->next = NULL; +- ++ + hashtab[key] = tmp; +- ++ + return 1; + } + +@@ -462,9 +474,9 @@ + { + int key; + hentry *tmp; +- ++ + key = hash(token); +- ++ + tmp = hashtab[key]; + while (tmp && strcmp(token, tmp->token)) { + tmp = tmp->next; +@@ -479,7 +491,7 @@ + { + int i; + hentry *tmp; +- ++ + for (i=0; inext; +@@ -487,7 +499,7 @@ + hashtab[i] = tmp; + } + } +- ++ + free(hashtab); + return; + } +@@ -508,10 +520,10 @@ + /* Note here, that tokenchars is assumed to contain 64 valid token */ + /* characters. It's hardcoded to assume this for benefit of generating */ + /* tokens, when there are more than 64^2 colors. */ +- ++ + short i, imax, j; /* for() loop indices */ + short cpp = 0; +- char *tokenchars = ++ char *tokenchars = + ".#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + char *tokens; + char image_name[256], *foo; +@@ -523,20 +535,21 @@ + long li; /* for() loop index */ + int numcol; + #endif +- +- if (DEBUG) ++ ++ if (DEBUG) { + if (ptype == PIC8) + printf("WriteXPM(): Write a %d color, colortype %d, PIC8 image.\n", + nc, col); + else + printf("WriteXPM(): Write a colortype %d, PIC24 image.\n", col); +- ++ } ++ + foo = BaseName(name); + strcpy(image_name, foo); + foo = (char *)strchr(image_name, '.'); + if (foo) + *foo = '\0'; /* Truncate name at first '.' */ +- ++ + #ifdef USE_UNFINISHED_24BIT_WRITING_CODE + if (ptype == PIC24) + return -1; +@@ -547,15 +560,15 @@ + /* 'packed'. Code in here to do that should be removed if */ + /* Conv24to8 is "fixed" to do this... */ + /* Chris P. Ross (cross@eng.umd.edu) 28-Sept-94 */ +- ++ + numcol = 0; +- ++ + if (ptype == PIC24) { + /* Reduce to an 8-bit image. Would be nice to actually write */ + /* the 24-bit image. I'll have to code that someday... */ + pic8 = Conv24to8(pic, w, h, 256, rtemp, gtemp, btemp); + if (!pic8) { +- SetISTR(ISTR_WARNING, ++ SetISTR(ISTR_WARNING, + "%s: Unable to convert to 8-bit image in WriteXPM()", + image_name); + return 1; +@@ -594,7 +607,7 @@ + } + #endif + +- ++ + #ifdef USE_UNFINISHED_24BIT_WRITING_CODE + if (ptype == PIC24) cpp = 4; + else if (numcol > 64) cpp = 2; +@@ -609,7 +622,7 @@ + fprintf(fp, "/* width height num_colors chars_per_pixel */\n"); + fprintf(fp, "\" %3d %3d %6d %1d\",\n", w, h, numcol, cpp); + fprintf(fp, "/* colors */\n"); +- ++ + switch (cpp) { + + case 1: /* <= 64 colors; index into tokenchars */ +@@ -681,12 +694,12 @@ + + case 4: + /* Generate a colormap */ +- ++ + break; + default: + break; + } +- ++ + if (fprintf(fp, "\"\n};\n") == EOF) { + return 1; + } else +diff -ruN xv-3.10a/xvxwd.c xv-3.10a-bugfixes/xvxwd.c +--- xv-3.10a/xvxwd.c 1994-12-22 14:34:40.000000000 -0800 ++++ xv-3.10a-bugfixes/xvxwd.c 2005-03-28 22:37:07.000000000 -0800 +@@ -1,10 +1,10 @@ +-/* ++/* + ** Based on xwdtopnm.c - read and write an X11 or X10 window dump file + ** + ** Modified heavily by Markus Baur (mbaur@ira.uka.de) for use as a part + ** of xv-2.21, 12/30/92 + ** +- ** Hacked up again to support xv-3.00 and XWDs from 64bit machines ++ ** Hacked up again to support xv-3.00 and XWDs from 64bit machines + ** (e.g. DEC Alphas), 04/10/94 + ** + ** Copyright (C) 1989, 1991 by Jef Poskanzer. +@@ -19,47 +19,53 @@ + */ + + #include "xv.h" ++#include /* for CHAR_BIT */ ++ ++/* SJT: just in case ... */ ++#ifndef CHAR_BIT ++# define CHAR_BIT 8 ++#endif + + + /***************************** x11wd.h *****************************/ + #define X11WD_FILE_VERSION 7 + typedef struct { +- CARD32 header_size; /* Size of the entire file header (bytes). */ +- CARD32 file_version; /* X11WD_FILE_VERSION */ +- CARD32 pixmap_format; /* Pixmap format */ +- CARD32 pixmap_depth; /* Pixmap depth */ +- CARD32 pixmap_width; /* Pixmap width */ +- CARD32 pixmap_height; /* Pixmap height */ +- CARD32 xoffset; /* Bitmap x offset */ +- CARD32 byte_order; /* MSBFirst, LSBFirst */ +- CARD32 bitmap_unit; /* Bitmap unit */ +- CARD32 bitmap_bit_order; /* MSBFirst, LSBFirst */ +- CARD32 bitmap_pad; /* Bitmap scanline pad */ +- CARD32 bits_per_pixel; /* Bits per pixel */ +- CARD32 bytes_per_line; /* Bytes per scanline */ +- CARD32 visual_class; /* Class of colormap */ +- CARD32 red_mask; /* Z red mask */ +- CARD32 green_mask; /* Z green mask */ +- CARD32 blue_mask; /* Z blue mask */ +- CARD32 bits_per_rgb; /* Log base 2 of distinct color values */ +- CARD32 colormap_entries; /* Number of entries in colormap */ +- CARD32 ncolors; /* Number of Color structures */ +- CARD32 window_width; /* Window width */ +- CARD32 window_height; /* Window height */ +- CARD32 window_x; /* Window upper left X coordinate */ +- CARD32 window_y; /* Window upper left Y coordinate */ +- CARD32 window_bdrwidth; /* Window border width */ ++ CARD32 header_size; /* Size of the entire file header (bytes). */ ++ CARD32 file_version; /* X11WD_FILE_VERSION */ ++ CARD32 pixmap_format; /* Pixmap format */ ++ CARD32 pixmap_depth; /* Pixmap depth */ ++ CARD32 pixmap_width; /* Pixmap width */ ++ CARD32 pixmap_height; /* Pixmap height */ ++ CARD32 xoffset; /* Bitmap x offset */ ++ CARD32 byte_order; /* MSBFirst, LSBFirst */ ++ CARD32 bitmap_unit; /* Bitmap unit */ ++ CARD32 bitmap_bit_order; /* MSBFirst, LSBFirst */ ++ CARD32 bitmap_pad; /* Bitmap scanline pad */ ++ CARD32 bits_per_pixel; /* Bits per pixel */ ++ CARD32 bytes_per_line; /* Bytes per scanline */ ++ CARD32 visual_class; /* Class of colormap */ ++ CARD32 red_mask; /* Z red mask */ ++ CARD32 grn_mask; /* Z green mask */ ++ CARD32 blu_mask; /* Z blue mask */ ++ CARD32 bits_per_rgb; /* Log base 2 of distinct color values */ ++ CARD32 colormap_entries; /* Number of entries in colormap */ ++ CARD32 ncolors; /* Number of Color structures */ ++ CARD32 window_width; /* Window width */ ++ CARD32 window_height; /* Window height */ ++ CARD32 window_x; /* Window upper left X coordinate */ ++ CARD32 window_y; /* Window upper left Y coordinate */ ++ CARD32 window_bdrwidth; /* Window border width */ + #ifdef WORD64 +- CARD32 header_pad; ++ CARD32 header_pad; + #endif +- } X11WDFileHeader; ++} X11WDFileHeader; + + typedef struct { + CARD32 num; + CARD16 red, green, blue; +- CARD8 flags; /* do_red, do_green, do_blue */ ++ CARD8 flags; /* do_red, do_green, do_blue */ + CARD8 pad; +- } X11XColor; ++} X11XColor; + + + /*-------------------------------------------------------------------------*/ +@@ -67,7 +73,7 @@ + typedef byte pixel; + + /* local functions */ +-static int getinit PARM((FILE *, int*, int*, int*, CARD32 *, ++static int getinit PARM((FILE *, int*, int*, int*, CARD32 *, + CARD32, PICINFO *)); + static CARD32 getpixnum PARM((FILE *)); + static int xwdError PARM((char *)); +@@ -78,19 +84,27 @@ + static int readbiglong PARM((FILE *, CARD32 *)); + static int readlittleshort PARM((FILE *, CARD16 *)); + static int readlittlelong PARM((FILE *, CARD32 *)); ++#if 0 /* NOTUSED */ + static int writebigshort PARM((FILE *, int)); + static int writebiglong PARM((FILE *, CARD32)); ++#endif ++ ++static void getcolorshift PARM((CARD32, int *, int *)); /* SJT */ + ++/* SJT: for 16bpp and 24bpp shifts */ ++static int red_shift_right, red_justify_left, ++ grn_shift_right, grn_justify_left, ++ blu_shift_right, blu_justify_left; + static byte *pic8, *pic24; +-static CARD32 red_mask, green_mask, blue_mask; +-static int bits_per_item, bits_used, bit_shift, bits_per_pixel; ++static CARD32 red_mask, grn_mask, blu_mask; ++static int bits_per_item, bits_used, bit_shift, ++ bits_per_pixel, bits_per_rgb; + static char buf[4]; + static char *byteP; + static CARD16 *shortP; + static CARD32 *longP; + static CARD32 pixel_mask; + static int byte_swap, byte_order, bit_order, filesize; +-static byte bw[2] = {0, 0xff}; + + static char *bname; + +@@ -105,7 +119,7 @@ + + pixel *xP; + int col; +- int rows, cols, padright, row; ++ int rows, cols, padright, row, npixels, bufsize; + CARD32 maxval, visualclass; + FILE *ifp; + +@@ -116,22 +130,28 @@ + + ifp = xv_fopen(fname, "r"); + if (!ifp) return (xwdError("can't open file")); +- ++ + /* figure out the file size (used to check colormap size) */ + fseek(ifp, 0L, 2); + filesize = ftell(ifp); + fseek(ifp, 0L, 0); +- ++ + + if (getinit(ifp, &cols, &rows, &padright, &visualclass, maxval, pinfo)) + return 0; + ++ npixels = cols * rows; ++ if (cols <= 0 || rows <= 0 || npixels/cols != rows) { ++ xwdError("Image dimensions out of range"); ++ return 0; ++ } ++ + + switch (visualclass) { + case StaticGray: + case GrayScale: + pinfo->colType = F_GREYSCALE; +- pic8 = (byte *) calloc((size_t) cols*rows, (size_t) 1); ++ pic8 = (byte *) calloc((size_t) npixels, (size_t) 1); + if (!pic8) { + xwdError("couldn't malloc 'pic'"); + return 0; +@@ -140,18 +160,18 @@ + for (row=0; rowtype = PIC8; + pinfo->pic = pic8; +- break; ++ break; + + case StaticColor: + case PseudoColor: + pinfo->colType = F_FULLCOLOR; +- pic8 = (byte *) calloc((size_t) cols*rows, (size_t) 1); ++ pic8 = (byte *) calloc((size_t) npixels, (size_t) 1); + if (!pic8) { + xwdError("couldn't malloc 'pic'"); + return 0; +@@ -162,15 +182,20 @@ + *xP = getpixnum(ifp); + for (col=0; coltype = PIC8; + pinfo->pic = pic8; +- break; ++ break; + + case TrueColor: + case DirectColor: + pinfo->colType = F_FULLCOLOR; +- pic24 = (byte *) calloc((size_t) cols*rows*3, (size_t) 1); ++ bufsize = 3*npixels; ++ if (bufsize/3 != npixels) { ++ xwdError("Image dimensions out of range"); ++ return 0; ++ } ++ pic24 = (byte *) calloc((size_t) bufsize, (size_t) 1); + if (!pic24) { + xwdError("couldn't malloc 'pic24'"); + return 0; +@@ -179,42 +204,44 @@ + for (row=0; row> 0); +- *xP++ = ((ul & green_mask) >> 5); +- *xP++ = ((ul & blue_mask) >> 10); +- break; +- +- case 24: +- case 32: +- *xP++ = (ul ) & 0xff; +- *xP++ = (ul>> 8) & 0xff; +- *xP++ = (ul>>16) & 0xff; +- break; +- ++ case 16: ++ case 24: ++ case 32: ++ /* SJT: shift all the way to the right and then shift left. The ++ pairs of shifts could be combined. There will be two right and ++ one left shift, but it's unknown which will be which. It seems ++ easier to do the shifts (which might be 0) separately than to ++ have a complex set of tests. I believe this is independent of ++ byte order but I have no way to test. ++ */ ++ *xP++ = ((ul & red_mask) >> red_shift_right) << red_justify_left; ++ *xP++ = ((ul & grn_mask) >> grn_shift_right) << grn_justify_left; ++ *xP++ = ((ul & blu_mask) >> blu_shift_right) << blu_justify_left; ++ break; ++ + default: +- xwdError("True/Direct only supports 16, 24, and 32 bits"); ++ xwdError("True/Direct supports only 16, 24, and 32 bits"); + return 0; + } + } + + for (col=0; coltype = PIC24; + pinfo->pic = pic24; + break; +- ++ + default: + xwdError("unknown visual class"); + return 0; + } + + sprintf(pinfo->fullInfo, "XWD, %d-bit %s. (%d bytes)", +- bits_per_pixel, ++ bits_per_pixel, + ((visualclass == StaticGray ) ? "StaticGray" : + (visualclass == GrayScale ) ? "GrayScale" : + (visualclass == StaticColor) ? "StaticColor" : +@@ -258,10 +285,10 @@ + maxv = 255L; + + h11P = (X11WDFileHeader*) header; +- ++ + if (fread(&header[0], sizeof(*h11P), (size_t) 1, file) != 1) + return(xwdError("couldn't read X11 XWD file header")); +- ++ + if (h11P->file_version != X11WD_FILE_VERSION) { + byte_swap = 1; + h11P->header_size = bs_long(h11P->header_size); +@@ -279,8 +306,8 @@ + h11P->bytes_per_line = bs_long(h11P->bytes_per_line); + h11P->visual_class = bs_long(h11P->visual_class); + h11P->red_mask = bs_long(h11P->red_mask); +- h11P->green_mask = bs_long(h11P->green_mask); +- h11P->blue_mask = bs_long(h11P->blue_mask); ++ h11P->grn_mask = bs_long(h11P->grn_mask); ++ h11P->blu_mask = bs_long(h11P->blu_mask); + h11P->bits_per_rgb = bs_long(h11P->bits_per_rgb); + h11P->colormap_entries = bs_long(h11P->colormap_entries); + h11P->ncolors = bs_long(h11P->ncolors); +@@ -294,7 +321,7 @@ + for (i=0; iheader_size - sizeof(*h11P); i++) + if (getc(file) == EOF) + return(xwdError("couldn't read rest of X11 XWD file header")); +- ++ + /* Check whether we can handle this dump. */ + if (h11P->pixmap_depth > 24) + return(xwdError("can't handle X11 pixmap_depth > 24")); +@@ -303,27 +330,31 @@ + return(xwdError("can't handle X11 bits_per_rgb > 24")); + + if (h11P->pixmap_format != ZPixmap && h11P->pixmap_depth != 1) { +- sprintf(errstr, "can't handle X11 pixmap_format %d with depth != 1", ++ sprintf(errstr, "can't handle X11 pixmap_format %ld with depth != 1", + h11P->pixmap_format); + return(xwdError(errstr)); + } + + if (h11P->bitmap_unit != 8 && h11P->bitmap_unit != 16 && + h11P->bitmap_unit != 32) { +- sprintf(errstr, "X11 bitmap_unit (%d) is non-standard - can't handle", ++ sprintf(errstr, "X11 bitmap_unit (%ld) is non-standard - can't handle", + h11P->bitmap_unit); + return(xwdError(errstr)); + } +- ++ + grayscale = 1; + if (h11P->ncolors > 0) { /* Read X11 colormap. */ +- x11colors = (X11XColor*) malloc(h11P->ncolors * sizeof(X11XColor)); ++ int bufsize = h11P->ncolors * sizeof(X11XColor); ++ ++ if (bufsize/sizeof(X11XColor) != h11P->ncolors) ++ return(xwdError("too many colors")); ++ x11colors = (X11XColor*) malloc(bufsize); + if (!x11colors) return(xwdError("out of memory")); +- +- if (h11P->header_size + h11P->ncolors * sizeof(X11XColor) ++ ++ if (h11P->header_size + bufsize + + h11P->pixmap_height * h11P->bytes_per_line + h11P->ncolors * 4 + == filesize ) word64 = 1; +- ++ + if (word64) { + for (i = 0; i < h11P->ncolors; ++i) { + if (fread(&pad, sizeof(pad), (size_t) 1, file ) != 1) +@@ -334,11 +365,11 @@ + } + } + else { +- if (fread(x11colors, sizeof(X11XColor), (size_t) h11P->ncolors, file) ++ if (fread(x11colors, sizeof(X11XColor), (size_t) h11P->ncolors, file) + != h11P->ncolors) + return(xwdError("couldn't read X11 XWD colormap")); + } +- ++ + for (i = 0; i < h11P->ncolors; ++i) { + if (byte_swap) { + x11colors[i].red = (CARD16) bs_short(x11colors[i].red); +@@ -356,8 +387,11 @@ + grayscale = 0; + } + } +- ++ + *visualclassP = h11P->visual_class; ++ /* SJT: FIXME. If bits_per_pixel == 16 maxv could be either 31 or 63. ++ It doesn't matter, though, because maxv is never used beyond here. ++ */ + if (*visualclassP == TrueColor || *visualclassP == DirectColor) { + if (h11P->bits_per_pixel == 16) maxv = 31; + else maxv = 255; +@@ -389,24 +423,48 @@ + } + } + } +- ++ + *colsP = h11P->pixmap_width; + *rowsP = h11P->pixmap_height; + *padrightP = h11P->bytes_per_line * 8 / h11P->bits_per_pixel - + h11P->pixmap_width; +- ++ + bits_per_item = h11P->bitmap_unit; +- bits_used = bits_per_item; + bits_per_pixel = h11P->bits_per_pixel; + byte_order = h11P->byte_order; + bit_order = h11P->bitmap_bit_order; +- ++ bits_per_rgb = h11P->bits_per_rgb; ++ ++ ++ /* add sanity-code for freako 'exceed' server, where bitmapunit = 8 ++ and bitsperpix = 32 (and depth=24)... */ ++ ++ if (bits_per_item < bits_per_pixel) { ++ bits_per_item = bits_per_pixel; ++ ++ /* round bits_per_item up to next legal value, if necc */ ++ if (bits_per_item < 8) bits_per_item = 8; ++ else if (bits_per_item < 16) bits_per_item = 16; ++ else bits_per_item = 32; ++ } ++ ++ ++ /* which raises the question: how (can?) you ever have a 24 bits per pix, ++ (ie, 3 bytes, no alpha/padding) */ ++ ++ ++ bits_used = bits_per_item; ++ + if (bits_per_pixel == sizeof(pixel_mask) * 8) pixel_mask = (CARD32) -1; + else pixel_mask = (1 << bits_per_pixel) - 1; +- +- red_mask = h11P->red_mask; +- green_mask = h11P->green_mask; +- blue_mask = h11P->blue_mask; ++ ++ red_mask = h11P->red_mask; ++ grn_mask = h11P->grn_mask; ++ blu_mask = h11P->blu_mask; ++ ++ getcolorshift(red_mask, &red_shift_right, &red_justify_left); ++ getcolorshift(grn_mask, &grn_shift_right, &grn_justify_left); ++ getcolorshift(blu_mask, &blu_shift_right, &blu_justify_left); + + byteP = (char *) buf; + shortP = (CARD16 *) buf; +@@ -416,18 +474,57 @@ + } + + ++/* SJT: figure out the proper shifts */ ++static void getcolorshift (CARD32 mask, int *rightshift, int *leftshift) ++{ ++ int lshift, rshift; ++ unsigned int uu; ++ ++ if (mask == 0) ++ { ++ *rightshift = *leftshift = 0; ++ return; ++ } ++ ++ uu = mask; ++ lshift = rshift = 0; ++ while ((uu & 0xf) == 0) ++ { ++ rshift += 4; ++ uu >>= 4; ++ } ++ while ((uu & 1) == 0) ++ { ++ rshift++; ++ uu >>= 1; ++ } ++ ++ while (uu != 0) ++ { ++ if (uu & 1) ++ { ++ lshift++; ++ uu >>= 1; ++ } ++ } ++ *rightshift = rshift; ++ *leftshift = CHAR_BIT * sizeof(pixel) - lshift; ++ return; ++} ++ ++ + /******************************/ + static CARD32 getpixnum(file) + FILE* file; + { + int n; +- ++ + if (bits_used == bits_per_item) { + switch (bits_per_item) { + case 8: + *byteP = getc(file); + break; +- ++ + case 16: + if (byte_order == MSBFirst) { + if (readbigshort(file, shortP) == -1) +@@ -438,7 +535,7 @@ + xwdWarning("unexpected EOF"); + } + break; +- ++ + case 32: + if (byte_order == MSBFirst) { + if (readbiglong(file, longP) == -1) +@@ -449,41 +546,41 @@ + xwdWarning("unexpected EOF"); + } + break; +- ++ + default: + xwdWarning("can't happen"); + } + bits_used = 0; +- ++ + if (bit_order == MSBFirst) + bit_shift = bits_per_item - bits_per_pixel; + else + bit_shift = 0; + } +- ++ + switch (bits_per_item) { + case 8: + n = (*byteP >> bit_shift) & pixel_mask; + break; +- ++ + case 16: + n = (*shortP >> bit_shift) & pixel_mask; + break; +- ++ + case 32: + n = (*longP >> bit_shift) & pixel_mask; + break; +- ++ + default: + n = 0; + xwdWarning("can't happen"); + } +- ++ + if (bit_order == MSBFirst) bit_shift -= bits_per_pixel; + else bit_shift += bits_per_pixel; + + bits_used += bits_per_pixel; +- ++ + return n; + } + +@@ -511,7 +608,7 @@ + + + +-/* ++/* + * Byte-swapping junk. + */ + +@@ -537,7 +634,7 @@ + { + union cheat u; + unsigned char t; +- ++ + u.l = l; + t = u.c[0]; u.c[0] = u.c[3]; u.c[3] = t; + t = u.c[1]; u.c[1] = u.c[2]; u.c[2] = t; +@@ -549,7 +646,7 @@ + + + +-/* ++/* + * Endian I/O. + */ + +@@ -584,7 +681,7 @@ + { + *sP = getc(in) & 0xff; + *sP |= (getc(in) & 0xff) << 8; +- ++ + if (ferror(in)) return -1; + return 0; + } +@@ -604,6 +701,7 @@ + } + + ++#if 0 /* NOTUSED */ + static int writebiglong(out, l) + FILE* out; + CARD32 l; +@@ -624,3 +722,4 @@ + putc(s&0xff, out); + return 0; + } ++#endif /* 0 (NOTUSED) */ diff --git a/source/xap/xv/xv-3.10a.patch b/source/xap/xv/xv-3.10a.patch new file mode 100644 index 000000000..0bf8210f2 --- /dev/null +++ b/source/xap/xv/xv-3.10a.patch @@ -0,0 +1,2745 @@ +Installation Instructions: + +This patch will update XV 3.10 to 3.10a. + +Copy this file into the top-level XV source directory, and apply it using: + patch -p0 strlen(a2)) return 1; + + if (strncmp(a1+1, a2+1, strlen(a1)-1)) return 1; +--- 1686,1693 ---- + + int i; + +! if ((strlen(a1) < (size_t) minlen) || (strlen(a2) < (size_t) minlen)) +! return 1; + if (strlen(a1) > strlen(a2)) return 1; + + if (strncmp(a1+1, a2+1, strlen(a1)-1)) return 1; +*************** +*** 1860,1866 **** + + + /* chop off trailing ".Z", ".z", or ".gz" from displayed basefname, if any */ +! if (strlen(basefname)>2 && strcmp(basefname+strlen(basefname)-2,".Z")==0) + basefname[strlen(basefname)-2]='\0'; + else { + #ifdef GUNZIP +--- 1864,1871 ---- + + + /* chop off trailing ".Z", ".z", or ".gz" from displayed basefname, if any */ +! if (strlen(basefname) > (size_t) 2 && +! strcmp(basefname+strlen(basefname)-2,".Z")==0) + basefname[strlen(basefname)-2]='\0'; + else { + #ifdef GUNZIP +*************** +*** 2698,2705 **** + to what it was. necessary because uncompress doesn't handle files + that don't end with '.Z' */ + +! if (strlen(name)>=2 && strcmp(name + strlen(name)-2,".Z")!=0 && +! strcmp(name + strlen(name)-2,".z")!=0) { + strcpy(namez, name); + strcat(namez,".Z"); + +--- 2703,2711 ---- + to what it was. necessary because uncompress doesn't handle files + that don't end with '.Z' */ + +! if (strlen(name) >= (size_t) 2 && +! strcmp(name + strlen(name)-2,".Z")!=0 && +! strcmp(name + strlen(name)-2,".z")!=0) { + strcpy(namez, name); + strcat(namez,".Z"); + +*************** +*** 2890,2896 **** + char fullcmd[512], tmpname[64], str[512]; + int i; + +! if (!cmd || strlen(cmd)<2) return 1; + + sprintf(tmpname,"%s/xvXXXXXX", tmpdir); + mktemp(tmpname); +--- 2896,2902 ---- + char fullcmd[512], tmpname[64], str[512]; + int i; + +! if (!cmd || (strlen(cmd) < (size_t) 2)) return 1; + + sprintf(tmpname,"%s/xvXXXXXX", tmpdir); + mktemp(tmpname); +*************** +*** 3270,3276 **** + + xwmh.icon_pixmap = iconPix; + xwmh.icon_mask = iconmask; +! xwmh.flags |= ( IconPixmapHint | IconMaskHint) ; + + + if (startIconic && firstTime) { +--- 3276,3282 ---- + + xwmh.icon_pixmap = iconPix; + xwmh.icon_mask = iconmask; +! xwmh.flags |= (IconPixmapHint | IconMaskHint); + + + if (startIconic && firstTime) { +*************** +*** 3787,3793 **** +--- 3793,3802 ---- + | EnterWindowMask | LeaveWindowMask ); + + StoreDeleteWindowProp(mainW); ++ XFlush(theDisp); + XMapWindow(theDisp,mainW); ++ XFlush(theDisp); ++ if (startIconic) sleep(2); /* give it time to get the window up...*/ + } + } + +diff -c -r ../xv-3.10/xv.h ./xv.h +*** ../xv-3.10/xv.h Thu Dec 22 14:12:15 1994 +--- ./xv.h Mon Jan 23 15:22:23 1995 +*************** +*** 8,15 **** + #include "config.h" + + +! #define REVDATE "Version 3.10 Rev: 12/16/94" +! #define VERSTR "3.10" + + /* + * uncomment the following, and modify for your site, but only if you've +--- 8,15 ---- + #include "config.h" + + +! #define REVDATE "Version 3.10a Rev: 12/29/94" +! #define VERSTR "3.10a" + + /* + * uncomment the following, and modify for your site, but only if you've +*************** +*** 62,67 **** +--- 62,74 ---- + #endif + + ++ #ifdef LINUX ++ # ifndef _LINUX_LIMITS_H ++ # include ++ # endif ++ #endif ++ ++ + #include /* need type declarations immediately */ + + /*********************************************************/ +*************** +*** 198,203 **** +--- 205,217 ---- + # include + # endif + ++ /*** for select() call ***/ ++ # ifdef __hpux ++ # define XV_FDTYPE (int *) ++ # else ++ # define XV_FDTYPE (fd_set *) ++ # endif ++ + #endif /* NEEDSTIME */ + + +*************** +*** 214,219 **** +--- 228,237 ---- + # include + # endif + ++ # if defined(SVR4) || defined(SYSV) ++ # include ++ # endif ++ + # include + # include + +*************** +*** 961,966 **** +--- 979,985 ---- + WHERE int ch_offx,ch_offy; /* ChngAttr ofst for reparented windows */ + WHERE int kludge_offx, /* WM kludges for SetWindowPos routine */ + kludge_offy; ++ WHERE int winCtrPosKludge; /* kludge for popup positioning... */ + + WHERE int ignoreConfigs; /* an evil kludge... */ + +diff -c -r ../xv-3.10/xv24to8.c ./xv24to8.c +*** ../xv-3.10/xv24to8.c Thu Dec 22 14:12:15 1994 +--- ./xv24to8.c Fri Jan 13 14:49:21 1995 +*************** +*** 374,382 **** + + #define PPM_DEPTH(newp,p,oldmaxval,newmaxval) \ + PPM_ASSIGN( (newp), \ +! (int) PPM_GETR(p) * (newmaxval) / ((int)oldmaxval), \ +! (int) PPM_GETG(p) * (newmaxval) / ((int)oldmaxval), \ +! (int) PPM_GETB(p) * (newmaxval) / ((int)oldmaxval) ) + + + /* Luminance macro. */ +--- 374,382 ---- + + #define PPM_DEPTH(newp,p,oldmaxval,newmaxval) \ + PPM_ASSIGN( (newp), \ +! ((int) PPM_GETR(p)) * ((int)newmaxval) / ((int)oldmaxval), \ +! ((int) PPM_GETG(p)) * ((int)newmaxval) / ((int)oldmaxval), \ +! ((int) PPM_GETB(p)) * ((int)newmaxval) / ((int)oldmaxval) ) + + + /* Luminance macro. */ + +diff -c -r ../xv-3.10/xvbrowse.c ./xvbrowse.c +*** ../xv-3.10/xvbrowse.c Thu Dec 22 14:12:20 1994 +--- ./xvbrowse.c Thu Jan 19 12:49:17 1995 +*************** +*** 20,26 **** + #define NEEDSDIR + #include "xv.h" + +! #ifdef VMS + typedef unsigned int mode_t; /* file mode bits */ + #endif + +--- 20,26 ---- + #define NEEDSDIR + #include "xv.h" + +! #if defined(VMS) || defined(isc) + typedef unsigned int mode_t; /* file mode bits */ + #endif + +*************** +*** 2579,2585 **** + int rv; + + /* temporarily excise trailing '/' char from br->path */ +! if (strlen(br->path)>2 && br->path[strlen(br->path)-1] == '/') + br->path[strlen(br->path)-1] = '\0'; + + rv = chdir(br->path); +--- 2579,2585 ---- + int rv; + + /* temporarily excise trailing '/' char from br->path */ +! if ((strlen(br->path) > (size_t) 2) && br->path[strlen(br->path)-1] == '/') + br->path[strlen(br->path)-1] = '\0'; + + rv = chdir(br->path); +*************** +*** 3544,3550 **** + case RFT_PBM: if (xv_strstr(pinfo.fullInfo, "raw")) strcat(str,"Raw "); + else strcat(str,"Ascii "); + +! for (i=0; i<3 && strlen(pinfo.fullInfo)>3; i++) { + str1[0] = pinfo.fullInfo[i]; str1[1] = '\0'; + strcat(str, str1); + } +--- 3544,3550 ---- + case RFT_PBM: if (xv_strstr(pinfo.fullInfo, "raw")) strcat(str,"Raw "); + else strcat(str,"Ascii "); + +! for (i=0; i<3 && (strlen(pinfo.fullInfo)>(size_t)3); i++){ + str1[0] = pinfo.fullInfo[i]; str1[1] = '\0'; + strcat(str, str1); + } +*************** +*** 4521,4527 **** + + /* try to delete a thumbnail file, as well. ignore errors */ + strcpy(buf1, name); /* tmp1 = leading path of name */ +! tmp = rindex(buf1, '/'); + if (!tmp) strcpy(buf1,"."); + else *tmp = '\0'; + +--- 4521,4527 ---- + + /* try to delete a thumbnail file, as well. ignore errors */ + strcpy(buf1, name); /* tmp1 = leading path of name */ +! tmp = (char *) rindex(buf1, '/'); + if (!tmp) strcpy(buf1,"."); + else *tmp = '\0'; + +diff -c -r ../xv-3.10/xvbutt.c ./xvbutt.c +*** ../xv-3.10/xvbutt.c Thu Dec 22 14:12:16 1994 +--- ./xvbutt.c Tue Jan 03 16:19:51 1995 +*************** +*** 961,967 **** + + /* truncate at TAB, if any */ + strcpy(stbuf, str); +! if ((str = index(stbuf, '\t')) != NULL) *str = '\0'; + str = stbuf; + + x1 = CENTERX(mfinfo, x + w/2, str); +--- 961,967 ---- + + /* truncate at TAB, if any */ + strcpy(stbuf, str); +! if ((str = (char *) index(stbuf, '\t')) != NULL) *str = '\0'; + str = stbuf; + + x1 = CENTERX(mfinfo, x + w/2, str); +*************** +*** 1073,1079 **** + char *sp, str[256]; + + strcpy(str, mb->list[i]); +! sp = index(str, '\t'); + j = StringWidth(sp+1); + if (j>mtabwide) mtabwide = j; + +--- 1073,1079 ---- + char *sp, str[256]; + + strcpy(str, mb->list[i]); +! sp = (char *) index(str, '\t'); + j = StringWidth(sp+1); + if (j>mtabwide) mtabwide = j; + +*************** +*** 1139,1145 **** + for (i=0; inlist; i++) { + char txtstr[256], *tabstr; + strcpy(txtstr, mb->list[i]); +! if ((tabstr = index(txtstr, '\t'))) { + *tabstr = '\0'; tabstr++; + } + +--- 1139,1145 ---- + for (i=0; inlist; i++) { + char txtstr[256], *tabstr; + strcpy(txtstr, mb->list[i]); +! if ((tabstr = (char *) index(txtstr, '\t'))) { + *tabstr = '\0'; tabstr++; + } + +diff -c -r ../xv-3.10/xvcolor.c ./xvcolor.c +*** ../xv-3.10/xvcolor.c Thu Dec 22 14:12:17 1994 +--- ./xvcolor.c Fri Jan 06 14:29:23 1995 +*************** +*** 616,622 **** + *foo = "No r/w cells available. Using r/o color."; + + tmp = GetISTR(ISTR_WARNING); +! if (strlen(tmp)>0) sprintf(tstr, "%s %s", tmp, foo); + else sprintf(tstr, "%s", foo); + SetISTR(ISTR_WARNING,tstr); + +--- 616,622 ---- + *foo = "No r/w cells available. Using r/o color."; + + tmp = GetISTR(ISTR_WARNING); +! if (strlen(tmp) > (size_t) 0) sprintf(tstr, "%s %s", tmp, foo); + else sprintf(tstr, "%s", foo); + SetISTR(ISTR_WARNING,tstr); + +*************** +*** 790,799 **** + } + + +! void xvFreeColors(dp, cm,pixels, npixels, planes) + Display *dp; + Colormap cm; +! unsigned long pixels[]; + int npixels; + unsigned long planes; + { +--- 790,799 ---- + } + + +! void xvFreeColors(dp, cm, pixels, npixels, planes) + Display *dp; + Colormap cm; +! unsigned long *pixels; + int npixels; + unsigned long planes; + { + +diff -c -r ../xv-3.10/xvcut.c ./xvcut.c +*** ../xv-3.10/xvcut.c Thu Dec 22 14:12:21 1994 +--- ./xvcut.c Fri Jan 13 14:55:48 1995 +*************** +*** 760,766 **** + len |= ((int) data[2])<<16; + len |= ((int) data[3])<<24; + +! XFree(data); + + /* read the rest of the data (len bytes) */ + i = XGetWindowProperty(theDisp, rootW, clipAtom, 1L, +--- 760,766 ---- + len |= ((int) data[2])<<16; + len |= ((int) data[3])<<24; + +! XFree((void *) data); + + /* read the rest of the data (len bytes) */ + i = XGetWindowProperty(theDisp, rootW, clipAtom, 1L, +*************** +*** 774,780 **** + + data1 = (byte *) malloc((size_t) len); + if (!data1) { +! XFree(data); + ErrPopUp("Insufficient memory to retrieve clipboard!", "\nShucks!"); + return (byte *) NULL; + } +--- 774,780 ---- + + data1 = (byte *) malloc((size_t) len); + if (!data1) { +! XFree((void *) data); + ErrPopUp("Insufficient memory to retrieve clipboard!", "\nShucks!"); + return (byte *) NULL; + } +*************** +*** 785,791 **** + data1[3] = (len>>24) & 0xff; + xvbcopy((char *) data, (char *) data1+4, (size_t) len-4); + +! XFree(data); + return data1; + } + } +--- 785,791 ---- + data1[3] = (len>>24) & 0xff; + xvbcopy((char *) data, (char *) data1+4, (size_t) len-4); + +! XFree((void *) data); + return data1; + } + } + +diff -c -r ../xv-3.10/xvdial.c ./xvdial.c +*** ../xv-3.10/xvdial.c Thu Dec 22 14:12:17 1994 +--- ./xvdial.c Tue Jan 03 16:20:31 1995 +*************** +*** 358,364 **** + + if (dp->units) strcat(foo,dp->units); + foo1[0] = '\0'; +! if (strlen(foo)0; i--) strcat(foo1," "); + } + strcat(foo1, foo); +--- 358,364 ---- + + if (dp->units) strcat(foo,dp->units); + foo1[0] = '\0'; +! if (strlen(foo) < (size_t) i) { + for (i = i - strlen(foo); i>0; i--) strcat(foo1," "); + } + strcat(foo1, foo); + +diff -c -r ../xv-3.10/xvdir.c ./xvdir.c +*** ../xv-3.10/xvdir.c Thu Dec 22 14:12:16 1994 +--- ./xvdir.c Tue Jan 03 16:21:39 1995 +*************** +*** 650,656 **** + changedDir = strcmp(path, oldpath); + strcpy(oldpath, path); + +! if (strlen(path)>1 && path[strlen(path)-1] != '/') + strcat(path,"/"); /* tack on a trailing '/' to make path consistent */ + + /* path will be something like: "/u3/bradley/src/weiner/whatever/" */ +--- 650,656 ---- + changedDir = strcmp(path, oldpath); + strcpy(oldpath, path); + +! if ((strlen(path) > (size_t) 1) && path[strlen(path)-1] != '/') + strcat(path,"/"); /* tack on a trailing '/' to make path consistent */ + + /* path will be something like: "/u3/bradley/src/weiner/whatever/" */ +*************** +*** 851,857 **** + xvbcopy(&filename[curPos], &filename[curPos-1], (size_t) (len-curPos+1)); + curPos--; + +! if (strlen(filename)>0) scrollToFileName(); + } + + else if (c=='\025') { /* ^U: clear entire line */ +--- 851,857 ---- + xvbcopy(&filename[curPos], &filename[curPos-1], (size_t) (len-curPos+1)); + curPos--; + +! if (strlen(filename) > (size_t) 0) scrollToFileName(); + } + + else if (c=='\025') { /* ^U: clear entire line */ +*************** +*** 1023,1029 **** + XDrawLine(theDisp, dnamW, theGC, 2,0,2,LINEHIGH+5); + } + +! if (enPos0) { /* hit 'Ok', had a string entered */ + /* check for page in range */ + j = atoi(buf); + if (j>=1 && j<=numPages) { +--- 1407,1414 ---- + okay = 0; + do { + i = GetStrPopUp(txt, labels, 2, buf, 64, "0123456789", 1); +! if (!i && strlen(buf) > (size_t) 0) { +! /* hit 'Ok', had a string entered */ + /* check for page in range */ + j = atoi(buf); + if (j>=1 && j<=numPages) { +*************** +*** 2030,2035 **** +--- 2031,2037 ---- + xwc.height = xwa->height; + + ++ #ifdef BAD_IDEA + /* if there is a virtual window manager running, then we should translate + the coordinates that are in terms of 'real' screen into coordinates + that are in terms of the 'virtual' root window +*************** +*** 2043,2049 **** + xwc.x,xwc.y,x1,y1); + xwc.x = x1; xwc.y = y1; + } +! + + + if (DEBUG) { +--- 2045,2051 ---- + xwc.x,xwc.y,x1,y1); + xwc.x = x1; xwc.y = y1; + } +! #endif + + + if (DEBUG) { + +diff -c -r ../xv-3.10/xvfits.c ./xvfits.c +*** ../xv-3.10/xvfits.c Thu Dec 22 14:12:21 1994 +--- ./xvfits.c Wed Dec 28 02:43:29 1994 +*************** +*** 69,75 **** + char basename[64]; + + if (fits_block == NULL) { +! fits_block = malloc((size_t) BLOCKSIZE); + if (!fits_block) FatalError("Insufficient memory for FITS block buffer"); + } + +--- 69,75 ---- + char basename[64]; + + if (fits_block == NULL) { +! fits_block = (char *) malloc((size_t) BLOCKSIZE); + if (!fits_block) FatalError("Insufficient memory for FITS block buffer"); + } + +*************** +*** 170,176 **** + byte rgb[256]; + + if (!fits_block) { +! fits_block = malloc((size_t) BLOCKSIZE); + if (!fits_block) FatalError("Insufficient memory for FITS block buffer"); + } + +--- 170,176 ---- + byte rgb[256]; + + if (!fits_block) { +! fits_block = (char *) malloc((size_t) BLOCKSIZE); + if (!fits_block) FatalError("Insufficient memory for FITS block buffer"); + } + +*************** +*** 498,504 **** + j++; /* make j length of comment */ + if (j > 0) { /* skip blank comment cards */ + if (fs->comment == NULL) { +! fs->comment = malloc((size_t) commsize); + if (fs->comment == NULL) + FatalError("Insufficient memory for comment buffer"); + } +--- 498,504 ---- + j++; /* make j length of comment */ + if (j > 0) { /* skip blank comment cards */ + if (fs->comment == NULL) { +! fs->comment = (char *) malloc((size_t) commsize); + if (fs->comment == NULL) + FatalError("Insufficient memory for comment buffer"); + } + +diff -c -r ../xv-3.10/xvgam.c ./xvgam.c +*** ../xv-3.10/xvgam.c Thu Dec 22 14:12:15 1994 +--- ./xvgam.c Fri Jan 13 14:51:14 1995 +*************** +*** 1838,1844 **** + gMap[i] = gcmap[i]; + bMap[i] = bcmap[i]; + if (!ncols) +! cols[i] = (rMap[i] + gMap[i] + bMap[i] >= 128*3) ? white : black; + } + } + } +--- 1838,1845 ---- + gMap[i] = gcmap[i]; + bMap[i] = bcmap[i]; + if (!ncols) +! cols[i] = (((int)rMap[i]) + ((int)gMap[i]) + ((int)bMap[i]) >= 128*3) +! ? white : black; + } + } + } +*************** +*** 1903,1909 **** + bMap[col] = bGraf.func[bv]; + + if (!ncols) +! cols[col] = (rMap[col] + gMap[col] + bMap[col] >= 128*3) ? white : black; + + if (DEBUG>1) fprintf(stderr," -> %d,%d,%d\n",rMap[col],gMap[col],bMap[col]); + } +--- 1904,1912 ---- + bMap[col] = bGraf.func[bv]; + + if (!ncols) +! cols[col] = +! (((int)rMap[col]) + ((int)gMap[col]) + ((int)bMap[col]) >= 128*3) +! ? white : black; + + if (DEBUG>1) fprintf(stderr," -> %d,%d,%d\n",rMap[col],gMap[col],bMap[col]); + } + +diff -c -r ../xv-3.10/xvgif.c ./xvgif.c +*** ../xv-3.10/xvgif.c Thu Dec 22 14:12:15 1994 +--- ./xvgif.c Tue Jan 10 14:54:41 1995 +*************** +*** 254,260 **** + + + if (cmtlen>0) { /* build into one un-blocked comment */ +! cmt = (byte *) malloc((size_t) cmtlen); + if (!cmt) gifWarning("couldn't malloc space for comments\n"); + else { + sp = cmt; +--- 254,260 ---- + + + if (cmtlen>0) { /* build into one un-blocked comment */ +! cmt = (byte *) malloc((size_t) (cmtlen + 1)); + if (!cmt) gifWarning("couldn't malloc space for comments\n"); + else { + sp = cmt; +*************** +*** 262,270 **** + sbsize = (*ptr1++); + for (j=0; jcomment) { /* have to strcat onto old comments */ +! cmt1 = (byte *) malloc(strlen(pinfo->comment) + cmtlen); + if (!cmt1) { + gifWarning("couldn't malloc space for comments\n"); + free(cmt); +--- 262,271 ---- + sbsize = (*ptr1++); + for (j=0; jcomment) { /* have to strcat onto old comments */ +! cmt1 = (byte *) malloc(strlen(pinfo->comment) + cmtlen + 2); + if (!cmt1) { + gifWarning("couldn't malloc space for comments\n"); + free(cmt); +*************** +*** 271,276 **** +--- 272,278 ---- + } + else { + strcpy((char *) cmt1, (char *) pinfo->comment); ++ strcat((char *) cmt1, (char *) "\n"); + strcat((char *) cmt1, (char *) cmt); + free(pinfo->comment); + free(cmt); + +diff -c -r ../xv-3.10/xvgifwr.c ./xvgifwr.c +*** ../xv-3.10/xvgifwr.c Thu Dec 22 14:12:16 1994 +--- ./xvgifwr.c Tue Jan 03 16:22:21 1995 +*************** +*** 141,147 **** + fprintf(stderr,"WrGIF: pic=%lx, w,h=%dx%d, numcols=%d, Bits%d,Cmap=%d\n", + (u_long) pic8, w,h,numcols,BitsPerPixel,ColorMapSize); + +! if (comment && strlen(comment)>0) + fwrite("GIF89a", (size_t) 1, (size_t) 6, fp); /* the GIF magic number */ + else + fwrite("GIF87a", (size_t) 1, (size_t) 6, fp); /* the GIF magic number */ +--- 141,147 ---- + fprintf(stderr,"WrGIF: pic=%lx, w,h=%dx%d, numcols=%d, Bits%d,Cmap=%d\n", + (u_long) pic8, w,h,numcols,BitsPerPixel,ColorMapSize); + +! if (comment && strlen(comment) > (size_t) 0) + fwrite("GIF89a", (size_t) 1, (size_t) 6, fp); /* the GIF magic number */ + else + fwrite("GIF87a", (size_t) 1, (size_t) 6, fp); /* the GIF magic number */ +*************** +*** 175,181 **** + } + } + +! if (comment && strlen(comment)>0) { /* write comment blocks */ + char *sp; + int i, blen; + +--- 175,181 ---- + } + } + +! if (comment && strlen(comment) > (size_t) 0) { /* write comment blocks */ + char *sp; + int i, blen; + +diff -c -r ../xv-3.10/xviff.c ./xviff.c +*** ../xv-3.10/xviff.c Thu Dec 22 14:12:20 1994 +--- ./xviff.c Fri Jan 13 14:54:54 1995 +*************** +*** 463,469 **** + + if (codeByte < 0x80) { + codeByte++; +! if ((slen > codeByte) && (dlen >= codeByte)) { + slen -= codeByte + 1; + dlen -= codeByte; + while (codeByte > 0) { +--- 463,469 ---- + + if (codeByte < 0x80) { + codeByte++; +! if ((slen > (long) codeByte) && (dlen >= (long) codeByte)) { + slen -= codeByte + 1; + dlen -= codeByte; + while (codeByte > 0) { +*************** +*** 476,482 **** + + else if (codeByte > 0x80) { + codeByte = 0x81 - (codeByte & 0x7f); +! if ((slen > 0) && (dlen >= codeByte)) { + dataByte = *sptr++; + slen -= 2; + dlen -= codeByte; +--- 476,482 ---- + + else if (codeByte > 0x80) { + codeByte = 0x81 - (codeByte & 0x7f); +! if ((slen > (long) 0) && (dlen >= (long) codeByte)) { + dataByte = *sptr++; + slen -= 2; + dlen -= codeByte; + +diff -c -r ../xv-3.10/xvimage.c ./xvimage.c +*** ../xv-3.10/xvimage.c Thu Dec 22 14:12:17 1994 +--- ./xvimage.c Fri Jan 13 19:11:36 1995 +*************** +*** 675,680 **** +--- 675,682 ---- + # define inabsrange(a,n) ( (a) < n && (a) > -n ) + + ++ if (cHIGH<3 || cWIDE<3) return 0; ++ + ctop = cbot = cleft = cright = 0; + + if (picType != PIC24) FatalError("doAutoCrop24 called when pic!=PIC24"); +*************** +*** 780,787 **** + + /* do the actual cropping */ + if (cleft || ctop || cbot || cright) { + DoCrop(cXOFF+cleft, cYOFF+ctop, +! cWIDE-(cleft+cright), cHIGH-(ctop+cbot)); + return 1; + } + +--- 782,792 ---- + + /* do the actual cropping */ + if (cleft || ctop || cbot || cright) { ++ if (cWIDE - (cleft + cright) < 1 || ++ cHIGH - (ctop + cbot ) < 1) return 0; /* sanity check */ ++ + DoCrop(cXOFF+cleft, cYOFF+ctop, +! cWIDE-(cleft+cright), cHIGH-(ctop+cbot)); + return 1; + } + +*************** +*** 859,865 **** + eWIDE = (int) (cWIDE * expw); + eHIGH = (int) (cHIGH * exph); + +! if (eWIDE > maxWIDE || h > maxHIGH) { /* make 'normal' size */ + if (cWIDE>maxWIDE || cHIGH>maxHIGH) { + double r,wr,hr; + wr = ((double) cWIDE) / maxWIDE; +--- 864,870 ---- + eWIDE = (int) (cWIDE * expw); + eHIGH = (int) (cHIGH * exph); + +! if (eWIDE>maxWIDE || eHIGH>maxHIGH) { /* make 'normal' size */ + if (cWIDE>maxWIDE || cHIGH>maxHIGH) { + double r,wr,hr; + wr = ((double) cWIDE) / maxWIDE; +*************** +*** 873,878 **** +--- 878,886 ---- + } + + ++ if (eWIDE<1) eWIDE = 1; ++ if (eHIGH<1) eHIGH = 1; ++ + SetCursors(-1); + } + +*************** +*** 2823,2831 **** + } + + if (omode == PAD_ORGB) { +! rval = (r * fg) / 100 + (p24[0] * bg) / 100; +! gval = (g * fg) / 100 + (p24[1] * bg) / 100; +! bval = (b * fg) / 100 + (p24[2] * bg) / 100; + } + else { /* one of the HSV modes */ + double fh,fs,fv,fw, bh,bs,bv,bw, h,s,v; +--- 2831,2839 ---- + } + + if (omode == PAD_ORGB) { +! rval = (r * fg) / 100 + ((int) p24[0] * bg) / 100; +! gval = (g * fg) / 100 + ((int) p24[1] * bg) / 100; +! bval = (b * fg) / 100 + ((int) p24[2] * bg) / 100; + } + else { /* one of the HSV modes */ + double fh,fs,fv,fw, bh,bs,bv,bw, h,s,v; + +diff -c -r ../xv-3.10/xvjpeg.c ./xvjpeg.c +*** ../xv-3.10/xvjpeg.c Thu Dec 22 14:12:16 1994 +--- ./xvjpeg.c Thu Jan 05 03:17:13 1995 +*************** +*** 612,620 **** + } + + +- jpeg_finish_decompress(&cinfo); + +- + /* return 'PICINFO' structure to XV */ + + pinfo->pic = pic; +--- 612,618 ---- +*************** +*** 646,655 **** + + pinfo->comment = comment; + + jpeg_destroy_decompress(&cinfo); + fclose(fp); + +! comment = NULL; + return 1; + } + +--- 644,654 ---- + + pinfo->comment = comment; + ++ jpeg_finish_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); + fclose(fp); + +! comment = (char *) NULL; + return 1; + } + +*************** +*** 806,812 **** + If none, add 2. If one, add 1. If two or more, add none. */ + + sp = comment + strlen(comment); +! for (i=0; i<3 && i 0) { /* add to pinfo->comment */ + if (!pinfo->comment) { + pinfo->comment = (char *) malloc(strlen(cmt)+1); + if (!pinfo->comment) FatalError("malloc failure in xvpbm.c getint"); +--- 353,359 ---- + *sp++ = '\n'; + *sp = '\0'; + +! if (strlen(cmt) > (size_t) 0) { /* add to pinfo->comment */ + if (!pinfo->comment) { + pinfo->comment = (char *) malloc(strlen(cmt)+1); + if (!pinfo->comment) FatalError("malloc failure in xvpbm.c getint"); +*************** +*** 438,444 **** + *sp++ = '\n'; + *sp = '\0'; + +! if (strlen(cmt) > 0) { /* add to pinfo->comment */ + if (!pinfo->comment) { + pinfo->comment = (char *) malloc(strlen(cmt)+1); + if (!pinfo->comment) FatalError("malloc failure in xvpbm.c getint"); +--- 438,444 ---- + *sp++ = '\n'; + *sp = '\0'; + +! if (strlen(cmt) > (size_t) 0) { /* add to pinfo->comment */ + if (!pinfo->comment) { + pinfo->comment = (char *) malloc(strlen(cmt)+1); + if (!pinfo->comment) FatalError("malloc failure in xvpbm.c getint"); + +diff -c -r ../xv-3.10/xvpcx.c ./xvpcx.c +*** ../xv-3.10/xvpcx.c Thu Dec 22 14:12:20 1994 +--- ./xvpcx.c Tue Jan 10 18:06:37 1995 +*************** +*** 36,44 **** + #define PCX_MAPSTART 0x0c /* Start of appended colormap */ + + +! static int pcxLoadImage PARM((char *, FILE *, byte *, byte *, int, int)); +! static void pcxLoadRaster PARM((FILE *, byte *, int, byte *, int, int)); +! static int pcxError PARM((char *, char *)); + + + +--- 36,45 ---- + #define PCX_MAPSTART 0x0c /* Start of appended colormap */ + + +! static int pcxLoadImage8 PARM((char *, FILE *, PICINFO *, byte *)); +! static int pcxLoadImage24 PARM((char *, FILE *, PICINFO *, byte *)); +! static void pcxLoadRaster PARM((FILE *, byte *, int, byte *, int, int)); +! static int pcxError PARM((char *, char *)); + + + +*************** +*** 52,58 **** + long filesize; + char *bname, *errstr; + byte hdr[128], *image; +! int i, colors, gray; + + pinfo->type = PIC8; + pinfo->pic = (byte *) NULL; +--- 53,59 ---- + long filesize; + char *bname, *errstr; + byte hdr[128], *image; +! int i, colors, gray, fullcolor; + + pinfo->type = PIC8; + pinfo->pic = (byte *) NULL; +*************** +*** 92,97 **** +--- 93,99 ---- + pinfo->w++; pinfo->h++; + + colors = 1 << (hdr[PCX_BPP] * hdr[PCX_PLANES]); ++ fullcolor = (hdr[PCX_BPP] == 8 && hdr[PCX_PLANES] == 3); + + if (DEBUG) { + fprintf(stderr,"PCX: %dx%d image, version=%d, encoding=%d\n", +*************** +*** 102,108 **** + colors); + } + +! if (colors>256) { + fclose(fp); + return pcxError(bname,"No more than 256 colors allowed in PCX file."); + } +--- 104,110 ---- + colors); + } + +! if (colors>256 && !fullcolor) { + fclose(fp); + return pcxError(bname,"No more than 256 colors allowed in PCX file."); + } +*************** +*** 112,134 **** + return pcxError(bname,"Unsupported PCX encoding format."); + } + +! /* note: overallocation to make life easier... */ +! image = (byte *) malloc((size_t) (pinfo->h + 1) * pinfo->w + 16); +! if (!image) FatalError("Can't alloc 'image' in LoadPCX()"); +! +! xvbzero((char *) image, (size_t) ((pinfo->h+1) * pinfo->w + 16)); +! +! if (!pcxLoadImage(bname, fp, image, hdr, pinfo->w, pinfo->h)) { +! free(image); +! fclose(fp); +! return 0; + } + + + if (ferror(fp) | feof(fp)) /* just a warning */ + pcxError(bname, "PCX file appears to be truncated."); + +! if (colors>16) { /* handle trailing colormap */ + while (1) { + i=getc(fp); + if (i==PCX_MAPSTART || i==EOF) break; +--- 114,138 ---- + return pcxError(bname,"Unsupported PCX encoding format."); + } + +! /* load the image, the image function fills in pinfo->pic */ +! if (!fullcolor) { +! if (!pcxLoadImage8(bname, fp, pinfo, hdr)) { +! fclose(fp); +! return 0; +! } + } ++ else { ++ if (!pcxLoadImage24(bname, fp, pinfo, hdr)) { ++ fclose(fp); ++ return 0; ++ } ++ } + + + if (ferror(fp) | feof(fp)) /* just a warning */ + pcxError(bname, "PCX file appears to be truncated."); + +! if (colors>16 && !fullcolor) { /* handle trailing colormap */ + while (1) { + i=getc(fp); + if (i==PCX_MAPSTART || i==EOF) break; +*************** +*** 171,185 **** + /* finally, convert into XV internal format */ + + +! pinfo->pic = image; +! pinfo->type = PIC8; + pinfo->frmType = -1; /* no default format to save in */ + + /* check for grayscaleitude */ +! for (i=0; ir[i] != pinfo->g[i]) || (pinfo->r[i] != pinfo->b[i])) break; + } +- gray = (i==colors) ? 1 : 0; + + + if (colors > 2 || (colors==2 && !gray)) { /* grayscale or PseudoColor */ +--- 175,191 ---- + /* finally, convert into XV internal format */ + + +! pinfo->type = fullcolor ? PIC24 : PIC8; + pinfo->frmType = -1; /* no default format to save in */ + + /* check for grayscaleitude */ +! gray = 0; +! if (!fullcolor) { +! for (i=0; ir[i] != pinfo->g[i]) || (pinfo->r[i] != pinfo->b[i])) break; +! } +! gray = (i==colors) ? 1 : 0; + } + + + if (colors > 2 || (colors==2 && !gray)) { /* grayscale or PseudoColor */ +*************** +*** 205,227 **** + + + /*****************************/ +! static int pcxLoadImage(fname, fp, image, hdr, w, h) +! char *fname; +! FILE *fp; +! byte *image, *hdr; +! int w, h; + { + switch (hdr[PCX_BPP]) { +! case 1: pcxLoadRaster(fp, image, 1, hdr, w, h); break; +! case 8: pcxLoadRaster(fp, image, 8, hdr, w, h); break; + default: + pcxError(fname, "Unsupported # of bits per plane."); + return (0); + } + + return 1; + } + + + + +--- 211,317 ---- + + + /*****************************/ +! static int pcxLoadImage8(fname, fp, pinfo, hdr) +! char *fname; +! FILE *fp; +! PICINFO *pinfo; +! byte *hdr; + { ++ /* load an image with at most 8 bits per pixel */ ++ ++ byte *image; ++ ++ /* note: overallocation to make life easier... */ ++ image = (byte *) malloc((size_t) (pinfo->h + 1) * pinfo->w + 16); ++ if (!image) FatalError("Can't alloc 'image' in pcxLoadImage8()"); ++ ++ xvbzero((char *) image, (size_t) ((pinfo->h+1) * pinfo->w + 16)); ++ + switch (hdr[PCX_BPP]) { +! case 1: pcxLoadRaster(fp, image, 1, hdr, pinfo->w, pinfo->h); break; +! case 8: pcxLoadRaster(fp, image, 8, hdr, pinfo->w, pinfo->h); break; + default: + pcxError(fname, "Unsupported # of bits per plane."); ++ free(image); + return (0); + } + ++ pinfo->pic = image; + return 1; + } + ++ ++ /*****************************/ ++ static int pcxLoadImage24(fname, fp, pinfo, hdr) ++ char *fname; ++ FILE *fp; ++ PICINFO *pinfo; ++ byte *hdr; ++ { ++ byte *pix, *pic24, scale[256]; ++ int c, i, j, w, h, maxv, cnt, planes, bperlin, nbytes; ++ ++ w = pinfo->w; h = pinfo->h; ++ ++ planes = (int) hdr[PCX_PLANES]; ++ bperlin = hdr[PCX_BPRL] + ((int) hdr[PCX_BPRH]<<8); ++ ++ /* allocate 24-bit image */ ++ pic24 = (byte *) malloc((size_t) w*h*planes); ++ if (!pic24) FatalError("couldn't malloc 'pic24'"); ++ ++ xvbzero((char *) pic24, (size_t) w*h*planes); ++ ++ maxv = 0; ++ pix = pinfo->pic = pic24; ++ i = 0; /* planes, in this while loop */ ++ j = 0; /* bytes per line, in this while loop */ ++ nbytes = bperlin*h*planes; ++ ++ while (nbytes > 0 && (c = getc(fp)) != EOF) { ++ if ((c & 0xC0) == 0xC0) { /* have a rep. count */ ++ cnt = c & 0x3F; ++ c = getc(fp); ++ if (c == EOF) { getc(fp); break; } ++ } ++ else cnt = 1; ++ ++ if (c > maxv) maxv = c; ++ ++ while (cnt-- > 0) { ++ if (j < w) { ++ *pix = c; ++ pix += planes; ++ } ++ j++; ++ nbytes--; ++ if (j == bperlin) { ++ j = 0; ++ if (++i < planes) { ++ pix -= (w*planes)-1; /* next plane on this line */ ++ } ++ else { ++ pix -= (planes-1); /* start of next line, first plane */ ++ i = 0; ++ } ++ } ++ } ++ } ++ ++ ++ /* scale all RGB to range 0-255, if they aren't */ ++ ++ if (maxv<255) { ++ for (i=0; i<=maxv; i++) scale[i] = (i * 255) / maxv; ++ ++ for (i=0, pix=pic24; i> 5) & 0x07) * 255) / 7; +! pp[1] = (((*ip >> 2) & 0x07) * 255) / 7; +! pp[2] = (((*ip >> 0) & 0x03) * 255) / 3; + } + + free(icon8); +--- 124,132 ---- + + /* convert icon from 332 to 24-bit image */ + for (i=0, ip=icon8, pp=pic24; i> 5) & 0x07)) * 255) / 7; +! pp[1] = ( ((int) ((*ip >> 2) & 0x07)) * 255) / 7; +! pp[2] = ( ((int) ((*ip >> 0) & 0x03)) * 255) / 3; + } + + free(icon8); + +diff -c -r ../xv-3.10/xvpopup.c ./xvpopup.c +*** ../xv-3.10/xvpopup.c Thu Dec 22 14:12:16 1994 +--- ./xvpopup.c Thu Jan 19 13:09:31 1995 +*************** +*** 150,161 **** + if (wy + h > dispHIGH) wy = dispHIGH - h; + } + +! /* wx -= (p_offx + ch_offx); +! wy -= (p_offy + ch_offy); */ + +- wx -= (ch_offx); +- wy -= (ch_offy); +- + if (!XGetNormalHints(theDisp, win, &hints)) hints.flags = 0; + hints.width = hints.min_width = hints.max_width = w; + hints.height = hints.min_height = hints.max_height = h; +--- 150,165 ---- + if (wy + h > dispHIGH) wy = dispHIGH - h; + } + +! +! if (winCtrPosKludge) { +! wx -= (p_offx + ch_offx); +! wy -= (p_offy + ch_offy); +! } +! else { +! wx -= (ch_offx); +! wy -= (ch_offy); +! } + + if (!XGetNormalHints(theDisp, win, &hints)) hints.flags = 0; + hints.width = hints.min_width = hints.max_width = w; + hints.height = hints.min_height = hints.max_height = h; +*************** +*** 249,255 **** + + if (poptyp == ISGRAB) { + BTSetActive(&bts[0], (int) strlen(gsBuf)); +! BTSetActive(&bts[1], (strlen(gsBuf)>0 && atoi(gsBuf)>0)); + } + else if (poptyp == ISPAD) { + BTSetActive(&bts[0], (int) strlen(gsBuf)); +--- 253,259 ---- + + if (poptyp == ISGRAB) { + BTSetActive(&bts[0], (int) strlen(gsBuf)); +! BTSetActive(&bts[1], (strlen(gsBuf)>(size_t)0 && atoi(gsBuf)>(size_t)0)); + } + else if (poptyp == ISPAD) { + BTSetActive(&bts[0], (int) strlen(gsBuf)); +*************** +*** 350,356 **** + gsx = 10 + icon_width + 20; + gsy = 10+(PUHIGH-30-BUTTH-gsh)/2; + +! if (strlen(txt) > 60) + gsy = PUHIGH - 10 - BUTTH - 10 - gsh - 20; + + gsw = PUWIDE - gsx - 10; +--- 354,360 ---- + gsx = 10 + icon_width + 20; + gsy = 10+(PUHIGH-30-BUTTH-gsh)/2; + +! if (strlen(txt) > (size_t) 60) + gsy = PUHIGH - 10 - BUTTH - 10 - gsh - 20; + + gsw = PUWIDE - gsx - 10; +*************** +*** 558,564 **** + strncpy(nams[*lenp], vals[*lenp], (size_t) 31); + } + +! if (strlen(nams[*lenp]) > 20) { /* fix long names */ + char *sp = nams[*lenp] + 18; + *sp++ = '.'; *sp++ = '.'; *sp++ = '.'; *sp++ = '\0'; + } +--- 562,568 ---- + strncpy(nams[*lenp], vals[*lenp], (size_t) 31); + } + +! if (strlen(nams[*lenp]) > (size_t) 20) { /* fix long names */ + char *sp = nams[*lenp] + 18; + *sp++ = '.'; *sp++ = '.'; *sp++ = '.'; *sp++ = '\0'; + } +*************** +*** 1154,1166 **** + /* if we have a string of any sort, turn on the default '\n' button + (if there is one) */ + for (i=0; i0); + } + else if (popUp == ISGRAB) { + /* need a string of length 1 to enable Grab (bts[0]), and a string + with an atoi() of at least '1' to enable AutoGrab (bts[1]) */ +! BTSetActive(&bts[0], strlen(gsBuf)>0); +! BTSetActive(&bts[1], (strlen(gsBuf)>0 && atoi(gsBuf)>0)); + } + + return(0); +--- 1158,1170 ---- + /* if we have a string of any sort, turn on the default '\n' button + (if there is one) */ + for (i=0; i (size_t) 0)); + } + else if (popUp == ISGRAB) { + /* need a string of length 1 to enable Grab (bts[0]), and a string + with an atoi() of at least '1' to enable AutoGrab (bts[1]) */ +! BTSetActive(&bts[0], (strlen(gsBuf) > (size_t) 0)); +! BTSetActive(&bts[1], (strlen(gsBuf)>(size_t)0 && atoi(gsBuf)>(size_t)0)); + } + + return(0); +*************** +*** 1219,1225 **** + XDrawLine(theDisp, popW, theGC, gsx+3, gsy+1, gsx+3, gsy + gsh-1); + } + +! if (gsEnPostype = PIC8; +! if (ncmap == 1) { + pinfo->colType = F_GREYSCALE; + sprintf(pinfo->fullInfo, "Greyscale RLE. (%ld bytes)", filesize); + for (i=0; i<256; i++) +--- 257,263 ---- + + if (ncolors == 1) { /* grayscale or PseudoColor */ + pinfo->type = PIC8; +! if (ncmap == 0 || ncmap == 1) { /* grey, or grey with gamma curve */ + pinfo->colType = F_GREYSCALE; + sprintf(pinfo->fullInfo, "Greyscale RLE. (%ld bytes)", filesize); + for (i=0; i<256; i++) + +diff -c -r ../xv-3.10/xvtext.c ./xvtext.c +*** ../xv-3.10/xvtext.c Thu Dec 22 14:12:20 1994 +--- ./xvtext.c Fri Jan 13 18:46:28 1995 +*************** +*** 1220,1226 **** + LC("the xv distribution. Do *not* send mail unless absolutely necessary"); + LC("(ie, you don't have ftp capability)."); + LC(""); +! LC("Note: The documentation ('xvdocs.ps') may be installed in '/usr/local'."); + LC(""); + LC("If you're viewing this information via the 'About XV' command, and"); + LC("you'd like to print it out, a copy of this info can be found in the "); +--- 1220,1226 ---- + LC("the xv distribution. Do *not* send mail unless absolutely necessary"); + LC("(ie, you don't have ftp capability)."); + LC(""); +! LC("Note: The docs (xvdocs.ps) may be installed in '/usr/local/lib'."); + LC(""); + LC("If you're viewing this information via the 'About XV' command, and"); + LC("you'd like to print it out, a copy of this info can be found in the "); + +diff -c -r ../xv-3.10/xvtiff.c ./xvtiff.c +*** ../xv-3.10/xvtiff.c Thu Dec 22 14:12:20 1994 +--- ./xvtiff.c Fri Jan 13 14:53:34 1995 +*************** +*** 120,126 **** + desc = (char *) NULL; + + TIFFGetField(tif, TIFFTAG_IMAGEDESCRIPTION, &desc); +! if (desc && strlen(desc)>0) { + /* kludge: tiff library seems to return bizarre comments */ + if (strlen(desc)==4 && strcmp(desc, "\367\377\353\370")==0) {} + else { +--- 120,126 ---- + desc = (char *) NULL; + + TIFFGetField(tif, TIFFTAG_IMAGEDESCRIPTION, &desc); +! if (desc && strlen(desc) > (size_t) 0) { + /* kludge: tiff library seems to return bizarre comments */ + if (strlen(desc)==4 && strcmp(desc, "\367\377\353\370")==0) {} + else { +*************** +*** 1381,1388 **** + } + } + +! /* #define Code2V(c, RB, RW, CR) ((((c)-(int)RB)*(float)CR)/(float)(RW-RB)) */ +! #define Code2V(c, RB, RW, CR) ((((c)-RB)*(float)CR)/(float)(RW-RB)) + + #define CLAMP(f,min,max) \ + (int)((f)+.5 < (min) ? (min) : (f)+.5 > (max) ? (max) : (f)+.5) +--- 1381,1387 ---- + } + } + +! #define Code2V(c, RB, RW, CR) ((((c)-(int)RB)*(float)CR)/(float)(RW-RB)) + + #define CLAMP(f,min,max) \ + (int)((f)+.5 < (min) ? (min) : (f)+.5 > (max) ? (max) : (f)+.5) + +diff -c -r ../xv-3.10/xvtiffwr.c ./xvtiffwr.c +*** ../xv-3.10/xvtiffwr.c Thu Dec 22 14:12:20 1994 +--- ./xvtiffwr.c Tue Jan 03 16:28:13 1995 +*************** +*** 70,76 **** + TIFFSetField(tif, TIFFTAG_IMAGELENGTH, h); + TIFFSetField(tif, TIFFTAG_COMPRESSION, comp); + +! if (comment && strlen(comment)>0) { + TIFFSetField(tif, TIFFTAG_IMAGEDESCRIPTION, comment); + } + +--- 70,76 ---- + TIFFSetField(tif, TIFFTAG_IMAGELENGTH, h); + TIFFSetField(tif, TIFFTAG_COMPRESSION, comp); + +! if (comment && strlen(comment) > (size_t) 0) { + TIFFSetField(tif, TIFFTAG_IMAGEDESCRIPTION, comment); + } + +diff -c -r ../xv-3.10/bits/font5x9.h ./bits/font5x9.h +*** ../xv-3.10/bits/font5x9.h Thu Dec 22 14:12:58 1994 +--- ./bits/font5x9.h Tue Jan 03 15:18:06 1995 +*************** +*** 21,27 **** + {0x0e, 0x11, 0x19, 0x15, 0x13, 0x11, 0x0e, 0x00, 0x00}, /* 0 */ + {0x04, 0x06, 0x05, 0x04, 0x04, 0x04, 0x1f, 0x00, 0x00}, /* 1 */ + {0x0e, 0x11, 0x10, 0x0c, 0x02, 0x01, 0x1f, 0x00, 0x00}, /* 2 */ +! {0x0e, 0x11, 0x10, 0x0c, 0x02, 0x01, 0x1f, 0x00, 0x00}, /* 3 */ + {0x09, 0x09, 0x09, 0x1f, 0x08, 0x08, 0x08, 0x00, 0x00}, /* 4 */ + {0x1f, 0x01, 0x01, 0x0f, 0x10, 0x10, 0x0f, 0x00, 0x00}, /* 5 */ + {0x0e, 0x01, 0x01, 0x0f, 0x11, 0x11, 0x0e, 0x00, 0x00}, /* 6 */ +--- 21,27 ---- + {0x0e, 0x11, 0x19, 0x15, 0x13, 0x11, 0x0e, 0x00, 0x00}, /* 0 */ + {0x04, 0x06, 0x05, 0x04, 0x04, 0x04, 0x1f, 0x00, 0x00}, /* 1 */ + {0x0e, 0x11, 0x10, 0x0c, 0x02, 0x01, 0x1f, 0x00, 0x00}, /* 2 */ +! {0x0f, 0x10, 0x10, 0x0e, 0x10, 0x10, 0x0f, 0x00, 0x00}, /* 3 */ + {0x09, 0x09, 0x09, 0x1f, 0x08, 0x08, 0x08, 0x00, 0x00}, /* 4 */ + {0x1f, 0x01, 0x01, 0x0f, 0x10, 0x10, 0x0f, 0x00, 0x00}, /* 5 */ + {0x0e, 0x01, 0x01, 0x0f, 0x11, 0x11, 0x0e, 0x00, 0x00}, /* 6 */ +*************** +*** 51,57 **** + {0x11, 0x13, 0x13, 0x15, 0x19, 0x19, 0x11, 0x00, 0x00}, /* N */ + {0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00, 0x00}, /* O */ + {0x0f, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x01, 0x00, 0x00}, /* P */ +! {0x0f, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x01, 0x00, 0x00}, /* Q */ + {0x0f, 0x11, 0x11, 0x0f, 0x05, 0x09, 0x11, 0x00, 0x00}, /* R */ + {0x0e, 0x11, 0x01, 0x0e, 0x10, 0x11, 0x0e, 0x00, 0x00}, /* S */ + {0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00}, /* T */ +--- 51,57 ---- + {0x11, 0x13, 0x13, 0x15, 0x19, 0x19, 0x11, 0x00, 0x00}, /* N */ + {0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00, 0x00}, /* O */ + {0x0f, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x01, 0x00, 0x00}, /* P */ +! {0x0e, 0x11, 0x11, 0x11, 0x11, 0x15, 0x0e, 0x18, 0x00}, /* Q */ + {0x0f, 0x11, 0x11, 0x0f, 0x05, 0x09, 0x11, 0x00, 0x00}, /* R */ + {0x0e, 0x11, 0x01, 0x0e, 0x10, 0x11, 0x0e, 0x00, 0x00}, /* S */ + {0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00}, /* T */ + +diff -c -r ../xv-3.10/bits/xv_rev ./bits/xv_rev +*** ../xv-3.10/bits/xv_rev Thu Dec 22 14:12:54 1994 +--- ./bits/xv_rev Fri Jan 13 17:37:10 1995 +*************** +*** 11,29 **** + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +! 0x00, 0x00, 0xa0, 0x03, 0x00, 0x04, 0x10, 0x00, 0x00, 0x20, 0x3c, 0x10, +! 0xe1, 0x41, 0x3c, 0x10, 0x01, 0x00, 0x20, 0x60, 0x04, 0x00, 0x04, 0x10, +! 0x00, 0x00, 0x30, 0x42, 0x90, 0x11, 0x42, 0x42, 0x18, 0x01, 0x00, 0xa0, +! 0x21, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x41, 0x48, 0x09, 0x20, + 0x41, 0x14, 0x01, 0xc7, 0x7b, 0xe0, 0x80, 0x09, 0xc5, 0x13, 0x27, 0x13, +! 0x20, 0x20, 0x08, 0x89, 0x23, 0x71, 0x14, 0x81, 0x28, 0x23, 0x60, 0x60, +! 0x8a, 0x24, 0x93, 0xe8, 0x12, 0x20, 0x10, 0x04, 0x65, 0x14, 0x4e, 0x12, +! 0x01, 0xae, 0x24, 0xa0, 0xe0, 0x51, 0xa4, 0x54, 0x28, 0x02, 0x20, 0x0c, +! 0x04, 0x15, 0x14, 0x40, 0x79, 0x81, 0x49, 0x24, 0x21, 0x11, 0x50, 0x44, +! 0x54, 0x28, 0x02, 0x20, 0x02, 0x04, 0x09, 0x92, 0xa0, 0x16, 0x5d, 0x0c, +! 0xa2, 0x20, 0x16, 0x23, 0x04, 0x52, 0x24, 0x12, 0x20, 0x41, 0x02, 0x09, +! 0x89, 0x11, 0x10, 0x83, 0xeb, 0x61, 0x20, 0xe8, 0x20, 0xe4, 0x91, 0x23, +! 0x12, 0x20, 0x7f, 0x02, 0xf1, 0x08, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +--- 11,29 ---- + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, +! 0x00, 0x00, 0xa0, 0x03, 0x00, 0x04, 0x10, 0x00, 0x00, 0x84, 0x07, 0xf1, +! 0xe0, 0x41, 0x3c, 0x10, 0x01, 0x00, 0x20, 0x60, 0x04, 0x00, 0x04, 0x10, +! 0x00, 0x00, 0x46, 0x08, 0x09, 0x11, 0x42, 0x42, 0x18, 0x01, 0x00, 0xa0, +! 0x21, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x88, 0x04, 0x09, 0x22, + 0x41, 0x14, 0x01, 0xc7, 0x7b, 0xe0, 0x80, 0x09, 0xc5, 0x13, 0x27, 0x13, +! 0x04, 0x84, 0x80, 0x88, 0x23, 0x71, 0x14, 0x81, 0x28, 0x23, 0x60, 0x60, +! 0x8a, 0x24, 0x93, 0xe8, 0x12, 0x04, 0x42, 0x40, 0x70, 0x12, 0x4e, 0x12, +! 0x01, 0xae, 0x24, 0xa0, 0xe0, 0x51, 0xa4, 0x54, 0x28, 0x02, 0x84, 0x41, +! 0x30, 0x00, 0x12, 0x40, 0x79, 0x81, 0x49, 0x24, 0x21, 0x11, 0x50, 0x44, +! 0x54, 0x28, 0x02, 0x44, 0x40, 0x08, 0x04, 0x91, 0xa0, 0x16, 0x5d, 0x0c, +! 0xa2, 0x20, 0x16, 0x23, 0x04, 0x52, 0x24, 0x12, 0x24, 0x28, 0x04, 0x8d, +! 0x88, 0x11, 0x10, 0x83, 0xeb, 0x61, 0x20, 0xe8, 0x20, 0xe4, 0x91, 0x23, +! 0x12, 0xe4, 0x2f, 0xfc, 0x71, 0x08, 0x0e, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +diff -c -r ../xv-3.10/bits/xv_ver ./bits/xv_ver +*** ../xv-3.10/bits/xv_ver Thu Dec 22 14:12:58 1994 +--- ./bits/xv_ver Fri Jan 13 17:34:48 1995 +*************** +*** 6,20 **** + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, +! 0x00, 0x08, 0x00, 0x80, 0x1f, 0x04, 0x07, 0x00, 0x82, 0x00, 0x00, 0x08, +! 0x00, 0x80, 0x08, 0x86, 0x08, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, +! 0x04, 0x45, 0x10, 0x00, 0x24, 0x98, 0xe4, 0x89, 0x23, 0x03, 0x1c, 0x24, +! 0x10, 0x00, 0x24, 0xa6, 0x97, 0x49, 0xe4, 0x02, 0x23, 0x24, 0x10, 0x00, +! 0x14, 0x9e, 0x50, 0x2a, 0x24, 0x02, 0x20, 0x24, 0x10, 0x00, 0x18, 0x81, +! 0x20, 0x2a, 0x24, 0x42, 0x20, 0x24, 0x08, 0x00, 0x08, 0xb1, 0x00, 0x29, +! 0x22, 0x42, 0x98, 0x24, 0x06, 0x00, 0x08, 0x8e, 0xf0, 0xc8, 0x21, 0x82, +! 0x87, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +--- 6,20 ---- + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, +! 0x00, 0x02, 0x00, 0xe0, 0x07, 0xc1, 0x01, 0x00, 0x41, 0x00, 0x00, 0x02, +! 0x00, 0x20, 0x82, 0x21, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, +! 0x41, 0x11, 0x04, 0x00, 0x12, 0x26, 0x79, 0xe2, 0xc8, 0x00, 0x07, 0x09, +! 0xc4, 0x01, 0x92, 0xe9, 0x65, 0x12, 0xb9, 0xc0, 0x08, 0x09, 0x24, 0x02, +! 0x8a, 0x27, 0x94, 0x0a, 0x89, 0x00, 0x08, 0x09, 0x84, 0x03, 0x4c, 0x20, +! 0x88, 0x0a, 0x89, 0x10, 0x08, 0x09, 0x62, 0x02, 0x44, 0x2c, 0x40, 0x8a, +! 0x88, 0x10, 0x26, 0x89, 0x11, 0x03, 0x84, 0x23, 0x3c, 0x72, 0x88, 0xe0, +! 0x21, 0x71, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + +diff -c -r ../xv-3.10/tiff/tif_fax3.c ./tiff/tif_fax3.c +*** ../xv-3.10/tiff/tif_fax3.c Thu Dec 22 14:12:41 1994 +--- ./tiff/tif_fax3.c Fri Dec 23 17:39:28 1994 +*************** +*** 370,376 **** + * Decode a code and return the associated run length. + */ + static int32 +! decode_run(TIFF* tif, const u_short fsm[][256]) + { + Fax3DecodeState *sp = (Fax3DecodeState *)tif->tif_data; + int state = sp->b.bit; +--- 370,376 ---- + * Decode a code and return the associated run length. + */ + static int32 +! decode_run(TIFF* tif, /*const*/ u_short fsm[][256]) + { + Fax3DecodeState *sp = (Fax3DecodeState *)tif->tif_data; + int state = sp->b.bit; + +diff -c -r ../xv-3.10/tiff/tiffcomp.h ./tiff/tiffcomp.h +*** ../xv-3.10/tiff/tiffcomp.h Thu Dec 22 14:12:42 1994 +--- ./tiff/tiffcomp.h Thu Jan 19 12:47:56 1995 +*************** +*** 67,72 **** +--- 67,76 ---- + #endif + #endif + ++ #ifdef isc ++ #define BSDTYPES ++ #endif ++ + /* + * Workarounds for BSD lseek definitions. + */ + +diff -c -r ../xv-3.10/vms/Makefile.mms ./vms/Makefile.mms +*** ../xv-3.10/vms/Makefile.mms Thu Dec 22 14:12:37 1994 +--- ./vms/Makefile.mms Sun Dec 25 03:21:22 1994 +*************** +*** 11,30 **** + # 15-APR-1993 for v3.00 (DEC C changes) + # 25-MAY-1993 merged ALPHA.MMS and MAKEFILE.MMS + # 27-APR-1994 for v3.01 +! # 6-DEC-1994 for v3.10 + # + # Modeled after the original Unix Makefile for xv + # Most of the Unix comments have been left intact to help debug any + # problems. + +- #******** +- # +- # REQUIRED USER EDIT POINT!!!!!!!!!!! +- # You must put in the correct place where the root of this XV +- # directory is located +- # +- #******** +- XVDIR = [XV-3_10] + + # BE SURE TO SET THIS TO YOUR SITE'S DESTINATION DIRECTORY...!!! + BINDIR = Sys$Disk:[] +--- 11,22 ---- + # 15-APR-1993 for v3.00 (DEC C changes) + # 25-MAY-1993 merged ALPHA.MMS and MAKEFILE.MMS + # 27-APR-1994 for v3.01 +! # 23-DEC-1994 for v3.10 + # + # Modeled after the original Unix Makefile for xv + # Most of the Unix comments have been left intact to help debug any + # problems. + + + # BE SURE TO SET THIS TO YOUR SITE'S DESTINATION DIRECTORY...!!! + BINDIR = Sys$Disk:[] +*************** +*** 57,64 **** + # VMS MMS USERS!!! + # + # if you don't use the JPEG package as supplied with XV, you +! # will need fill in the complete directory specifications for +! # BOTH JPEGDIR and XVDIR!! + # + JPEG = ,HAVE_JPEG + JPEGDIR = [.JPEG] +--- 49,55 ---- + # VMS MMS USERS!!! + # + # if you don't use the JPEG package as supplied with XV, you +! # will need fill in the complete directory specifications for JPEGDIR. + # + JPEG = ,HAVE_JPEG + JPEGDIR = [.JPEG] +*************** +*** 72,79 **** + # Also, comment out the LIBTIFF dependancy at the end of this Makefile + # + # if you don't use the TIFF package as supplied with XV, you +! # will need to fill in the complete directory specifications for +! # BOTH TIFFDIR and XVDIR!! + # + TIFF = ,HAVE_TIFF + TIFFDIR = [.TIFF] +--- 63,69 ---- + # Also, comment out the LIBTIFF dependancy at the end of this Makefile + # + # if you don't use the TIFF package as supplied with XV, you +! # will need to fill in the complete directory specifications for TIFFDIR. + # + TIFF = ,HAVE_TIFF + TIFFDIR = [.TIFF] +*************** +*** 135,145 **** + @- Define /NoLog Sys DECC$Library_Include + .else + .ifdef DECC +! × @- Define /NoLog Sys DECC$Library_Include + .else + @- Define /NoLog Sys Sys$Library + .endif + @- Define /NoLog X11 DECW$Include + .endif + + all : $(BITS) $(OPTS) lib xv bggen decompress xcmap xvpictoppm help +--- 125,136 ---- + @- Define /NoLog Sys DECC$Library_Include + .else + .ifdef DECC +! @- Define /NoLog Sys DECC$Library_Include + .else + @- Define /NoLog Sys Sys$Library + .endif + @- Define /NoLog X11 DECW$Include ++ @- XVDIR = F$Environment ("Default") + .endif + + all : $(BITS) $(OPTS) lib xv bggen decompress xcmap xvpictoppm help +*************** +*** 181,204 **** + $(JPEGLIB) : + Set Default $(JPEGDIR) + .ifdef ALPHA +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.$(MMS) /Macro = "ALPHA = 1" LIBJPEG.OLB + .else +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.$(MMS) LIBJPEG.OLB + .endif +! Set Default $(XVDIR) + + $(TIFFLIB) : + Set Default $(TIFFDIR) + .ifdef ALPHA +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.$(MMS) /Macro = "ALPHA = 1" LIBTIFF.OLB + .else + .ifdef DECC +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.$(MMS) /Macro = "ALPHA = 1" LIBTIFF.OLB + .else +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.$(MMS) LIBTIFF.OLB + .endif + .endif +! Set Default $(XVDIR) + + $(XVLIB) : $(OBJS) + If "''F$Search ("$(XVLIB)")'" .eqs. "" Then Library /Create $(XVLIB) +--- 172,195 ---- + $(JPEGLIB) : + Set Default $(JPEGDIR) + .ifdef ALPHA +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBJPEG.OLB + .else +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS LIBJPEG.OLB + .endif +! Set Default 'XVDIR' + + $(TIFFLIB) : + Set Default $(TIFFDIR) + .ifdef ALPHA +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBTIFF.OLB + .else + .ifdef DECC +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBTIFF.OLB + .else +! $(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS LIBTIFF.OLB + .endif + .endif +! Set Default 'XVDIR' + + $(XVLIB) : $(OBJS) + If "''F$Search ("$(XVLIB)")'" .eqs. "" Then Library /Create $(XVLIB) +*************** +*** 273,280 **** + - Delete /NoConfirm /NoLog *.obj;*,*.exe;*,*.log;*,*.olb;*,*.hlb;* + - Purge /NoConfirm /NoLog + Set Default [.JPEG] +! $(MMS) /Description = MAKEFILE.$(MMS) clean + - Delete /NoConfirm /NoLog *.olb;* + Set Default [-.TIFF] +! $(MMS) /Description = MAKEFILE.$(MMS) clean + Set Default [-] +--- 264,271 ---- + - Delete /NoConfirm /NoLog *.obj;*,*.exe;*,*.log;*,*.olb;*,*.hlb;* + - Purge /NoConfirm /NoLog + Set Default [.JPEG] +! $(MMS) /Description = MAKEFILE.MMS clean + - Delete /NoConfirm /NoLog *.olb;* + Set Default [-.TIFF] +! $(MMS) /Description = MAKEFILE.MMS clean + Set Default [-] + +diff -c -r ../xv-3.10/vms/README.vms ./vms/README.vms +*** ../xv-3.10/vms/README.vms Thu Dec 22 14:12:37 1994 +--- ./vms/README.vms Sun Dec 25 03:21:22 1994 +*************** +*** 1,9 **** +! 6-Dec-1994 + +! First, read the release notes for the Unix version of XV as well +! as these. You can ignore the Unix specific comments, but there are +! references to the config.h file for local configurations and general +! use of the program that are relevant to VMS users as well. + + Release notes for building XV (v3.10) on a VMS platform. This + includes the newer ALPHA/VMS machines. As in the previous release, +--- 1,10 ---- +! 23-DEC-1994 + +! First, read the various INSTALL and README files for the Unix +! version of XV as well as these. You can ignore the Unix specific +! comments, but there are references to the config.h file for local +! configurations and general use of the program that are relevant to +! VMS users as well. + + Release notes for building XV (v3.10) on a VMS platform. This + includes the newer ALPHA/VMS machines. As in the previous release, +*************** +*** 24,42 **** + + SETUP.COM + A simple command procedure to setup the final compiled XV +! package of programs. It can be executed by itself or used with +! many of the commonly available SETUP packages (i.e., the +! FERMILAB version). If it is kept in the same directory as the +! binaries, it will be able to get the necessary symbols setup +! anywhere the directory structure is located WITHOUT the need to +! edit the command procedure. Move them all around together and +! you will be OK. + + MAKEFILE.MMS (in the top level directory) +! This is a MMS description file for the VMS MMS utility. YOU +! SHOULD EDIT THE FILE FIRST TO MAKE SURE THE CUSTOMIZING FEATURES +! ARE APPROPRIATE FOR YOUR SYSTEM. For users without MMS you will +! need to use MAKE_XV.COM instead. + + Installation Instructions: + +--- 25,48 ---- + + SETUP.COM + A simple command procedure to setup the final compiled XV +! package of programs. It helps the aux programs of XV be found +! by DCL foreign symbols. If you don't want to use the names I +! have chosen for them, you should be able to alter the CONFIG.H +! file to point to the names you want to use instead. This has +! not been tested by me, so let me know if you try this. It +! should work! :) It can be executed by itself or used with many +! of the commonly available SETUP packages (i.e., the FERMILAB +! version). If it is kept in the same directory as the binaries, +! it will be able to get the necessary symbols setup anywhere the +! directory structure is located WITHOUT the need to edit the +! command procedure. Move them all around together and you will +! be OK. + + MAKEFILE.MMS (in the top level directory) +! This is a description file for the VMS MMS (or the PD MMK) +! utility. YOU SHOULD BROWSE THE FILE FIRST TO MAKE SURE THE +! CUSTOMIZING FEATURES ARE APPROPRIATE FOR YOUR SYSTEM. For users +! without MMS (MMK) you will need to use MAKE_XV.COM instead. + + Installation Instructions: + +*************** +*** 100,114 **** + to resolve first!!! Note specifically the references to JPEG + and TIFF. This is also true for the MAKEFILE.MMS in the JPEG + sub-directory and the MAKEFILE.MMS file in the TIFF +! sub-directory. Also check the top-level directory name at the +! top of the MMS file. You have to put in your local choice of +! name. (I was lazy in not trying to autodetect it, sorry.) +! + +! EXCEPT for the destination of the binaries, root of the +! directory tree, and X11 Window interface, I *think* it should +! work for everyone without any modifications. (famous last +! words...) + + When you are satisfied that everything is correct for your + site, just type +--- 106,116 ---- + to resolve first!!! Note specifically the references to JPEG + and TIFF. This is also true for the MAKEFILE.MMS in the JPEG + sub-directory and the MAKEFILE.MMS file in the TIFF +! sub-directory. + +! EXCEPT for the destination of the binaries, and X11 Window +! interface, I *think* it should work for everyone without any +! modifications. (famous last words...) + + When you are satisfied that everything is correct for your + site, just type + +diff -c -r ../xv-3.10/vms/tiff.patches ./vms/tiff.patches +*** ../xv-3.10/vms/tiff.patches Thu Dec 22 14:12:38 1994 +--- ./vms/tiff.patches Thu Jan 19 12:47:14 1995 +*************** +*** 5,10 **** +--- 5,11 ---- + In tiff/Makefile.hpux, you need to add -D_HPUX_SOURCE to CFLAGS. + Otherwise libtiff won't build under gcc or strict-ANSI cc. + ++ In tiff/tiffcomp.h, add '#ifdef isc ... #define BSDTYPES ... #endif' + + Index: tiff/Makefile.mms + *** /dev/null Wed Dec 14 08:22:27 1994 + + +*** /dev/null Mon Jan 23 20:08:17 1995 +--- BUGS Thu Jan 19 13:10:07 1995 +*************** +*** 0 **** +--- 1,21 ---- ++ DOCS: ++ File docs/xvdoc.ps has an error in the banner for page 2. The page title is ++ "Section 2: The Image Window" when it should be "Section 1: Overview". ++ ++ Add mention of '-pkludge' and 'popupKludge' ++ ++ Hall of Fame: Lester Ingber should be 'ingber@alumni.caltech.edu' ++ ++ ++ From: James Ralston Crawford (qralston+@pitt.edu) ++ When deleting files in 'xv controls' window, it should also delete ++ thumbnail file, if any ++ ++ ++ From: Mitchell Blank Jr ++ (try an use schnauzer in /usr/feh/foo, where feh is rwx--x--x. Need to ++ set a var each time chdir is successfully called (make xv_chdir). ++ Then in xv_getwd, if getcwd() fails, try stat()'ing the var. ++ If it exists, assume we're there, and return the var. Otherwise, fall back ++ to other directories... ++ + +*** /dev/null Mon Jan 23 20:08:17 1995 +--- docs/vdcomp.man Fri Jan 13 15:18:47 1995 +*************** +*** 0 **** +--- 1,82 ---- ++ .\" ++ .\" $Id: vdcomp.man,v 1.2 1995/01/12 23:35:28 qralston Exp $ ++ .\" ++ .\" $Log: vdcomp.man,v $ ++ .\" Revision 1.2 1995/01/12 23:35:28 qralston ++ .\" Created from the information in the comments in vdcomp.c. ++ .\" James Ralston Crawford ++ .\" ++ .TH vdcomp 1 ++ .SH Name ++ \fIvdcomp\fP - decompress a compressed PDS image ++ .SH Synopsis ++ \fIvdcomp\fP [ infile ] [ outfile ] [ format-code ] ++ .SH Description ++ The \fIvdcomp\fP program reads a variable length compressed PDS image ++ and outputs a fixed length uncompressed image file in PDS format with ++ labels, image histogram, engineering table, line header table and an ++ image with PDS, FITS, VICAR or no labels. ++ .PP ++ If used on a non-byte-swapped machine the image histogram is ++ un-swapped. ++ .SH Options ++ \fIVdcomp\fP will prompt for any options that are not supplied on the ++ command-line. ++ .PP ++ \fIinfile\fP ++ .br ++ .RS ++ The name of compressed image file. ++ .RE ++ .PP ++ \fIoutfile\fP ++ .br ++ .RS ++ The name of uncompressed image file. ++ .RE ++ .PP ++ \fIformat-code\fP ++ .br ++ .RS ++ Select from the following list: ++ .br ++ .RS ++ \fI1\fP - SFDU/PDS format [default] ++ .br ++ \fI2\fP - FITS format ++ .br ++ \fI3\fP - VICAR format ++ .br ++ \fI4\fP - unlabelled binary array ++ .RE ++ .RE ++ .SH Limitations ++ This program has been tested on a VAX 780 (VMS 4.6), SUN Workstation ++ (UNIX 4.2, release 3.4), an IBM PC (MICROSOFT 5.1 compiler) and ++ Macintosh IIx using Lightspeed C version 3.0. When converting to ++ other systems, check for portability conflicts. ++ .SH Credits ++ This program uses Kris Becker's subroutine DECOMP.C (which is included ++ in this program in a shortened version). ++ .SH History ++ bradley@cis.upenn.edu 06-23-94 ansi-fied program ++ .PP ++ datri@convex.com, 11-15-91 added recognition of - as stdout for output ++ filename; disabled various messages; directed messages to stderr; ++ added exit status ++ .PP ++ DEC89 Modified program to handle both Voyager and Viking images. ++ .PP ++ OCT89 Converted Voyager decompression program to handle Viking ++ compressed images. Changed obuf to 'unsigned' to simplify computation ++ of checksum. ++ .PP ++ AUG89 Added code to get command line arguments for filenames and ++ output format; routines to free memory used by the Huffman tree); ++ fixed the SFDU label output length; and modified the I/O routines so ++ that the open for Host type 2 uses binary I/O. ++ .PP ++ JUN89 Fixed READVAR, to get length on 16-bit unswapped hosts. ++ .PP ++ JUL88 C driver to decompress standard Voyager Compressed images by ++ Mike Martin 1989/12/02. + +*** /dev/null Mon Jan 23 20:23:48 1995 +--- docs/xv.ann Tue Jan 03 13:58:15 1995 +*************** +*** 0 **** +--- 1,38 ---- ++ They said it couldn't be done. They said it never *would* be done. ++ They smiled knowingly to themselves as each predicted release date ++ inevitably passed by, unmarked by the emergence of a new version... ++ ++ Well, who asked them! And who do they think they are, anyhow!?! ++ ++ Announcing the Exciting New Release of XV, Version 3.10! ++ ++ Finally, all the stuff you've been waiting for: image cut & paste, pixel ++ editing, text annotation (of a sort), nifty new algorithms, new image formats ++ (Targa, XPM, FITS, XWD, IFF), improved schnauzing capabilities, a spiffy ++ new 'pad' command, and whatnot. Plenty of whatnot. ++ ++ Of course, we're particularly proud of our Exclusive 3-D Fish Technology. ++ ++ At the moment, you can get this decidedly 'fine' piece of software via ++ anonymous ftp on the following sites: ++ ++ Hostname Directory ++ -------- --------- ++ ftp.cis.upenn.edu: pub/xv ++ ftp.upenn.edu: data/bradley ++ ftp.duke.edu: pub/archive/xv ++ gatekeeper.dec.com: pub/graphics/xv ++ ++ The file is called 'xv-3.10.tar.gz' (or 'xv-3.10.tar.Z' if you don't have ++ the 'gunzip' program). ++ ++ BTW, if any of you fine folks can get these files put up on one of the major ++ ftp sites (wustl, gatekeeper, etc.) please do so, and let me know! ++ ++ Enjoy! ++ ++ John Bradley ++ ++ ------------------------- ++ Note: These tar files (xv-3.10.tar.Z and xv-3.10.tar.gz) have been replaced ++ as of 12/22/94, as the initial ones wouldn't build correctly on VMS. diff --git a/source/xap/xv/xv.SlackBuild b/source/xap/xv/xv.SlackBuild new file mode 100755 index 000000000..3ef40a7ba --- /dev/null +++ b/source/xap/xv/xv.SlackBuild @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +VERSION=3.10a +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-5} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-xv + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf xv-3.10 +tar xvf $CWD/xv-3.10.tar.gz || exit 1 +cd xv-3.10 || exit 1 +chown -R root:root . +zcat $CWD/xv-3.10a.patch.gz | patch -p0 --verbose --backup --suffix=.orig || exit +bzcat $CWD/xv-3.10a-jumbo-fix-patch-20050410.txt.bz2 | patch -p1 --verbose --backup --suffix=.orig || exit +bzcat $CWD/xv-3.10a-jumbo-enh-patch-20050501.txt.bz2 | patch -p1 --verbose --backup --suffix=.orig || exit +zcat $CWD/xv.prefix.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit +if [ "$ARCH" = "x86_64" ]; then + zcat $CWD/xv.prefix_x86_64.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit +fi +make -f Makefile.std +strip --strip-unneeded bggen vdcomp xcmap xv xvpictoppm +mkdir -p $PKG/usr/bin +cat bggen > $PKG/usr/bin/bggen +cat vdcomp > $PKG/usr/bin/vdcomp +cat xcmap > $PKG/usr/bin/xcmap +cat xv > $PKG/usr/bin/xv +cat xvpictoppm > $PKG/usr/bin/xvpictoppm +chmod 755 $PKG/usr/bin/* +mkdir -p $PKG/usr/man/man1 +for page in docs/xv.man docs/bggen.man docs/xcmap.man docs/xvp2p.man ; do + cat $page | gzip -9c > $PKG/usr/man/man1/`basename $page .man`.1.gz +done +mkdir -p $PKG/usr/doc/xv-$VERSION +cp -a \ + BUGS IDEAS INSTALL README README.jumbo README.pcd \ + $PKG/usr/doc/xv-$VERSION +( cd docs + cp -a \ + penn.policy xv.blurb xv.ann xvdocs.ps \ + $PKG/usr/doc/xv-$VERSION + bzip2 -9 $PKG/usr/doc/xv-$VERSION/xvdocs.ps ) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/xv-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xv/xv.prefix.diff b/source/xap/xv/xv.prefix.diff new file mode 100644 index 000000000..0e6108333 --- /dev/null +++ b/source/xap/xv/xv.prefix.diff @@ -0,0 +1,11 @@ +--- ./Makefile.std.orig 2005-07-12 15:15:19.000000000 -0700 ++++ ./Makefile.std 2005-07-12 15:16:08.000000000 -0700 +@@ -41,7 +41,7 @@ + + + ### Installation locations +-PREFIX = /usr/local ++PREFIX = /usr/X11R6 + BINDIR = $(PREFIX)/bin + MANDIR = $(PREFIX)/man/man1 + MANSUF = 1 diff --git a/source/xap/xv/xv.prefix_x86_64.diff b/source/xap/xv/xv.prefix_x86_64.diff new file mode 100644 index 000000000..fd6803d50 --- /dev/null +++ b/source/xap/xv/xv.prefix_x86_64.diff @@ -0,0 +1,20 @@ +--- xv-3.10/Makefile.std.orig 2008-11-06 22:16:03.000000000 +0000 ++++ xv-3.10/Makefile.std 2008-11-06 22:24:11.000000000 +0000 +@@ -46,7 +46,7 @@ + MANDIR = $(PREFIX)/man/man1 + MANSUF = 1 + DOCDIR = $(PREFIX)/doc/xv-3.10a +-LIBDIR = $(PREFIX)/lib/xv ++LIBDIR = $(PREFIX)/lib64/xv + SYSCONFDIR = $(PREFIX)/etc + DESTDIR = + +@@ -200,7 +200,7 @@ + + + ### for LINUX, uncomment the following line +-#MCHN = -DLINUX -L/usr/X11R6/lib ++MCHN = -DLINUX -L/usr/X11R6/lib64 + + + # For SCO 1.1 (UNIX 3.2v2) machines, uncomment the following: diff --git a/source/xap/xxgdb/slack-desc b/source/xap/xxgdb/slack-desc new file mode 100644 index 000000000..4905df862 --- /dev/null +++ b/source/xap/xxgdb/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xxgdb: xxgdb (graphical program debugger interface) +xxgdb: +xxgdb: Xxgdb is a graphical user interface to the gdb debugger under the X +xxgdb: Window System. It provides visual feedback and mouse input for the +xxgdb: user to control program execution through breakpoints, to examine and +xxgdb: traverse the function call stack, and to display values of variables +xxgdb: and data structures. +xxgdb: +xxgdb: +xxgdb: +xxgdb: diff --git a/source/xap/xxgdb/xxgdb.SlackBuild b/source/xap/xxgdb/xxgdb.SlackBuild new file mode 100755 index 000000000..97c130f6d --- /dev/null +++ b/source/xap/xxgdb/xxgdb.SlackBuild @@ -0,0 +1,101 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +PKGNAM=xxgdb +VERSION=${VERSION:-1.12} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-2} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-${PKGNAM} +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +cd $TMP +rm -rf ${PKGNAM}-${VERSION} +tar xvf $CWD/${PKGNAM}-$VERSION.tar.gz || exit 1 +cd ${PKGNAM}-$VERSION || exit 1 + +zcat $CWD/xxgdb.fix_glibc_and_gcc.diff.gz | patch -p1 --verbose --backup --suffix=.orig + +# Make sure ownerships and permissions are sane: +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +xmkmf || exit 1 +make CCOPTIONS="$SLKCFLAGS" || exit 1 +make install DESTDIR="$PKG" +make install.man DESTDIR="$PKG" + +# Strip binaries: +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.* + ) + done + ) +fi + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +# Add a documentation directory: +mkdir -p ${PKG}/usr/doc/${PKGNAM}-$VERSION +cp -a \ + README README.NEW_INTERFACE XDBX_README XDbx.NEW_INTERFACE XXGDB_README \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff b/source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff new file mode 100644 index 000000000..b61d57ced --- /dev/null +++ b/source/xap/xxgdb/xxgdb.fix_glibc_and_gcc.diff @@ -0,0 +1,45 @@ +diff -Naur xxgdb-1.12/Imakefile xxgdb-1.12.fixed/Imakefile +--- xxgdb-1.12/Imakefile 1995-06-19 19:20:55.000000000 -0300 ++++ xxgdb-1.12.fixed/Imakefile 2007-02-21 10:40:57.000000000 -0200 +@@ -59,7 +59,7 @@ + #endif + + #ifdef LinuxArchitecture +-DEFINES = -DSYSV $(DEFGDB) ++DEFINES = $(DEFGDB) + #endif + + #if defined(NeXTArchitecture) || defined(NextArchitecture) +diff -Naur xxgdb-1.12/filemenu.c xxgdb-1.12.fixed/filemenu.c +--- xxgdb-1.12/filemenu.c 1994-08-29 16:38:28.000000000 -0300 ++++ xxgdb-1.12.fixed/filemenu.c 2007-02-21 10:47:47.000000000 -0200 +@@ -207,12 +207,12 @@ + return False; + if (statbuf.st_mode & S_IFDIR) { /* is directory */ + strcat(entry->d_name, "/"); +- ++(entry->d_namlen); ++ ++(entry->d_reclen); + return True; + } + if (statbuf.st_mode & S_IEXEC) { /* is executable */ + strcat(entry->d_name, "*"); +- ++(entry->d_namlen); ++ ++(entry->d_reclen); + return True; + } + return True; +diff -Naur xxgdb-1.12/gdb_handler.c xxgdb-1.12.fixed/gdb_handler.c +--- xxgdb-1.12/gdb_handler.c 1995-04-19 13:46:22.000000000 -0300 ++++ xxgdb-1.12.fixed/gdb_handler.c 2007-02-21 10:51:30.000000000 -0200 +@@ -85,10 +85,7 @@ + * query_gdb(): Send command to gdb. + */ + +-#ifdef SYSV +-# include +-#endif +- ++#include + + /* + * Display an outlined arrow to locate the calling routine in a stack diff --git a/source/y/bsd-games/bsd-games-2.13.lsm b/source/y/bsd-games/bsd-games-2.13.lsm new file mode 100644 index 000000000..e7ba527fb --- /dev/null +++ b/source/y/bsd-games/bsd-games-2.13.lsm @@ -0,0 +1,21 @@ +Begin4 +Title: bsd-games +Version: 2.13 +Entered-date: 2001-08-30 +Description: Port of most of the games from NetBSD-current. Games + included: adventure arithmetic atc backgammon banner battlestar + bcd boggle caesar canfield countmail cribbage dm factor fish fortune + gomoku hangman hunt mille monop morse number phantasia pig pom ppt + primes quiz rain random robots sail snake tetris trek wargames worm + worms wtf wump. +Keywords: games, NetBSD +Maintained-by: jsm28@cam.ac.uk (Joseph S. Myers) +Primary-site: ibiblio.org /pub/Linux/games + bsd-games-2.13.tar.gz +Alternate-site: tsx-11.mit.edu /pub/linux/sources/usr.games +Original-site: ftp.netbsd.org /pub/NetBSD/NetBSD-current/tar_files/src + games.tar.gz +Platforms: Requires ncurses (curses/termcap may also work but are no + longer tested/supported) +Copying-policy: BSD +End diff --git a/source/y/bsd-games/bsd-games-login-fortune.csh b/source/y/bsd-games/bsd-games-login-fortune.csh new file mode 100644 index 000000000..70842516e --- /dev/null +++ b/source/y/bsd-games/bsd-games-login-fortune.csh @@ -0,0 +1,6 @@ +#!/bin/csh +# Print a fortune cookie for login shells: + +if ( { tty --silent } ) then >& /dev/null + echo "" ; fortune fortunes fortunes2 linuxcookie ; echo "" +endif diff --git a/source/y/bsd-games/bsd-games-login-fortune.sh b/source/y/bsd-games/bsd-games-login-fortune.sh new file mode 100644 index 000000000..598929fe4 --- /dev/null +++ b/source/y/bsd-games/bsd-games-login-fortune.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# Print a fortune cookie for interactive shells: +if [[ $- = *i* ]]; then + echo + fortune fortunes fortunes2 linuxcookie + echo +fi diff --git a/source/y/bsd-games/bsd-games.SlackBuild b/source/y/bsd-games/bsd-games.SlackBuild new file mode 100755 index 000000000..976f5570b --- /dev/null +++ b/source/y/bsd-games/bsd-games.SlackBuild @@ -0,0 +1,151 @@ +#!/bin/sh + +# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + + +VERSION=${VERSION:-2.13} +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-9} + +NUMJOBS=${NUMJOBS:-" -j7 "} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-bsdgames +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf bsd-games-$VERSION +tar xvf $CWD/bsd-games-$VERSION.tar.bz2 || exit 1 +cd bsd-games-$VERSION || exit 1 +zcat $CWD/bsd-games.config.params.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 +./configure +zcat $CWD/bsd-games.ospeed.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 +zcat $CWD/bsd-games.fortunepath.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 +zcat $CWD/bsd-games.fortlen.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 +zcat $CWD/bsd-games.strfile.8.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 +zcat $CWD/bsd-games.trek-gcc4.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 +zcat $CWD/bsd-games.phantasia_install_fix.diff.gz | patch -p1 --backup --suffix=.orig || exit 1 + +## Without the old default (with, of course, a command line switch), and an updated +## man page, even though PJV wrote this, it just doesn't make the cut. I hope it's +## still of use to somebody though. It increases the accuracy of pom by two orders +## of magnitude. Enjoy! +##zcat $CWD/bsd-games.pom.diff.gz | patch -p1 --verbose || exit 1 + +# Now that Eric took my joke seriously... heh. It's a wonder any Work gets done here. +zcat $CWD/bsd-games.pom.diff.gz | patch -p1 --verbose || exit 1 + +cp fortune/datfiles/unamerican-o.real fortune/datfiles/unamerican-o.fake +cp fortune/datfiles/unamerican-o.real unamerican-o +( cd fortune/datfiles ; strfile unamerican-o unamerican-o.dat ) +make +# Does this go to $PKG? I am perplexed. +make install + +mkdir -p $PKG/usr/doc/bsd-games-$VERSION +cp -a \ + AUTHORS BUGS INSTALL NEWS PACKAGING README SECURITY THANKS \ + TODO YEAR2000 $PKG/usr/doc/bsd-games-$VERSION +cp -a fortune/README $PKG/usr/doc/bsd-games-$VERSION/README.fortune +cp -a hunt/README $PKG/usr/doc/bsd-games-$VERSION/README.hunt +cp -a hunt/README.linux $PKG/usr/doc/bsd-games-$VERSION/README.linux.hunt +cp -a phantasia/README $PKG/usr/doc/bsd-games-$VERSION/README.phantasia +cp -a trek/README.linux $PKG/usr/doc/bsd-games-$VERSION/README.linux.trek +chown root.root $PKG/usr/doc/bsd-games-$VERSION/* +chmod 644 $PKG/usr/doc/bsd-games-$VERSION/* + +cd $PKG +# Add profile scripts: +mkdir -p etc/profile.d +cat $CWD/bsd-games-login-fortune.sh > etc/profile.d/bsd-games-login-fortune.sh +cat $CWD/bsd-games-login-fortune.csh > etc/profile.d/bsd-games-login-fortune.csh +chmod 755 etc/profile.d/bsd-games-login-fortune.* + +# Add some cool Linux related quotes: +tar xvf $CWD/fortunes-linuxcookie.tar.gz || exit 1 +# I'm not in favor of censorship of any kind. If you are, you'll +# have to be the one to delete these: +rm -f $PKG/usr/share/games/fortunes/limerick +rm -f $PKG/usr/share/games/fortunes/limerick.dat +tar xvf $CWD/fortunes-o.tar.gz || exit 1 +# Run strfile on all fortune files: +( cd $PKG/usr/share/games/fortunes + for file in *.dat ; do + $PKG/usr/bin/strfile -r $(basename $file .dat) + done + # These ones are rot13: + for file in *-o.dat ; do + $PKG/usr/bin/strfile -r -x $(basename $file .dat) + done +) +# Strip binaries: +strip $PKG/usr/games/* $PKG/usr/bin/* $PKG/usr/sbin/* +# Fix perms: +mkdir -p $PKG/usr/share/dict +zcat $CWD/hangman-words.gz > $PKG/usr/share/dict/words +chmod 644 $PKG/var/lib/bsdgames/phantasia/characs + +# OK, I'll try to be nice but the first time you're still $cr3w3d unless you +# installpkg first. +( cd $PKG/var/lib/bsdgames + find . -type f -exec mv {} {}.new \; +) + +mkdir -p $PKG/install +cat << EOF > $PKG/install/doinst.sh +#!/bin/sh +config() { + NEW="\$1" + OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r \$OLD ]; then + mv \$NEW \$OLD + elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy + rm \$NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} +config var/lib/bsdgames/criblog.new +config var/lib/bsdgames/saillog.new +config var/lib/bsdgames/cfscores.new +config var/lib/bsdgames/atc_score.new +config var/lib/bsdgames/phantasia/gold.new +config var/lib/bsdgames/phantasia/mess.new +config var/lib/bsdgames/phantasia/motd.new +config var/lib/bsdgames/phantasia/void.new +config var/lib/bsdgames/phantasia/monsters.new +config var/lib/bsdgames/phantasia/lastdead.new +config var/lib/bsdgames/phantasia/characs.new +config var/lib/bsdgames/phantasia/scoreboard.new +config var/lib/bsdgames/battlestar.log.new +config var/lib/bsdgames/robots_roll.new +config var/lib/bsdgames/snakerawscores.new +config var/lib/bsdgames/snake.log.new +rm -f var/lib/bsdgames/criblog.new var/lib/bsdgames/saillog.new var/lib/bsdgames/cfscores.new var/lib/bsdgames/atc_score.new var/lib/bsdgames/phantasia/gold.new var/lib/bsdgames/phantasia/mess.new var/lib/bsdgames/phantasia/motd.new var/lib/bsdgames/phantasia/void.new var/lib/bsdgames/phantasia/monsters.new var/lib/bsdgames/phantasia/lastdead.new var/lib/bsdgames/phantasia/characs.new var/lib/bsdgames/phantasia/scoreboard.new var/lib/bsdgames/battlestar.log.new var/lib/bsdgames/robots_roll.new var/lib/bsdgames/snakerawscores.new var/lib/bsdgames/snake.log.new +EOF +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/bsd-games-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/y/bsd-games/bsd-games.config.params.diff b/source/y/bsd-games/bsd-games.config.params.diff new file mode 100644 index 000000000..b250ed04f --- /dev/null +++ b/source/y/bsd-games/bsd-games.config.params.diff @@ -0,0 +1,38 @@ +--- ./config.params.orig Sat Mar 9 20:59:34 2002 ++++ ./config.params Sat Mar 9 20:59:52 2002 +@@ -0,0 +1,35 @@ ++# Don't run configure interactively. ++bsd_games_cfg_non_interactive=y ++ ++# Install into here for building the package. ++bsd_games_cfg_install_prefix=/tmp/package-bsdgames ++ ++# Do not build or install these games: ++bsd_games_cfg_no_build_dirs="boggle dm tetris" ++ ++# Keep huntd in /usr/sbin as it was in the past. I may ++# change this later. ++bsd_games_cfg_sbindir=/usr/sbin ++ ++# Use /usr/man still. Slackware doesn't use this part of FHS yet. ++bsd_games_cfg_man8dir=/usr/man/man8 ++bsd_games_cfg_man6dir=/usr/man/man6 ++bsd_games_cfg_man5dir=/usr/man/man5 ++ ++# We don't like cluttering up the /usr/games/ dir too much, ++# use a subdir. /var too. ++bsd_games_cfg_usrlibdir=/usr/share/games ++bsd_games_cfg_sharedir=/usr/share/games ++bsd_games_cfg_varlibdir=/var/lib/bsdgames ++ ++# Do not do chown now: ++bsd_games_cfg_do_chown=n ++ ++# Use compressed .so links for manpages: ++bsd_games_cfg_use_dot_so=.so ++ ++# Compress the manpages: ++bsd_games_cfg_gzip_manpages=y ++ ++# Use /usr/bin/less by default. ++bsd_games_cfg_pager=/usr/bin/less diff --git a/source/y/bsd-games/bsd-games.fortlen.diff b/source/y/bsd-games/bsd-games.fortlen.diff new file mode 100644 index 000000000..52b406511 --- /dev/null +++ b/source/y/bsd-games/bsd-games.fortlen.diff @@ -0,0 +1,11 @@ +--- ./fortune/fortune/fortune.c.orig 2001-08-29 08:11:31.000000000 -0700 ++++ ./fortune/fortune/fortune.c 2003-02-03 14:27:45.000000000 -0800 +@@ -318,7 +318,7 @@ + char line[BUFSIZ]; + + if (!(Fortfile->tbl.str_flags & (STR_RANDOM | STR_ORDERED))) +- nchar = (Seekpts[1] - Seekpts[0] <= SLEN); ++ nchar = Seekpts[1] - Seekpts[0]; + else { + open_fp(Fortfile); + (void) fseek(Fortfile->inf, (long)Seekpts[0], SEEK_SET); diff --git a/source/y/bsd-games/bsd-games.fortunepath.diff b/source/y/bsd-games/bsd-games.fortunepath.diff new file mode 100644 index 000000000..31b96f7d1 --- /dev/null +++ b/source/y/bsd-games/bsd-games.fortunepath.diff @@ -0,0 +1,8 @@ +--- ./fortune/fortune/pathnames.h.in.orig Sat Mar 9 21:26:23 2002 ++++ ./fortune/fortune/pathnames.h.in Sat Mar 9 21:26:34 2002 +@@ -35,4 +35,4 @@ + * @(#)pathnames.h 8.1 (Berkeley) 5/31/93 + */ + +-#define FORTDIR "@sharedir@" ++#define FORTDIR "@sharedir@/fortunes" diff --git a/source/y/bsd-games/bsd-games.ospeed.diff b/source/y/bsd-games/bsd-games.ospeed.diff new file mode 100644 index 000000000..d98c79664 --- /dev/null +++ b/source/y/bsd-games/bsd-games.ospeed.diff @@ -0,0 +1,11 @@ +--- ./backgammon/backgammon/main.c.orig 2000-05-28 09:51:46.000000000 -0500 ++++ ./backgammon/backgammon/main.c 2006-09-06 21:16:55.000000000 -0500 +@@ -57,7 +57,7 @@ + extern const char *const instr[]; /* text of instructions */ + extern const char *const message[]; /* update message */ + #ifndef NCURSES_VERSION +-short ospeed; /* tty output speed */ ++speed_t ospeed; /* tty output speed */ + #endif + + const char *const helpm[] = { /* help message */ diff --git a/source/y/bsd-games/bsd-games.phantasia_install_fix.diff b/source/y/bsd-games/bsd-games.phantasia_install_fix.diff new file mode 100644 index 000000000..098e604f0 --- /dev/null +++ b/source/y/bsd-games/bsd-games.phantasia_install_fix.diff @@ -0,0 +1,17 @@ +--- bsd-games-2.13/phantasia/Makefrag 2001-08-31 00:55:25.000000000 +0300 ++++ bsd-games-2.13/phantasia/Makefrag 2006-08-14 03:19:03.771302000 +0300 +@@ -41,11 +41,11 @@ + $(INSTALL_SCORE_GAME) phantasia/phantasia $(INSTALL_PREFIX)$(GAMESDIR)/phantasia + $(HIDE_GAME) phantasia + (set -e; for f in $(phantasia_VFILES1); do \ +- cp phantasia/$$f $(PHANTASIA_DIR)/$$f; \ ++ cp phantasia/$$f $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f; \ + $(INSTALL_SCORE_FILE) $(PHANTASIA_DIR)/$$f; done) + (set -e; for f in $(phantasia_VFILES2); do \ +- if [ ! -e $(PHANTASIA_DIR)/$$f ]; then \ +- cp phantasia/$$f $(PHANTASIA_DIR)/$$f; fi; done; \ ++ if [ ! -e $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f ]; then \ ++ cp phantasia/$$f $(INSTALL_PREFIX)$(PHANTASIA_DIR)/$$f; fi; done; \ + $(INSTALL_SCORE_FILE) $(PHANTASIA_DIR)/scoreboard; \ + $(INSTALL_SCORE_FILE) -p $(PHANTASIA_DIR)/characs) + $(INSTALL_MANUAL) phantasia/phantasia.6 diff --git a/source/y/bsd-games/bsd-games.pom.diff b/source/y/bsd-games/bsd-games.pom.diff new file mode 100644 index 000000000..80bbd9ab4 --- /dev/null +++ b/source/y/bsd-games/bsd-games.pom.diff @@ -0,0 +1,152 @@ +--- ./pom/pom.6.orig 2001-08-29 10:11:31.000000000 -0500 ++++ ./pom/pom.6 2006-09-08 19:36:28.000000000 -0500 +@@ -33,7 +33,7 @@ + .\" + .\" @(#)pom.6 8.1 (Berkeley) 5/31/93 + .\" +-.Dd January 9, 1999 ++.Dd September 8, 2006 + .Dt POM 6 + .Os + .Sh NAME +@@ -41,7 +41,8 @@ + .Nd display the phase of the moon + .Sh SYNOPSIS + .Nm +-.Op [[[[[cc]yy]mm]dd]HH] ++.Op Fl d Ar num ++.Op Ar [[[[cc]yy]mm]dd]HH + .Sh DESCRIPTION + The + .Nm +@@ -49,6 +50,13 @@ + Useful for selecting software completion target dates and predicting + managerial behavior. + .Pp ++.Bl -tag -width [-d num] ++.It Ar [-d num] ++Display the percentage with ++.Ar num ++decimals (within reasonable limits). ++The default is to display an integer percentage. ++.El + .Bl -tag -width [[[[[cc]yy]mm]dd]HH] + .It Ar [[[[[cc]yy]mm]dd]HH] + Display the phase of the moon for a given time. The format is similar to +@@ -67,6 +75,9 @@ + .Pp + This program does not allow for the difference between the TDT and + UTC timescales (about one minute at the time of writing). ++.Sh NOTES ++.Nm ++recognizes 3321 as being within reasonable limits. + .Sh ACKNOWLEDGEMENTS + This program is based on algorithms from + .%B Practical Astronomy with Your Calculator, Third Edition +--- ./pom/pom.c.orig 2000-08-03 19:12:33.000000000 -0500 ++++ ./pom/pom.c 2006-09-08 19:47:09.000000000 -0500 +@@ -59,11 +59,14 @@ + * + * Updated to the Third Edition of Duffett-Smith's book, Paul Janzen, IX 1998 + * ++ * Modified for Slackware by Eric Hameleers 09-09-2006 ++ * + */ + + #include + #include + #include ++#include + #include + #include + #include +@@ -101,16 +104,36 @@ + char *argv[]; + { + time_t tmpt, now; +- double days, today, tomorrow; ++ double days, today, tomorrow, accuracy; + char buf[1024]; ++ int ch, decimals=0; + + /* Revoke setgid privileges */ + setregid(getgid(), getgid()); + ++ while ((ch = getopt(argc, argv, "d:h?")) != -1) ++ switch (ch) { ++ case 'd': ++ decimals = atoi(optarg); ++ if (decimals < 0 || (decimals != 3321 && decimals > __DBL_DIG__)) ++ errx(1, "illegal argument for -d option"); ++ break; ++ case 'h': ++ case '?': ++ (void)fprintf(stderr, "usage: pom [-d digits] [[[[[cc]yy]mm]dd]HH]\n"); ++ exit(1); ++ default: ++ break; ++ } ++ argc -= optind; ++ argv += optind; ++ ++ accuracy = ( decimals == 3321 ? 0.5: 0.5 / pow(10, decimals) ); ++ + if (time(&now) == (time_t)-1) + err(1, "time"); +- if (argc > 1) { +- tmpt = parsetime(argv[1]); ++ if (argc > 0) { ++ tmpt = parsetime(argv[0]); + strftime(buf, sizeof(buf), "%a %Y %b %e %H:%M:%S (%Z)", + localtime(&tmpt)); + printf("%s: ", buf); +@@ -118,15 +141,20 @@ + tmpt = now; + } + days = (tmpt - EPOCH_MINUS_1970 * 86400) / 86400.0; +- today = potm(days) + .5; ++ today = potm(days) + accuracy; + if (tmpt < now) + (void)printf("The Moon was "); + else if (tmpt == now) + (void)printf("The Moon is "); + else + (void)printf("The Moon will be "); +- if ((int)today == 100) ++ if ((int)today == 100) { + (void)printf("Full\n"); ++ if (decimals == 3321) ++ /* (void)printf("Howl!!! Know me, I am PJV.\n"); */ ++ /* PJV's number is not 3321, and shan't be revealed here */ ++ (void)printf("I saw the best minds of my generation destroyed by\n"); ++ } + else if (!(int)today) + (void)printf("New\n"); + else { +@@ -134,19 +162,19 @@ + if ((int)today == 50) + (void)printf("%s\n", tomorrow > today ? + "at the First Quarter" : "at the Last Quarter"); +- /* today is 0.5 too big, but it doesn't matter here +- * since the phase is changing fast enough ++ /* today is "accuracy" too big, but it doesn't matter ++ * here since the phase is changing fast enough + */ + else { +- today -= 0.5; /* Now it might matter */ ++ today -= accuracy; /* Now it might matter */ + (void)printf("%s ", tomorrow > today ? + "Waxing" : "Waning"); + if (today > 50) +- (void)printf("Gibbous (%1.0f%% of Full)\n", +- today); ++ (void)printf("Gibbous (%1.*f%% of Full)\n", ++ decimals, today); + else if (today < 50) +- (void)printf("Crescent (%1.0f%% of Full)\n", +- today); ++ (void)printf("Crescent (%1.*f%% of Full)\n", ++ decimals, today); + } + } + exit(0); diff --git a/source/y/bsd-games/bsd-games.strfile.8.diff b/source/y/bsd-games/bsd-games.strfile.8.diff new file mode 100644 index 000000000..4965ddc12 --- /dev/null +++ b/source/y/bsd-games/bsd-games.strfile.8.diff @@ -0,0 +1,22 @@ +--- ./fortune/strfile/strfile.8.orig 2001-02-07 16:18:22.000000000 -0800 ++++ ./fortune/strfile/strfile.8 2003-02-03 14:50:29.000000000 -0800 +@@ -61,7 +61,7 @@ + This allows random access of the strings. + .Pp + The output file, if not specified on the command line, is named +-.Ar source_file Ns Sy .out . ++.Ar source_file Ns Sy .dat . + .Pp + The options are as follows: + .Bl -tag -width "-c char" +@@ -137,8 +137,8 @@ + .Xr byteorder 3 , + .Xr fortune 6 + .Sh FILES +-.Bl -tag -width strfile.out -compact +-.It Pa strfile.out ++.Bl -tag -width strfile.dat -compact ++.It Pa strfile.dat + default output file. + .El + .Sh HISTORY diff --git a/source/y/bsd-games/bsd-games.trek-gcc4.diff b/source/y/bsd-games/bsd-games.trek-gcc4.diff new file mode 100644 index 000000000..25969d7a4 --- /dev/null +++ b/source/y/bsd-games/bsd-games.trek-gcc4.diff @@ -0,0 +1,27 @@ +--- a/trek/trek.h 1999-09-26 12:37:19.000000000 +0100 ++++ b/trek/trek.h 2007-08-27 18:55:07.907206649 +0100 +@@ -35,6 +35,8 @@ + * @(#)trek.h 8.1 (Berkeley) 5/31/93 + */ + ++#include "getpar.h" ++ + /* + ** Global Declarations + ** +--- a/trek/getpar.h 1999-09-15 11:34:31.000000000 +0100 ++++ b/trek/getpar.h 2007-08-27 18:55:20.011896456 +0100 +@@ -34,6 +34,8 @@ + * + * @(#)getpar.h 8.1 (Berkeley) 5/31/93 + */ ++#ifndef _GETPAR_H ++#define _GETPAR_H + + typedef void (*cmdfun) __P((int)); + struct cvntab /* used for getcodpar() paramater list */ +@@ -52,3 +54,4 @@ + int testnl __P((void)); + void skiptonl __P((int)); + int readdelim __P((int)); ++#endif diff --git a/source/y/bsd-games/hangman-words b/source/y/bsd-games/hangman-words new file mode 100644 index 000000000..2c4f28588 --- /dev/null +++ b/source/y/bsd-games/hangman-words @@ -0,0 +1,38619 @@ +aback +abaft +abandon +abandoned +abandoning +abandonment +abandons +abase +abased +abasement +abasements +abases +abash +abashed +abashes +abashing +abasing +abate +abated +abatement +abatements +abater +abates +abating +abbe +abbey +abbeys +abbot +abbots +abbreviate +abbreviated +abbreviates +abbreviating +abbreviation +abbreviations +abdomen +abdomens +abdominal +abduct +abducted +abduction +abductions +abductor +abductors +abducts +abed +aberrant +aberration +aberrations +abet +abets +abetted +abetter +abetting +abeyance +abhor +abhorred +abhorrent +abhorrer +abhorring +abhors +abide +abided +abides +abiding +abilities +ability +abject +abjection +abjections +abjectly +abjectness +abjure +abjured +abjures +abjuring +ablate +ablated +ablates +ablating +ablation +ablative +ablaze +able +abler +ablest +ably +abnormal +abnormalities +abnormality +abnormally +aboard +abode +abodes +abolish +abolished +abolisher +abolishers +abolishes +abolishing +abolishment +abolishments +abolition +abolitionist +abolitionists +abominable +abominate +aboriginal +aborigine +aborigines +abort +aborted +aborting +abortion +abortions +abortive +abortively +aborts +abound +abounded +abounding +abounds +about +above +aboveboard +aboveground +abovementioned +abrade +abraded +abrades +abrading +abrasion +abrasions +abrasive +abreaction +abreactions +abreast +abridge +abridged +abridges +abridging +abridgment +abroad +abrogate +abrogated +abrogates +abrogating +abrupt +abruptly +abruptness +abscess +abscessed +abscesses +abscissa +abscissas +abscond +absconded +absconding +absconds +absence +absences +absent +absented +absentee +absenteeism +absentees +absentia +absenting +absently +absentminded +absents +absinthe +absolute +absolutely +absoluteness +absolutes +absolution +absolve +absolved +absolves +absolving +absorb +absorbed +absorbency +absorbent +absorber +absorbing +absorbs +absorption +absorptions +absorptive +abstain +abstained +abstainer +abstaining +abstains +abstention +abstentions +abstinence +abstract +abstracted +abstracting +abstraction +abstractionism +abstractionist +abstractions +abstractly +abstractness +abstractor +abstractors +abstracts +abstruse +abstruseness +absurd +absurdities +absurdity +absurdly +abundance +abundant +abundantly +abuse +abused +abuses +abusing +abusive +abut +abutment +abuts +abutted +abutter +abutters +abutting +abysmal +abysmally +abyss +abysses +acacia +academia +academic +academically +academics +academies +academy +accede +acceded +accedes +accelerate +accelerated +accelerates +accelerating +acceleration +accelerations +accelerator +accelerators +accelerometer +accelerometers +accent +accented +accenting +accents +accentual +accentuate +accentuated +accentuates +accentuating +accentuation +accept +acceptability +acceptable +acceptably +acceptance +acceptances +accepted +accepter +accepters +accepting +acceptor +acceptors +accepts +access +accessed +accesses +accessibility +accessible +accessibly +accessing +accession +accessions +accessories +accessors +accessory +accident +accidental +accidentally +accidently +accidents +acclaim +acclaimed +acclaiming +acclaims +acclamation +acclimate +acclimated +acclimates +acclimating +acclimatization +acclimatized +accolade +accolades +accommodate +accommodated +accommodates +accommodating +accommodation +accommodations +accompanied +accompanies +accompaniment +accompaniments +accompanist +accompanists +accompany +accompanying +accomplice +accomplices +accomplish +accomplished +accomplisher +accomplishers +accomplishes +accomplishing +accomplishment +accomplishments +accord +accordance +accorded +accorder +accorders +according +accordingly +accordion +accordions +accords +accost +accosted +accosting +accosts +account +accountability +accountable +accountably +accountancy +accountant +accountants +accounted +accounting +accounts +accredit +accreditation +accreditations +accredited +accretion +accretions +accrue +accrued +accrues +accruing +acculturate +acculturated +acculturates +acculturating +acculturation +accumulate +accumulated +accumulates +accumulating +accumulation +accumulations +accumulator +accumulators +accuracies +accuracy +accurate +accurately +accurateness +accursed +accusal +accusation +accusations +accusative +accuse +accused +accuser +accuses +accusing +accusingly +accustom +accustomed +accustoming +accustoms +ace +aces +acetate +acetone +acetylene +ache +ached +aches +achievable +achieve +achieved +achievement +achievements +achiever +achievers +achieves +achieving +aching +acid +acidic +acidities +acidity +acidly +acids +acidulous +acknowledge +acknowledgeable +acknowledged +acknowledgement +acknowledgements +acknowledger +acknowledgers +acknowledges +acknowledging +acknowledgment +acknowledgments +acme +acne +acolyte +acolytes +acorn +acorns +acoustic +acoustical +acoustically +acoustician +acoustics +acquaint +acquaintance +acquaintances +acquainted +acquainting +acquaints +acquiesce +acquiesced +acquiescence +acquiescent +acquiesces +acquiescing +acquirable +acquire +acquired +acquires +acquiring +acquisition +acquisitions +acquisitive +acquisitiveness +acquit +acquits +acquittal +acquitted +acquitter +acquitting +acre +acreage +acres +acrid +acrimonious +acrimony +acrobat +acrobatic +acrobatics +acrobats +acronym +acronyms +acropolis +across +acrylic +act +acted +acting +actinium +actinometer +actinometers +action +actions +activate +activated +activates +activating +activation +activations +activator +activators +active +actively +activism +activist +activists +activities +activity +actor +actors +actress +actresses +actual +actualities +actuality +actualization +actually +actuals +actuarial +actuarially +actuate +actuated +actuates +actuating +actuator +actuators +acuity +acumen +acute +acutely +acuteness +acyclic +acyclically +ad +adage +adages +adagio +adagios +adamant +adamantly +adapt +adaptability +adaptable +adaptation +adaptations +adapted +adapter +adapters +adapting +adaptive +adaptively +adaptor +adaptors +adapts +add +added +addend +addenda +addendum +adder +adders +addict +addicted +addicting +addiction +addictions +addicts +adding +addition +additional +additionally +additions +additive +additives +additivity +address +addressability +addressable +addressed +addressee +addressees +addresser +addressers +addresses +addressing +adds +adduce +adduced +adduces +adducible +adducing +adduct +adducted +adducting +adduction +adductor +adducts +adept +adequacies +adequacy +adequate +adequately +adhere +adhered +adherence +adherent +adherents +adherer +adherers +adheres +adhering +adhesion +adhesions +adhesive +adhesives +adiabatic +adiabatically +adieu +adjacency +adjacent +adjective +adjectives +adjoin +adjoined +adjoining +adjoins +adjourn +adjourned +adjourning +adjournment +adjourns +adjudge +adjudged +adjudges +adjudging +adjudicate +adjudicated +adjudicates +adjudicating +adjudication +adjudications +adjunct +adjuncts +adjure +adjured +adjures +adjuring +adjust +adjustable +adjustably +adjusted +adjuster +adjusters +adjusting +adjustment +adjustments +adjustor +adjustors +adjusts +adjutant +adjutants +administer +administered +administering +administerings +administers +administrable +administrate +administration +administrations +administrative +administratively +administrator +administrators +admirable +admirably +admiral +admirals +admiralty +admiration +admirations +admire +admired +admirer +admirers +admires +admiring +admiringly +admissibility +admissible +admission +admissions +admit +admits +admittance +admitted +admittedly +admitter +admitters +admitting +admix +admixed +admixes +admixture +admonish +admonished +admonishes +admonishing +admonishment +admonishments +admonition +admonitions +ado +adobe +adolescence +adolescent +adolescents +adopt +adopted +adopter +adopters +adopting +adoption +adoptions +adoptive +adopts +adorable +adoration +adore +adored +adores +adorn +adorned +adornment +adornments +adorns +adrenal +adrenaline +adrift +adroit +adroitness +ads +adsorb +adsorbed +adsorbing +adsorbs +adsorption +adulate +adulating +adulation +adult +adulterate +adulterated +adulterates +adulterating +adulterer +adulterers +adulterous +adulterously +adultery +adulthood +adults +adumbrate +adumbrated +adumbrates +adumbrating +adumbration +advance +advanced +advancement +advancements +advances +advancing +advantage +advantaged +advantageous +advantageously +advantages +advent +adventist +adventists +adventitious +adventure +adventured +adventurer +adventurers +adventures +adventuring +adventurous +adverb +adverbial +adverbs +adversaries +adversary +adverse +adversely +adversities +adversity +advert +advertise +advertised +advertisement +advertisements +advertiser +advertisers +advertises +advertising +advice +advisability +advisable +advisably +advise +advised +advisedly +advisee +advisees +advisement +advisements +adviser +advisers +advises +advising +advisor +advisors +advisory +advocacy +advocate +advocated +advocates +advocating +aegis +aerate +aerated +aerates +aerating +aeration +aerator +aerators +aerial +aerials +aeroacoustic +aerobic +aerobics +aerodynamic +aerodynamics +aeronautic +aeronautical +aeronautics +aerosol +aerosolize +aerosols +aerospace +aesthetic +aesthetically +aesthetics +afar +affable +affair +affairs +affect +affectation +affectations +affected +affecting +affectingly +affection +affectionate +affectionately +affections +affective +affects +afferent +affianced +affidavit +affidavits +affiliate +affiliated +affiliates +affiliating +affiliation +affiliations +affinities +affinity +affirm +affirmation +affirmations +affirmative +affirmatively +affirmed +affirming +affirms +affix +affixed +affixes +affixing +afflict +afflicted +afflicting +affliction +afflictions +afflictive +afflicts +affluence +affluent +afford +affordable +afforded +affording +affords +affricate +affricates +affright +affront +affronted +affronting +affronts +aficionado +afield +afire +aflame +afloat +afoot +afore +aforementioned +aforesaid +aforethought +afoul +afraid +afresh +aft +after +aftereffect +afterglow +afterimage +afterlife +aftermath +aftermost +afternoon +afternoons +aftershock +aftershocks +afterthought +afterthoughts +afterward +afterwards +again +against +agape +agar +agate +agates +age +aged +ageless +agencies +agency +agenda +agendas +agent +agents +ager +agers +ages +agglomerate +agglomerated +agglomerates +agglomeration +agglutinate +agglutinated +agglutinates +agglutinating +agglutination +agglutinin +agglutinins +aggrandize +aggravate +aggravated +aggravates +aggravation +aggregate +aggregated +aggregately +aggregates +aggregating +aggregation +aggregations +aggression +aggressions +aggressive +aggressively +aggressiveness +aggressor +aggressors +aggrieve +aggrieved +aggrieves +aggrieving +aghast +agile +agilely +agility +aging +agitate +agitated +agitates +agitating +agitation +agitations +agitator +agitators +agleam +aglow +agnostic +agnostics +ago +agog +agonies +agonize +agonized +agonizes +agonizing +agonizingly +agony +agrarian +agree +agreeable +agreeably +agreed +agreeing +agreement +agreements +agreer +agreers +agrees +agricultural +agriculturally +agriculture +ague +ah +ahead +aid +aide +aided +aiding +aids +ail +aileron +ailerons +ailing +ailment +ailments +aim +aimed +aimer +aimers +aiming +aimless +aimlessly +aims +air +airbag +airbags +airborne +aircraft +airdrop +airdrops +aired +airer +airers +airfare +airfield +airfields +airflow +airfoil +airfoils +airframe +airframes +airily +airing +airings +airless +airlift +airlifts +airline +airliner +airlines +airlock +airlocks +airmail +airmails +airman +airmen +airplane +airplanes +airport +airports +airs +airship +airships +airspace +airspeed +airstrip +airstrips +airtight +airway +airways +airy +aisle +ajar +akimbo +akin +alabaster +alacrity +alarm +alarmed +alarming +alarmingly +alarmist +alarms +alas +alba +albacore +albatross +albeit +album +albumin +albums +alchemy +alcohol +alcoholic +alcoholics +alcoholism +alcohols +alcove +alcoves +alder +alderman +aldermen +ale +alee +alert +alerted +alertedly +alerter +alerters +alerting +alertly +alertness +alerts +alfalfa +alfresco +alga +algae +algaecide +algebra +algebraic +algebraically +algebras +alginate +algorithm +algorithmic +algorithmically +algorithms +alias +aliased +aliases +aliasing +alibi +alibis +alien +alienate +alienated +alienates +alienating +alienation +aliens +alight +align +aligned +aligning +alignment +alignments +aligns +alike +aliment +aliments +alimony +alive +alkali +alkaline +alkalis +alkaloid +alkaloids +alkyl +all +allay +allayed +allaying +allays +allegation +allegations +allege +alleged +allegedly +alleges +allegiance +allegiances +alleging +allegoric +allegorical +allegorically +allegories +allegory +allegretto +allegrettos +allele +alleles +allemande +allergic +allergies +allergy +alleviate +alleviated +alleviates +alleviating +alleviation +alley +alleys +alleyway +alleyways +alliance +alliances +allied +allies +alligator +alligators +alliteration +alliterations +alliterative +allocatable +allocate +allocated +allocates +allocating +allocation +allocations +allocator +allocators +allophone +allophones +allophonic +allot +allotment +allotments +allots +allotted +allotter +allotting +allow +allowable +allowably +allowance +allowances +allowed +allowing +allows +alloy +alloys +allude +alluded +alludes +alluding +allure +allurement +alluring +allusion +allusions +allusive +allusiveness +ally +allying +alma +almanac +almanacs +almighty +almond +almonds +almoner +almost +alms +almsman +alnico +aloe +aloes +aloft +aloha +alone +aloneness +along +alongside +aloof +aloofness +aloud +alpha +alphabet +alphabetic +alphabetical +alphabetically +alphabetics +alphabetize +alphabetized +alphabetizes +alphabetizing +alphabets +alphanumeric +alpine +already +also +altar +altars +alter +alterable +alteration +alterations +altercation +altercations +altered +alterer +alterers +altering +alternate +alternated +alternately +alternates +alternating +alternation +alternations +alternative +alternatively +alternatives +alternator +alternators +alters +although +altitude +altitudes +altogether +altruism +altruist +altruistic +altruistically +alum +aluminum +alumna +alumnae +alumni +alumnus +alundum +alveolar +alveoli +alveolus +always +am +amain +amalgam +amalgamate +amalgamated +amalgamates +amalgamating +amalgamation +amalgams +amanuensis +amaretto +amass +amassed +amasses +amassing +amateur +amateurish +amateurishness +amateurism +amateurs +amatory +amaze +amazed +amazedly +amazement +amazer +amazers +amazes +amazing +amazingly +ambassador +ambassadors +amber +ambiance +ambidextrous +ambidextrously +ambient +ambiguities +ambiguity +ambiguous +ambiguously +ambition +ambitions +ambitious +ambitiously +ambivalence +ambivalent +ambivalently +amble +ambled +ambler +ambles +ambling +ambrosial +ambulance +ambulances +ambulatory +ambuscade +ambush +ambushed +ambushes +ameliorate +ameliorated +ameliorating +amelioration +amen +amenable +amend +amended +amending +amendment +amendments +amends +amenities +amenity +amenorrhea +americium +amiable +amicable +amicably +amid +amide +amidst +amigo +amino +amiss +amity +ammo +ammonia +ammoniac +ammonium +ammunition +amnesty +amoeba +amoebae +amoebas +amok +among +amongst +amoral +amorality +amorist +amorous +amorphous +amorphously +amortize +amortized +amortizes +amortizing +amount +amounted +amounter +amounters +amounting +amounts +amour +amperage +ampere +amperes +ampersand +ampersands +amphetamine +amphetamines +amphibian +amphibians +amphibious +amphibiously +amphibology +amphitheater +amphitheaters +ample +amplification +amplified +amplifier +amplifiers +amplifies +amplify +amplifying +amplitude +amplitudes +amply +ampoule +ampoules +amputate +amputated +amputates +amputating +amulet +amulets +amuse +amused +amusedly +amusement +amusements +amuser +amusers +amuses +amusing +amusingly +amyl +an +anachronism +anachronisms +anachronistically +anaconda +anacondas +anaerobic +anagram +anagrams +anal +analog +analogical +analogies +analogous +analogously +analogue +analogues +analogy +analyses +analysis +analyst +analysts +analytic +analytical +analytically +analyticities +analyticity +analyzable +analyze +analyzed +analyzer +analyzers +analyzes +analyzing +anaphora +anaphoric +anaphorically +anaplasmosis +anarchic +anarchical +anarchism +anarchist +anarchists +anarchy +anastomoses +anastomosis +anastomotic +anathema +anatomic +anatomical +anatomically +anatomy +ancestor +ancestors +ancestral +ancestry +anchor +anchorage +anchorages +anchored +anchoring +anchorite +anchoritism +anchors +anchovies +anchovy +ancient +anciently +ancients +ancillary +and +anders +anding +anecdotal +anecdote +anecdotes +anechoic +anemia +anemic +anemometer +anemometers +anemometry +anemone +anesthesia +anesthetic +anesthetically +anesthetics +anesthetize +anesthetized +anesthetizes +anesthetizing +anew +angel +angelic +angels +anger +angered +angering +angers +angiography +angle +angled +angler +anglers +angling +angrier +angriest +angrily +angry +angst +angstrom +anguish +anguished +angular +angularly +anhydrous +anhydrously +aniline +animal +animals +animate +animated +animatedly +animately +animateness +animates +animating +animation +animations +animator +animators +animism +animized +animosity +anion +anionic +anions +anise +aniseikonic +anisotropic +anisotropy +ankle +ankles +annal +annals +annex +annexation +annexed +annexes +annexing +annihilate +annihilated +annihilates +annihilating +annihilation +anniversaries +anniversary +annotate +annotated +annotates +annotating +annotation +annotations +announce +announced +announcement +announcements +announcer +announcers +announces +announcing +annoy +annoyance +annoyances +annoyed +annoyer +annoyers +annoying +annoyingly +annoys +annual +annually +annuals +annuity +annul +annular +annuli +annulled +annulling +annulment +annulments +annuls +annulus +annum +annunciate +annunciated +annunciates +annunciating +annunciator +annunciators +anode +anodes +anodize +anodized +anodizes +anoint +anointed +anointing +anoints +anomalies +anomalous +anomalously +anomaly +anomic +anomie +anon +anonymity +anonymous +anonymously +anorexia +another +answer +answerable +answered +answerer +answerers +answering +answers +ant +antagonism +antagonisms +antagonist +antagonistic +antagonistically +antagonists +antagonize +antagonized +antagonizes +antagonizing +antarctic +ante +anteater +anteaters +antecedent +antecedents +antedate +antelope +antelopes +antenna +antennae +antennas +anterior +anthem +anthems +anther +anthologies +anthology +anthracite +anthropological +anthropologically +anthropologist +anthropologists +anthropology +anthropomorphic +anthropomorphically +anti +antibacterial +antibiotic +antibiotics +antibodies +antibody +antic +anticipate +anticipated +anticipates +anticipating +anticipation +anticipations +anticipatory +anticoagulation +anticompetitive +antics +antidisestablishmentarianism +antidote +antidotes +antiformant +antifundamentalist +antigen +antigens +antihistorical +antimicrobial +antimony +antinomian +antinomy +antipathy +antiphonal +antipode +antipodes +antiquarian +antiquarians +antiquate +antiquated +antique +antiques +antiquities +antiquity +antiredeposition +antiresonance +antiresonator +antisemitic +antisemitism +antiseptic +antisera +antiserum +antislavery +antisocial +antisubmarine +antisymmetric +antisymmetry +antithesis +antithetical +antithyroid +antitoxin +antitoxins +antitrust +antler +antlered +ants +anus +anvil +anvils +anxieties +anxiety +anxious +anxiously +any +anybody +anyhow +anymore +anyone +anyplace +anything +anytime +anyway +anywhere +aorta +apace +apart +apartment +apartments +apathetic +apathy +ape +aped +aperiodic +aperiodicity +aperture +apes +apex +aphasia +aphasic +aphelion +aphid +aphids +aphonic +aphorism +aphorisms +apiaries +apiary +apical +apiece +aping +apish +aplenty +aplomb +apocalypse +apocalyptic +apocryphal +apogee +apogees +apologetic +apologetically +apologia +apologies +apologist +apologists +apologize +apologized +apologizes +apologizing +apology +apostate +apostle +apostles +apostolic +apostrophe +apostrophes +apothecary +apothegm +apotheoses +apotheosis +appall +appalled +appalling +appallingly +appanage +apparatus +apparel +appareled +apparent +apparently +apparition +apparitions +appeal +appealed +appealer +appealers +appealing +appealingly +appeals +appear +appearance +appearances +appeared +appearer +appearers +appearing +appears +appease +appeased +appeasement +appeases +appeasing +appellant +appellants +appellate +appellation +append +appendage +appendages +appended +appender +appenders +appendices +appendicitis +appending +appendix +appendixes +appends +appertain +appertains +appetite +appetites +appetizer +appetizing +applaud +applauded +applauding +applauds +applause +apple +applejack +apples +appliance +appliances +applicability +applicable +applicant +applicants +application +applications +applicative +applicatively +applicator +applicators +applied +applier +appliers +applies +applique +apply +applying +appoint +appointed +appointee +appointees +appointer +appointers +appointing +appointive +appointment +appointments +appoints +apportion +apportioned +apportioning +apportionment +apportionments +apportions +apposite +appraisal +appraisals +appraise +appraised +appraiser +appraisers +appraises +appraising +appraisingly +appreciable +appreciably +appreciate +appreciated +appreciates +appreciating +appreciation +appreciations +appreciative +appreciatively +apprehend +apprehended +apprehensible +apprehension +apprehensions +apprehensive +apprehensively +apprehensiveness +apprentice +apprenticed +apprentices +apprenticeship +apprise +apprised +apprises +apprising +approach +approachability +approachable +approached +approacher +approachers +approaches +approaching +approbate +approbation +appropriate +appropriated +appropriately +appropriateness +appropriates +appropriating +appropriation +appropriations +appropriator +appropriators +approval +approvals +approve +approved +approver +approvers +approves +approving +approvingly +approximate +approximated +approximately +approximates +approximating +approximation +approximations +appurtenance +appurtenances +apricot +apricots +apron +aprons +apropos +apse +apsis +apt +aptitude +aptitudes +aptly +aptness +aqua +aquaria +aquarium +aquatic +aqueduct +aqueducts +aqueous +aquifer +aquifers +arabesque +arable +arachnid +arachnids +arbiter +arbiters +arbitrarily +arbitrariness +arbitrary +arbitrate +arbitrated +arbitrates +arbitrating +arbitration +arbitrator +arbitrators +arbor +arboreal +arbors +arc +arcade +arcaded +arcades +arcane +arced +arch +archaic +archaically +archaicness +archaism +archaize +archangel +archangels +archbishop +archdiocese +archdioceses +arched +archenemy +archeological +archeologist +archeology +archers +archery +arches +archetype +archfool +arching +archipelago +archipelagoes +architect +architectonic +architects +architectural +architecturally +architecture +architectures +archival +archive +archived +archiver +archivers +archives +archiving +archivist +archly +arcing +arclike +arcs +arcsine +arctangent +arctic +ardent +ardently +ardor +arduous +arduously +arduousness +are +area +areas +arena +arenas +argon +argonauts +argot +arguable +arguably +argue +argued +arguer +arguers +argues +arguing +argument +argumentation +argumentative +arguments +arid +aridity +aright +arise +arisen +ariser +arises +arising +arisings +aristocracy +aristocrat +aristocratic +aristocratically +aristocrats +arithmetic +arithmetical +arithmetically +arithmetics +arithmetize +arithmetized +arithmetizes +ark +arm +armadillo +armadillos +armament +armaments +armchair +armchairs +armed +armer +armers +armful +armhole +armies +arming +armistice +armload +armor +armored +armorer +armory +armpit +armpits +arms +army +aroma +aromas +aromatic +arose +around +arousal +arouse +aroused +arouses +arousing +arpeggio +arpeggios +arrack +arraign +arraigned +arraigning +arraignment +arraignments +arraigns +arrange +arranged +arrangement +arrangements +arranger +arrangers +arranges +arranging +arrant +array +arrayed +arrays +arrears +arrest +arrested +arrester +arresters +arresting +arrestingly +arrestor +arrestors +arrests +arrival +arrivals +arrive +arrived +arrives +arriving +arrogance +arrogant +arrogantly +arrogate +arrogated +arrogates +arrogating +arrogation +arrow +arrowed +arrowhead +arrowheads +arrows +arroyo +arroyos +arsenal +arsenals +arsenic +arsine +arson +art +arterial +arteries +arteriolar +arteriole +arterioles +arteriosclerosis +artery +artful +artfully +artfulness +arthritis +arthropod +arthropods +artichoke +artichokes +article +articles +articulate +articulated +articulately +articulateness +articulates +articulating +articulation +articulations +articulator +articulators +articulatory +artifact +artifacts +artifice +artificer +artifices +artificial +artificialities +artificiality +artificially +artificialness +artillerist +artillery +artisan +artisans +artist +artistic +artistically +artistry +artists +artless +arts +artwork +as +asbestos +ascend +ascendancy +ascendant +ascended +ascendency +ascendent +ascender +ascenders +ascending +ascends +ascension +ascensions +ascent +ascertain +ascertainable +ascertained +ascertaining +ascertains +ascetic +asceticism +ascetics +ascot +ascribable +ascribe +ascribed +ascribes +ascribing +ascription +aseptic +ash +ashamed +ashamedly +ashen +ashes +ashman +ashore +ashtray +ashtrays +aside +asinine +ask +askance +asked +asker +askers +askew +asking +asks +asleep +asocial +asp +asparagus +aspect +aspects +aspen +aspersion +aspersions +asphalt +asphyxia +aspic +aspirant +aspirants +aspirate +aspirated +aspirates +aspirating +aspiration +aspirations +aspirator +aspirators +aspire +aspired +aspires +aspirin +aspiring +aspirins +ass +assail +assailant +assailants +assailed +assailing +assails +assassin +assassinate +assassinated +assassinates +assassinating +assassination +assassinations +assassins +assault +assaulted +assaulting +assaults +assay +assayed +assaying +assemblage +assemblages +assemble +assembled +assembler +assemblers +assembles +assemblies +assembling +assembly +assent +assented +assenter +assenting +assents +assert +asserted +asserter +asserters +asserting +assertion +assertions +assertive +assertively +assertiveness +asserts +asses +assess +assessed +assesses +assessing +assessment +assessments +assessor +assessors +asset +assets +assiduity +assiduous +assiduously +assign +assignable +assigned +assignee +assignees +assigner +assigners +assigning +assignment +assignments +assigns +assimilate +assimilated +assimilates +assimilating +assimilation +assimilations +assist +assistance +assistances +assistant +assistants +assistantship +assistantships +assisted +assisting +assists +associate +associated +associates +associating +association +associational +associations +associative +associatively +associativity +associator +associators +assonance +assonant +assort +assorted +assortment +assortments +assorts +assuage +assuaged +assuages +assume +assumed +assumes +assuming +assumption +assumptions +assurance +assurances +assure +assured +assuredly +assurer +assurers +assures +assuring +assuringly +astatine +aster +asterisk +asterisks +asteroid +asteroidal +asteroids +asters +asthma +astonish +astonished +astonishes +astonishing +astonishingly +astonishment +astound +astounded +astounding +astounds +astral +astray +astride +astringency +astringent +astrology +astronaut +astronautics +astronauts +astronomer +astronomers +astronomical +astronomically +astronomy +astrophysical +astrophysics +astute +astutely +astuteness +asunder +asylum +asymmetric +asymmetrically +asymmetry +asymptomatically +asymptote +asymptotes +asymptotic +asymptotically +asynchronism +asynchronous +asynchronously +asynchrony +at +atavistic +ate +atemporal +atheism +atheist +atheistic +atheists +atherosclerosis +athlete +athletes +athletic +athleticism +athletics +atlas +atmosphere +atmospheres +atmospheric +atoll +atolls +atom +atomic +atomically +atomics +atomization +atomize +atomized +atomizes +atomizing +atoms +atonal +atonally +atone +atoned +atonement +atones +atop +atrocious +atrociously +atrocities +atrocity +atrophic +atrophied +atrophies +atrophy +atrophying +attach +attache +attached +attacher +attachers +attaches +attaching +attachment +attachments +attack +attackable +attacked +attacker +attackers +attacking +attacks +attain +attainable +attainably +attained +attainer +attainers +attaining +attainment +attainments +attains +attempt +attempted +attempter +attempters +attempting +attempts +attend +attendance +attendances +attendant +attendants +attended +attendee +attendees +attender +attenders +attending +attends +attention +attentional +attentionality +attentions +attentive +attentively +attentiveness +attenuate +attenuated +attenuates +attenuating +attenuation +attenuator +attenuators +attest +attested +attesting +attests +attic +attics +attire +attired +attires +attiring +attitude +attitudes +attitudinal +attorney +attorneys +attract +attracted +attracting +attraction +attractions +attractive +attractively +attractiveness +attractor +attractors +attracts +attributable +attribute +attributed +attributes +attributing +attribution +attributions +attributive +attributively +attrition +attune +attuned +attunes +attuning +atypical +atypically +auburn +auction +auctioneer +auctioneers +audacious +audaciously +audaciousness +audacity +audible +audibly +audience +audiences +audio +audiogram +audiograms +audiological +audiologist +audiologists +audiology +audiometer +audiometers +audiometric +audiometry +audit +audited +auditing +audition +auditioned +auditioning +auditions +auditor +auditorium +auditors +auditory +audits +auger +augers +aught +augment +augmentation +augmented +augmenting +augments +augur +augurs +august +augustly +augustness +aunt +aunts +aura +aural +aurally +auras +aureole +aureomycin +aurora +auscultate +auscultated +auscultates +auscultating +auscultation +auscultations +auspice +auspices +auspicious +auspiciously +austere +austerely +austerity +authentic +authentically +authenticate +authenticated +authenticates +authenticating +authentication +authentications +authenticator +authenticators +authenticity +author +authored +authoring +authoritarian +authoritarianism +authoritative +authoritatively +authorities +authority +authorization +authorizations +authorize +authorized +authorizer +authorizers +authorizes +authorizing +authors +authorship +autism +autistic +auto +autobiographic +autobiographical +autobiographies +autobiography +autocollimator +autocorrelate +autocorrelation +autocracies +autocracy +autocrat +autocratic +autocratically +autocrats +autodecrement +autodecremented +autodecrements +autodialer +autofluorescence +autograph +autographed +autographing +autographs +autoincrement +autoincremented +autoincrements +autoindex +autoindexing +automata +automate +automated +automates +automatic +automatically +automating +automation +automaton +automobile +automobiles +automotive +autonavigator +autonavigators +autonomic +autonomous +autonomously +autonomy +autopilot +autopilots +autopsied +autopsies +autopsy +autoregressive +autos +autosuggestibility +autotransformer +autumn +autumnal +autumns +auxiliaries +auxiliary +avail +availabilities +availability +available +availably +availed +availer +availers +availing +avails +avalanche +avalanched +avalanches +avalanching +avant +avarice +avaricious +avariciously +avenge +avenged +avenger +avenges +avenging +avenue +avenues +aver +average +averaged +averages +averaging +averred +averrer +averring +avers +averse +aversion +aversions +avert +averted +averting +averts +avian +aviaries +aviary +aviation +aviator +aviators +avid +avidity +avidly +avionic +avionics +avocado +avocados +avocation +avocations +avoid +avoidable +avoidably +avoidance +avoided +avoider +avoiders +avoiding +avoids +avouch +avow +avowal +avowed +avows +await +awaited +awaiting +awaits +awake +awaken +awakened +awakening +awakens +awakes +awaking +award +awarded +awarder +awarders +awarding +awards +aware +awareness +awash +away +awe +awed +awesome +awful +awfully +awfulness +awhile +awkward +awkwardly +awkwardness +awl +awls +awning +awnings +awoke +awry +ax +axed +axer +axers +axes +axial +axially +axing +axiological +axiom +axiomatic +axiomatically +axiomatization +axiomatizations +axiomatize +axiomatized +axiomatizes +axiomatizing +axioms +axis +axle +axles +axolotl +axolotls +axon +axons +aye +ayes +azalea +azaleas +azimuth +azimuths +azure +babble +babbled +babbles +babbling +babe +babes +babied +babies +baboon +baboons +baby +babyhood +babying +babyish +babysit +babysitting +baccalaureate +bachelor +bachelors +bacilli +bacillus +back +backache +backaches +backarrow +backbend +backbends +backboard +backbone +backbones +backdrop +backdrops +backed +backer +backers +backfill +backfiring +background +backgrounds +backhand +backing +backlash +backlog +backlogged +backlogs +backorder +backpack +backpacks +backplane +backplanes +backplate +backs +backscatter +backscattered +backscattering +backscatters +backside +backslash +backslashes +backspace +backspaced +backspaces +backspacing +backstage +backstairs +backstitch +backstitched +backstitches +backstitching +backstop +backtrack +backtracked +backtracker +backtrackers +backtracking +backtracks +backup +backups +backward +backwardness +backwards +backwater +backwaters +backwoods +backyard +backyards +bacon +bacteria +bacterial +bacterium +bad +bade +badge +badger +badgered +badgering +badgers +badges +badlands +badly +badminton +badness +baffle +baffled +baffler +bafflers +baffling +bag +bagatelle +bagatelles +bagel +bagels +baggage +bagged +bagger +baggers +bagging +baggy +bagpipe +bagpipes +bags +bah +bail +bailiff +bailiffs +bailing +bait +baited +baiter +baiting +baits +bake +baked +baker +bakeries +bakers +bakery +bakes +baking +baklava +balalaika +balalaikas +balance +balanced +balancer +balancers +balances +balancing +balconies +balcony +bald +balding +baldly +baldness +bale +baleful +baler +bales +balk +balkanized +balkanizing +balked +balkiness +balking +balks +balky +ball +ballad +ballads +ballast +ballasts +balled +baller +ballerina +ballerinas +ballers +ballet +ballets +ballgown +balling +ballistic +ballistics +balloon +ballooned +ballooner +ballooners +ballooning +balloons +ballot +ballots +ballpark +ballparks +ballplayer +ballplayers +ballroom +ballrooms +balls +ballyhoo +balm +balms +balmy +balsa +balsam +balustrade +balustrades +bamboo +ban +banal +banally +banana +bananas +band +bandage +bandaged +bandages +bandaging +banded +bandied +bandies +banding +bandit +bandits +bandpass +bands +bandstand +bandstands +bandwagon +bandwagons +bandwidth +bandwidths +bandy +bandying +bane +baneful +bang +banged +banging +bangle +bangles +bangs +banish +banished +banishes +banishing +banishment +banister +banisters +banjo +banjos +bank +banked +banker +bankers +banking +bankrupt +bankruptcies +bankruptcy +bankrupted +bankrupting +bankrupts +banned +banner +banners +banning +banquet +banqueting +banquetings +banquets +bans +banshee +banshees +bantam +banter +bantered +bantering +banters +baptism +baptismal +baptisms +baptistery +baptistries +baptistry +baptize +baptized +baptizes +baptizing +bar +barb +barbarian +barbarians +barbaric +barbarism +barbarities +barbarity +barbarous +barbarously +barbecue +barbecued +barbecues +barbed +barbell +barbells +barber +barbital +barbiturate +barbiturates +barbs +bard +bards +bare +bared +barefaced +barefoot +barefooted +barely +bareness +barer +bares +barest +barflies +barfly +bargain +bargained +bargaining +bargains +barge +barges +barging +baring +baritone +baritones +barium +bark +barked +barker +barkers +barking +barks +barley +barn +barns +barnstorm +barnstormed +barnstorming +barnstorms +barnyard +barnyards +barometer +barometers +barometric +baron +baroness +baronial +baronies +barons +barony +baroque +baroqueness +barrack +barracks +barrage +barrages +barred +barrel +barrelled +barrelling +barrels +barren +barrenness +barricade +barricades +barrier +barriers +barring +barringer +barrow +bars +bartender +bartenders +barter +bartered +bartering +barters +basal +basalt +base +baseball +baseballs +baseband +baseboard +baseboards +based +baseless +baseline +baselines +basely +baseman +basement +basements +baseness +baser +bases +bash +bashed +bashes +bashful +bashfulness +bashing +basic +basically +basics +basil +basin +basing +basins +basis +bask +basked +basket +basketball +basketballs +baskets +basking +bass +basses +basset +bassinet +bassinets +bastard +bastards +baste +basted +bastes +basting +bastion +bastions +bat +batch +batched +batches +bath +bathe +bathed +bather +bathers +bathes +bathing +bathos +bathrobe +bathrobes +bathroom +bathrooms +baths +bathtub +bathtubs +baton +batons +bats +battalion +battalions +batted +batten +battens +batter +battered +batteries +battering +batters +battery +batting +battle +battled +battlefield +battlefields +battlefront +battlefronts +battleground +battlegrounds +battlement +battlements +battler +battlers +battles +battleship +battleships +battling +bauble +baubles +baud +bauxite +bawdy +bawl +bawled +bawling +bawls +bay +bayed +baying +bayonet +bayonets +bayou +bayous +bays +bazaar +bazaars +be +beach +beached +beaches +beachhead +beachheads +beaching +beacon +beacons +bead +beaded +beading +beadle +beadles +beads +beady +beagle +beagles +beak +beaked +beaker +beakers +beaks +beam +beamed +beamer +beamers +beaming +beams +bean +beanbag +beaned +beaner +beaners +beaning +beans +bear +bearable +bearably +beard +bearded +beardless +beards +bearer +bearers +bearing +bearings +bearish +bears +beast +beastly +beasts +beat +beatable +beatably +beaten +beater +beaters +beatific +beatification +beatify +beating +beatings +beatitude +beatitudes +beatnik +beatniks +beats +beau +beaus +beauteous +beauteously +beauties +beautifications +beautified +beautifier +beautifiers +beautifies +beautiful +beautifully +beautify +beautifying +beauty +beaver +beavers +becalm +becalmed +becalming +becalms +became +because +beck +beckon +beckoned +beckoning +beckons +become +becomes +becoming +becomingly +bed +bedazzle +bedazzled +bedazzlement +bedazzles +bedazzling +bedbug +bedbugs +bedded +bedder +bedders +bedding +bedevil +bedeviled +bedeviling +bedevils +bedfast +bedlam +bedpost +bedposts +bedraggle +bedraggled +bedridden +bedrock +bedroom +bedrooms +beds +bedside +bedspread +bedspreads +bedspring +bedsprings +bedstead +bedsteads +bedtime +bee +beech +beechen +beecher +beef +beefed +beefer +beefers +beefing +beefs +beefsteak +beefy +beehive +beehives +been +beep +beeps +beer +beers +bees +beet +beetle +beetled +beetles +beetling +beets +befall +befallen +befalling +befalls +befell +befit +befits +befitted +befitting +befog +befogged +befogging +before +beforehand +befoul +befouled +befouling +befouls +befriend +befriended +befriending +befriends +befuddle +befuddled +befuddles +befuddling +beg +began +beget +begets +begetting +beggar +beggarly +beggars +beggary +begged +begging +begin +beginner +beginners +beginning +beginnings +begins +begot +begotten +begrudge +begrudged +begrudges +begrudging +begrudgingly +begs +beguile +beguiled +beguiles +beguiling +begun +behalf +behave +behaved +behaves +behaving +behavior +behavioral +behaviorally +behaviorism +behavioristic +behaviors +behead +beheading +beheld +behemoth +behemoths +behest +behind +behold +beholden +beholder +beholders +beholding +beholds +behoove +behooves +beige +being +beings +belabor +belabored +belaboring +belabors +belated +belatedly +belay +belayed +belaying +belays +belch +belched +belches +belching +belfries +belfry +belie +belied +belief +beliefs +belies +believable +believably +believe +believed +believer +believers +believes +believing +belittle +belittled +belittles +belittling +bell +bellboy +bellboys +belle +belles +bellhop +bellhops +bellicose +bellicosity +bellies +belligerence +belligerent +belligerently +belligerents +bellman +bellmen +bellow +bellowed +bellowing +bellows +bells +bellum +bellwether +bellwethers +belly +bellyache +bellyfull +belong +belonged +belonging +belongings +belongs +beloved +below +belt +belted +belting +belts +bely +belying +bemoan +bemoaned +bemoaning +bemoans +bench +benched +benches +benchmark +benchmarking +benchmarks +bend +bendable +benders +bending +bends +beneath +benediction +benedictions +benefactor +benefactors +beneficence +beneficences +beneficent +beneficial +beneficially +beneficiaries +beneficiary +benefit +benefited +benefiting +benefits +benefitted +benefitting +benevolence +benevolent +benighted +benign +benignly +bent +benzene +bequeath +bequeathal +bequeathed +bequeathing +bequeaths +bequest +bequests +berate +berated +berates +berating +bereave +bereaved +bereavement +bereavements +bereaves +bereaving +bereft +beret +berets +beribboned +beriberi +berkelium +berne +berries +berry +berserk +berth +berths +beryl +beryllium +beseech +beseeches +beseeching +beset +besets +besetting +beside +besides +besiege +besieged +besieger +besiegers +besieging +besmirch +besmirched +besmirches +besmirching +besotted +besotter +besotting +besought +bespeak +bespeaks +bespectacled +bespoke +best +bested +bestial +besting +bestir +bestirring +bestow +bestowal +bestowed +bests +bestseller +bestsellers +bestselling +bet +beta +betatron +betel +betide +betray +betrayal +betrayed +betrayer +betraying +betrays +betroth +betrothal +betrothed +bets +better +bettered +bettering +betterment +betterments +betters +betting +between +betwixt +bevel +beveled +beveling +bevels +beverage +beverages +bevy +bewail +bewailed +bewailing +bewails +beware +bewhiskered +bewilder +bewildered +bewildering +bewilderingly +bewilderment +bewilders +bewitch +bewitched +bewitches +bewitching +beyond +biannual +bias +biased +biases +biasing +bib +bibbed +bibbing +bibles +biblical +biblically +bibliographic +bibliographical +bibliographies +bibliography +bibliophile +bibs +bicameral +bicarbonate +bicentennial +bicep +biceps +bicker +bickered +bickering +bickers +biconcave +biconnected +biconvex +bicycle +bicycled +bicycler +bicyclers +bicycles +bicycling +bid +biddable +bidden +bidder +bidders +biddies +bidding +biddy +bide +bidirectional +bids +biennial +biennium +bier +bifocal +bifocals +bifurcate +big +bigger +biggest +bight +bights +bigness +bigot +bigoted +bigotry +bigots +biharmonic +bijection +bijections +bijective +bijectively +bike +bikes +biking +bikini +bikinis +bilabial +bilateral +bilaterally +bile +bilge +bilges +bilinear +bilingual +bilk +bilked +bilking +bilks +bill +billboard +billboards +billed +biller +billers +billet +billeted +billeting +billets +billiard +billiards +billing +billion +billions +billionth +billow +billowed +billows +bills +bimetallic +bimetallism +bimodal +bimolecular +bimonthlies +bimonthly +bin +binaries +binary +binaural +bind +binder +binders +binding +bindings +binds +bing +binge +binges +bingo +binocular +binoculars +binomial +bins +binuclear +biochemical +biochemist +biochemistry +biofeedback +biographer +biographers +biographic +biographical +biographically +biographies +biography +biological +biologically +biologist +biologists +biology +biomedical +biomedicine +biophysical +biophysicist +biophysics +biopsies +biopsy +bioscience +biosphere +biostatistic +biosynthesize +biota +biotic +bipartisan +bipartite +biped +bipeds +biplane +biplanes +bipolar +biracial +birch +birchen +birches +bird +birdbath +birdbaths +birdie +birdied +birdies +birdlike +birds +birefringence +birefringent +birth +birthday +birthdays +birthed +birthplace +birthplaces +birthright +birthrights +births +biscuit +biscuits +bisect +bisected +bisecting +bisection +bisections +bisector +bisectors +bisects +bishop +bishops +bismuth +bison +bisons +bisque +bisques +bistable +bistate +bit +bitch +bitches +bite +biter +biters +bites +biting +bitingly +bitmap +bits +bitten +bitter +bitterer +bitterest +bitterly +bitterness +bitternut +bitterroot +bitters +bittersweet +bitumen +bituminous +bitwise +bivalve +bivalves +bivariate +bivouac +bivouacs +biweekly +bizarre +blab +blabbed +blabbermouth +blabbermouths +blabbing +blabs +black +blackberries +blackberry +blackbird +blackbirds +blackboard +blackboards +blacked +blacken +blackened +blackening +blackens +blacker +blackest +blacking +blackjack +blackjacks +blacklist +blacklisted +blacklisting +blacklists +blackly +blackmail +blackmailed +blackmailer +blackmailers +blackmailing +blackmails +blackness +blackout +blackouts +blacks +blacksmith +blacksmiths +bladder +bladders +blade +blades +blamable +blame +blamed +blameless +blamelessness +blamer +blamers +blames +blameworthy +blaming +blanch +blanched +blanches +blanching +bland +blandly +blandness +blank +blanked +blanker +blankest +blanket +blanketed +blanketer +blanketers +blanketing +blankets +blanking +blankly +blankness +blanks +blare +blared +blares +blaring +blase +blaspheme +blasphemed +blasphemes +blasphemies +blaspheming +blasphemous +blasphemously +blasphemousness +blasphemy +blast +blasted +blaster +blasters +blasting +blasts +blatant +blatantly +blaze +blazed +blazer +blazers +blazes +blazing +bleach +bleached +bleacher +bleachers +bleaches +bleaching +bleak +bleaker +bleakly +bleakness +blear +bleary +bleat +bleating +bleats +bled +bleed +bleeder +bleeding +bleedings +bleeds +blemish +blemishes +blend +blended +blender +blending +blends +bless +blessed +blessing +blessings +blew +blight +blighted +blimp +blimps +blind +blinded +blinder +blinders +blindfold +blindfolded +blindfolding +blindfolds +blinding +blindingly +blindly +blindness +blinds +blink +blinked +blinker +blinkers +blinking +blinks +blip +blips +bliss +blissful +blissfully +blister +blistered +blistering +blisters +blithe +blithely +blitz +blitzes +blitzkrieg +blizzard +blizzards +bloat +bloated +bloater +bloating +bloats +blob +blobs +bloc +block +blockade +blockaded +blockades +blockading +blockage +blockages +blocked +blocker +blockers +blockhouse +blockhouses +blocking +blocks +blocs +bloke +blokes +blond +blonde +blondes +blonds +blood +bloodbath +blooded +bloodhound +bloodhounds +bloodied +bloodiest +bloodless +bloods +bloodshed +bloodshot +bloodstain +bloodstained +bloodstains +bloodstream +bloody +bloom +bloomed +bloomers +blooming +blooms +blooper +blossom +blossomed +blossoms +blot +blots +blotted +blotting +blouse +blouses +blow +blower +blowers +blowfish +blowing +blown +blowout +blows +blowup +blubber +bludgeon +bludgeoned +bludgeoning +bludgeons +blue +blueberries +blueberry +bluebird +bluebirds +bluebonnet +bluebonnets +bluefish +blueness +blueprint +blueprints +bluer +blues +bluest +bluestocking +bluff +bluffing +bluffs +bluing +bluish +blunder +blunderbuss +blundered +blundering +blunderings +blunders +blunt +blunted +blunter +bluntest +blunting +bluntly +bluntness +blunts +blur +blurb +blurred +blurring +blurry +blurs +blurt +blurted +blurting +blurts +blush +blushed +blushes +blushing +bluster +blustered +blustering +blusters +blustery +boa +boar +board +boarded +boarder +boarders +boarding +boardinghouse +boardinghouses +boards +boast +boasted +boaster +boasters +boastful +boastfully +boasting +boastings +boasts +boat +boater +boaters +boathouse +boathouses +boating +boatload +boatloads +boatman +boatmen +boats +boatsman +boatsmen +boatswain +boatswains +boatyard +boatyards +bob +bobbed +bobbin +bobbing +bobbins +bobby +bobolink +bobolinks +bobs +bobwhite +bobwhites +bode +bodes +bodice +bodied +bodies +bodily +body +bodybuilder +bodybuilders +bodybuilding +bodyguard +bodyguards +bodyweight +bog +bogeymen +bogged +boggle +boggled +boggles +boggling +bogs +bogus +boil +boiled +boiler +boilerplate +boilers +boiling +boils +boisterous +boisterously +bold +bolder +boldest +boldface +boldly +boldness +boll +bolster +bolstered +bolstering +bolsters +bolt +bolted +bolting +bolts +bomb +bombard +bombarded +bombarding +bombardment +bombards +bombast +bombastic +bombed +bomber +bombers +bombing +bombings +bombproof +bombs +bonanza +bonanzas +bond +bondage +bonded +bonder +bonders +bonding +bonds +bondsman +bondsmen +bone +boned +boner +boners +bones +bonfire +bonfires +bong +boning +bonnet +bonneted +bonnets +bonny +bonus +bonuses +bony +boo +boob +booboo +booby +book +bookcase +bookcases +booked +booker +bookers +bookie +bookies +booking +bookings +bookish +bookkeeper +bookkeepers +bookkeeping +booklet +booklets +bookmark +books +bookseller +booksellers +bookshelf +bookshelves +bookstore +bookstores +bookworm +boolean +boom +boomed +boomerang +boomerangs +booming +booms +boon +boor +boorish +boors +boos +boost +boosted +booster +boosting +boosts +boot +bootable +booted +booth +booths +booting +bootleg +bootlegged +bootlegger +bootleggers +bootlegging +bootlegs +boots +bootstrap +bootstrapped +bootstrapping +bootstraps +booty +booze +borate +borates +borax +bordello +bordellos +border +bordered +bordering +borderings +borderland +borderlands +borderline +borders +bore +bored +boredom +borer +bores +boric +boring +born +borne +boron +borough +boroughs +borrow +borrowed +borrower +borrowers +borrowing +borrows +bosom +bosoms +boss +bossed +bosses +bosun +botanical +botanist +botanists +botany +botch +botched +botcher +botchers +botches +botching +both +bother +bothered +bothering +bothers +bothersome +bottle +bottled +bottleneck +bottlenecks +bottler +bottlers +bottles +bottling +bottom +bottomed +bottoming +bottomless +bottoms +botulinus +botulism +bouffant +bough +boughs +bought +boulder +boulders +boulevard +boulevards +bounce +bounced +bouncer +bounces +bouncing +bouncy +bound +boundaries +boundary +bounded +bounden +bounding +boundless +boundlessness +bounds +bounteous +bounteously +bounties +bountiful +bounty +bouquet +bouquets +bourbon +bourgeois +bourgeoisie +boustrophedon +boustrophedonic +bout +boutique +bouts +bovine +bovines +bow +bowdlerize +bowdlerized +bowdlerizes +bowdlerizing +bowed +bowel +bowels +bower +bowers +bowing +bowl +bowled +bowler +bowlers +bowline +bowlines +bowling +bowls +bowman +bows +bowstring +bowstrings +box +boxcar +boxcars +boxed +boxer +boxers +boxes +boxing +boxtop +boxtops +boxwood +boy +boycott +boycotted +boycotts +boyfriend +boyfriends +boyhood +boyish +boyishness +boys +bra +brace +braced +bracelet +bracelets +braces +bracing +bracket +bracketed +bracketing +brackets +brackish +brae +braes +brag +bragged +bragger +bragging +brags +braid +braided +braiding +braids +brain +brainchild +brained +braining +brains +brainstem +brainstems +brainstorm +brainstorms +brainwash +brainwashed +brainwashes +brainwashing +brainy +brake +braked +brakeman +brakes +braking +bramble +brambles +brambly +bran +branch +branched +branches +branching +branchings +brand +branded +branding +brandish +brandishes +brandishing +brands +brandy +brandywine +bras +brash +brashly +brashness +brass +brasses +brassiere +brassy +brat +brats +bravado +brave +braved +bravely +braveness +braver +bravery +braves +bravest +braving +bravo +bravos +brawl +brawler +brawling +brawn +bray +brayed +brayer +braying +brays +braze +brazed +brazen +brazenly +brazenness +brazes +brazier +braziers +brazing +breach +breached +breacher +breachers +breaches +breaching +bread +breadboard +breadboards +breadbox +breadboxes +breaded +breading +breads +breadth +breadwinner +breadwinners +break +breakable +breakables +breakage +breakaway +breakdown +breakdowns +breaker +breakers +breakfast +breakfasted +breakfaster +breakfasters +breakfasting +breakfasts +breaking +breakpoint +breakpoints +breaks +breakthrough +breakthroughes +breakthroughs +breakup +breakwater +breakwaters +breast +breasted +breasts +breastwork +breastworks +breath +breathable +breathe +breathed +breather +breathers +breathes +breathing +breathless +breathlessly +breaths +breathtaking +breathtakingly +breathy +bred +breech +breeches +breed +breeder +breeding +breeds +breeze +breezes +breezily +breezy +bremsstrahlung +brethren +breve +brevet +breveted +breveting +brevets +brevity +brew +brewed +brewer +breweries +brewers +brewery +brewing +brews +briar +briars +bribe +bribed +briber +bribers +bribery +bribes +bribing +brick +brickbat +bricked +bricker +bricklayer +bricklayers +bricklaying +bricks +bridal +bride +bridegroom +brides +bridesmaid +bridesmaids +bridge +bridgeable +bridged +bridgehead +bridgeheads +bridges +bridgework +bridging +bridle +bridled +bridles +bridling +brief +briefcase +briefcases +briefed +briefer +briefest +briefing +briefings +briefly +briefness +briefs +brier +brig +brigade +brigades +brigadier +brigadiers +brigantine +bright +brighten +brightened +brightener +brighteners +brightening +brightens +brighter +brightest +brightly +brightness +brigs +brilliance +brilliancy +brilliant +brilliantly +brim +brimful +brimmed +brimming +brimstone +brindle +brindled +brine +bring +bringer +bringers +bringing +brings +brink +brinkmanship +briny +brisk +brisker +briskly +briskness +bristle +bristled +bristles +bristling +britches +brittle +brittleness +broach +broached +broaches +broaching +broad +broadband +broadcast +broadcasted +broadcaster +broadcasters +broadcasting +broadcastings +broadcasts +broaden +broadened +broadener +broadeners +broadening +broadenings +broadens +broader +broadest +broadly +broadness +broadside +brocade +brocaded +broccoli +brochure +brochures +broil +broiled +broiler +broilers +broiling +broils +broke +broken +brokenly +brokenness +broker +brokerage +brokers +bromide +bromides +bromine +bronchi +bronchial +bronchiole +bronchioles +bronchitis +bronchus +bronze +bronzed +bronzes +brooch +brooches +brood +brooder +brooding +broods +brook +brooked +brooks +broom +brooms +broomstick +broomsticks +broth +brothel +brothels +brother +brotherhood +brotherliness +brotherly +brothers +brought +brow +browbeat +browbeaten +browbeating +browbeats +brown +browned +browner +brownest +brownie +brownies +browning +brownish +brownness +browns +brows +browse +browsing +bruise +bruised +bruises +bruising +brunch +brunches +brunette +brunt +brush +brushed +brushes +brushfire +brushfires +brushing +brushlike +brushy +brusque +brusquely +brutal +brutalities +brutality +brutalize +brutalized +brutalizes +brutalizing +brutally +brute +brutes +brutish +bubble +bubbled +bubbles +bubbling +bubbly +buck +buckboard +buckboards +bucked +bucket +buckets +bucking +buckle +buckled +buckler +buckles +buckling +bucks +buckshot +buckskin +buckskins +buckwheat +bucolic +bud +budded +buddies +budding +buddy +budge +budged +budges +budget +budgetary +budgeted +budgeter +budgeters +budgeting +budgets +budging +buds +buff +buffalo +buffaloes +buffer +buffered +buffering +buffers +buffet +buffeted +buffeting +buffetings +buffets +buffoon +buffoons +buffs +bug +bugaboo +bugeyed +bugged +bugger +buggers +buggies +bugging +buggy +bugle +bugled +bugler +bugles +bugling +bugs +build +builder +builders +building +buildings +builds +buildup +buildups +built +builtin +bulb +bulbs +bulge +bulged +bulging +bulk +bulked +bulkhead +bulkheads +bulks +bulky +bull +bulldog +bulldogs +bulldoze +bulldozed +bulldozer +bulldozes +bulldozing +bulled +bullet +bulletin +bulletins +bullets +bullfrog +bullied +bullies +bulling +bullion +bullish +bullock +bulls +bullseye +bully +bullying +bulwark +bum +bumble +bumblebee +bumblebees +bumbled +bumbler +bumblers +bumbles +bumbling +bummed +bumming +bump +bumped +bumper +bumpers +bumping +bumps +bumptious +bumptiously +bumptiousness +bums +bun +bunch +bunched +bunches +bunching +bundle +bundled +bundles +bundling +bungalow +bungalows +bungle +bungled +bungler +bunglers +bungles +bungling +bunion +bunions +bunk +bunker +bunkered +bunkers +bunkhouse +bunkhouses +bunkmate +bunkmates +bunks +bunnies +bunny +buns +bunt +bunted +bunter +bunters +bunting +bunts +buoy +buoyancy +buoyant +buoyed +buoys +burden +burdened +burdening +burdens +burdensome +bureau +bureaucracies +bureaucracy +bureaucrat +bureaucratic +bureaucrats +bureaus +burgeon +burgeoned +burgeoning +burgess +burgesses +burgher +burghers +burglar +burglaries +burglarize +burglarized +burglarizes +burglarizing +burglarproof +burglarproofed +burglarproofing +burglarproofs +burglars +burglary +burial +buried +buries +burl +burlesque +burlesques +burly +burn +burned +burner +burners +burning +burningly +burnings +burnish +burnished +burnishes +burnishing +burns +burnt +burntly +burntness +burp +burped +burping +burps +burrow +burrowed +burrower +burrowing +burrows +burrs +bursa +bursitis +burst +burstiness +bursting +bursts +bursty +bury +burying +bus +busboy +busboys +bused +buses +bush +bushel +bushels +bushes +bushing +bushwhack +bushwhacked +bushwhacking +bushwhacks +bushy +busied +busier +busiest +busily +business +businesses +businesslike +businessman +businessmen +busing +buss +bussed +busses +bussing +bust +bustard +bustards +busted +buster +bustle +bustling +busts +busy +but +butane +butcher +butchered +butchers +butchery +butler +butlers +butt +butte +butted +butter +butterball +buttercup +buttered +butterer +butterers +butterfat +butterflies +butterfly +buttering +buttermilk +butternut +butters +buttery +buttes +butting +buttock +buttocks +button +buttoned +buttonhole +buttonholes +buttoning +buttons +buttress +buttressed +buttresses +buttressing +butts +butyl +butyrate +buxom +buy +buyer +buyers +buying +buys +buzz +buzzards +buzzed +buzzer +buzzes +buzzing +buzzword +buzzwords +buzzy +by +bye +bygone +bylaw +bylaws +byline +bylines +bypass +bypassed +bypasses +bypassing +byproduct +byproducts +bystander +bystanders +byte +bytes +byway +byways +byword +bywords +cab +cabal +cabana +cabaret +cabbage +cabbages +cabdriver +cabin +cabinet +cabinets +cabins +cable +cabled +cables +cabling +caboose +cabs +cache +cached +caches +caching +cackle +cackled +cackler +cackles +cackling +cacti +cactus +cadaver +cadence +cadenced +cadres +cafe +cafes +cafeteria +cage +caged +cager +cagers +cages +caging +caiman +cairn +cajole +cajoled +cajoles +cajoling +cake +caked +cakes +caking +calamities +calamitous +calamity +calcify +calcium +calculate +calculated +calculates +calculating +calculation +calculations +calculative +calculator +calculators +calculi +calculus +caldera +calendar +calendars +calf +calfskin +caliber +calibers +calibrate +calibrated +calibrates +calibrating +calibration +calibrations +calico +caliph +caliphs +call +callable +called +caller +callers +calling +calliope +callous +calloused +callously +callousness +calls +callus +calm +calmed +calmer +calmest +calming +calmingly +calmly +calmness +calms +caloric +calorie +calories +calorimeter +calorimetric +calorimetry +calumny +calve +calves +calypso +cam +came +camel +camels +camera +cameraman +cameramen +cameras +camouflage +camouflaged +camouflages +camouflaging +camp +campaign +campaigned +campaigner +campaigners +campaigning +campaigns +camped +camper +campers +campfire +campground +camping +camps +campsite +campus +campuses +can +canal +canals +canaries +canary +cancel +canceled +canceling +cancellation +cancellations +cancels +cancer +cancerous +cancers +candid +candidacy +candidate +candidates +candidly +candidness +candied +candies +candle +candlelight +candler +candles +candlestick +candlesticks +candor +candy +cane +caner +canine +canister +canker +cankerworm +cannabis +canned +cannel +canner +canners +cannery +cannibal +cannibalize +cannibalized +cannibalizes +cannibalizing +cannibals +canning +cannister +cannisters +cannon +cannonball +cannons +cannot +canny +canoe +canoes +canon +canonic +canonical +canonicalization +canonicalize +canonicalized +canonicalizes +canonicalizing +canonically +canonicals +canons +canopy +cans +cant +cantaloupe +cantankerous +cantankerously +canteen +cantilever +canto +canton +cantons +cantor +cantors +canvas +canvases +canvass +canvassed +canvasser +canvassers +canvasses +canvassing +canyon +canyons +cap +capabilities +capability +capable +capably +capacious +capaciously +capaciousness +capacitance +capacitances +capacities +capacitive +capacitor +capacitors +capacity +cape +caper +capers +capes +capillary +capita +capital +capitalism +capitalist +capitalists +capitalization +capitalizations +capitalize +capitalized +capitalizer +capitalizers +capitalizes +capitalizing +capitally +capitals +capitol +capitols +capped +capping +caprice +capricious +capriciously +capriciousness +caps +capstan +capstone +capsule +captain +captained +captaining +captains +caption +captions +captivate +captivated +captivates +captivating +captivation +captive +captives +captivity +captor +captors +capture +captured +capturer +capturers +captures +capturing +capybara +car +caramel +caravan +caravans +caraway +carbohydrate +carbolic +carbon +carbonate +carbonates +carbonation +carbonic +carbonization +carbonize +carbonized +carbonizer +carbonizers +carbonizes +carbonizing +carbons +carborundum +carbuncle +carcass +carcasses +carcinogen +carcinogenic +carcinoma +card +cardboard +carder +cardiac +cardinal +cardinalities +cardinality +cardinally +cardinals +cardiology +cardiovascular +cards +care +cared +careen +career +careers +carefree +careful +carefully +carefulness +careless +carelessly +carelessness +cares +caress +caressed +caresser +caresses +caressing +caret +caretaker +cargo +cargoes +caribou +caricature +caring +carload +carnage +carnal +carnation +carnival +carnivals +carnivorous +carnivorously +carol +carols +carp +carpenter +carpenters +carpentry +carpet +carpeted +carpeting +carpets +carport +carriage +carriages +carried +carrier +carriers +carries +carrion +carrot +carrots +carry +carrying +carryover +carryovers +cars +cart +carted +cartel +carter +carters +cartilage +carting +cartographer +cartographic +cartography +carton +cartons +cartoon +cartoons +cartridge +cartridges +carts +cartwheel +carve +carved +carver +carves +carving +carvings +cascadable +cascade +cascaded +cascades +cascading +case +cased +casement +casements +cases +casework +cash +cashed +casher +cashers +cashes +cashew +cashier +cashiers +cashing +cashmere +casing +casings +casino +cask +casket +caskets +casks +casserole +casseroles +cassette +cassock +cast +caste +caster +casters +castes +castigate +casting +castle +castled +castles +castor +casts +casual +casually +casualness +casuals +casualties +casualty +cat +cataclysmic +catalog +cataloged +cataloger +cataloging +catalogs +catalyst +catalysts +catalytic +catapult +cataract +catastrophe +catastrophes +catastrophic +catch +catchable +catcher +catchers +catches +catching +categorical +categorically +categories +categorization +categorize +categorized +categorizer +categorizers +categorizes +categorizing +category +cater +catered +caterer +catering +caterpillar +caterpillars +caters +cathedral +cathedrals +catheter +catheters +cathode +cathodes +catlike +catnip +cats +catsup +cattail +cattle +cattleman +cattlemen +caucus +caught +cauldron +cauldrons +cauliflower +caulk +causal +causality +causally +causation +causations +cause +caused +causer +causes +causeway +causeways +causing +caustic +causticly +caustics +caution +cautioned +cautioner +cautioners +cautioning +cautionings +cautions +cautious +cautiously +cautiousness +cavalier +cavalierly +cavalierness +cavalry +cave +caveat +caveats +caved +caveman +cavemen +cavern +cavernous +caverns +caves +caviar +cavil +caving +cavities +cavity +caw +cawing +cease +ceased +ceaseless +ceaselessly +ceaselessness +ceases +ceasing +cedar +cede +ceded +ceding +ceiling +ceilings +celebrate +celebrated +celebrates +celebrating +celebration +celebrations +celebrities +celebrity +celerity +celery +celestial +celestially +cell +cellar +cellars +celled +cellist +cellists +cellophane +cells +cellular +cellulose +cement +cemented +cementing +cements +cemeteries +cemetery +censor +censored +censoring +censors +censorship +censure +censured +censurer +censures +census +censuses +cent +centaur +centenary +centennial +center +centered +centering +centerpiece +centerpieces +centers +centigrade +centimeter +centimeters +centipede +centipedes +central +centralism +centralist +centralization +centralize +centralized +centralizes +centralizing +centrally +centrifugal +centrifuge +centripetal +centrist +centroid +cents +centuries +century +ceramic +cereal +cereals +cerebellum +cerebral +ceremonial +ceremonially +ceremonialness +ceremonies +ceremony +certain +certainly +certainties +certainty +certifiable +certificate +certificates +certification +certifications +certified +certifier +certifiers +certifies +certify +certifying +cessation +cessations +chafe +chafer +chaff +chaffer +chaffing +chafing +chagrin +chain +chained +chaining +chains +chair +chaired +chairing +chairlady +chairman +chairmen +chairperson +chairpersons +chairs +chairwoman +chairwomen +chalice +chalices +chalk +chalked +chalking +chalks +challenge +challenged +challenger +challengers +challenges +challenging +chamber +chambered +chamberlain +chamberlains +chambermaid +chameleon +champagne +champion +championed +championing +champions +championship +championships +chance +chanced +chancellor +chancery +chances +chancing +chandelier +chandeliers +change +changeability +changeable +changeably +changed +changeover +changer +changers +changes +changing +channel +channeled +channeling +channelled +channeller +channellers +channelling +channels +chant +chanted +chanter +chanticleer +chanticleers +chanting +chants +chaos +chaotic +chap +chapel +chapels +chaperon +chaperone +chaperoned +chaplain +chaplains +chaps +chapter +chapters +char +character +characteristic +characteristically +characteristics +characterizable +characterization +characterizations +characterize +characterized +characterizer +characterizers +characterizes +characterizing +characters +charcoal +charcoaled +charge +chargeable +charged +charger +chargers +charges +charging +chariot +chariots +charisma +charismatic +charitable +charitableness +charities +charity +charm +charmed +charmer +charmers +charming +charmingly +charms +chars +chart +chartable +charted +charter +chartered +chartering +charters +charting +chartings +chartreuse +charts +chase +chased +chaser +chasers +chases +chasing +chasm +chasms +chassis +chaste +chastely +chasteness +chastise +chastised +chastiser +chastisers +chastises +chastising +chastity +chat +chateau +chateaus +chattel +chatter +chattered +chatterer +chattering +chatters +chatting +chatty +chauffeur +chauffeured +cheap +cheapen +cheapened +cheapening +cheapens +cheaper +cheapest +cheaply +cheapness +cheat +cheated +cheater +cheaters +cheating +cheats +check +checkable +checkbook +checkbooks +checked +checker +checkerboard +checkerboarded +checkerboarding +checkers +checking +checklist +checkout +checkpoint +checkpoints +checks +checksum +checksummed +checksumming +checksums +checkup +cheek +cheekbone +cheeks +cheeky +cheer +cheered +cheerer +cheerful +cheerfully +cheerfulness +cheerily +cheeriness +cheering +cheerleader +cheerless +cheerlessly +cheerlessness +cheers +cheery +cheese +cheesecloth +cheeses +cheesy +cheetah +chef +chefs +chemical +chemically +chemicals +chemise +chemist +chemistries +chemistry +chemists +cherish +cherished +cherishes +cherishing +cherries +cherry +cherub +cherubim +cherubs +chess +chest +chestnut +chestnuts +chests +chew +chewed +chewer +chewers +chewing +chews +chic +chicanery +chick +chickadee +chickadees +chicken +chickens +chicks +chide +chided +chides +chiding +chief +chiefly +chiefs +chieftain +chieftains +chiffon +child +childbirth +childhood +childish +childishly +childishness +childlike +children +chili +chill +chilled +chiller +chillers +chillier +chilliness +chilling +chillingly +chills +chilly +chime +chimera +chimes +chimney +chimneys +chimpanzee +chin +chink +chinked +chinks +chinned +chinner +chinners +chinning +chins +chintz +chip +chipmunk +chipmunks +chips +chiropractor +chirp +chirped +chirping +chirps +chisel +chiseled +chiseler +chisels +chit +chivalrous +chivalrously +chivalrousness +chivalry +chlorine +chloroform +chlorophyll +chloroplast +chloroplasts +chock +chocks +chocolate +chocolates +choice +choices +choicest +choir +choirs +choke +choked +choker +chokers +chokes +choking +cholera +choose +chooser +choosers +chooses +choosing +chop +chopped +chopper +choppers +chopping +choppy +chops +choral +chord +chordate +chorded +chording +chords +chore +choreograph +choreography +chores +choring +chortle +chorus +chorused +choruses +chose +chosen +chowder +christen +christened +christening +christens +chromatogram +chromatograph +chromatography +chrome +chromium +chromosphere +chronic +chronicle +chronicled +chronicler +chroniclers +chronicles +chronograph +chronography +chronological +chronologically +chronologies +chronology +chrysanthemum +chubbier +chubbiest +chubbiness +chubby +chuck +chuckle +chuckled +chuckles +chucks +chum +chunk +chunks +chunky +church +churches +churchgoer +churchgoing +churchly +churchman +churchmen +churchwoman +churchwomen +churchyard +churchyards +churn +churned +churning +churns +chute +chutes +chutzpah +cicada +cider +cigar +cigarette +cigarettes +cigars +cilia +cinder +cinders +cinema +cinematic +cinnamon +cipher +ciphers +ciphertext +ciphertexts +circa +circle +circled +circles +circlet +circling +circuit +circuitous +circuitously +circuitry +circuits +circulant +circular +circularity +circularly +circulate +circulated +circulates +circulating +circulation +circumcise +circumcision +circumference +circumflex +circumlocution +circumlocutions +circumnavigate +circumnavigated +circumnavigates +circumpolar +circumscribe +circumscribed +circumscribing +circumscription +circumspect +circumspection +circumspectly +circumstance +circumstanced +circumstances +circumstantial +circumstantially +circumvent +circumventable +circumvented +circumventing +circumvents +circus +circuses +cistern +cisterns +citadel +citadels +citation +citations +cite +cited +cites +cities +citing +citizen +citizens +citizenship +citrus +city +cityscape +citywide +civet +civic +civics +civil +civilian +civilians +civility +civilization +civilizations +civilize +civilized +civilizes +civilizing +civilly +clad +cladding +claim +claimable +claimant +claimants +claimed +claiming +claims +clairvoyant +clairvoyantly +clam +clamber +clambered +clambering +clambers +clamor +clamored +clamoring +clamorous +clamors +clamp +clamped +clamping +clamps +clams +clan +clandestine +clang +clanged +clanging +clangs +clank +clannish +clap +clapboard +clapping +claps +clarification +clarifications +clarified +clarifies +clarify +clarifying +clarinet +clarity +clash +clashed +clashes +clashing +clasp +clasped +clasping +clasps +class +classed +classes +classic +classical +classically +classics +classifiable +classification +classifications +classified +classifier +classifiers +classifies +classify +classifying +classmate +classmates +classroom +classrooms +classy +clatter +clattered +clattering +clause +clauses +claustrophobia +claustrophobic +claw +clawed +clawing +claws +clay +clays +clean +cleaned +cleaner +cleaners +cleanest +cleaning +cleanliness +cleanly +cleanness +cleans +cleanse +cleansed +cleanser +cleansers +cleanses +cleansing +cleanup +clear +clearance +clearances +cleared +clearer +clearest +clearing +clearings +clearly +clearness +clears +cleavage +cleave +cleaved +cleaver +cleavers +cleaves +cleaving +cleft +clefts +clemency +clement +clench +clenched +clenches +clergy +clergyman +clergymen +clerical +clerk +clerked +clerking +clerks +clever +cleverer +cleverest +cleverly +cleverness +cliche +cliches +click +clicked +clicking +clicks +client +clientele +clients +cliff +cliffs +climate +climates +climatic +climatically +climatology +climax +climaxed +climaxes +climb +climbed +climber +climbers +climbing +climbs +clime +climes +clinch +clinched +clincher +clinches +cling +clinging +clings +clinic +clinical +clinically +clinician +clinics +clink +clinked +clinker +clip +clipboard +clipped +clipper +clippers +clipping +clippings +clips +clique +cliques +clitoris +cloak +cloakroom +cloaks +clobber +clobbered +clobbering +clobbers +clock +clocked +clocker +clockers +clocking +clockings +clocks +clockwatcher +clockwise +clockwork +clod +clods +clog +clogged +clogging +clogs +cloister +cloisters +clone +cloned +clones +cloning +close +closed +closely +closeness +closenesses +closer +closers +closes +closest +closet +closeted +closets +closeup +closing +closure +closures +clot +cloth +clothe +clothed +clothes +clotheshorse +clothesline +clothing +clotting +cloture +cloud +cloudburst +clouded +cloudier +cloudiest +cloudiness +clouding +cloudless +clouds +cloudy +clout +clove +clover +cloves +clown +clowning +clowns +club +clubbed +clubbing +clubhouse +clubroom +clubs +cluck +clucked +clucking +clucks +clue +clues +clump +clumped +clumping +clumps +clumsily +clumsiness +clumsy +clung +cluster +clustered +clustering +clusterings +clusters +clutch +clutched +clutches +clutching +clutter +cluttered +cluttering +clutters +coach +coached +coacher +coaches +coaching +coachman +coachmen +coagulate +coal +coalesce +coalesced +coalesces +coalescing +coalition +coals +coarse +coarsely +coarsen +coarsened +coarseness +coarser +coarsest +coast +coastal +coasted +coaster +coasters +coasting +coastline +coasts +coat +coated +coating +coatings +coats +coattail +coauthor +coax +coaxed +coaxer +coaxes +coaxial +coaxing +cobalt +cobble +cobbler +cobblers +cobblestone +cobra +cobweb +cobwebs +coca +cocaine +cock +cocked +cocking +cockpit +cockroach +cocks +cocktail +cocktails +cocky +coco +cocoa +coconut +coconuts +cocoon +cocoons +cod +coddle +code +coded +codeine +coder +coders +codes +codeword +codewords +codfish +codicil +codification +codifications +codified +codifier +codifiers +codifies +codify +codifying +coding +codings +codpiece +coed +coeditor +coeducation +coefficient +coefficients +coequal +coerce +coerced +coerces +coercible +coercing +coercion +coercive +coexist +coexisted +coexistence +coexisting +coexists +cofactor +coffee +coffeecup +coffeepot +coffees +coffer +coffers +coffin +coffins +cog +cogent +cogently +cogitate +cogitated +cogitates +cogitating +cogitation +cognac +cognition +cognitive +cognitively +cognizance +cognizant +cogs +cohabitation +cohabitations +cohere +cohered +coherence +coherent +coherently +coheres +cohering +cohesion +cohesive +cohesively +cohesiveness +cohort +coil +coiled +coiling +coils +coin +coinage +coincide +coincided +coincidence +coincidences +coincident +coincidental +coincides +coinciding +coined +coiner +coining +coins +coke +cokes +colander +cold +colder +coldest +coldly +coldness +colds +colicky +coliform +coliseum +collaborate +collaborated +collaborates +collaborating +collaboration +collaborations +collaborative +collaborator +collaborators +collagen +collapse +collapsed +collapses +collapsible +collapsing +collar +collarbone +collared +collaring +collars +collate +collateral +colleague +colleagues +collect +collected +collectible +collecting +collection +collections +collective +collectively +collectives +collector +collectors +collects +college +colleges +collegian +collegiate +collide +collided +collides +colliding +collie +collies +collision +collisions +colloidal +colloquia +colloquial +colloquium +colloquy +collusion +colon +colonel +colonels +colonial +colonially +colonials +colonies +colonist +colonists +colonization +colonize +colonized +colonizer +colonizers +colonizes +colonizing +colons +colony +color +colored +colorer +colorers +colorful +coloring +colorings +colorless +colors +colossal +colt +colts +column +columnize +columnized +columnizes +columnizing +columns +comb +combat +combatant +combatants +combated +combating +combative +combats +combed +comber +combers +combination +combinational +combinations +combinator +combinatorial +combinatorially +combinatoric +combinatorics +combinators +combine +combined +combines +combing +combings +combining +combs +combustible +combustion +come +comeback +comedian +comedians +comedic +comedies +comedy +comeliness +comely +comer +comers +comes +comestible +comet +cometary +comets +comfort +comfortabilities +comfortability +comfortable +comfortably +comforted +comforter +comforters +comforting +comfortingly +comforts +comic +comical +comically +comics +coming +comings +comma +command +commandant +commandants +commanded +commandeer +commander +commanders +commanding +commandingly +commandment +commandments +commando +commands +commas +commemorate +commemorated +commemorates +commemorating +commemoration +commemorative +commence +commenced +commencement +commencements +commences +commencing +commend +commendation +commendations +commended +commending +commends +commensurate +comment +commentaries +commentary +commentator +commentators +commented +commenting +comments +commerce +commercial +commercially +commercialness +commercials +commission +commissioned +commissioner +commissioners +commissioning +commissions +commit +commitment +commitments +commits +committed +committee +committeeman +committeemen +committees +committeewoman +committeewomen +committing +commodities +commodity +commodore +commodores +common +commonalities +commonality +commoner +commoners +commonest +commonly +commonness +commonplace +commonplaces +commons +commonwealth +commonwealths +commotion +communal +communally +commune +communes +communicant +communicants +communicate +communicated +communicates +communicating +communication +communications +communicative +communicator +communicators +communion +communist +communists +communities +community +commutative +commutativity +commute +commuted +commuter +commuters +commutes +commuting +compact +compacted +compacter +compactest +compacting +compaction +compactly +compactness +compactor +compactors +compacts +companies +companion +companionable +companions +companionship +company +comparability +comparable +comparably +comparative +comparatively +comparatives +comparator +comparators +compare +compared +compares +comparing +comparison +comparisons +compartment +compartmentalize +compartmentalized +compartmentalizes +compartmentalizing +compartmented +compartments +compass +compassion +compassionate +compassionately +compatibilities +compatibility +compatible +compatibles +compatibly +compel +compelled +compelling +compellingly +compels +compendium +compensate +compensated +compensates +compensating +compensation +compensations +compensatory +compete +competed +competence +competency +competent +competently +competes +competing +competition +competitions +competitive +competitively +competitor +competitors +compilation +compilations +compile +compiled +compiler +compilers +compiles +compiling +complacency +complain +complained +complainer +complainers +complaining +complains +complaint +complaints +complement +complementary +complemented +complementer +complementers +complementing +complements +complete +completed +completely +completeness +completes +completing +completion +completions +complex +complexes +complexion +complexities +complexity +complexly +compliance +compliant +complicate +complicated +complicates +complicating +complication +complications +complicator +complicators +complicity +complied +compliment +complimentary +complimented +complimenter +complimenters +complimenting +compliments +comply +complying +component +componentry +components +componentwise +compose +composed +composedly +composer +composers +composes +composing +composite +composites +composition +compositional +compositions +compost +composure +compound +compounded +compounding +compounds +comprehend +comprehended +comprehending +comprehends +comprehensibility +comprehensible +comprehension +comprehensive +comprehensively +compress +compressed +compresses +compressible +compressing +compression +compressive +compressor +comprise +comprised +comprises +comprising +compromise +compromised +compromiser +compromisers +compromises +compromising +compromisingly +comptroller +comptrollers +compulsion +compulsions +compulsive +compulsory +compunction +computability +computable +computation +computational +computationally +computations +compute +computed +computer +computerize +computerized +computerizes +computerizing +computers +computes +computing +comrade +comradely +comrades +comradeship +con +concatenate +concatenated +concatenates +concatenating +concatenation +concatenations +concave +conceal +concealed +concealer +concealers +concealing +concealment +conceals +concede +conceded +concedes +conceding +conceit +conceited +conceits +conceivable +conceivably +conceive +conceived +conceives +conceiving +concentrate +concentrated +concentrates +concentrating +concentration +concentrations +concentrator +concentrators +concentric +concept +conception +conceptions +concepts +conceptual +conceptualization +conceptualizations +conceptualize +conceptualized +conceptualizes +conceptualizing +conceptually +concern +concerned +concernedly +concerning +concerns +concert +concerted +concertmaster +concerto +concerts +concession +concessions +conciliate +conciliatory +concise +concisely +conciseness +conclave +conclude +concluded +concludes +concluding +conclusion +conclusions +conclusive +conclusively +concoct +concomitant +concord +concordant +concourse +concrete +concretely +concreteness +concretes +concretion +concubine +concur +concurred +concurrence +concurrencies +concurrency +concurrent +concurrently +concurring +concurs +concussion +condemn +condemnation +condemnations +condemned +condemner +condemners +condemning +condemns +condensation +condense +condensed +condenser +condenses +condensing +condescend +condescending +condition +conditional +conditionally +conditionals +conditioned +conditioner +conditioners +conditioning +conditions +condom +condone +condoned +condones +condoning +conduce +conducive +conduciveness +conduct +conductance +conducted +conducting +conduction +conductive +conductivity +conductor +conductors +conducts +conduit +cone +cones +confectionery +confederacy +confederate +confederates +confederation +confederations +confer +conferee +conference +conferences +conferred +conferrer +conferrers +conferring +confers +confess +confessed +confesses +confessing +confession +confessions +confessor +confessors +confidant +confidants +confide +confided +confidence +confidences +confident +confidential +confidentiality +confidentially +confidently +confides +confiding +confidingly +configurable +configuration +configurations +configure +configured +configures +configuring +confine +confined +confinement +confinements +confiner +confines +confining +confirm +confirmation +confirmations +confirmatory +confirmed +confirming +confirms +confiscate +confiscated +confiscates +confiscating +confiscation +confiscations +conflagration +conflict +conflicted +conflicting +conflicts +confluent +confocal +conform +conformal +conformance +conformed +conforming +conformity +conforms +confound +confounded +confounding +confounds +confront +confrontation +confrontations +confronted +confronter +confronters +confronting +confronts +confuse +confused +confuser +confusers +confuses +confusing +confusingly +confusion +confusions +congenial +congenially +congenital +congest +congested +congestion +congestive +conglomerate +congratulate +congratulated +congratulation +congratulations +congratulatory +congregate +congregated +congregates +congregating +congregation +congregations +congress +congresses +congressional +congressionally +congressman +congressmen +congresswoman +congresswomen +congruence +congruent +conic +conifer +coniferous +conjecture +conjectured +conjectures +conjecturing +conjoined +conjugal +conjugate +conjunct +conjuncted +conjunction +conjunctions +conjunctive +conjunctively +conjuncts +conjuncture +conjure +conjured +conjurer +conjures +conjuring +connect +connected +connectedness +connecting +connection +connectionless +connections +connective +connectives +connectivity +connector +connectors +connects +connivance +connive +connoisseur +connoisseurs +connotation +connotative +connote +connoted +connotes +connoting +connubial +conquer +conquerable +conquered +conquerer +conquerers +conquering +conqueror +conquerors +conquers +conquest +conquests +conscience +consciences +conscientious +conscientiously +conscious +consciously +consciousness +conscript +conscription +consecrate +consecration +consecutive +consecutively +consensual +consensus +consent +consented +consenter +consenters +consenting +consents +consequence +consequences +consequent +consequential +consequentialities +consequentiality +consequently +consequents +conservation +conservationist +conservationists +conservations +conservatism +conservative +conservatively +conservatives +conservator +conserve +conserved +conserves +conserving +consider +considerable +considerably +considerate +considerately +consideration +considerations +considered +considering +considers +consign +consigned +consigning +consigns +consist +consisted +consistency +consistent +consistently +consisting +consists +consolable +consolation +consolations +console +consoled +consoler +consolers +consoles +consolidate +consolidated +consolidates +consolidating +consolidation +consoling +consolingly +consonant +consonants +consort +consorted +consorting +consortium +consorts +conspicuous +conspicuously +conspiracies +conspiracy +conspirator +conspirators +conspire +conspired +conspires +conspiring +constable +constables +constancy +constant +constantly +constants +constellation +constellations +consternation +constituencies +constituency +constituent +constituents +constitute +constituted +constitutes +constituting +constitution +constitutional +constitutionality +constitutionally +constitutions +constitutive +constrain +constrained +constraining +constrains +constraint +constraints +constrict +construct +constructed +constructibility +constructible +constructing +construction +constructions +constructive +constructively +constructor +constructors +constructs +construe +construed +construing +consul +consular +consulate +consulates +consuls +consult +consultant +consultants +consultation +consultations +consultative +consulted +consulting +consults +consumable +consume +consumed +consumer +consumers +consumes +consuming +consummate +consummated +consummately +consummation +consumption +consumptions +consumptive +consumptively +contact +contacted +contacting +contacts +contagion +contagious +contagiously +contain +containable +contained +container +containers +containing +containment +containments +contains +contaminate +contaminated +contaminates +contaminating +contamination +contemplate +contemplated +contemplates +contemplating +contemplation +contemplations +contemplative +contemporaries +contemporariness +contemporary +contempt +contemptible +contemptuous +contemptuously +contend +contended +contender +contenders +contending +contends +content +contented +contenting +contention +contentions +contently +contentment +contents +contest +contestable +contestant +contested +contester +contesters +contesting +contests +context +contexts +contextual +contextually +contiguity +contiguous +contiguously +continent +continental +continentally +continents +contingencies +contingency +contingent +contingents +continual +continually +continuance +continuances +continuation +continuations +continue +continued +continues +continuing +continuities +continuity +continuous +continuously +continuum +contortions +contour +contoured +contouring +contours +contraband +contraception +contraceptive +contract +contracted +contracting +contraction +contractions +contractor +contractors +contracts +contractual +contractually +contradict +contradicted +contradicting +contradiction +contradictions +contradictory +contradicts +contradistinction +contradistinctions +contrapositive +contrapositives +contraption +contraptions +contrariness +contrary +contrast +contrasted +contraster +contrasters +contrasting +contrastingly +contrasts +contribute +contributed +contributes +contributing +contribution +contributions +contributor +contributorily +contributors +contributory +contrite +contrition +contrivance +contrivances +contrive +contrived +contriver +contrives +contriving +control +controllability +controllable +controllably +controlled +controller +controllers +controlling +controls +controversial +controversies +controversy +controvertible +contumacious +contumacy +conundrum +conundrums +convalescent +convect +convene +convened +convenes +convenience +conveniences +convenient +conveniently +convening +convent +convention +conventional +conventionally +conventions +convents +converge +converged +convergence +convergent +converges +converging +conversant +conversantly +conversation +conversational +conversationally +conversations +converse +conversed +conversely +converses +conversing +conversion +conversions +convert +converted +converter +converters +convertibility +convertible +converting +converts +convex +convey +conveyance +conveyances +conveyed +conveyer +conveyers +conveying +conveyor +conveys +convict +convicted +convicting +conviction +convictions +convicts +convince +convinced +convincer +convincers +convinces +convincing +convincingly +convivial +convoke +convoluted +convolution +convoy +convoyed +convoying +convoys +convulse +convulsion +convulsions +coo +cooing +cook +cookbook +cooked +cookery +cookie +cookies +cooking +cooks +cooky +cool +cooled +cooler +coolers +coolest +coolie +coolies +cooling +coolly +coolness +cools +coon +coons +coop +cooped +cooper +cooperate +cooperated +cooperates +cooperating +cooperation +cooperations +cooperative +cooperatively +cooperatives +cooperator +cooperators +coopers +coops +coordinate +coordinated +coordinates +coordinating +coordination +coordinations +coordinator +coordinators +cop +cope +coped +copes +copied +copier +copiers +copies +coping +copings +copious +copiously +copiousness +coplanar +copper +copperhead +coppers +copra +coprocessor +cops +copse +copy +copying +copyright +copyrightable +copyrighted +copyrights +copywriter +coquette +coral +cord +corded +corder +cordial +cordiality +cordially +cords +core +cored +corer +corers +cores +coriander +coring +cork +corked +corker +corkers +corking +corks +corkscrew +cormorant +corn +cornea +corner +cornered +corners +cornerstone +cornerstones +cornet +cornfield +cornfields +corning +cornmeal +corns +cornstarch +cornucopia +corny +corollaries +corollary +coronaries +coronary +coronation +coroner +coronet +coronets +coroutine +coroutines +corporal +corporals +corporate +corporately +corporation +corporations +corps +corpse +corpses +corpulent +corpus +corpuscular +corral +correct +correctable +corrected +correcting +correction +corrections +corrective +correctively +correctives +correctly +correctness +corrector +corrects +correlate +correlated +correlates +correlating +correlation +correlations +correlative +correspond +corresponded +correspondence +correspondences +correspondent +correspondents +corresponding +correspondingly +corresponds +corridor +corridors +corrigenda +corrigendum +corrigible +corroborate +corroborated +corroborates +corroborating +corroboration +corroborations +corroborative +corrode +corrosion +corrosive +corrugate +corrupt +corrupted +corrupter +corruptible +corrupting +corruption +corruptions +corrupts +corset +cortex +cortical +cosine +cosines +cosmetic +cosmetics +cosmic +cosmology +cosmopolitan +cosmos +cosponsor +cost +costed +costing +costly +costs +costume +costumed +costumer +costumes +costuming +cosy +cot +cotangent +cotillion +cots +cottage +cottager +cottages +cotton +cottonmouth +cottons +cottonseed +cottonwood +cotyledon +cotyledons +couch +couched +couches +couching +cougar +cough +coughed +coughing +coughs +could +coulomb +council +councillor +councillors +councilman +councilmen +councils +councilwoman +councilwomen +counsel +counseled +counseling +counselled +counselling +counsellor +counsellors +counselor +counselors +counsels +count +countable +countably +counted +countenance +counter +counteract +counteracted +counteracting +counteractive +counterargument +counterattack +counterbalance +counterclockwise +countered +counterexample +counterexamples +counterfeit +counterfeited +counterfeiter +counterfeiting +counterflow +countering +counterintuitive +counterman +countermeasure +countermeasures +countermen +counterpart +counterparts +counterpoint +counterpointing +counterpoise +counterproductive +counterproposal +counterrevolution +counters +countersink +countersunk +countess +counties +counting +countless +countries +country +countryman +countrymen +countryside +countrywide +counts +county +countywide +couple +coupled +coupler +couplers +couples +coupling +couplings +coupon +coupons +courage +courageous +courageously +courier +couriers +course +coursed +courser +courses +coursing +court +courted +courteous +courteously +courter +courters +courtesan +courtesies +courtesy +courthouse +courthouses +courtier +courtiers +courting +courtly +courtroom +courtrooms +courts +courtship +courtyard +courtyards +cousin +cousins +covalent +covariant +cove +covenant +covenants +cover +coverable +coverage +covered +covering +coverings +coverlet +coverlets +covers +covert +covertly +coves +covet +coveted +coveting +covetous +covetousness +covets +cow +coward +cowardice +cowardly +cowboy +cowboys +cowed +cower +cowered +cowerer +cowerers +cowering +coweringly +cowers +cowherd +cowhide +cowing +cowl +cowlick +cowling +cowls +coworker +cows +cowslip +cowslips +coyote +coyotes +coypu +cozier +coziness +cozy +crab +crabapple +crabs +crack +cracked +cracker +crackers +cracking +crackle +crackled +crackles +crackling +crackpot +cracks +cradle +cradled +cradles +craft +crafted +crafter +craftiness +crafting +crafts +craftsman +craftsmen +craftspeople +craftsperson +crafty +crag +craggy +crags +cram +cramming +cramp +cramps +crams +cranberries +cranberry +crane +cranes +crania +cranium +crank +crankcase +cranked +crankier +crankiest +crankily +cranking +cranks +crankshaft +cranky +cranny +crash +crashed +crasher +crashers +crashes +crashing +crass +crate +crater +craters +crates +cravat +cravats +crave +craved +craven +craves +craving +crawl +crawled +crawler +crawlers +crawling +crawls +crayon +craze +crazed +crazes +crazier +craziest +crazily +craziness +crazing +crazy +creak +creaked +creaking +creaks +creaky +cream +creamed +creamer +creamers +creamery +creaming +creams +creamy +crease +creased +creases +creasing +create +created +creates +creating +creation +creations +creative +creatively +creativeness +creativity +creator +creators +creature +creatures +credence +credential +credibility +credible +credibly +credit +creditable +creditably +credited +crediting +creditor +creditors +credits +credulity +credulous +credulousness +creed +creeds +creek +creeks +creep +creeper +creepers +creeping +creeps +creepy +cremate +cremated +cremates +cremating +cremation +cremations +crematory +crepe +crept +crescent +crescents +crest +crested +crestfallen +crests +cretin +crevice +crevices +crew +crewcut +crewed +crewing +crews +crib +cribs +cricket +crickets +cried +crier +criers +cries +crime +crimes +criminal +criminally +criminals +criminate +crimson +crimsoning +cringe +cringed +cringes +cringing +cripple +crippled +cripples +crippling +crises +crisis +crisp +crisply +crispness +crisscross +criteria +criterion +critic +critical +critically +criticism +criticisms +criticize +criticized +criticizes +criticizing +critics +critique +critiques +critiquing +critter +croak +croaked +croaking +croaks +crochet +crochets +crock +crockery +crocks +crocodile +crocus +croft +crook +crooked +crooks +crop +cropped +cropper +croppers +cropping +crops +cross +crossable +crossbar +crossbars +crossed +crosser +crossers +crosses +crossing +crossings +crossly +crossover +crossovers +crosspoint +crossroad +crosstalk +crosswalk +crossword +crosswords +crotch +crotchety +crouch +crouched +crouching +crow +crowd +crowded +crowder +crowding +crowds +crowed +crowing +crown +crowned +crowning +crowns +crows +crucial +crucially +crucible +crucified +crucifies +crucifix +crucifixion +crucify +crucifying +crud +cruddy +crude +crudely +crudeness +cruder +crudest +cruel +crueler +cruelest +cruelly +cruelty +cruise +cruiser +cruisers +cruises +cruising +crumb +crumble +crumbled +crumbles +crumbling +crumbly +crumbs +crummy +crumple +crumpled +crumples +crumpling +crunch +crunched +crunches +crunchier +crunchiest +crunching +crunchy +crusade +crusader +crusaders +crusades +crusading +crush +crushable +crushed +crusher +crushers +crushes +crushing +crushingly +crust +crustacean +crustaceans +crusts +crutch +crutches +crux +cruxes +cry +crying +cryogenic +crypt +cryptanalysis +cryptanalyst +cryptanalytic +cryptic +cryptogram +cryptographer +cryptographic +cryptographically +cryptography +cryptologist +cryptology +crystal +crystalline +crystallize +crystallized +crystallizes +crystallizing +crystals +cub +cubbyhole +cube +cubed +cubes +cubic +cubs +cuckoo +cuckoos +cucumber +cucumbers +cuddle +cuddled +cuddly +cudgel +cudgels +cue +cued +cues +cuff +cufflink +cuffs +cuisine +culinary +cull +culled +culler +culling +culls +culminate +culminated +culminates +culminating +culmination +culpa +culpable +culprit +culprits +cult +cultivable +cultivate +cultivated +cultivates +cultivating +cultivation +cultivations +cultivator +cultivators +cults +cultural +culturally +culture +cultured +cultures +culturing +cumbersome +cumulative +cumulatively +cunnilingus +cunning +cunningly +cup +cupboard +cupboards +cupful +cupped +cupping +cups +curable +curably +curb +curbing +curbs +curd +curdle +cure +cured +cures +curfew +curfews +curing +curiosities +curiosity +curious +curiouser +curiousest +curiously +curl +curled +curler +curlers +curlicue +curling +curls +curly +currant +currants +currencies +currency +current +currently +currentness +currents +curricular +curriculum +curriculums +curried +curries +curry +currying +curs +curse +cursed +curses +cursing +cursive +cursor +cursorily +cursors +cursory +curt +curtail +curtailed +curtails +curtain +curtained +curtains +curtate +curtly +curtness +curtsies +curtsy +curvaceous +curvature +curve +curved +curves +curvilinear +curving +cushion +cushioned +cushioning +cushions +cusp +cusps +custard +custodial +custodian +custodians +custody +custom +customarily +customary +customer +customers +customizable +customization +customizations +customize +customized +customizer +customizers +customizes +customizing +customs +cut +cutaneous +cutback +cute +cutest +cutlass +cutlet +cutoff +cutout +cutover +cuts +cutter +cutters +cutthroat +cutting +cuttingly +cuttings +cuttlefish +cyanide +cybernetic +cybernetics +cyberspace +cycle +cycled +cycles +cyclic +cyclically +cycling +cycloid +cycloidal +cycloids +cyclone +cyclones +cyclotron +cyclotrons +cylinder +cylinders +cylindrical +cymbal +cymbals +cynic +cynical +cynically +cypress +cyst +cysts +cytology +cytoplasm +czar +dabble +dabbled +dabbler +dabbles +dabbling +dactyl +dactylic +dad +daddy +dads +daemon +daemons +daffodil +daffodils +dagger +dahlia +dailies +daily +daintily +daintiness +dainty +dairy +daisies +daisy +dale +dales +dam +damage +damaged +damager +damagers +damages +damaging +damask +dame +damming +damn +damnation +damned +damning +damns +damp +dampen +dampens +damper +damping +dampness +dams +damsel +damsels +dance +danced +dancer +dancers +dances +dancing +dandelion +dandelions +dandy +danger +dangerous +dangerously +dangers +dangle +dangled +dangles +dangling +dare +dared +darer +darers +dares +daresay +daring +daringly +dark +darken +darker +darkest +darkly +darkness +darkroom +darling +darlings +darn +darned +darner +darning +darns +dart +darted +darter +darting +darts +dash +dashboard +dashed +dasher +dashers +dashes +dashing +dashingly +data +database +databases +datagram +datagrams +date +dated +dateline +dater +dates +dating +dative +datum +daughter +daughterly +daughters +daunt +daunted +dauntless +dawn +dawned +dawning +dawns +day +daybreak +daydream +daydreaming +daydreams +daylight +daylights +days +daytime +daze +dazed +dazzle +dazzled +dazzler +dazzles +dazzling +dazzlingly +deacon +deacons +deactivate +dead +deaden +deadline +deadlines +deadlock +deadlocked +deadlocking +deadlocks +deadly +deadness +deadwood +deaf +deafen +deafer +deafest +deafness +deal +dealer +dealers +dealership +dealing +dealings +deallocate +deallocated +deallocating +deallocation +deallocations +deals +dealt +dean +deans +dear +dearer +dearest +dearly +dearness +dearth +dearths +death +deathbed +deathly +deaths +debacle +debar +debase +debatable +debate +debated +debater +debaters +debates +debating +debauch +debauchery +debilitate +debilitated +debilitates +debilitating +debility +debit +debited +debrief +debris +debt +debtor +debts +debug +debugged +debugger +debuggers +debugging +debugs +debunk +debutante +decade +decadence +decadent +decadently +decades +decal +decathlon +decay +decayed +decaying +decays +decease +deceased +deceases +deceasing +decedent +deceit +deceitful +deceitfully +deceitfulness +deceive +deceived +deceiver +deceivers +deceives +deceiving +decelerate +decelerated +decelerates +decelerating +deceleration +decencies +decency +decennial +decent +decently +decentralization +decentralized +deception +deceptions +deceptive +deceptively +decertify +decibel +decidability +decidable +decide +decided +decidedly +decides +deciding +deciduous +decimal +decimals +decimate +decimated +decimates +decimating +decimation +decipher +deciphered +decipherer +deciphering +deciphers +decision +decisions +decisive +decisively +decisiveness +deck +decked +decking +deckings +decks +declaration +declarations +declarative +declaratively +declaratives +declarator +declaratory +declare +declared +declarer +declarers +declares +declaring +declassify +declination +declinations +decline +declined +decliner +decliners +declines +declining +decode +decoded +decoder +decoders +decodes +decoding +decodings +decolletage +decollimate +decompile +decomposability +decomposable +decompose +decomposed +decomposes +decomposing +decomposition +decompositions +decompress +decompression +decorate +decorated +decorates +decorating +decoration +decorations +decorative +decorum +decouple +decoupled +decouples +decoupling +decoy +decoys +decrease +decreased +decreases +decreasing +decreasingly +decree +decreed +decreeing +decrees +decrement +decremented +decrementing +decrements +decrypt +decrypted +decrypting +decryption +decrypts +dedicate +dedicated +dedicates +dedicating +dedication +deduce +deduced +deducer +deduces +deducible +deducing +deduct +deducted +deductible +deducting +deduction +deductions +deductive +deed +deeded +deeding +deeds +deem +deemed +deeming +deemphasize +deemphasized +deemphasizes +deemphasizing +deems +deep +deepen +deepened +deepening +deepens +deeper +deepest +deeply +deeps +deer +deface +default +defaulted +defaulter +defaulting +defaults +defeat +defeated +defeating +defeats +defecate +defect +defected +defecting +defection +defections +defective +defects +defend +defendant +defendants +defended +defender +defenders +defending +defends +defenestrate +defenestrated +defenestrates +defenestrating +defenestration +defense +defenseless +defenses +defensible +defensive +defer +deference +deferment +deferments +deferrable +deferred +deferrer +deferrers +deferring +defers +defiance +defiant +defiantly +deficiencies +deficiency +deficient +deficit +deficits +defied +defies +defile +defiling +definable +define +defined +definer +defines +defining +definite +definitely +definiteness +definition +definitional +definitions +definitive +deflate +deflater +deflect +defocus +deforest +deforestation +deform +deformation +deformations +deformed +deformities +deformity +defraud +defray +defrost +deftly +defunct +defy +defying +degeneracy +degenerate +degenerated +degenerates +degenerating +degeneration +degenerative +degradable +degradation +degradations +degrade +degraded +degrades +degrading +degree +degrees +dehumidify +dehydrate +deify +deign +deigned +deigning +deigns +deities +deity +dejected +dejectedly +delay +delayed +delaying +delays +delegate +delegated +delegates +delegating +delegation +delegations +delete +deleted +deleter +deleterious +deletes +deleting +deletion +deletions +deliberate +deliberated +deliberately +deliberateness +deliberates +deliberating +deliberation +deliberations +deliberative +deliberator +deliberators +delicacies +delicacy +delicate +delicately +delicatessen +delicious +deliciously +delight +delighted +delightedly +delightful +delightfully +delighting +delights +delimit +delimitation +delimited +delimiter +delimiters +delimiting +delimits +delineament +delineate +delineated +delineates +delineating +delineation +delinquency +delinquent +delirious +deliriously +delirium +deliver +deliverable +deliverables +deliverance +delivered +deliverer +deliverers +deliveries +delivering +delivers +delivery +dell +dells +delta +deltas +delude +deluded +deludes +deluding +deluge +deluged +deluges +delusion +delusions +deluxe +delve +delves +delving +demagnify +demagogue +demand +demanded +demander +demanding +demandingly +demands +demarcate +demeanor +demented +demerit +demigod +demise +demo +democracies +democracy +democrat +democratic +democratically +democrats +demodulate +demodulator +demographic +demolish +demolished +demolishes +demolition +demon +demoniac +demonic +demons +demonstrable +demonstrate +demonstrated +demonstrates +demonstrating +demonstration +demonstrations +demonstrative +demonstratively +demonstrator +demonstrators +demoralize +demoralized +demoralizes +demoralizing +demote +demountable +demultiplex +demultiplexed +demultiplexer +demultiplexers +demultiplexing +demur +demythologize +den +denature +deniable +denial +denials +denied +denier +denies +denigrate +denigrated +denigrates +denigrating +denizen +denominate +denomination +denominations +denominator +denominators +denotable +denotation +denotational +denotationally +denotations +denotative +denote +denoted +denotes +denoting +denounce +denounced +denounces +denouncing +dens +dense +densely +denseness +denser +densest +densities +density +dent +dental +dentally +dented +denting +dentist +dentistry +dentists +dents +denture +denude +denumerable +denunciate +denunciation +deny +denying +deodorant +deoxyribonucleic +depart +departed +departing +department +departmental +departments +departs +departure +departures +depend +dependability +dependable +dependably +depended +dependence +dependencies +dependency +dependent +dependently +dependents +depending +depends +depict +depicted +depicting +depicts +deplete +depleted +depletes +depleting +depletion +depletions +deplorable +deplore +deplored +deplores +deploring +deploy +deployed +deploying +deployment +deployments +deploys +deport +deportation +deportee +deportment +depose +deposed +deposes +deposit +depositary +deposited +depositing +deposition +depositions +depositor +depositors +depository +deposits +depot +depots +deprave +depraved +depravity +deprecate +depreciate +depreciated +depreciates +depreciation +depress +depressed +depresses +depressing +depression +depressions +deprivation +deprivations +deprive +deprived +deprives +depriving +depth +depths +deputies +deputy +dequeue +dequeued +dequeues +dequeuing +derail +derailed +derailing +derails +derby +dereference +deregulate +deregulated +deride +derision +derivable +derivation +derivations +derivative +derivatives +derive +derived +derives +deriving +derogatory +derrick +derriere +dervish +descend +descendant +descendants +descended +descendent +descender +descenders +descending +descends +descent +descents +describable +describe +described +describer +describes +describing +description +descriptions +descriptive +descriptively +descriptives +descriptor +descriptors +descry +desecrate +desegregate +desert +deserted +deserter +deserters +deserting +desertion +desertions +deserts +deserve +deserved +deserves +deserving +deservingly +deservings +desiderata +desideratum +design +designate +designated +designates +designating +designation +designations +designator +designators +designed +designer +designers +designing +designs +desirability +desirable +desirably +desire +desired +desires +desiring +desirous +desist +desk +desks +desktop +desolate +desolately +desolation +desolations +despair +despaired +despairing +despairingly +despairs +despatch +despatched +desperado +desperate +desperately +desperation +despicable +despise +despised +despises +despising +despite +despoil +despondent +despot +despotic +despotism +despots +dessert +desserts +dessicate +destabilize +destination +destinations +destine +destined +destinies +destiny +destitute +destitution +destroy +destroyed +destroyer +destroyers +destroying +destroys +destruct +destruction +destructions +destructive +destructively +destructiveness +destructor +destuff +destuffing +destuffs +desuetude +desultory +desynchronize +detach +detached +detacher +detaches +detaching +detachment +detachments +detail +detailed +detailing +details +detain +detained +detaining +detains +detect +detectable +detectably +detected +detecting +detection +detections +detective +detectives +detector +detectors +detects +detente +detention +deter +detergent +deteriorate +deteriorated +deteriorates +deteriorating +deterioration +determinable +determinacy +determinant +determinants +determinate +determinately +determination +determinations +determinative +determine +determined +determiner +determiners +determines +determining +determinism +deterministic +deterministically +deterred +deterrent +deterring +detest +detestable +detested +detour +detract +detractor +detractors +detracts +detriment +detrimental +deuce +deus +deuterium +devastate +devastated +devastates +devastating +devastation +develop +developed +developer +developers +developing +development +developmental +developments +develops +deviant +deviants +deviate +deviated +deviates +deviating +deviation +deviations +device +devices +devil +devilish +devilishly +devils +devious +devise +devised +devises +devising +devisings +devoid +devolve +devote +devoted +devotedly +devotee +devotees +devotes +devoting +devotion +devotions +devour +devoured +devourer +devours +devout +devoutly +devoutness +dew +dewdrop +dewdrops +dewy +dexterity +diabetes +diabetic +diabolic +diachronic +diacritical +diadem +diagnosable +diagnose +diagnosed +diagnoses +diagnosing +diagnosis +diagnostic +diagnostician +diagnostics +diagonal +diagonally +diagonals +diagram +diagrammable +diagrammatic +diagrammatically +diagrammed +diagrammer +diagrammers +diagramming +diagrams +dial +dialect +dialectic +dialects +dialed +dialer +dialers +dialing +dialog +dialogs +dialogue +dialogues +dials +dialup +dialysis +diamagnetic +diameter +diameters +diametric +diametrically +diamond +diamonds +diaper +diapers +diaphragm +diaphragms +diaries +diarrhea +diary +diatribe +diatribes +dibble +dice +dichotomize +dichotomy +dickens +dicky +dictate +dictated +dictates +dictating +dictation +dictations +dictator +dictatorial +dictators +dictatorship +diction +dictionaries +dictionary +dictum +dictums +did +didactic +diddle +die +died +diehard +dielectric +dielectrics +diem +dies +diesel +diet +dietary +dieter +dieters +dietetic +dietician +dietitian +dietitians +diets +differ +differed +difference +differences +different +differentiable +differential +differentials +differentiate +differentiated +differentiates +differentiating +differentiation +differentiations +differentiators +differently +differer +differers +differing +differs +difficult +difficulties +difficultly +difficulty +diffract +diffuse +diffused +diffusely +diffuser +diffusers +diffuses +diffusible +diffusing +diffusion +diffusions +diffusive +dig +digest +digested +digestible +digesting +digestion +digestive +digests +digger +diggers +digging +diggings +digit +digital +digitalis +digitally +digitization +digitize +digitized +digitizes +digitizing +digits +dignified +dignify +dignitary +dignities +dignity +digram +digress +digressed +digresses +digressing +digression +digressions +digressive +digs +dihedral +dike +dikes +dilapidate +dilatation +dilate +dilated +dilates +dilating +dilation +dildo +dilemma +dilemmas +diligence +diligent +diligently +dill +dilogarithm +dilute +diluted +dilutes +diluting +dilution +dim +dime +dimension +dimensional +dimensionality +dimensionally +dimensioned +dimensioning +dimensions +dimes +diminish +diminished +diminishes +diminishing +diminution +diminutive +dimly +dimmed +dimmer +dimmers +dimmest +dimming +dimness +dimple +dims +din +dine +dined +diner +diners +dines +ding +dinghy +dinginess +dingo +dingy +dining +dinner +dinners +dinnertime +dinnerware +dinosaur +dint +diode +diodes +diopter +diorama +dioxide +dip +diphtheria +diphthong +diploma +diplomacy +diplomas +diplomat +diplomatic +diplomats +dipole +dipped +dipper +dippers +dipping +dippings +dips +dire +direct +directed +directing +direction +directional +directionality +directionally +directions +directive +directives +directly +directness +director +directorate +directories +directors +directory +directrices +directrix +directs +dirge +dirges +dirt +dirtier +dirtiest +dirtily +dirtiness +dirts +dirty +disabilities +disability +disable +disabled +disabler +disablers +disables +disabling +disadvantage +disadvantageous +disadvantages +disaffected +disaffection +disagree +disagreeable +disagreed +disagreeing +disagreement +disagreements +disagrees +disallow +disallowed +disallowing +disallows +disambiguate +disambiguated +disambiguates +disambiguating +disambiguation +disambiguations +disappear +disappearance +disappearances +disappeared +disappearing +disappears +disappoint +disappointed +disappointing +disappointment +disappointments +disapproval +disapprove +disapproved +disapproves +disarm +disarmament +disarmed +disarming +disarms +disassemble +disassembled +disassembles +disassembling +disassembly +disaster +disasters +disastrous +disastrously +disband +disbanded +disbanding +disbands +disburse +disbursed +disbursement +disbursements +disburses +disbursing +disc +discard +discarded +discarding +discards +discern +discerned +discernibility +discernible +discernibly +discerning +discerningly +discernment +discerns +discharge +discharged +discharges +discharging +disciple +disciples +disciplinary +discipline +disciplined +disciplines +disciplining +disclaim +disclaimed +disclaimer +disclaims +disclose +disclosed +discloses +disclosing +disclosure +disclosures +discomfort +disconcert +disconcerting +disconcertingly +disconnect +disconnected +disconnecting +disconnection +disconnects +discontent +discontented +discontinuance +discontinue +discontinued +discontinues +discontinuities +discontinuity +discontinuous +discord +discordant +discount +discounted +discounting +discounts +discourage +discouraged +discouragement +discourages +discouraging +discourse +discourses +discover +discovered +discoverer +discoverers +discoveries +discovering +discovers +discovery +discredit +discredited +discreet +discreetly +discrepancies +discrepancy +discrete +discretely +discreteness +discretion +discretionary +discriminant +discriminate +discriminated +discriminates +discriminating +discrimination +discriminatory +discs +discuss +discussant +discussed +discusses +discussing +discussion +discussions +disdain +disdaining +disdains +disease +diseased +diseases +disembowel +disengage +disengaged +disengages +disengaging +disentangle +disentangling +disfigure +disfigured +disfigures +disfiguring +disgorge +disgrace +disgraced +disgraceful +disgracefully +disgraces +disgruntle +disgruntled +disguise +disguised +disguises +disgust +disgusted +disgustedly +disgustful +disgusting +disgustingly +disgusts +dish +dishearten +disheartening +dished +dishes +dishevel +dishing +dishonest +dishonestly +dishonesty +dishonor +dishonorable +dishonored +dishonoring +dishonors +dishwasher +dishwashers +dishwashing +dishwater +disillusion +disillusioned +disillusioning +disillusionment +disillusionments +disinclined +disingenuous +disinterested +disinterestedness +disjoint +disjointed +disjointly +disjointness +disjunct +disjunction +disjunctions +disjunctive +disjunctively +disjuncts +disk +diskette +diskettes +disks +dislike +disliked +dislikes +disliking +dislocate +dislocated +dislocates +dislocating +dislocation +dislocations +dislodge +dislodged +dismal +dismally +dismay +dismayed +dismaying +dismember +dismembered +dismemberment +dismembers +dismiss +dismissal +dismissals +dismissed +dismisser +dismissers +dismisses +dismissing +dismount +dismounted +dismounting +dismounts +disobedience +disobedient +disobey +disobeyed +disobeying +disobeys +disorder +disordered +disorderly +disorders +disorganized +disown +disowned +disowning +disowns +disparage +disparate +disparities +disparity +dispassionate +dispatch +dispatched +dispatcher +dispatchers +dispatches +dispatching +dispel +dispell +dispelled +dispelling +dispels +dispensary +dispensation +dispense +dispensed +dispenser +dispensers +dispenses +dispensing +dispersal +disperse +dispersed +disperses +dispersing +dispersion +dispersions +displace +displaced +displacement +displacements +displaces +displacing +display +displayable +displayed +displayer +displaying +displays +displease +displeased +displeases +displeasing +displeasure +disposable +disposal +disposals +dispose +disposed +disposer +disposes +disposing +disposition +dispositions +dispossessed +disproportionate +disprove +disproved +disproves +disproving +dispute +disputed +disputer +disputers +disputes +disputing +disqualification +disqualified +disqualifies +disqualify +disqualifying +disquiet +disquieting +disregard +disregarded +disregarding +disregards +disrespectful +disrupt +disrupted +disrupting +disruption +disruptions +disruptive +disrupts +dissatisfaction +dissatisfactions +dissatisfactory +dissatisfied +dissect +dissects +dissemble +disseminate +disseminated +disseminates +disseminating +dissemination +dissension +dissensions +dissent +dissented +dissenter +dissenters +dissenting +dissents +dissertation +dissertations +disservice +dissident +dissidents +dissimilar +dissimilarities +dissimilarity +dissipate +dissipated +dissipates +dissipating +dissipation +dissociate +dissociated +dissociates +dissociating +dissociation +dissolution +dissolutions +dissolve +dissolved +dissolves +dissolving +dissonant +dissuade +distaff +distal +distally +distance +distances +distant +distantly +distaste +distasteful +distastefully +distastes +distemper +distempered +distempers +distill +distillation +distilled +distiller +distillers +distillery +distilling +distills +distinct +distinction +distinctions +distinctive +distinctively +distinctiveness +distinctly +distinctness +distinguish +distinguishable +distinguished +distinguishes +distinguishing +distort +distorted +distorting +distortion +distortions +distorts +distract +distracted +distracting +distraction +distractions +distracts +distraught +distress +distressed +distresses +distressing +distribute +distributed +distributes +distributing +distribution +distributional +distributions +distributive +distributivity +distributor +distributors +district +districts +distrust +distrusted +disturb +disturbance +disturbances +disturbed +disturber +disturbing +disturbingly +disturbs +disuse +ditch +ditches +dither +ditto +ditty +diurnal +divan +divans +dive +dived +diver +diverge +diverged +divergence +divergences +divergent +diverges +diverging +divers +diverse +diversely +diversification +diversified +diversifies +diversify +diversifying +diversion +diversionary +diversions +diversities +diversity +divert +diverted +diverting +diverts +dives +divest +divested +divesting +divestiture +divests +divide +divided +dividend +dividends +divider +dividers +divides +dividing +divine +divinely +diviner +diving +divining +divinities +divinity +divisibility +divisible +division +divisional +divisions +divisive +divisor +divisors +divorce +divorced +divorcee +divulge +divulged +divulges +divulging +dizziness +dizzy +do +docile +dock +docked +docket +docks +dockside +dockyard +doctor +doctoral +doctorate +doctorates +doctored +doctors +doctrinaire +doctrinal +doctrine +doctrines +document +documentaries +documentary +documentation +documentations +documented +documenter +documenters +documenting +documents +dodecahedra +dodecahedral +dodecahedron +dodge +dodged +dodger +dodgers +dodging +doe +doer +doers +does +dog +dogged +doggedly +doggedness +dogging +doghouse +dogma +dogmas +dogmatic +dogmatism +dogs +doing +doings +doldrum +dole +doled +doleful +dolefully +doles +doll +dollar +dollars +dollies +dolls +dolly +dolphin +dolphins +domain +domains +dome +domed +domes +domestic +domestically +domesticate +domesticated +domesticates +domesticating +domestication +domicile +dominance +dominant +dominantly +dominate +dominated +dominates +dominating +domination +domineer +domineering +dominion +domino +don +donate +donated +donates +donating +donation +done +donkey +donkeys +donnybrook +donor +dons +doodle +doom +doomed +dooming +dooms +doomsday +door +doorbell +doorkeeper +doorman +doormen +doors +doorstep +doorsteps +doorway +doorways +dope +doped +doper +dopers +dopes +doping +dormant +dormitories +dormitory +dosage +dose +dosed +doses +dossier +dossiers +dot +dote +doted +dotes +doting +dotingly +dots +dotted +dotting +double +doubled +doubleheader +doubler +doublers +doubles +doublet +doubleton +doublets +doubling +doubloon +doubly +doubt +doubtable +doubted +doubter +doubters +doubtful +doubtfully +doubting +doubtless +doubtlessly +doubts +dough +doughnut +doughnuts +dove +dover +doves +dovetail +dowager +dowel +down +downcast +downed +downers +downfall +downfallen +downgrade +downhill +downlink +downlinks +download +downloaded +downloading +downloads +downplay +downplayed +downplaying +downplays +downpour +downright +downside +downstairs +downstream +downtown +downtowns +downtrodden +downturn +downward +downwards +downy +dowry +doze +dozed +dozen +dozens +dozenth +dozes +dozing +drab +draft +drafted +draftee +drafter +drafters +drafting +drafts +draftsman +draftsmen +drafty +drag +dragged +dragging +dragnet +dragon +dragonfly +dragonhead +dragons +dragoon +dragooned +dragoons +drags +drain +drainage +drained +drainer +draining +drains +drake +dram +drama +dramas +dramatic +dramatically +dramatics +dramatist +dramatists +drank +drape +draped +draper +draperies +drapers +drapery +drapes +drastic +drastically +draught +draughts +draw +drawback +drawbacks +drawbridge +drawbridges +drawer +drawers +drawing +drawings +drawl +drawled +drawling +drawls +drawn +drawnly +drawnness +draws +dread +dreaded +dreadful +dreadfully +dreading +dreadnought +dreads +dream +dreamboat +dreamed +dreamer +dreamers +dreamily +dreaming +dreamlike +dreams +dreamt +dreamy +dreariness +dreary +dredge +dregs +drench +drenched +drenches +drenching +dress +dressed +dresser +dressers +dresses +dressing +dressings +dressmaker +dressmakers +drew +dried +drier +driers +dries +driest +drift +drifted +drifter +drifters +drifting +drifts +drill +drilled +driller +drilling +drills +drily +drink +drinkable +drinker +drinkers +drinking +drinks +drip +dripping +drippy +drips +drive +driven +driver +drivers +drives +driveway +driveways +driving +drizzle +drizzly +droll +dromedary +drone +drones +drool +droop +drooped +drooping +droops +droopy +drop +droplet +dropout +dropped +dropper +droppers +dropping +droppings +drops +drosophila +drought +droughts +drove +drover +drovers +droves +drown +drowned +drowning +drownings +drowns +drowsiness +drowsy +drubbing +drudge +drudgery +drug +druggist +druggists +drugs +drugstore +drum +drumhead +drummed +drummer +drummers +drumming +drums +drunk +drunkard +drunkards +drunken +drunkenness +drunker +drunkly +drunks +dry +drying +dryly +dual +dualism +dualities +duality +dub +dubbed +dubious +dubiously +dubiousness +dubs +duchess +duchesses +duchy +duck +ducked +ducking +duckling +ducks +duct +ducts +dud +due +duel +dueling +duels +dues +duet +dug +duke +dukes +dull +dulled +duller +dullest +dulling +dullness +dulls +dully +duly +dumb +dumbbell +dumbbells +dumber +dumbest +dumbly +dumbness +dummies +dummy +dump +dumped +dumper +dumping +dumps +dunce +dunces +dune +dunes +dung +dungeon +dungeons +dunk +dupe +duplex +duplicable +duplicate +duplicated +duplicates +duplicating +duplication +duplications +duplicator +duplicators +duplicity +durabilities +durability +durable +durably +duration +durations +duress +during +dusk +duskiness +dusky +dust +dustbin +dusted +duster +dusters +dustier +dustiest +dusting +dusts +dusty +dutchess +duties +dutiful +dutifully +dutifulness +duty +dwarf +dwarfed +dwarfs +dwarves +dwell +dwelled +dweller +dwellers +dwelling +dwellings +dwells +dwelt +dwindle +dwindled +dwindling +dyad +dyadic +dye +dyed +dyeing +dyer +dyers +dyes +dying +dynamic +dynamically +dynamics +dynamism +dynamite +dynamited +dynamites +dynamiting +dynamo +dynastic +dynasties +dynasty +dyne +dysentery +dyspeptic +dystrophy +each +eager +eagerly +eagerness +eagle +eagles +ear +eardrum +eared +earl +earlier +earliest +earliness +earls +early +earmark +earmarked +earmarking +earmarkings +earmarks +earn +earned +earner +earners +earnest +earnestly +earnestness +earning +earnings +earns +earphone +earring +earrings +ears +earsplitting +earth +earthen +earthenware +earthliness +earthling +earthly +earthmover +earthquake +earthquakes +earths +earthworm +earthworms +earthy +ease +eased +easel +easement +easements +eases +easier +easiest +easily +easiness +easing +east +eastbound +easter +eastern +easterner +easterners +easternmost +eastward +eastwards +easy +easygoing +eat +eaten +eater +eaters +eating +eatings +eats +eaves +eavesdrop +eavesdropped +eavesdropper +eavesdroppers +eavesdropping +eavesdrops +ebb +ebbing +ebbs +ebony +eccentric +eccentricities +eccentricity +eccentrics +ecclesiastical +echelon +echo +echoed +echoes +echoing +eclectic +eclipse +eclipsed +eclipses +eclipsing +ecliptic +ecology +econometric +economic +economical +economically +economics +economies +economist +economists +economize +economized +economizer +economizers +economizes +economizing +economy +ecosystem +ecstasy +ecstatic +eddies +eddy +edge +edged +edges +edging +edible +edict +edicts +edifice +edifices +edit +edited +editing +edition +editions +editor +editorial +editorially +editorials +editors +edits +educable +educate +educated +educates +educating +education +educational +educationally +educations +educator +educators +eel +eelgrass +eels +eerie +eerily +effect +effected +effecting +effective +effectively +effectiveness +effector +effectors +effects +effectually +effectuate +effeminate +efficacy +efficiencies +efficiency +efficient +efficiently +effigy +effort +effortless +effortlessly +effortlessness +efforts +egalitarian +egg +egged +egghead +egging +eggplant +eggs +eggshell +ego +egocentric +egos +egotism +egotist +eigenfunction +eigenstate +eigenvalue +eigenvalues +eigenvector +eight +eighteen +eighteens +eighteenth +eightfold +eighth +eighthes +eighties +eightieth +eights +eighty +either +ejaculate +ejaculated +ejaculates +ejaculating +ejaculation +ejaculations +eject +ejected +ejecting +ejects +eke +eked +ekes +elaborate +elaborated +elaborately +elaborateness +elaborates +elaborating +elaboration +elaborations +elaborators +elapse +elapsed +elapses +elapsing +elastic +elastically +elasticity +elbow +elbowing +elbows +elder +elderly +elders +eldest +elect +elected +electing +election +elections +elective +electives +elector +electoral +electorate +electors +electric +electrical +electrically +electricalness +electrician +electricity +electrification +electrify +electrifying +electro +electrocardiogram +electrocardiograph +electrocute +electrocuted +electrocutes +electrocuting +electrocution +electrocutions +electrode +electrodes +electroencephalogram +electroencephalograph +electroencephalography +electrolysis +electrolyte +electrolytes +electrolytic +electromagnetic +electromechanical +electron +electronic +electronically +electronics +electrons +electrophoresis +electrophorus +elects +elegance +elegant +elegantly +elegy +element +elemental +elementals +elementary +elements +elephant +elephants +elevate +elevated +elevates +elevation +elevator +elevators +eleven +elevens +eleventh +elf +elicit +elicited +eliciting +elicits +elide +eligibility +eligible +eliminate +eliminated +eliminates +eliminating +elimination +eliminations +eliminator +eliminators +elision +elite +elitist +elk +elks +ellipse +ellipses +ellipsis +ellipsoid +ellipsoidal +ellipsoids +elliptic +elliptical +elliptically +elm +elms +elope +eloquence +eloquent +eloquently +else +elsewhere +elucidate +elucidated +elucidates +elucidating +elucidation +elude +eluded +eludes +eluding +elusive +elusively +elusiveness +elves +em +emaciate +emaciated +emacs +emanate +emanating +emancipate +emancipation +emasculate +embalm +embargo +embargoes +embark +embarked +embarks +embarrass +embarrassed +embarrasses +embarrassing +embarrassment +embassies +embassy +embed +embedded +embedding +embeds +embellish +embellished +embellishes +embellishing +embellishment +embellishments +ember +embezzle +emblem +embodied +embodies +embodiment +embodiments +embody +embodying +embolden +embrace +embraced +embraces +embracing +embroider +embroidered +embroideries +embroiders +embroidery +embroil +embryo +embryology +embryos +emerald +emeralds +emerge +emerged +emergence +emergencies +emergency +emergent +emerges +emerging +emeritus +emigrant +emigrants +emigrate +emigrated +emigrates +emigrating +emigration +eminence +eminent +eminently +emissary +emission +emit +emits +emitted +emitter +emitting +emotion +emotional +emotionally +emotions +empathy +emperor +emperors +emphases +emphasis +emphasize +emphasized +emphasizes +emphasizing +emphatic +emphatically +empire +empires +empirical +empirically +empiricist +empiricists +employ +employable +employed +employee +employees +employer +employers +employing +employment +employments +employs +emporium +empower +empowered +empowering +empowers +empress +emptied +emptier +empties +emptiest +emptily +emptiness +empty +emptying +emulate +emulated +emulates +emulating +emulation +emulations +emulator +emulators +en +enable +enabled +enabler +enablers +enables +enabling +enact +enacted +enacting +enactment +enacts +enamel +enameled +enameling +enamels +encamp +encamped +encamping +encamps +encapsulate +encapsulated +encapsulates +encapsulating +encapsulation +encased +enchant +enchanted +enchanter +enchanting +enchantment +enchantress +enchants +encipher +enciphered +enciphering +enciphers +encircle +encircled +encircles +enclose +enclosed +encloses +enclosing +enclosure +enclosures +encode +encoded +encoder +encoders +encodes +encoding +encodings +encompass +encompassed +encompasses +encompassing +encore +encounter +encountered +encountering +encounters +encourage +encouraged +encouragement +encouragements +encourages +encouraging +encouragingly +encroach +encrust +encrypt +encrypted +encrypting +encryption +encryptions +encrypts +encumber +encumbered +encumbering +encumbers +encyclopedia +encyclopedias +encyclopedic +end +endanger +endangered +endangering +endangers +endear +endeared +endearing +endears +endeavor +endeavored +endeavoring +endeavors +ended +endemic +ender +enders +endgame +ending +endings +endless +endlessly +endlessness +endorse +endorsed +endorsement +endorses +endorsing +endow +endowed +endowing +endowment +endowments +endows +endpoint +ends +endurable +endurably +endurance +endure +endured +endures +enduring +enduringly +enema +enemas +enemies +enemy +energetic +energies +energize +energy +enervate +enfeeble +enforce +enforceable +enforced +enforcement +enforcer +enforcers +enforces +enforcing +enfranchise +engage +engaged +engagement +engagements +engages +engaging +engagingly +engender +engendered +engendering +engenders +engine +engineer +engineered +engineering +engineers +engines +engrave +engraved +engraver +engraves +engraving +engravings +engross +engrossed +engrossing +engulf +enhance +enhanced +enhancement +enhancements +enhances +enhancing +enigma +enigmatic +enjoin +enjoined +enjoining +enjoins +enjoy +enjoyable +enjoyably +enjoyed +enjoying +enjoyment +enjoys +enlarge +enlarged +enlargement +enlargements +enlarger +enlargers +enlarges +enlarging +enlighten +enlightened +enlightening +enlightenment +enlist +enlisted +enlistment +enlists +enliven +enlivened +enlivening +enlivens +enmities +enmity +ennoble +ennobled +ennobles +ennobling +ennui +enormities +enormity +enormous +enormously +enough +enqueue +enqueued +enqueues +enquire +enquired +enquirer +enquires +enquiry +enrage +enraged +enrages +enraging +enrapture +enrich +enriched +enriches +enriching +enroll +enrolled +enrolling +enrollment +enrollments +enrolls +ensemble +ensembles +ensign +ensigns +enslave +enslaved +enslaves +enslaving +ensnare +ensnared +ensnares +ensnaring +ensue +ensued +ensues +ensuing +ensure +ensured +ensurer +ensurers +ensures +ensuring +entail +entailed +entailing +entails +entangle +enter +entered +entering +enterprise +enterprises +enterprising +enters +entertain +entertained +entertainer +entertainers +entertaining +entertainingly +entertainment +entertainments +entertains +enthusiasm +enthusiasms +enthusiast +enthusiastic +enthusiastically +enthusiasts +entice +enticed +enticer +enticers +entices +enticing +entire +entirely +entireties +entirety +entities +entitle +entitled +entitles +entitling +entity +entomb +entrance +entranced +entrances +entrap +entreat +entreated +entreaty +entree +entrench +entrenched +entrenches +entrenching +entrepreneur +entrepreneurial +entrepreneurs +entries +entropy +entrust +entrusted +entrusting +entrusts +entry +enumerable +enumerate +enumerated +enumerates +enumerating +enumeration +enumerative +enumerator +enumerators +enunciation +envelop +envelope +enveloped +enveloper +envelopes +enveloping +envelops +envied +envies +envious +enviously +enviousness +environ +environing +environment +environmental +environments +environs +envisage +envisaged +envisages +envision +envisioned +envisioning +envisions +envoy +envoys +envy +enzyme +epaulet +epaulets +ephemeral +epic +epicenter +epics +epidemic +epidemics +epidermis +epigram +epileptic +epilogue +episcopal +episode +episodes +epistemological +epistemology +epistle +epistles +epitaph +epitaphs +epitaxial +epitaxially +epithet +epithets +epitomize +epitomized +epitomizes +epitomizing +epoch +epochs +epsilon +equal +equaled +equaling +equalities +equality +equalization +equalize +equalized +equalizer +equalizers +equalizes +equalizing +equally +equals +equate +equated +equates +equating +equation +equations +equator +equatorial +equators +equestrian +equidistant +equilateral +equilibrate +equilibria +equilibrium +equilibriums +equinox +equip +equipment +equipoise +equipped +equipping +equips +equitable +equitably +equity +equivalence +equivalences +equivalent +equivalently +equivalents +equivocal +equivocally +era +eradicate +eradicated +eradicates +eradicating +eradication +eras +erasable +erase +erased +eraser +erasers +erases +erasing +erasure +ere +erect +erected +erecting +erection +erections +erector +erectors +erects +erg +ergo +ergodic +ermine +ermines +erode +erosion +erotic +erotica +err +errand +errant +errata +erratic +erratum +erred +erring +erringly +erroneous +erroneously +erroneousness +error +errors +errs +ersatz +erudite +erupt +eruption +escalate +escalated +escalates +escalating +escalation +escapable +escapade +escapades +escape +escaped +escapee +escapees +escapes +escaping +eschew +eschewed +eschewing +eschews +escort +escorted +escorting +escorts +escrow +esoteric +especial +especially +espionage +espouse +espoused +espouses +espousing +esprit +espy +esquire +esquires +essay +essayed +essays +essence +essences +essential +essentially +essentials +establish +established +establishes +establishing +establishment +establishments +estate +estates +esteem +esteemed +esteeming +esteems +esthetics +estimate +estimated +estimates +estimating +estimation +estimations +et +etch +etching +eternal +eternally +eternities +eternity +ether +ethereal +ethereally +ethers +ethic +ethical +ethically +ethics +ethnic +etiquette +etymology +eucalyptus +eunuch +eunuchs +euphemism +euphemisms +euphoria +euphoric +eureka +euthanasia +evacuate +evacuated +evacuation +evade +evaded +evades +evading +evaluate +evaluated +evaluates +evaluating +evaluation +evaluations +evaluative +evaluator +evaluators +evaporate +evaporated +evaporating +evaporation +evaporative +evasion +evasive +even +evened +evenhanded +evenhandedly +evenhandedness +evening +evenings +evenly +evenness +evens +event +eventful +eventfully +events +eventual +eventualities +eventuality +eventually +ever +evergreen +everlasting +everlastingly +evermore +every +everybody +everyday +everyone +everything +everywhere +evict +evicted +evicting +eviction +evictions +evicts +evidence +evidenced +evidences +evidencing +evident +evidently +evil +eviller +evilly +evils +evince +evinced +evinces +evoke +evoked +evokes +evoking +evolute +evolutes +evolution +evolutionary +evolutions +evolve +evolved +evolves +evolving +ewe +ewes +ex +exacerbate +exacerbated +exacerbates +exacerbating +exacerbation +exacerbations +exact +exacted +exacting +exactingly +exaction +exactions +exactitude +exactly +exactness +exacts +exaggerate +exaggerated +exaggerates +exaggerating +exaggeration +exaggerations +exalt +exaltation +exalted +exalting +exalts +exam +examination +examinations +examine +examined +examiner +examiners +examines +examining +example +examples +exams +exasperate +exasperated +exasperates +exasperating +exasperation +excavate +excavated +excavates +excavating +excavation +excavations +exceed +exceeded +exceeding +exceedingly +exceeds +excel +excelled +excellence +excellences +excellency +excellent +excellently +excelling +excels +except +excepted +excepting +exception +exceptionable +exceptional +exceptionally +exceptions +excepts +excerpt +excerpted +excerpts +excess +excesses +excessive +excessively +exchange +exchangeable +exchanged +exchanges +exchanging +exchequer +exchequers +excise +excised +excises +excising +excision +excitable +excitation +excitations +excite +excited +excitedly +excitement +excites +exciting +excitingly +exciton +exclaim +exclaimed +exclaimer +exclaimers +exclaiming +exclaims +exclamation +exclamations +exclamatory +exclude +excluded +excludes +excluding +exclusion +exclusionary +exclusions +exclusive +exclusively +exclusiveness +exclusivity +excommunicate +excommunicated +excommunicates +excommunicating +excommunication +excrete +excreted +excretes +excreting +excretion +excretions +excretory +excruciate +excursion +excursions +excusable +excusably +excuse +excused +excuses +excusing +exec +executable +execute +executed +executes +executing +execution +executional +executioner +executions +executive +executives +executor +executors +exemplar +exemplary +exemplification +exemplified +exemplifier +exemplifiers +exemplifies +exemplify +exemplifying +exempt +exempted +exempting +exemption +exempts +exercise +exercised +exerciser +exercisers +exercises +exercising +exert +exerted +exerting +exertion +exertions +exerts +exhale +exhaled +exhales +exhaling +exhaust +exhausted +exhaustedly +exhausting +exhaustion +exhaustive +exhaustively +exhausts +exhibit +exhibited +exhibiting +exhibition +exhibitions +exhibitor +exhibitors +exhibits +exhilarate +exhort +exhortation +exhortations +exhume +exigency +exile +exiled +exiles +exiling +exist +existed +existence +existent +existential +existentialism +existentialist +existentialists +existentially +existing +exists +exit +exited +exiting +exits +exodus +exorbitant +exorbitantly +exorcism +exorcist +exoskeleton +exotic +expand +expandable +expanded +expander +expanders +expanding +expands +expanse +expanses +expansible +expansion +expansionism +expansions +expansive +expect +expectancy +expectant +expectantly +expectation +expectations +expected +expectedly +expecting +expectingly +expects +expediency +expedient +expediently +expedite +expedited +expedites +expediting +expedition +expeditions +expeditious +expeditiously +expel +expelled +expelling +expels +expend +expendable +expended +expending +expenditure +expenditures +expends +expense +expenses +expensive +expensively +experience +experienced +experiences +experiencing +experiment +experimental +experimentally +experimentation +experimentations +experimented +experimenter +experimenters +experimenting +experiments +expert +expertise +expertly +expertness +experts +expiration +expirations +expire +expired +expires +expiring +explain +explainable +explained +explainer +explainers +explaining +explains +explanation +explanations +explanatory +expletive +explicit +explicitly +explicitness +explode +exploded +explodes +exploding +exploit +exploitable +exploitation +exploitations +exploited +exploiter +exploiters +exploiting +exploits +exploration +explorations +exploratory +explore +explored +explorer +explorers +explores +exploring +explosion +explosions +explosive +explosively +explosives +exponent +exponential +exponentially +exponentials +exponentiate +exponentiated +exponentiates +exponentiating +exponentiation +exponentiations +exponents +export +exportation +exported +exporter +exporters +exporting +exports +expose +exposed +exposer +exposers +exposes +exposing +exposition +expositions +expository +exposure +exposures +expound +expounded +expounder +expounding +expounds +express +expressed +expresses +expressibility +expressible +expressibly +expressing +expression +expressions +expressive +expressively +expressiveness +expressly +expulsion +expunge +expunged +expunges +expunging +expurgate +exquisite +exquisitely +exquisiteness +extant +extemporaneous +extend +extendable +extended +extending +extends +extensibility +extensible +extension +extensions +extensive +extensively +extent +extents +extenuate +extenuated +extenuating +extenuation +exterior +exteriors +exterminate +exterminated +exterminates +exterminating +extermination +external +externally +extinct +extinction +extinguish +extinguished +extinguisher +extinguishes +extinguishing +extirpate +extol +extort +extorted +extortion +extra +extract +extracted +extracting +extraction +extractions +extractor +extractors +extracts +extracurricular +extramarital +extraneous +extraneously +extraneousness +extraordinarily +extraordinariness +extraordinary +extrapolate +extrapolated +extrapolates +extrapolating +extrapolation +extrapolations +extras +extraterrestrial +extravagance +extravagant +extravagantly +extravaganza +extremal +extreme +extremely +extremes +extremist +extremists +extremities +extremity +extricate +extrinsic +extrovert +exuberance +exult +exultation +eye +eyeball +eyebrow +eyebrows +eyed +eyeful +eyeglass +eyeglasses +eyeing +eyelash +eyelid +eyelids +eyepiece +eyepieces +eyer +eyers +eyes +eyesight +eyewitness +eyewitnesses +eying +fable +fabled +fables +fabric +fabricate +fabricated +fabricates +fabricating +fabrication +fabrics +fabulous +fabulously +facade +facaded +facades +face +faced +faces +facet +faceted +facets +facial +facile +facilely +facilitate +facilitated +facilitates +facilitating +facilities +facility +facing +facings +facsimile +facsimiles +fact +faction +factions +factious +facto +factor +factored +factorial +factories +factoring +factorization +factorizations +factors +factory +facts +factual +factually +faculties +faculty +fade +faded +fadeout +fader +faders +fades +fading +fag +fags +fail +failed +failing +failings +fails +failsoft +failure +failures +fain +faint +fainted +fainter +faintest +fainting +faintly +faintness +faints +fair +fairer +fairest +fairies +fairing +fairly +fairness +fairs +fairy +fairyland +faith +faithful +faithfully +faithfulness +faithless +faithlessly +faithlessness +faiths +fake +faked +faker +fakes +faking +falcon +falconer +falcons +fall +fallacies +fallacious +fallacy +fallen +fallibility +fallible +falling +fallout +fallow +falls +false +falsehood +falsehoods +falsely +falseness +falsification +falsified +falsifies +falsify +falsifying +falsity +falter +faltered +falters +fame +famed +fames +familial +familiar +familiarities +familiarity +familiarization +familiarize +familiarized +familiarizes +familiarizing +familiarly +familiarness +families +familism +family +famine +famines +famish +famous +famously +fan +fanatic +fanaticism +fanatics +fancied +fancier +fanciers +fancies +fanciest +fanciful +fancifully +fancily +fanciness +fancy +fancying +fanfare +fanfold +fang +fangled +fangs +fanned +fanning +fanout +fans +fantasies +fantasize +fantastic +fantasy +far +farad +faraway +farce +farces +fare +fared +fares +farewell +farewells +farfetched +farina +faring +farm +farmed +farmer +farmers +farmhouse +farmhouses +farming +farmland +farms +farmyard +farmyards +farsighted +farther +farthest +farthing +fascicle +fascinate +fascinated +fascinates +fascinating +fascination +fascism +fascist +fashion +fashionable +fashionably +fashioned +fashioning +fashions +fast +fasted +fasten +fastened +fastener +fasteners +fastening +fastenings +fastens +faster +fastest +fastidious +fasting +fastness +fasts +fat +fatal +fatalities +fatality +fatally +fatals +fate +fated +fateful +fates +father +fathered +fatherland +fatherly +fathers +fathom +fathomed +fathoming +fathoms +fatigue +fatigued +fatigues +fatiguing +fatness +fats +fatten +fattened +fattener +fatteners +fattening +fattens +fatter +fattest +fatty +faucet +fault +faulted +faulting +faultless +faultlessly +faults +faulty +faun +fauna +favor +favorable +favorably +favored +favorer +favoring +favorite +favorites +favoritism +favors +fawn +fawned +fawning +fawns +faze +fear +feared +fearful +fearfully +fearing +fearless +fearlessly +fearlessness +fears +fearsome +feasibility +feasible +feast +feasted +feasting +feasts +feat +feather +featherbed +featherbedding +feathered +featherer +featherers +feathering +feathers +featherweight +feathery +feats +feature +featured +features +featuring +fecund +fed +federal +federalist +federally +federals +federation +fee +feeble +feebleness +feebler +feeblest +feebly +feed +feedback +feeder +feeders +feeding +feedings +feeds +feel +feeler +feelers +feeling +feelingly +feelings +feels +fees +feet +feign +feigned +feigning +felicities +felicity +feline +fell +fellatio +felled +felling +fellow +fellows +fellowship +fellowships +felon +felonious +felony +felt +felts +female +females +feminine +femininity +feminism +feminist +femur +femurs +fen +fence +fenced +fencer +fencers +fences +fencing +fend +ferment +fermentation +fermentations +fermented +fermenting +ferments +fern +ferns +ferocious +ferociously +ferociousness +ferocity +ferret +ferried +ferries +ferrite +ferry +fertile +fertilely +fertility +fertilization +fertilize +fertilized +fertilizer +fertilizers +fertilizes +fertilizing +fervent +fervently +fervor +fervors +festival +festivals +festive +festively +festivities +festivity +fetal +fetch +fetched +fetches +fetching +fetchingly +fetid +fetish +fetter +fettered +fetters +fettle +fetus +feud +feudal +feudalism +feuds +fever +fevered +feverish +feverishly +fevers +few +fewer +fewest +fewness +fiance +fiancee +fiasco +fiat +fib +fibbing +fiber +fibers +fibrosities +fibrosity +fibrous +fibrously +fickle +fickleness +fiction +fictional +fictionally +fictions +fictitious +fictitiously +fiddle +fiddled +fiddler +fiddles +fiddlestick +fiddlesticks +fiddling +fidelity +fidget +fiducial +fief +fiefdom +field +fielded +fielder +fielders +fielding +fieldwork +fiend +fiendish +fierce +fiercely +fierceness +fiercer +fiercest +fiery +fife +fifteen +fifteens +fifteenth +fifth +fifties +fiftieth +fifty +fig +fight +fighter +fighters +fighting +fights +figs +figurative +figuratively +figure +figured +figures +figuring +figurings +filament +filaments +file +filed +filename +filenames +filer +files +filial +filibuster +filing +filings +fill +fillable +filled +filler +fillers +filling +fillings +fills +filly +film +filmed +filming +films +filter +filtered +filtering +filters +filth +filthier +filthiest +filthiness +filthy +fin +final +finality +finalization +finalize +finalized +finalizes +finalizing +finally +finals +finance +financed +finances +financial +financially +financier +financiers +financing +find +finder +finders +finding +findings +finds +fine +fined +finely +fineness +finer +fines +finesse +finessed +finessing +finest +finger +fingered +fingering +fingerings +fingernail +fingerprint +fingerprints +fingers +fingertip +finicky +fining +finish +finished +finisher +finishers +finishes +finishing +finite +finitely +finiteness +fink +finny +fins +fir +fire +firearm +firearms +fireboat +firebreak +firebug +firecracker +fired +fireflies +firefly +firehouse +firelight +fireman +firemen +fireplace +fireplaces +firepower +fireproof +firer +firers +fires +fireside +firewall +firewood +fireworks +firing +firings +firm +firmament +firmed +firmer +firmest +firming +firmly +firmness +firms +firmware +first +firsthand +firstly +firsts +fiscal +fiscally +fish +fished +fisher +fisherman +fishermen +fishers +fishery +fishes +fishing +fishmonger +fishpond +fishy +fission +fissure +fissured +fist +fisted +fisticuff +fists +fit +fitful +fitfully +fitly +fitness +fits +fitted +fitter +fitters +fitting +fittingly +fittings +five +fivefold +fives +fix +fixate +fixated +fixates +fixating +fixation +fixations +fixed +fixedly +fixedness +fixer +fixers +fixes +fixing +fixings +fixture +fixtures +fizzle +fizzled +flabbergast +flabbergasted +flack +flag +flagellate +flagged +flagging +flagpole +flagrant +flagrantly +flags +flail +flair +flak +flake +flaked +flakes +flaking +flaky +flam +flamboyant +flame +flamed +flamer +flamers +flames +flaming +flammable +flank +flanked +flanker +flanking +flanks +flannel +flannels +flap +flaps +flare +flared +flares +flaring +flash +flashback +flashed +flasher +flashers +flashes +flashing +flashlight +flashlights +flashy +flask +flat +flatbed +flatly +flatness +flats +flatten +flattened +flattening +flatter +flattered +flatterer +flattering +flattery +flattest +flatulent +flatus +flatworm +flaunt +flaunted +flaunting +flaunts +flavor +flavored +flavoring +flavorings +flavors +flaw +flawed +flawless +flawlessly +flaws +flax +flaxen +flea +fleas +fled +fledged +fledgling +fledglings +flee +fleece +fleeces +fleecy +fleeing +flees +fleet +fleetest +fleeting +fleetly +fleetness +fleets +flesh +fleshed +fleshes +fleshing +fleshly +fleshy +flew +flex +flexibilities +flexibility +flexible +flexibly +flick +flicked +flicker +flickering +flicking +flicks +flier +fliers +flies +flight +flights +flimsy +flinch +flinched +flinches +flinching +fling +flings +flint +flinty +flip +flipflop +flipped +flips +flirt +flirtation +flirtatious +flirted +flirting +flirts +flit +flitting +float +floated +floater +floating +floats +flock +flocked +flocking +flocks +flog +flogging +flood +flooded +flooding +floodlight +floodlit +floods +floor +floored +flooring +floorings +floors +flop +floppies +floppily +flopping +floppy +flops +flora +floral +florid +florin +florist +floss +flossed +flosses +flossing +flotation +flotilla +flounder +floundered +floundering +flounders +flour +floured +flourish +flourished +flourishes +flourishing +flow +flowchart +flowcharting +flowcharts +flowed +flower +flowered +floweriness +flowering +flowerpot +flowers +flowery +flowing +flown +flows +flu +fluctuate +fluctuates +fluctuating +fluctuation +fluctuations +flue +fluency +fluent +fluently +fluff +fluffier +fluffiest +fluffy +fluid +fluidity +fluidly +fluids +fluke +flung +flunked +fluoresce +fluorescent +flurried +flurry +flush +flushed +flushes +flushing +flute +fluted +fluting +flutter +fluttered +fluttering +flutters +flux +fly +flyable +flyer +flyers +flying +foal +foam +foamed +foaming +foams +foamy +fob +fobbing +focal +focally +foci +focus +focused +focuses +focusing +focussed +fodder +foe +foes +fog +fogged +foggier +foggiest +foggily +fogging +foggy +fogs +fogy +foible +foil +foiled +foiling +foils +foist +fold +folded +folder +folders +folding +foldout +folds +foliage +folk +folklore +folks +folksong +folksy +follies +follow +followed +follower +followers +following +followings +follows +folly +fond +fonder +fondle +fondled +fondles +fondling +fondly +fondness +font +fonts +food +foods +foodstuff +foodstuffs +fool +fooled +foolhardy +fooling +foolish +foolishly +foolishness +foolproof +fools +foot +footage +football +footballs +footbridge +footed +footer +footers +footfall +foothill +foothold +footing +footman +footnote +footnotes +footpath +footprint +footprints +footstep +footsteps +for +forage +foraged +forages +foraging +foray +forays +forbade +forbear +forbearance +forbears +forbid +forbidden +forbidding +forbids +force +forced +forceful +forcefully +forcefulness +forcer +forces +forcible +forcibly +forcing +ford +fords +fore +forearm +forearms +foreboding +forecast +forecasted +forecaster +forecasters +forecasting +forecastle +forecasts +forefather +forefathers +forefinger +forefingers +forego +foregoes +foregoing +foregone +foreground +forehead +foreheads +foreign +foreigner +foreigners +foreigns +foreman +foremost +forenoon +forensic +forerunners +foresee +foreseeable +foreseen +foresees +foresight +foresighted +forest +forestall +forestalled +forestalling +forestallment +forestalls +forested +forester +foresters +forestry +forests +foretell +foretelling +foretells +foretold +forever +forewarn +forewarned +forewarning +forewarnings +forewarns +forfeit +forfeited +forfeiture +forgave +forge +forged +forger +forgeries +forgery +forges +forget +forgetful +forgetfulness +forgets +forgettable +forgettably +forgetting +forging +forgivable +forgivably +forgive +forgiven +forgiveness +forgives +forgiving +forgivingly +forgot +forgotten +fork +forked +forking +forklift +forks +forlorn +forlornly +form +formal +formalism +formalisms +formalities +formality +formalization +formalizations +formalize +formalized +formalizes +formalizing +formally +formant +formants +format +formation +formations +formative +formatively +formats +formatted +formatter +formatters +formatting +formed +former +formerly +formidable +forming +forms +formula +formulae +formulas +formulate +formulated +formulates +formulating +formulation +formulations +formulator +formulators +fornication +forsake +forsaken +forsakes +forsaking +fort +forte +forthcoming +forthright +forthwith +fortier +forties +fortieth +fortification +fortifications +fortified +fortifies +fortify +fortifying +fortiori +fortitude +fortnight +fortnightly +fortress +fortresses +forts +fortuitous +fortuitously +fortunate +fortunately +fortune +fortunes +forty +forum +forums +forward +forwarded +forwarder +forwarding +forwardness +forwards +fossil +foster +fostered +fostering +fosters +fought +foul +fouled +foulest +fouling +foully +foulmouth +foulness +fouls +found +foundation +foundations +founded +founder +foundered +founders +founding +foundling +foundries +foundry +founds +fount +fountain +fountains +founts +four +fourfold +fours +fourscore +foursome +foursquare +fourteen +fourteens +fourteenth +fourth +fowl +fowler +fowls +fox +foxes +fraction +fractional +fractionally +fractions +fracture +fractured +fractures +fracturing +fragile +fragment +fragmentary +fragmentation +fragmented +fragmenting +fragments +fragrance +fragrances +fragrant +fragrantly +frail +frailest +frailty +frame +framed +framer +frames +framework +frameworks +framing +franc +franchise +franchises +francs +frank +franked +franker +frankest +franking +frankly +frankness +franks +frantic +frantically +fraternal +fraternally +fraternities +fraternity +fraud +frauds +fraudulent +fraught +fray +frayed +fraying +frays +frazzle +freak +freakish +freaks +freckle +freckled +freckles +free +freed +freedom +freedoms +freeing +freeings +freely +freeman +freeness +freer +frees +freest +freestyle +freeway +freewheel +freeze +freezer +freezers +freezes +freezing +freight +freighted +freighter +freighters +freighting +freights +frenetic +frenzied +frenzy +freon +frequencies +frequency +frequent +frequented +frequenter +frequenters +frequenting +frequently +frequents +fresco +frescoes +fresh +freshen +freshened +freshener +fresheners +freshening +freshens +fresher +freshest +freshly +freshman +freshmen +freshness +freshwater +fret +fretful +fretfully +fretfulness +friar +friars +fricative +fricatives +friction +frictionless +frictions +fried +friend +friendless +friendlier +friendliest +friendliness +friendly +friends +friendship +friendships +fries +frieze +friezes +frigate +frigates +fright +frighten +frightened +frightening +frighteningly +frightens +frightful +frightfully +frightfulness +frigid +frill +frills +fringe +fringed +frisk +frisked +frisking +frisks +frisky +fritter +frivolity +frivolous +frivolously +fro +frock +frocks +frog +frogs +frolic +frolics +from +front +frontage +frontal +fronted +frontier +frontiers +frontiersman +frontiersmen +fronting +fronts +frost +frostbite +frostbitten +frosted +frosting +frosts +frosty +froth +frothing +frothy +frown +frowned +frowning +frowns +froze +frozen +frozenly +frugal +frugally +fruit +fruitful +fruitfully +fruitfulness +fruition +fruitless +fruitlessly +fruits +frustrate +frustrated +frustrates +frustrating +frustration +frustrations +fry +fudge +fuel +fueled +fueling +fuels +fugitive +fugitives +fugue +fulcrum +fulfill +fulfilled +fulfilling +fulfillment +fulfillments +fulfills +full +fuller +fullest +fullness +fully +fulminate +fumble +fumbled +fumbling +fume +fumed +fumes +fuming +fun +function +functional +functionalities +functionality +functionally +functionals +functionary +functioned +functioning +functions +functor +functors +fund +fundamental +fundamentally +fundamentals +funded +funder +funders +funding +funds +funeral +funerals +funereal +fungal +fungi +fungible +fungicide +fungus +funk +funnel +funneled +funneling +funnels +funnier +funniest +funnily +funniness +funny +fur +furies +furious +furiouser +furiously +furlong +furlough +furnace +furnaces +furnish +furnished +furnishes +furnishing +furnishings +furniture +furrier +furrow +furrowed +furrows +furry +furs +further +furthered +furthering +furthermore +furthermost +furthers +furthest +furtive +furtively +furtiveness +fury +fuse +fused +fuses +fusing +fusion +fuss +fussing +fussy +futile +futility +future +futures +futuristic +fuzz +fuzzier +fuzziness +fuzzy +gab +gabardine +gabbing +gable +gabled +gabler +gables +gad +gadfly +gadget +gadgetry +gadgets +gag +gagged +gagging +gaging +gags +gaieties +gaiety +gaily +gain +gained +gainer +gainers +gainful +gaining +gains +gait +gaited +gaiter +gaiters +galactic +galaxies +galaxy +gale +gall +gallant +gallantly +gallantry +gallants +galled +galleried +galleries +gallery +galley +galleys +galling +gallon +gallons +gallop +galloped +galloper +galloping +gallops +gallows +galls +gallstone +gambit +gamble +gambled +gambler +gamblers +gambles +gambling +gambol +game +gamed +gamely +gameness +games +gaming +gamma +gander +gang +gangland +gangling +gangplank +gangrene +gangs +gangster +gangsters +gantry +gap +gape +gaped +gapes +gaping +gaps +garage +garaged +garages +garb +garbage +garbages +garbed +garble +garbled +garden +gardened +gardener +gardeners +gardening +gardens +gargantuan +gargle +gargled +gargles +gargling +garland +garlanded +garlic +garment +garments +garner +garnered +garnish +garrison +garrisoned +garter +garters +gas +gaseous +gaseously +gases +gash +gashes +gasket +gaslight +gasoline +gasp +gasped +gasping +gasps +gassed +gasser +gassing +gassings +gassy +gastric +gastrointestinal +gastronome +gastronomy +gate +gated +gateway +gateways +gather +gathered +gatherer +gatherers +gathering +gatherings +gathers +gating +gator +gauche +gaudiness +gaudy +gauge +gauged +gauges +gaunt +gauntness +gauze +gave +gavel +gawk +gawky +gay +gayer +gayest +gayety +gayly +gayness +gaze +gazed +gazelle +gazer +gazers +gazes +gazette +gazing +gear +geared +gearing +gears +gecko +geese +geisha +gel +gelatin +gelatine +gelatinous +geld +gelled +gelling +gels +gem +gems +gender +genders +gene +genealogy +general +generalist +generalists +generalities +generality +generalization +generalizations +generalize +generalized +generalizer +generalizers +generalizes +generalizing +generally +generals +generate +generated +generates +generating +generation +generations +generative +generator +generators +generic +generically +generosities +generosity +generous +generously +generousness +genes +genesis +genetic +genetically +genial +genially +genie +genius +geniuses +genre +genres +gent +genteel +gentile +gentle +gentleman +gentlemanly +gentlemen +gentleness +gentler +gentlest +gentlewoman +gently +gentry +genuine +genuinely +genuineness +genus +geocentric +geodesic +geodesy +geodetic +geographer +geographic +geographical +geographically +geography +geological +geologist +geologists +geology +geometric +geometrical +geometrically +geometrician +geometries +geometry +geophysical +geophysics +geosynchronous +geranium +gerbil +geriatric +germ +germane +germicide +germinal +germinate +germinated +germinates +germinating +germination +germs +gerund +gesture +gestured +gestures +gesturing +get +getaway +gets +getter +getters +getting +geyser +ghastly +ghetto +ghost +ghosted +ghostly +ghosts +giant +giants +gibberish +giddiness +giddy +gift +gifted +gifts +gig +gigabit +gigabits +gigabyte +gigabytes +gigacycle +gigahertz +gigantic +gigavolt +gigawatt +giggle +giggled +giggles +giggling +gild +gilded +gilding +gilds +gill +gills +gilt +gimmick +gimmicks +gin +ginger +gingerbread +gingerly +gingham +ginghams +gins +giraffe +giraffes +gird +girder +girders +girdle +girl +girlfriend +girlie +girlish +girls +girt +girth +gist +give +giveaway +given +giver +givers +gives +giving +glacial +glacier +glaciers +glad +gladden +gladder +gladdest +glade +gladiator +gladly +gladness +glamor +glamorous +glamour +glance +glanced +glances +glancing +gland +glands +glandular +glare +glared +glares +glaring +glaringly +glass +glassed +glasses +glassy +glaucoma +glaze +glazed +glazer +glazes +glazing +gleam +gleamed +gleaming +gleams +glean +gleaned +gleaner +gleaning +gleanings +gleans +glee +gleeful +gleefully +glees +glen +glens +glide +glided +glider +gliders +glides +glimmer +glimmered +glimmering +glimmers +glimpse +glimpsed +glimpses +glint +glinted +glinting +glints +glisten +glistened +glistening +glistens +glitch +glitter +glittered +glittering +glitters +gloat +global +globally +globe +globes +globular +globularity +gloom +gloomily +gloomy +glories +glorification +glorified +glorifies +glorify +glorious +gloriously +glory +glorying +gloss +glossaries +glossary +glossed +glosses +glossing +glossy +glottal +glove +gloved +glover +glovers +gloves +gloving +glow +glowed +glower +glowers +glowing +glowingly +glows +glue +glued +glues +gluing +glut +glutton +gnash +gnat +gnats +gnaw +gnawed +gnawing +gnaws +gnome +gnomon +gnu +go +goad +goaded +goal +goals +goat +goatee +goatees +goats +gobble +gobbled +gobbler +gobblers +gobbles +goblet +goblets +goblin +goblins +god +goddess +goddesses +godfather +godhead +godlike +godly +godmother +godmothers +godparent +gods +godsend +godson +goes +goggles +going +goings +gold +golden +goldenly +goldenness +goldenrod +goldfish +golding +golds +goldsmith +golf +golfer +golfers +golfing +golly +gondola +gone +goner +gong +gongs +good +goodby +goodbye +goodies +goodly +goodness +goods +goodwill +goody +goof +goofed +goofs +goofy +goose +gopher +gore +gorge +gorgeous +gorgeously +gorges +gorging +gorilla +gorillas +gory +gosh +gospel +gospelers +gospels +gossip +gossiped +gossiping +gossips +got +gotten +gouge +gouged +gouges +gouging +gourd +gourmet +gout +govern +governance +governed +governess +governing +government +governmental +governmentally +governments +governor +governors +governs +gown +gowned +gowns +grab +grabbed +grabber +grabbers +grabbing +grabbings +grabs +grace +graced +graceful +gracefully +gracefulness +graces +gracing +gracious +graciously +graciousness +grad +gradation +gradations +grade +graded +grader +graders +grades +gradient +gradients +grading +gradings +gradual +gradually +graduate +graduated +graduates +graduating +graduation +graduations +graft +grafted +grafter +grafting +grafts +graham +grahams +grail +grain +grained +graining +grains +gram +grammar +grammarian +grammars +grammatic +grammatical +grammatically +grams +granaries +granary +grand +grandchild +grandchildren +granddaughter +grander +grandest +grandeur +grandfather +grandfathers +grandiose +grandly +grandma +grandmother +grandmothers +grandnephew +grandness +grandniece +grandpa +grandparent +grands +grandson +grandsons +grandstand +grange +granite +granny +granola +grant +granted +grantee +granter +granting +grantor +grants +granularity +granulate +granulated +granulates +granulating +grape +grapefruit +grapes +grapevine +graph +graphed +graphic +graphical +graphically +graphics +graphing +graphite +graphs +grapple +grappled +grappling +grasp +graspable +grasped +grasping +graspingly +grasps +grass +grassed +grassers +grasses +grassier +grassiest +grassland +grassy +grate +grated +grateful +gratefully +gratefulness +grater +grates +gratification +gratified +gratify +gratifying +grating +gratings +gratis +gratitude +gratuities +gratuitous +gratuitously +gratuitousness +gratuity +grave +gravel +gravelly +gravely +graven +graveness +graver +gravest +gravestone +graveyard +gravitate +gravitation +gravitational +gravity +gravy +gray +grayed +grayer +grayest +graying +grayness +graze +grazed +grazer +grazing +grease +greased +greases +greasy +great +greater +greatest +greatly +greatness +greed +greedily +greediness +greedy +green +greener +greenery +greenest +greengrocer +greenhouse +greenhouses +greening +greenish +greenly +greenness +greens +greenware +greet +greeted +greeter +greeting +greetings +greets +gregarious +grenade +grenades +grew +grey +greyest +greyhound +greying +grid +griddle +gridiron +grids +grief +griefs +grievance +grievances +grieve +grieved +griever +grievers +grieves +grieving +grievingly +grievous +grievously +grill +grilled +grilling +grills +grim +grimace +grime +grimed +grimly +grimness +grin +grind +grinder +grinders +grinding +grindings +grinds +grindstone +grindstones +grinning +grins +grip +gripe +griped +gripes +griping +gripped +gripping +grippingly +grips +grisly +grist +grit +grits +gritty +grizzly +groan +groaned +groaner +groaners +groaning +groans +grocer +groceries +grocers +grocery +groggy +groin +groom +groomed +grooming +grooms +groove +grooved +grooves +grope +groped +gropes +groping +gross +grossed +grosser +grosses +grossest +grossing +grossly +grossness +grotesque +grotesquely +grotesques +grotto +grottos +ground +grounded +grounder +grounders +grounding +grounds +groundwork +group +grouped +grouping +groupings +groups +grouse +grove +grovel +groveled +groveling +grovels +grovers +groves +grow +grower +growers +growing +growl +growled +growling +growls +grown +grownup +grownups +grows +growth +growths +grub +grubby +grubs +grudge +grudges +grudgingly +gruesome +gruff +gruffly +grumble +grumbled +grumbles +grumbling +grunt +grunted +grunting +grunts +guano +guarantee +guaranteed +guaranteeing +guaranteer +guaranteers +guarantees +guaranty +guard +guarded +guardedly +guardhouse +guardian +guardians +guardianship +guarding +guards +gubernatorial +guerrilla +guerrillas +guess +guessed +guesses +guessing +guesswork +guest +guests +guidance +guide +guidebook +guidebooks +guided +guideline +guidelines +guides +guiding +guild +guilder +guilders +guile +guilt +guiltier +guiltiest +guiltily +guiltiness +guiltless +guiltlessly +guilty +guinea +guise +guises +guitar +guitars +gulch +gulches +gulf +gulfs +gull +gulled +gullies +gulling +gulls +gully +gulp +gulped +gulps +gum +gumming +gumption +gums +gun +gunfire +gunman +gunmen +gunned +gunner +gunners +gunnery +gunning +gunny +gunplay +gunpowder +guns +gunshot +gurgle +guru +gush +gushed +gusher +gushes +gushing +gust +gusto +gusts +gusty +gut +guts +gutsy +gutter +guttered +gutters +gutting +guttural +guy +guyed +guyer +guyers +guying +guys +gymnasium +gymnasiums +gymnast +gymnastic +gymnastics +gymnasts +gypsies +gypsy +gyro +gyrocompass +gyroscope +gyroscopes +ha +habeas +habit +habitat +habitation +habitations +habitats +habits +habitual +habitually +habitualness +hack +hacked +hacker +hackers +hacking +hackneyed +hacks +hacksaw +had +haddock +hag +haggard +haggardly +haggle +hail +hailed +hailing +hails +hailstone +hailstorm +hair +haircut +haircuts +hairier +hairiness +hairless +hairpin +hairs +hairy +halcyon +hale +haler +half +halfhearted +halfway +hall +hallmark +hallmarks +hallow +hallowed +halls +hallucinate +hallway +hallways +halogen +halt +halted +halter +halters +halting +haltingly +halts +halve +halved +halvers +halves +halving +ham +hamburger +hamburgers +hamlet +hamlets +hammer +hammered +hammering +hammers +hamming +hammock +hammocks +hamper +hampered +hampers +hams +hamster +hand +handbag +handbags +handbook +handbooks +handcuff +handcuffed +handcuffing +handcuffs +handed +handful +handfuls +handgun +handicap +handicapped +handicaps +handier +handiest +handily +handiness +handing +handiwork +handkerchief +handkerchiefs +handle +handled +handler +handlers +handles +handling +handmaid +handout +hands +handshake +handshakes +handshaking +handsome +handsomely +handsomeness +handsomer +handsomest +handwriting +handwritten +handy +hang +hangar +hangars +hanged +hanger +hangers +hanging +hangman +hangmen +hangout +hangover +hangovers +hangs +hap +haphazard +haphazardly +haphazardness +hapless +haplessly +haplessness +haply +happen +happened +happening +happenings +happens +happier +happiest +happily +happiness +happy +harass +harassed +harasses +harassing +harassment +harbinger +harbor +harbored +harboring +harbors +hard +hardboiled +hardcopy +harden +harder +hardest +hardhat +hardiness +hardly +hardness +hardscrabble +hardship +hardships +hardware +hardwired +hardworking +hardy +hare +harelip +harem +hares +hark +harken +harlot +harlots +harm +harmed +harmful +harmfully +harmfulness +harming +harmless +harmlessly +harmlessness +harmonic +harmonics +harmonies +harmonious +harmoniously +harmoniousness +harmonize +harmony +harms +harness +harnessed +harnessing +harp +harper +harpers +harping +harried +harrier +harrow +harrowed +harrowing +harrows +harry +harsh +harsher +harshly +harshness +hart +harvest +harvested +harvester +harvesting +harvests +has +hash +hashed +hasher +hashes +hashing +hashish +hassle +haste +hasten +hastened +hastening +hastens +hastily +hastiness +hasty +hat +hatch +hatched +hatchet +hatchets +hatching +hate +hated +hateful +hatefully +hatefulness +hater +hates +hating +hatred +hats +haughtily +haughtiness +haughty +haul +hauled +hauler +hauling +hauls +haunch +haunches +haunt +haunted +haunter +haunting +haunts +have +haven +havens +haves +having +havoc +hawk +hawked +hawker +hawkers +hawks +hay +haying +haystack +hazard +hazardous +hazards +haze +hazel +hazes +haziness +hazy +he +head +headache +headaches +headed +header +headers +headgear +heading +headings +headland +headlands +headlight +headline +headlined +headlines +headlining +headlong +headmaster +headphone +headquarters +headroom +heads +headset +headway +heal +healed +healer +healers +healing +heals +health +healthful +healthfully +healthfulness +healthier +healthiest +healthily +healthiness +healthy +heap +heaped +heaping +heaps +hear +heard +hearer +hearers +hearing +hearings +hearken +hears +hearsay +heart +heartbeat +heartbreak +hearten +heartiest +heartily +heartiness +heartless +hearts +hearty +heat +heatable +heated +heatedly +heater +heaters +heath +heathen +heather +heating +heats +heave +heaved +heaven +heavenly +heavens +heaver +heavers +heaves +heavier +heaviest +heavily +heaviness +heaving +heavy +heavyweight +heck +heckle +hectic +hedge +hedged +hedgehog +hedgehogs +hedges +hedonism +hedonist +heed +heeded +heedless +heedlessly +heedlessness +heeds +heel +heeled +heelers +heeling +heels +hefty +hegemony +heifer +height +heighten +heightened +heightening +heightens +heights +heinous +heinously +heir +heiress +heiresses +heirs +held +helical +helicopter +heliocentric +helium +helix +hell +hellfire +hellish +hello +hells +helm +helmet +helmets +helmsman +help +helped +helper +helpers +helpful +helpfully +helpfulness +helping +helpless +helplessly +helplessness +helpmate +helps +hem +hemisphere +hemispheres +hemlock +hemlocks +hemoglobin +hemorrhoid +hemostat +hemostats +hemp +hempen +hems +hen +hence +henceforth +henchman +henchmen +henpeck +hens +hepatitis +her +herald +heralded +heralding +heralds +herb +herbivore +herbivorous +herbs +herd +herded +herder +herding +herds +here +hereabout +hereabouts +hereafter +hereby +hereditary +heredity +herein +hereinafter +hereof +heres +heresy +heretic +heretics +hereto +heretofore +hereunder +herewith +heritage +heritages +hermetic +hermetically +hermit +hermitian +hermits +hero +heroes +heroic +heroically +heroics +heroin +heroine +heroines +heroism +heron +herons +herpes +herring +herrings +hers +herself +hertz +hesitant +hesitantly +hesitate +hesitated +hesitates +hesitating +hesitatingly +hesitation +hesitations +heterogeneity +heterogeneous +heterogeneously +heterogeneousness +heterogenous +heterosexual +heuristic +heuristically +heuristics +hew +hewed +hewer +hews +hex +hexadecimal +hexagon +hexagonal +hexagonally +hexagons +hey +hi +hibernate +hick +hickory +hid +hidden +hide +hideous +hideously +hideousness +hideout +hideouts +hides +hiding +hierarchal +hierarchic +hierarchical +hierarchically +hierarchies +hierarchy +high +higher +highest +highland +highlander +highlands +highlight +highlighted +highlighting +highlights +highly +highness +highnesses +highway +highwayman +highwaymen +highways +hijack +hijacked +hike +hiked +hiker +hikes +hiking +hilarious +hilariously +hilarity +hill +hillbilly +hillock +hills +hillside +hillsides +hilltop +hilltops +hilt +hilts +him +himself +hind +hinder +hindered +hindering +hinders +hindrance +hindrances +hindsight +hinge +hinged +hinges +hint +hinted +hinting +hints +hip +hippo +hippopotamus +hips +hire +hired +hirer +hirers +hires +hiring +hirings +his +hiss +hissed +hisses +hissing +histogram +histograms +historian +historians +historic +historical +historically +histories +history +hit +hitch +hitched +hitchhike +hitchhiked +hitchhiker +hitchhikers +hitchhikes +hitchhiking +hitching +hither +hitherto +hits +hitter +hitters +hitting +hive +hoar +hoard +hoarder +hoarding +hoariness +hoarse +hoarsely +hoarseness +hoary +hobbies +hobble +hobbled +hobbles +hobbling +hobby +hobbyhorse +hobbyist +hobbyists +hockey +hodgepodge +hoe +hoes +hog +hogging +hogs +hoist +hoisted +hoisting +hoists +hold +holden +holder +holders +holding +holdings +holds +hole +holed +holes +holiday +holidays +holies +holiness +holistic +hollow +hollowed +hollowing +hollowly +hollowness +hollows +holly +holocaust +hologram +holograms +holy +homage +home +home-brew +homed +homeless +homely +homemade +homemaker +homemakers +homeomorphic +homeomorphism +homeomorphisms +homeopath +homeowner +homer +homers +homes +homesick +homesickness +homespun +homestead +homesteader +homesteaders +homesteads +homeward +homewards +homework +homicidal +homicide +homing +homo +homogeneities +homogeneity +homogeneous +homogeneously +homogeneousness +homomorphic +homomorphism +homomorphisms +homosexual +hone +honed +honer +hones +honest +honestly +honesty +honey +honeybee +honeycomb +honeycombed +honeydew +honeymoon +honeymooned +honeymooner +honeymooners +honeymooning +honeymoons +honeysuckle +honing +honor +honorable +honorableness +honorably +honoraries +honorarium +honorary +honored +honorer +honoring +honors +hood +hooded +hoodlum +hoods +hoodwink +hoodwinked +hoodwinking +hoodwinks +hoof +hoofs +hook +hooked +hooker +hookers +hooking +hooks +hookup +hookups +hoop +hooper +hoops +hoot +hooted +hooter +hooting +hoots +hooves +hop +hope +hoped +hopeful +hopefully +hopefulness +hopefuls +hopeless +hopelessly +hopelessness +hopes +hoping +hopper +hoppers +hopping +hops +horde +hordes +horizon +horizons +horizontal +horizontally +hormone +hormones +horn +horned +hornet +hornets +horns +horny +horrendous +horrendously +horrible +horribleness +horribly +horrid +horridly +horrified +horrifies +horrify +horrifying +horror +horrors +horse +horseback +horseflesh +horsefly +horseman +horseplay +horsepower +horses +horseshoe +horseshoer +horticulture +hose +hoses +hospitable +hospitably +hospital +hospitality +hospitalize +hospitalized +hospitalizes +hospitalizing +hospitals +host +hostage +hostages +hosted +hostess +hostesses +hostile +hostilely +hostilities +hostility +hosting +hosts +hot +hotel +hotels +hotly +hotness +hotter +hottest +hound +hounded +hounding +hounds +hour +hourglass +hourly +hours +house +houseboat +housebroken +housed +houseflies +housefly +household +householder +householders +households +housekeeper +housekeepers +housekeeping +houses +housetop +housetops +housewife +housewifely +housewives +housework +housing +hovel +hovels +hover +hovered +hovering +hovers +how +however +howl +howled +howler +howling +howls +hub +hubris +hubs +huddle +huddled +huddling +hue +hues +hug +huge +hugely +hugeness +hugging +huh +hull +hulls +hum +human +humane +humanely +humaneness +humanitarian +humanities +humanity +humanly +humanness +humans +humble +humbled +humbleness +humbler +humblest +humbling +humbly +humbug +humerus +humid +humidification +humidified +humidifier +humidifiers +humidifies +humidify +humidifying +humidity +humidly +humiliate +humiliated +humiliates +humiliating +humiliation +humiliations +humility +hummed +humming +hummingbird +humor +humored +humorer +humorers +humoring +humorous +humorously +humorousness +humors +hump +humpback +humped +hums +hunch +hunched +hunches +hundred +hundredfold +hundreds +hundredth +hung +hunger +hungered +hungering +hungers +hungrier +hungriest +hungrily +hungry +hunk +hunks +hunt +hunted +hunters +hunting +hunts +huntsman +hurdle +hurl +hurled +hurler +hurlers +hurling +hurrah +hurricane +hurricanes +hurried +hurriedly +hurries +hurry +hurrying +hurt +hurting +hurtle +hurtling +hurts +husband +husbandry +husbands +hush +hushed +hushes +hushing +husk +husked +husker +huskiness +husking +husks +husky +hustle +hustled +hustler +hustles +hustling +hut +hutch +huts +hyacinth +hybrid +hydra +hydrant +hydraulic +hydro +hydrodynamic +hydrodynamics +hydrogen +hydrogens +hyena +hygiene +hymen +hymn +hymns +hyper +hyperbola +hyperbolic +hypertext +hyphen +hyphenate +hyphens +hypnosis +hypnotic +hypocrisies +hypocrisy +hypocrite +hypocrites +hypodermic +hypodermics +hypotheses +hypothesis +hypothesize +hypothesized +hypothesizer +hypothesizes +hypothesizing +hypothetical +hypothetically +hysteresis +hysterical +hysterically +ibex +ibid +ibis +ice +iceberg +icebergs +icebox +iced +ices +icicle +iciness +icing +icings +icon +iconoclasm +iconoclast +icons +icosahedra +icosahedral +icosahedron +icy +idea +ideal +idealism +idealistic +idealization +idealizations +idealize +idealized +idealizes +idealizing +ideally +ideals +ideas +idem +idempotency +idempotent +identical +identically +identifiable +identifiably +identification +identifications +identified +identifier +identifiers +identifies +identify +identifying +identities +identity +ideological +ideologically +ideology +idiocy +idiom +idiosyncrasies +idiosyncrasy +idiosyncratic +idiot +idiotic +idiots +idle +idled +idleness +idler +idlers +idles +idlest +idling +idly +idol +idolatry +idols +if +igloo +ignite +ignition +ignoble +ignominious +ignoramus +ignorance +ignorant +ignorantly +ignore +ignored +ignores +ignoring +ill +illegal +illegalities +illegality +illegally +illegitimate +illicit +illicitly +illiteracy +illiterate +illness +illnesses +illogical +illogically +ills +illuminate +illuminated +illuminates +illuminating +illumination +illuminations +illusion +illusions +illusive +illusively +illusory +illustrate +illustrated +illustrates +illustrating +illustration +illustrations +illustrative +illustratively +illustrator +illustrators +illustrious +illustriousness +illy +image +imagery +images +imaginable +imaginably +imaginary +imagination +imaginations +imaginative +imaginatively +imagine +imagined +imagines +imaging +imagining +imaginings +imbalance +imbalances +imbecile +imbibe +imitate +imitated +imitates +imitating +imitation +imitations +imitative +immaculate +immaculately +immaterial +immaterially +immature +immaturity +immediacies +immediacy +immediate +immediately +immemorial +immense +immensely +immerse +immersed +immerses +immersion +immigrant +immigrants +immigrate +immigrated +immigrates +immigrating +immigration +imminent +imminently +immoderate +immodest +immoral +immortal +immortality +immortally +immovability +immovable +immovably +immune +immunities +immunity +immunization +immutable +imp +impact +impacted +impacting +impaction +impactor +impactors +impacts +impair +impaired +impairing +impairs +impale +impart +imparted +impartial +impartially +imparts +impasse +impassive +impatience +impatient +impatiently +impeach +impeachable +impeached +impeachment +impeccable +impedance +impedances +impede +impeded +impedes +impediment +impediments +impeding +impel +impelled +impelling +impend +impending +impenetrability +impenetrable +impenetrably +imperative +imperatively +imperatives +imperceivable +imperceptible +imperfect +imperfection +imperfections +imperfectly +imperial +imperialism +imperialist +imperialists +imperil +imperiled +imperious +imperiously +impermanence +impermanent +impermeable +impermissible +impersonal +impersonally +impersonate +impersonated +impersonates +impersonating +impersonation +impersonations +impertinent +impertinently +impervious +imperviously +impetuous +impetuously +impetus +impinge +impinged +impinges +impinging +impious +implacable +implant +implanted +implanting +implants +implausible +implement +implementable +implementation +implementations +implemented +implementer +implementing +implementor +implementors +implements +implicant +implicants +implicate +implicated +implicates +implicating +implication +implications +implicit +implicitly +implicitness +implied +implies +implore +implored +imploring +imply +implying +impolite +import +importance +important +importantly +importation +imported +importer +importers +importing +imports +impose +imposed +imposes +imposing +imposition +impositions +impossibilities +impossibility +impossible +impossibly +impostor +impostors +impotence +impotency +impotent +impound +impoverish +impoverished +impoverishment +impracticable +impractical +impracticality +impractically +imprecise +imprecisely +imprecision +impregnable +impregnate +impress +impressed +impresser +impresses +impressible +impressing +impression +impressionable +impressionist +impressionistic +impressions +impressive +impressively +impressiveness +impressment +imprimatur +imprint +imprinted +imprinting +imprints +imprison +imprisoned +imprisoning +imprisonment +imprisonments +imprisons +improbability +improbable +impromptu +improper +improperly +impropriety +improve +improved +improvement +improvements +improves +improving +improvisation +improvisational +improvisations +improvise +improvised +improviser +improvisers +improvises +improvising +imprudent +imps +impudent +impudently +impugn +impulse +impulses +impulsion +impulsive +impunity +impure +impurities +impurity +impute +imputed +in +inability +inaccessible +inaccuracies +inaccuracy +inaccurate +inaction +inactivate +inactive +inactivity +inadequacies +inadequacy +inadequate +inadequately +inadequateness +inadmissibility +inadmissible +inadvertent +inadvertently +inadvisable +inalienable +inalterable +inane +inanimate +inanimately +inapplicable +inapproachable +inappropriate +inappropriateness +inasmuch +inattention +inaudible +inaugural +inaugurate +inaugurated +inaugurating +inauguration +inauspicious +inboard +inbound +inbreed +incalculable +incandescent +incantation +incapable +incapacitate +incapacitating +incarcerate +incarnation +incarnations +incendiaries +incendiary +incense +incensed +incenses +incentive +incentives +inception +incessant +incessantly +incest +incestuous +inch +inched +inches +inching +incidence +incident +incidental +incidentally +incidentals +incidents +incinerate +incipient +incisive +incite +incited +incitement +incites +inciting +inclement +inclination +inclinations +incline +inclined +inclines +inclining +inclose +inclosed +incloses +inclosing +include +included +includes +including +inclusion +inclusions +inclusive +inclusively +inclusiveness +incoherence +incoherent +incoherently +income +incomes +incoming +incommensurable +incommensurate +incommunicable +incomparable +incomparably +incompatibilities +incompatibility +incompatible +incompatibly +incompetence +incompetent +incompetents +incomplete +incompletely +incompleteness +incomprehensibility +incomprehensible +incomprehensibly +incomprehension +incompressible +incomputable +inconceivable +inconclusive +incongruity +incongruous +inconsequential +inconsequentially +inconsiderable +inconsiderate +inconsiderately +inconsiderateness +inconsistencies +inconsistency +inconsistent +inconsistently +inconspicuous +incontestable +incontrovertible +incontrovertibly +inconvenience +inconvenienced +inconveniences +inconveniencing +inconvenient +inconveniently +inconvertible +incorporate +incorporated +incorporates +incorporating +incorporation +incorrect +incorrectly +incorrectness +incorrigible +increase +increased +increases +increasing +increasingly +incredible +incredibly +incredulity +incredulous +incredulously +increment +incremental +incrementally +incremented +incrementer +incrementing +increments +incriminate +incubate +incubated +incubates +incubating +incubation +incubator +incubators +inculcate +incumbent +incur +incurable +incurred +incurring +incurs +incursion +indebted +indebtedness +indecent +indecipherable +indecision +indecisive +indeed +indefatigable +indefensible +indefinite +indefinitely +indefiniteness +indelible +indemnify +indemnity +indent +indentation +indentations +indented +indenting +indents +indenture +independence +independent +independently +indescribable +indestructible +indeterminacies +indeterminacy +indeterminate +indeterminately +index +indexable +indexed +indexes +indexing +indicate +indicated +indicates +indicating +indication +indications +indicative +indicator +indicators +indices +indict +indictment +indictments +indifference +indifferent +indifferently +indigenous +indigenously +indigenousness +indigestible +indigestion +indignant +indignantly +indignation +indignities +indignity +indigo +indirect +indirected +indirecting +indirection +indirections +indirectly +indirects +indiscreet +indiscretion +indiscriminate +indiscriminately +indispensability +indispensable +indispensably +indisputable +indistinct +indistinguishable +individual +individualism +individualistic +individuality +individualize +individualized +individualizes +individualizing +individually +individuals +indivisibility +indivisible +indoctrinate +indoctrinated +indoctrinates +indoctrinating +indoctrination +indolent +indolently +indomitable +indoor +indoors +indubitable +induce +induced +inducement +inducements +inducer +induces +inducing +induct +inductance +inductances +inducted +inductee +inducting +induction +inductions +inductive +inductively +inductor +inductors +inducts +indulge +indulged +indulgence +indulgences +indulgent +indulging +industrial +industrialism +industrialist +industrialists +industrialization +industrialized +industrially +industrials +industries +industrious +industriously +industriousness +industry +ineffective +ineffectively +ineffectiveness +ineffectual +inefficiencies +inefficiency +inefficient +inefficiently +inelegant +ineligible +inept +inequalities +inequality +inequitable +inequity +inert +inertia +inertial +inertly +inertness +inescapable +inescapably +inessential +inestimable +inevitabilities +inevitability +inevitable +inevitably +inexact +inexcusable +inexcusably +inexhaustible +inexorable +inexorably +inexpensive +inexpensively +inexperience +inexperienced +inexplicable +infallibility +infallible +infallibly +infamous +infamously +infamy +infancy +infant +infantile +infantry +infantryman +infantrymen +infants +infarct +infatuate +infeasible +infect +infected +infecting +infection +infections +infectious +infectiously +infective +infects +infer +inference +inferences +inferential +inferior +inferiority +inferiors +infernal +infernally +inferno +infernos +inferred +inferring +infers +infertile +infest +infested +infesting +infests +infidel +infidelity +infidels +infighting +infiltrate +infinite +infinitely +infiniteness +infinitesimal +infinitive +infinitives +infinitude +infinitum +infinity +infirm +infirmary +infirmity +infix +inflame +inflamed +inflammable +inflammation +inflammatory +inflatable +inflate +inflated +inflater +inflates +inflating +inflation +inflationary +inflexibility +inflexible +inflict +inflicted +inflicting +inflicts +inflow +influence +influenced +influences +influencing +influential +influentially +influenza +inform +informal +informality +informally +informant +informants +information +informational +informative +informatively +informed +informer +informers +informing +informs +infra +infrared +infrastructure +infrequent +infrequently +infringe +infringed +infringement +infringements +infringes +infringing +infuriate +infuriated +infuriates +infuriating +infuriation +infuse +infused +infuses +infusing +infusion +infusions +ingenious +ingeniously +ingeniousness +ingenuity +ingenuous +ingest +ingestion +inglorious +ingot +ingrate +ingratiate +ingratitude +ingredient +ingredients +ingrown +inhabit +inhabitable +inhabitance +inhabitant +inhabitants +inhabited +inhabiting +inhabits +inhale +inhaled +inhaler +inhales +inhaling +inhere +inherent +inherently +inheres +inherit +inheritable +inheritance +inheritances +inherited +inheriting +inheritor +inheritors +inheritress +inheritresses +inheritrices +inheritrix +inherits +inhibit +inhibited +inhibiting +inhibition +inhibitions +inhibitor +inhibitors +inhibitory +inhibits +inhomogeneities +inhomogeneity +inhomogeneous +inhospitable +inhuman +inhumane +inimical +inimitable +iniquities +iniquity +initial +initialed +initialing +initialization +initializations +initialize +initialized +initializer +initializers +initializes +initializing +initially +initials +initiate +initiated +initiates +initiating +initiation +initiations +initiative +initiatives +initiator +initiators +inject +injected +injecting +injection +injections +injective +injects +injudicious +injunction +injunctions +injure +injured +injures +injuries +injuring +injurious +injury +injustice +injustices +ink +inked +inker +inkers +inking +inkings +inkling +inklings +inks +inlaid +inland +inlay +inlet +inlets +inline +inmate +inmates +inn +innards +innate +innately +inner +innermost +inning +innings +innocence +innocent +innocently +innocents +innocuous +innocuously +innocuousness +innovate +innovation +innovations +innovative +inns +innuendo +innumerability +innumerable +innumerably +inoculate +inoperable +inoperative +inopportune +inordinate +inordinately +inorganic +input +inputs +inquest +inquire +inquired +inquirer +inquirers +inquires +inquiries +inquiring +inquiry +inquisition +inquisitions +inquisitive +inquisitively +inquisitiveness +inroad +inroads +insane +insanely +insanity +insatiable +inscribe +inscribed +inscribes +inscribing +inscription +inscriptions +inscrutable +insect +insecticide +insects +insecure +insecurely +inseminate +insensible +insensitive +insensitively +insensitivity +inseparable +insert +inserted +inserting +insertion +insertions +inserts +inset +inside +insider +insiders +insides +insidious +insidiously +insidiousness +insight +insightful +insights +insignia +insignificance +insignificant +insincere +insincerity +insinuate +insinuated +insinuates +insinuating +insinuation +insinuations +insipid +insist +insisted +insistence +insistent +insistently +insisting +insists +insofar +insolence +insolent +insolently +insoluble +insolvable +insolvent +insomnia +insomniac +inspect +inspected +inspecting +inspection +inspections +inspector +inspectors +inspects +inspiration +inspirations +inspire +inspired +inspirer +inspires +inspiring +instabilities +instability +install +installation +installations +installed +installer +installers +installing +installment +installments +installs +instance +instances +instant +instantaneous +instantaneously +instanter +instantiate +instantiated +instantiates +instantiating +instantiation +instantiations +instantly +instants +instead +instigate +instigated +instigates +instigating +instigator +instigators +instill +instinct +instinctive +instinctively +instincts +instinctual +institute +instituted +instituter +instituters +institutes +instituting +institution +institutional +institutionalize +institutionalized +institutionalizes +institutionalizing +institutionally +institutions +instruct +instructed +instructing +instruction +instructional +instructions +instructive +instructively +instructor +instructors +instructs +instrument +instrumental +instrumentalist +instrumentalists +instrumentally +instrumentals +instrumentation +instrumented +instrumenting +instruments +insubordinate +insufferable +insufficient +insufficiently +insular +insulate +insulated +insulates +insulating +insulation +insulator +insulators +insulin +insult +insulted +insulting +insults +insuperable +insupportable +insurance +insure +insured +insurer +insurers +insures +insurgent +insurgents +insuring +insurmountable +insurrection +insurrections +intact +intangible +intangibles +integer +integers +integrable +integral +integrals +integrand +integrate +integrated +integrates +integrating +integration +integrations +integrative +integrity +intellect +intellects +intellectual +intellectually +intellectuals +intelligence +intelligent +intelligently +intelligentsia +intelligibility +intelligible +intelligibly +intemperate +intend +intended +intending +intends +intense +intensely +intensification +intensified +intensifier +intensifiers +intensifies +intensify +intensifying +intensities +intensity +intensive +intensively +intent +intention +intentional +intentionally +intentioned +intentions +intently +intentness +intents +inter +interact +interacted +interacting +interaction +interactions +interactive +interactively +interactivity +interacts +intercept +intercepted +intercepting +interception +interceptor +intercepts +interchange +interchangeability +interchangeable +interchangeably +interchanged +interchanger +interchanges +interchanging +interchangings +interchannel +intercity +intercom +intercommunicate +intercommunicated +intercommunicates +intercommunicating +intercommunication +interconnect +interconnected +interconnecting +interconnection +interconnections +interconnects +intercontinental +intercourse +interdependence +interdependencies +interdependency +interdependent +interdict +interdiction +interdisciplinary +interest +interested +interesting +interestingly +interests +interface +interfaced +interfacer +interfaces +interfacing +interfere +interfered +interference +interferences +interferes +interfering +interferingly +interferometer +interferometric +interferometry +interframe +intergroup +interim +interior +interiors +interject +interlace +interlaced +interlaces +interlacing +interleave +interleaved +interleaves +interleaving +interlink +interlinked +interlinks +interlisp +intermediary +intermediate +intermediates +interminable +intermingle +intermingled +intermingles +intermingling +intermission +intermittent +intermittently +intermix +intermixed +intermodule +intern +internal +internalize +internalized +internalizes +internalizing +internally +internals +international +internationality +internationally +interned +internetwork +interning +interns +internship +interoffice +interpersonal +interplay +interpolate +interpolated +interpolates +interpolating +interpolation +interpolations +interpose +interposed +interposes +interposing +interpret +interpretable +interpretation +interpretations +interpreted +interpreter +interpreters +interpreting +interpretive +interpretively +interprets +interprocess +interrelate +interrelated +interrelates +interrelating +interrelation +interrelations +interrelationship +interrelationships +interrogate +interrogated +interrogates +interrogating +interrogation +interrogations +interrogative +interrupt +interrupted +interruptible +interrupting +interruption +interruptions +interruptive +interrupts +intersect +intersected +intersecting +intersection +intersections +intersects +intersperse +interspersed +intersperses +interspersing +interspersion +interstage +interstate +intertwine +intertwined +intertwines +intertwining +interval +intervals +intervene +intervened +intervenes +intervening +intervention +interventions +interview +interviewed +interviewee +interviewer +interviewers +interviewing +interviews +interwoven +intestate +intestinal +intestine +intestines +intimacy +intimate +intimated +intimately +intimating +intimation +intimations +intimidate +intimidated +intimidates +intimidating +intimidation +into +intolerable +intolerably +intolerance +intolerant +intonation +intonations +intone +intoxicant +intoxicate +intoxicated +intoxicating +intoxication +intractability +intractable +intractably +intragroup +intraline +intramural +intramuscular +intransigent +intransitive +intransitively +intraoffice +intraprocess +intrastate +intravenous +intrepid +intricacies +intricacy +intricate +intricately +intrigue +intrigued +intrigues +intriguing +intrinsic +intrinsically +introduce +introduced +introduces +introducing +introduction +introductions +introductory +introspect +introspection +introspections +introspective +introvert +introverted +intrude +intruded +intruder +intruders +intrudes +intruding +intrusion +intrusions +intrust +intubate +intubated +intubates +intubation +intuition +intuitionist +intuitions +intuitive +intuitively +inundate +invade +invaded +invader +invaders +invades +invading +invalid +invalidate +invalidated +invalidates +invalidating +invalidation +invalidations +invalidities +invalidity +invalidly +invalids +invaluable +invariable +invariably +invariance +invariant +invariantly +invariants +invasion +invasions +invective +invent +invented +inventing +invention +inventions +inventive +inventively +inventiveness +inventor +inventories +inventors +inventory +invents +inverse +inversely +inverses +inversion +inversions +invert +invertebrate +invertebrates +inverted +inverter +inverters +invertible +inverting +inverts +invest +invested +investigate +investigated +investigates +investigating +investigation +investigations +investigative +investigator +investigators +investigatory +investing +investment +investments +investor +investors +invests +inveterate +invigorate +invincible +invisibility +invisible +invisibly +invitation +invitations +invite +invited +invites +inviting +invocable +invocation +invocations +invoice +invoiced +invoices +invoicing +invoke +invoked +invoker +invokes +invoking +involuntarily +involuntary +involve +involved +involvement +involvements +involves +involving +inward +inwardly +inwardness +inwards +iodine +ion +ionosphere +ionospheric +ions +iota +irate +irately +irateness +ire +ires +iris +irk +irked +irking +irks +irksome +iron +ironed +ironic +ironical +ironically +ironies +ironing +ironings +irons +irony +irradiate +irrational +irrationally +irrationals +irreconcilable +irrecoverable +irreducible +irreducibly +irreflexive +irrefutable +irregular +irregularities +irregularity +irregularly +irregulars +irrelevance +irrelevances +irrelevant +irrelevantly +irreplaceable +irrepressible +irreproducibility +irreproducible +irresistible +irrespective +irrespectively +irresponsible +irresponsibly +irretrievably +irreverent +irreversibility +irreversible +irreversibly +irrevocable +irrevocably +irrigate +irrigated +irrigates +irrigating +irrigation +irritable +irritant +irritate +irritated +irritates +irritating +irritation +irritations +is +island +islander +islanders +islands +isle +isles +islet +islets +isolate +isolated +isolates +isolating +isolation +isolations +isometric +isomorphic +isomorphically +isomorphism +isomorphisms +isotope +isotopes +issuance +issue +issued +issuer +issuers +issues +issuing +isthmus +it +italic +italicize +italicized +italics +itch +itches +itching +item +itemization +itemizations +itemize +itemized +itemizes +itemizing +items +iterate +iterated +iterates +iterating +iteration +iterations +iterative +iteratively +iterator +iterators +itineraries +itinerary +its +itself +ivies +ivory +ivy +jab +jabbed +jabbing +jabs +jack +jackass +jacket +jacketed +jackets +jacking +jackknife +jackpot +jade +jaded +jaguar +jail +jailed +jailer +jailers +jailing +jails +jam +jammed +jamming +jams +janitor +janitors +jar +jargon +jarred +jarring +jarringly +jars +jaundice +jaunt +jauntiness +jaunts +jaunty +javelin +javelins +jaw +jawbone +jaws +jay +jazz +jazzy +jealous +jealousies +jealously +jealousy +jean +jeans +jeep +jeeps +jeer +jeers +jellies +jelly +jellyfish +jenny +jeopardize +jeopardized +jeopardizes +jeopardizing +jeopardy +jerk +jerked +jerkiness +jerking +jerkings +jerks +jerky +jersey +jerseys +jest +jested +jester +jesting +jests +jet +jetliner +jets +jetted +jetting +jewel +jeweled +jeweler +jewelries +jewelry +jewels +jiffy +jig +jigs +jigsaw +jingle +jingled +jingling +jitter +jitterbug +jittery +job +jobs +jockey +jockstrap +jocund +jog +jogging +jogs +join +joined +joiner +joiners +joining +joins +joint +jointly +joints +joke +joked +joker +jokers +jokes +joking +jokingly +jolly +jolt +jolted +jolting +jolts +jonquil +jostle +jostled +jostles +jostling +jot +jots +jotted +jotting +joule +journal +journalism +journalist +journalists +journalize +journalized +journalizes +journalizing +journals +journey +journeyed +journeying +journeyings +journeyman +journeymen +journeys +joust +jousted +jousting +jousts +jovial +joy +joyful +joyfully +joyous +joyously +joyousness +joyride +joys +joystick +jubilee +judge +judged +judges +judging +judgment +judgments +judicial +judiciary +judicious +judiciously +judo +jug +juggle +juggler +jugglers +juggles +juggling +jugs +juice +juices +juiciest +juicy +jumble +jumbled +jumbles +jumbo +jump +jumped +jumper +jumpers +jumping +jumps +jumpy +junction +junctions +juncture +junctures +jungle +jungles +junior +juniors +juniper +junk +junker +junkers +junks +junky +junta +jure +juries +jurisdiction +jurisdictions +jurisprudence +jurist +juror +jurors +jury +just +justice +justices +justifiable +justifiably +justification +justifications +justified +justifier +justifiers +justifies +justify +justifying +justly +justness +jut +jutting +juvenile +juveniles +juxtapose +juxtaposed +juxtaposes +juxtaposing +kangaroo +kanji +kappa +karate +keel +keeled +keeling +keels +keen +keener +keenest +keenly +keenness +keep +keeper +keepers +keeping +keeps +ken +kennel +kennels +kept +kerchief +kerchiefs +kern +kernel +kernels +kerosene +ketchup +kettle +kettles +key +keyboard +keyboards +keyed +keyhole +keying +keynote +keypad +keypads +keys +keystroke +keystrokes +keyword +keywords +kick +kicked +kicker +kickers +kicking +kickoff +kicks +kid +kidded +kiddie +kidding +kidnap +kidnapper +kidnappers +kidnapping +kidnappings +kidnaps +kidney +kidneys +kids +kill +killed +killer +killers +killing +killingly +killings +killjoy +kills +kilobit +kilobits +kiloblock +kilobyte +kilobytes +kilogram +kilograms +kilohertz +kilohm +kilojoule +kilometer +kilometers +kiloton +kilovolt +kilowatt +kiloword +kimono +kin +kind +kinder +kindergarten +kindest +kindhearted +kindle +kindled +kindles +kindling +kindly +kindness +kindred +kinds +kinetic +king +kingdom +kingdoms +kingly +kingpin +kings +kink +kinky +kinship +kinsman +kiosk +kiss +kissed +kisser +kissers +kisses +kissing +kit +kitchen +kitchenette +kitchens +kite +kited +kites +kiting +kits +kitten +kittenish +kittens +kitty +klaxon +kludge +kludges +klystron +knack +knapsack +knapsacks +knave +knaves +knead +kneads +knee +kneecap +kneed +kneeing +kneel +kneeled +kneeling +kneels +knees +knell +knells +knelt +knew +knife +knifed +knifes +knifing +knight +knighted +knighthood +knighting +knightly +knights +knit +knits +knives +knob +knobs +knock +knockdown +knocked +knocker +knockers +knocking +knockout +knocks +knoll +knolls +knot +knots +knotted +knotting +know +knowable +knower +knowhow +knowing +knowingly +knowledge +knowledgeable +known +knows +knuckle +knuckled +knuckles +koala +kosher +kudo +lab +label +labeled +labeling +labelled +labeller +labellers +labelling +labels +labor +laboratories +laboratory +labored +laborer +laborers +laboring +laborings +laborious +laboriously +labors +labs +labyrinth +labyrinths +lace +laced +lacerate +lacerated +lacerates +lacerating +laceration +lacerations +laces +lacing +lack +lacked +lackey +lacking +lacks +lacquer +lacquered +lacquers +lacrosse +lacy +lad +ladder +laden +ladies +lading +ladle +lads +lady +ladylike +lag +lager +lagers +lagoon +lagoons +lags +laid +lain +lair +lairs +laissez +lake +lakes +lamb +lambda +lambdas +lambert +lambs +lame +lamed +lamely +lameness +lament +lamentable +lamentation +lamentations +lamented +lamenting +laments +lames +laminar +laming +lamp +lamplight +lampoon +lamprey +lamps +lance +lanced +lancer +lances +land +landed +lander +landers +landfill +landing +landings +landladies +landlady +landlord +landlords +landmark +landmarks +landowner +landowners +lands +landscape +landscaped +landscapes +landscaping +landslide +lane +lanes +language +languages +languid +languidly +languidness +languish +languished +languishes +languishing +lantern +lanterns +lap +lapel +lapels +lapping +laps +lapse +lapsed +lapses +lapsing +lard +larder +large +largely +largeness +larger +largest +lark +larks +larva +larvae +larynx +lascivious +laser +lasers +lash +lashed +lashes +lashing +lashings +lass +lasses +lasso +last +lasted +lasting +lastly +lasts +latch +latched +latches +latching +late +lately +latency +lateness +latent +later +lateral +laterally +latest +lathe +latitude +latitudes +latrine +latrines +latter +latterly +lattice +lattices +laudable +laugh +laughable +laughably +laughed +laughing +laughingly +laughingstock +laughs +laughter +launch +launched +launcher +launches +launching +launchings +launder +laundered +launderer +laundering +launderings +launders +laundry +laureate +laurel +laurels +lava +lavatories +lavatory +lavender +lavish +lavished +lavishing +lavishly +law +lawbreaker +lawful +lawfully +lawgiver +lawless +lawlessness +lawn +lawns +laws +lawsuit +lawsuits +lawyer +lawyers +lax +laxative +lay +layer +layered +layering +layers +laying +layman +laymen +layoff +layoffs +layout +layouts +lays +lazed +lazier +laziest +lazily +laziness +lazing +lazy +lazybones +lead +leaded +leaden +leader +leaders +leadership +leaderships +leading +leadings +leads +leaf +leafed +leafiest +leafing +leafless +leaflet +leaflets +leafy +league +leagued +leaguer +leaguers +leagues +leak +leakage +leakages +leaked +leaking +leaks +leaky +lean +leaned +leaner +leanest +leaning +leanness +leans +leap +leaped +leapfrog +leaping +leaps +leapt +learn +learned +learner +learners +learning +learns +lease +leased +leases +leash +leashes +leasing +least +leather +leathered +leathern +leatherneck +leathers +leave +leaved +leaven +leavened +leavening +leaves +leaving +leavings +lechery +lecture +lectured +lecturer +lecturers +lectures +lecturing +led +ledge +ledger +ledgers +ledges +lee +leech +leeches +leek +leer +leery +lees +leeward +leeway +left +leftist +leftists +leftmost +leftover +leftovers +leftward +leg +legacies +legacy +legal +legality +legalization +legalize +legalized +legalizes +legalizing +legally +legend +legendary +legends +legged +leggings +legibility +legible +legibly +legion +legions +legislate +legislated +legislates +legislating +legislation +legislative +legislator +legislators +legislature +legislatures +legitimacy +legitimate +legitimately +legs +legume +leisure +leisurely +lemma +lemmas +lemming +lemmings +lemon +lemonade +lemons +lend +lender +lenders +lending +lends +length +lengthen +lengthened +lengthening +lengthens +lengthly +lengths +lengthwise +lengthy +leniency +lenient +leniently +lens +lenses +lent +lentil +lentils +leopard +leopards +leper +leprosy +less +lessen +lessened +lessening +lessens +lesser +lesson +lessons +lessor +lest +let +lethal +lets +letter +lettered +letterer +letterhead +lettering +letters +letting +lettuce +leukemia +levee +levees +level +leveled +leveler +leveling +levelled +leveller +levellest +levelling +levelly +levelness +levels +lever +leverage +levers +levied +levies +levity +levy +levying +lewd +lewdly +lewdness +lexical +lexically +lexicographic +lexicographical +lexicographically +lexicon +lexicons +liabilities +liability +liable +liaison +liaisons +liar +liars +libel +libelous +liberal +liberalize +liberalized +liberalizes +liberalizing +liberally +liberals +liberate +liberated +liberates +liberating +liberation +liberator +liberators +libertarian +liberties +liberty +libido +librarian +librarians +libraries +library +libretto +lice +license +licensed +licensee +licenses +licensing +licensor +licentious +lichen +lichens +lick +licked +licking +licks +licorice +lid +lids +lie +lied +liege +lien +liens +lies +lieu +lieutenant +lieutenants +life +lifeblood +lifeboat +lifeguard +lifeless +lifelessness +lifelike +lifelong +lifer +lifespan +lifestyle +lifestyles +lifetime +lifetimes +lift +lifted +lifter +lifters +lifting +lifts +ligament +ligature +light +lighted +lighten +lightens +lighter +lighters +lightest +lightface +lighthearted +lighthouse +lighthouses +lighting +lightly +lightness +lightning +lightnings +lights +lightweight +like +liked +likelier +likeliest +likelihood +likelihoods +likeliness +likely +liken +likened +likeness +likenesses +likening +likens +likes +likewise +liking +lilac +lilacs +lilies +lily +limb +limber +limbo +limbs +lime +limelight +limes +limestone +limit +limitability +limitably +limitation +limitations +limited +limiter +limiters +limiting +limitless +limits +limousine +limp +limped +limping +limply +limpness +limps +linden +line +linear +linearities +linearity +linearizable +linearize +linearized +linearizes +linearizing +linearly +lined +linen +linens +liner +liners +lines +lineup +linger +lingered +lingerie +lingering +lingers +lingo +lingua +linguist +linguistic +linguistically +linguistics +linguists +lining +linings +link +linkage +linkages +linked +linker +linkers +linking +links +linoleum +linseed +lint +lion +lioness +lionesses +lions +lip +lips +lipstick +liquid +liquidate +liquidation +liquidations +liquidity +liquids +liquor +liquors +lisp +lisped +lisping +lisps +list +listed +listen +listened +listener +listeners +listening +listens +listers +listing +listings +listless +lists +lit +litany +liter +literacy +literal +literally +literalness +literals +literary +literate +literature +literatures +liters +lithe +lithograph +lithography +litigant +litigate +litigation +litigious +litmus +litter +litterbug +littered +littering +litters +little +littleness +littler +littlest +livable +livably +live +lived +livelihood +lively +liveness +liver +liveried +livers +livery +lives +livestock +livid +living +lizard +lizards +load +loaded +loader +loaders +loading +loadings +loads +loaf +loafed +loafer +loan +loaned +loaning +loans +loath +loathe +loathed +loathing +loathly +loathsome +loaves +lobbied +lobbies +lobby +lobbying +lobe +lobes +lobster +lobsters +local +localities +locality +localization +localize +localized +localizes +localizing +locally +locals +locate +located +locates +locating +location +locations +locative +locatives +locator +locators +loci +lock +locked +locker +lockers +locking +lockings +lockout +lockouts +locks +locksmith +lockstep +lockup +lockups +locomotion +locomotive +locomotives +locus +locust +locusts +lodge +lodged +lodger +lodges +lodging +lodgings +loft +loftiness +lofts +lofty +logarithm +logarithmic +logarithmically +logarithms +logged +logger +loggers +logging +logic +logical +logically +logician +logicians +logics +login +logins +logistic +logistics +logjam +logo +logs +loin +loincloth +loins +loiter +loitered +loiterer +loitering +loiters +lone +lonelier +loneliest +loneliness +lonely +loner +loners +lonesome +long +longed +longer +longest +longevity +longhand +longing +longings +longitude +longitudes +longs +longstanding +look +lookahead +looked +looker +lookers +looking +lookout +looks +lookup +lookups +loom +loomed +looming +looms +loon +loop +looped +loophole +loopholes +looping +loops +loose +loosed +looseleaf +loosely +loosen +loosened +looseness +loosening +loosens +looser +looses +loosest +loosing +loot +looted +looter +looting +loots +lopsided +lord +lordly +lords +lordship +lore +lorry +lose +loser +losers +loses +losing +loss +losses +lossier +lossiest +lossy +lost +lot +lotion +lots +lottery +lotus +loud +louder +loudest +loudly +loudness +loudspeaker +loudspeakers +lounge +lounged +lounges +lounging +louse +lousy +lout +lovable +lovably +love +loved +lovelier +lovelies +loveliest +loveliness +lovelorn +lovely +lover +lovers +loves +loving +lovingly +low +lower +lowered +lowering +lowers +lowest +lowland +lowlands +lowliest +lowly +lowness +lows +loyal +loyally +loyalties +loyalty +lubricant +lubricate +lubrication +lucid +luck +lucked +luckier +luckiest +luckily +luckless +lucks +lucky +lucrative +ludicrous +ludicrously +ludicrousness +luggage +lukewarm +lull +lullaby +lulled +lulls +lumber +lumbered +lumbering +luminous +luminously +lummox +lump +lumped +lumping +lumps +lumpy +lunar +lunatic +lunch +lunched +luncheon +luncheons +lunches +lunching +lung +lunged +lungs +lurch +lurched +lurches +lurching +lure +lured +lures +luring +lurk +lurked +lurking +lurks +luscious +lusciously +lusciousness +lush +lust +luster +lustful +lustily +lustiness +lustrous +lusts +lusty +lute +lutes +luxuriant +luxuriantly +luxuries +luxurious +luxuriously +luxury +lying +lymph +lynch +lynched +lyncher +lynches +lynx +lynxes +lyre +lyric +lyrics +mace +maced +maces +machination +machine +machined +machinelike +machinery +machines +machining +macho +macintosh +mackerel +macro +macroeconomics +macromolecule +macromolecules +macrophage +macros +macroscopic +mad +madam +madden +maddening +madder +maddest +made +madhouse +madly +madman +madmen +madness +madras +maestro +magazine +magazines +magenta +maggot +maggots +magic +magical +magically +magician +magicians +magistrate +magistrates +magna +magnesium +magnet +magnetic +magnetically +magnetism +magnetisms +magnetizable +magnetized +magneto +magnification +magnificence +magnificent +magnificently +magnified +magnifier +magnifies +magnify +magnifying +magnitude +magnitudes +magnolia +magnum +magpie +mahogany +maid +maiden +maidens +maids +mail +mailable +mailbox +mailboxes +mailed +mailer +mailing +mailings +mailman +mailmen +mails +maim +maimed +maiming +maims +main +mainframe +mainframes +mainland +mainline +mainly +mains +mainstay +mainstream +maintain +maintainability +maintainable +maintained +maintainer +maintainers +maintaining +maintains +maintenance +maintenances +maize +majestic +majesties +majesty +major +majored +majoring +majorities +majority +majors +makable +make +maker +makers +makes +makeshift +makeup +makeups +making +makings +maladies +malady +malaria +malcontent +male +malefactor +malefactors +maleness +males +malevolent +malformed +malfunction +malfunctioned +malfunctioning +malfunctions +malice +malicious +maliciously +maliciousness +malign +malignant +malignantly +mall +mallard +mallet +mallets +malnutrition +malpractice +malt +malted +malts +mama +mamma +mammal +mammalian +mammals +mammas +mammoth +man +manage +manageable +manageableness +managed +management +managements +manager +managerial +managers +manages +managing +mandarin +mandate +mandated +mandates +mandating +mandatory +mandible +mane +manes +maneuver +maneuvered +maneuvering +maneuvers +manger +mangers +mangle +mangled +mangler +mangles +mangling +manhole +manhood +mania +maniac +maniacal +maniacs +manic +manicure +manicured +manicures +manicuring +manifest +manifestation +manifestations +manifested +manifesting +manifestly +manifests +manifold +manifolds +manipulability +manipulable +manipulatable +manipulate +manipulated +manipulates +manipulating +manipulation +manipulations +manipulative +manipulator +manipulators +manipulatory +mankind +manly +manned +manner +mannered +mannerly +manners +manning +manometer +manometers +manor +manors +manpower +mansion +mansions +manslaughter +mantel +mantels +mantis +mantissa +mantissas +mantle +mantlepiece +mantles +manual +manually +manuals +manufacture +manufactured +manufacturer +manufacturers +manufactures +manufacturing +manure +manuscript +manuscripts +many +map +maple +maples +mappable +mapped +mapping +mappings +maps +marathon +marble +marbles +marbling +march +marched +marcher +marches +marching +mare +mares +margarine +margin +marginal +marginally +margins +marigold +marijuana +marina +marinade +marinate +marine +mariner +marines +marionette +marital +maritime +mark +markable +marked +markedly +marker +markers +market +marketability +marketable +marketed +marketing +marketings +marketplace +marketplaces +markets +marking +markings +marmalade +marmot +maroon +marquis +marriage +marriageable +marriages +married +marries +marrow +marry +marrying +marsh +marshal +marshaled +marshaling +marshals +marshes +marshmallow +mart +marten +martial +martingale +martini +marts +martyr +martyrdom +martyrs +marvel +marveled +marvelled +marvelling +marvelous +marvelously +marvelousness +marvels +mascara +masculine +masculinely +masculinity +mash +mashed +mashes +mashing +mask +maskable +masked +masker +masking +maskings +masks +masochist +masochists +mason +masonry +masons +masquerade +masquerader +masquerades +masquerading +mass +massacre +massacred +massacres +massage +massages +massaging +massed +masses +massing +massive +mast +masted +master +mastered +masterful +masterfully +mastering +masterings +masterly +mastermind +masterpiece +masterpieces +masters +mastery +mastodon +masts +masturbate +masturbated +masturbates +masturbating +masturbation +mat +match +matchable +matched +matcher +matchers +matches +matching +matchings +matchless +mate +mated +mater +material +materialist +materialize +materialized +materializes +materializing +materially +materials +maternal +maternally +maternity +mates +math +mathematical +mathematically +mathematician +mathematicians +mathematics +mating +matings +matriarch +matriarchal +matrices +matriculate +matriculation +matrimonial +matrimony +matrix +matroid +matron +matronly +mats +matted +matter +mattered +matters +mattress +mattresses +maturation +mature +matured +maturely +matures +maturing +maturities +maturity +maul +mausoleum +maverick +maxim +maxima +maximal +maximally +maximize +maximized +maximizer +maximizers +maximizes +maximizing +maxims +maximum +maximums +maybe +mayhap +mayhem +mayonnaise +mayor +mayoral +mayors +maze +mazes +me +mead +meadow +meadows +meager +meagerly +meagerness +meal +meals +mealtime +mealy +mean +meander +meandered +meandering +meanders +meaner +meanest +meaning +meaningful +meaningfully +meaningfulness +meaningless +meaninglessly +meaninglessness +meanings +meanly +meanness +means +meant +meantime +meanwhile +measle +measles +measurable +measurably +measure +measured +measurement +measurements +measurer +measures +measuring +meat +meats +meaty +mechanic +mechanical +mechanically +mechanics +mechanism +mechanisms +mechanization +mechanizations +mechanize +mechanized +mechanizes +mechanizing +medal +medallion +medallions +medals +meddle +meddled +meddler +meddles +meddling +media +median +medians +mediate +mediated +mediates +mediating +mediation +mediations +mediator +medic +medical +medically +medicinal +medicinally +medicine +medicines +medics +medieval +mediocre +mediocrity +meditate +meditated +meditates +meditating +meditation +meditations +meditative +medium +mediums +medley +meek +meeker +meekest +meekly +meekness +meet +meeting +meetinghouse +meetings +meets +megabaud +megabit +megabits +megabyte +megabytes +megahertz +megalomania +megaton +megavolt +megawatt +megaword +megawords +megohm +melancholy +mellow +mellowed +mellowing +mellowness +mellows +melodies +melodious +melodiously +melodiousness +melodrama +melodramas +melodramatic +melody +melon +melons +melt +melted +melting +meltingly +melts +member +members +membership +memberships +membrane +memento +memo +memoir +memoirs +memorabilia +memorable +memorableness +memoranda +memorandum +memorial +memorially +memorials +memories +memorization +memorize +memorized +memorizer +memorizes +memorizing +memory +memoryless +memos +men +menace +menaced +menacing +menagerie +menarche +mend +mendacious +mendacity +mended +mender +mending +mends +menial +menials +mens +menstruate +mensurable +mensuration +mental +mentalities +mentality +mentally +mention +mentionable +mentioned +mentioner +mentioners +mentioning +mentions +mentor +mentors +menu +menus +mercantile +mercenaries +mercenariness +mercenary +merchandise +merchandiser +merchandising +merchant +merchants +merciful +mercifully +merciless +mercilessly +mercurial +mercury +mercy +mere +merely +merest +merge +merged +merger +mergers +merges +merging +meridian +meringue +merit +merited +meriting +meritorious +meritoriously +meritoriousness +merits +mermaid +merriest +merrily +merriment +merry +mescaline +mesh +meson +mesquite +mess +message +messages +messed +messenger +messengers +messes +messiahs +messier +messiest +messily +messiness +messing +messy +met +meta +metabolic +metabolism +metacircular +metacircularity +metal +metalanguage +metallic +metallization +metallizations +metallurgy +metals +metamathematical +metamorphosis +metaphor +metaphorical +metaphorically +metaphors +metaphysical +metaphysically +metaphysics +metavariable +mete +meted +meteor +meteoric +meteorite +meteoritic +meteorology +meteors +meter +metering +meters +metes +methane +method +methodical +methodically +methodicalness +methodists +methodological +methodologically +methodologies +methodologists +methodology +methods +meticulously +meting +metric +metrical +metrics +metro +metronome +metropolis +metropolitan +mets +mettle +mettlesome +mew +mewed +mews +miasma +mica +mice +micro +microarchitects +microarchitecture +microarchitectures +microbial +microbicidal +microbicide +microcode +microcoded +microcodes +microcoding +microcomputer +microcomputers +microcosm +microcycle +microcycles +microeconomics +microelectronics +microfilm +microfilms +microgramming +microinstruction +microinstructions +microjump +microjumps +microlevel +micron +microoperations +microphone +microphones +microphoning +microprocedure +microprocedures +microprocessing +microprocessor +microprocessors +microprogram +microprogrammable +microprogrammed +microprogrammer +microprogramming +microprograms +micros +microscope +microscopes +microscopic +microscopy +microsecond +microseconds +microstore +microsystems +microwave +microwaves +microword +microwords +mid +midday +middle +middleman +middlemen +middles +middling +midget +midnight +midnights +midpoint +midpoints +midrange +midscale +midsection +midshipman +midshipmen +midst +midstream +midsts +midsummer +midway +midweek +midwife +midwinter +midwives +mien +might +mightier +mightiest +mightily +mightiness +mighty +migrant +migrate +migrated +migrates +migrating +migration +migrations +migratory +mike +mild +milder +mildest +mildew +mildly +mildness +mile +mileage +milestone +milestones +militant +militantly +militarily +militarism +military +militia +milk +milked +milker +milkers +milkiness +milking +milkmaid +milkmaids +milks +milky +mill +milled +millennium +miller +millet +milliammeter +milliampere +millijoule +millimeter +millimeters +millinery +milling +million +millionaire +millionaires +millions +millionth +millipede +millipedes +millisecond +milliseconds +millivolt +millivoltmeter +milliwatt +millstone +millstones +mimeograph +mimic +mimicked +mimicking +mimics +minaret +mince +minced +mincemeat +minces +mincing +mind +minded +mindful +mindfully +mindfulness +minding +mindless +mindlessly +minds +mine +mined +minefield +miner +mineral +minerals +miners +mines +minesweeper +mingle +mingled +mingles +mingling +mini +miniature +miniatures +miniaturization +miniaturize +miniaturized +miniaturizes +miniaturizing +minicomputer +minicomputers +minima +minimal +minimally +minimax +minimization +minimizations +minimize +minimized +minimizer +minimizers +minimizes +minimizing +minimum +mining +minion +minis +minister +ministered +ministering +ministers +ministries +ministry +mink +minks +minnow +minnows +minor +minoring +minorities +minority +minors +minstrel +minstrels +mint +minted +minter +minting +mints +minuend +minuet +minus +minuscule +minute +minutely +minuteman +minutemen +minuteness +minuter +minutes +miracle +miracles +miraculous +miraculously +mirage +mire +mired +mires +mirror +mirrored +mirroring +mirrors +mirth +misanthrope +misbehaving +miscalculation +miscalculations +miscarriage +miscarry +miscegenation +miscellaneous +miscellaneously +miscellaneousness +mischief +mischievous +mischievously +mischievousness +misconception +misconceptions +misconduct +misconstrue +misconstrued +misconstrues +misdemeanors +miser +miserable +miserableness +miserably +miseries +miserly +misers +misery +misfit +misfits +misfortune +misfortunes +misgiving +misgivings +misguided +mishap +mishaps +misinformed +misjudged +misjudgment +mislead +misleading +misleads +misled +mismanagement +mismatch +mismatched +mismatches +mismatching +misnomer +misplace +misplaced +misplaces +misplacing +mispronunciation +misrepresentation +misrepresentations +miss +missed +misses +misshapen +missile +missiles +missing +mission +missionaries +missionary +missioner +missions +missive +misspell +misspelled +misspelling +misspellings +misspells +mist +mistakable +mistake +mistaken +mistakenly +mistakes +mistaking +misted +mister +misters +mistiness +misting +mistletoe +mistress +mistrust +mistrusted +mists +misty +mistype +mistyped +mistypes +mistyping +misunderstand +misunderstander +misunderstanders +misunderstanding +misunderstandings +misunderstood +misuse +misused +misuses +misusing +miter +mitigate +mitigated +mitigates +mitigating +mitigation +mitigative +mitten +mittens +mix +mixed +mixer +mixers +mixes +mixing +mixture +mixtures +mixup +mnemonic +mnemonically +mnemonics +moan +moaned +moans +moat +moats +mob +mobile +mobility +mobs +mobster +moccasin +moccasins +mock +mocked +mocker +mockery +mocking +mockingbird +mocks +mockup +modal +modalities +modality +modally +mode +model +modeled +modeling +modelings +models +modem +modems +moderate +moderated +moderately +moderateness +moderates +moderating +moderation +modern +modernity +modernize +modernized +modernizer +modernizing +modernly +modernness +moderns +modes +modest +modestly +modesty +modicum +modifiability +modifiable +modification +modifications +modified +modifier +modifiers +modifies +modify +modifying +modular +modularity +modularization +modularize +modularized +modularizes +modularizing +modularly +modulate +modulated +modulates +modulating +modulation +modulations +modulator +modulators +module +modules +moduli +modulo +modulus +modus +moist +moisten +moistly +moistness +moisture +molar +molasses +mold +molded +molder +molding +molds +mole +molecular +molecule +molecules +molehill +moles +molest +molested +molesting +molests +mollify +mollusk +mollycoddle +molten +moment +momentarily +momentariness +momentary +momentous +momentously +momentousness +moments +momentum +mommy +monadic +monarch +monarchies +monarchs +monarchy +monasteries +monastery +monastic +monetarism +monetary +money +moneyed +moneys +mongoose +monitor +monitored +monitoring +monitors +monk +monkey +monkeyed +monkeying +monkeys +monkish +monks +monoalphabetic +monochromatic +monochrome +monocotyledon +monocular +monogamous +monogamy +monogram +monograms +monograph +monographes +monographs +monolith +monolithic +monologue +monopolies +monopolize +monopolized +monopolizing +monopoly +monoprogrammed +monoprogramming +monostable +monotheism +monotone +monotonic +monotonically +monotonicity +monotonous +monotonously +monotonousness +monotony +monsoon +monster +monsters +monstrosity +monstrous +monstrously +month +monthly +months +monument +monumental +monumentally +monuments +moo +mood +moodiness +moods +moody +mooned +mooning +moonlight +moonlighter +moonlighting +moonlit +moons +moonshine +moored +mooring +moorings +moose +moot +mop +moped +mops +moraine +moral +morale +moralities +morality +morally +morals +morass +moratorium +morbid +morbidly +morbidness +more +moreover +mores +moribund +morn +morning +mornings +moron +morose +morphine +morphism +morphisms +morphological +morphology +morrow +morsel +morsels +mortal +mortality +mortally +mortals +mortar +mortared +mortaring +mortars +mortem +mortgage +mortgages +mortician +mortification +mortified +mortifies +mortify +mortifying +mosaic +mosaics +mosque +mosquito +mosquitoes +moss +mosses +mossy +most +mostly +motel +motels +moth +mothball +mothballs +mother +mothered +motherer +motherers +motherhood +mothering +motherland +motherly +mothers +motif +motifs +motion +motioned +motioning +motionless +motionlessly +motionlessness +motions +motivate +motivated +motivates +motivating +motivation +motivations +motive +motives +motley +motor +motorcar +motorcars +motorcycle +motorcycles +motoring +motorist +motorists +motorize +motorized +motorizes +motorizing +motors +motto +mottoes +mould +moulding +mound +mounded +mounds +mount +mountable +mountain +mountaineer +mountaineering +mountaineers +mountainous +mountainously +mountains +mounted +mounter +mounting +mountings +mounts +mourn +mourned +mourner +mourners +mournful +mournfully +mournfulness +mourning +mourns +mouse +mouser +mouses +mousetrap +mousy +mouth +mouthed +mouthes +mouthful +mouthing +mouthpiece +mouths +movable +move +moved +movement +movements +mover +movers +moves +movie +movies +moving +movings +mow +mowed +mower +mows +mu +much +muck +mucker +mucking +mucus +mud +muddied +muddiness +muddle +muddled +muddlehead +muddler +muddlers +muddles +muddling +muddy +muff +muffin +muffins +muffle +muffled +muffler +muffles +muffling +muffs +mug +mugging +mugs +mulatto +mulberries +mulberry +mule +mules +mull +mullah +multi +multibit +multibyte +multicast +multicasting +multicasts +multicellular +multicomputer +multidimensional +multilateral +multilayer +multilayered +multilevel +multimedia +multinational +multiple +multiples +multiplex +multiplexed +multiplexer +multiplexers +multiplexes +multiplexing +multiplexor +multiplexors +multiplicand +multiplicands +multiplication +multiplications +multiplicative +multiplicatives +multiplicity +multiplied +multiplier +multipliers +multiplies +multiply +multiplying +multiprocess +multiprocessing +multiprocessor +multiprocessors +multiprogram +multiprogrammed +multiprogramming +multistage +multitude +multitudes +multiuser +multivariate +multiword +mumble +mumbled +mumbler +mumblers +mumbles +mumbling +mumblings +mummies +mummy +munch +munched +munching +mundane +mundanely +mung +municipal +municipalities +municipality +municipally +munition +munitions +mural +murder +murdered +murderer +murderers +murdering +murderous +murderously +murders +murky +murmur +murmured +murmurer +murmuring +murmurs +muscle +muscled +muscles +muscling +muscular +musculature +muse +mused +muses +museum +museums +mush +mushroom +mushroomed +mushrooming +mushrooms +mushy +music +musical +musically +musicals +musician +musicianly +musicians +musicology +musing +musings +musk +musket +muskets +muskox +muskoxen +muskrat +muskrats +musks +muslin +mussel +mussels +must +mustache +mustached +mustaches +mustard +muster +mustiness +musts +musty +mutability +mutable +mutableness +mutandis +mutant +mutate +mutated +mutates +mutating +mutation +mutations +mutatis +mutative +mute +muted +mutely +muteness +mutilate +mutilated +mutilates +mutilating +mutilation +mutinies +mutiny +mutt +mutter +muttered +mutterer +mutterers +muttering +mutters +mutton +mutual +mutually +muzzle +muzzles +my +myriad +myrtle +myself +mysteries +mysterious +mysteriously +mysteriousness +mystery +mystic +mystical +mystics +mystify +myth +mythical +mythologies +mythology +nab +nabla +nablas +nadir +nag +nagged +nagging +nags +nail +nailed +nailing +nails +naive +naively +naiveness +naivete +naked +nakedly +nakedness +name +nameable +named +nameless +namelessly +namely +namer +namers +names +namesake +namesakes +naming +nanoinstruction +nanoinstructions +nanoprogram +nanoprogramming +nanosecond +nanoseconds +nanostore +nanostores +nap +napkin +napkins +naps +narcissus +narcotic +narcotics +narrate +narration +narrative +narratives +narrow +narrowed +narrower +narrowest +narrowing +narrowly +narrowness +narrows +nary +nasal +nasally +nastier +nastiest +nastily +nastiness +nasty +natal +nation +national +nationalist +nationalists +nationalities +nationality +nationalization +nationalize +nationalized +nationalizes +nationalizing +nationally +nationals +nationhood +nations +nationwide +native +natively +natives +nativity +natural +naturalism +naturalist +naturalization +naturally +naturalness +naturals +nature +natured +natures +naught +naughtier +naughtiness +naughty +nausea +nauseate +nauseum +naval +navally +navel +navies +navigable +navigate +navigated +navigates +navigating +navigation +navigator +navigators +navy +nay +near +nearby +neared +nearer +nearest +nearing +nearly +nearness +nears +nearsighted +neat +neater +neatest +neatly +neatness +nebula +nebular +nebulous +necessaries +necessarily +necessary +necessitate +necessitated +necessitates +necessitating +necessitation +necessities +necessity +neck +necking +necklace +necklaces +neckline +necks +necktie +neckties +necrosis +nectar +need +needed +needful +needing +needle +needled +needler +needlers +needles +needless +needlessly +needlessness +needlework +needling +needs +needy +negate +negated +negates +negating +negation +negations +negative +negatively +negatives +negator +negators +neglect +neglected +neglecting +neglects +negligee +negligence +negligent +negligible +negotiable +negotiate +negotiated +negotiates +negotiating +negotiation +negotiations +neigh +neighbor +neighborhood +neighborhoods +neighboring +neighborly +neighbors +neither +nemesis +neoclassic +neon +neonatal +neophyte +neophytes +nephew +nephews +nerve +nerves +nervous +nervously +nervousness +nest +nested +nester +nesting +nestle +nestled +nestles +nestling +nests +net +nether +nets +netted +netting +nettle +nettled +network +networked +networking +networks +neural +neuritis +neurological +neurologists +neuron +neurons +neuroses +neurosis +neurotic +neuter +neutral +neutralities +neutrality +neutralize +neutralized +neutralizing +neutrally +neutrino +neutrinos +neutron +never +nevertheless +new +newborn +newcomer +newcomers +newer +newest +newly +newlywed +newness +newscast +newsgroup +newsletter +newsletters +newsman +newsmen +newspaper +newspapers +newsstand +newt +next +nibble +nibbled +nibbler +nibblers +nibbles +nibbling +nice +nicely +niceness +nicer +nicest +niche +nick +nicked +nickel +nickels +nicker +nicking +nickname +nicknamed +nicknames +nicks +nicotine +niece +nieces +nifty +nigh +night +nightcap +nightclub +nightfall +nightgown +nightingale +nightingales +nightly +nightmare +nightmares +nightmarish +nights +nighttime +nihilism +nil +nimble +nimbleness +nimbler +nimbly +nimbus +nine +ninefold +nines +nineteen +nineteens +nineteenth +nineties +ninetieth +ninety +ninth +nip +nipple +nips +nitric +nitrogen +nitrous +nitty +no +nobility +noble +nobleman +nobleness +nobler +nobles +noblest +nobly +nobody +nocturnal +nocturnally +nod +nodal +nodded +nodding +node +nodes +nods +nodular +nodule +noise +noiseless +noiselessly +noises +noisier +noisily +noisiness +noisy +nomenclature +nominal +nominally +nominate +nominated +nominating +nomination +nominative +nominee +non +nonadaptive +nonbiodegradable +nonblocking +nonce +nonchalant +noncommercial +noncommunication +nonconsecutively +nonconservative +noncritical +noncyclic +nondecreasing +nondescript +nondescriptly +nondestructively +nondeterminacy +nondeterminate +nondeterminately +nondeterminism +nondeterministic +nondeterministically +none +nonempty +nonetheless +nonexistence +nonexistent +nonextensible +nonfunctional +nongovernmental +nonidempotent +noninteracting +noninterference +noninterleaved +nonintrusive +nonintuitive +noninverting +nonlinear +nonlinearities +nonlinearity +nonlinearly +nonlocal +nonmaskable +nonmathematical +nonmilitary +nonnegative +nonnegligible +nonnumerical +nonogenarian +nonorthogonal +nonorthogonality +nonperishable +nonpersistent +nonportable +nonprocedural +nonprocedurally +nonprofit +nonprogrammable +nonprogrammer +nonsegmented +nonsense +nonsensical +nonsequential +nonspecialist +nonspecialists +nonstandard +nonsynchronous +nontechnical +nonterminal +nonterminals +nonterminating +nontermination +nonthermal +nontransparent +nontrivial +nonuniform +nonuniformity +nonzero +noodle +nook +nooks +noon +noonday +noons +noontide +noontime +noose +nor +norm +normal +normalcy +normality +normalization +normalize +normalized +normalizes +normalizing +normally +normals +normative +norms +north +northbound +northeast +northeaster +northeastern +northerly +northern +northerner +northerners +northernly +northward +northwards +northwest +northwestern +nose +nosed +noses +nosing +nostalgia +nostalgic +nostril +nostrils +not +notable +notables +notably +notarize +notarized +notarizes +notarizing +notary +notation +notational +notations +notch +notched +notches +notching +note +notebook +notebooks +noted +notes +noteworthy +nothing +nothingness +nothings +notice +noticeable +noticeably +noticed +notices +noticing +notification +notifications +notified +notifier +notifiers +notifies +notify +notifying +noting +notion +notions +notoriety +notorious +notoriously +notwithstanding +noun +nouns +nourish +nourished +nourishes +nourishing +nourishment +novel +novelist +novelists +novels +novelties +novelty +novice +novices +now +nowadays +nowhere +noxious +nozzle +nu +nuance +nuances +nubile +nuclear +nuclei +nucleic +nucleotide +nucleotides +nucleus +nuclide +nude +nudge +nudged +nudity +nugget +nuisance +nuisances +null +nullary +nulled +nullified +nullifiers +nullifies +nullify +nullifying +nulls +numb +numbed +number +numbered +numberer +numbering +numberless +numbers +numbing +numbly +numbness +numbs +numerable +numeral +numerals +numerator +numerators +numeric +numerical +numerically +numerics +numerous +numismatic +numismatist +nun +nuns +nuptial +nurse +nursed +nurseries +nursery +nurses +nursing +nurture +nurtured +nurtures +nurturing +nut +nutate +nutria +nutrient +nutrition +nutritious +nuts +nutshell +nutshells +nuzzle +nylon +nymph +nymphomania +nymphomaniac +nymphs +oaf +oak +oaken +oaks +oar +oars +oases +oasis +oat +oaten +oath +oaths +oatmeal +oats +obedience +obediences +obedient +obediently +obelisk +obese +obey +obeyed +obeying +obeys +obfuscate +obfuscatory +obituary +object +objected +objecting +objection +objectionable +objections +objective +objectively +objectives +objector +objectors +objects +obligated +obligation +obligations +obligatory +oblige +obliged +obliges +obliging +obligingly +oblique +obliquely +obliqueness +obliterate +obliterated +obliterates +obliterating +obliteration +oblivion +oblivious +obliviously +obliviousness +oblong +obnoxious +oboe +obscene +obscure +obscured +obscurely +obscurer +obscures +obscuring +obscurities +obscurity +obsequious +observable +observance +observances +observant +observation +observations +observatory +observe +observed +observer +observers +observes +observing +obsession +obsessions +obsessive +obsolescence +obsolescent +obsolete +obsoleted +obsoletes +obsoleting +obstacle +obstacles +obstinacy +obstinate +obstinately +obstruct +obstructed +obstructing +obstruction +obstructions +obstructive +obtain +obtainable +obtainably +obtained +obtaining +obtains +obviate +obviated +obviates +obviating +obviation +obviations +obvious +obviously +obviousness +occasion +occasional +occasionally +occasioned +occasioning +occasionings +occasions +occipital +occlude +occluded +occludes +occlusion +occlusions +occult +occupancies +occupancy +occupant +occupants +occupation +occupational +occupationally +occupations +occupied +occupier +occupies +occupy +occupying +occur +occurred +occurrence +occurrences +occurring +occurs +ocean +oceanic +oceanography +oceans +octagon +octagonal +octahedra +octahedral +octahedron +octal +octane +octave +octaves +octet +octets +octogenarian +octopus +odd +odder +oddest +oddities +oddity +oddly +oddness +odds +ode +odes +odious +odiously +odiousness +odium +odor +odorous +odorously +odorousness +odors +of +off +offend +offended +offender +offenders +offending +offends +offense +offenses +offensive +offensively +offensiveness +offer +offered +offerer +offerers +offering +offerings +offers +offhand +office +officemate +officer +officers +offices +official +officialdom +officially +officials +officiate +officio +officious +officiously +officiousness +offing +offload +offs +offset +offsets +offsetting +offshore +offspring +oft +often +oftentimes +oh +ohm +ohmmeter +oil +oilcloth +oiled +oiler +oilers +oilier +oiliest +oiling +oils +oily +ointment +okay +old +olden +older +oldest +oldness +oldy +oleander +oleomargarine +oligarchy +olive +olives +omega +omelet +omen +omens +omicron +ominous +ominously +ominousness +omission +omissions +omit +omits +omitted +omitting +omnibus +omnidirectional +omnipotent +omnipresent +omniscient +omnisciently +omnivore +on +onanism +once +oncology +one +oneness +onerous +ones +oneself +onetime +ongoing +onion +onions +online +onlooker +only +onrush +onset +onsets +onslaught +onto +ontology +onus +onward +onwards +onyx +ooze +oozed +opacity +opal +opals +opaque +opaquely +opaqueness +opcode +open +opened +opener +openers +opening +openings +openly +openness +opens +opera +operable +operand +operandi +operands +operas +operate +operated +operates +operating +operation +operational +operationally +operations +operative +operatives +operator +operators +operetta +opiate +opinion +opinions +opium +opossum +opponent +opponents +opportune +opportunely +opportunism +opportunistic +opportunities +opportunity +opposable +oppose +opposed +opposes +opposing +opposite +oppositely +oppositeness +opposites +opposition +oppress +oppressed +oppresses +oppressing +oppression +oppressive +oppressor +oppressors +opprobrium +opt +opted +opthalmic +optic +optical +optically +optics +optima +optimal +optimality +optimally +optimism +optimist +optimistic +optimistically +optimization +optimizations +optimize +optimized +optimizer +optimizers +optimizes +optimizing +optimum +opting +option +optional +optionally +options +optoacoustic +optometrist +optometry +opts +opulence +opulent +opus +or +oracle +oracles +oral +orally +orange +oranges +orangutan +oration +orations +orator +oratories +orators +oratory +orb +orbit +orbital +orbitally +orbited +orbiter +orbiters +orbiting +orbits +orchard +orchards +orchestra +orchestral +orchestras +orchestrate +orchid +orchids +ordain +ordained +ordaining +ordains +ordeal +order +ordered +ordering +orderings +orderlies +orderly +orders +ordinal +ordinance +ordinances +ordinarily +ordinariness +ordinary +ordinate +ordinates +ordination +ore +oregano +ores +organ +organic +organism +organisms +organist +organists +organizable +organization +organizational +organizationally +organizations +organize +organized +organizer +organizers +organizes +organizing +organs +orgasm +orgiastic +orgies +orgy +orientation +orientations +oriented +orienting +orients +orifice +orifices +origin +original +originality +originally +originals +originate +originated +originates +originating +origination +originator +originators +origins +oriole +ornament +ornamental +ornamentally +ornamentation +ornamented +ornamenting +ornaments +ornate +ornery +orphan +orphanage +orphaned +orphans +orthant +orthodontist +orthodox +orthodoxy +orthogonal +orthogonality +orthogonally +orthopedic +oscillate +oscillated +oscillates +oscillating +oscillation +oscillations +oscillator +oscillators +oscillatory +oscilloscope +oscilloscopes +osmosis +osmotic +ossify +ostensible +ostensibly +ostentatious +osteopath +osteopathic +osteopathy +osteoporosis +ostracism +ostrich +ostriches +other +others +otherwise +otherworldly +otter +otters +ouch +ought +ounce +ounces +our +ours +ourself +ourselves +oust +out +outbound +outbreak +outbreaks +outburst +outbursts +outcast +outcasts +outcome +outcomes +outcries +outcry +outdated +outdo +outdoor +outdoors +outer +outermost +outfit +outfits +outfitted +outgoing +outgrew +outgrow +outgrowing +outgrown +outgrows +outgrowth +outing +outlandish +outlast +outlasts +outlaw +outlawed +outlawing +outlaws +outlay +outlays +outlet +outlets +outline +outlined +outlines +outlining +outlive +outlived +outlives +outliving +outlook +outlying +outnumbered +outperform +outperformed +outperforming +outperforms +outpost +outposts +output +outputs +outputting +outrage +outraged +outrageous +outrageously +outrages +outright +outrun +outruns +outs +outset +outside +outsider +outsiders +outskirts +outstanding +outstandingly +outstretched +outstrip +outstripped +outstripping +outstrips +outvote +outvoted +outvotes +outvoting +outward +outwardly +outweigh +outweighed +outweighing +outweighs +outwit +outwits +outwitted +outwitting +oval +ovals +ovaries +ovary +oven +ovens +over +overall +overalls +overboard +overcame +overcoat +overcoats +overcome +overcomes +overcoming +overcrowd +overcrowded +overcrowding +overcrowds +overdone +overdose +overdraft +overdrafts +overdue +overemphasis +overemphasized +overestimate +overestimated +overestimates +overestimating +overestimation +overflow +overflowed +overflowing +overflows +overgrown +overhang +overhanging +overhangs +overhaul +overhauling +overhead +overheads +overhear +overheard +overhearing +overhears +overjoy +overjoyed +overkill +overland +overlap +overlapped +overlapping +overlaps +overlay +overlaying +overlays +overload +overloaded +overloading +overloads +overlook +overlooked +overlooking +overlooks +overly +overnight +overnighter +overnighters +overpower +overpowered +overpowering +overpowers +overprint +overprinted +overprinting +overprints +overproduction +overridden +override +overrides +overriding +overrode +overrule +overruled +overrules +overrun +overrunning +overruns +overseas +oversee +overseeing +overseer +overseers +oversees +overshadow +overshadowed +overshadowing +overshadows +overshoot +overshot +oversight +oversights +oversimplified +oversimplifies +oversimplify +oversimplifying +oversized +overstate +overstated +overstatement +overstatements +overstates +overstating +overstocks +oversubscribed +overt +overtake +overtaken +overtaker +overtakers +overtakes +overtaking +overthrew +overthrow +overthrown +overtime +overtly +overtone +overtones +overtook +overture +overtures +overturn +overturned +overturning +overturns +overuse +overview +overviews +overwhelm +overwhelmed +overwhelming +overwhelmingly +overwhelms +overwork +overworked +overworking +overworks +overwrite +overwrites +overwriting +overwritten +overzealous +owe +owed +owes +owing +owl +owls +own +owned +owner +owners +ownership +ownerships +owning +owns +ox +oxen +oxide +oxides +oxidize +oxidized +oxygen +oyster +oysters +ozone +pace +paced +pacemaker +pacer +pacers +paces +pacific +pacification +pacified +pacifier +pacifies +pacifism +pacifist +pacify +pacing +pack +package +packaged +packager +packagers +packages +packaging +packagings +packed +packer +packers +packet +packets +packing +packs +pact +pacts +pad +padded +padding +paddle +paddock +paddy +padlock +pads +pagan +pagans +page +pageant +pageantry +pageants +paged +pager +pagers +pages +paginate +paginated +paginates +paginating +pagination +paging +pagoda +paid +pail +pails +pain +pained +painful +painfully +painless +pains +painstaking +painstakingly +paint +painted +painter +painters +painting +paintings +paints +pair +paired +pairing +pairings +pairs +pairwise +pajama +pajamas +pal +palace +palaces +palate +palates +pale +paled +palely +paleness +paler +pales +palest +palfrey +palindrome +palindromic +paling +pall +palladium +palliate +palliative +pallid +palm +palmed +palmer +palming +palms +palpable +pals +palsy +pamper +pamphlet +pamphlets +pan +panacea +panaceas +panama +pancake +pancakes +panda +pandas +pandemic +pandemonium +pander +pane +panel +paneled +paneling +panelist +panelists +panels +panes +pang +pangs +panic +panicked +panicking +panicky +panics +panned +panning +panorama +panoramic +pans +pansies +pansy +pant +panted +pantheism +pantheist +pantheon +panther +panthers +panties +panting +pantomime +pantries +pantry +pants +panty +pantyhose +papa +papal +paper +paperback +paperbacks +papered +paperer +paperers +papering +paperings +papers +paperweight +paperwork +papoose +papyrus +par +parabola +parabolic +paraboloid +paraboloidal +parachute +parachuted +parachutes +parade +paraded +parades +paradigm +paradigms +parading +paradise +paradox +paradoxes +paradoxical +paradoxically +paraffin +paragon +paragons +paragraph +paragraphing +paragraphs +parakeet +parallax +parallel +paralleled +paralleling +parallelism +parallelize +parallelized +parallelizes +parallelizing +parallelogram +parallelograms +parallels +paralysis +paralyze +paralyzed +paralyzes +paralyzing +parameter +parameterizable +parameterization +parameterizations +parameterize +parameterized +parameterizes +parameterizing +parameterless +parameters +parametric +parametrized +paramilitary +paramount +paranoia +paranoiac +paranoid +paranormal +parapet +parapets +paraphernalia +paraphrase +paraphrased +paraphrases +paraphrasing +parapsychology +parasite +parasites +parasitic +parasitics +parasol +parboil +parcel +parceled +parceling +parcels +parch +parched +parchment +pardon +pardonable +pardonably +pardoned +pardoner +pardoners +pardoning +pardons +pare +paregoric +parent +parentage +parental +parentheses +parenthesis +parenthesized +parenthesizes +parenthesizing +parenthetic +parenthetical +parenthetically +parenthood +parents +pares +pariah +parimutuel +paring +parings +parish +parishes +parishioner +parity +park +parked +parker +parkers +parking +parkland +parklike +parkway +parlay +parley +parliament +parliamentarian +parliamentary +parliaments +parlor +parlors +parochial +parody +parole +paroled +paroles +paroling +parried +parrot +parroting +parrots +parry +pars +parse +parsed +parser +parsers +parses +parsimony +parsing +parsings +parsley +parson +part +partake +partaker +partakes +partaking +parted +parter +parters +partial +partiality +partially +participant +participants +participate +participated +participates +participating +participation +participle +particle +particles +particular +particularly +particulars +particulate +parties +parting +partings +partisan +partisans +partition +partitioned +partitioning +partitions +partly +partner +partnered +partners +partnership +partook +partridge +partridges +parts +party +pass +passage +passages +passageway +passe +passed +passenger +passengers +passer +passers +passes +passing +passion +passionate +passionately +passions +passivate +passive +passively +passiveness +passivity +passport +passports +password +passwords +past +paste +pasted +pastel +pastes +pastime +pastimes +pasting +pastness +pastor +pastoral +pastors +pastry +pasts +pasture +pastures +pat +patch +patched +patches +patching +patchwork +patchy +pate +paten +patent +patentable +patented +patenter +patenters +patenting +patently +patents +paternal +paternally +paternoster +path +pathetic +pathname +pathnames +pathogen +pathogenesis +pathological +pathology +pathos +paths +pathway +pathways +patience +patient +patiently +patients +patina +patio +patriarch +patriarchal +patriarchs +patriarchy +patrician +patricians +patrimonial +patrimony +patriot +patriotic +patriotism +patriots +patrol +patrolled +patrolling +patrolman +patrolmen +patrols +patron +patronage +patronize +patronized +patronizes +patronizing +patrons +pats +patter +pattered +pattering +patterings +pattern +patterned +patterning +patterns +patters +patties +patty +paucity +paunch +paunchy +pauper +pause +paused +pauses +pausing +pave +paved +pavement +pavements +paves +pavilion +pavilions +paving +paw +pawing +pawn +pawns +pawnshop +paws +pay +payable +paycheck +paychecks +payed +payer +payers +paying +payment +payments +payoff +payoffs +payroll +pays +pea +peace +peaceable +peaceful +peacefully +peacefulness +peacetime +peach +peaches +peacock +peacocks +peak +peaked +peaks +peal +pealed +pealing +peals +peanut +peanuts +pear +pearl +pearls +pearly +pears +peas +peasant +peasantry +peasants +peat +pebble +pebbles +peccary +peck +pecked +pecking +pecks +pectoral +peculiar +peculiarities +peculiarity +peculiarly +pecuniary +pedagogic +pedagogical +pedagogically +pedagogy +pedal +pedant +pedantic +pedantry +peddle +peddler +peddlers +pedestal +pedestrian +pedestrians +pediatric +pediatrician +pediatrics +pedigree +peek +peeked +peeking +peeks +peel +peeled +peeling +peels +peep +peeped +peeper +peephole +peeping +peeps +peer +peered +peering +peerless +peers +peg +pegboard +pegs +pejorative +pelican +pellagra +pelt +pelting +pelts +pelvic +pelvis +pen +penal +penalize +penalized +penalizes +penalizing +penalties +penalty +penance +pence +penchant +pencil +penciled +pencils +pend +pendant +pended +pending +pends +pendulum +pendulums +penetrable +penetrate +penetrated +penetrates +penetrating +penetratingly +penetration +penetrations +penetrative +penetrator +penetrators +penguin +penguins +penicillin +peninsula +peninsulas +penis +penises +penitent +penitentiary +penned +pennies +penniless +penning +penny +pens +pension +pensioner +pensions +pensive +pent +pentagon +pentagons +pentecostal +penthouse +penultimate +penumbra +peony +people +peopled +peoples +pep +pepper +peppered +peppering +peppermint +pepperoni +peppers +peppery +peppy +peptide +per +perceivable +perceivably +perceive +perceived +perceiver +perceivers +perceives +perceiving +percent +percentage +percentages +percentile +percentiles +percents +perceptible +perceptibly +perception +perceptions +perceptive +perceptively +perceptual +perceptually +perch +perchance +perched +perches +perching +percussion +percutaneous +peremptory +perennial +perennially +perfect +perfected +perfectible +perfecting +perfection +perfectionist +perfectionists +perfectly +perfectness +perfects +perforce +perform +performance +performances +performed +performer +performers +performing +performs +perfume +perfumed +perfumes +perfuming +perfunctory +perhaps +perihelion +peril +perilous +perilously +perils +perimeter +period +periodic +periodical +periodically +periodicals +periods +peripheral +peripherally +peripherals +peripheries +periphery +periscope +perish +perishable +perishables +perished +perisher +perishers +perishes +perishing +perjure +perjury +perk +perky +permanence +permanent +permanently +permeable +permeate +permeated +permeates +permeating +permeation +permissibility +permissible +permissibly +permission +permissions +permissive +permissively +permit +permits +permitted +permitting +permutation +permutations +permute +permuted +permutes +permuting +pernicious +peroxide +perpendicular +perpendicularly +perpendiculars +perpetrate +perpetrated +perpetrates +perpetrating +perpetration +perpetrations +perpetrator +perpetrators +perpetual +perpetually +perpetuate +perpetuated +perpetuates +perpetuating +perpetuation +perpetuity +perplex +perplexed +perplexing +perplexity +persecute +persecuted +persecutes +persecuting +persecution +persecutor +persecutors +perseverance +persevere +persevered +perseveres +persevering +persist +persisted +persistence +persistent +persistently +persisting +persists +person +personage +personages +personal +personalities +personality +personalization +personalize +personalized +personalizes +personalizing +personally +personification +personified +personifies +personify +personifying +personnel +persons +perspective +perspectives +perspicuous +perspicuously +perspiration +perspire +persuadable +persuade +persuaded +persuader +persuaders +persuades +persuading +persuasion +persuasions +persuasive +persuasively +persuasiveness +pertain +pertained +pertaining +pertains +pertinent +perturb +perturbation +perturbations +perturbed +perusal +peruse +perused +peruser +perusers +peruses +perusing +pervade +pervaded +pervades +pervading +pervasive +pervasively +perversion +pervert +perverted +perverts +pessimism +pessimist +pessimistic +pest +pester +pesticide +pestilence +pestilent +pests +pet +petal +petals +petition +petitioned +petitioner +petitioning +petitions +petri +petroleum +pets +petted +petter +petters +petticoat +petticoats +pettiness +petting +petty +petulance +petulant +pew +pews +pewter +phantom +phantoms +pharmaceutic +pharmacist +pharmacology +pharmacopoeia +pharmacy +phase +phased +phaser +phasers +phases +phasing +pheasant +pheasants +phenomena +phenomenal +phenomenally +phenomenological +phenomenologically +phenomenologies +phenomenology +phenomenon +phi +philanthropy +philharmonic +philosopher +philosophers +philosophic +philosophical +philosophically +philosophies +philosophize +philosophized +philosophizer +philosophizers +philosophizes +philosophizing +philosophy +phoenix +phone +phoned +phoneme +phonemes +phonemic +phones +phonetic +phonetics +phoning +phonograph +phonographs +phony +phosgene +phosphate +phosphates +phosphor +phosphorescent +phosphoric +phosphorus +photo +photocopied +photocopier +photocopiers +photocopies +photocopy +photocopying +photodiode +photodiodes +photogenic +photograph +photographed +photographer +photographers +photographic +photographing +photographs +photography +photon +photos +photosensitive +phototypesetter +phototypesetters +phrase +phrased +phraseology +phrases +phrasing +phrasings +phyla +phylum +physic +physical +physically +physicalness +physicals +physician +physicians +physicist +physicists +physics +physiological +physiologically +physiology +physiotherapist +physiotherapy +physique +phytoplankton +pi +pianist +piano +pianos +pica +picas +picayune +piccolo +pick +pickaxe +picked +picker +pickers +picket +picketed +picketer +picketers +picketing +pickets +picking +pickings +pickle +pickled +pickles +pickling +picks +pickup +pickups +picky +picnic +picnicked +picnicking +picnics +picofarad +picojoule +picosecond +pictorial +pictorially +picture +pictured +pictures +picturesque +picturesqueness +picturing +piddle +pidgin +pie +piece +pieced +piecemeal +pieces +piecewise +piecing +pier +pierce +pierced +pierces +piercing +piers +pies +piety +piezoelectric +pig +pigeon +pigeonhole +pigeons +piggish +piggy +piggyback +piggybacked +piggybacking +piggybacks +pigment +pigmentation +pigmented +pigments +pigpen +pigs +pigskin +pigtail +pike +piker +pikes +pile +piled +pilers +piles +pilfer +pilferage +pilgrim +pilgrimage +pilgrimages +pilgrims +piling +pilings +pill +pillage +pillaged +pillar +pillared +pillars +pillory +pillow +pillows +pills +pilot +piloting +pilots +pimp +pimple +pin +pinafore +pinball +pinch +pinched +pinches +pinching +pincushion +pine +pineapple +pineapples +pined +pines +ping +pinhead +pinhole +pining +pinion +pink +pinker +pinkest +pinkie +pinkish +pinkly +pinkness +pinks +pinnacle +pinnacles +pinned +pinning +pinnings +pinochle +pinpoint +pinpointing +pinpoints +pins +pinscher +pint +pinto +pints +pinwheel +pion +pioneer +pioneered +pioneering +pioneers +pious +piously +pip +pipe +piped +pipeline +pipelined +pipelines +pipelining +pipers +pipes +pipette +piping +pique +piracy +pirate +pirates +piss +pistachio +pistil +pistils +pistol +pistols +piston +pistons +pit +pitch +pitched +pitcher +pitchers +pitches +pitchfork +pitching +piteous +piteously +pitfall +pitfalls +pith +pithed +pithes +pithier +pithiest +pithiness +pithing +pithy +pitiable +pitied +pitier +pitiers +pities +pitiful +pitifully +pitiless +pitilessly +pits +pitted +pituitary +pity +pitying +pityingly +pivot +pivotal +pivoting +pivots +pixel +pixels +pizza +placard +placards +placate +place +placebo +placed +placeholder +placement +placements +placenta +placental +placer +places +placid +placidly +placing +plagiarism +plagiarist +plague +plagued +plagues +plaguing +plaid +plaids +plain +plainer +plainest +plainly +plainness +plains +plaintext +plaintexts +plaintiff +plaintiffs +plaintive +plaintively +plaintiveness +plait +plaits +plan +planar +planarity +plane +planed +planeload +planer +planers +planes +planet +planetaria +planetarium +planetary +planetesimal +planetoid +planets +planing +plank +planking +planks +plankton +planned +planner +planners +planning +planoconcave +planoconvex +plans +plant +plantation +plantations +planted +planter +planters +planting +plantings +plants +plaque +plasma +plaster +plastered +plasterer +plastering +plasters +plastic +plasticity +plastics +plate +plateau +plateaus +plated +platelet +platelets +platen +platens +plates +platform +platforms +plating +platinum +platitude +platonic +platoon +platter +platters +plausibility +plausible +play +playable +playback +playboy +played +player +players +playful +playfully +playfulness +playground +playgrounds +playhouse +playing +playmate +playmates +playoff +playroom +plays +plaything +playthings +playtime +playwright +playwrights +playwriting +plaza +plea +plead +pleaded +pleader +pleading +pleads +pleas +pleasant +pleasantly +pleasantness +please +pleased +pleases +pleasing +pleasingly +pleasure +pleasures +pleat +plebeian +plebian +plebiscite +plebiscites +pledge +pledged +pledges +plenary +plenipotentiary +plenteous +plentiful +plentifully +plenty +plethora +pleurisy +pliable +pliant +plied +pliers +plies +plight +plod +plodding +plot +plots +plotted +plotter +plotters +plotting +plow +plowed +plower +plowing +plowman +plows +plowshare +ploy +ploys +pluck +plucked +plucking +plucks +plucky +plug +pluggable +plugged +plugging +plugs +plum +plumage +plumb +plumbed +plumbing +plumbs +plume +plumed +plumes +plummet +plummeting +plump +plumped +plumpness +plums +plunder +plundered +plunderer +plunderers +plundering +plunders +plunge +plunged +plunger +plungers +plunges +plunging +plunk +plural +plurality +plurals +plus +pluses +plush +plutonium +ply +plywood +pneumatic +pneumonia +poach +poacher +poaches +pocket +pocketbook +pocketbooks +pocketed +pocketful +pocketing +pockets +pod +podia +podium +pods +poem +poems +poet +poetic +poetical +poetically +poetics +poetries +poetry +poets +pogo +pogrom +poignancy +poignant +point +pointed +pointedly +pointer +pointers +pointing +pointless +points +pointy +poise +poised +poises +poison +poisoned +poisoner +poisoning +poisonous +poisonousness +poisons +poke +poked +poker +pokerface +pokes +poking +polar +polarities +polarity +pole +polecat +poled +polemic +polemics +poles +police +policed +policeman +policemen +polices +policies +policing +policy +poling +polio +polish +polished +polisher +polishers +polishes +polishing +polite +politely +politeness +politer +politest +politic +political +politically +politician +politicians +politicking +politics +polka +poll +polled +pollen +polling +polloi +polls +pollutant +pollute +polluted +pollutes +polluting +pollution +polo +polyalphabetic +polygon +polygons +polymer +polymers +polymorphic +polynomial +polynomials +polytechnic +polytheist +pomp +pompadour +pomposity +pompous +pompously +pompousness +poncho +pond +ponder +pondered +pondering +ponderous +ponders +ponds +pong +ponies +pontiff +pontific +pontificate +pony +pooch +poodle +pool +pooled +pooling +pools +poor +poorer +poorest +poorly +poorness +pop +popcorn +popish +poplar +poplin +popped +poppies +popping +poppy +pops +populace +popular +popularity +popularization +popularize +popularized +popularizes +popularizing +popularly +populate +populated +populates +populating +population +populations +populous +populousness +porcelain +porch +porches +porcine +porcupine +porcupines +pore +pored +pores +poring +pork +porker +pornographer +pornographic +pornography +porous +porpoise +porridge +port +portability +portable +portage +portal +portals +ported +portend +portended +portending +portends +portent +portentous +porter +porterhouse +porters +portfolio +portfolios +portico +porting +portion +portions +portly +portmanteau +portrait +portraits +portray +portrayal +portrayed +portraying +portrays +ports +pose +posed +poser +posers +poses +posh +posing +posit +posited +positing +position +positional +positioned +positioning +positions +positive +positively +positiveness +positives +positron +posits +posse +possess +possessed +possesses +possessing +possession +possessional +possessions +possessive +possessively +possessiveness +possessor +possessors +possibilities +possibility +possible +possibly +possum +possums +post +postage +postal +postcard +postcondition +postdoctoral +posted +poster +posterior +posteriori +posterity +posters +postfix +postgraduate +posting +postlude +postman +postmark +postmaster +postmasters +postmortem +postoperative +postorder +postpone +postponed +postponing +postprocess +postprocessor +posts +postscript +postscripts +postulate +postulated +postulates +postulating +postulation +postulations +posture +postures +pot +potable +potash +potassium +potato +potatoes +potbelly +potent +potentate +potentates +potential +potentialities +potentiality +potentially +potentials +potentiating +potentiometer +potentiometers +pothole +potion +potlatch +potpourri +pots +potted +potter +potters +pottery +potting +pouch +pouches +poultice +poultry +pounce +pounced +pounces +pouncing +pound +pounded +pounder +pounders +pounding +pounds +pour +poured +pourer +pourers +pouring +pours +pout +pouted +pouting +pouts +poverty +powder +powdered +powdering +powderpuff +powders +powdery +power +powered +powerful +powerfully +powerfulness +powering +powerless +powerlessly +powerlessness +pox +practicable +practicably +practical +practicality +practically +practice +practiced +practices +practicing +practitioner +practitioners +pragmatic +pragmatically +pragmatics +pragmatism +pragmatist +prairie +praise +praised +praiser +praisers +praises +praiseworthy +praising +praisingly +prance +pranced +prancer +prancing +prank +pranks +prate +pray +prayed +prayer +prayers +praying +preach +preached +preacher +preachers +preaches +preaching +preallocate +preallocated +preallocating +preamble +preambles +preassign +preassigned +preassigning +preassigns +precarious +precariously +precariousness +precaution +precautions +precede +preceded +precedence +precedences +precedent +precedented +precedents +precedes +preceding +precept +precepts +precess +precession +precinct +precincts +precious +preciously +preciousness +precipice +precipitable +precipitate +precipitated +precipitately +precipitateness +precipitates +precipitating +precipitation +precipitous +precipitously +precise +precisely +preciseness +precision +precisions +preclude +precluded +precludes +precluding +precocious +precociously +precocity +precompute +precomputed +precomputing +preconceive +preconceived +preconception +preconceptions +precondition +preconditioned +preconditions +precursor +precursors +predate +predated +predates +predating +predatory +predecessor +predecessors +predefine +predefined +predefines +predefining +predefinition +predefinitions +predetermination +predetermine +predetermined +predetermines +predetermining +predicament +predicate +predicated +predicates +predicating +predication +predications +predict +predictability +predictable +predictably +predicted +predicting +prediction +predictions +predictive +predictor +predicts +predilection +predilections +predisposition +predominant +predominantly +predominate +predominated +predominately +predominates +predominating +predomination +preeminence +preeminent +preempt +preempted +preempting +preemption +preemptive +preemptor +preempts +preen +preexisting +prefab +prefabricate +preface +prefaced +prefaces +prefacing +prefer +preferable +preferably +preference +preferences +preferential +preferentially +preferred +preferring +prefers +prefix +prefixed +prefixes +prefixing +pregnancy +pregnant +prehistoric +preinitialize +preinitialized +preinitializes +preinitializing +prejudge +prejudged +prejudice +prejudiced +prejudices +prejudicial +prelate +preliminaries +preliminary +prelude +preludes +premature +prematurely +prematurity +premeditated +premeditation +premier +premiers +premise +premises +premium +premiums +premonition +prenatal +preoccupation +preoccupied +preoccupies +preoccupy +prep +preparation +preparations +preparative +preparatives +preparatory +prepare +prepared +prepares +preparing +prepend +prepended +prepending +preposition +prepositional +prepositions +preposterous +preposterously +preprocessed +preprocessing +preprocessor +preprocessors +preproduction +preprogrammed +prerequisite +prerequisites +prerogative +prerogatives +prescribe +prescribed +prescribes +prescription +prescriptions +prescriptive +preselect +preselected +preselecting +preselects +presence +presences +present +presentation +presentations +presented +presenter +presenting +presently +presentness +presents +preservation +preservations +preserve +preserved +preserver +preservers +preserves +preserving +preset +preside +presided +presidency +president +presidential +presidents +presides +presiding +press +pressed +presser +presses +pressing +pressings +pressure +pressured +pressures +pressuring +pressurize +pressurized +prestidigitate +prestige +prestigious +presumably +presume +presumed +presumes +presuming +presumption +presumptions +presumptive +presumptuous +presumptuousness +presuppose +presupposed +presupposes +presupposing +presupposition +pretend +pretended +pretender +pretenders +pretending +pretends +pretense +pretenses +pretension +pretensions +pretentious +pretentiously +pretentiousness +pretext +pretexts +prettier +prettiest +prettily +prettiness +pretty +prevail +prevailed +prevailing +prevailingly +prevails +prevalence +prevalent +prevalently +prevent +preventable +preventably +prevented +preventing +prevention +preventive +preventives +prevents +preview +previewed +previewing +previews +previous +previously +prey +preyed +preying +preys +price +priced +priceless +pricer +pricers +prices +pricing +prick +pricked +pricking +prickly +pricks +pride +prided +prides +priding +priest +priggish +prim +prima +primacy +primal +primaries +primarily +primary +primate +prime +primed +primeness +primer +primers +primes +primeval +priming +primitive +primitively +primitiveness +primitives +primrose +prince +princely +princes +princess +princesses +principal +principalities +principality +principally +principals +principle +principled +principles +print +printable +printably +printed +printer +printers +printing +printout +prints +prior +priori +priorities +priority +priory +prism +prisms +prison +prisoner +prisoners +prisons +pristine +privacies +privacy +private +privately +privates +privation +privations +privies +privilege +privileged +privileges +privy +prize +prized +prizer +prizers +prizes +prizewinning +prizing +pro +probabilistic +probabilistically +probabilities +probability +probable +probably +probate +probated +probates +probating +probation +probative +probe +probed +probes +probing +probings +probity +problem +problematic +problematical +problematically +problems +procaine +procedural +procedurally +procedure +procedures +proceed +proceeded +proceeding +proceedings +proceeds +process +processed +processes +processing +procession +processor +processors +proclaim +proclaimed +proclaimer +proclaimers +proclaiming +proclaims +proclamation +proclamations +proclivities +proclivity +procotols +procrastinate +procrastinated +procrastinates +procrastinating +procrastination +procreate +procure +procured +procurement +procurements +procurer +procurers +procures +procuring +prod +prodigal +prodigally +prodigious +prodigy +produce +produced +producer +producers +produces +producible +producing +product +production +productions +productive +productively +productivity +products +profane +profanely +profess +professed +professes +professing +profession +professional +professionalism +professionally +professionals +professions +professor +professorial +professors +proffer +proffered +proffers +proficiency +proficient +proficiently +profile +profiled +profiles +profiling +profit +profitability +profitable +profitably +profited +profiteer +profiteers +profiting +profits +profitted +profligate +profound +profoundest +profoundly +profundity +profuse +profusion +progenitor +progeny +prognosis +prognosticate +program +programmability +programmable +programmed +programmer +programmers +programming +programs +progress +progressed +progresses +progressing +progression +progressions +progressive +progressively +prohibit +prohibited +prohibiting +prohibition +prohibitions +prohibitive +prohibitively +prohibitory +prohibits +project +projected +projectile +projecting +projection +projections +projective +projectively +projector +projectors +projects +prolate +prolegomena +proletariat +proliferate +proliferated +proliferates +proliferating +proliferation +prolific +prolix +prolog +prologue +prolong +prolongate +prolonged +prolonging +prolongs +promenade +promenades +prominence +prominent +prominently +promiscuous +promise +promised +promises +promising +promontory +promote +promoted +promoter +promoters +promotes +promoting +promotion +promotional +promotions +prompt +prompted +prompter +promptest +prompting +promptings +promptly +promptness +prompts +promulgate +promulgated +promulgates +promulgating +promulgation +prone +proneness +prong +pronged +prongs +pronoun +pronounce +pronounceable +pronounced +pronouncement +pronouncements +pronounces +pronouncing +pronouns +pronunciation +pronunciations +proof +proofread +proofreader +proofs +prop +propaganda +propagandist +propagate +propagated +propagates +propagating +propagation +propagations +propane +propel +propellant +propelled +propeller +propellers +propelling +propels +propensity +proper +properly +properness +propertied +properties +property +prophecies +prophecy +prophesied +prophesier +prophesies +prophesy +prophet +prophetic +prophets +propitious +proponent +proponents +proportion +proportional +proportionally +proportionately +proportioned +proportioning +proportionment +proportions +propos +proposal +proposals +propose +proposed +proposer +proposes +proposing +proposition +propositional +propositionally +propositioned +propositioning +propositions +propound +propounded +propounding +propounds +proprietary +proprietor +proprietors +propriety +props +propulsion +propulsions +prorate +prorated +prorates +pros +proscenium +proscribe +proscription +prose +prosecute +prosecuted +prosecutes +prosecuting +prosecution +prosecutions +prosecutor +proselytize +proselytized +proselytizes +proselytizing +prosodic +prosodics +prospect +prospected +prospecting +prospection +prospections +prospective +prospectively +prospectives +prospector +prospectors +prospects +prospectus +prosper +prospered +prospering +prosperity +prosperous +prospers +prostate +prosthetic +prostitute +prostitution +prostrate +prostration +protagonist +protean +protect +protected +protecting +protection +protections +protective +protectively +protectiveness +protector +protectorate +protectors +protects +protege +proteges +protein +proteins +protest +protestant +protestation +protestations +protested +protesting +protestingly +protestor +protests +protocol +protocols +proton +protons +protoplasm +prototype +prototyped +prototypes +prototypical +prototypically +prototyping +protozoan +protract +protrude +protruded +protrudes +protruding +protrusion +protrusions +protuberant +proud +prouder +proudest +proudly +provability +provable +provably +prove +proved +proven +provenance +prover +proverb +proverbial +proverbs +provers +proves +provide +provided +providence +provident +provider +providers +provides +providing +province +provinces +provincial +proving +provision +provisional +provisionally +provisioned +provisioning +provisions +proviso +provocation +provoke +provoked +provokes +provost +prow +prowess +prowl +prowled +prowler +prowlers +prowling +prows +proximal +proximate +proximity +proxy +prudence +prudent +prudential +prudently +prune +pruned +pruner +pruners +prunes +pruning +prurient +pry +prying +psalm +psalms +pseudo +pseudofiles +pseudoinstruction +pseudoinstructions +pseudonym +pseudoparallelism +psilocybin +psych +psyche +psychedelic +psyches +psychiatric +psychiatrist +psychiatrists +psychiatry +psychic +psycho +psychoanalysis +psychoanalyst +psychoanalytic +psychobiology +psychological +psychologically +psychologist +psychologists +psychology +psychopath +psychopathic +psychophysic +psychoses +psychosis +psychosocial +psychosomatic +psychotherapeutic +psychotherapist +psychotherapy +psychotic +pub +puberty +public +publication +publications +publicity +publicize +publicized +publicizes +publicizing +publicly +publish +published +publisher +publishers +publishes +publishing +pubs +pucker +puckered +puckering +puckers +pudding +puddings +puddle +puddles +puddling +puff +puffed +puffin +puffing +puffs +puke +pull +pulled +puller +pulley +pulleys +pulling +pullings +pullover +pulls +pulmonary +pulp +pulping +pulpit +pulpits +pulsar +pulsate +pulsation +pulsations +pulse +pulsed +pulses +pulsing +puma +pumice +pummel +pump +pumped +pumping +pumpkin +pumpkins +pumps +pun +punch +punched +puncher +punches +punching +punctual +punctually +punctuation +puncture +punctured +punctures +puncturing +pundit +pungent +punish +punishable +punished +punishes +punishing +punishment +punishments +punitive +puns +punt +punted +punting +punts +puny +pup +pupa +pupil +pupils +puppet +puppeteer +puppets +puppies +puppy +pups +purchase +purchased +purchaser +purchasers +purchases +purchasing +pure +purely +purer +purest +purgatory +purge +purged +purges +purging +purification +purifications +purified +purifier +purifiers +purifies +purify +purifying +purist +puritanic +purity +purple +purpler +purplest +purport +purported +purportedly +purporter +purporters +purporting +purports +purpose +purposed +purposeful +purposefully +purposely +purposes +purposive +purr +purred +purring +purrs +purse +pursed +purser +purses +pursuant +pursue +pursued +pursuer +pursuers +pursues +pursuing +pursuit +pursuits +purveyor +purview +pus +push +pushbutton +pushdown +pushed +pusher +pushers +pushes +pushing +puss +pussy +pussycat +put +puts +putt +putter +puttering +putters +putting +putty +puzzle +puzzled +puzzlement +puzzler +puzzlers +puzzles +puzzling +puzzlings +pygmies +pygmy +pyramid +pyramids +pyre +python +qua +quack +quacked +quackery +quacks +quad +quadrangle +quadrangular +quadrant +quadrants +quadratic +quadratical +quadratically +quadratics +quadrature +quadratures +quadrennial +quadrilateral +quadrillion +quadruple +quadrupled +quadruples +quadrupling +quadrupole +quaff +quagmire +quagmires +quahog +quail +quails +quaint +quaintly +quaintness +quake +quaked +quaker +quakers +quakes +quaking +qualification +qualifications +qualified +qualifier +qualifiers +qualifies +qualify +qualifying +qualitative +qualitatively +qualities +quality +qualm +quandaries +quandary +quanta +quantifiable +quantification +quantifications +quantified +quantifier +quantifiers +quantifies +quantify +quantifying +quantile +quantitative +quantitatively +quantities +quantity +quantization +quantize +quantized +quantizes +quantizing +quantum +quarantine +quarantines +quarantining +quark +quarrel +quarreled +quarreling +quarrels +quarrelsome +quarries +quarry +quart +quarter +quarterback +quartered +quartering +quarterly +quartermaster +quarters +quartet +quartets +quartile +quarts +quartz +quartzite +quasar +quash +quashed +quashes +quashing +quasi +quaternary +quaver +quavered +quavering +quavers +quay +queasy +queen +queenly +queens +queer +queerer +queerest +queerly +queerness +quell +quelling +quench +quenched +quenches +quenching +queried +queries +query +querying +quest +quested +quester +questers +questing +question +questionable +questionably +questioned +questioner +questioners +questioning +questioningly +questionings +questionnaire +questionnaires +questions +quests +queue +queued +queueing +queuer +queuers +queues +queuing +quibble +quick +quicken +quickened +quickening +quickens +quicker +quickest +quickie +quicklime +quickly +quickness +quicksand +quicksilver +quiescent +quiet +quieted +quieter +quietest +quieting +quietly +quietness +quiets +quietude +quill +quilt +quilted +quilting +quilts +quince +quinine +quint +quintet +quintillion +quip +quirk +quirky +quit +quite +quits +quitter +quitters +quitting +quiver +quivered +quivering +quivers +quixotic +quiz +quizzed +quizzes +quizzical +quizzing +quo +quonset +quorum +quota +quotas +quotation +quotations +quote +quoted +quotes +quoth +quotient +quotients +quoting +rabbi +rabbit +rabbits +rabble +rabid +rabies +raccoon +raccoons +race +raced +racer +racers +races +racetrack +racial +racially +racing +rack +racked +racket +racketeer +racketeering +racketeers +rackets +racking +racks +radar +radars +radial +radially +radian +radiance +radiant +radiantly +radiate +radiated +radiates +radiating +radiation +radiations +radiator +radiators +radical +radically +radicals +radices +radii +radio +radioactive +radioastronomy +radioed +radiography +radioing +radiology +radios +radish +radishes +radium +radius +radix +radon +raft +rafter +rafters +rafts +rag +rage +raged +rages +ragged +raggedly +raggedness +raging +rags +ragweed +raid +raided +raider +raiders +raiding +raids +rail +railed +railer +railers +railing +railroad +railroaded +railroader +railroaders +railroading +railroads +rails +railway +railways +raiment +rain +rainbow +raincoat +raincoats +raindrop +raindrops +rained +rainfall +rainier +rainiest +raining +rains +rainstorm +rainy +raise +raised +raiser +raisers +raises +raisin +raising +rake +raked +rakes +raking +rallied +rallies +rally +rallying +ram +ramble +rambler +rambles +rambling +ramblings +ramification +ramifications +ramp +rampage +rampant +rampart +ramps +ramrod +rams +ran +ranch +ranched +rancher +ranchers +ranches +ranching +rancid +random +randomization +randomize +randomized +randomizes +randomly +randomness +randy +rang +range +ranged +rangeland +ranger +rangers +ranges +ranging +rangy +rank +ranked +ranker +rankers +rankest +ranking +rankings +rankle +rankly +rankness +ranks +ransack +ransacked +ransacking +ransacks +ransom +ransomer +ransoming +ransoms +rant +ranted +ranter +ranters +ranting +rants +rap +rapacious +rape +raped +raper +rapes +rapid +rapidity +rapidly +rapids +rapier +raping +rapport +rapprochement +raps +rapt +raptly +rapture +raptures +rapturous +rare +rarely +rareness +rarer +rarest +rarity +rascal +rascally +rascals +rash +rasher +rashly +rashness +rasp +raspberry +rasped +rasping +rasps +raster +rat +rate +rated +rater +raters +rates +rather +ratification +ratified +ratifies +ratify +ratifying +rating +ratings +ratio +ration +rational +rationale +rationales +rationalities +rationality +rationalization +rationalizations +rationalize +rationalized +rationalizes +rationalizing +rationally +rationals +rationing +rations +ratios +rats +rattle +rattled +rattler +rattlers +rattles +rattlesnake +rattlesnakes +rattling +raucous +ravage +ravaged +ravager +ravagers +ravages +ravaging +rave +raved +raven +ravening +ravenous +ravenously +ravens +raves +ravine +ravines +raving +ravings +raw +rawer +rawest +rawly +rawness +ray +rays +raze +razor +razors +re +reabbreviate +reabbreviated +reabbreviates +reabbreviating +reach +reachability +reachable +reachably +reached +reacher +reaches +reaching +reacquired +react +reacted +reacting +reaction +reactionaries +reactionary +reactions +reactivate +reactivated +reactivates +reactivating +reactivation +reactive +reactively +reactivity +reactor +reactors +reacts +read +readability +readable +reader +readers +readied +readier +readies +readiest +readily +readiness +reading +readings +readjusted +readout +readouts +reads +ready +readying +real +realest +realign +realigned +realigning +realigns +realism +realist +realistic +realistically +realists +realities +reality +realizable +realizably +realization +realizations +realize +realized +realizes +realizing +reallocate +really +realm +realms +realness +reals +realtor +ream +reanalyze +reanalyzes +reanalyzing +reap +reaped +reaper +reaping +reappear +reappeared +reappearing +reappears +reappraisal +reappraisals +reaps +rear +reared +rearing +rearrange +rearrangeable +rearranged +rearrangement +rearrangements +rearranges +rearranging +rearrest +rearrested +rears +reason +reasonable +reasonableness +reasonably +reasoned +reasoner +reasoning +reasonings +reasons +reassemble +reassembled +reassembles +reassembling +reassembly +reassessment +reassessments +reassign +reassigned +reassigning +reassignment +reassignments +reassigns +reassure +reassured +reassures +reassuring +reawaken +reawakened +reawakening +reawakens +rebate +rebates +rebel +rebelled +rebelling +rebellion +rebellions +rebellious +rebelliously +rebelliousness +rebels +rebind +rebinding +rebinds +reboot +rebooted +rebooting +reboots +rebound +rebounded +rebounding +rebounds +rebroadcast +rebroadcasting +rebroadcasts +rebuff +rebuffed +rebuild +rebuilding +rebuilds +rebuilt +rebuke +rebuked +rebukes +rebuking +rebuttal +rebutted +rebutting +recalcitrant +recalculate +recalculated +recalculates +recalculating +recalculation +recalculations +recalibrate +recalibrated +recalibrates +recalibrating +recall +recalled +recalling +recalls +recant +recapitulate +recapitulated +recapitulates +recapitulation +recapture +recaptured +recaptures +recapturing +recast +recasting +recasts +recede +receded +recedes +receding +receipt +receipts +receivable +receive +received +receiver +receivers +receives +receiving +recent +recently +recentness +receptacle +receptacles +reception +receptionist +receptions +receptive +receptively +receptiveness +receptivity +receptor +recess +recessed +recesses +recession +recessive +recipe +recipes +recipient +recipients +reciprocal +reciprocally +reciprocate +reciprocated +reciprocates +reciprocating +reciprocation +reciprocity +recirculate +recirculated +recirculates +recirculating +recital +recitals +recitation +recitations +recite +recited +reciter +recites +reciting +reckless +recklessly +recklessness +reckon +reckoned +reckoner +reckoning +reckonings +reckons +reclaim +reclaimable +reclaimed +reclaimer +reclaimers +reclaiming +reclaims +reclamation +reclamations +reclassification +reclassified +reclassifies +reclassify +reclassifying +recline +reclining +recode +recoded +recodes +recoding +recognition +recognitions +recognizability +recognizable +recognizably +recognize +recognized +recognizer +recognizers +recognizes +recognizing +recoil +recoiled +recoiling +recoils +recollect +recollected +recollecting +recollection +recollections +recombination +recombine +recombined +recombines +recombining +recommend +recommendation +recommendations +recommended +recommender +recommending +recommends +recompense +recompile +recompiled +recompiles +recompiling +recompute +recomputed +recomputes +recomputing +reconcile +reconciled +reconciler +reconciles +reconciliation +reconciling +reconfigurable +reconfiguration +reconfigurations +reconfigure +reconfigured +reconfigurer +reconfigures +reconfiguring +reconnect +reconnected +reconnecting +reconnection +reconnects +reconsider +reconsideration +reconsidered +reconsidering +reconsiders +reconstituted +reconstruct +reconstructed +reconstructing +reconstruction +reconstructs +reconverted +reconverts +record +recorded +recorder +recorders +recording +recordings +records +recount +recounted +recounting +recounts +recourse +recover +recoverable +recovered +recoveries +recovering +recovers +recovery +recreate +recreated +recreates +recreating +recreation +recreational +recreations +recreative +recruit +recruited +recruiter +recruiting +recruits +recta +rectangle +rectangles +rectangular +rectify +rector +rectors +rectum +rectums +recuperate +recur +recurrence +recurrences +recurrent +recurrently +recurring +recurs +recurse +recursed +recurses +recursing +recursion +recursions +recursive +recursively +recyclable +recycle +recycled +recycles +recycling +red +redbreast +redcoat +redden +reddened +redder +reddest +reddish +reddishness +redeclare +redeclared +redeclares +redeclaring +redeem +redeemed +redeemer +redeemers +redeeming +redeems +redefine +redefined +redefines +redefining +redefinition +redefinitions +redemption +redesign +redesigned +redesigning +redesigns +redevelopment +redhead +redirect +redirected +redirecting +redirection +redirections +redisplay +redisplayed +redisplaying +redisplays +redistribute +redistributed +redistributes +redistributing +redly +redneck +redness +redo +redone +redouble +redoubled +redraw +redrawn +redress +redressed +redresses +redressing +reds +reduce +reduced +reducer +reducers +reduces +reducibility +reducible +reducibly +reducing +reduction +reductions +redundancies +redundancy +redundant +redundantly +redwood +reed +reeds +reeducation +reef +reefer +reefs +reel +reelect +reelected +reelecting +reelects +reeled +reeler +reeling +reels +reemphasize +reemphasized +reemphasizes +reemphasizing +reenabled +reenforcement +reenter +reentered +reentering +reenters +reentrant +reestablish +reestablished +reestablishes +reestablishing +reevaluate +reevaluated +reevaluates +reevaluating +reevaluation +reexamine +reexamined +reexamines +reexamining +reexecuted +refer +referee +refereed +refereeing +referees +reference +referenced +referencer +references +referencing +referenda +referendum +referendums +referent +referential +referentiality +referentially +referents +referral +referrals +referred +referring +refers +refill +refillable +refilled +refilling +refills +refine +refined +refinement +refinements +refiner +refinery +refines +refining +reflect +reflected +reflecting +reflection +reflections +reflective +reflectively +reflectivity +reflector +reflectors +reflects +reflex +reflexes +reflexive +reflexively +reflexiveness +reflexivity +reforestation +reform +reformable +reformat +reformation +reformatory +reformats +reformatted +reformatting +reformed +reformer +reformers +reforming +reforms +reformulate +reformulated +reformulates +reformulating +reformulation +refract +refracted +refraction +refractory +refragment +refrain +refrained +refraining +refrains +refresh +refreshed +refresher +refreshers +refreshes +refreshing +refreshingly +refreshment +refreshments +refrigerate +refrigerator +refrigerators +refuel +refueled +refueling +refuels +refuge +refugee +refugees +refusal +refuse +refused +refuses +refusing +refutable +refutation +refute +refuted +refuter +refutes +refuting +regain +regained +regaining +regains +regal +regaled +regally +regard +regarded +regarding +regardless +regards +regatta +regenerate +regenerated +regenerates +regenerating +regeneration +regenerative +regenerator +regenerators +regent +regents +regime +regimen +regiment +regimentation +regimented +regiments +regimes +region +regional +regionally +regions +register +registered +registering +registers +registrar +registration +registrations +registry +regress +regressed +regresses +regressing +regression +regressions +regressive +regret +regretful +regretfully +regrets +regrettable +regrettably +regretted +regretting +regroup +regrouped +regrouping +regular +regularities +regularity +regularly +regulars +regulate +regulated +regulates +regulating +regulation +regulations +regulative +regulator +regulators +regulatory +rehabilitate +rehearsal +rehearsals +rehearse +rehearsed +rehearser +rehearses +rehearsing +reign +reigned +reigning +reigns +reimbursable +reimburse +reimbursed +reimbursement +reimbursements +rein +reincarnate +reincarnated +reincarnation +reindeer +reined +reinforce +reinforced +reinforcement +reinforcements +reinforcer +reinforces +reinforcing +reinitialize +reinitialized +reinitializing +reins +reinsert +reinserted +reinserting +reinserts +reinstate +reinstated +reinstatement +reinstates +reinstating +reinterpret +reinterpreted +reinterpreting +reinterprets +reintroduce +reintroduced +reintroduces +reintroducing +reinvent +reinvented +reinventing +reinvents +reiterate +reiterated +reiterates +reiterating +reiteration +reject +rejected +rejecting +rejection +rejections +rejector +rejectors +rejects +rejoice +rejoiced +rejoicer +rejoices +rejoicing +rejoin +rejoinder +rejoined +rejoining +rejoins +relabel +relabeled +relabeling +relabelled +relabelling +relabels +relapse +relate +related +relater +relates +relating +relation +relational +relationally +relations +relationship +relationships +relative +relatively +relativeness +relatives +relativism +relativistic +relativistically +relativity +relax +relaxation +relaxations +relaxed +relaxer +relaxes +relaxing +relay +relayed +relaying +relays +release +released +releases +releasing +relegate +relegated +relegates +relegating +relent +relented +relenting +relentless +relentlessly +relentlessness +relents +relevance +relevances +relevant +relevantly +reliability +reliable +reliably +reliance +reliant +relic +relics +relied +relief +relies +relieve +relieved +reliever +relievers +relieves +relieving +religion +religions +religious +religiously +religiousness +relink +relinquish +relinquished +relinquishes +relinquishing +relish +relished +relishes +relishing +relive +relives +reliving +reload +reloaded +reloader +reloading +reloads +relocatable +relocate +relocated +relocates +relocating +relocation +relocations +reluctance +reluctant +reluctantly +rely +relying +remain +remainder +remainders +remained +remaining +remains +remark +remarkable +remarkableness +remarkably +remarked +remarking +remarks +remedial +remedied +remedies +remedy +remedying +remember +remembered +remembering +remembers +remembrance +remembrances +remind +reminded +reminder +reminders +reminding +reminds +reminiscence +reminiscences +reminiscent +reminiscently +remiss +remission +remit +remittance +remnant +remnants +remodel +remodeled +remodeling +remodels +remonstrate +remonstrated +remonstrates +remonstrating +remonstration +remonstrative +remorse +remorseful +remote +remotely +remoteness +remotest +removable +removal +removals +remove +removed +remover +removes +removing +remunerate +remuneration +renaissance +renal +rename +renamed +renames +renaming +rend +render +rendered +rendering +renderings +renders +rendezvous +rending +rendition +renditions +rends +renegade +renegotiable +renew +renewable +renewal +renewed +renewer +renewing +renews +renounce +renounces +renouncing +renovate +renovated +renovation +renown +renowned +rent +rental +rentals +rented +renting +rents +renumber +renumbering +renumbers +renunciate +renunciation +reoccur +reopen +reopened +reopening +reopens +reorder +reordered +reordering +reorders +reorganization +reorganizations +reorganize +reorganized +reorganizes +reorganizing +repackage +repaid +repair +repaired +repairer +repairing +repairman +repairmen +repairs +reparation +reparations +repartee +repartition +repast +repasts +repay +repaying +repays +repeal +repealed +repealer +repealing +repeals +repeat +repeatable +repeated +repeatedly +repeater +repeaters +repeating +repeats +repel +repelled +repellent +repels +repent +repentance +repented +repenting +repents +repercussion +repercussions +repertoire +repertory +repetition +repetitions +repetitious +repetitive +repetitively +repetitiveness +rephrase +rephrased +rephrases +rephrasing +repine +replace +replaceable +replaced +replacement +replacements +replacer +replaces +replacing +replay +replayed +replaying +replays +replenish +replenished +replenishes +replenishing +replete +repleteness +repletion +replica +replicas +replicate +replicated +replicates +replicating +replication +replications +replied +replies +reply +replying +report +reported +reportedly +reporter +reporters +reporting +reports +repose +reposed +reposes +reposing +reposition +repositioned +repositioning +repositions +repositories +repository +reprehensible +represent +representable +representably +representation +representational +representationally +representations +representative +representatively +representativeness +representatives +represented +representing +represents +repress +repressed +represses +repressing +repression +repressions +repressive +reprieve +reprieved +reprieves +reprieving +reprimand +reprint +reprinted +reprinting +reprints +reprisal +reprisals +reproach +reproached +reproaches +reproaching +reprobate +reproduce +reproduced +reproducer +reproducers +reproduces +reproducibilities +reproducibility +reproducible +reproducibly +reproducing +reproduction +reproductions +reprogram +reprogrammed +reprogramming +reprograms +reproof +reprove +reprover +reptile +reptiles +reptilian +republic +republican +republicans +republics +repudiate +repudiated +repudiates +repudiating +repudiation +repudiations +repugnant +repulse +repulsed +repulses +repulsing +repulsion +repulsions +repulsive +reputable +reputably +reputation +reputations +repute +reputed +reputedly +reputes +request +requested +requester +requesters +requesting +requests +require +required +requirement +requirements +requires +requiring +requisite +requisites +requisition +requisitioned +requisitioning +requisitions +reread +reregister +reroute +rerouted +reroutes +rerouting +rerun +reruns +reschedule +rescind +rescue +rescued +rescuer +rescuers +rescues +rescuing +research +researched +researcher +researchers +researches +researching +reselect +reselected +reselecting +reselects +resell +reselling +resemblance +resemblances +resemble +resembled +resembles +resembling +resent +resented +resentful +resentfully +resenting +resentment +resents +reserpine +reservation +reservations +reserve +reserved +reserver +reserves +reserving +reservoir +reservoirs +reset +resets +resetting +resettings +reside +resided +residence +residences +resident +residential +residentially +residents +resides +residing +residual +residue +residues +resign +resignation +resignations +resigned +resigning +resigns +resilient +resin +resins +resist +resistable +resistance +resistances +resistant +resistantly +resisted +resistible +resisting +resistive +resistivity +resistor +resistors +resists +resolute +resolutely +resoluteness +resolution +resolutions +resolvable +resolve +resolved +resolver +resolvers +resolves +resolving +resonance +resonances +resonant +resonate +resort +resorted +resorting +resorts +resound +resounding +resounds +resource +resourceful +resourcefully +resourcefulness +resources +respect +respectability +respectable +respectably +respected +respecter +respectful +respectfully +respectfulness +respecting +respective +respectively +respects +respiration +respirator +respiratory +respite +resplendent +resplendently +respond +responded +respondent +respondents +responder +responding +responds +response +responses +responsibilities +responsibility +responsible +responsibleness +responsibly +responsive +responsively +responsiveness +rest +restart +restarted +restarting +restarts +restate +restated +restatement +restates +restating +restaurant +restaurants +restaurateur +rested +restful +restfully +restfulness +resting +restitution +restive +restless +restlessly +restlessness +restoration +restorations +restore +restored +restorer +restorers +restores +restoring +restrain +restrained +restrainer +restrainers +restraining +restrains +restraint +restraints +restrict +restricted +restricting +restriction +restrictions +restrictive +restrictively +restricts +restroom +restructure +restructured +restructures +restructuring +rests +result +resultant +resultantly +resultants +resulted +resulting +results +resumable +resume +resumed +resumes +resuming +resumption +resumptions +resurgent +resurrect +resurrected +resurrecting +resurrection +resurrections +resurrector +resurrectors +resurrects +resuscitate +resynchronization +resynchronize +resynchronized +resynchronizing +retail +retailer +retailers +retailing +retain +retained +retainer +retainers +retaining +retainment +retains +retaliate +retaliation +retaliatory +retard +retarded +retarder +retarding +retch +retention +retentions +retentive +retentively +retentiveness +reticle +reticles +reticular +reticulate +reticulated +reticulately +reticulates +reticulating +reticulation +retina +retinal +retinas +retinue +retire +retired +retiree +retirement +retirements +retires +retiring +retort +retorted +retorts +retrace +retraced +retraces +retracing +retract +retracted +retracting +retraction +retractions +retracts +retrain +retrained +retraining +retrains +retranslate +retranslated +retransmission +retransmissions +retransmit +retransmits +retransmitted +retransmitting +retreat +retreated +retreating +retreats +retribution +retried +retrier +retriers +retries +retrievable +retrieval +retrievals +retrieve +retrieved +retriever +retrievers +retrieves +retrieving +retroactive +retroactively +retrofit +retrofitting +retrograde +retrospect +retrospection +retrospective +retry +retrying +return +returnable +returned +returner +returning +returns +retype +retyped +retypes +retyping +reunion +reunions +reunite +reunited +reuniting +reusable +reuse +reused +reuses +reusing +revamp +revamped +revamping +revamps +reveal +revealed +revealing +reveals +revel +revelation +revelations +reveled +reveler +reveling +revelry +revels +revenge +revenger +revenue +revenuers +revenues +reverberate +revere +revered +reverence +reverend +reverends +reverent +reverently +reveres +reverie +reverified +reverifies +reverify +reverifying +revering +reversal +reversals +reverse +reversed +reversely +reverser +reverses +reversible +reversing +reversion +revert +reverted +reverting +reverts +review +reviewed +reviewer +reviewers +reviewing +reviews +revile +reviled +reviler +reviling +revise +revised +reviser +revises +revising +revision +revisionary +revisions +revisit +revisited +revisiting +revisits +revival +revivals +revive +revived +reviver +revives +reviving +revocable +revocation +revoke +revoked +revoker +revokes +revoking +revolt +revolted +revolter +revolting +revoltingly +revolts +revolution +revolutionaries +revolutionary +revolutionize +revolutionized +revolutionizer +revolutions +revolve +revolved +revolver +revolvers +revolves +revolving +revulsion +reward +rewarded +rewarding +rewardingly +rewards +rewind +rewinding +rewinds +rewire +rework +reworked +reworking +reworks +rewound +rewrite +rewrites +rewriting +rewritten +rhapsody +rhesus +rhetoric +rheumatic +rheumatism +rhinestone +rhino +rhinoceros +rho +rhododendron +rhombic +rhombus +rhubarb +rhyme +rhymed +rhymes +rhyming +rhythm +rhythmic +rhythmically +rhythms +rib +ribald +ribbed +ribbing +ribbon +ribbons +riboflavin +ribonucleic +ribs +rice +rich +richer +riches +richest +richly +richness +rickets +rickety +rickshaw +rickshaws +ricochet +rid +riddance +ridden +ridding +riddle +riddled +riddles +riddling +ride +rider +riders +rides +ridge +ridgepole +ridges +ridicule +ridiculed +ridicules +ridiculing +ridiculous +ridiculously +ridiculousness +riding +rids +rifle +rifled +rifleman +rifler +rifles +rifling +rift +rig +rigging +right +righted +righteous +righteously +righteousness +righter +rightful +rightfully +rightfulness +righting +rightly +rightmost +rightness +rights +rightward +rigid +rigidity +rigidly +rigor +rigorous +rigorously +rigors +rigs +rill +rim +rime +rims +rind +rinds +ring +ringed +ringer +ringers +ringing +ringingly +ringings +rings +ringside +rink +rinse +rinsed +rinser +rinses +rinsing +riot +rioted +rioter +rioters +rioting +riotous +riots +rip +ripe +ripely +ripen +ripeness +ripoff +ripped +ripping +ripple +rippled +ripples +rippling +rips +rise +risen +riser +risers +rises +rising +risings +risk +risked +risking +risks +risky +rite +rites +ritual +ritually +rituals +rival +rivaled +rivalled +rivalling +rivalries +rivalry +rivals +river +riverbank +riverfront +rivers +riverside +rivet +riveter +rivets +rivulet +rivulets +roach +road +roadbed +roadblock +roads +roadside +roadster +roadsters +roadway +roadways +roam +roamed +roaming +roams +roar +roared +roarer +roaring +roars +roast +roasted +roaster +roasting +roasts +rob +robbed +robber +robberies +robbers +robbery +robbing +robe +robed +robes +robin +robing +robins +robot +robotic +robotics +robots +robs +robust +robustly +robustness +rock +rockabye +rocked +rocker +rockers +rocket +rocketed +rocketing +rockets +rocking +rocks +rocky +rod +rode +rodent +rodents +rodeo +rods +roe +rogue +rogues +role +roles +roll +rollback +rolled +roller +rollers +rolling +rolls +romance +romancer +romancers +romances +romancing +romantic +romantics +romp +romped +romper +romping +romps +roof +roofed +roofer +roofing +roofs +rooftop +rook +rookie +room +roomed +roomer +roomers +roomful +rooming +roommate +rooms +roomy +roost +rooster +roosters +root +rooted +rooter +rooting +roots +rope +roped +roper +ropers +ropes +roping +rosary +rosebud +rosebuds +rosebush +rosemary +roses +rosette +rosiness +roster +rostrum +rosy +rot +rotary +rotate +rotated +rotates +rotating +rotation +rotational +rotations +rotator +rotor +rots +rotten +rottenness +rotting +rotund +rotunda +rouge +rough +roughed +roughen +rougher +roughest +roughly +roughneck +roughness +roulette +round +roundabout +rounded +roundedness +rounder +roundest +roundhead +roundhouse +rounding +roundly +roundness +roundoff +rounds +roundtable +roundup +roundworm +rouse +roused +rouses +rousing +roustabout +rout +route +routed +router +routers +routes +routine +routinely +routines +routing +routings +rove +roved +rover +roves +roving +row +rowboat +rowdy +rowed +rower +rowing +rows +royal +royalist +royalists +royally +royalties +royalty +rub +rubbed +rubber +rubbers +rubbery +rubbing +rubbish +rubble +rubdown +rubies +ruble +rubles +rubout +rubs +ruby +rudder +rudders +ruddiness +ruddy +rude +rudely +rudeness +rudiment +rudimentary +rudiments +rue +ruefully +ruffian +ruffianly +ruffians +ruffle +ruffled +ruffles +rug +rugged +ruggedly +ruggedness +rugs +ruin +ruination +ruinations +ruined +ruining +ruinous +ruinously +ruins +rule +ruled +ruler +rulers +rules +ruling +rulings +rum +rumble +rumbled +rumbler +rumbles +rumbling +rumen +rummage +rummy +rumor +rumored +rumors +rump +rumple +rumpled +rumply +rumpus +run +runaway +rundown +rung +rungs +runnable +runner +runners +running +runoff +runs +runt +runtime +rupee +rupture +ruptured +ruptures +rupturing +rural +rurally +rush +rushed +rusher +rushes +rushing +russet +rust +rusted +rustic +rusticate +rusticated +rusticates +rusticating +rustication +rusting +rustle +rustled +rustler +rustlers +rustling +rusts +rusty +rut +ruthless +ruthlessly +ruthlessness +ruts +rye +sabbath +sabbatical +saber +sabers +sable +sables +sabotage +sack +sacker +sacking +sacks +sacrament +sacred +sacredly +sacredness +sacrifice +sacrificed +sacrificer +sacrificers +sacrifices +sacrificial +sacrificially +sacrificing +sacrilege +sacrilegious +sacrosanct +sad +sadden +saddened +saddens +sadder +saddest +saddle +saddlebag +saddled +saddles +sadism +sadist +sadistic +sadistically +sadists +sadly +sadness +safari +safe +safeguard +safeguarded +safeguarding +safeguards +safekeeping +safely +safeness +safer +safes +safest +safeties +safety +saffron +sag +saga +sagacious +sagacity +sage +sagebrush +sagely +sages +sagging +sagittal +sags +saguaro +said +sail +sailboat +sailed +sailfish +sailing +sailor +sailorly +sailors +sails +saint +sainted +sainthood +saintly +saints +sake +sakes +salable +salad +salads +salamander +salami +salaried +salaries +salary +sale +sales +salesgirl +saleslady +salesman +salesmen +salesperson +salient +saline +saliva +salivary +salivate +sallies +sallow +sallying +salmon +salon +salons +saloon +saloons +salt +salted +salter +salters +saltier +saltiest +saltiness +salting +salts +salty +salutary +salutation +salutations +salute +saluted +salutes +saluting +salvage +salvaged +salvager +salvages +salvaging +salvation +salve +salver +salves +same +sameness +sample +sampled +sampler +samplers +samples +sampling +samplings +sanatoria +sanatorium +sanctification +sanctified +sanctify +sanctimonious +sanction +sanctioned +sanctioning +sanctions +sanctity +sanctuaries +sanctuary +sanctum +sand +sandal +sandals +sandbag +sanded +sander +sanding +sandman +sandpaper +sands +sandstone +sandwich +sandwiches +sandy +sane +sanely +saner +sanest +sang +sanguine +sanitarium +sanitary +sanitation +sanity +sank +sap +sapiens +sapling +saplings +sapphire +saps +sapsucker +sarcasm +sarcasms +sarcastic +sardine +sardonic +sari +sash +sat +satanic +satchel +satchels +sate +sated +satellite +satellites +sates +satin +sating +satire +satires +satiric +satisfaction +satisfactions +satisfactorily +satisfactory +satisfiability +satisfiable +satisfied +satisfies +satisfy +satisfying +saturate +saturated +saturates +saturating +saturation +satyr +sauce +saucepan +saucepans +saucer +saucers +sauces +saucy +saunter +sausage +sausages +savage +savaged +savagely +savageness +savager +savagers +savages +savaging +save +saved +saver +savers +saves +saving +savings +savior +saviors +savor +savored +savoring +savors +savory +saw +sawdust +sawed +sawfish +sawing +sawmill +sawmills +saws +sawtooth +sax +saxophone +say +sayer +sayers +saying +sayings +says +scab +scabbard +scabbards +scabrous +scaffold +scaffolding +scaffoldings +scaffolds +scalable +scalar +scalars +scald +scalded +scalding +scale +scaled +scales +scaling +scalings +scallop +scalloped +scallops +scalp +scalps +scaly +scamper +scampering +scampers +scan +scandal +scandalous +scandals +scanned +scanner +scanners +scanning +scans +scant +scantier +scantiest +scantily +scantiness +scantly +scanty +scapegoat +scar +scarce +scarcely +scarceness +scarcer +scarcity +scare +scarecrow +scared +scares +scarf +scaring +scarlet +scars +scarves +scary +scatter +scatterbrain +scattered +scattering +scatters +scenario +scenarios +scene +scenery +scenes +scenic +scent +scented +scents +scepter +scepters +schedulable +schedule +scheduled +scheduler +schedulers +schedules +scheduling +schema +schemas +schemata +schematic +schematically +schematics +scheme +schemed +schemer +schemers +schemes +scheming +schism +schizophrenia +scholar +scholarly +scholars +scholarship +scholarships +scholastic +scholastically +scholastics +school +schoolboy +schoolboys +schooled +schooler +schoolers +schoolhouse +schoolhouses +schooling +schoolmaster +schoolmasters +schoolroom +schoolrooms +schools +schooner +science +sciences +scientific +scientifically +scientist +scientists +scissor +scissored +scissoring +scissors +sclerosis +sclerotic +scoff +scoffed +scoffer +scoffing +scoffs +scold +scolded +scolding +scolds +scoop +scooped +scooping +scoops +scoot +scope +scoped +scopes +scoping +scorch +scorched +scorcher +scorches +scorching +score +scoreboard +scorecard +scored +scorer +scorers +scores +scoring +scorings +scorn +scorned +scorner +scornful +scornfully +scorning +scorns +scorpion +scorpions +scotch +scoundrel +scoundrels +scour +scoured +scourge +scouring +scours +scout +scouted +scouting +scouts +scow +scowl +scowled +scowling +scowls +scram +scramble +scrambled +scrambler +scrambles +scrambling +scrap +scrape +scraped +scraper +scrapers +scrapes +scraping +scrapings +scrapped +scraps +scratch +scratched +scratcher +scratchers +scratches +scratching +scratchy +scrawl +scrawled +scrawling +scrawls +scrawny +scream +screamed +screamer +screamers +screaming +screams +screech +screeched +screeches +screeching +screen +screened +screening +screenings +screenplay +screens +screw +screwball +screwdriver +screwed +screwing +screws +scribble +scribbled +scribbler +scribbles +scribe +scribes +scribing +scrimmage +script +scripts +scripture +scriptures +scroll +scrolled +scrolling +scrolls +scrounge +scrub +scrumptious +scruple +scrupulous +scrupulously +scrutinize +scrutinized +scrutinizing +scrutiny +scuba +scud +scuffle +scuffled +scuffles +scuffling +sculpt +sculpted +sculptor +sculptors +sculpts +sculpture +sculptured +sculptures +scurried +scurry +scurvy +scuttle +scuttled +scuttles +scuttling +scythe +scythes +sea +seaboard +seacoast +seacoasts +seafood +seagull +seahorse +seal +sealed +sealer +sealing +seals +sealy +seam +seaman +seamed +seamen +seaming +seams +seamy +seaport +seaports +sear +search +searched +searcher +searchers +searches +searching +searchingly +searchings +searchlight +seared +searing +searingly +seas +seashore +seashores +seaside +season +seasonable +seasonably +seasonal +seasonally +seasoned +seasoner +seasoners +seasoning +seasonings +seasons +seat +seated +seating +seats +seaward +seaweed +secant +secede +seceded +secedes +seceding +secession +seclude +secluded +seclusion +second +secondaries +secondarily +secondary +seconded +seconder +seconders +secondhand +seconding +secondly +seconds +secrecy +secret +secretarial +secretariat +secretaries +secretary +secrete +secreted +secretes +secreting +secretion +secretions +secretive +secretively +secretly +secrets +sect +sectarian +section +sectional +sectioned +sectioning +sections +sector +sectors +sects +secular +secure +secured +securely +secures +securing +securings +securities +security +sedan +sedate +sedge +sediment +sedimentary +sediments +sedition +seditious +seduce +seduced +seducer +seducers +seduces +seducing +seduction +seductive +see +seed +seeded +seeder +seeders +seeding +seedings +seedling +seedlings +seeds +seedy +seeing +seek +seeker +seekers +seeking +seeks +seem +seemed +seeming +seemingly +seemly +seems +seen +seep +seepage +seeped +seeping +seeps +seer +seers +seersucker +sees +seethe +seethed +seethes +seething +segment +segmentation +segmentations +segmented +segmenting +segments +segregate +segregated +segregates +segregating +segregation +seismic +seismograph +seismology +seize +seized +seizes +seizing +seizure +seizures +seldom +select +selected +selecting +selection +selections +selective +selectively +selectivity +selectman +selectmen +selector +selectors +selects +selenium +self +selfish +selfishly +selfishness +selfsame +sell +seller +sellers +selling +sellout +sells +seltzer +selves +semantic +semantical +semantically +semanticist +semanticists +semantics +semaphore +semaphores +semblance +semester +semesters +semi +semiautomated +semicolon +semicolons +semiconductor +semiconductors +seminal +seminar +seminarian +seminaries +seminars +seminary +semipermanent +semipermanently +senate +senates +senator +senatorial +senators +send +sender +senders +sending +sends +senile +senior +seniority +seniors +sensation +sensational +sensationally +sensations +sense +sensed +senseless +senselessly +senselessness +senses +sensibilities +sensibility +sensible +sensibly +sensing +sensitive +sensitively +sensitiveness +sensitives +sensitivities +sensitivity +sensor +sensors +sensory +sensual +sensuous +sent +sentence +sentenced +sentences +sentencing +sentential +sentiment +sentimental +sentimentally +sentiments +sentinel +sentinels +sentries +sentry +separable +separate +separated +separately +separateness +separates +separating +separation +separations +separator +separators +sepia +sept +sepulcher +sepulchers +sequel +sequels +sequence +sequenced +sequencer +sequencers +sequences +sequencing +sequencings +sequential +sequentiality +sequentialize +sequentialized +sequentializes +sequentializing +sequentially +sequester +serendipitous +serendipity +serene +serenely +serenity +serf +serfs +sergeant +sergeants +serial +serializability +serializable +serialization +serializations +serialize +serialized +serializes +serializing +serially +serials +series +serif +serious +seriously +seriousness +sermon +sermons +serpent +serpentine +serpents +serum +serums +servant +servants +serve +served +server +servers +serves +service +serviceability +serviceable +serviced +serviceman +servicemen +services +servicing +servile +serving +servings +servitude +servo +servomechanism +sesame +session +sessions +set +setback +sets +settable +setter +setters +setting +settings +settle +settled +settlement +settlements +settler +settlers +settles +settling +setup +setups +seven +sevenfold +sevens +seventeen +seventeens +seventeenth +seventh +seventies +seventieth +seventy +sever +several +severalfold +severally +severance +severe +severed +severely +severer +severest +severing +severities +severity +severs +sew +sewage +sewed +sewer +sewers +sewing +sews +sex +sexed +sexes +sexist +sextet +sextillion +sexton +sextuple +sextuplet +sexual +sexuality +sexually +sexy +shabby +shack +shacked +shackle +shackled +shackles +shackling +shacks +shade +shaded +shades +shadier +shadiest +shadily +shadiness +shading +shadings +shadow +shadowed +shadowing +shadows +shadowy +shady +shaft +shafts +shaggy +shakable +shakably +shake +shakedown +shaken +shaker +shakers +shakes +shakiness +shaking +shaky +shale +shall +shallow +shallower +shallowly +shallowness +sham +shambles +shame +shamed +shameful +shamefully +shameless +shamelessly +shames +shaming +shampoo +shamrock +shams +shanties +shanty +shape +shaped +shapeless +shapelessly +shapelessness +shapely +shaper +shapers +shapes +shaping +sharable +shard +share +shareable +sharecropper +sharecroppers +shared +shareholder +shareholders +sharer +sharers +shares +sharing +shark +sharks +sharp +sharpen +sharpened +sharpening +sharpens +sharper +sharpest +sharply +sharpness +sharpshoot +shatter +shattered +shattering +shatterproof +shatters +shave +shaved +shaven +shaves +shaving +shavings +shawl +shawls +she +sheaf +shear +sheared +shearing +shears +sheath +sheathing +sheaths +sheaves +shed +shedding +sheds +sheen +sheep +sheepskin +sheer +sheered +sheet +sheeted +sheeting +sheets +sheik +shelf +shell +shelled +sheller +shelling +shells +shelter +sheltered +sheltering +shelters +shelve +shelved +shelves +shelving +shenanigan +shepherd +shepherds +sherbet +sheriff +sheriffs +sherry +shibboleth +shied +shield +shielded +shielding +shies +shift +shifted +shifter +shifters +shiftier +shiftiest +shiftily +shiftiness +shifting +shifts +shifty +shill +shilling +shillings +shimmer +shimmering +shin +shinbone +shine +shined +shiner +shiners +shines +shingle +shingles +shining +shiningly +shiny +ship +shipboard +shipbuilding +shipmate +shipment +shipments +shipped +shipper +shippers +shipping +ships +shipshape +shipwreck +shipwrecked +shipwrecks +shipyard +shire +shirk +shirker +shirking +shirks +shirt +shirting +shirts +shit +shiver +shivered +shiverer +shivering +shivers +shoal +shoals +shock +shocked +shocker +shockers +shocking +shockingly +shocks +shod +shoddy +shoe +shoed +shoehorn +shoeing +shoelace +shoemaker +shoes +shoestring +shone +shook +shoot +shooter +shooters +shooting +shootings +shoots +shop +shopkeeper +shopkeepers +shopped +shopper +shoppers +shopping +shops +shopworn +shore +shoreline +shores +shorn +short +shortage +shortages +shortcoming +shortcomings +shortcut +shortcuts +shorted +shorten +shortened +shortening +shortens +shorter +shortest +shortfall +shorthand +shorthanded +shorting +shortish +shortly +shortness +shorts +shortsighted +shortstop +shot +shotgun +shotguns +shots +should +shoulder +shouldered +shouldering +shoulders +shout +shouted +shouter +shouters +shouting +shouts +shove +shoved +shovel +shoveled +shovels +shoves +shoving +show +showboat +showcase +showdown +showed +shower +showered +showering +showers +showing +showings +shown +showpiece +showroom +shows +showy +shrank +shrapnel +shred +shredder +shredding +shreds +shrew +shrewd +shrewdest +shrewdly +shrewdness +shrews +shriek +shrieked +shrieking +shrieks +shrill +shrilled +shrilling +shrillness +shrilly +shrimp +shrine +shrines +shrink +shrinkable +shrinkage +shrinking +shrinks +shrivel +shriveled +shroud +shrouded +shrub +shrubbery +shrubs +shrug +shrugs +shrunk +shrunken +shudder +shuddered +shuddering +shudders +shuffle +shuffleboard +shuffled +shuffles +shuffling +shun +shuns +shunt +shut +shutdown +shutdowns +shutoff +shutout +shuts +shutter +shuttered +shutters +shutting +shuttle +shuttlecock +shuttled +shuttles +shuttling +shy +shyly +shyness +sibling +siblings +sick +sicken +sicker +sickest +sickle +sickly +sickness +sicknesses +sickroom +side +sidearm +sideband +sideboard +sideboards +sideburns +sidecar +sided +sidelight +sidelights +sideline +sidereal +sides +sidesaddle +sideshow +sidestep +sidetrack +sidewalk +sidewalks +sideways +sidewise +siding +sidings +siege +sieges +sierra +sieve +sieves +sift +sifted +sifter +sifting +sigh +sighed +sighing +sighs +sight +sighted +sighting +sightings +sightly +sights +sightseeing +sigma +sign +signal +signaled +signaling +signalled +signalling +signally +signals +signature +signatures +signed +signer +signers +signet +significance +significant +significantly +significants +signification +signified +signifies +signify +signifying +signing +signs +silence +silenced +silencer +silencers +silences +silencing +silent +silently +silhouette +silhouetted +silhouettes +silica +silicate +silicon +silicone +silk +silken +silkier +silkiest +silkily +silks +silky +sill +silliest +silliness +sills +silly +silo +silt +silted +silting +silts +silver +silvered +silvering +silvers +silversmith +silverware +silvery +similar +similarities +similarity +similarly +simile +similitude +simmer +simmered +simmering +simmers +simple +simpleminded +simpleness +simpler +simplest +simpleton +simplex +simplicities +simplicity +simplification +simplifications +simplified +simplifier +simplifiers +simplifies +simplify +simplifying +simplistic +simply +simulate +simulated +simulates +simulating +simulation +simulations +simulator +simulators +simulcast +simultaneity +simultaneous +simultaneously +since +sincere +sincerely +sincerest +sincerity +sine +sines +sinew +sinews +sinewy +sinful +sinfully +sinfulness +sing +singable +singe +singed +singer +singers +singing +singingly +single +singled +singlehanded +singleness +singles +singlet +singleton +singletons +singling +singly +sings +singsong +singular +singularities +singularity +singularly +sinister +sink +sinked +sinker +sinkers +sinkhole +sinking +sinks +sinned +sinner +sinners +sinning +sins +sinuous +sinus +sinusoid +sinusoidal +sinusoids +sip +siphon +siphoning +sipping +sips +sir +sire +sired +siren +sirens +sires +sirs +sirup +sister +sisterly +sisters +sit +site +sited +sites +siting +sits +sitter +sitters +sitting +sittings +situ +situate +situated +situates +situating +situation +situational +situationally +situations +six +sixes +sixfold +sixgun +sixpence +sixteen +sixteens +sixteenth +sixth +sixties +sixtieth +sixty +sizable +size +sized +sizes +sizing +sizings +sizzle +skate +skated +skater +skaters +skates +skating +skeletal +skeleton +skeletons +skeptic +skeptical +skeptically +skepticism +skeptics +sketch +sketchbook +sketched +sketches +sketchily +sketching +sketchpad +sketchy +skew +skewed +skewer +skewers +skewing +skews +ski +skid +skidding +skied +skies +skiff +skiing +skill +skilled +skillet +skillful +skillfully +skillfulness +skills +skim +skimmed +skimming +skimp +skimped +skimping +skimps +skimpy +skims +skin +skindive +skinned +skinner +skinners +skinning +skinny +skins +skip +skipped +skipper +skippers +skipping +skips +skirmish +skirmished +skirmisher +skirmishers +skirmishes +skirmishing +skirt +skirted +skirting +skirts +skis +skit +skulk +skulked +skulker +skulking +skulks +skull +skullcap +skullduggery +skulls +skunk +skunks +sky +skyhook +skyjack +skylark +skylarking +skylarks +skylight +skylights +skyline +skyrockets +skyscraper +skyscrapers +slab +slack +slacken +slacker +slacking +slackly +slackness +slacks +slain +slam +slammed +slamming +slams +slander +slanderer +slanderous +slanders +slang +slant +slanted +slanting +slants +slap +slapped +slapping +slaps +slapstick +slash +slashed +slashes +slashing +slat +slate +slated +slater +slates +slats +slaughter +slaughtered +slaughterhouse +slaughtering +slaughters +slave +slaver +slavery +slaves +slavish +slay +slayer +slayers +slaying +slays +sled +sledding +sledge +sledgehammer +sledges +sleds +sleek +sleep +sleeper +sleepers +sleepily +sleepiness +sleeping +sleepless +sleeplessly +sleeplessness +sleeps +sleepwalk +sleepy +sleet +sleeve +sleeves +sleigh +sleighs +sleight +slender +slenderer +slept +sleuth +slew +slewing +slice +sliced +slicer +slicers +slices +slicing +slick +slicker +slickers +slicks +slid +slide +slider +sliders +slides +sliding +slight +slighted +slighter +slightest +slighting +slightly +slightness +slights +slim +slime +slimed +slimly +slimy +sling +slinging +slings +slingshot +slip +slippage +slipped +slipper +slipperiness +slippers +slippery +slipping +slips +slit +slither +slits +sliver +slob +slogan +slogans +sloop +slop +slope +sloped +sloper +slopers +slopes +sloping +slopped +sloppiness +slopping +sloppy +slops +slot +sloth +slothful +sloths +slots +slotted +slotting +slouch +slouched +slouches +slouching +slow +slowdown +slowed +slower +slowest +slowing +slowly +slowness +slows +sludge +slug +sluggish +sluggishly +sluggishness +slugs +sluice +slum +slumber +slumbered +slumming +slump +slumped +slumps +slums +slung +slur +slurp +slurring +slurry +slurs +sly +slyly +smack +smacked +smacking +smacks +small +smaller +smallest +smallish +smallness +smallpox +smalltime +smart +smarted +smarter +smartest +smartly +smartness +smash +smashed +smasher +smashers +smashes +smashing +smashingly +smattering +smear +smeared +smearing +smears +smell +smelled +smelling +smells +smelly +smelt +smelter +smelts +smile +smiled +smiles +smiling +smilingly +smirk +smite +smith +smithereens +smiths +smithy +smitten +smock +smocking +smocks +smog +smokable +smoke +smoked +smoker +smokers +smokes +smokescreen +smokestack +smokies +smoking +smoky +smolder +smoldered +smoldering +smolders +smooch +smooth +smoothbore +smoothed +smoother +smoothes +smoothest +smoothing +smoothly +smoothness +smote +smother +smothered +smothering +smothers +smudge +smug +smuggle +smuggled +smuggler +smugglers +smuggles +smuggling +smut +smutty +snack +snafu +snag +snail +snails +snake +snaked +snakelike +snakes +snap +snapdragon +snapped +snapper +snappers +snappily +snapping +snappy +snaps +snapshot +snapshots +snare +snared +snares +snaring +snark +snarl +snarled +snarling +snatch +snatched +snatches +snatching +snazzy +sneak +sneaked +sneaker +sneakers +sneakier +sneakiest +sneakily +sneakiness +sneaking +sneaks +sneaky +sneer +sneered +sneering +sneers +sneeze +sneezed +sneezes +sneezing +sniff +sniffed +sniffing +sniffle +sniffs +snifter +snigger +snip +snipe +snippet +snivel +snob +snobbery +snobbish +snoop +snooped +snooping +snoops +snoopy +snore +snored +snores +snoring +snorkel +snort +snorted +snorting +snorts +snotty +snout +snouts +snow +snowball +snowed +snowfall +snowflake +snowier +snowiest +snowily +snowing +snowman +snowmen +snows +snowshoe +snowshoes +snowstorm +snowy +snub +snuff +snuffed +snuffer +snuffing +snuffs +snug +snuggle +snuggled +snuggles +snuggling +snugly +snugness +so +soak +soaked +soaking +soaks +soap +soaped +soaping +soaps +soapy +soar +soared +soaring +soars +sob +sobbing +sober +sobered +sobering +soberly +soberness +sobers +sobriety +sobs +soccer +sociability +sociable +sociably +social +socialism +socialist +socialists +socialize +socialized +socializes +socializing +socially +societal +societies +society +socioeconomic +sociological +sociologically +sociologist +sociologists +sociology +sock +socked +socket +sockets +socking +socks +sod +soda +sodium +sodomy +sods +sofa +sofas +soft +softball +soften +softened +softening +softens +softer +softest +softly +softness +software +softwares +soggy +soil +soiled +soiling +soils +soiree +sojourn +sojourner +sojourners +solace +solaced +solar +sold +solder +soldered +soldier +soldiering +soldierly +soldiers +sole +solely +solemn +solemnity +solemnly +solemnness +solenoid +soles +solicit +solicitation +solicited +soliciting +solicitor +solicitous +solicits +solicitude +solid +solidarity +solidification +solidified +solidifies +solidify +solidifying +solidity +solidly +solidness +solids +soliloquy +solitaire +solitary +solitude +solitudes +solo +solos +solstice +solubility +soluble +solution +solutions +solvable +solve +solved +solvent +solvents +solver +solvers +solves +solving +somatic +somber +somberly +some +somebody +someday +somehow +someone +someplace +somersault +something +sometime +sometimes +somewhat +somewhere +sommelier +somnolent +son +sonar +sonata +song +songbook +songs +sonic +sonnet +sonnets +sonny +sons +soon +sooner +soonest +soot +sooth +soothe +soothed +soother +soothes +soothing +soothsayer +sophisticated +sophistication +sophistry +sophomore +sophomores +soprano +sorcerer +sorcerers +sorcery +sordid +sordidly +sordidness +sore +sorely +soreness +sorer +sores +sorest +sorghum +sorority +sorrel +sorrier +sorriest +sorrow +sorrowful +sorrowfully +sorrows +sorry +sort +sorted +sorter +sorters +sortie +sorting +sorts +sought +soul +soulful +souls +sound +sounded +sounder +soundest +sounding +soundings +soundly +soundness +soundproof +sounds +soup +souped +soups +sour +source +sources +sourdough +soured +sourer +sourest +souring +sourly +sourness +sours +south +southbound +southeast +southeastern +southern +southerner +southerners +southernmost +southland +southpaw +southward +southwest +southwestern +souvenir +sovereign +sovereigns +sovereignty +soviet +soviets +sow +sown +soy +soya +soybean +spa +space +spacecraft +spaced +spacer +spacers +spaces +spaceship +spaceships +spacesuit +spacing +spacings +spacious +spaded +spades +spading +span +spandrel +spaniel +spank +spanked +spanking +spanks +spanned +spanner +spanners +spanning +spans +spare +spared +sparely +spareness +sparer +spares +sparest +sparing +sparingly +spark +sparked +sparking +sparkle +sparkling +sparks +sparring +sparrow +sparrows +sparse +sparsely +sparseness +sparser +sparsest +spasm +spastic +spat +spate +spates +spatial +spatially +spatter +spattered +spatula +spawn +spawned +spawning +spawns +spayed +speak +speakable +speakeasy +speaker +speakers +speaking +speaks +spear +speared +spearmint +spears +spec +special +specialist +specialists +specialization +specializations +specialize +specialized +specializes +specializing +specially +specials +specialties +specialty +specie +species +specifiable +specific +specifically +specification +specifications +specificity +specifics +specified +specifier +specifiers +specifies +specify +specifying +specimen +specimens +specious +speck +speckle +speckled +speckles +specks +spectacle +spectacled +spectacles +spectacular +spectacularly +spectator +spectators +specter +specters +spectra +spectral +spectrogram +spectrograms +spectrograph +spectrographic +spectrography +spectrometer +spectrophotometer +spectrophotometry +spectroscope +spectroscopic +spectroscopy +spectrum +speculate +speculated +speculates +speculating +speculation +speculations +speculative +speculator +speculators +sped +speech +speeches +speechless +speechlessness +speed +speedboat +speeded +speeder +speeders +speedily +speeding +speedometer +speeds +speedup +speedups +speedy +spell +spellbound +spelled +speller +spellers +spelling +spellings +spells +spend +spender +spenders +spending +spends +spent +sperm +sphere +spheres +spherical +spherically +spheroid +spheroidal +sphinx +spice +spiced +spices +spiciness +spicy +spider +spiders +spidery +spies +spigot +spike +spiked +spikes +spill +spilled +spiller +spilling +spills +spilt +spin +spinach +spinal +spinally +spindle +spindled +spindling +spine +spinnaker +spinner +spinners +spinning +spinoff +spins +spinster +spiny +spiral +spiraled +spiraling +spirally +spire +spires +spirit +spirited +spiritedly +spiriting +spirits +spiritual +spiritually +spirituals +spit +spite +spited +spiteful +spitefully +spitefulness +spites +spitfire +spiting +spits +spitting +spittle +splash +splashed +splashes +splashing +splashy +spleen +splendid +splendidly +splendor +splenetic +splice +spliced +splicer +splicers +splices +splicing +splicings +spline +splines +splint +splinter +splintered +splinters +splintery +split +splits +splitter +splitters +splitting +splurge +spoil +spoilage +spoiled +spoiler +spoilers +spoiling +spoils +spoke +spoked +spoken +spokes +spokesman +spokesmen +sponge +sponged +sponger +spongers +sponges +sponging +spongy +sponsor +sponsored +sponsoring +sponsors +sponsorship +spontaneity +spontaneous +spontaneously +spoof +spook +spooky +spool +spooled +spooler +spoolers +spooling +spools +spoon +spooned +spoonful +spooning +spoons +sporadic +spore +spores +sport +sported +sporting +sportingly +sportive +sports +sportsman +sportsmen +sportswear +sportswriter +sportswriting +sporty +spot +spotless +spotlessly +spotlight +spots +spotted +spotter +spotters +spotting +spotty +spouse +spouses +spout +spouted +spouting +spouts +sprain +sprang +sprawl +sprawled +sprawling +sprawls +spray +sprayed +sprayer +spraying +sprays +spread +spreader +spreaders +spreading +spreadings +spreads +spreadsheet +spree +sprees +sprig +sprightly +spring +springboard +springer +springers +springier +springiest +springiness +springing +springs +springtime +springy +sprinkle +sprinkled +sprinkler +sprinkles +sprinkling +sprint +sprinted +sprinter +sprinters +sprinting +sprints +sprite +sprocket +sprout +sprouted +sprouting +spruce +spruced +sprung +spun +spunk +spur +spurious +spurn +spurned +spurning +spurns +spurs +spurt +spurted +spurting +spurts +sputter +sputtered +spy +spyglass +spying +squabble +squabbled +squabbles +squabbling +squad +squadron +squadrons +squads +squalid +squall +squalls +squander +square +squared +squarely +squareness +squarer +squares +squarest +squaring +squash +squashed +squashing +squat +squats +squatting +squaw +squawk +squawked +squawking +squawks +squeak +squeaked +squeaking +squeaks +squeaky +squeal +squealed +squealing +squeals +squeamish +squeeze +squeezed +squeezer +squeezes +squeezing +squelch +squid +squint +squinted +squinting +squire +squires +squirm +squirmed +squirms +squirmy +squirrel +squirreled +squirreling +squirrels +squirt +squishy +stab +stabbed +stabbing +stabile +stabilities +stability +stabilize +stabilized +stabilizer +stabilizers +stabilizes +stabilizing +stable +stabled +stabler +stables +stabling +stably +stabs +stack +stacked +stacking +stacks +stadia +stadium +staff +staffed +staffer +staffers +staffing +staffs +stag +stage +stagecoach +stagecoaches +staged +stager +stagers +stages +stagger +staggered +staggering +staggers +staging +stagnant +stagnate +stagnation +stags +staid +stain +stained +staining +stainless +stains +stair +staircase +staircases +stairs +stairway +stairways +stairwell +stake +staked +stakes +stalactite +stale +stalemate +stalk +stalked +stalking +stall +stalled +stalling +stallings +stallion +stalls +stalwart +stalwartly +stamen +stamens +stamina +stammer +stammered +stammerer +stammering +stammers +stamp +stamped +stampede +stampeded +stampedes +stampeding +stamper +stampers +stamping +stamps +stanch +stanchest +stanchion +stand +standard +standardization +standardize +standardized +standardizes +standardizing +standardly +standards +standby +standing +standings +standoff +standpoint +standpoints +stands +standstill +stanza +stanzas +staphylococcus +staple +stapler +staples +stapling +star +starboard +starch +starched +stardom +stare +stared +starer +stares +starfish +staring +stark +starkly +starlet +starlight +starling +starred +starring +starry +stars +start +started +starter +starters +starting +startle +startled +startles +startling +starts +startup +startups +starvation +starve +starved +starves +starving +state +stated +stately +statement +statements +states +statesman +statesmanlike +statesmen +statewide +static +statically +stating +station +stationary +stationed +stationer +stationery +stationing +stationmaster +stations +statistic +statistical +statistically +statistician +statisticians +statistics +statue +statues +statuesque +statuesquely +statuesqueness +statuette +stature +status +statuses +statute +statutes +statutorily +statutoriness +statutory +staunch +staunchest +staunchly +stave +staved +staves +stay +stayed +staying +stays +stead +steadfast +steadfastly +steadfastness +steadied +steadier +steadies +steadiest +steadily +steadiness +steady +steadying +steak +steaks +steal +stealer +stealing +steals +stealth +stealthily +stealthy +steam +steamboat +steamboats +steamed +steamer +steamers +steaming +steams +steamship +steamships +steamy +steed +steel +steeled +steelers +steeling +steelmaker +steels +steely +steep +steeped +steeper +steepest +steeping +steeple +steeples +steeply +steepness +steeps +steer +steerable +steered +steering +steers +stellar +stem +stemmed +stemming +stems +stench +stenches +stencil +stencils +stenographer +stenographers +stenotype +step +stepchild +stepmother +stepmothers +stepped +stepper +stepping +steps +stepson +stepwise +stereo +stereos +stereoscopic +stereotype +stereotyped +stereotypes +stereotypical +sterile +sterilization +sterilizations +sterilize +sterilized +sterilizer +sterilizes +sterilizing +sterling +stern +sternly +sternness +sterns +stethoscope +stevedore +stew +steward +stewardess +stewards +stewed +stews +stick +sticker +stickers +stickier +stickiest +stickily +stickiness +sticking +stickleback +sticks +sticky +stiff +stiffen +stiffens +stiffer +stiffest +stiffly +stiffness +stiffs +stifle +stifled +stifles +stifling +stigma +stigmata +stile +stiles +stiletto +still +stillbirth +stillborn +stilled +stiller +stillest +stilling +stillness +stills +stilt +stilts +stimulant +stimulants +stimulate +stimulated +stimulates +stimulating +stimulation +stimulations +stimulative +stimuli +stimulus +sting +stinging +stings +stingy +stink +stinker +stinkers +stinking +stinks +stint +stipend +stipends +stipulate +stipulated +stipulates +stipulating +stipulation +stipulations +stir +stirred +stirrer +stirrers +stirring +stirringly +stirrings +stirrup +stirs +stitch +stitched +stitches +stitching +stochastic +stochastically +stock +stockade +stockades +stockbroker +stocked +stocker +stockers +stockholder +stockholders +stocking +stockings +stockpile +stockroom +stocks +stocky +stodgy +stoichiometry +stoke +stole +stolen +stoles +stolid +stomach +stomached +stomacher +stomaches +stomaching +stomp +stoned +stones +stoning +stony +stood +stooge +stool +stoop +stooped +stooping +stoops +stop +stopcock +stopcocks +stopgap +stopover +stoppable +stoppage +stopped +stopper +stoppers +stopping +stops +stopwatch +storage +storages +store +stored +storehouse +storehouses +storekeeper +storeroom +stores +storied +stories +storing +stork +storks +storm +stormed +stormier +stormiest +storminess +storming +storms +stormy +story +storyboard +storyteller +stout +stouter +stoutest +stoutly +stoutness +stove +stoves +stow +stowed +straddle +strafe +straggle +straggled +straggler +stragglers +straggles +straggling +straight +straightaway +straighten +straightened +straightens +straighter +straightest +straightforward +straightforwardly +straightforwardness +straightness +straightway +strain +strained +strainer +strainers +straining +strains +strait +straiten +straits +strand +stranded +stranding +strands +strange +strangely +strangeness +stranger +strangers +strangest +strangle +strangled +strangler +stranglers +strangles +strangling +stranglings +strangulation +strangulations +strap +straps +stratagem +stratagems +strategic +strategies +strategist +strategy +stratification +stratifications +stratified +stratifies +stratify +stratosphere +stratospheric +stratum +straw +strawberries +strawberry +straws +stray +strayed +strays +streak +streaked +streaks +stream +streamed +streamer +streamers +streaming +streamline +streamlined +streamliner +streamlines +streamlining +streams +street +streetcar +streetcars +streeters +streets +strength +strengthen +strengthened +strengthener +strengthening +strengthens +strengths +strenuous +strenuously +streptococcus +stress +stressed +stresses +stressful +stressing +stretch +stretched +stretcher +stretchers +stretches +stretching +strew +strewn +strews +stricken +strict +stricter +strictest +strictly +strictness +stricture +stride +strider +strides +striding +strife +strike +strikebreaker +striker +strikers +strikes +striking +strikingly +string +stringed +stringent +stringently +stringer +stringers +stringier +stringiest +stringiness +stringing +strings +stringy +strip +stripe +striped +stripes +stripped +stripper +strippers +stripping +strips +striptease +strive +striven +strives +striving +strivings +strobe +strobed +strobes +stroboscopic +strode +stroke +stroked +stroker +strokers +strokes +stroking +stroll +strolled +stroller +strolling +strolls +strong +stronger +strongest +stronghold +strongly +strontium +strove +struck +structural +structurally +structure +structured +structurer +structures +structuring +struggle +struggled +struggles +struggling +strung +strut +struts +strutting +strychnine +stub +stubble +stubborn +stubbornly +stubbornness +stubby +stubs +stucco +stuck +stud +student +students +studied +studies +studio +studios +studious +studiously +studs +study +studying +stuff +stuffed +stuffier +stuffiest +stuffing +stuffs +stuffy +stumble +stumbled +stumbles +stumbling +stump +stumped +stumping +stumps +stun +stung +stunning +stunningly +stunt +stunts +stupefy +stupefying +stupendous +stupendously +stupid +stupidest +stupidities +stupidity +stupidly +stupor +sturdiness +sturdy +sturgeon +stutter +style +styled +styler +stylers +styles +styli +styling +stylish +stylishly +stylishness +stylistic +stylistically +stylized +stylus +suave +sub +subatomic +subchannel +subchannels +subclass +subclasses +subcommittees +subcomponent +subcomponents +subcomputation +subcomputations +subconscious +subconsciously +subculture +subcultures +subcycle +subcycles +subdirectories +subdirectory +subdivide +subdivided +subdivides +subdividing +subdivision +subdivisions +subdomains +subdue +subdued +subdues +subduing +subexpression +subexpressions +subfield +subfields +subfile +subfiles +subgoal +subgoals +subgraph +subgraphs +subgroup +subgroups +subinterval +subintervals +subject +subjected +subjecting +subjection +subjective +subjectively +subjectivity +subjects +sublanguage +sublanguages +sublayer +sublayers +sublimation +sublimations +sublime +sublimed +sublist +sublists +submarine +submariner +submariners +submarines +submerge +submerged +submerges +submerging +submission +submissions +submissive +submit +submits +submittal +submitted +submitting +submode +submodes +submodule +submodules +submultiplexed +subnet +subnets +subnetwork +subnetworks +suboptimal +subordinate +subordinated +subordinates +subordination +subparts +subphases +subpoena +subproblem +subproblems +subprocesses +subprogram +subprograms +subproject +subproof +subproofs +subrange +subranges +subroutine +subroutines +subs +subschema +subschemas +subscribe +subscribed +subscriber +subscribers +subscribes +subscribing +subscript +subscripted +subscripting +subscription +subscriptions +subscripts +subsection +subsections +subsegment +subsegments +subsequence +subsequences +subsequent +subsequently +subservient +subset +subsets +subside +subsided +subsides +subsidiaries +subsidiary +subsidies +subsiding +subsidize +subsidized +subsidizes +subsidizing +subsidy +subsist +subsisted +subsistence +subsistent +subsisting +subsists +subslot +subslots +subspace +subspaces +substance +substances +substantial +substantially +substantiate +substantiated +substantiates +substantiating +substantiation +substantiations +substantive +substantively +substantivity +substation +substations +substitutability +substitutable +substitute +substituted +substitutes +substituting +substitution +substitutions +substrate +substrates +substring +substrings +substructure +substructures +subsume +subsumed +subsumes +subsuming +subsystem +subsystems +subtask +subtasks +subterfuge +subterranean +subtitle +subtitled +subtitles +subtle +subtleness +subtler +subtlest +subtleties +subtlety +subtly +subtotal +subtract +subtracted +subtracting +subtraction +subtractions +subtractor +subtractors +subtracts +subtrahend +subtrahends +subtree +subtrees +subunit +subunits +suburb +suburban +suburbia +suburbs +subversion +subversive +subvert +subverted +subverter +subverting +subverts +subway +subways +succeed +succeeded +succeeding +succeeds +success +successes +successful +successfully +succession +successions +successive +successively +successor +successors +succinct +succinctly +succinctness +succor +succumb +succumbed +succumbing +succumbs +such +suck +sucked +sucker +suckers +sucking +suckle +suckling +sucks +suction +sudden +suddenly +suddenness +suds +sudsing +sue +sued +sues +suffer +sufferance +suffered +sufferer +sufferers +suffering +sufferings +suffers +suffice +sufficed +suffices +sufficiency +sufficient +sufficiently +sufficing +suffix +suffixed +suffixer +suffixes +suffixing +suffocate +suffocated +suffocates +suffocating +suffocation +suffrage +suffragette +sugar +sugared +sugaring +sugarings +sugars +suggest +suggested +suggestible +suggesting +suggestion +suggestions +suggestive +suggestively +suggests +suicidal +suicidally +suicide +suicides +suing +suit +suitability +suitable +suitableness +suitably +suitcase +suitcases +suite +suited +suiters +suites +suiting +suitor +suitors +suits +sulfa +sulfur +sulfuric +sulfurous +sulk +sulked +sulkiness +sulking +sulks +sulky +sullen +sullenly +sullenness +sulphate +sulphur +sulphured +sulphuric +sultan +sultans +sultry +sum +sumac +summand +summands +summaries +summarily +summarization +summarizations +summarize +summarized +summarizes +summarizing +summary +summation +summations +summed +summertime +summing +summit +summitry +summon +summoned +summoner +summoners +summoning +summons +summonses +sumptuous +sums +sun +sunbeam +sunbeams +sunbonnet +sunburn +sunburnt +sunder +sundial +sundown +sundries +sundry +sunflower +sung +sunglass +sunglasses +sunk +sunken +sunlight +sunlit +sunned +sunning +sunny +sunrise +suns +sunset +sunshine +sunspot +suntan +suntanned +suntanning +super +superb +superblock +superbly +supercomputer +supercomputers +superego +superegos +superficial +superficially +superfluities +superfluity +superfluous +superfluously +supergroup +supergroups +superhuman +superhumanly +superimpose +superimposed +superimposes +superimposing +superintend +superintendent +superintendents +superior +superiority +superiors +superlative +superlatively +superlatives +supermarket +supermarkets +supermini +superminis +supernatural +superpose +superposed +superposes +superposing +superposition +superscript +superscripted +superscripting +superscripts +supersede +superseded +supersedes +superseding +superset +supersets +superstition +superstitions +superstitious +superuser +supervise +supervised +supervises +supervising +supervision +supervisor +supervisors +supervisory +supine +supper +suppers +supplant +supplanted +supplanting +supplants +supple +supplement +supplemental +supplementary +supplemented +supplementing +supplements +suppleness +supplication +supplied +supplier +suppliers +supplies +supply +supplying +support +supportable +supported +supporter +supporters +supporting +supportingly +supportive +supportively +supports +suppose +supposed +supposedly +supposes +supposing +supposition +suppositions +suppress +suppressed +suppresses +suppressing +suppression +suppressor +suppressors +supranational +supremacy +supreme +supremely +surcharge +sure +surely +sureness +sureties +surety +surf +surface +surfaced +surfaceness +surfaces +surfacing +surge +surged +surgeon +surgeons +surgery +surges +surgical +surgically +surging +surliness +surly +surmise +surmised +surmises +surmount +surmounted +surmounting +surmounts +surname +surnames +surpass +surpassed +surpasses +surpassing +surplus +surpluses +surprise +surprised +surprises +surprising +surprisingly +surreal +surrender +surrendered +surrendering +surrenders +surreptitious +surrey +surrogate +surrogates +surround +surrounded +surrounding +surroundings +surrounds +surtax +survey +surveyed +surveying +surveyor +surveyors +surveys +survival +survivals +survive +survived +survives +surviving +survivor +survivors +susceptible +suspect +suspected +suspecting +suspects +suspend +suspended +suspender +suspenders +suspending +suspends +suspense +suspenses +suspension +suspensions +suspicion +suspicions +suspicious +suspiciously +sustain +sustained +sustaining +sustains +sustenance +suture +sutures +suzerainty +svelte +swab +swabbing +swagger +swaggered +swaggering +swain +swains +swallow +swallowed +swallowing +swallows +swallowtail +swam +swami +swamp +swamped +swamping +swamps +swampy +swan +swank +swanky +swanlike +swans +swap +swapped +swapping +swaps +swarm +swarmed +swarming +swarms +swarthy +swastika +swat +swatted +sway +swayed +swaying +swear +swearer +swearing +swears +sweat +sweated +sweater +sweaters +sweating +sweats +sweatshirt +sweaty +sweep +sweeper +sweepers +sweeping +sweepings +sweeps +sweepstakes +sweet +sweeten +sweetened +sweetener +sweeteners +sweetening +sweetenings +sweetens +sweeter +sweetest +sweetheart +sweethearts +sweetish +sweetly +sweetness +sweets +swell +swelled +swelling +swellings +swells +swelter +swept +swerve +swerved +swerves +swerving +swift +swifter +swiftest +swiftly +swiftness +swim +swimmer +swimmers +swimming +swimmingly +swims +swimsuit +swindle +swine +swing +swinger +swingers +swinging +swings +swipe +swirl +swirled +swirling +swish +swished +swiss +switch +switchblade +switchboard +switchboards +switched +switcher +switchers +switches +switching +switchings +switchman +swivel +swizzle +swollen +swoon +swoop +swooped +swooping +swoops +sword +swordfish +swords +swore +sworn +swum +swung +sycamore +sycophant +sycophantic +syllable +syllables +syllogism +syllogisms +syllogistic +sylvan +symbiosis +symbiotic +symbol +symbolic +symbolically +symbolics +symbolism +symbolization +symbolize +symbolized +symbolizes +symbolizing +symbols +symmetric +symmetrical +symmetrically +symmetries +symmetry +sympathetic +sympathies +sympathize +sympathized +sympathizer +sympathizers +sympathizes +sympathizing +sympathizingly +sympathy +symphonic +symphonies +symphony +symposia +symposium +symposiums +symptom +symptomatic +symptoms +synagogue +synapse +synapses +synaptic +synchronism +synchronization +synchronize +synchronized +synchronizer +synchronizers +synchronizes +synchronizing +synchronous +synchronously +synchrony +synchrotron +syncopate +syndicate +syndicated +syndicates +syndication +syndrome +syndromes +synergism +synergistic +synergy +synod +synonym +synonymous +synonymously +synonyms +synopses +synopsis +syntactic +syntactical +syntactically +syntax +syntaxes +synthesis +synthesize +synthesized +synthesizer +synthesizers +synthesizes +synthesizing +synthetic +synthetics +syringe +syringes +syrup +syrupy +system +systematic +systematically +systematize +systematized +systematizes +systematizing +systemic +systems +systemwide +tab +tabernacle +tabernacles +table +tableau +tableaus +tablecloth +tablecloths +tabled +tables +tablespoon +tablespoonful +tablespoonfuls +tablespoons +tablet +tablets +tabling +taboo +taboos +tabs +tabular +tabulate +tabulated +tabulates +tabulating +tabulation +tabulations +tabulator +tabulators +tachometer +tachometers +tacit +tacitly +tack +tacked +tacking +tackle +tackles +tact +tactic +tactics +tactile +tag +tagged +tagging +tags +tail +tailed +tailing +tailor +tailored +tailoring +tailors +tails +taint +tainted +take +taken +taker +takers +takes +taking +takings +tale +talent +talented +talents +tales +talk +talkative +talkatively +talkativeness +talked +talker +talkers +talkie +talking +talks +tall +taller +tallest +tallness +tallow +tally +tame +tamed +tamely +tameness +tamer +tames +taming +tamper +tampered +tampering +tampers +tan +tandem +tang +tangent +tangential +tangents +tangible +tangibly +tangle +tangled +tangy +tank +tanker +tankers +tanks +tanner +tanners +tantalizing +tantalizingly +tantamount +tantrum +tantrums +tap +tape +taped +taper +tapered +tapering +tapers +tapes +tapestries +tapestry +taping +tapings +tapped +tapper +tappers +tapping +taproot +taproots +taps +tar +tardiness +tardy +target +targeted +targeting +targets +tariff +tariffs +tarry +tart +tartly +tartness +task +tasked +tasking +tasks +tassel +tassels +taste +tasted +tasteful +tastefully +tastefulness +tasteless +tastelessly +taster +tasters +tastes +tasting +tatter +tattered +tattoo +tattooed +tattoos +tau +taught +taunt +taunted +taunter +taunting +taunts +taut +tautly +tautness +tautological +tautologically +tautologies +tautology +tavern +taverns +tawny +tax +taxable +taxation +taxed +taxes +taxi +taxicab +taxicabs +taxied +taxiing +taxing +taxis +taxonomic +taxonomically +taxonomy +taxpayer +taxpayers +tea +teach +teachable +teacher +teachers +teaches +teaching +teachings +teacup +team +teamed +teaming +teams +tear +teared +tearful +tearfully +tearing +tears +teas +tease +teased +teases +teasing +teaspoon +teaspoonful +teaspoonfuls +teaspoons +technical +technicalities +technicality +technically +technician +technicians +technique +techniques +technological +technologically +technologies +technologist +technologists +technology +tedious +tediously +tediousness +tedium +teem +teemed +teeming +teems +teen +teenage +teenaged +teenager +teenagers +teens +teeth +teethe +teethed +teethes +teething +telecommunication +telecommunications +telegram +telegrams +telegraph +telegraphed +telegrapher +telegraphers +telegraphic +telegraphing +telegraphs +telemetry +teleological +teleologically +teleology +telepathy +telephone +telephoned +telephoner +telephoners +telephones +telephonic +telephoning +telephony +teleprocessing +telescope +telescoped +telescopes +telescoping +teletype +teletypes +televise +televised +televises +televising +television +televisions +televisor +televisors +tell +teller +tellers +telling +tells +temper +temperament +temperamental +temperaments +temperance +temperate +temperately +temperateness +temperature +temperatures +tempered +tempering +tempers +tempest +tempestuous +tempestuously +template +templates +temple +temples +temporal +temporally +temporaries +temporarily +temporary +tempt +temptation +temptations +tempted +tempter +tempters +tempting +temptingly +tempts +ten +tenacious +tenaciously +tenant +tenants +tend +tended +tendencies +tendency +tender +tenderly +tenderness +tenders +tending +tends +tenement +tenements +tenfold +tennis +tenor +tenors +tens +tense +tensed +tensely +tenseness +tenser +tenses +tensest +tensing +tension +tensions +tent +tentacle +tentacled +tentacles +tentative +tentatively +tented +tenth +tenting +tents +tenure +term +termed +terminal +terminally +terminals +terminate +terminated +terminates +terminating +termination +terminations +terminator +terminators +terming +terminologies +terminology +terminus +terms +termwise +ternary +terrace +terraced +terraces +terrain +terrains +terrestrial +terrestrials +terrible +terribly +terrier +terriers +terrific +terrified +terrifies +terrify +terrifying +territorial +territories +territory +terror +terrorism +terrorist +terroristic +terrorists +terrorize +terrorized +terrorizes +terrorizing +terrors +tertiary +test +testability +testable +testament +testaments +tested +tester +testers +testicle +testicles +testified +testifier +testifiers +testifies +testify +testifying +testimonies +testimony +testing +testings +tests +text +textbook +textbooks +textile +textiles +texts +textual +textually +texture +textured +textures +than +thank +thanked +thankful +thankfully +thankfulness +thanking +thankless +thanklessly +thanklessness +thanks +thanksgiving +thanksgivings +that +thatch +thatches +thats +thaw +thawed +thawing +thaws +the +theater +theaters +theatrical +theatrically +theatricals +theft +thefts +their +theirs +them +thematic +theme +themes +themselves +then +thence +thenceforth +theological +theology +theorem +theorems +theoretic +theoretical +theoretically +theoreticians +theories +theorist +theorists +theorization +theorizations +theorize +theorized +theorizer +theorizers +theorizes +theorizing +theory +therapeutic +therapies +therapist +therapists +therapy +there +thereabouts +thereafter +thereby +therefore +therein +thereof +thereon +thereto +thereupon +therewith +thermal +thermodynamic +thermodynamics +thermometer +thermometers +thermostat +thermostats +these +theses +thesis +they +thick +thicken +thickens +thicker +thickest +thicket +thickets +thickly +thickness +thief +thieve +thieves +thieving +thigh +thighs +thimble +thimbles +thin +thing +things +think +thinkable +thinkably +thinker +thinkers +thinking +thinks +thinly +thinner +thinness +thinnest +third +thirdly +thirds +thirst +thirsted +thirsts +thirsty +thirteen +thirteens +thirteenth +thirties +thirtieth +thirty +this +thistle +thong +thorn +thorns +thorny +thorough +thoroughfare +thoroughfares +thoroughly +thoroughness +those +though +thought +thoughtful +thoughtfully +thoughtfulness +thoughtless +thoughtlessly +thoughtlessness +thoughts +thousand +thousands +thousandth +thrash +thrashed +thrasher +thrashes +thrashing +thread +threaded +threader +threaders +threading +threads +threat +threaten +threatened +threatening +threatens +threats +three +threefold +threes +threescore +threshold +thresholds +threw +thrice +thrift +thrifty +thrill +thrilled +thriller +thrillers +thrilling +thrillingly +thrills +thrive +thrived +thrives +thriving +throat +throated +throats +throb +throbbed +throbbing +throbs +throne +thrones +throng +throngs +throttle +throttled +throttles +throttling +through +throughout +throughput +throw +thrower +throwing +thrown +throws +thrush +thrust +thruster +thrusters +thrusting +thrusts +thud +thuds +thug +thugs +thumb +thumbed +thumbing +thumbs +thump +thumped +thumping +thunder +thunderbolt +thunderbolts +thundered +thunderer +thunderers +thundering +thunders +thunderstorm +thunderstorms +thus +thusly +thwart +thwarted +thwarting +thwarts +thyself +tick +ticked +ticker +tickers +ticket +tickets +ticking +tickle +tickled +tickles +tickling +ticklish +ticks +tidal +tidally +tide +tided +tides +tidied +tidiness +tiding +tidings +tidy +tidying +tie +tied +tier +tiers +ties +tiger +tigers +tight +tighten +tightened +tightener +tighteners +tightening +tightenings +tightens +tighter +tightest +tightly +tightness +tilde +tile +tiled +tiles +tiling +till +tillable +tilled +tiller +tillers +tilling +tills +tilt +tilted +tilting +tilts +timber +timbered +timbering +timbers +time +timed +timeless +timelessly +timelessness +timely +timeout +timeouts +timer +timers +times +timeshare +timeshares +timesharing +timestamp +timestamps +timetable +timetables +timid +timidity +timidly +timing +timings +tin +tincture +tinge +tinged +tingle +tingled +tingles +tingling +tinier +tiniest +tinily +tininess +tinker +tinkered +tinkering +tinkers +tinkle +tinkled +tinkles +tinkling +tinnier +tinniest +tinnily +tinniness +tinny +tins +tint +tinted +tinting +tints +tiny +tip +tipped +tipper +tippers +tipping +tips +tiptoe +tire +tired +tiredly +tireless +tirelessly +tirelessness +tires +tiresome +tiresomely +tiresomeness +tiring +tissue +tissues +tit +tithe +tither +tithes +tithing +title +titled +titles +tits +titter +titters +to +toad +toads +toast +toasted +toaster +toasting +toasts +tobacco +today +todays +toe +toes +together +togetherness +toggle +toggled +toggles +toggling +toil +toiled +toiler +toilet +toilets +toiling +toils +token +tokens +told +tolerability +tolerable +tolerably +tolerance +tolerances +tolerant +tolerantly +tolerate +tolerated +tolerates +tolerating +toleration +toll +tolled +tolls +tomahawk +tomahawks +tomato +tomatoes +tomb +tombs +tomography +tomorrow +tomorrows +ton +tone +toned +toner +tones +tongs +tongue +tongued +tongues +tonic +tonics +tonight +toning +tonnage +tons +tonsil +too +took +tool +tooled +tooler +toolers +tooling +tools +tooth +toothbrush +toothbrushes +toothpaste +toothpick +toothpicks +top +toper +topic +topical +topically +topics +topmost +topography +topological +topologies +topology +topple +toppled +topples +toppling +tops +torch +torches +tore +torment +tormented +tormenter +tormenters +tormenting +torn +tornado +tornadoes +torpedo +torpedoes +torque +torrent +torrents +torrid +tortoise +tortoises +torture +tortured +torturer +torturers +tortures +torturing +torus +toruses +toss +tossed +tosses +tossing +total +totaled +totaling +totalities +totality +totalled +totaller +totallers +totalling +totally +totals +totter +tottered +tottering +totters +touch +touchable +touched +touches +touchier +touchiest +touchily +touchiness +touching +touchingly +touchy +tough +toughen +tougher +toughest +toughly +toughness +tour +toured +touring +tourist +tourists +tournament +tournaments +tours +tow +toward +towards +towed +towel +toweling +towelled +towelling +towels +tower +towered +towering +towers +town +towns +township +townships +toy +toyed +toying +toys +trace +traceable +traced +tracer +tracers +traces +tracing +tracings +track +tracked +tracker +trackers +tracking +tracks +tract +tractability +tractable +tractive +tractor +tractors +tracts +trade +traded +trademark +trademarks +tradeoff +tradeoffs +trader +traders +trades +tradesman +trading +tradition +traditional +traditionally +traditions +traffic +trafficked +trafficker +traffickers +trafficking +traffics +tragedies +tragedy +tragic +tragically +trail +trailed +trailer +trailers +trailing +trailings +trails +train +trained +trainee +trainees +trainer +trainers +training +trains +trait +traitor +traitors +traits +trajectories +trajectory +tramp +tramped +tramping +trample +trampled +trampler +tramples +trampling +tramps +trance +trances +tranquil +tranquility +tranquilly +transact +transaction +transactions +transatlantic +transceive +transceiver +transceivers +transcend +transcended +transcendent +transcending +transcends +transcontinental +transcribe +transcribed +transcriber +transcribers +transcribes +transcribing +transcript +transcription +transcriptions +transcripts +transfer +transferability +transferable +transferal +transferals +transference +transferred +transferrer +transferrers +transferring +transfers +transfinite +transform +transformable +transformation +transformational +transformations +transformed +transformer +transformers +transforming +transforms +transgress +transgressed +transgression +transgressions +transience +transiency +transient +transiently +transients +transistor +transistorize +transistorized +transistorizing +transistors +transit +transition +transitional +transitioned +transitions +transitive +transitively +transitiveness +transitivity +transitory +translatability +translatable +translate +translated +translates +translating +translation +translational +translations +translator +translators +translucent +transmission +transmissions +transmit +transmits +transmittal +transmitted +transmitter +transmitters +transmitting +transmogrification +transmogrify +transpacific +transparencies +transparency +transparent +transparently +transpire +transpired +transpires +transpiring +transplant +transplanted +transplanting +transplants +transponder +transponders +transport +transportability +transportation +transported +transporter +transporters +transporting +transports +transpose +transposed +transposes +transposing +transposition +trap +trapezoid +trapezoidal +trapezoids +trapped +trapper +trappers +trapping +trappings +traps +trash +trauma +traumatic +travail +travel +traveled +traveler +travelers +traveling +travelings +travels +traversal +traversals +traverse +traversed +traverses +traversing +travesties +travesty +tray +trays +treacheries +treacherous +treacherously +treachery +tread +treading +treads +treason +treasure +treasured +treasurer +treasures +treasuries +treasuring +treasury +treat +treated +treaties +treating +treatise +treatises +treatment +treatments +treats +treaty +treble +tree +trees +treetop +treetops +trek +treks +tremble +trembled +trembles +trembling +tremendous +tremendously +tremor +tremors +trench +trencher +trenches +trend +trending +trends +trespass +trespassed +trespasser +trespassers +trespasses +tress +tresses +trial +trials +triangle +triangles +triangular +triangularly +tribal +tribe +tribes +tribunal +tribunals +tribune +tribunes +tributary +tribute +tributes +trichotomy +trick +tricked +trickier +trickiest +trickiness +tricking +trickle +trickled +trickles +trickling +tricks +tricky +tried +trier +triers +tries +trifle +trifler +trifles +trifling +trigger +triggered +triggering +triggers +trigonometric +trigonometry +trigram +trigrams +trihedral +trilateral +trill +trilled +trillion +trillions +trillionth +trim +trimly +trimmed +trimmer +trimmest +trimming +trimmings +trimness +trims +trinket +trinkets +trio +trip +triple +tripled +triples +triplet +triplets +tripling +tripod +trips +triumph +triumphal +triumphant +triumphantly +triumphed +triumphing +triumphs +trivia +trivial +trivialities +triviality +trivially +trod +troll +trolley +trolleys +trolls +troop +trooper +troopers +troops +trophies +trophy +tropic +tropical +tropics +trot +trots +trouble +troubled +troublemaker +troublemakers +troubles +troubleshoot +troubleshooter +troubleshooters +troubleshooting +troubleshoots +troublesome +troublesomely +troubling +trough +trouser +trousers +trout +trowel +trowels +truant +truants +truce +truck +trucked +trucker +truckers +trucking +trucks +trudge +trudged +true +trued +truer +trues +truest +truing +truism +truisms +truly +trump +trumped +trumpet +trumpeter +trumps +truncate +truncated +truncates +truncating +truncation +truncations +trunk +trunks +trust +trusted +trustee +trustees +trustful +trustfully +trustfulness +trusting +trustingly +trusts +trustworthiness +trustworthy +trusty +truth +truthful +truthfully +truthfulness +truths +try +trying +tub +tube +tuber +tuberculosis +tubers +tubes +tubing +tubs +tuck +tucked +tucking +tucks +tuft +tufts +tug +tugs +tuition +tulip +tulips +tumble +tumbled +tumbler +tumblers +tumbles +tumbling +tumor +tumors +tumult +tumults +tumultuous +tunable +tune +tuned +tuner +tuners +tunes +tunic +tunics +tuning +tunnel +tunneled +tunnels +tuple +tuples +turban +turbans +turbulence +turbulent +turbulently +turf +turgid +turgidly +turkey +turkeys +turmoil +turmoils +turn +turnable +turnaround +turned +turner +turners +turning +turnings +turnip +turnips +turnover +turns +turpentine +turquoise +turret +turrets +turtle +turtleneck +turtles +tutor +tutored +tutorial +tutorials +tutoring +tutors +twain +twang +twas +tweed +twelfth +twelve +twelves +twenties +twentieth +twenty +twice +twig +twigs +twilight +twilights +twill +twin +twine +twined +twiner +twinkle +twinkled +twinkler +twinkles +twinkling +twins +twirl +twirled +twirler +twirling +twirls +twist +twisted +twister +twisters +twisting +twists +twitch +twitched +twitching +twitter +twittered +twittering +two +twofold +twos +tying +type +typed +typeout +types +typesetter +typewriter +typewriters +typhoid +typical +typically +typicalness +typified +typifies +typify +typifying +typing +typist +typists +typo +typographic +typographical +typographically +typography +tyrannical +tyranny +tyrant +tyrants +ubiquitous +ubiquitously +ubiquity +ugh +uglier +ugliest +ugliness +ugly +ulcer +ulcers +ultimate +ultimately +ultra +ultrasonic +umbrage +umbrella +umbrellas +umpire +umpires +unabated +unabbreviated +unable +unacceptability +unacceptable +unacceptably +unaccountable +unaccustomed +unachievable +unacknowledged +unadulterated +unaesthetically +unaffected +unaffectedly +unaffectedness +unaided +unalienability +unalienable +unalterably +unaltered +unambiguous +unambiguously +unambitious +unanalyzable +unanimity +unanimous +unanimously +unanswerable +unanswered +unanticipated +unarmed +unary +unassailable +unassigned +unassisted +unattainability +unattainable +unattended +unattractive +unattractively +unauthorized +unavailability +unavailable +unavoidable +unavoidably +unaware +unawareness +unawares +unbalanced +unbearable +unbecoming +unbelievable +unbiased +unbind +unblock +unblocked +unblocking +unblocks +unborn +unbound +unbounded +unbreakable +unbridled +unbroken +unbuffered +uncancelled +uncanny +uncapitalized +uncaught +uncertain +uncertainly +uncertainties +uncertainty +unchangeable +unchanged +unchanging +unclaimed +unclassified +uncle +unclean +uncleanly +uncleanness +unclear +uncleared +uncles +unclosed +uncomfortable +uncomfortably +uncommitted +uncommon +uncommonly +uncompromising +uncomputable +unconcerned +unconcernedly +unconditional +unconditionally +unconnected +unconscionable +unconscious +unconsciously +unconsciousness +unconstitutional +unconstrained +uncontrollability +uncontrollable +uncontrollably +uncontrolled +unconventional +unconventionally +unconvinced +unconvincing +uncoordinated +uncorrectable +uncorrected +uncountable +uncountably +uncouth +uncover +uncovered +uncovering +uncovers +undamaged +undaunted +undauntedly +undecidable +undecided +undeclared +undecomposable +undefinability +undefined +undeleted +undeniable +undeniably +under +underbrush +underdone +underestimate +underestimated +underestimates +underestimating +underestimation +underflow +underflowed +underflowing +underflows +underfoot +undergo +undergoes +undergoing +undergone +undergraduate +undergraduates +underground +underlie +underlies +underline +underlined +underlines +underling +underlings +underlining +underlinings +underloaded +underlying +undermine +undermined +undermines +undermining +underneath +underpinning +underpinnings +underplay +underplayed +underplaying +underplays +underscore +underscored +underscores +understand +understandability +understandable +understandably +understanding +understandingly +understandings +understands +understated +understood +undertake +undertaken +undertaker +undertakers +undertakes +undertaking +undertakings +undertook +underwater +underway +underwear +underwent +underworld +underwrite +underwriter +underwriters +underwrites +underwriting +undesirability +undesirable +undetectable +undetected +undetermined +undeveloped +undid +undiminished +undirected +undisciplined +undiscovered +undisturbed +undivided +undo +undocumented +undoes +undoing +undoings +undone +undoubtedly +undress +undressed +undresses +undressing +undue +unduly +uneasily +uneasiness +uneasy +uneconomic +uneconomical +unembellished +unemployed +unemployment +unencrypted +unending +unenlightening +unequal +unequaled +unequally +unequivocal +unequivocally +unessential +unevaluated +uneven +unevenly +unevenness +uneventful +unexcused +unexpanded +unexpected +unexpectedly +unexplained +unexplored +unextended +unfair +unfairly +unfairness +unfaithful +unfaithfully +unfaithfulness +unfamiliar +unfamiliarity +unfamiliarly +unfavorable +unfettered +unfinished +unfit +unfitness +unflagging +unfold +unfolded +unfolding +unfolds +unforeseen +unforgeable +unforgiving +unformatted +unfortunate +unfortunately +unfortunates +unfounded +unfriendliness +unfriendly +unfulfilled +ungrammatical +ungrateful +ungratefully +ungratefulness +ungrounded +unguarded +unguided +unhappier +unhappiest +unhappily +unhappiness +unhappy +unharmed +unhealthy +unheard +unheeded +unicorn +unicorns +unicycle +unidentified +unidirectional +unidirectionality +unidirectionally +unification +unifications +unified +unifier +unifiers +unifies +uniform +uniformed +uniformity +uniformly +uniforms +unify +unifying +unilluminating +unimaginable +unimpeded +unimplemented +unimportant +unindented +uninitialized +uninsulated +unintelligible +unintended +unintentional +unintentionally +uninteresting +uninterestingly +uninterpreted +uninterrupted +uninterruptedly +union +unionization +unionize +unionized +unionizer +unionizers +unionizes +unionizing +unions +uniprocessor +unique +uniquely +uniqueness +unison +unit +unite +united +unites +unities +uniting +units +unity +univalve +univalves +universal +universality +universally +universals +universe +universes +universities +university +unjust +unjustifiable +unjustified +unjustly +unkind +unkindly +unkindness +unknowable +unknowing +unknowingly +unknown +unknowns +unlabelled +unlawful +unlawfully +unleash +unleashed +unleashes +unleashing +unless +unlike +unlikely +unlikeness +unlimited +unlink +unlinked +unlinking +unlinks +unload +unloaded +unloading +unloads +unlock +unlocked +unlocking +unlocks +unlucky +unmanageable +unmanageably +unmanned +unmarked +unmarried +unmask +unmasked +unmatched +unmentionable +unmerciful +unmercifully +unmistakable +unmistakably +unmodified +unmoved +unnamed +unnatural +unnaturally +unnaturalness +unnecessarily +unnecessary +unneeded +unnerve +unnerved +unnerves +unnerving +unnoticed +unobservable +unobserved +unobtainable +unoccupied +unofficial +unofficially +unopened +unordered +unpack +unpacked +unpacking +unpacks +unpaid +unparalleled +unparsed +unplanned +unpleasant +unpleasantly +unpleasantness +unplug +unpopular +unpopularity +unprecedented +unpredictable +unpredictably +unprescribed +unpreserved +unprimed +unprofitable +unprojected +unprotected +unprovability +unprovable +unproven +unpublished +unqualified +unqualifiedly +unquestionably +unquestioned +unquoted +unravel +unraveled +unraveling +unravels +unreachable +unreal +unrealistic +unrealistically +unreasonable +unreasonableness +unreasonably +unrecognizable +unrecognized +unregulated +unrelated +unreliability +unreliable +unreported +unrepresentable +unresolved +unresponsive +unrest +unrestrained +unrestricted +unrestrictedly +unrestrictive +unroll +unrolled +unrolling +unrolls +unruly +unsafe +unsafely +unsanitary +unsatisfactory +unsatisfiability +unsatisfiable +unsatisfied +unsatisfying +unscrupulous +unseeded +unseen +unselected +unselfish +unselfishly +unselfishness +unsent +unsettled +unsettling +unshaken +unshared +unsigned +unskilled +unslotted +unsolvable +unsolved +unsophisticated +unsound +unspeakable +unspecified +unstable +unsteadiness +unsteady +unstructured +unsuccessful +unsuccessfully +unsuitable +unsuited +unsupported +unsure +unsurprising +unsurprisingly +unsynchronized +untagged +untapped +untenable +unterminated +untested +unthinkable +unthinking +untidiness +untidy +untie +untied +unties +until +untimely +unto +untold +untouchable +untouchables +untouched +untoward +untrained +untranslated +untreated +untried +untrue +untruthful +untruthfulness +untying +unusable +unused +unusual +unusually +unvarying +unveil +unveiled +unveiling +unveils +unwanted +unwelcome +unwholesome +unwieldiness +unwieldy +unwilling +unwillingly +unwillingness +unwind +unwinder +unwinders +unwinding +unwinds +unwise +unwisely +unwiser +unwisest +unwitting +unwittingly +unworthiness +unworthy +unwound +unwrap +unwrapped +unwrapping +unwraps +unwritten +up +upbraid +upcoming +update +updated +updater +updates +updating +upgrade +upgraded +upgrades +upgrading +upheld +uphill +uphold +upholder +upholders +upholding +upholds +upholster +upholstered +upholsterer +upholstering +upholsters +upkeep +upland +uplands +uplift +uplink +uplinks +upload +upon +upper +uppermost +upright +uprightly +uprightness +uprising +uprisings +uproar +uproot +uprooted +uprooting +uproots +upset +upsets +upshot +upshots +upside +upstairs +upstream +upturn +upturned +upturning +upturns +upward +upwards +urban +urchin +urchins +urge +urged +urgent +urgently +urges +urging +urgings +urinate +urinated +urinates +urinating +urination +urine +urn +urns +us +usability +usable +usably +usage +usages +use +used +useful +usefully +usefulness +useless +uselessly +uselessness +user +users +uses +usher +ushered +ushering +ushers +using +usual +usually +usurp +usurped +usurper +utensil +utensils +utilities +utility +utilization +utilizations +utilize +utilized +utilizes +utilizing +utmost +utopia +utopian +utopians +utter +utterance +utterances +uttered +uttering +utterly +uttermost +utters +vacancies +vacancy +vacant +vacantly +vacate +vacated +vacates +vacating +vacation +vacationed +vacationer +vacationers +vacationing +vacations +vacuo +vacuous +vacuously +vacuum +vacuumed +vacuuming +vagabond +vagabonds +vagaries +vagary +vagina +vaginas +vagrant +vagrantly +vague +vaguely +vagueness +vaguer +vaguest +vain +vainly +vale +valence +valences +valentine +valentines +vales +valet +valets +valiant +valiantly +valid +validate +validated +validates +validating +validation +validity +validly +validness +valley +valleys +valor +valuable +valuables +valuably +valuation +valuations +value +valued +valuer +valuers +values +valuing +valve +valves +vampire +van +vandalize +vandalized +vandalizes +vandalizing +vane +vanes +vanguard +vanilla +vanish +vanished +vanisher +vanishes +vanishing +vanishingly +vanities +vanity +vanquish +vanquished +vanquishes +vanquishing +vans +vantage +vapor +vaporing +vapors +variability +variable +variableness +variables +variably +variance +variances +variant +variantly +variants +variation +variations +varied +varies +varieties +variety +various +variously +varnish +varnishes +vary +varying +varyings +vase +vases +vassal +vast +vaster +vastest +vastly +vastness +vat +vats +vaudeville +vault +vaulted +vaulter +vaulting +vaults +vaunt +vaunted +veal +vector +vectorization +vectorizing +vectors +veer +veered +veering +veers +vegetable +vegetables +vegetarian +vegetarians +vegetate +vegetated +vegetates +vegetating +vegetation +vegetative +vehemence +vehement +vehemently +vehicle +vehicles +vehicular +veil +veiled +veiling +veils +vein +veined +veining +veins +velocities +velocity +velvet +vendor +vendors +venerable +veneration +vengeance +venial +venison +venom +venomous +venomously +vent +vented +ventilate +ventilated +ventilates +ventilating +ventilation +ventricle +ventricles +vents +venture +ventured +venturer +venturers +ventures +venturing +venturings +veracity +veranda +verandas +verb +verbal +verbalize +verbalized +verbalizes +verbalizing +verbally +verbose +verbs +verdict +verdure +verge +verger +verges +verifiability +verifiable +verification +verifications +verified +verifier +verifiers +verifies +verify +verifying +verily +veritable +vermin +vernacular +versa +versatile +versatility +verse +versed +verses +versing +version +versions +versus +vertebrate +vertebrates +vertex +vertical +vertically +verticalness +vertices +very +vessel +vessels +vest +vested +vestige +vestiges +vestigial +vests +veteran +veterans +veterinarian +veterinarians +veterinary +veto +vetoed +vetoer +vetoes +vex +vexation +vexed +vexes +vexing +via +viability +viable +viably +vial +vials +vibrate +vibrated +vibrating +vibration +vibrations +vibrator +vice +viceroy +vices +vicinity +vicious +viciously +viciousness +vicissitude +vicissitudes +victim +victimize +victimized +victimizer +victimizers +victimizes +victimizing +victims +victor +victories +victorious +victoriously +victors +victory +victual +victualer +victuals +video +videotape +videotapes +vie +vied +vier +vies +view +viewable +viewed +viewer +viewers +viewing +viewpoint +viewpoints +views +vigilance +vigilant +vigilante +vigilantes +vigilantly +vignette +vignettes +vigor +vigorous +vigorously +vile +vilely +vileness +vilification +vilifications +vilified +vilifies +vilify +vilifying +villa +village +villager +villagers +villages +villain +villainous +villainously +villainousness +villains +villainy +villas +vindicate +vindicated +vindication +vindictive +vindictively +vindictiveness +vine +vinegar +vines +vineyard +vineyards +vintage +violate +violated +violates +violating +violation +violations +violator +violators +violence +violent +violently +violet +violets +violin +violinist +violinists +violins +viper +vipers +virgin +virginity +virgins +virtual +virtually +virtue +virtues +virtuoso +virtuosos +virtuous +virtuously +virulent +virus +viruses +visa +visage +visas +viscount +viscounts +viscous +visibility +visible +visibly +vision +visionary +visions +visit +visitation +visitations +visited +visiting +visitor +visitors +visits +visor +visors +vista +vistas +visual +visualize +visualized +visualizer +visualizes +visualizing +visually +vita +vitae +vital +vitality +vitally +vitals +vivid +vividly +vividness +vizier +vocabularies +vocabulary +vocal +vocally +vocals +vocation +vocational +vocationally +vocations +vogue +voice +voiced +voicer +voicers +voices +voicing +void +voided +voider +voiding +voids +volatile +volatilities +volatility +volcanic +volcano +volcanos +volition +volley +volleyball +volleyballs +volt +voltage +voltages +volts +volume +volumes +voluntarily +voluntary +volunteer +volunteered +volunteering +volunteers +vomit +vomited +vomiting +vomits +vortex +vote +voted +voter +voters +votes +voting +votive +vouch +voucher +vouchers +vouches +vouching +vow +vowed +vowel +vowels +vower +vowing +vows +voyage +voyaged +voyager +voyagers +voyages +voyaging +voyagings +vulgar +vulgarly +vulnerabilities +vulnerability +vulnerable +vulture +vultures +wacky +wade +waded +wader +wades +wading +wafer +wafers +waffle +waffles +waft +wag +wage +waged +wager +wagers +wages +waging +wagon +wagoner +wagons +wags +wail +wailed +wailing +wails +waist +waistcoat +waistcoats +waists +wait +waited +waiter +waiters +waiting +waitress +waitresses +waits +waive +waived +waiver +waiverable +waives +waiving +wake +waked +waken +wakened +wakening +wakes +wakeup +waking +wales +walk +walked +walker +walkers +walking +walks +wall +walled +wallet +wallets +walling +wallow +wallowed +wallowing +wallows +walnut +walnuts +walrus +walruses +waltz +waltzed +waltzes +waltzing +wan +wand +wander +wandered +wanderer +wanderers +wandering +wanderings +wanders +wane +waned +wanes +waning +wanly +want +wanted +wanting +wanton +wantonly +wantonness +wants +war +warble +warbled +warbler +warbles +warbling +ward +warden +wardens +warder +wardrobe +wardrobes +wards +ware +warehouse +warehouses +warehousing +wares +warfare +warily +wariness +warlike +warm +warmed +warmer +warmers +warmest +warming +warmly +warms +warmth +warn +warned +warner +warning +warningly +warnings +warns +warp +warped +warping +warps +warrant +warranted +warranties +warranting +warrants +warranty +warred +warring +warrior +warriors +wars +warship +warships +wart +wartime +warts +wary +was +wash +washed +washer +washers +washes +washing +washings +wasp +wasps +waste +wasted +wasteful +wastefully +wastefulness +wastes +wasting +watch +watched +watcher +watchers +watches +watchful +watchfully +watchfulness +watching +watchings +watchman +watchword +watchwords +water +watered +waterfall +waterfalls +watering +waterings +waterproof +waterproofing +waterway +waterways +watery +wave +waved +waveform +waveforms +wavefront +wavefronts +waveguides +wavelength +wavelengths +waver +wavers +waves +waving +wax +waxed +waxen +waxer +waxers +waxes +waxing +waxy +way +ways +wayside +wayward +we +weak +weaken +weakened +weakening +weakens +weaker +weakest +weakly +weakness +weaknesses +wealth +wealthiest +wealths +wealthy +wean +weaned +weaning +weapon +weapons +wear +wearable +wearer +wearied +wearier +weariest +wearily +weariness +wearing +wearisome +wearisomely +wears +weary +wearying +weasel +weasels +weather +weathercock +weathercocks +weathered +weathering +weathers +weave +weaver +weaves +weaving +web +webs +wedded +wedding +weddings +wedge +wedged +wedges +wedging +wedlock +weds +wee +weed +weeds +week +weekend +weekends +weekly +weep +weeper +weeping +weeps +weigh +weighed +weighing +weighings +weighs +weight +weighted +weighting +weights +weighty +weird +weirdly +welcome +welcomed +welcomes +welcoming +weld +welded +welder +welding +welds +welfare +well +welled +welling +welsh +wench +wenches +went +wept +were +west +westbound +western +westerner +westerners +westward +westwards +wet +wetly +wetness +wets +wetted +wetter +wettest +wetting +whack +whacked +whacking +whacks +whale +whaler +whales +whaling +wharf +wharves +what +whatever +whatsoever +wheat +wheaten +wheel +wheeled +wheeler +wheelers +wheeling +wheelings +wheels +whelp +when +whence +whenever +where +whereabouts +whereas +whereby +wherein +whereupon +wherever +whether +which +whichever +while +whim +whimper +whimpered +whimpering +whimpers +whims +whimsical +whimsically +whimsies +whimsy +whine +whined +whines +whining +whip +whipped +whipper +whippers +whipping +whippings +whips +whirl +whirled +whirling +whirlpool +whirlpools +whirls +whirlwind +whirr +whirring +whisk +whisked +whisker +whiskers +whiskey +whisking +whisks +whisper +whispered +whispering +whisperings +whispers +whistle +whistled +whistler +whistlers +whistles +whistling +whit +white +whitely +whiten +whitened +whitener +whiteners +whiteness +whitening +whitens +whiter +whites +whitespace +whitest +whitewash +whitewashed +whiting +whittle +whittled +whittles +whittling +whiz +whizzed +whizzes +whizzing +who +whoever +whole +wholehearted +wholeheartedly +wholeness +wholes +wholesale +wholesaler +wholesalers +wholesome +wholesomeness +wholly +whom +whomever +whoop +whooped +whooping +whoops +whore +whores +whorl +whorls +whose +why +wick +wicked +wickedly +wickedness +wicker +wicks +wide +wideband +widely +widen +widened +widener +widening +widens +wider +widespread +widest +widget +widow +widowed +widower +widowers +widows +width +widths +wield +wielded +wielder +wielding +wields +wife +wifely +wig +wigs +wigwam +wild +wildcat +wildcats +wilder +wilderness +wildest +wildly +wildness +wile +wiles +wiliness +will +willed +willful +willfully +willing +willingly +willingness +willow +willows +wilt +wilted +wilting +wilts +wily +win +wince +winced +winces +wincing +wind +winded +winder +winders +winding +windmill +windmills +window +windows +winds +windy +wine +wined +winer +winers +wines +wing +winged +winging +wings +wining +wink +winked +winker +winking +winks +winner +winners +winning +winningly +winnings +wins +winter +wintered +wintering +wintry +wipe +wiped +wiper +wipers +wipes +wiping +wire +wired +wireless +wires +wiretap +wiretappers +wiretapping +wiretaps +wiriness +wiring +wiry +wisdom +wisdoms +wise +wised +wisely +wiser +wisest +wish +wished +wisher +wishers +wishes +wishful +wishing +wisp +wisps +wistful +wistfully +wistfulness +wit +witch +witchcraft +witches +witching +with +withal +withdraw +withdrawal +withdrawals +withdrawing +withdrawn +withdraws +withdrew +wither +withers +withheld +withhold +withholder +withholders +withholding +withholdings +withholds +within +without +withstand +withstanding +withstands +withstood +witness +witnessed +witnesses +witnessing +wits +witty +wives +wizard +wizards +woe +woeful +woefully +woke +wolf +wolves +woman +womanhood +womanly +womb +wombs +women +won +wonder +wondered +wonderful +wonderfully +wonderfulness +wondering +wonderingly +wonderment +wonders +wondrous +wondrously +wont +wonted +woo +wood +woodchuck +woodchucks +woodcock +woodcocks +wooded +wooden +woodenly +woodenness +woodland +woodman +woodpecker +woodpeckers +woodwork +woodworking +woody +wooed +wooer +woof +woofed +woofer +woofers +woofing +woofs +wooing +wool +woolen +woolly +wools +woos +word +worded +wordily +wordiness +wording +words +wordy +wore +work +workable +workably +workbench +workbenches +workbook +workbooks +worked +worker +workers +workhorse +workhorses +working +workingman +workings +workload +workman +workmanship +workmen +works +workshop +workshops +workspace +workstation +workstations +world +worldliness +worldly +worlds +worldwide +worm +wormed +worming +worms +worn +worried +worrier +worriers +worries +worrisome +worry +worrying +worryingly +worse +worship +worshiped +worshiper +worshipful +worshiping +worships +worst +worsted +worth +worthiest +worthiness +worthless +worthlessness +worths +worthwhile +worthwhileness +worthy +would +wound +wounded +wounding +wounds +wove +woven +wrangle +wrangled +wrangler +wrap +wraparound +wrapped +wrapper +wrappers +wrapping +wrappings +wraps +wrath +wreak +wreaks +wreath +wreathed +wreathes +wreck +wreckage +wrecked +wrecker +wreckers +wrecking +wrecks +wren +wrench +wrenched +wrenches +wrenching +wrens +wrest +wrestle +wrestler +wrestles +wrestling +wrestlings +wretch +wretched +wretchedness +wretches +wriggle +wriggled +wriggler +wriggles +wriggling +wring +wringer +wrings +wrinkle +wrinkled +wrinkles +wrist +wrists +wristwatch +wristwatches +writ +writable +write +writer +writers +writes +writhe +writhed +writhes +writhing +writing +writings +writs +written +wrong +wronged +wronging +wrongly +wrongs +wrote +wrought +wrung +xylophone +yank +yanked +yanking +yanks +yard +yards +yardstick +yardsticks +yarn +yarns +yawn +yawner +yawning +yea +year +yearly +yearn +yearned +yearning +yearnings +years +yeas +yeast +yeasts +yell +yelled +yeller +yelling +yellow +yellowed +yellower +yellowest +yellowing +yellowish +yellowness +yellows +yelp +yelped +yelping +yelps +yeoman +yeomen +yes +yesterday +yesterdays +yet +yield +yielded +yielding +yields +yoke +yokes +yon +yonder +you +young +younger +youngest +youngly +youngster +youngsters +your +yours +yourself +yourselves +youth +youthes +youthful +youthfully +youthfulness +zeal +zealous +zealously +zealousness +zebra +zebras +zenith +zero +zeroed +zeroes +zeroing +zeros +zeroth +zest +zigzag +zillions +zinc +zodiac +zonal +zonally +zone +zoned +zones +zoning +zoo +zoological +zoologically +zoom +zooms +zoos diff --git a/source/y/bsd-games/slack-desc b/source/y/bsd-games/slack-desc new file mode 100644 index 000000000..632625f66 --- /dev/null +++ b/source/y/bsd-games/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bsd-games: bsd-games (Classic BSD text games collection) +bsd-games: +bsd-games: Games that go in /usr/games: adventure arithmetic atc backgammon +bsd-games: banner battlestar bcd caesar canfield cfscores countmail cribbage +bsd-games: factor fish fortune gomoku hangman hunt mille monop morse number +bsd-games: phantasia pig pom ppt primes quiz rain random robots rot13 sail +bsd-games: snake snscore teachgammon trek wargames worm worms wump +bsd-games: +bsd-games: Adds a call to 'fortune' to /etc/profile.d/ so that users will get a +bsd-games: fortune message when they log in. +bsd-games: diff --git a/testing/packages/linux-2.6.30.5/README_FIRST.TXT b/testing/packages/linux-2.6.30.5/README_FIRST.TXT new file mode 100644 index 000000000..86fa47b50 --- /dev/null +++ b/testing/packages/linux-2.6.30.5/README_FIRST.TXT @@ -0,0 +1,93 @@ + +Here are a set of 2.6.30.5 Linux kernel packages available for testing +with Slackware 13.0. These are not supported kernels, and we would +recommend that most users stick with the 2.6.29.6 kernels unless they +have a reason to use the newer kernel. A possible reason might be if +a system has some hardware that is better supported by the latest +kernel, such as certain recent wifi and video drivers. + +That said, we hope these kernel packages are helpful. + +To use these packages, install them with installpkg: + +installpkg kernel-*.txz + +Then, use mkinitrd to make an initial ramdisk. Use appropriate settings +for the kernel, filesystem module and type, and root device. Here's an +example for the i686 generic kernel using ext4 on root device /dev/sda2: + +mkinitrd -k 2.6.30.5-smp -m ext4 -f ext4 -r /dev/sda2 + +Here's an example using the x86_64 generic kernel and ext4 on /dev/sda2: + +mkinitrd -k 2.6.30.5 -m ext4 -f ext4 -r /dev/sda2 + +Now, you'll need to edit your /etc/lilo.conf. + +************** +* IMPORTANT! * +************** + +Due to the size of the 2.6.30.5 kernel and initrd, many BIOSes cannot boot +the kernel/ramdisk combination for i686, and most (if not all) will have +problems with the x86_64 kernel/ramdisk unless this option is added to the +/etc/lilo.conf: + +large-memory + +This allows LILO to use more than the first 15MB of RAM. LILO does not use +this option by default since it doesn't work with some older systems (BIOSes +from before around 2001). LILO tries to detect the amount of space that will +be required to decompress the kernel, but some adjustment to the code is +going to be needed, or perhaps we will have to investigate alternatives for +the bootloader. In any case, that's something for Slackware 13.1 or 14.0, or +whatever happens down the line. + +The option can go into the lilo.conf global section. It actually works just +fine to make it the first uncommented line of the file. + +************** + +Editing the /etc/lilo.conf file: + +With the large-memory option added to the file as described above, the next +step is to add a section to boot the new kernel and initrd. It's probably +a good idea to leave the section that boots the existing kernel in place at +first. + +An example for the 2.6.30.5-smp i686 kernel might look like this, added to +the bottom of /etc/lilo.conf: + +# Linux bootable partition config begins +image = /boot/vmlinuz-generic-smp-2.6.30.5-smp + initrd = /boot/initrd.gz + root = /dev/sda2 + label = L26305 + read-only +# Linux bootable partition config ends + +This uses the same configuration as the mkinitrd example for i686 above -- +adjust it to suit your needs. + +Once you've edited /etc/lilo.conf to add a boot section for the new kernel +and the large-memory option, you're ready to reinstall LILO. As root, +issue the "lilo" command. You should see output similar to this: + +# lilo +Warning: LBA32 addressing assumed +Added Linux * +Added Windows +Added L26305 +One warning was issued. + +If you get an error (not just a warning), you'll need to figure out how to +correct that and install LILO again BEFORE you try to reboot the machine! +Otherwise the machine may not reboot, and you'll need to use bootable media +to rescue it. + +Once LILO is installed without errors (warnings are probably OK), you may +reboot the machine and select the menu option for the new kernel. If all +goes well, your machine will start up running the 2.6.30.5 kernel. + +Hope this helps, and have fun. :-) + diff --git a/testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txt b/testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txt new file mode 100644 index 000000000..8a2d40cc1 --- /dev/null +++ b/testing/packages/linux-2.6.30.5/kernel-firmware-2.6.30.5-noarch-1_testing.txt @@ -0,0 +1,11 @@ +kernel-firmware: kernel-firmware (Firmware installed by the kernel) +kernel-firmware: +kernel-firmware: These are the firmware files from the Linux kernel. +kernel-firmware: +kernel-firmware: You'll need these to use certain hardware with Linux. +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: +kernel-firmware: diff --git a/testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txt b/testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txt new file mode 100644 index 000000000..b99e55093 --- /dev/null +++ b/testing/packages/linux-2.6.30.5/kernel-generic-2.6.30.5-x86_64-1_testing.txt @@ -0,0 +1,11 @@ +kernel-generic: kernel-generic (a general purpose SMP Linux kernel) +kernel-generic: +kernel-generic: This is a Linux kernel with built-in support for most disk +kernel-generic: controllers. To use filesystems, or to load support for a SCSI or +kernel-generic: other controller, then you'll need to load one or more kernel +kernel-generic: modules using an initial ramdisk, or initrd. For more information +kernel-generic: about creating an initrd, see the README.initrd file in the /boot +kernel-generic: directory. +kernel-generic: +kernel-generic: SMP is "Symmetric multiprocessing", or multiple CPU/core support. +kernel-generic: diff --git a/testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txt b/testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txt new file mode 100644 index 000000000..27b46a0e6 --- /dev/null +++ b/testing/packages/linux-2.6.30.5/kernel-headers-2.6.30.5-x86-1_testing.txt @@ -0,0 +1,11 @@ +kernel-headers: kernel-headers (Linux kernel include files) +kernel-headers: +kernel-headers: These are the include files from the Linux kernel. +kernel-headers: +kernel-headers: You'll need these to compile most system software for Linux. +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: +kernel-headers: diff --git a/testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txt b/testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txt new file mode 100644 index 000000000..56067d436 --- /dev/null +++ b/testing/packages/linux-2.6.30.5/kernel-modules-2.6.30.5-x86_64-1_testing.txt @@ -0,0 +1,11 @@ +kernel-modules: kernel-modules (Linux kernel modules) +kernel-modules: +kernel-modules: A kernel module is a piece of object code that can be dynamically +kernel-modules: loaded into the Linux kernel to provide new kernel functions. Most of +kernel-modules: these modules provide support for devices such as CD-ROM drives, tape +kernel-modules: drives, and ethernet cards. You can choose which modules to load by +kernel-modules: editing /etc/rc.d/rc.modules. +kernel-modules: +kernel-modules: +kernel-modules: +kernel-modules: diff --git a/testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txt b/testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txt new file mode 100644 index 000000000..eb2b0a30c --- /dev/null +++ b/testing/packages/linux-2.6.30.5/kernel-source-2.6.30.5-noarch-1_testing.txt @@ -0,0 +1,11 @@ +kernel-source: kernel-source (Linux kernel source) +kernel-source: +kernel-source: Source code for Linus Torvalds' Linux kernel. +kernel-source: +kernel-source: This is the complete and unmodified source code for the Linux kernel. +kernel-source: +kernel-source: +kernel-source: +kernel-source: +kernel-source: +kernel-source: diff --git a/testing/source/bash/bash-4.0-patches/bash40-001 b/testing/source/bash/bash-4.0-patches/bash40-001 new file mode 100644 index 000000000..5c6bb34b2 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-001 @@ -0,0 +1,162 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-001 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <200902211821.42188.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00147.html + +Bug-Description: + +Bash has problems parsing certain constructs inside Posix-style $(...) +command substitutions, mostly with backslash-quoting and reserved word +recognition. This is an issue because the contents are parsed at the +time the word containing the command substitution is read. + +Patch: + +*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500 +--- parse.y 2009-03-06 20:32:35.000000000 -0500 +*************** +*** 2928,2931 **** +--- 2932,2936 ---- + #define LEX_HEREDELIM 0x100 /* reading here-doc delimiter */ + #define LEX_STRIPDOC 0x200 /* <<- strip tabs from here doc delim */ ++ #define LEX_INWORD 0x400 + + #define COMSUB_META(ch) ((ch) == ';' || (ch) == '&' || (ch) == '|') +*************** +*** 3180,3184 **** + int *lenp, flags; + { +! int count, ch, peekc, tflags, lex_rwlen, lex_firstind; + int nestlen, ttranslen, start_lineno; + char *ret, *nestret, *ttrans, *heredelim; +--- 3188,3192 ---- + int *lenp, flags; + { +! int count, ch, peekc, tflags, lex_rwlen, lex_wlen, lex_firstind; + int nestlen, ttranslen, start_lineno; + char *ret, *nestret, *ttrans, *heredelim; +*************** +*** 3201,3205 **** + + start_lineno = line_number; +! lex_rwlen = 0; + + heredelim = 0; +--- 3209,3213 ---- + + start_lineno = line_number; +! lex_rwlen = lex_wlen = 0; + + heredelim = 0; +*************** +*** 3268,3271 **** +--- 3276,3319 ---- + } + ++ if (tflags & LEX_PASSNEXT) /* last char was backslash */ ++ { ++ /*itrace("parse_comsub:%d: lex_passnext -> 0 ch = `%c' (%d)", line_number, ch, __LINE__);*/ ++ tflags &= ~LEX_PASSNEXT; ++ if (qc != '\'' && ch == '\n') /* double-quoted \ disappears. */ ++ { ++ if (retind > 0) ++ retind--; /* swallow previously-added backslash */ ++ continue; ++ } ++ ++ RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); ++ if MBTEST(ch == CTLESC || ch == CTLNUL) ++ ret[retind++] = CTLESC; ++ ret[retind++] = ch; ++ continue; ++ } ++ ++ /* If this is a shell break character, we are not in a word. If not, ++ we either start or continue a word. */ ++ if MBTEST(shellbreak (ch)) ++ { ++ tflags &= ~LEX_INWORD; ++ /*itrace("parse_comsub:%d: lex_inword -> 0 ch = `%c' (%d)", line_number, ch, __LINE__);*/ ++ } ++ else ++ { ++ if (tflags & LEX_INWORD) ++ { ++ lex_wlen++; ++ /*itrace("parse_comsub:%d: lex_inword == 1 ch = `%c' lex_wlen = %d (%d)", line_number, ch, lex_wlen, __LINE__);*/ ++ } ++ else ++ { ++ /*itrace("parse_comsub:%d: lex_inword -> 1 ch = `%c' (%d)", line_number, ch, __LINE__);*/ ++ tflags |= LEX_INWORD; ++ lex_wlen = 0; ++ } ++ } ++ + /* Skip whitespace */ + if MBTEST(shellblank (ch) && lex_rwlen == 0) +*************** +*** 3400,3428 **** + } + else +! ch = peekc; /* fall through and continue XXX - this skips comments if peekc == '#' */ + } +! /* Not exactly right yet, should handle shell metacharacters, too. If +! any changes are made to this test, make analogous changes to subst.c: +! extract_delimited_string(). */ +! else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || shellblank (ret[retind - 1]))) + tflags |= LEX_INCOMMENT; + +! if (tflags & LEX_PASSNEXT) /* last char was backslash */ +! { +! tflags &= ~LEX_PASSNEXT; +! if (qc != '\'' && ch == '\n') /* double-quoted \ disappears. */ +! { +! if (retind > 0) +! retind--; /* swallow previously-added backslash */ +! continue; +! } +! +! RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); +! if MBTEST(ch == CTLESC || ch == CTLNUL) +! ret[retind++] = CTLESC; +! ret[retind++] = ch; +! continue; +! } +! else if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */ + { + RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); +--- 3442,3454 ---- + } + else +! ch = peekc; /* fall through and continue XXX */ + } +! else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (((tflags & LEX_RESWDOK) && lex_rwlen == 0) || ((tflags & LEX_INWORD) && lex_wlen == 0))) +! { +! /*itrace("parse_comsub:%d: lex_incomment -> 1 (%d)", line_number, __LINE__);*/ + tflags |= LEX_INCOMMENT; ++ } + +! if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */ + { + RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-002 b/testing/source/bash/bash-4.0-patches/bash40-002 new file mode 100644 index 000000000..18bd25e7b --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-002 @@ -0,0 +1,43 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-002 + +Bug-Reported-by: phil@Arcturus.universe +Bug-Reference-ID: <20090221143709.13878.qmail@Arcturus.universe> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00142.html + +Bug-Description: + +A line inadvertenly omitted from a submitted patch results in core dumps +when attempting filename completion while using the bash-completion +package. + +Patch: + +*** ../bash-4.0/pcomplete.c 2009-02-01 17:12:31.000000000 -0500 +--- pcomplete.c 2009-02-22 17:08:25.000000000 -0500 +*************** +*** 1033,1036 **** +--- 1033,1037 ---- + + pps = &ps; ++ save_parser_state (pps); + begin_unwind_frame ("gen-shell-function-matches"); + add_unwind_protect (restore_parser_state, (char *)pps); +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-003 b/testing/source/bash/bash-4.0-patches/bash40-003 new file mode 100644 index 000000000..cc941d5e9 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-003 @@ -0,0 +1,70 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-003 + +Bug-Reported-by: Bernd Eggink +Bug-Reference-ID: <49A323F5.60503@sudrala.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00177.html + +Bug-Description: + +Under certain circumstances, constructs containing command substitutions +prevent PS1 from being re-evaluated and updated before being displayed. + +Patch: + +*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500 +--- parse.y 2009-02-25 15:58:25.000000000 -0500 +*************** +*** 1616,1623 **** + int *ret; + +! ret = (int *)xmalloc (3 * sizeof (int)); + ret[0] = last_read_token; + ret[1] = token_before_that; + ret[2] = two_tokens_ago; + return ret; + } +--- 1616,1624 ---- + int *ret; + +! ret = (int *)xmalloc (4 * sizeof (int)); + ret[0] = last_read_token; + ret[1] = token_before_that; + ret[2] = two_tokens_ago; ++ ret[3] = current_token; + return ret; + } +*************** +*** 1632,1635 **** +--- 1633,1637 ---- + token_before_that = ts[1]; + two_tokens_ago = ts[2]; ++ current_token = ts[3]; + } + +*************** +*** 2669,2672 **** +--- 2671,2675 ---- + word_desc_to_read = (WORD_DESC *)NULL; + ++ current_token = '\n'; /* XXX */ + last_read_token = '\n'; + token_to_read = '\n'; +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-004 b/testing/source/bash/bash-4.0-patches/bash40-004 new file mode 100644 index 000000000..6ab6c4ee6 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-004 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-004 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <200902231720.30519.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00176.html + +Bug-Description: + +In some cases, enabling the `checkjobs' shell option will cause the shell +to core dump when executing the `exit' builtin. + +Patch: + +*** ../bash-4.0/builtins/exit.def 2009-01-04 14:32:22.000000000 -0500 +--- builtins/exit.def 2009-02-23 22:56:58.000000000 -0500 +*************** +*** 114,118 **** + if (jobs[i] && STOPPED (i)) + stopmsg = JSTOPPED; +! else if (check_jobs_at_exit && stopmsg == 0 && RUNNING (i)) + stopmsg = JRUNNING; + +--- 114,118 ---- + if (jobs[i] && STOPPED (i)) + stopmsg = JSTOPPED; +! else if (check_jobs_at_exit && stopmsg == 0 && jobs[i] && RUNNING (i)) + stopmsg = JRUNNING; + +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-005 b/testing/source/bash/bash-4.0-patches/bash40-005 new file mode 100644 index 000000000..ccfde66da --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-005 @@ -0,0 +1,63 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-005 + +Bug-Reported-by: Pierre Gaston +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00206.html + +Bug-Description: + +The `declare' builtin dumped core when attempting to assign associative +array indices containing some special characters, even when they were +quoted before being expanded. + +Patch: + +*** ../bash-4.0/builtins/declare.def 2009-01-04 14:32:22.000000000 -0500 +--- builtins/declare.def 2009-02-26 11:40:16.000000000 -0500 +*************** +*** 296,299 **** +--- 296,306 ---- + if (t = strchr (name, '[')) /* ] */ + { ++ /* If offset != 0 we have already validated any array reference */ ++ if (offset == 0 && valid_array_reference (name) == 0) ++ { ++ sh_invalidid (name); ++ assign_error++; ++ NEXT_VARIABLE (); ++ } + subscript_start = t; + *t = '\0'; +*************** +*** 485,489 **** + /* declare -a name[[n]] or declare name[n] makes name an indexed + array variable. */ +! else if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0) + var = convert_var_to_array (var); + #endif /* ARRAY_VARS */ +--- 492,496 ---- + /* declare -a name[[n]] or declare name[n] makes name an indexed + array variable. */ +! else if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0 && assoc_p (var) == 0) + var = convert_var_to_array (var); + #endif /* ARRAY_VARS */ +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ + diff --git a/testing/source/bash/bash-4.0-patches/bash40-006 b/testing/source/bash/bash-4.0-patches/bash40-006 new file mode 100644 index 000000000..3d044c72e --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-006 @@ -0,0 +1,43 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-006 + +Bug-Reported-by: Evgeniy Zhemchugov +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00202.html + +Bug-Description: + +Bash did not parse pipelines using the |& construct correctly if the +pipeline elements were not simple commands. + +Patch: + +*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500 +--- parse.y 2009-02-25 17:25:56.000000000 -0500 +*************** +*** 4478,4481 **** +--- 4478,4482 ---- + case AND_AND: + case BANG: ++ case BAR_AND: + case DO: + case DONE: +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ + diff --git a/testing/source/bash/bash-4.0-patches/bash40-007 b/testing/source/bash/bash-4.0-patches/bash40-007 new file mode 100644 index 000000000..29071e129 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-007 @@ -0,0 +1,263 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-007 + +Bug-Reported-by: AnMaster +Bug-Reference-ID: <49A41C18.80807@tele2.se> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00188.html + +Bug-Description: + +Bash had a number of problems parsing associative array subscripts containing +special characters. The subscripts are supposed to be read as if they are +enclosed between double quotes. + +Patch: + +*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500 +--- parse.y 2009-02-25 17:25:56.000000000 -0500 +*************** +*** 2919,2922 **** +--- 2919,2923 ---- + #define P_COMMAND 0x08 /* parsing a command, so look for comments */ + #define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ ++ #define P_ARRAYSUB 0x20 /* parsing a [...] array subscript for assignment */ + + /* Lexical state while parsing a grouping construct or $(...). */ +*************** +*** 3134,3137 **** +--- 3134,3139 ---- + FREE (nestret); + } ++ else if ((flags & P_ARRAYSUB) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ ++ goto parse_dollar_word; + } + /* Parse an old-style command substitution within double quotes as a +*************** +*** 3150,3153 **** +--- 3150,3154 ---- + /* check for $(), $[], or ${} inside quoted string. */ + { ++ parse_dollar_word: + if (open == ch) /* undo previous increment */ + count--; +*************** +*** 4277,4281 **** + (token_index == 0 && (parser_state&PST_COMPASSIGN)))) + { +! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ +--- 4277,4281 ---- + (token_index == 0 && (parser_state&PST_COMPASSIGN)))) + { +! ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARRAYSUB); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ +*** ../bash-4.0/arrayfunc.c 2009-01-04 14:32:21.000000000 -0500 +--- arrayfunc.c 2009-02-25 07:58:54.000000000 -0500 +*************** +*** 605,666 **** + } + +! /* This function assumes s[i] == '['; returns with s[ret] == ']' if +! an array subscript is correctly parsed. */ +! int +! skipsubscript (s, i) +! const char *s; +! int i; +! { +! int count, c; +! #if defined (HANDLE_MULTIBYTE) +! mbstate_t state, state_bak; +! size_t slength, mblength; +! #endif +! +! #if defined (HANDLE_MULTIBYTE) +! memset (&state, '\0', sizeof (mbstate_t)); +! slength = strlen (s + i); +! #endif +! +! count = 1; +! while (count) +! { +! /* Advance one (possibly multibyte) character in S starting at I. */ +! #if defined (HANDLE_MULTIBYTE) +! if (MB_CUR_MAX > 1) +! { +! state_bak = state; +! mblength = mbrlen (s + i, slength, &state); +! +! if (MB_INVALIDCH (mblength)) +! { +! state = state_bak; +! i++; +! slength--; +! } +! else if (MB_NULLWCH (mblength)) +! return i; +! else +! { +! i += mblength; +! slength -= mblength; +! } +! } +! else +! #endif +! ++i; +! +! c = s[i]; +! +! if (c == 0) +! break; +! else if (c == '[') +! count++; +! else if (c == ']') +! count--; +! } +! +! return i; +! } + + /* This function is called with SUB pointing to just after the beginning +--- 605,609 ---- + } + +! /* skipsubscript moved to subst.c to use private functions. 2009/02/24. */ + + /* This function is called with SUB pointing to just after the beginning +*** ../bash-4.0/subst.c 2009-01-28 14:34:12.000000000 -0500 +--- subst.c 2009-02-25 09:18:33.000000000 -0500 +*************** +*** 223,226 **** +--- 223,227 ---- + static char *extract_delimited_string __P((char *, int *, char *, char *, char *, int)); + static char *extract_dollar_brace_string __P((char *, int *, int, int)); ++ static int skip_matched_pair __P((const char *, int, int, int, int)); + + static char *pos_params __P((char *, int, int, int)); +*************** +*** 1375,1378 **** +--- 1376,1480 ---- + #define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0) + ++ /* This function assumes s[i] == open; returns with s[ret] == close; used to ++ parse array subscripts. FLAGS currently unused. */ ++ static int ++ skip_matched_pair (string, start, open, close, flags) ++ const char *string; ++ int start, open, close, flags; ++ { ++ int i, pass_next, backq, si, c, count; ++ size_t slen; ++ char *temp, *ss; ++ DECLARE_MBSTATE; ++ ++ slen = strlen (string + start) + start; ++ no_longjmp_on_fatal_error = 1; ++ ++ i = start + 1; /* skip over leading bracket */ ++ count = 1; ++ pass_next = backq = 0; ++ ss = (char *)string; ++ while (c = string[i]) ++ { ++ if (pass_next) ++ { ++ pass_next = 0; ++ if (c == 0) ++ CQ_RETURN(i); ++ ADVANCE_CHAR (string, slen, i); ++ continue; ++ } ++ else if (c == '\\') ++ { ++ pass_next = 1; ++ i++; ++ continue; ++ } ++ else if (backq) ++ { ++ if (c == '`') ++ backq = 0; ++ ADVANCE_CHAR (string, slen, i); ++ continue; ++ } ++ else if (c == '`') ++ { ++ backq = 1; ++ i++; ++ continue; ++ } ++ else if (c == open) ++ { ++ count++; ++ i++; ++ continue; ++ } ++ else if (c == close) ++ { ++ count--; ++ if (count == 0) ++ break; ++ i++; ++ continue; ++ } ++ else if (c == '\'' || c == '"') ++ { ++ i = (c == '\'') ? skip_single_quoted (ss, slen, ++i) ++ : skip_double_quoted (ss, slen, ++i); ++ /* no increment, the skip functions increment past the closing quote. */ ++ } ++ else if (c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE)) ++ { ++ si = i + 2; ++ if (string[si] == '\0') ++ CQ_RETURN(si); ++ ++ if (string[i+1] == LPAREN) ++ temp = extract_delimited_string (ss, &si, "$(", "(", ")", SX_NOALLOC|SX_COMMAND); /* ) */ ++ else ++ temp = extract_dollar_brace_string (ss, &si, 0, SX_NOALLOC); ++ i = si; ++ if (string[i] == '\0') /* don't increment i past EOS in loop */ ++ break; ++ i++; ++ continue; ++ } ++ else ++ ADVANCE_CHAR (string, slen, i); ++ } ++ ++ CQ_RETURN(i); ++ } ++ ++ #if defined (ARRAY_VARS) ++ int ++ skipsubscript (string, start) ++ const char *string; ++ int start; ++ { ++ return (skip_matched_pair (string, start, '[', ']', 0)); ++ } ++ #endif ++ + /* Skip characters in STRING until we find a character in DELIMS, and return + the index of that character. START is the index into string at which we +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-008 b/testing/source/bash/bash-4.0-patches/bash40-008 new file mode 100644 index 000000000..7a2576aa6 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-008 @@ -0,0 +1,49 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-008 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <200902261030.54062.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00230.html + +Bug-Description: + +Patch: + +*** ../bash-4.0/parse.y 2009-01-08 08:29:12.000000000 -0500 +--- parse.y 2009-02-26 17:22:15.000000000 -0500 +*************** +*** 3443,3448 **** + else + shell_ungetc (peekc); +! tflags |= LEX_HEREDELIM; +! lex_firstind = -1; + continue; + } +--- 3443,3451 ---- + else + shell_ungetc (peekc); +! if (peekc != '<') +! { +! tflags |= LEX_HEREDELIM; +! lex_firstind = -1; +! } + continue; + } +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-009 b/testing/source/bash/bash-4.0-patches/bash40-009 new file mode 100644 index 000000000..f58391929 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-009 @@ -0,0 +1,61 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-009 + +Bug-Reported-by: "Chris F.A. Johnson" +Bug-Reference-ID: <4d6b7$49a88cec$cef88ba3$16813@TEKSAVVY.COM> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00255.html + +Bug-Description: + +When the read builtin returned due to a timeout supplied with the -t option, +it did not restore any modified terminal attribtues. + +Patch: + +*** ../bash-4.0/builtins/read.def 2009-01-15 23:11:21.000000000 -0500 +--- builtins/read.def 2009-03-02 10:15:39.000000000 -0500 +*************** +*** 370,381 **** + if (code) + { +! #if 0 + run_unwind_frame ("read_builtin"); +- return (EXECUTION_FAILURE); +- #else + input_string[i] = '\0'; /* make sure it's terminated */ +! retval = 128+SIGALRM;; + goto assign_vars; +- #endif + } + old_alrm = set_signal_handler (SIGALRM, sigalrm); +--- 370,381 ---- + if (code) + { +! /* Tricky. The top of the unwind-protect stack is the free of +! input_string. We want to run all the rest and use input_string, +! so we have to remove it from the stack. */ +! remove_unwind_protect (); + run_unwind_frame ("read_builtin"); + input_string[i] = '\0'; /* make sure it's terminated */ +! retval = 128+SIGALRM; + goto assign_vars; + } + old_alrm = set_signal_handler (SIGALRM, sigalrm); +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-010 b/testing/source/bash/bash-4.0-patches/bash40-010 new file mode 100644 index 000000000..3229c5736 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-010 @@ -0,0 +1,63 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-010 + +Bug-Reported-by: Mike Frysinger +Bug-Reference-ID: <200903030122.56206.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00023.html + +Bug-Description: + +Bash has problems parsing comments in case statements when they appear in +$(...) subshells. + +Patch: + +*** ../bash-4.0/parse.y 2009-03-07 15:18:35.000000000 -0500 +--- parse.y 2009-03-07 14:16:32.000000000 -0500 +*************** +*** 3413,3419 **** + tflags &= ~LEX_RESWDOK; + } +! else if (shellbreak (ch) == 0) + { +! tflags &= ~LEX_RESWDOK; + /*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/ + } +--- 3415,3433 ---- + tflags &= ~LEX_RESWDOK; + } +! else if MBTEST((tflags & LEX_CKCOMMENT) && ch == '#' && (lex_rwlen == 0 || ((tflags & LEX_INWORD) && lex_wlen == 0))) +! ; /* don't modify LEX_RESWDOK if we're starting a comment */ +! else if MBTEST((tflags & LEX_INCASE) && ch != '\n') +! /* If we can read a reserved word and we're in case, we're at the +! point where we can read a new pattern list or an esac. We +! handle the esac case above. If we read a newline, we want to +! leave LEX_RESWDOK alone. If we read anything else, we want to +! turn off LEX_RESWDOK, since we're going to read a pattern list. */ + { +! tflags &= ~LEX_RESWDOK; +! /*itrace("parse_comsub:%d: lex_incase == 1 found `%c', lex_reswordok -> 0", line_number, ch);*/ +! } +! else if MBTEST(shellbreak (ch) == 0) +! { +! tflags &= ~LEX_RESWDOK; + /*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/ + } +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-011 b/testing/source/bash/bash-4.0-patches/bash40-011 new file mode 100644 index 000000000..61d1d3a8a --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-011 @@ -0,0 +1,49 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-011 + +Bug-Reported-by: Matt Zyzik n +Bug-Reference-ID: <20090312015018.C00741383ED@ice.filescope.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00092.html + +Bug-Description: + +When using the new |& operator following a simple command with a redirection, +the redirection of stderr through the pipe was not performed under certain +circumstances. + +Patch: + +*** ../bash-4.0-patched/parse.y 2009-03-08 21:24:47.000000000 -0400 +--- parse.y 2009-03-12 21:36:23.000000000 -0400 +*************** +*** 1123,1127 **** + REDIRECT *r; + +! tc = $1; + rd.dest = 1; + r = make_redirection (2, r_duplicating_output, rd); +--- 1123,1127 ---- + REDIRECT *r; + +! tc = $1->type == cm_simple ? (COMMAND *)$1->value.Simple : $1; + rd.dest = 1; + r = make_redirection (2, r_duplicating_output, rd); +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ + diff --git a/testing/source/bash/bash-4.0-patches/bash40-012 b/testing/source/bash/bash-4.0-patches/bash40-012 new file mode 100644 index 000000000..014eae69a --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-012 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-012 + +Bug-Reported-by: "Clark J. Wang" +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00129.html + +Bug-Description: + +A case statement using the ;& pattern terminator followed immediately by +"esac" caused a core dump due to a null pointer dereference. + +Patch: + +*** ../bash-4.0-patched/execute_cmd.c 2009-02-13 16:41:41.000000000 -0500 +--- execute_cmd.c 2009-03-14 13:23:00.000000000 -0400 +*************** +*** 2931,2935 **** + } + while ((clauses->flags & CASEPAT_FALLTHROUGH) && (clauses = clauses->next)); +! if ((clauses->flags & CASEPAT_TESTNEXT) == 0) + EXIT_CASE (); + else +--- 2931,2935 ---- + } + while ((clauses->flags & CASEPAT_FALLTHROUGH) && (clauses = clauses->next)); +! if (clauses == 0 || (clauses->flags & CASEPAT_TESTNEXT) == 0) + EXIT_CASE (); + else +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-013 b/testing/source/bash/bash-4.0-patches/bash40-013 new file mode 100644 index 000000000..df1fc493b --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-013 @@ -0,0 +1,153 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-013 + +Bug-Reported-by: jidanni@jidanni.org +Bug-Reference-ID: +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519165 + +Bug-Description: + +Though references to $@ when there are no positional parameters will now +cause the shell to exit if the `errexit' option has been enabled, constructs +such as ${@:-foo} should not cause an exit. + +Patch: + +*** ../bash-4.0-patched/subst.c 2009-03-08 21:24:39.000000000 -0400 +--- subst.c 2009-03-14 19:04:10.000000000 -0400 +*************** +*** 86,89 **** +--- 86,90 ---- + /* Flags for the `pflags' argument to param_expand() */ + #define PF_NOCOMSUB 0x01 /* Do not perform command substitution */ ++ #define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */ + + /* These defs make it easier to use the editor. */ +*************** +*** 264,268 **** + static int chk_arithsub __P((const char *, int)); + +! static WORD_DESC *parameter_brace_expand_word __P((char *, int, int)); + static WORD_DESC *parameter_brace_expand_indir __P((char *, int, int, int *, int *)); + static WORD_DESC *parameter_brace_expand_rhs __P((char *, char *, int, int, int *, int *)); +--- 265,269 ---- + static int chk_arithsub __P((const char *, int)); + +! static WORD_DESC *parameter_brace_expand_word __P((char *, int, int, int)); + static WORD_DESC *parameter_brace_expand_indir __P((char *, int, int, int *, int *)); + static WORD_DESC *parameter_brace_expand_rhs __P((char *, char *, int, int, int *, int *)); +*************** +*** 5196,5202 **** + NAME was found inside of a double-quoted expression. */ + static WORD_DESC * +! parameter_brace_expand_word (name, var_is_special, quoted) + char *name; +! int var_is_special, quoted; + { + WORD_DESC *ret; +--- 5197,5203 ---- + NAME was found inside of a double-quoted expression. */ + static WORD_DESC * +! parameter_brace_expand_word (name, var_is_special, quoted, pflags) + char *name; +! int var_is_special, quoted, pflags; + { + WORD_DESC *ret; +*************** +*** 5230,5234 **** + + ret = param_expand (tt, &sindex, quoted, (int *)NULL, (int *)NULL, +! (int *)NULL, (int *)NULL, 0); + free (tt); + } +--- 5231,5235 ---- + + ret = param_expand (tt, &sindex, quoted, (int *)NULL, (int *)NULL, +! (int *)NULL, (int *)NULL, pflags); + free (tt); + } +*************** +*** 5291,5295 **** + WORD_DESC *w; + +! w = parameter_brace_expand_word (name, var_is_special, quoted); + t = w->word; + /* Have to dequote here if necessary */ +--- 5292,5296 ---- + WORD_DESC *w; + +! w = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND); + t = w->word; + /* Have to dequote here if necessary */ +*************** +*** 5308,5312 **** + return (WORD_DESC *)NULL; + +! w = parameter_brace_expand_word (t, SPECIAL_VAR(t, 0), quoted); + free (t); + +--- 5309,5313 ---- + return (WORD_DESC *)NULL; + +! w = parameter_brace_expand_word (t, SPECIAL_VAR(t, 0), quoted, 0); + free (t); + +*************** +*** 6659,6663 **** + tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); + else +! tdesc = parameter_brace_expand_word (name, var_is_special, quoted); + + if (tdesc) +--- 6660,6664 ---- + tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); + else +! tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND); + + if (tdesc) +*************** +*** 6990,6994 **** + list = list_rest_of_args (); + +! if (list == 0 && unbound_vars_is_error) + { + uerror[0] = '$'; +--- 6991,6995 ---- + list = list_rest_of_args (); + +! if (list == 0 && unbound_vars_is_error && (pflags & PF_IGNUNBOUND) == 0) + { + uerror[0] = '$'; +*************** +*** 7052,7056 **** + list = list_rest_of_args (); + +! if (list == 0 && unbound_vars_is_error) + { + uerror[0] = '$'; +--- 7053,7057 ---- + list = list_rest_of_args (); + +! if (list == 0 && unbound_vars_is_error && (pflags & PF_IGNUNBOUND) == 0) + { + uerror[0] = '$'; + + +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-014 b/testing/source/bash/bash-4.0-patches/bash40-014 new file mode 100644 index 000000000..eeba336cd --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-014 @@ -0,0 +1,113 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-014 + +Bug-Reported-by: smallnow@gmail.com +Bug-Reference-ID: <49C460FE.40307@gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00166.html + +Bug-Description: + +When the fc builtin is run in a command substitution from a shell with history +enabled, it does not correctly calculate the command on which to operate. + +Patch: + +*** ../bash-4.0-patched/builtins/fc.def 2009-01-04 14:32:22.000000000 -0500 +--- builtins/fc.def 2009-03-21 14:03:43.000000000 -0400 +*************** +*** 89,92 **** +--- 89,93 ---- + extern int literal_history; + extern int posixly_correct; ++ extern int subshell_environment, interactive_shell; + + extern int unlink __P((const char *)); +*************** +*** 173,177 **** + register char *sep; + int numbering, reverse, listing, execute; +! int histbeg, histend, last_hist, retval, opt; + FILE *stream; + REPL *rlist, *rl; +--- 174,178 ---- + register char *sep; + int numbering, reverse, listing, execute; +! int histbeg, histend, last_hist, retval, opt, rh; + FILE *stream; + REPL *rlist, *rl; +*************** +*** 276,279 **** +--- 277,282 ---- + fprintf (stderr, "%s\n", command); + fc_replhist (command); /* replace `fc -s' with command */ ++ /* Posix says that the re-executed commands should be entered into the ++ history. */ + return (parse_and_execute (command, "fc", SEVAL_NOHIST)); + } +*************** +*** 294,298 **** + so we check hist_last_line_added. */ + +! last_hist = i - remember_on_history - hist_last_line_added; + + if (list) +--- 297,306 ---- + so we check hist_last_line_added. */ + +! /* Even though command substitution through parse_and_execute turns off +! remember_on_history, command substitution in a shell when set -o history +! has been enabled (interactive or not) should use it in the last_hist +! calculation as if it were on. */ +! rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list); +! last_hist = i - rh - hist_last_line_added; + + if (list) +*************** +*** 457,461 **** + HIST_ENTRY **hlist; + { +! int sign, n, clen; + register int i, j; + register char *s; +--- 465,469 ---- + HIST_ENTRY **hlist; + { +! int sign, n, clen, rh; + register int i, j; + register char *s; +*************** +*** 473,477 **** + so we check hist_last_line_added. This needs to agree with the + calculation of last_hist in fc_builtin above. */ +! i -= remember_on_history + hist_last_line_added; + + /* No specification defaults to most recent command. */ +--- 481,490 ---- + so we check hist_last_line_added. This needs to agree with the + calculation of last_hist in fc_builtin above. */ +! /* Even though command substitution through parse_and_execute turns off +! remember_on_history, command substitution in a shell when set -o history +! has been enabled (interactive or not) should use it in the last_hist +! calculation as if it were on. */ +! rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list); +! i -= rh + hist_last_line_added; + + /* No specification defaults to most recent command. */ +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-015 b/testing/source/bash/bash-4.0-patches/bash40-015 new file mode 100644 index 000000000..c3e8d3346 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-015 @@ -0,0 +1,84 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-015 + +Bug-Reported-by: Lubomir Rintel +Bug-Reference-ID: <1237654931.32737.13.camel@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00174.html + +Bug-Description: + +Deferring handling of signals which should cause the shell to terminate until +it is "safe" to run the handler functions does not work for some terminating +signals. + +Patch: + +*** ../bash-4.0-patched/sig.c 2009-01-04 14:32:41.000000000 -0500 +--- sig.c 2009-03-22 14:47:56.000000000 -0400 +*************** +*** 449,452 **** +--- 449,494 ---- + int sig; + { ++ /* If we get called twice with the same signal before handling it, ++ terminate right away. */ ++ if ( ++ #ifdef SIGHUP ++ sig != SIGHUP && ++ #endif ++ #ifdef SIGINT ++ sig != SIGINT && ++ #endif ++ #ifdef SIGDANGER ++ sig != SIGDANGER && ++ #endif ++ #ifdef SIGPIPE ++ sig != SIGPIPE && ++ #endif ++ #ifdef SIGALRM ++ sig != SIGALRM && ++ #endif ++ #ifdef SIGTERM ++ sig != SIGTERM && ++ #endif ++ #ifdef SIGXCPU ++ sig != SIGXCPU && ++ #endif ++ #ifdef SIGXFSZ ++ sig != SIGXFSZ && ++ #endif ++ #ifdef SIGVTALRM ++ sig != SIGVTALRM && ++ #endif ++ #ifdef SIGLOST ++ sig != SIGLOST && ++ #endif ++ #ifdef SIGUSR1 ++ sig != SIGUSR1 && ++ #endif ++ #ifdef SIGUSR2 ++ sig != SIGUSR2 && ++ #endif ++ sig == terminating_signal) ++ terminate_immediately = 1; ++ + terminating_signal = sig; + +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-016 b/testing/source/bash/bash-4.0-patches/bash40-016 new file mode 100644 index 000000000..ace2e1e5f --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-016 @@ -0,0 +1,104 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-016 + +Bug-Reported-by: Brian J. Murrell" +Bug-Reference-ID: <1237564627.7666.12.camel@pc.interlinx.bc.ca> +Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00160.html + +Bug-Description: + +There are several problems with the handling of $LINENO in an ERR trap. + +Patch: + +*** ../bash-4.0-patched/trap.c 2009-01-16 17:07:53.000000000 -0500 +--- trap.c 2009-03-20 21:37:00.000000000 -0400 +*************** +*** 756,760 **** + + flags = SEVAL_NONINT|SEVAL_NOHIST; +! if (sig != DEBUG_TRAP && sig != RETURN_TRAP) + flags |= SEVAL_RESETLINE; + if (function_code == 0) +--- 756,760 ---- + + flags = SEVAL_NONINT|SEVAL_NOHIST; +! if (sig != DEBUG_TRAP && sig != RETURN_TRAP && sig != ERROR_TRAP) + flags |= SEVAL_RESETLINE; + if (function_code == 0) +*** ../bash-4.0-patched/execute_cmd.c 2009-02-13 16:41:41.000000000 -0500 +--- execute_cmd.c 2009-03-21 14:16:11.000000000 -0400 +*************** +*** 569,572 **** +--- 569,573 ---- + /* Fork a subshell, turn off the subshell bit, turn off job + control and call execute_command () on the command again. */ ++ line_number_for_err_trap = line_number; + paren_pid = make_child (savestring (make_command_string (command)), + asynchronous); +*************** +*** 611,615 **** +--- 612,619 ---- + { + last_command_exit_value = exec_result; ++ save_line_number = line_number; ++ line_number = line_number_for_err_trap; + run_error_trap (); ++ line_number = save_line_number; + } + +*************** +*** 767,771 **** +--- 771,777 ---- + { + last_command_exit_value = exec_result; ++ line_number = line_number_for_err_trap; + run_error_trap (); ++ line_number = save_line_number; + } + +*************** +*** 2106,2109 **** +--- 2112,2116 ---- + COMMAND *tc, *second; + int ignore_return, exec_result, was_error_trap, invert; ++ volatile int save_line_number; + + ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0; +*************** +*** 2175,2178 **** +--- 2182,2186 ---- + ignore_return = (command->flags & CMD_IGNORE_RETURN) != 0; + ++ line_number_for_err_trap = line_number; + exec_result = execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close); + +*************** +*** 2180,2184 **** +--- 2188,2195 ---- + { + last_command_exit_value = exec_result; ++ save_line_number = line_number; ++ line_number = line_number_for_err_trap; + run_error_trap (); ++ line_number = save_line_number; + } + +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-017 b/testing/source/bash/bash-4.0-patches/bash40-017 new file mode 100644 index 000000000..ff42d7781 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-017 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-017 + +Bug-Reported-by: Lubomir Rintel +Bug-Reference-ID: <1237654931.32737.13.camel@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00174.html + +Bug-Description: + +Adding a null line to a here-document (e.g., by hitting EOF) causes the +shell to dump core attempting to dereference the NULL pointer. + +Patch: + +*** ../bash-4.0-patched/parse.y 2009-03-08 21:24:47.000000000 -0400 +--- parse.y 2009-03-21 14:38:42.000000000 -0400 +*************** +*** 1880,1884 **** + ret = read_a_line (remove_quoted_newline); + #if defined (HISTORY) +! if (remember_on_history && (parser_state & PST_HEREDOC)) + { + /* To make adding the the here-document body right, we need to rely +--- 1880,1884 ---- + ret = read_a_line (remove_quoted_newline); + #if defined (HISTORY) +! if (ret && remember_on_history && (parser_state & PST_HEREDOC)) + { + /* To make adding the the here-document body right, we need to rely +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-018 b/testing/source/bash/bash-4.0-patches/bash40-018 new file mode 100644 index 000000000..35f33e5fe --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-018 @@ -0,0 +1,78 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-018 + +Bug-Reported-by: Dan Price +Bug-Reference-ID: <20090324171502.GA20582@eng.sun.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00184.html + +Bug-Description: + +A missing include file results in an empty function definition and a no-op +when checking whether or not the window size has changed. + +Patch: + +*** ../bash-4.0-patched/lib/sh/winsize.c 2008-08-12 13:53:51.000000000 -0400 +--- lib/sh/winsize.c 2009-04-06 10:44:20.000000000 -0400 +*************** +*** 31,44 **** + #include + +! #if !defined (STRUCT_WINSIZE_IN_SYS_IOCTL) +! /* For struct winsize on SCO */ +! /* sys/ptem.h has winsize but needs mblk_t from sys/stream.h */ +! # if defined (HAVE_SYS_PTEM_H) && defined (TIOCGWINSZ) && defined (SIGWINCH) +! # if defined (HAVE_SYS_STREAM_H) +! # include +! # endif + # include +! # endif /* HAVE_SYS_PTEM_H && TIOCGWINSZ && SIGWINCH */ +! #endif /* !STRUCT_WINSIZE_IN_SYS_IOCTL */ + + #include +--- 31,57 ---- + #include + +! /* Try to find the definitions of `struct winsize' and TIOGCWINSZ */ +! +! #if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ) +! # include +! #endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */ +! +! #if defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL) +! # include +! #endif /* STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */ +! +! /* Not in either of the standard places, look around. */ +! #if !defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL) +! # if defined (HAVE_SYS_STREAM_H) +! # include +! # endif /* HAVE_SYS_STREAM_H */ +! # if defined (HAVE_SYS_PTEM_H) /* SVR4.2, at least, has it here */ + # include +! # define _IO_PTEM_H /* work around SVR4.2 1.1.4 bug */ +! # endif /* HAVE_SYS_PTEM_H */ +! # if defined (HAVE_SYS_PTE_H) /* ??? */ +! # include +! # endif /* HAVE_SYS_PTE_H */ +! #endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */ + + #include +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-019 b/testing/source/bash/bash-4.0-patches/bash40-019 new file mode 100644 index 000000000..30efd6806 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-019 @@ -0,0 +1,125 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-019 + +Bug-Reported-by: Oleksiy Melnyk +Bug-Reference-ID: <20090224142233.D2FEFC004@floyd.upc.ua> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-02/msg00200.html + +Bug-Description: + +Using an external command as part of the DEBUG trap when job control is +enabled causes pipelines to misbehave. The problem has to do with process +groups assigned to the pipeline and terminal. + +Patch: + +*** ../bash-4.0-patched/jobs.c 2009-01-29 17:09:49.000000000 -0500 +--- jobs.c 2009-04-17 21:08:20.000000000 -0400 +*************** +*** 443,447 **** + the_pipeline = saved_pipeline; + already_making_children = saved_already_making_children; +! if (discard) + discard_pipeline (old_pipeline); + } +--- 443,447 ---- + the_pipeline = saved_pipeline; + already_making_children = saved_already_making_children; +! if (discard && old_pipeline) + discard_pipeline (old_pipeline); + } +*************** +*** 4203,4205 **** +--- 4204,4225 ---- + } + ++ void ++ save_pgrp_pipe (p, clear) ++ int *p; ++ int clear; ++ { ++ p[0] = pgrp_pipe[0]; ++ p[1] = pgrp_pipe[1]; ++ if (clear) ++ pgrp_pipe[0] = pgrp_pipe[1] = -1; ++ } ++ ++ void ++ restore_pgrp_pipe (p) ++ int *p; ++ { ++ pgrp_pipe[0] = p[0]; ++ pgrp_pipe[1] = p[1]; ++ } ++ + #endif /* PGRP_PIPE */ +*** ../bash-4.0-patched/jobs.h 2009-01-04 14:32:29.000000000 -0500 +--- jobs.h 2009-04-17 15:07:51.000000000 -0400 +*************** +*** 236,239 **** +--- 236,241 ---- + + extern void close_pgrp_pipe __P((void)); ++ extern void save_pgrp_pipe __P((int *, int)); ++ extern void restore_pgrp_pipe __P((int *)); + + #if defined (JOB_CONTROL) +*** ../bash-4.0-patched/trap.c 2009-01-16 17:07:53.000000000 -0500 +--- trap.c 2009-04-17 22:22:36.000000000 -0400 +*************** +*** 799,802 **** +--- 799,804 ---- + { + int trap_exit_value; ++ pid_t save_pgrp; ++ int save_pipe[2]; + + /* XXX - question: should the DEBUG trap inherit the RETURN trap? */ +*************** +*** 804,808 **** +--- 806,832 ---- + if ((sigmodes[DEBUG_TRAP] & SIG_TRAPPED) && ((sigmodes[DEBUG_TRAP] & SIG_IGNORED) == 0) && ((sigmodes[DEBUG_TRAP] & SIG_INPROGRESS) == 0)) + { ++ #if defined (JOB_CONTROL) ++ save_pgrp = pipeline_pgrp; ++ pipeline_pgrp = 0; ++ save_pipeline (1); ++ # if defined (PGRP_PIPE) ++ save_pgrp_pipe (save_pipe, 1); ++ # endif ++ stop_making_children (); ++ #endif ++ + trap_exit_value = _run_trap_internal (DEBUG_TRAP, "debug trap"); ++ ++ #if defined (JOB_CONTROL) ++ pipeline_pgrp = save_pgrp; ++ restore_pipeline (1); ++ # if defined (PGRP_PIPE) ++ close_pgrp_pipe (); ++ restore_pgrp_pipe (save_pipe); ++ # endif ++ if (pipeline_pgrp > 0) ++ give_terminal_to (pipeline_pgrp, 1); ++ notify_and_cleanup (); ++ #endif + + #if defined (DEBUGGER) +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-020 b/testing/source/bash/bash-4.0-patches/bash40-020 new file mode 100644 index 000000000..885f15efe --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-020 @@ -0,0 +1,83 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-020 + +Bug-Reported-by: Nicolai Lissner +Bug-Reference-ID: <20090412020510.GA29658@lilith> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00104.html + +Bug-Description: + +If a SIGWINCH arrives while bash is performing redisplay, multi-line prompts +are displayed incorrectly due to the display code being called recursively. + +Patch: + +*** ../bash-4.0-patched/lib/readline/readline.h 2009-01-04 14:32:33.000000000 -0500 +--- lib/readline/readline.h 2009-04-13 08:47:00.000000000 -0400 +*************** +*** 815,820 **** + #define RL_STATE_MULTIKEY 0x200000 /* reading multiple-key command */ + #define RL_STATE_VICMDONCE 0x400000 /* entered vi command mode at least once */ + +! #define RL_STATE_DONE 0x800000 /* done; accepted line */ + + #define RL_SETSTATE(x) (rl_readline_state |= (x)) +--- 815,821 ---- + #define RL_STATE_MULTIKEY 0x200000 /* reading multiple-key command */ + #define RL_STATE_VICMDONCE 0x400000 /* entered vi command mode at least once */ ++ #define RL_STATE_REDISPLAYING 0x800000 /* updating terminal display */ + +! #define RL_STATE_DONE 0x1000000 /* done; accepted line */ + + #define RL_SETSTATE(x) (rl_readline_state |= (x)) +*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000 -0500 +--- lib/readline/display.c 2009-04-13 08:29:54.000000000 -0400 +*************** +*** 513,516 **** +--- 513,517 ---- + data structures. */ + _rl_block_sigint (); ++ RL_SETSTATE (RL_STATE_REDISPLAYING); + + if (!rl_display_prompt) +*************** +*** 1237,1240 **** +--- 1238,1242 ---- + } + ++ RL_UNSETSTATE (RL_STATE_REDISPLAYING); + _rl_release_sigint (); + } +*** ../bash-4.0-patched/lib/readline/terminal.c 2009-01-04 14:32:34.000000000 -0500 +--- lib/readline/terminal.c 2009-04-13 08:43:00.000000000 -0400 +*************** +*** 356,360 **** + if (CUSTOM_REDISPLAY_FUNC ()) + rl_forced_update_display (); +! else + _rl_redisplay_after_sigwinch (); + } +--- 356,360 ---- + if (CUSTOM_REDISPLAY_FUNC ()) + rl_forced_update_display (); +! else if (RL_ISSTATE(RL_STATE_REDISPLAYING) == 0) + _rl_redisplay_after_sigwinch (); + } +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-021 b/testing/source/bash/bash-4.0-patches/bash40-021 new file mode 100644 index 000000000..cf6ee1f5a --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-021 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-021 + +Bug-Reported-by: Matt Zyzik +Bug-Reference-ID: <20090319015542.696F62B8E8@ice.filescope.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00149.html + +Bug-Description: + +When not in a locale supporting multibyte characters, readline will occasionally +not erase characters between the cursor position and the end of the line +when killing text backwards. + +Patch: + +*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000 -0500 +--- lib/readline/display.c 2009-04-14 14:00:18.000000000 -0400 +*************** +*** 1775,1779 **** + adjust col_lendiff based on the difference between _rl_last_c_pos + and _rl_screenwidth */ +! if (col_lendiff && (_rl_last_c_pos < _rl_screenwidth)) + #endif + { +--- 1775,1779 ---- + adjust col_lendiff based on the difference between _rl_last_c_pos + and _rl_screenwidth */ +! if (col_lendiff && ((MB_CUR_MAX == 1 || rl_byte_oriented) || (_rl_last_c_pos < _rl_screenwidth))) + #endif + { +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-022 b/testing/source/bash/bash-4.0-patches/bash40-022 new file mode 100644 index 000000000..5b6853805 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-022 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-022 + +Bug-Reported-by: Bernd Eggink +Bug-Reference-ID: <49E65407.5010206@sudrala.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00118.html + +Bug-Description: + +When parsing case statements in command substitutions, the shell did not +note that a newline is a shell metacharacter and can legally be followed +by a reserved word (e.g., `esac'). + +Patch: + +*** ../bash-4.0-patched/parse.y 2009-03-08 21:24:47.000000000 -0400 +--- parse.y 2009-04-15 22:27:56.000000000 -0400 +*************** +*** 3355,3359 **** + + /* Meta-characters that can introduce a reserved word. Not perfect yet. */ +! if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) && (tflags & LEX_INCOMMENT) == 0 && shellmeta(ch)) + { + /* Add this character. */ +--- 3375,3379 ---- + + /* Meta-characters that can introduce a reserved word. Not perfect yet. */ +! if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) && (tflags & LEX_INCOMMENT) == 0 && (shellmeta(ch) || ch == '\n')) + { + /* Add this character. */ +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-023 b/testing/source/bash/bash-4.0-patches/bash40-023 new file mode 100644 index 000000000..d2376c7da --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-023 @@ -0,0 +1,62 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-023 + +Bug-Reported-by: Andreas Schwab +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00160.html + +Bug-Description: + +If the prompt length exactly matches the screen width, and the prompt ends +with invisible characters, readline positions the cursor incorrectly. + +Patch: + +*** ../bash-4.0-patched/lib/readline/display.c 2009-01-04 14:32:32.000000000 -0500 +--- lib/readline/display.c 2009-04-25 21:42:18.000000000 -0400 +*************** +*** 1895,1898 **** +--- 1897,1904 ---- + woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; ++ ++ if (cpos == 0 && cpos == new) ++ return; ++ + #if defined (HANDLE_MULTIBYTE) + /* If we have multibyte characters, NEW is indexed by the buffer point in +*************** +*** 1908,1914 **** + desired display position. */ + if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ +! (prompt_physical_chars > _rl_screenwidth && + _rl_last_v_pos == prompt_last_screen_line && +! wrap_offset >= woff && + new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset))) + /* XXX last comparison might need to be >= */ +--- 1914,1920 ---- + desired display position. */ + if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ +! (prompt_physical_chars >= _rl_screenwidth && + _rl_last_v_pos == prompt_last_screen_line && +! wrap_offset >= woff && dpos >= woff && + new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset))) + /* XXX last comparison might need to be >= */ +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash-4.0-patches/bash40-024 b/testing/source/bash/bash-4.0-patches/bash40-024 new file mode 100644 index 000000000..ac2058ae3 --- /dev/null +++ b/testing/source/bash/bash-4.0-patches/bash40-024 @@ -0,0 +1,112 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 4.0 +Patch-ID: bash40-024 + +Bug-Reported-by: Matt Zyzik +Bug-Reference-ID: <20090405205428.4FDEA1C7175@ice.filescope.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-04/msg00021.html + +Bug-Description: + +When using the ** globbing operator, bash will incorrectly add an extra +directory name when the preceding directory name ends with `*' or an empty +string when there is no preceding directory name. + +Patch: + +*** ../bash-4.0-patched/lib/glob/glob.c 2009-01-04 14:32:30.000000000 -0500 +--- lib/glob/glob.c 2009-04-28 10:22:29.000000000 -0400 +*************** +*** 357,361 **** + if (ep) + *ep = 0; +! if (r) + free (r); + return (struct globval *)0; +--- 357,361 ---- + if (ep) + *ep = 0; +! if (r && r != &glob_error_return) + free (r); + return (struct globval *)0; +*************** +*** 666,671 **** + } + +! /* compat: if GX_ALLDIRS, add the passed directory also */ +! if (add_current) + { + sdlen = strlen (dir); +--- 666,672 ---- + } + +! /* compat: if GX_ALLDIRS, add the passed directory also, but don't add an +! empty directory name. */ +! if (add_current && (flags & GX_NULLDIR) == 0) + { + sdlen = strlen (dir); +*************** +*** 679,686 **** + nextlink->next = lastlink; + lastlink = nextlink; +! if (flags & GX_NULLDIR) +! nextname[0] = '\0'; +! else +! bcopy (dir, nextname, sdlen + 1); + ++count; + } +--- 680,684 ---- + nextlink->next = lastlink; + lastlink = nextlink; +! bcopy (dir, nextname, sdlen + 1); + ++count; + } +*************** +*** 943,947 **** + register unsigned int l; + +! array = glob_dir_to_array (directories[i], temp_results, flags); + l = 0; + while (array[l] != NULL) +--- 941,950 ---- + register unsigned int l; + +! /* If we're expanding **, we don't need to glue the directory +! name to the results; we've already done it in glob_vector */ +! if ((dflags & GX_ALLDIRS) && filename[0] == '*' && filename[1] == '*' && filename[2] == '\0') +! array = temp_results; +! else +! array = glob_dir_to_array (directories[i], temp_results, flags); + l = 0; + while (array[l] != NULL) +*************** +*** 960,964 **** + + /* Note that the elements of ARRAY are not freed. */ +! free ((char *) array); + } + } +--- 963,968 ---- + + /* Note that the elements of ARRAY are not freed. */ +! if (array != temp_results) +! free ((char *) array); + } + } +*** ../bash-4.0/patchlevel.h 2009-01-04 14:32:40.000000000 -0500 +--- patchlevel.h 2009-02-22 16:11:31.000000000 -0500 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/testing/source/bash/bash.SlackBuild b/testing/source/bash/bash.SlackBuild new file mode 100755 index 000000000..fba2b632f --- /dev/null +++ b/testing/source/bash/bash.SlackBuild @@ -0,0 +1,80 @@ +#!/bin/sh +# Set initial variables: +CWD=`pwd` +if [ "$TMP" = "" ]; then + TMP=/tmp +fi +PKG=$TMP/package-bash + +VERSION=4.0 +ARCH=${ARCH:-x86_64} +BUILD=${BUILD:-1} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +fi + +if [ ! -d $TMP ]; then + mkdir -p $TMP # location to build the source +fi +rm -rf $PKG +mkdir -p $PKG + +# Determine bash patchlevel: +PATCHLEVEL="$( cd $CWD/bash-${VERSION}-patches ; /bin/ls bash40-??? | tail -1 | cut -f 2 -d - 2> /dev/null )" +if [ "$PATCHLEVEL" = "" ]; then + PATCHLEVEL=0 +fi + +cd $TMP +rm -rf bash-$VERSION +tar xjvf $CWD/bash-$VERSION.tar.bz2 || exit 1 +cd bash-$VERSION || exit 1 +chown -R root:root . +find . -perm 664 | xargs chmod 644 +find . -perm 775 | xargs chmod 755 + +if [ -d $CWD/bash-${VERSION}-patches ]; then + ( cd $CWD/bash-${VERSION}-patches ; cat bash40-??? ) | patch -p0 --verbose || exit 1 +fi + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --build=$ARCH-slackware-linux +make -j4 || make || exit 1 +make install DESTDIR=$PKG +mv $PKG/usr/share/doc $PKG/usr +mkdir -p $PKG/bin +mv $PKG/usr/bin/bash $PKG/bin/bash4.new +strip --strip-unneeded $PKG/bin/bash4.new +# We don't include the "bashbug" script. +rm -rf $PKG/usr/bin $PKG/usr/man/man1/bashbug.1 +gzip -9 $PKG/usr/man/man1/* +mkdir -p $PKG/usr/doc/bash-$VERSION +cp -a AUTHORS CHANGES COMPAT COPYING INSTALL MANIFEST NEWS NOTES \ + README Y2K doc/FAQ doc/INTRO $PKG/usr/doc/bash-$VERSION +cd doc +groff -ms -Tascii article.ms > $PKG/usr/doc/bash-$VERSION/article.txt +# bash.1 is already installed by "make install" +for page in builtins.1 rbash.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bash-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz + diff --git a/testing/source/bash/doinst.sh b/testing/source/bash/doinst.sh new file mode 100644 index 000000000..867958fb8 --- /dev/null +++ b/testing/source/bash/doinst.sh @@ -0,0 +1,18 @@ +if [ -r bin/bash ]; then + mv bin/bash bin/bash.old +fi +mv bin/bash4.new bin/bash +if [ -f bin/bash.old ]; then + rm -f bin/bash.old +fi +if [ ! -r etc/shells ]; then + touch etc/shells + chmod 644 etc/shells +fi +if grep -wq /bin/bash etc/shells ; then + true +else + echo /bin/bash >> etc/shells +fi +( cd usr/bin ; rm -rf bash ) +( cd usr/bin ; ln -sf /bin/bash bash ) diff --git a/testing/source/bash/slack-desc b/testing/source/bash/slack-desc new file mode 100644 index 000000000..f2fdb9292 --- /dev/null +++ b/testing/source/bash/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +bash: bash (sh-compatible shell) +bash: +bash: The GNU Bourne-Again SHell. Bash is a sh-compatible command +bash: interpreter that executes commands read from the standard input or +bash: from a file. Bash also incorporates useful features from the Korn +bash: and C shells (ksh and csh). Bash is ultimately intended to be a +bash: conformant implementation of the IEEE Posix Shell and Tools +bash: specification (IEEE Working Group 1003.2). +bash: +bash: Bash must be present for the system to boot properly. +bash: diff --git a/testing/source/linux-2.6.30.5/config-generic-2.6.30.5 b/testing/source/linux-2.6.30.5/config-generic-2.6.30.5 new file mode 100644 index 000000000..95351f911 --- /dev/null +++ b/testing/source/linux-2.6.30.5/config-generic-2.6.30.5 @@ -0,0 +1,4310 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.30.5 +# Sat Aug 22 19:26:41 2009 +# +CONFIG_64BIT=y +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_FAST_CMPXCHG_LOCAL=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y +CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ZONE_DMA32=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_AUDIT_ARCH=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_64_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_TRAMPOLINE=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_TASKSTATS is not set +# CONFIG_AUDIT is not set + +# +# RCU Subsystem +# +CONFIG_CLASSIC_RCU=y +# CONFIG_TREE_RCU is not set +# CONFIG_PREEMPT_RCU is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_PREEMPT_RCU_TRACE is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +# CONFIG_GROUP_SCHED is not set +# CONFIG_CGROUPS is not set +# CONFIG_SYSFS_DEPRECATED_V2 is not set +# CONFIG_RELAY is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_MARKERS=y +CONFIG_OPROFILE=m +# CONFIG_OPROFILE_IBS is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_SLOW_WORK=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_INTEGRITY is not set +CONFIG_BLOCK_COMPAT=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_FREEZER=y + +# +# Processor type and features +# +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +# CONFIG_SPARSE_IRQ is not set +CONFIG_X86_MPPARSE=y +# CONFIG_X86_EXTENDED_PLATFORM is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +# CONFIG_PARAVIRT_GUEST is not set +CONFIG_MEMTEST=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_CPU=y +CONFIG_X86_L1_CACHE_BYTES=64 +CONFIG_X86_INTERNODE_CACHE_BYTES=64 +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR=y +# CONFIG_X86_DS is not set +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +# CONFIG_CALGARY_IOMMU is not set +# CONFIG_AMD_IOMMU is not set +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +# CONFIG_IOMMU_API is not set +CONFIG_NR_CPUS=32 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_THRESHOLD=y +CONFIG_I8K=m +CONFIG_MICROCODE=m +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +CONFIG_X86_CPU_DEBUG=m +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_DIRECT_GBPAGES=y +# CONFIG_NUMA is not set +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y + +# +# Memory hotplug is currently incompatible with Software Suspend +# +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_UNEVICTABLE_LRU=y +CONFIG_HAVE_MLOCK=y +CONFIG_HAVE_MLOCKED_PAGE_BIT=y +CONFIG_MMU_NOTIFIER=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +# CONFIG_X86_PAT is not set +# CONFIG_EFI is not set +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR_ALL=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +# CONFIG_SCHED_HRTICK is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x200000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_HOTPLUG_CPU=y +CONFIG_COMPAT_VDSO=y +# CONFIG_CMDLINE_BOOL is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="\"\"" +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_PCI_SLOT=m +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +# CONFIG_ACPI_SBS is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=m +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=m +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_P4_CLOCKMOD=m + +# +# shared options +# +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y + +# +# Memory power savings +# +CONFIG_I7300_IDLE_IOAT_CHANNEL=y +CONFIG_I7300_IDLE=m + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +# CONFIG_DMAR is not set +# CONFIG_INTR_REMAP is not set +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +# CONFIG_PCIEASPM is not set +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_STUB is not set +CONFIG_HT_IRQ=y +# CONFIG_PCI_IOV is not set +CONFIG_ISA_DMA_API=y +CONFIG_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_BINFMT_MISC=m +CONFIG_IA32_EMULATION=y +CONFIG_IA32_AOUT=m +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETLABEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_EVENTS is not set +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_IPV6 is not set +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m + +# +# DECnet: Netfilter Configuration +# +# CONFIG_DECNET_NF_GRABULATOR is not set +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m + +# +# DCCP CCIDs Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +# CONFIG_IP_DCCP_CCID3 is not set +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y +# CONFIG_RDS is not set +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +# CONFIG_NET_DSA is not set +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +CONFIG_WAN_ROUTER=m +CONFIG_PHONET=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +# CONFIG_NET_EMATCH is not set +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=y +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m +CONFIG_CAN=m +CONFIG_CAN_RAW=m +CONFIG_CAN_BCM=m + +# +# CAN Device Drivers +# +CONFIG_CAN_VCAN=m +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_CFG80211=m +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_WIRELESS_OLD_REGULATORY=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m + +# +# Rate control algorithm selection +# +CONFIG_MAC80211_RC_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +CONFIG_NET_9P=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_9P_RDMA=m +# CONFIG_NET_9P_DEBUG is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=m +CONFIG_MTD=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_TESTS=m +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +CONFIG_MTD_AR7_PARTS=m + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_HAVE_MTD_OTP=y +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +CONFIG_MTD_OOPS=m + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_MAP_BANK_WIDTH_8=y +CONFIG_MTD_MAP_BANK_WIDTH_16=y +CONFIG_MTD_MAP_BANK_WIDTH_32=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +CONFIG_MTD_CFI_I4=y +CONFIG_MTD_CFI_I8=y +CONFIG_MTD_OTP=y +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_TS5500=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +CONFIG_MTD_PMC551_BUGFIX=y +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE_ADVANCED=y +CONFIG_MTD_DOCPROBE_ADDRESS=0x0000 +CONFIG_MTD_DOCPROBE_HIGH=y +CONFIG_MTD_DOCPROBE_55AA=y +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_VERIFY_WRITE=y +CONFIG_MTD_NAND_ECC_SMC=y +CONFIG_MTD_NAND_MUSEUM_IDS=y +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y +CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_ONENAND_OTP=y +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_SIM=m + +# +# LPDDR flash memory drivers +# +CONFIG_MTD_LPDDR=m +CONFIG_MTD_QINFO_PROBE=m + +# +# UBI - Unsorted block images +# +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_GLUEBI=y + +# +# UBI debugging options +# +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=y +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +CONFIG_PARIDE_EPATC8=y +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_VIRTIO_BLK=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_HP_ILO=m +CONFIG_DELL_LAPTOP=m +CONFIG_ISL29003=m +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_93CX6=m +CONFIG_HAVE_IDE=y +CONFIG_IDE=y + +# +# Please see Documentation/ide/ide.txt for help/info on IDE drives +# +CONFIG_IDE_XFER_MODE=y +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_ATAPI=y +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_IDE_GD=y +CONFIG_IDE_GD_ATA=y +CONFIG_IDE_GD_ATAPI=y +CONFIG_BLK_DEV_IDECS=m +CONFIG_BLK_DEV_DELKIN=m +CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_BLK_DEV_IDEACPI=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +CONFIG_BLK_DEV_CMD640=y +CONFIG_BLK_DEV_CMD640_ENHANCED=y +CONFIG_BLK_DEV_IDEPNP=y +CONFIG_BLK_DEV_IDEDMA_SFF=y + +# +# PCI IDE chipsets support +# +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_PCIBUS_ORDER=y +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_RZ1000=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_AEC62XX=y +CONFIG_BLK_DEV_ALI15X3=y +CONFIG_BLK_DEV_AMD74XX=y +CONFIG_BLK_DEV_ATIIXP=y +CONFIG_BLK_DEV_CMD64X=y +CONFIG_BLK_DEV_TRIFLEX=y +CONFIG_BLK_DEV_CS5520=y +CONFIG_BLK_DEV_CS5530=y +CONFIG_BLK_DEV_HPT366=y +CONFIG_BLK_DEV_JMICRON=y +CONFIG_BLK_DEV_SC1200=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_BLK_DEV_IT8172=y +CONFIG_BLK_DEV_IT8213=y +CONFIG_BLK_DEV_IT821X=y +# CONFIG_BLK_DEV_NS87415 is not set +CONFIG_BLK_DEV_PDC202XX_OLD=y +CONFIG_BLK_DEV_PDC202XX_NEW=y +CONFIG_BLK_DEV_SVWKS=y +CONFIG_BLK_DEV_SIIMAGE=y +CONFIG_BLK_DEV_SIS5513=y +CONFIG_BLK_DEV_SLC90E66=y +CONFIG_BLK_DEV_TRM290=y +CONFIG_BLK_DEV_VIA82CXXX=y +CONFIG_BLK_DEV_TC86C001=y +CONFIG_BLK_DEV_IDEDMA=y + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=y +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=y +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=4 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_SCSI_ARCMSR_AER is not set +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_MPT2SAS=m +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +# CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_FCOE=m +CONFIG_FCOE_FNIC=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_MVSAS=m +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y +CONFIG_SATA_SVW=y +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SX4=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y +CONFIG_SATA_INIC162X=y +CONFIG_PATA_ACPI=y +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_ATA_GENERIC=y +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +CONFIG_PATA_HPT3X3_DMA=y +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=y +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_SCH=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=y +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID456=y +CONFIG_MD_RAID6_PQ=y +CONFIG_MD_MULTIPATH=y +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=y +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=y +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +# CONFIG_DM_DELAY is not set +# CONFIG_DM_UEVENT is not set +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +# CONFIG_FUSION_LOGGING is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# Enable only one of the two stacks, unless you know what you are doing +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=m +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_DV1394=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_I2O=m +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=m +# CONFIG_I2O_CONFIG_OLD_IOCTL is not set +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +CONFIG_COMPAT_NET_DEV_OPS=y +CONFIG_IFB=m +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_MACVLAN=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_NET_SB1000=m +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_ETHOC=m +CONFIG_DNET=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +CONFIG_TULIP_MMIO=y +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_HP100=m +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +CONFIG_AMD8111_ETH=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +CONFIG_FORCEDETH_NAPI=y +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R6040=m +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SMSC9420=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_SC92031=m +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_ATL2=m +CONFIG_NETDEV_1000=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_IGB=m +CONFIG_IGB_DCA=y +CONFIG_IGBVF=m +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +CONFIG_R8169_VLAN=y +CONFIG_SIS190=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_JME=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3_DEPENDS=y +CONFIG_CHELSIO_T3=m +CONFIG_ENIC=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGB=m +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_NETXEN_NIC=m +CONFIG_NIU=m +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_TEHUTI=m +CONFIG_BNX2X=m +CONFIG_QLGE=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_BE2NET=m +CONFIG_TR=y +CONFIG_IBMOL=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_ABYSS=m + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM=m +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_AIRO=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +# CONFIG_MAC80211_HWSIM is not set +CONFIG_MWL8K=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +CONFIG_P54_LEDS=y +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH9K=m +# CONFIG_ATH9K_DEBUG is not set +CONFIG_AR9170_USB=m +CONFIG_AR9170_LEDS=y +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_IWLWIFI=m +CONFIG_IWLWIFI_LEDS=y +# CONFIG_IWLWIFI_RFKILL is not set +# CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT is not set +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLAGN=m +CONFIG_IWL4965=y +CONFIG_IWL5000=y +CONFIG_IWL3945=m +CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCMCIA=y +CONFIG_B43_PIO=y +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_RFKILL=y +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT61PCI=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m + +# +# WiMAX Wireless Broadband devices +# +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WIMAX_I2400M_SDIO=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +# CONFIG_USB_KC2190 is not set +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_HSO=m +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_WAN=y +CONFIG_LANMEDIA=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +# CONFIG_PC300TOO is not set +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +# CONFIG_DSCC4_PCISYNC is not set +# CONFIG_DSCC4_PCI_RST is not set +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_DUMMY=m +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +# CONFIG_ATM_HE_USE_SUNI is not set +CONFIG_ATM_SOLOS=m +CONFIG_FDDI=y +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_SKFP=m +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_PLIP=m +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +CONFIG_PPPOATM=m +CONFIG_PPPOL2TP=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLHC=m +CONFIG_SLIP_SMART=y +# CONFIG_SLIP_MODE_SLIP6 is not set +CONFIG_NET_FC=y +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +CONFIG_HISAX_NO_SENDCOMPLETE=y +CONFIG_HISAX_NO_LLC=y +CONFIG_HISAX_NO_KEYPAD=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_BKM_A4T=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_W6692=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_ENTERNOW_PCI=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_TELES_CS=m + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_HDLC=y + +# +# Active cards +# +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +# CONFIG_GIGASET_M101 is not set +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y +CONFIG_INPUT_POLLDEV=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOUSE_GPIO=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_AD7879_I2C=m +CONFIG_TOUCHSCREEN_AD7879=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_UINPUT=m +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_DEVKMEM=y +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_COMPUTONE=m +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_DIGIEPCA=m +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +CONFIG_ISI=m +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m +CONFIG_N_HDLC=m +CONFIG_RISCOM8=m +CONFIG_SPECIALIX=m +CONFIG_SX=m +CONFIG_RIO=m +# CONFIG_RIO_OLDPCI is not set +CONFIG_STALDRV=y +CONFIG_STALLION=m +CONFIG_ISTALLION=m +CONFIG_NOZOMI=m + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +CONFIG_LP_CONSOLE=y +CONFIG_PPDEV=m +CONFIG_HVC_DRIVER=y +CONFIG_VIRTIO_CONSOLE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_NVRAM=m +CONFIG_R3964=m +CONFIG_APPLICOM=m + +# +# PCMCIA character devices +# +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_IPWIRELESS=m +CONFIG_MWAVE=m +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +CONFIG_HANGCHECK_TIMER=m +CONFIG_TCG_TPM=m +# CONFIG_TCG_TIS is not set +# CONFIG_TCG_NSC is not set +CONFIG_TCG_ATMEL=m +# CONFIG_TCG_INFINEON is not set +CONFIG_TELCLOCK=m +CONFIG_DEVPORT=y +CONFIG_I2C=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_ISCH=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_GPIO=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_SIMTEC=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Graphics adapter I2C/DDC channel drivers +# +CONFIG_I2C_VOODOO3=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_STUB=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_DS1682=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_TSL2550=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_SPI is not set +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO expanders: +# + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PDA_POWER=m +CONFIG_WM8350_POWER=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_BQ27x00=m +CONFIG_CHARGER_PCF50633=m +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7473=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATK0110=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_THERMAL=m +CONFIG_THERMAL_HWMON=y +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_HP_WATCHDOG=m +CONFIG_SC1200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83697UG_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SPROM=y +CONFIG_SSB_BLOCKIO=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_PCMCIAHOST=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=m +# CONFIG_MFD_SM501 is not set +CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS65010=m +# CONFIG_MFD_TMIO is not set +CONFIG_MFD_WM8400=m +CONFIG_MFD_WM8350=m +CONFIG_MFD_WM8350_I2C=m +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +# CONFIG_REGULATOR is not set + +# +# Multimedia devices +# + +# +# Multimedia core support +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_ALLOW_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_DVB_CORE=m +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L1=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m + +# +# Encoders/decoders and other helper chips +# + +# +# Audio decoders +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m + +# +# RDS decoders +# +CONFIG_VIDEO_SAA6588=m + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TVP514X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# MPEG video encoders +# +CONFIG_VIDEO_CX2341X=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_V4L_USB_DRIVERS=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_USB_DSBR=m +CONFIG_USB_SI470X=m +CONFIG_USB_MR800=m +CONFIG_RADIO_TEA5764=m +# CONFIG_DVB_DYNAMIC_MINORS is not set +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_SIANO_SMS1XXX=m +CONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported SDMC DM1105 Adapters +# +CONFIG_DVB_DM1105=m + +# +# Supported FireWire (IEEE 1394) Adapters +# +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_IEEE1394=y +CONFIG_DVB_FIREDTV_INPUT=y + +# +# Supported DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# Customise DVB Frontends +# + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_SI21XX=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRX397XD=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3304=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_LGS8GL5=m +CONFIG_DVB_LGS8GXX=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DAB=y +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=m +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +# CONFIG_DRM_I915_KMS is not set +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +CONFIG_VGASTATE=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_DDC=m +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_HECUBA=m +CONFIG_FB_SVGALIB=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set +CONFIG_FB_CYBER2000=m +CONFIG_FB_ARC=m +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=m +# CONFIG_FB_UVESA is not set +CONFIG_FB_VESA=y +CONFIG_FB_N411=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_BACKLIGHT=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_I2C=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_BACKLIGHT=y +CONFIG_FB_LE80578=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_VIA=m +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_3DFX_I2C=y +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_TRIDENT=m +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +# CONFIG_CARMINE_DRAM_CUSTOM is not set +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_METRONOME=m +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_FB_BROADSHEET=m +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +# CONFIG_LCD_ILI9320 is not set +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_SAHARA=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=m + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_VGACON_SOFT_SCROLLBACK=y +CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB16_DSP=m +CONFIG_SND_PCI=y +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +# CONFIG_SND_HDA_RECONFIG is not set +# CONFIG_SND_HDA_INPUT_BEEP is not set +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_NVHDMI=y +CONFIG_SND_HDA_CODEC_INTELHDMI=y +CONFIG_SND_HDA_ELD=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +# CONFIG_SND_HDA_POWER_SAVE is not set +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HIFIER=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_PCMCIA=y +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m +# CONFIG_SND_SOC is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=m +CONFIG_HID_PID=y +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=m +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_DRAGONRISE_FF=m +CONFIG_HID_EZKEY=m +CONFIG_HID_KYE=m +CONFIG_HID_GYRATION=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_LOGITECH=m +CONFIG_LOGITECH_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_NTRIG=m +CONFIG_HID_PANTHERLORD=m +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_HID_SUNPLUS=m +CONFIG_GREENASIA_FF=m +CONFIG_HID_TOPSEED=m +CONFIG_THRUSTMASTER_FF=m +CONFIG_ZEROPLUS_FF=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set +CONFIG_USB_MON=y +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD_SSB=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_HWA_HCD=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +CONFIG_USB_SERIAL_SAFE_PADDED=y +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_DEBUG=m + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_TEST=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_VST=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m +CONFIG_NOP_USB_XCEIV=m +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_WHCI=m +CONFIG_UWB_WLP=m +CONFIG_UWB_I1480U=m +CONFIG_UWB_I1480U_WLP=m +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_RICOH_MMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +CONFIG_MEMSTICK_TIFM_MS=m +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +CONFIG_LEDS_ALIX2=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_GPIO_PLATFORM=y +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_WM8350=m +CONFIG_LEDS_BD2802=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_ACCESSIBILITY=y +CONFIG_A11Y_BRAILLE_CONSOLE=y +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set +# CONFIG_INFINIBAND_CXGB3 is not set +CONFIG_MLX4_INFINIBAND=m +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_IPOIB=m +# CONFIG_INFINIBAND_IPOIB_CM is not set +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=m +CONFIG_RTC_CLASS=m + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_TEST=m + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_PCF50633=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_DMATEST=m +CONFIG_DCA=m +CONFIG_AUXDISPLAY=y +# CONFIG_KS0108 is not set +CONFIG_UIO=m +CONFIG_UIO_CIF=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SMX=m +CONFIG_UIO_AEC=m +CONFIG_UIO_SERCOS3=m +CONFIG_STAGING=y +# CONFIG_STAGING_EXCLUDE_BUILD is not set +# CONFIG_ET131X is not set +# CONFIG_SLICOSS is not set +# CONFIG_SXG is not set +# CONFIG_ME4000 is not set +# CONFIG_MEILHAUS is not set +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_USB_IP_COMMON is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_USB_ATMEL is not set +# CONFIG_POCH is not set +# CONFIG_AGNX is not set +# CONFIG_OTUS is not set +CONFIG_RT2860=m +CONFIG_RT2870=m +CONFIG_RT3070=m +# CONFIG_COMEDI is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_ALTERA_PCIE_CHDMA is not set +CONFIG_RTL8187SE=m +# CONFIG_INPUT_MIMIO is not set +# CONFIG_TRANZPORT is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_ANDROID_BINDER_IPC is not set +# CONFIG_ANDROID_LOGGER is not set +# CONFIG_ANDROID_RAM_CONSOLE is not set +# CONFIG_ANDROID_TIMED_GPIO is not set +# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set +CONFIG_DST=m +# CONFIG_DST_DEBUG is not set +CONFIG_POHMELFS=m +# CONFIG_POHMELFS_DEBUG is not set +# CONFIG_POHMELFS_CRYPTO is not set +CONFIG_USB_SERIAL_ATEN2011=m +CONFIG_B3DFG=m +CONFIG_IDE_PHISON=m +CONFIG_PLAN9AUTH=m +CONFIG_HECI=m +CONFIG_LINE6_USB=m +CONFIG_USB_SERIAL_QUATECH_ESU100=m +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_ACER_WMI=m +CONFIG_ASUS_LAPTOP=m +CONFIG_DELL_WMI=m +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_HP_WMI=m +CONFIG_MSI_LAPTOP=m +CONFIG_PANASONIC_LAPTOP=m +CONFIG_COMPAL_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set +# CONFIG_THINKPAD_ACPI_DEBUG is not set +# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_INTEL_MENLOW=m +CONFIG_EEEPC_LAPTOP=m +CONFIG_ACPI_WMI=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m + +# +# Firmware Drivers +# +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m +CONFIG_DMIID=y +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_IBFT=m + +# +# File systems +# +CONFIG_EXT2_FS=m +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=m +# CONFIG_EXT4DEV_COMPAT is not set +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_JBD2=m +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_DEBUG is not set +CONFIG_GFS2_FS=m +# CONFIG_GFS2_FS_LOCKING_DLM is not set +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +# CONFIG_OCFS2_FS_STATS is not set +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_OCFS2_FS_POSIX_ACL=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_FILE_LOCKING=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS_FS=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_GENERIC_ACL=y + +# +# Caches +# +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_STATS is not set +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=m +CONFIG_MISC_FILESYSTEMS=y +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +# CONFIG_ECRYPT_FS is not set +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +CONFIG_UBIFS_FS=m +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_FS_DEBUG is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_EMBEDDED=y +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_VXFS_FS=m +CONFIG_MINIX_FS=m +CONFIG_OMFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_ROMFS_FS=y +CONFIG_ROMFS_BACKED_BY_BLOCK=y +# CONFIG_ROMFS_BACKED_BY_MTD is not set +# CONFIG_ROMFS_BACKED_BY_BOTH is not set +CONFIG_ROMFS_ON_BLOCK=y +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_EXOFS_FS=m +# CONFIG_EXOFS_DEBUG is not set +CONFIG_NILFS2_FS=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_FSCACHE is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +# CONFIG_CIFS_UPCALL is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_DFS_UPCALL is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_SMALLDOS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=m +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +# CONFIG_AFS_FSCACHE is not set +CONFIG_9P_FS=m + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +CONFIG_SOLARIS_X86_PARTITION=y +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=0 +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_STACKTRACE=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +# CONFIG_FRAME_POINTER is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +# CONFIG_LATENCYTOP is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FTRACE_SYSCALLS=y +CONFIG_RING_BUFFER=y +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y + +# +# Tracers +# +# CONFIG_FUNCTION_TRACER is not set +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_SYSPROF_TRACER=y +# CONFIG_SCHED_TRACER is not set +CONFIG_CONTEXT_SWITCH_TRACER=y +# CONFIG_EVENT_TRACER is not set +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_BOOT_TRACER is not set +# CONFIG_TRACE_BRANCH_PROFILING is not set +# CONFIG_POWER_TRACER is not set +# CONFIG_STACK_TRACER is not set +# CONFIG_KMEMTRACE is not set +# CONFIG_WORKQUEUE_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_MMIOTRACE is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_STRICT_DEVMEM=y +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEFAULT_IO_DELAY_TYPE=0 +# CONFIG_OPTIMIZE_INLINING is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_NETWORK_XFRM=y +# CONFIG_SECURITY_PATH is not set +CONFIG_SECURITY_FILE_CAPABILITIES=y +# CONFIG_SECURITY_ROOTPLUG is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_IMA is not set +CONFIG_XOR_BLOCKS=y +CONFIG_ASYNC_CORE=y +CONFIG_ASYNC_MEMCPY=y +CONFIG_ASYNC_XOR=y +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_AUTHENC=y +CONFIG_CRYPTO_TEST=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_PCBC=y +CONFIG_CRYPTO_XTS=y + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=y + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=m +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_TGR192=y +CONFIG_CRYPTO_WP512=y + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_X86_64=y +CONFIG_CRYPTO_AES_NI_INTEL=y +CONFIG_CRYPTO_ANUBIS=y +CONFIG_CRYPTO_ARC4=y +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_CAST5=y +CONFIG_CRYPTO_CAST6=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_FCRYPT=y +CONFIG_CRYPTO_KHAZAD=y +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=y +CONFIG_CRYPTO_SERPENT=y +CONFIG_CRYPTO_TEA=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_TWOFISH_COMMON=y +CONFIG_CRYPTO_TWOFISH_X86_64=y + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_ZLIB=y +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +# CONFIG_KVM_TRACE is not set +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC_T10DIF=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y +CONFIG_NLATTR=y diff --git a/usb-and-pxe-installers/README_PXE.TXT b/usb-and-pxe-installers/README_PXE.TXT new file mode 100644 index 000000000..1912f3e9d --- /dev/null +++ b/usb-and-pxe-installers/README_PXE.TXT @@ -0,0 +1,776 @@ + +PXE: Installing Slackware over the network +========================================== + + +Introduction +------------ + + When the time comes to install Slackware on your computer, you have a +limited number of options regarding the location of your Slackware +packages. Either you install them from the (un)official Slackware CDROM or +DVD, or you copy them to a pre-existing hard disk partition before starting +the installation procedure, or you fetch the packages from a network server +(using either NFS, HTTP or FTP protocol). + + The number of available options for booting your Slackware installer is +similarly limited: either you boot your computer from the bootable first +CDROM of the Slackware CD set, or from the DVD, or using a USB stick. There +is even loadlin, the DOS based Linux starter, but lets not concern ourselves +with the past today. Slackware 12.0 abandoned the floppy boot altogether. + + What if your PC is lacking a CDROM drive and refuses to boot from a USB +stick? Brands of PCs are on the market today (ultra-portable laptops for +instance) that are unable to install Slackware the traditional way. However, +these machines are commonly equipped with network peripherals, like bluetooth, +wireless and wired network cards. How to solve this dilemma? Buy an external +CD drive? + + Well, there is another way of booting your computer that the Slackware +installer supports. That is the 'network boot'. Network boot, or PXE boot, +requires support from your computers network card and BIOS. +Also, instead of installing packages from a Slackware CDROM set or DVD, you +will need a network server that can instruct your computer how to fetch those +packages from the network. + + In this README, I will show you how to perform an installation that uses +the network as the carrier medium, with a server on the local network that +holds the boot kernel and the root filesystem (which contains the setup +program), and also has all the Slackware packages. This means, there is no +need for a floppy or CDROM drive. + + Be warned: setting it all up is not trivial, and you need more than a +beginners level of Linux knowledge, but this text and the accompanying +example scripts in the last section should get you up and running even if +you do not completely understand what is going on :-) + + +PXE boot explained +------------------ + + The commonly used method of booting a computer over the network is +called PXE or 'Preboot Execution Environment'. If you want your computer to +boot using PXE, it needs a network card with PXE-capable firmware, and a +BIOS that supports network boot. Most modern network cards (and computers) +sold on the market today support this. When a computer boots from the +network, it is the network card that downloads the bootloader, kernel and +a filesystem - any Operating System that might already be installed on the +computer will be untouched. You can just as well boot a diskless computer +using PXE - in fact this is how Thin Clients and the Linux Terminal Server +Project work. + + Of course, the other end of the network needs our attention, too. A +PXE server needs to be available on the local network. The PXE firmware in +your computers network card will contact this server in order to fetch some +kind of bootable program code and bootstrap itself. What happens after the +computer boots up has no longer anything to do with the PXE boot stage, it +is the bootstrapping process were interested in. +We will cover the requirements for such a server in one of the next +paragraphs. + + +The stages of a Slackware PXE install +------------------------------------- + + The Slackware network installation process will be roughly as follows: + +(1) You start the computer that is going to receive Slackware + +(2) On startup, you make sure you select network boot in the BIOS startup - + either by activating a custom startup sequence, or by entering a boot menu + after pressing a function key like 'F12', or else by preselecting network + boot as first option in the BIOS. + +(3) When the computer boots, the network card activates its PXE code and + tries to contact a PXE server. When such a server exists on the LAN, + it will tell the card where to download a piece of bootable code, an + Operating System kernel (the Slackware Linux kernel) and an initial + ramdisk (aka initrd - the compressed root-filesystem image where the + setup program, libraries and kernel modules are stored). + You will see a page full of mumbo-jumbo as the card broadcasts on the + LAN, and probes for possible candidate configurations to download; + +(4) If a willing PXE server is found, your computer's network card will + then download a kernel and initrd, boot the Linux kernel, unpack the + initrd into a ramdisk and start the Slackware installer's initialization + sequence. + + This is where you'll be in familiar territory again, since this is exactly + what happens if you had booted from a CDROM or a floppy. But the fun is + not over... + Since we booted the computer using code that did not originate from our + computer, we will have to fetch the remainder of the data - the Slackware + packages - from the network as well. It's just that the freshly booted + Linux kernel has no idea how it came to be running on the computer: you + will have to initialize the network all over again. The network card's + PXE firmware has done its job and is no longer in the picture. So: + +(5) We need to load a kernel driver for our network card and locate a network + server that holds the Slackware package tree. Currently, you can choose + between installing from a NFS server, a Samba server or a HTTP/FTP + server. Before starting cfdisk and setup, we need to run the ('pcmcia' + and/or) 'network' command to probe the network card and load a suitable + driver. If your network card is not supported by any of the available + drivers, you are out of luck and will have to rethink your options. + +(6) From here on, installation proceeds as usual, under the condition that + you select 'Install from NFS (Network File System)', 'Install from + FTP/HTTP server' or 'Install from Samba share' as the source of the + Slackware packages. + + +Workstation requirements +------------------------ + +As stated before, the requirements for the computer you want to install +Slackware on, are as follows: + +(1) Network card (non-wireless) with PXE firmware, supported by Slackware + +(2) PC BIOS allowing to select 'network boot' + + No other requirements have to be met for a network install, other than +those you'd already have to meet in order to be able to install and run +Slackware. + + +Server requirements +------------------- + + This is the interesting part (well in my opinion at least - many people +consider this as a dark art). A PXE Server is really a mix of several +components. We need: + +(1) A service that understands the BOOTP protocol. BOOTP is a network + protocol somewhat like DHCP, and it is used by the PXE firmware to + broadcast on the network its desire to find a suitable server to download + the bootstrap code from. The DHCP Server packages that are part of + Slackware fulfill this requirement, since they talk BOOTP as well as DHCP. + The packages are dhcpd and dnsmasq; pick the one you like most. + +(2) A download service for the bootstrap code. A TFTP (trivial file + transfer protocol) server is needed for this. Slackware ships with an + implementation of a TFTP server called tftpd-hpa which does what we need. + +(3) And for the Slackware installer, a NFS, HTTP, FTP or Samba server is + required because we must perform a network install. We can use + Slackware's stock NFS, HTTP, FTP or Samba server for this. + + +Configuration of the BOOTP/DHCP/TFTP/NFS services +-------------------------------------------------- + + We'll look at how to set up the DHCP, TFTP and NFS services on a +Slackware computer so that they work together as a PXE server. It is left as +an excercise for the user to find out how to configure Apache (HTTP) or +proftpd (FTP) in case installation over HTTP or FTP is preferred. In later +examples, I will assume that the following URL's are valid for your HTTP/FTP +server: + http://192.168.0.1/mirror/slackware/slackware-13.0 + ftp://192.168.0.1/pub/mirror/slackware/slackware-13.0 + + The server will run all required services, i.e. acts as the LANs +DNS, DHCP, TFTP and NFS (or HTTP/FTP/Samba) server. If you decide to +separate DHCP and TFTP services onto two different servers (it does not +matter where the NFS/HTTP/FTP/Samba server runs), I have included information +about what you should be aware of in the next section on DHCP. + + For ease of instruction, I will make a number of assumptions. These +assumptions are reflected in IP addresses and address ranges that I use in +my examples, in the names of directories, computers and network domains. +This means that if you use the examples in this article, you should make +certain that you replace all occurrences of these specifics with values +that apply to your own network. + +(*) Our example network uses IP addresses in the range of 192.168.0.0 to + 192.168.0.254. This is equivalent to a network range 192.168.0.0/24 or + 192.168.0.0/255.255.255.0. + +(*) Our network server will have the IP address of 192.168.0.1 and the + default gateway is 192.168.0.10. Server and gateway can be (but do not + need to be) the same physical machine. + +(*) The IP address range that the DHCP server will use for leasing to + DHCP/BOOTP enabled computers is 192.168.0.50 to 192.168.0.100. + This leaves enough room to have lots of machines with fixed IP addresses, + if you need them. + +(*) The DNS domain will be "my.lan". + +(*) Directories are used as follows: + Top level of the complete Slackware 13.0 directory tree (excluding the + source code if you're short on disk space) is + "/mirror/slackware/slackware-13.0" + +(*) The directory where we store the boot files for the TFTP server is + "/tftpboot/slackware-13.0" + + +DHCP +---- + + You probably already have a DHCP server running on your network. You +can try and modify its configuration so that it will do want we want, or if +that is impossible (for instance because the DHCP server is running on your +DSL/Cable router) you could consider disabling that and setting up a +Slackware DHCP server for your LAN with much enhanced functionality. + + Slackware includes the ISC DHCP server package (dhcpd). Two example +"/etc/dhcpd.conf" configuration files for this DHCP Server are included in the +last section of the article. + + If you don't want to be bothered with fancy configurations but want a +quick solution that will just work for your network, use the first (simple) +example /etc/dhcpd.conf configuration file as well as the provided +/etc/rc.d/rc.dhcpd start script and you'll be up and running in minutes. +It requires no editing of files, the examples will work out of the box. + + If you know what you're doing and understand (more or less) how the +DHCP server works, you can have a look at the second, more complex, +/etc/dhcpd.conf example which has more features and offers control over +what computers are allowed to do a network boot. + + The rest of this chapter deals with the setup of a complex DHCP +configuration. + + By default, we should not allow network boots in our network (which is +safer of course - imagine a computer that does an un-intended network boot +and suddenly finds itself running the Slackware installer!). In the +/etc/dhcpd.conf configuration file, we add a 'group' section were we can add +those computers that we allow as network boot clients; the typical host +statement for a computer looks like this + +host t43 { + hardware ethernet 00:12:34:56:78:9a; + fixed-address 192.168.0.3; +} + + Nothing spectacular; a computer is defined by the network card's +hardware address (MAC address) and we instruct the DHCP Server to always +assign it the same IP address. The boot-specific parameters are all contained +in the 'group' block and look like this: + +group { + allow bootp; + next-server 192.168.0.1; + use-host-decl-names on; + if substring (option vendor-class-identifier, 0, 9) = "PXEClient" { + filename "/slackware-13.0/pxelinux.0"; + } + + host ABC { + ..... + } + + host XYZ { + ..... + } +} + + This enables the DHCP server to detect network boot clients that use PXE +and serves them the PXElinux boot loader we make available at +"/slackware-13.0/pxelinux.0". What this boot loader does will be explained +further down the article. + + The 'next-server' parameter contains the IP address of the TFTP server. +This will often be identical to the DHCP server's IP address, but if you +have a TFTP server that is running on a different IP address than the DHCP +server (i.e. they run on separate servers) you will have to add the remote +IP address instead, like this (assuming the TFTP server is running on IP +address 192.168.0.254): + +next-server 192.168.0.254; + + If you are running a version of the 'ISC' dhcpd program that is >= 3.0.3, +then the addition of a "next-server ;" line is mandatory. For older +releases this was only needed if the TFTP and DHCP Servers actually had +different addresses. + + If you fail to set the 'next-server' address, the 'siaddr' field in the +data returned to the client is set to zero where in the past it would +default to the DHCP server's own IP address (which often happened to be the +IP address of the TFTP server as well). The PXE client uses the 'siaddr' +field to determine the IP address of the TFTP server and so the PXE booting +will stall at the point of looking for a TFTP server. + + If you are already using 'dnsmasq' as your DNS/DHCP server, then the +above instructions for the ISC DHCP server are not applicable to your +setup. Instead, you have to configure dnsmasq with this equivalent parameter: + + dnsmasq --dhcp-boot=/slackware-13.0/pxelinux.0,"192.168.0.1",192.168.0.1 + +or add this line to your /etc/dnsmasq.conf: + + dhcp-boot=/slackware-13.0/pxelinux.0,"192.168.0.1",192.168.0.1 + +The IP address "192.168.0.1" occurs twice; they should always be identical, +and be the address of your TFTP server. + + +TFTP +---- + + The tftpd service is managed by inetd. Enable the line for tftpd in +the file "/etc/inetd.conf" by removing the comment character at the beginning +of the line: + + tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -v -s /tftpboot -r blksize + +and reload inetd: + + /etc/rc.d/rc.inetd restart + +We need to create the directory /tftpboot which will hold the bootstrap +files that tftpd will serve: + +mkdir /tftpboot + + This directory is the root of a secure jail (the -s /tftpboot parameter +in /etc/inetd.conf). The tftpd service is now configured and running. We +just need to populate its root directory, but I"ll keep that for another +paragraph. + +As an alternative to in.tftpd, you may want to use the built-in tftp server +of dnsmasq. If you are already using dnsmasq as your DHCP server, this would +make sense. +Add the two following commandline parameters to your dnsmasq commandline: + + --enable-tftp --tftp-root=/tftpboot + +or add the following two lines to your /etc/dnsmasq.conf file: + + enable-tftp + tftp-root=/tftpboot + +NFS +--- + + You need to export the directory where you keep your local copy of the +Slackware packages, for instance by adding this to /etc/exports: + +/mirror/slackware 192.168.0.0/24(ro,sync,insecure,all_squash,subtree_check) + +If your Slackware packages are located somewhere below /mirror/slackware +(like in our example network), the above line makes this directory tree +available (read-only) to NFS clients in the local network defined by the IP +address range 192.168.0.0/24. +If you had to add this line to your /etc/exports file, you will need to +restart the NFS server: + + /etc/rc.d/rc.nfsd restart + +For simplicity's sake: +The remainder of this chapter is a bullet list of the steps required if you +just want to have this working and have no prior experience with NFS nor have +such a server running at the moment (remember that any pathnames/IP addresses +that are used here apply to our example network - adjust as needed): + +(*) Create a file named /etc/exports with the following content: + + /mirror/slackware 192.168.0.0/24(ro,sync,insecure,all_squash) + +(*) The directory mentioned in /etc/exports is the target where + you copy (or move) your Slackware files to: The directory + "/mirror/slackware/slackware-13.0" should be the root of the Slackware + tree, containing such files as ChangeLog.txt and subdirectories like + "slackware" (or "slackware64" if you are working with the 64bit port) + and "kernels". + +(*) Make the NFS server startup script executable so that the NFS server + will start on every boot: + + chmod +x /etc/rc.d/rc.nfsd + + Start the NFS server (so you don't have to reboot already): + + /etc/rc.d/rc.nfsd start + + +PXELinux configuration +---------------------- + + The previous paragraph described in generic terms how to setup the TFTP +service, but it did not tell you how to populate the TFTP directory structure. +Network clients that request boot files from the TFTP server will receive +the files that are present in this directory structure. + + PXELinux is much like isolinux, which is the bootloader that is used +for the bootable Slackware CDROM #1. In fact, both programs are written by +the same author and are available in Slackware via the syslinux package. + +The tftp directory structure: + + As you can see in the DHCP section, the DHCP server has been configured +to offer any interested PXE client (i.e. your computers network card) the +file "/slackware-13.0/pxelinux.0" - this file contains the bootable code +that first downloads and starts a Linux kernel, and then downloads and +extracts the root filesystem containing the setup program and everything +else that we need. This filename "/slackware-13.0/pxelinux.0" indicates +a pathname relative to the root of the TFTP server. The PXE client will +use the tftp protocol to fetch this bootloader. So this is what we do: +create this directory "slackware-13.0" and copy the required files into it. +First, the pxelinux bootloader itself: + + mkdir /tftpboot/slackware-13.0 + mkdir /tftpboot/slackware-13.0/pxelinux.cfg + cp /usr/lib/syslinux/pxelinux.0 /tftpboot/slackware-13.0/ + +Also, we need the files from the Slackware CDROM that show the +informative messages in the beginning. Assuming your local copy of the +Slackware release can be found in "/mirror/slackware/slackware-13.0" +(change paths in the below commands if your location is different) : + + cp /mirror/slackware/slackware-13.0/isolinux/message.txt /tftpboot/slackware-13.0/ + cp /mirror/slackware/slackware-13.0/isolinux/f2.txt /tftpboot/slackware-13.0/ + +Very important: we need the initial ramdisk image (initrd.img) and the pxelinux configuration file that contains the instructions for the PXE clients: + + cp /mirror/slackware/slackware-13.0/isolinux/initrd.img /tftpboot/slackware-13.0/ + cp /mirror/slackware/slackware-13.0/usb-and-pxe-installers/pxelinux.cfg_default /tftpboot/slackware-13.0/pxelinux.cfg/default + +And lastly, we need all the kernels that the Slackware installer lets you +choose from: + + cp -a /mirror/slackware/slackware-13.0/kernels /tftpboot/slackware-13.0/ + + +Trying it out +------------- + + You now have a fully configured PXE server. Try it out! Take a +computer that is able to do a network boot, start it, and watch it go +through the motions of contacting the PXE server, downloading the PXE boot +code and presenting you with the familiar Slackware installation screen! +From there on you're on familiar grounds: choose a kernel, and off you go. + + If you're not familiar with network installations, here are some hints: + + The installer uses UDEV to load the required driver(s) for your network +card. You can login as root, use (c)fdisk to create your partitions and +start 'setup'. By the time you get to the point where you select your +preferred method of network installation, the installer will ask you to +supply network configuration parameters (IP address, netmask, gateway). +If a DHCP server was found on your local network, you will have the +alternative option to use DHCP and automatically configure the interface. + + ==================================================================== + If for whatever reason you do not want to use UDEV, you can pass + the parameter 'noudev' at the boot commandline. This will cause the + installer to fallback to the old behaviour where you have to load the + kernel driver for your network card yourself. You do have to run + the command 'network' which is the interactive program that allows + you to pick a driver or let Slackware probe the card and load the + correct driver. You can press 'L' to get a listing of all available + network drivers that you can select from (not all of them will be used + in the automatic probe). If the network program fails to detect the + card, and you know what driver your card needs but don't see it listed, + you're out of luck! If you forget to run the 'network' program before + you start 'setup', the network configuration dialog will run it when + the time comes, so that you do not have to start all over. + ==================================================================== + + Once you get to the SOURCE dialog, you can select either 'Install from NFS +(Network File System)', 'Install from FTP/HTTP server' or 'Install from +a Samba share' depending on which of those you have confgured for use +and have available. You will need to supply a couple of values for IP +Addresses and the network server directory. + +As a first exercise, here are values to use with a NFS server (for our +example network): + +Your IP Address (pick any unused): 192.168.0.111 +Your netmask: 255.255.255.0 +The gateway: 192.168.0.10 +NFS server address: 192.168.0.1 +Slackware directory on NFS server: /mirror/slackware/slackware-13.0/slackware + +Next, some values to use with a FTP server (for our example network): + +Your IP Address (pick any unused): 192.168.0.111 +Your netmask: 255.255.255.0 +The gateway: 192.168.0.10 +FTP server address: ftp://192.168.0.1 +Slackware directory on ftpserver: /pub/mirror/slackware/slackware-13.0 + +Next, example values to use with a HTTP server (for our example network): + +Your IP Address (pick any unused): 192.168.0.111 +Your netmask: 255.255.255.0 +The gateway: 192.168.0.10 +HTTP server address: http://192.168.0.1 +Slackware directory on webserver: /mirror/slackware/slackware-13.0 + +Finally, example values to use with a Samba share (for our example network): + +Your IP Address (pick any unused): 192.168.0.111 +Your netmask: 255.255.255.0 +The gateway: 192.168.0.10 +Samba share: //192.168.0.1/mirror +Slackware directory on webserver: /slackware/slackware-13.0 + + Note #1 - if you chose automatic network configuration using DHCP in an +earlier step, you can probably use actual hostnames instead of IP addresses. +This will depend on your LAN setup; if DHCP and DNS services are correctly +configured, every network host will have a hostname that resolves to it's +IP address. + + Note #2 - in the case of the NFS server, you will have to supply the +path to the Slackware package tree _including_ the '/slackware' subdirectory. +For HTTP and FTP servers, it is sufficient to supply the root of the +slackware-13.0 tree and leave the 'slackware' subdirectory out. The installer +will figure out where the packages are. + + From this point onwards, the installation proceeds just as when the +SOURCE would have been a CDROM. + +Good luck! +Eric Hameleers. + + +Example configuration scripts +----------------------------- + + +First example "/etc/dhcpd.conf" +------------------------------- + +A simple /etc/dhcpd.conf for your DHCP Server where all computers are allowed +to boot from the network using PXE. + +# dhcpd.conf +# +# Configuration file for ISC dhcpd +# +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +authoritative; +ddns-update-style none; + +# Allow bootp requests +allow bootp; + +# Point to the TFTP server: +next-server 192.168.0.1; + +# Default lease is 1 week (604800 sec.) +default-lease-time 604800; +# Max lease is 4 weeks (2419200 sec.) +max-lease-time 2419200; + +subnet 192.168.0.0 netmask 255.255.255.0 { + option domain-name "my.lan"; + option broadcast-address 192.168.0.255; + option subnet-mask 255.255.255.0; + option domain-name-servers 192.168.0.1; + option routers 192.168.0.10; + range dynamic-bootp 192.168.0.50 192.168.0.100; + use-host-decl-names on; + if substring (option vendor-class-identifier, 0, 9) = "PXEClient" { + filename "/slackware-13.0/pxelinux.0"; + } +} + + +Second example "/etc/dhcpd.conf: +-------------------------------- + +A more advanced /etc/dhcpd.conf file for your DHCP server where you can +specify exactly which computers are allowed to boot from the network using +PXE (but you will have to collect their MAC addresses yourself and put them +into separate host{} entries): + +# dhcpd.conf +# +# Configuration file for ISC dhcpd +# + +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +authoritative; +ddns-update-style none; + +# Ignore bootp requests: +ignore bootp; + +# option definitions common to all configured networks... +option domain-name-servers 192.168.0.1; + +subnet 192.168.0.0 netmask 255.255.255.0 { + option domain-name "my.lan"; + option broadcast-address 192.168.0.255; + option subnet-mask 255.255.255.0; + option routers 192.168.0.10; + # We reserve the range 192.168.0.1 to 192.168.0.49 for static IP addresses + pool { + # Known clients (i.e. configured with a 'host' statement) + # that request an IP address via DHCP + range 192.168.0.50 192.168.0.100; + # Default lease is 1 week (604800 sec.) + default-lease-time 604800; + # Max lease is 4 weeks (2419200 sec.) + max-lease-time 2419200; + deny unknown clients; + } + pool { + # Guests + range 192.168.0.150 192.168.0.200; + # Default lease is 8 hours (28800 sec.) + default-lease-time 28800; + # Max lease is 24 hours (86400 sec.) + max-lease-time 86400; + deny known clients; + } +} + +# Hosts which require special configuration options can be listed in +# host statements. If no address is specified, the address will be +# allocated dynamically (if possible), but the host-specific information +# will still come from the host declaration. + +# Fixed IP addresses can also be specified for hosts. These addresses +# should not also be listed as being available for dynamic assignment. +# Hosts for which fixed IP addresses have been specified can boot using +# BOOTP or DHCP. Hosts for which no fixed address is specified can only +# be booted with DHCP, unless there is an address range on the subnet +# to which a BOOTP client is connected which has the dynamic-bootp flag +# set. + +# === Group definitions ============================================= +# Define groups of computers that you want to give special attention. + +group { + # Non-PXE machines + + # Default lease is 1 week (604800 sec.) + default-lease-time 604800; + # Max lease is 2 weeks (1209600 sec.) + max-lease-time 1209600; + + #host penguin { + # hardware ethernet xx:xx:xx:xx:xx:xx; + # fixed-address 192.168.0.2; + #} +} + +group { + # PXEboot + + # Default lease is 1 day (86400 sec.) + default-lease-time 86400; + # Max lease is 2 days (172800 sec.) + max-lease-time 172800; + + # Allow bootp requests for this group: + allow bootp; + + # Point to the TFTP server (required parameter!): + next-server 192.168.0.1; + + # If you want to log the boot process, you will need to configure + # your logserver to allow logging from remote hosts. + #option log-servers 192.168.0.1; + + use-host-decl-names on; + + if substring (option vendor-class-identifier, 0, 9) = "PXEClient" { + filename "/slackware-13.0/pxelinux.0"; + } + else if substring (option vendor-class-identifier, 0, 9) = "Etherboot" { + filename "/slackware-13.0/kernels/hugesmp.s/bzImage"; + } + + host t43 { + # Add your computer's MAC Address here: + hardware ethernet yy:yy:yy:yy:yy:yy; + fixed-address 192.168.0.3; + } +} # end of PXEboot group + + +RC script for DHCP +------------------ + +A Slackware start/stop script for the DHCP server that you can save as +"/etc/rc.d/rc.dhcpd". + +Don't forget to make the script executable: + + chmod +x /etc/rc.d/rc.dhcpd + +You can add the following lines to /etc/rc.d/rc.local so that the DHCP +service starts when your server boots: + +if [ -x /etc/rc.d/rc.dhcpd ]; then + # Start the DHCP server: + /etc/rc.d/rc.dhcpd start +fi + +This is the content of the file "/etc/rc.d/rc.dhcpd": + +#!/bin/sh +# +# /etc/rc.d/rc.dhcpd +# This shell script takes care of starting and stopping +# the ISC DHCPD service +# + +# Put the command line options here that you want to pass to dhcpd: +DHCPD_OPTIONS="-q eth0" + +[ -x /usr/sbin/dhcpd ] || exit 0 + +[ -f /etc/dhcpd.conf ] || exit 0 + +start() { + # Start daemons. + echo -n "Starting dhcpd: /usr/sbin/dhcpd $DHCPD_OPTIONS " + /usr/sbin/dhcpd $DHCPD_OPTIONS + echo +} +stop() { + # Stop daemons. + echo -n "Shutting down dhcpd: " + killall -TERM dhcpd + echo +} +status() { + PIDS=$(pidof dhcpd) + if [ "$PIDS" == "" ]; then + echo "dhcpd is not running!" + else + echo "dhcpd is running at pid(s) ${PIDS}." + fi +} +restart() { + stop + start +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + status) + status + ;; + *) + echo "Usage: $0 {start|stop|status|restart}" + ;; +esac + +exit 0 + + +======================================================== +Author: + Eric Hameleers 22-jul-2009 +Wiki URLs: + http://www.slackware.com/~alien/dokuwiki/doku.php?id=slackware:pxe diff --git a/usb-and-pxe-installers/README_USB.TXT b/usb-and-pxe-installers/README_USB.TXT new file mode 100644 index 000000000..a1f436ddc --- /dev/null +++ b/usb-and-pxe-installers/README_USB.TXT @@ -0,0 +1,176 @@ + +Installing Slackware using a bootable USB stick +=============================================== + +**WARNING:** + The procedure outlined below will destroy all data that is currently + stored on the USB stick you use to create a USB Slackware installer. + + +Introduction +------------ + + With the release of Slackware 12.0, the era of floppy-boot came to +a definite end. The reason is simple - the Linux 2.6 kernel will not +fit on a single floppy, even in it's most condensed configuration. +In this README, I will show you how to use a bootable USB stick to +install Slackware. This method - creating the USB equivalent of a +boot/root floppy pair - is easy to use and fast. It requires that your +computer is able to boot from USB-HDD. + + +Booting the Slackware installer from a USB stick +------------------------------------------------ + + The 'usbboot.img' file is a 25 MB small USB boot image that you can +use to boot into the Slackware setup program. The mini image does not +contain any installable Slackware package. In order to install Slackware +you will need a local NFS/HTTP/FTP server or another Slackware package +source like a prepared local harddisk partition. This small image file +works great, especially when you can't or don't want to use CDROM media +as the carrier for the Slackware packages. +The image is transfered to a USB stick in a matter of seconds. Even the +oldest and tiniest of USB drives is well suited for this purpose. + + The usual way of installing Slackware from a network server repository, +is to boot the Slackware CDROM, and run the ('pcmcia' and) 'network' script +that load the drivers for your network card. You need a working network +card before running setup and go through the installation procedure. +When you type 'pcmcia' and/or 'network', the Slackware installer would look +for the appropriate driver files on an available CDROM, and if no CDROM +is found it prompts you to insert floppy disks. + + Now, with a boot from our USB stick we are assuming there is no CDROM +and no floppy drive available to us. So, this USB boot image contains +all the drivers you need and will not prompt you for additional 'floppies'. +A consequence of adding all the network and pcmcia drivers to the USB image +is that using a bootable USB stick is not a suitable method to install +Slackware on old PCs that are low on memory! The ramdisk will be more than +30 MB in size, and you will need RAM for your kernel as well. + + +Transfering the usbboot.img file to a USB device +------------------------------------------------ + +In order to create a bootable USB stick with the Slackware installer on it, +copy the 'usbboot.img' file to a USB stick as follows: + +(1) In a Linux terminal if you're in X, or just from the console, change + directory to where the file 'usbboot.img' is located - you may have to + mount your Slackware CDROM or DVD first. +(2) Insert a USB stick that is going to become your Slackware installer. + Note that all data the stick contains will be erased in the next steps! + You need to find out the device name for this USB stick. Sometimes it + helps to run the command 'rescan-scsi-bus' if the USB stick is not + being detected right away. + On systems without SCSI or SATA disks, the USB stick will usually be + assigned '/dev/sda' as the device name. If '/dev/sda' already is your + SCSI or SATA hard drive, then '/dev/sdb' would become the device name + for the USB stick. Be very convinced that you know which device name + represents your stick before you advance to the next step! +(3) Transfer the image file to the USB stick using the 'dd' program. In the + example command line below, I am assuming that the USB stick is known as + '/dev/sdx'. + + dd if=usbboot.img of=/dev/sdx bs=512 + + Be careful about the device name for your USB stick! The above 'dd' + command will wipe out any existing data on the device, so you had better + be sure that it is not the SATA hard disk you're targeting! + + +Booting from the USB stick +-------------------------- + + Your computer BIOS must support booting from USB HDD. + + Plug the stick into your computers USB slot, and boot it up. Make +sure you select boot from USB-HDD - how you do this is very dependent on +the type of computer you have. Many computers will display a message +during the initial stages of the booting that says something like +"Press [F12] for a boot device list". + + The Slackware installer will start just like when you had booted from +a CDROM (maybe somewhat faster even). Log in as root. Start the install +by partitioning your hard drive as usual, and running 'setup'. If you want +to install from a network server such as a NFS, HTTP or FTP server, you +should run the commands 'pcmcia' (if your network card is a PCMCIA type) +and/or 'network' prior to running 'setup' in order to load a driver for +your network card. If you want to install Slackware using a local hard +disk partition in case you copied the content of the Slackware CDROMs/DVD +there already, that is also an option. +It would not make much sense to opt for the third install method to +"use a CDROM" since we just abandoned the use of a CDROM medium :-) + + +A remark about fdisk warnings +----------------------------- + + After writing the 'usbboot.img' to the USB stick, if you run fdisk -l +you will see alarming output like this: + + This doesn't look like a partition table + Probably you selected the wrong device. + + Device Boot Start End Blocks Id System + /dev/sda1 ? 8563200 8326647 2088818490 1 FAT12 + Partition 1 has different physical/logical beginnings (non-Linux?): + phys=(124, 38, 11) logical=(8563199, 1, 16) + Partition 1 has different physical/logical endings: + phys=(344, 195, 26) logical=(8326646, 0, 49) + Partition 1 does not end on cylinder boundary. + +... and so on, for partitions 2, 3 and 4 as well. + + This is actually harmless. The 'usbboot.img' file was copied to the +raw device, it did not create partitions at all. Fdisk reads the information +in the first sector and incorrectly interprets that as a messed-up device. + + +Restoring a USB stick to its original state +------------------------------------------- + + When you have used the small 25 MB image to create a USB installer, +your USB stick is no longer useful for anything else. Any remaining +space on the stick (assuming you used a larger-than 25 MB stick for it) +is inaccessible. Fortunately, it is easy to re-create a FAT partition on +the stick (thereby removing the Slackware installer of course) so that +the USB stick again becomes available for carrying around your data. + + Take care about which device actually is your USB stick !!! The next +command will render all data on /dev/sdx inaccessible !!! + +(1) First, wipe the bootsector of the USB stick: + + dd if=/dev/zero of=/dev/sdx bs=512 count=1 + +(2) Then, create a new FAT32 partition on the stick and write a FAT32 + filesystem on it (vfat or type b in fdisk terminology): + +fdisk /dev/sdx < 22-jul-2009 +Wiki URL: http://www.slackware.com/~alien/dokuwiki/doku.php?id=slackware:usbboot + diff --git a/usb-and-pxe-installers/pxelinux.cfg_default b/usb-and-pxe-installers/pxelinux.cfg_default new file mode 100644 index 000000000..de1e34ccd --- /dev/null +++ b/usb-and-pxe-installers/pxelinux.cfg_default @@ -0,0 +1,12 @@ +default huge.s +prompt 1 +timeout 1200 +display message.txt +F1 message.txt +F2 f2.txt +label huge.s + kernel kernels/huge.s/bzImage + append initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 rw SLACK_KERNEL=huge.s +label speakup.s + kernel kernels/speakup.s/bzImage + append initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 rw SLACK_KERNEL=speakup.s diff --git a/usb-and-pxe-installers/usbimg2disk.sh b/usb-and-pxe-installers/usbimg2disk.sh new file mode 100644 index 000000000..d98e21de4 --- /dev/null +++ b/usb-and-pxe-installers/usbimg2disk.sh @@ -0,0 +1,278 @@ +#!/bin/sh +# $Id: usbimg2disk.sh,v 1.2 2009/05/14 10:29:38 eha Exp eha $ +# +# Copyright 2009 Eric Hameleers, Eindhoven, NL +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + +# Paranoid as usual: +set -e + +showhelp() { + echo "# " + echo "# Purpose: to use the content of Slackware's usbboot.img and transform" + echo "# a standard USB thumb drive with a single vfat partition" + echo "# into an alternative USB boot device for the Slackware installer." + echo "# " + echo "# Reason: some computers refuse to boot from a USB thumb drive if it was" + echo "# made bootable by dumping 'usbboot.img' onto it." + echo "# " + echo "# Your USB thumb drive may contain data!" + echo "# This data will *not* be overwritten, unless you have" + echo "# explicitly chosen to format the drive by using the '-f' parameter." + echo "# " + echo "# $(basename $0) accepts the following parameters:" + echo "# -h|--help This help" + echo "# -f|--format Format the USB drive before use" + echo "# -i|--infile Full path to the usbboot.img file" + echo "# -l|--logfile Optional logfile to catch fdisk output" + echo "# -o|--outdev The device name of your USB drive" + echo "# -u|--unattended Do not ask any questions" + echo "# " + echo "# Example:" + echo "# " + echo "# $(basename $0) -i ~/download/usbboot.img -o /dev/sdX" + echo "# " +} + +reformat() { + # Commands to re-create a functional USB stick with VFAT partition: + # Only parameter: the name of the USB device to be formatted: + TOWIPE="$1" + + # Sanity checks: + if [ ! -b $TOWIPE ]; then + echo "*** Not a block device: '$TOWIPE' !" + exit 1 + fi + + # Wipe the MBR: + dd if=/dev/zero of=$TOWIPE bs=512 count=1 + + # create a FAT32 partition (type 'b') + /sbin/fdisk $TOWIPE </dev/null 2>/dev/null ; then + echo "*** I fail to find a 'vfat' partition: '$TARGETPART' !" + echo "*** If you want to format the USB thumb drive, add the '-f' parameter." + exit 1 + fi +else + if [ ! -b $TARGET ]; then + echo "*** Not a block device: '$TARGET' !" + exit 1 + fi +fi + +if mount | grep -q $TARGETPART ; then + echo "***" + echo "*** Please un-mount $TARGETPART first, then re-run this script!" + echo "***" + exit 1 +fi + +# Check for prerequisites: +if [ ! -r /usr/lib/syslinux/mbr.bin -o ! -x /usr/bin/syslinux ]; then + echo "This script requires that the syslinux package is installed!" + exit 1 +fi + +# Show the USB device's information to the user: +if [ $UNATTENDED -eq 0 ]; then + [ $REFORMAT -eq 1 ] && DOFRMT="format and " || DOFRMT="" + + echo "" + echo "# We are going to ${DOFRMT}use this device - '$TARGET'." + /sbin/fdisk -l $TARGET | while read LINE ; do echo "# $LINE" ; done + echo "" + + echo "*** ***" + echo "*** If this is the wrong drive, then press CONTROL-C now! ***" + echo "*** ***" + + read -p "Or press ENTER to continue: " JUNK + # OK... the user was sure about the drive... +fi + +# Initialize the logfile: +cat /dev/null > $LOGFILE + +# If we need to format the USB drive, do it now: +if [ $REFORMAT -eq 1 ]; then + echo "--- Formatting $TARGET and creating VFAT partition..." + if [ $UNATTENDED -eq 0 ]; then + echo "--- Last chance! Press CTRL-C to abort!" + read -p "Or press ENTER to continue: " JUNK + fi + ( reformat $TARGET ) 1>>$LOGFILE 2>&1 +fi + +# Create a temporary mount point for the image file: +mkdir -p /mnt +MNTDIR1=$(mktemp -d -p /mnt -t img.XXXXXX) +if [ ! -d $MNTDIR1 ]; then + echo "*** Failed to create a temporary mount point for the image!" + exit 1 +else + chmod 700 $MNTDIR1 +fi + +# Create a temporary mount point for the USB thumb drive partition: +MNTDIR2=$(mktemp -d -p /mnt -t usb.XXXXXX) +if [ ! -d $MNTDIR2 ]; then + echo "*** Failed to create a temporary mount point for the usb thumb drive!" + exit 1 +else + chmod 700 $MNTDIR2 +fi + +# Mount the image file: +mount -o loop $USBIMG $MNTDIR1 + +# Mount the vfat partition +mount $TARGETPART $MNTDIR2 + +# Check available space: +USBFREE=$(df -k $TARGETPART | grep "^$TARGETPART" |tr -s ' ' | cut -d' ' -f4) +IMGSIZE=$(du -k $USBIMG | cut -f1) +echo "--- Available free space on the the USB drive is $USBFREE KB" +echo "--- Required free space: $IMGSIZE KB" + +# Exit when the image size appears larger than available space: +if [ $IMGSIZE -gt $USBFREE ]; then + echo "*** The USB thumb drive does not have enough free space!" + # Cleanup and exit: + umount -f $MNTDIR1 + umount -f $MNTDIR2 + rmdir $MNTDIR1 $MNTDIR2 + exit 1 +fi + +# Copy files to the USB disk in it's own subdirectory '/syslinux' +echo "--- Copying files to the USB drive..." +mkdir -p $MNTDIR2/syslinux +cp -a $MNTDIR1/* $MNTDIR2/syslinux/ +rm -f $MNTDIR2/syslinux/ldlinux.sys + +# Unmount everything: +umount -f $MNTDIR1 +umount -f $MNTDIR2 + +# Remove the temporary directories: +rmdir $MNTDIR1 $MNTDIR2 + +# Run syslinux and write a good MBR: +echo "--- Making the USB drive '$TARGET' bootable..." +( makebootable $TARGET ) 1>>$LOGFILE 2>&1 +/usr/bin/syslinux -s -d /syslinux $TARGETPART 1>>$LOGFILE 2>&1 +dd if=/usr/lib/syslinux/mbr.bin of=$TARGET 1>>$LOGFILE 2>&1 + +# THE END